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

от:
Mehdi Achour
Friedhelm Betz
Antony Dovgal
Nuno Lopes
Hannes Magnusson
Georg Richter
Damien Seguy
Jakub Vrana
И некоторые другие
2020-02-11
Под редакцией: Peter Cowburn
от:
Алексей Шеин
Андрей Безруков
Максим Чабан
Александр Москалёв
Борис Клименко
Дмитрий Винярчук
Борис Флейтлих
Алексей Егоров
Юрий Бабиков
Михаил Баранов
Андрей Громов
Алексей Пыльцын
Сергей Пантелеев
И некоторые другие
© 1997-2020 Группа документирования PHP
  • Авторские права
  • Руководство по PHP
    • Предисловие
  • Приступая к работе
    • Введение
    • Простой учебник
  • Установка и настройка
    • Общие инструкции по установке
    • Установка на Unix-системы
    • Установка на macOS
    • Установка в системах Windows
    • Установка на платформах Cloud Computing
    • Менеджер процессов FastCGI (FPM)
    • Установка модулей PECL
    • Проблемы?
    • Конфигурация времени выполнения
  • Справочник языка
    • Основы синтаксиса
    • Типы
    • Переменные
    • Константы
    • Выражения
    • Операторы
    • Управляющие конструкции
    • Функции
    • Классы и объекты
    • Пространства имен
    • Ошибки
    • Исключения
    • Генераторы
    • Объяснение ссылок
    • Предопределённые переменные
    • Предопределённые исключения
    • Встроенные интерфейсы и классы
    • Контекстные опции и параметры
    • Поддерживаемые протоколы и обертки
  • Безопасность
    • Вступление
    • Общие рассуждения
    • Если PHP установлен как CGI
    • Если PHP установлен как модуль Apache
    • Безопасность сессий
    • Безопасность файловой системы
    • Безопасность баз данных
    • Сообщения об ошибках
    • Использование глобальных переменных (Register_Globals)
    • Данные, введенные пользователем
    • Волшебные кавычки
    • Сокрытие PHP
    • Необходимость обновлений
  • Отличительные особенности
    • HTTP-аутентификация в PHP
    • Cookies
    • Сессии
    • Работа с XForms
    • Загрузка файлов на сервер
    • Работа с удаленными файлами
    • Работа с соединениями
    • Постоянные соединения с базами данных
    • Безопасный режим
    • Использование PHP в командной строке
    • Сборка мусора
    • Динамическая трассировка DTrace
  • Справочник функций
    • Изменение поведения PHP
    • Обработка аудио форматов
    • Службы аутентификации
    • Расширения для работы с командной строкой
    • Расширения для сжатия и архивации
    • Обработка кредитных карт
    • Криптографические расширения
    • Расширения для работы с базами данных
    • Расширения для работы с датой и временем
    • Расширения для работы с файловой системой
    • Поддержка языков и кодировок
    • Обработка и генерация изображений
    • Расширения для работы с почтой
    • Математические расширения
    • Генерация нетекстовых MIME форматов
    • Расширения для управления процессами программ
    • Другие базовые расширения
    • Другие службы
    • Расширения для работы с поисковыми системами
    • Расширения для работы с серверами
    • Расширения для работы с сессиями
    • Обработка текста
    • Расширения, относящиеся к переменным и типам
    • Веб-сервисы
    • Расширения только для Windows
    • Обработка XML
    • Расширения для работы с GUI
  • Ядро PHP: Руководство хакера
    • Preface
    • Memory management
    • Working with Variables
    • Writing Functions
    • Writing Classes
    • Working with Resources
    • Working with INI settings
    • Working with streams
    • The "counter" Extension - A Continuing Example
    • The PHP 5 build system
    • Extension structure
    • PDO Driver How-To
    • Extension FAQs
    • Zend Engine 2 API reference
    • Zend Engine 2 Opcodes
    • Zend Engine 1
  • ЧАВО — ЧАВО: ЧАсто задаваемые Вопросы и Ответы на них
    • Общая информация
    • Списки рассылки
    • Получение PHP
    • Вопросы по базам данных — Вопросы по Базам данных
    • Установка
    • Проблемы сборки
    • Использование PHP
    • Хеширование паролей — Безопасное хеширование паролей
    • PHP и HTML
    • PHP и COM
    • Разные вопросы
  • Appendices
    • История PHP и смежных проектов
    • Миграция с PHP 7.3.x на PHP 7.4.x
    • Миграция с PHP 7.2.x на PHP 7.3.x
    • Миграция с PHP 7.1.x на PHP 7.2.x
    • Миграция с PHP 7.0.x на PHP 7.1.x
    • Миграция с PHP 5.6.x на PHP 7.0.x
    • Миграция с PHP 5.5.x на PHP 5.6.x
    • Миграция с PHP 5.4.x на PHP 5.5.x
    • Миграция с PHP 5.3.x на PHP 5.4.x
    • Миграция c PHP 5.2.x на PHP 5.3.x
    • Миграция с PHP 5.1.x на PHP 5.2.x
    • Миграция с PHP 5.0.x на PHP 5.1.x
    • Миграция с PHP 4 на PHP 5.0.x
    • Отладка в PHP
    • Опции конфигурации
    • Директивы php.ini
    • Список/классификация расширений
    • Список псевдонимов функций
    • Список зарезервированных слов
    • Список типов ресурсов
    • Список доступных фильтров
    • Список поддерживаемых транспортных протоколов
    • Таблица сравнения типов в PHP
    • Список меток (tokens) парсера
    • Руководство по именованию
    • Об этом руководстве
    • Creative Commons Attribution 3.0
    • Алфавитный список
    • Список изменений
  • Руководство в формате HTML Help
    • About This Edition
    • Using PHP Manual CHM Edition
    • The Full Text Search
    • Integrating the PHP Manual


Авторские права

Авторские права © 1997 - 2020 принадлежат группе документирования PHP. Эти материалы могут быть распространены только на условиях и соглашениях, установленных в лицензии Creative Commons Attribution версии 3.0 или более поздней. Копия лицензии Creative Commons Attribution 3.0 распространяется вместе с руководством. Последняя на данный момент версия доступна по адресу » http://creativecommons.org/licenses/by/3.0/.

Если вы заинтересованы в распространении или публикации данного документа полностью или частично, с изменениями или без, и у вас есть вопросы, вы можете связаться с владельцами авторского права по адресу » doc-license@lists.php.net. Помните, что это адрес публичного списка рассылки.


  • « Авторские права
  • Предисловие »
  • PHP Manual
  • Руководство по PHP

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

  • Предисловие


Предисловие

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

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

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

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

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

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

Следующие участники внесли значительный вклад в наполнение документации в прошлом: Bill Abt, Jouni Ahto, Alexander Aulbach, Christoph Michael Becker, Daniel Beckham, Stig Bakken, Nilgun Belma Buguner, Jesus M. Castagnetto, Ron Chmara, Sean Coates, John Coggeshall, Simone Cortesi, Peter Cowburn, Daniel Egeberg, Markus Fischer, Wez Furlong, Sara Golemon, Rui Hirokawa, Brad House, Pierre-Alain Joye, Etienne Kneuss, Moriyoshi Koizumi, Rasmus Lerdorf, Andrew Lindeman, Stanislav Malyshev, Justin Martin, Rafael Martinez, Rick McGuire, Moacir de Oliveira Miranda Junior, Kalle Sommer Nielsen, Yasuo Ohgaki, Philip Olson, Richard Quadling, Derick Rethans, Rob Richards, Sander Roobol, Egon Schmid, Thomas Schoefbeck, Sascha Schumann, Dan Scott, Masahiro Takagi, Yannick Torres, Michael Wallner, Lars Torben Wilson, Jim Winstead, Jeroen van Wolffelaar и Andrei Zmievski.

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

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

Текущие наиболее активные редакторы: Daniel Brown, Nuno Lopes, Felipe Pena, Thiago Pojda и Maciek Sokolewicz.

Эти люди внесли свой вклад в управление пользовательскими замечаниями в прошлом: Mehdi Achour, Daniel Beckham, Friedhelm Betz, Victor Boivie, Jesus M. Castagnetto, Nicolas Chaillan, Ron Chmara, Sean Coates, James Cox, Vincent Gevers, Sara Golemon, Zak Greant, Szabolcs Heilig, Oliver Hinckel, Hartmut Holzgraefe, Etienne Kneuss, Rasmus Lerdorf, Matthew Li, Andrew Lindeman, Aidan Lister, Hannes Magnusson, Maxim Maletsky, Bobby Matthis, James Moore, Philip Olson, Sebastian Picklum, Derick Rethans, Sander Roobol, Damien Seguy, Jason Sheets, Tom Sommer, Jani Taskinen, Yasuo Ohgaki, Jakub Vrana, Lars Torben Wilson, Jim Winstead, Jared Wyles и Jeroen van Wolffelaar.

Другие переводчики

Наиболее активные переводчики присылавшие патчи: Spbima, Тигрович, Иван Ремень, Serg, Wolg, Degit, Nooneon, StelZek, Grul, Alexandr Fedotov, Marina Lagun, Mike, HaJIuBauKa, Sunny, dba, Александр Тушин.

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

Переводчики, ранее принимавшие участие в переводе руководства на русский язык (в алфавитном порядке): Alexander Voytsekhovskyy, Alexey Asemov, Andrey Demenev, Antony Dovgal, Boris Bezrukov, Evgeniy Syuzev, Irina Goble, Ivan Kovalenko, Jigkayev Kazbek, Kirill Barashkin, Olishuk Andrey, Veniamin Zolotukhin.

А также неизвестные переводчики со следующими никами: freespace, santiago, shafff, sveta.


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

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


  • « Приступая к работе
  • Что такое PHP? »
  • PHP Manual
  • Приступая к работе
  • Введение

Введение

Содержание

  • Что такое PHP?
  • Возможности PHP


Что такое PHP?

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

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

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

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

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

    </body>
</html>

Вместо рутинного вывода HTML-кода командами языка (как это происходит, например, в Perl или C), скрипт PHP содержит HTML с встроенным кодом (в нашем случае, это вывод текста "Привет, я - скрипт PHP!"). Код PHP отделяется специальными начальным и конечным тегами <?php и ?>, которые позволяют "переключаться" в "PHP-режим" и выходить из него.

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

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

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


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

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

Существуют три основных области применения PHP.

  • Создание скриптов для выполнения на стороне сервера. PHP традиционно и наиболее широко используется именно таким образом. Для этого вам будут необходимы три вещи. Интерпретатор PHP (в виде программы CGI или серверного модуля), веб-сервер и браузер. Для того чтобы можно было просматривать результаты выполнения PHP-скриптов в браузере, нужен работающий веб-сервер и установленный PHP. Просмотреть вывод 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, macOS, RISC OS и многие другие. Также в PHP включена поддержка большинства современных веб-серверов, таких как Apache, IIS и многих других. В принципе, подойдет любой веб-сервер, способный использовать бинарный файл FastCGI PHP, например, lighttpd или nginx. PHP может работать в качестве модуля или функционировать в качестве процессора CGI.

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

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

Одним из значительных преимуществ PHP является поддержка широкого круга баз данных. Создать скрипт, использующий базы данных, - невероятно просто. Можно воспользоваться расширением, специфичным для отдельной базы данных (таким как mysql) или использовать уровень абстракции от базы данных, такой как PDO, или подсоединиться к любой базе данных, поддерживающей Открытый Стандарт Соединения Баз Данных (ODBC), с помощью одноименного расширения ODBC. Для других баз данных, таких как CouchDB, можно воспользоваться cURL или сокетами.

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

PHP имеет много возможностей по обработке текста, включая регулярные выражения Perl (PCRE) и много других расширений и инструментов для обработки и доступа к XML-документам. В PHP обработка XML-документов стандартизирована и происходит на базе мощной библиотеки libxml2, расширив возможности обработки XML добавлением новых расширений SimpleXML, XMLReader и XMLWriter.

Есть еще много других интересных расширений, которые можно просмотреть как в алфавитном порядке, так и по категориям. Есть еще много дополнительных PECL-расширений, которые также могут (а могут и нет) быть документированы в данном руководстве, такие как » XDebug.

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


Простой учебник

Содержание

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

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

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


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

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

Например, вы хотите сэкономить на интернет-канале и вести разработку локально. В этом случае вам нужно будет установить веб-сервер, такой как » Apache, и, разумеется, » PHP. Скорее всего, вы также захотите установить базу данных, например, » MySQL.

Все это может быть установлено как отдельно друг от друга, так и более простым способом. В нашем руководстве есть инструкции по установке PHP (предполагается, что вы уже установили веб-сервер). Если у вас возникли проблемы при установке PHP, мы предлагаем вам задать вопросы в нашем » списке рассылки по вопросам установки. Если же вы выбрали более простой способ, то » найдите уже настроенный пакет для вашей операционной системы, который автоматически установит все вышеперечисленное несколькими кликами мыши. Устанавливать веб-сервер с поддержкой PHP довольно легко на любой операционной системе, включая MacOSX, Linux и Windows. На Linux вам, возможно, пригодятся » rpmfind и » PBone при поиске RPM-пакетов. Можно также использовать » apt-get для поиска пакетов под Debian.


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

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

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

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

Откройте данный файл в браузере, набрав имя вашего веб-сервера и /hello.php. При локальной разработке эта ссылка может быть чем-то вроде http://localhost/hello.php или http://127.0.0.1/hello.php, но это зависит от настроек вашего сервера. Если все настроено правильно, этот файл будет обработан PHP и браузер выведет следующий текст:

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <p>Hello World</p>
 </body>
</html>

Эта программа чрезвычайно проста, и для создания настолько простой странички даже необязательно использовать PHP. Все, что она делает, это вывод Hello World, используя инструкцию PHP echo. Заметьте, что файл не обязан быть выполняемым или еще как-то отличаться от других файлов. Сервер знает, что этот файл должен быть обработан PHP, так как файл обладает расширением ".php", о котором в настройках сервера сказано, что подобные файлы должны передаваться PHP. Рассматривайте его как обычный HTML-файл, которому посчастливилось заполучить набор специальных тегов (доступных также и вам), способных на кучу интересных вещей.

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

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

Замечание: Замечание о переводах строк

Переводы строк немногое означают в HTML, однако считается хорошей идеей поддерживать HTML в удобочитаемом виде, перенося его на новую строку. PHP автоматически удаляет перевод строки, идущий сразу после закрывающего тега ?>. Это может быть чрезвычайно полезно, если вы используете множество блоков PHP-кода или подключаете PHP-файлы, которые не должны ничего выводить. В то же время, это может приводить в недоумение. Можно поставить пробел после закрывающего тега ?> и тогда пробел будет выведен вместе с переводом строки, или же вы можете специально добавить перевод строки в последний вызов echo/print из блока PHP-кода.

Замечание: Пара слов о текстовых редакторах

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

Замечание: Пара слов о текстовых процессорах

Текстовые процессоры (StarOffice Writer, Microsoft Word, Abiword и др.) в большинстве случаев не подходят для редактирования файлов PHP. Если вы все же хотите использовать какой-либо из них для тестового скрипта, убедитесь, что сохраняете файл как простой текст (plain text), иначе PHP будет не в состоянии прочесть и запустить ваш скрипт.

Замечание: Пара слов о Блокноте Windows

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

Теперь, когда вы успешно создали работающий PHP-скрипт, самое время создать самый знаменитый PHP-скрипт! Вызовите функцию phpinfo() и вы увидите множество полезной информации о вашей системе и настройке, такой как доступные предопределенные переменные, загруженные PHP-модули и параметры настройки. Уделите некоторое время изучению этой важной информации.

Пример #2 Получение информации о системе из PHP

<?php phpinfo(); ?>


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

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

Замечание:

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

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

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

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

Пример вывода данной программы:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

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

$_SERVER - это просто одна из переменных, которые предоставляются вам языком PHP. Список таких переменных можно посмотреть в разделе "Зарезервированные переменные" или просмотрев вывод функции phpinfo(), используемой в примере в предыдущем разделе.

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

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

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

Пример вывода данной программы:

Вы используете Internet Explorer.<br />

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

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

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

Пример #3 Смешение режимов HTML и PHP

<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<h3>strpos(), должно быть, вернул не false</h3>
<p>Вы используете Internet Explorer</p>
<?php
} else {
?>
<h3>strpos() вернул false</h3>
<p>Вы не используете Internet Explorer</p>
<?php
}
?>

Пример вывода данной программы:

<h3>strpos(), должно быть, вернул не false</h3>
<p>Вы используете Internet Explorer</p>

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


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

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

Пример #1 Простейшая форма HTML

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

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

Пример #2 Выводим данные формы

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

Пример вывода данной программы:

Здравствуйте, Сергей.
Вам 30 лет.

Если не принимать во внимание куски кода с htmlspecialchars() и (int), принцип работы данного кода должен быть прост и понятен. htmlspecialchars() обеспечивает правильную кодировку "особых" HTML-символов так, чтобы вредоносный HTML или Javascript не был вставлен на вашу страницу. Поле age, о котором нам известно, что оно должно быть число, мы можем просто преобразовать в integer, что автоматически избавит нас от нежелательных символов. PHP также может сделать это автоматически с помощью расширения filter. Переменные $_POST['name'] и $_POST['age'] автоматически установлены для вас средствами PHP. Ранее мы использовали суперглобальную переменную $_SERVER, здесь же мы точно так же используем суперглобальную переменную $_POST, которая содержит все POST-данные. Заметим, что метод отправки (method) нашей формы - POST. Если бы мы использовали метод GET, то информация нашей формы была бы в суперглобальной переменной $_GET. Кроме этого, можно использовать переменную $_REQUEST, если источник данных не имеет значения. Эта переменная содержит смесь данных GET, POST, COOKIE.

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


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

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

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

  • С PHP 5.4.0, старые массивы $HTTP_*_VARS удалены. Следующие суперглобальные массивы были добавлены в PHP » 4.1.0: $_GET, $_POST, $_COOKIE, $_SERVER, $_FILES, $_ENV, $_REQUEST, и $_SESSION.
  • Внешние переменные больше не глобализуются по умолчанию. Другими словами, начиная с версии PHP » 4.2.0, директива register_globals в php.ini по умолчанию отключена ("off"). Рекомендуемый метод доступа к таким переменным - суперглобальные массивы, описанные выше. Более старые программы, книги и руководства могут считать, что данная директива включена ("on"). К примеру, если бы эта директива была включена ("on"), такой скрипт мог бы использовать переменную $id, поступившую из строки URL http://www.example.com/foo.php?id=42. Вне зависимости от значения данной директивы, переменная $_GET['id'] будет всегда доступна.
Для дополнительной информации касательно изменений, связанных с переменными, смотрите раздел "Предопределенные переменные" и ссылки этого раздела.


Что дальше?

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

Если вы хотите посмотреть различные презентации и слайды, шире раскрывающие возможности PHP, вы можете посетить сайт с материалами PHP конференций: » http://talks.php.net/


Установка и настройка

  • Общие инструкции по установке
  • Установка на Unix-системы
    • Apache 1.3.x на системах Unix
    • Apache 2.x на Unix системах
    • Установка Nginx 1.4.x на систему Unix
    • Установка PHP на Lighttpd 1.4 на Unix-системах
    • Веб-серверы Sun, iPlanet и Netscape на ОС Sun Solaris
    • Веб-сервер LiteSpeed/OpenLiteSpeed на системах Unix
    • Установка с интерфейсами CGI и командной строки
    • Инструкции по установке для ОС HP-UX
    • OpenBSD, замечания по установке
    • Инструкции по инсталляции для ОС Solaris
    • Инструкции по установке на Debian GNU/Linux
  • Установка на macOS
    • Использование пакетов
    • Использование готового пакета PHP
    • Компилирование PHP на macOS
  • Установка в системах Windows
    • Инструмент установки PHP на Windows
    • Рекомендованая конфигурация для систем Windows
    • Самостоятельная установка PHP в Windows
    • Стандартные проблемы PHP под Windows
    • Установка на старых версиях ОС Windows
  • Установка на платформах Cloud Computing
    • Azure App Services
    • Amazon EC2
  • Менеджер процессов FastCGI (FPM)
    • Установка
    • Настройка
  • Установка модулей PECL
    • Введение в установку PECL
    • Загрузка модулей PECL
    • Установка PHP-модуля в Windows
    • Компиляция разделяемых модулей с помощью команды pecl
    • Компиляция разделяемых модулей с помощью phpize
    • php-config
    • Компиляция модулей PECL статически в PHP
  • Проблемы?
    • Читайте FAQ
    • Другие проблемы
    • Сообщения о багах
  • Конфигурация времени выполнения
    • Файл конфигурации
    • Файлы .user.ini
    • Где могут быть установлены параметры конфигурации
    • Как изменить настройки конфигурации


Общие инструкции по установке

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

  • Создавать web-сайты и web-приложения (Скрипты на стороне сервера)
  • Скрипты командной строки
  • GUI-приложения (Приложения с графическим интерфейсом пользователя)

Для первой и наиболее распространенной цели вам нужны три вещи: Сам PHP, веб-сервер и веб-браузер. Вероятно, у вас уже есть веб-браузер и, в зависимости от настроек вашей операционной системы, вы также можете иметь и веб-сервер (например, Apache в Linux и macOS; IIS в Windows). Также вы можете арендовать веб-сервер или некоторое дисковое пространство на веб-сервере. В этом случае вам не нужно устанавливать дополнительное программное обеспечение, только писать PHP скрипты, загружать их на сервер и просматривать результат их работы в браузере.

В случае установки сервера и PHP самостоятельно у вас есть два варианта установки PHP. Для многих серверов PHP может быть установлен как модуль сервера. Это возможно для таких серверов, как Apache, Microsoft Internet Information Server, Netscape и iPlanet. Если PHP не поддерживает интерфейс для вашего сервера, вы всегда можете использовать его как обработчик CGI или FastCGI. Это означает, что вы должны настроить ваш сервер так, чтобы он исполнял все PHP файлы, как CGI-скрипты.

Если вы также собираетесь использовать PHP в командной строке (для генерации изображений, обработки текстов и т.д.), то вам понадобится PHP CLI. Подробнее об этом можно прочитать в разделе Использование PHP в командной строке. В этом случае вам не понадобятся ни сервер, ни браузер.

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

Начиная с этого момента мы будем описывать установку PHP для веб-серверов на Unix и Windows, как модуля сервера и как CGI. Вы также можете найти информацию об использовании PHP в командной строке в следующих разделах.

Исходные коды и бинарные сборки для Windows можно получить здесь: » https://www.php.net/downloads.php.


Установка на Unix-системы

Содержание

  • Apache 1.3.x на системах Unix
  • Apache 2.x на Unix системах
  • Установка Nginx 1.4.x на систему Unix
  • Установка PHP на Lighttpd 1.4 на Unix-системах
  • Веб-серверы Sun, iPlanet и Netscape на ОС Sun Solaris
  • Веб-сервер LiteSpeed/OpenLiteSpeed на системах Unix
  • Установка с интерфейсами CGI и командной строки
  • Инструкции по установке для ОС HP-UX
  • OpenBSD, замечания по установке
  • Инструкции по инсталляции для ОС Solaris
  • Инструкции по установке на Debian GNU/Linux

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

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

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

Для компиляции PHP из исходных кодов вам потребуется следующее:

  • Базовые знания Unix (способность обращаться с "make" и компилятором C)
  • Компилятор ANSI C
  • Веб-сервер
  • Любые компоненты, специфичные для отдельных модулей PHP (такие как библиотеки GD, PDF и т.д.)

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

  • autoconf: 2.13+ (для PHP < 5.4.0), 2.59+ (для PHP >= 5.4.0), 2.64+ (для PHP >= 7.2.0)
  • automake: 1.4+
  • libtool: 1.4.x+ (кроме версии 1.4.2)
  • re2c: Версия 0.13.4 или новее
  • flex: Версия 2.5.4 (для PHP <= 5.2)
  • bison:
    • PHP 5.4: 1.28, 1.35, 1.75, 1.875, 2.0, 2.1, 2.2, 2.3, 2.4, 2.4.1, 2.4.2, 2.4.3, 2.5, 2.5.1, 2.6, 2.6.1, 2.6.2, 2.6.4
    • PHP 5.5: 2.4, 2.4.1, 2.4.2, 2.4.3, 2.5, 2.5.1, 2.6, 2.6.1, 2.6.2, 2.6.3, 2.6.4, 2.6.5, 2.7
    • PHP 5.6: >= 2.4, < 3.0
    • PHP 7.0 - 7.3: 2.4 и выше (включая Bison 3.x)
    • PHP 7.4: > 3.0

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

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

Замечание:

Некоторые Unix системы (такие как OpenBSD и SELinux) могут запрещать, из соображений безопасности, выделение памяти одновременно как записываемой и исполняемой. Это называется PaX MPROTECT или нарушение защиты W^X. Тем не менее, такой режим выделения памяти необходим для поддержки JIT компиляции PCRE JIT, так что в таких случаях необходимо собирать PHP без поддержки JIT компиляции PCRE, либо бинарные файлы должны быть внесены в белый список операционной системы,

Замечание: Кросс-компиляция под ARM с помощью "Android toolchain" на данный момент не поддерживается.


Apache 1.3.x на системах Unix

Этот раздел включает инструкции по установке Apache и PHP на платформах Unix. Установка PHP с Apache2 описана в соответствующем разделе.

Вы можете менять аргументы configure на шаге 10 ниже. Полный список аргументов доступен в списке основных параметров конфигурации. А параметры, специфичные для различных расширений, описаны в разделах посвященных соответствующим расширениям. В инструкции ниже опущены номера версий - вы должны заменить 'xxx' на номер версии присутствующий в именах скачанных вами файлов.

Пример #1 Инструкция по установке PHP, как подгружаемого модуля Apache

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. Теперь мы сконфигурируем PHP. Здесь вы можете настроить установку
     PHP при помощи параметров скрипта configure.
     Вы можете включить или выключить некоторые расширения. Просмотрите вывод
     команды ./configure --help для получения полного списка параметров
     конфигурации. В нашем примере мы сконфигурируем PHP очень просто -
     с поддержкой Apache 1 и MySQL. В вашей системе путь до apxs может
     отличаться от указанного в примере.

      ./configure --with-mysql --with-apxs=/www/bin/apxs

11. make
12. make install

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

    Заметьте, что 'make install' установит так же PEAR,
    различные инструменты PHP - такие как phpize, версию PHP для командной
    строки (PHP CLI) и т.д.

13. Настройте ваш php.ini:

      cp php.ini-development /usr/local/lib/php.ini

    Вероятно, вы захотите изменить некоторые настройки в php.ini.
    Если вы предпочитаете держать файл php.ini в другом месте, используйте
    параметр --with-config-file-path=/some/path в шаге 10.

    Если вы используете php.ini-production, прочитайте его, чтобы знать какие
    изменения в поведении PHP это повлечет.

14. Отредактируйте ваш httpd.conf, чтобы Apache подгружал модуль PHP. Путь в
    правой части инструкции LoadModule должен указывать на модуль PHP. Команда make
    install может добавить эту иструкцию автоматически, но этого может и не
    произойти, поэтому проверьте, чтобы убедиться.

      LoadModule php5_module libexec/libphp5.so

15. Так же в секции AddModule файла httpd.conf, несколько ниже
    ClearModuleList, добавьте следующее:

      AddModule mod_php5.c

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

      AddType application/x-httpd-php .php .phtml

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

      AddType application/x-httpd-php-source .phps

17. Используйте стандартную процедуру запуска сервера. (Нужно остановить
    и заново запустить сервер, процедура перезапуска с использованием сигналов
    HUP или USR1 в данном случае не подходит.)

В качестве альтернативы, можно установить PHP, как статический модуль Apache:

Пример #2 Инструкция по статической сборке PHP и Apache

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-5.x.y.tar.gz | tar xf -
6.  cd php-5.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/php5/libphp5.a
    (Строка выше корректна. Файл libphp5.a не существует на
    данном этапе, он будет создан.)

12. make
    (Теперь вы должны получить бинарный файл httpd, который вы можете скопировать
    в каталог bin сервера Apache. Затем вам надо выполнить "make install",
    если это ваша первая установка)

13. cd ../php-5.x.y
14. cp php.ini-development /usr/local/lib/php.ini

15. Для изменения конфигурации PHP можно отредактировать файл /usr/local/lib/php.ini.
    Отредактируйте httpd.conf или srm.conf, добавив туда:
    AddType application/x-httpd-php .php

В зависимости от варианта вашей установки Apache и версии Unix, возможно множество путей остановки и запуска сервера. Ниже приведены несколько распространенных команд перезапуска сервера для различных установок Apache и Unix-систем. Замените /path/to/ на реальный путь до приложений в вашей системе.

Пример #3 Примеры команд перезапуска Apache

1. Некоторые дистрибутивы Linux и системы SysV:
/etc/rc.d/init.d/httpd restart

2. Использование скрипта apachectl:
/path/to/apachectl stop
/path/to/apachectl start

3. httpdctl и httpsdctl (использующий OpenSSL), аналогично apachectl:
/path/to/httpsdctl stop
/path/to/httpsdctl start

4. При использовании mod_ssl или другого SSL сервера, можно сделать
ручную остановку и пуск:
/path/to/apachectl stop
/path/to/apachectl startssl

Пути к apachectl и http(s)dctl часто различаются. Если в вашей системе есть команды locate или whereis, или which, они помогут вам найти программы, контролирующие сервер.

Другие варианты компиляции PHP для Apache:

./configure --with-apxs --with-pgsql

Будет создан файл подгружаемой библиотеки libphp5.so. Эта библиотека должна быть подгружена в Apache с использованием директивы LoadModule конфигурационного файла httpd.conf. В данном случае поддержка PostgreSQL будет встроена в эту библиотеку.

./configure --with-apxs --with-pgsql=shared

Будет создан файл подгружаемой библиотеки libphp5.so для Apache, но так же будет создана подгружаемая библиотека pgsql.so, которая должна быть подгружена в PHP одним из двух способов: директивой extension в php.ini или в скрипте, использованием функции dl().

./configure --with-apache=/path/to/apache_source --with-pgsql

Будет создана библиотека libmodphp5.a. Файл mod_php5.c и несколько сопровождающих файлов будут скопированы в каталог src/modules/php5 дерева исходных кодов Apache. Затем следует скомпилировать Apache, используя --activate-module=src/modules/php5/libphp5.a, система сборки Apache создаст libphp5.a и статически свяжет с исполняемым httpd. Поддержка PostgreSQL будет включена непосредственно в httpd и конечным результатом будет единственный исполняемый файл httpd, включающий все от Apache и все от PHP.

./configure --with-apache=/path/to/apache_source --with-pgsql=shared

Так же как и прежде, взамен поддержки PostgreSQL, встроенной непосредственно в конечный исполняемый файл httpd, вы получите библиотеку pgsql.so, которую должны будете загрузить в PHP одним из двух способов: php.ini или используя функцию dl().

Выбирая способ установки PHP, следует учитывать преимущества и недостатки каждого из методов. Если вы собираете PHP, как подгружаемый модуль Apache - вы сможете компилировать PHP и Apache отдельно друг от друга и вам не нужно будет перекомпилировать Apache, если вы захотите изменить конфигурацию PHP. Если вы собираете PHP статически - PHP будет работать чуть быстрее. Для получения более подробной информации посетите страницу посвященную поддержке » DSO (Dynamic Shared Object) в Apache.

Замечание:

В настоящее время файл конфигурации Apache httpd.conf обычно поставляется со следующими настройками:

User nobody
Group "#-1"
Пока вы не измените группу на "Group nogroup" или что-нибудь вроде "Group daemon" (такая настройка довольно распространена), PHP не сможет открывать файлы.

Замечание:

Убедитесь, что вы указываете установленную версию apxs, когда используете --with-apxs=/path/to/apxs . Вы НЕ ДОЛЖНЫ указывать версию apxs, поставляемую с исходными кодами Apache - только действительно установленную в вашу систему вместе с сервером.


Apache 2.x на Unix системах

Этот раздел описывает установку PHP c Apache 2.x на Unix системах.

Внимание

Мы не рекомендуем использовать потоковый MPM в промышленной среде вместе с Apache 2. Вместо этого, используйте prefork MPM, используемый по умолчанию в Apache 2.0 и 2.2. Подробную информацию по этому вопросу вы можете найти в соответствующем разделе FAQ Apache2 и потоковый MPM

Самым авторитетным источником информации по Apache 2.x является » документация Apache. Более подробная информация о настройках при установке может быть найдена там.

Самая последняя версия Apache Http Server может быть получена на » странице загрузки Apache, а адрес соответствующей версии PHP был указан выше. Это краткое руководство описывает лишь базовую установку Apache 2.x и PHP. Для получения более детальной информации прочитайте » документацию Apache. В инструкции ниже опущены номера версий - замените 'NN' на номер, соответствующий скачанной вами версии Apache.

На данный момент есть две версии Apache 2.x - 2.4 и 2.2. Хотя для выбора каждой из них существуют отдельные доводы, 2.4 является наиболее свежей и рекомендуемой версией, если вас устраивает такой выбор. Тем не менее, данные инструкции будут работать как для 2.4, так и для 2.2. Обратите внимание, что Apache httpd 2.2 официально больше не поддерживается, поэтому дальнейшая разработка не будет продолжаться, также как и приниматься новые патчи.

  1. Скачайте Apache HTTP server как было указано выше и распакуйте его:

    tar -xzf httpd-2.x.NN.tar.gz

  2. Аналогично, скачайте и распакуйте исходные коды PHP:

    tar -xzf php-NN.tar.gz

  3. Скомпилируйте и установите Apache. Более подробную информацию по сборке Apache смотрите в его документации.

    cd httpd-2_x_NN
./configure --enable-so
make
make install

  4. Теперь ваш Apache 2.x.NN доступен как /usr/local/apache2, сконфигурирован с поддержкой подгружаемых модулей и стандартным мульти-процессным модулем (MPM) prefork. Чтобы протестировать правильность установки используйте стандартную процедуру запуска Apache, такую как:

    /usr/local/apache2/bin/apachectl start
    Затем остановите сервер, чтобы сконфигурировать и установить PHP:
    /usr/local/apache2/bin/apachectl stop

  5. Теперь мы сконфигурируем и соберем PHP. Здесь вы можете настроить установку PHP с помощью различных опций, указывающих, например, какие расширения нужно включить. Просмотрите вывод команды ./configure --help для получения полного списка параметров конфигурации. В нашем примере мы сконфигурируем PHP очень просто - с поддержкой Apache и MySQL.

    Если вы собирали Apache из исходников, как было описано выше, то используйте путь до apxs как указано в следующем примере, иначе, корректируйте этот путь соответствующим вашей установке образом. Учтите также, что в некоторых дистрибутивах apxs может иметь имя apxs2.

    cd ../php-NN
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysqli
make
make install

    Если вы решите изменить параметры конфигурации после установки, вам надо будет повторить только три последних шага (configure, make, make install). Вам нужно будет только перезапустить Apache, чтобы новые модули подгрузились и начали работать. Перекомпиляция Apache для этого не требуется.

    Заметьте, что если не указано обратное, то 'make install' установит так же PEAR, различные инструменты PHP - такие как phpize, версию PHP для командной строки (PHP CLI) и т.д.

  6. Настройка вашего php.ini

    cp php.ini-development /usr/local/lib/php.ini

    Вероятно, вы захотите изменить некоторые настройки в php.ini. Если вы предпочитаете держать файл php.ini в другом месте, используйте параметр --with-config-file-path=/some/path в шаге 5.

    Если же вы используетеphp.ini-production, прочитайте его, чтобы знать какие изменения в поведении PHP это повлечет.

  7. Отредактируйте ваш httpd.conf, чтобы Apache загружал модуль PHP. Путь в правой части инструкции LoadModule должен указывать на модуль PHP. Команда make install может добавить эту инструкцию автоматически, но этого может и не произойти, поэтому проверьте, чтобы убедиться.

    For PHP 7:

    LoadModule php7_module modules/libphp7.so

    For PHP 5:

    LoadModule php5_module modules/libphp5.so

  8. Теперь следует сконфигурировать Apache, чтобы он передавал файлы с некоторыми расширениями на обработку модулю PHP. В нашем примере сделаем это для .php файлов. Вместо обычного использования директивы Apache AddType, мы хотим избежать интерпретации как PHP потенциально опасных загрузок и файлов наподобие exploit.php.jpg. С помощью данного примера можно указать для интерпретации PHP любые расширения, просто добавив их в конец списка. Продемонстрируем это на расширении .php.

    <FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

    Или, если мы хотим добавить расширения .php, .php2, .php3, .php4, .php5, .php6 и .phtml, это можно записать так:

    <FilesMatch "\.ph(p[2-6]?|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>

    Чтобы PHP отображал содержимое файлов .phps с подсветкой синтаксиса, нужно внести соответствующую директиву

    <FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

    Можно использовать mod_rewrite для отображения любого .php файла с подсветкой синтаксиса, без нужды его переименования в .phps:

    RewriteEngine On
RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]

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

  9. Используйте стандартную процедуру запуска Apache, например:

    /usr/local/apache2/bin/apachectl start

    ИЛИ

    service httpd restart

Если вы следовали инструкциям выше, то на данном этапе должны иметь запущенный веб-сервер Apache2 с поддержкой PHP, как модуля SAPI. Конечно, для PHP и Apache доступно гораздо больше параметров конфигурации. Используйте ./configure --help в соответствующей папке с исходными кодами для получения полного списка параметров конфигурации.

Если вы хотите собрать многопоточную версию Apache, то при сборке вам следует указать модуль MPM worker вместо стандартного модуля MPM prefork. Чтобы сделать это, нужно добавить следующий аргумент к ./configure на шаге 3:

--with-mpm=worker

Не следует бездумно использовать эту настройку, используйте ее только если вы понимаете все последствия этого решения. Документация Apache по » модулям MPM значительно глубже раскрывает эту тему.

Замечание:

Если вы хотите использовать зависимый контент (content negotiation), прочитайте Apache MultiViews FAQ.

Замечание:

Для сборки многопоточной версии Apache, ваша система должна поддерживать потоки. Это так же подразумевает сборку PHP c экспериментальной поддержкой Zend Thread Safety (ZTS). И, как следствие, не все расширения PHP смогут работать. Рекомендуется установка Apache с модулем MPM по умолчанию - prefork.


Установка Nginx 1.4.x на систему Unix

Данная документация описывает процесс установки и настройки PHP с PHP-FPM для Nginx 1.4.x HTTP сервера.

Данное руководство подразумевает, что вы собрали Nginx из исходников, следовательно, все бинарные файлы и файлы конфигурации располагаются в /usr/local/nginx. Если нет, и вы получили Nginx другим способом, тогда, пожалуйста, обратитесь к » Nginx Wiki, чтобы перевести данное руководство для вашей установки.

Данное руководство охватывает азы настройки Nginx сервера, для обработки PHP приложений и отображения их на порту 80. Рекомендуется изучить документацию Nginx и PHP-FPM, если вы хотите оптимизировать вашу установку за рамками данной документации.

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

  1. Рекомендуется посетить » страницу установки на Nginx Wiki, для информации о получении и установке Nginx.

  2. Получение и распаковака исходники PHP:

    tar zxf php-x.x.x

  3. Настройка и сборка PHP. В этом разделе описывается настройка и сборка PHP из исходных кодов. Запустите ./configure --help для получения списка доступных опций. В нашем примере мы сделаем простые настройки с PHP-FPM и поддержкой MySQLi.

    cd ../php-x.x.x
./configure --enable-fpm --with-mysqli
make
sudo make install

  4. Перемещение файлов настройки в нужные директории

    cp php.ini-development /usr/local/php/php.ini
cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf
cp sapi/fpm/php-fpm /usr/local/bin

  5. Важно, что мы запрещаем Nginx от отправлять запросы в бэкенд PHP-FPM, если файл не существует, что помогает избежать атаки инъекции скрипта.

    Мы может исправить это путем установки директивы cgi.fix_pathinfo равной 0 в нашем php.ini файле.

    Редактирование php.ini:

    vim /usr/local/php/php.ini

    Найдите опцию cgi.fix_pathinfo= и измените ее следующим образом:

    cgi.fix_pathinfo=0

  6. php-fpm.conf должен быть модифицирован, чтобы точно определить, что php-fpm должен работать под пользователем www-data и группой www-data до того, как мы запустим сервис:

    vim /usr/local/etc/php-fpm.d/www.conf

    Найдите и измените следующее:

    ; Unix user/group of processes
; Замечание: Пользователь является обязательным. Если группа не установлена,
; то будет использована стандартная группа пользователя.
user = www-data
group = www-data

    Теперь можно запускать сервис php-fpm:

    /usr/local/bin/php-fpm

    Более в этом рукомодстве мы не будет касаться настройки php-fpm. Если вам необходимо произвести дополнительные настройки - обратитесь к документации по php-fpm.

  7. Теперь Nginx должен быть настроен на поддержку выполнения PHP:

    vim /usr/local/nginx/conf/nginx.conf

    Измените блок "location", заданный по умолчанию, так, чтобы можно было обрабатывать .php файлы:

    location / {
    root   html;
    index  index.php index.html index.htm;
}

    Следующий шаг - убедиться, что .php файлы отправляются в бэкенд PHP-FPM. Введите следующее:

    location ~* \.php$ {
    fastcgi_index   index.php;
    fastcgi_pass    127.0.0.1:9000;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
}

    Перезапустите Nginx.

    sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx

  8. Создайте тестовый файл

    rm /usr/local/nginx/html/index.html
echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php

    Теперь откройте в браузере http://localhost. Должна отобразиться информация phpinfo().

Следуя вышеуказанным шагам, вы получите рабочий Nginx сервер с поддержкой PHP как модуля FPM SAPI. Конечно, доступно большое число опций настроек для Nginx и PHP. Для более подробной информации наберите ./configure --help в соответствующем дереве исходных кодов.


Установка PHP на Lighttpd 1.4 на Unix-системах

Этот раздел содержит информацию по установке PHP на Unix-системы с сервером Lighttpd 1.4.

Прочитайте, пожалуйста, инструкции по установке Lighttpd в » документации по Lighttpd перед установкой PHP.

Fastcgi - предпочитаемый интерфейс для связи PHP и Lighttpd. Fastcgi доступен по умолчанию в PHP начиная с версии 5.3. Для предыдущих версий необходимо конфигурировать PHP с флагом --enable-fastcgi. Чтобы убедиться, что PHP скомпилирован с поддержкой fastcgi, необходимо проверить наличие (cgi-fcgi) в выводе команды php -v. Для версии 5.2.5 это будет выглядеть так: PHP 5.2.5 (cgi-fcgi). До версии 5.2.3 не существовало отдельного файла php-cgi, fastcgi встривался в основной бинарный файл php.

Управление процессами php через Lighttpd

Для настройки Lighttpd на соединение с PHP и порождения процессов fastcgi необходимо отредактировать конфигурационный файл lighttpd.conf. Предпочтительнее подключаться к процессам fastcgi используя unix-сокеты.

Пример #1 Пример части файла lighttpd.conf

server.modules += ( "mod_fastcgi" )

fastcgi.server = ( ".php" =>
  ((
    "socket" => "/tmp/php.socket",
    "bin-path" => "/usr/local/bin/php-cgi",
    "bin-environment" => (
      "PHP_FCGI_CHILDREN" => "16",
      "PHP_FCGI_MAX_REQUESTS" => "10000"
    ),
    "min-procs" => 1,
    "max-procs" => 1,
    "idle-timeout" => 20
  ))
)

Директива bin-path задает путь к исполняемому файлу php. Lighttpd будет динамически создавать дочерние процессы php, согласно переменной окружения PHP_FCGI_CHILDREN. Директива bin-environment задает настройки для дочерних процессов. PHP_FCGI_MAX_REQUESTS определяет порог, при достижении которого PHP завершит дочерний процесс. Директив "min-procs" и "max-procs" обычно стоит избегать. PHP управляет только своими дочерними процессами, и инструменты кэширования в байткод (например, APC) будут использоваться только в этих дочерних процессах. Если значение "min-procs" установлено больше 1, общее количество процессов, обрабатывающих запросы, будет равно PHP_FCGI_CHILDREN * min-procs.

Управление процессами с помощью spawn-fcgi

Lighttpd предоставляет программу spawn-fcgi для облегчения управления дочерними процессами.

Управление процессами с помощью php-cgi

Управлять процессами можно и без spawn-fcgi, но это потребует некоторых доработок. Переменная окружения PHP_FCGI_CHILDREN указывает количество дочерних процессов, запускаемых PHP для обработки входящих запросов. Переменная PHP_FCGI_MAX_REQUESTS отвечает за количество запросов, которые обработает один процесс. Ниже приведен простой bash-скрипт, облегчающий создание дочерних процессов.

Пример #2 Создание FastCGI-обработчиков

#!/bin/sh

# Местоположение бинарного файла php-cgi
PHP=/usr/local/bin/php-cgi

# Местоположение PID-файла
PHP_PID=/tmp/php.pid

# Привязка к адресу
#FCGI_BIND_ADDRESS=10.0.1.1:10000
# Привязка к сокету
FCGI_BIND_ADDRESS=/tmp/php.sock

PHP_FCGI_CHILDREN=16
PHP_FCGI_MAX_REQUESTS=10000

env -i PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN \
       PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS \
       $PHP -b $FCGI_BIND_ADDRESS &

echo $! > "$PHP_PID"

Подключение к удаленным процессам FCGI

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

Пример #3 Подключение к удаленным процессам fastcgi

fastcgi.server = ( ".php" =>
   (( "host" => "10.0.0.2", "port" => 1030 ),
    ( "host" => "10.0.0.3", "port" => 1030 ))
)


Веб-серверы Sun, iPlanet и Netscape на ОС Sun Solaris

Этот раздел содержит заметки и полезные советы по установке PHP для веб-серверов Sun Java System Web Server, Sun ONE Web Server, iPlanet и Netscape на ОС Sun Solaris.

Начиная с PHP 4.3.3 вы можете использовать PHP-скрипты с модулем NSAPI для генерации пользовательских списков директорий и страниц ошибок. Также доступны дополнительные функции для обеспечения совместимости с Apache. Для получения поддержки современных веб-серверов читайте заметки о подзапросах.

Более подробную информацию об использовании PHP в Netscape Enterprise Server (NES) читайте по ссылке: » http://benoit.noss.free.fr/php/install-php4.html

Для сборки PHP с веб-серверами Sun JSWS/Sun ONE WS/iPlanet/Netscape, введите корректную директорию установки в опции --with-nsapi=[DIR]. Обычно используется директория по умолчанию /opt/netscape/suitespot/. Также, пожалуйста, прочитайте /php-xxx-version/sapi/nsapi/nsapi-readme.txt.

  1. Установите следующие пакеты из » http://www.sunfreeware.com/ или другого места:

    • 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 (если нужна поддержка mysql)
    • perl-5_005_03-sol26-sparc-local
    • tar-1.13 (GNU tar)

  2. Убедитесь, что переменная окружения PATH содержит необходимые директории PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin и они доступны в окружении - export PATH.
  3. gunzip php-x.x.x.tar.gz (если у вас дистрибутив .gz, иначе переходите к пункту 4).
  4. tar xvf php-x.x.x.tar
  5. Перейдите в директорию с распакованным дистрибутивом: cd ../php-x.x.x

  6. Перед выполнением следующего шага, убедитесь, что ваш netscape сервер установлен по пути /opt/netscape/suitespot/. Если это не так, то в следующей команде поменяйте его на нужный и запустите:

    ./configure --with-mysql=/usr/local/mysql \
--with-nsapi=/opt/netscape/suitespot/ \
--enable-libgcc

  7. Затем запустите make и, когда команда отработает, запустите make install.

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

Инструкции по конфигурации Sun/iPlanet/Netscape

Для начала вам потребуется добавить несколько новых путей в переменную окружения LD_LIBRARY_PATH, чтобы веб-сервер мог найти все необходимые разделяемые библиотеки. Лучше всего внести эти изменения в скрипте запуска веб-сервера. Обычно этот скрипт распологается по пути /path/to/server/https-servername/start. Также вам вероятно понадобится отредактировать конфигурационные файлы, расположенные тут: /path/to/server/https-servername/config/.

  1. Добавьте следующие строки в mime.types:

    type=magnus-internal/x-httpd-php exts=php

  2. Отредактируйте magnus.conf (для серверов >= 6) или obj.conf (для серверов < 6) и добавьте следующие строки. Путь shlib может отличаться для разных систем, но в общем случае будет что-то типа /opt/netscape/suitespot/bin/libphp4.so. Добавьте следующие строки после 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) Параметр php_ini не обязателен, но с ним вы сможете разместить ваш php.ini в директории конфигурации вашего веб-сервера.

  3. Сконфигурируйте объекты по умолчанию в obj.conf (для классов виртуального сервера [версия 6.0+] в его vserver.obj.conf):

    <Object name="default">
.
.
.
.#Обратите внимание, что следующая строка должны быть после всех строк 'ObjectType'
.#и до всех строк 'AddLog'
Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
.
.
</Object>
    (PHP >= 4.3.3) В качестве дополнительных параметров вы можете добавить специальные значения php.ini, к примеру, вы можете установить docroot="/path/to/docroot" специфичный для контекста, запущенного php4_execute. Для логических ключей используйте значения 0 и 1, а не "On","Off",... (иначе они не будут работать корректно), т.е. zlib.output_compression=1, а не zlib.output_compression="On"

  4. Это необходимо только если вы хотите установить директорию, которая содержит только скрипты PHP (что-то типа директории cgi-bin):

    <Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute [inikey=value inikey=value ...]
</Object>
    В последствии вы сможете сконфигурировать директорию в консоли Administration и назначить ей стиль x-httpd-php. Все файлы в ней будут запускаться с помощью PHP. Это можно использовать для сокрытия использования PHP, переименовав все файлы в .html.

  5. Настройка аутентификации: аутентификация PHP не может использоваться совместно с другими типами аутентификации. ВСЯ АУТЕНТИФИКАЦИЯ ПЕРЕДАЕТСЯ ВАШЕМУ PHP СКРИПТУ. Для настройки аутентификации PHP для всего сервера, добавьте следующую строку для вашего объекта по умолчанию:

    <Object name="default">
AuthTrans fn=php4_auth_trans
.
.
.
</Object>

  6. Для использования аутентификации PHP для единичной директории, добавьте следующее:

    <Object ppath="d:\path\to\authenticated\dir\*">
AuthTrans fn=php4_auth_trans
</Object>

Замечание:

Размер стека, который сможет использовать PHP, зависит от настроек вашего веб-сервера. Если очень большие скрипты вызывают падения, то рекомендуется увеличить его через Admin Server (в разделе "MAGNUS EDITOR").

Окружение CGI и рекомендованные изменения в php.ini

При написании скриптов PHP для Sun JSWS/Sun ONE WS/iPlanet/Netscape важно помнить, что это многопоточный веб-сервер. В связи с тем, что все запросы обрабатываются в одном процессе (процесс самого веб-сервера) и у этого процесса одно окружение для всех. Если вы хотите получить переменную CGI, например, PATH_INFO или HTTP_HOST, то использование старых методов типа getenv() или подобных (регистрация глобальных переменных в окружении, $_ENV) будет работать некорректно. Вы можете получить только переменные окружения самого веб-сервера, но не какие-либо корректные переменные CGI.

Замечание:

Почему же в окружении существуют переменные (некорректные) CGI?

Ответ: Это потому, что вы запускаете процесс веб-сервера из "admin server", который запускает стартовый скрипт веб-сервера, который вы хотите запустить, как CGI скрипт (скрипт CGI внутри "admin server"!). Это объясняет почему окружение вообще содержит какие-либо переменные CGI. Вы можете протестировать это запустив веб-сервер не из "administration server". Используйте командную строку под пользователем root для запуска веб-сервера и вы не найдете никаких переменных CGI в окружении.

Просто измените ваш скрипт, чтобы он получал переменные CGI правильным образом для PHP 4.x, используя суперглобальный массив $_SERVER. Если вы работаете со старым скриптом, использующим $HTTP_HOST и т.д, вам необходимо включить register_globals в php.ini и изменить порядок переменных (важно: удалите из него "E", так как тут вам не нужны переменные окружения):

variables_order = "GPCS"
register_globals = On

Использование для создания пользовательских списков директории и страниц ошибок (PHP >= 4.3.3)

Вы можете использовать PHP для создания страниц ошибок "404 Not Found" и похожих. Добавьте следующее для объекта в obj.conf для каждой страницы с ошибкой, которую вы хотите переопределить:

Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]
где XXX - код ошибки HTTP. Пожалуйста, удалите все прочие директивы Error, которые могут пересекаться с вашими. Если вы хотите сделать общую страницу для всех ошибок, оставьте параметр code пустым. Ваш скрипт получит код статуса HTTP в $_SERVER['ERROR_TYPE'].

Другая возможность - создание пользовательских списков содержимого директории. Просто создайте скрипт, который будет отображать список директории и замените соответствующую строку Service для type="magnus-internal/directory" в obj.conf на следующее:

Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
Для страниц с ошибками и для страниц со списками директорий, оригинальный URI и подмененный URI будут содержаться в переменных $_SERVER['PATH_INFO'] и $_SERVER['PATH_TRANSLATED'].

Замечание о nsapi_virtual() и подзапросах (PHP >= 4.3.3)

Модуль NSAPI поддерживает функцию nsapi_virtual() (псевдоним: virtual()) для создания подзапросов на веб-сервере и вставки результатов на страницу. Эта функция использует недокументированные возможности библиотеки NSAPI. На Unix модуль самостоятельно ищет необходимую функциональность и использует ее, если она доступна. Если же она недоступна, nsapi_virtual() будет запрещено.

Замечание:

Но будьте осторожны: поддержка nsapi_virtual() - ЭКСПЕРИМЕНТАЛЬНАЯ!!!


Веб-сервер LiteSpeed/OpenLiteSpeed на системах Unix

LiteSpeed PHP - это оптимизированная сборка PHP для работы с продуктами LiteSpeed через LiteSpeed SAPI. LSPHP запускается как самостоятельный процесс и имеет отдельный исполняемый файл, который используется как обычный исполняемый файл командной строки для запуска скриптов PHP.

LSAPI - это очень оптимизированый API, позволяющий LiteSpeed взаимодействовать с веб-движками других производителей. Он имеет тот же протокол, что и FCGI, но гораздо более эффективный.

Эта документация содержит инструкции по установке и конфигурированию PHP с LSAPI для веб-серверов LiteSpeed (LSWS) )и OpenLiteSpeed (OLS).

Это руководство предполагает, что LSWS или OLS установлены по стандартным путям и со стандартными флагами. Директория установки по умолчанию для обоих веб-серверов - /usr/local/lsws, и оба они запускаются из ее подкаталога bin.

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

  1. Для получения и установки LSWS и OLS посетите сайт LiteSpeed Web Server wiki - » инструкции по установке или OpenLiteSpeed wiki - » инструкции по установке.

  2. Загрузите и распакуйте исходные коды PHP:

    mkdir /home/php
cd /home/php
wget http://us1.php.net/get/php-x.x.x.tar.gz/from/this/mirror
tar -zxvf php-x.x.x.tar.gz
cd php-x.x.x

  3. Сконфигурируйте и соберите PHP. На этом этапе можно воспользоваться дополнительными опциями для более тонкой настройки PHP и добавления необходимых модулей. Запустите ./configure --help для получения списка возможных опций. В нижеследующем примере используются стандартные рекомендованные настройки для LSWS:

    ./configure ... '--with-litespeed'
make
sudo make install

  4. Проверьте установку LSPHP

    Один из самых простых путей для проверки корректности установки PHP - это запустить следующие команды:

    cd /usr/local/lsws/fcgi-bin/
./lsphp5 -v

    Должна появиться информация о сборке PHP:

    PHP 5.6.17 (litespeed) (built: Mar 22 2016 11:34:19)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

    Обратите внимание на слово litespeed. Это означает, что PHP собран с поддержкой LSAPI.

После выполненения описанных выше шагов, LSWS/OLS должны запускаться с поддержкой PHP как модуля SAPI. Существует достаточно много дополнительных опций конфигурации для настройки работы LSWS / OLS c PHP. Более подробно почитать о них можно на сайте LiteSpeed wiki в разделе » PHP.

Использование LSPHP из командной строки:

Режим командной строки LSPHP(LSAPI + PHP) используется для обработки скриптов PHP запущенных на удаленном сервере без необходимости держать на нем веб-сервер. Это используется для обработки скриптов PHP на локальном веб-сервере (раздельно). Такая установка удобна для удобства масштабирования, так как нагрузка по обработке скриптов ложится на удаленный сервер.

Запустите lsphp из командной строки на удаленном сервере: LSPHP - является исполняемым файлом, может быть запущен вручную и привязан к IPv4, IPv6 или сокету Unix с помощью опции -b socket_address.

Пример:

Привязка LSPHP к порту 3000 на всех интерфейсах IPv4 и IPv6:

/path/to/lsphp -b [::]:3000

Привязка LSPHP к 3000 всех интерфейсов IPv4:

/path/to/lsphp -b *:3000

Привязка LSPHP к 192.168.0.2:3000:

/path/to/lsphp -b 192.168.0.2:3000

Привязка LSPHP к сокету Unix /tmp/lsphp_manual.sock с возможностью получать из него запросы:

/path/to/lsphp -b /tmp/lsphp_manual.sock

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

PHP_LSAPI_MAX_REQUESTS=500 PHP_LSAPI_CHILDREN=35 /path/to/lsphp -b IP_address:port

На данный момент LiteSpeed PHP можно использовать с веб-серверами LiteSpeed, OpenLiteSpeed и Apache mod_lsapi. Подробности о конфигурации сервера читайте на страницах » LiteSpeed Web Server и » OpenLiteSpeed.

LSPHP можно установить различными способами.

CentOS: На CentOS, LSPHP может быть установлен из репозиториев LiteSpeed или Remi, используя » RPM.

Debian: На Debian, LSPHP можно поставить из репозитория LiteSpeed, используя » apt.

cPanel: Для установки с cPanel и LSWS/OLS используя EasyApache 4, читайте соответствующую » страницу wiki.

Plesk: Plesk можно использовать с LSPHP на CentOS, CloudLinux, Debian и Ubuntu. Более подробно описано в » wiki


Установка с интерфейсами CGI и командной строки

По умолчанию, PHP собирается одновременно как CLI и CGI программа, которая может быть использована для обработки CGI-запросов. PHP как модуль сервера выигрывает в производительности, однако PHP CGI позволяет запускать PHP от пользователя, отличного от того, под которым исполняется сервер.

Внимание

Используя установку CGI, ваш сервер открыт перед несколькими возможными уязвимостями. Пожалуйста, ознакомьтесь с разделом "Безопасность CGI" чтобы узнать, как можно защитить себя от таких атак.

Тестирование

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

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

Некоторые переменные окружения сервера не определены в текущей » спецификации CGI/1.1. Определены только следующие переменные: 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 и SERVER_SOFTWARE. Все остальное должно обрабатываться как дополнительные расширения (vendor extensions).


Инструкции по установке для ОС HP-UX

Этот раздел содержит инструкции, характерные для установки PHP в системах HP-UX.

Существует два основных способа установки PHP в системах HP-UX. Это компилирование из исходных кодов или установка бинарного пакета.

Официальный репозиторий бинарных пакетов расположен по ссылке: » http://software.hp.com/

На данный момент документация по компилированию PHP (и дополнений) из исходных кодов в системах HP-UX удалена из этого раздела. Необходимую информацию можно найти на внешнем ресурсе (на английском языке): » Сборка Apache и PHP на HP-UX 11.11


OpenBSD, замечания по установке

Эта секция содержит замечания и советы, касающиеся установки PHP на » OpenBSD 5.8.

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

Использование бинарных пакетов для установки PHP на OpenBSD - это простейший и рекомендованный способ. Ядро (основной пакет) отделено от различных модулей, но каждый из них может быть установлен или удален независимо от другого. Файлы, которые вам понадобятся, вы можете найти на вашем OpenBSD CD или на FTP.

Основной пакет, который необходимо установить - это php, он содержит базовый движок (плюс gettext и iconv). Далее, обратите внимание на пакеты модулей, такие как php-mysql или php-imap. Вам сдедует использовать команду phpxs для активации или деактивации этих модулей в вашем php.ini.

Пример #1 Пример установки пакетов в OpenBSD

# pkg_add php
# pkg_add php-fpm
# pkg_add php-mysql
  (install the PEAR libraries)
# pkg_add pear

Следуйте инструкциям, выводимым пакетами во время установки!

  (to remove packages)
# pkg_delete php
# pkg_delete php-fpm
# pkg_delete php-mysql
# pkg_delete pear

Читайте страницу руководства » packages(7) для большей информации о бинарных пакетах в OpenBSD.

Использование портов

Вы можете также скомпилировать PHP из исходников, используя » дерево портов. Тем не менее, этот способ рекомендован только для тех, кто хорошо знакомых с OpenBSD. Порт PHP 4 разбит на две поддиректории: ядро и модули. Директория модулей генерирует подпакеты для всех поддерживаемых модулей PHP. Если какие-либо из них вам не нужны, используйте FLAVOR no_*. Например, для пропуска модуля imap, установите FLAVOR в no_imap.

Стандартные проблемы

  • Apache и Nginx более не являются веб-серверами по умолчанию для OpenBSD, но их очень легко найти и поставить из портов и пакетов. Новый сервер по умолчанию называется 'httpd'.
  • Стандартная установка httpd работает в » chroot(2) окружении, что запрещает PHP доступ к файлам вне /var/www. Так что вам понадобится создать директорию /var/www/tmp для сохранения сессионных файлов PHP, или использовать альтернативный бэкенд для управления сессиями. К тому же, сокеты баз данных будет необходимо размещать в chroot, либо слушивать на интерфейсе localhost. Если вы используете функции работы с сетью, некоторые файлы из /etc, такие как /etc/resolv.conf и /etc/services необходимо будет поместить в /var/www/etc. В OpenBSD, пакет PEAR автоматически устанавливается в правильные директории chroot.
  • Пакет модуля » gd для OpenBSD 5.7+ требует наличия установленного XFree86. Он может быть добавлен после установки пакета, путем добавления набора файлов xbase.tgz. (Смотрите OpenBSD FAQ#4).

Старые релизы

Старые релизы OpenBSD используют систему FLAVORS для компиляции статически собранного PHP. Так как собрать бинарный пакет таким образом достаточно трудно, он объявлен устаревшим. Вы все еще можете использовать старые стабильные бинарные порты, если хотите, но они больше не поддерживаются коммандой OpenBSD. Если у вас есть какие-либо возражения, обратитесь к Анилу Мадхавапедди, сейчас он занимается поддержкой порта (ник avsm на openbsd dot com).


Инструкции по инсталляции для ОС Solaris

Данный раздел содержит инструкции и советы для установки PHP на ОС Solaris.

Требования к программному обеспечению

Зачастую в составе операционной системы Solaris отсутствует компиляторы языка C и сопутствующие им утилиты. Ознакомьтесь с этим FAQ, чтобы узнать, почему необходимо использовать GNU-версии этих утилит.

Для распаковки дистрибутива PHP вам понадобится

  • tar
  • gzip или
  • bzip2

Для компиляции PHP вам понадобится

  • gcc (рекомендован, но другие компиляторы C также могут подойти)
  • make
  • GNU sed

Для сборки некоторых расширений или редактирования исходников PHP также могут понадобиться

  • flex (до версии PHP 5.2)
  • re2c
  • bison
  • m4
  • autoconf
  • automake
Дополнительно, вам нужно будет установить (и, возможно, скомпилировать) дополнительное ПО, необходимое в вашей конфигурации, например Oracle или MySQL.

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

Вы можете упростить процесс установки в Solaris, используя утилиту pkgadd для установки нужных вам компонент. Система управления пакетами (IPS) операционной системы Solaris 11 Express также позволяет установить большинство требуемых компонент с помощью команды pkg.


Инструкции по установке на Debian GNU/Linux

Раздел содержит информацию и подсказки, относящиеся к установке PHP на » Debian GNU/Linux.

Внимание

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

Хотя и существует универсальная инструкция по установке PHP на Unix/Linux, в этом разделе мы рассмотрим особенности специфичные для Debian, такие как использование команд apt-get или aptitude. В рамках этого руководства обе эти команды рассматриваются как взаимозаменяемые.

Использование APT

Во первых, обратите внимение на то, что некоторые пакеты связаны: libapache2-mod-php5 нужен для интеграции с Apache 2, и php-pear с PEAR.

Во-вторых, перед установкой убедитесь, что список пакетов находится в актуальном состоянии. Как правило, это делается с помощью команды apt-get update.

Пример #1 Пример установки Apache 2 на Debian

# apt-get install php5-common libapache2-mod-php5 php5-cli

APT автоматически установит модуль PHP 5 для Apache 2 и все их зависимости и, затем, активирует их. Apache должен быть перезапущен для того, чтобы изменения вступили в силу. Например:

Пример #2 Остановка и запуск Apache после установки PHP

# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start

Контроль конфигурации

Изначально, PHP устанавливается только с основными модулями ядра. Если вы хотите установить дополнительные модули, такие как MySQL, cURL, GD и т.д., это также можно сделать с помощью команды apt-get.

Пример #3 Способы получить список дополнительных пакетов PHP 5

# apt-cache search php5
# aptitude search php5
# aptitude search php5 |grep -i mysql

Будет выведен список большого числа пакетов, включая несколько специфичных, таких как php5-cgi, php5-cli и php5-dev. Определите, какие вам нужны и установите с помощью apt-get или aptitude. И, так как Debian производит проверку зависимостей, вам будет выведен запрос на их установку.

Пример #4 Установка PHP с MySQL и cURL

# apt-get install php5-mysql php5-curl

APT автоматически добавит необходимые строки в соответствующие php.ini, /etc/php5/apache2/php.ini, /etc/php5/conf.d/pdo.ini, и т.д. В зависимости от модуля, будут внесены записи типа extension=foo.so. В любом случае, чтобы эти изменения вступили в силу, необходимо будет перезапустить сервер веб-сервер.

Стандартные проблемы

  • Если скрипты PHP не разбираются веб-сервером, то скорее всего это означает, что PHP не был добавлен в конфигурацию веб-сервера. На Debian это обычно /etc/apache2/apache2.conf или похожий. Смотрите документацию Debian для выяснения подробностей.
  • Модуль, по-видимому, установлен, а его функции все равно не распознаются. В таком случае убедитесь, что соответствующий ini-файл был загружен и/или веб-сервер был перезагружен после установки модуля.
  • Для установки пакетов в Debian существуют две основных команды (не считая стандартных вариантов Linux): apt-get и aptitude. Объяснения их синтаксиса, особенностей и отличий друг от друга выходит за рамки данного руководства.


Установка на macOS

Содержание

  • Использование пакетов
  • Использование готового пакета PHP
  • Компилирование PHP на macOS

Этот раздел содержит руководство и различные советы по установке PHP на macOS. PHP поставляется вместе с компьютерами Mac, компилирование на которых схоже с установкой в Unix-системах.


Использование пакетов

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

Следующие ресурсы позволяют легко устанавливать пакеты и скомпилировать двоичные файлы для PHP на Mac OS:

  • MacPorts: » http://www.macports.org/
  • Liip: » http://php-osx.liip.ch/
  • Fink: » http://www.finkproject.org/
  • Homebrew: » https://github.com/Homebrew/homebrew-php


Использование готового пакета PHP

PHP стал стандартом для Маков начиная с macOS версии 10.0.0. Включение PHP в стандартный веб-сервер делается простым раскомментированием нескольких строк в конфигурационном файле Apache httpd.conf в то время как CGI и/или CLI включены по умолчанию (доступны для использования терминальными программами).

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

Стандартная установка с использованием mod_php, который включается для стандартного веб-сервера macOS (сервер по умолчанию доступен через системные настройки) включает следующие шаги:

  1. Найдите и откройте конфигурационный файл Apache. По умолчанию он расположен по пути /private/etc/apache2/httpd.conf Использование Finder или Spotlight для нахождения файла может быть не простым, так как он располагается в приватном пространстве и принадлежит пользователю root.

    Замечание: Один из вариантов, как открыть этот файл - использовать консольный редактор, к примеру, nano, запустив его через терминал. Так как файл принадлежит пользователю root, для его открытия будет необходимо использовать команду sudo (которая повышает привелегии до пользователя root). Просто запустите приложение Terminal, введите команду sudo nano /private/etc/apache2/httpd.conf и, когда будет запрошен пароль, введите его. Полезные команды nano: ^w (искать), ^o (сохранить) и ^x (закрыть), где ^ - это клавиша Ctrl.

    Замечание: Версии macOS до 10.5 содержат устаревшие версии PHP и Apache. В этом случае конфигурационный файл может располагаться по пути /etc/httpd/httpd.conf.

  2. В текстовом редакторе найдите следующие строки и раскомментируйте их удалив символ # из начала строки (эти строки обычно находятся в разных местах файла):

    # LoadModule php5_module libexec/httpd/libphp5.so

# AddModule mod_php5.c
    Запомните путь к файлу, так как при сборке PHP в будущем может потребоваться изменить эти строки.

  3. Убедитесь, что выбранные модули будут обрабатываться как файлы PHP (.php .html и .inc).

    Так как следующие выражения уже содержатся в httpd.conf (по состоянию на Mac Panther), единожды включив PHP, файлы .php будут автоматически обрабатываться им.

    <IfModule mod_php5.c>
    # Если PHP разрешен, он будет обрабатывать файлы .php и .phps.
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

    # Часто требуется, чтобы  index.php рассматривался как
    # страница по умолчанию, если она прямо не указана.
    # Сделать это можно следующим образом
    <IfModule mod_dir.c>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>

    Замечание:

    До macOS 10.5 (Leopard), в состав ОС был включен PHP 4, а не PHP 5. В таком случае в инструкциях выше просто поменяйте 5 на 4.

  4. Убедитесь, что DirectoryIndex загружает индексный файл по умолчанию Данное поведение задается в httpd.conf. Обычно используются index.php и index.html. По умолчанию index.php разрешен. Если требуется, то отключите.
  5. Определите местоположение php.ini или используйте настройки по умолчанию Обычно на macOS он расположен по пути /usr/local/php/php.ini и вызов phpinfo() выведет соответствующую информацию. Если php.ini не используется, PHP будет использовать значения по умолчанию. Также обратите внимание на FAQ поиск php.ini.
  6. Как найти или установить DocumentRoot DocumentRoot - это корневая директория веб-сервера, в которой лежат скрипты сайта. Обычно, путь по умолчанию, он равен /Library/WebServer/Documents, но его можно изменить на любой другой в httpd.conf. Также, для индивидуальных пользователей, DocumentRoot может быть установлен как /Users/yourusername/Sites
  7. Создание файла с phpinfo()

    Функция phpinfo() отображает информацию о PHP. Создайте в DocumentRoot скрипт с таким кодом:

    <?php phpinfo(); ?>

  8. Перезапустите Apache и запросите через браузер созданый выше файл.

    Для перезапуска выполните sudo apachectl graceful в терминале или выполните stop/start для "Personal Web Server" в системных настройках macOS. По умолчанию, локальные файлы можно загрузить введя в строке браузера URL, например, так: http://localhost/info.php, или используя DocumentRoot в локальной директории пользователя, таким образом: http://localhost/~yourusername/info.php

CLI (или в более старых версиях CGI) именуется как php и содержится в /usr/bin/php. Откройте терминал, прочитайте раздел документации PHP командная строка, и запустите php -v для проверки установленной версии PHP. Вызов функции phpinfo() также покажет эту информацию.


  • « Использование готового пакета PHP
  • Установка в системах Windows »
  • PHP Manual
  • Установка на macOS
  • Компилирование PHP на macOS

Компилирование PHP на macOS

Для компиляции PHP на macOS прочтите руководство по установке на Unix.


Установка в системах Windows

Содержание

  • Инструмент установки PHP на Windows
  • Рекомендованая конфигурация для систем Windows
  • Самостоятельная установка PHP в Windows
  • Стандартные проблемы PHP под Windows
  • Установка на старых версиях ОС Windows

Установка PHP в современных операционных системах Microsoft Windows и рекомендуемая конфигурация под распространенные веб-серверы.

Замечание:

Если вы ищете информацию о старых версиях операционных систем: Windows XP, 2003, 98 или Apache 1.x, обратитесь к разделу руководства Установка на старых версиях ОС Windows.

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

  • Использование PHP в командной строке Windows

  • Установка PHP на Azure App Services (он же Microsoft Azure, Windows Azure, или (Windows) Azure Web Apps).


Инструмент установки PHP на Windows

Инструмент установки PHP

Если вы хотите настроить PHP, используя в качестве веб-сервера IIS, то проще всего это сделать, используя » Microsoft Web Platform Installer (WebPI).

» XAMPP, WampServer и BitNami установят PHP с использованием в качестве веб-сервера Apache под Windows.

Установка и настройка Nginx на Windows потребует немного больше конфигурации. Смотрите » документацию по Nginx для получения помощи по установке.


Рекомендованая конфигурация для систем Windows

OpCache

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

Установите в вашем php.ini следующие опции

Пример #1 Рекомендованая конфигурация WinCache

zend_extension=php_opcache.dll
opcache.enable=On
opcache.enable_cli=On
И перезагрузите ваш веб-сервер. Более подробно читайте: Конфигурация OpCache

WinCache

Если вы используете IIS, то рекомендуется вместе с ним использовать WinCache, особенно если используется виртуальный хостинг или сетевое хранилище (NAS). Все приложения PHP будут автоматически получать преимущества WinCache. Файловые операции будут кешироваться в памяти. Также WinCache может кешировать в памяти пользовательский объекты и разделять их между разными процессами php.exe или php-cgi.exe (разделение объектом между запросами). Многие веб-приложения имеют плагин, модуль или опции настройки, позволяющие использовать кеширование пользовательских объектов с помощью WinCache. Если вам нужна высокая производительность, вам придется кешировать объекты в своем приложении. Загрузить WinCache можно по ссылке » http://pecl.php.net/package/WinCache. После загрузки будет нужно сохранить WinCache DLL в директорию модулей PHP (extensions_dir в вашем php.ini). Установите в вашем php.ini следующие опции

Пример #2 Рекомендованая конфигурация WinCache

extension=php_wincache.dll
wincache.fcenabled=1
wincache.ocenabled=1 ; удалено в wincache 2.0.0.0
Более подробно читайте: » http://php.net/manual/en/wincache.configuration.php

Настройка IIS

В IIS Manager установите модуль FastCGI и добавьте обработку `.php` файлом PHP-CGI.exe (не PHP.exe)

Вы можете использовать приложение APPCMD из командной строки для автоматизации настройки ISS.

База данных

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

PHP модули включают mysqli и pdo_mysql. PHP 5.5 и 5.6 также включают модуль mysql, который объявлен устаревшим в 7.0.

Дополнительно читайте » https://dev.mysql.com/downloads/windows/


Самостоятельная установка PHP в Windows

Выберите веб-сервер

  • IIS является встроенным в Windows. На сервере Windows используйте Server Manager для добавления роли IIS. Убедитесь, что функция роли CGI включена. На рабочем столе Windows используйте панель "Установка и удаление программ" для добавления IIS. См.: » https://msdn.microsoft.com/en-us/library/ms181052%28v=vs.80%29.aspx?f=255&MSPPError=-2147217396 Для настольных веб-приложений и веб-разработки можно также использовать IIS/Express или рабочий стол PHP

    Пример #1 Командная строка для настройки IIS и PHP

    @echo off

    REM download .ZIP file of PHP build from http://windows.php.net/downloads/
    REM
    REM path to directory you decompressed PHP .ZIP file into
set phpdir=c:\php
set phppath=php-5.6.19-nts-Win32-VC11-x86

REM Clear current PHP handlers
%windir%\system32\inetsrv\appcmd clear config /section:system.webServer/fastCGI
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /-[name='PHP_via_FastCGI']

REM Set up the PHP handler
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI /+[fullPath='%phpdir%\%phppath%\php-cgi.exe']
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /+[name='PHP_via_FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='%phpdir%\%phppath%\php-cgi.exe',resourceType='Unspecified']
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /accessPolicy:Read,Script

REM Configure FastCGI Variables
%windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /[fullPath='%phpdir%\%phppath%\php-cgi.exe'].instanceMaxRequests:10000
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phpdir%\%phppath%\php-cgi.exe'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']"
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phpdir%\%phppath%\php-cgi.exe'].environmentVariables.[name='PHPRC',value='%phpdir%\%phppath%\php.ini']"
    Как вручную настроить IIS

  • Существует несколько версий Apache2 для Windows. Мы поддерживаем ApacheLounge, но другие варианты включают XAMPP, WampServer и BitNami, которые предоставляют средства автоматической установки. Вы можете использовать mod_php или mod_fastcgi для загрузки PHP на Apache. Если вы используете mod_php, необходимо использовать TS-build Apache, Visual C той же версии и тот же процессор (x86 или x64). Как вручную настроить Apache2

Выберите сборку

Скачайте PHP-релизы с » http://windows.php.net/download/. Много испытаний и оптимизаций Qa релизов уже сделано, но вы можете помочь нам сделать больше. Есть 4 типа сборок PHP:

  • Thread-Safe(TS) - для одного процесса веб-служб, как Apache с mod_php

  • Non-Thread-Safe(NTS) - для служб IIS и других FastCGI веб-серверов (Apache с mod_fastcgi) рекомендуется и для сценариев командной строки

  • для x86 - использовать PHP 5.5 или 5.6 или 7.0.

  • для x64 - использовать PHP 7.0+ если только он не для 32-разрядной версии Windows. 5.5 и 5.6 x64 - экспериментальные.


Стандартные проблемы PHP под Windows

Проверка прав на временную директорию

  1. В Проводнике нажмите правой кнопкой мыши на временной директории, выберите пункт "Свойства" и перейдите в закладку "Доступ".

  2. Для IIS, проверьте, что пользователь IIS_User имеет права на изменение для этой директории. Путь временной директории можно посмотреть в файле php.ini.


Установка на старых версиях ОС Windows

Данный раздел руководства применим к Windows 98/Me и Windows NT/2000/XP/2003. PHP не будет работать на 16 битных платформах, таких как Windows 3.1 и иногда мы ссылаемся на поддерживаемые Windows платформы как Win32.

Замечание:

Windows XP/2003 больше не поддерживаются для PHP 5.5.0.

Замечание:

Windows 98/Me/NT4/2000 больше не поддерживаются для PHP 5.3.0.

Замечание:

Windows 95 больше не поддерживается для PHP 4.3.0.

Если у вас есть окружение для разработки, такое как Microsoft Visual Studio, вы также можете собрать PHP из исходников.

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

Руководство по ручной установке

Этот раздел содержит инструкции для ручной установки и настройки PHP на Microsoft Windows.

Выбор и загрузка пакета дистрибутивов PHP

Загрузите дистрибутив PHP в виде zip-архива с » PHP для Windows: Исполняемые файлы и исходные коды. Существует несколько различных версий zip-пакетов — выберите версию, которая подходит для используемого веб сервера:

Структура и содержание пакета PHP

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

Пример #1 Структура пакета PHP 5

c:\php
   |
   +--dev
   |  |
   |  |-php5ts.lib                 -- версия php5.lib без поддержки многопоточности
   |
   +--ext                          -- DLL модули для PHP
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-...
   |
   +--extras                       -- пустой
   |
   +--pear                         -- начальная копия PEAR
   |
   |
   |-go-pear.bat                   -- скрипт установки PEAR
   |
   |-...
   |
   |-php-cgi.exe                   -- исполняемый файл CGI
   |
   |-php-win.exe                   -- выполняет скрипты без открытой консоли
   |
   |-php.exe                       -- Исполняемый файл PHP для командной строки (CLI)
   |
   |-...
   |
   |-php.ini-development           -- настройки php.ini по умолчанию
   |
   |-php.ini-production            -- рекомендуемые настройки php.ini
   |
   |-php5apache2_2.dll             -- есть только в многопоточной версии
   |
   |-php5apache2_2_filter.dll      -- есть только в многопоточной версии
   |
   |-...
   |
   |-php5ts.dll                    -- ядро PHP DLL ( php5.dll в версии без поддержки многопоточности)
   |
   |-...

Ниже представлен список модулей и исполняемых файлов, включенных в PHP zip дистрибутив:

  • go-pear.bat - скрипт установки PEAR. Подробнее смотрите » Установка (PEAR).

  • php-cgi.exe - исполняемый файл CGI, который может быть использован во время запуска PHP на IIS через CGI или FastCGI.

  • php-win.exe - исполняемый файл PHP для выполнения PHP скриптов без использования консоли (например, приложения PHP, использующие Windows GUI).

  • php.exe - исполняемый файл PHP для выполнения PHP скриптов в консоли (CLI).

  • php5apache2_2.dll - модуль Apache 2.2.X.

  • php5apache2_2_filter.dll - фильтр Apache 2.2.X.

Изменение файла php.ini

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

Файл php.ini содержит правила исполнения PHP и инструкции по работе с окружением, в котором он запускается. Ниже приводятся некоторые из настроек php.ini, которые могут улучшить работу PHP в Windows. Некоторые из них необязательные. Есть много других директив, которые могут быть полезны в вашем окружении - обращайтесь к списку директив php.ini за более подробной информацией.

Обязательные директивы:

  • extension_dir = <путь к директории модулей> - extension_dir указывает директорию, где расположены модули PHP. Путь может быть абсолютным (например, "C:\PHP\ext") или относительным (например, ".\ext"). Используемые в php.ini модули должны быть расположены в extension_dir.

  • extension = xxxxx.dll - Для каждого подключаемого модуля необходимо указать директиву "extension=". Модули из extension_dir, отмеченные такой директивой, загружаются при старте PHP.

  • log_errors = On - в PHP есть механизм ведения лога ошибок, который может использоваться для сохранения ошибок в файле или для отправки в сервис (например syslog). Механизм также использует значение директивы error_log. Когда PHP исполняется службой IIS, log_errors должен быть включен с корректным error_log.

  • error_log = <пусть к файлу лога ошибок> - error_log нужен для обозначения абсолютного или относительного пути к файлу, в который протоколируются ошибки PHP. Этот файл должен доступным для записи веб-сервером. Самые распространенные места размещения этого файла - различные временные TEMP директории, например, "C:\inetpub\temp\php-errors.log".

  • cgi.force_redirect = 0 - Эта директива необходима для исполнения под IIS. Это механизм защиты директории, требуемый многими другими веб-серверами. Однако, включение его под IIS вызовет ошибки ядра PHP в Windows.

  • cgi.fix_pathinfo = 1 - Обеспечивает поддержку PATH_INFO согласно спецификации CGI. IIS FastCGI использует эту настройку.

  • fastcgi.impersonate = 1 - FastCGI под IIS поддерживает способность идентифицировать маркеры безопасности вызывающего клиента. Это позволяет IIS определять контекст безопасности, под которые выполняется запрос.

  • fastcgi.logging = 0 - Запись логов FastCGI должна быть выключена в IIS. Если запись включена, тогда все сообщения любых классов распознаются FastCGI как ошибки, что приведет IIS к выбрасыванию исключения HTTP 500.

Опциональные директивы

  • max_execution_time = ## - Эта директива указывает максимальное время выполнения любого скрипта PHP. По умолчанию равна 30 секундам. Следует увеличить это значение, если приложение PHP должно выполняться дольше.

  • memory_limit = ###M - Количество памяти, доступное процессу PHP, в Мб. По умолчанию 128, что достаточно для большинства PHP приложений. Некоторым сложным приложениям может потребоваться больше памяти.

  • display_errors = Off - Директива определяет, какие ошибки следует возвращать веб-серверу для дальнейшего протоколирования. При значении "On" PHP сообщает обо всех видах ошибок, которые приводятся в директиве error_reporting. По соображениям безопасности рекомендуется установить в "Off" на рабочих серверах, чтобы исключить передачу вывода ошибок конечному пользователю, так как они могут содержат информацию, угрожающую безопасности приложения.

  • open_basedir = <пути к директориям, разделенные точкой с запятой>, например openbasedir="C:\inetpub\wwwroot;C:\inetpub\temp". Эта директива указывает пути к директориям, в которых PHP разрешены операции с файловой системой. Любая операция с файлами и директориями вне указанных путей будет приводить к ошибке. Эта директива особенно полезна для предотвращения доступа к установленному PHP в окружениях разделяемых хостингов для предотвращения доступа PHP скриптов к любым файлам вне корневой директории веб сайта.

  • upload_max_filesize = ###M и post_max_size = ###M - Максимальный разрешенный размер загруженного файла и присланных данных соответственно. Значения этих директив должны быть увеличены, если приложения PHP должны обрабатывать большие загружаемые файлы, например, изображения или видеофайлы.

После установки PHP в вашей системе, следующим шагом будет выбор веб-сервера и его дальнейшая настройка для работы с PHP. Выберите конкретный веб-сервер в оглавлении к данному материалу.

Помимо запуска PHP с помощью веб-сервера, PHP может быть запущен из командной строки как .BAT скрипт. За более подробной информацией обращайтесь к материалу Консоль PHP на Microsoft Windows.

Microsoft IIS

В этом разделе содержатся инструкции по установке PHP, специфичные для Microsoft Internet Information Services (IIS).

  • Ручная установка PHP на Microsoft IIS 5.1 и IIS 6.0
  • Ручная установка PHP на Microsoft IIS 7.0 и более поздних

Microsoft IIS 5.1 and IIS 6.0

This section contains instructions for manually setting up Internet Information Services (IIS) 5.1 and IIS 6.0 to work with PHP on Microsoft Windows XP and Windows Server 2003. For instructions on setting up IIS 7.0 and later versions on Windows Vista, Windows Server 2008, Windows 7 and Windows Server 2008 R2 refer to Microsoft IIS 7.0 and later.

Configuring IIS to process PHP requests

Download and install PHP in accordance to the instructions described in manual installation steps

Замечание:

Non-thread-safe build of PHP is recommended when using IIS. The non-thread-safe builds are available at » PHP for Windows: Binaries and Sources Releases.

Configure the CGI- and FastCGI-specific settings in php.ini file as shown below:

Пример #2 CGI and FastCGI settings in php.ini

fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect = 0

Download and install the » Microsoft FastCGI Extension for IIS 5.1 and 6.0. The extension is available for 32-bit and 64-bit platforms - select the right download package for your platform.

Configure the FastCGI extension to handle PHP-specific requests by running the command shown below. Replace the value of the "-path" parameter with the absolute file path to the php-cgi.exe file.

Пример #3 Configuring FastCGI extension to handle PHP requests

cscript %windir%\system32\inetsrv\fcgiconfig.js -add -section:"PHP" ^
-extension:php -path:"C:\PHP\php-cgi.exe"

This command will create an IIS script mapping for *.php file extension, which will result in all URLs that end with .php being handled by FastCGI extension. Also, it will configure FastCGI extension to use the executable php-cgi.exe to process the PHP requests.

Замечание:

At this point the required installation and configuration steps are completed. The remaining instructions below are optional but highly recommended for achieving optimal functionality and performance of PHP on IIS.

Impersonation and file system access

It is recommended to enable FastCGI impersonation in PHP when using IIS. This is controlled by the fastcgi.impersonate directive in php.ini file. When impersonation is enabled, PHP will perform all the file system operations on behalf of the user account that has been determined by IIS authentication. This ensures that even if the same PHP process is shared across different IIS web sites, the PHP scripts in those web sites will not be able to access each others' files as long as different user accounts are used for IIS authentication on each web site.

For example IIS 5.1 and IIS 6.0, in its default configuration, has anonymous authentication enabled with built-in user account IUSR_<MACHINE_NAME> used as a default identity. This means that in order for IIS to execute PHP scripts, it is necessary to grant IUSR_<MACHINE_NAME> account read permission on those scripts. If PHP applications need to perform write operations on certain files or write files into some folders then IUSR_<MACHINE_NAME> account should have write permission to those.

To determine which user account is used by IIS anonymous authentication, follow these steps:

  1. In the Windows Start Menu choose "Run:", type "inetmgr" and click "Ok";

  2. Expand the list of web sites under the "Web Sites" node in the tree view, right-click on a web site that is being used and select "Properties";

  3. Click the "Directory Security" tab;

  4. Take note of a "User name:" field in the "Authentication Methods" dialog

Anonymous authenication for IIS 5.1 and IIS 6.0

To modify the permissions settings on files and folders, use the Windows Explorer user interface or icacls command.

Пример #4 Configuring file access permissions

icacls C:\inetpub\wwwroot\upload /grant IUSR:(OI)(CI)(M)

Set index.php as a default document in IIS

The IIS default documents are used for HTTP requests that do not specify a document name. With PHP applications, index.php usually acts as a default document. To add index.php to the list of IIS default documents, follow these steps:

  1. In the Windows Start Menu choose "Run:", type "inetmgr" and click "Ok";

  2. Right-click on the "Web Sites" node in the tree view and select "Properties";

  3. Click the "Documents" tab;

  4. Click the "Add..." button and enter "index.php" for the "Default content page:".

Setting index.php as default document for IIS

FastCGI and PHP Recycling configuration

Configure IIS FastCGI extension settings for recycling of PHP processes by using the commands shown below. The FastCGI setting instanceMaxRequests controls how many requests will be processed by a single php-cgi.exe process before FastCGI extension shuts it down. The PHP environment variable PHP_FCGI_MAX_REQUESTS controls how many requests a single php-cgi.exe process will handle before it recycles itself. Make sure that the value specified for FastCGI InstanceMaxRequests setting is less than or equal to the value specified for PHP_FCGI_MAX_REQUESTS.

Пример #5 Configuring FastCGI and PHP recycling

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-InstanceMaxRequests:10000

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000

Configuring FastCGI timeout settings

Increase the timeout settings for FastCGI extension if there are applications that have long running PHP scripts. The two settings that control timeouts are ActivityTimeout and RequestTimeout. Refer to » Configuring FastCGI Extension for IIS 6.0 for more information about those settings.

Пример #6 Configuring FastCGI timeout settings

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-ActivityTimeout:90

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-RequestTimeout:90

Changing the Location of php.ini file

PHP searches for php.ini file in several locations and it is possible to change the default locations of php.ini file by using PHPRC environment variable. To instruct PHP to load the configuration file from a custom location run the command shown below. The absolute path to the directory with php.ini file should be specified as a value of PHPRC environment variable.

Пример #7 Changing the location of php.ini file

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-EnvironmentVars:PHPRC:"C:\Some\Directory\"

Microsoft IIS 7.0 и выше

Этот раздел содержит инструкции по настройке Internet Information Services (IIS) 7.0 и более поздних версий для работы с PHP на Microsoft Windows Vista SP1, Windows 7, Windows Server 2008 и Windows Server 2008 R2. Для получения инструкций по настройке IIS 5.1 и IIS 6.0 на Windows XP и Windows Server 2003 перейдите на страницу Microsoft IIS 5.1 и IIS 6.0.

Включение поддержки FastCGI в IIS

Модуль FastCGI при установке IIS по умолчанию отключён. Способы включения его различаются в зависимости от версии используемой Windows.

Для включения поддержки FastCGI на Windows Vista SP1 и Windows 7:

  1. В меню "Пуск" выберите пункт "Выполнить", в появившемся окне введите с клавиатуры "optionalfeatures.exe" и нажмите "Ok";

  2. В открывшемся окне "Компоненты Windows" раскройте папку "Службы IIS", "Службы интернета", "Компоненты разработки приложений" и установите галочку напротив "CGI";

  3. Нажмите OK и ждите окончания процесса установки.

Включение поддержки FastCGI для IIS7 на Windows Vista SP1 и Windows 7

Чтобы включить поддержку FastCGI на Windows Server 2008 и Windows Server 2008 R2:

  1. В Windows откройте меню Пуск выберите пункт "Выполнить:", наберите с клавиатуры "CompMgmtLauncher" и нажмите "Ok";

  2. Если роль "Веб-сервер (IIS)" не представлена во вкладке "Роли", добавьте её, выбрав "Добавить роли";

  3. Если роль "Веб-сервер (IIS)" присутствует, выберите "Выбор службы ролей" и установите галочку напротив "CGI" в группе "Компоненты разработки приложений";

  4. Нажмите "Далее", затем "Установить" и ждите окончания процесса установки.

Включение поддержки FastCGI на Windows Server 2008 и Windows Server 2008 R2

Настройка IIS для обработки PHP запросов

Скачайте и установите PHP в соответствии с инструкциями, приведёнными в описании установки

Замечание:

При использовании IIS рекомендуется использовать потоко-небезопасную (Non-thread-safe) сборку PHP, которая доступна по ссылке » PHP для Windows: Установочные файлы и исходный код.

Измените CGI и FastCGI настройки в файле php.ini как показано ниже:

Пример #8 CGI и FastCGI настройки в php.ini

fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect = 0

Настройте IIS обработчик для PHP, используя Интерфейс управления IIS или через командную строку.

Использование Интерфейса управления IIS для создания обработчика PHP

Следующие шаги позволят вам создать IIS обработчик для PHP в Интерфейсе управления IIS:

  1. В Windows меню Пуск выберите команду "Выполнить:", введите с клавиатуры команду "inetmgr" и нажмите "Ok";

  2. В Интерфейсе управления IIS выберите сервер в дереве "Подключения";

  3. На "Начальной странице" откройте "Сопоставления обработчиков";

    Создание IIS обработчика для PHP : нахождение сопоставителя обработчиков

  4. На вкладке "Действия" выберите "Добавить сопоставление модуля...";

  5. В окне "Добавление сопоставления модуля" введите следующее:

    • Путь запроса: *.php
    • Модуль: FastCgiModule
    • Исполняемый файл: C:\[Path to PHP installation]\php-cgi.exe
    • Имя: PHP_via_FastCGI

  6. Нажмите кнопку "Ограничения запроса" и сконфигурируйте сопоставление вызывать обработчик только при сопоставлении с файлом или каталогом;

  7. Нажмите OK во всех диалогах для сохранения конфигурации.

Создание IIS сопоставления обработчика для PHP : Добавление сопоставления обработчика

Использование командной строки для создания сопоставления обработчика PHP

Используйте команды приведённые ниже для создания пула процессов IIS FastCGI который будет использовать php-cgi.exe выполняемый для PHP запросов. Замените значение параметра fullPath на абсолютный путь к файлу php-cgi.exe.

Пример #9 Создание IIS FastCGI пула процессов

%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI ^
/+[fullPath='c:\PHP\php-cgi.exe']

Настройка IIS для обработки специфических запросов PHP из командной строки показана ниже. Замените значение параметра scriptProcessor на абсолютный путь к файлу php-cgi.exe.

Пример #10 Создание сопоставления обработчика запросов PHP

%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers ^
/+[name='PHP_via_FastCGI', path='*.php',verb='*',modules='FastCgiModule',^
scriptProcessor='c:\PHP\php-cgi.exe',resourceType='Either']

Эта команда создает для IIS сопоставление обработчика для файлов с расширением *.php, который получается в результате и обрабатывается модулем FastCGI.

Замечание:

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

Представление и доступ к файловой системе

При использовании IIS рекомендуется включить представление FastCGI в PHP. Это контролируется директивой fastcgi.impersonate в php.ini файле. Когда имперсонация включена, PHP будет выполнять все операции с файловой системой под аккаунтом, который был определён при аутентификации IIS. Это гарантирует, что при общем PHP процессе для всех сайтов IIS, PHP скрипты этих сайтов не будут иметь доступ к файлам друг друга до тех пор, пока IIS использует различные учетные записи для каждого из сайтов.

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

Чтобы решить какой пользователь используется для идентификации в IIS 7, можно использовать следующие команды. Замените "Default Web Site" на имя IIS сайта, с которым вы работаете. На выходе, в XML конфигурации смотрите атрибут userName.

Пример #11 Определение аккаунта, используемого IIS при анонимной идентификации

%windir%\system32\inetsrv\appcmd.exe list config "Default Web Site" ^
/section:anonymousAuthentication

<system.webServer>
  <security>
    <authentication>
      <anonymousAuthentication enabled="true" userName="IUSR" />
    </authentication>
   </security>
</system.webServer>

Замечание:

Если атрибут userName отсутствует в элементе anonymousAuthentication, или установлен как пустая строка, это значит, что удостоверение пула приложений используется как анонимное для этого веб-сайта.

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

Пример #12 Настройка разрешения доступа к файлам

icacls C:\inetpub\wwwroot\upload /grant IUSR:(OI)(CI)(M)

Установка index.php как документа по умолчанию в IIS

По умолчанию в IIS не установлено имя документа для обработки HTTP запросов по умолчанию. В PHP приложениях, обычно используется по умолчанию документ index.php. Чтобы добавить index.php в лист документов по умолчанию IIS, используйте такую команду:

Пример #13 Установка index.php как документ по умолчанию в IIS

%windir%\system32\inetsrv\appcmd.exe set config ^
-section:system.webServer/defaultDocument /+"files.[value='index.php']" ^
/commit:apphost

FastCGI и PHP конфигурация с пересозданием процессов

Настройка IIS FastCGI установок для утилизации PHP процессов с помощью команд приведена ниже. Опция FastCGI instanceMaxRequests устанавливает максимальное количество запросов, которое может обрабатываться одним php-cgi.exe процессом пока IIS не начнет их отключать. PHP переменная окружения PHP_FCGI_MAX_REQUESTS устанавливает как много запросов будет обрабатывать один php-cgi.exe процесс пока сам не начнет удалять их. Конечно, значение установленное для FastCGI InstanceMaxRequests меньше или равно PHP_FCGI_MAX_REQUESTS.

Пример #14 Настройка FastCGI и PHP пересоздаине

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
/[fullPath='c:\php\php-cgi.exe'].instanceMaxRequests:10000

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
/+"[fullPath='C:\{php_folder}\php-cgi.exe'].environmentVariables.^
[name='PHP_FCGI_MAX_REQUESTS',value='10000']"

Установка таймаута FastCGI

Увеличение параметра таймаута для FastCGI делается, если имеется долго выполняемый PHP скрипт. Два параметра контролируют таймаут, это: activityTimeout и requestTimeout. Используйте команды приведённые ниже для изменения настроек таймаута. Конечно, надо заменить значение параметра fullPath на полный путь к файлу php-cgi.exe.

Пример #15 Конфигурация установок таймаута FastCGI

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
/[fullPath='C:\php\php-cgi.exe',arguments=''].activityTimeout:"90"  /commit:apphost

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
/[fullPath='C:\php\php-cgi.exe',arguments=''].requestTimeout:"90"  /commit:apphost

Изменение положения файла php.ini

PHP ищет файл php.ini некоторых метах и это даёт нам возможность изменить местоположения по умолчанию файла php.ini, используя переменную окружения PHPRC. Чтобы указать PHP загружать конфигурационный файл из определённого места используйте команды, приведённые ниже. Абсолютный путь до директории, где лежит файл php.ini, определяется как значение переменной окружения PHPRC.

Пример #16 Изменение положения файла php.ini

appcmd.exe set config  -section:system.webServer/fastCgi ^
/+"[fullPath='C:\php\php.exe',arguments=''].environmentVariables.^
[name='PHPRC',value='C:\Some\Directory\']" /commit:apphost

Apache 1.3.x в Microsoft Windows

Этот раздел содержит заметки и советы, специфичные для установки Apache 1.3.x для PHP в Microsoft Windows

Замечание:

Пожалуйста, для начала прочитайте руководство по установке !

Существует два способа настройки PHP для работы с Apache 1.3.x в Windows. Первый - использовать двоичный файл CGI (php.exe для PHP 4 и php-cgi.exe для PHP 5), второй - использовать Apache Module DLL. В обоих случаях необходимо отредакттировать httpd.conf для настройки Apache для работы с PHP и перезапустить сервер.

В настоящее время SAPI модуль более стабилен под Windows, поэтому мы рекомендуем использовать его вместо CGI так как он более прозрачен и безопасен.

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

Не забудьте перезагрузить сервер после изменения конфигурационного файла. Например, командами NET STOP APACHE и NET START APACHE, если Apache запущен как служба Windows, или с помощью обычных ярлыков.

Замечание: Помните, что при указании путей в конфигурационных файлах Apache под Windows, все обратные слеши, например, c:\directory\file.ext должны быть изменены на прямые: c:/directory/file.ext. Для путей с директориями также может понадобиться слеш в конце.

Установка PHP как модуля Apache

Необходимо добавить следующие строки в файл Apache httpd.conf:

Пример #17 PHP как модуль Apache 1.3.x

Это предполагает, что PHP установлен в c:\php. Измените путь, если это не так.

Для 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

Для 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

Для обеих версий:

# 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

Установка как бинарного CGI файла

Если PHP распакован в C:\php\ как описано в разделе Manual Installation Steps, необходимо добавить следующие строки в конфигурационный файл Apache:

Пример #18 PHP и Apache 1.3.x как 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
Заметьте, что вторая строка в списке выше уже находится в httpd.conf, но она закомментирована. Кроме того, не забудьте заменить c:/php/ на ваш настоящий путь к PHP.

Внимание

Используя установку CGI, ваш сервер открыт перед несколькими возможными уязвимостями. Пожалуйста, ознакомьтесь с разделом "Безопасность CGI" чтобы узнать, как можно защитить себя от таких атак.

В случае установки PHP как CGI нет такой удобной опции для подсветки синтаксиса исходников PHP как при установке в виде модуля. Если вы хотите использовать ее, необходимо использовать функцию highlight_file(). Для этого просто создайте PHP скрипт со следующим кодом: <?php highlight_file('some_php_script.php'); ?>.

Apache 2.x on Microsoft Windows

Этот раздел содержит инструкции по установке PHP для Apache 2.x на системы Microsoft Windows.

Замечание:

Сначала вам необходимо прочитать пошаговое руководство по установке

Замечание: Поддержка Apache 2.2

Пользователям Apache 2.2 следует обратить внимание на то, что DLL файл для Apache 2.2 называется php5apache2_2.dll, а не php5apache2.dll и он доступен только для PHP 5.2.0 и более поздних версий.

Вам настоятельно рекомендуется ознакомиться с » Документацией по Apache, чтобы получить базовые знания о Apache 2.x Server. Также перед чтением данной справки обратите внимание на » Рекомендации для Windows по Apache 2.x.

Apache 2.x предназначен для работы в серверных версиях Windows, таких как Windows NT 4.0, Windows 2000, Windows XP или Windows 7. Хотя Apache 2.x может использоваться на Windows 9x, эти платформы не поддерживаются полностью, и некоторые функции не будут работать правильно. Исправление этой ситуации не планируется.

Скачайте наиболее актуальную версию » Apache 2.x и подходящую версию PHP. Следуйте Пошаговому руководству по установке и вернитесь для продолжения интеграции PHP и Apache.

Существует три пути установки PHP для Apache на Windows. Вы можете запустить PHP как обработчик, как CGI, или под FastCGI.

Замечание: Помните, что при указании путей в конфигурационных файлах Apache под Windows, все обратные слеши, например, c:\directory\file.ext должны быть изменены на прямые: c:/directory/file.ext. Для путей с директориями также может понадобиться слеш в конце.

Установка PHP как обработчика под Apache

Вам необходимо добавить следующие строки в ваш конфигурационный файл Apache httpd.conf для загрузки PHP-модуля для Apache 2.x:

Пример #19 PHP как обработчик Apache 2.x

#
LoadModule php5_module "c:/php/php5apache2.dll"
AddHandler application/x-httpd-php .php

# конфигурирование пути к php.ini
PHPIniDir "C:/php"

Замечание: Не забудьте указать актуальный путь к директории PHP вместо C:/php/ в приведенном примере. Позаботьтесь, чтобы в директиве LoadModule использовались либо php5apache2.dll либо php5apache2_2.dll и удостоверьтесь, что указанный файл фактически находится по пути, который вы указали в директиве.

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

<FilesMatch \.php$>
      SetHandler application/x-httpd-php
 </FilesMatch>

Запуск PHP как CGI

Вы должны обратиться к документации » Apache CGI для более полного понимания о запуске CGI под Apache.

Для запуска PHP как CGI, вам необходимо поместить ваши php-cgi файлы в директорию, обозначенную как директория CGI, используя директиву ScriptAlilas.

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

Пример #20 PHP как CGI под Apache 2.x

#!C:/php/php.exe
<?php
  phpinfo();
?>

Внимание

Используя установку CGI, ваш сервер открыт перед несколькими возможными уязвимостями. Пожалуйста, ознакомьтесь с разделом "Безопасность CGI" чтобы узнать, как можно защитить себя от таких атак.

Запуск PHP под FastCGI

Запуск PHP под FastCGI имеет ряд преимуществ по сравнению с запуском как CGI. Установка же довольно проста:

Получить mod_fcgid здесь: » http://httpd.apache.org/mod_fcgid/. исполняемые файлы под Win32 доступны для скачивания с этого сайта. Установите модуль в соответствии с прилагаемыми инструкциями.

Настроить свой веб сервер как указано ниже, позаботившись о соответствии всех путей установки на вашей конкретной системе:

Пример #21 Конфигурация Apache для запуска PHP как FastCGI

LoadModule fcgid_module modules/mod_fcgid.so

# Где находится ваш php.ini?
FcgidInitialEnv PHPRC        "c:/php"

AddHandler fcgid-script .php
FcgidWrapper "c:/php/php-cgi.exe" .php
Файлы с расширением .php в таком случае будут запускаться с помощью оболочки PHP FastCGI.

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 Apache compatibility are also available. For support in current web servers

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 web server configuration 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 web server. 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 web server 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 way with getenv() or a similar way (register globals to environment, $_ENV). You would only get the environment of the running web server without any valid CGI variables!

Замечание:

Why are there (invalid) CGI variables in the environment?

Answer: This is because you started the web server process from the admin server which runs the startup script of the web server, you wanted to start, as a CGI script (a CGI script inside of the admin server!). This is why the environment of the started web server has some CGI environment variables in it. You can test this by starting the web server 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 web server and insert the result in the web page. 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!!!

Sambar Server под Microsoft Windows

Раздел содержит замечания и указания специфичные для » Sambar Server для Windows.

Замечание:

Пожалуйста, для начала прочитайте руководство по установке!

Этот список описывает установку ISAPI модуля для работы с сервером Sambar под Windows.

  • Найдите файл, который называется mappings.ini (в папке config) в установочной директории Sambar.

  • Откройте mappings.ini и добавьте следующую строку под [ISAPI]:

    Пример #22 Конфигурация ISAPI для Sambar

    #для PHP 4
*.php = c:\php\php4isapi.dll

#для PHP 5
*.php = c:\php\php5isapi.dll
    (Если PHP установлен в c:\php.)

  • Перезапустите Sambar, чтобы изменения вступили в силу.

Замечание:

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

Xitami на Microsoft Windows

Этот раздел содержит заметки и трюки, специфичные для » Xitami на платформе Windows.

Замечание:

Вам необходимо сначала прочитать инструкцию по установке!

Этот перечень действий описывает как установить PHP CGI библиотеку так, чтобы она работала с Xitami под Windows.

Замечание: Важно для пользователей CGI

Прочтите faq про cgi.force_redirec для получения важных подробностей. Эту директиву требуется установить в 0. Если вы хотите использовать $_SERVER['PHP_SELF'], то необходимо включить cgi.fix_pathinfo директиву.

Внимание

Используя установку CGI, ваш сервер открыт перед несколькими возможными уязвимостями. Пожалуйста, ознакомьтесь с разделом "Безопасность CGI" чтобы узнать, как можно защитить себя от таких атак.

  • Убедитесь, что веб-сервер работает, и ваш браузер попадет в консоль администратора Xitami. (обычно http://127.0.0.1/admin), и нажмите Конфигурация (Configuration).

  • Перейдите в раздел "фильтры" и поместите модуль, который должен обрабатывать PHP (то есть .php) в поле модули файлов (.xxx).

  • В фильтр команды или сценария поместите путь и имя вашего исполняемого PHP CGI файла, т.е. C:\php\php.exe для PHP 4 или C:\php\php-cgi.exe для PHP 5.

  • Нажмите иконку "Сохранить".

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

Сборка из исходников

В данной главе рассматривается процесс сборки PHP из исходников на Windows, с помощью инструментов сборки Microsoft. Если вы хотите скомпилировать PHP с помощью cygwin, пожалуйста, обращайтесь к главе Установка на Unix-системы.

Смотрите документацию в Wiki по адресу: » https://wiki.php.net/internals/windows/stepbystepbuild

Установка модулей PHP в ОС Windows

После установки PHP и веб-сервера на ОС Windows может понадобиться установить некоторые модули для добавления функционала. Вы можете выбрать, какие модули будут загружаться при старте PHP, модификацией вашего файла php.ini. Также вы можете загружать модули динамически в ваших скриптах, используя функцию dl().

Библиотеки DLL модулей PHP имеют префикс php_.

Многие модули встроены в Windows-версию PHP. Это значит, что дополнительные DLL-файлы и директива extension не используются для загрузки данных модулей. Таблица модулей PHP в Windows, содержащая список модулей, требующих (или обычно требующих) дополнительные DLL-файлы. Ниже приведен список встроенных модулей (обновлено PHP 5.0.4): BCMath, Calendar, COM, Ctype, DOM, FTP, LibXML, Iconv, ODBC, PCRE, Session, SimpleXML, SPL, SQLite, WDDX, XML и Zlib.

Место по умолчанию, в котором PHP ищет модули - C:\php5. Для изменения данной настройки согласно вашей установке PHP отредактируйте файл php.ini следующим образом:

  • измените опцию extension_dir так, чтобы она указывала на директорию, в которой расположены модули или в которую вы поместили файлы php_*.dll. Например:

    extension_dir = C:\php\extensions

  • Включите одно или несколько модулей, которые вы хотите использовать, раскомментировав в файле php.ini строки вида extension=php_*.dll. Это делается удалением символа ";" в начале строки для каждого модуля, который вы хотите включить.

    Пример #23 Включение модуля Bzip2 в PHP-Windows

    // измените следующую строку с ...
;extension=php_bz2.dll

// ... на
extension=php_bz2.dll

  • Некоторые модули для своей работы требуют дополнительные библиотеки DLL. Несколько из них находятся в распространяемом дистрибутиве PHP, в в корневой директории, но некоторые модули, например, Oracle (php_oci8.dll), требуют наличия библиотек DLL, не включаемых в дистрибутив PHP. Не забудьте включить директорию C:\php в системную переменную PATH (данный процесс описан в отдельном разделе помощи).

  • Некоторые из этих библиотек DLL не поставляются в дистрибутиве PHP. За деталями обратитесь к странице документации конкретного модуля. Также прочтите раздел руководства Установка модулей PECL, чтобы узнать дополнительную информацию о PECL. Все большее число модулей PHP можно найти в PECL и данные модули требуют отдельной загрузки.

Замечание: Если вы запустили PHP в качестве модуля сервера, не забудьте перезагрузить веб-сервер для применения ваших изменений в файле php.ini.

Следующая таблица описывает некоторые доступные модули и требуемые дополнительные библиотеки dll.

Модули PHP
Модуль | Описание | Примечания
php_bz2.dll | Функции сжатия bzip2 | —
php_calendar.dll | Функции преобразования календарей | -
php_crack.dll | Функции Crack | —
php_ctype.dll | Семейство функций ctype | -
php_curl.dll | Функции библиотеки CURL | Требует библиотеки libeay32.dll, ssleay32.dll (в комплекте дистрибутива PHP), или, начиная с OpenSSL 1.1, libcrypto-*.dll и libssl-*.dll
php_dba.dll | DBA: функции абстрактного слоя DataBase (dbm-стиль) | —
php_dbase.dll | Функции dBase | —
php_dbx.dll | Функции dbx | —
php_exif.dll | Функции EXIF | Требуется библиотека php_mbstring.dll. Библиотека php_exif.dll должна загружаться после php_mbstring.dll в файле php.ini.
php_fbsql.dll | Функции FrontBase | -
php_fdf.dll | FDF: функции формата данных "Forms Data Format" | Требуется библиотека fdftk.dll (в комплекте дистрибутива PHP)
php_filepro.dll | Функции filePro | Доступ только для чтения
php_ftp.dll | Функции FTP | -
php_gd2.dll | Библиотека функций обработки изображений GD | GD2
php_gettext.dll | Функции Gettext | В PHP версий <= 4.2.0 требуется библиотека gnu_gettext.dll (в комплекте дистрибутива PHP), в PHP версий >= 4.2.3 требуется библиотека libintl-1.dll и iconv.dll (в комплекте дистрибутива PHP).
php_hyperwave.dll | Функции HyperWave | —
php_iconv.dll | Функции конвертации кодировок ICONV | Требуется библиотека iconv-1.3.dll (в комплекте дистрибутива PHP), iconv.dll
php_ifx.dll | Функции Informix | Требуются библиотеки Informix
php_iisfunc.dll | Функции управления IIS | —
php_imap.dll | Функции IMAP POP3 и NNTP | —
php_ingres.dll | Функции Ingres | Требуются библиотеки Ingres
php_interbase.dll | Функции InterBase | Требуется библиотека gds32.dll (в комплекте дистрибутива PHP)
php_ldap.dll | Функции LDAP | Требует libeay32.dll, ssleay32.dll (в комплекте дистрибутива PHP), или, начиная с OpenSSL 1.1, libcrypto-*.dll и libssl-*.dll
php_mbstring.dll | Функции для работы с многобайтовыми (Multi-Byte) строками | —
php_mcrypt.dll | Функции кодирования Mcrypt | Требуется библиотека libmcrypt.dll
php_mhash.dll | Функции Mhash | Требуется библиотека libmhash.dll (в комплекте дистрибутива PHP)
php_mime_magic.dll | Функции Mimetype | Требуется файл magic.mime (в комплекте дистрибутива PHP)
php_ming.dll | Функции Ming для Flash | —
php_msql.dll | Функции mSQL | Требуется библиотека msql.dll (в комплекте дистрибутива PHP)
php_mssql.dll | Функции MSSQL | Требуется библиотека ntwdblib.dll (в комплекте дистрибутива PHP)
php_mysql.dll | Функции MySQL | Требуется библиотека libmysql.dll (в комплекте дистрибутива PHP)
php_mysqli.dll | Функции MySQLi | Требуется библиотека libmysql.dll (libmysqli.dll в PHP версий <= 5.0.2) (в комплекте дистрибутива PHP)
php_oci8.dll | Функции Oracle 8 | Требуются клиентские библиотеки Oracle 8.1+
php_openssl.dll | Функции OpenSSL | Требуется библиотека libeay32.dll (в комплекте дистрибутива PHP), или, начиная с OpenSSL 1.1, liblibcrypto-*.dll
php_pdf.dll | Функции PDF | —
php_pgsql.dll | Функции PostgreSQL | —
php_shmop.dll | Функции для работы с разделяемой памятью | —
php_snmp.dll | Функции для использования протокола SNMP | Только на Windows NT!
php_soap.dll | Функции SOAP | -
php_sockets.dll | Функции для работы с сокетами | —
php_sybase_ct.dll | Функции Sybase | Требуются клиентские библиотеки Sybase
php_tidy.dll | Функции Tidy | -
php_tokenizer.dll | Функции Tokenizer | -
php_w32api.dll | Функции W32api | —
php_xmlrpc.dll | Функции XML-RPC | Требуется библиотека iconv.dll (в комплекте дистрибутива PHP)
php_xslt.dll | Функции XSLT | Требуются библиотеки sablot.dll, expat.dll, iconv.dll (в комплекте дистрибутива PHP).
php_yaz.dll | Функции YAZ | Требуется библиотека yaz.dll (в комплекте дистрибутива PHP)
php_zip.dll | Функции для работы с файлами Zip | Доступ только для чтения
php_zlib.dll | Функции сжатия ZLib | -

Командная строка PHP в Microsoft Windows

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

Замечание:

Сначала прочитайте руководство по установке!

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

C:\PHP5\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3

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

    Замечание:

    Как PATH, так и PATHEXT являются важными системные переменными в Windows, поэтому важно не затереть их текущее значение, а только дописать нужные данные в конец.

  • Допишите расположение исполняемых файлов php (php.exe, php-win.exe или php-cli.exe в зависимости от ваших предпочтений и версии PHP) в конец переменной окружения PATH. О том, как добавить вашу директорию к PATH читайте в соответствующем разделе FAQ.

  • Допишите .PHP расширение в конец переменной окружения PATHEXT. Это может быть сделано при изменении переменной PATH. Сделайте те же шаги, которые описаны в FAQ, но измените переменную PATHEXT вместо PATH.

    Замечание:

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

  • Ассоциируйте расширение .PHP с конкретным типом файла. Это можно сделать выполнив следующую команду:

    assoc .php=phpfile

  • Ассоциируйте тип файла phpfile с соответствующим исполняемым PHP файлом. Это можно сделать выполнив команду:

    ftype phpfile="C:\PHP5\php.exe" -f "%1" -- %~2

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

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

Пример #24 Изменения реестра

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.php]
@="phpfile"
"Content Type"="application/php"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile]
@="PHP Script"
"EditFlags"=dword:00000000
"BrowserFlags"=dword:00000008
"AlwaysShowExt"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\DefaultIcon]
@="C:\\PHP5\\php-win.exe,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell]
@="Open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open]
@="&Open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open\command]
@="\"C:\\PHP5\\php.exe\" -f \"%1\" -- %~2"

С этими изменениями команда может быть записана как:

"C:\PHP Scripts\script" -arg1 -arg2 -arg3
или, если ваш путь в переменной окружения "C:\PHP Scripts" PATH:
script -arg1 -arg2 -arg3

Замечание:

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

dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3
или
dir | script -arg1 -arg2 -arg3
Вы можете увидеть, что ваш скрипт завис и ничего не делает. Для того чтобы оперативно получать об этом информацию, вам нужно внести в реестр еще некоторые изменений.
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"InheritConsoleHandles"=dword:00000001
Дополнительную информацию можно найти в » базе знаний Microsoft, статья 321788. В Windows 10, эта настройка возвращена, и в обычной инсталляции Windows 10 встроенная консоль перехватывается автоматически. Этот » пост на форуме Microsoft объясняет подробнее.


  • « Установка на старых версиях ОС Windows
  • Azure App Services »
  • PHP Manual
  • Установка и настройка
  • Установка на платформах Cloud Computing

Установка на платформах Cloud Computing

Содержание

  • Azure App Services
  • Amazon EC2

PHP устанавливается на облачных платформах.


Azure App Services

PHP часто устанавливается на облачный сервис Azure App Services (также известный как Microsoft Azure, Windows Azure и Azure Web Apps).

Azure App Services управляет пулом Windows Web Servers для хостинга ваших веб-приложений и представляет альтернативу созданию собственного веб-сервера на собственном Azure Compute VMs и других платформах.

PHP по умолчанию доступен для вашего веб-сайта в Azure App Services. Просто выберите на Azure Portal ваш сайт и выберите нужную версию PHP. Вы можете выбрать более свежую версию, чем заданная по умолчанию.

Таким образом, PHP и его расширения будут работать в Azure App Services так же как и на любом другом сервере Windows. Большая часть базы знаний также портирована, смотрите Windows Troubleshooting Page Тем не менее, интерфейс управления для Azure App Services имеет отличия:

  • Azure portal: создание, настройка и удаление сайтов. » Azure Portal

  • Панель Kudu: [имя вашего сайта].azurewebsites.net. Тогда панель Kudu » https://[имя вашего сайта].scm.azurewebsites.net/. Панель Kudu дает вам доступ к некоторым возможностям отладки, управлению файлами и расширениями сайта. Расширения сайта - это механизм Azure по добавлению программ, например превью сборок PHP, на ваш сайт.

  • Вы не сможете использовать IIS Manager, Server Manager или RDP.

PHP SDK позволяет программно использовать множество Azure Services. Смотри » Azure SDK для PHP.

Для более подробной информации, смотри » Azure PHP Developer Center

WinCache

WinCache по умолчанию разрешен в Azure App Services и рекомендуется его не отключать. Если вы установили собственную сборку PHP, вы должны разрешить WinCache.

Собственные сборки PHP

Вы можете загрузить собственную сборку PHP в D:\Home (C:\ НЕ ДОСТУПЕН для записи). После чего, на Azure Portal, задайте SCRIPT_PROCESSOR для .php равный абсолютному пути к php-cgi.exe из вашей сборки.


  • « Azure App Services
  • Менеджер процессов FastCGI (FPM) »
  • PHP Manual
  • Установка на платформах Cloud Computing
  • Amazon EC2

Amazon EC2

PHP устанавливается на » облачную платформу EC2.

Смотрите также » AWS SDK для PHP.


Менеджер процессов FastCGI (FPM)

Содержание

  • Установка
  • Настройка

FPM (FastCGI Process Manager, менеджер процессов FastCGI) является альтернативной реализацией PHP FastCGI с несколькими дополнительными возможностями обычно используемыми для высоконагруженных сайтов.

Эти возможности включают в себя:

  • продвинутое управление процессами с корректной (graceful) процедурой остановки и запуска;

  • возможность запуска воркеров с разными uid/gid/chroot/окружением, а также запуска на различных портах с использованием разных php.ini (замещение safe_mode);

  • логирование стандартных потоков вывода (stdout) и ошибок (stderr);

  • аварийный перезапуск в случае внезапного разрушения opcode-кеша;

  • поддержка ускоренной загрузки (accelerated upload);

  • "slowlog" - логирование необычно медленно выполняющихся скриптов (не только их имена, но также и их трассировки. Это достигается с помощью ptrace и других подобных утилит для чтения данных исполнения удаленных процессов);

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

  • Динамическое/статическое порождение дочерних процессов;

  • Базовая информация о статусе SAPI (аналогично Apache mod_status);

  • Конфигурационный файл, основанный на php.ini.


Установка

Компиляция из исходников

Для того, чтобы включить FPM при сборке PHP, добавьте строку --enable-fpm

Существуют также несколько других опций конфигурации FPM (все опциональны):

  • --with-fpm-user - установить пользователя FPM (по умолчанию - nobody).

  • --with-fpm-group - установить группу FPM (по умолчанию - nobody).

  • --with-fpm-systemd - Включить интеграцию с systemd (по умолчанию - no).

  • --with-fpm-acl - Использовать списки управления доступом (ACL) POSIX (по умолчанию - no). С версии 5.6.5


Настройка

FPM использует синтаксис php.ini для своего файла конфигурации php-fpm.conf и файлов конфигурации пулов.

Список глобальных директив php-fpm.conf

pid string

Путь к PID-файлу. По умолчанию: none.

error_log string

Путь к файлу журнала ошибок. По умолчанию: #INSTALL_PREFIX#/log/php-fpm.log. Если задано как "syslog", логирование будет производиться в syslogd, а не в локальный файл.

log_level string

Уровень журналирования ошибок. Возможные значения: alert, error, warning, notice, debug. По умолчанию: notice.

log_limit integer

Ограничить журналирование для журналируемых линиях, что позволяет записывать сообщения длиной более 1024 символов без упаковки (wrapping). Значение по умолчанию: 1024. Доступно с PHP 7.3.0.

log_buffering boolean

Экспериментальное журналирование без дополнительной буферизации. Значение по умолчанию: yes. Доступно с PHP 7.3.0.

syslog.facility string

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

syslog.ident string

Предшествует любому сообщению. Если у вас запущено несколько экземпляры FPM, вы можете изменить значение по умолчанию на то, которое вам необходимо. По умолчанию: php-fpm.

emergency_restart_threshold int

При данном числе рабочих процессов, завершенных с SIGSEGV или SIGBUS за промежуток времени, установленный emergency_restart_interval FPM будет перезагружен. Значение 0 означает 'Off' (отключено). По умолчанию: 0 (Off).

emergency_restart_interval mixed

Интервал времени, используемый emergency_restart_interval, чтобы определить, когда FPM будет мягко перезагружен. Это полезно для избежания случайных повреждений общей памяти ускорителя (accelerator). Доступные единицы измерения: s(секунды), m(минуты), h(часы), или d(дни). Единица измерения по умолчанию: секунды. Значение по умолчанию: 0 (Off).

process_control_timeout mixed

Время, в течение которого дочерние процессы ждут ответа на сигналы мастер-процессу. Доступные единицы измерения: s(секунды), m(минуты), h(часы) или d(дни). Единица измерения по умолчанию: секунды. Значение по умолчанию: 0.

process.max int

Максимальное количество процессов, которое может породить FPM. Это сделано для того, чтобы контролировать глобальное количество процессов, когда используется большой пул динамического PM. Используйте с осторожностью. По умолчанию: 0.

process.priority int

Указывает приоритет (Unix nice(2)) мастер-процесса (только если установлено). Принимает значения от -19(максимальный приоритет) до 20(минимальный.) По умолчанию: не установлено.

daemonize boolean

Запустить FPM в фоновом режиме. Установите значение 'no', чтобы запустить FPM в диспетчере для отладки. По умолчанию: yes.

rlimit_files int

Устанавливает rlimit открытых файловых дескрипторов для мастер-процесса. По умолчанию: Устанавливает rlimit для открытого дескриптора файла мастер-процесса(?).

rlimit_core int

Устанавливает rlimit максимального размера ядра для мастер-процесса. По умолчанию 0.

events.mechanism string

Указывает, какой событийный механизм будет использован FPM. Возможны такие варианты: select, pool, epoll, kqueue (*BSD), port (Solaris). По умолчанию: не установлено (автоопределение).

systemd_interval int

Если FPM собран с интеграцией с systemd, указывает интервал, в секундах, между оповещениями systemd о своем состоянии. Для отключения задайте 0. По умолчанию: 10.

Список директив для пулов.

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

listen string

Адрес, который будет принимать FastCGI-запросы. Синтаксис: 'ip.add.re.ss:port', 'port', '/path/to/unix/socket'. Эта опция обязательна для каждого пула.

listen.backlog int

Устанавливает listen(2) backlog. Значение '-1' означает неограниченно. Значение по умолчанию: -1.

listen.allowed_clients string

Список IPv4-адресов FastCGI-клиентов, которые имеют право подключения. Эквивалент переменной окружения среды FCGI_WEB_SERVER_ADDRS в оригинальном PHP FastCGI (5.2.2+). Имеет смысл только с TCP-сокетом. Каждый адрес должен быть отделен запятой. Если оставить значение пустым, то соединения будут приниматься с любого IP. По умолчанию: any. Начиная с PHP 5.5.20 и 5.6.4, можно использовать IPv6.

listen.owner string

Задает права для unix-сокета, если они используются. В Linux для разрешения соединений к веб-серверу, должны быть установлены права на чтение/запись. Во многих основанных на BSD-системах возможность соединения не зависит от прав доступа. Значение по умолчанию: используется пользователь и группа, от имени которого запущен сервер, установлен режим 0660.

listen.group string

См. listen.owner.

listen.mode string

См. listen.owner.

listen.acl_users string

Если поддерживается список управления доступом (ACL) POSIX, вы можете настроить его с помощью этой опции. Если задано, то listen.owner и listen.group будут проигнорированы. Значение задается списком имен, разделенных запятой. Доступно с PHP 5.6.5.

listen.acl_groups string

См. listen.acl_users. Значение задается списком имен групп, разделенных запятой. Доступно с PHP 5.6.5.

user string

Unix-пользователь FPM-процессов. Этот параметр является обязательным.

group string

Unix-группа FPM-процессов. Если не установлен, группа по умолчанию равняется имени пользователя.

pm string

Выбор того, как менеджер процессов будет контролировать создание дочерних процессов. Возможные значения: static, ondemand, dynamic. Этот параметр является обязательным.

static - фиксированное число дочерних процессов (pm.max_children).

ondemand - число процессов, порождающихся по требованию (когда появляются запросы, в отличие от опции dynamic, когда стартует определенное количество процессов, равное pm.start_servers, вместе с запуском службы.

dynamic - динамически изменяющееся число дочерних процессов, задается на основании следующих директив: pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.

pm.max_children int

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

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

pm.start_servers int

Число дочерних процессов, создаваемых при запуске. Используется, только когда pm установлен в dynamic. Значение по умолчанию: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.

pm.min_spare_servers int

Желаемое минимальное число неактивных процессов сервера. Используется, только когда pm установлено в dynamic. Кроме того, это обязательный параметр в этом случае.

pm.max_spare_servers int

Желаемое максимальное число неактивных процессов сервера. Используется, только когда pm установлен в dynamic. Кроме того, это обязательный параметр в этом случае.

pm.process_idle_timeout mixed

Число секунд, по истечению которых простаивающий процесс будет завершен. Используется только если pm установлено как ondemand. Допустимые единицы: s(econds)(по умолчанию), m(inutes), h(ours) или d(ays). По умолчанию: 10s.

pm.max_requests int

Число запросов дочернего процесса, после которого процесс будет перезапущен. Это полезно для избежания утечек памяти при использовании сторонних библиотек. Для бесконечной обработки запросов укажите '0'. Эквивалент PHP_FCGI_MAX_REQUESTS. Значение по умолчанию: 0.

pm.status_path string

Ссылка, по которой можно посмотреть страницу состояния FPM. Если значение не установлено, то страница статуса отображаться не будет. Значение по умолчанию: none.

ping.path string

Ссылка на ping-страницу мониторинга FPM. Если значение не установлено, ping-страница отображаться не будет. Может быть использовано для тестирования извне, чтобы убедиться, что FPM жив и отвечает. Обратите внимание, что значение должно начинаться с косой черты (/).

ping.response string

Эта директива может быть использована на настройки ответа на ping-запрос. Ответ формируется как text/plain со кодом ответа 200. Значение по умолчанию: pong.

process.priority int

Задает приоритет nice(2) для работающего процесса (только если задан). Значение от -19 (высший приоритет) до 20 (самый низкий). Значение по умолчанию: не задано.

process.dumpable boolean

Установить флаг процесса dumpable (PR_SET_DUMPABLE prctl), даже если the пользователь процесса или группа отличается от пользователя мастер-процесса. Это позволяет создавать дамп ядра процесса и выполнить ptrace процесса для пользователя пула. Значение по умолчанию: no. Доступно с PHP 7.0.29, 7.1.17 и 7.2.5.

prefix string

Задает префикс для вычисления пути

request_terminate_timeout mixed

Таймаут для обслуживания одного запроса, после чего рабочий процесс будет завершен. Этот вариант следует использовать, когда опция 'max_execution_time' в php.ini не останавливает выполнение скрипта по каким-то причинам. Значение '0' означает 'выключено'. Доступные единицы измерения: s(econds), m(inutes), h(ours) или d(ays). Значение по умолчанию: 0.

request_slowlog_timeout mixed

Таймаут для обслуживания одного запроса, после чего PHP backtrace будет сохранен в файл 'slowlog'. Значение '0' означает 'выключено'. Доступные единицы измерения: s(econds), m(inutes), h(ours) или d(ays). Значение по умолчанию: 0.

slowlog string

Лог-файл для медленных запросов. Значение по умолчанию: #INSTALL_PREFIX#/log/php-fpm.log.slow.

rlimit_files int

Устанавливает лимит дескрипторов открытых файлов rlimit для дочерних процессов в этом пуле. Значение по умолчанию: определяется значением системы.

rlimit_core int

Устанавливает максимальное количество используемых ядер rlimit для дочерних процессов в этом пуле. Возможные значения: 'unlimited' или целое число большее или равное 0. Значение по умолчанию: определяется значением системы.

chroot string

Директория chroot окружения при старте. Это значение должно быть определено как абсолютный путь. Если значение не установлено, chroot не используется.

chdir string

Chdir изменяет текущую директорию при старте. Это значение должно быть определено как абсолютный путь. Значение по умолчанию: текущая директория или / при использовании chroot.

catch_workers_output boolean

Перенаправление STDOUT и STDERR рабочего процесса в главный лог ошибок. Если не установлен, STDOUT и STDERR будут перенаправлены в /dev/null в соответствии со спецификацией FastCGI. Значение по умолчанию: no.

decorate_workers_output boolean

Включите оформление выхода (output decoration) для вывода worker-процесса когда опция catch_workers_output включена. Значение по умолчанию: yes. Доступно с PHP 7.3.0.

clear_env boolean

Очищает окружение в worker-процессах FPM. Предотвращает попадание произвольных переменных окружения в worker-процессы FPM, очищая окружение у worker-процессах до того, как переменные окружения, указанные в этой конфигурации пула будут добавлены. Доступно с PHP 5.4.27, 5.5.11, и 5.6.0. По умолчанию: Yes.

security.limit_extensions string

Ограничивает расширения, которые FPM будет анализировать. Это может предотвратить ошибки конфигурации на стороне веб-сервера. Вы должны ограничить FPM только расширениями .php для предотвращения выполнения PHP-кода злоумышленниками другими расширениями. По умолчанию: .php .phar

access.log string

Лог-файл доступа. Значение по умолчанию: не установлено

access.format string

Формал лог-файла доступа. Значение по умолчанию: "%R - %u %t \"%m %r\" %s"

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

Пример #1 Передача переменных окружения и настроек PHP пулу

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 32M
Настройки PHP, переданные через php_value или php_flag перезапишут их предыдущие значения. Пожалуйста, обратите внимание, что определения disable_functions или disable_classes не будут будут перезаписывать ранее определенные в php.ini значения, а добавят новые значения.

Настройки, определенные через php_admin_value и php_admin_flag, не могут быть перезаписаны через ini_set().

Начиная с версии 5.3.3 настройки PHP можно устанавливать через веб-сервер.

Пример #2 Установка настроек PHP в nginx.conf

set $php_value "pcre.backtrack_limit=424242";
set $php_value "$php_value \n pcre.recursion_limit=99999";
fastcgi_param  PHP_VALUE $php_value;

fastcgi_param  PHP_ADMIN_VALUE "open_basedir=/var/www/htdocs";
Предостережение

Так как эти настройки передаются в php-fpm как FastCGI-заголовки, php-fpm не должен быть привязан к общедоступному адресу из мира. В противном случае любой сможет изменить настройки PHP. Смотрите также listen.allowed_clients.


Установка модулей PECL

Содержание

  • Введение в установку PECL
  • Загрузка модулей PECL
  • Установка PHP-модуля в Windows
  • Компиляция разделяемых модулей с помощью команды pecl
  • Компиляция разделяемых модулей с помощью phpize
  • php-config
  • Компиляция модулей PECL статически в PHP


Введение в установку PECL

» PECL - это репозиторий модулей PHP, доступ к которым предоставляется через систему » PEAR. Эта часть руководства предназначена для демонстрации того, как вы можете получить и установить модули PECL.

Эти инструкции подразумевают, что /your/phpsrcdir/ является путем к каталогу с дистрибутивом исходного кода PHP, а extname - это имя модуля PECL, так что вносите соответствующие коррективы. Эти инструкции также подразумевают знакомство с » командой pear. Информация в руководстве PEAR для команды pear также применима для команды pecl.

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

В процессе сборки модулей PHP важно иметь нужные версии необходимых утилит (autoconf, automake, libtool и т.д.). Информацию об этих утилитах и их версиях можно посмотреть в разделе "» Инструкции по осуществлению анонимного доступа к Git".


Загрузка модулей PECL

Есть несколько вариантов для загрузки модулей PECL, в том числе:

  • Команда pecl install extname автоматически скачивает код модуля, поэтому в этом случае нет нужды в отдельной скачке этих файлов.
  • » https://pecl.php.net/ Веб-сайт PECL содержит информацию о различных модулях, предоставляемых командой разработчиков PHP. Информация, доступная на этом веб-сайте, включает в себя: лог изменений, новости релизов, требования и другие подобные детали.
  • pecl download extname Модули PECL, имеющие опубликованные релизы на сайте PECL, доступны для скачивания и установки с помощью » команды pecl. Можно также указать отдельные ревизии для установки.
  • SVN Большинство модулей PECL, также, находятся в SVN. Веб-интерфейс для просмотра доступен по адресу » https://svn.php.net/viewvc/pecl/. Для загрузки напрямую из SVN используется следующая последовательность команд:

    $ svn checkout http://svn.php.net/repository/pecl/extname/trunk extname

  • Загрузка для Windows На данный момент проект PHP не компилирует бинарные файлы Windows для модулей PECL.


Установка PHP-модуля в Windows

В Windows есть два способа загрузки PHP-модуля: скомпилировать его вместе с PHP или загрузить DLL. Загрузка заранее скомпилированного модуля является наиболее простым и предпочитаемым способом.

Для загрузки модуля, он должен присутствовать в вашей системе в виде ".dll" файла. Все модули автоматически и периодически компилируются командой PHP (смотрите следующий раздел для загрузки).

За инструкциями по компиляции модуля в PHP обратитесь к разделу "Сборка из исходников".

Для компиляции отдельного модуля (или DLL-файла), обратитесь к разделу " Сборка из исходников". Если DLL-файла нет ни в стандартной поставке PHP ни в PECL, возможно, вам придется скомпилировать его вручную.

Где найти модуль?

PHP-модули обычно имеют имена вида "php_*.dll" (где звездочка обозначает имя модуля) и располагаются в папке "PHP\ext".

PHP поставляет модули наиболее полезные большинству разработчиков. Такие модули называются "основными" ("core").

Однако, если вам требуется функционал, который не предоставляется ни одним из основных модулей, возможно, нужный вам модуль есть в PECL. Библиотека модулей сообщества PHP (The PHP Extension Community Library, PECL) является хранилищем модулей PHP, предоставляя каталог и хостинг всех известных модулей для скачки и дальнейшей разработки модулей в PHP.

Если вы разработали какой-либо модуль для собственных нужд, возможно, вы захотите хранить его в PECL, так, чтобы другие также могли воспользоваться результатами вашего труда. Хорошим побочным эффектом будет неплохой шанс получить обратную связь, благодарности (надеемся, что так и будет), сообщения об ошибках и даже исправления/патчи. Пожалуйста, прочтите » публикация PECL; перед отправкой вашего модуля в PECL.

Какой модуль нужно загрузить?

Очень часто существует несколько версий модуля DLL:

  • Различные номера версий (по крайней мере первые два числа должны совпадать)
  • Различные настройки потокобезопасности
  • Различная архитектура процессора (x86, x64, ...)
  • Различные настройки отладки
  • и т.д.

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

Пример #1 Вызов phpinfo()

<?php
phpinfo();
?>

Или запустите из командной строки:

drive:\\path\to\php\executable\php.exe -i

Загрузка модуля

Наиболее распространенным способом загрузки PHP-модуля является его включение в конфигурационном файле php.ini. Обратите внимание, что большинство модулей уже прописаны в вашем php.ini и для их активации вам просто нужно удалить точку с запятой.

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

;extension=php_extname.dll

extension=php_extname.dll

; В PHP 7.2 и выше лучше делать так:
extension=extname
zend_extension=another_extension

Однако, некоторые веб-серверы создают путаницу, т.к. они не используют php.ini, расположенный в дистрибутиве PHP, а используют свой собственный. Узнать, где находится, используемый сервером php.ini, можно посмотрев на выводимый путь в phpinfo():

Configuration File (php.ini) Path  C:\WINDOWS

Loaded Configuration File   C:\Program Files\PHP\5.2\php.ini

После активации модуля сохраните php.ini, перезагрузите веб-сервер и снова проверьте phpinfo(), в нем должен появиться отдельный раздел с новым модулем.

Решение проблем

Если модуль не появился в выводе phpinfo(), проверьте лог-файлы на наличие сообщений об ошибках.

Если вы используете PHP в командной строке (CLI), ошибки загрузки модуля будут доступны сразу же на экране.

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

Частой проблемой является расположение DLL-файлов, значение " extension_dir" в php.ini, а также несовпадение настроек компиляции.

Если проблемой является несовпадение настроек компиляции, то возможно, вы скачали не тот DLL-файл. Попробуйте снова скачать модуль, на этот раз с правильными настройками. Еще раз, информация функции phpinfo() сильно помогает в этом случае.


Компиляция разделяемых модулей с помощью команды pecl

PECL позволяет легко создавать разделяемые модули PHP. Используя » команду pecl, выполните следующее:

$ pecl install extname

Эта команда загрузит исходный код для модуля extname, скомпилирует и установит extname.so в вашу директорию extension_dir. Файл extname.so может быть затем загружен в php.ini

По умолчанию, команда pecl не будет устанавливать пакеты, отмеченные состоянием alpha или beta. Если нет доступных стабильных (stable) версий пакетов, вы можете установить beta-версию пакета, используя следующую команду:

$ pecl install extname-beta

Также, вы можете установить определенную версию, используя такой вариант:

$ pecl install extname-0.1

Замечание:

После подключения модуля в php.ini необходимо перезапустить веб-сервер для того, чтобы изменения вступили в силу.


Компиляция разделяемых модулей с помощью phpize

Иногда использование инсталлятора pecl не подходит. Это может быть связано с тем, что вы находитесь за файерволом или из-за того, что модуль, который вы хотите установить, недоступен в PECL-совместимом пакете (к примеру, модули из SVN у которых еще нет релизов). Если вам необходимо собрать такой модуль, вы можете использовать низкоуровневые утилиты для выполнения сборки вручную.

Команда phpize используется для подготовки окружения PHP-модуля. В следующем примере директория, где находятся исходные коды модуля, называется extname:

$ cd extname
$ phpize
$ ./configure
$ make
# make install

В случае успешной установки будет создан файл extname.so и помещен в PHP директорию модулей. Вам будет необходимо добавить строку extension=extname.so в php.ini перед использованием этого модуля.

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

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


php-config

php-config - это простой скрипт командной строки для получения информации о конфигурации установленного PHP.

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

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

Usage: /usr/local/bin/php-config [OPTION]
Options:
  --prefix            [...]
  --includes          [...]
  --ldflags           [...]
  --libs              [...]
  --extension-dir     [...]
  --include-dir       [...]
  --php-binary        [...]
  --php-sapis         [...]
  --configure-options [...]
  --version           [...]
  --vernum            [...]

Опции скрипта
Опция | Описание
--prefix | Директория, в которой установлен PHP, например, /usr/local
--includes | Список -I опций со всеми подключаемыми файлами
--ldflags | LD-флаги, с которыми был скомпилирован PHP
--libs | Внешние библиотеки, с которыми был скомпилирован PHP
--extension-dir | Директория, в которой по умолчанию ищутся модули
--include-dir | Директория, куда по умолчанию устанавливаются заголовочные файлы
--php-binary | Полный путь до исполняемых файлов php CLI или CGI
--php-sapis | Показывает все доступные модули SAPI
--configure-options | Конфигурационные опции для воссоздания настроек текущей установки PHP.
--version | Версия PHP
--vernum | Версия PHP в виде целого числа


Компиляция модулей PECL статически в PHP

Возможно, вы захотите собрать модуль PECL статично в ваш бинарный файл PHP. Для этого необходимо поместить код модуля в директорию php-src/ext/ и вызвать перегенерацию конфигурационных скриптов через систему сборки PHP.

$ cd /your/phpsrcdir/ext
$ pecl download extname
$ gzip -d < extname.tgz | tar -xvf -
$ mv extname-x.x.x extname

В результате будет создана следующая директория:

/your/phpsrcdir/ext/extname

После этого, выполните заново сборку конфигурационного скрипта PHP и затем соберите PHP как обычно:

$ cd /your/phpsrcdir
$ rm configure
$ ./buildconf --force
$ ./configure --help
$ ./configure --with-extname --enable-someotherext --with-foobar
$ make
$ make install

Замечание: Для запуска 'buildconf' скрипта вам понадобится autoconf версии 2.13 и automake версии 1.4+ (более новые версии autoconf могут работать, но это не поддерживается).

В зависимости от модуля будет использоваться одна из двух опций --enable-extname или --with-extname . Обычно, если модуль не требует подключения внешних библиотек, используется --enable. Чтобы узнать это, выполните следующую команду после buildconf:

$ ./configure --help | grep extname


  • « Компиляция модулей PECL статически в PHP
  • Читайте FAQ »
  • PHP Manual
  • Установка и настройка
  • Проблемы?

Проблемы?

Содержание

  • Читайте FAQ
  • Другие проблемы
  • Сообщения о багах


Читайте FAQ

Некоторые проблемы возникают чаще других. Наиболее часто встречающиеся из них перечислены в разделе PHP FAQ этого руководства.


Другие проблемы

Если вы все еще не можете установить PHP, список рассылки, возможно, сможет помочь вам. Не забудьте сначала просмотреть архив, возможно кто-либо уже имел схожую с вашей проблему и успешно её решил. Архив рассылки доступен на странице поддержки: » https://www.php.net/support.php Для подписки на список рассылки об инсталяции PHP пришлите пустое сообщение на » php-install-subscribe@lists.php.net. Адрес списка рассылки: » php-install@lists.php.net.

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


Сообщения о багах

Если вы думаете, что нашли ошибку в PHP, пожалуйста сообщите об этом. Возможно, разработчики PHP не знают об этой ошибке и пока вы не сообщите о ней, мало шансов что она будет исправлена. Вы можете сообщить об ошибке, используя систему отслеживания ошибок по адресу: » https://bugs.php.net/. Пожалуйста, не шлите сообщения об ошибках в список рассылки или на личные адреса разработчиков. Система отслеживания ошибок также пригодна и для запроса нововведений.

Прочитайте: » Как сообщать об ошибках перед тем как сообщать о них.


Конфигурация времени выполнения

Содержание

  • Файл конфигурации
  • Файлы .user.ini
  • Где могут быть установлены параметры конфигурации
  • Как изменить настройки конфигурации


Файл конфигурации

Файл конфигурации (php.ini) считывается при запуске PHP. Для версий серверных модулей PHP это происходит только один раз при запуске веб-сервера. Для CGI и CLI версий это происходит при каждом вызове.

Поиск php.ini производится в следующих местах (по порядку поиска):

  • По месту расположения модуля SAPI (PHPIniDir директива Apache 2, -c параметр командной строки CGI и CLI, php_ini параметр в NSAPI, PHP_INI_PATH переменная среды в THTTPD)
  • Переменная среды PHPRC. До PHP 5.2.0 поиск по переменной производился после поиска в реестре, указанном ниже.
  • Как и в PHP 5.2.0, местоположение файла php.ini может быть указано для различных версий PHP. Корневой ключ реестра зависит от разрядности операционной системы и установки PHP. Для 32-разрядного PHP на 32-разрядной Windows или 64-разрядного PHP и 64-разрядной Windows используйте [(HKEY_LOCAL_MACHINE\SOFTWARE\PHP]. Для 32-разрядного PHP на 64-разрядной Windows [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]. Следующие ключи реестра исследуются при поиске для установок с совпадающей разрядностью: [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] и [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x], где x, y и z подразумевают major, minor и release версии PHP. Для 32-разрядного PHP на 64-разрядной Windows ключи реестра будут другими: [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y] и [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x]. Если также имеется значение IniFilePath в любом из этих ключей, то местонахождение php.ini будет определено первым ключом по порядку (только для Windows).
  • [HKEY_LOCAL_MACHINE\SOFTWARE\PHP] или [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP], значение IniFilePath (только для Windows).
  • Текущая директория (исключая CLI).
  • Директория веб-сервера (для модулей SAPI) или директория PHP (иначе в Windows).
  • В директории Windows (C:\windows или C:\winnt) (для Windows) или --with-config-file-path с выбором при компиляции.

Если файл php-SAPI.ini существует (где SAPI - это тип интерфейса, который используется, например, php-cli.ini или php-apache.ini), то он используется вместо php.ini. Тип интерфейса между веб-сервером и PHP может быть определен с помощью функции php_sapi_name().

Замечание:

Веб-сервер Apache изменяет текущую директорию на корневую при запуске, в результате чего PHP считывает php.ini из корневой файловой системы, если файл существует.

В php.ini можно использовать переменные окружения, как показано ниже.

Пример #1 Переменные окружения php.ini

; PHP_MEMORY_LIMIT взята из переменных окружения
memory_limit = ${PHP_MEMORY_LIMIT}

Директивы php.ini, обрабатываемые расширениями, описаны на соответствующих страницах расширений. Список директив ядра имеется в приложении. Не все директивы PHP документированы в этом руководстве: для ознакомления с полным списком директив доступных в вашей версии PHP, прочитайте комментарии вашего php.ini. Кроме того, вы можете найти полезной » последнюю версию php.ini из Git.

Пример #2 Пример php.ini

; любой текст в строке после точки с запятой (;) без кавычек игнорируется
[php] ; маркеры разделов (текст в квадратных скобках) также игнорируется
; Могут быть установлены следующие логические значения:
;    true, on, yes
; или false, off, no, none
register_globals = off
track_errors = yes

; вы можете заключать строки в двойные кавычки
include_path = ".:/usr/local/lib/php"

; обратный слеш обрабатывается так же, как любые другие символы
include_path = ".;c:\php\lib"

С версии PHP 5.1.0 стало возможным обращаться к существующим ini-переменным из ini-файлов. Пример: open_basedir = ${open_basedir} ":/new/dir".

Сканирование директорий

Существует возможность сконфигурировать PHP для сканирования директорий в поисках .ini-файлов после считывания php.ini. Это можно сделать на моменте компиляции, указав опцию --with-config-file-scan-dir . В PHP 5.2.0 и выше, сканирование директорий может быть переопределено во время исполнения установкой переменной среды PHP_INI_SCAN_DIR.

Можно сканировать несколько директорий, разделяя их разделителем, используемом в вашей операционной системе (; в Windows, NetWare и RISC OS; : на всех остальных платформах; в PHP есть константа PATH_SEPARATOR, которую можно использовать) Если PHP_INI_SCAN_DIR пуста, то PHP также будет сканировать директорию, заданную на этапе компиляции с помощью --with-config-file-scan-dir .

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

Допустим, что PHP сконфигурирован с --with-config-file-scan-dir=/etc/php.d,
и разделитель путей :...

$ php
  PHP загрузит все файлы /etc/php.d/*.ini как конфигурационные.

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d php
  PHP загрузит все файлы /usr/local/etc/php.d/*.ini как конфигурационные.

$ PHP_INI_SCAN_DIR=:/usr/local/etc/php.d php
  PHP загрузит все файлы /etc/php.d/*.ini, а потом
  /usr/local/etc/php.d/*.ini как конфигурационные.

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php
  PHP загрузит все файлы /usr/local/etc/php.d/*.ini, а потом
  /etc/php.d/*.ini как конфигурационные.

Список изменений

Версия | Описание
7.0.0 | Символ "решетка" (#) больше не используется для комментариев.
5.3.0 | Символ "решетка" (#) больше не должен использоваться для комментариев и вызовет предупреждение в случае использования.
5.2.0 | Переменная окружения PHP_INI_SCAN_DIR может быть установлена для переопределения набора сканируемых директорий.
5.1.0 | Можно ссылаться на существующие ini-переменные из ini-файлов.


Файлы .user.ini

С версии PHP 5.3.0 включена поддержка INI-файлов в стиле .htaccess на уровне каталога. Эти файлы обрабатываются только CGI/FastCGI SAPI. Эта функция делает ненужным расширение PECL htscanner. Если вы используете PHP как модуль Apache, то для достижения того же эффекта, пользуйтесь файлами .htaccess.

В дополнение к основному файлу php.ini, PHP ищет INI-файлы в каждой директории, начиная с директории запрошенного PHP-файла и продолжает поиск до корневой директории (установленной в $_SERVER['DOCUMENT_ROOT']). Если PHP-файл находится вне корневой директории, то сканируется только его директория.

Только INI-настройки с режимами PHP_INI_PERDIR и PHP_INI_USER будут распознаны в INI-файлах в стиле .user.ini.

Две новых INI-директивы, user_ini.filename и user_ini.cache_ttl, контролируют использование пользовательских INI-файлов.

user_ini.filename устанавливает имя файла, по которому PHP производит поиск в каждой директории; если установлена пустая строка, то PHP поиск не производит. По умолчанию .user.ini.

user_ini.cache_ttl устанавливает насколько часто пользовательские INI-файлы будут обновляться. По умолчанию период обновления составляет 300 секунд (5 минут).


Где могут быть установлены параметры конфигурации

Эти режимы определяют, когда и где директива PHP может или не может быть установлена, и каждая директива в руководстве относится к одному из этих режимов. К примеру, некоторые настройки могут быть установлены с помощью PHP-скрипта, использующего ini_set(), тогда как другие могут требовать php.ini или httpd.conf.

К примеру, директива output_buffering соответствует PHP_INI_PERDIR, поэтому она не может быть установлена через ini_set(). Тем не менее, директива display_errors соответствует PHP_INI_ALL, поэтому она может быть установлена отовсюду, включая ini_set().

Определение режимов PHP_INI_*
Режим | Описание
PHP_INI_USER | Значение может быть установлено в пользовательских скриптах (с помощью ini_set()) или в реестре Windows. С PHP 5.3 значение может быть установлено в .user.ini
PHP_INI_PERDIR | Значение может быть установлено в php.ini, .htaccess или httpd.conf (с PHP 5.3)
PHP_INI_SYSTEM | Значение может быть установлено в php.ini или httpd.conf
PHP_INI_ALL | Значение может быть установлено отовсюду


Как изменить настройки конфигурации

Запуск PHP как модуля Apache

Когда PHP используется как модуль Apache вы также можете менять настройки конфигурации, используя директивы в файлах конфигурации Apache (например, httpd.conf) и файлах .htaccess. Для этого вам необходимы "AllowOverride Options" или "AllowOverride All" привилегии.

Есть несколько директив Apache, которые позволяют вам изменить конфигурацию PHP посредством файлов конфигурации Apache. С директивами PHP_INI_ALL, PHP_INI_PERDIR и PHP_INI_SYSTEM можно ознакомиться в приложении Список директив php.ini.

php_value name value

Устанавливает значение указанной директивы. Может использоваться только с директивами типа PHP_INI_ALL и PHP_INI_PERDIR. Для очистки предыдущих установленных значений используйте значение none.

Замечание: Не используйте php_value для установки логических значений. Вместо этого необходимо использоватьphp_flag (см. ниже).

php_flag name on|off

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

php_admin_value name value

Устанавливает значение указанной директивы. Не может быть использовано в файлах .htaccess. Директивы любого типа, установленные с помощью php_admin_value не могут быть переопределены через .htaccess или ini_set(). Чтобы очистить предыдущее значение используйте значение none.

php_admin_flag name on|off

Используется для установки директивам логических значений. Не может быть использовано в файлах .htaccess. Директивы любого типа, установленные с помощью php_admin_flag не могут быть переопределены через .htaccess или ini_set().

Пример #1 Пример конфигурации Apache

<IfModule mod_php5.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on
</IfModule>
<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on
</IfModule>

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

PHP-константы недоступны вне PHP. К примеру, в httpd.conf вы не можете использовать константы PHP такие как E_ALL или E_NOTICE, чтобы установить директиву error_reporting, так как они не будут иметь значения и будут приравниваться к 0. Используйте вместо этого соответствующие значения типа bitmask (битовая маска). Эти константы могут быть использованы в php.ini

Изменение конфигурации PHP через реестр Windows

При использовании PHP в Windows значения конфигурации могут быть изменены на уровне директории посредством реестра Windows. Значения конфигурации хранятся в ключе реестра HKLM\SOFTWARE\PHP\Per Directory Values, в подключах, включающих полный путь. К примеру, значения конфигурации для директории c:\inetpub\wwwroot могут храниться в ключе HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot. Настройки для директории будут действительны для любых скриптов, запущенных из этой директории или её поддиректории. Значения ключа должны иметь название конфигурационной директивы PHP и строковое значение. PHP-константы в значениях игнорируются. Однако только значения конфигурации, изменяемые в PHP_INI_USER могут быть установлены таким образом, значения же PHP_INI_PERDIR не могут.

Другие интерфейсы в PHP

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

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


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

  • Основы синтаксиса
    • Теги PHP
    • Изолирование от HTML
    • Разделение инструкций
    • Комментарии
  • Типы
    • Введение
    • Булев
    • Целые числа
    • Числа с плавающей точкой
    • Строки
    • Массивы
    • Итерируемые
    • Объекты
    • Ресурс
    • NULL
    • Функции обратного вызова (callback-функции)
    • Псевдотипы и переменные, используемые в этой документации
    • Манипуляции с типами
  • Переменные
    • Основы
    • Предопределенные переменные
    • Область видимости переменной
    • Переменные переменных
    • Переменные извне PHP
  • Константы
    • Синтаксис
    • Волшебные константы
  • Выражения
  • Операторы
    • Приоритет оператора
    • Арифметические операторы
    • Оператор присваивания
    • Побитовые операторы
    • Операторы сравнения
    • Оператор управления ошибками
    • Операторы исполнения
    • Операторы инкремента и декремента
    • Логические операторы
    • Строковые операторы
    • Операторы, работающие с массивами
    • Оператор проверки типа
  • Управляющие конструкции
    • Введение
    • if
    • else
    • elseif/else if
    • Альтернативный синтаксис управляющих структур
    • while
    • do-while
    • for
    • foreach
    • break
    • continue
    • switch
    • declare
    • return
    • require
    • include
    • require_once
    • include_once
    • goto
  • Функции
    • Функции, определяемые пользователем
    • Аргументы функции
    • Возврат значений
    • Обращение к функциям через переменные
    • Встроенные функции
    • Анонимные функции
  • Классы и объекты
    • Введение
    • Основы
    • Свойства
    • Константы классов
    • Автоматическая загрузка классов
    • Конструкторы и деструкторы
    • Область видимости
    • Наследование
    • Оператор разрешения области видимости (::)
    • Ключевое слово static
    • Абстрактные классы
    • Интерфейсы объектов
    • Трейты
    • Анонимные классы
    • Перегрузка
    • Итераторы объектов
    • Магические методы
    • Ключевое слово final
    • Клонирование объектов
    • Сравнение объектов
    • Контроль типа
    • Позднее статическое связывание
    • Объекты и ссылки
    • Сериализация объектов
    • Ковариантность и Контравариантность
    • Журнал изменений ООП
  • Пространства имен
    • Обзор пространств имен
    • Определение пространств имен
    • Определение подпространств имен
    • Описание нескольких пространств имен в одном файле
    • Использование пространства имен: основы
    • Пространства имен и динамические особенности языка
    • Ключевое слово namespace и константа __NAMESPACE__
    • Использование пространств имен: импорт/создание псевдонима имени
    • Глобальное пространство
    • Использование пространств имен: переход к глобальной функции/константе
    • Правила разрешения имен
    • Часто задаваемые вопросы (FAQ): вещи, которые вам необходимо знать о пространствах имен
  • Ошибки
    • Основы
    • Ошибки в PHP 7
  • Исключения
    • Наследование исключений
  • Генераторы
    • Знакомство с генераторами
    • Синтаксис генераторов
    • Сравнение генераторов с объектами класса Iterator
  • Объяснение ссылок
    • Что такое ссылки
    • Что делают ссылки
    • Чем ссылки не являются
    • Передача по ссылке
    • Возврат по ссылке
    • Сброс переменных-ссылок
    • Неявное использование механизма ссылок
  • Предопределённые переменные
    • Суперглобальные переменные — Суперглобальные переменные - это встроенные переменные, которые всегда доступны во всех областях видимости
    • $GLOBALS — Ссылки на все переменные глобальной области видимости
    • $_SERVER — Информация о сервере и среде исполнения
    • $_GET — Переменные HTTP GET
    • $_POST — Переменные HTTP POST
    • $_FILES — Переменные файлов, загруженных по HTTP
    • $_REQUEST — Переменные HTTP-запроса
    • $_SESSION — Переменные сессии
    • $_ENV — Переменные окружения
    • $_COOKIE — HTTP Cookies
    • $php_errormsg — Предыдущее сообщение об ошибке
    • $HTTP_RAW_POST_DATA — Необработанные данные POST
    • $http_response_header — Заголовки ответов HTTP
    • $argc — Количество аргументов, переданных скрипту
    • $argv — Массив переданных скрипту аргументов
  • Предопределённые исключения
    • Exception
    • ErrorException
    • Error
    • ArgumentCountError
    • ArithmeticError
    • AssertionError
    • DivisionByZeroError
    • CompileError
    • ParseError
    • TypeError
  • Встроенные интерфейсы и классы
    • Traversable — Интерфейс Traversable
    • Iterator — Интерфейс Iterator
    • IteratorAggregate — Интерфейс IteratorAggregate
    • Throwable
    • ArrayAccess — Интерфейс ArrayAccess
    • Serializable — Интерфейс Serializable
    • Closure — Класс Closure
    • Generator — Класс Generator
    • WeakReference — Класс WeakReference
  • Контекстные опции и параметры
    • Контекстные опции сокета — Список контекстных опций сокета
    • Опции контекста HTTP — Список опций контекста HTTP
    • Параметры контекста FTP — Список параметров контекста FTP
    • Опции контекста SSL — Список опций контекста SSL
    • Опции контекста CURL — Список опций контекста CURL
    • Контекстные опции Phar — Список контекстных опций Phar
    • Контекстные опции MongoDB — Список контекстных опций MongoDB
    • Параметры контекста — Список параметров контекста
    • Опции контекста Zip — Список опций контекста Zip
  • Поддерживаемые протоколы и обертки
    • file:// — Доступ к локальной файловой системе
    • http:// — Доступ к URL-адресам по протоколу HTTP(s)
    • ftp:// — Доступ к URL-адресам по протоколу FTP(s)
    • php:// — Доступ к различным потокам ввода-вывода
    • zlib:// — Сжатые потоки
    • data:// — Схема Data (RFC 2397)
    • glob:// — Нахождение путей, соответствующих шаблону
    • phar:// — PHP-архив
    • ssh2:// — Secure Shell 2
    • rar:// — RAR
    • ogg:// — Аудиопотоки
    • expect:// — Потоки для взаимодействия с процессами


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

Содержание

  • Теги PHP
  • Изолирование от HTML
  • Разделение инструкций
  • Комментарии


Теги PHP

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

PHP включает в себя короткий echo-тег <?=, который является сокращением для более многословного <?php echo.

PHP также допускает короткий открывающий тег <?, однако использовать их нежелательно, так как они доступны только если включены с помощью конфигурационной директивы php.ini short_open_tag, либо если PHP был сконфигурирован с опцией --enable-short-tags .

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

<?php
echo "Hello world";

// ... еще код

echo "Последнее выражение";

// Скрипт заканчивается тут без закрывающего тега PHP

Список изменений
Версия | Описание
7.0.0 | ASP-теги <%, %>, <%=, и теги скриптов <script language="php"> удалены из PHP.
5.4.0 | Тег <?= доступен всегда, вне зависимости от настройки short_open_tag.


Изолирование от HTML

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

<p>Это будет проигнорировано PHP и отображено браузером.</p>
<?php echo 'А это будет обработано.'; ?>
<p>Это тоже будет проигнорировано PHP и отображено браузером.</p>
Это работает так, как и ожидается, потому что когда интерпретатор PHP встречает закрывающие теги ?>, он просто начинает выводить все что найдет (за исключением сразу следующего символа перевода строки - смотрите раздел разделение инструкций) пока не встретит другой открывающий тег за исключением случая с содержащимся внутри кода условным оператором, в котором интерпретатор определяет результат условия перед принятием решения что пропустить. Ознакомьтесь со следующим примером.

Использование структур с условиями

Пример #1 Продвинутое изолирование с использованием условий

<?php if ($expression == true): ?>
  Это будет отображено, если выражение истинно.
<?php else: ?>
  В ином случае будет отображено это.
<?php endif; ?>
В этом примере PHP пропускает блоки, где условие не соблюдается. Даже несмотря на то, что они находятся вне пары открывающих/закрывающих тегов, PHP пропустит их в соответствии с условием, так как интерпретатор PHP будет перепрыгивать через блоки, содержащиеся внутри условия, которое не соблюдается.

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

В PHP 5, существует до пяти различных пар тегов, которые могут быть использованы для обозначения PHP-кода, в зависимости от того, как был сконфигурирован PHP. Из них только две <?php ?> и <script language="php"> </script> доступны всегда. Также, начиная с PHP 5.4.0, третьей, доступной всегда, парой тегов является <?= ?>.

Другими двумя являются короткие теги и теги в стиле ASP, которые могут быть включены или выключены в конфигурационном файле php.ini. Хотя короткие теги и теги в стиле ASP могут быть удобны, они не так переносимы, как длинные версии, и поэтому не рекомендуются.

Замечание:

Кроме того, если вы намереваетесь вставлять PHP-код в XML или XHTML, чтобы соответствовать XML стандартам, вам следует использовать форму <?php ?>.

В PHP 7 удалена поддержка тегов ASP и <script language="php">. Так что мы рекомендуем использовать только <?php ?> и <?= ?> для максимальной совместимости и переносимости.

Пример #2 Открывающие и закрывающие теги PHP

1.  <?php echo 'если вы хотите хранить код PHP в документах XHTML или XML,
                то используйте эти теги'; ?>

2. Вы можете использовать короткий 'echo'-тег чтобы <?= 'напечатать эту строку' ?>.
    Он всегда разрешен начиная с PHP 5.4.0. Этот тег эквивалентен такому коду
    <?php echo 'напечатать эту строку' ?>.

3.  <? echo 'этот код с короткими тегами, но он будет работать только если '.
                'включена опция "short_open_tag"'; ?>

4.  <script language="php">
        echo 'некоторые редакторы (например, FrontPage) не
              любят инструкции обработки с этими тегами';
    </script>
    Поддержка такого синтаксиса удалена в PHP 7.0.0.

5.  <% echo 'Также вы можете использовать теги в ASP стиле'; %>
    Код с такими тегами <%= $variable; %> является сокращением от <% echo $variable; %>
    Поддержка обоих этих синтаксисов удалена в PHP 7.0.0.

Короткие теги (третий пример) доступны, только когда они включены с помощью директивы short_open_tag в конфигурационном файле php.ini, либо если PHP был скомпилирован с опцией --enable-short-tags .

ASP-теги (пятый пример) доступны, только когда они включены с помощью директивы asp_tags в конфигурационном файле php.ini. В PHP 7.0.0 их поддержка удалена.

Замечание:

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

Замечание:

В PHP 5.2 и более ранних версиях парсер не позволял файлам содержать только один открытый тег <?php. Это было разрешено, начиная с версии PHP 5.3 при наличии одного или более пробела после открывающего тега.

Замечание:

Начиная с PHP 5.4 короткий тег echo <?= всегда распознается и действует, несмотря на значение опции short_open_tag.


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

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

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

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

<?php echo 'Мы опустили последний закрывающий тег';

Замечание:

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


Комментарии

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

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

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

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

'C'-комментарии заканчиваются при первой же обнаруженной последовательности */. Убедитесь, что вы не вкладываете друг в друга 'C'-комментарии. Очень легко допустить эту ошибку при комментировании большого блока кода.

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


Типы

Содержание

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


Введение

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

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

  • boolean
  • integer
  • float (число с плавающей точкой, также известное как double)
  • string

Четыре смешанных типа:

  • array
  • object
  • callable
  • iterable

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

  • resource
  • NULL

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

  • mixed
  • number
  • callback (он же callable)
  • array|object
  • void

И псевдопеременная $....

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

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

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

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

<?php
$a_bool = TRUE;   // логический
$a_str  = "foo";  // строковый
$a_str2 = 'foo';  // строковый
$an_int = 12;     // целочисленный

echo gettype($a_bool); // выводит: boolean
echo gettype($a_str);  // выводит: string

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

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

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

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


Булев

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

Синтаксис

Для указания boolean, используйте константы TRUE или FALSE. Обе они регистронезависимы.

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

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

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

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

// ... потому что следующее имеет тот же самый смысл:
if ($show_separators) {
    echo "<hr>\n";
}
?>

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

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

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

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

  • само значение boolean FALSE
  • integer 0 (ноль) и -0 (минус ноль)
  • float 0.0 (ноль) и -0.0 (минус ноль)
  • пустая строка, и строка "0"
  • массив без элементов
  • особый тип NULL (включая неустановленные переменные)
  • Объекты SimpleXML, созданные из пустых тегов

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

Внимание

-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)
?>


Целые числа

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

Смотрите также:

  • Целые числа произвольной длины / GMP
  • Числа с плавающей точкой
  • Числа произвольной точности / BCMath

Синтаксис

Целые числа могут быть указаны в десятичной (основание 10), шестнадцатеричной (основание 16), восьмеричной (основание 8) или двоичной (основание 2) системе счисления. Для задания отрицательных целых используется оператор отрицания

Двоичная запись integer доступна с PHP 5.4.0.

Для записи в восьмеричной системе счисления, необходимо поставить перед числом 0 (ноль). Для записи в шестнадцатеричной системе счисления, необходимо поставить перед числом 0x. Для записи в двоичной системе счисления, необходимо поставить перед числом 0b

Пример #1 Целые числа

<?php
$a = 1234; // десятичное число
$a = 0123; // восьмеричное число (эквивалентно 83 в десятичной системе)
$a = 0x1A; // шестнадцатеричное число (эквивалентно 26 в десятичной системе)
$a = 0b11111111; // двоичное число (эквивалентно 255 в десятичной системе)
?>

Формально, структуру целых чисел можно записать так:

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

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

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

двоичные          : 0[bB][01]+

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

Размер типа integer зависит от платформы, хотя, как правило, максимальное значение примерно равно 2 миллиардам (это 32-битное знаковое). 64-битные платформы обычно имеют максимальное значение около 9E18, кроме Windows, которая всегда 32-битная. PHP не поддерживает беззнаковые целые (integer). С версии PHP 5.0.5 размер integer может быть определен с помощью константы PHP_INT_SIZE, а максимальное значение - с помощью константы PHP_INT_MAX. С версии PHP 7.0.0 также введена константа PHP_INT_MIN, с помощью которого можно определить минимальное значение.

Внимание

До версии PHP 7, если в восьмеричном значении типа integer будет обнаружена неверная цифра (например, 8 или 9), оставшаяся часть числа будет проигнорирована. Начиная с PHP 7 будет сгенерирована ошибка "Parse error".

Переполнение целых чисел

Если PHP обнаружил, что число превышает размер типа integer, он будет интерпретировать его в качестве float. Аналогично, если результат операции лежит за границами типа integer, он будет преобразован в float.

Пример #2 Переполнение целых на 32-битных системах

<?php
$large_number = 2147483647;
var_dump($large_number);                     // int(2147483647)

$large_number = 2147483648;
var_dump($large_number);                     // float(2147483648)

$million = 1000000;
$large_number =  50000 * $million;
var_dump($large_number);                     // float(50000000000)
?>

Пример #3 Переполнение целых на 64-битных системах

<?php
$large_number = 9223372036854775807;
var_dump($large_number);                     // int(9223372036854775807)

$large_number = 9223372036854775808;
var_dump($large_number);                     // float(9.2233720368548E+18)

$million = 1000000;
$large_number =  50000000000000 * $million;
var_dump($large_number);                     // float(5.0E+19)
?>

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

Замечание: Начиная с PHP 7.0.0, для целочисленного деления доступна функция intdiv().

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

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

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

Если resource преобразуется в integer, то результатом будет уникальный номер ресурса, привязанный к resource во время исполнения PHP программы.

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

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

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

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

При преобразовании из float в integer, число будет округлено в сторону нуля.

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

Замечание:

В PHP 7.0.0 значения NaN и Infinity при приведении к integer становятся равными нулю, вместо неопределенного значения в зависимости от платформы.

Внимание

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

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

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

Из строк

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

Из NULL

Значение NULL всегда преобразуется в ноль (0).

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

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

Для других типов поведение преобразования в integer не определено. Не полагайтесь на любое наблюдаемое поведение, так как оно может измениться без предупреждения.


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

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

<?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).

Внимание

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

Числа с плавающей точкой имеют ограниченную точность. Хотя это зависит от операционной системы, в PHP обычно используется формат двойной точности IEEE 754, дающий максимальную относительную ошибку округления порядка 1.11e-16. Неэлементарные арифметические операции могут давать большие ошибки, и, разумеется, необходимо принимать во внимание распространение ошибок при совместном использовании нескольких операций.

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

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

"Простое" объяснение можно найти в » руководстве по числам с плавающей точкой, которое также называется "Why don't my numbers add up?" ("Почему мои числа не складываются?")

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

Информацию о преобразовании строк в числа с плавающей точкой смотрите в разделе Преобразование строк в числа. Для значений других типов преобразование будет сначала осуществлено в тип integer, а затем в число с плавающей точкой. Дополнительную информацию смотрите в разделе Преобразование к целому. Начиная с версии PHP 5, при преобразовании объекта к числу с плавающей точкой выводится замечание об ошибке.

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

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

Для сравнения чисел с плавающей точкой используется верхняя граница относительной ошибки при округлении. Эта величина называется машинной эпсилон или единицей округления (unit roundoff) и представляет собой самую маленькую допустимую разницу при расчетах.

$a и $b равны до 5-ти знаков после запятой.

<?php
$a = 1.23456789;
$b = 1.23456780;
$epsilon = 0.00001;

if (abs($a - $b) < $epsilon) {
    echo "true";
}
?>

NaN

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

Так как NAN представляет собой неограниченное количество различных значений, то NAN не следует сравнивать с другими значениями, включая ее саму. Вместо этого, для определения ее наличия необходимо использовать функцию is_nan().


Строки

Строка (тип string) - это набор символов, где символ - это то же самое, что и байт. Это значит, что PHP поддерживает ровно 256 различных символов, а также то, что в PHP нет встроенной поддержки Unicode. Смотрите также подробности реализации строкового типа.

Замечание: В PHP 7.0.0 на 64-битных платформах нет каких-либо достижимых ограничений для длины строки, в 32-битных системах и в более ранних версиях PHP, строки не могут быть более 2 ГБ (2147483647 байт).

Синтаксис

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

  • одинарными кавычками
  • двойными кавычками
  • heredoc-синтаксисом
  • nowdoc-синтаксисом (начиная с PHP 5.3.0)

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

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

Чтобы использовать одинарную кавычку внутри строки, проэкранируйте ее обратным слешем (\). Если необходимо написать сам обратный слеш, продублируйте его (\\). Все остальные случаи применения обратного слеша будут интерпретированы как обычные символы: это означает, что если вы попытаетесь использовать другие управляющие последовательности, такие как \r или \n, они будут выведены как есть вместо какого-либо особого поведения.

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

<?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 распознает следующие управляющие последовательности специальных символов:

Управляющие последовательности
Последовательность | Значение
\n | новая строка (LF или 0x0A (10) в ASCII)
\r | возврат каретки (CR или 0x0D (13) в ASCII)
\t | горизонтальная табуляция (HT или 0x09 (9) в ASCII)
\v | вертикальная табуляция (VT или 0x0B (11) в ASCII) (с PHP 5.2.5)
\e | escape-знак (ESC или 0x1B (27) в ASCII) (с PHP 5.4.4)
\f | подача страницы (FF или 0x0C (12) в ASCII) (с PHP 5.2.5)
\\ | обратная косая черта
\$ | знак доллара
\" | двойная кавычка
\[0-7]{1,3} | последовательность символов, соответствующая регулярному выражению символа в восьмеричной системе счисления, который молча переполняется, чтобы поместиться в байт (т.е. "\400" === "\000")
\x[0-9A-Fa-f]{1,2} | последовательность символов, соответствующая регулярному выражению символа в шестнадцатеричной системе счисления
\u{[0-9A-Fa-f]+} | последовательность символов, соответствующая регулярному выражению символа Unicode, которая отображается в строка в представлении UTF-8 (добавлено в PHP 7.0.0)

Как и в строке, заключенной в одинарные кавычки, экранирование любого символа выведет также и сам символ экранирования. До версии PHP 5.1.1, обратный слеш в \{$var} не печатался.

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

Heredoc

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

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

Внимание

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

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

Пример #1 Пример неправильного синтаксиса

<?php
class foo {
    public $bar = <<<EOT
bar
    EOT;
// отступ перед закрывающим идентификатором недопустим
}
?>

Пример #2 Пример правильного синтаксиса

<?php
class foo {
    public $bar = <<<EOT
bar
EOT;
}
?>

Heredoc не может быть использован для инициализации полей класса. Начиная с версии PHP 5.3, это ограничение распространяется только на heredoc, содержащие внутри себя переменные.

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

Пример #3 Пример определения heredoc-строки

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

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

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

$foo = new foo();
$name = 'Имярек';

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

Результат выполнения данного примера:

Меня зовут "Имярек". Я печатаю Foo.
Теперь, я вывожу Bar2.
Это должно вывести заглавную букву 'A': A

Также возможно использовать heredoc-синтаксис для передачи данных через аргументы функции:

Пример #4 Пример применения heredoc в аргументах

<?php
var_dump(array(<<<EOD
foobar!
EOD
));
?>

Начиная с версии 5.3.0, стала возможной инциализация статических переменных и свойств/констант класса с помощью синтаксиса heredoc:

Пример #5 Использование heredoc для инциализации статических переменных

<?php
// Статические переменные
function foo()
{
    static $bar = <<<LABEL
Здесь ничего нет...
LABEL;
}

// Константы/свойства класса
class foo
{
    const BAR = <<<FOOBAR
Пример использования константы
FOOBAR;

    public $baz = <<<FOOBAR
Пример использования поля
FOOBAR;
}
?>

Начиная с PHP 5.3.0, можно также окружать идентификатор Heredoc двойными кавычками:

Пример #6 Использование двойных кавычек в heredoc

<?php
echo <<<"FOOBAR"
Привет, мир!
FOOBAR;
?>

Nowdoc

Nowdoc - это то же самое для строк в одинарных кавычках, что и heredoc для строк в двойных кавычках. Nowdoc похож на heredoc, но внутри него не осуществляется никаких подстановок. Эта конструкция идеальна для внедрения PHP-кода или других больших блоков текста без необходимости его экранирования. В этом он немного похож на SGML-конструкцию <![CDATA[ ]]> тем, что объявляет блок текста, не предназначенный для обработки.

Nowdoc указывается той же последовательностью <<<, что используется в heredoc, но последующий за ней идентификатор заключается в одинарные кавычки, например, <<<'EOT'. Все условия, действующие для идентификаторов heredoc также действительны и для nowdoc, особенно те, что относятся к закрывающему идентификатору.

Пример #7 Пример использования nowdoc

<?php
echo <<<'EOD'
Пример текста,
занимающего несколько строк,
с помощью синтаксиса nowdoc. Обратные слеши всегда обрабатываются буквально,
например, \\ и \'.
EOD;

Результат выполнения данного примера:

Пример текста,
занимающего несколько строк,
с помощью синтаксиса nowdoc. Обратные слеши всегда обрабатываются буквально,
например, \\ и \'.

Пример #8 Nowdoc string quoting example with variables

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

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

$foo = new foo();
$name = 'Имярек';

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

Результат выполнения данного примера:

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

Пример #9 Пример использования статичных данных

<?php
class foo {
    public $bar = <<<'EOT'
bar
EOT;
}
?>

Замечание:

Поддержка nowdoc была добавлена в PHP 5.3.0.

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

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

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

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

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

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

<?php
$juice = "apple";

echo "He drank some $juice juice.".PHP_EOL;

// Некорректно. 's' - верный символ для имени переменной, но переменная имеет имя $juice.
echo "He drank some juice made of $juices.";

// Корректно. Строго указан конец имени переменной с помощью скобок:
echo "He drank some juice made of ${juice}s.";
?>

Результат выполнения данного примера:

He drank some apple juice.
He drank some juice made of .
He drank some juice made of apples.

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

Пример #10 Пример простого синтаксиса

<?php
define('KOOLAID', 'koolaid1');
$juices = array("apple", "orange", "koolaid1" => "purple");

echo "He drank some $juices[0] juice.".PHP_EOL;
echo "He drank some $juices[1] juice.".PHP_EOL;
echo "He drank some $juices[koolaid1] juice.".PHP_EOL;

class people {
    public $john = "John Smith";
    public $jane = "Jane Smith";
    public $robert = "Robert Paulsen";

    public $smith = "Smith";
}

$people = new people();

echo "$people->john drank some $juices[0] juice.".PHP_EOL;
echo "$people->john then said hello to $people->jane.".PHP_EOL;
echo "$people->john's wife greeted $people->robert.".PHP_EOL;
echo "$people->robert greeted the two $people->smiths."; // Не сработает
?>

Результат выполнения данного примера:

He drank some apple juice.
He drank some orange juice.
He drank some purple juice.
John Smith drank some apple juice.
John Smith then said hello to Jane Smith.
John Smith's wife greeted Robert Paulsen.
Robert Paulsen greeted the two .

В PHP 7.1.0 добавлена поддержка отрицательных числовых индексов.

Пример #11 Отрицательные числовые индексы

<?php
$string = 'string';
echo "Символ с индексом -2 равен $string[-2].", PHP_EOL;
$string[-3] = 'o';
echo "Изменение символа на позиции -3 на 'o' дает следующую строку: $string.", PHP_EOL;
?>

Результат выполнения данного примера:

Символ с индексом -2 равен n.
Изменение символа на позиции -3 на 'o' дает следующую строку: strong

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

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

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

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

<?php
// Показываем все ошибки
error_reporting(E_ALL);

$great = 'здорово';

// Не работает, выводит: Это { здорово}
echo "Это { $great}";

// Работает, выводит: Это здорово
echo "Это {$great}";

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

// Работает, ключи, заключенные в кавычки, работают только с синтаксисом фигурных скобок
echo "Это работает: {$arr['key']}";

// Работает
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}}";

echo "Это значение переменной по имени, которое возвращает функция getName(): {${getName()}}";

echo "Это значение переменной по имени, которое возвращает \$object->getName(): {${$object->getName()}}";

// Не работает, выводит: Это то, что возвращает getName(): {getName()}
echo "Это то, что возвращает getName(): {getName()}";
?>

С помощью этого синтаксиса также возможен доступ к свойствам объекта внутри строк.

<?php
class foo {
    var $bar = 'I am bar.';
}

$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo "{$foo->$bar}\n";
echo "{$foo->{$baz[1]}}\n";
?>

Результат выполнения данного примера:

I am bar.
I am bar.

Замечание:

Функции, вызовы методов, статические переменные классов, а также константы классов работает внутри {$}, начиная с версии PHP 5. Однако, указываемое значение будет обработано как имя переменной в том же контексте, что и строка, в которой она определяется. Использование одинарных фигурных скобок ({}) не будет работать для доступа к значениям функций, методов, констант классов или статических переменных класса.

<?php
// Показываем все ошибки
error_reporting(E_ALL);

class beers {
    const softdrink = 'rootbeer';
    public static $ale = 'ipa';
}

$rootbeer = 'A & W';
$ipa = 'Alexander Keith\'s';

// Это работает, выводит: Я бы хотел A & W
echo "Я бы хотел {${beers::softdrink}}\n";

// Это тоже работает, выводит: Я бы хотел Alexander Keith's
echo "Я бы хотел {${beers::$ale}}\n";
?>

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

Символы в строках можно использовать и модифицировать, определив их смещение относительно начала строки, начиная с нуля, в квадратных скобках после строки, например, $str[42]. Думайте о строке для этой цели, как о массиве символов. Если нужно получить или заменить более 1 символа, можно использовать функции substr() и substr_replace().

Замечание: начиная с PHP 7.1.0, поддерживаются отрицательные значения смещения. Они задают смещение с конца строки. Ранее отрицательные смещение вызывали ошибку уровня E_NOTICE при чтении (возвращая пустую строку) либо E_WARNING при записи (оставляя строку без изменений).

Замечание: К символу в строке также можно обращаться с помощью фигурных скобок, например, $str{42}.

Внимание

Попытка записи в смещение за границами строки дополнит строку пробелами до этого смещения. Нецелые типы будет преобразованы в целые. Неверный тип смещения вызовет ошибку уровня E_WARNING. Используется только первый символ присваемой строки. Начиная с PHP 7.1.0, присвоение пустой строки вызовет фатальную ошибку. Ранее в таком случае присваивался нулевой байт (NULL).

Внимание

Строки в PHP внутренне представляют из себя массивы байт. Как результат, доступ или изменение строки по смещению небезопасно с точки зрения многобайтной кодировки, и должно выполняться только со строками в однобайтных кодировках, таких как, например, ISO-8859-1.

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

Пример #12 Несколько примеров строк

<?php
// Получение первого символа строки
$str = 'This is a test.';
$first = $str[0];

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

// Получение последнего символа строки
$str = 'This is still a test.';
$last = $str[strlen($str)-1];

// Изменение последнего символа строки
$str = 'Look at the sea';
$str[strlen($str)-1] = 'e';

?>

Начиная с PHP 5.4 смещение в строке должно задаваться либо целым числом, либо строкой, содержащей цифры, иначе будет выдаваться предупреждение. Ранее смещение, заданное строкой вида "foo", без предупреждений преобразовывалось в 0.

Пример #13 Различия между PHP 5.3 и PHP 5.4

<?php
$str = 'abc';

var_dump($str['1']);
var_dump(isset($str['1']));

var_dump($str['1.0']);
var_dump(isset($str['1.0']));

var_dump($str['x']);
var_dump(isset($str['x']));

var_dump($str['1x']);
var_dump(isset($str['1x']));
?>

Результат выполнения данного примера в PHP 5.3:

string(1) "b"
bool(true)
string(1) "b"
bool(true)
string(1) "a"
bool(true)
string(1) "b"
bool(true)

Результат выполнения данного примера в PHP 5.4:

string(1) "b"
bool(true)

Warning: Illegal string offset '1.0' in /tmp/t.php on line 7
string(1) "b"
bool(false)

Warning: Illegal string offset 'x' in /tmp/t.php on line 9
string(1) "a"
bool(false)
string(1) "b"
bool(false)

Замечание:

Попытка доступа к переменным других типов (исключая массивы или объекты, реализующие определенные интерфейсы) с помощью [] или {} молча вернет NULL.

Замечание:

В PHP 5.5 была добавлена поддержка доступа к символам в строковых литералах с помощью синтаксиса [] или {}.

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

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

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

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

Также существуют функции для работы с URL, и функции шифрования/дешифрования строк (Sodium и Hash).

Наконец, смотрите также функции символьных типов.

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

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

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

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

Замечание:

Символ десятичной точки определяется из настроек локали текущего скрипта (категория LC_NUMERIC). Смотрите также setlocale().

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

Для преобразования переменной типа "Object" в тип string используется магический метод __toString.

Тип ресурс (resource) всегда всегда преобразуется в строку (string) вида "Resource id #1", где 1 является номером ресурса привязанного к resource во время выполнения. И хотя не стоит точно полагаться на эту строку, которая может быть изменена в будущем, она всегда будет уникальной для текущего запуска скрипта (т.е. веб-запроса или CLI-процесса) и не может использоваться повторно для другого ресурса. Если вы хотите получить тип ресурса, используйте get_resource_type().

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

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

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

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

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

Если строка не содержит какой-либо из символов '.', 'e', или 'E', и значение числа помещается в пределы целых чисел (определенных PHP_INT_MAX), строка будет распознана как целое число (integer). Во всех остальных случаях она считается числом с плавающей точкой (float).

Значение определяется по начальной части строки. Если строка начинается с верного числового значения, будет использовано это значение. Иначе значением будет 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). Для преобразования символов в их ASCII-коды и обратно используйте функции ord() и chr().

Подробности реализации строкового типа

Строковый тип (string) в PHP реализован в виде массива байт и целого числа, содержащего длину буфера. Он не содержит никакой информации о способе преобразования этих байт в символы, предоставляя эту задачу программисту. Нет никаких ограничений на содержимое строки, например, байт со значением 0 ("NUL"-байт) может располагаться где угодно (однако, стоит учитывать, что некоторые функции, как сказано в этом руководстве, не являются "бинарно-безопасными", т.е. они могут передавать строки библиотекам, которые игнорируют данные после NUL-байта).

Данная природа строкового типа объясняет почему в PHP нет отдельного типа "byte" - строки играют эту роль. Функции, возвращающие нетекстовые данные - например, произвольный поток данных, считываемый из сетевого сокета - тем не менее возвращают строки.

Принимая во внимание тот факт, что PHP не диктует определенную кодировку для строк, можно задать вопрос, как в таком случае кодируются строковые литералы. Например, строка "a" эквивалентна "\xE1" (ISO-8859-1), "\xC3\xA1" (UTF-8, форма нормализации C), "\x61\xCC\x81" (UTF-8, форма нормализации D) или какому-либо другому возможному представлению? Ответом является следующее: строка будет закодирована тем образом, которым она записана в файле скрипта. Таким образом, если скрипт записан в кодировке ISO-8859-1, то и строка будет закодирована в ISO-8859-1 и т.д. Однако, это правило не применяется при включенном режиме Zend Multibyte: в этом случае скрипт может быть записан в любой кодировке (которая указывается ясно или определяется автоматически), а затем конвертируются в определенную внутреннюю кодировку, которая и будет впоследствии использована для строковых литералов. Учтите, что на кодировку скрипта (или на внутреннюю кодировку, если включен режим Zend Multibyte) накладываются некоторые ограничения: практически всегда данная кодировка должна быть надмножеством ASCII, например, UTF-8 или ISO-8859-1. Учтите также, что кодировки, зависящие от состояния, где одни и те же значения байт могут быть использованы в начальном и не начальном состоянии сдвига, могут вызвать проблемы.

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

  • Некоторые функции предполагают, что строка закодирована в какой-либо однобайтовой кодировке, однако, для корректной работы им не требуется интерпретировать байты как определенные символы. Под эту категорию попадают, например, substr(), strpos(), strlen() и strcmp(). Другой способ мышления об этих функциях представляет собой оперирование буферами памяти, т.е. они работают непосредственно с байтами и их смещениями.
  • Другие функции ожидают передачу кодировку в виде параметра, возможно, предполагая некоторую кодировку по умолчанию, если параметр с кодировкой не был указан. Такой функцией является htmlentities() и большинство функций из расширения mbstring.
  • Другие функции используют текущие установки локали (см. setlocale()), но оперируют побайтово). В эту категорию попадают strcasecmp(), strtoupper() и ucfirst(). Это означает, что они могут быть использованы только с однобайтовыми кодировками, в том случае, когда кодировка совпадает с локалью. Например, strtoupper("a") может вернуть "A", если локаль установлена корректно и буква a закодирована в виде одного байта. Если она закодирована в UTF-8, будет возвращен некорректный результат, и, в зависимости от текущей локали, результирующая строка может быть (или не быть) испорчена.
  • Наконец, есть функции, подразумевающие, что строка использует определенную кодировку, обычно UTF-8. Сюда попадают большинство функций из расширений intl и PCRE (в последнем случае, только при указании модификатора u). Хотя это и сделано специально, функция utf8_decode() подразумевает кодировку UTF-8, а utf8_encode() - ISO-8859-1.

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


Массивы

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

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

Синтаксис

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

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

    array(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
    )

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

Начиная с PHP 5.4 возможно использовать короткий синтаксис определения массивов, который заменяет языковую конструкцию array() на [].

Пример #1 Простой массив

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

// Начиная с PHP 5.4
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>

key может быть либо типа integer, либо типа string. value может быть любого типа.

Дополнительно с ключом key будут сделаны следующие преобразования:

  • Строки, содержащие целое число (исключая случаи, когда число предваряется знаком +) будут преобразованы к типу integer. Например, ключ со значением "8" будет в действительности сохранен со значением 8. С другой стороны, значение "08" не будет преобразовано, так как оно не является корректным десятичным целым.
  • Числа с плавающей точкой (тип float) также будут преобразованы к типу integer, то есть дробная часть будет отброшена. Например, ключ со значением 8.7 будет в действительности сохранен со значением 8.
  • Тип bool также преобразовываются к типу integer. Например, ключ со значением true будет сохранен со значением 1 и ключ со значением false будет сохранен со значением 0.
  • Тип null будет преобразован к пустой строке. Например, ключ со значением null будет в действительности сохранен со значением "".
  • Массивы (тип array) и объекты (тип object) не могут использоваться в качестве ключей. При подобном использовании будет генерироваться предупреждение: Недопустимый тип смещения (Illegal offset type).

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

Пример #2 Пример преобразования типов и перезаписи элементов

<?php
$array = array(
    1    => "a",
    "1"  => "b",
    1.5  => "c",
    true => "d",
);
var_dump($array);
?>

Результат выполнения данного примера:

array(1) {
  [1]=>
  string(1) "d"
}

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

Массивы в PHP могут содержать ключи типов integer и string одновременно, так как PHP не делает различия между индексированными и ассоциативными массивами.

Пример #3 Смешанные ключи типов integer и string

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
    100   => -100,
    -100  => 100,
);
var_dump($array);
?>

Результат выполнения данного примера:

array(4) {
  ["foo"]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "foo"
  [100]=>
  int(-100)
  [-100]=>
  int(100)
}

Параметр key является необязательным. Если он не указан, PHP будет использовать предыдущее наибольшее значение ключа типа integer, увеличенное на 1.

Пример #4 Индексированные массивы без ключа

<?php
$array = array("foo", "bar", "hallo", "world");
var_dump($array);
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(5) "hallo"
  [3]=>
  string(5) "world"
}

Возможно указать ключ только для некоторых элементов и пропустить для других:

Пример #5 Ключи для некоторых элементов

<?php
$array = array(
         "a",
         "b",
    6 => "c",
         "d",
);
var_dump($array);
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [6]=>
  string(1) "c"
  [7]=>
  string(1) "d"
}

Как вы видите последнее значение "d" было присвоено ключу 7. Это произошло потому, что самое большое значение ключа целого типа перед этим было 6.

Доступ к элементам массива с помощью квадратных скобок

Доступ к элементам массива может быть осуществлен с помощью синтаксиса array[key].

Пример #6 Доступ к элементам массива

<?php
$array = array(
    "foo" => "bar",
    42    => 24,
    "multi" => array(
         "dimensional" => array(
             "array" => "foo"
         )
    )
);

var_dump($array["foo"]);
var_dump($array[42]);
var_dump($array["multi"]["dimensional"]["array"]);
?>

Результат выполнения данного примера:

string(3) "bar"
int(24)
string(3) "foo"

Замечание:

И квадратные и фигурные скобки можно взаимозаменяемо использовать для доступа к элементам массива (то есть и $array[42] и $array{42} равнозначны).

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

С PHP 5.5 возможно разыменовывать массив буквально.

Пример #7 Разыменование массива

<?php
function getArray() {
    return array(1, 2, 3);
}

// в PHP 5.4
$secondElement = getArray()[1];

// ранее делали так
$tmp = getArray();
$secondElement = $tmp[1];

// или так
list(, $secondElement) = getArray();
?>

Замечание:

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

Замечание:

Массив, разыменовывающий скалярное значение, которое не является типом (string), отдаст NULL без какого-либо оповещения об ошибке.

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

Существующий массив может быть изменен путем явной установкой значений в нем.

Это выполняется присвоением значений массиву (array) с указанием в скобках ключа. Кроме того, ключ можно опустить, в результате получится пустая пара скобок ([]).

    $arr[key] = value;
    $arr[] = value;
    // key может быть integer или string
    // value может быть любым значением любого типа

Если массив $arr еще не существует, он будет создан. Таким образом, это еще один способ определить массив array. Однако такой способ применять не рекомендуется, так как если переменная $arr уже содержит некоторое значение (например, значение типа string из переменной запроса), то это значение останется на месте и [] может на самом деле означать доступ к символу в строке. Лучше инициализировать переменную путем явного присваивания значения.

Замечание: Начиная с PHP 7.1.0, используя в оператор "пустой индекс" на строке, приведет к фатальной ошибке. Ранее, в этом случае, строка молча преобразовывалась в массив.

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

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

$arr[] = 56;    // В этом месте скрипта это
                // то же самое, что и $arr[13] = 56;

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

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

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

Замечание:

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

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

<?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]. Но почему? Часто в старых скриптах можно встретить следующий синтаксис:

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

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

Внимание

Этот резервный вариант для обработки неопределенной константы в качестве пустой строки объявлен устаревшим с PHP 7.2.0 и генерирует ошибку уровня E_WARNING. Ранее выдавалась ошибка уровня E_NOTICE.

Замечание: Это не означает, что нужно всегда заключать ключ в кавычки. Нет необходимости заключать в кавычки константы или переменные, поскольку это помешает 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 известны также и константы:

<?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 и т.д.

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

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

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

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

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

Если вы преобразуете в массив объект (object), вы получите в качестве элементов массива свойства (переменные-члены) этого объекта. Ключами будут имена переменных-членов, с некоторыми примечательными исключениями: целочисленные свойства станут недоступны; к закрытым полям класса (private) спереди будет дописано имя класса; к защищенным полям класса (protected) спереди будет добавлен символ '*'. Эти добавленные значения с обоих сторон также имеют нулевые байты. Это может вызвать несколько неожиданное поведение:

<?php

class A {
    private $A; // Это станет '\0A\0A'
}

class B extends A {
    private $A; // Это станет '\0B\0A'
    public $AA; // Это станет 'AA'
}

var_dump((array) new B());
?>

Вышеприведенный код покажет 2 ключа с именем 'AA', хотя один из них на самом деле имеет имя '\0A\0A'.

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

Сравнение

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

Примеры

Тип массив в PHP является очень гибким, вот несколько примеров:

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

$b = array('a', 'b', 'c');

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

$b = array();
$b[] = 'a';
$b[] = 'b';
$b[] = 'c';

// после выполнения этого кода, $a будет массивом
// array('color' => 'red', 'taste' => 'sweet', 'shape' => 'round',
// 'name' => 'apple', 0 => 4), а $b будет
// array(0 => 'a', 1 => 'b', 2 => 'c'), или просто array('a', 'b', 'c').
?>

Пример #8 Использование 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();
?>

Пример #9 Коллекция

<?php
$colors = array('red', 'blue', 'green', 'yellow');

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

?>

Результат выполнения данного примера:

Вам нравится red?
Вам нравится blue?
Вам нравится green?
Вам нравится yellow?

Изменение значений массива напрямую возможно путем передачи их по ссылке.

Пример #10 Изменение элемента в цикле

<?php
foreach ($colors as &$color) {
    $color = strtoupper($color);
}
unset($color); /* это нужно для того, чтобы последующие записи в
$color не меняли последний элемент массива */

print_r($colors);
?>

Результат выполнения данного примера:

Array
(
    [0] => RED
    [1] => BLUE
    [2] => GREEN
    [3] => YELLOW
)

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

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

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

Результат выполнения данного примера:

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

Пример #12 Заполнение массива

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

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

Пример #13 Сортировка массива

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

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

Пример #14 Рекурсивные и многомерные массивы

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

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

// Создаст новый многомерный массив
$juices["apple"]["green"] = "good";
?>

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

<?php
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 изменился,
             // $arr1 все еще array(2, 3)

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


Итерируемые

Iterable - псевдотип, введенный в PHP 7.1. Он принимает любой массив (array) или объект, реализующий интерфейс Traversable. Оба этих типа итерируются с помощью foreach и могут быть использованы с yield from в генераторах.

Использование Iterable

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

Пример #1 Пример использования iterable в качестве параметра

<?php

function foo(iterable $iterable) {
    foreach ($iterable as $value) {
        // ...
    }
}

?>

Параметры, объявленные как iterable, могут использовать NULL или массив в качестве значения по умолчанию.

Пример #2 Пример установки значения по умолчанию для iterable

<?php

function foo(iterable $iterable = []) {
    // ...
}

?>

Iterable также может использоваться как возвращаемый тип для указания, что функция вернет итерируемое значение. Если возвращаемое значение не является массивом или объектом, реализующим Traversable, будет выброшено исключение TypeError.

Пример #3 Пример использования iterable в качестве возвращаемого типа

<?php

function bar(): iterable {
    return [1, 2, 3];
}

?>

Функции, объявляющие iterable как возвращаемый тип, также могут быть генераторами.

Пример #4 Пример использования iterable в качестве возвращаемого значения генератора

<?php

function gen(): iterable {
    yield 1;
    yield 2;
    yield 3;
}

?>

Приведение типа iterable

Наследующие/реализующие классы могут расширять методы, использующие массив (array) или объекты, реализующие Traversable в качестве типов параметров до iterable или ограничить возвращаемые типы с iterable до массива (array) или Traversable.

Пример #5 Пример приведения типа iterable

<?php

interface Example {
    public function method(array $array): iterable;
}

class ExampleImplementation implements Example {
    public function method(iterable $iterable): array {
        // Тип параметра расширен, а возвращаемое значение ограничено.
    }
}

?>


Объекты

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

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

<?php
class foo
{
    function do_foo()
    {
        echo "Код foo.";
    }
}

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

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

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

Если object преобразуется в object, объект не изменится. Если значение другого типа преобразуется в object, создается новый экземпляр встроенного класса stdClass. Если значение было NULL, новый экземпляр будет пустым. Массивы преобразуются в object с именами полей, названными согласно ключам массива и соответствующими им значениям. Обратите внимание, что в этом случае до PHP 7.2.0 числовые ключи не будут доступны, пока не проитерировать объект.

<?php
$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // выводит 'bool(false)'
var_dump(key($obj)); // выводит 'int(1)'

$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // выводит 'bool(true)', начиная с PHP 7.2.0; 'bool(false)' ранее
var_dump(key($obj)); // выводит 'string(1) "1"', начиная с PHP 7.2.0; 'int(1)' ранее

?>

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

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


Ресурс

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

Смотрите также описание функции get_resource_type().

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

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

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

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

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


NULL

Специальное значение NULL представляет собой переменную без значения. NULL - это единственно возможное значение типа null.

Переменная считается null, если:

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

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

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

Синтаксис

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

<?php
$var = NULL;
?>

Смотрите также функции is_null() и unset().

Приведение к NULL

Внимание

Данный функционал объявлен УСТАРЕВШИМ, начиная с PHP 7.2.0 и его использование крайне не рекомендовано.

Приведение переменной к null с использованием (unset) $var не удаляет переменную и ее значение. Данное выражение только возвращает NULL


Функции обратного вызова (callback-функции)

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

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

Передача

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

Метод созданного объекта (object) передается как массив, содержащий объект по индексу 0 и имя метода по индексу 1. Доступ к закрытым и защищенным методам разрешен изнутри класса.

Статические методы класса также могут быть вызваны без создания экземпляра объекта класса путем передачи имени класса вместо объекта в элементе массива с индексом 0. С PHP 5.2.3 также можно передавать 'ClassName::methodName'.

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

Пример #1 Пример callback-функции

<?php

// Пример callback-функции
function my_callback_function() {
    echo 'Привет, мир!';
}

// Пример callback-метода
class MyClass {
    static function myCallbackMethod() {
        echo 'Привет, мир!';
    }
}

// Тип 1: Простой callback
call_user_func('my_callback_function');

// Тип 2: Вызов статического метода класса
call_user_func(array('MyClass', 'myCallbackMethod'));

// Тип 3: Вызов метода класса
$obj = new MyClass();
call_user_func(array($obj, 'myCallbackMethod'));

// Тип 4: Вызов статического метода класса (С PHP 5.2.3)
call_user_func('MyClass::myCallbackMethod');

// Тип 5: Вызов относительного статического метода (С PHP 5.3.0)
class A {
    public static function who() {
        echo "A\n";
    }
}

class B extends A {
    public static function who() {
        echo "B\n";
    }
}

call_user_func(array('B', 'parent::who')); // A

// Тип 6: Объекты, реализующие __invoke, могут быть использованы как callback (С PHP 5.3)
class C {
    public function __invoke($name) {
        echo 'Привет ', $name, "\n";
    }
}

$c = new C();
call_user_func($c, 'PHP!');
?>

Пример #2 Пример callback-функции с использованием замыкания

<?php
// Наше замыкание
$double = function($a) {
    return $a * 2;
};

// Диапазон чисел
$numbers = range(1, 5);

// Использование замыкания в качестве callback-функции
// для удвоения каждого элемента в нашем диапазоне
$new_numbers = array_map($double, $numbers);

print implode(' ', $new_numbers);
?>

Результат выполнения данного примера:

2 4 6 8 10

Замечание:

Callback-функции, зарегистрированные такими функциями как call_user_func() и call_user_func_array(), не будут вызваны при наличии не пойманного исключения, брошенного в предыдущей callback-функции.


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

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

mixed

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

Например, функция gettype() принимает все типы PHP, тогда как str_replace() принимает только типы string и array.

number

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

callback

Псевдотип callback использовался в этой документации до того, как был введен тип callable в PHP 5.4. Он означает в точности то же самое.

array|object

array|object указывает, что параметр может быть как массивом array, так и объектом object.

void

void в качестве типа результата означает, что возвращенное значение бесполезно. void в списке параметров означает, что функция не принимает параметров. Начиная с PHP 7.1, void разрешается использовать в качестве подсказки возвращаемого типа функции.

...

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


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

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

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

<?php
$foo = "1";  // $foo - это строка (ASCII-код 49)
$foo *= 2;   // $foo теперь целое число (2)
$foo = $foo * 1.3;  // $foo теперь число с плавающей точкой (2.6)
$foo = 5 * "10 Little Piggies"; // $foo - это целое число (50)
$foo = 5 * "10 Small Pigs";     // $foo - это целое число (50)
?>

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

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

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

Замечание:

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

К тому же, так как PHP поддерживает индексирование в строках аналогично смещениям элементов массивов, следующий пример будет верен для всех версий PHP:

<?php
$a    = 'car'; // $a - это строка
$a[0] = 'b';   // $a все еще строка
echo $a;       // bar
?>

Более подробно смотрите в разделе Доступ к символу в строке.

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

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

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

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

  • (int), (integer) - приведение к integer
  • (bool), (boolean) - приведение к boolean
  • (float), (double), (real) - приведение к float
  • (string) - приведение к string
  • (array) - приведение к array
  • (object) - приведение к object
  • (unset) - приведение к NULL

Приведение типа (binary) и поддержка префикса b были добавлены в PHP 5.2.1. Обратите внимание, что (binary) по существу то же самое, что и (string), но не следует полагаться на этот тип приведения.

Приведение типа (unset) объявлено устаревшим с PHP 7.2.0. Обратите внимание, что приведение типа (unset) это то же самое, что присвоение NULL переменной. Тип приведения (unset) будет удален в PHP 8.0.0.

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

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

Приведение строковых литералов и переменных к бинарным строкам:

<?php
$binary = (binary) $string;
$binary = b"binary string";
?>

Замечание:

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

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

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

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

  • Преобразование в булев тип
  • Преобразование в целое число
  • Преобразование в число с плавающей точкой
  • Преобразование в строку
  • Преобразование в массив
  • Преобразование в объект
  • Преобразование в ресурс
  • Преобразование в NULL
  • Таблицы сравнения типов


Переменные

Содержание

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


Основы

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

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

Замечание: Под буквами здесь подразумеваются символы a-z, A-Z и байты от 128 до 255 (0x80-0xff).

Замечание: $this - это специальная переменная, которой нельзя ничего присваивать.

Подсказка

Смотрите также Руководство по именованию.

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

<?php
$var = 'Боб';
$Var = 'Джо';
echo "$var, $Var";      // выведет "Боб, Джо"

$4site = 'еще нет';     // неверно; начинается с цифры
$_4site = 'еще нет';    // верно; начинается с символа подчеркивания
$tayte = 'mansikka';    // верно; 'a' это (Расширенный) ASCII 228.
?>

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

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

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

<?php
$foo = 'Боб';              // Присваивает $foo значение 'Боб'
$bar = &$foo;              // Ссылка на $foo через $bar.
$bar = "Меня зовут $bar";  // Изменение $bar...
echo $bar;
echo $foo;                 // меняет и $foo.
?>

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

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

function test()
{
   return 25;
}

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

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

Пример #1 Значения по умолчанию в неинициализированных переменных

<?php
// Неустановленная И не имеющая ссылок (то есть без контекста использования) переменная; выведет NULL
var_dump($unset_var);

// Булевое применение; выведет 'false' (Подробнее по этому синтаксису смотрите раздел о тернарном операторе)
echo($unset_bool ? "true\n" : "false\n");

// Строковое использование; выведет 'string(3) "abc"'
$unset_str .= 'abc';
var_dump($unset_str);

// Целочисленное использование; выведет 'int(25)'
$unset_int += 25; // 0 + 25 => 25
var_dump($unset_int);

// Использование в качестве числа с плавающей точкой (float/double); выведет 'float(1.25)'
$unset_float += 1.25;
var_dump($unset_float);

// Использование в качестве массива; выведет array(1) {  [3]=>  string(3) "def" }
$unset_arr[3] = "def"; // array() + array(3 => "def") => array(3 => "def")
var_dump($unset_arr);

// Использование в качестве объекта; создает новый объект stdClass (см. http://www.php.net/manual/ru/reserved.classes.php)
// Выведет: object(stdClass)#1 (1) {  ["foo"]=>  string(3) "bar" }
$unset_obj->foo = 'bar';
var_dump($unset_obj);
?>

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


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

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

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

Замечание:

До PHP 5.4, доступен старый способ доступа к информации связанной с HTTP-запросом, с помощью переменных HTTP_*_VARS. Эта возможность может быьт отключена с помощью директивы register_long_arrays начиная с PHP 5.0.0.

Замечание: Переменные переменных

Суперглобальные переменные не могут быть переменными переменных внутри функций или методов класса.

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


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

Область видимости переменной - это контекст, в котором эта переменная определена. В большинстве случаев все переменные 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:

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

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

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

    $b = $a + $b;
}

Sum();
echo $b;
?>

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

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

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

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

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

Sum();
echo $b;
?>

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

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

<?php
function test_superglobal()
{
    echo $_POST['name'];
}
?>

Замечание:

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

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

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

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

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

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

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

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

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

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

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

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

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

Замечание:

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

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

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

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

Замечание:

Статические объявления вычисляются во время компиляции скрипта.

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

PHP использует модификаторы переменных 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 'Статический объект: ';
    var_dump($obj);
    if (!isset($obj)) {
        // Присвоить ссылку статической переменной
        $obj = &new stdclass;
    }
    $obj->property++;
    return $obj;
}

function &get_instance_noref() {
    static $obj;

    echo 'Статический объект: ';
    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();
?>

Результат выполнения данного примера:

Статический объект: NULL
Статический объект: NULL

Статический объект: NULL
Статический объект: 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] для второго.

К свойствам класса также можно получить доступ динамически. Переменное имя свойства будет разрешено в том контексте, в котором произойдет вызов к нему. Например, в случае выражения $foo->$bar, локальная область видимости будет просканирована на наличие переменной $bar, значение которой будет использовано в качестве имени свойства объекта $foo. Это также работает и в том случае, если $bar осуществляет доступ к элементу массива.

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

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

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

Пример #1 Пример переменного имени свойства

<?php
class foo {
    var $bar = 'I am bar.';
    var $arr = array('I am A.', 'I am B.', 'I am C.');
    var $r   = 'I am r.';
}

$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo $foo->$bar . "\n";
echo $foo->{$baz[1]} . "\n";

$start = 'b';
$end   = 'ar';
echo $foo->{$start . $end} . "\n";

$arr = 'arr';
echo $foo->{$arr[1]} . "\n";

?>

Результат выполнения данного примера:

I am bar.
I am bar.
I am bar.
I am r.

Внимание

Обратите внимание, что переменные переменных не могут использоваться с cуперглобальными массивами PHP. Переменная $this также является особой, на нее нельзя ссылаться динамически.


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

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

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

Пример #1 Простая 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>

С версии PHP 5.4.0, есть только два способа получить доступ к данным из форм HTML. Доступные сейчас способы приведены ниже:

Пример #2 Доступ к данным из простой HTML-формы, отправленной через POST

<?php
echo $_POST['username'];
echo $_REQUEST['username'];
?>

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

Пример #3 Старые способы получения пользовательских данных

<?php
// ВНИМАНИЕ: эти методы больше НЕ поддерживаются.

// Использование import_request_variables() - эта функция удалена в PHP 5.4.0
   import_request_variables('p', 'p_');
   echo $p_username;

// Эти длинные предопределенные массивы удалены в PHP 5.4.0
   echo $HTTP_POST_VARS['username'];

// Использование register_globals. Эта функциональность удалена в PHP 5.4.0
   echo $username;
?>

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

Замечание:

Точки и пробелы в именах переменных преобразуется в знаки подчеркивания. Например, <input name="a.b" /> станет $_REQUEST["a_b"].

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

Пример #4 Более сложные переменные формы

<?php
if ($_POST) {
    echo '<pre>';
    echo htmlspecialchars(print_r($_POST, true));
    echo '</pre>';
}
?>
<form action="" 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 Schwabenbrau</option>
    </select><br />
    <input type="submit" value="Отправь меня!" />
</form>

Замечание: Если внешнее имя переменной начинается с корректного синтаксиса массива, завершающие символы молча игнорируются. Например, <input name="foo[bar]baz"> becomes $_REQUEST['foo']['bar'].

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

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

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

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

HTTP Cookies

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

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

<?php
  setcookie("MyCookie[foo]", 'Testing 1', time()+3600);
  setcookie("MyCookie[bar]", 'Testing 2', time()+3600);
?>

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

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

Пример #5 Пример использования setcookie()

<?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(). Смотрите также раздел Типы.

HTTP является текстовым протоколом, и большинство, если не всё, содержимое, которое приходит в cуперглобальные массивы, например $_POST и $_GET, останется в виде строк. PHP не будет преобразовывать значения в определенный тип. В приведенном ниже примере $_GET["var1"] будет содержать строку "null", а $_GET["var2"] строку "123".

/index.php?var1=null&var2=123

Список изменений

Версия | Описание
5.4.0 | Регистрация глобальных переменных, Магические кавычки и register_long_arrays удалены
5.3.0 | Регистрация глобальных переменных, Магические кавычки и register_long_arrays стали устаревшими


Константы

Содержание

  • Синтаксис
  • Волшебные константы

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

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

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

Подсказка

Смотрите также Руководство по именованию.

Пример #1 Правильные и неправильные имена констант

<?php

// Правильные имена констант
define("FOO",     "что-то");
define("FOO2",    "что-то ещё");
define("FOO_BAR", "что-то большее");

// Неправильные имена констант
define("2FOO",    "что-то");

// Это верное объявление, но лучше его не использовать:
// PHP однажды может зарегистрировать волшебную константу,
// которая нарушит работу скрипта
define("__FOO__", "что-то");

?>

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

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


Синтаксис

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

Если использована конструкция const, константы могут содержать только скалярные данные (типы boolean, integer, float и string). С PHP 5.6 возможно определить константу как скалярное выражение, а также определить константу с типом array. Можно определить константы с типом resource, но не рекомендуется, так как это может привести к неожиданным результатам.

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

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

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

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

  • У констант нет приставки в виде знака доллара ($);
  • До PHP 5.3 константы можно определить только с помощью функции define(), а не присваиванием значения;
  • Константы могут быть определены и доступны в любом месте без учета области видимости;
  • Константы не могут быть переопределены или удалены после первоначального объявления; и
  • Константы могут иметь только скалярные значения. С версии PHP 5.6 возможно задать константу массивом, используя const, а с PHP 7 константы с массивом можно определить с помощью define(). Вы можете использовать массивы при задании констант, если результат выражения будет допустимого типа. Например, const FOO = array(1,2,3)[0];.

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

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

Пример #2 Определение констант с помощью ключевого слова const

<?php
// Работает, начиная с версии PHP 5.3.0
const CONSTANT = 'Здравствуй, мир.';

echo CONSTANT;

// Работает, начиная с версии PHP 5.6.0
const ANOTHER_CONST = CONSTANT.'; Прощай, мир.';
echo ANOTHER_CONST;

const ANIMALS = array('dog', 'cat', 'bird');
echo ANIMALS[1]; // выводит "cat"

// Работает в PHP 7
define('ANIMALS', array(
    'dog',
    'cat',
    'bird'
));
echo ANIMALS[1]; // выводит "cat"
?>

Замечание:

В отличие от определения констант с помощью функции define(), константы, объявленные с помощью ключевого слова const должны быть объявлены в самой верхней области видимости, потому что они определяются при компилировании скрипта. Это означает, что их нельзя объявлять внутри функций, циклов, выражений if и блоков try/ catch.

Замечание:

Константы, определенные с помощью ключевого слова const всегда регистрозависимы. Тогда как при использовании define() они могут быть нечувствительны к регистру.

Смотрите также Константы классов.


Волшебные константы

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

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

Некоторые магические константы PHP
Имя | Описание
__LINE__ | Текущий номер строки в файле.
__FILE__ | Полный путь и имя текущего файла с развернутыми симлинками. Если используется внутри подключаемого файла, то возвращается имя данного файла.
__DIR__ | Директория файла. Если используется внутри подключаемого файла, то возвращается директория этого файла. Это эквивалентно вызову dirname(__FILE__). Возвращаемое имя директории не оканчивается на слеш, за исключением корневой директории.
__FUNCTION__ | Имя функции или {closure} в случае анонимной функции.
__CLASS__ | Имя класса. Это имя содержит название пространства имен, в котором класс был объявлен (например, Foo\Bar). Обратите внимание, что начиная с PHP 5.4 __CLASS__ также работает в трейтах. При использовании в методах трейтов __CLASS__ является именем класса, в котором эти методы используется.
__TRAIT__ | Имя трейта. Это имя содержит название пространства имен, в котором трейт был объявлен (например, Foo\Bar).
__METHOD__ | Имя метода класса.
__NAMESPACE__ | Имя текущего пространства имен.
ClassName::class | Полное имя класса (с указанием пространства имен). См. также ::class.

Смотрите также
get_class(),
get_object_vars(),
file_exists() и
function_exists().

Список изменений

Версия | Описание
5.5.0 | Добавлена магическая константа ::class
5.4.0 | Добавлена константа __TRAIT__
5.3.0 | Добавлены константы __DIR__ и __NAMESPACE__


Выражения

Выражения - это самые важные строительные элементы 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 поддерживает четыре типа скалярных значений: целочисленные (integer), с плавающей точкой (float), строковые значения (string) и булевы (boolean) значения (скалярными являются значения, которые вы не можете 'разбить' на меньшие части, в отличие, например, от массивов). PHP поддерживает также два комбинированных (не скалярных) типа: массивы и объекты. Любое значение такого типа может присваиваться переменной или возвращаться функцией.

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

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

Очень распространенным типом выражений являются выражения сравнения. Результатом вычислений являются 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. */
?>

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

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

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


Операторы

Содержание

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

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

Операторы можно сгруппировать по количеству принимаемых ими значений. Унарные операторы принимают только одно значение, например, ! (оператор логического отрицания) или ++ (инкремент). Бинарные операторы принимают два значения; это, например, знакомые всем арифметические операторы + (плюс) и - (минус), большинство поддерживаемых в PHP операторов входят именно в эту категорию. Ну и, наконец, есть всего один тернарный оператор, ? :, принимающий три значения, обычно его так и называют -- "тернарный оператор" (хотя, возможно, более точным названием было бы "условный оператор").

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


Приоритет оператора

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

Если операторы имеют равный приоритет, то будут ли они выполняться справа налево или слева направо определяется их ассоциативностью. К примеру, "-" является лево-ассоциативным оператором. Следовательно 1 - 2 - 3 сгруппируется как (1 - 2) - 3 и пересчитается в -4. С другой стороны "=" - право-ассоциативный оператор, так что $a = $b = $c сгруппируется как $a = ($b = $c).

Неассоциативные операторы с одинаковым приоритетом не могут использоваться совместно. К примеру 1 < 2 > 1 не будет работать в PHP. Выражение 1 <= 1 == 1, с другой стороны, будет, поскольку == имеет более низкий приоритет чем <=.

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

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

Порядок выполнения операторов
Ассоциативность | Оператор | Дополнительная информация
неассоциативна | clone new | clone и new
правая | ** | арифметические операторы
правая | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | типы и инкремент/декремент
неассоциативна | instanceof | типы
правая | ! | логические операторы
левая | * / % | арифметические операторы
левая | + - . | арифметические операторы и строковые операторы
левая | << >> | побитовые операторы
неассоциативна | < <= > >= | операторы сравнения
неассоциативна | == != === !== <> <=> | операторы сравнения
левая | & | побитовые операторы и ссылки
левая | ^ | побитовые операторы
левая | | | побитовые операторы
левая | && | логические операторы
левая | || | логические операторы
правая | ?? | операторы сравнения с null
левая | ? : | тернарный оператор
правая | = += -= *= **= /= .= %= &= |= ^= <<= >>= | операторы присваивания
правая | yield from | yield from
правая | yield | yield
левая | and | логические операторы
левая | xor | логические операторы
левая | or | логические операторы

Пример #1 Ассоциативность

<?php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
// ассоциативность тернарного оператора отличается от C/C++
$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 не указывает, в каком порядке вычисляются выражения и кода, который предполагает специфичный порядок вычисления следует избегать, потому, что поведение может меняться в разных версиях PHP или в зависимости от окружающего кода.

Пример #2 Неопределенный порядок вычисления

<?php
$a = 1;
echo $a + $a++; // может вывести как 2 так и 3

$i = 1;
$array[$i] = $i++; // может установить индекс как 1, так 2
?>

Пример #3 +, - и . имеют одинаковый приоритет

<?php
$x = 4;
// следующий код может выдать неожиданный результат:
echo "x минус 1 равно " . $x-1 . ", ну я надеюсь\n";
// поскольку он вычисляется таким образом:
echo (("x минус один равно " . $x) - 1) . ", ну я надеюсь\n";
// требуемый приоритет следует задать скобками:
echo "x минус 1 равно " . ($x-1) . ", ну я надеюсь\n";
?>

Результат выполнения данного примера:

-1, ну я надеюсь
-1, ну я надеюсь
x минус один равно 3, ну я надеюсь

Замечание:

Несмотря на то, что = имеет более низкий приоритет, чем большинство других операторов, PHP все же позволяет делать так: if (!$a = foo()), в этом примере результат выполнения foo() будет присвоен $a.


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

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

Арифметические операции
Пример | Название | Результат
+$a | Идентичность | Конвертация $a в int или float, что более подходит.
-$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 в степень $b. Добавлено в PHP 5.6.

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

При делении по модулю операнды преобразуются в целые числа (путем удаления дробной части) до начала операции. Для деления по модую чисел с плавающей точкой используйте fmod().

Результат операции остатка от деления % будет иметь тот же знак, что и делимое — то есть, результат $a % $b будет иметь тот же знак, что и $a. Например:

<?php

echo (5 % 3)."\n";           // выводит 2
echo (5 % -3)."\n";          // выводит 2
echo (-5 % 3)."\n";          // выводит -2
echo (-5 % -3)."\n";         // выводит -2

?>

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


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

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

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

<?php

$a = ($b = 4) + 5; // $a теперь равно 9, а $b было присвоено 4.

?>

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

<?php

$a = 3;
$a += 5; // устанавливает $a в 8, как если бы мы написали: $a = $a + 5;
$b = "Привет";
$b .= "-привет!"; // устанавливает $b в "Привет-привет!",  как и $b = $b . "-привет!";

?>

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

Исключением из обычного для PHP способа присваивания по значению являются объекты (object), которые присваиваются по ссылке. Принудительно скопировать объекты по значению можно с помощью специального ключевого слова clone.

Присваивание по ссылке

Присваивание по ссылке также поддерживается, для него используется синтаксис $var = &$othervar;. Присваивание по ссылке означает, что обе переменные указывают на одни и те же данные и никакого копирования не происходит.

Пример #1 Присваивание по ссылке

<?php
$a = 3;
$b = &$a; // $b - это ссылка на $a

print "$a\n"; // печатает 3
print "$b\n"; // печатает 3

$a = 4; // меняем $a

print "$a\n"; // печатает 4
print "$b\n"; // также печатает 4, так как $b является ссылкой на $a,
              // а значение переменной $a успело измениться
?>

Оператор new автоматически возвращает ссылку, поэтому присваивание результата операции new по ссылке не допускается с PHP 7.0.0, начиная с PHP 5.3.0 генерирует ошибку уровня E_DEPRECATED, а в более ранних версиях - ошибку уровня E_STRICT.

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

<?php
class C {}

$o = &new C;
?>

Результат выполнения данного примера в PHP 7:

Parse error: syntax error, unexpected 'new' (T_NEW) in ...

Результат выполнения данного примера в PHP 5.3:

Deprecated: Assigning the return value of new by reference is deprecated in ...

Результат выполнения данного примера в PHP 5:

Strict Standards: Assigning the return value of new by reference is deprecated in ...

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


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

Побитовые операторы позволяют считывать и устанавливать конкретные биты целых чисел.

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

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

Используйте скобки для обеспечения необходимого приоритета операторов. Например, $a & $b == true сначала проверяет на равенство, а потом выполняет побитовое и; тогда как ($a & $b) == true сначала выполняет побитовое и, а потом выполняет проверку на равенство.

Если оба операдна для &, | и ^ строки, то операция будет производиться с кодами ASCII всех символов строки и в результате вернет строку. Во всех остальных случаях, оба операнда будут преобразованы к целому и результатом будет целое число.

Если операнд для ~ строка, то операция будет производиться с кодами ASCII всех символов строки и в результате вернет строку, в ином случае как операнд, так и результат, будут считаться целыми.

Оба операнда и результат выполнения << и >> всегда считаются за целое.

      Опция настроек PHP error_reporting использует побитовые значения, обеспечивая
      реальную демонстрацию удаления значений битов. Чтобы показать все ошибки, кроме
      замечаний, инструкции в файле php.ini предлагают использовать:
      E_ALL & ~E_NOTICE

      Начинаем со значения E_ALL:
      00000000000000000111011111111111
      Затем берем значение E_NOTICE...
      00000000000000000000000000001000
      ... и инвертируем его с помощью ~:
      11111111111111111111111111110111
      Наконец, используем побитовое И (&), чтобы установить только те биты,
      которые установлены в единицу в обоих значениях:
      00000000000000000111011111110111

      Другой способ достичь этого - использовать ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR, ^),
      чтобы получить только те биты, которые установлены в единицу
      либо только в одном, либо только в другом значении:
      E_ALL ^ E_NOTICE

      Опция error_reporting также может быть использована для демонстрации
      установки битов. Показать только ошибки и обрабатываемые ошибки можно
      следующим образом:
      E_ERROR | E_RECOVERABLE_ERROR

      Здесь мы комбинируем E_ERROR
      00000000000000000000000000000001
      и
      00000000000000000001000000000000
      с помощью оператора ИЛИ (|),
      чтобы получить биты, установленные хотя бы в одном операнде:
      00000000000000000001000000000001

Пример #1 Побитовыми операции И, ИЛИ и ИСКЛЮЧАЮЩЕЕ ИЛИ (AND, OR и XOR) над целыми числами

<?php
/*
 * Не обращайте внимания на этот верхний раздел кода,
 * это просто форматирование для более ясного вывода.
 */

$format = '(%1$2d = %1$04b) = (%2$2d = %2$04b)'
        . ' %3$s (%4$2d = %4$04b)' . "\n";

echo <<<EOH
 ----------   ----------- -- ----------
 результат      значение      оп тест
 ----------   ----------- -- ----------
EOH;

/*
 * Вот сами примеры.
 */

$values = array(0, 1, 2, 4, 8);
$test = 1 + 4;

echo "\n Побитовое И (AND) \n";
foreach ($values as $value) {
    $result = $value & $test;
    printf($format, $result, $value, '&', $test);
}

echo "\n Побитовое (включающее) ИЛИ (OR) \n";
foreach ($values as $value) {
    $result = $value | $test;
    printf($format, $result, $value, '|', $test);
}

echo "\n Побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR) \n";
foreach ($values as $value) {
    $result = $value ^ $test;
    printf($format, $result, $value, '^', $test);
}
?>

Результат выполнения данного примера:

 ----------   ----------- -- ----------
 результат      значение      оп тест
 ----------   ----------- -- ----------
 Побитовое И (AND)
( 0 = 0000) = ( 0 = 0000) & ( 5 = 0101)
( 1 = 0001) = ( 1 = 0001) & ( 5 = 0101)
( 0 = 0000) = ( 2 = 0010) & ( 5 = 0101)
( 4 = 0100) = ( 4 = 0100) & ( 5 = 0101)
( 0 = 0000) = ( 8 = 1000) & ( 5 = 0101)

 Побитовое (включающее) ИЛИ (OR)
( 5 = 0101) = ( 0 = 0000) | ( 5 = 0101)
( 5 = 0101) = ( 1 = 0001) | ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) | ( 5 = 0101)
( 5 = 0101) = ( 4 = 0100) | ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) | ( 5 = 0101)

 Побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR)
( 5 = 0101) = ( 0 = 0000) ^ ( 5 = 0101)
( 4 = 0100) = ( 1 = 0001) ^ ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) ^ ( 5 = 0101)
( 1 = 0001) = ( 4 = 0100) ^ ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) ^ ( 5 = 0101)

Пример #2 Побитовая операция ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR) над строками

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

echo "12" ^ "9"; // Выводит символ Backspace (ascii 8)
                 // ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8

echo "hallo" ^ "hello"; // Выводит ascii-значения #0 #4 #0 #0 #0
                        // 'a' ^ 'e' = #4

echo 2 ^ "3"; // Выводит 1
              // 2 ^ ((int)"3") == 1

echo "2" ^ 3; // Выводит 1
              // ((int)"2") ^ 3 == 1
?>

Пример #3 Побитовый сдвиг над целыми числами

<?php
/*
 * Несколько примеров.
 */

echo "\n--- СДВИГ ВПРАВО НАД ПОЛОЖИТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---\n";

$val = 4;
$places = 1;
$res = $val >> $places;
p($res, $val, '>>', $places, 'слева была вставлена копия знакового бита');

$val = 4;
$places = 2;
$res = $val >> $places;
p($res, $val, '>>', $places);

$val = 4;
$places = 3;
$res = $val >> $places;
p($res, $val, '>>', $places, 'биты были выдвинуты за правый край');

$val = 4;
$places = 4;
$res = $val >> $places;
p($res, $val, '>>', $places, 'то же, что и выше; нельзя сдвинуть дальше 0');

echo "\n--- СДВИГ ВПРАВО НАД ОТРИЦАТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---\n";

$val = -4;
$places = 1;
$res = $val >> $places;
p($res, $val, '>>', $places, 'слева была вставлена копия знакового бита');

$val = -4;
$places = 2;
$res = $val >> $places;
p($res, $val, '>>', $places, 'биты были выдвинуты за правый край');

$val = -4;
$places = 3;
$res = $val >> $places;
p($res, $val, '>>', $places, 'то же, что и выше; нельзя сдвинуть дальше -1');

echo "\n--- СДВИГ ВЛЕВО НАД ПОЛОЖИТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---\n";

$val = 4;
$places = 1;
$res = $val << $places;
p($res, $val, '<<', $places, 'правый край был дополнен нулями');

$val = 4;
$places = (PHP_INT_SIZE * 8) - 4;
$res = $val << $places;
p($res, $val, '<<', $places);

$val = 4;
$places = (PHP_INT_SIZE * 8) - 3;
$res = $val << $places;
p($res, $val, '<<', $places, 'знаковые биты были выдвинуты');

$val = 4;
$places = (PHP_INT_SIZE * 8) - 2;
$res = $val << $places;
p($res, $val, '<<', $places, 'биты были выдвинуты за левый край');

echo "\n--- СДВИГ ВЛЕВО НАД ОТРИЦАТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---\n";

$val = -4;
$places = 1;
$res = $val << $places;
p($res, $val, '<<', $places, 'правый край был дополнен нулями');

$val = -4;
$places = (PHP_INT_SIZE * 8) - 3;
$res = $val << $places;
p($res, $val, '<<', $places);

$val = -4;
$places = (PHP_INT_SIZE * 8) - 2;
$res = $val << $places;
p($res, $val, '<<', $places, 'биты были выдвинуты за левый край, включая знаковый бит');

/*
 * Не обращайте внимания на этот нижний раздел кода,
 * это просто форматирование для более ясного вывода.
 */

function p($res, $val, $op, $places, $note = '') {
    $format = '%0' . (PHP_INT_SIZE * 8) . "b\n";

    printf("Выражение: %d = %d %s %d\n", $res, $val, $op, $places);

    echo " Десятичный вид:\n";
    printf("  val=%d\n", $val);
    printf("  res=%d\n", $res);

    echo " Двоичный вид:\n";
    printf('  val=' . $format, $val);
    printf('  res=' . $format, $res);

    if ($note) {
        echo " ЗАМЕЧАНИЕ: $note\n";
    }

    echo "\n";
}
?>

Результат выполнения данного примера на 32-битных машинах:

--- СДВИГ ВПРАВО НАД ПОЛОЖИТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---
Выражение: 2 = 4 >> 1
 Десятичный вид:
  val=4
  res=2
 Двоичный вид:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000010
 ЗАМЕЧАНИЕ: слева была вставлена копия знакового бита

Выражение: 1 = 4 >> 2
 Десятичный вид:
  val=4
  res=1
 Двоичный вид:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000001

Выражение: 0 = 4 >> 3
 Десятичный вид:
  val=4
  res=0
 Двоичный вид:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 ЗАМЕЧАНИЕ: биты были выдвинуты за правый край

Выражение: 0 = 4 >> 4
 Десятичный вид:
  val=4
  res=0
 Двоичный вид:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 ЗАМЕЧАНИЕ: то же, что и выше; нельзя сдвинуть дальше 0

--- СДВИГ ВПРАВО НА ОТРИЦАТЕЛЬНЫХ ЦЕЛЫХ ЧИСЛАХ ---
Выражение: -2 = -4 >> 1
 Десятичный вид:
  val=-4
  res=-2
 Двоичный вид:
  val=11111111111111111111111111111100
  res=11111111111111111111111111111110
 ЗАМЕЧАНИЕ: слева была вставлена копия знакового бита

Выражение: -1 = -4 >> 2
 Десятичный вид:
  val=-4
  res=-1
 Двоичный вид:
  val=11111111111111111111111111111100
  res=11111111111111111111111111111111
 ЗАМЕЧАНИЕ: биты были выдвинуты за правый край

Выражение: -1 = -4 >> 3
 Десятичный вид:
  val=-4
  res=-1
 Двоичный вид:
  val=11111111111111111111111111111100
  res=11111111111111111111111111111111
 ЗАМЕЧАНИЕ: то же, что и выше; нельзя сдвинуть дальше -1

--- СДВИГ ВЛЕВО НАД ПОЛОЖИТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---
Выражение: 8 = 4 << 1
 Десятичный вид:
  val=4
  res=8
 Двоичный вид:
  val=00000000000000000000000000000100
  res=00000000000000000000000000001000
 ЗАМЕЧАНИЕ: правый край был дополнен нулями

Выражение: 1073741824 = 4 << 28
 Десятичный вид:
  val=4
  res=1073741824
 Двоичный вид:
  val=00000000000000000000000000000100
  res=01000000000000000000000000000000

Выражение: -2147483648 = 4 << 29
 Десятичный вид:
  val=4
  res=-2147483648
 Двоичный вид:
  val=00000000000000000000000000000100
  res=10000000000000000000000000000000
 ЗАМЕЧАНИЕ: знаковые биты были выдвинуты

Выражение: 0 = 4 << 30
 Десятичный вид:
  val=4
  res=0
 Двоичный вид:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 ЗАМЕЧАНИЕ: биты были выдвинуты за левый край

--- СДВИГ ВЛЕВО НАД ОТРИЦАТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---
Выражение: -8 = -4 << 1
 Десятичный вид:
  val=-4
  res=-8
 Двоичный вид:
  val=11111111111111111111111111111100
  res=11111111111111111111111111111000
 ЗАМЕЧАНИЕ: правый край был дополнен нулями

Выражение: -2147483648 = -4 << 29
 Десятичный вид:
  val=-4
  res=-2147483648
 Двоичный вид:
  val=11111111111111111111111111111100
  res=10000000000000000000000000000000

Выражение: 0 = -4 << 30
 Десятичный вид:
  val=-4
  res=0
 Двоичный вид:
  val=11111111111111111111111111111100
  res=00000000000000000000000000000000
 ЗАМЕЧАНИЕ: биты были выдвинуты за левый край, включая знаковый бит

Результат выполнения данного примера на 64-битных машинах:

--- СДВИГ ВПРАВО НАД ПОЛОЖИТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---
Выражение: 2 = 4 >> 1
 Десятичный вид:
  val=4
  res=2
 Двоичный вид:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000010
 ЗАМЕЧАНИЕ: слева была вставлена копия знакового бита

Выражение: 1 = 4 >> 2
 Десятичный вид:
  val=4
  res=1
 Двоичный вид:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000001

Выражение: 0 = 4 >> 3
 Десятичный вид:
  val=4
  res=0
 Двоичный вид:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 ЗАМЕЧАНИЕ: биты были выдвинуты за правый край

Выражение: 0 = 4 >> 4
 Десятичный вид:
  val=4
  res=0
 Двоичный вид:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 ЗАМЕЧАНИЕ: то же, что и выше; нельзя сдвинуть дальше 0

--- СДВИГ ВПРАВО НАД ОТРИЦАТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---
Выражение: -2 = -4 >> 1
 Десятичный вид:
  val=-4
  res=-2
 Двоичный вид:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111110
 ЗАМЕЧАНИЕ: слева была вставлена копия знакового бита

Выражение: -1 = -4 >> 2
 Десятичный вид:
  val=-4
  res=-1
 Двоичный вид:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111111
 ЗАМЕЧАНИЕ: биты были выдвинуты за правый край

Выражение: -1 = -4 >> 3
 Десятичный вид:
  val=-4
  res=-1
 Двоичный вид:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111111
 ЗАМЕЧАНИЕ: то же, что и выше; нельзя сдвинуть дальше -1

--- СДВИГ ВЛЕВО НАД ПОЛОЖИТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---
Выражение: 8 = 4 << 1
 Десятичный вид:
  val=4
  res=8
 Двоичный вид:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000001000
 ЗАМЕЧАНИЕ: правый край был дополнен нулями

Выражение: 4611686018427387904 = 4 << 60
 Десятичный вид:
  val=4
  res=4611686018427387904
 Двоичный вид:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0100000000000000000000000000000000000000000000000000000000000000

Выражение: -9223372036854775808 = 4 << 61
 Десятичный вид:
  val=4
  res=-9223372036854775808
 Двоичный вид:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=1000000000000000000000000000000000000000000000000000000000000000
 ЗАМЕЧАНИЕ: знаковые биты были выдвинуты

Выражение: 0 = 4 << 62
 Десятичный вид:
  val=4
  res=0
 Двоичный вид:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 ЗАМЕЧАНИЕ: биты были выдвинуты за левый край

--- СДВИГ ВЛЕВО НАД ОТРИЦАТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---
Выражение: -8 = -4 << 1
 Десятичный вид:
  val=-4
  res=-8
 Двоичный вид:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111000
 ЗАМЕЧАНИЕ: правый край был дополнен нулями

Выражение: -9223372036854775808 = -4 << 61
 Десятичный вид:
  val=-4
  res=-9223372036854775808
 Двоичный вид:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1000000000000000000000000000000000000000000000000000000000000000

Выражение: 0 = -4 << 62
 Десятичный вид:
  val=-4
  res=0
 Двоичный вид:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=0000000000000000000000000000000000000000000000000000000000000000
 ЗАМЕЧАНИЕ: биты были выдвинуты за левый край, включая знаковый бит

Внимание

До PHP 7.0 использование отрицательного побитового сдвига, либо сдвига, превышающегося разрядность операционной системы может привести к неопределенному результату. Другими словами, не сдвигайте больше чем на 31 бит на 32-битных системах и больше чем на 63 бита на 64-битных.

Используйте функции из расширения gmp для побитовых операций над числами, большими чем PHP_INT_MAX.

Смотрите также
pack(),
unpack(),
gmp_and(),
gmp_or(),
gmp_xor(),
gmp_testbit(),
gmp_clrbit()


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

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

Операторы сравнения
Пример | Название | Результат
$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, или они разных типов.
$a < $b | Меньше | TRUE если $a строго меньше $b.
$a > $b | Больше | TRUE если $a строго больше $b.
$a <= $b | Меньше или равно | TRUE если $a меньше или равно $b.
$a >= $b | Больше или равно | TRUE если $a больше или равно $b.
$a <=> $b | Космический корабль (spaceship) | Число типа integer меньше, больше или равное нулю, когда $a соответственно меньше, больше или равно $b. Доступно c PHP 7.

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

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

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

// С плавающей точкой
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Строки
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1

echo "a" <=> "aa"; // -1
echo "zz" <=> "aa"; // 1

// Массивы
echo [] <=> []; // 0
echo [1, 2, 3] <=> [1, 2, 3]; // 0
echo [1, 2, 3] <=> []; // 1
echo [1, 2, 3] <=> [1, 2, 1]; // 1
echo [1, 2, 3] <=> [1, 2, 4]; // -1

// Объекты
$a = (object) ["a" => "b"];
$b = (object) ["a" => "b"];
echo $a <=> $b; // 0

$a = (object) ["a" => "b"];
$b = (object) ["a" => "c"];
echo $a <=> $b; // -1

$a = (object) ["a" => "c"];
$b = (object) ["a" => "b"];
echo $a <=> $b; // 1

// сравниваются не только значения; ключи должны соответствовать
$a = (object) ["a" => "b"];
$b = (object) ["b" => "b"];
echo $a <=> $b; // 1

?>

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

Сравнение различных типов
Тип операнда 1 | Тип операнда 2 | Результат
null или string | string | NULL преобразуется в "", числовое или лексическое сравнение
bool или null | что угодно | Преобразуется в тип bool, FALSE < TRUE
object | object | Встроенные классы могут определять свои собственные правила сравнения, объекты разных классов не сравниваются, про сравнение объектов одного класса см. Сравнение объекта
string, resource или number | string, resource или number | Строки и ресурсы переводятся в числа, обычная математика
array | array | Массивы с меньшим числом элементов считаются меньше, если ключ из первого операнда не найден во втором операнде - массивы не могут сравниваться, иначе идет сравнение соответствующих значений (см. пример ниже)
array | что угодно | тип array всегда больше
object | что угодно | тип object всегда больше

Пример #1 Сравнение boolean/null

<?php
// Логические значения и null всегда сравниваются как логические
var_dump(1 == TRUE);  // TRUE - то же, что и (bool)1 == TRUE
var_dump(0 == FALSE); // TRUE - то же, что и (bool)0 == FALSE
var_dump(100 < TRUE); // FALSE - то же, что и (bool)100 < TRUE
var_dump(-10 < FALSE);// FALSE - то же, что и (bool)-10 < FALSE
var_dump(min(-100, -10, NULL, 10, 100)); // NULL - (bool)NULL < (bool)-100 это FALSE < TRUE
?>

Пример #2 Алгоритм сравнения обычных массивов

<?php
// Так сравниваются массивы при сравнении стандартными операторами
function standard_array_compare($op1, $op2)
{
    if (count($op1) < count($op2)) {
        return -1; // $op1 < $op2
    } elseif (count($op1) > count($op2)) {
        return 1; // $op1 > $op2
    }
    foreach ($op1 as $key => $val) {
        if (!array_key_exists($key, $op2)) {
            return null; // не могут быть сравнимы
        } elseif ($val < $op2[$key]) {
            return -1;
        } elseif ($val > $op2[$key]) {
            return 1;
        }
    }
    return 0; // $op1 == $op2
}
?>

Смотрите также strcasecmp(), strcmp(), операторы массивов и раздел руководства Типы.

Внимание

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

Из-за особого внутреннего представления типа float, не нужно проверять на равенство два числа с плавающей точкой (float).

Для более подробной информации смотрите документацию по типу float.

Тернарный оператор

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

Пример #3 Присваивание значения по умолчанию

<?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.

Начиная с версии PHP 5.3 также стало возможным не писать среднюю часть тернарного оператора. Выражение expr1 ?: expr3 возвращает expr1 если expr1 имеет значение TRUE и expr3 в противном случае.

Замечание: Обратите внимание, что тернарный оператор является выражением и трактуется не как переменная, а как результат выражения. Это важно знать, если вы хотите вернуть переменную по ссылке. Выражение return $var == 42 ? $a : $b; не будет работать в функции, возвращающей значение по ссылке, а в более поздних версиях PHP также будет выдано предупреждение.

Замечание:

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

Пример #4 Неочевидное поведение тернарного оператора

<?php
// на первый взгляд, следующий код должен вывести 'true'
echo (true?'true':false?'t':'f');

// однако, он выводит 't'
// это происходит потому, что тернарные выражения вычисляются слева направо

// это намного более очевидная версия вышеприведенного кода
echo ((true ? 'true' : false) ? 't' : 'f');

// здесь вы можете видеть, что первое выражение вычисляется в 'true', которое
// в свою очередь вычисляется в (bool)true, таким образом возвращая истинную ветвь
// второго тернарного выражения.
?>

Оператор объединения с null

Также, начиная с PHP 7, добавился новый оператор "??" (null coalescing).

Пример #5 Присваивание значения по умолчанию

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

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

?>
Выражение (expr1) ?? (expr2) вычисляется так: expr2, если expr1 равен NULL и expr1 в противном случае.

На практике, этот оператор не вызывает предупреждения, если левый операнд не существует, как и isset(). Это очень полезно для ключей массива.

Замечание: Пожалуйста помните, что этот оператор является выражением, и он приравнивается к выражению, а не значению переменной. Это может быть важным, если вы хотите вернуть значение по ссылке. Выражение return $foo ?? $bar; в функции возвращающей ссылку будет не работать, а выводить предупреждение.

Замечание:

Обратите внимание, что этот оператор позволяет использовать простую вложенность:

Пример #6 Вложенный оператор null coalescing

<?php

$foo = null;
$bar = null;
$baz = 1;
$qux = 2;

echo $foo ?? $bar ?? $baz ?? $qux; // выведет 1

?>


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

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

Если вы установили собственную функцию обработки ошибок с помощью set_error_handler(), то она все равно будет вызвана, однако, если внутри этой функции будет вызвана функция error_reporting(), то она вернет 0, если функция, вызвавшая данную ошибку, была подавлена с помощью @.

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

<?php
// Преднамеренная ошибка при работе с файлами
$my_file = @file ('non_existent_file') or
    die ("Ошибка при открытии файла: сообщение об ошибке было таким: '$php_errormsg'");

// работает для любых выражений, а не только для функций
$value = @$cache[$key];
// В случае если ключа $key нет, сообщение об ошибке (notice) не будет отображено

?>

Замечание: Оператор @ работает только с выражениями. Есть простое правило: если что-то возвращает значение, значит вы можете использовать перед ним оператор @. Например, вы можете использовать @ перед именем переменной, произвольной функцией или вызовом 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.

Замечание: Операторы инкремента/декремента влияют только на числа и строки. Массивы, объекты, булевы значения и ресурсы не будут изменены. Декремент NULL также не даст никакого эффекта, однако инкремент даст значение 1.

Операторы инкремента и декремента
Пример | Название | Действие
++$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 (в отличие от С) касательно выполнения арифметических операций с символьными переменными. Например, в PHP и Perl $a = 'Z'; $a++; присвоит $a значение 'AA', в то время как в C a = 'Z'; a++; присвоит a значение '[' (ASCII-значение 'Z' равно 90, а ASCII-значение '[' равно 91). Следует учесть, что к символьным переменным можно применять операцию инкремента, в то время как операцию декремента применять нельзя, кроме того, поддерживаются только ASCII-символы (a-z и A-Z). Попытка инкремента/декремента других символьных переменных не будет иметь никакого эффекта, исходная строка останется неизменной.

Пример #1 Арифметические операции с символьными переменными

<?php
echo '== Буквы ==' . PHP_EOL;
$s = 'W';
for ($n=0; $n<6; $n++) {
    echo ++$s . PHP_EOL;
}
// С цифрами несколько по другому
echo '== Цифры ==' . PHP_EOL;
$d = 'A8';
for ($n=0; $n<6; $n++) {
    echo ++$d . PHP_EOL;
}
$d = 'A08';
for ($n=0; $n<6; $n++) {
    echo ++$d . PHP_EOL;
}
?>

Результат выполнения данного примера:

== Буквы ==
X
Y
Z
AA
AB
AC
== Цифры ==
A9
B0
B1
B2
B3
B4
A09
A10
A11
A12
A13
A14

Инкрементирование или декрементирование булевых переменных не приводит ни к какому результату.


Логические операторы

Логические операторы
Пример | Название | Результат
$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" в том, что они работают с различными приоритетами (см. таблицу Приоритет выполнения операторов).

Пример #1 Объяснение логических операторов

<?php

// --------------------
// foo() никогда не будет вызвана, т.к. эти операторы являются шунтирующими (short-circuit)

$a = (false && foo());
$b = (true  || foo());
$c = (false and foo());
$d = (true  or  foo());

// --------------------
// "||" имеет больший приоритет, чем "or"

// Результат выражения (false || true) присваивается переменной $e
// Действует как: ($e = (false || true))
$e = false || true;

// Константа false присваивается $f, а затем значение true игнорируется
// Действует как: (($f = false) or true)
$f = false or true;

var_dump($e, $f);

// --------------------
// "&&" имеет больший приоритет, чем "and"

// Результат выражения (true && false) присваивается переменной $g
// Действует как: ($g = (true && false))
$g = true && false;

// Константа true присваивается $h, а затем значение false игнорируется
// Действует как: (($h = true) and false)
$h = true and false;

var_dump($g, $h);
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)
bool(false)
bool(true)


Строковые операторы

В PHP есть два оператора для работы со строками (string). Первый - оператор конкатенации ('.'), который возвращает строку, представляющую собой соединение левого и правого аргумента. Второй - оператор присваивания с конкатенацией ('.='), который присоединяет правый аргумент к левому. Для получения более полной информации ознакомьтесь с разделом Операторы присваивания.

<?php
$a = "Привет, ";
$b = $a . "Мир!"; // $b теперь содержит строку "Привет, Мир!"

$a = "Привет, ";
$a .= "Мир!";     // $a теперь содержит строку "Привет, Мир!"
?>

Также ознакомьтесь с разделами документации Строки и Функции для работы со строками.


Операторы, работающие с массивами

Операторы, работающие с массивами
Пример | Название | Результат
$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 "Объединение \$a и \$b: \n";
var_dump($c);

$c = $b + $a; // Объединение $b и $a
echo "Объединение \$b и \$a: \n";
var_dump($c);

$a += $b; // Объединение $a += $b, это $a и $b
echo "Объединение \$a += \$b: \n";
var_dump($a);
?>
После своего выполнения скрипт напечатает следующее:
Объединение $a и $b:
array(3) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
}
Объединение $b и $a:
array(3) {
  ["a"]=>
  string(4) "pear"
  ["b"]=>
  string(10) "strawberry"
  ["c"]=>
  string(6) "cherry"
}

Объединение $a += $b:
array(3) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
}

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

Пример #1 Сравнение массивов

<?php
$a = array("apple", "banana");
$b = array(1 => "banana", "0" => "apple");

var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>

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


Оператор проверки типа

Оператор instanceof используется для определения того, является ли текущий объект экземпляром указанного класса.

Пример #1 Использование instanceof с классами

<?php
class MyClass
{
}

class NotMyClass
{
}
$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof NotMyClass);
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Оператор instanceof также может быть использован для определения, наследует ли определенный объект какому-либо классу:

Пример #2 Использование instanceof с наследуемыми классами

<?php
class ParentClass
{
}

class MyClass extends ParentClass
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof ParentClass);
?>

Результат выполнения данного примера:

bool(true)
bool(true)

Для проверки непринадлежности объекта некоторому классу, используйте логический оператор not.

Пример #3 Использование instanceof для проверки того, что объект не является экземпляром класса

<?php
class MyClass
{
}

$a = new MyClass;
var_dump(!($a instanceof stdClass));
?>

Результат выполнения данного примера:

bool(true)

Наконец, instanceof может быть также использован для проверки реализации объектом некоторого интерфейса:

Пример #4 Использование instanceof с интерфейсами

<?php
interface MyInterface
{
}

class MyClass implements MyInterface
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof MyInterface);
?>

Результат выполнения данного примера:

bool(true)
bool(true)

Хотя instanceof обычно используется с прямо указанным именем класса, он также может быть использован с другим объектом или строковой переменной:

Пример #5 Использование instanceof с другими переменными

<?php
interface MyInterface
{
}

class MyClass implements MyInterface
{
}

$a = new MyClass;
$b = new MyClass;
$c = 'MyClass';
$d = 'NotMyClass';

var_dump($a instanceof $b); // $b - объект класса MyClass
var_dump($a instanceof $c); // $c - строка 'MyClass'
var_dump($a instanceof $d); // $d - строка 'NotMyClass'
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)

Оператор instanceof не генерирует никаких ошибок, если проверяемая переменная не является объектом. В этом случае он просто возвращает FALSE. Константы, тем не менее, не допускаются.

Пример #6 Пример использования оператора instanceof для проверки других переменных

<?php
$a = 1;
$b = NULL;
$c = imagecreate(5, 5);
var_dump($a instanceof stdClass); // $a - целое типа integer
var_dump($b instanceof stdClass); // $b - NULL
var_dump($c instanceof stdClass); // $c - значение типа resource
var_dump(FALSE instanceof stdClass);
?>

Результат выполнения данного примера:

bool(false)
bool(false)
bool(false)
PHP Fatal error:  instanceof expects an object instance, constant given

Есть несколько подводных камней, которых следует остерегаться. До PHP 5.1.0, instanceof вызывал __autoload(), если имя класса не существовало. Вдобавок, если класс не был загружен, происходила фатальная ошибка. Это можно было обойти с помощью динамической ссылки на класс или использования строковой переменной с именем класса:

Пример #7 Избежание поиска класса и фатальных ошибок с instanceof в PHP 5.0

<?php
$d = 'NotMyClass';
var_dump($a instanceof $d); // нет фатальной ошибки
?>

Результат выполнения данного примера:

bool(false)

Оператор instanceof был добавлен в PHP 5. До этого времени использовалась функция is_a(), но позже is_a() была помечена устаревшей в пользу instanceof. Учтите, что с PHP 5.3.0, is_a() больше не является устаревшей.

Ознакомьтесь также с описанием функций get_class() и is_a().


Управляющие конструкции

Содержание

  • Введение
  • if
  • else
  • elseif/else if
  • Альтернативный синтаксис управляющих структур
  • while
  • do-while
  • for
  • foreach
  • break
  • continue
  • switch
  • declare
  • return
  • require
  • include
  • require_once
  • include_once
  • goto


Введение

Любой сценарий PHP состоит из последовательности инструкций. Инструкцией может быть присваивание, вызов функции, повтор кода (цикл), сравнение, или даже инструкция, которая ничего не делает (пустой оператор). После инструкции обычно ставится точка с запятой. Кроме того, инструкции могут быть объединены в блоки заключением их в фигурные скобки. Блок инструкций также сам по себе является инструкцией. В этом разделе описываются различные типы инструкций.


if

(PHP 4, PHP 5, PHP 7)

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

if (выражение)
  инструкция

Как описано в разделе про выражения, выражение вычисляется в булево значение. Если выражение принимает значение TRUE, PHP выполнит инструкцию, а если оно принимает значение FALSE - проигнорирует. Информацию о том, какие значения считаются равными значению FALSE, можно найти в разделе 'Преобразование в булев тип'.

Следующий пример выведет a больше b, если значение переменной $a больше, чем $b:

<?php
if ($a > $b)
  echo "a больше b";
?>

Часто необходимо, чтобы условно выполнялось более одной инструкции. Разумеется, для этого нет необходимости помещать каждую инструкцию в if. Вместо этого можно объединить несколько инструкций в блок. Например, следующий код выведет a больше b, если значение переменной $a больше, чем $b, а затем присвоит значение переменной $a переменной $b:

<?php
if ($a > $b) {
  echo "a больше b";
  $b = $a;
}
?>

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


else

(PHP 4, PHP 5, PHP 7)

Часто необходимо выполнить одно выражение, если определенное условие верно, и другое выражение, если условие не верно. Именно для этого else и используется. else расширяет оператор if, чтобы выполнить выражение, в случае, если условие в операторе if равно FALSE. К примеру, следующий код выведет a больше чем b, если $a больше, чем $b, и a НЕ больше, чем b в противном случае:

<?php
if ($a > $b) {
  echo "a больше, чем b";
} else {
  echo "a НЕ больше, чем b";
}
?>
Выражение else выполняется только, если выражение if вычисляется как FALSE, и если нет других любых выражений elseif, или если они все равны FALSE также (см. elseif).


elseif/else if

(PHP 4, PHP 5, PHP 7)

Конструкция elseif, как ее имя и говорит есть сочетание if и else. Аналогично else, она расширяет оператор if для выполнения различных выражений в случае, когда условие начального оператора if эквивалентно FALSE. Однако, в отличие от else, выполнение альтернативного выражения произойдет только тогда, когда условие оператора elseif будет являться равным TRUE. К примеру, следующий код может выводить a больше, чем b, a равно b или a меньше, чем b:

<?php
if ($a > $b) {
    echo "a больше, чем b";
} elseif ($a == $b) {
    echo "a равен b";
} else {
    echo "a меньше, чем b";
}
?>

Может быть несколько elseif в одном выражении if. Первое выражение elseif (если оно есть) равное TRUE будет выполнено. В PHP вы также можете написать 'else if' (в два слова), и тогда поведение будет идентичным 'elseif' (в одно слово). Синтаксически значение немного отличается (если вы знакомы с языком С, это то же самое поведение), но в конечном итоге оба выражения приведут к одному и тому же результату.

Выражение elseif выполнится, если предшествующее выражение if и предшествующие выражения elseif эквивалентны FALSE, а текущий elseif равен TRUE.

Замечание: Заметьте, что elseif и else if будут равнозначны только при использовании фигурных скобок, как в примерах выше. Если используются синтаксис с двоеточием для определения условий if/elseif, вы не должны разделять else if на два слова, иначе это вызовет фатальную ошибку в PHP.

<?php

/* Некорректный способ: */
if($a > $b):
    echo $a." больше, чем ".$b;
else if($a == $b): // Не скомпилируется.
    echo "Строка выше вызывает фатальную ошибку.";
endif;

/* Корректный способ: */
if($a > $b):
    echo $a." больше, чем ".$b;
elseif($a == $b): // Заметьте, тут одно слово.
    echo $a." равно ".$b;
else:
    echo $a." не больше и не равно ".$b;
endif;

?>


Альтернативный синтаксис управляющих структур

(PHP 4, PHP 5, PHP 7)

PHP предлагает альтернативный синтаксис для некоторых его управляющих структур, а именно: if, while, for, foreach и switch. В каждом случае основной формой альтернативного синтаксиса является изменение открывающей фигурной скобки на двоеточие (:), а закрывающей скобки на endif;, endwhile;, endfor;, endforeach; или endswitch; соответственно.

<?php if ($a == 5): ?>
A равно 5
<?php endif; ?>

В приведенном выше примере, блок HTML "A равно 5" вложен внутрь структуры if, написанной с альтернативным синтаксисом. Блок HTML будет показан только если переменная $a равна 5.

Альтернативный синтаксис также применяется и к else и elseif. Ниже приведена структура if с elseif и else в альтернативном формате:

<?php
if ($a == 5):
    echo "a равно 5";
    echo "...";
elseif ($a == 6):
    echo "a равно 6";
    echo "!!!";
else:
    echo "a не равно ни 5 ни 6";
endif;
?>

Замечание:

Смешивание синтаксиса в одном и том же блоке управления не поддерживается.

Внимание

Любой вывод (включая пробельные символы) между выражением switch и первым case приведут к синтаксической ошибке. Например, данный код не будет работать:

<?php switch ($foo): ?>
    <?php case 1: ?>
    ...
<?php endswitch ?>

В то же время следующий пример будет работать, так как завершающий перевод строки после выражения switch считается частью закрывающего ?> и следовательно ничего не выводится между switch и case:

<?php switch ($foo): ?>
<?php case 1: ?>
    ...
<?php endswitch ?>

Смотрите также while, for и if для дальнейших примеров.


while

(PHP 4, PHP 5, PHP 7)

Циклы while являются простейшим видом циклов в PHP. Они ведут себя так же, как и в языке C. Простейшей формой цикла while является следующее выражение:

while (expr)
    statement

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

Также, как и с оператором if, вы можете группировать несколько выражений внутри одного цикла while, заключая эти выражения между фигурными скобками или используя альтернативный синтаксис:

while (expr):
    statement
    ...
endwhile;

Следующие примеры идентичны, и оба выведут числа от 1 до 10:

<?php
/* пример 1 */

$i = 1;
while ($i <= 10) {
    echo $i++;  /* выводиться будет значение переменной
                   $i перед её увеличением
                   (post-increment) */
}

/* пример 2 */

$i = 1;
while ($i <= 10):
    echo $i;
    $i++;
endwhile;
?>


do-while

(PHP 4, PHP 5, PHP 7)

Цикл do-while очень похож на цикл while, с тем отличием, что истинность выражения проверяется в конце итерации, а не в начале. Главное отличие от обычного цикла while в том, что первая итерация цикла do-while гарантированно выполнится (истинность выражения проверяется в конце итерации), тогда как она может не выполниться в обычном цикле while (истинность выражения которого проверяется в начале выполнения каждой итерации, и если изначально имеет значение FALSE, то выполнение цикла будет прервано сразу).

Есть только один вариант синтаксиса цикла do-while:

<?php
$i = 0;
do {
    echo $i;
} while ($i > 0);
?>

В примере цикл будет выполнен ровно один раз, так как после первой итерации, когда проверяется истинность выражения, она будет вычислена как FALSE ($i не больше 0) и выполнение цикла прекратится.

Опытные пользователи С могут быть знакомы с другим использованием цикла do-while, которое позволяет остановить выполнение хода программы в середине блока, для этого нужно обернуть нужный блок кода вызовом do-while (0) и использовать break. Следующий фрагмент кода демонстрирует этот подход:

<?php
do {
    if ($i < 5) {
        echo "i еще недостаточно велико";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
   echo "значение i уже подходит";

    /* обработка i */

} while (0);
?>

Не беспокойтесь, если вы не понимаете это сразу или вообще. Вы можете писать скрипты и даже мощные программы без использования этой 'возможности'. Начиная с версии PHP 5.3.0, стало возможным использовать оператор goto вместо подобного "хака".


for

(PHP 4, PHP 5, PHP 7)

Цикл for самый сложный цикл в PHP. Он ведет себя так же, как и в языке C. Синтаксис цикла for следующий:

for (expr1; expr2; expr3)
    statement

Первое выражение (expr1) всегда вычисляется (выполняется) только один раз в начале цикла.

В начале каждой итерации оценивается выражение expr2. Если оно принимает значение TRUE, то цикл продолжается и выполняются вложенные операторы. Если оно принимает значение FALSE, выполнение цикла заканчивается.

В конце каждой итерации выражение expr3 вычисляется (выполняется).

Каждое из выражений может быть пустым или содержать несколько выражений, разделенных запятыми. В expr2 все выражения, разделенные запятыми, вычисляются, но результат берется из последнего. Если выражение expr2 отсутствует, это означает, что цикл будет выполняться бесконечно. (PHP неявно воспринимает это значение как TRUE, так же, как в языке C). Это может быть не так бесполезно, как вы могли подумать, так как часто необходимо прервать цикл, используя условный оператор break вместо использования выражения в цикле for, которое принимает истинное значение.

Рассмотрим следующие примеры. Все они отображают числа от 1 до 10:

<?php
/* пример 1 */

for ($i = 1; $i <= 10; $i++) {
    echo $i;
}

/* пример 2 */

for ($i = 1; ; $i++) {
    if ($i > 10) {
        break;
    }
    echo $i;
}

/* пример 3 */

$i = 1;
for (; ; ) {
    if ($i > 10) {
        break;
    }
    echo $i;
    $i++;
}

/* пример 4 */

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>

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

PHP также поддерживает альтернативный синтаксис с двоеточием для циклов for.

for (expr1; expr2; expr3):
    statement
    ...
endfor;

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

<?php
/*
 * Это массив с некоторыми данными, которые мы хотим изменить
 * при работе цикла.
 */
$people = array(
    array('name' => 'Kalle', 'salt' => 856412),
    array('name' => 'Pierre', 'salt' => 215863)
);

for($i = 0; $i < count($people); ++$i) {
    $people[$i]['salt'] = mt_rand(000000, 999999);
}
?>

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

<?php
$people = array(
    array('name' => 'Kalle', 'salt' => 856412),
    array('name' => 'Pierre', 'salt' => 215863)
);

for($i = 0, $size = count($people); $i < $size; ++$i) {
    $people[$i]['salt'] = mt_rand(000000, 999999);
}
?>


foreach

(PHP 4, PHP 5, PHP 7)

Конструкция foreach предоставляет простой способ перебора массивов. Foreach работает только с массивами и объектами и будет генерировать ошибку при попытке использования с переменными других типов или неинициализированными переменными. Существует два вида синтаксиса:

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

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

Второй цикл дополнительно присвоит ключ текущего элемента переменной $key на каждой итерации.

Возможно настроить итераторы объектов.

Замечание:

В PHP 5, когда оператор foreach начинает исполнение, внутренний указатель массива автоматически устанавливается на первый его элемент. Это означает, что нет необходимости вызывать функцию reset() перед использованием цикла foreach.

Поскольку в PHP 5 foreach полагается на внутренний указатель массива, его изменение внутри цикла может привести к непредсказуемому поведению.

В PHP 7 foreach не использует внутренний указатель массива.

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

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// массив $arr сейчас таков: array(2, 4, 6, 8)
unset($value); // разорвать ссылку на последний элемент
?>

Внимание

Ссылка $value на последний элемент массива останется после окончания цикла foreach. Рекомендуется уничтожать ее с помощью unset(). В противном случае вы можете столкнуться с таким поведением:

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// $arr = array(2, 4, 6, 8)

// Без unset($value), $value все еще ссылается на последний элемент: $arr[3]

foreach ($arr as $key => $value) {
    // $arr[3] будет перезаписываться значениями $arr при каждой итерации цикла
    echo "{$key} => {$value} ";
    print_r($arr);
}
// ...И в конце концов предпоследнее значение определит окончательное содержимое $arr[3]

// вывод:
// 0 => 2 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 2 )
// 1 => 4 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 4 )
// 2 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 )
// 3 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 )
?>

До PHP 5.5.0 указатель на $value возможен, только если на перебираемый массив можно ссылаться (то есть если он является переменной). Следующий код будет работать с PHP 5.5.0:

<?php
foreach (array(1, 2, 3, 4) as &$value) {
    $value = $value * 2;
}
?>

Замечание:

Оператор foreach не поддерживает возможность подавления сообщений об ошибках с помощью префикса '@'.

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

<?php
/* Пример 1: только значение */

$a = array(1, 2, 3, 17);

foreach ($a as $v) {
    echo "Текущее значение переменной \$a: $v.\n";
}

/* Пример 2: значение (для иллюстрации массив выводится в виде значения с ключем) */

$a = array(1, 2, 3, 17);

$i = 0; /* только для пояснения */

foreach ($a as $v) {
    echo "\$a[$i] => $v.\n";
    $i++;
}

/* Пример 3: ключ и значение */

$a = array(
    "one" => 1,
    "two" => 2,
    "three" => 3,
    "seventeen" => 17
);

foreach ($a as $k => $v) {
    echo "\$a[$k] => $v.\n";
}

/* Пример 4: многомерные массивы */
$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";
    }
}

/* Пример 5: динамические массивы */

foreach (array(1, 2, 3, 4, 5) as $v) {
    echo "$v\n";
}
?>

Распаковка вложенных массивов с помощью list()

(PHP 5 >= 5.5.0, PHP 7)

В PHP 5.5 была добавлена возможность обхода массива массивов с распаковкой вложенного массива в переменные цикла, передав list() в качестве значения.

Например:

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a, $b)) {
    // $a содержит первый элемент вложенного массива,
    // а $b содержит второй элемент.
    echo "A: $a; B: $b\n";
}
?>

Результат выполнения данного примера:

A: 1; B: 2
A: 3; B: 4

Можно передавать меньшее количество элементов в list(), чем находится во вложенном массиве, в этом случае оставшиеся значения массива будут проигнорированы:

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a)) {
    // Обратите внимание на отсутствие $b.
    echo "$a\n";
}
?>

Результат выполнения данного примера:

1
3

Если массив содержит недостаточно элементов для заполнения всех переменных из list(), то будет сгенерировано замечание об ошибке:

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a, $b, $c)) {
    echo "A: $a; B: $b; C: $c\n";
}
?>

Результат выполнения данного примера:

Notice: Undefined offset: 2 in example.php on line 7
A: 1; B: 2; C:

Notice: Undefined offset: 2 in example.php on line 7
A: 3; B: 4; C:

Список изменений

Версия | Описание
7.0.0 | foreach больше не использует внутренний указатель массива.
5.5.0 | Поддержка ссылки $value для выражений. Раньше можно было ссылаться только на переменные.
5.5.0 | Поддержка распаковки вложенных массивов с помощью list().


break

(PHP 4, PHP 5, PHP 7)

break прерывает выполнение текущей структуры for, foreach, while, do-while или switch.

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

<?php
$arr = array('один', 'два', 'три', 'четыре', 'стоп', 'пять');
foreach ($arr as $val) {
    if ($val == 'стоп') {
        break;    /* Тут можно было написать 'break 1;'. */
    }
    echo "$val<br />\n";
}

/* Использование дополнительного аргумента. */

$i = 0;
while (++$i) {
    switch ($i) {
        case 5:
            echo "Итерация 5<br />\n";
            break 1;  /* Выйти только из конструкции switch. */
        case 10:
            echo "Итерация 10; выходим<br />\n";
            break 2;  /* Выходим из конструкции switch и из цикла while. */
        default:
            break;
    }
}
?>

История изменений break
Версия | Описание
7.0.0 | Операторы break и continue вне цикла или управляющей структуры switch теперь обрабатываются во время компиляции, а не во время выполнения, как это было ранее, поэтому выдают ошибки уровня E_COMPILE_ERROR.
5.4.0 | break 0; больше не допускается. В предыдущих версиях это воспринималось точно также как и break 1;.
5.4.0 | Удалена возможность передачи переменных (например, $num = 2; break $num;) в виде числового аргумента.


continue

(PHP 4, PHP 5, PHP 7)

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

Замечание: В PHP оператор switch считается циклическим и внутри него может использоваться continue. Если continue не передано аргументов, то он ведет себя аналогично break, но выдает предупреждение о возможной ошибке. Если switch расположен внутри цикла, continue 2 продолжит выполнение внешнего цикла со следующей итерации.

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

<?php
foreach ($arr as $key => $value) {
    if (!($key % 2)) { // пропуск четных чисел
        continue;
    }
    do_something_odd($value);
}

$i = 0;
while ($i++ < 5) {
    echo "Снаружи<br />\n";
    while (1) {
        echo "В середине<br />\n";
        while (1) {
            echo "Внутри<br />\n";
            continue 3;
        }
        echo "Это никогда не будет выведено.<br />\n";
    }
    echo "Это тоже.<br />\n";
}
?>

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

<?php
for ($i = 0; $i < 5; ++$i) {
    if ($i == 2)
        continue
    print "$i\n";
}
?>

Ожидается, что результат будет такой:

0
1
3
4

Но в версиях PHP ниже 5.4.0 этот скрипт выведет следующее:

2

Потому что выражение continue print "$i\n"; воспринимается как единое выражение, поэтому print вызывается только тогда, когда выражение $i == 2 истинно. (Возвращаемое значение от print передается к continue как числовой аргумент.)

Замечание:

Начиная с PHP 5.4.0, вышеприведенный пример вызовет ошибку E_COMPILE_ERROR.

Изменения, касающиеся оператора continue
Версия | Описание
7.3.0 | continue внутри switch, использующееся как замена break для switch будет вызывать ошибку уровня E_WARNING.
7.0.0 | Операторы break и continue вне цикла или управляющей структуры switch теперь обрабатываются во время компиляции, а не во время выполнения, как это было ранее, поэтому выдают ошибки уровня E_COMPILE_ERROR.
5.4.0 | continue 0; больше не допускается. В предыдущих версиях это воспринималось точно также как и continue 1;.
5.4.0 | Убрана возможность задавать переменную (например, $num = 2; continue $num;) в качестве числового аргумента.


switch

(PHP 4, PHP 5, PHP 7)

Оператор switch похож на ряд операторов IF с одинаковым условием. Во многих случаях вам может понадобиться сравнивать одну и ту же переменную (или выражение) с множеством различных значений и выполнять различные участки кода в зависимости от того, какое значение принимает эта переменная (или выражение). Это именно тот случай, для которого удобен оператор switch.

Замечание: Обратите внимание, что в отличие от некоторых других языков, оператор continue применяется в конструкциях switch и действует подобно оператору break. Если у вас конструкция switch находится внутри цикла, и вам необходимо перейти к следующей итерации цикла, используйте continue 2.

Замечание:

Заметьте, что конструкция switch/case использует нестрогое сравнение (==).

Список изменений
Версия | Описание
7.0.0 | Наличие нескольких операторов default вызывает исключение E_COMPILE_ERROR.

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

Пример #1 Оператор switch

<?php
if ($i == 0) {
    echo "i равно 0";
} elseif ($i == 1) {
    echo "i равно 1";
} elseif ($i == 2) {
    echo "i равно 2";
}

switch ($i) {
    case 0:
        echo "i равно 0";
        break;
    case 1:
        echo "i равно 1";
        break;
    case 2:
        echo "i равно 2";
        break;
}
?>

Пример #2 Оператор switch допускает сравнение с типом string

<?php
switch ($i) {
    case "яблоко":
        echo "i это яблоко";
        break;
    case "шоколадка":
        echo "i это шоколадка";
        break;
    case "пирог":
        echo "i это пирог";
        break;
}
?>

Важно понять, как оператор switch выполняется, чтобы избежать ошибок. Оператор switch исполняет строчка за строчкой (на самом деле выражение за выражением). В начале никакой код не исполняется. Только в случае нахождения оператора case, значение которого совпадает со значением выражения в операторе switch, PHP начинает исполнять операторы. PHP продолжает исполнять операторы до конца блока switch либо до тех пор, пока не встретит оператор break. Если вы не напишете оператор break в конце секции case, PHP будет продолжать исполнять команды следующей секции case. Например :

<?php
switch ($i) {
    case 0:
        echo "i равно 0";
    case 1:
        echo "i равно 1";
    case 2:
        echo "i равно 2";
}
?>

В этом примере, если $i равно 0, то PHP исполнит все операторы echo! Если $i равно 1, PHP исполнит два последних оператора echo. Вы получите ожидаемое поведение оператора ('i равно 2' будет отображено) только, если $i будет равно 2. Таким образом, важно не забывать об операторах break (даже если вы, возможно, хотите избежать его использования по назначению при определенных обстоятельствах).

В операторе switch выражение вычисляется один раз и этот результат сравнивается с каждым оператором case. В выражении elseif, выражение вычисляется снова. Если ваше условие более сложное, чем простое сравнение и/или находится в цикле, конструкция switch может работать быстрее.

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

<?php
switch ($i) {
    case 0:
    case 1:
    case 2:
        echo "i меньше чем 3, но неотрицательный";
        break;
    case 3:
        echo "i равно 3";
}
?>

Специальный вид конструкции case - default. Сюда управление попадает тогда, когда не сработал ни один из других операторов case. Например:

<?php
switch ($i) {
    case 0:
        echo "i равно 0";
        break;
    case 1:
        echo "i равно 1";
        break;
    case 2:
        echo "i равно 2";
        break;
    default:
       echo "i не равно 0, 1 или 2";
}
?>

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

<?php
switch ($i):
    case 0:
        echo "i равно 0";
        break;
    case 1:
        echo "i равно 1";
        break;
    case 2:
        echo "i равно 2";
        break;
    default:
        echo "i не равно to 0, 1 или 2";
endswitch;
?>

Возможно использование точки с запятой вместо двоеточия после оператора case. К примеру :

<?php
switch($beer)
{
    case 'tuborg';
    case 'carlsberg';
    case 'heineken';
        echo 'Хороший выбор';
    break;
    default;
        echo 'Пожалуйста, сделайте новый выбор...';
    break;
}
?>


declare

(PHP 4, PHP 5, PHP 7)

Конструкция declare используется для установки директив исполнения для блока кода. Синтаксис declare аналогичен с синтаксисом других конструкций управления выполнением:

declare (directive)
    statement

Секция directive позволяет установить поведение блока declare. В настоящее время распознаются только три директивы: директива ticks (Дополнительная информация о директиве ticks доступна ниже), директива encoding (Дополнительная информация о директиве encoding доступна ниже) и директива strict_types (подробности в разделе про strict на странице аргументов функции)

Версия | Описание
7.0.0 | Добавлена директива strict_types
7.0.0 | Директива ticks больше не проникает в разные блоки компиляции.
5.3.0 | Добавлена директива encoding

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

<?php
// Правильно:
declare(ticks=1);

// Недопустимо:
const TICK_VALUE = 1;
declare(ticks=TICK_VALUE);
?>

Часть statement блока declare будет выполнена - как выполняется и какие побочные эффекты возникают во время выполнения, может зависеть от директивы, которая установлена в блоке directive.

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

<?php
// это то же самое:

// можно так:
declare(ticks=1) {
    // прочие действия
}

// или так:
declare(ticks=1);
// прочие действия
?>

Тики

Тик - это событие, которое случается каждые N низкоуровневых операций, выполненных парсером внутри блока declare. Значение N задается, используя ticks=N внутри секции directive блока declare.

Не все выражения подсчитываются. Обычно, условные выражения и выражения аргументов не подсчитываются.

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

Пример #1 Пример использования тика

<?php

declare(ticks=1);

// Функция, исполняемая при каждом тике
function tick_handler()
{
    echo "Вызывается tick_handler()\n";
}

register_tick_function('tick_handler');

$a = 1;

if ($a > 0) {
    $a += 2;
    print($a);
}

?>

Пример #2 Пример использования тиков

<?php

function tick_handler()
{
  echo "Вызывается tick_handler()\n";
}

$a = 1;
tick_handler();

if ($a > 0) {
    $a += 2;
    tick_handler();
    print($a);
    tick_handler();
}
tick_handler();

?>

См. также register_tick_function() и unregister_tick_function().

Кодировка

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

Пример #3 Определение кодировки для скрипта.

<?php
declare(encoding='ISO-8859-1');
// прочий код
?>

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

В сочетании с пространством имен единственно допустимый синтаксис для declare является declare(encoding='...'); где ... это значение кодировки. declare(encoding='...') {} приведет к ошибке парсера, если используется вместе с пространством имен.

Значение кодировки в declare игнорируется в PHP 5.3, если php не скомпилирован с --enable-zend-multibyte.

Обратите внимание, что PHP не показывает, был ли он скомпилирован с --enable-zend-multibyte кроме как через phpinfo().

Смотрите также zend.script_encoding.


return

(PHP 4, PHP 5, PHP 7)

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

Если вызывается из функции, выражение return немедленно прекращает выполнение текущей функции и возвращает свой аргумент как значение данной функции. return также завершит выполнение выражения eval() или всего файла скрипта.

Если вызывается из глобальной области видимости, выполнение текущего файла скрипта прекращается. Если текущий файл скрипта был подключен с помощью функций include или require, тогда управление возвращается к файлу, который вызывал текущий. Более того, если текущий файл скрипта был подключен с помощью include, тогда значение переданное return будет возвращено в качестве значения вызова include. Если return вызывается из главного файла скрипта, тогда выполнение скрипта прекращается. Если текущий файл скрипта был вызван конфигурационными опциями auto_prepend_file или auto_append_file из файла настроек php.ini, тогда выполнение этого скрипта прекращается.

Для более детальной информации смотрите раздел Возвращаемые значения.

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

Замечание: Если параметры не указаны, тогда круглые скобки должны быть опущены и будет возвращен NULL. Вызов return со скобками, но без аргументов вызовет синтаксическую ошибку.


require

(PHP 4, PHP 5, PHP 7)

require аналогично include, за исключением того, что при ошибке он также выдаст фатальную ошибку уровня E_COMPILE_ERROR. Другими словами, он остановит выполнение скрипта, тогда как include только выдал бы предупреждение E_WARNING, которое позволило бы скрипту продолжить выполнение.

Смотрите документацию по include, чтобы узнать как он работает.


include

(PHP 4, PHP 5, PHP 7)

Выражение include включает и выполняет указанный файл.

Документация ниже также относится к выражению require.

Файлы включаются исходя из пути указанного файла, или, если путь не указан, используется путь, указанный в директиве include_path. Если файл не найден в include_path, include попытается проверить директорию, в которой находится текущий включающий скрипт и текущую рабочую директорию перед тем, как выдать ошибку. Конструкция include выдаст предупреждение, если не сможет найти файл; поведение отлично от require, который выдаст фатальную ошибку.

Если путь указан — абсолютный (начинающийся с буквы диска или с \ в Windows или с / в Unix/Linux системах) или относительно текущей директории (начинающийся с . или ..) — include_path будет проигнорирован вообще. Например, если имя файла начинается с ../, парсер будет искать в родительской директории запрошенный файл.

Для дополнительной информации о том, как PHP обрабатывает включаемые файлы и включаемые пути, смотрите документацию для директивы include_path.

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

Пример #1 Простой пример include

vars.php
<?php

$color = 'зеленое';
$fruit = 'яблоко';

?>

test.php
<?php

echo "Одно $color $fruit"; // Одно

include 'vars.php';

echo "Одно $color $fruit"; // Одно зеленое яблоко

?>

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

Пример #2 Включение внутри функции

<?php

function foo()
{
    global $color;

    include 'vars.php';

    echo "Одно $color $fruit";
}

/* vars.php в той же области видимости, что и foo(),  *
* поэтому $fruit НЕ будет доступен за пределами этой области     *
* $color доступен, поскольку мы объявили переменную глобальной */

foo();                    // Одно зеленое яблоко
echo "Одно $color $fruit";   // Одно зеленое

?>

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

Если "обертки URL include" включены в PHP, вы можете также указать файл для включения через URL (с помощью HTTP или других поддерживающихся обработчиков - см. Поддерживаемые протоколы и обертки для списка протоколов) вместо локального пути. Если целевой сервер интерпретирует указанный файл как код PHP, переменные могут быть переданы во включаемый файл с помощью строки URL-запроса при использовании HTTP GET. Это совсем не то же самое, что включение файла и наследование родительской области видимости; скрипт выполняется на удаленном сервере, и результат затем включается в локальный скрипт.

Пример #3 Пример include через HTTP

<?php

/* В этом примере предполагается, что www.example.com настроен на обработку .php
* файлов, но не .txt. Также, 'Сработает' обозначает, что переменные
* $foo и $bar доступны внутри включаемого файла. */

// Не сработает; file.txt не обрабатывается www.example.com как PHP
include 'http://www.example.com/file.txt?foo=1&bar=2';

// Не сработает; будет искать файл 'file.php?foo=1&bar=2' в
// локальной файловой системе.
include 'file.php?foo=1&bar=2';

// Сработает.
include 'http://www.example.com/file.php?foo=1&bar=2';

$foo = 1;
$bar = 2;
include 'file.txt';  // Сработает.
include 'file.php';  // Сработает.

?>

Внимание

Предупреждение безопасности

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

Смотрите также раздел Удаленные файлы, функции fopen() и file() для дополнительной информации.

Обработка возвращаемых значений: оператор include возвращает значение FALSE при ошибке и выдает предупреждение. Успешные включения, пока это не переопределено во включаемом файле, возвращают значение 1. Возможно выполнить выражение return внутри включаемого файла, чтобы завершить процесс выполнения в этом файле и вернуться к выполнению включающего файла. Кроме того, возможно вернуть значение из включаемых файлов. Вы можете получить значение включения, как если бы вы вызвали обычную функцию. Хотя это невозможно при включении удаленного файла, только если вывод удаленного файла не содержит корректные теги начала и конца PHP кода (так же, как и локальный файл). Вы можете определить необходимые переменные внутри этих тегов и они будут представлены в зависимости от того, какой файл был выключен.

Так как include - это специальная языковая конструкция, круглые скобки не обязательны вокруг аргумента. Будьте внимательны при сравнении возвращаемого значения.

Пример #4 Сравнение возвращаемого значения при include

<?php
// не сработает, интерпретируется как include(('vars.php') == TRUE), то есть include('')
if (include('vars.php') == TRUE) {
    echo 'OK';
}

// сработает
if ((include 'vars.php') == TRUE) {
    echo 'OK';
}
?>

Пример #5 Выражения include и return

return.php
<?php

$var = 'PHP';

return $var;

?>

noreturn.php
<?php

$var = 'PHP';

?>

testreturns.php
<?php

$foo = include 'return.php';

echo $foo; // выведет 'PHP'

$bar = include 'noreturn.php';

echo $bar; // выведет 1

?>

$bar имеет значение 1, т.к. включение файла произошло успешно. Заметьте разницу между примерами сверху. Первый использует return внутри включаемого файла, тогда как второй не использует. Если файл не может быть включен, возвращается FALSE и возникает E_WARNING.

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

Другой путь "включить" PHP-файл в переменную - это захватить вывод с помощью функций контроля вывода вместе с include. Например:

Пример #6 Использование буферизации вывода для включения файла PHP в строку

<?php
$string = get_include_contents('somefile.php');

function get_include_contents($filename) {
    if (is_file($filename)) {
        ob_start();
        include $filename;
        return ob_get_clean();
    }
    return false;
}

?>

Для того, чтобы включать файлы автоматически в скрипты, обратите внимание на конфигурационные директивы auto_prepend_file и auto_append_file в php.ini.

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

Смотрите также require, require_once, include_once, get_included_files(), readfile(), virtual() и include_path.


require_once

(PHP 4, PHP 5, PHP 7)

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

Смотрите документацию include_once для информации по поведению _once и чем он отличается от таких же функций, без _once.


include_once

(PHP 4, PHP 5, PHP 7)

Выражение include_once включает и выполняет указанный файл во время выполнения скрипта. Его поведение идентично выражению include, с той лишь разницей, что если код из файла уже один раз был включен, он не будет включен и выполнен повторно и вернёт TRUE. Как видно из имени, он включит файл только один раз.

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

Смотрите документацию по include для получения информации о том, как эта функция работает.


goto

(PHP 5 >= 5.3.0, PHP 7)

Что наихудшее может случиться, если используется goto?
Изображение предоставлено » xkcd

Оператор goto используется для перехода в другую часть программы. Место, куда необходимо перейти указывается с помощью метки, за которой ставится двоеточие, после оператора goto указывается желаемая метка для перехода. Оператор не является неограниченным "goto". Целевая метка должна находиться в том же файле, в том же контексте. Имеется в виду, что вы не можете ни перейти за границы функции или метода, ни перейти внутрь одной из них. Вы также не можете перейти внутрь любой циклической структуры или оператора switch. Но вы можете выйти из них, и обычным применением оператора goto является использование его вместо многоуровневых break.

Пример #1 Пример использования goto

<?php
goto a;
echo 'Foo';

a:
echo 'Bar';
?>

Результат выполнения данного примера:

Bar

Пример #2 Пример использования goto в цикле

<?php
for($i=0,$j=50; $i<100; $i++) {
  while($j--) {
    if($j==17) goto end;
  }
}
echo "i = $i";
end:
echo 'j hit 17';
?>

Результат выполнения данного примера:

j hit 17

Пример #3 Это не сработает

<?php
goto loop;
for($i=0,$j=50; $i<100; $i++) {
  while($j--) {
    loop:
  }
}
echo "$i = $i";
?>

Результат выполнения данного примера:

Fatal error: 'goto' into loop or switch statement is disallowed in
script on line 2

Замечание:

Оператор goto доступен с PHP 5.3.


Функции

Содержание

  • Функции, определяемые пользователем
  • Аргументы функции
  • Возврат значений
  • Обращение к функциям через переменные
  • Встроенные функции
  • Анонимные функции


Функции, определяемые пользователем

Приведем пример синтаксиса, используемого для описания функций:

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

<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
    echo "Пример функции.\n";
    return $retval;
}
?>

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

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

Подсказка

Смотрите также Руководство по именованию.

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

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

Пример #2 Функции, зависящие от условий

<?php

$makefoo = true;

/* Мы не можем вызвать функцию foo() в этом месте,
   поскольку она еще не определена, но мы можем
   обратиться к bar() */

bar();

if ($makefoo) {
  function foo()
  {
    echo "Я не существую до тех пор, пока выполнение программы меня не достигнет.\n";
  }
}

/* Теперь мы благополучно можем вызывать foo(),
   поскольку $makefoo была интерпретирована как true */

if ($makefoo) foo();

function bar()
{
  echo "Я существую сразу с начала старта программы.\n";
}

?>

Пример #3 Вложенные функции

<?php
function foo()
{
  function bar()
  {
    echo "Я не существую пока не будет вызвана foo().\n";
  }
}

/* Мы пока не можем обратиться к bar(),
   поскольку она еще не определена. */

foo();

/* Теперь мы можем вызвать функцию bar(),
   обработка foo() сделала ее доступной. */

bar();

?>

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

PHP не поддерживает перегрузку функции, также отсутствует возможность переопределить или удалить объявленную ранее функцию.

Замечание: Имена функций регистронезависимы, тем не менее, более предпочтительно вызывать функции так, как они были объявлены.

Функции PHP поддерживают как списки аргументов переменной длины, так и значения аргументов по умолчанию. Смотрите также описания функций func_num_args(), func_get_arg() и func_get_args() для более детальной информации.

Можно вызывать функции PHP рекурсивно.

Пример #4 Рекурсивные функции

<?php
function recursion($a)
{
    if ($a < 20) {
        echo "$a\n";
        recursion($a + 1);
    }
}
?>

Замечание: Рекурсивный вызов методов/процедур с глубиной более 100-200 уровней рекурсии может вызвать переполнение стека и привести к аварийному завершению скрипта. В частности, бесконечная рекурсия будет считаться программной ошибкой.


Аргументы функции

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

PHP поддерживает передачу аргументов по значению (по умолчанию), передачу аргументов по ссылке, и значения по умолчанию. Списки аргументов переменной длины также поддерживаются, смотрите также описания функций func_num_args(), func_get_arg() и func_get_args() для более детальной информации.

Пример #1 Передача массива в функцию

<?php
function takes_array($input)
{
    echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>

Передача аргументов по ссылке

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

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

Пример #2 Передача аргументов по ссылке

<?php
function add_some_extra(&$string)
{
    $string .= 'и кое-что еще.';
}
$str = 'Это строка, ';
add_some_extra($str);
echo $str;    // выведет 'Это строка, и кое-что еще.'
?>

Значения аргументов по умолчанию

Функция может определять значения по умолчанию в стиле C++ для скалярных аргументов, например:

Пример #3 Использование значений по умолчанию в определении функции

<?php
function makecoffee($type = "капучино")
{
    return "Готовим чашку $type.\n";
}
echo makecoffee();
echo makecoffee(null);
echo makecoffee("эспрессо");
?>

Результат выполнения данного примера:

Готовим чашку капучино.
Готовим чашку .
Готовим чашку эспрессо.

PHP также позволяет использовать массивы (array) и специальный тип NULL в качестве значений по умолчанию, например:

Пример #4 Использование нескалярных типов в качестве значений по умолчанию

<?php
function makecoffee($types = array("капучино"), $coffeeMaker = NULL)
{
    $device = is_null($coffeeMaker) ? "вручную" : $coffeeMaker;
    return "Готовлю чашку ".join(", ", $types)." $device.\n";
}
echo makecoffee();
echo makecoffee(array("капучино", "лавацца"), "в чайнике");
?>

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

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

Пример #5 Некорректное использование значений по умолчанию

<?php
function makeyogurt($type = "ацидофил", $flavour)
{
    return "Готовим чашку из бактерий $type со вкусом $flavour.\n";
}

echo makeyogurt("малины");   // Не будет работать так, как мы могли бы ожидать
?>

Результат выполнения данного примера:

Warning: Missing argument 2 in call to makeyogurt() in
/usr/local/etc/httpd/htdocs/phptest/functest.html on line 41
Готовим чашку из бактерий малины со вкусом .

Теперь сравним его со следующим примером:

Пример #6 Корректное использование значений по умолчанию

<?php
function makeyogurt($flavour, $type = "ацидофил")
{
    return "Готовим чашку из бактерий $type со вкусом $flavour.\n";
}

echo makeyogurt("малины");   // отрабатывает правильно
?>

Результат выполнения данного примера:

Готовим чашку из бактерий ацидофил со вкусом малины.

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

Объявление типов

Замечание:

Объявление типов также известно, как подсказки для типов в PHP 5.

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

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

Допустимые типы

Тип | Описание | Минимальная версия PHP
Имя класса/интерфейса | Аргумент должен быть instanceof, что и имя класса или интерфейса. | PHP 5.0.0
self | Этот параметр должен быть instanceof того же класса, в методе которого он указан. Это можно использовать только в методах класса или экземпляра. | PHP 5.0.0
array | Аргумент должен быть типа array. | PHP 5.1.0
callable | Аргумент должен быть корректным callable-типом. | PHP 5.4.0
bool | Аргумент должен быть типа boolean. | PHP 7.0.0
float | Аргумент должен быть типа float. | PHP 7.0.0
int | Аргумент должен быть типа integer. | PHP 7.0.0
string | Аргумент должен иметь тип string. | PHP 7.0.0
iterable | Параметр должен быть либо массивом, либо экземпляром класса, реализующего Traversable. | PHP 7.1.0
object | Параметр должен быть объектом (object). | PHP 7.2.0
Внимание

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

<?php
 function test(boolean $param) {}
 test(true);
 ?>

Результат выполнения данного примера:

 Fatal error: Uncaught TypeError: Argument 1 passed to test() must be an instance of boolean, boolean given, called in - on line 1 and defined in -:1

Примеры

Пример #7 Объявление типа базового класса

<?php
class C {}
class D extends C {}

// Это не является расширением класса C.
class E {}

function f(C $c) {
    echo get_class($c)."\n";
}

f(new C);
f(new D);
f(new E);
?>

Результат выполнения данного примера:

C
D

Fatal error: Uncaught TypeError: Argument 1 passed to f() must be an instance of C, instance of E given, called in - on line 14 and defined in -:8
Stack trace:
#0 -(14): f(Object(E))
#1 {main}
  thrown in - on line 8

Пример #8 Объявление типа базового интерфейса

<?php
interface I { public function f(); }
class C implements I { public function f() {} }

// Это не реализует интерфейс I.
class E {}

function f(I $i) {
    echo get_class($i)."\n";
}

f(new C);
f(new E);
?>

Результат выполнения данного примера:

C

Fatal error: Uncaught TypeError: Argument 1 passed to f() must implement interface I, instance of E given, called in - on line 13 and defined in -:8
Stack trace:
#0 -(13): f(Object(E))
#1 {main}
  thrown in - on line 8

Пример #9 Типизированные параметры, передаваемые по ссылке

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

<?php
function array_baz(array &$param)
{
    $param = 1;
}
$var = [];
array_baz($var);
var_dump($var);
array_baz($var);
?>

Результатом выполнения данного примера будет что-то подобное:

     int(1)

     Fatal error: Uncaught TypeError: Argument 1 passed to array_baz() must be of the type array, int given, called in %s on line %d

Пример #10 Обнуляемое объявление типа

<?php
class C {}

function f(C $c = null) {
    var_dump($c);
}

f(new C);
f(null);
?>

Результат выполнения данного примера:

object(C)#1 (0) {
}
NULL

Строгая типизация

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

Для отдельных файлов можно включать режим строгой типизации. В этом режиме в функцию можно передавать значения только тех типов, которые объявлены для аргументов. В противном случае будет выбрасываться исключение TypeError. Есть лишь одно исключение - целое число (integer) можно передать в функцию, которая ожидает значение типа float. Вызовы функций внутри встроенных функций не будут затронуты директивой strict_types.

Для включения режима строгой типизации используется выражение declare в объявлении strict_types:

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

Включение режима строгой типизации также повлияет на объявления типов возвращаемых значений.

Замечание:

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

Замечание:

Строгая типизация применима только к скалярным типам и работает только в PHP 7.0.0 и выше. Равно как и сами объявления скалярных типов добавлены в этой версии.

Пример #11 Строгая типизация

<?php
declare(strict_types=1);

function sum(int $a, int $b) {
    return $a + $b;
}

var_dump(sum(1, 2));
var_dump(sum(1.5, 2.5));
?>

Результат выполнения данного примера:

int(3)

Fatal error: Uncaught TypeError: Argument 1 passed to sum() must be of the type integer, float given, called in - on line 9 and defined in -:4
Stack trace:
#0 -(9): sum(1.5, 2.5)
#1 {main}
  thrown in - on line 4

Пример #12 Слабая типизация

<?php
function sum(int $a, int $b) {
    return $a + $b;
}

var_dump(sum(1, 2));

// Будут приведены к целым числам: обратите внимание на результат ниже!
var_dump(sum(1.5, 2.5));
?>

Результат выполнения данного примера:

int(3)
int(3)

Пример #13 Обработка исключения TypeError

<?php
declare(strict_types=1);

function sum(int $a, int $b) {
    return $a + $b;
}

try {
    var_dump(sum(1, 2));
    var_dump(sum(1.5, 2.5));
} catch (TypeError $e) {
    echo 'Ошибка: '.$e->getMessage();
}
?>

Результат выполнения данного примера:

int(3)
Ошибка: Argument 1 passed to sum() must be of the type integer, float given, called in - on line 10

Списки аргументов переменной длины

PHP поддерживает списки аргументов переменной длины для функций, определяемых пользователем. Для версий PHP 5.6 и выше это делается добавлением многоточия (...). Для версий 5.5 и старше используются функции func_num_args(), func_get_arg() и func_get_args().

... в PHP 5.6+

В версиях PHP 5.6 и выше список аргументов может содержать многоточие ..., чтобы показать, что функция принимает переменное количество аргументов. Аргументы в этом случае будут переданы в виде массива. Например:

Пример #14 Использование ... для доступа к аргументам

<?php
function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4);
?>

Результат выполнения данного примера:

10

Многоточие (...) можно использовать при вызове функции, чтобы распаковать массив (array) или Traversable переменную в список аргументов:

Пример #15 Использование ... для передачи аргументов

<?php
function add($a, $b) {
    return $a + $b;
}

echo add(...[1, 2])."\n";

$a = [1, 2];
echo add(...$a);
?>

Результат выполнения данного примера:

3
3

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

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

Пример #16 Аргументы с подсказкой типов

<?php
function total_intervals($unit, DateInterval ...$intervals) {
    $time = 0;
    foreach ($intervals as $interval) {
        $time += $interval->$unit;
    }
    return $time;
}

$a = new DateInterval('P1D');
$b = new DateInterval('P2D');
echo total_intervals('d', $a, $b).' days';

// Это не сработает, т.к. null не является объектом DateInterval.
echo total_intervals('d', null);
?>

Результат выполнения данного примера:

3 days
Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 2

В конце концов, можно передавать аргументы по ссылке. Для этого перед ... нужно поставить амперсанд (&).

Предыдущие версии PHP

Для указания того, что функция принимает переменное число аргументов, никакой специальный синтаксис не используется. Для доступа к аргументам необходимо использовать функции func_num_args(), func_get_arg() и func_get_args().

В первом примере выше было показано, как задать список аргументов переменной длины для версий PHP 5.5 и более ранних:

Пример #17 Доступ к аргументам в PHP 5.5 и ранних версий

<?php
function sum() {
    $acc = 0;
    foreach (func_get_args() as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4);
?>

Результат выполнения данного примера:

10


Возврат значений

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

Замечание:

Если конструкция return не указана, то функция вернет значение NULL.

Использование выражения return

Пример #1 Использование конструкции return

<?php
function square($num)
{
    return $num * $num;
}
echo square(4);   // выводит '16'.
?>

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

Пример #2 Возврат нескольких значений в виде массива

<?php
function small_numbers()
{
    return array (0, 1, 2);
}
list ($zero, $one, $two) = small_numbers();
?>

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

Пример #3 Возврат результата по ссылке

<?php
function &returns_reference()
{
    return $someref;
}

$newref =& returns_reference();
?>

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

Объявление типов возвращаемых значений

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

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

Начиная с PHP 7.1.0 возвращаемые значения могут быть помечены как обнуляемые, путём добавления префикса в виде вопросительного знака (?) к названию типу. Это означает, что функция возвращает либо значение указанного типа, либо значение NULL.

Замечание:

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

Примеры

Пример #4 Обычное объявление типа возвращаемого значения

<?php
function sum($a, $b): float {
    return $a + $b;
}

// Будет возвращаться значение типа float.
var_dump(sum(1, 2));
?>

Результат выполнения данного примера:

float(3)

Пример #5 То же в режиме строгой типизации

<?php
declare(strict_types=1);

function sum($a, $b): int {
    return $a + $b;
}

var_dump(sum(1, 2));
var_dump(sum(1, 2.5));
?>

Результат выполнения данного примера:

int(3)

Fatal error: Uncaught TypeError: Return value of sum() must be of the type integer, float returned in - on line 5 in -:5
Stack trace:
#0 -(9): sum(1, 2.5)
#1 {main}
  thrown in - on line 5

Пример #6 Возврат объектов

<?php
class C {}

function getC(): C {
    return new C;
}

var_dump(getC());
?>

Результат выполнения данного примера:

object(C)#1 (0) {
}

Пример #7 Объявление обнуляемого типа (начиная с PHP 7.1.0)

<?php
function get_item(): ?string {
    if (isset($_GET['item'])) {
        return $_GET['item'];
    } else {
        return null;
    }
}
?>


Обращение к функциям через переменные

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

Переменные функции не будут работать с такими языковыми конструкциями как echo, print, unset(), isset(), empty(), include, require и т.п. Вам необходимо реализовать свою функцию-обертку для того, чтобы приведенные выше конструкции могли работать с переменными функциями.

Пример #1 Работа с функциями посредством переменных

<?php
function foo() {
    echo "В foo()<br />\n";
}

function bar($arg = '')
{
    echo "В bar(); аргумент был '$arg'.<br />\n";
}

// Функция-обертка для echo
function echoit($string)
{
    echo $string;
}

$func = 'foo';
$func();        // Вызывает функцию foo()

$func = 'bar';
$func('test');  // Вызывает функцию bar()

$func = 'echoit';
$func('test');  // Вызывает функцию echoit()
?>

Вы также можете вызвать методы объекта используя возможности PHP для работы с переменными функциями.

Пример #2 Обращение к методам класса посредством переменных

<?php
class Foo
{
    function Variable()
    {
        $name = 'Bar';
        $this->$name(); // Вызываем метод Bar()
    }

    function Bar()
    {
        echo "Это Bar";
    }
}

$foo = new Foo();
$funcname = "Variable";
$foo->$funcname();  // Обращаемся к $foo->Variable()

?>

При вызове статических методов вызов функции "сильнее", чем оператор доступа к статическому свойству:

Пример #3 Пример вызова переменного метода со статическим свойством

<?php
class Foo
{
    static $variable = 'статическое свойство';
    static function Variable()
    {
        echo 'Вызов метода Variable';
    }
}

echo Foo::$variable; // Это выведет 'статическое свойство'. Переменная $variable будет разрешена в нужной области видимости.
$variable = "Variable";
Foo::$variable();  // Это вызовет $foo->Variable(), прочитав $variable из этой области видимости.

?>

С версии PHP 5.4.0, можно вызывать callable-функцию, помещенную в переменную.

Пример #4 Сallable-фукнции

<?php
class Foo
{
    static function bar()
    {
        echo "bar\n";
    }
    function baz()
    {
        echo "baz\n";
    }
}

$func = array("Foo", "bar");
$func(); // выведет "bar"
$func = array(new Foo, "baz");
$func(); // выведет "baz"
$func = "Foo::bar";
$func(); // выведет "bar" в PHP 7.0.0 и выше; в предыдущих версиях это приведет к фатальной ошибке
?>

Смотрите также is_callable(), call_user_func(), Переменные переменные и function_exists().

Список изменений

Версия | Описание
7.0.0 | 'ClassName::methodName' доступна как функция-переменная.
5.4.0 | Массивы, являющиеся корректными callable-методами, доступны как функции-переменные.


Встроенные функции

В самом PHP содержится достаточно большое количество встроенных функций и языковых конструкций. Также есть функции, которые требуют, чтобы PHP был собран с определенными расширениями, в противном случае будут генерироваться фатальные ошибки, вызванные использованием неизвестной функции. Например, для того чтобы использовать функции для работы с изображениями, например, imagecreatetruecolor(), необходимо собрать PHP с поддержкой GD. Или же для того, чтобы воспользоваться функцией mysqli_connect(), необходима поддержка модуля MySQLi. Тем не менее, есть много встроенных функций, которые доступны всегда: например, функции обработки строк и функции для работы с переменными. Вызвав phpinfo() или get_loaded_extensions(), можно узнать, поддержка каких модулей есть в используемом PHP. Также следует учесть, что поддержка некоторых дополнительных расширений включена по умолчанию, и что сама документация к PHP разбита по расширениям. Ознакомьтесь с разделами Конфигурация, Установка, а также с документацией непосредственно к дополнительным расширениям для получения более детальной информации о том, как настроить PHP.

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

Замечание: Если в функцию передаются не те аргументы, которые она ожидает, например, массив (array) вместо строки (string), возвращаемое значение функции не определено. Скорее всего в этом случае будет возвращен NULL, но это просто соглашение, на него нельзя полагаться.

Ознакомьтесь также с описанием функции function_exists(), справочником функций и функциями get_extension_funcs() и dl().


Анонимные функции

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

Анонимные функции реализуются с использованием класса Closure.

Пример #1 Пример анонимной функции

<?php
echo preg_replace_callback('~-([a-z])~', function ($match) {
    return strtoupper($match[1]);
}, 'hello-world');
// выведет helloWorld
?>

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

Пример #2 Пример присвоения анонимной функции переменной

<?php
$greet = function($name)
{
    printf("Привет, %s\r\n", $name);
};

$greet('Мир');
$greet('PHP');
?>

Замыкания могут также наследовать переменные из родительской области видимости. Любая подобная переменная должна быть объявлена в конструкции use. Начиная с PHP 7.1, эти переменные не должны включать superglobals, $this и переменные с теми же именами, что и параметры функции.

Пример #3 Наследование переменных из родительской области видимости

<?php
$message = 'привет';

// Без "use"
$example = function () {
    var_dump($message);
};
$example();

// Наследуем $message
$example = function () use ($message) {
    var_dump($message);
};
$example();

// Значение унаследованной переменной задано там, где функция определена,
// но не там, где вызвана
$message = 'мир';
$example();

// Сбросим message
$message = 'привет';

// Наследование по ссылке
$example = function () use (&$message) {
    var_dump($message);
};
$example();

// Измененное в родительской области видимости значение
// остается тем же внутри вызова функции
$message = 'мир';
echo $example();

// Замыкания могут принимать обычные аргументы
$example = function ($arg) use ($message) {
    var_dump($arg . ', ' . $message);
};
$example("привет");
?>

Результатом выполнения данного примера будет что-то подобное:

Notice: Undefined variable: message in /example.php on line 6
NULL
string(5) "привет"
string(5) "привет"
string(5) "привет"
string(5) "мир"
string(11) "привет мир"

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

Пример #4 Замыкания и область видимости

<?php
// Базовая корзина покупок, содержащая список добавленных
// продуктов и количество каждого продукта. Включает метод,
// вычисляющий общую цену элементов корзины с помощью
// callback-замыкания.
class Cart
{
    const PRICE_BUTTER  = 1.00;
    const PRICE_MILK    = 3.00;
    const PRICE_EGGS    = 6.95;

    protected $products = array();

    public function add($product, $quantity)
    {
        $this->products[$product] = $quantity;
    }

    public function getQuantity($product)
    {
        return isset($this->products[$product]) ? $this->products[$product] :
               FALSE;
    }

    public function getTotal($tax)
    {
        $total = 0.00;

        $callback =
            function ($quantity, $product) use ($tax, &$total)
            {
                $pricePerItem = constant(__CLASS__ . "::PRICE_" .
                    strtoupper($product));
                $total += ($pricePerItem * $quantity) * ($tax + 1.0);
            };

        array_walk($this->products, $callback);
        return round($total, 2);
    }
}

$my_cart = new Cart;

// Добавляем несколько элементов в корзину
$my_cart->add('butter', 1);
$my_cart->add('milk', 3);
$my_cart->add('eggs', 6);

// Выводим общую сумму с 5% налогом на продажу.
print $my_cart->getTotal(0.05) . "\n";
// Результатом будет 54.29
?>

Пример #5 Автоматическое связывание $this

<?php

class Test
{
    public function testing()
    {
        return function() {
            var_dump($this);
        };
    }
}

$object = new Test;
$function = $object->testing();
$function();

?>

Результат выполнения данного примера:

object(Test)#1 (0) {
}

Результат выполнения данного примера в PHP 5.3:

Notice: Undefined variable: this in script.php on line 8
NULL

Начиная с PHP 5.4.0, при объявлении в контексте класса, текущий класс будет автоматически связан с ним, делая $this доступным внутри функций класса. Если вы не хотите автоматического связывания с текущим классом, используйте статические анонимные функции.

Статические анонимные функции

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

Пример #6 Попытка использовать $this в статической анонимной функции

<?php

class Foo
{
    function __construct()
    {
        $func = static function() {
            var_dump($this);
        };
        $func();
    }
};
new Foo();

?>

Результат выполнения данного примера:

Notice: Undefined variable: this in %s on line %d
NULL

Пример #7 Попытка связать объект со статической анонимной функцией

<?php

$func = static function() {
    // тело функции
};
$func = $func->bindTo(new StdClass);
$func();

?>

Результат выполнения данного примера:

Warning: Cannot bind an instance to a static closure in %s on line %d

Список изменений

Версия | Описание
7.1.0 | Анонимные функции не могут замыкаться вокруг superglobals, $this или любой переменной с тем же именем, что и параметр.
5.4.0 | Стало возможным использовать $this, а также объявлять статически.
5.3.0 | Появление анонимных функций.

Примечания

Замечание: Совместно с замыканиями можно использовать функции func_num_args(), func_get_arg() и func_get_args().


Классы и объекты

Содержание

  • Введение
  • Основы
  • Свойства
  • Константы классов
  • Автоматическая загрузка классов
  • Конструкторы и деструкторы
  • Область видимости
  • Наследование
  • Оператор разрешения области видимости (::)
  • Ключевое слово static
  • Абстрактные классы
  • Интерфейсы объектов
  • Трейты
  • Анонимные классы
  • Перегрузка
  • Итераторы объектов
  • Магические методы
  • Ключевое слово final
  • Клонирование объектов
  • Сравнение объектов
  • Контроль типа
  • Позднее статическое связывание
  • Объекты и ссылки
  • Сериализация объектов
  • Ковариантность и Контравариантность
  • Журнал изменений ООП


Введение

Начиная с версии PHP 5, PHP включает полноценную объектную модель. Некоторые из ее особенностей: видимость, абстрактные и ненаследуемые (final) классы и методы, а также магические методы, интерфейсы, клонирование и контроль типов (typehinting).

PHP работает с объектами так же, как с ссылками или дескрипторами, это означает что каждая переменная содержит ссылку на объект, а не его копию. Более подробную информацию см. в разделе Объекты и ссылки.

Подсказка

Смотрите также Руководство по именованию.


Основы

class

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

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

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

Пример #1 Простое определение класса

<?php
class SimpleClass
{
    // объявление свойства
    public $var = 'значение по умолчанию';

    // объявление метода
    public function displayVar() {
        echo $this->var;
    }
}
?>

Псевдопеременная $this доступна в том случае, если метод был вызван в контексте объекта. $this является ссылкой на вызываемый объект. Обычно это тот объект, которому принадлежит вызванный метод, но может быть и другой объект, если метод был вызван статически из контекста другого объекта. Начиная с PHP 7.0.0, вызов нестатического метода статическим способом из неподходящего контекста приведет к тому, что $this будет неопределен внутри метода. Вызов нестатического метода статическим способом из неподходящего контекста было объявлено устаревшим в PHP 5.6.0. Начиная с PHP 7.0.0, подобный вызов объявлен совсем устаревшим (если только вызов не произошел из подходящего контекста). До PHP 5.6.0, подобные вызовы уже сопровождались строгим уведомлением.

Пример #2 Несколько примеров с псевдопеременной $this

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

<?php
class A
{
    function foo()
    {
        if (isset($this)) {
            echo '$this определена (';
            echo get_class($this);
            echo ")\n";
        } else {
            echo "\$this не определена.\n";
        }
    }
}

class B
{
    function bar()
    {
        A::foo();
    }
}

$a = new A();
$a->foo();

A::foo();

$b = new B();
$b->bar();

B::bar();
?>

Результат выполнения данного примера в PHP 5:

$this определена (A)
$this не определена.
$this определена (B)
$this не определена.

Результат выполнения данного примера в PHP 7:

$this определена (A)
$this не определена.
$this не определена.
$this не определена.

new

Для создания экземпляра класса используется директива new. Новый объект всегда будет создан, за исключением случаев, когда он содержит конструктор, в котором определен вызов исключения в случае ошибки. Рекомендуется определять классы до создания их экземпляров (в некоторых случаях это обязательно).

Если с директивой new используется строка (string), содержащая имя класса, то будет создан новый экземпляр этого класса. Если имя находится в пространстве имен, то оно должно быть задано полностью.

Замечание:

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

Пример #3 Создание экземпляра класса

<?php
$instance = new SimpleClass();

// Это же можно сделать с помощью переменной:
$className = 'SimpleClass';
$instance = new $className(); // new SimpleClass()
?>

В контексте класса можно создать новый объект через new self и new parent.

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

Пример #4 Присваивание объекта

<?php

$instance = new SimpleClass();

$assigned   =  $instance;
$reference  =& $instance;

$instance->var = '$assigned будет иметь это значение';

$instance = null; // $instance и $reference становятся null

var_dump($instance);
var_dump($reference);
var_dump($assigned);
?>

Результат выполнения данного примера:

NULL
NULL
object(SimpleClass)#1 (1) {
   ["var"]=>
     string(30) "$assigned будет иметь это значение"
}

В PHP 5.3.0 введены несколько новых методов создания экземпляров объекта:

Пример #5 Создание новых объектов

<?php
class Test
{
    static public function getNew()
    {
        return new static;
    }
}

class Child extends Test
{}

$obj1 = new Test();
$obj2 = new $obj1;
var_dump($obj1 !== $obj2);

$obj3 = Test::getNew();
var_dump($obj3 instanceof Test);

$obj4 = Child::getNew();
var_dump($obj4 instanceof Child);
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)

В PHP 5.4.0 введена возможность обратиться к свойству или методу только что созданного объекта в одном выражении:

Пример #6 Доступ к свойствам/методам только что созданного объекта

<?php
echo (new DateTime())->format('Y');
?>

Результатом выполнения данного примера будет что-то подобное:

2016

Свойства и методы

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

Пример #7 Доступ к свойству vs. вызов метода

<?php
class Foo
{
    public $bar = 'свойство';

    public function bar() {
        return 'метод';
    }
}

$obj = new Foo();
echo $obj->bar, PHP_EOL, $obj->bar(), PHP_EOL;

Результат выполнения данного примера:

свойство
метод

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

Пример #8 Вызов анонимной функции, содержащейся в свойстве

<?php
class Foo
{
    public $bar;

    public function __construct() {
        $this->bar = function() {
            return 42;
        };
    }
}

$obj = new Foo();

// Начиная с PHP 5.3.0:
$func = $obj->bar;
echo $func(), PHP_EOL;

// Или так, начиная с PHP 7.0.0:
echo ($obj->bar)(), PHP_EOL;

Результат выполнения данного примера:

42

extends

Класс может наследовать методы и свойства другого класса используя ключевое слово extends в его объявлении. Невозможно наследовать несколько классов, один класс может наследовать только один базовый класс.

Наследуемые методы и свойства могут быть переопределены (за исключением случаев, когда метод класса объявлен как final) путем объявления их с теми же именами, как и в родительском классе. Существует возможность доступа к переопределенным методам или статическим свойствам путем обращения к ним через parent::

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

Пример #9 Простое наследование классов

<?php
class ExtendClass extends SimpleClass
{
    // Переопределение метода родителя
    function displayVar()
    {
        echo "Расширенный класс\n";
        parent::displayVar();
    }
}

$extended = new ExtendClass();
$extended->displayVar();
?>

Результат выполнения данного примера:

Расширенный класс
значение по умолчанию

::class

Начиная с PHP 5.5 можно использовать ключевое слово class для разрешения имени класса. С помощью конструкции ClassName::class можно получить строку с абсолютным именем класса ClassName. Обычно это довольно полезно при работе с классами, использующими пространства имен.

Пример #10 Разрешение имени класса

<?php
namespace NS {
    class ClassName {
    }

    echo ClassName::class;
}
?>

Результат выполнения данного примера:

NS\ClassName

Замечание:

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


Свойства

Переменные, которые являются членами класса, называются "свойства". Также их называют, используя другие термины, такие как "атрибуты" или "поля", но в рамках этой документации, мы будем называть их свойствами. Они определяются с помощью ключевых слов public, protected или private, могут сопровождаться необязательным объявлением типа и следуют правилам правильного объявления переменных. Это объявление может содержать инициализацию, но эта инициализация должна быть постоянным значением, то есть значение должно быть вычислено во время компиляции и не должны зависеть от информации, полученной во время выполнения для их вычисления.

Смотрите Область видимости для получения информации о применении public, protected, и private.

Замечание:

Для того, чтобы поддерживать обратную совместимость с PHP 4, PHP 5 по-прежнему позволяет использовать ключевое слово var при определении свойств вместо (или в дополнении к) public, protected, или private. Однако var больше не требуется. В версиях PHP с 5.0 по 5.1.3 использование var считалось устаревшим и выдавало предупреждение E_STRICT, но с PHP 5.1.3 больше не считается устаревшим и не выдает предупреждения.

Если вы объявляете свойство с помощью var вместо public, protected или private, тогда PHP 5 будет рассматривать свойство так, как если оно было объявлено как public.

В пределах методов класса доступ к нестатическим свойствам может быть получен с помощью -> (объектного оператора): $this->property (где property - имя свойства). Доступ к статическим свойствам осуществляется с помощью :: (двойного двоеточия): self::$property. Дополнительную информацию о различии статических и нестатических свойств смотрите в разделе "Ключевое слово Static".

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

Пример #1 Определение свойств

<?php
class SimpleClass
{
   // правильное определение свойства с PHP 5.6.0:
   public $var1 = 'hello ' . 'world';
   // правильное определение свойства с PHP 5.3.0:
   public $var2 = <<<EOD
hello world
EOD;
   // правильное определение свойства с PHP 5.6.0:
   public $var3 = 1+2;
   // неправильное определение свойств:
   public $var4 = self::myStaticMethod();
   public $var5 = $myVar;

   // правильное определение свойств:
   public $var6 = myConstant;
   public $var7 = array(true, false);

   // правильное определение свойства с PHP 5.3.0:
   public $var8 = <<<'EOD'
hello world
EOD;
}
?>

Замечание:

Существуют несколько интересных функций для обработки классов и объектов. Вы можете их увидеть тут Функции для классов/объектов.

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

Пример #2 Пример использования nowdoc для инициализации свойств

<?php
class foo {
   // С PHP 5.3.0
   public $bar = <<<'EOT'
bar
EOT;
   public $baz = <<<EOT
baz
EOT;
}
?>

Замечание:

Поддержка Nowdoc и Heredoc была добавлена в PHP 5.3.0.

Начиная с PHP 7.4.0, определения свойств могут включать объявление типа, за исключением типа callable

Пример #3 Пример использования типизированных свойств

<?php

class User
{
    public int $id;
    public string $name;

    public function __construct(int $id, string $name)
    {
        $this->id = $id;
        $this->name = $name;
    }
}

$user = new User(1234, "php");
echo "ID: " . $user->id;
echo "\n";
echo "Имя: " . $user->name;

?>

Результат выполнения данного примера:

ID: 1234
Имя: php


Константы классов

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

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

Интерфейсы также могут содержать константы (constants). За примерами обращайтесь к разделу об интерфейсах.

Начиная с PHP 5.3.0, стало возможным обратиться к классу с помощью переменной. Значение переменной не может быть ключевым словом (например, self, parent и static).

Обратите внимание, что константы класса задаются один раз для всего класса, а не отдельно для каждого созданного объекта этого класса.

Пример #1 Объявление и использование константы

<?php
class MyClass
{
    const CONSTANT = 'значение константы';

    function showConstant() {
        echo  self::CONSTANT . "\n";
    }
}

echo MyClass::CONSTANT . "\n";

$classname = "MyClass";
echo $classname::CONSTANT . "\n"; // начиная с PHP 5.3.0

$class = new MyClass();
$class->showConstant();

echo $class::CONSTANT."\n"; // начиная с PHP 5.3.0
?>

Пример #2 Пример со статичными данными

<?php
class foo {
    // Начиная с PHP 5.3.0
    const BAR = <<<'EOT'
bar
EOT;
    // Начиная с PHP 5.3.0
    const BAZ = <<<EOT
baz
EOT;
}
?>

Замечание:

Поддержка синтаксиса Heredoc и Nowdoc при инициализации констант была добавлена в версии PHP 5.3.0.

Начиная с PHP 5.5.0 доступна специальная константа ::class, которой на этапе компиляции присваивается полное имя класса. Полезна при использовании с классами, использующие пространства имен.

Пример #3 Пример использования ::class с пространством имен

<?php
namespace foo {
    class bar {
    }

    echo bar::class; // foo\bar
}
?>

Пример #4 Пример констант, заданных выражением

<?php
const ONE = 1;

class foo {
    // Начиная с PHP 5.6.0
    const TWO = ONE * 2;
    const THREE = ONE + self::TWO;
    const SENTENCE = 'Значение константы THREE - ' . self::THREE;
}
?>

Для задания констант класса возможно использовать скалярные выражения с цифрами, строками и/или другими константами.

Замечание:

Поддержка константных выражений была добавлена в PHP 5.6.0.

Пример #5 Модификаторы видимости констант класса

<?php
class Foo {
    // Начиная с PHP 7.1.0
    public const BAR = 'bar';
    private const BAZ = 'baz';
}
echo Foo::BAR, PHP_EOL;
echo Foo::BAZ, PHP_EOL;
?>

Результат выполнения данного примера в PHP 7.1:

bar

Fatal error: Uncaught Error: Cannot access private const Foo::BAZ in ...

Замечание:

Начиная с PHP 7.1.0 для констант класса можно использовать модификаторы области видимости.


Автоматическая загрузка классов

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

В PHP 5 это делать необязательно. Функция spl_autoload_register() позволяет зарегистрировать необходимое количество автозагрузчиков для автоматической загрузки классов и интерфейсов, если они в настоящее время не определены. Регистрируя автозагрузчики, PHP получает последний шанс для интерпретатора загрузить класс прежде, чем он закончит выполнение скрипта с ошибкой.

Подсказка

В то время как функция __autoload() также может быть использована для автоматической загрузки классов и интерфейсов, следует отдать предпочтение spl_autoload_register(), потому, что она предоставляет гораздо более гибкую альтернативу, позволяя регистрировать необходимое количество автозагрузчиков, например, для сторонних библиотек. По этой причине использование __autoload() не рекомендуется, а c PHP 7.2.0 объявлено устаревшим.

Замечание:

До версии PHP 5.3 исключения, выброшенные в функции __autoload(), не могли быть пойманы в блоке catch и приводили к фатальной ошибке. Начиная с версии 5.3 стало возможным их перехватывать, но при условии, если класс исключения будет доступен. Функция __autoload() также может использоваться рекурсивно для автоматической загрузки пользовательских классов исключений.

Замечание:

Автоматическая загрузка недоступна при использовании PHP в интерактивном режиме командной строки.

Замечание:

Если имя класса используется, например, для вызова через call_user_func(), то оно может содержать некоторые опасные символы, такие как ../. Поэтому рекомендуется не использовать данные от пользователей в таких функциях или же, по крайней мере, проверять значения в __autoload().

Пример #1 Пример автоматической загрузки

В этом примере функция пытается загрузить классы MyClass1 и MyClass2 из файлов MyClass1.php и MyClass2.php соответственно.

<?php
spl_autoload_register(function ($class_name) {
    include $class_name . '.php';
});

$obj  = new MyClass1();
$obj2 = new MyClass2();
?>

Пример #2 Еще один пример автоматической загрузки

В этом примере представлена попытка загрузки интерфейса ITest.

<?php

spl_autoload_register(function ($name) {
    var_dump($name);
});

class Foo implements ITest {
}

/*
string(5) "ITest"

Fatal error: Interface 'ITest' not found in ...
*/
?>

Пример #3 Автоматическая загрузка с перехватом исключения с версии 5.3.0+

В данном примере вызывается исключение и отлавливается блоком try/catch.

<?php
spl_autoload_register(function ($name) {
    echo "Хочу загрузить $name.\n";
    throw new Exception("Невозможно загрузить $name.");
});

try {
    $obj = new NonLoadableClass();
} catch (Exception $e) {
    echo $e->getMessage(), "\n";
}
?>

Результат выполнения данного примера:

Хочу загрузить NonLoadableClass.
Невозможно загрузить NonLoadableClass.

Пример #4 Автоматическая загрузка с перехватом исключения в версиях 5.3.0+ - Класс пользовательского исключения отсутствует

В данном примере вызывается незагруженное пользовательское исключение.

<?php
spl_autoload_register(function ($name) {
    echo "Хочу загрузить $name.\n";
    throw new MissingException("Невозможно загрузить $name.");
});

try {
    $obj = new NonLoadableClass();
} catch (Exception $e) {
    echo $e->getMessage(), "\n";
}
?>

Результат выполнения данного примера:

Хочу загрузить NonLoadableClass.
Хочу загрузить MissingException.

Fatal error: Class 'MissingException' not found in testMissingException.php on line 4

Смотрите также

  • unserialize()
  • unserialize_callback_func
  • spl_autoload_register()
  • spl_autoload()
  • __autoload()


Конструкторы и деструкторы

Конструктор

__construct ([ mixed $args [, $... ]] ) : void

PHP 5 позволяет объявлять методы-конструкторы. Классы, в которых объявлен метод-конструктор, будут вызывать этот метод при каждом создании нового объекта, так что это может оказаться полезным, например, для инициализации какого-либо состояния объекта перед его использованием.

Замечание: Конструкторы, определенные в классах-родителях не вызываются автоматически, если дочерний класс определяет собственный конструктор. Чтобы вызвать конструктор, объявленный в родительском классе, требуется вызвать parent::__construct() внутри конструктора дочернего класса. Если в дочернем классе не определен конструктор, то он может быть унаследован от родительского класса как обычный метод (если он не был определен как приватный).

Пример #1 Использование унифицированных конструкторов

<?php
class BaseClass {
   function __construct() {
       print "Конструктор класса BaseClass\n";
   }
}

class SubClass extends BaseClass {
   function __construct() {
       parent::__construct();
       print "Конструктор класса SubClass\n";
   }
}

class OtherSubClass extends BaseClass {
    // наследует конструктор BaseClass
}

// Конструктор класса BaseClass
$obj = new BaseClass();

// Конструктор класса BaseClass
// Конструктор класса SubClass
$obj = new SubClass();

// Конструктор класса BaseClass
$obj = new OtherSubClass();
?>

В целях обратной совместимости, если PHP 5 не может обнаружить объявленный метод __construct(), то вызов конструктора произойдет по устаревшей схеме, через обращение к методу, имя которого соответствует имени класса. Может возникнуть только одна проблема совместимости старого кода, если в нём присутствуют классы с методами __construct(), использующиеся для других целей.

Внимание

Конструкторы старого типа объявлены УСТАРЕВШИМИ в PHP 7.0 и будут удалены в будущих версиях. В новом коде всегда используйте __construct().

В отличие от других методов, PHP не будет генерировать ошибку уровня E_STRICT, если __construct() переопределяется с другими параметрами, отличными от тех, которые были объявлены в родительском методе __construct().

Начиная с PHP 5.3.3, методы с именами, совпадающими с последним элемeнтом имени класса, находящимся в пространстве имен, больше не будут считаться конструкторами. Это изменение не влияет на классы, не находящиеся в пространстве имен.

Пример #2 Конструкторы в классах, находящихся в пространстве имен

<?php
namespace Foo;
class Bar {
    public function Bar() {
        // рассматривается как конструктор в версиях PHP 5.3.0-5.3.2
        // и как обычный метод, начиная с версии PHP 5.3.3
    }
}
?>

Деструкторы

__destruct ( void ) : void

PHP 5 предоставляет концепцию деструктора, аналогичную с той, которая применяется в других ОО-языках, таких как C++. Деструктор будет вызван при освобождении всех ссылок на определенный объект или при завершении скрипта (порядок выполнения деструкторов не гарантируется).

Пример #3 Пример использования деструктора

<?php
class MyDestructableClass
{
   function __construct() {
       print "Конструктор\n";
   }

   function __destruct() {
       print "Уничтожается " . __CLASS__  . "\n";
   }
}

$obj = new MyDestructableClass();

Как и в случае с конструкторами, деструкторы, объявленные в родительском классе, не будут вызываться автоматически. Для вызова деструктора родительского класса, требуется вызвать parent::__destruct() в теле деструктора дочернего класса. Подобно конструкторам, дочерний класс может унаследовать деструктор из родительского класса, если он не определен в нем.

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

Замечание:

Деструкторы, вызываемые при завершении скрипта, вызываются после отправки HTTP-заголовков. Рабочая директория во время фазы завершения скрипта может отличаться в некоторых SAPI (например, в Apache).

Замечание:

Попытка выбросить исключение из деструктора (вызываемого во время завершения скрипта) вызывает фатальную ошибку.


Область видимости

Область видимости свойства, метода или константы (начиная c PHP 7.1.0) может быть определена путем использования следующих ключевых слов в объявлении: public, protected или private. Доступ к свойствам и методам класса, объявленным как public (общедоступный), разрешен отовсюду. Модификатор protected (защищенный) разрешает доступ самому классу, наследующим его классам и родительским классам. Модификатор private (закрытый) ограничивает область видимости так, что только класс, где объявлен сам элемент, имеет к нему доступ.

Область видимости свойства

Свойства класса должны быть определены через модификаторы public, private или protected. Если же свойство определено с помощью var, то оно будет объявлено общедоступным свойством.

Пример #1 Объявление свойства класса

<?php
/**
 * Определение 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; // Работает
echo $obj->protected; // Неисправимая ошибка
echo $obj->private; // Неисправимая ошибка
$obj->printHello(); // Выводит Public, Protected и Private

/**
 * Определение MyClass2
 */
class MyClass2 extends MyClass
{
    // Мы можем переопределить общедоступные и защищенные свойства, но не закрытые
    public $public = 'Public2';
    protected $protected = 'Protected2';

    function printHello()
    {
        echo $this->public;
        echo $this->protected;
        echo $this->private;
    }
}

$obj2 = new MyClass2();
echo $obj2->public; // Работает
echo $obj2->private; // Неопределен
echo $obj2->protected; // Неисправимая ошибка
$obj2->printHello(); // Выводит Public2, Protected2, Undefined

?>

Замечание: Метод объявления переменной через ключевое слово var, используемый в PHP 4, до сих пор поддерживается в целях совместимости (как синоним ключевого слова public). В версиях PHP 5 ниже 5.1.3 такое использование выводит предупреждение E_STRICT.

Область видимости метода

Методы класса должны быть определены через модификаторы public, private, или protected. Методы, где определение модификатора отсутствует, определяются как public.

Пример #2 Объявление метода

<?php
/**
 * Определение MyClass
 */
class MyClass
{
    // Объявление общедоступного конструктора
    public function __construct() { }

    // Объявление общедоступного метода
    public function MyPublic() { }

    // Объявление защищенного метода
    protected function MyProtected() { }

    // Объявление закрытого метода
    private function MyPrivate() { }

    // Это общедоступный метод
    function Foo()
    {
        $this->MyPublic();
        $this->MyProtected();
        $this->MyPrivate();
    }
}

$myclass = new MyClass;
$myclass->MyPublic(); // Работает
$myclass->MyProtected(); // Неисправимая ошибка
$myclass->MyPrivate(); // Неисправимая ошибка
$myclass->Foo(); // Работает общедоступный, защищенный и закрытый

/**
 * Определение MyClass2
 */
class MyClass2 extends MyClass
{
    // Это общедоступный метод
    function Foo2()
    {
        $this->MyPublic();
        $this->MyProtected();
        $this->MyPrivate(); // Неисправимая ошибка
    }
}

$myclass2 = new MyClass2;
$myclass2->MyPublic(); // Работает
$myclass2->Foo2(); // Работает общедоступный и защищенный, закрытый не работает

class Bar
{
    public function test() {
        $this->testPrivate();
        $this->testPublic();
    }

    public function testPublic() {
        echo "Bar::testPublic\n";
    }

    private function testPrivate() {
        echo "Bar::testPrivate\n";
    }
}

class Foo extends Bar
{
    public function testPublic() {
        echo "Foo::testPublic\n";
    }

    private function testPrivate() {
        echo "Foo::testPrivate\n";
    }
}

$myFoo = new Foo();
$myFoo->test(); // Bar::testPrivate
                // Foo::testPublic
?>

Область видимости констант

Начиная с PHP 7.1.0, константы класса могут быть определены как public, private или protected. Константы, объявленные без указания области видимости, определяются как public.

Пример #3 Объявление констант, начиная с PHP 7.1.0

<?php
/**
 * Объявление класса MyClass
 */
class MyClass
{
    // Объявление общедоступной константы
    public const MY_PUBLIC = 'public';

    // Объявление защищенной константы
    protected const MY_PROTECTED = 'protected';

    // Объявление закрытой константы
    private const MY_PRIVATE = 'private';

    public function foo()
    {
        echo self::MY_PUBLIC;
        echo self::MY_PROTECTED;
        echo self::MY_PRIVATE;
    }
}

$myclass = new MyClass();
MyClass::MY_PUBLIC; // Работает
MyClass::MY_PROTECTED; // Неисправимая ошибка
MyClass::MY_PRIVATE; // Неисправимая ошибка
$myclass->foo(); // Выводятся константы public, protected и private

/**
 * Объявление класса MyClass2
 */
class MyClass2 extends MyClass
{
    // Публичный метод
    function foo2()
    {
        echo self::MY_PUBLIC;
        echo self::MY_PROTECTED;
        echo self::MY_PRIVATE; // Неисправимая ошибка
    }
}

$myclass2 = new MyClass2;
echo MyClass2::MY_PUBLIC; // Работает
$myclass2->foo2(); // Выводятся константы public и protected, но не private
?>

Видимость из других объектов

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

Пример #4 Доступ к элементам с модификатором private из объектов одного типа

<?php
class Test
{
    private $foo;

    public function __construct($foo)
    {
        $this->foo = $foo;
    }

    private function bar()
    {
        echo 'Доступ к закрытому методу.';
    }

    public function baz(Test $other)
    {
        // Мы можем изменить закрытое свойство:
        $other->foo = 'привет';
        var_dump($other->foo);

        // Мы также можем вызвать закрытый метод:
        $other->bar();
    }
}

$test = new Test('test');

$test->baz(new Test('other'));
?>

Результат выполнения данного примера:

string(6) "привет"
Доступ к закрытому методу.


Наследование

Наследование — это хорошо зарекомендовавший себя принцип программирования, и PHP использует этот принцип в своей объектной модели. Этот принцип повлияет на то, как многие классы и объекты связаны друг с другом.

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

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

Замечание:

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

Пример #1 Пример наследования

<?php

class Foo
{
    public function printItem($string)
    {
        echo 'Foo: ' . $string . PHP_EOL;
    }

    public function printPHP()
    {
        echo 'PHP просто супер.' . PHP_EOL;
    }
}

class Bar extends Foo
{
    public function printItem($string)
    {
        echo 'Bar: ' . $string . PHP_EOL;
    }
}

$foo = new Foo();
$bar = new Bar();
$foo->printItem('baz'); // Выведет: 'Foo: baz'
$foo->printPHP();       // Выведет: 'PHP просто супер'
$bar->printItem('baz'); // Выведет: 'Bar: baz'
$bar->printPHP();       // Выведет: 'PHP просто супер'

?>


Оператор разрешения области видимости (::)

Оператор разрешения области видимости (также называемый "Paamayim Nekudotayim") или просто "двойное двоеточие" - это лексема, позволяющая обращаться к статическим свойствам, константам и переопределенным свойствам или методам класса.

При обращении к этим элементам извне класса, необходимо использовать имя этого класса.

Начиная с версии PHP 5.3.0, стало возможным обратиться к классу с помощью переменной. Значение переменной не должно быть ключевым словом (например, self, parent или static).

"Paamayim Nekudotayim" на первый взгляд может показаться странным словосочетанием для обозначения двойного двоеточия. Однако, во время создания Zend Engine версии 0.5 (который входил в PHP3), команда Zend выбрала именно это обозначение. Оно на самом деле означает "двойное двоеточие" - на иврите!

Пример #1 Использование :: вне объявления класса

<?php
class MyClass {
    const CONST_VALUE = 'Значение константы';
}

$classname = 'MyClass';
echo $classname::CONST_VALUE; // Начиная с PHP 5.3.0

echo MyClass::CONST_VALUE;
?>

Для обращения к свойствам и методам внутри самого класса используются ключевые слова self, parent и static.

Пример #2 Использование :: внутри объявления класса

<?php
class OtherClass extends MyClass
{
    public static $my_static = 'статическая переменная';

    public static function doubleColon() {
        echo parent::CONST_VALUE . "\n";
        echo self::$my_static . "\n";
    }
}

$classname = 'OtherClass';
$classname::doubleColon(); // Начиная с версии PHP 5.3.0

OtherClass::doubleColon();
?>

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

Пример #3 Обращение к методу в родительском классе

<?php
class MyClass
{
    protected function myFunc() {
        echo "MyClass::myFunc()\n";
    }
}

class OtherClass extends MyClass
{
    // Переопределить родительское определение
    public function myFunc()
    {
        // Но все еще вызываем родительскую функцию
        parent::myFunc();
        echo "OtherClass::myFunc()\n";
    }
}

$class = new OtherClass();
$class->myFunc();
?>

См. также некоторые примеры статических вызовов.


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

Подсказка

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

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

В целях совместимости с PHP 4, если определение области видимости не используется, то свойство или метод будут обрабатываться так, как если бы он был объявлен как public.

Статические методы

Так как статические методы вызываются без создания экземпляра класса, то псевдопеременная $this недоступна внутри метода, объявленного как статический.

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

В PHP 5 вызов нестатических методов статически вызовет ошибку уровня E_STRICT.

Внимание

В PHP 7 вызов нестатических методов статически объявлен устаревшим и вызовет ошибку уровня E_DEPRECATED. Поддержка вызова нестатических методов статически может быть удалена в будущем.

Пример #1 Пример статического метода

<?php
class Foo {
    public static function aStaticMethod() {
        // ...
    }
}

Foo::aStaticMethod();
$classname = 'Foo';
$classname::aStaticMethod(); // Начиная с PHP 5.3.0
?>

Статические свойства

Статические свойства не могут быть доступны через объект с помощью оператора "->".

Как и любая другая статическая переменная PHP, статические свойства могут инициализироваться только используя литерал или константу до PHP 5.6; выражения не допускается. В PHP 5.6 и более новых версиях применяются те же правила, что и для выражений const: возможны некоторые выражения, если они могут быть вычислены во время компиляциии.

Начиная с PHP 5.3.0, существует возможность ссылаться на класс используя переменную. Значение переменной в таком случае не может быть ключевым словом (например, self, parent и static).

Пример #2 Пример статического свойства

<?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";      // Не определено свойство my_static

print $foo::$my_static . "\n"; // Начиная с PHP 5.3.0
$classname = 'Foo';
print $classname::$my_static . "\n"; // Начиная с PHP 5.3.0

print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>


Абстрактные классы

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

При наследовании от абстрактного класса, все методы, помеченные абстрактными в родительском классе, должны быть определены в дочернем классе; кроме того, область видимости этих методов должна совпадать (или быть менее строгой). Например, если абстрактный метод объявлен как protected, то реализация этого метода должна быть protected или public, но не private. Более того, объявления методов должны совпадать, то есть контроль типов (type hint) и количество обязательных аргументов должно быть одинаковым. К примеру, если в дочернем классе указан необязательный параметр, которого нет в объявлении абстрактного класса, то в данном случае конфликта объявлений методов не будет. Это правило также применяется к конструкторам начиная с версии PHP 5.4, ранее объявления конструкторов могли отличаться.

Пример #1 Пример абстрактного класса

<?php
abstract class AbstractClass
{
   /* Данный метод должен быть определён в дочернем классе */
    abstract protected function getValue();
    abstract protected function prefixValue($prefix);

   /* Общий метод */
    public function printOut() {
        print $this->getValue() . "\n";
    }
}

class ConcreteClass1 extends AbstractClass
{
    protected function getValue() {
        return "ConcreteClass1";
    }

    public function prefixValue($prefix) {
        return "{$prefix}ConcreteClass1";
    }
}

class ConcreteClass2 extends AbstractClass
{
    public function getValue() {
        return "ConcreteClass2";
    }

    public function prefixValue($prefix) {
        return "{$prefix}ConcreteClass2";
    }
}

$class1 = new ConcreteClass1;
$class1->printOut();
echo $class1->prefixValue('FOO_') ."\n";

$class2 = new ConcreteClass2;
$class2->printOut();
echo $class2->prefixValue('FOO_') ."\n";
?>

Результат выполнения данного примера:

ConcreteClass1
FOO_ConcreteClass1
ConcreteClass2
FOO_ConcreteClass2

Пример #2 Пример абстрактного класса

<?php
abstract class AbstractClass
{
    // Наш абстрактный метод требует только определить необходимые аргументы
    abstract protected function prefixName($name);

}

class ConcreteClass extends AbstractClass
{

    // Наш дочерний класс может определить необязательные аргументы, не указанные в объявлении родительского метода
    public function prefixName($name, $separator = ".") {
        if ($name == "Pacman") {
            $prefix = "Mr";
        } elseif ($name == "Pacwoman") {
            $prefix = "Mrs";
        } else {
            $prefix = "";
        }
        return "{$prefix}{$separator} {$name}";
    }
}

$class = new ConcreteClass;
echo $class->prefixName("Pacman"), "\n";
echo $class->prefixName("Pacwoman"), "\n";
?>

Результат выполнения данного примера:

Mr. Pacman
Mrs. Pacwoman

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


Интерфейсы объектов

Интерфейсы объектов позволяют создавать код, который указывает, какие методы должен реализовать класс, без необходимости определять, как именно они должны быть реализованы.

Интерфейсы объявляются так же, как и обычные классы, но с использованием ключевого слова interface вместо class. Тела методов интерфейсов должны быть пустыми.

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

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

implements

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

Замечание:

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

Замечание:

Интерфейсы могут быть унаследованы друг от друга, так же, как и классы, с помощью оператора extends.

Замечание:

Объявления методов в классе, реализующем интерфейс, должны быть совместимы с принципом подстановки Барбары Лисков (Liskov Substitution Principle, LSP), в противном случае будет вызвана фатальная ошибка.

Константы (Constants)

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

Примеры

Пример #1 Пример интерфейса

<?php

// Объявим интерфейс 'iTemplate'
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;
    }
}

// Это не будет работать
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
// (Фатальная ошибка: Класс BadTemplate содержит 1 абстрактный метод
// и поэтому должен быть объявлен абстрактным (iTemplate::getHtml))
class BadTemplate implements iTemplate
{
    private $vars = array();

    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }
}
?>

Пример #2 Наследование интерфейсов

<?php
interface a
{
    public function foo();
}

interface b extends a
{
    public function baz(Baz $baz);
}

// Это сработает
class c implements b
{
    public function foo()
    {
    }

    public function baz(Baz $baz)
    {
    }
}

// Это не сработает и выдаст фатальную ошибку
class d implements b
{
    public function foo()
    {
    }

    public function baz(Foo $foo)
    {
    }
}
?>

Пример #3 Множественное наследование интерфейсов

<?php
interface a
{
    public function foo();
}

interface b
{
    public function bar();
}

interface c extends a, b
{
    public function baz();
}

class d implements c
{
    public function foo()
    {
    }

    public function bar()
    {
    }

    public function baz()
    {
    }
}
?>

Пример #4 Интерфейсы с константами

<?php
interface a
{
    const b = 'Константа интерфейса';
}

// Выведет: Константа интерфейса
echo a::b;

// Это, однако, не будет работать, так как
// константы переопределять нельзя.
class b implements a
{
    const b = 'Константа класса';
}
?>

Интерфейс, совместно с контролем типов, предоставляет отличный способ проверки того, что определенный объект содержит определенный набор методов. Смотрите также оператор instanceof и контроль типов.


Трейты

Начиная с версии 5.4.0, PHP реализует метод для повторного использования кода под названием трейт (trait).

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

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

Пример #1 Пример использования трейта

<?php
trait ezcReflectionReturnInfo {
    function getReturnType() { /*1*/ }
    function getReturnDescription() { /*2*/ }
}

class ezcReflectionMethod extends ReflectionMethod {
    use ezcReflectionReturnInfo;
    /* ... */
}

class ezcReflectionFunction extends ReflectionFunction {
    use ezcReflectionReturnInfo;
    /* ... */
}
?>

Приоритет

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

Пример #2 Пример приоритета старшинства

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

<?php
class Base {
    public function sayHello() {
        echo 'Hello ';
    }
}

trait SayWorld {
    public function sayHello() {
        parent::sayHello();
        echo 'World!';
    }
}

class MyHelloWorld extends Base {
    use SayWorld;
}

$o = new MyHelloWorld();
$o->sayHello();
?>

Результат выполнения данного примера:

Hello World!

Пример #3 Пример альтернативного порядка приоритета

<?php
trait HelloWorld {
    public function sayHello() {
        echo 'Hello World!';
    }
}

class TheWorldIsNotEnough {
    use HelloWorld;
    public function sayHello() {
        echo 'Hello Universe!';
    }
}

$o = new TheWorldIsNotEnough();
$o->sayHello();
?>

Результат выполнения данного примера:

Hello Universe!

Несколько трейтов

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

Пример #4 Пример использования нескольких трейтов

<?php
trait Hello {
    public function sayHello() {
        echo 'Hello ';
    }
}

trait World {
    public function sayWorld() {
        echo 'World';
    }
}

class MyHelloWorld {
    use Hello, World;
    public function sayExclamationMark() {
        echo '!';
    }
}

$o = new MyHelloWorld();
$o->sayHello();
$o->sayWorld();
$o->sayExclamationMark();
?>

Результат выполнения данного примера:

Hello World!

Разрешение конфликтов

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

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

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

Пример #5 Пример разрешения конфликтов

В этом примере Talker использует трейты A и B. Так как в A и B есть конфликтующие методы, он определяет использовать вариант smallTalk из трейта B, а вариант bigTalk - из трейта A.

Класс Aliased_Talker применяет оператор as чтобы получить возможность использовать имплементацию bigTalk из B под дополнительным псевдонимом talk.

<?php
trait A {
    public function smallTalk() {
        echo 'a';
    }
    public function bigTalk() {
        echo 'A';
    }
}

trait B {
    public function smallTalk() {
        echo 'b';
    }
    public function bigTalk() {
        echo 'B';
    }
}

class Talker {
    use A, B {
        B::smallTalk insteadof A;
        A::bigTalk insteadof B;
    }
}

class Aliased_Talker {
    use A, B {
        B::smallTalk insteadof A;
        A::bigTalk insteadof B;
        B::bigTalk as talk;
    }
}
?>

Замечание:

До PHP 7.0 определение свойства в классе с таким же именем, что и в трейте, приводило к ошибке уровня E_STRICT, даже если определение полностью совпадало (та же область видимости и такое же начальное значение).

Изменение видимости метода

Используя синтаксис оператора as можно также настроить видимость метода в использующем трейт классе.

Пример #6 Пример изменения видимости метода

<?php
trait HelloWorld {
    public function sayHello() {
        echo 'Hello World!';
    }
}

// Изменение видимости метода sayHello
class MyClass1 {
    use HelloWorld { sayHello as protected; }
}

// Создание псевдонима метода с измененной видимостью
// видимость sayHello не изменилась
class MyClass2 {
    use HelloWorld { sayHello as private myPrivateHello; }
}
?>

Трейты, состоящие из трейтов

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

Пример #7 Пример трейтов, составленных из трейтов

<?php
trait Hello {
    public function sayHello() {
        echo 'Hello ';
    }
}

trait World {
    public function sayWorld() {
        echo 'World!';
    }
}

trait HelloWorld {
    use Hello, World;
}

class MyHelloWorld {
    use HelloWorld;
}

$o = new MyHelloWorld();
$o->sayHello();
$o->sayWorld();
?>

Результат выполнения данного примера:

Hello World!

Абстрактные члены трейтов

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

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

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

Пример #8 Требования трейта при помощи абстрактных методов

<?php
trait Hello {
    public function sayHelloWorld() {
        echo 'Hello'.$this->getWorld();
    }
    abstract public function getWorld();
}

class MyHelloWorld {
    private $world;
    use Hello;
    public function getWorld() {
        return $this->world;
    }
    public function setWorld($val) {
        $this->world = $val;
    }
}
?>

Статические члены трейта

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

Пример #9 Статические переменные

<?php
trait Counter {
    public function inc() {
        static $c = 0;
        $c = $c + 1;
        echo "$c\n";
    }
}

class C1 {
    use Counter;
}

class C2 {
    use Counter;
}

$o = new C1(); $o->inc(); // echo 1
$p = new C2(); $p->inc(); // echo 1
?>

Пример #10 Статические методы

<?php
trait StaticExample {
    public static function doSomething() {
        return 'Что-либо делаем';
    }
}

class Example {
    use StaticExample;
}

Example::doSomething();
?>

Свойства

Трейты могут также определять свойства.

Пример #11 Определение свойств

<?php
trait PropertiesTrait {
    public $x = 1;
}

class PropertiesExample {
    use PropertiesTrait;
}

$example = new PropertiesExample;
$example->x;
?>

Если трейт определяет свойство, то класс не может определить свойство с таким же именем, кроме случаев полного совпадения (те же начальное значение и модификатор видимости), иначе будет сгенерирована фатальная ошибка. До PHP 7.0.0 при определении свойства в классе, полностью идентичное свойству трейта, выдавалась ошибка уровня E_STRICT.

Пример #12 Разрешение конфликтов

<?php
trait PropertiesTrait {
    public $same = true;
    public $different = false;
}

class PropertiesExample {
    use PropertiesTrait;
    public $same = true; // Допустимо с PHP 7.0.0. В более ранних версиях ошибка уровня E_STRICT
    public $different = true; // Фатальная ошибка
}
?>


Анонимные классы

Поддержка анонимных классов была добавлена в PHP 7. Анонимные классы полезны, когда нужно создать простые, одноразовые объекты.

<?php

// До PHP 7
class Logger
{
    public function log($msg)
    {
        echo $msg;
    }
}

$util->setLogger(new Logger());

// С PHP 7+
$util->setLogger(new class {
    public function log($msg)
    {
        echo $msg;
    }
});

Они могут передавать аргументы в конструкторы, расширять другие классы, реализовывать интерфейсы и использовать трейты как обычный класс:

<?php

class SomeClass {}
interface SomeInterface {}
trait SomeTrait {}

var_dump(new class(10) extends SomeClass implements SomeInterface {
    private $num;

    public function __construct($num)
    {
        $this->num = $num;
    }

    use SomeTrait;
});

Результат выполнения данного примера:

object(class@anonymous)#1 (1) {
  ["Command line code0x104c5b612":"class@anonymous":private]=>
  int(10)
}

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

<?php

class Outer
{
    private $prop = 1;
    protected $prop2 = 2;

    protected function func1()
    {
        return 3;
    }

    public function func2()
    {
        return new class($this->prop) extends Outer {
            private $prop3;

            public function __construct($prop)
            {
                $this->prop3 = $prop;
            }

            public function func3()
            {
                return $this->prop2 + $this->prop3 + $this->func1();
            }
        };
    }
}

echo (new Outer)->func2()->func3();

Результат выполнения данного примера:

6

Все объекты, созданные одним и тем же объявлением анонимного класса, являются экземплярами этого самого класса.

<?php
function anonymous_class()
{
    return new class {};
}

if (get_class(anonymous_class()) === get_class(anonymous_class())) {
    echo 'Тот же класс';
} else {
    echo 'Другой класс';
}

Результат выполнения данного примера:

Тот же класс

Замечание:

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

<?php
echo get_class(new class {});

Результатом выполнения данного примера будет что-то подобное:

class@anonymous/in/oNi1A0x7f8636ad2021


Перегрузка

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

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

Все методы перегрузки должны быть объявлены как public.

Замечание:

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

Замечание:

Интерпретация перегрузки в PHP отличается от большинства объектно-ориентированных языков. Традиционно перегрузка означает возможность иметь несколько одноименных методов с разным количеством и типами аргументов.

Список изменений

Версия | Описание
5.3.0 | Добавлен метод __callStatic(). Добавлено предупреждение об усилении общедоступной видимости и нестатичном объявлении.
5.1.0 | Добавлены методы __isset() и __unset(). Добавлена поддержка для перегрузки закрытых свойств с помощью __get().
5.0.0 | Добавлен метод __get().

Перегрузка свойств

public __set ( string $name , mixed $value ) : void
public __get ( string $name ) : mixed
public __isset ( string $name ) : bool
public __unset ( string $name ) : void

Метод __set() будет выполнен при записи данных в недоступные (защищенные или приватные) или несуществующие свойства.

Метод __get() будет выполнен при чтении данных из недоступных (защищенных или приватных) или несуществующих свойств.

Метод __isset() будет выполнен при использовании isset() или empty() на недоступных (защищенных или приватных) или несуществующих свойствах.

Метод __unset() будет выполнен при вызове unset() на недоступном (защищенном или приватном) или несуществующем свойстве.

Аргумент $name представляет собой имя вызываемого свойства. Метод __set() содержит аргумент $value, представляющий собой значение, которое будет записано в свойство с именем $name.

Перегрузка свойств работает только в контексте объекта. Данные магические методы не будут вызваны в статическом контексте. Поэтому эти методы не должны объявляться статическими. Начиная с версии PHP 5.3.0, при объявлении любого магического метода как static будет выдано предупреждение.

Замечание:

Возвращаемое значение __set() будет проигнорировано из-за способа обработки в PHP оператора присваивания. Аналогично, __get() никогда не вызывается при объединении присваиваний, например, подобным образом:

 $a = $obj->b = 8;

Пример #1
     Перегрузка свойств с помощью методов __get(),
     __set(), __isset()
     и __unset()

<?php
class PropertyTest
{
    /**  Место хранения перегружаемых данных.  */
    private $data = array();

    /**  Перегрузка не применяется к объявленным свойствам.  */
    public $declared = 1;

    /**  Здесь перегрузка будет использована только при доступе вне класса.  */
    private $hidden = 2;

    public function __set($name, $value)
    {
        echo "Установка '$name' в '$value'\n";
        $this->data[$name] = $value;
    }

    public function __get($name)
    {
        echo "Получение '$name'\n";
        if (array_key_exists($name, $this->data)) {
            return $this->data[$name];
        }

        $trace = debug_backtrace();
        trigger_error(
            'Неопределенное свойство в __get(): ' . $name .
            ' в файле ' . $trace[0]['file'] .
            ' на строке ' . $trace[0]['line'],
            E_USER_NOTICE);
        return null;
    }

    /**  Начиная с PHP 5.1.0  */
    public function __isset($name)
    {
        echo "Установлено ли '$name'?\n";
        return isset($this->data[$name]);
    }

    /**  Начиная с PHP 5.1.0  */
    public function __unset($name)
    {
        echo "Уничтожение '$name'\n";
        unset($this->data[$name]);
    }

    /**  Не магический метод, просто для примера. */
    public function getHidden()
    {
        return $this->hidden;
    }
}

echo "<pre>\n";

$obj = new PropertyTest;

$obj->a = 1;
echo $obj->a . "\n\n";

var_dump(isset($obj->a));
unset($obj->a);
var_dump(isset($obj->a));
echo "\n";

echo $obj->declared . "\n\n";

echo "Давайте поэкспериментируем с закрытым свойством 'hidden':\n";
echo "Закрытые свойства видны внутри класса, поэтому __get() не используется...\n";
echo $obj->getHidden() . "\n";
echo "Закрытые свойства не видны вне класса, поэтому __get() используется...\n";
echo $obj->hidden . "\n";
?>

Результат выполнения данного примера:

Установка 'a' в '1'
Получение 'a'
1

Установлено ли 'a'?
bool(true)
Уничтожение 'a'
Установлено ли 'a'?
bool(false)

1

Давайте поэкспериментируем с закрытым свойством 'hidden':
Закрытые свойства видны внутри класса, поэтому __get() не используется...
2
Закрытые свойства не видны вне класса, поэтому __get() используется...
Получение 'hidden'

Notice: Неопределенное свойство в __get(): hidden в <file> on line 70 in <file> on line 29

Перегрузка методов

public __call ( string $name , array $arguments ) : mixed
public static __callStatic ( string $name , array $arguments ) : mixed

__call() запускается при вызове недоступных методов в контексте объект.

__callStatic() запускается при вызове недоступных методов в статическом контексте.

Аргумент $name представляет собой имя вызываемого метода. Аргумент $arguments представляет собой нумерованный массив, содержащий параметры, переданные в вызываемый метод $name.

Пример #2 Перегрузка методов с помощью методов __call() и __callStatic()

<?php
class MethodTest {
    public function __call($name, $arguments) {
        // Замечание: значение $name регистрозависимо.
        echo "Вызов метода '$name' "
             . implode(', ', $arguments). "\n";
    }

    /**  Начиная с PHP 5.3.0  */
    public static function __callStatic($name, $arguments) {
        // Замечание: значение $name регистрозависимо.
        echo "Вызов статического метода '$name' "
             . implode(', ', $arguments). "\n";
    }
}

$obj = new MethodTest;
$obj->runTest('в контексте объекта');

MethodTest::runTest('в статическом контексте');  // Начиная с PHP 5.3.0
?>

Результат выполнения данного примера:

Вызов метода 'runTest' в контексте объекта
Вызов статического метода 'runTest' в статическом контексте


Итераторы объектов

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

Пример #1 Итерация простого объекта

<?php
class MyClass
{
    public $var1 = 'значение 1';
    public $var2 = 'значение 2';
    public $var3 = 'значение 3';

    protected $protected = 'защищенная переменная';
    private   $private   = 'закрытая переменная';

    function iterateVisible() {
       echo "MyClass::iterateVisible:\n";
       foreach ($this as $key => $value) {
           print "$key => $value\n";
       }
    }
}

$class = new MyClass();

foreach($class as $key => $value) {
    print "$key => $value\n";
}
echo "\n";

$class->iterateVisible();

?>

Результат выполнения данного примера:

var1 => значение 1
var2 => значение 2
var3 => значение 3

MyClass::iterateVisible:
var1 => значение 1
var2 => значение 2
var3 => значение 3
protected => защищенная переменная
private => закрытая переменная

Как показывает результат, foreach проитерировал все доступные и принадлежащие объекту видимые свойства.

Кроме того, вы можете развить эту концепцию и реализовать встроенный в PHP 5 интерфейс Iterator. Это позволит самому объекту решать как он будет итерироваться и какие данные будут доступны на каждой итерации.

Пример #2 Итерация объекта, реализующего интерфейс 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()
    {
        $key = key($this->var);
        $var = ($key !== NULL && $key !== 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
ключ: 0
0: 1
следующий: 2
верный: 1
текущий: 2
ключ: 1
1: 2
следующий: 3
верный: 1
текущий: 3
ключ: 2
2: 3
следующий:
верный:

Интерфейс IteratorAggregate может быть использован как альтернатива реализации всех методов интерфейса Iterator. IteratorAggregate требует чтобы был реализован только один метод - IteratorAggregate::getIterator(), который должен возвращать экземпляр класса, реализующий интерфейс Iterator.

Пример #3 Итерация объекта, реализующего интерфейс IteratorAggregate

<?php
class MyCollection implements IteratorAggregate
{
    private $items = array();
    private $count = 0;

    // Требование интерфейса 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 -> $val]\n\n";
}
?>

Результат выполнения данного примера:

перемотка в начало
текущий: value 1
верный: 1
текущий: value 1
ключ: 0
ключ/значение: [0 -> value 1]

следующий: value 2
текущий: value 2
верный: 1
текущий: value 2
ключ: 1
ключ/значение: [1 -> value 2]

следующий: value 3
текущий: value 3
верный: 1
текущий: value 3
ключ: 2
ключ/значение: [2 -> value 3]

следующий:
текущий:
верный:

Замечание:

Больше примеров итераторов можно найти в расширении SPL.

Замечание:

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


Магические методы

Имена функций
__construct(),
__destruct(),
__call(),
__callStatic(),
__get(),
__set(),
__isset(),
__unset(),
__sleep(),
__wakeup(),
__toString(),
__invoke(),
__set_state(),
__clone() и
__debugInfo()
являются магическими в PHP.
Не стоит называть свои методы этими именами, если вы не хотите
использовать их магическую функциональность.

Замечание: Все магические методы ДОЛЖНЫ быть объявлены как public.

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

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

__sleep() и __wakeup()

public __sleep ( void ) : array
__wakeup ( void ) : void

Функция serialize() проверяет, присутствует ли в вашем классе метод с магическим именем __sleep(). Если это так, то этот метод выполняется до любой операции сериализации. Он может очистить объект и должен возвращать массив с именами всех переменных этого объекта, которые должны быть сериализованы. Если метод ничего не возвращает, то сериализуется NULL и выдается предупреждение E_NOTICE.

Замечание:

Недопустимо возвращать в __sleep() имена закрытых свойств в родительском классе. Это приведет к ошибке уровня E_NOTICE. Вместо этого вы можете использовать интерфейс Serializable.

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

С другой стороны, функция unserialize() проверяет наличие метода с магическим именем __wakeup(). Если она имеется, эта функция может восстанавливать любые ресурсы, которые может иметь объект.

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

Пример #1 Сериализация и десериализация

<?php
class Connection
{
    protected $link;
    private $dsn, $username, $password;

    public function __construct($dsn, $username, $password)
    {
        $this->dsn = $dsn;
        $this->username = $username;
        $this->password = $password;
        $this->connect();
    }

    private function connect()
    {
        $this->link = new PDO($this->dsn, $this->username, $this->password);
    }

    public function __sleep()
    {
        return array('dsn', 'username', 'password');
    }

    public function __wakeup()
    {
        $this->connect();
    }
}?>

__toString()

public __toString ( void ) : string

Метод __toString() позволяет классу решать, как он должен реагировать при преобразовании в строку. Например, что вывести при выполнении echo $obj;. Этот метод должен возвращать строку, иначе произойдёт фатальная ошибка уровня E_RECOVERABLE_ERROR.

Внимание

Нельзя выбросить исключение из метода __toString() до PHP 7.4.0. Это приведет к фатальной ошибке.

Пример #2 Простой пример

<?php
// Объявление простого класса
class TestClass
{
    public $foo;

    public function __construct($foo)
    {
        $this->foo = $foo;
    }

    public function __toString()
    {
        return $this->foo;
    }
}

$class = new TestClass('Привет');
echo $class;
?>

Результат выполнения данного примера:

Привет

Стоит отметить, что до PHP 5.2.0 метод __toString() вызывался только непосредственно в сочетании с echo или print. Начиная с PHP 5.2.0, он вызывается в любом строчном контексте (например, в printf() с модификатором %s), но не в контексте других типов (например, с %d модификатором). Начиная с PHP 5.2.0, преобразование объекта в строку при отсутствии метода __toString() вызывает ошибку E_RECOVERABLE_ERROR.

__invoke()

__invoke ([ $... ] ) : mixed

Метод __invoke() вызывается, когда скрипт пытается выполнить объект как функцию.

Замечание:

Данный метод доступен начиная с PHP 5.3.0.

Пример #3 Использование __invoke()

<?php
class CallableClass
{
    public function __invoke($x)
    {
        var_dump($x);
    }
}
$obj = new CallableClass;
$obj(5);
var_dump(is_callable($obj));
?>

Результат выполнения данного примера:

int(5)
bool(true)

__set_state()

static __set_state ( array $properties ) : object

Этот статический метод вызывается для тех классов, которые экспортируются функцией var_export() начиная с PHP 5.1.0.

Единственный параметр этого метода является массив, содержащий экспортируемые свойства в виде array('property' => value, ...).

Пример #4 Использование __set_state() (начиная с PHP 5.1.0)

<?php

class A
{
    public $var1;
    public $var2;

    public static function __set_state($an_array) // С PHP 5.1.0
    {
        $obj = new A;
        $obj->var1 = $an_array['var1'];
        $obj->var2 = $an_array['var2'];
        return $obj;
    }
}

$a = new A;
$a->var1 = 5;
$a->var2 = 'foo';

eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array(
                                            //    'var1' => 5,
                                            //    'var2' => 'foo',
                                            // ));
var_dump($b);

?>

Результат выполнения данного примера:

object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

Замечание: При экспорте объекта var_export() не проверяет, реализует ли класс объекта метод __set_state(), поэтому повторный импорт таких объектов не будет выполнен, если метод __set_state() не реализован. В частности, это относится к некоторым внутренним классам. Необходимость проверки, реализует ли импортируемый класс метод __set_state(), полностью лежит на разработчике.

__debugInfo()

__debugInfo ( void ) : array

Этот метод вызывается функцией var_dump(), когда необходимо вывести список свойств объекта. Если этот метод не определен, тогда будут выведены все свойства объекта c модификаторами public, protected и private.

Этот метод был добавлен в PHP 5.6.0.

Пример #5 Использование __debugInfo()

<?php
class C {
    private $prop;

    public function __construct($val) {
        $this->prop = $val;
    }

    public function __debugInfo() {
        return [
            'propSquared' => $this->prop ** 2,
        ];
    }
}

var_dump(new C(42));
?>

Результат выполнения данного примера:

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}


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

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

Пример #1 Пример окончательных (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() не может быть переопределён)
?>

Пример #2 Пример окончательного (final) класса

<?php
final class BaseClass {
   public function test() {
       echo "Вызван метод BaseClass::test()\n";
   }

   // В данном случае неважно, укажете ли вы этот метод как final или нет
   final public function moreTesting() {
       echo "BaseClass::moreTesting() called\n";
   }
}

class ChildClass extends BaseClass {
}
// Выполнение заканчивается фатальной ошибкой: Class ChildClass may not inherit from final class (BaseClass)
// (Класс ChildClass не может быть унаследован от окончательного класса (BaseClass))
?>

Замечание: Свойства и константы не могут быть объявлены финальными, только классы и методы.


Клонирование объектов

Создание копии объекта с абсолютно идентичными свойствами не всегда является приемлемым вариантом. Хорошим примером необходимости копирования конструкторов может послужить ситуация, когда у вас есть объект, представляющий собой окно GTK и содержащий ресурс-идентификатор этого окна; когда вы создаете копию этого объекта, вам может понадобиться, чтобы копия объекта содержала ресурс-идентификатор нового окна. Другим примером может послужить ситуация, когда ваш объект содержит ссылку на какой-либо другой используемый объект и, когда вы создаёте копию родительского объекта, вам нужно также создать новый экземпляр этого другого объекта, так, чтобы копия объекта-контейнера содержала собственный отдельный экземпляр содержащегося объекта.

Копия объекта создается с использованием ключевого слова clone (который вызывает метод __clone() объекта, если это возможно). Вызов метода __clone() не может быть осуществлён напрямую.

$copy_of_object = clone $object;

При клонировании объекта, PHP выполняет неполную копию всех свойств объекта. Любые свойства, являющиеся ссылками на другие переменные, останутся ссылками.

__clone ( void ) : void

После завершения клонирования, если метод __clone() определен, тогда будет вызываться метод __clone() вновь созданного объекта, для возможного изменения всех необходимых свойств.

Пример #1 Клонирование объекта

<?php
class SubObject
{
    static $instances = 0;
    public $instance;

    public function __construct() {
        $this->instance = ++self::$instances;
    }

    public function __clone() {
        $this->instance = ++self::$instances;
    }
}

class MyCloneable
{
    public $object1;
    public $object2;

    function __clone()
    {
        // Принудительно копируем this->object, иначе
        // он будет указывать на один и тот же объект.
        $this->object1 = clone $this->object1;
    }
}

$obj = new MyCloneable();

$obj->object1 = new SubObject();
$obj->object2 = new SubObject();

$obj2 = clone $obj;

print("Оригинальный объект:\n");
print_r($obj);

print("Клонированный объект:\n");
print_r($obj2);

?>

Результат выполнения данного примера:

Оригинальный объект:
MyCloneable Object
(
    [object1] => SubObject Object
        (
            [instance] => 1
        )

    [object2] => SubObject Object
        (
            [instance] => 2
        )

)
Клонированный объект:
MyCloneable Object
(
    [object1] => SubObject Object
        (
            [instance] => 3
        )

    [object2] => SubObject Object
        (
            [instance] => 2
        )

)

В PHP 7.0.0 введена возможность обращения к свойствам/методам только что склонированного объекта:

Пример #2 Доступ к только что склонированному объекту

<?php
$dateTime = new DateTime();
echo (clone $dateTime)->format('Y');
?>

Результатом выполнения данного примера будет что-то подобное:

2016


Сравнение объектов

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

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

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

Пример #1 Пример сравнения объектов в PHP 5

<?php
function bool2str($bool)
{
    return (string) $bool;
}

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
{
    public $flag;

    function __construct($flag = true) {
        $this->flag = $flag;
    }
}

class OtherFlag
{
    public $flag;

    function __construct($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

Замечание:

Расширения могут определять собственные правила для сравнения своих объектов (==).


  • « Сравнение объектов
  • Позднее статическое связывание »
  • PHP Manual
  • Классы и объекты
  • Контроль типа

Контроль типа

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


Позднее статическое связывание

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

Если говорить более точно, позднее статическое связывание сохраняет имя класса указанного в последнем "неперенаправленном вызове". В случае статических вызовов это явно указанный класс (обычно слева от оператора ::); в случае не статических вызовов это класс объекта. "Перенаправленный вызов" - это статический вызов, начинающийся с self::, parent::, static::, или, если двигаться вверх по иерархии классов, forward_static_call(). Функция get_called_class() может быть использована для получения строки с именем вызванного класса, а static:: представляет ее область действия.

Само название "позднее статическое связывание" отражает в себе внутреннюю реализацию этой особенности. "Позднее связывание" отражает тот факт, что обращения через static:: не будут вычисляться по отношению к классу, в котором вызываемый метод определен, а будут вычисляться на основе информации в ходе исполнения. Также эта особенность была названа "статическое связывание" потому, что она может быть использована (но не обязательно) в статических методах.

Ограничения self::

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

Пример #1 Использование self::

<?php
class A {
    public static function who() {
        echo __CLASS__;
    }
    public static function test() {
        self::who();
    }
}

class B extends A {
    public static function who() {
        echo __CLASS__;
    }
}

B::test();
?>

Результат выполнения данного примера:

A

Использование позднего статического связывания

Позднее статическое связывание пытается устранить это ограничение, предоставляя ключевое слово, которое ссылается на класс, вызванный непосредственно в ходе выполнения. Попросту говоря, ключевое слово, которое позволит вам ссылаться на B из test() в предыдущем примере. Было решено не вводить новое ключевое слово, а использовать static, которое уже зарезервировано.

Пример #2 Простое использование static::

<?php
class A {
    public static function who() {
        echo __CLASS__;
    }
    public static function test() {
        static::who(); // Здесь действует позднее статическое связывание
    }
}

class B extends A {
    public static function who() {
        echo __CLASS__;
    }
}

B::test();
?>

Результат выполнения данного примера:

B

Замечание:

В нестатическом контексте вызванным классом будет тот, к которому относится экземпляр объекта. Поскольку $this-> будет пытаться вызывать закрытые методы из той же области действия, использование static:: может дать разные результаты. Другое отличие в том, что static:: может ссылаться только на статические поля класса.

Пример #3 Использование static:: в нестатическом контексте

<?php
class A {
    private function foo() {
        echo "success!\n";
    }
    public function test() {
        $this->foo();
        static::foo();
    }
}

class B extends A {
   /* foo() будет скопирован в В, следовательно его область действия по прежнему А,
      и вызов будет успешным */
}

class C extends A {
    private function foo() {
        /* исходный метод заменен; область действия нового метода - С */
    }
}

$b = new B();
$b->test();
$c = new C();
$c->test();   // потерпит ошибку
?>

Результат выполнения данного примера:

success!
success!
success!

Fatal error:  Call to private method C::foo() from context 'A' in /tmp/test.php on line 9

Замечание:

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

Пример #4 Перенаправленные и неперенаправленные вызовы

<?php
class A {
    public static function foo() {
        static::who();
    }

    public static function who() {
        echo __CLASS__."\n";
    }
}

class B extends A {
    public static function test() {
        A::foo();
        parent::foo();
        self::foo();
    }

    public static function who() {
        echo __CLASS__."\n";
    }
}
class C extends B {
    public static function who() {
        echo __CLASS__."\n";
    }
}

C::test();
?>

Результат выполнения данного примера:

A
C
C


Объекты и ссылки

Одним из ключевых моментов объектно-ориентированной парадигмы PHP 5, который часто обсуждается, является "передача объектов по ссылке по умолчанию". Это не совсем верно. Этот раздел уточняет это понятие используя некоторые примеры.

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

Пример #1 Ссылки и объекты

<?php
class A {
    public $foo = 1;
}

$a = new A;
$b = $a;     // $a и $b копии одного идентификатора
             // ($a) = ($b) = <id>
$b->foo = 2;
echo $a->foo."\n";

$c = new A;
$d = &$c;    // $c и $d ссылки
             // ($c,$d) = <id>

$d->foo = 2;
echo $c->foo."\n";

$e = new A;

function foo($obj) {
    // ($obj) = ($e) = <id>
    $obj->foo = 2;
}

foo($e);
echo $e->foo."\n";

?>

Результат выполнения данного примера:

2
2
2


Сериализация объектов

Сериализация объектов - сохранение объектов между сессиями

Функция serialize() возвращает строковое представление любого значения, которое может быть сохранено в PHP. Функция unserialize() может использовать эту строку для восcтановления исходного значения переменной. Использование сериализации для сохранения объекта сохранит все его переменные. Методы в объекте не будут сохранены, а только имя класса.

Для того, чтобы иметь возможность сделать unserialize() для объекта нужно чтобы класс этого объекта был определен заранее. То есть, если у вас есть экземпляр класса А, и вы сделаете его сериализацию, вы получите его строковое представление, которое содержит значение всех переменных, содержащихся в нем. Для того, чтобы восcтановить объект из строки в другом PHP-файле класс A должен быть определен заранее. Это можно сделать, например, путем сохранения определения класса A в отдельный файл и подключить этот файл или использовать функцию spl_autoload_register() для автоматического подключения.

<?php
// classa.inc:

  class A {
      public $one = 1;

      public function show_one() {
          echo $this->one;
      }
  }

// page1.php:

  include("classa.inc");

  $a = new A;
  $s = serialize($a);
  // сохраняем $s где-нибудь, откуда page2.php сможет его получить.
  file_put_contents('store', $s);

// page2.php:

  // это нужно для того, чтобы функция unserialize работала правильно.
  include("classa.inc");

  $s = file_get_contents('store');
  $a = unserialize($s);

  // теперь можно использовать метод show_one() объекта $a.
  $a->show_one();
?>

Если приложение использует сессии и функцию session_register() для регистрации объектов, эти объекты сериализуются автоматически в конце исполнения каждой страницы PHP, и десериализуются автоматически в начале исполнения каждой из следующих страниц. Это означает, что эти объекты могут появиться на любой из страниц приложения, став однажды частью сессии. Тем не менее, функция session_register() удалена в PHP 5.4.0.

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

Поэтому, если в приведенном выше примере $a стало частью сессии после запуска session_register("a"), вы должны подключать файл classa.inc на всех ваших страницах, а не только page1.php и page2.php.

Обратите внимание, что, кроме вышеприведенного совета, также можно подключиться к событиям сериализации и десериализации объекта с помощью методов __sleep() и __wakeup(). Метод __sleep() также позволяет сериализовать лишь некоторое подмножество свойств объекта.


Ковариантность и Контравариантность

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

Начиная с PHP 7.4.0 появилась поддержка ковариантности и контравариантности. Звучит страшно, но на самом деле всё просто и очень полезно в объектно ориентированном подходе.

Ковариантность

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

Возьмём простой абстрактный родительский класс Animal и создадим на его основе два дочерних класса Cat и Dog.

<?php

abstract class Animal
{
    protected string $name;

    public function __construct(string $name)
    {
        $this->name = $name;
    }

    abstract public function speak();
}

class Dog extends Animal
{
    public function speak()
    {
        echo $this->name . " лает";
    }
}

class Cat extends Animal
{
    public function speak()
    {
        echo $this->name . " мяукает";
    }
}

Обратите внимание, что в примере отсутствуют методы возвращающие какие либо значения. В следующем примере мы создадим несколько фабрик, возвращающих объекты типов Animal, Cat и Dog. Именно на этом примере мы продемонстрируем ковариантность.

<?php

interface AnimalShelter
{
    public function adopt(string $name): Animal;
}

class CatShelter implements AnimalShelter
{
    public function adopt(string $name): Cat // Возвращаем класс Cat вместо  Animal
    {
        return new Cat($name);
    }
}

class DogShelter implements AnimalShelter
{
    public function adopt(string $name): Dog // Возвращаем класс Dog вместо  Animal
    {
        return new Dog($name);
    }
}

$kitty = (new CatShelter)->adopt("Рыжик");
$kitty->speak();
echo "\n";

$doggy = (new DogShelter)->adopt("Бобик");
$doggy->speak();

Результат выполнения данного примера:

Рыжик мяукает
Бобик лает

Контравариантность

С другой стороны, контравариантность позволяет дочернему методу принимать параметром менее конкретный тип, чем задано в родительском. В продолжение предыдущего примера, где мы использовали классы Animal, Cat и Dog, мы введем новые классы Food и AnimalFood и добавим в абстрактный класс Animal новый метод eat(AnimalFood $food).

<?php

class Food {}

class AnimalFood extends Food {}

abstract class Animal
{
    protected string $name;

    public function __construct(string $name)
    {
        $this->name = $name;
    }

    public function eat(AnimalFood $food)
    {
        echo $this->name . " хомячит " . get_class($food);
    }
}

Чтобы увидеть суть контравариантности, мы переопределим метод eat класса Dog таким образом, чтобы он мог принимать любой объект класса Food. Класс Cat оставим без изменений.

<?php

class Dog extends Animal
{
    public function eat(Food $food) {
        echo $this->name . " хомячит " . get_class($food);
    }
}

Теперь мы можем увидеть, как работает контравариантность.

<?php

$kitty = (new CatShelter)->adopt("Рыжик");
$catFood = new AnimalFood();
$kitty->eat($catFood);
echo "\n";

$doggy = (new DogShelter)->adopt("Бобик");
$banana = new Food();
$doggy->eat($banana);

Результат выполнения данного примера:

Рыжик хомячит AnimalFood
Бобик хомячит Food

Но что случится, если $kitty попробует съесть (eat) банан ($banana)?

$kitty->eat($banana);

Результат выполнения данного примера:

Fatal error: Uncaught TypeError: Argument 1 passed to Animal::eat() must be an instance of AnimalFood, instance of Food given


Журнал изменений ООП

Здесь перечислены изменения модели ООП в PHP. Описания и другие примечания этих возможностей можно найти в документации ООП PHP.

Версия | Описание
7.4.0 | Изменено: Теперь можно выбрасывать исключение в функции __toString().
7.4.0 | Добавлено: поддержка ограниченной ковариантности типов возвращаемого значения и типов аргументов. Поддержка полной вариативности производится только если используется автозагрузка. Внутри одного файла возможны только нециклические ссылки на типы.
7.4.0 | Добавлено: Теперь можно задавать тип для свойств класса.
7.3.0 | Несовместимость: распаковка аргументов для Traversable с нецелочисленными ключами больше не поддерживается. Такое поведение изначально не планировалось и теперь удалено.
7.3.0 | Несовместимость: в прошлых версиях можно было разделить статические свойства при помощи присваивания по ссылке. Теперь нельзя.
7.3.0 | Изменено: теперь оператор instanceof допускает литералы в качестве первого операнда. В этом случае всегда будет возвращено FALSE.
7.2.0 | Устарело: метод __autoload() объявлен устаревшим в пользу spl_autoload_register().
7.2.0 | Изменено: для имен классов, интерфейсов и трейтов нельзя использовать слово object.
7.2.0 | Изменено: для группового use теперь можно добавлять висящую запятую в конце списка.
7.2.0 | Изменено: Типы параметров из переопределенных методов и реализации интерфейсов теперь указывать не обязательно
7.2.0 | Изменено: если один абстрактный класс наследует от другого абстрактного класса, то он может переопределять его абстрактные методы.
7.1.0 | Изменено: для имен классов, интерфейсов и трейтов нельзя использовать слова: void и iterable.
7.1.0 | Добавлено: теперь можно задавать область видимости для констант классов.
7.0.0 | Устарело: Статический вызов нестатических методов.
7.0.0 | Устарело: конструктор в стиле PHP 4. Т.е. метод с именем идентичным имени класса, в котором он объявлен.
7.0.0 | Добавлено: групповая декларация use: классы, функции и константы, которые надо импортировать из одного и того же пространства имен теперь могут быть сгруппированы в одном выражении use.
7.0.0 | Добавлено: добавлена поддержка анонимных классов с помощью new class.
7.0.0 | Несовместимость: итерирование объектов не реализующих Traversable теперь ведет себя аналогично итерированию массива по ссылке.
7.0.0 | Изменено: Определение одинаковых (полностью совпадающих) свойств в двух трейтах больше не вызывает ошибку.
5.6.0 | Добавлено: метод __debugInfo().
5.5.0 | Добавлено: магическая константа ::class.
5.5.0 | Добавлено: finally в обработчик исключений.
5.4.0 | Добавлено: трейты.
5.4.0 | Изменено: Если абстрактный класс определяет сигнатуру для конструктора, то она будет принудительно применяться.
5.3.3 | Изменено: Методы с тем же именем, что и последний элемент пространства имен класса больше не будут рассматриваться как конструктор. Это изменение не влияет классы, не использующие пространства имен.
5.3.0 | Изменено: Больше не требуется, чтобы классы, реализующие интерфейсы с методами, которые имеют значения по умолчанию в прототипе, соответствовали значениям по умолчанию в интерфейсе.
5.3.0 | Изменено: Теперь стало возможным ссылаться на класс, используя переменную (например, echo $classname::constant;). Значение переменной не может быть ключевым словом (например, self, parent или static).
5.3.0 | Изменено: Ошибка E_WARNING происходит, если магические перегруженные методы объявлены как статические. Это также усиливает требование, что эти методы должны быть общедоступными.
5.3.0 | Изменено: До 5.3.0, исключения в функции __autoload() не могли быть перехвачены в блоке catch и приводили к фатальной ошибке. Сейчас исключения в функции __autoload могут быть перехвачены в блоке catch, но с одной оговоркой. Если перехватывается пользовательское исключение, то класс, обрабатывающий это исключение, должен быть доступен. Функция __autoload может быть использована рекурсивно для автозагрузки пользовательского класса обработки исключения.
5.3.0 | Добавлено: Метод __callStatic.
5.3.0 | Добавлено: Поддержка heredoc и nowdoc для констант и определений свойств класса. Примечание: Значение heredoc должны следовать тем же правилам, что и строки в двойных кавычках (например, без переменных внутри).
5.3.0 | Добавлено: Позднее статическое связывание.
5.3.0 | Добавлено: метод __invoke().
5.2.0 | Изменено: Метод __toString() вызывался только, когда он напрямую объединен с echo или print. Сейчас он вызывается в любом контексте строки (например, в printf() с модификатором %s), но не в других типах контекста (например, с модификатором %d). С PHP 5.2.0, преобразование объектов без метода __toString в строку выдает ошибку уровня E_RECOVERABLE_ERROR.
5.1.3 | Изменено: В предыдущих версиях PHP 5 использование var считалось устаревшим и выдавало ошибку E_STRICT. Сейчас это не считается устаревшим, поэтому ошибка больше не выдается.
5.1.0 | Изменено: Статический метод __set_state() теперь вызывается для классов, экспортируемых функцией var_export().
5.1.0 | Добавлены: методы __isset() и __unset().


Пространства имен

Содержание

  • Обзор пространств имен
  • Определение пространств имен
  • Определение подпространств имен
  • Описание нескольких пространств имен в одном файле
  • Использование пространства имен: основы
  • Пространства имен и динамические особенности языка
  • Ключевое слово namespace и константа __NAMESPACE__
  • Использование пространств имен: импорт/создание псевдонима имени
  • Глобальное пространство
  • Использование пространств имен: переход к глобальной функции/константе
  • Правила разрешения имен
  • Часто задаваемые вопросы (FAQ): вещи, которые вам необходимо знать о пространствах имен


Обзор пространств имен

(PHP 5 >= 5.3.0, PHP 7)

Что такое пространства имен? В широком смысле - это один из способов инкапсуляции элементов. Такое абстрактное понятие можно увидеть во многих местах. Например, в любой операционной системе директории служат для группировки связанных файлов и выступают в качестве пространства имен для находящихся в них файлов. В качестве конкретного примера файл foo.txt может находиться сразу в обеих директориях: /home/greg и /home/other, но две копии foo.txt не могут существовать в одной директории. Кроме того, для доступа к foo.txt извне директории /home/greg, мы должны добавить имя директории перед именем файла используя разделитель, чтобы получить /home/greg/foo.txt. Этот же принцип распространяется и на пространства имен в программировании.

Версия | Описание
7.0.0 | Добавлена возможность групповой декларации "use".

В PHP пространства имен используются для решения двух проблем, с которыми сталкиваются авторы библиотек и приложений при создании повторно используемых элементов кода, таких как классы и функции:

  1. Конфликт имен между вашим кодом и внутренними классами/функциями/константами PHP или сторонними.
  2. Возможность создавать псевдонимы (или сокращения) для Ну_Очень_Длинных_Имен, чтобы облегчить первую проблему и улучшить читаемость исходного кода.

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

Пример #1 Пример синтаксиса, использующего пространство имен

<?php
namespace my\name; // см. раздел "Определение пространств имен"
class MyClass {}
function myfunction() {}
const MYCONST = 1;

$a = new MyClass;
$c = new \my\name\MyClass; // см. раздел "Глобальная область видимости"

$a = strlen('hi'); // см. раздел "Использование пространств имен: возврат
                   // к глобальной функции/константе"

$d = namespace\MYCONST; // см. раздел "оператор пространства имен и
                        // константа __NAMESPACE__"
$d = __NAMESPACE__ . '\MYCONST';
echo constant($d); // см. раздел "Пространства имен и динамические особенности языка"
?>

Замечание: Имена пространств имен регистронезависимы.

Замечание:

Названия пространств имен PHP и составные названия, начинающиеся с этих (такие как PHP\Classes), являются зарезервированными для нужд языка и их не следует использовать в пользовательском коде.


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

(PHP 5 >= 5.3.0, PHP 7)

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

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

Пример #1 Объявление единого пространства имен

<?php
namespace MyProject;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }

?>
Только выражение declare может находиться перед объявлением пространства имен для указания кодировки файла. Кроме того, объявлению пространства имен не должен предшествовать не PHP-код, в том числе лишние пробелы:

Пример #2 Объявление простого пространства имен

<html>
<?php
namespace MyProject; // fatal error - объявление пространства имен должно быть первым выражением в скрипте
?>

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


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

(PHP 5 >= 5.3.0, PHP 7)

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

Пример #1 Определение пространства имен с иерархией

<?php
namespace MyProject\Sub\Level;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }

?>
Вышеприведенный пример создает константу MyProject\Sub\Level\CONNECT_OK, класс MyProject\Sub\Level\Connection и функцию MyProject\Sub\Level\connect.


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

(PHP 5 >= 5.3.0, PHP 7)

Несколько пространств имен также можно описать в одном файле с помощью двух допустимых синтаксических конструкций.

Пример #1 Описание нескольких пространств имен, простой синтаксис

<?php
namespace MyProject;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }

namespace AnotherProject;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
?>

Данный синтаксис не рекомендуется для комбинирования пространств имен в одном файле. Вместо этого рекомендуется использовать альтернативный синтаксис со скобками.

Пример #2 Описание нескольких пространств имен, синтаксис со скобками

<?php
namespace MyProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}

namespace AnotherProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}
?>

Настоятельно не рекомендуется при программировании комбинировать несколько пространств имен в один файл. Основным применением этому может быть объединение нескольких PHP-файлов в один файл.

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

Пример #3 Описание глобального и обычного пространства имен в одном файле

<?php
namespace MyProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}

namespace {       // глобальный код
session_start();
$a = MyProject\connect();
echo MyProject\Connection::start();
}
?>

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

Пример #4 Описание глобального и обычного пространства имен в одном файле

<?php
declare(encoding='UTF-8');
namespace MyProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}

namespace {      // глобальный код
session_start();
$a = MyProject\connect();
echo MyProject\Connection::start();
}
?>


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

(PHP 5 >= 5.3.0, PHP 7)

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

  1. Относительное имя файла, такое как foo.txt, преобразуемое в currentdirectory/foo.txt, где currentdirectory - текущая директория, в которой мы находимся. Тогда, если текущая директория /home/foo, то имя преобразуется в /home/foo/foo.txt.
  2. Относительное имя пути, такое как subdirectory/foo.txt, преобразуется в currentdirectory/subdirectory/foo.txt.
  3. Абсолютное имя пути, такое как /main/foo.txt, которое остается таким же: /main/foo.txt.
Тот же принцип применим и к элементам из пространств имен PHP. Например, имя класса может быть указано тремя способами:
  1. Неполные имена (имена классов без префикса), такие как $a = new foo(); или foo::staticmethod();. Если текущее пространство имен currentnamespace, то эти имена преобразуются в currentnamespace\foo. Если код находится в глобальном пространстве имен, то имена остаются такими же: foo. Предупреждение: неполные имена для функций и констант будут определяться в глобальном пространстве имен, если они не определены в текущем пространстве имен. Подробнее в Использование пространств имен: доступ к глобальным функциям и классам.
  2. Полные имена (имена классов с префиксами), такие как $a = new subnamespace\foo(); или subnamespace\foo::staticmethod();. Если текущее пространство имен currentnamespace, то эти имена преобразуются в currentnamespace\subnamespace\foo. Если код находится в глобальном пространстве имен, то имена преобразуются в subnamespace\foo.
  3. Абсолютные имена или имена с предшествующим префиксом, обозначающим глобальное пространство. $a = new \currentnamespace\foo(); или \currentnamespace\foo::staticmethod();. Имена всегда определяются так же, как и записаны: currentnamespace\foo.

Ниже приведен пример трех вариантов синтаксиса в реальном коде:

file1.php

<?php
namespace Foo\Bar\subnamespace;

const FOO = 1;
function foo() {}
class foo
{
    static function staticmethod() {}
}
?>

file2.php

<?php
namespace Foo\Bar;
include 'file1.php';

const FOO = 2;
function foo() {}
class foo
{
    static function staticmethod() {}
}

/* Неполные имена */
foo(); // определяется как функция Foo\Bar\foo
foo::staticmethod(); // определяется как класс Foo\Bar\foo с методом staticmethod
echo FOO; // определяется как константа Foo\Bar\FOO

/* Полные имена */
subnamespace\foo(); // определяется как функция Foo\Bar\subnamespace\foo
subnamespace\foo::staticmethod(); // определяется как класс Foo\Bar\subnamespace\foo
                                  // c методом staticmethod
echo subnamespace\FOO; // определяется как константа Foo\Bar\subnamespace\FOO

/* Абсолютные имена */
\Foo\Bar\foo(); // определяется как функция Foo\Bar\foo
\Foo\Bar\foo::staticmethod(); // определяется как класс Foo\Bar\foo с методом staticmethod
echo \Foo\Bar\FOO; // определяется как константа Foo\Bar\FOO
?>

Обратите внимание, что для доступа к любым глобальным классам, функциям или константам, может использоваться абсолютное имя, такое как \strlen(), или \Exception, или \INI_ALL.

Пример #1 Доступ к глобальным классам, функциям и константам из пространства имен

<?php
namespace Foo;

function strlen() {}
const INI_ALL = 3;
class Exception {}

$a = \strlen('hi'); // вызывает глобальную функцию strlen
$b = \INI_ALL; // получает доступ к глобальной константе INI_ALL
$c = new \Exception('error'); // Создает экземпляр глобального класса Exception
?>


Пространства имен и динамические особенности языка

(PHP 5 >= 5.3.0, PHP 7)

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

Пример #1 Динамически доступные элементы

example1.php:

<?php
class classname
{
    function __construct()
    {
        echo __METHOD__,"\n";
    }
}
function funcname()
{
    echo __FUNCTION__,"\n";
}
const constname = "global";

$a = 'classname';
$obj = new $a; // выводит classname::__construct
$b = 'funcname';
$b(); // выводит funcname
echo constant('constname'), "\n"; // выводит global
?>
Необходимо использовать абсолютное имя (имя класса с префиксом пространства имен). Обратите внимание, что нет никакой разницы между полным именем и абсолютным внутри динамического имени класса, функции или константы. Начальный обратный слеш не является необходимым.

Пример #2 Динамически доступные элементы пространства имен

<?php
namespace namespacename;
class classname
{
    function __construct()
    {
        echo __METHOD__,"\n";
    }
}
function funcname()
{
    echo __FUNCTION__,"\n";
}
const constname = "namespaced";

include 'example1.php';

$a = 'classname';
$obj = new $a; // выводит classname::__construct
$b = 'funcname';
$b(); // выводит funcname
echo constant('constname'), "\n"; // выводит global

/* обратите внимание, что при использовании двойных кавычек символ обратного слеша должен быть заэкранирован. Например, "\\namespacename\\classname" */
$a = '\namespacename\classname';
$obj = new $a; // выводит namespacename\classname::__construct
$a = 'namespacename\classname';
$obj = new $a; // также выводит namespacename\classname::__construct
$b = 'namespacename\funcname';
$b(); // выводит namespacename\funcname
$b = '\namespacename\funcname';
$b(); // также выводит namespacename\funcname
echo constant('\namespacename\constname'), "\n"; // выводит namespaced
echo constant('namespacename\constname'), "\n"; // также выводит namespaced
?>

Обязательно прочитайте примечание об экранировании имен пространства имен в строках.


Ключевое слово namespace и константа __NAMESPACE__

(PHP 5 >= 5.3.0, PHP 7)

PHP поддерживает два способа доступа к абстрактным элементам в текущем пространстве имен таким, как магическая константа __NAMESPACE__ и ключевое слово namespace.

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

Пример #1 Пример использование константы __NAMESPACE__ в коде с пространством имен

<?php
namespace MyProject;

echo '"', __NAMESPACE__, '"'; // выводит "MyProject"
?>

Пример #2 Пример использование константы __NAMESPACE__ в глобальном пространстве

<?php

echo '"', __NAMESPACE__, '"'; // выводит ""
?>
Константа __NAMESPACE__ полезна для динамически конструируемых имен, например:

Пример #3 использование константы __NAMESPACE__ для динамического конструирования имени

<?php
namespace MyProject;

function get($classname)
{
    $a = __NAMESPACE__ . '\\' . $classname;
    return new $a;
}
?>

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

Пример #4 Оператор namespace, внутри пространства имен

<?php
namespace MyProject;

use blah\blah as mine; // см. "Использование пространств имен: импорт/создание псевдонима имени"

blah\mine(); // вызывает функцию MyProject\blah\mine()
namespace\blah\mine(); // вызывает функцию MyProject\blah\mine()

namespace\func(); // вызывает функцию MyProject\func()
namespace\sub\func(); // вызывает функцию MyProject\sub\func()
namespace\cname::method(); // вызывает статический метод "method" класса MyProject\cname
$a = new namespace\sub\cname(); // Создает экземпляр класса MyProject\sub\cname
$b = namespace\CONSTANT; // присваивает значение константы MyProject\CONSTANT переменной $b
?>

Пример #5 Оператор namespace в глобальном коде

<?php

namespace\func(); // вызывает функцию func()
namespace\sub\func(); // вызывает функцию sub\func()
namespace\cname::method(); // вызывает статический метод "method" класса cname
$a = new namespace\sub\cname(); // Создает экземпляр класса sub\cname
$b = namespace\CONSTANT; // присваивает значение константы CONSTANT переменной $b
?>


Использование пространств имен: импорт/создание псевдонима имени

(PHP 5 >= 5.3.0, PHP 7)

Возможность ссылаться на внешнее абсолютное имя по псевдониму или импортированию - это важная особенность пространств имен. Это похоже на возможность файловых систем unix создавать символические ссылки на файл или директорию.

Все версии PHP, поддерживающие пространства имен, поддерживают три вида создания псевдонима имени или импорта: создание псевдонима для имени класса, создание псевдонима для имени интерфейса и для имени пространства имен. PHP 5.6+ также поддерживает импорт функций и имен констант.

В PHP создание псевдонима имени выполняется с помощью оператора use. Вот пример, показывающий 5 типов импорта:

Пример #1 импорт/создание псевдонима имени с помощью оператора use

<?php
namespace foo;
use My\Full\Classname as Another;

// это тоже самое, что и использование My\Full\NSname as NSname
use My\Full\NSname;

// импортирование глобального класса
use ArrayObject;

// импортирование функции (PHP 5.6+)
use function My\Full\functionName;

// псевдоним функции (PHP 5.6+)
use function My\Full\functionName as func;

// импортирование константы (PHP 5.6+)
use const My\Full\CONSTANT;

$obj = new namespace\Another; // создает экземпляр класса foo\Another
$obj = new Another; // создает объект класса My\Full\Classname
NSname\subns\func(); // вызывает функцию My\Full\NSname\subns\func
$a = new ArrayObject(array(1)); // создает объект класса ArrayObject
// без выражения "use ArrayObject" мы создадим объект класса foo\ArrayObject
func(); // вызывает функцию My\Full\functionName
echo CONSTANT; // выводит содержимое константы My\Full\CONSTANT
?>
Обратите внимание, что для имен в пространстве имен (абсолютные имена, содержащие разделитель пространств имен, такие как Foo\Bar, в отличие от глобальных имен, которые его не содержат, такие как FooBar) нет необходимости в начальном обратном слеше (\) и его присутствие там не рекомендуется, так как импортируемые имена должны быть абсолютными и не обрабатываются относительно текущего пространства имен.

PHP дополнительно поддерживает удобное сокращение для задания нескольких операторов use в одной и той же строке

Пример #2 импорт/создание псевдонима имени с помощью оператора use, комбинирование нескольких операторов use

<?php
use My\Full\Classname as Another, My\Full\NSname;

$obj = new Another; // создает объект класса My\Full\Classname
NSname\subns\func(); // вызывает функцию My\Full\NSname\subns\func
?>

Импорт выполняется во время компиляции и поэтому не влияет на имена динамических классов, функций или констант.

Пример #3 Импорт и динамические имена

<?php
use My\Full\Classname as Another, My\Full\NSname;

$obj = new Another; // создает объект класса My\Full\Classname
$a = 'Another';
$obj = new $a;      // создает объект класса Another
?>

В дополнение, импорт распространяется только на неполные и полные имена. Абсолютные имена не затрагиваются операцией импорта.

Пример #4 Импортирование и абсолютные имена

<?php
use My\Full\Classname as Another, My\Full\NSname;

$obj = new Another; // создает объект класса My\Full\Classname
$obj = new \Another; // создает объект класса Another
$obj = new Another\thing; // создает объект класса My\Full\Classname\thing
$obj = new \Another\thing; // создает объект класса Another\thing
?>

Обзор правил для импорта

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

Пример #5 Недопустимое правило импорта

<?php
namespace Languages;

function toGreenlandic()
{
    use Languages\Danish;

    //...
}
?>

Замечание:

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

Описание группирования в одном операторе use

Начиная с PHP 7.0, классы, функции и константы, импортируемые из одного и того же namespace, могут группироваться в одном операторе use.

<?php

// Код до PHP 7
use some\namespace\ClassA;
use some\namespace\ClassB;
use some\namespace\ClassC as C;

use function some\namespace\fn_a;
use function some\namespace\fn_b;
use function some\namespace\fn_c;

use const some\namespace\ConstA;
use const some\namespace\ConstB;
use const some\namespace\ConstC;

// Код на PHP 7+
use some\namespace\{ClassA, ClassB, ClassC as C};
use function some\namespace\{fn_a, fn_b, fn_c};
use const some\namespace\{ConstA, ConstB, ConstC};


Глобальное пространство

(PHP 5 >= 5.3.0, PHP 7)

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

Пример #1 Использованиие глобального пространства и его задание

<?php
namespace A\B\C;

/* Эта функция является A\B\C\fopen */
function fopen() {
     /* ... */
     $f = \fopen(...); // вызов глобальной функции fopen
     return $f;
}
?>


Использование пространств имен: переход к глобальной функции/константе

(PHP 5 >= 5.3.0, PHP 7)

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

Пример #1 Доступ к глобальным классам внутри пространства имен

<?php
namespace A\B\C;
class Exception extends \Exception {}

$a = new Exception('hi'); // $a - это объект класса A\B\C\Exception
$b = new \Exception('hi'); // $b - это объект класса Exception

$c = new ArrayObject; // фатальная ошибка, класс A\B\C\ArrayObject не найден
?>

Для функций и констант, PHP будет прибегать к глобальным функциям или константам, если функция или константа не существует в пространстве имен.

Пример #2 Необходимость прибегнуть к глобальным функциям/константам внутри пространства имен

<?php
namespace A\B\C;

const E_ERROR = 45;
function strlen($str)
{
    return \strlen($str) - 1;
}

echo E_ERROR, "\n"; // выводит "45"
echo INI_ALL, "\n"; // выводит "7" - прибегнет к глобальной INI_ALL

echo strlen('hi'), "\n"; // выводит "1"
if (is_array('hi')) { // выводит строку "это не массив"
    echo "это массив\n";
} else {
    echo "это не массив\n";
}
?>


Правила разрешения имен

(PHP 5 >= 5.3.0, PHP 7)

Для этих правил здесь приведены несколько важных определений:

Определения имени пространства имен
Неполное имя

Это идентификатор без разделителя пространств имен, например, Foo

Полное имя

Это идентификатор с разделителем пространств имен, например, Foo\Bar

Абсолютное имя

Это идентификатор с разделителем пространств имен, который начинается с разделителя пространств имен, например, \Foo\Bar. Пространство имен \Foo также является абсолютным именем.

Относительное имя

Это идентификатор, начинающийся с namespace, такой как namespace\Foo\Bar.

Имена разрешаются согласно следующим правилам:

  1. Абсолютные имена всегда разрешаются без ведущего разделителя пространства имен. Например, \A\B разрешается в A\B.
  2. Относительные имена всегда разрешаются в имена с заменой namespace на текущее пространство имен. Если имя встречается в глобальном пространстве имен, префикс namespace\ просто удаляется. К примеру namespace\A внутри пространства имен X\Y разрешается в X\Y\A. То же самое имя в глобальном пространстве имен разрешается в A.
  3. Для полных имен первый сегмент преобразуется в соответствии с текущей таблицей импорта класса или пространства имен. Например, пространство имен A\B\C импортировано как C, тогда имя C\D\E преобразуется в A\B\C\D\E.
  4. Для неполных имен, если не применяется никакого правила импорта, текущее пространство имен добавляется к имени. Например, имя C\D\E внутри пространства имен A\B, преобразуется в A\B\C\D\E.
  5. Для неполных имен имена преобразуются текущей таблице импорта в зависимости от типа элемента. Это означает, что имена классов преобразуются согласно таблице импорта классов, имена функций - согласно таблице импорта функций и константы согласно таблице импорта констант. К примеру, после use A\B\C;, использование new C() разрешается как A\B\C(). Аналогично, после use function A\B\fn;, использование fn() разрешается как A\B\fn.
  6. Неполные имена, если отсутствуют ограничения в таблице импорта и если они используются как класс, то они разрешаются с префиксом текущего пространства имен. Например, new C() внутри пространства имен A\B разрешаются как A\B\C.
  7. Неполные имена, если отсутствуют ограничения в таблице импорта и если они используются как функция или константа, а код находится не в глобальном пространстве имен, имена разрешаются во время исполнения. Например код, в пространстве имен A\B, вызывающий функцию foo(), разрешается так:
    1. Производится поиск функции из текущего пространства имен: A\B\foo().
    2. PHP пытается найти и вызвать функцию глобального пространства foo().

Пример #1 Примеры разрешения имен

<?php
namespace A;
use B\D, C\E as F;

// вызовы функций

foo();      // сперва пытается вызвать "foo", определенную в пространстве имен "A",
            // затем вызывает глобальную функцию "foo"

\foo();     // вызывает функцию "foo", определенную в глобальном пространстве

my\foo();   // вызывает функцию "foo", определенную в пространстве "A\my"

F();        // сперва пытается вызвать "F", определенную в пространстве имен "A",
            // затем вызывает глобальную функцию "F"

// ссылки на классы

new B();    // создает объект класса "B", определенного в пространстве имен "A".
            // если не найден, то пытается сделать автозагрузку класса "A\B"

new D();    // используя правила импорта, создает объект класса "D", определенного в пространстве имен "B"
            // если не найден, то пытается сделать автозагрузку класса "B\D"

new F();    // используя правила импорта, создает объект класса "E", определенного в пространстве имен "C"
            // если не найден, то пытается сделать автозагрузку класса "C\E"

new \B();   // создает объект класса "B", определенного в глобальном пространстве,
            // если не найден, то пытается сделать автозагрузку класса "B"

new \D();   // создает объект класса "D", определенного в глобальном пространстве,
            // если не найден, то пытается сделать автозагрузку класса "D"

new \F();   // создает объект класса "F", определенного в глобальном пространстве,
            // если не найден, то пытается сделать автозагрузку класса "F"

// статические методы/функции пространства имен из другого пространства имен

B\foo();    // вызывает функцию "foo" из пространства имен "A\B"

B::foo();   // вызывает метод "foo" из класса "B", определенного в пространстве имен "A"
            // если класс "A\B" не найден, то пытается сделать автозагрузку класса "A\B"

D::foo();   // используя правила импорта, вызывает метод "foo" класса "D", определенного в пространстве имен "B"
            // если класс "B\D" не найден, то пытается сделать автозагрузку класса "B\D"

\B\foo();   // вызывает функцию "foo" из пространства имен "B"

\B::foo();  // вызывает метод "foo" класса "B" из глобального пространства
            // если класс "B" не найден, то пытается сделать автозагрузку класса "B"

// статические методы/функции пространства имен из текущего пространства имен

A\B::foo();   // вызывает метод "foo" класса "B" из пространства имен "A\A"
              // если класс "A\A\B" не найден, то пытается сделать автозагрузку класса "A\A\B"

\A\B::foo();  // вызывает метод "foo" класса "B" из пространства имен "A"
              // если класс "A\B" не найден, то пытается сделать автозагрузку класса "A\B"
?>


Часто задаваемые вопросы (FAQ): вещи, которые вам необходимо знать о пространствах имен

(PHP 5 >= 5.3.0, PHP 7)

Этот список вопросов разделен на две части: общие вопросы и некоторые особенности реализации, которые полезны для более полного понимания.

Сперва, общие вопросы.

  1. Если я не использую пространства имен, следует ли считать что-либо из этого важным?
  2. Как мне использовать внутренние или глобальные классы в пространстве имен?
  3. Как мне использовать функции классов в пространствах имен, или константы в их собственном пространстве имен?
  4. Как такое имя как \my\name или \name преобразуется?
  5. Как такое имя, как my\name преобразуется?
  6. Как неполное имя класса такое как name преобразуется?
  7. Как неполное имя функции или неполное имя константы такое как name преобразуется?

Некоторые детали реализации пространств имен, которые полезно понимать.

  1. Импортируемые имена не могут конфликтовать с классами, определенными в том же файле.
  2. Вложенные пространства имен недопустимы.
  3. Ни функции, ни константы не могут быть заимпортированы с помощью оператора use.
  4. Динамические имена пространств имен (идентификаторы, взятые в кавычки) должны экранировать символ обратного слеша.
  5. Ссылаться на неопределенные константы, используя обратный слеш, нельзя. Выводится фатальная ошибка
  6. Невозможно переопределить специальные константы, такие как NULL, TRUE, FALSE, ZEND_THREAD_SAFE или ZEND_DEBUG_BUILD

Если я не использую пространства имен, следует ли считать что-либо из этого важным?

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

Пример #1 Доступ к глобальным классам вне пространства имен

<?php
$a = new \stdClass;
?>

Это функционально эквивалентно следующему:

Пример #2 Доступ к глобальным классам вне пространства имен

<?php
$a = new stdClass;
?>

Как мне использовать внутренние или глобальные классы в пространстве имен?

Пример #3 Доступ ко внутренним классам в пространствах имен

<?php
namespace foo;
$a = new \stdClass;

function test(\ArrayObject $typehintexample = null) {}

$a = \DirectoryIterator::CURRENT_AS_FILEINFO;

// расширение внутреннего или глобального класса
class MyException extends \Exception {}
?>

Как мне использовать функции классов в пространствах имен или константы в их собственном пространстве имен?

Пример #4 Доступ ко внутренним классам, функциям или константам в пространствах имен

<?php
namespace foo;

class MyClass {}

// использование класса из текущего пространства имен
function test(MyClass $typehintexample = null) {}
// другой способ использовать класс из текущего пространства имен
function test(\foo\MyClass $typehintexample = null) {}

// расширение класса из текущего пространства имен
class Extended extends MyClass {}

// доступ к глобальной функции
$a = \globalfunc();

// доступ к глобальной константе
$b = \INI_ALL;
?>

Как такое имя как \my\name или \name преобразуется?

Имена, которые начинаются с \ всегда преобразуются к тому как они выглядят, т.е. \my\name - это на самом деле my\name, и \Exception - это Exception.

Пример #5 Абсолютные имена

<?php
namespace foo;
$a = new \my\name(); // создает экземпляр класса "my\name"
echo \strlen('hi'); // вызывает функцию "strlen"
$a = \INI_ALL; // переменной $a присваивается значение константы "INI_ALL"
?>

Как такое имя, как my\name преобразуется?

Имена, которые содержат обратный слеш, но не начинаются с него, такие как my\name могут быть преобразованы двумя различными способами.

Если присутствует импортирующее выражение, которое создает синоним my другого имени, то этот синоним применяется к my в my\name.

В ином случае, текущее имя пространства имен становится префиксом к my\name.

Пример #6 Полные имена

<?php
namespace foo;
use blah\blah as foo;

$a = new my\name(); // создает экземпляр класса "foo\my\name"
foo\bar::name(); // вызывает статический метод "name" в классе "blah\blah\bar"
my\bar(); // вызывает функцию "foo\my\bar"
$a = my\BAR; // присваивает переменной $a значение константы "foo\my\BAR"
?>

Как неполное имя класса такое как name преобразуется?

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

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

В ином случае, текущее имя пространства имен становится префиксом к my\name.

Пример #7 Неполные имена классов

<?php
namespace foo;
use blah\blah as foo;

$a = new name(); // создает экземпляр класса "foo\name"
foo::name(); // вызывает статический метод "name" в классе "blah\blah"
?>

Как неполное имя функции или неполное имя константы такое как name преобразуется?

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

Сперва, текущее имя пространства имен становится префиксом к name.

Затем, если константа или функция name не существует в текущем пространстве имен, используется глобальная константа или функция name, если она существует.

Пример #8 Неполные имена функций или констант

<?php
namespace foo;
use blah\blah as foo;

const FOO = 1;

function my() {}
function foo() {}
function sort(&$a)
{
    \sort($a); // вызывает глобальную функцию "sort"
    $a = array_flip($a);
    return $a;
}

my(); // вызывает "foo\my"
$a = strlen('hi'); // вызывает глобальную функцию "strlen", потому что "foo\strlen" не существует
$arr = array(1,3,2);
$b = sort($arr); // вызывает функцию "foo\sort"
$c = foo(); // вызывает функцию "foo\foo" - импорт не применяется

$a = FOO; // присваивает переменной $a значение константы "foo\FOO" - импорт не применяется
$b = INI_ALL; // присваивает переменной $b значение глобальной константы "INI_ALL"
?>

Импортируемые имена не могут конфликтовать с классами, определенными в том же файле.

Следующие комбинации скриптов допустимы:

file1.php

<?php
namespace my\stuff;
class MyClass {}
?>

another.php

<?php
namespace another;
class thing {}
?>

file2.php

<?php
namespace my\stuff;
include 'file1.php';
include 'another.php';

use another\thing as MyClass;
$a = new MyClass; // создает экземпляр класса "thing" из пространства имен "another"
?>

Конфликт имен отсутствует даже несмотря на то, что класс MyClass существует внутри пространства имен my\stuff, потому что определение MyClass находится в отдельном файле. Однако следующий пример приводит к фатальной ошибке с конфликтом имен, потому что класс MyClass определен в том же файле, где находится оператор use.

<?php
namespace my\stuff;
use another\thing as MyClass;
class MyClass {} // фатальная ошибка: MyClass конфликтует с выражением импорта
$a = new MyClass;
?>

Вложенные пространства имен недопустимы.

PHP не позволяет вложение пространств имен одно в другое

<?php
namespace my\stuff {
    namespace nested {
        class foo {}
    }
}
?>
Однако, сымитировать вложенные пространства имен так:
<?php
namespace my\stuff\nested {
    class foo {}
}
?>

До PHP 5.6 ни функции, ни константы не могли быть импортированы с помощью оператора use.

До PHP 5.6 единственные элементы, которые подвержены действию оператора use - это пространства имен и имена классов. Для сокращения длинных имен констант или функций, заимпортируйте их содержимое в пространство имен.

<?php
namespace mine;
use ultra\long\ns\name;

$a = name\CONSTANT;
name\func();
?>
Начиная с PHP 5.6 стало возможным импортирование и создание пседонимов для функций и имен констант.

Динамические имена пространств имен (идентификаторы, взятые в кавычки) должны экранировать символ обратного слеша.

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

Пример #9 Подводные камни при использовании имени пространства имен внутри строки с двойными кавычками

<?php
$a = "dangerous\name"; // \n - это переход на новую строку внутри строки с двойными кавычками!
$obj = new $a;

$a = 'not\at\all\dangerous'; // а тут нет проблем.
$obj = new $a;
?>
Внутри строк, заключенных в одинарные кавычки, обратный слеш в качестве разделителя более безопасен, но по-прежнему рекомендуемая практика экранирования обратного слеша во всех строках является наилучшим вариантом.

Ссылаться на неопределенные константы, используя обратный слеш, нельзя. Выводится фатальная ошибка

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

Пример #10 Неопределенные константы

<?php
namespace bar;
$a = FOO; // выводит предупреждение: undefined constants "FOO" assumed "FOO";
$a = \FOO; // фатальная ошибка: undefined namespace constant FOO
$a = Bar\FOO; // фатальная ошибка: undefined namespace constant bar\Bar\FOO
$a = \Bar\FOO; // фатальная ошибка: undefined namespace constant Bar\FOO
?>

Невозможно переопределить специальные константы, такие как NULL, TRUE, FALSE, ZEND_THREAD_SAFE или ZEND_DEBUG_BUILD

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

Пример #11 Неопределенные константы

<?php
namespace bar;
const NULL = 0; // Фатальная ошибка;
const true = 'stupid'; // также фатальная ошибка;
// и т.д.
?>


Ошибки

Содержание

  • Основы
  • Ошибки в PHP 7

Введение

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


Основы

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

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

Обработка ошибок

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

На стадии разработки, обязательно настройте параметр error_reporting на значение E_ALL, так как вам необходимо знать обо всех ошибках для их решения на этой стадии. Когда продукт готов, вы можете изменить значение на менее подробное, вроде E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED, но во многих случаях значение E_ALL также желательно, так как оно может предупреждать заранее о других возможных ошибках.

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

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

Пользовательская обработка ошибок

Если вас не устраивает работа предустановленного обработчика ошибок, вы также можете обрабатывать множество видов ошибки с помощью своего обработчика, которого можно установить вызовом функции set_error_handler(). Некоторые ошибки не могут обрабатываться пользовательским обработчиком, но те, которые могут, обрабатываются по вашему желанию: например, ваш скрипт может выдавать пользователю любую отдельную страницу ошибки, а подробную информацию записывать в лог или отсылать по почте.


Ошибки в PHP 7

В PHP 7 механизм сообщения об ошибках был сильно изменен. Традиционное оповещение об ошибке в PHP 5 было заменено новым механизмом, в котором большинство ошибок вызываются с помощью исключений класса Error.

Как и обычные исключения, исключения Error вызываются до появления первого соответствующего блока catch. Если соответствующие блоки не предусмотрены, то будет вызван любой обработчик исключений, установленный с помощью set_exception_handler(). В случае отсутствия обработчика по умолчанию, исключение будет конвертировано в фатальную ошибку и будет обработано как традиционная ошибка.

Поскольку класс Error не наследуется от класса Exception, блок catch (Exception $e) { ... } для обработки неперехваченных исключений PHP 5 не может перехватить исключения Error. Для их перехвата используйте блок catch (Error $e) { ... } или установите обработчик исключений с помощью set_exception_handler().

Иерархия Error

  • Throwable
    • Error
      • ArithmeticError
        • DivisionByZeroError
      • AssertionError
      • CompileError
        • ParseError
      • TypeError
        • ArgumentCountError
    • Exception
      • ...


Исключения

Содержание

  • Наследование исключений

Модель исключений (exceptions) в PHP похожа с используемыми в других языках программирования. Исключение можно сгенерировать (выбросить) при помощи оператора throw, и можно перехватить (поймать) оператором catch. Код генерирующий исключение, должен быть окружен блоком try, для того, чтобы можно было перехватить исключение. Каждый блок try должен иметь как минимум один соответствующий ему блок catch или finally.

Генерируемый объект должен принадлежать классу Exception или наследоваться от Exception. Попытка сгенерировать исключение другого класса приведет к фатальной ошибке PHP.

catch

Можно использовать несколько блоков catch, перехватывающих различные классы исключений. Нормальное выполнение (когда не генерируются исключения в блоках try) будет продолжено за последним блоком catch. Исключения могут быть сгенерированы (или вызваны еще раз) оператором throw внутри блока catch.

При генерации исключения код, следующий после описываемого выражения, не будет выполнен, а PHP попытается найти первый блок catch, перехватывающий исключение данного класса. Если исключение не будет перехвачено, PHP выдаст фатальную ошибку: "Uncaught Exception ..." (Неперехваченное исключение), если не был определен обработчик ошибок при помощи функции set_exception_handler().

В PHP 7.1 и выше, блок catch может принимать несколько типов исключений с помощью символа (|). Это полезно, когда разные исключения из разных иерархий классов обрабатываются одинаково.

finally

В PHP 5.5 и более поздних версиях блок finally также можно использовать после или вместо блока catch. Код в блоке finally всегда будет выполняться после кода в блоках try и catch, независимо от того, было ли выброшено исключение, перед тем как продолжится нормальное выполнение кода.

Одно важное взаимодействие происходит между блоком finally и оператором return. Если оператор return встречается внутри блоков try или catch, блок finally все равно будет выполнен. Кроме того, оператор return выполняется, когда встречается, но результат будет возвращен после выполнения блока finally. Если блок finally также содержит оператор return, возвращается значение, указанное в блоке finally.

Примечания

Замечание:

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

Подсказка

Стандартная библиотека PHP (SPL) предоставляет хороший набор встроенных классов исключений.

Примеры

Пример #3 Выбрасывание исключений

<?php
function inverse($x) {
    if (!$x) {
        throw new Exception('Деление на ноль.');
    }
    return 1/$x;
}

try {
    echo inverse(5) . "\n";
    echo inverse(0) . "\n";
} catch (Exception $e) {
    echo 'Выброшено исключение: ',  $e->getMessage(), "\n";
}

// Продолжение выполнения
echo "Привет, мир\n";
?>

Результат выполнения данного примера:

0.2
Выброшено исключение: Деление на ноль.
Привет, мир

Пример #4 Обработка исключений с помощью блока finally

<?php
function inverse($x) {
    if (!$x) {
        throw new Exception('Деление на ноль.');
    }
    return 1/$x;
}

try {
    echo inverse(5) . "\n";
} catch (Exception $e) {
    echo 'Поймано исключение: ',  $e->getMessage(), "\n";
} finally {
    echo "Первый блок finally.\n";
}

try {
    echo inverse(0) . "\n";
} catch (Exception $e) {
    echo 'Поймано исключение: ',  $e->getMessage(), "\n";
} finally {
    echo "Второй блок finally.\n";
}

// Продолжение нормального выполнения
echo "Привет, мир\n";
?>

Результат выполнения данного примера:

0.2
Первый блок finally.
Поймано исключение: Деление на ноль.
Второй блок finally.
Привет, мир

Пример #5 Взаимодействие между блоками finally и return

<?php

function test() {
    try {
        throw new Exception('foo');
    } catch (Exception $e) {
        return 'catch';
    } finally {
        return 'finally';
    }
}

echo test();
?>

Результат выполнения данного примера:

finally

Пример #6 Вложенные исключения

<?php

class MyException extends Exception { }

class Test {
    public function testing() {
        try {
            try {
                throw new MyException('foo!');
            } catch (MyException $e) {
                // повторный выброс исключения
                throw $e;
            }
        } catch (Exception $e) {
            var_dump($e->getMessage());
        }
    }
}

$foo = new Test;
$foo->testing();

?>

Результат выполнения данного примера:

string(4) "foo!"

Пример #7 Обработка нескольких исключений в одном блоке catch

<?php

class MyException extends Exception { }

class MyOtherException extends Exception { }

class Test {
    public function testing() {
        try {
            throw new MyException();
        } catch (MyException | MyOtherException $e) {
            var_dump(get_class($e));
        }
    }
}

$foo = new Test;
$foo->testing();

?>

Результат выполнения данного примера:

string(11) "MyException"


Наследование исключений

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

Пример #1 Встроеный класс Exception

<?php
class Exception extends Throwable
{
    protected $message = 'Unknown exception';   // сообщение об исключении
    private   $string;                          // свойство для __toString
    protected $code = 0;                        // пользовательский код исключения
    protected $file;                            // файл, в котором было выброшено исключение
    protected $line;                            // строка, в которой было выброшено исключение
    private   $trace;                           // трассировка вызовов методов и функций
    private   $previous;                        // предыдущее исключение, если исключение вложенное

    public function __construct($message = null, $code = 0, Exception $previous = null);

    final private function __clone();           // запрещает клонирования исключения

    final public  function getMessage();        // сообщение исключения
    final public  function getCode();           // код исключения
    final public  function getFile();           // файл, где выброшено исключение
    final public  function getLine();           // строка, на которой выброшено исключение
    final public  function getTrace();          // массив backtrace()
    final public  function getPrevious();       // предыдущее исключение
    final public  function getTraceAsString();  // отформатированная строка трассировки

    // Переопределяемый
    public function __toString();               // отформатированная строка для отображения
}
?>

Если класс, наследуемый от Exception переопределяет конструктор, необходимо вызвать в конструкторе parent::__construct(), чтобы быть уверенным, что все доступные данные были правильно присвоены. Метод __toString() может быть переопределен, чтобы обеспечить нужный вывод, когда объект преобразуется в строку.

Замечание:

Исключения нельзя клонировать. Попытка клонировать исключение приведет к неисправимой ошибке E_ERROR.

Пример #2 Наследование класса Exception (PHP 5.3.0+)

<?php
/**
 * Определим свой класс исключения
 */
class MyException extends Exception
{
    // Переопределим исключение так, что параметр message станет обязательным
    public function __construct($message, $code = 0, Exception $previous = null) {
        // некоторый код

        // убедитесь, что все передаваемые параметры верны
        parent::__construct($message, $code, $previous);
    }

    // Переопределим строковое представление объекта.
    public function __toString() {
        return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
    }

    public function customFunction() {
        echo "Мы можем определять новые методы в наследуемом классе\n";
    }
}

/**
 * Создадим класс для тестирования исключения
 */
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 new MyException('1 - неправильный параметр', 5);
                break;

            case self::THROW_DEFAULT:
                // Выбрасываем встроеное исключение
                throw new Exception('2 - недопустимый параметр', 6);
                break;

            default:
                // Никаких исключений, объект будет создан.
                $this->var = $avalue;
                break;
        }
    }
}

// Пример 1
try {
    $o = new TestException(TestException::THROW_CUSTOM);
} catch (MyException $e) {      // Будет перехвачено
    echo "Поймано собственное переопределенное исключение\n", $e;
    $e->customFunction();
} catch (Exception $e) {        // Будет пропущено
    echo "Поймано встроенное исключение\n", $e;
}

// Отсюда будет продолжено выполнение программы
var_dump($o); // Null
echo "\n\n";

// Пример 2
try {
    $o = new TestException(TestException::THROW_DEFAULT);
} catch (MyException $e) {      // Тип исключения не совпадет
    echo "Поймано переопределенное исключение\n", $e;
    $e->customFunction();
} catch (Exception $e) {        // Будет перехвачено
    echo "Перехвачено встроенное исключение\n", $e;
}

// Отсюда будет продолжено выполнение программы
var_dump($o); // Null
echo "\n\n";

// Пример 3
try {
    $o = new TestException(TestException::THROW_CUSTOM);
} catch (Exception $e) {        // Будет перехвачено
    echo "Поймано встроенное исключение\n", $e;
}

// Продолжение исполнения программы
var_dump($o); // Null
echo "\n\n";

// Пример 4
try {
    $o = new TestException();
} catch (Exception $e) {        // Будет пропущено, т.к. исключение не выбрасывается
    echo "Поймано встроенное исключение\n", $e;
}

// Продолжение выполнения программы
var_dump($o); // TestException
echo "\n\n";
?>

Замечание:

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

<?php
/**
 * Определим свой класс исключения
 */
class MyException extends Exception
{
    // Переопределим исключение так, что параметр message станет обязательным
    public function __construct($message, $code = 0) {
        // некоторый код

        // убедитесь, что все передаваемые параметры верны
        parent::__construct($message, $code);
    }

    // Переопределим строковое представление объекта.
    public function __toString() {
        return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
    }

    public function customFunction() {
        echo "Мы можем определять новые методы в наследуемом классе\n";
    }
}
?>


Генераторы

Содержание

  • Знакомство с генераторами
  • Синтаксис генераторов
  • Сравнение генераторов с объектами класса Iterator


Знакомство с генераторами

(PHP 5 >= 5.5.0, PHP 7)

Генераторы предоставляют лёгкий способ реализации простых итераторов без использования дополнительных ресурсов или сложностей, связанных с реализацией класса, реализующего интерфейс Iterator.

Генератор позволяет вам писать код, использующий foreach для перебора набора данных без необходимости создания массива в памяти, что может привести к превышению лимита памяти, либо потребует довольно много времени для его создания. Вместо этого, вы можете написать функцию-генератор, которая, по сути, является обычной функцией, за исключением того, что вместо возврата единственного значения, генератор может возвращать (yield) столько раз, сколько необходимо для генерации значений, позволяющих перебрать исходный набор данных.

Наглядным примером вышесказанного может послужить использование функции range() как генератора. Стандартная функция range() генерирует массив, состоящий из значений, и возвращает его, что может привести к генерации огромных массивов данных. Например, вызов range(0, 1000000) приведёт к использованию более 100 МБ оперативной памяти.

В качестве альтернативы мы можем создать генератор xrange(), который использует память только для создания объекта Iterator и сохранения текущего состояния, что потребует не больше 1 килобайта памяти.

Пример #1 Реализация range() как генератора

<?php
function xrange($start, $limit, $step = 1) {
    if ($start <= $limit) {
        if ($step <= 0) {
            throw new LogicException('Шаг должен быть положительным');
        }

        for ($i = $start; $i <= $limit; $i += $step) {
            yield $i;
        }
    } else {
        if ($step >= 0) {
            throw new LogicException('Шаг должен быть отрицательным');
        }

        for ($i = $start; $i >= $limit; $i += $step) {
            yield $i;
        }
    }
}

/* Обратите внимание, что и range() и xrange() дадут один и тот же вывод */

echo 'Нечетные однозначные числа с помощью range():  ';
foreach (range(1, 9, 2) as $number) {
    echo "$number ";
}
echo "\n";

echo 'Нечетные однозначные числа с помощью xrange(): ';
foreach (xrange(1, 9, 2) as $number) {
    echo "$number ";
}
?>

Результат выполнения данного примера:

Нечетные однозначные числа с помощью range():  1 3 5 7 9
Нечетные однозначные числа с помощью xrange(): 1 3 5 7 9

Объект Generator

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


Синтаксис генераторов

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

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

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

Замечание:

В PHP 5 генераторы не могут возвращать значений и попытка сделать это приведет к ошибке компиляции. В генераторе может присутствовать только пустой оператор return, для обозначения конца генерируемой последовательности. Начиная с PHP 7 генераторы могут возвращать значения, которые можно получить с помощью Generator::getReturn().

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

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

Пример #1 Простой пример выдачи значений

<?php
function gen_one_to_three() {
    for ($i = 1; $i <= 3; $i++) {
        // Обратите внимание, что $i сохраняет свое значение между вызовами.
        yield $i;
    }
}

$generator = gen_one_to_three();
foreach ($generator as $value) {
    echo "$value\n";
}
?>

Результат выполнения данного примера:

1
2
3

Замечание:

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

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

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

$data = (yield $value);

А вот это неправильно и вызовет ошибку синтаксиса в PHP 5:

$data = yield $value;

В PHP 7 этого ограничения нет.

Значение, которое будет присвоено $data, - это значение, переданное Generator::send() или NULL, если вместо этого вызывается Generator::next().

Получение значений с ключами

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

Синтаксис получения ключ/значение очень похож на синтаксис ассоциативных массивов, как показано ниже.

Пример #2 Получение пар ключ/значение

<?php
/* $input содержит пары ключ/значение разделенные точкой с запятой */

$input = <<<'EOF'
1;PHP;Любит знаки доллара
2;Python;Любит пробелы
3;Ruby;Любит блоки
EOF;

function input_parser($input) {
    foreach (explode("\n", $input) as $line) {
        $fields = explode(';', $line);
        $id = array_shift($fields);

        yield $id => $fields;
    }
}

foreach (input_parser($input) as $id => $fields) {
    echo "$id:\n";
    echo "    $fields[0]\n";
    echo "    $fields[1]\n";
}
?>

Результат выполнения данного примера:

1:
    PHP
    Любит знаки доллара
2:
    Python
    Любит пробелы
3:
    Ruby
    Любит блоки
Предостережение

Также как и для одиночных значений, получение пар ключ/значение в выражениях требует оборачивания их в скобки:

$data = (yield $key => $value);

Получение NULL

Для получения NULL нужно вызвать "yield" без аргументов. Ключ сгенерируется автоматически.

Пример #3 Получение NULL

<?php
function gen_three_nulls() {
    foreach (range(1, 3) as $i) {
        yield;
    }
}

var_dump(iterator_to_array(gen_three_nulls()));
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  NULL
  [1]=>
  NULL
  [2]=>
  NULL
}

Получение значения по ссылке

Генераторы могут отдавать значения по ссылке. Это делается так же, как возврат ссылок из функций": добавление амперсанда (&) перед именем функции.

Пример #4 Получение значений по ссылке

<?php
function &gen_reference() {
    $value = 3;

    while ($value > 0) {
        yield $value;
    }
}

/* Обратите внимание, что мы можем изменять $number в цикле, и
 * так как генератор возвращает ссылку, $value
 * в gen_reference() также изменится. */
foreach (gen_reference() as &$number) {
    echo (--$number).'... ';
}
?>

Результат выполнения данного примера:

2... 1... 0...

Делегирование генератора с помощью yield from

В PHP 7, делегирование генератора позволяет вам получать значения из другого генератора, объекта Traversable, или массива, используя yield from. Внешний генератор будет возвращать значения из внутреннего генератора, объекта или массива, до того момента, пока они их отдают, после чего продолжится выполнения внешнего генератора.

Если генератор используется с yield from, то выражение yield from также будет возвращать значения из внутреннего генератора.

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

Сохранение в массив (например, с помощью iterator_to_array())

yield from не сбрасывает ключи. Ключи, возвращенные из объекта Traversable или массива, сохранятся. Таким образом, некоторые значения, могут пересекаться по ключам с другими yield или yield from, что, при записи в массив, повлечет за собой перезапись прежних значений.

Общий случай, когда это имеет значение, это когда iterator_to_array() возвращает массив с ключами по умолчанию. В этом случае можно получить неожиданный результат. iterator_to_array() имеет второй параметр use_keys, который можно установить в FALSE, для генерации собственных ключей и игнорировании ключей, переданных из объекта Generator.

Пример #5 yield from с iterator_to_array()

<?php
function inner() {
    yield 1; // ключ 0
    yield 2; // ключ 1
    yield 3; // ключ 2
}
function gen() {
    yield 0; // ключ 0
    yield from inner(); // ключи 0-2
    yield 4; // ключ 1
}
// Задайте false вторым параметром для получения массива [0, 1, 2, 3, 4]
var_dump(iterator_to_array(gen()));
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(4)
  [2]=>
  int(3)
}

Пример #6 Основы использования yield from

<?php
function count_to_ten() {
    yield 1;
    yield 2;
    yield from [3, 4];
    yield from new ArrayIterator([5, 6]);
    yield from seven_eight();
    yield 9;
    yield 10;
}

function seven_eight() {
    yield 7;
    yield from eight();
}

function eight() {
    yield 8;
}

foreach (count_to_ten() as $num) {
    echo "$num ";
}
?>

Результат выполнения данного примера:

1 2 3 4 5 6 7 8 9 10

Пример #7 yield from и возвращаемые значения

<?php
function count_to_ten() {
    yield 1;
    yield 2;
    yield from [3, 4];
    yield from new ArrayIterator([5, 6]);
    yield from seven_eight();
    return yield from nine_ten();
}

function seven_eight() {
    yield 7;
    yield from eight();
}

function eight() {
    yield 8;
}

function nine_ten() {
    yield 9;
    return 10;
}

$gen = count_to_ten();
foreach ($gen as $num) {
    echo "$num ";
}
echo $gen->getReturn();
?>

Результат выполнения данного примера:

1 2 3 4 5 6 7 8 9 10


Сравнение генераторов с объектами класса Iterator

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

<?php
function getLinesFromFile($fileName) {
    if (!$fileHandle = fopen($fileName, 'r')) {
        return;
    }

    while (false !== $line = fgets($fileHandle)) {
        yield $line;
    }

    fclose($fileHandle);
}

// Против...

class LineIterator implements Iterator {
    protected $fileHandle;

    protected $line;
    protected $i;

    public function __construct($fileName) {
        if (!$this->fileHandle = fopen($fileName, 'r')) {
            throw new RuntimeException('Невозможно открыть файл "' . $fileName . '"');
        }
    }

    public function rewind() {
        fseek($this->fileHandle, 0);
        $this->line = fgets($this->fileHandle);
        $this->i = 0;
    }

    public function valid() {
        return false !== $this->line;
    }

    public function current() {
        return $this->line;
    }

    public function key() {
        return $this->i;
    }

    public function next() {
        if (false !== $this->line) {
            $this->line = fgets($this->fileHandle);
            $this->i++;
        }
    }

    public function __destruct() {
        fclose($this->fileHandle);
    }
}
?>

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


Объяснение ссылок

Содержание

  • Что такое ссылки
  • Что делают ссылки
  • Чем ссылки не являются
  • Передача по ссылке
  • Возврат по ссылке
  • Сброс переменных-ссылок
  • Неявное использование механизма ссылок


Что такое ссылки

Ссылки в PHP - это средство доступа к содержимому одной переменной под разными именами. Они не похожи на указатели C; например, вы не можете делать вычисления над указателями, они не являются реальными адресами в памяти и т.д. Для получения дополнительной информации смотрите Чем ссылки не являются. Вместо этого указатели в PHP - это псевдонимы в таблице имен переменных. В PHP имя переменной и её содержимое - это разные вещи, поэтому одно содержимое может иметь разные имена. Можно сделать аналогию с именами файлов Unix и их именами: имена переменных - записи в каталоге, а содержимое переменной - это сам файл. Ссылки в PHP - аналог жёстких ссылок в файловых системах Unix.


Что делают ссылки

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

Присвоение по ссылке

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

<?php
$a =& $b;
?>
то $a указывает на то же значение что и $b.

Замечание:

$a и $b здесь абсолютно эквивалентны, но это не означает, что $a указывает на $b или наоборот. Это означает, что $a и $b указывают на одно и то же значение.

Замечание:

При присвоении, передаче или возврате неинициализированной переменной по ссылке, происходит ее создание.

Пример #1 Использование ссылок с неинициализированными переменными

<?php
function foo(&$var) { }

foo($a); // $a создана и равна null

$b = array();
foo($b['b']);
var_dump(array_key_exists('b', $b)); // bool(true)

$c = new StdClass;
foo($c->d);
var_dump(property_exists($c, 'd')); // bool(true)
?>

Такой же синтаксис может использоваться в функциях, возвращающими ссылки, и с оператором new:

<?php
$foo =& find_var($bar);
?>
Начиная с PHP 5, new автоматически возвращает объекты по ссылке, поэтому использовать =& в этом случае не рекомендуется и вызывает сообщение E_DEPRECATED в PHP 5.3 и последующих версиях, а также сообщение E_STRICT в более ранних версиях. Начиная с PHP 7.0, это синтаксически некорректно. (Технически разница в том, что в PHP 5 переменные объекта, подобно ресурсам, являются просто указателем на фактические данные объекта, поэтому ссылки на объекты не те же самые "ссылки", о которых говорилось ранее (псевдонимы). Подробнее в Объекты и ссылки.)

Внимание

Если переменной, объявленной внутри функции как global, будет присвоена ссылка, она будет видна только в функции. Чтобы избежать этого, используйте массив $GLOBALS.

Пример #2 Присвоение ссылок глобальным переменным внутри функции

<?php
$var1 = "Пример переменной";
$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: 'Пример переменной'
?>
Думайте о global $var; как о сокращении от $var =& $GLOBALS['var'];. Таким образом, присвоение $var другой ссылки влияет лишь на локальную переменную.

Замечание:

При использовании переменной-ссылки в foreach, изменяется содержание, на которое она ссылается.

Пример #3 Ссылки и foreach

<?php
$ref = 0;
$row =& $ref;
foreach (array(1, 2, 3) as $row) {
    // сделать что-нибудь
}
echo $ref; // 3 - последнее значение, используемое в цикле
?>

Хотя в выражениях, создаваемых с помощью конструкции array(), нет явного присвоения по ссылке, тем не менее они могут вести себя как таковые, если указать префикс & для элементов массива. Пример:

<?php
$a = 1;
$b = array(2, 3);
$arr = array(&$a, &$b[0], &$b[1]);
$arr[0]++; $arr[1]++; $arr[2]++;
/* $a == 2, $b == array(3, 4); */
?>

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

<?php
/* Присвоение скалярных переменных */
$a = 1;
$b =& $a;
$c = $b;
$c = 7; //$c не ссылка и не изменяет значений $a и $b

/* Присвоение массивов */
$arr = array(1);
$a =& $arr[0]; // $a и $arr[0] ссылаются на одно значение
$arr2 = $arr; // присвоение не по ссылке!
$arr2[0]++;
/* $a == 2, $arr == array(2) */
/* Содержимое $arr изменилось, хотя было присвоено не по ссылке! */
?>
Иными словами, поведение отдельных элементов массива не зависит от типа присвоения этого массива.

Передача по ссылке

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

<?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, но $var имеет только значение переменной и не имеет связи имя-значение в таблице имен переменных). Вы можете воспользоваться возвратом ссылок из функции для привязки внешней перменной к другому значению.


Передача по ссылке

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

<?php
function foo(&$var) {
    $var++;
}

$a = 5;
foo($a);
// $a здесь равно 6
?>

Замечание: В вызове функции отсутствует знак ссылки - он есть только в определении функции. Этого достаточно для корректной передачи аргументов по ссылке. Начиная с PHP 5.3.0, вы можете получить предупреждение о том, что передача переменной по ссылке устарела, если используете & в foo(&$a);. Начиная с PHP 5.4.0 передача переменной по ссылке стала невозможна, поэтому использование этого приема приведет к фатальной ошибке.

По ссылке можно передавать:

  • Переменные, например foo($a)

  • Ссылки, возвращаемые функцией, например:

    <?php
    function foo(&$var) {
            $var++;
    }
    function &    bar() {
            $a = 5;
        return     $a;
    }
    foo(bar());
    ?>
    См. также объяснение возрата по ссылке.

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

<?php
function foo(&$var) {
    $var++;
}
function bar() { // Операция & отсутствует
    $a = 5;
    return $a;
}
foo(bar()); // Вызывает неисправимую ошибку начиная с PHP 5.0.5
            // Стандартное строгое предупреждение с PHP 5.1.1 и предупреждение с PHP 7.0.0

foo($a = 5); // Выражение, а не переменная
foo(5); // Константа, а не переменная

class Foobar
{
}

foo(new Foobar()) // Вызывает уведомление с PHP 7.0.7
                  // Notice: Only variables should be passed by reference
?>


Возврат по ссылке

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

<?php
class foo {
    public $value = 42;

    public function &getValue() {
        return $this->value;
    }
}

$obj = new foo;
$myValue = &$obj->getValue(); // $myValue указывает на $obj->value, равное 42.
$obj->value = 2;
echo $myValue;                // отобразит новое значение $obj->value, то есть 2.
?>
В этом примере устанавливается свойство объекта, возвращённого функцией getValue, а не его копии, как было бы без использования ссылок.

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

Замечание: Если вы возвращаете ссылку из функции, используя следующий синтаксис: return ($this->value);, это не будет работать, так как вы возвращаете по ссылке результат выражения, а не переменную. По ссылке можно возвращать только переменные и ничего больше. Начиная с PHP 5.1.0, если код пытается вернуть по ссылке динамическое выражение или результат оператора new, будет вызвано предупреждение E_NOTICE.

Для использования возвращаемой ссылки вы должны применять присвоение по ссылке:

<?php
function &collector() {
  static $collection = array();
  return $collection;
}
$collection = &collector();
$collection[] = 'foo';
?>
Для передачи возвращаемой ссылки в другую функцию, принимающую ссылку, вы можете использовать следующий синтаксис:
<?php
function &collector() {
  static $collection = array();
  return $collection;
}
array_push(collector(), 'foo');
?>

Замечание: Заметим, что array_push(&collector(), 'foo'); не сработает, а приведет к неисправимой ошибке.


Сброс переменных-ссылок

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

<?php
$a = 1;
$b =& $a;
unset($a);
?>
Этот код не сбросит $b, а только $a.

Опять же, можно провести аналогию с вызовом unlink (в Unix).


Неявное использование механизма ссылок

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

Ссылки global

Если вы объявляете переменную как global $var, вы фактически создаёте ссылку на глобальную переменную. Это означает то же самое, что и:

<?php
$var =& $GLOBALS["var"];
?>

Это значит, например, что сброс (unset) $var не приведёт к сбросу глобальной переменной.

$this

В методах объекта, $this всегда является ссылкой на вызываемый объект.


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

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

См. также ЧАВО под названием "Как register_globals касаются меня?"

Содержание

  • Суперглобальные переменные — Суперглобальные переменные - это встроенные переменные, которые всегда доступны во всех областях видимости
  • $GLOBALS — Ссылки на все переменные глобальной области видимости
  • $_SERVER — Информация о сервере и среде исполнения
  • $_GET — Переменные HTTP GET
  • $_POST — Переменные HTTP POST
  • $_FILES — Переменные файлов, загруженных по HTTP
  • $_REQUEST — Переменные HTTP-запроса
  • $_SESSION — Переменные сессии
  • $_ENV — Переменные окружения
  • $_COOKIE — HTTP Cookies
  • $php_errormsg — Предыдущее сообщение об ошибке
  • $HTTP_RAW_POST_DATA — Необработанные данные POST
  • $http_response_header — Заголовки ответов HTTP
  • $argc — Количество аргументов, переданных скрипту
  • $argv — Массив переданных скрипту аргументов


Суперглобальные переменные - это встроенные переменные, которые всегда доступны во всех областях видимости

  • « Предопределённые переменные
  • $GLOBALS »
  • PHP Manual
  • Предопределённые переменные
  • Суперглобальные переменные - это встроенные переменные, которые всегда доступны во всех областях видимости

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

Суперглобальные переменные — Суперглобальные переменные - это встроенные переменные, которые всегда доступны во всех областях видимости

Описание

Некоторые предопределённые переменные в PHP являются "суперглобальными", что означает, что они доступны в любом месте скрипта. Нет необходимости использовать синтаксис global $variable; для доступа к ним в функциях и методах.

Суперглобальными переменными являются:

  • $GLOBALS
  • $_SERVER
  • $_GET
  • $_POST
  • $_FILES
  • $_COOKIE
  • $_SESSION
  • $_REQUEST
  • $_ENV

Примечания

Замечание: Доступность переменных

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

Замечание: Работа с register_globals

В случае, если устаревшая директива register_globals включена (on), содержание суперглобальных массивов становится доступно в виде отдельных переменных. Например, $_POST['foo'] будет также доступна в виде $foo.

За дополнительной информацией обращайтесь к ЧАВО под названием "Как register_globals касаются меня?"

Замечание: Переменные переменных

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

Смотрите также

  • Область видимости переменной
  • Директива variables_order
  • "Фильтрация данных"


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

  • « Суперглобальные переменные
  • $_SERVER »
  • PHP Manual
  • Предопределённые переменные
  • Ссылки на все переменные глобальной области видимости

$GLOBALS

(PHP 4, PHP 5, PHP 7)

$GLOBALS — Ссылки на все переменные глобальной области видимости

Описание

Ассоциативный массив (array), содержащий ссылки на все переменные, определенные в данный момент в глобальной области видимости скрипта. Имена переменных являются ключами массива.

Примеры

Пример #1 Пример использования $GLOBALS

<?php
function test() {
    $foo = "локальная переменная";

    echo '$foo в глобальной области видимости: ' . $GLOBALS["foo"] . "\n";
    echo '$foo в текущей области видимости: ' . $foo . "\n";
}

$foo = "Пример содержимого";
test();
?>

Результатом выполнения данного примера будет что-то подобное:

$foo в глобальной области видимости: Пример содержимого
$foo в текущей области видимости: локальная переменная

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Замечание: Доступность переменной

В отличие от всех остальных суперглобальных переменных, $GLOBALS всегда доступна в PHP.


Информация о сервере и среде исполнения

  • « $GLOBALS
  • $_GET »
  • PHP Manual
  • Предопределённые переменные
  • Информация о сервере и среде исполнения

$_SERVER

$HTTP_SERVER_VARS [удалено]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_SERVER -- $HTTP_SERVER_VARS [удалено] — Информация о сервере и среде исполнения

Описание

Переменная $_SERVER - это массив, содержащий информацию, такую как заголовки, пути и местоположения скриптов. Записи в этом массиве создаются веб-сервером. Нет гарантии, что каждый веб-сервер предоставит любую из них; сервер может опустить некоторые из них или предоставить другие, не указанные здесь. Тем не менее, многие эти переменные присутствуют в » спецификации CGI/1.1, так что вы можете ожидать их наличие.

Замечание: До PHP 5.4.0, $HTTP_SERVER_VARS содержит ту же начальную информацию, но она не суперглобальная. (Заметьте, что $HTTP_SERVER_VARS и $_SERVER являются разными переменными, так что PHP обрабатывает их соответственно).

Индексы

Вы можете найти (а можете и не найти) любой из следующих элементов в массиве $_SERVER. Обратите внимание, что немногие элементы, если они есть, будут доступны (или даже будут иметь какое-нибудь значение), если PHP запущен в командной строке.

'PHP_SELF'
Имя файла скрипта, который сейчас выполняется, относительно корня документов. Например, $_SERVER['PHP_SELF'] в скрипте по адресу http://example.com/foo/bar.php будет /foo/bar.php. Константа __FILE__ содержит полный путь и имя файла текущего (то есть подключенного) файла. Если PHP запущен в командной строке, эта переменная содержит имя скрипта, начиная с PHP 4.3.0. Раньше она была недоступна.
'argv'
Массив агрументов, переданных скрипту. Когда скрипт запущен в командой строке, это дает C-подобный доступ к параметрам командной строки. Когда вызывается через метод GET, этот массив будет содержать строку запроса.
'argc'
Содержит количество параметров, переданных скрипту (если запуск произведен в командной строке).
'GATEWAY_INTERFACE'
Содержит используемую сервером версию спецификации CGI; к примеру 'CGI/1.1'.
'SERVER_ADDR'
IP-адрес сервера, на котором выполняется текущий скрипт.
'SERVER_NAME'
Имя хоста, на котором выполняется текущий скрипт. Если скрипт выполняется на виртуальном хосте, здесь будет содержатся имя, определенное для этого виртуального хоста.

Замечание: В Apache 2 вы должны установить UseCanonicalName = On и ServerName. В противном случае это значение отразит имя хоста, предоставленное клиентом, которое может быть подделано. Небезопасно полагаться на это значение в контексте, требующем безопасности.

'SERVER_SOFTWARE'
Строка идентификации сервера, указанная в заголовках, когда происходит ответ на запрос.
'SERVER_PROTOCOL'
Имя и версия информационного протокола, через который была запрошена страница; к примеру 'HTTP/1.0';
'REQUEST_METHOD'
Какой метод был использован для запроса страницы; к примеру 'GET', 'HEAD', 'POST', 'PUT'.

Замечание:

PHP-скрипт завершается после отправки заголовков (то есть после того, как осуществляется любой вывод без буферизации вывода), если метод запроса был HEAD.

'REQUEST_TIME'
Временная метка начала запроса. Доступно с PHP 5.1.0.
'REQUEST_TIME_FLOAT'
Временная метка начала запроса с точностью до микросекунд. Доступно с PHP 5.4.0.
'QUERY_STRING'
Строка запроса, если есть, через которую была открыта страница.
'DOCUMENT_ROOT'
Директория корня документов, в которой выполняется текущий скрипт, в точности та, которая указана в конфигурационном файле сервера.
'HTTP_ACCEPT'
Содержимое заголовка Accept: из текущего запроса, если он есть.
'HTTP_ACCEPT_CHARSET'
Содержимое заголовка Accept-Charset: из текущего запроса, если он есть. Например: 'iso-8859-1,*,utf-8'.
'HTTP_ACCEPT_ENCODING'
Содержимое заголовка Accept-Encoding: из текущего запроса, если он есть. Например: 'gzip'.
'HTTP_ACCEPT_LANGUAGE'
Содержимое заголовка Accept-Language: из текущего запроса, если он есть. Например: 'en'.
'HTTP_CONNECTION'
Содержимое заголовка Connection: из текущего запроса, если он есть. Например: 'Keep-Alive'.
'HTTP_HOST'
Содержимое заголовка Host: из текущего запроса, если он есть.
'HTTP_REFERER'
Адрес страницы (если есть), с которой браузер пользователя перешёл на эту страницу. Этот заголовок устанавливается браузером пользователя. Не все браузеры устанавливают его, а некоторые в качестве дополнительной возможности позволяют изменять содержимое заголовка HTTP_REFERER. Одним словом, нельзя доверять этому заголовку.
'HTTP_USER_AGENT'
Содержимое заголовка User-Agent: из текущего запроса, если он есть. Эта строка, обозначающая браузер, который открыл данную страницу. Типичным примером является строка: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Помимо всего прочего, вы можете использовать это значение с функцией get_browser(), чтобы адаптировать вывод вашей страницы к возможностям браузера пользователя.
'HTTPS'
Принимает непустое значение, если запрос был произведен через протокол HTTPS.

Замечание: Обратите внимание, что при использовании ISAPI с IIS значение будет off, если запрос не был произведен через протокол HTTPS.

'REMOTE_ADDR'
IP-адрес, с которого пользователь просматривает текущую страницу.
'REMOTE_HOST'
Удаленный хост, с которого пользователь просматривает текущую страницу. Обратный поиск DNS основан на значении переменной REMOTE_ADDR.

Замечание: Ваш сервер должен быть настроен, чтобы создавать эту переменную. Для примера, в Apache вам необходимо присутствие директивы HostnameLookups On в файле httpd.conf, чтобы эта переменная создавалась. См. также gethostbyaddr().

'REMOTE_PORT'
Порт на удаленной машине, который используется для связи с сервером.
'REMOTE_USER'
Аутентифицированный пользователь.
'REDIRECT_REMOTE_USER'
Аутентифицированный пользователь, если запрос был перенаправлен изнутри.
'SCRIPT_FILENAME'

Абсолютный путь к исполняемому скрипту.

Замечание:

Если скрипт запускается в командной строке (CLI), используя относительный путь, такой как file.php или ../file.php, переменная $_SERVER['SCRIPT_FILENAME'] будет содержать относительный путь, указанный пользователем.

'SERVER_ADMIN'
Эта переменная получает свое значение (для Apache) из директивы конфигурационного файла сервера. Если скрипт запущен на виртуальном хосте, это будет значение, определенное для данного виртуального хоста.
'SERVER_PORT'
Порт на компьютере сервера, используемый сервером для соединения. Для установок по умолчанию, значение будет '80'; используя SSL, например, это значение будет таким, какое сконфигурировано для соединений безопасного HTTP.

Замечание: Чтобы получить физический (реальный) порт в Apache 2, необходимо установить UseCanonicalName = On и UseCanonicalPhysicalPort = On, иначе это значение может быть подменено и не вернуть реальной значение физического порта. Полагаться на это значение небезопасно в контексте приложений, требующих усиленной безопасности.

'SERVER_SIGNATURE'
Строка, содержащая версию сервера и имя виртуального хоста, которые добавляются к генерируемым сервером страницам, если включено.
'PATH_TRANSLATED'
Путь файловой системы (не document root) к текущему скрипту, после того как сервер выполнил отображение virtual-to-real.

Замечание: Начиная с PHP 4.3.2, переменная PATH_TRANSLATED больше не устанавливается неявно в Apache 2 SAPI, по сравнению с Apache версии 1, где она устанавливается в то же самое значение, что и переменная SCRIPT_FILENAME, когда она не используется Apache. Это изменение было сделано для соответствия спецификации CGI, где переменная PATH_TRANSLATED должна существовать только тогда, когда PATH_INFO определена. Пользователи Apache 2 могут использовать директиву AcceptPathInfo = On в конфигурационном файле httpd.conf для задания переменной PATH_INFO.

'SCRIPT_NAME'
Содержит путь к текущему исполняемому скрипту. Это полезно для страниц, которые должны указывать на самих себя. Константа __FILE__ содержит полный путь и имя текущего (то есть включенного) файла.
'REQUEST_URI'
URI, который был предоставлен для доступа к этой странице. Например, '/index.html'.
'PHP_AUTH_DIGEST'
При выполнении аутентификации HTTP Digest этой переменной присваивается заголовок 'Authorization', отправленный клиентом (который затем следует использовать для проведения соответствующей проверки).
'PHP_AUTH_USER'
При выполнении HTTP-аутентификации этой переменной присваивается имя пользователя, предоставленное пользователем.
'PHP_AUTH_PW'
При выполнении HTTP-аутентификации этой переменной присваивается пароль, предоставленный пользователем.
'AUTH_TYPE'
При выполнении HTTP-аутентификации этой переменной присваивается тип аутентификации, который используется.
'PATH_INFO'
Содержит любой предоставленный пользователем путь, содержащийся после имени скрипта, но до строки запроса, если она есть. Например, если текущий скрипт запрошен по URL http://www.example.com/php/path_info.php/some/stuff?foo=bar, то переменная $_SERVER['PATH_INFO'] будет содержать /some/stuff.
'ORIG_PATH_INFO'
Исходное значение переменной 'PATH_INFO' перед обработкой PHP.

Список изменений

Версия | Описание
5.4.0 | Массив $HTTP_SERVER_VARS больше недоступен в связи с удалением "длинных массивов".
5.3.0 | Директива register_long_arrays, которая приводила к заполнению $HTTP_SERVER_VARS помечена как устаревшая.

Примеры

Пример #1 Пример использования $_SERVER

<?php
echo $_SERVER['SERVER_NAME'];
?>

Результатом выполнения данного примера будет что-то подобное:

www.example.com

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • Фильтрация данных


Переменные HTTP GET

  • « $_SERVER
  • $_POST »
  • PHP Manual
  • Предопределённые переменные
  • Переменные HTTP GET

$_GET

$HTTP_GET_VARS [устарело]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_GET -- $HTTP_GET_VARS [устарело] — Переменные HTTP GET

Описание

Ассоциативный массив переменных, переданных скрипту через параметры URL (известные также как строка запроса). Обратите внимание, что массив не только заполняется для GET-запросов, а скорее для всех запросов со строкой запроса.

$HTTP_GET_VARS содержит аналогичный набор данных, но не является суперглобальным. (Обратите внимание, что $HTTP_GET_VARS и $_GET являются разными переменными и обрабатываются PHP независимо друг от друга)

Примеры

Пример #1 Пример использования $_GET

<?php
echo 'Привет, ' . htmlspecialchars($_GET["name"]) . '!';
?>

Подразумевается, что пользователь ввел в браузере адрес http://example.com/?name=Иван

Результатом выполнения данного примера будет что-то подобное:

Привет, Иван!

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Замечание:

Параметры GET обрабатываются urldecode().

Смотрите также

  • Переменные извне PHP
  • Фильтрация данных


Переменные HTTP POST

  • « $_GET
  • $_FILES »
  • PHP Manual
  • Предопределённые переменные
  • Переменные HTTP POST

$_POST

$HTTP_POST_VARS [устарело]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_POST -- $HTTP_POST_VARS [устарело] — Переменные HTTP POST

Описание

Ассоциативный массив данных, переданных скрипту через HTTP методом POST при использовании application/x-www-form-urlencoded или multipart/form-data в заголовке Content-Type запроса HTTP.

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

Примеры

Пример #1 Пример использования $_POST

<?php
echo 'Привет ' . htmlspecialchars($_POST["name"]) . '!';
?>

Подразумевается, что пользователь отправил через POST name=Иван

Результатом выполнения данного примера будет что-то подобное:

Привет, Иван!

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • Обработка внешних переменных
  • Фильтрация данных


Переменные файлов, загруженных по HTTP

  • « $_POST
  • $_REQUEST »
  • PHP Manual
  • Предопределённые переменные
  • Переменные файлов, загруженных по HTTP

$_FILES

$HTTP_POST_FILES [устаревшее]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_FILES -- $HTTP_POST_FILES [устаревшее] — Переменные файлов, загруженных по HTTP

Описание

Ассоциативный массив (array) элементов, загруженных в текущий скрипт через метод HTTP POST. Структура этого массива описана в разделе Загрузка файлов методом POST.

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

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • move_uploaded_file() - Перемещает загруженный файл в новое место
  • Загрузка файлов на сервер


Переменные HTTP-запроса

  • « $_FILES
  • $_SESSION »
  • PHP Manual
  • Предопределённые переменные
  • Переменные HTTP-запроса

$_REQUEST

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_REQUEST — Переменные HTTP-запроса

Описание

Ассоциативный массив (array), который по умолчанию содержит данные переменных $_GET, $_POST и $_COOKIE.

Список изменений

Версия | Описание
5.3.0 | Добавлена директива request_order. Она позволяет контролировать содержимое переменной $_REQUEST.

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Замечание:

При работе в командной строке переменные argv и argc не включаются в данный массив - они присутствуют в массиве $_SERVER.

Замечание:

Переменные в массиве $_REQUEST передаются в скрипт посредством методов GET, POST или COOKIE, поэтому им нельзя доверять, т.к. они могли быть изменены удаленным пользователем. Их наличие и порядок добавления данных в соответствующие массивы определяется директивой конфигурации variables_order.

Смотрите также

  • import_request_variables() - Импортирует переменные GET/POST/Cookie в глобальную область видимости
  • "Работа с внешними данными"
  • "Фильтрация данных"


Переменные сессии

  • « $_REQUEST
  • $_ENV »
  • PHP Manual
  • Предопределённые переменные
  • Переменные сессии

$_SESSION

$HTTP_SESSION_VARS [устарело]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_SESSION -- $HTTP_SESSION_VARS [устарело] — Переменные сессии

Описание

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

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

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • session_start() - Стартует новую сессию, либо возобновляет существующую


Переменные окружения

  • « $_SESSION
  • $_COOKIE »
  • PHP Manual
  • Предопределённые переменные
  • Переменные окружения

$_ENV

$HTTP_ENV_VARS [устарело]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_ENV -- $HTTP_ENV_VARS [устарело] — Переменные окружения

Описание

Ассоциативный массив (array) значений, переданных скрипту через переменные окружения.

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

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

$HTTP_ENV_VARS содержит те же данные, но не является суперглобальной переменной. (Следует отметить, что $HTTP_ENV_VARS и $_ENV - разные переменные и обрабатываются по-иному)

Примеры

Пример #1 Пример использования $_ENV

<?php
echo 'Мое имя пользователя: ' .$_ENV["USER"] . '!';
?>

Допустим, скрипт запустил "bjori"

Результатом выполнения данного примера будет что-то подобное:

Мое имя пользователя: bjori!

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • getenv() - Получение значения переменной окружения
  • Фильтрация данных


HTTP Cookies

  • « $_ENV
  • $php_errormsg »
  • PHP Manual
  • Предопределённые переменные
  • HTTP Cookies

$_COOKIE

$HTTP_COOKIE_VARS [устарело]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_COOKIE -- $HTTP_COOKIE_VARS [устарело] — HTTP Cookies

Описание

Ассоциативный массив (array) значений, переданных скрипту через HTTP Cookies.

$HTTP_COOKIE_VARS содержит те же данные, но не является суперглобальной переменной. (Следует отметить, что $HTTP_COOKIE_VARS и $_COOKIE - разные переменные и PHP обрабатывает каждую из них по-своему)

Примеры

Пример #1 Пример использования $_COOKIE

<?php
echo 'Привет, ' . htmlspecialchars($_COOKIE["name"]) . '!';
?>

Предположим, что значение куки с именем "name" было установлено ранее.

Результатом выполнения данного примера будет что-то подобное:

Привет, Иван!

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • setcookie() - Отправляет cookie
  • Обработка внешних переменных
  • Фильтрация данных


Предыдущее сообщение об ошибке

  • « $_COOKIE
  • $HTTP_RAW_POST_DATA »
  • PHP Manual
  • Предопределённые переменные
  • Предыдущее сообщение об ошибке

$php_errormsg

(PHP 4, PHP 5, PHP 7)

$php_errormsg — Предыдущее сообщение об ошибке

Внимание

Данный функционал объявлен УСТАРЕВШИМ, начиная с PHP 7.2.0 и его использование крайне не рекомендовано.

Используйте функцию error_get_last().

Описание

$php_errormsg является переменной, содержащей текст последней ошибки, сгенерированной PHP. Эта переменная будет доступна только в блоке кода, в котором случилась ошибка, и только если включена конфигурационная опция track_errors (по умолчанию отключена).

Внимание

Если настроен пользовательский обработчик ошибок (set_error_handler()), то $php_errormsg устанавливается только в том случае, если обработчик ошибки возвращает FALSE.

Примеры

Пример #1 Пример использования $php_errormsg

<?php
@strpos();
echo $php_errormsg;
?>

Результатом выполнения данного примера будет что-то подобное:

Wrong parameter count for strpos()

Смотрите также

  • error_get_last() - Получение информации о последней произошедшей ошибке


Необработанные данные POST

  • « $php_errormsg
  • $http_response_header »
  • PHP Manual
  • Предопределённые переменные
  • Необработанные данные POST

$HTTP_RAW_POST_DATA

(PHP 4, PHP 5)

$HTTP_RAW_POST_DATA — Необработанные данные POST

Описание

Внимание

Эта функциональность считается УСТАРЕВШЕЙ с PHP 5.6.0 и УДАЛЕНА в PHP 7.0.0.

$HTTP_RAW_POST_DATA содержит необработанные POST-данные. Также смотрите always_populate_raw_post_data.

Как правило, вместо $HTTP_RAW_POST_DATA следует использовать php://input.


Заголовки ответов HTTP

  • « $HTTP_RAW_POST_DATA
  • $argc »
  • PHP Manual
  • Предопределённые переменные
  • Заголовки ответов HTTP

$http_response_header

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

$http_response_header — Заголовки ответов HTTP

Описание

Массив (array) $http_response_header похож на функцию get_headers(). При использовании обертки HTTP, $http_response_header будет заполняться заголовками ответа HTTP. $http_response_header будет создан в локальной области видимости.

Примеры

Пример #1 Пример $http_response_header

<?php
function get_contents() {
  file_get_contents("http://example.com");
  var_dump($http_response_header);
}
get_contents();
var_dump($http_response_header);
?>

Результатом выполнения данного примера будет что-то подобное:

array(9) {
  [0]=>
  string(15) "HTTP/1.1 200 OK"
  [1]=>
  string(35) "Date: Sat, 12 Apr 2008 17:30:38 GMT"
  [2]=>
  string(29) "Server: Apache/2.2.3 (CentOS)"
  [3]=>
  string(44) "Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT"
  [4]=>
  string(27) "ETag: "280100-1b6-80bfd280""
  [5]=>
  string(20) "Accept-Ranges: bytes"
  [6]=>
  string(19) "Content-Length: 438"
  [7]=>
  string(17) "Connection: close"
  [8]=>
  string(38) "Content-Type: text/html; CHARSET=Windows-1251"
}
NULL


Количество аргументов, переданных скрипту

  • « $http_response_header
  • $argv »
  • PHP Manual
  • Предопределённые переменные
  • Количество аргументов, переданных скрипту

$argc

(PHP 4, PHP 5, PHP 7)

$argc — Количество аргументов, переданных скрипту

Описание

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

Замечание: Имя файла скрипта всегда передаётся в качестве первого аргумента, таким образом минимальное значение $argc равно 1.

Замечание: Эта переменная недоступна, если register_argc_argv отключен.

Примеры

Пример #1 Пример использования $argc

<?php
var_dump($argc);
?>

Запустим пример в командной строке: php script.php arg1 arg2 arg3

Результатом выполнения данного примера будет что-то подобное:

int(4)

Примечания

Замечание:

Также доступно как $_SERVER['argc'].

Смотрите также

  • getopt() - Получает параметры из списка аргументов командной строки


Массив переданных скрипту аргументов

  • « $argc
  • Предопределённые исключения »
  • PHP Manual
  • Предопределённые переменные
  • Массив переданных скрипту аргументов

$argv

(PHP 4, PHP 5, PHP 7)

$argv — Массив переданных скрипту аргументов

Описание

Содержит массив (array) всех аргументов, переданных скрипту при запуске из командной строки.

Замечание: Первый аргумент $argv[0] всегда содержит имя файла запущенного скрипта.

Замечание: Эта переменная недоступна, если register_argc_argv отключен.

Примеры

Пример #1 Пример использования$argv

<?php
var_dump($argv);
?>

Запустим пример в командной строке: php script.php arg1 arg2 arg3

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  [0]=>
  string(10) "script.php"
  [1]=>
  string(4) "arg1"
  [2]=>
  string(4) "arg2"
  [3]=>
  string(4) "arg3"
}

Примечания

Замечание:

Также доступно как $_SERVER['argv'].

Смотрите также

  • getopt() - Получает параметры из списка аргументов командной строки


Предопределённые исключения

Содержание

  • Exception
  • ErrorException
  • Error
  • ArgumentCountError
  • ArithmeticError
  • AssertionError
  • DivisionByZeroError
  • CompileError
  • ParseError
  • TypeError

Смотрите также "Исключения SPL"


Exception

(PHP 5, PHP 7)

Введение

Exception — это базовый класс для всех исключений в PHP 5 и базовый класс для всех пользовательских исключений в PHP 7.

До PHP 7 Exception не реализовывал интерфейс Throwable.

Обзор классов

Exception implements Throwable {
/* Свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
public __construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] )
final public getMessage ( void ) : string
final public getPrevious ( void ) : Throwable
final public getCode ( void ) : mixed
final public getFile ( void ) : string
final public getLine ( void ) : int
final public getTrace ( void ) : array
final public getTraceAsString ( void ) : string
public __toString ( void ) : string
final private __clone ( void ) : void
}

Свойства

message

Текст исключения

code

Код исключения

file

Имя файла, в котором было вызвано исключение

line

Номер строки, в которой было вызвано исключение

Содержание

  • Exception::__construct — Создать исключение
  • Exception::getMessage — Получает сообщение исключения
  • Exception::getPrevious — Возвращает предыдущее исключение
  • Exception::getCode — Получает код исключения
  • Exception::getFile — Получает файл, в котором возникло исключение
  • Exception::getLine — Получает строку, в которой возникло исключение
  • Exception::getTrace — Получает трассировку стека
  • Exception::getTraceAsString — Получает трассировку стека в виде строки
  • Exception::__toString — Строковое представление исключения
  • Exception::__clone — Клонировать исключение


Создать исключение

  • « Exception
  • Exception::getMessage »
  • PHP Manual
  • Exception
  • Создать исключение

Exception::__construct

(PHP 5, PHP 7)

Exception::__construct — Создать исключение

Описание

public Exception::__construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] )

Создает исключение.

Список параметров

message

Текст сообщения.

code

Код исключения.

previous

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

Замечание: Вызов конструктора класса Exception из его подкласса, игнорирует аргументы по умолчанию, если свойства $code и $message уже установлены.

Список изменений

Версия | Описание
7.0.0 | Параметр previous теперь имеет тип Throwable.
5.3.0 | Был добавлен параметр previous.

Примечания

Замечание:

Параметр message не является бинарно-безопасным.


Получает сообщение исключения

  • « Exception::__construct
  • Exception::getPrevious »
  • PHP Manual
  • Exception
  • Получает сообщение исключения

Exception::getMessage

(PHP 5, PHP 7)

Exception::getMessage — Получает сообщение исключения

Описание

final public Exception::getMessage ( void ) : string

Возвращает сообщение исключения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сообщение исключения в виде строки.

Примеры

Пример #1 Пример использования Exception::getMessage()

<?php
try {
    throw new Exception("Какое-нибудь сообщение об ошибке");
} catch(Exception $e) {
    echo $e->getMessage();
}
?>

Результатом выполнения данного примера будет что-то подобное:

Какое-нибудь сообщение об ошибке

Смотрите также

  • Throwable::getMessage() - Получает сообщение ошибки


Возвращает предыдущее исключение

  • « Exception::getMessage
  • Exception::getCode »
  • PHP Manual
  • Exception
  • Возвращает предыдущее исключение

Exception::getPrevious

(PHP 5 >= 5.3.0, PHP 7)

Exception::getPrevious — Возвращает предыдущее исключение

Описание

final public Exception::getPrevious ( void ) : Throwable

Возвращает предыдущее исключение (переданное третьим параметром в Exception::__construct()).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает предыдущий объект, реализующий Throwable или NULL, если такового нет.

Список изменений

Версия | Описание
7.0.0 | Возвращаемый тип изменен на Throwable.

Примеры

Пример #1 Пример использования Exception::getPrevious()

Проход и печать цепи исключений.

<?php
class MyCustomException extends Exception {}

function doStuff() {
    try {
        throw new InvalidArgumentException("Ты делаешь это неправильно!", 112);
    } catch(Exception $e) {
        throw new MyCustomException("Что-то случилось", 911, $e);
    }
}

try {
    doStuff();
} catch(Exception $e) {
    do {
        printf("%s:%d %s (%d) [%s]\n", $e->getFile(), $e->getLine(), $e->getMessage(), $e->getCode(), get_class($e));
    } while($e = $e->getPrevious());
}
?>

Результатом выполнения данного примера будет что-то подобное:

/home/bjori/ex.php:8 Что-то случилось (911) [MyCustomException]
/home/bjori/ex.php:6 Ты делаешь это неправильно! (112) [InvalidArgumentException]

Смотрите также

  • Throwable::getPrevious() - Возвращает предыдущий Throwable


Получает код исключения

  • « Exception::getPrevious
  • Exception::getFile »
  • PHP Manual
  • Exception
  • Получает код исключения

Exception::getCode

(PHP 5, PHP 7)

Exception::getCode — Получает код исключения

Описание

final public Exception::getCode ( void ) : mixed

Возвращает код исключения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код исключения типа integer у класса Exception, но у потомков класса Exception может быть другой тип (например, типа string в PDOException).

Примеры

Пример #1 Пример использования Exception::getCode()

<?php
try {
    throw new Exception("Какое-нибудь сообщение об ошибке", 30);
} catch(Exception $e) {
    echo "Код исключения: " . $e->getCode();
}
?>

Результатом выполнения данного примера будет что-то подобное:

Код исключения: 30

Смотрите также

  • Throwable::getCode() - Возвращает код исключения


Получает файл, в котором возникло исключение

  • « Exception::getCode
  • Exception::getLine »
  • PHP Manual
  • Exception
  • Получает файл, в котором возникло исключение

Exception::getFile

(PHP 5, PHP 7)

Exception::getFile — Получает файл, в котором возникло исключение

Описание

final public Exception::getFile ( void ) : string

Получить имя файла, где исключение было создано.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла, в котором исключение было создано.

Примеры

Пример #1 Пример использования Exception::getFile()

<?php
try {
    throw new Exception;
} catch(Exception $e) {
    echo $e->getFile();
}
?>

Результатом выполнения данного примера будет что-то подобное:

/home/bjori/tmp/ex.php

Смотрите также

  • Throwable::getFile() - Возвращает файл, в котором произошло исключение


Получает строку, в которой возникло исключение

  • « Exception::getFile
  • Exception::getTrace »
  • PHP Manual
  • Exception
  • Получает строку, в которой возникло исключение

Exception::getLine

(PHP 5, PHP 7)

Exception::getLine — Получает строку, в которой возникло исключение

Описание

final public Exception::getLine ( void ) : int

Получить номер строки, где исключение было создано

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает номер строки, где было создано исключение.

Примеры

Пример #1 Пример использования Exception::getLine()

<?php
try {
    throw new Exception("Какое-нибудь сообщение об ошибке");
} catch(Exception $e) {
    echo "Исключение было создано на строке: " . $e->getLine();
}
?>

Результатом выполнения данного примера будет что-то подобное:

Исключение было создано на строке: 3

Смотрите также

  • Throwable::getLine() - Получает строку скрипта, в которой данный объект был выброшен


Получает трассировку стека

  • « Exception::getLine
  • Exception::getTraceAsString »
  • PHP Manual
  • Exception
  • Получает трассировку стека

Exception::getTrace

(PHP 5, PHP 7)

Exception::getTrace — Получает трассировку стека

Описание

final public Exception::getTrace ( void ) : array

Возвращает трассировку стека исключения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает трассировку стека исключения в виде массива (array).

Примеры

Пример #1 Пример использования Exception::getTrace()

<?php
function test() {
 throw new Exception;
}

try {
 test();
} catch(Exception $e) {
 var_dump($e->getTrace());
}
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(4) {
    ["file"]=>
    string(22) "/home/bjori/tmp/ex.php"
    ["line"]=>
    int(7)
    ["function"]=>
    string(4) "test"
    ["args"]=>
    array(0) {
    }
  }
}

Смотрите также

  • Throwable::getTrace() - Возвращает трассировку стека


Получает трассировку стека в виде строки

  • « Exception::getTrace
  • Exception::__toString »
  • PHP Manual
  • Exception
  • Получает трассировку стека в виде строки

Exception::getTraceAsString

(PHP 5, PHP 7)

Exception::getTraceAsString — Получает трассировку стека в виде строки

Описание

final public Exception::getTraceAsString ( void ) : string

Возвращает трассировку стека исключения в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает трассировку стека исключения в виде строки.

Примеры

Пример #1 Пример использования Exception::getTraceAsString()

<?php
function test() {
    throw new Exception;
}

try {
    test();
} catch(Exception $e) {
    echo $e->getTraceAsString();
}
?>

Результатом выполнения данного примера будет что-то подобное:

#0 /home/bjori/tmp/ex.php(7): test()
#1 {main}

Смотрите также

  • Throwable::getTraceAsString() - Получает результаты трассировки стека в виде строки


Строковое представление исключения

  • « Exception::getTraceAsString
  • Exception::__clone »
  • PHP Manual
  • Exception
  • Строковое представление исключения

Exception::__toString

(PHP 5, PHP 7)

Exception::__toString — Строковое представление исключения

Описание

public Exception::__toString ( void ) : string

Возвращает исключение в виде строки (string).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает исключение в виде строки (string).

Примеры

Пример #1 Пример использования Exception::__toString()

<?php
try {
    throw new Exception("Какое-нибудь сообщение об ошибке");
} catch(Exception $e) {
    echo $e;
}
?>

Результатом выполнения данного примера будет что-то подобное:

exception 'Exception' with message 'Какое-нибудь сообщение об ошибке' in /home/bjori/tmp/ex.php:3
Stack trace:
#0 {main}

Смотрите также

  • Throwable::__toString() - Получает строковое представление выброшенного объекта


Клонировать исключение

  • « Exception::__toString
  • ErrorException »
  • PHP Manual
  • Exception
  • Клонировать исключение

Exception::__clone

(PHP 5, PHP 7)

Exception::__clone — Клонировать исключение

Описание

final private Exception::__clone ( void ) : void

Пытается клонировать исключение, что приводит к фатальной ошибке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Исключения не поддаются клонированию.


ErrorException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Исключение в случае ошибки.

Обзор классов

ErrorException extends Exception {
/* Свойства */
protected int $severity ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
public __construct ([ string $message = "" [, int $code = 0 [, int $severity = E_ERROR [, string $filename = __FILE__ [, int $lineno = __LINE__ [, Exception $previous = NULL ]]]]]] )
final public getSeverity ( void ) : int
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Свойства

severity

Серьезность исключения

Примеры

Пример #1 Использование set_error_handler() для изменения сообщений об ошибках в ErrorException.

<?php
function exception_error_handler($severity, $message, $file, $line) {
    if (!(error_reporting() & $severity)) {
        // Этот код ошибки не входит в error_reporting
        return;
    }
    throw new ErrorException($message, 0, $severity, $file, $line);
}
set_error_handler("exception_error_handler");

/* вызываем исключение */
strpos();
?>

Результатом выполнения данного примера будет что-то подобное:

Fatal error: Uncaught exception 'ErrorException' with message 'strpos() expects at least 2 parameters, 0 given' in /home/bjori/tmp/ex.php:12
Stack trace:
#0 [internal function]: exception_error_handler(2, 'strpos() expect...', '/home/bjori/php...', 12, Array)
#1 /home/bjori/php/cleandocs/test.php(12): strpos()
#2 {main}
  thrown in /home/bjori/tmp/ex.php on line 12

Содержание

  • ErrorException::__construct — Создает исключение
  • ErrorException::getSeverity — Получает серьезность исключения


Создает исключение

  • « ErrorException
  • ErrorException::getSeverity »
  • PHP Manual
  • ErrorException
  • Создает исключение

ErrorException::__construct

(PHP 5 >= 5.1.0, PHP 7)

ErrorException::__construct — Создает исключение

Описание

public ErrorException::__construct ([ string $message = "" [, int $code = 0 [, int $severity = E_ERROR [, string $filename = __FILE__ [, int $lineno = __LINE__ [, Exception $previous = NULL ]]]]]] )

Создает исключение.

Список параметров

message

Текст исключения.

code

Код исключения.

severity

Уровень серьезности исключения.

Замечание:

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

filename

Имя файла, где вызвано исключение.

lineno

Номер строки, где вызвано исключение.

previous

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

Список изменений

Версия | Описание
5.3.0 | Добавлен параметр previous.


Получает серьезность исключения

  • « ErrorException::__construct
  • Error »
  • PHP Manual
  • ErrorException
  • Получает серьезность исключения

ErrorException::getSeverity

(PHP 5 >= 5.1.0, PHP 7)

ErrorException::getSeverity — Получает серьезность исключения

Описание

final public ErrorException::getSeverity ( void ) : int

Возвращает серьезность исключения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает уровень серьезности исключения.

Примеры

Пример #1 Пример использования ErrorException::getSeverity()

<?php
try {
    throw new ErrorException("Сообщение об исключении", 0, E_USER_ERROR);
} catch(ErrorException $e) {
    echo "Серьезность этого исключения равна: " . $e->getSeverity();
    var_dump($e->getSeverity() === E_USER_ERROR);
}
?>

Результатом выполнения данного примера будет что-то подобное:

Серьезность этого исключения равна: 256
bool(true)


Error

(PHP 7)

Введение

Error - базовый класс для всех внутренних ошибок PHP.

Обзор классов

Error implements Throwable {
/* Свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
public __construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] )
final public getMessage ( void ) : string
final public getPrevious ( void ) : Throwable
final public getCode ( void ) : mixed
final public getFile ( void ) : string
final public getLine ( void ) : int
final public getTrace ( void ) : array
final public getTraceAsString ( void ) : string
public __toString ( void ) : string
final private __clone ( void ) : void
}

Свойства

message

Сообщение об ошибке

code

Код ошибки

file

Имя файла, в котором произошла ошибка

line

Номер строки, в которой произошла ошибка

Содержание

  • Error::__construct — Создает объект класса Error
  • Error::getMessage — Получает сообщение об ошибке
  • Error::getPrevious — Возвращает предыдущий Throwable
  • Error::getCode — Возвращает код ошибки
  • Error::getFile — Получает файл, в котором произошла ошибка
  • Error::getLine — Получает номер строки, в которой произошла ошибка
  • Error::getTrace — Получает трассировку стека
  • Error::getTraceAsString — Получает трассировку стека в виде строки
  • Error::__toString — Строковое представление ошибки
  • Error::__clone — Клонирует ошибку


Создает объект класса Error

  • « Error
  • Error::getMessage »
  • PHP Manual
  • Error
  • Создает объект класса Error

Error::__construct

(Информация о версии неизвестна, возможно, только в Git)

Error::__construct — Создает объект класса Error

Описание

public Error::__construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] )

Создает объект класса Error.

Список параметров

message

Сообщение об ошибке.

code

Код ошибки.

previous

Предыдущий объект, реализующий интерфейс throwable, используется для создания цепочки исключений.

Примечания

Замечание:

Значение message НЕ является безопасным для бинарных данных, то есть в тексте сообщения нельзя использовать символ с кодом \0.


Получает сообщение об ошибке

  • « Error::__construct
  • Error::getPrevious »
  • PHP Manual
  • Error
  • Получает сообщение об ошибке

Error::getMessage

(Информация о версии неизвестна, возможно, только в Git)

Error::getMessage — Получает сообщение об ошибке

Описание

final public Error::getMessage ( void ) : string

Возвращает сообщение об ошибке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сообщение об ошибке в виде строки.

Примеры

Пример #1 Пример использования Error::getMessage()

<?php
try {
    throw new Error("Страшная ошибка");
} catch(Error $e) {
    echo $e->getMessage();
}
?>

Результатом выполнения данного примера будет что-то подобное:

Страшная ошибка

Смотрите также

  • Throwable::getMessage() - Получает сообщение ошибки


Возвращает предыдущий Throwable

  • « Error::getMessage
  • Error::getCode »
  • PHP Manual
  • Error
  • Возвращает предыдущий Throwable

Error::getPrevious

(Информация о версии неизвестна, возможно, только в Git)

Error::getPrevious — Возвращает предыдущий Throwable

Описание

final public Error::getPrevious ( void ) : Throwable

Возвращает предыдущий объект Throwable (третий параметр конструктора Error::__construct()).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает предыдущий объект Throwable, если он есть, и NULL, если его нет.

Примеры

Пример #1 Пример использования Error::getPrevious()

Проход и печать цепи исключений.

<?php
class MyCustomError extends Error {}

function doStuff() {
    try {
        throw new InvalidArgumentError("Вы делаете это неправильно!", 112);
    } catch(Error $e) {
        throw new MyCustomError("Что-то случилось", 911, $e);
    }
}

try {
    doStuff();
} catch(Error $e) {
    do {
        printf("%s:%d %s (%d) [%s]\n", $e->getFile(), $e->getLine(), $e->getMessage(), $e->getCode(), get_class($e));
    } while($e = $e->getPrevious());
}
?>

Результатом выполнения данного примера будет что-то подобное:

/home/bjori/ex.php:8 Что-то случилось (911) [MyCustomError]
/home/bjori/ex.php:6 Вы делаете это неправильно! (112) [InvalidArgumentError]

Смотрите также

  • Throwable::getPrevious() - Возвращает предыдущий Throwable


Возвращает код ошибки

  • « Error::getPrevious
  • Error::getFile »
  • PHP Manual
  • Error
  • Возвращает код ошибки

Error::getCode

(Информация о версии неизвестна, возможно, только в Git)

Error::getCode — Возвращает код ошибки

Описание

final public Error::getCode ( void ) : mixed

Возвращает код ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код ошибки типа integer

Примеры

Пример #1 Пример использованияError::getCode()

<?php
try {
    throw new Error("Какое-то сообщение об ошибке", 30);
} catch(Error $e) {
    echo "Код ошибки: " . $e->getCode();
}
?>

Результатом выполнения данного примера будет что-то подобное:

Код ошибки: 30

Смотрите также

  • Throwable::getCode() - Возвращает код исключения


Получает файл, в котором произошла ошибка

  • « Error::getCode
  • Error::getLine »
  • PHP Manual
  • Error
  • Получает файл, в котором произошла ошибка

Error::getFile

(Информация о версии неизвестна, возможно, только в Git)

Error::getFile — Получает файл, в котором произошла ошибка

Описание

final public Error::getFile ( void ) : string

Получить имя файла, в котором произошла ошибка.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла, в котором произошла ошибка.

Примеры

Пример #1 Пример использования Error::getFile()

<?php
try {
    throw new Error;
} catch(Error $e) {
    echo $e->getFile();
}
?>

Результатом выполнения данного примера будет что-то подобное:

/home/bjori/tmp/ex.php

Смотрите также

  • Throwable::getFile() - Возвращает файл, в котором произошло исключение


Получает номер строки, в которой произошла ошибка

  • « Error::getFile
  • Error::getTrace »
  • PHP Manual
  • Error
  • Получает номер строки, в которой произошла ошибка

Error::getLine

(Информация о версии неизвестна, возможно, только в Git)

Error::getLine — Получает номер строки, в которой произошла ошибка

Описание

final public Error::getLine ( void ) : int

Получить номер строки, в которой произошла ошибка.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает номер строки, в которой произошла ошибка.

Примеры

Пример #1 Пример использованияError::getLine()

<?php
try {
    throw new Error("Какое-то сообщение об ошибке");
} catch(Error $e) {
    echo "Ошибка создана в строке: " . $e->getLine();
}
?>

Результатом выполнения данного примера будет что-то подобное:

Ошибка создана в строке: 3

Смотрите также

  • Throwable::getLine() - Получает строку скрипта, в которой данный объект был выброшен


Получает трассировку стека

  • « Error::getLine
  • Error::getTraceAsString »
  • PHP Manual
  • Error
  • Получает трассировку стека

Error::getTrace

(Информация о версии неизвестна, возможно, только в Git)

Error::getTrace — Получает трассировку стека

Описание

final public Error::getTrace ( void ) : array

Возвращает трассировку стека.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает трассировку стека в виде массива (array).

Примеры

Пример #1 Пример использования Error::getTrace()

<?php
function test() {
 throw new Error;
}

try {
 test();
} catch(Error $e) {
 var_dump($e->getTrace());
}
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(4) {
    ["file"]=>
    string(22) "/home/bjori/tmp/ex.php"
    ["line"]=>
    int(7)
    ["function"]=>
    string(4) "test"
    ["args"]=>
    array(0) {
    }
  }
}

Смотрите также

  • Throwable::getTrace() - Возвращает трассировку стека


Получает трассировку стека в виде строки

  • « Error::getTrace
  • Error::__toString »
  • PHP Manual
  • Error
  • Получает трассировку стека в виде строки

Error::getTraceAsString

(Информация о версии неизвестна, возможно, только в Git)

Error::getTraceAsString — Получает трассировку стека в виде строки

Описание

final public Error::getTraceAsString ( void ) : string

Возвращает трассировку стека в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает трассировку стека в виде строки.

Примеры

Пример #1 Пример использования Error::getTraceAsString()

<?php
function test() {
    throw new Error;
}

try {
    test();
} catch(Error $e) {
    echo $e->getTraceAsString();
}
?>

Результатом выполнения данного примера будет что-то подобное:

#0 /home/bjori/tmp/ex.php(7): test()
#1 {main}

Смотрите также

  • Throwable::getTraceAsString() - Получает результаты трассировки стека в виде строки


Строковое представление ошибки

  • « Error::getTraceAsString
  • Error::__clone »
  • PHP Manual
  • Error
  • Строковое представление ошибки

Error::__toString

(Информация о версии неизвестна, возможно, только в Git)

Error::__toString — Строковое представление ошибки

Описание

public Error::__toString ( void ) : string

Возвращает строковое (string) представление ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое (string) представление ошибки.

Примеры

Пример #1 Пример использования Error::__toString()

<?php
try {
    throw new Error("Сообщение об ошибке");
} catch(Error $e) {
    echo $e;
}
?>

Результатом выполнения данного примера будет что-то подобное:

Error: Сообщение об ошибке in /home/bjori/tmp/ex.php:3
Stack trace:
#0 {main}

Смотрите также

  • Throwable::__toString() - Получает строковое представление выброшенного объекта


Клонирует ошибку

  • « Error::__toString
  • ArgumentCountError »
  • PHP Manual
  • Error
  • Клонирует ошибку

Error::__clone

(Информация о версии неизвестна, возможно, только в Git)

Error::__clone — Клонирует ошибку

Описание

final private Error::__clone ( void ) : void

Объект класса Error нельзя клонировать, так что эта функция вызовет фатальную ошибку.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Объект класса Error нельзя клонировать.


ArgumentCountError

(PHP 7 >= PHP 7.1.0)

Введение

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

Обзор классов

ArgumentCountError extends TypeError {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Error::getMessage ( void ) : string
final public Error::getPrevious ( void ) : Throwable
final public Error::getCode ( void ) : mixed
final public Error::getFile ( void ) : string
final public Error::getLine ( void ) : int
final public Error::getTrace ( void ) : array
final public Error::getTraceAsString ( void ) : string
public Error::__toString ( void ) : string
final private Error::__clone ( void ) : void
}


ArithmeticError

(PHP 7)

Введение

ArithmeticError выбрасывается, когда возникает ошибка при выполнении математических операций. В PHP 7.0 такие ошибки возможно спровоцировать побитовым смещением на отрицательное значение, или вызовом функции intdiv(), приводящей значение, не входящее в допустимый интервал целых чисел (integer).

Обзор классов

ArithmeticError implements Error {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Error::getMessage ( void ) : string
final public Error::getPrevious ( void ) : Throwable
final public Error::getCode ( void ) : mixed
final public Error::getFile ( void ) : string
final public Error::getLine ( void ) : int
final public Error::getTrace ( void ) : array
final public Error::getTraceAsString ( void ) : string
public Error::__toString ( void ) : string
final private Error::__clone ( void ) : void
}


AssertionError

(PHP 7)

Введение

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

Обзор классов

AssertionError implements Error {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Error::getMessage ( void ) : string
final public Error::getPrevious ( void ) : Throwable
final public Error::getCode ( void ) : mixed
final public Error::getFile ( void ) : string
final public Error::getLine ( void ) : int
final public Error::getTrace ( void ) : array
final public Error::getTraceAsString ( void ) : string
public Error::__toString ( void ) : string
final private Error::__clone ( void ) : void
}


DivisionByZeroError

(PHP 7)

Введение

DivisionByZeroError выбрасывается при попытке поделить число на ноль.

Обзор классов

DivisionByZeroError implements Error {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Error::getMessage ( void ) : string
final public Error::getPrevious ( void ) : Throwable
final public Error::getCode ( void ) : mixed
final public Error::getFile ( void ) : string
final public Error::getLine ( void ) : int
final public Error::getTrace ( void ) : array
final public Error::getTraceAsString ( void ) : string
public Error::__toString ( void ) : string
final private Error::__clone ( void ) : void
}


CompileError

(PHP 7 > 7.3.0)

Введение

Исключение CompileError выбрасывается в некоторых ошибок компиляции, которые ранее выдавали фатальную ошибку.

Обзор классов

CompileError extends Error {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Error::getMessage ( void ) : string
final public Error::getPrevious ( void ) : Throwable
final public Error::getCode ( void ) : mixed
final public Error::getFile ( void ) : string
final public Error::getLine ( void ) : int
final public Error::getTrace ( void ) : array
final public Error::getTraceAsString ( void ) : string
public Error::__toString ( void ) : string
final private Error::__clone ( void ) : void
}


ParseError

(PHP 7)

Введение

ParseError выбрасывается, когда возникает ошибка при разборе PHP-кода, например, когда вызывается функция eval().

Замечание: Начиная с PHP 7.3.0, класс ParseError наследуется от CompileError Ранее этот класс расширял класс Error.

Обзор классов

ParseError extends CompileError {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Error::getMessage ( void ) : string
final public Error::getPrevious ( void ) : Throwable
final public Error::getCode ( void ) : mixed
final public Error::getFile ( void ) : string
final public Error::getLine ( void ) : int
final public Error::getTrace ( void ) : array
final public Error::getTraceAsString ( void ) : string
public Error::__toString ( void ) : string
final private Error::__clone ( void ) : void
}


TypeError

(PHP 7)

Введение

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

Обзор классов

TypeError extends Error {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Error::getMessage ( void ) : string
final public Error::getPrevious ( void ) : Throwable
final public Error::getCode ( void ) : mixed
final public Error::getFile ( void ) : string
final public Error::getLine ( void ) : int
final public Error::getTrace ( void ) : array
final public Error::getTraceAsString ( void ) : string
public Error::__toString ( void ) : string
final private Error::__clone ( void ) : void
}


Встроенные интерфейсы и классы

Содержание

  • Traversable
  • Iterator
  • IteratorAggregate
  • Throwable
  • ArrayAccess
  • Serializable
  • Closure
  • Generator
  • WeakReference

См. также Интерфейсы SPL и Предопределенные классы.


Интерфейс Traversable

(PHP 5, PHP 7)

Введение

Интерфейс, определяющий, является ли класс обходимым (traversable) с использованием foreach.

Абстрактный базовый интерфейс, который не может быть реализован сам по себе. Вместо этого должен реализовываться IteratorAggregate или Iterator.

Замечание:

Внутренние (встроенные) классы, которые реализуют этот интерфейс, могут быть использованы в конструкции foreach и не обязаны реализовывать IteratorAggregate или Iterator.

Замечание:

Это внутренний интерфейс, который не может быть реализован в скрипте PHP. Вместо него нужно использовать либо IteratorAggregate, либо Iterator. При реализации интерфейса, наследующего от Traversable, убедитесь, что в секции implements перед его именем стоит IteratorAggregate или Iterator.

Обзор интерфейсов

Traversable {
}

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


Интерфейс Iterator

(PHP 5, PHP 7)

Введение

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

Обзор интерфейсов

Iterator extends Traversable {
/* Методы */
abstract public current ( void ) : mixed
abstract public key ( void ) : scalar
abstract public next ( void ) : void
abstract public rewind ( void ) : void
abstract public valid ( void ) : bool
}

Предопределенные итераторы

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

Примеры

Пример #1 Основы использования

Этот пример демонстрирует в каком порядке вызываются методы, когда используется с итератором оператор foreach.

<?php
class myIterator implements Iterator {
    private $position = 0;
    private $array = array(
        "firstelement",
        "secondelement",
        "lastelement",
    );

    public function __construct() {
        $this->position = 0;
    }

    public function rewind() {
        var_dump(__METHOD__);
        $this->position = 0;
    }

    public function current() {
        var_dump(__METHOD__);
        return $this->array[$this->position];
    }

    public function key() {
        var_dump(__METHOD__);
        return $this->position;
    }

    public function next() {
        var_dump(__METHOD__);
        ++$this->position;
    }

    public function valid() {
        var_dump(__METHOD__);
        return isset($this->array[$this->position]);
    }
}

$it = new myIterator;

foreach($it as $key => $value) {
    var_dump($key, $value);
    echo "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

string(18) "myIterator::rewind"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(0)
string(12) "firstelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(1)
string(13) "secondelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(2)
string(11) "lastelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"

Содержание

  • Iterator::current — Возврат текущего элемента
  • Iterator::key — Возврат ключа текущего элемента
  • Iterator::next — Переход к следующему элементу
  • Iterator::rewind — Перемотать итератор на первый элемент
  • Iterator::valid — Проверяет корректность текущей позиции


Возврат текущего элемента

  • « Iterator
  • Iterator::key »
  • PHP Manual
  • Iterator
  • Возврат текущего элемента

Iterator::current

(PHP 5, PHP 7)

Iterator::current — Возврат текущего элемента

Описание

abstract public Iterator::current ( void ) : mixed

Возвращает текущий элемент.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Может возвращать любой тип.


Возврат ключа текущего элемента

  • « Iterator::current
  • Iterator::next »
  • PHP Manual
  • Iterator
  • Возврат ключа текущего элемента

Iterator::key

(PHP 5, PHP 7)

Iterator::key — Возврат ключа текущего элемента

Описание

abstract public Iterator::key ( void ) : scalar

Возвращает ключ текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

При успехе возвращает scalar, или же NULL при неудаче.

Ошибки

Создает E_NOTICE при неудачном выполнении.


Переход к следующему элементу

  • « Iterator::key
  • Iterator::rewind »
  • PHP Manual
  • Iterator
  • Переход к следующему элементу

Iterator::next

(PHP 5, PHP 7)

Iterator::next — Переход к следующему элементу

Описание

abstract public Iterator::next ( void ) : void

Передвигает текущую позицию к следующему элементу.

Замечание:

Метод вызывается после каждой итерации foreach.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Любое возвращаемое значение игнорируется.


Перемотать итератор на первый элемент

  • « Iterator::next
  • Iterator::valid »
  • PHP Manual
  • Iterator
  • Перемотать итератор на первый элемент

Iterator::rewind

(PHP 5, PHP 7)

Iterator::rewind — Перемотать итератор на первый элемент

Описание

abstract public Iterator::rewind ( void ) : void

Возвращает итератор обратно на первый элемент.

Замечание:

В начале цикла foreach этот метод вызывается первым. Этот метод не будет вызван после цикла foreach.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Любое возвращаемое значение игнорируется.


Проверяет корректность текущей позиции

  • « Iterator::rewind
  • IteratorAggregate »
  • PHP Manual
  • Iterator
  • Проверяет корректность текущей позиции

Iterator::valid

(PHP 5, PHP 7)

Iterator::valid — Проверяет корректность текущей позиции

Описание

abstract public Iterator::valid ( void ) : bool

Этот метод вызывается после Iterator::rewind() и Iterator::next() чтобы проверить, корректна ли текущая позиция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращаемое значение будет приведено к типу boolean и затем использовано. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Интерфейс IteratorAggregate

(PHP 5, PHP 7)

Введение

Интерфейс для создания внешнего итератора.

Обзор интерфейсов

IteratorAggregate extends Traversable {
/* Методы */
abstract public getIterator ( void ) : Traversable
}

Пример #1 Основы использования

<?php
class myData implements IteratorAggregate {
    public $property1 = "Первое общедоступное свойство";
    public $property2 = "Второе общедоступное свойство";
    public $property3 = "Третье общедоступное свойство";

    public function __construct() {
        $this->property4 = "последнее свойство";
    }

    public function getIterator() {
        return new ArrayIterator($this);
    }
}

$obj = new myData;

foreach($obj as $key => $value) {
    var_dump($key, $value);
    echo "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

string(9) "property1"
string(56) "Первое общедоступное свойство"

string(9) "property2"
string(56) "Второе общедоступное свойство"

string(9) "property3"
string(56) "Третье общедоступное свойство"

string(9) "property4"
string(35) "последнее свойство"

Содержание

  • IteratorAggregate::getIterator — Получить внешний итератор


Получить внешний итератор

  • « IteratorAggregate
  • Throwable »
  • PHP Manual
  • IteratorAggregate
  • Получить внешний итератор

IteratorAggregate::getIterator

(PHP 5, PHP 7)

IteratorAggregate::getIterator — Получить внешний итератор

Описание

abstract public IteratorAggregate::getIterator ( void ) : Traversable

Возвращает внешний итератор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Экземпляр объекта, реализующий Iterator или Traversable

Ошибки

Выбрасывает Exception в случае неудачи.


Throwable

(PHP 7)

Введение

Throwable является родительским интерфейсом для всех объектов, выбрасывающихся с помощью выражения throw в PHP 7, включая классы Error и Exception.

Замечание:

Классы PHP не могут напрямую реализовать интерфейс Throwable. Вместо этого они могут наследовать подкласс Exception.

Обзор интерфейсов

Throwable {
/* Методы */
abstract public getMessage ( void ) : string
abstract public getCode ( void ) : int
abstract public getFile ( void ) : string
abstract public getLine ( void ) : int
abstract public getTrace ( void ) : array
abstract public getTraceAsString ( void ) : string
abstract public getPrevious ( void ) : Throwable
abstract public __toString ( void ) : string
}

Содержание

  • Throwable::getMessage — Получает сообщение ошибки
  • Throwable::getCode — Возвращает код исключения
  • Throwable::getFile — Возвращает файл, в котором произошло исключение
  • Throwable::getLine — Получает строку скрипта, в которой данный объект был выброшен
  • Throwable::getTrace — Возвращает трассировку стека
  • Throwable::getTraceAsString — Получает результаты трассировки стека в виде строки
  • Throwable::getPrevious — Возвращает предыдущий Throwable
  • Throwable::__toString — Получает строковое представление выброшенного объекта


Получает сообщение ошибки

  • « Throwable
  • Throwable::getCode »
  • PHP Manual
  • Throwable
  • Получает сообщение ошибки

Throwable::getMessage

(PHP 7)

Throwable::getMessage — Получает сообщение ошибки

Описание

abstract public Throwable::getMessage ( void ) : string

Возвращает сообщение ошибки данного выброшенного объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое сообщение.

Смотрите также

  • Exception::getMessage() - Получает сообщение исключения


Возвращает код исключения

  • « Throwable::getMessage
  • Throwable::getFile »
  • PHP Manual
  • Throwable
  • Возвращает код исключения

Throwable::getCode

(PHP 7)

Throwable::getCode — Возвращает код исключения

Описание

abstract public Throwable::getCode ( void ) : int

Возвращает код ошибки выброшенного объекта, к которому применена данная функция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код исключения в виде целого числа (integer) в Exception, но возможен и другой возвращаемый тип в наследниках Exception (например, в виде строки (string), если тип ошибки PDOException).

Смотрите также

  • Exception::getCode() - Получает код исключения


Возвращает файл, в котором произошло исключение

  • « Throwable::getCode
  • Throwable::getLine »
  • PHP Manual
  • Throwable
  • Возвращает файл, в котором произошло исключение

Throwable::getFile

(PHP 7)

Throwable::getFile — Возвращает файл, в котором произошло исключение

Описание

abstract public Throwable::getFile ( void ) : string

Возвращает имя файла, в котором данный объект был выброшен.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое значение имени файла.

Смотрите также

  • Exception::getFile() - Получает файл, в котором возникло исключение


Получает строку скрипта, в которой данный объект был выброшен

  • « Throwable::getFile
  • Throwable::getTrace »
  • PHP Manual
  • Throwable
  • Получает строку скрипта, в которой данный объект был выброшен

Throwable::getLine

(PHP 7)

Throwable::getLine — Получает строку скрипта, в которой данный объект был выброшен

Описание

abstract public Throwable::getLine ( void ) : int

Возвращает номер строки, в которой данный объект был выброшен.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленное значение строки.

Смотрите также

  • Exception::getLine() - Получает строку, в которой возникло исключение


Возвращает трассировку стека

  • « Throwable::getLine
  • Throwable::getTraceAsString »
  • PHP Manual
  • Throwable
  • Возвращает трассировку стека

Throwable::getTrace

(PHP 7)

Throwable::getTrace — Возвращает трассировку стека

Описание

abstract public Throwable::getTrace ( void ) : array

Возвращает трассировку стека в виде массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает трассировку стека в виде массива в таком же формате, что и debug_backtrace().

Смотрите также

  • Exception::getTrace() - Получает трассировку стека


Получает результаты трассировки стека в виде строки

  • « Throwable::getTrace
  • Throwable::getPrevious »
  • PHP Manual
  • Throwable
  • Получает результаты трассировки стека в виде строки

Throwable::getTraceAsString

(PHP 7)

Throwable::getTraceAsString — Получает результаты трассировки стека в виде строки

Описание

abstract public Throwable::getTraceAsString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает результаты трассировки стека в виде строки.

Смотрите также

  • Exception::getTraceAsString() - Получает трассировку стека в виде строки


Возвращает предыдущий Throwable

  • « Throwable::getTraceAsString
  • Throwable::__toString »
  • PHP Manual
  • Throwable
  • Возвращает предыдущий Throwable

Throwable::getPrevious

(PHP 7)

Throwable::getPrevious — Возвращает предыдущий Throwable

Описание

abstract public Throwable::getPrevious ( void ) : Throwable

Возвращает любой предыдущий Throwable (для примера, переданное третьим параметром в Exception::__construct()).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает предыдущий Throwable, если он доступен, или NULL в противном случае.

Смотрите также

  • Exception::getPrevious() - Возвращает предыдущее исключение


Получает строковое представление выброшенного объекта

  • « Throwable::getPrevious
  • ArrayAccess »
  • PHP Manual
  • Throwable
  • Получает строковое представление выброшенного объекта

Throwable::__toString

(PHP 7)

Throwable::__toString — Получает строковое представление выброшенного объекта

Описание

abstract public Throwable::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое (string) представление выброшенного объекта.

Смотрите также

  • Exception::__toString() - Строковое представление исключения


Интерфейс ArrayAccess

(PHP 5, PHP 7)

Введение

Интерфейс обеспечивает доступ к объектам в виде массивов.

Обзор интерфейсов

ArrayAccess {
/* Методы */
abstract public offsetExists ( mixed $offset ) : bool
abstract public offsetGet ( mixed $offset ) : mixed
abstract public offsetSet ( mixed $offset , mixed $value ) : void
abstract public offsetUnset ( mixed $offset ) : void
}

Пример #1 Основы использования

<?php
class obj implements ArrayAccess {
    private $container = array();

    public function __construct() {
        $this->container = array(
            "one"   => 1,
            "two"   => 2,
            "three" => 3,
        );
    }

    public function offsetSet($offset, $value) {
        if (is_null($offset)) {
            $this->container[] = $value;
        } else {
            $this->container[$offset] = $value;
        }
    }

    public function offsetExists($offset) {
        return isset($this->container[$offset]);
    }

    public function offsetUnset($offset) {
        unset($this->container[$offset]);
    }

    public function offsetGet($offset) {
        return isset($this->container[$offset]) ? $this->container[$offset] : null;
    }
}

$obj = new obj;

var_dump(isset($obj["two"]));
var_dump($obj["two"]);
unset($obj["two"]);
var_dump(isset($obj["two"]));
$obj["two"] = "A value";
var_dump($obj["two"]);
$obj[] = 'Append 1';
$obj[] = 'Append 2';
$obj[] = 'Append 3';
print_r($obj);
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
int(2)
bool(false)
string(7) "A value"
obj Object
(
    [container:obj:private] => Array
        (
            [one] => 1
            [three] => 3
            [two] => A value
            [0] => Append 1
            [1] => Append 2
            [2] => Append 3
        )

)

Содержание

  • ArrayAccess::offsetExists — Определяет, существует ли заданное смещение (ключ)
  • ArrayAccess::offsetGet — Возвращает заданное смещение (ключ)
  • ArrayAccess::offsetSet — Присваивает значение заданному смещению
  • ArrayAccess::offsetUnset — Удаляет смещение


Определяет, существует ли заданное смещение (ключ)

  • « ArrayAccess
  • ArrayAccess::offsetGet »
  • PHP Manual
  • ArrayAccess
  • Определяет, существует ли заданное смещение (ключ)

ArrayAccess::offsetExists

(PHP 5, PHP 7)

ArrayAccess::offsetExists — Определяет, существует ли заданное смещение (ключ)

Описание

abstract public ArrayAccess::offsetExists ( mixed $offset ) : bool

Определяет, существует или нет данное смещение (ключ).

Данный метод выполняется при использовании isset() или empty() на объектах, реализующих интерфейс ArrayAccess.

Замечание:

При использовании функции empty(), вызывается метод ArrayAccess::offsetGet() и проверка на пустоту произойдет, только если метод ArrayAccess::offsetExists() вернет TRUE.

Список параметров

offset

Смещение (ключ) для проверки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание:

Возвращаемое значение будет приведено к логическому типу, если возвращаемое значение не является логическим.

Примеры

Пример #1 Пример использования ArrayAccess::offsetExists()

<?php
class obj implements arrayaccess {
    public function offsetSet($offset, $value) {
        var_dump(__METHOD__);
    }
    public function offsetExists($var) {
        var_dump(__METHOD__);
        if ($var == "foobar") {
            return true;
        }
        return false;
    }
    public function offsetUnset($var) {
        var_dump(__METHOD__);
    }
    public function offsetGet($var) {
        var_dump(__METHOD__);
        return "value";
    }
}

$obj = new obj;

echo "Выполняется obj::offsetExists()\n";
var_dump(isset($obj["foobar"]));

echo "\nВыполняется obj::offsetExists() и obj::offsetGet()\n";
var_dump(empty($obj["foobar"]));

echo "\nВыполняется obj::offsetExists(), но *не* obj:offsetGet(), поскольку нечего возвращать\n";
var_dump(empty($obj["foobaz"]));
?>

Результатом выполнения данного примера будет что-то подобное:

Выполняется obj::offsetExists()
string(17) "obj::offsetExists"
bool(true)

Выполняется obj::offsetExists() и obj::offsetGet()
string(17) "obj::offsetExists"
string(14) "obj::offsetGet"
bool(false)

Выполняется obj::offsetExists(), но *не* obj:offsetGet(), поскольку нечего возвращать
string(17) "obj::offsetExists"
bool(true)


Возвращает заданное смещение (ключ)

  • « ArrayAccess::offsetExists
  • ArrayAccess::offsetSet »
  • PHP Manual
  • ArrayAccess
  • Возвращает заданное смещение (ключ)

ArrayAccess::offsetGet

(PHP 5, PHP 7)

ArrayAccess::offsetGet — Возвращает заданное смещение (ключ)

Описание

abstract public ArrayAccess::offsetGet ( mixed $offset ) : mixed

Возвращает заданное смещение (ключ).

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

Список параметров

offset

Смещение (ключ) для возврата.

Примечания

Замечание:

Начиная с PHP 5.3.4, смягчена проверка для прототипа метода, и возможна реализация данного метода с возвращением по ссылке. Это делает возможным косвенную модификацию для величин массива перегруженного объекта ArrayAccess.

Явная модификация - это такая модификация, при которой полностью заменяется значение величины массива, как в случае $obj[6] = 7. С другой стороны, при косвенной модификации заменяется только часть величины, или происходит попытка присвоения величины по ссылке другой переменной, как в случае $obj[6][7] = 7 или $var =& $obj[6]. Увеличение с использованием оператора ++ и уменьшение с использованием оператора -- также реализуются с помощью способа, который требует косвенную модификацию.

В то время как, явная модификация запускает вызов метода ArrayAccess::offsetSet(), косвенная модификация запускает вызов метода ArrayAccess::offsetGet(). В таком случае, реализация метода ArrayAccess::offsetGet() должна быть в состоянии возвращать результат по ссылке, в противном случае будет вызвано сообщение об ошибке уровня E_NOTICE.

Возвращаемые значения

Может возвращать значение любого типа.

Смотрите также

  • ArrayAccess::offsetExists() - Определяет, существует ли заданное смещение (ключ)


Присваивает значение заданному смещению

  • « ArrayAccess::offsetGet
  • ArrayAccess::offsetUnset »
  • PHP Manual
  • ArrayAccess
  • Присваивает значение заданному смещению

ArrayAccess::offsetSet

(PHP 5, PHP 7)

ArrayAccess::offsetSet — Присваивает значение заданному смещению

Описание

abstract public ArrayAccess::offsetSet ( mixed $offset , mixed $value ) : void

Присваивает значение указанному смещению (ключу).

Список параметров

offset

Смещение (ключ), которому будет присваиваться значение.

value

Значение для присвоения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание:

Параметр offset будет установлен в NULL, если другое значение недоступно, как показано в следующем примере.

<?php
$arrayaccess[] = "первое значение";
$arrayaccess[] = "второе значение";
print_r($arrayaccess);
?>

Результат выполнения данного примера:

Array
(
    [0] => first value
    [1] => second value
)

Замечание:

Данный метод не вызывается при присвоениях по ссылке и других косвенных изменений величин массива перегруженного объекта ArrayAccess (косвенные в том смысле, что они произведены не прямой заменой величины, а путем изменения часть элемента или свойства элемента массива, или присвоением элемента массива по ссылке другой переменой). Вместо этого, вызывается метод ArrayAccess::offsetGet(). Данная операция будет успешна только в том случае, если метод возвращает по ссылке, что доступно только начиная с PHP 5.3.4.


Удаляет смещение

  • « ArrayAccess::offsetSet
  • Serializable »
  • PHP Manual
  • ArrayAccess
  • Удаляет смещение

ArrayAccess::offsetUnset

(PHP 5, PHP 7)

ArrayAccess::offsetUnset — Удаляет смещение

Описание

abstract public ArrayAccess::offsetUnset ( mixed $offset ) : void

Удаляет смещение (ключ).

Замечание:

Этот метод не будет вызван при приведении типа к (unset)

Список параметров

offset

Смещение (ключ) для удаления.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Интерфейс Serializable

(PHP 5 >= 5.1.0, PHP 7)

Введение

Интерфейс для индивидуальной сериализации.

Классы, реализующие этот интерфейс, больше не поддерживают __sleep() и __wakeup(). Метод serialize вызывается всякий раз, когда необходима сериализация экземпляру класса. Этот метод не вызывает __destruct() и не имеет никаких побочных действий кроме тех, которые запрограммированы внутри него. Когда данные десериализуются, класс известен и соответствующий метод unserialize() вызывается как конструктор вместо вызова __construct(). Если вам необходимо вызвать стандартный конструктор, вы можете это сделать в этом методе.

Обзор интерфейсов

Serializable {
/* Методы */
abstract public serialize ( void ) : string
abstract public unserialize ( string $serialized ) : void
}

Пример #1 Основы использования

<?php
class obj implements Serializable {
    private $data;
    public function __construct() {
        $this->data = "Мои закрытые данные";
    }
    public function serialize() {
        return serialize($this->data);
    }
    public function unserialize($data) {
        $this->data = unserialize($data);
    }
    public function getData() {
        return $this->data;
    }
}

$obj = new obj;
$ser = serialize($obj);

var_dump($ser);

$newobj = unserialize($ser);

var_dump($newobj->getData());
?>

Результатом выполнения данного примера будет что-то подобное:

string(59) "C:3:"obj":44:{s:36:"Мои закрытые данные";}"
string(36) "Мои закрытые данные"

Содержание

  • Serializable::serialize — Представляет объект в виде строки
  • Serializable::unserialize — Создает объект


Представляет объект в виде строки

  • « Serializable
  • Serializable::unserialize »
  • PHP Manual
  • Serializable
  • Представляет объект в виде строки

Serializable::serialize

(PHP 5 >= 5.1.0, PHP 7)

Serializable::serialize — Представляет объект в виде строки

Описание

abstract public Serializable::serialize ( void ) : string

Возвращает строковое представление объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление объекта или NULL

Ошибки

Вызывает Exception при возвращении типов, отличных от строки или NULL

Смотрите также

  • __sleep()


Создает объект

  • « Serializable::serialize
  • Closure »
  • PHP Manual
  • Serializable
  • Создает объект

Serializable::unserialize

(PHP 5 >= 5.1.0, PHP 7)

Serializable::unserialize — Создает объект

Описание

abstract public Serializable::unserialize ( string $serialized ) : void

Вызывается во время десериализации объекта.

Замечание:

Этот метод действует как конструктор объекта. Метод __construct() не вызывается после этого метода.

Список параметров

serialized

Строковое представление объекта.

Возвращаемые значения

Возвращаемое значение этого метода игнорируется.

Смотрите также

  • __wakeup()


Класс Closure

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс, используемый для создания анонимных функций.

Анонимные функции, появившиеся в PHP 5.3, являются объектами данного класса. Ранее это считалось только деталью реализации, но начиная с PHP 5.4, этот класс получил методы, позволяющие контролировать анонимную функцию после её создания.

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

Обзор классов

Closure {
/* Методы */
private __construct ( void )
public static bind ( Closure $closure , object $newthis [, mixed $newscope = "static" ] ) : Closure
public bindTo ( object $newthis [, mixed $newscope = "static" ] ) : Closure
public call ( object $newthis [, mixed $... ] ) : mixed
public static fromCallable ( callable $callable ) : Closure
}

Содержание

  • Closure::__construct — Конструктор, запрещающий создание экземпляра
  • Closure::bind — Дублирует замыкание с указанием конкретного связанного объекта и области видимости класса
  • Closure::bindTo — Дублирует замыкание с указанием связанного объекта и области видимости класса
  • Closure::call — Связывает и запускает замыкание
  • Closure::fromCallable — Конвертирует callable в замыкание


Конструктор, запрещающий создание экземпляра

  • « Closure
  • Closure::bind »
  • PHP Manual
  • Closure
  • Конструктор, запрещающий создание экземпляра

Closure::__construct

(PHP 5 >= 5.3.0, PHP 7)

Closure::__construct — Конструктор, запрещающий создание экземпляра

Описание

private Closure::__construct ( void )

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

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Этот метод не возвращает никаких значений. Он просто выбрасывает ошибку типа E_RECOVERABLE_ERROR.

Смотрите также

  • Анонимные функции


Дублирует замыкание с указанием конкретного связанного объекта и области видимости класса

  • « Closure::__construct
  • Closure::bindTo »
  • PHP Manual
  • Closure
  • Дублирует замыкание с указанием конкретного связанного объекта и области видимости класса

Closure::bind

(PHP 5 >= 5.4.0, PHP 7)

Closure::bind — Дублирует замыкание с указанием конкретного связанного объекта и области видимости класса

Описание

public static Closure::bind ( Closure $closure , object $newthis [, mixed $newscope = "static" ] ) : Closure

Этот метод является статическим вариантом Closure::bindTo(). Смотрите документацию к указанному методу для подробной информации.

Список параметров

closure

Анонимная функция для привязывания к объекту.

newthis

Объект, к которому будет привязана переданная анонимная функция, или NULL для отсоединения функции от ее текущего объекта.

newscope

Область видимости класса, к которой привязывается замыкание, или 'static' для сохранения текущей области видимости. Если передан объект, то будет использован его класс. Этот параметр определяет видимость protected (защищенных) и private (закрытых) методов привязанного объекта. Запрещено в качестве этого параметра передавать (объектом) внутренний класс.

Возвращаемые значения

Возвращает новый объект Closure или FALSE в случае возникновения ошибки

Список изменений

Версия | Описание
7.0.0 | newscope больше не может быть (объектом) внутренним классом, как это было возможно ранее.

Примеры

Пример #1 Пример Closure::bind()

<?php
class A {
    private static $sfoo = 1;
    private $ifoo = 2;
}
$cl1 = static function() {
    return A::$sfoo;
};
$cl2 = function() {
    return $this->ifoo;
};

$bcl1 = Closure::bind($cl1, null, 'A');
$bcl2 = Closure::bind($cl2, new A(), 'A');
echo $bcl1(), "\n";
echo $bcl2(), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

1
2

Смотрите также

  • Анонимные функции
  • Closure::bindTo() - Дублирует замыкание с указанием связанного объекта и области видимости класса


Дублирует замыкание с указанием связанного объекта и области видимости класса

  • « Closure::bind
  • Closure::call »
  • PHP Manual
  • Closure
  • Дублирует замыкание с указанием связанного объекта и области видимости класса

Closure::bindTo

(PHP 5 >= 5.4.0, PHP 7)

Closure::bindTo — Дублирует замыкание с указанием связанного объекта и области видимости класса

Описание

public Closure::bindTo ( object $newthis [, mixed $newscope = "static" ] ) : Closure

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

"Связанный объект" определяет значение $this, которое будет доступно в теле функции, а "область видимости класса" представляет собой класс, который определяет к каким protected (защищенным) и private (закрытым) элементам этого объекта будет иметь доступ анонимная функция. Если точнее, то это те элементы, как если бы анонимная функция была бы методом класса, переданного в параметре newscope.

Статические замыкания не могут иметь привязанный объект (значение параметра newthis должно быть равно NULL), но эта функция может все равно использоваться для изменения его области видимости класса.

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

Замечание:

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

Список параметров

newthis

Объект, к которому будет привязана переданная анонимная функция, или NULL для отсоединения замыкания от ее текущего объекта.

newscope

Область видимости класса, к которой привязывается замыкание, или 'static' для сохранения текущей области видимости. Если передан объект, то будет использован его класс. Этот параметр определяет видимость protected (защищенных) и private (закрытых) методов привязанного объекта. Запрещается передавать в этот параметр внутренний класс (объект класса).

Возвращаемые значения

Возвращает новый объект Closure или FALSE в случае возникновения ошибки

Список изменений

Версия | Описание
7.0.0 | Параметр newscope больше не может быть задан внутренним классом (объектом класса). Ранее это было возможно.

Примеры

Пример #1 Пример Closure::bindTo()

<?php

class A {
    function __construct($val) {
        $this->val = $val;
    }
    function getClosure() {
        //возвращает замыкание, связанное с текущими объектом и областью видимости
        return function() { return $this->val; };
    }
}

$ob1 = new A(1);
$ob2 = new A(2);

$cl = $ob1->getClosure();
echo $cl(), "\n";
$cl = $cl->bindTo($ob2);
echo $cl(), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

1
2

Смотрите также

  • Анонимные функции
  • Closure::bind() - Дублирует замыкание с указанием конкретного связанного объекта и области видимости класса


Связывает и запускает замыкание

  • « Closure::bindTo
  • Closure::fromCallable »
  • PHP Manual
  • Closure
  • Связывает и запускает замыкание

Closure::call

(PHP 7)

Closure::call — Связывает и запускает замыкание

Описание

public Closure::call ( object $newthis [, mixed $... ] ) : mixed

Временно связывает замыкание с newthis и вызывает его с заданными параметрами.

Список параметров

newthis

Объект (object) для привязки к замыканию на время его вызова.

...

Ноль или больше параметров, которые передаются замыканию.

Возвращаемые значения

Возвращает возвращаемое значение замыкания

Примеры

Пример #1 Пример Closure::call()

<?php
class Value {
    protected $value;

    public function __construct($value) {
        $this->value = $value;
    }

    public function getValue() {
        return $this->value;
    }
}

$three = new Value(3);
$four = new Value(4);

$closure = function ($delta) { var_dump($this->getValue() + $delta); };
$closure->call($three, 4);
$closure->call($four, 4);
?>

Результат выполнения данного примера:

int(7)
int(8)


Конвертирует callable в замыкание

  • « Closure::call
  • Generator »
  • PHP Manual
  • Closure
  • Конвертирует callable в замыкание

Closure::fromCallable

(PHP 7 >= 7.1.0)

Closure::fromCallable — Конвертирует callable в замыкание

Описание

public static Closure::fromCallable ( callable $callable ) : Closure

Создает и возвращает новую анонимную функцию из заданного callable, используя текущую область видимости. Этот метод проверяет, что callable является типом callable в текущей области видимости и выбрасывает исключение TypeError, если это не так.

Список параметров

callable

Объект типа callable.

Возвращаемые значения

Возвращает новый объект класса Closure или выбрасывает исключение TypeError, если callable не является объектом типа callable в текущей области видимости.


Класс Generator

(PHP 5 >= 5.5.0, PHP 7)

Введение

Создание объектов типа Generator описано в разделе Генераторы.

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

Объекты Generator не могут быть созданы с помощью оператора new.

Обзор классов

Generator implements Iterator {
/* Методы */
public current ( void ) : mixed
public getReturn ( void ) : mixed
public key ( void ) : mixed
public next ( void ) : void
public rewind ( void ) : void
public send ( mixed $value ) : mixed
public throw ( Throwable $exception ) : mixed
public valid ( void ) : bool
public __wakeup ( void ) : void
}

Содержание

  • Generator::current — Получить текущее значение генератора
  • Generator::getReturn — Получить значение, возвращаемое генератором
  • Generator::key — Получить ключ сгенерированного элемента
  • Generator::next — Возобновить работу генератора
  • Generator::rewind — Перемотать итератор
  • Generator::send — Передать значение в генератор
  • Generator::throw — Бросить исключение в генератор
  • Generator::valid — Проверка, закрыт ли итератор
  • Generator::__wakeup — Callback-функция сериализации


Получить текущее значение генератора

  • « Generator
  • Generator::getReturn »
  • PHP Manual
  • Generator
  • Получить текущее значение генератора

Generator::current

(PHP 5 >= 5.5.0, PHP 7)

Generator::current — Получить текущее значение генератора

Описание

public Generator::current ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущее значение.


Получить значение, возвращаемое генератором

  • « Generator::current
  • Generator::key »
  • PHP Manual
  • Generator
  • Получить значение, возвращаемое генератором

Generator::getReturn

(PHP 7)

Generator::getReturn — Получить значение, возвращаемое генератором

Описание

public Generator::getReturn ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Получает возвращаемое значение генератора, после его завершения.

Примеры

Пример #1 Пример использования Generator::getReturn()

<?php

$gen = (function() {
    yield 1;
    yield 2;

    return 3;
})();

foreach ($gen as $val) {
    echo $val, PHP_EOL;
}

echo $gen->getReturn(), PHP_EOL;

Результат выполнения данного примера:

1
2
3


Получить ключ сгенерированного элемента

  • « Generator::getReturn
  • Generator::next »
  • PHP Manual
  • Generator
  • Получить ключ сгенерированного элемента

Generator::key

(PHP 5 >= 5.5.0, PHP 7)

Generator::key — Получить ключ сгенерированного элемента

Описание

public Generator::key ( void ) : mixed

Получает ключ сгенерированного элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ключ сгенерированного элемента.

Примеры

Пример #1 Пример использования Generator::key()

<?php

function Gen()
{
    yield 'key' => 'value';
}

$gen = Gen();

echo "{$gen->key()} => {$gen->current()}";

Результат выполнения данного примера:

key => value


Возобновить работу генератора

  • « Generator::key
  • Generator::rewind »
  • PHP Manual
  • Generator
  • Возобновить работу генератора

Generator::next

(PHP 5 >= 5.5.0, PHP 7)

Generator::next — Возобновить работу генератора

Описание

public Generator::next ( void ) : void

Вызов Generator::next() эквивалентен вызову Generator::send() с NULL в качестве аргумента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Перемотать итератор

  • « Generator::next
  • Generator::send »
  • PHP Manual
  • Generator
  • Перемотать итератор

Generator::rewind

(PHP 5 >= 5.5.0, PHP 7)

Generator::rewind — Перемотать итератор

Описание

public Generator::rewind ( void ) : void

Если итерация уже начата, то выбрасывает исключение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Передать значение в генератор

  • « Generator::rewind
  • Generator::throw »
  • PHP Manual
  • Generator
  • Передать значение в генератор

Generator::send

(PHP 5 >= 5.5.0, PHP 7)

Generator::send — Передать значение в генератор

Описание

public Generator::send ( mixed $value ) : mixed

Передача заданного значения в генератор как результат текущего выражения yield и возобновление его работы.

Если генератор еще не дошел до первого вызова оператора yield, он выполнится до момента первого вызова yield, прежде чем передаст в него значение. Так что нет необходимости вызывать генератор с помощью Generator::next() перед вызовом этого метода (как это делается в Python).

Список параметров

value

Значение, которое отправляется в генератор. Это значение будет текущим возвращаемым значением выражения yield генератора.

Возвращаемые значения

Возвращает сгенерированное значение.

Примеры

Пример #1 Использование Generator::send() для внедрения значений

<?php
function printer() {
    echo "I'm printer!".PHP_EOL;
    while (true) {
        $string = yield;
        echo $string.PHP_EOL;
    }
}

$printer = printer();
$printer->send('Hello world!');
$printer->send('Bye world!');
?>

Результат выполнения данного примера:

I'm printer!
Hello world!
Bye world!


Бросить исключение в генератор

  • « Generator::send
  • Generator::valid »
  • PHP Manual
  • Generator
  • Бросить исключение в генератор

Generator::throw

(PHP 5 >= 5.5.0, PHP 7)

Generator::throw — Бросить исключение в генератор

Описание

public Generator::throw ( Throwable $exception ) : mixed

Выбрасывает исключение в генератор и возобновляет его выполнение. Поведение будет таким, как будто текущее значение yield заменили на выражение throw $exception.

Если к моменту вызова этого метода генератор закрыт, исключение будет выброшено в контексте вызывающего кода.

Список параметров

exception

Исключение, которое надо выбросить в генератор.

Возвращаемые значения

Возвращает сгенерированное значение.

Список изменений

Версия | Описание
7.0.0 | Теперь параметр exception также принимает Throwable.

Примеры

Пример #1 Выбрасывание исключения в итератор

<?php
function gen() {
    echo "Foo\n";
    try {
        yield;
    } catch (Exception $e) {
        echo "Exception: {$e->getMessage()}\n";
    }
    echo "Bar\n";
}

$gen = gen();
$gen->rewind();
$gen->throw(new Exception('Test'));
?>

Результат выполнения данного примера:

Foo
Exception: Test
Bar


Проверка, закрыт ли итератор

  • « Generator::throw
  • Generator::__wakeup »
  • PHP Manual
  • Generator
  • Проверка, закрыт ли итератор

Generator::valid

(PHP 5 >= 5.5.0, PHP 7)

Generator::valid — Проверка, закрыт ли итератор

Описание

public Generator::valid ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает FALSE, если итератор закрыт и TRUE в обратном случае.


Callback-функция сериализации

  • « Generator::valid
  • WeakReference »
  • PHP Manual
  • Generator
  • Callback-функция сериализации

Generator::__wakeup

(PHP 5 >= 5.5.0, PHP 7)

Generator::__wakeup — Callback-функция сериализации

Описание

public Generator::__wakeup ( void ) : void

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

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс WeakReference

(PHP 7 >= 7.4.0)

Введение

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

Замечание:

Класс WeakReference не следует путать с классом WeakRef модуля Weakref.

Объект класса WeakReference не может быть сериализован.

Обзор классов

WeakReference {
/* Методы */
public __construct ( void )
public static create ( object $referent ) : WeakReference
public get ( void ) : ?object
}

Примеры использования WeakReference

Пример #1 Пример #1. Простое использование WeakReference

<?php
$obj = new stdClass;
$weakref = WeakReference::create($obj);
var_dump($weakref->get());
unset($obj);
var_dump($weakref->get());
?>

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)#1 (0) {
}
NULL

Содержание

  • WeakReference::__construct — Конструктор, который запрещает реализацию
  • WeakReference::create — Создает новую слабую ссылку
  • WeakReference::get — Получает объект со слабой ссылкой


Конструктор, который запрещает реализацию

  • « WeakReference
  • WeakReference::create »
  • PHP Manual
  • WeakReference
  • Конструктор, который запрещает реализацию

WeakReference::__construct

(PHP 7 >= 7.4.0)

WeakReference::__construct — Конструктор, который запрещает реализацию

Описание

public WeakReference::__construct ( void )

Метод существует только для запрета создания экземпляров класса WeakReference. Слабые ссылки должны быть созданы с помощью фабричного метода WeakReference::create().

Список параметров

У этой функции нет параметров.

Смотрите также

  • WeakReference::create() - Создает новую слабую ссылку


Создает новую слабую ссылку

  • « WeakReference::__construct
  • WeakReference::get »
  • PHP Manual
  • WeakReference
  • Создает новую слабую ссылку

WeakReference::create

(PHP 7 >= 7.4.0)

WeakReference::create — Создает новую слабую ссылку

Описание

public static WeakReference::create ( object $referent ) : WeakReference

Создает новый WeakReference.

Список параметров

referent

Объект для слабой ссылки.

Возвращаемые значения

Возвращает только что созданный объект.


Получает объект со слабой ссылкой

  • « WeakReference::create
  • Контекстные опции и параметры »
  • PHP Manual
  • WeakReference
  • Получает объект со слабой ссылкой

WeakReference::get

(PHP 7 >= 7.4.0)

WeakReference::get — Получает объект со слабой ссылкой

Описание

public WeakReference::get ( void ) : ?object

Получает объект со слабой ссылкой. Если объект уже был уничтожен, возвращается NULL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ссылку object или NULL, если объект был уничтожен.


Контекстные опции и параметры

PHP предлагает различные контекстные опции и параметры, которые могут быть использованы со всеми
файловыми системами и обертками потоков. Контекст создается с помощью функции
stream_context_create(). Опции устанавливаются с помощью
stream_context_set_option(), а параметры с помощью
stream_context_set_params().

Содержание

  • Контекстные опции сокета — Список контекстных опций сокета
  • Опции контекста HTTP — Список опций контекста HTTP
  • Параметры контекста FTP — Список параметров контекста FTP
  • Опции контекста SSL — Список опций контекста SSL
  • Опции контекста CURL — Список опций контекста CURL
  • Контекстные опции Phar — Список контекстных опций Phar
  • Контекстные опции MongoDB — Список контекстных опций MongoDB
  • Параметры контекста — Список параметров контекста
  • Опции контекста Zip — Список опций контекста Zip


Список контекстных опций сокета

  • « Контекстные опции и параметры
  • Опции контекста HTTP »
  • PHP Manual
  • Контекстные опции и параметры
  • Список контекстных опций сокета

Контекстные опции сокета

Контекстные опции сокета — Список контекстных опций сокета

Описание

Контекстные опции доступны для всех оберток, которые работают через сокеты, такие как tcp, http и ftp.

Опции

bindto

Используется для указания IP-адреса (IPv4 или IPv6) и\или номера порта, которые PHP будет использовать для подключения к сети. Синтаксис выглядит следующим образом: ip:port для адреса IPv4, и [ip]:port для адреса IPv6. Установка IP и\или порта в 0 позволит системе самой выбрать нужный IP и\или порт.

Замечание:

Так как во время обычной работы FTP создает 2 соединения с сокетами, номер порта не может быть задан с помощью данной опции.

backlog

Используется для ограничения исходящих соединений в очереди соединений сокета.

Замечание:

Используется только для stream_socket_server().

ipv6_v6only

Переопределяет значение ОС по умолчанию для отображения IPv4 в IPv6.

Замечание:

Это важно в случае попытки отдельно слушать IPv4 адреса, в то время как задана привязка к [::].

Применимо только к stream_socket_server().

so_reuseport

Позволяет множественную привязку к одной и той же паре IP:порт, даже из разных процессов.

Замечание:

Применимо только к stream_socket_server().

so_broadcast

Разрешает посылать и принимать данные в/от широковещательных адресов.

Замечание:

Применимо только к stream_socket_server().

tcp_nodelay

Установка этой опции в TRUE сделает SOL_TCP,NO_DELAY=1 соответственно, таким образом, отключение алгоритма TCP Nagle.

Список изменений

Версия | Описание
7.1.0 | Добавлено tcp_nodelay.
7.0.1 | Добавлено ipv6_v6only.
7.0.0 | Добавлено so_broadcast.
7.0.0 | Добавлено so_reuseport.
5.3.3 | Добавлено backlog.
5.1.0 | Добавлено bindto.

Примеры

Пример #1 Пример использования bindto

<?php
// Соединение с сетью, используя IP '192.168.0.100'
$opts = array(
    'socket' => array(
        'bindto' => '192.168.0.100:0',
    ),
);

// Соединение с сетью, используя IP '192.168.0.100' и порт '7000'
$opts = array(
    'socket' => array(
        'bindto' => '192.168.0.100:7000',
    ),
);

// Соединение с сетью, используя IPv6 адрес '2001:db8::1'
// и порт '7000'
$opts = array(
    'socket' => array(
        'bindto' => '[2001:db8::1]:7000',
    ),
);

// Соединение с сетью через порт '7000'
$opts = array(
    'socket' => array(
        'bindto' => '0:7000',
    ),
);

// Создаем контекст...
$context = stream_context_create($opts);

// ...и используем его для получения данных
echo file_get_contents('http://www.example.com', false, $context);

?>


Список опций контекста HTTP

  • « Контекстные опции сокета
  • Параметры контекста FTP »
  • PHP Manual
  • Контекстные опции и параметры
  • Список опций контекста HTTP

Опции контекста HTTP

Опции контекста HTTP — Список опций контекста HTTP

Описание

Опции контекста для транспортных протоколов http:// и https://.

Опции

method string

GET, POST или любой другой метод HTTP, поддерживаемый удаленным сервером.

По умолчанию GET.

header array или string

Дополнительные заголовки для отправки вместе с запросом. Значения в этой опции будут переопределять другие значения (такие как User-agent:, Host: и Authentication:).

user_agent string

Значение для отправки вместе с заголовком User-Agent:. Это значение будет использоваться, если заголовок user-agent не был указан в опции контекста header выше.

По умолчанию используется значение директивы user_agent из файла php.ini.

content string

Дополнительные данные для отправки после заголовков. Обычно используется с запросами POST и PUT.

proxy string

URI, указывающий адрес прокси-сервера. (Например, tcp://proxy.example.com:5100).

request_fulluri boolean

Когда установлено в TRUE, весь URI будет использован при формировании запроса. (Например, GET http://www.example.com/path/to/file.html HTTP/1.0). Хотя это нестандартный формат запроса, некоторые прокси-серверы требуют его.

По умолчанию FALSE.

follow_location integer

Следовать переадресациям заголовка Location. Для отключения установите в значение 0.

По умолчанию 1.

max_redirects integer

Максимальное количество переадресаций, которым можно следовать. Значение 1 или меньше означает, что никаких переадресаций не будет произведено.

По умолчанию 20.

protocol_version float

Версия протокола HTTP.

По умолчанию 1.0.

Замечание:

В PHP до версии 5.3.0 не было реализовано декодирование фрагментированных передач. Если это значение установлено в 1.1, на вас лежит ответственность, чтобы было соответствие версии 1.1.

timeout float

Тайм-аут на чтение в секундах, указанный с помощью типа float (например, 10.5).

По умолчанию используется значение директивы default_socket_timeout из файла php.ini.

ignore_errors boolean

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

По умолчанию FALSE.

Список изменений

Версия | Описание
5.3.4 | Добавлен параметр follow_location.
5.3.0 | Параметр protocol_version поддерживает декодирование фрагментированной передачи, когда установлен в 1.1.
5.2.10 | Добавлен параметр ignore_errors.
5.2.10 | Параметр header теперь может быть типа array с числовыми индексами.
5.2.1 | Добавлен параметр timeout.
5.1.0 | Добавлено проксирование протокола HTTPS через HTTP-прокси.
5.1.0 | Добавлен параметр max_redirects.
5.1.0 | Добавлен параметр protocol_version.

Примеры

Пример #1 Извлечь страницу и отправить данные методом POST

<?php

$postdata = http_build_query(
    array(
        'var1' => 'некоторое содержимое',
        'var2' => 'doh'
    )
);

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context = stream_context_create($opts);

$result = file_get_contents('http://example.com/submit.php', false, $context);

?>

Пример #2 Игнорировать переадресации, но извлечь заголовки и содержимое

<?php

$url = "http://www.example.org/header.php";

$opts = array('http' =>
    array(
        'method' => 'GET',
        'max_redirects' => '0',
        'ignore_errors' => '1'
    )
);

$context = stream_context_create($opts);
$stream = fopen($url, 'r', false, $context);

// информация о заголовках, а также
// метаданные о потоке
var_dump(stream_get_meta_data($stream));

// актуальная информация по ссылке $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>

Примечания

Замечание: Опции контекста низлежащего потока в сокете
Дополнительные опции контекста могут поддерживаться низлежащим транспортным протоколом. Для потоков http://, это относится к опциям контекста для транспортного протокола tcp://. Для потоков https://, это относится к опциям контекста для транспортного протокола ssl://.

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

array (
  'wrapper_data' =>
  array (
    0 => 'HTTP/1.0 301 Moved Permantenly',
    1 => 'Cache-Control: no-cache',
    2 => 'Connection: close',
    3 => 'Location: http://example.com/foo.jpg',
    4 => 'HTTP/1.1 200 OK',
    ...
Первый запрос вернул код 301 (постоянное перенаправление), так что обертка потока автоматически последовала этому перенаправлению, чтобы получить ответ 200 (индекс = 4).

Смотрите также

  • http://
  • Контекстные опции сокета
  • Опции контекста SSL


Список параметров контекста FTP

  • « Опции контекста HTTP
  • Опции контекста SSL »
  • PHP Manual
  • Контекстные опции и параметры
  • Список параметров контекста FTP

Параметры контекста FTP

Параметры контекста FTP — Список параметров контекста FTP

Описание

Параметры контекста для транспортных протоколов ftp:// и ftps://

Опции

overwrite boolean

Разрешает перезаписывать существующие файлы на удаленном сервере. Работает только в режиме записи (upload).

По умолчанию FALSE.

resume_pos integer

Смещение в файле, с которого начинается передача. Работает только в режиме чтения (download).

По умолчанию 0 (Начало файла).

proxy string

FTP-запрос через прокси-сервер HTTP. Применяется только при операции чтения файла. Пример: tcp://squid.example.com:8000.

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр proxy.

Примечания

Замечание: Опции контекста низлежащего потока в сокете
Дополнительные опции контекста могут поддерживаться низлежащим транспортным протоколом. Для потоков ftp://, это относится к опциям контекста для транспортного протокола tcp://. Для потоков ftps://, это относится к опциям контекста для транспортного протокола ssl://.

Смотрите также

  • ftp://
  • Контекстные опции сокета
  • Опции контекста SSL


Список опций контекста SSL

  • « Параметры контекста FTP
  • Опции контекста CURL »
  • PHP Manual
  • Контекстные опции и параметры
  • Список опций контекста SSL

Опции контекста SSL

Опции контекста SSL — Список опций контекста SSL

Описание

Опции контекста для протоколов ssl:// и tls://

Опции

peer_name string

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

verify_peer boolean

Требовать проверки используемого SSL-сертификата.

По умолчанию TRUE.

verify_peer_name boolean

Требовать проверки имени узла.

По умолчанию TRUE.

allow_self_signed boolean

Разрешить самоподписанные сертификаты. Требует verify_peer.

По умолчанию FALSE

cafile string

Расположение файла сертификата в локальной файловой системе, который следует использовать с опцией контекста verify_peer для проверки подлинности удалённого узла.

capath string

Если параметр cafile не определён или сертификат не найден, осуществляется поиск в директории, указанной в capath. Путь capath должен быть к корректной директории, содержащей сертификаты, имена которых являются хешем от поля subject, указанного в сертификате.

local_cert string

Путь к локальному сертификату в файловой системе. Это должен быть файл, закодированный в PEM, который содержит ваш сертификат и закрытый ключ. Он дополнительно может содержать открытый ключ эмитента. Закрытый ключ также может содержаться в отдельном файле, заданным local_pk.

local_pk string

Путь к локальному файлу с приватным ключем в случае отдельных файлов сертификата (local_cert) и приватного ключа.

passphrase string

Идентификационная фраза, с которой ваш файл local_cert был закодирован.

CN_match string

Имя хоста (Common Name), которое мы ожидаем. PHP будет производить ограниченное сопоставление, учитывающее символы подстановки (*,?). Если имя хоста не совпадает со строкой, соединение будет сброшено.

Замечание: Эта опция устарела. Начиная с PHP 5.6.0 используйте peer_name.

verify_depth integer

Прервать, если цепочка сертификата слишком длинная.

По умолчанию проверка отсутствует.

ciphers string

Устанавливает список доступных алгоритмов шифрования. Формат этой строки описан в разделе » шифры(1).

По умолчанию принимает значение DEFAULT.

capture_peer_cert boolean

Если установлено в TRUE, то будет создана опция контекста peer_certificate, содержащая сертификат удаленного узла.

capture_peer_cert_chain boolean

Если установлено в TRUE, то будет создана опция контекста peer_certificate_chain, содержащая цепочку сертификатов.

SNI_enabled boolean

Если установлено в TRUE, то будет включено указание имени сервера. Включение SNI позволяет использовать разные сертификаты на одном и том же IP-адресе.

SNI_server_name string

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

Замечание: Эта опция устарела. Начиная с PHP 5.6.0 используйте peer_name.

disable_compression boolean

Отключает сжатие TLS, что помогает предотвратить атаки типа CRIME.

peer_fingerprint string | array

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

Если указана строка (string), то её длина определяет какой алгоритм хеширования будет использован: "md5" (32) или "sha1" (40).

Если указан массив (array), то ключи определяют алгоритм хеширования, а каждое соответствующее значение является требуемым хешом.

Список изменений

Версия | Описание
5.6.0 | Добавлены peer_fingerprint и verify_peer_name. Значение по умолчанию для verify_peer изменено на TRUE.
5.4.13 | Добавлен disable_compression. Требуется OpenSSL >= 1.0.0.
5.3.2 | Добавлены параметры SNI_enabled и SNI_server_name.

Примечания

Замечание: Так как ssl:// - это низлежащий транспортный протокол для оберток https:// и ftps://, то любые опции контекста, которые применяются к ssl:// будут также применяться к https:// и ftps://.

Замечание: Чтобы была доступна возможность указания имени сервера (SNI, Server Name Indication), PHP должен быть скомпилирован с OpenSSL 0.9.8j или более поздней. Используйте константу OPENSSL_TLSEXT_SERVER_NAME чтобы определить, поддерживается ли SNI.

Смотрите также

  • Контекстные опции сокета


Список опций контекста CURL

  • « Опции контекста SSL
  • Контекстные опции Phar »
  • PHP Manual
  • Контекстные опции и параметры
  • Список опций контекста CURL

Опции контекста CURL

Опции контекста CURL — Список опций контекста CURL

Описание

Опции контекста CURL доступны в том случае, если расширение CURL скомпилировано, используя конфигурационную опцию --with-curlwrappers .

Опции

method string

GET, POST, или любой другой HTTP-метод, поддерживаемый удаленным сервером.

По умолчанию - GET.

header string

Дополнительные заголовки для отправки вместе с запросом. Значения в этой опции будут переопределять другие значения (такие как User-agent:, Host:, и Authentication:).

user_agent string

Значение для отправки вместе с заголовком User-Agent.

По умолчанию используется значение директивы user_agent из файла php.ini.

content string

Дополнительные данные для отправки после заголовков. Эта опция не используется для запросов GET или HEAD.

proxy string

URI, указывающий адрес прокси-сервера. (Например, tcp://proxy.example.com:5100).

max_redirects integer

Максимальное количество переадресаций, которые можно сделать. Значение 1 или меньше означает, что никаких переадресаций не будет произведено.

По умолчанию 20.

curl_verify_ssl_host boolean

Проверить хост.

По умолчанию FALSE

Замечание:

Эта опция доступна для двух оберток протоколов: http и ftp.

curl_verify_ssl_peer boolean

Требовать проверку используемого SSL-сертификата.

По умолчанию FALSE

Замечание:

Эта опция доступна для двух оберток протоколов: http и ftp.

Примеры

Пример #1 Получает страницу и посылает POST-запрос

<?php

$postdata = http_build_query(
    array(
        'var1' => 'некоторое содержимое',
        'var2' => 'doh'
    )
);

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context = stream_context_create($opts);

$result = file_get_contents('http://example.com/submit.php', false, $context);

?>

Смотрите также

  • Контекстные опции сокета


Список контекстных опций Phar

  • « Опции контекста CURL
  • Контекстные опции MongoDB »
  • PHP Manual
  • Контекстные опции и параметры
  • Список контекстных опций Phar

Контекстные опции Phar

Контекстные опции Phar — Список контекстных опций Phar

Описание

Контекстные опции для обёртки phar://.

Опции

compress int

Одна из констант сжатия Phar.

metadata mixed

Метаданные Phar. См. Phar::setMetadata().

Смотрите также

  • phar://
  • Потоки Phar


Список контекстных опций MongoDB

  • « Контекстные опции Phar
  • Параметры контекста »
  • PHP Manual
  • Контекстные опции и параметры
  • Список контекстных опций MongoDB

Контекстные опции MongoDB

Контекстные опции MongoDB — Список контекстных опций MongoDB

Описание

Контекстные опции для транспорта mongodb://.

Опции

log_cmd_insert callable

Callback-функция, вызываемая при вставке документа, см. log_cmd_insert().

log_cmd_delete callable

Callback-функция, вызываемая при удалении документа, см. log_cmd_delete().

log_cmd_update callable

Callback-функция, вызываемая при обновлении документа, см. log_cmd_update().

log_write_batch callable

Callback-функция, вызываемая при вставке пакетной записи (Write Batch), см. log_write_batch().

log_reply callable

Callback-функция, вызываемая при чтении ответа от MongoDB, см. log_reply().

log_getmore callable

Callback-функция, вызываемая при чтении дополнительных результатов из курсора MongoDB, см. log_getmore().

log_killcursor callable

Callback-функция, вызываемая опкодом "killcursor", см. log_killcursor().

Список изменений

Версия | Описание
pecl/mongo 1.5.0 | Добавлены контекстные опции API Write

Смотрите также

  • Контекстные опции сокета
  • Опции контекста SSL


Список параметров контекста

  • « Контекстные опции MongoDB
  • Опции контекста Zip »
  • PHP Manual
  • Контекстные опции и параметры
  • Список параметров контекста

Параметры контекста

Параметры контекста — Список параметров контекста

Описание

Данные параметры могут быть заданы для контекста с помощью функции stream_context_set_params().

Список параметров

notification callable

Функция типа callable, вызываемая при наступлении события в потоке.

За подробностями обращайтесь к документации функции stream_notification_callback.


Список опций контекста Zip

  • « Параметры контекста
  • Поддерживаемые протоколы и обертки »
  • PHP Manual
  • Контекстные опции и параметры
  • Список опций контекста Zip

Опции контекста Zip

Опции контекста Zip — Список опций контекста Zip

Описание

Опции контекста Zip доступны для оберток zip.

Опции

password

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

Список изменений

Версия | Описание
PHP 7.2.0, PECL zip 1.14.0 | Добавлен параметр password.

Примеры

Пример #1 Простой пример использования password

<?php
// Читаем зашифрованный архив
$opts = array(
    'zip' => array(
        'password' => 'secret',
    ),
);
// создаем контекст...
$context = stream_context_create($opts);

// ...и используем его для получения данных
echo file_get_contents('zip://test.zip#test.txt', false, $context);

?>


Поддерживаемые протоколы и обертки

PHP поставляется со множеством встроенных оберток для различных URL-протоколов для использования с функциями файловой системы, таких как fopen(), copy(), file_exists() и filesize(). В дополнение к этим оберткам, можно регистрировать собственные обертки, используя функцию stream_wrapper_register().

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

Содержание

  • file:// — Доступ к локальной файловой системе
  • http:// — Доступ к URL-адресам по протоколу HTTP(s)
  • ftp:// — Доступ к URL-адресам по протоколу FTP(s)
  • php:// — Доступ к различным потокам ввода-вывода
  • zlib:// — Сжатые потоки
  • data:// — Схема Data (RFC 2397)
  • glob:// — Нахождение путей, соответствующих шаблону
  • phar:// — PHP-архив
  • ssh2:// — Secure Shell 2
  • rar:// — RAR
  • ogg:// — Аудиопотоки
  • expect:// — Потоки для взаимодействия с процессами


Доступ к локальной файловой системе

  • « Поддерживаемые протоколы и обертки
  • http:// »
  • PHP Manual
  • Поддерживаемые протоколы и обертки
  • Доступ к локальной файловой системе

file://

file:// — Доступ к локальной файловой системе

Описание

Файловая система - это стандартная обертка для PHP, представляющая файловую систему на локальном компьютере. Когда задан относительный путь (путь, который не начинается с символов "/", "\", "\\" или с буквы жесткого диска в Windows), он будет применен к текущей рабочей директории. В большинстве случаев это директория, в которой находится сценарий, если она не была изменена. При использовании CLI SAPI директорией по умолчанию будет та, из которой вызвано исполнение сценария.

В некоторых функциях, таких как fopen() и file_get_contents(), поиск файла может дополнительно производиться в include_path.

Использование

  • /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

Опции

Основная информация
Атрибут | Поддержка
Ограничение по allow_url_fopen | Нет
Чтение | Да
Запись | Да
Добавление | Да
Одновременное чтение и запись | Да
Поддержка stat() | Да
Поддержка unlink() | Да
Поддержка rename() | Да
Поддержка mkdir() | Да
Поддержка rmdir() | Да


Доступ к URL-адресам по протоколу HTTP(s)

  • « file://
  • ftp:// »
  • PHP Manual
  • Поддерживаемые протоколы и обертки
  • Доступ к URL-адресам по протоколу HTTP(s)

http://

https://

http:// -- https:// — Доступ к URL-адресам по протоколу HTTP(s)

Описание

Предоставляет доступ только для чтения файлов/ресурсов через HTTP 1.0, используя метод HTTP GET. Для поддержки виртуальных хостов на основе имен вместе с запросом посылается заголовок Host:. Если вы сконфигурировали строку user_agent, используя ваш файл php.ini или контекст потока, то она также будет включена в запрос.

Этот поток также позволяет получить доступ к содержимому ресурса; заголовки сохраняются в переменной $http_response_header.

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

INI-директива from будет использоваться для заголовка From:, если установлена и не переопределена в контексте Контекстные опции и параметры.

Использование

  • 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

Опции

Основная информация
Атрибут | Поддержка
Ограничение по allow_url_fopen | Да
Чтение | Да
Запись | Нет
Добавление | Нет
Одновременное чтение и запись | Недоступно
Поддержка stat() | Нет
Поддержка unlink() | Нет
Поддержка rename() | Нет
Поддержка mkdir() | Нет
Поддержка rmdir() | Нет

Примеры

Пример #1 Определение URL, с которого был забран документ после переадресаций

<?php
$url = 'http://www.example.com/redirecting_page.php';

$fp = fopen($url, 'r');

$meta_data = stream_get_meta_data($fp);
foreach ($meta_data['wrapper_data'] as $response) {

    /* Были ли мы переадресованы? */
    if (strtolower(substr($response, 0, 10)) == 'location: ') {

        /* Сохранить в $url адрес, куда нас переадресовали */
        $url = substr($response, 10);
    }

}

?>

Примечания

Замечание: Протокол HTTPS поддерживается только когда расширение openssl включено.

Соединения HTTP предназначены только для чтения; запись данных или копирование файлов в HTTP-ресурс не поддерживается.

Отправка запросов POST и PUT, например, может быть выполнена с помощью HTTP-контекста.

Смотрите также

  • Опции контекста HTTP
  • $http_response_header
  • stream_get_meta_data() - Извлекает заголовок/метаданные из потоков/файловых указателей


Доступ к URL-адресам по протоколу FTP(s)

  • « http://
  • php:// »
  • PHP Manual
  • Поддерживаемые протоколы и обертки
  • Доступ к URL-адресам по протоколу FTP(s)

ftp://

ftps://

ftp:// -- ftps:// — Доступ к URL-адресам по протоколу FTP(s)

Описание

Позволяет читать существующие файлы и создавать новые файлы через FTP. Если сервер FTP не поддерживает пассивный режим, соединение будет невозможно.

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

Если вы установили директиву from в файле php.ini, то это значение будет отправлено как пароль при анонимном подключении к FTP.

Использование

  • 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

Опции

Основная информация
Атрибут | Поддерживается
Ограничение по allow_url_fopen | Да
Чтение | Да
Запись | Да (новые файлы / существующие файлы с опцией overwrite)
Добавление | Да
Одновременное чтение и запись | Нет
Поддержка stat() | filesize(), filetype(), file_exists(), is_file() и is_dir(). Начиная с PHP 5.1.0: filemtime().
Поддержка unlink() | Да
Поддержка rename() | Да
Поддержка mkdir() | Да
Поддержка rmdir() | Да

Примечания

Замечание:

FTPS поддерживается только когда включена поддержка расширения OpenSSL.

Если сервер не поддерживает SSL, то соединение переключается обратно на обычный нешифрованный протокол FTP.

Замечание: Дополнение
Файлы могут быть дописаны с помощью URL-обертки ftp://.

Смотрите также

  • Параметры контекста FTP


Доступ к различным потокам ввода-вывода

  • « ftp://
  • zlib:// »
  • PHP Manual
  • Поддерживаемые протоколы и обертки
  • Доступ к различным потокам ввода-вывода

php://

php:// — Доступ к различным потокам ввода-вывода

Описание

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

php://stdin, php://stdout и php://stderr

php://stdin, php://stdout и php://stderr позволяют получить прямой доступ к соответствующим потокам ввода или вывода процесса PHP. Поток указывает на копию файлового дескриптора, таким образом, если вы откроете php://stdin и потом закроете его, вы закроете только вашу копию дескриптора. Актуальный поток, на который ссылается STDIN, остается неизменным. Обратите внимание, что PHP демонстрировал ошибочное поведение в этом отношении до версии PHP 5.2.1. Рекомендуется просто использовать константы STDIN, STDOUT и STDERR вместо ручного открытия потоков, используя эти обертки.

Поток php://stdin предназначен только для чтения, тогда как php://stdout и php://stderr предназначены только для записи.

php://input

php://input является потоком только для чтения, который позволяет вам читать необработанные данные из тела запроса. В случае POST-запросов предпочтительней использовать php://input вместо $HTTP_RAW_POST_DATA, так как этот метод не зависит от специальных директив php.ini. Кроме того, в тех случаях, где $HTTP_RAW_POST_DATA не заполняется по умолчанию, это потенциально менее затратно для памяти, чем активация директивы always_populate_raw_post_data. php://input недоступен с типом содержимого enctype="multipart/form-data".

Замечание: До версии PHP 5.6, поток, открытый с php://input, может быть прочитан только один раз. Поток не поддерживает операции поиска. Тем не менее, в зависимости от реализации SAPI, может быть возможно открыть другой поток php://input и повторить чтение. Это возможно, только если тело запроса заранее сохраняется. Это типично для случая с POST-запросом, но не для других методов запросов, таких как PUT или PROPFIND.

php://output

php://output является потоком только для записи, который позволяет вам записать данные в выходной буфер аналогично, как это делают функции print и echo.

php://fd

php://fd предоставляет прямой доступ к указанному файловому дескриптору. Например, php://fd/3 относится к файловому дескриптору 3.

php://memory и php://temp

php://memory и php://temp являются потоками для чтения/записи и позволяют сохранять временные данные в файлоподобной обертке. Единственная разница между ними заключается в том, что php://memory будет всегда хранить данные в оперативной памяти, тогда как php://temp будет использовать временный файл в том случае, когда объем хранимой информации достигнет заданного лимита (по умолчанию 2 Мб). Расположение этого временного файла определяется аналогично функции sys_get_temp_dir().

Размер лимита для php://temp может устанавливаться путем добавления /maxmemory:NN, где NN - это максимальный размер данных в байтах для хранения в памяти перед использованием временного файла.

php://filter

php://filter - это вид мета-обертки, предназначенный для разрешения применения фильтров к потоку во время открытия. Это полезно для функционально полных файловых функций, таких как readfile(), file() и file_get_contents(), где нет возможности применить фильтр к потоку до того, как содержимое будет прочитано.

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

Параметры для php://filter
Название | Описание
resource=<поток для фильтрации> | Этот параметр является необходимым. Он указывает потоку, что его необходимо отфильтровать.
read=<список фильтров для применения к цепочке чтения> | Этот параметр является необязательным. Одно или несколько имен фильтров может быть указано здесь, разделенных вертикальной чертой (|).
write=<список фильтров для применения к цепочке записи> | Этот параметр является необязательным. Одно или несколько имен фильтров может быть указано здесь, разделенных вертикальной чертой (|).
<список фильтров для применения к обеим цепочкам чтения и записи> | Любой список фильтров, которые используются без префиксов read= или write=, будет применен к обоим потокам на чтение и на запись при необходимости.

Опции

Основная информация (для php://filter смотрите информацию по обертке, которая подвергается фильтрации)
Атрибут | Поддержка
Ограничение по allow_url_fopen | Нет
Ограничение по allow_url_include | только php://input, php://stdin, php://memory и php://temp.
Чтение | только php://stdin, php://input, php://fd, php://memory и php://temp.
Запись | только php://stdout, php://stderr, php://output, php://fd, php://memory и php://temp.
Добавление | только php://stdout, php://stderr, php://output, php://fd, php://memory и php://temp. (Эквивалентно записи)
Одновременное чтение и запись | только php://fd, php://memory и php://temp.
Поддержка stat() | только php://memory и php://temp.
Поддержка unlink() | Нет
Поддержка rename() | Нет
Поддержка mkdir() | Нет
Поддержка rmdir() | Нет
Поддержка stream_select() | только php://stdin, php://stdout, php://stderr, php://fd и php://temp.

Список изменений

Версия | Описание
5.6.0 | Стало возможным использовать повторно php://input.
5.3.6 | Был добавлен php://fd.
5.1.0 | Были добавлены php://memory и php://temp.

Примеры

Пример #1 php://temp/maxmemory

Этот необязательный параметр позволяет установить лимит памяти до того, как php://temp начнет использовать временный файл.

<?php
// Установка предела в 5 MB.
$fiveMBs = 5 * 1024 * 1024;
$fp = fopen("php://temp/maxmemory:$fiveMBs", 'r+');

fputs($fp, "hello\n");

// Читаем то, что мы записали.
rewind($fp);
echo stream_get_contents($fp);
?>

Пример #2 php://filter/resource=<поток для фильтрации>

Этот параметр должен быть расположен в конце вашей спецификации php://filter и должен указывать на поток, который вы хотите фильтровать.

<?php
/* Это просто эквивалентно:
  readfile("http://www.example.com");
  так как на самом деле фильтры не указаны */

readfile("php://filter/resource=http://www.example.com");
?>

Пример #3 php://filter/read=<список фильтров для применения к цепочке чтения>

Этот параметр принимает один или более имен фильтров, разделенных вертикальной чертой |.

<?php
/* Этот скрипт выведет содержимое
  www.example.com полностью в верхнем регистре */
readfile("php://filter/read=string.toupper/resource=http://www.example.com");

/* Этот скрипт делает тоже самое, что вверхний, но
  будет также кодировать алгоритмом ROT13 */
readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
?>

Пример #4 php://filter/write=<список фильтров для применения к цепочке записи>

Этот параметр принимает один или более имен фильтров, разделенных вертикальной чертой |.

<?php
/* Этот скрипт будет фильтровать строку "Hello World"
  через фильтр rot13, затем записывать результат в
  файл example.txt в текущей директории */
file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
?>

Пример #5 php://memory и php://temp нельзя переиспользовать

php://memory и php://temp нельзя переиспользовать, то есть после закрытия потоков невозможно сослаться на них снова.

file_put_contents('php://memory', 'PHP');
echo file_get_contents('php://memory'); // ничего не напечатает


Сжатые потоки

  • « php://
  • data:// »
  • PHP Manual
  • Поддерживаемые протоколы и обертки
  • Сжатые потоки

zlib://

bzip2://

zip://

zlib:// -- bzip2:// -- zip:// — Сжатые потоки

Описание

compress.zlib:// и compress.bzip2://

zlib: работает как gzopen() за исключением того, что этот поток может использоваться функцией fread() и другими функциями, работающими с файловой системой. Устарела, ввиду неоднозначности при наличии файлов, содержащих ':'; используйте взамен compress.zlib://.

compress.zlib:// и compress.bzip2:// эквиваленты gzopen() и bzopen() соответственно и работают даже в системах, не поддерживающих fopencookie.

ZIP-расширение добавляет обертку zip:. Начиная с PHP 7.2.0 и libzip 1.2.0+, была добавлена поддержка паролей для зашифрованных архивов, позволяя предоставлять пароли, используя контексты потоков. Пароли могут быть установлены с помощью контекстной опции 'password'.

Использование

  • compress.zlib://file.gz
  • compress.bzip2://file.bz2
  • zip://archive.zip#dir/file.txt

Опции

Основная информация
Атрибут | Поддержка
Ограничение по allow_url_fopen | Нет
Чтение | Да
Запись | Да (кроме zip://)
Добавление | Да (кроме zip://)
Одновременное чтение и запись | Нет
Поддержка stat() | Нет, используйте стандартную обертку file:// для получения информации по сжатым файлам.
Поддержка unlink() | Нет, используйте стандартную обертку file:// для удаления сжатых файлов.
Поддержка rename() | Нет
Поддержка mkdir() | Нет
Поддержка rmdir() | Нет


Схема Data (RFC 2397)

  • « zlib://
  • glob:// »
  • PHP Manual
  • Поддерживаемые протоколы и обертки
  • Схема Data (RFC 2397)

data://

data:// — Схема Data (RFC 2397)

Описание

data: (» RFC 2397) - это обертка потоков, доступная с PHP 5.2.0.

Использование

  • data://text/plain;base64,

Опции

Основная информация
Атрибут | Поддержка
Ограничение по allow_url_fopen | Нет
Ограничение по allow_url_include | Да
Чтение | Да
Запись | Нет
Добавление | Нет
Чтение и запись одновременно | Нет
Поддержка stat() | Нет
Поддержка unlink() | Нет
Поддержка rename() | Нет
Поддержка mkdir() | Нет
Поддержка rmdir() | Нет

Примеры

Пример #1 Вывод содержимого data://

<?php
// выводит "I love PHP"
echo file_get_contents('data://text/plain;base64,SSBsb3ZlIFBIUAo=');
?>

Пример #2 Получение типа потока

<?php
$fp   = fopen('data://text/plain;base64,', 'r');
$meta = stream_get_meta_data($fp);

// выводит "text/plain"
echo $meta['mediatype'];
?>


Нахождение путей, соответствующих шаблону

  • « data://
  • phar:// »
  • PHP Manual
  • Поддерживаемые протоколы и обертки
  • Нахождение путей, соответствующих шаблону

glob://

glob:// — Нахождение путей, соответствующих шаблону

Описание

Обертка потока glob: доступна с PHP 5.3.0.

Использование

  • glob://

Опции

Основная информация
Атрибут | Поддержка
Ограничение по allow_url_fopen | Нет
Ограничение по allow_url_include | Нет
Чтение | Нет
Запись | Нет
Добавление | Нет
Одновременное чтение и запись | Нет
Поддержка stat() | Нет
Поддержка unlink() | Нет
Поддержка rename() | Нет
Поддержка mkdir() | Нет
Поддержка rmdir() | Нет

Примеры

Пример #1 Основы использования

<?php
// Просмотреть все файлы *.php в директории ext/spl/examples/
// и напечатать имена файлов и их размеры
$it = new DirectoryIterator("glob://ext/spl/examples/*.php");
foreach($it as $f) {
    printf("%s: %.1FK\n", $f->getFilename(), $f->getSize()/1024);
}
?>
tree.php: 1.0K
findregex.php: 0.6K
findfile.php: 0.7K
dba_dump.php: 0.9K
nocvsdir.php: 1.1K
phar_from_dir.php: 1.0K
ini_groups.php: 0.9K
directorytree.php: 0.9K
dba_array.php: 1.1K
class_tree.php: 1.8K


PHP-архив

  • « glob://
  • ssh2:// »
  • PHP Manual
  • Поддерживаемые протоколы и обертки
  • PHP-архив

phar://

phar:// — PHP-архив

Описание

Обертка потока phar:// доступна с PHP 5.3.0. Смотрите раздел Обертка потока Phar для более детального описания.

Использование

  • phar://

Опции

Основная информация
Атрибут | Поддержка
Ограничение по allow_url_fopen | Нет
Ограничение по allow_url_include | Нет
Чтение | Да
Запись | Да
Добавление | Нет
Одновременное чтение и запись | Да
Поддержка stat() | Да
Поддержка unlink() | Да
Поддержка rename() | Да
Поддержка mkdir() | Да
Поддержка rmdir() | Да

Смотрите также

  • Контекстные опции Phar


Secure Shell 2

  • « phar://
  • rar:// »
  • PHP Manual
  • Поддерживаемые протоколы и обертки
  • Secure Shell 2

ssh2://

ssh2:// — Secure Shell 2

Описание

ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// (PECL)

Замечание: Эта обертка не включена по умолчанию
Для того, чтобы использовать обертки ssh2.*:// вам необходимо установить расширение » SSH2, доступное в » PECL.

Кроме получения традиционных данных для входа к URI, обертки ssh2 также будут повторно использовать открытые соединения, передавая ресурс соединения в хост-часть URL.

Использование

  • 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

Опции

Основная информация
Атрибут | ssh2.shell | ssh2.exec | ssh2.tunnel | ssh2.sftp | ssh2.scp
Ограничение по allow_url_fopen | Да | Да | Да | Да | Да
Чтение | Да | Да | Да | Да | Да
Запись | Да | Да | Да | Да | Нет
Добавление | Нет | Нет | Нет | Да (когда поддерживается сервером) | Нет
Одновременная чтение и запись | Да | Да | Да | Да | Нет
Поддержка stat() | Нет | Нет | Нет | Да | Нет
Поддержка unlink() | Нет | Нет | Нет | Да | Нет
Поддержка rename() | Нет | Нет | Нет | Да | Нет
Поддержка mkdir() | Нет | Нет | Нет | Да | Нет
Поддержка rmdir() | Нет | Нет | Нет | Да | Нет

Опции контекста
Имя | Использование | По умолчанию
session | Предварительно соединенный ресурс ssh2 для повторного использования |
sftp | Предварительно выделенный ресурс sftp для повторного использования |
methods | Обмен ключами, ключ хоста, шифр, компрессия и методы MAC для использования |
callbacks |  |
username | Имя пользователя для соединения |
password | Пароль для аутентификации |
pubkey_file | Имя файла, в котором находится открытый ключ для аутентификации |
privkey_file | Имя файла, в котором находится приватный ключ для аутентификации |
env | Ассоциативный массив с переменными окружения, которые необходимо установить |
term | Тип эмуляции терминала для запроса, когда выделяется pty |
term_width | Ширина терминала, запрашивается когда выделяется pty |
term_height | Высота терминала, запрашивается когда выделяется pty |
term_units | Единицы, в которых измеряются term_width и term_height | SSH2_TERM_UNIT_CHARS

Примеры

Пример #1 Открытие потока из активного соединения

<?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');
?>

Пример #2 Переменная $session должна быть доступна!

Если вы хотите использовать какую-либо из оберток ssh2.*://$session, необходимо сохранить доступным ресурс, хранящийся в переменной $session. Следующий код не будет иметь желаемого эффекта:

<?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');
$connection_string = "ssh2.sftp://$session/";
unset($session);
$stream = fopen($connection_string . "path/to/file", 'r');
?>

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


RAR

  • « ssh2://
  • ogg:// »
  • PHP Manual
  • Поддерживаемые протоколы и обертки
  • RAR

rar://

rar:// — RAR

Описание

Эта обертка принимает URL-кодированный путь к RAR-архиву (относительный или абсолютный), необязательный символ звездочки (*), необязательный символ решетки (#) и необязательное URL-кодированное имя такое, как хранится в архиве. Для указания имени содержимого требуется символ решетки, начальный обратный слеш в названии содержимого необязателен.

Эта обертка может открывать файлы и директории. Когда открываются директории, знак звездочки требует, чтобы имена объектов директории были закодированы unencode. Если такой знак не указан, они будут возвращены в URL-кодировке. Смысл этого в том, чтобы позволить обертке корректно использовать встроенную функциональность, такую как RecursiveDirectoryIterator когда присутствуют имена файлов, которые кажутся как url-закодированные данные.

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

Замечание: Эта обертка не включена по умолчанию
Для того, чтобы использовать обертку rar://, вам необходимо установить расширение » rar, доступное из репозитория » PECL.

rar:// Доступно начиная с PECL rar 3.0.0

Использование

  • rar://<url encoded archive name>[*][#[<url encoded entry name>]]

Опции

Основная информация
Атрибут | Поддержка
Ограничение по allow_url_fopen | Нет
Ограничение по allow_url_include | Нет
Чтение | Да
Запись | Нет
Добавление | Нет
Одновременное чтение и запись | Нет
Поддержка stat() | Да
Поддержка unlink() | Нет
Поддержка rename() | Нет
Поддержка mkdir() | Нет
Поддержка rmdir() | Нет

Опции контекста
Название | Использование | По умолчанию
open_password | Пароль используется для шифрования заголовков архива, если таковые есть. WinRAR будет шифровать все файлы с таким же паролем, как и пароль заголовков, когда последний присутствует. Поэтому для архивов с зашифрованными заголовками опция file_password будет проигнорирована. |
file_password | Пароль, используемый для шифрования файла, если таковой имеется. Если заголовки также зашифрованы, эта опция будет игнорирована в пользу open_password. Причина этого в том, что нет смысла в использовании одновременно двух разных паролей для шифрования отдельно заголовков и отдельно файлов. Нет таких архивов, где бы это пригодилось. Заметим, что если у архива отсутствуют зашифрованные заголовки, то опция open_password будет игнорирована и эта опция должна быть использована вместо нее. |
volume_callback | Обратный вызов для определения пути недостающих томов архива. Смотрите RarArchive::open() для более детальной информации. |

Примеры

Пример #1 Обход RAR-архива

<?php

class MyRecDirIt extends RecursiveDirectoryIterator {
    function current() {
        return rawurldecode($this->getSubPathName()) .
            (is_dir(parent::current())?" [DIR]":"");
    }
}

$f = "rar://" . rawurlencode(dirname(__FILE__)) .
    DIRECTORY_SEPARATOR . 'dirs_and_extra_headers.rar#';

$it = new RecursiveTreeIterator(new MyRecDirIt($f));

foreach ($it as $s) {
    echo $s, "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

|-allow_everyone_ni [DIR]
|-file1.txt
|-file2_?.txt
|-with_streams.txt
\-? [DIR]
  |-?\%2Fempty%2E [DIR]
  | \-?\%2Fempty%2E\file7.txt
  |-?\empty [DIR]
  |-?\file3.txt
  |-?\file4_?.txt
  \-?\?_2 [DIR]
    |-?\?_2\file5.txt
    \-?\?_2\file6_?.txt

Пример #2 Открытие зашифрованного файла (шифрование заголовка)

<?php
$stream = fopen("rar://" .
    rawurlencode(dirname(__FILE__)) . DIRECTORY_SEPARATOR .
    'encrypted_headers.rar' . '#encfile1.txt', "r", false,
    stream_context_create(
        array(
            'rar' =>
                array(
                    'open_password' => 'samplepassword'
                )
            )
        )
    );
var_dump(stream_get_contents($stream));
/* дата создания и дата последнего доступа включается опционально в WinRAR, поэтому у
 * большинства файлов их нет */
var_dump(fstat($stream));
?>

Результатом выполнения данного примера будет что-то подобное:

string(26) "Encrypted file 1 contents."
Array
(
    [0] => 0
    [1] => 0
    [2] => 33206
    [3] => 1
    [4] => 0
    [5] => 0
    [6] => 0
    [7] => 26
    [8] => 0
    [9] => 1259550052
    [10] => 0
    [11] => -1
    [12] => -1
    [dev] => 0
    [ino] => 0
    [mode] => 33206
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 26
    [atime] => 0
    [mtime] => 1259550052
    [ctime] => 0
    [blksize] => -1
    [blocks] => -1
)


Аудиопотоки

  • « rar://
  • expect:// »
  • PHP Manual
  • Поддерживаемые протоколы и обертки
  • Аудиопотоки

ogg://

ogg:// — Аудиопотоки

Описание

Файлы, открываемые для чтения с использованием обертки ogg://, рассматриваются как сжатый аудиопоток, кодируемый с использованием кодека OGG/Vorbis. Аналогично, файлы, открытые для записи или добавления через обертку ogg://, записываются как сжатые звуковые данные. Функция stream_get_meta_data(), когда используется с файлами OGG/Vorbis открытыми для чтения, будет возвращать разнообразную информацию о потоке, включая тег производителя vendor, комментарии comments, число каналов channels, частоту дискретизации rate, и диапазон частоты кодирования, описываемый: bitrate_lower, bitrate_upper, bitrate_nominal и bitrate_window.

ogg:// (PECL)

Замечание: Данная обертка не доступна по умолчанию
Для того чтобы использовать обертку ogg:// вы должны установить расширение » OGG/Vorbis доступное в » PECL.

Использование

  • ogg://soundfile.ogg
  • ogg:///path/to/soundfile.ogg
  • ogg://http://www.example.com/path/to/soundstream.ogg

Опции

Основная информация
Атрибут | Поддержка
Ограничение по allow_url_fopen | Нет
Чтение | Да
Запись | Да
Добавление | Да
Одновременное чтение и запись | Нет
Поддержка stat() | Нет
Поддержка unlink() | Нет
Поддержка rename() | Нет
Поддержка mkdir() | Нет
Поддержка rmdir() | Нет

Установки для контекста
Название | Использование | Значение по умолчанию | Режим
pcm_mode | Опция PCM кодирования, применяемая во время чтения, одна из констант: OGGVORBIS_PCM_U8, OGGVORBIS_PCM_S8, OGGVORBIS_PCM_U16_BE, OGGVORBIS_PCM_S16_BE, OGGVORBIS_PCM_U16_LE и OGGVORBIS_PCM_S16_LE. (8- или 16-битное, со знаком или без него, прямой или обратный порядок байтов) | OGGVORBIS_PCM_S16_LE | Чтение
rate | Частота дискретизации входных данных, выраженная в Гц | 44100 | Запись/Добавление
bitrate | Когда дано целое число, постоянный битрейт при котором кодировать. (от 16000 до 131072) Когда дано вещественное число, качество переменного битрейта для использования. (от -1.0 до 1.0) | 128000 | Запись/Добавление
channels | Количество аудиоканалов для кодирования, обычно 1 (Моно), или 2 (Стерео). Может варьироваться вплоть до 16. | 2 | Запись/Добавление
comments | Массив строк для запись в заголовок трека. |  | Запись/Добавление

Примеры


Потоки для взаимодействия с процессами

  • « ogg://
  • Безопасность »
  • PHP Manual
  • Поддерживаемые протоколы и обертки
  • Потоки для взаимодействия с процессами

expect://

expect:// — Потоки для взаимодействия с процессами

Описание

Потоки, открытые с помощью обертки expect://, предоставляют доступ к процессам stdio, stdout и stderr через PTY.

Замечание: Эта обертка отключена по умолчанию
Для того, чтобы использовать обертку expect://, необходимо установить модуль » Expect, доступный в » PECL.

expect:// (PECL)

Использование

  • expect://command

Опции

Основная информация
Атрибут | Поддержка
Ограничение по allow_url_fopen | Нет
Чтение | Да
Запись | Да
Добавление | Да
Одновременное чтение и запись | Нет
Поддержка stat() | Нет
Поддержка unlink() | Нет
Поддержка rename() | Нет
Поддержка mkdir() | Нет
Поддержка rmdir() | Нет

Примеры


Безопасность

  • Вступление
  • Общие рассуждения
  • Если PHP установлен как CGI
    • Возможные атаки
    • Вариант 1: обслуживаются только общедоступные файлы
    • Вариант 2: использование cgi.force_redirect
    • Вариант 3: использование опций doc_root или user_dir
    • Вариант 4: PHP вне дерева веб-документов
  • Если PHP установлен как модуль Apache
  • Безопасность сессий
  • Безопасность файловой системы
    • Проблемы безопасности, связанные с нулевым байтом
  • Безопасность баз данных
    • Проектирование базы данных
    • Соединение с базой данных
    • Шифрование хранилища базы данных
    • SQL-инъекции
  • Сообщения об ошибках
  • Использование глобальных переменных (Register_Globals)
  • Данные, введенные пользователем
  • Волшебные кавычки
    • Что такое волшебные кавычки?
    • Зачем мы использовали волшебные кавычки?
    • Почему не надо использовать волшебные кавычки
    • Отключение волшебных кавычек
  • Сокрытие PHP
  • Необходимость обновлений


Вступление

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

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

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

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


Общие рассуждения

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

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

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

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

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


Если PHP установлен как CGI

Содержание

  • Возможные атаки
  • Вариант 1: обслуживаются только общедоступные файлы
  • Вариант 2: использование cgi.force_redirect
  • Вариант 3: использование опций doc_root или user_dir
  • Вариант 4: PHP вне дерева веб-документов


Возможные атаки

Использование PHP как бинарного CGI-приложения является одним из вариантов, когда по каким-либо причинам нежелательно интегрировать PHP в веб-сервер (например, Apache) в качестве модуля, либо предполагается использование различных CGI-оберток и таких утилит, как 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 указать во время исполнения скрипта опции cgi.force_redirect, doc_root и user_dir, то можно предотвратить подобные атаки для директорий с ограниченным доступом. Более детально приведенные опции, а также их комбинации будут рассмотрены ниже.


Вариант 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 (описано ниже).


Вариант 2: использование cgi.force_redirect

Конфигурационная директива cgi.force_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-приложениями.


Вариант 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 (да, имя директории начинается с символа ~).

Но если user_dir установлена, например, в значение public_php, то запрос вида http://my.host/~user/doc.php откроет файл doc.php, находящийся в домашнем каталоге пользователя, в директории public_php. Например, если домашний каталог пользователя /home/user, будет выполнен файл /home/user/public_php/doc.php.

Установка опции user_dir происходит независимо от установки doc_root, таким образом вы можете контролировать корневую директорию веб-сервера и пользовательские директории независимо друг от друга.


Вариант 4: PHP вне дерева веб-документов

Один из способов существенно повысить уровень безопасности - поместить исполняемый модуль PHP вне дерева веб-документов, например в /usr/local/bin. Единственным недостатком такого подхода является то, что первая строка каждого скрипта должна иметь вид:

#!/usr/local/bin/php
Также необходимо сделать все файлы скриптов исполняемыми. Таким образом, скрипт будет рассматриваться так же, как и любое другое CGI-приложение, написанное на Perl, sh или любом другом скриптовом языке, который использует #! в начале файла для запуска самого себя.

Для корректной обработки PHP переменных PATH_INFO и PATH_TRANSLATED, он должен быть сконфигурирован с опцией --enable-discard-path.


Если PHP установлен как модуль Apache

Если PHP используется как модуль Apache, он наследует права пользователя, с которыми был запущен веб-сервер (обычно это пользователь "nobody"). Это влияет на обеспечение безопасности и реализацию авторизации. Например, если вы используете PHP для доступа к базе данных, которая не имеет встроенного механизма разграничения доступа, вам придется обеспечить доступ к БД для пользователя 'nobody'. В таком случае вредоносный скрипт может получить доступ к базе данных и модифицировать ее, даже не зная логина и пароля. Вполне возможна ситуация, при которой веб-паук неверными запросами на страницу администратора базы данных может уничтожить все ваши базы данных. Вы можете избежать такой ситуации при помощи авторизации Apache или разработав собственную модель доступа, используя LDAP, файлы .htaccess или любые другие технологии, внедряя соответствующий код в ваши PHP-скрипты.

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

Распространенной ошибкой является запуск Apache с правами суперпользователя или любое другое расширение полномочий веб-сервера.

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

Существует несколько простых решений. Используя open_basedir, вы можете ограничить дерево доступных директорий для PHP. Вы так же можете определить область доступа Apache, ограничив все действия, совершаемые из веба не пользовательскими или несистемными файлами.


Безопасность сессий

Крайне важно обеспечивать безопасность HTTP-сессий. Подробное описание, какими средствами этого можно достичь, читайте в секции Безопасность сессий руководства Сессии.


Безопасность файловой системы

Содержание

  • Проблемы безопасности, связанные с нулевым байтом

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

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

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

Пример #1 Недостаточная проверка внешних данных ведет к...

<?php
// Удаление файла из домашней директории пользователя
$username = $_POST['user_submitted_name'];
$userfile = $_POST['user_submitted_filename'];
$homedir  = "/home/$username";

unlink("$homedir/$userfile");

echo "Файл был удален!";
?>
Поскольку переменные вводятся в пользовательской форме, существует возможность удалить файлы, принадлежащие кому-либо другому, введя соответствующие значения. В этом случае может понадобиться авторизация. Посмотрим, что произойдет, если будут отправлены значения "../etc/" и "passwd". Скрипт выполнит следующие действия:

Пример #2 ... атаке на файловую систему

<?php
// Удаление любого файла, доступного из PHP-скрипта.
// В случае, если PHP работает с правами пользователя root:
$username = $_POST['user_submitted_name']; // "../etc"
$userfile = $_POST['user_submitted_filename']; // "passwd"
$homedir  = "/home/$username"; // "/home/../etc"

unlink("$homedir/$userfile"); // "/home/../etc/passwd"

echo "Файл был удален!";
?>
Cуществуют две важные меры, которые можно предпринять для предотвращения описанной проблемы.
  • Ограничить доступ пользователя, с правами которого работает веб-сервер с PHP.
  • Проверять все данные, вводимые пользователем.
Вот улучшеный вариант кода:

Пример #3 Более безопасная проверка имени файла

<?php
// Удаление любого файла, к которому имеет доступ пользователь,
// под которым запущен PHP.
$username = $_SERVER['REMOTE_USER']; // использование авторизации
$userfile = basename($_POST['user_submitted_filename']);
$homedir  = "/home/$username";

$filepath = "$homedir/$userfile";

if (file_exists($filepath) && unlink($filepath)) {
    $logstring = "$filepath удален\n";
} else {
    $logstring = "Не удалось удалить $filepath\n";
}
$fp = fopen("/home/logging/filedelete.log", "a");
fwrite($fp, $logstring);
fclose($fp);

echo htmlentities($logstring, ENT_QUOTES);

?>
Однако и такая проверка не учитывает все возможные ситуации. Если система авторизации позволяет пользователям выбирать произвольные логины, взломщик может создать учетную запись вида "../etc/" и система опять окажется уязвимой. Исходя из этого, вам может понадобиться более строгая проверка:

Пример #4 Более строгая проверка имени файла

<?php
$username     = $_SERVER['REMOTE_USER']; // использование авторизации
$userfile     = $_POST['user_submitted_filename'];
$homedir      = "/home/$username";

$filepath     = "$homedir/$userfile";

if (!ctype_alnum($username) || !preg_match('/^(?:[a-z0-9_-]|\.(?!\.))+$/iD', $userfile)) {
    die("Неправильное имя пользователя или файл");
}

//etc...
?>

В зависимости от используемой вами операционной системы необходимо предусматривать возможность атаки на разнообразные файлы, включая системные файлы устройств (/dev/ или COM1), конфигурационные файлы (например /etc/ или файлы с расширением .ini), хорошо известные области хранения данных (/home/, My Documents), и так далее. Исходя из этого, как правило, легче реализовать такую политику безопасности, в которой запрещено все, исключая то, что явно разрешено.


Проблемы безопасности, связанные с нулевым байтом

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

Пример #1 Скрипт, уязвимый к нулевому байту

<?php
$file = $_GET['file']; // "../../etc/passwd\0"
if (file_exists('/home/wwwrun/'.$file.'.php')) {
    // file_exists возвратит true, т.к. /home/wwwrun/../../etc/passwd существует
    include '/home/wwwrun/'.$file.'.php';
    // будет подключен файл /etc/passwd
}
?>

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

Пример #2 Корректная проверка входных данных

<?php
$file = $_GET['file'];

// Белый список возможных значений
switch ($file) {
    case 'main':
    case 'foo':
    case 'bar':
        include '/home/wwwrun/include/'.$file.'.php';
        break;
    default:
        include '/home/wwwrun/include/main.php';
}
?>


Безопасность баз данных

Содержание

  • Проектирование базы данных
  • Соединение с базой данных
  • Шифрование хранилища базы данных
  • SQL-инъекции

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

Для извлечения или сохранения любых данных вам необходимо открыть соединение с базой данных, отправить корректный запрос, извлечь результат и закрыть соединение. В настоящее время наиболее распространенным стандартом общения является язык структурированных запросов (SQL). Всегда следует помнить о возможности атаки посредством SQL-запроса.

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

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


Проектирование базы данных

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

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

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


Соединение с базой данных

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


Шифрование хранилища базы данных

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

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

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

Хеширование

В случае работы со скрытыми служебными данными, если не требуется их нешифрованное представление (т.е. его не нужно показывать), то, как следствие, можно использовать хеширование. Хорошо известный пример хеширования - хранение криптографического хеша от пароля в БД, вместо хранения оригинального значения.

В PHP 5.5 и выше, функция password позволяет удобно хешировать конфиденциальные данные и работать с этими хешами. В 5.3.7+ можно использовать библиотеку » password_compat.

password_hash() позволяет хешировать заданную строку самым сильным из доступных алгоритмом и password_verify() проверяет, что заданный пароль совпадает с сохраненным в БД хешем.

Пример #1 Хеширование полей с паролями

<?php

// Сохраняем хеш пароля
$query  = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
            pg_escape_string($username),
            password_hash($password, PASSWORD_DEFAULT));
$result = pg_query($connection, $query);

// проверка введенного пользователем пароля на корректность
$query = sprintf("SELECT pwd FROM users WHERE name='%s';",
            pg_escape_string($username));
$row = pg_fetch_assoc(pg_query($connection, $query));

if ($row && password_verify($password, $row['pwd'])) {
    echo 'Добро пожаловать, ' . htmlspecialchars($username) . '!';
} else {
    echo 'Ошибка авторизации, ' . htmlspecialchars($username) . '.';
}

?>

В более старых версиях PHP можно использовать функцию crypt().

Пример #2 Хеширование паролей используя crypt()

<?php

// сохранение хешированного пароля
// $random_chars получены например использованием /dev/random
$query  = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
            pg_escape_string($username),
            pg_escape_string(crypt($password, '$2a$07$' . $random_chars . '$')));
$result = pg_query($connection, $query);

// проверка введенного пользователем пароля на корректность
$query = sprintf("SELECT pwd FROM users WHERE name='%s';",
            pg_escape_string($username));
$row = pg_fetch_assoc(pg_query($connection, $query));

if ($row && crypt($password, $row['pwd']) == $row['pwd']) {
    echo 'Добро пожаловать, ' . htmlspecialchars($username) . '!';
} else {
    echo 'Авторизация не удалась, ' . htmlspecialchars($username) . '.';
}

?>


SQL-инъекции

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

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

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

Пример #1 Постраничный вывод результата... и создание суперпользователя в PostgreSQL

<?php

$offset = $argv[0]; // внимание, нет проверки вводимых данных!
$query  = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
$result = pg_query($conn, $query);

?>
Обычно пользователи кликают по ссылкам 'вперед' и 'назад', вследствие чего значение переменной $offset заносится в URL. Скрипт ожидает, что $offset - десятичное число. Однако, взломщик может попытаться взломать систему, присоединив к URL дополнительную строку, обработанную функцией urlencode():
0;
insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
    select 'crack', usesysid, 't','t','crack'
    from pg_shadow where usename='postgres';
--
Если это произойдет, скрипт предоставит взломщику доступ к базе с правами суперпользователя. Заметим, что значение 0; использовано для того, чтобы задать правильное смещение для первого запроса и корректно его завершить.

Замечание:

Часто используемой техникой для игнорирования SQL-парсером оставшейся части запроса является использование --, означающей комментарий.

Еще один вероятный способ получить пароли учетных записей в БД - атака страниц, предоставляющих поиск по базе. Взломщику нужно лишь проверить, используется ли в запросе передаваемая на сервер и необрабатываемая надлежащим образом переменная. Это может быть один из устанавливаемых на предыдущей странице фильтров, таких как WHERE, ORDER BY, LIMIT и OFFSET, используемых при построении запросов SELECT. В случае, если используемая вами база данных поддерживает конструкцию UNION, взломщик может присоединить к оригинальному запросу еще один дополнительный, для извлечения пользовательских паролей. Настоятельно рекомендуем использовать только зашифрованные пароли.

Пример #2 Листинг статей... и некоторых паролей (для любой базы данных)

<?php

$query  = "SELECT id, name, inserted, size FROM products
           WHERE size = '$size'";
$result = odbc_exec($conn, $query);

?>
Статическая часть запроса может комбинироваться с другим SELECT-запросом, который выведет все пароли:
'
union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from usertable;
--
Если этот запрос (использующий ' и --) присоединить к значению одной из переменных, используемых для формирования $query, то запрос заметно преобразится.

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

Пример #3 От восстановления пароля... до получения дополнительных привилегий (для любой базы данных)

<?php
$query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
?>
Но злоумышленник может ввести значение ' or uid like'%admin%' для переменной $uid для изменения пароля администратора или просто присвоить переменной $pwd значение hehehe', trusted=100, admin='yes для получения дополнительных привилегий. При выполнении запросы переплетаются:
<?php

// $uid: ' or uid like '%admin%
$query = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%';";

// $pwd: hehehe', trusted=100, admin='yes
$query = "UPDATE usertable SET pwd='hehehe', trusted=100, admin='yes' WHERE
...;";

?>

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

Пример #4 Выполнение команд операционной системы на сервере (для базы MSSQL)

<?php

$query  = "SELECT * FROM products WHERE id LIKE '%$prod%'";
$result = mssql_query($query);

?>
Если взломщик введет значение a%' exec master..xp_cmdshell 'net user test testpass /ADD' -- для переменной $prod, тогда запрос $query будет выглядеть так:
<?php

$query  = "SELECT * FROM products
           WHERE id LIKE '%a%'
           exec master..xp_cmdshell 'net user test testpass /ADD' --%'";
$result = mssql_query($query);

?>
MSSQL сервер выполняет SQL-команды в пакетном режиме, в том числе и операции по заведению локальных учетных записей базы данных. В случае, если приложение работает с привилегиями администратора sa и сервис MSSQL запущен с необходимыми привилегиями, то выполнив приведенные выше действия, взломщик получит аккаунт для доступа к серверу.

Замечание:

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

Рабочий пример проблем, вызываемых SQL-инъекцией
Авторство изображения принадлежит » xkcd

Способы защиты

Хотя по-прежнему очевидно, что взломщик должен обладать по крайней мере некоторыми знаниями о структуре базы данных чтобы провести успешную атаку, получить эту информацию зачастую очень просто. Например, если база данных является частью open-source или другого публично доступного программного пакета с инсталляцией по умолчанию, эта информация является полностью открытой и доступной. Эти данные также могут быть получены из закрытого проекта, даже если он закодирован, усложнен, или скомпилирован, и даже из вашего личного кода через отображение сообщений об ошибках. К другим методам относится использование распространенных (легко угадываемых) названий таблиц и столбцов. Например, форма логина, которая использует таблицу 'users' c названиями столбцов 'id', 'username' и 'password'.

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

  • Никогда не соединяйтесь с базой данных, используя учетную запись владельца базы данных или суперпользователя. Всегда старайтесь использовать специально созданных пользователей с максимально ограниченными правами.
  • используйте подготовленные выражения с привязанными переменными. Эта возможность предоставляется расширениями PDO, MySQLi и другими библиотеками.
  • Всегда проверяйте введенные данные на соответствие ожидаемому типу. В PHP есть множество функций для проверки данных: начиная от простейших функций для работы с переменными и функций определения типа символов (таких как is_numeric() и ctype_digit() соответственно) и заканчивая Perl-совместимыми регулярными выражениями.

  • В случае, если приложение ожидает цифровой ввод, примените функцию ctype_digit() для проверки введенных данных, или принудительно укажите их тип при помощи settype(), или просто используйте числовое представление при помощи функции sprintf().

    Пример #5 Более безопасная реализация постраничной навигации

    <?php

    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);

    ?>

  • Если на уровне базы данных не поддерживаются привязанные переменные, то всегда экранируйте любые нечисловые данные, используемый в запросах к БД при помощи специальных экранирующих функций, специфичных для используемой вами базы данных (например, mysql_real_escape_string(), sqlite_escape_string() и т.д.). Общие функции такие как addslashes() полезны только в определенных случаях (например MySQL в однобайтной кодировке с отключенным NO_BACKSLASH_ESCAPES), поэтому лучше избегать их использование.
  • Ни в коем случае не выводите никакой информации о БД, особенно о ее структуре. Также ознакомьтесь с соответствующими разделами документации: "Сообщения об ошибках" и "Функции обработки и логирования ошибок".
  • Вы можете использовать хранимые процедуры и заранее определенные курсоры для абстрагированной работы с данными, не предоставляя пользователям прямого доступа к данным и представлениям, но это решение имеет свои особенности.

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


Сообщения об ошибках

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

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

Пример #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() в целях отладки, но на работающих сайтах это может открыть информацию о скрытых переменных, непроверенном синтаксисе и других потенциально опасных моментах. Особенно опасно наличие кода со встроенным механизмом отладки в публичных частях сайта. Взломщик может попытаться запустить отладочный механизм, подбирая основные признаки отладки:

Пример #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 для создания собственного обработчика ошибок. В зависимости от используемой вами политики безопасности вы можете применить в вашей конкретной ситуации все три способа.

Один из возможных способов обезопасить ваш код перед его публикацией в общий доступ - это использование функции PHP error_reporting(), которая может помочь выявить потенциально опасные переменные. Тестируя код перед выпуском релиза при помощи значения E_ALL, вы достаточно легко можете обнаружить участки кода, в которых переменные могут быть подменены либо модифицированы. После окончания тестирования, вы можете либо полностью отключить все сообщения об ошибках установив error_reporting() в 0, либо отключить их вывод с помощью директивы php.ini display_errors, изолировав таким образом ваш код от прощупывания. Если вы решили использовать последний способ, то необходимо также указать путь к лог-файлу с помощью директивы error_log и включить директиву log_errors.

Пример #3 Поиск потенциально опасных переменных при помощи E_ALL

<?php
if ($username) {  // Переменная не инициализируется или не проверяется перед использованием
    $good_login = 1;
}
if ($good_login == 1) { // Если предыдущая проверка потерпела неудачу, переменная оказывается неинициализированной
    readfile ("/highly/sensitive/data/index.html");
}
?>


Использование глобальных переменных (Register_Globals)

Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Наверное, наиболее спорным моментом в разработке PHP стала замена значения по умолчанию для PHP-директивы register_globals с ON на OFF в версии PHP » 4.2.0. Большинство пользователей полагались на работу этой опции, даже не зная, что это за опция и думали, что это просто способ работы самого PHP. Эта страница документации призвана показать, как эта настройка сочетается с вопросами безопасности при разработке приложений. Следует понимать, что сама по себе эта опция никак не влияет на безопасность, угрозу представляет некорректное использование предоставляемых ею возможностей.

В случае, если register_globals включена, то перед выполнением вашего кода будут инициализированы различные переменные, например, переменные, переданные при отправке HTML-формы. Также, учитывая тот факт, что PHP не требует инициализации переменных, написать потенциально опасный код очень легко. Это было очень сложным решением, но сообщество PHP решило изменить значение по умолчанию этой директивы на OFF. Если директива включена, то при написании кода разработчики не могли с уверенностью сказать, откуда пришла та или иная переменная и насколько она достоверна. До такого нововведения переменные, определяемые разработчиком внутри скрипта, и передаваемые пользователем внешние данные могли перемешиваться. Приведем простой пример злоупотребления конфигурационной опцией register_globals:

Пример #1 Пример опасного кода с register_globals = on

<?php
// устанавливаем переменную $authorized = true только для пользователей, прошедших авторизацию
if (authenticated_user()) {
    $authorized = true;
}

// Поскольку в случае неудачи при проверке авторизации переменная $authorized
// не установлена, она может быть установлена автоматически благодаря register_globals,
// например, при 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 в приведенном ниже примере, но тогда у нас не будет уверенности в достоверности ее значения (к примеру, $username могла быть передана в GET-запросе через URL).

Пример #2 Пример использования сессий со значением register_globals on или off

<?php
// Мы не знаем, откуда получена переменная $username, но точно знаем, что
// переменная $_SESSION хранит в себе данные сессии
if (isset($_SESSION['username'])) {

    echo "Привет, <b>{$_SESSION['username']}</b>";

} else {

    echo "Привет, <b>гость</b><br />";
    echo "Вы хотите войти?";

}
?>

Также существует возможность реализации превентивных мер в случае попытки подмены переменных. Так как во время разработки приложения мы знаем ожидаемое значение переменной, а также знаем ее достоверное значение, мы можем их сопоставить. Это не защитит код от подмены переменных, но усложнит перебор возможных вариантов. Если вы не хотите знать, как именно были получены внешние данные, используйте переменную $_REQUEST, которая является смесью из данных GET- и POST-запросов, а также данных COOKIE. Также, информацию об этом можно найти в разделе внешние данные в PHP.

Пример #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.

О том, как эмулировать включенное или отключенное состояние register_globals, смотрите этот FAQ.


Данные, введенные пользователем

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

Пример #1 Потенциально опасное использование переменных

<?php
// удалить файлы из домашней директории пользователя...
// а может, из еще какой-нибудь?
unlink ($evil_var);

// записать в лог-файл выполняемое действие...
// а может быть в /etc/passwd?
fwrite ($fp, $evil_var);

// выполнение тривиальных действий... или rm -rf *?
system ($evil_var);
exec ($evil_var);

?>

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

  • Будет ли данный скрипт воздействовать исключительно на предполагаемые данные?
  • Могут ли быть обработаны некорректные или нестандартные данные?
  • Возможно ли использование скрипта непредусмотренным способом?
  • Возможно ли его использование в сочетании с другими скриптами в негативных целях?
  • Будет ли каждая транзакция корректно логирована?

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

Вы также можете рассмотреть отключение таких конфигурационных опций, как register_globals, magic_quotes и некоторых других, которые могут приводить к сомнениям относительно происхождения или значения получаемых переменных. Использование при написании PHP-кода режима error_reporting(E_ALL) может помочь предупредить вас об использовании переменных до инициализации или проверки (что предотвратит работу с данными, отличными от ожидаемых).


Волшебные кавычки

Содержание

  • Что такое волшебные кавычки?
  • Зачем мы использовали волшебные кавычки?
  • Почему не надо использовать волшебные кавычки
  • Отключение волшебных кавычек
Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Волшебные кавычки (Magic Quotes) - это процесс автоматического экранирования входящих данных PHP-скрипта. Желательно отключать директиву magic quotes и вместо этого экранировать данные в процессе разработки, если это необходимо.


Что такое волшебные кавычки?

Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Если эта опция включена, то все символы ' (одиночные кавычки), " (двойные кавычки), \ (обратный слеш) и NULL автоматически экранируются обратным слешем. Это идентично тому, что делает функция addslashes().

Существует три вида директив волшебных кавычек:

  • magic_quotes_gpc Воздействует на данные HTTP-запроса (GET, POST и COOKIE). Не может быть изменена во время выполнения и по умолчанию в PHP установлена в on. Смотрите также get_magic_quotes_gpc().
  • magic_quotes_runtime Если включена, то большинство функций, которые возвращают данные из внешнего источника, включая базы данных и текстовые файлы, будут экранировать кавычки с помощью обратного слеша. Может быть установлена во время выполнения и по умолчанию в PHP имеет значение off. Смотрите также set_magic_quotes_runtime() и get_magic_quotes_runtime().
  • magic_quotes_sybase Если включено, то одиночная кавычка экранируется одиночной кавычкой вместо обратного слеша. Если установлено значение on, то данная опция полностью перекрывает установку magic_quotes_gpc. В случае, если включены обе директивы, выполняется экранирование только одиночных кавычек с помощью ''. Двойные кавычки, обратные слеши, значение NULL останутся нетронутыми и неэкранированными. Смотрите также ini_get() для получения установленного значения.


Зачем мы использовали волшебные кавычки?

Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

  • Нет смысла использовать волшебные кавычки, так как они больше не поддерживаются PHP. Однако, во время своего существования они помогали некоторым новичкам писать лучший (более безопасный) код, даже не подозревая об этом. Но теперь, если вы работаете с кодом, который полагается на это поведение, лучшим выходом будет обновить код вместо включения волшебных кавычек. Так зачем это вообще было добавлено? Ответ довольно прост - SQL-инъекции. Современные программисты лучше осведомлены в вопросах безопасности и вместо слепого включения волшебных кавычек используют специфичные механизмы экранирования для используемой ими базы данных и/или подготовленные запросы (prepared statements).


Почему не надо использовать волшебные кавычки

Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

  • Переносимость Возможность присваивания значений on или off сказывается на переносимости. Используйте get_magic_quotes_gpc() для проверки и пишите код соответствующим образом.
  • Производительность Так как не все экранируемые данные заносятся в базу данных, то присутствует потеря производительности при экранировании всех данных. Простой вызов экранирующих функций (например, addslashes()) во время выполнения более эффективен. Хотя в php.ini-development эти директивы по умолчанию включены, в php.ini-production они отключены. Эта рекомендация соответствует, в основном, причинам производительности.
  • Неудобство Так как не все данные должны быть экранированы, то часто неприятно видеть экранированные данные там, где этого не должно быть. Например, при отправке письма из формы можно наблюдать связку \' в самом письме. Для того, чтобы это исправить, требуется дополнительно использовать stripslashes().


Отключение волшебных кавычек

Директиву magic_quotes_gpc можно отключить только на системном уровне и нельзя во время выполнения. Другими словами, использование ini_set() не даст никакого эффекта.

Пример #1 Отключение волшебных кавычек на сервере

Ниже указан пример, где показана установка значения Off в php.ini для этих директив. Для дополнительной информации читайте раздел руководства под названием " Как изменять параметры конфигурации".

; Волшебные кавычки
;

; Волшебные кавычки для входных данных GET/POST/Cookie.
magic_quotes_gpc = Off

; Волшебные кавычки для данных, поступающих во время выполнения (например, данные из SQL, из exec() и т.д).
magic_quotes_runtime = Off

; Использование волшебных кавычек в стиле Sybase (экранирование ' с помощью '' вместо \').
magic_quotes_sybase = Off

Если доступ к конфигурации на сервере невозможен, используйте .htaccess в качестве альтернативы. Например:

php_flag magic_quotes_gpc Off

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

Пример #2 Отключение волшебных кавычек во время выполнения скрипта

<?php
if (get_magic_quotes_gpc()) {
    $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
    while (list($key, $val) = each($process)) {
        foreach ($val as $k => $v) {
            unset($process[$key][$k]);
            if (is_array($v)) {
                $process[$key][stripslashes($k)] = $v;
                $process[] = &$process[$key][stripslashes($k)];
            } else {
                $process[$key][stripslashes($k)] = stripslashes($v);
            }
        }
    }
    unset($process);
}
?>


Сокрытие PHP

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

Несколько несложных методик могут помочь вам скрыть PHP, что усложняет работу потенциального взломщика, который пытается найти брешь в вашей системе. Установив опцию expose_php в off в конфигурационном файле php.ini, вы уменьшите количество доступной хакеру информации.

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

Пример #1 Маскировка PHP под другие языки программирования

# Теперь PHP-скрипты могут иметь те же расширения, что и другие языки программирования
AddType application/x-httpd-php .asp .py .pl
Или скрыть его совсем:

Пример #2 Использование неизвестных расширений для PHP-скриптов

# Теперь PHP-скрипты могут иметь неизвестные типы файлов
AddType application/x-httpd-php .bop .foo .133t
Также можно спрятать его под видом HTML-кода, что приведет к потере производительности, так как все HTML-файлы будут обрабатываться PHP:

Пример #3 Маскировка PHP-файлов под HTML

# Теперь PHP-скрипты выглядят как обыкновенный HTML
AddType application/x-httpd-php .htm .html
Чтобы достичь желаемого эффекта, вы должны переименовать все ваши PHP-скрипты в соответствии с выбранным вами расширением. Описанное в этом разделе документации повышение безопасности через сокрытие является небольшой превентивной мерой при малых затратах.


Необходимость обновлений

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

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


Отличительные особенности

  • HTTP-аутентификация в PHP
  • Cookies
  • Сессии
  • Работа с XForms
  • Загрузка файлов на сервер
    • Загрузка файлов методом POST
    • Объяснение сообщений об ошибках
    • Наиболее распространенные ошибки
    • Загрузка нескольких файлов
    • Поддержка метода PUT
    • Смотрите также
  • Работа с удаленными файлами
  • Работа с соединениями
  • Постоянные соединения с базами данных
  • Безопасный режим
    • Безопасность и безопасный режим
    • Ограниченные или недоступные в безопасном режиме функции
  • Использование PHP в командной строке
    • Введение
    • Основные отличия от остальных реализаций SAPI
    • Опции — Список опций командной строки
    • Использование — Выполнение PHP-файлов
    • Потоки ввода/вывода
    • Интерактивная консоль
    • Встроенный веб-сервер
    • Опции конфигурации
  • Сборка мусора
    • Основы подсчета ссылок
    • Сбор циклических ссылок
    • Вопросы производительности
  • Динамическая трассировка DTrace
    • Введение в PHP и DTrace
    • Использование PHP и DTrace
    • Использование SystemTap со статическими зондами PHP DTrace


HTTP-аутентификация в PHP

Возможно использовать функцию header() для отправки сообщения "Authentication Required" браузеру, заставив его показать окошко для ввода логина и пароля. Как только пользователь заполнит логин и пароль, ссылка, содержащая PHP-скрипт будет вызвана еще раз с предопределенными переменными PHP_AUTH_USER, PHP_AUTH_PW и AUTH_TYPE, установленными в логин, пароль и тип аутентификации соответственно. Эти предопределенные переменные хранятся в массиве $_SERVER. Поддерживаются оба типа: "Basic" и "Digest" (начиная с версии PHP 5.1.0). Подробнее смотрите функцию header().

Пример фрагмента скрипта, который вынуждает клиента авторизоваться для просмотра страницы:

Пример #1 Пример Basic 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>";
}
?>

Пример #2 Пример Digest HTTP-аутентификации

Это пример реализации простого скрипта Digest HTTP-аутентификации. За подробностями обращайтесь к » RFC 2617.

<?php
$realm = 'Запретная зона';

//user => password
$users = array('admin' => 'mypass', 'guest' => 'guest');

if (empty($_SERVER['PHP_AUTH_DIGEST'])) {
    header('HTTP/1.1 401 Unauthorized');
    header('WWW-Authenticate: Digest realm="'.$realm.
           '",qop="auth",nonce="'.uniqid().'",opaque="'.md5($realm).'"');

    die('Текст, отправляемый в том случае, если пользователь нажал кнопку Cancel');
}

// анализируем переменную PHP_AUTH_DIGEST
if (!($data = http_digest_parse($_SERVER['PHP_AUTH_DIGEST'])) ||
    !isset($users[$data['username']]))
    die('Неправильные данные!');

// генерируем корректный ответ
$A1 = md5($data['username'] . ':' . $realm . ':' . $users[$data['username']]);
$A2 = md5($_SERVER['REQUEST_METHOD'].':'.$data['uri']);
$valid_response = md5($A1.':'.$data['nonce'].':'.$data['nc'].':'.$data['cnonce'].':'.$data['qop'].':'.$A2);

if ($data['response'] != $valid_response)
    die('Неправильные данные!');

// все хорошо, логин и пароль верны
echo 'Вы вошли как: ' . $data['username'];

// функция разбора заголовка http auth
function http_digest_parse($txt)
{
    // защита от отсутствующих данных
    $needed_parts = array('nonce'=>1, 'nc'=>1, 'cnonce'=>1, 'qop'=>1, 'username'=>1, 'uri'=>1, 'response'=>1);
    $data = array();
    $keys = implode('|', array_keys($needed_parts));

    preg_match_all('@(' . $keys . ')=(?:([\'"])([^\2]+?)\2|([^\s,]+))@', $txt, $matches, PREG_SET_ORDER);

    foreach ($matches as $m) {
        $data[$m[1]] = $m[3] ? $m[3] : $m[4];
        unset($needed_parts[$m[1]]);
    }

    return $needed_parts ? false : $data;
}
?>

Замечание: Замечание касательно совместимости

Будьте особенно внимательны при указании HTTP-заголовков. Для того, чтобы гарантировать максимальную совместимость с наибольшим количеством различных клиентов, слово "Basic" должно быть написано с большой буквы "B", регион (realm) должен быть взят в двойные (не одинарные!) кавычки, и ровно один пробел должен предшествовать коду 401 в заголовке HTTP/1.0 401. Параметры аутентификации должны разделяться запятыми, как это было показано в примере Digest аутентификации выше.

Вместо простого отображения на экране переменных PHP_AUTH_USER и PHP_AUTH_PW, вам, возможно, понадобится проверить их корректность. Используйте для этого запрос к базе данных или поиск пользователя в dbm-файле.

Вы можете пронаблюдать особенности работы браузера Internet Explorer. Он очень требователен к параметру передаваемых заголовков. Трюк с указанием заголовка WWW-Authenticate перед отправкой статуса HTTP/1.0 401 пока что работает для него.

Для того, чтобы предотвратить написание кем-либо скрипта, раскрывающего пароль к странице, которая использует внешнюю аутентификацию, переменные PHP_AUTH не устанавливаются в случае, если данная страница использует внешнюю аутентификацию и установлен безопасный режим. Несмотря на это, переменная REMOTE_USER может использоваться для аутентификации пользователя, прошедшего внешнюю аутентификацию. Таким образом, вы всегда можете воспользоваться переменной $_SERVER['REMOTE_USER'].

Замечание: Замечание касательно конфигурации

PHP использует указание директивы AuthType для указания того, используется внешняя аутентификация или нет.

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

И Netscape Navigator и Internet Explorer очищают кеш аутентификации текущего окна для заданного региона (realm) при получении от сервера статуса 401. Это может использоваться для реализации принудительного выхода пользователя и повторного отображения диалогового окна для ввода имени пользователя и пароля. Некоторые разработчики используют это для ограничения авторизации по времени или для предоставления кнопки "Выход".

Пример #3 Пример 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>Добро пожаловать: " . htmlspecialchars($_SERVER['PHP_AUTH_USER']) . "<br />";
    echo "Предыдущий логин: " . htmlspecialchars($_REQUEST['OldAuth']);
    echo "<form action='' method='post'>\n";
    echo "<input type='hidden' name='SeenBefore' value='1' />\n";
    echo "<input type='hidden' name='OldAuth' value=\"" . htmlspecialchars($_SERVER['PHP_AUTH_USER']) . "\" />\n";
    echo "<input type='submit' value='Авторизоваться повторно' />\n";
    echo "</form></p>\n";
}
?>

Это поведение не регламентируется стандартами HTTP Basic-аутентификации, следовательно, вы не должны зависеть от этого. Тестирование браузера Lynx показало, что Lynx не очищает кеш авторизации при получении от сервера статуса 401, и, нажав последовательно "Back", а затем "Forward" возможно открыть такую страницу, при условии, что требуемые атрибуты авторизации не изменились. Однако, пользователь может нажать клавишу '_' для очистки кеша аутентификации.

Для того, чтобы добиться корректной работы HTTP-аутентификации в IIS сервере с CGI версией PHP, вы должны отредактировать конфигурационную настройку IIS под названием "Directory Security". Щелкните на надписи "Edit" и установите опцию "Anonymous Access", все остальные поля должны остаться неотмеченными.

Замечание: Замечание касательно IIS:
Для того, чтобы HTTP-аутентификация корректно работала в IIS, в конфигурации PHP опция cgi.rfc2616_headers должна быть установлена значением 0 (значение по умолчанию).

Замечание:

В случае, если используется безопасный режим, UID текущего скрипта будет добавлен в realm-часть заголовка WWW-Authenticate.


Cookies

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

Любые cookies, отправленные серверу браузером клиента, будут автоматически включены в суперглобальный массив $_COOKIE, если директива variables_order содержит букву "C". Для назначения нескольких значений одной cookie, просто добавьте [] к её имени.

В старых версиях PHP (5.3 или ранее) опция register_globals могла быть включена, что могло приводить к нежелательным и небезопасным операциям. Если эта опция включена, cookies будут представлены как глобальные переменные.

Дополнительная информация, в том числе и особенности реализации браузеров, приведена в описании функций setcookie() и setrawcookie().


Сессии

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


Работа с XForms

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

Первое существенное отличие XForms заключается в том, как форма отсылается клиенту. Руководство » XForms for HTML Authors содержит детальное описание создания XForms. Для того, чтобы очертить основную идею руководства, приведем несколько простых примеров.

Пример #1 Простая поисковая форма XForms

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
 <h:title>Поиск</h:title>
 <model>
  <submission action="http://example.com/search"
              method="post" id="s"/>
 </model>
</h:head>
<h:body>
 <h:p>
  <input ref="q"><label>Что искать?</label></input>
  <submit submission="s"><label>Найти</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 или парсером документа.

Если разметка вас не интересует, и вы хотите, чтобы передаваемые данные были помещены в стандартный массив $_POST, вы можете указать клиентскому браузеру на необходимость отправлять данные в формате application/x-www-form-urlencoded. Для этого установите атрибут method значением urlencoded-post.

Пример #2 Использование XForm совместно с массивом $_POST

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
 <h:title>Поиск</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>Что искать?</label></input>
  <submit submission="s"><label>Найти</label></submit>
 </h:p>
</h:body>
</h:html>

Замечание: В дополнение к вышесказанному следует заметить, что большое количество браузеров не поддерживают XForms. Если приведенные примеры потерпели неудачу, проверьте версию используемого вами браузера.


Загрузка файлов на сервер

Содержание

  • Загрузка файлов методом POST
  • Объяснение сообщений об ошибках
  • Наиболее распространенные ошибки
  • Загрузка нескольких файлов
  • Поддержка метода PUT
  • Смотрите также


Загрузка файлов методом POST

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

PHP способен получать загруженные файлы из любого браузера, совместимого со стандартом RFC-1867.

Замечание: Смежные замечания по конфигурации

Также ознакомьтесь с описанием директив file_uploads, upload_max_filesize, upload_tmp_dir, post_max_size и max_input_time конфигурационного файла php.ini

Также следует заметить, что PHP поддерживает загрузку файлов методом PUT, который используется в клиентах Netscape Composer и W3C Amaya. Для получения более детальной документации обратитесь к разделу поддержка метода PUT.

Пример #1 Форма для загрузки файлов

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

<!-- Тип кодирования данных, enctype, ДОЛЖЕН БЫТЬ указан ИМЕННО так -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
    <!-- Поле MAX_FILE_SIZE должно быть указано до поля загрузки файла -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- Название элемента input определяет имя в массиве $_FILES -->
    Отправить этот файл: <input name="userfile" type="file" />
    <input type="submit" value="Отправить файл" />
</form>

В приведенном выше примере __URL__ необходимо заменить ссылкой на PHP-скрипт.

Скрытое поле MAX_FILE_SIZE (значение необходимо указывать в байтах) должно предшествовать полю для выбора файла, и его значение является максимально допустимым размером принимаемого файла в PHP. Рекомендуется всегда использовать эту переменную, так как она предотвращает тревожное ожидание пользователей при передаче огромных файлов, только для того, чтобы узнать, что файл слишком большой и передача фактически не состоялась. Имейте в виду, что обойти это ограничение на стороне браузера достаточно просто, следовательно, вы не должны полагаться на то, что все файлы большего размера будут блокированы при помощи этой возможности. Это по большей части удобная возможность для пользователей клиентской части вашего приложения. Однако настройки PHP (на сервере) касательно максимального размера обойти невозможно.

Замечание:

Также следует убедиться, что форма загрузки имеет атрибут enctype="multipart/form-data", в противном случае загрузка файлов на сервер не произойдет.

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

$_FILES['userfile']['name']

Оригинальное имя файла на компьютере клиента.

$_FILES['userfile']['type']

Mime-тип файла, в случае, если браузер предоставил такую информацию. В качестве примера можно привести "image/gif". Этот mime-тип не проверяется на стороне PHP, так что не полагайтесь на его значение без проверки.

$_FILES['userfile']['size']

Размер в байтах принятого файла.

$_FILES['userfile']['tmp_name']

Временное имя, с которым принятый файл был сохранен на сервере.

$_FILES['userfile']['error']

Код ошибки, которая может возникнуть при загрузке файла.

По умолчанию принятые файлы сохраняются на сервере в стандартной временной папке до тех пор, пока не будет задана другая директория при помощи директивы upload_tmp_dir конфигурационного файла php.ini. Директорию сервера по умолчанию можно сменить, установив переменную TMPDIR для окружения, в котором выполняется PHP. Установка этой переменной при помощи функции putenv() внутри PHP-скрипта работать не будет. Эта переменная окружения также может использоваться для того, чтобы удостовериться, что другие операции также работают с принятыми файлами.

Пример #2 Проверка загружаемых на сервер файлов

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

<?php
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "Файл корректен и был успешно загружен.\n";
} else {
    echo "Возможная атака с помощью файловой загрузки!\n";
}

echo 'Некоторая отладочная информация:';
print_r($_FILES);

print "</pre>";

?>

PHP-скрипт, принимающий загруженный файл, должен реализовывать логику, необходимую для определения дальнейших действий над принятым файлом. Например, вы можете проверить переменную $_FILES['userfile']['size'], чтобы отсечь слишком большие или слишком маленькие файлы. Также вы можете использовать переменную $_FILES['userfile']['type'] для исключения файлов, которые не удовлетворяют критерию касательно типа файла, однако, принимайте во внимание, что это поле полностью контролируется клиентом, используйте его только в качестве первой из серии проверок. Также вы можете использовать $_FILES['userfile']['error'] и коды ошибок при реализации вашей логики. Независимо от того, какую модель поведения вы выбрали, вы должны удалить файл из временной папки или переместить его в другую директорию.

В случае, если при отправке формы файл выбран не был, PHP установит переменную $_FILES['userfile']['size'] значением 0, а переменную $_FILES['userfile']['tmp_name'] - none.

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

Пример #3 Загрузка массива файлов

PHP поддерживает возможность передачи массива из HTML в том числе и с файлами.

<form action="" method="post" enctype="multipart/form-data">
<p>Изображения:
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="submit" value="Отправить" />
</p>
</form>
<?php
foreach ($_FILES["pictures"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
        // basename() может спасти от атак на файловую систему;
        // может понадобиться дополнительная проверка/очистка имени файла
        $name = basename($_FILES["pictures"]["name"][$key]);
        move_uploaded_file($tmp_name, "data/$name");
    }
}
?>

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


Объяснение сообщений об ошибках

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; Файл не был загружен.

UPLOAD_ERR_NO_TMP_DIR

Значение: 6; Отсутствует временная папка. Добавлено в PHP 5.0.3.

UPLOAD_ERR_CANT_WRITE

Значение: 7; Не удалось записать файл на диск. Добавлено в PHP 5.1.0.

UPLOAD_ERR_EXTENSION

Значение: 8; PHP-расширение остановило загрузку файла. PHP не предоставляет способа определить, какое расширение остановило загрузку файла; в этом может помочь просмотр списка загруженных расширений с помощью phpinfo(). Добавлено в PHP 5.2.0.


Наиболее распространенные ошибки

Опция MAX_FILE_SIZE не должна позволять передачу файлов, размер которых превышает лимит, установленный конфигурационной директивой upload_max_filesize в php.ini. Ограничение по умолчанию составляет 2 мегабайта.

В случае, если установлены ограничения памяти, вам может понадобиться увеличить значение опции memory_limit. Убедитесь в том, что значение memory_limit достаточно велико.

В случае, если опция max_execution_time установлена слишком маленьким значением, необходимое время работы скрипта может превышать это значение. Убедитесь в том, что значение max_execution_time достаточно велико.

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

Внимание

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

Если директива post_max_size слишком мала, большие файлы не смогут быть загружены на сервер. Убедитесь, что значение директивы post_max_size достаточно велико.

Начиная с версии PHP 5.2.12, опция max_file_uploads контролирует максимальное количество загружаемых файлов в течение одного запроса. Если загружается большее количество файлов, чем указано в этом ограничении, то массив $_FILES прекратит дальнейшую обработку файлов по достижении этого ограничения. Например, если max_file_uploads установлено в 10, то $_FILES никогда не будет содержать больше 10 элементов.

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

Следует заметить, что CERN httpd может отсечь всё, что идет после первого пробела в получаемом от клиента заголовке content-type. Если у вас именно такой случай, CERN httpd не сможет корректно загрузить файлы.

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

Разработчики не должны использовать одинаковые имена для обычных полей ввода (тег input) и полей выбора файла в пределах одной и той же формы (например, используя имя для тега input наподобие foo[]).


Загрузка нескольких файлов

Загрузку нескольких файлов можно реализовать используя, например, различные значения name для тега input.

Также можно одновременно загружать несколько файлов и автоматически получить их в виде массива. Для реализации такой возможности используйте тот же синтаксис массива в HTML-форме, что и для множественных полей select и checkbox:

Пример #1 Загрузка нескольких файлов

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Файлы:<br />
  <input name="userfile[]" type="file" /><br />
  <input name="userfile[]" type="file" /><br />
  <input type="submit" value="Отправить" />
</form>

В случае, если такая форма была отправлена, массивы $_FILES['userfile'], $_FILES['userfile']['name'], и $_FILES['userfile']['size'] будут инициализированы. Если включена конфигурационная директива register_globals, также будут инициализированы сопутствующие глобальные переменные. Каждая из таких переменных будет представлять собой численно-индексированный массив соответствующих значений для отправленных файлов.

Например, предположим, что были загружены файлы /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] также будут инициализированы.

Внимание

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


Поддержка метода PUT

PHP поддерживает загрузку файлов методом HTTP PUT, который используется в некоторых клиентах для загрузки файлов на сервер. Запросы PUT намного проще, чем загрузка файла с использованием POST-запросами и выглядят примерно так:

PUT /path/filename.html HTTP/1.1

Такой вызов означает, что удаленный клиент хотел бы сохранить файл под именем /path/filename.html в дереве каталогов вашего веб-сервера. Очевидно, что возможность клиента автоматически перезаписывать файлы веб-сервера при помощи Apache или PHP не является хорошим решением. Поэтому для того, чтобы обрабатывать такие запросы, вам необходимо указать веб-серверу PHP-скрипт, которому вы доверяете их обработку. В веб-сервере Apache вы можете сделать это, используя директиву Script. Как правило, эта директива расположена внутри блока <Directory> или же внутри блока <VirtualHost>. Сама запись выглядит следующим образом:

Script PUT /put.php

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

Внутри вашего файла put.php вы можете поместить что-нибудь похожее на следующий пример. Он скопирует содержимое загруженного файла в файл myputfile.ext на сервер. Возможно, вам понадобится осуществить несколько проверок и/или аутентифицировать пользователя перед выполнением копирования этого файла.

Пример #1 Сохранение файлов, отправленных через HTTP PUT

<?php
/* PUT данные приходят в потоке ввода stdin */
$putdata = fopen("php://input", "r");

/* Открываем файл на запись */
$fp = fopen("myputfile.ext", "w");

/* Читаем 1 KB данных за один раз
   и пишем в файл */
while ($data = fread($putdata, 1024))
  fwrite($fp, $data);

/* Закрываем потоки */
fclose($fp);
fclose($putdata);
?>


  • « Поддержка метода PUT
  • Работа с удаленными файлами »
  • PHP Manual
  • Загрузка файлов на сервер
  • Смотрите также

Смотрите также

  • Безопасность файловой системы


Работа с удаленными файлами

В случае, если опция allow_url_fopen включена в конфигурационном файле php.ini, вы можете использовать URL-адреса HTTP и FTP в большинстве функций, принимающих в качестве параметра имя файла. Также вы можете использовать ссылки в операторах include, include_once, require и require_once (начиная с версии PHP 5.2.0 для корректной работы этих функций должна быть включена опция allow_url_include ). Дополнительную информацию о поддерживаемых в PHP протоколах вы можете найти в Поддерживаемые протоколы и обертки.

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

Пример #1 Получение заголовка удаленной страницы

<?php
$file = fopen ("http://www.example.com/", "r");
if (!$file) {
    echo "<p>Невозможно открыть удаленный файл.\n";
    exit;
}
while (!feof ($file)) {
    $line = fgets ($file, 1024);
    /* Сработает, только если заголовок и сопутствующие теги расположены в одной строке */
    if (preg_match ("@\<title\>(.*)\</title\>@i", $line, $out)) {
        $title = $out[1];
        break;
    }
}
fclose($file);
?>

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

Для того, чтобы авторизоваться под пользователем, отличным от 'anonymous', вам необходимо указать логин (и, возможно, пароль) в адресной строке, например так: 'ftp://user:password@ftp.example.com/path/to/file'. (Вы можете использовать этот же синтаксис для доступа к удаленным файлам по HTTP-протоколу, если необходима Basic-аутентификация.)

Пример #2 Сохранение данных на удаленном сервере

<?php
$file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!$file) {
    echo "<p>Невозможно перезаписать удаленный файл.\n";
    exit;
}
/* Запись данных. */
fwrite ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>

Замечание:

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


Работа с соединениями

Статус соединения сохраняется внутренними механизмами PHP. Ниже перечислены четыре возможные состояния:

  • 0 - NORMAL
  • 1 - ABORTED
  • 2 - TIMEOUT
  • 3 - ABORTED и TIMEOUT

Во время штатного выполнения PHP-скрипта установлен статус NORMAL. В случае, если удаленный клиент разорвал соединение, статус изменяется на ABORTED. Чаще всего отсоединение удаленного клиента происходит при нажатии кнопки "Stop" в браузере. В случае, если достигается установленный временной лимит (ознакомьтесь с функцией set_time_limit()), будет установлен статус TIMEOUT.

Вы можете решать, приводит ли отключение клиента к завершению вашего скрипта. Иногда бывает необходимо, чтобы скрипт выполнился до конца, даже если отсутствует удаленный браузер, которому адресован весь вывод. По умолчанию скрипт завершает свою работу при отключении клиента. Это поведение может быть изменено при помощи опции ignore_user_abort в конфигурационном файле php.ini. Такого же результата можно добиться, указав php_value ignore_user_abort в конфигурационном файле Apache httpd.conf или воспользовавшись функцией ignore_user_abort(). Если вы явно не указали на необходимость игнорировать разрыв соединения с клиентом, выполнение скрипта будет прервано. Исключением является тот случай, если используя register_shutdown_function(), вы указали специальную функцию, вызываемую при завершении скрипта. В таком случае после того, как пользователь нажал кнопку "Stop" в своем браузере, при первой же попытке что-либо вывести PHP обнаруживает, что соединение с клиентом было утеряно, и вызывает завершающую функцию. Эта функция также вызывается при нормальном завершении работы вашего скрипта, поэтому для того, чтобы выполнить некоторые специфические действия при отсоединении клиента, вам понадобится функция connection_aborted(), которая возвращает TRUE, если соединение было разорвано.

Выполнение вашего скрипта также может быть прервано встроенным таймером. Стандартное ограничение по времени составляет 30 секунд, изменить его можно при помощи директивы max_execution_time в конфигурационном файле php.ini. Такого же результата можно достичь, добавив php_value max_execution_time в конфигурационный файл Apache httpd.conf или воспользовавшись функцией set_time_limit(). При достижении скриптом временного лимита выполнение скрипта прерывается и вызывается завершающая функция, если она была указана. Уточнить причину завершения скрипта вы можете при помощи функции connection_status(), которая возвращает 2, если скрипт был прерван по достижению временного ограничения.

Единственное, что следует заметить - что оба статуса: ABORTED и TIMEOUT, - могут быть установлены одновременно. Это может произойти в том случае, если вы явно указали необходимость игнорировать отсоединение удаленного клиента. В таком случае после разрыва соединения, отметив этот факт, PHP продолжит выполнение скрипта, и при достижении временного лимита будет вызвана завершающая функция, если таковая была указана. В этой точке вы можете обнаружить, что connection_status() вернет значение 3.


Постоянные соединения с базами данных

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

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

Почему?

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

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

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

Третий способ - использовать PHP в качестве плагина в многопоточном веб-сервере. В настоящее время в PHP 4 реализована поддержка ISAPI, WSAPI, и NSAPI (для Windows-платформ), которые позволяют подключать PHP к таким многопоточным серверам, как Netscape FastTrack (iPlanet), Microsoft's Internet Information Server (IIS) и O'Reilly WebSite Pro. В этом случае поведение PHP полностью аналогично рассмотренной ранее модели с использованием нескольких процессов.

Если постоянные соединения не предоставляют никакой дополнительной функциональности, чем же они тогда так хороши?

Ответ содержится в повышении эффективности. Постоянные соединения полезны в том случае, если при открытии большого количества 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(), oci_pconnect(),
pfsockopen(), pg_pconnect() и
sybase_pconnect().


Безопасный режим

Содержание

  • Безопасность и безопасный режим
  • Ограниченные или недоступные в безопасном режиме функции

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

Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

История изменений режима safe mode
Версия | Описание
5.4.0 | Удален из PHP, генерирует фатальную ошибку E_CORE_ERROR при попытке включения.
5.3.0 | Помечен устаревшим, при включении генерируется ошибка уровня E_DEPRECATED.


Безопасность и безопасный режим

Конфигурационные опции, управляющие безопасным режимом и вопросами безопасности
Имя | По умолчанию | Место изменения | Список изменений
safe_mode | "0" | PHP_INI_SYSTEM | Удалена в PHP 5.4.0.
safe_mode_gid | "0" | PHP_INI_SYSTEM | Удалена в PHP 5.4.0.
safe_mode_include_dir | NULL | PHP_INI_SYSTEM | Удалена в PHP 5.4.0.
safe_mode_exec_dir | "" | PHP_INI_SYSTEM | Удалена в PHP 5.4.0.
safe_mode_allowed_env_vars | "PHP_" | PHP_INI_SYSTEM | Удалена в PHP 5.4.0.
safe_mode_protected_env_vars | "LD_LIBRARY_PATH" | PHP_INI_SYSTEM | Удалена в PHP 5.4.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

safe_mode boolean

Включает/отключает безопасный режим в PHP. Если PHP скомпилирован с опцией --enable-safe-mode, то по умолчанию принимает значение On (включено), иначе - Off (выключено).

Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

safe_mode_gid boolean

По умолчанию в безопасном режиме при открытии файла выполняется проверка значения UID. Для того, чтобы немного смягчить это условие и выполнять проверку GID, необходимо установить значение on для флага safe_mode_gid. Определяет, использовать ли проверку UID (FALSE) или GID (TRUE) проверку при обращении к файлу.

safe_mode_include_dir string

При подключении файлов, расположенных в указанной директории и всех ее подкаталогах, проверка на соответствие значений UID/GID не выполняется (в случае, если установленная директория не указана в include_path, необходимо указывать полный путь при включении).

Значением этой директивы может быть список каталогов, разделенных двоеточием (точкой с запятой на Windows-системах), что аналогично синтаксису include_path. Указанное значение в действительности является префиксом, а не названием директории. Это означает, что запись "safe_mode_include_dir = /dir/incl" позволяет подключать файлы, находящиеся в директориях "/dir/include" и "/dir/incls", в случае, если они существуют. Если вы хотите указать доступ к конкретной директории, используйте завершающий слеш, например: "safe_mode_include_dir = /dir/incl/" Если значение этой директивы пусто, то никакие файлы с отличающимися UID/GID не могут быть подключены.
safe_mode_exec_dir string

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

safe_mode_allowed_env_vars string

Возможность устанавливать переменные окружения - потенциальная брешь в безопасности. Значением этой директивы является список префиксов, разделенных двоеточиями. В безопасном режиме пользователь может модифицировать только те переменные окружения, имена которых начинаются с одного из указанных префиксов. По умолчанию, пользователю доступны переменные, которые начинаются с префикса PHP_ (например, PHP_FOO=BAR).

Замечание:

В случае, если этой директиве указать пустое значение, пользователь получит возможность модифицировать ЛЮБУЮ переменную окружения!

safe_mode_protected_env_vars string

Эта директива содержит список переменных окружения, разделенных двоеточием, значение которых пользователь не сможет изменить, используя функцию putenv(). Значения этих переменных остаются защищенными, даже если их модификация разрешена директивой safe_mode_allowed_env_vars.

Смотрите также: open_basedir, disable_functions, disable_classes, register_globals, display_errors и log_errors

В случае, если включена директива safe_mode, 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

Внимание

Разумеется, эти ограничения PHP не работают в запускаемых программах.


Ограниченные или недоступные в безопасном режиме функции

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

Функции, ограниченные в безопасном режиме
Функция | Ограничения
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 (владельца), как и выполняемый скрипт.
parse_ini_file() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
set_time_limit() | Не имеет никакого эффекта, если используется безопасный режим.
max_execution_time | Не имеет никакого эффекта, если используется безопасный режим.
mail() | В безопасном режиме пятый параметр недоступен.
session_start() | Владелец скрипта должен совпадать с владельцем каталога session.save_path, если используются хранилище по умолчанию files и session.save_handler.
Все функции работы с файлами и потоками. | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. (смотрите также php.ini опцию safe_mode_include_dir.


Использование PHP в командной строке

Содержание

  • Введение
  • Основные отличия от остальных реализаций SAPI
  • Опции
  • Использование
  • Потоки ввода/вывода
  • Интерактивная консоль
  • Встроенный веб-сервер
  • Опции конфигурации


Введение

Основная цель этого CLI SAPI - разработка консольных приложений на PHP. Имеется довольно много различий между CLI SAPI и другими видами SAPI, которые будут рассмотрены в этой главе. Стоит отметить, что CLI SAPI и CGI - различные SAPI-интерфейсы, хотя в их поведении много общего.

CLI SAPI включается по умолчанию с помощью опции --enable-cli , но может быть выключен опцией --disable-cli при запуске ./configure.

Имя, расположение и существование бинарных модулей CLI/CGI зависит от того, как именно установлен PHP в вашей системе. По умолчанию при выполнении make создается как CGI-, так и CLI-модуль, размещенные в директориях sapi/cgi/php-cgi и sapi/cli/php соответственно, внутри директории с исходниками PHP. Следует заметить, что оба файла имеют одинаковое название: php. Что произойдет при выполнении make install, зависит от того, какие опции вы указали на стадии конфигурирования. Если выбран модуль SAPI во время выполнения, например, apxs, или используется опция опция --disable-cgi , модуль CLI будет скопирован в {PREFIX}/bin/php при выполнении make install, в противном случае будет скопирован CGI-модуль. Например, если задана опция --with-apxs , то при выполнении make install CLI-версия будет скопирована в {PREFIX}/bin/php. Если вы хотите переопределить установку CGI-модуль, используйте make install-cli после выполнения make install. В качестве альтернативы вы могли бы указать опцию --disable-cgi в строке конфигурации.

Замечание:

Поскольку обе опции, --enable-cli и --enable-cgi , включены по умолчанию, просто налилчие --enable-cli в команде конфигурации необязательно означает, что CLI будет скопирован в {PREFIX}/bin/php при выполнении make install.

Начиная с PHP 5, бинарный файл CLI входит в дистрибутив для Windows в основной папке в качестве файлаphp.exe. CGI-версия находится в файле php-cgi.exe. Кроме того, в дистрибутив входит файл php-win.exe, если PHP был сконфигурирован с помощью --enable-cli-win32 . Он полностью эквивалентен CLI-версии, за исключением того, что абсолютно ничего не выводит, и, таким образом, не предоставляет консоль (окно терминала не появляется на экране).

Замечание: Какой из вариантов SAPI установлен?

Выполните из командной строки php -v для получения информации о том, является ли php CGI или CLI. Также вы можете использовать функцию php_sapi_name() или константу PHP_SAPI.

Замечание:

Соответствующую страницу руководства (man) Unix можно просмотреть с помощью команды man php в консоли.


Основные отличия от остальных реализаций SAPI

Основные отличия CLI SAPI от остальных реализаций SAPI:

  • В отличие от CGI SAPI, заголовки не пишутся в поток вывода.

    Несмотря на то, что в CGI SAPI есть способ подавления HTTP-заголовков, в CLI SAPI нет возможности их включить.

    CLI по умолчанию запускается в тихом режиме, тем не менее, ключи -q и --no-header сохранены для обратной совместимости, что позволяет использовать старые CGI-скрипты.

    Текущая директория не изменяется на рабочую директорию скрипта. (Ключи -C и --no-chdir сохранены для обратной совместимости)

    Сообщения об ошибках выдаются в текстовом режиме (без HTML-форматирования).

  • Некоторые настройки php.ini переопределяются CLI SAPI, поскольку они не имеют смысла при работе в командной строке:

    Переопределяемые директивы php.ini
    Директива | Значение по умолчанию в CLI SAPI | Комментарий
    html_errors | FALSE | По умолчанию FALSE, т.к. бывает достаточно сложно читать в консоли сообщения об ошибке, когда они наполнены бессмысленными HTML-тегами.
    implicit_flush | TRUE | Обычно в консоли желательно отображать вывод, например, из print, echo и других, сразу же минуя буфер. Тем не менее, по-прежнему можно использовать буферизацию вывода для отложенного вывода или манипуляций с ним.
    max_execution_time | 0 (без ограничений) | PHP, выполняемый в консоли, как правило, используется для более широкого диапазона задач, чем обычные веб-скрипты. И так как они могут выполняться очень долго, то максимальное время выполнения неограничено.
    register_argc_argv TRUE

    Установка этой опции в значение TRUE означает, что скрипты запускаемые через CLI SAPI всегда имеют доступ к argc (количество аргументов, переданных приложению) и argv (массив текущих аргументов).

    При использовании CLI SAPI переменные $argc и $argv автоматически заполняются соответствующими значениями. Эти значения можно также найти в массиве $_SERVER, например: $_SERVER['argv'].

    output_buffering FALSE

    Несмотря на то, что эта опция php.ini жестко установлена в FALSE, функции буферизации вывода все еще доступны.

    max_input_time FALSE

    PHP CLI не поддерживает GET, POST или загрузку файлов.

    Замечание:

    Эти директивы не могут быть инициализированы другими значениями из конфигурационного файла php.ini или любого другого (в случае, если он указан). Это ограничение связано с тем, что значения применяются после обработки конфигурационных файлов. Тем не менее, эти значения могут быть изменены во время работы скрипта (хотя это не имеет особого смысла для всех них, например register_argc_argv).

    Замечание:

    Рекомендуется установить опцию ignore_user_abort для скриптов, используемых из командной строки. За подробностями обращайтесь к функции ignore_user_abort().

  • Для облегчения работы в окружении оболочки было определено некоторое количество констант для потоков ввода/вывода.

  • CLI SAPI не изменяет текущую директорию на директорию исполняемого скрипта.

    Пример #1 Пример, демонстрирующий разницу с 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] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
   php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
   php [options] -- [args...]
   php [options] -a

  -a               Run interactively
  -c <path>|<file> Look for php.ini file in this directory
  -n               No php.ini file will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse and execute <file>.
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run PHP <code> without using script tags <?..?>
  -B <begin_code>  Run PHP <begin_code> before processing input lines
  -R <code>        Run PHP <code> for every input line
  -F <file>        Parse and execute <file> for every input line
  -E <end_code>    Run PHP <end_code> after processing all input lines
  -H               Hide any passed arguments from external tools.
  -S <addr>:<port> Run with built-in web server.
  -t <docroot>     Specify document root <docroot> for built-in web server.
  -s               Output HTML syntax highlighted source.
  -v               Version number
  -w               Output source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin

  --ini            Show configuration file names

  --rf <name>      Show information about function <name>.
  --rc <name>      Show information about class <name>.
  --re <name>      Show information about extension <name>.
  --rz <name>      Show information about Zend extension <name>.
  --ri <name>      Show configuration for extension <name>.

Опции, доступные из командной строки
Опция | Полное название | Описание
-a --interactive

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

-b --bindpath

Путь связывания библиотек (Bind Path) для внешнего режима FASTCGI Server (только для CGI).

-C --no-chdir

Не менять текущую директорию на директорию скрипта (только для CGI).

-q --no-header

Тихий режим. Подавляет вывод заголовков HTTP (только для CGI).

-T --timing

Измерить время выполнения скрипта, повторенного count раз (только для CGI).

-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

Если эта опция не указана, поиск php.ini будет осуществлен в местах по умолчанию.

-n --no-php-ini

Полностью игнорировать php.ini.

-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"

-e --profile-info

Включить режим расширенной информации, используемый отладчиком/профайлером.

-f --file

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

Замечание:

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

-h и -? | --help и --usage | Выводит список опций командной строки с однострочным описанием того, что они делают.
-i | --info | Вызывает phpinfo() и выводить ее результат. В случае, если PHP работает некорректно, рекомендуется выполнить php -i и посмотреть, выводятся ли сообщения об ошибках до или вместо информационных таблиц. Учитывайте, что в случае использования CGI-модуля весь вывод будет в формате HTML и, как следствие, очень большим.
-l --syntax-check

Предоставляет удобный способ для проверки заданного PHP-кода на наличие синтаксических ошибок. В случае успешной проверки будет напечатана следующая фраза: "No syntax errors detected in <filename>", а код возврата будет равен 0. При неудачной проверке будет выведено "Errors parsing <filename>" вместе с внутренними сообщениями парсера, а код возврата будет равен -1.

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

Замечание:

Эта опция не работает с опцией -r .

-m --modules

Пример #1 Вывод встроенных (и загруженных) модулей PHP и Zend

$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

-r --run

Позволяет выполнять PHP-код, указанный непосредственно в командной строке. Открывающие и закрывающие PHP-теги (<?php и ?>) не нужны и будут приводит к синтаксической ошибке, если они присутствуют.

Замечание:

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

Пример #2 Ошибка синтаксиса при использовании двойных кавычек

$ php -r "$foo = get_defined_constants();"
PHP Parse error:  syntax error, unexpected '=' in Command line code on line 1

Parse error: syntax error, unexpected '=' in Command line code on line 1

Проблема здесь заключается в том, что sh/bash выполняет автоматическую подстановку переменных в случае, если используются двойные кавычки ("). Поскольку переменная $foo вряд ли определена, она заменяется пустой строкой, что приводит к тому, что передаваемый PHP-код для выполнения выглядит следующим образом:

$ php -r " = get_defined_constants();"

Правильным решением в данном случае будет использование одинарных кавычек ', поскольку автоматическая подстановка переменных, заключенных в одинарные кавычки, в sh/bash не происходит.

Пример #3 Использование одинарных кавычек для предотвращения подстановки переменных в консоли

$ 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, могут возникнуть другие проблемы. В таком случае необходимо создать отчет о возникшей ошибке на сайте » https://bugs.php.net/. Можно столкнуться с проблемами при попытке получить доступ к переменным оболочки или при работе с экранирующими обратными слешами. Теперь вы предупреждены!

Замечание:

Ключ -r доступен в CLI SAPI, но недоступен в CGI SAPI.

Замечание:

Эта опция предназначена только для самого простого кода. Поэтому некоторые конфигурационные директивы (например, auto_prepend_file и auto_append_file) в этом режиме будут проигнорированы.

-B --process-begin

Выполняемый код PHP перед обработкой потока ввода (stdin). Добавлена в PHP 5.

-R --process-code

PHP-код, выполняемый для каждой строки ввода. Добавлена в PHP 5.

В этом режиме есть две специальные переменные: $argn и $argi. $argn содержит строку, которую PHP обрабатывает в данный момент, а $argi содержит номер этой строки.

-F --process-file

PHP-файл, выполняемый для каждой строки ввода. Добавлена в PHP 5.

-E --process-end

PHP-код, выполняемый после обработки ввода. Добавлена в PHP 5.

Пример #4 Использование опций -B , -R и -E для подсчета количества строк в проекте.

$ find my_proj | php -B '$l=0;' -R '$l += count(@file($argn));' -E 'echo "Всего строк: $l\n";'
Всего строк: 37328

-S --server

Запускает встроенный веб-сервер. Доступна с PHP 5.4.0.

-t | --docroot | Указывает корень документа для встроенного веб-сервера. Доступна с PHP 5.4.0.
-s --syntax-highlight и --syntax-highlighting

Показать исходный код с подсветкой синтаксиса.

Эта опция использует внутренний механизм для разбора файла и записи в стандартный поток вывода подсвеченной версии этого файла. Учтите, что все что она делает, это генерирует блок <code> [...] </code> HTML-тегов, без HTML-заголовков.

Замечание:

Эта опция несовместима с опцией -r .

-v --version

Пример #5 Использование -v для получения типа SAPI и версии PHP и Zend

$ php -v
PHP 5.3.1 (cli) (built: Dec 11 2009 19:55:07)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies

-w --strip

Показать исходный код без комментариев и пробелов.

Замечание:

Эта опция несовместима с опцией -r .

-z --zend-extension

Загружает расширение Zend. Если передано только имя файла, PHP попытается загрузить это расширение из пути библиотек по умолчанию (обычно указывается в /etc/ld.so.conf в системах Linux). Передача файла с абсолютным путем не будет использовать системный путь поиска библиотеки. Относительное имя файла, содержащее директорию, укажет PHP подгрузить расширение относительно текущей директории.

--ini

Показывает имена конфигурационных файлов и отсканированные директории. Доступна с PHP 5.2.3.

Пример #6 Пример --ini

$ php --ini
Configuration File (php.ini) Path: /usr/dev/php/5.2/lib
Loaded Configuration File:         /usr/dev/php/5.2/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
--rf --rfunction

Показывает информацию об указанной функции или методе класса (например, количество и названия параметров). Доступна с PHP 5.1.2.

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

Пример #7 Базовое использование --rf

$ php --rf var_dump
Function [ <internal> public function var_dump ] {

  - Parameters [2] {
    Parameter #0 [ <required> $var ]
    Parameter #1 [ <optional> $... ]
  }
}
--rc --rclass

Показывает информацию об указанном классе (список констант, свойств и методов). Доступна с PHP 5.1.2.

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

Пример #8 Пример --rc

$ php --rc Directory
Class [ <internal:standard> class Directory ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [3] {
    Method [ <internal> public method close ] {
    }

    Method [ <internal> public method rewind ] {
    }

    Method [ <internal> public method read ] {
    }
  }
}
--re --rextension

Показывает информацию об указанном расширении (список опций php.ini, определенных функций, констант и классов). Доступна с PHP 5.1.2.

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

Пример #9 Пример --re

$ php --re json
Extension [ <persistent> extension #19 json version 1.2.1 ] {

  - Functions {
    Function [ <internal> function json_encode ] {
    }
    Function [ <internal> function json_decode ] {
    }
  }
}
--rz --rzendextension

Показывает информацию о конфигурации указанного Zend-расширения (та же информация, которая возвращается phpinfo()). Доступна с PHP 5.4.0.

--ri --rextinfo

Показывает информацию о конфигурации указанного расширения (та же информация, которая возвращается phpinfo()). Доступна с PHP 5.2.2. Конфигурацию ядра можно узнать, указав в качестве имени расширения значение "main".

Пример #10 Пример --ri

$ php --ri date

date

date/time support => enabled
"Olson" Timezone Database Version => 2009.20
Timezone Database => internal
Default timezone => Europe/Oslo

Directive => Local Value => Master Value
date.timezone => Europe/Oslo => Europe/Oslo
date.default_latitude => 59.930972 => 59.930972
date.default_longitude => 10.776699 => 10.776699
date.sunset_zenith => 90.583333 => 90.583333
date.sunrise_zenith => 90.583333 => 90.583333

Замечание:

Опции -rBRFEH, --ini и --r[fcezi] доступны только в CLI.


Выполнение PHP-файлов

В CLI SAPI есть три различных способа запуска PHP-кода:

  1. Указание конкретного файла для запуска.

    $ php my_script.php

$ php -f my_script.php

    Оба способа (с указанием опции -f или без) запустят файл my_script.php. Нет ограничений, какой файл запускать; в частности, файлы не обязаны иметь расширение .php.

    Замечание:

    Если необходимо передать аргументы в скрипт, то при использовании опции -f первым аргументом должен быть -- .

  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-скрипт также может получать аргументы. PHP не ограничивает количество аргументов, передаваемых в скрипт (оболочка консоли устанавливает некоторый порог количества символов, которые могут быть переданы; обычно этого лимита хватает). Переданные аргументы доступны в глобальном массиве $argv. Первый индекс (ноль) всегда содержит имя вызываемого скрипта из командной строки. Учтите, что если код вызывается на лету из командной строки с помощью опции -r , значением $argv[0] будет просто дефис (-). То же самое верно и для кода, переданного через конвейер из STDIN.

Вторая зарегистрированная глобальная переменная - это $argc, содержащая количество элементов в массиве $argv (а не количество аргументов, переданных скрипту).

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

# Эта команда не запустит данный код, но покажет информацию об использовании PHP
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f] <file> [args...]
[...]

# Эта команда передаст аргумент '-h' в скрипт, предотвратив показ справки PHP
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}

Однако, в Unix-системах есть еще один способ использования PHP для консольных скриптов. Можно написать скрипт, первая строка которого будет начинаться с #!/usr/bin/php (или же другой корректный путь к бинарному файлу PHP CLI). После этой строки можно поместить обычный PHP-код, заключенный в открывающие и закрывающие теги PHP. Как только будут установлены корректные атрибуты запуска на файл (например, chmod +x test), скрипт может быть запущен как обычный консольный или perl-скрипт:

Пример #1 Запуск PHP-скрипта как консольного

#!/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-файл может использоваться для запуска PHP-скриптов независимо от веб-сервера. В случае работы в Unix-подобной системе, необходимо добавить в первую строку файла #! (называемый также "shebang") чтобы указать, какая из программ должна запускать скрипт. На Windows-платформах можно назначить обработчик php.exe для файлов с расширениями .php или создать пакетный (.bat) файл для запуска скриптов посредством PHP. Строка, добавляемая в начале скрипта для Unix-систем, не влияет на их работу в ОС Windows, таким образом можно создавать кроссплатформенные скрипты. Ниже приведен простой пример скрипта, выполняемого из командной строки:

Пример #2 Скрипт, предназначенный для запуска из командной строки (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];
}
?>

В приведенном выше скрипте в первой строке содержится shebang, указывающий что этот файл должен запускаться PHP. Работа ведется с CLI-версией, поэтому не будет выведено ни одного HTTP-заголовка.

Скрипт сначала проверяет наличие обязательного одного аргумента (в дополнение к имени скрипта, который также подсчитывается). Если их нет, или если переданный аргумент был --help , -help , -h или -? , выводится справочное сообщение с использованием $argv[0], которое содержит имя выполняемого скрипта. В противном случае просто выводится полученный аргумент.

Для запуска приведенного примера в Unix-системе, нужно сделать его исполняемым и просто выполнить в консоли script.php echothis или script.php -h. В Windows-системе можно создать пакетный файл:

Пример #3 Пакетный файл для запуска PHP-скрипта из командной строки (script.bat)

@echo OFF
"C:\php\php.exe" script.php %*

Предполагая, что вышеприведенный скрипт называется script.php, а полный путь к CLI php.exe находится в C:\php\php.exe, этот пакетный файл запустит его с переданными параметрами: script.bat echothis или script.bat -h.

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

В Windows запуск PHP можно настроить без необходимости указывать C:\php\php.exe или расширение .php. Подробнее эта тема описана в разделе Запуск PHP из командной строки в Microsoft Windows.


Потоки ввода/вывода

Модуль CLI SAPI определяет несколько констант для потоков ввода/вывода, чтобы упростить работу с командной строкой.

Константы, специфичные для модуля 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 автоматически при окончании вашего скрипта.

Замечание:

Эти константы недоступны, если считывается PHP-скрипт из stdin.


Интерактивная консоль

Начиная с PHP 5.1.0, модуль CLI SAPI предоставляет интерактивную консоль, используя опцию -a , если PHP был скомпилирован с опцией --with-readline . Начиная с PHP PHP 7.1.0, интерактивная консоль также доступна на Windows, если расширение readline включено.

Используя интерактивную консоль, можно ввести и выполнить непосредственно PHP-код.

Пример #1 Запуск кода в интерактивной консоли

$ php -a
Interactive shell

php > echo 5+8;
13
php > function addTwo($n)
php > {
php { return $n + 2;
php { }
php > var_dump(addtwo(2));
int(4)
php >

Интерактивная консоль также автодополняет (с помощью клавиши Tab) имена функций, констант, классов, переменных, вызовы статических методов и константы классов.

Пример #2 Автодополнение по Tab

Двойное нажатие клавиши Tab при наличии нескольких вариантов дополнения покажет список этих вариантов:

php > strp[TAB][TAB]
strpbrk   strpos    strptime
php > strp

Когда есть только одно дополнение, одиночное нажатие Tab дополнит оставшийся текст на той же самой строке:

php > strpt[TAB]ime(

Дополнение также работает для имен, которые были объявлены в течение данной интерактивной сессии:

php > $fooThisIsAReallyLongVariableName = 42;
php > $foo[TAB]ThisIsAReallyLongVariableName

Интерактивная консоль хранит историю команд, для доступа к которой можно использовать стрелки вверх и вниз. История хранится в файле ~/.php_history.

Начиная с PHP 5.4.0, модуль CLI SAPI предоставляет две новые настройки в php.ini: cli.pager и cli.prompt. Настройка cli.pager позволяет использовать внешнюю программу (такую как less) для постраничного просмотра данных вместо их прямого вывода на экран. Настройка cli.prompt позволяет задавать приглашение php > на ввод команды.

С PHP 5.4.0 также можно устанавливать настройки php.ini в интерактивной консоли, используя специальное сокращение.

Пример #3 Установка настройки php.ini в интерактивной консоли

Настройка cli.prompt:

php > #cli.prompt=hello world :>
hello world :>

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

php > #cli.prompt=`echo date('H:i:s');` php >
15:49:35 php > echo 'hi';
hi
15:49:43 php > sleep(2);
15:49:45 php >

Установка less для постраничного вывода данных:

php > #cli.pager=less
php > phpinfo();
(output displayed in less)
php >

Настройка cli.prompt поддерживает несколько управляющих последовательностей:

Управляющие последовательности cli.prompt
Управляющая последовательность | Описание
\e | Используется для добавления цветов в приглашение на ввод команды. Пример: \e[032m\v \e[031m\b \e[34m\> \e[0m
\v | Версия PHP.
\b | Отображает в какой части PHP мы находимся. Для примера /* показывает, что мы находимся в многострочном комментарии. Внешняя область видимости обозначается как php.
\> | Указывает символ приглашения. По умолчанию это символ >, но можно изменить, когда оболочка находится внутри незакрытыго блока или строки. Возможные символы: ' " { ( >

Замечание:

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

Замечание:

Автозагрузка недоступна при использовании интерактивного режима PHP CLI.


Встроенный веб-сервер

Внимание

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

Начиная с PHP 5.4.0, модуль CLI SAPI содержит встроенный веб-сервер.

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

URI запросы обслуживаются из текущей директории, в которой был запущен PHP, если не используется опция -t для явного указания корневого документа. Если URI запроса не указывает на определенный файл, то будет возвращен index.php или index.html в указанной директории. Если ни один из файлов не существует, то поиск этих файлов будет продолжен в родительской директории и так далее до тех пор, пока они не будут найдены или был достигнут корень документа. Если найден index.php или index.html, он возвращается, а в $_SERVER['PATH_INFO'] будет находится последняя часть URL. В противном случае возвращается 404 код ответа.

Если PHP-файл указывается в командной строке, когда запускается веб-сервер, то он рассматривается как скрипт "маршрутизации" (router). Скрипт выполняется в самом начале каждого HTTP-запроса. Если этот скрипт возвращает FALSE, то запрашиваемый ресурс возвращается как есть. В противном случае браузеру будет возвращен вывод этого скрипта.

Стандартные MIME-типы возвращаются для файлов со следующими расширениями: .3gp, .apk, .avi, .bmp, .css, .csv, .doc, .docx, .flac, .gif, .gz, .gzip, .htm, .html, .ics, .jpe, .jpeg, .jpg, .js, .kml, .kmz, .m4a, .mov, .mp3, .mp4, .mpeg, .mpg, .odp, .ods, .odt, .oga, .ogg, .ogv, .pdf, .pdf, .png, .pps, .pptx, .qt, .svg, .swf, .tar, .text, .tif, .txt, .wav, .webm, .wmv, .xls, .xlsx, .xml, .xsl, .xsd и .zip.

История правок: Поддерживаемые MIME-типы (расширения файлов)
Версия | Описание
5.5.12 | .xml, .xsl, и .xsd
5.5.7 | .3gp, .apk, .avi, .bmp, .csv, .doc, .docx, .flac, .gz, .gzip, .ics, .kml, .kmz, .m4a, .mp3, .mp4, .mpg, .mpeg, .mov, .odp, .ods, .odt, .oga, .pdf, .pptx, .pps, .qt, .swf, .tar, .text, .tif, .wav, .wmv, .xls, .xlsx и .zip
5.5.5 | .pdf
5.4.11 | .ogg, .ogv, и .webm
5.4.4 | .htm и .svg

Пример #1 Запуск веб-сервера

$ cd ~/public_html
$ php -S localhost:8000

В консоли выведется:

PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit

После URI-запросов http://localhost:8000/ и http://localhost:8000/myscript.html в консоли выведется примерно следующее:

PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit.
[Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Request read
[Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read
[Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Request read
[Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscript.html - Request read
[Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Request read

Пример #2 Запуск с указанием корневой директории

$ cd ~/public_html
$ php -S localhost:8000 -t foo/

В консоли выведется:

PHP 5.4.0 Development Server started at Thu Jul 21 10:50:26 2011
Listening on localhost:8000
Document root is /home/me/public_html/foo
Press Ctrl-C to quit

Пример #3 Использование скрипта маршрутизации

В этом примере, запросы изображений будут отображать их, но запросы HTML-файлов будут возвращать "Добро пожаловать в PHP".

<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
    return false;    // сервер возвращает файлы напрямую.
} else {
    echo "<p>Добро пожаловать в PHP</p>";
}
?>
$ php -S localhost:8000 router.php

Пример #4 Проверка использования веб-сервера CLI

Для совместного использования скрипта маршрутизации при разработке с веб-сервером CLI и в дальнейшем с рабочим (production) веб-сервером:

<?php
// router.php
if (php_sapi_name() == 'cli-server') {
    /* Маршрутизация с заданными правилами и возврат false */
}
/* продолжение с обычными операциями index.php */
?>
$ php -S localhost:8000 router.php

Пример #5 Поддержка неподдерживаемых типов файлов

Если вам нужно обслуживать статические ресурсы с MIME-типами, неподдерживаемыми веб-сервером CLI, используйте это:

<?php
// router.php
$path = pathinfo($_SERVER["SCRIPT_FILENAME"]);
if ($path["extension"] == "el") {
    header("Content-Type: text/x-script.elisp");
    readfile($_SERVER["SCRIPT_FILENAME"]);
}
else {
    return FALSE;
}
?>
$ php -S localhost:8000 router.php

Пример #6 Доступ к веб-серверу CLI с удаленных машин

Вы можете сделать веб-сервер доступным на 8000 порту для всех сетевых интерфейсов:

$ php -S 0.0.0.0:8000


Опции конфигурации

Опции конфигурации CLI SAPI
Имя | По умолчанию | Место изменения | Список изменений
cli_server.color | "0" | PHP_INI_ALL | Доступно с PHP 5.4.0.

Краткое разъяснение конфигурационных директив.

cli_server.color boolean

Включает поддержку цветовых кодов ANSI в выводе терминала встроенного веб-сервера.


Сборка мусора

Содержание

  • Основы подсчета ссылок
  • Сбор циклических ссылок
  • Вопросы производительности

В этом разделе описываются достоинства нового механизма сборки мусора (также называемого Garbage Collection или GC), являющегося частью PHP 5.3.


Основы подсчета ссылок

Переменная PHP хранится в контейнере, называемом "zval". Контейнер zval, помимо типа и значения переменной, также содержит два дополнительных элемента. Первый называется "is_ref" и представляет булево значение, указывающее, является переменная частью "набора ссылок" или нет. Благодаря этому элементу PHP знает как отличать обычные переменные от ссылок. Так как PHP содержит пользовательские ссылки, которые можно создать оператором &, контейнер zval также содержит внутренний механизм подсчета ссылок для оптимизации использования памяти. Эта вторая часть дополнительной информации, называемая "refcount" (счетчик ссылок), содержит количество имен переменных (также называемых символами), которые указывают на данный контейнер zval. Все имена переменных хранятся в таблице имен, отдельной для каждой области видимости переменных. Такая область видимости существует для главного скрипта, а также для каждой функции и метода.

Контейнер zval создается при создании новой переменной, которой присваивается константа, например:

Пример #1 Создание нового контейнера zval

<?php
$a = "new string";
?>

В данном примере создается новый символ a в текущей области видимости и новый контейнер переменной с типом string и значением new string. Бит "is_ref" по умолчанию задается равным FALSE, т.к. не создано ни одной пользовательской ссылки. Значение же "refcount" задается равным 1, т.к. только одно имя переменной указывает на данный контейнер. Отметим, что если "refcount" равен 1, то "is_ref" будет всегда равен FALSE. Если у вас установлен » Xdebug, то вы можете вывести эту информацию, вызвав функцию xdebug_debug_zval().

Пример #2 Вывод информации о zval

<?php
$a = "new string";
xdebug_debug_zval('a');
?>

Результат выполнения данного примера:

a: (refcount=1, is_ref=0)='new string'

Присвоение этой переменной другой увеличивает счетчик ссылок.

Пример #3 Увеличение счетчика ссылок zval

<?php
$a = "new string";
$b = $a;
xdebug_debug_zval( 'a' );
?>

Результат выполнения данного примера:

a: (refcount=2, is_ref=0)='new string'

Счетчик ссылок здесь равен 2, т.к. a и b ссылаются на один и тот же контейнер переменной. PHP достаточно умен, чтобы не копировать контейнер, пока в этом нет необходимости. Как только "refcount" станет равным нулю, контейнер уничтожается. "refcount" уменьшается на единицу при уходе переменной из области видимости (например, в конце функции) или при удалении этой переменной (например при вызове unset()).

Пример #4 Уменьшение счетчика ссылок zval

<?php
$a = "new string";
$c = $b = $a;
xdebug_debug_zval( 'a' );
$b = 42;
xdebug_debug_zval( 'a' );
unset( $c );
xdebug_debug_zval( 'a' );
?>

Результат выполнения данного примера:

a: (refcount=3, is_ref=0)='new string'
a: (refcount=2, is_ref=0)='new string'
a: (refcount=1, is_ref=0)='new string'

Если мы сейчас вызовем unset($a);, то контейнер, включая тип и значение, будет удален из памяти.

Составные типы данных

Все несколько усложняется с составными типами данных, такими как массивы (array) и объекты (object). В отличие от скалярных (scalar) значений, массивы и объекты хранят свои свойства в собственных таблицах имен. Это значит, что следующий пример создаст сразу три zval контейнера:

Пример #5 Создание array zval

<?php
$a = array( 'meaning' => 'life', 'number' => 42 );
xdebug_debug_zval( 'a' );
?>

Результатом выполнения данного примера будет что-то подобное:

a: (refcount=1, is_ref=0)=array (
   'meaning' => (refcount=1, is_ref=0)='life',
   'number' => (refcount=1, is_ref=0)=42
)

Графически:

Контейнеры для простого массива

Результат - три контейнера: a, meaning и number. Похожие правила применяются и для увеличения и уменьшения "refcounts". Ниже мы добавляем еще один элемент массива и устанавливаем ему значение уже существующего элемента:

Пример #6 Добавление уже существующего элемента в массив

<?php
$a = array( 'meaning' => 'life', 'number' => 42 );
$a['life'] = $a['meaning'];
xdebug_debug_zval( 'a' );
?>

Результатом выполнения данного примера будет что-то подобное:

a: (refcount=1, is_ref=0)=array (
   'meaning' => (refcount=2, is_ref=0)='life',
   'number' => (refcount=1, is_ref=0)=42,
   'life' => (refcount=2, is_ref=0)='life'
)

Графически:

Контейнеры для простого массива со ссылками

Вышеприведенный вывод Xdebug показывает, что и старый и новый элементы массива сейчас указывают на контейнер, чей "refcount" равен 2. Хотя показано два контейнера со значением 'life', на самом деле это один контейнер. Функция xdebug_debug_zval() не выводит информации об этом, но вы можете проверить это также отобразив указатели памяти.

Удаление элемента из массива происходит точно так же, как и удаление имени переменной из области видимости: уменьшается "refcount" контейнера, на который ссылается элемент массива. Опять же, при достижении "refcount" нуля, контейнер удаляется из памяти. Пример:

Пример #7 Удаление элемента из массива

<?php
$a = array( 'meaning' => 'life', 'number' => 42 );
$a['life'] = $a['meaning'];
unset( $a['meaning'], $a['number'] );
xdebug_debug_zval( 'a' );
?>

Результатом выполнения данного примера будет что-то подобное:

a: (refcount=1, is_ref=0)=array (
   'life' => (refcount=1, is_ref=0)='life'
)

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

Пример #8 Добавление массива новым элементом в самого себя

<?php
$a = array( 'one' );
$a[] =& $a;
xdebug_debug_zval( 'a' );
?>

Результатом выполнения данного примера будет что-то подобное:

a: (refcount=2, is_ref=1)=array (
   0 => (refcount=1, is_ref=0)='one',
   1 => (refcount=2, is_ref=1)=...
)

Графически:

Контейнеры массива с циклическими ссылками

Можно увидеть, что переменная с массивом (a), так же как и второй элемент (1) сейчас указывают на контейнер с "refcount" равным 2. Символы "..." в выводе означают рекурсию и, в нашем случае, указывают на оригинальный массив.

Как и ранее, удаление переменной уменьшает счетчик ссылок контейнера на единицу. Если мы применим unset к переменной $a после вышеприведенного примера, то счетчик ссылок контейнера, на который указывают $a и элемент "1", изменится с "2" на "1":

Пример #9 Удаление $a

(refcount=1, is_ref=1)=array (
   0 => (refcount=1, is_ref=0)='one',
   1 => (refcount=1, is_ref=1)=...
)

Графически:

Контейнеры после удаления массива с циклическими ссылками, демонстрирующие утечку памяти

Суть проблемы

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

Эта не проблема, если такое случается раз или два, но если существуют тысячи или даже миллионы таких утечек памяти, то они уже становятся проблемой. Особенно в долгоработающих скриптах, таких как демоны, где запрос не заканчивается никогда, или в больших наборах модульных тестов. Последний случай вызвал проблемы при запуске модульных тестов для компонента Template из библиотеки ez Components. В некоторых случаях может потребоваться свыше 2 Гб памяти, которая не всегда есть на тестовом сервере.


Сбор циклических ссылок

Обычно механизмы подсчета ссылок в памяти, например, используемый в PHP ранее, не решают проблему утечки памяти из-за циклических ссылок. Начиная с версии 5.3.0, в PHP реализован синхронный механизм из исследования "» Concurrent Cycle Collection in Reference Counted Systems", в котором рассматривается этот вопрос.

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

Алгоритм сборки мусора

Для избежания постоянной проверки на мусор с циклическими ссылками при каждом уменьшении счетчика ссылок, алгоритм добавляет все возможные корни (zval контейнеры) в "корневой буфер" (помечая их как "фиолетовые"). Это также гарантирует попадание любого корня в буфер только один раз. Механизм сборки мусора стартует только тогда, когда наполняется буфер (см. шаг A на рисунке выше).

На шаге B алгоритм производит поиск в глубину по всем возможным корням для однократного уменьшения счетчика ссылок на единицу у всех контейнеров (помечая их как "серые"). На шаге C алгоритм снова производит поиск в глубину для проверки счетчиков ссылок. Если он находит счетчик с нулевым значением, то контейнер помечается как "белый" (на рисунке отображено синим). Если же счетчик больше нуля, то происходит поиск в глубину от этого контейнера с обратным увеличением счетчиков на единицу и повторной пометкой как "черный" на их контейнерах. На последнем шаге D алгоритм проходит по корневому буферу и удаляет из него корни контейнеров, заодно проверяя какие контейнеры помечены как "белые". Эти контейнеры будут освобождены из памяти.

Теперь, когда вы имеете представление о работе алгоритма, рассмотрим его интеграцию в PHP. По умолчанию сборщик мусора всегда включен. Для изменения этой опции используется параметр zend.enable_gc в php.ini.

Если сборщик мусора включен, алгоритм поиска циклических ссылок выполняется каждый раз, когда корневой буфер наполняется 10,000 корнями (вы можете поменять это значение, изменив константу GC_ROOT_BUFFER_MAX_ENTRIES в файле Zend/zend_gc.c в исходном коде PHP и пересобрав PHP). Если сборщик мусора выключен, алгоритм никогда не будет запущен. Тем не менее, буфер всегда заполняется корнями.

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

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

Помимо изменения параметра zend.enable_gc, механизм сборки мусора также можно запустить и остановить вызвав функции gc_enable() и gc_disable() соответственно. Вызов этих функций имеет тот же эффект, что и включение/выключение механизма с помощью настроек конфигурации. Кроме того, можно запустить сборку мусора, даже если корневой буфер еще не заполнен. Для этого вы можете вызвать функцию gc_collect_cycles(), которая также возвращает количество циклических ссылок собранных алгоритмом.

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


Вопросы производительности

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

Есть две основные области влияющие на производительность: уменьшение размера используемой памяти и замедление работы при сборке мусора. Рассмотрим их.

Уменьшение размера используемой памяти

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

Пример #1 Пример использования памяти

<?php
class Foo
{
    public $var = '3.14159265359';
}

$baseMemory = memory_get_usage();

for ( $i = 0; $i <= 100000; $i++ )
{
    $a = new Foo;
    $a->self = $a;
    if ( $i % 500 === 0 )
    {
        echo sprintf( '%8d: ', $i ), memory_get_usage() - $baseMemory, "\n";
    }
}
?>
Сравнение использования памяти в PHP 5.2 и PHP 5.3

В этом очень академическом примере мы создаем объект, свойство a которого задается ссылкой на сам объект. Когда в скрипте в следующей итерации цикла переопределяется переменная $a, то происходит типичная утечка памяти. В данном случае пропадают два контейнера zval (контейнер объекта и контейнер свойства объекта), но определяется только один корень - удаленная переменная. Как только пройдут 10 000 итераций (максимально в корневом буфере будет 10 000 корней), то запустится механизм сборки мусора и память, занимаемая этими корнями, будет освобождена. Этот процесс хорошо виден на графике использования памяти для PHP 5.3: после каждых 10 000 итераций график проседает. Сам по себе механизм в данном примере совершает не так много работы, потому что структура утечек слишком проста. Из графика видно, что максимальное использование памяти в PHP 5.3 составило около 9 Мб, тогда как в PHP 5.2 оно продолжает возрастать.

Замедление работы

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

Пример #2 Влияние на производительность

<?php
class Foo
{
    public $var = '3.1415962654';
}

for ( $i = 0; $i <= 1000000; $i++ )
{
    $a = new Foo;
    $a->self = $a;
}

echo memory_get_peak_usage(), "\n";
?>

Мы запустим скрипт два раза: с включенной опцией zend.enable_gc и без нее.

Пример #3 Запуск скрипта

time php -dzend.enable_gc=0 -dmemory_limit=-1 -n example2.php
# и
time php -dzend.enable_gc=1 -dmemory_limit=-1 -n example2.php

На тестовой машине первая команда примерно выполняется 10.7 секунд, а вторая примерно 11.4 секунды. Это примерно на 7% медленнее. Однако, максимальное использование памяти скриптом уменьшилось на 98% с 931 Мб до 10 Мб. Этот тест не очень научный, но он действительно демонстрирует преимущество по использованию памяти, обеспечиваемое сборщиком мусора. Также хорошо то, что замедление для этого скрипта всегда примерно 7%, тогда как экономия памяти увеличивается все больше и больше при нахождении нового мусора.

Внутренняя статистика сборщика мусора

Можно получить немного больше информации о том, как механизм сборки мусора выполняется в PHP. Но для этого вам необходимо пересобрать PHP для включения теста производительности и кода для дополнительного сбора данных. Необходимо установить переменную окружения CFLAGS в значение -DGC_BENCH=1 до выполнения команды ./configure с вашими параметрами. Следующие команды должны сработать:

Пример #4 Сборка PHP для включения теста производительности GC

export CFLAGS=-DGC_BENCH=1
./config.nice
make clean
make

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

Пример #5 Статистика GC

GC Statistics
-------------
Runs:               110
Collected:          2072204
Root buffer length: 0
Root buffer peak:   10000

      Possible            Remove from  Marked
        Root    Buffered     buffer     grey
      --------  --------  -----------  ------
ZVAL   7175487   1491291    1241690   3611871
ZOBJ  28506264   1527980     677581   1025731

Наиболее полезная статистика отображена в первом блоке. Можно увидеть, что механизм сборки мусора был запущен 110 раз, и суммарно было освобождено свыше 2 миллионов записей в памяти. Если сборка мусора была запущена хотя бы раз, то максимальное число корней в буфере всегда будет равно 10 000.

Заключение

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

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

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


Динамическая трассировка DTrace

Содержание

  • Введение в PHP и DTrace
  • Использование PHP и DTrace
  • Использование SystemTap со статическими зондами PHP DTrace


Введение в PHP и DTrace

DTrace - это всегда доступный, практически не потребляющий ресурсов фреймворк трассировки. Он доступен на множестве платформ, включая Solaris, macOS, Oracle Linux и BSD. DTrace может отслеживать поведение операционной системы и запущенных пользовательских приложений. Он может показывать значения параметров и используется для вывода статистики производительности. Зонды отслеживаются пользовательскими скриптами, написанными на скриптовом языке DTrace D. Это позволяет эффективно анализировать срезы данных.

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

PHP включает в себя зонды "Статически определенной трассировки уровня пользователя" (User-level Statically Defined Tracing, или USDT), которые работают во время исполнения. К примеру, когда D-скрипт отслеживает зонд function-entry, то каждый раз при вызове функции, этот зонд запускает соответствующее действие D-скрипта. Это действие, например, печатает аргументы зонда, такие как расположение этой функции в PHP-скрипте. Или же это может быть агрегация данных, таких как количество запусков каждой из функции.

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

Статические зонды DTrace включены в PHP 5.4. До этой версии их можно подключить как модуль » PECL, который сейчас уже достаточно бесполезен.

Статические зонды DTrace в PHP, также могут быть использованы с SystemTap в некоторых дистрибутивах Linux.


Использование PHP и DTrace

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

Конфигурирование PHP со статическими зондами DTrace

Обратитесь к документации вашей платформы, чтобы включить поддержку DTrace в вашей операционной системе. К примеру, в Oracle Linux необходимо загрузить ядро UEK3 и сделать следующее:

# modprobe fasttrap
# chmod 666 /dev/dtrace/helper

Вместо chmod, вы можете использовать пакет правил ACL для ограничения доступа для конкретного пользователя.

Сборка PHP с ключом --enable-dtrace:

# ./configure --enable-dtrace ...
# make
# make install

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

Статические зонды DTrace в ядре PHP

Следующие статические зонды доступны в PHP
Имя зонда | Описание зонда | Аргументы зонда
request-startup | Срабатывает при начале запроса. | char *file, char *request_uri, char *request_method
request-shutdown | Срабатывает при окончании запроса. | char *file, char *request_uri, char *request_method
compile-file-entry | Срабатывает, когда начинается компиляция скрипта. | char *compile_file, char *compile_file_translated
compile-file-return | Срабатывает, когда заканчивается компиляция скрипта. | char *compile_file, char *compile_file_translated
execute-entry | Срабатывает, когда запускается массив байт-кода. К примеру, когда вызываются функции, возобновляется работа генератора или происходит include. | char *request_file, int lineno
execute-return | Срабатывает, после отработки массива байт-кода. | char *request_file, int lineno
function-entry | Срабатывает, когда движок PHP начинает запуск функции или метода. | char *function_name, char *request_file, int lineno, char *classname, char *scope
function-return | Срабатывает, когда движок PHP возвращается из функции или метода. | char *function_name, char *request_file, int lineno, char *classname, char *scope
exception-thrown | Срабатывает, когда выброшено исключение. | char *classname
exception-caught | Срабатывает, когда исключение поймано. | char *classname
error | Срабатывает если произошла ошибка, вне зависимости от уровня error_reporting. | char *errormsg, char *request_file, int lineno

Модули PHP могут содержать дополнительные зонды.

Список статических зондов DTrace в PHP

Для получения списка зондов, запустите процесс PHP и выполните:

# dtrace -l

Вывод будет примерно такой:

   ID   PROVIDER            MODULE                          FUNCTION NAME
   [ . . . ]
    4   php15271               php               dtrace_compile_file compile-file-entry
    5   php15271               php               dtrace_compile_file compile-file-return
    6   php15271               php                        zend_error error
    7   php15271               php  ZEND_CATCH_SPEC_CONST_CV_HANDLER exception-caught
    8   php15271               php     zend_throw_exception_internal exception-thrown
    9   php15271               php                 dtrace_execute_ex execute-entry
   10   php15271               php           dtrace_execute_internal execute-entry
   11   php15271               php                 dtrace_execute_ex execute-return
   12   php15271               php           dtrace_execute_internal execute-return
   13   php15271               php                 dtrace_execute_ex function-entry
   14   php15271               php                 dtrace_execute_ex function-return
   15   php15271               php              php_request_shutdown request-shutdown
   16   php15271               php               php_request_startup request-startup

Колонка Provider содержит надпись php и pid текущего запущенного процесса PHP.

Если запущен веб-сервер Apache, имя модуля может быть, например, libphp5.so, и может быть множество блоков списка, по одному на каждый процесс Apache.

Колонка Function ссылается на имя внутренней С-функции PHP, реализующей соответствующий зонд.

Если PHP не запущен, то связанных с ним зондов в списке не будет.

Примеры использования DTrace с PHP

Этот пример показывает базовые возможности скриптового языка DTrace D.

Пример #1 all_probes.d - трассировка всех статических зондов PHP с помощью DTrace

#!/usr/sbin/dtrace -Zs

#pragma D option quiet

php*:::compile-file-entry
{
    printf("PHP compile-file-entry\n");
    printf("  compile_file              %s\n", copyinstr(arg0));
    printf("  compile_file_translated   %s\n", copyinstr(arg1));
}

php*:::compile-file-return
{
    printf("PHP compile-file-return\n");
    printf("  compile_file              %s\n", copyinstr(arg0));
    printf("  compile_file_translated   %s\n", copyinstr(arg1));
}

php*:::error
{
    printf("PHP error\n");
    printf("  errormsg                  %s\n", copyinstr(arg0));
    printf("  request_file              %s\n", copyinstr(arg1));
    printf("  lineno                    %d\n", (int)arg2);
}

php*:::exception-caught
{
    printf("PHP exception-caught\n");
    printf("  classname                 %s\n", copyinstr(arg0));
}

php*:::exception-thrown
{
    printf("PHP exception-thrown\n");
    printf("  classname                 %s\n", copyinstr(arg0));
}

php*:::execute-entry
{
    printf("PHP execute-entry\n");
    printf("  request_file              %s\n", copyinstr(arg0));
    printf("  lineno                    %d\n", (int)arg1);
}

php*:::execute-return
{
    printf("PHP execute-return\n");
    printf("  request_file              %s\n", copyinstr(arg0));
    printf("  lineno                    %d\n", (int)arg1);
}

php*:::function-entry
{
    printf("PHP function-entry\n");
    printf("  function_name             %s\n", copyinstr(arg0));
    printf("  request_file              %s\n", copyinstr(arg1));
    printf("  lineno                    %d\n", (int)arg2);
    printf("  classname                 %s\n", copyinstr(arg3));
    printf("  scope                     %s\n", copyinstr(arg4));
}

php*:::function-return
{
    printf("PHP function-return\n");
    printf("  function_name             %s\n", copyinstr(arg0));
    printf("  request_file              %s\n", copyinstr(arg1));
    printf("  lineno                    %d\n", (int)arg2);
    printf("  classname                 %s\n", copyinstr(arg3));
    printf("  scope                     %s\n", copyinstr(arg4));
}

php*:::request-shutdown
{
    printf("PHP request-shutdown\n");
    printf("  file                      %s\n", copyinstr(arg0));
    printf("  request_uri               %s\n", copyinstr(arg1));
    printf("  request_method            %s\n", copyinstr(arg2));
}

php*:::request-startup
{
    printf("PHP request-startup\n");
    printf("  file                      %s\n", copyinstr(arg0));
    printf("  request_uri               %s\n", copyinstr(arg1));
    printf("  request_method            %s\n", copyinstr(arg2));
}

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

Скрипт отслеживает все статические зонды PHP на всем протяжении работы PHP-скрипта. Запускаем D-скрипт:

# ./all_probes.d

Запустите скрипт или приложение PHP. Отслеживающий D-скрипт будет выводить аргументы всех сработавших зондов.

Когда вы увидели все, что хотели, прервать работу скрипта можно комбинацией ^C.

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

php*:::function-entry
{
      printf("%lld: PHP function-entry ", walltimestamp);
      [ . . .]
}

Также смотрите

  • OCI8 и динамическая трассировка DTrace


Использование SystemTap со статическими зондами PHP DTrace

В некоторых дистрибутивах Linux, можно использовать утилиту трассировки SystemTap для отслеживания статических зондов DTrace. Данный вариант доступен в PHP 5.4.20 и PHP 5.5.

Установка PHP с SystemTap

Установите разработческий пакет SystemTap SDT:

# yum install systemtap-sdt-devel

Установите PHP с DTrace:

# ./configure --enable-dtrace ...
# make

Получение списка статических зондов с помощью SystemTap

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

# stap -l 'process.provider("php").mark("*")' -c 'sapi/cli/php -i'

Примерный вывод:

process("sapi/cli/php").provider("php").mark("compile__file__entry")
process("sapi/cli/php").provider("php").mark("compile__file__return")
process("sapi/cli/php").provider("php").mark("error")
process("sapi/cli/php").provider("php").mark("exception__caught")
process("sapi/cli/php").provider("php").mark("exception__thrown")
process("sapi/cli/php").provider("php").mark("execute__entry")
process("sapi/cli/php").provider("php").mark("execute__return")
process("sapi/cli/php").provider("php").mark("function__entry")
process("sapi/cli/php").provider("php").mark("function__return")
process("sapi/cli/php").provider("php").mark("request__shutdown")
process("sapi/cli/php").provider("php").mark("request__startup")

Пример использования SystemTap с PHP

Пример #1 all_probes.stp - трассировка всех статических зондов PHP

probe process("sapi/cli/php").provider("php").mark("compile__file__entry") {
    printf("Probe compile__file__entry\n");
    printf("  compile_file %s\n", user_string($arg1));
    printf("  compile_file_translated %s\n", user_string($arg2));
}
probe process("sapi/cli/php").provider("php").mark("compile__file__return") {
    printf("Probe compile__file__return\n");
    printf("  compile_file %s\n", user_string($arg1));
    printf("  compile_file_translated %s\n", user_string($arg2));
}
probe process("sapi/cli/php").provider("php").mark("error") {
    printf("Probe error\n");
    printf("  errormsg %s\n", user_string($arg1));
    printf("  request_file %s\n", user_string($arg2));
    printf("  lineno %d\n", $arg3);
}
probe process("sapi/cli/php").provider("php").mark("exception__caught") {
    printf("Probe exception__caught\n");
    printf("  classname %s\n", user_string($arg1));
}
probe process("sapi/cli/php").provider("php").mark("exception__thrown") {
    printf("Probe exception__thrown\n");
    printf("  classname %s\n", user_string($arg1));
}
probe process("sapi/cli/php").provider("php").mark("execute__entry") {
    printf("Probe execute__entry\n");
    printf("  request_file %s\n", user_string($arg1));
    printf("  lineno %d\n", $arg2);
}
probe process("sapi/cli/php").provider("php").mark("execute__return") {
    printf("Probe execute__return\n");
    printf("  request_file %s\n", user_string($arg1));
    printf("  lineno %d\n", $arg2);
}
probe process("sapi/cli/php").provider("php").mark("function__entry") {
    printf("Probe function__entry\n");
    printf("  function_name %s\n", user_string($arg1));
    printf("  request_file %s\n", user_string($arg2));
    printf("  lineno %d\n", $arg3);
    printf("  classname %s\n", user_string($arg4));
    printf("  scope %s\n", user_string($arg5));
}
probe process("sapi/cli/php").provider("php").mark("function__return") {
    printf("Probe function__return: %s\n", user_string($arg1));
    printf(" function_name %s\n", user_string($arg1));
    printf("  request_file %s\n", user_string($arg2));
    printf("  lineno %d\n", $arg3);
    printf("  classname %s\n", user_string($arg4));
    printf("  scope %s\n", user_string($arg5));
}
probe process("sapi/cli/php").provider("php").mark("request__shutdown") {
    printf("Probe request__shutdown\n");
    printf("  file %s\n", user_string($arg1));
    printf("  request_uri %s\n", user_string($arg2));
    printf("  request_method %s\n", user_string($arg3));
}
probe process("sapi/cli/php").provider("php").mark("request__startup") {
    printf("Probe request__startup\n");
    printf("  file %s\n", user_string($arg1));
    printf("  request_uri %s\n", user_string($arg2));
    printf("  request_method %s\n", user_string($arg3));
}

Приведенный выше скрипт будет выводить данные статических зондов PHP на всем протяжении работы PHP-скрипта:

# stap -c 'sapi/cli/php test.php' all_probes.stp


Справочник функций

Подсказка

Смотрите также Список/классификация расширений.

  • Изменение поведения PHP
    • APC — Альтернативный кеш PHP
    • APCu — Пользовательский кеш APC
    • APD — Расширенный отладчик PHP
    • bcompiler — Компилятор байткода PHP
    • BLENC — Blenc - BLowfish ENCoder для PHP скриптов
    • Componere
    • Обработка ошибок — Обработка и логирование ошибок
    • FFI — Интерфейс внешней функции (Foreign Function Interface)
    • htscanner — Поддержка файлов в стиле htaccess для всех SAPI
    • inclued — Inclusion hierarchy viewer
    • Memtrack
    • OPcache
    • Контроль вывода — Управление буфером вывода
    • Опции/информация PHP — Опции и информация PHP
    • phpdbg — Интерактивный отладчик PHP
    • runkit
    • runkit7
    • scream — Прерывает режим молчания
    • uopz — User Operations для Zend
    • Weakref — Слабые ссылки
    • WinCache — Windows Cache для PHP
    • Xhprof — Hierarchical Profiler
  • Обработка аудио форматов
    • ID3 — Теги ID3
    • KTaglib
    • oggvorbis — OGG/Vorbis
    • OpenAL — Аудиопотоки OpenAL
  • Службы аутентификации
    • KADM5 — Kerberos V
    • Radius
  • Расширения для работы с командной строкой
    • Ncurses — Управление экраном терминала Ncurses
    • Newt
    • Readline — GNU Readline
  • Расширения для сжатия и архивации
    • Bzip2
    • LZF
    • Phar
    • Rar — Архивирование Rar
    • Zip
    • Zlib
  • Обработка кредитных карт
    • MCVE — MCVE (Monetra) Payment (Обработка кредитных карт)
  • Криптографические расширения
    • Crack — Cracklib
    • CSPRNG
    • Hash — Фреймворк хеш-кодов HASH
    • Mcrypt
    • Mhash
    • OpenSSL
    • Хеширование паролей
    • Sodium
  • Расширения для работы с базами данных
    • Уровни абстракции
    • Расширения для работы с базами данных отдельных производителей
  • Расширения для работы с датой и временем
    • Календарь
    • Дата/время — Дата и время
    • HRTime — Время высокого разрешения
  • Расширения для работы с файловой системой
    • Прямой ввод/вывод (Direct IO)
    • Каталоги
    • FileInfo — Информация о файле
    • Файловая система
    • Inotify
    • Mimetype
    • Phdfs
    • Proctitle
    • xattr
    • xdiff
  • Поддержка языков и кодировок
    • Enchant — Библиотека проверки правописания Enchant
    • FriBiDi
    • Gender — Определение пола по имени
    • Gettext
    • iconv
    • intl — Функции интернационализации
    • Многобайтовые строки
    • Pspell
    • Recode — GNU Recode
  • Обработка и генерация изображений
    • Cairo
    • Exif — Изменяемая информация об изображении
    • GD — Обработка изображений и GD
    • Gmagick
    • ImageMagick — Обработка изображений (ImageMagick)
  • Расширения для работы с почтой
    • Cyrus — Администрирование Cyrus IMAP
    • IMAP — IMAP, POP3 и NNTP
    • Mail
    • Mailparse
    • vpopmail
  • Математические расширения
    • BC Math — Вычисления с произвольной точностью BCMath
    • GMP — Вычисления с увеличенной точностью (GNU Multiple Precision)
    • Lapack
    • Math — Математические функции
    • Статистика
    • Trader — Technical Analysis for Traders
  • Генерация нетекстовых MIME форматов
    • FDF — Формат данных форм
    • GnuPG — GNU Privacy Guard
    • haru — Haru PDF
    • Ming — Ming (flash)
    • PDF
    • wkhtmltox
    • PS — Создание документов PostScript
    • Считыватель RPM — Чтение заголовков RPM
    • XLSWriter
  • Расширения для управления процессами программ
    • Eio
    • Ev
    • Expect
    • Libevent
    • PCNTL — Управление процессами
    • POSIX
    • Запуск программы — Запуск программ в системе
    • parallel
    • pthreads
    • pht
    • Семафоры — Семафоры, разделяемая память и IPC
    • Управление разделяемой памятью
    • Sync
  • Другие базовые расширения
    • GeoIP — Geo IP Location
    • FANN — Быстрая искусственная нейронная сеть (Fast Artificial Neural Network или FANN)
    • JSON — JavaScript Object Notation
    • Judy — Массивы Judy
    • Lua
    • LuaSandbox
    • Misc. — Разные функции
    • Parsekit
    • Seaslog
    • SPL — Стандартная библиотека PHP (SPL)
    • Типы SPL — Обработка типов SPL Type
    • Потоки
    • Swoole
    • Tidy
    • Лексер (Tokenizer)
    • URL
    • V8js — Интеграция V8 Javascript Engine
    • Yaml — Сериализация данных YAML
    • Yaf — Yet Another Framework
    • Yaconf
    • Taint
    • Структуры данных
  • Другие службы
    • chdb — Хеш-база данных констант (CHDB)
    • cURL — Клиентская библиотека работы с URL
    • Event
    • FAM — File Alteration Monitor
    • FTP
    • Gearman
    • Gopher — Net Gopher
    • Gupnp
    • Hyperwave API
    • LDAP — Облегчённый протокол доступа к каталогам (LDAP)
    • Memcache
    • Memcached
    • mqseries
    • Сеть
    • RRD — RRDtool
    • SAM — Simple Asynchronous Messaging
    • ScoutAPM
    • SNMP
    • Сокеты
    • SSH2 — Secure Shell2
    • Stomp — Stomp Client
    • SVM — Support Vector Machine (Вспомогательная векторная машина)
    • SVN — Subversion
    • TCP — Обертки TCP
    • Varnish
    • YAZ
    • YP/NIS
    • Обмен сообщениями 0MQ — ZMQ
    • ZooKeeper
  • Расширения для работы с поисковыми системами
    • mnoGoSearch
    • Solr — Apache Solr
    • Sphinx — Клиент Sphinx
    • Swish — Индексирование Swish
  • Расширения для работы с серверами
    • Apache
    • Менеджер процессов FastCGI
    • IIS — Администрирование IIS
    • NSAPI
  • Расширения для работы с сессиями
    • Msession — Функции Управления Сессиями Mohawk Software
    • Сессии — Управление сессиями
    • Session PgSQL — Обработчик сохранения сессии PostgreSQL
  • Обработка текста
    • BBCode — Bulletin Board Code
    • CommonMark
    • Parle — Parsing and lexing
    • PCRE — Функции для работы с регулярными выражениями (Perl-совместимые)
    • Регулярные выражения POSIX — Регулярные выражения (расширенные POSIX)
    • ssdeep — Нечеткое хеширование ssdeep
    • Строки
  • Расширения, относящиеся к переменным и типам
    • Массивы
    • Классы и объекты — Информация о классе и объекте
    • Classkit
    • Ctype — Функции определения типа символов
    • Filter — Фильтрация данных
    • Управление функциями
    • Quickhash
    • Reflection
    • Обработка переменных
  • Веб-сервисы
    • OAuth
    • SCA
    • SOAP
    • Yar — Еще один RPC-фреймворк
    • XML-RPC
  • Расширения только для Windows
    • COM — COM и .Net (Windows)
    • win32ps
    • win32service
  • Обработка XML
    • DOM — Document Object Model
    • libxml
    • SDO — Service Data Objects
    • SDO-DAS-Relational — SDO Relational Data Access Service
    • SDO DAS XML — SDO XML Data Access Service
    • SimpleXML
    • WDDX
    • XMLDiff — Сравнение и объединение XML
    • Разбор XML
    • XMLReader
    • XMLWriter
    • XSL
  • Расширения для работы с GUI
    • UI


Изменение поведения PHP

  • APC — Альтернативный кеш PHP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции APC
    • APCIterator — Класс APCIterator
  • APCu — Пользовательский кеш APC
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции APCu
    • APCUIterator — Класс APCUIterator
  • APD — Расширенный отладчик PHP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • APD Функции
  • bcompiler — Компилятор байткода PHP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции bcompiler
  • BLENC — Blenc - BLowfish ENCoder для PHP скриптов
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Blenc
  • Componere
    • Введение
    • Установка и настройка
    • Componere\Abstract\Definition — The Componere\Abstract\Definition class
    • Componere\Definition — The Componere\Definition class
    • Componere\Patch — The Componere\Patch class
    • Componere\Method — The Componere\Method class
    • Componere\Value — The Componere\Value class
    • Componere Функции
  • Обработка ошибок — Обработка и логирование ошибок
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции обработки ошибок
  • FFI — Интерфейс внешней функции (Foreign Function Interface)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • FFI — Основной интерфейс к коду и данным C
    • FFI\CData — Доступ к данным C
    • FFI\CType — Доступ к типам C
    • FFI\Exception — Исключения FFI
    • FFI\ParserException — Исключения парсера FFI
  • htscanner — Поддержка файлов в стиле htaccess для всех SAPI
    • Введение
    • Установка и настройка
  • inclued — Inclusion hierarchy viewer
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции inclued
  • Memtrack
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
  • OPcache
    • Введение
    • Установка и настройка
    • Функции OPcache
  • Контроль вывода — Управление буфером вывода
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции контроля вывода
  • Опции/информация PHP — Опции и информация PHP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Опции PHP/информационные функции
  • phpdbg — Интерактивный отладчик PHP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции phpdbg
  • runkit
    • Введение
    • Предопределенные константы
    • Установка и настройка
    • runkit
  • runkit7
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • runkit7 Функции
  • scream — Прерывает режим молчания
    • Введение
    • Установка и настройка
    • Примеры
  • uopz — User Operations для Zend
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Uopz
  • Weakref — Слабые ссылки
    • Введение
    • Установка и настройка
    • WeakRef — Класс WeakRef
    • WeakMap — Класс WeakMap
  • WinCache — Windows Cache для PHP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции WinCache
    • Сборка для Windows
  • Xhprof — Hierarchical Profiler
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции Xhprof


Альтернативный кеш PHP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции APC
    • apc_add — Кешировать переменную в хранилище данных
    • apc_bin_dump — Получить бинарный дамп заданных файлов и пользовательских переменных
    • apc_bin_dumpfile — Вывести двоичный дамп кешированных файлов и пользовательских переменных в файл
    • apc_bin_load — Загрузить бинарный дамп в файловый/пользовательский кеш APC
    • apc_bin_loadfile — Загрузить бинарный дамп из файла в файловый/пользовательский кеш APC
    • apc_cache_info — Получить кешируемую информацию и метаданные из хранилища данных APC
    • apc_cas — Заменить старое значение на новое
    • apc_clear_cache — Очистить кеш APC
    • apc_compile_file — Сохранить файл в кеше байт-кода, не обращая внимания на фильтры
    • apc_dec — Уменьшить сохраненное число
    • apc_define_constants — Определить набор констант для извлечения и массового определения
    • apc_delete_file — Удалить файлы из кеша опкодов
    • apc_delete — Удалить сохраненную переменную из кеша
    • apc_exists — Проверить, существует ли ключ APC
    • apc_fetch — Выбрать сохраненную переменную из кеша
    • apc_inc — Увеличить сохраненное число
    • apc_load_constants — Загрузить набор констант из кеша
    • apc_sma_info — Получить информацию о выделении разделяемой памяти APC
    • apc_store — Кешировать переменную в хранилище данных
  • APCIterator — Класс APCIterator
    • APCIterator::__construct — Создать объект итератора APCIterator
    • APCIterator::current — Получить текущий элемент
    • APCIterator::getTotalCount — Получить общее количество
    • APCIterator::getTotalHits — Получить общее число попаданий в кэш
    • APCIterator::getTotalSize — Получить общий размер кэша
    • APCIterator::key — Получить ключ итератора
    • APCIterator::next — Переместить указатель к следующему элементу
    • APCIterator::rewind — Перемотать итератор назад
    • APCIterator::valid — Проверить, является ли текущая позиция итератора допустимой


Введение

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

Внимание

Это расширение считается неподдерживаемым и мертвым. В любом случае, исходники доступны через PECL GIT тут: https://git.php.net/?p=pecl/caching/apc.git.

Замечание:

Для этого расширения есть следующие альтернативы: OPcache, APCu, Windows Cache для PHP и API отслеживания прогресса загрузки файлов с помощью сессий.


Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения
  • Типы ресурсов


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Для сборки этого расширения не требуются внешние библиотеки.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/apc.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Замечание: В Windows для APC необходима установленная временная директория и веб-сервер имел право записи. Это расширение проверяет переменные окружающей среды в таком порядке: TMP, TEMP, USERPROFILE. Если ни одна из них не задана, то расширение пытается работать с каталогом WINDOWS.

Замечание: Крайне подробные сведения о технической реализации этого расширения доступны в » предоставленном разработчиком файле TECHNOTES.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

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

При конфигурировании APC есть два главных момента, на которые необходимо обратить внимание. Первый - сколько памяти предоставить в распоряжение APC, а второй - будет ли APC проверять, модифицировался ли файл, при каждом запросе. За эти настройки отвечают параметры apc.shm_size и apc.stat, соответственно. Крайне внимательно прочитайте разделы, относящиеся к настройке этих параметров.

Как только сервер запущен, скрипт apc.php, поставляемый с этим расширением, должен быть скопирован в "docroot" и права на него должны позволять запустить его через браузер. Этот скрипт предоставляет детальную информацию по работе APC. Если в PHP разрешен GD, то этот скрипт также будет показывать полезные графики. Конечно же первое, что будет интересно, это то, кеширует ли APC что нибудь. Если APC работает, то значение Cache full count (слева) будет показывать, сколько раз кеш полностью заполнится и был вынужден принудительно удалить записи, к которым не обращались последние apc.ttl секунд. Чем меньше это число - тем лучше сконфигурирован кеш. Если это число постоянно растет, значит APC приходится постоянно очищать старые записи и значит теряется весь смысл кеширования. Самый лучший способ уменьшить это число - это добавить памяти для APC. Если сделать этого нельзя, то надо перенастроить apc.filters, чтобы ограничить набор кешируемых скриптов.

Если APC собран с поддержкой mmap (Memory Mapping), он будет использовать всего один сегмент памяти, если же наоборот, APC собран с поддержкой SHM (SysV Shared Memory), он будет использовать несколько сегментов. MMAP не имеет максимального ограничения, в отличие от SHM, который ограничивается /proc/sys/kernel/shmmax. Обычно рекомендуется использовать MMAP, потому что он гораздо быстрее выделяет память при перезагрузке веб-сервера, что сказывается на скорости запуска сервера.

Конфигурационные параметры APC
Имя | По умолчанию | Место изменения | Список изменений
apc.enabled | "1" | PHP_INI_SYSTEM | PHP_INI_SYSTEM в APC 2. PHP_INI_ALL в APC <= 3.0.12.
apc.shm_segments | "1" | PHP_INI_SYSTEM |
apc.shm_size | "32M" | PHP_INI_SYSTEM |
apc.shm_strings_buffer | "4M" | PHP_INI_SYSTEM | Доступно с APC 3.1.4.
apc.optimization | "0" | PHP_INI_ALL | PHP_INI_SYSTEM в APC 2. Удалено в APC 3.0.13.
apc.num_files_hint | "1000" | PHP_INI_SYSTEM |
apc.user_entries_hint | "4096" | PHP_INI_SYSTEM | Доступно с APC 3.0.0.
apc.ttl | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.0.
apc.user_ttl | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.0.
apc.gc_ttl | "3600" | PHP_INI_SYSTEM |
apc.cache_by_default | "1" | PHP_INI_ALL | PHP_INI_SYSTEM в APC <= 3.0.12. Доступно с APC 3.0.0.
apc.filters | NULL | PHP_INI_SYSTEM |
apc.mmap_file_mask | NULL | PHP_INI_SYSTEM |
apc.slam_defense | "1" | PHP_INI_SYSTEM | Доступно с APC 3.0.0. До APC 3.1.4, значение по умолчанию "0" (disabled).
apc.file_update_protection | "2" | PHP_INI_SYSTEM | Доступно с APC 3.0.6.
apc.enable_cli | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.7.
apc.max_file_size | "1M" | PHP_INI_SYSTEM | Доступно с APC 3.0.7.
apc.use_request_time | "1" | PHP_INI_ALL | Доступно с APC 3.1.3.
apc.stat | "1" | PHP_INI_SYSTEM | Доступно с APC 3.0.10.
apc.write_lock | "1" | PHP_INI_SYSTEM | Доступно с APC 3.0.11.
apc.report_autofilter | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.11.
apc.serializer | "default" | PHP_INI_SYSTEM | Доступно с APC 3.1.0.
apc.include_once_override | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.12.
apc.rfc1867 | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.13.
apc.rfc1867_prefix | "upload_" | PHP_INI_SYSTEM |
apc.rfc1867_name | "APC_UPLOAD_PROGRESS" | PHP_INI_SYSTEM |
apc.rfc1867_freq | "0" | PHP_INI_SYSTEM |
apc.rfc1867_ttl | "3600" | PHP_INI_SYSTEM | Доступно с APC 3.1.1.
apc.localcache | "0" | PHP_INI_SYSTEM | Доступно в APC 3.0.14 - 3.1.11.
apc.localcache.size | "512" | PHP_INI_SYSTEM | Доступно в APC 3.0.14 - 3.1.11.
apc.coredump_unmap | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.16.
apc.stat_ctime | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.13.
apc.preload_path | NULL | PHP_INI_SYSTEM | Доступно с APC 3.1.1.
apc.file_md5 | "0" | PHP_INI_SYSTEM | Доступно с APC 3.1.1.
apc.canonicalize | "1" | PHP_INI_SYSTEM | Доступно с APC 3.1.1.
apc.lazy_functions | 0 | PHP_INI_SYSTEM | Доступно с APC 3.1.3.
apc.lazy_classes | 0 | PHP_INI_SYSTEM | Доступно с APC 3.1.3.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

apc.enabled boolean

Если установить apc.enabled равным 0, то APC не будет включен. Это полезно, когда APC статически включен в PHP и нет других вариантов, для запрета его использования. Если APC собран как DSO, можно просто закомментировать строку extension в php.ini.

apc.shm_segments integer

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

apc.shm_size string

Размер сегмента разделяемой памяти, заданный в короткой нотации (см. этот FAQ). По умолчанию некоторые системы (включая большинство вариантов BSD) ограничивают это значение крайне малым значением.

apc.shm_strings_buffer string

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

apc.optimization integer

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

apc.num_files_hint integer

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

apc.user_entries_hint integer

Как и apc.num_files_hint, это подсказка о количестве уникальных пользовательских переменных, которые надо кешировать. Установите равным нулю или вообще не указывайте, если не уверены.

apc.ttl integer

Количество секунд, в течение которых запись может находиться в кеше без обращения к ней, прежде чем будт разрешено ее заменить на другую. Установка этого параметра, равного нулю может привести к тому, что все место будет забито и новые записи не смогут попасть в кеш. В этом случае, если параметр равен 0, кеш будет полностью очищен. Если же ttl будет больше нуля, то APC постарается очистить устаревшие записи.

apc.user_ttl integer

Количество секунд, в течение которых запись может находиться в кеше без обращения к ней, прежде чем будт разрешено ее заменить на другую. Установка этого параметра равного нулю может привести к тому, что все место будет забито и новые записи не смогут попасть в кеш. В этом случае, если параметр равен 0, кеш будет полностью очищен. Если же ttl будет больше нуля, то APC постарается очистить устаревшие записи.

apc.gc_ttl integer

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

apc.cache_by_default boolean

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

apc.filters string

Список регулярных выражений вида расширенных POSIX, перечисленных через запятую. Если имя какого-либо файла совпадет с одним из этих шаблонов, то он не будет кеширован. Обратите внимание, что имена для сравнения берутся ровно так, как они заданы в include/require, а не по абсолютному пути. Если первый символ шаблона это +, то любой совпавший файл будет закеширован, если -, то не будет. По умолчанию всегда подразумевается -.

apc.mmap_file_mask string

Если собран с поддержкой MMAP, с помощью опции --enable-mmap, этот параметр должен содержать файловую маску типа mktemp-style для передачи в расширение MMAP, чтобы определить, будет ли MMAP использовать файловую систему или разделяемую память. Для файловой системы задайте опцию как /tmp/apc.XXXXXX (ровно 6 X). Для использования shm_open/mmap в стиле POSIX, добавьте .shm в любом месте маски, например /apc.shm.XXXXXX Вы также можете установить его как /dev/zero для использования интерфейса ядра /dev/zero для анонимной памяти mmap. Если не задано, то будет принудительно использоваться анонимный mmap.

apc.slam_defense integer

На очень загруженных серверах, когда вы запускаете веб-сервер, сразу множество процессов будут пытаться закешировать один и тот же файл одновременно. Этой опцией задается вероятность, в процентах, того, что попытка одного конкретного процесса закешировать данные будет отклонена. Например если apc.slam_defense установить равной 75, то это означает, что вероятность закешировать файл, которого в кеше нет, будет равна 25% и вероятность того, что в кешировании будет отказано равна 75%. Для запрета данного функционала установите этот параметр равным 0.

Deprecated by apc.write_lock.

apc.file_update_protection integer

Когда файл изменяется на ходу, это должно происходить атомарным образом. То есть сначала его надо записать во временный файл, а затем переместить (mv) на его целевую позицию. Многие текстовые редакторы, cp, tar и прочие не делают этого. Это может привести к тому, что файл будет запрошен (и закеширован) в момент его записи. Настройка apc.file_update_protection задает задержку кеширования для совершенно новых файлов. По умолчанию 2 секунды. Это означает, что если временная метка модификации файла (mtime) говорит, что с если момента изменения файла прошло менее 2 секунд, он не будет кеширован. Несчастный человек, который попытается обратиться в полусохраненному файлу будет наблюдать странное поведение, но, по крайней мере, оно продлится не долго. Если все файлы веб-сервера будут обновляться атомарно, с помощью таких методов как rsync (который производит обновление корректно), то это поведение можно отключить установим этот параметр равным нулю. Если система перегружена по вводу/выводу, то некоторые обновления могут длиться больше двух секунд и эта настройка должна быть соответственно увеличина.

apc.enable_cli integer

Больше для тестирования и отладки. Эта настройка разрешает APC для CLI-версии PHP. При обычной работе запускать APC, который будет создавать, наполнять и уничтожать кеш при каждом запуске сценария в консоли, будет далеко не лучшей идеей. Но в целях тестирования и отладки, можно легко включить APC для CLI.

apc.max_file_size integer

Не кеширует файлы большего, чем задано этой настройкой, размера. По умолчанию 1M.

apc.stat integer

Будьте осторожны меняя эту настройку. По умолчанию она включена, заставляя APC проверять файлы скриптов при каждом запросе на предмет не были ли они изменены. Если они были изменены, то они будут перекомпилированы и закешированы заново. Если же эту настройку отключить, то APC такую проверку производить не будет и если файл уже был закеширован, а после этого изменен, то новая версия в кеш не попадет. Для перекеширования потребуется перезагрузить веб-сервер. Обратите внимание, что веб-сервера, сконфигурированные для использования FastCGI могут не очищать кеш при перезапуске. В промышленных средах, где изменения файлов происходят крайне редко, отключение этой опции может значительно повысить производительность.

Для файлов загружаемых через included/required это опция работает замечательно, но имейте в виду, что при включении файла по относительному пути (в Unix это любой путь, не начинающийся с /), APC будет проверять его на уникальность. Если же используются абсолютные пути, APC будет пропускать эту проверку и использовать абсолютный путь как уникальный идентификатор файла.

apc.write_lock boolean

На высоконагруженных серверах, когда сервер стартует, или когда множество файлов изменяются одновременно, APC может попытаться скомпилировать и закешировать один и тот же файл несколько раз одновременно. Блокировка записи гарантирует, что только один процесс будет пытаться компилировать и кешировать некешированный файл. Другие процессы, которым нужно использовать этот файл, будут использовать его некешированную версию, вместо того, чтобы ждать его появления в кеше.

apc.report_autofilter boolean

Логирует любые скрипты, которые были исключены из кеширования из-за проблем раннего или позднего связывания.

apc.serializer string

Указывает APC использовать сторонний сериализатор.

apc.include_once_override boolean

Оптимизирует вызовы include_once и require_once для предотвращения дорогих системных вызовов.

Внимание

Этот функционал является ЭКСПЕРЕМЕНТАЛЬНЫМ. Поведение этой директивы, ее имя и документация на нее могут измениться без предупреждения в будущих версиях APC. Используйте ее на свой страх и риск.

apc.rfc1867 boolean

Перехватчик прогресса загрузки файлов RFC1867 доступен в APC только если он собран с PHP 5.2.0 и выше. Если разрешено, то любой загружаемый на сервер файл, содержащий в форме, перед полем с файлом, поле с именем APC_UPLOAD_PROGRESS, будет вынуждать APC автоматически создавать пользовательскую запись в кеше вида upload_key, где key - это значение поля APC_UPLOAD_PROGRESS.

Помните, что скрытое поле APC_UPLOAD_PROGRESS должно идти до поля с файлом, иначе работа будет некорректной.

Обратите внимание, отслеживание загрузки файла потоконебезопасна, так что если во время первой загрузки случится новая, с тем же ключем, отслеживание первой будет прекращено.

Обратите внимание, что rate будет доступен только когда все текущие загрузки завершены.

Пример #1 Пример использования apc.rfc1867

<?php
print_r(apc_fetch("upload_$_POST[APC_UPLOAD_PROGRESS]"));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [total] => 1142543
    [current] => 1142543
    [rate] => 1828068.8
    [filename] => test
    [name] => file
    [temp_filename] => /tmp/php8F
    [cancel_upload] => 0
    [done] => 1
)

apc.rfc1867_prefix string

Префикс ключа для использования в записи кеша пользователя, создаваемой функционалом отслеживания прогресса загрузки rfc1867.

apc.rfc1867_name string

Задает имя для скрытого поля формы, которое будет активировать процесс загрузки APC и указывать суффикс ключа пользовательского кеша.

apc.rfc1867_freq string

Частота, с которой будет обновляться пользовательская запись в кеше во время загрузки файла. Может задаваться как в процентах, так и указанием размера в байтах. При желании можно использовать суффиксы "k", "m" и "g" (регистронезависимо) для килобайт, мегабайт и гигабайт, соответственно. Если указать ноль, то обновления будут происходить так быстро, как только возможно, но это может замедлить загрузку.

apc.rfc1867_ttl integer

TTL для записей rfc1867.

apc.localcache boolean

Разрешает неблокирующий локальный теневой кеш процессов, что уменьшает количество блокировок во время записи кеша.

apc.localcache.size integer

Размер локального теневого кеша процессов, должен быть достаточно большим, примерно в половину apc.num_files_hint.

apc.coredump_unmap boolean

Разрешает APC перехватывать сигналы, такие как SIGSEGV, который записывает coredump, когда подан. Когда эти сигналы будут получены, APC попытается освободить всю разделяемую память, чтобы не включать ее в coredump. Эта настройка может увеличить стабильность системы, когда критический сигнал был получен, а APC сконфигурирован на использование большого объема памяти.

Внимание

Эта возможность потенциально опасна. Освобождение сегментов разделяемой памяти при получении критического сигнала может привести к непредсказуемому поведению.

Замечание:

Хотя некоторые ядра предоставляют возможность игнорировать некоторые сегменты разделяемой памяти при записи core-файла, эти реализации могут также игнорировать важные сегменты памяти, такие как Apache scoreboard.

apc.stat_ctime integer

Проверка по ctime для избежания проблем, порожденных такими программами как svn или rsync, убедившись, что inode не поменялся с момента последнего сбора статистики. Обычно APC проверяет только mtime.

apc.canonicalize bool

Если запрещено, то относительные пути приводятся к каноничным в режиме no-stat. Если разрешено, то файлы, подключенные через потоковую обертку не будут кешироваться, так как realpath() не поддерживает потоковые обертки.

apc.preload_path string

Опционально. Задает путь, который используется APC для загрузки кешированных данных во время запуска.

apc.use_request_time bool

Использовать время старта запроса SAPI для TTL.

apc.file_md5 bool

Записывать хеши md5 файлов.

apc.lazy_functions integer

Разрешает ленивую подгрузку функций.

apc.lazy_classes integer

Разрешает ленивую подгрузку классов.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

APC_BIN_VERIFY_CRC32 (integer)
APC_BIN_VERIFY_MD5 (integer)
APC_ITER_ALL (integer)
APC_ITER_ATIME (integer)
APC_ITER_CTIME (integer)
APC_ITER_DEVICE (integer)
APC_ITER_DTIME (integer)
APC_ITER_FILENAME (integer)
APC_ITER_INODE (integer)
APC_ITER_KEY (integer)
APC_ITER_MD5 (integer)
APC_ITER_MEM_SIZE (integer)
APC_ITER_MTIME (integer)
APC_ITER_NONE (integer)
APC_ITER_NUM_HITS (integer)
APC_ITER_REFCOUNT (integer)
APC_ITER_TTL (integer)
APC_ITER_TYPE (integer)
APC_ITER_VALUE (integer)
APC_LIST_ACTIVE (integer)
APC_LIST_DELETED (integer)


Функции APC

Содержание

  • apc_add — Кешировать переменную в хранилище данных
  • apc_bin_dump — Получить бинарный дамп заданных файлов и пользовательских переменных
  • apc_bin_dumpfile — Вывести двоичный дамп кешированных файлов и пользовательских переменных в файл
  • apc_bin_load — Загрузить бинарный дамп в файловый/пользовательский кеш APC
  • apc_bin_loadfile — Загрузить бинарный дамп из файла в файловый/пользовательский кеш APC
  • apc_cache_info — Получить кешируемую информацию и метаданные из хранилища данных APC
  • apc_cas — Заменить старое значение на новое
  • apc_clear_cache — Очистить кеш APC
  • apc_compile_file — Сохранить файл в кеше байт-кода, не обращая внимания на фильтры
  • apc_dec — Уменьшить сохраненное число
  • apc_define_constants — Определить набор констант для извлечения и массового определения
  • apc_delete_file — Удалить файлы из кеша опкодов
  • apc_delete — Удалить сохраненную переменную из кеша
  • apc_exists — Проверить, существует ли ключ APC
  • apc_fetch — Выбрать сохраненную переменную из кеша
  • apc_inc — Увеличить сохраненное число
  • apc_load_constants — Загрузить набор констант из кеша
  • apc_sma_info — Получить информацию о выделении разделяемой памяти APC
  • apc_store — Кешировать переменную в хранилище данных


Кешировать переменную в хранилище данных

  • « Функции APC
  • apc_bin_dump »
  • PHP Manual
  • Функции APC
  • Кешировать переменную в хранилище данных

apc_add

(PECL apc >= 3.0.13)

apc_add — Кешировать переменную в хранилище данных

Описание

apc_add ( string $key , mixed $var [, int $ttl = 0 ] ) : bool
apc_add ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] ) : array

Кеширует переменную в хранилище данных, только если она ещё не закеширована.

Замечание: В отличие от многих других механизмов в PHP, переменные, сохраненные с использованием apc_add(), будут сохранены между запросами (пока значение не будет удалено из кеша).

Список параметров

key

Сохраняет переменную, используя это имя. Ключи (key) уникальны для кеша, так, попытка использования apc_add() для сохранения данных с ключом, который уже существует, не перезапишет существующие данные, и вместо этого возвратит FALSE. (Это единственное различие между apc_add() и apc_store().)

var

Переменная для хранения

ttl

Время жизни; хранить var в кеше ttl секунд. После истечения ttl, сохраненная переменная будет удалена из кэша (при следующем запросе). Если никакого значения ttl не указано (или если ttl равно 0), то значение хранится, пока оно не будет удалено из кеша вручную, или не сможет существовать в кэше (очистка, перезапуск и т.д.).

values

Имена в ключах, переменные в значениях.

Возвращаемые значения

Возвращает TRUE в случае успешного добавления и FALSE в случае ошибки. Второй синтаксис возвращает массив с ошибочными ключами.

Примеры

Пример #1 Пример использования apc_add()

<?php
$bar = 'BAR';
apc_add('foo', $bar);
var_dump(apc_fetch('foo'));
echo "\n";
$bar = 'NEVER GETS SET';
apc_add('foo', $bar);
var_dump(apc_fetch('foo'));
echo "\n";
?>

Результат выполнения данного примера:

string(3) "BAR"
string(3) "BAR"

Смотрите также

  • apc_store() - Кешировать переменную в хранилище данных
  • apc_fetch() - Выбрать сохраненную переменную из кеша
  • apc_delete() - Удалить сохраненную переменную из кеша


Получить бинарный дамп заданных файлов и пользовательских переменных

  • « apc_add
  • apc_bin_dumpfile »
  • PHP Manual
  • Функции APC
  • Получить бинарный дамп заданных файлов и пользовательских переменных

apc_bin_dump

(PECL apc >= 3.1.4)

apc_bin_dump — Получить бинарный дамп заданных файлов и пользовательских переменных

Описание

apc_bin_dump ([ array $files = NULL [, array $user_vars = NULL ]] ) : string

Возвращает бинарный дамп для заданных файлов и пользовательских переменных из кеша APC. Задайте NULL для файлов или пользовательских переменных для выгрузки всех объектов. Если передать пустой массив, то ничего не будет выгружено.

Список параметров

files

Список файлов. NULL для выгрузки всех записей. Пустой массив, если ничего выгружать не нужно.

user_vars

Пользовательские переменные. NULL для выгрузки всех записей. Пустой массив, если ничего выгружать не нужно.

Возвращаемые значения

Возвращает бинарный дамп для заданных файлов и пользовательских переменных из кеша APC, FALSE, если APC не включен, или NULL если встретилась неизвестная ошибка.

Смотрите также

  • apc_bin_dumpfile() - Вывести двоичный дамп кешированных файлов и пользовательских переменных в файл
  • apc_bin_load() - Загрузить бинарный дамп в файловый/пользовательский кеш APC


Вывести двоичный дамп кешированных файлов и пользовательских переменных в файл

  • « apc_bin_dump
  • apc_bin_load »
  • PHP Manual
  • Функции APC
  • Вывести двоичный дамп кешированных файлов и пользовательских переменных в файл

apc_bin_dumpfile

(PECL apc >= 3.1.4)

apc_bin_dumpfile — Вывести двоичный дамп кешированных файлов и пользовательских переменных в файл

Описание

apc_bin_dumpfile ( array $files , array $user_vars , string $filename [, int $flags = 0 [, resource $context = NULL ]] ) : int

Выводит двоичный дамп заданных файлов и пользовательских переменных их кеша APC в именованный файл.

Список параметров

files

Имена файлов для дампа.

user_vars

Пользовательские переменные для дампа.

filename

Имя файла, в которые должен быть сохранён дамп.

flags

Флаги, переданные потоку filename. Смотрите документацию file_put_contents() для получения детальной информации.

context

Контекст, переданный потоку filename. Смотри документацию file_put_contents() для получения детальной информации.

Возвращаемые значения

Число байт записанных в файл, иначе FALSE, если APC не включено, filename содержит недопустимое имя файла, filename не может быть открыт, файл дампа не может быть завершен (например, на жестком диске не достаточно места), или была обнаружена неизвестная ошибка.

Смотрите также

  • apc_bin_dump() - Получить бинарный дамп заданных файлов и пользовательских переменных
  • apc_bin_load() - Загрузить бинарный дамп в файловый/пользовательский кеш APC


Загрузить бинарный дамп в файловый/пользовательский кеш APC

  • « apc_bin_dumpfile
  • apc_bin_loadfile »
  • PHP Manual
  • Функции APC
  • Загрузить бинарный дамп в файловый/пользовательский кеш APC

apc_bin_load

(PECL apc >= 3.1.4)

apc_bin_load — Загрузить бинарный дамп в файловый/пользовательский кеш APC

Описание

apc_bin_load ( string $data [, int $flags = 0 ] ) : bool

Загружает заданный бинарный дамп в файловый/пользовательский кеш APC.

Список параметров

data

Бинарный дамп, который должен быть загружен, скорее всего созданный функцией apc_bin_dump().

flags

Одна из констант APC_BIN_VERIFY_CRC32 и APC_BIN_VERIFY_MD5 или их комбинация.

Возвращаемые значения

Возвращает TRUE, если бинарный дамп data был успешно загружен или FALSE в противном случае. FALSE возвращеется, если APC не включен, или если data не является допустимым бинарным дампом APC (например, неожиданный размер).

Примеры

Пример #1 Пример использования apc_bin_load()

<?php
$data = apc_bin_dump(NULL, NULL);
apc_bin_load($data, APC_BIN_VERIFY_MD5 | APC_BIN_VERIFY_CRC32);
?>

Смотрите также

  • apc_bin_dump() - Получить бинарный дамп заданных файлов и пользовательских переменных
  • apc_bin_loadfile() - Загрузить бинарный дамп из файла в файловый/пользовательский кеш APC


Загрузить бинарный дамп из файла в файловый/пользовательский кеш APC

  • « apc_bin_load
  • apc_cache_info »
  • PHP Manual
  • Функции APC
  • Загрузить бинарный дамп из файла в файловый/пользовательский кеш APC

apc_bin_loadfile

(PECL apc >= 3.1.4)

apc_bin_loadfile — Загрузить бинарный дамп из файла в файловый/пользовательский кеш APC

Описание

apc_bin_loadfile ( string $filename [, resource $context = NULL [, int $flags = 0 ]] ) : bool

Загружает заданный бинарный дамп их файла в файловый/пользовательский кеш APC.

Список параметров

filename

Имя файла, содержащего дамп, выгруженный функцией apc_bin_dumpfile().

context

Контекст файлов.

flags

Одна из констант APC_BIN_VERIFY_CRC32 и APC_BIN_VERIFY_MD5 или их комбинация.

Возвращаемые значения

Возвращает TRUE, в случае успеха, иначе FALSE. Причины, по которым может возвратиться FALSE: APC не включен, filename является недопустимым именем файла или пустым, filename не может быть открыт, дамп файла не может быть завершен, или если data не является допустимым бинарным дампом APC (например, неожиданный размер).

Смотрите также

  • apc_bin_dumpfile() - Вывести двоичный дамп кешированных файлов и пользовательских переменных в файл
  • apc_bin_load() - Загрузить бинарный дамп в файловый/пользовательский кеш APC


Получить кешируемую информацию и метаданные из хранилища данных APC

  • « apc_bin_loadfile
  • apc_cas »
  • PHP Manual
  • Функции APC
  • Получить кешируемую информацию и метаданные из хранилища данных APC

apc_cache_info

(PECL apc >= 2.0.0)

apc_cache_info — Получить кешируемую информацию и метаданные из хранилища данных APC

Описание

apc_cache_info ([ string $cache_type = "" [, bool $limited = FALSE ]] ) : array

Получает закешированную информацию и метаданные из хранилища данных APC.

Список параметров

cache_type

Если cache_type равен "user", то будет возвращаена информация о пользовательском кеше.

Если cache_type равен "filehits", то будет возвращена информация о том, какие файлы были выданы из кеша байт-кода для текущего запроса. Эта опция должна быть активирована при компиляции с помощью опции --enable-filehits .

Если cache_type неверный или не указан, то будет возвращена информация о системном кеше (закешированные файлы).

limited

Если limited равен TRUE, возвращаемое значение исключит отдельный список записей кеша. Это полезно при попытке оптимизировать вызовы для сбора статистики.

Возвращаемые значения

Массив кешированных данных (и метаданные) или FALSE в случае возникновения ошибки

Замечание: apc_cache_info() вызовет предупреждение, если не уадется получить данные кеша APC. Обычно это происходит, когда APC не включен.

Список изменений

Версия | Описание
3.0.11 | Был добавлен параметр limited.
3.0.16 | Была добавлена опция "filehits" для параметра cache_type.

Примеры

Пример #1 Пример использования apc_cache_info()

<?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
  • APCIterator::getTotalSize() - Получить общий размер кэша
  • APCIterator::getTotalHits() - Получить общее число попаданий в кэш
  • APCIterator::getTotalCount() - Получить общее количество


Заменить старое значение на новое

  • « apc_cache_info
  • apc_clear_cache »
  • PHP Manual
  • Функции APC
  • Заменить старое значение на новое

apc_cas

(PECL apc >= 3.1.1)

apc_cas — Заменить старое значение на новое

Описание

apc_cas ( string $key , int $old , int $new ) : bool

apc_cas() обновляет уже существующее целочисленное значение, если значение old совпадает с текущим, на новое значение, заданное в new.

Список параметров

key

Ключ значение, которого должно быть обновлено.

old

Старое значение (значение, хранящееся в настоящее время).

new

Новое значение после обновления.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apc_cas()

<?php
apc_store('foobar', 2);
echo '$foobar = 2', PHP_EOL;
echo '$foobar == 1 ? 2 : 1 = ', (apc_cas('foobar', 1, 2) ? 'ok' : 'fail'), PHP_EOL;
echo '$foobar == 2 ? 1 : 2 = ', (apc_cas('foobar', 2, 1) ? 'ok' : 'fail'), PHP_EOL;

echo '$foobar = ', apc_fetch('foobar'), PHP_EOL;

echo '$f__bar == 1 ? 2 : 1 = ', (apc_cas('f__bar', 1, 2) ? 'ok' : 'fail'), PHP_EOL;

apc_store('perfection', 'xyz');
echo '$perfection == 2 ? 1 : 2 = ', (apc_cas('perfection', 2, 1) ? 'ok' : 'epic fail'), PHP_EOL;

echo '$foobar = ', apc_fetch('foobar'), PHP_EOL;
?>

Результатом выполнения данного примера будет что-то подобное:

$foobar = 2
$foobar == 1 ? 2 : 1 = fail
$foobar == 2 ? 1 : 2 = ok
$foobar = 1
$f__bar == 1 ? 2 : 1 = fail
$perfection == 2 ? 1 : 2 = epic fail
$foobar = 1

Смотрите также

  • apc_dec() - Уменьшить сохраненное число
  • apc_store() - Кешировать переменную в хранилище данных


Очистить кеш APC

  • « apc_cas
  • apc_compile_file »
  • PHP Manual
  • Функции APC
  • Очистить кеш APC

apc_clear_cache

(PECL apc >= 2.0.0)

apc_clear_cache — Очистить кеш APC

Описание

apc_clear_cache ([ string $cache_type = "" ] ) : bool

Очищает пользовательский/системный кеш.

Список параметров

cache_type

Если cache_type равен "user", то будет очищен пользовательский кеш, в противном случае будет очищен системный кеш (закешированые файлы).

Возвращаемые значения

Всегда возвращает TRUE

Смотрите также

  • apc_cache_info() - Получить кешируемую информацию и метаданные из хранилища данных APC


Сохранить файл в кеше байт-кода, не обращая внимания на фильтры

  • « apc_clear_cache
  • apc_dec »
  • PHP Manual
  • Функции APC
  • Сохранить файл в кеше байт-кода, не обращая внимания на фильтры

apc_compile_file

(PECL apc >= 3.0.13)

apc_compile_file — Сохранить файл в кеше байт-кода, не обращая внимания на фильтры

Описание

apc_compile_file ( string $filename [, bool $atomic = TRUE ] ) : mixed

Сохранить файл в кеше байт-кода, не обращая внимания на фильтры.

Список параметров

filename

Полный или относительный путь к файлу PHP, который будет скомпилирован и сохранен в кеше байт-кода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • apc_bin_dumpfile() - Вывести двоичный дамп кешированных файлов и пользовательских переменных в файл
  • apc_bin_loadfile() - Загрузить бинарный дамп из файла в файловый/пользовательский кеш APC


Уменьшить сохраненное число

  • « apc_compile_file
  • apc_define_constants »
  • PHP Manual
  • Функции APC
  • Уменьшить сохраненное число

apc_dec

(PECL apc >= 3.1.1)

apc_dec — Уменьшить сохраненное число

Описание

apc_dec ( string $key [, int $step = 1 [, bool &$success ]] ) : int

Уменьшает сохраненное целое значение.

Список параметров

key

Ключ значения, которого должно быть уменьшено.

step

Шаг или значение для уменьшения.

success

Необязательный параметр, принимающий переменную по ссылке. Если задан, то в в эту переменную будет записано TRUE или FALSE в зависимости от успешности проведенной операции.

Возвращаемые значения

Возвращает текущее значение key, в случае успеха, или FALSE в случае возникновения ошибки

Примеры

Пример #1 Пример использования apc_dec()

<?php
echo "Давайте сделаем что-нибудь успешно", PHP_EOL;

apc_store('anumber', 42);

echo apc_fetch('anumber'), PHP_EOL;

echo apc_dec('anumber'), PHP_EOL;
echo apc_dec('anumber', 10), PHP_EOL;
echo apc_dec('anumber', 10, $success), PHP_EOL;

var_dump($success);

echo "Теперь давайте выполним неудачную попытку", PHP_EOL, PHP_EOL;

apc_store('astring', 'foo');

$ret = apc_dec('astring', 1, $fail);

var_dump($ret);
var_dump($fail);
?>

Результатом выполнения данного примера будет что-то подобное:

Давайте сделаем что-нибудь успешно
42
41
31
21
bool(true)

Теперь давайте выполним неудачную попытку
bool(false)
bool(false)

Смотрите также

  • apc_inc() - Увеличить сохраненное число


Определить набор констант для извлечения и массового определения

  • « apc_dec
  • apc_delete_file »
  • PHP Manual
  • Функции APC
  • Определить набор констант для извлечения и массового определения

apc_define_constants

(PECL apc >= 3.0.0)

apc_define_constants — Определить набор констант для извлечения и массового определения

Описание

apc_define_constants ( string $key , array $constants [, bool $case_sensitive = TRUE ] ) : bool

Общеизвестно, что функция define() медленная. Так как основным преимуществом APC является повышение производительности скриптов и приложений, предусмотрен механизм для упорядочения процесса массового определения констант. Тем не менее, эта функция не так работает хорошо, как ожидалось.

Для более эффективного решения, попробуйте расширение » hidef из PECL.

Замечание: Для удаления набора сохраненных констант (без полной очистки кеша), можно передать в параметр constants пустой массив. Это эффективно удалит сохраненные значения.

Список параметров

key

Параметр key задает имя набору сохраняемых констант. Этот же key используется для извлечения констант функцией apc_load_constants().

constants

Ассоциативный массив пар constant_name => value. constant_name должен следовать правилам именования нормальных констант. value должно приводиться к скалярному значению.

case_sensitive

По умолчанию имена констант регистрозависимы. То есть CONSTANT и Constant являются разными значениями. Если этот параметр равен FALSE константы будут объявлены как нечувствительные к регистру.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apc_define_constants()

<?php
$constants = array(
    'ONE'   => 1,
    'TWO'   => 2,
    'THREE' => 3,
);
apc_define_constants('numbers', $constants);
echo ONE, TWO, THREE;
?>

Результат выполнения данного примера:

123

Смотрите также

  • apc_load_constants() - Загрузить набор констант из кеша
  • define() - Определяет именованную константу
  • constant() - Возвращает значение константы
  • Или раздел Константы


Удалить файлы из кеша опкодов

  • « apc_define_constants
  • apc_delete »
  • PHP Manual
  • Функции APC
  • Удалить файлы из кеша опкодов

apc_delete_file

(PECL apc >= 3.1.1)

apc_delete_file — Удалить файлы из кеша опкодов

Описание

apc_delete_file ( mixed $keys ) : mixed

Удаляет заданные файлы из кеша.

Список параметров

keys

Файлы, которые должны быть удалены. Принимает строку, массив строк или объект класса APCIterator.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Или если keys является массивом, то возвращается пустой массив в случае успешного выполнения, или возвращается массив неудачных файлов.

Примеры

Пример #1 Пример использования apc_delete_file()

<?php
$filename = 'file.php';

if (apc_compile_file($filename)) {

    if (apc_delete_file($filename)) {
        echo "Успешно удален файл $filename из кеша APC.", PHP_EOL;
    }
}

if (apc_compile_file($filename)) {

    if ($good = apc_delete_file(array($filename, 'donotexist.php'))) {
        var_dump($good);
    }
}

$bad = apc_delete_file('donotexist.php');
var_dump($bad);
?>

Результатом выполнения данного примера будет что-то подобное:

Успешно удален файл file.php из кеша APC.
[Mon May 24 09:30:33 2010] [apc-warning] Could not stat file donotexist.php, unable to delete from cache. in /tmp/test.php on line 13.
array(1) {
  [0]=>
  string(14) "donotexist.php"
}
[Mon May 24 09:30:33 2010] [apc-warning] Could not stat file donotexist.php, unable to delete from cache. in /tmp/test.php on line 18.
bool(false)

Смотрите также

  • apc_clear_cache() - Очистить кеш APC
  • apc_delete() - Удалить сохраненную переменную из кеша
  • apc_exists() - Проверить, существует ли ключ APC


Удалить сохраненную переменную из кеша

  • « apc_delete_file
  • apc_exists »
  • PHP Manual
  • Функции APC
  • Удалить сохраненную переменную из кеша

apc_delete

(PECL apc >= 3.0.0)

apc_delete — Удалить сохраненную переменную из кеша

Описание

apc_delete ( string $key ) : mixed

Удаляет сохраненную переменную из кеша.

Список параметров

key

key используется для сохранения значения (apc_store()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apc_delete()

<?php
$bar = 'BAR';
apc_store('foo', $bar);
apc_delete('foo');
// это явно бесполезно в такой форме
?>

Смотрите также

  • apc_store() - Кешировать переменную в хранилище данных
  • apc_fetch() - Выбрать сохраненную переменную из кеша


Проверить, существует ли ключ APC

  • « apc_delete
  • apc_fetch »
  • PHP Manual
  • Функции APC
  • Проверить, существует ли ключ APC

apc_exists

(PECL apc >= 3.1.4)

apc_exists — Проверить, существует ли ключ APC

Описание

apc_exists ( mixed $keys ) : mixed

Проверить, существует ли один или несколько ключей APC

Список параметров

keys

Строка, или массив строк, которые содержат ключи.

Возвращаемые значения

Возвращает TRUE, если ключ существует, в противном случае FALSE или, если массив был передан в keys, тогда будет возвращен массив, который содержит все существующие ключи, или пустой массив, если ни одного ключа не существует.

Примеры

Пример #1 Пример использования apc_exists()

<?php
$fruit  = 'apple';
$veggie = 'carrot';

apc_store('foo', $fruit);
apc_store('bar', $veggie);

if (apc_exists('foo')) {
    echo "Foo существует: ";
    echo apc_fetch('foo');
} else {
    echo "Foo не существует";
}

echo PHP_EOL;
if (apc_exists('baz')) {
    echo "Baz существует.";
} else {
    echo "Baz не существует";
}

echo PHP_EOL;

$ret = apc_exists(array('foo', 'donotexist', 'bar'));
var_dump($ret);

?>

Результатом выполнения данного примера будет что-то подобное:

Foo существует: apple
Baz не существует
array(2) {
  ["foo"]=>
  bool(true)
  ["bar"]=>
  bool(true)
}

Смотрите также

  • apc_cache_info() - Получить кешируемую информацию и метаданные из хранилища данных APC
  • apc_fetch() - Выбрать сохраненную переменную из кеша


Выбрать сохраненную переменную из кеша

  • « apc_exists
  • apc_inc »
  • PHP Manual
  • Функции APC
  • Выбрать сохраненную переменную из кеша

apc_fetch

(PECL apc >= 3.0.0)

apc_fetch — Выбрать сохраненную переменную из кеша

Описание

apc_fetch ( mixed $key [, bool &$success ] ) : mixed

Выбирает сохраненную переменную из кеша.

Список параметров

key

key используемый для хранения значения (apc_store()). Если передан массив, то каждый элемент будет извлечён и возвращён.

success

Устанавливается в TRUE, в случае успеха, или FALSE, в случае неудачи.

Возвращаемые значения

Сохраненная переменная или массив переменных. В случае неудачи FALSE

Примеры

Пример #1 Пример использования apc_fetch()

<?php
$bar = 'BAR';
apc_store('foo', $bar);
var_dump(apc_fetch('foo'));
?>

Результат выполнения данного примера:

string(3) "BAR"

Список изменений

Версия | Описание
3.0.17 | Был добавлен параметр success.

Смотрите также

  • apc_store() - Кешировать переменную в хранилище данных
  • apc_delete() - Удалить сохраненную переменную из кеша
  • APCIterator


Увеличить сохраненное число

  • « apc_fetch
  • apc_load_constants »
  • PHP Manual
  • Функции APC
  • Увеличить сохраненное число

apc_inc

(PECL apc >= 3.1.1)

apc_inc — Увеличить сохраненное число

Описание

apc_inc ( string $key [, int $step = 1 [, bool &$success ]] ) : int

Увеличивает сохраненное число.

Список параметров

key

Ключ значения, которое должно быть увеличено.

step

Шаг, или значение для увеличения.

success

Необязательный параметр, принимающий переменную по ссылке. Если задан, то в в эту переменную будет записано TRUE или FALSE в зависимости от успешности проведенной операции.

Возвращаемые значения

Возвращает текущее значение key, в случае успеха или FALSE в случае возникновения ошибки

Примеры

Пример #1 Пример использования apc_inc()

<?php
echo "Давайте сделаем что-нибудь успешно", PHP_EOL;

apc_store('anumber', 42);

echo apc_fetch('anumber'), PHP_EOL;

echo apc_inc('anumber'), PHP_EOL;
echo apc_inc('anumber', 10), PHP_EOL;
echo apc_inc('anumber', 10, $success), PHP_EOL;

var_dump($success);

echo "Теперь давайте выполним неудачную попытку", PHP_EOL, PHP_EOL;

apc_store('astring', 'foo');

$ret = apc_inc('astring', 1, $fail);

var_dump($ret);
var_dump($fail);
?>

Результатом выполнения данного примера будет что-то подобное:

Давайте сделаем что-нибудь успешно
42
43
53
63
bool(true)
Теперь давайте выполним неудачную попытку

bool(false)
bool(false)

Смотрите также

  • apc_dec() - Уменьшить сохраненное число


Загрузить набор констант из кеша

  • « apc_inc
  • apc_sma_info »
  • PHP Manual
  • Функции APC
  • Загрузить набор констант из кеша

apc_load_constants

(PECL apc >= 3.0.0)

apc_load_constants — Загрузить набор констант из кеша

Описание

apc_load_constants ( string $key [, bool $case_sensitive = TRUE ] ) : bool

Загружает набор констант из кеша.

Список параметров

key

Имя набора констант (сохраненный apc_define_constants()), который должен быть получен.

case_sensitive

По умолчанию константы регистрозависимы. То есть CONSTANT и Constant представляют различные значения. Если этот параметр равен FALSE константы будут объявлены как нечувствительные к регистру.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apc_load_constants()

<?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() - Возвращает значение константы
  • Или раздел Константы


Получить информацию о выделении разделяемой памяти APC

  • « apc_load_constants
  • apc_store »
  • PHP Manual
  • Функции APC
  • Получить информацию о выделении разделяемой памяти APC

apc_sma_info

(PECL apc >= 2.0.0)

apc_sma_info — Получить информацию о выделении разделяемой памяти APC

Описание

apc_sma_info ([ bool $limited = FALSE ] ) : array

Получает информацию о выделении разделяемой памяти APC.

Список параметров

limited

Когда установлен FALSE (по умолчанию) apc_sma_info() вернет подробную информацию о каждом сегменте.

Возвращаемые значения

Массив данных выделения разделяемой памяти; FALSE в случае неудачи.

Примеры

Пример #1 Пример использования apc_sma_info()

<?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


Кешировать переменную в хранилище данных

  • « apc_sma_info
  • APCIterator »
  • PHP Manual
  • Функции APC
  • Кешировать переменную в хранилище данных

apc_store

(PECL apc >= 3.0.0)

apc_store — Кешировать переменную в хранилище данных

Описание

apc_store ( string $key , mixed $var [, int $ttl = 0 ] ) : bool
apc_store ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] ) : array

Кеширует переменную в хранилище данных.

Замечание: В отличие от многих других механизмов в PHP, переменные, сохраненные с использованием apc_add(), будут сохранены между запросами (пока значение не будет удалено из кеша).

Список параметров

key

Сохраняет переменную, используя это имя. Ключи (key) уникальны для кеша, так сохранение второго значения с тем же самым key, перезапишет исходное значение.

var

Переменная для хранения

ttl

Время жизни; хранить var в кеше ttl секунд. После истечения ttl, сохраненная переменная будет удалена из кеша (при следующем запросе). Если никакого значения ttl не указано (или если ttl равно 0), то значение будет хранится, пока оно не будет удалено из кеша вручную, или не сможет существовать в кеше (очистка, перезапуск и т.д.).

values

Имена в ключах, переменные в значениях.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Второй синтаксис возвращает массив с ошибочными ключами.

Примеры

Пример #1 Пример использования apc_store()

<?php
$bar = 'BAR';
apc_store('foo', $bar);
var_dump(apc_fetch('foo'));
?>

Результат выполнения данного примера:

string(3) "BAR"

Смотрите также

  • apc_add() - Кешировать переменную в хранилище данных
  • apc_fetch() - Выбрать сохраненную переменную из кеша
  • apc_delete() - Удалить сохраненную переменную из кеша


Класс APCIterator

(PECL apc >= 3.1.1)

Введение

Класс APCIterator облегчает выполнение итераций по большим кешам APC. Это полезно, поскольку позволяет выполнять итерации по большим кешам пошагово захватывая определенное число записей на экземпляр блокировки, таким образом, освобождая кеш от блокировки для других действий, а не удерживая весь кеш для захвата 100 (значение по умолчанию) записей. Кроме того, использование соответствия по регулярному выражению более эффективно, поскольку оно было перемещено на уровень C.

Обзор классов

APCIterator implements Iterator {
/* Методы */
public __construct ( string $cache [, mixed $search = NULL [, int $format = APC_ITER_ALL [, int $chunk_size = 100 [, int $list = APC_LIST_ACTIVE ]]]] )
public current ( void ) : mixed
public getTotalCount ( void ) : int
public getTotalHits ( void ) : int
public getTotalSize ( void ) : int
public key ( void ) : string
public next ( void ) : bool
public rewind ( void ) : void
public valid ( void ) : bool
}

Содержание

  • APCIterator::__construct — Создать объект итератора APCIterator
  • APCIterator::current — Получить текущий элемент
  • APCIterator::getTotalCount — Получить общее количество
  • APCIterator::getTotalHits — Получить общее число попаданий в кэш
  • APCIterator::getTotalSize — Получить общий размер кэша
  • APCIterator::key — Получить ключ итератора
  • APCIterator::next — Переместить указатель к следующему элементу
  • APCIterator::rewind — Перемотать итератор назад
  • APCIterator::valid — Проверить, является ли текущая позиция итератора допустимой


Создать объект итератора APCIterator

  • « APCIterator
  • APCIterator::current »
  • PHP Manual
  • APCIterator
  • Создать объект итератора APCIterator

APCIterator::__construct

(PECL apc >= 3.1.1)

APCIterator::__construct — Создать объект итератора APCIterator

Описание

public APCIterator::__construct ( string $cache [, mixed $search = NULL [, int $format = APC_ITER_ALL [, int $chunk_size = 100 [, int $list = APC_LIST_ACTIVE ]]]] )

Создаёт объект APCIterator.

Список параметров

cache

Тип кэша, который должен быть user или file.

search

PCRE регулярное выражение, которое соответствует именам ключей APC, строка для единственного регулярного выражения, или массив регулярных выражений. Или, дополнительно передайте NULL для пропуска поиска.

format

Нужный формат, как заданно одной или несколькими константами APC_ITER_*.

chunk_size

Размер блока. Должен быть больше 0. Значение по умолчанию равно 100.

list

Тип для перечисления. APC_LIST_ACTIVE или APC_LIST_DELETED.

Возвращаемые значения

Объект APCIterator в случае успеха, или NULL, в случае неудачи.

Примеры

Пример #1 Пример использования APCIterator::__construct()

<?php
foreach (new APCIterator('user', '/^counter\./') as $counter) {
    echo "$counter[key]: $counter[value]\n";
    apc_dec($counter['key'], $counter['value']);
}
?>

Смотрите также

  • apc_exists() - Проверить, существует ли ключ APC
  • apc_cache_info() - Получить кешируемую информацию и метаданные из хранилища данных APC


Получить текущий элемент

  • « APCIterator::__construct
  • APCIterator::getTotalCount »
  • PHP Manual
  • APCIterator
  • Получить текущий элемент

APCIterator::current

(PECL apc >= 3.1.1)

APCIterator::current — Получить текущий элемент

Описание

public APCIterator::current ( void ) : mixed

Получает текущий элемент из стека APCIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий элемент, в случае успеха, или FALSE если элементов больше нет или в случае неудачи.

Смотрите также

  • APCIterator::next() - Переместить указатель к следующему элементу
  • Iterator::current() - Возврат текущего элемента


Получить общее количество

  • « APCIterator::current
  • APCIterator::getTotalHits »
  • PHP Manual
  • APCIterator
  • Получить общее количество

APCIterator::getTotalCount

(PECL apc >= 3.1.1)

APCIterator::getTotalCount — Получить общее количество

Описание

public APCIterator::getTotalCount ( void ) : int

Получает общее количество.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Общее количество.

Смотрите также

  • APCIterator::getTotalHits() - Получить общее число попаданий в кэш
  • APCIterator::getTotalSize() - Получить общий размер кэша
  • apc_cache_info() - Получить кешируемую информацию и метаданные из хранилища данных APC


Получить общее число попаданий в кэш

  • « APCIterator::getTotalCount
  • APCIterator::getTotalSize »
  • PHP Manual
  • APCIterator
  • Получить общее число попаданий в кэш

APCIterator::getTotalHits

(PECL apc >= 3.1.1)

APCIterator::getTotalHits — Получить общее число попаданий в кэш

Описание

public APCIterator::getTotalHits ( void ) : int

Получает общее число попаданий в кэш.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Число попаданий, в случае успеха, или FALSE, в случае неудачи.

Смотрите также

  • APCIterator::getTotalCount() - Получить общее количество
  • APCIterator::getTotalSize() - Получить общий размер кэша
  • apc_cache_info() - Получить кешируемую информацию и метаданные из хранилища данных APC


Получить общий размер кэша

  • « APCIterator::getTotalHits
  • APCIterator::key »
  • PHP Manual
  • APCIterator
  • Получить общий размер кэша

APCIterator::getTotalSize

(PECL apc >= 3.1.1)

APCIterator::getTotalSize — Получить общий размер кэша

Описание

public APCIterator::getTotalSize ( void ) : int

Получает общий размер кэша.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Общий размер кэша.

Смотрите также

  • APCIterator::getTotalCount() - Получить общее количество
  • APCIterator::getTotalHits() - Получить общее число попаданий в кэш
  • apc_cache_info() - Получить кешируемую информацию и метаданные из хранилища данных APC


Получить ключ итератора

  • « APCIterator::getTotalSize
  • APCIterator::next »
  • PHP Manual
  • APCIterator
  • Получить ключ итератора

APCIterator::key

(PECL apc >= 3.1.1)

APCIterator::key — Получить ключ итератора

Описание

public APCIterator::key ( void ) : string

Получает текущий ключ итератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ключ, в случае успеха, или FALSE, в случае неудачи.

Смотрите также

  • APCIterator::current() - Получить текущий элемент
  • Iterator::key() - Возврат ключа текущего элемента


Переместить указатель к следующему элементу

  • « APCIterator::key
  • APCIterator::rewind »
  • PHP Manual
  • APCIterator
  • Переместить указатель к следующему элементу

APCIterator::next

(PECL apc >= 3.1.1)

APCIterator::next — Переместить указатель к следующему элементу

Описание

public APCIterator::next ( void ) : bool

Перемещает указатель итератора к следующему элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • APCIterator::current() - Получить текущий элемент
  • APCIterator::rewind() - Перемотать итератор назад
  • Iterator::next() - Переход к следующему элементу


Перемотать итератор назад

  • « APCIterator::next
  • APCIterator::valid »
  • PHP Manual
  • APCIterator
  • Перемотать итератор назад

APCIterator::rewind

(PECL apc >= 3.1.1)

APCIterator::rewind — Перемотать итератор назад

Описание

public APCIterator::rewind ( void ) : void

Перематывает итератор назад на первый элемент.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • APCIterator::next() - Переместить указатель к следующему элементу
  • Iterator::next() - Переход к следующему элементу


Проверить, является ли текущая позиция итератора допустимой

  • « APCIterator::rewind
  • APCu »
  • PHP Manual
  • APCIterator
  • Проверить, является ли текущая позиция итератора допустимой

APCIterator::valid

(PECL apc >= 3.1.1)

APCIterator::valid — Проверить, является ли текущая позиция итератора допустимой

Описание

public APCIterator::valid ( void ) : bool

Проверяет, является ли текущая позиция итератора допустимой.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если текущая позиция итератора является допустимой, в противном случае FALSE.

Смотрите также

  • APCIterator::current() - Получить текущий элемент
  • Iterator::valid() - Проверяет корректность текущей позиции


Пользовательский кеш APC

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции APCu
    • apcu_add — Добавить переменную в кеш
    • apcu_cache_info — Извлекает закешированную информацию из хранилища APCu
    • apcu_cas — Заменяет старое значение на новое
    • apcu_clear_cache — Очистить кеш APCu
    • apcu_dec — Уменьшить сохраненное число
    • apcu_delete — Удаляет сохраненное значение из кеша
    • apcu_entry — Автоматическое извлечение или создание записи в кеше
    • apcu_exists — Проверяет, существуют ли записи
    • apcu_fetch — Извлекает из кеша сохраненную переменную
    • apcu_inc — Увеличить сохраненное число
    • apcu_sma_info — Извлекает информацию о выделении разделяемой памяти APCu
    • apcu_store — Кеширует переменную
  • APCUIterator — Класс APCUIterator
    • APCUIterator::__construct — Создает объект итератор класса APCUIterator
    • APCUIterator::current — Получить текущий элемент
    • APCUIterator::getTotalCount — Получить общее количество записей
    • APCUIterator::getTotalHits — Получить общее количество попаданий в кеш
    • APCUIterator::getTotalSize — Общий размер кеша
    • APCUIterator::key — Получить ключ итератора
    • APCUIterator::next — Перемещает указатель на следующий элемент
    • APCUIterator::rewind — Перемотка итератора
    • APCUIterator::valid — Проверяет, корректна ли текущая позиция итератора


Введение

APCu - это APC без кеширования опкода.

Первая версия APCu имеет номер 4.0.0, так как она была клонирована из основной кодовой ветви APC.

PHP 7 поддерживается с версии APCu 5.0.0.

APCu может обеспечить режим совместимости, таким образом, что он может обеспечить замену для соответствующих частей APC.


Установка

Если необходима обратная совместимость с применимыми частями APC, APCu необходимо собирать с опцией --enable-apcu-bc.

Внимание

В PHP 7 существует отдельный модуль (» apc.so) для обеспечения обратной совместимости с APC.

В режиме обратной совместимости, APCu регистрирует применимые функции APC с помощью специальных, обратно совместимых, протопитов.

В случаях, когда функция APC принимает cache_type, он просто игнорируется и опускается в прототипе функции APCu.

Замечание: В Windows, APCu необходимо, чтобы был задана временная директория и веб-сервер имел право туда писать. Модуль проверяет переменные окружающей среды в таком порядке: TMP, TEMP, USERPROFILE. Если ни одна из них не задана, то модуль пытается работать с каталогом WINDOWS.

Замечание: Крайне подробная, в техническом плане, документация о реализации этого модуля доступна в » предоставленном разработчиком файле TECHNOTES.

Исходные коды APCu можно найти » тут.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Хотя настроек APCu по умолчанию вполне достаточно для большинства задач, но для серьезных проектов необходимо внимательно изучить следующие настройки.

При настройке APCu необходимо определиться, сколько пямяти предоставить в распоряжение APCu. Директива ini-файла, ответственная за эту настройку - apc.shm_size. Внимательно прочитайте нижеследующий раздел.

Как только сервер запущен, скрипт apc.php, поставляемый с этим модулем, должен быть скопирован в "docroot" и права на него должны позволять запустить его через браузер. Этот скрипт предоставляет детальную информацию по работе APCu. Если в PHP поддерживается GD, то этот скрипт также будет показывать полезные графики. Конечно же первое, что будет интересно, это то, кеширует ли APC что-нибудь. Если APC работает, то значение Cache full count (слева) будет показывать, сколько раз кеш был полностью заполнен и был вынужден принудительно удалить записи, к которым не обращались последние apc.ttl секунд. Чем меньше это число - тем лучше сконфигурирован кеш. Если это число постоянно растет, значит APCu приходится постоянно очищать старые записи и значит теряется весь смысл кеширования. Самый лучший способ уменьшить это число - это добавить APCu памяти. Если сделать этого нельзя, то надо перенастроить apc.filters, чтобы ограничить набор кешируемых скриптов.

Если APCu собран с поддержкой mmap (Memory Mapping), он будет использовать всего один сегмент памяти, если же наоборот, APC собран с поддержкой SHM (SysV Shared Memory), он будет использовать несколько сегментов. MMAP не имеет максимального ограничения, в отличие от SHM, который ограничивается /proc/sys/kernel/shmmax. Обычно рекомендуется использовать MMAP, потому что он гораздо быстрее выделяет память при перезагрузке веб-сервера, что сказывается на скорости запуска сервера.

Опции конфигурации APCu
Имя | По умолчанию | Место изменения | Список изменений
apc.enabled | "1" | PHP_INI_SYSTEM |
apc.shm_segments | "1" | PHP_INI_SYSTEM |
apc.shm_size | "32M" | PHP_INI_SYSTEM |
apc.entries_hint | "4096" | PHP_INI_SYSTEM |
apc.ttl | "0" | PHP_INI_SYSTEM |
apc.gc_ttl | "3600" | PHP_INI_SYSTEM |
apc.mmap_file_mask | NULL | PHP_INI_SYSTEM |
apc.slam_defense | "1" | PHP_INI_SYSTEM |
apc.enable_cli | "0" | PHP_INI_SYSTEM |
apc.use_request_time | "1" | PHP_INI_ALL |
apc.serializer | "default" | PHP_INI_SYSTEM |
apc.coredump_unmap | "0" | PHP_INI_SYSTEM |
apc.preload_path | NULL | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

apc.enabled boolean

Если установить apc.enabled равным 0, то APCu не будет запущен. Это полезно, когда APCu статически включен в PHP и нет других вариантов, для запрещения его использования. Если APC собран как DSO, можно просто закомментировать строку extension в php.ini.

apc.shm_segments integer

Количество сегментов разделяемой памяти выделенной под кеш. Если APC использовал всю доступную разделяемую память, а apc.shm_size таким большим, как позволяет система, увеличение этого параметра может помочь.

apc.shm_size string

Размер сегмента разделяемой памяти, заданный в короткой нотации (смотрите этот FAQ). По умолчанию, некоторые системы (включая большинство вариантов BSD) ограничивают это значение крайне малым значением.

apc.entries_hint integer

Это подсказка о количестве уникальных пользовательских переменных, которые надо кешировать. Установите равным нулю или вообще не указывайте, если не уверены.

apc.ttl integer

Количество секунд, которые запись может лежать в кеше без обращения к ней, прежде чем будет разрешено ее заменить на другую. Установка этого параметра равного нулю может привести к тому, что все место будет забито и новые записи не смогут попасть в кеш. В этом случае, если параметр равен 0, кеш будет полностью очищен. Если же ttl будет больше нуля, то APCu постарается очистить устаревшие записи.

apc.gc_ttl integer

Количество секунд, которые запись может находиться в списке сборщика мусора. Это значение обеспечивает безотказность в случае падения сервера в момент исполнения закешированного файла. Если исполняемый файл был изменен, память, выделенная под кеширование его старой версии, не будет возвращена до истечения этого времени. Установка в ноль отключает этот функционал.

apc.mmap_file_mask string

Если собран с поддержкой MMAP, с помощью опции --enable-mmap, этот параметр должен содержать файловую маску типа mktemp-style для передачи в модуль MMAP, чтобы определить, будет ли MMAP использовать файловую систему или разделяемую память. Для файловой системы задайте опцию как /tmp/apc.XXXXXX (ровно 6 X). Для использования shm_open/mmap в стиле POSIX, добавьте .shm в любом месте маски, например /apc.shm.XXXXXX Вы также можете установить его как /dev/zero для использования интерфейса ядра /dev/zero для анонимной памяти mmap. Если не задано, то будет принудительно использоваться анонимный mmap.

apc.slam_defense integer

На очень загруженных серверах, когда вы запускаете веб-сервер, сразу множество процессов будут пытаться закешировать один и тот же файл одновременно. Этой опцией задается вероятность, в процентах, того, что попытка одного конкретного процесса закешировать данные будет отклонена. Например, если apc.slam_defense установить равной 75, то это означает, что вероятность закешировать файл, которого в кеше нет, будет равна 25% и вероятность того, что в кешировании будет отказано равна 75%. Для запрета данного функционала установите этот параметр равным 0.

apc.enable_cli integer

Больше для тестирования и отладки. Эта настройка включает APCu для CLI версии PHP. При обычной работе, запускать APCu, который будет создавать, наполнять и уничтожать кеш при каждом запуске сценария в консоли, будет далеко не лучшей идеей. Но в целях тестирования и отладки, можно легко включить APCu для CLI.

apc.serializer string

Указывает APC использовать сторонний сериализатор.

apc.coredump_unmap boolean

Разрешает APC перехватывать сигналы, такие как SIGSEGV, который записывает coredump, когда подан. Когда эти сигналы будут получены, APC попытается освободить всю разделяемую память, чтобы не включать ее в coredump. Эта настройка может увеличить стабильность системы, когда критический сигнал был получен, а APC сконфигурирован на использование большого объема памяти.

Внимание

Эта возможность потенциально опасна. Освобождение сегментов разделяемой памяти при получении критического сигнала может привести к непредсказуемому поведению.

Замечание:

Хотя некоторые ядра предоставляют возможность игнорировать некоторые сегменты разделяемой памяти при записи core-файла, эти реализации могут также игнорировать важные сегменты памяти, такие как Apache scoreboard.

apc.preload_path string

Опционально. Задает путь, который используется APC для загрузки кешированных данных во время запуска.

apc.use_request_time bool

Использовать время старта запроса SAPI для TTL.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

APC_ITER_ALL (integer)
APC_ITER_ATIME (integer)
APC_ITER_CTIME (integer)
APC_ITER_DEVICE (integer)
APC_ITER_DTIME (integer)
APC_ITER_FILENAME (integer)
APC_ITER_INODE (integer)
APC_ITER_KEY (integer)
APC_ITER_MD5 (integer)
APC_ITER_MEM_SIZE (integer)
APC_ITER_MTIME (integer)
APC_ITER_NONE (integer)
APC_ITER_NUM_HITS (integer)
APC_ITER_REFCOUNT (integer)
APC_ITER_TTL (integer)
APC_ITER_TYPE (integer)
APC_ITER_VALUE (integer)
APC_LIST_ACTIVE (integer)
APC_LIST_DELETED (integer)


Функции APCu

Содержание

  • apcu_add — Добавить переменную в кеш
  • apcu_cache_info — Извлекает закешированную информацию из хранилища APCu
  • apcu_cas — Заменяет старое значение на новое
  • apcu_clear_cache — Очистить кеш APCu
  • apcu_dec — Уменьшить сохраненное число
  • apcu_delete — Удаляет сохраненное значение из кеша
  • apcu_entry — Автоматическое извлечение или создание записи в кеше
  • apcu_exists — Проверяет, существуют ли записи
  • apcu_fetch — Извлекает из кеша сохраненную переменную
  • apcu_inc — Увеличить сохраненное число
  • apcu_sma_info — Извлекает информацию о выделении разделяемой памяти APCu
  • apcu_store — Кеширует переменную


Добавить переменную в кеш

  • « Функции APCu
  • apcu_cache_info »
  • PHP Manual
  • Функции APCu
  • Добавить переменную в кеш

apcu_add

(PECL apcu >= 4.0.0)

apcu_add — Добавить переменную в кеш

Описание

apcu_add ( string $key , mixed $var [, int $ttl = 0 ] ) : bool
apcu_add ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] ) : array

Добавляет переменную в кеш, если ее там еще нет.

Замечание: В отличие от многих других механизмов PHP, переменные, сохраненные apcu_add(), сохраняются между запросами, пока их не удалят из кеша.

Список параметров

key

Имя, под которым будет сохранена переменная. Значение key является уникальным для кеша, так что попытка использовать apcu_add() для сохранения переменной с ключом, который уже существует, не перезапишет запись, а вернет FALSE. (Это единственное различие между apcu_add() и apcu_store().)

var

Переменная для сохранения

ttl

Время жизни; переменная var будет храниться в течение ttl секунд. Как только ttl секунд пройдут, переменная будет удалена из кеша (при следующем запросе). Если параметр ttl не задан (или ttl задан как 0), значение будет храниться пока не будет удалено явно, либо по технической причине (очистка кеша, перезапуск и т.д.)

values

Имена в ключах, переменные в значениях.

Возвращаемые значения

Возвращает TRUE, если удалось занести значение в кеш, в противном случае возвращает FALSE. Второй тип синтаксиса возвращает массив с ключами, по которым произошла ошибка.

Примеры

Пример #1 Пример использования apcu_add()

<?php
$bar = 'BAR';
apcu_add('foo', $bar);
var_dump(apcu_fetch('foo'));
echo "\n";
$bar = 'NEVER GETS SET';
apcu_add('foo', $bar);
var_dump(apcu_fetch('foo'));
echo "\n";
?>

Результат выполнения данного примера:

string(3) "BAR"
string(3) "BAR"

Смотрите также

  • apcu_store() - Кеширует переменную
  • apcu_fetch() - Извлекает из кеша сохраненную переменную
  • apcu_delete() - Удаляет сохраненное значение из кеша


Извлекает закешированную информацию из хранилища APCu

  • « apcu_add
  • apcu_cas »
  • PHP Manual
  • Функции APCu
  • Извлекает закешированную информацию из хранилища APCu

apcu_cache_info

(PECL apcu >= 4.0.0)

apcu_cache_info — Извлекает закешированную информацию из хранилища APCu

Описание

apcu_cache_info ([ bool $limited = FALSE ] ) : array

Извлекает закешированную информацию из хранилища APCu.

Список параметров

limited

Если limited задан как TRUE, возвращаемое значение не будет содержать индивидуальный список записей кеша. Это полезно при попытках оптимизировать вызовы для получения статистики.

Возвращаемые значения

Массив кешированных данных (и метаданные) или FALSE в случае возникновения ошибки

Замечание: apcu_cache_info() вызывает предупреждение, если невозможно получить данные кеша APC. Обычно это происходит, если APC не разрешен.

Список изменений

Версия | Описание
3.0.11 | Добавлен параметр limited.
3.0.16 | Добавлена опция "filehits" для параметра cache_type.

Примеры

Пример #1 Пример использования apcu_cache_info()

<?php
print_r(apcu_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/apcu_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 (...итерирует для каждого закешированного файла)
)

Смотрите также

  • Директивы конфигурации APCu
  • APCUIterator::getTotalSize() - Общий размер кеша
  • APCUIterator::getTotalHits() - Получить общее количество попаданий в кеш
  • APCUIterator::getTotalCount() - Получить общее количество записей


Заменяет старое значение на новое

  • « apcu_cache_info
  • apcu_clear_cache »
  • PHP Manual
  • Функции APCu
  • Заменяет старое значение на новое

apcu_cas

(PECL apcu >= 4.0.0)

apcu_cas — Заменяет старое значение на новое

Описание

apcu_cas ( string $key , int $old , int $new ) : bool

apcu_cas() заменяет значение уже существующего целочисленного значения, если оно равно old на new.

Список параметров

key

Ключ изменяемого значения.

old

Старое значение (которое в данный момент хранится в кеше).

new

Новое значение.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apcu_cas()

<?php
apcu_store('foobar', 2);
echo '$foobar = 2', PHP_EOL;
echo '$foobar == 1 ? 2 : 1 = ', (apcu_cas('foobar', 1, 2) ? 'ok' : 'fail'), PHP_EOL;
echo '$foobar == 2 ? 1 : 2 = ', (apcu_cas('foobar', 2, 1) ? 'ok' : 'fail'), PHP_EOL;

echo '$foobar = ', apcu_fetch('foobar'), PHP_EOL;

echo '$f__bar == 1 ? 2 : 1 = ', (apcu_cas('f__bar', 1, 2) ? 'ok' : 'fail'), PHP_EOL;

apcu_store('perfection', 'xyz');
echo '$perfection == 2 ? 1 : 2 = ', (apcu_cas('perfection', 2, 1) ? 'ok' : 'epic fail'), PHP_EOL;

echo '$foobar = ', apcu_fetch('foobar'), PHP_EOL;
?>

Результатом выполнения данного примера будет что-то подобное:

$foobar = 2
$foobar == 1 ? 2 : 1 = fail
$foobar == 2 ? 1 : 2 = ok
$foobar = 1
$f__bar == 1 ? 2 : 1 = fail
$perfection == 2 ? 1 : 2 = epic fail
$foobar = 1

Смотрите также

  • apcu_dec() - Уменьшить сохраненное число
  • apcu_store() - Кеширует переменную


Очистить кеш APCu

  • « apcu_cas
  • apcu_dec »
  • PHP Manual
  • Функции APCu
  • Очистить кеш APCu

apcu_clear_cache

(PECL apcu >= 4.0.0)

apcu_clear_cache — Очистить кеш APCu

Описание

apcu_clear_cache ( void ) : bool

Очищает кеш APCu.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Всегда возвращает TRUE

Смотрите также

  • apcu_cache_info() - Извлекает закешированную информацию из хранилища APCu


Уменьшить сохраненное число

  • « apcu_clear_cache
  • apcu_delete »
  • PHP Manual
  • Функции APCu
  • Уменьшить сохраненное число

apcu_dec

(PECL apcu >= 4.0.0)

apcu_dec — Уменьшить сохраненное число

Описание

apcu_dec ( string $key [, int $step = 1 [, bool &$success [, int $ttl = 0 ]]] ) : int

Уменьшает сохраненное число.

Список параметров

key

Ключ значения, которое надо уменьшить.

step

Величина, на которую необходимо уменьшить.

success

Необязательный параметр. Если задан, то в него будет записано логическое значение TRUE или FALSE в зависимости от успешности операции уменьшения.

ttl

TTL(время жизни), используемое если операция вставляет новое значение (а не уменьшает существующее).

Возвращаемые значения

Возвращает текущее значение key в случае успешного выполнения, или FALSE в случае возникновения ошибки

Список изменений

Версия | Описание
5.1.12 | Добавлен параметр ttl.

Примеры

Пример #1 Пример использования apcu_dec()

<?php
echo "Сделаем что-то без ошибки", PHP_EOL;

apcu_store('anumber', 42);

echo apcu_fetch('anumber'), PHP_EOL;

echo apcu_dec('anumber'), PHP_EOL;
echo apcu_dec('anumber', 10), PHP_EOL;
echo apcu_dec('anumber', 10, $success), PHP_EOL;

var_dump($success);

echo "А теперь с ошибкой", PHP_EOL, PHP_EOL;

apcu_store('astring', 'foo');

$ret = apcu_dec('astring', 1, $fail);

var_dump($ret);
var_dump($fail);
?>

Результатом выполнения данного примера будет что-то подобное:

Сделаем что-то без ошибки
42
41
31
21
bool(true)
А теперь с ошибкой

bool(false)
bool(false)

Смотрите также

  • apcu_inc() - Увеличить сохраненное число


Удаляет сохраненное значение из кеша

  • « apcu_dec
  • apcu_entry »
  • PHP Manual
  • Функции APCu
  • Удаляет сохраненное значение из кеша

apcu_delete

(PECL apcu >= 4.0.0)

apcu_delete — Удаляет сохраненное значение из кеша

Описание

apcu_delete ( mixed $key ) : mixed

Удаляет сохраненное значение из кеша.

Список параметров

key

key можно задать как строку, для удаления одного значения, либо как массив строк, для удаления нескольких значений, либо как объект APCUIterator.

Возвращаемые значения

Если key является массивом (array), возвращается индексированный массив (array) ключей. В противном случае возвращается TRUE в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apcu_delete()

<?php
$bar = 'BAR';
apcu_store('foo', $bar);

//Удаляем одну запись.
apcu_delete('foo');

// Удаляем несколько записей.
apcu_delete(['foo', 'bar', 'baz']);

// Используем итератор с регулярным выражением.
apcu_delete(new APCUIterator('#^myprefix_#'));
?>

Смотрите также

  • apcu_store() - Кеширует переменную
  • apcu_fetch() - Извлекает из кеша сохраненную переменную
  • apcu_clear_cache() - Очистить кеш APCu
  • APCUIterator


Автоматическое извлечение или создание записи в кеше

  • « apcu_delete
  • apcu_exists »
  • PHP Manual
  • Функции APCu
  • Автоматическое извлечение или создание записи в кеше

apcu_entry

(PECL apcu >= 5.1.0)

apcu_entry — Автоматическое извлечение или создание записи в кеше

Описание

apcu_entry ( string $key , callable $generator [, int $ttl = 0 ] ) : mixed

Автоматически пытается найти запись с заданным ключом key. Если не может, то вызывается генератор generator и ему передается ключ key как единственный аргумент. Сгенерированное значение заносится в кеш с указанным ttl и возвращается.

Замечание: Когда контроль передается apcu_entry(), производится эксклюзивная блокировка кеша, которая снимается после завершения работы apcu_entry(): это приводит к тому, что тело генератора generator помещается в критическую секцию, запрещая двум процессам запустить выполнение одинакового кода конкурентно. К тому же, это приводит к запрету конкурентного запуска любых других функций APCu, так как они будут выставлять ту же блокировку.

Внимание

Единственная функция APCu, которую можно безопасно вызывать в генераторе generator - это apcu_entry().

Список параметров

key

Идентификатор записи

generator

Callback-функция, принимающая один параметр key и возвращающая значение для кеширования.

ttl

Время жизни; переменная var будет храниться в течение ttl секунд. Как только ttl секунд пройдут, переменная будет удалена из кеша (при следующем запросе). Если параметр ttl не задан (или ttl задан как 0), значение будет храниться пока не будет удалено явно, либо по технической причине (очистка кеша, перезапуск и т.д.)

Возвращаемые значения

Возвращает закешированное значение

Примеры

Пример #1 Пример использования apcu_entry()

<?php
$config = apcu_entry("config", function($key) {
 return [
   "fruit" => apcu_entry("config.fruit", function($key){
     return [
       "apples",
       "pears"
     ];
   }),
   "people" => apcu_entry("config.people", function($key){
     return [
      "bob",
      "joe",
      "niki"
     ];
   })
 ];
});

var_dump($config);
?>

Результат выполнения данного примера:

array(2) {
  ["fruit"]=>
  array(2) {
    [0]=>
    string(6) "apples"
    [1]=>
    string(5) "pears"
  }
  ["people"]=>
  array(3) {
    [0]=>
    string(3) "bob"
    [1]=>
    string(3) "joe"
    [2]=>
    string(4) "niki"
  }
}

Смотрите также

  • apcu_store() - Кеширует переменную
  • apcu_fetch() - Извлекает из кеша сохраненную переменную
  • apcu_delete() - Удаляет сохраненное значение из кеша


Проверяет, существуют ли записи

  • « apcu_entry
  • apcu_fetch »
  • PHP Manual
  • Функции APCu
  • Проверяет, существуют ли записи

apcu_exists

(PECL apcu >= 4.0.0)

apcu_exists — Проверяет, существуют ли записи

Описание

apcu_exists ( mixed $keys ) : mixed

Проверяет, существуют ли записи.

Список параметров

keys

Строка или массив строк, содержащие ключи для проверки.

Возвращаемые значения

Возвращает TRUE, если ключ существует или FALSE, если нет. Если же был передан массив ключей, то вернется массив с существующими ключами, либо пустой массив, если ни одного ключа не существует.

Примеры

Пример #1 Пример использования apcu_exists()

<?php
$fruit  = 'apple';
$veggie = 'carrot';

apcu_store('foo', $fruit);
apcu_store('bar', $veggie);

if (apcu_exists('foo')) {
    echo "Foo с: ";
    echo apcu_fetch('foo');
} else {
    echo "Foo не существует";
}

echo PHP_EOL;
if (apcu_exists('baz')) {
    echo "Baz не существует.";
} else {
    echo "Baz не существует";
}

echo PHP_EOL;

$ret = apcu_exists(array('foo', 'donotexist', 'bar'));
var_dump($ret);

?>

Результатом выполнения данного примера будет что-то подобное:

Foo существует: apple
Baz не существует
array(2) {
  ["foo"]=>
  bool(true)
  ["bar"]=>
  bool(true)
}

Смотрите также

  • apcu_cache_info() - Извлекает закешированную информацию из хранилища APCu
  • apcu_fetch() - Извлекает из кеша сохраненную переменную


Извлекает из кеша сохраненную переменную

  • « apcu_exists
  • apcu_inc »
  • PHP Manual
  • Функции APCu
  • Извлекает из кеша сохраненную переменную

apcu_fetch

(PECL apcu >= 4.0.0)

apcu_fetch — Извлекает из кеша сохраненную переменную

Описание

apcu_fetch ( mixed $key [, bool &$success ] ) : mixed

Извлекает из кеша сохраненную переменную.

Список параметров

key

Ключ key, под которым запись была сохранена в кеш (с помощью apcu_store()). Если задан массив, то будет извлечен и возвращен каждый элемент.

success

Устанавливается в TRUE в случае успешного выполнения и FALSE в случае возникновения ошибки.

Возвращаемые значения

Сохраненная переменная либо массив; FALSE в случае возникновения ошибки

Примеры

Пример #1 Пример использования apcu_fetch()

<?php
$bar = 'BAR';
apcu_store('foo', $bar);
var_dump(apcu_fetch('foo'));
?>

Результат выполнения данного примера:

string(3) "BAR"

Список изменений

Версия | Описание
3.0.17 | Добавлен параметр success.

Смотрите также

  • apcu_store() - Кеширует переменную
  • apcu_delete() - Удаляет сохраненное значение из кеша
  • APCUIterator


Увеличить сохраненное число

  • « apcu_fetch
  • apcu_sma_info »
  • PHP Manual
  • Функции APCu
  • Увеличить сохраненное число

apcu_inc

(PECL apcu >= 4.0.0)

apcu_inc — Увеличить сохраненное число

Описание

apcu_inc ( string $key [, int $step = 1 [, bool &$success [, int $ttl = 0 ]]] ) : int

Увеличивает сохраненное число.

Список параметров

key

Ключ значения, которое надо увеличить.

step

Величина, на которую необходимо увеличить.

success

Необязательный параметр. Если задан, то в него будет записано логическое значение TRUE или FALSE в зависимости от успешности операции увеличения.

ttl

TTL(время жизни), используемое если операция вставляет новое значение (а не увеличивает существующее).

Возвращаемые значения

Возвращает текущее значение key в случае успешного выполнения, или FALSE в случае возникновения ошибки

Список изменений

Версия | Описание
5.1.12 | Добавлен параметр ttl.

Примеры

Пример #1 Пример использования apcu_inc()

<?php
echo "Сделаем что-то без ошибки", PHP_EOL;

apcu_store('anumber', 42);

echo apcu_fetch('anumber'), PHP_EOL;

echo apcu_inc('anumber'), PHP_EOL;
echo apcu_inc('anumber', 10), PHP_EOL;
echo apcu_inc('anumber', 10, $success), PHP_EOL;

var_dump($success);

echo "А теперь с ошибкой", PHP_EOL, PHP_EOL;

apcu_store('astring', 'foo');

$ret = apcu_inc('astring', 1, $fail);

var_dump($ret);
var_dump($fail);
?>

Результатом выполнения данного примера будет что-то подобное:

Сделаем что-то без ошибки
42
43
53
63
bool(true)
А теперь с ошибкой

bool(false)
bool(false)

Смотрите также

  • apcu_dec() - Уменьшить сохраненное число


Извлекает информацию о выделении разделяемой памяти APCu

  • « apcu_inc
  • apcu_store »
  • PHP Manual
  • Функции APCu
  • Извлекает информацию о выделении разделяемой памяти APCu

apcu_sma_info

(PECL apcu >= 4.0.0)

apcu_sma_info — Извлекает информацию о выделении разделяемой памяти APCu

Описание

apcu_sma_info ([ bool $limited = FALSE ] ) : array

Извлекает информацию о выделении разделяемой памяти APCu.

Список параметров

limited

Если установлен в FALSE (по умолчанию), apcu_sma_info() вернет детальную информацию о каждом сегменте.

Возвращаемые значения

Массив данных о выделенной разделяемой памяти; FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apcu_sma_info()

<?php
print_r(apcu_sma_info());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [num_seg] => 1
    [seg_size] => 31457280
    [avail_mem] => 31448408
    [block_lists] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [size] => 31448408
                            [offset] => 8864
                        )

                )

        )

)

Смотрите также

  • Директивы конфигурации APCu


Кеширует переменную

  • « apcu_sma_info
  • APCUIterator »
  • PHP Manual
  • Функции APCu
  • Кеширует переменную

apcu_store

(PECL apcu >= 4.0.0)

apcu_store — Кеширует переменную

Описание

apcu_store ( string $key , mixed $var [, int $ttl = 0 ] ) : bool
apcu_store ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] ) : array

Кеширует переменную.

Замечание: В отличие от многих других механизмов PHP, переменные, сохраненные apcu_store(), сохраняются между запросами, пока их не удалят из кеша.

Список параметров

key

Имя, под которым будет сохранена переменная. Значение key является уникальным для кеша, так что попытка сохранить запись с ключом key, который уже существует, приведет к ее перезаписи.

var

Переменная для сохранения

ttl

Время жизни; переменная var будет храниться в течение ttl секунд. Как только ttl секунд пройдут, переменная будет удалена из кеша (при следующем запросе). Если параметр ttl не задан (или ttl задан как 0), значение будет храниться пока не будет удалено явно, либо по технической причине (очистка кеша, перезапуск и т.д.)

values

Имена в ключах, переменные в значениях.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Второй тип синтаксиса возвращает массив с ключами, по которым произошла ошибка.

Примеры

Пример #1 Пример использования apcu_store()

<?php
$bar = 'BAR';
apcu_store('foo', $bar);
var_dump(apcu_fetch('foo'));
?>

Результат выполнения данного примера:

string(3) "BAR"

Смотрите также

  • apcu_add() - Добавить переменную в кеш
  • apcu_fetch() - Извлекает из кеша сохраненную переменную
  • apcu_delete() - Удаляет сохраненное значение из кеша


Класс APCUIterator

(PECL apcu >= 5.0.0)

Введение

Класс APCUIterator позволяет с легкостью итерировать большой APCu кеш. Это полезно, так как позволяет перебирать большой кеш по шагам, забирая заданное количество записей используя одну блокировку, позволяя другим активностям использовать блокировку, а не задерживать весь кеш для чтения ста (по умолчанию) записей. Также, использование регулярных выражений более эффективно, так как выполняется на уровне скомпилированного кода C.

Обзор классов

APCUIterator implements Iterator {
/* Методы */
public __construct ([ mixed $search = NULL [, int $format = APC_ITER_ALL [, int $chunk_size = 100 [, int $list = APC_LIST_ACTIVE ]]]] )
public current ( void ) : mixed
public getTotalCount ( void ) : int
public getTotalHits ( void ) : int
public getTotalSize ( void ) : int
public key ( void ) : string
public next ( void ) : bool
public rewind ( void ) : void
public valid ( void ) : bool
}

Содержание

  • APCUIterator::__construct — Создает объект итератор класса APCUIterator
  • APCUIterator::current — Получить текущий элемент
  • APCUIterator::getTotalCount — Получить общее количество записей
  • APCUIterator::getTotalHits — Получить общее количество попаданий в кеш
  • APCUIterator::getTotalSize — Общий размер кеша
  • APCUIterator::key — Получить ключ итератора
  • APCUIterator::next — Перемещает указатель на следующий элемент
  • APCUIterator::rewind — Перемотка итератора
  • APCUIterator::valid — Проверяет, корректна ли текущая позиция итератора


Создает объект итератор класса APCUIterator

  • « APCUIterator
  • APCUIterator::current »
  • PHP Manual
  • APCUIterator
  • Создает объект итератор класса APCUIterator

APCUIterator::__construct

(PECL apcu >= 5.0.0)

APCUIterator::__construct — Создает объект итератор класса APCUIterator

Описание

public APCUIterator::__construct ([ mixed $search = NULL [, int $format = APC_ITER_ALL [, int $chunk_size = 100 [, int $list = APC_LIST_ACTIVE ]]]] )

Создает объект APCUIterator.

Список параметров

search

Регулярное выражение PCRE, с которым будут сравниваться ключи APC, можно передать, как строку (тип string), так и массив строк (тип array). Также можно задать NULL, если поиск не нужен.

format

Формат, заданный одной из констант APC_ITER_*.

chunk_size

Размер блока данных. Должно быть больше 0. По умолчанию 100.

list

Тип списка. Задается константами APC_LIST_ACTIVE или APC_LIST_DELETED.

Возвращаемые значения

Объект APCUIterator в случае успешного выполнения или NULL в случае ошибки.

Примеры

Пример #1 Пример использования APCUIterator::__construct()

<?php
foreach (new APCUIterator('/^counter\./') as $counter) {
    echo "$counter[key]: $counter[value]\n";
    apc_dec($counter['key'], $counter['value']);
}
?>

Смотрите также

  • apcu_exists() - Проверяет, существуют ли записи
  • apcu_cache_info() - Извлекает закешированную информацию из хранилища APCu


Получить текущий элемент

  • « APCUIterator::__construct
  • APCUIterator::getTotalCount »
  • PHP Manual
  • APCUIterator
  • Получить текущий элемент

APCUIterator::current

(PECL apcu >= 5.0.0)

APCUIterator::current — Получить текущий элемент

Описание

public APCUIterator::current ( void ) : mixed

Получает текущий элемент стека APCUIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает текущий элемент либо FALSE, если элементов больше нет или произошла ошибка.

Смотрите также

  • APCUIterator::next() - Перемещает указатель на следующий элемент
  • Iterator::current() - Возврат текущего элемента


Получить общее количество записей

  • « APCUIterator::current
  • APCUIterator::getTotalHits »
  • PHP Manual
  • APCUIterator
  • Получить общее количество записей

APCUIterator::getTotalCount

(PECL apcu >= 5.0.0)

APCUIterator::getTotalCount — Получить общее количество записей

Описание

public APCUIterator::getTotalCount ( void ) : int

Получить общее количество записей.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Общее количество записей.

Смотрите также

  • APCUIterator::getTotalHits() - Получить общее количество попаданий в кеш
  • APCUIterator::getTotalSize() - Общий размер кеша
  • apcu_cache_info() - Извлекает закешированную информацию из хранилища APCu


Получить общее количество попаданий в кеш

  • « APCUIterator::getTotalCount
  • APCUIterator::getTotalSize »
  • PHP Manual
  • APCUIterator
  • Получить общее количество попаданий в кеш

APCUIterator::getTotalHits

(PECL apcu >= 5.0.0)

APCUIterator::getTotalHits — Получить общее количество попаданий в кеш

Описание

public APCUIterator::getTotalHits ( void ) : int

Получить общее количество попаданий в кеш.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество попаданий в случае успешного выполнения или FALSE в случае ошибки.

Смотрите также

  • APCUIterator::getTotalCount() - Получить общее количество записей
  • APCUIterator::getTotalSize() - Общий размер кеша
  • apcu_cache_info() - Извлекает закешированную информацию из хранилища APCu


Общий размер кеша

  • « APCUIterator::getTotalHits
  • APCUIterator::key »
  • PHP Manual
  • APCUIterator
  • Общий размер кеша

APCUIterator::getTotalSize

(PECL apcu >= 5.0.0)

APCUIterator::getTotalSize — Общий размер кеша

Описание

public APCUIterator::getTotalSize ( void ) : int

Возвращает общий размер кеша.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Общий размер кеша.

Смотрите также

  • APCUIterator::getTotalCount() - Получить общее количество записей
  • APCUIterator::getTotalHits() - Получить общее количество попаданий в кеш
  • apc_cache_info() - Получить кешируемую информацию и метаданные из хранилища данных APC


Получить ключ итератора

  • « APCUIterator::getTotalSize
  • APCUIterator::next »
  • PHP Manual
  • APCUIterator
  • Получить ключ итератора

APCUIterator::key

(PECL apcu >= 5.0.0)

APCUIterator::key — Получить ключ итератора

Описание

public APCUIterator::key ( void ) : string

Возвращает текущий ключ итератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает ключ или FALSE в случае ошибки.

Смотрите также

  • APCUIterator::current() - Получить текущий элемент
  • Iterator::key() - Возврат ключа текущего элемента


Перемещает указатель на следующий элемент

  • « APCUIterator::key
  • APCUIterator::rewind »
  • PHP Manual
  • APCUIterator
  • Перемещает указатель на следующий элемент

APCUIterator::next

(PECL apcu >= 5.0.0)

APCUIterator::next — Перемещает указатель на следующий элемент

Описание

public APCUIterator::next ( void ) : bool

Перемещает указатель на следующий элемент.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • APCUIterator::current() - Получить текущий элемент
  • APCUIterator::rewind() - Перемотка итератора
  • Iterator::next() - Переход к следующему элементу


Перемотка итератора

  • « APCUIterator::next
  • APCUIterator::valid »
  • PHP Manual
  • APCUIterator
  • Перемотка итератора

APCUIterator::rewind

(PECL apcu >= 5.0.0)

APCUIterator::rewind — Перемотка итератора

Описание

public APCUIterator::rewind ( void ) : void

Устанавливает указатель итератора на первый элемент.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • APCUIterator::next() - Перемещает указатель на следующий элемент
  • Iterator::next() - Переход к следующему элементу


Проверяет, корректна ли текущая позиция итератора

  • « APCUIterator::rewind
  • APD »
  • PHP Manual
  • APCUIterator
  • Проверяет, корректна ли текущая позиция итератора

APCUIterator::valid

(PECL apcu >= 5.0.0)

APCUIterator::valid — Проверяет, корректна ли текущая позиция итератора

Описание

public APCUIterator::valid ( void ) : bool

Проверяет, корректна ли текущая позиция итератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE или FALSE, в зависимости от того, корректна ли позиция.

Смотрите также

  • APCUIterator::current() - Получить текущий элемент
  • Iterator::valid() - Проверяет корректность текущей позиции


Расширенный отладчик PHP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Сборка на Win32
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Использование PHP-APD в скриптах
  • APD Функции
    • apd_breakpoint — Останавливает интерпретатор и ожидает символ возврата каретки (CR) из сокета
    • 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_trace_socket — Старт удаленной отладки
    • apd_set_session_trace — Старт отладки
    • apd_set_session — Изменяет, либо устанавливает текущий уровень отладки
    • override_function — Переопределение встроенных функций
    • rename_function — Переименовать функцию в глобальной таблице функций


Введение

APD - это расширенный отладчик PHP. Он был написан для обеспечения PHP возможностями профилирования и отладки, а также обеспечения возможности вывода полной трассировки стека. APD поддерживает интерактивную отладку, но по умолчанию записывает данные в файлы трассировки. Он также предлагает ведение журнала событий с возможностью варьирования уровней детализации (включая вызовы функций, переданных аргументов, таймингов, и т.д.) которые могут быть включены или отключены для конкретных скриптов.

Предостережение

APD является Zend модулем, изменяющим схему вызовов функции PHP дескриптора, и также может или не может быть совместим с другими модулями Zend (к примеру, с Zend Optimizer).


Установка и настройка

Содержание

  • Требования
  • Установка
  • Сборка на Win32
  • Настройка во время выполнения
  • Типы ресурсов


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/apd.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Добавьте следующие строки в INI-файл:

zend_extension = /absolute/path/to/apd.so
apd.dumpdir = /absolute/path/to/trace/directory
apd.statement_tracing = 0

В зависимости от сборки PHP, директива zend_extension может быть одной из следующих:

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)


Сборка на Win32

Для сборки APD под Windows вам нужна рабочая скомпилированная PHP среда, как описано на http://php.net/ - в основном это требует наличия Microsoft Visual C++, win32build.zip, bison/flex и грамотного специалиста. Также необходимо убедиться в том, что adp.dsp имеет DOS конвертацию конца строк, если конвертация конца строк Unix, то Microsoft Visual C++ сообщит об этом.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации APD
Имя | По умолчанию | Место изменения | Список изменений
apd.dumpdir | NULL | PHP_INI_ALL |
apd.statement_tracing | "0" | PHP_INI_ALL | Доступно начиная с apd 0.9.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

apd.dumpdir string

Задает каталог, в который APD записывает дамп-файлы профилей. Можно указать абсолютный путь или относительный.

Можно указать другой каталог в качестве аргумента apd_set_pprof_trace().

apd.statement_tracing boolean

Указывает будет или нет проводиться построковая трассировка. Включение этого параметра (если он равен 1) будет влиять на производительность приложения.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы APD
Константа | Значение | Описание
FUNCTION_TRACE (integer) | 1 |
ARGS_TRACE (integer) | 2 |
ASSIGNMENT_TRACE (integer) | 4 |
STATEMENT_TRACE (integer) | 8 |
MEMORY_TRACE (integer) | 16 |
TIMING_TRACE (integer) | 32 |
SUMMARY_TRACE (integer) | 64 |
ERROR_TRACE (integer) | 128 |
PROF_TRACE (integer) | 256 |
APD_VERSION (string) | пример: 1.0.2-dev |


  • « Предопределенные константы
  • Использование PHP-APD в скриптах »
  • PHP Manual
  • APD
  • Примеры

Примеры

Содержание

  • Использование PHP-APD в скриптах


Использование PHP-APD в скриптах

  1. В первой строке скрипта вызывается apd_set_pprof_trace()(), которая запускает трассировку:

    <?php
    apd_set_pprof_trace    ();
    ?>

    Эта строка может быть добавлена в любом месте скрипта, но если трассировка не инициирована в начала скрипта, то данные, которые могли бы привести вас к узким местам в потерях производительности, будут утеряны.

  2. Выходной дамп после запуска скрипта будет записан в apd.dumpdir/pprof_pid.ext.

    Подсказка

    Если используется CGI версия PHP, то необходимо добавить флаг '-e', включающий расширенную информацию для корректной работы APD. Например: php -e -f script.php

  3. Для отображения форматированных данных профиля, необходимо выполнить команду pprofp с сортировкой и другими выбранными параметрами отображения. Форматированный вывод будет выглядеть примерно так:

    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

    Опция -R, используемая этом примере сортирует профильную таблицу по количеству реального времени, которое скрипт потратил на выполнение каждой функции. Поле "cumm call" показывает сколько обращений было совершено к каждой функции, а "s/call" поле показывает сколько в среднем секунд было затрачено на каждое обращение.

  4. Для генерации стека вызовов в файл профиля KCacheGrind анализируемого приложения, требуется вызов команды pprof2calltree.


APD Функции

Контактная информация

Все замечания, исправления, дополнения и предложения можно писать на адрес электронной почты » apd@mail.communityconnect.com. Любая помощь приветствуется.

Содержание

  • apd_breakpoint — Останавливает интерпретатор и ожидает символ возврата каретки (CR) из сокета
  • 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_trace_socket — Старт удаленной отладки
  • apd_set_session_trace — Старт отладки
  • apd_set_session — Изменяет, либо устанавливает текущий уровень отладки
  • override_function — Переопределение встроенных функций
  • rename_function — Переименовать функцию в глобальной таблице функций


Останавливает интерпретатор и ожидает символ возврата каретки (CR) из сокета

  • « APD Функции
  • apd_callstack »
  • PHP Manual
  • APD Функции
  • Останавливает интерпретатор и ожидает символ возврата каретки (CR) из сокета

apd_breakpoint

(PECL apd >= 0.2)

apd_breakpoint — Останавливает интерпретатор и ожидает символ возврата каретки (CR) из сокета

Описание

apd_breakpoint ( int $debug_level ) : bool

Может использоваться для остановки ранее запущенного вами скрипта и ожидать ответ с сокета. Для продолжения программы необходимо отправить "Enter" (пустая строка) или ввести команду php на исполнение.

Список параметров

debug_level

Целое число, полученное сложением констант XXX_TRACE.

Не рекомендуется использовать константу MEMORY_TRACE. Это очень медленно и может давать неточные результаты. ASSIGNMENT_TRACE еще не реализовано.

Для включения всех видов отслеживания функций (TIMING, FUNCTIONS, ARGS SUMMARY (наподобие strace -c)) используйте значение 99

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Типичный сеанс с использованием tcplisten

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);


Возвращает текущий вызов стека в виде массива

  • « apd_breakpoint
  • apd_clunk »
  • PHP Manual
  • APD Функции
  • Возвращает текущий вызов стека в виде массива

apd_callstack

(PECL apd 0.2-0.4)

apd_callstack — Возвращает текущий вызов стека в виде массива

Описание

apd_callstack ( void ) : array

Возвращает текущий вызов стека в виде массива

Возвращаемые значения

Массив, содержащий текущий вызов стека.

Примеры

Пример #1 Пример использования apd_callstack()

<?php
print_r(apd_callstack());
?>


Выводит предупреждение и стек вызова

  • « apd_callstack
  • apd_continue »
  • PHP Manual
  • APD Функции
  • Выводит предупреждение и стек вызова

apd_clunk

(PECL apd 0.2-0.4)

apd_clunk — Выводит предупреждение и стек вызова

Описание

apd_clunk ( string $warning [, string $delimiter = "<BR />" ] ) : void

В поведении аналогичен Carp::cluck в PERL. Выводит предупреждение и стек вызова.

Список параметров

warning

Предупреждение для вывода.

delimiter

Разделитель. По умолчанию <BR />.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования apd_clunk()

<?php
apd_clunk("Какое-то предупреждение", "<br/>");
?>

Смотрите также

  • apd_croak() - Выбросить ошибку, стек вызова и выйти


Перезапуск интерпретатора

  • « apd_clunk
  • apd_croak »
  • PHP Manual
  • APD Функции
  • Перезапуск интерпретатора

apd_continue

(PECL apd >= 0.2)

apd_continue — Перезапуск интерпретатора

Описание

apd_continue ( int $debug_level ) : bool

Обычно посылается через сокет для перезапуска интерпретатора.

Список параметров

debug_level

Целое число, полученное сложением констант XXX_TRACE.

Не рекомендуется использовать константу MEMORY_TRACE. Это очень медленно и может давать неточные результаты. ASSIGNMENT_TRACE еще не реализовано.

Для включения всех видов отслеживания функций (TIMING, FUNCTIONS, ARGS SUMMARY (наподобие strace -c)) используйте значение 99

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apd_continue()

<?php
apd_continue(0);
?>


Выбросить ошибку, стек вызова и выйти

  • « apd_continue
  • apd_dump_function_table »
  • PHP Manual
  • APD Функции
  • Выбросить ошибку, стек вызова и выйти

apd_croak

(PECL apd 0.2-0.4)

apd_croak — Выбросить ошибку, стек вызова и выйти

Описание

apd_croak ( string $warning [, string $delimiter = "<BR />" ] ) : void

Ведет себя как оператор Perl Carp::croak. Выбрасывает ошибку, выводит стек вызовов и завершает работу.

Список параметров

warning

Текст предупреждения.

delimiter

Разделитель. По умолчанию <BR />.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования apd_croak()

<?php
apd_croak("Some Warning","<P>");
?>

Смотрите также

  • apd_clunk() - Выводит предупреждение и стек вызова


Выводит текущую таблицу функций

  • « apd_croak
  • apd_dump_persistent_resources »
  • PHP Manual
  • APD Функции
  • Выводит текущую таблицу функций

apd_dump_function_table

(Unknown)

apd_dump_function_table — Выводит текущую таблицу функций

Описание

apd_dump_function_table ( void ) : void

Выводит текущую таблицу функций.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования apd_dump_function_table()

<?php
apd_dump_function_table();
?>


Возвращает список всех постоянных ресурсов в виде массива

  • « apd_dump_function_table
  • apd_dump_regular_resources »
  • PHP Manual
  • APD Функции
  • Возвращает список всех постоянных ресурсов в виде массива

apd_dump_persistent_resources

(PECL apd 0.2-0.4)

apd_dump_persistent_resources — Возвращает список всех постоянных ресурсов в виде массива

Описание

apd_dump_persistent_resources ( void ) : array

Возвращает список всех постоянных ресурсов в виде массива.

Возвращаемые значения

Массив, содержащий список текущих постоянных ресурсов.

Примеры

Пример #1 Пример использования apd_dump_persistent_resources()

<?php
print_r(apd_dump_persistent_resources());
?>

Смотрите также

  • apd_dump_regular_resources() - Возвращает список всех обычных ресурсов в виде массива


Возвращает список всех обычных ресурсов в виде массива

  • « apd_dump_persistent_resources
  • apd_echo »
  • PHP Manual
  • APD Функции
  • Возвращает список всех обычных ресурсов в виде массива

apd_dump_regular_resources

(PECL apd 0.2-0.4)

apd_dump_regular_resources — Возвращает список всех обычных ресурсов в виде массива

Описание

apd_dump_regular_resources ( void ) : array

Возвращает список всех обычных ресурсов в виде массива.

Возвращаемые значения

Массив, содержащий список текущих обычных ресурсов.

Примеры

Пример #1 Пример использования apd_dump_regular_resources()

<?php
print_r(apd_dump_regular_resources());
?>

Смотрите также

  • apd_dump_persistent_resources() - Возвращает список всех постоянных ресурсов в виде массива


Вывод в отладочный сокет

  • « apd_dump_regular_resources
  • apd_get_active_symbols »
  • PHP Manual
  • APD Функции
  • Вывод в отладочный сокет

apd_echo

(PECL apd >= 0.2)

apd_echo — Вывод в отладочный сокет

Описание

apd_echo ( string $output ) : bool

Обычно посылается в сокет для запроса информации о работающем скрипте.

Список параметров

output

Отслеживаемая переменная.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apd_echo()

<?php
apd_echo($i);
?>


Получить массив с именами переменных в локальном скопе

  • « apd_echo
  • apd_set_pprof_trace »
  • PHP Manual
  • APD Функции
  • Получить массив с именами переменных в локальном скопе

apd_get_active_symbols

(PECL apd 0.2)

apd_get_active_symbols — Получить массив с именами переменных в локальном скопе

Описание

apd_get_active_symbols ( void ) : array

Возвращает массив с именами переменных в локальном скопе (не значения, а имена).

Возвращаемые значения

Многомерный массив со всеми переменными.

Примеры

Пример #1 Пример использования apd_get_active_symbols()

<?php
apd_echo(apd_get_active_symbols());
?>


Старт отладки

  • « apd_get_active_symbols
  • apd_set_session_trace_socket »
  • PHP Manual
  • APD Функции
  • Старт отладки

apd_set_pprof_trace

(PECL apd >= 0.2)

apd_set_pprof_trace — Старт отладки

Описание

apd_set_pprof_trace ([ string $dump_directory = ini_get("apd.dumpdir") [, string $fragment = "pprof" ]] ) : string

Старт отладки pprof_{process_id} в заданной директории.

Список параметров

dump_directory

Директория, в которой будет создан дамп профайла. Если не задано, то будет использовано значение параметра apd.dumpdir из php.ini.

fragment

Возвращаемые значения

Возвращает путь целевого файла.

Примеры

Пример #1 Пример использования apd_set_pprof_trace()

<?php
apd_set_pprof_trace();
?>

Смотрите также

  • apd_set_session_trace() - Старт отладки


Старт удаленной отладки

  • « apd_set_pprof_trace
  • apd_set_session_trace »
  • PHP Manual
  • APD Функции
  • Старт удаленной отладки

apd_set_session_trace_socket

(PECL apd >= 0.2)

apd_set_session_trace_socket — Старт удаленной отладки

Описание

apd_set_session_trace_socket ( string $tcp_server , int $socket_type , int $port , int $debug_level ) : bool

Соединяется с указанным tcp_server (например, tcplisten) и посылает отладочную информацию в сокет.

Список параметров

tcp_server

IP или доменный сокет Unix (как бы файл) TCP сервера.

socket_type

Может быть AF_UNIX для сокетов на базе файлов, или APD_AF_INET для стандартного tcp/ip.

port

Вы можете использовать любой порт, но рекомендуется использовать большие числа, так как чем ниже число, тем больше вероятность, что его уже кто-то использует.

debug_level

Целое число, полученное сложением констант XXX_TRACE.

Не рекомендуется использовать константу MEMORY_TRACE. Это очень медленно и может давать неточные результаты. ASSIGNMENT_TRACE еще не реализовано.

Для включения всех видов отслеживания функций (TIMING, FUNCTIONS, ARGS SUMMARY (наподобие strace -c)) используйте значение 99

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apd_set_session_trace_socket()

<?php
  apd_set_session_trace_socket("127.0.0.1",APD_AF_INET,7112,0);
?>


Старт отладки

  • « apd_set_session_trace_socket
  • apd_set_session »
  • PHP Manual
  • APD Функции
  • Старт отладки

apd_set_session_trace

(PECL apd 0.2-0.4)

apd_set_session_trace — Старт отладки

Описание

apd_set_session_trace ( int $debug_level [, string $dump_directory = ini_get("apd.dumpdir") ] ) : void

Старт отладки apd_dump_{process_id} в заданной директории.

Список параметров

debug_level

Целое число, полученное сложением констант XXX_TRACE.

Не рекомендуется использовать константу MEMORY_TRACE. Это очень медленно и может давать неточные результаты. ASSIGNMENT_TRACE еще не реализовано.

Для включения всех видов отслеживания функций (TIMING, FUNCTIONS, ARGS SUMMARY (наподобие strace -c)) используйте значение 99

dump_directory

Директория, в которой будет создан дамп профайла. Если не задано, то будет использовано значение параметра apd.dumpdir из php.ini.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования apd_set_session_trace()

<?php
apd_set_session_trace(99);
?>


Изменяет, либо устанавливает текущий уровень отладки

  • « apd_set_session_trace
  • override_function »
  • PHP Manual
  • APD Функции
  • Изменяет, либо устанавливает текущий уровень отладки

apd_set_session

(PECL apd 0.2-0.4)

apd_set_session — Изменяет, либо устанавливает текущий уровень отладки

Описание

apd_set_session ( int $debug_level ) : void

Вы можете изменить уровень отладки в разных частях своего приложения.

Список параметров

debug_level

Целое число, полученное сложением констант XXX_TRACE.

Не рекомендуется использовать константу MEMORY_TRACE. Это очень медленно и может давать неточные результаты. ASSIGNMENT_TRACE еще не реализовано.

Для включения всех видов отслеживания функций (TIMING, FUNCTIONS, ARGS SUMMARY (наподобие strace -c)) используйте значение 99

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования apd_set_session()

<?php
apd_set_session(9);
?>


Переопределение встроенных функций

  • « apd_set_session
  • rename_function »
  • PHP Manual
  • APD Функции
  • Переопределение встроенных функций

override_function

(PECL apd >= 0.2)

override_function — Переопределение встроенных функций

Описание

override_function ( string $function_name , string $function_args , string $function_code ) : bool

Переопределение встроенных функций путем замены их в таблице символов.

Список параметров

function_name

Функция для переопределения.

function_args

Аргументы функции в виде строки, разделенной запятыми.

Обычно вы хотите передать этот параметр, так же как и function_code, в виде убранной в одиночные кавычки строки с разделителями. Причина использования одинарных кавычек в том, что они предотвращают подстановку переменных, тогда как при использовании двойных кавычек вам потребуется экранировать переменые с помощью обратного слеша. Вот так - \$your_var.

function_code

Новый код функции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования override_function()

<?php
override_function('test', '$a,$b', 'echo "Тестируем"; return $a * $b;');
?>


Переименовать функцию в глобальной таблице функций

  • « override_function
  • bcompiler »
  • PHP Manual
  • APD Функции
  • Переименовать функцию в глобальной таблице функций

rename_function

(PECL apd >= 0.2)

rename_function — Переименовать функцию в глобальной таблице функций

Описание

rename_function ( string $original_name , string $new_name ) : bool

Переименование функции original_name в new_name в глобальной таблице функций. Полезно для временного переопределения встроенных функций.

Список параметров

original_name

Оригинальное имя функции.

new_name

Имя, на которое будет изменено original_name.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования rename_function()

<?php
rename_function('mysql_connect', 'debug_mysql_connect' );
?>


Компилятор байткода PHP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции bcompiler
    • bcompiler_load_exe — Прочитать и создать классы из скомпилированного bcompiler исполняемого файла
    • bcompiler_load — Прочитать и создать классы из сжатого bz файла
    • bcompiler_parse_class — Читает байткод класса и передает его в заданную callback-функцию
    • bcompiler_read — Прочитать и создать классы из файлового дескриптора
    • bcompiler_write_class — Записывает байткод класса в файл
    • bcompiler_write_constant — Записывает заданную константу в виде байткода в файл
    • bcompiler_write_exe_footer — Записывает позицию начала байткода и терминирующий символ в конец файла
    • bcompiler_write_file — Сохраняет скрипт php в виде байткода
    • bcompiler_write_footer — Записывает символ \x00, обозначающий конец скомпилированных данных
    • bcompiler_write_function — Сохраняет заданную функцию в виде байткода
    • bcompiler_write_functions_from_file — Сохраняет все функции, определенные в скрипте, в виде байткода
    • bcompiler_write_header — Записать заголовок файла bcompiler
    • bcompiler_write_included_filename — Сохраняет подключенный файл в виде байткода


Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Bcompiler был создан по следующим причинам:

  • Для кодирования всего скрипта PHP в проприетарное приложение
  • Для кодирования части кода PHP (некоторых функций/классов) для проприетарных приложений
  • Для производства приложений php-gtk, которые могут быть использованы непосредственно на клиентском рабочем месте, без необходимости установки на нем PHP.
  • Для изучения возможности создания конвертера из PHP в C
Первая из этих целей достигается с помощью функций bcompiler_write_header(), bcompiler_write_file() и bcompiler_write_footer(). Файлы с байткодом могут быть как обычными, так и сжатыми. Для использования сгенерированного байткода его достаточно подключить с помощью инструкций include и require.

Вторая достигается использованием функций
bcompiler_write_header(),
bcompiler_write_class(),
bcompiler_write_footer(),
bcompiler_read() и
bcompiler_load().
Файлы с байткодом могут быть как обычными, так и сжатыми.
bcompiler_load() читает сжатый алгоритмом bzip файл,
который может ужиматься до 1/3 от оригинального размера.

Для создания исполняемых (EXE) файлов, bcompiler должен использоваться с модифицированным файлом sapi, либо с версией PHP, скомпилированным как разделяемая библиотека. В подобном сценарии, bcompiler будет читать байткод из конца исполняемого файла.

bcompiler может повысить производительность до 30% только если используется с несжатым байткодом. Но помните, что несжатый байткод может достигать размера в 5 раз большего, чем оригинальный код. Использование сжатия байткода позволит сэкономить место на диске, но сильно просадит производительность. Также, bcompiler не производит никакой оптимизации байткода, но, может быть, в будущем...

Что касается защиты кода, то можно с уверенностью сказать, что восстановить из байткода в точности такой же код на PHP, какой был изначально - невозможно. Также в нем отсутствуют любые комментарии. Совершенно бесполезно использовать байткод для пересоздания и модификации класса. Но в любом случае помните, что файл с байткодом можно легко просмотреть любым текстовым редактором, так что хранить в нем, например, пароли - не самая лучшая идея.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/bcompiler.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Установка
  • Типы ресурсов »
  • PHP Manual
  • Установка и настройка
  • Настройка во время выполнения

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.


  • « Типы ресурсов
  • Функции bcompiler »
  • PHP Manual
  • bcompiler
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции bcompiler

Контактная информация

Если у вас замечания, багфиксы, предложения по улучшению или вы просто хотите помочь развивать bcompiler, просто напишите письмо по адресу » alan_k@php.net. Любая помощь приветствуется.

Содержание

  • bcompiler_load_exe — Прочитать и создать классы из скомпилированного bcompiler исполняемого файла
  • bcompiler_load — Прочитать и создать классы из сжатого bz файла
  • bcompiler_parse_class — Читает байткод класса и передает его в заданную callback-функцию
  • bcompiler_read — Прочитать и создать классы из файлового дескриптора
  • bcompiler_write_class — Записывает байткод класса в файл
  • bcompiler_write_constant — Записывает заданную константу в виде байткода в файл
  • bcompiler_write_exe_footer — Записывает позицию начала байткода и терминирующий символ в конец файла
  • bcompiler_write_file — Сохраняет скрипт php в виде байткода
  • bcompiler_write_footer — Записывает символ \x00, обозначающий конец скомпилированных данных
  • bcompiler_write_function — Сохраняет заданную функцию в виде байткода
  • bcompiler_write_functions_from_file — Сохраняет все функции, определенные в скрипте, в виде байткода
  • bcompiler_write_header — Записать заголовок файла bcompiler
  • bcompiler_write_included_filename — Сохраняет подключенный файл в виде байткода


Прочитать и создать классы из скомпилированного bcompiler исполняемого файла

  • « Функции bcompiler
  • bcompiler_load »
  • PHP Manual
  • Функции bcompiler
  • Прочитать и создать классы из скомпилированного bcompiler исполняемого файла

bcompiler_load_exe

(PECL bcompiler >= 0.4)

bcompiler_load_exe — Прочитать и создать классы из скомпилированного bcompiler исполняемого файла

Описание

bcompiler_load_exe ( string $filename ) : bool

Читает данные из скомпилированного исполняемого файла и создает классы из байткода.

Список параметров

filename

Строка, содержащая путь к файлу.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bcompiler_load_exe()

<?php

bcompiler_load_exe("/tmp/example.exe");
print_r(get_defined_classes());

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • bcompiler_load() - Прочитать и создать классы из сжатого bz файла


Прочитать и создать классы из сжатого bz файла

  • « bcompiler_load_exe
  • bcompiler_parse_class »
  • PHP Manual
  • Функции bcompiler
  • Прочитать и создать классы из сжатого bz файла

bcompiler_load

(PECL bcompiler >= 0.4)

bcompiler_load — Прочитать и создать классы из сжатого bz файла

Описание

bcompiler_load ( string $filename ) : bool

Читает данные из сжатого bz файла и создает классы из байткода.

Список параметров

filename

Строка, содержащая путь к файлу.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bcompiler_load()

<?php

bcompiler_load("/tmp/example");

print_r(get_defined_classes());

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Замечание:

Большая просьба, используйте операторы include или require для разбора байткода. Использование этой функции делает код плохо переносимым и в целом менее удобным.

Помните, что эта функция не запускает тело скрипта содержащееся в файле с байткодом.

Смотрите также

  • bcompiler_load_exe() - Прочитать и создать классы из скомпилированного bcompiler исполняемого файла


Читает байткод класса и передает его в заданную callback-функцию

  • « bcompiler_load
  • bcompiler_read »
  • PHP Manual
  • Функции bcompiler
  • Читает байткод класса и передает его в заданную callback-функцию

bcompiler_parse_class

(PECL bcompiler >= 0.4)

bcompiler_parse_class — Читает байткод класса и передает его в заданную callback-функцию

Описание

bcompiler_parse_class ( string $class , string $callback ) : bool

Читает байткод класса и передает его в заданную callback-функцию.

Список параметров

class

Строка с именем класса.

callback

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bcompiler_parse_class()

<?php

function readByteCodes($data) {
    print_r($data);
}

bcompiler_parse_class("DB","readByteCodes");

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Замечание:

Функция была удалена в bcompiler версии 0.5.


Прочитать и создать классы из файлового дескриптора

  • « bcompiler_parse_class
  • bcompiler_write_class »
  • PHP Manual
  • Функции bcompiler
  • Прочитать и создать классы из файлового дескриптора

bcompiler_read

(PECL bcompiler >= 0.4)

bcompiler_read — Прочитать и создать классы из файлового дескриптора

Описание

bcompiler_read ( resource $filehandle ) : bool

Читает данные из открытого файлового дескриптора и создает классы из байткода.

Список параметров

filehandle

Файловый дескриптор, полученный из fopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bcompiler_read()

<?php
$fh = fopen("/tmp/example","r");
bcompiler_read($fh);
fclose($fh);
print_r(get_defined_classes());

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Замечание:

Большая просьба, используйте операторы include или require для разбора байткода. Использование этой функции делает код плохо переносимым и в целом менее удобным.

Помните, что эта функция не запускает тело скрипта содержащееся в файле с байткодом.


Записывает байткод класса в файл

  • « bcompiler_read
  • bcompiler_write_constant »
  • PHP Manual
  • Функции bcompiler
  • Записывает байткод класса в файл

bcompiler_write_class

(PECL bcompiler >= 0.4)

bcompiler_write_class — Записывает байткод класса в файл

Описание

bcompiler_write_class ( resource $filehandle , string $className [, string $extends ] ) : bool

Читает байткод определенного класса PHP и записывает его в файл.

Список параметров

filehandle

Файловый дескриптор, возвращенный fopen().

className

Строка с именем класса.

extends

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bcompiler_write_class()

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
// DB_common необходимо записать перед DB_mysql, так как DB_mysql наследует DB_common.
bcompiler_write_class($fh,"DB_common");
bcompiler_write_class($fh,"DB_mysql");
bcompiler_write_footer($fh);
fclose($fh);

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Замечание:

Функция не производит проверки зависимостей, следовательно, вы сами должны следить за тем, чтобы классы были записаны в нужном порядке и не приводили к ошибке undefined class при их загрузке.

Смотрите также

  • bcompiler_write_header() - Записать заголовок файла bcompiler
  • bcompiler_write_footer() - Записывает символ \x00, обозначающий конец скомпилированных данных


Записывает заданную константу в виде байткода в файл

  • « bcompiler_write_class
  • bcompiler_write_exe_footer »
  • PHP Manual
  • Функции bcompiler
  • Записывает заданную константу в виде байткода в файл

bcompiler_write_constant

(PECL bcompiler >= 0.5)

bcompiler_write_constant — Записывает заданную константу в виде байткода в файл

Описание

bcompiler_write_constant ( resource $filehandle , string $constantName ) : bool

Читает байткод определенной константы PHP и записывает его в файл.

Список параметров

filehandle

Файловый дескриптор, возвращенный fopen().

constantName

Строка с именем константы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bcompiler_write_constant()

<?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);

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • bcompiler_write_header() - Записать заголовок файла bcompiler
  • bcompiler_write_footer() - Записывает символ \x00, обозначающий конец скомпилированных данных


Записывает позицию начала байткода и терминирующий символ в конец файла

  • « bcompiler_write_constant
  • bcompiler_write_file »
  • PHP Manual
  • Функции bcompiler
  • Записывает позицию начала байткода и терминирующий символ в конец файла

bcompiler_write_exe_footer

(PECL bcompiler >= 0.4)

bcompiler_write_exe_footer — Записывает позицию начала байткода и терминирующий символ в конец файла

Описание

bcompiler_write_exe_footer ( resource $filehandle , int $startpos ) : bool

EXE-файл (исполняемый) состоит из трех частей:

  • stub - исполняемый код, т.е. скомпилированная программа на C, который загружает интерпретатор PHP, модуль bcompiler, сохраненный байткод и инициирует вызов необходимых функций (например, main) или методов (например, main::main)
  • Байткод (несжатый только на данный момент)
  • "Подвал" EXE-файла

Для получения необходимого исполняемого кода вам надо скомпилировать встраиваемую версию phpe.c, расположенную в директории examples/embed в дереве исходных кодов bcompiler.

Список параметров

filehandle

Файловый дескриптор, полученный из fopen().

startpos

Позиция в файле, с которой начинается байткод. Может быть получена с помощью ftell().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bcompiler_write_exe_footer()

<?php

/* создаем файл (example.exe) */
$fh = fopen("example.exe", "w");

/* 1) записываем исполняемый код (phpe.exe) */
$size = filesize("phpe.exe");
$fr = fopen("phpe.exe", "r");
fwrite($fh, fread($fr, $size), $size);
$startpos = ftell($fh);

/* 2) записываем байткод */
bcompiler_write_header($fh);
bcompiler_write_class($fh, "myclass");
bcompiler_write_function($fh, "main");
bcompiler_write_footer($fh);

/* 3) записываем "подвал" EXE-файл */
bcompiler_write_exe_footer($fh, $startpos);

/* закрываем файл */
fclose($fh);
?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • bcompiler_write_header() - Записать заголовок файла bcompiler
  • bcompiler_write_class() - Записывает байткод класса в файл
  • bcompiler_write_footer() - Записывает символ \x00, обозначающий конец скомпилированных данных


Сохраняет скрипт php в виде байткода

  • « bcompiler_write_exe_footer
  • bcompiler_write_footer »
  • PHP Manual
  • Функции bcompiler
  • Сохраняет скрипт php в виде байткода

bcompiler_write_file

(PECL bcompiler >= 0.6)

bcompiler_write_file — Сохраняет скрипт php в виде байткода

Описание

bcompiler_write_file ( resource $filehandle , string $filename ) : bool

Функция компилирует указанный исходный файл PHP в байткод и записывает в открытый файловый дескриптор.

Список параметров

filehandle

Дескриптор файла, открытый с помощью fopen().

filename

Путь к файлу с исходными кодами.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bcompiler_write_file()

<?php
$fh = fopen("example.phb", "w");
bcompiler_write_header($fh);
bcompiler_write_file($fh, "example.php");
bcompiler_write_footer($fh);
fclose($fh);
/* в дальнейшем можно использовать как
include "example.php";
   так и
include "example.phb";

Результат будет абсолютно одинаковым
*/
?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • bcompiler_write_header() - Записать заголовок файла bcompiler
  • bcompiler_write_footer() - Записывает символ \x00, обозначающий конец скомпилированных данных


Записывает символ \x00, обозначающий конец скомпилированных данных

  • « bcompiler_write_file
  • bcompiler_write_function »
  • PHP Manual
  • Функции bcompiler
  • Записывает символ \x00, обозначающий конец скомпилированных данных

bcompiler_write_footer

(PECL bcompiler >= 0.4)

bcompiler_write_footer — Записывает символ \x00, обозначающий конец скомпилированных данных

Описание

bcompiler_write_footer ( resource $filehandle ) : bool

Записывает символ \x00, обозначающий конец скомпилированных данных.

Список параметров

filehandle

Файловый дескриптор, полученный из fopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bcompiler_write_footer()

<?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);

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • bcompiler_write_header() - Записать заголовок файла bcompiler


Сохраняет заданную функцию в виде байткода

  • « bcompiler_write_footer
  • bcompiler_write_functions_from_file »
  • PHP Manual
  • Функции bcompiler
  • Сохраняет заданную функцию в виде байткода

bcompiler_write_function

(PECL bcompiler >= 0.5)

bcompiler_write_function — Сохраняет заданную функцию в виде байткода

Описание

bcompiler_write_function ( resource $filehandle , string $functionName ) : bool

Читает байткод заданной функции из PHP и записывает его в файл. Порядок записи не важен (то есть, если одна функция использует другую, то записывать их можно в любом порядке и они будут работать без каких-либо проблем).

Список параметров

filehandle

Файловый дескриптор, полученный из fopen().

functionName

Строка с именем функции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bcompiler_write_function()

<?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);

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • bcompiler_write_header() - Записать заголовок файла bcompiler
  • bcompiler_write_footer() - Записывает символ \x00, обозначающий конец скомпилированных данных


Сохраняет все функции, определенные в скрипте, в виде байткода

  • « bcompiler_write_function
  • bcompiler_write_header »
  • PHP Manual
  • Функции bcompiler
  • Сохраняет все функции, определенные в скрипте, в виде байткода

bcompiler_write_functions_from_file

(PECL bcompiler >= 0.5)

bcompiler_write_functions_from_file — Сохраняет все функции, определенные в скрипте, в виде байткода

Описание

bcompiler_write_functions_from_file ( resource $filehandle , string $fileName ) : bool

Ищет в заданном файле PHP все функции и пишет соответствующий им байткод в открытый файловый дескриптор.

Список параметров

filehandle

Файловый дескриптор, полученный из fopen().

fileName

Имя исходного файла. Сперва необходимо подключить этот файл с помощью include или require.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bcompiler_write_functions_from_file()

<?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);

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • bcompiler_write_header() - Записать заголовок файла bcompiler
  • bcompiler_write_footer() - Записывает символ \x00, обозначающий конец скомпилированных данных


Записать заголовок файла bcompiler

  • « bcompiler_write_functions_from_file
  • bcompiler_write_included_filename »
  • PHP Manual
  • Функции bcompiler
  • Записать заголовок файла bcompiler

bcompiler_write_header

(PECL bcompiler >= 0.3)

bcompiler_write_header — Записать заголовок файла bcompiler

Описание

bcompiler_write_header ( resource $filehandle [, string $write_ver ] ) : bool

Записывает заголовок файла, создаваемого bcompiler.

Список параметров

filehandle

Файловый дескриптор, полученный из fopen().

write_ver

Используется для записи байткода в формате указанной версии bcompiler.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bcompiler_write_header()

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
bcompiler_write_footer($fh);
fclose($fh);

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • bcompiler_write_footer() - Записывает символ \x00, обозначающий конец скомпилированных данных


Сохраняет подключенный файл в виде байткода

  • « bcompiler_write_header
  • BLENC »
  • PHP Manual
  • Функции bcompiler
  • Сохраняет подключенный файл в виде байткода

bcompiler_write_included_filename

(PECL bcompiler >= 0.5)

bcompiler_write_included_filename — Сохраняет подключенный файл в виде байткода

Описание

bcompiler_write_included_filename ( resource $filehandle , string $filename ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Blenc - BLowfish ENCoder для PHP скриптов

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Blenc
    • blenc_encrypt — Шифрует PHP скрипт с помощью BLENC.


Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

BLENC это шифратор PHP кода, который:

  • Шифрует ваш код с помощью алгоритма blowfish.
  • Позволяет прозрачную дешифровку и исполнение PHP-кода ранее зашифрованного BLENC.

Модуль BLENC встроен в Zend Engine. Он позволяет прозрачно шифровать PHP-код алгоритмом blowfish и исполнять его. Он не преднозначен для сверхнадежной защиты (код можно дисассемблировать в байт-код с помощью таких пакетов как XDebug), однако он подходит для отпугивания большинства любителей покопаться в чужом коде и делает процесс реверс-инжинеринга сложным.

Для защиты своего кода, вы должны зашифровать его функцией blenc_encrypt(). После этого вы можете его включать таким образом:

<?php

/* PHP скрипт, зашифрованный с помощью BLENC */
$my_source_encoded = 'my_source_encoded.phpe';

include($my_source_encoded);
?>

Также BLENC поддерживает функционал ограничения срока жизни модуля. Так что, если вы хотите, что бы код через некоторое время стал нерабочим, вы должны собрать модуль с модифицированным заголовочным файлом. Для более подробной информации смотрите раздел, посвященный настройке модуля.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/blenc

Крайне рекомендуется собирать BLENC из исходных кодов, а не пользоваться 'pecl'. Это вам позволит:

  • Задать свой собственный ключ шифрования, используемый для создания распространяемых ключей. Ваш код будет более надежно защищен, даже если пользователям будет доступен ваш файл ключа на веб-сервере.
  • Указать срок жизни модуля BLENC. Это можно использовать, если вы хотите, что бы BLENC перестал расшифровывать зашифрованные файлы на целевой системе после истечения этого срока.
Все эти конфигурационные настройки хранятся в заголовочном файле: blenc_protect.h

Пожалуйста, изучите файл blenc_protect.h из исходников BLENC. Это даст вам возможность их изменять.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Blenc Опции настройки
Имя | По умолчанию | Место изменения | Список изменений
blenc.key_file | /usr/local/etc/blenckeys | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

blenc.key_file string

Задает путь к файлу, содержащему список ключей дешифровки. Этот файл должен быть доступен для чтения веб-серверу.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

BLENC_EXT_VERSION (string)


  • « Предопределенные константы
  • blenc_encrypt »
  • PHP Manual
  • BLENC
  • Функции Blenc

Функции Blenc

Содержание

  • blenc_encrypt — Шифрует PHP скрипт с помощью BLENC.


Шифрует PHP скрипт с помощью BLENC.

  • « Функции Blenc
  • Componere »
  • PHP Manual
  • Функции Blenc
  • Шифрует PHP скрипт с помощью BLENC.

blenc_encrypt

(PECL blenc >= 5)

blenc_encrypt — Шифрует PHP скрипт с помощью BLENC.

Описание

blenc_encrypt ( string $plaintext , string $encodedfile [, string $encryption_key ] ) : string

Шифрует plaintext и записывает его в encodedfile

Список параметров

plaintext

Исходный код для шифрования. Открывающие и закрывающие теги PHP не нужны.

encodedfile

Имя файла, в который BLENC сохранит зашифрованный скрипт.

encryption_key

Ключ, который BLENC будет использовать для шифрования. Если не задан, то BLENC создаст его самостоятельно.

Возвращаемые значения

BLECN возвращает распространяемый ключ, который необходимо сохранить в файл ключа. Путь к файлу ключа задается во время исполнения с помощью опции blenc.key_file

Примеры

Пример #1 Пример использования blenc_encrypt()

<?php

/* Читаем исходный скрипт PHP */
$source_code = file_get_contents("my_source_to_protect.php");

/* Шифруем */
$redistributable_key = blenc_encrypt($source_code, "my_source_encoded.php");

/* Выясняем, где расположен файл ключа */
$key_file = ini_get('blenc.key_file');

/* Сохраняем распространяемый ключ */
file_put_contents($key_file, $redistributable_key, FILE_APPEND);
?>


Componere

  • Введение
  • Установка и настройка
    • Требования
    • Установка
  • Componere\Abstract\Definition — The Componere\Abstract\Definition class
    • Componere\Abstract\Definition::addInterface — Add Interface
    • Componere\Abstract\Definition::addMethod — Add Method
    • Componere\Abstract\Definition::addTrait — Add Trait
    • Componere\Abstract\Definition::getReflector — Reflection
  • Componere\Definition — The Componere\Definition class
    • Componere\Definition::__construct — Definition Construction
    • Componere\Definition::addConstant — Add Constant
    • Componere\Definition::addProperty — Add Property
    • Componere\Definition::register — Registration
    • Componere\Definition::isRegistered — State Detection
    • Componere\Definition::getClosure — Get Closure
    • Componere\Definition::getClosures — Get Closures
  • Componere\Patch — The Componere\Patch class
    • Componere\Patch::__construct — Patch Construction
    • Componere\Patch::apply — Application
    • Componere\Patch::revert — Reversal
    • Componere\Patch::isApplied — State Detection
    • Componere\Patch::derive — Patch Derivation
    • Componere\Patch::getClosure — Get Closure
    • Componere\Patch::getClosures — Get Closures
  • Componere\Method — The Componere\Method class
    • Componere\Method::__construct — Method Construction
    • Componere\Method::setPrivate — Accessibility Modification
    • Componere\Method::setProtected — Accessibility Modification
    • Componere\Method::setStatic — Accessibility Modification
    • Componere\Method::getReflector — Reflection
  • Componere\Value — The Componere\Value class
    • Componere\Value::__construct — Value Construction
    • Componere\Value::setPrivate — Accessibility Modification
    • Componere\Value::setProtected — Accessibility Modification
    • Componere\Value::setStatic — Accessibility Modification
    • Componere\Value::isPrivate — Accessibility Detection
    • Componere\Value::isProtected — Accessibility Detection
    • Componere\Value::isStatic — Accessibility Detection
    • Componere\Value::hasDefault — Value Interaction
  • Componere Функции
    • Componere\cast — Casting
    • Componere\cast_by_ref — Casting


Введение

Componere (latin, English: compose) targets production environments and provides an API for composition of classes, monkey patching, and casting.

Composition:

Componere\Definition is used to define (or redefine) a class at runtime; The class can then be registered, and in the case of redefinition it replaces the original class for as long as the Componere\Definition exists.

public Componere\Definition::__construct ( string $name )
public Componere\Definition::__construct ( string $name , string $parent )
public Componere\Definition::__construct ( string $name , array $interfaces )
public Componere\Definition::__construct ( string $name , string $parent , array $interfaces )

Patching:

Componere\Patch is used to change the class of a specific instance of an object at runtime; Upon application the patch will remain applied for as long as the Componere\Patch exists, and can be reverted explicitly.

public Componere\Patch::__construct ( object $instance )
public Componere\Patch::__construct ( object $instance , array $interfaces )

Casting:

Componere\ casting functions can cast among user defined compatible types; Where compatible means Type is sub or super to the type of object.

Componere\cast ( Type $type , $object ) : Type
Componere\cast_by_ref ( Type $type , $object ) : Type


  • « Введение
  • Требования »
  • PHP Manual
  • Componere
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Reflection is required


  • « Требования
  • Componere\Abstract\Definition »
  • PHP Manual
  • Установка и настройка
  • Установка

Установка

Componere source and releases are available on » github


The Componere\Abstract\Definition class

(Componere 2 >= 2.1.0)

Введение

This final abstract represents a class entry, and should not be used by the programmer.

Обзор классов

final abstract Componere\Abstract\Definition {
/* Методы */
public addInterface ( string $interface ) : Definition
public addMethod ( string $name , \Componere\Method $method ) : Definition
public addTrait ( string $trait ) : Definition
public getReflector ( void ) : \ReflectionClass
}

Содержание

  • Componere\Abstract\Definition::addInterface — Add Interface
  • Componere\Abstract\Definition::addMethod — Add Method
  • Componere\Abstract\Definition::addTrait — Add Trait
  • Componere\Abstract\Definition::getReflector — Reflection


Add Interface

  • « Componere\Abstract\Definition
  • Componere\Abstract\Definition::addMethod »
  • PHP Manual
  • Componere\Abstract\Definition
  • Add Interface

Componere\Abstract\Definition::addInterface

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::addInterface — Add Interface

Описание

public Componere\Abstract\Definition::addInterface ( string $interface ) : Definition

Shall implement the given interface on the current definition

Список параметров

interface

The case insensitive name of an interface

Возвращаемые значения

The current Definition

Exceptions

Внимание

Shall throw RuntimeException if Definition was registered


Add Method

  • « Componere\Abstract\Definition::addInterface
  • Componere\Abstract\Definition::addTrait »
  • PHP Manual
  • Componere\Abstract\Definition
  • Add Method

Componere\Abstract\Definition::addMethod

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::addMethod — Add Method

Описание

public Componere\Abstract\Definition::addMethod ( string $name , \Componere\Method $method ) : Definition

Shall create or override a method on the current definition.

Список параметров

name

The case insensitive name for method

method

\Componere\Method not previously added to another Definition

Возвращаемые значения

The current Definition

Exceptions

Внимание

Shall throw RuntimeException if Definition was registered

Внимание

Shall throw RuntimeException if Method was added to another Definition


Add Trait

  • « Componere\Abstract\Definition::addMethod
  • Componere\Abstract\Definition::getReflector »
  • PHP Manual
  • Componere\Abstract\Definition
  • Add Trait

Componere\Abstract\Definition::addTrait

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::addTrait — Add Trait

Описание

public Componere\Abstract\Definition::addTrait ( string $trait ) : Definition

Shall use the given trait for the current definition

Список параметров

trait

The case insensitive name of a trait

Возвращаемые значения

The current Definition

Exceptions

Внимание

Shall throw RuntimeException if Definition was registered


Reflection

  • « Componere\Abstract\Definition::addTrait
  • Componere\Definition »
  • PHP Manual
  • Componere\Abstract\Definition
  • Reflection

Componere\Abstract\Definition::getReflector

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::getReflector — Reflection

Описание

public Componere\Abstract\Definition::getReflector ( void ) : \ReflectionClass

Shall create or return a ReflectionClass

Возвращаемые значения

A ReflectionClass for the current definition (cached)


The Componere\Definition class

(Componere 2 >= 2.1.0)

Введение

The Definition class allows the programmer to build and register a type at runtime.

Should a Definition replace an existing class, the existing class will be restored when the Definition is destroyed.

Обзор классов

final Componere\Definition extends Componere\Abstract\Definition {
/* Constructors */
public __construct ( string $name )
public __construct ( string $name , string $parent )
public __construct ( string $name , array $interfaces )
public __construct ( string $name , string $parent , array $interfaces )
/* Методы */
public addConstant ( string $name , \Componere\Value $value ) : Definition
public addProperty ( string $name , \Componere\Value $value ) : Definition
public register ( void ) : void
public isRegistered ( void ) : bool
public getClosure ( string $name ) : \Closure
public getClosures ( void ) : array
/* Наследуемые методы */
public Componere\Abstract\Definition::addInterface ( string $interface ) : Definition
public Componere\Abstract\Definition::addMethod ( string $name , \Componere\Method $method ) : Definition
public Componere\Abstract\Definition::addTrait ( string $trait ) : Definition
public Componere\Abstract\Definition::getReflector ( void ) : \ReflectionClass
}

Содержание

  • Componere\Definition::__construct — Definition Construction
  • Componere\Definition::addConstant — Add Constant
  • Componere\Definition::addProperty — Add Property
  • Componere\Definition::register — Registration
  • Componere\Definition::isRegistered — State Detection
  • Componere\Definition::getClosure — Get Closure
  • Componere\Definition::getClosures — Get Closures


Definition Construction

  • « Componere\Definition
  • Componere\Definition::addConstant »
  • PHP Manual
  • Componere\Definition
  • Definition Construction

Componere\Definition::__construct

(Componere 2 >= 2.1.0)

Componere\Definition::__construct — Definition Construction

Описание

public Componere\Definition::__construct ( string $name )
public Componere\Definition::__construct ( string $name , string $parent )
public Componere\Definition::__construct ( string $name , array $interfaces )
public Componere\Definition::__construct ( string $name , string $parent , array $interfaces )

Список параметров

name

A case insensitive class name

parent

A case insensitive class name

interfaces

An array of case insensitive class names

Exceptions

Внимание

Shall throw InvalidArgumentException if an attempt is made to replace an internal class

Внимание

Shall throw InvalidArgumentException if an attempt is made to replace an interface

Внимание

Shall throw InvalidArgumentException if an attempt is made to replace a trait

Внимание

Shall throw RuntimeException if a class in interfaces cannot be found

Внимание

Shall throw RuntimeException if an class in interfaces is not an interface


Add Constant

  • « Componere\Definition::__construct
  • Componere\Definition::addProperty »
  • PHP Manual
  • Componere\Definition
  • Add Constant

Componere\Definition::addConstant

(Componere 2 >= 2.1.0)

Componere\Definition::addConstant — Add Constant

Описание

public Componere\Definition::addConstant ( string $name , \Componere\Value $value ) : Definition

Shall declare a class constant on the current Definition

Список параметров

name

The case sensitive name for the constant

value

The Value for the constant, must not be undefined or static

Возвращаемые значения

The current Definition

Exceptions

Внимание

Shall throw RuntimeException if Definition was registered

Внимание

Shall throw RuntimeException if name is already declared as a constant

Внимание

Shall throw RuntimeException if value is static

Внимание

Shall throw RuntimeException if value is undefined


Add Property

  • « Componere\Definition::addConstant
  • Componere\Definition::register »
  • PHP Manual
  • Componere\Definition
  • Add Property

Componere\Definition::addProperty

(Componere 2 >= 2.1.0)

Componere\Definition::addProperty — Add Property

Описание

public Componere\Definition::addProperty ( string $name , \Componere\Value $value ) : Definition

Shall declare a class property on the current Definition

Список параметров

name

The case sensitive name for the property

value

The default Value for the property

Возвращаемые значения

The current Definition

Exceptions

Внимание

Shall throw RuntimeException if Definition was registered

Внимание

Shall throw RuntimeException if name is already declared as a property


Registration

  • « Componere\Definition::addProperty
  • Componere\Definition::isRegistered »
  • PHP Manual
  • Componere\Definition
  • Registration

Componere\Definition::register

(Componere 2 >= 2.1.0)

Componere\Definition::register — Registration

Описание

public Componere\Definition::register ( void ) : void

Shall register the current Definition

Exceptions

Внимание

Shall throw RuntimeException if Definition was registered


State Detection

  • « Componere\Definition::register
  • Componere\Definition::getClosure »
  • PHP Manual
  • Componere\Definition
  • State Detection

Componere\Definition::isRegistered

(Componere 2 >= 2.1.0)

Componere\Definition::isRegistered — State Detection

Описание

public Componere\Definition::isRegistered ( void ) : bool

Shall detect the registration state of this Definition

Возвращаемые значения

Shall return true if this Definition is registered


Get Closure

  • « Componere\Definition::isRegistered
  • Componere\Definition::getClosures »
  • PHP Manual
  • Componere\Definition
  • Get Closure

Componere\Definition::getClosure

(Componere 2 >= 2.1.0)

Componere\Definition::getClosure — Get Closure

Описание

public Componere\Definition::getClosure ( string $name ) : \Closure

Shall return a Closure for the method specified by name

Список параметров

name

The case insensitive name of the method

Возвращаемые значения

A Closure bound to the correct scope

Exceptions

Внимание

Shall throw RuntimeException if Definition was registered

Внимание

Shall throw RuntimeException if name could not be found


Get Closures

  • « Componere\Definition::getClosure
  • Componere\Patch »
  • PHP Manual
  • Componere\Definition
  • Get Closures

Componere\Definition::getClosures

(Componere 2 >= 2.1.0)

Componere\Definition::getClosures — Get Closures

Описание

public Componere\Definition::getClosures ( void ) : array

Shall return an array of Closures

Возвращаемые значения

Shall return all methods as an array of Closure objects bound to the correct scope

Exceptions

Внимание

Shall throw RuntimeException if Definition was registered


The Componere\Patch class

(Componere 2 >= 2.1.0)

Введение

The Patch class allows the programmer to change the type of an instance at runtime without registering a new Definition

When a Patch is destroyed it is reverted, so that instances that were patched during the lifetime of the Patch are restored to their formal type.

Обзор классов

final Componere\Patch extends Componere\Abstract\Definition {
/* Constructors */
public __construct ( object $instance )
public __construct ( object $instance , array $interfaces )
/* Методы */
public apply ( void ) : void
public revert ( void ) : void
public isApplied ( void ) : bool
public derive ( object $instance ) : Patch
public getClosure ( string $name ) : \Closure
public getClosures ( void ) : array
/* Наследуемые методы */
public Componere\Abstract\Definition::addInterface ( string $interface ) : Definition
public Componere\Abstract\Definition::addMethod ( string $name , \Componere\Method $method ) : Definition
public Componere\Abstract\Definition::addTrait ( string $trait ) : Definition
public Componere\Abstract\Definition::getReflector ( void ) : \ReflectionClass
}

Содержание

  • Componere\Patch::__construct — Patch Construction
  • Componere\Patch::apply — Application
  • Componere\Patch::revert — Reversal
  • Componere\Patch::isApplied — State Detection
  • Componere\Patch::derive — Patch Derivation
  • Componere\Patch::getClosure — Get Closure
  • Componere\Patch::getClosures — Get Closures


Patch Construction

  • « Componere\Patch
  • Componere\Patch::apply »
  • PHP Manual
  • Componere\Patch
  • Patch Construction

Componere\Patch::__construct

(Componere 2 >= 2.1.0)

Componere\Patch::__construct — Patch Construction

Описание

public Componere\Patch::__construct ( object $instance )
public Componere\Patch::__construct ( object $instance , array $interfaces )

Список параметров

instance

The target for this Patch

interfaces

A case insensitive array of class names

Exceptions

Внимание

Shall throw RuntimeException if a class in interfaces cannot be found

Внимание

Shall throw RuntimeException if an class in interfaces is not an interface


Application

  • « Componere\Patch::__construct
  • Componere\Patch::revert »
  • PHP Manual
  • Componere\Patch
  • Application

Componere\Patch::apply

(Componere 2 >= 2.1.0)

Componere\Patch::apply — Application

Описание

public Componere\Patch::apply ( void ) : void

Shall apply the current patch


Reversal

  • « Componere\Patch::apply
  • Componere\Patch::isApplied »
  • PHP Manual
  • Componere\Patch
  • Reversal

Componere\Patch::revert

(Componere 2 >= 2.1.0)

Componere\Patch::revert — Reversal

Описание

public Componere\Patch::revert ( void ) : void

Shall revert the current patch


State Detection

  • « Componere\Patch::revert
  • Componere\Patch::derive »
  • PHP Manual
  • Componere\Patch
  • State Detection

Componere\Patch::isApplied

(Componere 2 >= 2.1.0)

Componere\Patch::isApplied — State Detection

Описание

public Componere\Patch::isApplied ( void ) : bool


Patch Derivation

  • « Componere\Patch::isApplied
  • Componere\Patch::getClosure »
  • PHP Manual
  • Componere\Patch
  • Patch Derivation

Componere\Patch::derive

(Componere 2 >= 2.1.1)

Componere\Patch::derive — Patch Derivation

Описание

public Componere\Patch::derive ( object $instance ) : Patch

Shall derive a Patch for the given instance

Список параметров

instance

The target for the derived Patch

Возвращаемые значения

Patch for instance derived from the current Patch

Exceptions

Внимание

Shall throw InvalidArgumentException if instance is not compatible


Get Closure

  • « Componere\Patch::derive
  • Componere\Patch::getClosures »
  • PHP Manual
  • Componere\Patch
  • Get Closure

Componere\Patch::getClosure

(Componere 2 >= 2.1.0)

Componere\Patch::getClosure — Get Closure

Описание

public Componere\Patch::getClosure ( string $name ) : \Closure

Shall return a Closure for the method specified by name

Список параметров

name

The case insensitive name of the method

Возвращаемые значения

A Closure bound to the correct scope and object

Exceptions

Внимание

Shall throw RuntimeException if name could not be found


Get Closures

  • « Componere\Patch::getClosure
  • Componere\Method »
  • PHP Manual
  • Componere\Patch
  • Get Closures

Componere\Patch::getClosures

(Componere 2 >= 2.1.0)

Componere\Patch::getClosures — Get Closures

Описание

public Componere\Patch::getClosures ( void ) : array

Shall return an array of Closures

Возвращаемые значения

Shall return all methods as an array of Closure objects bound to the correct scope and object


The Componere\Method class

(Componere 2 >= 2.1.0)

Введение

A Method represents a function with modifiable accessibility flags

Обзор классов

final Componere\Method {
/* Constructor */
public __construct ( \Closure $closure )
/* Методы */
public setPrivate ( void ) : Method
public setProtected ( void ) : Method
public setStatic ( void ) : Method
public getReflector ( void ) : \ReflectionMethod
}

Содержание

  • Componere\Method::__construct — Method Construction
  • Componere\Method::setPrivate — Accessibility Modification
  • Componere\Method::setProtected — Accessibility Modification
  • Componere\Method::setStatic — Accessibility Modification
  • Componere\Method::getReflector — Reflection


Method Construction

  • « Componere\Method
  • Componere\Method::setPrivate »
  • PHP Manual
  • Componere\Method
  • Method Construction

Componere\Method::__construct

(Componere 2 >= 2.1.0)

Componere\Method::__construct — Method Construction

Описание

public Componere\Method::__construct ( \Closure $closure )

Список параметров

closure


Accessibility Modification

  • « Componere\Method::__construct
  • Componere\Method::setProtected »
  • PHP Manual
  • Componere\Method
  • Accessibility Modification

Componere\Method::setPrivate

(Componere 2 >= 2.1.0)

Componere\Method::setPrivate — Accessibility Modification

Описание

public Componere\Method::setPrivate ( void ) : Method

Возвращаемые значения

The current Method

Exceptions

Внимание

Shall throw RuntimeException if access level was previously set


Accessibility Modification

  • « Componere\Method::setPrivate
  • Componere\Method::setStatic »
  • PHP Manual
  • Componere\Method
  • Accessibility Modification

Componere\Method::setProtected

(Componere 2 >= 2.1.0)

Componere\Method::setProtected — Accessibility Modification

Описание

public Componere\Method::setProtected ( void ) : Method

Возвращаемые значения

The current Method

Exceptions

Внимание

Shall throw RuntimeException if access level was previously set


Accessibility Modification

  • « Componere\Method::setProtected
  • Componere\Method::getReflector »
  • PHP Manual
  • Componere\Method
  • Accessibility Modification

Componere\Method::setStatic

(Componere 2 >= 2.1.0)

Componere\Method::setStatic — Accessibility Modification

Описание

public Componere\Method::setStatic ( void ) : Method

Возвращаемые значения

The current Method


Reflection

  • « Componere\Method::setStatic
  • Componere\Value »
  • PHP Manual
  • Componere\Method
  • Reflection

Componere\Method::getReflector

(Componere 2 >= 2.1.0)

Componere\Method::getReflector — Reflection

Описание

public Componere\Method::getReflector ( void ) : \ReflectionMethod

Shall create or return a ReflectionMethod

Возвращаемые значения

A ReflectionMethod for the current method (cached)


The Componere\Value class

(Componere 2 >= 2.1.0)

Введение

A Value represents a PHP variable of all types, including undefined

Обзор классов

final Componere\Value {
/* Constructor */
public __construct ([ $default ] )
/* Методы */
public setPrivate ( void ) : Value
public setProtected ( void ) : Value
public setStatic ( void ) : Value
public isPrivate ( void ) : bool
public isProtected ( void ) : bool
public isStatic ( void ) : bool
public hasDefault ( void ) : bool
}

Содержание

  • Componere\Value::__construct — Value Construction
  • Componere\Value::setPrivate — Accessibility Modification
  • Componere\Value::setProtected — Accessibility Modification
  • Componere\Value::setStatic — Accessibility Modification
  • Componere\Value::isPrivate — Accessibility Detection
  • Componere\Value::isProtected — Accessibility Detection
  • Componere\Value::isStatic — Accessibility Detection
  • Componere\Value::hasDefault — Value Interaction


Value Construction

  • « Componere\Value
  • Componere\Value::setPrivate »
  • PHP Manual
  • Componere\Value
  • Value Construction

Componere\Value::__construct

(Componere 2 >= 2.1.0)

Componere\Value::__construct — Value Construction

Описание

public Componere\Value::__construct ([ $default ] )

Список параметров

default

Exceptions

Внимание

Shall throw InvalidArgumentException if default does not have a suitable value


Accessibility Modification

  • « Componere\Value::__construct
  • Componere\Value::setProtected »
  • PHP Manual
  • Componere\Value
  • Accessibility Modification

Componere\Value::setPrivate

(Componere 2 >= 2.1.0)

Componere\Value::setPrivate — Accessibility Modification

Описание

public Componere\Value::setPrivate ( void ) : Value

Возвращаемые значения

The current Value

Exceptions

Внимание

Shall throw RuntimeException if access level was previously set


Accessibility Modification

  • « Componere\Value::setPrivate
  • Componere\Value::setStatic »
  • PHP Manual
  • Componere\Value
  • Accessibility Modification

Componere\Value::setProtected

(Componere 2 >= 2.1.0)

Componere\Value::setProtected — Accessibility Modification

Описание

public Componere\Value::setProtected ( void ) : Value

Возвращаемые значения

The current Value

Exceptions

Внимание

Shall throw RuntimeException if access level was previously set


Accessibility Modification

  • « Componere\Value::setProtected
  • Componere\Value::isPrivate »
  • PHP Manual
  • Componere\Value
  • Accessibility Modification

Componere\Value::setStatic

(Componere 2 >= 2.1.0)

Componere\Value::setStatic — Accessibility Modification

Описание

public Componere\Value::setStatic ( void ) : Value

Возвращаемые значения

The current Value


Accessibility Detection

  • « Componere\Value::setStatic
  • Componere\Value::isProtected »
  • PHP Manual
  • Componere\Value
  • Accessibility Detection

Componere\Value::isPrivate

(Componere 2 >= 2.1.0)

Componere\Value::isPrivate — Accessibility Detection

Описание

public Componere\Value::isPrivate ( void ) : bool


Accessibility Detection

  • « Componere\Value::isPrivate
  • Componere\Value::isStatic »
  • PHP Manual
  • Componere\Value
  • Accessibility Detection

Componere\Value::isProtected

(Componere 2 >= 2.1.0)

Componere\Value::isProtected — Accessibility Detection

Описание

public Componere\Value::isProtected ( void ) : bool


Accessibility Detection

  • « Componere\Value::isProtected
  • Componere\Value::hasDefault »
  • PHP Manual
  • Componere\Value
  • Accessibility Detection

Componere\Value::isStatic

(Componere 2 >= 2.1.0)

Componere\Value::isStatic — Accessibility Detection

Описание

public Componere\Value::isStatic ( void ) : bool


Value Interaction

  • « Componere\Value::isStatic
  • Componere Функции »
  • PHP Manual
  • Componere\Value
  • Value Interaction

Componere\Value::hasDefault

(Componere 2 >= 2.1.0)

Componere\Value::hasDefault — Value Interaction

Описание

public Componere\Value::hasDefault ( void ) : bool


  • « Componere\Value::hasDefault
  • Componere\cast »
  • PHP Manual
  • Componere
  • Componere Функции

Componere Функции

Содержание

  • Componere\cast — Casting
  • Componere\cast_by_ref — Casting


Casting

  • « Componere Функции
  • Componere\cast_by_ref »
  • PHP Manual
  • Componere Функции
  • Casting

Componere\cast

(Componere 2 >= 2.1.2)

Componere\cast — Casting

Описание

Componere\cast ( Type $type , $object ) : Type

Список параметров

type

A user defined type

object

An object with a user defined type compatible with Type

Возвращаемые значения

An object of type Type, cast from object

Exceptions

Внимание

Shall throw InvalidArgumentException if the type of object is or is derived from an internal class

Внимание

Shall throw InvalidArgumentException if Type is an interface

Внимание

Shall throw InvalidArgumentException if Type is a trait

Внимание

Shall throw InvalidArgumentException if Type is an abstract

Внимание

Shall throw InvalidArgumentException if Type is not compatible with the type of object

Смотрите также

  • Componere\cast_by_ref


Casting

  • « Componere\cast
  • Обработка ошибок »
  • PHP Manual
  • Componere Функции
  • Casting

Componere\cast_by_ref

(Componere 2 >= 2.1.2)

Componere\cast_by_ref — Casting

Описание

Componere\cast_by_ref ( Type $type , $object ) : Type

Список параметров

type

A user defined type

object

An object with a user defined type compatible with Type

Возвращаемые значения

An object of type Type, cast from object, where members are references to object members

Exceptions

Внимание

Shall throw InvalidArgumentException if the type of object is or is derived from an internal class

Внимание

Shall throw InvalidArgumentException if Type is an interface

Внимание

Shall throw InvalidArgumentException if Type is a trait

Внимание

Shall throw InvalidArgumentException if Type is an abstract

Внимание

Shall throw InvalidArgumentException if Type is not compatible with the type of object

Смотрите также

  • Componere\cast


Обработка и логирование ошибок

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции обработки ошибок
    • debug_backtrace — Выводит стек вызовов функций в массив
    • debug_print_backtrace — Выводит стек вызовов функций
    • error_clear_last — Очистить самую последнюю ошибку
    • error_get_last — Получение информации о последней произошедшей ошибке
    • error_log — Отправляет сообщение об ошибке заданному обработчику ошибок
    • error_reporting — Задает, какие ошибки PHP попадут в отчет
    • restore_error_handler — Восстанавливает предыдущий обработчик ошибок
    • restore_exception_handler — Восстанавливает предыдущий обработчик исключений
    • set_error_handler — Задает пользовательский обработчик ошибок
    • set_exception_handler — Задает пользовательский обработчик исключений
    • trigger_error — Вызывает пользовательскую ошибку/предупреждение/уведомление
    • user_error — Псевдоним trigger_error


Введение

В данном разделе представлены функции, связанные с обработкой и логированием ошибок. Они дают возможность определять собственные правила обработки ошибок, а также изменять способы их логирования. Это позволяет пользователю настраивать обработку ошибок под собственные нужды.

С помощью функций логирования возможно напрямую отправлять сообщения об ошибках на другие машины, по электронной почте (или на смс-шлюзы), записывать в системные журналы и т.д. Это позволяет выборочно следить за наиболее важными частями приложений и сайтов.

Функции логирования позволяют настраивать тип и детализацию информации об ошибках того или иного типа от простых уведомлений до трассировки функций, вызвавших ошибку.


Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Настройки конфигурации протоколирования событий и ошибок
Имя | По умолчанию | Место изменения | Список изменений
error_reporting | NULL | PHP_INI_ALL |
display_errors | "1" | PHP_INI_ALL |
display_startup_errors | "0" | PHP_INI_ALL |
log_errors | "0" | PHP_INI_ALL |
log_errors_max_len | "1024" | PHP_INI_ALL |
ignore_repeated_errors | "0" | PHP_INI_ALL |
ignore_repeated_source | "0" | PHP_INI_ALL |
report_memleaks | "1" | PHP_INI_ALL |
track_errors | "0" | PHP_INI_ALL | Объявлено устаревшим в PHP 7.2.0.
html_errors | "1" | PHP_INI_ALL |
xmlrpc_errors | "0" | PHP_INI_SYSTEM |
xmlrpc_error_number | "0" | PHP_INI_ALL |
docref_root | "" | PHP_INI_ALL |
docref_ext | "" | PHP_INI_ALL |
error_prepend_string | NULL | PHP_INI_ALL |
error_append_string | NULL | PHP_INI_ALL |
error_log | NULL | PHP_INI_ALL |
syslog.facility | "LOG_USER" | PHP_INI_SYSTEM | Доступно, начиная с PHP 7.3.0.
syslog.filter | "no-ctrl" | PHP_INI_ALL | Доступно, начиная с PHP 7.3.0.
syslog.ident | "php" | PHP_INI_SYSTEM | Доступно, начиная с PHP 7.3.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

error_reporting integer

Задает уровень протоколирования ошибки. Параметр может быть либо числом, представляющим битовое поле, либо именованной константой. Соответствующие уровни и константы приведены в разделе Предопределенные константы, а также в php.ini. Для установки настройки во время выполнения используйте функцию error_reporting(). Смотрите также описание директивы display_errors.

В PHP 5.3 и новее, значение по умолчанию равно E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED. При этой настройке не отображаются уровни ошибок E_NOTICE, E_STRICT и E_DEPRECATED. Можно отображать их при разработке. До версии PHP 5.3.0, значением по умолчанию было E_ALL & ~E_NOTICE & ~E_STRICT.

Замечание:

Включение E_NOTICE во время разработки имеет ряд преимуществ. Для отладки: NOTICE сообщения могут предупреждать о возможных ошибках в коде. Например, использование непроинициализированных переменных вызовет подобное сообщение. Это очень полезно при поиске опечаток и экономит время при отладке. NOTICE сообщения также предупреждают о плохом стиле. Например, $arr[item] лучше писать так: $arr['item'] с тех пор, как PHP начал интерпретировать "item" как константу. Если это не константа, PHP принимает это выражение за строковый индекс элемента массива.

Замечание:

До PHP 5.4.0 E_STRICT не был включен в состав E_ALL, поэтому необходимо явно включать этот уровень ошибок в PHP < 5.4.0. Включение E_STRICT во время разработки также имеет свои преимущества. STRICT сообщения предлагают подсказки, которые могут помочь обеспечить лучшую функциональную и обратную совместимость вашего кода. Эти сообщения могут включать в себя такие вещи, как вызов нестатических методов статически, определение свойств в совместимого класса, в то время как они уже определены в используемом трейте, и до PHP 5.3 некоторые устаревшие возможности также будут выдавать ошибки уровня E_STRICT, такие как присвоение объектов по ссылке при создании экземпляра.

Замечание: PHP-константы за пределами PHP

Использование PHP-констант за пределами PHP, например в файле httpd.conf, не имеет смысла, так как в таких случаях требуются целочисленные значения (integer). Более того, с течением времени будут добавляться новые уровни ошибок, а максимальное значение константы E_ALL соответственно будет расти. Поэтому в месте, где предполагается указать E_ALL, лучше задать большое целое число, чтобы перекрыть все возможные битовые поля. Таким числом может быть, например, 2147483647 (оно включит все возможные ошибки, не только E_ALL).

display_errors string

Эта настройка определяет, требуется ли выводить ошибки на экран вместе с остальным выводом, либо ошибки должны быть скрыты от пользователя.

Значение "stderr" посылает ошибки в поток stderr вместо stdout. Значение доступно в версии PHP 5.2.4. В ранних версиях эта директива имела тип boolean.

Замечание:

Этот функционал предназначен только для разработки и не должен использоваться в готовых производственных системах (например, системах, имеющих доступ в интернет).

Замечание:

Несмотря на то, что display_errors может быть установлена во время выполнения (функцией ini_set()), это ни на что не повлияет, если в скрипте есть фатальные ошибки. Это обусловлено тем, что ожидаемые действия программы во время выполнения не получат управления (не будут выполняться).

display_startup_errors boolean

Даже если display_errors включена, ошибки, возникающие во время запуска PHP, не будут отображаться. Настойчиво рекомендуем включать директиву display_startup_errors только для отладки.

log_errors boolean

Отвечает за выбор журнала, в котором будут сохраняться сообщения об ошибках. Это может быть журнал сервера или error_log. Применимость этой настройки зависит от конкретного сервера.

Замечание:

Настоятельно рекомендуем при работе на готовых работающих web сайтах протоколировать ошибки там, где они отображаются.

log_errors_max_len integer

Задание максимальной длины log_errors в байтах. В error_log добавляется информация об источнике. Значение по умолчанию 1024. Установка значения в 0 позволяет снять ограничение на длину log_errors. Это ограничение распространяется на записываемые в журнал ошибки, на отображаемые ошибки, а также на $php_errormsg, но не на явно вызываемые функции, такие как error_log().

Если используется integer, значение измеряется байтами. Вы также можете использовать сокращенную запись, которая описана в этом разделе FAQ.
ignore_repeated_errors boolean

Не заносить в журнал повторяющиеся ошибки. Ошибка считается повторяющейся, если происходит в том же файле и в той же строке, и если настройка ignore_repeated_source выключена.

ignore_repeated_source boolean

Игнорировать источник ошибок при пропуске повторяющихся сообщений. Когда эта настройка включена, повторяющиеся сообщения об ошибках не будут заноситься в журнал вне зависимости от того, в каких файлах и строках они происходят.

report_memleaks boolean

Если настройка включена (по умолчанию), будет формироваться отчет об утечках памяти, зафиксированных менеджером памяти Zend. На POSIX платформах этот отчет будет направляться в поток stderr. На Windows платформах он будет посылаться в отладчик функцией OutputDebugString(), просмотреть отчет в этом случае можно с помощью утилит, вроде » DbgView. Эта настройка имеет смысл в сборках, предназначенных для отладки. При этом E_WARNING должна быть включена в список error_reporting.

track_errors boolean

Если включена, последняя произошедшая ошибка будет первой в переменной $php_errormsg.

html_errors boolean

Если разрешена, сообщения об ошибках будут включать теги HTML. Фомат для HTML-ошибок производит нажимаемые ссылки, ведущие на описание ошибки, либо функии, в которой она произошла. За такие ссылки ответственны docref_root и docref_ext.

Если запрещена, то ошибки будут выдаваться простым текстом, без форматирования.

xmlrpc_errors boolean

Если включена, то нормальное оповещение об ошибках отключается и, вместо него, ошибки выводятся в формате XML-RPC.

xmlrpc_error_number integer

Используется в качестве значения XML-RPC элемента faultCode.

docref_root string

Новый формат ошибок содержит ссылку на страницу с описанием ошибки или функции, вызвавшей эту ошибку. Можно разместить копию описаний ошибок и функций локально и задать ini директиве значение URL этой копии. Если, например, локальная копия описаний доступна по адресу "/manual/", достаточно прописать docref_root=/manual/. Дополнительно, необходимо задать значение директиве docref_ext, отвечающей за соответствие расширений файлов файлам описаний вашей локальной копии, docref_ext=.html. Также возможно использование внешних ссылок. Например, docref_root=http://manual/en/ или docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F"

В большинстве случаев вам потребуется, чтобы значение docref_root оканчивалось слешем "/". Тем не менее, бывают случаи, когда это не требуется (смотрите выше, второй пример).

Замечание:

Этот функционал предназначен только для разработки, так как он облегчает поиск описаний функций и ошибок. Не используйте его в готовых производственных системах (например, имеющих доступ в интернет).

docref_ext string

См. docref_root.

Замечание:

Значение docref_ext должно начинаться с точки ".".

error_prepend_string string

Строка, которая будет выводиться непосредственно перед сообщением об ошибке.

error_append_string string

Строка, которая будет выводиться после сообщения об ошибке.

error_log string

Имя файла, в который будут добавляться сообщения об ошибках. Файл должен быть открыт для записи пользователем веб-сервера. Если используется специальное значение syslog, то сообщения будут посылаться в системный журнал. На Unix-системах это syslog(3), на Windows NT - журнал событий. См. также: syslog(). Если директива не задана, ошибки будут направляться в SAPI журналы. Например, это могут быть журналы ошибок Apache или поток stderr командной строки CLI. Смотрите также функцию error_log().

syslog.facility string

Указывает, какой тип программы регистрирует сообщение. Действует только в том случае, если опция error_log установлена в "syslog".

syslog.filter string

Указывает тип фильтра для фильтрации регистрируемых сообщений. Разрешенные символы передаются без изменений; все остальные записываются в шестнадцатеричном представлении с префиксом \x. Существует три поддерживаемых типа фильтров:

  • all - все символы
  • no-ctrl - все символы, кроме управляющих
  • ascii - все печатные символы ASCII и NL
Действует только в том случае, если опция error_log установлена в "syslog".

syslog.ident string

Определяет строку идентификатора, которая добавляется к каждому сообщению. Действует только в том случае, если опция error_log установлена в "syslog".


Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

Замечание: Данные имена констант можно использовать в файле php.ini но не вне PHP, как например в файле httpd.conf, где вместо них необходимо использовать значения их битовых масок.

Ошибки и протоколирование
Значение | Константа | Описание | Примечание
1 | E_ERROR (integer) | Фатальные ошибки времени выполнения. Это неустранимые средствами самого скрипта ошибки, такие как ошибка распределения памяти и т.п. Выполнение скрипта в таком случае прекращается. |
2 | E_WARNING (integer) | Предупреждения времени выполнения (не фатальные ошибки). Выполнение скрипта в таком случае не прекращается. |
4 | E_PARSE (integer) | Ошибки на этапе компиляции. Должны генерироваться только парсером. |
8 | E_NOTICE (integer) | Уведомления времени выполнения. Указывают на то, что во время выполнения скрипта произошло что-то, что может указывать на ошибку, хотя это может происходить и при обычном выполнении программы. |
16 | E_CORE_ERROR (integer) | Фатальные ошибки, которые происходят во время запуска РНР. Такие ошибки схожи с E_ERROR, за исключением того, что они генерируются ядром PHP. |
32 | E_CORE_WARNING (integer) | Предупреждения (не фатальные ошибки), которые происходят во время начального запуска РНР. Такие предупреждения схожи с E_WARNING, за исключением того, что они генерируются ядром PHP. |
64 | E_COMPILE_ERROR (integer) | Фатальные ошибки на этапе компиляции. Такие ошибки схожи с E_ERROR, за исключением того, что они генерируются скриптовым движком Zend. |
128 | E_COMPILE_WARNING (integer) | Предупреждения на этапе компиляции (не фатальные ошибки). Такие предупреждения схожи с E_WARNING, за исключением того, что они генерируются скриптовым движком Zend. |
256 | E_USER_ERROR (integer) | Сообщения об ошибках, сгенерированные пользователем. Такие ошибки схожи с E_ERROR, за исключением того, что они генерируются в коде скрипта средствами функции PHP trigger_error(). |
512 | E_USER_WARNING (integer) | Предупреждения, сгенерированные пользователем. Такие предупреждения схожи с E_WARNING, за исключением того, что они генерируются в коде скрипта средствами функции PHP trigger_error(). |
1024 | E_USER_NOTICE (integer) | Уведомления, сгенерированные пользователем. Такие уведомления схожи с E_NOTICE, за исключением того, что они генерируются в коде скрипта, средствами функции PHP trigger_error(). |
2048 | E_STRICT (integer) | Включаются для того, чтобы PHP предлагал изменения в коде, которые обеспечат лучшее взаимодействие и совместимость кода. | Не включены в E_ALL вплоть до PHP 5.4.0
4096 | E_RECOVERABLE_ERROR (integer) | Фатальные ошибки с возможностью обработки. Такие ошибки указывают, что, вероятно, возникла опасная ситуация, но при этом, скриптовый движок остается в стабильном состоянии. Если такая ошибка не обрабатывается функцией, определенной пользователем для обработки ошибок (см. set_error_handler()), выполнение приложения прерывается, как происходит при ошибках E_ERROR. | Начиная с PHP 5.2.0
8192 | E_DEPRECATED (integer) | Уведомления времени выполнения об использовании устаревших конструкций. Включаются для того, чтобы получать предупреждения о коде, который не будет работать в следующих версиях PHP. | Начиная с PHP 5.3.0
16384 | E_USER_DEPRECATED (integer) | Уведомления времени выполнения об использовании устаревших конструкций, сгенерированные пользователем. Такие уведомления схожи с E_DEPRECATED за исключением того, что они генерируются в коде скрипта, с помощью функции PHP trigger_error(). | Начиная с PHP 5.3.0
32767 | E_ALL (integer) | Все поддерживаемые ошибки и предупреждения, за исключением ошибок E_STRICT до PHP 5.4.0. | 32767 в PHP 5.4.x, 30719 в PHP 5.3.x, 6143 в PHP 5.2.x, 2047 ранее

Представленные выше значения (как числовые, так и символьные) используются для задания битовой маски, определяющей об ошибках какого типа будет даваться отчет. Вы можете использовать побитовые операторы, чтобы совмещать эти значения для указания определенных типов ошибок. Стоит отметить, что в php.ini допустимы только следующие операторы: '|', '~', '!', '^' и '&'.


Примеры

Ниже представлен пример использования возможностей обработки ошибок в PHP. Мы определим функцию для обработки ошибок, которая будет записывать информацию об ошибках в файл (используя формат XML), а в случае возникновения критических ошибок, будем дополнительно отправлять разработчикам письмо с уведомлением.

Пример #1 Обработка ошибок в скрипте

<?php
// мы будем делать нашу собственную обработку ошибок
error_reporting(0);

// пользовательская функция для обработки ошибок
function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
    // временная метка возникновения ошибки
    $dt = date("Y-m-d H:i:s (T)");

    // определим ассоциативный массив соответствия всех
    // констант уровней ошибок с их названиями, хотя
    // в действительности мы будем рассматривать только
    // следующие типы: E_WARNING, E_NOTICE, E_USER_ERROR,
    // E_USER_WARNING и E_USER_NOTICE
    $errortype = array (
                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_STRICT             => 'Уведомление времени выполнения',
                E_RECOVERABLE_ERROR  => 'Отлавливаемая фатальная ошибка'
                );
    // определим набор типов ошибок, для которых будет сохранен стек переменных
    $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, "Переменные") . "</vartrace>\n";
    }
    $err .= "</errorentry>\n\n";

    // для тестирования
    // echo $err;

    // сохраняем в журнал ошибок, а если произошла пользовательская критическая ошибка, то отправляем письмо
    error_log($err, 3, "/usr/local/php4/error.log");
    if ($errno == E_USER_ERROR) {
        mail("phpdev@example.com", "Пользовательская критическая ошибка", $err);
    }
}

function distance($vect1, $vect2)
{
    if (!is_array($vect1) || !is_array($vect2)) {
        trigger_error("Некорректные параметры функции, ожидаются массивы в качестве параметров", E_USER_ERROR);
        return NULL;
    }

    if (count($vect1) != count($vect2)) {
        trigger_error("Векторы должны быть одинаковой размерности", 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("Координата $i в векторе 1 не является числом, будет использовать ноль",
                            E_USER_WARNING);
            $c1 = 0.0;
        }
        if (!is_numeric($c2)) {
            trigger_error("Координата $i в векторе 2 не является числом, будет использовать ноль",
                            E_USER_WARNING);
            $c2 = 0.0;
        }
        $d += $c2*$c2 - $c1*$c1;
    }
    return sqrt($d);
}

$old_error_handler = set_error_handler("userErrorHandler");

// использование неопределенной константы, будет генерироваться предупреждение
$t = I_AM_NOT_DEFINED;

// определим несколько "векторов"
$a = array(2, 3, "foo");
$b = array(5.5, 4.3, -1.6);
$c = array(1, -3);

// генерируем пользовательскую ошибку
$t1 = distance($c, $b) . "\n";

// генерируем еще одну пользовательскую ошибку
$t2 = distance($b, "я не массив") . "\n";

// генерируем пользовательское предупреждение
$t3 = distance($a, $b) . "\n";

?>


Функции обработки ошибок

Смотрите также

См. также функцию syslog().

Содержание

  • debug_backtrace — Выводит стек вызовов функций в массив
  • debug_print_backtrace — Выводит стек вызовов функций
  • error_clear_last — Очистить самую последнюю ошибку
  • error_get_last — Получение информации о последней произошедшей ошибке
  • error_log — Отправляет сообщение об ошибке заданному обработчику ошибок
  • error_reporting — Задает, какие ошибки PHP попадут в отчет
  • restore_error_handler — Восстанавливает предыдущий обработчик ошибок
  • restore_exception_handler — Восстанавливает предыдущий обработчик исключений
  • set_error_handler — Задает пользовательский обработчик ошибок
  • set_exception_handler — Задает пользовательский обработчик исключений
  • trigger_error — Вызывает пользовательскую ошибку/предупреждение/уведомление
  • user_error — Псевдоним trigger_error


Выводит стек вызовов функций в массив

  • « Функции обработки ошибок
  • debug_print_backtrace »
  • PHP Manual
  • Функции обработки ошибок
  • Выводит стек вызовов функций в массив

debug_backtrace

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

debug_backtrace — Выводит стек вызовов функций в массив

Описание

debug_backtrace ([ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT [, int $limit = 0 ]] ) : array

debug_backtrace() выводит стек вызовов функций PHP в массив.

Список параметров

options

Начиная с PHP 5.3.6, этот аргумент является битовой маской для следующих настроек:

Опции debug_backtrace()
DEBUG_BACKTRACE_PROVIDE_OBJECT | Нужно ли заполнять данные для ключа object.
DEBUG_BACKTRACE_IGNORE_ARGS | Нужно ли исключить аргументы всех функций/методов в ключе "args" для уменьшения расхода памяти.
До версии 5.3.6 принимаются только значения TRUE или FALSE, которые означают, задана настройка DEBUG_BACKTRACE_PROVIDE_OBJECT или нет соответственно.

limit

Начиная с PHP 5.4.0, этот аргумент используется для ограничения количества вызовов функций, которые будут выведены. По умолчанию (limit=0) будет выведен весь стек вызовов.

Возвращаемые значения

Возвращает массив вложенных ассоциативных массивов (array). Описание элементов массива приведено ниже:

Список возможных элементов массивов, возвращаемых функцией debug_backtrace()
Имя | Тип | Описание
function | string | Имя текущей функции. См. также __FUNCTION__.
line | integer | Текущий номер строки. См. также __LINE__.
file | string | Имя текущего файла. См. также __FILE__.
class | string | Имя текущего класса. См. также __CLASS__
object | object | Текущий объект.
type | string | Текущий тип вызова функции. Если это вызов метода объекта, будет выведено "->". Если это вызов статического метода класса, то "::". Если это простой вызов функции, не выводится ничего.
args | array | При нахождении внутри функции, будет выведен список аргументов этой функции. Если внутри включаемого файла, будет выведен список включаемых файлов.

Список изменений

Версия | Описание
5.4.0 | Добавлен необязательный аргумент limit.
5.3.6 | Аргумент provide_object заменен на options и добавлена дополнительная настройка DEBUG_BACKTRACE_IGNORE_ARGS.
5.2.5 | Добавлен необязательный аргумент provide_object.
5.1.1 | Элементом возвращаемого массива теперь может быть текущий объект (object).

Примеры

Пример #1 Пример использования debug_backtrace()

<?php
// файл /tmp/a.php

function a_test($str)
{
    echo "\nПривет, $str";
    var_dump(debug_backtrace());
}

a_test('друг');
?>

<?php
// файл /tmp/b.php
include_once '/tmp/a.php';
?>

Результат аналогичен приведенному ниже, если запустить /tmp/b.php:

Привет, друг
array(2) {
[0]=>
array(4) {
    ["file"] => string(10) "/tmp/a.php"
    ["line"] => int(10)
    ["function"] => string(6) "a_test"
    ["args"]=>
    array(1) {
      [0] => &string(8) "друг"
    }
}
[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() - Выводит стек вызовов функций


Выводит стек вызовов функций

  • « debug_backtrace
  • error_clear_last »
  • PHP Manual
  • Функции обработки ошибок
  • Выводит стек вызовов функций

debug_print_backtrace

(PHP 5, PHP 7)

debug_print_backtrace — Выводит стек вызовов функций

Описание

debug_print_backtrace ([ int $options = 0 [, int $limit = 0 ]] ) : void

debug_print_backtrace() выводит стек вызовов функций. Выводит вызовы функций, имена включенных/требуемых файлов и другую информацию из функций (eval()).

Список параметров

options

Начиная с PHP 5.3.6, этот аргумент является битовой маской для следующих настроек:

Опции debug_print_backtrace()
DEBUG_BACKTRACE_IGNORE_ARGS Нужно ли исключить ключ "args", то есть списки аргументов всех функций/методов, чтобы уменьшить расход памяти.

limit

Начиная с PHP 5.4.0, этот аргумент используется для ограничения количества вызовов функций, которые будут выведены. По умолчанию (limit=0) будет выведен весь стек вызовов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
5.4.0 | Добавлен необязательный аргумент limit.
5.3.6 | Добавлен необязательный аргумент options.

Примеры

Пример #1 Пример использования debug_print_backtrace()

<?php
// файл include.php

function a() {
    b();
}

function b() {
    c();
}

function c(){
    debug_print_backtrace();
}

a();

?>
<?php
// файл test.php
// этот файл нужно запустить
include 'include.php';
?>

Результатом выполнения данного примера будет что-то подобное:

#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_print_backtrace
  • error_get_last »
  • PHP Manual
  • Функции обработки ошибок
  • Очистить самую последнюю ошибку

error_clear_last

(PHP 7)

error_clear_last — Очистить самую последнюю ошибку

Описание

error_clear_last ( void ) : void

Возвращаемые значения

Очищает самую последнюю ошибку, делая невозможным получение ее с помощью error_get_last().

Примеры

Пример #1 Пример error_clear_last()

<?php
var_dump(error_get_last());
error_clear_last();
var_dump(error_get_last());

@$a = $b;

var_dump(error_get_last());
error_clear_last();
var_dump(error_get_last());
?>

Результатом выполнения данного примера будет что-то подобное:

NULL
NULL
array(4) {
  ["type"]=>
  int(8)
  ["message"]=>
  string(21) "Undefined variable: b"
  ["file"]=>
  string(9) "%s"
  ["line"]=>
  int(6)
}
NULL

Смотрите также

  • Константы ошибок


Получение информации о последней произошедшей ошибке

  • « error_clear_last
  • error_log »
  • PHP Manual
  • Функции обработки ошибок
  • Получение информации о последней произошедшей ошибке

error_get_last

(PHP 5 >= 5.2.0, PHP 7)

error_get_last — Получение информации о последней произошедшей ошибке

Описание

error_get_last ( void ) : array

Получает информацию о последней произошедшей ошибке.

Возвращаемые значения

Возвращает ассоциативный массив с описанием последней произошедшей ошибки. Ключи массива: "type", "message", "file" и "line". Если ошибка произошла во внутренней функции PHP, элемент с ключом "message" будет начинаться с имени этой функции. Возвращает NULL, если ошибок еще не произошло.

Примеры

Пример #1 Пример использования error_get_last()

<?php
echo $a;
print_r(error_get_last());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [type] => 8
    [message] => Undefined variable: a
    [file] => C:\WWW\index.php
    [line] => 2
)

Смотрите также

  • Константы ошибок
  • Переменная $php_errormsg
  • error_clear_last() - Очистить самую последнюю ошибку
  • Директива display_errors
  • Директива html_errors
  • Директива xmlrpc_errors


Отправляет сообщение об ошибке заданному обработчику ошибок

  • « error_get_last
  • error_reporting »
  • PHP Manual
  • Функции обработки ошибок
  • Отправляет сообщение об ошибке заданному обработчику ошибок

error_log

(PHP 4, PHP 5, PHP 7)

error_log — Отправляет сообщение об ошибке заданному обработчику ошибок

Описание

error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] ) : bool

Отправляет сообщение об ошибке в лог веб-сервера или в пользовательский файл.

Список параметров

message

Сообщение об ошибке, которое должно быть логировано.

message_type

Определяет куда отправлять ошибку. Возможны следующие значения:

Типы журналов error_log()
0 | Сообщение message отправляется в системный регистратор PHP, используя механизм логирования операционной системы, или файл, в зависимости от значения директивы error_log в конфигурационном файле. Это значение по умолчанию.
1 | Сообщение message отправляется электронной почтой на адрес, установленный в параметре destination. Это единственный тип сообщения, где используется четвертый параметр extra_headers.
2 | Больше не используется.
3 | message применяется к указанному в destination файлу. Перенос строки автоматически не добавляется в конец message.
4 | Сообщение message отправляется напрямую в обработчик логера SAPI.

destination

Назначение. Устанавливается в зависимости от параметра message_type.

extra_headers

Дополнительные заголовки. Используется, когда значение параметра message_type - 1. Данный тип сообщения использует ту же внутреннюю функцию, что и mail().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Внимание

error_log() не является бинарно-безопасной функцией. message обрезается по null-символу.

Подсказка

message не должен содержать null-символ. Учтите, что message может передаваться в файл, по почте, в syslog и т.д. Используйте подходящую преобразующую или экранирующую функцию, base64_encode(), rawurlencode() или addslashes() перед вызовом error_log().

Примеры

Пример #1 Примеры использования error_log()

<?php
// Отправляет уведомление посредством серверного лога, если мы не можем
// подключиться к базе данных.
if (!Ora_Logon($username, $password)) {
    error_log("База данных Oracle недоступна!", 0);
}

// Уведомить администратора по электронной почте, если невозможно выделить ресурсы для FOO
if (!($foo = allocate_new_foo())) {
    error_log("Большая проблема, мы выпали из FOO!", 1,
               "operator@example.com");
}

// другой способ вызвать error_log():
error_log("Вы ошиблись!", 3, "/var/tmp/my-errors.log");
?>

Список изменений

Версия | Описание
5.2.7 | Добавлен 4-й тип значения в message_type.


Задает, какие ошибки PHP попадут в отчет

  • « error_log
  • restore_error_handler »
  • PHP Manual
  • Функции обработки ошибок
  • Задает, какие ошибки PHP попадут в отчет

error_reporting

(PHP 4, PHP 5, PHP 7)

error_reporting — Задает, какие ошибки PHP попадут в отчет

Описание

error_reporting ([ int $level ] ) : int

Функция error_reporting() задает значение директивы error_reporting во время выполнения. В PHP есть много уровней ошибок. Используя эту функцию, можно задать уровень ошибок времени выполнения скрипта, которые попадут в отчет. Если необязательный аргумент level не задан, error_reporting() вернет текущее значение уровня протоколирования ошибок.

Список параметров

level

Новое значение уровня error_reporting. Это может быть битовая маска или именованные константы. При использовании именованных констант нужно будет следить за совместимостью с новыми версиями PHP. В новых версиях могут добавиться новые уровни ошибок, увеличиться диапазон целочисленных типов. Все это может привести к нестабильной работе при использовании старых целочисленных обозначений уровней ошибок.

Доступные константы уровней ошибок и их описания приведены в разделе Предопределенные константы.

Возвращаемые значения

Возвращает старое значение уровня error_reporting либо текущее значение, если аргумент level не задан.

Список изменений

Версия | Описание
5.4.0 | E_STRICT стал частью E_ALL.
5.3.0 | Добавлены E_DEPRECATED и E_USER_DEPRECATED.
5.2.0 | Добавлена E_RECOVERABLE_ERROR.

Примеры

Пример #1 Примеры использования error_reporting()

<?php

// Выключение протоколирования ошибок
error_reporting(0);

// Включать в отчет простые описания ошибок
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Включать в отчет E_NOTICE сообщения (добавятся сообщения о
// непроинициализированных переменных или ошибках в именах переменных)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Добавлять сообщения обо всех ошибках, кроме E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);

// Добавлять в отчет все ошибки PHP (см. список изменений)
error_reporting(E_ALL);

// Добавлять в отчет все ошибки PHP
error_reporting(-1);

// То же, что и error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

Примечания

Внимание

Большинство ошибок E_STRICT отлавливаются на этапе компиляции, поэтому такие ошибки не включаются в отчет в файлах, где error_reporting расширен для включения E_STRICT ошибок (и наоборот).

Подсказка

Если передать -1, будут отображаться все возможные ошибки, даже если в новых версиях PHP добавятся уровни или константы. В версии PHP 5.4. передача константы E_ALL дает тот же результат.

Смотрите также

  • Директива display_errors
  • Директива html_errors
  • Директива xmlrpc_errors
  • ini_set() - Устанавливает значение настройки конфигурации


Восстанавливает предыдущий обработчик ошибок

  • « error_reporting
  • restore_exception_handler »
  • PHP Manual
  • Функции обработки ошибок
  • Восстанавливает предыдущий обработчик ошибок

restore_error_handler

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

restore_error_handler — Восстанавливает предыдущий обработчик ошибок

Описание

restore_error_handler ( void ) : bool

Используется после смены обработчика ошибок функцией set_error_handler(), чтобы вернуть предыдущий обработчик (который может быть как встроенной функцией, так и определенной пользователем).

Возвращаемые значения

Эта функция всегда возвращает TRUE.

Примеры

Пример #1 Пример использования restore_error_handler()

Определение, произошла ли ошибка в функции unserialize(), а затем восстановление исходного обработчика ошибок.

<?php
function unserialize_handler($errno, $errstr)
{
    echo "Сериализуемое значение недопустимо.\n";
}

$serialized = 'foo';
set_error_handler('unserialize_handler');
$original = unserialize($serialized);
restore_error_handler();
?>

Результат выполнения данного примера:

Сериализуемое значение недопустимо.

Смотрите также

  • error_reporting() - Задает, какие ошибки PHP попадут в отчет
  • set_error_handler() - Задает пользовательский обработчик ошибок
  • restore_exception_handler() - Восстанавливает предыдущий обработчик исключений
  • trigger_error() - Вызывает пользовательскую ошибку/предупреждение/уведомление


Восстанавливает предыдущий обработчик исключений

  • « restore_error_handler
  • set_error_handler »
  • PHP Manual
  • Функции обработки ошибок
  • Восстанавливает предыдущий обработчик исключений

restore_exception_handler

(PHP 5, PHP 7)

restore_exception_handler — Восстанавливает предыдущий обработчик исключений

Описание

restore_exception_handler ( void ) : bool

Используется после смены обработчика исключений функцией set_exception_handler(), чтобы вернуть предыдущий обработчик (который может быть как встроенной функцией, так и определенной пользователем).

Возвращаемые значения

Эта функция всегда возвращает TRUE.

Примеры

Пример #1 Пример использования restore_exception_handler()

<?php
    function exception_handler_1(Exception $e)
    {
        echo '[' . __FUNCTION__ . '] ' . $e->getMessage();
    }

    function exception_handler_2(Exception $e)
    {
        echo '[' . __FUNCTION__ . '] ' . $e->getMessage();
    }

    set_exception_handler('exception_handler_1');
    set_exception_handler('exception_handler_2');

    restore_exception_handler();

    throw new Exception('Вызван первый обработчик исключений...');
?>

Результат выполнения данного примера:

[exception_handler_1] Вызван первый обработчик исключений...

Смотрите также

  • set_exception_handler() - Задает пользовательский обработчик исключений
  • set_error_handler() - Задает пользовательский обработчик ошибок
  • restore_error_handler() - Восстанавливает предыдущий обработчик ошибок
  • error_reporting() - Задает, какие ошибки PHP попадут в отчет


Задает пользовательский обработчик ошибок

  • « restore_exception_handler
  • set_exception_handler »
  • PHP Manual
  • Функции обработки ошибок
  • Задает пользовательский обработчик ошибок

set_error_handler

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

set_error_handler — Задает пользовательский обработчик ошибок

Описание

set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] ) : mixed

Задает пользовательскую функцию (error_handler), как обработчик ошибок в скрипте.

Эта функция используется для определения собственного обработчика ошибок времени выполнения скрипта. Например, если требуется очистить данные/файлы, когда произошла критическая ошибка, или если нужно переключить тип ошибки, исходя из каких-то условий (используя функцию trigger_error()).

Важно помнить, что стандартный обработчик ошибок PHP не будет обрабатывать никакие типы ошибок, определенные в error_types, пока callback-функция не вернет FALSE. Пользовательский обработчик будет вызываться при любой ошибке, независимо от настроек, заданных функцией error_reporting(). Однако, вы можете прочитать текущее значение error_reporting и задать в обработчике соответствующие действия. В частности, это значение будет равно 0, если выражение, вызвавшее ошибку, начинается с оператора контроля ошибок @.

Также важно помнить, что на совести обработчика лежит вызов функции die() в случае необходимости. Если происходит возврат из обработчика ошибок, управление передается следующему выражению, стоящему за тем, что вызвало ошибку.

Ошибки следующих типов не могут быть обработаны пользователем: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING независимо от того, где они были сгенерированы и большинство ошибок E_STRICT, произошедших в файле, где вызвана функция set_error_handler().

Если ошибки возникают до запуска скрипта (например, пока файл загружается), пользовательский обработчик не будет вызываться, если на этот момент он еще не зарегистрирован.

Список параметров

error_handler

Функция указанного ниже вида. Можно передать вместо нее NULL, для сброса обработчика в значение по умолчанию. Помимо имени функции, можно передать массив, содержащий объект и имя метода.

handler ( int $errno , string $errstr [, string $errfile [, int $errline [, array $errcontext ]]] ) : bool
errno
Первый аргумента errno содержит уровень ошибки в виде целого числа.
errstr
Второй аргумент errstr содержит сообщение об ошибке в виде строки.
errfile
Третий необязательный аргумент errfile содержит имя файла, в котором произошла ошибка, в виде строки.
errline
Четвертый необязательный аргумент errline содержит номер строки, в которой произошла ошибка, в виде целого числа.
errcontext
Пятый необязательный аргумент errcontext содержит массив указателей на активную таблицу символов в точке, где произошла ошибка. Другими словами, errcontext будет содержать массив всех переменных, существующих в области видимости, где произошла ошибка. Пользовательский обработчик не должен изменять этот контекст.
Внимание

Этот параметр объявлен УСТАРЕВШИМ начиная с PHP 7.2.0. Крайне не рекомендуется его использовать.

Если функция возвращает FALSE, управление передается встроенному обработчику ошибок.

error_types

Может использоваться для задания маски, в соответствии с которой будет вызываться error_handler, по аналогии с ini-настройкой error_reporting, которая отвечает за то, какие ошибки будут показаны в отчете. Без этой маски error_handler будет вызываться для обработки всех происходящих ошибок, вне зависимости от настроек в error_reporting.

Возвращаемые значения

Возвращает строку, содержащую предыдущий заданный обработчик ошибок (если есть). Если на данный момент используется встроенный обработчик, функция вернет NULL. В случае ошибки в работе самой функции, например, недопустимый обратный вызов, функция также вернет NULL. Если предыдущий определенный обработчик является методом класса, функция вернет массив, содержащий имя класса и имя метода.

Список изменений

Версия | Описание
7.2.0 | Параметр errcontext объявлен устаревшим. Теперь при его использовании будет вызываться ошибка уровня E_DEPRECATED.
5.5.0 | error_handler теперь может принимать NULL.
5.2.0 | Обработчик должен вернуть FALSE, чтобы заполнилось значение переменной $php_errormsg.

Примеры

Пример #1 Обработка ошибок с помощью функций set_error_handler() и trigger_error()

Пример ниже демонстрирует обработку внутренних исключений путем вызова ошибок разных типов и их обработки пользовательской функцией:

<?php
// функция обработки ошибок
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
    if (!(error_reporting() & $errno)) {
        // Этот код ошибки не включен в error_reporting,
        // так что пусть обрабатываются стандартным обработчиком ошибок PHP
        return false;
    }

    switch ($errno) {
    case E_USER_ERROR:
        echo "<b>Пользовательская ОШИБКА</b> [$errno] $errstr<br />\n";
        echo "  Фатальная ошибка в строке $errline файла $errfile";
        echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
        echo "Завершение работы...<br />\n";
        exit(1);
        break;

    case E_USER_WARNING:
        echo "<b>Пользовательское ПРЕДУПРЕЖДЕНИЕ</b> [$errno] $errstr<br />\n";
        break;

    case E_USER_NOTICE:
        echo "<b>Пользовательское УВЕДОМЛЕНИЕ</b> [$errno] $errstr<br />\n";
        break;

    default:
        echo "Неизвестная ошибка: [$errno] $errstr<br />\n";
        break;
    }

    /* Не запускаем внутренний обработчик ошибок PHP */
    return true;
}

// функция для тестирования обработчика ошибок
function scale_by_log($vect, $scale)
{
    if (!is_numeric($scale) || $scale <= 0) {
        trigger_error("log(x) для x <= 0 не определен, вы используете: scale = $scale", E_USER_ERROR);
    }

    if (!is_array($vect)) {
        trigger_error("Некорректный входной вектор, пропущен массив значений", E_USER_WARNING);
        return null;
    }

    $temp = array();
    foreach($vect as $pos => $value) {
        if (!is_numeric($value)) {
            trigger_error("Значение на позиции $pos не является числом, будет использован 0 (ноль)", E_USER_NOTICE);
            $value = 0;
        }
        $temp[$pos] = log($scale) * $value;
    }

    return $temp;
}

// переключаемся на пользовательский обработчик
$old_error_handler = set_error_handler("myErrorHandler");

// вызовем несколько ошибок, во-первых, определим массив с нечисловым элементом
echo "vector a\n";
$a = array(2, 3, "foo", 5.5, 43.3, 21.11);
print_r($a);

// теперь создадим еще один массив
echo "----\nvector b - a notice (b = log(PI) * a)\n";
/* Значение на позиции $pos не является числом, будет использован 0 (ноль)*/
$b = scale_by_log($a, M_PI);
print_r($b);

// проблема, мы передаем строку вместо массива
echo "----\nvector c - a warning\n";
/* Некорректный входной вектор, пропущен массив значений */
$c = scale_by_log("not array", 2.3);
var_dump($c); // NULL

// критическая ошибка, логарифм от неположительного числа не определен
echo "----\nvector d - fatal error\n";
/* log(x) для x <= 0 не определен, вы используете: scale = $scale */
$d = scale_by_log($a, -2.5);
var_dump($d); // До сюда не дойдем никогда
?>

Результатом выполнения данного примера будет что-то подобное:

vector a
Array
(
    [0] => 2
    [1] => 3
    [2] => foo
    [3] => 5.5
    [4] => 43.3
    [5] => 21.11
)
----
vector b - a notice (b = log(PI) * a)
<b>Пользовательское УВЕДОМЛЕНИЕ</b> [1024]  Значение на позиции 2 не является числом, будет использован 0 (ноль)<br />
Array
(
    [0] => 2.2894597716988
    [1] => 3.4341896575482
    [2] => 0
    [3] => 6.2960143721717
    [4] => 49.566804057279
    [5] => 24.165247890281
)
----
vector c - a warning
<b>Пользовательское ПРЕДУПРЕЖДЕНИЕ</b> [512] Некорректный входной вектор, пропущен массив значений<br />
NULL
----
vector d - fatal error
<b>Пользовательская ОШИБКА</b> [256] log(x) for x <= 0 is undefined, you used: scale = -2.5<br />
  Фатальная ошибка в строке 35 файла trigger_error.php, PHP 5.2.1 (FreeBSD)<br />
Завершение работы...<br />

Смотрите также

  • ErrorException
  • error_reporting() - Задает, какие ошибки PHP попадут в отчет
  • restore_error_handler() - Восстанавливает предыдущий обработчик ошибок
  • trigger_error() - Вызывает пользовательскую ошибку/предупреждение/уведомление
  • Константы уровней ошибок
  • Информация о типе callback


Задает пользовательский обработчик исключений

  • « set_error_handler
  • trigger_error »
  • PHP Manual
  • Функции обработки ошибок
  • Задает пользовательский обработчик исключений

set_exception_handler

(PHP 5, PHP 7)

set_exception_handler — Задает пользовательский обработчик исключений

Описание

set_exception_handler ( callable $exception_handler ) : callable

Задает обработчик по умолчанию для случаев, когда исключение выброшено вне блока try/catch. После вызова exception_handler выполнение будет остановлено.

Список параметров

exception_handler

Имя функции, которая будет вызываться каждый раз, когда выбрасывается неперехватываемое исключение. Функция-обработчик должна принимать один аргумент - объект, представляющий выброшенное исключение. До PHP 7 такая функция выглядит так:

handler ( Exception $ex ) : void

В PHP 7 большинство внутренних ошибок теперь генерируют исключение, но класса Error. Для них также будет вызываться указанный обработчик исключений. Классы Error и Exception реализуют интерфейс Throwable, соответственно именно его следует использовать в сигнатуре функции-обработчика:

handler ( Throwable $ex ) : void

В качестве этого аргумента можно передать NULL. В этом случае обработчик вернется к своему изначальному состоянию.

Предостережение

Указание типа Exception для параметра ex в вашей функции-обработчике приведет к проблемам в PHP 7 из-за измененной иерархии классов исключений.

Возвращаемые значения

Возвращает имя предыдущего заданного обработчика или NULL в случае ошибки. Если предыдущих обработчиков определено не было, то также возвращается NULL.

Список изменений

Версия | Описание
7.0.0 | Тип параметра передаваемого в exception_handler изменен с Exception на Throwable
5.5.0 | Раньше, если был передан NULL, то эта функция возвращала TRUE. Теперь она возвращает старый обработчик.

Примеры

Пример #1 Пример использования set_exception_handler()

<?php
function exception_handler($exception) {
  echo "Неперехваченное исключение: " , $exception->getMessage(), "\n";
}

set_exception_handler('exception_handler');

throw new Exception('Неперехваченное исключение');
echo "Не выполнено\n";
?>

Смотрите также

  • restore_exception_handler() - Восстанавливает предыдущий обработчик исключений
  • restore_error_handler() - Восстанавливает предыдущий обработчик ошибок
  • error_reporting() - Задает, какие ошибки PHP попадут в отчет
  • Информация о типе callback
  • Исключения PHP 5


Вызывает пользовательскую ошибку/предупреждение/уведомление

  • « set_exception_handler
  • user_error »
  • PHP Manual
  • Функции обработки ошибок
  • Вызывает пользовательскую ошибку/предупреждение/уведомление

trigger_error

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

trigger_error — Вызывает пользовательскую ошибку/предупреждение/уведомление

Описание

trigger_error ( string $error_msg [, int $error_type = E_USER_NOTICE ] ) : bool

Используется для вызова пользовательских ошибок. Можно использовать в связке со встроенным обработчиком ошибок, а также с пользовательским обработчиком, заданным функцией set_error_handler().

Эта функция может быть полезной, если требуется сгенерировать определенную реакцию на исключение во время выполнения.

Список параметров

error_msg

Сообщение, соответствующее этой ошибке. Ограничено 1024 байтами в длину. Символы дальше 1024-го будут обрезаны.

error_type

Назначенный тип ошибки. Работает только с семейством констант E_USER. По умолчанию E_USER_NOTICE.

Возвращаемые значения

Функция возвращает FALSE, если задан неправильный error_type, и TRUE в остальных случаях.

Примеры

Пример #1 Пример использования trigger_error()

Более подробный пример приведен в описании функции set_error_handler().

<?php
if ($divisor == 0) {
    trigger_error("Не могу поделить на ноль", E_USER_ERROR);
}
?>

Примечания

Внимание

HTML-сущности в error_msg не экранированы. Чтобы сообщение можно было отобразить в браузере, преобразуйте его функцией htmlentities().

Смотрите также

  • error_reporting() - Задает, какие ошибки PHP попадут в отчет
  • set_error_handler() - Задает пользовательский обработчик ошибок
  • restore_error_handler() - Восстанавливает предыдущий обработчик ошибок
  • Константы уровней ошибок


Псевдоним trigger_error

  • « trigger_error
  • FFI »
  • PHP Manual
  • Функции обработки ошибок
  • Псевдоним trigger_error

user_error

(PHP 4, PHP 5, PHP 7)

user_error — Псевдоним trigger_error()

Описание

Эта функция является псевдонимом: trigger_error().


Интерфейс внешней функции (Foreign Function Interface)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Простые примеры использования FFI
    • Callback-функции PHP
    • Комплексный пример PHP/FFI/preloading
  • FFI — Основной интерфейс к коду и данным C
    • FFI::addr — Создает неуправляемый указатель на данные C
    • FFI::alignof — Возвращает величину выравнивания
    • FFI::arrayType — Динамически конструирует новый тип С массива
    • FFI::cast — Производит преобразование типа C
    • FFI::cdef — Создаёт новый объект FFI
    • FFI::free — Высвобождает неуправляемую структуру данных
    • FFI::isNull — Проверяет, является ли FFI\CData нулевым указателем
    • FFI::load — Загрузить декларации C из заголовочного файла
    • FFI::memcmp — Сравнивает две области памяти
    • FFI::memcpy — Копирует содержимое одной области памяти в другую
    • FFI::memset — Заполнить область памяти
    • FFI::new — Создаёт структуру данных C
    • FFI::scope — Инстанциирует объект FFI в соответствии с декларацией С, разобранной на этапе предзагрузки
    • FFI::sizeof — Возвращает размер данных или типа C
    • FFI::string — Создает строку PHP из области памяти
    • FFI::type — Создаёт объект FFI\CType из декларации С
    • FFI::typeof — Получает FFI\CType для FFI\CData
  • FFI\CData — Доступ к данным C
  • FFI\CType — Доступ к типам C
  • FFI\Exception — Исключения FFI
  • FFI\ParserException — Исключения парсера FFI


Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Модуль позволяет загружать общие(shared) библиотеки (.DLL или .so), вызывать C-функции и получать доступ с структурам языка C из PHP без необходимости глубоко изучать API модулей Zend и стороннего, "промежуточного" языка. Публичный API реализован как один единственный класс FFI с некоторым набором статических методов (некоторые из них могут вызываться динамически) и переопределенными методами объекта, что позволяет взаимодействовать с данными С.

Предостережение

Модуль FFI довольно опасен, поскольку позволяет взаимодействовать с системой на очень низком уровне. Модуль FFI должен использоваться только разработчиками, знакомыми с языком С и умеющими использовать его API. Для минимизации риска, модуль может быть запрещен директивой ffi.enable в php.ini.

Замечание:

Модуль FFI не делает классический API модулей PHP устаревшим; он предназначен для взаимодействия с функциями и структурами данных C.

Подсказка

Сейчас доступ к структурам данных FFI примерно в 2 раза медленнее чем доступ к объектам и массивам PHP. Таким образом, нет повода использовать FFI для ускорения; однако его можно использовать для сокращения потребляемой памяти.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Для работы модуля необходимо установить библиотеку » libffi.


Установка

Для включения модуля FFI, PHP надо сконфигурировать с ключем --with-ffi .

Пользователям Windows будет необходимо добавить php_ffi.dll в php.ini.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки FFI
Имя | По умолчанию | Место изменения | Список изменений
ffi.enable | "preload" | PHP_INI_SYSTEM |
ffi.preload | "" | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

ffi.enable string

Позволяет разрешить ("true") или запретить ("false") использование FFI API, либо ограничить использование только для CLI SAPI и предзагруженных файлов ("preload").

Ограничения FFI API влияют только на класс FFI, но не на перезагруженные функции объекта FFI\CData. Это значит, что можно создать объекты FFI\CData в предзагружаемых файлах и использовать потом напрямую из скриптов PHP.

ffi.preload string

Позволяет предзагружать привязки FFI во время старта, что невозможно с FFI::load(), если включено opcache.preload_user. Эта директива принимает список разделителей имен файлов DIRECTORY_SEPARATOR. Предзагруженные привязки доступны с помощью вызова FFI::scope().


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • FFI
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Содержание

  • Простые примеры использования FFI
  • Callback-функции PHP
  • Комплексный пример PHP/FFI/preloading


Простые примеры использования FFI

Перед погружением в детали FFI API, давайте рассмотрим несколько примеров упрощенного использования FFI API в стандартных задачах.

Замечание:

Для некоторых из этих примеров понадобится библиотека libc.so.6. Они не будут работать в системах, где её нет.

Пример #1 Вызов функции из общей библиотеки

<?php
// создаем объект FFI, загружаем libc и экспортируем функцию printf()
$ffi = FFI::cdef(
    "int printf(const char *format, ...);", // это стандартная декларация C
    "libc.so.6");
// вызываем printf()
$ffi->printf("Привет, %s!\n", "мир");
?>

Результат выполнения данного примера:

Привет, мир!

Пример #2 Вызов функции и возврат структуры через аргумент

<?php
// создаем привязку gettimeofday()
$ffi = FFI::cdef("
    typedef unsigned int time_t;
    typedef unsigned int suseconds_t;

    struct timeval {
        time_t      tv_sec;
        suseconds_t tv_usec;
    };

    struct timezone {
        int tz_minuteswest;
        int tz_dsttime;
    };

    int gettimeofday(struct timeval *tv, struct timezone *tz);
", "libc.so.6");
// создаем структуры данных C
$tv = $ffi->new("struct timeval");
$tz = $ffi->new("struct timezone");
// вызываем gettimeofday()
var_dump($ffi->gettimeofday(FFI::addr($tv), FFI::addr($tz)));
// получаем доступ к полю структуры данных C
var_dump($tv->tv_sec);
// печатаем всю структуру данных
var_dump($tz);
?>

Результатом выполнения данного примера будет что-то подобное:

int(0)
int(1555946835)
object(FFI\CData:struct timezone)#3 (2) {
  ["tz_minuteswest"]=>
  int(0)
  ["tz_dsttime"]=>
  int(0)
}

Пример #3 Доступ к существующим переменным C

<?php
// создаем объект FFI, загружаем libc и экспортируем переменную errno
$ffi = FFI::cdef(
    "int errno;", // это стандартная декларация C
    "libc.so.6");
// печатаем errno
var_dump($ffi->errno);
?>

Результат выполнения данного примера:

int(0)

Пример #4 Создание и модификация переменной C

<?php
// создаем переменную C типа int
$x = FFI::new("int");
var_dump($x->cdata);

// простое присваивание
$x->cdata = 5;
var_dump($x->cdata);

// не простое присвоение
$x->cdata += 2;
var_dump($x->cdata);
?>

Результат выполнения данного примера:

int(0)
int(5)
int(7)

Пример #5 Работа с массивами C

<?php
// создаем структуру данных
$a = FFI::new("long[1024]");
// работаем с ней как с обычным массивом PHP
for ($i = 0; $i < count($a); $i++) {
    $a[$i] = $i;
}
var_dump($a[25]);
$sum = 0;
foreach ($a as $n) {
    $sum += $n;
}
var_dump($sum);
var_dump(count($a));
var_dump(FFI::sizeof($a));
?>

Результат выполнения данного примера:

int(25)
int(523776)
int(1024)
int(8192)


Callback-функции PHP

Можно присвоить замыкание PHP переменной типа "указатель" (pointer) либо передать его как аргумент функции:

<?php
$zend = FFI::cdef("
    typedef int (*zend_write_func_t)(const char *str, size_t str_length);
    extern zend_write_func_t zend_write;
");

echo "Привет, мир 1!\n";

$orig_zend_write = clone $zend->zend_write;
$zend->zend_write = function($str, $len) {
    global $orig_zend_write;
    $orig_zend_write("{\n\t", 3);
    $ret = $orig_zend_write($str, $len);
    $orig_zend_write("}\n", 2);
    return $ret;
};
echo "Привет, мир 2!\n";
$zend->zend_write = $orig_zend_write;
echo "Привет, мир 3!\n";
?>

Результат выполнения данного примера:

Привет, мир 1!
{
        Привет, мир 2!
}
Привет, мир 3!
Хоть это и работает, но данная функциональность поддерживается не на всех платформах libffi, не эффективна и вызывает утечку ресурсов при завершении запросов.
Подсказка

Поэтому рекомендуется минимизировать использование callback-функций PHP.


Комплексный пример PHP/FFI/preloading

php.ini

ffi.enable=preload
opcache.preload=preload.php

preload.php

<?php
FFI::load(__DIR__ . "/dummy.h");
opcache_compile_file(__DIR__ . "/dummy.php");
?>

dummy.h

#define FFI_SCOPE "DUMMY"
#define FFI_LIB "libc.so.6"

int printf(const char *format, ...);

dummy.php

<?php
final class Dummy {
    private static $ffi = null;
    function __construct() {
        if (is_null(self::$ffi)) {
            self::$ffi = FFI::scope("DUMMY");
        }
    }
    function printf($format, ...$args) {
       return (int)self::$ffi->printf($format, ...$args);
    }
}
?>

test.php

<?php
$d = new Dummy();
$d->printf("Привет, %s!\n", "мир");
?>


Основной интерфейс к коду и данным C

(PHP 7 >= 7.4.0)

Введение

Объекты этого класса создаются фабричными методами FFI::cdef(), FFI::load() и FFI::scope(). Объявленные переменные C доступны как свойства экземпляра FFI, а функции как его методы. Объявленные типы C можно использовать для создания структур данных с помощью FFI::new() и FFI::type().

Разбор объявлений FFI и загрузка разделяемой библиотеки может занять значительное время. Не имеет смысла делать это для каждого HTTP запроса в окружении Web. Тем не менее можно предзагрузить объявления FFI и библиотеки при старте PHP и инстанциировать объекты FFI по необходимости. Заголовочные файлы могут быть расширены специальными объявлениями FFI_SCOPE (например, #define FFI_SCOPE "foo"""; скоуп по умолчанию "C") и загружены с помощью FFI::load() во время предзагрузки. Это приведет к созданию постоянных привязок, которые будут доступны для всех запросов через FFI::scope(). Более подробно читайте на странице Простые примеры использования FFI.

В один и тот же скоуп можно загрузить несколько заголовочных файлов.

Обзор классов

FFI {
/* Методы */
public static addr ( FFI\CData &$ptr ) : FFI\CData
public static alignof ( mixed &$ptr ) : int
public static arrayType ( FFI\CType $type , array $dims ) : FFI\CType
public static cast ( mixed $type , FFI\CData &$ptr ) : FFI\CData
public cast ( mixed $type , FFI\CData &$ptr ) : FFI\CData
public static cdef ([ string $code = "" [, string $lib ]] ) : FFI
public static free ( FFI\CData &$ptr ) : void
public static isNull ( FFI\CData &$ptr ) : bool
public static load ( string $filename ) : FFI
public static memcmp ( mixed &$ptr1 , mixed &$ptr2 , int $size ) : int
public static memcpy ( FFI\CData &$dst , mixed &$src , int $size ) : void
public static memset ( FFI\CData &$ptr , int $ch , int $size ) : void
public static new ( mixed $type [, bool $owned = TRUE [, bool $persistent = FALSE ]] ) : FFI\CData
public new ( mixed $type [, bool $owned = TRUE [, bool $persistent = FALSE ]] ) : FFI\CData
public static scope ( string $scope_name ) : FFI
public static sizeof ( mixed &$ptr ) : int
public static string ( FFI\CData &$ptr [, int $size ] ) : string
public static type ( mixed $type ) : FFI\CType
public type ( mixed $type ) : FFI\CType
public static typeof ( FFI\CData &$ptr ) : FFI\CType
}

Содержание

  • FFI::addr — Создает неуправляемый указатель на данные C
  • FFI::alignof — Возвращает величину выравнивания
  • FFI::arrayType — Динамически конструирует новый тип С массива
  • FFI::cast — Производит преобразование типа C
  • FFI::cdef — Создаёт новый объект FFI
  • FFI::free — Высвобождает неуправляемую структуру данных
  • FFI::isNull — Проверяет, является ли FFI\CData нулевым указателем
  • FFI::load — Загрузить декларации C из заголовочного файла
  • FFI::memcmp — Сравнивает две области памяти
  • FFI::memcpy — Копирует содержимое одной области памяти в другую
  • FFI::memset — Заполнить область памяти
  • FFI::new — Создаёт структуру данных C
  • FFI::scope — Инстанциирует объект FFI в соответствии с декларацией С, разобранной на этапе предзагрузки
  • FFI::sizeof — Возвращает размер данных или типа C
  • FFI::string — Создает строку PHP из области памяти
  • FFI::type — Создаёт объект FFI\CType из декларации С
  • FFI::typeof — Получает FFI\CType для FFI\CData


Создает неуправляемый указатель на данные C

  • « FFI
  • FFI::alignof »
  • PHP Manual
  • FFI
  • Создает неуправляемый указатель на данные C

FFI::addr

(PHP 7 >= 7.4.0)

FFI::addr — Создает неуправляемый указатель на данные C

Описание

public static FFI::addr ( FFI\CData &$ptr ) : FFI\CData

Создает неуправляемый указатель на данные C, представленные заданным FFI\CData. Исходный ptr должен пережить результирующий указатель. Эта функция используется главным образом для передачи аргументов в функцию C по указателю.

Список параметров

ptr

Дескриптор неуправляемого указателя на структуру данных.

Возвращаемые значения

Возвращает новый объект FFI\CData.


Возвращает величину выравнивания

  • « FFI::addr
  • FFI::arrayType »
  • PHP Manual
  • FFI
  • Возвращает величину выравнивания

FFI::alignof

(PHP 7 >= 7.4.0)

FFI::alignof — Возвращает величину выравнивания

Описание

public static FFI::alignof ( mixed &$ptr ) : int

Возвращает величину выравнивания объектов FFI\CData или FFI\CType.

Список параметров

ptr

Дескриптор указателя на данные или тип C.

Возвращаемые значения

Возвращает величину выравнивания объектов FFI\CData или FFI\CType.


Динамически конструирует новый тип С массива

  • « FFI::alignof
  • FFI::cast »
  • PHP Manual
  • FFI
  • Динамически конструирует новый тип С массива

FFI::arrayType

(PHP 7 >= 7.4.0)

FFI::arrayType — Динамически конструирует новый тип С массива

Описание

public static FFI::arrayType ( FFI\CType $type , array $dims ) : FFI\CType

Динамически конструирует новый тип С массива с элементами типа type и размерностями, заданными в dims. В следующем примере $t1 и $t2 определяют массивы одинакового типа:

<?php
$t1 = FFI::type("int[2][3]");
$t2 = FFI::arrayType(FFI::type("int"), [2, 3]);
?>

Список параметров

type

Корректная декларация типа С, например string, или заранее созданный объект класса FFI\CType.

dims

Массив, определяющий размерность типа.

Возвращаемые значения

Возвращает новый объект FFI\CType.


Производит преобразование типа C

  • « FFI::arrayType
  • FFI::cdef »
  • PHP Manual
  • FFI
  • Производит преобразование типа C

FFI::cast

(PHP 7 >= 7.4.0)

FFI::cast — Производит преобразование типа C

Описание

public static FFI::cast ( mixed $type , FFI\CData &$ptr ) : FFI\CData
public FFI::cast ( mixed $type , FFI\CData &$ptr ) : FFI\CData

FFI::cast() создает новый объект класса FFI\CData, который указывает на ту же структуру C, но ассоциирован с другим типом. Полученный объект не становится владельцем данных, так что исходный указатель ptr должен оставаться живым дольше полученного объекта. Тип C должен быть задан как строка, содержащая имя любого корректного типа С, либо как объект FFI\CType. Если метод вызывается статически, то можно использовать только предопределённые имена типов С (например, int, char, etc.); если метод вызывается как метод объекта, то допустимы любые определённые для него типы.

Список параметров

type

Строка с именем типа С или объект класса FFI\CType.

ptr

Дескриптор указателя на структуру данных С.

Возвращаемые значения

Возвращает новый объект FFI\CData.


Создаёт новый объект FFI

  • « FFI::cast
  • FFI::free »
  • PHP Manual
  • FFI
  • Создаёт новый объект FFI

FFI::cdef

(PHP 7 >= 7.4.0)

FFI::cdef — Создаёт новый объект FFI

Описание

public static FFI::cdef ([ string $code = "" [, string $lib ]] ) : FFI

Создаёт новый объект FFI.

Список параметров

code

Строка, содержащая последовательность деклараций на языке С (типы, структуры, функции, переменные и т.д.). Фактически можно скопировать кусок заголовочного файла С.

Замечание:

Директивы сопроцессора С не поддерживаются. Т.е. #include, #define и макросы CPP работать не будут.

lib

Имя файла библиотеки, который будет загружен и связан с заданными декларациями.

Замечание:

Если параметр lib не задан, то для платформ, поддерживающих RTLD_DEFAULT, будет произведён поиск задекларированных в code сущностей в глобальной области видимости. Для прочих платформ произвести привязку не получится.

Возвращаемые значения

Возвращает новый объект FFI.


Высвобождает неуправляемую структуру данных

  • « FFI::cdef
  • FFI::isNull »
  • PHP Manual
  • FFI
  • Высвобождает неуправляемую структуру данных

FFI::free

(PHP 7 >= 7.4.0)

FFI::free — Высвобождает неуправляемую структуру данных

Описание

public static FFI::free ( FFI\CData &$ptr ) : void

Высвобождает созданную ранее неуправляемую структуру данных.

Список параметров

ptr

Дескриптор неуправляемого указателя на структуру данных.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Проверяет, является ли FFI\CData нулевым указателем

  • « FFI::free
  • FFI::load »
  • PHP Manual
  • FFI
  • Проверяет, является ли FFI\CData нулевым указателем

FFI::isNull

(PHP 7 >= 7.4.0)

FFI::isNull — Проверяет, является ли FFI\CData нулевым указателем

Описание

public static FFI::isNull ( FFI\CData &$ptr ) : bool

Проверяет, является ли FFI\CData нулевым указателем.

Список параметров

ptr

Указатель на структуру данных C.

Возвращаемые значения

Возвращает TRUE или FALSE в зависимости от того, является ли FFI\CData нулевым указателем.


Загрузить декларации C из заголовочного файла

  • « FFI::isNull
  • FFI::memcmp »
  • PHP Manual
  • FFI
  • Загрузить декларации C из заголовочного файла

FFI::load

(PHP 7 >= 7.4.0)

FFI::load — Загрузить декларации C из заголовочного файла

Описание

public static FFI::load ( string $filename ) : FFI

Загружает декларации C из заголовочного файла. Можно указать общие библиотеки для загрузки с помощью специальной #define директивы FFI_LIB в заголовочном файле.

Список параметров

filename

Имя заголовочного файла C.

Замечание:

Директивы сопроцессора С не поддерживаются. Т.е. #include, #define и макросы CPP работать не будут.

Возвращаемые значения

Возвращает новый объект FFI.

Смотрите также

  • FFI::scope() - Инстанциирует объект FFI в соответствии с декларацией С, разобранной на этапе предзагрузки


Сравнивает две области памяти

  • « FFI::load
  • FFI::memcpy »
  • PHP Manual
  • FFI
  • Сравнивает две области памяти

FFI::memcmp

(PHP 7 >= 7.4.0)

FFI::memcmp — Сравнивает две области памяти

Описание

public static FFI::memcmp ( mixed &$ptr1 , mixed &$ptr2 , int $size ) : int

Сравнивает size байт памяти по указателям ptr1 и ptr2. И ptr1 и ptr2 могут быть любыми нативными структурами данных (FFI\CData), либо строками PHP.

Список параметров

ptr1

Указатель на первую область памяти.

ptr2

Указатель на вторую область памяти.

size

Количество байт для сравнения.

Возвращаемые значения

Возвращает < 0, если содержимое памяти для ptr1 меньше, чем для ptr2, > 0, если первое больше второго и 0, если равны.


Копирует содержимое одной области памяти в другую

  • « FFI::memcmp
  • FFI::memset »
  • PHP Manual
  • FFI
  • Копирует содержимое одной области памяти в другую

FFI::memcpy

(PHP 7 >= 7.4.0)

FFI::memcpy — Копирует содержимое одной области памяти в другую

Описание

public static FFI::memcpy ( FFI\CData &$dst , mixed &$src , int $size ) : void

Копирует size байт из области памяти src в область памяти dst. И src и dst могут быть любыми нативными структурами данных (FFI\CData) или строками PHP.

Список параметров

dst

Целевая область памяти.

src

Область памяти, откуда будет происходить копирование.

size

Количество байт для копирования.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Заполнить область памяти

  • « FFI::memcpy
  • FFI::new »
  • PHP Manual
  • FFI
  • Заполнить область памяти

FFI::memset

(PHP 7 >= 7.4.0)

FFI::memset — Заполнить область памяти

Описание

public static FFI::memset ( FFI\CData &$ptr , int $ch , int $size ) : void

Заполняет size байт памяти по указателю ptr значением ch.

Список параметров

ptr

Указатель на начало участка памяти.

ch

Значение для заполнения.

size

Количество байт, которые будут заполнены.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Создаёт структуру данных C

  • « FFI::memset
  • FFI::scope »
  • PHP Manual
  • FFI
  • Создаёт структуру данных C

FFI::new

(PHP 7 >= 7.4.0)

FFI::new — Создаёт структуру данных C

Описание

public static FFI::new ( mixed $type [, bool $owned = TRUE [, bool $persistent = FALSE ]] ) : FFI\CData
public FFI::new ( mixed $type [, bool $owned = TRUE [, bool $persistent = FALSE ]] ) : FFI\CData

Создаёт нативную структуру данных заданного типа. При статическом вызове данного метода необходимо использовать только предопределённые имена типов С (такие как int, char, и т.д.); при вызове как метод объекта, допустим любой тип объявленный для него.

Список параметров

type

type - корректная декларация типа С, например, string или заранее созданный объект класса FFI\CType.

owned

Создавать ли управляемые или неуправляемые данные. Управляемые данные живут в связке с возвращенным объектом FFI\CData и высвобождается когда стандартный подсчёт ссылок PHP или GC (сборщик мусора) освободят последнюю ссылку на этот объект. Неуправляемые данные необходимо высвобождать вручную с помощью FFI::free().

persistent

Располагать ли данные на постоянной основе к системной куче(heap) (используя malloc()), или в куче запроса PHP (используя emalloc()).

Возвращаемые значения

Возвращает новый объект FFI\CData.


Инстанциирует объект FFI в соответствии с декларацией С, разобранной на этапе предзагрузки

  • « FFI::new
  • FFI::sizeof »
  • PHP Manual
  • FFI
  • Инстанциирует объект FFI в соответствии с декларацией С, разобранной на этапе предзагрузки

FFI::scope

(PHP 7 >= 7.4.0)

FFI::scope — Инстанциирует объект FFI в соответствии с декларацией С, разобранной на этапе предзагрузки

Описание

public static FFI::scope ( string $scope_name ) : FFI

Инстанциирует объект FFI в соответствии с декларацией С, разобранной на этапе предзагрузки.

Метод FFI::scope() можно многократно вызывать для одного и того же контекста. Множестно ссылок на один и тот же контекст могут быть загружены одновременно.

Список параметров

scope_name

Имя скоупа, заданного с помощью специальной #define директивы FFI_SCOPE.

Возвращаемые значения

Возвращает новый объект FFI.

Смотрите также

  • FFI::load() - Загрузить декларации C из заголовочного файла


Возвращает размер данных или типа C

  • « FFI::scope
  • FFI::string »
  • PHP Manual
  • FFI
  • Возвращает размер данных или типа C

FFI::sizeof

(PHP 7 >= 7.4.0)

FFI::sizeof — Возвращает размер данных или типа C

Описание

public static FFI::sizeof ( mixed &$ptr ) : int

Возвращает размер объектов FFI\CData или FFI\CType.

Список параметров

ptr

Дескриптор указателя на тип или данные C.

Возвращаемые значения

Размер области памяти, на который указывает ptr.


Создает строку PHP из области памяти

  • « FFI::sizeof
  • FFI::type »
  • PHP Manual
  • FFI
  • Создает строку PHP из области памяти

FFI::string

(PHP 7 >= 7.4.0)

FFI::string — Создает строку PHP из области памяти

Описание

public static FFI::string ( FFI\CData &$ptr [, int $size ] ) : string

Создает переменную PHP типа string из size байт пямяти, начиная с адреса по указателю ptr.

Список параметров

ptr

Начало участка памяти, из которой будет создаваться строка.

size

Количество байт для копирования в строку. Если параметр size не задан, то ptr должен указывать на массив C типа char, завершающийся нулевым байтом.

Возвращаемые значения

Строка PHP.


Создаёт объект FFI\CType из декларации С

  • « FFI::string
  • FFI::typeof »
  • PHP Manual
  • FFI
  • Создаёт объект FFI\CType из декларации С

FFI::type

(PHP 7 >= 7.4.0)

FFI::type — Создаёт объект FFI\CType из декларации С

Описание

public static FFI::type ( mixed $type ) : FFI\CType
public FFI::type ( mixed $type ) : FFI\CType

Функция создаёт и возвращает объект FFI\CType для заданной строки, содержащей декларацию типа С. Если метод вызывается статически, то можно использовать только предопределённые имена типов С (например, int, char, и т.д.); если метод вызывается как метод объекта, то допустимы любые определённые для него типы.

Список параметров

type

Корректная декларация типа С или объект класса FFI\CType.

Возвращаемые значения

Возвращает новый объект FFI\CType.


Получает FFI\CType для FFI\CData

  • « FFI::type
  • FFI\CData »
  • PHP Manual
  • FFI
  • Получает FFI\CType для FFI\CData

FFI::typeof

(PHP 7 >= 7.4.0)

FFI::typeof — Получает FFI\CType для FFI\CData

Описание

public static FFI::typeof ( FFI\CData &$ptr ) : FFI\CType

Возвращает объект FFI\CType, представляющий тип объекта FFI\CData.

Список параметров

ptr

Указатель на структуру данных C.

Возвращаемые значения

Возвращает объект FFI\CType, представляющий тип объекта FFI\CData.


Доступ к данным C

(PHP 7 >= 7.4.0)

Введение

Объекты FFI\CData могут использоваться множеством разных способов как обычные данные PHP:

  • Данные C скалярных типов могут читаться и присваиваться через свойство $cdata: $x = FFI::new('int'); $x->cdata = 42;
  • Поля структур(struct) и объединений(union) C доступны как обычные свойства объекта PHP: $cdata->field
  • Доступ к элементам массивов C происходит так же, как доступ к элементам обычного массива PHP: $cdata[$offset]
  • Массивы C можно перебирать с помощью foreach.
  • Для массивов C можно можно использовать функцию count().
  • Указатели C могут быть разыменованы как массив: $cdata[0]
  • Указатели C можно сравнивать обычными операторами сравнения (<, <=, ==, !=, >=, >).
  • Для указателей C можно использовать операции инкремента и декремента +/-/ ++/--: $cdata += 5
  • Указатели C можно вычитать друг из друга с помощью операции -.
  • Указатели на функции можно вызывать как обычные замыкания PHP: $cdata()
  • Любые данные C можно клонировать с помощью clone: $cdata2 = clone $cdata;
  • Любые данные C можно визуализировать с помощью var_dump(), print_r(), и т.д.

Замечание: Обратите внимание, что для экземпляров FFI\CData не поддерживаются функции isset(), empty() и unset(). А для тех, что оборачивают структуры и объединения не реализован интерфейс Traversable.

Обзор классов

FFI\CData {
}


  • « FFI\CData
  • FFI\Exception »
  • PHP Manual
  • FFI
  • Доступ к типам C

Доступ к типам C

(PHP 7 >= 7.4.0)

Введение

Обзор классов

FFI\CType {
}


Исключения FFI

(PHP 7 >= 7.4.0)

Введение

Обзор классов

FFI\Exception extends Error implements Throwable {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Error::getMessage ( void ) : string
final public Error::getPrevious ( void ) : Throwable
final public Error::getCode ( void ) : mixed
final public Error::getFile ( void ) : string
final public Error::getLine ( void ) : int
final public Error::getTrace ( void ) : array
final public Error::getTraceAsString ( void ) : string
public Error::__toString ( void ) : string
final private Error::__clone ( void ) : void
}


Исключения парсера FFI

(PHP 7 >= 7.4.0)

Введение

Обзор классов

FFI\ParserException extends FFI\Exception implements Throwable {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}


Поддержка файлов в стиле htaccess для всех SAPI

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов


Введение

Модуль htscanner дает возможность использовать файлы в стиле htaccess для конфигурирования каждой отдельной директории PHP, аналогично как для htaccess сервера Apache. Это полезно, например для fastcgi (IIS5/6/7, lighttpd и т.д.).


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

PHP версии 5.2.0 и выше.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/htscanner


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки htscanner
Имя | По умолчанию | Место изменения | Список изменений
htscanner.config_file | ".htscanner" | PHP_INI_SYSTEM |
htscanner.default_docroot | "/" | PHP_INI_SYSTEM |
htscanner.default_ttl | "300" | PHP_INI_SYSTEM |
htscanner.stop_on_error | "Off" | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

htscanner.config_file string

Имя файла, имспользуемого в качестве конфигурационного.

htscanner.default_docroot string

Корень сайта по умолчанию.

htscanner.default_ttl int

Таймаут кеширования для конфигурационных данных, в секундах.

htscanner.stop_on_error int

Остановка при ошибке (ошибка разбора, нельзя задать как ini-настройку).


  • « Настройка во время выполнения
  • inclued »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Inclusion hierarchy viewer

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Примеры использования inclued в приложении
  • Функции inclued
    • inclued_get_data — Получить информацию по включенным файлам


Введение

Прослеживает и выводит информацию о подключенных файлах и наследовании классов во время исполнения.

Файлы могут быть включены функциями include, include_once, require или require_once.

Также отслеживаются зависимости наследования классов.


Требования

PHP 5.1.0 или выше.

Включенный файл gengraph.php использует библиотеку » graphviz, но она не обязательна.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/inclued


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки inclued
Имя | По умолчанию | Место изменения | Список изменений
inclued.enabled | Off | PHP_INI_SYSTEM |
inclued.dumpdir | NULL | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

inclued.enabled bool

Включить inclued или нет.

inclued.dumpdir string

Путь для сохранения созданных файлов. Если задан, то каждый запрос PHP будет приводить к созданию файла. Эти файлы содержат сериализованную версию вывода функции inclued_get_data() и просмотреть их можно, используя функцию unserialize().

Предостережение

Так как каждый запрос приводит к созданию файла - эта директория может очень быстро переполниться!


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Примеры использования inclued в приложении »
  • PHP Manual
  • inclued
  • Примеры

Примеры

Содержание

  • Примеры использования inclued в приложении


Примеры использования inclued в приложении

Этот пример демонстрирует процесс включения inclued в существующее приложение и отображение его результатов.

Пример #1 Получение данных в самом приложении PHP (функция)

<?php
// Файл для сохранения полученных данных
$fp = fopen('/tmp/wp.ser', 'w');
if ($fp) {
    $clue = inclued_get_data();
    if ($clue) {
        fwrite($fp, serialize($clue));
    }
    fclose($fp);
}
?>

Теперь, когда существует некоторое количество данных, время построить граф. Данное расширение содержит PHP-скрипт gengraph.php, который создает dot-файл, требующий библиотеки » graphviz.

Пример #2 Пример использования gengraph.php

В данном примере создается файл изображения inclued.png, содержащий графическое представление полученных данных.

# Создадим dot-файл
$ php gengraph.php -i /tmp/wp.ser -o wp.dot

# Теперь создадим изображение
$ dot -Tpng -o inclued.png wp.dot

Пример #3 Просмотр данных с помощью дампов inclued (конфигурация)

Если используется директива inclued.dumpdir, файлы дампов будут создаваться при каждом запросе. Один из путей просмотра этих файлов - это использовать unserialize().

<?php
$path = ini_get('inclued.dumpdir');
if ($path && is_dir($path)) {

    echo "Path: $path", PHP_EOL;

    $inclues = new GlobIterator($path . DIRECTORY_SEPARATOR . 'inclued*');

    if ($inclues->count() === 0) {
        echo 'No clues today', PHP_EOL;
        exit;
    }

    foreach ($inclues as $inclue) {

        echo 'Inclued file: ', $inclue->getFilename(), PHP_EOL;

        $data = file_get_contents($inclue->getPathname());
        if ($data) {
            $inc = unserialize($data);
            echo ' -- filename: ', $inc['request']['SCRIPT_FILENAME'], PHP_EOL;
            echo ' -- number of includes: ', count($inc['includes']), PHP_EOL;
        }
        echo PHP_EOL;
    }
} else {
    echo 'I am totally clueless today.', PHP_EOL;
}
?>

Результатом выполнения данного примера будет что-то подобное:

PATH: /tmp/inclued
Inclued file: inclued.56521.1
 -- filename: /Users/philip/test.php
 -- number of includes: 1

Inclued file: inclued.56563.1
 -- filename: /tmp/none.php
 -- number of includes: 0

Inclued file: inclued.56636.1
 -- filename: /tmp/three.php
 -- number of includes: 3


  • « Примеры использования inclued в приложении
  • inclued_get_data »
  • PHP Manual
  • inclued
  • Функции inclued

Функции inclued

Содержание

  • inclued_get_data — Получить информацию по включенным файлам


Получить информацию по включенным файлам

  • « Функции inclued
  • Memtrack »
  • PHP Manual
  • Функции inclued
  • Получить информацию по включенным файлам

inclued_get_data

(PECL inclued >= 0.1.0)

inclued_get_data — Получить информацию по включенным файлам

Описание

inclued_get_data ( void ) : array

Получить информацию по включенным файлам.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Данные по включенным файлам.

Примеры

Пример #1 Пример использования inclued_get_data()

Смотрите раздел с примерами inclued для информации по построению графов на основе этих данных.

<?php
include 'x.php';

$clue = inclued_get_data();

print_r($clue);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
  [includes] => Array
    (
      [0] => Array
        (
          [operation] => include
          [op_type] => 2
          [filename] => x.php
          [opened_path] => /tmp/x.php
          [fromfile] => /tmp/z.php
          [fromline] => 2
        )
    )
)

Смотрите также

  • примеры inclued
  • debug_backtrace() - Выводит стек вызовов функций в массив
  • include - include


Memtrack

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Примеры использования


Введение

Модуль используется для определения самых жадных до памяти скриптов и функций.

memtrack отслеживает потребление памяти в скриптах PHP и создает отчеты (предупреждения), когда это потребление превышает установленные пользователем пороги. Это достигается путем замещения стандартного вызова функций вызовом с замером количества используемой памяти до и после вызова функции. Отсюда можно вычислить, сколько именно памяти потребил заданный блок кода.

Zend Engine запускает собственный "запускатель" для каждого массива опкодов (op_array), обычно содержащий функцию, плоский скрипт и т.д., так что memtrack не оказывает сколько бы то ни было заметного влияния на производительность.

memtrack не содержит каких-либо функций. Модуль содержит только INI-директивы с помощью которых можно сконфигурировать его работу.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/memtrack


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции конфигурации Memtrack
Имя | По умолчанию | Место изменения
memtrack.enabled | "0" | PHP_INI_SYSTEM
memtrack.soft_limit | "0" | PHP_INI_ALL
memtrack.hard_limit | "0" | PHP_INI_ALL
memtrack.vm_limit | "0" | PHP_INI_ALL
memtrack.ignore_functions | "" | PHP_INI_SYSTEM
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

memtrack.enabled boolean

Включает или выключает модуль. По умолчанию 0, т.е. отключен.

memtrack.soft_limit int

Мягкий порог.

Модуль проверяет потребление памяти до и после выполнения op_array и выдает предупреждение, если разница между этими значениями больше мягкого порога и функция не игнорируется.

Установка этого параметра в значение 0 запрещает использование как мягкого, так и жесткого порогов. По умолчанию установлено в 0, т.е. никаких предупреждений не будет.

memtrack.hard_limit int

Жесткий порог.

Модуль проверяет потребление памяти до и после выполнения op_array и выдает предупреждение, если разница между этими значениями больше жесткого порога даже если функция игнорируется. Установка этого параметра в значение 0 запрещает использование жесткого порога. По умолчанию установлено в 0, т.е. никаких предупреждений при превышении жесткого порога не будет.

memtrack.vm_limit int

Предел виртуальной памяти (устанавливается для процесса).

Этот предел проверяется только при завершении и предупреждение генерируется если общее потребление памяти превышает это значение.

В данный момент эта опция поддерживается только в операционных системах в которых доступна функция mallinfo(), т.е. Linux.

memtrack.ignore_functions string

Список имен функций, разделенных пробелами либо запятыми, которые будут игнорироваться soft_limit. Эта настройка регистронезависима. Для методов классов используйте синтаксис class::method.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • Memtrack
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Примеры использования »
  • PHP Manual
  • Memtrack
  • Примеры

Примеры

Содержание

  • Примеры использования


Примеры использования

Простой пример использования модуля:

Пример #1 Создадим большой массив в функции

<?php

/* /tmp/example1.php */

function foo() {
    $a = array();
    for ($i = 0; $i < 10000; $i++) $a[] = "test";
    return $a;
}
$arr = foo();

?>

Запустим этот скрипт с помощью следующей команды:

php -d memtrack.enabled=1 -d memtrack.soft_limit=1M -d memtrack.vm_limit=3M /tmp/example1.php

Результатом выполнения данного примера будет что-то подобное:

Warning: [memtrack] [pid 26177] user function foo() executed in /tmp/example1.php on line 10 allocated 4194304 bytes in /tmp/example1.php on line 0
Warning: [memtrack] [pid 26177] virtual memory usage on shutdown: 32911360 bytes in Unknown on line 0


OPcache

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Функции OPcache
    • opcache_compile_file — Скомпилировать и закешировать, но не исполнять скрипт PHP
    • opcache_get_configuration — Получить конфигурационную информацию кеша
    • opcache_get_status — Получить информацию о состоянии кеша
    • opcache_invalidate — Аннулирует закешированный скрипт
    • opcache_is_script_cached — Проверяет, закеширован ли скрипт в OPCache
    • opcache_reset — Сбрасывает содержимое кеша опкодов


Введение

OPcache улучшает производительность PHP путём сохранения скомпилированного байт-кода скриптов в разделяемой памяти, тем самым избавляя PHP от необходимости загружать и анализировать скрипты при каждом запросе.

Это расширение доступно по умолчанию с PHP 5.5.0 и » доступно в PECL для версий 5.2, 5.3 и 5.4.


Установка

Процесс установки OPcache отличается для разных версий PHP. Смотрите соответствующие разделы ниже.

Замечание:

Если вы хотите использовать OPcache с » Xdebug, то сперва нужно загружать OPcache, а потом Xdebug.

PHP 5.5.0 и выше

OPcache можно собирать только как разделяемое расширение. Если вы запретили сборку расширений по умолчанию с помощью --disable-all , то вам будет необходимо компилировать PHP с ключом --enable-opcache для включения OPcache.

Единожды скомпилировав, вы можете использовать директиву конфигурации zend_extension для загрузки OPcache в PHP. Это можно сделать с помощью zend_extension=/full/path/to/opcache.so для платформ, отличных от Windows, и zend_extension=C:\path\to\php_opcache.dll в Windows.

PHP 5.2, 5.3 и 5.4

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/ZendOpcache.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Рекомендованые настройки php.ini

Данные опции рекомендованы для обеспечения хорошей производительности:

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

Вы также можете рассмотреть возможность отключения opcache.save_comments и включения opcache.enable_file_override. Однако обратите внимание, что вам придётся протестировать свой код, прежде чем использовать его в промышленной эксплуатации так как известны случаи, когда некоторые фреймворки и приложения переставали работать, особенно в случае использования аннотаций в комментариях.

Полный список опций настройки OPcache смотрите тут.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки OPcache
Имя | По умолчанию | Место изменения | Список изменений
opcache.enable | "1" | PHP_INI_ALL |
opcache.enable_cli | "0" | PHP_INI_SYSTEM | В версиях с PHP 7.1.2 по 7.1.6 включительно, значение по умолчанию "1" (включено)
opcache.memory_consumption | "128" | PHP_INI_SYSTEM | До PHP 7.0.0 значение по умолчанию было "64"
opcache.interned_strings_buffer | "8" | PHP_INI_SYSTEM | До PHP 7.0.0. значение по умолчанию было "4"
opcache.max_accelerated_files | "10000" | PHP_INI_SYSTEM | До PHP 7.0.0 значение по умолчанию было "2000"
opcache.max_wasted_percentage | "5" | PHP_INI_SYSTEM |
opcache.use_cwd | "1" | PHP_INI_SYSTEM |
opcache.validate_timestamps | "1" | PHP_INI_ALL |
opcache.revalidate_freq | "2" | PHP_INI_ALL |
opcache.revalidate_path | "0" | PHP_INI_ALL |
opcache.save_comments | "1" | PHP_INI_SYSTEM |
opcache.load_comments | "1" | PHP_INI_ALL | Удалено в PHP 7.0.0
opcache.fast_shutdown | "0" | PHP_INI_SYSTEM |
opcache.enable_file_override | "0" | PHP_INI_SYSTEM |
opcache.optimization_level | "0x7FFEBFFF" | PHP_INI_SYSTEM | До PHP 7.3.0 было 0x7FFFBFFF и до PHP 5.6.18 было 0xFFFFFFFF
opcache.inherited_hack | "1" | PHP_INI_SYSTEM | Удалено в PHP 7.3.0
opcache.dups_fix | "0" | PHP_INI_ALL |
opcache.blacklist_filename | "" | PHP_INI_SYSTEM |
opcache.max_file_size | "0" | PHP_INI_SYSTEM |
opcache.consistency_checks | "0" | PHP_INI_ALL |
opcache.force_restart_timeout | "180" | PHP_INI_SYSTEM |
opcache.error_log | "" | PHP_INI_SYSTEM |
opcache.log_verbosity_level | "1" | PHP_INI_SYSTEM |
opcache.preferred_memory_model | "" | PHP_INI_SYSTEM |
opcache.protect_memory | "0" | PHP_INI_SYSTEM |
opcache.mmap_base | NULL | PHP_INI_SYSTEM |
opcache.restrict_api | "" | PHP_INI_SYSTEM |
opcache.file_update_protection | "2" | PHP_INI_ALL |
opcache.huge_code_pages | "0" | PHP_INI_SYSTEM |
opcache.lockfile_path | "/tmp" | PHP_INI_SYSTEM |
opcache.opt_debug_level | "0" | PHP_INI_SYSTEM |
opcache.file_cache | NULL | PHP_INI_SYSTEM | Доступно с PHP 7.0.0
opcache.file_cache_only | "0" | PHP_INI_SYSTEM | Доступно с PHP 7.0.0
opcache.file_cache_consistency_checks | "1" | PHP_INI_SYSTEM | Только в Windows. Доступно с PHP 7.0.0
opcache.file_cache_fallback | "1" | PHP_INI_SYSTEM | Доступно с PHP 7.0.0
opcache.validate_permission | "0" | PHP_INI_SYSTEM | Доступно с PHP 7.0.14
opcache.validate_root | "0" | PHP_INI_SYSTEM | Доступно с PHP 7.0.14
opcache.preload | "" | PHP_INI_SYSTEM | Доступно с PHP 7.4.0
opcache.preload_user | "" | PHP_INI_SYSTEM | Доступно с PHP 7.4.0
opcache.cache_id | "1" | PHP_INI_SYSTEM | Только в Windows. Доступно с PHP 7.4.0
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

opcache.enable boolean

Разрешает кеширование опкодов. Если запрещено, код не будет оптимизироваться и кешироваться. Опцию opcache.enable нельзя включить во время исполнения с помощью ini_set(), но можно выключить. Попытка включить ее таким образом приведет к генерации предупреждения.

opcache.enable_cli boolean

Разрешает кеширование опкодов для CLI-версии PHP.

opcache.memory_consumption integer

Размер разделяемой памяти в мегабайтах для OPcache.

opcache.interned_strings_buffer integer

Количество памяти в мегабайтах для хранения интернированных строк. Игнорируется в PHP < 5.3.0.

opcache.max_accelerated_files integer

Максимальное количество ключей (и, соответственно, скриптов) в хеш-таблице OPcache. Фактическое используемое значение будет первым числом из набора { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 }, которое больше или равно заданному в этом параметре. Минимум 200, максимум 100000 в PHP < 5.5.6 и 1000000 в более поздних версиях.

opcache.max_wasted_percentage integer

Максимальное значение потерянной памяти (в процентах) после которого планируется перезапуск.

opcache.use_cwd boolean

Если включено, OPcache добавляет текущую рабочую директорию к ключу скрипта, тем самым устраняя возможность коллизий для файлов с одинаковым именем. Отключение этой опции повышает производительность, но может привести к сбоям.

opcache.validate_timestamps boolean

Если включено, OPcache будет проверять актуальность закешированных скриптов каждые opcache.revalidate_freq секунд. Когда запрещено, вы можете перезапустить OPcache вручную с помощью opcache_reset(), opcache_invalidate() или перезапустив веб-сервер для того, чтобы изменения вступили в силу.

opcache.revalidate_freq integer

Как часто в секундах проверять временные метки файлов. 0 приведет к тому, что OPcache будет производить эту проверку при каждом запросе.

Эта директива игнорируется, если выключена opcache.validate_timestamps.

opcache.revalidate_path boolean

Если выключено, существующие закешированные файлы, использующие один и тот же include_path, будут повторно использоваться. Таким образом, если файл с тем же именем находится в другом месте в include_path, он не будет найден.

opcache.save_comments boolean

Если выключено, все комментарии будут отброшены из кеша опкодов для минимизации размера кода. Отключение этой опции может привести к тому, что некоторые фреймворки, полагающиеся на аннотации в комментариях, перестанут работать, включая Doctrine, Zend Framework 2 и PHPUnit.

opcache.load_comments boolean

Если выключено, комментарии не будут загружаться из кеша опкодов, даже если они там есть. Может использоваться вместе с opcache.save_comments для подгрузки комментариев только для тех приложений, которым они нужны.

opcache.fast_shutdown boolean

Если включено, то будет использована быстрая последовательность перезагрузки, при которой не происходит очистки всех выделенных блоков памяти. Вместо этого для освобождения всего набора переменных используется стандартный менеджер памяти Zend Engine.

Эта директива была удалена в PHP 7.2.0. Вариант быстрой последовательности перезагрузки был интегрирован в PHP и автоматически будет использоваться, если это возможно.

opcache.enable_file_override boolean

Если включено, то кеш опкодов будет проверять, закеширован ли уже файл при вызове функций file_exists(), is_file() и is_readable(). Это может повысить производительность для приложений, проверяющих присутствие и доступность для чтения скриптом PHP, но несет риск возврата устаревших данных, если запрещена опция opcache.validate_timestamps.

opcache.optimization_level integer

Битовая маска, контролирующая, какие шаги оптимизации выполняются.

opcache.inherited_hack boolean

В PHP < 5.3 OPcache хранит места, где опкод DECLARE_CLASS использует наследование; когда файл загружен, OPcache пытается связать унаследованные классы с использованием текущего окружения. Проблема в том, что опкод DECLARE_CLASS может быть не нужен для текущего скрипта, и если скрипту требуется определение этого опкода, он может не запуститься.

Эта директива игнорируется в PHP 5.3 и выше.

opcache.dups_fix boolean

Этот хак требуется только для обхода ошибок "Cannot redeclare class".

opcache.blacklist_filename string

Местоположение черного списка OPcache. Файл черного списка содержит имена файлов, которые не нужно ускорять, по одной записи на строку. Допустимы шаблоны поиска и префиксы. Строки, начинающиеся с точки с запятой игнорируются

Пример простого черного списка:

; Указываем конкретный файл.
/var/www/broken.php
; Префикс, обозначающий все файлы, начинающиеся с x.
/var/www/x
; Шаблон поиска.
/var/www/*-broken.php
opcache.max_file_size integer

Максимальный размер файла для кеширования в байтах. Если задать 0, то кешироваться будут все файлы.

opcache.consistency_checks integer

Если не ноль, OPcache будет сверять контрольную сумму кеша каждые N запросов, где N - заданное в этой директиве значение. Рекомендуется включать только при отладке, так как сильно влияет на производительность.

opcache.force_restart_timeout integer

Количество секунд ожидания освобождения кеша, после которого будет принудительно произведен запланированный перезапуск. Если это время превышено, OPcache считает, что происходит что-то неправильное и убивает процесс, блокирующий кеш.

Если параметр opcache.log_verbosity_level задать равным 2 или больше, то, при возникновении подобной ситуации, в лог ошибок будет записано предупреждение.

opcache.error_log string

Лог ошибок OPcache. Пустая строка считается как stderr, и ошибки будут выведены в стандартный поток ошибок (в большинстве случаев это лог ошибок веб-сервера).

opcache.log_verbosity_level integer

Уровень подробности лога ошибок. По умолчанию будут записываться только фатальные ошибки (уровень 0) и ошибки (уровень 1). Также значения могут быть следующими: предупреждения (уровень 2), информационные сообщения (уровень 3) и сообщения отладки (уровень 4).

opcache.preferred_memory_model string

Предпочитаемая модель памяти для OPcache. Если оставить пустым, то OPcache самостоятельно выберет наиболее подходящую модель, которая будет вести себя корректно практически в любых случаях.

Возможные значения включают mmap, shm, posix и win32.

opcache.protect_memory boolean

Защищает разделяемую память от неожиданной записи во время запуска скриптов. Полезно только для внутренней отладки.

opcache.mmap_base string

Базовое значение для сегмента разделяемой памяти в Windows. Все процессы PHP должны отображать разделяемую память в одинаковое адресное пространство. Данная опция помогает починить ошибки типа "Unable to reattach to base address".

opcache.restrict_api string

Позволяет вызывать функции API OPcache только скриптам, чей путь начинается с указанной строки. Значение по умолчанию "" означает отсутствие ограничений.

opcache.file_update_protection string

Предотвращает кеширование файлов младше указанного количества секунд. Это помогает предотвратить кеширование не до конца обновленных файлов. В случае, если у вас все обновления файлов атомарны, можно повысить производительность, задав этот параметр равным "0".

opcache.huge_code_pages string

Включает или отключает копирование кода PHP (текстового сегмента) в HUGE PAGES. Это может повысить производительность, но требует соответствующих системных настроек.

opcache.lockfile_path string

Абсолютный путь к хранилищу общих файлов блокировок (только *nix)

opcache.opt_debug_level string

Производит вывод опкодов для отладки разных этапов оптимизации. 0x10000 приведет к выводу опкодов как только они сгенерированы компилятором, до применения какой-либо оптимизации. 0x20000 приведет к выводу опкодов после оптимизации.

opcache.file_cache string

Разрешает и задает директорию кеша второго уровня. Это должно повысить производительность в случае, если память SHM заполнена, сервер перезапущен или SHM сброшена. Значение по умолчанию "" запрещает кеширование на файловой системе.

opcache.file_cache_only boolean

Включает или выключает кеширование опкодов в разделяемой памяти.

opcache.file_cache_consistency_checks boolean

Включает или выключает проверку контрольной суммы при загрузке скрипта из файлового кеша.

opcache.file_cache_fallback boolean

Применяет opcache.file_cache_only=1 для некоторых процессов, которые завершились ошибкой при переподключении к разделяемой памяти (только для Windows). Требуется явно разрешенное кеширование на файловую систему.

Предостережение

Отключение этой опции конфигурации может помешать запуску процессов, и поэтому не рекомендуется.

opcache.validate_permission boolean

Проверяет права доступа к кешированному файлу для текущего пользователя.

opcache.validate_root boolean

Предотвращает коллизии имен в chroot-окружении. Должно быть включено для всех случаев использования chroot-окружений для предотвращения доступа к файлам за пределами chroot.

opcache.preload string

Задает скрипт PHP, который будет скомпилирован и запущен при старте сервера и сможет предзагрузить другие файлы, либо с помощью include, либо используя функцию opcache_compile_file(). Все сущности (например функции и классы), определенные в этих файлах, автоматически будут доступны до момента выключения сервера.

opcache.preload_user string

Предварительная загрузка кода с правами root запрещена по соображениям безопасности. Эта директива облегчает запуск предварительной загрузки от имени другого пользователя.

opcache.cache_id string

В Windows все процессы, выполняющие один и тот же PHP SAPI под одной и той же учетной записью пользователя с одинаковым идентификатором кеша, совместно используют один экземпляр OPcache. Значение идентификатора кеша может быть свободно выбрано.


  • « Настройка во время выполнения
  • Функции OPcache »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Функции OPcache

Содержание

  • opcache_compile_file — Скомпилировать и закешировать, но не исполнять скрипт PHP
  • opcache_get_configuration — Получить конфигурационную информацию кеша
  • opcache_get_status — Получить информацию о состоянии кеша
  • opcache_invalidate — Аннулирует закешированный скрипт
  • opcache_is_script_cached — Проверяет, закеширован ли скрипт в OPCache
  • opcache_reset — Сбрасывает содержимое кеша опкодов


Скомпилировать и закешировать, но не исполнять скрипт PHP

  • « Функции OPcache
  • opcache_get_configuration »
  • PHP Manual
  • Функции OPcache
  • Скомпилировать и закешировать, но не исполнять скрипт PHP

opcache_compile_file

(PHP 5 >= 5.5.5, PHP 7, PECL ZendOpcache > 7.0.2)

opcache_compile_file — Скомпилировать и закешировать, но не исполнять скрипт PHP

Описание

opcache_compile_file ( string $file ) : bool

Эта функция компилирует PHP-скрипт и помещает его в кеш опкодов, но не запускает его. Можно использовать для прогрева кеша после перезапуска веб-сервера.

Список параметров

file

Путь к скрипту PHP.

Возвращаемые значения

Возвращает TRUE, если file успешно скомпилирован или FALSE в случае возникновения ошибки.

Ошибки

Если file не может быть загружен или скомпилирован, будет выдана ошибка уровня E_WARNING. Для подавления предупреждения можно использовать @.

Смотрите также

  • opcache_invalidate() - Аннулирует закешированный скрипт


Получить конфигурационную информацию кеша

  • « opcache_compile_file
  • opcache_get_status »
  • PHP Manual
  • Функции OPcache
  • Получить конфигурационную информацию кеша

opcache_get_configuration

(PHP 5 >= 5.5.0, PHP 7, PECL ZendOpcache > 7.0.2)

opcache_get_configuration — Получить конфигурационную информацию кеша

Описание

opcache_get_configuration ( void ) : array

Эта функция возвращает настройки конфигурации экземпляра кеша.

Возвращаемые значения

Возвращает массив с информацией, включая INI-настройки, черный список и версию

Ошибки

Если используется opcache.restrict_api и текущий путь подпадает под запрет, то будет вызвана ошибка уровня E_WARNING и никаких данных возвращено не будет.

Смотрите также

  • opcache_get_status() - Получить информацию о состоянии кеша


Получить информацию о состоянии кеша

  • « opcache_get_configuration
  • opcache_invalidate »
  • PHP Manual
  • Функции OPcache
  • Получить информацию о состоянии кеша

opcache_get_status

(PHP 5 >= 5.5.0, PHP 7, PECL ZendOpcache > 7.0.2)

opcache_get_status — Получить информацию о состоянии кеша

Описание

opcache_get_status ([ bool $get_scripts = TRUE ] ) : array

Эта функция возвращает информацию о состоянии экземпляра кеша

Список параметров

get_scripts

Включить информацию о состоянии конкретного скрипта

Возвращаемые значения

Возвращает массив, опционально содержащий информацию о состоянии конкретного скрипта, или FALSE в случае возникновения ошибки.

Ошибки

Если используется opcache.restrict_api и текущий путь подпадает под запрет, то будет вызвана ошибка уровня E_WARNING и никаких данных возвращено не будет.

Смотрите также

  • opcache_get_configuration() - Получить конфигурационную информацию кеша


Аннулирует закешированный скрипт

  • « opcache_get_status
  • opcache_is_script_cached »
  • PHP Manual
  • Функции OPcache
  • Аннулирует закешированный скрипт

opcache_invalidate

(PHP 5 >= 5.5.0, PHP 7, PECL ZendOpcache >= 7.0.0)

opcache_invalidate — Аннулирует закешированный скрипт

Описание

opcache_invalidate ( string $script [, bool $force = FALSE ] ) : bool

Эта функция аннулирует закешированный скрипт. Если параметр force не задан или задан как FALSE, скрипт аннулируется, только если скрипт был модифицирован после помещения в кеш.

Список параметров

script

Путь к скрипту.

force

Если установлено как TRUE, кеш скрипта будет принудительно аннулирован независимо от того, требуется ли это или нет

Возвращаемые значения

Возвращает TRUE, если кеш опкодов для script аннулирован, либо если аннулировать нечего. В случае, если кеш опкодов отключен, возвращается FALSE.

Смотрите также

  • opcache_compile_file() - Скомпилировать и закешировать, но не исполнять скрипт PHP
  • opcache_reset() - Сбрасывает содержимое кеша опкодов


Проверяет, закеширован ли скрипт в OPCache

  • « opcache_invalidate
  • opcache_reset »
  • PHP Manual
  • Функции OPcache
  • Проверяет, закеширован ли скрипт в OPCache

opcache_is_script_cached

(PHP 5 >= 5.5.11, PHP 7, PECL ZendOpcache >= 7.0.4)

opcache_is_script_cached — Проверяет, закеширован ли скрипт в OPCache

Описание

opcache_is_script_cached ( string $file ) : bool

Эта функция проверяет, закеширован ли указанный скрипт в OPCache. Может быть использована для определения, прогрет ли кеш для конкретного скрипта.

Список параметров

file

Путь к файлу скрипта.

Возвращаемые значения

Возвращает TRUE, если file закеширован в OPCache, FALSE если нет.

Смотрите также

  • opcache_compile_file() - Скомпилировать и закешировать, но не исполнять скрипт PHP


Сбрасывает содержимое кеша опкодов

  • « opcache_is_script_cached
  • Контроль вывода »
  • PHP Manual
  • Функции OPcache
  • Сбрасывает содержимое кеша опкодов

opcache_reset

(PHP 5 >= 5.5.0, PHP 7, PECL ZendOpcache >= 7.0.0)

opcache_reset — Сбрасывает содержимое кеша опкодов

Описание

opcache_reset ( void ) : bool

Эта функция сбрасывает весь кеш. После вызова opcache_reset() все скрипты будут заново загружены, скомпилированы и помещены в кеш после их следующего вызова.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если кеш сброшен или FALSE, если не используется.

Смотрите также

  • opcache_invalidate() - Аннулирует закешированный скрипт


Управление буфером вывода

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Базовое использование
    • Использование перезаписи вывода
  • Функции контроля вывода
    • flush — Сброс системного буфера вывода
    • 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 — callback-функция, используемая для gzip-сжатия буфера вывода при вызове ob_start
    • ob_implicit_flush — Включение/выключение неявного сброса
    • ob_list_handlers — Список всех используемых обработчиков вывода
    • ob_start — Включение буферизации вывода
    • output_add_rewrite_var — Добавить значения в обработчик URL
    • output_reset_rewrite_vars — Сбросить значения обработчика URL


Введение

Функции управления выводом позволяют вам контролировать вывод, отправляемый скриптом. Это может быть полезно в различных ситуациях, особенно если вам необходимо отправить заголовки в браузер после того, как ваш скрипт уже начал выводить данные. Функции управления выводом не влияют на заголовки, отправленные с помощью функций header() или setcookie(), а влияют только на такие функции, как echo и данные между блоками PHP кода.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Конфигурационные опции управления выводом
Имя | По умолчанию | Место изменения | Список изменений
output_buffering | "0" | PHP_INI_PERDIR |
output_handler | NULL | PHP_INI_PERDIR |
implicit_flush | "0" | PHP_INI_ALL |
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | До PHP 7.1.0 использовалась для установки перезаписи сессии "trans sid". С PHP 7.1.0 используется только output_add_rewrite_var().
url_rewriter.hosts | $_SERVER['HTTP_HOST'] используется по умолчанию. | PHP_INI_ALL | Доступно с PHP 7.1.0
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

output_buffering boolean/integer

Вы можете разрешить буферизацию вывода для всех файлов, установив эту директиву в 'On'. Если вы хотите ограничить размер буфера до определенного размера, вы можете установить не 'On', а максимальное количество байт в этой директиве (например, output_buffering=4096). Эта директива всегда отключена в PHP-CLI.

output_handler string

Вы можете перенаправить весь вывод вашего скрипта в функцию. Для примера, если вы установите output_handler в mb_output_handler(), то кодировка символов прозрачно преобразуется в соответствии с указанной кодировкой. Настройка любого обработчика вывода автоматически включает буферизацию вывода.

Замечание:

Вы не можете использовать вместе mb_output_handler() с ob_iconv_handler(), и вы не можете использовать вместе ob_gzhandler() и zlib.output_compression.

Замечание:

Только встроенные функции могут использоваться с этой директивой. Для функции, определенной пользователем, используйте ob_start().

implicit_flush boolean

FALSE по умолчанию. Изменение значения на TRUE указывает PHP не сохранять данные в буфер, а после каждого отправленного блока автоматически отправлять данные в выходной слой. Это эквивалентно вызову PHP-функции flush() после каждого вызова print или echo для каждого HTML-блока.

При использовании PHP в веб-среде, включение этой опции приведет к серьезной потере производительности, поэтому рекомендуется использовать ее только для отладки. Это значение по умолчанию имеет TRUE при работе в CLI SAPI.

См. также ob_implicit_flush().

url_rewriter.tags string
url_rewriter.tags определяет, какие HTML-теги будут перезаписаны значениями output_add_rewrite_var(). По умолчанию a=href,area=href,frame=src,input=src,form= form является специальным тегом. <input hidden="session_id" name="session_name"> добавляется как переменная формы.

Замечание: До PHP 7.1.0 надо было использовать url_rewriter.tags для указания session.trans_sid_tags. Начиная с PHP 7.1.0, fieldset больше не рассматривается как специальный тег.

url_rewriter.hosts string
url_rewriter.hosts указывает, какие хосты перезаписываются для включения значений output_add_rewrite_var(). По умолчанию используется $_SERVER['HTTP_HOST']. Несколько хостов можно указать перечислив их через запятую, между хостами не должно быть пробелов. То есть php.net,wiki.php.net,bugs.php.net


Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

PHP_OUTPUT_HANDLER_START (integer)

Служит признаком того, что буферирование вывода началось.

PHP_OUTPUT_HANDLER_WRITE (integer)

Служит признаком того, что буфер вывода очищается и в нем находятся данные для вывода.

Доступно начиная с PHP 5.4.

PHP_OUTPUT_HANDLER_FLUSH (integer)

Обозначает, что буфер был сброшен (очищен и выведен).

Доступно начиная с PHP 5.4.

PHP_OUTPUT_HANDLER_CLEAN (integer)

Обозначает, что буфер был очищен.

Доступно начиная с PHP 5.4.

PHP_OUTPUT_HANDLER_FINAL (integer)

Обозначает, что это последняя операция буферирования.

Доступно начиная с PHP 5.4.

PHP_OUTPUT_HANDLER_CONT (integer)

Обозначает, что буфер был очищен, но буферирование вывода будет продолжено.

Начиная с PHP 5.4 это синоним для PHP_OUTPUT_HANDLER_WRITE.

PHP_OUTPUT_HANDLER_END (integer)

Обозначает, что буферирование вывода завершено.

Начиная с PHP 5.4 это синоним для PHP_OUTPUT_HANDLER_FINAL.

PHP_OUTPUT_HANDLER_CLEANABLE (integer)

Определяет может ли буфер вывода, созданный ob_start(), быть очищенным.

Доступно начиная с PHP 5.4.

PHP_OUTPUT_HANDLER_FLUSHABLE (integer)

Определяет может ли буфер вывода, созданный ob_start(), быть сброшен (выведен и очищен).

Доступно начиная с PHP 5.4.

PHP_OUTPUT_HANDLER_REMOVABLE (integer)

Определяет может ли буфер вывода, созданный ob_start(), быть удаленным до завершения скрипта.

Доступно начиная с PHP 5.4.

PHP_OUTPUT_HANDLER_STDFLAGS (integer)

Значение по умолчанию для флагов буфера вывода. Равняется PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_FLUSHABLE | PHP_OUTPUT_HANDLER_REMOVABLE.

Доступно начиная с PHP 5.4.


  • « Предопределенные константы
  • Базовое использование »
  • PHP Manual
  • Контроль вывода
  • Примеры

Примеры

Содержание

  • Базовое использование
  • Использование перезаписи вывода


Базовое использование

Пример #1 Пример контроля вывода

<?php

ob_start();
echo "Привет\n";

setcookie("cookiename", "cookiedata");

ob_end_flush();

?>

В приведенном выше примере вывод из echo будет храниться в буфере вывода до вызова ob_end_flush(). В то же время вызов setcookie() успешно сохранится в cookie браузера, не вызывая ошибки (заголовки не могут быть отправлены в браузер после того, как данные уже были отправлены).


Использование перезаписи вывода

Начиная с PHP 7.1.0, output_add_rewrite_var() и output_reset_rewrite_vars() используют отдельный буфер вывода, то есть не используют буфер вывода прозрачной поддержки sid.

Пример #1 Пример перезаписи вывода

<?php
// Этот код работает с PHP 7.1.0, 7.0.10, 5.6.25 и выше.

// HTTP_HOST - целевой хост по умолчанию. Зададим сами, чтобы код примера заработал.
$_SERVER['HTTP_HOST'] = 'php.net';

// Перезаписыватель вывода перезаписывает только "form". Добавим a=href.
// Теги должны указываться как tag_name=url_attr, то есть img=src,iframe=src
// Между настройками пробелы недопустимы.
// Тег "form" - специальный тег, в который добавляется скрытый "input"
ini_set('url_rewriter.tags','a=href,form=');
var_dump(ini_get('url_rewriter.tags'));

// Это добавлено в URL и "form"
output_add_rewrite_var('test', 'value');
?>
<a href="//php.net/index.php?bug=1234">bug1234</a>
<form action="https://php.net/?bug=1234&edit=1" action="post">
 <input type="text" name="title" />
</form>

Результат выполнения данного примера:

<a href="//php.net/?bug=1234&test=value">bug1234</a>
<form action="https://php.net/?bug=1234&edit=1" method="post"><input type="hidden" name="test" value="value" />
 <input type="text" name="title" />
</form>

С PHP 7.1.0, функции перезаписи вывода имеют свои собственные INI-настройки. url_rewriter.tags и url_rewriter.hosts.


Функции контроля вывода

Смотрите также

См. также header() и setcookie().

Содержание

  • flush — Сброс системного буфера вывода
  • 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 — callback-функция, используемая для gzip-сжатия буфера вывода при вызове ob_start
  • ob_implicit_flush — Включение/выключение неявного сброса
  • ob_list_handlers — Список всех используемых обработчиков вывода
  • ob_start — Включение буферизации вывода
  • output_add_rewrite_var — Добавить значения в обработчик URL
  • output_reset_rewrite_vars — Сбросить значения обработчика URL


Сброс системного буфера вывода

  • « Функции контроля вывода
  • ob_clean »
  • PHP Manual
  • Функции контроля вывода
  • Сброс системного буфера вывода

flush

(PHP 4, PHP 5, PHP 7)

flush — Сброс системного буфера вывода

Описание

flush ( void ) : void

Функция очищает системный буфер вывода PHP, при этом всё содержимое буфера отправляется в браузер пользователя (с некоторыми исключениями), независимо от используемого бекенда PHP (CGI, веб-сервер и т.д.).

flush() не сможет переопределить схему буферизации вашего веб-сервера и никак не влияет на буферизацию браузера на стороне клиента. Функция также не влияет на механизм буферизации пользовательского PHP-кода. Это означает, что если вы используете выходные буферы ob, то вам придется вызывать ob_flush() и flush() вместе для сброса буфера.

Некоторые серверы, особенно под управлением Win32, будут по-прежнему продолжать буферизировать вывод вашего скрипта до передачи результатов в браузер.

Серверные модули для Apache, такие как mod_gzip, могут сами выполнять буферизацию, поэтому flush() не приводит к немедленной передаче данных клиенту.

Браузер может также буферизировать поступающие к нему данные перед отображением. Например, Netscape, буферизирует текст до тех пор, пока не получит конец строки или начало тега, и не будет отображать таблицы пока не будет замечен тег </table> самой внешней таблицы.

Некоторые версии Microsoft Internet Explorer начинают отображать страницу только после получения 256 байт вывода, поэтому может понадобиться отправить дополнительные пробелы перед сбросом, чтобы такие браузеры отобразили страницу.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ob_flush() - Сбросить (отправить) буфер вывода
  • ob_clean() - Очистить (стереть) буфер вывода
  • ob_end_flush() - Сбросить (отправить) буфер вывод и отключить буферизацию вывода
  • ob_end_clean() - Очистить (стереть) буфер вывода и отключить буферизацию вывода


Очистить (стереть) буфер вывода

  • « flush
  • ob_end_clean »
  • PHP Manual
  • Функции контроля вывода
  • Очистить (стереть) буфер вывода

ob_clean

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ob_clean — Очистить (стереть) буфер вывода

Описание

ob_clean ( void ) : void

Эта функция очищает содержимое выходного буфера, не отправляя его в браузер.

Эта функция не уничтожает буфер вывода, как это делает ob_end_clean().

Буфер вывода должен запускаться функцией ob_start() с флагом PHP_OUTPUT_HANDLER_CLEANABLE. Иначе ob_clean() не сработает.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ob_flush() - Сбросить (отправить) буфер вывода
  • ob_end_flush() - Сбросить (отправить) буфер вывод и отключить буферизацию вывода
  • ob_end_clean() - Очистить (стереть) буфер вывода и отключить буферизацию вывода


Очистить (стереть) буфер вывода и отключить буферизацию вывода

  • « ob_clean
  • ob_end_flush »
  • PHP Manual
  • Функции контроля вывода
  • Очистить (стереть) буфер вывода и отключить буферизацию вывода

ob_end_clean

(PHP 4, PHP 5, PHP 7)

ob_end_clean — Очистить (стереть) буфер вывода и отключить буферизацию вывода

Описание

ob_end_clean ( void ) : bool

Эта функция удаляет содержимое самого верхнего буфера вывода и отключает эту буферизацию. Если вы хотите использовать содержимое буфера, то вам необходимо вызвать ob_get_contents() перед ob_end_clean(), так как все содержимое буфера удаляется при вызове ob_end_clean().

Буфер вывода должен запускаться функцией ob_start() с флагами PHP_OUTPUT_HANDLER_CLEANABLE и PHP_OUTPUT_HANDLER_REMOVABLE. Иначе не сработает ob_end_clean().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Основной причиной неудачного завершения работы функции является ее вызов без активного буфера или если буфер не может быть удален (специальный тип буфера).

Ошибки

Если функция завершается ошибкой, генерируется E_NOTICE.

Примеры

Следующий пример показывает простой способ избавиться от всех выходных буферов:

Пример #1 Пример использования функции ob_end_clean()

<?php
ob_start();
echo 'Текст, который не отобразится.';
ob_end_clean();
?>

Смотрите также

  • ob_start() - Включение буферизации вывода
  • ob_get_contents() - Возвращает содержимое буфера вывода
  • ob_flush() - Сбросить (отправить) буфер вывода


Сбросить (отправить) буфер вывод и отключить буферизацию вывода

  • « ob_end_clean
  • ob_flush »
  • PHP Manual
  • Функции контроля вывода
  • Сбросить (отправить) буфер вывод и отключить буферизацию вывода

ob_end_flush

(PHP 4, PHP 5, PHP 7)

ob_end_flush — Сбросить (отправить) буфер вывод и отключить буферизацию вывода

Описание

ob_end_flush ( void ) : bool

Эта функция отправит содержимое самого верхнего буфера вывода (если оно имеется) и отключит этот буфер вывода. Если вы хотите использовать содержимое буфера, то вам необходимо вызвать ob_get_contents() перед ob_end_flush(), т.к. все содержимое буфера удаляется при вызове ob_end_flush().

Буфер вывода должен запускаться функцией ob_start() с флагами PHP_OUTPUT_HANDLER_FLUSHABLE и PHP_OUTPUT_HANDLER_REMOVABLE.

Замечание: Эта функция аналогична ob_get_flush(), за исключением того, что ob_get_flush() возвращает содержимое буфера в виде строки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Основной причиной неудачного завершения работы функции является ее вызов без активного буфера или если буфер не может быть удален (специальный тип буфера).

Ошибки

Если функция завершается ошибкой, генерируется E_NOTICE.

Примеры

Пример #1 Пример использования функции ob_end_flush()

Следующий пример показывает простой способ сброса и завершения всех буферов вывода:

<?php
  while (@ob_end_flush());
?>

Смотрите также

  • ob_start() - Включение буферизации вывода
  • ob_get_contents() - Возвращает содержимое буфера вывода
  • ob_get_flush() - Сбросить буфер вывода, вернуть его в виде строки и отключить буферизацию вывода
  • ob_flush() - Сбросить (отправить) буфер вывода
  • ob_end_clean() - Очистить (стереть) буфер вывода и отключить буферизацию вывода


Сбросить (отправить) буфер вывода

  • « ob_end_flush
  • ob_get_clean »
  • PHP Manual
  • Функции контроля вывода
  • Сбросить (отправить) буфер вывода

ob_flush

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ob_flush — Сбросить (отправить) буфер вывода

Описание

ob_flush ( void ) : void

Эта функция отправит содержимое буфера вывода (если имеется).
Если необходима дальнейшая обработка буфера вывода, то следует
вызвать ob_get_contents() перед
ob_flush(), так как содержимое буфера будет
удалено после вызова ob_flush().

Эта функция не уничтожает буфер вывода, как это делает ob_end_flush().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ob_get_contents() - Возвращает содержимое буфера вывода
  • ob_clean() - Очистить (стереть) буфер вывода
  • ob_end_flush() - Сбросить (отправить) буфер вывод и отключить буферизацию вывода
  • ob_end_clean() - Очистить (стереть) буфер вывода и отключить буферизацию вывода


Получить содержимое текущего буфера и удалить его

  • « ob_flush
  • ob_get_contents »
  • PHP Manual
  • Функции контроля вывода
  • Получить содержимое текущего буфера и удалить его

ob_get_clean

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ob_get_clean — Получить содержимое текущего буфера и удалить его

Описание

ob_get_clean ( void ) : string

Получает содержимое текущего буфера и затем удаляет текущий буфер.

ob_get_clean() по сути выполняет
ob_get_contents() и
ob_end_clean().

Буфер вывода должен запускаться функцией ob_start() с флагами PHP_OUTPUT_HANDLER_CLEANABLE и PHP_OUTPUT_HANDLER_REMOVABLE. Иначе ob_get_clean() не сработает.

Возвращаемые значения

Возвращает содержимое буфера вывода и заканчивает буферизацию вывода. Если буферизация вывода не активирована, то функция вернет FALSE.

Примеры

Пример #1 Простой пример использования функции ob_get_clean()

<?php

ob_start();

echo "Привет мир";

$out = ob_get_clean();
$out = strtolower($out);

var_dump($out);
?>

Результат выполнения данного примера:

string(11) "привет мир"

Смотрите также

  • ob_get_contents() - Возвращает содержимое буфера вывода
  • ob_start() - Включение буферизации вывода


Возвращает содержимое буфера вывода

  • « ob_get_clean
  • ob_get_flush »
  • PHP Manual
  • Функции контроля вывода
  • Возвращает содержимое буфера вывода

ob_get_contents

(PHP 4, PHP 5, PHP 7)

ob_get_contents — Возвращает содержимое буфера вывода

Описание

ob_get_contents ( void ) : string

Получает содержимое буфера без его очистки.

Возвращаемые значения

Функция вернет содержимое буфера вывода или FALSE, если буферизация вывода не активирована.

Примеры

Пример #1 Простой пример использования функции ob_get_contents()

<?php

ob_start();

echo "Привет ";

$out1 = ob_get_contents();

echo "Мир";

$out2 = ob_get_contents();

ob_end_clean();

var_dump($out1, $out2);
?>

Результат выполнения данного примера:

string(6) "Привет "
string(11) "Привет Мир"

Смотрите также

  • ob_start() - Включение буферизации вывода
  • ob_get_length() - Возвращает размер буфера вывода


Сбросить буфер вывода, вернуть его в виде строки и отключить буферизацию вывода

  • « ob_get_contents
  • ob_get_length »
  • PHP Manual
  • Функции контроля вывода
  • Сбросить буфер вывода, вернуть его в виде строки и отключить буферизацию вывода

ob_get_flush

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ob_get_flush — Сбросить буфер вывода, вернуть его в виде строки и отключить буферизацию вывода

Описание

ob_get_flush ( void ) : string

ob_get_flush() сбрасывает буфер вывода, возвращая его содержимое в виде строки и отключает буферизацию вывода.

Буфер вывода должен запускаться функцией ob_start() с флагом PHP_OUTPUT_HANDLER_FLUSHABLE. Иначе не сработает ob_get_flush().

Замечание: Эта функция аналогична ob_end_flush() за исключением того, что эта функция также возвращает буфер в виде строки.

Возвращаемые значения

Возвращает буфер вывода или FALSE, если буферизация не активна.

Примеры

Пример #1 Пример использования функции ob_get_flush()

<?php
//Используется output_buffering=On
print_r(ob_list_handlers());

//сохранить буфер в файл
$buffer = ob_get_flush();
file_put_contents('buffer.txt', $buffer);

print_r(ob_list_handlers());
?>

Результат выполнения данного примера:

Array
(
    [0] => default output handler
)
Array
(
)

Смотрите также

  • ob_end_clean() - Очистить (стереть) буфер вывода и отключить буферизацию вывода
  • ob_end_flush() - Сбросить (отправить) буфер вывод и отключить буферизацию вывода
  • ob_list_handlers() - Список всех используемых обработчиков вывода


Возвращает размер буфера вывода

  • « ob_get_flush
  • ob_get_level »
  • PHP Manual
  • Функции контроля вывода
  • Возвращает размер буфера вывода

ob_get_length

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ob_get_length — Возвращает размер буфера вывода

Описание

ob_get_length ( void ) : int

Вернет размер в байтах содержимого в буфере вывода.

Возвращаемые значения

Возвращает размер в байтах содержимого буфера вывода или FALSE, если буферизация не активна.

Примеры

Пример #1 Простой пример использования функции ob_get_length()

<?php

ob_start();

echo "Привет ";

$len1 = ob_get_length();

echo "Мир";

$len2 = ob_get_length();

ob_end_clean();

echo $len1 . ", " . $len2;
?>

Результат выполнения данного примера:

13, 19

Смотрите также

  • ob_start() - Включение буферизации вывода
  • ob_get_contents() - Возвращает содержимое буфера вывода


Возвращает уровень вложенности механизма буферизации вывода

  • « ob_get_length
  • ob_get_status »
  • PHP Manual
  • Функции контроля вывода
  • Возвращает уровень вложенности механизма буферизации вывода

ob_get_level

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ob_get_level — Возвращает уровень вложенности механизма буферизации вывода

Описание

ob_get_level ( void ) : int

Вернет уровень вложенности механизма буферизации вывода.

Возвращаемые значения

Возвращает уровень вложенности обработчиков буферизации вывода или 0, если буферизация не активна.

Смотрите также

  • ob_start() - Включение буферизации вывода
  • ob_get_contents() - Возвращает содержимое буфера вывода


Получить статус буфера вывода

  • « ob_get_level
  • ob_gzhandler »
  • PHP Manual
  • Функции контроля вывода
  • Получить статус буфера вывода

ob_get_status

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ob_get_status — Получить статус буфера вывода

Описание

ob_get_status ([ bool $full_status = FALSE ] ) : array

ob_get_status() возвращает информацию о состоянии буфера верхнего уровня или на всех уровнях активных буферов, если full_status установлен в TRUE.

Список параметров

full_status

Если TRUE, то вернет все уровни активных буферов. Если FALSE или не установлен, то вернет статус только самого верхнего уровня.

Возвращаемые значения

Если функция вызвана без параметра full_status или full_status = FALSE, то возвращается простой массив из следующих элементов:

Array
(
    [level] => 2
    [type] => 0
    [status] => 0
    [name] => URL-Rewriter
    [del] => 1
)
Результаты простого вызова ob_get_status()
Ключ | Значение
level | Уровень вложенности вывода
type | PHP_OUTPUT_HANDLER_INTERNAL (0) или PHP_OUTPUT_HANDLER_USER (1)
status | Один из PHP_OUTPUT_HANDLER_START (0), PHP_OUTPUT_HANDLER_CONT (1) или PHP_OUTPUT_HANDLER_END (2)
name | Название действующего обработчика вывода или 'default output handler', если не задан
del | Флаг очистки, установленный ob_start()

Если функция вызвана с full_status = TRUE, то возвращается массив из элементов уровней активных буферов. В качестве ключа используется уровень вывода, и каждый элемент массива содержит в себе массив информации о статусе одного из активных элементов вывода.

Array
(
    [0] => Array
        (
            [chunk_size] => 0
            [size] => 40960
            [block_size] => 10240
            [type] => 1
            [status] => 0
            [name] => default output handler
            [del] => 1
        )

    [1] => Array
        (
            [chunk_size] => 0
            [size] => 40960
            [block_size] => 10240
            [type] => 0
            [buffer_size] => 0
            [status] => 0
            [name] => URL-Rewriter
            [del] => 1
        )

)

Полный вывод содержит следующие дополнительные элементы:

Полные результаты ob_get_status()
Ключ | Значение
chunk_size | Размер порции, установленный ob_start()
size | ...
blocksize | ...

Смотрите также

  • ob_get_level() - Возвращает уровень вложенности механизма буферизации вывода
  • ob_list_handlers() - Список всех используемых обработчиков вывода


callback-функция, используемая для gzip-сжатия буфера вывода при вызове ob_start

  • « ob_get_status
  • ob_implicit_flush »
  • PHP Manual
  • Функции контроля вывода
  • callback-функция, используемая для gzip-сжатия буфера вывода при вызове ob_start

ob_gzhandler

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ob_gzhandler — callback-функция, используемая для gzip-сжатия буфера вывода при вызове ob_start

Описание

ob_gzhandler ( string $buffer , int $mode ) : string

Функция ob_gzhandler() предназначена для использования в качестве callback-функции для ob_start(), чтобы облегчить отправку gz-кодированных данных браузерам, поддерживающим сжатие веб-страниц. Прежде чем ob_gzhandler() отправит сжатые данные, она определяет, какой тип кодирования содержимого сможет принять браузер ("gzip", "deflate" или вообще никакой) и вернет его содержимое соответствующим образом. Поддерживаются все браузеры, отправляющие корректные заголовки о том, что они принимают сжатые веб-страницы. Если браузер не поддерживает сжатие страниц, эта функция вернет FALSE.

Список параметров

buffer

mode

Возвращаемые значения

Примеры

Пример #1 Пример использования функции ob_gzhandler()

<?php

ob_start("ob_gzhandler");

?>
<html>
<body>
<p>Это должно быть сжатой страницей.</p>
</body>
</html>

Примечания

Замечание:

ob_gzhandler() требует наличие расширения zlib.

Замечание:

Вы не можете использовать одновременно ob_gzhandler() и zlib.output_compression. Также обратите внимание, что использование zlib.output_compression предпочтительнее, чем ob_gzhandler().

Смотрите также

  • ob_start() - Включение буферизации вывода
  • ob_end_flush() - Сбросить (отправить) буфер вывод и отключить буферизацию вывода


Включение/выключение неявного сброса

  • « ob_gzhandler
  • ob_list_handlers »
  • PHP Manual
  • Функции контроля вывода
  • Включение/выключение неявного сброса

ob_implicit_flush

(PHP 4, PHP 5, PHP 7)

ob_implicit_flush — Включение/выключение неявного сброса

Описание

ob_implicit_flush ([ int $flag = 1 ] ) : void

ob_implicit_flush() включает или выключает неявный сброс. Неявный сброс приводит к тому, что операция сброса выполняется после каждого вывода, поэтому явные вызовы функции flush() больше не понадобятся.

Список параметров

flag

1 для включения неявного сброса, 0 в противном случае.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • flush() - Сброс системного буфера вывода
  • ob_start() - Включение буферизации вывода
  • ob_end_flush() - Сбросить (отправить) буфер вывод и отключить буферизацию вывода


Список всех используемых обработчиков вывода

  • « ob_implicit_flush
  • ob_start »
  • PHP Manual
  • Функции контроля вывода
  • Список всех используемых обработчиков вывода

ob_list_handlers

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ob_list_handlers — Список всех используемых обработчиков вывода

Описание

ob_list_handlers ( void ) : array

Список всех используемых обработчиков вывода.

Возвращаемые значения

Функция вернет массив с используемыми обработчиками вывода (если имеются). Если включен output_buffering или использовалась анонимная функция вместе с ob_start(), то ob_list_handlers() вернет "default output handler".

Примеры

Пример #1 Пример использования функции ob_list_handlers()

<?php
//используется output_buffering=On
print_r(ob_list_handlers());
ob_end_flush();

ob_start("ob_gzhandler");
print_r(ob_list_handlers());
ob_end_flush();

// анонимная функция
ob_start(function($string) { return $string; });
print_r(ob_list_handlers());
ob_end_flush();
?>

Результат выполнения данного примера:

Array
(
    [0] => default output handler
)

Array
(
    [0] => ob_gzhandler
)

Array
(
    [0] => Closure::__invoke
)

Смотрите также

  • ob_end_clean() - Очистить (стереть) буфер вывода и отключить буферизацию вывода
  • ob_end_flush() - Сбросить (отправить) буфер вывод и отключить буферизацию вывода
  • ob_get_flush() - Сбросить буфер вывода, вернуть его в виде строки и отключить буферизацию вывода
  • ob_start() - Включение буферизации вывода


Включение буферизации вывода

  • « ob_list_handlers
  • output_add_rewrite_var »
  • PHP Manual
  • Функции контроля вывода
  • Включение буферизации вывода

ob_start

(PHP 4, PHP 5, PHP 7)

ob_start — Включение буферизации вывода

Описание

ob_start ([ callable $output_callback = NULL [, int $chunk_size = 0 [, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS ]]] ) : bool

Эта функция включает буферизацию вывода. Если буферизация вывода активна, никакой вывод скрипта не отправляется (кроме заголовков), а сохраняется во внутреннем буфере.

Содержимое этого внутреннего буфера может быть скопировано в строковую
переменную, используя ob_get_contents(). Для вывода
содержимого внутреннего буфера следует использовать ob_end_flush().
В качестве альтернативы можно использовать ob_end_clean()
для очистки содержимого буфера.

Внимание

Некоторые веб-серверы (например, Apache) изменяют рабочую директорию скрипта при вызове callback-функции. Вы можете вернуть ее назад, используя chdir(dirname($_SERVER['SCRIPT_FILENAME'])) в callback-функции.

Буферы вывода помещаются в стек, то есть допускается вызов ob_start() после вызова другой активной ob_start(). При этом необходимо вызывать ob_end_flush() соответствующее количество раз. Если активны несколько callback-функций, вывод последовательно фильтруется для каждой из них в порядке вложения.

Список параметров

output_callback

Можно задать необязательный параметр output_callback. Эта функция принимает строку в виде аргумента и должна также вернуть строку. Она вызывается при сбросе (отправке) или очистке (с помощью ob_flush(), ob_clean() или подобных функций) или если буфер вывода сбрасывается в браузер по окончанию запроса. При вызове функции output_callback, она получает содержимое буфера и, как ожидается, должна вернуть обновленное содержимое для буфера вывода, которое будет отправлено браузеру. Если output_callback не является допустимой функцией, то эта функция вернет FALSE. Описание функции для этого параметра:

handler ( string $buffer [, int $phase ] ) : string
buffer
Содержимое буфера вывода.
phase
Битовая маска констант PHP_OUTPUT_HANDLER_*.

Если output_callback вернет FALSE, то оригинальная информация отправится в браузер без изменений.

Параметр output_callback может быть игнорирован передачей значения NULL.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() и ob_start() не могут вызываться из callback-функций, так как их поведение непредсказуемо. Если вы хотите удалить содержимое буфера, то верните "" (пустую строку) из callback-функции. Вы также не можете использовать функции буферизации вывода, такие как print_r($expression, true) или highlight_file($filename, true) из callback-функции.

Замечание:

Функция ob_gzhandler() была введена для облегчения отправки gz-кодированных данных браузерам, поддерживающим сжатые веб-страницы. ob_gzhandler() определяет тип кодировки содержимого, принимаемый браузером, и возвращает вывод соответствующим образом.

chunk_size

Если передан необязательный параметр chunk_size, то буфер буден сброшен после любого вывода, превышающего или равного по размеру chunk_size. Значение по умолчанию 0 означает, что функция вывода будет вызвана, когда буфер будет закрыт.

До PHP 5.4.0, значение 1 было специальным значением, которое устанавливало параметр chunk_size в 4096.

flags

Параметр flags является битовой маской, которая управляет операциями, которые можно совершать над буфером вывода. По умолчанию она позволяет буферу вывода быть очищенным, сброшенным и удаленным, что равносильно значению PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_FLUSHABLE | PHP_OUTPUT_HANDLER_REMOVABLE или PHP_OUTPUT_HANDLER_STDFLAGS как сокращение этой комбинации.

Каждый флаг управляет доступом к набору функций, как описано ниже:

Константа | Функции
PHP_OUTPUT_HANDLER_CLEANABLE | ob_clean(), ob_end_clean() и ob_get_clean().
PHP_OUTPUT_HANDLER_FLUSHABLE | ob_end_flush(), ob_flush() и ob_get_flush().
PHP_OUTPUT_HANDLER_REMOVABLE | ob_end_clean(), ob_end_flush() и ob_get_flush().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | В случае, если ob_start() используется внутри callback-функции буфера вывода, эта функция больше не будет приводить к ошибке E_ERROR, а вместо этого будет вызывать E_RECOVERABLE_ERROR, позволяя сторонним обработчикам ошибок поймать ее.
5.4.0 | Третий параметр ob_start() изменен с логического (boolean) параметра erase (который при установке в FALSE предотвращал удаление буфера до тех пор, пока не завершалась работа скрипта) на целочисленный (integer) параметр flags. К сожалению, это означает появление несовместимости API для кода, который использовал третий параметр до версии PHP 5.4.0. Смотрите пример с флагами, чтобы понять как работать с кодом, чтобы он поддерживал совместимость с обеими версиями.
5.4.0 | Параметр chunk_size, установленный в 1, теперь приводит к выводу по 1 байту в выходной буфер.

Примеры

Пример #1 Пример callback-функции, определенной пользователем

<?php

function callback($buffer)
{
  // заменить все яблоки апельсинами
  return (str_replace("яблоки", "апельсины", $buffer));
}

ob_start("callback");

?>
<html>
<body>
<p>Это все равно что сравнить яблоки и апельсины.</p>
</body>
</html>
<?php

ob_end_flush();

?>

Результат выполнения данного примера:

<html>
<body>
<p>Это все равно что сравнить апельсины и апельсины.</p>
</body>
</html>

Пример #2 Создание нестираемого буфера вывода с совместимостью с версиями PHP 5.3 и 5.4

<?php

if (version_compare(PHP_VERSION, '5.4.0', '>=')) {
  ob_start(null, 0, PHP_OUTPUT_HANDLER_STDFLAGS ^
    PHP_OUTPUT_HANDLER_REMOVABLE);
} else {
  ob_start(null, 0, false);
}

?>

Смотрите также

  • ob_get_contents() - Возвращает содержимое буфера вывода
  • ob_end_clean() - Очистить (стереть) буфер вывода и отключить буферизацию вывода
  • ob_end_flush() - Сбросить (отправить) буфер вывод и отключить буферизацию вывода
  • ob_implicit_flush() - Включение/выключение неявного сброса
  • ob_gzhandler() - callback-функция, используемая для gzip-сжатия буфера вывода при вызове ob_start
  • ob_iconv_handler() - Преобразует символы из текущей кодировки в кодировку выходного буфера
  • mb_output_handler() - Callback-функция, преобразующая кодировку символов в выходном буфере
  • ob_tidyhandler() - Функция обратного вызова ob_start для восстановление буфера


Добавить значения в обработчик URL

  • « ob_start
  • output_reset_rewrite_vars »
  • PHP Manual
  • Функции контроля вывода
  • Добавить значения в обработчик URL

output_add_rewrite_var

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

output_add_rewrite_var — Добавить значения в обработчик URL

Описание

output_add_rewrite_var ( string $name , string $value ) : bool

Эта функция добавляет ещё одну пару имя/значение к механизму перезаписи URL. Имя и значение будут добавлены к URL (в качестве GET-параметров) и формам (как скрытые поля ввода) так же, как и идентификатор сессии, если включена прозрачная перезапись ссылок с использованием session.use_trans_sid.

Поведение этой функции контролируется параметрами php.ini url_rewriter.tags и url_rewriter.hosts.

Замечание: Вызов этой функции неявно запустит буферизацию вывода, если она еще не активна.

Список параметров

name

Имя параметра.

value

Значение параметра.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.0 | До PHP 7.1.0 переменные перезаписи, установленные функцией output_add_rewrite_var(), используют тот же буфер модуля сессии "trans sid". Начиная с PHP 7.1.0, используется отдельный буфер, url_rewriter.tags используется только для функций вывода, добавлен url_rewriter.hosts.

Примеры

Пример #1 Пример использования функции output_add_rewrite_var()

<?php
output_add_rewrite_var('var', 'value');

// несколько ссылок
echo '<a href="file.php">ссылка</a>
<a href="http://example.com">ссылка2</a>';

// форма
echo '<form action="script.php" method="post">
<input type="text" name="var2" />
</form>';

print_r(ob_list_handlers());
?>

Результат выполнения данного примера:

<a href="file.php?var=value">ссылка</a>
<a href="http://example.com">ссылка2</a>

<form action="script.php" method="post">
<input type="hidden" name="var" value="value" />
<input type="text" name="var2" />
</form>

Array
(
    [0] => URL-Rewriter
)

Смотрите также

  • output_reset_rewrite_vars() - Сбросить значения обработчика URL
  • ob_flush() - Сбросить (отправить) буфер вывода
  • ob_list_handlers() - Список всех используемых обработчиков вывода
  • url_rewriter.tags
  • url_rewriter.hosts
  • session.trans_sid_tags
  • session.trans_sid_hosts


Сбросить значения обработчика URL

  • « output_add_rewrite_var
  • Опции/информация PHP »
  • PHP Manual
  • Функции контроля вывода
  • Сбросить значения обработчика URL

output_reset_rewrite_vars

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

output_reset_rewrite_vars — Сбросить значения обработчика URL

Описание

output_reset_rewrite_vars ( void ) : bool

Эта функция сбрасывает обработчик URL и удаляет все значения, установленные функцией output_add_rewrite_var().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.0 | До PHP 7.1.0, переменные перезаписи установленные функцией output_add_rewrite_var() используют тот же буфер модуля сессии "trans sid". С PHP 7.1.0, используется отдельный буфер и output_reset_rewrite_vars() только удаляет переменные перезаписи определенные output_add_rewrite_var().

Примеры

Пример #1 Пример использования функции output_reset_rewrite_vars()

<?php
session_start();
output_add_rewrite_var('var', 'value');

echo '<a href="file.php">ссылка</a>';
ob_flush();

output_reset_rewrite_vars();
echo '<a href="file.php">ссылка</a>';
?>

Результат выполнения данного примера:

<a href="file.php?PHPSESSID=xxx&var=value">ссылка</a>
<a href="file.php">ссылка</a>

Смотрите также

  • output_add_rewrite_var() - Добавить значения в обработчик URL
  • ob_flush() - Сбросить (отправить) буфер вывода
  • ob_list_handlers() - Список всех используемых обработчиков вывода
  • url_rewriter.tags
  • url_rewriter.hosts
  • session.trans_sid_tags
  • session.trans_sid_hosts


Опции и информация PHP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Опции PHP/информационные функции
    • assert_options — Установка и получение настроек механизма проверки утверждений
    • assert — Проверяет, является ли утверждение FALSE
    • cli_get_process_title — Возвращает заголовок текущего процесса
    • cli_set_process_title — Устанавливает заголовок процесса
    • dl — Загружает расширение PHP во время выполнения
    • extension_loaded — Определить, загружено ли расширение
    • gc_collect_cycles — Принудительный запуск сборщика мусора
    • gc_disable — Отключает сборщик циклических ссылок
    • gc_enable — Включает сборщик циклических ссылок
    • gc_enabled — Возвращает текущее состояние сборщика циклических ссылок
    • gc_mem_caches — Освобождает память, используемую менеджером памяти Zend Engine
    • gc_status — Возвращает информацию о текущем статусе сборщика мусора
    • get_cfg_var — Извлекает значение настройки конфигурации PHP
    • get_current_user — Получает имя владельца текущего скрипта PHP
    • get_defined_constants — Возвращает ассоциативный массив с именами всех констант и их значений
    • get_extension_funcs — Возвращает массив имен функций модуля
    • get_include_path — Получение текущего значения настройки конфигурации include_path
    • get_included_files — Возвращает массив имен включенных в скрипт файлов
    • get_loaded_extensions — Возвращает массив имен всех скомпилированных и загруженных модулей
    • get_magic_quotes_gpc — Получение текущего значения настройки конфигурации magic_quotes_gpc
    • get_magic_quotes_runtime — Получение текущего значения настройки конфигурации magic_quotes_runtime
    • get_required_files — Псевдоним get_included_files
    • get_resources — Возвращает активные ресурсы
    • getenv — Получение значения переменной окружения
    • getlastmod — Получает время последней модификации страницы
    • getmygid — Получить GID владельца скрипта PHP
    • getmyinode — Получает значение inode текущего скрипта
    • getmypid — Получение ID процесса PHP
    • getmyuid — Получение UID владельца скрипта PHP
    • getopt — Получает параметры из списка аргументов командной строки
    • getrusage — Получает информацию об использовании текущего ресурса
    • ini_alter — Псевдоним ini_set
    • ini_get_all — Получает все настройки конфигурации
    • ini_get — Получает значение настройки конфигурации
    • ini_restore — Восстанавливает значение настройки конфигурации
    • ini_set — Устанавливает значение настройки конфигурации
    • magic_quotes_runtime — Псевдоним set_magic_quotes_runtime
    • main — Заглушка для main
    • memory_get_peak_usage — Возвращает пиковое значение объема памяти, выделенное PHP
    • memory_get_usage — Возвращает количество памяти, выделенное для PHP
    • php_ini_loaded_file — Получить путь к загруженному файлу php.ini
    • php_ini_scanned_files — Возвращает список .ini-файлов, найденных в дополнительной ini-директории
    • php_logo_guid — Получение guid логотипа
    • php_sapi_name — Возвращает тип интерфейса между веб-сервером и PHP
    • php_uname — Возвращает информацию об операционной системе, на которой запущен PHP
    • phpcredits — Выводит список разработчиков PHP
    • phpinfo — Выводит информацию о текущей конфигурации PHP
    • phpversion — Получает текущую версию PHP
    • putenv — Устанавливает значение переменной среды
    • restore_include_path — Восстанавливает изначальное значение настройки конфигурации include_path
    • set_include_path — Устанавливает значение настройки конфигурации include_path
    • set_magic_quotes_runtime — Установка текущего значения настройки magic_quotes_runtime
    • set_time_limit — Ограничение времени выполнения скрипта
    • sys_get_temp_dir — Возвращает путь к директории временных файлов
    • version_compare — Сравнивает две "стандартизованные" строки с номером версии PHP
    • zend_logo_guid — Получает Zend guid
    • zend_thread_id — Возвращает уникальный идентификатор текущего потока выполнения
    • zend_version — Получает версию движка Zend


Введение

Эти функции позволяют вам получить множество информации о самом PHP, например, установки конфигурации, загруженные расширения, версию и многое другое. Вы так же найдете функции для установки параметров работы PHP. Вероятно, самую известную функцию в PHP - phpinfo() - можно найти здесь.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Настройки PHP/Параметры конфигурации информации
Имя | По умолчанию | Место изменения | Список изменений
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 |
assert.exception | "0" | PHP_INI_ALL | Доступна с версии PHP 7.0.0.
enable_dl | "1" | PHP_INI_SYSTEM | Эта возможность устарела и будет обязательно удалена в будущем.
max_execution_time | "30" | PHP_INI_ALL |
max_input_time | "-1" | PHP_INI_PERDIR |
max_input_nesting_level | "64" | PHP_INI_PERDIR | Доступна с PHP 5.2.3.
max_input_vars | 1000 | PHP_INI_PERDIR | Доступна с PHP 5.3.9.
magic_quotes_gpc | "1" | PHP_INI_PERDIR | Удалена в PHP 5.4.0.
magic_quotes_runtime | "0" | PHP_INI_ALL | Удалена в PHP 5.4.0.
zend.enable_gc | "1" | PHP_INI_ALL | Доступна с PHP 5.3.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

assert.active boolean

Включение выполнение assert().

assert.bail boolean

Завершение работы скрипта при провале проверки утверждений.

assert.warning boolean

Вызов предупреждений PHP для каждой проваленной проверки утверждения.

assert.callback string

Пользовательская функция, вызываемая при провале проверки утверждений.

assert.quiet_eval boolean

Используйте эту настройку функции error_reporting() во время выполнения проверки утверждений. При включении настройки сообщения об ошибках во время проверки утверждений показываться не будут (неявный вызов error_reporting(0)). Если настройка выключена, ошибки будут выдаваться в соответствии с настройками error_reporting()

assert.exception boolean

Генерирует исключение AssertionError для неудачной проверки утверждения.

enable_dl boolean

Эта директива может оказаться полезной только в PHP, используемом в качестве модуля Apache. С ее помощью можно включать динамическую подгрузку расширений посредством функции dl(). Динамическая загрузка может быть включена или отключена для каждого отдельно взятого виртуального сервера или директории.

Главной причиной, по которой требуется выключение динамической загрузки, является безопасность. С помощью динамической загрузки можно обойти все open_basedir ограничения. По умолчанию динамическая загрузка разрешена, за исключением работы в безопасный режим. В безопасный режим невозможен вызов dl().

max_execution_time integer

Эта директива задает максимальное время в секундах, в течение которого скрипт должен полностью загрузиться. Если этого не происходит, парсер завершает работу скрипта. Этот механизм помогает предотвратить зависание сервера из-за плохо написанного скрипта. По умолчанию на загрузку дается 30 секунд. Если PHP запущен из командной строки, это значение по умолчанию равно 0.

На максимальное время выполнения не влияют системные вызовы, потоковые операции и т.п. За дополнительной информацией обращайтесь к документации к функции set_time_limit().

При работе в безопасный режим эту настройку нельзя изменить функцией ini_set(). Если значение все же нужно изменить, надо либо выключить безопасный режим, либо изменить значение прямо в php.ini.

Веб-серверы обычно имеют свои настройки тайм-аута, по истечении которого сами завершают выполнение скрипта PHP. В Apache есть директива Timeout, в IIS есть функция CGI timeout. В обоих случаях по умолчанию установлено 300 секунд. Точные значения можно узнать из документации к веб-серверу.

max_input_time integer

Эта директива задает максимальное время в секундах, в течение которого скрипт должен разобрать все входные данные, переданные запросами вроде POST или GET. Это время измеряется от момента, когда PHP вызван на сервере до момента, когда скрипт начинает выполняться. Значение по умолчанию -1, что означает, что будет использоваться max_execution_time. Если установить равным 0, то ограничений по времени не будет.

max_input_nesting_level integer

Задает максимальную глубину вложенности входных переменных (то есть $_GET, $_POST.)

max_input_vars integer

Сколько входных переменных может быть принято в одном запросе (ограничение накладывается на каждую из глобальных переменных $_GET, $_POST и $_COOKIE отдельно). Использование этой директивы снижает вероятность сбоев в случае атак с использованием хеш-коллизий. Если входных переменных больше, чем задано директивой, выбрасывается предупреждение E_WARNING, а все последующие переменные в запросе игнорируются.

magic_quotes_gpc boolean
Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Задает режим magic_quotes для GPC (Get/Post/Cookie) операций. Если magic_quotes включен, все ' (одинарные кавычки), " (двойные кавычки), \ (обратный слеш) и NUL автоматически экранируются обратным слешем.

Замечание:

Если включена директива magic_quotes_sybase, она замещает magic_quotes_gpc. Если включены обе директивы, то экранироваться будут только одинарные кавычки, причем экранированы они будут теми же кавычками: ''. Двойные кавычки, обратные слеши и NUL при этом останутся нетронутыми и неэкранированными.

См. также get_magic_quotes_gpc()

magic_quotes_runtime boolean
Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Если включена директива magic_quotes_runtime, большинство функций возвращающих данные из внешних источников, таких как базы данных или текстовые файлы, будут экранировать кавычки обратным слешем. Если при этом директива magic_quotes_sybase также включена, то одинарные кавычки будут экранироваться одинарной кавычкой вместо обратного слеша.

Функции, на которые распростаняется действие директивы magic_quotes_runtime (исключая функции из PECL):

  • get_meta_tags()
  • file_get_contents()
  • file()
  • fgets()
  • fwrite()
  • fread()
  • fputcsv()
  • stream_socket_recvfrom()
  • exec()
  • system()
  • passthru()
  • stream_get_contents()
  • bzread()
  • gzfile()
  • gzgets()
  • gzwrite()
  • gzread()
  • exif_read_data()
  • dba_insert()
  • dba_replace()
  • dba_fetch()
  • ibase_fetch_row()
  • ibase_fetch_assoc()
  • ibase_fetch_object()
  • mssql_fetch_row()
  • mssql_fetch_object()
  • mssql_fetch_array()
  • mssql_fetch_assoc()
  • mysqli_fetch_row()
  • mysqli_fetch_array()
  • mysqli_fetch_assoc()
  • mysqli_fetch_object()
  • pg_fetch_row()
  • pg_fetch_assoc()
  • pg_fetch_array()
  • pg_fetch_object()
  • pg_fetch_all()
  • pg_select()
  • sybase_fetch_object()
  • sybase_fetch_array()
  • sybase_fetch_assoc()
  • SplFileObject::fgets()
  • SplFileObject::fgetcsv()
  • SplFileObject::fwrite()

zend.enable_gc boolean

Включает или отключает сборщик циклических ссылок.


Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

Предопределенные константы phpcredits()
Константа | Значение | Описание
CREDITS_GROUP | 1 | Список разработчиков ядра PHP
CREDITS_GENERAL | 2 | Главные разработчики: Дизайн и концепции языка, авторы PHP и модуля SAPI.
CREDITS_SAPI | 4 | Список серверных API для PHP и их авторы.
CREDITS_MODULES | 8 | Список расширений для PHP и их авторы.
CREDITS_DOCS | 16 | Члены команды разработчиков документации.
CREDITS_FULLPAGE | 32 | Обычно используется в сочетании с другими флагами. Означает, что HTML- страница должна печататься вместе с дополнительной информацией (за которую отвечают другие флаги).
CREDITS_QA | 64 | Члены команды контроля качества.
CREDITS_ALL | -1 | Все разработчики, аналогично использованию: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_QA CREDITS_FULLPAGE. Будет сгенерирована HTML-страница с соответствующими тегами. Это значение по умолчанию.
Константы phpinfo()
Константа | Значение | Описание
INFO_GENERAL | 1 | Строка конфигурации, местоположение php.ini, дата сборки, веб-сервер, система и др.
INFO_CREDITS | 2 | Разработчики PHP. См. также phpcredits().
INFO_CONFIGURATION | 4 | Текущие локальные и основные значения директив PHP. См. также ini_get().
INFO_MODULES | 8 | Загруженные модули и их настройки.
INFO_ENVIRONMENT | 16 | Информация о переменных среды, которая также доступна в $_ENV.
INFO_VARIABLES | 32 | Показывает все предопределенные переменные из EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE | 64 | Информация о лицензии PHP. См. также » FAQ по лицензии.
INFO_ALL | -1 | Константа по умолчанию. Показывает всю информацию описанную выше.
Константы INI
Константа | Значение | Описание
INI_USER | 1 | Не используется
INI_PERDIR | 2 | Не используется
INI_SYSTEM | 4 | Не используется
INI_ALL | 7 | Не используется

Константы проверки утверждений. Эти значения используются для задания настроек assert_options().

assert() константы
Константа | INI настройка | Описание
ASSERT_ACTIVE | assert.active | Включение assert() проверок.
ASSERT_CALLBACK | assert.callback | Обратный вызов при провале проверки утверждения.
ASSERT_BAIL | assert.bail | Прервать выполнение при провале проверки утверждения.
ASSERT_WARNING | assert.warning | Выдавать предупреждение PHP в случае провала проверки каждого утверждения
ASSERT_QUIET_EVAL | assert.quiet_eval | Отключить error_reporting во время выполнения проверки утверждения.

Следующие константы доступны только под Windows. Они позволяют извлечь различную информацию о версиях программного обеспечения. Все константы доступны с PHP 5.3.0.

Специфичные для Windows константы
Константа | Описание
PHP_WINDOWS_VERSION_MAJOR | Основной номер версии Windows, это может быть 4 (NT4/Me/98/95), 5 (XP/2003 R2/2003/2000) или 6 (Vista/2008/7/8/8.1).
PHP_WINDOWS_VERSION_MINOR | Уточняющий номер версии Windows, это может быть 0 (Vista/2008/2000/NT4/95), 1 (XP), 2 (2003 R2/2003/XP x64), 10 (98) или 90 (ME).
PHP_WINDOWS_VERSION_BUILD | Номер сборки Windows (например, Windows Vista SP1 имеет номер сборки 6001)
PHP_WINDOWS_VERSION_PLATFORM | Платформа, на которой PHP работает на данный момент. Возможны значения 2 для Windows Vista/XP/2000/NT4, Server 2008/2003, а для Windows ME/98/95 это значение будет 1.
PHP_WINDOWS_VERSION_SP_MAJOR | Основной номер версии установленного сервис-пакета. Возможно значение 0, если пакетов не установлено. Например, в Windows XP с 3м сервис паком это значение будет 3.
PHP_WINDOWS_VERSION_SP_MINOR | Дополнительный номер установленного пакета обновлений. Значение 0 говорит от том, что пакетов не установлено.
PHP_WINDOWS_VERSION_SUITEMASK | Битовая маска указывающая, какой дополнительный функционал установлен в системе Windows. Ниже приведена таблица с возможными значениями битового поля.
PHP_WINDOWS_VERSION_PRODUCTTYPE | Содержит значение, определяющее константы вида PHP_WINDOWS_NT_*. Этим значением может быть одна из констант PHP_WINDOWS_NT_* указывающая на тип платформы.
PHP_WINDOWS_NT_DOMAIN_CONTROLLER | Контроллер домена
PHP_WINDOWS_NT_SERVER | Серверная система (напр. Server 2008/2003/2000). Надо учесть, что если сервер является контроллером домена, вместо этой константы будет выдаваться PHP_WINDOWS_NT_DOMAIN_CONTROLLER.
PHP_WINDOWS_NT_WORKSTATION | Система рабочей станции (напр. Vista/XP/2000/NT4)

Таблица значений битовой маски PHP_WINDOWS_VERSION_SUITEMASK.

Битовое поле функциональных возможностей Windows
Биты | Описание
0x00000004 | Установлены компоненты Microsoft BackOffice.
0x00000400 | Установлен Windows Server 2003 Web Edition.
0x00004000 | Установлен Windows Server 2003 Compute Cluster Edition.
0x00000080 | Установлен Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition или Windows 2000 Datacenter Server.
0x00000002 | Установлен Windows Server 2008 Enterprise, Windows Server 2003, Enterprise Edition, Windows 2000 Advanced Server или Windows NT Server 4.0 Enterprise Edition.
0x00000040 | Установлен Windows XP Embedded.
0x00000200 | Установлен Windows Vista Home Premium, Windows Vista Home Basic или Windows XP Home Edition.
0x00000100 | Поддерживается удаленный рабочий стол, но только в интерактивном режиме. Это значение устанавливается до тех пор, пока система не будет запущена в режиме сервера приложений.
0x00000001 | Microsoft Small Business Server был установлен изначально, однако мог быть проведен апгрейд системы до другой версии Windows.
0x00000020 | Microsoft Small Business Server установлен с ограниченной лицензией.
0x00002000 | Установлен Windows Storage Server 2003 R2 или Windows Storage Server 2003.
0x00000010 | Установлены терминальные службы. Это значение всегда установлено. Если это значение установлено, значение 0x00000100 не задано, то система работает в режиме сервера приложений.
0x00008000 | Установлен Windows Home Server.


Опции PHP/информационные функции

Содержание

  • assert_options — Установка и получение настроек механизма проверки утверждений
  • assert — Проверяет, является ли утверждение FALSE
  • cli_get_process_title — Возвращает заголовок текущего процесса
  • cli_set_process_title — Устанавливает заголовок процесса
  • dl — Загружает расширение PHP во время выполнения
  • extension_loaded — Определить, загружено ли расширение
  • gc_collect_cycles — Принудительный запуск сборщика мусора
  • gc_disable — Отключает сборщик циклических ссылок
  • gc_enable — Включает сборщик циклических ссылок
  • gc_enabled — Возвращает текущее состояние сборщика циклических ссылок
  • gc_mem_caches — Освобождает память, используемую менеджером памяти Zend Engine
  • gc_status — Возвращает информацию о текущем статусе сборщика мусора
  • get_cfg_var — Извлекает значение настройки конфигурации PHP
  • get_current_user — Получает имя владельца текущего скрипта PHP
  • get_defined_constants — Возвращает ассоциативный массив с именами всех констант и их значений
  • get_extension_funcs — Возвращает массив имен функций модуля
  • get_include_path — Получение текущего значения настройки конфигурации include_path
  • get_included_files — Возвращает массив имен включенных в скрипт файлов
  • get_loaded_extensions — Возвращает массив имен всех скомпилированных и загруженных модулей
  • get_magic_quotes_gpc — Получение текущего значения настройки конфигурации magic_quotes_gpc
  • get_magic_quotes_runtime — Получение текущего значения настройки конфигурации magic_quotes_runtime
  • get_required_files — Псевдоним get_included_files
  • get_resources — Возвращает активные ресурсы
  • getenv — Получение значения переменной окружения
  • getlastmod — Получает время последней модификации страницы
  • getmygid — Получить GID владельца скрипта PHP
  • getmyinode — Получает значение inode текущего скрипта
  • getmypid — Получение ID процесса PHP
  • getmyuid — Получение UID владельца скрипта PHP
  • getopt — Получает параметры из списка аргументов командной строки
  • getrusage — Получает информацию об использовании текущего ресурса
  • ini_alter — Псевдоним ini_set
  • ini_get_all — Получает все настройки конфигурации
  • ini_get — Получает значение настройки конфигурации
  • ini_restore — Восстанавливает значение настройки конфигурации
  • ini_set — Устанавливает значение настройки конфигурации
  • magic_quotes_runtime — Псевдоним set_magic_quotes_runtime
  • main — Заглушка для main
  • memory_get_peak_usage — Возвращает пиковое значение объема памяти, выделенное PHP
  • memory_get_usage — Возвращает количество памяти, выделенное для PHP
  • php_ini_loaded_file — Получить путь к загруженному файлу php.ini
  • php_ini_scanned_files — Возвращает список .ini-файлов, найденных в дополнительной ini-директории
  • php_logo_guid — Получение guid логотипа
  • php_sapi_name — Возвращает тип интерфейса между веб-сервером и PHP
  • php_uname — Возвращает информацию об операционной системе, на которой запущен PHP
  • phpcredits — Выводит список разработчиков PHP
  • phpinfo — Выводит информацию о текущей конфигурации PHP
  • phpversion — Получает текущую версию PHP
  • putenv — Устанавливает значение переменной среды
  • restore_include_path — Восстанавливает изначальное значение настройки конфигурации include_path
  • set_include_path — Устанавливает значение настройки конфигурации include_path
  • set_magic_quotes_runtime — Установка текущего значения настройки magic_quotes_runtime
  • set_time_limit — Ограничение времени выполнения скрипта
  • sys_get_temp_dir — Возвращает путь к директории временных файлов
  • version_compare — Сравнивает две "стандартизованные" строки с номером версии PHP
  • zend_logo_guid — Получает Zend guid
  • zend_thread_id — Возвращает уникальный идентификатор текущего потока выполнения
  • zend_version — Получает версию движка Zend


Установка и получение настроек механизма проверки утверждений

  • « Опции PHP/информационные функции
  • assert »
  • PHP Manual
  • Опции PHP/информационные функции
  • Установка и получение настроек механизма проверки утверждений

assert_options

(PHP 4, PHP 5, PHP 7)

assert_options — Установка и получение настроек механизма проверки утверждений

Описание

assert_options ( int $what [, mixed $value ] ) : mixed

Задание значений настроек механизма проверки утверждений assert() или получение их текущих значений.

Замечание: Начиная с PHP 7.0.0, использование assert_options() не рекомендуется в пользу установки и получения php.ini директив zend.assertions и assert.exception с помощью ini_set() и ini_get() соответственно.

Список параметров

what

Настройки механизма проверки утверждений
Настройка | INI-параметр | Значение по умолчанию | Описание
ASSERT_ACTIVE | assert.active | 1 | включение механизма проверки утверждений
ASSERT_WARNING | assert.warning | 1 | вывод предупреждения PHP для каждой неудачной проверки
ASSERT_BAIL | assert.bail | 0 | завершить выполнение в случае неудачной проверки
ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | отключить error_reporting во время проверки утверждения
ASSERT_CALLBACK | assert.callback | (NULL) | Callback-функция, которую необходимо вызвать для провалившего проверку утверждения

value

Необязательный аргумент, новое значение настройки.

Callback-функция, установленная с помощью ASSERT_CALLBACK или assert.callback, должна иметь следующую подпись:

assert_callback ( string $file , int $line , string $assertion [, string $description ] ) : void
file
Файл, в котором была вызвана assert().
line
Строка, в которой была вызвана assert().
assertion
Утверждение, которое было передано в assert(), преобразованное в строку.
description
Описание, которое было передано в assert().
Передача пустой строки в value сбрасывает assert callback.

Возвращаемые значения

Возвращает исходное значение настройки или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования assert_options()

<?php
// Наша функция обработчик
// неудавшихся проверок
function function assert_failure($file, $line, $assertion, $message)
{
    echo "Проверка $assertion в $file на строке $line провалена: $message";
}

// Тестовая функция
function test_assert($parameter)
{
    assert(is_bool($parameter));
}

// настройки проверки
assert_options(ASSERT_ACTIVE,   true);
assert_options(ASSERT_BAIL,     true);
assert_options(ASSERT_WARNING,  false);
assert_options(ASSERT_CALLBACK, 'assert_failure');

// заведомо ошибочное утверждение
test_assert(1);

// Этот код не будет выполняться, пока ASSERT_BAIL
// равен true
echo 'Никогда не будет выведено';
?>

Смотрите также

  • assert() - Проверяет, является ли утверждение FALSE


Проверяет, является ли утверждение FALSE

  • « assert_options
  • cli_get_process_title »
  • PHP Manual
  • Опции PHP/информационные функции
  • Проверяет, является ли утверждение FALSE

assert

(PHP 4, PHP 5, PHP 7)

assert — Проверяет, является ли утверждение FALSE

Описание

PHP 5 и 7

assert ( mixed $assertion [, string $description ] ) : bool

PHP 7

assert ( mixed $assertion [, Throwable $exception ] ) : bool

assert() проверит заданное утверждение assertion и совершит соответствующее действие, если результатом проверки окажется FALSE.

Традиционная работа функции assert (PHP 5 и 7)

Если assertion задается в виде строки, оно будет рассматриваться функцией assert() как PHP-код. Если вы передадите в качестве параметра assertion логическое выражение, то это выражение не будет отображаться как параметр для функции утверждения, заданной с помощью assert_options(). Это выражение будет преобразовано в строку перед вызовом функции обработчика, а в случае FALSE будет использована пустая строка.

Утверждения должны использоваться только в целях отладки. Их можно использовать для тестирования каких-то условий, которые в штатных ситуациях всегда принимают значение TRUE, обратное должно указывать на программные ошибки. Также их можно использовать, чтобы удостовериться в наличии каких-либо расширений или системных ограничений.

Утверждения не должны использоваться в обычных операциях, таких как проверка входных параметров. Как правило, скрипт должен корректно выполняться, если отключить проверку утверждений.

Поведение функции assert() можно изменять с помощью функции assert_options() или установкой .ini-настроек.

Функция assert_options() и/или директива ASSERT_CALLBACK позволяют задать callback-функцию, которая будет вызываться при провале проверки утверждения.

Возможность вызывать callback-функции из assert() может быть полезна для создания автоматизированных тестовых пакетов. Посредством этих функций можно извлекать код, переданный на проверку вместе с информацией о том, где эта проверка была осуществлена. Подобную информацию можно получить и другими методами, однако использование утверждений быстрей и проще.

Callback-функция должна принимать три аргумента. Первый аргумент должен содержать файл, в котором утверждение не прошло проверку. Второй аргумент отвечает за номер строки в этом файле. В третьем аргументе будет передаваться выражение, содержащее ошибку (если таких несколько, строковые значение, вроде 1 или "два" не будут передаваться через этот аргумент). Пользователи PHP версий 5.4.8 и выше могут задать четвертый необязательный аргумент description, который будет также передан в функцию assert().

Ожидания (только PHP 7)

В PHP 7 assert() - это языковая конструкция, позволяющая определять ожидания: утверждения, которые работают в среде разработки и тестирования, но в целях оптимизации отключены на продуктовом окружении.

В то время как функция assert_options() может по-прежнему быть использована для контроля над поведением программы описанным выше образом, для обратной совместимости, но в PHP 7 код должен использовать две новые конфигурационные директивы для управления поведением assert() и не вызывать функцию assert_options().

Конфигурационные директивы PHP 7 для функции assert()
Директива Значение по умолчанию Возможные значения
zend.assertions 1
  • 1: генерирует и выполняет код (режим разработки)
  • 0: генерирует код, но перепрыгивает через него во время выполнения
  • -1: не генерирует код (рабочий режим)
assert.exception 0
  • 1: выбрасывает исключение, когда утверждение терпит неудачу, класса, предоставленного в параметре exception, либо класса AssertionError, если параметр exception не передан.
  • 0: использует или создает экземпляр класса Throwable как описано выше, но только генерирует предупреждение на основе этого объекта, не выбрасывая его (для совместимости с поведением PHP 5)

Список параметров

assertion

Утверждение. В PHP 5 может быть строкой (string) для выполнения или логическим значением (boolean) для проверки. В PHP 7 это также может быть любое выражение, которое возвращает значение, которое будет выполнено, и результат использован для определения успешности проверки.

Внимание

Использование значения типа string в параметре assertion объявлено УСТАРЕВШИМ с PHP 7.2.

description

Необязательное описание, которое будет добавлено в сообщение, если проверка утверждения assertion будет провалена.

exception

В PHP 7 второй параметр может быть объектом Throwable вместо строки (string). Этот объект будет выбрасываться в случае неудачной проверки утверждения при включенной конфигурационной директиве assert.exception.

Возвращаемые значения

FALSE, если проверка провалена, TRUE в противном случае.

Список изменений

Версия | Описание
7.2.0 | Использование строк в параметре assertion объявлено устаревшим и будет приводить к ошибкам уровня E_DEPRECATED в случае, когда и assert.active и zend.assertions установлены в значение 1.
7.0.0 | assert() теперь языковая конструкция, а не функция. assertion теперь может быть выражением. Второй параметр теперь интерпретируется как исключение exception (если передан объект Throwable), или как описание description, поддерживаемое с версии PHP 5.4.8 и далее.
5.4.8 | Добавлен параметр description. Параметр description также доступен в callback-функции в режиме ASSERT_CALLBACK в качестве четвертого аргумента.

Примеры

Традиционная работа функции assert (PHP 5 и 7)

Пример #1 Обработка неудачных проверок утверждений с использованием собственного обработчика

<?php
// Активация утверждений и отключение вывода ошибок
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_QUIET_EVAL, 1);

// Создание обработчика
function my_assert_handler($file, $line, $code)
{
    echo "<hr>Неудачная проверка утверждения:
        Файл '$file'<br />
        Строка '$line'<br />
        Код '$code'<br /><hr />";
}

// Подключение callback-функции
assert_options(ASSERT_CALLBACK, 'my_assert_handler');

// Выполнение проверки утверждения, которое завершится неудачей
assert('mysql_query("")');
?>

Пример #2 Использование собственного обработчика с выводом описания

<?php
// Активация утверждений и отключение вывода ошибок
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_QUIET_EVAL, 1);

// Создание обработчика
function my_assert_handler($file, $line, $code, $desc = null)
{
    echo "Неудачная проверка утверждения в $file:$line: $code";
    if ($desc) {
        echo ": $desc";
    }
    echo "\n";
}

// Подключение callback-функции
assert_options(ASSERT_CALLBACK, 'my_assert_handler');

// Выполнение проверки утверждения, которое завершится неудачей
assert('2 < 1');
assert('2 < 1', 'Два больше чем один');
?>

Результат выполнения данного примера:

 Неудачная проверка утверждения в test.php:21: 2 < 1
 Неудачная проверка утверждения в test.php:22: 2 < 1: Два больше чем один

Ожидания (только PHP 7)

Пример #3 Ожидания без собственного исключения

<?php
assert(true == false);
echo 'Привет!';
?>

При директиве zend.assertions, установленной в 0, данный код выведет:

Привет!

При директивах zend.assertions, установленной в 1 и assert.exception, установленной в 0, данный пример выведет:

Warning: assert(): assert(true == false) failed in - on line 2
Привет!

При директивах zend.assertions, установленной в 1 и assert.exception, установленной в 1, данный код выведет:

Fatal error: Uncaught AssertionError: assert(true == false) in -:2
Stack trace:
#0 -(2): assert(false, 'assert(true == ...')
#1 {main}
  thrown in - on line 2

Пример #4 Ожидания с собственным исключением

<?php
class CustomError extends AssertionError {}

assert(true == false, new CustomError('True не является false!'));
echo 'Привет!';
?>

При директиве zend.assertions, установленной в 0, данный код выведет:

Привет!

При директивах zend.assertions, установленной в 1 и assert.exception, установленной в 0, данный код выведет:

Warning: assert(): CustomError: True не является false! in -:4
Stack trace:
#0 {main} failed in - on line 4
Привет!

При директивах zend.assertions, установленной в 1 и assert.exception, установленной в 1, данный код выведет:

Fatal error: Uncaught CustomError: True не является false! in -:4
Stack trace:
#0 {main}
  thrown in - on line 4

Смотрите также

  • assert_options() - Установка и получение настроек механизма проверки утверждений


Возвращает заголовок текущего процесса

  • « assert
  • cli_set_process_title »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает заголовок текущего процесса

cli_get_process_title

(PHP 5 >= 5.5.0, PHP 7)

cli_get_process_title — Возвращает заголовок текущего процесса

Описание

cli_get_process_title ( void ) : string

Возвращает заголовок текущего процесса, установленный cli_set_process_title(). Обратите внимание, что в зависимости от вашей операционной системы, это имя может не совпадать с тем, что покажут утилиты ps и top.

Эта функция доступна только в режиме CLI.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвратит строку с заголовком процесса или NULL в случае ошибки.

Ошибки

Если команда не поддерживается вашей операционной системой, то будет вызвана ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использования cli_get_process_title()

<?php
echo "Заголовок процесса: " . cli_get_process_title() . "\n";
?>

Смотрите также

  • cli_set_process_title() - Устанавливает заголовок процесса


Устанавливает заголовок процесса

  • « cli_get_process_title
  • dl »
  • PHP Manual
  • Опции PHP/информационные функции
  • Устанавливает заголовок процесса

cli_set_process_title

(PHP 5 >= 5.5.0, PHP 7)

cli_set_process_title — Устанавливает заголовок процесса

Описание

cli_set_process_title ( string $title ) : bool

Устанавливает заголовок процесса, видимое утилитами top и ps. Эта функция доступна только в режиме CLI.

Список параметров

title

Новое имя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Если команда не поддерживается вашей операционной системой, то будет вызвана ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использования cli_set_process_title()

<?php
$title = "Мой потрясающий PHP-скрипт";
$pid = getmypid(); // вы можете использовать это, чтобы увидеть заголовок процесса в ps

if (!cli_set_process_title($title)) {
    echo "Не удалось установить заголовок процесса для PID $pid...\n";
    exit(1);
} else {
    echo "Заголовок процесса '$title' для PID $pid был установлен!\n";
    sleep(5);
}
?>

Смотрите также

  • cli_get_process_title() - Возвращает заголовок текущего процесса
  • setproctitle() - Установить название процесса


Загружает расширение PHP во время выполнения

  • « cli_set_process_title
  • extension_loaded »
  • PHP Manual
  • Опции PHP/информационные функции
  • Загружает расширение PHP во время выполнения

dl

(PHP 4, PHP 5, PHP 7)

dl — Загружает расширение PHP во время выполнения

Описание

dl ( string $library ) : bool

Загружает PHP-расширение заданное аргументом library.

Чтобы проверить, что заданное расширение уже загружено, используйте функцию extension_loaded(). Эта функция работает как для встроенных расширений, так и для динамически загруженных (т.е. загруженных как через php.ini, так и через dl()).

Внимание

Эта функция удалена из некоторых SAPI в PHP 5.3.0 и удалена из PHP-FPM в PHP 7.0.0.

Список параметров

library

Этот аргумент содержит только имя файла расширения, которое требуется загрузить. Это имя зависит от платформы. Например, расширение sockets (если скомпилировано, как загружаемый модуль, а не модуль по умолчанию!) будет называться sockets.so на Unix-платформах, и php_sockets.dll в среде Windows.

Директория, из которой расширение должно быть загружено также зависит от платформы:

Windows - Если явно не задано в php.ini, расширение будет грузиться из C:\php5\ по умолчанию.

Unix - Если явно не задано в php.ini, директория по умолчанию зависит от

  • PHP собран с настройкой --enable-debug или без нее
  • PHP собран с (экспериментальной) поддержкой ZTS (Zend Thread Safety) или нет
  • текущий внутренний номер ZEND_MODULE_API_NO (номер внутреннего модуля Zend API, который, как правило, является датой основного изменения API модуля, например 20010901)
Принимая во внимание вышесказанное, получаем следующие умолчания для директории расширения <install-dir>/lib/php/extensions/ <debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO, например, /usr/local/php/lib/php/extensions/debug-non-zts-20010901 или /usr/local/php/lib/php/extensions/no-debug-zts-20010901.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если механизм загрузки модулей недоступен или отключен (либо значением off настройки enable_dl, либо включен безопасный режим в php.ini), будет выдана ошибка E_ERROR и выполнение прекращается. Если dl() не сможет загрузить заданную библиотеку, то в дополнение к FALSE будет выдано сообщение E_WARNING.

Примеры

Пример #1 Примеры использования dl()

<?php
// Пример загрузки расширения, основываясь на ОС
if (!extension_loaded('sqlite')) {
    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
        dl('php_sqlite.dll');
    } else {
        dl('sqlite.so');
    }
}

// Или на константе PHP_SHLIB_SUFFIX
if (!extension_loaded('sqlite')) {
    $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
    dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>

Список изменений

Версия | Описание
7.0.0 | dl() запрещено в PHP-FPM.
5.3.9 | dl() разрешено в PHP-FPM, хотя и не рекомендовано.
5.3.0 | dl() выключен в некоторых SAPI в связи с нестабильностью работы. Из SAPI, поддерживающих dl(), остались только CLI и Embed. Используйте вместо dl Директивы загрузки расширений.

Примечания

Замечание:

dl() не поддерживается в PHP собранных с поддержкой ZTS. Используйте директивы загрузки расширений вместо dl.

Замечание:

dl() чувствительна к регистру на Unix-платформах.

Замечание: Эта функция недоступна в безопасном режиме.

Смотрите также

  • Директивы загрузки расширений
  • extension_loaded() - Определить, загружено ли расширение


Определить, загружено ли расширение

  • « dl
  • gc_collect_cycles »
  • PHP Manual
  • Опции PHP/информационные функции
  • Определить, загружено ли расширение

extension_loaded

(PHP 4, PHP 5, PHP 7)

extension_loaded — Определить, загружено ли расширение

Описание

extension_loaded ( string $name ) : bool

Определяет, загружено ли указанное расширение.

Список параметров

name

Имя расширения. Этот параметр регистронезависимый.

Чтобы посмотреть все имена расширений, воспользуйтесь функцией phpinfo(). Если вы работаете с CGI- или CLI-версией PHP, используйте параметр -m для отображения списка доступных расширений:

$ php -m
[PHP Modules]
xml
tokenizer
standard
sockets
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

Возвращаемые значения

Возвращает TRUE, если расширение с заданным именем name загружено или FALSE в противном случае.

Примеры

Пример #1 Пример использования extension_loaded()

<?php
if (!extension_loaded('gd')) {
    if (!dl('gd.so')) {
        exit;
    }
}
?>

Смотрите также

  • get_loaded_extensions() - Возвращает массив имен всех скомпилированных и загруженных модулей
  • get_extension_funcs() - Возвращает массив имен функций модуля
  • phpinfo() - Выводит информацию о текущей конфигурации PHP
  • dl() - Загружает расширение PHP во время выполнения
  • function_exists() - Возвращает TRUE, если указанная функция определена


Принудительный запуск сборщика мусора

  • « extension_loaded
  • gc_disable »
  • PHP Manual
  • Опции PHP/информационные функции
  • Принудительный запуск сборщика мусора

gc_collect_cycles

(PHP 5 >= 5.3.0, PHP 7)

gc_collect_cycles — Принудительный запуск сборщика мусора

Описание

gc_collect_cycles ( void ) : int

Явным образом запускает механизм поиска циклических ссылок.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает число найденных ссылок.

Смотрите также

  • Сборка мусора


Отключает сборщик циклических ссылок

  • « gc_collect_cycles
  • gc_enable »
  • PHP Manual
  • Опции PHP/информационные функции
  • Отключает сборщик циклических ссылок

gc_disable

(PHP 5 >= 5.3.0, PHP 7)

gc_disable — Отключает сборщик циклических ссылок

Описание

gc_disable ( void ) : void

Отключает сборщик циклических ссылок, путем установки значения zend.enable_gc в 0.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Сборка мусора


Включает сборщик циклических ссылок

  • « gc_disable
  • gc_enabled »
  • PHP Manual
  • Опции PHP/информационные функции
  • Включает сборщик циклических ссылок

gc_enable

(PHP 5 >= 5.3.0, PHP 7)

gc_enable — Включает сборщик циклических ссылок

Описание

gc_enable ( void ) : void

Включает сборщик циклических ссылок, устанавливая zend.enable_gc в 1.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Сборка мусора


Возвращает текущее состояние сборщика циклических ссылок

  • « gc_enable
  • gc_mem_caches »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает текущее состояние сборщика циклических ссылок

gc_enabled

(PHP 5 >= 5.3.0, PHP 7)

gc_enabled — Возвращает текущее состояние сборщика циклических ссылок

Описание

gc_enabled ( void ) : bool

Возвращает текущее состояние сборщика циклических ссылок.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если сборщик мусора включен или FALSE в противном случае.

Примеры

Пример #1 Пример использования gc_enabled()

<?php
if(gc_enabled()) gc_collect_cycles();
?>

Смотрите также

  • Сборка мусора


Освобождает память, используемую менеджером памяти Zend Engine

  • « gc_enabled
  • gc_status »
  • PHP Manual
  • Опции PHP/информационные функции
  • Освобождает память, используемую менеджером памяти Zend Engine

gc_mem_caches

(PHP 7)

gc_mem_caches — Освобождает память, используемую менеджером памяти Zend Engine

Описание

gc_mem_caches ( void ) : int

Освобождает память, используемую менеджером памяти Zend Engine.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество освобожденных байт.

Смотрите также

  • Сборка мусора


Возвращает информацию о текущем статусе сборщика мусора

  • « gc_mem_caches
  • get_cfg_var »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает информацию о текущем статусе сборщика мусора

gc_status

(PHP 7 >= 7.3.0)

gc_status — Возвращает информацию о текущем статусе сборщика мусора

Описание

gc_status ( void ) : array

Возвращает информацию о текущем статусе сборщика мусора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив со следующими элементами:

  • "runs"
  • "collected"
  • "threshold"
  • "roots"

Примеры

Пример #1 Использование gc_status()

<?php

// создадим дерево объектов, для которых понадобится собирать мусор
$a = new stdClass();
$a->b = [];
for ($i = 0; $i < 100000; $i++) {
    $b = new stdClass();
    $b->a = $a;
    $a->b[] = $b;
}
unset($a);
unset($b);
gc_collect_cycles();

var_dump(gc_status());

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  ["runs"]=>
  int(5)
  ["collected"]=>
  int(100002)
  ["threshold"]=>
  int(50001)
  ["roots"]=>
  int(0)
}

Смотрите также

  • Сбор мусора


Извлекает значение настройки конфигурации PHP

  • « gc_status
  • get_current_user »
  • PHP Manual
  • Опции PHP/информационные функции
  • Извлекает значение настройки конфигурации PHP

get_cfg_var

(PHP 4, PHP 5, PHP 7)

get_cfg_var — Извлекает значение настройки конфигурации PHP

Описание

get_cfg_var ( string $option ) : mixed

Извлекает значение настройки конфигурации PHP option.

Функция не вернет никакой информации, заданной при сборке PHP или указанной в конфигурационном файле Apache.

Чтобы проверить, что система использует файл конфигурации, попробуйте получить значение настройки конфигурации cfg_file_path. Если эта настройка доступна, значит используется файл конфигурации.

Список параметров

option

Имя настройки конфигурации.

Возвращаемые значения

Возвращает текущее значение настройки конфигурации PHP option или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.0 | get_cfg_var() изменена, чтобы иметь возможность возвращать ini-настройки, содержащие массивы.

Смотрите также

  • ini_get() - Получает значение настройки конфигурации
  • ini_get_all() - Получает все настройки конфигурации


Получает имя владельца текущего скрипта PHP

  • « get_cfg_var
  • get_defined_constants »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получает имя владельца текущего скрипта PHP

get_current_user

(PHP 4, PHP 5, PHP 7)

get_current_user — Получает имя владельца текущего скрипта PHP

Описание

get_current_user ( void ) : string

Возвращает имя владельца текущего PHP-скрипта.

Возвращаемые значения

Возвращает имя пользователя в виде строки.

Примеры

Пример #1 Пример использования get_current_user()

<?php
echo 'Текущий владелец скрипта: ' . get_current_user();
?>

Результатом выполнения данного примера будет что-то подобное:

Текущий владелец скрипта: SYSTEM

Смотрите также

  • getmyuid() - Получение UID владельца скрипта PHP
  • getmygid() - Получить GID владельца скрипта PHP
  • getmypid() - Получение ID процесса PHP
  • getmyinode() - Получает значение inode текущего скрипта
  • getlastmod() - Получает время последней модификации страницы


Возвращает ассоциативный массив с именами всех констант и их значений

  • « get_current_user
  • get_extension_funcs »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает ассоциативный массив с именами всех констант и их значений

get_defined_constants

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

get_defined_constants — Возвращает ассоциативный массив с именами всех констант и их значений

Описание

get_defined_constants ([ bool $categorize = FALSE ] ) : array

Возвращает ассоциативный массив с именами и значениями всех определенных в настоящее время констант. Массив будет включать в себя константы, определенные расширениями, а также созданные функцией define().

Список параметров

categorize

Использование этого аргумента дает возможность получить многомерный массив, в котором в первом измерении будут содержаться категории констант, а во втором соответствующие имена и значения.

<?php
define("MY_CONSTANT", 1);
print_r(get_defined_constants(true));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [Core] => 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
        )

)

Возвращаемые значения

Возвращает массив вида "имя константы" => "значение константы", с возможностью сгруппировать его по имени расширения, зарегистрировавшей константу.

Список изменений

Версия | Описание
5.3.1 | Только для Windows: Константы ядра входят в категорию Core. Раньше категория называлась mhash.
5.3.0 | Константы ядра входят в категорию Core. Раньше категория называлась internal, а в системах Windows - mhash.
5.2.11 | Значение аргумента categorize стало обрабатываться надлежащим образом. Раньше аргумент categorize воспринимался, как выражение !is_null($categorize), то есть любое значение отличное от NULL, предписывало разделять константы на категории.

Примеры

Пример #1 Пример использования get_defined_constants()

<?php
print_r(get_defined_constants());
?>

Результатом выполнения данного примера будет что-то подобное:

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
)

Смотрите также

  • defined() - Проверяет существование указанной именованной константы
  • get_loaded_extensions() - Возвращает массив имен всех скомпилированных и загруженных модулей
  • get_defined_functions() - Возвращает массив всех определённых функций
  • get_defined_vars() - Возвращает массив всех определенных переменных


Возвращает массив имен функций модуля

  • « get_defined_constants
  • get_include_path »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает массив имен функций модуля

get_extension_funcs

(PHP 4, PHP 5, PHP 7)

get_extension_funcs — Возвращает массив имен функций модуля

Описание

get_extension_funcs ( string $module_name ) : array

Функция возвращает имена всех функций, определенных в модуле с именем module_name.

Список параметров

module_name

Имя модуля.

Замечание:

Значение этого аргумента должно задаваться в нижнем регистре.

Возвращаемые значения

Возвращает массив имен функций или FALSE, если module_name не является допустимым модулем.

Примеры

Пример #1 Выводит функции XML

<?php
print_r(get_extension_funcs("xml"));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => xml_parser_create
    [1] => xml_parser_create_ns
    [2] => xml_set_object
    [3] => xml_set_element_handler
    [4] => xml_set_character_data_handler
    [5] => xml_set_processing_instruction_handler
    [6] => xml_set_default_handler
    [7] => xml_set_unparsed_entity_decl_handler
    [8] => xml_set_notation_decl_handler
    [9] => xml_set_external_entity_ref_handler
    [10] => xml_set_start_namespace_decl_handler
    [11] => xml_set_end_namespace_decl_handler
    [12] => xml_parse
    [13] => xml_parse_into_struct
    [14] => xml_get_error_code
    [15] => xml_error_string
    [16] => xml_get_current_line_number
    [17] => xml_get_current_column_number
    [18] => xml_get_current_byte_index
    [19] => xml_parser_free
    [20] => xml_parser_set_option
    [21] => xml_parser_get_option
    [22] => utf8_encode
    [23] => utf8_decode
)

Смотрите также

  • get_loaded_extensions() - Возвращает массив имен всех скомпилированных и загруженных модулей
  • ReflectionExtension::getFunctions() - Получение функций расширения


Получение текущего значения настройки конфигурации include_path

  • « get_extension_funcs
  • get_included_files »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получение текущего значения настройки конфигурации include_path

get_include_path

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

get_include_path — Получение текущего значения настройки конфигурации include_path

Описание

get_include_path ( void ) : string

Получает значение настройки конфигурации include_path.

Возвращаемые значения

Возвращает путь к файлу в виде строки.

Примеры

Пример #1 Пример использования get_include_path()

<?php
echo get_include_path();

// или используя ini_get()
echo ini_get('include_path');
?>

Смотрите также

  • ini_get() - Получает значение настройки конфигурации
  • restore_include_path() - Восстанавливает изначальное значение настройки конфигурации include_path
  • set_include_path() - Устанавливает значение настройки конфигурации include_path
  • include - include


Возвращает массив имен включенных в скрипт файлов

  • « get_include_path
  • get_loaded_extensions »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает массив имен включенных в скрипт файлов

get_included_files

(PHP 4, PHP 5, PHP 7)

get_included_files — Возвращает массив имен включенных в скрипт файлов

Описание

get_included_files ( void ) : array

Получает имена всех файлов, которые были включены в скрипт с использованием include, include_once, require или require_once.

Возвращаемые значения

Возвращает массив, содержащий имена всех файлов.

Скрипт, который был загружен изначально, рассматривается как "включенный файл", поэтому он также попадет в список файлов включенных функцией include или другими.

Файлы, добавляемые в скрипт неоднократно, попадут в массив только в одном экземпляре.

Примеры

Пример #1 Пример использования get_included_files()

<?php
// Этот скрипт расположен в файле abc.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";
}

?>

Результат выполнения данного примера:

/path/to/abc.php
/path/to/test1.php
/path/to/test2.php
/path/to/test3.php
/path/to/test4.php

Смотрите также

  • include - include
  • include_once - include_once
  • require - require
  • require_once - require_once
  • get_required_files() - Псевдоним get_included_files


Возвращает массив имен всех скомпилированных и загруженных модулей

  • « get_included_files
  • get_magic_quotes_gpc »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает массив имен всех скомпилированных и загруженных модулей

get_loaded_extensions

(PHP 4, PHP 5, PHP 7)

get_loaded_extensions — Возвращает массив имен всех скомпилированных и загруженных модулей

Описание

get_loaded_extensions ([ bool $zend_extensions = FALSE ] ) : array

Функция возвращает массив имен всех скомпилированных и загруженных в интерпретаторе PHP модулей.

Список параметров

zend_extensions

Возвращать только расширения Zend или обычные расширения, такие как mysqli. По умолчанию FALSE (возврат обычных расширений).

Возвращаемые значения

Возвращает индексированный массив имен всех модулей.

Список изменений

Версия | Описание
5.2.4 | Добавлен необязательный аргумент zend_extensions

Примеры

Пример #1 Пример использования get_loaded_extensions()

<?php
print_r(get_loaded_extensions());
?>

Результатом выполнения данного примера будет что-то подобное:

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
)

Смотрите также

  • get_extension_funcs() - Возвращает массив имен функций модуля
  • extension_loaded() - Определить, загружено ли расширение
  • dl() - Загружает расширение PHP во время выполнения
  • phpinfo() - Выводит информацию о текущей конфигурации PHP


Получение текущего значения настройки конфигурации magic_quotes_gpc

  • « get_loaded_extensions
  • get_magic_quotes_runtime »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получение текущего значения настройки конфигурации magic_quotes_gpc

get_magic_quotes_gpc

(PHP 4, PHP 5, PHP 7)

get_magic_quotes_gpc — Получение текущего значения настройки конфигурации magic_quotes_gpc

Внимание

Эта функция объявлена УСТАРЕВШИМ, начиная с PHP 7.4.0 и ее использование крайне не рекомендовано.

Описание

get_magic_quotes_gpc ( void ) : bool

Возвращает текущее значение настройки magic_quotes_gpc

Следует иметь в виду, что значение magic_quotes_gpc нельзя изменить во время выполнения.

За дополнительной информацией обращайтесь в раздел безопасности.

Возвращаемые значения

Возвращает 0, если magic_quotes_gpc выключен, 1 в противном случае. С версии PHP 5.4.0 всегда возвращает FALSE.

Список изменений

Версия | Описание
7.4.0 | Функция объявлена устаревшей.
5.4.0 | Всегда возвращает FALSE, так как функционал магических кавычек удален из PHP.

Примеры

Пример #1 Пример использования get_magic_quotes_gpc()

<?php
// Если магические кавычки включены
echo $_POST['lastname'];             // O\'reilly
echo addslashes($_POST['lastname']); // O\\\'reilly

// Работает во всех версиях
if (get_magic_quotes_gpc()) {
    $lastname = stripslashes($_POST['lastname']);
}
else {
    $lastname = $_POST['lastname'];
}

// при использовании MySQL
$lastname = mysql_real_escape_string($lastname);

echo $lastname; // O\'reilly
$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
?>

Примечания

Замечание:

Если директива magic_quotes_sybase включена, она будет замещать magic_quotes_gpc. Таким образом, даже если get_magic_quotes_gpc() возвращает TRUE, двойные кавычки, обратные слеши и NULL значения экранироваться не будут. Экранироваться в этом случае будут только одинарные кавычки, при чем выглядеть это будет так: ''

Смотрите также

  • addslashes() - Экранирует строку с помощью слешей
  • stripslashes() - Удаляет экранирование символов
  • get_magic_quotes_runtime() - Получение текущего значения настройки конфигурации magic_quotes_runtime
  • ini_get() - Получает значение настройки конфигурации


Получение текущего значения настройки конфигурации magic_quotes_runtime

  • « get_magic_quotes_gpc
  • get_required_files »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получение текущего значения настройки конфигурации magic_quotes_runtime

get_magic_quotes_runtime

(PHP 4, PHP 5, PHP 7)

get_magic_quotes_runtime — Получение текущего значения настройки конфигурации magic_quotes_runtime

Внимание

Эта функция объявлена УСТАРЕВШИМ, начиная с PHP 7.4.0 и ее использование крайне не рекомендовано.

Описание

get_magic_quotes_runtime ( void ) : bool

Возвращает текущее значение настройки magic_quotes_runtime.

Возвращаемые значения

Возвращает 0, если опция magic_quotes_runtime выключена, 1 в противном случае. С версии PHP 5.4.0 всегда возвращает FALSE.

Список изменений

Версия | Описание
7.4.0 | Функция объявлена устаревшей.
5.4.0 | Всегда возвращает FALSE, так как функционал магических кавычек удален из PHP.

Примеры

Пример #1 Пример использования get_magic_quotes_runtime()

<?php
// Проверка, работает ли magic_quotes_runtime
if (get_magic_quotes_runtime())
{
    // отключение
    set_magic_quotes_runtime(false);
}
?>

Смотрите также

  • get_magic_quotes_gpc() - Получение текущего значения настройки конфигурации magic_quotes_gpc
  • set_magic_quotes_runtime() - Установка текущего значения настройки magic_quotes_runtime


Псевдоним get_included_files

  • « get_magic_quotes_runtime
  • get_resources »
  • PHP Manual
  • Опции PHP/информационные функции
  • Псевдоним get_included_files

get_required_files

(PHP 4, PHP 5, PHP 7)

get_required_files — Псевдоним get_included_files()

Описание

Эта функция является псевдонимом: get_included_files().


Возвращает активные ресурсы

  • « get_required_files
  • getenv »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает активные ресурсы

get_resources

(PHP 7)

get_resources — Возвращает активные ресурсы

Описание

get_resources ([ string $type ] ) : array

Возвращает массив всех текущих активных ресурсов (resource), опционально отфильтрованный по типу ресурса.

Список параметров

type

Если задано, то get_resources() вернет только ресурсы указанного типа. Список доступных типов ресурсов.

Если в качестве типа задана строка Unknown, то будут возвращены только ресурсы неизвестного типа.

Если не задано, то будут возвращены все ресурсы.

Возвращаемые значения

Возвращает массив текущих активных ресурсов, проиндексированных по номеру ресурса.

Примеры

Пример #1 Пример использования get_resources()

<?php
$fp = tmpfile();
var_dump(get_resources());
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [1]=>
  resource(1) of type (stream)
}

Пример #2 Пример использования get_resources() с фильтрацией

<?php
$fp = tmpfile();
var_dump(get_resources('stream'));
var_dump(get_resources('curl'));
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [1]=>
  resource(1) of type (stream)
}
array(0) {
}

Смотрите также

  • get_loaded_extensions() - Возвращает массив имен всех скомпилированных и загруженных модулей
  • get_defined_constants() - Возвращает ассоциативный массив с именами всех констант и их значений
  • get_defined_functions() - Возвращает массив всех определённых функций
  • get_defined_vars() - Возвращает массив всех определенных переменных


Получение значения переменной окружения

  • « get_resources
  • getlastmod »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получение значения переменной окружения

getenv

(PHP 4, PHP 5, PHP 7)

getenv — Получение значения переменной окружения

Описание

getenv ( string $varname [, bool $local_only = FALSE ] ) : string
getenv ( void ) : array

Получает значение переменной среды.

Список всех переменных окружения можно посмотреть с помощью функции phpinfo(). Многие из этих переменных есть в документе » RFC 3875, по большей части в разделе 4.1, "Request Meta-Variables".

Список параметров

varname

Имя переменной.

local_only

Установите в значение TRUE для получения только локальных переменных окружения (установленные операционной системой или командой putenv).

Возвращаемые значения

Возвращает значение переменной среды varname или FALSE, если переменной varname не существует. Если varname опущен, будет возвращены все переменные окружения в виде ассоциативного массива (array).

Список изменений

Версия | Описание
7.1.0 | Параметр varname теперь может быть опущен для получения ассоциативного массива (array) всех переменных окружения.
5.5.38, 5.6.24, 7.0.9 | Был добавлен параметр local_only.

Примечания

Внимание

Если PHP запущен в SAPI, например как Fast CGI, эта функция будет возвращать значения переменных окружения установленных SAPI, даже если вы использовали putenv() для установки локальной переменной с таким же именем. Используйте параметр local_only для получения установленных локально переменных.

Примеры

Пример #1 Пример использования getenv()

<?php
// Пример использования getenv()
$ip = getenv('REMOTE_ADDR');

// Можно еще воспользоваться суперглобальной переменной ($_SERVER или $_ENV)
$ip = $_SERVER['REMOTE_ADDR'];

// Гарантированно получаем значение переменной окружения, не обращая внимания,
// была ли она переопределена SAPI или изменена с помощью putenv
$ip = getenv('REMOTE_ADDR', true) ?: getenv('REMOTE_ADDR');
?>

Смотрите также

  • putenv() - Устанавливает значение переменной среды
  • apache_getenv() - Возвращает переменную окружения подпроцесса сервера Apache
  • Суперглобальные переменные


Получает время последней модификации страницы

  • « getenv
  • getmygid »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получает время последней модификации страницы

getlastmod

(PHP 4, PHP 5, PHP 7)

getlastmod — Получает время последней модификации страницы

Описание

getlastmod ( void ) : int

Получает время последней модификации запущенного скрипта.

Если требуется получить время модификации произвольного файла, используйте функцию filemtime().

Возвращаемые значения

Возвращает время последней модификации текущей страницы. Значение является меткой времени Unix, подходящая для функции date(). Функция вернет FALSE в случае ошибки.

Примеры

Пример #1 Пример использования getlastmod()

<?php
// Выводит нечто вроде 'Последнее изменение: March 04 1998 20:43:59.'
echo "Последнее изменение: " . date ("F d Y H:i:s.", getlastmod());
?>

Смотрите также

  • date() - Форматирует вывод системной даты/времени
  • getmyuid() - Получение UID владельца скрипта PHP
  • getmygid() - Получить GID владельца скрипта PHP
  • get_current_user() - Получает имя владельца текущего скрипта PHP
  • getmyinode() - Получает значение inode текущего скрипта
  • getmypid() - Получение ID процесса PHP
  • filemtime() - Возвращает время последнего изменения файла


Получить GID владельца скрипта PHP

  • « getlastmod
  • getmyinode »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получить GID владельца скрипта PHP

getmygid

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

getmygid — Получить GID владельца скрипта PHP

Описание

getmygid ( void ) : int

Получает идентификатор группы текущего скрипта.

Возвращаемые значения

Возвращает групповой идентификатор текущего скрипта или FALSE в случае ошибки.

Смотрите также

  • getmyuid() - Получение UID владельца скрипта PHP
  • getmypid() - Получение ID процесса PHP
  • get_current_user() - Получает имя владельца текущего скрипта PHP
  • getmyinode() - Получает значение inode текущего скрипта
  • getlastmod() - Получает время последней модификации страницы


Получает значение inode текущего скрипта

  • « getmygid
  • getmypid »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получает значение inode текущего скрипта

getmyinode

(PHP 4, PHP 5, PHP 7)

getmyinode — Получает значение inode текущего скрипта

Описание

getmyinode ( void ) : int

Получает inode текущего скрипта.

Возвращаемые значения

Возвращает inode текущего скрипта в виде целого числа или FALSE в случае ошибки.

Смотрите также

  • getmygid() - Получить GID владельца скрипта PHP
  • getmyuid() - Получение UID владельца скрипта PHP
  • getmypid() - Получение ID процесса PHP
  • get_current_user() - Получает имя владельца текущего скрипта PHP
  • getlastmod() - Получает время последней модификации страницы


Получение ID процесса PHP

  • « getmyinode
  • getmyuid »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получение ID процесса PHP

getmypid

(PHP 4, PHP 5, PHP 7)

getmypid — Получение ID процесса PHP

Описание

getmypid ( void ) : int

Получает идентификатор процесса PHP.

Возвращаемые значения

Возвращает идентификатор процесса PHP или FALSE в случае ошибки.

Примечания

Внимание

Идентификаторы процессов в системе не уникальны, поэтому являются слабым источником энтропии. Мы не рекомендуем полагаться на pid в контекстах, влияющих на безопасность.

Смотрите также

  • getmygid() - Получить GID владельца скрипта PHP
  • getmyuid() - Получение UID владельца скрипта PHP
  • get_current_user() - Получает имя владельца текущего скрипта PHP
  • getmyinode() - Получает значение inode текущего скрипта
  • getlastmod() - Получает время последней модификации страницы


Получение UID владельца скрипта PHP

  • « getmypid
  • getopt »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получение UID владельца скрипта PHP

getmyuid

(PHP 4, PHP 5, PHP 7)

getmyuid — Получение UID владельца скрипта PHP

Описание

getmyuid ( void ) : int

Получает идентификатор пользователя текущего скрипта.

Возвращаемые значения

Возвращает идентификатор пользователя текущего скрипта или FALSE в случае ошибки.

Смотрите также

  • getmygid() - Получить GID владельца скрипта PHP
  • getmypid() - Получение ID процесса PHP
  • get_current_user() - Получает имя владельца текущего скрипта PHP
  • getmyinode() - Получает значение inode текущего скрипта
  • getlastmod() - Получает время последней модификации страницы


Получает параметры из списка аргументов командной строки

  • « getmyuid
  • getrusage »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получает параметры из списка аргументов командной строки

getopt

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

getopt — Получает параметры из списка аргументов командной строки

Описание

getopt ( string $options [, array $longopts [, int &$optind ]] ) : array

Анализирует параметры переданные в скрипт.

Список параметров

options
Каждый символ в этой строке будет рассматриваться как параметр и сравниваться с символами, переданными в скрипт, перед которыми будет стоять дефис (-). Например, строка параметров "x" распознается, как параметр -x. Допускаются только символы a-z, A-Z и 0-9.
longopts
Массив параметров. Каждый элемент массива будет использоваться как строковый параметр и сравниваться с параметрами, переданными в скрипт, перед которыми будет стоять двойной дефис (--). Например, элемент longopts "opt" будет расшифровываться как --opt.
optind
Если задан параметр optind, то индекс, на котором остановился разбор, будет записан в него.

Аргумент options может содержать следующие элементы:

  • Отдельные символы (не имеющие значений)
  • Символы, за которыми следует двоеточие (параметр требует значения)
  • Символы, за которыми следует два двоеточия (необязательное значение)
Значения параметров идут сразу за строкой параметра (символом). Если требуется значение, то нет разницы, есть между ними пробел или нет.

Замечание: Необязательные значения нельзя отделять от других пробелом " ".

Замечание:

Форматы options и longopts практически совпадают. Различие состоит только в том, что longopts принимает массив параметров (в котором каждый элемент является параметром) в то время, как options принимает строку (где параметром является каждый символ).

Возвращаемые значения

Функция вернет массив пар параметров / аргументов, или FALSE в случае возникновения ошибки.

Замечание:

Как только встретится первый символ, не являющийся параметром, разбор строки команды будет завершен, а оставшаяся часть строки будет проигнорирована.

Список изменений

Версия | Описание
7.1.0 | Добавлен параметр optind.
5.3.0 | Добавлена поддержка "=" в качестве разделителя параметр/значение.
5.3.0 | Добавлена поддержка необязательных значений параметров (задаваемая "::").
5.3.0 | Аргумент longopts доступен на всех системах.
5.3.0 | Функция больше не зависит от системы, теперь работает и в Windows.

Примеры

Пример #1 Пример использования getopt(): основы

<?php
// Скрипт example.php
$options = getopt("f:hp:");
var_dump($options);
?>
shell> php example.php -fvalue -h

Результат выполнения данного примера:

array(2) {
  ["f"]=>
  string(5) "value"
  ["h"]=>
  bool(false)
}

Пример #2 Пример использования getopt(): добавление длинных опций

<?php
// Скрипт example.php
$shortopts  = "";
$shortopts .= "f:";  // Обязательное значение
$shortopts .= "v::"; // Необязательное значение
$shortopts .= "abc"; // Эти параметры не принимают никаких значений

$longopts  = array(
    "required:",     // Обязательное значение
    "optional::",    // Необязательное значение
    "option",        // Нет значения
    "opt",           // Нет значения
);
$options = getopt($shortopts, $longopts);
var_dump($options);
?>
shell> php example.php -f "value for f" -v -a --required value --optional="optional value" --option

Результат выполнения данного примера:

array(6) {
  ["f"]=>
  string(11) "value for f"
  ["v"]=>
  bool(false)
  ["a"]=>
  bool(false)
  ["required"]=>
  string(5) "value"
  ["optional"]=>
  string(14) "optional value"
  ["option"]=>
  bool(false)
}

Пример #3 Пример использования getopt(): Передача нескольких параметров как одного

<?php
// Скрипт example.php
$options = getopt("abc");
var_dump($options);
?>
shell> php example.php -aaac

Результат выполнения данного примера:

array(2) {
  ["a"]=>
  array(3) {
    [0]=>
    bool(false)
    [1]=>
    bool(false)
    [2]=>
    bool(false)
  }
  ["c"]=>
  bool(false)
}

Пример #4 Пример getopt() с параметром optind

<?php
// Скрипт example.php
$optind = null;
$opts = getopt('a:b:', [], $optind);
$pos_args = array_slice($argv, $optind);
var_dump($pos_args);
shell> php example.php -a 1 -b 2 -- test

Результат выполнения данного примера:

array(1) {
  [0]=>
  string(4) "test"
}

Смотрите также

  • $argv


Получает информацию об использовании текущего ресурса

  • « getopt
  • ini_alter »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получает информацию об использовании текущего ресурса

getrusage

(PHP 4, PHP 5, PHP 7)

getrusage — Получает информацию об использовании текущего ресурса

Описание

getrusage ([ int $who = 0 ] ) : array

Это интерфейс к getrusage(2). Функция получает данные, возвращаемые из системного вызова.

Список параметров

who

Если аргумент who равен 1, getrusage будет вызвана с RUSAGE_CHILDREN.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий данные возвращенные из системного вызова. Имена элементов соответствуют документированным именам полей.

Примеры

Пример #1 Пример использования getrusage()

<?php
$dat = getrusage();
echo $dat["ru_oublock"];       // количество операций вывода блока
echo $dat["ru_inblock"];       // количество операций приема блока
echo $dat["ru_msgsnd"];        // количество отправленных сообщений IPC
echo $dat["ru_msgrcv"];        // количество принятых сообщений IPC
echo $dat["ru_maxrss"];        // наибольший размер установленной резидентной памяти
echo $dat["ru_ixrss"];         // суммарное значение размера разделяемой памяти
echo $dat["ru_idrss"];         // суммарное значение размера неразделяемых данных
echo $dat["ru_minflt"];        // количество исправленных страниц (легкая ошибка страницы)
echo $dat["ru_majflt"];        // количество ошибочных страниц (тяжелая ошибка страницы)
echo $dat["ru_nsignals"];      // количество полученных сигналов
echo $dat["ru_nvcsw"];         // количество согласованных переключений контекста
echo $dat["ru_nivcsw"];        // количество несогласованных переключений контекста
echo $dat["ru_nswap"];         // количество свопов
echo $dat["ru_utime.tv_usec"]; // время на задачи пользователя (user time) (микросекунды)
echo $dat["ru_utime.tv_sec"];  // время на задачи пользователя (user time) (секунды)
echo $dat["ru_stime.tv_usec"]; // время на системные задачи (system time) (микросекунды)
?>

Список изменений

Версия | Описание
7.0.0 | Добавлен поддержка этой функции в Windows.

Примечания

Замечание:

В Windows getrusage() возвращает только следующее:

  • "ru_stime.tv_sec"
  • "ru_stime.tv_usec"
  • "ru_utime.tv_sec"
  • "ru_utime.tv_usec"
  • "ru_majflt" (только если who - RUSAGE_SELF)
  • "ru_maxrss" (только если who - RUSAGE_SELF)

Если getrusage() вызвана с who равным 1 (RUSAGE_CHILDREN), то будет собираться информация по использованию ресурсов потоками (что означает, что внутри функция будет вызываться с RUSAGE_THREAD).

Замечание:

В BeOS 2000, возвращается только следующее:

  • "ru_stime.tv_sec"
  • "ru_stime.tv_usec"
  • "ru_utime.tv_sec"
  • "ru_utime.tv_usec"

Смотрите также

  • Страница системной документации getrusage(2)


Псевдоним ini_set

  • « getrusage
  • ini_get_all »
  • PHP Manual
  • Опции PHP/информационные функции
  • Псевдоним ini_set

ini_alter

(PHP 4, PHP 5, PHP 7)

ini_alter — Псевдоним ini_set()

Описание

Эта функция является псевдонимом: ini_set().


Получает все настройки конфигурации

  • « ini_alter
  • ini_get »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получает все настройки конфигурации

ini_get_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ini_get_all — Получает все настройки конфигурации

Описание

ini_get_all ([ string $extension [, bool $details = TRUE ]] ) : array

Возвращает все зарегистрированные настройки конфигурации.

Список параметров

extension

Необязательное имя расширения. Если задано, функция вернет только специфичные для данного расширения настройки.

details

Выводить детальные сведения о настройках или только текущие значения. По умолчанию TRUE (выводить детальные сведения).

Возвращаемые значения

Возвращает ассоциативный массив с именами директив в качестве ключей. Возвращает FALSE и вызывает ошибку уровня E_WARNING, если extension не существует.

Если details равен TRUE (по умолчанию), в массиве будут содержаться global_value (значение настройки php.ini), local_value (например, заданное с помощью ini_set() или .htaccess) и access (уровень доступа).

Если details равен FALSE, значением массива будет соответствующее текущее значение настройки.

Смотрите соответствующий раздел руководства, в котором приводится описание уровней доступа.

Замечание:

Директива может иметь несколько уровней доступа, в этом случае access будет содержать соответствующую битовую маску.

Примечания

Замечание:

ini_get_all() игнорирует опции типа "массив" такие как pdo.dsn.*.

Список изменений

Версия | Описание
5.3.0 | Добавлен аргумент details.

Примеры

Пример #1 Примеры использования ini_get_all()

<?php
print_r(ini_get_all("pcre"));
print_r(ini_get_all());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [pcre.backtrack_limit] => Array
        (
            [global_value] => 100000
            [local_value] => 100000
            [access] => 7
        )

    [pcre.recursion_limit] => Array
        (
            [global_value] => 100000
            [local_value] => 100000
            [access] => 7
        )

)
Array
(
    [allow_call_time_pass_reference] => Array
        (
            [global_value] => 0
            [local_value] => 0
            [access] => 6
        )

    [allow_url_fopen] => Array
        (
            [global_value] => 1
            [local_value] => 1
            [access] => 4
        )

    ...

)

Пример #2 Отключение details

<?php
print_r(ini_get_all("pcre", false)); // Добавлено в PHP 5.3.0
print_r(ini_get_all(null, false)); // Добавлено в PHP 5.3.0
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [pcre.backtrack_limit] => 100000
    [pcre.recursion_limit] => 100000
)
Array
(
    [allow_call_time_pass_reference] => 0
    [allow_url_fopen] => 1
    ...
)

Смотрите также

  • Как изменить настройки конфигурации
  • ini_get() - Получает значение настройки конфигурации
  • ini_restore() - Восстанавливает значение настройки конфигурации
  • ini_set() - Устанавливает значение настройки конфигурации
  • get_loaded_extensions() - Возвращает массив имен всех скомпилированных и загруженных модулей
  • phpinfo() - Выводит информацию о текущей конфигурации PHP
  • ReflectionExtension::getINIEntries() - Получение ini-настроек расширения


Получает значение настройки конфигурации

  • « ini_get_all
  • ini_restore »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получает значение настройки конфигурации

ini_get

(PHP 4, PHP 5, PHP 7)

ini_get — Получает значение настройки конфигурации

Описание

ini_get ( string $varname ) : string

В случае успеха возвращает значение настройки конфигурации.

Список параметров

varname

Имя настройки конфигурации.

Возвращаемые значения

Возвращает значение настройки конфигурации в виде строки. Для значений null будет возвращаться пустая строка. Функция вернет FALSE, если указанная настройка не существует.

Примеры

Пример #1 Несколько примеров использования ini_get()

<?php
/*
Наш файл php.ini содержит следующие настройки:

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) {
        // Модификатор 'G' доступен с PHP 5.1.0
        case 'g':
            $val *= 1024;
        case 'm':
            $val *= 1024;
        case 'k':
            $val *= 1024;
    }

    return $val;
}

?>

Результатом выполнения данного примера будет что-то подобное:

display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9
post_max_size in bytes = 8388608

Примечания

Замечание: Возвращаемые логические значения

Boolean-значение ini-настройки off будет возвращено в виде пустой строки или строки "0", в то время как значению on будет соответствовать строка "1". Функция также может возвращать буквенные значения INI-настройки.

Замечание: Возвращаемые значения количества памяти

Многие ini-настройки, значения которых измеряются количеством памяти, такие как upload_max_filesize, сохраняются в php.ini в сокращенном виде. ini_get() вернет именно то, что записано в файле php.ini, а НЕ целочисленный (integer) эквивалент этой величины. Попытка использования полученной величины в арифметических операциях не даст желаемого результата. В приведенном выше примере продемонстрировано, как можно перевести сокращенную запись в число байт.

Замечание:

ini_get() не может прочесть опции типа "массив", такие как pdo.dsn.*, и возвращает FALSE таких случаях.

Список изменений

Версия | Описание
5.3.0 | Раньше возвращалась пустая строка, если конфигурационная опция отсутствует. Теперь вместо этого возвращается FALSE.

Смотрите также

  • get_cfg_var() - Извлекает значение настройки конфигурации PHP
  • ini_get_all() - Получает все настройки конфигурации
  • ini_restore() - Восстанавливает значение настройки конфигурации
  • ini_set() - Устанавливает значение настройки конфигурации


Восстанавливает значение настройки конфигурации

  • « ini_get
  • ini_set »
  • PHP Manual
  • Опции PHP/информационные функции
  • Восстанавливает значение настройки конфигурации

ini_restore

(PHP 4, PHP 5, PHP 7)

ini_restore — Восстанавливает значение настройки конфигурации

Описание

ini_restore ( string $varname ) : void

Восстанавливает исходное значение настройки конфигурации.

Список параметров

varname

Имя настройки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ini_restore()

<?php
$setting = 'y2k_compliance';

echo 'Текущее значение настройки \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;

ini_set($setting, ini_get($setting) ? 0 : 1);
echo 'Новое значение настройки \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;

ini_restore($setting);
echo 'Исходное значение настройки \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;
?>

Результат выполнения данного примера:

Текущее значение настройки 'y2k_compliance': 1
Новое значение настройки 'y2k_compliance': 0
Исходное значение настройки 'y2k_compliance': 1

Смотрите также

  • ini_get() - Получает значение настройки конфигурации
  • ini_get_all() - Получает все настройки конфигурации
  • ini_set() - Устанавливает значение настройки конфигурации


Устанавливает значение настройки конфигурации

  • « ini_restore
  • magic_quotes_runtime »
  • PHP Manual
  • Опции PHP/информационные функции
  • Устанавливает значение настройки конфигурации

ini_set

(PHP 4, PHP 5, PHP 7)

ini_set — Устанавливает значение настройки конфигурации

Описание

ini_set ( string $varname , string $newvalue ) : string

Устанавливает значение заданной настройки конфигурации. Настройка будет хранить установленное значение пока выполняется скрипт. После завершения работы скрипта значение настройки вернется к исходному.

Список параметров

varname

Не все доступные настройки можно изменять функцией ini_set(). Список доступных настроек приведен в приложении.

newvalue

Новое значение настройки.

Возвращаемые значения

В случае успеха возвращает старое значение, в случае неудачи возвращает FALSE.

Примеры

Пример #1 Установка значения ini-настройки

<?php
echo ini_get('display_errors');

if (!ini_get('display_errors')) {
    ini_set('display_errors', '1');
}

echo ini_get('display_errors');
?>

Смотрите также

  • get_cfg_var() - Извлекает значение настройки конфигурации PHP
  • ini_get() - Получает значение настройки конфигурации
  • ini_get_all() - Получает все настройки конфигурации
  • ini_restore() - Восстанавливает значение настройки конфигурации
  • Как изменить настройки конфигурации


Псевдоним set_magic_quotes_runtime

  • « ini_set
  • main »
  • PHP Manual
  • Опции PHP/информационные функции
  • Псевдоним set_magic_quotes_runtime

magic_quotes_runtime

(PHP 4, PHP 5)

magic_quotes_runtime — Псевдоним set_magic_quotes_runtime()

Внимание

Этот псевдоним считается УСТАРЕВШИМ с PHP 5.3.0 и УДАЛЕН в PHP 7.0.0.

Описание

Эта функция является псевдонимом: set_magic_quotes_runtime()


Заглушка для main

  • « magic_quotes_runtime
  • memory_get_peak_usage »
  • PHP Manual
  • Опции PHP/информационные функции
  • Заглушка для main

main

main — Заглушка для main()

Описание

Функция main() существует только в исходных кодах PHP. Пользовательской функции с таким именем нет. В коде PHP 4.3.0 был введен новый способ обработки ошибок php_error_docref. Одной из его возможностей является вывод ссылок на документацию в сообщениях об ошибках. Эта возможность задействована, если установлены директивы PHP html_errors (задана по умолчанию) и docref_root (задана по умолчанию в версиях PHP до 4.3.2).

Иногда сообщения об ошибках ссылаются на страницу документации к функции main(). Собственно поэтому эта страница и существует. Если вам попалась ссылка на эту страницу в каком-либо сообщении, пожалуйста » создайте баг-репорт с указанием функции PHP, выдавшей сообщение об ошибке со ссылкой на main(). Команда разработчиков в свою очередь исправит ошибку и внесет исправления в документацию.

Известные ошибки, которые ссылаются на main()
Имя функции | Больше не ссылается на main с версии
include | 5.1.0
include_once | 5.1.0
require | 5.1.0
require_once | 5.1.0

Смотрите также

  • html_errors
  • display_errors


Возвращает пиковое значение объема памяти, выделенное PHP

  • « main
  • memory_get_usage »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает пиковое значение объема памяти, выделенное PHP

memory_get_peak_usage

(PHP 5 >= 5.2.0, PHP 7)

memory_get_peak_usage — Возвращает пиковое значение объема памяти, выделенное PHP

Описание

memory_get_peak_usage ([ bool $real_usage = FALSE ] ) : int

Возвращает максимальный объем памяти в байтах, который был выделен PHP-скрипту.

Список параметров

real_usage

Передача TRUE в качестве этого аргумента позволяет получить реальный объем памяти, выделенный системой. Если аргумент не задан или равен FALSE, возвращаются сведения только о памяти, выделенной функцией emalloc().

Возвращаемые значения

Возвращает максимальный объем памяти в байтах.

Список изменений

Версия | Описание
5.2.1 | Для работы функции больше не требуется, чтобы PHP компилировался с настройкой --enable-memory-limit.
5.2.0 | Добавлен аргумент real_usage.

Смотрите также

  • memory_get_usage() - Возвращает количество памяти, выделенное для PHP
  • memory_limit


Возвращает количество памяти, выделенное для PHP

  • « memory_get_peak_usage
  • php_ini_loaded_file »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает количество памяти, выделенное для PHP

memory_get_usage

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

memory_get_usage — Возвращает количество памяти, выделенное для PHP

Описание

memory_get_usage ([ bool $real_usage = FALSE ] ) : int

Возвращает количество памяти в байтах, которое было выделено PHP-скрипту на данный момент.

Список параметров

real_usage

Передача TRUE позволяет узнать реальное количество памяти, выделенной PHP скрипту системой, включая неиспользуемые страницы. Если аргумент не задан или равен FALSE, будет возвращено только количество используемой памяти.

Замечание:

PHP не отслеживает память, которая выделялась не emalloc()

Возвращаемые значения

Возвращает количество памяти в байтах.

Список изменений

Версия | Описание
5.2.1 | Для работы функции больше не требуется, чтобы PHP компилировался с настройкой --enable-memory-limit.
5.2.0 | Добавлен аргумент real_usage.

Примеры

Пример #1 Пример использования memory_get_usage()

<?php
// Это просто пример, цифры ниже будут
// отличаться в зависимости от вашей системы

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

?>

Смотрите также

  • memory_get_peak_usage() - Возвращает пиковое значение объема памяти, выделенное PHP
  • memory_limit


Получить путь к загруженному файлу php.ini

  • « memory_get_usage
  • php_ini_scanned_files »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получить путь к загруженному файлу php.ini

php_ini_loaded_file

(PHP 5 >= 5.2.4, PHP 7)

php_ini_loaded_file — Получить путь к загруженному файлу php.ini

Описание

php_ini_loaded_file ( void ) : string

Проверяет, загружен ли файл php.ini, и возвращает его путь.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Путь к загруженному файлу php.ini или FALSE, если файл не загружен.

Примеры

Пример #1 Пример использования php_ini_loaded_file()

<?php
$inipath = php_ini_loaded_file();

if ($inipath) {
    echo 'Загруженный php.ini: ' . $inipath;
} else {
    echo 'Файл php.ini не загружен';
}
?>

Результатом выполнения данного примера будет что-то подобное:

Loaded php.ini: /usr/local/php/php.ini

Смотрите также

  • php_ini_scanned_files() - Возвращает список .ini-файлов, найденных в дополнительной ini-директории
  • phpinfo() - Выводит информацию о текущей конфигурации PHP
  • Конфигурационный файл


Возвращает список .ini-файлов, найденных в дополнительной ini-директории

  • « php_ini_loaded_file
  • php_logo_guid »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает список .ini-файлов, найденных в дополнительной ini-директории

php_ini_scanned_files

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

php_ini_scanned_files — Возвращает список .ini-файлов, найденных в дополнительной ini-директории

Описание

php_ini_scanned_files ( void ) : string

php_ini_scanned_files() возвращает список разделенных запятыми конфигурационных файлов, проанализированных после php.ini. Директории, в которых производится поиск, задаются при компиляции и, опционально, переменной окружения во время исполнения. Больше информации можно найти в инструкции по установке.

Возвращаемые имена файлов включают полный путь.

Возвращаемые значения

При успехе возвращает строку с разделенными запятыми именами .ini-файлов. За каждой запятой следует новая строка. Если директива --with-config-file-scan-dir не задана и переменная окружения PHP_INI_SCAN_DIR тоже не задана, функция вернет FALSE. Если директива задана и она пуста, будет возвращена пустая строка. Если файл не удается распознать, он все же будет включен в список, но при этом PHP сообщит об ошибке. Эта ошибка будет возникать как при компиляции, так и во время работы php_ini_scanned_files().

Примеры

Пример #1 Простой пример вывода списка ini-файлов

<?php
if ($filelist = php_ini_scanned_files()) {
    if (strlen($filelist) > 0) {
        $files = explode(',', $filelist);

        foreach ($files as $file) {
            echo "<li>" . trim($file) . "</li>\n";
        }
    }
}
?>

Смотрите также

  • ini_set() - Устанавливает значение настройки конфигурации
  • phpinfo() - Выводит информацию о текущей конфигурации PHP
  • php_ini_loaded_file() - Получить путь к загруженному файлу php.ini


Получение guid логотипа

  • « php_ini_scanned_files
  • php_sapi_name »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получение guid логотипа

php_logo_guid

(PHP 4, PHP 5 < 5.5.0)

php_logo_guid — Получение guid логотипа

Описание

php_logo_guid ( void ) : string

Функция возвращает идентификатор, который можно использовать для вывода логотипа PHP, используя встроенное изображение. Логотип отображается, только если включена настройка expose_php.

Внимание

Эта функция была помечена УСТАРЕВШЕЙ и была УДАЛЕНА, начиная с PHP 5.5.0.

Возвращаемые значения

Возвращает PHPE9568F34-D428-11d2-A769-00AA001ACF42.

Список изменений

Версия | Описание
5.5.0 | php_logo_guid() удалена из PHP.

Примеры

Пример #1 Пример использования php_logo_guid()

<?php

echo '<img src="' . $_SERVER['PHP_SELF'] .
     '?=' . php_logo_guid() . '" alt="Логотип PHP!" />';

?>

Смотрите также

  • phpinfo() - Выводит информацию о текущей конфигурации PHP
  • phpversion() - Получает текущую версию PHP
  • phpcredits() - Выводит список разработчиков PHP
  • zend_logo_guid() - Получает Zend guid


Возвращает тип интерфейса между веб-сервером и PHP

  • « php_logo_guid
  • php_uname »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает тип интерфейса между веб-сервером и PHP

php_sapi_name

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

php_sapi_name — Возвращает тип интерфейса между веб-сервером и PHP

Описание

php_sapi_name ( void ) : string

Возвращает строку в нижнем регистре, содержащую описание типа интерфейса (Server API, SAPI), который использует PHP. Например, в CLI PHP эта строка будет "cli", в то время как с Apache может быть несколько разных значений в зависимости от конкретного SAPI. Возможные значение приведены ниже.

Возвращаемые значения

Возвращает тип интерфейса в виде строки в нижнем регистре.

Возможные возвращаемые значения (список может быть неполным): aolserver, apache, apache2filter, apache2handler, caudium, cgi (до PHP 5.3), cgi-fcgi, cli, cli-server, continuity, embed, fpm-fcgi, isapi, litespeed, milter, nsapi, phpdbg, phttpd, pi3web, roxen, thttpd, tux и webjames.

Примеры

Пример #1 Пример использования php_sapi_name()

В этом примере проверяется подстрока cgi, так как это также может быть cgi-fcgi.

<?php
$sapi_type = php_sapi_name();
if (substr($sapi_type, 0, 3) == 'cgi') {
    echo "Вы используете CGI PHP\n";
} else {
    echo "Вы используете не CGI PHP\n";
}
?>

Примечания

Замечание: Альтернативный вариант

Константа PHP PHP_SAPI хранит то же значение, что и php_sapi_name().

Подсказка

Важный аспект

Имя SAPI может определиться неточно, так как, например, в случае с apache интерфейс может быть определен как apache2handler или apache2filter.

Смотрите также

  • PHP_SAPI


Возвращает информацию об операционной системе, на которой запущен PHP

  • « php_sapi_name
  • phpcredits »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает информацию об операционной системе, на которой запущен PHP

php_uname

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

php_uname — Возвращает информацию об операционной системе, на которой запущен PHP

Описание

php_uname ([ string $mode = "a" ] ) : string

php_uname() возвращает описание операционной системы, на которой запущен PHP. Это та же строка, с которой начинается вывод phpinfo(). Для вывода названия операционной системы используется константа PHP_OS, но имейте в виду, что эта константа содержит название операционной системы, на которой PHP был собран (built).

На некоторых старых UNIX-платформах получить информацию о текущей ОС может оказаться невозможным. В таких случаях функция выдаст название ОС, на которой PHP был собран. Такое случается, когда библиотека, которой пользуется uname(), недоступна или работает некорректно.

Список параметров

mode

mode - одиночный символ, определяющий, какая информация будет выводиться:

  • 'a': По умолчанию. Содержит все режимы в следующей последовательности "s n r v m".
  • 's': Название операционной системы, например, FreeBSD.
  • 'n': Имя хоста, например, localhost.example.com.
  • 'r': Номер релиза, например, 5.1.2-RELEASE.
  • 'v': Информация о версии. Может сильно различаться в разных ОС.
  • 'm': Архитектура процессора, например, i386.

Возвращаемые значения

Возвращает описание ОС в виде строки.

Примеры

Пример #1 Несколько примеров использования php_uname()

<?php
echo php_uname();
echo PHP_OS;

/* Разные варианты:
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 'Сервер работает под управлением Windows!';
} else {
    echo 'Сервер работает под управлением ОС, отличной от Windows!';
}

?>

Ниже приведено несколько Предопределенных PHP-констант, которые могут оказаться полезными:

Пример #2 Некоторые константы OS

<?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;      // ;
?>

Смотрите также

  • phpversion() - Получает текущую версию PHP
  • php_sapi_name() - Возвращает тип интерфейса между веб-сервером и PHP
  • phpinfo() - Выводит информацию о текущей конфигурации PHP


Выводит список разработчиков PHP

  • « php_uname
  • phpinfo »
  • PHP Manual
  • Опции PHP/информационные функции
  • Выводит список разработчиков PHP

phpcredits

(PHP 4, PHP 5, PHP 7)

phpcredits — Выводит список разработчиков PHP

Описание

phpcredits ([ int $flag = CREDITS_ALL ] ) : bool

Эта функция выводит список разработчиков PHP, модулей и т.д. Она генерирует соответствующий HTML-код для вставки на страницу.

Список параметров

flag

Использование аргумента flag позволяет произвольно компоновать информацию об отдельных группах разработчиков.

Предопределенные флаги phpcredits()
Имя | Описание
CREDITS_ALL | Все разработчики, эквивалентно использованию: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_FULLPAGE. В этом случае будет сгенерирована полностью независимая HTML-страница с соответствующими тэгами.
CREDITS_DOCS | Участники команды документирования
CREDITS_FULLPAGE | Обычно используется в комбинации с другими флагами. Указывает на то, что независимая HTML страница должна содержать информацию других флагов.
CREDITS_GENERAL | Главные разработчики: Концепция и дизайн языка, авторы PHP и модуля SAPI.
CREDITS_GROUP | Список разработчиков ядра языка
CREDITS_MODULES | Список расширений для PHP и их авторов
CREDITS_SAPI | Список модулей серверных API и их авторов

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Выводит основных разработчиков

<?php
phpcredits(CREDITS_GENERAL);
?>

Пример #2 Выводит разработчиков ядра и участников команды документирования

<?php
phpcredits(CREDITS_GROUP | CREDITS_DOCS | CREDITS_FULLPAGE);
?>

Пример #3 Вывод всех разработчиков

<html>
 <head>
  <title>Сведения об авторах</title>
 </head>
 <body>
<?php
// какой-то код
phpcredits(CREDITS_ALL - CREDITS_FULLPAGE);
// еще код
?>
 </body>
</html>

Примечания

Замечание:

В режиме работы из командной строки (CLI) phpcredits() выводит обычный текст вместо HTML.

Смотрите также

  • phpversion() - Получает текущую версию PHP
  • php_logo_guid() - Получение guid логотипа
  • phpinfo() - Выводит информацию о текущей конфигурации PHP


Выводит информацию о текущей конфигурации PHP

  • « phpcredits
  • phpversion »
  • PHP Manual
  • Опции PHP/информационные функции
  • Выводит информацию о текущей конфигурации PHP

phpinfo

(PHP 4, PHP 5, PHP 7)

phpinfo — Выводит информацию о текущей конфигурации PHP

Описание

phpinfo ([ int $what = INFO_ALL ] ) : bool

Выводит большое количество информации о текущем состоянии PHP. Сюда входит информация о настройках компиляции PHP, о расширениях, о версии, информация о сервере и среде выполнения (если PHP компилировался как модуль), окружении PHP, версии ОС, о путях, об основных и локальных значениях настроек конфигурации, о HTTP-заголовках и лицензии PHP.

Так как каждая система имеет свои особенности, phpinfo() используется в основном для проверки настроек конфигурации и для просмотра доступных предопределенных констант в данной системе.

phpinfo() также используется в целях отладки, так как содержит все данные EGPCS (Environment, GET, POST, Cookie, Server).

Список параметров

what

Вывод функции можно настраивать, передавая битовую маску из одной или более приведенных ниже констант (constants). Эта маска передается в качестве необязательного аргумента what. Отдельные константы или битовые значения можно комбинировать с помощью оператора побитового оператора ИЛИ.

Настройки phpinfo()
Имя (константа) | Значение | Описание
INFO_GENERAL | 1 | Строка конфигурации, расположение php.ini, дата сборки, сервер, система и др.
INFO_CREDITS | 2 | Разработчики PHP. См. также phpcredits().
INFO_CONFIGURATION | 4 | Текущие значение основных и локальных PHP директив. См. также ini_get().
INFO_MODULES | 8 | Загруженные модули и их настройки. См. также get_loaded_extensions().
INFO_ENVIRONMENT | 16 | Информация о переменных окружения, которая также доступна в $_ENV.
INFO_VARIABLES | 32 | Выводит все предопределенные переменные из EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE | 64 | Информация о лицензии PHP. См. также » license FAQ.
INFO_ALL | -1 | Выводит все приведенное выше.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.0 | GUID логотипов были заменены на URI данных, и отключение опции expose_php теперь не влияет на результат phpinfo(). Список авторов теперь также встроен в вывод.
5.2.2 | Добавлен вывод информации о загруженном конфигурационном файле. Ранее выводился только путь к конфигурационному файлу (php.ini).

Примеры

Пример #1 Пример использования phpinfo()

<?php

// Показывать всю информацию, по умолчанию INFO_ALL
phpinfo();

// Показывать информацию только о загруженных модулях.
// phpinfo(8) выдает тот же результат.
phpinfo(INFO_MODULES);

?>

Примечания

Замечание:

В версиях PHP до 5.5, часть информации не выводится, если настройка expose_php установлена в off. Это PHP и Zend логотипы и информация о разработчиках.

Замечание:

В режиме CLI phpinfo() выводит обычный текст вместо HTML.

Смотрите также

  • phpversion() - Получает текущую версию PHP
  • phpcredits() - Выводит список разработчиков PHP
  • php_logo_guid() - Получение guid логотипа
  • ini_get() - Получает значение настройки конфигурации
  • ini_set() - Устанавливает значение настройки конфигурации
  • get_loaded_extensions() - Возвращает массив имен всех скомпилированных и загруженных модулей
  • Предопределенные переменные


Получает текущую версию PHP

  • « phpinfo
  • putenv »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получает текущую версию PHP

phpversion

(PHP 4, PHP 5, PHP 7)

phpversion — Получает текущую версию PHP

Описание

phpversion ([ string $extension ] ) : string

Возвращает строку с номером версии текущего PHP-интерпретатора или расширения.

Список параметров

extension

Необязательное имя расширения.

Возвращаемые значения

Если задан аргумент extension, phpversion() вернет версию этого расширения или FALSE, если информации о версии нет или расширение в данный момент не включено.

Примеры

Пример #1 Пример использования phpversion()

<?php
// Выводит строку типа 'Текущая версия PHP: 4.1.1'
echo 'Текущая версия PHP: ' . phpversion();

// Выводит строку типа '2.0' или ничего, если расширение не включено
echo phpversion('tidy');
?>

Пример #2 Пример использования PHP_VERSION_ID

<?php
// PHP_VERSION_ID доступна в версиях PHP 5.2.7 и выше. Если
// наша версия ниже, можно ее сэмулировать
if (!defined('PHP_VERSION_ID')) {
    $version = explode('.', PHP_VERSION);

    define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2]));
}

// PHP_VERSION_ID определена как число. Чем больше число, тем новее
// PHP. Эта константа задается по той же схеме, что приведена выше:
//
// $version_id = $major_version * 10000 + $minor_version * 100 + $release_version;
//
// Теперь с PHP_VERSION_ID можно проверять, какой функционал есть в
// текущей версии PHP. Не обязательно пользоваться version_compare()
// каждый раз, когда требуется проверить, поддерживает ли PHP нужную
// нам функцию.
//
// Например, мы можем задать значения констант PHP_VERSION_*,
// которые недоступны в версиях ранее 5.2.7

if (PHP_VERSION_ID < 50207) {
    define('PHP_MAJOR_VERSION',   $version[0]);
    define('PHP_MINOR_VERSION',   $version[1]);
    define('PHP_RELEASE_VERSION', $version[2]);

    // и так далее ...
}
?>

Примечания

Замечание:

Эта информация также доступна через предопределенную константу PHP_VERSION. Более детальную информацию можно получить с помощью констант PHP_VERSION_*.

Смотрите также

  • Константы PHP_VERSION
  • version_compare() - Сравнивает две "стандартизованные" строки с номером версии PHP
  • phpinfo() - Выводит информацию о текущей конфигурации PHP
  • phpcredits() - Выводит список разработчиков PHP
  • php_logo_guid() - Получение guid логотипа
  • zend_version() - Получает версию движка Zend


Устанавливает значение переменной среды

  • « phpversion
  • restore_include_path »
  • PHP Manual
  • Опции PHP/информационные функции
  • Устанавливает значение переменной среды

putenv

(PHP 4, PHP 5, PHP 7)

putenv — Устанавливает значение переменной среды

Описание

putenv ( string $setting ) : bool

Добавляет setting в переменные окружения сервера. Переменная будет существовать только на время выполнения текущего запроса. По его завершении переменная вернется в изначальное состояние.

Изменение множества переменных среды потенциально небезопасно. Директива safe_mode_allowed_env_vars содержит список разделенных запятой префиксов. В безопасном режиме пользователь может менять значения только тех переменных, имена которых начинаются с перечисленных префиксов. По умолчанию пользователи могут менять только те переменные, которые начинаются с PHP_ (например, PHP_FOO=BAR). Замечание: Если эта директива пустая, PHP позволит пользователям менять ЛЮБЫЕ переменные!

Директива safe_mode_protected_env_vars содержит список разделенных запятой имен переменных среды, которые пользователю запрещено изменять функцией putenv(). Эти переменные будут защищены, даже если safe_mode_allowed_env_vars разрешает их изменение.

Список параметров

setting

Установка вида "FOO=BAR"

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Установка значения переменной среды

<?php
putenv("UNIQID=$uniqid");
?>

Примечания

Внимание

Директивы safe_mode_allowed_env_vars и safe_mode_protected_env_vars работают только в безопасном режиме.

Смотрите также

  • getenv() - Получение значения переменной окружения
  • apache_setenv() - Устанавливает переменную subprocess_env Apache


Восстанавливает изначальное значение настройки конфигурации include_path

  • « putenv
  • set_include_path »
  • PHP Manual
  • Опции PHP/информационные функции
  • Восстанавливает изначальное значение настройки конфигурации include_path

restore_include_path

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

restore_include_path — Восстанавливает изначальное значение настройки конфигурации include_path

Описание

restore_include_path ( void ) : void

Восстанавливает исходное значение настройки конфигурации include_path, которое записано в php.ini

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования restore_include_path()

<?php

echo get_include_path();  // .:/usr/local/lib/php

set_include_path('/inc');

echo get_include_path();  // /inc

restore_include_path();

// или так
ini_restore('include_path');

echo get_include_path();  // .:/usr/local/lib/php

?>

Смотрите также

  • ini_restore() - Восстанавливает значение настройки конфигурации
  • get_include_path() - Получение текущего значения настройки конфигурации include_path
  • set_include_path() - Устанавливает значение настройки конфигурации include_path
  • include - include


Устанавливает значение настройки конфигурации include_path

  • « restore_include_path
  • set_magic_quotes_runtime »
  • PHP Manual
  • Опции PHP/информационные функции
  • Устанавливает значение настройки конфигурации include_path

set_include_path

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

set_include_path — Устанавливает значение настройки конфигурации include_path

Описание

set_include_path ( string $new_include_path ) : string

Задает значение настройки конфигурации include_path на время выполнения скрипта.

Список параметров

new_include_path

Новое значение настройки include_path

Возвращаемые значения

Возвращает старое значение include_path в случае успеха. или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования set_include_path()

<?php
set_include_path('/usr/lib/pear');

// Или так
ini_set('include_path', '/usr/lib/pear');
?>

Пример #2 Составление более длинного пути include path

Используя константу PATH_SEPARATOR, можно добавить к пути вложенные директории независимо от операционной системы.

В этом примере мы добавим /usr/lib/pear в конец существующего пути include_path.

<?php
$path = '/usr/lib/pear';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
?>

Смотрите также

  • ini_set() - Устанавливает значение настройки конфигурации
  • get_include_path() - Получение текущего значения настройки конфигурации include_path
  • restore_include_path() - Восстанавливает изначальное значение настройки конфигурации include_path
  • include - include


Установка текущего значения настройки magic_quotes_runtime

  • « set_include_path
  • set_time_limit »
  • PHP Manual
  • Опции PHP/информационные функции
  • Установка текущего значения настройки magic_quotes_runtime

set_magic_quotes_runtime

(PHP 4, PHP 5)

set_magic_quotes_runtime — Установка текущего значения настройки magic_quotes_runtime

Внимание

Эта функция считается УСТАРЕВШЕЙ с PHP 5.3.0 и УДАЛЕНА в PHP 7.0.0.

Описание

set_magic_quotes_runtime ( bool $new_setting ) : bool

Задает текущее активное значение настройки magic_quotes_runtime.

Ошибки

С версии PHP 5.3 эта функция устарела и при запуске вызывает предупреждение E_DEPRECATED. С версии PHP 5.4 эта функция также вызывает ошибку E_CORE_ERROR при попытке включить магические кавычки.

Список параметров

new_setting

FALSE - выключено, TRUE - включено.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования set_magic_quotes_runtime()

<?php
// Создаем временный указатель на файл
$fp = tmpfile();

// Пишем в файл какие-то данные
fwrite($fp, '\'PHP\' is a Recursive acronym');

// Без включенной опцией magic_quotes_runtime
rewind($fp);
set_magic_quotes_runtime(false);

echo 'Без включенной опции magic_quotes_runtime: ' . fread($fp, 64), PHP_EOL;

// С включенной опцией magic_quotes_runtime
rewind($fp);
set_magic_quotes_runtime(true);

echo 'С включенной опцией magic_quotes_runtime: ' . fread($fp, 64), PHP_EOL;

// Очистка
fclose($fp);
?>

Результат выполнения данного примера:

Без включенной опции magic_quotes_runtime: 'PHP' is a Recursive acronym
С включенной опцией magic_quotes_runtime: \'PHP\' is a Recursive acronym

Смотрите также

  • get_magic_quotes_gpc() - Получение текущего значения настройки конфигурации magic_quotes_gpc
  • get_magic_quotes_runtime() - Получение текущего значения настройки конфигурации magic_quotes_runtime


Ограничение времени выполнения скрипта

  • « set_magic_quotes_runtime
  • sys_get_temp_dir »
  • PHP Manual
  • Опции PHP/информационные функции
  • Ограничение времени выполнения скрипта

set_time_limit

(PHP 4, PHP 5, PHP 7)

set_time_limit — Ограничение времени выполнения скрипта

Описание

set_time_limit ( int $seconds ) : bool

Задает время в секундах, в течение которого скрипт должен завершить работу. Если скрипт не успевает, вызывается фатальная ошибка. По умолчанию дается 30 секунд, либо время, записанное в настройке max_execution_time в php.ini (если такая настройка установлена).

При вызове set_time_limit() перезапускает счетчик с нуля. Другими словами, если тайм-аут изначально был 30 секунд, и через 25 секунд после запуска скрипта будет вызвана функция set_time_limit(20), то скрипт будет работать максимум 45 секунд.

Список параметров

seconds

Максимальное время выполнения в секундах. Если задан ноль, время выполнения неограничено.

Возвращаемые значения

Возвращает TRUE в случае успеха, иначе FALSE.

Примечания

Внимание

Эта функция не работает, если PHP работает в безопасном режиме (безопасный режим). Обойти это ограничение можно только выключив безопасный режим или изменив значение настройки в php.ini.

Замечание:

Функция set_time_limit() и директива max_execution_time влияют на время выполнения только самого скрипта. Время, затраченное на различные действия вне скрипта, такие как системные вызовы функции system(), потоковые операции, запросы к базам данных и т.п. не включаются в расчет времени выполнения скрипта. Это не относится к системам Windows, где расчитывается абсолютное время выполнения.

Смотрите также

  • max_execution_time
  • max_input_time


Возвращает путь к директории временных файлов

  • « set_time_limit
  • version_compare »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает путь к директории временных файлов

sys_get_temp_dir

(PHP 5 >= 5.2.1, PHP 7)

sys_get_temp_dir — Возвращает путь к директории временных файлов

Описание

sys_get_temp_dir ( void ) : string

Возвращает путь к директории, где PHP по умолчанию хранит временные файлы.

Возвращаемые значения

Возвращает путь к директории временных файлов.

Примеры

Пример #1 Пример использования sys_get_temp_dir()

<?php
// Создание временного файла в директории
// временных файлов, используя sys_get_temp_dir()
$temp_file = tempnam(sys_get_temp_dir(), 'Tux');

echo $temp_file;
?>

Результатом выполнения данного примера будет что-то подобное:

C:\Windows\Temp\TuxA318.tmp

Смотрите также

  • tmpfile() - Создаёт временный файл
  • tempnam() - Создаёт файл с уникальным именем


Сравнивает две "стандартизованные" строки с номером версии PHP

  • « sys_get_temp_dir
  • zend_logo_guid »
  • PHP Manual
  • Опции PHP/информационные функции
  • Сравнивает две "стандартизованные" строки с номером версии PHP

version_compare

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

version_compare — Сравнивает две "стандартизованные" строки с номером версии PHP

Описание

version_compare ( string $version1 , string $version2 ) : int
version_compare ( string $version1 , string $version2 , string $operator ) : bool

version_compare() сравнивает две "PHP-стандартизованные" строки с номерами версий.

Функция сначала заменяет _, - и + на точку . в строках версий, а также добавляет точки . перед и после каждого символа, не являющегося числом. Например, '4.3.2RC1' преобразуется в '4.3.2.RC.1'. После этого сравнивает части строк слева направо. Если часть строки содержит специальные символы версий, они обрабатываются следующим образом: любая строка, не найденная в этом списке < dev < alpha = a < beta = b < RC = rc < # < pl = p. Таким образом можно сравнивать не только версии разных уровней, вроде '4.1' и '4.1.2', но и специфичные версии, включающие статус разработки.

Список параметров

version1

Номер первой версии.

version2

Номер второй версии.

operator

Если задан третий необязательный аргумент operator, то версии проверяются на соответствие логическому выражению. Возможные операторы: <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne.

Аргумент чувствителен к регистру, поэтому значения должны быть в нижнем регистре.

Возвращаемые значения

По умолчанию функция version_compare() возвращает -1, если первая версия меньше второй; 0, когда они равны; 1, если вторая меньше первой. В случае, если будет передан не поддерживаемый operator, то будет возвращен NULL.

При использовании аргумента operator функция вернет TRUE, если выражение в соответствии с оператором верно, и FALSE в противном случае.

Примеры

В примере ниже используется константа PHP_VERSION, она содержит номер версии PHP, который выполняет код.

Пример #1 Пример использования version_compare()

<?php
if (version_compare(PHP_VERSION, '7.0.0') >= 0) {
    echo 'Я использую PHP версии не ниже 7.0.0, моя версия: ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
    echo 'Я использую PHP версии не ниже 5.3.0, моя версия: ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.0.0', '>=')) {
    echo 'Я использую PHP 5.0.0 или выше, моя версия: ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.0.0', '<')) {
    echo 'Я до сих пор использую PHP 4, моя версия: ' . PHP_VERSION . "\n";
}
?>

Примечания

Замечание:

Константа PHP_VERSION хранит номер текущей версии PHP.

Замечание:

Заметьте, что дорелизные версии, такие как 5.3.0-dev, считаются меньше, чем финальные (вида 5.3.0).

Замечание:

Специальные слова вроде alpha и beta чувствительны к регистру. Строки версий, не придерживающиеся PHP-стандарта, нужно приводить к нижнему регистру функцией strtolower() до вызова version_compare().

Смотрите также

  • phpversion() - Получает текущую версию PHP
  • php_uname() - Возвращает информацию об операционной системе, на которой запущен PHP
  • function_exists() - Возвращает TRUE, если указанная функция определена


Получает Zend guid

  • « version_compare
  • zend_thread_id »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получает Zend guid

zend_logo_guid

(PHP 4, PHP < 5.5.0)

zend_logo_guid — Получает Zend guid

Описание

zend_logo_guid ( void ) : string

Эта функция возвращает идентификатор, который нужен для отображения логотипа Zend, используя встроенное изображение.

Внимание

Эта функция была помечена УСТАРЕВШЕЙ и была УДАЛЕНА, начиная с PHP 5.5.0.

Возвращаемые значения

Возвращает PHPE9568F35-D428-11d2-A769-00AA001ACF42.

Список изменений

Версия | Описание
5.5.0 | zend_logo_guid() удалена из PHP.

Примеры

Пример #1 Пример использования zend_logo_guid()

<?php

echo '<img src="' . $_SERVER['PHP_SELF'] .
     '?=' . zend_logo_guid() . '" alt="Zend Logo !" />';

?>

Смотрите также

  • php_logo_guid() - Получение guid логотипа


Возвращает уникальный идентификатор текущего потока выполнения

  • « zend_logo_guid
  • zend_version »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает уникальный идентификатор текущего потока выполнения

zend_thread_id

(PHP 5, PHP 7)

zend_thread_id — Возвращает уникальный идентификатор текущего потока выполнения

Описание

zend_thread_id ( void ) : int

Эта функция возвращает уникальный идентификатор текущего потока выполнения.

Возвращаемые значения

Возвращает идентификатор потока выполнения в виде целого числа.

Примеры

Пример #1 Пример использования zend_thread_id()

<?php
$thread_id = zend_thread_id();

echo 'Идентификатор текущего потока выполнения: ' . $thread_id;
?>

Результатом выполнения данного примера будет что-то подобное:

Идентификатор текущего потока выполнения: 7864

Примечания

Замечание:

Эта функция доступна, только если PHP собран с поддержкой ZTS (Zend Thread Safety) и работает в режиме отладки (--enable-debug).


Получает версию движка Zend

  • « zend_thread_id
  • phpdbg »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получает версию движка Zend

zend_version

(PHP 4, PHP 5, PHP 7)

zend_version — Получает версию движка Zend

Описание

zend_version ( void ) : string

Возвращает строку с номером версии работающего в данный момент ядра Zend Engine.

Возвращаемые значения

Возвращает номер версии Zend Engine в виде строки.

Примеры

Пример #1 Пример использования zend_version()

<?php
echo "Версия движка Zend: " . zend_version();
?>

Результатом выполнения данного примера будет что-то подобное:

Версия движка Zend: 2.2.0

Смотрите также

  • phpinfo() - Выводит информацию о текущей конфигурации PHP
  • phpcredits() - Выводит список разработчиков PHP
  • php_logo_guid() - Получение guid логотипа
  • phpversion() - Получает текущую версию PHP


Интерактивный отладчик PHP

  • Введение
  • Установка и настройка
    • Настройка во время выполнения
  • Предопределенные константы
  • Функции phpdbg
    • phpdbg_break_file — Добавить точку прерывания на конкретную строку файла
    • phpdbg_break_function — Добавить точку прерывания на вызов функции
    • phpdbg_break_method — Добавить точку прерывания на вызов метода класса
    • phpdbg_break_next — Добавить точку прерывания на следующий опкод
    • phpdbg_clear — Убрать все точки прерывания
    • phpdbg_color — Задать цвет для элемента
    • phpdbg_end_oplog — Описание
    • phpdbg_exec — Попытаться задать контекст исполнения
    • phpdbg_get_executable — Описание
    • phpdbg_prompt — Установить приглашение командной строки
    • phpdbg_start_oplog — Описание


Введение

Поскольку phpdbg реализован в виде модуля SAPI, то он может полностью контролировать окружение без воздействие на функциональность и скорость выполнения вашего кода.

Phpdbg претендует на то, чтобы считаться легковесным, мощным и простым в использовании отладчиком для PHP. Он предоставляет следующие возможности:

  • Пошаговая отладка
  • Гибкие точки прерывания (метод класса, функция, строка файла, адрес, опкод)
  • Легкий доступ к PHP с помощью встроенной функции eval()
  • Пользовательское API
  • Независимость от SAPI - легко интегрируется
  • Поддержка конфигурационных файлов PHP
  • Определение собственных суперглобальных переменных JIT
  • Опциональная поддержка ввода с клавиатуры - удобная работа через терминал
  • Легок в использовании - читайте документацию :)

Опции командной строки
Опция | Пример аргумента | Описание
-c | -c/my/php.ini | Указывает php.ini, который надо загрузить
-d | -dmemory_limit=4G | Установка соответствующей директивы php.ini
-n |  | Запрет использования стандартного php.ini
-q |  | Не показывать приветственный баннер
-v |  | Разрешить вывод oplog
-b |  | Запретить использование цветов
-i | -imy.init | Задать файл .phpdbginit
-I |  | Игнорировать стандартный .phpdbginit
-O | -Omy.oplog | Задать файл для записи oplog
-r |  | Запустить контекст исполнения
-rr |  | Запустить контекст исполнения и выйти после запуска (не обращать внимание на точки останова)
-e |  | Генерировать расширенную информацию для отладчика/профилировщика
-E |  | Разрешить пошаговый eval. Будьте осторожны!
-s | -s=, -s=foo | Прочитать код для исполнения из стандартного потока ввода с опциональным разделителем
-S | -Scli | Переопределить имя SAPI. Будьте осторожны!
-l | -l4000 | Задать порт удаленной консоли
-a | -a192.168.0.3 | Задать адрес удаленной консоли
-x |  | Включить вывод в формате xml (вместо стандартного текстового)
-p | -p, -p=func, -p* | Вывести опкоды и выйти
-h |  | Вывести справочный раздел
-V |  | Напечатать номер версии
-- | -- arg1 arg2 | Используется для разделения аргументов phpdbg и php $argv; любые $argv добавляйте после него


  • « Введение
  • Настройка во время выполнения »
  • PHP Manual
  • phpdbg
  • Установка и настройка

Установка и настройка

Содержание

  • Настройка во время выполнения


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

phpdbg Опции настройки
Имя | По умолчанию | Место изменения | Список изменений
phpdbg.eol | 2 | PHP_INI_ALL | Доступно с PHP 7.0.0
phpdbg.path |  | 6 | Доступно с PHP 5.6.3

Краткое разъяснение конфигурационных директив.

phpdbg.eol mixed

Тип окончания строки, используемый для вывода. Для установки значения необходимо использовать один из псевдонимов строк.

int Значение | string Псевдоним
0 | CRLF, crlf, DOS, dos
1 | LF, lf, UNIX, unix
2 | CR, cr, MAC, mac

phpdbg.path string


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

PHPDBG_VERSION (string)
PHPDBG_FILE (integer)
Удалено в PHP 7.3.0.
PHPDBG_METHOD (integer)
Удалено в PHP 7.3.0.
PHPDBG_LINENO (integer)
Удалено в PHP 7.3.0.
PHPDBG_FUNC (integer)
Удалено в PHP 7.3.0.
PHPDBG_COLOR_PROMPT (integer)
PHPDBG_COLOR_NOTICE (integer)
PHPDBG_COLOR_ERROR (integer)


Функции phpdbg

Содержание

  • phpdbg_break_file — Добавить точку прерывания на конкретную строку файла
  • phpdbg_break_function — Добавить точку прерывания на вызов функции
  • phpdbg_break_method — Добавить точку прерывания на вызов метода класса
  • phpdbg_break_next — Добавить точку прерывания на следующий опкод
  • phpdbg_clear — Убрать все точки прерывания
  • phpdbg_color — Задать цвет для элемента
  • phpdbg_end_oplog — Описание
  • phpdbg_exec — Попытаться задать контекст исполнения
  • phpdbg_get_executable — Описание
  • phpdbg_prompt — Установить приглашение командной строки
  • phpdbg_start_oplog — Описание


Добавить точку прерывания на конкретную строку файла

  • « Функции phpdbg
  • phpdbg_break_function »
  • PHP Manual
  • Функции phpdbg
  • Добавить точку прерывания на конкретную строку файла

phpdbg_break_file

(PHP 5 >= 5.6.3, PHP 7)

phpdbg_break_file — Добавить точку прерывания на конкретную строку файла

Описание

phpdbg_break_file ( string $file , int $line ) : void

Добавляет точку прерывания на строку line файла file.

Список параметров

file

Имя файла.

line

Номер строки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • phpdbg_break_function() - Добавить точку прерывания на вызов функции
  • phpdbg_break_method() - Добавить точку прерывания на вызов метода класса
  • phpdbg_break_next() - Добавить точку прерывания на следующий опкод
  • phpdbg_clear() - Убрать все точки прерывания


Добавить точку прерывания на вызов функции

  • « phpdbg_break_file
  • phpdbg_break_method »
  • PHP Manual
  • Функции phpdbg
  • Добавить точку прерывания на вызов функции

phpdbg_break_function

(PHP 5 >= 5.6.3, PHP 7)

phpdbg_break_function — Добавить точку прерывания на вызов функции

Описание

phpdbg_break_function ( string $function ) : void

Добавляет точку прерывания на вызов функции function.

Список параметров

function

Имя функции.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • phpdbg_break_file() - Добавить точку прерывания на конкретную строку файла
  • phpdbg_break_method() - Добавить точку прерывания на вызов метода класса
  • phpdbg_break_next() - Добавить точку прерывания на следующий опкод
  • phpdbg_clear() - Убрать все точки прерывания


Добавить точку прерывания на вызов метода класса

  • « phpdbg_break_function
  • phpdbg_break_next »
  • PHP Manual
  • Функции phpdbg
  • Добавить точку прерывания на вызов метода класса

phpdbg_break_method

(PHP 5 >= 5.6.3, PHP 7)

phpdbg_break_method — Добавить точку прерывания на вызов метода класса

Описание

phpdbg_break_method ( string $class , string $method ) : void

Добавляет точку прерывания на вызов метода method класса class.

Список параметров

class

Имя класса.

method

Имя метода.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • phpdbg_break_file() - Добавить точку прерывания на конкретную строку файла
  • phpdbg_break_function() - Добавить точку прерывания на вызов функции
  • phpdbg_break_next() - Добавить точку прерывания на следующий опкод
  • phpdbg_clear() - Убрать все точки прерывания


Добавить точку прерывания на следующий опкод

  • « phpdbg_break_method
  • phpdbg_clear »
  • PHP Manual
  • Функции phpdbg
  • Добавить точку прерывания на следующий опкод

phpdbg_break_next

(PHP 5 >= 5.6.3, PHP 7)

phpdbg_break_next — Добавить точку прерывания на следующий опкод

Описание

phpdbg_break_next ( void ) : void

Добавляет точку прерывания на следующий опкод.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • phpdbg_break_file() - Добавить точку прерывания на конкретную строку файла
  • phpdbg_break_function() - Добавить точку прерывания на вызов функции
  • phpdbg_break_method() - Добавить точку прерывания на вызов метода класса
  • phpdbg_clear() - Убрать все точки прерывания


Убрать все точки прерывания

  • « phpdbg_break_next
  • phpdbg_color »
  • PHP Manual
  • Функции phpdbg
  • Убрать все точки прерывания

phpdbg_clear

(PHP 5 >= 5.6.0, PHP 7)

phpdbg_clear — Убрать все точки прерывания

Описание

phpdbg_clear ( void ) : void

Удаляет все заданные ранее точки прерывания. Работает как для заданных с помощью функций phpdbg_break_*(), так и для добавленных вручную через консоль.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • phpdbg_break_file() - Добавить точку прерывания на конкретную строку файла
  • phpdbg_break_function() - Добавить точку прерывания на вызов функции
  • phpdbg_break_method() - Добавить точку прерывания на вызов метода класса
  • phpdbg_break_next() - Добавить точку прерывания на следующий опкод


Задать цвет для элемента

  • « phpdbg_clear
  • phpdbg_end_oplog »
  • PHP Manual
  • Функции phpdbg
  • Задать цвет для элемента

phpdbg_color

(PHP 5 >= 5.6.0, PHP 7)

phpdbg_color — Задать цвет для элемента

Описание

phpdbg_color ( int $element , string $color ) : void

Устанавливает цвет color для элемента element.

Список параметров

element

Одна из констант PHPDBG_COLOR_*.

color

Имя цвета. Одно из: white, red, green, yellow, blue, purple, cyan или black. Опционально можно использовать суффиксы -bold или -underline. К примеру white-bold или green-underline.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • phpdbg_prompt() - Установить приглашение командной строки


Описание

  • « phpdbg_color
  • phpdbg_exec »
  • PHP Manual
  • Функции phpdbg
  • Описание

phpdbg_end_oplog

(PHP 7)

phpdbg_end_oplog —

Описание

phpdbg_end_oplog ([ array $options ] ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Возвращаемые значения


Попытаться задать контекст исполнения

  • « phpdbg_end_oplog
  • phpdbg_get_executable »
  • PHP Manual
  • Функции phpdbg
  • Попытаться задать контекст исполнения

phpdbg_exec

(PHP 5 >= 5.6.0, PHP 7)

phpdbg_exec — Попытаться задать контекст исполнения

Описание

phpdbg_exec ([ string $context ] ) : mixed

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Возвращаемые значения

Предыдущий контекст исполнения, если он был задан. TRUE, если контекст исполнения ранее не был задан. Если запрос на установку контекста завершится с ошибкой, то будет возвращено FALSE и вызвана ошибка уровня E_WARNING.


Описание

  • « phpdbg_exec
  • phpdbg_prompt »
  • PHP Manual
  • Функции phpdbg
  • Описание

phpdbg_get_executable

(PHP 7)

phpdbg_get_executable —

Описание

phpdbg_get_executable ([ array $options ] ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Возвращаемые значения


Установить приглашение командной строки

  • « phpdbg_get_executable
  • phpdbg_start_oplog »
  • PHP Manual
  • Функции phpdbg
  • Установить приглашение командной строки

phpdbg_prompt

(PHP 5 >= 5.6.0, PHP 7)

phpdbg_prompt — Установить приглашение командной строки

Описание

phpdbg_prompt ( string $string ) : void

Устанавливает приглашение командной строки как задано в string.

Список параметров

string

Строка, которая будет использована как приглашение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • phpdbg_color() - Задать цвет для элемента


Описание

  • « phpdbg_prompt
  • runkit »
  • PHP Manual
  • Функции phpdbg
  • Описание

phpdbg_start_oplog

(PHP 7)

phpdbg_start_oplog —

Описание

phpdbg_start_oplog ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


runkit

  • Введение
  • Предопределенные константы
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • runkit
    • Runkit_Sandbox — Класс Runkit Sandbox -- это виртуальная машина PHP
    • Runkit_Sandbox_Parent — Класс анти-песочницы для Runkit
    • runkit_class_adopt — Конвертирует базовый класс в наследованный ("усыновляет"). Дополняет методы наследованными при необходимости.
    • runkit_class_emancipate — Конвертирует наследующий класс в базовый, удаляет из него наследуемые методы.
    • runkit_constant_add — Объявляет константу. Схожа с функцией define(), но позволяет создавать локальные константы внутри классов.
    • runkit_constant_redefine — Переназначить уже определенную константу.
    • runkit_constant_remove — Удаляет уже определенную константу.
    • runkit_function_add — Добавляет новую функцию аналогично create_function
    • runkit_function_copy — Копирует функцию с новым именем
    • runkit_function_redefine — Заменяет определение функции новой реализацией.
    • runkit_function_remove — Удаляет определенную функцию
    • runkit_function_rename — Переименовывает функцию
    • runkit_import — Обрабатывает PHP файл, импортируя функции и классы, перезаписывая при необходимости.
    • runkit_lint_file — Проверяет PHP-синтаксис выбранного файла
    • runkit_lint — Проверяет PHP-синтаксис выбранного кода
    • runkit_method_add — Динамически добавляет новый метод в класс
    • runkit_method_copy — Копирование метода из одного класса в другой
    • runkit_method_redefine — Изменяет код выбранного метода
    • runkit_method_remove — Динамически удаляет выбранный метод
    • runkit_method_rename — Переименовывает выбранный метод
    • runkit_return_value_used — Определяет, используется ли возвращаемое функцией значение
    • runkit_sandbox_output_handler — Задает функцию для захвата и/или обработки данных из "песочницы".
    • runkit_superglobals — Возвращает индексный массив зарегистрированных суперглобальных переменных.


Введение

Модуль runkit предоставляет возможности переопределить константы, функции и классы. Он так же предоставляет "песочницу" со своими суперглобальными переменными и субинтерпретатором.

Модуль является расширенной заменой » classkit. Если скомпилировано с флагом --enable-runkit=classkit, будут доступны функции и константы, совместимые с classkit.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

RUNKIT_IMPORT_FUNCTIONS (integer)
Флаг runkit_import(), указывающий, что необходимо импортировать функции из указанного файла
RUNKIT_IMPORT_CLASS_METHODS (integer)
Флаг runkit_import(), указывающий, что необходимо импортировать методы классов из указанного файла
RUNKIT_IMPORT_CLASS_CONSTS (integer)
Флаг runkit_import(), указывающий, что необходимо импортировать локальные константы классов из указанного файла. Эта возможность доступна начиная с версии PHP 5.1.0
RUNKIT_IMPORT_CLASS_PROPS (integer)
Флаг runkit_import(), указывающий, что необходимо импортировать свойства классов из указанного файла.
RUNKIT_IMPORT_CLASS_STATIC_PROPS (integer)
Флаг runkit_import(), указывающий, что статические свойства класса должны импортироваться из указанныго файла. Доступно с Runkit 1.0.1.
RUNKIT_IMPORT_CLASSES (integer)
Флаг runkit_import(), представляющий побитовое ИЛИ для констант RUNKIT_IMPORT_CLASS_*.
RUNKIT_IMPORT_OVERRIDE (integer)
Флаг runkit_import(), указывающий что необходимо перезаписывать существующие функции, методы, константы и свойства классов. Если этот флаг не задан, перезапись существующих определений производиться не будет.
RUNKIT_ACC_PUBLIC (integer)
Специфичный флаг PHP для runkit_method_add() и runkit_method_redefine()
RUNKIT_ACC_PROTECTED (integer)
Специфичный флаг PHP для runkit_method_add() и runkit_method_redefine()
RUNKIT_ACC_PRIVATE (integer)
Специфичный флаг PHP для runkit_method_add() и runkit_method_redefine()
RUNKIT_ACC_STATIC (integer)
Специфичный флаг PHP для runkit_method_add() и runkit_method_redefine(). Доступен с Runkit 1.0.1.
CLASSKIT_ACC_PUBLIC (integer)
Флаг runkit_method_add(), специфичный для PHP 5. Определен только при включенной совместимости с classkit.
CLASSKIT_ACC_PROTECTED (integer)
Флаг runkit_method_add(), специфичный для PHP 5. Определен только при включенной совместимости с classkit.
CLASSKIT_ACC_PRIVATE (integer)
Флаг runkit_method_add(), специфичный для PHP 5. Определен только при включенной совместимости с classkit.
CLASSKIT_AGGREGATE_OVERRIDE (integer)
Флаг classkit_import(), специфичный для PHP 5. Определен только при включенной совместимости с classkit.
RUNKIT_VERSION (string)
Представляет текущую версию runkit.
CLASSKIT_VERSION (string)
Представляет текущую версию runkit. Определен только при включенной совместимости с classkit.


Требования

Переназначение констант, функций, классов и методов как и Пользовательские Суперглобальные переменные работают во всех версиях PHP 5. Особые требования отсутствуют.

Песочница доступна начиная с версии PHP 5.1.0, или в версии 5.0.0 со специальным патчем TSRM. Вне зависимости от версии, PHP должен быть скомпилирован с флагом --enable-maintainer-zts. Дополнительную информацию можно получить в файле README в поставке runkit.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/runkit.

Бинарные файлы Windows (файлы DLL) для этого расширения PECL доступны на сайте PECL.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации runkit
Имя | По умолчанию | Место изменения | Список изменений
runkit.superglobal | "" | PHP_INI_PERDIR |
runkit.internal_override | "0" | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

runkit.superglobal string
Список переменных через запятую, которые будут интерпретированы как суперглобальные. Это значение должно задаваться в системном php.ini, но может работать и в конфигурации для директории в зависимости от интерфейса.

Пример #1 Пользовательские суперглобальные переменные при runkit.superglobal=_FOO,_BAR в php.ini

<?php
function show_values() {
  echo "Foo - $_FOO\n";
  echo "Bar - $_BAR\n";
  echo "Baz - $_BAZ\n";
}

$_FOO = 'foo';
$_BAR = 'bar';
$_BAZ = 'baz';

/* Отображает переменные foo и bar, но не baz */
show_values();
?>
runkit.internal_override boolean
Задействует возможность изменять, удалять и переименовывать встроенные функции.


  • « Настройка во время выполнения
  • runkit »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


runkit

Содержание

  • Runkit_Sandbox — Класс Runkit Sandbox -- это виртуальная машина PHP
  • Runkit_Sandbox_Parent — Класс анти-песочницы для Runkit
  • runkit_class_adopt — Конвертирует базовый класс в наследованный ("усыновляет"). Дополняет методы наследованными при необходимости.
  • runkit_class_emancipate — Конвертирует наследующий класс в базовый, удаляет из него наследуемые методы.
  • runkit_constant_add — Объявляет константу. Схожа с функцией define(), но позволяет создавать локальные константы внутри классов.
  • runkit_constant_redefine — Переназначить уже определенную константу.
  • runkit_constant_remove — Удаляет уже определенную константу.
  • runkit_function_add — Добавляет новую функцию аналогично create_function
  • runkit_function_copy — Копирует функцию с новым именем
  • runkit_function_redefine — Заменяет определение функции новой реализацией.
  • runkit_function_remove — Удаляет определенную функцию
  • runkit_function_rename — Переименовывает функцию
  • runkit_import — Обрабатывает PHP файл, импортируя функции и классы, перезаписывая при необходимости.
  • runkit_lint_file — Проверяет PHP-синтаксис выбранного файла
  • runkit_lint — Проверяет PHP-синтаксис выбранного кода
  • runkit_method_add — Динамически добавляет новый метод в класс
  • runkit_method_copy — Копирование метода из одного класса в другой
  • runkit_method_redefine — Изменяет код выбранного метода
  • runkit_method_remove — Динамически удаляет выбранный метод
  • runkit_method_rename — Переименовывает выбранный метод
  • runkit_return_value_used — Определяет, используется ли возвращаемое функцией значение
  • runkit_sandbox_output_handler — Задает функцию для захвата и/или обработки данных из "песочницы".
  • runkit_superglobals — Возвращает индексный массив зарегистрированных суперглобальных переменных.


Класс Runkit Sandbox -- это виртуальная машина PHP

  • « runkit
  • Runkit_Sandbox_Parent »
  • PHP Manual
  • runkit
  • Класс Runkit Sandbox -- это виртуальная машина PHP

Runkit_Sandbox

(PECL runkit >= 0.7.0)

Runkit_Sandbox — Класс Runkit Sandbox -- это виртуальная машина PHP

Описание

Экземпляр класса Runkit_Sandbox создает отдельный поток основного процесса с собственным окружением и выделенной областью памяти (стеком). С помощью дополнительных параметров конструктора можно ограничивать функционал интерпретатора в песочнице, создавая таким образом безопасное окружение для выполнения пользовательского кода.

Замечание: Поддержка песочницы (необходима для runkit_lint(), runkit_lint_file(), и класса Runkit_Sandbox) доступна только начиная с версии PHP 5.1.0 или в специально пропатченных версиях PHP 5.0, а также требует потокобезопасной (thread safe) версии PHP. Для более подробной информации смотрите файл README, поставляемый с пакетом runkit.

Конструктор

Runkit_Sandbox::__construct ([ array $options ] ) : void

options ассоциативный массив, содержащий произвольную комбинацию специальных параметров, перечисленных ниже

safe_mode

Если родительский скрипт, в котором создается экземпляр Runkit_Sandbox выполняется с директивой safe_mode = off, то эту опцию можно задействовать в песочнице для включения режима safe_mode. Данный параметр не может быть использован для отключения safe_mode, если он включен во внешнем окружении.

safe_mode_gid

Если родительский скрипт, в котором создается экземпляр Runkit_Sandbox выполняется с директивой safe_mode_gid = on, то данную опцию можно задействовать для отключения safe_mode_gid в песочнице. Этот параметр нельзя использовать для включения safe_mode_gid, если он выключен во внешнем окружении.

safe_mode_include_dir

Если родительский скрипт, в котором создается экземпляр Runkit_Sandbox выполняется c заданной директивой safe_mode_include_dir, то для песочницы может быть указана новая директория, находящаяся внутри заданной. Значение safe_mode_include_dir также может быть очищено для возврата к начальным настройкам. Если директива safe_mode_include_dir не была настроена для родительского скрипта, подразумевается, что задан корневой раздел. В таком случае для песочницы можно указать любую директорию, при включенном режим safe_mode.

open_basedir

В параметре open_basedir может быть задана любая директория, находящаяся внутри назначенной open_basedir родительского скрипта. Если параметр open_basedir в родительском скрипте не задан, в качестве его значения используется корневой раздел. В таком случае для песочницы можно указать любой каталог.

allow_url_fopen

Подобно safe_mode, этот параметр может быть изменен только в сторону увеличения ограничений. Допускается устанавливать его значение FALSE в случае, если значение в родительском окружении TRUE.

disable_functions

Список отключенных в песочнице функций через запятую. В этот список не надо вносить уже отключенные в родительском скрипте функции, они таковыми и останутся вне зависимости от наличия в списке.

disable_classes

Список отключенных в песочнице классов через запятую. В этот список не надо вносить уже отключенные в родительском скрипте классы, они таковыми и останутся вне зависимости от наличия в списке.

runkit.superglobal

Список суперглобальных переменных для песочницы через запятую. Перечисленные переменные будут дополнять список существующих суперглобальных переменных, встроенных и заданных с помощью runkit.superglobal в родительском окружении.

runkit.internal_override

Параметр runkit.internal_override может быть только отключен для песочницы.

Пример #1 Пример создания безопасной песочницы

<?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);
/* Незащищенные ini-переменные устанавливаются обычным способом */
$sandbox->ini_set('html_errors',true);
?>

Доступ к переменным

Все глобальные переменные внутри песочницы доступны через свойства объекта Runkit_Sandbox. Необходимо учитывать, что из-за особенностей распределения памяти объекты и ресурсы не могут переноситься между родительским процессом и песочницей. Массивы полностью копируются между интерпретаторами и все ссылки внутри массивов удаляются. Это также означает, что ссылки между интерпретаторами невозможны.

Пример #2 Работа с переменными в песочнице

<?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)

Вызов функций PHP

Любая функция, заданная в песочнице, может быть вызвана через метод объекта Runkit_Sandbox. Также доступны несколько псевдо-функций: eval(), include, include_once, require, require_once, echo, print, die() и exit().

Пример #3 Использование функций песочницы

<?php
$sandbox = new Runkit_Sandbox();

echo $sandbox->str_replace('a','f','abc');
?>

Результат выполнения данного примера:

fbc

Когда функция песочницы вызывается с параметрами, используются значения этих параметров из родительского скрипта. Если необходимо вызвать функцию со значениями из окружения песочницы, следует передавать их как свойства объекта Runkit_Sandbox. Этот механизм проиллюстрирован на следующем примере.

Пример #4 Передача аргументов функциям в песочнице

<?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

Изменение параметров песочницы

По состоянию на версию runkit 0.5, большинство параметров песочницы могут быть изменены "на лету" с помощью синтаксиса интерфейса ArrayAccess. Некоторые параметры, например, active, доступны только для чтения. Остальные, например, output_handler, могут быть получены и записаны как обычный элемент массива. В будущем могут появиться параметры, доступные только для записи. На текущий момент таких не существует.

Настройки песочницы. Индикаторы статуса
Настройка | Тип | Назначение | По умолчанию
active | Boolean (только чтение) | TRUE если песочница функционирует, FALSE если процесс завершен после вызова die() или exit(), или в результате ошибки при выполнении. | TRUE (изначально)
output_handler | Callback | Если указана соответствующая callback-функция, весь вывод песочницы перенаправляется в указанную функцию. Обработчики вывода песочницы работают аналогично системным обработчикам вывода. | None
parent_access | Boolean | Параметр управляет доступом к Runkit_Sandbox_Parent из песочницы. Параметр должен быть включен для работы с функционалом, предоставляемым Runkit_Sandbox_Parent. | FALSE
parent_read | Boolean | Разрешает чтение переменных родительского окружения | FALSE
parent_write | Boolean | Разрешает запись переменных родительского окружения | FALSE
parent_eval | Boolean | Разрешает выполнение кода в родительском окружении DANGEROUS | FALSE
parent_include | Boolean | Разрешает подключать php файлы в родительском окружении DANGEROUS | FALSE
parent_echo | Boolean | Разрешает выводить данные в родительском окружении, в обход output_handler. | FALSE
parent_call | Boolean | Разрешает вызов функций в родительском окружении | FALSE
parent_die | Boolean | Разрешает завершать родительский скрипт (а значит и себя тоже) | FALSE
parent_scope | Integer | Настройка области видимости песочницы для внешнего окружения: 0 == Глобальная область видимости, 1 == область вызова, 2 == область до области вызова, 3 == область до этой области, и т.д. | 0 (Global)
parent_scope | String | В случае, когда параметр parent_scope задан строковым значением, он указывает на массив в глобальной области видимости. Если массива не существует - будет создан пустой массив с указанным именем. Если существует переменная с заданным именем, не являющаяся массивом - будет создан массив, содержащий ссылку на существующую переменную. |


Класс анти-песочницы для Runkit

  • « Runkit_Sandbox
  • runkit_class_adopt »
  • PHP Manual
  • runkit
  • Класс анти-песочницы для Runkit

Runkit_Sandbox_Parent

(PECL runkit >= 0.7.0)

Runkit_Sandbox_Parent — Класс анти-песочницы для Runkit

Описание

Runkit_Sandbox_Parent::__construct ( void ) : void

Экземпляр Runkit_Sandbox_Parent, созданный внутри окружения Runkit_Sandbox предоставляет набор контролируемых средств для доступа к внешнему окружению из песочницы.

Замечание: Поддержка песочницы (необходима для runkit_lint(), runkit_lint_file(), и класса Runkit_Sandbox) доступна только начиная с версии PHP 5.1.0 или в специально пропатченных версиях PHP 5.0, а также требует потокобезопасной (thread safe) версии PHP. Для более подробной информации смотрите файл README, поставляемый с пакетом runkit.

Для использования Runkit_Sandbox_Parent необходимо включить опцию parent_access у используемого экземпляра песочницы.

Пример #1 Задействует возможность использовать Runkit_Sandbox_Parent в песочнице

<?php
$sandbox = new Runkit_Sandbox();
$sandbox['parent_access'] = true;
?>

Доступ к переменным родительского окружения

Доступ к переменным родительского окружения может быть получен через свойства экземпляра Runkit_Sandbox_Parent по аналогии с Runkit_Sandbox. Доступ на чтение включается с помощью опции parent_read песочницы, на запись с помощью parent_write. Данные опции указываются в дополнении к parent_access.

В отличие от доступа к переменным Runkit_Sandbox, область видимости не ограничена глобальными переменными. Задать необходимую область видимость из песочницы можно параметром parent_scope. Значение 0 (по умолчанию) означает доступ к глобальной области видимости. 1 указывает на область вызова песочницы. Последующие значения ведут на следующие уровни области видимости.

Пример #2 Доступ к переменным родительского окружения

<?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"

Вызов функций родительского окружения

По аналогии с доступом к песочнице, из песочницы можно получить доступ к функциям в родительском окружении. Включение parent_call позволит из песочницы получить доступ к родительским функциям. Следующими функции и языковыми конструкциями можно управлять с помощью отдельных настроек: print и echo задействуются с помощью parent_echo; die() и exit() включаются через parent_die; eval() разрешается через parent_eval. Функции include, include_once, require, и require_once можно подключить, используя параметр parent_include.


Конвертирует базовый класс в наследованный ("усыновляет"). Дополняет методы наследованными при необходимости.

  • « Runkit_Sandbox_Parent
  • runkit_class_emancipate »
  • PHP Manual
  • runkit
  • Конвертирует базовый класс в наследованный ("усыновляет"). Дополняет методы наследованными при необходимости.

runkit_class_adopt

(PECL runkit >= 0.7.0)

runkit_class_adopt — Конвертирует базовый класс в наследованный ("усыновляет"). Дополняет методы наследованными при необходимости.

Описание

runkit_class_adopt ( string $classname , string $parentname ) : bool

Список параметров

classname

"Усыновляемый" класс

parentname

Родительский класс

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования runkit_class_adopt()

<?php
class myParent {
  function parentFunc() {
    echo "Вывод родительской функции\n";
  }
}

class myChild {
}

runkit_class_adopt('myChild','myParent');
myChild::parentFunc();
?>

Результат выполнения данного примера:

Вывод родительской функции

Смотрите также

  • runkit_class_emancipate() - Конвертирует наследующий класс в базовый, удаляет из него наследуемые методы.


Конвертирует наследующий класс в базовый, удаляет из него наследуемые методы.

  • « runkit_class_adopt
  • runkit_constant_add »
  • PHP Manual
  • runkit
  • Конвертирует наследующий класс в базовый, удаляет из него наследуемые методы.

runkit_class_emancipate

(PECL runkit >= 0.7.0)

runkit_class_emancipate — Конвертирует наследующий класс в базовый, удаляет из него наследуемые методы.

Описание

runkit_class_emancipate ( string $classname ) : bool

Список параметров

classname

Имя конвертируемого класса

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования runkit_class_emancipate()

<?php
class myParent {
  function parentFunc () {
    echo "Вывод родительской функции\n";
  }
}
class myChild extends myParent {
}

myChild::parentFunc();
runkit_class_emancipate('myChild');
myChild::parentFunc();
?>

Результат выполнения данного примера:

Вывод родительской функции
Fatal error: Call to undefined function:  parentFunc() in example.php on line 12

Смотрите также

  • runkit_class_adopt() - Конвертирует базовый класс в наследованный ("усыновляет"). Дополняет методы наследованными при необходимости.


Объявляет константу. Схожа с функцией define(), но позволяет создавать локальные константы внутри классов.

  • « runkit_class_emancipate
  • runkit_constant_redefine »
  • PHP Manual
  • runkit
  • Объявляет константу. Схожа с функцией define(), но позволяет создавать локальные константы внутри классов.

runkit_constant_add

(PECL runkit >= 0.7.0)

runkit_constant_add — Объявляет константу. Схожа с функцией define(), но позволяет создавать локальные константы внутри классов.

Описание

runkit_constant_add ( string $constname , mixed $value ) : bool

Список параметров

constname

Имя объявляемой константы. Строка для объявления глобальной константы или выражение classname::constname для добавления локальной константы в классе.

value

NULL, Bool, Long, Double, String, или тип Resource для сохранения в новой константе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • define() - Определяет именованную константу
  • runkit_constant_redefine() - Переназначить уже определенную константу.
  • runkit_constant_remove() - Удаляет уже определенную константу.


Переназначить уже определенную константу.

  • « runkit_constant_add
  • runkit_constant_remove »
  • PHP Manual
  • runkit
  • Переназначить уже определенную константу.

runkit_constant_redefine

(PECL runkit >= 0.7.0)

runkit_constant_redefine — Переназначить уже определенную константу.

Описание

runkit_constant_redefine ( string $constname , mixed $newvalue ) : bool

Список параметров

constname

Имя переназначаемой константы. Имя глобальной константы или выражение classname::constname для переназначения локальной константы в классе.

newvalue

Новое значение константы

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • runkit_constant_add() - Объявляет константу. Схожа с функцией define(), но позволяет создавать локальные константы внутри классов.
  • runkit_constant_remove() - Удаляет уже определенную константу.


Удаляет уже определенную константу.

  • « runkit_constant_redefine
  • runkit_function_add »
  • PHP Manual
  • runkit
  • Удаляет уже определенную константу.

runkit_constant_remove

(PECL runkit >= 0.7.0)

runkit_constant_remove — Удаляет уже определенную константу.

Описание

runkit_constant_remove ( string $constname ) : bool

Список параметров

constname

Имя удаляемой константы. Имя глобальной константы или выражение classname::constname для удаления локальной константы из класса.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • define() - Определяет именованную константу
  • runkit_constant_add() - Объявляет константу. Схожа с функцией define(), но позволяет создавать локальные константы внутри классов.
  • runkit_constant_redefine() - Переназначить уже определенную константу.


Добавляет новую функцию аналогично create_function

  • « runkit_constant_remove
  • runkit_function_copy »
  • PHP Manual
  • runkit
  • Добавляет новую функцию аналогично create_function

runkit_function_add

(PECL runkit >= 0.7.0)

runkit_function_add — Добавляет новую функцию аналогично create_function()

Описание

runkit_function_add ( string $funcname , string $arglist , string $code [, bool $return_by_reference = NULL [, string $doc_comment = NULL ]] ) : bool
runkit_function_add ( string $funcname , Closure $closure [, string $doc_comment = NULL ] ) : bool

Список параметров

funcname

Имя создаваемой функции

arglist

Список аргументов функции, через запятую

code

Код создаваемой функции

closure

Функция определяющая замыкание (closure).

return_by_reference

Должна ли функция возвращать результат по ссылке.

doc_comment

Документирующий комментарий к функции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
runkit 1.0.4 | Добавлен альтернативный синтаксис с использованием замыканий (closure).
runkit 1.0.4 | Были добавлены необязательные параметры return_by_reference и doc_comment.

Примеры

Пример #1 Пример использования runkit_function_add()

<?php
runkit_function_add('testme','$a,$b','echo "Значение a = $a\n"; echo "Значение b = $b\n";');
testme(1,2);
?>

Результат выполнения данного примера:

Значение a = 1
Значение b = 2

Смотрите также

  • create_function() - Создаёт анонимную (лямбда) функцию
  • runkit_function_redefine() - Заменяет определение функции новой реализацией.
  • runkit_function_copy() - Копирует функцию с новым именем
  • runkit_function_rename() - Переименовывает функцию
  • runkit_function_remove() - Удаляет определенную функцию
  • runkit_method_add() - Динамически добавляет новый метод в класс


Копирует функцию с новым именем

  • « runkit_function_add
  • runkit_function_redefine »
  • PHP Manual
  • runkit
  • Копирует функцию с новым именем

runkit_function_copy

(PECL runkit >= 0.7.0)

runkit_function_copy — Копирует функцию с новым именем

Описание

runkit_function_copy ( string $funcname , string $targetname ) : bool

Список параметров

funcname

Имя существующей функции

targetname

Имя новой функции в которую необходимо копировать существующую

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования runkit_function_copy()

<?php
function original() {
  echo "В функции\n";
}
runkit_function_copy('original','duplicate');
original();
duplicate();
?>

Результат выполнения данного примера:

В функции
В функции

Смотрите также

  • runkit_function_add() - Добавляет новую функцию аналогично create_function
  • runkit_function_redefine() - Заменяет определение функции новой реализацией.
  • runkit_function_rename() - Переименовывает функцию
  • runkit_function_remove() - Удаляет определенную функцию


Заменяет определение функции новой реализацией.

  • « runkit_function_copy
  • runkit_function_remove »
  • PHP Manual
  • runkit
  • Заменяет определение функции новой реализацией.

runkit_function_redefine

(PECL runkit >= 0.7.0)

runkit_function_redefine — Заменяет определение функции новой реализацией.

Описание

runkit_function_redefine ( string $funcname , string $arglist , string $code [, bool $return_by_reference = NULL [, string $doc_comment = NULL ]] ) : bool
runkit_function_redefine ( string $funcname , Closure $closure [, string $doc_comment = NULL ] ) : bool

Замечание: По умолчанию, только пользовательские функции могут быть удалены, переименованы или изменены. Для перекрытия внутренних функций, необходимо включить в php.ini опцию runkit.internal_override.

Список параметров

funcname

Имя заменяемой функции

arglist

Новый список аргументов, принимаемый функцией

code

Код новой функции

closure

Функция определяющая замыкание (closure).

return_by_reference

Должна ли функция возвращать результат по ссылке.

doc_comment

Документирующий комментарий к функции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
runkit 1.0.4 | Добавлен альтернативный синтаксис с использованием замыканий (closure).
runkit 1.0.4 | Были добавлены необязательные параметры return_by_reference и doc_comment.

Примеры

Пример #1 Пример runkit_function_redefine()

<?php
function testme() {
  echo "Старый код Testme\n";
}
testme();
runkit_function_redefine('testme','','echo "Новый код Testme\n";');
testme();
?>

Результат выполнения данного примера:

Старый код Testme
Новый код Testme

Смотрите также

  • runkit_function_add() - Добавляет новую функцию аналогично create_function
  • runkit_function_copy() - Копирует функцию с новым именем
  • runkit_function_rename() - Переименовывает функцию
  • runkit_function_remove() - Удаляет определенную функцию
  • runkit_method_redefine() - Изменяет код выбранного метода


Удаляет определенную функцию

  • « runkit_function_redefine
  • runkit_function_rename »
  • PHP Manual
  • runkit
  • Удаляет определенную функцию

runkit_function_remove

(PECL runkit >= 0.7.0)

runkit_function_remove — Удаляет определенную функцию

Описание

runkit_function_remove ( string $funcname ) : bool

Замечание: По умолчанию, только пользовательские функции могут быть удалены, переименованы или изменены. Для перекрытия внутренних функций, необходимо включить в php.ini опцию runkit.internal_override.

Список параметров

funcname

Имя удаляемой функции

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • runkit_function_add() - Добавляет новую функцию аналогично create_function
  • runkit_function_copy() - Копирует функцию с новым именем
  • runkit_function_redefine() - Заменяет определение функции новой реализацией.
  • runkit_function_rename() - Переименовывает функцию


Переименовывает функцию

  • « runkit_function_remove
  • runkit_import »
  • PHP Manual
  • runkit
  • Переименовывает функцию

runkit_function_rename

(PECL runkit >= 0.7.0)

runkit_function_rename — Переименовывает функцию

Описание

runkit_function_rename ( string $funcname , string $newname ) : bool

Замечание: По умолчанию, только пользовательские функции могут быть удалены, переименованы или изменены. Для перекрытия внутренних функций, необходимо включить в php.ini опцию runkit.internal_override.

Список параметров

funcname

Имя переименовываемой функции

newname

Новое имя функции

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • runkit_function_add() - Добавляет новую функцию аналогично create_function
  • runkit_function_copy() - Копирует функцию с новым именем
  • runkit_function_redefine() - Заменяет определение функции новой реализацией.
  • runkit_function_remove() - Удаляет определенную функцию


Обрабатывает PHP файл, импортируя функции и классы, перезаписывая при необходимости.

  • « runkit_function_rename
  • runkit_lint_file »
  • PHP Manual
  • runkit
  • Обрабатывает PHP файл, импортируя функции и классы, перезаписывая при необходимости.

runkit_import

(PECL runkit >= 0.7.0)

runkit_import — Обрабатывает PHP файл, импортируя функции и классы, перезаписывая при необходимости.

Описание

runkit_import ( string $filename [, int $flags = RUNKIT_IMPORT_CLASS_METHODS ] ) : bool

Функция похожа на include, за исключением того, что весь код вне функций и объявлений классов игнорируется. В зависимости от значения параметра flags существующие функции и классы могут быть автоматически заменены новыми реализациями.

Список параметров

filename

Имя файла, из которого будут импортированы классы и функции

flags

Результат побитового ИЛИ над константами из семейства RUNKIT_IMPORT_*.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример для runkit_import()

<?php
// импортировать классы целиком
runkit_import('myfile.inc', RUNKIT_IMPORT_CLASSES);

/* импортировать классы, но не импортировать их статические свойства
   (константа RUNKIT_IMPORT_CLASS_STATIC_PROPS доступна начиная с версии 1.0.1) */
runkit_import('myfile.inc', RUNKIT_IMPORT_CLASSES & ~RUNKIT_IMPORT_CLASS_STATIC_PROPS);

/* импортировать только статические свойства классов
   (константа RUNKIT_IMPORT_CLASS_STATIC_PROPS доступна начиная с версии 1.0.1) */
runkit_import('myfile.inc', RUNKIT_IMPORT_CLASS_STATIC_PROPS);
?>


Проверяет PHP-синтаксис выбранного файла

  • « runkit_import
  • runkit_lint »
  • PHP Manual
  • runkit
  • Проверяет PHP-синтаксис выбранного файла

runkit_lint_file

(PECL runkit >= 0.7.0)

runkit_lint_file — Проверяет PHP-синтаксис выбранного файла

Описание

runkit_lint_file ( string $filename ) : bool

Функция runkit_lint_file() производит проверку синтаксиса выбранного файла. Действие функции схоже с вызовом команды php -l в консоли.

Замечание: Поддержка песочницы (необходима для runkit_lint(), runkit_lint_file(), и класса Runkit_Sandbox) доступна только начиная с версии PHP 5.1.0 или в специально пропатченных версиях PHP 5.0, а также требует потокобезопасной (thread safe) версии PHP. Для более подробной информации смотрите файл README, поставляемый с пакетом runkit.

Список параметров

filename

PHP-файл, в котором проверять синтаксис

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • runkit_lint() - Проверяет PHP-синтаксис выбранного кода


Проверяет PHP-синтаксис выбранного кода

  • « runkit_lint_file
  • runkit_method_add »
  • PHP Manual
  • runkit
  • Проверяет PHP-синтаксис выбранного кода

runkit_lint

(PECL runkit >= 0.7.0)

runkit_lint — Проверяет PHP-синтаксис выбранного кода

Описание

runkit_lint ( string $code ) : bool

Функция runkit_lint() производит проверку синтаксиса выбранного кода на наличие ошибок. Функция похожа на вызов интерпретатора php -l из командной строки, за исключением того, что runkit_lint() вместо файла проверяет непосредственно код.

Замечание: Поддержка песочницы (необходима для runkit_lint(), runkit_lint_file(), и класса Runkit_Sandbox) доступна только начиная с версии PHP 5.1.0 или в специально пропатченных версиях PHP 5.0, а также требует потокобезопасной (thread safe) версии PHP. Для более подробной информации смотрите файл README, поставляемый с пакетом runkit.

Список параметров

code

PHP код для проверки синтаксиса

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • runkit_lint_file() - Проверяет PHP-синтаксис выбранного файла


Динамически добавляет новый метод в класс

  • « runkit_lint
  • runkit_method_copy »
  • PHP Manual
  • runkit
  • Динамически добавляет новый метод в класс

runkit_method_add

(PECL runkit >= 0.7.0)

runkit_method_add — Динамически добавляет новый метод в класс

Описание

runkit_method_add ( string $classname , string $methodname , string $args , string $code [, int $flags = RUNKIT_ACC_PUBLIC [, string $doc_comment = NULL ]] ) : bool
runkit_method_add ( string $classname , string $methodname , Closure $closure [, int $flags = RUNKIT_ACC_PUBLIC [, string $doc_comment = NULL ]] ) : bool

Список параметров

classname

Класс, в который будет добавлен метод

methodname

Имя добавляемого метода

args

Список параметров, принимаемых методом, через запятую

code

Код нового метода, который будет выполняться при вызове methodname

closure

Функция определяющая замыкание (closure).

flags

Создаваемый метод может быть RUNKIT_ACC_PUBLIC, RUNKIT_ACC_PROTECTED или RUNKIT_ACC_PRIVATE опционально в комбинации через побитовое ИЛИ с RUNKIT_ACC_STATIC (начиная с версии 1.0.1)

doc_comment

Документирующий комментарий к функции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
runkit 1.0.4 | Добавлен альтернативный синтаксис с использованием замыканий (closure).
runkit 1.0.4 | Был добавлен необязательный параметр doc_comment.

Примеры

Пример #1 Пример runkit_method_add()

<?php
class Example {
    function foo() {
        echo "foo!\n";
    }
}

// создаем экземпляр Example
$e = new Example();

// добавляем новый публичный метод
runkit_method_add(
    'Example',
    'add',
    '$num1, $num2',
    'return $num1 + $num2;',
    RUNKIT_ACC_PUBLIC
);

// вычисляем 12 + 4
echo $e->add(12, 4);
?>

Результат выполнения данного примера:

16

Смотрите также

  • runkit_method_copy() - Копирование метода из одного класса в другой
  • runkit_method_redefine() - Изменяет код выбранного метода
  • runkit_method_remove() - Динамически удаляет выбранный метод
  • runkit_method_rename() - Переименовывает выбранный метод
  • runkit_function_add() - Добавляет новую функцию аналогично create_function


Копирование метода из одного класса в другой

  • « runkit_method_add
  • runkit_method_redefine »
  • PHP Manual
  • runkit
  • Копирование метода из одного класса в другой

runkit_method_copy

(PECL runkit >= 0.7.0)

runkit_method_copy — Копирование метода из одного класса в другой

Описание

runkit_method_copy ( string $dClass , string $dMethod , string $sClass [, string $sMethod ] ) : bool

Список параметров

dClass

Класс назначения: имя класса, в который копируется метод

dMethod

Метод назначение: имя метода, в который копируется метод

sClass

Исходный класс: имя класса, из которого копируется метод

sMethod

Исходный метод: имя метода, который копируется. Если этот параметр не указан, используется значение dMethod.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример runkit_method_copy()

<?php
class Foo {
    function example() {
        return "foo!\n";
    }
}

class Bar {
    // изначально методы отсутствуют
}

// копируем метод example() из класса Foo в класс Bar как baz()
runkit_method_copy('Bar', 'baz', 'Foo', 'example');

// вывод скопированной функции
echo Bar::baz();
?>

Результат выполнения данного примера:

foo!

Смотрите также

  • runkit_method_add() - Динамически добавляет новый метод в класс
  • runkit_method_redefine() - Изменяет код выбранного метода
  • runkit_method_remove() - Динамически удаляет выбранный метод
  • runkit_method_rename() - Переименовывает выбранный метод
  • runkit_function_copy() - Копирует функцию с новым именем


Изменяет код выбранного метода

  • « runkit_method_copy
  • runkit_method_remove »
  • PHP Manual
  • runkit
  • Изменяет код выбранного метода

runkit_method_redefine

(PECL runkit >= 0.7.0)

runkit_method_redefine — Изменяет код выбранного метода

Описание

runkit_method_redefine ( string $classname , string $methodname , string $args , string $code [, int $flags = RUNKIT_ACC_PUBLIC [, string $doc_comment = NULL ]] ) : bool
runkit_method_redefine ( string $classname , string $methodname , Closure $closure [, int $flags = RUNKIT_ACC_PUBLIC [, string $doc_comment = NULL ]] ) : bool

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Список параметров

classname

Имя класса в котором заменяется метод

methodname

Имя заменяемого метода

args

Список параметров, принимаемых методом через запятую

code

Новый код метода, который выполнится при вызове methodname

closure

Функция, определяющая замыкание (closure).

flags

Переназначаемый метод может быть RUNKIT_ACC_PUBLIC, RUNKIT_ACC_PROTECTED или RUNKIT_ACC_PRIVATE опционально в комбинации через побитовое ИЛИ с RUNKIT_ACC_STATIC (начиная с версии 1.0.1)

doc_comment

Документирующий комментарий к функции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
runkit 1.0.4 | Добавлен альтернативный синтаксис с использованием замыканий (closure).
runkit 1.0.4 | Был добавлен необязательный параметр doc_comment.

Примеры

Пример #1 Пример использования runkit_method_redefine()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// создаем экземпляр Example
$e = new Example();

// вывод Example::foo() (до переназначения)
echo "До: " . $e->foo();

// переназначаем метод 'foo'
runkit_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    RUNKIT_ACC_PUBLIC
);

// вывод Example::foo() (после переназначения)
echo "После: " . $e->foo();
?>

Результат выполнения данного примера:

До: foo!
После: bar!

Смотрите также

  • runkit_method_add() - Динамически добавляет новый метод в класс
  • runkit_method_copy() - Копирование метода из одного класса в другой
  • runkit_method_remove() - Динамически удаляет выбранный метод
  • runkit_method_rename() - Переименовывает выбранный метод
  • runkit_function_redefine() - Заменяет определение функции новой реализацией.


Динамически удаляет выбранный метод

  • « runkit_method_redefine
  • runkit_method_rename »
  • PHP Manual
  • runkit
  • Динамически удаляет выбранный метод

runkit_method_remove

(PECL runkit >= 0.7.0)

runkit_method_remove — Динамически удаляет выбранный метод

Описание

runkit_method_remove ( string $classname , string $methodname ) : bool

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Список параметров

classname

Имя класса, из которого удаляется метод

methodname

Имя удаляемого метода

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример runkit_method_remove()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }

    function bar() {
        return "bar!\n";
    }
}

// Удаление метода 'foo'
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_remove
  • runkit_return_value_used »
  • PHP Manual
  • runkit
  • Переименовывает выбранный метод

runkit_method_rename

(PECL runkit >= 0.7.0)

runkit_method_rename — Переименовывает выбранный метод

Описание

runkit_method_rename ( string $classname , string $methodname , string $newname ) : bool

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Список параметров

classname

Имя класса, в котором переименовывается метод

methodname

Текущее имя переименовываемого метода

newname

Новое имя переименовываемого метода

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример runkit_method_rename()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Переименование метода 'foo' в метод '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_rename
  • runkit_sandbox_output_handler »
  • PHP Manual
  • runkit
  • Определяет, используется ли возвращаемое функцией значение

runkit_return_value_used

(PECL runkit >= 0.8.0)

runkit_return_value_used — Определяет, используется ли возвращаемое функцией значение

Описание

runkit_return_value_used ( void ) : bool

Возвращаемые значения

Возвращается TRUE, если возвращаемое функцией значение используется в текущей области видимости, иначе возвращает FALSE

Примеры

Пример #1 Пример использования runkit_return_value_used()

<?php
function foo() {
  var_dump(runkit_return_value_used());
}

foo();
$f = foo();
?>

Результат выполнения данного примера:

bool(false)
bool(true)


Задает функцию для захвата и/или обработки данных из "песочницы".

  • « runkit_return_value_used
  • runkit_superglobals »
  • PHP Manual
  • runkit
  • Задает функцию для захвата и/или обработки данных из "песочницы".

runkit_sandbox_output_handler

(PECL runkit >= 0.7.0)

runkit_sandbox_output_handler — Задает функцию для захвата и/или обработки данных из "песочницы".

Описание

runkit_sandbox_output_handler ( object $sandbox [, mixed $callback ] ) : mixed

Обычно все результаты работы в песочнице (использование функций echo или print) будут выведены в родительском окружении. Использование runkit_sandbox_output_handler() позволяет перехватить эти данные функцией вне песочницы.

Замечание: Поддержка песочницы (необходима для runkit_lint(), runkit_lint_file(), и класса Runkit_Sandbox) доступна только начиная с версии PHP 5.1.0 или в специально пропатченных версиях PHP 5.0, а также требует потокобезопасной (thread safe) версии PHP. Для более подробной информации смотрите файл README, поставляемый с пакетом runkit.

Замечание: Функция устарела

Начиная с версии runkit 0.5 данная функция является устаревшей и помечена для удаления в версии 1.0. Обработка вывода песочницы может быть задана с помощью опции output_handler, доступной в виде Array Access для экземпляра Runkit_Sandbox. Подробную информацию можно получить на странице описания Runkit_Sandbox

Список параметров

sandbox

Экземпляр Runkit_Sandbox, вывод которого необходимо обрабатывать.

callback

Имя функции для перехвата данных. Функция должна принимать один аргумент. Вывод sandbox будет передан этой функции. Все данные, возвращаемые функцией будут отображены в стандартном порядке. Если этот параметр отсутствует, управление выводом песочницы не будет изменено. Если указанной функции не существует, обработка вывода будет отключена и данные будут выводиться в стандартном режиме.

Возвращаемые значения

Возвращает предыдущее имя функции или FALSE, если она не была задана.

Примеры

Пример #1 Перевод вывода в переменную

<?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("Привет\n");
$php->eval('var_dump("Прощу прощения");');
$php->die("Я потерял себя.");
unset($php);

echo "Песочница завершена\n\n";
echo $sandbox_output;
?>

Результат выполнения данного примера:

Песочница завершена

Привет
string(9) "Прощу прощения"
Я потерял себя.


Возвращает индексный массив зарегистрированных суперглобальных переменных.

  • « runkit_sandbox_output_handler
  • runkit7 »
  • PHP Manual
  • runkit
  • Возвращает индексный массив зарегистрированных суперглобальных переменных.

runkit_superglobals

(PECL runkit >= 0.7.0)

runkit_superglobals — Возвращает индексный массив зарегистрированных суперглобальных переменных.

Описание

runkit_superglobals ( void ) : array

Возвращаемые значения

Возвращает индексный массив зарегистрированных переменных, например: _GET, _POST, _REQUEST, _COOKIE, _SESSION, _SERVER, _ENV, _FILES

Смотрите также

  • Область видимости переменной


runkit7

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • runkit7 Функции
    • runkit7_constant_add — Similar to define(), but allows defining in class definitions as well
    • runkit7_constant_redefine — Description
    • runkit7_constant_remove — Remove/Delete an already defined constant
    • runkit7_function_add — Add a new function, similar to create_function
    • runkit7_function_copy — Copy a function to a new function name
    • runkit7_function_redefine — Replace a function definition with a new implementation
    • runkit7_function_remove — Remove a function definition
    • runkit7_function_rename — Change a function's name
    • runkit7_import — Process a PHP file importing function and class definitions, overwriting where appropriate
    • runkit7_method_add — Dynamically adds a new method to a given class
    • runkit7_method_copy — Copies a method from class to another
    • runkit7_method_redefine — Dynamically changes the code of the given method
    • runkit7_method_remove — Dynamically removes the given method
    • runkit7_method_rename — Dynamically changes the name of the given method
    • runkit7_object_id — Return the integer object handle for given object
    • runkit7_superglobals — Return numerically indexed array of registered superglobals
    • runkit7_zval_inspect — Returns information about the passed in value with data types, reference counts, etc


Введение

The runkit7 extension provides means to modify constants, user-defined functions, and user-defined classes. It also provides for custom superglobal variables.

This package is a fork of the » runkit package providing PHP 7 support.


Требования

Modifying Constants, Functions, Classes, and Methods as well as Custom Superglobals works with all releases of PHP 7. No special requirements are necessary.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/runkit7.

Бинарные файлы Windows (файлы DLL) для этого расширения PECL доступны на сайте PECL.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Currently the same as Runkit Configuration Options


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

RUNKIT7_IMPORT_FUNCTIONS (integer)
runkit7_import() flag indicating that normal functions should be imported from the specified file.
RUNKIT7_IMPORT_CLASS_METHODS (integer)
runkit7_import() flag indicating that class methods should be imported from the specified file.
RUNKIT7_IMPORT_CLASS_CONSTS (integer)
runkit7_import() flag indicating that class constants should be imported from the specified file.
RUNKIT7_IMPORT_CLASS_PROPS (integer)
runkit7_import() flag indicating that class standard properties should be imported from the specified file.
RUNKIT7_IMPORT_CLASS_STATIC_PROPS (integer)
runkit7_import() flag indicating that class static properties should be imported from the specified file. Available since Runkit 1.0.1.
RUNKIT7_IMPORT_CLASSES (integer)
runkit7_import() flag representing a bitwise OR of the RUNKIT7_IMPORT_CLASS_* constants.
RUNKIT7_IMPORT_OVERRIDE (integer)
runkit7_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.
RUNKIT7_ACC_RETURN_REFERENCE (integer)
Include this flag to make the function or method being created or redeclared return a reference.
RUNKIT7_ACC_PUBLIC (integer)
Flag for runkit7_method_add() and runkit7_method_redefine() to make the method public.
RUNKIT7_ACC_PROTECTED (integer)
Flag for runkit7_method_add() and runkit7_method_redefine() to make the method protected.
RUNKIT7_ACC_PRIVATE (integer)
Flag for runkit7_method_add() and runkit7_method_redefine() to make the method private.
RUNKIT7_ACC_STATIC (integer)
Flag for runkit7_method_add() and runkit7_method_redefine() to make the method static.
RUNKIT7_FEATURE_MANIPULATION (integer)
Equal to 1 if runtime manipulation is enabled, and 0 otherwise.
RUNKIT7_FEATURE_SUPERGLOBALS (integer)
Equal to 1 if custom superglobals are enabled, and 0 otherwise.
RUNKIT7_FEATURE_SANDBOX (integer)
Always 0, it's impractical to implement the sandbox feature in php 7.


runkit7 Функции

Содержание

  • runkit7_constant_add — Similar to define(), but allows defining in class definitions as well
  • runkit7_constant_redefine — Description
  • runkit7_constant_remove — Remove/Delete an already defined constant
  • runkit7_function_add — Add a new function, similar to create_function
  • runkit7_function_copy — Copy a function to a new function name
  • runkit7_function_redefine — Replace a function definition with a new implementation
  • runkit7_function_remove — Remove a function definition
  • runkit7_function_rename — Change a function's name
  • runkit7_import — Process a PHP file importing function and class definitions, overwriting where appropriate
  • runkit7_method_add — Dynamically adds a new method to a given class
  • runkit7_method_copy — Copies a method from class to another
  • runkit7_method_redefine — Dynamically changes the code of the given method
  • runkit7_method_remove — Dynamically removes the given method
  • runkit7_method_rename — Dynamically changes the name of the given method
  • runkit7_object_id — Return the integer object handle for given object
  • runkit7_superglobals — Return numerically indexed array of registered superglobals
  • runkit7_zval_inspect — Returns information about the passed in value with data types, reference counts, etc


Similar to define(), but allows defining in class definitions as well

  • « runkit7 Функции
  • runkit7_constant_redefine »
  • PHP Manual
  • runkit7 Функции
  • Similar to define(), but allows defining in class definitions as well

runkit7_constant_add

(PECL runkit7 >= Unknown)

runkit7_constant_add — Similar to define(), but allows defining in class definitions as well

Описание

runkit7_constant_add ( string $constname , mixed $value [, int $newVisibility ] ) : bool

Список параметров

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, Array, or Resource value to store in the new constant.

newVisibility

Visibility of the constant, for class constants. Public by default. One of the RUNKIT7_ACC_* constants.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • define() - Определяет именованную константу
  • runkit7_constant_redefine() - Description
  • runkit7_constant_remove() - Remove/Delete an already defined constant


Description

  • « runkit7_constant_add
  • runkit7_constant_remove »
  • PHP Manual
  • runkit7 Функции
  • Description

runkit7_constant_redefine

(PECL runkit7 >= Unknown)

runkit7_constant_redefine — Description

Описание

runkit7_constant_redefine ( string $constname , mixed $value [, string $newVisibility ] ) : bool

Список параметров

constname

Constant to redefine. Either the name of a global constant, or classname::constname indicating class constant.

value

Value to assign to the constant.

newVisibility

The new visibility of the constant, for class constants. Unchanged by default. One of the RUNKIT7_ACC_* constants.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • runkit7_constant_add() - Similar to define(), but allows defining in class definitions as well
  • runkit7_constant_remove() - Remove/Delete an already defined constant


Remove/Delete an already defined constant

  • « runkit7_constant_redefine
  • runkit7_function_add »
  • PHP Manual
  • runkit7 Функции
  • Remove/Delete an already defined constant

runkit7_constant_remove

(PECL runkit7 >= Unknown)

runkit7_constant_remove — Remove/Delete an already defined constant

Описание

runkit7_constant_remove ( string $constname ) : bool

Список параметров

constname

Name of the constant to remove. Either the name of a global constant, or classname::constname indicating a class constant.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • define() - Определяет именованную константу
  • runkit7_constant_add() - Similar to define(), but allows defining in class definitions as well
  • runkit7_constant_redefine() - Description


Add a new function, similar to create_function

  • « runkit7_constant_remove
  • runkit7_function_copy »
  • PHP Manual
  • runkit7 Функции
  • Add a new function, similar to create_function

runkit7_function_add

(PECL runkit7 >= Unknown)

runkit7_function_add — Add a new function, similar to create_function()

Описание

runkit7_function_add ( string $funcname , string $arglist , string $code [, bool $return_by_reference = NULL [, string $doc_comment = NULL [, string $return_type [, bool $is_strict ]]]] ) : bool
runkit7_function_add ( string $funcname , Closure $closure [, string $doc_comment = NULL [, string $return_type [, bool $is_strict ]]] ) : bool

Список параметров

funcname

Name of the function to be created

arglist

Comma separated argument list

code

Code making up the function

closure

A closure that defines the function.

return_by_reference

Whether the function should return by reference.

doc_comment

The doc comment of the function.

return_type

The return type of the function.

is_strict

Whether the function should behave as if it were declared in a file with strict_types=1

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 A runkit7_function_add() example

<?php
runkit7_function_add('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() - Создаёт анонимную (лямбда) функцию
  • runkit7_function_redefine() - Replace a function definition with a new implementation
  • runkit7_function_copy() - Copy a function to a new function name
  • runkit7_function_rename() - Change a function's name
  • runkit7_function_remove() - Remove a function definition
  • runkit7_method_add() - Dynamically adds a new method to a given class


Copy a function to a new function name

  • « runkit7_function_add
  • runkit7_function_redefine »
  • PHP Manual
  • runkit7 Функции
  • Copy a function to a new function name

runkit7_function_copy

(PECL runkit7 >= Unknown)

runkit7_function_copy — Copy a function to a new function name

Описание

runkit7_function_copy ( string $funcname , string $targetname ) : bool

Список параметров

funcname

Name of the existing function

targetname

Name of the new function to copy the definition to

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 A runkit7_function_copy() example

<?php
function original() {
  echo "In a function\n";
}
runkit7_function_copy('original','duplicate');
original();
duplicate();
?>

Результат выполнения данного примера:

In a function
In a function

Смотрите также

  • runkit7_function_add() - Add a new function, similar to create_function
  • runkit7_function_redefine() - Replace a function definition with a new implementation
  • runkit7_function_rename() - Change a function's name
  • runkit7_function_remove() - Remove a function definition


Replace a function definition with a new implementation

  • « runkit7_function_copy
  • runkit7_function_remove »
  • PHP Manual
  • runkit7 Функции
  • Replace a function definition with a new implementation

runkit7_function_redefine

(PECL runkit7 >= Unknown)

runkit7_function_redefine — Replace a function definition with a new implementation

Описание

runkit7_function_redefine ( string $funcname , string $arglist , string $code [, bool $return_by_reference = NULL [, string $doc_comment = NULL [, string $return_type [, string $is_strict ]]]] ) : bool
runkit7_function_redefine ( string $funcname , Closure $closure [, string $doc_comment = NULL [, string $return_type [, string $is_strict ]]] ) : bool

Замечание: По умолчанию, только пользовательские функции могут быть удалены, переименованы или изменены. Для перекрытия внутренних функций, необходимо включить в php.ini опцию runkit.internal_override.

Список параметров

funcname

Name of function to redefine

arglist

New list of arguments to be accepted by function

code

New code implementation

closure

A closure that defines the function.

return_by_reference

Whether the function should return by reference.

doc_comment

The doc comment of the function.

return_type

The return type of the function.

is_strict

Whether the function behaves as if it was declared in a file with strict_types=1

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 A runkit7_function_redefine() example

<?php
function testme() {
  echo "Original Testme Implementation\n";
}
testme();
runkit7_function_redefine('testme','','echo "New Testme Implementation\n";');
testme();
?>

Результат выполнения данного примера:

Original Testme Implementation
New Testme Implementation

Смотрите также

  • runkit7_function_add() - Add a new function, similar to create_function
  • runkit7_function_copy() - Copy a function to a new function name
  • runkit7_function_rename() - Change a function's name
  • runkit7_function_remove() - Remove a function definition
  • runkit7_method_redefine() - Dynamically changes the code of the given method


Remove a function definition

  • « runkit7_function_redefine
  • runkit7_function_rename »
  • PHP Manual
  • runkit7 Функции
  • Remove a function definition

runkit7_function_remove

(PECL runkit7 >= Unknown)

runkit7_function_remove — Remove a function definition

Описание

runkit7_function_remove ( string $funcname ) : bool

Замечание: По умолчанию, только пользовательские функции могут быть удалены, переименованы или изменены. Для перекрытия внутренних функций, необходимо включить в php.ini опцию runkit.internal_override.

Список параметров

funcname

Name of the function to be deleted

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • runkit7_function_add() - Add a new function, similar to create_function
  • runkit7_function_copy() - Copy a function to a new function name
  • runkit7_function_redefine() - Replace a function definition with a new implementation
  • runkit7_function_rename() - Change a function's name


Change a function's name

  • « runkit7_function_remove
  • runkit7_import »
  • PHP Manual
  • runkit7 Функции
  • Change a function's name

runkit7_function_rename

(PECL runkit7 >= Unknown)

runkit7_function_rename — Change a function's name

Описание

runkit7_function_rename ( string $funcname , string $newname ) : bool

Замечание: По умолчанию, только пользовательские функции могут быть удалены, переименованы или изменены. Для перекрытия внутренних функций, необходимо включить в php.ini опцию runkit.internal_override.

Список параметров

funcname

Current function name

newname

New function name

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • runkit7_function_add() - Add a new function, similar to create_function
  • runkit7_function_copy() - Copy a function to a new function name
  • runkit7_function_redefine() - Replace a function definition with a new implementation
  • runkit7_function_remove() - Remove a function definition


Process a PHP file importing function and class definitions, overwriting where appropriate

  • « runkit7_function_rename
  • runkit7_method_add »
  • PHP Manual
  • runkit7 Функции
  • Process a PHP file importing function and class definitions, overwriting where appropriate

runkit7_import

(PECL runkit7 >= Unknown)

runkit7_import — Process a PHP file importing function and class definitions, overwriting where appropriate

Описание

runkit7_import ( string $filename [, int $flags ] ) : bool

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 may be automatically overwritten by their new definitions.

Список параметров

filename

Filename to import function and class definitions from

flags

Bitwise OR of the RUNKIT7_IMPORT_* family of constants.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Dynamically adds a new method to a given class

  • « runkit7_import
  • runkit7_method_copy »
  • PHP Manual
  • runkit7 Функции
  • Dynamically adds a new method to a given class

runkit7_method_add

(PECL runkit7 >= Unknown)

runkit7_method_add — Dynamically adds a new method to a given class

Описание

runkit7_method_add ( string $classname , string $methodname , string $args , string $code [, int $flags = RUNKIT7_ACC_PUBLIC [, string $doc_comment = NULL [, string $return_type [, bool $is_strict ]]]] ) : bool
runkit7_method_add ( string $classname , string $methodname , Closure $closure [, int $flags = RUNKIT7_ACC_PUBLIC [, string $doc_comment = NULL [, string $return_type [, bool $is_strict ]]]] ) : bool

Список параметров

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

closure

A closure that defines the method.

flags

The type of method to create, can be RUNKIT7_ACC_PUBLIC, RUNKIT7_ACC_PROTECTED or RUNKIT7_ACC_PRIVATE optionally combined via bitwise OR with RUNKIT7_ACC_STATIC

doc_comment

The doc comment of the method.

return_type

The return type of the method.

is_strict

Whether the method behaves as if it were declared in a file with strict_types=1

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 runkit7_method_add() example

<?php
class Example {
    function foo() {
        echo "foo!\n";
    }
}

// create an Example object
$e = new Example();

// Add a new public method
runkit7_method_add(
    'Example',
    'add',
    '$num1, $num2',
    'return $num1 + $num2;',
    RUNKIT7_ACC_PUBLIC
);

// add 12 + 4
echo $e->add(12, 4);
?>

Результат выполнения данного примера:

16

Смотрите также

  • runkit7_method_copy() - Copies a method from class to another
  • runkit7_method_redefine() - Dynamically changes the code of the given method
  • runkit7_method_remove() - Dynamically removes the given method
  • runkit7_method_rename() - Dynamically changes the name of the given method
  • runkit7_function_add() - Add a new function, similar to create_function


Copies a method from class to another

  • « runkit7_method_add
  • runkit7_method_redefine »
  • PHP Manual
  • runkit7 Функции
  • Copies a method from class to another

runkit7_method_copy

(PECL runkit7 >= Unknown)

runkit7_method_copy — Copies a method from class to another

Описание

runkit7_method_copy ( string $dClass , string $dMethod , string $sClass [, string $sMethod ] ) : bool

Список параметров

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.

Возвращаемые значения

Примеры

Пример #1 runkit7_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()
runkit7_method_copy('Bar', 'baz', 'Foo', 'example');

// output copied function
echo Bar::baz();
?>

Результат выполнения данного примера:

foo!

Смотрите также

  • runkit7_method_add() - Dynamically adds a new method to a given class
  • runkit7_method_redefine() - Dynamically changes the code of the given method
  • runkit7_method_remove() - Dynamically removes the given method
  • runkit7_method_rename() - Dynamically changes the name of the given method
  • runkit7_function_copy() - Copy a function to a new function name


Dynamically changes the code of the given method

  • « runkit7_method_copy
  • runkit7_method_remove »
  • PHP Manual
  • runkit7 Функции
  • Dynamically changes the code of the given method

runkit7_method_redefine

(PECL runkit7 >= Unknown)

runkit7_method_redefine — Dynamically changes the code of the given method

Описание

runkit7_method_redefine ( string $classname , string $methodname , string $args , string $code [, int $flags = RUNKIT7_ACC_PUBLIC [, string $doc_comment = NULL [, string $return_type [, bool $is_strict ]]]] ) : bool
runkit7_method_redefine ( string $classname , string $methodname , Closure $closure [, int $flags = RUNKIT7_ACC_PUBLIC [, string $doc_comment = NULL [, string $return_type [, bool $is_strict ]]]] ) : bool

Список параметров

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

closure

A closure that defines the method.

flags

The redefined method can be RUNKIT7_ACC_PUBLIC, RUNKIT7_ACC_PROTECTED or RUNKIT7_ACC_PRIVATE optionally combined via bitwise OR with RUNKIT7_ACC_STATIC

doc_comment

The doc comment of the method.

return_type

The return type of the method.

is_strict

Whether the method behaves as if it was declared in a file with strict_types=1.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 runkit7_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
runkit7_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    RUNKIT7_ACC_PUBLIC
);

// output Example::foo() (after redefine)
echo "After: " . $e->foo();
?>

Результат выполнения данного примера:

Before: foo!
After: bar!

Смотрите также

  • runkit7_method_add() - Dynamically adds a new method to a given class
  • runkit7_method_copy() - Copies a method from class to another
  • runkit7_method_remove() - Dynamically removes the given method
  • runkit7_method_rename() - Dynamically changes the name of the given method
  • runkit7_function_redefine() - Replace a function definition with a new implementation


Dynamically removes the given method

  • « runkit7_method_redefine
  • runkit7_method_rename »
  • PHP Manual
  • runkit7 Функции
  • Dynamically removes the given method

runkit7_method_remove

(PECL runkit7 >= Unknown)

runkit7_method_remove — Dynamically removes the given method

Описание

runkit7_method_remove ( string $classname , string $methodname ) : bool

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Список параметров

classname

The class in which to remove the method

methodname

The name of the method to remove

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 runkit7_method_remove() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }

    function bar() {
        return "bar!\n";
    }
}

// Remove the 'foo' method
runkit7_method_remove(
    'Example',
    'foo'
);

echo implode(' ', get_class_methods('Example'));

?>

Результат выполнения данного примера:

bar

Смотрите также

  • runkit7_method_add() - Dynamically adds a new method to a given class
  • runkit7_method_copy() - Copies a method from class to another
  • runkit7_method_redefine() - Dynamically changes the code of the given method
  • runkit7_method_rename() - Dynamically changes the name of the given method
  • runkit7_function_remove() - Remove a function definition


Dynamically changes the name of the given method

  • « runkit7_method_remove
  • runkit7_object_id »
  • PHP Manual
  • runkit7 Функции
  • Dynamically changes the name of the given method

runkit7_method_rename

(PECL runkit7 >= Unknown)

runkit7_method_rename — Dynamically changes the name of the given method

Описание

runkit7_method_rename ( string $classname , string $methodname , string $newname ) : bool

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Список параметров

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 runkit7_method_rename() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Rename the 'foo' method to 'bar'
runkit7_method_rename(
    'Example',
    'foo',
    'bar'
);

// output renamed function
echo Example::bar();
?>

Результат выполнения данного примера:

foo!

Смотрите также

  • runkit7_method_add() - Dynamically adds a new method to a given class
  • runkit7_method_copy() - Copies a method from class to another
  • runkit7_method_redefine() - Dynamically changes the code of the given method
  • runkit7_method_remove() - Dynamically removes the given method
  • runkit7_function_rename() - Change a function's name


Return the integer object handle for given object

  • « runkit7_method_rename
  • runkit7_superglobals »
  • PHP Manual
  • runkit7 Функции
  • Return the integer object handle for given object

runkit7_object_id

(PECL runkit7 >= Unknown)

runkit7_object_id — Return the integer object handle for given object

Описание

runkit7_object_id ( object $obj ) : int

This function returns a unique identifier for the object. The object id is unique for the lifetime of the object. Once the object is destroyed, its id may be reused for other objects. This behavior is similar to spl_object_hash().

Список параметров

obj

Any object.

Возвращаемые значения

An integer identifier that is unique for each currently existing object and is always the same for each object.

Примечания

Замечание:

When an object is destroyed, its id may be reused for other objects.


Return numerically indexed array of registered superglobals

  • « runkit7_object_id
  • runkit7_zval_inspect »
  • PHP Manual
  • runkit7 Функции
  • Return numerically indexed array of registered superglobals

runkit7_superglobals

(PECL runkit7 >= Unknown)

runkit7_superglobals — Return numerically indexed array of registered superglobals

Описание

runkit7_superglobals ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a numerically indexed array of the currently registered superglobals. i.e. _GET, _POST, _REQUEST, _COOKIE, _SESSION, _SERVER, _ENV, _FILES

Смотрите также

  • Variable Scope


Returns information about the passed in value with data types, reference counts, etc

  • « runkit7_superglobals
  • scream »
  • PHP Manual
  • runkit7 Функции
  • Returns information about the passed in value with data types, reference counts, etc

runkit7_zval_inspect

(PECL runkit7 >= Unknown)

runkit7_zval_inspect — Returns information about the passed in value with data types, reference counts, etc

Описание

runkit7_zval_inspect ( string $value ) : array

Список параметров

value

The value to return the representation of


Прерывает режим молчания

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Примеры
    • Пример, демонстрирующий эффект "крика" (scream)


Введение

Модуль "scream" дает возможность запретить режим молчания операторов контроля ошибок, так что все ошибки будут выведены. Эта возможность контролируется ini-настройками.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Версия PHP 5.2.0 и выше.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/scream


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки модуля scream
Имя | По умолчанию | Место изменения | Список изменений
scream.enabled | Off | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

scream.enabled int

Запретить или разрешить "крик".


  • « Настройка во время выполнения
  • Примеры »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


  • « Типы ресурсов
  • Пример, демонстрирующий эффект "крика" (scream) »
  • PHP Manual
  • scream
  • Примеры

Примеры

Содержание

  • Пример, демонстрирующий эффект "крика" (scream)


Пример, демонстрирующий эффект "крика" (scream)

Пример демонстрирует, как "крик" воздействует на поведение обработчиков ошибок PHP.

Пример #1 Разрешение и запрет "крика" во время исполнения

<?php
// Убедимся, что все ошибки показываются
ini_set('display_errors', true);
error_reporting(E_ALL);

// Запрещаем крик и провоцируем ошибку.
ini_set('scream.enabled', false);
echo "Открытие http://example.com/not-existing-file\n";
@fopen('http://example.com/not-existing-file', 'r');

// Таперь разрешаем крик и пробуем снова
ini_set('scream.enabled', true);
echo "Открытие http://example.com/not-existing-file\n";
@fopen('http://example.com/not-existing-file', 'r');
?>

Результатом выполнения данного примера будет что-то подобное:

Открытие http://example.com/not-existing-file
Открытие http://example.com/not-existing-file

Warning: fopen(http://example.com/not-existing-file): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in example.php on line 14

Замечание: Обычно нужно задать настройку в файле конфигурации php.ini , вместо того, чтобы делать это в коде.


User Operations для Zend

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Uopz
    • uopz_add_function — Добавляет несуществующую функцию или метод
    • uopz_allow_exit — Позволяет управлять отключенным опкодом exit
    • uopz_backup — Резервирует функцию
    • uopz_compose — Составить класс
    • uopz_copy — Скопировать функцию
    • uopz_del_function — Удаляет ранее добавленную функцию или метод
    • uopz_delete — Удалить функцию
    • uopz_extend — Расширить класс во время выполнения
    • uopz_flags — Получить или установить флаги для функции или класса
    • uopz_function — Создает функцию во время выполнения
    • uopz_get_exit_status — Получить последний установленный статус выхода
    • uopz_get_hook — Получает ранее установленный обработчик на функцию или метод
    • uopz_get_mock — Получить текущий имитатор (mock) для класса
    • uopz_get_property — Получает значение класса или свойство экземпляра
    • uopz_get_return — Получает предыдущее установленное возвращаемое значение для функции
    • uopz_get_static — Возвращает статические переменные из области видимости функции или метода
    • uopz_implement — Реализует интерфейс во время выполнения
    • uopz_overload — Перегрузить опкод VM
    • uopz_redefine — Переопределить константу
    • uopz_rename — Переименовать функцию во время выполнения
    • uopz_restore — Восстановить ранее зарезервированную функцию
    • uopz_set_hook — Устанавливает обработчик для выполнения при вызове функции или метода
    • uopz_set_mock — Использовать имитататор вместо класса для новых объектов
    • uopz_set_property — Устанавливает значение существующего свойства класса или экземпляра
    • uopz_set_return — Предоставить возвращаемое значение для существующей функции
    • uopz_set_static — Устанавливает статические переменные в области видимости функции или метода
    • uopz_undefine — Отменяет определение константы
    • uopz_unset_hook — Удаляет ранее установленную функцию или метод
    • uopz_unset_mock — Удалить ранее установленный имитатор
    • uopz_unset_return — Отменяет ранее установленное возвращаемое значение для функции


Введение

Модуль uopz (User Operations for Zend) предоставляет функциональность Zend Engine, обычно используемую во время компиляции и выполнении, чтобы разрешить модификацию внутренних структур, представляющих PHP-код, и для взаимодействия пользовательского кода с виртуальной машиной.

uopz поддерживает следующие действия:

  • Перегрузка некоторых опкодов, включая ZEND_EXIT и ZEND_NEW
  • Функции и методы резервного копирования и восстановления
  • Переименование функций и методов
  • Копирование функций и методов
  • Удаление функций и методов
  • Переопределение глобальных и классовых констант
  • Удаление глобальных и классовых констант
  • Создание и модификация классов во время выполнения

Замечание:

Все поддерживаемые действия совместимы с opcache


Требования

Для uopz 2 требуется PHP 5.4+. Для uopz 5.0 требуется PHP 7. Начиная с uopz 5.1 требуется PHP 7.1+.


Установка

Релизы uopz распространяются через PECL, а исходный код находится на » github, самый простой путь к установке - через PECL: » https://pecl.php.net/package/uopz.

Пользователи Windows могут загрузить готовый исполняемый релиз с сайта » PECL.

Начиная с 5.0.0, модуль должен загружаться как обычный модуль PHP (extension). Ранее его надо было загружать как zend_extension.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

uopz Опции настройки
Имя | По умолчанию | Место изменения | Список изменений
uopz.disable | "0" | PHP_INI_SYSTEM | Доступно начиная с uopz 5.0.2
uopz.exit | "0" | PHP_INI_SYSTEM | Доступно начиная с uopz 6.0.1
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

uopz.disable bool

Если включено, uopz перестанет влиять на работу PHP.

uopz.exit bool

Позволять ли модулю исполнять опкод exit(выход). Эта настройка может быть переопределена во время исполнения с помощью функции uopz_allow_exit().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Следующие опкоды определяются как константы с помощью uopz до версии 5.0.0:

ZEND_EXIT (integer)
Вызывается с помощью exit() and die(), не принимает аргументов. Возвращает логический TRUE для выхода, FALSE для продолжения
ZEND_NEW (integer)
Вызывается конструкцией объекта, получает класс создаваемого объекта в качестве единственного аргумента
ZEND_THROW (integer)
Вызывается конструкцией throw, получает класс выбрасываемого исключения в качестве единственного аргумента
ZEND_FETCH_CLASS (integer)
Вызывается во время композиции, получает имя получаемого в качестве единственного аргумента
ZEND_ADD_TRAIT (integer)
Вызывается во время композиции, получает класс добавляемого трейта первым аргументом, и имя трейта в качестве второго аргумента
ZEND_ADD_INTERFACE (integer)
Вызывается во время композиции, получает класс добавляемого интерфейса первым аргументом, и имя интерфейса в качестве второго аргумента
ZEND_INSTANCEOF (integer)
Вызывается оператором instanceof, получает проверяемый объект первым аргументом и имя класса, который должен быть в объекте в качестве второго аргумента

Следующие константы управляют поведением виртуальной машины после вызова обработчика пользователя, будьте предельно осторожны! Эти константы удалены с uopz версии 5.0.0.

ZEND_USER_OPCODE_CONTINUE (integer)
Продвинуть 1 опкод и продолжить
ZEND_USER_OPCODE_ENTER (integer)
Ввести новый new op_array без рекурсии
ZEND_USER_OPCODE_LEAVE (integer)
Вернуть вызывающий op_array внутри того же исполнителя
ZEND_USER_OPCODE_DISPATCH (integer)
Отправить в исходный обработчик опкода
ZEND_USER_OPCODE_DISPATCH_TO (integer)
Отправить на конкретный обработчик (посредством бинарного OR с константой опкода ZEND)
ZEND_USER_OPCODE_RETURN (integer)
Выйти из исполнителя (возврат из функции)

Следующие модификаторы регистрируются как константы uopz

ZEND_ACC_PUBLIC (integer)
Отметить функцию как общедоступную, по умолчанию
ZEND_ACC_PROTECTED (integer)
Отметить функцию как защищенную
ZEND_ACC_PRIVATE (integer)
Отметить функцию как закрытую
ZEND_ACC_STATIC (integer)
Отметить функцию как статическую
ZEND_ACC_FINAL (integer)
Отметить функцию как окончательную
ZEND_ACC_ABSTRACT (integer)
Отметить функцию как абстрактную
ZEND_ACC_CLASS (integer)
Фиктивная регистрация для согласованности, запись класса по умолчанию. Удалено в uopz 5.0.0.
ZEND_ACC_INTERFACE (integer)
Отметить класс как интерфейс. Удалено в uopz 5.0.0.
ZEND_ACC_TRAIT (integer)
Отметить класс как трейт. Удалено в uopz 5.0.0.
ZEND_ACC_FETCH (integer)
Используется только для получения флагов. Удалено в uopz 5.0.0.


Функции Uopz

Содержание

  • uopz_add_function — Добавляет несуществующую функцию или метод
  • uopz_allow_exit — Позволяет управлять отключенным опкодом exit
  • uopz_backup — Резервирует функцию
  • uopz_compose — Составить класс
  • uopz_copy — Скопировать функцию
  • uopz_del_function — Удаляет ранее добавленную функцию или метод
  • uopz_delete — Удалить функцию
  • uopz_extend — Расширить класс во время выполнения
  • uopz_flags — Получить или установить флаги для функции или класса
  • uopz_function — Создает функцию во время выполнения
  • uopz_get_exit_status — Получить последний установленный статус выхода
  • uopz_get_hook — Получает ранее установленный обработчик на функцию или метод
  • uopz_get_mock — Получить текущий имитатор (mock) для класса
  • uopz_get_property — Получает значение класса или свойство экземпляра
  • uopz_get_return — Получает предыдущее установленное возвращаемое значение для функции
  • uopz_get_static — Возвращает статические переменные из области видимости функции или метода
  • uopz_implement — Реализует интерфейс во время выполнения
  • uopz_overload — Перегрузить опкод VM
  • uopz_redefine — Переопределить константу
  • uopz_rename — Переименовать функцию во время выполнения
  • uopz_restore — Восстановить ранее зарезервированную функцию
  • uopz_set_hook — Устанавливает обработчик для выполнения при вызове функции или метода
  • uopz_set_mock — Использовать имитататор вместо класса для новых объектов
  • uopz_set_property — Устанавливает значение существующего свойства класса или экземпляра
  • uopz_set_return — Предоставить возвращаемое значение для существующей функции
  • uopz_set_static — Устанавливает статические переменные в области видимости функции или метода
  • uopz_undefine — Отменяет определение константы
  • uopz_unset_hook — Удаляет ранее установленную функцию или метод
  • uopz_unset_mock — Удалить ранее установленный имитатор
  • uopz_unset_return — Отменяет ранее установленное возвращаемое значение для функции


Добавляет несуществующую функцию или метод

  • « Функции Uopz
  • uopz_allow_exit »
  • PHP Manual
  • Функции Uopz
  • Добавляет несуществующую функцию или метод

uopz_add_function

(PECL uopz 5, PECL uopz 6)

uopz_add_function — Добавляет несуществующую функцию или метод

Описание

uopz_add_function ( string $function , Closure $handler [, int &$flags = ZEND_ACC_PUBLIC ] ) : bool
uopz_add_function ( string $class , string $function , Closure $handler [, int &$flags = ZEND_ACC_PUBLIC [, int &$all = TRUE ]] ) : bool

Добавляет несуществующую функцию или метод.

Список параметров

class

Имя класса.

function

Имя функции или метода.

handler

Объект Closure, который определяет новую функцию или метод.

flags

Флаги для установки новой функции или метода.

all

Будут ли затронуты все классы, которые происходят от класса (class).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

uopz_add_function() выбрасывает RuntimeException, если добавляемая функция или метод уже существует.

Примеры

Пример #1 Простое использование uopz_add_function()

<?php
uopz_add_function('foo', function () {echo 'bar';});
foo();
?>

Результат выполнения данного примера:

bar

Смотрите также

  • uopz_del_function() - Удаляет ранее добавленную функцию или метод
  • uopz_set_return() - Предоставить возвращаемое значение для существующей функции


Позволяет управлять отключенным опкодом exit

  • « uopz_add_function
  • uopz_backup »
  • PHP Manual
  • Функции Uopz
  • Позволяет управлять отключенным опкодом exit

uopz_allow_exit

(PECL uopz 5, PECL uopz 6)

uopz_allow_exit — Позволяет управлять отключенным опкодом exit

Описание

uopz_allow_exit ( bool $allow ) : void

По умолчанию uopz отключает опкод exit, поэтому вызовы exit() практически игнорируются. uopz_allow_exit() позволяет контролировать это поведение.

Список параметров

allow

Разрешить выполнение опкодов exit или нет.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования uopz_allow_exit()

<?php
exit(1);
echo 1;
uopz_allow_exit(true);
exit(2);
echo 2;
?>

Результат выполнения данного примера:

1

Примечания

Предостережение

OPcache оптимизирует мертвый код после безусловного завершения.

Смотрите также

  • uopz_get_exit_status() - Получить последний установленный статус выхода


Резервирует функцию

  • « uopz_allow_exit
  • uopz_compose »
  • PHP Manual
  • Функции Uopz
  • Резервирует функцию

uopz_backup

(PECL uopz 1 >= 1.0.3, PECL uopz 2)

uopz_backup — Резервирует функцию

Внимание

Эта функция была УДАЛЕНА в PECL uopz 5.0.0.

Описание

uopz_backup ( string $function ) : void
uopz_backup ( string $class , string $function ) : void

Резервирует функцию во время выполнения, которая будет восстановлена при завершении работы скрипта

Список параметров

class

Имя класса, содержащего функцию для резервирования

function

Имя функции

Возвращаемые значения

Примеры

Пример #1 Пример использования uopz_backup()

<?php
uopz_backup("fgets");
uopz_function("fgets", function(){
    return true;
});
var_dump(fgets());
?>

Результат выполнения данного примера:

bool(true)


Составить класс

  • « uopz_backup
  • uopz_copy »
  • PHP Manual
  • Функции Uopz
  • Составить класс

uopz_compose

(PECL uopz 1, PECL uopz 2)

uopz_compose — Составить класс

Внимание

Эта функция была УДАЛЕНА в PECL uopz 5.0.0.

Описание

uopz_compose ( string $name , array $classes [, array $methods [, array $properties [, int $flags ]]] ) : void

Создает класс заданного имени, который реализует, наследует или использует все предоставленные классы

Список параметров

name

Корректное имя класса

classes

Массив имен классов, интерфейсов и трейтов

methods

Ассоциативный массив методов, где значения либо замыкания, либо представлены структурой [модификаторы => замыкание]

properties

Ассоциативный массив свойств, где ключи - имена, а значения - модификаторы

flags

Тип записи, по умолчанию ZEND_ACC_CLASS

Возвращаемые значения

Примеры

Пример #1 Пример использования uopz_compose()

<?php
class myClass {}
trait myTrait {}
interface myInterface {}

uopz_compose(
    Composed::class, [
        myClass::class,
        myTrait::class,
        myInterface::class
    ], [
    "__construct" => function() {
        /* ... */
    }
]);

var_dump(
 class_uses(Composed::class),
 class_parents(Composed::class),
 class_implements(Composed::class));
?>

Результат выполнения данного примера:

array(1) {
  ["myTrait"]=>
  string(7) "myTrait"
}
array(1) {
  ["myClass"]=>
  string(7) "myClass"
}
array(1) {
  ["myInterface"]=>
  string(11) "myInterface"
}


Скопировать функцию

  • « uopz_compose
  • uopz_del_function »
  • PHP Manual
  • Функции Uopz
  • Скопировать функцию

uopz_copy

(PECL uopz 1 >= 1.0.4, PECL uopz 2)

uopz_copy — Скопировать функцию

Внимание

Эта функция была УДАЛЕНА в PECL uopz 5.0.0.

Описание

uopz_copy ( string $function ) : Closure
uopz_copy ( string $class , string $function ) : Closure

Скопировать функцию по имени

Список параметров

class

Имя класса, содержащего функцию для копирования

function

Имя функции

Возвращаемые значения

Объект Closure для определенной функции

Примеры

Пример #1 Пример использования uopz_copy()

<?php
$strtotime = uopz_copy('strtotime');

uopz_function("strtotime", function($arg1, $arg2) use($strtotime) {
    /* зесь можно вызвать оригинальную функцию strtotime */
    var_dump($arg1);
});

var_dump(strtotime('dummy'));
?>

Результат выполнения данного примера:

string(5) "dummy"


Удаляет ранее добавленную функцию или метод

  • « uopz_copy
  • uopz_delete »
  • PHP Manual
  • Функции Uopz
  • Удаляет ранее добавленную функцию или метод

uopz_del_function

(PECL uopz 5, PECL uopz 6)

uopz_del_function — Удаляет ранее добавленную функцию или метод

Описание

uopz_del_function ( string $function ) : bool
uopz_del_function ( string $class , string $function [, int &$all = TRUE ] ) : bool

Удаляет ранее добавленную функцию или метод.

Список параметров

class

Имя класса.

function

Имя функции или метода.

all

Будут ли затронуты все классы, которые происходят от класса (class).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

uopz_del_function() выбрасывает RuntimeException, если удаляемые функция или метод не были добавлены с помощью uopz_add_function().

Примеры

Пример #1 Простое использование uopz_del_function()

<?php
uopz_add_function('foo', function () {echo 'bar';});
var_dump(function_exists('foo'));
uopz_del_function('foo');
var_dump(function_exists('foo'));
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Смотрите также

  • uopz_add_function() - Добавляет несуществующую функцию или метод
  • uopz_unset_return() - Отменяет ранее установленное возвращаемое значение для функции


Удалить функцию

  • « uopz_del_function
  • uopz_extend »
  • PHP Manual
  • Функции Uopz
  • Удалить функцию

uopz_delete

(PECL uopz 1, PECL uopz 2)

uopz_delete — Удалить функцию

Внимание

Эта функция была УДАЛЕНА в PECL uopz 5.0.0.

Описание

uopz_delete ( string $function ) : void
uopz_delete ( string $class , string $function ) : void

Удаляет функцию или метод

Список параметров

class

function

Возвращаемые значения

Примеры

Пример #1 Пример использования uopz_delete()

<?php
uopz_delete("strlen");

echo strlen("Hello World");
?>

Результатом выполнения данного примера будет что-то подобное:

PHP Fatal error: Call to undefined function strlen() in /path/to/script.php on line 4

Пример #2 Пример использования uopz_delete() с классом

<?php
class My {
    public static function strlen($arg) {
        return strlen($arg);
    }
}

uopz_delete(My::class, "strlen");

echo My::strlen("Hello World");
?>

Результатом выполнения данного примера будет что-то подобное:

PHP Fatal error: Call to undefined method My::strlen() in /path/to/script.php on line 10


Расширить класс во время выполнения

  • « uopz_delete
  • uopz_flags »
  • PHP Manual
  • Функции Uopz
  • Расширить класс во время выполнения

uopz_extend

(PECL uopz 1, PECL uopz 2, PECL uopz 5, PECL uopz 6)

uopz_extend — Расширить класс во время выполнения

Описание

uopz_extend ( string $class , string $parent ) : bool

Расширяет текущий класс class родительским parent

Список параметров

class

Название класса для расширения

parent

Название класса для наследования

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования uopz_extend()

<?php
class A {}
class B {}

uopz_extend(A::class, B::class);

var_dump(class_parents(A::class));
?>

Результат выполнения данного примера:

array(1) {
  ["B"]=>
  string(1) "B"
}


Получить или установить флаги для функции или класса

  • « uopz_extend
  • uopz_function »
  • PHP Manual
  • Функции Uopz
  • Получить или установить флаги для функции или класса

uopz_flags

(PECL uopz 2 >= 2.0.2, PECL uopz 5, PECL uopz 6)

uopz_flags — Получить или установить флаги для функции или класса

Описание

uopz_flags ( string $function [, int $flags = PHP_INT_MAX ] ) : int
uopz_flags ( string $class , string $function [, int $flags = PHP_INT_MAX ] ) : int

Получить или установить флаги для записи функции или класса во время выполнения

Список параметров

class

Имя класса

function

Имя функции

flags

Корректный набор флагов ZEND_ACC_. Если не заданы, uopz_flags() используется как геттер.

Возвращаемые значения

При установке новых флагов, возвращает старые флаги, иначе возвращает текущие флаги

Список изменений

Версия | Описание
PECL uopz 5.0.0 | Параметр flags теперь необязательный. Ранее ZEND_ACC_FETCH должен был передаваться, чтобы uopz_flags() использовался как геттер.

Примеры

Пример #1 Пример использования uopz_flags()

<?php
class Test {
    public function method() {
        return __CLASS__;
    }
}

$flags = uopz_flags("Test", "method");

var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_PRIVATE));
var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_STATIC));

var_dump(uopz_flags("Test", "method", $flags|ZEND_ACC_STATIC|ZEND_ACC_PRIVATE));

var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_PRIVATE));
var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_STATIC));
?>

Результат выполнения данного примера:

bool(false)
bool(false)
int(1234567890)
bool(true)
bool(true)


Создает функцию во время выполнения

  • « uopz_flags
  • uopz_get_exit_status »
  • PHP Manual
  • Функции Uopz
  • Создает функцию во время выполнения

uopz_function

(PECL uopz 1, PECL uopz 2)

uopz_function — Создает функцию во время выполнения

Внимание

Эта функция была УДАЛЕНА в PECL uopz 5.0.0.

Описание

uopz_function ( string $function , Closure $handler [, int $modifiers ] ) : void
uopz_function ( string $class , string $function , Closure $handler [, int $modifiers ] ) : void

Создает функцию во время выполнения

Список параметров

class

Имя класса для получения новой функции

function

Имя функции

handler

Замыкание для функции

modifiers

Модификаторы для функции, по умолчанию скопированы или ZEND_ACC_PUBLIC

Возвращаемые значения

Примеры

Пример #1 Пример использования uopz_function()

<?php
uopz_function("my_strlen", function($arg) {
    return strlen($arg);
});
echo my_strlen("Привет, Мир");
?>

Результат выполнения данного примера:

11

Пример #2 Пример использования uopz_function() с классом

<?php
class My {}

uopz_function(My::class, "strlen", function($arg) {
    return strlen($arg);
}, ZEND_ACC_STATIC);

echo My::strlen("Привет, Мир");
?>

Результат выполнения данного примера:

11


Получить последний установленный статус выхода

  • « uopz_function
  • uopz_get_hook »
  • PHP Manual
  • Функции Uopz
  • Получить последний установленный статус выхода

uopz_get_exit_status

(PECL uopz 5, PECL uopz 6)

uopz_get_exit_status — Получить последний установленный статус выхода

Описание

uopz_get_exit_status ( void ) : mixed

Получает последний установленный статус выхода, то есть значение, переданное в exit().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция возвращает последний статус выхода или NULL, если exit() не был вызван.

Примеры

Пример #1 Пример использования uopz_get_exit_status()

<?php
exit(123);
echo uopz_get_exit_status();?>

Результат выполнения данного примера:

123

Примечания

Предостережение

OPcache оптимизирует мертвый код после безусловного завершения.

Смотрите также

  • uopz_allow_exit() - Позволяет управлять отключенным опкодом exit


Получает ранее установленный обработчик на функцию или метод

  • « uopz_get_exit_status
  • uopz_get_mock »
  • PHP Manual
  • Функции Uopz
  • Получает ранее установленный обработчик на функцию или метод

uopz_get_hook

(PECL uopz 5, PECL uopz 6)

uopz_get_hook — Получает ранее установленный обработчик на функцию или метод

Описание

uopz_get_hook ( string $function ) : Closure
uopz_get_hook ( string $class , string $function ) : Closure

Получает ранее установленный обработчик на функцию или метод.

Список параметров

class

Имя класса.

function

Имя функции или метода.

Возвращаемые значения

Возвращает ранее установленный обработчик на функцию или метод, либо NULL, если обработчик не был установлен.

Примеры

Пример #1 Простое использование uopz_get_hook()

<?php
function foo() {
    echo 'foo';
}
uopz_set_hook('foo', function () {echo 'bar';});
var_dump(uopz_get_hook('foo'));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Closure)#2 (0) {
}

Смотрите также

  • uopz_set_hook() - Устанавливает обработчик для выполнения при вызове функции или метода
  • uopz_unset_hook() - Удаляет ранее установленную функцию или метод


Получить текущий имитатор (mock) для класса

  • « uopz_get_hook
  • uopz_get_property »
  • PHP Manual
  • Функции Uopz
  • Получить текущий имитатор (mock) для класса

uopz_get_mock

(PECL uopz 5, PECL uopz 6)

uopz_get_mock — Получить текущий имитатор (mock) для класса

Описание

uopz_get_mock ( string $class ) : mixed

Возвращает текущий имитатор class.

Список параметров

class

Название имитированного класса

Возвращаемые значения

Либо строка, содержащая название имитатора, либо объект, либо NULL, если имитатор не задан.

Примеры

Пример #1 Пример использования uopz_get_mock()

<?php
class A {
    public static function who() {
        echo "A";
    }
}

class mockA {
    public static function who() {
        echo "mockA";
    }
}

uopz_set_mock(A::class, mockA::class);
echo uopz_get_mock(A::class);
?>

Результат выполнения данного примера:

mockA

Смотрите также

  • uopz_set_mock() - Использовать имитататор вместо класса для новых объектов
  • uopz_unset_mock() - Удалить ранее установленный имитатор


Получает значение класса или свойство экземпляра

  • « uopz_get_mock
  • uopz_get_return »
  • PHP Manual
  • Функции Uopz
  • Получает значение класса или свойство экземпляра

uopz_get_property

(PECL uopz 5, PECL uopz 6)

uopz_get_property — Получает значение класса или свойство экземпляра

Описание

uopz_get_property ( string $class , string $property ) : mixed
uopz_get_property ( object $instance , string $property ) : mixed

Устанавливает значение существующего статического свойства класса, если указан класс (class), либо значение существующего свойства экземпляра, если передан экземпляр (instance).

Список параметров

class

Имя класса.

instance

Экземпляр объекта.

property

Имя свойства.

Возвращаемые значения

Возвращает значение класса или свойство экземпляра, либо NULL, если свойство не определено.

Примеры

Пример #1 Простое использование uopz_get_property()

<?php
class Foo {
    private static $staticBar = 10;
    private $bar = 100;
}
$foo = new Foo;
var_dump(uopz_get_property('Foo', 'staticBar'));
var_dump(uopz_get_property($foo, 'bar'));
?>

Результатом выполнения данного примера будет что-то подобное:

int(10)
int(100)

Смотрите также

  • uopz_set_property() - Устанавливает значение существующего свойства класса или экземпляра


Получает предыдущее установленное возвращаемое значение для функции

  • « uopz_get_property
  • uopz_get_static »
  • PHP Manual
  • Функции Uopz
  • Получает предыдущее установленное возвращаемое значение для функции

uopz_get_return

(PECL uopz 5, PECL uopz 6)

uopz_get_return — Получает предыдущее установленное возвращаемое значение для функции

Описание

uopz_get_return ( string $function ) : mixed
uopz_get_return ( string $class , string $function ) : mixed

Получает возвращаемое значение function, ранее установленное с помощью uopz_set_return().

Список параметров

class

Имя класса, содержащего функцию

function

Имя функции

Возвращаемые значения

Ранее установленное возвращаемое значение или объект Closure.

Примеры

Пример #1 Пример использования uopz_get_return()

<?php
uopz_set_return("strlen", 42);
echo uopz_get_return("strlen");
?>

Результат выполнения данного примера:

42


Возвращает статические переменные из области видимости функции или метода

  • « uopz_get_return
  • uopz_implement »
  • PHP Manual
  • Функции Uopz
  • Возвращает статические переменные из области видимости функции или метода

uopz_get_static

(PECL uopz 5, PECL uopz 6)

uopz_get_static — Возвращает статические переменные из области видимости функции или метода

Описание

uopz_get_static ( string $class , string $function ) : array
uopz_get_static ( string $function ) : array

Возвращает статические переменные из области видимости функции или метода.

Список параметров

class

Имя класса.

function

Имя функции или метода.

Возвращаемые значения

Возвращает ассоциативный массив (array) имен переменных, сопоставленный с их текущим значениям при успешном выполнении, либо NULL, если функция или метод не существуют.

Примеры

Пример #1 Простое использование uopz_get_static()

<?php
function foo() {
    static $bar = 'baz';
}
var_dump(uopz_get_static('foo'));
?>

Результат выполнения данного примера:

array(1) {
  ["bar"]=>
  string(3) "baz"
}

Смотрите также

  • uopz_set_static() - Устанавливает статические переменные в области видимости функции или метода


Реализует интерфейс во время выполнения

  • « uopz_get_static
  • uopz_overload »
  • PHP Manual
  • Функции Uopz
  • Реализует интерфейс во время выполнения

uopz_implement

(PECL uopz 1, PECL uopz 2, PECL uopz 5, PECL uopz 6)

uopz_implement — Реализует интерфейс во время выполнения

Описание

uopz_implement ( string $class , string $interface ) : bool

Делает class, реализующий interface

Список параметров

class

interface

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования uopz_implement()

<?php
interface myInterface {}

class myClass {}

uopz_implement(myClass::class, myInterface::class);

var_dump(class_implements(myClass::class));
?>

Результат выполнения данного примера:

array(1) {
  ["myInterface"]=>
  string(11) "myInterface"
}


Перегрузить опкод VM

  • « uopz_implement
  • uopz_redefine »
  • PHP Manual
  • Функции Uopz
  • Перегрузить опкод VM

uopz_overload

(PECL uopz 1, PECL uopz 2)

uopz_overload — Перегрузить опкод VM

Внимание

Эта функция была УДАЛЕНА в PECL uopz 5.0.0.

Описание

uopz_overload ( int $opcode , Callable $callable ) : void

Перегружает определенный opcode с помощью пользовательской функции

Список параметров

opcode

Корректный опкод, смотрите константы для получения поддерживаемых опкодов

callable

Возвращаемые значения

Примеры

Пример #1 Пример использования uopz_overload()

<?php
uopz_overload(ZEND_EXIT, function(){});

exit();
echo "Привет, Мир";
?>

Результат выполнения данного примера:

Привет, Мир


Переопределить константу

  • « uopz_overload
  • uopz_rename »
  • PHP Manual
  • Функции Uopz
  • Переопределить константу

uopz_redefine

(PECL uopz 1, PECL uopz 2, PECL uopz 5, PECL uopz 6)

uopz_redefine — Переопределить константу

Описание

uopz_redefine ( string $constant , mixed $value ) : bool
uopz_redefine ( string $class , string $constant , mixed $value ) : bool

Переопределяет заданную константу constant на значение value

Список параметров

class

Имя класса, содержащего константу

constant

Имя константы

value

Новое значение константы, должно быть корректным типом для постоянной переменной

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования uopz_redefine()

<?php
define("MY", 100);

uopz_redefine("MY", 1000);

echo MY;
?>

Результат выполнения данного примера:

1000


Переименовать функцию во время выполнения

  • « uopz_redefine
  • uopz_restore »
  • PHP Manual
  • Функции Uopz
  • Переименовать функцию во время выполнения

uopz_rename

(PECL uopz 1, PECL uopz 2)

uopz_rename — Переименовать функцию во время выполнения

Внимание

Эта функция была УДАЛЕНА в PECL uopz 5.0.0.

Описание

uopz_rename ( string $function , string $rename ) : void
uopz_rename ( string $class , string $function , string $rename ) : void

Переименовывает функцию function на rename

Замечание:

Если обе функции существуют, эта функция по сути поменяет имена

Список параметров

class

Имя класса, содержащего функцию

function

Имя существующей функции

rename

Новое имя функции

Возвращаемые значения

Примеры

Пример #1 Пример использования uopz_rename()

<?php
uopz_rename("strlen", "original_strlen");

echo original_strlen("Hello World");
?>

Результатом выполнения данного примера будет что-то подобное:

11

Пример #2 Пример использования uopz_rename() с классом

<?php
class My {
    public function strlen($arg) {
        return strlen($arg);
    }
}

uopz_rename(My::class, "strlen", "original_strlen");

echo My::original_strlen("Hello World");
?>

Результат выполнения данного примера:

11


Восстановить ранее зарезервированную функцию

  • « uopz_rename
  • uopz_set_hook »
  • PHP Manual
  • Функции Uopz
  • Восстановить ранее зарезервированную функцию

uopz_restore

(PECL uopz 1 >= 1.0.3, PECL uopz 2)

uopz_restore — Восстановить ранее зарезервированную функцию

Внимание

Эта функция была УДАЛЕНА в PECL uopz 5.0.0.

Описание

uopz_restore ( string $function ) : void
uopz_restore ( string $class , string $function ) : void

Восстановить ранее зарезервированную функцию

Список параметров

class

Имя класса, содержащего функцию для восстановления

function

Имя функции

Возвращаемые значения

Примеры

Пример #1 Пример использования uopz_restore()

<?php
uopz_backup("fgets");
uopz_function("fgets", function(){
    return true;
});
var_dump(fgets());
uopz_restore('fgets');
fgets();
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: fgets() expects at least 1 parameter, 0 given in /path/to/script.php on line 8


Устанавливает обработчик для выполнения при вызове функции или метода

  • « uopz_restore
  • uopz_set_mock »
  • PHP Manual
  • Функции Uopz
  • Устанавливает обработчик для выполнения при вызове функции или метода

uopz_set_hook

(PECL uopz 5, PECL uopz 6)

uopz_set_hook — Устанавливает обработчик для выполнения при вызове функции или метода

Описание

uopz_set_hook ( string $function , Closure $hook ) : bool
uopz_set_hook ( string $class , string $function , Closure $hook ) : bool

Устанавливает обработчик для выполнения при вызове функции или метода.

Список параметров

class

Имя класса.

function

Имя функции или метода.

hook

Замыкание, выполняемое при вызове функции или метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Простое использование uopz_set_hook()

<?php
function foo() {
    echo 'foo';
}
uopz_set_hook('foo', function () {echo 'bar';});
foo();
?>

Результат выполнения данного примера:

barfoo

Смотрите также

  • uopz_get_hook() - Получает ранее установленный обработчик на функцию или метод
  • uopz_unset_hook() - Удаляет ранее установленную функцию или метод


Использовать имитататор вместо класса для новых объектов

  • « uopz_set_hook
  • uopz_set_property »
  • PHP Manual
  • Функции Uopz
  • Использовать имитататор вместо класса для новых объектов

uopz_set_mock

(PECL uopz 5, PECL uopz 6)

uopz_set_mock — Использовать имитататор вместо класса для новых объектов

Описание

uopz_set_mock ( string $class , mixed $mock ) : void

Если mock - это строка, содержащая имя класса, тогда он будет создан вместо class. mock также может быть объектом.

Замечание:

Только динамический доступ к свойствам и методам будет использовать объект mock. Статический доступ будет использовать оригинальный class. Смотрите пример ниже.

Список параметров

class

Имя класса, который будет имитирован.

mock

Имитатор в виде строки, содержащей имя используемого класса, либо объект. Если передана строка, она должна быть содержать абсолютное имя класса. В этом случае рекомендуется использовать магическую константу ::class.

Список изменений

Версия | Описание
uopz 6.0.0 | Имитирование статических функций более не поддерживаются этой функцией. Вместо это го следует использовать uopz_redefine() и uopz_set_return(), или Componere.

Примеры

Пример #1 Пример использования uopz_set_mock()

<?php
class A {
    public function who() {
        echo "A";
    }
}

class mockA {
    public function who() {
        echo "mockA";
    }
}

uopz_set_mock(A::class, mockA::class);
(new A)->who();
?>

Результат выполнения данного примера:

mockA

Пример #2 Пример использования uopz_set_mock()

<?php
class A {
    public function who() {
        echo "A";
    }
}

uopz_set_mock(A::class, new class {
                            public function who() {
                                echo "mockA";
                            }
                        });
(new A)->who();
?>

Результат выполнения данного примера:

mockA

Пример #3 uopz_set_mock() и статические члены класса

Начиная с uopz 6.0.0, имитация статических членов класса не поддерживается.

<?php
class A {
    public static function who() {
        echo "A";
    }
}

uopz_set_mock(A::class, new class {
                            const CON = 'mockA';
                            public static function who() {
                                echo "mockA";
                            }
                        });
echo A::CON, PHP_EOL;
A::who();

Результат выполнения данного примера:

A
A

Вывод примера в uopz 5:

mockA
mockA

Смотрите также

  • uopz_get_mock() - Получить текущий имитатор (mock) для класса
  • uopz_unset_mock() - Удалить ранее установленный имитатор


Устанавливает значение существующего свойства класса или экземпляра

  • « uopz_set_mock
  • uopz_set_return »
  • PHP Manual
  • Функции Uopz
  • Устанавливает значение существующего свойства класса или экземпляра

uopz_set_property

(PECL uopz 5, PECL uopz 6)

uopz_set_property — Устанавливает значение существующего свойства класса или экземпляра

Описание

uopz_set_property ( string $class , string $property , mixed $value ) : void
uopz_set_property ( object $instance , string $property , mixed $value ) : void

Задает значение существующего статического свойства класса, если задан класс (class), либо значение существующего свойства экземпляра (вне зависимости от того, существует ли свойство экземпляра), если передан экземпляр (instance).

Список параметров

class

Имя класса.

instance

Экземпляр объекта.

property

Имя свойства.

value

Значение, присваиваемое свойству.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Простое использование uopz_set_property()

<?php
class Foo {
   private static $staticBar;
   private $bar;
   public static function testStaticBar() {
      return self::$staticBar;
   }
   public function testBar() {
      return $this->bar;
   }
}
$foo = new Foo;
uopz_set_property('Foo', 'staticBar', 10);
uopz_set_property($foo, 'bar', 100);
var_dump(Foo::testStaticBar());
var_dump($foo->testBar());
?>

Результат выполнения данного примера:

int(10)

Смотрите также

  • uopz_get_property() - Получает значение класса или свойство экземпляра


Предоставить возвращаемое значение для существующей функции

  • « uopz_set_property
  • uopz_set_static »
  • PHP Manual
  • Функции Uopz
  • Предоставить возвращаемое значение для существующей функции

uopz_set_return

(PECL uopz 5, PECL uopz 6)

uopz_set_return — Предоставить возвращаемое значение для существующей функции

Описание

uopz_set_return ( string $function , mixed $value [, bool $execute = FALSE ] ) : bool
uopz_set_return ( string $class , string $function , mixed $value [, bool $execute = FALSE ] ) : bool

Установить возвращаемое значение для function на value. Если value замыкание и установлен execute, замыкание будет выполняться вместо исходной функции. Можно вызвать исходную функцию из замыкания.

Замечание:

Эта функция заменяет uopz_rename().

Список параметров

class

Имя класса, содержащего функцию

function

Имя существующей функции

value

Возвращаемое значение функцией. Если передано замыкание и параметр execute установлен, замыкание будет выполнено вместо исходной функции.

execute

Если true, и в параметре value передано замыкание, замыкание будет выполнено вместо исходной функции.

Возвращаемые значения

True в случае успешного выполнения, false в противном случае.

Примеры

Пример #1 Пример использования uopz_set_return()

<?php
uopz_set_return("strlen", 42);
echo strlen("Banana");
?>

Результат выполнения данного примера:

42

Пример #2 Пример использования uopz_set_return()

<?php
uopz_set_return("strlen", function($str) { return strlen($str) * 2; }, true );
echo strlen("Banana");
?>

Результат выполнения данного примера:

12

Пример #3 Пример использования uopz_set_return() с классом

<?php
class My {
    public static function strlen($arg) {
        return strlen($arg);
    }
}
uopz_set_return(My::class, "strlen", function($str) { return strlen($str) * 2; }, true );
echo My::strlen("Banana");
?>

Результат выполнения данного примера:

12


Устанавливает статические переменные в области видимости функции или метода

  • « uopz_set_return
  • uopz_undefine »
  • PHP Manual
  • Функции Uopz
  • Устанавливает статические переменные в области видимости функции или метода

uopz_set_static

(PECL uopz 5, PECL uopz 6)

uopz_set_static — Устанавливает статические переменные в области видимости функции или метода

Описание

uopz_set_static ( string $function , array $static ) : void
uopz_set_static ( string $class , string $function , array $static ) : void

Устанавливает статические переменные в области видимости функции или метода.

Список параметров

class

Имя класса.

function

Имя функции или метода.

static

Ассоциативный массив (array) имен переменных, сопоставленных с их значениями.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Простое использование uopz_set_static()

<?php
function foo() {
    static $bar = 'baz';
    var_dump($bar);
}
uopz_set_static('foo', ['bar' => 'qux']);
foo();
?>

Результат выполнения данного примера:

string(3) "qux"

Смотрите также

  • uopz_get_static() - Возвращает статические переменные из области видимости функции или метода


Отменяет определение константы

  • « uopz_set_static
  • uopz_unset_hook »
  • PHP Manual
  • Функции Uopz
  • Отменяет определение константы

uopz_undefine

(PECL uopz 1, PECL uopz 2, PECL uopz 5, PECL uopz 6)

uopz_undefine — Отменяет определение константы

Описание

uopz_undefine ( string $constant ) : bool
uopz_undefine ( string $class , string $constant ) : bool

Удаляет константу во время выполнения

Список параметров

class

Название класса, содержащего constant

constant

Имя существующей константы

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования uopz_undefine()

<?php
define("MY", true);

uopz_undefine("MY");

var_dump(defined("MY"));
?>

Результат выполнения данного примера:

bool(false)


Удаляет ранее установленную функцию или метод

  • « uopz_undefine
  • uopz_unset_mock »
  • PHP Manual
  • Функции Uopz
  • Удаляет ранее установленную функцию или метод

uopz_unset_hook

(PECL uopz 5, PECL uopz 6)

uopz_unset_hook — Удаляет ранее установленную функцию или метод

Описание

uopz_unset_hook ( string $function ) : bool
uopz_unset_hook ( string $class , string $function ) : bool

Удаляет ранее установленную функцию или метод.

Список параметров

class

Имя класса.

function

Имя функции или метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Простое использование uopz_unset_hook()

<?php
function foo() {
    echo 'foo';
}
uopz_set_hook('foo', function () {echo 'bar';});
foo();
echo PHP_EOL;
uopz_unset_hook('foo');
foo();
?>

Результат выполнения данного примера:

barfoo
foo

Смотрите также

  • uopz_set_hook() - Устанавливает обработчик для выполнения при вызове функции или метода
  • uopz_get_hook() - Получает ранее установленный обработчик на функцию или метод


Удалить ранее установленный имитатор

  • « uopz_unset_hook
  • uopz_unset_return »
  • PHP Manual
  • Функции Uopz
  • Удалить ранее установленный имитатор

uopz_unset_mock

(PECL uopz 5, PECL uopz 6)

uopz_unset_mock — Удалить ранее установленный имитатор

Описание

uopz_unset_mock ( string $class ) : void

Удаляет ранее установленный имитатор для class.

Список параметров

class

Имя имитированного класса.

Ошибки

Выбрасывает RuntimeException, если ранее не был задан имитатор для class.

Примеры

Пример #1 Пример использования uopz_unset_mock()

<?php
class A {
    public static function who() {
        echo "A";
    }
}

class mockA {
    public static function who() {
        echo "mockA";
    }
}

uopz_set_mock(A::class, mockA::class);
uopz_unset_mock(A::class);
A::who();
?>

Результат выполнения данного примера:

A

Смотрите также

  • uopz_set_mock() - Использовать имитататор вместо класса для новых объектов
  • uopz_get_mock() - Получить текущий имитатор (mock) для класса


Отменяет ранее установленное возвращаемое значение для функции

  • « uopz_unset_mock
  • Weakref »
  • PHP Manual
  • Функции Uopz
  • Отменяет ранее установленное возвращаемое значение для функции

uopz_unset_return

(PECL uopz 5, PECL uopz 6)

uopz_unset_return — Отменяет ранее установленное возвращаемое значение для функции

Описание

uopz_unset_return ( string $function ) : bool
uopz_unset_return ( string $class , string $function ) : bool

Отменяет возвращаемое значение function, ранее заданное функцией uopz_set_return().

Список параметров

class

Имя класса, содержащего функцию

function

Имя функции

Возвращаемые значения

True при успешном выполнении

Примеры

Пример #1 Пример использования uopz_unset_return()

<?php
uopz_set_return("strlen", 42);
$len = strlen("Banana");
uopz_unset_return("strlen");
echo $len + strlen("Banana");
?>

Результат выполнения данного примера:

48


Слабые ссылки

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Типы ресурсов
  • WeakRef — Класс WeakRef
    • Weakref::acquire — Создает сильную ссылку на текущий объект
    • Weakref::__construct — Создает новую слабую ссылку
    • Weakref::get — Возвращает объект, на который указывает ссылка
    • Weakref::release — Освобождает предыдущую сильную ссылку
    • Weakref::valid — Проверяет актуальность ссылки на объект
  • WeakMap — Класс WeakMap
    • WeakMap::__construct — Создает новую карту ссылок
    • WeakMap::count — Количество актуальных ссылок в карте
    • WeakMap::current — Возвращает текущее значение относительно внутреннего итератора
    • WeakMap::key — Возвращает текущий ключ относительно внутреннего итератора
    • WeakMap::next — Следующий элемент в карте ссылок
    • WeakMap::offsetExists — Проверяет, присутствует ли переданный объект в карте
    • WeakMap::offsetGet — Возвращает значение, на которое указывает переданный объект
    • WeakMap::offsetSet — Добавляет новую пару ключ-значение в карту
    • WeakMap::offsetUnset — Удалить запись из карты
    • WeakMap::rewind — Возвращает указатель итератора на начало карты
    • WeakMap::valid — Проверяет, укзывает ли текущий итератор на действительное значение


Введение

Слабые ссылки предоставляют простой инструмент для доступа к временным объектам. В отличие от обычной (сильной) ссылки, слабые ссылки не препятствуют сборщику мусора освободить этот объект. По этой причине объект может быть удален, несмотря на то, что слабая ссылка на него все еще существует. В этом случае такая ссылка становится недействительной.

Пример #1 Weakref пример использования

<?php
class MyClass {
    public function __destruct() {
        echo "Уничтожение объекта!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

if ($r1->valid()) {
    echo "Объект все еще существует!\n";
    var_dump($r1->get());
} else {
    echo "Объект уничтожен!\n";
}

unset($o1);

if ($r1->valid()) {
    echo "Объект все еще существует!\n";
    var_dump($r1->get());
} else {
    echo "Объект уничтожен!\n";
}
?>

Результат выполнения данного примера:

Объект все еще существует!
object(MyClass)#1 (0) {
}
Уничтожение объекта!
Объект уничтожен!


  • « Введение
  • Требования »
  • PHP Manual
  • Weakref
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка
  • Типы ресурсов


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/weakref.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Установка
  • WeakRef »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Класс WeakRef

(PECL weakref >= 0.1.0)

Введение

Класс WeakRef предоставляет способ доступа к объекту, не влияя при этом на количество ссылок на него, таким образом сборщик мусора сможет освободить этот объект. Это также дает возможность превратить слабую ссылку в сильную.

Замечание:

Класс WeakRef не следует путать с классом WeakReference.

Обзор классов

WeakRef {
/* Методы */
public Weakref::__construct ( object $object )
public Weakref::acquire ( void ) : bool
public Weakref::get ( void ) : object
public Weakref::release ( void ) : bool
public Weakref::valid ( void ) : bool
}

Примеры

Пример #1 Пример использования WeakRef

<?php
class MyClass {
    public function __destruct() {
        echo "Уничтожение объекта!\n";
    }
}

$o1 = new MyClass;

$r1 = new WeakRef($o1);

if ($r1->valid()) {
    echo "Объект все еще существует!\n";
    var_dump($r1->get());
} else {
    echo "Объект уничтожен!\n";
}

unset($o1);

if ($r1->valid()) {
    echo "Объект все еще существует!\n";
    var_dump($r1->get());
} else {
    echo "Объект уничтожен!\n";
}
?>

Результат выполнения данного примера:

Объект все еще существует!
object(MyClass)#1 (0) {
}
Уничтожение объекта!
Объект уничтожен!

Содержание

  • Weakref::acquire — Создает сильную ссылку на текущий объект
  • Weakref::__construct — Создает новую слабую ссылку
  • Weakref::get — Возвращает объект, на который указывает ссылка
  • Weakref::release — Освобождает предыдущую сильную ссылку
  • Weakref::valid — Проверяет актуальность ссылки на объект


Создает сильную ссылку на текущий объект

  • « WeakRef
  • Weakref::__construct »
  • PHP Manual
  • WeakRef
  • Создает сильную ссылку на текущий объект

Weakref::acquire

(PECL weakref >= 0.1.0)

Weakref::acquire — Создает сильную ссылку на текущий объект

Описание

public Weakref::acquire ( void ) : bool

Создает из слабой ссылки сильную ссылку на текущий объект, которую будет учитывать сборщик мусора.

Объект Weakref поддерживает внутренний счетчик для отслеживания внешних ссылок. Если вызов Weakref::acquire() успешен, то счетчик увеличится на один.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если ссылка валидна и можеть быть преобразована в сильную, FALSE в противном случае.

Примеры

Пример #1 Пример выполнения Weakref::acquire()

<?php
class MyClass {
    public function __destruct() {
        echo "Уничтожение объекта!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

$r1->acquire();

echo "Удаление o1...\n";
unset($o1);

$o2 = $r1->get();

$r1->release();

echo "Удаление o2...\n";
unset($o2);
?>

Результат выполнения данного примера:

Удаление o1...
Удаление o2...
Уничтожение объекта!

Пример #2 Пример вложенных вызовов acquire/release

<?php
class MyClass {
    public function __destruct() {
        echo "Уничтожение объекта!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

echo "Создание сильной ссылки...\n";
$r1->acquire();

echo "  Удаление...\n";
unset($o1);

echo "  Создание сильной ссылки...\n";
$r1->acquire();

echo "    Создание сильной ссылки...\n";
$r1->acquire();

echo "    Создание сильной ссылки...\n";
$r1->release();

echo "  Удаление сильной ссылки...\n";
$r1->release();

echo "Удаление сильной ссылки...\n";
$r1->release();

?>

Результат выполнения данного примера:

Создание сильной ссылки...
  Удаление...
  Создание сильной ссылки...
    Создание сильной ссылки...
    Удаление сильной ссылки...
  Удаление сильной ссылки...
Удаление сильной ссылки...
Уничтожение объекта!

Смотрите также

  • Weakref::release() - Освобождает предыдущую сильную ссылку


Создает новую слабую ссылку

  • « Weakref::acquire
  • Weakref::get »
  • PHP Manual
  • WeakRef
  • Создает новую слабую ссылку

Weakref::__construct

(PECL weakref >= 0.1.0)

Weakref::__construct — Создает новую слабую ссылку

Описание

public Weakref::__construct ( object $object )

Создает новую слабую ссылку.

Список параметров

object

Объект, на который будет указывать ссылка.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Weakref::__construct()

<?php
class MyClass {
    public function __destruct() {
        echo "Уничтожение объекта!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

if ($r1->valid()) {
    echo "Объект все еще существует!\n";
    var_dump($r1->get());
} else {
    echo "Объект уничтожен!\n";
}

unset($o1);

if ($r1->valid()) {
    echo "Объект все еще существует!\n";
    var_dump($r1->get());
} else {
    echo "Объект уничтожен!\n";
}
?>

Результат выполнения данного примера:

Объект все еще существует!
object(MyClass)#1 (0) {
}
Уничтожение объекта!
Объект уничтожен!


Возвращает объект, на который указывает ссылка

  • « Weakref::__construct
  • Weakref::release »
  • PHP Manual
  • WeakRef
  • Возвращает объект, на который указывает ссылка

Weakref::get

(PECL weakref >= 0.1.0)

Weakref::get — Возвращает объект, на который указывает ссылка

Описание

public Weakref::get ( void ) : object

Возвращает объект, на который указывает ссылка.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект, если ссылка действительна, NULL в противном случае.

Смотрите также

  • Weakref::valid() - Проверяет актуальность ссылки на объект


Освобождает предыдущую сильную ссылку

  • « Weakref::get
  • Weakref::valid »
  • PHP Manual
  • WeakRef
  • Освобождает предыдущую сильную ссылку

Weakref::release

(PECL weakref >= 0.1.0)

Weakref::release — Освобождает предыдущую сильную ссылку

Описание

public Weakref::release ( void ) : bool

Освобождает предыдущую сильную ссылку, превращая ее обратно в слабую (при условии, что внутренний счетчик равен нулю).

Объект Weakref содержит внутренний счетчик ссылок. Если вызов Weakref::release() прошел успешно, то этот счетчик уменьшится на единицу. Когда этот счетчик уменьшится до нуля, сильная ссылка становится слабой.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если ссылка была помечена как сильная и счетчик успешно уменьшился на единицу, FALSE в противном случае.

Примеры

Пример #1 Пример использования Weakref::release()

<?php
class MyClass {
    public function __destruct() {
        echo "Уничтожение объекта!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

$r1->acquire();

echo "Удаление o1...\n";
unset($o1);

$o2 = $r1->get();

$r1->release();

echo "Удаление o2...\n";
unset($o2);
?>

Результат выполнения данного примера:

Удаление o1...
Удаление o2...
Уничтожение объекта!

Смотрите также

  • Weakref::acquire() - Создает сильную ссылку на текущий объект


Проверяет актуальность ссылки на объект

  • « Weakref::release
  • WeakMap »
  • PHP Manual
  • WeakRef
  • Проверяет актуальность ссылки на объект

Weakref::valid

(PECL weakref >= 0.1.0)

Weakref::valid — Проверяет актуальность ссылки на объект

Описание

public Weakref::valid ( void ) : bool

Проверяет актуальность ссылки на объект.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если объект все еще существует и может быть возвращаен через метод Weakref::get(), FALSE в противном случае.

Смотрите также

  • Weakref::get() - Возвращает объект, на который указывает ссылка


Класс WeakMap

(PECL weakref >= 0.2.0)

Введение

Обзор классов

WeakMap implements Countable , ArrayAccess , Iterator {
/* Методы */
public __construct ( void )
public count ( void ) : int
public current ( void ) : mixed
public key ( void ) : object
public next ( void ) : void
public offsetExists ( object $object ) : bool
public offsetGet ( object $object ) : mixed
public offsetSet ( object $object , mixed $value ) : void
public offsetUnset ( object $object ) : void
public rewind ( void ) : void
public valid ( void ) : bool
}

Примеры

Пример #1 Пример использования Weakmap

<?php
$wm = new WeakMap();

$o = new StdClass;

class A {
    public function __destruct() {
        echo "Уничтожение объекта!\n";
    }
}

$wm[$o] = new A;

var_dump(count($wm));
echo "Удаление..\n";
unset($o);
echo "Готово\n";
var_dump(count($wm));

Результат выполнения данного примера:

int(1)
Удаление..
Уничтожение объекта!
Готово
int(0)

Содержание

  • WeakMap::__construct — Создает новую карту ссылок
  • WeakMap::count — Количество актуальных ссылок в карте
  • WeakMap::current — Возвращает текущее значение относительно внутреннего итератора
  • WeakMap::key — Возвращает текущий ключ относительно внутреннего итератора
  • WeakMap::next — Следующий элемент в карте ссылок
  • WeakMap::offsetExists — Проверяет, присутствует ли переданный объект в карте
  • WeakMap::offsetGet — Возвращает значение, на которое указывает переданный объект
  • WeakMap::offsetSet — Добавляет новую пару ключ-значение в карту
  • WeakMap::offsetUnset — Удалить запись из карты
  • WeakMap::rewind — Возвращает указатель итератора на начало карты
  • WeakMap::valid — Проверяет, укзывает ли текущий итератор на действительное значение


Создает новую карту ссылок

  • « WeakMap
  • WeakMap::count »
  • PHP Manual
  • WeakMap
  • Создает новую карту ссылок

WeakMap::__construct

(PECL weakref >= 0.2.0)

WeakMap::__construct — Создает новую карту ссылок

Описание

public WeakMap::__construct ( void )

Создает новую карту ссылок.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Количество актуальных ссылок в карте

  • « WeakMap::__construct
  • WeakMap::current »
  • PHP Manual
  • WeakMap
  • Количество актуальных ссылок в карте

WeakMap::count

(PECL weakref >= 0.2.0)

WeakMap::count — Количество актуальных ссылок в карте

Описание

public WeakMap::count ( void ) : int

Количество актуальных ссылок в карте.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество актуальных ссылок в карте.


Возвращает текущее значение относительно внутреннего итератора

  • « WeakMap::count
  • WeakMap::key »
  • PHP Manual
  • WeakMap
  • Возвращает текущее значение относительно внутреннего итератора

WeakMap::current

(PECL weakref >= 0.2.0)

WeakMap::current — Возвращает текущее значение относительно внутреннего итератора

Описание

public WeakMap::current ( void ) : mixed

Возвращает текущее значение относительно внутреннего итератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущее значение.


Возвращает текущий ключ относительно внутреннего итератора

  • « WeakMap::current
  • WeakMap::next »
  • PHP Manual
  • WeakMap
  • Возвращает текущий ключ относительно внутреннего итератора

WeakMap::key

(PECL weakref >= 0.2.0)

WeakMap::key — Возвращает текущий ключ относительно внутреннего итератора

Описание

public WeakMap::key ( void ) : object

Возвращает текущий ключ относительно внутреннего итератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий ключ.


Следующий элемент в карте ссылок

  • « WeakMap::key
  • WeakMap::offsetExists »
  • PHP Manual
  • WeakMap
  • Следующий элемент в карте ссылок

WeakMap::next

(PECL weakref >= 0.2.0)

WeakMap::next — Следующий элемент в карте ссылок

Описание

public WeakMap::next ( void ) : void

Следующий элемент в карте ссылок.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Проверяет, присутствует ли переданный объект в карте

  • « WeakMap::next
  • WeakMap::offsetGet »
  • PHP Manual
  • WeakMap
  • Проверяет, присутствует ли переданный объект в карте

WeakMap::offsetExists

(PECL weakref >= 0.2.0)

WeakMap::offsetExists — Проверяет, присутствует ли переданный объект в карте

Описание

public WeakMap::offsetExists ( object $object ) : bool

Проверяет, присутствует ли переданный объект в карте.

Список параметров

object

Объект для проверки.

Возвращаемые значения

Возвращает TRUE, если ссылка на объект содержится в карте, FALSE в противном случае.


Возвращает значение, на которое указывает переданный объект

  • « WeakMap::offsetExists
  • WeakMap::offsetSet »
  • PHP Manual
  • WeakMap
  • Возвращает значение, на которое указывает переданный объект

WeakMap::offsetGet

(PECL weakref >= 0.2.0)

WeakMap::offsetGet — Возвращает значение, на которое указывает переданный объект

Описание

public WeakMap::offsetGet ( object $object ) : mixed

Возвращает значение, на которое указывает переданный объект.

Список параметров

object

Объект, который хранится как ключ в карте.

Возвращаемые значения

Возвращает значение, которое связано с переданым объектом, NULL в противном случае.


Добавляет новую пару ключ-значение в карту

  • « WeakMap::offsetGet
  • WeakMap::offsetUnset »
  • PHP Manual
  • WeakMap
  • Добавляет новую пару ключ-значение в карту

WeakMap::offsetSet

(PECL weakref >= 0.2.0)

WeakMap::offsetSet — Добавляет новую пару ключ-значение в карту

Описание

public WeakMap::offsetSet ( object $object , mixed $value ) : void

Добавляет новую пару ключ-значение в карту. Если ключ уже содержится в карте, то его значение будет заменено на переданное.

Список параметров

object

Объект-ключ.

value

Данные, которые будут связаны с переданным ключем.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Удалить запись из карты

  • « WeakMap::offsetSet
  • WeakMap::rewind »
  • PHP Manual
  • WeakMap
  • Удалить запись из карты

WeakMap::offsetUnset

(PECL weakref >= 0.2.0)

WeakMap::offsetUnset — Удалить запись из карты

Описание

public WeakMap::offsetUnset ( object $object ) : void

Удалить запись из карты.

Список параметров

object

Ключ, который необходимо удалить из карты.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает указатель итератора на начало карты

  • « WeakMap::offsetUnset
  • WeakMap::valid »
  • PHP Manual
  • WeakMap
  • Возвращает указатель итератора на начало карты

WeakMap::rewind

(PECL weakref >= 0.2.0)

WeakMap::rewind — Возвращает указатель итератора на начало карты

Описание

public WeakMap::rewind ( void ) : void

Возвращает указатель итератора на начало карты.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Проверяет, укзывает ли текущий итератор на действительное значение

  • « WeakMap::rewind
  • WinCache »
  • PHP Manual
  • WeakMap
  • Проверяет, укзывает ли текущий итератор на действительное значение

WeakMap::valid

(PECL weakref >= 0.2.0)

WeakMap::valid — Проверяет, укзывает ли текущий итератор на действительное значение

Описание

public WeakMap::valid ( void ) : bool

Проверяет, укзывает ли текущий итератор на действительное значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если итератор указывает на действительный объект, FALSE в противном случае.


Windows Cache для PHP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Скрипт статистики WinCache
    • Обработчик сессий WinCache
    • Перенаправление функций WinCache
    • Типы ресурсов
  • Предопределенные константы
  • Функции WinCache
    • wincache_fcache_fileinfo — Retrieves information about files cached in the file cache
    • wincache_fcache_meminfo — Retrieves information about file cache memory usage
    • wincache_lock — Acquires an exclusive lock on a given key
    • wincache_ocache_fileinfo — Retrieves information about files cached in the opcode cache
    • wincache_ocache_meminfo — Retrieves information about opcode cache memory usage
    • wincache_refresh_if_changed — Refreshes the cache entries for the cached files
    • wincache_rplist_fileinfo — Retrieves information about resolve file path cache
    • wincache_rplist_meminfo — Retrieves information about memory usage by the resolve file path cache
    • wincache_scache_info — Retrieves information about files cached in the session cache
    • wincache_scache_meminfo — Retrieves information about session cache memory usage
    • wincache_ucache_add — Adds a variable in user cache only if variable does not already exist in the cache
    • wincache_ucache_cas — Compares the variable with old value and assigns new value to it
    • wincache_ucache_clear — Deletes entire content of the user cache
    • wincache_ucache_dec — Decrements the value associated with the key
    • wincache_ucache_delete — Deletes variables from the user cache
    • wincache_ucache_exists — Checks if a variable exists in the user cache
    • wincache_ucache_get — Gets a variable stored in the user cache
    • wincache_ucache_inc — Increments the value associated with the key
    • wincache_ucache_info — Retrieves information about data stored in the user cache
    • wincache_ucache_meminfo — Retrieves information about user cache memory usage
    • wincache_ucache_set — Adds a variable in user cache and overwrites a variable if it already exists in the cache
    • wincache_unlock — Releases an exclusive lock on a given key
  • Сборка для Windows
    • Пререквизиты
    • Компиляция и сборка
    • Проверка сборки


Введение

Windows Cache Extension для PHP - это кеширующий модуль, позволяющий увеличить скорость работы PHP-приложений на Windows и Windows Server. Как только вы включаете Windows Cache Extension и он загружается движком PHP, приложения начинают получать все его преимущества без необходимости менять их код.

Модуль включает 5 различных типов кешей. Далее рассказывается про назначение и преимущества каждого типа кеша.

  • PHP Opcode Cache - PHP является скриптовым языком, который читает входящий поток данных, содержащий текст и/или инструкции языка и выдает новый поток данных, обычно в формате HTML. Т.е. на стороне веб-сервера, PHP читает, разбирает, компилирует и запускает PHP-скрипт каждый раз, когда его запрашивает клиент. Чтение, разбор и компиляция создают дополнительную нагрузку на процессорные ядра и файловую систему сервера, что сказывается на конечной производительности приложения. Кеширование байткода (опкода) PHP позволяет держать уже скомпилированный код в разделяемой памяти и использовать его при следующих запросах к тому же скрипту.

    Поддержка кеширования опкодов была удалена в Wincache 2.0.0. Так что если она вам нужна, то следует использовать модуль OPcache, который был включен в PHP начиная с PHP 5.5.0.

  • File Cache - даже если включено кеширование опкодов, PHP все равно обращается к файлам на файловой системе. Когда PHP-скрипт размещен в удаленной файловой папке, файловые операции значительно снижают производительность. Windows Cache Extension включает файловое кеширование, которое используется для сохранения контента скриптов в разделяемой памяти, что сильно сокращает количество операций доступа к файловой системе для PHP.

  • Resolve File Path Cache - скрипты PHP довольно часто включают или оперируют файлами, используя относительные пути. Каждый такой путь сначала нормализуется PHP до абсолютного пути. Когда приложение использует большое количество файлов и обращается к ним по относительным путям, операции выведения абсолютных путей могут негативно сказаться на производительности. Модуль Windows Cache Extension предоставляет инструмент кеширования Resolve File Path, который используется для сохранения сопоставления относительных и абсолютных файловых путей, позволяя снизить количество операций их выведения.

  • User Cache (доступно с версии 1.1.0) - скрипты PHP могут получить преимущества кеширования в разделяемой памяти посредством API пользовательского кеширования. Объекты и переменные PHP могут быть сохранены в пользовательском кеше и переиспользованы в последующих запросах. Это может как повысить производительность приложения, так и разделить данные между несколькими процессами PHP.

  • Session Handler (доступно с версии 1.1.0) - обработчик сессий WinCache может быть использован для сохранения данных сессии в кеше в разделяемой памяти. Это позволяет избежать дисковых операций при записи и чтении данных сессии, что может сильно увеличить производительность, если таких данных много.


Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения
  • Скрипт статистики WinCache
  • Обработчик сессий WinCache
  • Перенаправление функций WinCache
  • Типы ресурсов


Требования

В данный момент модуль поддерживается только для следующих конфигураций:

Windows OS:

  • Windows XP SP3 с IIS 5.1 и » FastCGI Extension
  • Windows Server 2003 с IIS 6.0 и » FastCGI Extension
  • Windows Vista SP1 с IIS 7.0 и FastCGI Module
  • Windows Server 2008 с IIS 7.0 и FastCGI Module
  • Windows 7 с IIS 7.5 и FastCGI Module
  • Windows Server 2008 R2 с IIS 7.5 и FastCGI Module

PHP:

  • PHP 5.2.X, не потокобезопасная сборка
  • PHP 5.3 X86, не потокобезопасная VC9 сборка

Замечание: Модуль WinCache может использоваться только если IIS настроен использовать PHP через FastCGI.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/wincache.

Существует два пакета для этого модуля: один пакет для PHP 5.2.X, а другой для PHP 5.3.X. Выбор необходимого пакета зависит от вашей версии PHP.

Для установки и включения модуля следуйте следующей инструкции:

  1. Разархивируйте пакет во временную папку.

  2. Скопируйте php_wincache.dll в каталог с модулями PHP. Обычно этот каталог называется "ext" и расположен там же, где установлен PHP. К примеру: C:\Program Files\PHP\ext.

  3. Используя текстовый редактор откройте файл php.ini, который обычно лежит там же, где установлен PHP. К примеру: C:\Program Files\PHP\php.ini.

  4. Добавьте в конец файла строку: extension = php_wincache.dll.

  5. Сохраните и закройте файл php.ini.

  6. Пересоздайте пул приложений IIS для того, чтобы изменения вступили в силу. Для проверки того, что модуль включен, создайте файл phpinfo.php с кодом, вызывающим функцию PHP phpinfo.

  7. Сохраните phpinfo.php в корневом каталоге веб-сайта и обратитесь к нему через веб-браузер по следующей ссылке http://localhost/phpinfo.php. Найдите в выводе секцию wincache. Если модуль включен, то функция phpinfo покажет список конфигурационных параметров WinCache.

Замечание: Не забудьте удалить файл phpinfo.php после того, как он перестанет быть нужен.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

В таблице представлен список конфигурационных параметров модуля WinCache:

Конфигурационные параметры WinCache
Имя | По умолчанию | Минимум | Максимум | Место изменения | Список изменений
wincache.fcenabled | "1" | "0" | "1" | PHP_INI_ALL | Доступно с WinCache 1.0.0
wincache.fcenabledfilter | "NULL" | "NULL" | "NULL" | PHP_INI_SYSTEM | Доступно с WinCache 1.0.0
wincache.fcachesize | "24" | "5" | "255" | PHP_INI_SYSTEM | Доступно с WinCache 1.0.0
wincache.fcndetect | "1" | "0" | "1" | PHP_INI_SYSTEM | Доступно с WinCache 1.1.0
wincache.maxfilesize | "256" | "10" | "2048" | PHP_INI_SYSTEM | Доступно с WinCache 1.0.0
wincache.ocenabled | "1" | "0" | "1" | PHP_INI_ALL | Доступно с WinCache 1.0.0. Удалено в 2.0.0.0
wincache.ocenabledfilter | "NULL" | "NULL" | "NULL" | PHP_INI_SYSTEM | Доступно с WinCache 1.0.0. Удалено в 2.0.0.0
wincache.ocachesize | "96" | "15" | "255" | PHP_INI_SYSTEM | Доступно с WinCache 1.0.0. Удалено в 2.0.0.0
wincache.filecount | "4096" | "1024" | "16384" | PHP_INI_SYSTEM | Доступно с WinCache 1.0.0
wincache.chkinterval | "30" | "0" | "300" | PHP_INI_SYSTEM | Доступно с WinCache 1.0.0
wincache.ttlmax | "1200" | "0" | "7200" | PHP_INI_SYSTEM | Доступно с WinCache 1.0.0
wincache.enablecli | 0 | 0 | 1 | PHP_INI_SYSTEM | Доступно с WinCache 1.0.0
wincache.ignorelist | NULL | NULL | NULL | PHP_INI_ALL | Доступно с WinCache 1.0.0
wincache.namesalt | NULL | NULL | NULL | PHP_INI_SYSTEM | Доступно с WinCache 1.0.0
wincache.ucenabled | 1 | 0 | 1 | PHP_INI_SYSTEM | Доступно с WinCache 1.1.0
wincache.ucachesize | 8 | 5 | 85 | PHP_INI_SYSTEM | Доступно с WinCache 1.1.0
wincache.scachesize | 8 | 5 | 85 | PHP_INI_SYSTEM | Доступно с WinCache 1.1.0
wincache.rerouteini | NULL | NULL | NULL | PHP_INI_SYSTEM | Доступно с WinCache 1.2.0. Удалено в 1.3.7
wincache.reroute_enabled | 1 | 0 | 1 | PHP_INI_SYSTEM | PHP_INI_PERDIR | Доступно с WinCache 1.3.7
wincache.srwlocks | 1 | 0 | 1 | PHP_INI_SYSTEM | Доступно с WinCache 1.3.6.3. Удалено в 2.0.0.0
wincache.filemapdir | NULL | NULL | NULL | PHP_INI_SYSTEM | Доступно с WinCache 1.3.7.4
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

wincache.fcenabled boolean
Включает/отключает файловое кеширование.
wincache.fcenabledfilter string
Определяет список идентификаторов IIS веб-серверов, разделенных запятой, для которых должно быть разрешено/запрещено файловое кеширование. Эта настройка работает в паре с wincache.fcenabled: если wincache.fcenabled установлено в 1, то для серверов, перечисленных в wincache.fcenabledfilter файловое кеширование будет отключено; если wincache.fcenabled установлено как 0, то для серверов, перечисленных в wincache.fcenabledfilter файловое кеширование будет включено.
wincache.fcachesize integer
Определяет максимальный размер памяти (в мегабайтах) для файлового кеша. Когда размер всех закешированных файлов превысит это значение, из кеша будут удалены самые устаревшие файлы.
wincache.fcndetect boolean
Включает/отключает функционал оповещения об изменении файла. Если функционал оповещения об изменениях файла поддерживается, то он может быть использован для обновления кеша опкодов и файлового кеша при получении соответствующих оповещений. Если подобный механизм не поддерживается, например, при использовании сетевых папок, wincache будет самостоятельно проверять файлы на предмет изменения через заданные в настройке wincache.chkinterval интервалы времени.
wincache.maxfilesize integer
Определяет максимальный размер одного файла (в килобайтах) для файлового кеша. Если размер файла превышает заданное значение, то он не будет закеширован. Данная настройка применяется только к файловому кешу.
wincache.ocenabled boolean
Внимание

Эта опция была УДАЛЕНА в версии 2.0.0.0

Включает/отключает кеширование опкодов
wincache.ocenabledfilter string
Внимание

Эта опция была УДАЛЕНА в версии 2.0.0.0

Определяет список идентификаторов IIS веб-серверов, разделенных запятой, для которых должно быть разрешено/запрещено кеширование опкодов. Эта настройка работает в паре с wincache.ocenabled: если wincache.ocenabled установлено в 1, то для серверов, перечисленных в wincache.ocenabledfilter файловое кеширование будет отключено; если wincache.ocenabled установлено как 0, то для серверов, перечисленных в wincache.ocenabledfilter файловое кеширование будет разрешено.
wincache.ocachesize integer
Внимание

Эта опция была УДАЛЕНА в версии 2.0.0.0

Определяет максимальный размер памяти (в мегабайтах) для кеша опкодов. Когда размер всех закешированных опкодов превысит это значение, из кеша будут удалены самые устаревшие из них. Обратите внимание, что кеш опкодов должен быть как минимум в 3 раза больше файлового кеша. Если это не так, то размер кеша опкодов будет автоматически увеличен.
wincache.filecount integer
Определяет, сколько примерно файлов будет закешировано модулем, чтобы при старте был выделен соответствующий кусок памяти. Если количество файлов превысит заданное значение, то WinCache произведет переаллокацию памяти.
wincache.chkinterval integer
Определяет насколько часто (в секундах) модуль будет проверять файлы на предмет их изменения для обновления кешей. Значение 0 отключает данный функционал. Изменения файлов не будут отражены в кеше до тех пор, пока закешированная запись не будет удалена из кеша сборщиком устаревших записей, либо пока не будет переработан пул приложений IIS, либо не будет вызвана функция wincache_refresh_if_changed.
wincache.ttlmax integer
Определяет максимальное время (в секундах) невостребованности для записи в кеше. Установка в 0 отключает процесс удаления устаревших записей, что приведет к тому, что запись будет лежать в кеше пока сервер IIS не будет остановлен.
wincache.enablecli boolean
Определяет, разрешено ли кеширование при работе PHP из командной строки (CLI).
wincache.ignorelist string

Определяет список файлов, которые не нужно кешировать. Указываются только имена файлов. Символ разделитель - вертикальная черта "|".

Пример #1 Пример использования wincache.ignorelist

wincache.ignorelist = "index.php|misc.php|admin.php"

wincache.namesalt string
Определяет строку, которая будет использоваться при именовании объектов, помещаемых в разделяемую память. Это необходимо для предотвращения коллизий, когда несколько процессов работают с разделяемой памятью. Длина данной строки не должна превышать 8 символов.
wincache.ucenabled boolean
Включает/отключает пользовательский кеш.
wincache.ucachesize integer
Определяет максимальный размер памяти (в мегабайтах) для пользовательского кеша. Когда размер всех закешированных переменных превысит это значение, из кеша будут удалены самые устаревшие переменные.
wincache.scachesize integer
Определяет максимальный размер памяти (в мегабайтах) для сессионного кеша. Когда размер всех закешированных данных превысит это значение, из кеша будут удалены самые устаревшие данные.
wincache.rerouteini string
Внимание

Эта опция была УДАЛЕНА в версии 1.3.7. Начиная с 1.3.7. вместо нее используйте wincache.reroute_enabled.

Задает абсолютный или относительный путь к reroute.ini, который содержит список функций PHP, чья реализация должна быть подменена реализацией из модуля WinCache. Если задан относительный путь, то он будет разрешаться относительно местоположения файла php-cgi.exe.
wincache.reroute_enabled boolean
Включает/отключает перенаправление некоторых функций файлового ввода/вывода для работы через файловый кеш.
wincache.srwlocks boolean
Внимание

Эта опция была УДАЛЕНА в версии 2.0.0.0

Включает/отключает использование разделяемых блокировок чтения/записи. Выключение полезно при отладке ситуаций взаимных блокировок в WinCache.
wincache.filemapdir string
Задает абсолютный путь к директории, где WinCache будет держать временные файлы для сегментов разделяемой памяти. Эта директория должна располагаться на локальной машине и ни в коем случае не на сетевой файловой системе. Если директория не указана, то WinCache будет использовать Windows System Page File.


Скрипт статистики WinCache

Установочный пакет WinCache содержит PHP-скрипт, wincache.php, который можно использовать для получения статистики использования кеша.

Если модуль WinCache был установлен с помощью Microsoft Web Platform Installer, то скрипт будет располагаться по пути %SystemDrive%\Program Files\IIS\Windows Cache for PHP\. На 64-разрядных версиях Windows Server, скрипт лежит по пути %SystemDrive%\Program Files (x86)\IIS\Windows Cache for PHP. Если модуль устанавливался самостоятельно, то wincache.php будет лежать в том же каталоге, в который вы распаковывали установочный пакет.

Для использования wincache.php, скопируйте его в корневой калагог веб-сайта или в любой его подкаталог. Для защиты скрипта, откройте его в текстовом редакторе и измените значения констант USERNAME и PASSWORD. Если для аутентификации в IIS используется другой механизм, то следуйте инструкциям в комментариях:

Пример #1 Настройка аутентификации для wincache.php

<?php
/**
 * ======================== CONFIGURATION SETTINGS ==============================
 * If you do not want to use authentication for this page, set USE_AUTHENTICATION to 0.
 * If you use authentication then replace the default password.
 */
define('USE_AUTHENTICATION', 1);
define('USERNAME', 'wincache');
define('PASSWORD', 'wincache');

/**
 * The Basic PHP authentication will work only when IIS is configured to support
 * Anonymous Authentication' and nothing else. If IIS is configured to support/use
 * any other kind of authentication like Basic/Negotiate/Digest etc, this will not work.
 * In that case use the array below to define the names of users in your
 * domain/network/workgroup which you want to grant access to.
 */
$user_allowed = array('DOMAIN\user1', 'DOMAIN\user2', 'DOMAIN\user3');

/**
 * If the array contains string 'all', then all the users authenticated by IIS
 * will have access to the page. Uncomment the below line and comment above line
 * to grant access to all users who gets authenticated by IIS.
 */
/* $user_allowed = array('all'); */

/** ===================== END OF CONFIGURATION SETTINGS ========================== */
?>

Замечание: Всегда защищайте скрипт wincache.php с помощью встроенного механизма, либо с помощью механизма аутентификации веб-сервера. Оставляя доступ к скрипту открытым вы можете скомпрометировать ваше приложение и веб-сервер.


Обработчик сессий WinCache

Обработчик сессий WinCache (доступен с WinCache 1.1.0) может использоваться для хранения данных сессий в кеше в разделяемой памяти. Использование памяти вместо файловой системы поможет улучшить производительность вашего приложения, если оно сохраняет большое количество сессионных данных. Кеш сессий Wincache использует дублирование данных на диске, что позволяет сохранить сессионные данные при пересоздании пула приложений IIS.

Для настройки использования обработчика сессий WinCache измените в файле php.ini настройку session.save_handler на wincache. По умолчанию, для хранения данных сессий используется временная директория Windows. Для изменения пути к сессионному файлу используйте настройку session.save_path.

Пример #1 Включение обработчика сессий WinCache

session.save_handler = wincache
session.save_path = C:\inetpub\temp\session\


Перенаправление функций WinCache

ОБРАТИТЕ ВНИМАНИЕ: wincache.rerouteini удалена в WinCache 1.3.7.0. Она была заменена автоматическим перенаправлением. Смотрите wincache.reroute_enabled.

Перенаправление функций WinCache (доступно с WinCache 1.2.0, удалено с WinCache 1.3.7.0) может использоваться для замены встроенных функций их эквивалентами, оптимизированными для работы с файловым кешем. Модуль WinCache влючает оптимизированные под Windows реализации функций работы с файлами, что может повысить производительность PHP-приложений в случаях работы с файлами и сетевыми папками. Оптимизированные версии представлены для следующих функций:

  • file_exists
  • file_get_contents
  • readfile
  • is_readable
  • is_writable
  • is_dir
  • realpath
  • filesize

Для настройки использования перенаправления в WinCache используется файл reroute.ini, который включен в установочный пакет. Скопируйте этот файл в ту же директорию, где находится php.ini. После этого добавьте в php.ini настройку wincache.rerouteini и укажите абсолютный или относительный путь к reroute.ini.

Пример #1 Включение перенаправления функций в WinCache

wincache.rerouteini = C:\PHP\reroute.ini

Замечание: Если перенаправление функций включено, то рекомендуется увеличить размер файлового кеша WinCache. Его размер настраивается в директиве wincache.fcachesize.

Файл reroute.ini содержит описание привязок встроенных функций PHP к их эквивалентам модуля WinCache. Каждая строка файла определяет привязку с использованием следующего синтаксиса:

<Имя функции PHP>:[<количество параметров функции>]=<имя функции wincache>

Пример файла приведен ниже. В этом примере вызов PHP-функции file_get_contents() подменяется вызовом функции wincache_file_get_contents() только если количество переданных параметров меньше или равно 2. Указание количества параметров полезно если подменяющая функция реализует обработку не всех исходных параметров.

Пример #2 Содержимое файла Reroute.ini

[FunctionRerouteList]
file_exists=wincache_file_exists
file_get_contents:2=wincache_file_get_contents
readfile:2=wincache_readfile
is_readable=wincache_is_readable
is_writable=wincache_is_writable
is_writeable=wincache_is_writable
is_file=wincache_is_file
is_dir=wincache_is_dir
realpath=wincache_realpath
filesize=wincache_filesize


  • « Перенаправление функций WinCache
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


  • « Типы ресурсов
  • Функции WinCache »
  • PHP Manual
  • WinCache
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции WinCache

Содержание

  • wincache_fcache_fileinfo — Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo — Retrieves information about file cache memory usage
  • wincache_lock — Acquires an exclusive lock on a given key
  • wincache_ocache_fileinfo — Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo — Retrieves information about opcode cache memory usage
  • wincache_refresh_if_changed — Refreshes the cache entries for the cached files
  • wincache_rplist_fileinfo — Retrieves information about resolve file path cache
  • wincache_rplist_meminfo — Retrieves information about memory usage by the resolve file path cache
  • wincache_scache_info — Retrieves information about files cached in the session cache
  • wincache_scache_meminfo — Retrieves information about session cache memory usage
  • wincache_ucache_add — Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_cas — Compares the variable with old value and assigns new value to it
  • wincache_ucache_clear — Deletes entire content of the user cache
  • wincache_ucache_dec — Decrements the value associated with the key
  • wincache_ucache_delete — Deletes variables from the user cache
  • wincache_ucache_exists — Checks if a variable exists in the user cache
  • wincache_ucache_get — Gets a variable stored in the user cache
  • wincache_ucache_inc — Increments the value associated with the key
  • wincache_ucache_info — Retrieves information about data stored in the user cache
  • wincache_ucache_meminfo — Retrieves information about user cache memory usage
  • wincache_ucache_set — Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_unlock — Releases an exclusive lock on a given key


Retrieves information about files cached in the file cache

  • « Функции WinCache
  • wincache_fcache_meminfo »
  • PHP Manual
  • Функции WinCache
  • Retrieves information about files cached in the file cache

wincache_fcache_fileinfo

(PECL wincache >= 1.0.0)

wincache_fcache_fileinfo — Retrieves information about files cached in the file cache

Описание

wincache_fcache_fileinfo ([ bool $summaryonly = FALSE ] ) : array

Retrieves information about file cache content and its usage.

Список параметров

summaryonly

Controls whether the returned array will contain information about individual cache entries along with the file cache summary.

Возвращаемые значения

Array of meta data about file cache или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • total_cache_uptime - total time in seconds that the file cache has been active
  • total_file_count - total number of files that are currently in the file cache
  • total_hit_count - number of times the files have been served from the file cache
  • total_miss_count - number of times the files have not been found in the file cache

  • file_entries - an array that contains the information about all the cached files:

    • file_name - absolute file name of the cached file
    • add_time - time in seconds since the file has been added to the file cache
    • use_time - time in seconds since the file has been accessed in the file cache
    • last_check - time in seconds since the file has been checked for modifications
    • hit_count - number of times the file has been served from the cache
    • file_size - size of the cached file in bytes

Примеры

Пример #1 A wincache_fcache_fileinfo() example

<pre>
<?php
print_r(wincache_fcache_fileinfo());
?>
</pre>

Результат выполнения данного примера:

Array
(   [total_cache_uptime] => 3234
    [total_file_count] => 5
    [total_hit_count] => 0
    [total_miss_count] => 1
    [file_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 1
                    [use_time] => 0
                    [last_check] => 1
                    [hit_count] => 1
                    [file_size] => 2435
                )
            [2] => Array (...iterates for each cached file)
        )
)

Смотрите также

  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about file cache memory usage

  • « wincache_fcache_fileinfo
  • wincache_lock »
  • PHP Manual
  • Функции WinCache
  • Retrieves information about file cache memory usage

wincache_fcache_meminfo

(PECL wincache >= 1.0.0)

wincache_fcache_meminfo — Retrieves information about file cache memory usage

Описание

wincache_fcache_meminfo ( void ) : array

Retrieves information about memory usage by file cache.

Возвращаемые значения

Array of meta data about file cache memory usage или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the file cache
  • memory_free - amount of free memory in bytes available for the file cache
  • num_used_blks - number of memory blocks used by the file cache
  • num_free_blks - number of free memory blocks available for the file cache
  • memory_overhead - amount of memory in bytes used for the file cache internal structures

Примеры

Пример #1 A wincache_fcache_meminfo() example

<pre>
<?php
print_r(wincache_fcache_meminfo());
?>
</pre>

Результат выполнения данного примера:

Array
(
    [memory_total] => 134217728
    [memory_free] => 131339120
    [num_used_blks] => 361
    [num_free_blks] => 3
    [memory_overhead] => 5856
)

Смотрите также

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Acquires an exclusive lock on a given key

  • « wincache_fcache_meminfo
  • wincache_ocache_fileinfo »
  • PHP Manual
  • Функции WinCache
  • Acquires an exclusive lock on a given key

wincache_lock

(PECL wincache >= 1.1.0)

wincache_lock — Acquires an exclusive lock on a given key

Описание

wincache_lock ( string $key [, bool $isglobal = FALSE ] ) : bool

Obtains an exclusive lock on a given key. The execution of the current script will be blocked until the lock can be obtained. Once the lock is obtained, the other scripts that try to request the lock by using the same key will be blocked, until the current script releases the lock by using wincache_unlock().

Внимание

Using of the wincache_lock() and wincache_unlock() can cause deadlocks when executing PHP scripts in a multi-process environment like FastCGI. Do not use these functions unless you are absolutely sure you need to use them. For the majority of the operations on the user cache it is not necessary to use these functions.

Список параметров

key

Name of the key in the cache to get the lock on.

isglobal

Controls whether the scope of the lock is system-wide or local. Local locks are scoped to the application pool in IIS FastCGI case or to all php processes that have the same parent process identifier.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Using wincache_lock()

<?php
$fp = fopen("/tmp/lock.txt", "r+");
if (wincache_lock("lock_txt_lock")) { // do an exclusive lock
    ftruncate($fp, 0); // truncate file
    fwrite($fp, "Write something here\n");
    wincache_unlock("lock_txt_lock"); // release the lock
} else {
    echo "Couldn't get the lock!";
}
fclose($fp);
?>

Смотрите также

  • wincache_unlock() - Releases an exclusive lock on a given key
  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache


Retrieves information about files cached in the opcode cache

  • « wincache_lock
  • wincache_ocache_meminfo »
  • PHP Manual
  • Функции WinCache
  • Retrieves information about files cached in the opcode cache

wincache_ocache_fileinfo

(PECL wincache >= 1.0.0)

wincache_ocache_fileinfo — Retrieves information about files cached in the opcode cache

Описание

wincache_ocache_fileinfo ([ bool $summaryonly = FALSE ] ) : array

Retrieves information about opcode cache content and its usage.

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Список параметров

summaryonly

Controls whether the returned array will contain information about individual cache entries along with the opcode cache summary.

Возвращаемые значения

Array of meta data about opcode cache или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • total_cache_uptime - total time in seconds that the opcode cache has been active
  • total_file_count - total number of files that are currently in the opcode cache
  • total_hit_count - number of times the compiled opcode have been served from the cache
  • total_miss_count - number of times the compiled opcode have not been found in the cache
  • is_local_cache - true is the cache metadata is for a local cache instance, false if the metadata is for the global cache

  • file_entries - an array that contains the information about all the cached files:

    • file_name - absolute file name of the cached file
    • add_time - time in seconds since the file has been added to the opcode cache
    • use_time - time in seconds since the file has been accessed in the opcode cache
    • last_check - time in seconds since the file has been checked for modifications
    • hit_count - number of times the file has been served from the cache
    • function_count - number of functions in the cached file
    • class_count - number of classes in the cached file

Примеры

Пример #1 A wincache_ocache_fileinfo() example

<pre>
<?php
print_r(wincache_ocache_fileinfo());
?>
</pre>

Результат выполнения данного примера:

Array
(
    [total_cache_uptime] => 17357
    [total_file_count] => 121
    [total_hit_count] => 36562
    [total_miss_count] => 201
    [file_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 17356
                    [use_time] => 7
                    [last_check] => 10
                    [hit_count] => 454
                    [function_count] => 0
                    [class_count] => 1
                )
            [2] => Array (...iterates for each cached file)
        )
)

Смотрите также

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about opcode cache memory usage

  • « wincache_ocache_fileinfo
  • wincache_refresh_if_changed »
  • PHP Manual
  • Функции WinCache
  • Retrieves information about opcode cache memory usage

wincache_ocache_meminfo

(PECL wincache >= 1.0.0)

wincache_ocache_meminfo — Retrieves information about opcode cache memory usage

Описание

wincache_ocache_meminfo ( void ) : array

Retrieves information about memory usage by opcode cache.

Возвращаемые значения

Array of meta data about opcode cache memory usage или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the opcode cache
  • memory_free - amount of free memory in bytes available for the opcode cache
  • num_used_blks - number of memory blocks used by the opcode cache
  • num_free_blks - number of free memory blocks available for the opcode cache
  • memory_overhead - amount of memory in bytes used for the opcode cache internal structures

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Примеры

Пример #1 A wincache_ocache_meminfo() example

<pre>
<?php
print_r(wincache_ocache_meminfo());
?>
</pre>

Результат выполнения данного примера:

Array
(
    [memory_total] => 134217728
    [memory_free] => 112106972
    [num_used_blks] => 15469
    [num_free_blks] => 4
    [memory_overhead] => 247600
)

Смотрите также

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Refreshes the cache entries for the cached files

  • « wincache_ocache_meminfo
  • wincache_rplist_fileinfo »
  • PHP Manual
  • Функции WinCache
  • Refreshes the cache entries for the cached files

wincache_refresh_if_changed

(PECL wincache >= 1.0.0)

wincache_refresh_if_changed — Refreshes the cache entries for the cached files

Описание

wincache_refresh_if_changed ([ array $files = NULL ] ) : bool

Refreshes the cache entries for the files, whose names were passed in the input argument. If no argument is specified then refreshes all the entries in the cache.

Список параметров

files

An array of file names for files that need to be refreshed. An absolute or relative file paths can be used.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

WinCache performs regular checks on the cached files to ensure that if any file has changed then the corresponding entry in the cache is updated. By default this check is performed every 30 seconds. If, for example, a PHP script updates another PHP script where the application's configuration settings are stored, then it may happen that after the configuration settings have been saved to a file, the application is still using old settings for some time until the cache is refreshed. In those cases it may be preferrable to refresh the cache right after the file has been changed. The following example shows how this can be done.

Пример #1 A wincache_refresh_if_changed() example

<?php
$filename = 'C:\inetpub\wwwroot\config.php';
$handle = fopen($filename, 'w+');
if ($handle === FALSE) die('Failed to open file '.$filename.' for writing');
fwrite($handle, '<?php $setting=something; ?>');
fclose($handle);
wincache_refresh_if_changed(array($filename));
?>

Смотрите также

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache


Retrieves information about resolve file path cache

  • « wincache_refresh_if_changed
  • wincache_rplist_meminfo »
  • PHP Manual
  • Функции WinCache
  • Retrieves information about resolve file path cache

wincache_rplist_fileinfo

(PECL wincache >= 1.0.0)

wincache_rplist_fileinfo — Retrieves information about resolve file path cache

Описание

wincache_rplist_fileinfo ([ bool $summaryonly = FALSE ] ) : array

Retrieves information about cached mappings between relative file paths and corresponding absolute file paths.

Возвращаемые значения

Array of meta data about the resolve file path cache или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • total_file_count - total number of file path mappings stored in the cache

  • rplist_entries - an array that contains the information about all the cached file paths:

    • resolve_path - path to a file
    • subkey_data - corresponding absolute path to a file

Примеры

Пример #1 A wincache_rplist_fileinfo() example

<pre>
<?php
print_r(wincache_rplist_fileinfo());
?>
</pre>

Результат выполнения данного примера:

Array
(
    [total_file_count] => 5
    [rplist_entries] => Array
        (
            [1] => Array
                (
                    [resolve_path] => checkcache.php
                    [subkey_data] => c:\inetpub\wwwroot|c:\inetpub\wwwroot\checkcache.php
                )

            [2] => Array (...iterates for each cached file)
        )
)

Смотрите также

  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about memory usage by the resolve file path cache

  • « wincache_rplist_fileinfo
  • wincache_scache_info »
  • PHP Manual
  • Функции WinCache
  • Retrieves information about memory usage by the resolve file path cache

wincache_rplist_meminfo

(PECL wincache >= 1.0.0)

wincache_rplist_meminfo — Retrieves information about memory usage by the resolve file path cache

Описание

wincache_rplist_meminfo ( void ) : array

Retrieves information about memory usage by resolve file path cache.

Возвращаемые значения

Array of meta data that describes memory usage by resolve file path cache. или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the resolve file path cache
  • memory_free - amount of free memory in bytes available for the resolve file path cache
  • num_used_blks - number of memory blocks used by the resolve file path cache
  • num_free_blks - number of free memory blocks available for the resolve file path cache
  • memory_overhead - amount of memory in bytes used for the internal structures of resolve file path cache

Примеры

Пример #1 A wincache_rplist_meminfo() example

<pre>
<?php
print_r(wincache_rplist_meminfo());
?>
</pre>

Результат выполнения данного примера:

Array
(
    [memory_total] => 9437184
    [memory_free] => 9416744
    [num_used_blks] => 23
    [num_free_blks] => 1
    [memory_overhead] => 416
)

Смотрите также

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about files cached in the session cache

  • « wincache_rplist_meminfo
  • wincache_scache_meminfo »
  • PHP Manual
  • Функции WinCache
  • Retrieves information about files cached in the session cache

wincache_scache_info

(PECL wincache >= 1.1.0)

wincache_scache_info — Retrieves information about files cached in the session cache

Описание

wincache_scache_info ([ bool $summaryonly = FALSE ] ) : array

Retrieves information about session cache content and its usage.

Список параметров

summaryonly

Controls whether the returned array will contain information about individual cache entries along with the session cache summary.

Возвращаемые значения

Array of meta data about session cache или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • total_cache_uptime - total time in seconds that the session cache has been active
  • total_item_count - total number of elements that are currently in the session cache
  • is_local_cache - true is the cache metadata is for a local cache instance, false if the metadata is for the global cache
  • total_hit_count - number of times the data has been served from the cache
  • total_miss_count - number of times the data has not been found in the cache

  • scache_entries - an array that contains the information about all the cached items:

    • key_name - name of the key which is used to store the data
    • value_type - type of value stored by the key
    • use_time - time in seconds since the file has been accessed in the opcode cache
    • last_check - time in seconds since the file has been checked for modifications
    • ttl_seconds - time remaining for the data to live in the cache, 0 meaning infinite
    • age_seconds - time elapsed from the time data has been added in the cache
    • hitcount - number of times data has been served from the cache

Примеры

Пример #1 A wincache_scache_info() example

<pre>
<?php
print_r(wincache_scache_info());
?>
</pre>

Результат выполнения данного примера:

Array
(
    [total_cache_uptime] => 17357
    [total_file_count] => 121
    [total_hit_count] => 36562
    [total_miss_count] => 201
    [scache_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 17356
                    [use_time] => 7
                    [last_check] => 10
                    [hit_count] => 454
                    [function_count] => 0
                    [class_count] => 1
                )
            [2] => Array (...iterates for each cached file)
        )
)

Смотрите также

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about session cache memory usage

  • « wincache_scache_info
  • wincache_ucache_add »
  • PHP Manual
  • Функции WinCache
  • Retrieves information about session cache memory usage

wincache_scache_meminfo

(PECL wincache >= 1.1.0)

wincache_scache_meminfo — Retrieves information about session cache memory usage

Описание

wincache_scache_meminfo ( void ) : array

Retrieves information about memory usage by session cache.

Возвращаемые значения

Array of meta data about session cache memory usage или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the session cache
  • memory_free - amount of free memory in bytes available for the session cache
  • num_used_blks - number of memory blocks used by the session cache
  • num_free_blks - number of free memory blocks available for the session cache
  • memory_overhead - amount of memory in bytes used for the session cache internal structures

Примеры

Пример #1 A wincache_scache_meminfo() example

<pre>
<?php
print_r(wincache_scache_meminfo());
?>
</pre>

Результат выполнения данного примера:

Array
(
    [memory_total] => 5242880
    [memory_free] => 5215056
    [num_used_blks] => 6
    [num_free_blks] => 3
    [memory_overhead] => 176
)

Смотрите также

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache


Adds a variable in user cache only if variable does not already exist in the cache

  • « wincache_scache_meminfo
  • wincache_ucache_cas »
  • PHP Manual
  • Функции WinCache
  • Adds a variable in user cache only if variable does not already exist in the cache

wincache_ucache_add

(PECL wincache >= 1.1.0)

wincache_ucache_add — Adds a variable in user cache only if variable does not already exist in the cache

Описание

wincache_ucache_add ( string $key , mixed $value [, int $ttl = 0 ] ) : bool
wincache_ucache_add ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] ) : bool

Adds a variable in user cache, only if this variable doesn't already exist in the cache. The added variable remains in the user cache unless its time to live expires or it is deleted by using wincache_ucache_delete() or wincache_ucache_clear() functions.

Список параметров

key

Store the variable using this key name. If a variable with same key is already present the function will fail and return FALSE. key is case sensitive. To override the value even if key is present use wincache_ucache_set() function instad. key can also take array of name => value pairs where names will be used as keys. This can be used to add multiple values in the cache in one operation, thus avoiding race condition.

value

Value of a variable to store. Value supports all data types except resources, such as file handles. This paramter is ignored if first argument is an array. A general guidance is to pass NULL as value while using array as key. If value is an object, or an array containing objects, then the objects will be serialized. See __sleep() for details on serializing objects.

values

Associative array of keys and values.

ttl

Time for the variable to live in the cache in seconds. After the value specified in ttl has passed the stored variable will be deleted from the cache. This parameter takes a default value of 0 which means the variable will stay in the cache unless explicitly deleted by using wincache_ucache_delete() or wincache_ucache_clear() functions.

Возвращаемые значения

If key is string, the function returns TRUE on success and FALSE on failure.

If key is an array, the function returns:

  • If all the name => value pairs in the array can be set, function returns an empty array;
  • If all the name => value pairs in the array cannot be set, function returns FALSE;
  • If some can be set while others cannot, function returns an array with name=>value pair for which the addition failed in the user cache.

Примеры

Пример #1 wincache_ucache_add() with key as a string

<?php
$bar = 'BAR';
var_dump(wincache_ucache_add('foo', $bar));
var_dump(wincache_ucache_add('foo', $bar));
var_dump(wincache_ucache_get('foo'));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
string(3) "BAR"

Пример #2 wincache_ucache_add() with key as an array

<?php
$colors_array = array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_get('Blue'));
?>

Результат выполнения данного примера:

array(0) { }
array(4) {
  ["green"]=> int(-1)
  ["Blue"]=> int(-1)
  ["yellow"]=> int(-1)
  ["cyan"]=> int(-1)
}
string(1) "6"

Смотрите также

  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • __sleep()


Compares the variable with old value and assigns new value to it

  • « wincache_ucache_add
  • wincache_ucache_clear »
  • PHP Manual
  • Функции WinCache
  • Compares the variable with old value and assigns new value to it

wincache_ucache_cas

(PECL wincache >= 1.1.0)

wincache_ucache_cas — Compares the variable with old value and assigns new value to it

Описание

wincache_ucache_cas ( string $key , int $old_value , int $new_value ) : bool

Compares the variable associated with the key with old_value and if it matches then assigns the new_value to it.

Список параметров

key

The key that is used to store the variable in the cache. key is case sensitive.

old_value

Old value of the variable pointed by key in the user cache. The value should be of type long, otherwise the function returns FALSE.

new_value

New value which will get assigned to variable pointer by key if a match is found. The value should be of type long, otherwise the function returns FALSE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Using wincache_ucache_cas()

<?php
wincache_ucache_set('counter', 2922);
var_dump(wincache_ucache_cas('counter', 2922, 1));
var_dump(wincache_ucache_get('counter'));
?>

Результат выполнения данного примера:

bool(true)
int(1)

Смотрите также

  • wincache_ucache_inc() - Increments the value associated with the key
  • wincache_ucache_dec() - Decrements the value associated with the key


Deletes entire content of the user cache

  • « wincache_ucache_cas
  • wincache_ucache_dec »
  • PHP Manual
  • Функции WinCache
  • Deletes entire content of the user cache

wincache_ucache_clear

(PECL wincache >= 1.1.0)

wincache_ucache_clear — Deletes entire content of the user cache

Описание

wincache_ucache_clear ( void ) : bool

Clears/deletes all the values stored in the user cache.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 using wincache_ucache_clear()

<?php
wincache_ucache_set('green', 1);
wincache_ucache_set('red', 2);
wincache_ucache_set('orange', 4);
wincache_ucache_set('blue', 8);
wincache_ucache_set('cyan', 16);
$array1 = array('green', 'red', 'orange', 'blue', 'cyan');
var_dump(wincache_ucache_get($array1));
var_dump(wincache_ucache_clear());
var_dump(wincache_ucache_get($array1));
?>

Результат выполнения данного примера:

array(5) { ["green"]=> int(1)
           ["red"]=> int(2)
           ["orange"]=> int(4)
           ["blue"]=> int(8)
           ["cyan"]=> int(16) }
bool(true)
bool(false)

Смотрите также

  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache


Decrements the value associated with the key

  • « wincache_ucache_clear
  • wincache_ucache_delete »
  • PHP Manual
  • Функции WinCache
  • Decrements the value associated with the key

wincache_ucache_dec

(PECL wincache >= 1.1.0)

wincache_ucache_dec — Decrements the value associated with the key

Описание

wincache_ucache_dec ( string $key [, int $dec_by = 1 [, bool &$success ]] ) : mixed

Decrements the value associated with the key by 1 or as specified by dec_by.

Список параметров

key

The key that was used to store the variable in the cache. key is case sensitive.

dec_by

The value by which the variable associated with the key will get decremented. If the argument is a floating point number it will be truncated to nearest integer. The variable associated with the key should be of type long, otherwise the function fails and returns FALSE.

success

Will be set to TRUE on success and FALSE on failure.

Возвращаемые значения

Returns the decremented value on success and FALSE on failure.

Примеры

Пример #1 Using wincache_ucache_dec()

<?php
wincache_ucache_set('counter', 1);
var_dump(wincache_ucache_dec('counter', 2923, $success));
var_dump($success);
?>

Результат выполнения данного примера:

int(2922)
bool(true)

Смотрите также

  • wincache_ucache_inc() - Increments the value associated with the key
  • wincache_ucache_cas() - Compares the variable with old value and assigns new value to it


Deletes variables from the user cache

  • « wincache_ucache_dec
  • wincache_ucache_exists »
  • PHP Manual
  • Функции WinCache
  • Deletes variables from the user cache

wincache_ucache_delete

(PECL wincache >= 1.1.0)

wincache_ucache_delete — Deletes variables from the user cache

Описание

wincache_ucache_delete ( mixed $key ) : bool

Deletes the elements in the user cache pointed by key.

Список параметров

key

The key that was used to store the variable in the cache. key is case sensitive. key can be an array of keys.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

If key is an array then the function returns FALSE if every element of the array fails to get deleted from the user cache, otherwise returns an array which consists of all the keys that are deleted.

Примеры

Пример #1 Using wincache_ucache_delete() with key as a string

<?php
wincache_ucache_set('foo', 'bar');
var_dump(wincache_ucache_delete('foo'));
var_dump(wincache_ucache_exists('foo'));
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Пример #2 Usingwincache_ucache_delete() with key as an array

<?php
$array1 = array('green' => '5', 'blue' => '6', 'yellow' => '7', 'cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('green', 'blue', 'yellow', 'cyan');
var_dump(wincache_ucache_delete($array2));
?>

Результат выполнения данного примера:

array(4) { [0]=> string(5) "green"
           [1]=> string(4) "Blue"
           [2]=> string(6) "yellow"
           [3]=> string(4) "cyan" }

Пример #3 Using wincache_ucache_delete() with key as an array where some elements cannot be deleted

<?php
$array1 = array('green' => '5', 'blue' => '6', 'yellow' => '7', 'cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('orange', 'red', 'yellow', 'cyan');
var_dump(wincache_ucache_delete($array2));
?>

Результат выполнения данного примера:

array(2) { [0]=> string(6) "yellow"
           [1]=> string(4) "cyan" }

Смотрите также

  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache


Checks if a variable exists in the user cache

  • « wincache_ucache_delete
  • wincache_ucache_get »
  • PHP Manual
  • Функции WinCache
  • Checks if a variable exists in the user cache

wincache_ucache_exists

(PECL wincache >= 1.1.0)

wincache_ucache_exists — Checks if a variable exists in the user cache

Описание

wincache_ucache_exists ( string $key ) : bool

Checks if a variable with the key exists in the user cache or not.

Список параметров

key

The key that was used to store the variable in the cache. key is case sensitive.

Возвращаемые значения

Returns TRUE if variable with the key exitsts, otherwise returns FALSE.

Примеры

Пример #1 Using wincache_ucache_exists()

<?php
if (!wincache_ucache_exists('green'))
    wincache_ucache_set('green', 1);
var_dump(wincache_ucache_exists('green'));
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache


Gets a variable stored in the user cache

  • « wincache_ucache_exists
  • wincache_ucache_inc »
  • PHP Manual
  • Функции WinCache
  • Gets a variable stored in the user cache

wincache_ucache_get

(PECL wincache >= 1.1.0)

wincache_ucache_get — Gets a variable stored in the user cache

Описание

wincache_ucache_get ( mixed $key [, bool &$success ] ) : mixed

Gets a variable stored in the user cache.

Список параметров

key

The key that was used to store the variable in the cache. key is case sensitive. key can be an array of keys. In this case the return value will be an array of values of each element in the key array. If an object, or an array containing objects, is returned, then the objects will be unserialized. See __wakeup() for details on unserializing objects.

success

Will be set to TRUE on success and FALSE on failure.

Возвращаемые значения

If key is a string, the function returns the value of the variable stored with that key. The success is set to TRUE on success and to FALSE on failure.

The key is an array, the parameter success is always set to TRUE. The returned array (name => value pairs) will contain only those name => value pairs for which the get operation in user cache was successful. If none of the keys in the key array finds a match in the user cache an empty array will be returned.

Примеры

Пример #1 wincache_ucache_get() with key as a string

<?php
wincache_ucache_add('color', 'blue');
var_dump(wincache_ucache_get('color', $success));
var_dump($success);
?>

Результат выполнения данного примера:

string(4) "blue"
bool(true)

Пример #2 wincache_ucache_get() with key as an array

<?php
$array1 = array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('green', 'Blue', 'yellow', 'cyan');
var_dump(wincache_ucache_get($array2, $success));
var_dump($success);
?>

Результат выполнения данного примера:

array(4) { ["green"]=> string(1) "5"
           ["Blue"]=> string(1) "6"
           ["yellow"]=> string(1) "7"
           ["cyan"]=> string(1) "8" }
bool(true)

Смотрите также

  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • __wakeup()


Increments the value associated with the key

  • « wincache_ucache_get
  • wincache_ucache_info »
  • PHP Manual
  • Функции WinCache
  • Increments the value associated with the key

wincache_ucache_inc

(PECL wincache >= 1.1.0)

wincache_ucache_inc — Increments the value associated with the key

Описание

wincache_ucache_inc ( string $key [, int $inc_by = 1 [, bool &$success ]] ) : mixed

Increments the value associated with the key by 1 or as specified by inc_by.

Список параметров

key

The key that was used to store the variable in the cache. key is case sensitive.

inc_by

The value by which the variable associated with the key will get incremented. If the argument is a floating point number it will be truncated to nearest integer. The variable associated with the key should be of type long, otherwise the function fails and returns FALSE.

success

Will be set to TRUE on success and FALSE on failure.

Возвращаемые значения

Returns the incremented value on success and FALSE on failure.

Примеры

Пример #1 Using wincache_ucache_inc()

<?php
wincache_ucache_set('counter', 1);
var_dump(wincache_ucache_inc('counter', 2921, $success));
var_dump($success);
?>

Результат выполнения данного примера:

int(2922)
bool(true)

Смотрите также

  • wincache_ucache_dec() - Decrements the value associated with the key
  • wincache_ucache_cas() - Compares the variable with old value and assigns new value to it


Retrieves information about data stored in the user cache

  • « wincache_ucache_inc
  • wincache_ucache_meminfo »
  • PHP Manual
  • Функции WinCache
  • Retrieves information about data stored in the user cache

wincache_ucache_info

(PECL wincache >= 1.1.0)

wincache_ucache_info — Retrieves information about data stored in the user cache

Описание

wincache_ucache_info ([ bool $summaryonly = FALSE [, string $key = NULL ]] ) : array

Retrieves information about data stored in the user cache.

Список параметров

summaryonly

Controls whether the returned array will contain information about individual cache entries along with the user cache summary.

key

The key of an entry in the user cache. If specified then the returned array will contain information only about that cache entry. If not specified and summaryonly is set to FALSE then the returned array will contain information about all entries in the cache.

Возвращаемые значения

Array of meta data about user cache или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • total_cache_uptime - total time in seconds that the user cache has been active
  • total_item_count - total number of elements that are currently in the user cache
  • is_local_cache - true is the cache metadata is for a local cache instance, false if the metadata is for the global cache
  • total_hit_count - number of times the data has been served from the cache
  • total_miss_count - number of times the data has not been found in the cache

  • ucache_entries - an array that contains the information about all the cached items:

    • key_name - name of the key which is used to store the data
    • value_type - type of value stored by the key
    • use_time - time in seconds since the file has been accessed in the opcode cache
    • last_check - time in seconds since the file has been checked for modifications
    • is_session - indicates if the data is a session variable
    • ttl_seconds - time remaining for the data to live in the cache, 0 meaning infinite
    • age_seconds - time elapsed from the time data has been added in the cache
    • hitcount - number of times data has been served from the cache

Примеры

Пример #1 Using wincache_ucache_info()

<?php
wincache_ucache_get('green');
wincache_ucache_set('green', 2922);
wincache_ucache_get('green');
wincache_ucache_get('green');
wincache_ucache_get('green');
print_r(wincache_ucache_info());
?>

Результат выполнения данного примера:

Array
( ["total_cache_uptime"] => int(0)
  ["is_local_cache"] => bool(false)
  ["total_item_count"] => int(1)
  ["total_hit_count"] => int(3)
  ["total_miss_count"] => int(1)
  ["ucache_entries"] => Array(1)
    ( [1] => Array(6)
      (
        ["key_name"] => string(5) "green"
        ["value_type"] => string(4) "long"
        ["is_session"] => int(0)
        ["ttl_seconds"] => int(0)
        ["age_seconds"] => int(0)
        ["hitcount"] => int(3)
       )
    )
)

Смотрите также

  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about user cache memory usage

  • « wincache_ucache_info
  • wincache_ucache_set »
  • PHP Manual
  • Функции WinCache
  • Retrieves information about user cache memory usage

wincache_ucache_meminfo

(PECL wincache >= 1.1.0)

wincache_ucache_meminfo — Retrieves information about user cache memory usage

Описание

wincache_ucache_meminfo ( void ) : array

Retrieves information about memory usage by user cache.

Возвращаемые значения

Array of meta data about user cache memory usage или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the user cache
  • memory_free - amount of free memory in bytes available for the user cache
  • num_used_blks - number of memory blocks used by the user cache
  • num_free_blks - number of free memory blocks available for the user cache
  • memory_overhead - amount of memory in bytes used for the user cache internal structures

Примеры

Пример #1 A wincache_ucache_meminfo() example

<pre>
<?php
print_r(wincache_ucache_meminfo());
?>
</pre>

Результат выполнения данного примера:

Array
(
    [memory_total] => 5242880
    [memory_free] => 5215056
    [num_used_blks] => 6
    [num_free_blks] => 3
    [memory_overhead] => 176
)

Смотрите также

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Adds a variable in user cache and overwrites a variable if it already exists in the cache

  • « wincache_ucache_meminfo
  • wincache_unlock »
  • PHP Manual
  • Функции WinCache
  • Adds a variable in user cache and overwrites a variable if it already exists in the cache

wincache_ucache_set

(PECL wincache >= 1.1.0)

wincache_ucache_set — Adds a variable in user cache and overwrites a variable if it already exists in the cache

Описание

wincache_ucache_set ( mixed $key , mixed $value [, int $ttl = 0 ] ) : bool
wincache_ucache_set ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] ) : bool

Adds a variable in user cache. Overwrites a variable if it already exists in the cache. The added or updated variable remains in the user cache unless its time to live expires or it is deleted by using wincache_ucache_delete() or wincache_ucache_clear() functions.

Список параметров

key

Store the variable using this key name. If a variable with same key is already present the function will overwrite the previous value with the new one. key is case sensitive. key can also take array of name => value pairs where names will be used as keys. This can be used to add multiple values in the cache in one operation, thus avoiding race condition.

value

Value of a variable to store. Value supports all data types except resources, such as file handles. This paramter is ignored if first argument is an array. A general guidance is to pass NULL as value while using array as key. If value is an object, or an array containing objects, then the objects will be serialized. See __sleep() for details on serializing objects.

values

Associative array of keys and values.

ttl

Time for the variable to live in the cache in seconds. After the value specified in ttl has passed the stored variable will be deleted from the cache. This parameter takes a default value of 0 which means the variable will stay in the cache unless explicitly deleted by using wincache_ucache_delete() or wincache_ucache_clear() functions.

Возвращаемые значения

If key is string, the function returns TRUE on success and FALSE on failure.

If key is an array, the function returns:

  • If all the name => value pairs in the array can be set, function returns an empty array;
  • If all the name => value pairs in the array cannot be set, function returns FALSE;
  • If some can be set while others cannot, function returns an array with name=>value pair for which the addition failed in the user cache.

Примеры

Пример #1 wincache_ucache_set() with key as a string

<?php
$bar = 'BAR';
var_dump(wincache_ucache_set('foo', $bar));
var_dump(wincache_ucache_get('foo'));
$bar1 = 'BAR1';
var_dump(wincache_ucache_set('foo', $bar1));
var_dump(wincache_ucache_get('foo'));
?>

Результат выполнения данного примера:

bool(true)
string(3) "BAR"
bool(true)
string(3) "BAR1"

Пример #2 wincache_ucache_set() with key as an array

<?php
$colors_array = array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
var_dump(wincache_ucache_set($colors_array));
var_dump(wincache_ucache_set($colors_array));
var_dump(wincache_ucache_get('Blue'));
?>

Результат выполнения данного примера:

array(0) {}
array(0) {}
string(1) "6"

Смотрите также

  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • __sleep()


Releases an exclusive lock on a given key

  • « wincache_ucache_set
  • Сборка для Windows »
  • PHP Manual
  • Функции WinCache
  • Releases an exclusive lock on a given key

wincache_unlock

(PECL wincache >= 1.1.0)

wincache_unlock — Releases an exclusive lock on a given key

Описание

wincache_unlock ( string $key ) : bool

Releases an exclusive lock that was obtained on a given key by using wincache_lock(). If any other process was blocked waiting for the lock on this key, that process will be able to obtain the lock.

Внимание

Using of the wincache_lock() and wincache_unlock() can cause deadlocks when executing PHP scripts in a multi-process environment like FastCGI. Do not use these functions unless you are absolutely sure you need to use them. For the majority of the operations on the user cache it is not necessary to use these functions.

Список параметров

key

Name of the key in the cache to release the lock on.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Using wincache_unlock()

<?php
$fp = fopen("/tmp/lock.txt", "r+");
if (wincache_lock("lock_txt_lock")) { // do an exclusive lock
    ftruncate($fp, 0); // truncate file
    fwrite($fp, "Write something here\n");
    wincache_unlock("lock_txt_lock"); // release the lock
} else {
    echo "Couldn't get the lock!";
}
fclose($fp);
?>

Смотрите также

  • wincache_lock() - Acquires an exclusive lock on a given key
  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache


  • « wincache_unlock
  • Пререквизиты »
  • PHP Manual
  • WinCache
  • Сборка для Windows

Сборка для Windows

Содержание

  • Пререквизиты
  • Компиляция и сборка
  • Проверка сборки


Пререквизиты

Для сборки модуля WinCache требуется:

  1. Исходный код PHP
  2. Окружение сборки PHP
  3. Исходный код WinCache

Первые два пункта полностью покрываются статьей руководства » сборка PHP под Windows.

Получение исходного кода WinCache описано в разделе Скачивание PECL-модулей.


Компиляция и сборка

Следующие шаги описывают, как компилировать и собирать WinCache под Windows OS:

  1. Откройке консоль командной строки

  2. Перейдите в папку с исходными кодами PHP

  3. Выполните команду:

    cscript.exe win32\build\buildconf.js

  4. Выполните команду:

    configure.bat --help
    Вывод будет содержать новый флаг --enable-wincache.

  5. Выполните команду:

    configure.js [все опции для сборки PHP] --enable-wincache
    --enable-wincache это единственная дополнительная опция, которая требуется для правильной сборки модуля WinCache. Эта опция соберет WinCache и будет статически связывать его с PHP dll. Чтобы создать модуль WinCache в качестве автономной библиотеки DLL, используйте параметр --enable-wincache=shared.

  6. Выполните команду:

    nmake


Проверка сборки

Следующие шаги описывают процесс проверки того, что модуль был собран корректно:

  1. Перейдите в папку, где находится скомпилированный PHP

  2. Выполните команду:

    php.exe -n -d extension=php_wincache.dll -re wincache
    Если модуль собран правильно, в выводе этой команды будут показаны INI-директивы и функции поддерживаемые WinCache.


Hierarchical Profiler

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции Xhprof
    • xhprof_disable — Останавливает профилирование xhprof
    • xhprof_enable — Запуск профилирования xhprof
    • xhprof_sample_disable — Остановить сэмплирующие профилирование xhprof
    • xhprof_sample_enable — Запуск сэмплирующего режима профилирования XHProf


Введение

XHProf — это легковесный профайлер основанный на иерархии и инструментировании. В процессе сбора данных он отслеживает количество вызовов и инклюзивные метрики рёбер динамического графа вызовов программы. Эксклюзивные метрики, такие как затраченное время, время CPU и потребление памяти, расчитываются в фазе репортинга/постпроцессинга. Профилирование функции может быть сломано вызывающими или вызываемыми функциями. XHProf отслеживает рекурсивные функции путём анализа циклов в графе вызовов в момент сбора данных и избегает зацикленности путём назначения уникальных имён на основе глубины для рекурсивных вызовов.

XHProf содержит простой HTML интерфейс (написанный на PHP). UI на основе браузера сильно облегчает просмотр результатов и пересылку их всем желающим. Также поддерживается графическое отображение графа вызовов.

Отчёты XHProf часто полезны для анализа структуры запускаемого кода. Иерархическая структура отчётов позволяет определить, к примеру, цепочку вызовов, приведшую к вызову конкретной функции.

XHProf поддерживает сравнение двух разных запусков ("diff") или аггрегацию данных нескольких запусков. Сравнительные и аггрегированные отчёты, также как одиночные, предоставляют как "плоские", так и "иерархические" взгляды на результаты профилирования.

Дополнительная документация доступна на сайте » facebook xhprof.


Требования

В целом не требуется, так как xhprof включает интерфейс, написанный на PHP. Он используется для сохранения и отображения результатов профилирования в удобнов виде в браузере. Таким образом, включение встроенного в PHP веб-сервера позволит использовать xprof максимально продуктивно.

Также существует форк GUI интерфейса - » http://github.com/preinheimer/xhprof


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/xhprof


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Xhprof
Имя | По умолчанию | Место изменения | Список изменений
xhprof.output_dir | "" | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

xhprof.output_dir string

Директория используемая реализацией интерфейса iXHProfRuns по умолчанию (класс XHProfRuns_Default) для сохранения результатов профилирования.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

XHPROF_FLAGS_NO_BUILTINS (integer)
Используется для исключения профилирования встроенных функций.
XHPROF_FLAGS_CPU (integer)
Используется для добавления в отчёт информации по профилированию CPU.
XHPROF_FLAGS_MEMORY (integer)
Используется для добавления в отчёт информации по профилированию памяти.


Примеры

Пример #1 Примеры использования Xhprof, опционально с GUI

В этом примере профайлер запускается, останавливается и использует встроенный GUI интерфейс для сохранения и разбора результатов. Другими словами, исполнение кода модуля завершается на функции xhprof_disable().

<?php
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);

for ($i = 0; $i <= 1000; $i++) {
    $a = $i * $i;
}

$xhprof_data = xhprof_disable();

$XHPROF_ROOT = "/tools/xhprof/";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";

$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_testing");

echo "http://localhost/xhprof/xhprof_html/index.php?run={$run_id}&source=xhprof_testing\n";

?>

Результатом выполнения данного примера будет что-то подобное:

http://localhost/xhprof/xhprof_html/index.php?run=t11_4bdf44d21121f&source=xhprof_testing


Функции Xhprof

Содержание

  • xhprof_disable — Останавливает профилирование xhprof
  • xhprof_enable — Запуск профилирования xhprof
  • xhprof_sample_disable — Остановить сэмплирующие профилирование xhprof
  • xhprof_sample_enable — Запуск сэмплирующего режима профилирования XHProf


Останавливает профилирование xhprof

  • « Функции Xhprof
  • xhprof_enable »
  • PHP Manual
  • Функции Xhprof
  • Останавливает профилирование xhprof

xhprof_disable

(PECL xhprof >= 0.9.0)

xhprof_disable — Останавливает профилирование xhprof

Описание

xhprof_disable ( void ) : array

Останавливает профилирование и возвращает собранные данные.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив с результатами профилирования.

Примеры

Пример #1 Пример использования xhprof_disable()

<?php
xhprof_enable();

$foo = strlen("foo bar");

$xhprof_data = xhprof_disable();

print_r($xhprof_data);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [main()==>strlen] => Array
        (
            [ct] => 1
            [wt] => 279
        )

    [main()==>xhprof_disable] => Array
        (
            [ct] => 1
            [wt] => 9
        )

    [main()] => Array
        (
            [ct] => 1
            [wt] => 610
        )

)


Запуск профилирования xhprof

  • « xhprof_disable
  • xhprof_sample_disable »
  • PHP Manual
  • Функции Xhprof
  • Запуск профилирования xhprof

xhprof_enable

(PECL xhprof >= 0.9.0)

xhprof_enable — Запуск профилирования xhprof

Описание

xhprof_enable ([ int $flags = 0 [, array $options ]] ) : void

Запускает профилирование.

Список параметров

flags

Необязательные флаги для получения дополнительной информации при профилировании. Подробности можно найти в разделе Константы XHprof. Например, XHPROF_FLAGS_MEMORY включает профилирование памяти.

options

Массив (array) необязательных опций, а конкретно опция 'ignored_functions' со списком функций, которые не нужно профилировать.

Возвращаемые значения

NULL

Список изменений

Версия | Описание
0.9.2 | Добавлен необязательный параметр options.

Примеры

Пример #1 Пример использования xhprof_enable()

<?php
// 1. время исполнения + память + CPU; также игнорируем функции
стандартной библиотеки
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

// 2. время исполнения; игнорируем функции ignore call_user_func*
xhprof_enable(
    0,
    array('ignored_functions' =>  array('call_user_func',
                                        'call_user_func_array')));

// 3. время исполнения + память; игнорируем функции call_user_func*
xhprof_enable(
    XHPROF_FLAGS_MEMORY,
    array('ignored_functions' =>  array('call_user_func',
                                        'call_user_func_array')));
?>

Смотрите также

  • xhprof_disable() - Останавливает профилирование xhprof
  • xhprof_sample_enable() - Запуск сэмплирующего режима профилирования XHProf
  • memory_get_usage() - Возвращает количество памяти, выделенное для PHP
  • getrusage() - Получает информацию об использовании текущего ресурса


Остановить сэмплирующие профилирование xhprof

  • « xhprof_enable
  • xhprof_sample_enable »
  • PHP Manual
  • Функции Xhprof
  • Остановить сэмплирующие профилирование xhprof

xhprof_sample_disable

(PECL xhprof >= 0.9.0)

xhprof_sample_disable — Остановить сэмплирующие профилирование xhprof

Описание

xhprof_sample_disable ( void ) : array

Остановить сэмплирующие профилирование xhprof.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив данных, собранный профайлером.

Примеры

Пример #1 Пример использования xhprof_sample_disable()

<?php
xhprof_sample_enable();

for ($i = 0; $i <= 10000; $i++) {
    $a = strlen($i);
    $b = $i * $a;
    $c = rand();
}

$xhprof_data = xhprof_sample_disable();

print_r($xhprof_data);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [1272935300.800000] => main()
    [1272935300.900000] => main()
)


Запуск сэмплирующего режима профилирования XHProf

  • « xhprof_sample_disable
  • Обработка аудио форматов »
  • PHP Manual
  • Функции Xhprof
  • Запуск сэмплирующего режима профилирования XHProf

xhprof_sample_enable

(PECL xhprof >= 0.9.0)

xhprof_sample_enable — Запуск сэмплирующего режима профилирования XHProf

Описание

xhprof_sample_enable ( void ) : void

Запуск сэмплирующего режима профилирования, который является облегченной версией xhprof_enable(). Интервал семплирования составляет 0.1 секунды и при каждой итерации записывается стек вызовов. Данный режим предназначен для снижения накладных расходов при мониторинге производительности.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

NULL

Смотрите также

  • xhprof_sample_disable() - Остановить сэмплирующие профилирование xhprof
  • xhprof_enable() - Запуск профилирования xhprof
  • memory_get_usage() - Возвращает количество памяти, выделенное для PHP
  • getrusage() - Получает информацию об использовании текущего ресурса


Обработка аудио форматов

  • ID3 — Теги ID3
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции ID3
  • KTaglib
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • KTaglib_MPEG_File — Класс KTaglib_MPEG_File
    • KTaglib_MPEG_AudioProperties — Класс KTaglib_MPEG_AudioProperties
    • KTaglib_Tag — Класс KTaglib_Tag
    • KTaglib_ID3v2_Tag — Класс KTaglib_ID3v2_Tag
    • KTaglib_ID3v2_Frame — Класс KTaglib_ID3v2_Frame
    • KTaglib_ID3v2_AttachedPictureFrame — Класс KTaglib_ID3v2_AttachedPictureFrame
  • oggvorbis — OGG/Vorbis
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Опции контекста
    • Примеры
  • OpenAL — Аудиопотоки OpenAL
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции OpenAL


Теги ID3

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Функции ID3
    • id3_get_frame_long_name — Возвращает длинное имя кадра ID3v2
    • id3_get_frame_short_name — Возвращает короткое имя кадра ID3v2
    • id3_get_genre_id — Возвращает идентификатор жанра
    • id3_get_genre_list — Возвращает все возможные значения жанра
    • id3_get_genre_name — Возвращает имя по идентификатору жанра
    • id3_get_tag — Возвращает всю информацию, сохранённую в ID3-теге
    • id3_get_version — Возвращает версию ID3-тега
    • id3_remove_tag — Удаляет существующий ID3-тег
    • id3_set_tag — Обновляет информацию в ID3 теге


Введение

Эти функции предназначены для чтения и редактирования тегов ID3. ID3-теги используются в MP3-файлах для хранения названия песни, а также информации об исполнителе, альбоме, жанре, годе выпуска и номере дорожки.

Начиная с версии 0.2 стало возможным извлекать текстовые кадры из тегов ID3 версии 2.2 и старше.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/id3.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Настройка во время выполнения
  • Предопределённые константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Предопределённые константы

Большинство функции для работы с тегами ID3 позволяют устанавливать или возвращают версию ID3. Для определения версии, пожалуйста, используйте эти константы.

ID3_V1_0 (integer)
ID3_V1_0 используется, если вы работаете с тегами ID3 версии 1.0. Эти теги могут содержать поля названия, исполнителя, альбома, жанра, года и комментария.
ID3_V1_1 (integer)
ID3_V1_1 используется, если вы работаете с тегами ID3 версии 1.1. Эти теги могут содержать информацию из тегов версии 1.0, а так же номер трека.
ID3_V2_1 (integer)
ID3_V2_1 используется, если вы работаете с тегами версии 2.1.
ID3_V2_2 (integer)
ID3_V2_2 используется, если вы работаете с тегами версии 2.2.
ID3_V2_3 (integer)
ID3_V2_3 используется, если вы работаете с тегами версии 2.3.
ID3_V2_4 (integer)
ID3_V2_4 используется, если вы работаете с тегами версии 2.4.
ID3_BEST (integer)
ID3_BEST используется, если вы хотите позволить функциям ID3 определять версию тега.


Функции ID3

Содержание

  • id3_get_frame_long_name — Возвращает длинное имя кадра ID3v2
  • id3_get_frame_short_name — Возвращает короткое имя кадра ID3v2
  • id3_get_genre_id — Возвращает идентификатор жанра
  • id3_get_genre_list — Возвращает все возможные значения жанра
  • id3_get_genre_name — Возвращает имя по идентификатору жанра
  • id3_get_tag — Возвращает всю информацию, сохранённую в ID3-теге
  • id3_get_version — Возвращает версию ID3-тега
  • id3_remove_tag — Удаляет существующий ID3-тег
  • id3_set_tag — Обновляет информацию в ID3 теге


Возвращает длинное имя кадра ID3v2

  • « Функции ID3
  • id3_get_frame_short_name »
  • PHP Manual
  • Функции ID3
  • Возвращает длинное имя кадра ID3v2

id3_get_frame_long_name

(PECL id3 >= 0.2)

id3_get_frame_long_name — Возвращает длинное имя кадра ID3v2

Описание

id3_get_frame_long_name ( string $frameId ) : string

id3_get_frame_long_name() возвращает длинное имя кадра ID3v2.

Список параметров

frameId

Кадр ID3v2

Возвращаемые значения

Возвращает длинное имя или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования id3_get_frame_long_name()

<?php
$longName = id3_get_frame_long_name("TOLY");
echo $longName;
?>

Результат выполнения данного примера:

Original lyricist(s)/text writer(s)

Смотрите также

  • id3_get_frame_short_name() - Возвращает короткое имя кадра ID3v2


Возвращает короткое имя кадра ID3v2

  • « id3_get_frame_long_name
  • id3_get_genre_id »
  • PHP Manual
  • Функции ID3
  • Возвращает короткое имя кадра ID3v2

id3_get_frame_short_name

(PECL id3 >= 0.2)

id3_get_frame_short_name — Возвращает короткое имя кадра ID3v2

Описание

id3_get_frame_short_name ( string $frameId ) : string

id3_get_frame_short_name()возвращает короткое имя кадра ID3v2.

Список параметров

frameId

ID3v2 кадр

Возвращаемые значения

Возвращает короткое имя кадра или FALSE в случае ошибки.

Значения, возвращаемые id3_get_frame_short_name(), используются в массиве, возвращаемом функцией id3_get_tag().

Примеры

Пример #1 Пример использования id3_get_frame_short_name()

<?php
$shortName = id3_get_frame_short_name("TOLY");
echo $shortName;
?>

Результат выполнения данного примера:

originalLyricist

Смотрите также

  • id3_get_frame_long_name() - Возвращает длинное имя кадра ID3v2


Возвращает идентификатор жанра

  • « id3_get_frame_short_name
  • id3_get_genre_list »
  • PHP Manual
  • Функции ID3
  • Возвращает идентификатор жанра

id3_get_genre_id

(PECL id3 >= 0.1)

id3_get_genre_id — Возвращает идентификатор жанра

Описание

id3_get_genre_id ( string $genre ) : int

id3_get_genre_id() возвращает идентификатор жанра.

Список параметров

genre

Название жанра в виде строки

Возвращаемые значения

Идентификатор жанра или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования id3_get_genre_id()

<?php
$id = id3_get_genre_id("Alternative");
echo $id;
?>

Результат выполнения данного примера:

20

Смотрите также

  • id3_get_genre_name() - Возвращает имя по идентификатору жанра
  • id3_get_genre_list() - Возвращает все возможные значения жанра


Возвращает все возможные значения жанра

  • « id3_get_genre_id
  • id3_get_genre_name »
  • PHP Manual
  • Функции ID3
  • Возвращает все возможные значения жанра

id3_get_genre_list

(PECL id3 >= 0.1)

id3_get_genre_list — Возвращает все возможные значения жанра

Описание

id3_get_genre_list ( void ) : array

id3_get_genre_list() возвращает массив, содержащий все возможные значения жанра, которые может содержать ID3-тег. Этот список был создан Эриком Кэмпом (Eric Kemp) и позднее расширен WinAmp.

Эта функция полезна, чтобы предоставить пользователям список жанров, из которого они могут выбрать один. Обновляя ID3-тег, вы должны определить жанр как число в интервале от 0 до 147.

Возвращаемые значения

Возвращает массив, содержащий все возможные значения жанра, которые может содержать ID3-тег.

Примеры

Пример #1 Пример использования id3_get_genre_list()

<?php
$genres = id3_get_genre_list();
print_r($genres);
?>

Результат выполнения данного примера:

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
)

Смотрите также

  • id3_get_genre_name() - Возвращает имя по идентификатору жанра
  • id3_get_genre_id() - Возвращает идентификатор жанра


Возвращает имя по идентификатору жанра

  • « id3_get_genre_list
  • id3_get_tag »
  • PHP Manual
  • Функции ID3
  • Возвращает имя по идентификатору жанра

id3_get_genre_name

(PECL id3 >= 0.1)

id3_get_genre_name — Возвращает имя по идентификатору жанра

Описание

id3_get_genre_name ( int $genre_id ) : string

id3_get_genre_name() возвращает имя по идентификатору жанра.

Список параметров

genre_id

Число в интервале от 0 до 147

Возвращаемые значения

Возвращает строку с именем.

Примеры

Пример #1 Пример использования id3_get_genre_name()

<?php
$genre = id3_get_genre_name(20);
echo $genre;
?>

Результат выполнения данного примера:

Alternative

Смотрите также

  • id3_get_genre_list() - Возвращает все возможные значения жанра
  • id3_get_genre_id() - Возвращает идентификатор жанра


Возвращает всю информацию, сохранённую в ID3-теге

  • « id3_get_genre_name
  • id3_get_version »
  • PHP Manual
  • Функции ID3
  • Возвращает всю информацию, сохранённую в ID3-теге

id3_get_tag

(PECL id3 >= 0.1)

id3_get_tag — Возвращает всю информацию, сохранённую в ID3-теге

Описание

id3_get_tag ( string $filename [, int $version = ID3_BEST ] ) : array

id3_get_tag() используется для получения всей информации, хранящейся в ID3-теге данного файла.

Список параметров

filename

Путь к MP3-файлу

Вместо имени файла можно передать потоковый ресурс

version

Позволяет определять версию ID3-тега, так как MP3-файл может содержать теги версии 1.х и 1.2.

Начиная с версии 0.2 id3_get_tag() также поддерживает ID3-теги версии 2.2, 2.3 и 2.4. Для извлечения информации из этих тегов, передайте одну из констант ID3_V2_2, ID3_V2_3 или ID3_V2_4 вторым параметром. Теги ID3 версии 2.х могут содержать больше информации об MP3-файле, чем теги версии 1.х.

Возвращаемые значения

Возвращает ассоциативный массив с различными ключами: title, artist, ..

Ключ genre содержит число в интервале от 0 до 147. Вы можете использовать функцию id3_get_genre_name() для получения текстового названия жанра.

Примеры

Пример #1 Пример использования id3_get_tag()

<?php
$tag = id3_get_tag( "path/to/example.mp3" );
print_r($tag);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [title] => DN-38416
    [artist] => Re:\Legion
    [album] => Reflections
    [year] => 2004
    [genre] => 19
)

Пример #2 Пример использования id3_get_tag()

<?php
$tag = id3_get_tag( "path/to/example2.mp3", ID3_V2_3 );
print_r($tag);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [copyright] => Dirty Mac
    [originalArtist] => Dirty Mac
    [composer] => Marcus Gotze
    [artist] => Dirty Mac
    [title] => Little Big Man
    [album] => Demo-Tape
    [track] => 5/12
    [genre] => (17)Rock
    [year] => 2001
)

Смотрите также

  • id3_set_tag() - Обновляет информацию в ID3 теге
  • id3_remove_tag() - Удаляет существующий ID3-тег
  • id3_get_version() - Возвращает версию ID3-тега


Возвращает версию ID3-тега

  • « id3_get_tag
  • id3_remove_tag »
  • PHP Manual
  • Функции ID3
  • Возвращает версию ID3-тега

id3_get_version

(PECL id3 >= 0.1)

id3_get_version — Возвращает версию ID3-тега

Описание

id3_get_version ( string $filename ) : int

id3_get_version() Возвращает версию (версии) ID3-тега(тегов) в MP3-файле.

Если файл содержит ID3-тег версии 1.1, он всегда содержит тег версии 1.0, так как версия 1.1 является расширением версии 1.0.

Список параметров

filename

Путь к MP3 файлу.

Вместо имени файла можно передать потоковый ресурс

Возвращаемые значения

Возвращает номер версии ID3-тега MP3-файла. Так как тег может содержать ID3-теги версии 1.х и 2.х, значение, возвращённое функцией, следует побитово сравнить с предопределёнными константами ID3_V1_0, ID3_V1_1 и ID3_V2.

Примеры

Пример #1 Примеры использования id3_get_version()

<?php
$version = id3_get_version( "path/to/example.mp3" );
if ($version & ID3_V1_0) {
    echo "Содержит тег версии 1.x\n";
}
if ($version & ID3_V1_1) {
    echo "Содержит тег версии 1.1\n";
}
if ($version & ID3_V2) {
    echo "Содержит тег версии 2.x\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Содержит тег версии 1.x
Содержит тег версии 1.1

Смотрите также

  • id3_set_tag() - Обновляет информацию в ID3 теге
  • id3_get_tag() - Возвращает всю информацию, сохранённую в ID3-теге
  • id3_remove_tag() - Удаляет существующий ID3-тег


Удаляет существующий ID3-тег

  • « id3_get_version
  • id3_set_tag »
  • PHP Manual
  • Функции ID3
  • Удаляет существующий ID3-тег

id3_remove_tag

(PECL id3 >= 0.1)

id3_remove_tag — Удаляет существующий ID3-тег

Описание

id3_remove_tag ( string $filename [, int $version = ID3_V1_0 ] ) : bool

id3_remove_tag() используется для удаления ID3-тега.

Список параметров

filename

Путь к MP3-файлу

Вместо имени файла можно передать потоковый ресурс

version

Позволяет определять версию ID3-тега, так как MP3-файл может содержать теги версии 1.х и 1.2.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 id3_remove_tag() example

<?php
$result = id3_remove_tag( "path/to/example.mp3", ID3_V1_0 );
if ($result === true) {
    echo "Тег успешно удален\n";
}
?>

Если файл доступен для записи и содержит тег версии 1.0, то вывод будет следующим:

Тег успешно удален

Примечания

Замечание: В настоящее время функция id3_remove_tag() поддерживает только теги версии 1.0 и 1.1. Если вы выберете для удаления тег версии 1.0, а файл содержит тег версии 1.1, то тег будет удалён, так как версия 1.1 является расширением версии 1.0.

Смотрите также

  • id3_set_tag() - Обновляет информацию в ID3 теге
  • id3_get_tag() - Возвращает всю информацию, сохранённую в ID3-теге
  • id3_get_version() - Возвращает версию ID3-тега


Обновляет информацию в ID3 теге

  • « id3_remove_tag
  • KTaglib »
  • PHP Manual
  • Функции ID3
  • Обновляет информацию в ID3 теге

id3_set_tag

(PECL id3 >= 0.1)

id3_set_tag — Обновляет информацию в ID3 теге

Описание

id3_set_tag ( string $filename , array $tag [, int $version = ID3_V1_0 ] ) : bool

id3_set_tag() используется для изменения информации, сохранённой в теге ID3. Если тег отсутствует, он будет добавлен в файл.

Список параметров

filename

Путь к файлу MP3

Вместо имени файла можно передать потоковый ресурс

tag

Ассоциативный массив ключей и значений тега.

Следующие ключи могут быть использованы в ассоциативном массиве:

Ключи в ассоциативном массиве
ключ | возможные значения | доступен с версии
title | строка длиной максимум 30 символов | v1.0, v1.1
artist | строка длиной максимум 30 символов | v1.0, v1.1
album | строка длиной максимум 30 символов | v1.0, v1.1
year | 4 цифры | v1.0, v1.1
genre | число в интервале от 0 до 147 | v1.0, v1.1
comment | строка длиной максимум 30 символов (30 в v1.1) | v1.0, v1.1
track | целое число в интервале от 0 до 255 | v1.1

version

Позволяет определять версию тега ID3, так как MP3-файл может содержать теги версии 1.х и 1.2.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования id3_set_tag()

<?php
$data = array(
              "title" => "Re:Начало",
              "artist" => "Re:\Легион",
              "comment" => "Прекрасный трек"
             );
$result = id3_set_tag( "path/to/example.mp3", $data, ID3_V1_0 );
if ($result === true) {
    echo "Тег успешно обновлен\n";
}
?>

Если файл доступен для записи и содержит тег версии 1.0, то вывод будет следующим:

Тег успешно обновлен

Примечания

Замечание: В настоящее время функция id3_set_tag() поддерживает только версию 1.0 и 1.1.

Смотрите также

  • id3_remove_tag() - Удаляет существующий ID3-тег
  • id3_get_tag() - Возвращает всю информацию, сохранённую в ID3-теге
  • id3_get_version() - Возвращает версию ID3-тега


KTaglib

  • Введение
  • Установка и настройка
    • Требования
    • Установка
  • Предопределенные константы
  • KTaglib_MPEG_File — Класс KTaglib_MPEG_File
    • KTaglib_MPEG_File::__construct — Открывает новый файл
    • KTaglib_MPEG_File::getAudioProperties — Возвращает объект, предоставляющий доступ к свойствам аудио
    • KTaglib_MPEG_File::getID3v1Tag — Возвращает объект, представляющий тег ID3v1
    • KTaglib_MPEG_File::getID3v2Tag — Возвращает объект ID3v2
  • KTaglib_MPEG_AudioProperties — Класс KTaglib_MPEG_AudioProperties
    • KTaglib_MPEG_AudioProperties::getBitrate — Возвращает битрейт файла MPEG
    • KTaglib_MPEG_AudioProperties::getChannels — Возвращает количество каналов MPEG-файла
    • KTaglib_MPEG_AudioProperties::getLayer — Возвращает уровень MPEG-файла
    • KTaglib_MPEG_AudioProperties::getLength — Возвращает длину файла MPEG
    • KTaglib_MPEG_AudioProperties::getSampleBitrate — Возвращает битрейт семпла файла MPEG
    • KTaglib_MPEG_AudioProperties::getVersion — Возвращает версию файла MPEG
    • KTaglib_MPEG_AudioProperties::isCopyrighted — Возвращает статус авторского права файла MPEG
    • KTaglib_MPEG_AudioProperties::isOriginal — Определяет, помечен ли файл как оригинальный
    • KTaglib_MPEG_AudioProperties::isProtectionEnabled — Определяет, включен ли механизм защиты для MPEG-файла
  • KTaglib_Tag — Класс KTaglib_Tag
    • KTaglib_Tag::getAlbum — Возвращает строку с названием альбома из ID3-тега
    • KTaglib_Tag::getArtist — Возвращает строку с именем исполнителя из ID3-тега
    • KTaglib_Tag::getComment — Возвращает строку с комментарием из ID3-тега
    • KTaglib_Tag::getGenre — Возвращает строку с жанром из ID3-тега
    • KTaglib_Tag::getTitle — Возвращает строку с названием из ID3-тега
    • KTaglib_Tag::getTrack — Возвращает номер трека из ID3-тега
    • KTaglib_Tag::getYear — Возвращает год из ID3-тега
    • KTaglib_Tag::isEmpty — Определяет, пуст ли тег
  • KTaglib_ID3v2_Tag — Класс KTaglib_ID3v2_Tag
    • KTaglib_ID3v2_Tag::addFrame — Добавить фрейм к тегу ID3v2
    • KTaglib_ID3v2_Tag::getFrameList — Возвращает массив фреймов ID3v2, связанных с ID3v2-тегом
  • KTaglib_ID3v2_Frame — Класс KTaglib_ID3v2_Frame
    • KTaglib_ID3v2_Frame::getSize — Возвращает размер фрейма в байтах
    • KTaglib_ID3v2_Frame::__toString — Возвращает текстовое представление фрейма
  • KTaglib_ID3v2_AttachedPictureFrame — Класс KTaglib_ID3v2_AttachedPictureFrame
    • KTaglib_ID3v2_AttachedPictureFrame::getDescription — Возвращает описание для изображения в фрейме изображения
    • KTaglib_ID3v2_AttachedPictureFrame::getMimeType — Возвращает mime-тип изображения
    • KTaglib_ID3v2_AttachedPictureFrame::getType — Возвращает тип изображения
    • KTaglib_ID3v2_AttachedPictureFrame::savePicture — Записывает изображение в файл
    • KTaglib_ID3v2_AttachedPictureFrame::setMimeType — Устанавливает mime-тип изображения
    • KTaglib_ID3v2_AttachedPictureFrame::setPicture — Установить фрейм изображения для заданного изображения
    • KTaglib_ID3v2_AttachedPictureFrame::setType — Установить тип изображения


Введение

KTaglib - это объектно-ориентированный фасад для библиотеки taglib из проекта KDE, которая, например, используется в проектах типа Amarok для чтения и записи тегов ID3 и Ogg. Также библиотека предоставляет доступ к аудиоинформации. Дизайн по большей части старается повторять нижнеуровневый API C++, но в некоторых моментах изменен в пользу большего соответствия PHP.

Замечание:

На данный момент ktaglib может читать и писать теги ID3v1 и ID3v2.


  • « Введение
  • Требования »
  • PHP Manual
  • KTaglib
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка


Требования

Для сборки ktaglib вам понадобится установленная библиотека taglib версии 1.5 или выше. Библиотеку taglib можно загрузить со » страницы проекта taglib. DLL под Windows собираются со статическим подключением taglib, следовательно отдельно ее устанавливать не надо.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/ktaglib.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

KTaglib использует константы классов. Большинство констант являются прямыми отсылками к константам и ENUM-полям библиотеки Taglib.

KTaglib_MPEG_Header::Version1 (integer)
ID3 версии 1.0
KTaglib_MPEG_Header::Version2 (integer)
ID3 версии 2.0
KTaglib_MPEG_Header::Version2_5 (integer)
ID3 версии 2.5
KTaglib_ID3v2_AttachedPictureFrame::Other (integer)
Тип изображения Other (прочее)
KTaglib_ID3v2_AttachedPictureFrame::FileIcon (integer)
Тип изображения FileIcon (иконка файла)
KTaglib_ID3v2_AttachedPictureFrame::OtherFileIcon (integer)
Тип изображения OtherFileIcon (другая иконка файла)
KTaglib_ID3v2_AttachedPictureFrame::FrontCover (integer)
Picture type FrontCover
KTaglib_ID3v2_AttachedPictureFrame::BackCover (integer)
Тип изображения BackCover (задняя обложка)
KTaglib_ID3v2_AttachedPictureFrame::LeafletPage (integer)
Тип изображения LeafletPage (страница лифлета)
KTaglib_ID3v2_AttachedPictureFrame::Media (integer)
Тип изображения Media (медиа)
KTaglib_ID3v2_AttachedPictureFrame::LeadArtist (integer)
Тип изображения LeadArtist (ведущий исполнитель/актер)
KTaglib_ID3v2_AttachedPictureFrame::Artist (integer)
Тип изображения Artist (исполнитель/актер)
KTaglib_ID3v2_AttachedPictureFrame::Conductor (integer)
Тип изображения Conductor (дирижер)
KTaglib_ID3v2_AttachedPictureFrame::Band (integer)
Тип изображения Band (музыкальная группа/ансамбль)
KTaglib_ID3v2_AttachedPictureFrame::Composer (integer)
Тип изображения Composer (композитор)
KTaglib_ID3v2_AttachedPictureFrame::Lyricist (integer)
Тип изображения Lyricist (автор текстов)
KTaglib_ID3v2_AttachedPictureFrame::RecordingLocation (integer)
Тип изображения RecordingLocation (где производилась запись)
KTaglib_ID3v2_AttachedPictureFrame::DuringRecording (integer)
Тип изображения DuringRecording (во время записи)
KTaglib_ID3v2_AttachedPictureFrame::DuringPerformance (integer)
Тип изображения DuringPerformance (во время исполнения)
KTaglib_ID3v2_AttachedPictureFrame::MovieScreenCapture (integer)
Тип изображения MovieScreenCapture (кадр из видео)
KTaglib_ID3v2_AttachedPictureFrame::ColouredFish (integer)
Тип изображения ColouredFish (шутка, нечто сбивающее с толку)
KTaglib_ID3v2_AttachedPictureFrame::Illustration (integer)
Тип изображения Illustration (иллюстрация)
KTaglib_ID3v2_AttachedPictureFrame::BandLogo (integer)
Тип изображения BandLogo (логотип группы/ансамбля)


Класс KTaglib_MPEG_File

(0.0.1)

Введение

Представляет файл MPEG. Файл MPEG может содержать теги ID3v1 и ID3v2 и свойства аудио.

Краткий обзор класса

KTaglib_MPEG_File {
/* Методы */
public getAudioProperties ( void ) : KTaglib_MPEG_File
public getID3v1Tag ([ bool $create = FALSE ] ) : KTaglib_ID3v1_Tag
public getID3v2Tag ([ bool $create = FALSE ] ) : KTaglib_ID3v2_Tag
}

Содержание

  • KTaglib_MPEG_File::__construct — Открывает новый файл
  • KTaglib_MPEG_File::getAudioProperties — Возвращает объект, предоставляющий доступ к свойствам аудио
  • KTaglib_MPEG_File::getID3v1Tag — Возвращает объект, представляющий тег ID3v1
  • KTaglib_MPEG_File::getID3v2Tag — Возвращает объект ID3v2


Открывает новый файл

  • « KTaglib_MPEG_File
  • KTaglib_MPEG_File::getAudioProperties »
  • PHP Manual
  • KTaglib_MPEG_File
  • Открывает новый файл

KTaglib_MPEG_File::__construct

(0.0.1)

KTaglib_MPEG_File::__construct — Открывает новый файл

Описание

public KTaglib_MPEG_File::__construct ( string $filename )

Открывает новый MPEG-файл.

Список параметров

filename

Файл для чтения

Примеры

Пример #1 Открываем новый MP3-файл и читаем название трека

<?php
$mpeg = new KTaglib_MPEG_File('example.mp3');
echo $mpeg->getID3v1Tag()->getTitle();
?>


Возвращает объект, предоставляющий доступ к свойствам аудио

  • « KTaglib_MPEG_File::__construct
  • KTaglib_MPEG_File::getID3v1Tag »
  • PHP Manual
  • KTaglib_MPEG_File
  • Возвращает объект, предоставляющий доступ к свойствам аудио

KTaglib_MPEG_File::getAudioProperties

(0.0.1)

KTaglib_MPEG_File::getAudioProperties — Возвращает объект, предоставляющий доступ к свойствам аудио

Описание

public KTaglib_MPEG_File::getAudioProperties ( void ) : KTaglib_MPEG_File

Возвращает объект, предоставляющий доступ к свойствам аудио MPEG-файла.

Возвращаемые значения

Возвращает объект KTaglib_MPEG_AudioProperties или FALSE.


Возвращает объект, представляющий тег ID3v1

  • « KTaglib_MPEG_File::getAudioProperties
  • KTaglib_MPEG_File::getID3v2Tag »
  • PHP Manual
  • KTaglib_MPEG_File
  • Возвращает объект, представляющий тег ID3v1

KTaglib_MPEG_File::getID3v1Tag

(0.0.1)

KTaglib_MPEG_File::getID3v1Tag — Возвращает объект, представляющий тег ID3v1

Описание

public KTaglib_MPEG_File::getID3v1Tag ([ bool $create = FALSE ] ) : KTaglib_ID3v1_Tag

Возвращает объект, представляющий тег ID3v1. Этот объект можно использовать для извлечения информации по тегу.

Возвращаемые значения

Возвращает объект KTaglib_MPEG_ID3v1Tag или FALSE, если тега нет.


Возвращает объект ID3v2

  • « KTaglib_MPEG_File::getID3v1Tag
  • KTaglib_MPEG_AudioProperties »
  • PHP Manual
  • KTaglib_MPEG_File
  • Возвращает объект ID3v2

KTaglib_MPEG_File::getID3v2Tag

(0.0.1)

KTaglib_MPEG_File::getID3v2Tag — Возвращает объект ID3v2

Описание

public KTaglib_MPEG_File::getID3v2Tag ([ bool $create = FALSE ] ) : KTaglib_ID3v2_Tag

Возвращает объект ID3v2 для mpeg-файла. Если тег ID3v2 отсутствует, то будет выброшено исключение KTaglib_TagNotFoundException.

Возвращаемые значения

Возвращает объект KTaglib_ID3v2_Tag для MPEG-файла или FALSE, если тег отсутствует


Класс KTaglib_MPEG_AudioProperties

(0.0.1)

Введение

Служит для описания свойств файла MPEG, таких как длина, битрейт или частота дискретизации.

Краткий обзор класса

KTaglib_MPEG_AudioProperties {
/* Методы */
public KTaglib_MPEG_AudioProperties::getBitrate ( void ) : int
public KTaglib_MPEG_AudioProperties::getChannels ( void ) : int
public KTaglib_MPEG_AudioProperties::getLayer ( void ) : int
public KTaglib_MPEG_AudioProperties::getLength ( void ) : int
public KTaglib_MPEG_AudioProperties::getSampleBitrate ( void ) : int
public KTaglib_MPEG_AudioProperties::getVersion ( void ) : int
public KTaglib_MPEG_AudioProperties::isCopyrighted ( void ) : bool
public KTaglib_MPEG_AudioProperties::isOriginal ( void ) : bool
public KTaglib_MPEG_AudioProperties::isProtectionEnabled ( void ) : bool
}

Содержание

  • KTaglib_MPEG_AudioProperties::getBitrate — Возвращает битрейт файла MPEG
  • KTaglib_MPEG_AudioProperties::getChannels — Возвращает количество каналов MPEG-файла
  • KTaglib_MPEG_AudioProperties::getLayer — Возвращает уровень MPEG-файла
  • KTaglib_MPEG_AudioProperties::getLength — Возвращает длину файла MPEG
  • KTaglib_MPEG_AudioProperties::getSampleBitrate — Возвращает битрейт семпла файла MPEG
  • KTaglib_MPEG_AudioProperties::getVersion — Возвращает версию файла MPEG
  • KTaglib_MPEG_AudioProperties::isCopyrighted — Возвращает статус авторского права файла MPEG
  • KTaglib_MPEG_AudioProperties::isOriginal — Определяет, помечен ли файл как оригинальный
  • KTaglib_MPEG_AudioProperties::isProtectionEnabled — Определяет, включен ли механизм защиты для MPEG-файла


Возвращает битрейт файла MPEG

  • « KTaglib_MPEG_AudioProperties
  • KTaglib_MPEG_AudioProperties::getChannels »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Возвращает битрейт файла MPEG

KTaglib_MPEG_AudioProperties::getBitrate

(0.0.1)

KTaglib_MPEG_AudioProperties::getBitrate — Возвращает битрейт файла MPEG

Описание

public KTaglib_MPEG_AudioProperties::getBitrate ( void ) : int

Возвращает битрейт файла MPEG

Возвращаемые значения

Возвращает битрейт в виде целого числа


Возвращает количество каналов MPEG-файла

  • « KTaglib_MPEG_AudioProperties::getBitrate
  • KTaglib_MPEG_AudioProperties::getLayer »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Возвращает количество каналов MPEG-файла

KTaglib_MPEG_AudioProperties::getChannels

(0.0.1)

KTaglib_MPEG_AudioProperties::getChannels — Возвращает количество каналов MPEG-файла

Описание

public KTaglib_MPEG_AudioProperties::getChannels ( void ) : int

Возвращает количество каналов MPEG-файла

Возвращаемые значения

Возвращает количество каналов в виде целого числа


Возвращает уровень MPEG-файла

  • « KTaglib_MPEG_AudioProperties::getChannels
  • KTaglib_MPEG_AudioProperties::getLength »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Возвращает уровень MPEG-файла

KTaglib_MPEG_AudioProperties::getLayer

(0.0.1)

KTaglib_MPEG_AudioProperties::getLayer — Возвращает уровень MPEG-файла

Описание

public KTaglib_MPEG_AudioProperties::getLayer ( void ) : int

Возвращает уровень MPEG-файла (3 для MP3).

Возвращаемые значения

Возвращает уровень MPEG-файла в виде целого числа


Возвращает длину файла MPEG

  • « KTaglib_MPEG_AudioProperties::getLayer
  • KTaglib_MPEG_AudioProperties::getSampleBitrate »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Возвращает длину файла MPEG

KTaglib_MPEG_AudioProperties::getLength

(0.0.1)

KTaglib_MPEG_AudioProperties::getLength — Возвращает длину файла MPEG

Описание

public KTaglib_MPEG_AudioProperties::getLength ( void ) : int

Возвращает длину файла MPEG

Возвращаемые значения

Возвращает длину файла MPEG в виде целого числа


Возвращает битрейт семпла файла MPEG

  • « KTaglib_MPEG_AudioProperties::getLength
  • KTaglib_MPEG_AudioProperties::getVersion »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Возвращает битрейт семпла файла MPEG

KTaglib_MPEG_AudioProperties::getSampleBitrate

(0.0.1)

KTaglib_MPEG_AudioProperties::getSampleBitrate — Возвращает битрейт семпла файла MPEG

Описание

public KTaglib_MPEG_AudioProperties::getSampleBitrate ( void ) : int

Возвращает битрейт семпла файла MPEG

Возвращаемые значения

Возвращает битрейт семпла файла MPEG в виде целого числа


Возвращает версию файла MPEG

  • « KTaglib_MPEG_AudioProperties::getSampleBitrate
  • KTaglib_MPEG_AudioProperties::isCopyrighted »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Возвращает версию файла MPEG

KTaglib_MPEG_AudioProperties::getVersion

(0.0.1)

KTaglib_MPEG_AudioProperties::getVersion — Возвращает версию файла MPEG

Описание

public KTaglib_MPEG_AudioProperties::getVersion ( void ) : int

Возвращает версию заголовка файла MPEG. Допустимые значения версии определены в Tag_MPEG_Header (Version1, Version2, Version2.5).

Возвращаемые значения

Возвращает версию


Возвращает статус авторского права файла MPEG

  • « KTaglib_MPEG_AudioProperties::getVersion
  • KTaglib_MPEG_AudioProperties::isOriginal »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Возвращает статус авторского права файла MPEG

KTaglib_MPEG_AudioProperties::isCopyrighted

(0.0.1)

KTaglib_MPEG_AudioProperties::isCopyrighted — Возвращает статус авторского права файла MPEG

Описание

public KTaglib_MPEG_AudioProperties::isCopyrighted ( void ) : bool

Возвращает TRUE, если файл защищен авторскими правами

Возвращаемые значения

Возвращает TRUE, если файл защищен авторскими правами


Определяет, помечен ли файл как оригинальный

  • « KTaglib_MPEG_AudioProperties::isCopyrighted
  • KTaglib_MPEG_AudioProperties::isProtectionEnabled »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Определяет, помечен ли файл как оригинальный

KTaglib_MPEG_AudioProperties::isOriginal

(0.0.1)

KTaglib_MPEG_AudioProperties::isOriginal — Определяет, помечен ли файл как оригинальный

Описание

public KTaglib_MPEG_AudioProperties::isOriginal ( void ) : bool

Возвращает TRUE, если файл помечен как оригинальный

Возвращаемые значения

Возвращает TRUE, если файл помечен как оригинальный


Определяет, включен ли механизм защиты для MPEG-файла

  • « KTaglib_MPEG_AudioProperties::isOriginal
  • KTaglib_Tag »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Определяет, включен ли механизм защиты для MPEG-файла

KTaglib_MPEG_AudioProperties::isProtectionEnabled

(0.0.1)

KTaglib_MPEG_AudioProperties::isProtectionEnabled — Определяет, включен ли механизм защиты для MPEG-файла

Описание

public KTaglib_MPEG_AudioProperties::isProtectionEnabled ( void ) : bool

Возвращает TRUE, если для файла включен механизм защиты (например DRM)

Возвращаемые значения

Возвращает TRUE, если для файла включен механизм защиты (например DRM)


Класс KTaglib_Tag

(0.0.1)

Введение

Базовый класс для тегов ID3v1 и ID3v2

Краткий обзор класса

KTaglib_Tag {
/* Методы */
public getAlbum ( void ) : string
public getArtist ( void ) : string
public getComment ( void ) : string
public getGenre ( void ) : string
public getTitle ( void ) : string
public getTrack ( void ) : int
public getYear ( void ) : int
public isEmpty ( void ) : bool
}

Содержание

  • KTaglib_Tag::getAlbum — Возвращает строку с названием альбома из ID3-тега
  • KTaglib_Tag::getArtist — Возвращает строку с именем исполнителя из ID3-тега
  • KTaglib_Tag::getComment — Возвращает строку с комментарием из ID3-тега
  • KTaglib_Tag::getGenre — Возвращает строку с жанром из ID3-тега
  • KTaglib_Tag::getTitle — Возвращает строку с названием из ID3-тега
  • KTaglib_Tag::getTrack — Возвращает номер трека из ID3-тега
  • KTaglib_Tag::getYear — Возвращает год из ID3-тега
  • KTaglib_Tag::isEmpty — Определяет, пуст ли тег


Возвращает строку с названием альбома из ID3-тега

  • « KTaglib_Tag
  • KTaglib_Tag::getArtist »
  • PHP Manual
  • KTaglib_Tag
  • Возвращает строку с названием альбома из ID3-тега

KTaglib_Tag::getAlbum

(0.0.1)

KTaglib_Tag::getAlbum — Возвращает строку с названием альбома из ID3-тега

Описание

public KTaglib_Tag::getAlbum ( void ) : string

Возвращает строку с названием альбома из ID3-тега. Этот метод работает как для тегов ID3v1, так и для ID3v2.

Возвращаемые значения

Возвращает строку с названием альбома.


Возвращает строку с именем исполнителя из ID3-тега

  • « KTaglib_Tag::getAlbum
  • KTaglib_Tag::getComment »
  • PHP Manual
  • KTaglib_Tag
  • Возвращает строку с именем исполнителя из ID3-тега

KTaglib_Tag::getArtist

(0.0.1)

KTaglib_Tag::getArtist — Возвращает строку с именем исполнителя из ID3-тега

Описание

public KTaglib_Tag::getArtist ( void ) : string

Возвращает строку с именем исполнителя из ID3-тега. Этот метод работает как для тегов ID3v1 так и для ID3v2.

Возвращаемые значения

Возвращает строку с именем исполнителя.


Возвращает строку с комментарием из ID3-тега

  • « KTaglib_Tag::getArtist
  • KTaglib_Tag::getGenre »
  • PHP Manual
  • KTaglib_Tag
  • Возвращает строку с комментарием из ID3-тега

KTaglib_Tag::getComment

(0.0.1)

KTaglib_Tag::getComment — Возвращает строку с комментарием из ID3-тега

Описание

public KTaglib_Tag::getComment ( void ) : string

Возвращает строку с комментарием из ID3-тега. Этот метод работает как для тегов ID3v1 так и для ID3v2.

Возвращаемые значения

Возвращает строку с комментарием.


Возвращает строку с жанром из ID3-тега

  • « KTaglib_Tag::getComment
  • KTaglib_Tag::getTitle »
  • PHP Manual
  • KTaglib_Tag
  • Возвращает строку с жанром из ID3-тега

KTaglib_Tag::getGenre

(0.0.1)

KTaglib_Tag::getGenre — Возвращает строку с жанром из ID3-тега

Описание

public KTaglib_Tag::getGenre ( void ) : string

Возвращает строку с жанром из ID3-тега. Этот метод работает как для тегов ID3v1 так и для ID3v2.

Возвращаемые значения

Возвращает строку с жанром.


Возвращает строку с названием из ID3-тега

  • « KTaglib_Tag::getGenre
  • KTaglib_Tag::getTrack »
  • PHP Manual
  • KTaglib_Tag
  • Возвращает строку с названием из ID3-тега

KTaglib_Tag::getTitle

(0.0.1)

KTaglib_Tag::getTitle — Возвращает строку с названием из ID3-тега

Описание

public KTaglib_Tag::getTitle ( void ) : string

Возвращает строку с названием из ID3-тега. Этот метод работает как для тегов ID3v1, так и для ID3v2.

Возвращаемые значения

Возвращает строку с названием.


Возвращает номер трека из ID3-тега

  • « KTaglib_Tag::getTitle
  • KTaglib_Tag::getYear »
  • PHP Manual
  • KTaglib_Tag
  • Возвращает номер трека из ID3-тега

KTaglib_Tag::getTrack

(0.0.1)

KTaglib_Tag::getTrack — Возвращает номер трека из ID3-тега

Описание

public KTaglib_Tag::getTrack ( void ) : int

Возвращает номер трека из ID3-тега. Этот метод работает как для тегов ID3v1, так и для ID3v2.

Возвращаемые значения

Возвращает номер трека в виде целого числа.


Возвращает год из ID3-тега

  • « KTaglib_Tag::getTrack
  • KTaglib_Tag::isEmpty »
  • PHP Manual
  • KTaglib_Tag
  • Возвращает год из ID3-тега

KTaglib_Tag::getYear

(0.0.1)

KTaglib_Tag::getYear — Возвращает год из ID3-тега

Описание

public KTaglib_Tag::getYear ( void ) : int

Возвращает год из ID3-тега. Этот метод работает как для тегов ID3v1 так и для ID3v2.

Возвращаемые значения

Возвращает год в виде целого числа.


Определяет, пуст ли тег

  • « KTaglib_Tag::getYear
  • KTaglib_ID3v2_Tag »
  • PHP Manual
  • KTaglib_Tag
  • Определяет, пуст ли тег

KTaglib_Tag::isEmpty

(0.0.1)

KTaglib_Tag::isEmpty — Определяет, пуст ли тег

Описание

public KTaglib_Tag::isEmpty ( void ) : bool

Возвращает TRUE, если тег существует, но не содержит никакой информации. Этот метод работает как для тегов ID3v1, так и для ID3v2.

Возвращаемые значения

Возвращает TRUE, если тег не содержит никакой информации, и FALSE, если содержит.


Класс KTaglib_ID3v2_Tag

(0.0.1)

Введение

Представляет тег ID3v2. Предоставляет список фреймов ID3v2 и может быть использован для добавления и удаления дополнительных фреймов.

Краткий обзор класса

extends KTaglib_Tag {
/* Методы */
public addFrame ( KTaglib_ID3v2_Frame $frame ) : bool
public getFrameList ( void ) : array
/* Наследуемые методы */
public KTaglib_Tag::getAlbum ( void ) : string
public KTaglib_Tag::getArtist ( void ) : string
public KTaglib_Tag::getComment ( void ) : string
public KTaglib_Tag::getGenre ( void ) : string
public KTaglib_Tag::getTitle ( void ) : string
public KTaglib_Tag::getTrack ( void ) : int
public KTaglib_Tag::getYear ( void ) : int
public KTaglib_Tag::isEmpty ( void ) : bool
}

Содержание

  • KTaglib_ID3v2_Tag::addFrame — Добавить фрейм к тегу ID3v2
  • KTaglib_ID3v2_Tag::getFrameList — Возвращает массив фреймов ID3v2, связанных с ID3v2-тегом


Добавить фрейм к тегу ID3v2

  • « KTaglib_ID3v2_Tag
  • KTaglib_ID3v2_Tag::getFrameList »
  • PHP Manual
  • KTaglib_ID3v2_Tag
  • Добавить фрейм к тегу ID3v2

KTaglib_ID3v2_Tag::addFrame

(0.0.1)

KTaglib_ID3v2_Tag::addFrame — Добавить фрейм к тегу ID3v2

Описание

public KTaglib_ID3v2_Tag::addFrame ( KTaglib_ID3v2_Frame $frame ) : bool

Добавляет фрейм к тегу ID3v2. Фрейм должен быть корректным объектом KTaglib_ID3v2_Frame. Не забудьте вызвать функцию записи для сохранения тега.

Возвращаемые значения

Возвращает TRUE или FALSE в зависимости от успешности.


Возвращает массив фреймов ID3v2, связанных с ID3v2-тегом

  • « KTaglib_ID3v2_Tag::addFrame
  • KTaglib_ID3v2_Frame »
  • PHP Manual
  • KTaglib_ID3v2_Tag
  • Возвращает массив фреймов ID3v2, связанных с ID3v2-тегом

KTaglib_ID3v2_Tag::getFrameList

(0.0.1)

KTaglib_ID3v2_Tag::getFrameList — Возвращает массив фреймов ID3v2, связанных с ID3v2-тегом

Описание

public KTaglib_ID3v2_Tag::getFrameList ( void ) : array

Возвращает массив фреймов ID3v2, связанных с ID3v2-тегом.

Возвращаемые значения

Возвращает массив объектов KTaglib_ID3v2_Frame


Класс KTaglib_ID3v2_Frame

(0.0.1)

Введение

Базовый класс для фреймов ID3v2. Теги ID3v2 разделены в различных специализированных фреймах. Некоторые фреймы могут присутствовать в нескольких экземплярах.

Краткий обзор класса

extends KTaglib_Tag {
/* Методы */
public getSize ( void ) : int
public __toString ( void ) : string
/* Наследуемые методы */
public KTaglib_Tag::getAlbum ( void ) : string
public KTaglib_Tag::getArtist ( void ) : string
public KTaglib_Tag::getComment ( void ) : string
public KTaglib_Tag::getGenre ( void ) : string
public KTaglib_Tag::getTitle ( void ) : string
public KTaglib_Tag::getTrack ( void ) : int
public KTaglib_Tag::getYear ( void ) : int
public KTaglib_Tag::isEmpty ( void ) : bool
}

Содержание

  • KTaglib_ID3v2_Frame::getSize — Возвращает размер фрейма в байтах
  • KTaglib_ID3v2_Frame::__toString — Возвращает текстовое представление фрейма


Возвращает размер фрейма в байтах

  • « KTaglib_ID3v2_Frame
  • KTaglib_ID3v2_Frame::__toString »
  • PHP Manual
  • KTaglib_ID3v2_Frame
  • Возвращает размер фрейма в байтах

KTaglib_ID3v2_Frame::getSize

(0.0.1)

KTaglib_ID3v2_Frame::getSize — Возвращает размер фрейма в байтах

Описание

public KTaglib_ID3v2_Frame::getSize ( void ) : int

Возвращает размер фрейма в байтах. О том, что такое фреймы ID3v2 и как они определены, читайте на сайте id3.org.

Возвращаемые значения

Возвращает размер фрейма в байтах


Возвращает текстовое представление фрейма

  • « KTaglib_ID3v2_Frame::getSize
  • KTaglib_ID3v2_AttachedPictureFrame »
  • PHP Manual
  • KTaglib_ID3v2_Frame
  • Возвращает текстовое представление фрейма

KTaglib_ID3v2_Frame::__toString

(0.0.1)

KTaglib_ID3v2_Frame::__toString — Возвращает текстовое представление фрейма

Описание

public KTaglib_ID3v2_Frame::__toString ( void ) : string

Возвращает текстовое представление фрейма. Может содержать как просто идентификатор фрейма, так и более подробную информацию. О том, что такое фреймы ID3v2 и как они определены, читайте на сайте id3.org.

Возвращаемые значения

Возвращает текстовое представление фрейма.


Класс KTaglib_ID3v2_AttachedPictureFrame

(0.0.1)

Введение

Представляет фрейм ID3v2, который может содержать изображение.

Краткий обзор класса

extends KTaglib_ID3v2_Frame {
/* Методы */
public getDescription ( void ) : string
public getMimeType ( void ) : string
public getType ( void ) : int
public savePicture ( string $filename ) : bool
public getMimeType ( string $type ) : string
public setPicture ( string $filename ) : void
public setType ( int $type ) : void
/* Наследуемые методы */
public KTaglib_ID3v2_Frame::getSize ( void ) : int
public KTaglib_ID3v2_Frame::__toString ( void ) : string
public KTaglib_Tag::getAlbum ( void ) : string
public KTaglib_Tag::getArtist ( void ) : string
public KTaglib_Tag::getComment ( void ) : string
public KTaglib_Tag::getGenre ( void ) : string
public KTaglib_Tag::getTitle ( void ) : string
public KTaglib_Tag::getTrack ( void ) : int
public KTaglib_Tag::getYear ( void ) : int
public KTaglib_Tag::isEmpty ( void ) : bool
}

Содержание

  • KTaglib_ID3v2_AttachedPictureFrame::getDescription — Возвращает описание для изображения в фрейме изображения
  • KTaglib_ID3v2_AttachedPictureFrame::getMimeType — Возвращает mime-тип изображения
  • KTaglib_ID3v2_AttachedPictureFrame::getType — Возвращает тип изображения
  • KTaglib_ID3v2_AttachedPictureFrame::savePicture — Записывает изображение в файл
  • KTaglib_ID3v2_AttachedPictureFrame::setMimeType — Устанавливает mime-тип изображения
  • KTaglib_ID3v2_AttachedPictureFrame::setPicture — Установить фрейм изображения для заданного изображения
  • KTaglib_ID3v2_AttachedPictureFrame::setType — Установить тип изображения


Возвращает описание для изображения в фрейме изображения

  • « KTaglib_ID3v2_AttachedPictureFrame
  • KTaglib_ID3v2_AttachedPictureFrame::getMimeType »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Возвращает описание для изображения в фрейме изображения

KTaglib_ID3v2_AttachedPictureFrame::getDescription

(0.0.1)

KTaglib_ID3v2_AttachedPictureFrame::getDescription — Возвращает описание для изображения в фрейме изображения

Описание

public KTaglib_ID3v2_AttachedPictureFrame::getDescription ( void ) : string

Возвращает описание для ID3v2.x фрейма изображения.

Возвращаемые значения

Возвращает описание для изображения в фрейме изображения.


Возвращает mime-тип изображения

  • « KTaglib_ID3v2_AttachedPictureFrame::getDescription
  • KTaglib_ID3v2_AttachedPictureFrame::getType »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Возвращает mime-тип изображения

KTaglib_ID3v2_AttachedPictureFrame::getMimeType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::getMimeType — Возвращает mime-тип изображения

Описание

public KTaglib_ID3v2_AttachedPictureFrame::getMimeType ( void ) : string

Возвращает mime-тип изображения, представленного ассоциированным фреймом.

Обратите внимание, что этот метод может вернуть разные типа. Тогда как ID3v2.2 содержит mime-типы не начинающиеся с "image/", ID3v2.3 и v2.4 обычно начинаются с "image/". Таким образом, этот метод вернет "image/png" для IDv2.3 и просто "PNG" для ID3v2.2.

Обратите внимание, что даже если изображению соответствует фрейм, mime-тип может быть не задан и, в таком случае, будет возвращена пустая строка.

Возвращаемые значения

Возвращает mime-тип изображения, представленного связанным фреймом.


Возвращает тип изображения

  • « KTaglib_ID3v2_AttachedPictureFrame::getMimeType
  • KTaglib_ID3v2_AttachedPictureFrame::savePicture »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Возвращает тип изображения

KTaglib_ID3v2_AttachedPictureFrame::getType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::getType — Возвращает тип изображения

Описание

public KTaglib_ID3v2_AttachedPictureFrame::getType ( void ) : int

Возвращает тип изображения.

Спецификация ID3v2 позволяет AttachedPictureFrame задавать тип изображения. Например, FrontCover или FileIcon. Полное описание допустимых типов читайте в описании класса KTaglib_ID3v2_AttachedPictureFrame.

Возвращаемые значения

Возвращает тип изображения в виде целого числа.


Записывает изображение в файл

  • « KTaglib_ID3v2_AttachedPictureFrame::getType
  • KTaglib_ID3v2_AttachedPictureFrame::setMimeType »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Записывает изображение в файл

KTaglib_ID3v2_AttachedPictureFrame::savePicture

(0.0.1)

KTaglib_ID3v2_AttachedPictureFrame::savePicture — Записывает изображение в файл

Описание

public KTaglib_ID3v2_AttachedPictureFrame::savePicture ( string $filename ) : bool

Записывает изображение в файл.

Возвращаемые значения

Возвращает TRUE или FALSE.


Устанавливает mime-тип изображения

  • « KTaglib_ID3v2_AttachedPictureFrame::savePicture
  • KTaglib_ID3v2_AttachedPictureFrame::setPicture »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Устанавливает mime-тип изображения

KTaglib_ID3v2_AttachedPictureFrame::setMimeType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::setMimeType — Устанавливает mime-тип изображения

Описание

public KTaglib_ID3v2_AttachedPictureFrame::getMimeType ( string $type ) : string

Устанавливает mime-тип изображения. Чаще всего это "image/png" или "image/jpeg".


Установить фрейм изображения для заданного изображения

  • « KTaglib_ID3v2_AttachedPictureFrame::setMimeType
  • KTaglib_ID3v2_AttachedPictureFrame::setType »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Установить фрейм изображения для заданного изображения

KTaglib_ID3v2_AttachedPictureFrame::setPicture

(0.0.1)

KTaglib_ID3v2_AttachedPictureFrame::setPicture — Установить фрейм изображения для заданного изображения

Описание

public KTaglib_ID3v2_AttachedPictureFrame::setPicture ( string $filename ) : void

Добавляет изображение из указанного файла. Обратите внимание, что изображение не будет записано, пока вы самостоятельно не вызовите метод записи для соответствующего объекта.

Возвращаемые значения

Возвращает TRUE или FALSE.


Установить тип изображения

  • « KTaglib_ID3v2_AttachedPictureFrame::setPicture
  • oggvorbis »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Установить тип изображения

KTaglib_ID3v2_AttachedPictureFrame::setType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::setType — Установить тип изображения

Описание

public KTaglib_ID3v2_AttachedPictureFrame::setType ( int $type ) : void

Установить тип изображения. Например, FrontCover или FileIcon. Полное описание допустимых типов читайте в описании класса KTaglib_ID3v2_AttachedPictureFrame.


OGG/Vorbis

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Опции контекста
  • Примеры
    • Примеры использования обертки ogg://.


Введение

Формат файлов OGG/Vorbis, как определено в » http://www.vorbis.com/ - это схема сжатия аудио-потока с использованием множества факторов и минимальными потерями качества. Модуль добавляет поддержку Ogg Vorbis в Обертки URL PHP. Когда используется в режиме чтения, сжатые данные OGG/Vorbis расжимаются в сырой аудио поток PCM в одном из шести форматов кодирования PCM, перечисленных в разделе предопределенные константы.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Для модуля требуется PHP >= 4.3.0, » libogg >= 1.0 и » libvorbis >= 1.0.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/oggvorbis


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

OGG/Vorbis поддерживает кодирование PCM в следующих форматах
Константа | Описание
OGGVORBIS_PCM_U8 | Беззнаковый 8-битный PCM.
OGGVORBIS_PCM_S8 | Знаковый 8-битный PCM.
OGGVORBIS_PCM_U16_LE | Беззнаковый 16-битный PCM. Порядок байт Little Endian.
OGGVORBIS_PCM_U16_BE | Беззнаковый 16-битный PCM. Порядок байт Big Endian.
OGGVORBIS_PCM_S16_LE | Знаковый 16-битный PCM. Порядок байт Little Endian.
OGGVORBIS_PCM_S16_BE | Знаковый 16-битный PCM. Порядок байт Big Endian.


Опции контекста

Опции настройки OGG/Vorbis
Опция | Определение | Применение | Значение по умолчанию
pcm_mode | Используется байтовая кодировка PCM. Смотрите константы ниже. | Чтение / Запись | OGGVORBIS_PCM_S16_LE
rate | Частота PCM. Измеряется в герцах. | Только запись | 44100
bitrate | Vorbis Average Bitrate Encoding / Variable Bitrate Encoding. Измеряется в bps (ABR) или Уровне Качества (VBR: 0.0 to 1.0). 128000 ABR примерно равно 0.4 VBR. | Только запись | 128000
channels | Количество каналов PCM. 1 == Моно, 2 == Стерео. | Только запись | 2
serialno | Серийный номер потока внутри файла. Должен быть уникален внутри файла. Так как потенциально возможна ситуация, что в связанном файле будет дублирующий серийный номер, озаботьтесь самостоятельным управлением серийными номерами при кодировании. | Только запись | Random
comments | Ассоциативный массив комментариев файла. Должно быть переведено с помощью strtoupper($name) . "=$value". Обратите внимание: Данная опция контекста не доступна в oggvorbis-0.1 | Только запись | array('ENCODER' => 'PHP/OggVorbis, http://pear.php.net/oggvorbis')


  • « Опции контекста
  • Примеры использования обертки ogg://. »
  • PHP Manual
  • oggvorbis
  • Примеры

Примеры

Содержание

  • Примеры использования обертки ogg://.


Примеры использования обертки ogg://.

Пример #1 Чтение файла OGG/Vorbis

<?php
dl("oggvorbis.so");

/* По умолчанию, ogg:// будет декодировать в знаковый 16-битный Little Endian формат */
$fp = fopen('ogg://myaudio.ogg', 'r');

/* Сбор информации о файле. */
$metadata = stream_get_meta_data($fp);

/* проверка первой песни (обычно единственной, но файл OGG/Vorbis может быть связанным) */
$songdata = $metadata['wrapper_data'][0];

echo "Файл OGG/Vorbis, закодированный: {$songdata['vendor']}\n.";
echo "  {$songdata['channels']} каналы выборки {$songdata['rate']}Hz закодированные в {$songdata['bitrate_nominal']}bps.\n";
foreach($songdata['comments'] as $comment) {
    echo "  $comment\n";
}

while ($audio_data = fread($fp, 8192)) {
  /* Делаем что-то с PCM-аудио, которое достали из OGG.
     Копирование в /dev/dsp - хороший выбор на системах linux,
     только убедитесь, что ваше устройство соответствующим образом настроено. */
}

fclose($fp);

?>

Пример #2 Кодирование аудио-файла в OGG/Vorbis

<?php
dl('oggvorbis.so');

$context = stream_context_create(array('ogg'=>array(
             'pcm_mode' => OGGVORBIS_PCM_S8,  /* Знаковое 8-битное аудио */
             'rate' => 44100,                 /* Качество 44kHz CD */
             'bitrate' => 0.5,                /* Среднее качество VBR */
             'channels' => 1,                 /* Моно */
             'serialno' => 12345)));          /* Уникальный номер внутри файла */

/* Открываем файл для добавления.  Мы "привяжем" второй поток OGG в конец файла. */
$ogg = fopen('ogg://mysong.ogg', 'a', false, $context);

$pcm = fopen('mysample.pcm', 'r');

/* Сжатие необработанного звука PCM из mysample.pcm в mysong.ogg */
stream_copy_to_stream($pcm, $ogg);

fclose($pcm);
fclose($ogg);
?>


Аудиопотоки OpenAL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции OpenAL
    • openal_buffer_create — Сгенерировать буфер OpenAL
    • openal_buffer_data — Загрузка буфера с данными
    • openal_buffer_destroy — Уничтожает буфер OpenAL
    • openal_buffer_get — Получить свойство буфера OpenAL
    • openal_buffer_loadwav — Загрузить файл в формате wav в буфер
    • openal_context_create — Создать контекст обработки звука
    • openal_context_current — Сделать указанный контекст текущим
    • openal_context_destroy — Уничтожает контекст
    • openal_context_process — Обработать указанный контекст
    • openal_context_suspend — Приостановить указанный контекст
    • openal_device_close — Закрыть устройство OpenAL
    • openal_device_open — Инициализировать звуковой уровень OpenAL
    • openal_listener_get — Получить свойство прослушивателя
    • openal_listener_set — Установка свойства прослушивателя
    • openal_source_create — Сгенерировать источник ресурса
    • openal_source_destroy — Уничтожение ресурса источника
    • openal_source_get — Получить свойство источника OpenAL
    • openal_source_pause — Поставить источник на паузу
    • openal_source_play — Начать воспроизведение источника
    • openal_source_rewind — Перемотатать источник в начало
    • openal_source_set — Установить свойство источника
    • openal_source_stop — Остановить воспроизведение источника
    • openal_stream — Начать потоковую передачу с источника


Введение

Платформонезависимая работа с аудиопотоками. Требуется » библиотека OpenAL.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/openal.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Типы ресурсов

Это расширение определяет четыре типа ресурсов:
Open AL(Device) - возвращается openal_device_open(),
Open AL(Context) - возвращается openal_context_create(),
Open AL(Buffer) - возвращается openal_buffer_create(),
и Open AL(Source) - возвращается openal_source_create().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

ALC_FREQUENCY (integer)
Атрибут контекста
ALC_REFRESH (integer)
Атрибут контекста
ALC_SYNC (integer)
Атрибут контекста
AL_FREQUENCY (integer)
Настройка буфера
AL_BITS (integer)
Настройка буфера
AL_CHANNELS (integer)
Настройка буфера
AL_SIZE (integer)
Настройка буфера
AL_BUFFER (integer)
Настройка источника/слушателя (целое число)
AL_SOURCE_RELATIVE (integer)
Настройка источника/слушателя (целое число)
AL_SOURCE_STATE (integer)
Настройка источника/слушателя (целое число)
AL_PITCH (integer)
Настройка источника/слушателя (рациональное число)
AL_GAIN (integer)
Настройка источника/слушателя (рациональное число)
AL_MIN_GAIN (integer)
Настройка источника/слушателя (рациональное число)
AL_MAX_GAIN (integer)
Настройка источника/слушателя (рациональное число)
AL_MAX_DISTANCE (integer)
Настройка источника/слушателя (рациональное число)
AL_ROLLOFF_FACTOR (integer)
Настройка источника/слушателя (рациональное число)
AL_CONE_OUTER_GAIN (integer)
Настройка источника/слушателя (рациональное число)
AL_CONE_INNER_ANGLE (integer)
Настройка источника/слушателя (рациональное число)
AL_CONE_OUTER_ANGLE (integer)
Настройка источника/слушателя (рациональное число)
AL_REFERENCE_DISTANCE (integer)
Настройка источника/слушателя (рациональное число)
AL_POSITION (integer)
Настройка источника/слушателя (рациональный вектор)
AL_VELOCITY (integer)
Настройка источника/слушателя (рациональный вектор)
AL_DIRECTION (integer)
Настройка источника/слушателя (рациональный вектор)
AL_ORIENTATION (integer)
Настройка источника/слушателя (рациональный вектор)
AL_FORMAT_MONO8 (integer)
Формат PCM
AL_FORMAT_MONO16 (integer)
Формат PCM
AL_FORMAT_STEREO8 (integer)
Формат PCM
AL_FORMAT_STEREO16 (integer)
Формат PCM
AL_INITIAL (integer)
Статус источника
AL_PLAYING (integer)
Статус источника
AL_PAUSED (integer)
Статус источника
AL_STOPPED (integer)
Статус источника
AL_LOOPING (integer)
Статус источника
AL_TRUE (integer)
Логическое значение, понимаемое OpenAL
AL_FALSE (integer)
Логическое значение, понимаемое OpenAL


Функции OpenAL

Содержание

  • openal_buffer_create — Сгенерировать буфер OpenAL
  • openal_buffer_data — Загрузка буфера с данными
  • openal_buffer_destroy — Уничтожает буфер OpenAL
  • openal_buffer_get — Получить свойство буфера OpenAL
  • openal_buffer_loadwav — Загрузить файл в формате wav в буфер
  • openal_context_create — Создать контекст обработки звука
  • openal_context_current — Сделать указанный контекст текущим
  • openal_context_destroy — Уничтожает контекст
  • openal_context_process — Обработать указанный контекст
  • openal_context_suspend — Приостановить указанный контекст
  • openal_device_close — Закрыть устройство OpenAL
  • openal_device_open — Инициализировать звуковой уровень OpenAL
  • openal_listener_get — Получить свойство прослушивателя
  • openal_listener_set — Установка свойства прослушивателя
  • openal_source_create — Сгенерировать источник ресурса
  • openal_source_destroy — Уничтожение ресурса источника
  • openal_source_get — Получить свойство источника OpenAL
  • openal_source_pause — Поставить источник на паузу
  • openal_source_play — Начать воспроизведение источника
  • openal_source_rewind — Перемотатать источник в начало
  • openal_source_set — Установить свойство источника
  • openal_source_stop — Остановить воспроизведение источника
  • openal_stream — Начать потоковую передачу с источника


Сгенерировать буфер OpenAL

  • « Функции OpenAL
  • openal_buffer_data »
  • PHP Manual
  • Функции OpenAL
  • Сгенерировать буфер OpenAL

openal_buffer_create

(PECL openal >= 0.1.0)

openal_buffer_create — Сгенерировать буфер OpenAL

Описание

openal_buffer_create ( void ) : resource

Возвращаемые значения

Возвращает ресурс Open AL(Buffer) в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_buffer_loadwav() - Загрузить файл в формате wav в буфер
  • openal_buffer_data() - Загрузка буфера с данными


Загрузка буфера с данными

  • « openal_buffer_create
  • openal_buffer_destroy »
  • PHP Manual
  • Функции OpenAL
  • Загрузка буфера с данными

openal_buffer_data

(PECL openal >= 0.1.0)

openal_buffer_data — Загрузка буфера с данными

Описание

openal_buffer_data ( resource $buffer , int $format , string $data , int $freq ) : bool

Список параметров

buffer

Ресурс Open AL(Buffer) (созданный ранее с помощью openal_buffer_create()).

format

Формат data, представленный одной из констант: AL_FORMAT_MONO8, AL_FORMAT_MONO16, AL_FORMAT_STEREO8 и AL_FORMAT_STEREO16

data

Блок двоичных аудиоданных в указанном формате format и с частотой freq.

freq

Частота data, заданная в герцах.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_buffer_loadwav() - Загрузить файл в формате wav в буфер
  • openal_stream() - Начать потоковую передачу с источника


Уничтожает буфер OpenAL

  • « openal_buffer_data
  • openal_buffer_get »
  • PHP Manual
  • Функции OpenAL
  • Уничтожает буфер OpenAL

openal_buffer_destroy

(PECL openal >= 0.1.0)

openal_buffer_destroy — Уничтожает буфер OpenAL

Описание

openal_buffer_destroy ( resource $buffer ) : bool

Список параметров

buffer

Ресурс Open AL(Buffer) (ранее созданный с помощью openal_buffer_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_buffer_create() - Сгенерировать буфер OpenAL


Получить свойство буфера OpenAL

  • « openal_buffer_destroy
  • openal_buffer_loadwav »
  • PHP Manual
  • Функции OpenAL
  • Получить свойство буфера OpenAL

openal_buffer_get

(PECL openal >= 0.1.0)

openal_buffer_get — Получить свойство буфера OpenAL

Описание

openal_buffer_get ( resource $buffer , int $property ) : int

Список параметров

buffer

Ресурс Open AL(Buffer) (созданный ранее с помощью openal_buffer_create()).

property

Одно из свойств, заданное в виде константы: AL_FREQUENCY, AL_BITS, AL_CHANNELS и AL_SIZE.

Возвращаемые значения

Возвращает целочисленное значение, соответствующее запрошенному свойству property или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_buffer_create() - Сгенерировать буфер OpenAL


Загрузить файл в формате wav в буфер

  • « openal_buffer_get
  • openal_context_create »
  • PHP Manual
  • Функции OpenAL
  • Загрузить файл в формате wav в буфер

openal_buffer_loadwav

(PECL openal >= 0.1.0)

openal_buffer_loadwav — Загрузить файл в формате wav в буфер

Описание

openal_buffer_loadwav ( resource $buffer , string $wavfile ) : bool

Список параметров

buffer

Ресурс Open AL(Buffer) (ранее созданный с помощью openal_buffer_create()).

wavfile

Путь к файлу .wav в файловой системе local.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_buffer_data() - Загрузка буфера с данными
  • openal_stream() - Начать потоковую передачу с источника


Создать контекст обработки звука

  • « openal_buffer_loadwav
  • openal_context_current »
  • PHP Manual
  • Функции OpenAL
  • Создать контекст обработки звука

openal_context_create

(PECL openal >= 0.1.0)

openal_context_create — Создать контекст обработки звука

Описание

openal_context_create ( resource $device ) : resource

Список параметров

device

Ресурс Open AL(Device) (созданный ранее с помощью openal_device_create()).

Возвращаемые значения

Возвращает ресурс Open AL(Context) в случае успешного выполнения, FALSE в случае возникновения ошибки.

Смотрите также

  • openal_device_open() - Инициализировать звуковой уровень OpenAL
  • openal_context_destroy() - Уничтожает контекст


Сделать указанный контекст текущим

  • « openal_context_create
  • openal_context_destroy »
  • PHP Manual
  • Функции OpenAL
  • Сделать указанный контекст текущим

openal_context_current

(PECL openal >= 0.1.0)

openal_context_current — Сделать указанный контекст текущим

Описание

openal_context_current ( resource $context ) : bool

Список параметров

context

Ресурс Open AL(Context) (созданный ранее с помощью openal_context_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_context_create() - Создать контекст обработки звука


Уничтожает контекст

  • « openal_context_current
  • openal_context_process »
  • PHP Manual
  • Функции OpenAL
  • Уничтожает контекст

openal_context_destroy

(PECL openal >= 0.1.0)

openal_context_destroy — Уничтожает контекст

Описание

openal_context_destroy ( resource $context ) : bool

Список параметров

context

Ресурс Open AL(Context) (созданный ранее с помощью openal_context_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_context_create() - Создать контекст обработки звука


Обработать указанный контекст

  • « openal_context_destroy
  • openal_context_suspend »
  • PHP Manual
  • Функции OpenAL
  • Обработать указанный контекст

openal_context_process

(PECL openal >= 0.1.0)

openal_context_process — Обработать указанный контекст

Описание

openal_context_process ( resource $context ) : bool

Список параметров

context

Ресурс Open AL(Context) (созданный ранее с помощью openal_context_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_context_create() - Создать контекст обработки звука
  • openal_context_current() - Сделать указанный контекст текущим
  • openal_context_suspend() - Приостановить указанный контекст


Приостановить указанный контекст

  • « openal_context_process
  • openal_device_close »
  • PHP Manual
  • Функции OpenAL
  • Приостановить указанный контекст

openal_context_suspend

(PECL openal >= 0.1.0)

openal_context_suspend — Приостановить указанный контекст

Описание

openal_context_suspend ( resource $context ) : bool

Список параметров

context

Ресурс Open AL(Context) (созданный ранее с помощью openal_context_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_context_create() - Создать контекст обработки звука
  • openal_context_current() - Сделать указанный контекст текущим
  • openal_context_process() - Обработать указанный контекст


Закрыть устройство OpenAL

  • « openal_context_suspend
  • openal_device_open »
  • PHP Manual
  • Функции OpenAL
  • Закрыть устройство OpenAL

openal_device_close

(PECL openal >= 0.1.0)

openal_device_close — Закрыть устройство OpenAL

Описание

openal_device_close ( resource $device ) : bool

Список параметров

device

Ресурс Open AL(Device) (созданный ранее с помощью openal_device_open()), который нужно закрыть.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_device_open() - Инициализировать звуковой уровень OpenAL


Инициализировать звуковой уровень OpenAL

  • « openal_device_close
  • openal_listener_get »
  • PHP Manual
  • Функции OpenAL
  • Инициализировать звуковой уровень OpenAL

openal_device_open

(PECL openal >= 0.1.0)

openal_device_open — Инициализировать звуковой уровень OpenAL

Описание

openal_device_open ([ string $device_desc ] ) : resource

Список параметров

device_desc

При необходимости открыть аудиоустройство, указав значение параметра device_desc. Если device_desc не указан, будет использовано первое аудиоустройство.

Возвращаемые значения

Возвращает ресурс Open AL(Device) в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_device_close() - Закрыть устройство OpenAL
  • openal_context_create() - Создать контекст обработки звука


Получить свойство прослушивателя

  • « openal_device_open
  • openal_listener_set »
  • PHP Manual
  • Функции OpenAL
  • Получить свойство прослушивателя

openal_listener_get

(PECL openal >= 0.1.0)

openal_listener_get — Получить свойство прослушивателя

Описание

openal_listener_get ( int $property ) : mixed

Список параметров

property

Запрашиваемое свойство, представленное одной из констант:
AL_GAIN (float),
AL_POSITION (array(float,float,float)),
AL_VELOCITY (array(float,float,float)) и
AL_ORIENTATION (array(float,float,float)).

Возвращаемые значения

Возвращает число с плавающей точкой или массив чисел с плавающими точками (при необходимости) или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_listener_set() - Установка свойства прослушивателя


Установка свойства прослушивателя

  • « openal_listener_get
  • openal_source_create »
  • PHP Manual
  • Функции OpenAL
  • Установка свойства прослушивателя

openal_listener_set

(PECL openal >= 0.1.0)

openal_listener_set — Установка свойства прослушивателя

Описание

openal_listener_set ( int $property , mixed $setting ) : bool

Список параметров

property

Устанавливаемое свойство, представленное одной из констант:
AL_GAIN (float),
AL_POSITION (array(float,float,float)),
AL_VELOCITY (array(float,float,float)) и
AL_ORIENTATION (array(float,float,float)).

setting

Значение для установки, либо число с плавающей точкой, либо массив с числами с плавающими точками.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_listener_get() - Получить свойство прослушивателя


Сгенерировать источник ресурса

  • « openal_listener_set
  • openal_source_destroy »
  • PHP Manual
  • Функции OpenAL
  • Сгенерировать источник ресурса

openal_source_create

(PECL openal >= 0.1.0)

openal_source_create — Сгенерировать источник ресурса

Описание

openal_source_create ( void ) : resource

Возвращаемые значения

Возвращает ресурс Open AL(Source) в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_source_set() - Установить свойство источника
  • openal_source_play() - Начать воспроизведение источника
  • openal_source_destroy() - Уничтожение ресурса источника


Уничтожение ресурса источника

  • « openal_source_create
  • openal_source_get »
  • PHP Manual
  • Функции OpenAL
  • Уничтожение ресурса источника

openal_source_destroy

(PECL openal >= 0.1.0)

openal_source_destroy — Уничтожение ресурса источника

Описание

openal_source_destroy ( resource $source ) : bool

Список параметров

source

Ресурс Open AL(Source) (созданный ранее с помощью openal_source_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_source_create() - Сгенерировать источник ресурса


Получить свойство источника OpenAL

  • « openal_source_destroy
  • openal_source_pause »
  • PHP Manual
  • Функции OpenAL
  • Получить свойство источника OpenAL

openal_source_get

(PECL openal >= 0.1.0)

openal_source_get — Получить свойство источника OpenAL

Описание

openal_source_get ( resource $source , int $property ) : mixed

Список параметров

source

Ресурс Open AL(Source) (созданный ранее с помощью openal_source_create()).

property

Получаемое свойство, представленное одной из констант: 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)).

Возвращаемые значения

Возвращает тип, связанный с извлекаемым свойством или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_source_create() - Сгенерировать источник ресурса
  • openal_source_set() - Установить свойство источника
  • openal_source_play() - Начать воспроизведение источника


Поставить источник на паузу

  • « openal_source_get
  • openal_source_play »
  • PHP Manual
  • Функции OpenAL
  • Поставить источник на паузу

openal_source_pause

(PECL openal >= 0.1.0)

openal_source_pause — Поставить источник на паузу

Описание

openal_source_pause ( resource $source ) : bool

Список параметров

source

Ресурс Open AL(Source) (созданный ранее с помощью openal_source_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_source_stop() - Остановить воспроизведение источника
  • openal_source_play() - Начать воспроизведение источника
  • openal_source_rewind() - Перемотатать источник в начало


Начать воспроизведение источника

  • « openal_source_pause
  • openal_source_rewind »
  • PHP Manual
  • Функции OpenAL
  • Начать воспроизведение источника

openal_source_play

(PECL openal >= 0.1.0)

openal_source_play — Начать воспроизведение источника

Описание

openal_source_play ( resource $source ) : bool

Список параметров

source

Ресурс Open AL(Source) (созданный ранее с помощью openal_source_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_source_stop() - Остановить воспроизведение источника
  • openal_source_pause() - Поставить источник на паузу
  • openal_source_rewind() - Перемотатать источник в начало


Перемотатать источник в начало

  • « openal_source_play
  • openal_source_set »
  • PHP Manual
  • Функции OpenAL
  • Перемотатать источник в начало

openal_source_rewind

(PECL openal >= 0.1.0)

openal_source_rewind — Перемотатать источник в начало

Описание

openal_source_rewind ( resource $source ) : bool

Список параметров

source

Ресурс Open AL(Source) (созданный ранее с помощью openal_source_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_source_stop() - Остановить воспроизведение источника
  • openal_source_pause() - Поставить источник на паузу
  • openal_source_play() - Начать воспроизведение источника


Установить свойство источника

  • « openal_source_rewind
  • openal_source_stop »
  • PHP Manual
  • Функции OpenAL
  • Установить свойство источника

openal_source_set

(PECL openal >= 0.1.0)

openal_source_set — Установить свойство источника

Описание

openal_source_set ( resource $source , int $property , mixed $setting ) : bool

Список параметров

source

Ресурс Open AL(Source) (созданный ранее с помощью openal_source_create()).

property

Устанавливаемое свойство, представляющее одну из констант: AL_BUFFER (OpenAL (источник)), 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

Значение для присвоения указанному свойству property. Обратитесь к описанию параметра property для описания ожидаемых параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_source_create() - Сгенерировать источник ресурса
  • openal_source_get() - Получить свойство источника OpenAL
  • openal_source_play() - Начать воспроизведение источника


Остановить воспроизведение источника

  • « openal_source_set
  • openal_stream »
  • PHP Manual
  • Функции OpenAL
  • Остановить воспроизведение источника

openal_source_stop

(PECL openal >= 0.1.0)

openal_source_stop — Остановить воспроизведение источника

Описание

openal_source_stop ( resource $source ) : bool

Список параметров

source

Ресурс Open AL(Source) (созданный ранее с помощью openal_source_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_source_play() - Начать воспроизведение источника
  • openal_source_pause() - Поставить источник на паузу
  • openal_source_rewind() - Перемотатать источник в начало


Начать потоковую передачу с источника

  • « openal_source_stop
  • Службы аутентификации »
  • PHP Manual
  • Функции OpenAL
  • Начать потоковую передачу с источника

openal_stream

(PECL openal >= 0.1.0)

openal_stream — Начать потоковую передачу с источника

Описание

openal_stream ( resource $source , int $format , int $rate ) : resource

Список параметров

source

Ресурс Open AL(Source) (созданный ранее с помощью openal_source_create()).

format

Формат данных data, представленный одной из констант: AL_FORMAT_MONO8, AL_FORMAT_MONO16, AL_FORMAT_STEREO8 и AL_FORMAT_STEREO16

rate

Частота передачи данных в поток задается в герцах.

Возвращаемые значения

Возвращает ресурс потока в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_source_create() - Сгенерировать источник ресурса
  • fwrite() - Бинарно-безопасная запись в файл


Службы аутентификации

  • KADM5 — Kerberos V
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции KADM5
  • Radius
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции Radius


Kerberos V

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
    • Константы для флагов атрибутов
    • Константы для опций
  • Примеры
    • Базовое использование
  • Функции KADM5
    • kadm5_chpass_principal — Изменить пароль принципала
    • kadm5_create_principal — Создать принципала kerberos с заданными параметрами
    • kadm5_delete_principal — Удалить принципала kerberos
    • kadm5_destroy — Закрытие соединения с сервером kerberos и высвобождение всех связанных ресурсов
    • kadm5_flush — Сброс всех изменений в базу данных Kerberos
    • kadm5_get_policies — Получить все политики с сервера Kerberos
    • kadm5_get_principal — Получение записей принципала с сервера Kerberos
    • kadm5_get_principals — Получить всех принципалов из базы данных Kerberos
    • kadm5_init_with_password — Открывает соединение с библиотекой KADM5
    • kadm5_modify_principal — Изменяет принципала kerberos в соответствии с заданными параметрами


Введение

Пакет позволяет получить доступ к серверу Kerberos V. Вы сможете создавать, изменять и удалять принципалов и политики Kerberos V.

Более подробно про Kerberos можно почитать тут: » http://web.mit.edu/kerberos/www/.

Документация по Kerberos и KADM5 располагается тут: » http://web.mit.edu/kerberos/www/krb5-1.2/krb5-1.2.8/doc/admin_toc.html.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/kadm5.

Замечание:

Если данная опция используется без указания пути к KADM5, PHP будет использовать встроенные клиентские библиотеки KADM5. Пользователи, использующие другие приложения совместно с KADM5 (к примеру, PHP 4 и PHP 5 одновременно или auth-kadm5) должны в обязательном порядке указывать путь до KADM5: --with-kadm5=/path/to/kadm5. Это вынудит PHP использовать клиентские библиотеки установленные с KADM5, что позволит избежать конфликтов.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Модуль определяет обработчик KADM5, возвращаемый kadm5_init_with_password().


Предопределенные константы

Содержание

  • Константы для флагов атрибутов
  • Константы для опций

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.


Константы для флагов атрибутов

Функции kadm5_create_principal(),
kadm5_modify_principal() и
kadm5_modify_principal() позволяют задавать
специальные атрибуты, используя битовые маски из следующих констант:

Используемые KDC аттрибуты
Константы
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


Константы для опций

Функции kadm5_create_principal(),
kadm5_modify_principal() и
kadm5_get_principal() позволяют указывать, либо возвращать
опции принципала в виде ассоциативного массива.
Ключи массива задаются строковыми константами:

Опции для создания/изменения/удаления/извлечения принципалов
Константа | Тип | Описание
KADM5_PRINCIPAL | long | Временная метка Kerberos, определяющая время, после которого принципал считается недействительным.
KADM5_PRINC_EXPIRE_TIME | long | Временная метка Kerberos, определяющая время, после которого принципал считается недействительным.
KADM5_LAST_PW_CHANGE | long | Время последнего изменения пароля принципала.
KADM5_PW_EXPIRATION | long | Временная метка Kerberos, определяющая время, после которого текущий пароль принципала должен быть изменен.
KADM5_MAX_LIFE | long | Максимальный срок жизни любого билета Kerberos, назначенного принципалу.
KADM5_MAX_RLIFE | long | Максимальный срок жизни любого возобновляемого билета Kerberos, запрошенного или назначенного принципалу.
KADM5_MOD_NAME | string | Имя принципала Kerberos, который последним модифицировал указанного принципала.
KADM5_MOD_TIME | long | Время последнего изменения принципала в виде временной метки Kerberos.
KADM5_KVNO | long | Версия текущего ключа принципала.
KADM5_POLICY | string | Имя политики, управляющего данным принципалом.
KADM5_CLEARPOLICY | long | Обычно, новому принципалу назначается политика по умолчанию 'default'. KADM5_CLEARPOLICY подавляет такое поведение.
KADM5_LAST_SUCCESS | long | Время последнего успешного AS_REQ.
KADM5_LAST_FAILED | long | Время последнего неудачного AS_REQ.
KADM5_FAIL_AUTH_COUNT | long | Количество последовательных неуспешных AS_REQ.
KADM5_RANDKEY | long | Генерирует случайный пароль принципала. Параметр password будет проигнорирован.
KADM5_ATTRIBUTES | long | Битовая маска аттрибутов для использования KDC.


  • « Константы для опций
  • Базовое использование »
  • PHP Manual
  • KADM5
  • Примеры

Примеры

Содержание

  • Базовое использование


Базовое использование

Этот простой пример демонстрирует соединение, запрос, печать его результатов и закрытие соединения с базой данных KADM5.

Пример #1 Обзорный пример модуля KADM5

<?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);
?>


Функции KADM5

Содержание

  • kadm5_chpass_principal — Изменить пароль принципала
  • kadm5_create_principal — Создать принципала kerberos с заданными параметрами
  • kadm5_delete_principal — Удалить принципала kerberos
  • kadm5_destroy — Закрытие соединения с сервером kerberos и высвобождение всех связанных ресурсов
  • kadm5_flush — Сброс всех изменений в базу данных Kerberos
  • kadm5_get_policies — Получить все политики с сервера Kerberos
  • kadm5_get_principal — Получение записей принципала с сервера Kerberos
  • kadm5_get_principals — Получить всех принципалов из базы данных Kerberos
  • kadm5_init_with_password — Открывает соединение с библиотекой KADM5
  • kadm5_modify_principal — Изменяет принципала kerberos в соответствии с заданными параметрами


Изменить пароль принципала

  • « Функции KADM5
  • kadm5_create_principal »
  • PHP Manual
  • Функции KADM5
  • Изменить пароль принципала

kadm5_chpass_principal

(PECL kadm5 >= 0.2.3)

kadm5_chpass_principal — Изменить пароль принципала

Описание

kadm5_chpass_principal ( resource $handle , string $principal , string $password ) : bool

kadm5_chpass_principal() устанавливает новый пароль password для principal.

Список параметров

handle

Обработчик KADM5.

principal

Принципал.

password

Новый пароль.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример изменения пароля принципала

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

kadm5_chpass_principal($handle, "burbach@GONICUS.LOCAL", "newpassword");

kadm5_destroy($handle);
?>


Создать принципала kerberos с заданными параметрами

  • « kadm5_chpass_principal
  • kadm5_delete_principal »
  • PHP Manual
  • Функции KADM5
  • Создать принципала kerberos с заданными параметрами

kadm5_create_principal

(PECL kadm5 >= 0.2.3)

kadm5_create_principal — Создать принципала kerberos с заданными параметрами

Описание

kadm5_create_principal ( resource $handle , string $principal [, string $password [, array $options ]] ) : bool

Создает принципала principal с заданным паролем password.

Список параметров

handle

Обработчик KADM5.

principal

Принципал.

password

Если password не задан, или задан как NULL, будет создан случайный пароль.

options

Можно задать набор необязательных параметров в виде массива 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 Пример создания принципала

<?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_modify_principal() - Изменяет принципала kerberos в соответствии с заданными параметрами
  • kadm5_delete_principal() - Удалить принципала kerberos


Удалить принципала kerberos

  • « kadm5_create_principal
  • kadm5_destroy »
  • PHP Manual
  • Функции KADM5
  • Удалить принципала kerberos

kadm5_delete_principal

(PECL kadm5 >= 0.2.3)

kadm5_delete_principal — Удалить принципала kerberos

Описание

kadm5_delete_principal ( resource $handle , string $principal ) : bool

Удаляет принципала principal из базы данных Kerberos.

Список параметров

handle

Обработчик KADM5.

principal

Принципал для удаления.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования kadm5_delete_principal()

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

kadm5_delete_principal($handle, "burbach@GONICUS.LOCAL");

kadm5_destroy($handle);
?>

Смотрите также

  • kadm5_modify_principal() - Изменяет принципала kerberos в соответствии с заданными параметрами
  • kadm5_create_principal() - Создать принципала kerberos с заданными параметрами


Закрытие соединения с сервером kerberos и высвобождение всех связанных ресурсов

  • « kadm5_delete_principal
  • kadm5_flush »
  • PHP Manual
  • Функции KADM5
  • Закрытие соединения с сервером kerberos и высвобождение всех связанных ресурсов

kadm5_destroy

(PECL kadm5 >= 0.2.3)

kadm5_destroy — Закрытие соединения с сервером kerberos и высвобождение всех связанных ресурсов

Описание

kadm5_destroy ( resource $handle ) : bool

Закрывает соединение с сервером kerberos и высвобождает все связанные ресурсы.

Список параметров

handle

Обработчик KADM5.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • kadm5_init_with_password() - Открывает соединение с библиотекой KADM5


Сброс всех изменений в базу данных Kerberos

  • « kadm5_destroy
  • kadm5_get_policies »
  • PHP Manual
  • Функции KADM5
  • Сброс всех изменений в базу данных Kerberos

kadm5_flush

(PECL kadm5 >= 0.2.3)

kadm5_flush — Сброс всех изменений в базу данных Kerberos

Описание

kadm5_flush ( resource $handle ) : bool

Сбрасывает все изменения в базу данных Kerberos и оставляет соединение с сервером открытым.

Список параметров

handle

Обработчик KADM5.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Получить все политики с сервера Kerberos

  • « kadm5_flush
  • kadm5_get_principal »
  • PHP Manual
  • Функции KADM5
  • Получить все политики с сервера Kerberos

kadm5_get_policies

(PECL kadm5 >= 0.2.3)

kadm5_get_policies — Получить все политики с сервера Kerberos

Описание

kadm5_get_policies ( resource $handle ) : array

Возвращает массив с именами всех политик.

Список параметров

handle

Обработчик KADM5.

Возвращаемые значения

В случае успешного выполнения возвращает массив с политиками или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования kadm5_get_policies()

<?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);
?>


Получение записей принципала с сервера Kerberos

  • « kadm5_get_policies
  • kadm5_get_principals »
  • PHP Manual
  • Функции KADM5
  • Получение записей принципала с сервера Kerberos

kadm5_get_principal

(PECL kadm5 >= 0.2.3)

kadm5_get_principal — Получение записей принципала с сервера Kerberos

Описание

kadm5_get_principal ( resource $handle , string $principal ) : array

Возвращает записи принципала из базы данных Kerberos.

Список параметров

handle

Обработчик KADM5.

principal

Принципал.

Возвращаемые значения

В случае успешного выполнения возвращает массив опций, содержащий следующие ключи: 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 или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования kadm5_get_principal()

<?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_principals() - Получить всех принципалов из базы данных Kerberos


Получить всех принципалов из базы данных Kerberos

  • « kadm5_get_principal
  • kadm5_init_with_password »
  • PHP Manual
  • Функции KADM5
  • Получить всех принципалов из базы данных Kerberos

kadm5_get_principals

(PECL kadm5 >= 0.2.3)

kadm5_get_principals — Получить всех принципалов из базы данных Kerberos

Описание

kadm5_get_principals ( resource $handle ) : array

kadm5_get_principals() возвращает массив с именами всех принципалов.

Список параметров

handle

Обработчик KADM5.

Возвращаемые значения

В случае успешного выполнения возвращает массив имен принципалов или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования kadm5_get_principals()

<?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() - Получение записей принципала с сервера Kerberos


Открывает соединение с библиотекой KADM5

  • « kadm5_get_principals
  • kadm5_modify_principal »
  • PHP Manual
  • Функции KADM5
  • Открывает соединение с библиотекой KADM5

kadm5_init_with_password

(PECL kadm5 >= 0.2.3)

kadm5_init_with_password — Открывает соединение с библиотекой KADM5

Описание

kadm5_init_with_password ( string $admin_server , string $realm , string $principal , string $password ) : resource

Открывает соединение с библиотекой KADM5, используя принципала principal и пароль password для получения начальных параметров доступа от admin_server.

Список параметров

admin_server

Сервер.

realm

Определяет авторизованный домен для соединения.

principal

Принципал.

password

Если password пропущен или равен NULL, будет создан случайный ключ.

Возвращаемые значения

Возвращает обработчик KADM5 в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример инициализации KADM5

<?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_destroy().

Смотрите также

  • kadm5_destroy() - Закрытие соединения с сервером kerberos и высвобождение всех связанных ресурсов


Изменяет принципала kerberos в соответствии с заданными параметрами

  • « kadm5_init_with_password
  • Radius »
  • PHP Manual
  • Функции KADM5
  • Изменяет принципала kerberos в соответствии с заданными параметрами

kadm5_modify_principal

(PECL kadm5 >= 0.2.3)

kadm5_modify_principal — Изменяет принципала kerberos в соответствии с заданными параметрами

Описание

kadm5_modify_principal ( resource $handle , string $principal , array $options ) : bool

Изменяет принципала principal в соответствии с options.

Список параметров

handle

Обработчик KADM5.

principal

Принципал.

options

В качестве 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 Пример изменения принципала

<?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", $options);

kadm5_destroy($handle);
?>

Смотрите также

  • kadm5_create_principal() - Создать принципала kerberos с заданными параметрами
  • kadm5_delete_principal() - Удалить принципала kerberos


Radius

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
    • Опции RADIUS
    • типы пакетов RADIUS
    • Типы аттрибутов RADIUS
    • Аттрибуты RADIUS специфичные для разных производителей
  • Примеры
  • Функции Radius
    • 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_tagged_attr_data — Extracts the data from a tagged attribute
    • radius_get_tagged_attr_tag — Extracts the tag from a tagged 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_salt_encrypt_attr — Salt-encrypts a value
    • radius_send_request — Sends the request and waits for a reply
    • radius_server_secret — Returns the shared secret
    • radius_strerror — Returns an error message


Введение

Пакет базируется на библиотеке libradius (Remote Authentication Dial In User Service) из FreeBSD. Он позволяет производить учет и аутентификацию клиентов путем запросов к удаленным сетевым сервисам.

Этот PECL-модуль добавляет полную поддержку Radius Authentication (» RFC 2865) и Radius Accounting (» RFC 2866). Этот пакет доступен для Unix (тестировался во FreeBSD и Linux) и для Windows.

Замечание:

Подробное описание библиотеки libradius можно найти » тут. Детальная информация о файле конфигурации лежит » тут.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/radius.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Предопределенные константы

Содержание

  • Опции RADIUS
  • типы пакетов RADIUS
  • Типы аттрибутов RADIUS
  • Аттрибуты RADIUS специфичные для разных производителей

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

RADIUS_MPPE_KEY_LEN (integer)
Максимальная длина ключей MPPE.


Опции RADIUS

Некоторые функции RADIUS принимают опциональные флаги как битовые маски. Константы, представляющие эти опции, описаны ниже.

RADIUS_OPTION_SALT (integer)

Если установлено, то значение аттрибута будет зашифровано с солью.

RADIUS_OPTION_TAGGED (integer)

Если установлено, то значение аттрибута будет помечено тегом, заданным соответствующим параметром.


типы пакетов RADIUS

Пакеты RADIUS, будь то запрос или ответ, всегда включают тип. Эти константы полезны при задании типа при использовании radius_create_request() и при обработке ответа radius_send_request().

RADIUS_ACCESS_REQUEST (integer)

Запрос Access-Request (Запрос доступа), используется для аутентификации пользователя сервером RADIUS. Данные пакеты должны содержать аттрибут RADIUS_NAS_IP_ADDRESS или RADIUS_NAS_IDENTIFIER , также должны содержать RADIUS_USER_PASSWORD, RADIUS_CHAP_PASSWORD или RADIUS_STATE , и могут содержать аттрибут RADIUS_USER_NAME.

RADIUS_ACCESS_ACCEPT (integer)

Ответ Access-Accept (Доступ разрешен) приходит в ответ на запрос Access-Request и означает, что сервер RADIUS успешно аутентифицировал пользователя.

RADIUS_ACCESS_REJECT (integer)

Ответ Access-Reject (В доступе отказано) приходит в ответ на запрос Access-Request и означает, что сервер RADIUS не смог аутентифицировать пользователя.

RADIUS_ACCESS_CHALLENGE (integer)

Ответ Access-Challenge (СОмнение в праве на доступ) приходит в ответ на запрос Access-Request и означает, что серверу RADIUS требуется дополнительная информация для принятия решения по аутентификации.

RADIUS_ACCOUNTING_REQUEST (integer)

Запрос Accounting-Request (Запрос учетных данных), используется для передачи учетной информации для службы на сервер RADIUS.

RADIUS_ACCOUNTING_RESPONSE (integer)

Ответ Accounting-Response (Учетные данные) является ответом на запрос Accounting-Request.

RADIUS_COA_REQUEST (integer)

Запрос CoA-Request посылается с сервера RADIUS и означает, что изменилась авторизация в сеансе пользователя. Ответ должен быть отправлен в форме CoA-ACK или CoA-NAK.

Эта константа доступна в PECL radius 1.3.0 и выше.

RADIUS_COA_ACK (integer)

Ответ CoA-ACK, посылается на сервер RADIUS для обозначения, что авторизация пользователя обновлена.

Эта константа доступна в PECL radius 1.3.0 и выше.

RADIUS_COA_NAK (integer)

Ответ CoA-NAK, посылается на сервер RADIUS для обозначения, что авторизация пользователя не может быть обновлена.

Эта константа доступна в PECL radius 1.3.0 и выше.

RADIUS_DISCONNECT_REQUEST (integer)

Запрос Disconnect-Request (Запрос прерывания сессии), посылается с сервера RADIUS и означает, что необходимо прервать сеанс пользователя.

Эта константа доступна в PECL radius 1.3.0 и выше.

RADIUS_DISCONNECT_ACK (integer)

Ответ Disconnect-ACK, посылается на сервер RADIUS и означает, что пользовательская сессия завершена.

Эта константа доступна в PECL radius 1.3.0 и выше.

RADIUS_DISCONNECT_NAK (integer)

Ответ Disconnect-NAK, посылается на сервер RADIUS и означает, что пользовательская сессия не может быть завершена.

Эта константа доступна в PECL radius 1.3.0 и выше.


Типы аттрибутов RADIUS

Эти константы описывают типы аттрибутов RADIUS, которые можно использовать в функциях
radius_put_addr(), radius_put_attr(),
radius_put_int() и
radius_put_string().

RADIUS_USER_NAME (integer)

Аттрибут User-Name. Должен быть типа string и содержать имя аутентифицируемого пользователя. Аттрибут можно установить функцией radius_put_attr().

RADIUS_USER_PASSWORD (integer)

Аттрибут User-Password. Должен быть типа string и содержать пароль пользователя. Аттрибут можно установить функцией radius_put_attr(). Это значение будет обфусцировано при передаче согласно » секции 5.2 RFC 2865.

RADIUS_CHAP_PASSWORD (integer)

Аттрибут Chap-Password. Должен быть типа string и содержать идентификатор CHAP пользователя, 16 байт, содержащими MD5-хеш идентификатора CHAP, текстовое представление пароля и проверочное значение CHAP соединенными в одну строку. Обратите внимание, что проверочное значение CHAP также должно быть отдельно послано в аттрибуте RADIUS_CHAP_CHALLENGE.

Пример #1 Использование паролей CHAP

<?php
// Для начала создадим обработчик аутентификации и запрос.
$radh = radius_auth_open();
radius_add_server($radh, $server, $port, $secret, 3, 3);
radius_create_request($radh, RADIUS_ACCESS_REQUEST);

// Считая, что $password содержит пароль в незашифрованном виде, мы делаем:

// Создаем проверочное значение.
$challenge = mt_rand();

// Задаем идентификатор CHAP.
$ident = 1;

// Добавляем аттрибут Chap-Password.
$cp = md5(pack('Ca*', $ident, $password.$challenge), true);
radius_put_attr($radh, RADIUS_CHAP_PASSWORD, pack('C', $ident).$cp);

// Добавляем аттрибут Chap-Challenge.
radius_put_attr($radh, RADIUS_CHAP_CHALLENGE, $challenge);

/* Теперь можно добавлять прочие необходимые аттриубты
 * и вызывать radius_send_request(). */
?>

RADIUS_NAS_IP_ADDRESS (integer)

Аттрибут NAS-IP-Address. Ожидается, что значение будет IP-адресом клиента RADIUS в виде целого числа. Аттрибут устанавливается функцией radius_put_addr().

RADIUS_NAS_PORT (integer)

Аттрибут NAS-Port. Ожидается, что значение будет физическим портом клиента RADIUS в виде целого числа. Аттрибут устанавливается функцией radius_put_addr().

RADIUS_SERVICE_TYPE (integer)

Аттрибут Service-Type. Значение аттрибута обозначает тип сервиса запрашиваемого клиентом, должно быть целым числом. Аттрибут устанавливается функцией radius_put_addr().

Допустимы следующие значения:

  • 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 (integer)

Аттрибут Framed-Protocol. Аттрибут должен быть целым числом, означающим используемый протокол обёртку. Аттрибут устанавливается функцией radius_put_addr(). Допустимые значения:

  • RADIUS_PPP
  • RADIUS_SLIP
  • RADIUS_ARAP
  • RADIUS_GANDALF
  • RADIUS_XYLOGICS

RADIUS_FRAMED_IP_ADDRESS (integer)

Аттрибут Framed-IP-Address. Аттрибут должен содержать адрес пользовательской сети в виде целого числа. Аттрибут устанавливается функцией radius_put_addr() и извлекается функцией radius_cvt_addr().

RADIUS_FRAMED_IP_NETMASK (integer)

Аттрибут Framed-IP-Netmask. Аттрибут должен содержать маску пользовательской сети в виде целого числа. Аттрибут устанавливается функцией radius_put_addr() и извлекается функцией radius_cvt_addr()

RADIUS_FRAMED_ROUTING (integer)

Аттрибут Framed-Routing. Аттрибут должен быть целым числом и содержать метод маршрутизации. Аттрибут устанавливается функцией radius_put_addr().

Допустимые значения:

  • 0: Без маршрутизации
  • 1: Посылка пакетов маршрутизации
  • 2: Ожидать пакеты маршрутизации
  • 3: Посылать и ожидать

RADIUS_FILTER_ID (integer)

Аттрибут Filter-ID. Аттрибут должен быть зависящей от реализации, человеко-читаемой строкой фильтров. Аттрибут устанавливается функцией radius_put_addr()

RADIUS_FRAMED_MTU (integer)

Аттрибут Framed-MTU. Целое число, означающее знрачение MTU. Аттрибут устанавливается функцией radius_put_addr()

RADIUS_FRAMED_COMPRESSION (integer)

Аттрибут Framed-Compression. Целое число, означающее протокол сжатия. Аттрибут устанавливается функцией radius_put_addr() Допустимые значения:

  • RADIUS_COMP_NONE: Без сжатия
  • RADIUS_COMP_VJ: Сжатие заголовков VJ TCP/IP
  • RADIUS_COMP_IPXHDR: Сжатие заголовков IPX
  • RADIUS_COMP_STAC_LZS: Сжатие Stac-LZS (добавлено в PECL radius 1.3.0b2)

RADIUS_LOGIN_IP_HOST (integer)

Аттрибут Login-IP-Host. Целое число, представляющее IP-адрес, с которым соединяется пользователь. Аттрибут устанавливается функцией radius_put_addr()

RADIUS_LOGIN_SERVICE (integer)

Аттрибут Login-Service. Значение аттрибута означает сервис, с которым пользователь соединяется на сервере аутентификации. Это значение можно преобразовать в целое число PHP с помощью функции radius_cvt_int().

RADIUS_LOGIN_TCP_PORT (integer)

Аттрибут Login-TCP-Port. Значение аттрибута означает порт, с которым пользователь соединяется на сервере аутентификации. Это значение можно преобразовать в целое число PHP с помощью функции radius_cvt_int().

RADIUS_REPLY_MESSAGE (integer)

Аттрибут Reply-Message. Значение аттрибута содержит текст, который можно показать пользователю в ответ на запрос аутентификации.

RADIUS_CALLBACK_NUMBER (integer)

Аттрибут Callback-Number. Аттрибут содержит строку, которую можно использовать как функцию обратного вызова.

RADIUS_CALLBACK_ID (integer)

Аттрибут Callback-Id. Строка, содержащая имя вызываемого метода специфичного для конкретной реализации.

RADIUS_FRAMED_ROUTE (integer)

Аттрибут Framed-Route. Строка, содержащая зависящий от реализации список маршрутов сконфигурированных для пользователя.

RADIUS_FRAMED_IPX_NETWORK (integer)

Аттрибут Framed-IPX-Network. Целое число, определяющее сеть IPX, настроенную для пользователя или 0xFFFFFFFE, что призывает клиента RADIUS выбрать сеть самостоятельно. Можно извлечь с помощью radius_cvt_int().

RADIUS_STATE (integer)

Аттрибут State. Зависящая от реализации строка, включенная в ответ Access-Challenge пришедший от сервера, которую необходимо включить в последующий запрос Access-Request. Должен устанавливаться функцией radius_put_attr().

RADIUS_CLASS (integer)

Аттрибут Class. Произвольная строка включенная в сообщение Access-Accept и которая должна быть отослана серверу учетных данных в запросе Accounting-Request. Должен устанавливаться функцией radius_put_attr().

RADIUS_VENDOR_SPECIFIC (integer)

Аттрибут Vendor-Specific . В целом, значения этого аттрибута должны устанавливаться
с использованием функций radius_put_vendor_addr(),
radius_put_vendor_attr(),
radius_put_vendor_int() и
radius_put_vendor_string(), а не напрямую.

Эти константы необходимы для интерпритации специфичных, зависящих от производителя аттрибутов, пришедших в ответах от сервера RADIUS; когда получены такие аттрибуты, то нужно использовать функцию radius_get_vendor_attr() для извлечения идентификатора вендора, типа аттрибута и его значения.

RADIUS_SESSION_TIMEOUT (integer)

Таймаут сессии

RADIUS_IDLE_TIMEOUT (integer)

таймаут простоя

RADIUS_TERMINATION_ACTION (integer)

Прекращение операции

RADIUS_CALLED_STATION_ID (integer)

Идентификатор вызываемой станции

RADIUS_CALLING_STATION_ID (integer)

Идентификатор вызывающей станции

RADIUS_NAS_IDENTIFIER (integer)

NAS ID

RADIUS_PROXY_STATE (integer)

Состояние прокси

RADIUS_LOGIN_LAT_SERVICE (integer)

Сервис входа в систему LAT

RADIUS_LOGIN_LAT_NODE (integer)

Узел входа в систему LAT

RADIUS_LOGIN_LAT_GROUP (integer)

Группа входа в систему LAT

RADIUS_FRAMED_APPLETALK_LINK (integer)

Framed Appletalk Link

RADIUS_FRAMED_APPLETALK_NETWORK (integer)

Framed Appletalk Network

RADIUS_FRAMED_APPLETALK_ZONE (integer)

Framed Appletalk Zone

RADIUS_CHAP_CHALLENGE (integer)

Проверочное значение

RADIUS_NAS_PORT_TYPE (integer)

Тип порта NAS, одна из констант:

  • 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 (integer)

Ограничение на порты

RADIUS_LOGIN_LAT_PORT (integer)

Порт входа в систему LAT

RADIUS_CONNECT_INFO (integer)

Информация о соединении

RADIUS_ACCT_STATUS_TYPE (integer)

Статус системы управления учетными данными, одна из констант:

  • RADIUS_START
  • RADIUS_STOP
  • RADIUS_ACCOUNTING_ON
  • RADIUS_ACCOUNTING_OFF

RADIUS_ACCT_DELAY_TIME (integer)

Время задержки системы управления учетными данными

RADIUS_ACCT_INPUT_OCTETS (integer)

Входящие байты в систему управления учетными данными

RADIUS_ACCT_OUTPUT_OCTETS (integer)

Исходящие байты из системы управления учетными данными

RADIUS_ACCT_SESSION_ID (integer)

Идентификатор сессии системы управления учетными данными

RADIUS_ACCT_AUTHENTIC (integer)

Тип системы управления учетными данными, одна из констант:

  • RADIUS_AUTH_RADIUS
  • RADIUS_AUTH_LOCAL
  • RADIUS_AUTH_REMOTE

RADIUS_ACCT_SESSION_TIME (integer)

Время сессии в системе управления учетными данными

RADIUS_ACCT_INPUT_PACKETS (integer)

Входящие пакеты в систему управления учетными данными

RADIUS_ACCT_OUTPUT_PACKETS (integer)

Исходящие пакеты из системы управления учетными данными

RADIUS_ACCT_TERMINATE_CAUSE (integer)

Аварийное завершение сеанса управления учетными данными:

  • 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 (integer)

Многосессионный идентификатор системы управления учетными данными

RADIUS_ACCT_LINK_COUNT (integer)

Количество соединений системы управления учетными данными


Аттрибуты RADIUS специфичные для разных производителей

RADIUS_VENDOR_MICROSOFT (integer)

Аттрибуты Microsoft (» RFC 2548):

  • 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


Примеры

Как начать?

  • получить ресурс radius
  • настроить библиотеку
  • создать запрос
  • прикрепить атрибуты
  • послать запрос
  • получить атрибуты
  • закрыть ресурс radius (по желанию)
также смотрите примеры использования.

Пакет содержит пример PHP-скрипта. Этот скрипт демонстрирует как производить аутентификацию с помощью radius, используя PAP или CHAP (md5). Если вы производите аутентификацию с помощью серверов Microsoft Radius, то использовать CHAP (md5) не получится. В таком случае вам придется использовать MS-CHAPv1 или MS-CHAPv2, но это чуть сложнее, так как вам придется использовать md4, sha1 и des для генерации корректных данных. Приложенные примеры демонстрируют все методы аутентификации, включая MS-CHAPv1 и MS-CHAPv2. Для получения рабочего MS-CHAP вам понадобятся модули mcrypt и mhash. Начиная с версии 1.2, модуль mcrypt больше не нужен.


Функции Radius

Содержание

  • 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_tagged_attr_data — Extracts the data from a tagged attribute
  • radius_get_tagged_attr_tag — Extracts the tag from a tagged 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_salt_encrypt_attr — Salt-encrypts a value
  • radius_send_request — Sends the request and waits for a reply
  • radius_server_secret — Returns the shared secret
  • radius_strerror — Returns an error message


Creates a Radius handle for accounting

  • « Функции Radius
  • radius_add_server »
  • PHP Manual
  • Функции Radius
  • Creates a Radius handle for accounting

radius_acct_open

(PECL radius >= 1.1.0)

radius_acct_open — Creates a Radius handle for accounting

Описание

radius_acct_open ( void ) : resource

Возвращаемые значения

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");
?>


Adds a server

  • « radius_acct_open
  • radius_auth_open »
  • PHP Manual
  • Функции Radius
  • Adds a server

radius_add_server

(PECL radius >= 1.1.0)

radius_add_server — Adds a server

Описание

radius_add_server ( resource $radius_handle , string $hostname , int $port , string $secret , int $timeout , int $max_tries ) : bool

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() - Causes the library to read the given configuration file


Creates a Radius handle for authentication

  • « radius_add_server
  • radius_close »
  • PHP Manual
  • Функции Radius
  • Creates a Radius handle for authentication

radius_auth_open

(PECL radius >= 1.1.0)

radius_auth_open — Creates a Radius handle for authentication

Описание

radius_auth_open ( void ) : resource

Возвращаемые значения

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";
?>


Frees all ressources

  • « radius_auth_open
  • radius_config »
  • PHP Manual
  • Функции Radius
  • Frees all ressources

radius_close

(PECL radius >= 1.1.0)

radius_close — Frees all ressources

Описание

radius_close ( resource $radius_handle ) : bool

It is not needed to call this function because php frees all resources at the end of each request.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Causes the library to read the given configuration file

  • « radius_close
  • radius_create_request »
  • PHP Manual
  • Функции Radius
  • Causes the library to read the given configuration file

radius_config

(PECL radius >= 1.1.0)

radius_config — Causes the library to read the given configuration file

Описание

radius_config ( resource $radius_handle , string $file ) : bool

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() - Adds a server


Create accounting or authentication request

  • « radius_config
  • radius_cvt_addr »
  • PHP Manual
  • Функции Radius
  • Create accounting or authentication request

radius_create_request

(PECL radius >= 1.1.0)

radius_create_request — Create accounting or authentication request

Описание

radius_create_request ( resource $radius_handle , int $type ) : bool

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

Type is RADIUS_ACCESS_REQUEST or RADIUS_ACCOUNTING_REQUEST.

Возвращаемые значения

Возвращает 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() - Sends the request and waits for a reply


Converts raw data to IP-Address

  • « radius_create_request
  • radius_cvt_int »
  • PHP Manual
  • Функции Radius
  • Converts raw data to IP-Address

radius_cvt_addr

(PECL radius >= 1.1.0)

radius_cvt_addr — Converts raw data to IP-Address

Описание

radius_cvt_addr ( string $data ) : string

Примеры

Пример #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() - Converts raw data to integer
  • radius_cvt_string() - Converts raw data to string


Converts raw data to integer

  • « radius_cvt_addr
  • radius_cvt_string »
  • PHP Manual
  • Функции Radius
  • Converts raw data to integer

radius_cvt_int

(PECL radius >= 1.1.0)

radius_cvt_int — Converts raw data to integer

Описание

radius_cvt_int ( string $data ) : int

Примеры

Пример #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() - Converts raw data to IP-Address
  • radius_cvt_string() - Converts raw data to string


Converts raw data to string

  • « radius_cvt_int
  • radius_demangle_mppe_key »
  • PHP Manual
  • Функции Radius
  • Converts raw data to string

radius_cvt_string

(PECL radius >= 1.1.0)

radius_cvt_string — Converts raw data to string

Описание

radius_cvt_string ( string $data ) : string

Примеры

Пример #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() - Converts raw data to IP-Address
  • radius_cvt_int() - Converts raw data to integer


Derives mppe-keys from mangled data

  • « radius_cvt_string
  • radius_demangle »
  • PHP Manual
  • Функции Radius
  • Derives mppe-keys from mangled data

radius_demangle_mppe_key

(PECL radius >= 1.2.0)

radius_demangle_mppe_key — Derives mppe-keys from mangled data

Описание

radius_demangle_mppe_key ( resource $radius_handle , string $mangled ) : string

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.


Demangles data

  • « radius_demangle_mppe_key
  • radius_get_attr »
  • PHP Manual
  • Функции Radius
  • Demangles data

radius_demangle

(PECL radius >= 1.2.0)

radius_demangle — Demangles data

Описание

radius_demangle ( resource $radius_handle , string $mangled ) : string

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.


Extracts an attribute

  • « radius_demangle
  • radius_get_tagged_attr_data »
  • PHP Manual
  • Функции Radius
  • Extracts an attribute

radius_get_attr

(PECL radius >= 1.1.0)

radius_get_attr — Extracts an attribute

Описание

radius_get_attr ( resource $radius_handle ) : mixed

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() - Attaches a binary attribute
  • radius_get_vendor_attr() - Extracts a vendor specific attribute
  • radius_put_vendor_attr() - Attaches a vendor specific binary attribute
  • radius_send_request() - Sends the request and waits for a reply


Extracts the data from a tagged attribute

  • « radius_get_attr
  • radius_get_tagged_attr_tag »
  • PHP Manual
  • Функции Radius
  • Extracts the data from a tagged attribute

radius_get_tagged_attr_data

(PECL radius >= 1.3.0)

radius_get_tagged_attr_data — Extracts the data from a tagged attribute

Описание

radius_get_tagged_attr_data ( string $data ) : string

If a tagged attribute has been returned from radius_get_attr(), radius_get_tagged_attr_data() will return the data from the attribute.

Список параметров

data

The tagged attribute to be decoded.

Возвращаемые значения

Returns the data from the tagged attribute или FALSE в случае возникновения ошибки.

Примеры

Пример #1 radius_get_tagged_attr_data() 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'];

    $tag = radius_get_tagged_attr_tag($data);
    $value = radius_get_tagged_attr_data($data);

    printf("Got tagged attribute with tag %d and value %s\n", $tag, $value);
}
?>

Смотрите также

  • radius_get_attr() - Extracts an attribute
  • radius_get_tagged_attr_tag() - Extracts the tag from a tagged attribute


Extracts the tag from a tagged attribute

  • « radius_get_tagged_attr_data
  • radius_get_vendor_attr »
  • PHP Manual
  • Функции Radius
  • Extracts the tag from a tagged attribute

radius_get_tagged_attr_tag

(PECL radius >= 1.3.0)

radius_get_tagged_attr_tag — Extracts the tag from a tagged attribute

Описание

radius_get_tagged_attr_tag ( string $data ) : int

If a tagged attribute has been returned from radius_get_attr(), radius_get_tagged_attr_data() will return the tag from the attribute.

Список параметров

data

The tagged attribute to be decoded.

Возвращаемые значения

Returns the tag from the tagged attribute или FALSE в случае возникновения ошибки.

Примеры

Пример #1 radius_get_tagged_attr_tag() 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'];

    $tag = radius_get_tagged_attr_tag($data);
    $value = radius_get_tagged_attr_data($data);

    printf("Got tagged attribute with tag %d and value %s\n", $tag, $value);
}
?>

Смотрите также

  • radius_get_attr() - Extracts an attribute
  • radius_get_tagged_attr_data() - Extracts the data from a tagged attribute


Extracts a vendor specific attribute

  • « radius_get_tagged_attr_tag
  • radius_put_addr »
  • PHP Manual
  • Функции Radius
  • Extracts a vendor specific attribute

radius_get_vendor_attr

(PECL radius >= 1.1.0)

radius_get_vendor_attr — Extracts a vendor specific attribute

Описание

radius_get_vendor_attr ( string $data ) : array

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() - Extracts an attribute
  • radius_put_vendor_attr() - Attaches a vendor specific binary attribute


Attaches an IP address attribute

  • « radius_get_vendor_attr
  • radius_put_attr »
  • PHP Manual
  • Функции Radius
  • Attaches an IP address attribute

radius_put_addr

(PECL radius >= 1.1.0)

radius_put_addr — Attaches an IP address attribute

Описание

radius_put_addr ( resource $radius_handle , int $type , string $addr [, int $options = 0 [, int $tag ]] ) : bool

Attaches an IP address attribute to the current RADIUS request.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

type

Тип атрибута.

addr

An IPv4 address in string form, such as 10.0.0.1.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | The options and tag parameters were added.


Attaches a binary attribute

  • « radius_put_addr
  • radius_put_int »
  • PHP Manual
  • Функции Radius
  • Attaches a binary attribute

radius_put_attr

(PECL radius >= 1.1.0)

radius_put_attr — Attaches a binary attribute

Описание

radius_put_attr ( resource $radius_handle , int $type , string $value [, int $options = 0 [, int $tag ]] ) : bool

Attaches a binary attribute to the current RADIUS request.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

type

Тип атрибута.

value

The attribute value, which will be treated as a raw binary string.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает 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;
}
?>

Список изменений

Версия | Описание
PECL radius 1.3.0 | The options and tag parameters were added.

Смотрите также

  • radius_get_attr() - Extracts an attribute
  • radius_get_vendor_attr() - Extracts a vendor specific attribute
  • radius_put_vendor_attr() - Attaches a vendor specific binary attribute


Attaches an integer attribute

  • « radius_put_attr
  • radius_put_string »
  • PHP Manual
  • Функции Radius
  • Attaches an integer attribute

radius_put_int

(PECL radius >= 1.1.0)

radius_put_int — Attaches an integer attribute

Описание

radius_put_int ( resource $radius_handle , int $type , int $value [, int $options = 0 [, int $tag ]] ) : bool

Attaches an integer attribute to the current RADIUS request.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

type

Тип атрибута.

value

The attribute value.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | The options and tag parameters were added.

Примеры

Пример #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() - Attaches a string attribute
  • radius_put_vendor_int() - Attaches a vendor specific integer attribute
  • radius_put_vendor_string() - Attaches a vendor specific string attribute


Attaches a string attribute

  • « radius_put_int
  • radius_put_vendor_addr »
  • PHP Manual
  • Функции Radius
  • Attaches a string attribute

radius_put_string

(PECL radius >= 1.1.0)

radius_put_string — Attaches a string attribute

Описание

radius_put_string ( resource $radius_handle , int $type , string $value [, int $options = 0 [, int $tag ]] ) : bool

Attaches a string attribute to the current RADIUS request. In general, radius_put_attr() is a more useful function for attaching string attributes, as it is binary safe.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

type

Тип атрибута.

value

The attribute value. This value is expected by the underlying library to be null terminated, therefore this parameter is not binary safe.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | The options and tag parameters were added.

Примеры

Пример #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() - Attaches an integer attribute
  • radius_put_vendor_int() - Attaches a vendor specific integer attribute
  • radius_put_vendor_string() - Attaches a vendor specific string attribute


Attaches a vendor specific IP address attribute

  • « radius_put_string
  • radius_put_vendor_attr »
  • PHP Manual
  • Функции Radius
  • Attaches a vendor specific IP address attribute

radius_put_vendor_addr

(PECL radius >= 1.1.0)

radius_put_vendor_addr — Attaches a vendor specific IP address attribute

Описание

radius_put_vendor_addr ( resource $radius_handle , int $vendor , int $type , string $addr ) : bool

Attaches an IP address vendor specific attribute to the current RADIUS request.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

vendor

ID производителя (vendor).

type

Тип атрибута.

addr

An IPv4 address in string form, such as 10.0.0.1.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | The options and tag parameters were added.


Attaches a vendor specific binary attribute

  • « radius_put_vendor_addr
  • radius_put_vendor_int »
  • PHP Manual
  • Функции Radius
  • Attaches a vendor specific binary attribute

radius_put_vendor_attr

(PECL radius >= 1.1.0)

radius_put_vendor_attr — Attaches a vendor specific binary attribute

Описание

radius_put_vendor_attr ( resource $radius_handle , int $vendor , int $type , string $value [, int $options = 0 [, int $tag ]] ) : bool

Attaches a vendor specific binary attribute to the current RADIUS request.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

vendor

ID производителя (vendor).

type

Тип атрибута.

value

The attribute value, which will be treated as a raw binary string.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | The options and tag parameters were added.

Примеры

Пример #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_get_vendor_attr() - Extracts a vendor specific attribute


Attaches a vendor specific integer attribute

  • « radius_put_vendor_attr
  • radius_put_vendor_string »
  • PHP Manual
  • Функции Radius
  • Attaches a vendor specific integer attribute

radius_put_vendor_int

(PECL radius >= 1.1.0)

radius_put_vendor_int — Attaches a vendor specific integer attribute

Описание

radius_put_vendor_int ( resource $radius_handle , int $vendor , int $type , int $value [, int $options = 0 [, int $tag ]] ) : bool

Attaches a vendor specific integer attribute to the current RADIUS request.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

vendor

ID производителя (vendor).

type

Тип атрибута.

value

The attribute value.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | The options and tag parameters were added.

Смотрите также

  • radius_put_vendor_string() - Attaches a vendor specific string attribute


Attaches a vendor specific string attribute

  • « radius_put_vendor_int
  • radius_request_authenticator »
  • PHP Manual
  • Функции Radius
  • Attaches a vendor specific string attribute

radius_put_vendor_string

(PECL radius >= 1.1.0)

radius_put_vendor_string — Attaches a vendor specific string attribute

Описание

radius_put_vendor_string ( resource $radius_handle , int $vendor , int $type , string $value [, int $options = 0 [, int $tag ]] ) : bool

Attaches a vendor specific string attribute to the current RADIUS request. In general, radius_put_vendor_attr() is a more useful function for attaching string attributes, as it is binary safe.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

vendor

ID производителя (vendor).

type

Тип атрибута.

value

The attribute value. This value is expected by the underlying library to be null terminated, therefore this parameter is not binary safe.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | The options and tag parameters were added.

Смотрите также

  • radius_put_vendor_int() - Attaches a vendor specific integer attribute


Returns the request authenticator

  • « radius_put_vendor_string
  • radius_salt_encrypt_attr »
  • PHP Manual
  • Функции Radius
  • Returns the request authenticator

radius_request_authenticator

(PECL radius >= 1.1.0)

radius_request_authenticator — Returns the request authenticator

Описание

radius_request_authenticator ( resource $radius_handle ) : string

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() - Demangles data


Salt-encrypts a value

  • « radius_request_authenticator
  • radius_send_request »
  • PHP Manual
  • Функции Radius
  • Salt-encrypts a value

radius_salt_encrypt_attr

(PECL radius >= 1.3.0)

radius_salt_encrypt_attr — Salt-encrypts a value

Описание

radius_salt_encrypt_attr ( resource $radius_handle , string $data ) : string

Applies the RADIUS salt-encryption algorithm to the given value.

In general, this is achieved automatically by providing the RADIUS_OPTION_SALT option to an attribute setter function, but this function can be used if low-level request construction is required.

Список параметров

data

The data to be salt-encrypted.

Возвращаемые значения

Returns the salt-encrypted data или FALSE в случае возникновения ошибки.

Смотрите также

  • 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


Sends the request and waits for a reply

  • « radius_salt_encrypt_attr
  • radius_server_secret »
  • PHP Manual
  • Функции Radius
  • Sends the request and waits for a reply

radius_send_request

(PECL radius >= 1.1.0)

radius_send_request — Sends the request and waits for a reply

Описание

radius_send_request ( resource $radius_handle ) : int

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() - Create accounting or authentication request


Returns the shared secret

  • « radius_send_request
  • radius_strerror »
  • PHP Manual
  • Функции Radius
  • Returns the shared secret

radius_server_secret

(PECL radius >= 1.1.0)

radius_server_secret — Returns the shared secret

Описание

radius_server_secret ( resource $radius_handle ) : string

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.


Returns an error message

  • « radius_server_secret
  • Расширения для работы с командной строкой »
  • PHP Manual
  • Функции Radius
  • Returns an error message

radius_strerror

(PECL radius >= 1.1.0)

radius_strerror — Returns an error message

Описание

radius_strerror ( resource $radius_handle ) : string

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.


Расширения для работы с командной строкой

  • Ncurses — Управление экраном терминала Ncurses
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Ncurses
  • Newt
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции Newt
  • Readline — GNU Readline
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Readline


Управление экраном терминала Ncurses

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
    • Коды ошибок
    • Цвета
    • Клавиатура
    • Мышь
  • Функции Ncurses
    • ncurses_addch — Добавить символ в текущую позицию и переместить курсор вперед
    • ncurses_addchnstr — Добавить строку атрибутов с указанной длиной в текущую позицию
    • ncurses_addchstr — Добавить строку атрибутов в текущую позицию
    • ncurses_addnstr — Добавить строку с указанной длиной в текущую позицию
    • ncurses_addstr — Выводить текст в текущей позиции
    • ncurses_assume_default_colors — Определить цвета по умолчанию для цвета 0
    • 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 — Извлекает компоненты RGB цвета
    • ncurses_color_set — Set active foreground and background colors
    • ncurses_curs_set — Set cursor state
    • ncurses_def_prog_mode — Сохраняет режим терминалов (программы)
    • ncurses_def_shell_mode — Saves terminals (shell) mode
    • ncurses_define_key — Определить код клавиши
    • ncurses_del_panel — Убрать панель из стека и удалить ее (но не соответствующее окно)
    • ncurses_delay_output — Сделать задержку вывода на терминале с использованием отступов
    • 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 — Удалить окно ncurses
    • ncurses_doupdate — Write all prepared refreshes to terminal
    • ncurses_echo — Activate keyboard input echo
    • ncurses_echochar — Single character output including refresh
    • ncurses_end — Прекратить использование ncurses и очистить экран
    • ncurses_erase — Erase terminal screen
    • ncurses_erasechar — Возвращает текущий символ стирания
    • ncurses_filter — Установить LINES для iniscr() и newterm() на значение 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 — Возвращает текущую позицию курсора для окна
    • ncurses_halfdelay — Put terminal into halfdelay mode
    • ncurses_has_colors — Checks if terminal has color capabilities
    • 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 — Рисует горизонтальную линию в окне в текущей позиции с использованием атрибута-символа и определенного максимального количества символов
    • ncurses_inch — Получить символ и атрибут в текущей позиции
    • ncurses_init_color — Define a terminal color
    • ncurses_init_pair — Define 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 — Преобразует координаты
    • 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 — Переместить выходную позицию
    • ncurses_mvaddch — Move current position and add character
    • ncurses_mvaddchnstr — Переместить позицию и добавить строку-атрибут с указанной длиной
    • ncurses_mvaddchstr — Move position and add attributed string
    • ncurses_mvaddnstr — Move position and add string with specified length
    • ncurses_mvaddstr — Переместить позицию и добавить строку
    • ncurses_mvcur — Немедленно переместить курсор
    • ncurses_mvdelch — Move position and delete character, shift rest of line left
    • ncurses_mvgetch — Переместить позицию и получить символ в новой позиции
    • ncurses_mvhline — Set new position and draw a horizontal line using an attributed character and max. n characters long
    • ncurses_mvinch — Переместить позицию и получить символ-атрибут в новой позиции
    • ncurses_mvvline — Установить новую позицию и отрисовать вертикальную линию с использованием атрибута и максимального количества символов
    • ncurses_mvwaddstr — Добавить строку в новую позицию окна
    • ncurses_napms — Sleep
    • ncurses_new_panel — Создать новую панель и связать ее с окном
    • ncurses_newpad — Creates a new pad (window)
    • ncurses_newwin — Создать новое окно
    • ncurses_nl — Перевод новой строки и возврата каретки/перевода строки
    • 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 — Retrieves foreground and background colors of a color pair
    • ncurses_panel_above — Возвращает панель над панелью
    • ncurses_panel_below — Возвращает панель под панелью
    • ncurses_panel_window — Возвращает окно, связанное с панелью
    • 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 — Обновить экран
    • 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 — Восстановить экран из файла дампа
    • ncurses_scr_set — Наследовать экран из файла дампа
    • ncurses_scrl — Прокрутить содержимого окна вверх или вниз без изменения текущего положения
    • ncurses_show_panel — Помещает невидимую панель поверх стека, делая ее видимой
    • 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 — Остановить использование атрибута 'standout'
    • ncurses_standout — Начать использование атрибута 'standout'
    • ncurses_start_color — Initializes color functionality
    • ncurses_termattrs — Возвращает логическое ИЛИ всех флагов атрибутов, поддерживаемых терминалом
    • ncurses_termname — Returns terminals (short)-name
    • ncurses_timeout — Set timeout for special key sequences
    • ncurses_top_panel — Перемещает видимую панель в верхнюю часть стека
    • ncurses_typeahead — Указать другой файловый дескриптор для проверки типа
    • ncurses_ungetch — Поставить символ обратно во входной поток
    • ncurses_ungetmouse — Pushes mouse event to queue
    • ncurses_update_panels — Обновляет виртуальной экран для отображения связей между панелями в стеке
    • ncurses_use_default_colors — Назначить цвета терминала по умолчанию на идентификатор цвета -1
    • ncurses_use_env — Управляет использованием информации окружения о размере терминала
    • ncurses_use_extended_names — Управляет использованием расширенных имен в описаниях terminfo
    • 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 — Преобразует координаты окна/stdscr
    • ncurses_wmove — Перемещает позицию вывода окна
    • ncurses_wnoutrefresh — Копирует окно на виртуальный экран
    • ncurses_wrefresh — Обновить окно на экране терминала
    • ncurses_wstandend — End standout mode for a window
    • ncurses_wstandout — Enter standout mode for a window
    • ncurses_wvline — Рисует вертикальную линию в окне в текущей позиции с использованием атрибута-символа и определенного максимального количества символов


Введение

ncurses (new curses) - это свободная реализация curses из System V Rel 4.0 (и выше). Использует формат terminfo, поддерживает табуляцию, цвета, подсветку, символы для отрисовки форм и обработку нажатий клавиш. Так как эта библиотека по своей сути интерактивна, у нее мало возможностей для использования в веб-приложениях, но большие возможности при использовании PHP из командной строки.

Доступный функционал, такой как использование цветов, сильно зависит от
используемого терминала. Для определения ограничений терминала используйте
такие функции как ncurses_has_colors(),
ncurses_can_change_color() и
ncurses_has_ic().

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.3.0.

ncurses доступна на следующих платформах:

  • AIX
  • BeOS
  • BSD variants (FreeBSD, NetBSD, OpenBSD)
  • Cygwin
  • Digital Unix (aka OSF1)
  • GNU/Linux
  • HPUX
  • IRIX64
  • macOS
  • OS/2
  • QNX
  • SCO OpenServer
  • Solaris
  • Tru64


Требования

Вам необходимы заголовочные файлы библиотеки ncurses. Самую последнюю версию можно получить по ссылке » ftp://ftp.gnu.org/pub/gnu/ncurses/ или с другого зеркала GNU.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/ncurses.

В версии 1.0.1 этого PECL расширения добавлена поддержка обработки широких символов (Wide Character) CRT (ncursesw).


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Это расширение оперирует ресурсами window, panel и pad.


Предопределенные константы

Содержание

  • Коды ошибок
  • Цвета
  • Клавиатура
  • Мышь

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.


Коды ошибок

Функции ncurses в случае ошибки возвращают -1. Некоторые функции при успехе возвращают 0. Смотрите соответствующие разделы документации.


Цвета

Цветовые константы ncurses
константа | значение
NCURSES_COLOR_BLACK | нет цвета (черный)
NCURSES_COLOR_WHITE | белый
NCURSES_COLOR_RED | красный - работает, если терминал поддерживает цветность
NCURSES_COLOR_GREEN | зеленый - работает, если терминал поддерживает цветность
NCURSES_COLOR_YELLOW | желтый - работает, если терминал поддерживает цветность
NCURSES_COLOR_BLUE | синий - работает, если терминал поддерживает цветность
NCURSES_COLOR_CYAN | бирюзовый - работает, если терминал поддерживает цветность
NCURSES_COLOR_MAGENTA | пурпурный - работает, если терминал поддерживает цветность


Клавиатура

Константы кнопок ncurses
константа | значение
NCURSES_KEY_F0 - NCURSES_KEY_F64 | функциональные кнопки F1 - F64
NCURSES_KEY_DOWN | стрелка вниз
NCURSES_KEY_UP | стрелка вверх
NCURSES_KEY_LEFT | стрелка влево
NCURSES_KEY_RIGHT | стрелка вправо
NCURSES_KEY_HOME | кнопка home
NCURSES_KEY_BACKSPACE | удалить назад (backspace)
NCURSES_KEY_DL | удалить строку
NCURSES_KEY_IL | вставить строку
NCURSES_KEY_DC | удалить символ
NCURSES_KEY_IC | символ "insert" или вход в режим вставки
NCURSES_KEY_EIC | выход из режима вставки
NCURSES_KEY_CLEAR | очистить экран
NCURSES_KEY_EOS | очистить до конца экрана
NCURSES_KEY_EOL | очистить до конца строки
NCURSES_KEY_SF | промотать на одну строку вперед
NCURSES_KEY_SR | промотать на одну строку назад
NCURSES_KEY_NPAGE | следующая страница
NCURSES_KEY_PPAGE | предыдущая страница
NCURSES_KEY_STAB | установить отступ
NCURSES_KEY_CTAB | очистить отступ
NCURSES_KEY_CATAB | очистить все отступы
NCURSES_KEY_SRESET | мягкий сброс (частичный)
NCURSES_KEY_RESET | сброс или жесткий сброс
NCURSES_KEY_PRINT | print
NCURSES_KEY_LL | lower left
NCURSES_KEY_A1 | верхняя левая кнопка на цифровой клавиатуре
NCURSES_KEY_A3 | верхняя правая кнопка на цифровой клавиатуре
NCURSES_KEY_B2 | центральная кнопка на цифровой клавиатуре
NCURSES_KEY_C1 | левая нижняя кнопка на цифровой клавиатуре
NCURSES_KEY_C3 | нижняя левая кнопка на цифровой клавиатуре
NCURSES_KEY_BTAB | отступ назад
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 | shift + beg (beginning)
NCURSES_KEY_SCANCEL | shift + cancel
NCURSES_KEY_SCOMMAND | shift + command
NCURSES_KEY_SCOPY | shift + copy
NCURSES_KEY_SCREATE | shift + create
NCURSES_KEY_SDC | shift + удаление символа
NCURSES_KEY_SDL | shift + удаление строки
NCURSES_KEY_SELECT | select
NCURSES_KEY_SEND | shift + end
NCURSES_KEY_SEOL | shift + в конец строки
NCURSES_KEY_SEXIT | shift + exit
NCURSES_KEY_SFIND | shift + find
NCURSES_KEY_SHELP | shift + help
NCURSES_KEY_SHOME | shift + home
NCURSES_KEY_SIC | shift + input
NCURSES_KEY_SLEFT | shift + стрелка влево
NCURSES_KEY_SMESSAGE | shift + message
NCURSES_KEY_SMOVE | shift + move
NCURSES_KEY_SNEXT | shift + next
NCURSES_KEY_SOPTIONS | shift + options
NCURSES_KEY_SPREVIOUS | shift + previous
NCURSES_KEY_SPRINT | shift + print
NCURSES_KEY_SREDO | shift + redo
NCURSES_KEY_SREPLACE | shift + replace
NCURSES_KEY_SRIGHT | shift + стрелка вправо
NCURSES_KEY_SRSUME | shift + resume
NCURSES_KEY_SSAVE | shift + save
NCURSES_KEY_SSUSPEND | shift + suspend
NCURSES_KEY_UNDO | undo
NCURSES_KEY_MOUSE | случилось событие мыши
NCURSES_KEY_MAX | максимально возможное значение кнопки


Мышь

Константы мыши
константа | значение
NCURSES_BUTTON1_RELEASED - NCURSES_BUTTON4_RELEASED | кнопка (1-4) отпущена
NCURSES_BUTTON1_PRESSED - NCURSES_BUTTON4_PRESSED | кнопка (1-4) нажата
NCURSES_BUTTON1_CLICKED - NCURSES_BUTTON4_CLICKED | кнопка (1-4) нажата и отпущена
NCURSES_BUTTON1_DOUBLE_CLICKED - NCURSES_BUTTON4_DOUBLE_CLICKED | кнопка (1-4) совершила двойной щелчек
NCURSES_BUTTON1_TRIPLE_CLICKED - NCURSES_BUTTON4_TRIPLE_CLICKED | кнопка (1-4) совершила тройной щелчек
NCURSES_BUTTON_CTRL | Во время клика нажата кнопка ctrl
NCURSES_BUTTON_SHIFT | Во время клика нажата кнопка shift
NCURSES_BUTTON_ALT | Во время клика нажата кнопка alt
NCURSES_ALL_MOUSE_EVENTS | Сообщить о любых событиях мыши
NCURSES_REPORT_MOUSE_POSITION | Сообщить позицию мыши


Функции Ncurses

Содержание

  • ncurses_addch — Добавить символ в текущую позицию и переместить курсор вперед
  • ncurses_addchnstr — Добавить строку атрибутов с указанной длиной в текущую позицию
  • ncurses_addchstr — Добавить строку атрибутов в текущую позицию
  • ncurses_addnstr — Добавить строку с указанной длиной в текущую позицию
  • ncurses_addstr — Выводить текст в текущей позиции
  • ncurses_assume_default_colors — Определить цвета по умолчанию для цвета 0
  • 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 — Извлекает компоненты RGB цвета
  • ncurses_color_set — Set active foreground and background colors
  • ncurses_curs_set — Set cursor state
  • ncurses_def_prog_mode — Сохраняет режим терминалов (программы)
  • ncurses_def_shell_mode — Saves terminals (shell) mode
  • ncurses_define_key — Определить код клавиши
  • ncurses_del_panel — Убрать панель из стека и удалить ее (но не соответствующее окно)
  • ncurses_delay_output — Сделать задержку вывода на терминале с использованием отступов
  • 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 — Удалить окно ncurses
  • ncurses_doupdate — Write all prepared refreshes to terminal
  • ncurses_echo — Activate keyboard input echo
  • ncurses_echochar — Single character output including refresh
  • ncurses_end — Прекратить использование ncurses и очистить экран
  • ncurses_erase — Erase terminal screen
  • ncurses_erasechar — Возвращает текущий символ стирания
  • ncurses_filter — Установить LINES для iniscr() и newterm() на значение 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 — Возвращает текущую позицию курсора для окна
  • ncurses_halfdelay — Put terminal into halfdelay mode
  • ncurses_has_colors — Checks if terminal has color capabilities
  • 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 — Рисует горизонтальную линию в окне в текущей позиции с использованием атрибута-символа и определенного максимального количества символов
  • ncurses_inch — Получить символ и атрибут в текущей позиции
  • ncurses_init_color — Define a terminal color
  • ncurses_init_pair — Define 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 — Преобразует координаты
  • 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 — Переместить выходную позицию
  • ncurses_mvaddch — Move current position and add character
  • ncurses_mvaddchnstr — Переместить позицию и добавить строку-атрибут с указанной длиной
  • ncurses_mvaddchstr — Move position and add attributed string
  • ncurses_mvaddnstr — Move position and add string with specified length
  • ncurses_mvaddstr — Переместить позицию и добавить строку
  • ncurses_mvcur — Немедленно переместить курсор
  • ncurses_mvdelch — Move position and delete character, shift rest of line left
  • ncurses_mvgetch — Переместить позицию и получить символ в новой позиции
  • ncurses_mvhline — Set new position and draw a horizontal line using an attributed character and max. n characters long
  • ncurses_mvinch — Переместить позицию и получить символ-атрибут в новой позиции
  • ncurses_mvvline — Установить новую позицию и отрисовать вертикальную линию с использованием атрибута и максимального количества символов
  • ncurses_mvwaddstr — Добавить строку в новую позицию окна
  • ncurses_napms — Sleep
  • ncurses_new_panel — Создать новую панель и связать ее с окном
  • ncurses_newpad — Creates a new pad (window)
  • ncurses_newwin — Создать новое окно
  • ncurses_nl — Перевод новой строки и возврата каретки/перевода строки
  • 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 — Retrieves foreground and background colors of a color pair
  • ncurses_panel_above — Возвращает панель над панелью
  • ncurses_panel_below — Возвращает панель под панелью
  • ncurses_panel_window — Возвращает окно, связанное с панелью
  • 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 — Обновить экран
  • 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 — Восстановить экран из файла дампа
  • ncurses_scr_set — Наследовать экран из файла дампа
  • ncurses_scrl — Прокрутить содержимого окна вверх или вниз без изменения текущего положения
  • ncurses_show_panel — Помещает невидимую панель поверх стека, делая ее видимой
  • 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 — Остановить использование атрибута 'standout'
  • ncurses_standout — Начать использование атрибута 'standout'
  • ncurses_start_color — Initializes color functionality
  • ncurses_termattrs — Возвращает логическое ИЛИ всех флагов атрибутов, поддерживаемых терминалом
  • ncurses_termname — Returns terminals (short)-name
  • ncurses_timeout — Set timeout for special key sequences
  • ncurses_top_panel — Перемещает видимую панель в верхнюю часть стека
  • ncurses_typeahead — Указать другой файловый дескриптор для проверки типа
  • ncurses_ungetch — Поставить символ обратно во входной поток
  • ncurses_ungetmouse — Pushes mouse event to queue
  • ncurses_update_panels — Обновляет виртуальной экран для отображения связей между панелями в стеке
  • ncurses_use_default_colors — Назначить цвета терминала по умолчанию на идентификатор цвета -1
  • ncurses_use_env — Управляет использованием информации окружения о размере терминала
  • ncurses_use_extended_names — Управляет использованием расширенных имен в описаниях terminfo
  • 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 — Преобразует координаты окна/stdscr
  • ncurses_wmove — Перемещает позицию вывода окна
  • ncurses_wnoutrefresh — Копирует окно на виртуальный экран
  • ncurses_wrefresh — Обновить окно на экране терминала
  • ncurses_wstandend — End standout mode for a window
  • ncurses_wstandout — Enter standout mode for a window
  • ncurses_wvline — Рисует вертикальную линию в окне в текущей позиции с использованием атрибута-символа и определенного максимального количества символов


Добавить символ в текущую позицию и переместить курсор вперед

  • « Функции Ncurses
  • ncurses_addchnstr »
  • PHP Manual
  • Функции Ncurses
  • Добавить символ в текущую позицию и переместить курсор вперед

ncurses_addch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addch — Добавить символ в текущую позицию и переместить курсор вперед

Описание

ncurses_addch ( int $ch ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ch


Добавить строку атрибутов с указанной длиной в текущую позицию

  • « ncurses_addch
  • ncurses_addchstr »
  • PHP Manual
  • Функции Ncurses
  • Добавить строку атрибутов с указанной длиной в текущую позицию

ncurses_addchnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addchnstr — Добавить строку атрибутов с указанной длиной в текущую позицию

Описание

ncurses_addchnstr ( string $s , int $n ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

s

n


Добавить строку атрибутов в текущую позицию

  • « ncurses_addchnstr
  • ncurses_addnstr »
  • PHP Manual
  • Функции Ncurses
  • Добавить строку атрибутов в текущую позицию

ncurses_addchstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addchstr — Добавить строку атрибутов в текущую позицию

Описание

ncurses_addchstr ( string $s ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

s


Добавить строку с указанной длиной в текущую позицию

  • « ncurses_addchstr
  • ncurses_addstr »
  • PHP Manual
  • Функции Ncurses
  • Добавить строку с указанной длиной в текущую позицию

ncurses_addnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addnstr — Добавить строку с указанной длиной в текущую позицию

Описание

ncurses_addnstr ( string $s , int $n ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

s

n


Выводить текст в текущей позиции

  • « ncurses_addnstr
  • ncurses_assume_default_colors »
  • PHP Manual
  • Функции Ncurses
  • Выводить текст в текущей позиции

ncurses_addstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addstr — Выводить текст в текущей позиции

Описание

ncurses_addstr ( string $text ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

text


Определить цвета по умолчанию для цвета 0

  • « ncurses_addstr
  • ncurses_attroff »
  • PHP Manual
  • Функции Ncurses
  • Определить цвета по умолчанию для цвета 0

ncurses_assume_default_colors

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_assume_default_colors — Определить цвета по умолчанию для цвета 0

Описание

ncurses_assume_default_colors ( int $fg , int $bg ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

fg

bg


Отключить заданные атрибуты

  • « ncurses_assume_default_colors
  • ncurses_attron »
  • PHP Manual
  • Функции Ncurses
  • Отключить заданные атрибуты

ncurses_attroff

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_attroff — Отключить заданные атрибуты

Описание

ncurses_attroff ( int $attributes ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

attributes


Включить заданные атрибуты

  • « ncurses_attroff
  • ncurses_attrset »
  • PHP Manual
  • Функции Ncurses
  • Включить заданные атрибуты

ncurses_attron

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_attron — Включить заданные атрибуты

Описание

ncurses_attron ( int $attributes ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

attributes


Задать атрибуты

  • « ncurses_attron
  • ncurses_baudrate »
  • PHP Manual
  • Функции Ncurses
  • Задать атрибуты

ncurses_attrset

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_attrset — Задать атрибуты

Описание

ncurses_attrset ( int $attributes ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

attributes


Возвращает скорость передачи данных терминала

  • « ncurses_attrset
  • ncurses_beep »
  • PHP Manual
  • Функции Ncurses
  • Возвращает скорость передачи данных терминала

ncurses_baudrate

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_baudrate — Возвращает скорость передачи данных терминала

Описание

ncurses_baudrate ( void ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Указать терминалу издать звуковой сигнал

  • « ncurses_baudrate
  • ncurses_bkgd »
  • PHP Manual
  • Функции Ncurses
  • Указать терминалу издать звуковой сигнал

ncurses_beep

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_beep — Указать терминалу издать звуковой сигнал

Описание

ncurses_beep ( void ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_beep() посылает звуковой сигнал (звонок), и, если это невозможно, включить мигание экрана.

Смотрите также

  • ncurses_flash() - Flash terminal screen (visual bell)


Установить свойства фона для экрана терминала

  • « ncurses_beep
  • ncurses_bkgdset »
  • PHP Manual
  • Функции Ncurses
  • Установить свойства фона для экрана терминала

ncurses_bkgd

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_bkgd — Установить свойства фона для экрана терминала

Описание

ncurses_bkgd ( int $attrchar ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

attrchar


Управление фоном экрана

  • « ncurses_bkgd
  • ncurses_border »
  • PHP Manual
  • Функции Ncurses
  • Управление фоном экрана

ncurses_bkgdset

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_bkgdset — Управление фоном экрана

Описание

ncurses_bkgdset ( int $attrchar ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

attrchar


Нарисовать границу вокруг экрана с помощью атрибутов

  • « ncurses_bkgdset
  • ncurses_bottom_panel »
  • PHP Manual
  • Функции Ncurses
  • Нарисовать границу вокруг экрана с помощью атрибутов

ncurses_border

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_border — Нарисовать границу вокруг экрана с помощью атрибутов

Описание

ncurses_border ( int $left , int $right , int $top , int $bottom , int $tl_corner , int $tr_corner , int $bl_corner , int $br_corner ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Рисует указанные линии и углы вокруг основного окна.

Используйте ncurses_wborder() для границ вокруг подокон!

Список параметров

Каждый параметр ожидает 0 для того, чтобы нарисовать линию или 1, чтобы пропустить ее.

left

right

top

bottom

tl_corner

Верхний левый угол

tr_corner

Верхний правый угол

bl_corner

Нижний левый угол

br_corner

Нижний правый угол

Смотрите также

  • ncurses_wborder() - Рисует границу вокруг окна с помощью символов-атрубитов


Перемещает видимую панель в нижнюю часть стека

  • « ncurses_border
  • ncurses_can_change_color »
  • PHP Manual
  • Функции Ncurses
  • Перемещает видимую панель в нижнюю часть стека

ncurses_bottom_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_bottom_panel — Перемещает видимую панель в нижнюю часть стека

Описание

ncurses_bottom_panel ( resource $panel ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel


Проверяет, можно ли изменить определения цветов терминала

  • « ncurses_bottom_panel
  • ncurses_cbreak »
  • PHP Manual
  • Функции Ncurses
  • Проверяет, можно ли изменить определения цветов терминала

ncurses_can_change_color

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_can_change_color — Проверяет, можно ли изменить определения цветов терминала

Описание

ncurses_can_change_color ( void ) : bool

Проверяет, обладает ли терминал возможностями цветопередачи и может ли программист изменять определения цветов с помощью ncurses_init_color(). Модуль ncurses должен быть инициализирован с помощью ncurses_init() перед вызовом этой функции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если программист может изменить определения цветов, FALSE в противном случае.

Смотрите также

  • ncurses_has_colors() - Checks if terminal has color capabilities
  • ncurses_init_color() - Define a terminal color
  • ncurses_start_color() - Initializes color functionality


Выключить буферизацию ввода

  • « ncurses_can_change_color
  • ncurses_clear »
  • PHP Manual
  • Функции Ncurses
  • Выключить буферизацию ввода

ncurses_cbreak

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_cbreak — Выключить буферизацию ввода

Описание

ncurses_cbreak ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Отключает буферизацию строк и обработку символов (символы прерывания и управления потоком не затрагиваются), делая символы, введенные пользователем, немедленно доступными для программы.

Возвращаемые значения

Возвращает TRUE или NCURSES_ERR в случае возникновения ошибки.

Смотрите также

  • ncurses_nocbreak() - Switch terminal to cooked mode


Очистить экран

  • « ncurses_cbreak
  • ncurses_clrtobot »
  • PHP Manual
  • Функции Ncurses
  • Очистить экран

ncurses_clear

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_clear — Очистить экран

Описание

ncurses_clear ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Очистка экрана полностью без установки пробелов.

Примечание: ncurses_clear() очищает экран без установки пробелов, которые имеют текущее фоновое представление. Для очистки экрана с пробелами используйте ncurses_erase().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ncurses_erase() - Erase terminal screen


Очистить экран с текущей позиции до нижней

  • « ncurses_clear
  • ncurses_clrtoeol »
  • PHP Manual
  • Функции Ncurses
  • Очистить экран с текущей позиции до нижней

ncurses_clrtobot

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_clrtobot — Очистить экран с текущей позиции до нижней

Описание

ncurses_clrtobot ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Стирает все строки от курсора до конца экрана и создает пробелы. Пробелы, созданные функцией ncurses_clrtobot(), будут иметь текущее фоновое представление.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ncurses_clear() - Очистить экран
  • ncurses_clrtoeol() - Очистить экран от текущей позиции до конца строки


Очистить экран от текущей позиции до конца строки

  • « ncurses_clrtobot
  • ncurses_color_content »
  • PHP Manual
  • Функции Ncurses
  • Очистить экран от текущей позиции до конца строки

ncurses_clrtoeol

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_clrtoeol — Очистить экран от текущей позиции до конца строки

Описание

ncurses_clrtoeol ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Стирает текущую строку от позиции курсора до конца. Пробелы, созданные ncurses_clrtoeol(), будут иметь текущее фоновое представление.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ncurses_clear() - Очистить экран
  • ncurses_clrtobot() - Очистить экран с текущей позиции до нижней


Извлекает компоненты RGB цвета

  • « ncurses_clrtoeol
  • ncurses_color_set »
  • PHP Manual
  • Функции Ncurses
  • Извлекает компоненты RGB цвета

ncurses_color_content

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_color_content — Извлекает компоненты RGB цвета

Описание

ncurses_color_content ( int $color , int &$r , int &$g , int &$b ) : int

Получает красный, зеленый и синий компоненты для данного определения цвета. Возможности цвета терминала должны быть инициализированы с помощью ncurses_start_color() перед вызовом этой функции.

Список параметров

color

Номер цвета, для которого требуется получить информацию. Может быть одной из предопределенных констант цвета.

r

Ссылка, возвращающая красный компонент цвета. Значение, возвращаемое в ссылке будет между 0 и 1000.

g

Ссылка, возвращающая зеленый компонент цвета. Значение, возвращаемое в ссылке будет между 0 и 1000.

b

Ссылка, возвращающая синий компонент цвета. Значение, возвращаемое в ссылке будет между 0 и 1000.

Возвращаемые значения

Возвращает -1 в случае успешного выполнения функции и 0, если ncurses или возможности цвета терминала не были инициализированы.

Смотрите также

  • ncurses_init_color() - Define a terminal color
  • ncurses_start_color() - Initializes color functionality


Set active foreground and background colors

  • « ncurses_color_content
  • ncurses_curs_set »
  • PHP Manual
  • Функции Ncurses
  • Set active foreground and background colors

ncurses_color_set

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_color_set — Set active foreground and background colors

Описание

ncurses_color_set ( int $pair ) : int

Sets the active foreground and background colors. Any characters written after this function is invoked will have these colors. This function requires terminal colors to be supported and initialized using ncurses_start_color() beforehand.

ncurses uses color pairs to specify both foreground and background colors. Use ncurses_init_pair() to define a color pair.

Список параметров

pair

The color pair from which to get the foreground and background colors to set as the active colors.

Возвращаемые значения

Returns -1 on success, and 0 on failure.

Примеры

Пример #1 Writing a string with a specified color to the screen

<?php
ncurses_init();

// If the terminal supports colors, initialize and set active color
if (ncurses_has_colors()) {
    ncurses_start_color();
    ncurses_init_pair(1, NCURSES_COLOR_YELLOW, NCURSES_COLOR_BLUE);
    ncurses_color_set(1);
}

// Write a string at specified location
ncurses_mvaddstr(10, 10, "Hello world! Yellow on blue text!");

// Flush output to screen
ncurses_refresh();

ncurses_end();
?>

Смотрите также

  • ncurses_init_pair() - Define a color pair
  • ncurses_start_color() - Initializes color functionality


Set cursor state

  • « ncurses_color_set
  • ncurses_def_prog_mode »
  • PHP Manual
  • Функции Ncurses
  • Set cursor state

ncurses_curs_set

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_curs_set — Set cursor state

Описание

ncurses_curs_set ( int $visibility ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

visibility


Сохраняет режим терминалов (программы)

  • « ncurses_curs_set
  • ncurses_def_shell_mode »
  • PHP Manual
  • Функции Ncurses
  • Сохраняет режим терминалов (программы)

ncurses_def_prog_mode

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_def_prog_mode — Сохраняет режим терминалов (программы)

Описание

ncurses_def_prog_mode ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Сохраняет текущие режимы терминала для программы (в curses) ncurses_reset_prog_mode().

Возвращаемые значения

Возвращает FALSE, в противном случае TRUE.

Смотрите также

  • ncurses_reset_prog_mode() - Resets the prog mode saved by def_prog_mode


Saves terminals (shell) mode

  • « ncurses_def_prog_mode
  • ncurses_define_key »
  • PHP Manual
  • Функции Ncurses
  • Saves terminals (shell) mode

ncurses_def_shell_mode

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_def_shell_mode — Saves terminals (shell) mode

Описание

ncurses_def_shell_mode ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Saves the current terminal modes for shell (not in curses) for use by ncurses_reset_shell_mode().

Возвращаемые значения

Returns FALSE on success, TRUE otherwise.

Смотрите также

  • ncurses_reset_shell_mode() - Resets the shell mode saved by def_shell_mode


Определить код клавиши

  • « ncurses_def_shell_mode
  • ncurses_del_panel »
  • PHP Manual
  • Функции Ncurses
  • Определить код клавиши

ncurses_define_key

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_define_key — Определить код клавиши

Описание

ncurses_define_key ( string $definition , int $keycode ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

definition

keycode


Убрать панель из стека и удалить ее (но не соответствующее окно)

  • « ncurses_define_key
  • ncurses_delay_output »
  • PHP Manual
  • Функции Ncurses
  • Убрать панель из стека и удалить ее (но не соответствующее окно)

ncurses_del_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_del_panel — Убрать панель из стека и удалить ее (но не соответствующее окно)

Описание

ncurses_del_panel ( resource $panel ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel


Сделать задержку вывода на терминале с использованием отступов

  • « ncurses_del_panel
  • ncurses_delch »
  • PHP Manual
  • Функции Ncurses
  • Сделать задержку вывода на терминале с использованием отступов

ncurses_delay_output

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_delay_output — Сделать задержку вывода на терминале с использованием отступов

Описание

ncurses_delay_output ( int $milliseconds ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

milliseconds


Delete character at current position, move rest of line left

  • « ncurses_delay_output
  • ncurses_deleteln »
  • PHP Manual
  • Функции Ncurses
  • Delete character at current position, move rest of line left

ncurses_delch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_delch — Delete character at current position, move rest of line left

Описание

ncurses_delch ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

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, TRUE otherwise.

Смотрите также

  • ncurses_deleteln() - Delete line at current position, move rest of screen up


Delete line at current position, move rest of screen up

  • « ncurses_delch
  • ncurses_delwin »
  • PHP Manual
  • Функции Ncurses
  • Delete line at current position, move rest of screen up

ncurses_deleteln

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_deleteln — Delete line at current position, move rest of screen up

Описание

ncurses_deleteln ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Deletes the current line under cursor position. 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.

Смотрите также

  • ncurses_delch() - Delete character at current position, move rest of line left


Удалить окно ncurses

  • « ncurses_deleteln
  • ncurses_doupdate »
  • PHP Manual
  • Функции Ncurses
  • Удалить окно ncurses

ncurses_delwin

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_delwin — Удалить окно ncurses

Описание

ncurses_delwin ( resource $window ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


Write all prepared refreshes to terminal

  • « ncurses_delwin
  • ncurses_echo »
  • PHP Manual
  • Функции Ncurses
  • Write all prepared refreshes to terminal

ncurses_doupdate

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_doupdate — Write all prepared refreshes to terminal

Описание

ncurses_doupdate ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

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 в случае возникновения ошибки.


Activate keyboard input echo

  • « ncurses_doupdate
  • ncurses_echochar »
  • PHP Manual
  • Функции Ncurses
  • Activate keyboard input echo

ncurses_echo

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_echo — Activate keyboard input echo

Описание

ncurses_echo ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Enables echo mode. All characters typed by user are echoed by ncurses_getch().

Возвращаемые значения

Returns FALSE on success, TRUE if any error occurred.

Смотрите также

  • ncurses_noecho() - Switch off keyboard input echo to disable echo mode


Single character output including refresh

  • « ncurses_echo
  • ncurses_end »
  • PHP Manual
  • Функции Ncurses
  • Single character output including refresh

ncurses_echochar

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_echochar — Single character output including refresh

Описание

ncurses_echochar ( int $character ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

character


Прекратить использование ncurses и очистить экран

  • « ncurses_echochar
  • ncurses_erase »
  • PHP Manual
  • Функции Ncurses
  • Прекратить использование ncurses и очистить экран

ncurses_end

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_end — Прекратить использование ncurses и очистить экран

Описание

ncurses_end ( void ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Erase terminal screen

  • « ncurses_end
  • ncurses_erasechar »
  • PHP Manual
  • Функции Ncurses
  • Erase terminal screen

ncurses_erase

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_erase — Erase terminal screen

Описание

ncurses_erase ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Fills the terminal screen with blanks.

Created blanks have the current background rendition, set by ncurses_bkgd().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ncurses_bkgd() - Установить свойства фона для экрана терминала
  • ncurses_clear() - Очистить экран


Возвращает текущий символ стирания

  • « ncurses_erase
  • ncurses_filter »
  • PHP Manual
  • Функции Ncurses
  • Возвращает текущий символ стирания

ncurses_erasechar

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_erasechar — Возвращает текущий символ стирания

Описание

ncurses_erasechar ( void ) : string
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Возвращает текущий символ стирания.

Возвращаемые значения

Текущий символ стирания в виде строки.

Смотрите также

  • ncurses_killchar() - Returns current line kill character


Установить LINES для iniscr() и newterm() на значение 1

  • « ncurses_erasechar
  • ncurses_flash »
  • PHP Manual
  • Функции Ncurses
  • Установить LINES для iniscr() и newterm() на значение 1

ncurses_filter

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_filter — Установить LINES для iniscr() и newterm() на значение 1

Описание

ncurses_filter ( void ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Flash terminal screen (visual bell)

  • « ncurses_filter
  • ncurses_flushinp »
  • PHP Manual
  • Функции Ncurses
  • Flash terminal screen (visual bell)

ncurses_flash

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_flash — Flash terminal screen (visual bell)

Описание

ncurses_flash ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Flashes the screen, and if its not possible, sends an audible alert (bell).

Возвращаемые значения

Returns FALSE on success, otherwise TRUE.

Смотрите также

  • ncurses_beep() - Указать терминалу издать звуковой сигнал


Flush keyboard input buffer

  • « ncurses_flash
  • ncurses_getch »
  • PHP Manual
  • Функции Ncurses
  • Flush keyboard input buffer

ncurses_flushinp

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_flushinp — Flush keyboard input buffer

Описание

ncurses_flushinp ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Throws away any typeahead that has been typed and has not yet been read by your program.

Возвращаемые значения

Returns FALSE on success, otherwise TRUE.


Read a character from keyboard

  • « ncurses_flushinp
  • ncurses_getmaxyx »
  • PHP Manual
  • Функции Ncurses
  • Read a character from keyboard

ncurses_getch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getch — Read a character from keyboard

Описание

ncurses_getch ( void ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Returns the size of a window

  • « ncurses_getch
  • ncurses_getmouse »
  • PHP Manual
  • Функции Ncurses
  • Returns the size of a window

ncurses_getmaxyx

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getmaxyx — Returns the size of a window

Описание

ncurses_getmaxyx ( resource $window , int &$y , int &$x ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Gets the horizontal and vertical size of the given window into the given variables.

Variables must be passed as reference, so they are updated when the user changes the terminal size.

Список параметров

window

The measured window

y

This will be set to the window height

x

This will be set to the window width

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Reads mouse event

  • « ncurses_getmaxyx
  • ncurses_getyx »
  • PHP Manual
  • Функции Ncurses
  • Reads mouse event

ncurses_getmouse

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getmouse — Reads mouse event

Описание

ncurses_getmouse ( array &$mevent ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_getmouse() reads mouse event out of queue.

Список параметров

mevent

Event options will be delivered in this parameter 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

Возвращаемые значения

Returns FALSE if a mouse event is actually visible in the given window, otherwise returns TRUE.

Примеры

Пример #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:
    /* .... */
}
?>

Смотрите также

  • ncurses_ungetmouse() - Pushes mouse event to queue


Возвращает текущую позицию курсора для окна

  • « ncurses_getmouse
  • ncurses_halfdelay »
  • PHP Manual
  • Функции Ncurses
  • Возвращает текущую позицию курсора для окна

ncurses_getyx

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getyx — Возвращает текущую позицию курсора для окна

Описание

ncurses_getyx ( resource $window , int &$y , int &$x ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

y

x


Put terminal into halfdelay mode

  • « ncurses_getyx
  • ncurses_has_colors »
  • PHP Manual
  • Функции Ncurses
  • Put terminal into halfdelay mode

ncurses_halfdelay

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_halfdelay — Put terminal into halfdelay mode

Описание

ncurses_halfdelay ( int $tenth ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

tenth


Checks if terminal has color capabilities

  • « ncurses_halfdelay
  • ncurses_has_ic »
  • PHP Manual
  • Функции Ncurses
  • Checks if terminal has color capabilities

ncurses_has_colors

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_colors — Checks if terminal has color capabilities

Описание

ncurses_has_colors ( void ) : bool

Checks whether the terminal has color capabilities. This function can be used to write terminal-independent programs. ncurses must be initialized using ncurses_init() before calling this function.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return TRUE if the terminal has color capabilities, FALSE otherwise.

Примеры

Пример #1 Writing a string with a specified color to the screen

<?php
ncurses_init();

// If the terminal supports colors, initialize and set active color
if (ncurses_has_colors()) {
    ncurses_start_color();
    ncurses_init_pair(1, NCURSES_COLOR_YELLOW, NCURSES_COLOR_BLUE);
    ncurses_color_set(1);
}

// Write a string at specified location
ncurses_mvaddstr(10, 10, "Hello world! Yellow on blue text!");

// Flush output to screen
ncurses_refresh();

ncurses_end();
?>

Смотрите также

  • ncurses_can_change_color() - Проверяет, можно ли изменить определения цветов терминала
  • ncurses_start_color() - Initializes color functionality


Check for insert- and delete-capabilities

  • « ncurses_has_colors
  • ncurses_has_il »
  • PHP Manual
  • Функции Ncurses
  • Check for insert- and delete-capabilities

ncurses_has_ic

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_ic — Check for insert- and delete-capabilities

Описание

ncurses_has_ic ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Checks whether the terminal has insert and delete capabilities.

Возвращаемые значения

Returns TRUE if the terminal has insert/delete-capabilities, FALSE otherwise.

Смотрите также

  • ncurses_has_il() - Check for line insert- and delete-capabilities


Check for line insert- and delete-capabilities

  • « ncurses_has_ic
  • ncurses_has_key »
  • PHP Manual
  • Функции Ncurses
  • Check for line insert- and delete-capabilities

ncurses_has_il

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_il — Check for line insert- and delete-capabilities

Описание

ncurses_has_il ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Checks whether the terminal has insert- and delete-line-capabilities.

Возвращаемые значения

Returns TRUE if the terminal has insert/delete-line capabilities, FALSE otherwise.

Смотрите также

  • ncurses_has_ic() - Check for insert- and delete-capabilities


Check for presence of a function key on terminal keyboard

  • « ncurses_has_il
  • ncurses_hide_panel »
  • PHP Manual
  • Функции Ncurses
  • Check for presence of a function key on terminal keyboard

ncurses_has_key

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_key — Check for presence of a function key on terminal keyboard

Описание

ncurses_has_key ( int $keycode ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

keycode


Remove panel from the stack, making it invisible

  • « ncurses_has_key
  • ncurses_hline »
  • PHP Manual
  • Функции Ncurses
  • Remove panel from the stack, making it invisible

ncurses_hide_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_hide_panel — Remove panel from the stack, making it invisible

Описание

ncurses_hide_panel ( resource $panel ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel


Рисует горизонтальную линию в окне в текущей позиции с использованием атрибута-символа и определенного максимального количества символов

  • « ncurses_hide_panel
  • ncurses_inch »
  • PHP Manual
  • Функции Ncurses
  • Рисует горизонтальную линию в окне в текущей позиции с использованием атрибута-символа и определенного максимального количества символов

ncurses_hline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_hline — Рисует горизонтальную линию в окне в текущей позиции с использованием атрибута-символа и определенного максимального количества символов

Описание

ncurses_hline ( int $charattr , int $n ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

charattr

n


Получить символ и атрибут в текущей позиции

  • « ncurses_hline
  • ncurses_init_color »
  • PHP Manual
  • Функции Ncurses
  • Получить символ и атрибут в текущей позиции

ncurses_inch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_inch — Получить символ и атрибут в текущей позиции

Описание

ncurses_inch ( void ) : string
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Возвращает символ из текущей позиции.

Возвращаемые значения

Возвращает символ в виде строки.


Define a terminal color

  • « ncurses_inch
  • ncurses_init_pair »
  • PHP Manual
  • Функции Ncurses
  • Define a terminal color

ncurses_init_color

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_init_color — Define a terminal color

Описание

ncurses_init_color ( int $color , int $r , int $g , int $b ) : int

Defines or redefines the given color. When this function is called, all occurrences of the given color on the screen, if any, immediately change to the new definition.

Color capabilities must be supported by the terminal and initialized using ncurses_start_color() prior to calling this function. In addition, the terminal must have color changing capabilities; use ncurses_can_change_color() to check for this.

Список параметров

color

The identification number of the color to redefine. It may be one of the default color constants.

r

A color value, between 0 and 1000, for the red component.

g

A color value, between 0 and 1000, for the green component.

b

A color value, between 0 and 1000, for the blue component.

Возвращаемые значения

Returns -1 if the function was successful, and 0 if ncurses or terminal color capabilities have not been initialized or the terminal does not have color changing capabilities.

Смотрите также

  • ncurses_color_content() - Извлекает компоненты RGB цвета
  • ncurses_start_color() - Initializes color functionality


Define a color pair

  • « ncurses_init_color
  • ncurses_init »
  • PHP Manual
  • Функции Ncurses
  • Define a color pair

ncurses_init_pair

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_init_pair — Define a color pair

Описание

ncurses_init_pair ( int $pair , int $fg , int $bg ) : int

Defines or redefines the given color pair to have the given foreground and background colors. If the color pair was previously initialized, the screen is refreshed and all occurrences of it are changed to reflect the new definition.

Color capabilities must be initialized using ncurses_start_color() before calling this function. The first color pair (color pair 0) is assumed to be white on black by default, but can be changed using ncurses_assume_default_colors().

Список параметров

pair

The number of the color pair to define.

fg

The foreground color for the color pair. May be one of the pre-defined colors or one defined by ncurses_init_color() if the terminal has color changing capabilities.

bg

The background color for the color pair. May be one of the pre-defined colors or one defined by ncurses_init_color() if the terminal has color changing capabilities.

Возвращаемые значения

Returns -1 if the function was successful, and 0 if ncurses or color support were not initialized.

Примечания

Note that color changing capabilities are not required for defining color pairs of pre-existing colors, but only for changing definitions (red, green, and blue components) of colors themselves per ncurses_init_color().

Примеры

Пример #1 Writing a string with a specified color to the screen

<?php
ncurses_init();

// If the terminal supports colors, initialize and set active color
if (ncurses_has_colors()) {
    ncurses_start_color();
    ncurses_init_pair(1, NCURSES_COLOR_YELLOW, NCURSES_COLOR_BLUE);
    ncurses_color_set(1);
}

// Write a string at specified location
ncurses_mvaddstr(10, 10, "Hello world! Yellow on blue text!");

// Flush output to screen
ncurses_refresh();

ncurses_end();
?>

Смотрите также

  • ncurses_pair_content() - Retrieves foreground and background colors of a color pair
  • ncurses_start_color() - Initializes color functionality


Initialize ncurses

  • « ncurses_init_pair
  • ncurses_insch »
  • PHP Manual
  • Функции Ncurses
  • Initialize ncurses

ncurses_init

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_init — Initialize ncurses

Описание

ncurses_init ( void ) : void

Initializes the ncurses interface. This function must be used before any other ncurses function call.

Note that ncurses_end() must be called before exiting from the program, or the terminal will not be restored to its proper non-visual mode.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ncurses_end() - Прекратить использование ncurses и очистить экран


Insert character moving rest of line including character at current position

  • « ncurses_init
  • ncurses_insdelln »
  • PHP Manual
  • Функции Ncurses
  • Insert character moving rest of line including character at current position

ncurses_insch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insch — Insert character moving rest of line including character at current position

Описание

ncurses_insch ( int $character ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

character


Insert lines before current line scrolling down (negative numbers delete and scroll up)

  • « ncurses_insch
  • ncurses_insertln »
  • PHP Manual
  • Функции Ncurses
  • Insert lines before current line scrolling down (negative numbers delete and scroll up)

ncurses_insdelln

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insdelln — Insert lines before current line scrolling down (negative numbers delete and scroll up)

Описание

ncurses_insdelln ( int $count ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

count


Insert a line, move rest of screen down

  • « ncurses_insdelln
  • ncurses_insstr »
  • PHP Manual
  • Функции Ncurses
  • Insert a line, move rest of screen down

ncurses_insertln

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insertln — Insert a line, move rest of screen down

Описание

ncurses_insertln ( void ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Inserts a new line above the current line. The bottom line will be lost.


Insert string at current position, moving rest of line right

  • « ncurses_insertln
  • ncurses_instr »
  • PHP Manual
  • Функции Ncurses
  • Insert string at current position, moving rest of line right

ncurses_insstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insstr — Insert string at current position, moving rest of line right

Описание

ncurses_insstr ( string $text ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

text


Reads string from terminal screen

  • « ncurses_insstr
  • ncurses_isendwin »
  • PHP Manual
  • Функции Ncurses
  • Reads string from terminal screen

ncurses_instr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_instr — Reads string from terminal screen

Описание

ncurses_instr ( string &$buffer ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Reads a string from the terminal screen and returns the number of characters read from the current character position until end of line.

Список параметров

buffer

The characters. Attributes will be stripped.

Возвращаемые значения

Returns the number of characters.


Ncurses is in endwin mode, normal screen output may be performed

  • « ncurses_instr
  • ncurses_keyok »
  • PHP Manual
  • Функции Ncurses
  • Ncurses is in endwin mode, normal screen output may be performed

ncurses_isendwin

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_isendwin — Ncurses is in endwin mode, normal screen output may be performed

Описание

ncurses_isendwin ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Checks if ncurses is in endwin mode.

Возвращаемые значения

Returns TRUE, if ncurses_end() has been called without any subsequent calls to ncurses_wrefresh(), FALSE otherwise.

Смотрите также

  • ncurses_end() - Прекратить использование ncurses и очистить экран
  • ncurses_wrefresh() - Обновить окно на экране терминала


Enable or disable a keycode

  • « ncurses_isendwin
  • ncurses_keypad »
  • PHP Manual
  • Функции Ncurses
  • Enable or disable a keycode

ncurses_keyok

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_keyok — Enable or disable a keycode

Описание

ncurses_keyok ( int $keycode , bool $enable ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

keycode

enable


Turns keypad on or off

  • « ncurses_keyok
  • ncurses_killchar »
  • PHP Manual
  • Функции Ncurses
  • Turns keypad on or off

ncurses_keypad

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_keypad — Turns keypad on or off

Описание

ncurses_keypad ( resource $window , bool $bf ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

bf


Returns current line kill character

  • « ncurses_keypad
  • ncurses_longname »
  • PHP Manual
  • Функции Ncurses
  • Returns current line kill character

ncurses_killchar

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_killchar — Returns current line kill character

Описание

ncurses_killchar ( void ) : string
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the current line kill character.

Возвращаемые значения

Returns the kill character, as a string.

Смотрите также

  • ncurses_erasechar() - Возвращает текущий символ стирания


Returns terminals description

  • « ncurses_killchar
  • ncurses_meta »
  • PHP Manual
  • Функции Ncurses
  • Returns terminals description

ncurses_longname

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_longname — Returns terminals description

Описание

ncurses_longname ( void ) : string
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns a verbose description of the terminal.

Возвращаемые значения

Returns the description, as a string truncated to 128 characters. On errors, returns NULL.

Смотрите также

  • ncurses_termname() - Returns terminals (short)-name


Enables/Disable 8-bit meta key information

  • « ncurses_longname
  • ncurses_mouse_trafo »
  • PHP Manual
  • Функции Ncurses
  • Enables/Disable 8-bit meta key information

ncurses_meta

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_meta — Enables/Disable 8-bit meta key information

Описание

ncurses_meta ( resource $window , bool $8bit ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

8bit


Преобразует координаты

  • « ncurses_meta
  • ncurses_mouseinterval »
  • PHP Manual
  • Функции Ncurses
  • Преобразует координаты

ncurses_mouse_trafo

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mouse_trafo — Преобразует координаты

Описание

ncurses_mouse_trafo ( int &$y , int &$x , bool $toscreen ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x

toscreen


Set timeout for mouse button clicks

  • « ncurses_mouse_trafo
  • ncurses_mousemask »
  • PHP Manual
  • Функции Ncurses
  • Set timeout for mouse button clicks

ncurses_mouseinterval

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mouseinterval — Set timeout for mouse button clicks

Описание

ncurses_mouseinterval ( int $milliseconds ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

milliseconds


Sets mouse options

  • « ncurses_mouseinterval
  • ncurses_move_panel »
  • PHP Manual
  • Функции Ncurses
  • Sets mouse options

ncurses_mousemask

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mousemask — Sets mouse options

Описание

ncurses_mousemask ( int $newmask , int &$oldmask ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets mouse events to be reported. By default no mouse events will be reported.

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().

Список параметров

newmask

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

As a side effect, setting a zero mousemask in newmask turns off the mouse pointer. Setting a non zero value turns mouse pointer on.

oldmask

This will be set to the previous value of the mouse event mask.

Возвращаемые значения

Returns the mask of reportable events. On complete failure, it returns 0.

Примеры

Пример #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");
}
?>

Смотрите также

  • ncurses_getch() - Read a character from keyboard
  • ncurses_getmouse() - Reads mouse event
  • ncurses_ungetmouse() - Pushes mouse event to queue


Moves a panel so that its upper-left corner is at [startx, starty]

  • « ncurses_mousemask
  • ncurses_move »
  • PHP Manual
  • Функции Ncurses
  • Moves a panel so that its upper-left corner is at [startx, starty]

ncurses_move_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_move_panel — Moves a panel so that its upper-left corner is at [startx, starty]

Описание

ncurses_move_panel ( resource $panel , int $startx , int $starty ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel

startx

starty


Переместить выходную позицию

  • « ncurses_move_panel
  • ncurses_mvaddch »
  • PHP Manual
  • Функции Ncurses
  • Переместить выходную позицию

ncurses_move

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_move — Переместить выходную позицию

Описание

ncurses_move ( int $y , int $x ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x


Move current position and add character

  • « ncurses_move
  • ncurses_mvaddchnstr »
  • PHP Manual
  • Функции Ncurses
  • Move current position and add character

ncurses_mvaddch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddch — Move current position and add character

Описание

ncurses_mvaddch ( int $y , int $x , int $c ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x

c


Переместить позицию и добавить строку-атрибут с указанной длиной

  • « ncurses_mvaddch
  • ncurses_mvaddchstr »
  • PHP Manual
  • Функции Ncurses
  • Переместить позицию и добавить строку-атрибут с указанной длиной

ncurses_mvaddchnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddchnstr — Переместить позицию и добавить строку-атрибут с указанной длиной

Описание

ncurses_mvaddchnstr ( int $y , int $x , string $s , int $n ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x

s

n


Move position and add attributed string

  • « ncurses_mvaddchnstr
  • ncurses_mvaddnstr »
  • PHP Manual
  • Функции Ncurses
  • Move position and add attributed string

ncurses_mvaddchstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddchstr — Move position and add attributed string

Описание

ncurses_mvaddchstr ( int $y , int $x , string $s ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x

s


Move position and add string with specified length

  • « ncurses_mvaddchstr
  • ncurses_mvaddstr »
  • PHP Manual
  • Функции Ncurses
  • Move position and add string with specified length

ncurses_mvaddnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddnstr — Move position and add string with specified length

Описание

ncurses_mvaddnstr ( int $y , int $x , string $s , int $n ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x

s

n


Переместить позицию и добавить строку

  • « ncurses_mvaddnstr
  • ncurses_mvcur »
  • PHP Manual
  • Функции Ncurses
  • Переместить позицию и добавить строку

ncurses_mvaddstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddstr — Переместить позицию и добавить строку

Описание

ncurses_mvaddstr ( int $y , int $x , string $s ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x

s


Немедленно переместить курсор

  • « ncurses_mvaddstr
  • ncurses_mvdelch »
  • PHP Manual
  • Функции Ncurses
  • Немедленно переместить курсор

ncurses_mvcur

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvcur — Немедленно переместить курсор

Описание

ncurses_mvcur ( int $old_y , int $old_x , int $new_y , int $new_x ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

old_y

old_x

new_y

new_x


Move position and delete character, shift rest of line left

  • « ncurses_mvcur
  • ncurses_mvgetch »
  • PHP Manual
  • Функции Ncurses
  • Move position and delete character, shift rest of line left

ncurses_mvdelch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvdelch — Move position and delete character, shift rest of line left

Описание

ncurses_mvdelch ( int $y , int $x ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x


Переместить позицию и получить символ в новой позиции

  • « ncurses_mvdelch
  • ncurses_mvhline »
  • PHP Manual
  • Функции Ncurses
  • Переместить позицию и получить символ в новой позиции

ncurses_mvgetch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvgetch — Переместить позицию и получить символ в новой позиции

Описание

ncurses_mvgetch ( int $y , int $x ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x


Set new position and draw a horizontal line using an attributed character and max. n characters long

  • « ncurses_mvgetch
  • ncurses_mvinch »
  • PHP Manual
  • Функции Ncurses
  • Set new position and draw a horizontal line using an attributed character and max. n characters long

ncurses_mvhline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvhline — Set new position and draw a horizontal line using an attributed character and max. n characters long

Описание

ncurses_mvhline ( int $y , int $x , int $attrchar , int $n ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x

attrchar

n


Переместить позицию и получить символ-атрибут в новой позиции

  • « ncurses_mvhline
  • ncurses_mvvline »
  • PHP Manual
  • Функции Ncurses
  • Переместить позицию и получить символ-атрибут в новой позиции

ncurses_mvinch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvinch — Переместить позицию и получить символ-атрибут в новой позиции

Описание

ncurses_mvinch ( int $y , int $x ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x


Установить новую позицию и отрисовать вертикальную линию с использованием атрибута и максимального количества символов

  • « ncurses_mvinch
  • ncurses_mvwaddstr »
  • PHP Manual
  • Функции Ncurses
  • Установить новую позицию и отрисовать вертикальную линию с использованием атрибута и максимального количества символов

ncurses_mvvline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvvline — Установить новую позицию и отрисовать вертикальную линию с использованием атрибута и максимального количества символов

Описание

ncurses_mvvline ( int $y , int $x , int $attrchar , int $n ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x

attrchar

n


Добавить строку в новую позицию окна

  • « ncurses_mvvline
  • ncurses_napms »
  • PHP Manual
  • Функции Ncurses
  • Добавить строку в новую позицию окна

ncurses_mvwaddstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvwaddstr — Добавить строку в новую позицию окна

Описание

ncurses_mvwaddstr ( resource $window , int $y , int $x , string $text ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

y

x

text


Sleep

  • « ncurses_mvwaddstr
  • ncurses_new_panel »
  • PHP Manual
  • Функции Ncurses
  • Sleep

ncurses_napms

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_napms — Sleep

Описание

ncurses_napms ( int $milliseconds ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

milliseconds


Создать новую панель и связать ее с окном

  • « ncurses_napms
  • ncurses_newpad »
  • PHP Manual
  • Функции Ncurses
  • Создать новую панель и связать ее с окном

ncurses_new_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_new_panel — Создать новую панель и связать ее с окном

Описание

ncurses_new_panel ( resource $window ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


Creates a new pad (window)

  • « ncurses_new_panel
  • ncurses_newwin »
  • PHP Manual
  • Функции Ncurses
  • Creates a new pad (window)

ncurses_newpad

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_newpad — Creates a new pad (window)

Описание

ncurses_newpad ( int $rows , int $cols ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

rows

cols


Создать новое окно

  • « ncurses_newpad
  • ncurses_nl »
  • PHP Manual
  • Функции Ncurses
  • Создать новое окно

ncurses_newwin

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_newwin — Создать новое окно

Описание

ncurses_newwin ( int $rows , int $cols , int $y , int $x ) : resource
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Создает новое окно для отрисовки элементов.

При создании дополнительных окон не забудьте использовать ncurses_getmaxyx() для проверки свободного места, поскольку размер терминала независимый и может отличаться.

Список параметров

rows

Число строк

cols

Число столбцов

y

Координата y источника

x

Коордианата x источника

Возвращаемые значения

Возвращает идентификатор ресурса нового окна.


Перевод новой строки и возврата каретки/перевода строки

  • « ncurses_newwin
  • ncurses_nocbreak »
  • PHP Manual
  • Функции Ncurses
  • Перевод новой строки и возврата каретки/перевода строки

ncurses_nl

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_nl — Перевод новой строки и возврата каретки/перевода строки

Описание

ncurses_nl ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Switch terminal to cooked mode

  • « ncurses_nl
  • ncurses_noecho »
  • PHP Manual
  • Функции Ncurses
  • Switch terminal to cooked mode

ncurses_nocbreak

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_nocbreak — Switch terminal to cooked mode

Описание

ncurses_nocbreak ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns terminal to normal (cooked) mode. Initially the terminal may or may not be 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.

Смотрите также

  • ncurses_cbreak() - Выключить буферизацию ввода


Switch off keyboard input echo

  • « ncurses_nocbreak
  • ncurses_nonl »
  • PHP Manual
  • Функции Ncurses
  • Switch off keyboard input echo

ncurses_noecho

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_noecho — Switch off keyboard input echo

Описание

ncurses_noecho ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Prevents echoing of user typed characters.

Возвращаемые значения

Returns TRUE if any error occurred, FALSE otherwise.

Смотрите также

  • ncurses_echo() - Activate keyboard input echo
  • ncurses_getch() - Read a character from keyboard


Do not translate newline and carriage return / line feed

  • « ncurses_noecho
  • ncurses_noqiflush »
  • PHP Manual
  • Функции Ncurses
  • Do not translate newline and carriage return / line feed

ncurses_nonl

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_nonl — Do not translate newline and carriage return / line feed

Описание

ncurses_nonl ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Do not flush on signal characters

  • « ncurses_nonl
  • ncurses_noraw »
  • PHP Manual
  • Функции Ncurses
  • Do not flush on signal characters

ncurses_noqiflush

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_noqiflush — Do not flush on signal characters

Описание

ncurses_noqiflush ( void ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Switch terminal out of raw mode

  • « ncurses_noqiflush
  • ncurses_pair_content »
  • PHP Manual
  • Функции Ncurses
  • Switch terminal out of raw mode

ncurses_noraw

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_noraw — Switch terminal out of raw mode

Описание

ncurses_noraw ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

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 difference is 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.

Смотрите также

  • ncurses_raw() - Switch terminal into raw mode
  • ncurses_cbreak() - Выключить буферизацию ввода
  • ncurses_nocbreak() - Switch terminal to cooked mode


Retrieves foreground and background colors of a color pair

  • « ncurses_noraw
  • ncurses_panel_above »
  • PHP Manual
  • Функции Ncurses
  • Retrieves foreground and background colors of a color pair

ncurses_pair_content

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_pair_content — Retrieves foreground and background colors of a color pair

Описание

ncurses_pair_content ( int $pair , int &$f , int &$b ) : int

Retrieves the foreground and background colors that constitute the given color pair. Terminal color capabilities must be initialized with ncurses_start_color() prior to calling this function.

Список параметров

pair

The number of the color pair to retrieve information for.

f

A reference to which to return the foreground color of the color pair. The information returned will be a color number referring to one of the pre-defined colors or a color defined previously by ncurses_init_color() if the terminal supports color changing.

b

A reference to which to return the background color of the color pair. The information returned will be a color number referring to one of the pre-defined colors or a color defined previously by ncurses_init_color() if the terminal supports color changing.

Возвращаемые значения

Returns -1 if the function was successful, and 0 if ncurses or terminal color capabilities have not been initialized.

Смотрите также

  • ncurses_init_pair() - Define a color pair
  • ncurses_start_color() - Initializes color functionality


Возвращает панель над панелью

  • « ncurses_pair_content
  • ncurses_panel_below »
  • PHP Manual
  • Функции Ncurses
  • Возвращает панель над панелью

ncurses_panel_above

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_panel_above — Возвращает панель над панелью

Описание

ncurses_panel_above ( resource $panel ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel

Возвращаемые значения

Если panel равно null, возвращается нижняя панель в стеке.


Возвращает панель под панелью

  • « ncurses_panel_above
  • ncurses_panel_window »
  • PHP Manual
  • Функции Ncurses
  • Возвращает панель под панелью

ncurses_panel_below

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_panel_below — Возвращает панель под панелью

Описание

ncurses_panel_below ( resource $panel ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel

Список параметров

Если panel равно null, возвращается верхняя панель в стеке.


Возвращает окно, связанное с панелью

  • « ncurses_panel_below
  • ncurses_pnoutrefresh »
  • PHP Manual
  • Функции Ncurses
  • Возвращает окно, связанное с панелью

ncurses_panel_window

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_panel_window — Возвращает окно, связанное с панелью

Описание

ncurses_panel_window ( resource $panel ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel


Copies a region from a pad into the virtual screen

  • « ncurses_panel_window
  • ncurses_prefresh »
  • PHP Manual
  • Функции Ncurses
  • Copies a region from a pad into the virtual screen

ncurses_pnoutrefresh

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_pnoutrefresh — Copies a region from a pad into the virtual screen

Описание

ncurses_pnoutrefresh ( resource $pad , int $pminrow , int $pmincol , int $sminrow , int $smincol , int $smaxrow , int $smaxcol ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pad

pminrow

pmincol

sminrow

smincol

smaxrow

smaxcol


Copies a region from a pad into the virtual screen

  • « ncurses_pnoutrefresh
  • ncurses_putp »
  • PHP Manual
  • Функции Ncurses
  • Copies a region from a pad into the virtual screen

ncurses_prefresh

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_prefresh — Copies a region from a pad into the virtual screen

Описание

ncurses_prefresh ( resource $pad , int $pminrow , int $pmincol , int $sminrow , int $smincol , int $smaxrow , int $smaxcol ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pad

pminrow

pmincol

sminrow

smincol

smaxrow

smaxcol


Apply padding information to the string and output it

  • « ncurses_prefresh
  • ncurses_qiflush »
  • PHP Manual
  • Функции Ncurses
  • Apply padding information to the string and output it

ncurses_putp

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_putp — Apply padding information to the string and output it

Описание

ncurses_putp ( string $text ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

text


Flush on signal characters

  • « ncurses_putp
  • ncurses_raw »
  • PHP Manual
  • Функции Ncurses
  • Flush on signal characters

ncurses_qiflush

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_qiflush — Flush on signal characters

Описание

ncurses_qiflush ( void ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Switch terminal into raw mode

  • « ncurses_qiflush
  • ncurses_refresh »
  • PHP Manual
  • Функции Ncurses
  • Switch terminal into raw mode

ncurses_raw

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_raw — Switch terminal into raw mode

Описание

ncurses_raw ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

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 difference is 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.

Смотрите также

  • ncurses_noraw() - Switch terminal out of raw mode
  • ncurses_cbreak() - Выключить буферизацию ввода
  • ncurses_nocbreak() - Switch terminal to cooked mode


Обновить экран

  • « ncurses_raw
  • ncurses_replace_panel »
  • PHP Manual
  • Функции Ncurses
  • Обновить экран

ncurses_refresh

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_refresh — Обновить экран

Описание

ncurses_refresh ( int $ch ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ch


Replaces the window associated with panel

  • « ncurses_refresh
  • ncurses_reset_prog_mode »
  • PHP Manual
  • Функции Ncurses
  • Replaces the window associated with panel

ncurses_replace_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_replace_panel — Replaces the window associated with panel

Описание

ncurses_replace_panel ( resource $panel , resource $window ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel

window


Resets the prog mode saved by def_prog_mode

  • « ncurses_replace_panel
  • ncurses_reset_shell_mode »
  • PHP Manual
  • Функции Ncurses
  • Resets the prog mode saved by def_prog_mode

ncurses_reset_prog_mode

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_reset_prog_mode — Resets the prog mode saved by def_prog_mode

Описание

ncurses_reset_prog_mode ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Resets the shell mode saved by def_shell_mode

  • « ncurses_reset_prog_mode
  • ncurses_resetty »
  • PHP Manual
  • Функции Ncurses
  • Resets the shell mode saved by def_shell_mode

ncurses_reset_shell_mode

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_reset_shell_mode — Resets the shell mode saved by def_shell_mode

Описание

ncurses_reset_shell_mode ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Restores saved terminal state

  • « ncurses_reset_shell_mode
  • ncurses_savetty »
  • PHP Manual
  • Функции Ncurses
  • Restores saved terminal state

ncurses_resetty

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_resetty — Restores saved terminal state

Описание

ncurses_resetty ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Restores the terminal state, which was previously saved by calling ncurses_savetty().

Возвращаемые значения

Always returns FALSE.

Смотрите также

  • ncurses_savetty() - Saves terminal state


Saves terminal state

  • « ncurses_resetty
  • ncurses_scr_dump »
  • PHP Manual
  • Функции Ncurses
  • Saves terminal state

ncurses_savetty

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_savetty — Saves terminal state

Описание

ncurses_savetty ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Saves the current terminal state. The saved terminal state can be restored with ncurses_resetty().

Возвращаемые значения

Always returns FALSE.

Смотрите также

  • ncurses_resetty() - Restores saved terminal state


Dump screen content to file

  • « ncurses_savetty
  • ncurses_scr_init »
  • PHP Manual
  • Функции Ncurses
  • Dump screen content to file

ncurses_scr_dump

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_dump — Dump screen content to file

Описание

ncurses_scr_dump ( string $filename ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

filename


Initialize screen from file dump

  • « ncurses_scr_dump
  • ncurses_scr_restore »
  • PHP Manual
  • Функции Ncurses
  • Initialize screen from file dump

ncurses_scr_init

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_init — Initialize screen from file dump

Описание

ncurses_scr_init ( string $filename ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

filename


Восстановить экран из файла дампа

  • « ncurses_scr_init
  • ncurses_scr_set »
  • PHP Manual
  • Функции Ncurses
  • Восстановить экран из файла дампа

ncurses_scr_restore

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_restore — Восстановить экран из файла дампа

Описание

ncurses_scr_restore ( string $filename ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

filename


Наследовать экран из файла дампа

  • « ncurses_scr_restore
  • ncurses_scrl »
  • PHP Manual
  • Функции Ncurses
  • Наследовать экран из файла дампа

ncurses_scr_set

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_set — Наследовать экран из файла дампа

Описание

ncurses_scr_set ( string $filename ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

filename


Прокрутить содержимого окна вверх или вниз без изменения текущего положения

  • « ncurses_scr_set
  • ncurses_show_panel »
  • PHP Manual
  • Функции Ncurses
  • Прокрутить содержимого окна вверх или вниз без изменения текущего положения

ncurses_scrl

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scrl — Прокрутить содержимого окна вверх или вниз без изменения текущего положения

Описание

ncurses_scrl ( int $count ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

count


Помещает невидимую панель поверх стека, делая ее видимой

  • « ncurses_scrl
  • ncurses_slk_attr »
  • PHP Manual
  • Функции Ncurses
  • Помещает невидимую панель поверх стека, делая ее видимой

ncurses_show_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_show_panel — Помещает невидимую панель поверх стека, делая ее видимой

Описание

ncurses_show_panel ( resource $panel ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel


Returns current soft label key attribute

  • « ncurses_show_panel
  • ncurses_slk_attroff »
  • PHP Manual
  • Функции Ncurses
  • Returns current soft label key attribute

ncurses_slk_attr

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attr — Returns current soft label key attribute

Описание

ncurses_slk_attr ( void ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the current soft label key attribute.

Возвращаемые значения

The attribute, as an integer.


Turn off the given attributes for soft function-key labels

  • « ncurses_slk_attr
  • ncurses_slk_attron »
  • PHP Manual
  • Функции Ncurses
  • Turn off the given attributes for soft function-key labels

ncurses_slk_attroff

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attroff — Turn off the given attributes for soft function-key labels

Описание

ncurses_slk_attroff ( int $intarg ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

intarg


Turn on the given attributes for soft function-key labels

  • « ncurses_slk_attroff
  • ncurses_slk_attrset »
  • PHP Manual
  • Функции Ncurses
  • Turn on the given attributes for soft function-key labels

ncurses_slk_attron

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attron — Turn on the given attributes for soft function-key labels

Описание

ncurses_slk_attron ( int $intarg ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

intarg


Set given attributes for soft function-key labels

  • « ncurses_slk_attron
  • ncurses_slk_clear »
  • PHP Manual
  • Функции Ncurses
  • Set given attributes for soft function-key labels

ncurses_slk_attrset

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attrset — Set given attributes for soft function-key labels

Описание

ncurses_slk_attrset ( int $intarg ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

intarg


Clears soft labels from screen

  • « ncurses_slk_attrset
  • ncurses_slk_color »
  • PHP Manual
  • Функции Ncurses
  • Clears soft labels from screen

ncurses_slk_clear

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_clear — Clears soft labels from screen

Описание

ncurses_slk_clear ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

The function ncurses_slk_clear() clears soft label keys from screen.

Возвращаемые значения

Returns TRUE on errors, FALSE otherwise.


Sets color for soft label keys

  • « ncurses_slk_clear
  • ncurses_slk_init »
  • PHP Manual
  • Функции Ncurses
  • Sets color for soft label keys

ncurses_slk_color

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_color — Sets color for soft label keys

Описание

ncurses_slk_color ( int $intarg ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

intarg


Initializes soft label key functions

  • « ncurses_slk_color
  • ncurses_slk_noutrefresh »
  • PHP Manual
  • Функции Ncurses
  • Initializes soft label key functions

ncurses_slk_init

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_init — Initializes soft label key functions

Описание

ncurses_slk_init ( int $format ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Initializes soft label key functions

This function must be called before ncurses_init() or ncurses_newwin() is called.

Список параметров

format

If ncurses_init() eventually uses a line from stdscr to emulate the soft labels, then this parameter determines how the labels are arranged of the screen.

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.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Copies soft label keys to virtual screen

  • « ncurses_slk_init
  • ncurses_slk_refresh »
  • PHP Manual
  • Функции Ncurses
  • Copies soft label keys to virtual screen

ncurses_slk_noutrefresh

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_noutrefresh — Copies soft label keys to virtual screen

Описание

ncurses_slk_noutrefresh ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Copies soft label keys to screen

  • « ncurses_slk_noutrefresh
  • ncurses_slk_restore »
  • PHP Manual
  • Функции Ncurses
  • Copies soft label keys to screen

ncurses_slk_refresh

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_refresh — Copies soft label keys to screen

Описание

ncurses_slk_refresh ( void ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Copies soft label keys from virtual screen to physical screen.


Restores soft label keys

  • « ncurses_slk_refresh
  • ncurses_slk_set »
  • PHP Manual
  • Функции Ncurses
  • Restores soft label keys

ncurses_slk_restore

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_restore — Restores soft label keys

Описание

ncurses_slk_restore ( void ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Restores the soft label keys after ncurses_slk_clear() has been performed.


Sets function key labels

  • « ncurses_slk_restore
  • ncurses_slk_touch »
  • PHP Manual
  • Функции Ncurses
  • Sets function key labels

ncurses_slk_set

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_set — Sets function key labels

Описание

ncurses_slk_set ( int $labelnr , string $label , int $format ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

labelnr

label

format


Forces output when ncurses_slk_noutrefresh is performed

  • « ncurses_slk_set
  • ncurses_standend »
  • PHP Manual
  • Функции Ncurses
  • Forces output when ncurses_slk_noutrefresh is performed

ncurses_slk_touch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_touch — Forces output when ncurses_slk_noutrefresh is performed

Описание

ncurses_slk_touch ( void ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Forces all the soft labels to be output the next time a ncurses_slk_noutrefresh() is performed.


Остановить использование атрибута 'standout'

  • « ncurses_slk_touch
  • ncurses_standout »
  • PHP Manual
  • Функции Ncurses
  • Остановить использование атрибута 'standout'

ncurses_standend

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_standend — Остановить использование атрибута 'standout'

Описание

ncurses_standend ( void ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Начать использование атрибута 'standout'

  • « ncurses_standend
  • ncurses_start_color »
  • PHP Manual
  • Функции Ncurses
  • Начать использование атрибута 'standout'

ncurses_standout

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_standout — Начать использование атрибута 'standout'

Описание

ncurses_standout ( void ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Initializes color functionality

  • « ncurses_standout
  • ncurses_termattrs »
  • PHP Manual
  • Функции Ncurses
  • Initializes color functionality

ncurses_start_color

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_start_color — Initializes color functionality

Описание

ncurses_start_color ( void ) : int

Initializes color functionality in ncurses. This function must be called before any color manipulation functions are called and after ncurses_init() is called. It is good practice to call this function right after ncurses_init().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns 0 on success, or -1 if the color table could not be allocated or ncurses was not initialized.

Примеры

Пример #1 Writing a string with a specified color to the screen

<?php
ncurses_init();

// If the terminal supports colors, initialize and set active color
if (ncurses_has_colors()) {
    ncurses_start_color();
    ncurses_init_pair(1, NCURSES_COLOR_YELLOW, NCURSES_COLOR_BLUE);
    ncurses_color_set(1);
}

// Write a string at specified location
ncurses_mvaddstr(10, 10, "Hello world! Yellow on blue text!");

// Flush output to screen
ncurses_refresh();

ncurses_end();
?>

Смотрите также

  • ncurses_can_change_color() - Проверяет, можно ли изменить определения цветов терминала
  • ncurses_has_colors() - Checks if terminal has color capabilities


Возвращает логическое ИЛИ всех флагов атрибутов, поддерживаемых терминалом

  • « ncurses_start_color
  • ncurses_termname »
  • PHP Manual
  • Функции Ncurses
  • Возвращает логическое ИЛИ всех флагов атрибутов, поддерживаемых терминалом

ncurses_termattrs

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_termattrs — Возвращает логическое ИЛИ всех флагов атрибутов, поддерживаемых терминалом

Описание

ncurses_termattrs ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Returns terminals (short)-name

  • « ncurses_termattrs
  • ncurses_timeout »
  • PHP Manual
  • Функции Ncurses
  • Returns terminals (short)-name

ncurses_termname

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_termname — Returns terminals (short)-name

Описание

ncurses_termname ( void ) : string
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns terminals shortname.

Возвращаемые значения

Returns the shortname of the terminal, truncated to 14 characters. On errors, returns NULL.

Смотрите также

  • ncurses_longname() - Returns terminals description


Set timeout for special key sequences

  • « ncurses_termname
  • ncurses_top_panel »
  • PHP Manual
  • Функции Ncurses
  • Set timeout for special key sequences

ncurses_timeout

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_timeout — Set timeout for special key sequences

Описание

ncurses_timeout ( int $millisec ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

millisec


Перемещает видимую панель в верхнюю часть стека

  • « ncurses_timeout
  • ncurses_typeahead »
  • PHP Manual
  • Функции Ncurses
  • Перемещает видимую панель в верхнюю часть стека

ncurses_top_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_top_panel — Перемещает видимую панель в верхнюю часть стека

Описание

ncurses_top_panel ( resource $panel ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel


Указать другой файловый дескриптор для проверки типа

  • « ncurses_top_panel
  • ncurses_ungetch »
  • PHP Manual
  • Функции Ncurses
  • Указать другой файловый дескриптор для проверки типа

ncurses_typeahead

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_typeahead — Указать другой файловый дескриптор для проверки типа

Описание

ncurses_typeahead ( int $fd ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

fd


Поставить символ обратно во входной поток

  • « ncurses_typeahead
  • ncurses_ungetmouse »
  • PHP Manual
  • Функции Ncurses
  • Поставить символ обратно во входной поток

ncurses_ungetch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_ungetch — Поставить символ обратно во входной поток

Описание

ncurses_ungetch ( int $keycode ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

keycode


Pushes mouse event to queue

  • « ncurses_ungetch
  • ncurses_update_panels »
  • PHP Manual
  • Функции Ncurses
  • Pushes mouse event to queue

ncurses_ungetmouse

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_ungetmouse — Pushes mouse event to queue

Описание

ncurses_ungetmouse ( array $mevent ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Pushes a KEY_MOUSE event onto the input queue and associates with this event the given state data and screen-relative character cell coordinates, specified in mevent.

Список параметров

mevent

An associative array specifying the event options:

  • "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

Возвращаемые значения

Returns FALSE on success, TRUE otherwise.

Смотрите также

  • ncurses_getmouse() - Reads mouse event


Обновляет виртуальной экран для отображения связей между панелями в стеке

  • « ncurses_ungetmouse
  • ncurses_use_default_colors »
  • PHP Manual
  • Функции Ncurses
  • Обновляет виртуальной экран для отображения связей между панелями в стеке

ncurses_update_panels

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_update_panels — Обновляет виртуальной экран для отображения связей между панелями в стеке

Описание

ncurses_update_panels ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Назначить цвета терминала по умолчанию на идентификатор цвета -1

  • « ncurses_update_panels
  • ncurses_use_env »
  • PHP Manual
  • Функции Ncurses
  • Назначить цвета терминала по умолчанию на идентификатор цвета -1

ncurses_use_default_colors

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_use_default_colors — Назначить цвета терминала по умолчанию на идентификатор цвета -1

Описание

ncurses_use_default_colors ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Управляет использованием информации окружения о размере терминала

  • « ncurses_use_default_colors
  • ncurses_use_extended_names »
  • PHP Manual
  • Функции Ncurses
  • Управляет использованием информации окружения о размере терминала

ncurses_use_env

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_use_env — Управляет использованием информации окружения о размере терминала

Описание

ncurses_use_env ( bool $flag ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

flag


Управляет использованием расширенных имен в описаниях terminfo

  • « ncurses_use_env
  • ncurses_vidattr »
  • PHP Manual
  • Функции Ncurses
  • Управляет использованием расширенных имен в описаниях terminfo

ncurses_use_extended_names

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_use_extended_names — Управляет использованием расширенных имен в описаниях terminfo

Описание

ncurses_use_extended_names ( bool $flag ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

flag


Отобразить строку в терминале в режиме атрибута видео

  • « ncurses_use_extended_names
  • ncurses_vline »
  • PHP Manual
  • Функции Ncurses
  • Отобразить строку в терминале в режиме атрибута видео

ncurses_vidattr

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_vidattr — Отобразить строку в терминале в режиме атрибута видео

Описание

ncurses_vidattr ( int $intarg ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

intarg


Отрисовывает вертикальную линию в текущей позиции, используя символ-атрибут и максимальное количество символов

  • « ncurses_vidattr
  • ncurses_waddch »
  • PHP Manual
  • Функции Ncurses
  • Отрисовывает вертикальную линию в текущей позиции, используя символ-атрибут и максимальное количество символов

ncurses_vline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_vline — Отрисовывает вертикальную линию в текущей позиции, используя символ-атрибут и максимальное количество символов

Описание

ncurses_vline ( int $charattr , int $n ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

charattr

n


Добавляет символ в текущую позицию в окне и перемещает вперед курсор

  • « ncurses_vline
  • ncurses_waddstr »
  • PHP Manual
  • Функции Ncurses
  • Добавляет символ в текущую позицию в окне и перемещает вперед курсор

ncurses_waddch

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_waddch — Добавляет символ в текущую позицию в окне и перемещает вперед курсор

Описание

ncurses_waddch ( resource $window , int $ch ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

ch


Выводит текст в текущей позиции в окне

  • « ncurses_waddch
  • ncurses_wattroff »
  • PHP Manual
  • Функции Ncurses
  • Выводит текст в текущей позиции в окне

ncurses_waddstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_waddstr — Выводит текст в текущей позиции в окне

Описание

ncurses_waddstr ( resource $window , string $str [, int $n ] ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

str

n


Выключить атрибуты для окна

  • « ncurses_waddstr
  • ncurses_wattron »
  • PHP Manual
  • Функции Ncurses
  • Выключить атрибуты для окна

ncurses_wattroff

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wattroff — Выключить атрибуты для окна

Описание

ncurses_wattroff ( resource $window , int $attrs ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

attrs


Включить атрибуты для окна

  • « ncurses_wattroff
  • ncurses_wattrset »
  • PHP Manual
  • Функции Ncurses
  • Включить атрибуты для окна

ncurses_wattron

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wattron — Включить атрибуты для окна

Описание

ncurses_wattron ( resource $window , int $attrs ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

attrs


Установить атрибуты для окна

  • « ncurses_wattron
  • ncurses_wborder »
  • PHP Manual
  • Функции Ncurses
  • Установить атрибуты для окна

ncurses_wattrset

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wattrset — Установить атрибуты для окна

Описание

ncurses_wattrset ( resource $window , int $attrs ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

attrs


Рисует границу вокруг окна с помощью символов-атрубитов

  • « ncurses_wattrset
  • ncurses_wclear »
  • PHP Manual
  • Функции Ncurses
  • Рисует границу вокруг окна с помощью символов-атрубитов

ncurses_wborder

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wborder — Рисует границу вокруг окна с помощью символов-атрубитов

Описание

ncurses_wborder ( resource $window , int $left , int $right , int $top , int $bottom , int $tl_corner , int $tr_corner , int $bl_corner , int $br_corner ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Рисует указанные линии и углы вокруг переданного window.

Используйте ncurses_border() для границ вокруг основного окна.

Список параметров

Каждый параметр ожидает 0 для отрисовки линии, и 1, чтобы пропустить это.

window

Окно, в котором мы работаем

left

right

top

bottom

tl_corner

Верхний левый угол

tr_corner

Верхний правый угол

bl_corner

Нижний левый угол

br_corner

Нижний правый угол

Смотрите также

  • ncurses_border() - Нарисовать границу вокруг экрана с помощью атрибутов


Очищает окно

  • « ncurses_wborder
  • ncurses_wcolor_set »
  • PHP Manual
  • Функции Ncurses
  • Очищает окно

ncurses_wclear

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wclear — Очищает окно

Описание

ncurses_wclear ( resource $window ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


Устанавливает цветовые пары окон

  • « ncurses_wclear
  • ncurses_werase »
  • PHP Manual
  • Функции Ncurses
  • Устанавливает цветовые пары окон

ncurses_wcolor_set

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wcolor_set — Устанавливает цветовые пары окон

Описание

ncurses_wcolor_set ( resource $window , int $color_pair ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

color_pair


Стереть содержимое окна

  • « ncurses_wcolor_set
  • ncurses_wgetch »
  • PHP Manual
  • Функции Ncurses
  • Стереть содержимое окна

ncurses_werase

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_werase — Стереть содержимое окна

Описание

ncurses_werase ( resource $window ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


Читает символ с клавиатуры (окна)

  • « ncurses_werase
  • ncurses_whline »
  • PHP Manual
  • Функции Ncurses
  • Читает символ с клавиатуры (окна)

ncurses_wgetch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wgetch — Читает символ с клавиатуры (окна)

Описание

ncurses_wgetch ( resource $window ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


Рисует горизонтальную линию в окне в текущей позиции с использованием атрибута-символа и определенного максимального количества символов

  • « ncurses_wgetch
  • ncurses_wmouse_trafo »
  • PHP Manual
  • Функции Ncurses
  • Рисует горизонтальную линию в окне в текущей позиции с использованием атрибута-символа и определенного максимального количества символов

ncurses_whline

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_whline — Рисует горизонтальную линию в окне в текущей позиции с использованием атрибута-символа и определенного максимального количества символов

Описание

ncurses_whline ( resource $window , int $charattr , int $n ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

charattr

n


Преобразует координаты окна/stdscr

  • « ncurses_whline
  • ncurses_wmove »
  • PHP Manual
  • Функции Ncurses
  • Преобразует координаты окна/stdscr

ncurses_wmouse_trafo

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wmouse_trafo — Преобразует координаты окна/stdscr

Описание

ncurses_wmouse_trafo ( resource $window , int &$y , int &$x , bool $toscreen ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

x

y

toscreen


Перемещает позицию вывода окна

  • « ncurses_wmouse_trafo
  • ncurses_wnoutrefresh »
  • PHP Manual
  • Функции Ncurses
  • Перемещает позицию вывода окна

ncurses_wmove

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wmove — Перемещает позицию вывода окна

Описание

ncurses_wmove ( resource $window , int $y , int $x ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

y

x


Копирует окно на виртуальный экран

  • « ncurses_wmove
  • ncurses_wrefresh »
  • PHP Manual
  • Функции Ncurses
  • Копирует окно на виртуальный экран

ncurses_wnoutrefresh

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wnoutrefresh — Копирует окно на виртуальный экран

Описание

ncurses_wnoutrefresh ( resource $window ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


Обновить окно на экране терминала

  • « ncurses_wnoutrefresh
  • ncurses_wstandend »
  • PHP Manual
  • Функции Ncurses
  • Обновить окно на экране терминала

ncurses_wrefresh

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wrefresh — Обновить окно на экране терминала

Описание

ncurses_wrefresh ( resource $window ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


End standout mode for a window

  • « ncurses_wrefresh
  • ncurses_wstandout »
  • PHP Manual
  • Функции Ncurses
  • End standout mode for a window

ncurses_wstandend

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wstandend — End standout mode for a window

Описание

ncurses_wstandend ( resource $window ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


Enter standout mode for a window

  • « ncurses_wstandend
  • ncurses_wvline »
  • PHP Manual
  • Функции Ncurses
  • Enter standout mode for a window

ncurses_wstandout

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wstandout — Enter standout mode for a window

Описание

ncurses_wstandout ( resource $window ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


Рисует вертикальную линию в окне в текущей позиции с использованием атрибута-символа и определенного максимального количества символов

  • « ncurses_wstandout
  • Newt »
  • PHP Manual
  • Функции Ncurses
  • Рисует вертикальную линию в окне в текущей позиции с использованием атрибута-символа и определенного максимального количества символов

ncurses_wvline

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wvline — Рисует вертикальную линию в окне в текущей позиции с использованием атрибута-символа и определенного максимального количества символов

Описание

ncurses_wvline ( resource $window , int $charattr , int $n ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

charattr

n


Newt

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
    • Причины закрытия формы Newt
    • Набор цветов Newt
    • Флаги аргументов Newt
    • Значение флагов Newt
    • Флаги компонентов Newt
    • Флаги дескриптора файла
    • Флаги дерева чекбоксов
    • Флаги записей
    • Флаги списка
    • Флаги текстовой области
    • Флаги форм
    • Ключи Newt
    • Якори (Anchors) Newt
    • Флаги сетки
  • Примеры
    • Обычное использование
  • Функции Newt
    • newt_bell — Отправить звуковой сигнал в терминал
    • newt_button_bar — Эта функция возвращает сетку, содержащую созданные кнопки
    • newt_button — Создать новую кнопку
    • newt_centered_window — Открыть окно по центру указанного размера
    • 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 — Отбрасывает содержимое буфера ввода терминала, не дожидаясь дополнительного ввода
    • 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 — Отображает текст строки в указанной позиции
    • newt_entry_get_value — Описание
    • newt_entry_set_filter — Описание
    • newt_entry_set_flags — Описание
    • newt_entry_set — Описание
    • newt_entry — Описание
    • newt_finished — Закрывает интерфейс newt
    • newt_form_add_component — Добавляет один компонент в форму
    • newt_form_add_components — Добавьте несколько компонентов в форму
    • newt_form_add_hot_key — Описание
    • newt_form_destroy — Удаляет форму
    • newt_form_get_current — Описание
    • newt_form_run — Выполняет форму
    • 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 — Создать форму
    • newt_get_screen_size — Заполняет переданные ссылки текущим размером терминала
    • 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 — Инициализировать 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 — Открыть окно с указанным размером и позиции
    • newt_pop_help_line — Заменяет текущую строку помощи на строку из стека
    • newt_pop_window — Удаляет верхнее окно с экрана
    • newt_push_help_line — Сохраняет текущую строку помощи в стеке и отображает новую строку
    • newt_radio_get_current — Описание
    • newt_radiobutton — Описание
    • newt_redraw_help_line — Описание
    • newt_reflow_text — Описание
    • newt_refresh — Обновляет измененные части экрана
    • newt_resize_screen — Описание
    • newt_resume — Возобновить использование интерфейса newt после вызова newt_suspend
    • newt_run_form — Выполняет форму
    • newt_scale_set — Описание
    • newt_scale — Описание
    • newt_scrollbar_set — Описание
    • newt_set_help_callback — Описание
    • newt_set_suspend_callback — Установить callback-функцию, которая вызывается при нажатии пользователем клавиши suspend
    • newt_suspend — Возвращает newt в исходное состояние
    • newt_textbox_get_num_lines — Описание
    • newt_textbox_reflowed — Описание
    • newt_textbox_set_height — Описание
    • newt_textbox_set_text — Описание
    • newt_textbox — Описание
    • newt_vertical_scrollbar — Описание
    • newt_wait_for_key — Ничего не возвращать, пока не будет нажата клавиша
    • newt_win_choice — Описание
    • newt_win_entries — Описание
    • newt_win_menu — Описание
    • newt_win_message — Описание
    • newt_win_messagev — Описание
    • newt_win_ternary — Описание


Введение

Этот модуль языка PHP для библиотеки RedHat Newt, основанный на окне терминала и библиотеки виджетов для написания приложений с удобным интерфейсом. После того, как модуль будет включен в PHP, он предоставит использование виджетов Newt, таких как окна, кнопки, чекбоксы, радиокнопки, метки, редактируемые поля, скроллбары, текстовые области и т.д. Использование этого модуля очень похоже на оригинальный API Newt в языке программирования C.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Модуль использует функции библиотеки RedHat Newt. Вам нужна версия libnewt >= 0.51.0.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/newt.

Чтобы использовать эти функции, вам нужно скомпилировать CGI или CLI PHP с поддержкой newt, используя опцию конфигурации --with-newt[=DIR] .

Замечание:

Модуль недоступен для платформы Windows.

Вам могут понадобиться также библиотеки curses и slang для компиляции этого модуля. Чтобы указать местоположения этих библиотек, используйте следующие опции конфигурации: --with-curses-dir=/path/to/libcurses --with-slang-dir=/path/to/libslang


Типы ресурсов

Модуль использует два типа ресурсов: "newt component" и "newt grid".

Тип ресурса "newt component" возвращается функциями, которые создают общие newt виджеты (например, newt_button())

Тип ресурса "newt grid" - это специальный идентификатор ссылки для компонентов, возвращаемый фабричными функциями newt grid (например: newt_create_grid())


Предопределенные константы

Содержание

  • Причины закрытия формы Newt
  • Набор цветов Newt
  • Флаги аргументов Newt
  • Значение флагов Newt
  • Флаги компонентов Newt
  • Флаги дескриптора файла
  • Флаги дерева чекбоксов
  • Флаги записей
  • Флаги списка
  • Флаги текстовой области
  • Флаги форм
  • Ключи Newt
  • Якори (Anchors) Newt
  • Флаги сетки

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.


Причины закрытия формы Newt

Причины закрытия формы Newt
константа | значение
NEWT_EXIT_HOTKEY | горячая клавиша, определенная в newt_form_add_hot_key(), была нажата
NEWT_EXIT_COMPONENT | какой-то компонент привел к закрытию формы
NEWT_EXIT_FDREADY | файловый дескриптор, указанный в newt_form_watch_fd() готов для чтения и записи в него
NEWT_EXIT_TIMER | время, указанное в newt_form_set_timer() истекло


Набор цветов Newt

Набор цветов Newt
константа | значение
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_EMPTYSCALE |
NEWT_COLORSET_FULLSCALE |
NEWT_COLORSET_DISENTRY |
NEWT_COLORSET_COMPACTBUTTON |
NEWT_COLORSET_ACTSELLISTBOX |
NEWT_COLORSET_SELLISTBOX |


  • « Набор цветов Newt
  • Значение флагов Newt »
  • PHP Manual
  • Предопределенные константы
  • Флаги аргументов Newt

Флаги аргументов Newt

Флаги аргументов flags
константа | значение
NEWT_ARG_LAST |
NEWT_ARG_APPEND |


  • « Флаги аргументов Newt
  • Флаги компонентов Newt »
  • PHP Manual
  • Предопределенные константы
  • Значение флагов Newt

Значение флагов Newt

Значение флагов Newt
константа | значение
NEWT_FLAGS_SET |
NEWT_FLAGS_RESET |
NEWT_FLAGS_TOGGLE |


Флаги компонентов Newt

Флаги компонентов Flags
константа | значение
NEWT_FLAG_RETURNEXIT | Закрыть форму при активации компонента
NEWT_FLAG_HIDDEN | Компонент скрыт
NEWT_FLAG_SCROLL | Компонент с прокруткой
NEWT_FLAG_DISABLED | Компонент отключен
NEWT_FLAG_BORDER |
NEWT_FLAG_WRAP | Перенос текста
NEWT_FLAG_NOF12 | Не закрывать форму при нажатии F12
NEWT_FLAG_MULTIPLE |
NEWT_FLAG_SELECTED | Компонент выбран
NEWT_FLAG_CHECKBOX | Компонент - чекбокс
NEWT_FLAG_PASSWORD | Компонент - это поле для ввода пароля
NEWT_FLAG_SHOWCURSOR | Показать курсор


  • « Флаги компонентов Newt
  • Флаги дерева чекбоксов »
  • PHP Manual
  • Предопределенные константы
  • Флаги дескриптора файла

Флаги дескриптора файла

Флаги дескриптора файла
константа | значение
NEWT_FD_READ |
NEWT_FD_WRITE |
NEWT_FD_EXCEPT |


Флаги дерева чекбоксов

Флаги дерева чекбоксов
константа | значение
NEWT_CHECKBOXTREE_UNSELECTABLE |
NEWT_CHECKBOXTREE_HIDE_BOX |
NEWT_CHECKBOXTREE_COLLAPSED |
NEWT_CHECKBOXTREE_EXPANDED |
NEWT_CHECKBOXTREE_UNSELECTED |
NEWT_CHECKBOXTREE_SELECTED |


Флаги записей

Флаги записей
константа | значение
NEWT_ENTRY_SCROLL |
NEWT_ENTRY_HIDDEN |
NEWT_ENTRY_RETURNEXIT |
NEWT_ENTRY_DISABLED |


  • « Флаги записей
  • Флаги текстовой области »
  • PHP Manual
  • Предопределенные константы
  • Флаги списка

Флаги списка

Флаги списка
constant | meaning
NEWT_LISTBOX_RETURNEXIT |


Флаги текстовой области

Флаги текстовой области
константа | значение
NEWT_TEXTBOX_WRAP | Перенос текста в текстовом поле
NEWT_TEXTBOX_SCROLL | Текст прокрутки в текстовой области


  • « Флаги текстовой области
  • Ключи Newt »
  • PHP Manual
  • Предопределенные константы
  • Флаги форм

Флаги форм

Флаги форм
константа | значение
NEWT_FORM_NOF12 | Не закрывать форму при нажатии на F12


Ключи Newt

Ключи Newt
константа | значение
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 |


Якори (Anchors) Newt

Якори (Anchors) Newt
константа | значение
NEWT_ANCHOR_LEFT |
NEWT_ANCHOR_RIGHT |
NEWT_ANCHOR_TOP |
NEWT_ANCHOR_BOTTOM |


Флаги сетки

Флаги сетки
константа | значение
NEWT_GRID_FLAG_GROWX |
NEWT_GRID_FLAG_GROWY |
NEWT_GRID_EMPTY |
NEWT_GRID_COMPONENT |
NEWT_GRID_SUBGRID |


  • « Флаги сетки
  • Обычное использование »
  • PHP Manual
  • Newt
  • Примеры

Примеры

Содержание

  • Обычное использование


Обычное использование

Этот пример представляет собой диалог утилиты RedHat 'setup' на PHP, выполняемый в текстовом режиме.

Пример #1 Пример использования Newt

<?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

Содержание

  • newt_bell — Отправить звуковой сигнал в терминал
  • newt_button_bar — Эта функция возвращает сетку, содержащую созданные кнопки
  • newt_button — Создать новую кнопку
  • newt_centered_window — Открыть окно по центру указанного размера
  • 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 — Отбрасывает содержимое буфера ввода терминала, не дожидаясь дополнительного ввода
  • 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 — Отображает текст строки в указанной позиции
  • newt_entry_get_value — Описание
  • newt_entry_set_filter — Описание
  • newt_entry_set_flags — Описание
  • newt_entry_set — Описание
  • newt_entry — Описание
  • newt_finished — Закрывает интерфейс newt
  • newt_form_add_component — Добавляет один компонент в форму
  • newt_form_add_components — Добавьте несколько компонентов в форму
  • newt_form_add_hot_key — Описание
  • newt_form_destroy — Удаляет форму
  • newt_form_get_current — Описание
  • newt_form_run — Выполняет форму
  • 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 — Создать форму
  • newt_get_screen_size — Заполняет переданные ссылки текущим размером терминала
  • 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 — Инициализировать 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 — Открыть окно с указанным размером и позиции
  • newt_pop_help_line — Заменяет текущую строку помощи на строку из стека
  • newt_pop_window — Удаляет верхнее окно с экрана
  • newt_push_help_line — Сохраняет текущую строку помощи в стеке и отображает новую строку
  • newt_radio_get_current — Описание
  • newt_radiobutton — Описание
  • newt_redraw_help_line — Описание
  • newt_reflow_text — Описание
  • newt_refresh — Обновляет измененные части экрана
  • newt_resize_screen — Описание
  • newt_resume — Возобновить использование интерфейса newt после вызова newt_suspend
  • newt_run_form — Выполняет форму
  • newt_scale_set — Описание
  • newt_scale — Описание
  • newt_scrollbar_set — Описание
  • newt_set_help_callback — Описание
  • newt_set_suspend_callback — Установить callback-функцию, которая вызывается при нажатии пользователем клавиши suspend
  • newt_suspend — Возвращает newt в исходное состояние
  • newt_textbox_get_num_lines — Описание
  • newt_textbox_reflowed — Описание
  • newt_textbox_set_height — Описание
  • newt_textbox_set_text — Описание
  • newt_textbox — Описание
  • newt_vertical_scrollbar — Описание
  • newt_wait_for_key — Ничего не возвращать, пока не будет нажата клавиша
  • newt_win_choice — Описание
  • newt_win_entries — Описание
  • newt_win_menu — Описание
  • newt_win_message — Описание
  • newt_win_messagev — Описание
  • newt_win_ternary — Описание


Отправить звуковой сигнал в терминал

  • « Функции Newt
  • newt_button_bar »
  • PHP Manual
  • Функции Newt
  • Отправить звуковой сигнал в терминал

newt_bell

(PECL newt >= 0.1)

newt_bell — Отправить звуковой сигнал в терминал

Описание

newt_bell ( void ) : void

Эта функция отправляет звуковой сигнал в терминал.

Замечание:

В зависимости от настроек терминала, этот гудок может быть слышимым или нет.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Эта функция возвращает сетку, содержащую созданные кнопки

  • « newt_bell
  • newt_button »
  • PHP Manual
  • Функции Newt
  • Эта функция возвращает сетку, содержащую созданные кнопки

newt_button_bar

(PECL newt >= 0.1)

newt_button_bar — Эта функция возвращает сетку, содержащую созданные кнопки

Описание

newt_button_bar ( array &$buttons ) : resource

Эта функция возвращает сетку, содержащую созданные кнопки.

Список параметров

buttons

Возвращаемые значения

Возращает сетку, содержащую созданные кнопки.


Создать новую кнопку

  • « newt_button_bar
  • newt_centered_window »
  • PHP Manual
  • Функции Newt
  • Создать новую кнопку

newt_button

(PECL newt >= 0.1)

newt_button — Создать новую кнопку

Описание

newt_button ( int $left , int $top , string $text ) : resource

Создает новую кнопку.

Список параметров

left

Координата кнопки относительно оси X.

top

Координата кнопки относительно оси Y.

text

Текст, который должен отображаться внутри кнопки.

Возвращаемые значения

Возвращает ссылку на ресурс созданной кнопки или FALSE в случае ошибки.

Примеры

Пример #1 Пример выполнения newt_button()

<?php

$form = newt_form();

$ok_button = newt_button(5, 12, "Run Tool");

newt_form_add_component($form, $ok_button);

?>

Смотрите также

  • newt_button_bar() - Эта функция возвращает сетку, содержащую созданные кнопки


Открыть окно по центру указанного размера

  • « newt_button
  • newt_checkbox_get_value »
  • PHP Manual
  • Функции Newt
  • Открыть окно по центру указанного размера

newt_centered_window

(PECL newt >= 0.1)

newt_centered_window — Открыть окно по центру указанного размера

Описание

newt_centered_window ( int $width , int $height [, string $title ] ) : int

Открыть окно по центру с указанным размером.

Список параметров

width

Ширина окна

height

Высота окна

title

Заголовок окна

Возвращаемые значения

Неопределенное значение.

Смотрите также

  • newt_pop_window() - Удаляет верхнее окно с экрана
  • newt_open_window() - Открыть окно с указанным размером и позиции


Получает значение ресурса чекбокса

  • « newt_centered_window
  • newt_checkbox_set_flags »
  • PHP Manual
  • Функции Newt
  • Получает значение ресурса чекбокса

newt_checkbox_get_value

(PECL newt >= 0.1)

newt_checkbox_get_value — Получает значение ресурса чекбокса

Описание

newt_checkbox_get_value ( resource $checkbox ) : string

Функция возвращает символ в последовательности, которая указывает на текущее значение чекбокса.

Список параметров

checkbox

Возвращаемые значения

Возвращает символ, указывающий на значение чекбокса.


Настраивает ресурс чекбокса

  • « newt_checkbox_get_value
  • newt_checkbox_set_value »
  • PHP Manual
  • Функции Newt
  • Настраивает ресурс чекбокса

newt_checkbox_set_flags

(PECL newt >= 0.1)

newt_checkbox_set_flags — Настраивает ресурс чекбокса

Описание

newt_checkbox_set_flags ( resource $checkbox , int $flags , int $sense ) : void

Функция позволяет устанавливать различные флаги на ресурсе чекбокса.

Список параметров

checkbox

flags

sense

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает значение чекбокса

  • « newt_checkbox_set_flags
  • newt_checkbox_tree_add_item »
  • PHP Manual
  • Функции Newt
  • Устанавливает значение чекбокса

newt_checkbox_set_value

(PECL newt >= 0.1)

newt_checkbox_set_value — Устанавливает значение чекбокса

Описание

newt_checkbox_set_value ( resource $checkbox , string $value ) : void

Функция позволяет установить текущее значение ресурса чекбокса.

Список параметров

checkbox

value

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Добавляет новый элемент в дерево чекбоксов

  • « newt_checkbox_set_value
  • newt_checkbox_tree_find_item »
  • PHP Manual
  • Функции Newt
  • Добавляет новый элемент в дерево чекбоксов

newt_checkbox_tree_add_item

(PECL newt >= 0.1)

newt_checkbox_tree_add_item — Добавляет новый элемент в дерево чекбоксов

Описание

newt_checkbox_tree_add_item ( resource $checkboxtree , string $text , mixed $data , int $flags , int $index [, int $... ] ) : void

Функция позволяет добавить новый элемент в дерево чекбоксов.

Список параметров

checkboxtree

text

data

flags

index

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Поиск элемента в дереве чекбоксов

  • « newt_checkbox_tree_add_item
  • newt_checkbox_tree_get_current »
  • PHP Manual
  • Функции Newt
  • Поиск элемента в дереве чекбоксов

newt_checkbox_tree_find_item

(PECL newt >= 0.1)

newt_checkbox_tree_find_item — Поиск элемента в дереве чекбоксов

Описание

newt_checkbox_tree_find_item ( resource $checkboxtree , mixed $data ) : array

Находит элемент в дереве чекбоксов по данным элемента.

Список параметров

checkboxtree

data

Возвращаемые значения

Возвращает ресурс элемента дерева чекбоксов, либо NULL, если он не был найден.


Возвращает выбранный элемент дерева чекбоксов

  • « newt_checkbox_tree_find_item
  • newt_checkbox_tree_get_entry_value »
  • PHP Manual
  • Функции Newt
  • Возвращает выбранный элемент дерева чекбоксов

newt_checkbox_tree_get_current

(PECL newt >= 0.1)

newt_checkbox_tree_get_current — Возвращает выбранный элемент дерева чекбоксов

Описание

newt_checkbox_tree_get_current ( resource $checkboxtree ) : mixed

Метод возвращает дерево чекбоксов выбранного элемента.

Список параметров

checkboxtree

Возвращаемые значения

Возвращает текущий (выбранный) элемент дерева чекбоксов.


Описание

  • « newt_checkbox_tree_get_current
  • newt_checkbox_tree_get_multi_selection »
  • PHP Manual
  • Функции Newt
  • Описание

newt_checkbox_tree_get_entry_value

(PECL newt >= 0.1)

newt_checkbox_tree_get_entry_value —

Описание

newt_checkbox_tree_get_entry_value ( resource $checkboxtree , mixed $data ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

data

Возвращаемые значения


Описание

  • « newt_checkbox_tree_get_entry_value
  • newt_checkbox_tree_get_selection »
  • PHP Manual
  • Функции Newt
  • Описание

newt_checkbox_tree_get_multi_selection

(PECL newt >= 0.1)

newt_checkbox_tree_get_multi_selection —

Описание

newt_checkbox_tree_get_multi_selection ( resource $checkboxtree , string $seqnum ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

seqnum

Возвращаемые значения


Описание

  • « newt_checkbox_tree_get_multi_selection
  • newt_checkbox_tree_multi »
  • PHP Manual
  • Функции Newt
  • Описание

newt_checkbox_tree_get_selection

(PECL newt >= 0.1)

newt_checkbox_tree_get_selection —

Описание

newt_checkbox_tree_get_selection ( resource $checkboxtree ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

Возвращаемые значения


Описание

  • « newt_checkbox_tree_get_selection
  • newt_checkbox_tree_set_current »
  • PHP Manual
  • Функции Newt
  • Описание

newt_checkbox_tree_multi

(PECL newt >= 0.1)

newt_checkbox_tree_multi —

Описание

newt_checkbox_tree_multi ( int $left , int $top , int $height , string $seq [, int $flags ] ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

height

seq

flags

Возвращаемые значения


Описание

  • « newt_checkbox_tree_multi
  • newt_checkbox_tree_set_entry_value »
  • PHP Manual
  • Функции Newt
  • Описание

newt_checkbox_tree_set_current

(PECL newt >= 0.1)

newt_checkbox_tree_set_current —

Описание

newt_checkbox_tree_set_current ( resource $checkboxtree , mixed $data ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

data

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_checkbox_tree_set_current
  • newt_checkbox_tree_set_entry »
  • PHP Manual
  • Функции Newt
  • Описание

newt_checkbox_tree_set_entry_value

(PECL newt >= 0.1)

newt_checkbox_tree_set_entry_value —

Описание

newt_checkbox_tree_set_entry_value ( resource $checkboxtree , mixed $data , string $value ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

data

value

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_checkbox_tree_set_entry_value
  • newt_checkbox_tree_set_width »
  • PHP Manual
  • Функции Newt
  • Описание

newt_checkbox_tree_set_entry

(PECL newt >= 0.1)

newt_checkbox_tree_set_entry —

Описание

newt_checkbox_tree_set_entry ( resource $checkboxtree , mixed $data , string $text ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

data

text

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_checkbox_tree_set_entry
  • newt_checkbox_tree »
  • PHP Manual
  • Функции Newt
  • Описание

newt_checkbox_tree_set_width

(PECL newt >= 0.1)

newt_checkbox_tree_set_width —

Описание

newt_checkbox_tree_set_width ( resource $checkbox_tree , int $width ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkbox_tree

width

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_checkbox_tree_set_width
  • newt_checkbox »
  • PHP Manual
  • Функции Newt
  • Описание

newt_checkbox_tree

(PECL newt >= 0.1)

newt_checkbox_tree —

Описание

newt_checkbox_tree ( int $left , int $top , int $height [, int $flags ] ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

height

flags

Возвращаемые значения


Описание

  • « newt_checkbox_tree
  • newt_clear_key_buffer »
  • PHP Manual
  • Функции Newt
  • Описание

newt_checkbox

(PECL newt >= 0.1)

newt_checkbox —

Описание

newt_checkbox ( int $left , int $top , string $text , string $def_value [, string $seq ] ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

text

def_value

seq

Возвращаемые значения


Отбрасывает содержимое буфера ввода терминала, не дожидаясь дополнительного ввода

  • « newt_checkbox
  • newt_cls »
  • PHP Manual
  • Функции Newt
  • Отбрасывает содержимое буфера ввода терминала, не дожидаясь дополнительного ввода

newt_clear_key_buffer

(PECL newt >= 0.1)

newt_clear_key_buffer — Отбрасывает содержимое буфера ввода терминала, не дожидаясь дополнительного ввода

Описание

newt_clear_key_buffer ( void ) : void

Отбрасывает содержимое входного буфера терминала, не дожидаясь дополнительного ввода.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_wait_for_key() - Ничего не возвращать, пока не будет нажата клавиша


Описание

  • « newt_clear_key_buffer
  • newt_compact_button »
  • PHP Manual
  • Функции Newt
  • Описание

newt_cls

(PECL newt >= 0.1)

newt_cls —

Описание

newt_cls ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_cls
  • newt_component_add_callback »
  • PHP Manual
  • Функции Newt
  • Описание

newt_compact_button

(PECL newt >= 0.1)

newt_compact_button —

Описание

newt_compact_button ( int $left , int $top , string $text ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

text

Возвращаемые значения


Описание

  • « newt_compact_button
  • newt_component_takes_focus »
  • PHP Manual
  • Функции Newt
  • Описание

newt_component_add_callback

(PECL newt >= 0.1)

newt_component_add_callback —

Описание

newt_component_add_callback ( resource $component , mixed $func_name , mixed $data ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

component

func_name

data

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_component_add_callback
  • newt_create_grid »
  • PHP Manual
  • Функции Newt
  • Описание

newt_component_takes_focus

(PECL newt >= 0.1)

newt_component_takes_focus —

Описание

newt_component_takes_focus ( resource $component , bool $takes_focus ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

component

takes_focus

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_component_takes_focus
  • newt_cursor_off »
  • PHP Manual
  • Функции Newt
  • Описание

newt_create_grid

(PECL newt >= 0.1)

newt_create_grid —

Описание

newt_create_grid ( int $cols , int $rows ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

cols

rows

Возвращаемые значения


Описание

  • « newt_create_grid
  • newt_cursor_on »
  • PHP Manual
  • Функции Newt
  • Описание

newt_cursor_off

(PECL newt >= 0.1)

newt_cursor_off —

Описание

newt_cursor_off ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_cursor_off
  • newt_delay »
  • PHP Manual
  • Функции Newt
  • Описание

newt_cursor_on

(PECL newt >= 0.1)

newt_cursor_on —

Описание

newt_cursor_on ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_cursor_on
  • newt_draw_form »
  • PHP Manual
  • Функции Newt
  • Описание

newt_delay

(PECL newt >= 0.1)

newt_delay —

Описание

newt_delay ( int $microseconds ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

microseconds

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_delay
  • newt_draw_root_text »
  • PHP Manual
  • Функции Newt
  • Описание

newt_draw_form

(PECL newt >= 0.1)

newt_draw_form —

Описание

newt_draw_form ( resource $form ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Отображает текст строки в указанной позиции

  • « newt_draw_form
  • newt_entry_get_value »
  • PHP Manual
  • Функции Newt
  • Отображает текст строки в указанной позиции

newt_draw_root_text

(PECL newt >= 0.1)

newt_draw_root_text — Отображает текст строки в указанной позиции

Описание

newt_draw_root_text ( int $left , int $top , string $text ) : void

Отображает текст строки в указанной позиции.

Список параметров

left

Номер столбца

Замечание:

Если параметр left отрицательный, то позиция измеряется с противоположной стороны экрана.

top

Номер строки

Замечание:

Если параметр top отрицательный, то позиция измеряется с противоположной стороны экрана.

text

Текст для отображения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования newt_draw_root_text()

Этот код демонстрирует отрисовку заголовков в обоих углах экрана.

<?php
 newt_init();
 newt_cls();

 newt_draw_root_text (2, 0, "Некоторый корневой текст");
 newt_refresh();
 sleep(1);

 newt_draw_root_text (-30, 0, "Корневой текст в другом углу");
 newt_refresh();
 sleep(1);

 newt_finished();
?>

Смотрите также

  • newt_push_help_line() - Сохраняет текущую строку помощи в стеке и отображает новую строку
  • newt_pop_help_line() - Заменяет текущую строку помощи на строку из стека


Описание

  • « newt_draw_root_text
  • newt_entry_set_filter »
  • PHP Manual
  • Функции Newt
  • Описание

newt_entry_get_value

(PECL newt >= 0.1)

newt_entry_get_value —

Описание

newt_entry_get_value ( resource $entry ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

entry

Возвращаемые значения


Описание

  • « newt_entry_get_value
  • newt_entry_set_flags »
  • PHP Manual
  • Функции Newt
  • Описание

newt_entry_set_filter

(PECL newt >= 0.1)

newt_entry_set_filter —

Описание

newt_entry_set_filter ( resource $entry , callable $filter , mixed $data ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

entry

filter

data

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_entry_set_filter
  • newt_entry_set »
  • PHP Manual
  • Функции Newt
  • Описание

newt_entry_set_flags

(PECL newt >= 0.1)

newt_entry_set_flags —

Описание

newt_entry_set_flags ( resource $entry , int $flags , int $sense ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

entry

flags

sense

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_entry_set_flags
  • newt_entry »
  • PHP Manual
  • Функции Newt
  • Описание

newt_entry_set

(PECL newt >= 0.1)

newt_entry_set —

Описание

newt_entry_set ( resource $entry , string $value [, bool $cursor_at_end ] ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

entry

value

cursor_at_end

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_entry_set
  • newt_finished »
  • PHP Manual
  • Функции Newt
  • Описание

newt_entry

(PECL newt >= 0.1)

newt_entry —

Описание

newt_entry ( int $left , int $top , int $width [, string $init_value [, int $flags ]] ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

width

init_value

flags

Возвращаемые значения


Закрывает интерфейс newt

  • « newt_entry
  • newt_form_add_component »
  • PHP Manual
  • Функции Newt
  • Закрывает интерфейс newt

newt_finished

(PECL newt >= 0.1)

newt_finished — Закрывает интерфейс newt

Описание

newt_finished ( void ) : int

Закрывает интерфейс newt. Функция вызывается, когда программа готова для завершения.

Возвращаемые значения

Возвращает 1 в случае успешного выполнения или 0 в случае возникновения ошибки.

Смотрите также

  • newt_init() - Инициализировать newt


Добавляет один компонент в форму

  • « newt_finished
  • newt_form_add_components »
  • PHP Manual
  • Функции Newt
  • Добавляет один компонент в форму

newt_form_add_component

(PECL newt >= 0.1)

newt_form_add_component — Добавляет один компонент в форму

Описание

newt_form_add_component ( resource $form , resource $component ) : void

Добавляет один компонент в form.

Список параметров

form

Форма, в которую будет добавлен компонент

component

Компонент для добавления в форму

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования newt_form_add_component()

<?php
$form = newt_form();

$options = array("Настройка аутентификации", "Настройка брандмауэра",
"Настройка мыши", "Настройка сети", "Настройка принтера",
"Системные сервисы");

$list = newt_listbox(3, 2, 10);

foreach ($options as $l_item) {
    newt_listbox_add_entry($list, $l_item, $l_item);
}

newt_form_add_component($form, $list);
?>

Смотрите также

  • newt_form_add_components() - Добавьте несколько компонентов в форму


Добавьте несколько компонентов в форму

  • « newt_form_add_component
  • newt_form_add_hot_key »
  • PHP Manual
  • Функции Newt
  • Добавьте несколько компонентов в форму

newt_form_add_components

(PECL newt >= 0.1)

newt_form_add_components — Добавьте несколько компонентов в форму

Описание

newt_form_add_components ( resource $form , array $components ) : void

Добавьте несколько компонентов в form.

Список параметров

form

Форма, в которую будут добавлены компоненты

components

Массив компонентов для добавления в форму

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования newt_form_add_components()

<?php
$form = newt_form();

$b1 = newt_button(5, 12, "Запустить Инструмент");
$b2 = newt_button(21, 12, "Выход");

newt_form_add_components($form, array($b1, $b2));
?>

Смотрите также

  • newt_form_add_component() - Добавляет один компонент в форму


Описание

  • « newt_form_add_components
  • newt_form_destroy »
  • PHP Manual
  • Функции Newt
  • Описание

newt_form_add_hot_key

(PECL newt >= 0.1)

newt_form_add_hot_key —

Описание

newt_form_add_hot_key ( resource $form , int $key ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

key

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Удаляет форму

  • « newt_form_add_hot_key
  • newt_form_get_current »
  • PHP Manual
  • Функции Newt
  • Удаляет форму

newt_form_destroy

(PECL newt >= 0.1)

newt_form_destroy — Удаляет форму

Описание

newt_form_destroy ( resource $form ) : void

Функция освобождает ресурсы памяти, используемые формой, и все компоненты, добавленные в форму (включая компоненты, находящиеся в подформах). После уничтожения формы ни один из ее компонентов не может быть использован.

Список параметров

form

Компонент формы, который будет удален

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_form_run() - Выполняет форму
  • newt_run_form() - Выполняет форму


Описание

  • « newt_form_destroy
  • newt_form_run »
  • PHP Manual
  • Функции Newt
  • Описание

newt_form_get_current

(PECL newt >= 0.1)

newt_form_get_current —

Описание

newt_form_get_current ( resource $form ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

Возвращаемые значения


Выполняет форму

  • « newt_form_get_current
  • newt_form_set_background »
  • PHP Manual
  • Функции Newt
  • Выполняет форму

newt_form_run

(PECL newt >= 0.1)

newt_form_run — Выполняет форму

Описание

newt_form_run ( resource $form , array &$exit_struct ) : void

Функция выполняет переданную ей форму.

Список параметров

form

Компонент формы

exit_struct

Массив, используемый для возврата информации после запуска компонента формы. Ключи и значения описаны в следующей таблице:

Структура закрытия формы
Ключ индекса | Тип значения | Описание
reason | integer | Причина, по которой форма была закрыта. Возможные значения определены здесь.
watch | resource | Ссылка на ресурс, указанная в функции newt_form_watch_fd()
key | integer | Горячая клавиша
component | resource | Компонент, вызвавший закрытие формы

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_run_form() - Выполняет форму


Описание

  • « newt_form_run
  • newt_form_set_height »
  • PHP Manual
  • Функции Newt
  • Описание

newt_form_set_background

(PECL newt >= 0.1)

newt_form_set_background —

Описание

newt_form_set_background ( resource $from , int $background ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

from

background

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_form_set_background
  • newt_form_set_size »
  • PHP Manual
  • Функции Newt
  • Описание

newt_form_set_height

(PECL newt >= 0.1)

newt_form_set_height —

Описание

newt_form_set_height ( resource $form , int $height ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

height

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_form_set_height
  • newt_form_set_timer »
  • PHP Manual
  • Функции Newt
  • Описание

newt_form_set_size

(PECL newt >= 0.1)

newt_form_set_size —

Описание

newt_form_set_size ( resource $form ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_form_set_size
  • newt_form_set_width »
  • PHP Manual
  • Функции Newt
  • Описание

newt_form_set_timer

(PECL newt >= 0.1)

newt_form_set_timer —

Описание

newt_form_set_timer ( resource $form , int $milliseconds ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

milliseconds

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_form_set_timer
  • newt_form_watch_fd »
  • PHP Manual
  • Функции Newt
  • Описание

newt_form_set_width

(PECL newt >= 0.1)

newt_form_set_width —

Описание

newt_form_set_width ( resource $form , int $width ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

width

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_form_set_width
  • newt_form »
  • PHP Manual
  • Функции Newt
  • Описание

newt_form_watch_fd

(PECL newt >= 0.1)

newt_form_watch_fd —

Описание

newt_form_watch_fd ( resource $form , resource $stream [, int $flags ] ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

stream

flags

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Создать форму

  • « newt_form_watch_fd
  • newt_get_screen_size »
  • PHP Manual
  • Функции Newt
  • Создать форму

newt_form

(PECL newt >= 0.1)

newt_form — Создать форму

Описание

newt_form ([ resource $vert_bar [, string $help [, int $flags ]]] ) : resource

Создать новую форму.

Список параметров

vert_bar

Вертикальная полоса прокрутки, которая должна быть связана с формой

help

Текстовая строка помощи

flags

Различные флаги

Возвращаемые значения

Возвращает ссылку на ресурс для созданного компонента формы или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования newt_form()

Отображает одну кнопку "Выход", которая закрывает приложение после нажатия.

<?php
newt_init();
newt_cls();

$myform = newt_form();
$button = newt_button (5, 12, "Выход");

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
  • newt_grid_add_components_to_form »
  • PHP Manual
  • Функции Newt
  • Заполняет переданные ссылки текущим размером терминала

newt_get_screen_size

(PECL newt >= 0.1)

newt_get_screen_size — Заполняет переданные ссылки текущим размером терминала

Описание

newt_get_screen_size ( int &$cols , int &$rows ) : void

Заполняет переданные ссылки текущим размером терминала.

Список параметров

cols

Количество столбцов в терминале

rows

Количество строк в терминале

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования newt_get_screen_size()

Этот код печатает размер экрана вашего терминала.

<?php
 newt_init();
 newt_get_screen_size (&$cols, &$rows);
 newt_finished();

 print "Размер вашего терминала: {$cols}x{$rows}\n";
?>

Результат выполнения данного примера:

Размер вашего терминала: 138x47


Описание

  • « newt_get_screen_size
  • newt_grid_basic_window »
  • PHP Manual
  • Функции Newt
  • Описание

newt_grid_add_components_to_form

(PECL newt >= 0.1)

newt_grid_add_components_to_form —

Описание

newt_grid_add_components_to_form ( resource $grid , resource $form , bool $recurse ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

form

recurse

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_grid_add_components_to_form
  • newt_grid_free »
  • PHP Manual
  • Функции Newt
  • Описание

newt_grid_basic_window

(PECL newt >= 0.1)

newt_grid_basic_window —

Описание

newt_grid_basic_window ( resource $text , resource $middle , resource $buttons ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

text

middle

buttons

Возвращаемые значения


Описание

  • « newt_grid_basic_window
  • newt_grid_get_size »
  • PHP Manual
  • Функции Newt
  • Описание

newt_grid_free

(PECL newt >= 0.1)

newt_grid_free —

Описание

newt_grid_free ( resource $grid , bool $recurse ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

recurse

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_grid_free
  • newt_grid_h_close_stacked »
  • PHP Manual
  • Функции Newt
  • Описание

newt_grid_get_size

(PECL newt >= 0.1)

newt_grid_get_size —

Описание

newt_grid_get_size ( resouce $grid , int &$width , int &$height ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

width

height

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_grid_get_size
  • newt_grid_h_stacked »
  • PHP Manual
  • Функции Newt
  • Описание

newt_grid_h_close_stacked

(PECL newt >= 0.1)

newt_grid_h_close_stacked —

Описание

newt_grid_h_close_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

element1_type

element1

Возвращаемые значения


Описание

  • « newt_grid_h_close_stacked
  • newt_grid_place »
  • PHP Manual
  • Функции Newt
  • Описание

newt_grid_h_stacked

(PECL newt >= 0.1)

newt_grid_h_stacked —

Описание

newt_grid_h_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

element1_type

element1

Возвращаемые значения


Описание

  • « newt_grid_h_stacked
  • newt_grid_set_field »
  • PHP Manual
  • Функции Newt
  • Описание

newt_grid_place

(PECL newt >= 0.1)

newt_grid_place —

Описание

newt_grid_place ( resource $grid , int $left , int $top ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

left

top

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_grid_place
  • newt_grid_simple_window »
  • PHP Manual
  • Функции Newt
  • Описание

newt_grid_set_field

(PECL newt >= 0.1)

newt_grid_set_field —

Описание

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 ] ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

col

row

type

val

pad_left

pad_top

pad_right

pad_bottom

anchor

flags

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_grid_set_field
  • newt_grid_v_close_stacked »
  • PHP Manual
  • Функции Newt
  • Описание

newt_grid_simple_window

(PECL newt >= 0.1)

newt_grid_simple_window —

Описание

newt_grid_simple_window ( resource $text , resource $middle , resource $buttons ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

text

middle

buttons

Возвращаемые значения


Описание

  • « newt_grid_simple_window
  • newt_grid_v_stacked »
  • PHP Manual
  • Функции Newt
  • Описание

newt_grid_v_close_stacked

(PECL newt >= 0.1)

newt_grid_v_close_stacked —

Описание

newt_grid_v_close_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

element1_type

element1

Возвращаемые значения


Описание

  • « newt_grid_v_close_stacked
  • newt_grid_wrapped_window_at »
  • PHP Manual
  • Функции Newt
  • Описание

newt_grid_v_stacked

(PECL newt >= 0.1)

newt_grid_v_stacked —

Описание

newt_grid_v_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

element1_type

element1

Возвращаемые значения


Описание

  • « newt_grid_v_stacked
  • newt_grid_wrapped_window »
  • PHP Manual
  • Функции Newt
  • Описание

newt_grid_wrapped_window_at

(PECL newt >= 0.1)

newt_grid_wrapped_window_at —

Описание

newt_grid_wrapped_window_at ( resource $grid , string $title , int $left , int $top ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

title

left

top

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_grid_wrapped_window_at
  • newt_init »
  • PHP Manual
  • Функции Newt
  • Описание

newt_grid_wrapped_window

(PECL newt >= 0.1)

newt_grid_wrapped_window —

Описание

newt_grid_wrapped_window ( resource $grid , string $title ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

title

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Инициализировать newt

  • « newt_grid_wrapped_window
  • newt_label_set_text »
  • PHP Manual
  • Функции Newt
  • Инициализировать newt

newt_init

(PECL newt >= 0.1)

newt_init — Инициализировать newt

Описание

newt_init ( void ) : int

Инициализирует интерфейс newt. Функция должна быть вызвана до любой другой функции newt.

Возвращаемые значения

Возвращает 1 в случае успешного выполнения или 0 в случае возникновения ошибки.

Смотрите также

  • newt_finished() - Закрывает интерфейс newt


Описание

  • « newt_init
  • newt_label »
  • PHP Manual
  • Функции Newt
  • Описание

newt_label_set_text

(PECL newt >= 0.1)

newt_label_set_text —

Описание

newt_label_set_text ( resource $label , string $text ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

label

text

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_label_set_text
  • newt_listbox_append_entry »
  • PHP Manual
  • Функции Newt
  • Описание

newt_label

(PECL newt >= 0.1)

newt_label —

Описание

newt_label ( int $left , int $top , string $text ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

text

Возвращаемые значения


Описание

  • « newt_label
  • newt_listbox_clear_selection »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listbox_append_entry

(PECL newt >= 0.1)

newt_listbox_append_entry —

Описание

newt_listbox_append_entry ( resource $listbox , string $text , mixed $data ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

text

data

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_append_entry
  • newt_listbox_clear »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listbox_clear_selection

(PECL newt >= 0.1)

newt_listbox_clear_selection —

Описание

newt_listbox_clear_selection ( resource $listbox ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_clear_selection
  • newt_listbox_delete_entry »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listbox_clear

(PECL newt >= 0.1)

newt_listbox_clear —

Описание

newt_listbox_clear ( resource $listobx ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listobx

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_clear
  • newt_listbox_get_current »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listbox_delete_entry

(PECL newt >= 0.1)

newt_listbox_delete_entry —

Описание

newt_listbox_delete_entry ( resource $listbox , mixed $key ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

key

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_delete_entry
  • newt_listbox_get_selection »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listbox_get_current

(PECL newt >= 0.1)

newt_listbox_get_current —

Описание

newt_listbox_get_current ( resource $listbox ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Возвращаемые значения


Описание

  • « newt_listbox_get_current
  • newt_listbox_insert_entry »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listbox_get_selection

(PECL newt >= 0.1)

newt_listbox_get_selection —

Описание

newt_listbox_get_selection ( resource $listbox ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Возвращаемые значения


Описание

  • « newt_listbox_get_selection
  • newt_listbox_item_count »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listbox_insert_entry

(PECL newt >= 0.1)

newt_listbox_insert_entry —

Описание

newt_listbox_insert_entry ( resource $listbox , string $text , mixed $data , mixed $key ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

text

data

key

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_insert_entry
  • newt_listbox_select_item »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listbox_item_count

(PECL newt >= 0.1)

newt_listbox_item_count —

Описание

newt_listbox_item_count ( resource $listbox ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Возвращаемые значения


Описание

  • « newt_listbox_item_count
  • newt_listbox_set_current_by_key »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listbox_select_item

(PECL newt >= 0.1)

newt_listbox_select_item —

Описание

newt_listbox_select_item ( resource $listbox , mixed $key , int $sense ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

key

sense

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_select_item
  • newt_listbox_set_current »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listbox_set_current_by_key

(PECL newt >= 0.1)

newt_listbox_set_current_by_key —

Описание

newt_listbox_set_current_by_key ( resource $listbox , mixed $key ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

key

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_set_current_by_key
  • newt_listbox_set_data »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listbox_set_current

(PECL newt >= 0.1)

newt_listbox_set_current —

Описание

newt_listbox_set_current ( resource $listbox , int $num ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

num

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_set_current
  • newt_listbox_set_entry »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listbox_set_data

(PECL newt >= 0.1)

newt_listbox_set_data —

Описание

newt_listbox_set_data ( resource $listbox , int $num , mixed $data ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

num

data

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_set_data
  • newt_listbox_set_width »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listbox_set_entry

(PECL newt >= 0.1)

newt_listbox_set_entry —

Описание

newt_listbox_set_entry ( resource $listbox , int $num , string $text ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

num

text

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_set_entry
  • newt_listbox »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listbox_set_width

(PECL newt >= 0.1)

newt_listbox_set_width —

Описание

newt_listbox_set_width ( resource $listbox , int $width ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

width

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_set_width
  • newt_listitem_get_data »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listbox

(PECL newt >= 0.1)

newt_listbox —

Описание

newt_listbox ( int $left , int $top , int $height [, int $flags ] ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

height

flags

Возвращаемые значения


Описание

  • « newt_listbox
  • newt_listitem_set »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listitem_get_data

(PECL newt >= 0.1)

newt_listitem_get_data —

Описание

newt_listitem_get_data ( resource $item ) : mixed
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

item

Возвращаемые значения


Описание

  • « newt_listitem_get_data
  • newt_listitem »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listitem_set

(PECL newt >= 0.1)

newt_listitem_set —

Описание

newt_listitem_set ( resource $item , string $text ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

item

text

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listitem_set
  • newt_open_window »
  • PHP Manual
  • Функции Newt
  • Описание

newt_listitem

(PECL newt >= 0.1)

newt_listitem —

Описание

newt_listitem ( int $left , int $top , string $text , bool $is_default , resouce $prev_item , mixed $data [, int $flags ] ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

text

is_default

prev_item

data

flags

Возвращаемые значения


Открыть окно с указанным размером и позиции

  • « newt_listitem
  • newt_pop_help_line »
  • PHP Manual
  • Функции Newt
  • Открыть окно с указанным размером и позиции

newt_open_window

(PECL newt >= 0.1)

newt_open_window — Открыть окно с указанным размером и позиции

Описание

newt_open_window ( int $left , int $top , int $width , int $height [, string $title ] ) : int

Открыть окно указанного размера и позиции.

Список параметров

left

Расположение верхнего левого угла окна (номер столбца)

top

Расположение верхнего левого угла окна (номер строки)

width

Ширина окна

height

Высота окна

title

Заголовок окна

Возвращаемые значения

Возвращает 1 в случае успешного выполнения или 0 в случае возникновения ошибки.

Смотрите также

  • newt_pop_window() - Удаляет верхнее окно с экрана
  • newt_centered_window() - Открыть окно по центру указанного размера


Заменяет текущую строку помощи на строку из стека

  • « newt_open_window
  • newt_pop_window »
  • PHP Manual
  • Функции Newt
  • Заменяет текущую строку помощи на строку из стека

newt_pop_help_line

(PECL newt >= 0.1)

newt_pop_help_line — Заменяет текущую строку помощи на строку из стека

Описание

newt_pop_help_line ( void ) : void

Заменяет текущую строку помощи на строку из стека.

Замечание:

Важно не вызывать newt_pop_help_line() больше количества раз, чем newt_push_help_line().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_push_help_line() - Сохраняет текущую строку помощи в стеке и отображает новую строку


Удаляет верхнее окно с экрана

  • « newt_pop_help_line
  • newt_push_help_line »
  • PHP Manual
  • Функции Newt
  • Удаляет верхнее окно с экрана

newt_pop_window

(PECL newt >= 0.1)

newt_pop_window — Удаляет верхнее окно с экрана

Описание

newt_pop_window ( void ) : void

Удаляет верхнее окно с экрана и перерисовывает области отображения, которые перезаписывают окно.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_open_window() - Открыть окно с указанным размером и позиции
  • newt_centered_window() - Открыть окно по центру указанного размера


Сохраняет текущую строку помощи в стеке и отображает новую строку

  • « newt_pop_window
  • newt_radio_get_current »
  • PHP Manual
  • Функции Newt
  • Сохраняет текущую строку помощи в стеке и отображает новую строку

newt_push_help_line

(PECL newt >= 0.1)

newt_push_help_line — Сохраняет текущую строку помощи в стеке и отображает новую строку

Описание

newt_push_help_line ([ string $text ] ) : void

Сохраняет текущую строку помощи в стеке и отображает новую строку

Список параметров

text

Новое текстовое сообщение помощи

Замечание:

Если не указано, строка помощи очищается.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_pop_help_line() - Заменяет текущую строку помощи на строку из стека


Описание

  • « newt_push_help_line
  • newt_radiobutton »
  • PHP Manual
  • Функции Newt
  • Описание

newt_radio_get_current

(PECL newt >= 0.1)

newt_radio_get_current —

Описание

newt_radio_get_current ( resource $set_member ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

set_member

Возвращаемые значения


Описание

  • « newt_radio_get_current
  • newt_redraw_help_line »
  • PHP Manual
  • Функции Newt
  • Описание

newt_radiobutton

(PECL newt >= 0.1)

newt_radiobutton —

Описание

newt_radiobutton ( int $left , int $top , string $text , bool $is_default [, resource $prev_button ] ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

text

is_default

prev_button

Возвращаемые значения


Описание

  • « newt_radiobutton
  • newt_reflow_text »
  • PHP Manual
  • Функции Newt
  • Описание

newt_redraw_help_line

(PECL newt >= 0.1)

newt_redraw_help_line —

Описание

newt_redraw_help_line ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_redraw_help_line
  • newt_refresh »
  • PHP Manual
  • Функции Newt
  • Описание

newt_reflow_text

(PECL newt >= 0.1)

newt_reflow_text —

Описание

newt_reflow_text ( string $text , int $width , int $flex_down , int $flex_up , int &$actual_width , int &$actual_height ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

text

width

flex_down

flex_up

actual_width

actual_height

Возвращаемые значения


Обновляет измененные части экрана

  • « newt_reflow_text
  • newt_resize_screen »
  • PHP Manual
  • Функции Newt
  • Обновляет измененные части экрана

newt_refresh

(PECL newt >= 0.1)

newt_refresh — Обновляет измененные части экрана

Описание

newt_refresh ( void ) : void

Для повышения производительности, newt обновляет дисплей только тогда, когда ему нужно, а не когда программа сообщает ему о записи на терминал. Приложения могут заставить newt сразу обновлять измененные части экрана, вызвав эту функцию.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_refresh
  • newt_resume »
  • PHP Manual
  • Функции Newt
  • Описание

newt_resize_screen

(PECL newt >= 0.1)

newt_resize_screen —

Описание

newt_resize_screen ([ bool $redraw ] ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

redraw

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возобновить использование интерфейса newt после вызова newt_suspend

  • « newt_resize_screen
  • newt_run_form »
  • PHP Manual
  • Функции Newt
  • Возобновить использование интерфейса newt после вызова newt_suspend

newt_resume

(PECL newt >= 0.1)

newt_resume — Возобновить использование интерфейса newt после вызова newt_suspend()

Описание

newt_resume ( void ) : void

Возобновить использование интерфейса newt после вызова newt_suspend().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_suspend() - Возвращает newt в исходное состояние


Выполняет форму

  • « newt_resume
  • newt_scale_set »
  • PHP Manual
  • Функции Newt
  • Выполняет форму

newt_run_form

(PECL newt >= 0.1)

newt_run_form — Выполняет форму

Описание

newt_run_form ( resource $form ) : resource

Функция выполняет переданную ей форму.

Список параметров

form

Компонент формы

Возвращаемые значения

Компонент, вызвавший остановку работы формы.

Замечание:

Обратите внимание, что эта функция не соответствует обычному соглашению об именовании newt. Это старый интерфейс, который не будет работать для всех форм. Он был оставлен в newt только для устаревших приложений. Это более простой интерфейс, чем newt_form_run(), хотя, и до сих пор используется довольно часто в результате. Когда приложение выполняется с формой, оно уничтожает форму и все компоненты, содержащиеся в форме.

Смотрите также

  • newt_form_run() - Выполняет форму
  • newt_form_destroy() - Удаляет форму


Описание

  • « newt_run_form
  • newt_scale »
  • PHP Manual
  • Функции Newt
  • Описание

newt_scale_set

(PECL newt >= 0.1)

newt_scale_set —

Описание

newt_scale_set ( resource $scale , int $amount ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scale

amount

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_scale_set
  • newt_scrollbar_set »
  • PHP Manual
  • Функции Newt
  • Описание

newt_scale

(PECL newt >= 0.1)

newt_scale —

Описание

newt_scale ( int $left , int $top , int $width , int $full_value ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

width

full_value

Возвращаемые значения


Описание

  • « newt_scale
  • newt_set_help_callback »
  • PHP Manual
  • Функции Newt
  • Описание

newt_scrollbar_set

(PECL newt >= 0.1)

newt_scrollbar_set —

Описание

newt_scrollbar_set ( resource $scrollbar , int $where , int $total ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scrollbar

where

total

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_scrollbar_set
  • newt_set_suspend_callback »
  • PHP Manual
  • Функции Newt
  • Описание

newt_set_help_callback

(PECL newt >= 0.1)

newt_set_help_callback —

Описание

newt_set_help_callback ( mixed $function ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

function

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Установить callback-функцию, которая вызывается при нажатии пользователем клавиши suspend

  • « newt_set_help_callback
  • newt_suspend »
  • PHP Manual
  • Функции Newt
  • Установить callback-функцию, которая вызывается при нажатии пользователем клавиши suspend

newt_set_suspend_callback

(PECL newt >= 0.1)

newt_set_suspend_callback — Установить callback-функцию, которая вызывается при нажатии пользователем клавиши suspend

Описание

newt_set_suspend_callback ( callable $function , mixed $data ) : void

Установить callback-функцию, вызываемую при нажатии пользователем клавиши suspend (как правило это ^Z). Если callback-функция обработки клавиши suspend не зарегистрирована, нажатие этой клавиши игнорируется.

Список параметров

function

Callback-функция, принимающая один аргумент - data

data

Данные, которые будут переданы callback-функции

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_suspend() - Возвращает newt в исходное состояние
  • newt_resume() - Возобновить использование интерфейса newt после вызова newt_suspend


Возвращает newt в исходное состояние

  • « newt_set_suspend_callback
  • newt_textbox_get_num_lines »
  • PHP Manual
  • Функции Newt
  • Возвращает newt в исходное состояние

newt_suspend

(PECL newt >= 0.1)

newt_suspend — Возвращает newt в исходное состояние

Описание

newt_suspend ( void ) : void

Возвращает newt в исходное состояние. Как только это будет сделано, приложение может приостановить само себя (отправив себе SIGTSTP, создать дочернюю программу или сделать все, что ему понравится).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_resume() - Возобновить использование интерфейса newt после вызова newt_suspend


Описание

  • « newt_suspend
  • newt_textbox_reflowed »
  • PHP Manual
  • Функции Newt
  • Описание

newt_textbox_get_num_lines

(PECL newt >= 0.1)

newt_textbox_get_num_lines —

Описание

newt_textbox_get_num_lines ( resource $textbox ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

textbox

Возвращаемые значения


Описание

  • « newt_textbox_get_num_lines
  • newt_textbox_set_height »
  • PHP Manual
  • Функции Newt
  • Описание

newt_textbox_reflowed

(PECL newt >= 0.1)

newt_textbox_reflowed —

Описание

newt_textbox_reflowed ( int $left , int $top , char $*text , int $width , int $flex_down , int $flex_up [, int $flags ] ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

*text

width

flex_down

flex_up

flags

Возвращаемые значения


Описание

  • « newt_textbox_reflowed
  • newt_textbox_set_text »
  • PHP Manual
  • Функции Newt
  • Описание

newt_textbox_set_height

(PECL newt >= 0.1)

newt_textbox_set_height —

Описание

newt_textbox_set_height ( resource $textbox , int $height ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

textbox

height

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_textbox_set_height
  • newt_textbox »
  • PHP Manual
  • Функции Newt
  • Описание

newt_textbox_set_text

(PECL newt >= 0.1)

newt_textbox_set_text —

Описание

newt_textbox_set_text ( resource $textbox , string $text ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

textbox

text

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_textbox_set_text
  • newt_vertical_scrollbar »
  • PHP Manual
  • Функции Newt
  • Описание

newt_textbox

(PECL newt >= 0.1)

newt_textbox —

Описание

newt_textbox ( int $left , int $top , int $width , int $height [, int $flags ] ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

width

height

flags

Возвращаемые значения


Описание

  • « newt_textbox
  • newt_wait_for_key »
  • PHP Manual
  • Функции Newt
  • Описание

newt_vertical_scrollbar

(PECL newt >= 0.1)

newt_vertical_scrollbar —

Описание

newt_vertical_scrollbar ( int $left , int $top , int $height [, int $normal_colorset [, int $thumb_colorset ]] ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

height

normal_colorset

thumb_colorset

Возвращаемые значения


Ничего не возвращать, пока не будет нажата клавиша

  • « newt_vertical_scrollbar
  • newt_win_choice »
  • PHP Manual
  • Функции Newt
  • Ничего не возвращать, пока не будет нажата клавиша

newt_wait_for_key

(PECL newt >= 0.1)

newt_wait_for_key — Ничего не возвращать, пока не будет нажата клавиша

Описание

newt_wait_for_key ( void ) : void

Функция ничего не возвращает, пока не будет нажата клавиша. Затем нажатие клавиши игнорируется. Если ключ уже находится в буфере терминала, эта функция запрещает нажатие клавиши и немедленно возвращает управление вызывающему коду.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_clear_key_buffer() - Отбрасывает содержимое буфера ввода терминала, не дожидаясь дополнительного ввода


Описание

  • « newt_wait_for_key
  • newt_win_entries »
  • PHP Manual
  • Функции Newt
  • Описание

newt_win_choice

(PECL newt >= 0.1)

newt_win_choice —

Описание

newt_win_choice ( string $title , string $button1_text , string $button2_text , string $format [, mixed $args [, mixed $... ]] ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

button1_text

button2_text

format

args

Возвращаемые значения


Описание

  • « newt_win_choice
  • newt_win_menu »
  • PHP Manual
  • Функции Newt
  • Описание

newt_win_entries

(PECL newt >= 0.1)

newt_win_entries —

Описание

newt_win_entries ( string $title , string $text , int $suggested_width , int $flex_down , int $flex_up , int $data_width , array &$items , string $button1 [, string $... ] ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

text

suggested_width

flex_down

flex_up

data_width

items

button1

button2

Возвращаемые значения

Примеры

Пример #1 Пример выполнения newt_win_entries()

<?php

newt_init();
newt_cls();

$entries[] = array('text' => 'Имя:', 'value' => &$f_name);
$entries[] = array('text' => 'Фамилия:',  'value' => &$l_name);

$rc = newt_win_entries("Информация о пользователе", "Пожалуйста, введите ваши персональные данные:", 50, 7, 7, 30, $entries, "Готово", "Отменить");
newt_finished ();

if ($rc != 2) {
    echo "Ваше имя: $f_name $l_name\n";
}
?>


Описание

  • « newt_win_entries
  • newt_win_message »
  • PHP Manual
  • Функции Newt
  • Описание

newt_win_menu

(PECL newt >= 0.1)

newt_win_menu —

Описание

newt_win_menu ( string $title , string $text , int $suggestedWidth , int $flexDown , int $flexUp , int $maxListHeight , array $items , int &$listItem [, string $button1 [, string $... ]] ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

text

suggestedWidth

flexDown

flexUp

maxListHeight

items

listItem

button1

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_win_menu
  • newt_win_messagev »
  • PHP Manual
  • Функции Newt
  • Описание

newt_win_message

(PECL newt >= 0.1)

newt_win_message —

Описание

newt_win_message ( string $title , string $button_text , string $format [, mixed $args [, mixed $... ]] ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

button_text

format

args

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_win_message
  • newt_win_ternary »
  • PHP Manual
  • Функции Newt
  • Описание

newt_win_messagev

(PECL newt >= 0.1)

newt_win_messagev —

Описание

newt_win_messagev ( string $title , string $button_text , string $format , array $args ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

button_text

format

args

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_win_messagev
  • Readline »
  • PHP Manual
  • Функции Newt
  • Описание

newt_win_ternary

(PECL newt >= 0.1)

newt_win_ternary —

Описание

newt_win_ternary ( string $title , string $button1_text , string $button2_text , string $button3_text , string $format [, mixed $args [, mixed $... ]] ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

Описание

button1_text

Описание

button2_text

Описание

button3_text

Описание

format

Описание

args

Описание

Возвращаемые значения

Что возвращает функция, сначала в случае успешного выполнения, потом в случае возникновения ошибки. Смотрите также сущность &return.success;


GNU Readline

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Readline
    • readline_add_history — Добавляет строку в историю
    • readline_callback_handler_install — Инициализирует callback-интерфейс readline и терминал, печатает строку приглашения и немедленно возвращает управление
    • readline_callback_handler_remove — Удаляет ранее зарегистрированную callback-функцию и восстанавливает терминал
    • readline_callback_read_char — Читает символ и информирует callback-функцию readline, что получена строка
    • readline_clear_history — Очищает историю команд
    • readline_completion_function — Зарегистрировать функцию автодополнения
    • readline_info — Устанавливает/читает различные внутренние переменные readline
    • readline_list_history — Список истории команд
    • readline_on_new_line — Информирует readline, что курсор переместился на новую строку
    • readline_read_history — Прочитать историю команд из файла
    • readline_redisplay — Перерисовать экран
    • readline_write_history — Записать историю команд в файл
    • readline — Читает строку


Введение

Функции readline реализуют интерфейс к библиотеке GNU Readline. Это функции, предоставляющие редактируемые командные строки. К примеру, Bash позволяет вам использовать стрелки для навигации по строке или для прокрутки истории команд. Так как эта библиотека по самой своей сути интерактивна, то нормально использовать ее можно разве что для скриптов, запускающихся в командной строке. А для веб-приложений она не особо подходит.

Начиная с PHP 7.1.0 модуль работает в Windows.

Предостережение

Модуль readline не потокобезопасен! Соответственно крайне не рекомендуется использовать его с потокобезопасными SAPI (например, Apache mod_winnt).


Требования

Для использования этих функций у вас должен быть установлен пакет libreadline. Найти его можно на домашней странице проекта » http://cnswww.cns.cwru.edu/~chet/readline/rltop.html. Он поддерживается автором Bash Четом Реми (Chet Ramey).

Также можно использовать альтарнативную библиотеку libedit. Основное отличие в используемой лицензии. Для readline это GPL, а для libedit - BSD. Скачать ее можно здесь » http://www.thrysoee.dk/editline/.


Установка

Для использования модуля вам нужно скомпилировать CGI или CLI версию PHP с поддержкой readline. Необходимо сконфигурировать PHP с опцией --with-readline[=DIR] . Если же вы хотите использовать альтернативную библиотеку libedit, то конфигурировать надо с опцией --with-libedit[=DIR] .

В Windows модуль доступен с версии PHP 7.1.0.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Readline
Имя | По умолчанию | Место изменения | Список изменений
cli.pager | "" | PHP_INI_ALL | Доступно с PHP 5.4.0.
cli.prompt | "\\b \\> " | PHP_INI_ALL | Доступно с PHP 5.4.0.

Краткое разъяснение конфигурационных директив.

cli.pager string

Внешняя утилита для отображения вывода в командную строку.

cli.prompt string

Подсказка командной строки.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

READLINE_LIB (string)
Библиотека, которая используется для поддержки readline; в настоящее время либо readline, либо libedit. Доступно с PHP 5.5.0.


Функции Readline

Содержание

  • readline_add_history — Добавляет строку в историю
  • readline_callback_handler_install — Инициализирует callback-интерфейс readline и терминал, печатает строку приглашения и немедленно возвращает управление
  • readline_callback_handler_remove — Удаляет ранее зарегистрированную callback-функцию и восстанавливает терминал
  • readline_callback_read_char — Читает символ и информирует callback-функцию readline, что получена строка
  • readline_clear_history — Очищает историю команд
  • readline_completion_function — Зарегистрировать функцию автодополнения
  • readline_info — Устанавливает/читает различные внутренние переменные readline
  • readline_list_history — Список истории команд
  • readline_on_new_line — Информирует readline, что курсор переместился на новую строку
  • readline_read_history — Прочитать историю команд из файла
  • readline_redisplay — Перерисовать экран
  • readline_write_history — Записать историю команд в файл
  • readline — Читает строку


Добавляет строку в историю

  • « Функции Readline
  • readline_callback_handler_install »
  • PHP Manual
  • Функции Readline
  • Добавляет строку в историю

readline_add_history

(PHP 4, PHP 5, PHP 7)

readline_add_history — Добавляет строку в историю

Описание

readline_add_history ( string $line ) : bool

Добавляет строку в историю ввода.

Список параметров

line

Строка, которую надо добавить в историю команд.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Инициализирует callback-интерфейс readline и терминал, печатает строку приглашения и немедленно возвращает управление

  • « readline_add_history
  • readline_callback_handler_remove »
  • PHP Manual
  • Функции Readline
  • Инициализирует callback-интерфейс readline и терминал, печатает строку приглашения и немедленно возвращает управление

readline_callback_handler_install

(PHP 5 >= 5.1.0, PHP 7)

readline_callback_handler_install — Инициализирует callback-интерфейс readline и терминал, печатает строку приглашения и немедленно возвращает управление

Описание

readline_callback_handler_install ( string $prompt , callable $callback ) : bool

Инициализирует callback-интерфейс readline, печатает prompt и возвращает управление. Повторный вызов этой функции без предварительного удаления старого callback-интерфейса приведет к автоматической его перезаписи.

Функционал callback-функций особенно удобен в комбинации с stream_select(), поскольку он, в отличие от readline(), позволяет чередовать ввод-вывод и пользовательский ввод.

Список параметров

prompt

Строка приглашения.

callback

Функция передаваемая в параметр callback должна принимать один параметр - возвращенный пользовательский ввод.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования callback-интерфейса readline

<?php
function rl_callback($ret)
{
    global $c, $prompting;

    echo "Вы ввели: $ret\n";
    $c++;

    if ($c > 10) {
        $prompting = false;
        readline_callback_handler_remove();
    } else {
        readline_callback_handler_install("[$c] Поговори со мной: ", 'rl_callback');
    }
}

$c = 1;
$prompting = true;

readline_callback_handler_install("[$c] Введите что-нибудь: ", 'rl_callback');

while ($prompting) {
    $w = NULL;
    $e = NULL;
    $n = stream_select($r = array(STDIN), $w, $e, null);
    if ($n && in_array(STDIN, $r)) {
        // читаем символ и вызываем callback-функцию,
        // если введен символ новой строки
        readline_callback_read_char();
    }
}

echo "Ввод отключен. Спасибо за внимание.\n";
?>

Смотрите также

  • readline_callback_handler_remove() - Удаляет ранее зарегистрированную callback-функцию и восстанавливает терминал
  • readline_callback_read_char() - Читает символ и информирует callback-функцию readline, что получена строка
  • stream_select() - Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec


Удаляет ранее зарегистрированную callback-функцию и восстанавливает терминал

  • « readline_callback_handler_install
  • readline_callback_read_char »
  • PHP Manual
  • Функции Readline
  • Удаляет ранее зарегистрированную callback-функцию и восстанавливает терминал

readline_callback_handler_remove

(PHP 5 >= 5.1.0, PHP 7)

readline_callback_handler_remove — Удаляет ранее зарегистрированную callback-функцию и восстанавливает терминал

Описание

readline_callback_handler_remove ( void ) : bool

Удаляет ранее зарегистрированную callback-функцию и восстанавливает настройки терминала.

Возвращаемые значения

Возвращает TRUE, если удаление прошло успешно или FALSE, если удалять нечего.

Примеры

Пример использования интерфейса callback-функций readline смотрите на странице описания функции readline_callback_handler_install().

Смотрите также

  • readline_callback_handler_install() - Инициализирует callback-интерфейс readline и терминал, печатает строку приглашения и немедленно возвращает управление
  • readline_callback_read_char() - Читает символ и информирует callback-функцию readline, что получена строка


Читает символ и информирует callback-функцию readline, что получена строка

  • « readline_callback_handler_remove
  • readline_clear_history »
  • PHP Manual
  • Функции Readline
  • Читает символ и информирует callback-функцию readline, что получена строка

readline_callback_read_char

(PHP 5 >= 5.1.0, PHP 7)

readline_callback_read_char — Читает символ и информирует callback-функцию readline, что получена строка

Описание

readline_callback_read_char ( void ) : void

Читает введенный пользователем символ. Когда строка получена, эта функция информирует callback-функцию интерфейса readline, заданную с помощью readline_callback_handler_install(), что строка готова к вводу.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример использования интерфейса callback-функций readline смотрите на странице описания функции readline_callback_handler_install().

Смотрите также

  • readline_callback_handler_install() - Инициализирует callback-интерфейс readline и терминал, печатает строку приглашения и немедленно возвращает управление
  • readline_callback_handler_remove() - Удаляет ранее зарегистрированную callback-функцию и восстанавливает терминал


Очищает историю команд

  • « readline_callback_read_char
  • readline_completion_function »
  • PHP Manual
  • Функции Readline
  • Очищает историю команд

readline_clear_history

(PHP 4, PHP 5, PHP 7)

readline_clear_history — Очищает историю команд

Описание

readline_clear_history ( void ) : bool

Функция очищает историю ввода команд.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Зарегистрировать функцию автодополнения

  • « readline_clear_history
  • readline_info »
  • PHP Manual
  • Функции Readline
  • Зарегистрировать функцию автодополнения

readline_completion_function

(PHP 4, PHP 5, PHP 7)

readline_completion_function — Зарегистрировать функцию автодополнения

Описание

readline_completion_function ( callable $function ) : bool

Функция регистрирует функцию автодополнения. Это то же самое, как если вы нажимаете табуляцию в Bash и строка дополняется наиболее подходящим текстом.

Список параметров

function

Имя функции, которая принимает строку и возвращает массив подходящих совпадений.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Устанавливает/читает различные внутренние переменные readline

  • « readline_completion_function
  • readline_list_history »
  • PHP Manual
  • Функции Readline
  • Устанавливает/читает различные внутренние переменные readline

readline_info

(PHP 4, PHP 5, PHP 7)

readline_info — Устанавливает/читает различные внутренние переменные readline

Описание

readline_info ([ string $varname [, string $newvalue ]] ) : mixed

Устанавливает/читает различные внутренние переменные readline.

Список параметров

varname

Имя переменной.

newvalue

Если задано, то переменной будет присвоено это значение.

Возвращаемые значения

Если вызвать функцию без параметров, то будет возвращен массив значений всех внутренних переменных readline. Элементы массива будут иметь следующие индексы: done, end, erase_empty_line, library_version, line_buffer, mark, pending_input, point, prompt, readline_name и terminal_name.

Если вызвать с одним или двумя параметрами, то будет возвращено старое/текущее значение переменной.


Список истории команд

  • « readline_info
  • readline_on_new_line »
  • PHP Manual
  • Функции Readline
  • Список истории команд

readline_list_history

(PHP 4, PHP 5, PHP 7)

readline_list_history — Список истории команд

Описание

readline_list_history ( void ) : array

Возвращает полную историю команд.

Возвращаемые значения

Возвращает индексированный массив с занесенными в историю командами.


Информирует readline, что курсор переместился на новую строку

  • « readline_list_history
  • readline_read_history »
  • PHP Manual
  • Функции Readline
  • Информирует readline, что курсор переместился на новую строку

readline_on_new_line

(PHP 5 >= 5.1.0, PHP 7)

readline_on_new_line — Информирует readline, что курсор переместился на новую строку

Описание

readline_on_new_line ( void ) : void

Информирует readline, что курсор переместился на новую строку.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Прочитать историю команд из файла

  • « readline_on_new_line
  • readline_redisplay »
  • PHP Manual
  • Функции Readline
  • Прочитать историю команд из файла

readline_read_history

(PHP 4, PHP 5, PHP 7)

readline_read_history — Прочитать историю команд из файла

Описание

readline_read_history ([ string $filename ] ) : bool

Функция читает историю команд из файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Перерисовать экран

  • « readline_read_history
  • readline_write_history »
  • PHP Manual
  • Функции Readline
  • Перерисовать экран

readline_redisplay

(PHP 5 >= 5.1.0, PHP 7)

readline_redisplay — Перерисовать экран

Описание

readline_redisplay ( void ) : void

Перерисовывает экран.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Записать историю команд в файл

  • « readline_redisplay
  • readline »
  • PHP Manual
  • Функции Readline
  • Записать историю команд в файл

readline_write_history

(PHP 4, PHP 5, PHP 7)

readline_write_history — Записать историю команд в файл

Описание

readline_write_history ([ string $filename ] ) : bool

Функция записывает историю команд в файл.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Читает строку

  • « readline_write_history
  • Расширения для сжатия и архивации »
  • PHP Manual
  • Функции Readline
  • Читает строку

readline

(PHP 4, PHP 5, PHP 7)

readline — Читает строку

Описание

readline ([ string $prompt = NULL ] ) : string

Читает одну строку, введенную пользователем. Если вам нужно добавить эту строку в историю, то сделать это вы должны самостоятельно, с помощью readline_add_history().

Список параметров

prompt

Подсказка, которая будет выведена пользователю.

Возвращаемые значения

Возвращает одну строку, введенную пользователем. Символ конца строки будет удален.

Примеры

Пример #1 Пример использования readline()

<?php
//получим 3 команды от пользователя
for ($i=0; $i < 3; $i++) {
        $line = readline("Command: ");
        readline_add_history($line);
}

//распечатаем историю ввода
print_r(readline_list_history());

//распечатаем переменные
print_r(readline_info());
?>


Расширения для сжатия и архивации

  • Bzip2
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции Bzip2
  • LZF
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции LZF
  • Phar
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Использование Phar-архивов
    • Создание Phar-архивов
    • Что делает phar phar'ом, а не tar'ом или zip'ом?
    • Phar — Класс Phar
    • PharData — Класс PharData
    • PharFileInfo — Класс PharFileInfo
    • PharException — Класс PharException
  • Rar — Архивирование Rar
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Rar
    • RarArchive — Класс RarArchive
    • RarEntry — Класс RarEntry
    • RarException — Класс RarException
  • Zip
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • ZipArchive — Класс ZipArchive
    • Функции Zip
  • Zlib
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции Zlib


Bzip2

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции Bzip2
    • bzclose — Закрывает файл bzip2
    • bzcompress — Сжимает строку с использованием bzip2
    • bzdecompress — Распаковывает данные, сжатые с использованием bzip2
    • bzerrno — Возвращает код ошибки работы с bzip2
    • bzerror — Возвращает код и строку ошибки работы с bzip2 в виде массива
    • bzerrstr — Возвращает строку ошибки работы с bzip2
    • bzflush — Форсирует запись всех буферизированных данных
    • bzopen — Открывает файл, сжатый с использованием bzip2
    • bzread — Бинарно-безопасное чтение файла bzip2
    • bzwrite — Бинарно-безопасная запись bzip2 файла


Введение

Функции bzip2 используются для прозрачного чтения и записи архивов bzip2 (.bz2).


Требования

Расширение использует функции библиотеки » bzip2 (автор: Julian Seward) и требует bzip2/libbzip2 версий >= 1.0.x.


Установка

Поддержка Bzip2 в PHP не включена по умолчанию, для её включения вам следует скомпилировать PHP с указанием директивы --with-bz2[=DIR] .


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Расширение определяет один новый тип ресурсов: указатель на bz2-файл, с которым идёт работа.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • Bzip2
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Следующий пример откроет временный файл, запишет в него тестовую строку, после чего выведет содержимое файла.

Пример #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 символов
echo bzread($bz, 10);

// выводим всё, до конца файла (или следующие 1024 символа) и закрываем его.
echo bzread($bz);

bzclose($bz);

?>


Функции Bzip2

Содержание

  • bzclose — Закрывает файл bzip2
  • bzcompress — Сжимает строку с использованием bzip2
  • bzdecompress — Распаковывает данные, сжатые с использованием bzip2
  • bzerrno — Возвращает код ошибки работы с bzip2
  • bzerror — Возвращает код и строку ошибки работы с bzip2 в виде массива
  • bzerrstr — Возвращает строку ошибки работы с bzip2
  • bzflush — Форсирует запись всех буферизированных данных
  • bzopen — Открывает файл, сжатый с использованием bzip2
  • bzread — Бинарно-безопасное чтение файла bzip2
  • bzwrite — Бинарно-безопасная запись bzip2 файла


Закрывает файл bzip2

  • « Функции Bzip2
  • bzcompress »
  • PHP Manual
  • Функции Bzip2
  • Закрывает файл bzip2

bzclose

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzclose — Закрывает файл bzip2

Описание

bzclose ( resource $bz ) : bool

Закрывает переданный указатель на файл bzip2.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешно открытый bzopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • bzopen() - Открывает файл, сжатый с использованием bzip2


Сжимает строку с использованием bzip2

  • « bzclose
  • bzdecompress »
  • PHP Manual
  • Функции Bzip2
  • Сжимает строку с использованием bzip2

bzcompress

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzcompress — Сжимает строку с использованием bzip2

Описание

bzcompress ( string $source [, int $blocksize = 4 [, int $workfactor = 0 ]] ) : mixed

bzcompress() сжимает переданную строку и возвращает ее в виде закодированных данных bzip2.

Список параметров

source

Сжимаемая строка.

blocksize

Определяет размера блока, используемый при сжатии, должен быть числом в диапазоне от 1 до 9, где 9 даст наилучшее, но более ресурсоемкое сжатие.

workfactor

Контролирует поведение фазы компрессии в худшем случае, когда входные данные являются часто повторяющимися. Параметр может принимать значения между 0 и 250, где 0 означает специальный случай.

Генерируемый результат не зависит от параметра workfactor и является одним и тем же.

Возвращаемые значения

Сжатая строка или код ошибки в случае неудачного завершения работы.

Примеры

Пример #1 Сжатие данных

<?php
$str = "sample data";
$bzstr = bzcompress($str, 9);
echo $bzstr;
?>

Смотрите также

  • bzdecompress() - Распаковывает данные, сжатые с использованием bzip2


Распаковывает данные, сжатые с использованием bzip2

  • « bzcompress
  • bzerrno »
  • PHP Manual
  • Функции Bzip2
  • Распаковывает данные, сжатые с использованием bzip2

bzdecompress

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzdecompress — Распаковывает данные, сжатые с использованием bzip2

Описание

bzdecompress ( string $source [, int $small = 0 ] ) : mixed

bzdecompress() распаковывает переданную строку, содержащую сжатые bzip2 данные.

Список параметров

source

Распаковываемая строка.

small

Если TRUE, то будет использован альтернативный алгоритм распаковки, использующий меньше памяти (максимально требуемая память находится в районе 2300K), но работает приблизительно вдвое медленнее.

Смотрите » документацию по bzip2 для более подробной информации об этой возможности.

Возвращаемые значения

Распакованная строка или код ошибки в случае неудачного завершения работы.

Примеры

Пример #1 Распаковка строки

<?php
$start_str = "This is not an honest face?";
$bzstr = bzcompress($start_str);

echo "Compressed String: ";
echo $bzstr;
echo "\n<br />\n";

$str = bzdecompress($bzstr);
echo "Decompressed String: ";
echo $str;
echo "\n<br />\n";
?>

Смотрите также

  • bzcompress() - Сжимает строку с использованием bzip2


Возвращает код ошибки работы с bzip2

  • « bzdecompress
  • bzerror »
  • PHP Manual
  • Функции Bzip2
  • Возвращает код ошибки работы с bzip2

bzerrno

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzerrno — Возвращает код ошибки работы с bzip2

Описание

bzerrno ( resource $bz ) : int

Возвращает код любой bzip2 ошибки, произошедшей с переданным указателем на файл.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешный открытый bzopen().

Возвращаемые значения

Возвращает код ошибки в виде целого числа.

Смотрите также

  • bzerror() - Возвращает код и строку ошибки работы с bzip2 в виде массива
  • bzerrstr() - Возвращает строку ошибки работы с bzip2


Возвращает код и строку ошибки работы с bzip2 в виде массива

  • « bzerrno
  • bzerrstr »
  • PHP Manual
  • Функции Bzip2
  • Возвращает код и строку ошибки работы с bzip2 в виде массива

bzerror

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzerror — Возвращает код и строку ошибки работы с bzip2 в виде массива

Описание

bzerror ( resource $bz ) : array

Возвращает ассоциативный массив с кодом и строкой ошибки, произошедшей с переданным файловым указателем.

Список параметров

bz

Файловый указатель. Должен быть корректным и указывать на файл, успешно открытый bzopen().

Возвращаемые значения

Возвращает ассоциативный массив с кодом ошибки с ключом errno, и строкой ошибки с ключом errstr.

Примеры

Пример #1 Пример использования bzerror()

<?php
$error = bzerror($bz);

echo $error["errno"];
echo $error["errstr"];
?>

Смотрите также

  • bzerrno() - Возвращает код ошибки работы с bzip2
  • bzerrstr() - Возвращает строку ошибки работы с bzip2


Возвращает строку ошибки работы с bzip2

  • « bzerror
  • bzflush »
  • PHP Manual
  • Функции Bzip2
  • Возвращает строку ошибки работы с bzip2

bzerrstr

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzerrstr — Возвращает строку ошибки работы с bzip2

Описание

bzerrstr ( resource $bz ) : string

Возвращает строку с ошибкой bzip2, произошедшей с переданным указателем на файл.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешно открытый bzopen().

Возвращаемые значения

Возвращает строку, содержащую сообщение об ошибке.

Смотрите также

  • bzerrno() - Возвращает код ошибки работы с bzip2
  • bzerror() - Возвращает код и строку ошибки работы с bzip2 в виде массива


Форсирует запись всех буферизированных данных

  • « bzerrstr
  • bzopen »
  • PHP Manual
  • Функции Bzip2
  • Форсирует запись всех буферизированных данных

bzflush

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzflush — Форсирует запись всех буферизированных данных

Описание

bzflush ( resource $bz ) : bool

Форсирует запись всех буферизированных bzip2 данных в файл, на который ссылается указатель bz.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешно открытый bzopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • bzread() - Бинарно-безопасное чтение файла bzip2
  • bzwrite() - Бинарно-безопасная запись bzip2 файла


Открывает файл, сжатый с использованием bzip2

  • « bzflush
  • bzread »
  • PHP Manual
  • Функции Bzip2
  • Открывает файл, сжатый с использованием bzip2

bzopen

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzopen — Открывает файл, сжатый с использованием bzip2

Описание

bzopen ( mixed $file , string $mode ) : resource

bzopen() открывает bzip2 (.bz2) файл для чтения либо записи.

Список параметров

file

Имя открываемого файла, или существующий ресурс потока.

mode

Поддерживаются только 'r' (чтение) и 'w' (запись). Все остальное заставит bzopen() вернуть FALSE.

Возвращаемые значения

bzopen() возвращается указатель на открытый файл, либо FALSE, если файл открыть не удалось.

Примеры

Пример #1 Пример использования bzopen()

<?php

$file = "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Не могу открыть $file для чтения");

bzclose($bz);

?>

Смотрите также

  • bzclose() - Закрывает файл bzip2


Бинарно-безопасное чтение файла bzip2

  • « bzopen
  • bzwrite »
  • PHP Manual
  • Функции Bzip2
  • Бинарно-безопасное чтение файла bzip2

bzread

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzread — Бинарно-безопасное чтение файла bzip2

Описание

bzread ( resource $bz [, int $length = 1024 ] ) : string

bzread() читает из переданного bzip2 файлового указателя.

Чтение останавливается, если было считано length (несжатых) байт или был достигнут конец файла, в зависимости от того, что произойдет раньше.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешно открытый bzopen().

length

Если не указан, bzread() будет считывать 1024 (несжатых) байта за один раз. За один раз может быть считано максимум 8192 байта.

Возвращаемые значения

Возвращает распакованные данные либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования bzread()

<?php

$file = "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Невозможно открыть $file");

$decompressed_file = '';
while (!feof($bz)) {
  $decompressed_file .= bzread($bz, 4096);
}
bzclose($bz);

echo "Содержимое $file: <br />\n";
echo $decompressed_file;

?>

Смотрите также

  • bzwrite() - Бинарно-безопасная запись bzip2 файла
  • feof() - Проверяет, достигнут ли конец файла
  • bzopen() - Открывает файл, сжатый с использованием bzip2


Бинарно-безопасная запись bzip2 файла

  • « bzread
  • LZF »
  • PHP Manual
  • Функции Bzip2
  • Бинарно-безопасная запись bzip2 файла

bzwrite

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzwrite — Бинарно-безопасная запись bzip2 файла

Описание

bzwrite ( resource $bz , string $data [, int $length ] ) : int

bzwrite() записывает строку в переданный bzip2 файловый поток.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешно открытый bzopen().

data

Записываемые данные.

length

Если указан, запись остановится после length (несжатых) записанных байт, либо если был достигнут конец data, в зависимости от того, что произойдет первым.

Возвращаемые значения

Возвращает количество записанных байт или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования bzwrite()

<?php
$str = "uncompressed data";
$bz = bzopen("/tmp/foo.bz2", "w");
bzwrite($bz, $str, strlen($str));
bzclose($bz);
?>

Смотрите также

  • bzread() - Бинарно-безопасное чтение файла bzip2
  • bzopen() - Открывает файл, сжатый с использованием bzip2


LZF

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции LZF
    • lzf_compress — Сжатие LZF
    • lzf_decompress — Разархивация LZF
    • lzf_optimized_for — Определяет режим оптимизации модуля LZF


Введение

LZF - это очень быстрый алгоритм сжатия, идеальный для экономии места при крайне низких временных затратах. Он может быть оптимизирован под скорость или под эффективность сжатия на моменте компиляции. Этот модуль использует библиотеку » liblzf, созданную для своих целей Марком Лейманом.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/lzf.

Для использования данного модуля необходимо скомпилировать PHP с поддержкой lzf, используя ключ конфигурации --with-lzf[=DIR] . Также вы можете указать ключ --enable-lzf-better-compression для оптимизации LZF для лучшего сжатия в ущерб скорости работы.

Пользователи Windows должны разрешить php_lzf.dll в php.ini. DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Типы ресурсов
  • Функции LZF »
  • PHP Manual
  • LZF
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции LZF

Содержание

  • lzf_compress — Сжатие LZF
  • lzf_decompress — Разархивация LZF
  • lzf_optimized_for — Определяет режим оптимизации модуля LZF


Сжатие LZF

  • « Функции LZF
  • lzf_decompress »
  • PHP Manual
  • Функции LZF
  • Сжатие LZF

lzf_compress

(PECL lzf >= 0.1.0)

lzf_compress — Сжатие LZF

Описание

lzf_compress ( string $data ) : string

lzf_compress() сжимает строку данных data используя алгоритм LZF.

Список параметров

data

Строка для сжатия.

Возвращаемые значения

Возвращает сжатые данные или FALSE в случае возникновения ошибки.

Смотрите также

  • lzf_decompress() - Разархивация LZF


Разархивация LZF

  • « lzf_compress
  • lzf_optimized_for »
  • PHP Manual
  • Функции LZF
  • Разархивация LZF

lzf_decompress

(PECL lzf >= 0.1.0)

lzf_decompress — Разархивация LZF

Описание

lzf_decompress ( string $data ) : string

lzf_compress() разархивирует строку data, содержащую данные сжатые алгоритмом lzf.

Список параметров

data

Строка со сжатыми данными.

Возвращаемые значения

Возвращает разархивированные данные или FALSE в случае возникновения ошибки.

Смотрите также

  • lzf_compress() - Сжатие LZF


Определяет режим оптимизации модуля LZF

  • « lzf_decompress
  • Phar »
  • PHP Manual
  • Функции LZF
  • Определяет режим оптимизации модуля LZF

lzf_optimized_for

(PECL lzf >= 1.0.0)

lzf_optimized_for — Определяет режим оптимизации модуля LZF

Описание

lzf_optimized_for ( void ) : int

Определяет, с какими настройками оптимизации скомпилирован модуль LZF.

Возвращаемые значения

Возвращает 1, если LZF оптимизирован под скорость работы и 0, если под эффективность сжатия.


Phar

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Использование Phar-архивов
    • Использование Phar-архивов: Введение
    • Использование Phar-архивов: обертка потока phar
    • Использование Phar-архивов: классы Phar и PharData
  • Создание Phar-архивов
    • Создание Phar-архивов: Введение
  • Что делает phar phar'ом, а не tar'ом или zip'ом?
    • Составные части всех Phar-архивов вне зависимости от формата файла
    • Заглушка Phar-файла
    • Сравнение Phar, Tar и Zip
    • Phar-архивы, основанные на tar
    • Phar-архивы, основанные на zip
    • Формат файла phar
    • Флаги глобальной битовой карты Phar
    • Описание записи файла в манифесте Phar
    • Формат подписи Phar
  • Phar — Класс Phar
    • Phar::addEmptyDir — Добавляет в phar-архив пустую директорию
    • Phar::addFile — Добавляет в phar-архив файл из файловой системы
    • Phar::addFromString — Добавляет в phar-архив файл из строки
    • Phar::apiVersion — Возвращает версию API
    • Phar::buildFromDirectory — Создает phar-архив из файлов, расположенных внутри директории
    • Phar::buildFromIterator — Создает phar-архив из итератора
    • Phar::canCompress — Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
    • Phar::canWrite — Проверяет, поддерживает ли модуль phar сохранение и создание phar-архивов
    • Phar::compress — Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия
    • Phar::compressAllFilesBZIP2 — Сжимает все файлы в текущем Phar-архиве с помощью Bzip2-сжатия
    • Phar::compressAllFilesGZ — Сжимает все файлы в текущем Phar-архиве с помощью Gzip-сжатия
    • Phar::compressFiles — Сжимает все файлы в текущем Phar-архиве
    • Phar::__construct — Создает объект Phar-архива
    • Phar::convertToData — Конвертирует phar-архив в неисполняемый tar- или zip-файл
    • Phar::convertToExecutable — Конвертирует phar-архив в другой исполняемый формат файла
    • Phar::copy — Копирует один файл внутри phar-архива в другой новый файл внутри phar-архива
    • Phar::count — Возвращает количество записей (файлов) в Phar-архиве
    • Phar::createDefaultStub — Создать заглушку в формате phar-архива
    • Phar::decompress — Распаковывает весь Phar-архив
    • Phar::decompressFiles — Распаковывает все файлы в текущем Phar-архиве
    • Phar::delMetadata — Удалить глобальные метаданные в архиве phar
    • Phar::delete — Удаляет файл внутри phar-архива
    • Phar::extractTo — Извлечь содержимое phar-архива в директорию
    • Phar::getAlias — Получить псевдоним для Phar
    • Phar::getMetadata — Извлечь метаданные phar-архива
    • Phar::getModified — Определить, изменялся phar-архив
    • Phar::getPath — Получить реальный путь к Phar-архиву на диске
    • Phar::getSignature — Получить MD5/SHA1/SHA256/SHA512/OpenSSL подпись Phar-архива
    • Phar::getStub — Получить загрузчик PHP или загрузчик заглушки Phar-архива
    • Phar::getSupportedCompression — Возвращает массив поддерживаемых алгоритмов сжатия
    • Phar::getSupportedSignatures — Получить массив поддерживаемых алгоритмов подписи архива
    • Phar::getVersion — Получить версию Phar-архива
    • Phar::hasMetadata — Проверить, содержит ли phar-архив глобальные метаданные
    • Phar::interceptFileFuncs — Указывает phar перехватывать fopen, file_get_contents, opendir и все stat-функции
    • Phar::isBuffering — Проверить, будут ли операции с Phar-архивом буферизованы или записаны напрямую на диск
    • Phar::isCompressed — Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
    • Phar::isFileFormat — Проверить, что phar-архив имеет заданный формат (tar/phar/zip)
    • Phar::isValidPharFilename — Проверяет, что заданное имя файла является корректным именем phar-архива
    • Phar::isWritable — Проверяет, можно ли модифицировать phar-архив
    • Phar::loadPhar — Загрузить phar-архив с псевдонимом
    • Phar::mapPhar — Прочитать текущий запущенный phar-архив и зарегистрировать его манифест
    • Phar::mount — Монтирование внешнего путь или файла к виртуальному пути в phar-архиве
    • Phar::mungServer — Определить список до четырех $_SERVER-переменных, которые должны быть изменены для запуска
    • Phar::offsetExists — Определить, есть ли файл в архиве
    • Phar::offsetGet — Получить объект PharFileInfo для конкретного файла
    • Phar::offsetSet — Изменение содержимого файла
    • Phar::offsetUnset — Удалить файл из phar-архива
    • Phar::running — Получить полный путь на диске, либо полный URL запущенного Phar-архива
    • Phar::setAlias — Установить псевдоним для Phar-архива
    • Phar::setDefaultStub — Установить загрузчик PHP или начальную заглушку Phar-архива в загрузчик по умолчанию
    • Phar::setMetadata — Установить метаданные phar-архива
    • Phar::setSignatureAlgorithm — Установить алгоритм подписания phar-архива и применение его
    • Phar::setStub — Установить загрузчик или загрузочную заглушку в Phar-архив
    • Phar::startBuffering — Запускает буферизацию операций записи, отключая запись изменений Phar-архива на диск
    • Phar::stopBuffering — Останавливает буферизацию и записывает все изменения на диск
    • Phar::uncompressAllFiles — Распаковывает все файлы в текущем Phar-архиве
    • Phar::unlinkArchive — Полностью удалить архив из памяти и с диска
    • Phar::webPhar — mapPhar для phar-архивов на базе веб. Контроллер фронтенда для веб-приложений
  • PharData — Класс PharData
    • PharData::addEmptyDir — Добавить пустую директорию в tar/zip-архив
    • PharData::addFile — Добавить существующие файлы к tar/zip-архиву
    • PharData::addFromString — Создать файл с заданным содержимым в tar/zip-архиве
    • PharData::buildFromDirectory — Создает tar/zip-архив из файлов в директории
    • PharData::buildFromIterator — Создание tar/zip-архива с помощью итератора
    • PharData::compress — Сжимает весь архив tar/zip, используя сжатие Gzip или Bzip2
    • PharData::compressFiles — Сжать все файлы в текущем tar/zip-архиве
    • PharData::__construct — Конструктор объекта PharData
    • PharData::convertToData — Конвертация phar-архива в незапускаемый tar/zip-архив
    • PharData::convertToExecutable — Конвертация tar/zip-архива с данными в запускаемый phar-архив
    • PharData::copy — Скопировать файл из tar/zip-архива в новый файл внутри него же
    • PharData::decompress — Распаковать весь Phar-архив
    • PharData::decompressFiles — Распаковать все файлы в текущем zip-архиве
    • PharData::delMetadata — Удалить глобальные метаданные для zip-архива
    • PharData::delete — Удалить файл из tar/zip-архива
    • PharData::extractTo — Извлечь содержимое tar/zip-архива в директорию
    • PharData::isWritable — Проверить, можно ли модифицировать tar/zip-архив
    • PharData::offsetSet — Изменение содержимого файла
    • PharData::offsetUnset — Удалить файл из tar/zip-архива
    • PharData::setAlias — Функция заглушка (Phar::setAlias нельзя использовать для PharData)
    • PharData::setDefaultStub — Функция заглушка (Phar::setDefaultStub нельзя использовать для PharData)
    • Phar::setMetadata — Установить метаданные phar-архива
    • Phar::setSignatureAlgorithm — Установить алгоритм подписания phar-архива и применение его
    • PharData::setStub — Функция заглушка (Phar::setStub нельзя использовать для PharData)
  • PharFileInfo — Класс PharFileInfo
    • PharFileInfo::chmod — Установка прав доступа
    • PharFileInfo::compress — Сжать текущий файл с помощью zlib или bzip2
    • PharFileInfo::__construct — Конструктор объекта PharFileInfo
    • PharFileInfo::decompress — Расжимает текущий файл
    • PharFileInfo::delMetadata — Удалить метаданные файла
    • PharFileInfo::getCRC32 — Получить контрольную сумму CRC32
    • PharFileInfo::getCompressedSize — Получить реальный занимаемый файлом размер на диске с учетом сжатия
    • PharFileInfo::getContent — Получить полное содержимое файла записи
    • PharFileInfo::getMetadata — Получить метаданные, связанные с файлом
    • PharFileInfo::getPharFlags — Получить флаги файла в phar-архиве
    • PharFileInfo::hasMetadata — Проверить, есть ли у файла метаданные
    • PharFileInfo::isCRCChecked — Определить, прошел ли файл проверку CRC
    • PharFileInfo::isCompressed — Проверить, сжат ли файл
    • PharFileInfo::isCompressedBZIP2 — Определить, сжат ли файл с помощью bzip2
    • PharFileInfo::isCompressedGZ — Определить, сжат ли файл с помощью gz
    • PharFileInfo::setCompressedBZIP2 — Сжатие файла в phar-архиве с использованием Bzip2
    • PharFileInfo::setCompressedGZ — Сжатие файла в phar-архиве с использованием gz
    • PharFileInfo::setMetadata — Установка метаданных для конкретного файла
    • PharFileInfo::setUncompressed — Расжать файл внутри phar-архива, если он сжат
  • PharException — Класс PharException


Введение

Модуль phar предоставляет возможность поместить целое PHP-приложение в один-единственный файл c именем phar (PHP Archive) для простого распространения и установки. Также помимо этой услуги расширение phar предоставляет метод абстракции формата файла для создания и обработки архивов tar и zip через через класс PharData, примерно как PDO обеспечивает единый интерфейс для доступа к различным базам данных В отличие от PDO, который не может конвертировать между различными базами данных, Phar может конвертировать данные между форматами tar, zip и phar всего одной строкой кода. Смотрите Phar::convertToExecutable() для примера.

Что же такое phar? Phar-архивы лучше всего можно охарактеризовать как удобный способ группировки нескольких файлов в один. Также phar архив предоставляет возможность распространять целое PHP-приложение в одном единственном файле и запускать его прямо из этого файла без необходимости распаковывать его на диск. Кроме того, phar-архивы могут выполняться PHP с той же легкостью, что и любые другие файлы, как из коммандной строки, так и через веб-сервер. Phar - это как флеш-накопитель для PHP-приложений.

Phar реализует эту функциональность через потоки. Обычно, чтобы использовать в PHP-скрипте внешний файл, вы бы воспользовались, например, include

Пример #1 Использование внешнего файла

<?php
 include '/path/to/external/file.php';
 ?>

PHP может рассматривать это как преобразование /path/to/external/file.php в обертку потока file:///path/to/external/file.php, а в действительности он использует потоковые функции обертки простого файлового потока для доступа ко всем локальным файлам.

Чтобы использовать файл file.php, находящийся внутри phar-архива /path/to/myphar.phar, используется синтаксис очень похожий на синтаксис file:// выше.

Пример #2 Использование файла внутри phar-архива

<?php
 include 'phar:///path/to/myphar.phar/file.php';
 ?>

На самом деле, можно рассматривать phar-архив как если бы это был внешний диск, используя любые fopen()-подобные функции, opendir() и mkdir()-подобные функции для чтения, изменения, или создания новых файлов и директорий внутри phar-архива. Это позволяет целому PHP-приложению распространяться в одном файле и запускаться прямо из этого файла.

Наиболее часто используемое применение для phar-архива - это распространение целого приложения в одном файле. Например, установщик PEAR, который поставляется вместе с PHP, является phar-архивом. Для использования phar-архива распространяемого таким способом, архив может быть выполнен через консоль или через веб-сервер.

Phar-архивы могут распространяться как архивы tar и zip, или как пользовательский формат файла phar, предзначенный специально для расширения phar. Каждый формат файла имеет как преимущества, так и недостатки. Форматы tar и zip могут быть прочитаны или извлечены любой сторонней утилитой которая может работать с этими форматами. Но чтобы PHP мог их запускать, ему будет необходимо расширение phar. Файлы в phar-формате настраиваются и уникальны для расширения phar и могут быть созданы только им или PEAR-пакетом » PHP_Archive. Но их преимущество в том, что приложения, созданные в этом формате, будут работать, даже если расширение phar не включено.

Другими словами, даже если расширение phar отключено, phar-архив все равно может быть выполнен или подключен. Доступ к отдельным файлам в архиве возможен только с расширением phar, если только архив не был создан с помощью PHP_Archive.

Расширение phar также способно конвертировать phar-архив из tar в zip или в phar-формат одной командой:

Пример #3 Конвертирование phar-архива из формата phar в формат tar

<?php
 $phar = new Phar('myphar.phar');
 $pgz = $phar->convertToExecutable(Phar::TAR, Phar::GZ); // создаст myphar.phar.tar.gz
 ?>

Phar может сжимать отдельные файлы или архив целиком с использованием gzip-компрессии или bzip2-компрессии, а также автоматически преверять целостность архива, используя сигнатуры MD5, SHA-1, SHA-256 или SHA-512.

Наконец, расширение Phar заботится о вашей безопасности и отключает доступ на запись для исполняемых phar-архивов по умолчанию, а также требует отключения на системном уровне настройки phar.readonly в php.ini для создания или изменения phar-архивов. Обычные неисполняемые архивы tar и zip, всегда могут быть созданы или изменены с помощью класса PharData.

Если вы создаете приложение с целью распространения, вы возможно захотите прочитать раздел Как создавать Phar-архивы. Если вам нужно больше информации об отличиях между тремя поддерживаемыми phar форматами файлов, вам следует прочитать раздел Phar, Tar и Zip.

Если вы используете phar-приложение, то полезные советы находятся в разделе Как использовать phar-архивы

Слово phar это сокращение от PHP и Archive и оно частично основано на jar (Java Archive), знакомым Java-разработчикам.

Реализация Phar-архивов основана на PEAR-пакете » PHP_Archive и детали реализации схожи, тем не менее модуль Phar гораздо мощнее. Кроме того, расширение Phar позволяет большинству PHP-приложений запускаться без изменений, тогда как phar-архивы, основанные на PHP_Archive, часто требуют существенных изменений для работы.


Требования

Phar требует PHP 5.2.0 или новее. Дополнительные возможности требуют наличие расширения SPL, чтобы получить возможность итеративного доступа, а также доступа к содержимому файла Phar как к массиву. Поток phar не требует никаких дополнительных модулей для работы.

Кроме того, вы можете подключить модули zlib и bzip2, чтобы воспользоваться поддерживаемой компрессией phar. Также, чтобы иметь возможность подписывания OpenSSL, должно быть подключено расширение OpenSSL.

Обратите внимание, что ошибка в фильтре потока zlib.deflate, исправленная в PHP версии 5.2.6 и новее, может вызвать усечение gzip и bzip-сжатых phar-архивов.

Если PHP 5.3 собран с опцией --enable-zend-multibyte, то phar будет зависить от ini-опции detect_unicode.


Установка

Расширение Phar поставляется с PHP, начиная с версии PHP 5.3.0, и по умолчанию включено. Для отключения поддержки Phar, используйте --disable-phar .

Для предыдущих версий PHP это расширение может быть установлено из репозитория PECL. Более подробные сведения и история версий доступны на » странице Phar в репозитории PECL.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации файловой системы и потоков
Имя | По умолчанию | Место изменения | Список изменений
phar.readonly | "1" | PHP_INI_ALL |
phar.require_hash | "1" | PHP_INI_ALL |
phar.extract_list | "" | PHP_INI_ALL | Доступно с phar 1.1.0 и до 1.2.3, удалено в 2.0.0.
phar.cache_list | "" | PHP_INI_SYSTEM | Доступно с phar 2.0.0.

Краткое разъяснение конфигурационных директив.

phar.readonly boolean

Этот параметр отключает поддержку создания или модификации Phar-архивов с помощью потока phar и записи объектов Phar на диск. Этот параметр всегда должен быть включен на рабочих машинах, поскольку поддержка записи расширением phar позволила бы простое создание, основанных на PHP, вирусов в случае присутствия других уязвимостей в системе общей безопасности.

Замечание:

Этот параметр может быть отключен в php.ini только исходя из соображений безопасности. Если параметр phar.readonly отключен в php.ini, пользователь может включить phar.readonly в скрипте или отключить его позже. Если параметр phar.readonly включен в php.ini, скрипт может безвредно "повторно включить" переменную INI, но не может отключить ее.

phar.require_hash boolean

Этот параметр сделает обязательной какую-либо подпись (в настоящий момент поддерживаются MD5, SHA1, SHA256 и SHA512) для всех открываемых Phar-архивов и сделает невозможной обработку любого Phar-архива, не содержащего подпись.

Замечание:

Этот параметр может быть отключен в php.ini только из соображений безопасности. Если параметр phar.require_hash отключен в php.ini, пользователь может включить phar.require_hash в скрипте или отключить его позже. Если параметр phar.require_hash включен в php.ini, скрипт может безвредно "повторно включить" переменную INI, но не может отключить ее.

Этот параметр не влияет на чтение простых tar-файлов при помощи класса PharData.

phar.extract_list string

Этот параметр INI удалён с phar 2.0.0

Позволяет осуществлять разметку с полного пути к phar-архиву или его псевдониму к расположению его распакованных файлов. Формат параметраname=archive,name2=archive2. Такая разметка делает возможным извлечение файлов phar на диск, а также позволяет модулю phar выступать в роли своего рода разметчика по отношению к распакованным файлам. Часто это делается из соображений производительности или является вспомогательным средством при отладке phar.

Пример #1 phar.extract_list usage example

в php.ini:
phar.extract_list = archive=/полный/путь/к/архиву/,arch2=/полный/путь/к/архиву2
<?php
include "phar://archive/content.php";
include "phar://arch2/foo.php";
?>

phar.cache_list string

Этот параметр INI добавлен в phar 2.0.0

Позволяет проводить разметку phar-архивов, для которых необходимо осуществить предварительный разбор в момент старта веб-сервера. Обеспечивает повышение производительности за счёт запуска файлов вне phar-архива со скоростью, очень близкой к той, которая была бы при запуске этих файлов традиционным способом с диска.

Пример #2 phar.cache_list usage example

в php.ini (windows):
phar.cache_list =C:\путь\к\phar1.phar;C:\путь\к\phar2.phar
в php.ini (unix):
phar.cache_list =/путь/к/phar1.phar:/путь/к/phar2.phar


Типы ресурсов

Модуль Phar предоставляет поток phar, который позволяет прозрачно обращаться к файлам внутри phar-архива. Смотрите также описание формата Phar-файла.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы сжатия Phar
Константа | Значение | Описание
Phar::NONE (integer) | 0x00000000 | без сжатия
Phar::COMPRESSED (integer) | 0x0000F000 | битовая маска, которая может быть использована с флагами файла для определения наличия сжатия
Phar::GZ (integer) | 0x00001000 | сжатие zlib (gzip)
Phar::BZ2 (integer) | 0x00002000 | сжатие bzip2
Константы формата файла Phar
Константа | Значение | Описание
Phar::PHAR (integer) | 1 | формат файла phar
Phar::TAR (integer) | 2 | формат файла tar
Phar::ZIP (integer) | 3 | формат файла zip
Константы подписи Phar
Константа | Значение | Описание
Phar::MD5 (integer) | 0x0001 | подпись с помощью алгоритма хеширования md5
Phar::SHA1 (integer) | 0x0002 | подпись с помощью алгоритма хеширования sha1
Phar::SHA256 (integer) | 0x0003 | подпись с помощью алгоритма хеширования sha256 (требуется хеширующее расширение)
Phar::SHA512 (integer) | 0x0004 | подпись с помощью алгоритма хеширования sha512 (требуется хеширующее расширение)
Phar::OPENSSL (integer) | 0x0010 | подпись с помощью пары открытого/закрытого ключей OpenSSL. Это подлинная подпись, использующая асимметричный ключ.
Константы переопределения MIME-типов webPhar
Константа | Значение | Описание
Phar::PHP (integer) | 1 | используется для указания параметру переопределения MIME-типа Phar::webPhar() на то, что расширение должно быть разобрано как файл PHP
Phar::PHPS (integer) | 2 | используется для указания параметра переопределения MIME-типа Phar::webPhar(), в соответствии с которым расширение должно быть разобрано как исходный файл PHP посредством highlight_file()


Использование Phar-архивов

Содержание

  • Использование Phar-архивов: Введение
  • Использование Phar-архивов: обертка потока phar
  • Использование Phar-архивов: классы Phar и PharData


Использование Phar-архивов: Введение

Концептуально Phar-архивы аналогичны JAR-архивам Java, но учитывают нужды и гибкость PHP-приложений. Phar-архив используется для распространения законченного PHP-приложения или библиотеки в виде одного файла. Приложение, имеющее вид Phar-архива, используется в точности так же, как и любое другое PHP-приложение:

php coolapplication.phar

Использование библиотеки, имеющей вид Phar-архива, идентично использованию любой другой PHP-библиотеки:

<?php
include 'coollibrary.phar';
?>

Обертка потока phar представляет собой основу расширения phar, про ее использование подробно написано здесь. Обертка потока phar предоставляет доступ к файлам внутри phar-архива с использованием стандартных файловых функции PHP: fopen(), opendir() и других, которые работают с обычными файлами. Обертка потока phar поддерживает все операции чтения/записи как над файлами, так и над каталогами.

<?php
include 'phar://coollibrary.phar/internal/file.php';
header('Content-type: image/jpeg');
// доступ к phar-архивам может осуществляться по полному пути или с помощью псевдонима
echo file_get_contents('phar:///полный/путь/к/coollibrary.phar/images/wow.jpg');
?>

Класс Phar реализует расширенные возможности по доступу к файлам и по созданию phar-архивов. Использование класса Phar подробно описано здесь.

<?php
try {
    // открыть существующий phar-архив
    $p = new Phar('coollibrary.phar', 0);
    // Phar наследует SPL-класс DirectoryIterator
    foreach (new RecursiveIteratorIterator($p) as $file) {
        // $file является объектом класса PharFileInfo, который наследует SplFileInfo
        echo $file->getFileName() . "\n";
        echo file_get_contents($file->getPathName()) . "\n"; // отображает содержимое;
    }
    if (isset($p['internal/file.php'])) {
        var_dump($p['internal/file.php']->getMetadata());
    }

    // создать новый phar-архив - параметр phar.readonly в php.ini должен быть 0
    // phar.readonly включен по умолчанию из соображений безопасности.
    // На работающих серверах phar-архивы никогда не должны создаваться,
    // а только выполняться.
    if (Phar::canWrite()) {
        $p = new Phar('newphar.tar.phar', 0, 'newphar.tar.phar');
        // создать phar-архив, основанный на tar, сжатый gzip-сжатием (.tar.gz)
        $p = $p->convertToExecutable(Phar::TAR, Phar::GZ);

        // создать транзакцию - в newphar.phar ничего не будет записано
        // до тех пор, пока не будет вызван stopBuffering(), однако для этого требуется временное хранилище
        $p->startBuffering();
        // добавить все файлы в каталоге /путь/к/проекту/project, сохранение в phar-архив с префиксом "project"
        $p->buildFromIterator(new RecursiveIteratorIterator(new RecursiveDirectoryIterator('/путь/к/проекту/project')), '/путь/к/проекту/');

        // добавить новый файл используя ArrayAccess
        $p['file1.txt'] = 'Информация';
        $fp = fopen('hugefile.dat', 'rb');
        // скопировать все данные из потока
        $p['data/hugefile.dat'] = $fp;

        if (Phar::canCompress(Phar::GZ)) {
            $p['data/hugefile.dat']->compress(Phar::GZ);
        }

        $p['images/wow.jpg'] = file_get_contents('images/wow.jpg');
        // любое значение может быть сохранено в качестве метаданных файла
        $p['images/wow.jpg']->setMetadata(array('mime-type' => 'image/jpeg'));
        $p['index.php'] = file_get_contents('index.php');
        $p->setMetadata(array('bootstrap' => 'index.php'));

        // сохранить phar-архив на диск
        $p->stopBuffering();
    }
} catch (Exception $e) {
    echo 'Невозможно открыть Phar: ', $e;
}
?>

Кроме того, проверка содержимого phar-файла может быть осуществлена с помощью любого из поддерживаемых симметричных алгоритмов хеширования (MD5, SHA1, SHA256 и SHA512, если ext/hash включен), а также с помощью подписывания асимметричными открытым/закрытым ключами, используя OpenSSL (добавлено в Phar 2.0.0). Для того чтобы использовать подписывание OpenSSL, вам необходимо сгенерировать пару из открытого и закрытого ключей и установить закрытый ключ для подписывания, используя Phar::setSignatureAlgorithm(). Кроме того, открытый ключ, извлеченный при помощи этого кода:

<?php
$public = openssl_get_publickey(file_get_contents('private.pem'));
$pkey = '';
openssl_pkey_export($public, $pkey);
?>
должен быть сохранен рядом с phar-архивом, для проверки которого он используется. Если phar-архив сохранен как /путь/к/моему/архиву/my.phar, то открытый ключ должен быть сохранен как /путь/к/моему/архиву/my.phar.pubkey, иначе phar не сможет проверить подлинность подписи OpenSSL.

Начиная с версии 2.0.0 класс Phar также предоставляет 3 статических метода: Phar::webPhar(), Phar::mungServer() и Phar::interceptFileFuncs(), которые имеют решающее значение для упаковки PHP-приложений, предназначенных для использования на обычных файловых системах и для веб-приложений. Phar::webPhar() реализует фронтальный контроллер, который направляет HTTP-вызовы в правильное место внутри phar-архива. Phar::mungServer() используется для изменения значений массива $_SERVER, что позволяет обмануть приложения, обрабатывающие эти значения. Phar::interceptFileFuncs() инструктирует Phar о необходимости перехвата вызовов fopen(), file_get_contents(), opendir() и прочих функций, основанных на stat (file_exists(), is_readable() и так далее) и перенаправления всех относительных путей внутрь phar-архива.

Например, для упаковки выпуска популярного приложения phpMyAdmin для его использования в качестве phar-архива, требуется только этот простой скрипт, а phpMyAdmin.phar.tar.php будет доступен как обычный файл на вашем веб-сервере после изменения значений user/password:

<?php
@unlink('phpMyAdmin.phar.tar.php');
copy('phpMyAdmin-2.11.3-english.tar.gz', 'phpMyAdmin.phar.tar.php');
$a = new Phar('phpMyAdmin.phar.tar.php');
$a->startBuffering();
$a["phpMyAdmin-2.11.3-english/config.inc.php"] = '<?php
/* Конфигурация сервера */
$i = 0;

/* Сервер localhost (config:root) [1] */
$i++;
$cfg[\'Servers\'][$i][\'host\'] = \'localhost\';
$cfg[\'Servers\'][$i][\'extension\'] = \'mysqli\';
$cfg[\'Servers\'][$i][\'connect_type\'] = \'tcp\';
$cfg[\'Servers\'][$i][\'compress\'] = false;
$cfg[\'Servers\'][$i][\'auth_type\'] = \'config\';
$cfg[\'Servers\'][$i][\'user\'] = \'root\';
$cfg[\'Servers\'][$i][\'password\'] = \'\';

/* Конец конфигурации сервера */
if (strpos(PHP_OS, \'WIN\') !== false) {
    $cfg[\'UploadDir\'] = getcwd();
} else {
    $cfg[\'UploadDir\'] = \'/tmp/pharphpmyadmin\';
    @mkdir(\'/tmp/pharphpmyadmin\');
    @chmod(\'/tmp/pharphpmyadmin\', 0777);
}';
$a->setStub('<?php
Phar::interceptFileFuncs();
Phar::webPhar("phpMyAdmin.phar", "phpMyAdmin-2.11.3-english/index.php");
echo "phpMyAdmin предназначен для выполнения в веб-браузере\n";
exit -1;
__HALT_COMPILER();
');
$a->stopBuffering();
?>


Использование Phar-архивов: обертка потока phar

Обертка потока Phar полностью поддерживает fopen() для чтения и записи (не для добавления), unlink(), stat(), fstat(), fseek(), rename() и потоковые операции каталогов, такие как opendir(), а начиная с версии 2.0.0 rmdir() и mkdir().

Также при помощи контекстов потока можно влиять на сжатие отдельных файлов и пофайловые метаданные в Phar-архиве:

<?php
$context = stream_context_create(array('phar' =>
                                    array('compress' => Phar::GZ)),
                                    array('metadata' => array('user' => 'cellog')));
file_put_contents('phar://my.phar/somefile.php', 0, $context);
?>

Обертка потока phar не работает с файлами, расположенными удаленно, и не может с ними работать, так что ее использование возможно даже когда параметры INI allow_url_fopen и allow_url_include отключены.

Несмотря на наличие возможности создавать phar-архивы с нуля просто используя потоковые операции, лучшим решением будет использование функционала, встроенного в класс Phar. Обертку потока лучше всего использовать только для чтения.


Использование Phar-архивов: классы Phar и PharData

Класс Phar поддерживает чтение и обработку Phar-архивов, а также итерацию через унаследованную функциональность класса RecursiveDirectoryIterator. Благодаря поддержке интерфейса ArrayAccess, доступ к файлам внутри Phar-архива может быть получен, как если бы они были частью ассоциативного массива.

Класс PharData расширяет класс Phar и позволяет создавать и изменять неисполняемые tar- и zip-архивы данных даже в том случае, если параметр phar.readonly=1 в php.ini. Фактически функции PharData::setAlias() и PharData::setStub() отключены, поскольку концепция псевдонима и заглушки является уникальной для исполняемых phar-архивов.

Важно отметить, что при создании Phar-архива в конструктор объекта Phar должен быть передан полный путь. Попытки инициализации объекта Phar с относительными путями потерпят неудачу.

Предположим, что $p — объект Phar, инициализированный, как показано ниже:

<?php
$p = new Phar('/путь/к/myphar.phar', 0, 'myphar.phar');
?>

Пустой Phar-архив будет создан в /путь/к/myphar.phar, или, если файл /path/to/myphar.phar уже существует, он будет открыт повторно. Использование myphar.phar показывает концепцию псевдонима, который может быть использован для указания на /путь/к/myphar.phar в URL'ах, подобно тому, как показано ниже:

<?php
// эти два вызова file_get_contents() равнозначны в том случае, если
// /путь/к/myphar.phar имеет явно заданный псевдоним "myphar.phar"
// в своем манифесте, или если phar был инициализирован созданием объекта Phar,
// как показано в предыдущем примере
$f = file_get_contents('phar:///путь/к/myphar.phar/whatever.txt');
$f = file_get_contents('phar://myphar.phar/whatever.txt');
?>

С только что созданным объектом $p класса Phar возможно следующее:

  • $a = $p['file.php'] создаст объект класса PharFileInfo, который будет ссылаться на содержимое phar://myphar.phar/file.php
  • $p['file.php'] = $v создаст новый файл (phar://myphar.phar/file.php) или перезапишет существующий внутри myphar.phar. $v может быть строкой или указателем на открытый файл. В последнем случае для создания нового файла будет использовано всё содержимое открытого файла. Обратите внимание, что функционально эквивалентным этому будет вызов $p->addFromString('file.php', $v). Также имеется возможность добавления содержимого файла при помощи $p->addFile('/path/to/file.php', 'file.php'). Наконец, пустой каталог может быть создан при помощи $p->addEmptyDir('empty').
  • isset($p['file.php']) может быть использовано для определения существования файла phar://myphar.phar/file.php внутри myphar.phar.
  • unset($p['file.php']) удаляет файл phar://myphar.phar/file.php из myphar.phar.

Кроме того, использование объекта Phar является единственным способом получить доступ к метаданным архива (через Phar::getMetadata()) и единственным способом установить или получить заглушку Phar-архива через Phar::getStub() и Phar::setStub(). К тому же, работать со сжатием целого Phar-архива можно только используя класс Phar.

Полный перечень функционала объекта Phar задокументирован ниже.

Класс PharFileInfo расширяет класс SplFileInfo и добавляет несколько методов для работы с деталями, присущими файлам, которые содержатся в Phar-архиве, такими как работа со сжатием и метаданными.


  • « Использование Phar-архивов: классы Phar и PharData
  • Создание Phar-архивов: Введение »
  • PHP Manual
  • Phar
  • Создание Phar-архивов

Создание Phar-архивов

Содержание

  • Создание Phar-архивов: Введение


Создание Phar-архивов: Введение

Должно быть написано в ближайшем будущем. Перед чтением этого обязательно прочитайте Как использовать Phar-архивы.

Отличным началом будет чтение про Phar::buildFromIterator() и об особенностях выбора доступного для архивов формата файла. Хорошее понимание того, что из себя представляет заглушка (stub) и что она имеет решающее значение для создания phar-архива, и поэтому Phar::setStub() и Phar::createDefaultStub() также будут хорошей отправкой точкой. Если вы распространяете веб-приложение, ключевыми будут знания о Phar::webPhar() и связанном с ним методе Phar::mungServer(). Любое приложение, которое обращается к своим собственным файлам, должно учитывать возможность использования Phar::interceptFileFuncs().


Что делает phar phar'ом, а не tar'ом или zip'ом?

Содержание

  • Составные части всех Phar-архивов вне зависимости от формата файла
  • Заглушка Phar-файла
  • Сравнение Phar, Tar и Zip
  • Phar-архивы, основанные на tar
  • Phar-архивы, основанные на zip
  • Формат файла phar
  • Флаги глобальной битовой карты Phar
  • Описание записи файла в манифесте Phar
  • Формат подписи Phar


Составные части всех Phar-архивов вне зависимости от формата файла

Все Phar-архивы содержат от трех до четырех секций:

  1. заглушка

  2. манифест, описывающий содержимое

  3. содержимое файла

  4. [необязательно] подпись для проверки целостности Phar (только для формата файла phar)


Заглушка Phar-файла

Заглушкой Phar является простой PHP-файл. Минимально возможная заглушка выглядит следующим образом:

<?php __HALT_COMPILER();

Заглушка должна содержать по крайней мере лексему __HALT_COMPILER(); в конце файла. Как правило, заглушка содержит функционал загрузчика, подобно тому, как показано ниже:

<?php
Phar::mapPhar();
include 'phar://myphar.phar/index.php';
__HALT_COMPILER();

На содержимое заглушки Phar не налагаются ограничения, за исключением того, что она должна завершаться лексемой __HALT_COMPILER();. Закрывающий тег PHP

?>
может быть включен или опущен, но должно быть не более одного пробела между ; и закрывающим тегом
?>
, иначе расширение phar не сможет обработать манифест Phar-архива.

В phar-архиве, основанном на tar или zip, заглушка хранится в файле .phar/stub.php. Заглушка по умолчанию для Phar-архива, основанного на phar, содержит приблизительно 7 килобайт кода для извлечения содержимого Phar-архива и его выполнения. Смотрите Phar::createDefaultStub() для более подробной информации.

В phar-архиве, основанном на tar или zip, псевдоним phar хранится в файле .phar/alias.txt в виде простого текста.


Сравнение Phar, Tar и Zip

Что хорошего и плохого в трех поддерживаемых форматах файла в расширении phar? В этой таблице предпринята попытка решить этот вопрос.

Матрица функционала: Phar против Tar против Zip
Функционал | Phar | Tar | Zip
Стандартный формат файла | Нет | Да | Да
Возможно выполнение без модуля Phar [1] | Да | Нет | Нет
Пофайловое сжатие | Да | Нет | Да
Сжатие всего архива | Да | Да | Нет
Проверка подписи всего архива | Да | Да | Да (PHP 5.3.1+)
Поддержка веб-приложений | Да | Да | Да
Пофайловые метаданные | Да | Да | Да
Метаданные всего архива | Да | Да | Да
Создание/изменение архива [2] | Да | Да | Да
Полная поддержка всех функций - оберток потока | Да | Да | Да
Может быть создан/изменен, даже если phar.readonly=1 [3] | Нет | Да | Да

Подсказка

[1] Без расширения Phar PHP может получить прямой доступ к содержимому Phar-архива только в том случае, если в нём используется заглушка, которая извлекает содержимое phar-архива. Заглушка, созданная при помощи Phar::createDefaultStub(), распаковывает phar-архив и запускает его содержимое из временного каталога в том случае, если не был найден модуль phar.

Подсказка

[2] Для доступа на запись требуется, чтобы был отключён параметр phar.readonly в php.ini или непосредственно в консоли.

Подсказка

[3] Только архивы tar и zip без .phar в имени файла и без исполняемой заглушки .phar/stub.php могут быть созданы, если phar.readonly=1.


Phar-архивы, основанные на tar

Архивы, основанные на формате файла tar, следуют более современному формату файла USTAR. Конструкция заголовка tar-файла делает их более эффективными для доступа, чем формат файла zip, и почти настолько же эффективными, как файлы формата phar. Имена файлов ограничены 255 байтами, включая полный путь к phar-архиву. Ограничений на количество файлов, содержащихся в phar-архиве, основанном на tar, нет. Эти архивы могут быть полностью сжаты в gzip или bzip2 формате и по-прежнему выполняться модулем Phar.

Для сжатия всего архива используйте Phar::compress(). Для распаковки всего массива используйте Phar::decompress().


Phar-архивы, основанные на zip

Архивы, основанные на формате файла zip, поддерживают некоторые возможности, встроенные в формат файла zip. Пофайловые и относящиеся ко всему архиву метаданные хранятся в файловых комментариях zip и в комментарии всего zip-архива в виде сериализованных строк. Уже существующие zip-комментарии будут успешно считаны в виде строки. Пофайловое сжатие при чтении/записи поддерживается в случае использования zlib-сжатия, а в случае использования bzip2-сжатия поддерживается доступ на чтение. Ограничений на количество файлов, содержащихся в phar-архиве, основанном на zip, нет. Пустые каталоги хранятся в zip-архиве в виде файлов с завершающим слешем как my/directory/.


Формат файла phar

Формат файла phar буквально представляет из себя заглушку/манифест/содержимое/подпись и хранит ключевую информацию о том, что включено в phar-архив в его манифесте.

Манифест Phar — это высокооптимизированный формат, который позволяет указывать параметры сжатия файлов, доступа к файлам и даже определяемые пользователем метаданные, такие как владелец или группа файла. Все значения, превышающие 1 байт, хранятся в порядке байтов от младшего к старшему, за исключением версии API, которая по историческим причинам хранится в виде 3 полубайт в порядке от старшего к младшему.

Все неиспользованные флаги зарезервированы для использования в будущем и не должны быть использованы для хранения пользовательской информации. Используйте возможности пофайловых метаданных для хранения индивидуальной информации об отдельных файлах.

Основной формат файла манифеста Phar-архива выглядит следующим образом:

Формат глобального манифеста Phar
Размер в байтах | Описание
4 байта | Длина манифеста в байтах (предел 1 МБ)
4 байта | Количество файлов в Phar-архиве
2 байта | Версия API манифеста Phar (текущая 1.0.0)
4 байта | Флаги глобальной битовой карты Phar
4 байта | Длина псевдонима Phar
?? | Псевдоним Phar (длина основана на предыдущем значении)
4 байта | Длина метаданных Phar (0 в случае отсутствия)
?? | Сериализованные метаданные Phar, хранящиеся в формате serialize()
по меньшей мере (24 * количество записей) байт | записи для каждого файла


Флаги глобальной битовой карты Phar

Здесь представлены битовые флаги, на настоящий момент распознаваемые расширением Phar для глобальной битовой карты Phar:

Распознаваемые значения битовой карты
Значение | Описание
0x00010000 | Если задано, значит этот Phar содержит проверочную подпись
0x00001000 | Если задано, значит этот Phar содержит по меньшей мере один файл, сжатый при помощи zlib-сжатия.
0x00002000 | Если задано, значит этот Phar содержит по меньшей мере один файл, сжатый при помощи bzip-сжатия.


Описание записи файла в манифесте Phar

Каждый файл в манифесте содержит следующую информацию:

Запись файла в манифесте Phar
Размер в байтах | Описание
4 байта | Длина имени файла в байтах
?? | Имя файла (длина указана в предыдущем поле)
4 байта | Размер распакованного файла в байтах
4 байта | Метка времени Unix файла
4 байта | Размер сжатого файла в байтах
4 байта | Контрольная сумма CRC32 содержимого распакованного файла
4 байта | Флаги битовой карты файла
4 байта | Длина сериализованных метаданных файла (0 в случае отсутствия)
?? | Сериализованные метаданные файла, хранящиеся в формате serialize()

Обратите внимание, что начиная с версии API 1.1.1 пустые каталоги хранятся в виде файлов с завершающим слешем в их имени, как my/directory/

К распознаваемым значениям битовой карты файла относятся:

Распознаваемые значения битовой карты
Значение | Описание
0x000001FF | Эти биты зарезервированы для определения конкретных прав доступа файла. Права доступа используются для fstat() и могут быть использованы для воссоздания требуемых прав доступа при извлечении.
0x00001000 | Если задано, то этот файл сжат при помощи zlib-сжатия.
0x00002000 | Если задано, то этот файл сжат при помощи bzip-сжатия.


Формат подписи Phar

В содержащих подпись phar-архивах подпись всегда присоединена к концу Phar-архива после загрузчика, манифеста и содержимого файлов. В настоящее время поддерживаются два формата подписи: MD5 и SHA1.

Формат подписи
Длина в байтах | Описание
16 или 20 байт | Собственно подпись. 20 байт в случае использования подписи SHA1, 16 байт в случае использования подписи MD5, 32 байта в случае использования подписи SHA256, 64 байта в случае использования подписи SHA512.
4 байта | Флаги подписи. 0x0001 используется для определения подписи MD5, 0x0002 используется для определения подписи SHA1, 0x0004 используется для определения подписи SHA256 и 0x0008 используется для определения подписи SHA512. Поддержка подписей SHA256 и SHA512 была введена начиная с версии API 1.1.0.
4 байта | Магический GBMB используется для определения наличия подписи.


Класс Phar

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Введение

Класс Phar предостовляет высокоуровневый интерфейс для доступа и создания архивов phar.

Обзор классов

Phar extends RecursiveDirectoryIterator implements Countable , ArrayAccess {
/* Наследуемые константы */
const integer FilesystemIterator::CURRENT_AS_PATHNAME = 32 ;
const integer FilesystemIterator::CURRENT_AS_FILEINFO = 0 ;
const integer FilesystemIterator::CURRENT_AS_SELF = 16 ;
const integer FilesystemIterator::CURRENT_MODE_MASK = 240 ;
const integer FilesystemIterator::KEY_AS_PATHNAME = 0 ;
const integer FilesystemIterator::KEY_AS_FILENAME = 256 ;
const integer FilesystemIterator::FOLLOW_SYMLINKS = 512 ;
const integer FilesystemIterator::KEY_MODE_MASK = 3840 ;
const integer FilesystemIterator::NEW_CURRENT_AND_KEY = 256 ;
const integer FilesystemIterator::SKIP_DOTS = 4096 ;
const integer FilesystemIterator::UNIX_PATHS = 8192 ;
/* Методы */
public addEmptyDir ( string $dirname ) : void
public addFile ( string $file [, string $localname ] ) : void
public addFromString ( string $localname , string $contents ) : void
final public static apiVersion ( void ) : string
public buildFromDirectory ( string $base_dir [, string $regex ] ) : array
public buildFromIterator ( Iterator $iter [, string $base_directory ] ) : array
final public static canCompress ([ int $type = 0 ] ) : bool
final public static canWrite ( void ) : bool
public compress ( int $compression [, string $extension ] ) : object
public compressAllFilesBZIP2 ( void ) : bool
public compressAllFilesGZ ( void ) : bool
public compressFiles ( int $compression ) : void
public __construct ( string $fname [, int $flags [, string $alias ]] )
public convertToData ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] ) : PharData
public convertToExecutable ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] ) : Phar
public copy ( string $oldfile , string $newfile ) : bool
public count ( void ) : int
final public static createDefaultStub ([ string $indexfile [, string $webindexfile ]] ) : string
public decompress ([ string $extension ] ) : object
public decompressFiles ( void ) : bool
public delMetadata ( void ) : bool
public delete ( string $entry ) : bool
public extractTo ( string $pathto [, string|array $files [, bool $overwrite = FALSE ]] ) : bool
public getAlias ( void ) : string
public getMetadata ( void ) : mixed
public getModified ( void ) : bool
public getPath ( void ) : string
public getSignature ( void ) : array
public getStub ( void ) : string
final public static getSupportedCompression ( void ) : array
final public static getSupportedSignatures ( void ) : array
public getVersion ( void ) : string
public hasMetadata ( void ) : bool
final public static interceptFileFuncs ( void ) : void
public isBuffering ( void ) : bool
public isCompressed ( void ) : mixed
public isFileFormat ( int $format ) : bool
final public static isValidPharFilename ( string $filename [, bool $executable = TRUE ] ) : bool
public isWritable ( void ) : bool
final public static loadPhar ( string $filename [, string $alias ] ) : bool
final public static mapPhar ([ string $alias [, int $dataoffset = 0 ]] ) : bool
final public static mount ( string $pharpath , string $externalpath ) : void
final public static mungServer ( array $munglist ) : void
public offsetExists ( string $offset ) : bool
public offsetGet ( string $offset ) : int
public offsetSet ( string $offset , string $value ) : void
public offsetUnset ( string $offset ) : bool
final public static running ([ bool $retphar = TRUE ] ) : string
public setAlias ( string $alias ) : bool
public setDefaultStub ([ string $index [, string $webindex ]] ) : bool
public setMetadata ( mixed $metadata ) : void
public setSignatureAlgorithm ( int $sigtype [, string $privatekey ] ) : void
public setStub ( string $stub [, int $len = -1 ] ) : bool
public startBuffering ( void ) : void
public stopBuffering ( void ) : void
public uncompressAllFiles ( void ) : bool
final public static unlinkArchive ( string $archive ) : bool
final public static webPhar ([ string $alias [, string $index = "index.php" [, string $f404 [, array $mimetypes [, callable $rewrites ]]]]] ) : void
}

Содержание

  • Phar::addEmptyDir — Добавляет в phar-архив пустую директорию
  • Phar::addFile — Добавляет в phar-архив файл из файловой системы
  • Phar::addFromString — Добавляет в phar-архив файл из строки
  • Phar::apiVersion — Возвращает версию API
  • Phar::buildFromDirectory — Создает phar-архив из файлов, расположенных внутри директории
  • Phar::buildFromIterator — Создает phar-архив из итератора
  • Phar::canCompress — Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::canWrite — Проверяет, поддерживает ли модуль phar сохранение и создание phar-архивов
  • Phar::compress — Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия
  • Phar::compressAllFilesBZIP2 — Сжимает все файлы в текущем Phar-архиве с помощью Bzip2-сжатия
  • Phar::compressAllFilesGZ — Сжимает все файлы в текущем Phar-архиве с помощью Gzip-сжатия
  • Phar::compressFiles — Сжимает все файлы в текущем Phar-архиве
  • Phar::__construct — Создает объект Phar-архива
  • Phar::convertToData — Конвертирует phar-архив в неисполняемый tar- или zip-файл
  • Phar::convertToExecutable — Конвертирует phar-архив в другой исполняемый формат файла
  • Phar::copy — Копирует один файл внутри phar-архива в другой новый файл внутри phar-архива
  • Phar::count — Возвращает количество записей (файлов) в Phar-архиве
  • Phar::createDefaultStub — Создать заглушку в формате phar-архива
  • Phar::decompress — Распаковывает весь Phar-архив
  • Phar::decompressFiles — Распаковывает все файлы в текущем Phar-архиве
  • Phar::delMetadata — Удалить глобальные метаданные в архиве phar
  • Phar::delete — Удаляет файл внутри phar-архива
  • Phar::extractTo — Извлечь содержимое phar-архива в директорию
  • Phar::getAlias — Получить псевдоним для Phar
  • Phar::getMetadata — Извлечь метаданные phar-архива
  • Phar::getModified — Определить, изменялся phar-архив
  • Phar::getPath — Получить реальный путь к Phar-архиву на диске
  • Phar::getSignature — Получить MD5/SHA1/SHA256/SHA512/OpenSSL подпись Phar-архива
  • Phar::getStub — Получить загрузчик PHP или загрузчик заглушки Phar-архива
  • Phar::getSupportedCompression — Возвращает массив поддерживаемых алгоритмов сжатия
  • Phar::getSupportedSignatures — Получить массив поддерживаемых алгоритмов подписи архива
  • Phar::getVersion — Получить версию Phar-архива
  • Phar::hasMetadata — Проверить, содержит ли phar-архив глобальные метаданные
  • Phar::interceptFileFuncs — Указывает phar перехватывать fopen, file_get_contents, opendir и все stat-функции
  • Phar::isBuffering — Проверить, будут ли операции с Phar-архивом буферизованы или записаны напрямую на диск
  • Phar::isCompressed — Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::isFileFormat — Проверить, что phar-архив имеет заданный формат (tar/phar/zip)
  • Phar::isValidPharFilename — Проверяет, что заданное имя файла является корректным именем phar-архива
  • Phar::isWritable — Проверяет, можно ли модифицировать phar-архив
  • Phar::loadPhar — Загрузить phar-архив с псевдонимом
  • Phar::mapPhar — Прочитать текущий запущенный phar-архив и зарегистрировать его манифест
  • Phar::mount — Монтирование внешнего путь или файла к виртуальному пути в phar-архиве
  • Phar::mungServer — Определить список до четырех $_SERVER-переменных, которые должны быть изменены для запуска
  • Phar::offsetExists — Определить, есть ли файл в архиве
  • Phar::offsetGet — Получить объект PharFileInfo для конкретного файла
  • Phar::offsetSet — Изменение содержимого файла
  • Phar::offsetUnset — Удалить файл из phar-архива
  • Phar::running — Получить полный путь на диске, либо полный URL запущенного Phar-архива
  • Phar::setAlias — Установить псевдоним для Phar-архива
  • Phar::setDefaultStub — Установить загрузчик PHP или начальную заглушку Phar-архива в загрузчик по умолчанию
  • Phar::setMetadata — Установить метаданные phar-архива
  • Phar::setSignatureAlgorithm — Установить алгоритм подписания phar-архива и применение его
  • Phar::setStub — Установить загрузчик или загрузочную заглушку в Phar-архив
  • Phar::startBuffering — Запускает буферизацию операций записи, отключая запись изменений Phar-архива на диск
  • Phar::stopBuffering — Останавливает буферизацию и записывает все изменения на диск
  • Phar::uncompressAllFiles — Распаковывает все файлы в текущем Phar-архиве
  • Phar::unlinkArchive — Полностью удалить архив из памяти и с диска
  • Phar::webPhar — mapPhar для phar-архивов на базе веб. Контроллер фронтенда для веб-приложений


Добавляет в phar-архив пустую директорию

  • « Phar
  • Phar::addFile »
  • PHP Manual
  • Phar
  • Добавляет в phar-архив пустую директорию

Phar::addEmptyDir

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::addEmptyDir — Добавляет в phar-архив пустую директорию

Описание

public Phar::addEmptyDir ( string $dirname ) : void

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

С помощью этого метода создаётся пустая директория, путь к которой указан в dirname. Этот метод аналогичен ZipArchive::addEmptyDir().

Список параметров

dirname

Имя пустого каталога, который должен быть создан в phar-архиве.

Возвращаемые значения

Нет возвращаемого значения, в случае ошибки выбрасывается исключение.

Примеры

Пример #1 Пример использования Phar::addEmptyDir()

<?php
try {
    $a = new Phar('/путь/к/phar.phar');

    $a->addEmptyDir('/полный/путь/к/файлу');
    // показывает, как хранится этот файл
    $b = $a['полный/путь/к/файлу']->isDir();
} catch (Exception $e) {
    // обработка ошибок
}
?>

Смотрите также

  • PharData::addEmptyDir() - Добавить пустую директорию в tar/zip-архив
  • Phar::addFile() - Добавляет в phar-архив файл из файловой системы
  • Phar::addFromString() - Добавляет в phar-архив файл из строки


Добавляет в phar-архив файл из файловой системы

  • « Phar::addEmptyDir
  • Phar::addFromString »
  • PHP Manual
  • Phar
  • Добавляет в phar-архив файл из файловой системы

Phar::addFile

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::addFile — Добавляет в phar-архив файл из файловой системы

Описание

public Phar::addFile ( string $file [, string $localname ] ) : void

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

С помощью этого метода в phar-архив может быть добавлен любой файл или содержимое, доступное по URL. Если указан необязательный второй параметр localname, то файл будет сохранен в архиве с таким именем, в ином случае в качестве пути для сохранения внутри архива будет использован параметр file. При добавлении содержимого, доступного по URL, параметр localname должен быть указан, иначе будет выброшено исключение. Этот метод аналогичен ZipArchive::addFile().

Список параметров

file

Полный или относительный путь к файлу в файловой системе, который должен быть добавлен в phar-архив.

localname

Путь, по которому файл будет сохранен в архиве.

Возвращаемые значения

Нет возвращаемого значения, в случае ошибки выбрасывается исключение.

Примеры

Пример #1 Пример использования Phar::addFile()

<?php
try {
    $a = new Phar('/путь/к/phar.phar');

    $a->addFile('/полный/путь/к/файлу');
    // показывает, как хранится этот файл
    $b = $a['полный/путь/к/файлу']->getContent();

    $a->addFile('/полный/путь/к/файлу', 'моя_папка/file.txt');
    $c = $a['моя_папка/file.txt']->getContent();

    // показывает использоваие URL
    $a->addFile('http://www.example.com', 'example.html');
} catch (Exception $e) {
    // обработка ошибок
}
?>

Смотрите также

  • Phar::offsetSet() - Изменение содержимого файла
  • PharData::addFile() - Добавить существующие файлы к tar/zip-архиву
  • Phar::addFromString() - Добавляет в phar-архив файл из строки
  • Phar::addEmptyDir() - Добавляет в phar-архив пустую директорию


Добавляет в phar-архив файл из строки

  • « Phar::addFile
  • Phar::apiVersion »
  • PHP Manual
  • Phar
  • Добавляет в phar-архив файл из строки

Phar::addFromString

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::addFromString — Добавляет в phar-архив файл из строки

Описание

public Phar::addFromString ( string $localname , string $contents ) : void

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

С помощью этого метода в phar-архив может быть добавлена любая строка. Файл будет сохранен в архиве под именем, указанным в параметре localname. Этот метод аналогичен ZipArchive::addFromString().

Список параметров

localname

Путь, по которому файл будет сохранен в архиве.

contents

Содержимое файла для сохранения.

Возвращаемые значения

Нет возвращаемого значения, в случае ошибки выбрасывается исключение.

Примеры

Пример #1 Пример использования Phar::addFromString()

<?php
try {
    $a = new Phar('/путь/к/phar.phar');

    $a->addFromString('путь/к/file.txt', 'мой простой файл');
    $b = $a['путь/к/file.txt']->getContent();

    // для добавления содержимого из дескриптора потока для больших файлов используйте offsetSet()
    $c = fopen('/путь/к/hugefile.bin');
    $a['largefile.bin'] = $c;
    fclose($c);
} catch (Exception $e) {
    // обработка ошибок
}
?>

Смотрите также

  • Phar::offsetSet() - Изменение содержимого файла
  • PharData::addFromString() - Создать файл с заданным содержимым в tar/zip-архиве
  • Phar::addFile() - Добавляет в phar-архив файл из файловой системы
  • Phar::addEmptyDir() - Добавляет в phar-архив пустую директорию


Возвращает версию API

  • « Phar::addFromString
  • Phar::buildFromDirectory »
  • PHP Manual
  • Phar
  • Возвращает версию API

Phar::apiVersion

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::apiVersion — Возвращает версию API

Описание

final public static Phar::apiVersion ( void ) : string

Возвращает версию API формата phar-файла, которая будет использована для создания архивов. Модуль Phar поддерживает чтение начиная с версии API 1.0.0. Для использования хешей SHA-256 и SHA-512 требуется версия API 1.1.0, а для хранения пустых директорий требуется версия API 1.1.1.

Список параметров

Возвращаемые значения

Строка версии API, как в "1.0.0".

Примеры

Пример #1 Пример использования Phar::apiVersion()

<?php
echo Phar::apiVersion();
?>

Результат выполнения данного примера:

1.1.1


Создает phar-архив из файлов, расположенных внутри директории

  • « Phar::apiVersion
  • Phar::buildFromIterator »
  • PHP Manual
  • Phar
  • Создает phar-архив из файлов, расположенных внутри директории

Phar::buildFromDirectory

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::buildFromDirectory — Создает phar-архив из файлов, расположенных внутри директории

Описание

public Phar::buildFromDirectory ( string $base_dir [, string $regex ] ) : array

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Заполняет phar-архив содержимым директории. Необязательный второй параметр является регулярным выражением (PCRE) и используется для исключения файлов. Любой файл, чье имя соответствует регулярному выражению, будет включен, все остальные будут исключены. Для более детализированного контроля используйте Phar::buildFromIterator().

Список параметров

base_dir

Полный или абсолютный путь к директории, все файлы которой должны быть добавлены в архив.

regex

Необязательное регулярное выражение (PCRE), которое используется для фильтрации списка файлов. В архив будут включены только те файлы, пути к которым соответствуют регулярному выражению.

Возвращаемые значения

Phar::buildFromDirectory() возвращает ассоциативный массив, в котором отражено соответствие пути к файлу внутри архива к пути к файлу в файловой системе.

Ошибки

Этот метод выбрасывает исключение BadMethodCallException в том случае, если не удалось создать экземпляр итератора внутренних директорий. Исключение PharException выбрасывается в случае ошибок сохранения phar-архива.

Примеры

Пример #1 Пример использования Phar::buildFromDirectory()

<?php
// создать с псевдонимом "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
// добавить все файлы директории project в файл project.phar
$phar->buildFromDirectory(dirname(__FILE__) . '/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));

$phar2 = new Phar('project2.phar', 0, 'project2.phar');
// добавить все файлы директории project в файл project2.phar, включая только php-файлы
$phar2->buildFromDirectory(dirname(__FILE__) . '/project', '/\.php$/');
$phar2->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Смотрите также

  • Phar::buildFromIterator() - Создает phar-архив из итератора


Создает phar-архив из итератора

  • « Phar::buildFromDirectory
  • Phar::canCompress »
  • PHP Manual
  • Phar
  • Создает phar-архив из итератора

Phar::buildFromIterator

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::buildFromIterator — Создает phar-архив из итератора

Описание

public Phar::buildFromIterator ( Iterator $iter [, string $base_directory ] ) : array

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Заполняет phar-архив из итератора. Поддерживаются итераторы двух типов: такие, в которых отображается соответствие имени файла внутри phar-архива к файлу на диске, и такие как DirectoryIterator, которые возвращают объекты SplFileInfo. Для итераторов, которые возвращают объекты SplFileInfo, второй параметр является обязательным.

Список параметров

iter

Любой итератор, который или ассоциативно отображает пукти к файлам внутри phar-архива к файлам на диске, или возвращает объекты SplFileInfo.

base_directory

Для итераторов, возвращающих объекты SplFileInfo, — часть полного пути каждого файла, которая должна быть удалена во время его добавления в phar-архив.

Возвращаемые значения

Phar::buildFromIterator() возвращает ассоциативный массив, в котором отображаются соответствия пути к файлу внутри архива к пути к файлу в файловой системе.

Примеры

Пример #1 Пример использования Phar::buildFromIterator() с объектами SplFileInfo

Для большинства phar-архивов, архив будет отражать фактическую структуру директории, и второй тип итератора будет наиболее полезным. Например, он будет полезным для создания phar-архива, содержащего файлы со структурой директорий как в этом примере:

/путь/к/проекту/
                 config/
                        dist.xml
                        debug.xml
                 lib/
                     file1.php
                     file2.php
                 src/
                     processthing.php
                 www/
                     index.php
                 cli/
                     index.php

Для добавления этих файлов в phar-архив "project.phar" может быть использован следующий код:

<?php
// создать с псевдонимом "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new RecursiveDirectoryIterator('/путь/к/проекту')),
    '/путь/к/проекту');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

После этого файл project.phar может быть использован немедленно. Такие значения как сжатие и метаданные не устанавливаются методом Phar::buildFromIterator() и могут быть установлены после создания phar-архива.

В качестве интересного замечания можно отметить, что Phar::buildFromIterator() также может быть использован для копирования содержимого существующего phar-архива, поскольку класс Phar является потомком DirectoryIterator:

<?php
// создать с псевдонимом "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new Phar('/путь/к/anotherphar.phar')),
    'phar:///путь/к/anotherphar.phar/путь/к/проекту');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Пример #2 Пример использования Phar::buildFromIterator() с другими типами итераторов

Второй тип предполагает использование любого итератора, возвращаемые значения которого отображают соответствие имени файла внутри phar-архива к файлу на диске, как в случае с ArrayIterator:

<?php
// создать с псевдонимом "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$phar->buildFromIterator(
    new ArrayIterator(
     array(
        'путь/внутри/архива/file.php' => dirname(__FILE__) . '/somefile.php',
        'друго/путь/внутри/архива/file.jpg' => fopen('/путь/к/bigfile.jpg', 'rb'),
     )));
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Ошибки

Этот метод выбрасывает исключение UnexpectedValueException, когда итератор возвращает некорректные значения, такие как целочисленный ключ вместо строки. Исключение BadMethodCallException будет брошено, когда итератор, основанный на SplFileInfo, используется без параметра base_directory. Исключение PharException выбрасывается в случае ошибок сохранения phar-архива.

Смотрите также

  • Phar::buildFromDirectory() - Создает phar-архив из файлов, расположенных внутри директории


Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2

  • « Phar::buildFromIterator
  • Phar::canWrite »
  • PHP Manual
  • Phar
  • Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2

Phar::canCompress

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::canCompress — Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2

Описание

final public static Phar::canCompress ([ int $type = 0 ] ) : bool

Этот метод следует использовать для проверки поддержки сжатия до загрузки phar-архива, содержащего сжатые файлы.

Список параметров

type

Может быть использована одна из констант Phar::GZ или Phar::BZ2 для проверки возможности сжатия по алгоритму zlib или bzip2 соответственно.

Возвращаемые значения

TRUE, если сжатие/распаковка доступны, FALSE, в противном случае.

Примеры

Пример #1 Пример использования Phar::canCompress()

<?php
if (Phar::canCompress()) {
    echo file_get_contents('phar://compressedphar.phar/internal/file.txt');
} else {
    echo 'сжатие недоступно';
}
?>

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::compress() - Сжать текущий файл с помощью zlib или bzip2
  • PharFileInfo::decompress() - Расжимает текущий файл
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::compressFiles() - Сжимает все файлы в текущем Phar-архиве
  • Phar::decompressFiles() - Распаковывает все файлы в текущем Phar-архиве
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
  • Phar::convertToExecutable() - Конвертирует phar-архив в другой исполняемый формат файла
  • Phar::convertToData() - Конвертирует phar-архив в неисполняемый tar- или zip-файл


Проверяет, поддерживает ли модуль phar сохранение и создание phar-архивов

  • « Phar::canCompress
  • Phar::compress »
  • PHP Manual
  • Phar
  • Проверяет, поддерживает ли модуль phar сохранение и создание phar-архивов

Phar::canWrite

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::canWrite — Проверяет, поддерживает ли модуль phar сохранение и создание phar-архивов

Описание

final public static Phar::canWrite ( void ) : bool

Этот статический метод определяет, был ли отключен доступ на запись в системном файле php.ini с ипользованием переменной phar.readonly.

Список параметров

Возвращаемые значения

TRUE, если доступ на запись включен, FALSE в противном случае.

Примеры

Пример #1 Пример использования Phar::canWrite()

<?php
if (Phar::canWrite()) {
    file_put_contents('phar://myphar.phar/file.txt', 'всем привет');
}
?>

Смотрите также

  • phar.readonly
  • Phar::isWritable() - Проверяет, можно ли модифицировать phar-архив


Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия

  • « Phar::canWrite
  • Phar::compressAllFilesBZIP2 »
  • PHP Manual
  • Phar
  • Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия

Phar::compress

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::compress — Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия

Описание

public Phar::compress ( int $compression [, string $extension ] ) : object

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

В случае использования с phar-архивами, основанными на tar или phar, этот метод сжимает весь архив, используя gzip- или bzip2-сжатие. Полученный файл может быть обработан одной из команд gunzip/bunzip; к нему также можно получить прямой доступ, используя модуль Phar.

В случае использования с phar-архивами, основанными на zip, вызов этого метода потерпит неудачу и будет брошено исключение. Для сжатия по алгоритму gzip должен быть включен модуль zlib. Для сжатия по алгоритму bzip2 должен быть включен модуль bzip2. Как и в случае с другим функционалом, модифицирующим содержание phar-архива, для успешной работы данного метода необходимо, чтобы INI-переменная phar.readonly была отключена.

Кроме того, этот метод автоматически переименовывает архив, добавляя .gz, .bz2 или удаляя расширение, если в качестве первого параметра был передан Phar::NONE, сообщающий о необходимости распаковки. В качестве альтернативы расширение файла может быть задано с помощью второго параметра.

Список параметров

compression

Сжатие должно быть определено одной из констант: Phar::GZ, Phar::BZ2 для использования соответствующего алгоритма сжатия, или Phar::NONE для распаковки.

extension

Для сжатия phar-архивов по умолчанию используется расширение .phar.gz или .phar.bz2, а для сжатия tar-архивов — .phar.tar.gz или .phar.tar.bz2. В случае распаковки, расширениями по умолчанию являются .phar и .phar.tar.

Возвращаемые значения

Возвращает объект Phar.

Ошибки

Выбрасывает исключение BadMethodCallException, если INI-переменная phar.readonly включена, модуль zlib не доступен или модуль bzip2 не включен.

Примеры

Пример #1 Пример использования Phar::compress()

<?php
$p = new Phar('/путь/к/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'привет';
$p['myfile2.txt'] = 'привет';
$p1 = $p->compress(Phar::GZ); // копирует в /путь/к/my.phar.gz
$p2 = $p->compress(Phar::BZ2); // копирует в /путь/к/my.phar.bz2
$p3 = $p2->compress(Phar::NONE); // исключение: /путь/к/my.phar уже существует
?>

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::compress() - Сжать текущий файл с помощью zlib или bzip2
  • PharFileInfo::decompress() - Расжимает текущий файл
  • PharData::compress() - Сжимает весь архив tar/zip, используя сжатие Gzip или Bzip2
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::decompress() - Распаковывает весь Phar-архив
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
  • Phar::compressFiles() - Сжимает все файлы в текущем Phar-архиве
  • Phar::decompressFiles() - Распаковывает все файлы в текущем Phar-архиве


Сжимает все файлы в текущем Phar-архиве с помощью Bzip2-сжатия

  • « Phar::compress
  • Phar::compressAllFilesGZ »
  • PHP Manual
  • Phar
  • Сжимает все файлы в текущем Phar-архиве с помощью Bzip2-сжатия

Phar::compressAllFilesBZIP2

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::compressAllFilesBZIP2 — Сжимает все файлы в текущем Phar-архиве с помощью Bzip2-сжатия

Описание

public Phar::compressAllFilesBZIP2 ( void ) : bool

Замечание:

Этот метод был
удален из расширения phar, начиная с версии 2.0.0. Альтернативные реализации возможны с помощью функций
Phar::compress(),
Phar::decompress(), Phar::compressFiles() и
Phar::decompressFiles().

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Этот метод сжимает все файлы в Phar-архиве с ипользованием bzip2-сжатия. Для работы этой функции должен быть включен модуль bzip2. Кроме того, если какие-либо файлы в архиве уже сжаты с использованием gzip-сжатия, то для их распаковки перед повторным bzip2-сжатием должен быть включен модуль zlib. Как и в случае с другим функционалом, модифицирующим содержание phar-архива, для успешной работы данного метода необходимо, чтобы INI-переменная phar.readonly была отключена.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Выбрасывает исключение BadMethodCallException, если INI-переменная phar.readonly включена, модуль bzip2 не доступен или если какие-либо файлы внутри архива были сжаты с использованием gzip-сжатия и модуль zlib не включен.

Примеры

Пример #1 Пример использования Phar::compressAllFilesBZIP2()

<?php
$p = new Phar('/путь/к/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'привет';
$p['myfile2.txt'] = 'привет';
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
$p->compressAllFilesBZIP2();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
?>

Результат выполнения данного примера:

string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)
string(10) "myfile.txt"
bool(true)
bool(true)
bool(false)
string(11) "myfile2.txt"
bool(true)
bool(true)
bool(false)

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressedBZIP2() - Определить, сжат ли файл с помощью bzip2
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::isCompressedGZ() - Определить, сжат ли файл с помощью gz
  • PharFileInfo::setCompressedBZIP2() - Сжатие файла в phar-архиве с использованием Bzip2
  • PharFileInfo::setUncompressed() - Расжать файл внутри phar-архива, если он сжат
  • PharFileInfo::setCompressedGZ() - Сжатие файла в phar-архиве с использованием gz
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::compressAllFilesGZ() - Сжимает все файлы в текущем Phar-архиве с помощью Gzip-сжатия
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
  • Phar::uncompressAllFiles() - Распаковывает все файлы в текущем Phar-архиве


Сжимает все файлы в текущем Phar-архиве с помощью Gzip-сжатия

  • « Phar::compressAllFilesBZIP2
  • Phar::compressFiles »
  • PHP Manual
  • Phar
  • Сжимает все файлы в текущем Phar-архиве с помощью Gzip-сжатия

Phar::compressAllFilesGZ

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::compressAllFilesGZ — Сжимает все файлы в текущем Phar-архиве с помощью Gzip-сжатия

Описание

public Phar::compressAllFilesGZ ( void ) : bool

Замечание:

Этот метод был
удален из расширения phar, начиная с версии 2.0.0. Альтернативные реализации возможны с помощью функций
Phar::compress(),
Phar::decompress(), Phar::compressFiles() и
Phar::decompressFiles().

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

В случае использования с phar-архивами, основанными на tar, этот метод сжимает весь архив целиком с помощью gzip-сжатия. Полученный файл может быть обработан с помощью команды gunzip; к нему также можно получить прямой доступ, используя модуль Phar.

В случае использования с phar-архивами, основанными на zip или phar, этот метод сжимает все файлы в Phar-архиве используя gzip-сжатие. Для возможности воспользоваться этой функцией должен быть включен модуль zlib. Кроме того, если какие-либо файлы в архиве уже сжаты с использованием bzip2-сжатия, то для их распаковки перед повторным gzip-сжатием должен быть включен модуль bzip2. Как и в случае с другим функционалом, модифицирующим содержание phar-архива, для успешной работы данного метода необходимо, чтобы INI-переменная phar.readonly была отключена.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Выбрасывает исключение BadMethodCallException, если INI-переменная phar.readonly включена, модуль zlib не доступен или если какие-либо файлы внутри архива были сжаты с использованием bzip2-сжатия и модуль bzip2 не включен.

Примеры

Пример #1 Пример использования Phar::compressAllFilesGZ()

<?php
$p = new Phar('/путь/к/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'привет';
$p['myfile2.txt'] = 'привет';
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
$p->compressAllFilesGZ();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
?>

Результат выполнения данного примера:

string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)
string(10) "myfile.txt"
bool(true)
bool(false)
bool(true)
string(11) "myfile2.txt"
bool(true)
bool(false)
bool(true)

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressedBZIP2() - Определить, сжат ли файл с помощью bzip2
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::isCompressedGZ() - Определить, сжат ли файл с помощью gz
  • PharFileInfo::setCompressedBZIP2() - Сжатие файла в phar-архиве с использованием Bzip2
  • PharFileInfo::setUncompressed() - Расжать файл внутри phar-архива, если он сжат
  • PharFileInfo::setCompressedGZ() - Сжатие файла в phar-архиве с использованием gz
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::compressAllFilesBZIP2() - Сжимает все файлы в текущем Phar-архиве с помощью Bzip2-сжатия
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
  • Phar::uncompressAllFiles() - Распаковывает все файлы в текущем Phar-архиве


Сжимает все файлы в текущем Phar-архиве

  • « Phar::compressAllFilesGZ
  • Phar::__construct »
  • PHP Manual
  • Phar
  • Сжимает все файлы в текущем Phar-архиве

Phar::compressFiles

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::compressFiles — Сжимает все файлы в текущем Phar-архиве

Описание

public Phar::compressFiles ( int $compression ) : void

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

В случае использования с phar-архивами, основанными на tar, этот метод выбрасывает исключение BadMethodCallException, поскольку сжатие отдельных файлов внутри tar-архива не поддерживается данным форматом. Для сжатия целого phar-архива, основанного на tar, используйте Phar::compress().

В случае использования с phar-архивами, основанными на zip или phar, этот метод сжимает все файлы в Phar-архиве используя указанный алгоритм сжатия. Для возможности воспользоваться данным методом должен быть включен модуль zlib или bzip2. Кроме того, если какие-либо файлы в архиве уже сжаты с использованием bzip2/zlib-сжатия, то для их распаковки перед повторным сжатием должен быть включен соответствующий модуль. Как и в случае с другим функционалом, модифицирующим содержание phar-архива, для успешной работы данного метода необходимо, чтобы INI-переменная phar.readonly была отключена.

Список параметров

compression

Сжатие должно быть определено одной из констант: Phar::GZ, Phar::BZ2 для использования использования соответствующего алгоритма сжатия, или Phar::NONE для распаковки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение BadMethodCallException, если INI-переменная phar.readonly включена, модуль zlib не доступен или если какие-либо файлы внутри архива были сжаты при помощи bzip2-сжатия и модуль bzip2 не включен.

Примеры

Пример #1 Пример использования Phar::compressFiles()

<?php
$p = new Phar('/путь/к/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'привет';
$p['myfile2.txt'] = 'привет';
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
?>

Результат выполнения данного примера:

string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)
string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::compress() - Сжать текущий файл с помощью zlib или bzip2
  • PharFileInfo::decompress() - Расжимает текущий файл
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::decompressFiles() - Распаковывает все файлы в текущем Phar-архиве
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
  • Phar::compress() - Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия
  • Phar::decompress() - Распаковывает весь Phar-архив


Создает объект Phar-архива

  • « Phar::compressFiles
  • Phar::convertToData »
  • PHP Manual
  • Phar
  • Создает объект Phar-архива

Phar::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::__construct — Создает объект Phar-архива

Описание

public Phar::__construct ( string $fname [, int $flags [, string $alias ]] )

Список параметров

fname

Путь к уже существующему Phar-архиву или к архиву, который должен быть создан. Расширение в имени файла должно содержать .phar.

flags

Флаги, которые должны быть переданы в родительский класс RecursiveDirectoryIterator.

alias

Псевдоним, с помощью которого должны производиться ссылки на этот Phar-архив в вызовах, связанных с функционалом потоков.

Ошибки

Выбрасывает исключение BadMethodCallException, если был вызван дважды, и исключение UnexpectedValueException, если phar-архив не может быть открыт.

Примеры

Пример #1 Пример использования Phar::__construct()

<?php
try {
    $p = new Phar('/путь/к/my.phar', FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::KEY_AS_FILENAME,
                  'my.phar');
} catch (UnexpectedValueException $e) {
    die('Не удалось открыть my.phar');
} catch (BadMethodCallException $e) {
    echo 'Технически это не может произойти';
}
// это теперь работает
echo file_get_contents('phar://my.phar/example.txt');
// и работает так же, как если бы мы ввели
echo file_get_contents('phar:///путь/к/my.phar/example.txt');
?>


Конвертирует phar-архив в неисполняемый tar- или zip-файл

  • « Phar::__construct
  • Phar::convertToExecutable »
  • PHP Manual
  • Phar
  • Конвертирует phar-архив в неисполняемый tar- или zip-файл

Phar::convertToData

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::convertToData — Конвертирует phar-архив в неисполняемый tar- или zip-файл

Описание

public Phar::convertToData ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] ) : PharData

Этот метод используется для конвертирования phar-архив в tar- или zip-файл. Чтобы создать сделать tar или zip неисполняемым, из создаваемого в результате конвертации архива удаляются загрушка и псевдоним phar-архива.

Если не были указаны никакие изменения, то данный метод выбросит исключение BadMethodCallException, если форматом файла архива является phar. В случае использования с архивами в формате tar или zip, данный метод конвертирует архив в неисполняемый архив.

В случае успеха данный метод создает на диске новый архив и возвращает объект PharData. Старый архив не удаляется с диска, это должно быть сделано вручную после завершения процесса.

Список параметров

format

Значением этого параметра должна быть одна из констант: Phar::TAR или Phar::ZIP. Если значение установлено в NULL, то существующий формат файла будет сохранен.

compression

Значением этого параметра должна быть одна из констант: Phar::NONE для отсутствия сжатия всего архива, Phar::GZ для сжатия, основанного на zlib, или Phar::BZ2 для bzip-сжатия.

extension

Этот параметр используется для переопределения расширение файла по умолчанию для сконвертированного архива. Обратите внимание, что .phar не может быть использовано где-либо в имени файла неисполняемого tar- или zip-архива.

В случае конвертации phar-архива, основанного на tar, расширениями по умолчанию являются: .tar, .tar.gz и .tar.bz2, в зависимости от указанного сжатия. Для архивов, основанных на zip, расширением по умолчанию является .zip.

Возвращаемые значения

Данный метод возвращает объект PharData в случае успеха и выбрасывает исключение в случае неудачи.

Ошибки

Данный метод выбрасывает исключение BadMethodCallException в следующих случаях: при невозможности сжатия; если был передан неизвестный алгоритм сжатия; в запрошенном архиве была включена буферизация с помощью Phar::startBuffering() и не была завершена с помощью Phar::stopBuffering(). В случае возникновения каких-либо проблем в процессе создания phar будет выброшено исключение PharException.

Примеры

Пример #1 Пример использования Phar::convertToData()

Использование Phar::convertToData():

<?php
try {
    $tarphar = new Phar('myphar.phar.tar');
    // обратите внимание, что myphar.phar.tar *не* будет удален
    // конверировать архив в неисполняемый tar-формат
    // будет создан myphar.tar
    $tar = $tarphar->convertToData();
    //  конверировать архив в неисполняемый zip-формат файла, будет создан myphar.zip
    $zip = $tarphar->convertToData(Phar::ZIP);
    // будет создан myphar.tbz
    $tgz = $tarphar->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
    // будет создан myphar.phar.tgz
    $phar = $tarphar->convertToData(Phar::PHAR); // будет выброшено исключение
} catch (Exception $e) {
    // обработка ошибок
}
?>

Смотрите также

  • Phar::convertToExecutable() - Конвертирует phar-архив в другой исполняемый формат файла
  • PharData::convertToExecutable() - Конвертация tar/zip-архива с данными в запускаемый phar-архив
  • PharData::convertToData() - Конвертация phar-архива в незапускаемый tar/zip-архив


Конвертирует phar-архив в другой исполняемый формат файла

  • « Phar::convertToData
  • Phar::copy »
  • PHP Manual
  • Phar
  • Конвертирует phar-архив в другой исполняемый формат файла

Phar::convertToExecutable

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::convertToExecutable — Конвертирует phar-архив в другой исполняемый формат файла

Описание

public Phar::convertToExecutable ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] ) : Phar

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Этот метод используется для конвертирования phar-архива в другой формат файла. Например, он может быть использован для создания исполняемого phar-архива, основанного на tar, из исполняемого phar-архива, основанного на zip, или из исполняемого phar-архива с форматом файла phar. Кроме того, данный метод может быть использован для сжатия целого архива, основанного на tar или phar.

Если не были указаны никакие изменения, то данный метод выбросит исключение BadMethodCallException.

В случае успеха данный метод создает на диске новый архив и возвращает объект Phar. Старый архив не удаляется с диска, это должно быть сделано вручную после завершения процесса.

Список параметров

format

Значением этого параметра должна быть одна из констант: Phar::PHAR, Phar::TAR или Phar::ZIP. Если значение установлено в NULL, то существующий формат файла будет сохранен.

compression

Значением этого параметра должна быть одна из констант: Phar::NONE для отсутствия сжатия всего архива, Phar::GZ для сжатия, основанного на zlib, или Phar::BZ2 для bzip-сжатия.

extension

Этот параметр используется для переопределения расширение файла по умолчанию для сконвертированного архива. Обратите внимание, что все phar-архивы, основанные на tar или zip, должны содержать .phar в расширении файла чтобы они могли быть обработаны в качестве phar-архива.

В случае конвертации архива, основанного на phar, расширениями по умолчанию являются .phar, .phar.gz и .phar.bz2, в зависимости от указанного сжатия. В случае конвертации phar-архива, основанного на tar, расширениями по умолчанию являются .phar.tar, .phar.tar.gz и .phar.tar.bz2. Для архивов, основанных на zip, расширением по умолчанию является .zip.

Возвращаемые значения

Данный метод возвращает объект Phar в успешного выполнения и выбрасывает исключение в случае неудачи.

Ошибки

Данный метод выбрасывает исключение BadMethodCallException в следующих случаях: при невозможности сжатия; если был передан неизвестный алгоритм сжатия; в запрошенном архиве была включена буферизация с помощью Phar::startBuffering() и не была завершена с помощью Phar::stopBuffering(). Если поддержка записи отключена, то будет брошено исключение UnexpectedValueException. В случае возникновения каких-либо проблем в процессе создания phar выбрасывается исключение PharException.

Примеры

Пример #1 Пример использования Phar::convertToExecutable()

Использование Phar::convertToExecutable():

<?php
try {
    $tarphar = new Phar('myphar.phar.tar');
    // конвертировать архив в формат phar
    // обратите внимание, что myphar.phar.tar *не* будет удален
    $phar = $tarphar->convertToExecutable(Phar::PHAR); // будет создан myphar.phar
    $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
    // будет создан myphar.phar.tgz
    $compressed = $phar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
    // обработка ошибок
}
?>

Смотрите также

  • Phar::convertToData() - Конвертирует phar-архив в неисполняемый tar- или zip-файл
  • PharData::convertToExecutable() - Конвертация tar/zip-архива с данными в запускаемый phar-архив
  • PharData::convertToData() - Конвертация phar-архива в незапускаемый tar/zip-архив


Копирует один файл внутри phar-архива в другой новый файл внутри phar-архива

  • « Phar::convertToExecutable
  • Phar::count »
  • PHP Manual
  • Phar
  • Копирует один файл внутри phar-архива в другой новый файл внутри phar-архива

Phar::copy

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::copy — Копирует один файл внутри phar-архива в другой новый файл внутри phar-архива

Описание

public Phar::copy ( string $oldfile , string $newfile ) : bool

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Копирует внутренний файл phar-архива в другой новый файл внутри phar-архива. Это объектно-ориентированная альтернатива использованию copy() с оберткой потока phar.

Список параметров

oldfile

newfile

Возвращаемые значения

возвращает TRUE в случае успеха, но безопаснее заключить вызов метода в блок try/catch и считать его успешным, если не было выброшено исключение.

Ошибки

Выбрасывает исключение UnexpectedValueException если: исходный файл не существует, целевой файл уже существует, доступ на запись отключен, открытие какого-либо файла невозможно или чтение исходного файла потерпело неудачу. Если запись изменений в phar не удалась, будет выброшено исключение PharException.

Примеры

Пример #1 Пример использования Phar::copy()

В этом примере показано использование метода Phar::copy() и эквивалентной ему по функциональности обертки потока для решения одной и той же задачи. Основным различием между этими двумя подходами является обработка ошибок. Все методы Phar выбрасывают исключения, тогда как обертка потока использует trigger_error().

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar['a'] = 'привет';
    $phar->copy('a', 'b');
    echo $phar['b']; // будет выведено "привет"
} catch (Exception $e) {
    // обработка ошибок
}

// обертка потока, эквивалентная коду выше.
// в случае ошибки будет вызвано предупреждение E_WARNING, а не исключение
copy('phar://myphar.phar/a', 'phar//myphar.phar/c');
echo file_get_contents('phar://myphar.phar/c'); // будет выведено "привет"
?>


Возвращает количество записей (файлов) в Phar-архиве

  • « Phar::copy
  • Phar::createDefaultStub »
  • PHP Manual
  • Phar
  • Возвращает количество записей (файлов) в Phar-архиве

Phar::count

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::count — Возвращает количество записей (файлов) в Phar-архиве

Описание

public Phar::count ( void ) : int

Список параметров

Возвращаемые значения

Количество файлов, содержащихся в этом phar-архиве, либо 0 (число ноль), если архив пуст.

Примеры

Пример #1 Пример использования Phar::count()

<?php
// убедитесь, что архив не существует
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
} catch (Exception $e) {
    echo 'Не удалось создать phar:', $e;
}
echo 'Новый phar содержит ' . $p->count() . " записей\n";
$p['file.txt'] = 'привет';
echo 'Новый phar содержит ' . $p->count() . " записей\n";
?>

Результат выполнения данного примера:

Новый phar содержит 0 записей
Новый phar содержит 1 записей


Создать заглушку в формате phar-архива

  • « Phar::count
  • Phar::decompress »
  • PHP Manual
  • Phar
  • Создать заглушку в формате phar-архива

Phar::createDefaultStub

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::createDefaultStub — Создать заглушку в формате phar-архива

Описание

final public static Phar::createDefaultStub ([ string $indexfile [, string $webindexfile ]] ) : string

Этот метод создает код заглушку (stub) в специфичном для phar-архива формате и не предназначеный для использования с файловыми архивами на основе tar или zip.

Phar-архивы содержат загрузчик (stub), написанный на PHP, который запускается при запуске архива, когда его подключают через include:

<?php
include 'myphar.phar';
?>
или просто запускают:
php myphar.phar

Этот метод предоставляет простой способ для создания заглушку, который будет отрабатывать при запуске phar-архива. Кроме того, можно указывать разные файлы для запуска phar-архива через веб-сервер и через командрую строку. Заглушка также вызывает Phar::interceptFileFuncs() для простого создания приложений PHP с доступом к файловой системе. Если расширение phar отсутствует, то заглушка распакует phar-архив во временную директорию и запустит приложение оттуда. Функция завершения работы удалит все временные файлы.

Возвращаемые значения

Возвращает текст с кодом заглушку, который позволит Phar-архиву запускаться независимо от того, подключено ли расширение Phar или нет.

Ошибки

Выбросит исключение UnexpectedValueException, если любой из параметров будет длинее 400 байт.

Примеры

Пример #1 Пример использования Phar::createDefaultStub()

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
} catch (Exception $e) {
    // обработка ошибок
}
?>

Смотрите также

  • Phar::setStub() - Установить загрузчик или загрузочную заглушку в Phar-архив
  • Phar::getStub() - Получить загрузчик PHP или загрузчик заглушки Phar-архива


Распаковывает весь Phar-архив

  • « Phar::createDefaultStub
  • Phar::decompressFiles »
  • PHP Manual
  • Phar
  • Распаковывает весь Phar-архив

Phar::decompress

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::decompress — Распаковывает весь Phar-архив

Описание

public Phar::decompress ([ string $extension ] ) : object

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

В случае с phar-архивами, основанными на tar или phar, этот метод распаковывает весь архив.

В случае с phar-архивами, основанными на zip, вызов данного метода потерпит неудачу и будет брошено исключение. Для распаковки архива, сжатого по алгоритму gzip, должен быть включен модуль zlib; для распаковки архива, сжатого по алгоритму bzip2, должен быть включен модуль bzip2. Как и в случае с другим функционалом, модифицирующим содержание phar-архива, для успешной работы данного метода необходимо, чтобы INI-переменная phar.readonly была отключена.

Кроме того, этот метод автоматически меняет расширения файла архива: по умолчанию .phar для phar-архивов и .phar.tar для phar-архивов, основанных на tar. В качестве альтернативы расширение файла может быть задано с помощью второго параметра.

Список параметров

extension

Расширениями распакованного файла по умолчанию являются .phar и .phar.tar. Этот параметр может быть использован для задания другого расширения распакованного файла. Имейте в виду, что все исполняемые phar-архивы должны содержать .phar в имени файла.

Возвращаемые значения

Возвращает объект Phar.

Ошибки

Выбрасывает исключение BadMethodCallException, если INI-переменная phar.readonly включена, модуль zlib не доступен или модуль bzip2 не включен.

Примеры

Пример #1 Пример использования Phar::decompress()

<?php
$p = new Phar('/путь/к/my.phar', 0, 'my.phar.gz');
$p['myfile.txt'] = 'привет';
$p['myfile2.txt'] = 'привет';
$p3 = $p2->decompress(); // создаст /путь/к/my.phar
?>

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::compress() - Сжать текущий файл с помощью zlib или bzip2
  • PharFileInfo::decompress() - Расжимает текущий файл
  • PharData::compress() - Сжимает весь архив tar/zip, используя сжатие Gzip или Bzip2
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::compress() - Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
  • Phar::compressFiles() - Сжимает все файлы в текущем Phar-архиве
  • Phar::decompressFiles() - Распаковывает все файлы в текущем Phar-архиве


Распаковывает все файлы в текущем Phar-архиве

  • « Phar::decompress
  • Phar::delMetadata »
  • PHP Manual
  • Phar
  • Распаковывает все файлы в текущем Phar-архиве

Phar::decompressFiles

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::decompressFiles — Распаковывает все файлы в текущем Phar-архиве

Описание

public Phar::decompressFiles ( void ) : bool

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

В случае использования с phar-архивами, основанными на tar, этот метод выбрасывает исключение BadMethodCallException, поскольку сжатие отдельных файлов внутри tar-архива не поддерживается данным форматом. Для сжатия целого phar-архива, основанного на tar, используйте Phar::compress().

В случае использования с phar-архивами, основанными на zip или phar, этот метод распаковывает все файлы в Phar-архиве. Если какие-либо файлы внутри архива были сжаты при помощи bzip2/zlib-сжатия, то для возможности воспользоваться данным методом должен быть включен модуль zlib или bzip2. Как и в случае с другим функционалом, модифицирующим содержание phar-архива, для успешной работы данного метода необходимо, чтобы INI-переменная phar.readonly была отключена.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Выбрасывает исключение BadMethodCallException, если INI-переменная phar.readonly включена, модуль zlib не доступен или если какие-либо файлы внутри архива были сжаты с использованием bzip2-сжатия и модуль bzip2 не включен.

Примеры

Пример #1 Пример использования Phar::decompressFiles()

<?php
$p = new Phar('/путь/к/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'привет';
$p['myfile2.txt'] = 'привет';
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
$p->decompressFiles();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
?>

Результат выполнения данного примера:

string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)
string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::compress() - Сжать текущий файл с помощью zlib или bzip2
  • PharFileInfo::decompress() - Расжимает текущий файл
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::compressFiles() - Сжимает все файлы в текущем Phar-архиве
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
  • Phar::compress() - Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия
  • Phar::decompress() - Распаковывает весь Phar-архив


Удалить глобальные метаданные в архиве phar

  • « Phar::decompressFiles
  • Phar::delete »
  • PHP Manual
  • Phar
  • Удалить глобальные метаданные в архиве phar

Phar::delMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.2.0)

Phar::delMetadata — Удалить глобальные метаданные в архиве phar

Описание

public Phar::delMetadata ( void ) : bool

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Удаляет глобальные метаданные в архиве phar

Список параметров

Возвращаемые значения

Возвращает TRUE в успешного выполнения, но лучше использовать проверку исключений.

Ошибки

Выбрасывает исключение PharException в случае ошибки при сохранении изменений на диск.

Примеры

Пример #1 Пример использования Phar::delMetaData()

<?php
try {
    $phar = new Phar('myphar.phar');
    var_dump($phar->getMetadata());
    $phar->setMetadata("hi there");
    var_dump($phar->getMetadata());
    $phar->delMetadata();
    var_dump($phar->getMetadata());
} catch (Exception $e) {
    // обработка ошибок
}
?>

Результат выполнения данного примера:

NULL
string(8) "hi there"
NULL

Смотрите также

  • Phar::getMetadata() - Извлечь метаданные phar-архива
  • Phar::setMetadata() - Установить метаданные phar-архива
  • Phar::hasMetadata() - Проверить, содержит ли phar-архив глобальные метаданные


Удаляет файл внутри phar-архива

  • « Phar::delMetadata
  • Phar::extractTo »
  • PHP Manual
  • Phar
  • Удаляет файл внутри phar-архива

Phar::delete

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::delete — Удаляет файл внутри phar-архива

Описание

public Phar::delete ( string $entry ) : bool

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Удаляет файл из архива. Эта функция аналогична вызову unlink() для обертки потока, как это показано в примере ниже.

Список параметров

entry

Путь внутри архива к файлу для удаления.

Возвращаемые значения

Возвращает TRUE в случае успеха, но лучше проверить, было ли выброшено исключение, и считать успешным вызов, в результате которого не было выброшено исключение.

Ошибки

Выбрасывает исключение PharException, если произошли ошибки во время записи изменений на диск.

Примеры

Пример #1 Пример использования Phar::delete()

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->delete('удали/меня.php');
    // это эквивалентно следующему:
    unlink('phar://myphar.phar/удали/меня.php');
} catch (Exception $e) {
    // обработка ошибок
}
?>

Смотрите также

  • PharData::delete() - Удалить файл из tar/zip-архива
  • Phar::unlinkArchive() - Полностью удалить архив из памяти и с диска


Извлечь содержимое phar-архива в директорию

  • « Phar::delete
  • Phar::getAlias »
  • PHP Manual
  • Phar
  • Извлечь содержимое phar-архива в директорию

Phar::extractTo

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::extractTo — Извлечь содержимое phar-архива в директорию

Описание

public Phar::extractTo ( string $pathto [, string|array $files [, bool $overwrite = FALSE ]] ) : bool

Извлекает все файлы phar-архива на диск. Извлеченные файлы и директории сохраняют все разрешения, которые у них были. Опциональные параметры позволяют контролировать, какие именно файлы извлекать и нужно ли перезаписывать уже существующие. Второй параметр files может быть как именем файла, так и путем директории, которые надо извлекать. По умолчанию уже существующие на диске файлы перезаписываться не будут. Для указания, что нужно использовать перезапись, используется третий параметр. Этот метод аналогичен методу ZipArchive::extractTo().

Список параметров

pathto

Путь, по которому необходимо сохраните извлеченные файлы (files)

files

Имя файла или директории, которые надо извлечь или архив с именами файлов/директорий. NULL для пропуска этого параметра.

overwrite

Установите в TRUE, если необходимо перезаписывать уже существующие файлы

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения. Но лучше использовать механизм перехвата исключений для контроля успешности.

Ошибки

Выбрасывает исключение PharException в случае ошибки записи на диск.

Примеры

Пример #1 Пример использования Phar::extractTo()

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->extractTo('/full/path'); // извлечь все файлы
    $phar->extractTo('/another/path', 'file.txt'); // извлечь только file.txt
    $phar->extractTo('/this/path',
        array('file1.txt', 'file2.txt')); // извлечь два указанных файла
    $phar->extractTo('/third/path', null, true); // извлечь все файлы, использовать перезапись
} catch (Exception $e) {
    // handle errors
}
?>

Смотрите также

  • PharData::extractTo() - Извлечь содержимое tar/zip-архива в директорию


Получить псевдоним для Phar

  • « Phar::extractTo
  • Phar::getMetadata »
  • PHP Manual
  • Phar
  • Получить псевдоним для Phar

Phar::getAlias

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.2.1)

Phar::getAlias — Получить псевдоним для Phar

Описание

public Phar::getAlias ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает псевдоним или NULL в случае его отсутствия.


Извлечь метаданные phar-архива

  • « Phar::getAlias
  • Phar::getModified »
  • PHP Manual
  • Phar
  • Извлечь метаданные phar-архива

Phar::getMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::getMetadata — Извлечь метаданные phar-архива

Описание

public Phar::getMetadata ( void ) : mixed

Возвращает метаданные phar-архива. Метаданными может быть любая переменная PHP, которая может быть сериализована.

Список параметров

Без параметров.

Возвращаемые значения

Любая переменная PHP, которая может быть сериализована и сохранена как метаданные Phar-архива, либо NULL, если метаданные отсутствуют.

Примеры

Пример #1 Пример использования Phar::getMetadata()

<?php
// Убедимся, что архив не существует
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.php'] = '<?php echo "hello";';
    $p->setMetadata(array('bootstrap' => 'file.php'));
    var_dump($p->getMetadata());
} catch (Exception $e) {
    echo 'Не удалось изменить phar:', $e;
}
?>

Результат выполнения данного примера:

array(1) {
  ["bootstrap"]=>
  string(8) "file.php"
}

Смотрите также

  • Phar::setMetadata() - Установить метаданные phar-архива
  • Phar::delMetadata() - Удалить глобальные метаданные в архиве phar
  • Phar::hasMetadata() - Проверить, содержит ли phar-архив глобальные метаданные


Определить, изменялся phar-архив

  • « Phar::getMetadata
  • Phar::getPath »
  • PHP Manual
  • Phar
  • Определить, изменялся phar-архив

Phar::getModified

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::getModified — Определить, изменялся phar-архив

Описание

public Phar::getModified ( void ) : bool

Этот метод используется для определения, изменялось ли что-либо в phar-архиве.

Список параметров

Без параметров.

Возвращаемые значения

TRUE, если архив после открытия изменялся и FALSE, в противном случае.


Получить реальный путь к Phar-архиву на диске

  • « Phar::getModified
  • Phar::getSignature »
  • PHP Manual
  • Phar
  • Получить реальный путь к Phar-архиву на диске

Phar::getPath

(PHP 5 >= 5.3.0, PHP 7)

Phar::getPath — Получить реальный путь к Phar-архиву на диске

Описание

public Phar::getPath ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить MD5/SHA1/SHA256/SHA512/OpenSSL подпись Phar-архива

  • « Phar::getPath
  • Phar::getStub »
  • PHP Manual
  • Phar
  • Получить MD5/SHA1/SHA256/SHA512/OpenSSL подпись Phar-архива

Phar::getSignature

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::getSignature — Получить MD5/SHA1/SHA256/SHA512/OpenSSL подпись Phar-архива

Описание

public Phar::getSignature ( void ) : array

Возвращает проверочную подпись phar-архива в виде строки шестнадцатеричных цифр.

Список параметров

Возвращаемые значения

Массив, содержащий цифровую подпись открытого архива по ключу hash, и MD5, SHA-1, SHA-256, SHA-512 или OpenSSL по ключу hash_type. Подпись - это хеш, вычесленный от содержимого архива, которую можно использовать для проверки его целосности. Корректная подпись требуется для всех запускаемых phar-архивов, если разрешена INI-переменная phar.require_hash.


Получить загрузчик PHP или загрузчик заглушки Phar-архива

  • « Phar::getSignature
  • Phar::getSupportedCompression »
  • PHP Manual
  • Phar
  • Получить загрузчик PHP или загрузчик заглушки Phar-архива

Phar::getStub

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::getStub — Получить загрузчик PHP или загрузчик заглушки Phar-архива

Описание

public Phar::getStub ( void ) : string

Phar-архивы содержат начальную загрузку или заглушку (stub), написанную на PHP, который запускается при запуске архива, когда его подключают через include:

<?php
include 'myphar.phar';
?>
или просто запускают:
php myphar.phar

Возвращаемые значения

Возвращает строку с содержанием начального загрузчика (заглушки) текущего Phar-архива.

Ошибки

Выбрасывает исключение RuntimeException, если по каким-либо причинам не может получить текст загрузчика.

Примеры

Пример #1 Пример использования Phar::getStub()

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
echo $p->getStub();
echo "==NEXT==\n";
$p->setStub("<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('myphar.phar');
include 'phar://myphar.phar/startup.php';
__HALT_COMPILER(); ?>");
echo $p->getStub();
?>

Результат выполнения данного примера:

<?php __HALT_COMPILER(); ?>
==NEXT==
<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('myphar.phar');
include 'phar://myphar.phar/startup.php';
__HALT_COMPILER(); ?>

Смотрите также

  • Phar::setStub() - Установить загрузчик или загрузочную заглушку в Phar-архив
  • Phar::createDefaultStub() - Создать заглушку в формате phar-архива


Возвращает массив поддерживаемых алгоритмов сжатия

  • « Phar::getStub
  • Phar::getSupportedSignatures »
  • PHP Manual
  • Phar
  • Возвращает массив поддерживаемых алгоритмов сжатия

Phar::getSupportedCompression

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.2.0)

Phar::getSupportedCompression — Возвращает массив поддерживаемых алгоритмов сжатия

Описание

final public static Phar::getSupportedCompression ( void ) : array

Список параметров

Нет параметров.

Возвращаемые значения

Возвращает массив, содержащий любые из значений Phar::GZ или Phar::BZ2 в зависимости от доступности модулей zlib и bz2.

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::compress() - Сжать текущий файл с помощью zlib или bzip2
  • PharFileInfo::decompress() - Расжимает текущий файл
  • Phar::compress() - Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия
  • Phar::decompress() - Распаковывает весь Phar-архив
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::compressFiles() - Сжимает все файлы в текущем Phar-архиве
  • Phar::decompressFiles() - Распаковывает все файлы в текущем Phar-архиве


Получить массив поддерживаемых алгоритмов подписи архива

  • « Phar::getSupportedCompression
  • Phar::getVersion »
  • PHP Manual
  • Phar
  • Получить массив поддерживаемых алгоритмов подписи архива

Phar::getSupportedSignatures

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.1.0)

Phar::getSupportedSignatures — Получить массив поддерживаемых алгоритмов подписи архива

Описание

final public static Phar::getSupportedSignatures ( void ) : array

Возвращает массив поддерживаемых алгоритмов подписи архива

Список параметров

Без параметров.

Возвращаемые значения

Возвращает массив примерно такого содержания: MD5, SHA-1, SHA-256, SHA-512, OpenSSL.

Смотрите также

  • Phar::getSignature() - Получить MD5/SHA1/SHA256/SHA512/OpenSSL подпись Phar-архива
  • Phar::setSignatureAlgorithm() - Установить алгоритм подписания phar-архива и применение его


Получить версию Phar-архива

  • « Phar::getSupportedSignatures
  • Phar::hasMetadata »
  • PHP Manual
  • Phar
  • Получить версию Phar-архива

Phar::getVersion

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::getVersion — Получить версию Phar-архива

Описание

public Phar::getVersion ( void ) : string

Возвращает версию API открытого Phar-архива.

Список параметров

Возвращаемые значения

Версия API открытого архива. Не перепутайте с версией API загруженного расширения phar. Каждый Phar-архив имеет жестко прописанную версию API, с помощью которого его создавали, в манифесте. Подробную документацию можно почитать на странице Формат файла Phar.

Смотрите также

  • Phar::apiVersion() - Возвращает версию API


Проверить, содержит ли phar-архив глобальные метаданные

  • « Phar::getVersion
  • Phar::interceptFileFuncs »
  • PHP Manual
  • Phar
  • Проверить, содержит ли phar-архив глобальные метаданные

Phar::hasMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.2.0)

Phar::hasMetadata — Проверить, содержит ли phar-архив глобальные метаданные

Описание

public Phar::hasMetadata ( void ) : bool

Проверяет, содержит ли phar-архив глобальные метаданные.

Список параметров

Без параметров.

Возвращаемые значения

Возвращает TRUE или FALSE.

Примеры

Пример #1 Пример использования Phar::hasMetadata()

<?php
try {
    $phar = new Phar('myphar.phar');
    var_dump($phar->hasMetadata());
    $phar->setMetadata(array('thing' => 'hi'));
    var_dump($phar->hasMetadata());
    $phar->delMetadata();
    var_dump($phar->hasMetadata());
} catch (Exception $e) {
    // handle error
}
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)

Смотрите также

  • Phar::getMetadata() - Извлечь метаданные phar-архива
  • Phar::setMetadata() - Установить метаданные phar-архива
  • Phar::delMetadata() - Удалить глобальные метаданные в архиве phar


Указывает phar перехватывать fopen, file_get_contents, opendir и все stat-функции

  • « Phar::hasMetadata
  • Phar::isBuffering »
  • PHP Manual
  • Phar
  • Указывает phar перехватывать fopen, file_get_contents, opendir и все stat-функции

Phar::interceptFileFuncs

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::interceptFileFuncs — Указывает phar перехватывать fopen, file_get_contents, opendir и все stat-функции

Описание

final public static Phar::interceptFileFuncs ( void ) : void

Указывает phar перехватывать fopen(), readfile(), file_get_contents(), opendir() и все stat-функции. Если какая-либо из этих функций будет вызвана из phar-архива с относительным путем, то вызов будет модифицирован для доступа к содержимому архива. В случае с абсолютными путями будут работать штатные функции доступа к файловой системе.

Эта функция позволяет писать приложения работающие не привязанные к жесткому диску.

Список параметров

No parameters.

Возвращаемые значения

Примеры

Пример #1 Пример использования Phar::interceptFileFuncs()

<?php
Phar::interceptFileFuncs();
include 'phar://' . __FILE__ . '/file.php';
?>

Предположим, что у нас есть /path/to/myphar.phar и в нем содержатся файлы file.php и file2.txt. file.php содержит такой код:

Пример #2 Пример использования Phar::interceptFileFuncs()

<?php
echo file_get_contents('file2.txt');
?>

В обычном режиме PHP будет искать file2.txt в текущей директории, являющейся директорией запуска file.php, либо текущей директорией в случае использования командной строки. Phar::interceptFileFuncs() укажет PHP, что текущая директория - это phar:///path/to/myphar.phar/ и, для примера выше, будет открыт файл phar:///path/to/myphar.phar/file2.txt.


Проверить, будут ли операции с Phar-архивом буферизованы или записаны напрямую на диск

  • « Phar::interceptFileFuncs
  • Phar::isCompressed »
  • PHP Manual
  • Phar
  • Проверить, будут ли операции с Phar-архивом буферизованы или записаны напрямую на диск

Phar::isBuffering

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::isBuffering — Проверить, будут ли операции с Phar-архивом буферизованы или записаны напрямую на диск

Описание

public Phar::isBuffering ( void ) : bool

Проверяет, будут ли операции с Phar-архивом сразу записаны на диск или для этого надо вызывать Phar::stopBuffering().

Настройки буферизации индивидуальны для каждого архива. Включенная буферизация для foo.phar никак не влияет на режим работы с bar.phar.

Возвращаемые значения

Возвращает TRUE или FALSE.

Примеры

Пример #1 Пример использования Phar::isBuffering()

<?php
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p2 = new Phar('existingphar.phar');
$p['file1.txt'] = 'hi';
var_dump($p->isBuffering());
var_dump($p2->isBuffering());
?>
=2=
<?php
$p->startBuffering();
var_dump($p->isBuffering());
var_dump($p2->isBuffering());
$p->stopBuffering();
?>
=3=
<?php
var_dump($p->isBuffering());
var_dump($p2->isBuffering());
?>

Результат выполнения данного примера:

bool(false)
bool(false)
=2=
bool(true)
bool(false)
=3=
bool(false)
bool(false)

Смотрите также

  • Phar::startBuffering() - Запускает буферизацию операций записи, отключая запись изменений Phar-архива на диск
  • Phar::stopBuffering() - Останавливает буферизацию и записывает все изменения на диск


Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)

  • « Phar::isBuffering
  • Phar::isFileFormat »
  • PHP Manual
  • Phar
  • Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)

Phar::isCompressed

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::isCompressed — Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)

Описание

public Phar::isCompressed ( void ) : mixed

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее). Phar-архивы, основанные на zip, не могут быть сжаты целиком, поэтому этот метод всегда возвращает FALSE, если он был вызван на phar-архиве, основанном на zip.

Список параметров

Нет параметров.

Возвращаемые значения

Phar::GZ, Phar::BZ2 или FALSE

Примеры

Пример #1 Пример использования Phar::isCompressed()

<?php
try {
    $phar1 = new Phar('myphar.zip.phar');
    var_dump($phar1->isCompressed());
    $phar2 = new Phar('myuncompressed.tar.phar');
    var_dump($phar2->isCompressed());
    $phar2->compress(Phar::GZ);
    var_dump($phar2->isCompressed() == Phar::GZ);
} catch (Exception $e) {
}
?>

Результат выполнения данного примера:

bool(false)
bool(false)
bool(true)

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::decompress() - Расжимает текущий файл
  • PharFileInfo::compress() - Сжать текущий файл с помощью zlib или bzip2
  • Phar::decompress() - Распаковывает весь Phar-архив
  • Phar::compress() - Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::compressFiles() - Сжимает все файлы в текущем Phar-архиве
  • Phar::decompressFiles() - Распаковывает все файлы в текущем Phar-архиве
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия


Проверить, что phar-архив имеет заданный формат (tar/phar/zip)

  • « Phar::isCompressed
  • Phar::isValidPharFilename »
  • PHP Manual
  • Phar
  • Проверить, что phar-архив имеет заданный формат (tar/phar/zip)

Phar::isFileFormat

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::isFileFormat — Проверить, что phar-архив имеет заданный формат (tar/phar/zip)

Описание

public Phar::isFileFormat ( int $format ) : bool

Список параметров

format

Phar::PHAR, Phar::TAR или Phar::ZIP, в зависимости от проверяемого формата.

Возвращаемые значения

Возвращает TRUE, если phar-архив имеет указанный формат

Ошибки

В случае задания некорректного формата выбрасывается исключение PharException.

Смотрите также

  • Phar::convertToExecutable() - Конвертирует phar-архив в другой исполняемый формат файла
  • Phar::convertToData() - Конвертирует phar-архив в неисполняемый tar- или zip-файл


Проверяет, что заданное имя файла является корректным именем phar-архива

  • « Phar::isFileFormat
  • Phar::isWritable »
  • PHP Manual
  • Phar
  • Проверяет, что заданное имя файла является корректным именем phar-архива

Phar::isValidPharFilename

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.2.0)

Phar::isValidPharFilename — Проверяет, что заданное имя файла является корректным именем phar-архива

Описание

final public static Phar::isValidPharFilename ( string $filename [, bool $executable = TRUE ] ) : bool

Проверяет, что заданное имя файла является корректным именем phar-архива. Можно использовать для проверки имени файла до момента его непосредственного создания, чтобы избежать нежелательных исключений.

Список параметров

filename

Имя или полный путь до файла, который еще не создан

executable

Этот параметр определяет, должен ли файл опозноваться как запускаемый phar-архив, или как незапускаемый архив с данными

Возвращаемые значения

Возвращает TRUE или FALSE.


Проверяет, можно ли модифицировать phar-архив

  • « Phar::isValidPharFilename
  • Phar::loadPhar »
  • PHP Manual
  • Phar
  • Проверяет, можно ли модифицировать phar-архив

Phar::isWritable

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::isWritable — Проверяет, можно ли модифицировать phar-архив

Описание

public Phar::isWritable ( void ) : bool

Этот метод возвращает TRUE, если phar.readonly установлен в 0, архив существует и доступен для записи.

Список параметров

Параметров нет.

Возвращаемые значения

Возвращает TRUE, если архив можно модифицировать

Смотрите также

  • Phar::canWrite() - Проверяет, поддерживает ли модуль phar сохранение и создание phar-архивов
  • PharData::isWritable() - Проверить, можно ли модифицировать tar/zip-архив


Загрузить phar-архив с псевдонимом

  • « Phar::isWritable
  • Phar::mapPhar »
  • PHP Manual
  • Phar
  • Загрузить phar-архив с псевдонимом

Phar::loadPhar

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::loadPhar — Загрузить phar-архив с псевдонимом

Описание

final public static Phar::loadPhar ( string $filename [, string $alias ] ) : bool

Может использоваться для загрузки внешнего Phar-архива. То, что для phar-архива назначается псевдоним, позволяет в дальнейшем использовать более короткие ссылки для доступа к нему или же для загрузки архивов Phar, содержащих только данные и не предназначеных для выполнения.

Список параметров

filename

Путь к загружаемому phar-архиву

alias

Псевдоним для доступа к архиву. Обратите внимание, что многие phar-архивы имеют свой явно заданный псевдоним и, при задании нового псевдонима, будет выброшено исключение PharException.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Если задан параметр с псевдонимом, а загружаемый архив уже имеет псевдоним, то будет выброшено исключение PharException

Примеры

Пример #1 Пример использования Phar::loadPhar()

Phar::loadPhar можно использовать где угодно, тогда как Phar::mapPhar только в загрузчике (stub) Phar-архива.

<?php
try {
    Phar::loadPhar('/path/to/phar.phar', 'my.phar');
    echo file_get_contents('phar://my.phar/file.txt');
} catch (PharException $e) {
    echo $e;
}
?>

Смотрите также

  • Phar::mapPhar() - Прочитать текущий запущенный phar-архив и зарегистрировать его манифест


Прочитать текущий запущенный phar-архив и зарегистрировать его манифест

  • « Phar::loadPhar
  • Phar::mount »
  • PHP Manual
  • Phar
  • Прочитать текущий запущенный phar-архив и зарегистрировать его манифест

Phar::mapPhar

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::mapPhar — Прочитать текущий запущенный phar-архив и зарегистрировать его манифест

Описание

final public static Phar::mapPhar ([ string $alias [, int $dataoffset = 0 ]] ) : bool

Этот статический метод можно использовать только в заглушке загрузчика Phar-архива в целях его инициализации, когда он запущен напрямую, либо включен в другой скрипт.

Список параметров

alias

Псевдоним можно использовать в обертках phar://, ссылаясь на этот архив, вместо использования полного пути.

dataoffset

Неиспользуемая переменная. Существует только для совместимости с PEAR-пакетом PHP_Archive.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Выбрасывается исключение PharException, если вызывается из скрипта, в котором не обнаружено токена __HALT_COMPILER();, либо если файл недоступен для чтения.

Примеры

Пример #1 Пример использования Phar::mapPhar()

Phar::mapPhar следует использовать только внутри загрузчика заглушки Phar-архива. Используйте loadPhar для загрузки внешнего phar в память.

Простой загрузчик Phar, использующий mapPhar.

<?php
function __autoload($class)
{
    include 'phar://me.phar/' . str_replace('_', '/', $class) . '.php';
}
try {
    Phar::mapPhar('me.phar');
    include 'phar://me.phar/startup.php';
} catch (PharException $e) {
    echo $e->getMessage();
    die('Cannot initialize Phar');
}
__HALT_COMPILER();

Смотрите также

  • Phar::loadPhar() - Загрузить phar-архив с псевдонимом


Монтирование внешнего путь или файла к виртуальному пути в phar-архиве

  • « Phar::mapPhar
  • Phar::mungServer »
  • PHP Manual
  • Phar
  • Монтирование внешнего путь или файла к виртуальному пути в phar-архиве

Phar::mount

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::mount — Монтирование внешнего путь или файла к виртуальному пути в phar-архиве

Описание

final public static Phar::mount ( string $pharpath , string $externalpath ) : void

Очень похоже на концепцию файловой системы unix по монтированию внешнего устройства в существующее дерево директорий. Phar::mount() позволяет ссылаться на внешние файлы и директории, как будто они находятся внутри архива. Это позволяет повысить уровень абстракции обращаясь ко внешним конфигурационным файлам так, как будто они являются частью архива.

Список параметров

pharpath

Внутренний путь в архиве, по которому необходимо примонтировать внешний путь. Это должен быть несуществующий относительный путь внутри архива.

externalpath

Путь или URL внешнего файла или директории

Возвращаемые значения

Ничего не возвращает. В случае ошибки выбрасывает исключение PharException.

Ошибки

Выбрасывает исключение PharException при возникновении ошибок.

Примеры

Пример #1 Пример использования Phar::mount()

В следующем примере демонстрируется доступ к внешнему конфигурационному файлу, как будто он находится внутри архива.

Для начала код, содержащийся в архиве:

<?php
$configuration = simplexml_load_string(file_get_contents(
    Phar::running(false) . '/config.xml'));
?>

Далее внешний код, монтирующий файл в архив:

<?php
// для начала настроим ассоциацию между абстрактным config.xml
// и конкретным файлом на диске
Phar::mount('phar://config.xml', '/home/example/config.xml');
// а теперь запускаем приложение
include '/path/to/archive.phar';
?>

Другой метод - поместить монтирующий код в заглушку (stub) Phar-архива. Пример использования конфигурационного файла по умолчанию, если пользовательский файл конфигурации не задан:

<?php
// для начала настроим связь между абстрактным config.xml
// и конкретным файлом на диске
if (defined('EXTERNAL_CONFIG')) {
    Phar::mount('config.xml', EXTERNAL_CONFIG);
    if (file_exists(__DIR__ . '/extra_config.xml')) {
        Phar::mount('extra.xml', __DIR__ . '/extra_config.xml');
    }
} else {
    Phar::mount('config.xml', 'phar://' . __FILE__ . '/default_config.xml');
    Phar::mount('extra.xml', 'phar://' . __FILE__ . '/default_extra.xml');
}
// а теперь запускаем приложение
include 'phar://' . __FILE__ . '/index.php';
__HALT_COMPILER();
?>

... и код для загрузки этого phar-архива:

<?php
define('EXTERNAL_CONFIG', '/home/example/config.xml');
// а теперь запускаем приложение
include '/path/to/archive.phar';
?>


Определить список до четырех $_SERVER-переменных, которые должны быть изменены для запуска

  • « Phar::mount
  • Phar::offsetExists »
  • PHP Manual
  • Phar
  • Определить список до четырех $_SERVER-переменных, которые должны быть изменены для запуска

Phar::mungServer

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::mungServer — Определить список до четырех $_SERVER-переменных, которые должны быть изменены для запуска

Описание

final public static Phar::mungServer ( array $munglist ) : void

Функция Phar::mungServer() должна вызываться только в загрузчике.

Определяет список до четырех $_SERVER-переменных, которые необходимо модифицировать для запуска. Модификация заключается в удалении следов запуска из phar-архива для переменных REQUEST_URI, PHP_SELF, SCRIPT_NAME и SCRIPT_FILENAME.

Сам по себе этот метод ничего не делает. Эффект достигается только в комбинации с Phar::webPhar() и только если запрошенный файл является PHP-файлом для разбора. Обратите внимание, что переменные PATH_INFO и PATH_TRANSLATED всегда модифицированы.

Оригинальные значения изменяемых переменных будут сохранены в массиве SERVER с префиксами PHAR_. Например, оригинальное значение SCRIPT_NAME будет записано в PHAR_SCRIPT_NAME.

Список параметров

munglist

Массив, содержащий комбинацию из: REQUEST_URI, PHP_SELF, SCRIPT_NAME и SCRIPT_FILENAME. Любые другие значения вызовут исключение. Обратите внимание, что функция Phar::mungServer() чуствительна к регистру символов.

Возвращаемые значения

Ничего не возвращает.

Ошибки

Выбрасывает исключение UnexpectedValueException, если входные данные некоректны.

Примеры

Пример #1 Пример использования Phar::mungServer()

<?php
// пример загрузчика
Phar::mungServer(array('REQUEST_URI'));
Phar::webPhar();
__HALT_COMPILER();
?>

Смотрите также

  • Phar::webPhar() - mapPhar для phar-архивов на базе веб. Контроллер фронтенда для веб-приложений
  • Phar::setStub() - Установить загрузчик или загрузочную заглушку в Phar-архив


Определить, есть ли файл в архиве

  • « Phar::mungServer
  • Phar::offsetGet »
  • PHP Manual
  • Phar
  • Определить, есть ли файл в архиве

Phar::offsetExists

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::offsetExists — Определить, есть ли файл в архиве

Описание

public Phar::offsetExists ( string $offset ) : bool

Это реализация интерфейса ArrayAccess, позволяющаа манипулировать содержимым Phar-архива в стиле доступа к элементам массива.

offsetExists() запускается каждый раз, когда вызывается isset().

Список параметров

offset

Имя файла (относительный путь).

Возвращаемые значения

Возвращает TRUE, если файл присутствует в архиве и FALSE в противном случае.

Примеры

Пример #1 Пример использования Phar::offsetExists()

<?php
$p = new Phar(dirname(__FILE__) . '/my.phar', 0, 'my.phar');
$p['firstfile.txt'] = 'первый файл';
$p['secondfile.txt'] = 'второй файл';
// в следующих строках offsetExists() вызывается косвенно
var_dump(isset($p['firstfile.txt']));
var_dump(isset($p['nothere.txt']));
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Смотрите также

  • Phar::offsetGet() - Получить объект PharFileInfo для конкретного файла
  • Phar::offsetSet() - Изменение содержимого файла
  • Phar::offsetUnset() - Удалить файл из phar-архива


Получить объект PharFileInfo для конкретного файла

  • « Phar::offsetExists
  • Phar::offsetSet »
  • PHP Manual
  • Phar
  • Получить объект PharFileInfo для конкретного файла

Phar::offsetGet

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::offsetGet — Получить объект PharFileInfo для конкретного файла

Описание

public Phar::offsetGet ( string $offset ) : int

Это реализация интерфейса ArrayAccess, позволяющаа манипулировать содержимым Phar-архива в стиле доступа к элементам массива. Phar::offsetGet() используется для извлечения файлов из архива.

Список параметров

offset

Имя файла (относительный путь).

Возвращаемые значения

Объект класса PharFileInfo. Можно использовать для получения информации о файле и для извлечения контента через итерирование.

Ошибки

Выбрасывает исключение BadMethodCallException, если такого файла нет.

Примеры

Пример #1 Пример использования Phar::offsetGet()

Как и для любого другого класса, реализующего ArrayAccess, метод Phar::offsetGet() будет вызван автоматически при использовании оператора [].

<?php
$p = new Phar(dirname(__FILE__) . '/myphar.phar', 0, 'myphar.phar');
$p['exists.txt'] = "file exists\n";
try {
    // автоматический вызов offsetGet()
    echo $p['exists.txt'];
    echo $p['doesnotexist.txt'];
} catch (BadMethodCallException $e) {
    echo $e;
}
?>

Результат выполнения данного примера:

file exists
Entry doesnotexist.txt does not exist

Смотрите также

  • Phar::offsetExists() - Определить, есть ли файл в архиве
  • Phar::offsetSet() - Изменение содержимого файла
  • Phar::offsetUnset() - Удалить файл из phar-архива


Изменение содержимого файла

  • « Phar::offsetGet
  • Phar::offsetUnset »
  • PHP Manual
  • Phar
  • Изменение содержимого файла

Phar::offsetSet

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::offsetSet — Изменение содержимого файла

Описание

public Phar::offsetSet ( string $offset , string $value ) : void

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Это реализация интерфейса ArrayAccess, позволяющаа манипулировать содержимым Phar-архива в стиле доступа к элементам массива. offsetSet используется для изменения контента существующего файла, либо для создания нового.

Список параметров

offset

Имя файла (относительный путь).

value

Содержимое файла.

Возвращаемые значения

Ничего не возвращает.

Ошибки

Если опция phar.readonly установлен в 1, то будет выброшено исключение BadMethodCallException, так как модифицировать Phar-архив можно только, если phar.readonly равен 0. Если возникнут какие либо проблемы с записью на диск - выбрасывается исключение PharException.

Примеры

Пример #1 Пример использования Phar::offsetSet()

offsetSet не нужно вызывать напрямую. Используйте синтаксис [].

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
try {
    // вызов offsetSet
    $p['file.txt'] = 'Hi there';
} catch (Exception $e) {
    echo 'Не могу изменить file.txt:', $e;
}
?>

Смотрите также

  • Phar::offsetExists() - Определить, есть ли файл в архиве
  • Phar::offsetGet() - Получить объект PharFileInfo для конкретного файла
  • Phar::offsetUnset() - Удалить файл из phar-архива


Удалить файл из phar-архива

  • « Phar::offsetSet
  • Phar::running »
  • PHP Manual
  • Phar
  • Удалить файл из phar-архива

Phar::offsetUnset

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::offsetUnset — Удалить файл из phar-архива

Описание

public Phar::offsetUnset ( string $offset ) : bool

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Это реализация интерфейса ArrayAccess, позволяющаа манипулировать содержимым Phar-архива в стиле доступа к элементам массива. offsetUnset используется для удаления файлов и запускается каждый раз, когда используется конструкция unset().

Список параметров

offset

Имя файла (относительный путь).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Если опция phar.readonly установлен в 1, то будет выброшено исключение BadMethodCallException, так как модифицировать Phar-архив можно только, если phar.readonly равен 0. Если возникнут какие-либо проблемы с записью на диск - выбрасывается исключение PharException.

Примеры

Пример #1 Пример использования Phar::offsetUnset()

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
try {
    // удаляет file.txt из my.phar путем вызова offsetUnset
    unset($p['file.txt']);
} catch (Exception $e) {
    echo 'Не удалось удалить file.txt: ', $e;
}
?>

Смотрите также

  • Phar::offsetExists() - Определить, есть ли файл в архиве
  • Phar::offsetGet() - Получить объект PharFileInfo для конкретного файла
  • Phar::offsetSet() - Изменение содержимого файла
  • Phar::unlinkArchive() - Полностью удалить архив из памяти и с диска
  • Phar::delete() - Удаляет файл внутри phar-архива


Получить полный путь на диске, либо полный URL запущенного Phar-архива

  • « Phar::offsetUnset
  • Phar::setAlias »
  • PHP Manual
  • Phar
  • Получить полный путь на диске, либо полный URL запущенного Phar-архива

Phar::running

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::running — Получить полный путь на диске, либо полный URL запущенного Phar-архива

Описание

final public static Phar::running ([ bool $retphar = TRUE ] ) : string

Возвращает полный путь запущенного phar-архива. Используется для того же, для чего используется константа __FILE__ и работает только внутри запущенного phar-архива.

При запуске Phar::running() из загрузчика результат будет "". Внутри загрузчика используйте константу __FILE__.

Список параметров

retphar

Если FALSE, то будет возвращен полный дисковый путь к phar-архиву. Если TRUE, то будет возвращен полный URL.

Возвращаемые значения

Вернет путь, если он корректен, либо пустую строку.

Примеры

Пример #1 Пример использования Phar::running()

Для следующего примера предположим, что архив находится по пути /path/to/phar/my.phar.

<?php
$a = Phar::running(); // $a равно "phar:///path/to/my.phar"
$b = Phar::running(false); // $b равно "/path/to/my.phar"
?>


Установить псевдоним для Phar-архива

  • « Phar::running
  • Phar::setDefaultStub »
  • PHP Manual
  • Phar
  • Установить псевдоним для Phar-архива

Phar::setAlias

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.2.1)

Phar::setAlias — Установить псевдоним для Phar-архива

Описание

public Phar::setAlias ( string $alias ) : bool

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Устанавливает псевдоним для Phar-архива и записывает его как постоянный псевдоним для этого архива. Псевдоним можно использовать внутри phar-архива для уверенности в том, что доступ через потоковую обертку phar для доступа к внутренним файлам будет работать всегда, независимо от местоположения phar-архива на файловой системе. Другой альтернативой является надежда на перехват include или использование Phar::interceptFileFuncs() совместно с относительными путями.

Список параметров

alias

Короткое имя, которое можно будет использовать с доступом через потоковую обертку phar.

Возвращаемые значения

Ошибки

Выбрасывает исключение UnexpectedValueException, если досьтуп запрещен и PharException, если псевдоним уже используется, или возникли проблемы с записью на диск.

Примеры

Пример #1 Пример использования Phar::setAlias()

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->setAlias('myp.phar');
} catch (Exception $e) {
    // обработка ошибок
}
?>

Смотрите также

  • Phar::__construct() - Создает объект Phar-архива
  • Phar::interceptFileFuncs() - Указывает phar перехватывать fopen, file_get_contents, opendir и все stat-функции


Установить загрузчик PHP или начальную заглушку Phar-архива в загрузчик по умолчанию

  • « Phar::setAlias
  • Phar::setMetadata »
  • PHP Manual
  • Phar
  • Установить загрузчик PHP или начальную заглушку Phar-архива в загрузчик по умолчанию

Phar::setDefaultStub

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::setDefaultStub — Установить загрузчик PHP или начальную заглушку Phar-архива в загрузчик по умолчанию

Описание

public Phar::setDefaultStub ([ string $index [, string $webindex ]] ) : bool

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Этот метод комбинирует функционал двух других методов, Phar::createDefaultStub() и Phar::setStub().

Список параметров

index

Относительный путь в phar-архиве для запуска при доступе из командной строки

webindex

Относительный путь в phar-архиве для запуска при доступе из веб-браузера

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Будет выброшено исключение UnexpectedValueException, если phar.readonly разрешено в php.ini. В случае проблем с записью на диск будет выброшено исключение PharException.

Примеры

Пример #1 Пример использования Phar::setDefaultStub()

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->setDefaultStub('cli.php', 'web/index.php');
    // это аналогично такому коду:
    // $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
} catch (Exception $e) {
    // обработка ошибок
}
?>

Смотрите также

  • Phar::setStub() - Установить загрузчик или загрузочную заглушку в Phar-архив
  • Phar::createDefaultStub() - Создать заглушку в формате phar-архива


Установить метаданные phar-архива

  • « Phar::setDefaultStub
  • Phar::setSignatureAlgorithm »
  • PHP Manual
  • Phar
  • Установить метаданные phar-архива

Phar::setMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::setMetadata — Установить метаданные phar-архива

Описание

public Phar::setMetadata ( mixed $metadata ) : void

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Функция Phar::setMetadata() используется для сохранения данных, характеризующих phar-архив в целом. PharFileInfo::setMetadata() используется для установки метаданных для конкретного файла. Если метаданных будет много, то это может снизить скорость загрузки phar-архива.

Метаданные можно использовать, например, для указания, какой файл должен исполняться при загрузке, или для указагния местоположения манифеста, типа package.xml для модуля » PEAR. В общем, любые полезные в контексте phar-архива данные.

Список параметров

metadata

Любая переменная PHP, содержащая необходимую информацию

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Phar::setMetadata()

<?php
// удалим, на всякий случай
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.php'] = '<?php echo "привет"';
    $p->setMetadata(array('bootstrap' => 'file.php'));
    var_dump($p->getMetadata());
} catch (Exception $e) {
    echo 'Не могу создать/изменить phar:', $e;
}
?>

Результат выполнения данного примера:

array(1) {
  ["bootstrap"]=>
  string(8) "file.php"
}

Смотрите также

  • Phar::getMetadata() - Извлечь метаданные phar-архива
  • Phar::delMetadata() - Удалить глобальные метаданные в архиве phar
  • Phar::hasMetadata() - Проверить, содержит ли phar-архив глобальные метаданные


Установить алгоритм подписания phar-архива и применение его

  • « Phar::setMetadata
  • Phar::setStub »
  • PHP Manual
  • Phar
  • Установить алгоритм подписания phar-архива и применение его

Phar::setSignatureAlgorithm

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.1.0)

Phar::setSignatureAlgorithm — Установить алгоритм подписания phar-архива и применение его

Описание

public Phar::setSignatureAlgorithm ( int $sigtype [, string $privatekey ] ) : void

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Устанавливает алгоритм подписания phar-архива и применяет его.
Доступны следующие алгоритмы подписания: Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512 и Phar::OPENSSL.

Обратите внимание, что для всех исполняемых phar-архивов подпись создается автоматически, с использованием по умолчанию SHA1. Архивы с данными на основе tar или zip (созданные с помощью класса PharData) должны иметь явно созданную с помощью Phar::setSignatureAlgorithm() подпись.

Список параметров

sigtype

Одна из констант: Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512 или Phar::OPENSSL

privatekey

Секретный ключ OpenSSL, извлеченный из сертификата, либо файл с ключем OpenSSL:

<?php
$private = openssl_get_privatekey(file_get_contents('private.pem'));
$pkey = '';
openssl_pkey_export($private, $pkey);
$p->setSignatureAlgorithm(Phar::OPENSSL, $pkey);
?>
Подробности об именовании и размещении файла открытого ключа смотрите в разделе Введение в phar.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение UnexpectedValueException при любых ошибках, кроме ошибок записи на диск. При ошибках записи на диск выбрасывает исключение PharException.

Смотрите также

  • Phar::getSupportedSignatures() - Получить массив поддерживаемых алгоритмов подписи архива
  • Phar::getSignature() - Получить MD5/SHA1/SHA256/SHA512/OpenSSL подпись Phar-архива


Установить загрузчик или загрузочную заглушку в Phar-архив

  • « Phar::setSignatureAlgorithm
  • Phar::startBuffering »
  • PHP Manual
  • Phar
  • Установить загрузчик или загрузочную заглушку в Phar-архив

Phar::setStub

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::setStub — Установить загрузчик или загрузочную заглушку в Phar-архив

Описание

public Phar::setStub ( string $stub [, int $len = -1 ] ) : bool

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Этот метод используется для добавления начальной загрузочной заглушки PHP (PHP bootstrap loader stub) в новый Phar-архив, либо для замены уже существующего загрузочной заглушки.

Загрузчик заглушки используется при подключении Phar-архива с помощью included:

<?php
include 'myphar.phar';
?>

Загрузчик не доступен, когда архив включается с использованием обертки phar, как в примере ниже:

<?php
include 'phar://myphar.phar/somefile.php';
?>

Список параметров

stub

Строка, либо открытый ресурс потока.

len

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Выбрасывается исключение UnexpectedValueException, если phar.readonly разрешено в php.ini. В случае проблем с записью на диск будет выброшено исключение PharException.

Примеры

Пример #1 Пример использования Phar::setStub()

<?php
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['a.php'] = '<?php var_dump("Hello");';
    $p->setStub('<?php var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>');
    include 'phar://brandnewphar.phar/a.php';
    var_dump($p->getStub());
    $p['b.php'] = '<?php var_dump("World");';
    $p->setStub('<?php var_dump("Second"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>');
    include 'phar://brandnewphar.phar/b.php';
    var_dump($p->getStub());
} catch (Exception $e) {
    echo 'Операции записи на brandnewphar.phar завершились неудачей: ', $e;
}
?>

Результат выполнения данного примера:

string(5) "Hello"
string(82) "<?php var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>"
string(5) "World"
string(83) "<?php var_dump("Second"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>"

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр len.

Смотрите также

  • Phar::getStub() - Получить загрузчик PHP или загрузчик заглушки Phar-архива
  • Phar::createDefaultStub() - Создать заглушку в формате phar-архива


Запускает буферизацию операций записи, отключая запись изменений Phar-архива на диск

  • « Phar::setStub
  • Phar::stopBuffering »
  • PHP Manual
  • Phar
  • Запускает буферизацию операций записи, отключая запись изменений Phar-архива на диск

Phar::startBuffering

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::startBuffering — Запускает буферизацию операций записи, отключая запись изменений Phar-архива на диск

Описание

public Phar::startBuffering ( void ) : void

Метод Phar::startBuffering() может дать значительный прирост производительности при создании, либо модификации phar-архива с большим количеством файлов. Обычно, когда добавляется новый файл, либо изменяется существующий, запускается операция пересоздания phar-архива. С включенной буферизацией архив будет пересоздан один раз в самом конце внесения изменений.

Эта концепция работает аналогично транзакции в базе данных, что позволяет сделать вне необходимые изменения и применить их одновременно, в рамках одной операции. Такое поведение обеспечивает пара методов Phar::startBuffering()/Phar::stopBuffering().

Настройки буферизации индивидуальны для каждого архива. Включенная буферизация для foo.phar никак не влияет на режим работы с bar.phar.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Phar::startBuffering()

<?php
// удалим на всякий случай
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
} catch (Exception $e) {
    echo 'не могу создать phar:', $e;
}
echo 'В новом phar содержится ' . $p->count() . " записей\n";
$p->startBuffering();
$p['file.txt'] = 'hi';
$p['file2.txt'] = 'there';
$p['file2.txt']->setCompressedGZ();
$p['file3.txt'] = 'babyface';
$p['file3.txt']->setMetadata(42);
$p->setStub("<?php
function __autoload($class)
{
    include 'phar://myphar.phar/' . str_replace('_', '/', $class) . '.php';
}
Phar::mapPhar('myphar.phar');
include 'phar://myphar.phar/startup.php';
__HALT_COMPILER();");
$p->stopBuffering();
?>

Смотрите также

  • Phar::stopBuffering() - Останавливает буферизацию и записывает все изменения на диск
  • Phar::isBuffering() - Проверить, будут ли операции с Phar-архивом буферизованы или записаны напрямую на диск


Останавливает буферизацию и записывает все изменения на диск

  • « Phar::startBuffering
  • Phar::uncompressAllFiles »
  • PHP Manual
  • Phar
  • Останавливает буферизацию и записывает все изменения на диск

Phar::stopBuffering

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::stopBuffering — Останавливает буферизацию и записывает все изменения на диск

Описание

public Phar::stopBuffering ( void ) : void

Метод Phar::stopBuffering() используется совместно с методом Phar::startBuffering(). Phar::startBuffering() может дать значительный прирост производительности при создании, либо модификации phar-архива с большим количеством файлов. Обычно, когда добавляется новый файл, либо изменяется существующий, запускается операция пересоздания phar-архива. С включенной буферизацией архив будет пересоздан один раз в самом конце внесения изменений.

Эта концепция работает аналогично транзакции в базе данных, что позволяет сделать вне необходимые изменения и применить их одновременно, в рамках одной операции. Такое поведение обеспечивает пара методов Phar::startBuffering()/Phar::stopBuffering().

Настройки буферизации индивидуальны для каждого архива. Включенная буферизация для foo.phar никак не влияет на режим работы с bar.phar.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

В случае проблем с записью на диск будет выброшено исключение PharException.

Примеры

Пример #1 Пример использования Phar::stopBuffering()

<?php
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p['file1.txt'] = 'hi';
$p->startBuffering();
var_dump($p->getStub());
$p->setStub("<?php
function __autoload(\$class)
{
    include 'phar://brandnewphar.phar/' . str_replace('_', '/', \$class) . '.php';
}
Phar::mapPhar('brandnewphar.phar');
include 'phar://brandnewphar.phar/startup.php';
__HALT_COMPILER();");
$p->stopBuffering();
var_dump($p->getStub());
?>

Результат выполнения данного примера:

string(24) "<?php __HALT_COMPILER();"
string(195) "<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('brandnewphar.phar');
include 'phar://brandnewphar.phar/startup.php';
__HALT_COMPILER();"

Смотрите также

  • Phar::startBuffering() - Запускает буферизацию операций записи, отключая запись изменений Phar-архива на диск
  • Phar::isBuffering() - Проверить, будут ли операции с Phar-архивом буферизованы или записаны напрямую на диск


Распаковывает все файлы в текущем Phar-архиве

  • « Phar::stopBuffering
  • Phar::unlinkArchive »
  • PHP Manual
  • Phar
  • Распаковывает все файлы в текущем Phar-архиве

Phar::uncompressAllFiles

(PECL phar < 2.0.0)

Phar::uncompressAllFiles — Распаковывает все файлы в текущем Phar-архиве

Описание

public Phar::uncompressAllFiles ( void ) : bool

Замечание:

Этот метод был
удален из расширения phar, начиная с версии 2.0.0. Альтернативные реализации возможны с помощью функций
Phar::compress(),
Phar::decompress(), Phar::compressFiles() и
Phar::decompressFiles().

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Этот метод распаковывает все файлы в Phar-архиве. Если какие-либо файлы были сжаты с использованием gzip-сжатия, то для их распаковки должен быть включен модуль zlib, а для распаковки любых файлов, сжатых с использованием bzip2-сжатия, требуется модуль bzip2. Как и в случае с другим функционалом, модифицирующим содержание phar-архива, для успешной работы данного метода необходимо, чтобы INI-опция phar.readonly была отключена.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Выбрасывает исключение BadMethodCallException, если INI-переменная phar.readonly включена, если модуль bzip2 не включен, и какие-либо файлы в архиве сжаты с использованием bzip2-сжатия, или если модуль zlib не включен, и какие-либо файлы в архиве сжаты с использованием gzip-сжатия.

Примеры

Пример #1 Пример использования Phar::uncompressAllFiles()

<?php
try {
    $p = new Phar('/путь/к/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'привет';
    $p['myfile2.txt'] = 'привет';
    $p->compressAllFilesGZ();
    foreach ($p as $file) {
        var_dump($file->getFileName());
        var_dump($file->isCompressed());
        var_dump($file->isCompressedBZIP2());
        var_dump($file->isCompressedGZ());
    }
    $p->uncompressAllFiles();
    foreach ($p as $file) {
        var_dump($file->getFileName());
        var_dump($file->isCompressed());
        var_dump($file->isCompressedBZIP2());
        var_dump($file->isCompressedGZ());
    }
} catch (Exception $e) {
    echo 'Операции записи файла my.phar потерпели неудачу: ', $e;
}
?>

Результат выполнения данного примера:

string(10) "myfile.txt"
bool(true)
bool(false)
bool(true)
string(11) "myfile2.txt"
bool(true)
bool(false)
bool(true)
string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressedBZIP2() - Определить, сжат ли файл с помощью bzip2
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::isCompressedGZ() - Определить, сжат ли файл с помощью gz
  • PharFileInfo::setCompressedBZIP2() - Сжатие файла в phar-архиве с использованием Bzip2
  • PharFileInfo::setUncompressed() - Расжать файл внутри phar-архива, если он сжат
  • PharFileInfo::setCompressedGZ() - Сжатие файла в phar-архиве с использованием gz
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::compressAllFilesBZIP2() - Сжимает все файлы в текущем Phar-архиве с помощью Bzip2-сжатия
  • Phar::compressAllFilesGZ() - Сжимает все файлы в текущем Phar-архиве с помощью Gzip-сжатия
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия


Полностью удалить архив из памяти и с диска

  • « Phar::uncompressAllFiles
  • Phar::webPhar »
  • PHP Manual
  • Phar
  • Полностью удалить архив из памяти и с диска

Phar::unlinkArchive

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::unlinkArchive — Полностью удалить архив из памяти и с диска

Описание

final public static Phar::unlinkArchive ( string $archive ) : bool

Полностью удаляет архив из памяти и с диска.

Список параметров

archive

Путь к архиву на файловой системе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

В случае присутствия открытых файловых дескрипторов к архиву или объектов Phar, PharData, PharFileInfo, ссылающихся на этот архив, будет выброшено исключение PharException.

Примеры

Пример #1 Пример использования Phar::unlinkArchive()

<?php
// простое использование
Phar::unlinkArchive('/path/to/my.phar');

// более частый вариант использования:
$p = new Phar('my.phar');
$fp = fopen('phar://my.phar/file.txt', 'r');
// создается 'my.phar.gz'
$gp = $p->compress(Phar::GZ);
// удаляются все ссылки на архив
unset($p);
fclose($fp);
// удаляются все следы существования
Phar::unlinkArchive('my.phar');
?>

Смотрите также

  • Phar::delete() - Удаляет файл внутри phar-архива
  • Phar::offsetUnset() - Удалить файл из phar-архива


mapPhar для phar-архивов на базе веб. Контроллер фронтенда для веб-приложений

  • « Phar::unlinkArchive
  • PharData »
  • PHP Manual
  • Phar
  • mapPhar для phar-архивов на базе веб. Контроллер фронтенда для веб-приложений

Phar::webPhar

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::webPhar — mapPhar для phar-архивов на базе веб. Контроллер фронтенда для веб-приложений

Описание

final public static Phar::webPhar ([ string $alias [, string $index = "index.php" [, string $f404 [, array $mimetypes [, callable $rewrites ]]]]] ) : void

Phar::mapPhar() для phar-архивов на базе веб. Этот метод разбиарет $_SERVER['REQUEST_URI'] и маршрутизирует запросы веб-браузера к конкретному файлу в phar-архиве. Фактически это симуляция веб-сервера, перенаправляющего запросы к корректным файлам, возвращающим правильные заголовки и разбирающий PHP-файлы, если необходимо. Этот мощный метод является частью того, что упрощает преобразование существующего PHP-приложения в phar-архив. Совместно с Phar::mungServer() и Phar::interceptFileFuncs() он помогает запускать любое веб-приложение из phar-архива, никак его не меняя.

Phar::webPhar() должен вызываться только из заглушки (stub) phar-архива (о том, что такое заглушка и как с ним работать, читайте тут).

Список параметров

alias

Псевдоним для использования в обертках phar://.

index

Местоположение в phar-архиве индексного файла.

f404

Местоположение скрипта, отвечающего за обработку ошибки HTTP 404. Скрипт должен возвращать корректные заголовки для этой ошибки.

mimetypes

Массив сопоставления расширений файлов типам MIME. Если достаточно сопоставления по умолчанию, то передайте сюда пустой массив. По умолчанию используются такие сопоставления:

<?php
$mimes = array(
    'phps' => Phar::PHPS, // передается в highlight_file()
    'c' => 'text/plain',
    'cc' => 'text/plain',
    'cpp' => 'text/plain',
    'c++' => 'text/plain',
    'dtd' => 'text/plain',
    'h' => 'text/plain',
    'log' => 'text/plain',
    'rng' => 'text/plain',
    'txt' => 'text/plain',
    'xsd' => 'text/plain',
    'php' => Phar::PHP, // разбирается как PHP
    'inc' => Phar::PHP, // разбирается как PHP
    'avi' => 'video/avi',
    'bmp' => 'image/bmp',
    'css' => 'text/css',
    'gif' => 'image/gif',
    'htm' => 'text/html',
    'html' => 'text/html',
    'htmls' => 'text/html',
    'ico' => 'image/x-ico',
    'jpe' => 'image/jpeg',
    'jpg' => 'image/jpeg',
    'jpeg' => 'image/jpeg',
    'js' => 'application/x-javascript',
    'midi' => 'audio/midi',
    'mid' => 'audio/midi',
    'mod' => 'audio/mod',
    'mov' => 'movie/quicktime',
    'mp3' => 'audio/mp3',
    'mpg' => 'video/mpeg',
    'mpeg' => 'video/mpeg',
    'pdf' => 'application/pdf',
    'png' => 'image/png',
    'swf' => 'application/shockwave-flash',
    'tif' => 'image/tiff',
    'tiff' => 'image/tiff',
    'wav' => 'audio/wav',
    'xbm' => 'image/xbm',
    'xml' => 'text/xml',
);
?>

rewrites

Функция перезаписи, которой передается единственный строковый параметр и которая должна также вернуть строку, либо FALSE.

Если вы используете fast-cgi или cgi, то параметром, передаваемым в эту функцию будет значение переменной $_SERVER['PATH_INFO']. В ином случае передаваться будет значение переменной $_SERVER['REQUEST_URI'].

Если будет возвращена строка, то она будет использована как путь к файлу внутри архива. Если вернется FALSE, то webPhar() пошлет код ошибки HTTP 403.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбросит исключение PharException, если будет невозможно открыть какой-либо файл, либо если вызывать ее не из заглушки. Если в параметре mimetypes указать некорректный MIME-тип, или в rewrites будет передана некорректная функция обратного вызова, то будет выброшено исключение UnexpectedValueException.

Примеры

Пример #1 Пример использования Phar::webPhar()

В примере ниже, созданный phar отобразит Hello World при обращении из браузеа к /myphar.phar/index.php или к /myphar.phar, и отобразит исходный код index.phps при обращении к /myphar.phar/index.phps.

<?php
// создаем архив:
try {
    $phar = new Phar('myphar.phar');
    $phar['index.php'] = '<?php echo "Hello World"; ?>';
    $phar['index.phps'] = '<?php echo "Hello World"; ?>';
    $phar->setStub('<?php
Phar::webPhar();
__HALT_COMPILER(); ?>');
} catch (Exception $e) {
    // обработка ошибок
}
?>

Смотрите также

  • Phar::mungServer() - Определить список до четырех $_SERVER-переменных, которые должны быть изменены для запуска
  • Phar::interceptFileFuncs() - Указывает phar перехватывать fopen, file_get_contents, opendir и все stat-функции


Класс PharData

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Введение

Класс PharData предоставляет высокоуровневый интерфейс доступа и создания неисполняемых tar- и zip-архивов. Поскольку архивы этих типов не содержат заглушку и не могут быть выполнены расширением Phar, есть возможность создавать и обрабатывать обычные zip- и tar-файлы, используя класс PharData, даже если параметр phar.readonly в php.ini равен 1.

Обзор классов

PharData extends RecursiveDirectoryIterator {
/* Наследуемые константы */
const integer FilesystemIterator::CURRENT_AS_PATHNAME = 32 ;
const integer FilesystemIterator::CURRENT_AS_FILEINFO = 0 ;
const integer FilesystemIterator::CURRENT_AS_SELF = 16 ;
const integer FilesystemIterator::CURRENT_MODE_MASK = 240 ;
const integer FilesystemIterator::KEY_AS_PATHNAME = 0 ;
const integer FilesystemIterator::KEY_AS_FILENAME = 256 ;
const integer FilesystemIterator::FOLLOW_SYMLINKS = 512 ;
const integer FilesystemIterator::KEY_MODE_MASK = 3840 ;
const integer FilesystemIterator::NEW_CURRENT_AND_KEY = 256 ;
const integer FilesystemIterator::SKIP_DOTS = 4096 ;
const integer FilesystemIterator::UNIX_PATHS = 8192 ;
/* Методы */
addEmptyDir ( string $dirname ) : void
public Phar::addFile ( string $file [, string $localname ] ) : void
addFromString ( string $localname , string $contents ) : void
public Phar::buildFromDirectory ( string $base_dir [, string $regex ] ) : array
buildFromIterator ( Iterator $iter [, string $base_directory ] ) : array
compress ( int $compression [, string $extension ] ) : object
compressFiles ( int $compression ) : void
__construct ( string $fname [, int $flags [, string $alias [, int $format = Phar::TAR ]]] )
convertToData ([ int $format [, int $compression [, string $extension ]]] ) : PharData
convertToExecutable ([ int $format [, int $compression [, string $extension ]]] ) : Phar
copy ( string $oldfile , string $newfile ) : bool
decompress ([ string $extension ] ) : object
decompressFiles ( void ) : bool
delMetadata ( void ) : bool
delete ( string $entry ) : bool
extractTo ( string $pathto [, string|array $files [, bool $overwrite = FALSE ]] ) : bool
isWritable ( void ) : bool
offsetSet ( string $offset , string $value ) : void
offsetUnset ( string $offset ) : bool
setAlias ( string $alias ) : bool
setDefaultStub ([ string $index [, string $webindex ]] ) : bool
public Phar::setMetadata ( mixed $metadata ) : void
public Phar::setSignatureAlgorithm ( int $sigtype ) : void
setStub ( string $stub [, int $len = -1 ] ) : bool
/* Наследуемые методы */
public Phar::addEmptyDir ( string $dirname ) : void
public Phar::addFile ( string $file [, string $localname ] ) : void
public Phar::addFromString ( string $localname , string $contents ) : void
final public static Phar::apiVersion ( void ) : string
public Phar::buildFromDirectory ( string $base_dir [, string $regex ] ) : array
public Phar::buildFromIterator ( Iterator $iter [, string $base_directory ] ) : array
final public static Phar::canCompress ([ int $type = 0 ] ) : bool
final public static Phar::canWrite ( void ) : bool
public Phar::compress ( int $compression [, string $extension ] ) : object
public Phar::compressAllFilesBZIP2 ( void ) : bool
public Phar::compressAllFilesGZ ( void ) : bool
public Phar::compressFiles ( int $compression ) : void
public Phar::__construct ( string $fname [, int $flags [, string $alias ]] )
public Phar::convertToData ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] ) : PharData
public Phar::convertToExecutable ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] ) : Phar
public Phar::copy ( string $oldfile , string $newfile ) : bool
public Phar::count ( void ) : int
final public static Phar::createDefaultStub ([ string $indexfile [, string $webindexfile ]] ) : string
public Phar::decompress ([ string $extension ] ) : object
public Phar::decompressFiles ( void ) : bool
public Phar::delMetadata ( void ) : bool
public Phar::delete ( string $entry ) : bool
public Phar::extractTo ( string $pathto [, string|array $files [, bool $overwrite = FALSE ]] ) : bool
public Phar::getAlias ( void ) : string
public Phar::getMetadata ( void ) : mixed
public Phar::getModified ( void ) : bool
public Phar::getPath ( void ) : string
public Phar::getSignature ( void ) : array
public Phar::getStub ( void ) : string
final public static Phar::getSupportedCompression ( void ) : array
final public static Phar::getSupportedSignatures ( void ) : array
public Phar::getVersion ( void ) : string
public Phar::hasMetadata ( void ) : bool
final public static Phar::interceptFileFuncs ( void ) : void
public Phar::isBuffering ( void ) : bool
public Phar::isCompressed ( void ) : mixed
public Phar::isFileFormat ( int $format ) : bool
final public static Phar::isValidPharFilename ( string $filename [, bool $executable = TRUE ] ) : bool
public Phar::isWritable ( void ) : bool
final public static Phar::loadPhar ( string $filename [, string $alias ] ) : bool
final public static Phar::mapPhar ([ string $alias [, int $dataoffset = 0 ]] ) : bool
final public static Phar::mount ( string $pharpath , string $externalpath ) : void
final public static Phar::mungServer ( array $munglist ) : void
public Phar::offsetExists ( string $offset ) : bool
public Phar::offsetGet ( string $offset ) : int
public Phar::offsetSet ( string $offset , string $value ) : void
public Phar::offsetUnset ( string $offset ) : bool
final public static Phar::running ([ bool $retphar = TRUE ] ) : string
public Phar::setAlias ( string $alias ) : bool
public Phar::setDefaultStub ([ string $index [, string $webindex ]] ) : bool
public Phar::setMetadata ( mixed $metadata ) : void
public Phar::setSignatureAlgorithm ( int $sigtype [, string $privatekey ] ) : void
public Phar::setStub ( string $stub [, int $len = -1 ] ) : bool
public Phar::startBuffering ( void ) : void
public Phar::stopBuffering ( void ) : void
public Phar::uncompressAllFiles ( void ) : bool
final public static Phar::unlinkArchive ( string $archive ) : bool
final public static Phar::webPhar ([ string $alias [, string $index = "index.php" [, string $f404 [, array $mimetypes [, callable $rewrites ]]]]] ) : void
}

Содержание

  • PharData::addEmptyDir — Добавить пустую директорию в tar/zip-архив
  • PharData::addFile — Добавить существующие файлы к tar/zip-архиву
  • PharData::addFromString — Создать файл с заданным содержимым в tar/zip-архиве
  • PharData::buildFromDirectory — Создает tar/zip-архив из файлов в директории
  • PharData::buildFromIterator — Создание tar/zip-архива с помощью итератора
  • PharData::compress — Сжимает весь архив tar/zip, используя сжатие Gzip или Bzip2
  • PharData::compressFiles — Сжать все файлы в текущем tar/zip-архиве
  • PharData::__construct — Конструктор объекта PharData
  • PharData::convertToData — Конвертация phar-архива в незапускаемый tar/zip-архив
  • PharData::convertToExecutable — Конвертация tar/zip-архива с данными в запускаемый phar-архив
  • PharData::copy — Скопировать файл из tar/zip-архива в новый файл внутри него же
  • PharData::decompress — Распаковать весь Phar-архив
  • PharData::decompressFiles — Распаковать все файлы в текущем zip-архиве
  • PharData::delMetadata — Удалить глобальные метаданные для zip-архива
  • PharData::delete — Удалить файл из tar/zip-архива
  • PharData::extractTo — Извлечь содержимое tar/zip-архива в директорию
  • PharData::isWritable — Проверить, можно ли модифицировать tar/zip-архив
  • PharData::offsetSet — Изменение содержимого файла
  • PharData::offsetUnset — Удалить файл из tar/zip-архива
  • PharData::setAlias — Функция заглушка (Phar::setAlias нельзя использовать для PharData)
  • PharData::setDefaultStub — Функция заглушка (Phar::setDefaultStub нельзя использовать для PharData)
  • Phar::setMetadata — Установить метаданные phar-архива
  • Phar::setSignatureAlgorithm — Установить алгоритм подписания phar-архива и применение его
  • PharData::setStub — Функция заглушка (Phar::setStub нельзя использовать для PharData)


Добавить пустую директорию в tar/zip-архив

  • « PharData
  • PharData::addFile »
  • PHP Manual
  • PharData
  • Добавить пустую директорию в tar/zip-архив

PharData::addEmptyDir

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::addEmptyDir — Добавить пустую директорию в tar/zip-архив

Описание

PharData::addEmptyDir ( string $dirname ) : void

С помощью этого места можно создать директорию по пути dirname. Этот метод аналогичен ZipArchive::addEmptyDir().

Список параметров

dirname

Путь создаваемой директории

Возвращаемые значения

Ничего не возвращает. В случае ошибок выбрасывает исключениее.

Примеры

Пример #1 Пример использования PharData::addEmptyDir()

<?php
try {
    $a = new PharData('/path/to/my.tar');

    $a->addEmptyDir('/full/path/to/file');
    // показывает, как хранится файл
    $b = $a['full/path/to/file']->isDir();
} catch (Exception $e) {
    // обрабатываем ошибки
}
?>

Смотрите также

  • Phar::addEmptyDir() - Добавляет в phar-архив пустую директорию
  • PharData::addFile() - Добавить существующие файлы к tar/zip-архиву
  • PharData::addFromString() - Создать файл с заданным содержимым в tar/zip-архиве


Добавить существующие файлы к tar/zip-архиву

  • « PharData::addEmptyDir
  • PharData::addFromString »
  • PHP Manual
  • PharData
  • Добавить существующие файлы к tar/zip-архиву

PharData::addFile

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::addFile — Добавить существующие файлы к tar/zip-архиву

Описание

public Phar::addFile ( string $file [, string $localname ] ) : void

С помощью этого метода можно добавить к архиву любые файлы или URL. Если задан опциональный параметр localname, то файл будет добавлен в архив с указанным именем, иначе будет использовано оригинальное имя из параметра file. Для URL локальное имя должно быть указано в обязательном порядке, иначе будет выброшено исключение. Метод аналогичен ZipArchive::addFile().

Список параметров

file

Полный или относительный путь до файла на диске.

localname

Путь, по которому файл необходимо добавить в архив.

Возвращаемые значения

Ничего не возвращает, а в случае ошибки выбрасывает исключение.

Примеры

Пример #1 Пример использования PharData::addFile()

<?php
try {
    $a = new PharData('/path/to/my.tar');

    $a->addFile('/full/path/to/file');
    // добавление файла
    $b = $a['full/path/to/file']->getContent();

    $a->addFile('/full/path/to/file', 'my/file.txt');
    $c = $a['my/file.txt']->getContent();

    // добавление URL
    $a->addFile('http://www.example.com', 'example.html');
} catch (Exception $e) {
    // обработка ошибок
}
?>

Смотрите также

  • PharData::offsetSet() - Изменение содержимого файла
  • Phar::addFile() - Добавляет в phar-архив файл из файловой системы
  • PharData::addFromString() - Создать файл с заданным содержимым в tar/zip-архиве
  • PharData::addEmptyDir() - Добавить пустую директорию в tar/zip-архив


Создать файл с заданным содержимым в tar/zip-архиве

  • « PharData::addFile
  • PharData::buildFromDirectory »
  • PHP Manual
  • PharData
  • Создать файл с заданным содержимым в tar/zip-архиве

PharData::addFromString

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::addFromString — Создать файл с заданным содержимым в tar/zip-архиве

Описание

PharData::addFromString ( string $localname , string $contents ) : void

Этот метод позволяет создать внутри архива файл с заданным текстом. Файл будет сохранен по пути localname. Этот метод аналогичен ZipArchive::addFromString().

Список параметров

localname

Путь создаваемого файла.

contents

Содержимое файла в виде строки

Возвращаемые значения

Ничего не возвращает, в случае ошибки выбрасывает исключение.

Примеры

Пример #1 Пример использования PharData::addFromString()

<?php
try {
    $a = new PharData('/path/to/my.tar');

    $a->addFromString('path/to/file.txt', 'my simple file');
    $b = $a['path/to/file.txt']->getContent();

    // Для добавления содержимого через потоковую обертку для больших файлов, используйте offsetSet()
    $c = fopen('/path/to/hugefile.bin');
    $a['largefile.bin'] = $c;
    fclose($c);
} catch (Exception $e) {
    // обработка ошибок
}
?>

Смотрите также

  • PharData::offsetSet() - Изменение содержимого файла
  • Phar::addFromString() - Добавляет в phar-архив файл из строки
  • PharData::addFile() - Добавить существующие файлы к tar/zip-архиву
  • PharData::addEmptyDir() - Добавить пустую директорию в tar/zip-архив


Создает tar/zip-архив из файлов в директории

  • « PharData::addFromString
  • PharData::buildFromIterator »
  • PHP Manual
  • PharData
  • Создает tar/zip-архив из файлов в директории

PharData::buildFromDirectory

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::buildFromDirectory — Создает tar/zip-архив из файлов в директории

Описание

public Phar::buildFromDirectory ( string $base_dir [, string $regex ] ) : array

Наполняет tar/zip-архив содержимым директории. Второй опциональный параметр является регулярным выражением (pcre). Файлы, имена которых подходят под регулярное выражение, будут включены в архив, а все остальные нет. Если при создании архива нужна большая избирательность, то используйте метод PharData::buildFromIterator().

Список параметров

base_dir

Полный или относительный путь до директории, файлы из которой будут добавлены в архив.

regex

Регулярное выражение, определяющее, какие файлы необходимо включать в архив.

Возвращаемые значения

Phar::buildFromDirectory() возвращает ассоциативный массив, связывающий путь к файлу внутри архива с полным путем к файлу на диске.

Ошибки

Выбрасывает исключение BadMethodCallException, если не удается инициализировать внутренние итераторы директории. Исключение PharException выбрасывается при ошибках записи на диск.

Примеры

Пример #1 Пример использования PharData::buildFromDirectory()

<?php
$phar = new PharData('project.tar');
// добавим все файлы в проект
$phar->buildFromDirectory(dirname(__FILE__) . '/project');

$phar2 = new PharData('project2.zip');
// добавим в проект только .php файлы
$phar2->buildFromDirectory(dirname(__FILE__) . '/project', '/\.php$/');
?>

Смотрите также

  • Phar::buildFromDirectory() - Создает phar-архив из файлов, расположенных внутри директории
  • PharData::buildFromIterator() - Создание tar/zip-архива с помощью итератора


Создание tar/zip-архива с помощью итератора

  • « PharData::buildFromDirectory
  • PharData::compress »
  • PHP Manual
  • PharData
  • Создание tar/zip-архива с помощью итератора

PharData::buildFromIterator

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::buildFromIterator — Создание tar/zip-архива с помощью итератора

Описание

PharData::buildFromIterator ( Iterator $iter [, string $base_directory ] ) : array

Наполнение архив tar или zip с помощью итератора. Поддерживаются два типа итераторов: итератор, связывающий файл на диске с файлом внутри архива и итератор в стиле DirectoryIterator, который возвращает объекты SplFileInfo. Для итераторов, возвращающих объекты SplFileInfo, второй параметр является обязательным.

Примеры

Пример #1 Пример использования PharData::buildFromIterator() с SplFileInfo

Для большинства tar/zip-архивов, структура отражает имеющееся дерево директорий на файловой системе. К примеру, для создания tar/zip-архива, содержащего следующую структуру директорий и файлов:

/path/to/project/
                 config/
                        dist.xml
                        debug.xml
                 lib/
                     file1.php
                     file2.php
                 src/
                     processthing.php
                 www/
                     index.php
                 cli/
                     index.php

Нужно использовать такой код, для создания архива "project.tar":

<?php
$phar = new PharData('project.tar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new RecursiveDirectoryIterator('/path/to/project')),
    '/path/to/project');
?>

Файл project.tar можно использовать сразу же после его создания. PharData::buildFromIterator() не производит настройки сжатия или добавления метаданных. Эти действия необходимо произвести самостоятельно, после создания архива.

Интересное замечание: PharData::buildFromIterator() также можно использовать для копирования контента уже существующего phar, tar или zip-архива, так как объект PharData наследует от DirectoryIterator:

<?php
$phar = new PharData('project.tar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new Phar('/path/to/anotherphar.phar')),
    'phar:///path/to/anotherphar.phar/path/to/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Пример #2 Пример использования PharData::buildFromIterator() с другим итератором

Можно использовать итераторы, возвращающие связку "ключ"=>"значение", например ArrayIterator:

<?php
$phar = new PharData('project.tar');
$phar->buildFromIterator(
    new ArrayIterator(
     array(
        'internal/file.php' => dirname(__FILE__) . '/somefile.php',
        'another/file.jpg' => fopen('/path/to/bigfile.jpg', 'rb'),
     )));
?>

Список параметров

iter

Итератор, предоставляющий связки ключ=>значение, либо объекты SplFileInfo

base_directory

Для итераторов, возвращающих объекты SplFileInfo, часть полного пути добавляемых файлов, которая будет удаляться из полного пути внутри архива.

Возвращаемые значения

PharData::buildFromIterator() возвращает ассоциативный массив, связывающий путь к файлу внутри архива с полным путем к файлу на диске.

Ошибки

Метод выбрасывает исключение UnexpectedValueException, если итератор вернул некорректное значение, например целочисленный ключ вместо строки. Исключение BadMethodCallException выбрасывается когда задан итератор, возвращающий объекты SplFileInfo без задания параметра base_directory. В случае проблем с записью на диск бросается исключение PharException.

Смотрите также

  • Phar::buildFromIterator() - Создает phar-архив из итератора


Сжимает весь архив tar/zip, используя сжатие Gzip или Bzip2

  • « PharData::buildFromIterator
  • PharData::compressFiles »
  • PHP Manual
  • PharData
  • Сжимает весь архив tar/zip, используя сжатие Gzip или Bzip2

PharData::compress

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::compress — Сжимает весь архив tar/zip, используя сжатие Gzip или Bzip2

Описание

PharData::compress ( int $compression [, string $extension ] ) : object

Для tar-архивов, этот метод произведет сжатие всего архива с помощью gzip или bzip2. Результирующий файл можно расжать с помощью команд gunzip или bunzip, либо использовать напрямую через расширение Phar.

Для zip-архивов этот метод выбросит исключение. Для gzip-сжатия должно быть доступно расширение zlib. Для bzip2-сжатия должно быть доступно расширение bzip2.

Этот метод переименовывает архив, добавляя к его имени расширение .gz, .bz2 или наоборот, убирающее его, если параметр типа сжатия задан как Phar::NONE. Также можно явно указать, какое расширение будет иметь файл.

Список параметров

compression

Одна из констант: Phar::GZ, Phar::BZ2, или Phar::NONE для отключения компрессии.

extension

По умолчанию файлу назначится расширение .tar.gz или .tar.bz2 для сжатия и .tar, если сжатие отключено.

Возвращаемые значения

Возвращает объект PharData.

Ошибки

Выбрасывает исключение BadMethodCallException если отсутствует необходимое расширение, zlib или bzip2.

Примеры

Пример #1 Пример использования PharData::compress()

<?php
$p = new PharData('/path/to/my.tar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p1 = $p->compress(Phar::GZ); // copies to /path/to/my.tar.gz
$p2 = $p->compress(Phar::BZ2); // copies to /path/to/my.tar.bz2
$p3 = $p2->compress(Phar::NONE); // exception: /path/to/my.tar already exists
?>

Смотрите также

  • Phar::compress() - Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия


Сжать все файлы в текущем tar/zip-архиве

  • « PharData::compress
  • PharData::__construct »
  • PHP Manual
  • PharData
  • Сжать все файлы в текущем tar/zip-архиве

PharData::compressFiles

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::compressFiles — Сжать все файлы в текущем tar/zip-архиве

Описание

PharData::compressFiles ( int $compression ) : void

Для tar-архивов данный метод выбросит исключение BadMethodCallException, так как сжатие отдельных файлов в tar-архиве не поддерживается форматом файла. Используйте PharData::compress() для сжатия всего tar-архива.

Для Zip-архивов этот метод сожмет все файлы используя заданный тип сжатия. Для корректной работы требуются включенные расширения zlib или bzip2, в зависимости от типа сжатия. Также, если некоторые файлы уже были сжаты, то необходимо, чтобы соответствующее расширение было включено, иначе не удастся обработать.

Список параметров

compression

Одна из констант: Phar::GZ, Phar::BZ2 или Phar::NONE, для отмены сжатия.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение BadMethodCallException если выключена INI-опция phar.readonly, или если отсутствует необходимое расширение, zlib или bzip2.

Примеры

Пример #1 Пример использования PharData::compressFiles()

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
?>

Результат выполнения данного примера:

string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)
string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::compress() - Сжать текущий файл с помощью zlib или bzip2
  • PharFileInfo::decompress() - Расжимает текущий файл
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • PharData::decompressFiles() - Распаковать все файлы в текущем zip-архиве
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
  • PharData::compress() - Сжимает весь архив tar/zip, используя сжатие Gzip или Bzip2
  • PharData::decompress() - Распаковать весь Phar-архив


Конструктор объекта PharData

  • « PharData::compressFiles
  • PharData::convertToData »
  • PHP Manual
  • PharData
  • Конструктор объекта PharData

PharData::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::__construct — Конструктор объекта PharData

Описание

PharData::__construct ( string $fname [, int $flags [, string $alias [, int $format = Phar::TAR ]]] )

Список параметров

fname

Путь либо к существующему tar/zip-архиву, либо к вновь создаваемому

flags

Флаги для передачи родительскому классу Phar RecursiveDirectoryIterator.

alias

Псевдоним, который необходимо назначить phar-архиву для использования в потоковых обертках.

format

Одна из констант формата файлов доступная для класса Phar.

Ошибки

Выбрасывает исключение BadMethodCallException, если вызван дважды; Выбрасывает исключение UnexpectedValueException, если Phar-архив невозможно открыть.

Примеры

Пример #1 Пример использования PharData::__construct()

<?php
try {
    $p = new PharData('/path/to/my.tar', Phar::CURRENT_AS_FILEINFO | Phar::KEY_AS_FILENAME);
} catch (UnexpectedValueException $e) {
    die('Не удалось открыть my.tar');
} catch (BadMethodCallException $e) {
    echo 'Технически, это никогда не произойдет';
}
echo file_get_contents('phar:///path/to/my.tar/example.txt');
?>


Конвертация phar-архива в незапускаемый tar/zip-архив

  • « PharData::__construct
  • PharData::convertToExecutable »
  • PHP Manual
  • PharData
  • Конвертация phar-архива в незапускаемый tar/zip-архив

PharData::convertToData

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::convertToData — Конвертация phar-архива в незапускаемый tar/zip-архив

Описание

PharData::convertToData ([ int $format [, int $compression [, string $extension ]]] ) : PharData

Этот метод используется для преобразования незапускаемого tar/zip-прхива в другой незапускаемый формат.

Если не указано никаких изменений, то будет выброшено исключение BadMethodCallException. Этот метод можно использовать для преобразования tar-архива в zip-архив и наоборот. Несмотря на то что, что можно изменить сжатие для tar-архива с помощью этого метода, для этих целей лучше использовать метод PharData::compress().

В случае успеха будет создан новый архив на диске и возвращен объект PharData. Старый архив удаляться не будет.

Список параметров

format

Одна из констант: Phar::TAR или Phar::ZIP. Если задать как NULL, то будет использован текущий формат.

compression

Одна из констант: Phar::NONE (для отключения сжатия всего архива), Phar::GZ (для zlib-сжатия), Phar::BZ2 (для bzip-сжатия).

extension

Этот параметр используется для явного указания расширения нового архива. Обратите внимание, что для незапускаемых архивов ни в коем случае нельзя допускать пояаление подстроки .phar в любом месте имени файла.

По умолчанию для tar-архивов используются расширения: .tar, .tar.gz и .tar.bz2. Для zip-архивов: .zip.

Возвращаемые значения

Метод возвращает объект PharData, либо выбрасывает исключение.

Ошибки

Метод выбрасывает исключениеBadMethodCallException когда не может произвести сжатие, когда задан неизвестный метод сжатия, для архива включена буферизация с помощью Phar::startBuffering(), и не отклбчена при помощи Phar::stopBuffering(). Исключение PharException выбрасывается при любых проблемах создания phar-архива.

Примеры

Пример #1 Пример использования PharData::convertToData()

Использование PharData::convertToData():

<?php
try {
    $tarphar = new PharData('myphar.tar');
    // обратите внимание, что myphar.tar *не* удаляется
    // создаем myphar.zip
    $zip = $tarphar->convertToData(Phar::ZIP);
    // создаем myphar.tbz
    $tgz = $zip->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
    // создаем myphar.phar.tgz
    $phar = $tarphar->convertToData(Phar::PHAR); // выбрасывает исключение
} catch (Exception $e) {
    // обработка ошибок
}
?>

Смотрите также

  • Phar::convertToExecutable() - Конвертирует phar-архив в другой исполняемый формат файла
  • Phar::convertToData() - Конвертирует phar-архив в неисполняемый tar- или zip-файл
  • PharData::convertToExecutable() - Конвертация tar/zip-архива с данными в запускаемый phar-архив


Конвертация tar/zip-архива с данными в запускаемый phar-архив

  • « PharData::convertToData
  • PharData::copy »
  • PHP Manual
  • PharData
  • Конвертация tar/zip-архива с данными в запускаемый phar-архив

PharData::convertToExecutable

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::convertToExecutable — Конвертация tar/zip-архива с данными в запускаемый phar-архив

Описание

PharData::convertToExecutable ([ int $format [, int $compression [, string $extension ]]] ) : Phar

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Этот метод используется для конвертации незапускаемого tar/zip-архива а запускаемый phar-архив. Может быть использован любой из трех запускаемых форматов (phar, tar или zip). Также допустимо сжатие архива целиком.

Если изменения не указаны, этот метод бросает исключение BadMethodCallException.

В случае успеха, этот метод создает новый архив на диске и возвращает объект Phar. Старый архив остается нетронутым.

Список параметров

format

Одна из констант: Phar::PHAR, Phar::TAR, или Phar::ZIP. Если задано NULL, то будет сохранен текущий формат.

compression

Одна из констант: Phar::NONE (без сжатия всего архива), Phar::GZ (zlib сжатие), Phar::BZ2 (bzip сжатие).

extension

Этот параметр используется для явного задания расширения для нового архива. Обратите внимание, что для того, чтобы обрабатываться как phar-архив, файлы должны в своем расширении иметь .phar.

При конвертации в phar-архива, расширение по умолчанию .phar, .phar.gz или .phar.bz2, в зависимости от заданного типа сжатия. Для tar-архивов, расширение по умолчанию .phar.tar, .phar.tar.gz, и .phar.tar.bz2. Для zip-архивов расширение по умолчанию .phar.zip.

Возвращаемые значения

Этот метод возвращает объект Phar, либо выбрасывает исключение.

Ошибки

Метод выбрасывает исключение BadMethodCallException если не может произвести сжатие, либо если задан неизвестный алгоритм сжатия, для архива включена буферизация с помощью Phar::startBuffering(), а метод Phar::stopBuffering() не вызывался. Выбрасывается исключение UnexpectedValueException, если запись запрещена. И выбрасывается PharException, если возникли проблемы записи на диск.

Примеры

Пример #1 Пример использования PharData::convertToExecutable()

Используем PharData::convertToExecutable():

<?php
try {
    $tarphar = new PharData('myphar.tar');
    // конвертируем в формат phar
    // обратите внимание, что myphar.tar *не* удаляется
    $phar = $tarphar->convertToExecutable(Phar::PHAR); // creates myphar.phar
    $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
    // создаем myphar.phar.tgz
    $compressed = $tarphar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
    // обработка ошибок
}
?>

Смотрите также

  • Phar::convertToExecutable() - Конвертирует phar-архив в другой исполняемый формат файла
  • Phar::convertToData() - Конвертирует phar-архив в неисполняемый tar- или zip-файл
  • PharData::convertToData() - Конвертация phar-архива в незапускаемый tar/zip-архив


Скопировать файл из tar/zip-архива в новый файл внутри него же

  • « PharData::convertToExecutable
  • PharData::decompress »
  • PHP Manual
  • PharData
  • Скопировать файл из tar/zip-архива в новый файл внутри него же

PharData::copy

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::copy — Скопировать файл из tar/zip-архива в новый файл внутри него же

Описание

PharData::copy ( string $oldfile , string $newfile ) : bool

Копирует файл из tar/zip-архива в новый файл внутри него же. Это объектно-ориентированная альтернатива для copy() с потоковой оберткой phar.

Список параметров

oldfile

newfile

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения. Но лучше использовать механизм перехвата исключений для контроля успешности.

Ошибки

Выбрасывает исключение UnexpectedValueException, если копируемый файл не отсутствует, новый файл уже существует, запись запрещена или возникли проблемы с открытием чтением исходного файла. В случае проблем с записью на диск бросается исключение PharException.

Примеры

Пример #1 Пример использования PharData::copy()

В примере показано использование PharData::copy() и аналог с использованием потоковой обертки. Главное различие между этими подходами - обработка ошибок. Все методы PharData выбрасывают исключения, тогда как потоковые обертки используют функцию trigger_error().

<?php
try {
    $phar = new PharData('myphar.tar');
    $phar['a'] = 'hi';
    $phar->copy('a', 'b');
    echo $phar['b']; // выводит "phar://myphar.tar/b"
} catch (Exception $e) {
    // Обработка ошибок
}

// Аналог с использованием потоковых оберток.
// В случае проблем вместо исключения вызывается ошибка уровня E_WARNINGS
copy('phar://myphar.tar/a', 'phar//myphar.tar/c');
echo file_get_contents('phar://myphar.tar/c'); // выводит "hi"
?>


Распаковать весь Phar-архив

  • « PharData::copy
  • PharData::decompressFiles »
  • PHP Manual
  • PharData
  • Распаковать весь Phar-архив

PharData::decompress

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::decompress — Распаковать весь Phar-архив

Описание

PharData::decompress ([ string $extension ] ) : object

Для архивов типа tar, этот метод распаковывает весь архив.

Для архивов типа Zip этот метод выбросит исключение. Для разжатия gzip-архивов должно быть разрешено расширение zlib, а для bzip2, соответственно, расширение bzip2.

Также этот метод автоматически меняет расширение файла, по умолчанию .tar. Расширение можно указать явно с помощью параметра extension.

Список параметров

extension

По умолчанию при распаковке файлу меняется расширение на .tar. С помощью этого параметра можно явно указать новое расширение. Будьте осторожны, только запускаемые архивы могут содержать .phar в своих именах.

Возвращаемые значения

Возвращает объект типа PharData.

Ошибки

Выбрасывает исключение BadMethodCallException, если отсутствует расширение, необходимое для распаковки: zlib или bzip2.

Примеры

Пример #1 Пример использования PharData::decompress()

<?php
$p = new PharData('/path/to/my.tar.gz');
$p->decompress(); // creates /path/to/my.tar
?>

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::compress() - Сжать текущий файл с помощью zlib или bzip2
  • PharFileInfo::decompress() - Расжимает текущий файл
  • PharData::compress() - Сжимает весь архив tar/zip, используя сжатие Gzip или Bzip2
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • PharData::compress() - Сжимает весь архив tar/zip, используя сжатие Gzip или Bzip2
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
  • PharData::compressFiles() - Сжать все файлы в текущем tar/zip-архиве
  • PharData::decompressFiles() - Распаковать все файлы в текущем zip-архиве


Распаковать все файлы в текущем zip-архиве

  • « PharData::decompress
  • PharData::delMetadata »
  • PHP Manual
  • PharData
  • Распаковать все файлы в текущем zip-архиве

PharData::decompressFiles

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::decompressFiles — Распаковать все файлы в текущем zip-архиве

Описание

PharData::decompressFiles ( void ) : bool

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Для tar-архивов данный метод выбросит исключение BadMethodCallException, так как сжатие отдельных файлов в tar-архиве не поддерживается форматом файла. Используйте PharData::compress() для сжатия всего tar-архива.

Для Zip-архивов этот метод распакует все файлы по указанному пути. Для корректной работы требуются включенные расширения zlib или bzip2, в зависимости от тпа сжатия.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Выбрасывает исключение BadMethodCallException, если отсутствует необходимое расширение zlib или bzip2.

Примеры

Пример #1 Пример использования PharData::decompressFiles()

<?php
$p = new PharData('/path/to/my.zip');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
$p->decompressFiles();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
?>

Результат выполнения данного примера:

string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)
string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::compress() - Сжать текущий файл с помощью zlib или bzip2
  • PharFileInfo::decompress() - Расжимает текущий файл
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • PharData::compressFiles() - Сжать все файлы в текущем tar/zip-архиве
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
  • PharData::compress() - Сжимает весь архив tar/zip, используя сжатие Gzip или Bzip2
  • PharData::decompress() - Распаковать весь Phar-архив


Удалить глобальные метаданные для zip-архива

  • « PharData::decompressFiles
  • PharData::delete »
  • PHP Manual
  • PharData
  • Удалить глобальные метаданные для zip-архива

PharData::delMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::delMetadata — Удалить глобальные метаданные для zip-архива

Описание

PharData::delMetadata ( void ) : bool

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Удаляет глобальные метаданные для zip-архива

Список параметров

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, но лучше использовать проверку исключений.

Ошибки

Выбрасывает исключение PharException в случае ошибки при сохранении изменений на диск.

Примеры

Пример #1 Пример использования PharData::delMetaData()

<?php
try {
    $phar = new PharData('myphar.zip');
    var_dump($phar->getMetadata());
    $phar->setMetadata("привет");
    var_dump($phar->getMetadata());
    $phar->delMetadata();
    var_dump($phar->getMetadata());
} catch (Exception $e) {
    // обработка ошибок
}
?>

Результат выполнения данного примера:

NULL
string(8) "привет"
NULL

Смотрите также

  • Phar::delMetadata() - Удалить глобальные метаданные в архиве phar


Удалить файл из tar/zip-архива

  • « PharData::delMetadata
  • PharData::extractTo »
  • PHP Manual
  • PharData
  • Удалить файл из tar/zip-архива

PharData::delete

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::delete — Удалить файл из tar/zip-архива

Описание

PharData::delete ( string $entry ) : bool

Удаляет файл в архиве. Функционально аналогично вызову unlink() на эквиваленте потоковой обертки, как показано в примере ниже.

Список параметров

entry

Путь до удаляемого файла.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, но лучше использовать проверку исключений.

Ошибки

Выбрасывает исключение PharException в случае ошибки при сохранении изменений на диск.

Примеры

Пример #1 Пример использования PharData::delete()

<?php
try {
    $phar = new PharData('myphar.zip');
    $phar->delete('unlink/me.php');
    // аналог следующего кода:
    unlink('phar://myphar.phar/unlink/me.php');
} catch (Exception $e) {
    // обработка ошибок
}
?>

Смотрите также

  • Phar::delete() - Удаляет файл внутри phar-архива


Извлечь содержимое tar/zip-архива в директорию

  • « PharData::delete
  • PharData::isWritable »
  • PHP Manual
  • PharData
  • Извлечь содержимое tar/zip-архива в директорию

PharData::extractTo

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::extractTo — Извлечь содержимое tar/zip-архива в директорию

Описание

PharData::extractTo ( string $pathto [, string|array $files [, bool $overwrite = FALSE ]] ) : bool

Извлекает все файлы tar/zip-архива на диск. Извлеченные файлы и директории сохраняют все разрешения, которые у них были. Опциональные параметры позволяют контролировать, какие именно файлы извлекать и нужно ли перезаписывать уже существующие. Второй параметр files может быть как именем файла, так и путем директории, которые надо извлекать. По умолчанию уже существующие на диске файлы перезаписываться не будут. Для указания, что нужно использовать перезапись, используется третий параметр. Этот метод аналогичен методу ZipArchive::extractTo().

Список параметров

pathto

Путь, по которому необходимо сохраните извлеченные файлы (files)

files

Имя файла или директории, которые надо извлечь. Либо архив с именами файлов/директорий

overwrite

Установите в TRUE, если необходимо перезаписывать уже существующие файлы

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения. Но лучше использовать механизм перехвата исключений для контроля успешности.

Ошибки

Выбрасывает исключение PharException в случае ошибки записи на диск.

Примеры

Пример #1 Пример использования PharData::extractTo()

<?php
try {
    $phar = new PharData('myphar.tar');
    $phar->extractTo('/full/path'); // извлечь все файлы
    $phar->extractTo('/another/path', 'file.txt'); // извлечь только file.txt
    $phar->extractTo('/this/path',
        array('file1.txt', 'file2.txt')); // извлечь два указанных файла
    $phar->extractTo('/third/path', null, true); // извлечь все файлы, использовать перезапись
} catch (Exception $e) {
    // обработка ошибок
}
?>

Смотрите также

  • Phar::extractTo() - Извлечь содержимое phar-архива в директорию


Проверить, можно ли модифицировать tar/zip-архив

  • « PharData::extractTo
  • PharData::offsetSet »
  • PHP Manual
  • PharData
  • Проверить, можно ли модифицировать tar/zip-архив

PharData::isWritable

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::isWritable — Проверить, можно ли модифицировать tar/zip-архив

Описание

PharData::isWritable ( void ) : bool

Этот метод возвращает TRUE, если tar/zip-арохив существует и доступен для записи. В отличие от Phar::isWritable(), tar/zip-архивы с данными можно менять даже если phar.readonly установлен в 1.

Список параметров

Параметры отсутствуют.

Возвращаемые значения

Возвращает TRUE или FALSE

Смотрите также

  • Phar::canWrite() - Проверяет, поддерживает ли модуль phar сохранение и создание phar-архивов
  • Phar::isWritable() - Проверяет, можно ли модифицировать phar-архив


Изменение содержимого файла

  • « PharData::isWritable
  • PharData::offsetUnset »
  • PHP Manual
  • PharData
  • Изменение содержимого файла

PharData::offsetSet

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::offsetSet — Изменение содержимого файла

Описание

PharData::offsetSet ( string $offset , string $value ) : void

Это реализация интерфейса ArrayAccess, позволяющаа манипулировать содержимым tar/zip-архива в стиле доступа к элементам массива. offsetSet используется для изменения контента существующего файла, либо для создания нового.

Список параметров

offset

Имя файла (относительный путь).

value

Содержимое файла.

Возвращаемые значения

Ничего не возвращает.

Ошибки

Выбрасывает исключение PharException в случае проблем с записью на диск.

Примеры

Пример #1 Пример использования PharData::offsetSet()

offsetSet не нужно вызывать напрямую. Используйте синтаксис [].

<?php
$p = new PharData('/path/to/my.tar');
try {
    // вызов offsetSet
    $p['file.txt'] = 'Привет';
} catch (Exception $e) {
    echo 'Не удалось изменить file.txt:', $e;
}
?>

Смотрите также

  • Phar::offsetSet() - Изменение содержимого файла


Удалить файл из tar/zip-архива

  • « PharData::offsetSet
  • PharData::setAlias »
  • PHP Manual
  • PharData
  • Удалить файл из tar/zip-архива

PharData::offsetUnset

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::offsetUnset — Удалить файл из tar/zip-архива

Описание

PharData::offsetUnset ( string $offset ) : bool

Это реализация интерфейса ArrayAccess, позволяющаа манипулировать содержимым tar/zip-архива в стиле доступа к элементам массива. offsetUnset используется для удаления файлов и запускается каждый раз, когда используется конструкция unset().

Список параметров

offset

Имя файла (относительный путь).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Выбрасывает исключение PharException в случае проблем с записью на диск.

Примеры

Пример #1 Пример использования PharData::offsetUnset()

<?php
$p = new PharData('/path/to/my.zip');
try {
    // удаление file.txt из my.zip путем вызова offsetUnset
    unset($p['file.txt']);
} catch (Exception $e) {
    echo 'Не удалось удалить file.txt: ', $e;
}
?>

Смотрите также

  • Phar::offsetUnset() - Удалить файл из phar-архива


Функция заглушка (Phar::setAlias нельзя использовать для PharData)

  • « PharData::offsetUnset
  • PharData::setDefaultStub »
  • PHP Manual
  • PharData
  • Функция заглушка (Phar::setAlias нельзя использовать для PharData)

PharData::setAlias

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::setAlias — Функция заглушка (Phar::setAlias нельзя использовать для PharData)

Описание

PharData::setAlias ( string $alias ) : bool

Незапускаемые tar/zip-архивы не могут иметь псевдонима, так что этот метод просто выбрасывает исключение.

Список параметров

alias

Параметр игнорируется.

Возвращаемые значения

Ошибки

Выбрасывает исключение PharException

Смотрите также

  • Phar::setAlias() - Установить псевдоним для Phar-архива


Функция заглушка (Phar::setDefaultStub нельзя использовать для PharData)

  • « PharData::setAlias
  • Phar::setMetadata »
  • PHP Manual
  • PharData
  • Функция заглушка (Phar::setDefaultStub нельзя использовать для PharData)

PharData::setDefaultStub

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::setDefaultStub — Функция заглушка (Phar::setDefaultStub нельзя использовать для PharData)

Описание

PharData::setDefaultStub ([ string $index [, string $webindex ]] ) : bool

Незапускаемые tar/zip-архивы не могут иметь заглушку, так что этот метод просто выбрасывает исключение.

Список параметров

index

Параметр игнорируется.

webindex

Параметр игнорируется.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Выбрасывает исключение PharException

Смотрите также

  • Phar::setDefaultStub() - Установить загрузчик PHP или начальную заглушку Phar-архива в загрузчик по умолчанию


Установить метаданные phar-архива

  • « PharData::setDefaultStub
  • Phar::setSignatureAlgorithm »
  • PHP Manual
  • PharData
  • Установить метаданные phar-архива

Phar::setMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::setMetadata — Установить метаданные phar-архива

Описание

public Phar::setMetadata ( mixed $metadata ) : void

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Функция Phar::setMetadata() используется для сохранения данных, характеризующих phar-архив в целом. PharFileInfo::setMetadata() используется для установки метаданных для конкретного файла. Если метаданных будет много, то это может снизить скорость загрузки phar-архива.

Метаданные можно использовать, например, для указания, какой файл должен исполняться при загрузке, или для указания местоположения манифеста, типа package.xml для модуля » PEAR. В общем, любые полезные в контексте phar-архива данные.

Список параметров

metadata

Любая переменная PHP, содержащая необходимую информацию

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Phar::setMetadata()

<?php
// удаляем, на всякий случай
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.php'] = '<?php echo "hello"';
    $p->setMetadata(array('bootstrap' => 'file.php'));
    var_dump($p->getMetadata());
} catch (Exception $e) {
    echo 'Не удалось создать и/или изменить phar:', $e;
}
?>

Результат выполнения данного примера:

array(1) {
  ["bootstrap"]=>
  string(8) "file.php"
}

Смотрите также

  • Phar::getMetadata() - Извлечь метаданные phar-архива
  • Phar::delMetadata() - Удалить глобальные метаданные в архиве phar
  • Phar::hasMetadata() - Проверить, содержит ли phar-архив глобальные метаданные


Установить алгоритм подписания phar-архива и применение его

  • « Phar::setMetadata
  • PharData::setStub »
  • PHP Manual
  • PharData
  • Установить алгоритм подписания phar-архива и применение его

Phar::setSignatureAlgorithm

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.1.0)

Phar::setSignatureAlgorithm — Установить алгоритм подписания phar-архива и применение его

Описание

public Phar::setSignatureAlgorithm ( int $sigtype ) : void

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Устанавливает алгоритм подписания phar-архива и применяет его.
Доступны следующие алгоритмы подписания: Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512 и Phar::PGP.
(pgp пока не поддерживается, вместо него используется SHA-1).

Список параметров

sigtype

Одна из констант: Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512 или Phar::PGP

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение UnexpectedValueException для большинства ошибок. Для архивов на основе zip или tar выбрасывает исключение BadMethodCallException. При ошибках записи на диск выбрасывает исключение PharException.

Смотрите также

  • Phar::getSupportedSignatures() - Получить массив поддерживаемых алгоритмов подписи архива
  • Phar::getSignature() - Получить MD5/SHA1/SHA256/SHA512/OpenSSL подпись Phar-архива


Функция заглушка (Phar::setStub нельзя использовать для PharData)

  • « Phar::setSignatureAlgorithm
  • PharFileInfo »
  • PHP Manual
  • PharData
  • Функция заглушка (Phar::setStub нельзя использовать для PharData)

PharData::setStub

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::setStub — Функция заглушка (Phar::setStub нельзя использовать для PharData)

Описание

PharData::setStub ( string $stub [, int $len = -1 ] ) : bool

Незапускаемые tar/zip-архивы не могут иметь загрузчика (stub), так что этот метод просто бросает исключение.

Список параметров

stub

Параметр игнорируется.

len

Параметр игнорируется.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Выбрасывает исключение PharException

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр len.

Смотрите также

  • Phar::setStub() - Установить загрузчик или загрузочную заглушку в Phar-архив


Класс PharFileInfo

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Введение

Класс PharFileInfo предоставляет высокоуровневый интерфейс к содержимому и атрибутам отдельного файла в phar-архиве.

Обзор классов

PharFileInfo extends SplFileInfo {
/* Методы */
public chmod ( int $permissions ) : void
public compress ( int $compression ) : bool
public __construct ( string $entry )
public decompress ( void ) : bool
public delMetadata ( void ) : bool
public getCRC32 ( void ) : int
public getCompressedSize ( void ) : int
public getContent ( void ) : string
public getMetadata ( void ) : mixed
public getPharFlags ( void ) : int
public hasMetadata ( void ) : bool
public isCRCChecked ( void ) : bool
public isCompressed ([ int $compression_type = 9021976 ] ) : bool
public isCompressedBZIP2 ( void ) : bool
public isCompressedGZ ( void ) : bool
public setCompressedBZIP2 ( void ) : bool
public setCompressedGZ ( void ) : bool
public setMetadata ( mixed $metadata ) : void
public setUncompressed ( void ) : bool
}

Содержание

  • PharFileInfo::chmod — Установка прав доступа
  • PharFileInfo::compress — Сжать текущий файл с помощью zlib или bzip2
  • PharFileInfo::__construct — Конструктор объекта PharFileInfo
  • PharFileInfo::decompress — Расжимает текущий файл
  • PharFileInfo::delMetadata — Удалить метаданные файла
  • PharFileInfo::getCRC32 — Получить контрольную сумму CRC32
  • PharFileInfo::getCompressedSize — Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::getContent — Получить полное содержимое файла записи
  • PharFileInfo::getMetadata — Получить метаданные, связанные с файлом
  • PharFileInfo::getPharFlags — Получить флаги файла в phar-архиве
  • PharFileInfo::hasMetadata — Проверить, есть ли у файла метаданные
  • PharFileInfo::isCRCChecked — Определить, прошел ли файл проверку CRC
  • PharFileInfo::isCompressed — Проверить, сжат ли файл
  • PharFileInfo::isCompressedBZIP2 — Определить, сжат ли файл с помощью bzip2
  • PharFileInfo::isCompressedGZ — Определить, сжат ли файл с помощью gz
  • PharFileInfo::setCompressedBZIP2 — Сжатие файла в phar-архиве с использованием Bzip2
  • PharFileInfo::setCompressedGZ — Сжатие файла в phar-архиве с использованием gz
  • PharFileInfo::setMetadata — Установка метаданных для конкретного файла
  • PharFileInfo::setUncompressed — Расжать файл внутри phar-архива, если он сжат


Установка прав доступа

  • « PharFileInfo
  • PharFileInfo::compress »
  • PHP Manual
  • PharFileInfo
  • Установка прав доступа

PharFileInfo::chmod

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::chmod — Установка прав доступа

Описание

public PharFileInfo::chmod ( int $permissions ) : void

PharFileInfo::chmod() позволяет устанавливать биты разрешений на запуск и чтение для файлов. Биты записи игнорируются, поскольку настраиваются во время исполнения на основании значения INI-переменной phar.readonly. Как и для любого другого функционала, модифицирующего phar-архив, необходимо, чтобы переменная phar.readonly была отключена для успешного изменения прав на файл в архиве Phar. Архивы PharData не имеют таких ограничений.

Список параметров

permissions

Разрешения (см. описание функции chmod())

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования PharFileInfo::chmod()

<?php
// удалим, на всякий случай
@unlink('brandnewphar.phar');
try {
    $p = new Phar('brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.sh'] = '#!/usr/local/lib/php
    <?php echo "привет"; ?>';
    // установим бит исполнрения
    $p['file.sh']->chmod(0555);
    var_dump($p['file.sh']->isExecutable());
} catch (Exception $e) {
    echo 'Не удалось создать/изменить phar: ', $e;
}
?>

Результат выполнения данного примера:

bool(true)


Сжать текущий файл с помощью zlib или bzip2

  • « PharFileInfo::chmod
  • PharFileInfo::__construct »
  • PHP Manual
  • PharFileInfo
  • Сжать текущий файл с помощью zlib или bzip2

PharFileInfo::compress

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharFileInfo::compress — Сжать текущий файл с помощью zlib или bzip2

Описание

public PharFileInfo::compress ( int $compression ) : bool

Этот метод сжимает файл внутри phar-архива с помощью bzip2 или zlib. Для конкретных алгоритмов сжатия необходимо, чтобы были подключены расширения bzip2 или zlib соответственно.Также, если файл уже сжат, то для его расжатия потребуется соответствующее расширение. Так как данный функционал изменяет содержимое архива, для его нормальной работы необходимо, чтобы INI-опция phar.readonly была отключена, иначе не получится внести изменение в архив Phar. Файлы PharData не имеют ограничений, связанных с настройкой в php.ini.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Выбрасывает BadMethodCallException, если INI-опция phar.readonly включена, или если соответствующее расширение bzip2/zlib недоступно.

Примеры

Пример #1 Пример использовния PharFileInfo::compress()

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->isCompressed(Phar::BZ2));
    $p['myfile.txt']->compress(Phar::BZ2);
    var_dump($file->isCompressed(Phar::BZ2));
} catch (Exception $e) {
    echo 'Операции создания/изменения на my.phar завершились ошибкой: ', $e;
}
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::decompress() - Расжимает текущий файл
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::compressFiles() - Сжимает все файлы в текущем Phar-архиве
  • Phar::decompressFiles() - Распаковывает все файлы в текущем Phar-архиве
  • Phar::compress() - Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия
  • Phar::decompress() - Распаковывает весь Phar-архив
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия


Конструктор объекта PharFileInfo

  • « PharFileInfo::compress
  • PharFileInfo::decompress »
  • PHP Manual
  • PharFileInfo
  • Конструктор объекта PharFileInfo

PharFileInfo::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::__construct — Конструктор объекта PharFileInfo

Описание

public PharFileInfo::__construct ( string $entry )

Не должен вызываться напрямую. Объект PharFileInfo следует инициализировать с помощью Phar::offsetGet(), используя синтаксис доступа к массиву.

Список параметров

entry

Полный URL файла. Если вы хотите извлечь файл my/file.php из архива boo.phar, необходимо задать phar://boo.phar/my/file.php.

Ошибки

Выбрасывает исключение BadMethodCallException, если __construct() вызван дважды. Выбрасывает исключение UnexpectedValueException, если запрошенный URL некорректен, phar-архив невозможно открыть либо если указанный фапйл отсутствует в архиве.

Примеры

Пример #1 Пример использования PharFileInfo::__construct()

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['testfile.txt'] = "hi\nthere\ndude";
    $file = $p['testfile.txt'];
    foreach ($file as $line => $text) {
        echo "номер строки $line: $text";
    }
    // так то же работает
    $file = new PharFileInfo('phar:///path/to/my.phar/testfile.txt');
    foreach ($file as $line => $text) {
        echo "номер строки $line: $text";
    }
} catch (Exception $e) {
    echo 'Операции Phar завершились ошибкой;
}
?>

Результат выполнения данного примера:

номер строки 1: hi
номер строки 2: there
номер строки 3: dude
номер строки 1: hi
номер строки 2: there
номер строки 3: dude


Расжимает текущий файл

  • « PharFileInfo::__construct
  • PharFileInfo::delMetadata »
  • PHP Manual
  • PharFileInfo
  • Расжимает текущий файл

PharFileInfo::decompress

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharFileInfo::decompress — Расжимает текущий файл

Описание

public PharFileInfo::decompress ( void ) : bool

Этот метод расжимает файл внутри phar-архива. В зависимости от того, каким методом файл был сжат, необходимо наличие расширений bzip2 или zlib. Так как этот функционал изменяет phar-архив, необходимо, чтобы опция phar.readonly была отключена, иначе внести изменения в архив Phar не получится. На архивы PharData ограничение на запись не распространяется.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Выбрасывает исключение BadMethodCallException, если опция phar.readonly включена, либо соответствующее расширение bzip2/zlib не доступно.

Примеры

Пример #1 Пример использования PharFileInfo::decompress()

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    $file->compress(Phar::GZ);
    var_dump($file->isCompressed());
    $p['myfile.txt']->decompress();
    var_dump($file->isCompressed());
} catch (Exception $e) {
    echo 'Не удалось создать/изменить my.phar: ', $e;
}
?>

Результат выполнения данного примера:

int(4096)
bool(false)

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::compress() - Сжать текущий файл с помощью zlib или bzip2
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::compressFiles() - Сжимает все файлы в текущем Phar-архиве
  • Phar::decompressFiles() - Распаковывает все файлы в текущем Phar-архиве
  • Phar::compress() - Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия
  • Phar::decompress() - Распаковывает весь Phar-архив
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия


Удалить метаданные файла

  • « PharFileInfo::decompress
  • PharFileInfo::getCRC32 »
  • PHP Manual
  • PharFileInfo
  • Удалить метаданные файла

PharFileInfo::delMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.2.0)

PharFileInfo::delMetadata — Удалить метаданные файла

Описание

public PharFileInfo::delMetadata ( void ) : bool

Удаляет метаданные файла, если они есть.

Список параметров

Нет параметров.

Возвращаемые значения

Возвращает TRUE или FALSE в зависимости от успешности выполнения. Так как этот функционал изменяет phar-архив, необходимо, чтобы опция phar.readonly была отключена, иначе внести изменения в архив Phar не получится. На архивы PharData ограничение на запись не распространяется.

Ошибки

Выбрасывает исключение PharException в случае ошибки записи на диск, и BadMethodCallException, если запись запрещена.

Примеры

Пример #1 Пример использования PharFileInfo::delMetaData()

<?php
try {
    $a = new Phar('myphar.phar');
    $a['hi'] = 'hi';
    var_dump($a['hi']->delMetadata());
    $a['hi']->setMetadata('there');
    var_dump($a['hi']->delMetadata());
    var_dump($a['hi']->delMetadata());
} catch (Exception $e) {
    // обработка ошибок
}
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)

Смотрите также

  • PharFileInfo::setMetadata() - Установка метаданных для конкретного файла
  • PharFileInfo::hasMetadata() - Проверить, есть ли у файла метаданные
  • PharFileInfo::getMetadata() - Получить метаданные, связанные с файлом
  • Phar::setMetadata() - Установить метаданные phar-архива
  • Phar::hasMetadata() - Проверить, содержит ли phar-архив глобальные метаданные
  • Phar::getMetadata() - Извлечь метаданные phar-архива


Получить контрольную сумму CRC32

  • « PharFileInfo::delMetadata
  • PharFileInfo::getCompressedSize »
  • PHP Manual
  • PharFileInfo
  • Получить контрольную сумму CRC32

PharFileInfo::getCRC32

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::getCRC32 — Получить контрольную сумму CRC32

Описание

public PharFileInfo::getCRC32 ( void ) : int

Возвращает контрольную сумму crc32() для файла в Phar-архиве.

Возвращаемые значения

Контрольная сумма crc32() для файла в Phar-архиве.

Ошибки

Выбрасывает исключение BadMethodCallException, если не удалось верифицировать контрольную сумму CRC32. Этого практически невозможно добиться при обычной работе, так как контрольная сумма проверяется при чтении и записи файла.

Примеры

Пример #1 Пример использования PharFileInfo::getCRC32()

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    echo $file->getCRC32();
} catch (Exception $e) {
    echo 'Операции записи на my.phar завершились ошибкой: ', $e;
}
?>

Результат выполнения данного примера:

3633523372


Получить реальный занимаемый файлом размер на диске с учетом сжатия

  • « PharFileInfo::getCRC32
  • PharFileInfo::getContent »
  • PHP Manual
  • PharFileInfo
  • Получить реальный занимаемый файлом размер на диске с учетом сжатия

PharFileInfo::getCompressedSize

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::getCompressedSize — Получить реальный занимаемый файлом размер на диске с учетом сжатия

Описание

public PharFileInfo::getCompressedSize ( void ) : int

Возвращает реально занимаемое файлом место с учетом сжатия. Для несжатого файла вернется такое же значение, что и с помощью filesize()

Возвращаемые значения

Размер файла в байтах.

Примеры

Пример #1 Пример использования PharFileInfo::getCompressedSize()

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    echo $file->getCompressedSize();
} catch (Exception $e) {
    echo 'Операции записи на my.phar завершились ошибкой: ', $e;
}
?>

Результат выполнения данного примера:

2

Смотрите также

  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::decompress() - Расжимает текущий файл
  • PharFileInfo::compress() - Сжать текущий файл с помощью zlib или bzip2
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::compress() - Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия
  • Phar::decompress() - Распаковывает весь Phar-архив
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
  • Phar::decompressFiles() - Распаковывает все файлы в текущем Phar-архиве
  • Phar::compressFiles() - Сжимает все файлы в текущем Phar-архиве


Получить полное содержимое файла записи

  • « PharFileInfo::getCompressedSize
  • PharFileInfo::getMetadata »
  • PHP Manual
  • PharFileInfo
  • Получить полное содержимое файла записи

PharFileInfo::getContent

(PHP 5 >= 5.3.0, PHP 7)

PharFileInfo::getContent — Получить полное содержимое файла записи

Описание

public PharFileInfo::getContent ( void ) : string

Эта функция ведет себя как file_get_contents(), но для Phar.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает содержимое файла.


Получить метаданные, связанные с файлом

  • « PharFileInfo::getContent
  • PharFileInfo::getPharFlags »
  • PHP Manual
  • PharFileInfo
  • Получить метаданные, связанные с файлом

PharFileInfo::getMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::getMetadata — Получить метаданные, связанные с файлом

Описание

public PharFileInfo::getMetadata ( void ) : mixed

Возвращает метаданные, связанные с файлом.

Список параметров

Возвращаемые значения

Любая переменная PHP, которая может быть сериализована и сохранена в виде метаданных файла, либо NULL, если метаданных нет.

Примеры

Пример #1 Пример использования PharFileInfo::getMetadata()

<?php
// удалим, на всякий случай
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.txt'] = 'hello';
    $p['file.txt']->setMetadata(array('user' => 'bill', 'mime-type' => 'text/plain'));
    var_dump($p['file.txt']->getMetadata());
} catch (Exception $e) {
    echo 'Не удалось создать/изменить brandnewphar.phar: ', $e;
}
?>

Результат выполнения данного примера:

array(2) {
  ["user"]=>
  string(4) "bill"
  ["mime-type"]=>
  string(10) "text/plain"
}

Смотрите также

  • PharFileInfo::setMetadata() - Установка метаданных для конкретного файла
  • PharFileInfo::hasMetadata() - Проверить, есть ли у файла метаданные
  • PharFileInfo::delMetadata() - Удалить метаданные файла
  • Phar::setMetadata() - Установить метаданные phar-архива
  • Phar::hasMetadata() - Проверить, содержит ли phar-архив глобальные метаданные
  • Phar::getMetadata() - Извлечь метаданные phar-архива


Получить флаги файла в phar-архиве

  • « PharFileInfo::getMetadata
  • PharFileInfo::hasMetadata »
  • PHP Manual
  • PharFileInfo
  • Получить флаги файла в phar-архиве

PharFileInfo::getPharFlags

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::getPharFlags — Получить флаги файла в phar-архиве

Описание

public PharFileInfo::getPharFlags ( void ) : int

Возвращает набор флагов, заданных в манифесте Phar-архива. В текущей реализации всегда возвращает 0.

Возвращаемые значения

Флаги Phar-архива (пока всегда 0)

Примеры

Пример #1 Пример использования PharFileInfo::getPharFlags()

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->getPharFlags());
} catch (Exception $e) {
    echo 'Не удалось создать/изменить my.phar: ', $e;
}
?>

Результат выполнения данного примера:

int(0)


Проверить, есть ли у файла метаданные

  • « PharFileInfo::getPharFlags
  • PharFileInfo::isCRCChecked »
  • PHP Manual
  • PharFileInfo
  • Проверить, есть ли у файла метаданные

PharFileInfo::hasMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.2.0)

PharFileInfo::hasMetadata — Проверить, есть ли у файла метаданные

Описание

public PharFileInfo::hasMetadata ( void ) : bool

Проверяет, есть ли у файла метаданные.

Список параметров

Нет параметров.

Возвращаемые значения

Возвращает FALSE или TRUE (метаданные, равные NULL, считаются за отсутствие метаданных)

Смотрите также

  • PharFileInfo::setMetadata() - Установка метаданных для конкретного файла
  • PharFileInfo::getMetadata() - Получить метаданные, связанные с файлом
  • PharFileInfo::delMetadata() - Удалить метаданные файла
  • Phar::setMetadata() - Установить метаданные phar-архива
  • Phar::hasMetadata() - Проверить, содержит ли phar-архив глобальные метаданные
  • Phar::getMetadata() - Извлечь метаданные phar-архива


Определить, прошел ли файл проверку CRC

  • « PharFileInfo::hasMetadata
  • PharFileInfo::isCompressed »
  • PHP Manual
  • PharFileInfo
  • Определить, прошел ли файл проверку CRC

PharFileInfo::isCRCChecked

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::isCRCChecked — Определить, прошел ли файл проверку CRC

Описание

public PharFileInfo::isCRCChecked ( void ) : bool

Определяет, прошел ли файл проверку CRC.

Возвращаемые значения

TRUE, если файл прошел проверку CRC, FALSE в противном случае.

Примеры

Пример #1 Пример использования PharFileInfo::isCRCChecked()

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->isCRCChecked());
} catch (Exception $e) {
    echo 'Не удалось создать/изменить my.phar: ', $e;
}
?>

Результат выполнения данного примера:

bool(true)


Проверить, сжат ли файл

  • « PharFileInfo::isCRCChecked
  • PharFileInfo::isCompressedBZIP2 »
  • PHP Manual
  • PharFileInfo
  • Проверить, сжат ли файл

PharFileInfo::isCompressed

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::isCompressed — Проверить, сжат ли файл

Описание

public PharFileInfo::isCompressed ([ int $compression_type = 9021976 ] ) : bool

Проверояет, сжат ли файл внутри Phar-архива с помощью Gzip или Bzip2.

Список параметров

compression_type

Одна из констант Phar::GZ или Phar::BZ2. По умолчанию - любой тип сжатия.

Возвращаемые значения

TRUE, если файл сжат и FALSE в противном случае.

Примеры

Пример #1 Пример использования PharFileInfo::isCompressed()

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $p['myfile2.txt'] = 'hi';
    $p['myfile2.txt']->setCompressedGZ();
    $file = $p['myfile.txt'];
    $file2 = $p['myfile2.txt'];
    var_dump($file->isCompressed());
    var_dump($file2->isCompressed());
} catch (Exception $e) {
    echo 'Не удалось создать/изменить phar my.phar: ', $e;
}
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::decompress() - Расжимает текущий файл
  • PharFileInfo::compress() - Сжать текущий файл с помощью zlib или bzip2
  • Phar::decompress() - Распаковывает весь Phar-архив
  • Phar::compress() - Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
  • Phar::decompressFiles() - Распаковывает все файлы в текущем Phar-архиве
  • Phar::compressFiles() - Сжимает все файлы в текущем Phar-архиве


Определить, сжат ли файл с помощью bzip2

  • « PharFileInfo::isCompressed
  • PharFileInfo::isCompressedGZ »
  • PHP Manual
  • PharFileInfo
  • Определить, сжат ли файл с помощью bzip2

PharFileInfo::isCompressedBZIP2

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::isCompressedBZIP2 — Определить, сжат ли файл с помощью bzip2

Описание

public PharFileInfo::isCompressedBZIP2 ( void ) : bool

Замечание:

Этот метод был удален из расширения phar, начиная с версии 2.0.0. Альтернативные реализации возможны с помощью функций PharFileInfo::isCompressed(), PharFileInfo::decompress(), и PharFileInfo::compress().

Определяет, сжат ли файл в phar-архиве с помощью bzip2.

Возвращаемые значения

TRUE, если файл сжат с использованием Bzip2, FALSE в противном случае.

Примеры

Пример #1 Пример использования PharFileInfo::isCompressedBZIP2()

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $p['myfile2.txt'] = 'hi';
    $p['myfile3.txt'] = 'hi';
    $p['myfile2.txt']->setCompressedGZ();
    $p['myfile3.txt']->setCompressedBZIP2();
    $file = $p['myfile.txt'];
    $file2 = $p['myfile2.txt'];
    $file3 = $p['myfile3.txt'];
    var_dump($file->isCompressedBZIP2());
    var_dump($file2->isCompressedBZIP2());
    var_dump($file3->isCompressedBZIP2());
} catch (Exception $e) {
    echo 'Не удалось создать/изменить phar my.phar: ', $e;
}
?>

Результат выполнения данного примера:

bool(false)
bool(false)
bool(true)

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::isCompressedGZ() - Определить, сжат ли файл с помощью gz
  • PharFileInfo::setCompressedBZIP2() - Сжатие файла в phar-архиве с использованием Bzip2
  • PharFileInfo::setUncompressed() - Расжать файл внутри phar-архива, если он сжат
  • PharFileInfo::setCompressedGZ() - Сжатие файла в phar-архиве с использованием gz
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::compressAllFilesBZIP2() - Сжимает все файлы в текущем Phar-архиве с помощью Bzip2-сжатия
  • Phar::compressAllFilesGZ() - Сжимает все файлы в текущем Phar-архиве с помощью Gzip-сжатия
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
  • Phar::uncompressAllFiles() - Распаковывает все файлы в текущем Phar-архиве


Определить, сжат ли файл с помощью gz

  • « PharFileInfo::isCompressedBZIP2
  • PharFileInfo::setCompressedBZIP2 »
  • PHP Manual
  • PharFileInfo
  • Определить, сжат ли файл с помощью gz

PharFileInfo::isCompressedGZ

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::isCompressedGZ — Определить, сжат ли файл с помощью gz

Описание

public PharFileInfo::isCompressedGZ ( void ) : bool

Замечание:

Этот метод был удален из расширения phar, начиная с версии 2.0.0. Альтернативные реализации возможны с помощью функций PharFileInfo::isCompressed(), PharFileInfo::decompress(), и PharFileInfo::compress().

Определяет, сжат ли файл в phar-архиве с помощью Gzip.

Возвращаемые значения

TRUE, если файл сжат с использованием Gzip, FALSE в противном случае.

Примеры

Пример #1 Пример использования PharFileInfo::isCompressedGZ()

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $p['myfile2.txt'] = 'hi';
    $p['myfile3.txt'] = 'hi';
    $p['myfile2.txt']->setCompressedGZ();
    $p['myfile3.txt']->setCompressedBZIP2();
    $file = $p['myfile.txt'];
    $file2 = $p['myfile2.txt'];
    $file3 = $p['myfile3.txt'];
    var_dump($file->isCompressedGZ());
    var_dump($file2->isCompressedGZ());
    var_dump($file3->isCompressedGZ());
} catch (Exception $e) {
    echo 'Не удалось создать/изменить phar my.phar: ', $e;
}
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressedBZIP2() - Определить, сжат ли файл с помощью bzip2
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::setCompressedBZIP2() - Сжатие файла в phar-архиве с использованием Bzip2
  • PharFileInfo::setUncompressed() - Расжать файл внутри phar-архива, если он сжат
  • PharFileInfo::setCompressedGZ() - Сжатие файла в phar-архиве с использованием gz
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::compressAllFilesBZIP2() - Сжимает все файлы в текущем Phar-архиве с помощью Bzip2-сжатия
  • Phar::compressAllFilesGZ() - Сжимает все файлы в текущем Phar-архиве с помощью Gzip-сжатия
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
  • Phar::uncompressAllFiles() - Распаковывает все файлы в текущем Phar-архиве


Сжатие файла в phar-архиве с использованием Bzip2

  • « PharFileInfo::isCompressedGZ
  • PharFileInfo::setCompressedGZ »
  • PHP Manual
  • PharFileInfo
  • Сжатие файла в phar-архиве с использованием Bzip2

PharFileInfo::setCompressedBZIP2

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::setCompressedBZIP2 — Сжатие файла в phar-архиве с использованием Bzip2

Описание

public PharFileInfo::setCompressedBZIP2 ( void ) : bool

Замечание:

Этот метод был удален из расширения phar, начиная с версии 2.0.0. Альтернативные реализации возможны с помощью функций PharFileInfo::isCompressed(), PharFileInfo::decompress(), и PharFileInfo::compress().

Этот метод сжимает файл внутри phar-архива с помощью bzip2. Требуется подключенное расширение bzip2. Также, если файл ранее был сжат с помощью gzip, то требуется подключенное расширение zlib, для его расжатия. Так как этот функционал изменяет phar-архив, необходимо, чтобы опция phar.readonly была отключена.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Бросает BadMethodCallException если INI-опция phar.readonly включена, или если расширение bzip2 недоступно.

Примеры

Пример #1 Пример использования PharFileInfo::setCompressedBZIP2()

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->isCompressedBZIP2());
    $p['myfile.txt']->setCompressedBZIP2();
    var_dump($file->isCompressedBZIP2());
} catch (Exception $e) {
    echo 'Операции создания/изменения на my.phar завершились ошибкой: ', $e;
}
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressedBZIP2() - Определить, сжат ли файл с помощью bzip2
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::isCompressedGZ() - Определить, сжат ли файл с помощью gz
  • PharFileInfo::setUncompressed() - Расжать файл внутри phar-архива, если он сжат
  • PharFileInfo::setCompressedGZ() - Сжатие файла в phar-архиве с использованием gz
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::compressAllFilesBZIP2() - Сжимает все файлы в текущем Phar-архиве с помощью Bzip2-сжатия
  • Phar::compressAllFilesGZ() - Сжимает все файлы в текущем Phar-архиве с помощью Gzip-сжатия
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
  • Phar::uncompressAllFiles() - Распаковывает все файлы в текущем Phar-архиве


Сжатие файла в phar-архиве с использованием gz

  • « PharFileInfo::setCompressedBZIP2
  • PharFileInfo::setMetadata »
  • PHP Manual
  • PharFileInfo
  • Сжатие файла в phar-архиве с использованием gz

PharFileInfo::setCompressedGZ

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::setCompressedGZ — Сжатие файла в phar-архиве с использованием gz

Описание

public PharFileInfo::setCompressedGZ ( void ) : bool

Замечание:

Этот метод был удален из расширения phar, начиная с версии 2.0.0. Альтернативные реализации возможны с помощью функций PharFileInfo::isCompressed(), PharFileInfo::decompress(), и PharFileInfo::compress().

Этот метод сжимает файл внутри phar-архива с помощью gzip. Требуется подключенное расширение zlib. Также, если файл ранее был сжат с помощью bzip2, то требуется подключенное расширение bzip2, для его расжатия. Так как этот функционал изменяет phar-архив, необходимо, чтобы опция phar.readonly была отключена.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Бросает BadMethodCallException если INI-опция phar.readonly включена, или если расширение zlib недоступно.

Примеры

Пример #1 Пример использования PharFileInfo::setCompressedGZ()

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->isCompressedGZ());
    $p['myfile.txt']->setCompressedGZ();
    var_dump($file->isCompressedGZ());
} catch (Exception $e) {
    echo 'Операции создания/изменения на my.phar завершилось ошибкой: ', $e;
}
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressedBZIP2() - Определить, сжат ли файл с помощью bzip2
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::isCompressedGZ() - Определить, сжат ли файл с помощью gz
  • PharFileInfo::setCompressedBZIP2() - Сжатие файла в phar-архиве с использованием Bzip2
  • PharFileInfo::setUncompressed() - Расжать файл внутри phar-архива, если он сжат
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::compressAllFilesBZIP2() - Сжимает все файлы в текущем Phar-архиве с помощью Bzip2-сжатия
  • Phar::compressAllFilesGZ() - Сжимает все файлы в текущем Phar-архиве с помощью Gzip-сжатия
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
  • Phar::uncompressAllFiles() - Распаковывает все файлы в текущем Phar-архиве


Установка метаданных для конкретного файла

  • « PharFileInfo::setCompressedGZ
  • PharFileInfo::setUncompressed »
  • PHP Manual
  • PharFileInfo
  • Установка метаданных для конкретного файла

PharFileInfo::setMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::setMetadata — Установка метаданных для конкретного файла

Описание

public PharFileInfo::setMetadata ( mixed $metadata ) : void

PharFileInfo::setMetadata() следует использовать для сохранения метаданных конкретного файла, которые нельзя хранить внутри самого файла, поскольку, если данных много, либо в принципе много файлов с метаданными - это значительно замедляет загрузку phar-архива. Важно помнить, что phar-архивы из коробки поддерживают права на файлы и их можно задать с помощью метода PharFileInfo::chmod(). Так как этот функционал изменяет phar-архив, необходимо, чтобы опция phar.readonly была отключена, иначе внести изменения в архив Phar не получится. На архивы PharData ограничение на запись не распространяется.

Метаданные файлов можно использовать, например, для указания, какие права надо назначить файлу при экспорте его на диск, или для указания MIME-типа, который он возвращает. В общем - любая полезная информация, которой не место внутри самого файла.

Список параметров

metadata

Любая переменная PHP, содержащая необходимую информацию

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования PharFileInfo::setMetadata()

<?php
// удалим, на всякий случай
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.txt'] = 'hello';
    $p['file.txt']->setMetadata(array('user' => 'bill', 'mime-type' => 'text/plain'));
    var_dump($p['file.txt']->getMetaData());
} catch (Exception $e) {
    echo 'Не удалось создать/изменить phar: ', $e;
}
?>

Результат выполнения данного примера:

array(2) {
  ["user"]=>
  string(4) "bill"
  ["mime-type"]=>
  string(10) "text/plain"
}

Смотрите также

  • PharFileInfo::hasMetadata() - Проверить, есть ли у файла метаданные
  • PharFileInfo::getMetadata() - Получить метаданные, связанные с файлом
  • PharFileInfo::delMetadata() - Удалить метаданные файла
  • Phar::setMetadata() - Установить метаданные phar-архива
  • Phar::hasMetadata() - Проверить, содержит ли phar-архив глобальные метаданные
  • Phar::getMetadata() - Извлечь метаданные phar-архива


Расжать файл внутри phar-архива, если он сжат

  • « PharFileInfo::setMetadata
  • PharException »
  • PHP Manual
  • PharFileInfo
  • Расжать файл внутри phar-архива, если он сжат

PharFileInfo::setUncompressed

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::setUncompressed — Расжать файл внутри phar-архива, если он сжат

Описание

public PharFileInfo::setUncompressed ( void ) : bool

Замечание:

Этот метод был удален из расширения phar, начиная с версии 2.0.0. Альтернативные реализации возможны с помощью функций PharFileInfo::isCompressed(), PharFileInfo::decompress(), и PharFileInfo::compress().

Этот метод расжимает файл внутри phar-архива. В зависимости от того, каким методом файл был сжат, необходимо наличие расширений bzip2 или zlib. Так как этот функционал изменяет phar-архив, необходимо, чтобы опция phar.readonly была отключена, иначе внести изменения в архив Phar не получится.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Выбрасывает исключение BadMethodCallException, если phar.readonly включена, либо соответствующее расширение bzip2/zlib не доступно.

Примеры

Пример #1 Пример использования PharFileInfo::setUncompressed()

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    $file->setCompressedGZ();
    var_dump($file->isCompressed());
    $p['myfile.txt']->setUncompressed();
    var_dump($file->isCompressed());
} catch (Exception $e) {
    echo 'Не удалось создать/изменить my.phar: ', $e;
}
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Смотрите также

  • PharFileInfo::getCompressedSize() - Получить реальный занимаемый файлом размер на диске с учетом сжатия
  • PharFileInfo::isCompressedBZIP2() - Определить, сжат ли файл с помощью bzip2
  • PharFileInfo::isCompressed() - Проверить, сжат ли файл
  • PharFileInfo::isCompressedGZ() - Определить, сжат ли файл с помощью gz
  • PharFileInfo::setCompressedBZIP2() - Сжатие файла в phar-архиве с использованием Bzip2
  • PharFileInfo::setCompressedGZ() - Сжатие файла в phar-архиве с использованием gz
  • Phar::canCompress() - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
  • Phar::isCompressed() - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
  • Phar::compressAllFilesBZIP2() - Сжимает все файлы в текущем Phar-архиве с помощью Bzip2-сжатия
  • Phar::compressAllFilesGZ() - Сжимает все файлы в текущем Phar-архиве с помощью Gzip-сжатия
  • Phar::getSupportedCompression() - Возвращает массив поддерживаемых алгоритмов сжатия
  • Phar::uncompressAllFiles() - Распаковывает все файлы в текущем Phar-архиве


Класс PharException

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Введение

Класс PharException предоставляет класс исключения модуля phar для блоков try/catch.

Обзор классов

PharException extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Архивирование Rar

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Rar
    • rar_wrapper_cache_stats — Кеш доступов и отказов обертки URL
  • RarArchive — Класс RarArchive
    • RarArchive::close — Закрывает RAR архив и освобождает все ресурсы
    • RarArchive::getComment — Получить текст комментария из архива RAR
    • RarArchive::getEntries — Возвращает полный список элементов из RAR архива
    • RarArchive::getEntry — Возвращает объект элемента из RAR архива
    • RarArchive::isBroken — Проверяет, не сломан ли архив (не завершен)
    • RarArchive::isSolid — Проверить, является ли архив сплошным
    • RarArchive::open — Открывает архив RAR
    • RarArchive::setAllowBroken — Открывать ли поврежденные архивы
    • RarArchive::__toString — Получить текстовое представление
  • RarEntry — Класс RarEntry
    • RarEntry::extract — Извлекает элемент из архива
    • RarEntry::getAttr — Возвращает атрибуты элемента архива
    • RarEntry::getCrc — Возвращает CRC элемента архива
    • RarEntry::getFileTime — Возвращает последнее время изменения элемента
    • RarEntry::getHostOs — Возвращает оригинальную ОС элемента
    • RarEntry::getMethod — Возвращает метод компрессии элемента
    • RarEntry::getName — Возвращает имя элемента
    • RarEntry::getPackedSize — Возвращает размер сжатого элемента
    • RarEntry::getStream — Получить обработчик для записи
    • RarEntry::getUnpackedSize — Возвращает размер элемента в распакованном состоянии
    • RarEntry::getVersion — Возвращает минимальную версию программы RAR, необходимую для распаковки элемента
    • RarEntry::isDirectory — Проверяет, является ли запись директорией
    • RarEntry::isEncrypted — Проверяет, зашифрована ли запись
    • RarEntry::__toString — Получить текстовое представление записи
  • RarException — Класс RarException
    • RarException::isUsingExceptions — Проверить, будут ли функции возвращать ошибки или выбрасывать исключения
    • RarException::setUsingExceptions — Включить или отключить генерацию исключений вместо возвращения ошибок


Введение

Rar - это мощный и эффективный архиватор, созданный Евгением Рошалем. Данное расширение позволяет читать Rar-архивы, однако не дает возможности их записывать, так как эта операция не поддерживается библиотекой UnRar и напрямую запрещена условиями ее лицензии.

Больше информации о Rar и UnRar можно найти здесь: » http://www.rarlabs.com/.


Установка

Расширение Rar в настоящее время доступно в PECL » https://pecl.php.net/package/rar.

Вы также можете воспользоваться установщиком PECL, чтобы установить расширение Rar. Для этого необходимо использовать команду: pecl -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 необходимо включить php_rar.dll в php.ini. DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Типы ресурсов

Это расширение использует три внутренних ресурса: Дескриптор файла, возвращаемый функцией rar_open() - RarArchive -, содержимое архива, возвращаемое функцией rar_list() и rar_entry_get() - RarEntry и тип исключений RarException.

Это расширение также регистрирует потоковый ресурс, называемый "rar", и обертку URL, называемую "rar wrapper", и соответствующий ей префикс "rar".


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

RAR_HOST_MSDOS (integer)
Используйте вместо нее константу RarEntry::HOST_MSDOS.
RAR_HOST_OS2 (integer)
Используйте вместо нее константу RarEntry::HOST_OS2.
RAR_HOST_WIN32 (integer)
Используйте вместо нее константу RarEntry::HOST_WIN32.
RAR_HOST_UNIX (integer)
Используйте вместо нее константу RarEntry::HOST_UNIX.
RAR_HOST_BEOS (integer)
Используйте вместо нее константу RarEntry::HOST_BEOS.


Примеры

Также смотрите примеры по ссылке rar:// wrapper.

Пример #1 Декомпрессия на лету

<?php

if (!array_key_exists("i", $_GET) || !is_numeric($_GET["i"]))
    die("Индекс не указан или не числовой");
$index = (int) $_GET["i"];

$arch = RarArchive::open("example.rar");
if ($arch === FALSE)
    die("Невозможно открыть example.rar");

$entries = $arch->getEntries();
if ($entries === FALSE)
    die("Невозможно получить записи");

if (!array_key_exists($index, $entries))
    die("Нет такого индекса: $index");

$orfilename = $entries[$index]->getName(); //Кодировка UTF-8

$filesize = $entries[$index]->getUnpackedSize();

/* Вы можете здесь проверить константу HTTP_IF_MODIFIED_SINCE и сравнить с
 * $entries[$index]->getFileTime(). Также возможно отослать заголовок
 * "Last modified" */

$fp = $entries[$index]->getStream();
if ($fp === FALSE)
    die("Невозможно открыть файл с индексом $index внутри архива.");

$arch->close(); // Больше не нужен. Поток является независимым

function detectUserAgent() {
    if (!array_key_exists('HTTP_USER_AGENT', $_SERVER))
        return "Other";

    $uas = $_SERVER['HTTP_USER_AGENT'];
    if (preg_match("@Opera/@", $uas))
        return "Opera";
    if (preg_match("@Firefox/@", $uas))
        return "Firefox";
    if (preg_match("@Chrome/@", $uas))
        return "Chrome";
    if (preg_match("@MSIE ([0-9.]+);@", $uas, $matches)) {
        if (((float)$matches[1]) >= 7.0)
            return "IE";
    }

    return "Other";
}

/*
 * Действуют 3 опции:
 * - Для FF и Opera, с поддержкой RFC 2231, используется этот формат.
 * - Для IE и Chrome, используется attwithfnrawpctenclong
 *   (http://greenbytes.de/tech/tc2231/#attwithfnrawpctenclong)
 * - Для других браузеров, перекодируется в ISO-8859-1, если возможно
 */
$formatRFC2231 = 'Content-Disposition: attachment; filename*=UTF-8\'\'%s';
$formatDef = 'Content-Disposition: attachment; filename="%s"';

switch (detectUserAgent()) {
    case "Opera":
    case "Firefox":
        $orfilename = rawurlencode($orfilename);
        $format = $formatRFC2231;
        break;

    case "IE":
    case "Chrome":
        $orfilename = rawurlencode($orfilename);
        $format = $formatDef;
        break;
    default:
        if (function_exists('iconv'))
            $orfilename =
                @iconv("UTF-8", "ISO-8859-1//TRANSLIT", $orfilename);
        $format = $formatDef;
}

header(sprintf($format, $orfilename));
//Невозможна дальнейшая отсылка сообщений об ошибках (заголовки уже отправлены)

//Замена на реальный content type, возможно определенный по расширению файла
$contentType = "application/octet-stream";
header("Content-Type: $contentType");

header("Content-Transfer-Encoding: binary");

header("Content-Length: $filesize");

if ($_SERVER['REQUEST_METHOD'] == "HEAD")
    die();

while (!feof($fp)) {
    $s = @fread($fp, 8192);
    if ($s === false)
        break; //тут бесполезно отправлять сообщения об ошибках

    echo $s;
}
?>

Этот пример открывает RAR-файл и предоставляет запрошенный файл вне RAR-архива для загрузки клиентом.

Пример #2 Пример извлечения перечня файлов и директорий из RAR-архива

<?php

$rar_file = rar_open('example.rar') or die("Невозможно открыть RAR архив");

$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

Содержание

  • rar_wrapper_cache_stats — Кеш доступов и отказов обертки URL


Кеш доступов и отказов обертки URL

  • « Rar
  • RarArchive »
  • PHP Manual
  • Rar
  • Кеш доступов и отказов обертки URL

rar_wrapper_cache_stats

(PECL rar >= 3.0.0)

rar_wrapper_cache_stats — Кеш доступов и отказов обертки URL

Описание

rar_wrapper_cache_stats ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс RarArchive

(PECL rar >= 2.0.0)

Введение

Этот класс описывает RAR архив, который может состоять из нескольких томов (частей) и содержать некоторое число RAR записей (файлы, директории и другие специальные объекты, такие как символические ссылки).

Объекты этого класса могут быть заполнены перебором исходя из записей, хранящихся в соответствующем RAR архиве. Эти записи могут быть также получены с помощью методов RarArchive::getEntry() и RarArchive::getEntries().

Обзор классов

final RarArchive implements Traversable {
/* Методы */
public close ( void ) : bool
public getComment ( void ) : string
public getEntries ( void ) : array
public getEntry ( string $entryname ) : RarEntry
public isBroken ( void ) : bool
public isSolid ( void ) : bool
public static open ( string $filename [, string $password = NULL [, callable $volume_callback = NULL ]] ) : RarArchive
public setAllowBroken ( bool $allow_broken ) : bool
public __toString ( void ) : string
}

Содержание

  • RarArchive::close — Закрывает RAR архив и освобождает все ресурсы
  • RarArchive::getComment — Получить текст комментария из архива RAR
  • RarArchive::getEntries — Возвращает полный список элементов из RAR архива
  • RarArchive::getEntry — Возвращает объект элемента из RAR архива
  • RarArchive::isBroken — Проверяет, не сломан ли архив (не завершен)
  • RarArchive::isSolid — Проверить, является ли архив сплошным
  • RarArchive::open — Открывает архив RAR
  • RarArchive::setAllowBroken — Открывать ли поврежденные архивы
  • RarArchive::__toString — Получить текстовое представление


Закрывает RAR архив и освобождает все ресурсы

  • « RarArchive
  • RarArchive::getComment »
  • PHP Manual
  • RarArchive
  • Закрывает RAR архив и освобождает все ресурсы

RarArchive::close

rar_close

(PECL rar >= 2.0.0)

RarArchive::close -- rar_close — Закрывает RAR архив и освобождает все ресурсы

Описание

Объектно-ориентированный стиль (method):

public RarArchive::close ( void ) : bool

Процедурный стиль:

rar_close ( RarArchive $rarfile ) : bool

Закрывает RAR архив и освобождает все ресурсы связанные с ним.

Список параметров

rarfile

Объект RarArchive, открытый с помощью rar_open().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
2.0.0 | Элементы архива, возвращаемые RarArchive::getEntry() и RarArchive::getEntries() теперь недействительны после вызова данного метода. Это означает, что нет гарантии правильной работы всех методов этих элементов.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$rar_arch = RarArchive::open('latest_winrar.rar');
echo $rar_arch."\n";
$rar_arch->close();
echo $rar_arch."\n";
?>

Результатом выполнения данного примера будет что-то подобное:

RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar"
RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar" (closed)

Пример #2 Процедурный стиль

<?php
$rar_arch = rar_open('latest_winrar.rar');
echo $rar_arch."\n";
rar_close($rar_arch);
echo $rar_arch."\n";
?>


Получить текст комментария из архива RAR

  • « RarArchive::close
  • RarArchive::getEntries »
  • PHP Manual
  • RarArchive
  • Получить текст комментария из архива RAR

RarArchive::getComment

rar_comment_get

(PECL rar >= 2.0.0)

RarArchive::getComment -- rar_comment_get — Получить текст комментария из архива RAR

Описание

Объектно-ориентированный стиль (method):

public RarArchive::getComment ( void ) : string

Процедурный стиль:

rar_comment_get ( RarArchive $rarfile ) : string

Возвращает (глобальный) комментарий, сохраненный в архиве RAR. Он может быть длиной вплоть до 64 KiB.

Замечание:

Модуль не поддерживает комментарии на уровне записей.

Список параметров

rarfile

Объект RarArchive, открытый с помощью rar_open().

Возвращаемые значения

Возвращает комментарий или NULL, если его нет.

Замечание:

RAR в текущий момент не поддерживает комментарии в unicode. Кодировка результата не определена, но, возможно, она будет Windows-1252.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$rar_arch = RarArchive::open('commented.rar');
echo $rar_arch->getComment();
?>

Результатом выполнения данного примера будет что-то подобное:

This is the comment of the file commented.rar.

Пример #2 Процедурный стиль

<?php
$rar_arch = rar_open('commented.rar');
echo rar_comment_get($rar_arch);
?>


Возвращает полный список элементов из RAR архива

  • « RarArchive::getComment
  • RarArchive::getEntry »
  • PHP Manual
  • RarArchive
  • Возвращает полный список элементов из RAR архива

RarArchive::getEntries

rar_list

(PECL rar >= 2.0.0)

RarArchive::getEntries -- rar_list — Возвращает полный список элементов из RAR архива

Описание

Объектно-ориентированный стиль (method):

public RarArchive::getEntries ( void ) : array

Процедурный стиль:

rar_list ( RarArchive $rarfile ) : array

Возвращает элементы (файлы и директории) из RAR архива.

Замечание:

Если архив имеет элементы с одинаковым именем, то этот метод совместно с циклом foreach по RarArchive и доступом к нему как к массиву с числовыми индексами являются единственными способами получить доступ к этим элементам (т.е. RarArchive::getEntry() и rar:// обработчик (wrapper) не помогут).

Список параметров

rarfile

Объект RarArchive открытый с помощью rar_open().

Возвращаемые значения

rar_list() возвращает массив объектов RarEntry или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
3.0.0 | Исправлена поддержка RAR архивов с повторяющимися именами элементов.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$rar_arch = RarArchive::open('solid.rar');
if ($rar_arch === FALSE)
    die("Не смог открыть RAR архив.");

$rar_entries = $rar_arch->getEntries();
if ($rar_entries === FALSE)
    die("Не смог достать содержимое.");

echo "Нашел " . count($rar_entries) . " объектов.\n";

foreach ($rar_entries as $e) {
    echo $e;
    echo "\n";
}
$rar_arch->close();
?>

Результатом выполнения данного примера будет что-то подобное:

Нашел 2 объектов.
RarEntry for file "tese.txt" (23b93a7a)
RarEntry for file "unrardll.txt" (2ed64b6e)

Пример #2 Процедурный стиль

<?php
$rar_arch = rar_open('solid.rar');
if ($rar_arch === FALSE)
    die("Could not open RAR archive.");

$rar_entries = rar_list($rar_arch);
if ($rar_entries === FALSE)
    die("Could retrieve entries.");

echo "Found " . count($rar_entries) . " entries.\n";

foreach ($rar_entries as $e) {
    echo $e;
    echo "\n";
}
rar_close($rar_arch);
?>

Смотрите также

  • RarArchive::getEntry() - Возвращает объект элемента из RAR архива
  • rar:// обработчик(wrapper)


Возвращает объект элемента из RAR архива

  • « RarArchive::getEntries
  • RarArchive::isBroken »
  • PHP Manual
  • RarArchive
  • Возвращает объект элемента из RAR архива

RarArchive::getEntry

rar_entry_get

(PECL rar >= 2.0.0)

RarArchive::getEntry -- rar_entry_get — Возвращает объект элемента из RAR архива

Описание

Объектно-ориентированный стиль (method):

public RarArchive::getEntry ( string $entryname ) : RarEntry

Процедурный стиль:

rar_entry_get ( RarArchive $rarfile , string $entryname ) : RarEntry

Возвращает объект элемента (файл или директорию) из RAR архива

Замечание:

Вы также можете получить объекты элементов с помощью RarArchive::getEntries().

Учтите, что RAR архив может иметь несколько элементов с одинаковым именем. Данный метод вернет только первый из них.

Список параметров

rarfile

Объект RarArchive открытый с помощью rar_open().

entryname

Путь до элемента RAR архива.

Замечание:

Путь должен быть таким же, как и возвращаемый методом RarEntry::getName().

Возвращаемые значения

Возвращает найденный объект RarEntry или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$rar_arch = RarArchive::open('solid.rar');
if ($rar_arch === FALSE)
    die("Не смог открыть RAR архив.");
$rar_entry = $rar_arch->getEntry('tese.txt');
if ($rar_entry === FALSE)
    die("Не смог достать этот объект");
echo get_class($rar_entry)."\n";
echo $rar_entry;
$rar_arch->close();
?>

Результатом выполнения данного примера будет что-то подобное:

RarEntry
RarEntry for file "tese.txt" (23b93a7a)

Пример #2 Процедурный стиль

<?php
$rar_arch = rar_open('solid.rar');
if ($rar_arch === FALSE)
    die("Не смог открыть RAR архив.");
$rar_entry = rar_entry_get($rar_arch, 'tese.txt');
if ($rar_entry === FALSE)
    die("Не смог достать этот объект");
echo get_class($rar_entry)."\n";
echo $rar_entry;
rar_close($rar_arch);
?>

Смотрите также

  • RarArchive::getEntries() - Возвращает полный список элементов из RAR архива
  • rar:// обработчик (wrapper)


Проверяет, не сломан ли архив (не завершен)

  • « RarArchive::getEntry
  • RarArchive::isSolid »
  • PHP Manual
  • RarArchive
  • Проверяет, не сломан ли архив (не завершен)

RarArchive::isBroken

rar_broken_is

(PECL rar >= 3.0.0)

RarArchive::isBroken -- rar_broken_is — Проверяет, не сломан ли архив (не завершен)

Описание

Объектно-ориентированный стиль (method):

public RarArchive::isBroken ( void ) : bool

Процедурный стиль:

rar_broken_is ( RarArchive $rarfile ) : bool

Функция определяет, является ли архив незавершенным, т.е. том обрезан или отсутствует.

Список параметров

rarfile

Объект RarArchive, открытый с помощью rar_open().

Возвращаемые значения

Возвращает TRUE, если архив сломан и FALSE, если нет. Также, функция может вернуть FALSE, если переданный файл уже закрыт. Единственный вариант определить точную причину - это разрешить исключения с помощью RarException::setUsingExceptions(); однако, это не так уж и важно, поскольку приложение все равно не сможет работать с закрытым файлом.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* третий аргумент служит для подавления сообщений */
$arch = RarArchive::open($file, null, 'retnull');
var_dump($arch->isBroken());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)

Пример #2 Процедурный стиль

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* третий аргумент служит для подавления сообщений */
$arch = rar_open($file, null, 'retnull');
var_dump(rar_broken_is($arch));
?>

Смотрите также

  • RarArchive::setAllowBroken() - Открывать ли поврежденные архивы


Проверить, является ли архив сплошным

  • « RarArchive::isBroken
  • RarArchive::open »
  • PHP Manual
  • RarArchive
  • Проверить, является ли архив сплошным

RarArchive::isSolid

rar_solid_is

(PECL rar >= 2.0.0)

RarArchive::isSolid -- rar_solid_is — Проверить, является ли архив сплошным

Описание

Объектно-ориентированный стиль (method):

public RarArchive::isSolid ( void ) : bool

Процедурный стиль:

rar_solid_is ( RarArchive $rarfile ) : bool

Проверяет, является ли архив сплошным. Извлечение одного конкретного файла из сплошного архива заметно медленнее.

Список параметров

rarfile

Объект RarArchive, открытый с помощью rar_open().

Возвращаемые значения

Возвращает TRUE, если да и FALSE, если нет.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$arch1 = RarArchive::open("store_method.rar");
$arch2 = RarArchive::open("solid.rar");
echo "$arch1: " . ($arch1->isSolid()?'yes':'no') ."\n";
echo "$arch2: " . ($arch2->isSolid()?'yes':'no') . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

RAR Archive "C:\php_rar\trunk\tests\store_method.rar": no
RAR Archive "C:\php_rar\trunk\tests\solid.rar": yes

Пример #2 Процедурный стиль

<?php
$arch1 = rar_open("store_method.rar");
$arch2 = rar_open("solid.rar");
echo "$arch1: " . (rar_solid_is($arch1)?'yes':'no') ."\n";
echo "$arch2: " . (rar_solid_is($arch2)?'yes':'no') . "\n";
?>


Открывает архив RAR

  • « RarArchive::isSolid
  • RarArchive::setAllowBroken »
  • PHP Manual
  • RarArchive
  • Открывает архив RAR

RarArchive::open

rar_open

(PECL rar >= 2.0.0)

RarArchive::open -- rar_open — Открывает архив RAR

Описание

Объектно-ориентированный стиль (method):

public static RarArchive::open ( string $filename [, string $password = NULL [, callable $volume_callback = NULL ]] ) : RarArchive

Процедурный стиль:

rar_open ( string $filename [, string $password = NULL [, callable $volume_callback = NULL ]] ) : RarArchive

Открывает указанный RAR-архив и возвращает объект RarArchive, представляющий его.

Замечание:

При открытии многотомного архива путь к первому тому должен быть передан первым параметром. Иначе не будут видны все файлы.

Список параметров

filename

Путь к архиву Rar.

password

Пароль, если необходимо расшифровать заголовки архива. Этот же пароль будет использоваться по умолчанию, если будут найдены зашифрованные файлы. Учтите, что файлы могут быть зашифрованы с разными паролями.

volume_callback

Функция, которой передается единственный параметр - путь к тому, который не был найден, и возвращающая строку с правильным путем для этого тома или NULL, если данный том не существует или неизвестен. Разработчик должен быть уверен, что данная функция не приведет к зацикливанию, так как она вызывается повторно, если путь полученный предыдущим вызовом не соответствует нужному тому. Указание этого параметра устраняет предупреждения, которые появлялись бы, если бы том не был бы найден. В случае, если функция возвращает только NULL, то не будет ни одного предупреждения.

Внимание

До версии 2.0.0 эта функция не обрабатывала правильно относительные пути. В таких случаях используйте realpath().

Возвращаемые значения

Возвращает запрашиваемый объект RarArchive или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
3.0.0 | Был добавлен volume_callback.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$rar_arch = RarArchive::open('encrypted_headers.rar', 'samplepassword');
if ($rar_arch === FALSE)
    die("Неудачное открытие файла");

$entries = $rar_arch->getEntries();
if ($entries === FALSE)
    die("Неудачное получение записей");

echo "Найдено " . count($entries) . " файлов.\n";

if (empty($entries))
    die("Не найдено корректных записей.");

$stream = reset($entries)->getStream();
if ($stream === FALSE)
    die("Неудачное открытие первого файла");

$rar_arch->close();

echo "Содержимое первого файла:\n";
echo stream_get_contents($stream);

fclose($stream);
?>

Результатом выполнения данного примера будет что-то подобное:

Найдено 2 файлов.
Содержимое первого файла:
Encrypted file 1 contents.

Пример #2 Процедурный стиль

<?php
$rar_arch = rar_open('encrypted_headers.rar', 'samplepassword');
if ($rar_arch === FALSE)
    die("Неудачное открытие файла");

$entries = rar_list($rar_arch);
if ($entries === FALSE)
    die("Failed fetching entries");

echo "Найдено " . count($entries) . " файлов.\n";

if (empty($entries))
    die("Не найдено корректных записей.");

$stream = reset($entries)->getStream();
if ($stream === FALSE)
    die("Неудачное открытие первого файла");

rar_close($rar_arch);

echo "Содержимое первого файла:\n";
echo stream_get_contents($stream);

fclose($stream);
?>

Пример #3 Callback-функция для тома

<?php
/* В этом примере есть том с именем multi_broken.part1.rar,
 * а следующий том имеет имя multi.part2.rar */
function resolve($vol) {
    if (preg_match('/_broken/', $vol))
        return str_replace('_broken', '', $vol);
    else
        return null;
}
$rar_file1 = rar_open(dirname(__FILE__).'/multi_broken.part1.rar', null, 'resolve');
$entry = $rar_file1->getEntry('file2.txt');
$entry->extract(null, dirname(__FILE__) . "/temp_file2.txt");
?>

Смотрите также

  • rar:// wrapper


Открывать ли поврежденные архивы

  • « RarArchive::open
  • RarArchive::__toString »
  • PHP Manual
  • RarArchive
  • Открывать ли поврежденные архивы

RarArchive::setAllowBroken

(PECL rar >= 3.0.0)

RarArchive::setAllowBroken — Открывать ли поврежденные архивы

Описание

Объектно-ориентированный стиль (method):

public RarArchive::setAllowBroken ( bool $allow_broken ) : bool

Процедурный стиль:

rar_allow_broken_set ( RarArchive $rarfile , bool $allow_broken ) : bool

Метод определяет, можно ли пытаться читать поврежденный архив, или все операции с ним должны заканчиваться ошибкой. Поврежденные архивы - это такие архивы, которые открываются без ошибок, но при попытке прочитать записи возникают ошибки.

Список параметров

rarfile

Объект RarArchive, открытый с помощью rar_open().

allow_broken

Разрешать ли работу с поврежденными архивами (TRUE) или нет (FALSE).

Возвращаемые значения

Возвращает TRUE или FALSE в случае возникновения ошибки. Ошибка может возникнуть только если файл уже закрыт.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* третий аргумент подавляет сообщение "volume not found" */
$a = RarArchive::open($file, null, 'retnull');
$a->setAllowBroken(true);
foreach ($a->getEntries() as $e) {
    echo "$e\n";
}
var_dump(count($a));
?>

Результатом выполнения данного примера будет что-то подобное:

RarEntry for file "file1.txt" (52b28202)
int(1)

Пример #2 Процедурный стиль

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* третий аргумент подавляет сообщение "volume not found" */
$a = rar_open($file, null, 'retnull');
rar_allow_broken_set($a, true);
foreach (rar_list($a) as $e) {
    echo "$e\n";
}
var_dump(count($a));
?>

Смотрите также

  • RarArchive::isBroken() - Проверяет, не сломан ли архив (не завершен)


Получить текстовое представление

  • « RarArchive::setAllowBroken
  • RarEntry »
  • PHP Manual
  • RarArchive
  • Получить текстовое представление

RarArchive::__toString

(PECL rar >= 2.0.0)

RarArchive::__toString — Получить текстовое представление

Описание

public RarArchive::__toString ( void ) : string

Возвращает строку, представляющую объект RarArchive. Она содержит полный путь до текущего открытого тома архива и информацию о том, корректен ли ресурс или уже закрыт с помощью RarArchive::close().

Данный метод предназначен только для отладки, так как нет никакой гарантии из чего будет состоять ответ и как он будет отформатирован.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текстовое представление объекта RarArchive. Контент не определен.

Примеры

Пример #1 Пример использования RarArchive::__toString()

<?php
$rar_arch = RarArchive::open('latest_winrar.rar');
echo $rar_arch."\n";
$rar_arch->close();
echo $rar_arch."\n";
?>

Результатом выполнения данного примера будет что-то подобное:

RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar"
RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar" (closed)


Класс RarEntry

(PECL rar >= 0.1)

Введение

Запись RAR, представляющая директорию или сжатый файл внутри архива RAR.

Обзор классов

final RarEntry {
/* Константы */
const integer HOST_MSDOS = 0 ;
const integer HOST_OS2 = 1 ;
const integer HOST_WIN32 = 2 ;
const integer HOST_UNIX = 3 ;
const integer HOST_MACOS = 4 ;
const integer HOST_BEOS = 5 ;
const integer ATTRIBUTE_WIN_READONLY = 1 ;
const integer ATTRIBUTE_WIN_HIDDEN = 2 ;
const integer ATTRIBUTE_WIN_SYSTEM = 4 ;
const integer ATTRIBUTE_WIN_DIRECTORY = 16 ;
const integer ATTRIBUTE_WIN_ARCHIVE = 32 ;
const integer ATTRIBUTE_WIN_DEVICE = 64 ;
const integer ATTRIBUTE_WIN_NORMAL = 128 ;
const integer ATTRIBUTE_WIN_TEMPORARY = 256 ;
const integer ATTRIBUTE_WIN_SPARSE_FILE = 512 ;
const integer ATTRIBUTE_WIN_REPARSE_POINT = 1024 ;
const integer ATTRIBUTE_WIN_COMPRESSED = 2048 ;
const integer ATTRIBUTE_WIN_OFFLINE = 4096 ;
const integer ATTRIBUTE_WIN_NOT_CONTENT_INDEXED = 8192 ;
const integer ATTRIBUTE_WIN_ENCRYPTED = 16384 ;
const integer ATTRIBUTE_WIN_VIRTUAL = 65536 ;
const integer ATTRIBUTE_UNIX_WORLD_EXECUTE = 1 ;
const integer ATTRIBUTE_UNIX_WORLD_WRITE = 2 ;
const integer ATTRIBUTE_UNIX_WORLD_READ = 4 ;
const integer ATTRIBUTE_UNIX_GROUP_EXECUTE = 8 ;
const integer ATTRIBUTE_UNIX_GROUP_WRITE = 16 ;
const integer ATTRIBUTE_UNIX_GROUP_READ = 32 ;
const integer ATTRIBUTE_UNIX_OWNER_EXECUTE = 64 ;
const integer ATTRIBUTE_UNIX_OWNER_WRITE = 128 ;
const integer ATTRIBUTE_UNIX_OWNER_READ = 256 ;
const integer ATTRIBUTE_UNIX_STICKY = 512 ;
const integer ATTRIBUTE_UNIX_SETGID = 1024 ;
const integer ATTRIBUTE_UNIX_SETUID = 2048 ;
const integer ATTRIBUTE_UNIX_FINAL_QUARTET = 61440 ;
const integer ATTRIBUTE_UNIX_FIFO = 4096 ;
const integer ATTRIBUTE_UNIX_CHAR_DEV = 8192 ;
const integer ATTRIBUTE_UNIX_DIRECTORY = 16384 ;
const integer ATTRIBUTE_UNIX_BLOCK_DEV = 24576 ;
const integer ATTRIBUTE_UNIX_REGULAR_FILE = 32768 ;
const integer ATTRIBUTE_UNIX_SYM_LINK = 40960 ;
const integer ATTRIBUTE_UNIX_SOCKET = 49152 ;
/* Методы */
public extract ( string $dir [, string $filepath = "" [, string $password = NULL [, bool $extended_data = FALSE ]]] ) : bool
public getAttr ( void ) : int
public getCrc ( void ) : string
public getFileTime ( void ) : string
public getHostOs ( void ) : int
public getMethod ( void ) : int
public getName ( void ) : string
public getPackedSize ( void ) : int
public getStream ([ string $password ] ) : resource
public getUnpackedSize ( void ) : int
public getVersion ( void ) : int
public isDirectory ( void ) : bool
public isEncrypted ( void ) : bool
public __toString ( void ) : string
}

Предопределенные константы

RarEntry::HOST_MSDOS

Если возвращенное значение RarEntry::getHostOs() равно этой константе, значит эта запись была добавлена в MS-DOS. Введена для замены RAR_HOST_MSDOS.

RarEntry::HOST_OS2

Если возвращенное значение RarEntry::getHostOs() равно этой константе, значит эта запись была добавлена в OS/2. Введена для замены RAR_HOST_OS2.

RarEntry::HOST_WIN32

Если возвращенное значение RarEntry::getHostOs() равно этой константе, значит эта запись была добавлена в Microsoft Windows. Введена для замены RAR_HOST_WIN32.

RarEntry::HOST_UNIX

Если возвращенное значение RarEntry::getHostOs() равно этой константе, значит эта запись была добавлена в UNIX. Введена для замены RAR_HOST_UNIX.

RarEntry::HOST_MACOS

Если возвращенное значение RarEntry::getHostOs() равно этой константе, значит эта запись была добавлена в Mac OS.

RarEntry::HOST_BEOS

Если возвращенное значение RarEntry::getHostOs() равно этой константе, значит эта запись была добавлена в BeOS. Введена для замены RAR_HOST_BEOS.

RarEntry::ATTRIBUTE_WIN_READONLY

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "read-only" для записей Windows.

RarEntry::ATTRIBUTE_WIN_HIDDEN

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "hidden" для записей Windows.

RarEntry::ATTRIBUTE_WIN_SYSTEM

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "system" для записей Windows.

RarEntry::ATTRIBUTE_WIN_DIRECTORY

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "directory" (является директорией) для записей Windows. Также смотрите описание метода RarEntry::isDirectory(), который также работает с записями, добавленными не через WinRAR.

RarEntry::ATTRIBUTE_WIN_ARCHIVE

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "archive" для записей Windows.

RarEntry::ATTRIBUTE_WIN_DEVICE

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "device" для записей Windows.

RarEntry::ATTRIBUTE_WIN_NORMAL

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "normal file" (НЕ является директорией) для записей Windows. Также смотрите описание метода RarEntry::isDirectory(), который также работает с записями, добавленными не через WinRAR.

RarEntry::ATTRIBUTE_WIN_TEMPORARY

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "temporary" для записей Windows.

RarEntry::ATTRIBUTE_WIN_SPARSE_FILE

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "sparse file" (разреженный файл NTFS) для записей Windows.

RarEntry::ATTRIBUTE_WIN_REPARSE_POINT

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "reparse point" (файл точки повторной обработки NTFS, т.е. пересечение директорий или точка монтирования файловой системы) для записей Windows.

RarEntry::ATTRIBUTE_WIN_COMPRESSED

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "compressed" (только NTFS) для записей Windows.

RarEntry::ATTRIBUTE_WIN_OFFLINE

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "offline" (запись отключена и недоступна) для записей Windows.

RarEntry::ATTRIBUTE_WIN_NOT_CONTENT_INDEXED

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "not content indexed" (запись должна быть проиндексирована) для записей Windows.

RarEntry::ATTRIBUTE_WIN_ENCRYPTED

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "encrypted" (только NTFS) для записей Windows.

RarEntry::ATTRIBUTE_WIN_VIRTUAL

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "virtual" (только NTFS) для записей Windows.

RarEntry::ATTRIBUTE_UNIX_WORLD_EXECUTE

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "executable" для всех для записей UNIX.

RarEntry::ATTRIBUTE_UNIX_WORLD_WRITE

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "writable" для всех для записей UNIX.

RarEntry::ATTRIBUTE_UNIX_WORLD_READ

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "readable" для всех для записей UNIX.

RarEntry::ATTRIBUTE_UNIX_GROUP_EXECUTE

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "executable" для группы для записей UNIX.

RarEntry::ATTRIBUTE_UNIX_GROUP_WRITE

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "writable" для группы для записей UNIX.

RarEntry::ATTRIBUTE_UNIX_GROUP_READ

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "readable" для группы для записей UNIX.

RarEntry::ATTRIBUTE_UNIX_OWNER_EXECUTE

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "executable" для владельца для записей UNIX.

RarEntry::ATTRIBUTE_UNIX_OWNER_WRITE

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "writable" для владельца для записей UNIX.

RarEntry::ATTRIBUTE_UNIX_OWNER_READ

Используется с RarEntry::getAttr(). Бит, представляющий запись с атрибутом "readable" для владельца для записей UNIX.

RarEntry::ATTRIBUTE_UNIX_STICKY

Используется с RarEntry::getAttr(). Бит, представляющий запись с установленным "sticky bit" для записей UNIX.

RarEntry::ATTRIBUTE_UNIX_SETGID

Используется с RarEntry::getAttr(). Бит, представляющий запись с установленным "setgid" для записей UNIX.

RarEntry::ATTRIBUTE_UNIX_SETUID

Используется с RarEntry::getAttr(). Бит, представляющий запись с установленным "setuid" для записей UNIX.

RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET

Маска для изоляции четырех последних бит (полубайт) для атрибутов UNIX
      (_S_IFMT, тип файловой маски). Используется с
       RarEntry::getAttr() и константами
      RarEntry::ATTRIBUTE_UNIX_FIFO,
      RarEntry::ATTRIBUTE_UNIX_CHAR_DEV,
      RarEntry::ATTRIBUTE_UNIX_DIRECTORY,
      RarEntry::ATTRIBUTE_UNIX_BLOCK_DEV,
      RarEntry::ATTRIBUTE_UNIX_REGULAR_FILE,
      RarEntry::ATTRIBUTE_UNIX_SYM_LINK и
      RarEntry::ATTRIBUTE_UNIX_SOCKET.

RarEntry::ATTRIBUTE_UNIX_FIFO

Специальные файлы FIFO в Unix будут иметь это значение в четырех последних битах. Используется с RarEntry::getAttr() и константой RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_CHAR_DEV

Специальные файлы символьных устройств в Unix будут иметь это значение в четырех последних битах. Используется с RarEntry::getAttr() и константой RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_DIRECTORY

Директории в Unix будут иметь это значение в четырех последних битах. Используется с RarEntry::getAttr() и константой RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET. Также смотрите описание метода RarEntry::isDirectory(), который также работает с записями добавленными в других операционных системах.

RarEntry::ATTRIBUTE_UNIX_BLOCK_DEV

Специальные файлы блочных устройств в Unix будут иметь это значение в четырех последних битах. Используется с RarEntry::getAttr() и константой RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_REGULAR_FILE

Обычные файлы (не директории) в Unix будут иметь это значение в четырех последних битах. Используется с RarEntry::getAttr() и константой RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET. Также смотрите описание метода RarEntry::isDirectory(), который также работает с записями добавленными в других операционных системах.

RarEntry::ATTRIBUTE_UNIX_SYM_LINK

Символические ссылки в Unix будут иметь это значение в четырех последних битах. Используется с RarEntry::getAttr() и константой RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_SOCKET

Специальные файлы сокетов в Unix будут иметь это значение в четырех последних битах. Используется с RarEntry::getAttr() и константой RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

Содержание

  • RarEntry::extract — Извлекает элемент из архива
  • RarEntry::getAttr — Возвращает атрибуты элемента архива
  • RarEntry::getCrc — Возвращает CRC элемента архива
  • RarEntry::getFileTime — Возвращает последнее время изменения элемента
  • RarEntry::getHostOs — Возвращает оригинальную ОС элемента
  • RarEntry::getMethod — Возвращает метод компрессии элемента
  • RarEntry::getName — Возвращает имя элемента
  • RarEntry::getPackedSize — Возвращает размер сжатого элемента
  • RarEntry::getStream — Получить обработчик для записи
  • RarEntry::getUnpackedSize — Возвращает размер элемента в распакованном состоянии
  • RarEntry::getVersion — Возвращает минимальную версию программы RAR, необходимую для распаковки элемента
  • RarEntry::isDirectory — Проверяет, является ли запись директорией
  • RarEntry::isEncrypted — Проверяет, зашифрована ли запись
  • RarEntry::__toString — Получить текстовое представление записи


Извлекает элемент из архива

  • « RarEntry
  • RarEntry::getAttr »
  • PHP Manual
  • RarEntry
  • Извлекает элемент из архива

RarEntry::extract

(PECL rar >= 0.1)

RarEntry::extract — Извлекает элемент из архива

Описание

public RarEntry::extract ( string $dir [, string $filepath = "" [, string $password = NULL [, bool $extended_data = FALSE ]]] ) : bool

RarEntry::extract() извлекает содержимое элемента. При этом создается новый файл в указанной директории dir с именем совпадающим с именем элемента, если только не задан второй аргумент. Смотрите подробнее ниже.

Список параметров

dir

Путь к директории, куда необходимо извлечь файлы. Этот параметр учитывается только если не указан параметр filepath. Если оба параметра не указаны, то файлы извлекаются в текущую директорию.

filepath

Путь (полный или относительный) содержит директорию и имя извлекаемого файла. Этот параметр переопределяет и параметр dir и оригинальное имя файла.

password

Пароль используется для расшифровки текущего элемента. Если элемент не зашифрован, то этот параметр не будет использован и его можно не указывать. Если же этот параметр не указан, а элемент зашифрован, то будет использован пароль, переданный функции rar_open(), если ее вызывали. Если передан неверный пароль, явно или неявно через rar_open(), то проверка CRC будет неудачной и будет возвращен FALSE. Вы можете проверить является ли элемент зашифрованным с помощью RarEntry::isEncrypted().

extended_data

Если TRUE, то в извлекаемый файл будет добавлена дополнительная информация, такая как NTFS ACL и владелец в системе Unix, если они присутствовали в архиве.

Внимание

До версии 2.0.0, не обрабатывала относительные пути корректно. Используйте для этой ситуации realpath().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
3.0.0 | Был добавлен параметр extended_data.
3.0.0 | Исправлена поддержка RAR архивов с повторяющимися именами элементов.

Примеры

Пример #1 Пример использования RarEntry::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

?>

Пример #2 Как извлечь все файлы из архива:

<?php

/* Пример от Erik Jenssen aka erix */

$filename = "foobar.rar";
$filepath = "/home/foo/bar/";

$rar_file = rar_open($filepath.$filename);
$list = rar_list($rar_file);
foreach($list as $file) {
    $entry = rar_entry_get($rar_file, $file);
    $entry->extract("."); // извлечь в текущий каталог
}
rar_close($rar_file);

?>

Смотрите также

  • RarEntry::getStream() - Получить обработчик для записи
  • rar:// wrapper


Возвращает атрибуты элемента архива

  • « RarEntry::extract
  • RarEntry::getCrc »
  • PHP Manual
  • RarEntry
  • Возвращает атрибуты элемента архива

RarEntry::getAttr

(PECL rar >= 0.1)

RarEntry::getAttr — Возвращает атрибуты элемента архива

Описание

public RarEntry::getAttr ( void ) : int

Возвращает атрибуты элемента архива, зависящие от операционной системы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает атрибуты или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования RarEntry::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);

?>

Смотрите также

  • RarEntry::getHostOs() - Возвращает оригинальную ОС элемента
  • Константы RarEntry


Возвращает CRC элемента архива

  • « RarEntry::getAttr
  • RarEntry::getFileTime »
  • PHP Manual
  • RarEntry
  • Возвращает CRC элемента архива

RarEntry::getCrc

(PECL rar >= 0.1)

RarEntry::getCrc — Возвращает CRC элемента архива

Описание

public RarEntry::getCrc ( void ) : string

Возвращает шестнадцатеричное строковое представление CRC элемента архива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает CRC элемента архива или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
2.0.0 | Теперь этот метод возвращает корректные значения для многотомных архивов.


Возвращает последнее время изменения элемента

  • « RarEntry::getCrc
  • RarEntry::getHostOs »
  • PHP Manual
  • RarEntry
  • Возвращает последнее время изменения элемента

RarEntry::getFileTime

(PECL rar >= 0.1)

RarEntry::getFileTime — Возвращает последнее время изменения элемента

Описание

public RarEntry::getFileTime ( void ) : string

Возвращает последнее время изменения элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает последнее время изменения элемента в виде строки в формате YYYY-MM-DD HH:II:SS, или FALSE в случае возникновения ошибки.


Возвращает оригинальную ОС элемента

  • « RarEntry::getFileTime
  • RarEntry::getMethod »
  • PHP Manual
  • RarEntry
  • Возвращает оригинальную ОС элемента

RarEntry::getHostOs

(PECL rar >= 0.1)

RarEntry::getHostOs — Возвращает оригинальную ОС элемента

Описание

public RarEntry::getHostOs ( void ) : int

Возвращает код оригинальной операционной системы, в которой был создан элемент архива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код ОС, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования RarEntry::getHostOs()(версии >= 2.0.0)

<?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 RarEntry::HOST_MSDOS:
        echo "MS-DOS\n";
        break;
    case RarEntry::HOST_OS2:
        echo "OS2\n";
        break;
    case RarEntry::HOST_WIN32:
        echo "Win32\n";
        break;
    case RarEntry::HOST_MACOS:
        echo "MacOS\n";
        break;
    case RarEntry::HOST_UNIX:
        echo "Unix/Linux\n";
        break;
    case RarEntry::HOST_BEOS:
        echo "BeOS\n";
        break;
}

?>

Пример #2 Пример использования RarEntry::getHostOs()(версии <= 1.0.0)

<?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;
}

?>

Смотрите также

  • RarEntry::extract() - Извлекает элемент из архива


Возвращает метод компрессии элемента

  • « RarEntry::getHostOs
  • RarEntry::getName »
  • PHP Manual
  • RarEntry
  • Возвращает метод компрессии элемента

RarEntry::getMethod

(PECL rar >= 0.1)

RarEntry::getMethod — Возвращает метод компрессии элемента

Описание

public RarEntry::getMethod ( void ) : int

RarEntry::getMethod() возвращает число соответствующее методу компрессии, использовавшемуся при создании текущего элемента архива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает номер метода или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования RarEntry::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();

?>


Возвращает имя элемента

  • « RarEntry::getMethod
  • RarEntry::getPackedSize »
  • PHP Manual
  • RarEntry
  • Возвращает имя элемента

RarEntry::getName

(PECL rar >= 0.1)

RarEntry::getName — Возвращает имя элемента

Описание

public RarEntry::getName ( void ) : string

Возвращает имя элемента массива (вместе с путем).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя элемента в виде строки, или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
2.0.0 | Начиная с версии 2.0.0 возвращается строка в кодировке Unicode/UTF-8.

Примеры

Пример #1 Пример использования RarEntry::getName()

<?php

// этот пример работает, даже если страница не в кодировке UTF-8
// для перекодирования в UTF-8 вызывается mb_convert_encoding

$rar_file = rar_open('example.rar') or die("Не удалось открыть Rar архив");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Не удалось найти такую запись");

echo "Имя элемента: " . mb_convert_encoding(
    htmlentities(
        $entry->getName(),
        ENT_COMPAT,
        "UTF-8"
    ),
    "HTML-ENTITIES",
    "UTF-8"
);

?>


Возвращает размер сжатого элемента

  • « RarEntry::getName
  • RarEntry::getStream »
  • PHP Manual
  • RarEntry
  • Возвращает размер сжатого элемента

RarEntry::getPackedSize

(PECL rar >= 0.1)

RarEntry::getPackedSize — Возвращает размер сжатого элемента

Описание

public RarEntry::getPackedSize ( void ) : int

Возвращает размер сжатого элемента архива.

Замечание:

Учтите, что на платформах с 32-х битными целыми long (включая Windows x64), максимальный возвращаемый размер ограничен 2 ГБ. Проверьте константу PHP_INT_MAX.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер сжатого элемента, или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
2.0.0 | Данный метод теперь возвращает правильные значения для сжатых данных больше 2 ГБ на платформах с 64-х битными целыми (integer) и никогда не возвращает отрицательные значения на всех платформах.

Примеры

Пример #1 Пример использования RarEntry::getPackedSize()

<?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() . " байтов";

?>


Получить обработчик для записи

  • « RarEntry::getPackedSize
  • RarEntry::getUnpackedSize »
  • PHP Manual
  • RarEntry
  • Получить обработчик для записи

RarEntry::getStream

(PECL rar >= 2.0.0)

RarEntry::getStream — Получить обработчик для записи

Описание

public RarEntry::getStream ([ string $password ] ) : resource

Возвращает обработчик, поддерживающий операцию чтения. Этот обработчик умеет распаковывать запись на лету.

Обработчик не уничтожается при вызове rar_close().

Внимание

Результирующий поток не проверяется на целостность. Следовательно никак не определяется порча файла или расшифровка с неверным ключом. Проверка контрольной суммы разжатого и расшифрованного файла полностью на совести разработчика.

Список параметров

password

Пароль, использовавшийся для шифрования записи. Если запись не шифрована, то этот параметр игнорируется и в целом может быть опущен. Если же параметр опущен, а запись шифрована, то будет использован пароль заданный в функции rar_open(), если конечно он был задан. Если был задан неверный пароль, явно или неявно через rar_open(), этот метод вернет поток с неверными данными. Если пароль не задан вообще, а он нужен, то метод вернет FALSE. Зашифрована ли запись или нет можно проверить с помощью RarEntry::isEncrypted().

Возвращаемые значения

Обработчик или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
3.0.0 | Поддержка RAR-архивов с дублирующимися именами записей теперь работает нормально.

Примеры

Пример #1 Пример использования RarEntry::getStream()

<?php

$rar_file = rar_open('example.rar');
if ($rar_file === false)
    die("Не удалось открыть Rar архив");

$entry = rar_entry_get($rar_file, 'Dir/file.txt');
if ($entry === false)
    die("Не удалось найти такую запись");

$stream = $entry->getStream();
if ($stream === false)
    die("Не удалось получить поток.");

rar_close($rar_file); //поток не зависит от файла

while (!feof($stream)) {
    $buff = fread($stream, 8192);
    if ($buff !== false)
        echo $buff;
    else
        break; //ошибка fread
}

fclose($stream);

?>

Смотрите также

  • RarEntry::extract() - Извлекает элемент из архива
  • обертка rar://


Возвращает размер элемента в распакованном состоянии

  • « RarEntry::getStream
  • RarEntry::getVersion »
  • PHP Manual
  • RarEntry
  • Возвращает размер элемента в распакованном состоянии

RarEntry::getUnpackedSize

(PECL rar >= 0.1)

RarEntry::getUnpackedSize — Возвращает размер элемента в распакованном состоянии

Описание

public RarEntry::getUnpackedSize ( void ) : int

Возвращает размер элемента архива в распакованном состоянии.

Замечание:

Учтите, что на платформах с 32-х битными целыми long (включая Windows x64), максимальный возвращаемый размер ограничен 2 ГБ. Проверьте константу PHP_INT_MAX.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер распакованного элемента, или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
2.0.0 | Данный метод теперь возвращает правильные значения для сжатых данных больше 2 ГБ на платформах с 64-х битными целыми (integer) и никогда не возвращает отрицательные значения на всех платформах.

Возвращаемые значения

Пример #1 Пример использования RarEntry::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() . " байтов";

?>


Возвращает минимальную версию программы RAR, необходимую для распаковки элемента

  • « RarEntry::getUnpackedSize
  • RarEntry::isDirectory »
  • PHP Manual
  • RarEntry
  • Возвращает минимальную версию программы RAR, необходимую для распаковки элемента

RarEntry::getVersion

(PECL rar >= 0.1)

RarEntry::getVersion — Возвращает минимальную версию программы RAR, необходимую для распаковки элемента

Описание

public RarEntry::getVersion ( void ) : int

Возвращает минимальную версию программы RAR (т.е. WinRAR), необходимую для распаковки элемента архива. Она закодирована в виде: 10 * основная версия + минорная версия.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает версию или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования RarEntry::getVersion()

<?php

$rar_file = rar_open('example.rar') or die("Не удалось открыть Rar архив");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Не удалось найти такую запись");

echo "Версия Rar, необходимая для распаковки: " . $entry->getVersion();

?>


Проверяет, является ли запись директорией

  • « RarEntry::getVersion
  • RarEntry::isEncrypted »
  • PHP Manual
  • RarEntry
  • Проверяет, является ли запись директорией

RarEntry::isDirectory

(PECL rar >= 2.0.0)

RarEntry::isDirectory — Проверяет, является ли запись директорией

Описание

public RarEntry::isDirectory ( void ) : bool

Проверяет, является ли текущая запись директорией.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE или FALSE в зависимости от результата.

Примечания

Функция доступна с версии 2.0.0, а для более ранних версий можно проверять атрибуты записи (Работает только для файлов, сжатых в RAR для Windows или Unix):

<?php
//...
//Откроем файл, получим запись и сохраним в переменной $e...
//...

$isDirectory = (bool) ((($e->getHostOs() == RAR_HOST_WIN32) && ($e->getAttr() & 0x10)) ||
    (($e->getHostOs() == RAR_HOST_UNIX) && (($e->getAttr() & 0xf000) == 0x4000)));
?>


Проверяет, зашифрована ли запись

  • « RarEntry::isDirectory
  • RarEntry::__toString »
  • PHP Manual
  • RarEntry
  • Проверяет, зашифрована ли запись

RarEntry::isEncrypted

(PECL rar >= 2.0.0)

RarEntry::isEncrypted — Проверяет, зашифрована ли запись

Описание

public RarEntry::isEncrypted ( void ) : bool

Проверяет, зашифрована ли текущая запись.

Замечание:

В одном и том же архиве для разных файлов могут использоваться разные пароли.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE или FALSE в зависимости от результата.


Получить текстовое представление записи

  • « RarEntry::isEncrypted
  • RarException »
  • PHP Manual
  • RarEntry
  • Получить текстовое представление записи

RarEntry::__toString

(PECL rar >= 2.0.0)

RarEntry::__toString — Получить текстовое представление записи

Описание

public RarEntry::__toString ( void ) : string

RarEntry::__toString() возвращает текстовое представление для текущей записи. Оно будет содержать информацию о том, является ли запись файлом или директорией (символические ссылки и прочие специальные объекты будут считаться файлами), имя записи в кодировке UTF-8 и ее контрольная сумма (CRC). Вид и содержание этой информации в будущем может измениться, так что не стоит на них полагаться.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текстовое представление записи.


Класс RarException

(PECL rar >= 2.0.0)

Введение

Класс служит двум целям: это тип исключений, передаваемых функциями и методами модуля RAR, позволяющий с помощью стандартных методов производить запрос и определять ошибку работы модуля независимо от того, передаются ли исключения или лишь выдаются предупреждения.

Используются следующие коды ошибок:

  • -1 - ошибка вне библиотеки UnRAR
  • 11 - недостаточно памяти
  • 12 - неправильные данные
  • 13 - неправильный архив
  • 14 - неизвестный формат
  • 15 - ошибка открытия файла
  • 16 - ошибка создания файла
  • 17 - ошибка закрытия файла
  • 18 - ошибка чтения
  • 19 - ошибка записи
  • 20 - слишком маленький буфер
  • 21 - неизвестная ошибка RAR
  • 22 - требуется пароль

Обзор классов

final RarException extends Exception {
/* Методы */
public static isUsingExceptions ( void ) : bool
public static setUsingExceptions ( bool $using_exceptions ) : void
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Содержание

  • RarException::isUsingExceptions — Проверить, будут ли функции возвращать ошибки или выбрасывать исключения
  • RarException::setUsingExceptions — Включить или отключить генерацию исключений вместо возвращения ошибок


Проверить, будут ли функции возвращать ошибки или выбрасывать исключения

  • « RarException
  • RarException::setUsingExceptions »
  • PHP Manual
  • RarException
  • Проверить, будут ли функции возвращать ошибки или выбрасывать исключения

RarException::isUsingExceptions

(PECL rar >= 2.0.0)

RarException::isUsingExceptions — Проверить, будут ли функции возвращать ошибки или выбрасывать исключения

Описание

public static RarException::isUsingExceptions ( void ) : bool

Проверяет, будут ли функции RAR выбрасывать исключения или возвращать ошибки и вызывать предупреждения в большинстве случаев (не включая некоторые программные ошибки вроде передачи аргументов некорректных типов).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если используются исключения и FALSE, если нет.

Примеры

Пример #1 Пример использования RarException::isUsingExceptions()

<?php
//По умолчанию исключения не используются
var_dump(RarException::isUsingExceptions());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)

Смотрите также

  • RarException::setUsingExceptions() - Включить или отключить генерацию исключений вместо возвращения ошибок


Включить или отключить генерацию исключений вместо возвращения ошибок

  • « RarException::isUsingExceptions
  • Zip »
  • PHP Manual
  • RarException
  • Включить или отключить генерацию исключений вместо возвращения ошибок

RarException::setUsingExceptions

(PECL rar >= 2.0.0)

RarException::setUsingExceptions — Включить или отключить генерацию исключений вместо возвращения ошибок

Описание

public static RarException::setUsingExceptions ( bool $using_exceptions ) : void

Если аргумент задан как TRUE, то, вместо выдачи предупреждения и возврата ошибки, библиотека UnRAR будет выбрасывать исключение типа RarException в случае возникновения ошибки.

Также исключения будут выброшены в случае следующих ошибок, произошедших вне библиотеки (их код возврата должен быть равен -1):

  • попытка произведения действий с закрытым объектом RarArchive или объектом RarEntry относящегося к первому;
  • попытка извлечь отсутствующую запись с помощью RarArchive::getEntry().

Список параметров

using_exceptions

TRUE для активации генерации исключений, FALSE для деактивации (по умолчанию).

Примеры

Пример #1 Пример использования RarException::setUsingExceptions()

<?php
var_dump(RarException::isUsingExceptions());
$arch = RarArchive::open("does_not_exist.rar");
var_dump($arch);

RarException::setUsingExceptions(true);
var_dump(RarException::isUsingExceptions());
$arch = RarArchive::open("does_not_exist.rar");
var_dump($arch); //not reached
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)

Warning: RarArchive::open(): Failed to open does_not_exist.rar: ERAR_EOPEN (file open error) in C:\php_rar\trunk\tests\test.php on line 3
bool(false)
bool(true)

Fatal error: Uncaught exception 'RarException' with message 'unRAR internal error: Failed to open does_not_exist.rar: ERAR_EOPEN (file open error)' in C:\php_rar\trunk\tests\test.php:8
Stack trace:
#0 C:\php_rar\trunk\tests\test.php(8): RarArchive::open('does_not_exist....')
#1 {main}
  thrown in C:\php_rar\trunk\tests\test.php on line 8

Смотрите также

  • RarException::isUsingExceptions() - Проверить, будут ли функции возвращать ошибки или выбрасывать исключения


Zip

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • ZipArchive — Класс ZipArchive
    • ZipArchive::addEmptyDir — Добавляет новую директорию
    • ZipArchive::addFile — Добавляет в ZIP-архив файл по указанному пути
    • ZipArchive::addFromString — Добавляет файл в ZIP-архив, используя его содержимое
    • ZipArchive::addGlob — Добавить файлы из директории в соответствии с шаблоном
    • ZipArchive::addPattern — Добавить файлы из директории в соответствии с шаблоном регулярного выражения PCRE
    • ZipArchive::close — Закрывает активный архив (открытый или вновь созданный)
    • ZipArchive::count — Подсчитывает количество файлов в архиве
    • ZipArchive::deleteIndex — Удаляет элемент в архиве, используя его индекс
    • ZipArchive::deleteName — Удаляет элемент в архиве, используя его имя
    • ZipArchive::extractTo — Извлекает содержимое архива
    • ZipArchive::getArchiveComment — Возвращает комментарий ZIP-архива
    • ZipArchive::getCommentIndex — Возвращает комментарий элемента, используя его индекс
    • ZipArchive::getCommentName — Возвращает комментарий элемента, используя его имя
    • ZipArchive::getExternalAttributesIndex — Извлечь внешние атрибуты записи по ее индексу
    • ZipArchive::getExternalAttributesName — Извлечь внешние атрибуты записи по ее имени
    • ZipArchive::getFromIndex — Возвращает содержимое элемента по его индексу
    • ZipArchive::getFromName — Возвращает содержимое элемента по его имени
    • ZipArchive::getNameIndex — Возвращает имя элемента по его индексу
    • ZipArchive::getStatusString — Возвращают статус сообщения об ошибке, системный и/или zip-статус
    • ZipArchive::getStream — Получить дескриптор файла элемента, определенный по имени элемента (только для чтения)
    • ZipArchive::locateName — Возвращает индекс элемента в архиве
    • ZipArchive::open — Открывает ZIP-архив
    • ZipArchive::registerCancelCallback — Register a callback to allow cancellation during archive close.
    • ZipArchive::registerProgressCallback — Register a callback to provide updates during archive close.
    • ZipArchive::renameIndex — Переименовывает элемент по его индексу
    • ZipArchive::renameName — Переименовывает элемент по его имени
    • ZipArchive::setArchiveComment — Устанавливает комментарий к ZIP-архиву
    • ZipArchive::setCommentIndex — Устанавливает комментарий к элементу по его индексу
    • ZipArchive::setCommentName — Устанавливает комментарий к элементу, заданному по имени
    • ZipArchive::setCompressionIndex — Установить метод сжатия записи, заданной ее индексом
    • ZipArchive::setCompressionName — Установить метод сжатия записи, заданной по имени
    • ZipArchive::setEncryptionIndex — Установить метод шифрования записи по ее индексу
    • ZipArchive::setEncryptionName — Установить метод шифрования записи по ее имени
    • ZipArchive::setExternalAttributesIndex — Установить внешние атрибуты записи по ее индексу
    • ZipArchive::setExternalAttributesName — Установка внешних атрибутов записи, заданной по имени
    • ZipArchive::setMtimeIndex — Установить время модификации файла по его индексу
    • ZipArchive::setMtimeName — Установить время модификации файла по его имени
    • ZipArchive::setPassword — Установка пароля для активного архива
    • ZipArchive::statIndex — Получение детальной информации о элементе по его индексу
    • ZipArchive::statName — Получение детальной информации о элементе по его имени
    • ZipArchive::unchangeAll — Отменяет все изменения, сделанные в архиве
    • ZipArchive::unchangeArchive — Возвращает все глобальные изменения, сделанные в архиве
    • ZipArchive::unchangeIndex — Отменяет все изменения у позиции с заданным индексом
    • ZipArchive::unchangeName — Отменяет все измения у позиции с заданным именем
  • Функции Zip
    • zip_close — Закрывает дескриптор ZIP-архива
    • zip_entry_close — Закрывает дескриптор директории
    • zip_entry_compressedsize — Возвращает сжатый размер файла для дескриптора директории
    • zip_entry_compressionmethod — Возвращает метод сжатия дескриптора директории
    • zip_entry_filesize — Возвращает реальный размер файла для дескриптора директории
    • zip_entry_name — Получает имя дескриптора директории
    • zip_entry_open — Открывает директорию для чтения
    • zip_entry_read — Читает данные из открытого ранее дескриптора директории
    • zip_open — Открывает ZIP-архив
    • zip_read — Считывает следующую запись в ZIP-архиве


Введение

Это расширение позволяет легко читать и записывать как в сами сжатые ZIP-архивы, так и в файлы внутри них.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Это расширение требует » libzip, который поставляется в составе PHP.


Установка

Системы Linux

Для использования этих функций необходимо скомпилировать PHP с поддержкой zip, используя конфигурационную опцию --enable-zip .

Начиная с PHP 5.6.0 добавлена опция --with-libzip=DIR , указывающая использовать системную библиотеку libzip. Требуется libzip версии 0.11, рекомендуется версия 0.11.2 или новее.

Сборка с использованием libzip, входящего в PHP, не рекомендуется, но все же возможно путем добавления --without-libzip в конфигурацию.

Windows

С PHP 5.3 это расширение встроено по умолчанию. Для использования этих функций пользователи Windows должны включить php_zip.dll в php.ini.

Установка через PECL

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/zip.


Типы ресурсов

В Zip-модуле используются два типа ресурсов. Первый — директория Zip для Zip-архива, второй — Zip Entry для записей архива.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

ZipArchive использует константы класса. Есть три типа констант: Флаги (префикс FL_), ошибки (префикс ER_) и режима работы (без префикса).

ZipArchive::CREATE (integer)
Создавать архив, если он не существует.
ZipArchive::OVERWRITE (integer)
Если архив существует, то игнорировать текущее его содержимое. Другими словами, обработать его так же, как и пустой архив.
ZipArchive::EXCL (integer)
Выводить ошибку, если архив существует.
ZipArchive::RDONLY (integer)
Открыть архив в режиме только для чтения. Доступно с PHP 7.4.3 и PECL zip 1.17.1, соответственно, если скомпилировано с использованием libzip ? 1.0.0.
ZipArchive::CHECKCONS (integer)
Выполнять дополнительные проверки на структуру архива и выдавать ошибку при неудаче.
ZipArchive::FL_NOCASE (integer)
Игнорировать регистр символов в именах элементов архива.
ZipArchive::FL_NODIR (integer)
Не учитывать пути директорий в архиве.
ZipArchive::FL_COMPRESSED (integer)
Читать сжатые данные.
ZipArchive::FL_UNCHANGED (integer)
Использовать исходные данные, игнорируя изменения.
ZipArchive::FL_ENC_GUESS (integer)
Угадать кодировку строки (по умолчанию). Доступно с PHP 7.0.8.
ZipArchive::FL_ENC_RAW (integer)
Взять немодифицированную строку. Доступно с PHP 7.0.8.
ZipArchive::FL_ENC_STRICT (integer)
Строго следовать спецификации. Доступно с PHP 7.0.8.
ZipArchive::FL_ENC_UTF_8 (integer)
Строка в кодировке UTF-8. Доступно с PHP 7.0.8.
ZipArchive::FL_ENC_CP437 (integer)
Строка в кодировке CP437. Доступно с PHP 7.0.8.
ZipArchive::CM_DEFAULT (integer)
Выбрать лучший метод сжатия "deflate" или "stored" (без сжатия).
ZipArchive::CM_STORE (integer)
Метод сжатия "stored" (без сжатия).
ZipArchive::CM_SHRINK (integer)
Метод сжатия "shrunk".
ZipArchive::CM_REDUCE_1 (integer)
Метод сжатия "reduced" с коэффициентом 1.
ZipArchive::CM_REDUCE_2 (integer)
Метод сжатия "reduced" с коэффициентом 2.
ZipArchive::CM_REDUCE_3 (integer)
Метод сжатия "reduced" с коэффициентом 3.
ZipArchive::CM_REDUCE_4 (integer)
Метод сжатия "reduced" с коэффициентом 4.
ZipArchive::CM_IMPLODE (integer)
Метод сжатия "imploded".
ZipArchive::CM_DEFLATE (integer)
Метод сжатия "deflated".
ZipArchive::CM_DEFLATE64 (integer)
Метод сжатия "deflate64".
ZipArchive::CM_PKWARE_IMPLODE (integer)
Метод сжатия "PKWARE imploding".
ZipArchive::CM_BZIP2 (integer)
Метод сжатия алгоритмом BZIP2.
ZipArchive::CM_LZMA (integer)
Метод сжатия алгоритмом LZMA.
ZipArchive::CM_LZMA2 (integer)
Метод сжатия алгоритмом LZMA2. Доступно с PHP 7.4.3 и PECL zip 1.16.0, соответственно, если скомпилировано с использованием libzip ? 1.6.0.
ZipArchive::CM_XZ (integer)
Метод сжатия алгоритмом XZ. Доступно с PHP 7.4.3 и PECL zip 1.16.0, соответственно, если скомпилировано с использованием libzip ? 1.6.0.
ZipArchive::ER_OK (integer)
Нет ошибок.
ZipArchive::ER_MULTIDISK (integer)
Многотомный ZIP-архив не поддерживается.
ZipArchive::ER_RENAME (integer)
Переименование временного файла не удалось.
ZipArchive::ER_CLOSE (integer)
Закрытие ZIP-архива не удалось.
ZipArchive::ER_SEEK (integer)
Ошибка поиска.
ZipArchive::ER_READ (integer)
Ошибка чтения.
ZipArchive::ER_WRITE (integer)
Ошибка записи.
ZipArchive::ER_CRC (integer)
Ошибка контрольной суммы.
ZipArchive::ER_ZIPCLOSED (integer)
Открытый ZIP-архив был закрыт.
ZipArchive::ER_NOENT (integer)
Нет такого файла.
ZipArchive::ER_EXISTS (integer)
Файл уже существует.
ZipArchive::ER_OPEN (integer)
Невозможно открыть файл.
ZipArchive::ER_TMPOPEN (integer)
Не удалось создать временный файл.
ZipArchive::ER_ZLIB (integer)
Ошибка Zlib.
ZipArchive::ER_MEMORY (integer)
Ошибка выделения памяти.
ZipArchive::ER_CHANGED (string)
Запись была изменена.
ZipArchive::ER_COMPNOTSUPP (integer)
Метод сжатия не поддерживается.
ZipArchive::ER_EOF (integer)
Преждевременный конец файла.
ZipArchive::ER_INVAL (integer)
Недопустимый аргумент.
ZipArchive::ER_NOZIP (integer)
Не ZIP-архив.
ZipArchive::ER_INTERNAL (integer)
Внутренняя ошибка.
ZipArchive::ER_INCONS (integer)
ZIP-архив несовместим.
ZipArchive::ER_REMOVE (integer)
Невозможно удалить файл.
ZipArchive::ER_DELETED (integer)
Запись была удалена.
ZipArchive::ER_ENCRNOTSUPP (integer)
Метод шифрования не поддерживается. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно.
ZipArchive::ER_RDONLY (integer)
Архив только для чтения. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно.
ZipArchive::ER_NOPASSWD (integer)
Пароль не указан. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно.
ZipArchive::ER_WRONGPASSWD (integer)
Предоставлен неверный пароль. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно.
ZipArchive::ZIP_ER_OPNOTSUPP (integer)
Операция не поддерживается. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно, если скомпилировано с использованием libzip ? 1.0.0.
ZipArchive::ZIP_ER_INUSE (integer)
Ресурс все еще используется. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно, если скомпилировано с использованием libzip ? 1.0.0.
ZipArchive::ZIP_ER_TELL (integer)
Указана ошибка. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно, если скомпилировано с использованием libzip ? 1.0.0.
ZipArchive::ZIP_ER_COMPRESSED_DATA (integer)
Сжатые данные неверны. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно, если скомпилировано с использованием libzip ? 1.0.0.
ZipArchive::ER_CANCELLED (integer)
Операция отменена. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно, если скомпилировано с использованием libzip ? 1.0.0.
ZipArchive::EM_NONE (integer)
Без шифрования. Доступно, начиная с PHP 7.2.0 и PECL zip 1.14.0, соответственно, если скомпилировано с использованием libzip ? 1.2.0.
ZipArchive::EM_AES_128 (integer)
Шифрование AES 128. Доступно, начиная с PHP 7.2.0 и PECL zip 1.14.0, соответственно, если скомпилировано с использованием libzip ? 1.2.0.
ZipArchive::EM_AES_192 (integer)
Шифрование AES 192. Доступно, начиная с PHP 7.2.0 и PECL zip 1.14.0, соответственно, если скомпилировано с использованием libzip ? 1.2.0.
ZipArchive::EM_AES_256 (integer)
Шифрование AES 256. Доступно, начиная с PHP 7.2.0 и PECL zip 1.14.0, соответственно, если скомпилировано с использованием libzip ? 1.2.0.
ZipArchive::LIBZIP_VERSION (string)
Версия библиотеки Zip. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.0.
Константы операционной системы для внешних атрибутов
ZipArchive::OPSYS_DOS (integer)
ZipArchive::OPSYS_AMIGA (integer)
ZipArchive::OPSYS_OPENVMS (integer)
ZipArchive::OPSYS_UNIX (integer)
ZipArchive::OPSYS_VM_CMS (integer)
ZipArchive::OPSYS_ATARI_ST (integer)
ZipArchive::OPSYS_OS_2 (integer)
ZipArchive::OPSYS_MACINTOSH (integer)
ZipArchive::OPSYS_Z_SYSTEM (integer)
ZipArchive::OPSYS_CPM (integer)
ZipArchive::OPSYS_WINDOWS_NTFS (integer)
ZipArchive::OPSYS_MVS (integer)
ZipArchive::OPSYS_VSE (integer)
ZipArchive::OPSYS_ACORN_RISC (integer)
ZipArchive::OPSYS_VFAT (integer)
ZipArchive::OPSYS_ALTERNATE_MVS (integer)
ZipArchive::OPSYS_BEOS (integer)
ZipArchive::OPSYS_TANDEM (integer)
ZipArchive::OPSYS_OS_400 (integer)
ZipArchive::OPSYS_OS_X (integer)
ZipArchive::OPSYS_DEFAULT (integer)
Начиная с PHP 5.6.0, PECL zip 1.12.4


Примеры

Пример #1 Создание Zip-архива

<?php

$zip = new ZipArchive();
$filename = "./test112.zip";

if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
    exit("Невозможно открыть <$filename>\n");
}

$zip->addFromString("testfilephp.txt" . time(), "#1 Это тестовая строка добавляется в качестве testfilephp.txt.\n");
$zip->addFromString("testfilephp2.txt" . time(), "#2 Это тестовая строка добавляется в качестве testfilephp2.txt.\n");
$zip->addFile($thisdir . "/too.php","/testfromfile.php");
echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $zip->status . "\n";
$zip->close();
?>

Пример #2 Собрать и отобразить подробную информацию об архиве

<?php
$za = new ZipArchive();

$za->open('test_with_comment.zip');
print_r($za);
var_dump($za);
echo "numFiles: " . $za->numFiles . "\n";
echo "status: " . $za->status  . "\n";
echo "statusSys: " . $za->statusSys . "\n";
echo "filename: " . $za->filename . "\n";
echo "comment: " . $za->comment . "\n";

for ($i=0; $i<$za->numFiles;$i++) {
    echo "index: $i\n";
    print_r($za->statIndex($i));
}
echo "numFile:" . $za->numFiles . "\n";
?>

Пример #3 Использование обертки потока Zip, чтение метаинформации OpenOffice

<?php
$reader = new XMLReader();

$reader->open('zip://' . dirname(__FILE__) . '/test.odt#meta.xml');
$odt_meta = array();
while ($reader->read()) {
    if ($reader->nodeType == XMLREADER::ELEMENT) {
        $elm = $reader->name;
    } else {
        if ($reader->nodeType == XMLREADER::END_ELEMENT && $reader->name == 'office:meta') {
            break;
        }
        if (!trim($reader->value)) {
            continue;
        }
        $odt_meta[$elm] = $reader->value;
    }
}
print_r($odt_meta);
?>

Этот пример использует старую версию API (PHP 4), он открывает ZIP-архив, читает каждый файл в архиве и выводит его содержимое. Архив test2.zip, использованный в этом примере, является одним из тестовых архивов исходного дистрибутива ZZIPlib.

Пример #4 Пример использования Zip

<?php

$zip = zip_open("/tmp/test2.zip");

if ($zip) {
    while ($zip_entry = zip_read($zip)) {
        echo "Название:         " . zip_entry_name($zip_entry) . "\n";
        echo "Исходный размер:  " . zip_entry_filesize($zip_entry) . "\n";
        echo "Сжатый размер:    " . zip_entry_compressedsize($zip_entry) . "\n";
        echo "Метод сжатия:     " . zip_entry_compressionmethod($zip_entry) . "\n";

        if (zip_entry_open($zip, $zip_entry, "r")) {
            echo "Содержимое файла:\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);

}
?>


Класс ZipArchive

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

Введение

Файловый архив, сжатый Zip.

Обзор классов

ZipArchive implements Countable {
/* Свойства */
int $status;
int $statusSys;
int $numFiles;
string $filename;
string $comment;
/* Методы */
addEmptyDir ( string $dirname ) : bool
addFile ( string $filename [, string $localname = NULL [, int $start = 0 [, int $length = 0 ]]] ) : bool
addFromString ( string $localname , string $contents ) : bool
addGlob ( string $pattern [, int $flags = 0 [, array $options = array() ]] ) : bool
addPattern ( string $pattern [, string $path = "." [, array $options = array() ]] ) : bool
close ( void ) : bool
public count ( void ) : int
deleteIndex ( int $index ) : bool
deleteName ( string $name ) : bool
extractTo ( string $destination [, mixed $entries ] ) : bool
getArchiveComment ([ int $flags ] ) : string
getCommentIndex ( int $index [, int $flags ] ) : string
getCommentName ( string $name [, int $flags ] ) : string
GetExternalAttributesIndex ( int $index , int &$opsys , int &$attr [, int $flags ] ) : bool
getExternalAttributesName ( string $name , int &$opsys , int &$attr [, int $flags ] ) : bool
getFromIndex ( int $index [, int $length = 0 [, int $flags ]] ) : string
getFromName ( string $name [, int $length = 0 [, int $flags ]] ) : string
getNameIndex ( int $index [, int $flags ] ) : string
getStatusString ( void ) : string
getStream ( string $name ) : resource
locateName ( string $name [, int $flags ] ) : int
open ( string $filename [, int $flags ] ) : mixed
registerCancelCallback ( callable $callback ) : bool
registerProgressCallback ( float $rate , callable $callback ) : bool
renameIndex ( int $index , string $newname ) : bool
renameName ( string $name , string $newname ) : bool
setArchiveComment ( string $comment ) : bool
setCommentIndex ( int $index , string $comment ) : bool
setCommentName ( string $name , string $comment ) : bool
setCompressionIndex ( int $index , int $comp_method [, int $comp_flags = 0 ] ) : bool
setCompressionName ( string $name , int $comp_method [, int $comp_flags = 0 ] ) : bool
setEncryptionIndex ( int $index , string $method [, string $password ] ) : bool
setEncryptionName ( string $name , int $method [, string $password ] ) : bool
setExternalAttributesIndex ( int $index , int $opsys , int $attr [, int $flags ] ) : bool
setExternalAttributesName ( string $name , int $opsys , int $attr [, int $flags ] ) : bool
setMtimeIndex ( int $index , int $timestamp [, int $flags ] ) : bool
setMtimeName ( string $name , int $timestamp [, int $flags ] ) : bool
public setPassword ( string $password ) : bool
statIndex ( int $index [, int $flags ] ) : array
statName ( string $name [, int $flags ] ) : array
unchangeAll ( void ) : bool
unchangeArchive ( void ) : bool
unchangeIndex ( int $index ) : bool
unchangeName ( string $name ) : bool
}

Свойства

status

Статус Zip-архива

statusSys

Системный статус Zip-архива

numFiles

Количество файлов в архиве

filename

Имя файла в файловой системе

comment

Комментарий к архиву

Содержание

  • ZipArchive::addEmptyDir — Добавляет новую директорию
  • ZipArchive::addFile — Добавляет в ZIP-архив файл по указанному пути
  • ZipArchive::addFromString — Добавляет файл в ZIP-архив, используя его содержимое
  • ZipArchive::addGlob — Добавить файлы из директории в соответствии с шаблоном
  • ZipArchive::addPattern — Добавить файлы из директории в соответствии с шаблоном регулярного выражения PCRE
  • ZipArchive::close — Закрывает активный архив (открытый или вновь созданный)
  • ZipArchive::count — Подсчитывает количество файлов в архиве
  • ZipArchive::deleteIndex — Удаляет элемент в архиве, используя его индекс
  • ZipArchive::deleteName — Удаляет элемент в архиве, используя его имя
  • ZipArchive::extractTo — Извлекает содержимое архива
  • ZipArchive::getArchiveComment — Возвращает комментарий ZIP-архива
  • ZipArchive::getCommentIndex — Возвращает комментарий элемента, используя его индекс
  • ZipArchive::getCommentName — Возвращает комментарий элемента, используя его имя
  • ZipArchive::getExternalAttributesIndex — Извлечь внешние атрибуты записи по ее индексу
  • ZipArchive::getExternalAttributesName — Извлечь внешние атрибуты записи по ее имени
  • ZipArchive::getFromIndex — Возвращает содержимое элемента по его индексу
  • ZipArchive::getFromName — Возвращает содержимое элемента по его имени
  • ZipArchive::getNameIndex — Возвращает имя элемента по его индексу
  • ZipArchive::getStatusString — Возвращают статус сообщения об ошибке, системный и/или zip-статус
  • ZipArchive::getStream — Получить дескриптор файла элемента, определенный по имени элемента (только для чтения)
  • ZipArchive::locateName — Возвращает индекс элемента в архиве
  • ZipArchive::open — Открывает ZIP-архив
  • ZipArchive::registerCancelCallback — Register a callback to allow cancellation during archive close.
  • ZipArchive::registerProgressCallback — Register a callback to provide updates during archive close.
  • ZipArchive::renameIndex — Переименовывает элемент по его индексу
  • ZipArchive::renameName — Переименовывает элемент по его имени
  • ZipArchive::setArchiveComment — Устанавливает комментарий к ZIP-архиву
  • ZipArchive::setCommentIndex — Устанавливает комментарий к элементу по его индексу
  • ZipArchive::setCommentName — Устанавливает комментарий к элементу, заданному по имени
  • ZipArchive::setCompressionIndex — Установить метод сжатия записи, заданной ее индексом
  • ZipArchive::setCompressionName — Установить метод сжатия записи, заданной по имени
  • ZipArchive::setEncryptionIndex — Установить метод шифрования записи по ее индексу
  • ZipArchive::setEncryptionName — Установить метод шифрования записи по ее имени
  • ZipArchive::setExternalAttributesIndex — Установить внешние атрибуты записи по ее индексу
  • ZipArchive::setExternalAttributesName — Установка внешних атрибутов записи, заданной по имени
  • ZipArchive::setMtimeIndex — Установить время модификации файла по его индексу
  • ZipArchive::setMtimeName — Установить время модификации файла по его имени
  • ZipArchive::setPassword — Установка пароля для активного архива
  • ZipArchive::statIndex — Получение детальной информации о элементе по его индексу
  • ZipArchive::statName — Получение детальной информации о элементе по его имени
  • ZipArchive::unchangeAll — Отменяет все изменения, сделанные в архиве
  • ZipArchive::unchangeArchive — Возвращает все глобальные изменения, сделанные в архиве
  • ZipArchive::unchangeIndex — Отменяет все изменения у позиции с заданным индексом
  • ZipArchive::unchangeName — Отменяет все измения у позиции с заданным именем


Добавляет новую директорию

  • « ZipArchive
  • ZipArchive::addFile »
  • PHP Manual
  • ZipArchive
  • Добавляет новую директорию

ZipArchive::addEmptyDir

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.8.0)

ZipArchive::addEmptyDir — Добавляет новую директорию

Описание

ZipArchive::addEmptyDir ( string $dirname ) : bool

Добавляет пустую директорию в архив.

Список параметров

dirname

Директория для добавления.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Создание новой директории в архиве.

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    if($zip->addEmptyDir('newDirectory')) {
        echo 'Создана новая директория';
    } else {
        echo 'Невозможно создать директорию';
    }
    $zip->close();
} else {
    echo 'ошибка';
}
?>


Добавляет в ZIP-архив файл по указанному пути

  • « ZipArchive::addEmptyDir
  • ZipArchive::addFromString »
  • PHP Manual
  • ZipArchive
  • Добавляет в ZIP-архив файл по указанному пути

ZipArchive::addFile

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::addFile — Добавляет в ZIP-архив файл по указанному пути

Описание

ZipArchive::addFile ( string $filename [, string $localname = NULL [, int $start = 0 [, int $length = 0 ]]] ) : bool

Добавляет в ZIP-архив файл по указанному пути.

Замечание: Для максимальной переносимости, рекомендуется всегда использовать прямые слеши (/) в качестве разделителя директорий в именах файлов.

Список параметров

filename

Путь к файлу для добавления.

localname

Имя файла внутри ZIP-архива. Если указано, то переопределит filename.

start

Этот параметр не используется, но необходим для будущего развития ZipArchive.

length

Этот параметр не используется, но необходим для будущего развития ZipArchive.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

В данном примере открывается файл ZIP-архива test.zip и в него добавляется файл /path/to/index.txt под именем newname.txt.

Пример #1 Открыть и добавить

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->addFile('/path/to/index.txt', 'newname.txt');
    $zip->close();
    echo 'готово';
} else {
    echo 'ошибка';
}
?>

Примечания

Замечание:

В процессе добавления файла в архив, PHP заблокирует файл. Разблокировка произойдет только после закрытия объекта ZipArchive, путем вызова ZipArchive::close() или уничтожения объекта ZipArchive. Это предотвращает удаление только что добавленного в архив файла до того, как он будет разблокирован.


Добавляет файл в ZIP-архив, используя его содержимое

  • « ZipArchive::addFile
  • ZipArchive::addGlob »
  • PHP Manual
  • ZipArchive
  • Добавляет файл в ZIP-архив, используя его содержимое

ZipArchive::addFromString

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::addFromString — Добавляет файл в ZIP-архив, используя его содержимое

Описание

ZipArchive::addFromString ( string $localname , string $contents ) : bool

Добавяет файл в ZIP-архив, используя его содержимое.

Замечание: Для максимальной переносимости, рекомендуется всегда использовать прямые слеши (/) в качестве разделителя директорий в именах файлов.

Список параметров

localname

Локальное имя файла для создания.

contents

Содержимое для создания файла. Используется в двоичном безопасном режиме.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Добавить запись в новый архив

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'здесь следует содержимое файла');
    $zip->close();
    echo 'готово';
} else {
    echo 'ошибка';
}
?>

Пример #2 Добавить файл в директорию внутри архива

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->addFromString('dir/test.txt', 'здесь следует содержимое файла');
    $zip->close();
    echo 'готово';
} else {
    echo 'ошибка';
}
?>


Добавить файлы из директории в соответствии с шаблоном

  • « ZipArchive::addFromString
  • ZipArchive::addPattern »
  • PHP Manual
  • ZipArchive
  • Добавить файлы из директории в соответствии с шаблоном

ZipArchive::addGlob

(PHP 5 >= 5.3.0, PHP 7, PECL zip >= 1.9.0)

ZipArchive::addGlob — Добавить файлы из директории в соответствии с шаблоном

Описание

ZipArchive::addGlob ( string $pattern [, int $flags = 0 [, array $options = array() ]] ) : bool

Добавить файлы из директории в соответствии с шаблоном pattern.

Замечание: Для максимальной переносимости, рекомендуется всегда использовать прямые слеши (/) в качестве разделителя директорий в именах файлов.

Список параметров

pattern

Шаблон функции glob(), по которому будут выбираться файлы.

flags

Битовая маска флагов glob().

options

Ассоциативный массив опций. Доступные значения:

  • "add_path"

    Префикс, который будет добавляться в начало локального пути в архиве. Накладывается после применения операций, заданных в "remove_path" или "remove_all_path".

  • "remove_path"

    Префикс, который будет удален из пути перед добавлением к архиву.

  • "remove_all_path"

    Установите как TRUE для использования только имени файлов и складывания их в корень архива.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ZipArchive::addGlob()

Добавить к архиву все текстовые файлы и файлы скриптов PHP из текущей директории

<?php
$zip = new ZipArchive();
$ret = $zip->open('application.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);
if ($ret !== TRUE) {
    printf('Ошибка с кодом %d', $ret);
} else {
    $options = array('add_path' => 'sources/', 'remove_all_path' => TRUE);
    $zip->addGlob('*.{php,txt}', GLOB_BRACE, $options);
    $zip->close();
}
?>

Смотрите также

  • ZipArchive::addFile() - Добавляет в ZIP-архив файл по указанному пути
  • ZipArchive::addPattern() - Добавить файлы из директории в соответствии с шаблоном регулярного выражения PCRE


Добавить файлы из директории в соответствии с шаблоном регулярного выражения PCRE

  • « ZipArchive::addGlob
  • ZipArchive::close »
  • PHP Manual
  • ZipArchive
  • Добавить файлы из директории в соответствии с шаблоном регулярного выражения PCRE

ZipArchive::addPattern

(PHP 5 >= 5.3.0, PHP 7, PECL zip >= 1.9.0)

ZipArchive::addPattern — Добавить файлы из директории в соответствии с шаблоном регулярного выражения PCRE

Описание

ZipArchive::addPattern ( string $pattern [, string $path = "." [, array $options = array() ]] ) : bool

Добавляет файлы из директории в соответствии с шаблоном регулярного выражения pattern. Операция не рекурсивна. Шаблон применяется только к именам файлов.

Список параметров

pattern

Шаблон PCRE.

path

Директория для сканирования. По умолчанию выбирается текущая директория.

options

Ассоциативный массив параметров, принимаемых ZipArchive::addGlob().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ZipArchive::addPattern()

Добавить к архиву все текстовые файлы и файлы скриптов PHP из текущей директории

<?php
$zip = new ZipArchive();
$ret = $zip->open('application.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);
if ($ret !== TRUE) {
    printf('Ошибка с кодом %d', $ret);
} else {
    $directory = realpath('.');
    $options = array('add_path' => 'sources/', 'remove_path' => $directory);
    $zip->addPattern('/\.(?:php|txt)$/', $directory, $options);
    $zip->close();
}
?>

Смотрите также

  • ZipArchive::addFile() - Добавляет в ZIP-архив файл по указанному пути
  • ZipArchive::addGlob() - Добавить файлы из директории в соответствии с шаблоном


Закрывает активный архив (открытый или вновь созданный)

  • « ZipArchive::addPattern
  • ZipArchive::count »
  • PHP Manual
  • ZipArchive
  • Закрывает активный архив (открытый или вновь созданный)

ZipArchive::close

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::close — Закрывает активный архив (открытый или вновь созданный)

Описание

ZipArchive::close ( void ) : bool

Закрывает открытый или созданный архив и сохраняет изменения. Данный метод автоматически вызывается в конце сценария.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Подсчитывает количество файлов в архиве

  • « ZipArchive::close
  • ZipArchive::deleteIndex »
  • PHP Manual
  • ZipArchive
  • Подсчитывает количество файлов в архиве

ZipArchive::count

(PHP 7 >= 7.2.0, PECL zip >= 1.15.0)

ZipArchive::count — Подсчитывает количество файлов в архиве

Описание

public ZipArchive::count ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество файлов в архиве.


Удаляет элемент в архиве, используя его индекс

  • « ZipArchive::count
  • ZipArchive::deleteName »
  • PHP Manual
  • ZipArchive
  • Удаляет элемент в архиве, используя его индекс

ZipArchive::deleteIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::deleteIndex — Удаляет элемент в архиве, используя его индекс

Описание

ZipArchive::deleteIndex ( int $index ) : bool

Удаляет элемент (файл или каталог) в архиве, используя его индекс.

Список параметров

index

Индекс элемента для удаления.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Удалить файл из архива, используя его индекс

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->deleteIndex(2);
    $zip->close();
    echo 'готово';
} else {
    echo 'ошибка';
}
?>


Удаляет элемент в архиве, используя его имя

  • « ZipArchive::deleteIndex
  • ZipArchive::extractTo »
  • PHP Manual
  • ZipArchive
  • Удаляет элемент в архиве, используя его имя

ZipArchive::deleteName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::deleteName — Удаляет элемент в архиве, используя его имя

Описание

ZipArchive::deleteName ( string $name ) : bool

Удаляет элемент (файл или каталог) в архиве, используя его имя.

Список параметров

name

Имя элемента для удаления.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Удалить файл и каталог из архива, используя имена

<?php
$zip = new ZipArchive;
if ($zip->open('test1.zip') === TRUE) {
    $zip->deleteName('testfromfile.php');
    $zip->deleteName('testDir/');
    $zip->close();
    echo 'готово';
} else {
    echo 'ошибка';
}
?>


Извлекает содержимое архива

  • « ZipArchive::deleteName
  • ZipArchive::getArchiveComment »
  • PHP Manual
  • ZipArchive
  • Извлекает содержимое архива

ZipArchive::extractTo

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::extractTo — Извлекает содержимое архива

Описание

ZipArchive::extractTo ( string $destination [, mixed $entries ] ) : bool

Извлечение всего архива или его части в указанное место назначения.

Список параметров

destination

Место назначение, куда извлекать файлы.

entries

Элементы для извлечения. Может принимать как одно значение, так и массив записей.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Извлечь все содержимое

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->extractTo('/my/destination/dir/');
    $zip->close();
    echo 'готово';
} else {
    echo 'ошибка';
}
?>

Пример #2 Извлечь два элемента

<?php
$zip = new ZipArchive;
$res = $zip->open('test_im.zip');
if ($res === TRUE) {
    $zip->extractTo('/my/destination/dir/', array('pear_item.gif', 'testfromfile.php'));
    $zip->close();
    echo 'готово';
} else {
    echo 'ошибка';
}
?>


Возвращает комментарий ZIP-архива

  • « ZipArchive::extractTo
  • ZipArchive::getCommentIndex »
  • PHP Manual
  • ZipArchive
  • Возвращает комментарий ZIP-архива

ZipArchive::getArchiveComment

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::getArchiveComment — Возвращает комментарий ZIP-архива

Описание

ZipArchive::getArchiveComment ([ int $flags ] ) : string

Возвращает комментарий ZIP-архива.

Список параметров

flags

Если флаг установлен в ZipArchive::FL_UNCHANGED, возвращается оригинальный неизмененный комментарий.

Возвращаемые значения

Возвращает комментарий ZIP-архива или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Вывести комментарий архива

<?php
$zip = new ZipArchive;
$res = $zip->open('test_with_comment.zip');
if ($res === TRUE) {
    var_dump($zip->getArchiveComment());
    /* Или используя свойство */
    var_dump($zip->comment);
} else {
    echo 'Ошибка с кодом:' . $res;
}
?>


Возвращает комментарий элемента, используя его индекс

  • « ZipArchive::getArchiveComment
  • ZipArchive::getCommentName »
  • PHP Manual
  • ZipArchive
  • Возвращает комментарий элемента, используя его индекс

ZipArchive::getCommentIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.4.0)

ZipArchive::getCommentIndex — Возвращает комментарий элемента, используя его индекс

Описание

ZipArchive::getCommentIndex ( int $index [, int $flags ] ) : string

Возвращает комментарий элемента, используя его индекс.

Список параметров

index

Индекс записи.

flags

Если флаг установлен в ZipArchive::FL_UNCHANGED, возвращается оригинальный неизмененный комментарий.

Возвращаемые значения

Возвращает комментарий при успехе или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Вывести комментарий элемента

<?php
$zip = new ZipArchive;
$res = $zip->open('test1.zip');
if ($res === TRUE) {
    var_dump($zip->getCommentIndex(1));
} else {
    echo 'Ошибка с кодом:' . $res;
}
?>


Возвращает комментарий элемента, используя его имя

  • « ZipArchive::getCommentIndex
  • ZipArchive::getExternalAttributesIndex »
  • PHP Manual
  • ZipArchive
  • Возвращает комментарий элемента, используя его имя

ZipArchive::getCommentName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.4.0)

ZipArchive::getCommentName — Возвращает комментарий элемента, используя его имя

Описание

ZipArchive::getCommentName ( string $name [, int $flags ] ) : string

Возвращает комментарий элемента, используя его имя.

Список параметров

name

Имя элемента.

flags

Если флаг установлен в ZipArchive::FL_UNCHANGED, возвращается оригинальный неизмененный комментарий.

Возвращаемые значения

Возвращает комментарий при успехе или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Вывести комментарий элемента

<?php
$zip = new ZipArchive;
$res = $zip->open('test1.zip');
if ($res === TRUE) {
    var_dump($zip->getCommentName('test/entry1.txt'));
} else {
    echo 'Ошибка с кодом:' . $res;
}
?>


Извлечь внешние атрибуты записи по ее индексу

  • « ZipArchive::getCommentName
  • ZipArchive::getExternalAttributesName »
  • PHP Manual
  • ZipArchive
  • Извлечь внешние атрибуты записи по ее индексу

ZipArchive::getExternalAttributesIndex

(PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4)

ZipArchive::getExternalAttributesIndex — Извлечь внешние атрибуты записи по ее индексу

Описание

ZipArchive::GetExternalAttributesIndex ( int $index , int &$opsys , int &$attr [, int $flags ] ) : bool

Извлекает внешние атрибуты записи по ее индексу.

Список параметров

index

Индекс записи.

opsys

В случае успеха сюда записывается код операционной системы, заданный одной из констант ZipArchive::OPSYS_.

attr

В случае успеха сюда записываются внешние атрибуты. Значения зависят от операционной системы.

flags

Если задано как ZipArchive::FL_UNCHANGED, будут возвращены оригинальные неизмененные атрибуты.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

В этом примере извлекаются все файлы из архива test.zip и устанавливает им права Unix, полученные из внешних атрибутов.

Пример #1 Извлекаем все записи с их правами Unix

<?php
$zip = new ZipArchive();
if ($zip->open('test.zip') === TRUE) {
    for ($idx=0 ; $s = $zip->statIndex($idx) ; $idx++) {
        if ($zip->extractTo('.', $s['name'])) {
            if ($zip->getExternalAttributesIndex($idx, $opsys, $attr)
                && $opsys==ZipArchive::OPSYS_UNIX) {
               chmod($s['name'], ($attr >> 16) & 0777);
            }
        }
    }
    $zip->close();
    echo "готово\n";
} else {
    echo "ошибка\n";
}
?>


Извлечь внешние атрибуты записи по ее имени

  • « ZipArchive::getExternalAttributesIndex
  • ZipArchive::getFromIndex »
  • PHP Manual
  • ZipArchive
  • Извлечь внешние атрибуты записи по ее имени

ZipArchive::getExternalAttributesName

(PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4)

ZipArchive::getExternalAttributesName — Извлечь внешние атрибуты записи по ее имени

Описание

ZipArchive::getExternalAttributesName ( string $name , int &$opsys , int &$attr [, int $flags ] ) : bool

Извлекает внешние атрибуты записи по ее имени.

Список параметров

name

Имя записи.

opsys

В случае успеха сюда записывается код операционной системы, заданный одной из констант ZipArchive::OPSYS_.

attr

В случае успеха сюда записываются внешние атрибуты. Значения зависят от операционной системы.

flags

Если задано как ZipArchive::FL_UNCHANGED, будут возвращены оригинальные неизмененные атрибуты.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает содержимое элемента по его индексу

  • « ZipArchive::getExternalAttributesName
  • ZipArchive::getFromName »
  • PHP Manual
  • ZipArchive
  • Возвращает содержимое элемента по его индексу

ZipArchive::getFromIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::getFromIndex — Возвращает содержимое элемента по его индексу

Описание

ZipArchive::getFromIndex ( int $index [, int $length = 0 [, int $flags ]] ) : string

Возвращает содержимое элемента по его индексу.

Список параметров

index

Индекс элемента.

length

Размер читаемых данных из элемента. Если 0, содержимое читается полностью.

flags

Флаги используемые для открытия архива. Может быть установлено только одно нижеприведенное значение.

  • ZipArchive::FL_UNCHANGED

  • ZipArchive::FL_COMPRESSED

Возвращаемые значения

Возвращает содержимое элемента при успехе или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Получить содержимое файла

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    echo $zip->getFromIndex(2);
    $zip->close();
} else {
    echo 'ошибка';
}
?>

Смотрите также

  • ZipArchive::getFromName() - Возвращает содержимое элемента по его имени


Возвращает содержимое элемента по его имени

  • « ZipArchive::getFromIndex
  • ZipArchive::getNameIndex »
  • PHP Manual
  • ZipArchive
  • Возвращает содержимое элемента по его имени

ZipArchive::getFromName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::getFromName — Возвращает содержимое элемента по его имени

Описание

ZipArchive::getFromName ( string $name [, int $length = 0 [, int $flags ]] ) : string

Возвращает содержимое элемента по его имени.

Список параметров

name

Имя элемента.

length

Размер читаемых данных из элемента. Если 0, содержимое читается полностью.

flags

Флаги используемые для поиска записи. Следующие значения могут быть присоединениы (побитовое ИЛИ).

  • ZipArchive::FL_UNCHANGED

  • ZipArchive::FL_COMPRESSED

  • ZipArchive::FL_NOCASE

Возвращаемые значения

Возвращает содержимое элемента при успехе или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Получить содержимое файла

<?php
$zip = new ZipArchive;
if ($zip->open('test1.zip') === TRUE) {
    echo $zip->getFromName('testfromfile.php');
    $zip->close();
} else {
    echo 'ошибка';
}
?>

Пример #2 Преобразовать изображении из ZIP-элемента

<?php
$z = new ZipArchive();
if ($z->open(dirname(__FILE__) . '/test_im.zip')) {
    $im_string = $z->getFromName("pear_item.gif");
    $im = imagecreatefromstring($im_string);
    imagepng($im, 'b.png');
}
?>

Смотрите также

  • ZipArchive::getFromIndex() - Возвращает содержимое элемента по его индексу


Возвращает имя элемента по его индексу

  • « ZipArchive::getFromName
  • ZipArchive::getStatusString »
  • PHP Manual
  • ZipArchive
  • Возвращает имя элемента по его индексу

ZipArchive::getNameIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::getNameIndex — Возвращает имя элемента по его индексу

Описание

ZipArchive::getNameIndex ( int $index [, int $flags ] ) : string

Возвращает имя элемента по его индексу.

Список параметров

index

Индекс элемента.

flags

Если флаг установлен в ZipArchive::FL_UNCHANGED, возвращается оригинальное неизмененное имя.

Возвращаемые значения

Возвращает имя при успехе или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ZipArchive::getnameindex()

<?php
if ($zip->open('test.zip') == TRUE) {
 for ($i = 0; $i < $zip->numFiles; $i++) {
     $filename = $zip->getNameIndex($i);
     // ...
 }
}
?>


Возвращают статус сообщения об ошибке, системный и/или zip-статус

  • « ZipArchive::getNameIndex
  • ZipArchive::getStream »
  • PHP Manual
  • ZipArchive
  • Возвращают статус сообщения об ошибке, системный и/или zip-статус

ZipArchive::getStatusString

(PHP 5 >= 5.2.7, PHP 7)

ZipArchive::getStatusString — Возвращают статус сообщения об ошибке, системный и/или zip-статус

Описание

ZipArchive::getStatusString ( void ) : string

Возвращают статус сообщения об ошибке, системный и/или zip-статус.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string) с сообщением о статусе при успехе или FALSE в случае возникновения ошибки.


Получить дескриптор файла элемента, определенный по имени элемента (только для чтения)

  • « ZipArchive::getStatusString
  • ZipArchive::locateName »
  • PHP Manual
  • ZipArchive
  • Получить дескриптор файла элемента, определенный по имени элемента (только для чтения)

ZipArchive::getStream

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::getStream — Получить дескриптор файла элемента, определенный по имени элемента (только для чтения)

Описание

ZipArchive::getStream ( string $name ) : resource

Получить дескриптор файла, определенный по имени элемента. На данный момент поддерживаются только операции чтения.

Список параметров

name

Используемое имя элемента.

Возвращаемые значения

Возвращает файловый указатель (ресурс) в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Получить содержимое элемента при помощи fread() и сохранить его

<?php
$contents = '';
$z = new ZipArchive();
if ($z->open('test.zip')) {
    $fp = $z->getStream('test');
    if(!$fp) exit("ошибка\n");

    while (!feof($fp)) {
        $contents .= fread($fp, 2);
    }

    fclose($fp);
    file_put_contents('t',$contents);
    echo "готово.\n";
}
?>

Пример #2 То же, что и в предыдущем примере, но используя fopen() и через обертку zip-потока

<?php
$contents = '';
$fp = fopen('zip://' . dirname(__FILE__) . '/test.zip#test', 'r');
if (!$fp) {
    exit("Не получается открыть\n");
}
while (!feof($fp)) {
    $contents .= fread($fp, 2);
}
echo "$contents\n";
fclose($fp);
echo "Готово.\n";
?>

Пример #3 ZIP-поток и изображение могут быть использованы также в функции XML

<?php
$im = imagecreatefromgif('zip://' . dirname(__FILE__) . '/test_im.zip#pear_item.gif');
imagepng($im, 'a.png');
?>


Возвращает индекс элемента в архиве

  • « ZipArchive::getStream
  • ZipArchive::open »
  • PHP Manual
  • ZipArchive
  • Возвращает индекс элемента в архиве

ZipArchive::locateName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::locateName — Возвращает индекс элемента в архиве

Описание

ZipArchive::locateName ( string $name [, int $flags ] ) : int

Находит элемент по его имени.

Список параметров

name

Имя элемента для поиска.

flags

Флаги определяемые битовой маской из следующих значений, либо 0 для ни одного из них.

  • ZipArchive::FL_NOCASE

  • ZipArchive::FL_NODIR

Возвращаемые значения

Возвращает индекс элемента в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Создается архив и затем используется метод ZipArchive::locateName()

<?php
$file = 'testlocate.zip';

$zip = new ZipArchive;
if ($zip->open($file, ZipArchive::CREATE) !== TRUE) {
    exit('ошибка');
}

$zip->addFromString('entry1.txt', 'entry #1');
$zip->addFromString('entry2.txt', 'entry #2');
$zip->addFromString('dir/entry2d.txt', 'entry #2');

if (!$zip->status == ZipArchive::ER_OK) {
    echo "Ошибка записи в zip\n";
}
$zip->close();

if ($zip->open($file) !== TRUE) {
    exit('ошибка');
}

echo $zip->locateName('entry1.txt') . "\n";
echo $zip->locateName('eNtry2.txt') . "\n";
echo $zip->locateName('eNtry2.txt', ZipArchive::FL_NOCASE) . "\n";
echo $zip->locateName('enTRy2d.txt', ZipArchive::FL_NOCASE|ZipArchive::FL_NODIR) . "\n";
$zip->close();

?>

Результат выполнения данного примера:

0

1
2


Открывает ZIP-архив

  • « ZipArchive::locateName
  • ZipArchive::registerCancelCallback »
  • PHP Manual
  • ZipArchive
  • Открывает ZIP-архив

ZipArchive::open

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::open — Открывает ZIP-архив

Описание

ZipArchive::open ( string $filename [, int $flags ] ) : mixed

Открывает новый ZIP-архив для чтения, записи или изменения.

Список параметров

filename

Имя ZIP-архива для открытия.

flags

Используемый режим открытия файлов.

  • ZipArchive::OVERWRITE

  • ZipArchive::CREATE

  • ZipArchive::EXCL

  • ZipArchive::CHECKCONS

Возвращаемые значения

Коды ошибок

Возвращает TRUE при успешном завершении или код ошибки.

  • ZipArchive::ER_EXISTS

    Файл уже существует.

  • ZipArchive::ER_INCONS

    Несовместимый ZIP-архив.

  • ZipArchive::ER_INVAL

    Недопустимый аргумент.

  • ZipArchive::ER_MEMORY

    Ошибка динамического выделения памяти.

  • ZipArchive::ER_NOENT

    Нет такого файла.

  • ZipArchive::ER_NOZIP

    Не является ZIP-архивом.

  • ZipArchive::ER_OPEN

    Невозможно открыть файл.

  • ZipArchive::ER_READ

    Ошибка чтения.

  • ZipArchive::ER_SEEK

    Ошибка поиска.

Примеры

Пример #1 Открытие и извлечение

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    echo 'готово';
    $zip->extractTo('test');
    $zip->close();
} else {
    echo 'ошибка с кодом:' . $res;
}
?>

Пример #2 Создание архива

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'содержимое файла');
    $zip->addFile('data.txt', 'entryname.txt');
    $zip->close();
    echo 'готово';
} else {
    echo 'ошибка';
}
?>


Register a callback to allow cancellation during archive close.

  • « ZipArchive::open
  • ZipArchive::registerProgressCallback »
  • PHP Manual
  • ZipArchive
  • Register a callback to allow cancellation during archive close.

ZipArchive::registerCancelCallback

(PHP >= 8.0.0, PECL zip >= 1.17.0)

ZipArchive::registerCancelCallback — Register a callback to allow cancellation during archive close.

Описание

ZipArchive::registerCancelCallback ( callable $callback ) : bool

Register a callback function to allow cancellation during archive close.

Список параметров

callback

If this function return 0 operation will continue, other value it will be cancelled.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

This function is only available if built against libzip ? 1.6.0.

Примеры

This example creates a ZIP file archive php.zip and cancel operation on some run condition.

Пример #1 Archive a file

<?php
$zip = new ZipArchive();
if ($zip->open('php.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE)) {
    $zip->addFile(PHP_BINARY, 'php');
    $zip->registerCancelCallback(function () {
        return ($someruncondition ? -1 : 0);
    });
    $zip->close();
}

Смотрите также

  • ZipArchive::registerProgressCallback() - Register a callback to provide updates during archive close.


Register a callback to provide updates during archive close.

  • « ZipArchive::registerCancelCallback
  • ZipArchive::renameIndex »
  • PHP Manual
  • ZipArchive
  • Register a callback to provide updates during archive close.

ZipArchive::registerProgressCallback

(PHP >= 8.0.0, PECL zip >= 1.17.0)

ZipArchive::registerProgressCallback — Register a callback to provide updates during archive close.

Описание

ZipArchive::registerProgressCallback ( float $rate , callable $callback ) : bool

Register a callback function to provide updates during archive close.

Список параметров

rate

Change between each call of the callback (from 0.0 to 1.0).

callback

This function will receive the current state as a float (from 0.0 to 1.0).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

This function is only available if built against libzip ? 1.3.0.

Примеры

This example creates a ZIP file archive php.zip and show progression.

Пример #1 Archive a file

$zip = new ZipArchive();
if ($zip->open('php.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE)) {
    $zip->addFile(PHP_BINARY, 'php');
    $zip->registerProgressCallback(0.05, function ($r) {
        printf("%d%%\n", $r * 100);
    });
    $zip->close();
}

Смотрите также

  • ZipArchive::registerCancelCallback() - Register a callback to allow cancellation during archive close.


Переименовывает элемент по его индексу

  • « ZipArchive::registerProgressCallback
  • ZipArchive::renameName »
  • PHP Manual
  • ZipArchive
  • Переименовывает элемент по его индексу

ZipArchive::renameIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::renameIndex — Переименовывает элемент по его индексу

Описание

ZipArchive::renameIndex ( int $index , string $newname ) : bool

Переименовывает элемент по его индексу.

Список параметров

index

Индекс элемента для переименования.

newname

Новое имя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Переименование одного элемента

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->renameIndex(2,'newname.txt');
    $zip->close();
} else {
    echo 'ошибка с кодом:' . $res;
}
?>


Переименовывает элемент по его имени

  • « ZipArchive::renameIndex
  • ZipArchive::setArchiveComment »
  • PHP Manual
  • ZipArchive
  • Переименовывает элемент по его имени

ZipArchive::renameName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::renameName — Переименовывает элемент по его имени

Описание

ZipArchive::renameName ( string $name , string $newname ) : bool

Переименовывает элемент, заданный по имени.

Список параметров

name

Имя элемента для переименования.

newname

Новое имя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Переименование одного элемента

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->renameName('currentname.txt','newname.txt');
    $zip->close();
} else {
    echo 'ошибка с кодом:' . $res;
}
?>


Устанавливает комментарий к ZIP-архиву

  • « ZipArchive::renameName
  • ZipArchive::setCommentIndex »
  • PHP Manual
  • ZipArchive
  • Устанавливает комментарий к ZIP-архиву

ZipArchive::setArchiveComment

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.4.0)

ZipArchive::setArchiveComment — Устанавливает комментарий к ZIP-архиву

Описание

ZipArchive::setArchiveComment ( string $comment ) : bool

Устанавливает комментарий к ZIP-архиву.

Список параметров

comment

Содержание комментария.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Создание архива и установка комментария

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'содержимое файла');
    $zip->setArchiveComment('новый комментарий архива');
    $zip->close();
    echo 'готово';
} else {
    echo 'ошибка';
}
?>


Устанавливает комментарий к элементу по его индексу

  • « ZipArchive::setArchiveComment
  • ZipArchive::setCommentName »
  • PHP Manual
  • ZipArchive
  • Устанавливает комментарий к элементу по его индексу

ZipArchive::setCommentIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.4.0)

ZipArchive::setCommentIndex — Устанавливает комментарий к элементу по его индексу

Описание

ZipArchive::setCommentIndex ( int $index , string $comment ) : bool

Устанавливает комментарий к элементу по его индексу.

Список параметров

index

Индекс элемента.

comment

Содержание комментария.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Открывает архив и устанавливает комментарий к элементу

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->setCommentIndex(2, 'новая запись комментария');
    $zip->close();
    echo 'готово';
} else {
    echo 'ошибка';
}
?>


Устанавливает комментарий к элементу, заданному по имени

  • « ZipArchive::setCommentIndex
  • ZipArchive::setCompressionIndex »
  • PHP Manual
  • ZipArchive
  • Устанавливает комментарий к элементу, заданному по имени

ZipArchive::setCommentName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.4.0)

ZipArchive::setCommentName — Устанавливает комментарий к элементу, заданному по имени

Описание

ZipArchive::setCommentName ( string $name , string $comment ) : bool

Устанавливает комментарий к элементу, заданному по имени.

Список параметров

name

Имя элемента.

comment

Содержание комментария.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Открытие архива и установка комментария к элементу

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->setCommentName('entry1.txt', 'новая запись комментария');
    $zip->close();
    echo 'готово';
} else {
    echo 'ошибка';
}
?>


Установить метод сжатия записи, заданной ее индексом

  • « ZipArchive::setCommentName
  • ZipArchive::setCompressionName »
  • PHP Manual
  • ZipArchive
  • Установить метод сжатия записи, заданной ее индексом

ZipArchive::setCompressionIndex

(PHP 7, PECL zip >= 1.13.0)

ZipArchive::setCompressionIndex — Установить метод сжатия записи, заданной ее индексом

Описание

ZipArchive::setCompressionIndex ( int $index , int $comp_method [, int $comp_flags = 0 ] ) : bool

Устанавливает метод сжатия записи, заданной ее ндексом.

Список параметров

index

Индекс записи.

comp_method

Метод сжатия. Одна из констант:
ZipArchive::CM_DEFAULT,
ZipArchive::CM_STORE или
ZipArchive::CM_DEFLATE.

comp_flags

Флаги сжатия. Не используется.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Добавить к архиву файлы с разными методами сжатия

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('foo', 'Некоторый текст');
    $zip->addFromString('bar', 'Некоторый другой текст');
    $zip->setCompressionIndex(0, ZipArchive::CM_STORE);
    $zip->setCompressionIndex(1, ZipArchive::CM_DEFLATE);
    $zip->close();
    echo 'готово';
} else {
    echo 'ошибка';
}
?>


Установить метод сжатия записи, заданной по имени

  • « ZipArchive::setCompressionIndex
  • ZipArchive::setEncryptionIndex »
  • PHP Manual
  • ZipArchive
  • Установить метод сжатия записи, заданной по имени

ZipArchive::setCompressionName

(PHP 7, PECL zip >= 1.13.0)

ZipArchive::setCompressionName — Установить метод сжатия записи, заданной по имени

Описание

ZipArchive::setCompressionName ( string $name , int $comp_method [, int $comp_flags = 0 ] ) : bool

Устанавливает метод сжатия записи заданной по имени.

Список параметров

name

Имя записи.

comp_method

Метод сжатия. Одна из констант:
ZipArchive::CM_DEFAULT,
ZipArchive::CM_STORE или
ZipArchive::CM_DEFLATE.

comp_flags

Флаги сжатия. Не используется.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Добавить к архиву файлы с разными методами сжатия

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('foo', 'Некоторый текст');
    $zip->addFromString('bar', 'Некоторый другой текст');
    $zip->setCompressionName('foo', ZipArchive::CM_STORE);
    $zip->setCompressionName('bar', ZipArchive::CM_DEFLATE);
    $zip->close();
    echo 'готово';
} else {
    echo 'ошибка';
}
?>


Установить метод шифрования записи по ее индексу

  • « ZipArchive::setCompressionName
  • ZipArchive::setEncryptionName »
  • PHP Manual
  • ZipArchive
  • Установить метод шифрования записи по ее индексу

ZipArchive::setEncryptionIndex

(PHP >= 7.2.0, PECL zip >= 1.14.0)

ZipArchive::setEncryptionIndex — Установить метод шифрования записи по ее индексу

Описание

ZipArchive::setEncryptionIndex ( int $index , string $method [, string $password ] ) : bool

Устанавливает метод шифрования записи, указанной по индексу.

Список параметров

index

Индекс записи.

method

Метод шифрования, заданный одной из констант ZipArchive::EM_.

password

Пароль. Если не указывать, то будет использован пароль по умолчанию.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Функция доступна только если скомпилировано с использованием libzip ? 1.2.0.

Смотрите также

  • ZipArchive::setPassword() - Установка пароля для активного архива
  • ZipArchive::setEncryptionName() - Установить метод шифрования записи по ее имени


Установить метод шифрования записи по ее имени

  • « ZipArchive::setEncryptionIndex
  • ZipArchive::setExternalAttributesIndex »
  • PHP Manual
  • ZipArchive
  • Установить метод шифрования записи по ее имени

ZipArchive::setEncryptionName

(PHP >= 7.2.0, PECL zip >= 1.14.0)

ZipArchive::setEncryptionName — Установить метод шифрования записи по ее имени

Описание

ZipArchive::setEncryptionName ( string $name , int $method [, string $password ] ) : bool

Установить метод шифрования записи, указанной по ее имени.

Список параметров

name

Имя записи.

method

Метод шифрования, заданный одной из констант ZipArchive::EM_.

password

Пароль. Если не указывать, то будет использован пароль по умолчанию.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

В этом примере создается ZIP-архив test.zip, содержащий файл test.txt, зашифрованный с помощью AES 256.

Пример #1 Архивируем и шифруем файл

<?php
$zip = new ZipArchive();
if ($zip->open('test.zip', ZipArchive::CREATE) === TRUE) {
    $zip->setPassword('secret');
    $zip->addFile('text.txt');
    $zip->setEncryptionName('text.txt', ZipArchive::EM_AES_256);
    $zip->close();
    echo "готово\n";
} else {
    echo "ошибка\n";
}
?>

Примечания

Замечание:

Функция доступна только если скомпилировано с использованием libzip ? 1.2.0.

Смотрите также

  • ZipArchive::setPassword() - Установка пароля для активного архива
  • ZipArchive::setEncryptionIndex() - Установить метод шифрования записи по ее индексу


Установить внешние атрибуты записи по ее индексу

  • « ZipArchive::setEncryptionName
  • ZipArchive::setExternalAttributesName »
  • PHP Manual
  • ZipArchive
  • Установить внешние атрибуты записи по ее индексу

ZipArchive::setExternalAttributesIndex

(PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4)

ZipArchive::setExternalAttributesIndex — Установить внешние атрибуты записи по ее индексу

Описание

ZipArchive::setExternalAttributesIndex ( int $index , int $opsys , int $attr [, int $flags ] ) : bool

Устанавливает внешние атрибуты записи, заданной ее индексом.

Список параметров

index

Индекс записи.

opsys

Код операционной системы заданный одной из констант ZipArchive::OPSYS_.

attr

Внешние атрибуты. Значения зависят от операционной системы.

flags

Опциональные флаги. Не используется.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка внешних атрибутов записи, заданной по имени

  • « ZipArchive::setExternalAttributesIndex
  • ZipArchive::setMtimeIndex »
  • PHP Manual
  • ZipArchive
  • Установка внешних атрибутов записи, заданной по имени

ZipArchive::setExternalAttributesName

(PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4)

ZipArchive::setExternalAttributesName — Установка внешних атрибутов записи, заданной по имени

Описание

ZipArchive::setExternalAttributesName ( string $name , int $opsys , int $attr [, int $flags ] ) : bool

Установка внешних атрибутов записи, заданной по имени.

Список параметров

name

Имя записи.

opsys

Код операционной системы, определяется одной из констант ZipArchive::OPSYS_.

attr

Внешние атрибуты. Значение зависит от операционной системы.

flags

Необязательные флаги. В настоящее время не используется.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

В этом примере открывается файл архива ZIP test.zip и к нему добавляется файл test.txt с правами Unix в виде внешних атрибутов.

Пример #1 Сжатие файла с его правами Unix

<?php
$zip = new ZipArchive();
$stat = stat($filename='test.txt');
if (is_array($stat) && $zip->open('test.zip', ZipArchive::CREATE) === TRUE) {
    $zip->addFile($filename);
    $zip->setExternalAttributesName($filename, ZipArchive::OPSYS_UNIX, $stat['mode'] << 16);
    $zip->close();
    echo "готово\n";
} else {
    echo "ошибка\n";
}
?>


Установить время модификации файла по его индексу

  • « ZipArchive::setExternalAttributesName
  • ZipArchive::setMtimeName »
  • PHP Manual
  • ZipArchive
  • Установить время модификации файла по его индексу

ZipArchive::setMtimeIndex

(PHP >= 8.0.0, PECL zip >= 1.16.0)

ZipArchive::setMtimeIndex — Установить время модификации файла по его индексу

Описание

ZipArchive::setMtimeIndex ( int $index , int $timestamp [, int $flags ] ) : bool

Установить время модификации файла по его индексу.

Список параметров

index

Индекс.

timestamp

Время модификации (временная метка unix) файла.

flags

Необязательные флаги. В текущий момент не используются.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример создания ZIP-архива test.zip, добавления в него файла test.txt и установка времени модификации для него.

Пример #1 Архивирование файла

<?php
$zip = new ZipArchive();
if ($zip->open('test.zip', ZipArchive::CREATE) === TRUE) {
    $zip->addFile('text.txt');
    $zip->setMtimIndex(0, mktime(0,0,0,12,25,2019));
    $zip->close();
    echo "Ok\n";
} else {
    echo "KO\n";
}
?>

Примечания

Замечание:

Функция доступна только если сборка производилась с libzip ? 1.0.0.

Смотрите также

  • ZipArchive::setMtimeName() - Установить время модификации файла по его имени


Установить время модификации файла по его имени

  • « ZipArchive::setMtimeIndex
  • ZipArchive::setPassword »
  • PHP Manual
  • ZipArchive
  • Установить время модификации файла по его имени

ZipArchive::setMtimeName

(PHP >= 8.0.0, PECL zip >= 1.16.0)

ZipArchive::setMtimeName — Установить время модификации файла по его имени

Описание

ZipArchive::setMtimeName ( string $name , int $timestamp [, int $flags ] ) : bool

Установить время модификации файла по его имени.

Список параметров

name

Имя файла.

timestamp

Время модификации (временная метка unix) файла.

flags

Необязательные флаги. В текущий момент не используются.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример создания ZIP-архива test.zip, добавления в него файла test.txt и установка времени модификации для него.

Пример #1 Архивирование файла

<?php
$zip = new ZipArchive();
if ($zip->open('test.zip', ZipArchive::CREATE) === TRUE) {
    $zip->addFile('text.txt');
    $zip->setMtimeName('text.txt', mktime(0,0,0,12,25,2019));
    $zip->close();
    echo "Ok\n";
} else {
    echo "KO\n";
}
?>

Примечания

Замечание:

Функция доступна только если сборка производилась с libzip ? 1.0.0.

Смотрите также

  • ZipArchive::setMtimeIndex() - Установить время модификации файла по его индексу


Установка пароля для активного архива

  • « ZipArchive::setMtimeName
  • ZipArchive::statIndex »
  • PHP Manual
  • ZipArchive
  • Установка пароля для активного архива

ZipArchive::setPassword

(PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4)

ZipArchive::setPassword — Установка пароля для активного архива

Описание

public ZipArchive::setPassword ( string $password ) : bool

Задает пароль для активного архива.

Список параметров

password

Пароль для архива.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Начиная с PHP 7.2.0 и libzip 1.2.0, пароль используется для распаковки архива, а также как пароль по умолчанию для ZipArchive::setEncryptionName() и ZipArchive::setEncryptionIndex(). Ранее эта функция устанавливала пароль только для распаковки. Она не не превращала не защищенный паролем ZipArchive в защищенный ZipArchive.

Смотрите также

  • ZipArchive::setEncryptionIndex() - Установить метод шифрования записи по ее индексу
  • ZipArchive::setEncryptionName() - Установить метод шифрования записи по ее имени


Получение детальной информации о элементе по его индексу

  • « ZipArchive::setPassword
  • ZipArchive::statName »
  • PHP Manual
  • ZipArchive
  • Получение детальной информации о элементе по его индексу

ZipArchive::statIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::statIndex — Получение детальной информации о элементе по его индексу

Описание

ZipArchive::statIndex ( int $index [, int $flags ] ) : array

Получение детальной информации о элементе по его индексу.

Список параметров

index

Индекс элемента.

flags

ZipArchive::FL_UNCHANGED указывается, чтобы запросить информацию об исходном файле в архиве, игнорируя любые внесенные изменения.

Возвращаемые значения

Возвращает массив, содержащий детальную информацию о элементе или или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Получение статистической информации о элементе

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    print_r($zip->statIndex(3));
    $zip->close();
} else {
    echo 'Ошибка с кодом:' . $res;
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name] => foobar/baz
    [index] => 3
    [crc] => 499465816
    [size] => 27
    [mtime] => 1123164748
    [comp_size] => 24
    [comp_method] => 8
)


Получение детальной информации о элементе по его имени

  • « ZipArchive::statIndex
  • ZipArchive::unchangeAll »
  • PHP Manual
  • ZipArchive
  • Получение детальной информации о элементе по его имени

ZipArchive::statName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::statName — Получение детальной информации о элементе по его имени

Описание

ZipArchive::statName ( string $name [, int $flags ] ) : array

Получение детальной информации о элементе по его имени.

Список параметров

name

Имя элемента.

flags

Флаг, указывающий как должен происходить поиск имени. Кроме того, может указываться ZipArchive::FL_UNCHANGED, чтобы запросить информацию об исходном файле в архиве, игнорируя любые внесенные изменения.

  • ZipArchive::FL_NOCASE

  • ZipArchive::FL_NODIR

  • ZipArchive::FL_UNCHANGED

Возвращаемые значения

Возвращает массив, содержащий детальную информацию о элементе или или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Получение статистической информации о элементе

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    print_r($zip->statName('foobar/baz'));
    $zip->close();
} else {
    echo 'Ошибка с кодом:' . $res;
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name] => foobar/baz
    [index] => 3
    [crc] => 499465816
    [size] => 27
    [mtime] => 1123164748
    [comp_size] => 24
    [comp_method] => 8
)


Отменяет все изменения, сделанные в архиве

  • « ZipArchive::statName
  • ZipArchive::unchangeArchive »
  • PHP Manual
  • ZipArchive
  • Отменяет все изменения, сделанные в архиве

ZipArchive::unchangeAll

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::unchangeAll — Отменяет все изменения, сделанные в архиве

Описание

ZipArchive::unchangeAll ( void ) : bool

Отменяет все изменения, сделанные в архиве.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает все глобальные изменения, сделанные в архиве

  • « ZipArchive::unchangeAll
  • ZipArchive::unchangeIndex »
  • PHP Manual
  • ZipArchive
  • Возвращает все глобальные изменения, сделанные в архиве

ZipArchive::unchangeArchive

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::unchangeArchive — Возвращает все глобальные изменения, сделанные в архиве

Описание

ZipArchive::unchangeArchive ( void ) : bool

Возвращает все глобальные изменения, сделанные в архиве. В данный момент только отменяет изменения в комментариях к архиву.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Отменяет все изменения у позиции с заданным индексом

  • « ZipArchive::unchangeArchive
  • ZipArchive::unchangeName »
  • PHP Manual
  • ZipArchive
  • Отменяет все изменения у позиции с заданным индексом

ZipArchive::unchangeIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::unchangeIndex — Отменяет все изменения у позиции с заданным индексом

Описание

ZipArchive::unchangeIndex ( int $index ) : bool

Отменяет все измения у позиции с заданным индексом.

Список параметров

index

Индекс позиции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Отменяет все измения у позиции с заданным именем

  • « ZipArchive::unchangeIndex
  • Функции Zip »
  • PHP Manual
  • ZipArchive
  • Отменяет все измения у позиции с заданным именем

ZipArchive::unchangeName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::unchangeName — Отменяет все измения у позиции с заданным именем

Описание

ZipArchive::unchangeName ( string $name ) : bool

Отменяет все измения у позиции с заданным именем.

Список параметров

name

Имя позиции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Функции Zip

Содержание

  • zip_close — Закрывает дескриптор ZIP-архива
  • zip_entry_close — Закрывает дескриптор директории
  • zip_entry_compressedsize — Возвращает сжатый размер файла для дескриптора директории
  • zip_entry_compressionmethod — Возвращает метод сжатия дескриптора директории
  • zip_entry_filesize — Возвращает реальный размер файла для дескриптора директории
  • zip_entry_name — Получает имя дескриптора директории
  • zip_entry_open — Открывает директорию для чтения
  • zip_entry_read — Читает данные из открытого ранее дескриптора директории
  • zip_open — Открывает ZIP-архив
  • zip_read — Считывает следующую запись в ZIP-архиве


Закрывает дескриптор ZIP-архива

  • « Функции Zip
  • zip_entry_close »
  • PHP Manual
  • Функции Zip
  • Закрывает дескриптор ZIP-архива

zip_close

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_close — Закрывает дескриптор ZIP-архива

Описание

zip_close ( resource $zip ) : void

Закрывает дескриптор ZIP-архива.

Список параметров

zip

ZIP-файл должен быть открыт с помощью функции zip_open().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • zip_open() - Открывает ZIP-архив
  • zip_read() - Считывает следующую запись в ZIP-архиве


Закрывает дескриптор директории

  • « zip_close
  • zip_entry_compressedsize »
  • PHP Manual
  • Функции Zip
  • Закрывает дескриптор директории

zip_entry_close

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_close — Закрывает дескриптор директории

Описание

zip_entry_close ( resource $zip_entry ) : bool

Закрывает заданный дескриптор директории.

Список параметров

zip_entry

Дескриптор директории, ранее открытый функцией zip_entry_open().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • zip_entry_open() - Открывает директорию для чтения
  • zip_entry_read() - Читает данные из открытого ранее дескриптора директории


Возвращает сжатый размер файла для дескриптора директории

  • « zip_entry_close
  • zip_entry_compressionmethod »
  • PHP Manual
  • Функции Zip
  • Возвращает сжатый размер файла для дескриптора директории

zip_entry_compressedsize

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_compressedsize — Возвращает сжатый размер файла для дескриптора директории

Описание

zip_entry_compressedsize ( resource $zip_entry ) : int

Возвращает сжатый размер заданного дескриптора директории.

Список параметров

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

Возвращаемые значения

Сжатый размер дескриптора директории.

Смотрите также

  • zip_open() - Открывает ZIP-архив
  • zip_read() - Считывает следующую запись в ZIP-архиве


Возвращает метод сжатия дескриптора директории

  • « zip_entry_compressedsize
  • zip_entry_filesize »
  • PHP Manual
  • Функции Zip
  • Возвращает метод сжатия дескриптора директории

zip_entry_compressionmethod

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_compressionmethod — Возвращает метод сжатия дескриптора директории

Описание

zip_entry_compressionmethod ( resource $zip_entry ) : string

Возвращает метод сжатия дескриптора директории, заданного в zip_entry.

Список параметров

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

Возвращаемые значения

Метод сжатия.

Смотрите также

  • zip_open() - Открывает ZIP-архив
  • zip_read() - Считывает следующую запись в ZIP-архиве


Возвращает реальный размер файла для дескриптора директории

  • « zip_entry_compressionmethod
  • zip_entry_name »
  • PHP Manual
  • Функции Zip
  • Возвращает реальный размер файла для дескриптора директории

zip_entry_filesize

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_filesize — Возвращает реальный размер файла для дескриптора директории

Описание

zip_entry_filesize ( resource $zip_entry ) : int

Возвращает реальный размер заданного дескриптора директории.

Список параметров

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

Возвращаемые значения

Реальный размер дескриптора директории.

Смотрите также

  • zip_open() - Открывает ZIP-архив
  • zip_read() - Считывает следующую запись в ZIP-архиве


Получает имя дескриптора директории

  • « zip_entry_filesize
  • zip_entry_open »
  • PHP Manual
  • Функции Zip
  • Получает имя дескриптора директории

zip_entry_name

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_name — Получает имя дескриптора директории

Описание

zip_entry_name ( resource $zip_entry ) : string

Возвращает имя заданного дескриптора директории.

Список параметров

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

Возвращаемые значения

Имя дескриптора директории.

Смотрите также

  • zip_open() - Открывает ZIP-архив
  • zip_read() - Считывает следующую запись в ZIP-архиве


Открывает директорию для чтения

  • « zip_entry_name
  • zip_entry_read »
  • PHP Manual
  • Функции Zip
  • Открывает директорию для чтения

zip_entry_open

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_open — Открывает директорию для чтения

Описание

zip_entry_open ( resource $zip , resource $zip_entry [, string $mode ] ) : bool

Открывает директорию в ZIP-архиве для чтения.

Список параметров

zip

Дескриптор, возвращаемый функцией zip_open().

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

mode

Доступные режимы приведены в документации к функции fopen().

Замечание:

В настоящее время параметр mode игнорируется и всегда имеет значение "rb". Это связано с тем, что ZIP в PHP поддерживается только в режиме чтения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание:

В отличие от функции fopen() и других подобных функций, значение, возвращаемое функцией zip_entry_open() только информирует нас о результате выполнения операции и не требуется для последующего чтения или закрытия дескриптора директории.

Смотрите также

  • zip_entry_close() - Закрывает дескриптор директории
  • zip_entry_read() - Читает данные из открытого ранее дескриптора директории


Читает данные из открытого ранее дескриптора директории

  • « zip_entry_open
  • zip_open »
  • PHP Manual
  • Функции Zip
  • Читает данные из открытого ранее дескриптора директории

zip_entry_read

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_read — Читает данные из открытого ранее дескриптора директории

Описание

zip_entry_read ( resource $zip_entry [, int $length = 1024 ] ) : string

Читает данные из открытого ранее дескриптора директории.

Список параметров

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

length

Число байт, которое нужно считать.

Замечание:

В параметре необходимо указывать объем данных, которые вы хотите считать, без учета сжатия.

Возвращаемые значения

Возвращает считанные данные, пустую строку, если достигнут конец файла, или FALSE в случае ошибки.

Смотрите также

  • zip_entry_open() - Открывает директорию для чтения
  • zip_entry_close() - Закрывает дескриптор директории
  • zip_entry_filesize() - Возвращает реальный размер файла для дескриптора директории


Открывает ZIP-архив

  • « zip_entry_read
  • zip_read »
  • PHP Manual
  • Функции Zip
  • Открывает ZIP-архив

zip_open

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_open — Открывает ZIP-архив

Описание

zip_open ( string $filename ) : resource

Открывает ZIP-архив для чтения.

Список параметров

filename

Имя файла ZIP-архива для открытия.

Возвращаемые значения

Возвращает ссылку на ресурс для последующего использования с функциями zip_read() и zip_close() либо возвращает номер ошибки, если filename не существует или в случае другой ошибки.

Смотрите также

  • zip_read() - Считывает следующую запись в ZIP-архиве
  • zip_close() - Закрывает дескриптор ZIP-архива


Считывает следующую запись в ZIP-архиве

  • « zip_open
  • Zlib »
  • PHP Manual
  • Функции Zip
  • Считывает следующую запись в ZIP-архиве

zip_read

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_read — Считывает следующую запись в ZIP-архиве

Описание

zip_read ( resource $zip ) : resource

Считывает следующую запись в ZIP-архиве.

Список параметров

zip

ZIP-файл, предварительно открытый с помощью функции zip_open().

Возвращаемые значения

Возвращает запись каталога для дальнейшего использования с функциями zip_entry_..., или FALSE, если больше нет записей для чтения, или код ошибки, если она произошла.

Смотрите также

  • zip_open() - Открывает ZIP-архив
  • zip_close() - Закрывает дескриптор ZIP-архива
  • zip_entry_open() - Открывает директорию для чтения
  • zip_entry_read() - Читает данные из открытого ранее дескриптора директории


Zlib

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции Zlib
    • deflate_add — Инкрементальное сжатие данных
    • deflate_init — Инициализировать контекст инкрементального сжатия
    • gzclose — Закрыть указатель открытого gz-файла
    • gzcompress — Сжать строку
    • gzdecode — Декодирует строку, сжатую с помощью gzip
    • gzdeflate — Сжимает строку
    • gzencode — Создать сжатую строку gzip
    • gzeof — Проверяет, находится ли текущая позиция в конце (EOF) gz-файла
    • gzfile — Считывает весь gz-файл в массив
    • gzgetc — Получить символ из указателя на gz-файл
    • gzgets — Получить строку из указателя файла
    • gzgetss — Возвращает строку из указателя gz-файла и удалить HTML-теги
    • gzinflate — Распаковать сжатую строку
    • gzopen — Открыть gz-файл
    • gzpassthru — Вывод всех оставшихся данных из указателя gz-файла.
    • gzputs — Псевдоним gzwrite
    • gzread — Бинарное чтение gz-файла
    • gzrewind — Переместить позицию указатель gz-файла в начало
    • gzseek — Переместить указатель на позицию в указателе gz-файла
    • gztell — Возвращает текущую позицию чтения/записи в указателе gz-файла
    • gzuncompress — Распаковать сжатую строку
    • gzwrite — Бинарная запись в gz-файл
    • inflate_add — Инкрементально распаковать закодированные данные
    • inflate_get_read_len — Получает количество прочитанных байт
    • inflate_get_status — Получает статус декомпрессии
    • inflate_init — Инициализация контекста инкрементальной распоковки
    • readgzfile — Выводит содержимое gz-файла
    • zlib_decode — Распаковывает любые закодированные данные raw/gzip/zlib
    • zlib_encode — Сжатие данных с указанной кодировкой
    • zlib_get_coding_type — Возвращает способ кодирования, используемый для сжатия вывода


Введение

Этот модуль позволяет прозрачно читать и записывать сжатые файлы gzip (.gz), используя большинство функций файловой системы, которые работают с сжатыми файлами gzip (и несжатыми файлами также, но без сокетов).

Замечание:

В версии 4.0.4 появилась новая fopen-обертка для .gz-файлов, так что вы можете использовать специальный URL zlib: для прозрачного доступа к сжатым файлам, используя обычные функции f*() доступа к файлам. Для этого необходимо добавить префикс zlib: в начало пути к файлу при вызове fopen(). Эта возможность требует наличия библиотеки С, в которой есть функция fopencookie(). До настоящего момента только библиотека GNU libc предоставляет эту возможность.

В версии 4.3.0, префикс zlib: изменился на compress.zlib:// для предотвращения неоднозначностей с именами файлов, содержащих ':' в имени. Функция fopencookie() больше не требуется. Больше информации доступно в разделе о zlib://.


Требования

Этот модуль использует библиотеку » zlib, написанную Jean-loup Gailly и Mark Adler. Требуется zlib версии >= 1.0.9. Начиная с PHP 5.4.0, требуется zlib версии >= 1.2.0.4.


Установка

Поддержка Zlib в PHP отключена по умолчанию. Чтобы включить её, используйте опцию --with-zlib[=DIR] во время сборки.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Модуль zlib предоставляет возможность сжатия передаваемых страниц (в т.ч. динамических) на лету, если браузер это поддерживает. За сжатие отвечают три параметра в конфигурационном файле php.ini.

Конфигурационные параметры Zlib
Имя | По умолчанию | Место изменения | Список изменений
zlib.output_compression | "0" | PHP_INI_ALL |
zlib.output_compression_level | "-1" | PHP_INI_ALL |
zlib.output_handler | "" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

zlib.output_compression boolean/integer

Следует ли сжимать страницы. Если значение равно "On" в php.ini (или в настройках Apache), страницы будут сжиматься, если браузер посылает заголовок "Accept-Encoding: gzip" или "deflate". При этом в вывод будут добавлены заголовки "Content-Encoding: gzip" (соответственно "deflate") и "Vary: Accept-Encoding". В режиме исполнения, заголовок должен быть установлен до момента отправки.

Эта опция также принимает целые числа вместо логических "On/Off", с помощью этого вы можете устанавливать размер выходного буфера (по умолчанию равен 4 КБ).

Замечание:

output_handler должен быть пустым, если выбрано значение 'On'! Вместо него следует использовать zlib.output_handler.

zlib.output_compression_level integer

Уровень сжатия используется для прозрачного сжатия вывода. Укажите значение между 0 (без сжатия) и 9 (максимальное сжатие). По умолчанию значение -1 позволяет серверу решать, какой уровень использовать.

zlib.output_handler string

Если zlib.output_compression активирован, нельзя указывать дополнительные обработчики вывода. Этот параметр выполняет то же, что и output_handler, но в ином порядке.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Этот модуль определяет ресурс дескриптора, который возвращается функцией gzopen().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

FORCE_GZIP (integer)
FORCE_DEFLATE (integer)
ZLIB_ENCODING_RAW (integer)
Аглоритм компрессии DEFLATE по RFC 1951. Доступно с PHP 7.0.0.
ZLIB_ENCODING_DEFLATE (integer)
Аглоритм компрессии ZLIB по RFC 1950. Доступно с PHP 7.0.0.
ZLIB_ENCODING_GZIP (integer)
Алгоритм компрессии GZIP по RFC 1952. Доступно с PHP 7.0.0.
ZLIB_FILTERED (integer)
Доступно с PHP 7.0.0.
ZLIB_HUFFMAN_ONLY (integer)
Доступно с PHP 7.0.0.
ZLIB_FIXED (integer)
Доступно с PHP 7.0.0.
ZLIB_RLE (integer)
Доступно с PHP 7.0.0.
ZLIB_DEFAULT_STRATEGY (integer)
Доступно с PHP 7.0.0.
ZLIB_BLOCK (integer)
Доступно с PHP 7.0.0.
ZLIB_NO_FLUSH (integer)
Доступно с PHP 7.0.0.
ZLIB_PARTIAL_FLUSH (integer)
Доступно с PHP 7.0.0.
ZLIB_SYNC_FLUSH (integer)
Доступно с PHP 7.0.0.
ZLIB_FULL_FLUSH (integer)
Доступно с PHP 7.0.0.
ZLIB_FINISH (integer)
Доступно с PHP 7.0.0.


Примеры

В данном примере открывается временный файл, в него записывается строка, затем дважды печатается содержимое этого файла.

Пример #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 "Возникла ошибка с zlib функциями!";
}
unlink($filename);
echo "</pre>\n</body>\n</html>\n";

?>

Пример #2 Работа с API инкрементальной компрессии и декомпрессии, с PHP 7.0.0

// Выполняем компрессию GZIP:
$deflateContext = deflate_init(ZLIB_ENCODING_GZIP);
$compressed = deflate_add($deflateContext, "Data to compress", ZLIB_NO_FLUSH);
$compressed .= deflate_add($deflateContext, ", more data", ZLIB_NO_FLUSH);
$compressed .= deflate_add($deflateContext, ", and even more data!", ZLIB_FINISH);?>

// Выполняем декомпрессию GZIP:
$inflateContext = inflate_init(ZLIB_ENCODING_GZIP);
$uncompressed = inflate_add($inflateContext, $compressed, ZLIB_NO_FLUSH);
$uncompressed .= inflate_add($inflateContext, NULL, ZLIB_FINISH);
echo $uncompressed;

Результат выполнения данного примера:

Data to compress, more data, and even more data!


Функции Zlib

Содержание

  • deflate_add — Инкрементальное сжатие данных
  • deflate_init — Инициализировать контекст инкрементального сжатия
  • gzclose — Закрыть указатель открытого gz-файла
  • gzcompress — Сжать строку
  • gzdecode — Декодирует строку, сжатую с помощью gzip
  • gzdeflate — Сжимает строку
  • gzencode — Создать сжатую строку gzip
  • gzeof — Проверяет, находится ли текущая позиция в конце (EOF) gz-файла
  • gzfile — Считывает весь gz-файл в массив
  • gzgetc — Получить символ из указателя на gz-файл
  • gzgets — Получить строку из указателя файла
  • gzgetss — Возвращает строку из указателя gz-файла и удалить HTML-теги
  • gzinflate — Распаковать сжатую строку
  • gzopen — Открыть gz-файл
  • gzpassthru — Вывод всех оставшихся данных из указателя gz-файла.
  • gzputs — Псевдоним gzwrite
  • gzread — Бинарное чтение gz-файла
  • gzrewind — Переместить позицию указатель gz-файла в начало
  • gzseek — Переместить указатель на позицию в указателе gz-файла
  • gztell — Возвращает текущую позицию чтения/записи в указателе gz-файла
  • gzuncompress — Распаковать сжатую строку
  • gzwrite — Бинарная запись в gz-файл
  • inflate_add — Инкрементально распаковать закодированные данные
  • inflate_get_read_len — Получает количество прочитанных байт
  • inflate_get_status — Получает статус декомпрессии
  • inflate_init — Инициализация контекста инкрементальной распоковки
  • readgzfile — Выводит содержимое gz-файла
  • zlib_decode — Распаковывает любые закодированные данные raw/gzip/zlib
  • zlib_encode — Сжатие данных с указанной кодировкой
  • zlib_get_coding_type — Возвращает способ кодирования, используемый для сжатия вывода


Инкрементальное сжатие данных

  • « Функции Zlib
  • deflate_init »
  • PHP Manual
  • Функции Zlib
  • Инкрементальное сжатие данных

deflate_add

(PHP 7)

deflate_add — Инкрементальное сжатие данных

Описание

deflate_add ( resource $context , string $data [, int $flush_mode = ZLIB_SYNC_FLUSH ] ) : string

Инкрементальное сжатие данных в указанном контексте.

Список параметров

context

Контекст, созданный с помощью функции deflate_init().

data

Блок данных для сжатия.

flush_mode

Одна из констант: ZLIB_BLOCK, ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH (по умолчанию), ZLIB_FULL_FLUSH, ZLIB_FINISH. Обычно требуется установить ZLIB_NO_FLUSH для максимальной компрессии и ZLIB_FINISH для завершения на последнем блоке данных. Детальное описание констант см. в » руководстве zlib.

Возвращаемые значения

Возвращает блок сжатых данных или FALSE в случае возникновения ошибки.

Ошибки

В случае некорректных аргументов будет вызвана ошибка уровня E_WARNING.

Смотрите также

  • deflate_init() - Инициализировать контекст инкрементального сжатия


Инициализировать контекст инкрементального сжатия

  • « deflate_add
  • gzclose »
  • PHP Manual
  • Функции Zlib
  • Инициализировать контекст инкрементального сжатия

deflate_init

(PHP 7)

deflate_init — Инициализировать контекст инкрементального сжатия

Описание

deflate_init ( int $encoding [, array $options = array() ] ) : resource

Инициализирует контекст инкрементального сжатия с использованием указанной кодировки encoding.

Обратите внимание, что опция window задает только размер окна алгоритма, в отличие от фильтров zlib, где одноименная опция также используется для установки используемой кодировки; кодировка должна быть установлена с помощью параметра encoding.

Ограничения: в текущий момент невозможно установить информацию заголовка для сжатого потока GZIP, которая устанавливается следующим образом: подпись GZIP (\x1f\x8B); метод сжатия (\x08 == DEFLATE); 6 нулевых байтов; текущая операционная система (\x00 = Windows, \x03 = Unix и т.д.)

Список параметров

encoding

Одна из констант ZLIB_ENCODING_*.

options

Ассоциативный массив, который может содержать следующие элементы:

level

Уровень сжатия в диапазоне -1..9; по умолчанию -1.

memory

Уровень памяти сжатия в диапазоне 1..9; по умолчанию 8.

window

Размер окна zlib (логарифмический) в диапазоне 8..15; по умолчанию 15.

strategy

Одна из констант: ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY, ZLIB_RLE, ZLIB_FIXED или ZLIB_DEFAULT_STRATEGY (по умолчанию).

dictionary

Строка или массив строк текущего словаря (по умолчанию предустановленного словаря нет).

Возвращаемые значения

Возвращает ресурс контекста сжатия (zlib.deflate) или FALSE в случае возникновения ошибки.

Ошибки

Если в options была передана некорректная опция или контекст не может быть создан, то будет вызвана ошибка уровня E_WARNING.

Смотрите также

  • deflate_add() - Инкрементальное сжатие данных
  • inflate_init() - Инициализация контекста инкрементальной распоковки


Закрыть указатель открытого gz-файла

  • « deflate_init
  • gzcompress »
  • PHP Manual
  • Функции Zlib
  • Закрыть указатель открытого gz-файла

gzclose

(PHP 4, PHP 5, PHP 7)

gzclose — Закрыть указатель открытого gz-файла

Описание

gzclose ( resource $zp ) : bool

Закрывает открытый gz-файл по переданному указателю.

Список параметров

zp

Указатель на gz-файл. Должен указывать на файл, успешно открытый gzopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования gzclose()

<?php
$gz = gzopen('somefile.gz','w9');
gzputs ($gz, 'Добавлено в файл somefile.gz');
gzclose($gz);
?>

Смотрите также

  • gzopen() - Открыть gz-файл


Сжать строку

  • « gzclose
  • gzdecode »
  • PHP Manual
  • Функции Zlib
  • Сжать строку

gzcompress

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

gzcompress — Сжать строку

Описание

gzcompress ( string $data [, int $level = -1 [, int $encoding = ZLIB_ENCODING_DEFLATE ]] ) : string

Данная функция сжимает строку используя формат данных ZLIB.

Подробнее про алгоритм сжатия ZLIB см. документ "» Формат сжатия ZLIB. Спецификация версии 3.3" (RFC 1950).

Замечание:

Это не то же самое, что и gzip-сжатие, которое включает в себя некоторые данные заголовка. Информацию о gzip-сжатии см. gzencode().

Список параметров

data

Данные для сжатия.

level

Уровень сжатия. Целое число от 0 до 9 (0 - без сжатия, 9 - максимальное сжатие).

Если используется значение -1, то будет установлен принятый в библиотеке zlib по умолчанию уровень сжатия, который равен 6.

encoding

Одна из констант ZLIB_ENCODING_*.

Возвращаемые значения

Сжатая строка или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования gzcompress()

<?php
$compressed = gzcompress('Сожми меня', 9);
echo $compressed;
?>

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр encoding.

Смотрите также

  • gzdeflate() - Сжимает строку
  • gzinflate() - Распаковать сжатую строку
  • gzuncompress() - Распаковать сжатую строку
  • gzencode() - Создать сжатую строку gzip


Декодирует строку, сжатую с помощью gzip

  • « gzcompress
  • gzdeflate »
  • PHP Manual
  • Функции Zlib
  • Декодирует строку, сжатую с помощью gzip

gzdecode

(PHP 5 >= 5.4.0, PHP 7)

gzdecode — Декодирует строку, сжатую с помощью gzip

Описание

gzdecode ( string $data [, int $length ] ) : string

Эта функция возвращает декодированную версию входных данных. data.

Список параметров

data

Данные для декодирования, закодированные с помощью gzencode().

length

Максимальный размер строки для декодирования.

Возвращаемые значения

Распакованная строка или FALSE, если произошла ошибка.

Смотрите также

  • gzencode() - Создать сжатую строку gzip


Сжимает строку

  • « gzdecode
  • gzencode »
  • PHP Manual
  • Функции Zlib
  • Сжимает строку

gzdeflate

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gzdeflate — Сжимает строку

Описание

gzdeflate ( string $data [, int $level = -1 [, int $encoding = ZLIB_ENCODING_RAW ]] ) : string

Данная функция сжимает строку, используя формат данных DEFLATE.

Подробнее об алгоритме сжатия DEFLATE см. "» Формат сжатия данных DEFLATE. Спецификация версии 1.3" (RFC 1951).

Список параметров

data

Данные для сжатия.

level

Уровень сжатия. 0 - без сжатия, 9 - максимум. Если не указан, будет использоваться уровень сжатия по умолчанию библиотеки zlib.

encoding

Одна из ZLIB_ENCODING_* констант.

Возвращаемые значения

Сжатая строка или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования gzdeflate()

<?php
$compressed = gzdeflate('Сожми меня', 9);
echo $compressed;
?>

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр encoding.

Смотрите также

  • gzinflate() - Распаковать сжатую строку
  • gzcompress() - Сжать строку
  • gzuncompress() - Распаковать сжатую строку
  • gzencode() - Создать сжатую строку gzip


Создать сжатую строку gzip

  • « gzdeflate
  • gzeof »
  • PHP Manual
  • Функции Zlib
  • Создать сжатую строку gzip

gzencode

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gzencode — Создать сжатую строку gzip

Описание

gzencode ( string $data [, int $level = -1 [, int $encoding_mode = FORCE_GZIP ]] ) : string

Эта функция возвращает сжатую версию входных данных data, аналогично выводу программы gzip.

Подробности о формате GZIP см. » Формат файла GZIP. Спецификация версии 4.3 (RFC 1952).

Список параметров

data

Данные для кодирования.

level

Уровень сжатия. 0 - без сжатия, 9 - максимальное сжатие. Если не указано, будет использоваться уровень сжатия по умолчанию библиотеки zlib.

encoding_mode

Режим сжатия, может быть FORCE_GZIP (по умолчанию) или FORCE_DEFLATE.

До PHP 5.4.0 в случае использования FORCE_DEFLATE, возвращалась строка, сжатая по стандартному алгоритму zlib deflate (с заголовками zlib) после заголовка файла gzip, но без проверочной суммы crc32 в конце.

Начиная с версии PHP 5.4.0, использование константы FORCE_DEFLATE генерирует вывод, совместимый с RFC 1950, состоящий из заголовка zlib, сжатых данных и контрольной суммы Adler.

Возвращаемые значения

Сжатая строка или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.4.0 | FORCE_DEFLATE теперь генерирует вывод, совместимый с RFC 1950.

Примеры

Возвращаемые данные будут содержать соответствующие заголовки и структуры данных как в обычном .gz-файле, например:

Пример #1 Создание файла gzip

<?php
$data = implode("", file("bigfile.txt"));
$gzdata = gzencode($data, 9);
$fp = fopen("bigfile.txt.gz", "w");
fwrite($fp, $gzdata);
fclose($fp);
?>

Смотрите также

  • gzdecode() - Декодирует строку, сжатую с помощью gzip
  • gzdeflate() - Сжимает строку
  • gzinflate() - Распаковать сжатую строку
  • gzuncompress() - Распаковать сжатую строку
  • gzcompress() - Сжать строку
  • » Спецификация ZLIB Compressed Data (RFC 1950)


Проверяет, находится ли текущая позиция в конце (EOF) gz-файла

  • « gzencode
  • gzfile »
  • PHP Manual
  • Функции Zlib
  • Проверяет, находится ли текущая позиция в конце (EOF) gz-файла

gzeof

(PHP 4, PHP 5, PHP 7)

gzeof — Проверяет, находится ли текущая позиция в конце (EOF) gz-файла

Описание

gzeof ( resource $zp ) : int

Проверяет, соответствует ли позиция указателя в GZ-файле позиции EOF (end-of-file, конец файла).

Список параметров

zp

Указатель на gz-файл. Он должен быть корректный и должен указывать на файл, успешно открытый gzopen().

Возвращаемые значения

Возвращает TRUE, если позиция указателя gz-файла соответствует EOF или возникает ошибка; иначе возвращает FALSE.

Примеры

Пример #1 Пример использования gzeof()

<?php
$gz = gzopen('somefile.gz', 'r');
while (!gzeof($gz)) {
  echo gzgetc($gz);
}
gzclose($gz);
?>


Считывает весь gz-файл в массив

  • « gzeof
  • gzgetc »
  • PHP Manual
  • Функции Zlib
  • Считывает весь gz-файл в массив

gzfile

(PHP 4, PHP 5, PHP 7)

gzfile — Считывает весь gz-файл в массив

Описание

gzfile ( string $filename [, int $use_include_path = 0 ] ) : array

Аналогична readgzfile(), за исключением того, что она возвращает файл в массиве.

Список параметров

filename

Имя файла.

use_include_path

Если вы хотите, чтобы также проверялось наличие файла в директориях include_path, установите значение этого параметра в 1.

Возвращаемые значения

Массив строк файла, в каждом элементе массива находится одна строка, пустые строки включаются, а переносы строк по-прежнему добавляются.

Примеры

Пример #1 Пример использования gzfile()

<?php
$lines = gzfile('somefile.gz');
foreach ($lines as $line) {
    echo $line;
}
?>

Смотрите также

  • readgzfile() - Выводит содержимое gz-файла
  • gzopen() - Открыть gz-файл


Получить символ из указателя на gz-файл

  • « gzfile
  • gzgets »
  • PHP Manual
  • Функции Zlib
  • Получить символ из указателя на gz-файл

gzgetc

(PHP 4, PHP 5, PHP 7)

gzgetc — Получить символ из указателя на gz-файл

Описание

gzgetc ( resource $zp ) : string

Возвращает строку, содержащую один символ (несжатый), считанный из заданного указателя gz-файла.

Список параметров

zp

Указатель на gz-файл. Он должен быть корректный и должен указывать на файл, успешно открытый gzopen().

Возвращаемые значения

Символ (несжатый) или FALSE в случае EOF (в отличие от gzeof()).

Примеры

Пример #1 Пример использования gzgetc()

<?php
$gz = gzopen('somefile.gz', 'r');
while (!gzeof($gz)) {
  echo gzgetc($gz);
}
gzclose($gz);
?>

Смотрите также

  • gzopen() - Открыть gz-файл
  • gzgets() - Получить строку из указателя файла


Получить строку из указателя файла

  • « gzgetc
  • gzgetss »
  • PHP Manual
  • Функции Zlib
  • Получить строку из указателя файла

gzgets

(PHP 4, PHP 5, PHP 7)

gzgets — Получить строку из указателя файла

Описание

gzgets ( resource $zp [, int $length ] ) : string

Получает строку (несжатую) из gz-файла, её длина ограничивается length - 1 байтами. Чтение заканчивается при достижении максимальной длины, конца строки или конца файла (EOF), в зависимости от того, что наступит раньше.

Список параметров

zp

Указатель на gz-файл. Он должен быть корректный и должен указывать на файл, успешно открытый gzopen().

length

Максимальный размер возвращаемых данных.

Возвращаемые значения

Распакованная строка или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования gzgets()

<?php
$handle = gzopen('somefile.gz', 'r');
while (!gzeof($handle)) {
   $buffer = gzgets($handle, 4096);
   echo $buffer;
}
gzclose($handle);
?>

Смотрите также

  • gzopen() - Открыть gz-файл
  • gzgetc() - Получить символ из указателя на gz-файл
  • gzwrite() - Бинарная запись в gz-файл


Возвращает строку из указателя gz-файла и удалить HTML-теги

  • « gzgets
  • gzinflate »
  • PHP Manual
  • Функции Zlib
  • Возвращает строку из указателя gz-файла и удалить HTML-теги

gzgetss

(PHP 4, PHP 5, PHP 7)

gzgetss — Возвращает строку из указателя gz-файла и удалить HTML-теги

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.3.0 и ее использование крайне не рекомендовано.

Описание

gzgetss ( resource $zp , int $length [, string $allowable_tags ] ) : string

Аналогично gzgets(), за исключением того, что gzgetss() пытается удалить любые теги HTML и PHP из считываемой строки.

Список параметров

zp

Указатель на gz-файл. Он должен быть корректный и должен указывать на файл, успешно открытый gzopen().

length

Максимальный размер возвращаемых данных.

allowable_tags

Используйте этот необязательный параметр, чтобы указать теги, которые не следует удалять.

Возвращаемые значения

Несжатая очищенная строка или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования gzgetss()

<?php
$handle = gzopen('somefile.gz', 'r');
while (!gzeof($handle)) {
   $buffer = gzgetss($handle, 4096);
   echo $buffer;
}
gzclose($handle);
?>

Смотрите также

  • gzopen() - Открыть gz-файл
  • gzgets() - Получить строку из указателя файла
  • strip_tags() - Удаляет теги HTML и PHP из строки


Распаковать сжатую строку

  • « gzgetss
  • gzopen »
  • PHP Manual
  • Функции Zlib
  • Распаковать сжатую строку

gzinflate

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gzinflate — Распаковать сжатую строку

Описание

gzinflate ( string $data [, int $length = 0 ] ) : string

Распаковывает сжатую строку.

Список параметров

data

Данные, сжатые функцией gzdeflate().

length

Максимальный размер данных для декодирования.

Возвращаемые значения

Распакованные данные или FALSE в случае ошибки.

Функция вернет ошибку, если несжатые данные в 32768 раз больше размера сжатых данных data или больше параметра length.

Примеры

Пример #1 Пример использования gzinflate()

<?php
$compressed   = gzdeflate('Сожми меня', 9);
$uncompressed = gzinflate($compressed);
echo $uncompressed;
?>

Смотрите также

  • gzdeflate() - Сжимает строку
  • gzcompress() - Сжать строку
  • gzuncompress() - Распаковать сжатую строку
  • gzencode() - Создать сжатую строку gzip


Открыть gz-файл

  • « gzinflate
  • gzpassthru »
  • PHP Manual
  • Функции Zlib
  • Открыть gz-файл

gzopen

(PHP 4, PHP 5, PHP 7)

gzopen — Открыть gz-файл

Описание

gzopen ( string $filename , string $mode [, int $use_include_path = 0 ] ) : resource

Открывает файл gzip (.gz) для чтения или записи.

gzopen() также можно использовать для чтения несжатых файлов (то есть не в формате gzip). В этом случае gzread() будет непосредственно читать файл без какой-либо обработки.

Список параметров

filename

Имя файла.

mode

Как в fopen() (rb или wb), но также может включать уровень сжатия (wb9) или стратегию: f для фильтрации данных как в wb6f, h для сжатия только по алгоритму Хаффмана, как в wb1h (Для более детальной информации о параметре стратегии см. описание deflateInit2 в zlib.h).

use_include_path

Если вы хотите, чтобы поиск файла выполнялся также в директориях include_path, установите значение этого аргумента в 1.

Возвращаемые значения

Возвращает указатель на открытый файл, после чего всё, что вы читаете из этого дескриптора, будет автоматически распаковываться, а всё, что вы записываете - упаковываться.

В случае ошибки функция возвращает FALSE.

Примеры

Пример #1 Пример использования gzopen()

<?php
$fp = gzopen("/tmp/file.gz", "r");
?>

Смотрите также

  • gzclose() - Закрыть указатель открытого gz-файла


Вывод всех оставшихся данных из указателя gz-файла.

  • « gzopen
  • gzputs »
  • PHP Manual
  • Функции Zlib
  • Вывод всех оставшихся данных из указателя gz-файла.

gzpassthru

(PHP 4, PHP 5, PHP 7)

gzpassthru — Вывод всех оставшихся данных из указателя gz-файла.

Описание

gzpassthru ( resource $zp ) : int

Читает до конца файла (EOF) данные из указателя gz-файла, начиная с текущей позиции, и записывает результат (без сжатия) в стандартный вывод.

Замечание:

Используйте gzrewind(), чтобы переместить указатель на позицию в начало файла, если вы уже записывали данные в него.

Подсказка

Если вам нужно просто вывести содержимое файла без перемещения указателя на позицию или внесения изменений, используйте функцию readgzfile(), которая не требует вызова функции gzopen().

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

Возвращаемые значения

Количество несжатых символов, прочитанных из gz и переданных на вход, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования gzpassthru()

<?php
$fp = gzopen('file.gz', 'r');
gzpassthru($fp);
gzclose($fp);
?>


Псевдоним gzwrite

  • « gzpassthru
  • gzread »
  • PHP Manual
  • Функции Zlib
  • Псевдоним gzwrite

gzputs

(PHP 4, PHP 5, PHP 7)

gzputs — Псевдоним gzwrite()

Описание

Эта функция является псевдонимом: gzwrite().


Бинарное чтение gz-файла

  • « gzputs
  • gzrewind »
  • PHP Manual
  • Функции Zlib
  • Бинарное чтение gz-файла

gzread

(PHP 4, PHP 5, PHP 7)

gzread — Бинарное чтение gz-файла

Описание

gzread ( resource $zp , int $length ) : string

gzread() читает (распаковывая) до length байт из gz-файла из переданного указателя gz-файла. Чтение заканчивается при достижении максимального размера length распакованных данных или конца файла (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() - Бинарная запись в gz-файл
  • gzopen() - Открыть gz-файл
  • gzgets() - Получить строку из указателя файла
  • gzgetss() - Возвращает строку из указателя gz-файла и удалить HTML-теги
  • gzfile() - Считывает весь gz-файл в массив
  • gzpassthru() - Вывод всех оставшихся данных из указателя gz-файла.


Переместить позицию указатель gz-файла в начало

  • « gzread
  • gzseek »
  • PHP Manual
  • Функции Zlib
  • Переместить позицию указатель gz-файла в начало

gzrewind

(PHP 4, PHP 5, PHP 7)

gzrewind — Переместить позицию указатель gz-файла в начало

Описание

gzrewind ( resource $zp ) : bool

Устанавливает указатель на позицию файла на начало потока этого файла.

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gzseek() - Переместить указатель на позицию в указателе gz-файла
  • gztell() - Возвращает текущую позицию чтения/записи в указателе gz-файла


Переместить указатель на позицию в указателе gz-файла

  • « gzrewind
  • gztell »
  • PHP Manual
  • Функции Zlib
  • Переместить указатель на позицию в указателе gz-файла

gzseek

(PHP 4, PHP 5, PHP 7)

gzseek — Переместить указатель на позицию в указателе gz-файла

Описание

gzseek ( resource $zp , int $offset [, int $whence = SEEK_SET ] ) : int

Устанавливает указатель на позицию в файле, на который ссылается zp. Выполняется смещение потока этого файла на указанное количество байт. Эквивалентно вызову (в C) gzseek(zp, offset, SEEK_SET).

Если файл открыт для чтения, функция эмулируется, при этом будет работать очень медленно. Если файл открыт для записи, разрешено только перемещение вперёд; gzseek() при этом сжимает последовательность нулей до новой позиции.

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

offset

Смещение.

whence

Значения параметра whence может быть одним из следующих:

  • SEEK_SET - Установить абсолютную позицию в offset байт.
  • SEEK_CUR - Установить позицию относительно текущего положения, добавив к ней offset.

Если whence не указан, по умолчанию используется SEEK_SET.

Возвращаемые значения

При успешном завершении возвращает 0; иначе -1. Обратите внимание, что если установленное смещение перемещает указатель на позицию за EOF, это не является ошибкой.

Примеры

Пример #1 Пример использования gzseek()

<?php
$gz = gzopen('somefile.gz', 'r');
gzseek($gz,2);
echo gzgetc($gz);
gzclose($gz);
?>

Смотрите также

  • gztell() - Возвращает текущую позицию чтения/записи в указателе gz-файла
  • gzrewind() - Переместить позицию указатель gz-файла в начало


Возвращает текущую позицию чтения/записи в указателе gz-файла

  • « gzseek
  • gzuncompress »
  • PHP Manual
  • Функции Zlib
  • Возвращает текущую позицию чтения/записи в указателе gz-файла

gztell

(PHP 4, PHP 5, PHP 7)

gztell — Возвращает текущую позицию чтения/записи в указателе gz-файла

Описание

gztell ( resource $zp ) : int

Получает позицию указателя файла, то есть смещение в потоке распакованного файла.

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

Возвращаемые значения

Текущая позиция или FALSE в случае ошибки.

Смотрите также

  • gzopen() - Открыть gz-файл
  • gzseek() - Переместить указатель на позицию в указателе gz-файла
  • gzrewind() - Переместить позицию указатель gz-файла в начало


Распаковать сжатую строку

  • « gztell
  • gzwrite »
  • PHP Manual
  • Функции Zlib
  • Распаковать сжатую строку

gzuncompress

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

gzuncompress — Распаковать сжатую строку

Описание

gzuncompress ( string $data [, int $length = 0 ] ) : string

Распаковывает сжатую строку.

Список параметров

data

Данные, сжатые функцией gzcompress().

length

Максимальный размер данных для декодирования.

Возвращаемые значения

Исходные несжатые данные или FALSE в случае ошибки.

Функция также сообщит об ошибке в случае, если несжатые данные в 32768 раз больше размера сжатых данных data или больше параметра length.

Примеры

Пример #1 Пример использования gzuncompress()

<?php
$compressed   = gzcompress('Сожми меня', 9);
$uncompressed = gzuncompress($compressed);
echo $uncompressed;
?>

Смотрите также

  • gzcompress() - Сжать строку
  • gzinflate() - Распаковать сжатую строку
  • gzdeflate() - Сжимает строку
  • gzencode() - Создать сжатую строку gzip


Бинарная запись в gz-файл

  • « gzuncompress
  • inflate_add »
  • PHP Manual
  • Функции Zlib
  • Бинарная запись в gz-файл

gzwrite

(PHP 4, PHP 5, PHP 7)

gzwrite — Бинарная запись в gz-файл

Описание

gzwrite ( resource $zp , string $string [, int $length ] ) : int

Записывает содержимое string в данный gz-файл.

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

string

Записываемая строка.

length

Число несжатых байтов для записи. Если указано, операция завершится после записи length (до сжатия) байт или при достижении конца строки, в зависимости от того, что наступит раньше. string.

Замечание:

Обратите внимание, что если параметр length задан, конфигурационный параметр magic_quotes_runtime будет проигнорирован и удаление слешей из записываемой строки не будет выполнено.

Возвращаемые значения

Возвращает количество записанных байт (без учёта сжатия) в поток gz-файла.

Примеры

Пример #1 Пример использования gzwrite()

<?php
$string = 'Какие-то данные для сжатия';
$gz = gzopen('somefile.gz','w9');
gzwrite($gz, $string);
gzclose($gz);
?>

Смотрите также

  • gzread() - Бинарное чтение gz-файла
  • gzopen() - Открыть gz-файл


Инкрементально распаковать закодированные данные

  • « gzwrite
  • inflate_get_read_len »
  • PHP Manual
  • Функции Zlib
  • Инкрементально распаковать закодированные данные

inflate_add

(PHP 7)

inflate_add — Инкрементально распаковать закодированные данные

Описание

inflate_add ( resource $context , string $encoded_data [, int $flush_mode = ZLIB_SYNC_FLUSH ] ) : string

Инкрементально распаковывает закодированные данные в указанном контексте context.

Ограничение: информация заголовка из сжатых данных GZIP не доступны.

Список параметров

context

Контекст, созданный с помощью inflate_init().

encoded_data

Блок сжатых данных.

flush_mode

Одна из констант: ZLIB_BLOCK, ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH (по умолчанию), ZLIB_FULL_FLUSH, ZLIB_FINISH. Обычно требуется установить ZLIB_NO_FLUSH для максимальной компрессии и ZLIB_FINISH для завершения работы с последним блоком данных. Детальное описание констант см. в » руководство zlib.

Возвращаемые значения

Возвращает блок распакованных данных, или FALSE в случае возникновения ошибки.

Ошибки

Если переданы некорректные параметры, распаковка требует наличие словаря, но он не задан, поток сжатых данных испорчен или имеет некорректную контрольную сумму, то генериуется ошибка уровня E_WARNING.

Смотрите также

  • inflate_init() - Инициализация контекста инкрементальной распоковки


Получает количество прочитанных байт

  • « inflate_add
  • inflate_get_status »
  • PHP Manual
  • Функции Zlib
  • Получает количество прочитанных байт

inflate_get_read_len

(PHP 7 >= 7.2.0)

inflate_get_read_len — Получает количество прочитанных байт

Описание

inflate_get_read_len ( resource $resource ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

resource

Возвращаемые значения

Возвращает количество прочитанных байт или FALSE в случае возникновения ошибки.


Получает статус декомпрессии

  • « inflate_get_read_len
  • inflate_init »
  • PHP Manual
  • Функции Zlib
  • Получает статус декомпрессии

inflate_get_status

(PHP 7 >= 7.2.0)

inflate_get_status — Получает статус декомпрессии

Описание

inflate_get_status ( resource $resource ) : int

Обычно возвращает ZLIB_OK или ZLIB_STREAM_END.

Список параметров

resource

Возвращаемые значения

Возвращает статус декомпрессии или FALSE в случае возникновения ошибки.


Инициализация контекста инкрементальной распоковки

  • « inflate_get_status
  • readgzfile »
  • PHP Manual
  • Функции Zlib
  • Инициализация контекста инкрементальной распоковки

inflate_init

(PHP 7)

inflate_init — Инициализация контекста инкрементальной распоковки

Описание

inflate_init ( int $encoding [, array $options = array() ] ) : resource

Инициализирует контекст инкрементальной распаковки с указанной кодировкой encoding.

Список параметров

encoding

Одна из констант ZLIB_ENCODING_*.

options

Ассоциативный массив, который может содержать следующие элементы:

level

Уровень сжатия в диапазоне -1..9; по умолчанию -1.

memory

Уровень памяти сжатия в диапазоне 1..9; по умолчанию 8.

window

Размер окна zlib (логарифмический) в диапазоне 8..15; по умолчанию 15.

strategy

Одна из констант: ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY, ZLIB_RLE, ZLIB_FIXED или ZLIB_DEFAULT_STRATEGY (по умолчанию).

dictionary

Строка (string) или массив (array) строк текущего словаря (по умолчанию предустановленного словаря нет).

Возвращаемые значения

Возвращает ресурс контекста распаковки (zlib.inflate) или FALSE в случае возникновения ошибки.

Ошибки

Если в options была передана некорректная опция, или контекст не может быть создан, то будет вызвана ошибка уровня E_WARNING.

Смотрите также

  • inflate_add() - Инкрементально распаковать закодированные данные
  • deflate_init() - Инициализировать контекст инкрементального сжатия


Выводит содержимое gz-файла

  • « inflate_init
  • zlib_decode »
  • PHP Manual
  • Функции Zlib
  • Выводит содержимое gz-файла

readgzfile

(PHP 4, PHP 5, PHP 7)

readgzfile — Выводит содержимое gz-файла

Описание

readgzfile ( string $filename [, int $use_include_path = 0 ] ) : int

Читает файл, распаковывает его и записывает в стандартный вывод.

Может также использоваться для чтения файла, не имеющего формат gzip; в этом случае readgzfile() непосредственно читает из файла без распаковки.

Список параметров

filename

Имя файла. Этот файл будет открыт и его содержимое будет записано в стандартный вывод.

use_include_path

Вы можете использовать этот необязательный параметр и установить его в 1, если необходимо, чтобы поиск файла также осуществлялся в директориях include_path.

Возвращаемые значения

Возвращает количество байтов в файле (после распаковки) в случае успешного выполнения, или FALSE в случае возникновения ошибки

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Смотрите также

  • gzpassthru() - Вывод всех оставшихся данных из указателя gz-файла.
  • gzfile() - Считывает весь gz-файл в массив
  • gzopen() - Открыть gz-файл


Распаковывает любые закодированные данные raw/gzip/zlib

  • « readgzfile
  • zlib_encode »
  • PHP Manual
  • Функции Zlib
  • Распаковывает любые закодированные данные raw/gzip/zlib

zlib_decode

(PHP 5 >= 5.4.0, PHP 7)

zlib_decode — Распаковывает любые закодированные данные raw/gzip/zlib

Описание

zlib_decode ( string $data [, string $max_decoded_len ] ) : string

Распаковывает любые закодированные данные raw/gzip/zlib.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

max_decoded_len

Возвращаемые значения

Возвращает распакованные данные или FALSE в случае возникновения ошибки.

Смотрите также

  • zlib_encode() - Сжатие данных с указанной кодировкой


Сжатие данных с указанной кодировкой

  • « zlib_decode
  • zlib_get_coding_type »
  • PHP Manual
  • Функции Zlib
  • Сжатие данных с указанной кодировкой

zlib_encode

(PHP 5 >= 5.4.0, PHP 7)

zlib_encode — Сжатие данных с указанной кодировкой

Описание

zlib_encode ( string $data , int $encoding [, int $level = -1 ] ) : string

Сжимает данные с указанной кодировкой.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Данные для сжатия.

encoding

Алгоритм сжатия. Одна из констант ZLIB_ENCODING_RAW, ZLIB_ENCODING_DEFLATE или ZLIB_ENCODING_GZIP.

level

Возвращаемые значения

Примеры

Пример #1 Пример использования zlib_encode()

<?php
$str = 'hello world';
$enc = zlib_encode($str, ZLIB_ENCODING_DEFLATE);
echo bin2hex($enc);
?>

Результат выполнения данного примера:

789ccb48cdc9c95728cf2fca4901001a0b045d

Смотрите также

  • zlib_decode() - Распаковывает любые закодированные данные raw/gzip/zlib


Возвращает способ кодирования, используемый для сжатия вывода

  • « zlib_encode
  • Обработка кредитных карт »
  • PHP Manual
  • Функции Zlib
  • Возвращает способ кодирования, используемый для сжатия вывода

zlib_get_coding_type

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

zlib_get_coding_type — Возвращает способ кодирования, используемый для сжатия вывода

Описание

zlib_get_coding_type ( void ) : string

Возвращает способ кодирования, используемый для сжатия вывода.

Возвращаемые значения

Возможные значения: gzip, deflate или FALSE.

Смотрите также

  • Директива zlib.output_compression


Обработка кредитных карт

  • MCVE — MCVE (Monetra) Payment (Обработка кредитных карт)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции MCVE


MCVE (Monetra) Payment (Обработка кредитных карт)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции MCVE
    • m_checkstatus — Проверяет, завершена ли транзакция
    • m_completeauthorizations — Number of complete authorizations in queue, returning an array of their identifiers
    • m_connect — Установить соединение с MCVE
    • m_connectionerror — Получение текстового представления причины сбоя соединения
    • m_deletetrans — Удалить указанную транзакцию из структуры MCVE_CONN
    • m_destroyconn — Уничтожить соединение и структуру MCVE_CONN
    • m_destroyengine — Освободить память, связанную с подключением IP/SSL
    • m_getcell — Получить конкретную ячейку из ответа, разделенного запятыми, по имени столбца
    • m_getcellbynum — Получить конкретную ячейку из ответа, разделенного запятыми, по номеру столбца
    • m_getcommadelimited — Получить RAW с разделителями в виде запятых, возвращенную от MCVE
    • m_getheader — Получить имя столбца в ответе с разделителями в виде запятых
    • m_initconn — Создать и инициализировать структуру MCVE_CONN
    • m_initengine — Ready the client for IP/SSL Communication
    • m_iscommadelimited — Проверяет, разделен ли ответ запятыми
    • m_maxconntimeout — Максимальное время, в течение которого API будет пытаться подключиться к MCVE
    • m_monitor — Соединиться с MCVE (передача/получение данных) в неблокирующем режиме
    • m_numcolumns — Количество столбцов, возвращаемых в ответе с разделителями в виде запятых
    • m_numrows — Количество строк, возвращаемых в ответе с разделителями в виде запятых
    • m_parsecommadelimited — Разбирает ответ, разделенный запятыми, так что m_getcell и ему подобные будут работать
    • m_responsekeys — Возвращает массив строк, представляющих ключи, которые можно использовать для параметров ответа в этой транзакции
    • m_responseparam — Получить пользовательский параметр ответа
    • m_returnstatus — Проверить, была ли транзакция успешной
    • m_setblocking — Установить блокирующий/неблокирующий режим для подключения
    • m_setdropfile — Установить метод соединения в Drop-File
    • m_setip — Установить метод соединения на IP
    • m_setssl_cafile — Установить SSL-файл CA (Certificate Authority) для проверки сертификата сервера
    • m_setssl_files — Установить файлы ключа сертификата ключей и сертификаты, если сервер требует проверки сертификата клиента
    • m_setssl — Установить метод подключения на SSL
    • m_settimeout — Установить максимальное время транзакции (на каждую транзакцию)
    • m_sslcert_gen_hash — Сгенерировать хеш для проверки сертификата SSL-клиента
    • m_transactionssent — Проверить, свободен ли исходящий буфер
    • m_transinqueue — Количество транзакций в очереди клиентов
    • m_transkeyval — Добавить пару ключ/значение в транзакцию. Заменяет устаревшую функцию transparam()
    • m_transnew — Начать новую транзакцию
    • m_transsend — Завершить и отправить транзакцию
    • m_uwait — Подождать x микросекунд
    • m_validateidentifier — Проверить, действителен ли переданный идентификатор в какой-либо транзакции, в которую он передается
    • m_verifyconnection — Установить, следует ли делать PING при подключении для проверки соединения
    • m_verifysslcert — Установить, следует ли проверять SSL-сертификат сервера


Введение

Функциональный интерфейс MCVE (Monetra) API (libmonetra, ранее известный как libmcve) позволяет работать непосредственно с MCVE/Monetra из вашего PHP-скрипта. MCVE/Monetra это решение от компании Main Street Softworks для обработки кредитных/дебетовых/подарочных карт для Linux/Unix/MacOSX/Windows систем ( » http://www.mainstreetsoftworks.com/ ). Это решение позволяет вам напрямую использовать расчетные кредитные карты, используя *nix систему, модем и/или интернет соединение (в обход необходимости использования дополнительных услуг, таких как Authorize.Net или Pay Flow Pro). Используя модуль MCVE/Monetra в PHP, вы сможете обрабатывать кредитные карты непосредственно через MCVE/Monetra в ваших PHP-скриптах. Следующие ссылки в общих чертах обрисуют сам процесс.

Замечание:

MCVE/Monetra является заменой для RedHat CCVS. Они заключили контракт с RedHat в конце 2001 года и перевели всех существующих клиентов на платформу MCVE.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0.

Замечание: Для Windows-платформ это расширение недоступно.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Библиотека LibMonetra (раньше libmcve).


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/mcve.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

При установке без указания пути к libmonetra, PHP будет пытаться использовать путь LibMonetra по умолчанию (/usr/local). Если Monetra (MCVE) установлена по нестандартному пути, то сконфигурируйте установку следующим образом: --with-mcve=$mcve_path , где $mcve_path это путь установки MCVE/Monetra. Обратите внимание, что MCVE/Monetra требует существование каталогов $mcve_path/lib и $mcve_path/include, и включенный mcve.h, или monetra.h в каталоге include и libmcve.so, и/или libmcve.a, и/или libmonetra.so, и/или libmonetra.a в каталоге lib.

Так как MCVE/Monetra имеет разделение на сервер/клиент, то нет дополнительных требований для запуска PHP с MCVE. Для проверки вашего расширения MCVE/Monetra в PHP, можно подключиться к testbox.monetra.com на порт 8333 для IP, или на порт 8444 для SSL, используя MCVE/Monetra PHP API. Используйте 'vitale' как имя пользователя и 'test' как пароль. Дополнительная информация доступна на » http://www.mainstreetsoftworks.com/.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Это расширение определяет ресурс MCVE_CONN, возвращаемый функцией m_initconn().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

M_PENDING (integer)
M_DONE (integer)
M_ERROR (integer)
M_FAIL (integer)
M_SUCCESS (integer)


Функции MCVE

Смотрите также

Дополнительную документацию по MCVE/Monetra PHP API можно найти на » http://www.mainstreetsoftworks.com/documentation.html. Документация компании Main Street является полной и должна быть основным справочником по функционалу.

Содержание

  • m_checkstatus — Проверяет, завершена ли транзакция
  • m_completeauthorizations — Number of complete authorizations in queue, returning an array of their identifiers
  • m_connect — Установить соединение с MCVE
  • m_connectionerror — Получение текстового представления причины сбоя соединения
  • m_deletetrans — Удалить указанную транзакцию из структуры MCVE_CONN
  • m_destroyconn — Уничтожить соединение и структуру MCVE_CONN
  • m_destroyengine — Освободить память, связанную с подключением IP/SSL
  • m_getcell — Получить конкретную ячейку из ответа, разделенного запятыми, по имени столбца
  • m_getcellbynum — Получить конкретную ячейку из ответа, разделенного запятыми, по номеру столбца
  • m_getcommadelimited — Получить RAW с разделителями в виде запятых, возвращенную от MCVE
  • m_getheader — Получить имя столбца в ответе с разделителями в виде запятых
  • m_initconn — Создать и инициализировать структуру MCVE_CONN
  • m_initengine — Ready the client for IP/SSL Communication
  • m_iscommadelimited — Проверяет, разделен ли ответ запятыми
  • m_maxconntimeout — Максимальное время, в течение которого API будет пытаться подключиться к MCVE
  • m_monitor — Соединиться с MCVE (передача/получение данных) в неблокирующем режиме
  • m_numcolumns — Количество столбцов, возвращаемых в ответе с разделителями в виде запятых
  • m_numrows — Количество строк, возвращаемых в ответе с разделителями в виде запятых
  • m_parsecommadelimited — Разбирает ответ, разделенный запятыми, так что m_getcell и ему подобные будут работать
  • m_responsekeys — Возвращает массив строк, представляющих ключи, которые можно использовать для параметров ответа в этой транзакции
  • m_responseparam — Получить пользовательский параметр ответа
  • m_returnstatus — Проверить, была ли транзакция успешной
  • m_setblocking — Установить блокирующий/неблокирующий режим для подключения
  • m_setdropfile — Установить метод соединения в Drop-File
  • m_setip — Установить метод соединения на IP
  • m_setssl_cafile — Установить SSL-файл CA (Certificate Authority) для проверки сертификата сервера
  • m_setssl_files — Установить файлы ключа сертификата ключей и сертификаты, если сервер требует проверки сертификата клиента
  • m_setssl — Установить метод подключения на SSL
  • m_settimeout — Установить максимальное время транзакции (на каждую транзакцию)
  • m_sslcert_gen_hash — Сгенерировать хеш для проверки сертификата SSL-клиента
  • m_transactionssent — Проверить, свободен ли исходящий буфер
  • m_transinqueue — Количество транзакций в очереди клиентов
  • m_transkeyval — Добавить пару ключ/значение в транзакцию. Заменяет устаревшую функцию transparam()
  • m_transnew — Начать новую транзакцию
  • m_transsend — Завершить и отправить транзакцию
  • m_uwait — Подождать x микросекунд
  • m_validateidentifier — Проверить, действителен ли переданный идентификатор в какой-либо транзакции, в которую он передается
  • m_verifyconnection — Установить, следует ли делать PING при подключении для проверки соединения
  • m_verifysslcert — Установить, следует ли проверять SSL-сертификат сервера


Проверяет, завершена ли транзакция

  • « Функции MCVE
  • m_completeauthorizations »
  • PHP Manual
  • Функции MCVE
  • Проверяет, завершена ли транзакция

m_checkstatus

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_checkstatus — Проверяет, завершена ли транзакция

Описание

m_checkstatus ( resource $conn , int $identifier ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Number of complete authorizations in queue, returning an array of their identifiers

  • « m_checkstatus
  • m_connect »
  • PHP Manual
  • Функции MCVE
  • Number of complete authorizations in queue, returning an array of their identifiers

m_completeauthorizations

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_completeauthorizations — Number of complete authorizations in queue, returning an array of their identifiers

Описание

m_completeauthorizations ( resource $conn , int &$array ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

array

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity


Установить соединение с MCVE

  • « m_completeauthorizations
  • m_connectionerror »
  • PHP Manual
  • Функции MCVE
  • Установить соединение с MCVE

m_connect

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_connect — Установить соединение с MCVE

Описание

m_connect ( resource $conn ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

Возвращаемые значения


Получение текстового представления причины сбоя соединения

  • « m_connect
  • m_deletetrans »
  • PHP Manual
  • Функции MCVE
  • Получение текстового представления причины сбоя соединения

m_connectionerror

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_connectionerror — Получение текстового представления причины сбоя соединения

Описание

m_connectionerror ( resource $conn ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

Возвращаемые значения


Удалить указанную транзакцию из структуры MCVE_CONN

  • « m_connectionerror
  • m_destroyconn »
  • PHP Manual
  • Функции MCVE
  • Удалить указанную транзакцию из структуры MCVE_CONN

m_deletetrans

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_deletetrans — Удалить указанную транзакцию из структуры MCVE_CONN

Описание

m_deletetrans ( resource $conn , int $identifier ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Уничтожить соединение и структуру MCVE_CONN

  • « m_deletetrans
  • m_destroyengine »
  • PHP Manual
  • Функции MCVE
  • Уничтожить соединение и структуру MCVE_CONN

m_destroyconn

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_destroyconn — Уничтожить соединение и структуру MCVE_CONN

Описание

m_destroyconn ( resource $conn ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

Возвращаемые значения

Returns TRUE.

Смотрите также

  • m_initconn() - Создать и инициализировать структуру MCVE_CONN


Освободить память, связанную с подключением IP/SSL

  • « m_destroyconn
  • m_getcell »
  • PHP Manual
  • Функции MCVE
  • Освободить память, связанную с подключением IP/SSL

m_destroyengine

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_destroyengine — Освободить память, связанную с подключением IP/SSL

Описание

m_destroyengine ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Получить конкретную ячейку из ответа, разделенного запятыми, по имени столбца

  • « m_destroyengine
  • m_getcellbynum »
  • PHP Manual
  • Функции MCVE
  • Получить конкретную ячейку из ответа, разделенного запятыми, по имени столбца

m_getcell

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_getcell — Получить конкретную ячейку из ответа, разделенного запятыми, по имени столбца

Описание

m_getcell ( resource $conn , int $identifier , string $column , int $row ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

column

row

Возвращаемые значения


Получить конкретную ячейку из ответа, разделенного запятыми, по номеру столбца

  • « m_getcell
  • m_getcommadelimited »
  • PHP Manual
  • Функции MCVE
  • Получить конкретную ячейку из ответа, разделенного запятыми, по номеру столбца

m_getcellbynum

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_getcellbynum — Получить конкретную ячейку из ответа, разделенного запятыми, по номеру столбца

Описание

m_getcellbynum ( resource $conn , int $identifier , int $column , int $row ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

column

row

Возвращаемые значения


Получить RAW с разделителями в виде запятых, возвращенную от MCVE

  • « m_getcellbynum
  • m_getheader »
  • PHP Manual
  • Функции MCVE
  • Получить RAW с разделителями в виде запятых, возвращенную от MCVE

m_getcommadelimited

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_getcommadelimited — Получить RAW с разделителями в виде запятых, возвращенную от MCVE

Описание

m_getcommadelimited ( resource $conn , int $identifier ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Получить имя столбца в ответе с разделителями в виде запятых

  • « m_getcommadelimited
  • m_initconn »
  • PHP Manual
  • Функции MCVE
  • Получить имя столбца в ответе с разделителями в виде запятых

m_getheader

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_getheader — Получить имя столбца в ответе с разделителями в виде запятых

Описание

m_getheader ( resource $conn , int $identifier , int $column_num ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

column_num

Возвращаемые значения


Создать и инициализировать структуру MCVE_CONN

  • « m_getheader
  • m_initengine »
  • PHP Manual
  • Функции MCVE
  • Создать и инициализировать структуру MCVE_CONN

m_initconn

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_initconn — Создать и инициализировать структуру MCVE_CONN

Описание

m_initconn ( void ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает ресурс MCVE_CONN.

Смотрите также

  • m_destroyconn() - Уничтожить соединение и структуру MCVE_CONN


Ready the client for IP/SSL Communication

  • « m_initconn
  • m_iscommadelimited »
  • PHP Manual
  • Функции MCVE
  • Ready the client for IP/SSL Communication

m_initengine

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_initengine — Ready the client for IP/SSL Communication

Описание

m_initengine ( string $location ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

location

Возвращаемые значения


Проверяет, разделен ли ответ запятыми

  • « m_initengine
  • m_maxconntimeout »
  • PHP Manual
  • Функции MCVE
  • Проверяет, разделен ли ответ запятыми

m_iscommadelimited

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_iscommadelimited — Проверяет, разделен ли ответ запятыми

Описание

m_iscommadelimited ( resource $conn , int $identifier ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Максимальное время, в течение которого API будет пытаться подключиться к MCVE

  • « m_iscommadelimited
  • m_monitor »
  • PHP Manual
  • Функции MCVE
  • Максимальное время, в течение которого API будет пытаться подключиться к MCVE

m_maxconntimeout

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_maxconntimeout — Максимальное время, в течение которого API будет пытаться подключиться к MCVE

Описание

m_maxconntimeout ( resource $conn , int $secs ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

secs

Возвращаемые значения


Соединиться с MCVE (передача/получение данных) в неблокирующем режиме

  • « m_maxconntimeout
  • m_numcolumns »
  • PHP Manual
  • Функции MCVE
  • Соединиться с MCVE (передача/получение данных) в неблокирующем режиме

m_monitor

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_monitor — Соединиться с MCVE (передача/получение данных) в неблокирующем режиме

Описание

m_monitor ( resource $conn ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

Возвращаемые значения


Количество столбцов, возвращаемых в ответе с разделителями в виде запятых

  • « m_monitor
  • m_numrows »
  • PHP Manual
  • Функции MCVE
  • Количество столбцов, возвращаемых в ответе с разделителями в виде запятых

m_numcolumns

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_numcolumns — Количество столбцов, возвращаемых в ответе с разделителями в виде запятых

Описание

m_numcolumns ( resource $conn , int $identifier ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Количество строк, возвращаемых в ответе с разделителями в виде запятых

  • « m_numcolumns
  • m_parsecommadelimited »
  • PHP Manual
  • Функции MCVE
  • Количество строк, возвращаемых в ответе с разделителями в виде запятых

m_numrows

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_numrows — Количество строк, возвращаемых в ответе с разделителями в виде запятых

Описание

m_numrows ( resource $conn , int $identifier ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Разбирает ответ, разделенный запятыми, так что m_getcell и ему подобные будут работать

  • « m_numrows
  • m_responsekeys »
  • PHP Manual
  • Функции MCVE
  • Разбирает ответ, разделенный запятыми, так что m_getcell и ему подобные будут работать

m_parsecommadelimited

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_parsecommadelimited — Разбирает ответ, разделенный запятыми, так что m_getcell и ему подобные будут работать

Описание

m_parsecommadelimited ( resource $conn , int $identifier ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Возвращает массив строк, представляющих ключи, которые можно использовать для параметров ответа в этой транзакции

  • « m_parsecommadelimited
  • m_responseparam »
  • PHP Manual
  • Функции MCVE
  • Возвращает массив строк, представляющих ключи, которые можно использовать для параметров ответа в этой транзакции

m_responsekeys

(PHP 5 >= 5.0.5 < 5.1.0, PECL mcve >= 1.0.0)

m_responsekeys — Возвращает массив строк, представляющих ключи, которые можно использовать для параметров ответа в этой транзакции

Описание

m_responsekeys ( resource $conn , int $identifier ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Получить пользовательский параметр ответа

  • « m_responsekeys
  • m_returnstatus »
  • PHP Manual
  • Функции MCVE
  • Получить пользовательский параметр ответа

m_responseparam

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_responseparam — Получить пользовательский параметр ответа

Описание

m_responseparam ( resource $conn , int $identifier , string $key ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

key

Возвращаемые значения


Проверить, была ли транзакция успешной

  • « m_responseparam
  • m_setblocking »
  • PHP Manual
  • Функции MCVE
  • Проверить, была ли транзакция успешной

m_returnstatus

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_returnstatus — Проверить, была ли транзакция успешной

Описание

m_returnstatus ( resource $conn , int $identifier ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Установить блокирующий/неблокирующий режим для подключения

  • « m_returnstatus
  • m_setdropfile »
  • PHP Manual
  • Функции MCVE
  • Установить блокирующий/неблокирующий режим для подключения

m_setblocking

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_setblocking — Установить блокирующий/неблокирующий режим для подключения

Описание

m_setblocking ( resource $conn , int $tf ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

tf

Возвращаемые значения


Установить метод соединения в Drop-File

  • « m_setblocking
  • m_setip »
  • PHP Manual
  • Функции MCVE
  • Установить метод соединения в Drop-File

m_setdropfile

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_setdropfile — Установить метод соединения в Drop-File

Описание

m_setdropfile ( resource $conn , string $directory ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

directory

Возвращаемые значения


Установить метод соединения на IP

  • « m_setdropfile
  • m_setssl_cafile »
  • PHP Manual
  • Функции MCVE
  • Установить метод соединения на IP

m_setip

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_setip — Установить метод соединения на IP

Описание

m_setip ( resource $conn , string $host , int $port ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

host

port

Возвращаемые значения


Установить SSL-файл CA (Certificate Authority) для проверки сертификата сервера

  • « m_setip
  • m_setssl_files »
  • PHP Manual
  • Функции MCVE
  • Установить SSL-файл CA (Certificate Authority) для проверки сертификата сервера

m_setssl_cafile

(PHP 5 >= 5.0.5 < 5.1.0, PECL mcve >= 1.0.0)

m_setssl_cafile — Установить SSL-файл CA (Certificate Authority) для проверки сертификата сервера

Описание

m_setssl_cafile ( resource $conn , string $cafile ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

cafile

Возвращаемые значения


Установить файлы ключа сертификата ключей и сертификаты, если сервер требует проверки сертификата клиента

  • « m_setssl_cafile
  • m_setssl »
  • PHP Manual
  • Функции MCVE
  • Установить файлы ключа сертификата ключей и сертификаты, если сервер требует проверки сертификата клиента

m_setssl_files

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_setssl_files — Установить файлы ключа сертификата ключей и сертификаты, если сервер требует проверки сертификата клиента

Описание

m_setssl_files ( resource $conn , string $sslkeyfile , string $sslcertfile ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

sslkeyfile

sslcertfile

Возвращаемые значения


Установить метод подключения на SSL

  • « m_setssl_files
  • m_settimeout »
  • PHP Manual
  • Функции MCVE
  • Установить метод подключения на SSL

m_setssl

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_setssl — Установить метод подключения на SSL

Описание

m_setssl ( resource $conn , string $host , int $port ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

host

port

Возвращаемые значения


Установить максимальное время транзакции (на каждую транзакцию)

  • « m_setssl
  • m_sslcert_gen_hash »
  • PHP Manual
  • Функции MCVE
  • Установить максимальное время транзакции (на каждую транзакцию)

m_settimeout

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_settimeout — Установить максимальное время транзакции (на каждую транзакцию)

Описание

m_settimeout ( resource $conn , int $seconds ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

seconds

Возвращаемые значения


Сгенерировать хеш для проверки сертификата SSL-клиента

  • « m_settimeout
  • m_transactionssent »
  • PHP Manual
  • Функции MCVE
  • Сгенерировать хеш для проверки сертификата SSL-клиента

m_sslcert_gen_hash

(PECL mcve >= 5.2.0)

m_sslcert_gen_hash — Сгенерировать хеш для проверки сертификата SSL-клиента

Описание

m_sslcert_gen_hash ( string $filename ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

filename

Возвращаемые значения


Проверить, свободен ли исходящий буфер

  • « m_sslcert_gen_hash
  • m_transinqueue »
  • PHP Manual
  • Функции MCVE
  • Проверить, свободен ли исходящий буфер

m_transactionssent

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_transactionssent — Проверить, свободен ли исходящий буфер

Описание

m_transactionssent ( resource $conn ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

Возвращаемые значения


Количество транзакций в очереди клиентов

  • « m_transactionssent
  • m_transkeyval »
  • PHP Manual
  • Функции MCVE
  • Количество транзакций в очереди клиентов

m_transinqueue

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_transinqueue — Количество транзакций в очереди клиентов

Описание

m_transinqueue ( resource $conn ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

Возвращаемые значения


Добавить пару ключ/значение в транзакцию. Заменяет устаревшую функцию transparam()

  • « m_transinqueue
  • m_transnew »
  • PHP Manual
  • Функции MCVE
  • Добавить пару ключ/значение в транзакцию. Заменяет устаревшую функцию transparam()

m_transkeyval

(PHP 5 >= 5.0.5 < 5.1.0, PECL mcve >= 1.0.0)

m_transkeyval — Добавить пару ключ/значение в транзакцию. Заменяет устаревшую функцию transparam()

Описание

m_transkeyval ( resource $conn , int $identifier , string $key , string $value ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

key

value

Возвращаемые значения


Начать новую транзакцию

  • « m_transkeyval
  • m_transsend »
  • PHP Manual
  • Функции MCVE
  • Начать новую транзакцию

m_transnew

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_transnew — Начать новую транзакцию

Описание

m_transnew ( resource $conn ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

Возвращаемые значения


Завершить и отправить транзакцию

  • « m_transnew
  • m_uwait »
  • PHP Manual
  • Функции MCVE
  • Завершить и отправить транзакцию

m_transsend

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_transsend — Завершить и отправить транзакцию

Описание

m_transsend ( resource $conn , int $identifier ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Подождать x микросекунд

  • « m_transsend
  • m_validateidentifier »
  • PHP Manual
  • Функции MCVE
  • Подождать x микросекунд

m_uwait

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_uwait — Подождать x микросекунд

Описание

m_uwait ( int $microsecs ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

microsecs

Возвращаемые значения


Проверить, действителен ли переданный идентификатор в какой-либо транзакции, в которую он передается

  • « m_uwait
  • m_verifyconnection »
  • PHP Manual
  • Функции MCVE
  • Проверить, действителен ли переданный идентификатор в какой-либо транзакции, в которую он передается

m_validateidentifier

(PHP 5 >= 5.0.5 < 5.1.0, PECL mcve >= 1.0.0)

m_validateidentifier — Проверить, действителен ли переданный идентификатор в какой-либо транзакции, в которую он передается

Описание

m_validateidentifier ( resource $conn , int $tf ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

tf

Возвращаемые значения


Установить, следует ли делать PING при подключении для проверки соединения

  • « m_validateidentifier
  • m_verifysslcert »
  • PHP Manual
  • Функции MCVE
  • Установить, следует ли делать PING при подключении для проверки соединения

m_verifyconnection

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_verifyconnection — Установить, следует ли делать PING при подключении для проверки соединения

Описание

m_verifyconnection ( resource $conn , int $tf ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

tf

Возвращаемые значения


Установить, следует ли проверять SSL-сертификат сервера

  • « m_verifyconnection
  • Криптографические расширения »
  • PHP Manual
  • Функции MCVE
  • Установить, следует ли проверять SSL-сертификат сервера

m_verifysslcert

(PHP 4 >= 4.3.9, PHP 5 < 5.1.0, PECL mcve >= 1.0.0)

m_verifysslcert — Установить, следует ли проверять SSL-сертификат сервера

Описание

m_verifysslcert ( resource $conn , int $tf ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

tf

Возвращаемые значения


Криптографические расширения

  • Crack — Cracklib
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Crack
  • CSPRNG
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции CSPRNG
  • Hash — Фреймворк хеш-кодов HASH
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • HashContext — Класс HashContext
    • Функции Hash
  • Mcrypt
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Шифры Mcrypt
    • Примеры
    • Mcrypt
  • Mhash
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции Mhash
  • OpenSSL
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Параметры ключа/сертификата
    • Проверка сертификатов
    • Функции OpenSSL
  • Хеширование паролей
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции хеширования паролей
  • Sodium
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Sodium


Cracklib

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Crack
    • crack_check — Проверяет взломостойкость переданного пароля
    • crack_closedict — Закрывает открытый ранее словарь CrackLib
    • crack_getlastmessage — Возвращает текстовое сообщение о последней проверке взломостойкости пароля
    • crack_opendict — Открывает новый словарь CrackLib


Введение

Эти функции позволяют использовать библиотеку CrackLib для тестирования взломостойкости пароля. Взломостойкость пароля определяется по его длине, использованию верхнего и нижнего регистра букв и по вхождению в специальный словарь библиотеки CrackLib. CrackLib также даст полезные диагностические сообщения, которые помогут повысить взломостойкость пароля.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.0.0.


Требования

Более подробную информацию о CrackLib вместе с самой библиотекой можно найти по адресу » http://sourceforge.net/projects/cracklib.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/crack.

Для использования этих функций, вы должны скомпилировать PHP с поддержкой расширения Crack, при помощи конфигурационной опции --with-crack[=DIR] .

Пользователям Windows достаточно подключить модуль php_crack.dll в файле php.ini. DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Расширение CrackLib определяет идентификатор ресурса словаря, полученного от функции crack_opendict().


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • Crack
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Этот пример показывает, как открыть словарь CrackLib, проверить переданный пароль, получить любые диагностические сообщения, и закрыть словарь.

Пример #1 Пример использования CrackLib

<?php
// Открываем словарь CrackLib
$dictionary = crack_opendict('/usr/local/lib/pw_dict')
     or die('Unable to open CrackLib dictionary');

// Выполняем проверку пароля
$check = crack_check($dictionary, 'gx9A2s0x');

// Получаем сообщения
$diag = crack_getlastmessage();
echo $diag; // 'strong password'

// Закрываем словарь
crack_closedict($dictionary);
?>

Замечание:

Если crack_check() возвращает TRUE, crack_getlastmessage() вернет 'strong password'.


Crack

Содержание

  • crack_check — Проверяет взломостойкость переданного пароля
  • crack_closedict — Закрывает открытый ранее словарь CrackLib
  • crack_getlastmessage — Возвращает текстовое сообщение о последней проверке взломостойкости пароля
  • crack_opendict — Открывает новый словарь CrackLib


Проверяет взломостойкость переданного пароля

  • « Crack
  • crack_closedict »
  • PHP Manual
  • Crack
  • Проверяет взломостойкость переданного пароля

crack_check

(PECL crack >= 0.1)

crack_check — Проверяет взломостойкость переданного пароля

Описание

crack_check ( resource $dictionary , string $password ) : bool
crack_check ( string $password , string $username = "" , string $gecos = "" , resource $dictionary = NULL ) : bool

Проверяет взломостойкость переданного пароля по специальному словарю. Альтернативный способ так же учитывает имя пользователя и информацию GECOS.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

dictionary

Идентификатор словаря cracklib. Если не указан, то используется последний открытый словарь.

password

Проверяемый пароль.

username

Имя пользователя используемое с этим паролем.

gecos

Информация GECOS связанная с аккаунтом пользователя.

Возвращаемые значения

Возвращает TRUE если пароль переданный в параметре password "сильный" (взломоустойчивый), иначе FALSE.

Список изменений

Версия | Описание
0.3 | Параметры username, gecos и dictionary добавлены в альтернативный способ вызова функции.


Закрывает открытый ранее словарь CrackLib

  • « crack_check
  • crack_getlastmessage »
  • PHP Manual
  • Crack
  • Закрывает открытый ранее словарь CrackLib

crack_closedict

(PECL crack >= 0.1)

crack_closedict — Закрывает открытый ранее словарь CrackLib

Описание

crack_closedict ([ resource $dictionary ] ) : bool

crack_closedict() закрывает словарь, указанный в параметре dictionary.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

dictionary

Словарь, который нужно закрыть. Если параметр не определен, то закрывается текущий словарь.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • crack_opendict() - Открывает новый словарь CrackLib


Возвращает текстовое сообщение о последней проверке взломостойкости пароля

  • « crack_closedict
  • crack_opendict »
  • PHP Manual
  • Crack
  • Возвращает текстовое сообщение о последней проверке взломостойкости пароля

crack_getlastmessage

(PECL crack >= 0.1)

crack_getlastmessage — Возвращает текстовое сообщение о последней проверке взломостойкости пароля

Описание

crack_getlastmessage ( void ) : string

crack_getlastmessage() возвращает текстовое сообщение о последней проверке взломостойкости пароля.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Возвращаемые значения

Сообщение о последней проверке или FALSE, если ранее не была запущена ни одна проверка взломостойкости пароля.

Возвращаемое сообщение соответствует одному из следующих:

  • it's WAY too short (слишком короткий)
  • it is too short (слишком короткий)
  • it does not contain enough DIFFERENT characters (содержит недостаточно различных символов)
  • it is all whitespace (все пробелы)
  • it is too simplistic/systematic (слишком упрощено/систематично)
  • it looks like a National Insurance number (похоже на номер национального страхования)
  • it is based on a dictionary word (основано на словарном слове)
  • it is based on a (reversed) dictionary word (основано на (перевернутом) словарном слове)
  • strong password (Надежный пароль)

Смотрите также

  • crack_check() - Проверяет взломостойкость переданного пароля


Открывает новый словарь CrackLib

  • « crack_getlastmessage
  • CSPRNG »
  • PHP Manual
  • Crack
  • Открывает новый словарь CrackLib

crack_opendict

(PECL crack >= 0.1)

crack_opendict — Открывает новый словарь CrackLib

Описание

crack_opendict ( string $dictionary ) : resource

crack_opendict() открывает словарь CrackLib, указанный в параметре dictionary для использования в функции crack_check().

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Замечание:

Единовременно может быть открыт только один словарь.

Список параметров

dictionary

Путь к словарю Cracklib.

Возвращаемые значения

Возвращает идентификатор ресурса словаря в случае успеха или FALSE в случае возникновения ошибки.

Смотрите также

  • crack_check() - Проверяет взломостойкость переданного пароля
  • crack_closedict() - Закрывает открытый ранее словарь CrackLib


CSPRNG

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции CSPRNG
    • random_bytes — Генерирует криптографически безопасные псевдослучайные байты
    • random_int — Генерирует криптографически безопасные псевдослучайные целые числа


Введение

API » Криптографически безопасного генератора псевдослучайных чисел (Cryptographically secure pseudorandom number generator, CSPRNG) предоставляет простой и надежный путь для создания криптографически сильных, случайных целых чисел и байт, пригодных к использованию в криптографических целях.

Существует, начиная с PHP 7.0.0, а для более ранних версий PHP >= 5.2.0 существует » пользовательская реализация.


  • « Типы ресурсов
  • Функции CSPRNG »
  • PHP Manual
  • CSPRNG
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции CSPRNG

Содержание

  • random_bytes — Генерирует криптографически безопасные псевдослучайные байты
  • random_int — Генерирует криптографически безопасные псевдослучайные целые числа


Генерирует криптографически безопасные псевдослучайные байты

  • « Функции CSPRNG
  • random_int »
  • PHP Manual
  • Функции CSPRNG
  • Генерирует криптографически безопасные псевдослучайные байты

random_bytes

(PHP 7)

random_bytes — Генерирует криптографически безопасные псевдослучайные байты

Описание

random_bytes ( int $length ) : string

Генерирует строку криптографически случайных байт произвольной длины, которую можно использовать в криптографических целях, например, для генерации соли, ключей или векторов инициализации.

Источник случайных величин используемых данной функцией:

  • В Windows всегда используется » CryptGenRandom() Начиная с PHP 7.2.0, вместо него всегда будет использоваться » CNG-API.
  • В Linux, если доступен, используется системный вызов » getrandom(2).
  • На других платформах используется /dev/urandom.
  • Если доступные источники случайных величин отсутствуют, то выбрасывается исключение Exception.

Замечание: Эта функция была добавлена в PHP 7.0, а для версий с 5.2 по 5.6 включительно доступна » пользовательская реализация.

Список параметров

length

Длина генерируемой строки в байтах.

Возвращаемые значения

Возвращает строку, состоящую из заданного количества криптографически безопасных байт.

Ошибки

  • Если подходящие источники случайных величин отсутствуют, то выбрасывается исключение Exception.
  • Если задан некорректный параметр, то выбрасывается исключение TypeError.
  • Если будет задана некорректная длина length, то будет выброшено исключение класса Error.

Примеры

Пример #1 Пример использования random_bytes()

<?php
$bytes = random_bytes(5);
var_dump(bin2hex($bytes));
?>

Результатом выполнения данного примера будет что-то подобное:

string(10) "385e33f741"

Смотрите также

  • random_int() - Генерирует криптографически безопасные псевдослучайные целые числа
  • openssl_random_pseudo_bytes() - Генерирует псевдослучайную последовательность байт
  • bin2hex() - Преобразует бинарные данные в шестнадцатеричное представление


Генерирует криптографически безопасные псевдослучайные целые числа

  • « random_bytes
  • Hash »
  • PHP Manual
  • Функции CSPRNG
  • Генерирует криптографически безопасные псевдослучайные целые числа

random_int

(PHP 7)

random_int — Генерирует криптографически безопасные псевдослучайные целые числа

Описание

random_int ( int $min , int $max ) : int

Генерирует криптографически случайные целые числа, пригодные для использования в криптографических целях, где случайность результата критична, например, для перемешивания колоды карт для игры в покер.

Источник случайных величин используемых данной функцией:

  • В Windows всегда используется » CryptGenRandom() Начиная с PHP 7.2.0, вместо него всегда будет использоваться » CNG-API.
  • В Linux, если доступен, используется системный вызов » getrandom(2).
  • На других платформах используется /dev/urandom.
  • Если доступные источники случайных величин отсутствуют, то выбрасывается исключение Exception.

Замечание: Эта функция была добавлена в PHP 7.0, а для версий с 5.2 по 5.6 включительно доступна » пользовательская реализация.

Список параметров

min

Нижняя граница диапазона, из которого будет выбрано случайное число. Должна быть больше или равна PHP_INT_MIN.

max

Верхняя граница диапазона, из которого будет выбрано случайное число. Должна быть меньше или равна PHP_INT_MAX.

Возвращаемые значения

Генерирует криптографически безопасное случайное целое число в диапазоне от min до max, включительно.

Ошибки

  • Если подходящие источники случайных величин отсутствуют, то выбрасывается исключение Exception.
  • Если задан некорректный параметр, то выбрасывается исключение TypeError.
  • Если задать max меньше чем min, то будет выброшено исключение класса Error.

Примеры

Пример #1 Пример random_int()

<?php
var_dump(random_int(100, 999));
var_dump(random_int(-1000, 0));
?>

Результатом выполнения данного примера будет что-то подобное:

int(248)
int(-898)

Смотрите также

  • random_bytes() - Генерирует криптографически безопасные псевдослучайные байты


Фреймворк хеш-кодов HASH

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • HashContext — Класс HashContext
    • HashContext::__construct — Закрытый конструктор для запрета непосредственного создания объекта
  • Функции Hash
    • hash_algos — Возвращает список зарегистрированных алгоритмов хеширования
    • hash_copy — Копирует контекст хеширования
    • hash_equals — Сравнение строк, нечувствительное к атакам по времени
    • hash_file — Генерация хеш-значения, используя содержимое заданного файла
    • hash_final — Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода
    • hash_hkdf — Формирования ключа HKDF для заданных входных данных
    • hash_hmac_algos — Возвращает список зарегистрированных алгоритмов хеширования, применимых для hash_hmac
    • hash_hmac_file — Генерация хеш-кода на основе ключа, используя метод HMAC и содержимое полученного файла
    • hash_hmac — Генерация хеш-кода на основе ключа, используя метод HMAC
    • hash_init — Инициализация инкрементального контекста хеширования
    • hash_pbkdf2 — Формирования ключа PBKDF2 для заданных входных данных
    • hash_update_file — Добавляет данные из файла в активный контекст хеширования
    • hash_update_stream — Добавляет данные из открытого потока в активный контекст хеширования
    • hash_update — Добавляет данные в активный контекст хеширования
    • hash — Генерирует хеш-код (дайджест сообщения)


Введение

Фреймворк хеширования сообщений. Позволяет обрабатывать сообщения любой длины с использованием различных алгоритмов хеширования прямым или инкрементальным способом.


Требования

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.


Установка

С версии PHP 5.1.2, расширение Hash по умолчанию поставляется и собирается вместе с PHP.

Это поведение легко отключить с помощью конфигурационной опции --disable-hash. Для более ранних версий нужно устанавливать » модуль PECL.

Начиная с PHP 7.4.0, расширение Hash включено в ядро PHP и является включенным по умолчанию.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Это расширение определяет ресурс контекста хеширования, возвращаемый hash_init().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

HASH_HMAC (integer)
Необязательный флаг для hash_init(). Указывает, что к текущему контексту хэширования должен быть применен алгоритм на основе ключей HMAC.


Класс HashContext

(PHP 7 >= 7.2.0)

Введение

Обзор классов

HashContext {
/* Методы */
private __construct ( void )
}

Содержание

  • HashContext::__construct — Закрытый конструктор для запрета непосредственного создания объекта


Закрытый конструктор для запрета непосредственного создания объекта

  • « HashContext
  • Функции Hash »
  • PHP Manual
  • HashContext
  • Закрытый конструктор для запрета непосредственного создания объекта

HashContext::__construct

(PHP 7 >= 7.2.0)

HashContext::__construct — Закрытый конструктор для запрета непосредственного создания объекта

Описание

private HashContext::__construct ( void )

Список параметров

У этой функции нет параметров.


Функции Hash

Содержание

  • hash_algos — Возвращает список зарегистрированных алгоритмов хеширования
  • hash_copy — Копирует контекст хеширования
  • hash_equals — Сравнение строк, нечувствительное к атакам по времени
  • hash_file — Генерация хеш-значения, используя содержимое заданного файла
  • hash_final — Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода
  • hash_hkdf — Формирования ключа HKDF для заданных входных данных
  • hash_hmac_algos — Возвращает список зарегистрированных алгоритмов хеширования, применимых для hash_hmac
  • hash_hmac_file — Генерация хеш-кода на основе ключа, используя метод HMAC и содержимое полученного файла
  • hash_hmac — Генерация хеш-кода на основе ключа, используя метод HMAC
  • hash_init — Инициализация инкрементального контекста хеширования
  • hash_pbkdf2 — Формирования ключа PBKDF2 для заданных входных данных
  • hash_update_file — Добавляет данные из файла в активный контекст хеширования
  • hash_update_stream — Добавляет данные из открытого потока в активный контекст хеширования
  • hash_update — Добавляет данные в активный контекст хеширования
  • hash — Генерирует хеш-код (дайджест сообщения)


Возвращает список зарегистрированных алгоритмов хеширования

  • « Функции Hash
  • hash_copy »
  • PHP Manual
  • Функции Hash
  • Возвращает список зарегистрированных алгоритмов хеширования

hash_algos

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_algos — Возвращает список зарегистрированных алгоритмов хеширования

Описание

hash_algos ( void ) : array

Возвращаемые значения

Возвращает массив, содержащий список поддерживаемых алгоритмов хеширования.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка для sha512/224, sha512/256, sha3-224, sha3-256, sha3-384 и sha3-512.
5.6.0 | Добавлена поддержка для gost-crypto. Реализуется хеш-функция GOST, использующая таблицы CryptoPro S-box, как указано в » RFC 4357, секция 11.2.
5.4.0 | Добавлена поддержка для joaat, fnv132 и fnv164. Убрана поддержка для Salsa10 и Salsa20
5.3.0 | Добавлена поддержка для md2, ripemd256, ripemd320, salsa10, salsa20, snefru256 и sha224

Примеры

Пример #1 Пример использования hash_algos()

Начиная с PHP 5.6.0, hash_algos() возвращает следующий список названий алгоритмов хеширования.

<?php
print_r(hash_algos());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => md2
    [1] => md4
    [2] => md5
    [3] => sha1
    [4] => sha224
    [5] => sha256
    [6] => sha384
    [7] => sha512
    [8] => ripemd128
    [9] => ripemd160
    [10] => ripemd256
    [11] => ripemd320
    [12] => whirlpool
    [13] => tiger128,3
    [14] => tiger160,3
    [15] => tiger192,3
    [16] => tiger128,4
    [17] => tiger160,4
    [18] => tiger192,4
    [19] => snefru
    [20] => snefru256
    [21] => gost
    [22] => gost-crypto
    [23] => adler32
    [24] => crc32
    [25] => crc32b
    [26] => fnv132
    [27] => fnv1a32
    [28] => fnv164
    [29] => fnv1a64
    [30] => joaat
    [31] => haval128,3
    [32] => haval160,3
    [33] => haval192,3
    [34] => haval224,3
    [35] => haval256,3
    [36] => haval128,4
    [37] => haval160,4
    [38] => haval192,4
    [39] => haval224,4
    [40] => haval256,4
    [41] => haval128,5
    [42] => haval160,5
    [43] => haval192,5
    [44] => haval224,5
    [45] => haval256,5
)

Смотрите также

  • hash_hmac_algos() - Возвращает список зарегистрированных алгоритмов хеширования, применимых для hash_hmac


Копирует контекст хеширования

  • « hash_algos
  • hash_equals »
  • PHP Manual
  • Функции Hash
  • Копирует контекст хеширования

hash_copy

(PHP 5 >= 5.3.0, PHP 7)

hash_copy — Копирует контекст хеширования

Описание

hash_copy ( HashContext $context ) : HashContext

Список параметров

context

Контекст хеширования, возвращенный hash_init().

Возвращаемые значения

Возвращает копию контекста хеширования.

Список изменений

Версия | Описание
7.2.0 | Принимает и возвращает HashContext, а не ресурс.

Примеры

Пример #1 Пример использования hash_copy()

<?php
$context = hash_init("md5");
hash_update($context, "data");

/* копия контекста для дальнейшего использования */
$copy_context = hash_copy($context);

echo hash_final($context), "\n";

hash_update($copy_context, "data");
echo hash_final($copy_context), "\n";
?>

Результат выполнения данного примера:

8d777f385d3dfec8815d20f7496026dc
511ae0b1c13f95e5f08f1a0dd3da3d93


Сравнение строк, нечувствительное к атакам по времени

  • « hash_copy
  • hash_file »
  • PHP Manual
  • Функции Hash
  • Сравнение строк, нечувствительное к атакам по времени

hash_equals

(PHP 5 >= 5.6.0, PHP 7)

hash_equals — Сравнение строк, нечувствительное к атакам по времени

Описание

hash_equals ( string $known_string , string $user_string ) : bool

Сравнивает две строки на идентичность, используя одинаковое время, вне зависимости, равны они или нет.

Эта функция может использоваться для предотвращения атак по времени; к примеру при проверке хешей паролей с помощью crypt().

Список параметров

known_string

Строка известной длины, с которой будет производиться сравнение.

user_string

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE если строки идентичны и FALSE если нет.

Ошибки

Выдает ошибку уровня E_WARNING, если один из параметров не является строкой.

Примеры

Пример #1 Пример использования hash_equals()

<?php
$expected  = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$correct   = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$incorrect = crypt('apple',  '$2a$07$usesomesillystringforsalt$');

var_dump(hash_equals($expected, $correct));
var_dump(hash_equals($expected, $incorrect));
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Примечания

Замечание:

Оба аргумента должны быть одной длины. Если переданы аргументы разной длины, то будет немедленно возвращено FALSE, и длина известной строки может быть определена в случае атаки по времени.

Замечание:

Крайне важно задавать строку с пользовательскими данными вторым аргументом, а не первым.


Генерация хеш-значения, используя содержимое заданного файла

  • « hash_equals
  • hash_final »
  • PHP Manual
  • Функции Hash
  • Генерация хеш-значения, используя содержимое заданного файла

hash_file

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_file — Генерация хеш-значения, используя содержимое заданного файла

Описание

hash_file ( string $algo , string $filename [, bool $raw_output = FALSE ] ) : string

Список параметров

algo

Название выбранного алгоритма хеширования (например, "md5", "sha256", "haval160,4" и т.д.)

filename

Путь или URL к файлу, который будет хеширован; Поддерживается интерфейс fopen.

raw_output

Когда установлено в TRUE, выводит необработанные двоичные данные. При FALSE выводит данные в шестнадцатеричной кодировке в нижнем регистре.

Возвращаемые значения

Возвращает строку, содержащую вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Если raw_output задан как TRUE, то возвращается хеш-код в виде бинарных данных.

Примеры

Пример #1 Использование hash_file()

<?php
/* Создаем файл, чтобы вычислить его хеш */
file_put_contents('example.txt', 'Наглый коричневый лисёнок прыгает вокруг ленивой собаки.');

echo hash_file('md5', 'example.txt');
?>

Результат выполнения данного примера:

bff8b4bc8b5c1c1d5b3211dfb21d1e76

Смотрите также

  • hash() - Генерирует хеш-код (дайджест сообщения)
  • hash_hmac_file() - Генерация хеш-кода на основе ключа, используя метод HMAC и содержимое полученного файла
  • hash_update_file() - Добавляет данные из файла в активный контекст хеширования
  • md5_file() - Возвращает MD5-хеш файла
  • sha1_file() - Возвращает SHA1-хеш файла


Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода

  • « hash_file
  • hash_hkdf »
  • PHP Manual
  • Функции Hash
  • Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода

hash_final

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_final — Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода

Описание

hash_final ( HashContext $context [, bool $raw_output = FALSE ] ) : string

Список параметров

context

Контекст хеширования, возвращенный hash_init().

raw_output

Когда установлено в TRUE, выводит необработанные двоичные данные. При FALSE выводит данные в шестнадцатеричной кодировке в нижнем регистре.

Возвращаемые значения

Возвращает строку содержащую вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Если raw_output задан как TRUE, то возвращается хеш-код в виде бинарных данных.

Список изменений

Версия | Описание
7.2.0 | Принимает HashContext, а не ресурс.

Примеры

Пример #1 Пример использования hash_final()

<?php
$ctx = hash_init('sha1');
hash_update($ctx, 'Наглый коричневый лисёнок прыгает вокруг ленивой собаки.');
echo hash_final($ctx);
?>

Результат выполнения данного примера:

dc495843a3a90b46c12e254102599571fa83a737

Смотрите также

  • hash_init() - Инициализация инкрементального контекста хеширования
  • hash_update() - Добавляет данные в активный контекст хеширования
  • hash_update_stream() - Добавляет данные из открытого потока в активный контекст хеширования
  • hash_update_file() - Добавляет данные из файла в активный контекст хеширования


Формирования ключа HKDF для заданных входных данных

  • « hash_final
  • hash_hmac_algos »
  • PHP Manual
  • Функции Hash
  • Формирования ключа HKDF для заданных входных данных

hash_hkdf

(PHP 7 >= 7.1.2)

hash_hkdf — Формирования ключа HKDF для заданных входных данных

Описание

hash_hkdf ( string $algo , string $ikm [, int $length = 0 [, string $info = '' [, string $salt = '' ]]] ) : string

Список параметров

algo

Имя выбранного хеширующего алгоритма (например, "sha256", "sha512", "haval160,4" и т.д.) Список поддерживаемых алгоритмов можно посмотреть в описании функции hash_algos().

Замечание:

Не криптографические хеширующие функции не допускаются.

ikm

Входные данные (необработанные бинарные данные). Не может быть пустым.

length

Выбранная длина вывода в байтах. Не может быть более чем в 255 раз больше размера выбранной хеширующей функции.

Если length установлено как 0, то вывод по длине будет равен размеру выбранной хеширующей функции.

info

Информационная строка, специфичная для приложения/контекста.

salt

Соль, используемая при формировании ключа.

Хотя и необязательно, но добавление случайной соли значительно улучшает силу HKDF.

Возвращаемые значения

Возвращает строку, содержащую необработанные бинарные данные, представляющие сформированный ключ или FALSE в случае неудачи.

Ошибки

Ошибка уровня E_WARNING будет сгенерирована в случае, если параметр ikm пуст, в параметре algo указан неизвестный либо не криптографический алгоритм, параметр length меньше 0 или очень большой (более чем в 255 раз больше размера хеш-функции).

Примеры

Пример #1 Пример использования hash_hkdf()

<?php
// Генерируем случайный ключ и соль для усиления процесса формирования.
$inputKey = random_bytes(32);
$salt = random_bytes(16);

// Формируем пару разных ключей, используя одни и те же входные данные.
$encryptionKey = hash_hkdf('sha256', $inputKey, 32, 'aes-256-encryption', $salt);
$authenticationKey = hash_hkdf('sha256', $inputKey, 32, 'sha-256-authentication', $salt);

var_dump($encryptionKey !== $authenticationKey); // bool(true)
?>

В примере выше создана пара разных ключей, подходящих для создания конструкции encrypt-then-HMAC, используя AES-256 и SHA-256 для кодирования и аутентификации соответственно.

Смотрите также

  • hash_pbkdf2() - Формирования ключа PBKDF2 для заданных входных данных
  • » RFC 5869
  • » пользовательская реализация


Возвращает список зарегистрированных алгоритмов хеширования, применимых для hash_hmac

  • « hash_hkdf
  • hash_hmac_file »
  • PHP Manual
  • Функции Hash
  • Возвращает список зарегистрированных алгоритмов хеширования, применимых для hash_hmac

hash_hmac_algos

(PHP 7 >= 7.2.0)

hash_hmac_algos — Возвращает список зарегистрированных алгоритмов хеширования, применимых для hash_hmac

Описание

hash_hmac_algos ( void ) : array

Возвращаемые значения

Возвращает индексированный массив со списком поддерживаемых функцией hash_hmac() алгоритмов хеширования.

Примеры

Пример #1 Пример использования hash_hmac_algos()

<?php
print_r(hash_hmac_algos());

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => md2
    [1] => md4
    [2] => md5
    [3] => sha1
    [4] => sha224
    [5] => sha256
    [6] => sha384
    [7] => sha512/224
    [8] => sha512/256
    [9] => sha512
    [10] => sha3-224
    [11] => sha3-256
    [12] => sha3-384
    [13] => sha3-512
    [14] => ripemd128
    [15] => ripemd160
    [16] => ripemd256
    [17] => ripemd320
    [18] => whirlpool
    [19] => tiger128,3
    [20] => tiger160,3
    [21] => tiger192,3
    [22] => tiger128,4
    [23] => tiger160,4
    [24] => tiger192,4
    [25] => snefru
    [26] => snefru256
    [27] => gost
    [28] => gost-crypto
    [29] => haval128,3
    [30] => haval160,3
    [31] => haval192,3
    [32] => haval224,3
    [33] => haval256,3
    [34] => haval128,4
    [35] => haval160,4
    [36] => haval192,4
    [37] => haval224,4
    [38] => haval256,4
    [39] => haval128,5
    [40] => haval160,5
    [41] => haval192,5
    [42] => haval224,5
    [43] => haval256,5
)

Примечания

Замечание:

До PHP 7.2.0 единственным вариантом получить список поддерживаемых алгоритмов было вызвать функцию hash_algos(), которая также возвращала алгоритмы не поддерживаемые hash_hmac().

Смотрите также

  • hash_hmac() - Генерация хеш-кода на основе ключа, используя метод HMAC
  • hash_algos() - Возвращает список зарегистрированных алгоритмов хеширования


Генерация хеш-кода на основе ключа, используя метод HMAC и содержимое полученного файла

  • « hash_hmac_algos
  • hash_hmac »
  • PHP Manual
  • Функции Hash
  • Генерация хеш-кода на основе ключа, используя метод HMAC и содержимое полученного файла

hash_hmac_file

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_hmac_file — Генерация хеш-кода на основе ключа, используя метод HMAC и содержимое полученного файла

Описание

hash_hmac_file ( string $algo , string $filename , string $key [, bool $raw_output = FALSE ] ) : string

Список параметров

algo

Имя выбранного алгоритма хеширования (например, "md5", "sha256", "haval160,4" и т.д.) Смотрите hash_hmac_algos() для получения списка поддерживаемых алгоритмов.

filename

URL расположения файла для хеширования; Поддерживаются обработчики fopen.

key

Общий секретный ключ, используемый для генерации HMAC хеш-кода.

raw_output

Когда установлено в TRUE, выводит необработанные двоичные данные. При FALSE выводит данные в шестнадцатеричной кодировке в нижнем регистре.

Возвращаемые значения

Возвращает строку содержащую вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Если raw_output задан как TRUE, то возвращается хеш-код в виде бинарных данных. Возвращает FALSE когда algo неизвестен или не является криптографической хеш-функцией, или если файл filename недоступен для чтения.

Список изменений

Версия | Описание
7.2.0 | Запрещено использование некриптографических хеш-функций (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat).

Примеры

Пример #1 Пример использования hash_hmac_file()

<?php
/* Создаем файл, чтобы вычислить его хеш */
file_put_contents('example.txt', 'Наглый коричневый лисёнок прыгает вокруг ленивой собаки.');

echo hash_hmac_file('md5', 'example.txt', 'secret');
?>

Результат выполнения данного примера:

1855b385e0caae2e41036706d3b7bd32

Смотрите также

  • hash_hmac_algos() - Возвращает список зарегистрированных алгоритмов хеширования, применимых для hash_hmac
  • hash_hmac() - Генерация хеш-кода на основе ключа, используя метод HMAC
  • hash_file() - Генерация хеш-значения, используя содержимое заданного файла


Генерация хеш-кода на основе ключа, используя метод HMAC

  • « hash_hmac_file
  • hash_init »
  • PHP Manual
  • Функции Hash
  • Генерация хеш-кода на основе ключа, используя метод HMAC

hash_hmac

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_hmac — Генерация хеш-кода на основе ключа, используя метод HMAC

Описание

hash_hmac ( string $algo , string $data , string $key [, bool $raw_output = FALSE ] ) : string

Список параметров

algo

Имя выбранного алгоритма хеширования (например, "md5", "sha256", "haval160,4" и т.д.) Смотрите hash_hmac_algos() для получения списка поддерживаемых алгоритмов.

data

Сообщение для хеширования.

key

Общий секретный ключ, используемый для генерации HMAC хеш-кода.

raw_output

Когда установлено в TRUE, выводит необработанные двоичные данные. При FALSE выводит данные в шестнадцатеричной кодировке в нижнем регистре.

Возвращаемые значения

Возвращает строку содержащую вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Если raw_output задан как TRUE, то возвращается хеш-код в виде бинарных данных. Возвращает FALSE, если algo неизвестен или не является криптографической хеш-функцией.

Список изменений

Версия | Описание
7.2.0 | Запрещено использование некриптографических хеш-функций (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat).

Примеры

Пример #1 Пример использования hash_hmac()

<?php
echo hash_hmac('ripemd160', 'Наглый коричневый лисёнок прыгает вокруг ленивой собаки.', 'secret');
?>

Результат выполнения данного примера:

b95d4abec7c27ec87fb54da1621f9942948879e4

Смотрите также

  • hash() - Генерирует хеш-код (дайджест сообщения)
  • hash_hmac_algos() - Возвращает список зарегистрированных алгоритмов хеширования, применимых для hash_hmac
  • hash_init() - Инициализация инкрементального контекста хеширования
  • hash_hmac_file() - Генерация хеш-кода на основе ключа, используя метод HMAC и содержимое полученного файла


Инициализация инкрементального контекста хеширования

  • « hash_hmac
  • hash_pbkdf2 »
  • PHP Manual
  • Функции Hash
  • Инициализация инкрементального контекста хеширования

hash_init

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_init — Инициализация инкрементального контекста хеширования

Описание

hash_init ( string $algo [, int $options = 0 [, string $key = NULL ]] ) : HashContext

Список параметров

algo

Имя выбранного алгоритма хеширования (например, "md5", "sha256", "haval160,4" и т.д.). Весь список поддерживаемых алгоритмов можно посмотреть в описании функции hash_algos().

options

Необязательные настройки для генерации хеша, в настоящее время поддерживается только один вариант: HASH_HMAC. При этом параметр key должен быть указан.

key

Если HASH_HMAC указан в параметре options, то в этом параметре нужно предоставить общий секретный ключ, который будет использоваться с методом хеширования HMAC.

Возвращаемые значения

Возвращает контекст хеширования для использования в функциях hash_update(), hash_update_stream(), hash_update_file() и hash_final().

Список изменений

Версия | Описание
7.2.0 | Запрещено использование некриптографических хеш-функций (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) с константой HASH_HMAC.
7.2.0 | Возвращает HashContext, а не ресурс.

Примеры

Пример #1 Пример инкриментального хеширования

<?php
$ctx = hash_init('md5');
hash_update($ctx, 'Наглый коричневый лисёнок ');
hash_update($ctx, 'прыгает вокруг ленивой собаки.');
echo hash_final($ctx);
?>

Результат выполнения данного примера:

bff8b4bc8b5c1c1d5b3211dfb21d1e76

Смотрите также

  • hash() - Генерирует хеш-код (дайджест сообщения)
  • hash_algos() - Возвращает список зарегистрированных алгоритмов хеширования
  • hash_file() - Генерация хеш-значения, используя содержимое заданного файла
  • hash_hmac() - Генерация хеш-кода на основе ключа, используя метод HMAC
  • hash_hmac_file() - Генерация хеш-кода на основе ключа, используя метод HMAC и содержимое полученного файла


Формирования ключа PBKDF2 для заданных входных данных

  • « hash_init
  • hash_update_file »
  • PHP Manual
  • Функции Hash
  • Формирования ключа PBKDF2 для заданных входных данных

hash_pbkdf2

(PHP 5 >= 5.5.0, PHP 7)

hash_pbkdf2 — Формирования ключа PBKDF2 для заданных входных данных

Описание

hash_pbkdf2 ( string $algo , string $password , string $salt , int $iterations [, int $length = 0 [, bool $raw_output = FALSE ]] ) : string

Список параметров

algo

Имя выбранного хеширующего алгоритма (например, md5, sha256, haval160,4 и т.д.) Список поддерживаемых алгоритмов можно посмотреть в описании функции hash_algos().

password

Пароль, используемый для формирования.

salt

Соль, используемая при формировании ключа. Значение необходимо генерировать случайным образом.

iterations

Количество итераций для формирования ключа.

length

Длина генерируемой строки. Если параметр raw_output задан как TRUE, то этот параметр равен количеству байт в генерируемом ключе. Если raw_output установлен как FALSE, то длина ключа в байтах будет в два раза меньше, так как каждый байт ключа будет возвращен в виде двух символов шестнадцетиричной системы (0-F).

Если задано как 0, то используется весь вывод заданного алгоритма.

raw_output

Если установлено TRUE, то вывод будет представлять из себя необработанные бинарные данные, а если FALSE, то вывод будет представлен в виде строки шестнадцетиричных цифр в нижнем регистре.

Возвращаемые значения

Возвращаемая строка содержит сформированный ключ в виде строки шестнадцетиричных чисел в нижнем регистре. Но если параметр raw_output установлен как TRUE, то будут возвращены сырые бинарные данные.

Ошибки

Ошибка уровня E_WARNING будет вызвана если заданный алгоритм некорректен, параметр iterations меньше или равен 0, параметр length меньше чем 0 или если salt очень длинный (больше чем INT_MAX - 4).

Список изменений

Версия | Описание
7.2.0 | Запрещено использование некриптографических функций (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat).

Примеры

Пример #1 Пример простого использования hash_pbkdf2()

<?php
$password = "password";
$iterations = 1000;

// Создаем случайный инициализирующий вектор
// с помощью openssl_random_pseudo_bytes() или другого источника случайных данных
$salt = openssl_random_pseudo_bytes(16);

$hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 20);
echo $hash;
?>

Результатом выполнения данного примера будет что-то подобное:

120fb6cffcf8b32c43e7

Примечания

Предостережение

Метод PBKDF2 может быть использован для хеширования паролей в целях их хранения. Однако стоит помнить, что для этих целей гораздо лучше использовать password_hash() или crypt() с CRYPT_BLOWFISH.

Смотрите также

  • crypt() - Необратимое хеширование строки
  • password_hash() - Создает хеш пароля
  • hash() - Генерирует хеш-код (дайджест сообщения)
  • hash_algos() - Возвращает список зарегистрированных алгоритмов хеширования
  • hash_init() - Инициализация инкрементального контекста хеширования
  • hash_hmac() - Генерация хеш-кода на основе ключа, используя метод HMAC
  • hash_hmac_file() - Генерация хеш-кода на основе ключа, используя метод HMAC и содержимое полученного файла
  • openssl_pbkdf2() - Генерирует строки PKCS5 v2 PBKDF2


Добавляет данные из файла в активный контекст хеширования

  • « hash_pbkdf2
  • hash_update_stream »
  • PHP Manual
  • Функции Hash
  • Добавляет данные из файла в активный контекст хеширования

hash_update_file

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_update_file — Добавляет данные из файла в активный контекст хеширования

Описание

hash_update_file ( HashContext $hcontext , string $filename [, resource $scontext = NULL ] ) : bool

Список параметров

hcontext

Контекст хеширования, возвращенный hash_init().

filename

Имя или URL файла для хеширования; Поддерживаются обработчики fopen.

scontext

Контекст потока, возвращенный stream_context_create().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.2.0 | Принимает HashContext, а не ресурс.

Смотрите также

  • hash_init() - Инициализация инкрементального контекста хеширования
  • hash_update() - Добавляет данные в активный контекст хеширования
  • hash_update_stream() - Добавляет данные из открытого потока в активный контекст хеширования
  • hash_final() - Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода
  • hash() - Генерирует хеш-код (дайджест сообщения)
  • hash_file() - Генерация хеш-значения, используя содержимое заданного файла


Добавляет данные из открытого потока в активный контекст хеширования

  • « hash_update_file
  • hash_update »
  • PHP Manual
  • Функции Hash
  • Добавляет данные из открытого потока в активный контекст хеширования

hash_update_stream

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_update_stream — Добавляет данные из открытого потока в активный контекст хеширования

Описание

hash_update_stream ( HashContext $context , resource $handle [, int $length = -1 ] ) : int

Список параметров

context

Контекст хеширования, возвращаемый hash_init().

handle

Дескриптор открытого файла, возвращаемый любой функцией создания потока.

length

Максимальное число символов для копирования из handle в контекст хеширования.

Возвращаемые значения

Фактическое количество байт, добавленное в контекст хеширования из handle.

Список изменений

Версия | Описание
7.2.0 | Принимает HashContext, а не ресурс.

Примеры

Пример #1 Пример использования hash_update_stream()

<?php
$fp = tmpfile();
fwrite($fp, 'Наглый коричневый лисёнок прыгает вокруг ленивой собаки.');
rewind($fp);

$ctx = hash_init('md5');
hash_update_stream($ctx, $fp);
echo hash_final($ctx);
?>

Результат выполнения данного примера:

bff8b4bc8b5c1c1d5b3211dfb21d1e76

Смотрите также

  • hash_init() - Инициализация инкрементального контекста хеширования
  • hash_update() - Добавляет данные в активный контекст хеширования
  • hash_final() - Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода
  • hash() - Генерирует хеш-код (дайджест сообщения)
  • hash_file() - Генерация хеш-значения, используя содержимое заданного файла


Добавляет данные в активный контекст хеширования

  • « hash_update_stream
  • hash »
  • PHP Manual
  • Функции Hash
  • Добавляет данные в активный контекст хеширования

hash_update

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_update — Добавляет данные в активный контекст хеширования

Описание

hash_update ( HashContext $context , string $data ) : bool

Список параметров

context

Контекст хеширования, возвращаемый hash_init().

data

Сообщение, которое должно быть включено в хеш.

Возвращаемые значения

Возвращает TRUE.

Список изменений

Версия | Описание
7.2.0 | Принимает HashContext, а не ресурс.

Смотрите также

  • hash_init() - Инициализация инкрементального контекста хеширования
  • hash_update_file() - Добавляет данные из файла в активный контекст хеширования
  • hash_update_stream() - Добавляет данные из открытого потока в активный контекст хеширования
  • hash_final() - Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода


Генерирует хеш-код (дайджест сообщения)

  • « hash_update
  • Mcrypt »
  • PHP Manual
  • Функции Hash
  • Генерирует хеш-код (дайджест сообщения)

hash

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash — Генерирует хеш-код (дайджест сообщения)

Описание

hash ( string $algo , string $data [, bool $raw_output = FALSE ] ) : string

Список параметров

algo

Имя выбранного алгоритма хеширования (например, "md5", "sha256", "haval160,4" и т.д.)

data

Сообщение для хеширования.

raw_output

Когда установлено в TRUE, выводит необработанные двоичные данные. При FALSE выводит данные в шестнадцатеричной кодировке в нижнем регистре.

Возвращаемые значения

Возвращает строку содержащую вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Если raw_output задан как TRUE, то возвращается хеш-код в виде бинарных данных.

Список изменений

Версия | Описание
5.4.0 | Алгоритм Tiger теперь использует порядок байтов от старшего к младшему (big-endian). Смотрите пример ниже.

Примеры

Пример #1 Пример использования hash()

<?php
echo hash('ripemd160', 'Наглый коричневый лисёнок прыгает вокруг ленивой собаки.');
?>

Результат выполнения данного примера:

8817ca339f7f902ad3fb456150a1bb9b4cb5dde9

Пример #2 Вычесление хешей Tiger с PHP 5.4 и выше.

<?php
function old_tiger($data = "", $width=192, $rounds = 3) {
    return substr(
        implode(
            array_map(
                function ($h) {
                    return str_pad(bin2hex(strrev($h)), 16, "0");
                },
                str_split(hash("tiger192,$rounds", $data, true), 8)
            )
        ),
        0, 48-(192-$width)/4
    );
}
echo hash('tiger192,3', 'a-string'), PHP_EOL;
echo old_tiger('a-string'), PHP_EOL;
?>

Результат выполнения данного примера в PHP 5.3:

146a7492719b3564094efe7abbd40a7416fd900179d02773
64359b7192746a14740ad4bb7afe4e097327d0790190fd16

Результат выполнения данного примера в PHP 5.4:

64359b7192746a14740ad4bb7afe4e097327d0790190fd16
146a7492719b3564094efe7abbd40a7416fd900179d02773

Смотрите также

  • hash_file() - Генерация хеш-значения, используя содержимое заданного файла
  • hash_hmac() - Генерация хеш-кода на основе ключа, используя метод HMAC
  • hash_init() - Инициализация инкрементального контекста хеширования
  • md5() - Возвращает MD5-хеш строки
  • sha1() - Возвращает SHA1-хеш строки


Mcrypt

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Шифры Mcrypt
  • Примеры
  • Mcrypt
    • mcrypt_cbc — Шифрует/дешифрует данные в режиме CBC
    • mcrypt_cfb — Кодирует/раскодирует данные в режиме CFB
    • mcrypt_create_iv — Создать инициализирующий вектор (Initialization Vector или IV) из случайного источника
    • mcrypt_decrypt — Расшифровывает данные с заданными параметрами
    • mcrypt_ecb — Устарело: Шифрует и дешифрует данные в режиме 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_mode — Проверяет, используется ли блочный режим
    • mcrypt_enc_is_block_algorithm — Проверяет, использует ли алгоритм блочные режимы
    • mcrypt_enc_is_block_mode — Проверяет, возвращает ли текущий режим блоки
    • mcrypt_enc_self_test — Запуск самопроверки открытого модуля
    • mcrypt_encrypt — Шифрует текст с заданными параметрами
    • mcrypt_generic_deinit — Эта функция деинициализирует модуль шифрования
    • mcrypt_generic_end — Функция прерывает шифрование
    • mcrypt_generic_init — Функция инициализирует все буферы, необходимые для шифрования
    • mcrypt_generic — Функция шифрует данные
    • 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
    • mcrypt_module_get_algo_block_size — Возвращает размер блока указанного алгоритма
    • mcrypt_module_get_algo_key_size — Возвращает максимальный размер ключа открытого режима
    • mcrypt_module_get_supported_key_sizes — Возвращает список поддерживаемых размеров ключей для открытого алгоритма
    • mcrypt_module_is_block_algorithm_mode — Проверяет, является ли заданный модуль блочным или нет
    • mcrypt_module_is_block_algorithm — Проверяет, является ли заданный алгоритм блочным или нет
    • mcrypt_module_is_block_mode — Проверить, возвращает ли указанный режим данные блоками или нет
    • mcrypt_module_open — Открывает модуль шифрования с использованием указанных алгоритма и режима
    • mcrypt_module_self_test — Функция запускает самопроверку указанного модуля
    • mcrypt_ofb — Шифрует и дешифрует данные в режиме OFB
    • mdecrypt_generic — Дешифровка данных


Введение

Внимание

Эта функциональность объявлена УСТАРЕВШЕЙ в PHP 7.1.0 и УДАЛЕНА в PHP 7.2.0.

Есть следующие альтернативы:

  • Sodium (доступен с PHP 7.2.0)
  • OpenSSL

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 7.2.0.

Это интерфейс к библиотеке mcrypt, которая поддерживает широкий спектр блочных алгоритмов, таких как DES, TripleDES, Blowfish (по умолчанию), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 и GOST с режимами шифрования CBC, OFB, CFB и ECB. Дополнительно поддерживаются RC6 и IDEA, которые являются "не свободными". CFB/OFB по умолчанию 8-битный.


Требования

Эти функции работают используя » mcrypt. Для того, чтобы использовать их, загрузите libmcrypt-x.x.tar.gz из » http://mcrypt.sourceforge.net/ и следуйте инструкциям по установке.

Вам понадобится libmcrypt версии 2.5.6 или выше.

Пользователи Windows могут найти библиотеку в бинарном релизе PHP 5.2 для Windows. Бинарный релиз PHP 5.3 для Windows использует статическую версию библиотеки MCrypt, DLL-файл не нужен.

Если вы используете libmcrypt 2.4.x или выше, поддерживаются следующие дополнительные блочные алгоритмы: CAST, LOKI97, RIJNDAEL, SAFERPLUS, SERPENT, и следующие шифры потоков: ENIGMA (crypt), PANAMA, RC4 and WAKE. С libmcrypt 2.4.x или выше также доступен другой режим шифрования: nOFB.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/mcrypt.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Mcrypt
Имя | По умолчанию | Место изменения | Список изменений
mcrypt.algorithms_dir | NULL | PHP_INI_ALL |
mcrypt.modes_dir | NULL | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

mcrypt.algorithms_dir string

Директория, содержащая алгоритмы. По умолчанию соответствует директориям, скомпилированным вместе с libmcrypt, обычно /usr/local/lib/libmcrypt. См. mcrypt_list_algorithms() для дополнительной информации.

mcrypt.modes_dir string

Директория, содержащая режимы. По умолчанию соответствует директориям, скомпилированным вместе с libmcrypt, обычно /usr/local/lib/libmcrypt. См. mcrypt_list_modes() для дополнительной информации.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

mcrypt_module_open() возвращает дескриптор шифрования.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Mcrypt может работать в четырех режимах блочного шифрования (CBC, OFB, CFB и ECB). Если слинковано с libmcrypt-2.4.x или выше, функции также могут работать в режимах nOFB и STREAM. Ниже вы найдете список всех поддерживаемых режимов шифрования вместе с константами, которые определены для них. Более подробно читайте Applied Cryptography by Schneier (ISBN 0-471-11709-9).

  • MCRYPT_MODE_ECB (electronic codebook) - это режим блочного шифрования, который в целом непригоден для большинства задач. Использование этого режима не рекомендовано.
  • MCRYPT_MODE_CBC (cipher block chaining) - это режим блочного шифрования, который немногим лучше ECB.
  • MCRYPT_MODE_CFB (cipher feedback, в 8-битном режиме) - это режим потокового шифрования. Рекомендуется использовать режим NCFB, а не CFB.
  • MCRYPT_MODE_OFB (output feedback, в 8-битном режиме) - это режим потокового шифрования сравнимый с CFB, но может использоваться в приложениях, нетерпимых к распространению ошибок. Рекомендуется использовать режим NOFB вместо OFB.
  • MCRYPT_MODE_NOFB (output feedback, в N-битном режиме) - сравним с режимом OFB, но оперирует полным размером блока алгоритма.
  • MCRYPT_MODE_STREAM - это дополнительный режим для подключения некоторых потоковых алгоритмов, таких как "WAKE" или "RC4".

Mcrypt поддерживает некоторые другие режимы работы для которых нет предопределенных констант. Их можно задавать с помощью строки вместо константы.

  • "ctr" (counter mode) - режим потокового шифрования.
  • "ncfb" (cipher feedback, в N-битном режиме) - сравним с режимом CFB, но оперирует полным размером блока алгоритма.

Некоторые другие режимы и константы генераторов случайных чисел:

MCRYPT_ENCRYPT (integer)
MCRYPT_DECRYPT (integer)
MCRYPT_DEV_RANDOM (integer)
MCRYPT_DEV_URANDOM (integer)
MCRYPT_RAND (integer)


Шифры Mcrypt

Здесь перечислены шифры, поддерживаемые модулем mcrypt. Для полного списка поддерживаемых шифров смотрите список в конце файла mcrypt.h. Главное правило API mcrypt-2.2.x API состоит в том, что доступ к шифрам из PHP осуществляется путем использования констант MCRYPT_имяШифра. Эти константы также работают с AI libmcrypt-2.4.x и libmcrypt-2.5.x, но также можно задать шифр по имени с помощью функции mcrypt_module_open().

  • MCRYPT_3DES
  • MCRYPT_ARCFOUR_IV (только для libmcrypt > 2.4.x)
  • MCRYPT_ARCFOUR (только для libmcrypt > 2.4.x)
  • MCRYPT_BLOWFISH
  • MCRYPT_CAST_128
  • MCRYPT_CAST_256
  • MCRYPT_CRYPT
  • MCRYPT_DES
  • MCRYPT_DES_COMPAT (только для libmcrypt 2.2.x)
  • MCRYPT_ENIGMA (только для libmcrypt > 2.4.x, псевдоним для MCRYPT_CRYPT)
  • MCRYPT_GOST
  • MCRYPT_IDEA (не свободный)
  • MCRYPT_LOKI97 (только для libmcrypt > 2.4.x)
  • MCRYPT_MARS (только для libmcrypt > 2.4.x, не свободный)
  • MCRYPT_PANAMA (только для libmcrypt > 2.4.x)
  • MCRYPT_RIJNDAEL_128 (только для libmcrypt > 2.4.x)
  • MCRYPT_RIJNDAEL_192 (только для libmcrypt > 2.4.x)
  • MCRYPT_RIJNDAEL_256 (только для libmcrypt > 2.4.x)
  • MCRYPT_RC2
  • MCRYPT_RC4 (только для libmcrypt 2.2.x)
  • MCRYPT_RC6 (только для libmcrypt > 2.4.x)
  • MCRYPT_RC6_128 (только для libmcrypt 2.2.x)
  • MCRYPT_RC6_192 (только для libmcrypt 2.2.x)
  • MCRYPT_RC6_256 (только для libmcrypt 2.2.x)
  • MCRYPT_SAFER64
  • MCRYPT_SAFER128
  • MCRYPT_SAFERPLUS (только для libmcrypt > 2.4.x)
  • MCRYPT_SERPENT(только для libmcrypt > 2.4.x)
  • MCRYPT_SERPENT_128 (только для libmcrypt 2.2.x)
  • MCRYPT_SERPENT_192 (только для libmcrypt 2.2.x)
  • MCRYPT_SERPENT_256 (только для libmcrypt 2.2.x)
  • MCRYPT_SKIPJACK (только для libmcrypt > 2.4.x)
  • MCRYPT_TEAN (только для libmcrypt 2.2.x)
  • MCRYPT_THREEWAY
  • MCRYPT_TRIPLEDES (только для libmcrypt > 2.4.x)
  • MCRYPT_TWOFISH (для старых версий mcrypt 2.x или mcrypt > 2.4.x )
  • MCRYPT_TWOFISH128 (TWOFISHxxx доступен в новых версиях 2.x, но не в 2.4.x)
  • MCRYPT_TWOFISH192
  • MCRYPT_TWOFISH256
  • MCRYPT_WAKE (только для libmcrypt > 2.4.x)
  • MCRYPT_XTEA (только для libmcrypt > 2.4.x)

Вы должны (в режимах CFB и OFB) или можете (в режиме CBC) предоставить инициализирующий вектор (IV) для выбранной функции шифрования. IV должен быть уникальным и должен быть одинаковым для шифрования и дешифрования. Для данных, которые хранятся в шифрованном виде вы можете получить вывод функции для индекса, под которым данные были сохранены (например, MD5 хеш имени файла). Или вы можете передать IV вместе с зашифрованными данными (смотрите раздел 9.3 Applied Cryptography by Schneier (ISBN 0-471-11709-9)).


Примеры

Mcrypt можно использовать для шифрования и дешифрования с использованием вышеупомянутых шифров. Если модуль собран с libmcrypt-2.2.x, четыре важных команды mcrypt (mcrypt_cfb(), mcrypt_cbc(), mcrypt_ecb() и mcrypt_ofb()) могут работать в обоих режимах, именуемых MCRYPT_ENCRYPT и MCRYPT_DECRYPT соответственно.

Если модуль собран с libmcrypt 2.4.x или 2.5.x, эти функции также будут доступны, но рекомендуется использовать более продвинутые функции.

Пример #1 Шифрование с помощью AES с 256-битным ключем для версии 2.4.x и выше в режиме CBC

<?php
    $key = hash('sha256', 'this is a secret key', true);
    $input = "Let us meet at 9 o'clock at the secret place.";

    $td = mcrypt_module_open('rijndael-128', '', 'cbc', '');
    $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_URANDOM);
    mcrypt_generic_init($td, $key, $iv);
    $encrypted_data = mcrypt_generic($td, $input);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
?>
Этот пример вернет зашифрованные данные в строке $encrypted_data. Более полные примеры смотрите в описании функции mcrypt_module_open().


Mcrypt

Содержание

  • mcrypt_cbc — Шифрует/дешифрует данные в режиме CBC
  • mcrypt_cfb — Кодирует/раскодирует данные в режиме CFB
  • mcrypt_create_iv — Создать инициализирующий вектор (Initialization Vector или IV) из случайного источника
  • mcrypt_decrypt — Расшифровывает данные с заданными параметрами
  • mcrypt_ecb — Устарело: Шифрует и дешифрует данные в режиме 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_mode — Проверяет, используется ли блочный режим
  • mcrypt_enc_is_block_algorithm — Проверяет, использует ли алгоритм блочные режимы
  • mcrypt_enc_is_block_mode — Проверяет, возвращает ли текущий режим блоки
  • mcrypt_enc_self_test — Запуск самопроверки открытого модуля
  • mcrypt_encrypt — Шифрует текст с заданными параметрами
  • mcrypt_generic_deinit — Эта функция деинициализирует модуль шифрования
  • mcrypt_generic_end — Функция прерывает шифрование
  • mcrypt_generic_init — Функция инициализирует все буферы, необходимые для шифрования
  • mcrypt_generic — Функция шифрует данные
  • 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
  • mcrypt_module_get_algo_block_size — Возвращает размер блока указанного алгоритма
  • mcrypt_module_get_algo_key_size — Возвращает максимальный размер ключа открытого режима
  • mcrypt_module_get_supported_key_sizes — Возвращает список поддерживаемых размеров ключей для открытого алгоритма
  • mcrypt_module_is_block_algorithm_mode — Проверяет, является ли заданный модуль блочным или нет
  • mcrypt_module_is_block_algorithm — Проверяет, является ли заданный алгоритм блочным или нет
  • mcrypt_module_is_block_mode — Проверить, возвращает ли указанный режим данные блоками или нет
  • mcrypt_module_open — Открывает модуль шифрования с использованием указанных алгоритма и режима
  • mcrypt_module_self_test — Функция запускает самопроверку указанного модуля
  • mcrypt_ofb — Шифрует и дешифрует данные в режиме OFB
  • mdecrypt_generic — Дешифровка данных


Шифрует/дешифрует данные в режиме CBC

  • « Mcrypt
  • mcrypt_cfb »
  • PHP Manual
  • Mcrypt
  • Шифрует/дешифрует данные в режиме CBC

mcrypt_cbc

(PHP 4, PHP 5)

mcrypt_cbc — Шифрует/дешифрует данные в режиме CBC

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.5.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • mcrypt_decrypt()
  • mcrypt_encrypt()

Описание

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 ] ) : string

Первый прототип работает при связке с libmcrypt 2.2.x, второй - при связке с libmcrypt 2.4.x или выше. Параметр mode должен быть либо MCRYPT_ENCRYPT, либо MCRYPT_DECRYPT.


Кодирует/раскодирует данные в режиме CFB

  • « mcrypt_cbc
  • mcrypt_create_iv »
  • PHP Manual
  • Mcrypt
  • Кодирует/раскодирует данные в режиме CFB

mcrypt_cfb

(PHP 4, PHP 5)

mcrypt_cfb — Кодирует/раскодирует данные в режиме CFB

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.5.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • mcrypt_decrypt()
  • mcrypt_encrypt()

Описание

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 ] ) : string

Первый прототип был собран с libmcrypt 2.2.x, а второй с libmcrypt 2.4.x или выше. Параметр mode должен быть задан как MCRYPT_ENCRYPT или MCRYPT_DECRYPT.


Создать инициализирующий вектор (Initialization Vector или IV) из случайного источника

  • « mcrypt_cfb
  • mcrypt_decrypt »
  • PHP Manual
  • Mcrypt
  • Создать инициализирующий вектор (Initialization Vector или IV) из случайного источника

mcrypt_create_iv

(PHP 4, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_create_iv — Создать инициализирующий вектор (Initialization Vector или IV) из случайного источника

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 7.1.0 и УДАЛЕНА в PHP 7.2.0.

Есть следующие альтернативы:

  • random_bytes()

Описание

mcrypt_create_iv ( int $size [, int $source = MCRYPT_DEV_URANDOM ] ) : string

Создает инициализирующий вектор из случайного источника.

IV предназначен только для задания альтернативного начального случайного числа для процедур шифрования. IV не обязательно должен быть секретным, хотя это и желательно. Вы даже можете отправить его вместе со своим зашифрованным текстом, не теряя при этом в безопасности.

Список параметров

size

Размер IV.

source

Источник IV. Источним может быть задан одной из констант: MCRYPT_RAND (системный генератор случайных чисел), MCRYPT_DEV_RANDOM (читает данные из /dev/random) или MCRYPT_DEV_URANDOM (читает данные из /dev/urandom). До версии 5.3.0, на Windows поддерживался только MCRYPT_RAND.

Обратите внимание, что до PHP 5.6.0 значением по умолчанию было MCRYPT_DEV_RANDOM.

Замечание: Обратите внимание, что MCRYPT_DEV_RANDOM может блокироваться до появления достаточной энтропии.

Возвращаемые значения

Возвращает инициализирующий вектор или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.6.0 | Теперь MCRYPT_DEV_URANDOM является значением по умолчанию для source.
5.3.0 | MCRYPT_DEV_RANDOM и MCRYPT_DEV_URANDOM теперь доступны для Windows.
5.3.0 | Теперь не нужно предварительно запускать srand(), так как это происходит автоматически.

Примеры

Пример #1 Пример использования mcrypt_create_iv()

<?php
    $size = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB);
    $iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);
?>

Смотрите также

  • » http://www.ciphersbyritter.com/GLOSSARY.HTM#IV
  • » http://www.quadibloc.com/crypto/co0409.htm
  • Applied Cryptography by Schneier (ISBN 0-471-11709-9), раздел 9.3
  • random_bytes() - Генерирует криптографически безопасные псевдослучайные байты


Расшифровывает данные с заданными параметрами

  • « mcrypt_create_iv
  • mcrypt_ecb »
  • PHP Manual
  • Mcrypt
  • Расшифровывает данные с заданными параметрами

mcrypt_decrypt

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_decrypt — Расшифровывает данные с заданными параметрами

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0 и была УДАЛЕНА в версии PHP 7.2.0. Использовать эту функцию крайне не рекомендуется.

Описание

mcrypt_decrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] ) : string

Расшифровывает data и возвращает полученное значение.

Список параметров

cipher

Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.

key

Ключ, с которым шифровались данные. Если длина заданного ключа не подходит к указанному шифру, то функция выдаст предупреждение и вернет FALSE

data

Данные, которые надо расшифровать с использованием шифра cipher и режима mode. Если размер данных не кратен размеру блока, то они будут дополнены символами '\0'.

mode

Одна из констант MCRYPT_MODE_modename, либо одна из следующих строк: "ecb", "cbc", "cfb", "ofb", "nofb" и "stream".

iv

Используется для инициализации в режимах CBC, CFB, OFB, а также в некоторых алгоритмах в режиме STREAM. Если переданный IV размер не поддерживается режимом сцепления или IV не был передан, а режим сцепления его требует, функция сгенерирует предупреждение об ошибке и вернет FALSE.

Возвращаемые значения

Возвращает строку с расшифрованными данными или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.6.0 | Параметры key и iv некорректных размеров более не принимаются. Теперь функция mcrypt_decrypt() будет выводить предупреждение и возвращать FALSE, если входные данные некорректны. Ранее в подобной ситуации ключ и инициализирующий вектор дополнялись до нужной длины символами '\0'.

Смотрите также

  • mcrypt_encrypt() - Шифрует текст с заданными параметрами


Устарело: Шифрует и дешифрует данные в режиме ECB

  • « mcrypt_decrypt
  • mcrypt_enc_get_algorithms_name »
  • PHP Manual
  • Mcrypt
  • Устарело: Шифрует и дешифрует данные в режиме ECB

mcrypt_ecb

(PHP 4, PHP 5)

mcrypt_ecb — Устарело: Шифрует и дешифрует данные в режиме ECB

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.5.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • mcrypt_decrypt()
  • mcrypt_encrypt()

Описание

mcrypt_ecb ( int $cipher , string $key , string $data , int $mode ) : string
mcrypt_ecb ( string $cipher , string $key , string $data , int $mode [, string $iv ] ) : string

Первый прототип был собран с libmcrypt 2.2.x, а второй с libmcrypt 2.4.x или выше. Параметр mode должен быть задан как MCRYPT_ENCRYPT или MCRYPT_DECRYPT.


Возвращает имя алгоритма

  • « mcrypt_ecb
  • mcrypt_enc_get_block_size »
  • PHP Manual
  • Mcrypt
  • Возвращает имя алгоритма

mcrypt_enc_get_algorithms_name

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_algorithms_name — Возвращает имя алгоритма

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0 и была УДАЛЕНА в версии PHP 7.2.0. Использовать эту функцию крайне не рекомендуется.

Описание

mcrypt_enc_get_algorithms_name ( resource $td ) : string

Эта функция возвращает имя алгоритма.

Список параметров

td

Дескриптор шифрования.

Возвращаемые значения

Возвращает имя открытого алгоритма в виде строки.

Примеры

Пример #1 Пример использования mcrypt_enc_get_algorithms_name()

<?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_enc_get_algorithms_name
  • mcrypt_enc_get_iv_size »
  • PHP Manual
  • Mcrypt
  • Возвращает размер блока алгоритма

mcrypt_enc_get_block_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_block_size — Возвращает размер блока алгоритма

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0 и была УДАЛЕНА в версии PHP 7.2.0. Использовать эту функцию крайне не рекомендуется.

Описание

mcrypt_enc_get_block_size ( resource $td ) : int

Возвращает размер блока алгоритма.

Список параметров

td

Дескриптор шифрования.

Возвращаемые значения

Возвращает размер блока алгоритма в байтах.


Возвращает размер инициализирующего вектора для алгоритма

  • « mcrypt_enc_get_block_size
  • mcrypt_enc_get_key_size »
  • PHP Manual
  • Mcrypt
  • Возвращает размер инициализирующего вектора для алгоритма

mcrypt_enc_get_iv_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_iv_size — Возвращает размер инициализирующего вектора для алгоритма

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_enc_get_iv_size ( resource $td ) : int

Эта функция возвращает размер инициализирующего вектора в байтах для алгоритма, заданного дескриптором шифрования. Инициализирующий вектор используется в режимах cbc, cfb и ofb и в некоторых алгоритмах в потоковом режиме.

Список параметров

td

Дескриптор шифрования.

Возвращаемые значения

Возвращает размер инициализирующего вектора для алгоритма, или 0, если в целевом алгоритме он не используется.


Возвращает максимальную допустимую длину ключа алгоритма

  • « mcrypt_enc_get_iv_size
  • mcrypt_enc_get_modes_name »
  • PHP Manual
  • Mcrypt
  • Возвращает максимальную допустимую длину ключа алгоритма

mcrypt_enc_get_key_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_key_size — Возвращает максимальную допустимую длину ключа алгоритма

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_enc_get_key_size ( resource $td ) : int

Возвращает максимальную допустимую длину ключа алгоритма в байтах.

Список параметров

td

Дескриптор шифрования.

Возвращаемые значения

Возвращает максимальную допустимую длину ключа алгоритма в байтах.


Возвращает имя используемого режима

  • « mcrypt_enc_get_key_size
  • mcrypt_enc_get_supported_key_sizes »
  • PHP Manual
  • Mcrypt
  • Возвращает имя используемого режима

mcrypt_enc_get_modes_name

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_modes_name — Возвращает имя используемого режима

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_enc_get_modes_name ( resource $td ) : string

Возвращает имя используемого режима.

Список параметров

td

Дескриптор шифрования.

Возвращаемые значения

Возвращает имя используемого режима в виде строки.

Примеры

Пример #1 Пример использования mcrypt_enc_get_modes_name()

<?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";
?>

Результат выполнения данного примера:

CFB
ECB


Возвращает массив с допустимыми размерами ключа для используемого алгоритма

  • « mcrypt_enc_get_modes_name
  • mcrypt_enc_is_block_algorithm_mode »
  • PHP Manual
  • Mcrypt
  • Возвращает массив с допустимыми размерами ключа для используемого алгоритма

mcrypt_enc_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_supported_key_sizes — Возвращает массив с допустимыми размерами ключа для используемого алгоритма

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_enc_get_supported_key_sizes ( resource $td ) : array

Возвращает массив с допустимыми размерами ключа для используемого алгоритма.

Список параметров

td

Дескриптор шифрования.

Возвращаемые значения

Возвращает массив с допустимыми размерами ключа для используемого алгоритма. В случае, когда допустимы любые размеры от 1 до mcrypt_enc_get_key_size(), то возвращается пустой массив.

Примеры

Пример #1 Пример использования mcrypt_enc_get_supported_key_sizes()

<?php
    $td = mcrypt_module_open('rijndael-256', '', 'ecb', '');
    var_dump(mcrypt_enc_get_supported_key_sizes($td));
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  int(16)
  [1]=>
  int(24)
  [2]=>
  int(32)
}


Проверяет, используется ли блочный режим

  • « mcrypt_enc_get_supported_key_sizes
  • mcrypt_enc_is_block_algorithm »
  • PHP Manual
  • Mcrypt
  • Проверяет, используется ли блочный режим

mcrypt_enc_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_is_block_algorithm_mode — Проверяет, используется ли блочный режим

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_enc_is_block_algorithm_mode ( resource $td ) : bool

Проверяет, используется ли блочный режим (другими словами, FALSE для потоков и TRUE для cbc, cfb, ofb)..

Список параметров

td

Дескриптор шифрования.

Возвращаемые значения

Возвращает TRUE, если используется блочный режим и FALSE, если нет.


Проверяет, использует ли алгоритм блочные режимы

  • « mcrypt_enc_is_block_algorithm_mode
  • mcrypt_enc_is_block_mode »
  • PHP Manual
  • Mcrypt
  • Проверяет, использует ли алгоритм блочные режимы

mcrypt_enc_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_is_block_algorithm — Проверяет, использует ли алгоритм блочные режимы

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_enc_is_block_algorithm ( resource $td ) : bool

Проверяет, использует ли алгоритм блочные режимы.

Список параметров

td

Дескриптор шифрования.

Возвращаемые значения

Возвращает TRUE, если алгоритм является блочным или FALSE, если потоковый.


Проверяет, возвращает ли текущий режим блоки

  • « mcrypt_enc_is_block_algorithm
  • mcrypt_enc_self_test »
  • PHP Manual
  • Mcrypt
  • Проверяет, возвращает ли текущий режим блоки

mcrypt_enc_is_block_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_is_block_mode — Проверяет, возвращает ли текущий режим блоки

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_enc_is_block_mode ( resource $td ) : bool

Проверяет, возвращает ли текущий режим блоки (т.е. TRUE для cbc и ecb, и FALSE для cfb и потока).

Список параметров

td

Дескриптор шифрования.

Возвращаемые значения

Возвращает TRUE, если используемый режим возвращает блоки и FALSE, если возвращает байты.


Запуск самопроверки открытого модуля

  • « mcrypt_enc_is_block_mode
  • mcrypt_encrypt »
  • PHP Manual
  • Mcrypt
  • Запуск самопроверки открытого модуля

mcrypt_enc_self_test

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_self_test — Запуск самопроверки открытого модуля

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_enc_self_test ( resource $td ) : int

Функция запускает самопроверку алгоритма, заданного дескриптором шифрования td.

Список параметров

td

Дескриптор шифрования.

Возвращаемые значения

Возвращает 0 в случае успешного выполнения и отрицательное integer в противном случае.


Шифрует текст с заданными параметрами

  • « mcrypt_enc_self_test
  • mcrypt_generic_deinit »
  • PHP Manual
  • Mcrypt
  • Шифрует текст с заданными параметрами

mcrypt_encrypt

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_encrypt — Шифрует текст с заданными параметрами

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_encrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] ) : string

Шифрует данные.

Список параметров

cipher

Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.

key

Ключ, с которым будут шифроваться данные. Если длина ключа не соответствует требованием шифра, то будет возвращено FALSE и выдано предупреждение.

data

Данные, которые будут зашифрованы с помощью шифра cipher и режима mode. Если размер данных не кратен размеру блока, то они будут дополнены символами '\0'.

Размер возвращаемого текста может быть больше размера исходных данных data.

mode

Одна из констант MCRYPT_MODE_modename, либо одна из следующих строк: "ecb", "cbc", "cfb", "ofb", "nofb" и "stream".

iv

Используется для инициализации в режимах CBC, CFB, OFB, а также в некоторых алгоритмах в режиме STREAM. Если переданный IV размер не поддерживается режимом сцепления или IV не был передан, а режим сцепления его требует, функция сгенерирует предупреждение об ошибке и вернет FALSE.

Возвращаемые значения

Возвращает строку с зашифрованными данными или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.6.0 | Некорректные размеры ключа key и инициализирующего вектора iv более не принимаются. Теперь в случае некорректных входных параметров Функция mcrypt_encrypt() будет возвращать FALSE и вызывать предупреждение. Ранее в подобном случае ключ и инициализирующий вектор дополнялись до необходимого размера с помощью символов '\0'.

Примеры

Пример #1 Пример использования mcrypt_encrypt()

<?php
    # --- ШИФРОВАНИЕ ---

    # ключ должен представлять собой случайную бинарную строку.
    # Для преобразовангия строки в ключ используйте scrypt, bcrypt или PBKDF2
    # Ключ задается в виде строки шестнадцатеричных чисел
    $key = pack('H*', "bcb04b7e103a0cd8b54763051cef08bc55abe029fdebae5e1d417e2ffb2a00a3");

    # Показываем длину ключа.
    # Длина ключа должна быть 16, 24 или 32 байт для AES-128, 192 и 256 соответственно
    $key_size =  strlen($key);
    echo "Длина ключа: " . $key_size . "\n";

    $plaintext = "This string was AES-256 / CBC / ZeroBytePadding encrypted.";

    # Создаем случайный инициализирующий вектор используя режим CBC
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

    # Создаем шифрованный текст совместимыс с AES (размер блока = 128)
    # Подходит только для строк не заканчивающихся на 00h
    # (потому как это символ дополнения по умолчанию)
    $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key,
                                 $plaintext, MCRYPT_MODE_CBC, $iv);

    # Добавляем инициализирующий вектор в начало, чтобы он был доступен для расшифровки
    $ciphertext = $iv . $ciphertext;

    # перекодируем зашифрованный текст в base64
    $ciphertext_base64 = base64_encode($ciphertext);

    echo  $ciphertext_base64 . "\n";

    # === ВНИМАНИЕ ===

    # Результирующий шифрованный текст не имеет целостности или аутентичности и не
    # защищен от атак padding oracle.

    # --- ДЕШИФРОВКА ---

    $ciphertext_dec = base64_decode($ciphertext_base64);

    # Извлекаем инициализирующий вектор. Длина вектора ($iv_size) должна совпадать
    # с тем, что возвращает функция mcrypt_get_iv_size()
    $iv_dec = substr($ciphertext_dec, 0, $iv_size);

    # Извлекаем зашифрованный текст
    $ciphertext_dec = substr($ciphertext_dec, $iv_size);

    # Отбрасываем завершающие символы 00h
    $plaintext_dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key,
                                    $ciphertext_dec, MCRYPT_MODE_CBC, $iv_dec);

    echo  $plaintext_dec . "\n";
?>

Результат выполнения данного примера:

Длина ключа: 32
ENJW8mS2KaJoNB5E5CoSAAu0xARgsR1bdzFWpEn+poYw45q+73az5kYi4j+0haevext1dGrcW8Qi59txfCBV8BBj3bzRP3dFCp3CPQSJ8eU=
This string was AES-256 / CBC / ZeroBytePadding encrypted.

Смотрите также

  • mcrypt_decrypt() - Расшифровывает данные с заданными параметрами
  • mcrypt_module_open() - Открывает модуль шифрования с использованием указанных алгоритма и режима


Эта функция деинициализирует модуль шифрования

  • « mcrypt_encrypt
  • mcrypt_generic_end »
  • PHP Manual
  • Mcrypt
  • Эта функция деинициализирует модуль шифрования

mcrypt_generic_deinit

(PHP 4 >= 4.0.7, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_generic_deinit — Эта функция деинициализирует модуль шифрования

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_generic_deinit ( resource $td ) : bool

Эта функция прерывает шифрование, заданное дескриптором шифрования (td). Она очищает все буферы, но не закрывает модуль. Для закрытия модуля вы должны самостоятельно вызвать mcrypt_module_close(), либо он будет автоматически закрыт по завершении работы скрипта.

Список параметров

td

Дескриптор шифрования.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mcrypt_module_open() - Открывает модуль шифрования с использованием указанных алгоритма и режима
  • mcrypt_generic_init() - Функция инициализирует все буферы, необходимые для шифрования


Функция прерывает шифрование

  • « mcrypt_generic_deinit
  • mcrypt_generic_init »
  • PHP Manual
  • Mcrypt
  • Функция прерывает шифрование

mcrypt_generic_end

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic_end — Функция прерывает шифрование

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • mcrypt_generic_deinit()

Описание

mcrypt_generic_end ( resource $td ) : bool

Внимание

На самом деле, вместо этой функции следует использовать функцию mcrypt_generic_deinit(), так как она может вызвать падение в случае использования mcrypt_module_close() в момент освобождения множества буферов.

Эта функция прерывает шифрование, заданное с помощью дескриптора (td). Фактически она очищает буферы и закрывает все используемые модули. В случае возникновения ошибки возвращает FALSE, а в случае успешного выполнения TRUE.


Функция инициализирует все буферы, необходимые для шифрования

  • « mcrypt_generic_end
  • mcrypt_generic »
  • PHP Manual
  • Mcrypt
  • Функция инициализирует все буферы, необходимые для шифрования

mcrypt_generic_init

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_generic_init — Функция инициализирует все буферы, необходимые для шифрования

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_generic_init ( resource $td , string $key , string $iv ) : int

Вы должны вызывать эту функцию перед любым вызовом mcrypt_generic() или mdecrypt_generic().

Список параметров

td

Дескриптор шифрования.

key

Максимальная длина ключа должна быть получена с помощью функции mcrypt_enc_get_key_size() и любое меньшее значение допустимо.

iv

Обычно размер инициализирующего вектора(IV) должен совпадать с размером блока, но вы все равно должны получить это значение с помощью функции mcrypt_enc_get_iv_size(). IV игнорируется в ECB. IV ДОЛЖЕН присутствовать в режимах CFB, CBC, STREAM, nOFB и OFB. Он должен быть случайным и уникальным (но не обязательно секретным). Один и тот же IV должен использоваться как при шифровании так и при дешифровке. Если вы не хотите его использовать - просто установите его равным нулю, но так поступать не рекомендуется.

Возвращаемые значения

В случае возникновения ошибки эта функция возвращает отрицательное число: -3 если длина ключа некорректна, -4 если возникли проблемы с выделением памяти, а любое другое значение обозначает неизвестную ошибку. Также, в случае любой ошибки будет вызвано предупреждение. если переданы некорректные параметры, будет возвращено FALSE.

Смотрите также

  • mcrypt_module_open() - Открывает модуль шифрования с использованием указанных алгоритма и режима


Функция шифрует данные

  • « mcrypt_generic_init
  • mcrypt_get_block_size »
  • PHP Manual
  • Mcrypt
  • Функция шифрует данные

mcrypt_generic

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_generic — Функция шифрует данные

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_generic ( resource $td , string $data ) : string

Эта функция шифрует данные. Данные будут дополнены символами "\0" для того, чтобы их размер стал кратен размеру блока. Эта функция возвращает зашифрованные данные. Обратите внимание, что длина возвращаемой строки может быть больше исходной из-за дополнения.

Если вы хотите хранить шифрованные данные в базе данных, убедитесь, что вы сохраняете строку полностью, как она была возвращена этой функцией, иначе вы потом не сможете ее расшифровать. Если ваша оригинальная строка была 10 символов длиной, а размер блока равен 8 (используйте mcrypt_enc_get_block_size() для определения размера блока), то размер столбца базы данных должен быть как минимум 16 символов. Обратите внимание, что строка возвращаемая mdecrypt_generic() также будет размером 16 символов. В таком случае просто используйте rtrim($str, "\0") для удаления добавленных символов.

К примеру, если вы сохраните данные в MySQL, помните, что при вставке значений в поля типа VARCHAR, у них автоматически отбрасываются пробелы из конца строки. Если зашифрованные данные кончаются на пробел (ASCII 32), то они будут повреждены при такой вставке. Лучше используйте для хранения поля типа TINYBLOB/TINYTEX или больше.

Список параметров

td

Дескриптор шифрования.

Обработчик шифрования всегда должен инициализироваться с помощью mcrypt_generic_init() с ключем и инициализирующим вектором перед вызовом функции. Как только шифрование завершено, необходимо освободить буферы шифрования путем вызова функции mcrypt_generic_deinit(). Смотрите пример в описании функции mcrypt_module_open().

data

Данные для шифрования.

Возвращаемые значения

Возвращает зашифрованные данные.

Смотрите также

  • mdecrypt_generic() - Дешифровка данных
  • mcrypt_generic_init() - Функция инициализирует все буферы, необходимые для шифрования
  • mcrypt_generic_deinit() - Эта функция деинициализирует модуль шифрования


Возвращает размер блока для указанного шифра

  • « mcrypt_generic
  • mcrypt_get_cipher_name »
  • PHP Manual
  • Mcrypt
  • Возвращает размер блока для указанного шифра

mcrypt_get_block_size

(PHP 4, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_get_block_size — Возвращает размер блока для указанного шифра

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_get_block_size ( int $cipher ) : int
mcrypt_get_block_size ( string $cipher , string $mode ) : int

Первый прототип собран с библиотекой libmcrypt 2.2.x, а второй с libmcrypt 2.4.x или 2.5.x.

mcrypt_get_block_size() используется для получения размер блока указанного cipher (в комбинации с режимом шифрования).

Правильнее использовать mcrypt_enc_get_block_size(), которая использует ресурс, возвращаемый mcrypt_module_open().

Список параметров

cipher

Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.

mode

Одна из констант MCRYPT_MODE_modename, либо одна из следующих строк: "ecb", "cbc", "cfb", "ofb", "nofb" и "stream".

Возвращаемые значения

Возвращает размер блока алгоритма в байтах или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mcrypt_get_block_size()

Этот пример демонстрирует использование функции собраной с libmcrypt 2.4.x и 2.5.x.

<?php

echo mcrypt_get_block_size('tripledes', 'ecb'); // 8

?>

Смотрите также

  • mcrypt_get_key_size() - Получить размер ключа заданного шифра
  • mcrypt_enc_get_block_size() - Возвращает размер блока алгоритма
  • mcrypt_encrypt() - Шифрует текст с заданными параметрами


Получает имя указанного шифра

  • « mcrypt_get_block_size
  • mcrypt_get_iv_size »
  • PHP Manual
  • Mcrypt
  • Получает имя указанного шифра

mcrypt_get_cipher_name

(PHP 4, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_get_cipher_name — Получает имя указанного шифра

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_get_cipher_name ( int $cipher ) : string
mcrypt_get_cipher_name ( string $cipher ) : string

Функция mcrypt_get_cipher_name() используется для получения имени указанного шифра.

mcrypt_get_cipher_name() берет номер шифра в качестве аргумента (libmcrypt 2.2.x) или имя шифра (libmcrypt 2.4.x или выше) и возвращает имя шифра или FALSE, если шифр отсутствует.

Список параметров

cipher

Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.

Возвращаемые значения

Функция возвращает имя шифра или FALSE, если такого шифра нет.

Примеры

Пример #1 Пример использования mcrypt_get_cipher_name()

<?php
   $cipher = MCRYPT_TripleDES;

   echo mcrypt_get_cipher_name($cipher);
?>

Результат выполнения данного примера:

3DES


Возвращает размер инициализирующего вектора для соответствующей комбинации шифра и режима

  • « mcrypt_get_cipher_name
  • mcrypt_get_key_size »
  • PHP Manual
  • Mcrypt
  • Возвращает размер инициализирующего вектора для соответствующей комбинации шифра и режима

mcrypt_get_iv_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_get_iv_size — Возвращает размер инициализирующего вектора для соответствующей комбинации шифра и режима

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_get_iv_size ( string $cipher , string $mode ) : int

Возвращает размер инициализирующего вектора для соответствующей заданной комбинации шифра cipher и режима mode.

Правильнее будет использовать mcrypt_enc_get_iv_size(), так как она возвращает результат по существующему дескриптору шифрования, полученного с помощью mcrypt_module_open().

Список параметров

cipher

Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.

mode

Одна из констант MCRYPT_MODE_modename, либо одна из следующих строк: "ecb", "cbc", "cfb", "ofb", "nofb" и "stream".

Инициализирующий вектор игнорируется в режиме ECB, так как он там не нужен. Вам понадобится один и тот же инициализирующий вектор как для шифрования, так и для дешифровки, иначе все ваше шифрование превратится в тыкву.

Возвращаемые значения

Возвращает размер инициализирующего вектора в байтах. В случае возникновения ошибки будет возвращено FALSE. Если при заданной комбинации шифра и режима инициализирующий вектор не нужен, будет возвращен ноль.

Примеры

Пример #1 Пример использования mcrypt_get_iv_size()

<?php
    echo mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB) . "\n";

    echo mcrypt_get_iv_size('des', 'ecb') . "\n";
?>

Смотрите также

  • mcrypt_get_block_size() - Возвращает размер блока для указанного шифра
  • mcrypt_enc_get_iv_size() - Возвращает размер инициализирующего вектора для алгоритма
  • mcrypt_create_iv() - Создать инициализирующий вектор (Initialization Vector или IV) из случайного источника


Получить размер ключа заданного шифра

  • « mcrypt_get_iv_size
  • mcrypt_list_algorithms »
  • PHP Manual
  • Mcrypt
  • Получить размер ключа заданного шифра

mcrypt_get_key_size

(PHP 4, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_get_key_size — Получить размер ключа заданного шифра

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_get_key_size ( int $cipher ) : int
mcrypt_get_key_size ( string $cipher , string $mode ) : int

Первый прототип собран с библиотекой libmcrypt 2.2.x, а второй с libmcrypt 2.4.x или 2.5.x.

mcrypt_get_key_size() используется для получения размера ключа для указанного шифра cipher (в комбинации с режимом шифрования).

Правильнее будет использовать mcrypt_enc_get_key_size(), так как она возвращает результат по существующему дескриптору шифрования, полученного с помощью mcrypt_module_open().

Список параметров

cipher

Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.

mode

Одна из констант MCRYPT_MODE_modename, либо одна из следующих строк: "ecb", "cbc", "cfb", "ofb", "nofb" и "stream".

Возвращаемые значения

Возвращает максимально допустимую длину ключа в байтах или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mcrypt_get_key_size()

<?php
    echo mcrypt_get_key_size('tripledes', 'ecb');
?>

Этот пример демонстрирует использование функции собраной с libmcrypt 2.4.x и 2.5.x.

Результат выполнения данного примера:

24

Смотрите также

  • mcrypt_get_block_size() - Возвращает размер блока для указанного шифра
  • mcrypt_enc_get_key_size() - Возвращает максимальную допустимую длину ключа алгоритма
  • mcrypt_encrypt() - Шифрует текст с заданными параметрами


Получить список всех поддерживаемых алгоритмов шифрования

  • « mcrypt_get_key_size
  • mcrypt_list_modes »
  • PHP Manual
  • Mcrypt
  • Получить список всех поддерживаемых алгоритмов шифрования

mcrypt_list_algorithms

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_list_algorithms — Получить список всех поддерживаемых алгоритмов шифрования

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_list_algorithms ([ string $lib_dir = ini_get("mcrypt.algorithms_dir") ] ) : array

Получить список всех поддерживаемых алгоритмов шифрования в заданной директории lib_dir.

Список параметров

lib_dir

Указывает директорию, в которой расположены алгоритмы. Если не задано, то будет использовано значение директивы mcrypt.algorithms_dir из php.ini.

Возвращаемые значения

Возвращает массив поддерживаемых алгоритмов.

Примеры

Пример #1 Пример использования mcrypt_list_algorithms()

<?php
$algorithms = mcrypt_list_algorithms();
print_r($algorithms);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => cast-128
    [1] => gost
    [2] => rijndael-128
    [3] => twofish
    [4] => arcfour
    [5] => cast-256
    [6] => loki97
    [7] => rijndael-192
    [8] => saferplus
    [9] => wake
    [10] => blowfish-compat
    [11] => des
    [12] => rijndael-256
    [13] => serpent
    [14] => xtea
    [15] => blowfish
    [16] => enigma
    [17] => rc2
    [18] => tripledes
)


Получить список всех поддерживаемых режимов шифрования

  • « mcrypt_list_algorithms
  • mcrypt_module_close »
  • PHP Manual
  • Mcrypt
  • Получить список всех поддерживаемых режимов шифрования

mcrypt_list_modes

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_list_modes — Получить список всех поддерживаемых режимов шифрования

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_list_modes ([ string $lib_dir = ini_get("mcrypt.modes_dir") ] ) : array

Получить список всех режимов шифрования из директории lib_dir.

Список параметров

lib_dir

Указывает директорию, в которой расположены режимы. Если не задано, то будет использовано значение директивы mcrypt.modes_dir из php.ini.

Возвращаемые значения

Возвращает массив поддерживаемых режимов.

Примеры

Пример #1 Пример использования mcrypt_list_modes()

<?php
    $modes = mcrypt_list_modes();

    foreach ($modes as $mode) {
        echo "$mode <br />\n";
    }
?>

Пример выше демонстрирует получение списка всех алгоритмов из директории по умолчанию. Если директива php.ini mcrypt.modes_dir не задана, то будет использована директория mcrypt по умолчанию (/usr/local/lib/libmcrypt).


Закрывает модуль mcrypt

  • « mcrypt_list_modes
  • mcrypt_module_get_algo_block_size »
  • PHP Manual
  • Mcrypt
  • Закрывает модуль mcrypt

mcrypt_module_close

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_close — Закрывает модуль mcrypt

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_module_close ( resource $td ) : bool

Закрывает указанный обработчик шифрования.

Список параметров

td

Дескриптор шифрования.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mcrypt_module_open() - Открывает модуль шифрования с использованием указанных алгоритма и режима


Возвращает размер блока указанного алгоритма

  • « mcrypt_module_close
  • mcrypt_module_get_algo_key_size »
  • PHP Manual
  • Mcrypt
  • Возвращает размер блока указанного алгоритма

mcrypt_module_get_algo_block_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_get_algo_block_size — Возвращает размер блока указанного алгоритма

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_module_get_algo_block_size ( string $algorithm [, string $lib_dir ] ) : int

Возвращает размер блока указанного алгоритма.

Список параметров

algorithm

Имя алгоритма.

lib_dir

Опциональный параметр, в котором можно указать директорию, содержащую модуль режима.

Возвращаемые значения

Возвращает размер блока указанного алгоритма в байтах.


Возвращает максимальный размер ключа открытого режима

  • « mcrypt_module_get_algo_block_size
  • mcrypt_module_get_supported_key_sizes »
  • PHP Manual
  • Mcrypt
  • Возвращает максимальный размер ключа открытого режима

mcrypt_module_get_algo_key_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_get_algo_key_size — Возвращает максимальный размер ключа открытого режима

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_module_get_algo_key_size ( string $algorithm [, string $lib_dir ] ) : int

Возвращает максимальный размер ключа открытого режима.

Список параметров

algorithm

Имя алгоритма.

lib_dir

Опциональный параметр, в котором можно указать директорию, содержащую модуль режима.

Возвращаемые значения

Возвращает максимальную длину ключа в байтах для указанного алгоритма.


Возвращает список поддерживаемых размеров ключей для открытого алгоритма

  • « mcrypt_module_get_algo_key_size
  • mcrypt_module_is_block_algorithm_mode »
  • PHP Manual
  • Mcrypt
  • Возвращает список поддерживаемых размеров ключей для открытого алгоритма

mcrypt_module_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_get_supported_key_sizes — Возвращает список поддерживаемых размеров ключей для открытого алгоритма

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_module_get_supported_key_sizes ( string $algorithm [, string $lib_dir ] ) : array

Возвращает список поддерживаемых размеров ключей для открытого алгоритма. Если возвращен пустой массив, значит поддерживается любая длина ключа от 1 до значения возвращаемого mcrypt_module_get_algo_key_size().

Список параметров

algorithm

Используемый алгоритм.

lib_dir

Опциональный параметр lib_dir, в котором можно указать директорию, содержащую модуль алгоритма.

Возвращаемые значения

Возвращает список поддерживаемых размеров ключей для открытого алгоритма. Если возвращен пустой массив, значит поддерживается любая длина ключа от 1 до значения возвращаемого mcrypt_module_get_algo_key_size().

Смотрите также

  • mcrypt_enc_get_supported_key_sizes() - Возвращает массив с допустимыми размерами ключа для используемого алгоритма


Проверяет, является ли заданный модуль блочным или нет

  • « mcrypt_module_get_supported_key_sizes
  • mcrypt_module_is_block_algorithm »
  • PHP Manual
  • Mcrypt
  • Проверяет, является ли заданный модуль блочным или нет

mcrypt_module_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_is_block_algorithm_mode — Проверяет, является ли заданный модуль блочным или нет

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_module_is_block_algorithm_mode ( string $mode [, string $lib_dir ] ) : bool

Функция возвращает TRUE, если режим используется с блочными алгоритмами, иначе возвращает FALSE. (то есть FALSE для поточных и TRUE для cbc, cfb, ofb).

Список параметров

mode

Режим, который будет проверяться.

lib_dir

Опциональный параметр lib_dir, в котором можно указать директорию, содержащую модуль алгоритма.

Возвращаемые значения

Функция возвращает TRUE, если режим используется с блочными алгоритмами, иначе возвращает FALSE. (то есть FALSE для поточных и TRUE для cbc, cfb, ofb).


Проверяет, является ли заданный алгоритм блочным или нет

  • « mcrypt_module_is_block_algorithm_mode
  • mcrypt_module_is_block_mode »
  • PHP Manual
  • Mcrypt
  • Проверяет, является ли заданный алгоритм блочным или нет

mcrypt_module_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_is_block_algorithm — Проверяет, является ли заданный алгоритм блочным или нет

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_module_is_block_algorithm ( string $algorithm [, string $lib_dir ] ) : bool

Функция возвращает TRUE, если алгоритм блочный, иначе возвращает FALSE (потоковый).

Список параметров

algorithm

Алгоритм для проверки.

lib_dir

Опциональный параметр lib_dir, в котором можно указать директорию, содержащую модуль алгоритма.

Возвращаемые значения

Функция возвращает TRUE, если алгоритм блочный, иначе возвращает FALSE (потоковый).


Проверить, возвращает ли указанный режим данные блоками или нет

  • « mcrypt_module_is_block_algorithm
  • mcrypt_module_open »
  • PHP Manual
  • Mcrypt
  • Проверить, возвращает ли указанный режим данные блоками или нет

mcrypt_module_is_block_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_is_block_mode — Проверить, возвращает ли указанный режим данные блоками или нет

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_module_is_block_mode ( string $mode [, string $lib_dir ] ) : bool

Функция возвращает TRUE, если данные возвращаются блоками и FALSE, если побайтно. (то есть TRUE для cbc и ecb, и FALSE для cfb и потока).

Список параметров

mode

Одна из констант MCRYPT_MODE_modename, либо одна из следующих строк: "ecb", "cbc", "cfb", "ofb", "nofb" и "stream".

lib_dir

Опциональный параметр lib_dir, в котором можно указать директорию, содержащую модуль алгоритма.

Возвращаемые значения

Функция возвращает TRUE, если данные возвращаются блоками и FALSE если побайтно. (то есть TRUE для cbc и ecb, и FALSE для cfb и потока).


Открывает модуль шифрования с использованием указанных алгоритма и режима

  • « mcrypt_module_is_block_mode
  • mcrypt_module_self_test »
  • PHP Manual
  • Mcrypt
  • Открывает модуль шифрования с использованием указанных алгоритма и режима

mcrypt_module_open

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_open — Открывает модуль шифрования с использованием указанных алгоритма и режима

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_module_open ( string $algorithm , string $algorithm_directory , string $mode , string $mode_directory ) : resource

Открывает модуль шифрования с использованием указанных алгоритма и режима. Имя алгоритма задается его именем, например "twofish", или с помощью константы MCRYPT_ciphername. Закрыть модуль можно с помощью функции mcrypt_module_close().

Список параметров

algorithm

Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.

algorithm_directory

Параметр algorithm_directory используется для задания местонахождения модуля шифрования. Если передать пустую строку, то (""), то будет использовано значение директивы mcrypt.algorithms_dir из php.ini. Если же оно тоже не задано, то будет использована стандартная директория с которой компилировался libmcrypt (обычно /usr/local/lib/libmcrypt).

mode

Одна из констант MCRYPT_MODE_modename, либо одна из следующих строк: "ecb", "cbc", "cfb", "ofb", "nofb" и "stream".

mode_directory

Параметр mode_directory используется для задания местонахождения модуля режима. Если передать пустую строку, то (""), то будет использовано значение директивы mcrypt.modes_dir из php.ini. Если же оно тоже не задано, то будет использована стандартная директория, с которой компилировался libmcrypt (обычно /usr/local/lib/libmcrypt).

Возвращаемые значения

Обычно возвращается дескриптор шифрования или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования mcrypt_module_open()

<?php
    $td = mcrypt_module_open(MCRYPT_DES, '',
        MCRYPT_MODE_ECB, '/usr/lib/mcrypt-modes');

    $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
?>

В первой строке примера мы пробуем открыть шифр DES из директории по умолчанию и использовать режим ECB из директории /usr/lib/mcrypt-modes. Во втором примере используем строковые имена шифра и режима, что работает только с расширением, собранным с библиотекой libmcrypt 2.4.x or 2.5.x.

Пример #2 Пример использования mcrypt_module_open()

<?php
    /* Открываем модуль шифрования */
    $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');

    /* Создаем инициализирующий вектор и определяем длину ключа.
     * Для Windows используем MCRYPT_RAND */
    $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
    $ks = mcrypt_enc_get_key_size($td);

    /* Создаем ключ */
    $key = substr(md5('very secret key'), 0, $ks);

    /* Инициализируем шифрование */
    mcrypt_generic_init($td, $key, $iv);

    /* Шифруем данные */
    $encrypted = mcrypt_generic($td, 'This is very important data');

    /* Деинициализируем обработчик шифрования */
    mcrypt_generic_deinit($td);

    /* Инициализируем модуль дешифровки */
    mcrypt_generic_init($td, $key, $iv);

    /* Дешифруем данные */
    $decrypted = mdecrypt_generic($td, $encrypted);

    /* Деинициализируем обработчик дешифровки и закрываем модуль */
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);

    /* Печатаем строку */
    echo trim($decrypted) . "\n";
?>

Смотрите также

  • mcrypt_module_close() - Закрывает модуль mcrypt
  • mcrypt_generic() - Функция шифрует данные
  • mdecrypt_generic() - Дешифровка данных
  • mcrypt_generic_init() - Функция инициализирует все буферы, необходимые для шифрования
  • mcrypt_generic_deinit() - Эта функция деинициализирует модуль шифрования


Функция запускает самопроверку указанного модуля

  • « mcrypt_module_open
  • mcrypt_ofb »
  • PHP Manual
  • Mcrypt
  • Функция запускает самопроверку указанного модуля

mcrypt_module_self_test

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_self_test — Функция запускает самопроверку указанного модуля

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mcrypt_module_self_test ( string $algorithm [, string $lib_dir ] ) : bool

Эта функция запускает самопроверку указанного алгоритма.

Список параметров

algorithm

Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.

lib_dir

Опциональный параметр lib_dir, в котором можно указать директорию, содержащую модуль алгоритма.

Возвращаемые значения

Эта функция возвращает TRUE если самопроверка завершилась успешно и FALSE, если нет.

Примеры

Пример #1 Пример использования mcrypt_module_self_test()

<?php
var_dump(mcrypt_module_self_test(MCRYPT_RIJNDAEL_128)) . "\n";
var_dump(mcrypt_module_self_test(MCRYPT_BOGUS_CYPHER));
?>

Результат выполнения данного примера:

bool(true)
bool(false)


Шифрует и дешифрует данные в режиме OFB

  • « mcrypt_module_self_test
  • mdecrypt_generic »
  • PHP Manual
  • Mcrypt
  • Шифрует и дешифрует данные в режиме OFB

mcrypt_ofb

(PHP 4, PHP 5)

mcrypt_ofb — Шифрует и дешифрует данные в режиме OFB

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.5.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • mcrypt_decrypt()
  • mcrypt_encrypt()

Описание

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 ] ) : string

Первый прототип был собран с libmcrypt 2.2.x, а второй с libmcrypt 2.4.x или выше. Параметр mode должен быть задан как MCRYPT_ENCRYPT или MCRYPT_DECRYPT.


Дешифровка данных

  • « mcrypt_ofb
  • Mhash »
  • PHP Manual
  • Mcrypt
  • Дешифровка данных

mdecrypt_generic

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mdecrypt_generic — Дешифровка данных

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

mdecrypt_generic ( resource $td , string $data ) : string

Функция дешифрует данные. Обратите внимание, что длина возвращаемой строки по факту может быть больше длины оригинальной нешифрованной строки. Это происходит от того, что данные могут дополняться.

Список параметров

td

Дескриптор шифрования, возвращаемый mcrypt_module_open()

data

Зашифрованные данные.

Примеры

Пример #1 Пример использования mdecrypt_generic()

<?php
    /* Данные */
    $key = 'Это очень длинный ключ. Сильно больше, чем нужен шифру.';
    $plain_text = 'очень важные данные';

    /* Открываем модуль и создаем инициализирующий вектор */
    $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);

    /* Инициализируем обработчик шифрования */
    if (mcrypt_generic_init($td, $key, $iv) != -1) {

        /* Шифруем данные */
        $c_t = mcrypt_generic($td, $plain_text);
        mcrypt_generic_deinit($td);

        /* Переинициализируем буферы для дешифровки */
        mcrypt_generic_init($td, $key, $iv);
        $p_t = mdecrypt_generic($td, $c_t);

        /* Убираем мусор */
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
    }

    if (strncmp($p_t, $plain_text, strlen($plain_text)) == 0) {
        echo "ок\n";
    } else {
        echo "ошибка\n";
    }
?>

Пример выше показывает, как проверить, что данные до шифрования совпадают с данными после дешифрования. Крайне важно переинициализировать буферы шифрования с помощью mcrypt_generic_init() перед дешифровкой данных.

Обработчик дешифрования всегда должен инициализироваться с помощью mcrypt_generic_init() с ключем и инициализирующим вектором перед вызовом функции. Как только шифрование завершено, необходимо освободить буферы шифрования путем вызова функции mcrypt_generic_deinit(). Смотрите пример в описании функции mcrypt_module_open().

Смотрите также

  • mcrypt_generic() - Функция шифрует данные
  • mcrypt_generic_init() - Функция инициализирует все буферы, необходимые для шифрования
  • mcrypt_generic_deinit() - Эта функция деинициализирует модуль шифрования


Mhash

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции Mhash
    • mhash_count — Получить наибольший доступный идентификатор хеша
    • mhash_get_block_size — Получить размер блока для заданного хеша
    • mhash_get_hash_name — Получить имя указанного хеша
    • mhash_keygen_s2k — Генерация ключа
    • mhash — Вычисляет хеш


Введение

Эти функции предназначены для работы с » mhash. Mhash может использоваться для подсчета контрольных сумм, хеш-сумм, кодов идентификации сообщений и так далее.

Это интерфейс для библиотеки mhash. Mhash поддерживает большое количество алгоритмов шифрования, таких как MD5, SHA1, GOST и многих других. Для полного списка поддерживаемых алгоритмов шифрования перейдите на страницу с константами. Для получения доступа к определенному алгоритму из PHP нужно использовать MHASH_hashname. Например, чтобы получить доступ к TIGER необходимо исползовать константу MHASH_TIGER.

Замечание:

Данное расширение устарело, в качестве замены используйте Hash.

Замечание:

Начиная с PHP 7.0.0, расширение Mhash полностью интегрировано в расширение Hash. Таким образом, теперь нельзя определить доступность поддержки Mhash с помощью функции extension_loaded(); вместо нее используйте function_exists(). Кроме того, Mhash больше не будет выводиться с помощью get_loaded_extensions() и подобных функций.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Скачайте дистрибутив mhash с » этого сайта и следуйте инструкциям.


Установка

Необходимо скомпилировать PHP с опцией --with-mhash[=DIR] . Можно принудительно указать директорию с mhash.

Начиная с PHP 5.3.0, расширение mhash эмулируется через расширение Hash. Поэтому указание директории установки mhash не будет иметь никакого эффекта, и требуется включенное расширение хеширования для того, чтобы сделать поддержку расширения mhash доступной.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Здесь представлен список поддерживаемых mhash хешей. Если хеш отсутствует в этом списке, но есть в документации по mhash, то вы можете смело считать, что он есть.

  • MHASH_ADLER32
  • MHASH_CRC32
  • MHASH_CRC32B
  • MHASH_GOST
  • MHASH_HAVAL128
  • MHASH_HAVAL160
  • MHASH_HAVAL192
  • MHASH_HAVAL224
  • MHASH_HAVAL256
  • MHASH_MD2
  • MHASH_MD4
  • MHASH_MD5
  • MHASH_RIPEMD128
  • MHASH_RIPEMD256
  • MHASH_RIPEMD320
  • MHASH_SHA1
  • MHASH_SHA192
  • MHASH_SHA224
  • MHASH_SHA256
  • MHASH_SHA384
  • MHASH_SHA512
  • MHASH_SNEFRU128
  • MHASH_SNEFRU256
  • MHASH_TIGER
  • MHASH_TIGER128
  • MHASH_TIGER160
  • MHASH_WHIRLPOOL


Примеры

Пример #1 Вычисление MD5 и HMAC и печать их в шестнадцатеричном виде

<?php
$input = "what do ya want for nothing?";
$hash = mhash(MHASH_MD5, $input);
echo "Хеш MD5 - " . bin2hex($hash) . "<br />\n";
$hash = mhash(MHASH_MD5, $input, "Jefe");
echo "Хеш HMAC - " . bin2hex($hash) . "<br />\n";
?>

Результат выполнения данного примера:

Хеш MD5 - d03cb659cbf9192dcd066272249f8412
Хеш HMAC - 750c783e6ab0b503eaa86e310a5db738


Функции Mhash

Содержание

  • mhash_count — Получить наибольший доступный идентификатор хеша
  • mhash_get_block_size — Получить размер блока для заданного хеша
  • mhash_get_hash_name — Получить имя указанного хеша
  • mhash_keygen_s2k — Генерация ключа
  • mhash — Вычисляет хеш


Получить наибольший доступный идентификатор хеша

  • « Функции Mhash
  • mhash_get_block_size »
  • PHP Manual
  • Функции Mhash
  • Получить наибольший доступный идентификатор хеша

mhash_count

(PHP 4, PHP 5, PHP 7)

mhash_count — Получить наибольший доступный идентификатор хеша

Описание

mhash_count ( void ) : int

Возвращает наибольший доступный идентификатор хеша.

Возвращаемые значения

Получить наибольший доступный идентификатор хеша. Хеши нумеруются от 0 до этого идентификатора.

Примеры

Пример #1 Обход всех хешей

<?php

$nr = mhash_count();

for ($i = 0; $i <= $nr; $i++) {
    echo sprintf("Размер блока хеша %s - %d\n",
        mhash_get_hash_name($i),
        mhash_get_block_size($i));
}
?>


Получить размер блока для заданного хеша

  • « mhash_count
  • mhash_get_hash_name »
  • PHP Manual
  • Функции Mhash
  • Получить размер блока для заданного хеша

mhash_get_block_size

(PHP 4, PHP 5, PHP 7)

mhash_get_block_size — Получить размер блока для заданного хеша

Описание

mhash_get_block_size ( int $hash ) : int

Возвращает размер блока для заданного hash.

Список параметров

hash

Идентификатор хеша. Одна из констант MHASH_hashname.

Возвращаемые значения

Возвращает размер в байтах или FALSE, если параметр hash задан некорректно.

Примеры

Пример #1 Пример использования mhash_get_block_size()

<?php

echo mhash_get_block_size(MHASH_MD5); // 16

?>


Получить имя указанного хеша

  • « mhash_get_block_size
  • mhash_keygen_s2k »
  • PHP Manual
  • Функции Mhash
  • Получить имя указанного хеша

mhash_get_hash_name

(PHP 4, PHP 5, PHP 7)

mhash_get_hash_name — Получить имя указанного хеша

Описание

mhash_get_hash_name ( int $hash ) : string

Возвращает имя заданного hash.

Список параметров

hash

Идентификатор хеша. Одна из констант MHASH_hashname.

Возвращаемые значения

Возвращает строку с названием или FALSE, если такого хеша нет.

Примеры

Пример #1 Пример использования mhash_get_hash_name()

<?php

echo mhash_get_hash_name(MHASH_MD5); // MD5

?>


Генерация ключа

  • « mhash_get_hash_name
  • mhash »
  • PHP Manual
  • Функции Mhash
  • Генерация ключа

mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

mhash_keygen_s2k — Генерация ключа

Описание

mhash_keygen_s2k ( int $hash , string $password , string $salt , int $bytes ) : string

Генерирует ключ в соответствии с заданным hash и указанным паролем password.

Используется алгоритм S2K с солью, как описано в документе OpenPGP (» RFC 2440).

Помните, что пользовательские пароли не являются подходящими ключами для криптографических алгоритмов, так как обычно они как минимум набираемы на клавиатуре. Такие пароли используют только 6-7 бит (или меньше) на символ. Так что такие пароли крайне рекомендуется предварительно преобразовывать (например этой функцией).

Список параметров

hash

Идентификатор хеша. Одна из констант MHASH_hashname.

password

Пользовательский пароль.

salt

Должна быть разной и достаточно случайной для каждого создаваемого ключа. Так как salt должна быть известна при проверке ключа, то хорошей идеей будет добавить ее к ключу. Соль имеет фиксированный размер в 8 байт и будет дополнена нулями, если заданный параметр будет короче.

bytes

Длина ключа в байтах.

Возвращаемые значения

Возвращает строку с ключем или FALSE в случае ошибки.


Вычисляет хеш

  • « mhash_keygen_s2k
  • OpenSSL »
  • PHP Manual
  • Функции Mhash
  • Вычисляет хеш

mhash

(PHP 4, PHP 5, PHP 7)

mhash — Вычисляет хеш

Описание

mhash ( int $hash , string $data [, string $key ] ) : string

mhash() принимает хеш-функцию, заданную hash для data.

Список параметров

hash

Идентификатор хеша. Одна из констант MHASH_hashname.

data

Строка с пользовательскими данными.

key

Если задано, то функция вернет результирующий HMAC. HMAC - это код аутентификации сообщений, использующий хеш-функции, который зависит от указанного ключа. Не все алгоритмы, поддерживаемые mhash, могут использоваться в режиме HMAC.

Возвращаемые значения

Возвращает строку с результирующим хешем (также называемый дайджестом) или HMAC, или FALSE в случае ошибки.


OpenSSL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
    • Флаги проверки
    • Флаги заполнения для ассиметричного шифрования
    • Типы ключей
    • Флаги/константы PKCS7
    • Алгоритмы подписи
    • Алгоритмы шифрования
    • Константы версий
    • Константа SNI (Server Name Indication)
  • Параметры ключа/сертификата
  • Проверка сертификатов
  • Функции OpenSSL
    • openssl_cipher_iv_length — Получает длину инициализирующего вектора шифра
    • openssl_csr_export_to_file — Экспортирует CSR в файл
    • openssl_csr_export — Экспортирует CSR в виде строки
    • openssl_csr_get_public_key — Возвращает открытый ключ CSR
    • openssl_csr_get_subject — Возвращает субъект CSR
    • openssl_csr_new — Генерирует CSR
    • openssl_csr_sign — Подписать CSR с помощью другого сертификата (или им же) и создать сертификат
    • openssl_decrypt — Расшифровывает данные
    • openssl_dh_compute_key — Вычисляет общий секретный ключ для значения удаленного открытого ключа DH и локального ключа DH
    • openssl_digest — Вычисление дайджеста
    • openssl_encrypt — Шифрует данные
    • openssl_error_string — Возвращает сообщение об ошибке openSSL
    • openssl_free_key — Высвобождение ресурса ключа
    • openssl_get_cert_locations — Получить доступные месторасположения сертификатов
    • openssl_get_cipher_methods — Получить список доступных алгоритмов шифрования
    • openssl_get_curve_names — Список доступных имен кривых для ECC
    • openssl_get_md_methods — Получить список доступных методов хеширования
    • openssl_get_privatekey — Псевдоним openssl_pkey_get_private
    • openssl_get_publickey — Псевдоним openssl_pkey_get_public
    • openssl_open — Открыть запечатанные данные
    • openssl_pbkdf2 — Генерирует строки PKCS5 v2 PBKDF2
    • openssl_pkcs12_export_to_file — Экспортирует в совместимый с PKCS#12 файл хранилища сертификатов
    • openssl_pkcs12_export — Экспортирует совместимый с PKCS#12 файл хранилища сертификатов в переменную
    • openssl_pkcs12_read — Разбирает хранилище сертификатов PKCS#12 в массив
    • openssl_pkcs7_decrypt — Расшифровать сообщение, зашифрованное S/MIME
    • openssl_pkcs7_encrypt — Шифрует сообщение S/MIME
    • openssl_pkcs7_read — Экспортировать файл PKCS7 в массив сертификатов PEM
    • openssl_pkcs7_sign — Подписать сообщение S/MIME
    • openssl_pkcs7_verify — Проверить подпись сообщения S/MIME
    • openssl_pkey_export_to_file — Записывает в файл ключ в формате PEM
    • openssl_pkey_export — Получает строку с ключем в формате PEM
    • openssl_pkey_free — Освобождает ресурс закрытого ключа
    • openssl_pkey_get_details — Получает массив с детальной информацией о ключе
    • openssl_pkey_get_private — Получить закрытый ключ
    • openssl_pkey_get_public — Извлекает открытый ключ из сертификата и подготавливает его к использованию
    • openssl_pkey_new — Генерирует новый секретный ключ
    • openssl_private_decrypt — Расшифровывает данные с помощью закрытого ключа
    • openssl_private_encrypt — Шифрует данные секретным ключем
    • openssl_public_decrypt — Расшифровка данных с помощью открытого ключа
    • openssl_public_encrypt — Шифрование данных открытым ключем
    • openssl_random_pseudo_bytes — Генерирует псевдослучайную последовательность байт
    • openssl_seal — Запечатать (зашифровать) данные
    • openssl_sign — Генерация подписи
    • openssl_spki_export_challenge — Экспорт вызова, связанного с подписанным ключем и вызовом
    • openssl_spki_export — Экспорт открытого ключа в формате PEM из подписанного открытого ключа с вызовом
    • openssl_spki_new — Создание нового подписанного открытого ключа с вызовом
    • openssl_spki_verify — Проверяет подписанный открытый ключ и вызов
    • openssl_verify — Сверка сигнатуры
    • openssl_x509_check_private_key — Проверить, относится ли секретный ключ к сертификату
    • openssl_x509_checkpurpose — Проверяет, можно ли использовать сертификат для конкретных задач
    • openssl_x509_export_to_file — Экспортирует сертификат в файл
    • openssl_x509_export — Экспортирует сертификат в строку
    • openssl_x509_fingerprint — Вычисляет отпечаток или дайджест, заданный сертификатом X.509
    • openssl_x509_free — Высвобождает ресурс сертификата
    • openssl_x509_parse — Разобрать сертификат X509 и получить массив с данными о нем
    • openssl_x509_read — Получить идентификатор ресурса для сертификата X.509


Введение

Это расширение использует функции библиотеки » OpenSSL для симметричных и асимметричных шифрования и дешифровки, PBKDF2, PKCS7, PKCS12, X509 и других криптографических операций. Также оно реализует потоки TLS.

OpenSSL предоставляет множество возможностей, которые, на данный момент, не поддерживаются этим расширением. Многие из них в будущем будут добавлены.


Требования

Для использования функций OpenSSL вам необходимо установить библиотеку » OpenSSL. Для версии PHP 5 необходима как минимум OpenSSL версии >= 0.9.6. Однако поздние версии PHP 5 желательно использовать минимум с OpenSSL >= 0.9.8. Эта версия также является минимальной для PHP 7.0. PHP версий >= 7.1.0 требуют OpenSSL >= 1.0.1.

Внимание

Настоятельно рекомендуем использовать последнюю версию OpenSSL, в противном случае ваш веб-сервер может быть уязвим для атак.


Установка

Для поддержки OpenSSL в PHP вам необходимо скомпилировать его с опцией --with-openssl[=DIR] .

Также библиотека OpenSSL имеет дополнительные требования для нормальной работы во время исполнения. Самое главное, OpenSSL требуется доступ к генераторам случайных и псевдослучайных чисел; на большинстве систем Unix/Linux, это означает доступ к устройствам /dev/urandom или /dev/random.

Начиная с PHP 5.6.3, доступна опция конфигурации --with-system-ciphers , которая заставляет PHP использовать системный список шифров вместо жестко заданного по умолчанию.

Замечание: Замечания для пользователей Win32

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: libeay32.dll, либо, начиная с OpenSSL 1.1, libcrypto-*.dll.

Дополнительно, если вы собираетесь использовать функции генерации ключей и подписи сертификатов, вам придется установить корректный файл openssl.cnf в вашей системе. Мы включили демонстрационный конфигурационный файл в бинарную поставку под win32. Он лежит в директории extras/openssl.

PHP будет искать openssl.cnf, используя следующую логику:

  • Переменная окружения OPENSSL_CONF. Если установлена, то должна содержать путь (включая имя файла) до конфигурационного файла.
  • переменная окружения SSLEAY_CONF. Если установлена, то должна содержать путь (включая имя файла) до конфигурационного файла.
  • Файл openssl.cnf будет искаться по стандартному пути для сертификатов, заданному при компиляции DLL. Обычно он задан как C:\Program Files\Common Files\SSL\openssl.cnf (x64) или C:\Program Files (x86)\Common Files\SSL\openssl.cnf (x86), или до PHP 7.4.0, как C:\usr\local\ssl\openssl.cnf.

При установке вы должны определить, установить ли файл по стандартному пути или хранить его в другом месте и задать путь к нему через переменные окружения, что полезно при использовании виртуальных хостов. Обратите внимание, что путь по умолчанию можно переопределить в скрипте используя параметр configargs функции, которой требуется этот файл.
Предостережение

Убедитесь, что непривилегированным пользователям не разрешено изменять openssl.cnf.

Список изменений

Версия | Описание
7.4.0 | Конфигурационный путь OpenSSL был изменен с C:\usr\local\ssl на C:\Program Files\Common Files\SSL или C:\Program Files (x86)\Common Files\SSL, соответственно.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки openssl
Имя | По умолчанию | Место изменения | Список изменений
openssl.cafile | "" | PHP_INI_PERDIR | Доступно с PHP 5.6.0.
openssl.capath | "" | PHP_INI_PERDIR | Доступно с PHP 5.6.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

openssl.cafile string

Местоположение файла Certificate Authority на локальной файловой системе, который должен использоваться с опцией контекста verify_peer для аутентификации удаленной точки.

openssl.capath string

Если cafile не задан или сертификат не найден, то директория, указанная в capath будет использована для поиска сертификата. capath должна быть корректно хешированной директорией сертификата.

Также смотрите опции контекста потока SSL.


Типы ресурсов

В модуле OpenSSL определены три типа ресурсов. Первый - идентификатор pkey (открытый или закрытый ключ). Второй - один из идентификаторов сертификата X509. Третий - идентификатор CSR (запрос на подпись сертификата).


Предопределенные константы

Содержание

  • Флаги проверки
  • Флаги заполнения для ассиметричного шифрования
  • Типы ключей
  • Флаги/константы PKCS7
  • Алгоритмы подписи
  • Алгоритмы шифрования
  • Константы версий
  • Константа SNI (Server Name Indication)

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.


Флаги проверки

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)


Флаги заполнения для ассиметричного шифрования

OPENSSL_PKCS1_PADDING (integer)
OPENSSL_SSLV23_PADDING (integer)
OPENSSL_NO_PADDING (integer)
OPENSSL_PKCS1_OAEP_PADDING (integer)


Типы ключей

OPENSSL_KEYTYPE_RSA (integer)
OPENSSL_KEYTYPE_DSA (integer)
OPENSSL_KEYTYPE_DH (integer)
OPENSSL_KEYTYPE_EC (integer)
Эта константа доступна, только если PHP скомпилирован с OpenSSL 0.9.8+. Добавлено в PHP 5.2.0.


Флаги/константы PKCS7

Функции S/MIME используют флаги, которые определяются как набор битов, который может включать одну или несколько следующих констант:

Константы PKCS7
Константа | Описание
PKCS7_TEXT | Добавляет заголовок содержимого text/plain в зашифрованное или подписанное сообщение. При расшифровке или проверке заголовки будут получены при выводе. Если после расшифровки или проверки полученное сообщение не имеет MIME-тип text/plain, произойдет ошибка.
PKCS7_BINARY | Обычно входящее сообщение приводится к "каноничному" формату, что эффективно при использовании CR и LF в конце строки: это требуется сертификацией S/MIME. Когда данная опция указана, проблем с трансляцией символов конца строки не происходит. Это удобно в случае обработки бинарных данных, которые могут быть не в формате MIME.
PKCS7_NOINTERN | При проверке сообщения, сертификаты (если таковые имеются), включенные в сообщения как правило проверяются на наличие подписи. С данной опцией используются только сертификаты, определенные в параметре extracerts функции openssl_pkcs7_verify(). Все прочие сертификаты остаются неподтвержденными центром сертификации.
PKCS7_NOVERIFY | Не проверять подписантов сертификата подписанного сообщения.
PKCS7_NOCHAIN | Не проверять подписантов сертификата по цепочке: то есть не использовать сертификаты в подписанном сообщении как неавторизованные центром сертификации.
PKCS7_NOCERTS | При подписании сообщения, сертификат подписанта как правило включается в сообщение - с данной опцией сертификат не добавляется. Это позволяет снизить размер подписанного сообщения, но проверяющий должен иметь копию сертификата подписанта, доступную локально (это не требуется при использовании параметра extracerts функции openssl_pkcs7_verify()).
PKCS7_NOATTR | Обычно, когда сообщение подписано, в набор атрибутов также включается время подписания и поддерживаемый симметричный алгоритм. С помощью данной опции такое добавление не происходит.
PKCS7_DETACHED | При подписании сообщения, используйте подписание в открытом виде (cleartext signing) с MIME-типом "multipart/signed". Это выполняется по умолчанию, если не указывать ничего в flags функции openssl_pkcs7_sign(). Если выключить эту опцию, сообщение будет подписано с использованием opaque signing, что более устойчиво к передаче почтой, но не может быть прочитано почтовыми агентами, которые не поддерживают S/MIME.
PKCS7_NOSIGS | Не пытаться проверить подписи у сообщения


Алгоритмы подписи

OPENSSL_ALGO_DSS1 (integer)
OPENSSL_ALGO_SHA1 (integer)
Используется как алгоритм по умолчанию для функций openssl_sign() и openssl_verify().
OPENSSL_ALGO_SHA224 (integer)
Добавлено в PHP 5.4.8.
OPENSSL_ALGO_SHA256 (integer)
Добавлено в PHP 5.4.8.
OPENSSL_ALGO_SHA384 (integer)
Добавлено в PHP 5.4.8.
OPENSSL_ALGO_SHA512 (integer)
Добавлено в PHP 5.4.8.
OPENSSL_ALGO_RMD160 (integer)
Добавлено в PHP 5.4.8.
OPENSSL_ALGO_MD5 (integer)
OPENSSL_ALGO_MD4 (integer)
OPENSSL_ALGO_MD2 (integer)
Начиная с PHP 5.2.13 и PHP 5.3.2, эта константа доступна, только если PHP скомпилирован с поддержкой MD2. Для этого нужно передать в -DHAVE_OPENSSL_MD2_H CFLAG при компиляции PHP и включить md2 при компиляции OpenSSL 1.0.0+.


Алгоритмы шифрования

OPENSSL_CIPHER_RC2_40 (integer)
OPENSSL_CIPHER_RC2_128 (integer)
OPENSSL_CIPHER_RC2_64 (integer)
OPENSSL_CIPHER_DES (integer)
OPENSSL_CIPHER_3DES (integer)
OPENSSL_CIPHER_AES_128_CBC (integer)
Добавлено в PHP 5.4.0.
OPENSSL_CIPHER_AES_192_CBC (integer)
Добавлено в PHP 5.4.0.
OPENSSL_CIPHER_AES_256_CBC (integer)
Добавлено в PHP 5.4.0.


  • « Алгоритмы шифрования
  • Константа SNI (Server Name Indication) »
  • PHP Manual
  • Предопределенные константы
  • Константы версий

Константы версий

OPENSSL_VERSION_TEXT (string)
Добавлено в PHP 5.2.0.
OPENSSL_VERSION_NUMBER (integer)
Добавлено в PHP 5.2.0.


Константа SNI (Server Name Indication)

OPENSSL_TLSEXT_SERVER_NAME (string)
Независимо от доступности SNI.

Замечание:

Эта константа добавлена в версии 5.3.2 и требует PHP собранного с библиотекой OpenSSL версии 0.9.8j или выше.


Параметры ключа/сертификата

Некоторые функции openssl требуют параметры в виде ключа или сертификата. Можно использовать один из следующих вариантов:

  • Сертификаты

    1. Ресурс X.509, возвращаемый функцией openssl_x509_read()
    2. Строка формата file://path/to/cert.pem; указанный файл должен содержать сертификат в формате PEM
    3. Строка, в которой находится содержимое сертификата/ключа, закодированного PEM

  • Запросы подписи сертификата (Certificate Signing Requests или CSRs)

    1. Ресурс CSR, полученный из openssl_csr_new()
    2. Строка вида file://path/to/csr.pem; указанный файл должен содержать CSR в формате PEM
    3. Строка с CSR, кодированная в формате PEM, должна начинаться с -----BEGIN CERTIFICATE REQUEST-----

  • Открытые/закрытые ключи

    1. Ресурс ключа, возвращаемый функциями openssl_get_publickey() или openssl_get_privatekey()
    2. Только для открытых ключей: ресурс X.509
    3. Строка формата file://path/to/file.pem - указанный файл должен содержать сертификат в формате PEM (может содержать оба ключа)
    4. Строка, в которой находится содержимое сертификата/ключа, закодированного PEM
    5. Для закрытых ключей возможно использование синтаксиса array($key, $passphrase) где $key представляет ключ указанный при помощи формата file:// или текстовое содержимое описанное выше, а $passphrase представляет строку, содержащую пароль для указанного закрытого ключа


Проверка сертификатов

Когда происходит вызов функции проверки подписи/сертификата, параметр cainfo должен содержать массив файлов и директорий, указывающие на размещение доверенных корневых сертификатов. Если указывается директория, она должна соответствовать директории, которую сможет использовать команда openssl.


Функции OpenSSL

Содержание

  • openssl_cipher_iv_length — Получает длину инициализирующего вектора шифра
  • openssl_csr_export_to_file — Экспортирует CSR в файл
  • openssl_csr_export — Экспортирует CSR в виде строки
  • openssl_csr_get_public_key — Возвращает открытый ключ CSR
  • openssl_csr_get_subject — Возвращает субъект CSR
  • openssl_csr_new — Генерирует CSR
  • openssl_csr_sign — Подписать CSR с помощью другого сертификата (или им же) и создать сертификат
  • openssl_decrypt — Расшифровывает данные
  • openssl_dh_compute_key — Вычисляет общий секретный ключ для значения удаленного открытого ключа DH и локального ключа DH
  • openssl_digest — Вычисление дайджеста
  • openssl_encrypt — Шифрует данные
  • openssl_error_string — Возвращает сообщение об ошибке openSSL
  • openssl_free_key — Высвобождение ресурса ключа
  • openssl_get_cert_locations — Получить доступные месторасположения сертификатов
  • openssl_get_cipher_methods — Получить список доступных алгоритмов шифрования
  • openssl_get_curve_names — Список доступных имен кривых для ECC
  • openssl_get_md_methods — Получить список доступных методов хеширования
  • openssl_get_privatekey — Псевдоним openssl_pkey_get_private
  • openssl_get_publickey — Псевдоним openssl_pkey_get_public
  • openssl_open — Открыть запечатанные данные
  • openssl_pbkdf2 — Генерирует строки PKCS5 v2 PBKDF2
  • openssl_pkcs12_export_to_file — Экспортирует в совместимый с PKCS#12 файл хранилища сертификатов
  • openssl_pkcs12_export — Экспортирует совместимый с PKCS#12 файл хранилища сертификатов в переменную
  • openssl_pkcs12_read — Разбирает хранилище сертификатов PKCS#12 в массив
  • openssl_pkcs7_decrypt — Расшифровать сообщение, зашифрованное S/MIME
  • openssl_pkcs7_encrypt — Шифрует сообщение S/MIME
  • openssl_pkcs7_read — Экспортировать файл PKCS7 в массив сертификатов PEM
  • openssl_pkcs7_sign — Подписать сообщение S/MIME
  • openssl_pkcs7_verify — Проверить подпись сообщения S/MIME
  • openssl_pkey_export_to_file — Записывает в файл ключ в формате PEM
  • openssl_pkey_export — Получает строку с ключем в формате PEM
  • openssl_pkey_free — Освобождает ресурс закрытого ключа
  • openssl_pkey_get_details — Получает массив с детальной информацией о ключе
  • openssl_pkey_get_private — Получить закрытый ключ
  • openssl_pkey_get_public — Извлекает открытый ключ из сертификата и подготавливает его к использованию
  • openssl_pkey_new — Генерирует новый секретный ключ
  • openssl_private_decrypt — Расшифровывает данные с помощью закрытого ключа
  • openssl_private_encrypt — Шифрует данные секретным ключем
  • openssl_public_decrypt — Расшифровка данных с помощью открытого ключа
  • openssl_public_encrypt — Шифрование данных открытым ключем
  • openssl_random_pseudo_bytes — Генерирует псевдослучайную последовательность байт
  • openssl_seal — Запечатать (зашифровать) данные
  • openssl_sign — Генерация подписи
  • openssl_spki_export_challenge — Экспорт вызова, связанного с подписанным ключем и вызовом
  • openssl_spki_export — Экспорт открытого ключа в формате PEM из подписанного открытого ключа с вызовом
  • openssl_spki_new — Создание нового подписанного открытого ключа с вызовом
  • openssl_spki_verify — Проверяет подписанный открытый ключ и вызов
  • openssl_verify — Сверка сигнатуры
  • openssl_x509_check_private_key — Проверить, относится ли секретный ключ к сертификату
  • openssl_x509_checkpurpose — Проверяет, можно ли использовать сертификат для конкретных задач
  • openssl_x509_export_to_file — Экспортирует сертификат в файл
  • openssl_x509_export — Экспортирует сертификат в строку
  • openssl_x509_fingerprint — Вычисляет отпечаток или дайджест, заданный сертификатом X.509
  • openssl_x509_free — Высвобождает ресурс сертификата
  • openssl_x509_parse — Разобрать сертификат X509 и получить массив с данными о нем
  • openssl_x509_read — Получить идентификатор ресурса для сертификата X.509


Получает длину инициализирующего вектора шифра

  • « Функции OpenSSL
  • openssl_csr_export_to_file »
  • PHP Manual
  • Функции OpenSSL
  • Получает длину инициализирующего вектора шифра

openssl_cipher_iv_length

(PHP 5 >= 5.3.3, PHP 7)

openssl_cipher_iv_length — Получает длину инициализирующего вектора шифра

Описание

openssl_cipher_iv_length ( string $method ) : int

Возвращает длину инициализирующего вектора шифра.

Список параметров

method

Метод шифрования. Список потенциальных значений можно получить с помощью openssl_get_cipher_methods().

Возвращаемые значения

Возвращает длину инициализирующего вектора шифра или FALSE.

Ошибки

Выдает ошибку уровня E_WARNING в случае передачи неизвестного алгоритма шифрования.

Примеры

Пример #1 Пример использования openssl_cipher_iv_length()

<?php
$method = 'AES-128-CBC';
$ivlen = openssl_cipher_iv_length($method);

echo $ivlen;
?>

Результатом выполнения данного примера будет что-то подобное:

16


Экспортирует CSR в файл

  • « openssl_cipher_iv_length
  • openssl_csr_export »
  • PHP Manual
  • Функции OpenSSL
  • Экспортирует CSR в файл

openssl_csr_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_csr_export_to_file — Экспортирует CSR в файл

Описание

openssl_csr_export_to_file ( mixed $csr , string $outfilename [, bool $notext = TRUE ] ) : bool

openssl_csr_export_to_file() записывает запрос на подпись сертификата csr в формате PEM в файл outfilename.

Список параметров

csr

Для получения списка допустимых значений смотрите параметры CSR.

outfilename

Путь к файлу.

notext

Необязательный параметр notext влияет на детализацию сообщений вывода; если он установлен в FALSE, то в вывод добавляется дополнительная человекочитаемая информация. Значением по умолчанию notext является TRUE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования openssl_csr_export_to_file()

<?php
$subject = array(
    "commonName" => "example.com",
);
$private_key = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$csr = openssl_csr_new($subject, $private_key, array('digest_alg' => 'sha384') );
openssl_pkey_export_to_file($private_key, 'example-priv.key');
// Наряду с объектом, CSR содержит открытый ключ, соответствующий секретному ключу
openssl_csr_export_to_file($csr, 'example-csr.pem');
?>

Смотрите также

  • openssl_csr_export() - Экспортирует CSR в виде строки
  • openssl_csr_new() - Генерирует CSR
  • openssl_csr_sign() - Подписать CSR с помощью другого сертификата (или им же) и создать сертификат


Экспортирует CSR в виде строки

  • « openssl_csr_export_to_file
  • openssl_csr_get_public_key »
  • PHP Manual
  • Функции OpenSSL
  • Экспортирует CSR в виде строки

openssl_csr_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_csr_export — Экспортирует CSR в виде строки

Описание

openssl_csr_export ( mixed $csr , string &$out [, bool $notext = TRUE ] ) : bool

openssl_csr_export() записывает запрос на подпись сертификата csr в формате PEM в переменную out, которая передается по ссылке.

Список параметров

csr

Для получения списка допустимых значений смотрите параметры CSR.

out

в случае успеха, в этой переменной будет сохранен CSR в формате PEM.

notext

Необязательный параметр notext влияет на детализацию сообщений вывода; если он установлен в FALSE, то в вывод добавляется дополнительная человекочитаемая информация. Значением по умолчанию notext является TRUE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования openssl_csr_export()

<?php
$subject = array(
    "commonName" => "example.com",
);
$private_key = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$configargs = array(
    'digest_alg' => 'sha256WithRSAEncryption'
);
$csr = openssl_csr_new($subject, $private_key, $configargs);
openssl_csr_export($csr, $csr_string);
echo $csr_string;
?>

Смотрите также

  • openssl_csr_export_to_file() - Экспортирует CSR в файл
  • openssl_csr_new() - Генерирует CSR
  • openssl_csr_sign() - Подписать CSR с помощью другого сертификата (или им же) и создать сертификат


Возвращает открытый ключ CSR

  • « openssl_csr_export
  • openssl_csr_get_subject »
  • PHP Manual
  • Функции OpenSSL
  • Возвращает открытый ключ CSR

openssl_csr_get_public_key

(PHP 5 >= 5.2.0, PHP 7)

openssl_csr_get_public_key — Возвращает открытый ключ CSR

Описание

openssl_csr_get_public_key ( mixed $csr [, bool $use_shortnames = TRUE ] ) : resource

openssl_csr_get_public_key() извлекает открытый ключ из csr и подготавливает его для использования в других функциях.

Список параметров

csr

Для получения списка допустимых значений смотрите параметры CSR.

use_shortnames
Внимание

Этот параметр игнорируется

Возвращаемые значения

Возвращает идентификатор ресурса ключа или FALSE.

Примеры

Пример #1 Пример использования openssl_csr_get_public_key()

<?php
$subject = array(
    "commonName" => "example.com",
);
$private_key = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$csr = openssl_csr_new($subject, $private_key, array('digest_alg' => 'sha256') );
$public_key = openssl_csr_get_public_key($csr);
$info = openssl_pkey_get_details($public_key);
echo $info['key'];
?>

Смотрите также

  • openssl_csr_get_subject() - Возвращает субъект CSR
  • openssl_csr_new() - Генерирует CSR
  • openssl_pkey_get_details() - Получает массив с детальной информацией о ключе
  • openssl_pkey_export_to_file() - Записывает в файл ключ в формате PEM
  • openssl_pkey_export() - Получает строку с ключем в формате PEM


Возвращает субъект CSR

  • « openssl_csr_get_public_key
  • openssl_csr_new »
  • PHP Manual
  • Функции OpenSSL
  • Возвращает субъект CSR

openssl_csr_get_subject

(PHP 5 >= 5.2.0, PHP 7)

openssl_csr_get_subject — Возвращает субъект CSR

Описание

openssl_csr_get_subject ( mixed $csr [, bool $use_shortnames = TRUE ] ) : array

openssl_csr_get_subject() возвращает известную об субъекте информацию закодированную в csr, включая поля commonName (CN), organizationName (O), countryName (C) и т.д.

Список параметров

csr

Для получения списка допустимых значений смотрите параметры CSR.

use_shortnames

shortnames определяет, как данные индексируются в массиве, если shortnames задан как TRUE (по умолчанию), то поля будут индексированы именами в коротком формате, в противном случае будут использованы длинные имена. Например, CN - короткое имя для commonName.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования openssl_csr_get_subject()

<?php
$subject = array(
    "countryName" => "CA",
    "stateOrProvinceName" => "Alberta",
    "localityName" => "Calgary",
    "organizationName" => "XYZ Widgets Inc",
    "organizationalUnitName" => "PHP Documentation Team",
    "commonName" => "Wez Furlong",
    "emailAddress" => "wez@example.com",
);
$private_key = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$configargs = array(
    'digest_alg' => 'sha512WithRSAEncryption'
);
$csr = openssl_csr_new($subject, $privkey, $configargs);
print_r(openssl_csr_get_subject($csr));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [C] => CA
    [ST] => Alberta
    [L] => Calgary
    [O] => XYZ Widgets Inc
    [OU] => PHP Documentation Team
    [CN] => Wez Furlong
    [emailAddress] => wez@example.com
)

Смотрите также

  • openssl_csr_new() - Генерирует CSR
  • openssl_csr_get_public_key() - Возвращает открытый ключ CSR
  • openssl_x509_parse() - Разобрать сертификат X509 и получить массив с данными о нем


Генерирует CSR

  • « openssl_csr_get_subject
  • openssl_csr_sign »
  • PHP Manual
  • Функции OpenSSL
  • Генерирует CSR

openssl_csr_new

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_csr_new — Генерирует CSR

Описание

openssl_csr_new ( array $dn , resource &$privkey [, array $configargs [, array $extraattribs ]] ) : mixed

openssl_csr_new() создает новый запрос на подпись сертификата (Certificate Signing Request или CSR) основываясь на информации указанной в параметре dn.

Замечание: Для корректной работы этой функции должен существовать правильный openssl.cnf. Для более подробной информации смотрите замечания под разделом установки.

Список параметров

dn

Уникальное имя (Distinguished Name) или поля субъекта для использования в сертификате.

privkey

Параметр privkey должен быть задан закрытым ключем ранее сгенерированным функцией openssl_pkey_new() (или полученный с помощью любой другой функции семейства openssl_pkey). Соответствующая открытая часть ключа будет использована для подписания CSR.

configargs

По умолчанию для инициализации запроса используется информация из вашего системного openssl.conf. Вы можете указать секцию конфигурационного файла путем задания ключа config_section_section в configargs. Также вы можете задать альтернативный файл конфигурации openssl путем задания ключа config значением пути до него. Соответствие ключей, указанных в configargs ключам из openssl.conf представлено ниже.

Переопредлеление конфигурации
Ключ configargs | Тип | Соответствие в openssl.conf | Описание
digest_alg | string | default_md | Один из методов openssl_get_md_methods()
x509_extensions | string | x509_extensions | Определяет, какое расширение должно использоваться для создания сертификата x509
req_extensions | string | req_extensions | Определяет, какое расширение должно использоваться для создания CSR
private_key_bits | integer | default_bits | Задает, сколько бит должно использоваться для генерации закрытого ключа
private_key_type | integer | none | Задает тип создаваемого закрытого ключа. Одна из констант: OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_RSA или OPENSSL_KEYTYPE_EC. По умолчанию OPENSSL_KEYTYPE_RSA.
encrypt_key | boolean | encrypt_key | Должен ли шифроваться (паролем) экспортируемый ключ?
encrypt_key_cipher | integer | none | Одна из констант шифров.
curve_name | string | none | Одно из openssl_get_curve_names().
config | string | N/A | Путь до альтернативного файла конфигурации openssl.conf.

extraattribs

extraattribs используется для указания дополнительных опций для CSR. И dn, и extraattribs являются ассоциативными массивами, ключи которых преобразуются в OI-ы и применяются к соответствующим частям запроса.

Возвращаемые значения

Возвращает CSR или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.0 | Параметр configargs теперь поддерживает curve_name.

Примеры

Пример #1 Создание самоподписанного сертификата

<?php
// для сервера сертификации SSL, commonName является доменным именем
// для сертификатов S/MIME, commonName является владельцем расположения адреса email
// и поля идентификации относятся к владельцу домена или электронной почты,
// подлежащим защите
$dn = array(
    "countryName" => "GB",
    "stateOrProvinceName" => "Somerset",
    "localityName" => "Glastonbury",
    "organizationName" => "The Brain Room Limited",
    "organizationalUnitName" => "PHP Documentation Team",
    "commonName" => "Wez Furlong",
    "emailAddress" => "wez@example.com"
);

// Создание пары закрытый/открытый ключ
$privkey = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
));

// Создание CSR
$csr = openssl_csr_new($dn, $privkey, array('digest_alg' => 'sha256'));

// Создание самоподписанного сертификата со сроком жизни 365 дней
$x509 = openssl_csr_sign($csr, null, $privkey, $days=365, array('digest_alg' => 'sha256'));

// Сохранение закрытого ключа, CSR и самоподписанного сертификата
openssl_csr_export($csr, $csrout) and var_dump($csrout);
openssl_x509_export($x509, $certout) and var_dump($certout);
openssl_pkey_export($privkey, $pkeyout, "mypassword") and var_dump($pkeyout);

// Покажем возникшие ошибки, если они были
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>

Пример #2 Создание самоподписанного ECC сертификата (начиная с PHP 7.1.0)

<?php
$subject = array(
    "commonName" => "docs.php.net",
);

// Создание пары закрытый/открытый ключ
$private_key = openssl_pkey_new(array(
    "private_key_type" => OPENSSL_KEYTYPE_EC,
    "curve_name" => 'prime256v1',
));

// Создание CSR
$csr = openssl_csr_new($subject, $private_key, array('digest_alg' => 'sha384'));

// Создание самоподписанного EC сертификата
$x509 = openssl_csr_sign($csr, null, $private_key, $days=365, array('digest_alg' => 'sha384'));
openssl_x509_export_to_file($x509, 'ecc-cert.pem');
openssl_pkey_export_to_file($private_key, 'ecc-private.key');
?>

Смотрите также

  • openssl_csr_sign() - Подписать CSR с помощью другого сертификата (или им же) и создать сертификат


Подписать CSR с помощью другого сертификата (или им же) и создать сертификат

  • « openssl_csr_new
  • openssl_decrypt »
  • PHP Manual
  • Функции OpenSSL
  • Подписать CSR с помощью другого сертификата (или им же) и создать сертификат

openssl_csr_sign

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_csr_sign — Подписать CSR с помощью другого сертификата (или им же) и создать сертификат

Описание

openssl_csr_sign ( mixed $csr , mixed $cacert , mixed $priv_key , int $days [, array $configargs [, int $serial = 0 ]] ) : resource

openssl_csr_sign() создает ресурс сертификата x509 из заданного CSR.

Замечание: Для корректной работы этой функции должен существовать правильный openssl.cnf. Для более подробной информации смотрите замечания под разделом установки.

Список параметров

csr

Созданный с помощью openssl_csr_new() CSR. Также может быть путем на кодированный в PEM CSR, если задано как file://path/to/csr или экспортированной строкой, созданной с помощью openssl_csr_export().

cacert

Создаваемый сертификат будет подписан cacert. Если cacert задан как NULL, то будет сгенерирован самоподписанный сертификат.

priv_key

priv_key - секретный ключ, соответствующий cacert.

days

days - время жизни создаваемого сертификата, в днях.

configargs

Можно тонко настроить подпись CSR с помощью configargs. Подробности смотрите в описании функции openssl_csr_new(), в разделе посвященном параметру configargs.

serial

Опциональный серийный номер выпускаемого сертификата. Если не указано, то по умолчанию будет использован 0.

Возвращаемые значения

Возвращает ресурс сертификата x509, либо FALSE, если что-то пошло не так.

Примеры

Пример #1 Пример openssl_csr_sign() - подпись CSR (как сделать свой собственный CA)

<?php
// Предположим, что CSR получен из поля textarea со веб-страницы
$csrdata = $_POST["CSR"];

// Мы подпишем запрос с помощью сертификата собственного "центра сертификации"
// Для подписи вы можете использовать любой сертификат, но этот процесс бесполезен, если
// сертификат не является доверенным для ПО или пользователей, которые будут его
// использовать

// Нам нужен собственный CA сертификат и его секретный ключ
$cacert = "file://path/to/ca.crt";
$privkey = array("file://path/to/ca.key", "your_ca_key_passphrase");

$usercert = openssl_csr_sign($csrdata, $cacert, $privkey, 365, array('digest_alg'=>'sha256') );

// Теперь напечатаем сертификат, чтобы пользователь мог его скопировать
// и внести в свою локальную конфигурацию (например в файл хранилища SSL сертификатов)
openssl_x509_export($usercert, $certout);
echo $certout;

// Покажем возникшие ошибки, если они были
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>


Расшифровывает данные

  • « openssl_csr_sign
  • openssl_dh_compute_key »
  • PHP Manual
  • Функции OpenSSL
  • Расшифровывает данные

openssl_decrypt

(PHP 5 >= 5.3.0, PHP 7)

openssl_decrypt — Расшифровывает данные

Описание

openssl_decrypt ( string $data , string $method , string $key [, int $options = 0 [, string $iv = "" [, string $tag = "" [, string $aad = "" ]]]] ) : string

Берет необработанную или кодированную в base64 строку и расшифровывает ее с помощью заданного метода и ключа.

Список параметров

data

Данные для расшифровки.

method

Метод шифрования. Список доступных методов можно получить с помощью функции openssl_get_cipher_methods().

key

Ключ.

options

options можно задать одной из констант: OPENSSL_RAW_DATA, OPENSSL_ZERO_PADDING.

iv

Ненулевой инициализирующий вектор.

tag

Тег аутентификации в режиме шифрования AEAD. Если он некорректен, то аутентификация завершится неудачей и функция вернет FALSE.

aad

Дополнительные аутентификационные данные.

Возвращаемые значения

Расшифрованная строка или FALSE в случае возникновения ошибки.

Ошибки

Выдает ошибку уровня E_WARNING, если в параметр method передан неизвестный алгоритм шифрования.

Выдает ошибку уровня E_WARNING, если в параметр iv передано пустое значение.

Список изменений

Версия | Описание
7.1.0 | Добавлены параметры tag и aad.
5.4.0 | Параметр raw_output изменен на options.
5.3.3 | Добавлен параметр iv.

Смотрите также

  • openssl_encrypt() - Шифрует данные


Вычисляет общий секретный ключ для значения удаленного открытого ключа DH и локального ключа DH

  • « openssl_decrypt
  • openssl_digest »
  • PHP Manual
  • Функции OpenSSL
  • Вычисляет общий секретный ключ для значения удаленного открытого ключа DH и локального ключа DH

openssl_dh_compute_key

(PHP 5 >= 5.3.0, PHP 7)

openssl_dh_compute_key — Вычисляет общий секретный ключ для значения удаленного открытого ключа DH и локального ключа DH

Описание

openssl_dh_compute_key ( string $pub_key , resource $dh_key ) : string

Общий секретный ключ, возвращаемый openssl_dh_compute_key() часто используется в качестве ключа шифрования для секретного взаимодействия с удаленной стороной (remote party). Это известно как алгоритм обмена ключами алгоритма Диффи-Хеллмана.

Список параметров

pub_key

Открытый ключ DH удаленной стороны.

dh_key

Локальный закрытый ключ DH, соответствующий открытому ключу для обмена с удаленной стороной.

Возвращаемые значения

Возвращает общий секретный ключ или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Вычисление общего секретного кдюча

Сначала сгенерируйте открытую/закрытую пару ключей DH локально, и удаленная сторона сделает то же самое. Нам нужно использовать утилиту командной строки openssl.

# генерация пары ключей (закрытый/открытый)
openssl dhparam -out dhparam.pem 2048
openssl genpkey -paramfile dhparam.pem -out privatekey.pem

# извлечение только открытого ключа
openssl pkey -in privatekey.pem -pubout -out publickey.pem

Затем отправьте свой открытый ключ удаленной стороне. Используйте команду openssl pkey для просмотра открытого ключа, который будет отправлен удаленной стороне.

openssl pkey -pubin -in remotepublickey.pem -text -noout

Результатом выполнения данного примера будет что-то подобное:

PKCS#3 DH Public-Key: (2048 bit)
    public-key:
        67:e5:e5:fa:e0:7b:0f:96:2c:dc:96:44:5f:50:02:
        9e:8d:c2:6c:04:68:b0:d1:1d:75:66:fc:63:f5:e3:
        42:30:b8:96:c1:45:cc:08:60:b4:21:3b:dd:ee:66:
        88:db:77:d9:1e:11:89:d4:5c:f2:7a:f2:f1:fe:1c:
        77:9d:6f:13:b8:b2:56:00:ef:cb:3b:60:79:74:02:
        98:f5:f9:8e:3e:b5:62:08:de:ca:8c:c3:40:4a:80:
        79:d5:43:06:17:a8:19:56:af:cc:95:5e:e2:32:2d:
        d2:14:7b:76:5a:9a:f1:3c:76:76:35:cc:7b:c1:a5:
        f4:39:e5:b6:ca:71:3f:7c:3f:97:e5:ab:86:c1:cd:
        0e:e6:ee:04:c9:e6:2d:80:7e:59:c0:49:eb:b6:64:
        4f:a8:f9:bb:a3:87:b3:3d:76:01:9e:2b:16:94:a4:
        37:30:fb:35:e2:63:be:23:90:b9:ef:3f:46:46:04:
        94:8f:60:79:7a:51:55:d6:1a:1d:f5:d9:7f:4a:3e:
        aa:ac:b0:d0:82:cc:c2:e0:94:e0:54:c1:17:83:0b:
        74:08:4d:5a:79:ae:ff:7f:1c:04:ab:23:39:4a:ae:
        87:83:55:43:ab:7a:7c:04:9d:20:80:bb:af:5f:16:
        a3:e3:20:b9:21:47:8c:f8:7f:a8:60:80:9e:61:77:
        36
 [...abbreviated...]

Используйте открытый ключ в качестве параметра для openssl_dh_compute_key() для вычисления общего секретного ключа.

<?php
$remote_public_key = '67e5e5fae07b0f962cdc96445f50029e8dc26c0468b0d11d7566fc63f5e34230b896c145cc0860b4213bddee6688db77d91e1189d45cf27af2f1fe1c779d6f13b8b25600efcb3b6079740298f5f98e3eb56208deca8cc3404a8079d5430617a81956afcc955ee2322dd2147b765a9af13c767635cc7bc1a5f439e5b6ca713f7c3f97e5ab86c1cd0ee6ee04c9e62d807e59c049ebb6644fa8f9bba387b33d76019e2b1694a43730fb35e263be2390b9ef3f464604948f60797a5155d61a1df5d97f4a3eaaacb0d082ccc2e094e054c117830b74084d5a79aeff7f1c04ab23394aae87835543ab7a7c049d2080bbaf5f16a3e320b921478cf87fa860809e617736';

$local_priv_key = openssl_pkey_get_private('file://privatekey.pem');

$shared_secret = openssl_dh_compute_key(hex2bin($remote_public_key), $local_priv_key);
echo bin2hex($shared_secret)."\n";
?>

Пример #2 Создание пары ключей DH (открытый/закрытый)

Сначала сгенерируйте простой число DH

openssl dhparam -out dhparam.pem 2048
openssl dh -in dhparam.pem -noout  -text

Результатом выполнения данного примера будет что-то подобное:

    PKCS#3 DH Parameters: (2048 bit)
        prime:
            00:a3:25:1e:73:3f:44:b9:2b:ee:f4:9d:9f:37:6a:
            4b:fd:1d:bd:f4:af:da:c8:10:77:59:41:c6:5f:73:
            d2:88:29:39:cd:1c:5f:c3:9f:0f:22:d2:9c:20:c1:
            e4:c0:18:03:b8:b6:d8:da:ad:3b:39:a6:da:8e:fe:
            12:30:e9:03:5d:22:ba:ef:18:d2:7b:69:f9:5b:cb:
            78:c6:0c:8c:6b:f2:49:92:c2:49:e0:45:77:72:b3:
            55:36:30:f2:40:17:89:18:50:03:fa:2d:54:7a:7f:
            34:4c:73:32:b6:88:14:51:14:be:80:57:95:e6:a3:
            f6:51:ff:17:47:4f:15:d6:0e:6c:47:53:72:2c:2a:
            4c:21:cb:7d:f3:49:97:c9:47:5e:40:33:7b:99:52:
            7e:7a:f3:52:27:80:de:1b:26:6b:40:bb:14:11:0b:
            fb:e6:d8:2f:cf:a0:06:2f:96:b9:1c:0b:b4:cb:d3:
            a6:62:9c:48:67:f6:81:f2:c6:ff:45:03:0a:9d:67:
            9d:ce:27:d9:6b:48:5d:ca:fb:c2:5d:84:9b:8b:cb:
            40:c7:a4:0c:8a:6e:f4:ab:ba:b6:10:c3:b8:25:4d:
            cf:60:96:f4:db:e8:00:1c:58:47:7a:fb:51:86:d1:
            22:d7:4e:94:31:7a:d5:da:3d:53:de:da:bb:64:8d:
            62:6b
        generator: 2 (0x2)

Значения prime и generator передаются в виде параметров p и g в openssl_pkey_new()

<?php
$configargs = array();
$configargs['p'] = hex2bin('00a3251e733f44b92beef49d9f376a4bfd1dbdf4afdac810775941c65f73d2882939cd1c5fc39f0f22d29c20c1e4c01803b8b6d8daad3b39a6da8efe1230e9035d22baef18d27b69f95bcb78c60c8c6bf24992c249e0457772b3553630f2401789185003fa2d547a7f344c7332b688145114be805795e6a3f651ff17474f15d60e6c4753722c2a4c21cb7df34997c9475e40337b99527e7af3522780de1b266b40bb14110bfbe6d82fcfa0062f96b91c0bb4cbd3a6629c4867f681f2c6ff45030a9d679dce27d96b485dcafbc25d849b8bcb40c7a40c8a6ef4abbab610c3b8254dcf6096f4dbe8001c58477afb5186d122d74e94317ad5da3d53dedabb648d626b');
$configargs['g'] = hex2bin('02');
$private_key = openssl_pkey_new(array('dh' => $configargs));
openssl_pkey_export_to_file($private_key,'privatekey.pem',$passphrase='y0urp@s5phr@se');

$details = openssl_pkey_get_details($private_key);
$local_pub_key = $details['dh']['pub_key'];
echo bin2hex($local_pub_key)."\n";// вы можете отправить свой открытый ключ удаленной стороне

$details = openssl_pkey_get_details(openssl_pkey_get_public("file://remotepublickey.pem"));
$remote_public_key = $details['dh']['pub_key'];
$shared_secret = openssl_dh_compute_key($remote_public_key, $private_key);
echo bin2hex($shared_secret)."\n";
?>

Смотрите также

  • openssl_pkey_new() - Генерирует новый секретный ключ
  • openssl_pkey_get_details() - Получает массив с детальной информацией о ключе
  • openssl_pkey_get_private() - Получить закрытый ключ
  • openssl_pkey_get_public() - Извлекает открытый ключ из сертификата и подготавливает его к использованию


Вычисление дайджеста

  • « openssl_dh_compute_key
  • openssl_encrypt »
  • PHP Manual
  • Функции OpenSSL
  • Вычисление дайджеста

openssl_digest

(PHP 5 >= 5.3.0, PHP 7)

openssl_digest — Вычисление дайджеста

Описание

openssl_digest ( string $data , string $method [, bool $raw_output = FALSE ] ) : string

Вычисляет значение дайджеста для переданных данных с помощью указанного метода. Возвращает необработанную строку или строку шестнадцатеричных чисел.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Данные.

method

Метод вычисления дайджеста, например "sha256". Список доступных методов можно получить с помощью openssl_get_md_methods().

raw_output

Если TRUE, то будет возвращена необработанная строка. Иначе будет возвращена строка шестнадцатеричных чисел.

Возвращаемые значения

Возвращает вычесленный дайджест или FALSE в случае возникновения ошибки.

Ошибки

Выдает ошибку уровня E_WARNING, если в параметр method передан неизвестный метод.

Смотрите также

  • openssl_get_md_methods() - Получить список доступных методов хеширования


Шифрует данные

  • « openssl_digest
  • openssl_error_string »
  • PHP Manual
  • Функции OpenSSL
  • Шифрует данные

openssl_encrypt

(PHP 5 >= 5.3.0, PHP 7)

openssl_encrypt — Шифрует данные

Описание

openssl_encrypt ( string $data , string $method , string $key [, int $options = 0 [, string $iv = "" [, string &$tag = NULL [, string $aad = "" [, int $tag_length = 16 ]]]]] ) : string

Шифрует данные с заданным шифром и ключом и возвращает необработанную строку, либо строку кодированную в base64

Список параметров

data

Данные для шифрования.

method

Метод шифрования. Список доступных методов можно получить с помощью функции openssl_get_cipher_methods().

key

Ключ.

options

options можно задать одной из констант: OPENSSL_RAW_DATA, OPENSSL_ZERO_PADDING.

iv

Ненулевой инициализирующий вектор.

tag

Тег аутентификации, передаваемый по ссылке, в режиме шифрования AEAD (GCM или CCM).

aad

Дополнительные аутентификационные данные.

tag_length

Длина параметра tag. Для режима GCM должно быть от 4 до 16.

Возвращаемые значения

Возвращает зашифрованную строку или FALSE в случае возникновения ошибки.

Ошибки

Выдает ошибку уровня E_WARNING, если в параметр method передан неизвестный алгоритм шифрования.

Выдает ошибку уровня E_WARNING, если в параметр iv передано пустое значение.

Список изменений

Версия | Описание
7.1.0 | Добавлены параметры tag, aad и tag_length.
5.4.0 | Параметр raw_output изменен на options.
5.3.3 | Добавлен параметр iv.

Примеры

Пример #1 Пример шифрования AES с аутентификацией в режиме GCM в PHP 7.1+

<?php
// $key должен быть сгенерирован заранее криптографически безопасным образом
// например, с помощью openssl_random_pseudo_bytes
$plaintext = "данные для шифрования";
$cipher = "aes-128-gcm";
if (in_array($cipher, openssl_get_cipher_methods()))
{
    $ivlen = openssl_cipher_iv_length($cipher);
    $iv = openssl_random_pseudo_bytes($ivlen);
    $ciphertext = openssl_encrypt($plaintext, $cipher, $key, $options=0, $iv, $tag);
    // сохраняем $cipher, $iv и $tag для дальнейшей расшифровки
    $original_plaintext = openssl_decrypt($ciphertext, $cipher, $key, $options=0, $iv, $tag);
    echo $original_plaintext."\n";
}
?>

Пример #2 Пример шифрования AES с аутентификацией в PHP 5.6+

<?php
// $key должен быть сгенерирован заранее криптографически безопасным образом
// например, с помощью openssl_random_pseudo_bytes
$plaintext = "данные для шифрования";
$ivlen = openssl_cipher_iv_length($cipher="AES-128-CBC");
$iv = openssl_random_pseudo_bytes($ivlen);
$ciphertext_raw = openssl_encrypt($plaintext, $cipher, $key, $options=OPENSSL_RAW_DATA, $iv);
$hmac = hash_hmac('sha256', $ciphertext_raw, $key, $as_binary=true);
$ciphertext = base64_encode( $iv.$hmac.$ciphertext_raw );

// расшифровка....
$c = base64_decode($ciphertext);
$ivlen = openssl_cipher_iv_length($cipher="AES-128-CBC");
$iv = substr($c, 0, $ivlen);
$hmac = substr($c, $ivlen, $sha2len=32);
$ciphertext_raw = substr($c, $ivlen+$sha2len);
$original_plaintext = openssl_decrypt($ciphertext_raw, $cipher, $key, $options=OPENSSL_RAW_DATA, $iv);
$calcmac = hash_hmac('sha256', $ciphertext_raw, $key, $as_binary=true);
if (hash_equals($hmac, $calcmac))// с PHP 5.6+ сравнение, не подверженное атаке по времени
{
    echo $original_plaintext."\n";
}
?>

Смотрите также

  • openssl_decrypt() - Расшифровывает данные


Возвращает сообщение об ошибке openSSL

  • « openssl_encrypt
  • openssl_free_key »
  • PHP Manual
  • Функции OpenSSL
  • Возвращает сообщение об ошибке openSSL

openssl_error_string

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_error_string — Возвращает сообщение об ошибке openSSL

Описание

openssl_error_string ( void ) : string

openssl_error_string() возвращает сообщение последней произошедшей ошибки библиотеки openSSL. Сообщения об ошибках находятся в очереди, так что эту функцию можно вызывать несколько раз для получения всей информации. При этом последнее сообщение самое свежее.

Возвращаемые значения

Возвращает строку с сообщением об ошибке или FALSE, если сообщений больше нет.

Примеры

Пример #1 Пример использования openssl_error_string()

<?php
// Предположим, что вы вызвали функцию openssl, которая завершилась неудачей
while ($msg = openssl_error_string())
    echo $msg . "<br />\n";
?>


Высвобождение ресурса ключа

  • « openssl_error_string
  • openssl_get_cert_locations »
  • PHP Manual
  • Функции OpenSSL
  • Высвобождение ресурса ключа

openssl_free_key

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_free_key — Высвобождение ресурса ключа

Описание

openssl_free_key ( resource $key_identifier ) : void

openssl_free_key() удаляет ключ, связанный с заданным идентификатором key_identifier из памяти.

Список параметров

key_identifier

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Получить доступные месторасположения сертификатов

  • « openssl_free_key
  • openssl_get_cipher_methods »
  • PHP Manual
  • Функции OpenSSL
  • Получить доступные месторасположения сертификатов

openssl_get_cert_locations

(PHP 5 >= 5.6.0, PHP 7)

openssl_get_cert_locations — Получить доступные месторасположения сертификатов

Описание

openssl_get_cert_locations ( void ) : array

openssl_get_cert_locations() возвращает массив с информацией о доступных хранилищах, в которых будет происходить поиск SSL сертификатов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с месторасположением хранилищ сертификатов.

Примеры

Пример #1 Пример использования openssl_get_cert_locations()

<?php
var_dump(openssl_get_cert_locations());
?>

Результат выполнения данного примера:

array(8) {
  ["default_cert_file"]=>
  string(21) "/usr/lib/ssl/cert.pem"
  ["default_cert_file_env"]=>
  string(13) "SSL_CERT_FILE"
  ["default_cert_dir"]=>
  string(18) "/usr/lib/ssl/certs"
  ["default_cert_dir_env"]=>
  string(12) "SSL_CERT_DIR"
  ["default_private_dir"]=>
  string(20) "/usr/lib/ssl/private"
  ["default_default_cert_area"]=>
  string(12) "/usr/lib/ssl"
  ["ini_cafile"]=>
  string(0) ""
  ["ini_capath"]=>
  string(0) ""
}


Получить список доступных алгоритмов шифрования

  • « openssl_get_cert_locations
  • openssl_get_curve_names »
  • PHP Manual
  • Функции OpenSSL
  • Получить список доступных алгоритмов шифрования

openssl_get_cipher_methods

(PHP 5 >= 5.3.0, PHP 7)

openssl_get_cipher_methods — Получить список доступных алгоритмов шифрования

Описание

openssl_get_cipher_methods ([ bool $aliases = FALSE ] ) : array

Возвращает список доступных алгоритмов шифрования.

Список параметров

aliases

Если хотите включить псевдонимы шифров в возвращаемый массив, то установите этот параметр в значение TRUE.

Возвращаемые значения

Массив (array) доступных методов шифрования.

Примеры

Пример #1 Пример использования openssl_get_cipher_methods()

Показывает, как могут выглядеть доступные шифры и их псевдонимы.

<?php
$ciphers             = openssl_get_cipher_methods();
$ciphers_and_aliases = openssl_get_cipher_methods(true);
$cipher_aliases      = array_diff($ciphers_and_aliases, $ciphers);

//Режим ECB следует избегать
$ciphers = array_filter( $ciphers, function($n) { return stripos($n,"ecb")===FALSE; } );

//По крайней мере, в начале августа 2016 года следующие методы объявлены слабыми:
$ciphers = array_filter( $ciphers, function($c) { return stripos($c,"des")===FALSE; } );
$ciphers = array_filter( $ciphers, function($c) { return stripos($c,"rc2")===FALSE; } );
$ciphers = array_filter( $ciphers, function($c) { return stripos($c,"rc4")===FALSE; } );
$ciphers = array_filter( $ciphers, function($c) { return stripos($c,"md5")===FALSE; } );
$cipher_aliases = array_filter($cipher_aliases,function($c) { return stripos($c,"des")===FALSE; } );
$cipher_aliases = array_filter($cipher_aliases,function($c) { return stripos($c,"rc2")===FALSE; } );

print_r($ciphers);
print_r($cipher_aliases);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => AES-128-CBC
    [1] => AES-128-CFB
    [2] => AES-128-CFB1
    [3] => AES-128-CFB8
    [5] => AES-128-OFB
    [6] => AES-192-CBC
    [7] => AES-192-CFB
    [8] => AES-192-CFB1
    [9] => AES-192-CFB8
    [11] => AES-192-OFB
    [12] => AES-256-CBC
    [13] => AES-256-CFB
    [14] => AES-256-CFB1
    [15] => AES-256-CFB8
    [17] => AES-256-OFB
    [18] => BF-CBC
    [19] => BF-CFB
    [21] => BF-OFB
    [22] => CAST5-CBC
    [23] => CAST5-CFB
    [25] => CAST5-OFB
    [41] => IDEA-CBC
    [42] => IDEA-CFB
    [44] => IDEA-OFB
    [53] => aes-128-cbc
    [54] => aes-128-cfb
    [55] => aes-128-cfb1
    [56] => aes-128-cfb8
    [58] => aes-128-ofb
    [59] => aes-192-cbc
    [60] => aes-192-cfb
    [61] => aes-192-cfb1
    [62] => aes-192-cfb8
    [64] => aes-192-ofb
    [65] => aes-256-cbc
    [66] => aes-256-cfb
    [67] => aes-256-cfb1
    [68] => aes-256-cfb8
    [70] => aes-256-ofb
    [71] => bf-cbc
    [72] => bf-cfb
    [74] => bf-ofb
    [75] => cast5-cbc
    [76] => cast5-cfb
    [78] => cast5-ofb
    [94] => idea-cbc
    [95] => idea-cfb
    [97] => idea-ofb
)
Array
(
    [18] => AES128
    [19] => AES192
    [20] => AES256
    [21] => BF
    [26] => CAST
    [27] => CAST-cbc
    [50] => IDEA
    [82] => aes128
    [83] => aes192
    [84] => aes256
    [85] => bf
    [90] => blowfish
    [91] => cast
    [92] => cast-cbc
    [115] => idea
)

Смотрите также

  • openssl_get_md_methods() - Получить список доступных методов хеширования


Список доступных имен кривых для ECC

  • « openssl_get_cipher_methods
  • openssl_get_md_methods »
  • PHP Manual
  • Функции OpenSSL
  • Список доступных имен кривых для ECC

openssl_get_curve_names

(PHP 7 >= 7.1.0)

openssl_get_curve_names — Список доступных имен кривых для ECC

Описание

openssl_get_curve_names ( void ) : array

Возвращает список доступных имен кривых для для использования в эллиптической криптографии (ECC) для операций с открытым/закрытым ключом. Две наиболее стандартизованных/поддерживаемых кривых: prime256v1 (NIST P-256) и secp384r1 (NIST P-384).

Приближенные эквивалентности размеров ключей AES, RSA, DSA и ECC
AES размер симметричного ключа (Биты) | Размер ключа RSA и DSA (Биты) | Размер ключа ECC (Биты)
80 | 1024 | 160
112 | 2048 | 224
128 | 3072 | 256
192 | 7680 | 384
256 | 15360 | 512
» NIST рекомендует использовать кривые ECC как минимум в 256 бит.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив с доступными именами кривых.

Примеры

Пример #1 Пример использования openssl_get_curve_names()

<?php
$curve_names = openssl_get_curve_names();
print_r($curve_names);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => secp112r1
    [1] => secp112r2
    [2] => secp128r1
    [3] => secp128r2
    [4] => secp160k1
    [5] => secp160r1
    [6] => secp160r2
    [7] => secp192k1
    [8] => secp224k1
    [9] => secp224r1
    [10] => secp256k1
    [11] => secp384r1
    [12] => secp521r1
    [13] => prime192v1
    [14] => prime192v2
    [15] => prime192v3
    [16] => prime239v1
    [17] => prime239v2
    [18] => prime239v3
    [19] => prime256v1
    [20] => sect113r1
    [21] => sect113r2
    [22] => sect131r1
    [23] => sect131r2
    [24] => sect163k1
    [25] => sect163r1
    [26] => sect163r2
    [27] => sect193r1
    [28] => sect193r2
    [29] => sect233k1
    [30] => sect233r1
    [31] => sect239k1
    [32] => sect283k1
    [33] => sect283r1
    [34] => sect409k1
    [35] => sect409r1
    [36] => sect571k1
    [37] => sect571r1
    [38] => c2pnb163v1
    [39] => c2pnb163v2
    [40] => c2pnb163v3
    [41] => c2pnb176v1
    [42] => c2tnb191v1
    [43] => c2tnb191v2
    [44] => c2tnb191v3
    [45] => c2pnb208w1
    [46] => c2tnb239v1
    [47] => c2tnb239v2
    [48] => c2tnb239v3
    [49] => c2pnb272w1
    [50] => c2pnb304w1
    [51] => c2tnb359v1
    [52] => c2pnb368w1
    [53] => c2tnb431r1
    [54] => wap-wsg-idm-ecid-wtls1
    [55] => wap-wsg-idm-ecid-wtls3
    [56] => wap-wsg-idm-ecid-wtls4
    [57] => wap-wsg-idm-ecid-wtls5
    [58] => wap-wsg-idm-ecid-wtls6
    [59] => wap-wsg-idm-ecid-wtls7
    [60] => wap-wsg-idm-ecid-wtls8
    [61] => wap-wsg-idm-ecid-wtls9
    [62] => wap-wsg-idm-ecid-wtls10
    [63] => wap-wsg-idm-ecid-wtls11
    [64] => wap-wsg-idm-ecid-wtls12
    [65] => Oakley-EC2N-3
    [66] => Oakley-EC2N-4
    [67] => brainpoolP160r1
    [68] => brainpoolP160t1
    [69] => brainpoolP192r1
    [70] => brainpoolP192t1
    [71] => brainpoolP224r1
    [72] => brainpoolP224t1
    [73] => brainpoolP256r1
    [74] => brainpoolP256t1
    [75] => brainpoolP320r1
    [76] => brainpoolP320t1
    [77] => brainpoolP384r1
    [78] => brainpoolP384t1
    [79] => brainpoolP512r1
    [80] => brainpoolP512t1
)


Получить список доступных методов хеширования

  • « openssl_get_curve_names
  • openssl_get_privatekey »
  • PHP Manual
  • Функции OpenSSL
  • Получить список доступных методов хеширования

openssl_get_md_methods

(PHP 5 >= 5.3.0, PHP 7)

openssl_get_md_methods — Получить список доступных методов хеширования

Описание

openssl_get_md_methods ([ bool $aliases = FALSE ] ) : array

Возвращает список доступных методов хеширования.

Список параметров

aliases

Если хотите, чтобы в результирующий массив были также включены псевдонимы, то установите этот параметр в значение TRUE.

Возвращаемые значения

Массив с доступными методами хеширования.

Примеры

Пример #1 Пример использования openssl_get_md_methods()

Показывает, как могут выглядеть доступные методы хеширования и их псевдонимы.

<?php
$digests             = openssl_get_md_methods();
$digests_and_aliases = openssl_get_md_methods(true);
$digest_aliases      = array_diff($digests_and_aliases, $digests);

print_r($digests);

print_r($digest_aliases);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => DSA
    [1] => DSA-SHA
    [2] => MD2
    [3] => MD4
    [4] => MD5
    [5] => RIPEMD160
    [6] => SHA
    [7] => SHA1
    [8] => SHA224
    [9] => SHA256
    [10] => SHA384
    [11] => SHA512
    [12] => dsaEncryption
    [13] => dsaWithSHA
    [14] => ecdsa-with-SHA1
    [15] => md2
    [16] => md4
    [17] => md5
    [18] => ripemd160
    [19] => sha
    [20] => sha1
    [21] => sha224
    [22] => sha256
    [23] => sha384
    [24] => sha512
)
Array
(
    [2] => DSA-SHA1
    [3] => DSA-SHA1-old
    [4] => DSS1
    [9] => RSA-MD2
    [10] => RSA-MD4
    [11] => RSA-MD5
    [12] => RSA-RIPEMD160
    [13] => RSA-SHA
    [14] => RSA-SHA1
    [15] => RSA-SHA1-2
    [16] => RSA-SHA224
    [17] => RSA-SHA256
    [18] => RSA-SHA384
    [19] => RSA-SHA512
    [28] => dsaWithSHA1
    [29] => dss1
    [32] => md2WithRSAEncryption
    [34] => md4WithRSAEncryption
    [36] => md5WithRSAEncryption
    [37] => ripemd
    [39] => ripemd160WithRSA
    [40] => rmd160
    [43] => sha1WithRSAEncryption
    [45] => sha224WithRSAEncryption
    [47] => sha256WithRSAEncryption
    [49] => sha384WithRSAEncryption
    [51] => sha512WithRSAEncryption
    [52] => shaWithRSAEncryption
    [53] => ssl2-md5
    [54] => ssl3-md5
    [55] => ssl3-sha1
)

Смотрите также

  • openssl_digest() - Вычисление дайджеста
  • openssl_get_cipher_methods() - Получить список доступных алгоритмов шифрования


Псевдоним openssl_pkey_get_private

  • « openssl_get_md_methods
  • openssl_get_publickey »
  • PHP Manual
  • Функции OpenSSL
  • Псевдоним openssl_pkey_get_private

openssl_get_privatekey

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_get_privatekey — Псевдоним openssl_pkey_get_private()

Описание

Эта функция является псевдонимом: openssl_pkey_get_private().


Псевдоним openssl_pkey_get_public

  • « openssl_get_privatekey
  • openssl_open »
  • PHP Manual
  • Функции OpenSSL
  • Псевдоним openssl_pkey_get_public

openssl_get_publickey

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_get_publickey — Псевдоним openssl_pkey_get_public()

Описание

Эта функция является псевдонимом: openssl_pkey_get_public().


Открыть запечатанные данные

  • « openssl_get_publickey
  • openssl_pbkdf2 »
  • PHP Manual
  • Функции OpenSSL
  • Открыть запечатанные данные

openssl_open

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_open — Открыть запечатанные данные

Описание

openssl_open ( string $sealed_data , string &$open_data , string $env_key , mixed $priv_key_id [, string $method = "RC4" [, string $iv ]] ) : bool

openssl_open() открывает (дешифрует) sealed_data, используя секретный ключ, связанный с идентификатором priv_key_id и ключ обертки env_key, и заполняет open_data расшифрованными данными. Ключ обертки создается при запечатывании данных и может использоваться только с одним единственным секретным ключем. Более подробно можно прочитать на странице оисания функции openssl_seal().

Список параметров

sealed_data

open_data

При удачном завершении, переменная переданная в этом параметре будет содержать открытые данные.

env_key

priv_key_id

method

Метод шифрования.

iv

Инициализирующий вектор.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | Добавлен параметр iv.
5.3.0 | Добавлен параметр method.

Примеры

Пример #1 Пример использования openssl_open()

<?php
// Предположим, что $sealed и $env_key содержат закрытые данные и
// ключ обертки соответственно

// Извлекаем секретный ключ из файла
$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);

// расшмфровываем данные и складываем их в $open
if (openssl_open($sealed, $open, $env_key, $pkeyid)) {
    echo "Расшифрованные данные: ", $open;
} else {
    echo "Что-то пошло не так :(";
}

// Высвобождаем ресурс приватнного ключа
openssl_free_key($pkeyid);
?>

Смотрите также

  • openssl_seal() - Запечатать (зашифровать) данные


Генерирует строки PKCS5 v2 PBKDF2

  • « openssl_open
  • openssl_pkcs12_export_to_file »
  • PHP Manual
  • Функции OpenSSL
  • Генерирует строки PKCS5 v2 PBKDF2

openssl_pbkdf2

(PHP 5 >= 5.5.0, PHP 7)

openssl_pbkdf2 — Генерирует строки PKCS5 v2 PBKDF2

Описание

openssl_pbkdf2 ( string $password , string $salt , int $key_length , int $iterations [, string $digest_algorithm = "sha1" ] ) : string

openssl_pbkdf2() вычисляет PBKDF2 (Password-Based Key Derivation Function 2), функцию деривации ключа, определенную в PKCS5 v2.

Список параметров

password

Пароль, из которого будет сгенерирован ключ.

salt

PBKDF2 рекомендует использовать криптографическую соль как минимум 64 бита (8 байт) длиной.

key_length

Длина генерируемого ключа.

iterations

Количество итераций. » NIST рекомендует как минимум 10,000.

digest_algorithm

Опциональный алгоритм хеширования полученный из openssl_get_md_methods(). По умолчанию SHA-1.

Возвращаемые значения

Возвращает необработанную бинарную строку или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования openssl_pbkdf2()

<?php
$password = 'yOuR-pAs5w0rd-hERe';
$salt = openssl_random_pseudo_bytes(12);
$keyLength = 40;
$iterations = 10000;
$generated_key = openssl_pbkdf2($password, $salt, $keyLength, $iterations, 'sha256');
echo bin2hex($generated_key)."\n";
echo base64_encode($generated_key)."\n";
?>

Смотрите также

  • hash_pbkdf2() - Формирования ключа PBKDF2 для заданных входных данных
  • openssl_get_md_methods() - Получить список доступных методов хеширования


Экспортирует в совместимый с PKCS#12 файл хранилища сертификатов

  • « openssl_pbkdf2
  • openssl_pkcs12_export »
  • PHP Manual
  • Функции OpenSSL
  • Экспортирует в совместимый с PKCS#12 файл хранилища сертификатов

openssl_pkcs12_export_to_file

(PHP 5 >= 5.2.2, PHP 7)

openssl_pkcs12_export_to_file — Экспортирует в совместимый с PKCS#12 файл хранилища сертификатов

Описание

openssl_pkcs12_export_to_file ( mixed $x509 , string $filename , mixed $priv_key , string $pass [, array $args ] ) : bool

openssl_pkcs12_export_to_file() сохраняет x509 в файл filename в формате PKCS#12.

Список параметров

x509

Для списка корректных значений см. Параметры ключей/сертификатов.

filename

Путь до файла.

priv_key

Закрытый компонент ключа файла PKCS#12. Допустимые значения см. Параметры закрытого/открытого ключа.

pass

Пароль для разблокировки файла PKCS#12.

args

Массив опций. Не описанные здесь ключи будут проигнорированы.

Ключ | Описание
"extracerts" | массив дополнительных сертификатов или один сертификат для включения в файл PKCS#12.
"friendlyname" | строка для использования сертификатом и ключем

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Экспортирует совместимый с PKCS#12 файл хранилища сертификатов в переменную

  • « openssl_pkcs12_export_to_file
  • openssl_pkcs12_read »
  • PHP Manual
  • Функции OpenSSL
  • Экспортирует совместимый с PKCS#12 файл хранилища сертификатов в переменную

openssl_pkcs12_export

(PHP 5 >= 5.2.2, PHP 7)

openssl_pkcs12_export — Экспортирует совместимый с PKCS#12 файл хранилища сертификатов в переменную

Описание

openssl_pkcs12_export ( mixed $x509 , string &$out , mixed $priv_key , string $pass [, array $args ] ) : bool

openssl_pkcs12_export() сохраняет x509 в переменную out в формате PKCS#12.

Список параметров

x509

Для списка корректных значений см. Параметры ключей/сертификатов.

out

В случае успеха будет содержать PKCS#12.

priv_key

Компонент закрытого ключа файла PKCS#12. Список допустимых значений см. на странице параметров открытого/закрытого ключа.

pass

Пароль для шифрования файла PKCS#12.

args

Массив опций. Не описанные здесь ключи будут проигнорированы.

Ключ | Описание
"extracerts" | массив дополнительных сертификатов или один сертификат для включения в файл PKCS#12.
"friendlyname" | строка для использования сертификатом и ключем

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Разбирает хранилище сертификатов PKCS#12 в массив

  • « openssl_pkcs12_export
  • openssl_pkcs7_decrypt »
  • PHP Manual
  • Функции OpenSSL
  • Разбирает хранилище сертификатов PKCS#12 в массив

openssl_pkcs12_read

(PHP 5 >= 5.2.2, PHP 7)

openssl_pkcs12_read — Разбирает хранилище сертификатов PKCS#12 в массив

Описание

openssl_pkcs12_read ( string $pkcs12 , array &$certs , string $pass ) : bool

openssl_pkcs12_read() разбирает хранилище сертификатов PKCS#12, заданное в pkcs12 и помещает в массив certs.

Список параметров

pkcs12

Содержимое хранилища сертификатов, а не его имя файла.

certs

В случае успеха будет содержать данные хранилища сертификата (Certificate Store Data).

pass

Пароль для расшифровки файла PKCS#12.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования openssl_pkcs12_read()

<?php
if (!$cert_store = file_get_contents("/certs/file.p12")) {
    echo "Ошибка: невозможно прочитать файл сертификата\n";
    exit;
}

if (openssl_pkcs12_read($cert_store, $cert_info, "my_secret_pass")) {
    echo "Информация об сертификате\n";
    print_r($cert_info);
} else {
    echo "Ошибка: невозможно прочитать хранилище сертификата.\n";
    exit;
}
?>


Расшифровать сообщение, зашифрованное S/MIME

  • « openssl_pkcs12_read
  • openssl_pkcs7_encrypt »
  • PHP Manual
  • Функции OpenSSL
  • Расшифровать сообщение, зашифрованное S/MIME

openssl_pkcs7_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_pkcs7_decrypt — Расшифровать сообщение, зашифрованное S/MIME

Описание

openssl_pkcs7_decrypt ( string $infilename , string $outfilename , mixed $recipcert [, mixed $recipkey ] ) : bool

Расшифровывает сообщение, зашифрованное S/MIME, содержащееся в файле infilename, с использованием сертификата recipcert и соответствующего закрытого ключа recipkey.

Список параметров

infilename

outfilename

Расшифрованное сообщение будет записано в файл outfilename.

recipcert

recipkey

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования openssl_pkcs7_decrypt()

<?php
// $cert и $key содержат пару с личным сертификатом и закрытым ключом
$infilename = "encrypted.msg";  // в этом файле зашифрованное сообщение
$outfilename = "decrypted.msg"; // убедитесь, что у вас есть права на запись

if (openssl_pkcs7_decrypt($infilename, $outfilename, $cert, $key)) {
    echo "расшифровано!";
} else {
    echo "возникла ошибка при расшифровке!";
}
?>


Шифрует сообщение S/MIME

  • « openssl_pkcs7_decrypt
  • openssl_pkcs7_read »
  • PHP Manual
  • Функции OpenSSL
  • Шифрует сообщение S/MIME

openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_pkcs7_encrypt — Шифрует сообщение S/MIME

Описание

openssl_pkcs7_encrypt ( string $infile , string $outfile , mixed $recipcerts , array $headers [, int $flags = 0 [, int $cipherid = OPENSSL_CIPHER_RC2_40 ]] ) : bool

openssl_pkcs7_encrypt() читает сообщение из файла infile, шифрует его с помощью 40-битного RC2 шифра таким образом, что расшифровать его могут только получатели, указанными в recipcerts.

Список параметров

infile

outfile

recipcerts

Массив, либо единичный сертификат X.509.

headers

headers задается массивом заголовков, которые будут добавлены в начало сообщения перед шифрованием.

headers может быть как ассоциативным массивом, где в качестве ключей используются имена заголовков, либо индексированным массивом, содержащим полные строки заголовков.

flags

flags используется для настройки процесса шифрования. См. Константы PKCS7.

cipherid

Одна из констант шифров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования openssl_pkcs7_encrypt()

<?php
// Сообщение, которое вы хотите зашифровать и отправить своему секретному
// агенту с позывным Козодой. У вас есть его сертификат в файле nighthawk.pem
$data = <<<EOD
Козодой,

Совершенно секретно! После прочтения сжечь!

Враги приближаются! Связной с новым поддельным паспортом
будет ждать тебя завтра в кафе в 8.30 утра.

Пароль - "У вас ус отклеился!"
Отзыв - "Это не ус, а борода!"

EOD;

// загружаем ключ
$key = file_get_contents("nighthawk.pem");

// записываем сообщение в файл
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);

// шифруем
if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,
    array("To" => "nighthawk@example.com", // ассоциативный синтаксис
          "From: HQ <hq@example.com>", // индексированный синтаксис
          "Subject" => "СРОЧНО!!! ВАЖНО!!!"))) {
    // сообщение зашифровано - отправляем!!
    exec(ini_get("sendmail_path") . " < enc.txt");
}
?>


Экспортировать файл PKCS7 в массив сертификатов PEM

  • « openssl_pkcs7_encrypt
  • openssl_pkcs7_sign »
  • PHP Manual
  • Функции OpenSSL
  • Экспортировать файл PKCS7 в массив сертификатов PEM

openssl_pkcs7_read

(PHP 7 >= 7.2.0)

openssl_pkcs7_read — Экспортировать файл PKCS7 в массив сертификатов PEM

Описание

openssl_pkcs7_read ( string $infilename , array &$certs ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

infilename

certs

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Подписать сообщение S/MIME

  • « openssl_pkcs7_read
  • openssl_pkcs7_verify »
  • PHP Manual
  • Функции OpenSSL
  • Подписать сообщение S/MIME

openssl_pkcs7_sign

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_pkcs7_sign — Подписать сообщение S/MIME

Описание

openssl_pkcs7_sign ( string $infilename , string $outfilename , mixed $signcert , mixed $privkey , array $headers [, int $flags = PKCS7_DETACHED [, string $extracerts ]] ) : bool

openssl_pkcs7_sign() берет содержимое файла infilename и подписывает его с использованием сертификата signcert и закрытого ключа privkey.

Список параметров

infilename

Файл, который нужно подписать.

outfilename

Файл, в который будет записана цифровая подпись.

signcert

Сертификат X.509, который будет использован для подписи. См. параметры ключа/сертификата.

privkey

privkey задается секретным ключем, соответствующим сертификату. См. параметры открытого/секретного ключа.

headers

headers задается массивом заголовков, которые будут добавлены в начало данных после подписания. (см. openssl_pkcs7_encrypt() для получения дополнительной информации о формате этого параметра).

flags

flags используется для настройки вывода. См. константы PKCS7.

extracerts

extracerts может содержать имя файла, в котором хранятся дополнительные сертификаты для добавления их к подписи, например для облегчения верификации подписи разными пользователями.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования openssl_pkcs7_sign()

<?php
// сообщение, которое вы хотите подписать для того, чтобы получатели могли
// проверить, что его послали именно вы
$data = <<<EOD

Разрешаю потратить на обед с контрагентом не более 100,000 рублей.

Ваш директор.
EOD;
// сохраняем сообщение в фалй
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// шифруем
if (openssl_pkcs7_sign("msg.txt", "signed.txt", "file://mycert.pem",
    array("file://mycert.pem", "mypassphrase"),
    array("To" => "joes@example.com", // ассоциативный синтаксис
          "From: HQ <ceo@example.com>", // индексированный синтаксис
          "Subject" => "Представительские расходы")
    )) {
    // сообщение подписано - отправляем!
    exec(ini_get("sendmail_path") . " < signed.txt");
}
?>


Проверить подпись сообщения S/MIME

  • « openssl_pkcs7_sign
  • openssl_pkey_export_to_file »
  • PHP Manual
  • Функции OpenSSL
  • Проверить подпись сообщения S/MIME

openssl_pkcs7_verify

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_pkcs7_verify — Проверить подпись сообщения S/MIME

Описание

openssl_pkcs7_verify ( string $filename , int $flags [, string $outfilename [, array $cainfo [, string $extracerts [, string $content [, string $p7bfilename ]]]]] ) : mixed

openssl_pkcs7_verify() читает S/MIME сообщение из файла и проверяет его подпись.

Список параметров

filename

Путь к файлу с сообщением.

flags

flags можно использовать для модификации процесса проверки. Более подробно см. константы PKCS7.

outfilename

Если задан параметр outfilename, то в нем должна быть строка с именем файла, в который будут сохранены сертификаты, использованные при подписании, в формате PEM.

cainfo

Если задан параметр cainfo, то в нем должна содержаться информация о доверенных сертификатах CA, которые необходимо использовать в процессе проверки. Более подробно читайте на странице проверки сертификатов.

extracerts

Если задан параметр extracerts, в нем должно содержаться имя файла, содержащего набор недоверенных сертификатов CA.

content

В параметре content можно указать имя файла, в который будут записаны верифицированные данные без информации о подписи.

p7bfilename

Возвращаемые значения

Возвращает TRUE, если проверка успешна, FALSE, если нет и -1 в случае ошибки.

Список изменений

Версия | Описание
7.2.0 | Добавлен параметр p7bfilename.
5.1.0 | Добавлен параметр content.

Примечания

Замечание: Как указано в RFC 2045, длина параметра filename не должна быть длинее 76 символов.


Записывает в файл ключ в формате PEM

  • « openssl_pkcs7_verify
  • openssl_pkey_export »
  • PHP Manual
  • Функции OpenSSL
  • Записывает в файл ключ в формате PEM

openssl_pkey_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_export_to_file — Записывает в файл ключ в формате PEM

Описание

openssl_pkey_export_to_file ( mixed $key , string $outfilename [, string $passphrase [, array $configargs ]] ) : bool

openssl_pkey_export_to_file() записывает key в формате PEM в файл outfilename.

Замечание: Для корректной работы этой функции должен существовать правильный openssl.cnf. Для более подробной информации смотрите замечания под разделом установки.

Список параметров

key

outfilename

Путь до файла.

passphrase

Ключ опционально защищается паролем passphrase.

configargs

configargs можно использовать для тонкой настройки процесса экспорта путем указания, либо переопределения опций конфигурационного файла openssl. См. openssl_csr_new() для подробной информации о configargs.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Получает строку с ключем в формате PEM

  • « openssl_pkey_export_to_file
  • openssl_pkey_free »
  • PHP Manual
  • Функции OpenSSL
  • Получает строку с ключем в формате PEM

openssl_pkey_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_export — Получает строку с ключем в формате PEM

Описание

openssl_pkey_export ( mixed $key , string &$out [, string $passphrase [, array $configargs ]] ) : bool

openssl_pkey_export() экспортирует key в виде строки в формате PEM и сохраняет его в out (передается по ссылке).

Замечание: Для корректной работы этой функции должен существовать правильный openssl.cnf. Для более подробной информации смотрите замечания под разделом установки.

Список параметров

key

out

passphrase

Ключ опционально защищается паролем passphrase.

configargs

configargs можно использовать для тонкой настройки процесса экспорта путем указания, либо переопределения опций конфигурационного файла openssl. См. описание openssl_csr_new() для подробной информации о configargs.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Освобождает ресурс закрытого ключа

  • « openssl_pkey_export
  • openssl_pkey_get_details »
  • PHP Manual
  • Функции OpenSSL
  • Освобождает ресурс закрытого ключа

openssl_pkey_free

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_free — Освобождает ресурс закрытого ключа

Описание

openssl_pkey_free ( resource $key ) : void

Эта функция высвобождает ресурс закрытого ключа, созданный openssl_pkey_new().

Список параметров

key

Ресурс, содержащий ключ.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Получает массив с детальной информацией о ключе

  • « openssl_pkey_free
  • openssl_pkey_get_private »
  • PHP Manual
  • Функции OpenSSL
  • Получает массив с детальной информацией о ключе

openssl_pkey_get_details

(PHP 5 >= 5.2.0, PHP 7)

openssl_pkey_get_details — Получает массив с детальной информацией о ключе

Описание

openssl_pkey_get_details ( resource $key ) : array

Эта функция возвращает массив с детальной информацией о ключе.

Список параметров

key

Ресурс, содержащий ключ.

Возвращаемые значения

Возвращает массив с детальной информацией о ключе, либо FALSE. Массив содержит следующие индексы: bits (количество бит), key (строковое представление открытого ключа) и type (тип ключа, одна из констант: OPENSSL_KEYTYPE_RSA, OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_EC или -1, если неизвестно).

В зависимости от типа используемого ключа, могут быть возвращены дополнительные данные. Обратите внимание, что некоторых элементов может и не быть.

  • Для OPENSSL_KEYTYPE_RSA возвращается элемент с индексом "rsa", содержащий данные ключа.
    Ключ | Описание
    "n" | модуль
    "e" | открытая экспонента
    "d" | секретная экспонента
    "p" | первое простое число
    "q" | второе простое число
    "dmp1" | первая экспонента, d mod (p-1)
    "dmq1" | вторая экспонента, d mod (q-1)
    "iqmp" | коэффициент, (1 / q) mod p
  • Для OPENSSL_KEYTYPE_DSA возвращается элемент с индексом "dsa", содержащий данные ключа.
    Ключ | Описание
    "p" | Простое число (публичное)
    "q" | 160-битное простое число, такое, что p-1 делится на q (публичное)
    "g" | Генератор подгрупп (публичный). Мультипликативный порядок g по модулю p равен q
    "priv_key" | Секретный ключ x
    "pub_key" | Открытый ключ y = g^x
  • Для OPENSSL_KEYTYPE_DH возвращается элемент с индексом "dh", содержащий данные ключа.
    Ключ | Описание
    "p" | Простое число (открытое)
    "g" | Генератор Z_p (открытый), простое число, первообразный корень по модулю p
    "priv_key" | секретное DH значение x
    "pub_key" | открытое DH значение g^x
  • OPENSSL_KEYTYPE_EC возвращается элемент с индексом "ec", содержащий данные ключа.
    Ключ | Описание
    "curve_name" | Название кривой, смотри openssl_get_curve_names()
    "curve_oid" | Идентификатор объекта ASN1 (OID) для кривой EC.
    "x" | x координата (открытая)
    "y" | y координата (открытая)
    "d" | секретный ключ


Получить закрытый ключ

  • « openssl_pkey_get_details
  • openssl_pkey_get_public »
  • PHP Manual
  • Функции OpenSSL
  • Получить закрытый ключ

openssl_pkey_get_private

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_get_private — Получить закрытый ключ

Описание

openssl_pkey_get_private ( mixed $key [, string $passphrase = "" ] ) : resource

openssl_pkey_get_private() разбирает key и подготавливает его к использованию в других функциях.

Список параметров

key

key может быть задан следующим образом:

  1. строка вида file://path/to/file.pem. Файл должен содержать кодированный в PEM сертификат/закрытый ключ (может содержать и то и другое).
  2. Секретный ключ в формате PEM.

passphrase

Если ключ защищен паролем, то его надо указать в параметре passphrase.

Возвращаемые значения

Возвращает идентификатор ресурса ключа или FALSE в случае ошибки.


Извлекает открытый ключ из сертификата и подготавливает его к использованию

  • « openssl_pkey_get_private
  • openssl_pkey_new »
  • PHP Manual
  • Функции OpenSSL
  • Извлекает открытый ключ из сертификата и подготавливает его к использованию

openssl_pkey_get_public

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_get_public — Извлекает открытый ключ из сертификата и подготавливает его к использованию

Описание

openssl_pkey_get_public ( mixed $certificate ) : resource

openssl_pkey_get_public() извлекает открытый ключ из certificate и подготавливает его к использованию в других функциях.

Список параметров

certificate

certificate может быть одним из:

  1. ресурс X.509 сертификата
  2. строка вида file://path/to/file.pem. Файл должен содержать кодированный в PEM сертификат/публичный ключ (может содержать и то и другое).
  3. Открытый ключ в формате PEM.

Возвращаемые значения

Возвращает идентификатор ресурса или FALSE в случае ошибки.


Генерирует новый секретный ключ

  • « openssl_pkey_get_public
  • openssl_private_decrypt »
  • PHP Manual
  • Функции OpenSSL
  • Генерирует новый секретный ключ

openssl_pkey_new

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_new — Генерирует новый секретный ключ

Описание

openssl_pkey_new ([ array $configargs ] ) : resource

openssl_pkey_new() создает новую пару открытый/закрытый ключ. Открытую часть ключа можно получить с помощью функции openssl_pkey_get_public().

Замечание: Для корректной работы этой функции должен существовать правильный openssl.cnf. Для более подробной информации смотрите замечания под разделом установки.

Список параметров

configargs

Вы можете настроить параметры генерации ключа (например указать число бит) с помощью configargs. См. описание функции openssl_csr_new() для детальной информации о configargs.

Возвращаемые значения

Возвращает идентификатор ресурса, либо FALSE в случае ошибки.

Список изменений

Версия | Описание
7.1.0 | Добавлен ключ curve_name в configarg для обеспечения возможности создания EC ключей.


Расшифровывает данные с помощью закрытого ключа

  • « openssl_pkey_new
  • openssl_private_encrypt »
  • PHP Manual
  • Функции OpenSSL
  • Расшифровывает данные с помощью закрытого ключа

openssl_private_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_private_decrypt — Расшифровывает данные с помощью закрытого ключа

Описание

openssl_private_decrypt ( string $data , string &$decrypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] ) : bool

openssl_private_decrypt() расшифровывает данные data, которые ранее были зашифрованы с помощью openssl_public_encrypt() и сохраняет результат в decrypted.

Вы можете использовать это функцию, например, для расшифровки даных, которые должны быть доступны только вам и никому более.

Список параметров

data

decrypted

key

key должен быть секретным ключем, соответствующим тому, чем мы шифровали данные.

padding

padding может принимать одно из следующих значений: OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openssl_public_encrypt() - Шифрование данных открытым ключем
  • openssl_public_decrypt() - Расшифровка данных с помощью открытого ключа


Шифрует данные секретным ключем

  • « openssl_private_decrypt
  • openssl_public_decrypt »
  • PHP Manual
  • Функции OpenSSL
  • Шифрует данные секретным ключем

openssl_private_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_private_encrypt — Шифрует данные секретным ключем

Описание

openssl_private_encrypt ( string $data , string &$crypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] ) : bool

openssl_private_encrypt() шифрует data с помощью секретного ключа key и сохраняет результат в crypted. Потом данные можно расшифровать с помощью openssl_public_decrypt().

Эта функция используется, например, для подписи данных. Чтобы была уверенность в том, кто именно отправил сообщение.

Список параметров

data

crypted

key

padding

padding может быть одной из констант: OPENSSL_PKCS1_PADDING, OPENSSL_NO_PADDING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openssl_public_encrypt() - Шифрование данных открытым ключем
  • openssl_public_decrypt() - Расшифровка данных с помощью открытого ключа


Расшифровка данных с помощью открытого ключа

  • « openssl_private_encrypt
  • openssl_public_encrypt »
  • PHP Manual
  • Функции OpenSSL
  • Расшифровка данных с помощью открытого ключа

openssl_public_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_public_decrypt — Расшифровка данных с помощью открытого ключа

Описание

openssl_public_decrypt ( string $data , string &$decrypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] ) : bool

openssl_public_decrypt() расшифровывает данные data, которые ранее были зашифрованы с помощью openssl_private_encrypt() и сохраняет результат в decrypted.

Вы можете использовать эту функцию, например, чтобы проверить, было ли сообщение написано владельцем закрытого ключа.

Список параметров

data

decrypted

key

key должен содержать соответствующий открытый ключ.

padding

padding может быть одной из констант: OPENSSL_PKCS1_PADDING, OPENSSL_NO_PADDING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openssl_private_encrypt() - Шифрует данные секретным ключем
  • openssl_private_decrypt() - Расшифровывает данные с помощью закрытого ключа


Шифрование данных открытым ключем

  • « openssl_public_decrypt
  • openssl_random_pseudo_bytes »
  • PHP Manual
  • Функции OpenSSL
  • Шифрование данных открытым ключем

openssl_public_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_public_encrypt — Шифрование данных открытым ключем

Описание

openssl_public_encrypt ( string $data , string &$crypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] ) : bool

openssl_public_encrypt() шифрует data открытым ключем key и сохраняет в crypted. Впоследствии расшифровать их можно функцией openssl_private_decrypt().

Эта функция используется, например, для отправки сообщений, которые сможет прочитать только владелец закрытого ключа и никто больше. Также ее можно использовать для шифрования информации в базе данных.

Список параметров

data

crypted

Будет содержать результат шифрования.

key

Открытый ключ.

padding

padding может быть одной из констант: OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openssl_private_encrypt() - Шифрует данные секретным ключем
  • openssl_private_decrypt() - Расшифровывает данные с помощью закрытого ключа


Генерирует псевдослучайную последовательность байт

  • « openssl_public_encrypt
  • openssl_seal »
  • PHP Manual
  • Функции OpenSSL
  • Генерирует псевдослучайную последовательность байт

openssl_random_pseudo_bytes

(PHP 5 >= 5.3.0, PHP 7)

openssl_random_pseudo_bytes — Генерирует псевдослучайную последовательность байт

Описание

openssl_random_pseudo_bytes ( int $length [, bool &$crypto_strong ] ) : string

Генерирует строку псевдослучайных байт длиной length.

Также, если задать необязательный параметр crypto_strong, который передается по ссылке, то в него запишется TRUE или FALSE, в зависимости от того, был ли использован криптографически сильный алгоритм.

Список параметров

length

Длина генерируемой строки. Положительное целое число.

crypto_strong

Если задано, то в переданную переменную будет записано TRUE или FALSE, в зависимости от того, был ли использован криптографически сильный алгоритм.

Возвращаемые значения

Возвращает строку случайных байт или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования openssl_random_pseudo_bytes()

<?php
for ($i = -1; $i <= 4; $i++) {
    $bytes = openssl_random_pseudo_bytes($i, $cstrong);
    $hex   = bin2hex($bytes);

    echo "Lengths: Bytes: $i and Hex: " . strlen($hex) . PHP_EOL;
    var_dump($hex);
    var_dump($cstrong);
    echo PHP_EOL;
}
?>

Результатом выполнения данного примера будет что-то подобное:

Lengths: Bytes: -1 and Hex: 0
string(0) ""
NULL

Lengths: Bytes: 0 and Hex: 0
string(0) ""
NULL

Lengths: Bytes: 1 and Hex: 2
string(2) "42"
bool(true)

Lengths: Bytes: 2 and Hex: 4
string(4) "dc6e"
bool(true)

Lengths: Bytes: 3 and Hex: 6
string(6) "288591"
bool(true)

Lengths: Bytes: 4 and Hex: 8
string(8) "ab86d144"
bool(true)

Смотрите также

  • random_bytes() - Генерирует криптографически безопасные псевдослучайные байты
  • bin2hex() - Преобразует бинарные данные в шестнадцатеричное представление
  • crypt() - Необратимое хеширование строки
  • mt_rand() - Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна
  • uniqid() - Сгенерировать уникальный ID


Запечатать (зашифровать) данные

  • « openssl_random_pseudo_bytes
  • openssl_sign »
  • PHP Manual
  • Функции OpenSSL
  • Запечатать (зашифровать) данные

openssl_seal

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_seal — Запечатать (зашифровать) данные

Описание

openssl_seal ( string $data , string &$sealed_data , array &$env_keys , array $pub_key_ids [, string $method = "RC4" [, string &$iv ]] ) : int

openssl_seal() запечатывает (шифрует) data, используя метод method со сгенерированным случайно секретным ключем. Ключ будет зашифрован каждым открытым ключом, указанном в массиве pub_key_ids, и каждый зашифрованный ключ будет помещен в env_keys. То есть вы можете разослать запечатанные данные сразу нескольким получателям. Каждый получатель должен получить как запечатанные данные, так и зашифрованный соответствующим открытым ключем ключ для их открытия.

Список параметров

data

Запечатываемые данные.

sealed_data

Запечатанные данные.

env_keys

Массив зашифрованных ключей.

pub_key_ids

Массив идентификаторов открытых ключей.

method

Метод шифрования.

iv

Инициализирующий вектор.

Возвращаемые значения

Возвращает длину запечатанных данных или FALSE. В случае успеха в sealed_data будут содержаться запечатанные данные, а в env_keys зашифрованные ключи.

Список изменений

Версия | Описание
7.0.0 | Добавлен параметр iv.
5.3.0 | Добавлен параметр method.

Примеры

Пример #1 Пример использования openssl_seal()

<?php
// $data содержит данные для запечатывания

// извлекаем открытые ключи получателей и подготавливаем их
$fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk1 = openssl_get_publickey($cert);
// повторяем для второго получателя
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk2 = openssl_get_publickey($cert);

// задаем метод
$method = 'AES256';

// генерируем IV
$ivLength = openssl_cipher_iv_length( $method );
$iv = openssl_random_pseudo_bytes( $ivLength, $strong );
if (! $strong) {
 error_log('Инициализирующий вектор может быть не крипографически сильным!');
}

// запечатываем сообщение, только владельцы $pk1 и $pk2 смогут его распечатать,
// используя ключи $ekeys[0] и $ekeys[1] соответственно.
openssl_seal($data, $sealed, $ekeys, array($pk1, $pk2), $method, $iv);

// освобождаем ресурсы ключей
openssl_free_key($pk1);
openssl_free_key($pk2);
?>

Смотрите также

  • openssl_open() - Открыть запечатанные данные


Генерация подписи

  • « openssl_seal
  • openssl_spki_export_challenge »
  • PHP Manual
  • Функции OpenSSL
  • Генерация подписи

openssl_sign

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_sign — Генерация подписи

Описание

openssl_sign ( string $data , string &$signature , mixed $priv_key_id [, mixed $signature_alg = OPENSSL_ALGO_SHA1 ] ) : bool

openssl_sign() вычисляет подпись данных data путем генерации криптографического цифрового слепка с использованием секретного ключа priv_key_id. Обратите внимание, что сами данные не шифруются.

Список параметров

data

Строка данных, для которых вы хотите получить отпечаток

signature

Если функция отработает успешно, то подпись будет помещена в переменную, заданную в signature.

priv_key_id

Идентификатор ключа, типа resource, полученный из openssl_get_privatekey()

Строка, представляющая собой ключ в формате PEM

signature_alg

Целое число, определяющее алгоритм. См. алгоритмы подписи.

Строка, возвращеная openssl_get_md_methods(). Например, "sha256WithRSAEncryption" или "sha384".

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования openssl_sign()

<?php
// $data содержит данные для генерации подписи

// Извлекаем секретный ключ из файла и подготавливаем
$pkeyid = openssl_pkey_get_private("file://src/openssl-0.9.6/demos/sign/key.pem");

// Вычисляем подпись
openssl_sign($data, $signature, $pkeyid);

// Высвобождаем ресурс ключа
openssl_free_key($pkeyid);
?>

Пример #2 Пример использования openssl_sign()

<?php
//Данные для генерации сигнатуры
$data = 'my data';

//Создаем новую пару открытый/закрытый ключ
$new_key_pair = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
));
openssl_pkey_export($new_key_pair, $private_key_pem);

$details = openssl_pkey_get_details($new_key_pair);
$public_key_pem = $details['key'];

//Вычисляем подпись
openssl_sign($data, $signature, $private_key_pem, OPENSSL_ALGO_SHA256);

//Сохраняем
file_put_contents('private_key.pem', $private_key_pem);
file_put_contents('public_key.pem', $public_key_pem);
file_put_contents('signature.dat', $signature);

//Сверяем подпись
$r = openssl_verify($data, $signature, $public_key_pem, "sha256WithRSAEncryption");
var_dump($r);
?>

Смотрите также

  • openssl_verify() - Сверка сигнатуры


Экспорт вызова, связанного с подписанным ключем и вызовом

  • « openssl_sign
  • openssl_spki_export »
  • PHP Manual
  • Функции OpenSSL
  • Экспорт вызова, связанного с подписанным ключем и вызовом

openssl_spki_export_challenge

(PHP 5 >= 5.6.0, PHP 7)

openssl_spki_export_challenge — Экспорт вызова, связанного с подписанным ключем и вызовом

Описание

openssl_spki_export_challenge ( string &$spkac ) : string

Экспорт вызова из подписанного открытого ключа и вызова.

Список параметров

spkac

Корректный подписанный открытый ключ с вызовом

Возвращаемые значения

Возвращает строку челленджа, или NULL, в случае неудачи.

Ошибки

Вызывает ошибку уровня E_WARNING, если в параметр spkac переданы некорректные данные.

Примеры

Пример #1 Пример использования openssl_spki_export_challenge()

Возвращает строку вызова или NULL в случае неудачи.

<?php
$pkey = openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'challenge string');
$challenge = openssl_spki_export_challenge(preg_replace('/SPKAC=/', '', $spkac));
?>

Пример #2 Пример использование openssl_spki_export_challenge() с <keygen>

Извлечение строки вызова, полученной из элемента <keygen>

<?php
$challenge = openssl_spki_export_challenge(preg_replace('/SPKAC=/', '', $_POST['spkac']));
?>
<keygen name="spkac" challenge="challenge string" keytype="RSA">

Смотрите также

  • openssl_spki_new() - Создание нового подписанного открытого ключа с вызовом
  • openssl_spki_verify() - Проверяет подписанный открытый ключ и вызов
  • openssl_spki_export() - Экспорт открытого ключа в формате PEM из подписанного открытого ключа с вызовом
  • openssl_get_md_methods() - Получить список доступных методов хеширования
  • openssl_csr_new() - Генерирует CSR
  • openssl_csr_sign() - Подписать CSR с помощью другого сертификата (или им же) и создать сертификат


Экспорт открытого ключа в формате PEM из подписанного открытого ключа с вызовом

  • « openssl_spki_export_challenge
  • openssl_spki_new »
  • PHP Manual
  • Функции OpenSSL
  • Экспорт открытого ключа в формате PEM из подписанного открытого ключа с вызовом

openssl_spki_export

(PHP 5 >= 5.6.0, PHP 7)

openssl_spki_export — Экспорт открытого ключа в формате PEM из подписанного открытого ключа с вызовом

Описание

openssl_spki_export ( string &$spkac ) : string

Экспортирует открытый ключ в формате PEM из подписанного открытого ключа с вызовом

Список параметров

spkac

Корректный откроытый ключ с вызовом

Возвращаемые значения

Возвращает открытый ключ в формате PEM или NULL в случае ошибки.

Ошибки

Вызывает ошибку уровня E_WARNING если в параметр spkac переданы некорректные данные.

Примеры

Пример #1 Пример использования openssl_spki_export()

Возвращает открытый ключ в формате PEM или NULL в случае ошибки.

<?php
$pkey = openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'challenge string');
$pubKey = openssl_spki_export(preg_replace('/SPKAC=/', '', $spkac));

if ($pubKey) {
    echo $pubKey;
}
?>

Пример #2 Пример использования openssl_spki_export() с <keygen>

Возвращает открытый ключ в формате PEM, полученный из элемента <keygen>

<?php
$spkac = openssl_spki_export(preg_replace('/SPKAC=/', '', $_POST['spkac']));
if ($spkac != NULL) {
    echo $spkac;
} else {
    echo "Не удалось извлечь открытый ключ";
}
?>
<keygen name="spkac" challenge="challenge string" keytype="RSA">

Смотрите также

  • openssl_spki_new() - Создание нового подписанного открытого ключа с вызовом
  • openssl_spki_verify() - Проверяет подписанный открытый ключ и вызов
  • openssl_spki_export_challenge() - Экспорт вызова, связанного с подписанным ключем и вызовом
  • openssl_get_md_methods() - Получить список доступных методов хеширования
  • openssl_csr_new() - Генерирует CSR
  • openssl_csr_sign() - Подписать CSR с помощью другого сертификата (или им же) и создать сертификат


Создание нового подписанного открытого ключа с вызовом

  • « openssl_spki_export
  • openssl_spki_verify »
  • PHP Manual
  • Функции OpenSSL
  • Создание нового подписанного открытого ключа с вызовом

openssl_spki_new

(PHP 5 >= 5.6.0, PHP 7)

openssl_spki_new — Создание нового подписанного открытого ключа с вызовом

Описание

openssl_spki_new ( resource &$privkey , string &$challenge [, int $algorithm = 0 ] ) : string

Создает новый подписанный открытый ключ с вызовом, используя указанный алгоритм хеширования.

Список параметров

privkey

privkey задается секретным ключем, созданным ранее функцией openssl_pkey_new() (или полученный другим образом). Соответствующая открытая часть ключа будет использована для подписи CSR.

challenge

Вызов, связанный с SPKAC

algorithm

Алгоритм хеширования. Смотрите openssl_get_md_method().

Возвращаемые значения

Возвращает подписанный открытый ключ со строкой вызова или NULL.

Ошибки

Вызывает ошибку уровня E_WARNING, если указан некорректный алгоритм в algorithm.

Примеры

Пример #1 Пример использования openssl_spki_new()

Создает новый SPKAC с использованием алгоритма по умолчанию (MD5)

<?php
$pkey = openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'testing');

if ($spkac !== NULL) {
    echo $spkac;
} else {
    echo "Генерация SPKAC не удалась";
}
?>

Результатом выполнения данного примера будет что-то подобное:

MIICRzCCAS8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDM3V3sS4o4
mB9dczziRnjGAmSp+JwPrHoYMAFGvDNmZGyiWfU586X4BKs++BAj7e/FsAfno0Hd
hN9FwpCNFSox30L03nQvLYJE7f/WqigwBeMRT7Op/xvFks4sT70xP2HRYv4KqP9a
WRcKU6cFH8VxhFhqM2txEIxZKdFLaL28yT7bEDmcglf4JLDdgNMb9rET1dkgtKE6
dOaJHPGjf1uvnOH4YwkQr7n4sLUR3Kdbh0ZJAFuQVDZulo+LLzxBBkqJJcB6FhF+
oXCdHTKZnqAhpWDz+NXYytAmevab6IYm5TWPWsJUv1YKJA5lg2mXbbloIZlN9Mgc
i9fi03bdw+crAgMBAAEWB3Rlc3RpbmcwDQYJKoZIhvcNAQEEBQADggEBALyUvP/o
pPSoWBlorFyZ2RnGwKf9qMpE0q2IJP7G3oDR4LyK/m933DUiZ+YnqThrH/CWb4Ek
y5I3OCyl3S4wCuU1ibZZwDVwYShr5ELp0J9PEf7qMQZOhNsizoC7k+Czb2xB6hYW
sKfsfTKm3cXBtH3fdgc/Z1Z7VSWnAzYo38snqm72NTf5yFRnrQdphNNXi+kn1zHA
lxXRyFDXHOcYsOnwAWfyXFA4QDHQ0ezz0UoCY8gJXovcZb4GRYqOLUAsF2HcNboy
29WN8VqE29sL9QxVZFlwMcqyoLcNnyw38GvNvAGqSvzzbnEFP2MAQXJVe0H0hdp/
MML5G2iNVgNozAo=

Смотрите также

  • openssl_spki_verify() - Проверяет подписанный открытый ключ и вызов
  • openssl_spki_export_challenge() - Экспорт вызова, связанного с подписанным ключем и вызовом
  • openssl_spki_export() - Экспорт открытого ключа в формате PEM из подписанного открытого ключа с вызовом
  • openssl_get_md_methods() - Получить список доступных методов хеширования
  • openssl_csr_new() - Генерирует CSR
  • openssl_csr_sign() - Подписать CSR с помощью другого сертификата (или им же) и создать сертификат


Проверяет подписанный открытый ключ и вызов

  • « openssl_spki_new
  • openssl_verify »
  • PHP Manual
  • Функции OpenSSL
  • Проверяет подписанный открытый ключ и вызов

openssl_spki_verify

(PHP 5 >= 5.6.0, PHP 7)

openssl_spki_verify — Проверяет подписанный открытый ключ и вызов

Описание

openssl_spki_verify ( string &$spkac ) : string

Проверяет подписанный открытый ключ и вызов

Список параметров

spkac

Корректный подписанный открытый ключ и вызов

Возвращаемые значения

Возвращает TRUE или FALSE.

Ошибки

Вызывает ошибку уровня E_WARNING, если в параметр spkac переданы некорректные данные.

Примеры

Пример #1 Пример использования openssl_spki_verify()

Проверка существующего подписанного открытого ключа с вызовом

<?php
$pkey = openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'challenge string');

if (openssl_spki_verify(preg_replace('/SPKAC=/', '', $spkac))) {
    echo $spkac;
} else {
    echo "Проверка SPKAC не удалась";
}
?>

Пример #2 Пример использования openssl_spki_verify() с <keygen>

Проверка существующего подписанного открытого ключа и вызова, полученного из элемента <keygen>

<?php
if (openssl_spki_verify(preg_replace('/SPKAC=/', '', $_POST['spkac']))) {
    echo $spkac;
} else {
    echo "Проверка SPKAC не удалась";
}
?>
<keygen name="spkac" challenge="challenge string" keytype="RSA">

Смотрите также

  • openssl_spki_new() - Создание нового подписанного открытого ключа с вызовом
  • openssl_spki_export_challenge() - Экспорт вызова, связанного с подписанным ключем и вызовом
  • openssl_spki_export() - Экспорт открытого ключа в формате PEM из подписанного открытого ключа с вызовом
  • openssl_get_md_methods() - Получить список доступных методов хеширования
  • openssl_csr_new() - Генерирует CSR
  • openssl_csr_sign() - Подписать CSR с помощью другого сертификата (или им же) и создать сертификат


Сверка сигнатуры

  • « openssl_spki_verify
  • openssl_x509_check_private_key »
  • PHP Manual
  • Функции OpenSSL
  • Сверка сигнатуры

openssl_verify

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_verify — Сверка сигнатуры

Описание

openssl_verify ( string $data , string $signature , mixed $pub_key_id [, mixed $signature_alg = OPENSSL_ALGO_SHA1 ] ) : int

openssl_verify() проверяет, что подпись signature корректна для данных data и открытого ключа pub_key_id. Открытый ключ должен соответствовать закрытому ключу, с помощью которого генерировалась подпись.

Список параметров

data

Проверяемые данные

signature

Необработанная бинарная строка, созданная функцией openssl_sign() или ее аналогом

pub_key_id

Переменная типа resource, содержащая ключ, подготовленный openssl_get_publickey()

Строка с ключом в формате PEM. Примерно такого вида "-----BEGIN PUBLIC KEY----- MIIBCgK..."

signature_alg

Целое число, соответствующее одному из алгоритмов подписи.

Строка, возвращенная openssl_get_md_methods(), например "sha1WithRSAEncryption" или "sha512".

Возвращаемые значения

Возвращает 1, если подпись корректная, 0, если нет и -1 в случае ошибки.

Список изменений

Версия | Описание
5.2.0 | Добавлен параметр signature_alg.

Примеры

Пример #1 Пример использования openssl_verify()

<?php
// $data и $signature содержат данные и подпись соответственно

// Извлекает открытый ключ из сертификата и подготавливаем его
$pubkeyid = openssl_pkey_get_public("file://src/openssl-0.9.6/demos/sign/cert.pem");

// Проверяем, корректна ли подпись
$ok = openssl_verify($data, $signature, $pubkeyid);
if ($ok == 1) {
    echo "Подпись корректная";
} elseif ($ok == 0) {
    echo "Подпись некорректная";
} else {
    echo "Произошла какая-то ошибка, печаль :(";
}
// Удаляем ключ из памяти
openssl_free_key($pubkeyid);
?>

Пример #2 Пример использования openssl_verify()

<?php
//Данные для генерации подписи
$data = 'my data';

//Создаем новую пару открытый/закрытый ключ
$private_key_res = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$details = openssl_pkey_get_details($private_key_res);
$public_key_res = openssl_pkey_get_public($details['key']);

//Вычисляем подпись
openssl_sign($data, $signature, $private_key_res, "sha1WithRSAEncryption");

//Сверяем подпись
$ok = openssl_verify($data, $signature, $public_key_res, OPENSSL_ALGO_SHA1);
if ($ok == 1) {
    echo "корректна";
} elseif ($ok == 0) {
    echo "некорректна";
} else {
    echo "ошибка: ".openssl_error_string();
}
?>

Смотрите также

  • openssl_sign() - Генерация подписи


Проверить, относится ли секретный ключ к сертификату

  • « openssl_verify
  • openssl_x509_checkpurpose »
  • PHP Manual
  • Функции OpenSSL
  • Проверить, относится ли секретный ключ к сертификату

openssl_x509_check_private_key

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_x509_check_private_key — Проверить, относится ли секретный ключ к сертификату

Описание

openssl_x509_check_private_key ( mixed $cert , mixed $key ) : bool

Проверяет, что заданный key является секретным ключем, соответствующим сертификату cert.

Внимание

Функция не проверяет, является ли key секретным ключем или нет. Он просто сравнивает открытые данные (например, экспоненту и модуль ключа RSA) и/или параметры ключа (например, параметры EC для EC-ключа) пары ключей.

То есть, если поместить в key соответствующий открытый ключ, то функция может вернуть TRUE.

Список параметров

cert

Сертификат.

key

Ключ.

Возвращаемые значения

Возвращает TRUE, если key является ключем соответствующим сертификату cert, или FALSE в противном случае.


Проверяет, можно ли использовать сертификат для конкретных задач

  • « openssl_x509_check_private_key
  • openssl_x509_export_to_file »
  • PHP Manual
  • Функции OpenSSL
  • Проверяет, можно ли использовать сертификат для конкретных задач

openssl_x509_checkpurpose

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_x509_checkpurpose — Проверяет, можно ли использовать сертификат для конкретных задач

Описание

openssl_x509_checkpurpose ( mixed $x509cert , int $purpose [, array $cainfo = array() [, string $untrustedfile ]] ) : int

openssl_x509_checkpurpose() проверяет сертификат, чтобы узнать, может ли он использоваться с заданной целью purpose.

Список параметров

x509cert

Сертификат.

purpose

Цели openssl_x509_checkpurpose()
Константа | Описание
X509_PURPOSE_SSL_CLIENT | Можно ли использовать сертификат для SSL соединения на стороне клиента?
X509_PURPOSE_SSL_SERVER | Можно ли использовать сертификат для SSL соединения на стороне сервера?
X509_PURPOSE_NS_SSL_SERVER | Можно ли использовать для сервера Netscape SSL?
X509_PURPOSE_SMIME_SIGN | Можно ли подписывать S/MIME email?
X509_PURPOSE_SMIME_ENCRYPT | Можно ли шифровать S/MIME email?
X509_PURPOSE_CRL_SIGN | Можно ли им подписывать список отзыва сертификатов (CRL)?
X509_PURPOSE_ANY | Можно ли использовать для любых задач?
Эти опции не являются бинарной маской - можно использовать только одно значение за раз!

cainfo

cainfo должен содержать массив доверенных CA файлов/директорий, как описано на странице проверки сертификатов.

untrustedfile

Если задано, то должно содержать путь до PEM-файла, содержащего сертификаты, которые могут быть использованы для проверки сертификата, но не являющиеся при этом доверенными.

Возвращаемые значения

Возвращает TRUE, если сертификат можно использовать по указанному назначению, FALSE - если нельзя и -1 в случае ошибки.


Экспортирует сертификат в файл

  • « openssl_x509_checkpurpose
  • openssl_x509_export »
  • PHP Manual
  • Функции OpenSSL
  • Экспортирует сертификат в файл

openssl_x509_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_x509_export_to_file — Экспортирует сертификат в файл

Описание

openssl_x509_export_to_file ( mixed $x509 , string $outfilename [, bool $notext = TRUE ] ) : bool

openssl_x509_export_to_file() сохраняет сертификат x509 в файл outfilename в виде строки в формате PEM.

Список параметров

x509

Для списка корректных значений см. Параметры ключей/сертификатов.

outfilename

Путь к файлу.

notext

Необязательный параметр notext влияет на детализацию сообщений вывода; если он установлен в FALSE, то в вывод добавляется дополнительная человекочитаемая информация. Значением по умолчанию notext является TRUE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Экспортирует сертификат в строку

  • « openssl_x509_export_to_file
  • openssl_x509_fingerprint »
  • PHP Manual
  • Функции OpenSSL
  • Экспортирует сертификат в строку

openssl_x509_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_x509_export — Экспортирует сертификат в строку

Описание

openssl_x509_export ( mixed $x509 , string &$output [, bool $notext = TRUE ] ) : bool

openssl_x509_export() сохраняет сертификат x509 в виде PEM строки в output.

Список параметров

x509

Для списка корректных значений см. Параметры ключей/сертификатов.

output

В случае успеха в этой переменной будет PEM-представление сертификата.

notext

Необязательный параметр notext влияет на детализацию сообщений вывода; если он установлен в FALSE, то в вывод добавляется дополнительная человекочитаемая информация. Значением по умолчанию notext является TRUE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Вычисляет отпечаток или дайджест, заданный сертификатом X.509

  • « openssl_x509_export
  • openssl_x509_free »
  • PHP Manual
  • Функции OpenSSL
  • Вычисляет отпечаток или дайджест, заданный сертификатом X.509

openssl_x509_fingerprint

(PHP 5 >= 5.6.0, PHP 7)

openssl_x509_fingerprint — Вычисляет отпечаток или дайджест, заданный сертификатом X.509

Описание

openssl_x509_fingerprint ( mixed $x509 [, string $hash_algorithm = "sha1" [, bool $raw_output = FALSE ]] ) : string

openssl_x509_fingerprint() возвращает дайджест x509 в виде строки.

Список параметров

x509

Для списка корректных значений см. Параметры ключей/сертификатов.

hash_algorithm

Метод хеширования. Список доступных методов можно получить с помощью openssl_get_md_methods().

raw_output

Если установлено как TRUE, будут возвращены необработанные бинарные данные. Если FALSE, то выводит строку из шестнадцатеричных чисел в нижнем регистре.

Возвращаемые значения

Возвращает отпечаток сертификата в виде строки шестнадцатеричных чисел. Если raw_output установлен в TRUE, то в виде бинарных данных.

В случае ошибки возвращает FALSE.


Высвобождает ресурс сертификата

  • « openssl_x509_fingerprint
  • openssl_x509_parse »
  • PHP Manual
  • Функции OpenSSL
  • Высвобождает ресурс сертификата

openssl_x509_free

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_x509_free — Высвобождает ресурс сертификата

Описание

openssl_x509_free ( resource $x509cert ) : void

openssl_x509_free() удаляет сертификат с идентификатором x509cert из памяти.

Список параметров

x509cert

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Разобрать сертификат X509 и получить массив с данными о нем

  • « openssl_x509_free
  • openssl_x509_read »
  • PHP Manual
  • Функции OpenSSL
  • Разобрать сертификат X509 и получить массив с данными о нем

openssl_x509_parse

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_x509_parse — Разобрать сертификат X509 и получить массив с данными о нем

Описание

openssl_x509_parse ( mixed $x509cert [, bool $shortnames = TRUE ] ) : array

openssl_x509_parse() возвращает информацию сертификате с идентификатором x509cert, включая такие поля, как имя субъекта, имя издателя, назначение, даты начала и окончания действия и т.д.

Список параметров

x509cert

shortnames

shortnames определяет, как будут индексироваться данные в итоговом массиве. Если shortnames задать как TRUE (по умолчанию), то поля будут индексироваться короткими именами, а не длинными. Например, CN - это короткое имя для commonName.

Возвращаемые значения

Структура возвращаемого массива еще не до конца устоялась, так что пока не документируется.


Получить идентификатор ресурса для сертификата X.509

  • « openssl_x509_parse
  • Хеширование паролей »
  • PHP Manual
  • Функции OpenSSL
  • Получить идентификатор ресурса для сертификата X.509

openssl_x509_read

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_x509_read — Получить идентификатор ресурса для сертификата X.509

Описание

openssl_x509_read ( mixed $x509certdata ) : resource

openssl_x509_read() извлекает сертификат из x509certdata и возвращает идентификатор ресурса для него.

Список параметров

x509certdata

Сертификат X509. Список корректных значений смотрите на странице Параметры ключей и сертификатов.

Возвращаемые значения

Возвращает идентификатор ресурса сертификата или FALSE в случае возникновения ошибки.


Хеширование паролей

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции хеширования паролей
    • password_get_info — Возвращает информацию о заданном хеше
    • password_hash — Создает хеш пароля
    • password_needs_rehash — Проверяет, что указанный хеш соответствует заданным опциям
    • password_verify — Проверяет, соответствует ли пароль хешу


Введение

API хеширования паролей предоставляет простую в использовании обертку функции crypt() и некоторых других алгоритмов хеширования пароля для легкого создания и управления паролями.

Это расширение доступно с PHP 5.5.0, а для более ранних версий PHP >= 5.3.7 существует » пользовательская реализация.


Требования

Для сборки этого расширения не требуются внешние библиотеки.

Для хеширования паролей через Argon2 требуется » libargon2. Начиная с PHP 7.3.0, требуется libargon2 версии 20161029 или выше.


Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Однако, чтобы включить хеширование используя Argon2, PHP должен собран с поддержкой libargon2 с использованием опции конфигурации --with-password-argon2[=DIR] .


Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

PASSWORD_BCRYPT (integer)

PASSWORD_BCRYPT используется для создания новых хешей паролей используя алгоритм CRYPT_BLOWFISH.

Результат всегда представляет из себя хеш формата "$2y$" длиной 60 символов.

Поддерживаемые опции:

  • salt (string) - соль для использования при создании хеша пароля. Обратите внимание, что задание этой опции предотвращает автоматическую генерацию соли.

    Если не задано, то для каждого хешируемого пароля будет создана случайная соль с помощью функции password_hash(). Это является предпочтительным способом, а с PHP 7.0.0 опция salt объявлена устаревшей.

  • cost (integer) - алгоритмическая стоимость, которую следует использовать. Примеры использования этого значения смотрите на странице описания функции crypt().

    Если не задано, то будет использовано значение 10. Это хорошая базовая стоимость, но вы всегда можете ее увеличить в зависимости от имеющихся в вашем распоряжении вычислительных ресурсов.

PASSWORD_ARGON2I (integer)

PASSWORD_ARGON2I используется для создания новых хешей паролей с помощью алгоритма Argon2i.

Поддерживаемые опции:

  • memory_cost (integer) - Максимальный размер памяти (в байтах), которую можно использовать для вычисления хеша Argon2. По умолчанию PASSWORD_ARGON2_DEFAULT_MEMORY_COST.

  • time_cost (integer) - Максимально возможное время которое можно потратить для вычисления хеша Argon2. По умолчанию PASSWORD_ARGON2_DEFAULT_TIME_COST.

  • threads (integer) - Количество потоков, которые можно использовать для вычисления хеша Argon2. По умолчанию PASSWORD_ARGON2_DEFAULT_THREADS.

Доступно с PHP 7.2.0.

PASSWORD_ARGON2ID (integer)

PASSWORD_ARGON2ID используется для создания хешей паролей с помощью алгоритма Argon2id. Поддерживаются те же опции, что и для PASSWORD_ARGON2I.

Доступно с PHP 7.3.0.

PASSWORD_ARGON2_DEFAULT_MEMORY_COST (тип integer)

Количество памяти по умолчанию (в байтах), которую может использовать библиотека Argon2lib для вычисления хеша.

Доступно с PHP 7.2.0.

PASSWORD_ARGON2_DEFAULT_TIME_COST (integer)

Ограничение времени по умолчанию на генерацию хеша библиотекой Argon2lib.

Доступно с PHP 7.2.0.

PASSWORD_ARGON2_DEFAULT_THREADS (integer)

Количество потоков по умолчанию для библиотеки Argon2lib.

Доступно с PHP 7.2.0.

PASSWORD_DEFAULT (integer)

Алгоритм хеширования по умолчанию, если не задан принудительно. Может быть изменен в более новых версиях PHP на более надежный алгоритм.

Стоит отметить, что со временем эта константа может (и, вероятно, так и будет) измениться. Так что имейте в виду, что длина полученного хеша может измениться. Помните, что если вы используете PASSWORD_DEFAULT, то предусмотрите для хранения хешей больше чем 60 символов (рекомендуется 255).

Значения для этой константы:

  • PHP 5.5.0 - PASSWORD_BCRYPT


Функции хеширования паролей

Содержание

  • password_get_info — Возвращает информацию о заданном хеше
  • password_hash — Создает хеш пароля
  • password_needs_rehash — Проверяет, что указанный хеш соответствует заданным опциям
  • password_verify — Проверяет, соответствует ли пароль хешу


Возвращает информацию о заданном хеше

  • « Функции хеширования паролей
  • password_hash »
  • PHP Manual
  • Функции хеширования паролей
  • Возвращает информацию о заданном хеше

password_get_info

(PHP 5 >= 5.5.0, PHP 7)

password_get_info — Возвращает информацию о заданном хеше

Описание

password_get_info ( string $hash ) : array

Если передан корректный хеш, созданный поддерживаемым password_hash() алгоритмом, то эта функция вернет информацию об этом хеше.

Список параметров

hash

Хеш, созданный функцией password_hash().

Возвращаемые значения

Возвращает ассоциативный массив с тремя элементами:

  • algo, содержащий одну из констант алгоритмов паролей
  • algoName, содержащий имя алгоритма в человекочитаемом виде
  • options, включающий опции, переданные при вызове password_hash()


Создает хеш пароля

  • « password_get_info
  • password_needs_rehash »
  • PHP Manual
  • Функции хеширования паролей
  • Создает хеш пароля

password_hash

(PHP 5 >= 5.5.0, PHP 7)

password_hash — Создает хеш пароля

Описание

password_hash ( string $password , int $algo [, array $options ] ) : string

password_hash() создает хеш пароля используя сильный, необратимый алгоритм хеширования. Функция password_hash() совместима с функцией crypt(). Следовательно, хеши паролей, созданные crypt() можно использовать с password_hash().

В данный момент поддерживаются следующие алгоритмы:

  • PASSWORD_DEFAULT - используется алгоритм bcrypt (по умолчанию с PHP 5.5.0). Обратите внимание, что используемый алгоритм может со временем меняться на более сильный, когда таковой добавляется в PHP. Соответственно и длина результата может со временем меняться. В связи с этим рекомендуется выбирать длину поля для хранения в базе данных более 60 символов (255 символов могло быть хорошим вариантом).
  • PASSWORD_BCRYPT - использует алгоритм CRYPT_BLOWFISH. Генерирует стандартный хеш, совместимый с генерированным функцией crypt() с использованием идентификатора "$2y$". В результате будет сгенерирована строка длиной 60 символов, или FALSE в случае возникновения ошибки.
  • PASSWORD_ARGON2I - Использовать алгоритм хеширования Argon2i. Этот алгоритм доступен только если PHP собран с поддержкой Argon2.
  • PASSWORD_ARGON2ID - Использовать алгоритм хеширования Argon2id. Этот алгоритм доступен только если PHP собран с поддержкой Argon2.

Поддерживаемые опции для PASSWORD_BCRYPT:

  • salt (string) - для самостоятельного задания соли для хеширования. Обратите внимание, что это приведет к переопределению и предотвращению автоматического создания соли.

    Если не задано, то password_hash() будет генерировать случайную соль для каждого хешируемого пароля. Это предпочтительный режим работы.

    Внимание

    Эта опция была объявлена устаревшей начиная с PHP 7.0.0. Рекомендуется использовать автоматически генерируемую соль.

  • cost (integer) - задает необходимую алгоритмическую сложность. Пример использования этого значения можно посмотреть на странице посвященной функции crypt().

    Если не задано, то будет использовано значение по умолчанию 10. Это хорошая базовая стоимость, но вы можете ее увеличить в зависимости от возможностей своего оборудования.

Поддерживаемые опции для PASSWORD_ARGON2I и PASSWORD_ARGON2ID:

  • memory_cost (integer) - Максимальный размер памяти (в килобайтах), которую можно использовать для вычисления хеша Argon2. По умолчанию PASSWORD_ARGON2_DEFAULT_MEMORY_COST.

  • time_cost (integer) - Максимально возможное время^ которое можно потратить для вычисления хеша Argon2. По умолчанию PASSWORD_ARGON2_DEFAULT_TIME_COST.

  • threads (integer) - Количество потоков, которые можно использовать для вычисления хеша Argon2. По умолчанию PASSWORD_ARGON2_DEFAULT_THREADS.

Список параметров

password

Пользовательский пароль.

Предостережение

Использование алгоритма PASSWORD_BCRYPT приведёт к обрезанию поля password до максимальной длины 72 символа.

algo

Константа, обозначающая используемый алгоритм хеширования пароля.

options

Ассоциативный массив с опциями. За документацией по поддерживаемым опциям для каждого алгоритма обратитесь к разделу Константы алгоритмов хеширования паролей.

Если не задано, то будет использована стандартная стоимость и соль будет генерироваться автоматически.

Возвращаемые значения

Возвращает хешированный пароль или FALSE в случае возникновения ошибки.

Использованный алгоритм, стоимость и соль будут возвращены как часть хеша. Таким образом, информация, необходимая для проверки хеша будет в него включена. Это позволит функции password_verify() проверять хеш без необходимости отдельного хранения информации о соли и алгоритме.

Примеры

Пример #1 Пример использования password_hash()

<?php
/**
 * Мы просто хотим захешировать свой пароль используя настройки по умолчанию.
 * Значит будет использован BCRYPT и результат будет 60 символов длиной.
 *
 * Помните, что алгоритм по умолчанию может измениться в будущем, так что
 * имеет смысл заранее позаботиться о том, чтобы система хранения хешей
 * смогла хранить более 60 символов (255 в самый раз)
 */
echo password_hash("rasmuslerdorf", PASSWORD_DEFAULT);
?>

Результатом выполнения данного примера будет что-то подобное:

$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a

Пример #2 Пример использования password_hash() с ручным заданием стоимости

<?php
/**
 * Тут мы увеличиваем алгоритмическую стоимость BCRYPT до 12.
 * Но это никак не скажется на длине полученного результата, она останется 60 символов
 */
$options = [
    'cost' => 12,
];
echo password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options);
?>

Результатом выполнения данного примера будет что-то подобное:

$2y$12$QjSH496pcT5CEbzjD/vtVeH03tfHKFy36d4J0Ltp3lRtee9HDxY3K

Пример #3 Пример поиска хорошего значения стоимости для password_hash()

<?php
/**
 * Данный код замерит скорость выполнения операции хеширования для вашего сервера
 * с разными значениями алгоритмической сложности для определения максимального
 * его значения, не приводящего к деградации производительности. Хорошее базовое
 * значение лежит в диапазоне 8-10, но если ваш сервер достаточно мощный, то можно
 * задать и больше. Данный скрипт ищет максимальное значение, при котором
 * хеширование уложится в 50 миллисекунд.
 */
$timeTarget = 0.05; // 50 миллисекунд.

$cost = 8;
do {
    $cost++;
    $start = microtime(true);
    password_hash("test", PASSWORD_BCRYPT, ["cost" => $cost]);
    $end = microtime(true);
} while (($end - $start) < $timeTarget);

echo "Оптимальная стоимость: " . $cost;
?>

Результатом выполнения данного примера будет что-то подобное:

Оптимальная стоимость: 10

Пример #4 Пример использования password_hash() с Argon2i

<?php
echo 'Хеш Argon2i: ' . password_hash('rasmuslerdorf', PASSWORD_ARGON2I);
?>

Результатом выполнения данного примера будет что-то подобное:

Хеш Argon2i: $argon2i$v=19$m=1024,t=2,p=2$YzJBSzV4TUhkMzc3d3laeg$zqU/1IN0/AogfP4cmSJI1vc8lpXRW9/S0sYY2i2jHT0

Примечания

Предостережение

Настоятельно рекомендуется использовать автоматическую генерацию соли. Данная функция самостоятельно создаст хорошую соль, если вы не будете ей мешать подсовывая свою.

Как было замечено выше, опция salt была объявлена устаревшей в PHP 7.0 и будет вызывать соответствующее предупреждение. Поддержка ручного задания соли может быть удалена в более новых версиях.

Замечание:

Рекомендуется протестировать данную функцию на вашем железе для определения оптимального значения алгоритмической сложности. Убедитесь, что с выбранной сложностью функция выполняется быстрее 100 миллисекунд для интерактивных систем. Скрипт показанный выше поможет вам выбрать подходящее значение.

Замечание: Обновление поддерживаемых алгоритмов для этой функции (или изменение значения по умолчанию) обязаны следовать правилам:

  • Любой новый алгоритм должен присутствовать в ядре как минимум 1 полный релиз PHP для того, чтобы его можно было установить по умолчанию. Таким образом, если, к примеру, новый алгоритм был добавлен в 7.5.5, то задать по умолчанию его можно будет только в 7.7 (7.6 будет тем самым полным релизом, в течение которого он должен присутствовать, от 7.6.0 до 7.7.0). Но если новый алгоритм добавлен в 7.6.0, то его также можно будет задать по умолчанию в 7.7.0.
  • Алгоритм по умолчанию может быть изменен только в полном релизе (7.3.0, 8.0.0, и т.д.), но не в промежуточных. Единственное исключение - это если в текущем алгоритме найдена критическая уязвимость.

Список изменений

Версия | Описание
7.3.0 | Добавлена поддержка алгоритма хеширования паролей Argon2id с помощью PASSWORD_ARGON2ID.
7.2.0 | Добавлена поддержка хеширующего алгоритма Argon2i с помощью PASSWORD_ARGON2I.

Смотрите также

  • password_verify() - Проверяет, соответствует ли пароль хешу
  • crypt() - Необратимое хеширование строки
  • » Пользовательская реализация
  • sodium_crypto_pwhash_str() - Получить ASCII-кодированный хеш


Проверяет, что указанный хеш соответствует заданным опциям

  • « password_hash
  • password_verify »
  • PHP Manual
  • Функции хеширования паролей
  • Проверяет, что указанный хеш соответствует заданным опциям

password_needs_rehash

(PHP 5 >= 5.5.0, PHP 7)

password_needs_rehash — Проверяет, что указанный хеш соответствует заданным опциям

Описание

password_needs_rehash ( string $hash , int $algo [, array $options ] ) : bool

Проверяет, что указанный хеш соответствует заданным опциям и заданному алгоритму. Если нет, то можно сделать вывод о том, что хеш надо пересоздать.

Список параметров

hash

Хеш, созданный функцией password_hash().

algo

Константа, обозначающая используемый алгоритм хеширования пароля.

options

Ассоциативный массив с опциями. За документацией по поддерживаемым опциям для каждого алгоритма обратитесь к разделу Константы алгоритмов хеширования паролей.

Примеры

Пример #1 Пример использования password_needs_rehash()

<?php

$password = 'rasmuslerdorf';
$hash = '$2y$10$YCFsG6elYca568hBi2pZ0.3LDL5wjgxct1N8w/oLR/jfHsiQwCqTS';

// Параметр стоимости может изменяться в связи со сменой оборудования
$options = array('cost' => 11);

// Проверка сохраненного хеша с помощью пароля
if (password_verify($password, $hash)) {
    // Проверяем, не нужно ли использовать более новый алгоритм
    // или другую алгоритмическую стоимость
    if (password_needs_rehash($hash, PASSWORD_DEFAULT, $options)) {
        // Если таки да, перехешируем и сохраняем новый хеш
        $newHash = password_hash($password, PASSWORD_DEFAULT, $options);
    }

    // Авторизуем пользователя
}
?>

Возвращаемые значения

Возвращает TRUE, если пароль должен быть перехеширован с использованием алгоритма algo и опций options, или FALSE, если нет.


Проверяет, соответствует ли пароль хешу

  • « password_needs_rehash
  • Sodium »
  • PHP Manual
  • Функции хеширования паролей
  • Проверяет, соответствует ли пароль хешу

password_verify

(PHP 5 >= 5.5.0, PHP 7)

password_verify — Проверяет, соответствует ли пароль хешу

Описание

password_verify ( string $password , string $hash ) : bool

Проверяет, соответствует ли пароль хешу.

Обратите внимание, что password_hash() возвращает алгоритм, стоимость и соль как части хеша. Таким образом, вся необходимая для проверки информация включена в него. Это позволяет производить проверку без необходимости хранить все эти данные раздельно.

Эта функция безопасна для атак по времени.

Список параметров

password

Пользовательский пароль.

hash

Хеш, созданный функцией password_hash().

Возвращаемые значения

Возвращает TRUE или FALSE, в зависимости от результатов проверки.

Примеры

Пример #1 Пример использования password_verify()

<?php
// Смотрите пример использования password_hash(), для понимания откуда это взялось.
$hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';

if (password_verify('rasmuslerdorf', $hash)) {
    echo 'Пароль правильный!';
} else {
    echo 'Пароль неправильный.';
}
?>

Результат выполнения данного примера:

Пароль правильный!

Смотрите также

  • password_hash() - Создает хеш пароля
  • » пользовательская реализация
  • sodium_crypto_pwhash_str_verify() - Проверяет, что пароль соответствует хешу


Sodium

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Sodium
    • sodium_add — Добавить большие числа
    • sodium_base642bin — Описание
    • sodium_bin2base64 — Описание
    • sodium_bin2hex — Кодировать в шестнадцатеричное представление
    • sodium_compare — Сравнить большие числа
    • sodium_crypto_aead_aes256gcm_decrypt — Расшифровать в комбинированном режиме с предварительным расчетом
    • sodium_crypto_aead_aes256gcm_encrypt — Закодировать в комбинированном режиме с предварительным расчетом
    • sodium_crypto_aead_aes256gcm_is_available — Проверить, поддерживает ли оборудование AES256-GCM
    • sodium_crypto_aead_aes256gcm_keygen — Получить случайные байты для ключа
    • sodium_crypto_aead_chacha20poly1305_decrypt — Проверить, что зашифрованный текст содержит допустимый тег
    • sodium_crypto_aead_chacha20poly1305_encrypt — Зашифровать сообщение
    • sodium_crypto_aead_chacha20poly1305_ietf_decrypt — Проверить, что зашифрованный текст содержит допустимый тег
    • sodium_crypto_aead_chacha20poly1305_ietf_encrypt — Зашифровать сообщение
    • sodium_crypto_aead_chacha20poly1305_ietf_keygen — Получить случайные байты для ключа
    • sodium_crypto_aead_chacha20poly1305_keygen — Получить случайные байты для ключа
    • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt — Описание
    • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt — Описание
    • sodium_crypto_aead_xchacha20poly1305_ietf_keygen — Описание
    • sodium_crypto_auth_keygen — Получить случайные байты для ключа
    • sodium_crypto_auth_verify — Проверяет, допустим ли тег для сообщения
    • sodium_crypto_auth — Вычислить тег для сообщения
    • sodium_crypto_box_keypair_from_secretkey_and_publickey — Описание
    • sodium_crypto_box_keypair — Сгенерировать случайным образом секретный ключ и соответствующий ему открытый ключ
    • sodium_crypto_box_open — Проверить и расшифровать зашифрованный текст
    • sodium_crypto_box_publickey_from_secretkey — Описание
    • sodium_crypto_box_publickey — Описание
    • sodium_crypto_box_seal_open — Расшифровать зашифрованный текст
    • sodium_crypto_box_seal — Зашифровать сообщение
    • sodium_crypto_box_secretkey — Описание
    • sodium_crypto_box_seed_keypair — Детерминистически вывести пару ключей из одного ключа
    • sodium_crypto_box — Зашифровать сообщение
    • sodium_crypto_generichash_final — Закончить хеширование
    • sodium_crypto_generichash_init — Инициализировать хеширование
    • sodium_crypto_generichash_keygen — Получить случайные байты для ключа
    • sodium_crypto_generichash_update — Добавить сообщение к хешу
    • sodium_crypto_generichash — Получить хеш сообщения
    • sodium_crypto_kdf_derive_from_key — Извлечь подраздел
    • sodium_crypto_kdf_keygen — Получить случайные байты для ключа
    • sodium_crypto_kx_client_session_keys — Описание
    • sodium_crypto_kx_keypair — Создает новую пару ключей sodium
    • sodium_crypto_kx_publickey — Описание
    • sodium_crypto_kx_secretkey — Описание
    • sodium_crypto_kx_seed_keypair — Описание
    • sodium_crypto_kx_server_session_keys — Описание
    • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify — Проверить, что пароль является действительной строкой проверки пароля
    • sodium_crypto_pwhash_scryptsalsa208sha256_str — Получить закодированный в ASCII хеш
    • sodium_crypto_pwhash_scryptsalsa208sha256 — Извлечь ключ из пароля
    • sodium_crypto_pwhash_str_needs_rehash — Описание
    • sodium_crypto_pwhash_str_verify — Проверяет, что пароль соответствует хешу
    • sodium_crypto_pwhash_str — Получить ASCII-кодированный хеш
    • sodium_crypto_pwhash — Получить ключ с пароля
    • sodium_crypto_scalarmult_base — Псевдоним sodium_crypto_box_publickey_from_secretkey
    • sodium_crypto_scalarmult — Вычислить общий секрет на основании секретного ключа пользователя и открытого ключа другого пользователя
    • sodium_crypto_secretbox_keygen — Получить случайные байты для ключа
    • sodium_crypto_secretbox_open — Проверить и расшифровать зашифрованный текст
    • sodium_crypto_secretbox — Зашифровать сообщение
    • sodium_crypto_secretstream_xchacha20poly1305_init_pull — Описание
    • sodium_crypto_secretstream_xchacha20poly1305_init_push — Описание
    • sodium_crypto_secretstream_xchacha20poly1305_keygen — Описание
    • sodium_crypto_secretstream_xchacha20poly1305_pull — Описание
    • sodium_crypto_secretstream_xchacha20poly1305_push — Описание
    • sodium_crypto_secretstream_xchacha20poly1305_rekey — Описание
    • sodium_crypto_shorthash_keygen — Получить случайные байты для ключа
    • sodium_crypto_shorthash — Вычислить отпечаток фиксированного размера для сообщения
    • sodium_crypto_sign_detached — Подписать сообщение
    • sodium_crypto_sign_ed25519_pk_to_curve25519 — Преобразование открытого ключа системы Ed25519 в открытый ключ Curve25519
    • sodium_crypto_sign_ed25519_sk_to_curve25519 — Преобразовать секретный ключ из системы Ed25519 в секретный ключ Curve25519
    • sodium_crypto_sign_keypair_from_secretkey_and_publickey — Описание
    • sodium_crypto_sign_keypair — Произвольно сгенерировать секретный ключ и соответствующий открытый ключ
    • sodium_crypto_sign_open — Проверить, что подписанное сообщение имеет корректную подпись
    • sodium_crypto_sign_publickey_from_secretkey — Извлечь открытый ключ из секретного ключа
    • sodium_crypto_sign_publickey — Описание
    • sodium_crypto_sign_secretkey — Описание
    • sodium_crypto_sign_seed_keypair — Детерминированный вывод пары ключей из одного ключа
    • sodium_crypto_sign_verify_detached — Проверить подпись для сообщения
    • sodium_crypto_sign — Подписать сообщение
    • sodium_crypto_stream_keygen — Получить случайные байты для ключа
    • sodium_crypto_stream_xor — Зашифровать сообщение
    • sodium_crypto_stream — Генерация детерминированной последовательности байтов из начального числа
    • sodium_hex2bin — Декодирует строку в шестнадцатеричном представлении в бинарное
    • sodium_increment — Увеличить на единицу большое число
    • sodium_memcmp — Проверка на равенство за постоянное количество времени
    • sodium_memzero — Перезаписать buf нулями
    • sodium_pad — Добавить данные отступов
    • sodium_unpad — Удаление данных отступов


  • « Sodium
  • Установка и настройка »
  • PHP Manual
  • Sodium
  • Введение

Введение


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Для модуля требуется » libsodium ? 1.0.8.


Установка

Начиная с PHP 7.2.0, модуль включен в PHP. Для более старых версий PHP модуль доступен через PECL.

Linux Systems

Для того, чтобы использовать модуль, вам нужно скомпилировать PHP с поддержкой sodium, используя конфигурационную опцию --with-sodium[=DIR] .

Windows

Для того, чтобы использовать модуль, вам нужно добавить extension=php_sodium.dll в файл php.ini.

Установка через PECL

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/libsodium


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SODIUM_LIBRARY_VERSION (string)
SODIUM_LIBRARY_MAJOR_VERSION (integer)
SODIUM_LIBRARY_MINOR_VERSION (integer)
SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES (integer)
SODIUM_CRYPTO_AEAD_AES256GCM_NSECBYTES (integer)
SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES (integer)
SODIUM_CRYPTO_AEAD_AES256GCM_ABYTES (integer)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES (integer)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES (integer)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES (integer)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_ABYTES (integer)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES (integer)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NSECBYTES (integer)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES (integer)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES (integer)
SODIUM_CRYPTO_AUTH_BYTES (integer)
SODIUM_CRYPTO_AUTH_KEYBYTES (integer)
SODIUM_CRYPTO_BOX_SEALBYTES (integer)
SODIUM_CRYPTO_BOX_SECRETKEYBYTES (integer)
SODIUM_CRYPTO_BOX_PUBLICKEYBYTES (integer)
SODIUM_CRYPTO_BOX_KEYPAIRBYTES (integer)
SODIUM_CRYPTO_BOX_MACBYTES (integer)
SODIUM_CRYPTO_BOX_NONCEBYTES (integer)
SODIUM_CRYPTO_BOX_SEEDBYTES (integer)
SODIUM_CRYPTO_KDF_BYTES_MIN (integer)
SODIUM_CRYPTO_KDF_BYTES_MAX (integer)
SODIUM_CRYPTO_KDF_CONTEXTBYTES (integer)
SODIUM_CRYPTO_KDF_KEYBYTES (integer)
SODIUM_CRYPTO_KX_SEEDBYTES (integer)
SODIUM_CRYPTO_KX_SESSIONKEYBYTES (integer)
SODIUM_CRYPTO_KX_PUBLICKEYBYTES (integer)
SODIUM_CRYPTO_KX_SECRETKEYBYTES (integer)
SODIUM_CRYPTO_KX_KEYPAIRBYTES (integer)
SODIUM_CRYPTO_GENERICHASH_BYTES (integer)
SODIUM_CRYPTO_GENERICHASH_BYTES_MIN (integer)
SODIUM_CRYPTO_GENERICHASH_BYTES_MAX (integer)
SODIUM_CRYPTO_GENERICHASH_KEYBYTES (integer)
SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MIN (integer)
SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MAX (integer)
SODIUM_CRYPTO_PWHASH_ALG_ARGON2I13 (integer)
SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13 (integer)
SODIUM_CRYPTO_PWHASH_ALG_DEFAULT (integer)
SODIUM_CRYPTO_PWHASH_SALTBYTES (integer)
SODIUM_CRYPTO_PWHASH_STRPREFIX (string)
SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE (integer)
SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE (integer)
SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE (integer)
SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE (integer)
SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE (integer)
SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE (integer)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES (integer)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX (string)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE (integer)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE (integer)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE (integer)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE (integer)
SODIUM_CRYPTO_SCALARMULT_BYTES (integer)
SODIUM_CRYPTO_SCALARMULT_SCALARBYTES (integer)
SODIUM_CRYPTO_SHORTHASH_BYTES (integer)
SODIUM_CRYPTO_SHORTHASH_KEYBYTES (integer)
SODIUM_CRYPTO_SECRETBOX_KEYBYTES (integer)
SODIUM_CRYPTO_SECRETBOX_MACBYTES (integer)
SODIUM_CRYPTO_SECRETBOX_NONCEBYTES (integer)
SODIUM_CRYPTO_SIGN_BYTES (integer)
SODIUM_CRYPTO_SIGN_SEEDBYTES (integer)
SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES (integer)
SODIUM_CRYPTO_SIGN_SECRETKEYBYTES (integer)
SODIUM_CRYPTO_SIGN_KEYPAIRBYTES (integer)
SODIUM_CRYPTO_STREAM_NONCEBYTES (integer)
SODIUM_CRYPTO_STREAM_KEYBYTES (integer)


Функции Sodium

Содержание

  • sodium_add — Добавить большие числа
  • sodium_base642bin — Описание
  • sodium_bin2base64 — Описание
  • sodium_bin2hex — Кодировать в шестнадцатеричное представление
  • sodium_compare — Сравнить большие числа
  • sodium_crypto_aead_aes256gcm_decrypt — Расшифровать в комбинированном режиме с предварительным расчетом
  • sodium_crypto_aead_aes256gcm_encrypt — Закодировать в комбинированном режиме с предварительным расчетом
  • sodium_crypto_aead_aes256gcm_is_available — Проверить, поддерживает ли оборудование AES256-GCM
  • sodium_crypto_aead_aes256gcm_keygen — Получить случайные байты для ключа
  • sodium_crypto_aead_chacha20poly1305_decrypt — Проверить, что зашифрованный текст содержит допустимый тег
  • sodium_crypto_aead_chacha20poly1305_encrypt — Зашифровать сообщение
  • sodium_crypto_aead_chacha20poly1305_ietf_decrypt — Проверить, что зашифрованный текст содержит допустимый тег
  • sodium_crypto_aead_chacha20poly1305_ietf_encrypt — Зашифровать сообщение
  • sodium_crypto_aead_chacha20poly1305_ietf_keygen — Получить случайные байты для ключа
  • sodium_crypto_aead_chacha20poly1305_keygen — Получить случайные байты для ключа
  • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt — Описание
  • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt — Описание
  • sodium_crypto_aead_xchacha20poly1305_ietf_keygen — Описание
  • sodium_crypto_auth_keygen — Получить случайные байты для ключа
  • sodium_crypto_auth_verify — Проверяет, допустим ли тег для сообщения
  • sodium_crypto_auth — Вычислить тег для сообщения
  • sodium_crypto_box_keypair_from_secretkey_and_publickey — Описание
  • sodium_crypto_box_keypair — Сгенерировать случайным образом секретный ключ и соответствующий ему открытый ключ
  • sodium_crypto_box_open — Проверить и расшифровать зашифрованный текст
  • sodium_crypto_box_publickey_from_secretkey — Описание
  • sodium_crypto_box_publickey — Описание
  • sodium_crypto_box_seal_open — Расшифровать зашифрованный текст
  • sodium_crypto_box_seal — Зашифровать сообщение
  • sodium_crypto_box_secretkey — Описание
  • sodium_crypto_box_seed_keypair — Детерминистически вывести пару ключей из одного ключа
  • sodium_crypto_box — Зашифровать сообщение
  • sodium_crypto_generichash_final — Закончить хеширование
  • sodium_crypto_generichash_init — Инициализировать хеширование
  • sodium_crypto_generichash_keygen — Получить случайные байты для ключа
  • sodium_crypto_generichash_update — Добавить сообщение к хешу
  • sodium_crypto_generichash — Получить хеш сообщения
  • sodium_crypto_kdf_derive_from_key — Извлечь подраздел
  • sodium_crypto_kdf_keygen — Получить случайные байты для ключа
  • sodium_crypto_kx_client_session_keys — Описание
  • sodium_crypto_kx_keypair — Создает новую пару ключей sodium
  • sodium_crypto_kx_publickey — Описание
  • sodium_crypto_kx_secretkey — Описание
  • sodium_crypto_kx_seed_keypair — Описание
  • sodium_crypto_kx_server_session_keys — Описание
  • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify — Проверить, что пароль является действительной строкой проверки пароля
  • sodium_crypto_pwhash_scryptsalsa208sha256_str — Получить закодированный в ASCII хеш
  • sodium_crypto_pwhash_scryptsalsa208sha256 — Извлечь ключ из пароля
  • sodium_crypto_pwhash_str_needs_rehash — Описание
  • sodium_crypto_pwhash_str_verify — Проверяет, что пароль соответствует хешу
  • sodium_crypto_pwhash_str — Получить ASCII-кодированный хеш
  • sodium_crypto_pwhash — Получить ключ с пароля
  • sodium_crypto_scalarmult_base — Псевдоним sodium_crypto_box_publickey_from_secretkey
  • sodium_crypto_scalarmult — Вычислить общий секрет на основании секретного ключа пользователя и открытого ключа другого пользователя
  • sodium_crypto_secretbox_keygen — Получить случайные байты для ключа
  • sodium_crypto_secretbox_open — Проверить и расшифровать зашифрованный текст
  • sodium_crypto_secretbox — Зашифровать сообщение
  • sodium_crypto_secretstream_xchacha20poly1305_init_pull — Описание
  • sodium_crypto_secretstream_xchacha20poly1305_init_push — Описание
  • sodium_crypto_secretstream_xchacha20poly1305_keygen — Описание
  • sodium_crypto_secretstream_xchacha20poly1305_pull — Описание
  • sodium_crypto_secretstream_xchacha20poly1305_push — Описание
  • sodium_crypto_secretstream_xchacha20poly1305_rekey — Описание
  • sodium_crypto_shorthash_keygen — Получить случайные байты для ключа
  • sodium_crypto_shorthash — Вычислить отпечаток фиксированного размера для сообщения
  • sodium_crypto_sign_detached — Подписать сообщение
  • sodium_crypto_sign_ed25519_pk_to_curve25519 — Преобразование открытого ключа системы Ed25519 в открытый ключ Curve25519
  • sodium_crypto_sign_ed25519_sk_to_curve25519 — Преобразовать секретный ключ из системы Ed25519 в секретный ключ Curve25519
  • sodium_crypto_sign_keypair_from_secretkey_and_publickey — Описание
  • sodium_crypto_sign_keypair — Произвольно сгенерировать секретный ключ и соответствующий открытый ключ
  • sodium_crypto_sign_open — Проверить, что подписанное сообщение имеет корректную подпись
  • sodium_crypto_sign_publickey_from_secretkey — Извлечь открытый ключ из секретного ключа
  • sodium_crypto_sign_publickey — Описание
  • sodium_crypto_sign_secretkey — Описание
  • sodium_crypto_sign_seed_keypair — Детерминированный вывод пары ключей из одного ключа
  • sodium_crypto_sign_verify_detached — Проверить подпись для сообщения
  • sodium_crypto_sign — Подписать сообщение
  • sodium_crypto_stream_keygen — Получить случайные байты для ключа
  • sodium_crypto_stream_xor — Зашифровать сообщение
  • sodium_crypto_stream — Генерация детерминированной последовательности байтов из начального числа
  • sodium_hex2bin — Декодирует строку в шестнадцатеричном представлении в бинарное
  • sodium_increment — Увеличить на единицу большое число
  • sodium_memcmp — Проверка на равенство за постоянное количество времени
  • sodium_memzero — Перезаписать buf нулями
  • sodium_pad — Добавить данные отступов
  • sodium_unpad — Удаление данных отступов


Добавить большие числа

  • « Функции Sodium
  • sodium_base642bin »
  • PHP Manual
  • Функции Sodium
  • Добавить большие числа

sodium_add

(PHP 7 >= 7.2.0)

sodium_add — Добавить большие числа

Описание

sodium_add ( string &$val , string $addv ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

val

addv

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « sodium_add
  • sodium_bin2base64 »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_base642bin

(PHP 7 >= 7.2.0)

sodium_base642bin — Описание

Описание

sodium_base642bin ( string $b64 , int $id [, string $ignore ] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

b64

id

ignore

Возвращаемые значения


Описание

  • « sodium_base642bin
  • sodium_bin2hex »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_bin2base64

(PHP 7 >= 7.2.0)

sodium_bin2base64 — Описание

Описание

sodium_bin2base64 ( string $bin , int $id ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

bin

id

Возвращаемые значения


Кодировать в шестнадцатеричное представление

  • « sodium_bin2base64
  • sodium_compare »
  • PHP Manual
  • Функции Sodium
  • Кодировать в шестнадцатеричное представление

sodium_bin2hex

(PHP 7 >= 7.2.0)

sodium_bin2hex — Кодировать в шестнадцатеричное представление

Описание

sodium_bin2hex ( string $bin ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

bin

Возвращаемые значения


Сравнить большие числа

  • « sodium_bin2hex
  • sodium_crypto_aead_aes256gcm_decrypt »
  • PHP Manual
  • Функции Sodium
  • Сравнить большие числа

sodium_compare

(PHP 7 >= 7.2.0)

sodium_compare — Сравнить большие числа

Описание

sodium_compare ( string $buf1 , string $buf2 ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

buf1

buf2

Возвращаемые значения


Расшифровать в комбинированном режиме с предварительным расчетом

  • « sodium_compare
  • sodium_crypto_aead_aes256gcm_encrypt »
  • PHP Manual
  • Функции Sodium
  • Расшифровать в комбинированном режиме с предварительным расчетом

sodium_crypto_aead_aes256gcm_decrypt

(PHP 7 >= 7.2.0)

sodium_crypto_aead_aes256gcm_decrypt — Расшифровать в комбинированном режиме с предварительным расчетом

Описание

sodium_crypto_aead_aes256gcm_decrypt ( string $ciphertext , string $ad , string $nonce , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ciphertext

ad

nonce

key

Возвращаемые значения


Закодировать в комбинированном режиме с предварительным расчетом

  • « sodium_crypto_aead_aes256gcm_decrypt
  • sodium_crypto_aead_aes256gcm_is_available »
  • PHP Manual
  • Функции Sodium
  • Закодировать в комбинированном режиме с предварительным расчетом

sodium_crypto_aead_aes256gcm_encrypt

(PHP 7 >= 7.2.0)

sodium_crypto_aead_aes256gcm_encrypt — Закодировать в комбинированном режиме с предварительным расчетом

Описание

sodium_crypto_aead_aes256gcm_encrypt ( string $msg , string $ad , string $nonce , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

msg

ad

nonce

key

Возвращаемые значения


Проверить, поддерживает ли оборудование AES256-GCM

  • « sodium_crypto_aead_aes256gcm_encrypt
  • sodium_crypto_aead_aes256gcm_keygen »
  • PHP Manual
  • Функции Sodium
  • Проверить, поддерживает ли оборудование AES256-GCM

sodium_crypto_aead_aes256gcm_is_available

(PHP 7 >= 7.2.0)

sodium_crypto_aead_aes256gcm_is_available — Проверить, поддерживает ли оборудование AES256-GCM

Описание

sodium_crypto_aead_aes256gcm_is_available ( void ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить случайные байты для ключа

  • « sodium_crypto_aead_aes256gcm_is_available
  • sodium_crypto_aead_chacha20poly1305_decrypt »
  • PHP Manual
  • Функции Sodium
  • Получить случайные байты для ключа

sodium_crypto_aead_aes256gcm_keygen

(PHP 7 >= 7.2.0)

sodium_crypto_aead_aes256gcm_keygen — Получить случайные байты для ключа

Описание

sodium_crypto_aead_aes256gcm_keygen ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверить, что зашифрованный текст содержит допустимый тег

  • « sodium_crypto_aead_aes256gcm_keygen
  • sodium_crypto_aead_chacha20poly1305_encrypt »
  • PHP Manual
  • Функции Sodium
  • Проверить, что зашифрованный текст содержит допустимый тег

sodium_crypto_aead_chacha20poly1305_decrypt

(PHP 7 >= 7.2.0)

sodium_crypto_aead_chacha20poly1305_decrypt — Проверить, что зашифрованный текст содержит допустимый тег

Описание

sodium_crypto_aead_chacha20poly1305_decrypt ( string $ciphertext , string $ad , string $nonce , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ciphertext

ad

nonce

key

Возвращаемые значения


Зашифровать сообщение

  • « sodium_crypto_aead_chacha20poly1305_decrypt
  • sodium_crypto_aead_chacha20poly1305_ietf_decrypt »
  • PHP Manual
  • Функции Sodium
  • Зашифровать сообщение

sodium_crypto_aead_chacha20poly1305_encrypt

(PHP 7 >= 7.2.0)

sodium_crypto_aead_chacha20poly1305_encrypt — Зашифровать сообщение

Описание

sodium_crypto_aead_chacha20poly1305_encrypt ( string $msg , string $ad , string $nonce , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

msg

ad

nonce

key

Возвращаемые значения


Проверить, что зашифрованный текст содержит допустимый тег

  • « sodium_crypto_aead_chacha20poly1305_encrypt
  • sodium_crypto_aead_chacha20poly1305_ietf_encrypt »
  • PHP Manual
  • Функции Sodium
  • Проверить, что зашифрованный текст содержит допустимый тег

sodium_crypto_aead_chacha20poly1305_ietf_decrypt

(PHP 7 >= 7.2.0)

sodium_crypto_aead_chacha20poly1305_ietf_decrypt — Проверить, что зашифрованный текст содержит допустимый тег

Описание

sodium_crypto_aead_chacha20poly1305_ietf_decrypt ( string $ciphertext , string $ad , string $nonce , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ciphertext

ad

nonce

key

Возвращаемые значения


Зашифровать сообщение

  • « sodium_crypto_aead_chacha20poly1305_ietf_decrypt
  • sodium_crypto_aead_chacha20poly1305_ietf_keygen »
  • PHP Manual
  • Функции Sodium
  • Зашифровать сообщение

sodium_crypto_aead_chacha20poly1305_ietf_encrypt

(PHP 7 >= 7.2.0)

sodium_crypto_aead_chacha20poly1305_ietf_encrypt — Зашифровать сообщение

Описание

sodium_crypto_aead_chacha20poly1305_ietf_encrypt ( string $msg , string $ad , string $nonce , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

msg

ad

nonce

key

Возвращаемые значения


Получить случайные байты для ключа

  • « sodium_crypto_aead_chacha20poly1305_ietf_encrypt
  • sodium_crypto_aead_chacha20poly1305_keygen »
  • PHP Manual
  • Функции Sodium
  • Получить случайные байты для ключа

sodium_crypto_aead_chacha20poly1305_ietf_keygen

(PHP 7 >= 7.2.0)

sodium_crypto_aead_chacha20poly1305_ietf_keygen — Получить случайные байты для ключа

Описание

sodium_crypto_aead_chacha20poly1305_ietf_keygen ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить случайные байты для ключа

  • « sodium_crypto_aead_chacha20poly1305_ietf_keygen
  • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt »
  • PHP Manual
  • Функции Sodium
  • Получить случайные байты для ключа

sodium_crypto_aead_chacha20poly1305_keygen

(PHP 7 >= 7.2.0)

sodium_crypto_aead_chacha20poly1305_keygen — Получить случайные байты для ключа

Описание

sodium_crypto_aead_chacha20poly1305_keygen ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « sodium_crypto_aead_chacha20poly1305_keygen
  • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_aead_xchacha20poly1305_ietf_decrypt

(PHP 7 >= 7.2.0)

sodium_crypto_aead_xchacha20poly1305_ietf_decrypt — Описание

Описание

sodium_crypto_aead_xchacha20poly1305_ietf_decrypt ( string $ciphertext , string $ad , string $nonce , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ciphertext

ad

nonce

key

Возвращаемые значения


Описание

  • « sodium_crypto_aead_xchacha20poly1305_ietf_decrypt
  • sodium_crypto_aead_xchacha20poly1305_ietf_keygen »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_aead_xchacha20poly1305_ietf_encrypt

(PHP 7 >= 7.2.0)

sodium_crypto_aead_xchacha20poly1305_ietf_encrypt — Описание

Описание

sodium_crypto_aead_xchacha20poly1305_ietf_encrypt ( string $msg , string $ad , string $nonce , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

msg

ad

nonce

key

Возвращаемые значения


Описание

  • « sodium_crypto_aead_xchacha20poly1305_ietf_encrypt
  • sodium_crypto_auth_keygen »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_aead_xchacha20poly1305_ietf_keygen

(PHP 7 >= 7.2.0)

sodium_crypto_aead_xchacha20poly1305_ietf_keygen — Описание

Описание

sodium_crypto_aead_xchacha20poly1305_ietf_keygen ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить случайные байты для ключа

  • « sodium_crypto_aead_xchacha20poly1305_ietf_keygen
  • sodium_crypto_auth_verify »
  • PHP Manual
  • Функции Sodium
  • Получить случайные байты для ключа

sodium_crypto_auth_keygen

(PHP 7 >= 7.2.0)

sodium_crypto_auth_keygen — Получить случайные байты для ключа

Описание

sodium_crypto_auth_keygen ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверяет, допустим ли тег для сообщения

  • « sodium_crypto_auth_keygen
  • sodium_crypto_auth »
  • PHP Manual
  • Функции Sodium
  • Проверяет, допустим ли тег для сообщения

sodium_crypto_auth_verify

(PHP 7 >= 7.2.0)

sodium_crypto_auth_verify — Проверяет, допустим ли тег для сообщения

Описание

sodium_crypto_auth_verify ( string $signature , string $msg , string $key ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

signature

msg

key

Возвращаемые значения


Вычислить тег для сообщения

  • « sodium_crypto_auth_verify
  • sodium_crypto_box_keypair_from_secretkey_and_publickey »
  • PHP Manual
  • Функции Sodium
  • Вычислить тег для сообщения

sodium_crypto_auth

(PHP 7 >= 7.2.0)

sodium_crypto_auth — Вычислить тег для сообщения

Описание

sodium_crypto_auth ( string $msg , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

msg

key

Возвращаемые значения


Описание

  • « sodium_crypto_auth
  • sodium_crypto_box_keypair »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_box_keypair_from_secretkey_and_publickey

(PHP 7 >= 7.2.0)

sodium_crypto_box_keypair_from_secretkey_and_publickey — Описание

Описание

sodium_crypto_box_keypair_from_secretkey_and_publickey ( string $secret_key , string $public_key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

secret_key

public_key

Возвращаемые значения


Сгенерировать случайным образом секретный ключ и соответствующий ему открытый ключ

  • « sodium_crypto_box_keypair_from_secretkey_and_publickey
  • sodium_crypto_box_open »
  • PHP Manual
  • Функции Sodium
  • Сгенерировать случайным образом секретный ключ и соответствующий ему открытый ключ

sodium_crypto_box_keypair

(PHP 7 >= 7.2.0)

sodium_crypto_box_keypair — Сгенерировать случайным образом секретный ключ и соответствующий ему открытый ключ

Описание

sodium_crypto_box_keypair ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверить и расшифровать зашифрованный текст

  • « sodium_crypto_box_keypair
  • sodium_crypto_box_publickey_from_secretkey »
  • PHP Manual
  • Функции Sodium
  • Проверить и расшифровать зашифрованный текст

sodium_crypto_box_open

(PHP 7 >= 7.2.0)

sodium_crypto_box_open — Проверить и расшифровать зашифрованный текст

Описание

sodium_crypto_box_open ( string $ciphertext , string $nonce , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ciphertext

nonce

key

Возвращаемые значения


Описание

  • « sodium_crypto_box_open
  • sodium_crypto_box_publickey »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_box_publickey_from_secretkey

(PHP 7 >= 7.2.0)

sodium_crypto_box_publickey_from_secretkey — Описание

Описание

sodium_crypto_box_publickey_from_secretkey ( string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Возвращаемые значения


Описание

  • « sodium_crypto_box_publickey_from_secretkey
  • sodium_crypto_box_seal_open »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_box_publickey

(PHP 7 >= 7.2.0)

sodium_crypto_box_publickey — Описание

Описание

sodium_crypto_box_publickey ( string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Возвращаемые значения


Расшифровать зашифрованный текст

  • « sodium_crypto_box_publickey
  • sodium_crypto_box_seal »
  • PHP Manual
  • Функции Sodium
  • Расшифровать зашифрованный текст

sodium_crypto_box_seal_open

(PHP 7 >= 7.2.0)

sodium_crypto_box_seal_open — Расшифровать зашифрованный текст

Описание

sodium_crypto_box_seal_open ( string $ciphertext , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ciphertext

key

Возвращаемые значения


Зашифровать сообщение

  • « sodium_crypto_box_seal_open
  • sodium_crypto_box_secretkey »
  • PHP Manual
  • Функции Sodium
  • Зашифровать сообщение

sodium_crypto_box_seal

(PHP 7 >= 7.2.0)

sodium_crypto_box_seal — Зашифровать сообщение

Описание

sodium_crypto_box_seal ( string $msg , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

msg

key

Возвращаемые значения


Описание

  • « sodium_crypto_box_seal
  • sodium_crypto_box_seed_keypair »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_box_secretkey

(PHP 7 >= 7.2.0)

sodium_crypto_box_secretkey — Описание

Описание

sodium_crypto_box_secretkey ( string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Возвращаемые значения


Детерминистически вывести пару ключей из одного ключа

  • « sodium_crypto_box_secretkey
  • sodium_crypto_box »
  • PHP Manual
  • Функции Sodium
  • Детерминистически вывести пару ключей из одного ключа

sodium_crypto_box_seed_keypair

(PHP 7 >= 7.2.0)

sodium_crypto_box_seed_keypair — Детерминистически вывести пару ключей из одного ключа

Описание

sodium_crypto_box_seed_keypair ( string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Возвращаемые значения


Зашифровать сообщение

  • « sodium_crypto_box_seed_keypair
  • sodium_crypto_generichash_final »
  • PHP Manual
  • Функции Sodium
  • Зашифровать сообщение

sodium_crypto_box

(PHP 7 >= 7.2.0)

sodium_crypto_box — Зашифровать сообщение

Описание

sodium_crypto_box ( string $msg , string $nonce , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

msg

nonce

key

Возвращаемые значения


Закончить хеширование

  • « sodium_crypto_box
  • sodium_crypto_generichash_init »
  • PHP Manual
  • Функции Sodium
  • Закончить хеширование

sodium_crypto_generichash_final

(PHP 7 >= 7.2.0)

sodium_crypto_generichash_final — Закончить хеширование

Описание

sodium_crypto_generichash_final ( string &$state [, int $length = SODIUM_CRYPTO_GENERICHASH_BYTES ] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

state

length

Возвращаемые значения


Инициализировать хеширование

  • « sodium_crypto_generichash_final
  • sodium_crypto_generichash_keygen »
  • PHP Manual
  • Функции Sodium
  • Инициализировать хеширование

sodium_crypto_generichash_init

(PHP 7 >= 7.2.0)

sodium_crypto_generichash_init — Инициализировать хеширование

Описание

sodium_crypto_generichash_init ([ string $key [, int $length = SODIUM_CRYPTO_GENERICHASH_BYTES ]] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

length

Возвращаемые значения


Получить случайные байты для ключа

  • « sodium_crypto_generichash_init
  • sodium_crypto_generichash_update »
  • PHP Manual
  • Функции Sodium
  • Получить случайные байты для ключа

sodium_crypto_generichash_keygen

(PHP 7 >= 7.2.0)

sodium_crypto_generichash_keygen — Получить случайные байты для ключа

Описание

sodium_crypto_generichash_keygen ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Добавить сообщение к хешу

  • « sodium_crypto_generichash_keygen
  • sodium_crypto_generichash »
  • PHP Manual
  • Функции Sodium
  • Добавить сообщение к хешу

sodium_crypto_generichash_update

(PHP 7 >= 7.2.0)

sodium_crypto_generichash_update — Добавить сообщение к хешу

Описание

sodium_crypto_generichash_update ( string &$state , string $msg ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

state

msg

Возвращаемые значения


Получить хеш сообщения

  • « sodium_crypto_generichash_update
  • sodium_crypto_kdf_derive_from_key »
  • PHP Manual
  • Функции Sodium
  • Получить хеш сообщения

sodium_crypto_generichash

(PHP 7 >= 7.2.0)

sodium_crypto_generichash — Получить хеш сообщения

Описание

sodium_crypto_generichash ( string $msg [, string $key [, int $length = SODIUM_CRYPTO_GENERICHASH_BYTES ]] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

msg

key

length

Возвращаемые значения


Извлечь подраздел

  • « sodium_crypto_generichash
  • sodium_crypto_kdf_keygen »
  • PHP Manual
  • Функции Sodium
  • Извлечь подраздел

sodium_crypto_kdf_derive_from_key

(PHP 7 >= 7.2.0)

sodium_crypto_kdf_derive_from_key — Извлечь подраздел

Описание

sodium_crypto_kdf_derive_from_key ( int $subkey_len , int $subkey_id , string $context , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

subkey_len

subkey_id

context

key

Возвращаемые значения


Получить случайные байты для ключа

  • « sodium_crypto_kdf_derive_from_key
  • sodium_crypto_kx_client_session_keys »
  • PHP Manual
  • Функции Sodium
  • Получить случайные байты для ключа

sodium_crypto_kdf_keygen

(PHP 7 >= 7.2.0)

sodium_crypto_kdf_keygen — Получить случайные байты для ключа

Описание

sodium_crypto_kdf_keygen ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « sodium_crypto_kdf_keygen
  • sodium_crypto_kx_keypair »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_kx_client_session_keys

(PHP 7 >= 7.2.0)

sodium_crypto_kx_client_session_keys — Описание

Описание

sodium_crypto_kx_client_session_keys ( string $client_keypair , string $server_key ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

client_keypair

server_key

Возвращаемые значения


Создает новую пару ключей sodium

  • « sodium_crypto_kx_client_session_keys
  • sodium_crypto_kx_publickey »
  • PHP Manual
  • Функции Sodium
  • Создает новую пару ключей sodium

sodium_crypto_kx_keypair

(PHP 7 >= 7.2.0)

sodium_crypto_kx_keypair — Создает новую пару ключей sodium

Описание

sodium_crypto_kx_keypair ( void ) : string

Создать новую пару ключей sodium, состоящую из секретного ключа (32 байта) и следующего за ним открытого ключа (32 байта). Ключи можно получить, вызвав sodium_crypto_kx_secretkey() и sodium_crypto_kx_publickey() соответственно.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает новую пару ключей в случае успешного выполнения; выбрасывает исключение в противном случае.

Примеры

Пример #1 Пример использования sodium_crypto_kx_keypair()

Создать новую пару ключей и извлечь из нее секретный и открытый ключи.

<?php
$keypair = sodium_crypto_kx_keypair();
$secret = sodium_crypto_kx_secretkey($keypair);
$public = sodium_crypto_kx_publickey($keypair);
printf("секретный ключ: %s\nоткрытый ключ: %s", bin2hex($secret), bin2hex($public));
?>

Результатом выполнения данного примера будет что-то подобное:

секретный ключ: e7c5c918fdc40762e6000542c0118f4368ce8fd242b0e48c1e17202797a25daf
открытый ключ: d1f59fda8652caf40ed1a01d2b6f3802b60846986372cd8fa337b7c12c428b18


Описание

  • « sodium_crypto_kx_keypair
  • sodium_crypto_kx_secretkey »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_kx_publickey

(PHP 7 >= 7.2.0)

sodium_crypto_kx_publickey — Описание

Описание

sodium_crypto_kx_publickey ( string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Возвращаемые значения


Описание

  • « sodium_crypto_kx_publickey
  • sodium_crypto_kx_seed_keypair »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_kx_secretkey

(PHP 7 >= 7.2.0)

sodium_crypto_kx_secretkey — Описание

Описание

sodium_crypto_kx_secretkey ( string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Возвращаемые значения


Описание

  • « sodium_crypto_kx_secretkey
  • sodium_crypto_kx_server_session_keys »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_kx_seed_keypair

(PHP 7 >= 7.2.0)

sodium_crypto_kx_seed_keypair — Описание

Описание

sodium_crypto_kx_seed_keypair ( string $string ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

string

Возвращаемые значения


Описание

  • « sodium_crypto_kx_seed_keypair
  • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_kx_server_session_keys

(PHP 7 >= 7.2.0)

sodium_crypto_kx_server_session_keys — Описание

Описание

sodium_crypto_kx_server_session_keys ( string $server_keypair , string $client_key ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

server_keypair

client_key

Возвращаемые значения


Проверить, что пароль является действительной строкой проверки пароля

  • « sodium_crypto_kx_server_session_keys
  • sodium_crypto_pwhash_scryptsalsa208sha256_str »
  • PHP Manual
  • Функции Sodium
  • Проверить, что пароль является действительной строкой проверки пароля

sodium_crypto_pwhash_scryptsalsa208sha256_str_verify

(PHP 7 >= 7.2.0)

sodium_crypto_pwhash_scryptsalsa208sha256_str_verify — Проверить, что пароль является действительной строкой проверки пароля

Описание

sodium_crypto_pwhash_scryptsalsa208sha256_str_verify ( string $hash , string $password ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

hash

password

Возвращаемые значения


Получить закодированный в ASCII хеш

  • « sodium_crypto_pwhash_scryptsalsa208sha256_str_verify
  • sodium_crypto_pwhash_scryptsalsa208sha256 »
  • PHP Manual
  • Функции Sodium
  • Получить закодированный в ASCII хеш

sodium_crypto_pwhash_scryptsalsa208sha256_str

(PHP 7 >= 7.2.0)

sodium_crypto_pwhash_scryptsalsa208sha256_str — Получить закодированный в ASCII хеш

Описание

sodium_crypto_pwhash_scryptsalsa208sha256_str ( string $password , int $opslimit , int $memlimit ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

password

opslimit

memlimit

Возвращаемые значения


Извлечь ключ из пароля

  • « sodium_crypto_pwhash_scryptsalsa208sha256_str
  • sodium_crypto_pwhash_str_needs_rehash »
  • PHP Manual
  • Функции Sodium
  • Извлечь ключ из пароля

sodium_crypto_pwhash_scryptsalsa208sha256

(PHP 7 >= 7.2.0)

sodium_crypto_pwhash_scryptsalsa208sha256 — Извлечь ключ из пароля

Описание

sodium_crypto_pwhash_scryptsalsa208sha256 ( int $length , string $password , string $salt , int $opslimit , int $memlimit ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

length

password

salt

opslimit

memlimit

Возвращаемые значения


Описание

  • « sodium_crypto_pwhash_scryptsalsa208sha256
  • sodium_crypto_pwhash_str_verify »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_pwhash_str_needs_rehash

(PHP 7 >= 7.2.0)

sodium_crypto_pwhash_str_needs_rehash — Описание

Описание

sodium_crypto_pwhash_str_needs_rehash ( string $password , int $opslimit , int $memlimit ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

password

opslimit

memlimit

Возвращаемые значения


Проверяет, что пароль соответствует хешу

  • « sodium_crypto_pwhash_str_needs_rehash
  • sodium_crypto_pwhash_str »
  • PHP Manual
  • Функции Sodium
  • Проверяет, что пароль соответствует хешу

sodium_crypto_pwhash_str_verify

(PHP 7 >= 7.2.0)

sodium_crypto_pwhash_str_verify — Проверяет, что пароль соответствует хешу

Описание

sodium_crypto_pwhash_str_verify ( string $hash , string $password ) : bool

Проверяет, что хэш пароля, созданный sodium_crypto_pwhash_str(), соответствует заданному паролю. Обратите внимание, что в этой функции порядок аргументов не соответствует порядку аргументов в похожей функции password_hash().

Список параметров

hash

Хеш, созданный функцией password_hash().

password

Пользовательский пароль.

Возвращаемые значения

Возвращает TRUE, если пароль соответствует хешу, и FALSE, если нет.

Примечания

Замечание:

Хеши вычисляются с помощью алгоритма Argon2ID, хорошо противостоящему обоим видам атак: GPU и атакам по стороннему каналу.

Смотрите также

  • sodium_crypto_pwhash_str() - Получить ASCII-кодированный хеш
  • password_hash() - Создает хеш пароля
  • password_verify() - Проверяет, соответствует ли пароль хешу


Получить ASCII-кодированный хеш

  • « sodium_crypto_pwhash_str_verify
  • sodium_crypto_pwhash »
  • PHP Manual
  • Функции Sodium
  • Получить ASCII-кодированный хеш

sodium_crypto_pwhash_str

(PHP 7 >= 7.2.0)

sodium_crypto_pwhash_str — Получить ASCII-кодированный хеш

Описание

sodium_crypto_pwhash_str ( string $password , int $opslimit , int $memlimit ) : string

Использует ресурсоемкий по ЦПУ и памяти алгоритм хеширования. Соль генерируется случайно. Можно задать ограничения по использованию памяти и ЦПУ. Можно использовать для генерации ASCII-хешей, подходящих для хранения паролей.

Список параметров

password

string; Пароль, для которого будет генерироваться хеш.

opslimit

Задает ограничение на использование процессорного времени. Чем больше число - тем больше будет нагрузка на процессор при генерации ключа. Также можно использовать пердопределенные константы для этого параметра (перечислены в порядке усиления защищенности и потребления ЦПУ): SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE и SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE.

memlimit

Задает ограничение на использование памяти в байтах. Можно использовать предопределенные константы для этого параметра (перечислены в порядке усиления защищенности и потребления памяти): SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE и SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE. Имеет смысл использовать одинаковые уровни защищенности в memlimit и opslimit.

Возвращаемые значения

Возвращает хеш пароля, или FALSE в случае возникновения ошибки.

Для того, чтобы для одного и того же пароля всегда генерировался один и тот же хеш, необходимо использовать одинаковые значения opslimit и memlimit. Так как эти параметры включены в сгенерированный хеш, функция sodium_crypto_pwhash_str_verify() может проверять его корректность без необходимости хранить эти параметры отдельно.

Примечания

Замечание:

Хеши вычисляются с помощью алгоритма Argon2ID, устойчивого для атак стороннего канала и GPU. В отличие от функции password_hash(), у этой функции нет параметра salt (он генерируется автоматически), а параметры opslimit и memlimit являются обязательными.

Примеры

Пример #1 Пример использования password_hash()

<?php
$password = 'password';
echo sodium_crypto_pwhash_str(
    $password,
    SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE,
    SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
);

Результатом выполнения данного примера будет что-то подобное:

$argon2id$v=19$m=65536,t=2,p=1$oWIfdaXwWwhVmovOBc2NAQ$EbsZ+JnZyyavkafS0hoc4HdaOB0ILWZESAZ7kVGa+Iw

Смотрите также

  • sodium_crypto_pwhash_str_verify() - Проверяет, что пароль соответствует хешу
  • sodium_crypto_pwhash() - Получить ключ с пароля
  • password_hash() - Создает хеш пароля
  • password_verify() - Проверяет, соответствует ли пароль хешу
  • » Документация на Libsodium Argon2


Получить ключ с пароля

  • « sodium_crypto_pwhash_str
  • sodium_crypto_scalarmult_base »
  • PHP Manual
  • Функции Sodium
  • Получить ключ с пароля

sodium_crypto_pwhash

(PHP 7 >= 7.2.0)

sodium_crypto_pwhash — Получить ключ с пароля

Описание

sodium_crypto_pwhash ( int $length , string $password , string $salt , int $opslimit , int $memlimit [, int $alg ] ) : string

Эта функция предоставляет низкоуровневый доступ к функции crypto_pwhash библиотеки libsodium. Если у вас нет принципиальной необходимости в этой функции, то лучше использовать sodium_crypto_pwhash_str() или password_hash().

Список параметров

length

integer; Длина создаваемого хеша пароля в байтах.

password

string; Пароль, для которого создается хеш.

salt

string Соль, которую нужно добавить к паролю перед хешированием. Соль должна быть непредсказуемой, в идеале генерируемой из хорошего источника случайных чисел, такого как random_bytes(), а также быть длиной не меньше байт, указанных в константе SODIUM_CRYPTO_PWHASH_SALTBYTES.

opslimit

Представляет максимальное количество вычислений для выполнения Увеличение этого числа приведет к тому, что функции потребуется больше циклов ЦП для вычисления ключа. Существуют константы, доступные для установки предела операций для соответствующих значений в зависимости от предполагаемого использования, в порядке убывания: SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE и SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE.

memlimit

Максимальный объем ОЗУ в байтах, который будет использовать функция. Существуют константы, которые помогут вам выбрать подходящее значение в порядке размера: SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE и SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE. Как правило, они должны сочетаться с соответствующими значениями opslimit.

alg

integer Число, указывающее используемый алгоритм хеширования. По умолчанию задана SODIUM_CRYPTO_PWHASH_ALG_DEFAULT (рекомендуемый в настоящее время алгоритм, который может быть изменен с при смене версии libsodium на другую), или явно используя константу SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13, представляющую версию алгоритма Argon2id 1.3.

Возвращаемые значения

Возвращает захешированный пароль, или FALSE в случае возникновения ошибки. Возвращаемое значение является бинарной строкой, а не ASCII-представлением и не содержит никакой дополнительной информации о параметрах, с которыми генерировался хеш. Таким образом вам необходимо самим сохранять значения использованных параметров для проверки корректности хеша в будущем. Чтобы всем этим не заниматься - используйте функцию sodium_crypto_pwhash_str().

Примеры

Пример #1 Пример использования password_hash()

<?php
//Для дальнейшенй проверки необходимо сохранить соль
$salt = random_bytes(SODIUM_CRYPTO_PWHASH_SALTBYTES);
// Используем bin2hex для удобочитаемости
echo bin2hex(
    sodium_crypto_pwhash(
        16, // == 128 бит
        'password',
        $salt,
        SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE,
        SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE,
        SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13
    )
);
?>

Результатом выполнения данного примера будет что-то подобное:

a18f346ba57992eb7e4ae6abf3fd30ee


Псевдоним sodium_crypto_box_publickey_from_secretkey

  • « sodium_crypto_pwhash
  • sodium_crypto_scalarmult »
  • PHP Manual
  • Функции Sodium
  • Псевдоним sodium_crypto_box_publickey_from_secretkey

sodium_crypto_scalarmult_base

(PHP 7 >= 7.2.0)

sodium_crypto_scalarmult_base — Псевдоним sodium_crypto_box_publickey_from_secretkey()

Описание

Эта функция является псевдонимом: sodium_crypto_box_publickey_from_secretkey().


Вычислить общий секрет на основании секретного ключа пользователя и открытого ключа другого пользователя

  • « sodium_crypto_scalarmult_base
  • sodium_crypto_secretbox_keygen »
  • PHP Manual
  • Функции Sodium
  • Вычислить общий секрет на основании секретного ключа пользователя и открытого ключа другого пользователя

sodium_crypto_scalarmult

(PHP 7 >= 7.2.0)

sodium_crypto_scalarmult — Вычислить общий секрет на основании секретного ключа пользователя и открытого ключа другого пользователя

Описание

sodium_crypto_scalarmult ( string $n , string $p ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

n

p

Возвращаемые значения


Получить случайные байты для ключа

  • « sodium_crypto_scalarmult
  • sodium_crypto_secretbox_open »
  • PHP Manual
  • Функции Sodium
  • Получить случайные байты для ключа

sodium_crypto_secretbox_keygen

(PHP 7 >= 7.2.0)

sodium_crypto_secretbox_keygen — Получить случайные байты для ключа

Описание

sodium_crypto_secretbox_keygen ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверить и расшифровать зашифрованный текст

  • « sodium_crypto_secretbox_keygen
  • sodium_crypto_secretbox »
  • PHP Manual
  • Функции Sodium
  • Проверить и расшифровать зашифрованный текст

sodium_crypto_secretbox_open

(PHP 7 >= 7.2.0)

sodium_crypto_secretbox_open — Проверить и расшифровать зашифрованный текст

Описание

sodium_crypto_secretbox_open ( string $ciphertext , string $nonce , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ciphertext

nonce

key

Возвращаемые значения


Зашифровать сообщение

  • « sodium_crypto_secretbox_open
  • sodium_crypto_secretstream_xchacha20poly1305_init_pull »
  • PHP Manual
  • Функции Sodium
  • Зашифровать сообщение

sodium_crypto_secretbox

(PHP 7 >= 7.2.0)

sodium_crypto_secretbox — Зашифровать сообщение

Описание

sodium_crypto_secretbox ( string $string , string $nonce , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

string

nonce

key

Возвращаемые значения


Описание

  • « sodium_crypto_secretbox
  • sodium_crypto_secretstream_xchacha20poly1305_init_push »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_secretstream_xchacha20poly1305_init_pull

(PHP 7 >= 7.2.0)

sodium_crypto_secretstream_xchacha20poly1305_init_pull — Описание

Описание

sodium_crypto_secretstream_xchacha20poly1305_init_pull ( string $header , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

header

key

Возвращаемые значения


Описание

  • « sodium_crypto_secretstream_xchacha20poly1305_init_pull
  • sodium_crypto_secretstream_xchacha20poly1305_keygen »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_secretstream_xchacha20poly1305_init_push

(PHP 7 >= 7.2.0)

sodium_crypto_secretstream_xchacha20poly1305_init_push — Описание

Описание

sodium_crypto_secretstream_xchacha20poly1305_init_push ( string $key ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Возвращаемые значения


Описание

  • « sodium_crypto_secretstream_xchacha20poly1305_init_push
  • sodium_crypto_secretstream_xchacha20poly1305_pull »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_secretstream_xchacha20poly1305_keygen

(PHP 7 >= 7.2.0)

sodium_crypto_secretstream_xchacha20poly1305_keygen — Описание

Описание

sodium_crypto_secretstream_xchacha20poly1305_keygen ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « sodium_crypto_secretstream_xchacha20poly1305_keygen
  • sodium_crypto_secretstream_xchacha20poly1305_push »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_secretstream_xchacha20poly1305_pull

(PHP 7 >= 7.2.0)

sodium_crypto_secretstream_xchacha20poly1305_pull — Описание

Описание

sodium_crypto_secretstream_xchacha20poly1305_pull ( string &$state , string $c [, string $ad ] ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

state

c

ad

Возвращаемые значения


Описание

  • « sodium_crypto_secretstream_xchacha20poly1305_pull
  • sodium_crypto_secretstream_xchacha20poly1305_rekey »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_secretstream_xchacha20poly1305_push

(PHP 7 >= 7.2.0)

sodium_crypto_secretstream_xchacha20poly1305_push — Описание

Описание

sodium_crypto_secretstream_xchacha20poly1305_push ( string &$state , string $msg [, string $ad [, int $tag ]] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

state

msg

ad

tag

Возвращаемые значения


Описание

  • « sodium_crypto_secretstream_xchacha20poly1305_push
  • sodium_crypto_shorthash_keygen »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_secretstream_xchacha20poly1305_rekey

(PHP 7 >= 7.2.0)

sodium_crypto_secretstream_xchacha20poly1305_rekey — Описание

Описание

sodium_crypto_secretstream_xchacha20poly1305_rekey ( string &$state ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

state

Возвращаемые значения


Получить случайные байты для ключа

  • « sodium_crypto_secretstream_xchacha20poly1305_rekey
  • sodium_crypto_shorthash »
  • PHP Manual
  • Функции Sodium
  • Получить случайные байты для ключа

sodium_crypto_shorthash_keygen

(PHP 7 >= 7.2.0)

sodium_crypto_shorthash_keygen — Получить случайные байты для ключа

Описание

sodium_crypto_shorthash_keygen ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Вычислить отпечаток фиксированного размера для сообщения

  • « sodium_crypto_shorthash_keygen
  • sodium_crypto_sign_detached »
  • PHP Manual
  • Функции Sodium
  • Вычислить отпечаток фиксированного размера для сообщения

sodium_crypto_shorthash

(PHP 7 >= 7.2.0)

sodium_crypto_shorthash — Вычислить отпечаток фиксированного размера для сообщения

Описание

sodium_crypto_shorthash ( string $msg , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

msg

key

Возвращаемые значения


Подписать сообщение

  • « sodium_crypto_shorthash
  • sodium_crypto_sign_ed25519_pk_to_curve25519 »
  • PHP Manual
  • Функции Sodium
  • Подписать сообщение

sodium_crypto_sign_detached

(PHP 7 >= 7.2.0)

sodium_crypto_sign_detached — Подписать сообщение

Описание

sodium_crypto_sign_detached ( string $msg , string $secretkey ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

msg

secretkey

Возвращаемые значения


Преобразование открытого ключа системы Ed25519 в открытый ключ Curve25519

  • « sodium_crypto_sign_detached
  • sodium_crypto_sign_ed25519_sk_to_curve25519 »
  • PHP Manual
  • Функции Sodium
  • Преобразование открытого ключа системы Ed25519 в открытый ключ Curve25519

sodium_crypto_sign_ed25519_pk_to_curve25519

(PHP 7 >= 7.2.0)

sodium_crypto_sign_ed25519_pk_to_curve25519 — Преобразование открытого ключа системы Ed25519 в открытый ключ Curve25519

Описание

sodium_crypto_sign_ed25519_pk_to_curve25519 ( string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Возвращаемые значения


Преобразовать секретный ключ из системы Ed25519 в секретный ключ Curve25519

  • « sodium_crypto_sign_ed25519_pk_to_curve25519
  • sodium_crypto_sign_keypair_from_secretkey_and_publickey »
  • PHP Manual
  • Функции Sodium
  • Преобразовать секретный ключ из системы Ed25519 в секретный ключ Curve25519

sodium_crypto_sign_ed25519_sk_to_curve25519

(PHP 7 >= 7.2.0)

sodium_crypto_sign_ed25519_sk_to_curve25519 — Преобразовать секретный ключ из системы Ed25519 в секретный ключ Curve25519

Описание

sodium_crypto_sign_ed25519_sk_to_curve25519 ( string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Возвращаемые значения


Описание

  • « sodium_crypto_sign_ed25519_sk_to_curve25519
  • sodium_crypto_sign_keypair »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_sign_keypair_from_secretkey_and_publickey

(PHP 7 >= 7.2.0)

sodium_crypto_sign_keypair_from_secretkey_and_publickey — Описание

Описание

sodium_crypto_sign_keypair_from_secretkey_and_publickey ( string $secret_key , string $public_key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

secret_key

public_key

Возвращаемые значения


Произвольно сгенерировать секретный ключ и соответствующий открытый ключ

  • « sodium_crypto_sign_keypair_from_secretkey_and_publickey
  • sodium_crypto_sign_open »
  • PHP Manual
  • Функции Sodium
  • Произвольно сгенерировать секретный ключ и соответствующий открытый ключ

sodium_crypto_sign_keypair

(PHP 7 >= 7.2.0)

sodium_crypto_sign_keypair — Произвольно сгенерировать секретный ключ и соответствующий открытый ключ

Описание

sodium_crypto_sign_keypair ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверить, что подписанное сообщение имеет корректную подпись

  • « sodium_crypto_sign_keypair
  • sodium_crypto_sign_publickey_from_secretkey »
  • PHP Manual
  • Функции Sodium
  • Проверить, что подписанное сообщение имеет корректную подпись

sodium_crypto_sign_open

(PHP 7 >= 7.2.0)

sodium_crypto_sign_open — Проверить, что подписанное сообщение имеет корректную подпись

Описание

sodium_crypto_sign_open ( string $string , string $public_key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

string

public_key

Возвращаемые значения


Извлечь открытый ключ из секретного ключа

  • « sodium_crypto_sign_open
  • sodium_crypto_sign_publickey »
  • PHP Manual
  • Функции Sodium
  • Извлечь открытый ключ из секретного ключа

sodium_crypto_sign_publickey_from_secretkey

(PHP 7 >= 7.2.0)

sodium_crypto_sign_publickey_from_secretkey — Извлечь открытый ключ из секретного ключа

Описание

sodium_crypto_sign_publickey_from_secretkey ( string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Возвращаемые значения


Описание

  • « sodium_crypto_sign_publickey_from_secretkey
  • sodium_crypto_sign_secretkey »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_sign_publickey

(PHP 7 >= 7.2.0)

sodium_crypto_sign_publickey — Описание

Описание

sodium_crypto_sign_publickey ( string $keypair ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

keypair

Возвращаемые значения


Описание

  • « sodium_crypto_sign_publickey
  • sodium_crypto_sign_seed_keypair »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_sign_secretkey

(PHP 7 >= 7.2.0)

sodium_crypto_sign_secretkey — Описание

Описание

sodium_crypto_sign_secretkey ( string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Возвращаемые значения


Детерминированный вывод пары ключей из одного ключа

  • « sodium_crypto_sign_secretkey
  • sodium_crypto_sign_verify_detached »
  • PHP Manual
  • Функции Sodium
  • Детерминированный вывод пары ключей из одного ключа

sodium_crypto_sign_seed_keypair

(PHP 7 >= 7.2.0)

sodium_crypto_sign_seed_keypair — Детерминированный вывод пары ключей из одного ключа

Описание

sodium_crypto_sign_seed_keypair ( string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Возвращаемые значения


Проверить подпись для сообщения

  • « sodium_crypto_sign_seed_keypair
  • sodium_crypto_sign »
  • PHP Manual
  • Функции Sodium
  • Проверить подпись для сообщения

sodium_crypto_sign_verify_detached

(PHP 7 >= 7.2.0)

sodium_crypto_sign_verify_detached — Проверить подпись для сообщения

Описание

sodium_crypto_sign_verify_detached ( string $signature , string $msg , string $public_key ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

signature

msg

public_key

Возвращаемые значения


Подписать сообщение

  • « sodium_crypto_sign_verify_detached
  • sodium_crypto_stream_keygen »
  • PHP Manual
  • Функции Sodium
  • Подписать сообщение

sodium_crypto_sign

(PHP 7 >= 7.2.0)

sodium_crypto_sign — Подписать сообщение

Описание

sodium_crypto_sign ( string $msg , string $secret_key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

msg

secret_key

Возвращаемые значения


Получить случайные байты для ключа

  • « sodium_crypto_sign
  • sodium_crypto_stream_xor »
  • PHP Manual
  • Функции Sodium
  • Получить случайные байты для ключа

sodium_crypto_stream_keygen

(PHP 7 >= 7.2.0)

sodium_crypto_stream_keygen — Получить случайные байты для ключа

Описание

sodium_crypto_stream_keygen ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Зашифровать сообщение

  • « sodium_crypto_stream_keygen
  • sodium_crypto_stream »
  • PHP Manual
  • Функции Sodium
  • Зашифровать сообщение

sodium_crypto_stream_xor

(PHP 7 >= 7.2.0)

sodium_crypto_stream_xor — Зашифровать сообщение

Описание

sodium_crypto_stream_xor ( string $msg , string $nonce , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

msg

nonce

key

Возвращаемые значения


Генерация детерминированной последовательности байтов из начального числа

  • « sodium_crypto_stream_xor
  • sodium_hex2bin »
  • PHP Manual
  • Функции Sodium
  • Генерация детерминированной последовательности байтов из начального числа

sodium_crypto_stream

(PHP 7 >= 7.2.0)

sodium_crypto_stream — Генерация детерминированной последовательности байтов из начального числа

Описание

sodium_crypto_stream ( int $length , string $nonce , string $key ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

length

nonce

key

Возвращаемые значения


Декодирует строку в шестнадцатеричном представлении в бинарное

  • « sodium_crypto_stream
  • sodium_increment »
  • PHP Manual
  • Функции Sodium
  • Декодирует строку в шестнадцатеричном представлении в бинарное

sodium_hex2bin

(PHP 7 >= 7.2.0)

sodium_hex2bin — Декодирует строку в шестнадцатеричном представлении в бинарное

Описание

sodium_hex2bin ( string $hex [, string $ignore ] ) : string

Декодирует строку, закодированную в шестнадцатеричное представление в бинарное.

Как и sodium_bin2hex(), функция sodium_hex2bin() устойчива к атакам по сторонним каналам (side-channel attacks), в отличие от функции hex2bin().

Список параметров

hex

Шестнадцатеричное представление данных.

ignore

Необязательный строковый аргумент с игнорируемыми символами.

Возвращаемые значения

Возвращает двоичное представление переданных в агрументе hex данных.


Увеличить на единицу большое число

  • « sodium_hex2bin
  • sodium_memcmp »
  • PHP Manual
  • Функции Sodium
  • Увеличить на единицу большое число

sodium_increment

(PHP 7 >= 7.2.0)

sodium_increment — Увеличить на единицу большое число

Описание

sodium_increment ( string &$val ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

val

Возвращаемые значения


Проверка на равенство за постоянное количество времени

  • « sodium_increment
  • sodium_memzero »
  • PHP Manual
  • Функции Sodium
  • Проверка на равенство за постоянное количество времени

sodium_memcmp

(PHP 7 >= 7.2.0)

sodium_memcmp — Проверка на равенство за постоянное количество времени

Описание

sodium_memcmp ( string $buf1 , string $buf2 ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

buf1

buf2

Возвращаемые значения


Перезаписать buf нулями

  • « sodium_memcmp
  • sodium_pad »
  • PHP Manual
  • Функции Sodium
  • Перезаписать buf нулями

sodium_memzero

(PHP 7 >= 7.2.0)

sodium_memzero — Перезаписать buf нулями

Описание

sodium_memzero ( string &$buf ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

buf

Возвращаемые значения


Добавить данные отступов

  • « sodium_memzero
  • sodium_unpad »
  • PHP Manual
  • Функции Sodium
  • Добавить данные отступов

sodium_pad

(PHP 7 >= 7.2.0)

sodium_pad — Добавить данные отступов

Описание

sodium_pad ( string $unpadded , int $length ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

unpadded

length

Возвращаемые значения


Удаление данных отступов

  • « sodium_pad
  • Расширения для работы с базами данных »
  • PHP Manual
  • Функции Sodium
  • Удаление данных отступов

sodium_unpad

(PHP 7 >= 7.2.0)

sodium_unpad — Удаление данных отступов

Описание

sodium_unpad ( string $padded , int $length ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

padded

length

Возвращаемые значения


Расширения для работы с базами данных

  • Уровни абстракции
    • DBA — Database (dbm-style) Abstraction Layer
    • dbx
    • ODBC — ODBC (Unified)
    • PDO — Объекты данных PHP
  • Расширения для работы с базами данных отдельных производителей
    • CUBRID
    • DB++
    • dBase
    • filePro
    • Firebird/InterBase
    • FrontBase
    • IBM DB2 — IBM DB2, Cloudscape и Apache Derby
    • Informix
    • Ingres — Ingres DBMS, EDBC и Enterprise Access Gateways
    • MaxDB
    • Mongo — Драйвер MongoDB (устаревший)
    • MongoDB — Драйвер MongoDB
    • mSQL
    • Mssql — Microsoft SQL Server
    • MySQL — MySQL драйверы и плагины
    • OCI8 — Oracle OCI8
    • Paradox — Доступ к файлам Paradox
    • PostgreSQL
    • SQLite
    • SQLite3
    • SQLSRV — Драйвер СУБД Microsoft SQL Server для PHP
    • Sybase
    • tokyo_tyrant


Уровни абстракции

  • DBA — Database (dbm-style) Abstraction Layer
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции DBA
  • dbx
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции dbx
  • ODBC — ODBC (Unified)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • ODBC Функции
  • PDO — Объекты данных PHP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Подключения и управление подключениями
    • Транзакции и автоматическая фиксация изменений
    • Подготовленные запросы и хранимые процедуры
    • Ошибки и их обработка
    • Большие объекты (LOB)
    • PDO — Класс PDO
    • PDOStatement — Класс PDOStatement
    • PDOException — Класс PDOException
    • Драйверы PDO


Database (dbm-style) Abstraction Layer

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Базовое использование
  • Функции DBA
    • dba_close — Закрывает базу данных DBA
    • 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 — Синхронизирует базу данных


Введение

Эти функции являются основой для доступа к базам данных типа Berkeley DB.

Это главный уровень абстракции для файловых баз данных. Таким образом, функциональность ограничена общим подмножеством функций поддерживаемых современными базами данных такими как » Oracle Berkeley DB.


Требования

Поведение в различных аспектах может отличаться в зависимости от реализации базы данных. такие функции как dba_optimize() и dba_sync() могут работать как обещано для одних баз данных и не работать вообще для других. Вам необходимо скачать и установить поддерживаемые обработчики dba.

Список обработчиков DBA
Обработчик | Замечания
dbm | Dbm - это старейший (оригинальный) тип баз данных Berkeley DB. Лучше, по возможности, избегать его использования. Мы не поддерживаем совместимость функций встроенных в DB2 и gdbm, потому что они сомместимы только на уровне исходного кода, но не могут обрабатывать оригинальный формат dbm.
ndbm | Ndbm - это новейший, гораздо более гибкий чем dbm, тип базы. Он также имеет большинство ограничений dbm (следовательно является устаревшим).
gdbm | Gdbm - это » менеджер баз данных GNU.
db2 | DB2 - используется для » Oracle Berkeley DB 2. Он описывается как "программный инструментарий, предоставляющий поддержку высокопроизводительной встроенной базы данных для отдельностоящих и клиент-серверных приложений".
db3 | DB3 - используется для » Oracle Berkeley DB 3.
db4 | DB4 - используется для » Oracle Berkeley DB 4 или 5. Может быть использована с BDB 5, начиная с PHP 5.3.3.
cdb | Cdb - это "быстрый, надежный, легкий пакет для создания и чтения постоянных баз данных." от автора qmail. Может быть найден по ссылке » http://cr.yp.to/cdb.html. Так как база неизменяема, мы поддерживаем только операции чтения. С PHP 4.3.0 также поддерживается запись (не UPDATE!) через внутренную библиотеку cdb.
cdb_make | С PHP 4.3.0 мы поддерживаем создание (не изменение) файлов cdb при использовании встроенной библиотеки cdb.
flatfile | Доступно с PHP 4.3.0 только для поддержки совместимости с устаревшим расширением dbm. Использовать не рекомендуется. Тем не менее вы можете использовать этот обработчик для файлов, которые ранее были созданы в таком формате.
inifile | Доступно с PHP 4.3.3 для реализауии возможности изменения файлов php.ini из скриптов PHP. При работе с ini-файлами вы должны передавать массивы формата array(0=>group,1=>value_name) или строки формата "[group]value_name", где group - опционально. Так как функции dba_firstkey() и dba_nextkey() возвращают строковое представление ключей, в PHP 5 была введена новая функция dba_key_split(), позволяющая конвертировать строковые ключи в ключи массива без потери FALSE.
qdbm | Доступно с PHP 5.0.0. Библиотека qdbm доступна по ссылке » http://fallabs.com/qdbm/index.html.
tcadb | Доступно с PHP 5.4.0. Библиотека Tokyo Cabinet доступна по ссылке » http://fallabs.com/tokyocabinet/.
lmdb | Доступно с PHP 7.2.0. Библиотеку Lightning Memory-Mapped Database можно загрузить с сайта » https://symas.com/lmdb/.

При вызове функций dba_open() или dba_popen(), в качестве одно из аргументов необходимо передать имя обработчика. Актуальный список доступных обработчиков можно посмотреть с помощью функций phpinfo() или dba_handlers().


Установка

Для включения базовой поддержки баз данных в стиле dbm, необходимо собрать PHP с поддержкой динамически загружаемого модуля, используя опцию --enable-dba=shared . Также вы можете добавить поддержку конкретных обработчиков, задав их скрипту конфигурации с помощью опций --with-XXXX или --enable-XXXX .

Внимание

После конфигурирования и сборки PHP, необходимо запустить следующий тест из коммандной строки: php run-tests.php ext/dba. Он покажет, работает ли ваша комбинация обработчиков. Самые проблематичные - это dbm и ndbm. Они конфликтуют с многими установками. Причина в том, что на некоторых системах, эти библиотеки являются частью более чем одной другой библиотеки. Тест конфигурации исключительно поможет вам избежать неработоспособной конфигурации с одним обработчиком, но не с их комбинацией.

Поддерживаемые обработчики DBA
Обработчик | Ключ конфигурации
dbm

Для включения поддержки dbm, добавьте --with-dbm[=DIR] .

Замечание:

dbm, как правило, представляет из себя обертку подверженую частым сбоям. Следовательно использовать ее можно только если вы абсолютно уверены в работоспособности и она вам действительно нужна.

ndbm

Для включения поддержки ndbm, добавьте --with-ndbm[=DIR] .

Замечание:

ndbm, как правило, представляет из себя обертку подверженую частым сбоям. Следовательно использовать ее можно только если вы абсолютно уверены в работоспособности и она вам действительно нужна.

gdbm | Для включения поддержки gdbm, добавьте --with-gdbm[=DIR] .
db2

Для включения поддержки Oracle Berkeley DB 2, добавьте --with-db2[=DIR] .

Замечание:

db2 конфликтует с db3 и db4.

db3

Для включения поддержки Oracle Berkeley DB 3, добавьте --with-db3[=DIR] .

Замечание:

db3 конфликтует с db2 и db4.

db4

Для включения поддержки Oracle Berkeley DB 4 or 5, добавьте --with-db4[=DIR] .

Замечание:

db4 конфликтует с db2 и db3.

Замечание:

Библиотеки баз данных версий с 4.1 по 4.1.24 вообще не могут использоваться в PHP.

Поддержка BDB 5 добавлена в PHP 5.3.3.

cdb

Для включения поддержки cdb, добавьте --with-cdb[=DIR] .

Замечание:

Вы можете не указывать DIR для использования встроенной библиотеки cdb, которая добавляет обработчик cdb_make, что позволяет создавать файлы базы cdb и предоставляет доступ к ним по сети, через потоки PHP.

flatfile

Для включения поддержки flatfile, добавьте --enable-flatfile . До PHP 5.2.1, необходимо использовать опцию --with-flatfile .

Замечание:

Добавлен для обеспечения совместимости с устаревшим расширением dbm. Используйте этот обработчик только если вы не можете установить одну из библиотек, требуемую другим обработчиком и если вам не достаточно встроенного обработчика cdb.

inifile

Для включения поддержки inifile, добавьте --enable-inifile . До PHP 5.2.1, необходимо использовать опцию --with-inifile .

Замечание:

Добавлено для получения доступ на чтение и запись к .ini файлам в стиле Microsoft (например php.ini).

qdbm

Для включения поддержки qdbm, добавьте --with-qdbm[=DIR] .

Замечание:

qdbm конфликтует с dbm и gdbm.

Замечание:

Библиотеку qdbm можно скачать по ссылке » http://fallabs.com/qdbm/index.html.

tcadb

Для включения поддержки Tokyo Cabinet, добавьте --with-tcadb[=DIR] .

Замечание:

Добавлен в PHP 5.4.0. Библиотеку можно скачать по ссылке » http://fallabs.com/tokyocabinet/.

lmdb

Для включения поддержки Lightning Memory-Mapped Database используйте --with-lmdb[=DIR] .

Замечание:

Добавлено в PHP 7.2.0. Библиотека Lightning Memory-Mapped Database доступна по ссылке » https://symas.com/lmdb/.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки DBA
Имя | По умолчанию | Место изменения | Список изменений
dba.default_handler | DBA_DEFAULT | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

dba.default_handler string

Имя обработчика по умолчанию


Типы ресурсов

Функции dba_open() и dba_popen() возвращают обработчик для доступа к указанному файлу базы данных и используется для всех остальных функций расширения.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • DBA
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Базовое использование »
  • PHP Manual
  • DBA
  • Примеры

Примеры

Содержание

  • Базовое использование


Базовое использование

Пример #1 DBA пример

<?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 является бинарно безопасным и не имеет каких-либо произвольных ограничений. Тем не менее, он наследует все ограничения, установленные базовой реализацией базы данных

Все файловые базы данных должны обеспечивать способ задания файлового режима только что созданной базы данных, если это вообще возможно. Файловый режим обычно передается как четвертый аргумент в dba_open() или dba_popen().

Вы можете получить все записи базы данных в процедурном стиле используя функции dba_firstkey() и dba_nextkey(). Вы не можете изменить базу данных во время её обхода.

Пример #2 Обход базы данных

<?php

// ...open database...

$key = dba_firstkey($id);

while ($key !== false) {
    if (true) {          // запоминаем ключ для выполнения некоторых действий далее
        $handle_later[] = $key;
    }
    $key = dba_nextkey($id);
}

foreach ($handle_later as $val) {
    dba_delete($val, $id);
}

?>


Функции DBA

Содержание

  • dba_close — Закрывает базу данных DBA
  • 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 — Синхронизирует базу данных


Закрывает базу данных DBA

  • « Функции DBA
  • dba_delete »
  • PHP Manual
  • Функции DBA
  • Закрывает базу данных DBA

dba_close

(PHP 4, PHP 5, PHP 7)

dba_close — Закрывает базу данных DBA

Описание

dba_close ( resource $handle ) : void

dba_close() закрывает установленную базу данных и освобождает все связанные с ней ресурсы.

Список параметров

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • dba_open() - Открывает базу данных
  • dba_popen() - Установить постоянный экземпляр базы данных


Удаляет запись базы данных определенную ключем

  • « dba_close
  • dba_exists »
  • PHP Manual
  • Функции DBA
  • Удаляет запись базы данных определенную ключем

dba_delete

(PHP 4, PHP 5, PHP 7)

dba_delete — Удаляет запись базы данных определенную ключем

Описание

dba_delete ( string $key , resource $handle ) : bool

dba_delete() удаляет указанную запись в базе данных.

Список параметров

key

Ключ записи, которую надо удалить.

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • dba_exists() - Проверяет, существует ли ключ
  • dba_fetch() - Извлекает данные по указанному ключу
  • dba_insert() - Вставляет запись
  • dba_replace() - Перезаписать или вставить запись


Проверяет, существует ли ключ

  • « dba_delete
  • dba_fetch »
  • PHP Manual
  • Функции DBA
  • Проверяет, существует ли ключ

dba_exists

(PHP 4, PHP 5, PHP 7)

dba_exists — Проверяет, существует ли ключ

Описание

dba_exists ( string $key , resource $handle ) : bool

dba_exists() проверяет, если в базе данных заданный ключ key.

Список параметров

key

Проверяемый ключ.

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает TRUE если ключ существует и FALSE в обратном случае.

Смотрите также

  • dba_delete() - Удаляет запись базы данных определенную ключем
  • dba_fetch() - Извлекает данные по указанному ключу
  • dba_insert() - Вставляет запись
  • dba_replace() - Перезаписать или вставить запись


Извлекает данные по указанному ключу

  • « dba_exists
  • dba_firstkey »
  • PHP Manual
  • Функции DBA
  • Извлекает данные по указанному ключу

dba_fetch

(PHP 4, PHP 5, PHP 7)

dba_fetch — Извлекает данные по указанному ключу

Описание

dba_fetch ( string $key , resource $handle ) : string
dba_fetch ( string $key , int $skip , resource $handle ) : string

dba_fetch() извлекает данные из базы данных, заданной handle, определенные ключем key.

Список параметров

key

Ключ, для которого надо извлечь данные.

Замечание:

Когда работает с ini-файлом, эта функция принимает массив в качестве ключа, где по индексу 0 задана группа, а по индексу 1 - имя параметра. Дополнительно смотрите dba_key_split().

skip

Число пар ключ-значение, которые нужно проигнорировать при работе с базой данных cdb. Этот параметр игнорируется при работе со всеми остальными базами данных, в которых не поддерживаются множественные ключи с одинаковым именем.

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает строку, если пара ключ/данные найдена, иначе возвращает FALSE.

Смотрите также

  • dba_exists() - Проверяет, существует ли ключ
  • dba_delete() - Удаляет запись базы данных определенную ключем
  • dba_insert() - Вставляет запись
  • dba_replace() - Перезаписать или вставить запись
  • dba_key_split() - Разделяет ключ, заданный в виде строки и создает массив из полученых частей


Извлекает первый ключ

  • « dba_fetch
  • dba_handlers »
  • PHP Manual
  • Функции DBA
  • Извлекает первый ключ

dba_firstkey

(PHP 4, PHP 5, PHP 7)

dba_firstkey — Извлекает первый ключ

Описание

dba_firstkey ( resource $handle ) : string

dba_firstkey() возвращает первый ключ из базы данных и сбрасывает внутренний указатель. Это позволяет производить прямой поиск по всей базе.

Список параметров

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает ключ в случае успешного выполнения, или FALSE в случае возникновения ошибки.

Смотрите также

  • dba_nextkey() - Извлекает следующий ключ
  • dba_key_split() - Разделяет ключ, заданный в виде строки и создает массив из полученых частей
  • Второй пример в примерах DBA


Список всех доступных обработчиков

  • « dba_firstkey
  • dba_insert »
  • PHP Manual
  • Функции DBA
  • Список всех доступных обработчиков

dba_handlers

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

dba_handlers — Список всех доступных обработчиков

Описание

dba_handlers ([ bool $full_info = FALSE ] ) : array

dba_handlers() возвращает список всех доступных в этом модуле обработчиков.

Список параметров

full_info

Включает, либо выключает, вывод полной информации в результат.

Возвращаемые значения

Возвращает массив обработчиков баз данных. Если параметр full_info задан, как TRUE, массив будет содержать ассоциативный массив, где ключами будут имена обработчиков, а значением информация о версии. В ином случае, массив будет индексированным массивом и содержать имена обработчиков в качестве значений.

Замечание:

Если используется встроенная база данных, вы увидите и cdb и cdb_make.

Примеры

Пример #1 Пример использования dba_handlers()

<?php

echo "Доступные обработчики DBA:\n";
foreach (dba_handlers(true) as $handler_name => $handler_version) {
  // Очищаем строки с версиями
  $handler_version = str_replace('$', '', $handler_version);
  echo " - $handler_name: $handler_version\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Доступные обработчики DBA:
 - 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_handlers
  • dba_key_split »
  • PHP Manual
  • Функции DBA
  • Вставляет запись

dba_insert

(PHP 4, PHP 5, PHP 7)

dba_insert — Вставляет запись

Описание

dba_insert ( string $key , string $value , resource $handle ) : bool

dba_insert() вставляет в базу данных запись заданную параметрами key и value.

Список параметров

key

Ключ записи для вставки. Если такой ключ уже существует в базе данных, функция завершится с ошибкой. Для замены записи используйте функцию dba_replace().

value

Значение для вставки.

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • dba_exists() - Проверяет, существует ли ключ
  • dba_delete() - Удаляет запись базы данных определенную ключем
  • dba_fetch() - Извлекает данные по указанному ключу
  • dba_replace() - Перезаписать или вставить запись


Разделяет ключ, заданный в виде строки и создает массив из полученых частей

  • « dba_insert
  • dba_list »
  • PHP Manual
  • Функции DBA
  • Разделяет ключ, заданный в виде строки и создает массив из полученых частей

dba_key_split

(PHP 5, PHP 7)

dba_key_split — Разделяет ключ, заданный в виде строки и создает массив из полученых частей

Описание

dba_key_split ( mixed $key ) : mixed

dba_key_split() разделяет ключ, заданный в виде строки и создает массив из полученых частей.

Список параметров

key

Ключ в виде строки.

Возвращаемые значения

Возвращает массив следующего вида array(0 => group, 1 => value_name). Эта функция возвращает FALSE, если key равен NULL или FALSE.

Смотрите также

  • dba_firstkey() - Извлекает первый ключ
  • dba_nextkey() - Извлекает следующий ключ
  • dba_fetch() - Извлекает данные по указанному ключу


Список всех открытых файлов базы данных

  • « dba_key_split
  • dba_nextkey »
  • PHP Manual
  • Функции DBA
  • Список всех открытых файлов базы данных

dba_list

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

dba_list — Список всех открытых файлов базы данных

Описание

dba_list ( void ) : array

dba_list() возвращает список всех открытых файлов базы данных.

Возвращаемые значения

Ассоциативный массив типа resourceid => filename.


Извлекает следующий ключ

  • « dba_list
  • dba_open »
  • PHP Manual
  • Функции DBA
  • Извлекает следующий ключ

dba_nextkey

(PHP 4, PHP 5, PHP 7)

dba_nextkey — Извлекает следующий ключ

Описание

dba_nextkey ( resource $handle ) : string

dba_nextkey() возвращает следующий ключ из базы данных и перемещает внутренний указатель.

Список параметров

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает ключ в случае успешного выполнения, или FALSE в случае возникновения ошибки.

Смотрите также

  • dba_firstkey() - Извлекает первый ключ
  • dba_key_split() - Разделяет ключ, заданный в виде строки и создает массив из полученых частей
  • Второй пример в примерах DBA


Открывает базу данных

  • « dba_nextkey
  • dba_optimize »
  • PHP Manual
  • Функции DBA
  • Открывает базу данных

dba_open

(PHP 4, PHP 5, PHP 7)

dba_open — Открывает базу данных

Описание

dba_open ( string $path , string $mode [, string $handler [, string $... ]] ) : resource

dba_open() устанавливает экземпляр базы данных по пути path в режиме mode используя обработчик handler.

Список параметров

path

Путь до файлов базы данных.

mode

r для режима чтения, w для режима чтения/записи с уже существующей базой данных. c для режима чтения/записи и создания базы данных, если она еще не была создана, и n для создания, обрезания и доступа для чтения/записи. База данных создается с архитектурой BTree, другие архитектуры (вроде Hash или Queue) не поддерживаются.

Дополнительно, с помощью следующего символа, вы можете задать режим блокировки базы данных. l для блокировки базы данных с помощью файла .lck, или d для самостоятельной блокировки средствами самой базы. Важно, чтобы все ваши приложения делали это согласованно.

Если вы хотите просто проверить доступ и не хотите ждать освобождения блокировки, вы можете добавить третий символ t. Если вы абсолютно уверены, что вам не нужно использовать блокировку базы данных, вы можете использовать символ - вместо l или d. Если ни один из символов: d, l или - не задан, база данных будет использовать режим d.

Замечание:

В один момент времени может быть полько один процесс, пишущий в базу данных. Когда вы используете dba на веб-сервере, и более чем один запрос требует записи в базу данных, они могут это делать только строго по очереди. Также, в момент чтения, запись не доступна. Модуль dba использует блокировки для предотвращения нежелательного поведения. Изучите следующую таблицу:

Блокировки DBA
уже открыта | mode = "rl" | mode = "rlt" | mode = "wl" | mode = "wlt" | mode = "rd" | mode = "rdt" | mode = "wd" | mode = "wdt"
не открыта | 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: второй вызов будет успешным.
  • wait: второй вызов будет ждать, пока первый не вызовет dba_close().
  • false: второй вызов вернет FALSE.
  • illegal: вы не можете смешивать модификаторы "l" и "d" в параметре mode.

handler

Имя обработчика, который будет использоваться для доступа по пути path. Ему передаются все необязательные параметры, заданные в dba_open().

...

Необязательная строка (string) параметров, которые передаются драйверу.

Драйверы cdb, cdb_make, flatfile, inifile, qdbm и tcadb не поддерживают дополнительные параметры.

Драйверы db1, db2, db3, db4, dbm, gdbm, и ndbm поддерживают единственный дополнительный параметр $filemode, который имеет то же значение, что и параметр $mode функции chmod() и по умолчанию равен 0644.

Драйвер lmdb принимает два дополнительных параметра. Первый позволяет указать $filemode (смотрите описание выше), а второй — $mapsize, где значение должно быть кратным размеру страницы ОС или ноль, чтобы использовать размер карты по умолчанию. Параметр $mapsize поддерживается начиная с PHP 7.3.14 и 7.4.2, соответственно.

Возвращаемые значения

Возвращает обработчик в случае успешного выполнения, или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3.14, 7.4.2 | Драйвер lmdb теперь поддерживает дополнительный параметр $mapsize.

Смотрите также

  • dba_popen() - Установить постоянный экземпляр базы данных
  • dba_close() - Закрывает базу данных DBA


Оптимизирует базу данных

  • « dba_open
  • dba_popen »
  • PHP Manual
  • Функции DBA
  • Оптимизирует базу данных

dba_optimize

(PHP 4, PHP 5, PHP 7)

dba_optimize — Оптимизирует базу данных

Описание

dba_optimize ( resource $handle ) : bool

dba_optimize() оптимизирует основную базу данных.

Список параметров

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • dba_sync() - Синхронизирует базу данных


Установить постоянный экземпляр базы данных

  • « dba_optimize
  • dba_replace »
  • PHP Manual
  • Функции DBA
  • Установить постоянный экземпляр базы данных

dba_popen

(PHP 4, PHP 5, PHP 7)

dba_popen — Установить постоянный экземпляр базы данных

Описание

dba_popen ( string $path , string $mode [, string $handler [, mixed $... ]] ) : resource

dba_open() устанавливает постоянный экземпляр базы данных по пути path в режиме mode, используя обработчик handler.

Список параметров

path

Путь до файлов базы данных.

mode

r для режима чтения, w для режима чтения/записи с уже существующей базой данных. c для режима чтения/записи и создания базы данных, если она еще не была создана, и n для создания, обрезания и доступа для чтения/записи. База данных создается с архитектурой BTree, другие архитектуры (вроде Hash или Queue) не поддерживаются.

handler

Имя обработчика, который будет использоваться для доступа по пути path. Ему передаются все необязательные параметры, заданные в dba_open().

Возвращаемые значения

Возвращает обработчик в случае успешного выполнения, или FALSE в случае возникновения ошибки.

Смотрите также

  • dba_open() - Открывает базу данных
  • dba_close() - Закрывает базу данных DBA


Перезаписать или вставить запись

  • « dba_popen
  • dba_sync »
  • PHP Manual
  • Функции DBA
  • Перезаписать или вставить запись

dba_replace

(PHP 4, PHP 5, PHP 7)

dba_replace — Перезаписать или вставить запись

Описание

dba_replace ( string $key , string $value , resource $handle ) : bool

dba_replace() перезаписывает или вставляет запись, заданную ключем key и значением value в базу данных определенную обработчиком handle.

Список параметров

key

Ключ записи, которую надо заменить.

value

Новое значение.

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • dba_exists() - Проверяет, существует ли ключ
  • dba_delete() - Удаляет запись базы данных определенную ключем
  • dba_fetch() - Извлекает данные по указанному ключу
  • dba_insert() - Вставляет запись


Синхронизирует базу данных

  • « dba_replace
  • dbx »
  • PHP Manual
  • Функции DBA
  • Синхронизирует базу данных

dba_sync

(PHP 4, PHP 5, PHP 7)

dba_sync — Синхронизирует базу данных

Описание

dba_sync ( resource $handle ) : bool

dba_sync() синхронизирует базу данных. Скорее всего эта функция, если поддерживается, вызовет запись на диск.

Список параметров

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • dba_optimize() - Оптимизирует базу данных


dbx

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции dbx
    • dbx_close — Закрыть открытое соединение/базу данных
    • dbx_compare — Сравнивает две строки в целях сортировки
    • dbx_connect — Открывает соединение/базу данных
    • dbx_error — Возвращает сообщение об ошибке последней запущенной функции модуля
    • dbx_escape_string — Экранирует строку таким образом, что ее можно безопасно использовать для запроса
    • dbx_fetch_row — Извлекает строки из результата запроса, для которого был задан флаг DBX_RESULT_UNBUFFERED
    • dbx_query — Посылает запрос и извлекает возвращенные строки (если есть)
    • dbx_sort — Сортирует результат dbx_query с помощью пользовательской функции


Введение

Модуль dbx - это уровень абстракции базы данных (db 'X', где 'X' - это поддерживаемая база данных). Функции dbx позволяют получить доступ ко всем поддерживаемым базам данных, используя единые договоренности по синтаксису вызовов. Сами эти функции не взаимодействуют с базами данных, а предоставляют интерфейс к расширениям конкретных баз данных.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0.


Требования

Для использования базы данных совместно с dbx, необходимо, чтобы модуль был загружен и поддерживал эту базу данных. На данный момент поддерживаются следующие базы данных:

  • FrontBase
  • Microsoft SQL Server
  • MySQL
  • ODBC
  • PostgreSQL
  • Sybase-CT
  • Oracle (oci8)
  • SQLite

Документацию по добавлению поддержки других баз данных можно найти по ссылке » http://www.guidance.nl/php/dbx/doc/.


Установка

Для включения данного модуля необходимо конфигурировать PHP с ключем --enable-dbx и с поддержкой тех баз данных, которые предполагается использовать. Например для mysql надо будет дополнительно указать --with-mysql=[DIR] . Для настройки работы всех остальных поддерживаемых dbx баз данных обратитесь к их документации.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки DBX
Имя | По умолчанию | Место изменения | Список изменений
dbx.colnames_case | "unchanged" | PHP_INI_SYSTEM | Удалено в PHP 5.1.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

dbx.colnames_case string

Имена столбцов могут быть возвращены в их изначальном виде, либо быть приведены к верхнему или нижнему регистру. Эту настройку можно переопределить флагом в dbx_query().


Типы ресурсов

Данный модуль использует два типа ресурсов. Первый - ссылка (object) на соединение с базой. Второй - результирующий набор (object), содержащий результат запроса.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

DBX_MYSQL (integer)
DBX_ODBC (integer)
DBX_PGSQL (integer)
DBX_MSSQL (integer)
DBX_FBSQL (integer)
DBX_OCI8 (integer)
DBX_SYBASECT (integer)
DBX_SQLITE (integer)
DBX_PERSISTENT (integer)
DBX_RESULT_INFO (integer)
DBX_RESULT_INDEX (integer)
DBX_RESULT_ASSOC (integer)
DBX_RESULT_UNBUFFERED (integer)
DBX_COLNAMES_UNCHANGED (integer)
DBX_COLNAMES_UPPERCASE (integer)
DBX_COLNAMES_LOWERCASE (integer)
DBX_CMP_NATIVE (integer)
DBX_CMP_TEXT (integer)
DBX_CMP_NUMBER (integer)
DBX_CMP_ASC (integer)
DBX_CMP_DESC (integer)


Функции dbx

Содержание

  • dbx_close — Закрыть открытое соединение/базу данных
  • dbx_compare — Сравнивает две строки в целях сортировки
  • dbx_connect — Открывает соединение/базу данных
  • dbx_error — Возвращает сообщение об ошибке последней запущенной функции модуля
  • dbx_escape_string — Экранирует строку таким образом, что ее можно безопасно использовать для запроса
  • dbx_fetch_row — Извлекает строки из результата запроса, для которого был задан флаг DBX_RESULT_UNBUFFERED
  • dbx_query — Посылает запрос и извлекает возвращенные строки (если есть)
  • dbx_sort — Сортирует результат dbx_query с помощью пользовательской функции


Закрыть открытое соединение/базу данных

  • « Функции dbx
  • dbx_compare »
  • PHP Manual
  • Функции dbx
  • Закрыть открытое соединение/базу данных

dbx_close

(PHP 4 >= 4.0.6, PHP 5 < 5.1.0, PECL dbx >= 1.1.0)

dbx_close — Закрыть открытое соединение/базу данных

Описание

dbx_close ( object $link_identifier ) : int

Список параметров

link_identifier

Ссылка на соединение.

Возвращаемые значения

Возвращает 1 в случае успешного выполнения и 0 в случае ошибки.

Примеры

Пример #1 Пример использования dbx_close()

<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Не получилось подключиться");

echo "Успешно подключен";
dbx_close($link);
?>

Примечания

Замечание:

Всегда внимательно изучайте документацию модуля для используемой базы данных.

Смотрите также

  • dbx_connect() - Открывает соединение/базу данных


Сравнивает две строки в целях сортировки

  • « dbx_close
  • dbx_connect »
  • PHP Manual
  • Функции dbx
  • Сравнивает две строки в целях сортировки

dbx_compare

(PHP 4 >= 4.1.0, PHP 5 < 5.1.0, PECL dbx >= 1.1.0)

dbx_compare — Сравнивает две строки в целях сортировки

Описание

dbx_compare ( array $row_a , array $row_b , string $column_key [, int $flags = DBX_CMP_ASC | DBX_CMP_NATIVE ] ) : int

dbx_compare() - это вспомогательная функция для dbx_sort(), позволяющая реализовать пользовательскую сортировку.

Список параметров

row_a

Первая строка

row_b

Вторая строка

column_key

Сравниваемый столбец

flags

Флаг flags задает направление сортировки:

  • DBX_CMP_ASC - по возрастанию
  • DBX_CMP_DESC - по убыванию
и предпочитаемый тип сравнения:
  • DBX_CMP_NATIVE - без конвертации типа
  • DBX_CMP_TEXT - сравнивать как строки
  • DBX_CMP_NUMBER - сравнивать как числа
Можно комбинировать одну константу направления с одной константой типа с помощью побитового ИЛИ (|).

Возвращаемые значения

Возвращает 0, если row_a[$column_key] равно row_b[$column_key], и 1 или -1, если первая больше, либо меньше второй соответственно. Если флаг flag задан как DBX_CMP_DESC, то порядок будет инвертирован.

Примеры

Пример #1 Пример использования dbx_compare()

<?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("Не получилось подключиться");

$result = dbx_query($link, "SELECT id, parentid, description FROM table ORDER BY id");
    // данные в $result отсортированы по столбцу id

dbx_sort($result, "user_re_order");
    // А теперь в обратном порядке по parentid, а потом уже по id

dbx_close($link);
?>

Смотрите также

  • dbx_sort() - Сортирует результат dbx_query с помощью пользовательской функции


Открывает соединение/базу данных

  • « dbx_compare
  • dbx_error »
  • PHP Manual
  • Функции dbx
  • Открывает соединение/базу данных

dbx_connect

(PHP 4 >= 4.0.6, PHP 5 < 5.1.0, PECL dbx >= 1.1.0)

dbx_connect — Открывает соединение/базу данных

Описание

dbx_connect ( mixed $module , string $host , string $database , string $username , string $password [, int $persistent ] ) : object

Открывает соединение с базой данных.

Список параметров

module

Параметр module может быть как строкой, так и константой. Предпочтение следует отдавать использованию константы. Возможные значения перечислены ниже. Помните, что они будут работать только если соответствующий модуль загружен.

  • DBX_MYSQL или "mysql"
  • DBX_ODBC или "odbc"
  • DBX_PGSQL или "pgsql"
  • DBX_MSSQL или "mssql"
  • DBX_FBSQL или "fbsql"
  • DBX_SYBASECT или "sybase_ct"
  • DBX_OCI8 или "oci8"
  • DBX_SQLITE или "sqlite"

host

Хост, на котором запущен сервер баз данных

database

имя базы данных

username

Ипя пользователя

password

Пароль

persistent

Если persistent задать как DBX_PERSISTENT, то будет установлено постоянное соединение.

Параметры host, database, username и password ожидаются, но не всегда используются в зависимости от функции соединения конкретного модуля.

Возвращаемые значения

Возвращает объект в случае успешного выполнения, либо FALSE в случае ошибки. Если соединение было установлено, но база данных не выбрана, то соединение будет закрыто и вернется FALSE.

Возвращенный объект object имеет три свойства:

database
Имя выбранной базы данных.
handle

Обработчик соединения. Его можно напрямую использовать в функциях модуля базы данных, в обход dbx.

<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password");
mysql_close($link->handle); // но лучше использовать dbx_close($link)
?>

module
Используется для внутренних нужд dbx. Фактически является номером модуля, которые перечислены выше.

Примеры

Пример #1 Пример использования dbx_connect()

<?php
$link = dbx_connect(DBX_ODBC, "", "db", "username", "password", DBX_PERSISTENT)
    or die("Не получилось подключиться");

echo "Успешно подключен";
dbx_close($link);
?>

Примечания

Замечание:

Всегда внимательно изучайте документацию модуля для используемой базы данных.

Смотрите также

  • dbx_close() - Закрыть открытое соединение/базу данных


Возвращает сообщение об ошибке последней запущенной функции модуля

  • « dbx_connect
  • dbx_escape_string »
  • PHP Manual
  • Функции dbx
  • Возвращает сообщение об ошибке последней запущенной функции модуля

dbx_error

(PHP 4 >= 4.0.6, PHP 5 < 5.1.0, PECL dbx >= 1.1.0)

dbx_error — Возвращает сообщение об ошибке последней запущенной функции модуля

Описание

dbx_error ( object $link_identifier ) : string

dbx_error() возвращает последнее сообщение об ошибке.

Список параметров

link_identifier

Ссылка на соединение, открытое с помощью dbx_connect()

Возвращаемые значения

Возвращает строку, содержащую сообщение об ошибке из последнего вызова функции абстрактного модуля (например, mysql). Если для данного модуля создано несколько соединений, то будет возвращено самое последнее сообщение. Если существуют соединения с другими модулями, то будет возвращено сообщение относящееся только к модулю, заданному параметром link_identifier.

Примеры

Пример #1 Пример использования dbx_error()

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Не получилось подключиться");

$result = dbx_query($link, "select id from non_existing_table");
if ($result == 0) {
    echo dbx_error($link);
}
dbx_close($link);
?>

Примечания

Замечание:

Всегда внимательно изучайте документацию модуля для используемой базы данных.

Сообщение для Microsoft SQL Server фактически будет сообщением, полученным функцией mssql_get_last_message().

Сообщения об ошибках Oracle (oci8) пока не реализованы.


Экранирует строку таким образом, что ее можно безопасно использовать для запроса

  • « dbx_error
  • dbx_fetch_row »
  • PHP Manual
  • Функции dbx
  • Экранирует строку таким образом, что ее можно безопасно использовать для запроса

dbx_escape_string

(PHP 4 >= 4.3.0, PHP 5 < 5.1.0, PECL dbx >= 1.1.0)

dbx_escape_string — Экранирует строку таким образом, что ее можно безопасно использовать для запроса

Описание

dbx_escape_string ( object $link_identifier , string $text ) : string

Экранирует строку таким образом, что ее можно безопасно использовать для запроса.

Список параметров

link_identifier

Ссылка на соединение, открытое с помощью dbx_connect()

text

Строка для экранирования.

Возвращаемые значения

Возвращает экранированный, если необходимо, текст (кавычки, обратные слеши и т.д.) В случае ошибки возвращает NULL.

Примеры

Пример #1 Пример использования dbx_escape_string()

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Не получилось подключиться");

$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);
?>

Смотрите также

  • dbx_query() - Посылает запрос и извлекает возвращенные строки (если есть)


Извлекает строки из результата запроса, для которого был задан флаг DBX_RESULT_UNBUFFERED

  • « dbx_escape_string
  • dbx_query »
  • PHP Manual
  • Функции dbx
  • Извлекает строки из результата запроса, для которого был задан флаг DBX_RESULT_UNBUFFERED

dbx_fetch_row

(PHP 5 < 5.1.0, PECL dbx >= 1.1.0)

dbx_fetch_row — Извлекает строки из результата запроса, для которого был задан флаг DBX_RESULT_UNBUFFERED

Описание

dbx_fetch_row ( object $result_identifier ) : mixed

Функция dbx_fetch_row() извлекает строки из результата запроса, для которого был задан флаг DBX_RESULT_UNBUFFERED.

Если для запроса не был задан флаг DBX_RESULT_UNBUFFERED, dbx_fetch_row() завершится с ошибкой, так как все строки уже были извлечены и помещены в свойства результата data.

Побочный эффект таков, что свойство объекта результата запроса rows будет увеличиваться при каждом успешном запуске dbx_fetch_row().

Список параметров

result_identifier

Ссылка на соединение, открытое с помощью dbx_connect()

Возвращаемые значения

Возвращает объект, содержащий ту же информацию, что и любая строка в свойстве объекта результата data после выполнения dbx_query(), включая доступ к столбцам по индексу или имени, если был выставлен соответствующий флаг для dbx_query().

В случае неудачи возвращает 0 (например, если больше нет строк).

Примеры

Пример #1 Как обрабатывать возвращенные значения

<?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";
?>

Смотрите также

  • dbx_query() - Посылает запрос и извлекает возвращенные строки (если есть)


Посылает запрос и извлекает возвращенные строки (если есть)

  • « dbx_fetch_row
  • dbx_sort »
  • PHP Manual
  • Функции dbx
  • Посылает запрос и извлекает возвращенные строки (если есть)

dbx_query

(PHP 4 >= 4.0.6, PHP 5 < 5.1.0, PECL dbx >= 1.1.0)

dbx_query — Посылает запрос и извлекает возвращенные строки (если есть)

Описание

dbx_query ( object $link_identifier , string $sql_statement [, int $flags ] ) : mixed

Посылает запрос и извлекает возвращенные строки.

Список параметров

link_identifier

Ссылка на соединение, открытое с помощью dbx_connect()

sql_statement

SQL запрос.

Данные в запросе должны быть корректно экранированы.

flags

Параметр flags используется для контроля количества возвращаемой информации. Можно использовать любую комбинацию из нижеперечисленных констант, объединенных побитовым ИЛИ (|). Флаги DBX_COLNAMES_* переопределяют настройку dbx.colnames_case в php.ini.

DBX_RESULT_INDEX
Всегда установлена. Возвращенный объект содержит двумерный индексированный массив data. К примеру, в выражении data[2][3], 2 означает номер строки, а 3 номер столбца. Отсчет начинается с индекса [0][0]. Если задана константа DBX_RESULT_ASSOC, возвращенный объект будет также содержать информацию, относящуюся к DBX_RESULT_INFO, даже если она не будет задана.
DBX_RESULT_INFO
Предоставляет информацию о столбцах. Их имена и типы.
DBX_RESULT_ASSOC
Позволяет получать доступ к столбцам data по имени. Элементы ассоциативного массива являются ссылками на соответствующие элементы индексированного. Так что изменяя data[0][0] вы измените и data[0]['field_name_for_first_column'].
DBX_RESULT_UNBUFFERED
Этот флаг указывает не создавать свойство data. Соответственно, свойство rows изначально будет равно 0. Используйте этот флаг для больших выборок. Для доступа к строкам используйте функцию dbx_fetch_row(). Функция dbx_fetch_row() возвращает строки учитывая все остальные, выставленные для запроса, флаги. Также, каждый успешный вызов этой функции, увеличивает rows на единицу.
DBX_COLNAMES_UNCHANGED
Имена столбцов возвращаются неизменными.
DBX_COLNAMES_UPPERCASE
Имена столбцов преобразуются к верхнему регистру.
DBX_COLNAMES_LOWERCASE
Имена столбцов преобразуются к нижнему регистру.
Обратите внимание, что DBX_RESULT_INDEX используется всегда, независимо от выставленного параметра flags. Это значит, что только следующие комбинации имеют смысл:
  • DBX_RESULT_INDEX
  • DBX_RESULT_INDEX | DBX_RESULT_INFO
  • DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC - по умолчанию, если flags не задан.

Возвращаемые значения

dbx_query() возвращает либо объект, либо 1 в случае успешного выполнения и 0 в случае ошибки. Объект возвращается только если sql_statement является запросом, возвращающим результирующий набор (т.е. запрос типа SELECT, если он не возвращает пустой набор).

Возвращенный объект содержит четыре, либо пять свойств, в зависимости от параметра flags:

handle

Это рабочий обработчик соединения с базой данных, который можно использовать с родными функциями расширения базы данных, в обход dbx.

<?php
$result = dbx_query($link, "SELECT id FROM table");
mysql_field_len($result->handle, 0);
?>

cols и rows

Количество столбцов и строк в результирующем наборе соответственно.

<?php
$result = dbx_query($link, 'SELECT id FROM table');
echo $result->rows; // количество строк
echo $result->cols; // количество столбцов
?>

info (опциональный)
Заполняется значениями только если константы DBX_RESULT_INFO или DBX_RESULT_ASSOC переданы в параметр flags. Представляет из себя двумерный массив, имеющий две строки (name и type), содержащие информацию о столбцах.

Пример #1 Вывод всех имен и типов столбцов

<?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
Это свойство содержит актуальный результирующий набор, возможно, ассоциированный с именами столбцов в зависимости от значения flags. Если задана DBX_RESULT_ASSOC, можно обращаться к столбцам по имени - $result->data[2]["field_name"].

Пример #2 Вывод содержимого свойства data в таблицу HTML

<?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";
?>

Пример #3 Как обрабатывать UNBUFFERED запросы

<?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";

?>

Примеры

Пример #4 Как обрабатывать возвращенное значение

<?php
$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Не получилось подключиться");

$result = dbx_query($link, 'SELECT id, parentid, description FROM table');

if (is_object($result) ) {
    // ... сделайте кое-что здесь, смотрите подробные примеры ниже ...
    // во-первых, выведите имена и типы полей
    // затем нарисуйте таблицу, заполненную возвращенными значениями полей
} else {
    exit("Запрос не выполнен");
}

dbx_close($link);
?>

Примечания

Замечание:

Всегда внимательно изучайте документацию модуля для используемой базы данных.

Имена столбцов Oracle возвращаются в нижнем регистре.

Смотрите также

  • dbx_escape_string() - Экранирует строку таким образом, что ее можно безопасно использовать для запроса
  • dbx_fetch_row() - Извлекает строки из результата запроса, для которого был задан флаг DBX_RESULT_UNBUFFERED
  • dbx_connect() - Открывает соединение/базу данных


Сортирует результат dbx_query с помощью пользовательской функции

  • « dbx_query
  • ODBC »
  • PHP Manual
  • Функции dbx
  • Сортирует результат dbx_query с помощью пользовательской функции

dbx_sort

(PHP 4 >= 4.0.6, PHP 5 < 5.1.0, PECL dbx >= 1.1.0)

dbx_sort — Сортирует результат dbx_query с помощью пользовательской функции

Описание

dbx_sort ( object $result , string $user_compare_function ) : bool

Сортирует результат dbx_query() с помощью пользовательской функции.

Список параметров

result

Результирующий набор, возвращенный dbx_query().

user_compare_function

Определенная пользователем функция сравнения. Должна принимать два параметра и возвращать -1,0,1 в зависимости от того, меньше, равен или больше первый параметр второго.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования dbx_sort()

<?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("Не получилось подключиться");

$result = dbx_query($link, "SELECT id, parentid, description FROM tbl ORDER BY id");
    // data в $result отсортированы по id

dbx_sort($result, "user_re_order");
    // а теперь по parentid, по убыванию, а потом уже по id

dbx_close($link);
?>

Примечания

Замечание:

В любом случае лучше использовать SQL оператор ORDER BY вместо dbx_sort().

Смотрите также

  • dbx_compare() - Сравнивает две строки в целях сортировки


ODBC (Unified)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • ODBC Функции
    • 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 — Lists columns and associated privileges for the given table
    • odbc_columns — Lists the column names in specified tables
    • odbc_commit — Commit an ODBC transaction
    • odbc_connect — Соединяет с источником данных
    • odbc_cursor — Get cursorname
    • odbc_data_source — Returns information about a current connection
    • odbc_do — Псевдоним odbc_exec
    • odbc_error — Get the last error code
    • odbc_errormsg — Get the last error message
    • odbc_exec — Prepare and execute an 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 — Псевдоним odbc_field_len
    • odbc_field_scale — Get the scale of a field
    • odbc_field_type — Datatype of a field
    • odbc_foreignkeys — Retrieves a list of foreign keys
    • odbc_free_result — Free resources associated with a result
    • odbc_gettypeinfo — Retrieves 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 — Gets the primary keys 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 — Retrieves special columns
    • 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


Введение

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.

Замечание:

With the exception of iODBC, 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. However, building PHP with iODBC support enables you to use any ODBC-compliant drivers with your PHP applications. More information on iODBC, is available at » www.iodbc.org with the alternative unixODBC available at » www.unixodbc.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. 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. 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).

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

As of PHP 7.0.0, however, Windows users must enable php_odbc.dll in order to use this extension.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Unified ODBC Configuration Options
Имя | По умолчанию | Место изменения | Список изменений
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 |
odbc.default_cursortype | "3" | PHP_INI_ALL | Available as of PHP 5.3.0

Замечание: Entries marked with * are not implemented yet.

Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

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.

odbc.default_cursortype integer

Controls the ODBC cursor model. Possible values are SQL_CURSOR_FORWARD_ONLY, SQL_CURSOR_KEYSET_DRIVEN, SQL_CURSOR_DYNAMIC and SQL_CURSOR_STATIC (default).


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

This extension defines two resource types: an ODBC connection identifier and an ODBC result identifier.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если 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 Функции

Содержание

  • 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 — Lists columns and associated privileges for the given table
  • odbc_columns — Lists the column names in specified tables
  • odbc_commit — Commit an ODBC transaction
  • odbc_connect — Соединяет с источником данных
  • odbc_cursor — Get cursorname
  • odbc_data_source — Returns information about a current connection
  • odbc_do — Псевдоним odbc_exec
  • odbc_error — Get the last error code
  • odbc_errormsg — Get the last error message
  • odbc_exec — Prepare and execute an 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 — Псевдоним odbc_field_len
  • odbc_field_scale — Get the scale of a field
  • odbc_field_type — Datatype of a field
  • odbc_foreignkeys — Retrieves a list of foreign keys
  • odbc_free_result — Free resources associated with a result
  • odbc_gettypeinfo — Retrieves 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 — Gets the primary keys 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 — Retrieves special columns
  • 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


Toggle autocommit behaviour

  • « ODBC Функции
  • odbc_binmode »
  • PHP Manual
  • ODBC Функции
  • Toggle autocommit behaviour

odbc_autocommit

(PHP 4, PHP 5, PHP 7)

odbc_autocommit — Toggle autocommit behaviour

Описание

odbc_autocommit ( resource $connection_id [, bool $OnOff = FALSE ] ) : mixed

Toggles autocommit behaviour.

By default, auto-commit is on for a connection. Disabling auto-commit is equivalent with starting a transaction.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

OnOff

If OnOff is TRUE, auto-commit is enabled, if it is FALSE auto-commit is disabled.

Возвращаемые значения

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 set, this function returns TRUE on success and FALSE on failure.

Смотрите также

  • odbc_commit() - Commit an ODBC transaction
  • odbc_rollback() - Rollback a transaction


Handling of binary column data

  • « odbc_autocommit
  • odbc_close_all »
  • PHP Manual
  • ODBC Функции
  • Handling of binary column data

odbc_binmode

(PHP 4, PHP 5, PHP 7)

odbc_binmode — Handling of binary column data

Описание

odbc_binmode ( resource $result_id , int $mode ) : bool

Enables handling of binary column data. ODBC SQL types affected are BINARY, VARBINARY, and LONGVARBINARY.

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".

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.

Список параметров

result_id

The result identifier.

If result_id is 0, the settings apply as default for new results.

Замечание: Default for longreadlen is 4096 and mode defaults to ODBC_BINMODE_RETURN. Handling of binary long columns is also affected by odbc_longreadlen().

mode

Possible values for mode are:

  • ODBC_BINMODE_PASSTHRU: Passthru BINARY data
  • ODBC_BINMODE_RETURN: Return as is
  • ODBC_BINMODE_CONVERT: Convert to char and return

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Close all ODBC connections

  • « odbc_binmode
  • odbc_close »
  • PHP Manual
  • ODBC Функции
  • Close all ODBC connections

odbc_close_all

(PHP 4, PHP 5, PHP 7)

odbc_close_all — Close all ODBC connections

Описание

odbc_close_all ( void ) : 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.


Close an ODBC connection

  • « odbc_close_all
  • odbc_columnprivileges »
  • PHP Manual
  • ODBC Функции
  • Close an ODBC connection

odbc_close

(PHP 4, PHP 5, PHP 7)

odbc_close — Close an ODBC connection

Описание

odbc_close ( resource $connection_id ) : void

Closes down the connection to the database server.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание:

This function will fail if there are open transactions on this connection. The connection will remain open in this case.


Lists columns and associated privileges for the given table

  • « odbc_close
  • odbc_columns »
  • PHP Manual
  • ODBC Функции
  • Lists columns and associated privileges for the given table

odbc_columnprivileges

(PHP 4, PHP 5, PHP 7)

odbc_columnprivileges — Lists columns and associated privileges for the given table

Описание

odbc_columnprivileges ( resource $connection_id , string $qualifier , string $owner , string $table_name , string $column_name ) : resource

Lists columns and associated privileges for the given table.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

qualifier

The qualifier.

owner

The owner.

table_name

The table name.

column_name

The column name.

The owner, table_name, and column_name accept search patterns ('%' to match zero or more characters and '_' to match a single character).

Возвращаемые значения

Returns an ODBC result identifier или FALSE в случае возникновения ошибки. This result identifier can be used to fetch a list of columns and associated privileges.

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.


Lists the column names in specified tables

  • « odbc_columnprivileges
  • odbc_commit »
  • PHP Manual
  • ODBC Функции
  • Lists the column names in specified tables

odbc_columns

(PHP 4, PHP 5, PHP 7)

odbc_columns — Lists the column names in specified tables

Описание

odbc_columns ( resource $connection_id [, string $qualifier [, string $schema [, string $table_name [, string $column_name ]]]] ) : resource

Lists all columns in the requested range.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

qualifier

The qualifier.

schema

The owner.

table_name

The table name.

column_name

The column name.

The schema, table_name, and column_name accept search patterns ('%' to match zero or more characters and '_' to match a single character).

Возвращаемые значения

Returns an ODBC result identifier или FALSE в случае возникновения ошибки.

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.

Смотрите также

  • odbc_columnprivileges() - Lists columns and associated privileges for the given table to retrieve associated privileges


Commit an ODBC transaction

  • « odbc_columns
  • odbc_connect »
  • PHP Manual
  • ODBC Функции
  • Commit an ODBC transaction

odbc_commit

(PHP 4, PHP 5, PHP 7)

odbc_commit — Commit an ODBC transaction

Описание

odbc_commit ( resource $connection_id ) : bool

Commits all pending transactions on the connection.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Соединяет с источником данных

  • « odbc_commit
  • odbc_cursor »
  • PHP Manual
  • ODBC Функции
  • Соединяет с источником данных

odbc_connect

(PHP 4, PHP 5, PHP 7)

odbc_connect — Соединяет с источником данных

Описание

odbc_connect ( string $dsn , string $user , string $password [, int $cursor_type ] ) : resource

Идентификатор соединения, возвращаемый этой функцией, необходим для других ODBC-функций. Вы можете держать одновременно открытыми несколько соединений.

Некоторые ODBC-драйверы, выполняющие сложные хранимые процедуры, могут обрываться с ошибкой типа: "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it". Использование SQL_CUR_USE_ODBC поможет избежать появления этой ошибки. Также некоторые драйверы не поддерживают необязательный параметр row_number в odbc_fetch_row(). SQL_CUR_USE_ODBC также может помочь в этом случае.

Список параметров

dsn

Database Source Name (DSN) для соединения. В качестве альтернативы можно производить соединение и без DSN.

user

Имя.

password

Пароль.

cursor_type

Устанавливает тип используемого курсора для соединения. Обычно этот параметр не нужен, но может оказаться полезным для обхода проблем с некоторыми драйверами ODBC.

Следующие константы определены для типа курсора:

  • SQL_CUR_USE_IF_NEEDED
  • SQL_CUR_USE_ODBC
  • SQL_CUR_USE_DRIVER

Возвращаемые значения

Возвращает соединение ODBC или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Соединения без DSN

<?php
// Microsoft SQL Server используя SQL Native Client 10.0 ODBC Driver - позволяет соединяться
// с SQL 7, 2000, 2005 и 2008
$connection = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;", $user, $password);

// Microsoft Access
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);

// Microsoft Excel
$excelFile = realpath('C:/ExcelData.xls');
$excelDir = dirname($excelFile);
$connection = odbc_connect("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=$excelFile;DefaultDir=$excelDir" , '', '');
?>

Смотрите также

  • Для постоянных соединений: odbc_pconnect() - Open a persistent database connection


Get cursorname

  • « odbc_connect
  • odbc_data_source »
  • PHP Manual
  • ODBC Функции
  • Get cursorname

odbc_cursor

(PHP 4, PHP 5, PHP 7)

odbc_cursor — Get cursorname

Описание

odbc_cursor ( resource $result_id ) : string

Gets the cursorname for the given result_id.

Список параметров

result_id

The result identifier.

Возвращаемые значения

Returns the cursor name, as a string.


Returns information about a current connection

  • « odbc_cursor
  • odbc_do »
  • PHP Manual
  • ODBC Функции
  • Returns information about a current connection

odbc_data_source

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

odbc_data_source — Returns information about a current connection

Описание

odbc_data_source ( resource $connection_id , int $fetch_type ) : array

This function will return the list of available DSN (after calling it several times).

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

fetch_type

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.

Возвращаемые значения

Returns FALSE on error, and an array upon success.


Псевдоним odbc_exec

  • « odbc_data_source
  • odbc_error »
  • PHP Manual
  • ODBC Функции
  • Псевдоним odbc_exec

odbc_do

(PHP 4, PHP 5, PHP 7)

odbc_do — Псевдоним odbc_exec()

Описание

Эта функция является псевдонимом: odbc_exec().


Get the last error code

  • « odbc_do
  • odbc_errormsg »
  • PHP Manual
  • ODBC Функции
  • Get the last error code

odbc_error

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

odbc_error — Get the last error code

Описание

odbc_error ([ resource $connection_id ] ) : string

Returns a six-digit ODBC state, or an empty string if there has been no errors.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

Возвращаемые значения

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).

Смотрите также

  • odbc_errormsg() - Get the last error message
  • odbc_exec() - Prepare and execute an SQL statement


Get the last error message

  • « odbc_error
  • odbc_exec »
  • PHP Manual
  • ODBC Функции
  • Get the last error message

odbc_errormsg

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

odbc_errormsg — Get the last error message

Описание

odbc_errormsg ([ resource $connection_id ] ) : string

Returns a string containing the last ODBC error message, or an empty string if there has been no errors.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

Возвращаемые значения

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).

Смотрите также

  • odbc_error() - Get the last error code
  • odbc_exec() - Prepare and execute an SQL statement


Prepare and execute an SQL statement

  • « odbc_errormsg
  • odbc_execute »
  • PHP Manual
  • ODBC Функции
  • Prepare and execute an SQL statement

odbc_exec

(PHP 4, PHP 5, PHP 7)

odbc_exec — Prepare and execute an SQL statement

Описание

odbc_exec ( resource $connection_id , string $query_string [, int $flags ] ) : resource

Sends an SQL statement to the database server.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

query_string

The SQL statement.

flags

This parameter is currently not used.

Возвращаемые значения

Returns an ODBC result identifier if the SQL command was executed successfully, or FALSE on error.

Смотрите также

  • odbc_prepare() - Prepares a statement for execution
  • odbc_execute() - Execute a prepared statement


Execute a prepared statement

  • « odbc_exec
  • odbc_fetch_array »
  • PHP Manual
  • ODBC Функции
  • Execute a prepared statement

odbc_execute

(PHP 4, PHP 5, PHP 7)

odbc_execute — Execute a prepared statement

Описание

odbc_execute ( resource $result_id [, array $parameters_array ] ) : bool

Executes a statement prepared with odbc_prepare().

Список параметров

result_id

The result id resource, from odbc_prepare().

parameters_array

Parameters in parameter_array will be substituted for placeholders in the prepared statement in order. Elements of this array will be converted to strings by calling this function.

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.

If you wish to store a string which actually begins and ends with single quotes, you must add a space or other non-single-quote character to the beginning or end of the parameter, which will prevent the parameter from 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()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 odbc_execute() and odbc_prepare() example

In the following code, $success will only be TRUE if all three parameters to myproc are IN parameters:

<?php
$a = 1;
$b = 2;
$c = 3;
$stmt    = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$success = 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_prepare() - Prepares a statement for execution


Fetch a result row as an associative array

  • « odbc_execute
  • odbc_fetch_into »
  • PHP Manual
  • ODBC Функции
  • Fetch a result row as an associative array

odbc_fetch_array

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

odbc_fetch_array — Fetch a result row as an associative array

Описание

odbc_fetch_array ( resource $result [, int $rownumber ] ) : array

Fetch an associative array from an ODBC query.

Список параметров

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.

Примечания

Замечание: This function exists when compiled with DBMaker, IBM DB2 or UnixODBC support.

Смотрите также

  • odbc_fetch_row() - Fetch a row
  • odbc_fetch_object() - Fetch a result row as an object
  • odbc_num_rows() - Number of rows in a result


Fetch one result row into array

  • « odbc_fetch_array
  • odbc_fetch_object »
  • PHP Manual
  • ODBC Функции
  • Fetch one result row into array

odbc_fetch_into

(PHP 4, PHP 5, PHP 7)

odbc_fetch_into — Fetch one result row into array

Описание

odbc_fetch_into ( resource $result_id , array &$result_array [, int $rownumber ] ) : int

Fetch one result row into array.

Список параметров

result_id

The result resource.

result_array

The result array that 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.

rownumber

The row number.

Возвращаемые значения

Returns the number of columns in the result; FALSE on error.

Примеры

Пример #1 odbc_fetch_into() examples

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

or

<?php
$rc = odbc_fetch_into($res_id, $my_array, 2);
?>


Fetch a result row as an object

  • « odbc_fetch_into
  • odbc_fetch_row »
  • PHP Manual
  • ODBC Функции
  • Fetch a result row as an object

odbc_fetch_object

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

odbc_fetch_object — Fetch a result row as an object

Описание

odbc_fetch_object ( resource $result [, int $rownumber ] ) : object

Fetch an object from an ODBC query.

Список параметров

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.

Примечания

Замечание: This function exists when compiled with DBMaker, IBM DB2 or UnixODBC support.

Смотрите также

  • odbc_fetch_row() - Fetch a row
  • odbc_fetch_array() - Fetch a result row as an associative array
  • odbc_num_rows() - Number of rows in a result


Fetch a row

  • « odbc_fetch_object
  • odbc_field_len »
  • PHP Manual
  • ODBC Функции
  • Fetch a row

odbc_fetch_row

(PHP 4, PHP 5, PHP 7)

odbc_fetch_row — Fetch a row

Описание

odbc_fetch_row ( resource $result_id [, int $row_number = 1 ] ) : bool

Fetches a row of the data that was returned by odbc_do() or odbc_exec(). After odbc_fetch_row() is called, the fields of that row can be accessed with odbc_result().

Список параметров

result_id

The result identifier.

row_number

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.

Возвращаемые значения

Returns TRUE if there was a row, FALSE otherwise.


Get the length (precision) of a field

  • « odbc_fetch_row
  • odbc_field_name »
  • PHP Manual
  • ODBC Функции
  • Get the length (precision) of a field

odbc_field_len

(PHP 4, PHP 5, PHP 7)

odbc_field_len — Get the length (precision) of a field

Описание

odbc_field_len ( resource $result_id , int $field_number ) : int

Gets the length of the field referenced by number in the given result identifier.

Список параметров

result_id

The result identifier.

field_number

The field number. Field numbering starts at 1.

Возвращаемые значения

Returns the field length, or FALSE on error.

Смотрите также

  • odbc_field_scale() - Get the scale of a field to get the scale of a floating point number


Get the columnname

  • « odbc_field_len
  • odbc_field_num »
  • PHP Manual
  • ODBC Функции
  • Get the columnname

odbc_field_name

(PHP 4, PHP 5, PHP 7)

odbc_field_name — Get the columnname

Описание

odbc_field_name ( resource $result_id , int $field_number ) : string

Gets the name of the field occupying the given column number in the given result identifier.

Список параметров

result_id

The result identifier.

field_number

The field number. Field numbering starts at 1.

Возвращаемые значения

Returns the field name as a string, or FALSE on error.


Return column number

  • « odbc_field_name
  • odbc_field_precision »
  • PHP Manual
  • ODBC Функции
  • Return column number

odbc_field_num

(PHP 4, PHP 5, PHP 7)

odbc_field_num — Return column number

Описание

odbc_field_num ( resource $result_id , string $field_name ) : int

Gets the number of the column slot that corresponds to the named field in the given result identifier.

Список параметров

result_id

The result identifier.

field_name

The field name.

Возвращаемые значения

Returns the field number as a integer, or FALSE on error. Field numbering starts at 1.


Псевдоним odbc_field_len

  • « odbc_field_num
  • odbc_field_scale »
  • PHP Manual
  • ODBC Функции
  • Псевдоним odbc_field_len

odbc_field_precision

(PHP 4, PHP 5, PHP 7)

odbc_field_precision — Псевдоним odbc_field_len()

Описание

Эта функция является псевдонимом: odbc_field_len().

Смотрите также

  • odbc_field_scale() - Get the scale of a field to get the scale of a floating point number.


Get the scale of a field

  • « odbc_field_precision
  • odbc_field_type »
  • PHP Manual
  • ODBC Функции
  • Get the scale of a field

odbc_field_scale

(PHP 4, PHP 5, PHP 7)

odbc_field_scale — Get the scale of a field

Описание

odbc_field_scale ( resource $result_id , int $field_number ) : int

Gets the scale of the field referenced by number in the given result identifier.

Список параметров

result_id

The result identifier.

field_number

The field number. Field numbering starts at 1.

Возвращаемые значения

Returns the field scale as a integer, or FALSE on error.


Datatype of a field

  • « odbc_field_scale
  • odbc_foreignkeys »
  • PHP Manual
  • ODBC Функции
  • Datatype of a field

odbc_field_type

(PHP 4, PHP 5, PHP 7)

odbc_field_type — Datatype of a field

Описание

odbc_field_type ( resource $result_id , int $field_number ) : string

Gets the SQL type of the field referenced by number in the given result identifier.

Список параметров

result_id

The result identifier.

field_number

The field number. Field numbering starts at 1.

Возвращаемые значения

Returns the field type as a string, or FALSE on error.


Retrieves a list of foreign keys

  • « odbc_field_type
  • odbc_free_result »
  • PHP Manual
  • ODBC Функции
  • Retrieves a list of foreign keys

odbc_foreignkeys

(PHP 4, PHP 5, PHP 7)

odbc_foreignkeys — Retrieves a list of foreign keys

Описание

odbc_foreignkeys ( resource $connection_id , string $pk_qualifier , string $pk_owner , string $pk_table , string $fk_qualifier , string $fk_owner , string $fk_table ) : resource

Retrieves 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

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

pk_qualifier

The primary key qualifier.

pk_owner

The primary key owner.

pk_table

The primary key table.

fk_qualifier

The foreign key qualifier.

fk_owner

The foreign key owner.

fk_table

The foreign key table.

Возвращаемые значения

Returns an ODBC result identifier или FALSE в случае возникновения ошибки.

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.


Free resources associated with a result

  • « odbc_foreignkeys
  • odbc_gettypeinfo »
  • PHP Manual
  • ODBC Функции
  • Free resources associated with a result

odbc_free_result

(PHP 4, PHP 5, PHP 7)

odbc_free_result — Free resources associated with a result

Описание

odbc_free_result ( resource $result_id ) : bool

Free resources associated with a result.

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.

Список параметров

result_id

The result identifier.

Возвращаемые значения

Always returns TRUE.

Примечания

Замечание:

If auto-commit is disabled (see odbc_autocommit()) and you call odbc_free_result() before committing, all pending transactions are rolled back.


Retrieves information about data types supported by the data source

  • « odbc_free_result
  • odbc_longreadlen »
  • PHP Manual
  • ODBC Функции
  • Retrieves information about data types supported by the data source

odbc_gettypeinfo

(PHP 4, PHP 5, PHP 7)

odbc_gettypeinfo — Retrieves information about data types supported by the data source

Описание

odbc_gettypeinfo ( resource $connection_id [, int $data_type ] ) : resource

Retrieves information about data types supported by the data source.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

data_type

The data type, which can be used to restrict the information to a single data type.

Возвращаемые значения

Returns an ODBC result identifier or FALSE on failure.

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.


Handling of LONG columns

  • « odbc_gettypeinfo
  • odbc_next_result »
  • PHP Manual
  • ODBC Функции
  • Handling of LONG columns

odbc_longreadlen

(PHP 4, PHP 5, PHP 7)

odbc_longreadlen — Handling of LONG columns

Описание

odbc_longreadlen ( resource $result_id , int $length ) : bool

Enables handling of LONG and LONGVARBINARY columns.

Список параметров

result_id

The result identifier.

length

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.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Handling of LONGVARBINARY columns is also affected by odbc_binmode().


Checks if multiple results are available

  • « odbc_longreadlen
  • odbc_num_fields »
  • PHP Manual
  • ODBC Функции
  • Checks if multiple results are available

odbc_next_result

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

odbc_next_result — Checks if multiple results are available

Описание

odbc_next_result ( resource $result_id ) : bool

Checks if there are more result sets available as well as allowing access to the next result set via odbc_fetch_array(), odbc_fetch_row(), odbc_result(), etc.

Список параметров

result_id

The result identifier.

Возвращаемые значения

Returns TRUE if there are more result sets, FALSE otherwise.

Примеры

Пример #1 odbc_next_result()

<?php
$r_Connection = odbc_connect($dsn, $username, $password);

$s_SQL = <<<END_SQL
SELECT 'A'
SELECT 'B'
SELECT 'C'
END_SQL;

$r_Results = odbc_exec($r_Connection, $s_SQL);

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Dump first result set";
var_dump($a_Row1, $a_Row2);

echo "Get second results set ";
var_dump(odbc_next_result($r_Results));

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Dump second result set ";
var_dump($a_Row1, $a_Row2);

echo "Get third results set ";
var_dump(odbc_next_result($r_Results));

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Dump third result set ";
var_dump($a_Row1, $a_Row2);

echo "Try for a fourth result set ";
var_dump(odbc_next_result($r_Results));
?>

Результат выполнения данного примера:

Dump first result set array(1) {
  ["A"]=>
  string(1) "A"
}
bool(false)
Get second results set bool(true)
Dump second result set array(1) {
  ["B"]=>
  string(1) "B"
}
bool(false)
Get third results set bool(true)
Dump third result set array(1) {
  ["C"]=>
  string(1) "C"
}
bool(false)
Try for a fourth result set bool(false)


Number of columns in a result

  • « odbc_next_result
  • odbc_num_rows »
  • PHP Manual
  • ODBC Функции
  • Number of columns in a result

odbc_num_fields

(PHP 4, PHP 5, PHP 7)

odbc_num_fields — Number of columns in a result

Описание

odbc_num_fields ( resource $result_id ) : int

Gets the number of fields (columns) in an ODBC result.

Список параметров

result_id

The result identifier returned by odbc_exec().

Возвращаемые значения

Returns the number of fields, or -1 on error.


Number of rows in a result

  • « odbc_num_fields
  • odbc_pconnect »
  • PHP Manual
  • ODBC Функции
  • Number of rows in a result

odbc_num_rows

(PHP 4, PHP 5, PHP 7)

odbc_num_rows — Number of rows in a result

Описание

odbc_num_rows ( resource $result_id ) : int

Gets the number of rows in a result. 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.

Список параметров

result_id

The result identifier returned by odbc_exec().

Возвращаемые значения

Returns the number of rows in an ODBC result. This function will return -1 on error.

Примечания

Замечание:

Using odbc_num_rows() to determine the number of rows available after a SELECT will return -1 with many drivers.


Open a persistent database connection

  • « odbc_num_rows
  • odbc_prepare »
  • PHP Manual
  • ODBC Функции
  • Open a persistent database connection

odbc_pconnect

(PHP 4, PHP 5, PHP 7)

odbc_pconnect — Open a persistent database connection

Описание

odbc_pconnect ( string $dsn , string $user , string $password [, int $cursor_type ] ) : resource

Opens a persistent database connection.

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.

Список параметров

See odbc_connect() for details.

Возвращаемые значения

Returns an ODBC connection id or 0 (FALSE) on error.

Примечания

Замечание: Persistent connections have no effect if PHP is used as a CGI program.

Смотрите также

  • odbc_connect() - Соединяет с источником данных
  • Persistent Database Connections


Prepares a statement for execution

  • « odbc_pconnect
  • odbc_primarykeys »
  • PHP Manual
  • ODBC Функции
  • Prepares a statement for execution

odbc_prepare

(PHP 4, PHP 5, PHP 7)

odbc_prepare — Prepares a statement for execution

Описание

odbc_prepare ( resource $connection_id , string $query_string ) : resource

Prepares a statement for execution. 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.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

query_string

The query string statement being prepared.

Возвращаемые значения

Returns an ODBC result identifier if the SQL command was prepared successfully. Returns FALSE on error.

Примеры

Пример #1 odbc_execute() and odbc_prepare() example

In the following code, $success will only be TRUE if all three parameters to myproc are IN parameters:

<?php
$a = 1;
$b = 2;
$c = 3;
$stmt    = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$success = 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_execute() - Execute a prepared statement


Gets the primary keys for a table

  • « odbc_prepare
  • odbc_procedurecolumns »
  • PHP Manual
  • ODBC Функции
  • Gets the primary keys for a table

odbc_primarykeys

(PHP 4, PHP 5, PHP 7)

odbc_primarykeys — Gets the primary keys for a table

Описание

odbc_primarykeys ( resource $connection_id , string $qualifier , string $owner , string $table ) : resource

Returns a result identifier that can be used to fetch the column names that comprise the primary key for a table.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

qualifier

owner

table

Возвращаемые значения

Returns an ODBC result identifier или FALSE в случае возникновения ошибки.

The result set has the following columns:

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • COLUMN_NAME
  • KEY_SEQ
  • PK_NAME


Retrieve information about parameters to procedures

  • « odbc_primarykeys
  • odbc_procedures »
  • PHP Manual
  • ODBC Функции
  • Retrieve information about parameters to procedures

odbc_procedurecolumns

(PHP 4, PHP 5, PHP 7)

odbc_procedurecolumns — Retrieve information about parameters to procedures

Описание

odbc_procedurecolumns ( resource $connection_id ) : resource
odbc_procedurecolumns ( resource $connection_id , string $qualifier , string $owner , string $proc , string $column ) : resource

Retrieve information about parameters to procedures.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

qualifier

The qualifier.

owner

The owner. Этот параметр принимает следующие шаблоны поиска: "%" соответствующий нулю или более символам, и "_" соответствующий ровно одному символу.

proc

The proc. Этот параметр принимает следующие шаблоны поиска: "%" соответствующий нулю или более символам, и "_" соответствующий ровно одному символу.

column

The 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 или FALSE в случае возникновения ошибки.

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.


Get the list of procedures stored in a specific data source

  • « odbc_procedurecolumns
  • odbc_result_all »
  • PHP Manual
  • ODBC Функции
  • Get the list of procedures stored in a specific data source

odbc_procedures

(PHP 4, PHP 5, PHP 7)

odbc_procedures — Get the list of procedures stored in a specific data source

Описание

odbc_procedures ( resource $connection_id ) : resource
odbc_procedures ( resource $connection_id , string $qualifier , string $owner , string $name ) : resource

Lists all procedures in the requested range.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

qualifier

The qualifier.

owner

The owner. Этот параметр принимает следующие шаблоны поиска: "%" соответствующий нулю или более символам, и "_" соответствующий ровно одному символу.

name

The name. Этот параметр принимает следующие шаблоны поиска: "%" соответствующий нулю или более символам, и "_" соответствующий ровно одному символу.

Возвращаемые значения

Returns an ODBC result identifier containing the information или FALSE в случае возникновения ошибки.

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


Print result as HTML table

  • « odbc_procedures
  • odbc_result »
  • PHP Manual
  • ODBC Функции
  • Print result as HTML table

odbc_result_all

(PHP 4, PHP 5, PHP 7)

odbc_result_all — Print result as HTML table

Описание

odbc_result_all ( resource $result_id [, string $format ] ) : int

Prints all rows from a result identifier produced by odbc_exec(). The result is printed in HTML table format.

Список параметров

result_id

The result identifier.

format

Additional overall table formatting.

Возвращаемые значения

Returns the number of rows in the result or FALSE on error.


Get result data

  • « odbc_result_all
  • odbc_rollback »
  • PHP Manual
  • ODBC Функции
  • Get result data

odbc_result

(PHP 4, PHP 5, PHP 7)

odbc_result — Get result data

Описание

odbc_result ( resource $result_id , mixed $field ) : mixed

Get result data

Список параметров

result_id

The ODBC resource.

field

The field name being retrieved. It 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.

Возвращаемые значения

Returns the string contents of the field, FALSE on error, NULL for NULL data, or TRUE for binary data.

Примеры

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.

Пример #1 odbc_result() examples

<?php
$item_3   = odbc_result($Query_ID, 3);
$item_val = odbc_result($Query_ID, "val");
?>

Примечания

Field indices start from 1. Regarding the way binary or long column data is returned refer to odbc_binmode() and odbc_longreadlen().


Rollback a transaction

  • « odbc_result
  • odbc_setoption »
  • PHP Manual
  • ODBC Функции
  • Rollback a transaction

odbc_rollback

(PHP 4, PHP 5, PHP 7)

odbc_rollback — Rollback a transaction

Описание

odbc_rollback ( resource $connection_id ) : bool

Rolls back all pending statements on the connection.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Adjust ODBC settings

  • « odbc_rollback
  • odbc_specialcolumns »
  • PHP Manual
  • ODBC Функции
  • Adjust ODBC settings

odbc_setoption

(PHP 4, PHP 5, PHP 7)

odbc_setoption — Adjust ODBC settings

Описание

odbc_setoption ( resource $id , int $function , int $option , int $param ) : bool

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.

Список параметров

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().

option

The option to set.

param

The value for the given option.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #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);
?>


Retrieves special columns

  • « odbc_setoption
  • odbc_statistics »
  • PHP Manual
  • ODBC Функции
  • Retrieves special columns

odbc_specialcolumns

(PHP 4, PHP 5, PHP 7)

odbc_specialcolumns — Retrieves special columns

Описание

odbc_specialcolumns ( resource $connection_id , int $type , string $qualifier , string $table , int $scope , int $nullable ) : resource

Retrieves 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.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

type
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.
qualifier

The qualifier.

table

The table.

scope

The scope, which orders the result set.

nullable

The nullable option.

Возвращаемые значения

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


Retrieve statistics about a table

  • « odbc_specialcolumns
  • odbc_tableprivileges »
  • PHP Manual
  • ODBC Функции
  • Retrieve statistics about a table

odbc_statistics

(PHP 4, PHP 5, PHP 7)

odbc_statistics — Retrieve statistics about a table

Описание

odbc_statistics ( resource $connection_id , string $qualifier , string $owner , string $table_name , int $unique , int $accuracy ) : resource

Get statistics about a table and its indexes.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

qualifier

The qualifier.

owner

The owner.

table_name

The table name.

unique

The unique attribute.

accuracy

The accuracy.

Возвращаемые значения

Returns an ODBC result identifier или FALSE в случае возникновения ошибки.

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.


Lists tables and the privileges associated with each table

  • « odbc_statistics
  • odbc_tables »
  • PHP Manual
  • ODBC Функции
  • Lists tables and the privileges associated with each table

odbc_tableprivileges

(PHP 4, PHP 5, PHP 7)

odbc_tableprivileges — Lists tables and the privileges associated with each table

Описание

odbc_tableprivileges ( resource $connection_id , string $qualifier , string $owner , string $name ) : resource

Lists tables in the requested range and the privileges associated with each table.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

qualifier

The qualifier.

owner

The owner. Accepts the following search patterns: ('%' to match zero or more characters and '_' to match a single character)

name

The name. Accepts the following search patterns: ('%' to match zero or more characters and '_' to match a single character)

Возвращаемые значения

An ODBC result identifier или FALSE в случае возникновения ошибки.

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.


Get the list of table names stored in a specific data source

  • « odbc_tableprivileges
  • PDO »
  • PHP Manual
  • ODBC Функции
  • Get the list of table names stored in a specific data source

odbc_tables

(PHP 4, PHP 5, PHP 7)

odbc_tables — Get the list of table names stored in a specific data source

Описание

odbc_tables ( resource $connection_id [, string $qualifier [, string $owner [, string $name [, string $types ]]]] ) : resource

Lists all tables in the requested range.

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.)

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

qualifier

The qualifier.

owner

The owner. Accepts search patterns ('%' to match zero or more characters and '_' to match a single character).

name

The name. Accepts search patterns ('%' to match zero or more characters and '_' to match a single character).

types

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.

Возвращаемые значения

Returns an ODBC result identifier containing the information или FALSE в случае возникновения ошибки.

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.

Смотрите также

  • odbc_tableprivileges() - Lists tables and the privileges associated with each table


Объекты данных PHP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Подключения и управление подключениями
  • Транзакции и автоматическая фиксация изменений
  • Подготовленные запросы и хранимые процедуры
  • Ошибки и их обработка
  • Большие объекты (LOB)
  • PDO — Класс PDO
    • PDO::beginTransaction — Инициализация транзакции
    • PDO::commit — Фиксирует транзакцию
    • PDO::__construct — Создает экземпляр PDO, предоставляющий соединение с базой данных
    • PDO::errorCode — Возвращает код SQLSTATE результата последней операции с базой данных
    • PDO::errorInfo — Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных
    • PDO::exec — Выполняет SQL-запрос и возвращает количество затронутых строк
    • PDO::getAttribute — Получить атрибут соединения с базой данных
    • PDO::getAvailableDrivers — Возвращает массив доступных драйверов PDO
    • PDO::inTransaction — Проверяет, начата ли транзакция
    • PDO::lastInsertId — Возвращает ID последней вставленной строки или значение последовательности
    • PDO::prepare — Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
    • PDO::query — Выполняет SQL-запрос и возвращает результирующий набор в виде объекта PDOStatement
    • PDO::quote — Заключает строку в кавычки для использования в запросе
    • PDO::rollBack — Откат транзакции
    • PDO::setAttribute — Установка атрибута
  • PDOStatement — Класс PDOStatement
    • PDOStatement::bindColumn — Связывает столбец с переменной PHP
    • PDOStatement::bindParam — Привязывает параметр запроса к переменной
    • PDOStatement::bindValue — Связывает параметр с заданным значением
    • PDOStatement::closeCursor — Закрывает курсор, переводя запрос в состояние готовности к повторному запуску
    • PDOStatement::columnCount — Возвращает количество столбцов в результирующем наборе
    • PDOStatement::debugDumpParams — Вывод информации о подготовленной SQL-команде в целях отладки
    • PDOStatement::errorCode — Получает код SQLSTATE, связанный с последней операцией в объекте PDOStatement
    • PDOStatement::errorInfo — Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement
    • PDOStatement::execute — Запускает подготовленный запрос на выполнение
    • PDOStatement::fetch — Извлечение следующей строки из результирующего набора
    • PDOStatement::fetchAll — Возвращает массив, содержащий все строки результирующего набора
    • PDOStatement::fetchColumn — Возвращает данные одного столбца следующей строки результирующего набора
    • PDOStatement::fetchObject — Извлекает следующую строку и возвращает ее в виде объекта
    • PDOStatement::getAttribute — Получение значения атрибута запроса PDOStatement
    • PDOStatement::getColumnMeta — Возвращает метаданные столбца в результирующей таблице
    • PDOStatement::nextRowset — Переход к следующему набору строк в результате запроса
    • PDOStatement::rowCount — Возвращает количество строк, затронутых последним SQL-запросом
    • PDOStatement::setAttribute — Устанавливает атрибут объекту PDOStatement
    • PDOStatement::setFetchMode — Устанавливает режим выборки по умолчанию для объекта запроса
  • PDOException — Класс PDOException
  • Драйверы PDO
    • CUBRID (PDO) — Функции CUBRID (PDO_CUBRID)
    • MS SQL Server (PDO_DBLIB) — Функции Microsoft SQL Server и Sybase (PDO_DBLIB)
    • Firebird (PDO) — Функции Firebird (PDO_FIREBIRD)
    • IBM (PDO) — Функции IBM (PDO_IBM)
    • Informix (PDO) — Функции Informix (PDO_INFORMIX)
    • MySQL (PDO) — Функции MySQL (PDO_MYSQL)
    • MS SQL Server (PDO) — Функции модуля PDO_SQLSRV для Microsoft SQL Server
    • Oracle (PDO) — Функции Oracle (PDO_OCI)
    • ODBC и DB2 (PDO) — Функции ODBC и DB2 (PDO_ODBC)
    • PostgreSQL (PDO) — Функции PostgreSQL (PDO_PGSQL)
    • SQLite (PDO) — Функции SQLite (PDO_SQLITE)
    • 4D (PDO) — Функции 4D (PDO_4D)


Введение

Расширение Объекты данных PHP (PDO) определяет простой и согласованный интерфейс для доступа к базам данных в PHP. Каждый драйвер базы данных, в котором реализован этот интерфейс, может представить специфичный для базы данных функционал в виде стандартных функций расширения. Но надо заметить, что само по себе расширение PDO не позволяет манипулировать доступом к базе данных. Чтобы воспользоваться возможностями PDO, необходимо использовать соответствующий конкретной базе данных PDO драйвер.

PDO обеспечивает абстракцию доступу к данным, это значит, что вне зависимости от того, какая конкретная база данных используется, вы можете пользоваться одними и теми же функциями для выполнения запросов и выборки данных. PDO не абстрагирует саму базу данных, это расширение не переписывает SQL-запросы и не эмулирует отсутствующий в СУБД функционал. Если нужно именно это, необходимо воспользоваться полноценной абстракцией базы данных.

Расширение PDO внедрено в PHP 5.1, но также доступно в 5.0 в виде PECL-расширения; PDO использует новый OO-функционал из ядра PHP 5 и поэтому не будет работать с ранними версиями PHP.


Установка

Установка PDO на Unix-системах

  1. PDO и драйвер PDO_SQLITE включены по умолчанию в PHP, начиная с версии 5.1.0. Чтобы включить PDO драйвер для произвольной базы данных, обратитесь к документации драйверы PDO баз данных.

    Замечание:

    Если PDO собирается, как подгружаемое расширение (не рекомендуется), то все PDO-драйверы должны быть загружены после загрузки самого PDO.

  2. При установке PDO в качестве подгружаемого модуля в файл php.ini необходимо внести изменения, чтобы расширение PDO загружалось автоматически при запуске PHP. Также туда придется включить загрузку некоторых драйверов баз данных; при этом убедитесь, что они перечислены после строки pdo.so, так как PDO должно загрузиться первым. Если вы устанавливаете PDO и драйверы баз данных как статичные модули, этот шаг можно пропустить.

    extension=pdo.so

Пользователи Windows

  1. PDO и все основные драйверы внедрены в PHP как загружаемые модули. Чтобы их использовать, требуется их просто включить, отредактировав файл php.ini следующим образом:

    extension=php_pdo.dll

    Замечание:

    Этот шаг необязателен для версий PHP 5.3 и выше, так как для работы PDO больше не требуются DLL.

  2. Далее нужно выбрать DLL конкретных баз данных и либо загружать их во время выполнения функцией dl(), либо включить их в php.ini после php_pdo.dll. Например:

    extension=php_pdo.dll
extension=php_pdo_firebird.dll
extension=php_pdo_informix.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

    Эти DLL должны находиться в директории extension_dir.

Замечание:

Не забывайте, что после внесения изменений в php.ini необходим перезапуск PHP, чтобы новые опции конфигурации вступили в силу.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Настройки конфигурации PDO
Имя | По умолчанию | Место изменения | Список изменений
pdo.dsn.* |  | только php.ini |

Краткое разъяснение конфигурационных директив.

pdo.dsn.* string

Определяет псевдоним DSN. Дополнительно см. PDO::__construct().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Внимание

PDO использует константы класса с PHP 5.1. До этого использовались глобальные константы в форме PDO_PARAM_BOOL.

PDO::PARAM_BOOL (integer)
Представляет логический тип данных.
PDO::PARAM_NULL (integer)
Представляет тип данных SQL NULL.
PDO::PARAM_INT (integer)
Представляет тип данных SQL INTEGER.
PDO::PARAM_STR (integer)
Представляет типы данных SQL CHAR, VARCHAR и другие строковые типы.
PDO::PARAM_STR_NATL (integer)
Флаг для обозначения, что строки используют национальный набор символов. Константа доступна с версии PHP 7.2.0
PDO::PARAM_STR_CHAR (integer)
Флаг для обозначения, что строки используют обычный набор символов. Константа доступна с версии PHP 7.2.0
PDO::PARAM_LOB (integer)
Представляет тип данных больших объектов SQL.
PDO::PARAM_STMT (integer)
Представляет тип recordset. На данных момент не поддерживается драйверами.
PDO::PARAM_INPUT_OUTPUT (integer)
Указывает, что параметр является параметром INOUT для хранимой процедуры. Для задания типа данных необходимо применить побитовое ИЛИ этой константы с константой типа PDO::PARAM_*.
PDO::FETCH_LAZY (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку выборки в виде объекта, в котором имена переменных соответствуют именам столбцов результирующего набора. PDO::FETCH_LAZY создает объект с такими же именами переменных, с которыми осуществлялась выборка. Константа недействительна для функции PDOStatement::fetchAll().
PDO::FETCH_ASSOC (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку результирующего набора в виде ассоциативного массива, индексы которого соответствуют именам столбцов результата выборки. Если в результирующем наборе несколько столбцов с одинаковыми именами, PDO::FETCH_ASSOC будет возвращать по одному значению для каждого столбца. Значения дублирующихся столбцов будут утеряны.
PDO::FETCH_NAMED (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку результирующего набора в виде ассоциативного массива, индексы которого соответствуют именам столбцов результата выборки. Если в результирующем наборе несколько столбцов с одинаковыми именами, PDO::FETCH_NAMED возвращает массив значений для каждого имени столбца.
PDO::FETCH_NUM (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку результирующего набора в виде массива, индексы которого соответствуют порядковым номерам столбцов результата выборки. Нумерация начинается с 0.
PDO::FETCH_BOTH (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку результирующего набора в виде массива. Индексация массива производится и по именам столбцов и по их порядковым номерам в результирующей таблице. Нумерация начинается с 0.
PDO::FETCH_OBJ (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку результирующего набора в виде объекта, имена свойств которого соответствуют именам столбцов результирующей таблицы.
PDO::FETCH_BOUND (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать TRUE и присваивать значения столбцов таблицы переменным PHP, которые были привязаны методами PDOStatement::bindParam() или PDOStatement::bindColumn().
PDO::FETCH_COLUMN (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать значение только одного столбца из следующей строки результирующего набора.
PDO::FETCH_CLASS (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать новый объект запрашиваемого класса, заполняя именованные свойства класса значениями столбцов результирующей таблицы.

Замечание: Если в классе нет свойства с необходимым именем, будет вызван магический метод __set().

PDO::FETCH_INTO (integer)
Указывает, что метод, осуществляющий выборку данных, должен обновлять существующий объект запрашиваемого класса, заполняя именованные свойства класса значениями столбцов результирующей таблицы.
PDO::FETCH_FUNC (integer)
Позволяет настроить обработку данных "на лету" во время выборки (константа действительна только для функции PDOStatement::fetchAll()).
PDO::FETCH_GROUP (integer)
Группировка возвращаемых значений. Обычно комбинируется с константами PDO::FETCH_COLUMN или PDO::FETCH_KEY_PAIR.
PDO::FETCH_UNIQUE (integer)
Выбирать только уникальные значения, исключать дубли из результата.
PDO::FETCH_KEY_PAIR (integer)
Выборка из двух столбцов будет помещена в массив, в котором значения первого столбца принимаются за ключи, а значения второго - за значения. Константа доступна с версии PHP 5.2.3.
PDO::FETCH_CLASSTYPE (integer)
Определение имени класса по значению первого столбца.
PDO::FETCH_SERIALIZE (integer)
Аналогична PDO::FETCH_INTO, но объект представлен в виде сериализованной строки. Константа доступна с версии PHP 5.1.0. С версии PHP 5.3.0 конструктор класса не будет вызван, если этот флаг установлен.
PDO::FETCH_PROPS_LATE (integer)
Вызывать конструктор до установки свойств. Константа доступна с версии PHP 5.2.0.
PDO::ATTR_AUTOCOMMIT (integer)
Если значение FALSE, PDO попытается отключить автоматическую фиксацию изменений в базе данных, таким образом началом транзакции будет установление соединения.
PDO::ATTR_PREFETCH (integer)
Изменение размера буфера предвыборки позволяет регулировать баланс между затрачиваемой памятью и скоростью работы с базой данных. Не все связки база/драйвер поддерживают изменение размера этого буфера. Чем больше этот размер, тем выше быстродействие, но и выше затраты памяти.
PDO::ATTR_TIMEOUT (integer)
Задает время в секундах, в течение которого должен быть завершен обмен с базой данных.
PDO::ATTR_ERRMODE (integer)
Подробно об этом атрибуте см. раздел Ошибки и их обработка.
PDO::ATTR_SERVER_VERSION (integer)
Этот атрибут предназначен только для чтения; он содержит информацию о версии сервера баз данных, к которому подключен PDO.
PDO::ATTR_CLIENT_VERSION (integer)
Этот атрибут предназначен только для чтения; он содержит информацию о версии клиентских библиотек, которые использует драйвер PDO.
PDO::ATTR_SERVER_INFO (integer)
Этот атрибут предназначен только для чтения; он содержит информацию о сервере баз данных, к которому подключен PDO.
PDO::ATTR_CONNECTION_STATUS (integer)
PDO::ATTR_CASE (integer)
Приведение имен столбцов к нужному регистру, который задается константами PDO::CASE_*.
PDO::ATTR_CURSOR_NAME (integer)
Получение или установке имени курсора. Особенно полезно при использовании прокручиваемых курсоров или обновления данных в конкретных позициях.
PDO::ATTR_CURSOR (integer)
Выбор типа курсора. PDO на данный момент поддерживает PDO::CURSOR_FWDONLY и PDO::CURSOR_SCROLL. Если вы не уверены, что вам нужен именно прокручиваемый курсор, выбирайте PDO::CURSOR_FWDONLY.
PDO::ATTR_DRIVER_NAME (string)
Возвращает имя драйвера.

Пример #1 Пример использования PDO::ATTR_DRIVER_NAME

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
  echo "Работаем с mysql; делаем что-то специфичное для mysql\n";
}
?>

PDO::ATTR_ORACLE_NULLS (integer)
Преобразование пустых строк в SQL NULL в выборках.
PDO::ATTR_PERSISTENT (integer)
Запрашивать постоянное соединение вместо создания нового подключения. Подробнее об этом атрибуте см. раздел Подключения и управление подключениями.
PDO::ATTR_STATEMENT_CLASS (integer)
Устанавливает имя класса, для которого возвращаются запросы (statements).
PDO::ATTR_FETCH_CATALOG_NAMES (integer)
Предписание предварять имена столбцов именами каталогов в результирующем наборе. Имя столбца отделяется от имени каталога десятичной точкой (.). Поддержка этого атрибута заложена на уровне драйвера; этот функционал поддерживается не всеми драйверами.
PDO::ATTR_FETCH_TABLE_NAMES (integer)
Предписание предварять имена столбцов именами исходных таблиц в результирующем наборе. Имя столбца отделяется от имени таблицы десятичной точкой (.). Поддержка этого атрибута заложена на уровне драйвера; этот функционал поддерживается не всеми драйверами.
PDO::ATTR_STRINGIFY_FETCHES (integer)
Принудительно преобразовывать все получаемые значения в строки.
PDO::ATTR_MAX_COLUMN_LEN (integer)
Устанавливает максимальную длину имени столбца.
PDO::ATTR_DEFAULT_FETCH_MODE (integer)
Константа доступна с версии PHP 5.2.0
PDO::ATTR_EMULATE_PREPARES (integer)
Константа доступна с версии PHP 5.1.3.
PDO::ATTR_DEFAULT_STR_PARAM (integer)
Устанавливает по умолчанию тип параметра строку, значением может быть одна из констант: PDO::PARAM_STR_NATL или PDO::PARAM_STR_CHAR. Константа доступна с версии PHP 7.2.0.
PDO::ERRMODE_SILENT (integer)
Предписание не выбрасывать исключений в случае ошибок. Предполагается, что разработчик скрипта явно проверяет все исключительные ситуации. Это режим по умолчанию. Подробнее об этом атрибуте см. в разделе Ошибки и их обработка.
PDO::ERRMODE_WARNING (integer)
Предписание выдавать сообщение об ошибке PHP уровня E_WARNING. Подробнее об этом атрибуте см. в разделе Ошибки и их обработка.
PDO::ERRMODE_EXCEPTION (integer)
Предписание выбрасывать исключение PDOException в случае ошибки. Подробнее об этом атрибуте см. в разделе Ошибки и их обработка.
PDO::CASE_NATURAL (integer)
Предписание оставлять имена столбцов такими, какие выдал драйвер базы данных.
PDO::CASE_LOWER (integer)
Приводить имена столбцов к нижнему регистру.
PDO::CASE_UPPER (integer)
Приводить имена столбцов к верхнему регистру.
PDO::NULL_NATURAL (integer)
PDO::NULL_EMPTY_STRING (integer)
PDO::NULL_TO_STRING (integer)
PDO::FETCH_ORI_NEXT (integer)
Предписание выбрать следующую строку из результирующего набора. Константа действительна только для прокручиваемых курсоров.
PDO::FETCH_ORI_PRIOR (integer)
Предписание выбрать предыдущую строку из результирующего набора. Константа действительна только для прокручиваемых курсоров.
PDO::FETCH_ORI_FIRST (integer)
Предписание выбрать первую строку из результирующего набора. Константа действительна только для прокручиваемых курсоров.
PDO::FETCH_ORI_LAST (integer)
Предписание выбрать последнюю строку из результирующего набора. Константа действительна только для прокручиваемых курсоров.
PDO::FETCH_ORI_ABS (integer)
Предписание выбрать строку с указанным номером из результирующего набора. Константа действительна только для прокручиваемых курсоров.
PDO::FETCH_ORI_REL (integer)
Предписание выбрать строку из результирующего набора относительно текущего положения курсора. Константа действительна только для прокручиваемых курсоров.
PDO::CURSOR_FWDONLY (integer)
Предписание создать объект PDOStatement с последовательным курсором. Последовательные курсоры выбираются по умолчанию, так как это наиболее общий и быстрый способ доступа к данным в БД из PHP.
PDO::CURSOR_SCROLL (integer)
Предписание создать объект PDOStatement с прокручиваемым курсором. Передача констант PDO::FETCH_ORI_* позволяет задать режим работы курсора, то, как будут выбираться строки из результирующего набора запроса.
PDO::ERR_NONE (string)
Соответствует коду SQLSTATE '00000'. Это означает, что SQL-запрос выполнен успешно без ошибок или предупреждений. Эта константа внедрена для удобства при проверке, есть ли ошибки, функциями PDO::errorCode() или PDOStatement::errorCode(). Также можно проверять, есть ли ошибка внутри метода, сравнивая его код возврата с этой константой.
PDO::PARAM_EVT_ALLOC (integer)
Событие, возникающее при выделении памяти под объект
PDO::PARAM_EVT_FREE (integer)
Событие, возникающее при освобождении занимаемой объектом памяти
PDO::PARAM_EVT_EXEC_PRE (integer)
Событие, возникающее перед запуском подготовленного запроса.
PDO::PARAM_EVT_EXEC_POST (integer)
Событие, возникающее после запуска подготовленного запроса.
PDO::PARAM_EVT_FETCH_PRE (integer)
Событие, возникающее перед выборкой данных из результирующего набора.
PDO::PARAM_EVT_FETCH_POST (integer)
Событие, возникающее после выборки данных из результирующего набора.
PDO::PARAM_EVT_NORMALIZE (integer)
Событие, возникающее во время регистрации параметров, позволяющее драйверу нормализовать имена параметров.
PDO::SQLITE_DETERMINISTIC (integer)
Указывает, что функция созданная PDO::sqliteCreateFunction() детерминированна, то есть она всегда возвращает одинаковый результат для для одинаковых входных данных в одном выражении SQL. (Доступно с PHP 7.1.4.)


Подключения и управление подключениями

Соединения устанавливаются автоматически при создании объекта PDO от его базового класса. Не имеет значения, какой драйвер вы хотите использовать; вы всегда используете имя базового класса. Конструктор класса принимает аргументы для задания источника данных (DSN), а также необязательные имя пользователя и пароль (если есть).

Пример #1 Подключение к MySQL

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>

В случае ошибки при подключении будет выброшено исключение PDOException. Его можно перехватить и обработать, либо оставить на откуп глобальному обработчику ошибок, который вы задали функцией set_exception_handler().

Пример #2 Обработка ошибок подключения

<?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();
}
?>

Внимание

Если ваше приложение не перехватывает исключение PDO конструктора, движок zend выполнит стандартные операции для завершения работы скрипта и вывода обратной трассировки. В этой трассировке будет содержаться детальная информация о соединении с базой данных, включая имя пользователя и пароль. Ответственность за перехват исключений лежит на вас. Перехватить исключение можно явно (с помощью выражения catch), либо неявно, задав глобальный обработчик ошибок функцией set_exception_handler().

При успешном подключении к базе данных в скрипт будет возвращен созданный объект PDO. Соединение остается активным на протяжении всего времени жизни объекта. Чтобы закрыть соединение, необходимо уничтожить объект путем удаления всех ссылок на него (этого можно добиться, присваивая NULL всем переменным, указывающим на объект). Если не сделать этого явно, PHP автоматически закроет соединение по окончании работы скрипта.

Замечание: Если существуют другие ссылки на данный экземпляр PDO (например, из объекта PDOStatement или другие переменные, ссылающиеся на него), они также должны быть удалены (например, присвоением NULL переменной, ссылающейся на PDOStatement).

Пример #3 Закрытие соединения

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// здесь мы каким-то образом используем соединение
$sth = $dbh->query('SELECT * FROM foo');

// соединение больше не нужно, закрываем
$sth = null;
$dbh = null;
?>

Во многих приложениях может оказаться полезным использование постоянных соединений к базам данных. Постоянные соединения не закрываются при завершении работы скрипта, они кешируются и используются повторно, когда другой скрипт запрашивает соединение с теми же учетными данными. Постоянные соединения позволяют избежать создания новых подключений каждый раз, когда требуется обмен данными с базой, что в результате дает прирост скорости работы таких приложений.

Пример #4 Постоянные соединения

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
    PDO::ATTR_PERSISTENT => true
));
?>

Замечание:

Чтобы использовать постоянные соединения, необходимо добавить константу PDO::ATTR_PERSISTENT в массив параметров драйвера, который передается конструктору PDO. Если просто задать этот атрибут функцией PDO::setAttribute() уже после создания объекта, драйвер не будет использовать постоянные соединения.

Замечание:

Если вы используете PDO ODBC драйвер и ваши ODBC библиотеки поддерживают объединение подключений в пул (ODBC Connection Pooling) (unixODBC и Windows точно поддерживают, но могут быть и другие), то рекомендуется вместо постоянных соединений пользоваться этим пулом. Пул подключений ODBC доступен всем модулям текущего процесса; если PDO сам кеширует соединение, то это соединение будет недоступно другим модулям и не попадет в пул. В результате каждый модуль будет создавать дополнительные подключения для своих нужд.


Транзакции и автоматическая фиксация изменений

Теперь вы знаете, как подключаться к базам данных посредством PDO. Но перед тем как выполнять запросы, вам необходимо понять, как PDO управляет транзакциями. Если вы прежде не сталкивались с транзакциями, они обладают четырьмя главными свойствами, это Атомарность, Согласованность, Изолированность и Долговечность (ACID). Говоря простым языком, любые действия, совершенные в рамках транзакции, гарантированно будут выполнены безопасно для базы данных, и на них не повлияют другие подключения к этой базе, даже если эти действия совершаются в несколько этапов. Транзакционные операции можно отменять по запросу (если транзакция еще не зафиксирована), что упрощает обработку ошибок в скриптах.

Механизм транзакций реализован путем "временного сохранения" всех изменений и дальнейшего применения этих изменений, как единого целого. Это позволяет добиться резкого увеличения эффективности подобных изменений. Другими словами, транзакции могут сделать ваши скрипты более быстрыми и потенциально более стабильными (но для этого необходимо корректно использовать этот механизм).

К сожалению, не все базы данных поддерживают транзакции, поэтому PDO при создании подключения работает в режиме так называемой "автоматической фиксации". Режим автофиксации означает, что каждый запрос к базе данных, который вы выполняете, неявно заключается в транзакцию, если СУБД их поддерживает. Если база данных не поддерживает этот механизм, запрос обрабатывается без транзакции. Чтобы явно обозначить начало транзакции, вы должны использовать метод PDO::beginTransaction(). Если драйвер не поддерживает механизм транзакций, будет выброшено исключение PDOException (вне зависимости от выбранного способа обработки ошибок: подобные ситуации - это всегда серьезная недоработка). После того, как вы совершите транзакцию, вы можете зафиксировать ее методом PDO::commit() или откатить методом PDO::rollBack(), в зависимости от того, успешно выполнен ваш код внутри транзакции или нет.

Внимание

PDO проверяет возможность использования транзакций только на уровне драйвера. Если по каким-то причинам механизм транзакций недоступен, но сервер баз данных принял запрос на открытие транзакции, PDO::beginTransaction() вернет TRUE без ошибок.

В качестве примера может быть попытка использования транзакций в таблицах MyISAM базы данных MySQL.

При завершении работы скрипта или при закрытии соединения, PDO автоматически откатывает все незавершенные транзакции. Это делается, чтобы предотвратить нарушения целостности базы данных в случаях, когда скрипт неожиданно прерывает работу. Если вы явно не зафиксировали изменения, предполагается, что что-то пошло не так. Поэтому откат изменений - наиболее безопасный выход из ситуации.

Внимание

Изменения будут откачены автоматически, только если транзакция открыта методом PDO::beginTransaction(). Если транзакцию открыть вручную в тексте запроса, PDO об этом никак не узнает, и, соответственно, не сможет принять мер, если произойдет что-то плохое.

Пример #1 Выполнение пакета изменений в рамках транзакции

В следующем примере предположим, что мы создаем несколько записей для нового сотрудника с номером ID 23. Помимо ввода основной информации необходимо записать его зарплату. Довольно просто сделать два отдельных обновления таблиц, однако путем заключения этих запросов в рамки PDO::beginTransaction() и PDO::commit() мы сможем гарантировать, что никто не увидит этих изменений, пока все они не будут завершены. Если что-то пойдет не так, catch-блок откатит все изменения с начала транзакции и напечатает сообщение об ошибке.

<?php
try {
  $dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
      array(PDO::ATTR_PERSISTENT => true));
  echo "Подключились\n";
} catch (Exception $e) {
  die("Не удалось подключиться: " . $e->getMessage());
}

try {
  $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 "Ошибка: " . $e->getMessage();
}
?>

Вы никак не ограничены в количестве запросов в рамках транзакции; вы также можете выполнять сложные запросы, чтобы извлечь данные, а затем использовать их для создания других запросов на обновление и извлечение данных; если транзакция активна, вы можете быть уверены, что никто не сможет изменить ваши данные, пока вы с ними работаете. За дополнительной информацией о транзакциях обращайтесь к документации к вашему серверу баз данных.


Подготовленные запросы и хранимые процедуры

Большинство баз данных поддерживают концепцию подготовленных запросов. Что это такое? Это можно описать, как некий вид скомпилированного шаблона SQL запроса, который будет запускаться приложением и настраиваться с помощью входных параметров. У подготовленных запросов есть два главных преимущества:

  • Запрос необходимо однажды подготовить и затем его можно запускать столько раз, сколько нужно, причем как с теми же, так и с отличающимися параметрами. Когда запрос подготовлен, СУБД анализирует его, компилирует и оптимизирует план его выполнения. В случае сложных запросов этот процесс может занимать ощутимое время и заметно замедлить работу приложения, если потребуется много раз выполнять запрос с разными параметрами. При использовании подготовленного запроса СУБД анализирует/компилирует/оптимизирует запрос любой сложности только один раз, а приложение запускает на выполнение уже подготовленный шаблон. Таким образом подготовленные запросы потребляют меньше ресурсов и работают быстрее.
  • Параметры подготовленного запроса не требуется экранировать кавычками; драйвер это делает автоматически. Если в приложении используются исключительно подготовленные запросы, разработчик может быть уверен, что никаких SQL-инъекций случиться не может (однако, если другие части текста запроса создаются с неэкранированным вводом, то SQL инъекция по-прежнему возможна).

Подготовленные запросы также полезны тем, что PDO может эмулировать их, если драйвер базы данных не имеет подобного функционала. Это значит, что приложение может пользоваться одной и той же методикой доступа к данным независимо от возможностей СУБД.

Пример #1 Повторяющиеся вставки в базу с использованием подготовленных запросов

В этом примере 2 раза выполняется INSERT запрос с разными значениями name и value, которые подставляются вместо соответствующих псевдопеременных:

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// вставим одну строку
$name = 'one';
$value = 1;
$stmt->execute();

// теперь другую строку с другими значениями
$name = 'two';
$value = 2;
$stmt->execute();
?>

Пример #2 Повторяющиеся вставки в базу с использованием подготовленных запросов

В этом примере 2 раза выполняется INSERT запрос с разными значениями name и value, которые подставляются вместо псевдопеременных ?.

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);

// вставим одну строку
$name = 'one';
$value = 1;
$stmt->execute();

// теперь другую строку с другими значениями
$name = 'two';
$value = 2;
$stmt->execute();
?>

Пример #3 Выборка данных с использованием подготовленных запросов

В этом примере производится выборка из базы по ключу, который вводит пользователь через форму. Пользовательский ввод автоматически заключается в кавычки, поэтому нет риска SQL иньекции.

<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET['name']))) {
  while ($row = $stmt->fetch()) {
    print_r($row);
  }
}
?>

Пример #4 Вызов хранимой процедуры с выходными параметрами

Если СУБД поддерживает выходные параметры, приложение может пользоваться ими также как и входными. Выходные параметры обычно используют для получения данных из хранимых процедур. Пользоваться выходными параметрами несколько сложнее, так как разработчику необходимо знать максимальный размер извлекаемых значений еще на этапе задания этих параметров. Если извлекаемое значение окажется больше, чем предполагалось, будет вызвана ошибка.

<?php
$stmt = $dbh->prepare("CALL sp_returns_string(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000);

// вызов хранимой процедуры
$stmt->execute();

print "процедура вернула $return_value\n";
?>

Пример #5 Вызов хранимой процедуры с входным/выходным параметром

Можно задать параметр одновременно входным и выходным; синтаксис при этом тот же, что и для выходных параметров. В следующем примере строка 'привет' передается в хранимую процедуру, а затем эта строка будет заменена возвращаемым значением.

<?php
$stmt = $dbh->prepare("CALL sp_takes_string_returns_string(?)");
$value = 'привет';
$stmt->bindParam(1, $value, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000);

// вызов хранимой процедуры
$stmt->execute();

print "процедура вернула $value\n";
?>

Пример #6 Неправильное использование псевдопеременной

<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name LIKE '%?%'");
$stmt->execute(array($_GET['name']));

// псевдопеременная может использоваться только в виде отдельного значения
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name LIKE ?");
$stmt->execute(array("%$_GET[name]%"));
?>


Ошибки и их обработка

PDO предлагает на выбор 3 стратегии обработки ошибок в зависимости от вашего стиля разработки приложений.

  • PDO::ERRMODE_SILENT

    Это режим по умолчанию. PDO просто предоставит вам код ошибки, который можно получить методами PDO::errorCode() и PDO::errorInfo(). Эти методы реализованы как в объектах запросов, так и в объектах баз данных. Если ошибка вызвана во время выполнения кода объекта запроса, нужно вызвать метод PDOStatement::errorCode() или PDOStatement::errorInfo() этого объекта. Если ошибка вызова объекта базы данных, нужно вызвать аналогичные методы у этого объекта.

  • PDO::ERRMODE_WARNING

    Помимо установки кода ошибки PDO выдаст обычное E_WARNING сообщение. Это может быть полезно при отладке или тестировании, когда нужно видеть, что произошло, но не нужно прерывать работу приложения.

  • PDO::ERRMODE_EXCEPTION

    Помимо задания кода ошибки PDO будет выбрасывать исключение PDOException, свойства которого будут отражать код ошибки и ее описание. Этот режим также полезен при отладке, так как сразу известно, где в программе произошла ошибка. Это позволяет быстро локализовать и решить проблему. (Не забывайте, что если исключение является причиной завершения работы скрипта, все активные транзакции будут откачены.)

    Режим исключений также полезен, так как дает возможность структурировать обработку ошибок более тщательно, нежели с обычными предупреждениями PHP, а также с меньшей вложенностью кода, чем в случае работы в тихом режиме с явной проверкой возвращаемых значений при каждом обращении к базе данных.

    Подробнее об исключениях в PHP см. в разделе Исключения.

PDO стандартизирован для работы со строковыми кодами ошибок SQL-92 SQLSTATE. Отдельные драйверы PDO могут задавать соответствия своих собственных кодов кодам SQLSTATE. Метод PDO::errorCode() возвращает одиночный код SQLSTATE. Если необходима специфичная информация об ошибке, PDO предлагает метод PDO::errorInfo(), который возвращает массив, содержащий код SQLSTATE, код ошибки драйвера, а также строку ошибки драйвера.

Пример #1 Создание PDO объекта и установка режима обработки ошибок

<?php
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
    $dbh = new PDO($dsn, $user, $password);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo 'Подключение не удалось: ' . $e->getMessage();
}

?>

Замечание:

Метод PDO::__construct() будет всегда бросать исключение PDOException, если соединение оборвалось, независимо от установленного значения PDO::ATTR_ERRMODE. Непойманные исключения фатальны.

Пример #2 Создание экземпляра класса PDO и установка режима обработки ошибок в конструкторе

<?php
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'googleguy';
$password = 'googleguy';

/*
    По-прежнему оберните конструктор в блок try/catch, так как, даже при установке ERRMODE в WARNING,
    PDO::__construct всегда будет бросать исключение PDOException, если соединение оборвалось.
*/
try {
    $dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
} catch (PDOException $e) {
    echo 'Соединение оборвалось: ' . $e->getMessage();
    exit;
}

// Следующий запрос приводит к ошибке уровня E_WARNING вместо исключения (когда таблица не существует)
$dbh->query("SELECT wrongcolumn FROM wrongtable");
?>

Результат выполнения данного примера:

Warning: PDO::query(): SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.wrongtable' doesn't exist in
/tmp/pdo_test.php on line 18


Большие объекты (LOB)

Иногда для работы приложения необходимо хранить "большие" порции данных в базе. Обычно, под большим понимают объем данных "около 4 килобайт или больше", хотя некоторые базы данных могут спокойно обрабатывать до 32 килобайт, прежде чем размер данных становится "большим". Большие объекты могут быть текстовыми или двоичными. PDO позволяет работать с такими объектами путем установки типа данных PDO::PARAM_LOB в методах PDOStatement::bindParam() или PDOStatement::bindColumn(). PDO::PARAM_LOB сообщает PDO, что нужно пометить эти данные, как поток. И соответственно работать с такими объектами можно, используя API потоков PHP.

Пример #1 Вывод изображения, хранящегося в базе данных

В этом примере переменной $lob задают в соответствие большой объект LOB, а затем отсылают ее в браузер с помощью функции fpassthru(). Так как LOB представляется в виде потока, с ним могут работать такие функции, как fgets(), fread() и stream_get_contents().

<?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);
?>

Пример #2 Вставка изображения в базу данных

В этом примере будет открывается файл с изображением, его файловый указатель передается PDO, который в свою очередь вставляет изображение в базу в виде LOB. PDO извлечет содержимое файла и поместит его в базу наиболее эффективным способом.

<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) values (?, ?, ?)");
$id = get_new_id(); // какая-то функция для выделения нового ID

// предположим, что мы находимся на странице загрузки файлов на удаленный сервер

$fp = fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

$db->beginTransaction();
$stmt->execute();
$db->commit();
?>

Пример #3 Вставка изображения в базу данных: Oracle

В случае с базами Oracle требуется несколько иной синтаксис для извлечения содержимого файла и помещения в базу. Также необходимо выполнять вставку в рамках транзакции, иначе вставленный LOB будет зафиксирован в базе с нулевой длиной, так как если не обозначить границы транзакции, изменения будут фиксироваться после каждого выполненного запроса.

<?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(); // какая-то функция для выделения ID

// предположим, что мы находимся на странице загрузки файлов на удаленный сервер

$fp = fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

$db->beginTransaction();
$stmt->execute();
$db->commit();
?>


Класс PDO

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

Введение

Представляет соединение между PHP и сервером базы данных.

Обзор классов

PDO {
public __construct ( string $dsn [, string $username [, string $passwd [, array $options ]]] )
public beginTransaction ( void ) : bool
public commit ( void ) : bool
public errorCode ( void ) : string
public errorInfo ( void ) : array
public exec ( string $statement ) : int
public getAttribute ( int $attribute ) : mixed
public static getAvailableDrivers ( void ) : array
public inTransaction ( void ) : bool
public lastInsertId ([ string $name = NULL ] ) : string
public prepare ( string $statement [, array $driver_options = array() ] ) : PDOStatement
public query ( string $statement ) : PDOStatement
public quote ( string $string [, int $parameter_type = PDO::PARAM_STR ] ) : string
public rollBack ( void ) : bool
public setAttribute ( int $attribute , mixed $value ) : bool
}

Содержание

  • PDO::beginTransaction — Инициализация транзакции
  • PDO::commit — Фиксирует транзакцию
  • PDO::__construct — Создает экземпляр PDO, предоставляющий соединение с базой данных
  • PDO::errorCode — Возвращает код SQLSTATE результата последней операции с базой данных
  • PDO::errorInfo — Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных
  • PDO::exec — Выполняет SQL-запрос и возвращает количество затронутых строк
  • PDO::getAttribute — Получить атрибут соединения с базой данных
  • PDO::getAvailableDrivers — Возвращает массив доступных драйверов PDO
  • PDO::inTransaction — Проверяет, начата ли транзакция
  • PDO::lastInsertId — Возвращает ID последней вставленной строки или значение последовательности
  • PDO::prepare — Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
  • PDO::query — Выполняет SQL-запрос и возвращает результирующий набор в виде объекта PDOStatement
  • PDO::quote — Заключает строку в кавычки для использования в запросе
  • PDO::rollBack — Откат транзакции
  • PDO::setAttribute — Установка атрибута


Инициализация транзакции

  • « PDO
  • PDO::commit »
  • PHP Manual
  • PDO
  • Инициализация транзакции

PDO::beginTransaction

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::beginTransaction — Инициализация транзакции

Описание

public PDO::beginTransaction ( void ) : bool

Выключает режим автоматической фиксации транзакции. В то время как режим автоматической фиксации выключен, изменения, внесенные в базу данных через объект экземпляра PDO, не применяются, пока вы не завершите транзакцию, вызвав PDO::commit(). Вызов PDO::rollBack() откатит все изменения в базе данных и вернет соединение к режиму автоматической фиксации.

Некоторые базы данных, включая MySQL, автоматически выполняют неявную фиксацию, когда выражения языка описания данных (DDL), такие как DROP TABLE или CREATE TABLE, находятся внутри транзакции. Неявная фиксация предотвратит вам откат любых изменений, сделанных в этой транзакции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Выбрасывает PDOException, если транзакция уже стартовала, либо если драйвер не поддерживает транзакции.

Замечание: Если аттрибут PDO::ATTR_ERRMODE не будет выставлен в PDO::ERRMODE_EXCEPTION, будет вызвано исключение.

Примеры

Пример #1 Откат транзакции

Следующий пример начинает транзакцию и выполняет два выражения, что изменяет базу данных до отката изменений. В MySQL, тем не менее, выражение DROP TABLE автоматически фиксирует транзакцию так, что ни одно из изменений транзакции не откатывается.

<?php
/* Начало транзакции, отключение автоматической фиксации */
$dbh->beginTransaction();

/* Изменение схемы базы данных и данных */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
    SET name = 'hamburger'");

/* Распознаем ошибку и откатываем изменения */
$dbh->rollBack();

/* Соединение с базой данных снова в режиме автоматической фиксации */
?>

Смотрите также

  • PDO::commit() - Фиксирует транзакцию
  • PDO::rollBack() - Откат транзакции
  • Транзакции и автоматическая фиксация


Фиксирует транзакцию

  • « PDO::beginTransaction
  • PDO::__construct »
  • PHP Manual
  • PDO
  • Фиксирует транзакцию

PDO::commit

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::commit — Фиксирует транзакцию

Описание

public PDO::commit ( void ) : bool

Фиксирует транзакцию, возвращая соединение с базой данных в режим автоматической фиксации до тех пор, пока следующий вызов PDO::beginTransaction() не начнет новую транзакцию.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает исключение PDOException, если нет активной транзакции.

Замечание: Если аттрибут PDO::ATTR_ERRMODE не будет выставлен в PDO::ERRMODE_EXCEPTION, будет вызвано исключение.

Примеры

Пример #1 Фиксация обычной транзакции

<?php
/* Начало транзакции, отключение автоматической фиксации */
$dbh->beginTransaction();

/* Вставка множества записей по принципу "все или ничего" */
$sql = 'INSERT INTO fruit
    (name, colour, calories)
    VALUES (?, ?, ?)';

$sth = $dbh->prepare($sql);

foreach ($fruits as $fruit) {
    $sth->execute(array(
        $fruit->name,
        $fruit->colour,
        $fruit->calories,
    ));
}

/* Фиксация изменений */
$dbh->commit();

/* Соединение с базой данных снова в режиме автоматической фиксации */
?>

Пример #2 Фиксация DDL-транзакции

<?php
/* Начало транзакции, отключение автоматической фиксации */
$dbh->beginTransaction();

/* Изменение схемы базы данных */
$sth = $dbh->exec("DROP TABLE fruit");

/* Фиксация изменений */
$dbh->commit();

/* Соединение с базой данных снова в режиме автоматической фиксации */
?>

Замечание: Не все базы данных позволяют транзакциям работать с DDL-выражениями: в некоторых генерируются ошибки, тогда как в других (включая MySQL) транзакция автоматически фиксируется после первого встретившегося DDL-выражения.

Смотрите также

  • PDO::beginTransaction() - Инициализация транзакции
  • PDO::rollBack() - Откат транзакции
  • Транзакции и автоматическая фиксация


Создает экземпляр PDO, предоставляющий соединение с базой данных

  • « PDO::commit
  • PDO::errorCode »
  • PHP Manual
  • PDO
  • Создает экземпляр PDO, предоставляющий соединение с базой данных

PDO::__construct

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::__construct — Создает экземпляр PDO, предоставляющий соединение с базой данных

Описание

public PDO::__construct ( string $dsn [, string $username [, string $passwd [, array $options ]]] )

Создает экземпляр PDO, предоставляющий подключение к необходимой базе данных.

Список параметров

dsn

Имя источника данных или DSN, содержащее информацию, необходимую для подключения к базе данных.

В общем, DSN состоит из имени драйвера PDO, за которым следует двоеточие и специфический синтаксис подключения драйвера PDO. Дополнительную информацию можно получить из раздела Документация по специфическим драйверам PDO.

Параметр dsn поддерживает три разные метода указания аргументов, необходимых для создания соединения с базой данных:

Вызов драйвера

dsn содержит полный DSN.

Вызов URI

Параметр dsn состоит из строки uri: с последующим URI, который определяет расположение файла, содержащего строку DSN. URI может указывать на локальный файл или удаленный URL.

uri:file:///path/to/dsnfile

Совмещение имен

dsn состоит из имени name, которое соответствует параметру pdo.dsn.name в php.ini, определяющему строку DSN.

Замечание:

Псевдоним должен быть определен в php.ini, но не в .htaccess или httpd.conf

username

Имя пользователя для строки DSN. Этот параметр опционален для некоторых драйверов PDO.

passwd

Пароль для строки DSN. Этот параметр опционален для некоторых драйверов PDO.

options

Массив ключ=>значение специфичных для драйвера настроек подключения.

Возвращаемые значения

Возвращает объект PDO в случае успеха.

Ошибки

PDO::__construct() выбрасывает исключение PDOException, если попытка подключения к запрашиваемой базе данных завершается с ошибкой.

Примеры

Пример #1 Создание экземпляра PDO через вызов драйвера

<?php
/* Подключение к базе данных MySQL с помощью вызова драйвера */
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Подключение не удалось: ' . $e->getMessage();
}

?>

Пример #2 Создание экземпляра PDO через вызов URI

В следующем примере предполагается, что файл /usr/local/dbconnect существует с правами доступа, которые позволяют PHP прочитать файл. Файл содержит PDO DSN для подключения к базе данных DB2 через драйвер PDO_ODBC:

odbc:DSN=SAMPLE;UID=john;PWD=mypass

PHP-скрипт может создать подключение к базе данных путем простой передачи параметра uri:, указывающим на файл URI:

<?php
/* Подключение к базе данных ODBC с помощью вызова драйвера */
$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Подключение не удалось: ' . $e->getMessage();
}

?>

Пример #3 Создание экземпляра PDO, используя псевдоним

В следующем примере предполагается, что php.ini содержит следующую запись, позволяющую подключиться к базе данных MySQL, используя только псевдоним mydb:

[PDO]
     pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
<?php
/* Подключение к базе данных ODBC, используя псевдоним */
$dsn = 'mydb';
$user = '';
$password = '';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Подключение не удалось: ' . $e->getMessage();
}

?>

Список изменений

Версия | Описание
5.3.0 | Классы, наследуемые от PDO и реализующие магический метод __call, теперь получают оригинальное название метода. Ранее имя метода всегда возвращалось в нижнем регистре.


Возвращает код SQLSTATE результата последней операции с базой данных

  • « PDO::__construct
  • PDO::errorInfo »
  • PHP Manual
  • PDO
  • Возвращает код SQLSTATE результата последней операции с базой данных

PDO::errorCode

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::errorCode — Возвращает код SQLSTATE результата последней операции с базой данных

Описание

public PDO::errorCode ( void ) : string

Возвращаемые значения

Возвращает SQLSTATE - пятисимвольный идентификатор, определенный в стандарте ANSI SQL-92. Первые два символа SQLSTATE отвечают за класс ошибки, а следующие три определяют ее подкласс. Класс ошибок 01 означает предупреждение, которому сопутствует возвращаемый код SQL_SUCCESS_WITH_INFO. Классы отличные от 01, за исключением 'IM', означают ошибки выполнения запросов к базе данных. Класс 'IM' свидетельствует об ошибках и предупреждениях, которые вызваны самой реализацией PDO (или, возможно, ODBC, если используется драйвер ODBC). Значение подкласса '000' в любом классе означает, что подкласс для этого SQLSTATE отсутствует.

PDO::errorCode() выдает код ошибки только для операций, совершаемых с базой данных напрямую из PDO. Если создать объект PDOStatement методами PDO::prepare() или PDO::query(), и вызвать ошибку его методами, PDO::errorCode() эту ошибку не отобразит. Вам нужно вызвать PDOStatement::errorCode(), чтобы получить код ошибки для операции, выполняемой на определенном объекте PDOStatement.

Возвращает NULL, если никаких операций над базой данных средствами PDO-объекта не производилось.

Примеры

Пример #1 Получение кода SQLSTATE

<?php
/* Спровоцируем ошибку -- таблицы BONES не существует */
$dbh->exec("INSERT INTO bones(skull) VALUES ('lucy')");

echo "\nPDO::errorCode(): ", $dbh->errorCode();
?>

Результат выполнения данного примера:

PDO::errorCode(): 42S02

Смотрите также

  • PDO::errorInfo() - Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных
  • PDOStatement::errorCode() - Получает код SQLSTATE, связанный с последней операцией в объекте PDOStatement
  • PDOStatement::errorInfo() - Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement


Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных

  • « PDO::errorCode
  • PDO::exec »
  • PHP Manual
  • PDO
  • Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных

PDO::errorInfo

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::errorInfo — Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных

Описание

public PDO::errorInfo ( void ) : array

Возвращаемые значения

PDO::errorInfo() возвращает массив с информацией об ошибке, произошедшей в ходе выполнения последней операции с базой данных. Массив содержит как минимум следующие поля:

Элемент | Информация
0 | Код ошибки SQLSTATE (пятисимвольный идентификатор, определенный в стандарте ANSI SQL).
1 | Код ошибки, заданный драйвером.
2 | Сообщение об ошибке, заданное драйвером

Замечание:

Если не задан SQLSTATE код или драйвер не сообщил об ошибке, то элементы следующие за нулевым будут иметь значение NULL.

PDO::errorInfo() выдает информацию об ошибке только для операций, совершаемых с базой данных напрямую из PDO. Если создать объект PDOStatement методами PDO::prepare() или PDO::query(), и вызвать ошибку его методами, PDO::errorInfo() эту ошибку не отобразит. Вам нужно вызвать PDOStatement::errorInfo(), чтобы получить информации об ошибках для операции, выполняемой на определенном объекте PDOStatement.

Примеры

Пример #1 Вывод полей массива errorInfo() для PDO_ODBC подключения к базе данных DB2

<?php
/* Спровоцируем синтаксическую ошибку SQL */
$stmt = $dbh->prepare('bogus sql');
if (!$stmt) {
    echo "\nPDO::errorInfo():\n";
    print_r($dbh->errorInfo());
}
?>

Результат выполнения данного примера:

PDO::errorInfo():
Array
(
    [0] => HY000
    [1] => 1
    [2] => near "bogus": syntax error
)

Смотрите также

  • PDO::errorCode() - Возвращает код SQLSTATE результата последней операции с базой данных
  • PDOStatement::errorCode() - Получает код SQLSTATE, связанный с последней операцией в объекте PDOStatement
  • PDOStatement::errorInfo() - Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement


Выполняет SQL-запрос и возвращает количество затронутых строк

  • « PDO::errorInfo
  • PDO::getAttribute »
  • PHP Manual
  • PDO
  • Выполняет SQL-запрос и возвращает количество затронутых строк

PDO::exec

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::exec — Выполняет SQL-запрос и возвращает количество затронутых строк

Описание

public PDO::exec ( string $statement ) : int

PDO::exec() запускает SQL-запрос на выполнение и возвращает количество строк, задействованых в ходе его выполнения.

PDO::exec() не возвращает результат выборки оператором SELECT. Если вам нужно выбрать данные этим оператором единожды в ходе выполнения программы, воспользуйтесь методом PDO::query(). Если требуется запускать один и тот же запрос на выборку множество раз, лучше создать подготовленный запрос PDOStatement методом PDO::prepare(), а затем запускать его методом PDOStatement::execute() столько раз, сколько потребуется.

Список параметров

statement

SQL-выражение, которое необходимо подготовить и запустить.

Данные внутри запроса должны быть правильно экранированы.

Возвращаемые значения

PDO::exec() возвращает количество строк, которые были модифицированы или удалены в ходе его выполнения. Если таких строк нет, PDO::exec() вернет 0.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

В этом примере разработчик допустил ошибку, полагаясь на возвращаемый результат PDO::exec(). В результате, если запрос отработал без ошибок, но не модифицировал ни одной строки, работа скрипта будет завершена функцией die():

<?php
$db->exec() or die(print_r($db->errorInfo(), true)); // неправильно
?>

Примеры

Пример #1 Выполнение запроса DELETE

Получение количества удаленных записей запросом DELETE без условий WHERE.

<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

/* Удаляем все записи из таблицы FRUIT */
$count = $dbh->exec("DELETE FROM fruit");

/* Получим количество удаленных записей */
print("Удалено $count строк.\n");
?>

Результат выполнения данного примера:

Удалено 1 строк.

Смотрите также

  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
  • PDO::query() - Выполняет SQL-запрос и возвращает результирующий набор в виде объекта PDOStatement
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение


Получить атрибут соединения с базой данных

  • « PDO::exec
  • PDO::getAvailableDrivers »
  • PHP Manual
  • PDO
  • Получить атрибут соединения с базой данных

PDO::getAttribute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDO::getAttribute — Получить атрибут соединения с базой данных

Описание

public PDO::getAttribute ( int $attribute ) : mixed

Эта функция возвращает значение атрибута соединения с базой данных. Чтобы получить атрибуты PDOStatement, обратитесь к PDOStatement::getAttribute().

Обратите внимание, что некоторые комбинации базы данных/драйверов могут не поддерживать всех атрибутов соединения с базой данных.

Список параметров

attribute

Одни из PDO::ATTR_* констант. Следующие константы применяются для соединений с базами данных:

  • 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

Возвращаемые значения

Успешный вызов возвращает значение запрашиваемого атрибута PDO. Неудачный вызов возвращает null.

Примеры

Пример #1 Получение атрибутов соединения с базой данных

<?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
  • PDOStatement::setAttribute() - Устанавливает атрибут объекту PDOStatement


Возвращает массив доступных драйверов PDO

  • « PDO::getAttribute
  • PDO::inTransaction »
  • PHP Manual
  • PDO
  • Возвращает массив доступных драйверов PDO

PDO::getAvailableDrivers

pdo_drivers

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 1.0.3)

PDO::getAvailableDrivers -- pdo_drivers — Возвращает массив доступных драйверов PDO

Описание

public static PDO::getAvailableDrivers ( void ) : array
pdo_drivers ( void ) : array

Эта функция возвращает все имеющиеся в настоящее время драйверы PDO, которые можно использовать в DSN-параметре PDO::__construct().

Возвращаемые значения

Функция PDO::getAvailableDrivers() возвращает массив имен драйверов PDO. Если нет драйверов, то возвращается пустой массив.

Примеры

Пример #1 Пример выполнения PDO::getAvailableDrivers()

<?php
print_r(PDO::getAvailableDrivers());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => mysql
    [1] => sqlite
)


Проверяет, начата ли транзакция

  • « PDO::getAvailableDrivers
  • PDO::lastInsertId »
  • PHP Manual
  • PDO
  • Проверяет, начата ли транзакция

PDO::inTransaction

(PHP 5 >= 5.3.3, Bundled pdo_pgsql, PHP 7)

PDO::inTransaction — Проверяет, начата ли транзакция

Описание

public PDO::inTransaction ( void ) : bool

Проверяет, активна ли в данный момент транзакция в драйвере. Этот метод работает только для драйверов баз данных, которые поддерживают транзакции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если транзакция в данный момент активна и FALSE, если нет.


Возвращает ID последней вставленной строки или значение последовательности

  • « PDO::inTransaction
  • PDO::prepare »
  • PHP Manual
  • PDO
  • Возвращает ID последней вставленной строки или значение последовательности

PDO::lastInsertId

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::lastInsertId — Возвращает ID последней вставленной строки или значение последовательности

Описание

public PDO::lastInsertId ([ string $name = NULL ] ) : string

Возвращает ID последней вставленной строки или последнее значение от объекта последовательности, в зависимости от базового драйвера. Например, PDO_PGSQL требует задать имя объекта последовательности для параметра name.

Замечание:

В зависимости от драйвера PDO этот метод может вообще не выдать осмысленного результата, так как база данных может не поддерживать автоматического инкремента полей или последовательностей.

Список параметров

name

Имя объекта последовательности, который должен выдать ID.

Возвращаемые значения

Если объект последовательности для name не задан, PDO::lastInsertId() вернет строку, представляющую ID последней добавленной в базу записи.

Если же объект последовательности для name задан, PDO::lastInsertId() вернет строку, представляющую последнее значение, полученное от этого объекта.

Если PDO драйвер не поддерживает эту возможность, PDO::lastInsertId() запишет IM001 в SQLSTATE.


Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект

  • « PDO::lastInsertId
  • PDO::query »
  • PHP Manual
  • PDO
  • Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект

PDO::prepare

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::prepare — Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект

Описание

public PDO::prepare ( string $statement [, array $driver_options = array() ] ) : PDOStatement

Подготавливает SQL-запрос к базе данных к запуску посредством метода PDOStatement::execute(). Запрос может содержать именованные (:name) или неименованные (?) псевдопеременные, которые будут заменены реальными значениями во время запуска запроса на выполнение. Использовать одновременно и именованные, и неименованные псевдопеременные в одном запросе нельзя, необходимо выбрать что-то одно. Используйте псевдопеременные, чтобы привязать к запросу пользовательский ввод, не включайте данные, введенные пользователем, напрямую в запрос.

Вы должны подбирать уникальные имена псевдопеременных для каждого значения, которое необходимо передавать в запрос при вызове PDOStatement::execute(). Нельзя использовать одну псевдопеременную в запросе более одного раза, кроме варианта, когда включен режим эмуляции.

Замечание:

Псевдопеременные должны представлять только единичный объем данных. Не часть значения, ни служебное слово, ни имя поля, ни какую либо произвольную часть запроса. К примеру, вы не можете связать псевдопеременную с несколькими значениями для вставки в конструкцию IN().

Вызов PDO::prepare() и PDOStatement::execute() для запросов, которые будут запускаться многократно с различными параметрами, повышает производительность приложения, позволяя драйверу кешировать на клиенте и/или сервере план выполнения запроса и метаданные, а также помогает избежать SQL-иньекций, так как нет необходимости экранировать передаваемые параметры.

Если драйвер не поддерживает подготавливаемые запросы, PDO умеет их эмулировать, а также может заменять псевдопеременные на то, что больше подходит, если, например, драйвер поддерживает только именованные или, наоборот, только неименованные псевдопеременные.

Список параметров

statement

Это должен быть корректный SQL-запрос с точки зрения целевой СУБД.

driver_options

Этот массив содержит одну или более пар ключ=>значение для установки значений атрибутов объекта PDOStatement, который будет возвращен из этого метода. В основном, вы будете использовать этот массив для присвоения значения PDO::ATTR_CURSOR атрибуту PDO::CURSOR_SCROLL, чтобы получить прокручиваемый курсор. У некоторых драйверов могут быть свои специфические настройки, которые можно задать во время подготовки запроса.

Возвращаемые значения

Если СУБД успешно подготовила запрос, PDO::prepare() возвращает объект PDOStatement. Если подготовить запрос не удалось, PDO::prepare() возвращает FALSE или выбрасывает исключение PDOException (зависит от текущего режима обработки ошибок).

Замечание:

Эмулируемые подготовленные запросы не создаются на сервере баз данных, поэтому PDO::prepare() не может проверить правильность построенного запроса.

Примеры

Пример #1 Подготовка SQL-запроса с именованными параметрами

<?php
/* Выполнение запроса с передачей ему массива параметров */
$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 Подготовка SQL-запроса с неименованными параметрами (символ '?')

<?php
/* Выполнение запроса с передачей ему массива параметров */
$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() - Выполняет SQL-запрос и возвращает количество затронутых строк
  • PDO::query() - Выполняет SQL-запрос и возвращает результирующий набор в виде объекта PDOStatement
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение


Выполняет SQL-запрос и возвращает результирующий набор в виде объекта PDOStatement

  • « PDO::prepare
  • PDO::quote »
  • PHP Manual
  • PDO
  • Выполняет SQL-запрос и возвращает результирующий набор в виде объекта PDOStatement

PDO::query

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDO::query — Выполняет SQL-запрос и возвращает результирующий набор в виде объекта PDOStatement

Описание

public PDO::query ( string $statement ) : PDOStatement
public PDO::query ( string $statement , int $fetch_style = PDO::FETCH_COLUMN , int $colno ) : PDOStatement
public PDO::query ( string $statement , int $fetch_style = PDO::FETCH_CLASS , string $classname , array $ctorargs ) : PDOStatement
public PDO::query ( string $statement , int $fetch_style = PDO::FETCH_INTO , object $object ) : PDOStatement

PDO::query() выполняет SQL-запрос без подготовки и возвращает результирующий набор (если есть) в виде объекта PDOStatement.

Если запрос будет запускаться многократно, для улучшения производительности приложения имеет смысл этот запрос один раз подготовить методом PDO::prepare(), а затем запускать на выполнение методом PDOStatement::execute() столько раз, сколько потребуется.

Если после выполнения предыдущего запроса вы не выбрали все данные из результирующего набора, следующий вызов PDO::query() может потерпеть неудачу. В таких случаях следует вызывать метод PDOStatement::closeCursor(), который освободит ресурсы базы данных, занятые предыдущим объектом PDOStatement. После этого можно безопасно вызывать PDO::query().

Замечание:

Если передано более двух аргументов, то они будут обработаны, как если бы вы вызвали PDOStatement::setFetchMode() применительно к возвращаемому объекту.

Список параметров

statement

SQL-запрос для подготовки и выполнения.

Данные в запросе должны быть правильно экранированы.

Возвращаемые значения

PDO::query() возвращает объект PDOStatement или FALSE, если запрос выполнить не удалось.

Примеры

Пример #1 Демонстрация работы PDO::query

Приятной особенностью PDO::query() является то, что после выполнения запроса SELECT можно сразу работать с результирующим набором посредством курсора.

<?php
$sql = 'SELECT name, color, calories FROM fruit ORDER BY name';
foreach ($conn->query($sql) as $row) {
    print $row['name'] . "\t";
    print $row['color'] . "\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() - Выполняет SQL-запрос и возвращает количество затронутых строк
  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение


Заключает строку в кавычки для использования в запросе

  • « PDO::query
  • PDO::rollBack »
  • PHP Manual
  • PDO
  • Заключает строку в кавычки для использования в запросе

PDO::quote

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.1)

PDO::quote — Заключает строку в кавычки для использования в запросе

Описание

public PDO::quote ( string $string [, int $parameter_type = PDO::PARAM_STR ] ) : string

PDO::quote() заключает строку в кавычки (если требуется) и экранирует специальные символы внутри строки подходящим для драйвера способом.

Если вы используете эту функцию для построения SQL запросов, настоятельно рекомендуется пользоваться методом PDO::prepare() для подготовки запроса с псевдопеременными вместо использования PDO::quote() для вставки данных введенных пользователем в SQL запрос. Подготавливаемые запросы с параметрами не только компактней, удобней, устойчивей к SQL-инъекции, но и работают быстрее, нежели вручную построенные запросы, так как клиент и сервер могут кешировать такие запросы в уже скомпилированном виде.

Не все драйверы PDO реализуют этот метод (особенно PDO_ODBC). Предполагается, что вместо него будут использоваться подготавливаемые запросы.

Предостережение

Безопасность: набор символов по умолчанию

Для корректной работы PDO::quote() набор символов должен быть задан либо на сервере, либо задаваться самим соединением с базой данных (это зависит от драйвера). Подробнее см. документацию к драйверу базы данных.

Список параметров

string

Экранируемая строка.

parameter_type

Представляет подсказку о типе данных первого параметра для драйверов, которые имеют альтернативные способы экранирования.

Возвращаемые значения

Возвращает экранированную строку, которую теоретически безопасно использовать в теле SQL запроса. Возвращает FALSE, если драйвер не поддерживает экранирование.

Примеры

Пример #1 Экранирование обычной строки

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* простая строка */
$string = 'Nice';
print "Неэкранированная строка: $string\n";
print "Экранированная строка: " . $conn->quote($string) . "\n";
?>

Результат выполнения данного примера:

Неэкранированная строка: Nice
Экранированная строка: 'Nice'

Пример #2 Экранирование небезопасной строки

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* небезопасная строка */
$string = 'Naughty \' string';
print "Неэкранированная строка: $string\n";
print "Экранированная строка:" . $conn->quote($string) . "\n";
?>

Результат выполнения данного примера:

Неэкранированная строка: Naughty ' string
Экранированная строка: 'Naughty '' string'

Пример #3 Экранирование сложной строки

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* сложная строка */
$string = "Co'mpl''ex \"st'\"ring";
print "Неэкранированная строка: $string\n";
print "Экранированная строка: " . $conn->quote($string) . "\n";
?>

Результат выполнения данного примера:

Неэкранированная строка: Co'mpl''ex "st'"ring
Экранированная строка: 'Co''mpl''''ex "st''"ring'

Смотрите также

  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение


Откат транзакции

  • « PDO::quote
  • PDO::setAttribute »
  • PHP Manual
  • PDO
  • Откат транзакции

PDO::rollBack

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::rollBack — Откат транзакции

Описание

public PDO::rollBack ( void ) : bool

Откатывает изменения в базе данных сделанные в рамках текущей транзакции, которая была создана методом PDO::beginTransaction().

Если в СУБД включен режим автофиксации изменений, эта функция восстановит этот режим после отката.

Некоторые СУБД, включая MySQL, автоматически неявно фиксируют изменения, когда встречаются выражения языка определения базы данных (DDL), выполняемые в рамках транзакции. Эта неявная фиксация делает невозможным откат других изменений, сделанных в рамках этой транзакции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Если активной транзакции нет, будет выброшено исключение PDOException.

Замечание: Если аттрибут PDO::ATTR_ERRMODE не будет выставлен в PDO::ERRMODE_EXCEPTION, будет вызвано исключение.

Примеры

Пример #1 Откат транзакции

В следующем примере создается транзакция и выполняются два запроса, которые модифицируют данные в базе, а затем база возвращается к исходному состоянию. В MySQL, тем не менее, выражение DROP TABLE автоматически фиксирует изменения, поэтому их откат не произойдет.

<?php
/* Начинаем транзакцию, отключение автоматической фиксации */
$dbh->beginTransaction();

/* Изменяем схему базы данных и данные в таблицах */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
    SET name = 'hamburger'");

/* Осознаем свою ошибку и откатываем транзакцию */
$dbh->rollBack();

/* База данных возвращается в режим автофиксации */
?>

Смотрите также

  • PDO::beginTransaction() - Инициализация транзакции
  • PDO::commit() - Фиксирует транзакцию
  • Транзакции и автофиксация изменений


Установка атрибута

  • « PDO::rollBack
  • PDOStatement »
  • PHP Manual
  • PDO
  • Установка атрибута

PDO::setAttribute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::setAttribute — Установка атрибута

Описание

public PDO::setAttribute ( int $attribute , mixed $value ) : bool

Устанавливает атрибут объекту PDO. Некоторые основные атрибуты приведены ниже; отдельные драйверы могут имеет свои дополнительные атрибуты.

  • PDO::ATTR_CASE: Приводить имена столбцов к заданному регистру.

    • PDO::CASE_LOWER: Приводить имена столбцов к нижнему регистру.

    • PDO::CASE_NATURAL: Оставлять имена столбцов в том виде, в котором они были возвращены драйвером.

    • PDO::CASE_UPPER: Приводить имена столбцов к верхнему регистру.

  • PDO::ATTR_ERRMODE: Режим сообщений об ошибках.

    • PDO::ERRMODE_SILENT: Только установка кодов ошибок.

    • PDO::ERRMODE_WARNING: Вызывать E_WARNING.

    • PDO::ERRMODE_EXCEPTION: Выбрасывать исключения.

  • PDO::ATTR_ORACLE_NULLS (доступен для всех драйверов, не только для Oracle): Преобразование NULL в пустые строки.

    • PDO::NULL_NATURAL: Без преобразования.

    • PDO::NULL_EMPTY_STRING: Пустые строки преобразовывать в NULL.

    • PDO::NULL_TO_STRING: NULL преобразовывать в пустые строки.

  • PDO::ATTR_STRINGIFY_FETCHES: Преобразовывать числовые значения в строки во время выборки. Требует значение типа bool.

  • PDO::ATTR_STATEMENT_CLASS: Задает пользовательский класс, производный от PDOStatement. Не может использоваться с объектами PDO, использующими постоянные соединения. Принимает массив array(string classname, array(mixed constructor_args)).

  • PDO::ATTR_TIMEOUT: Задает тайм-аут в секундах. Не все драйверы поддерживают эту опцию. Также назначение этого тайм-аута может отличаться в разных драйверах. Например, sqlite будет ждать это количество времени для получения блокировки на запись. А другие драйверы могут использовать его, как тайм-аут подключения или чтения. Атрибут принимает значение типа int.

  • PDO::ATTR_AUTOCOMMIT (доступен в OCI, Firebird и MySQL): Требуется ли автоматическая фиксация каждого отдельного выражения в запросе.

  • PDO::ATTR_EMULATE_PREPARES Включение или выключение эмуляции подготавливаемых запросов. Некоторые драйверы не поддерживают подготавливаемые запросы, либо их поддержка ограничена. Эта настройка указывает PDO всегда эмулировать подготавливаемые запросы (если TRUE и эмуляция поддерживается драйвером) или пытаться использовать собственные подготавливаемые запросы (если FALSE). Если драйвер не сможет подготовить запрос, эта настройка сбросится в режим эмуляции. Требует значение типа bool.

  • PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (доступен в MySQL): Использовать буферизованные запросы.

  • PDO::ATTR_DEFAULT_FETCH_MODE: Устанавливает режим выборки данных по умолчанию. Описание возможных режимов приведено в документации к методу PDOStatement::fetch().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Класс PDOStatement

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 1.0.0)

Введение

Представляет подготовленный запрос к базе данных, а после выполнения запроса соответствующий результирующий набор.

Обзор классов

PDOStatement implements Traversable {
/* Свойства */
readonly string $queryString;
/* Методы */
public bindColumn ( mixed $column , mixed &$param [, int $type [, int $maxlen [, mixed $driverdata ]]] ) : bool
public bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] ) : bool
public bindValue ( mixed $parameter , mixed $value [, int $data_type = PDO::PARAM_STR ] ) : bool
public closeCursor ( void ) : bool
public columnCount ( void ) : int
public debugDumpParams ( void ) : void
public errorCode ( void ) : string
public errorInfo ( void ) : array
public execute ([ array $input_parameters ] ) : bool
public fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] ) : mixed
public fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] ) : array
public fetchColumn ([ int $column_number = 0 ] ) : mixed
public fetchObject ([ string $class_name = "stdClass" [, array $ctor_args ]] ) : mixed
public getAttribute ( int $attribute ) : mixed
public getColumnMeta ( int $column ) : array
public nextRowset ( void ) : bool
public rowCount ( void ) : int
public setAttribute ( int $attribute , mixed $value ) : bool
public setFetchMode ( int $mode ) : bool
}

Свойства

queryString

Используемая строка запроса.

Содержание

  • PDOStatement::bindColumn — Связывает столбец с переменной PHP
  • PDOStatement::bindParam — Привязывает параметр запроса к переменной
  • PDOStatement::bindValue — Связывает параметр с заданным значением
  • PDOStatement::closeCursor — Закрывает курсор, переводя запрос в состояние готовности к повторному запуску
  • PDOStatement::columnCount — Возвращает количество столбцов в результирующем наборе
  • PDOStatement::debugDumpParams — Вывод информации о подготовленной SQL-команде в целях отладки
  • PDOStatement::errorCode — Получает код SQLSTATE, связанный с последней операцией в объекте PDOStatement
  • PDOStatement::errorInfo — Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement
  • PDOStatement::execute — Запускает подготовленный запрос на выполнение
  • PDOStatement::fetch — Извлечение следующей строки из результирующего набора
  • PDOStatement::fetchAll — Возвращает массив, содержащий все строки результирующего набора
  • PDOStatement::fetchColumn — Возвращает данные одного столбца следующей строки результирующего набора
  • PDOStatement::fetchObject — Извлекает следующую строку и возвращает ее в виде объекта
  • PDOStatement::getAttribute — Получение значения атрибута запроса PDOStatement
  • PDOStatement::getColumnMeta — Возвращает метаданные столбца в результирующей таблице
  • PDOStatement::nextRowset — Переход к следующему набору строк в результате запроса
  • PDOStatement::rowCount — Возвращает количество строк, затронутых последним SQL-запросом
  • PDOStatement::setAttribute — Устанавливает атрибут объекту PDOStatement
  • PDOStatement::setFetchMode — Устанавливает режим выборки по умолчанию для объекта запроса


Связывает столбец с переменной PHP

  • « PDOStatement
  • PDOStatement::bindParam »
  • PHP Manual
  • PDOStatement
  • Связывает столбец с переменной PHP

PDOStatement::bindColumn

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::bindColumn — Связывает столбец с переменной PHP

Описание

public PDOStatement::bindColumn ( mixed $column , mixed &$param [, int $type [, int $maxlen [, mixed $driverdata ]]] ) : bool

PDOStatement::bindColumn() привязывает переменную к заданному столбцу в результирующем наборе запроса. Каждый вызов PDOStatement::fetch() или PDOStatement::fetchAll() будет обновлять все переменные, задавать им значения столбцов, с которыми они связаны.

Замечание:

В связи с тем, что информация о столбцах результирующего набора запроса не всегда доступна объекту PDO, пока запрос не будет запущен, приложениям следует вызывать этот метод после вызова PDOStatement::execute().

Однако, при работе с драйвером PgSQL, когда привязывается столбец с LOB-данными, приложению необходимо вызывать этот метод до вызова PDOStatement::execute(). В противном случае идентификатор большого объекта OID будет иметь тип integer.

Список параметров

column

Номер столбца (начиная с 1) или его имя в результирующем наборе запроса. Используя имя столбца, имейте в виду, что имя должно быть в том же регистре, в каком оно возвращено драйвером.

param

Имя переменной PHP, к которой требуется привязать столбец.

type

Тип данных параметра, заданный одной из констант PDO::PARAM_*.

maxlen

Подсказка для предварительного выделения памяти под переменную.

driverdata

Дополнительные параметры для драйвера.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Связывание результирующего набора с переменными PHP

Привязывание столбцов результирующего набора к PHP переменным является эффективным способом сразу сделать данные каждой строки набора доступными приложению. В следующем примере показано, как PDO позволяет привязывать переменные и получать данные столбцов, принимая различные настройки и умолчания.

<?php
function readData($dbh) {
  $sql = 'SELECT name, colour, calories FROM fruit';
  try {
    $stmt = $dbh->prepare($sql);
    $stmt->execute();

    /* Связывание по номеру столбца */
    $stmt->bindColumn(1, $name);
    $stmt->bindColumn(2, $colour);

    /* Связывание по имени столбца */
    $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() - Возвращает данные одного столбца следующей строки результирующего набора


Привязывает параметр запроса к переменной

  • « PDOStatement::bindColumn
  • PDOStatement::bindValue »
  • PHP Manual
  • PDOStatement
  • Привязывает параметр запроса к переменной

PDOStatement::bindParam

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::bindParam — Привязывает параметр запроса к переменной

Описание

public PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] ) : bool

Связывает переменную PHP с именованным или неименованным параметром подготавливаемого SQL-запроса. В отличие от PDOStatement::bindValue(), переменная привязывается по ссылке и ее значение будет вычисляться во время вызова PDOStatement::execute().

В большинстве случаев в подготавливаемых запросах используются только входные параметры, то есть при построении запроса доступ к ним осуществляется только в режиме чтения. Тем не менее, некоторые драйверы позволяют запускать хранимые процедуры, которые, в свою очередь, могут возвращать данные посредством выходных параметров. Зачастую, такие параметры используются одновременно как входные и как выходные.

Список параметров

parameter

Идентификатор параметра. Для подготавливаемых запросов с именованными параметрами это будет имя в виде :name. Если используются неименованные параметры (знаки вопроса ?) это будет позиция псевдопеременной в запросе (начиная с 1).

variable

Имя переменной PHP, которую требуется привязать к параметру SQL-запроса.

data_type

Явно заданный тип данных параметра. Тип задается одной из констант PDO::PARAM_*. Если параметр используется в том числе для вывода информации из хранимой процедуры, к значению аргумента data_type необходимо добавить PDO::PARAM_INPUT_OUTPUT, используя оператор побитовое ИЛИ.

length

Размер типа данных. Чтобы указать, что параметр используется для вывода данных из хранимой процедуры, необходимо явно задать его размер.

driver_options

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Выполнение подготовленного запроса с именованными псевдопеременными

<?php
/* Выполнение запроса с привязкой PHP-переменных */
$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 Выполнение подготовленного запроса с неименованными псевдопеременными (?)

<?php
/* Выполнение запроса с привязкой PHP-переменных */
$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 Вызов хранимой процедуры с INOUT-параметром

<?php
/* Вызов хранимой процедуры с INOUT-параметром */
$colour = 'red';
$sth = $dbh->prepare('CALL puree_fruit(?)');
$sth->bindParam(1, $colour, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 12);
$sth->execute();
print("После приготовления фруктового пюра, цвет - $colour");
?>

Смотрите также

  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение
  • PDOStatement::bindValue() - Связывает параметр с заданным значением


Связывает параметр с заданным значением

  • « PDOStatement::bindParam
  • PDOStatement::closeCursor »
  • PHP Manual
  • PDOStatement
  • Связывает параметр с заданным значением

PDOStatement::bindValue

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 1.0.0)

PDOStatement::bindValue — Связывает параметр с заданным значением

Описание

public PDOStatement::bindValue ( mixed $parameter , mixed $value [, int $data_type = PDO::PARAM_STR ] ) : bool

Задает значение именованной или неименованной псевдопеременной в подготовленном SQL-запросе.

Список параметров

parameter

Идентификатор параметра запроса. Для подготавливаемых запросов с именованными параметрами это будет имя в виде :name. Если используются неименованные параметры (знаки вопроса ?) это будет позиция псевдопеременной в запросе (начиная с 1).

value

Значение, которое требуется привязать к параметру.

data_type

Явно заданный тип данных параметра. Тип задается одной из констант PDO::PARAM_*.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Выполнение подготовленного запроса с именованными псевдопеременными

<?php
/* Выполнение запроса с привязкой PHP-переменных */
$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 Выполнение подготовленного запроса с неименованными псевдопеременными (?)

<?php
/* Выполнение запроса с привязкой PHP-переменных */
$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::bindValue
  • PDOStatement::columnCount »
  • PHP Manual
  • PDOStatement
  • Закрывает курсор, переводя запрос в состояние готовности к повторному запуску

PDOStatement::closeCursor

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)

PDOStatement::closeCursor — Закрывает курсор, переводя запрос в состояние готовности к повторному запуску

Описание

public PDOStatement::closeCursor ( void ) : bool

PDOStatement::closeCursor() освобождает соединение с сервером, давая возможность запускать другие SQL-запросы. Метод оставляет запрос в состоянии готовности к повторному запуску.

Этот метод полезен при использовании драйверов баз данных, которые не позволяют запустить PDOStatement, пока предыдущий объект PDOStatement не выберет все данные из результирующего набора. Если это ограничение распространяется на ваш драйвер, будет вызвана ошибка нарушения последовательности запросов (out-of-sequence error).

PDOStatement::closeCursor() может быть реализован как дополнительный метод конкретного драйвера (позволяющий добиться максимальной эффективности работы), либо как внутренний метод PDO, если такой функции в драйвере нет. Реализация внутреннего метода PDO семантически схожа с приведенной ниже:

<?php
do {
    while ($stmt->fetch())
        ;
    if (!$stmt->nextRowset())
        break;
} while (true);
?>

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования PDOStatement::closeCursor()

В приведенном примере, объект PDOStatement $stmt возвращает несколько строк, однако приложение считывает только первую из них, оставляя объект PDOStatement в состоянии, когда есть еще невыбранные строки. Чтобы быть уверенным в том, что приложение будет работать со всеми драйверами баз данных, автор добавил вызов метода PDOStatement::closeCursor() объекта $stmt перед тем как запустить другой запрос PDOStatement $otherStmt.

<?php
/* Создание объекта PDOStatement */
$stmt = $dbh->prepare('SELECT foo FROM bar');

/* Создание другого объекта PDOStatement */
$otherStmt = $dbh->prepare('SELECT foobaz FROM foobar');

/* Выполнение первого запроса */
$stmt->execute();

/* Выборка только первой строки результирующего набора первого запроса */
$stmt->fetch();

/* Следующий вызов closeCursor() может быть обязательным для некоторых драйверов */
$stmt->closeCursor();

/* теперь можно запускать второй запрос */
$otherStmt->execute();
?>

Смотрите также

  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение


Возвращает количество столбцов в результирующем наборе

  • « PDOStatement::closeCursor
  • PDOStatement::debugDumpParams »
  • PHP Manual
  • PDOStatement
  • Возвращает количество столбцов в результирующем наборе

PDOStatement::columnCount

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::columnCount — Возвращает количество столбцов в результирующем наборе

Описание

public PDOStatement::columnCount ( void ) : int

Используйте PDOStatement::columnCount(), чтобы узнать количество столбцов в результирующем наборе, который представляет объект PDOStatement.

Если объект PDOStatement был возвращен из метода PDO::query(), число столбцов можно узнать сразу же.

Если объект PDOStatement был возвращен из метода PDO::prepare(), точное количество столбцов можно будет узнать только после запуска метода PDOStatement::execute().

Возвращаемые значения

Возвращает количество столбцов в результирующем наборе запроса PDOStatement, даже если он пуст. Если результирующего набора нет, PDOStatement::columnCount() возвращает 0.

Примеры

Пример #1 Подсчет столбцов

В этом примере показано, как PDOStatement::columnCount() работает в случае наличия и отсутствия результирующего набора.

<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

$sth = $dbh->prepare("SELECT name, colour FROM fruit");

/* Подсчет количества столбцов в (несуществующем) результирующем наборе */
$colcount = $sth->columnCount();
print("Перед вызовом execute(), в результирующем наборе $colcount столбцов (должно быть 0)\n");

$sth->execute();

/* Подсчет количества столбцов в результирующем наборе */
$colcount = $sth->columnCount();
print("После вызова execute(), в результирующем наборе $colcount столбцов (должно быть 2)\n");

?>

Результат выполнения данного примера:

Перед вызовом execute(), в результирующем наборе 0 столбцов (должно быть 0)
После вызова execute(), в результирующем наборе 2 столбцов (должно быть 2)

Смотрите также

  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение
  • PDOStatement::rowCount() - Возвращает количество строк, затронутых последним SQL-запросом


Вывод информации о подготовленной SQL-команде в целях отладки

  • « PDOStatement::columnCount
  • PDOStatement::errorCode »
  • PHP Manual
  • PDOStatement
  • Вывод информации о подготовленной SQL-команде в целях отладки

PDOStatement::debugDumpParams

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)

PDOStatement::debugDumpParams — Вывод информации о подготовленной SQL-команде в целях отладки

Описание

public PDOStatement::debugDumpParams ( void ) : void

Выводит информацию о подготовленном запросе в выходной поток. Будет выводиться текст используемого SQL запроса, количество задействованных параметров (Params), список параметров с их именами ключей или индексами, их именами, индексами в запросе (если поддерживается в драйвере PDO, иначе -1), типом (param_type) в виде целого числа и логическое значение is_param.

Это отладочная функция, которая направляет данные на стандартный вывод.

Подсказка

Как и с любой другой функцией, осуществляющей вывод непосредственно в браузер, вы можете использовать функции контроля вывода, чтобы перехватывать выводимые этой функцией данные и сохранять их, например, в строку (string).

Эта функция выведет информацию о параметрах запроса, существующих на момент вызова. Дополнительные параметры не хранятся в запросе, поэтому отображены не будут.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования PDOStatement::debugDumpParams() с именованными параметрами

<?php
/* Выполнение запроса с привязкой PHP переменных */
$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->bindValue(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();

$sth->debugDumpParams();

?>

Результат выполнения данного примера:

SQL: [96] SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour
Params:  2
Key: Name: [9] :calories
paramno=-1
name=[9] ":calories"
is_param=1
param_type=1
Key: Name: [7] :colour
paramno=-1
name=[7] ":colour"
is_param=1
param_type=2

Пример #2 Пример использования PDOStatement::debugDumpParams() с неименованными (?) параметрами

<?php

/* Выполнение запроса с привязкой PHP переменных */
$calories = 150;
$colour = 'red';
$name = 'apple';

$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindValue(2, $colour, PDO::PARAM_STR);
$sth->execute();

$sth->debugDumpParams();

?>

Результат выполнения данного примера:

SQL: [82] SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?
Params:  2
Key: Position #0:
paramno=0
name=[0] ""
is_param=1
param_type=1
Key: Position #1:
paramno=1
name=[0] ""
is_param=1
param_type=2

Список изменений

Версия | Описание
7.2.0 | PDOStatement::debugDumpParams() теперь возвращает SQL, отправленный в базу данных, в том числе полный необработанный запрос (включая замененные параметры с их связанными значениями). Обратите внимание, что это будет работать только при включенной эмуляции подготавливаемых запросов.

Смотрите также

  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
  • PDOStatement::bindParam() - Привязывает параметр запроса к переменной
  • PDOStatement::bindValue() - Связывает параметр с заданным значением


Получает код SQLSTATE, связанный с последней операцией в объекте PDOStatement

  • « PDOStatement::debugDumpParams
  • PDOStatement::errorInfo »
  • PHP Manual
  • PDOStatement
  • Получает код SQLSTATE, связанный с последней операцией в объекте PDOStatement

PDOStatement::errorCode

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::errorCode — Получает код SQLSTATE, связанный с последней операцией в объекте PDOStatement

Описание

public PDOStatement::errorCode ( void ) : string

Возвращаемые значения

Метод идентичен PDO::errorCode() за исключением того, что PDOStatement::errorCode() возвращает коды ошибок, произошедших в результате работы объекта PDOStatement.

Примеры

Пример #1 Получение кода SQLSTATE

<?php
/* Спровоцируем ошибку -- таблицы BONES не существует */
$err = $dbh->prepare('SELECT skull FROM bones');
$err->execute();

echo "\nPDOStatement::errorCode(): ";
print $err->errorCode();
?>

Результат выполнения данного примера:

PDOStatement::errorCode(): 42S02

Смотрите также

  • PDO::errorCode() - Возвращает код SQLSTATE результата последней операции с базой данных
  • PDO::errorInfo() - Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных
  • PDOStatement::errorInfo() - Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement


Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement

  • « PDOStatement::errorCode
  • PDOStatement::execute »
  • PHP Manual
  • PDOStatement
  • Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement

PDOStatement::errorInfo

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::errorInfo — Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement

Описание

public PDOStatement::errorInfo ( void ) : array

Возвращаемые значения

PDOStatement::errorInfo() возвращает массив с информацией об ошибке, соответствующей последней операции объекта PDOStatement. Массив состоит как минимум из следующих полей:

Элемент | Информация
0 | Код ошибки SQLSTATE (пятисимвольный код состоящий из букв и цифр, определенный в стандарте ANSI SQL).
1 | Код ошибки, возвращаемый драйвером.
2 | Сообщение об ошибке, возвращаемое драйвером.

Примеры

Пример #1 Вывод полей errorInfo() при PDO_ODBC подключении к DB2

<?php
/* Спровоцируем ошибку -- таблицы BONES не существует */
$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() - Возвращает код SQLSTATE результата последней операции с базой данных
  • PDO::errorInfo() - Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных
  • PDOStatement::errorCode() - Получает код SQLSTATE, связанный с последней операцией в объекте PDOStatement


Запускает подготовленный запрос на выполнение

  • « PDOStatement::errorInfo
  • PDOStatement::fetch »
  • PHP Manual
  • PDOStatement
  • Запускает подготовленный запрос на выполнение

PDOStatement::execute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::execute — Запускает подготовленный запрос на выполнение

Описание

public PDOStatement::execute ([ array $input_parameters ] ) : bool

Запускает подготовленный запрос. Если запрос содержит маркеры параметров (псевдопеременные), вы должны либо:

  • вызвать PDOStatement::bindParam() и/или PDOStatement::bindValue(), чтобы связать эти маркеры, соответственно, с переменными или значениями. Связанные переменные передают свои значения как входные данные и получают выходные значения

  • или передать массив значений только на вход

Список параметров

input_parameters

Массив значений, содержащий столько элементов, сколько параметров заявлено в SQL-запросе. Все значения будут приняты, как имеющие тип PDO::PARAM_STR.

Нельзя привязать несколько значений к одному параметру; например, нельзя привязать два значения к именованному параметру в выражении IN().

Нельзя привязать больше значений, чем заявлено в запросе; если в массиве input_parameters больше элементов, чем заявлено в SQL-запросе методом PDO::prepare(), выполнение запроса завершится неудачей и будет вызвана ошибка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.2.0 | Ключи массива input_parameters должны совпадать с именами параметров, заявленными в SQL-запросе. До PHP 5.2.0 на это не обращалось внимания.

Примеры

Пример #1 Выполнение подготовленного запроса с привязкой переменных и значений

<?php
/* Выполнение подготовленного запроса с привязкой переменных и значений */
$calories = 150;
$colour = 'gre';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour LIKE :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', "%{$colour}%");
$sth->execute();
?>

Пример #2 Выполнение подготовленного запроса с передачей массива входных значений (именованные псевдопеременные)

<?php
/* Выполнение подготовленного запроса с передачей массива входных значений */
$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 Выполнение подготовленного запроса с передачей массива входных значений (неименованные псевдопеременные - знаки вопроса (?))

<?php
/* Выполнение подготовленного запроса с передачей массива входных значений */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->execute(array($calories, $colour));
?>

Пример #4 Выполнение подготовленного запроса с привязкой значений к неименованным псевдопеременным (знакам вопроса)

<?php
/* Выполнение подготовленного запроса с привязкой PHP переменных */
$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();
?>

Пример #5 Выполнение подготовленного запроса с использованием массива для выражения IN

<?php
/* Выполнение подготовленного запроса с использованием массива для выражения IN */
$params = array(1, 21, 63, 171);
/* Создаем строку из знаков вопроса (?) в количестве, равном количеству параметров */
$place_holders = implode(',', array_fill(0, count($params), '?'));

/*
    В этом примере подготавливается запрос с достаточным количеством неименованных
    псевдопеременных (?) для каждого значения из массива $params. Когда запрос будет
    выполняться, эти знаки вопроса будут заменены на элементы массива. Это не то же
    самое, что использовать PDOStatement::bindParam(), где привязка осуществляется по
    ссылке на переменную. PDOStatement::execute() связывает параметры по значению.
*/
$sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)");
$sth->execute($params);
?>

Примечания

Замечание:

Для некоторых драйверов необходимо закрывать курсор, прежде чем выполнять следующий запрос.

Смотрите также

  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
  • PDOStatement::bindParam() - Привязывает параметр запроса к переменной
  • PDOStatement::fetch() - Извлечение следующей строки из результирующего набора
  • PDOStatement::fetchAll() - Возвращает массив, содержащий все строки результирующего набора
  • PDOStatement::fetchColumn() - Возвращает данные одного столбца следующей строки результирующего набора


Извлечение следующей строки из результирующего набора

  • « PDOStatement::execute
  • PDOStatement::fetchAll »
  • PHP Manual
  • PDOStatement
  • Извлечение следующей строки из результирующего набора

PDOStatement::fetch

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::fetch — Извлечение следующей строки из результирующего набора

Описание

public PDOStatement::fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] ) : mixed

Извлекает следующую строку из результирующего набора объекта PDOStatement. Параметр fetch_style определяет, в каком виде PDO вернет эту строку.

Список параметров

fetch_style

Определяет, в каком виде следующая строка будет возвращена в вызывающий метод. Это может быть одна из констант PDO::FETCH_*. По умолчанию PDO::ATTR_DEFAULT_FETCH_MODE (что равносильно PDO::FETCH_BOTH).

  • PDO::FETCH_ASSOC: возвращает массив, индексированный именами столбцов результирующего набора

  • PDO::FETCH_BOTH (по умолчанию): возвращает массив, индексированный именами столбцов результирующего набора, а также их номерами (начиная с 0)

  • PDO::FETCH_BOUND: возвращает TRUE и присваивает значения столбцов результирующего набора переменным PHP, которые были привязаны к этим столбцам методом PDOStatement::bindColumn()

  • PDO::FETCH_CLASS: создает и возвращает объект запрошенного класса, присваивая значения столбцов результирующего набора именованным свойствам класса, и следом вызывает конструктор, если не задан PDO::FETCH_PROPS_LATE. Если fetch_style включает в себя атрибут PDO::FETCH_CLASSTYPE (например, PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE), то имя класса, от которого нужно создать объект, будет взято из первого столбца.

  • PDO::FETCH_INTO: обновляет существующий объект запрошенного класса, присваивая значения столбцов результирующего набора именованным свойствам объекта

  • PDO::FETCH_LAZY: комбинирует PDO::FETCH_BOTH и PDO::FETCH_OBJ, создавая новый объект со свойствами, соответствующими именам столбцов результирующего набора

  • PDO::FETCH_NAMED: возвращает массив такого же вида, как и PDO::FETCH_ASSOC, но, если есть несколько полей с одинаковым именем, то значением с этим ключом будет массив со всеми значениями из рядов, в которых это поле указано.

  • PDO::FETCH_NUM: возвращает массив, индексированный номерами столбцов (начиная с 0)

  • PDO::FETCH_OBJ: создает анонимный объект со свойствами, соответствующими именам столбцов результирующего набора

  • PDO::FETCH_PROPS_LATE: если используется с PDO::FETCH_CLASS, конструктор класса будет вызван перед назначением свойств из значений столбцов.

cursor_orientation

Для объектов PDOStatement представляющих прокручиваемый курсор, этот параметр определяет, какая строка будет возвращаться в вызывающий метод. Значением параметра должна быть одна из констант PDO::FETCH_ORI_*, по умолчанию PDO::FETCH_ORI_NEXT. Чтобы запросить прокручиваемый курсор для запроса PDOStatement, необходимо задать атрибут PDO::ATTR_CURSOR со значением PDO::CURSOR_SCROLL во время подготовки запроса методом PDO::prepare().

offset

Для объектов PDOStatement, представляющих прокручиваемый курсор, параметр cursor_orientation которых принимает значение PDO::FETCH_ORI_ABS, эта величина означает абсолютный номер строки, которую необходимо извлечь из результирующего набора.

Для объектов PDOStatement, представляющих прокручиваемый курсор, параметр cursor_orientation которых принимает значение PDO::FETCH_ORI_REL, эта величина указывает, какая строка относительно текущего положения курсора будет извлечена функцией PDOStatement::fetch().

Возвращаемые значения

В случае успешного выполнения функции возвращаемое значение зависит от режима выборки. В случае неудачи, функция всегда возвращает FALSE.

Примеры

Пример #1 Извлечение строк в разных режимах выборки

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Примеры различных режимов работы PDOStatement::fetch */
print("PDO::FETCH_ASSOC: ");
print("Возвращаем следующую строку в виде массива, индексированного именами столбцов\n");
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
print("\n");

print("PDO::FETCH_BOTH: ");
print("Возвращаем следующую строку в виде массива, индексированного как именами столбцов, так и их номерами\n");
$result = $sth->fetch(PDO::FETCH_BOTH);
print_r($result);
print("\n");

print("PDO::FETCH_LAZY: ");
print("Возвращаем следующую строку в виде анонимного объекта со свойствами, соответствующими столбцам\n");
$result = $sth->fetch(PDO::FETCH_LAZY);
print_r($result);
print("\n");

print("PDO::FETCH_OBJ: ");
print("Возвращаем следующую строку в виде анонимного объекта со свойствами, соответствующими столбцам\n");
$result = $sth->fetch(PDO::FETCH_OBJ);
print $result->name;
print("\n");
?>

Результат выполнения данного примера:

PDO::FETCH_ASSOC: Возвращаем следующую строку в виде массива, индексированного именами столбцов
Array
(
    [name] => apple
    [colour] => red
)

PDO::FETCH_BOTH: Возвращаем следующую строку в виде массива, индексированного как именами столбцов, так и их номерами
Array
(
    [name] => banana
    [0] => banana
    [colour] => yellow
    [1] => yellow
)

PDO::FETCH_LAZY: Возвращаем следующую строку в виде анонимного объекта со свойствами, соответствующими столбцам
PDORow Object
(
    [name] => orange
    [colour] => orange
)

PDO::FETCH_OBJ: Возвращаем следующую строку в виде анонимного объекта со свойствами, соответствующими столбцам
kiwi

Пример #2 Выборка строк средствами прокручиваемого курсора

<?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 "Читаем в прямой последовательности:\n";
readDataForwards($conn);

print "Читаем в обратной последовательности:\n";
readDataBackwards($conn);
?>

Результат выполнения данного примера:

Читаем в прямой последовательности:
21    10    5
16    0     5
19    20    10

Читаем в обратной последовательности:
19    20    10
16    0     5
21    10    5

Пример #3 Порядок конструкторов

Если объекты забираются с помощью PDO::FETCH_CLASS, сначала присваиваются свойства объекта, а следом вызывается конструктор объекта. Если также задано PDO::FETCH_PROPS_LATE, этот порядок меняется на обратный.

<?php
class Person
{
    private $name;

    public function __construct()
    {
        $this->tell();
    }

    public function tell()
    {
        if (isset($this->name)) {
            echo "Я {$this->name}.\n";
        } else {
            echo "У меня еще нет имени.\n";
        }
    }
}

$sth = $dbh->query("SELECT * FROM people");
$sth->setFetchMode(PDO::FETCH_CLASS, 'Person');
$person = $sth->fetch();
$person->tell();
$sth->setFetchMode(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE, 'Person');
$person = $sth->fetch();
$person->tell();
?>

Результатом выполнения данного примера будет что-то подобное:

Я - Alice.
Я Alice.
У меня еще нет имени.
Я Bob.

Смотрите также

  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение
  • PDOStatement::fetchAll() - Возвращает массив, содержащий все строки результирующего набора
  • PDOStatement::fetchColumn() - Возвращает данные одного столбца следующей строки результирующего набора
  • PDOStatement::fetchObject() - Извлекает следующую строку и возвращает ее в виде объекта
  • PDOStatement::setFetchMode() - Устанавливает режим выборки по умолчанию для объекта запроса


Возвращает массив, содержащий все строки результирующего набора

  • « PDOStatement::fetch
  • PDOStatement::fetchColumn »
  • PHP Manual
  • PDOStatement
  • Возвращает массив, содержащий все строки результирующего набора

PDOStatement::fetchAll

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::fetchAll — Возвращает массив, содержащий все строки результирующего набора

Описание

public PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] ) : array

Список параметров

fetch_style

Определяет содержимое возвращаемого массива. Подробней можно узнать из документации к методу PDOStatement::fetch(). По умолчанию параметр принимает значение PDO::ATTR_DEFAULT_FETCH_MODE (которое в свою очередь имеет умолчание PDO::FETCH_BOTH)

Чтобы извлечь значения только одного столбца, передайте в качестве значения этого параметра константу PDO::FETCH_COLUMN. С помощью параметра fetch_argument можно задать столбец, из которого требуется извлечь данные.

Если требуется извлечь только уникальные строки одного столбца, нужно передать побитовое ИЛИ констант PDO::FETCH_COLUMN и PDO::FETCH_UNIQUE.

Чтобы получить ассоциативный массив строк сгруппированный по значениям определенного столбца, нужно передать побитовое ИЛИ констант PDO::FETCH_COLUMN и PDO::FETCH_GROUP.

fetch_argument

Смысл этого аргумента зависит от значения параметра fetch_style:

  • PDO::FETCH_COLUMN: Будет возвращен указанный столбец. Индексация столбцов начинается с 0.

  • PDO::FETCH_CLASS: Будет создан и возвращен новый объект указанного класса. Свойствам объекта будут присвоены значения столбцов, имена которых совпадут с именами свойств.

  • PDO::FETCH_FUNC: Будут возвращены результаты вызовов указанной функции. Данные каждой строки результирующего набора будут передаваться в эту функцию.

ctor_args

Аргументы конструктора класса. Для случаев, когда параметру fetch_style присвоено значение PDO::FETCH_CLASS.

Возвращаемые значения

PDOStatement::fetchAll() возвращает массив, содержащий все оставшиеся строки результирующего набора. Массив представляет каждую строку либо в виде массива значений одного столбца, либо в виде объекта, имена свойств которого совпадают с именами столбцов.

Использование этого метода для извлечения строк больших результирующих наборов может пагубно сказаться на производительности системы и сетевых ресурсов. Вместо извлечения всех данных и их обработки в PHP рекомендуется использовать встроенные средства СУБД. Например, использование выражений WHERE и ORDER BY языка SQL может уменьшить размеры результирующего набора.

Примеры

Пример #1 Извлечение всех оставшихся строк результирующего набора

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Извлечение всех оставшихся строк результирующего набора */
print("Извлечение всех оставшихся строк результирующего набора:\n");
$result = $sth->fetchAll();
print_r($result);
?>

Результатом выполнения данного примера будет что-то подобное:

Извлечение всех оставшихся строк результирующего набора:
Array
(
    [0] => Array
        (
            [name] => apple
            [0] => apple
            [colour] => red
            [1] => red
        )

    [1] => Array
        (
            [name] => pear
            [0] => pear
            [colour] => green
            [1] => green
        )

    [2] => Array
        (
            [name] => watermelon
            [0] => watermelon
            [colour] => pink
            [1] => pink
        )
)

Пример #2 Извлечение всех значений одного столбца результирующего набора

В следующем примере показано, как извлечь из результирующего набора значения только одного столбца, даже если строки содержат значения нескольких столбцов.

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Извлечение всех значений первого столбца */
$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 Группировка строк по значениям одного столбца

В следующем примере показано, как получить ассоциативный массив строк результирующего набора, сгруппированных по значениям указанного столбца. Массив содержит три ключа: значения apple и pear являются массивами, содержащими два разных цвета; в тоже время watermelon будет массивом, сожержащим только один цвет.

<?php
$insert = $dbh->prepare("INSERT INTO fruit(name, colour) VALUES (?, ?)");
$insert->execute(array('apple', 'green'));
$insert->execute(array('pear', 'yellow'));

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Группируем записи по значениям первого столбца */
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) "pink"
  }
}

Пример #4 Создание объекта для каждой строки

В следующем примере показано поведение метода в режиме выборки PDO::FETCH_CLASS.

<?php
class fruit {
    public $name;
    public $colour;
}

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

$result = $sth->fetchAll(PDO::FETCH_CLASS, "fruit");
var_dump($result);
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  [0]=>
  object(fruit)#1 (2) {
    ["name"]=>
    string(5) "apple"
    ["colour"]=>
    string(5) "green"
  }
  [1]=>
  object(fruit)#2 (2) {
    ["name"]=>
    string(4) "pear"
    ["colour"]=>
    string(6) "yellow"
  }
  [2]=>
  object(fruit)#3 (2) {
    ["name"]=>
    string(10) "watermelon"
    ["colour"]=>
    string(4) "pink"
  }
  [3]=>
  object(fruit)#4 (2) {
    ["name"]=>
    string(5) "apple"
    ["colour"]=>
    string(3) "red"
  }
  [4]=>
  object(fruit)#5 (2) {
    ["name"]=>
    string(4) "pear"
    ["colour"]=>
    string(5) "green"
  }
}

Пример #5 Вызов функции для каждой строки

В следующем примере показано поведение метода в режиме выборки PDO::FETCH_FUNC.

<?php
function fruit($name, $colour) {
    return "{$name}: {$colour}";
}

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

$result = $sth->fetchAll(PDO::FETCH_FUNC, "fruit");
var_dump($result);
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  [0]=>
  string(12) "apple: green"
  [1]=>
  string(12) "pear: yellow"
  [2]=>
  string(16) "watermelon: pink"
  [3]=>
  string(10) "apple: red"
  [4]=>
  string(11) "pear: green"
}

Смотрите также

  • PDO::query() - Выполняет SQL-запрос и возвращает результирующий набор в виде объекта PDOStatement
  • PDOStatement::fetch() - Извлечение следующей строки из результирующего набора
  • PDOStatement::fetchColumn() - Возвращает данные одного столбца следующей строки результирующего набора
  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
  • PDOStatement::setFetchMode() - Устанавливает режим выборки по умолчанию для объекта запроса


Возвращает данные одного столбца следующей строки результирующего набора

  • « PDOStatement::fetchAll
  • PDOStatement::fetchObject »
  • PHP Manual
  • PDOStatement
  • Возвращает данные одного столбца следующей строки результирующего набора

PDOStatement::fetchColumn

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)

PDOStatement::fetchColumn — Возвращает данные одного столбца следующей строки результирующего набора

Описание

public PDOStatement::fetchColumn ([ int $column_number = 0 ] ) : mixed

Возвращает данные одного столбца следующей строки результирующей таблицы. Если в результате запроса строк больше нет, функция вернет FALSE.

Замечание:

Не следует использовать PDOStatement::fetchColumn() для получения булевых полей, так как невозможно отличить значение FALSE от отсутствия оставшихся строк результата. Вместо этого используйте метод PDOStatement::fetch().

Список параметров

column_number

Номер столбца, данные которого необходимо извлечь. Нумерация начинается с 0. Если параметр не задан, PDOStatement::fetchColumn() выберет данные первого столбца.

Возвращаемые значения

PDOStatement::fetchColumn() возвращает значение одного столбца следующей строки результирующего набора или FALSE, если больше нет строк.

Внимание

При использовании PDOStatement::fetchColumn() для извлечения данных из результирующего набора невозможно получить значение другого столбца той же строки.

Примеры

Пример #1 Получение значения первого столбца следующей строки

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

print("Получение значения первого столбца первой строки:\n");
$result = $sth->fetchColumn();
print("name = $result\n");

print("Получение значения второго столбца второй строки:\n");
$result = $sth->fetchColumn(1);
print("colour = $result\n");
?>

Результат выполнения данного примера:

Получение значения первого столбца первой строки:
name = lemon
Получение значения первого столбца второй строки:
colour = red

Смотрите также

  • PDO::query() - Выполняет SQL-запрос и возвращает результирующий набор в виде объекта PDOStatement
  • PDOStatement::fetch() - Извлечение следующей строки из результирующего набора
  • PDOStatement::fetchAll() - Возвращает массив, содержащий все строки результирующего набора
  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
  • PDOStatement::setFetchMode() - Устанавливает режим выборки по умолчанию для объекта запроса


Извлекает следующую строку и возвращает ее в виде объекта

  • « PDOStatement::fetchColumn
  • PDOStatement::getAttribute »
  • PHP Manual
  • PDOStatement
  • Извлекает следующую строку и возвращает ее в виде объекта

PDOStatement::fetchObject

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.4)

PDOStatement::fetchObject — Извлекает следующую строку и возвращает ее в виде объекта

Описание

public PDOStatement::fetchObject ([ string $class_name = "stdClass" [, array $ctor_args ]] ) : mixed

Извлекает следующую строку и возвращает ее в виде объекта. Этот метод
является альтернативой вызову PDOStatement::fetch() с
параметром PDO::FETCH_CLASS или
PDO::FETCH_OBJ.

Когда объект извлечен, его свойства наполняются значениями соответствующих столбцов, и, после этого, вызывается его конструктор.

Список параметров

class_name

Имя класса создаваемого объекта.

ctor_args

Элементы этого массива будут переданы в конструктор класса.

Возвращаемые значения

Возвращает новый объект указанного класса, имена свойств которого соответствуют именам столбцов результирующего набора или FALSE в случае возникновения ошибки.

Смотрите также

  • PDOStatement::fetch() - Извлечение следующей строки из результирующего набора


Получение значения атрибута запроса PDOStatement

  • « PDOStatement::fetchObject
  • PDOStatement::getColumnMeta »
  • PHP Manual
  • PDOStatement
  • Получение значения атрибута запроса PDOStatement

PDOStatement::getAttribute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::getAttribute — Получение значения атрибута запроса PDOStatement

Описание

public PDOStatement::getAttribute ( int $attribute ) : mixed

Получает значение атрибута запроса. На данный момент не существует общих атрибутов, есть только характерные для конкретного драйвера:

  • PDO::ATTR_CURSOR_NAME (для Firebird и ODBC): Получение имени курсора для запроса UPDATE ... WHERE CURRENT OF.

Возвращаемые значения

Возвращает значение атрибута.

Смотрите также

  • PDO::getAttribute() - Получить атрибут соединения с базой данных
  • PDO::setAttribute() - Установка атрибута
  • PDOStatement::setAttribute() - Устанавливает атрибут объекту PDOStatement


Возвращает метаданные столбца в результирующей таблице

  • « PDOStatement::getAttribute
  • PDOStatement::nextRowset »
  • PHP Manual
  • PDOStatement
  • Возвращает метаданные столбца в результирующей таблице

PDOStatement::getColumnMeta

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::getColumnMeta — Возвращает метаданные столбца в результирующей таблице

Описание

public PDOStatement::getColumnMeta ( int $column ) : array

Возвращает метаданные столбца результирующей таблицы в виде ассоциативного массива. Индексация столбцов начинается с 0.

Внимание

Не все драйверы PDO поддерживают PDOStatement::getColumnMeta().

Список драйверов поддерживающих этот метод:

  • PDO_DBLIB
  • PDO_MYSQL
  • PDO_PGSQL
  • PDO_SQLITE

Список параметров

column

Индекс (начиная с 0) столбца результирующего набора.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий следующие значения метаданных:

Метаданные столбца
Имя | Значение
native_type | Внутренний тип PHP, используемый для представления значения столбца.
driver:decl_type | Тип SQL, используемый для представления значения столбца в базе данных. Если значение столбца результирующей таблицы было возвращено из функции, PDOStatement::getColumnMeta() не будет определять этот тип.
flags | Какие-либо флаги, установленные для столбца.
name | Имя этого столбца, возвращаемое базой данных.
table | Имя таблицы этого столбца, возвращаемое базой данных.
len | Размер поля столбца. Как правило, для типов, отличных от чисел с плавающей запятой, это значение равно -1.
precision | Числовая точность этого столбца. Как правило, для типов, отличных от чисел с плавающей запятой, это значение равно 0.
pdo_type | Тип PDO значения столбца в виде одной из констант PDO::PARAM_*.

Возвращает FALSE в случаях, когда указанного столбца нет в результирующей таблице, а также если не существует самого результирующего набора.

Список изменений

Версия | Описание
5.4.0 | Добавлена поддержка драйвера PDO_DBLIB
5.2.3 | Поле table

Примеры

Пример #1 Извлечение метаданных столбца

В следующем примере показаны результаты извлечения метаданных одного столбца, сгенерированного функцией COUNT драйвера PDO_SQLITE.

<?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() - Возвращает количество строк, затронутых последним SQL-запросом


Переход к следующему набору строк в результате запроса

  • « PDOStatement::getColumnMeta
  • PDOStatement::rowCount »
  • PHP Manual
  • PDOStatement
  • Переход к следующему набору строк в результате запроса

PDOStatement::nextRowset

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::nextRowset — Переход к следующему набору строк в результате запроса

Описание

public PDOStatement::nextRowset ( void ) : bool

Некоторые СУБД поддерживают хранимые процедуры, которые возвращают более одного набора строк (его еще называют результирующим набором). PDOStatement::nextRowset() позволяет получить доступ ко второму и дальнейшим наборам, соответствующим объекту PDOStatement. Разные наборы строк могут иметь разное количество столбцов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Извлечение данных из нескольких наборов строк, возвращенных хранимой процедурой

В следующем примере показано, как вызывать хранимую процедуру MULTIPLE_ROWSETS, которая возвращает три набора строк. Мы вызываем PDOStatement::nextRowset() в цикле do / while. Когда результирующие наборы закончатся, метод вернет false и завершит работу цикла.

<?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 "Результирующий набор $i:\n";
    foreach ($rowset as $row) {
        foreach ($row as $col) {
            print $col . "\t";
        }
        print "\n";
    }
    print "\n";
}
?>

Результат выполнения данного примера:

Результирующий набор 1:
apple    red
banana   yellow

Результирующий набор 2:
orange   orange    150
banana   yellow    175

Результирующий набор 3:
lime     green
apple    red
banana   yellow

Смотрите также

  • PDOStatement::columnCount() - Возвращает количество столбцов в результирующем наборе
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение
  • PDOStatement::getColumnMeta() - Возвращает метаданные столбца в результирующей таблице
  • PDO::query() - Выполняет SQL-запрос и возвращает результирующий набор в виде объекта PDOStatement


Возвращает количество строк, затронутых последним SQL-запросом

  • « PDOStatement::nextRowset
  • PDOStatement::setAttribute »
  • PHP Manual
  • PDOStatement
  • Возвращает количество строк, затронутых последним SQL-запросом

PDOStatement::rowCount

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::rowCount — Возвращает количество строк, затронутых последним SQL-запросом

Описание

public PDOStatement::rowCount ( void ) : int

PDOStatement::rowCount() возвращает количество строк, которые были затронуты в ходе выполнения последнего запроса DELETE, INSERT или UPDATE, запущенного соответствующим объектом PDOStatement.

Если последним запросом, запущенным соответствующим объектом PDOStatement, было SQL-выражение SELECT, некоторые СУБД могут вернуть количество строк в результирующем наборе. Однако, такое поведение метода не гарантируется для всех баз данных, и это нужно учитывать при проектировании приложений.

Замечание:

Этот метод всегда возвращает "0" (ноль) с драйвером SQLite, а с драйвером PostgreSQL только при установке атрибута оператора PDO::ATTR_CURSOR равным PDO::CURSOR_SCROLL.

Возвращаемые значения

Возвращает количество строк.

Примеры

Пример #1 Получение количества удаленных строк

PDOStatement::rowCount() возвращает количество строк, измененных выражениями DELETE, INSERT или UPDATE.

<?php
/* Удалим все строки из таблицы FRUIT */
$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();

/* Выведем число удаленных строк */
print("Количество удаленных строк:\n");
$count = $del->rowCount();
print("Удалено $count строк.\n");
?>

Результат выполнения данного примера:

Количество удаленных строк:
Удалено 9 строк.

Пример #2 Подсчет строк, возвращаемых выражением SELECT

Для большинства СУБД PDOStatement::rowCount() не возвращает количество строк, затронутых SELECT запросом. Вместо этого метода запустите через PDO::query() выражение SELECT COUNT(*) с тем же текстом запроса. Затем методом PDOStatement::fetchColumn() вы получите число строк в результирующем наборе. Эта методика будет работать со всеми СУБД.

<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
if ($res = $conn->query($sql)) {

    /* Определим количество строк, подходящих под условия выражения SELECT */
    if ($res->fetchColumn() > 0) {

        /* Выполняем реальный SELECT и работаем с его результатами */
        $sql = "SELECT name FROM fruit WHERE calories > 100";

        foreach ($conn->query($sql) as $row) {
            print "Name: " .  $row['NAME'] . "\n";
        }
    }
    /* Результатов нет -- делаем что-то другое */
    else {
        print "Нет строк соответствующих запросу.";
    }
}

$res = null;
$conn = null;
?>

Результат выполнения данного примера:

apple
banana
orange
pear

Смотрите также

  • PDOStatement::columnCount() - Возвращает количество столбцов в результирующем наборе
  • PDOStatement::fetchColumn() - Возвращает данные одного столбца следующей строки результирующего набора
  • PDO::query() - Выполняет SQL-запрос и возвращает результирующий набор в виде объекта PDOStatement


Устанавливает атрибут объекту PDOStatement

  • « PDOStatement::rowCount
  • PDOStatement::setFetchMode »
  • PHP Manual
  • PDOStatement
  • Устанавливает атрибут объекту PDOStatement

PDOStatement::setAttribute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::setAttribute — Устанавливает атрибут объекту PDOStatement

Описание

public PDOStatement::setAttribute ( int $attribute , mixed $value ) : bool

Задает атрибут объекта PDOStatement. На данный момент никаких общих атрибутов устанавливать нельзя, только характерные для конкретного драйвера:

  • PDO::ATTR_CURSOR_NAME (для Firebird и ODBC): Задает имя курсора для запросов вида UPDATE ... WHERE CURRENT OF.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • PDO::getAttribute() - Получить атрибут соединения с базой данных
  • PDO::setAttribute() - Установка атрибута
  • PDOStatement::getAttribute() - Получение значения атрибута запроса PDOStatement


Устанавливает режим выборки по умолчанию для объекта запроса

  • « PDOStatement::setAttribute
  • PDOException »
  • PHP Manual
  • PDOStatement
  • Устанавливает режим выборки по умолчанию для объекта запроса

PDOStatement::setFetchMode

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::setFetchMode — Устанавливает режим выборки по умолчанию для объекта запроса

Описание

public PDOStatement::setFetchMode ( int $mode ) : bool
public PDOStatement::setFetchMode ( int $mode = PDO::FETCH_COLUMN , int $colno ) : bool
public PDOStatement::setFetchMode ( int $mode = PDO::FETCH_CLASS , string $classname , array $ctorargs ) : bool
public PDOStatement::setFetchMode ( int $mode = PDO::FETCH_INTO , object $object ) : bool

Список параметров

mode

Режим выборки можно задавать только одной из констант PDO::FETCH_*.

colno

Номер столбца.

classname

Имя класса.

ctorargs

Аргументы конструктора класса.

object

Объект.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Изменение режима выборки

В следующем примере показано, как метод PDOStatement::setFetchMode() меняет режим выборки по умолчанию для объекта PDOStatement.

<?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


Класс PDOException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Представляет ошибку, вызванную PDO. Вам не следует выбрасывать исключения PDOException из своего кода. Для дополнительной информации об исключениях в PHP смотрите раздел Исключения.

Обзор классов

PDOException extends RuntimeException {
/* Свойства */
public array $errorInfo ;
protected string $code ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Свойства

errorInfo

Соответствует PDO::errorInfo() или PDOStatement::errorInfo()

code

Код ошибки SQLSTATE. Чтобы его получить, используйте Exception::getCode().


Драйверы PDO

Содержание

  • CUBRID (PDO)
  • MS SQL Server (PDO_DBLIB)
  • Firebird (PDO)
  • IBM (PDO)
  • Informix (PDO)
  • MySQL (PDO)
  • MS SQL Server (PDO)
  • Oracle (PDO)
  • ODBC и DB2 (PDO)
  • PostgreSQL (PDO)
  • SQLite (PDO)
  • 4D (PDO)

Следующие драйверы в настоящее время реализованы в PDO:

Наименование драйвера | Поддерживаемые базы данных
PDO_CUBRID | Cubrid
PDO_DBLIB | FreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRD | Firebird
PDO_IBM | IBM DB2
PDO_INFORMIX | IBM Informix Dynamic Server
PDO_MYSQL | MySQL 3.x/4.x/5.x
PDO_OCI | Oracle Call Interface
PDO_ODBC | ODBC v3 (IBM DB2, unixODBC и win32 ODBC)
PDO_PGSQL | PostgreSQL
PDO_SQLITE | SQLite 3 и SQLite 2
PDO_SQLSRV | Microsoft SQL Server / SQL Azure
PDO_4D | 4D


Функции CUBRID (PDO_CUBRID)

Введение

PDO_CUBRID - драйвер, реализующий интерфейс PHP Data Objects (PDO) для доступа к базам данных CUBRID.

Замечание:

Текущая версия PDO_CUBRID не поддерживает постоянные соединения.

Установка

Для сборки расширения PDO_CUBRID, на том же хосте должен быть установлен СУБД CUBRID. PDO_CUBRID является расширением » PECL, так что для его установки следуйте инструкциям Установка модулей PECL. Для указания команде configure директории с установленной базой CUBRID, используйте следующий синтаксис:

   $ ./configure --with-pdo-cubrid=/path/to/CUBRID[,shared]
По умолчанию configure будет искать соответствующие библиотеки, руководствуясь значением переменной окружения CUBRID.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows. Для более подробной информации о ручной установке расширения под Linux и Windows, читайте build-guide.html, содержащийся в пакете PECL.

Отличительные особенности

Отличительные особенности PDO_CUBRID
Отличительные особенности | Описание
Перематываемые курсоры | PDO_CUBRID поддерживает перематываемые курсоры. Типом курсора по умолчанию является "forward only" (только вперед), для его изменения можно использовать параметр driver_options в PDO::prepare().
Тайм-аут | PDO_CUBRID поддерживает настройку тайм-аута выполнения SQL-запроса.; Для его настройки используйте метод PDO::setAttribute().
Режим автоподтверждения и транзакции PDO_CUBRID поддерживает как режим автоподтверждения, так и работу с транзакциями. По умолчанию используется режим автоподтверждения. Для изменения режима используйте метод PDO::setAttribute().

Если вы используете PDO::beginTransaction() для старта транзакции, то автоподтверждение будет автоматически запрещено и снова разрешено после PDO::commit() или PDO::rollBack(). Обратите внимание, что перед отключанием автоподтверждения, все ожидающие запросы будут автоматически подтверждены.

Множественные SQL-запросы | PDO_CUBRID поддерживает множественные SQL-запросы. Множественные SQL-запросы разделяются точкой с запятой (;)
Информация о схеме | PDO_CUBRID реализует функцию PDO::cubrid_schema() для получения информации о схеме.
LOBs PDO_CUBRID поддерживает типы данных BLOB/CLOB. LOB в PDO представляется как поток, следовательно вы можете вставлять LOB путем связывания с потоком и получать LOB путем чтения из потока, возвращенного CUBRID PDO. К примеру:

Пример #1 Вставка LOB в CUBRID PDO

<?php
$fp = fopen('lob_test.png', 'rb');

$sql_stmt = "INSERT INTO lob_test(name, content) VALUES('lob_test.png', ?)";

$stmt = $dbh->prepare($sql_stmt);
$ret = $stmt->bindParam(1, $fp, PDO::PARAM_LOB);
$ret = $stmt->execute();
?>

Пример #2 Получение LOB в CUBRID PDO

<?php
$sql_stmt = "SELECT content FROM lob_test WHERE name='lob_test.png'";

$stmt = $dbh->prepare($sql_stmt);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_NUM);

header("Content-Type: image/png");
fpassthru($result[0]);
?>

Метаинформация о столбцах Метод PDOStatement::getColumnMeta() в CUBRID PDO вернет ассоциативный массив, содержащий следующие значения:
  • type
  • name
  • table
  • def
  • precision
  • scale
  • not_null
  • auto_increment
  • unique_key
  • multiple_key
  • primary_key
  • foreign_key
  • reverse_index
  • reverse_unique
Тип данных Коллекция PDO_CUBRID поддерживает типы данных SET/MULTISET/SEQUENCE. Если вы явно не указываете тип данных, то по умолчанию будет использоваться char. К примеру:

Пример #3 Вставка коллекции в CUBRID PDO с типом данных по умолчанию.

<?php
$conn_str ="cubrid:dbname=demodb;host=localhost;port=33000";
$cubrid_pdo = new PDO($conn_str, 'dba', '');

$cubrid_pdo->exec("DROP TABLE if exists test_tbl");
$cubrid_pdo->exec("CREATE TABLE test_tbl (col_1 SET(VARCHAR))");

$sql_stmt_insert = "INSERT INTO test_tbl VALUES (?);";
$stmt = $cubrid_pdo->prepare($sql_stmt_insert);
$data = array("abc","def","ghi");
$ret = $stmt->bindParam(1, $data, PDO::PARAM_NULL);
$ret = $stmt->execute();
var_Dump($ret);
?>

Пример #4 Указание типа дланных при вставке коллекции в CUBRID PDO

<?php
$conn_str ="cubrid:dbname=demodb;host=localhost;port=33000";
$cubrid_pdo = new PDO($conn_str, 'dba', '');

$cubrid_pdo->exec("DROP TABLE if exists test_tbl");
$cubrid_pdo->exec("CREATE TABLE test_tbl (col_1 SET(int))");

$sql_stmt_insert = "INSERT INTO test_tbl VALUES (?);";
$stmt = $cubrid_pdo->prepare($sql_stmt_insert);
$data = array(1,2,3,4);
$ret = $stmt->bindParam(1, $data, 0,0,"int");
$ret = $stmt->execute();
var_Dump($ret);
?>

Типы данных CUBRID:(пятый параметр PDOStatement::bindParam):
  • CHAR
  • STRING
  • NCHAR
  • VARNCHAR
  • BIT
  • VARBIT
  • NUMERIC
  • NUMBER
  • INT
  • SHORT
  • BIGINT
  • MONETARY
  • FLOAT
  • DOUBLE
  • DATE
  • TIME
  • DATETIME
  • TIMESTAMP

Предопределенные константы

Перечисленные ниже константы определены данным драйвером и будут доступны только в случае, если PHP был собран с поддержкой этого расширения или данное расширение было подгружено динамически во время выполнения. Вдобавок, эти драйверо-зависимые константы должны быть использованы только совместно с этим драйвером. Использование атрибутов, специфичных для некоторого драйвера с другим драйвером может вызвать неожиданное поведение. Если ваш код выполняется с несколькими драйверами, то можно использовать функцию PDO::getAttribute() для получения атрибута PDO::ATTR_DRIVER_NAME для проверки драйвера.

Следующие константы можно использовать для установки аттрибутов базы данных. Данные константы можно использовать с функциями PDO::getAttribute() и PDO::setAttribute().

Флаги аттрибутов PDO::CUBRID
Константы | Описание
PDO::CUBRID_ATTR_ISOLATION_LEVEL | Уровень изоляции для соединения.
PDO::CUBRID_ATTR_LOCK_TIMEOUT | Тайм-аут транзакции в секундах.
PDO::CUBRID_ATTR_MAX_STRING_LENGTH | Только для чтения. Максимальная длина строки для типов данных bit, varbit, char, varchar, nchar, nchar при использовании CUBRID PDO API.

Следующие константы можно использовать для установки уровня изоляции транзакции. Данные константы можно использовать с функциями PDO::getAttribute() и PDO::setAttribute().

Флаги уровней изоляции PDO::CUBRID
Константы | Описание
PDO::TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE | Самый низкий уровень изоляции (1). Возможно грязное, неповторяющееся или фантомное чтение для кортежей и неповторяющееся чтение для таблицы.
PDO::TRAN_COMMIT_CLASS_COMMIT_INSTANCE | Относительно низкий уровень изоляции (2). Грязного чтения не будет, но неповтояющееся или фантомное возможно.
PDO::TRAN_REP_CLASS_UNCOMMIT_INSTANCE | Уровень изоляции CUBRID по умолчанию (3). Возможно грязное, неповторяющееся или фантомное чтение для кортежей, но для таблиц гарантировано повторяющееся чтение.
PDO::TRAN_REP_CLASS_COMMIT_INSTANCE | Относительно низкий уровень изоляции (4). Грязного чтения не будет, но неповтояющееся или фантомное возможно.
PDO::TRAN_REP_CLASS_REP_INSTANCE | Относительно высокий уровень изоляции (5). Грязного и неповторяющегося чтения не будет, но фантомное может возникнуть.
PDO::TRAN_SERIALIZABLE | Самый высокий уровень изоляции (6). Грязное, неповторяющееся и фантомное чтение невозможны.

Следующие константы используются при получении информации схемсы. Могут использоваться с функцией PDO::cubrid_schema().

Флаги схемы PDO::CUBRID
Константы | Описание
PDO::CUBRID_SCH_TABLE | Получение имени и типа таблицы CUBRID.
PDO::CUBRID_SCH_VIEW | Получение имени и типа view в CUBRID.
PDO::CUBRID_SCH_QUERY_SPEC | Получение SQL-запроса, с помощью которого создано view.
PDO::CUBRID_SCH_ATTRIBUTE | Получение атрибутов столбца таблицы.
PDO::CUBRID_SCH_TABLE_ATTRIBUTE | Получение атрибутов таблицы.
PDO::CUBRID_SCH_METHOD | Получение метода экземпляра. Метод экземпляра - это метод вызваный экземпляром класса. Используется сильно чаще, чем метод класса, так как большинство операций производится в экземпляре.
PDO::CUBRID_SCH_TABLE_METHOD | ПОлучить метод класса. Метод класса - это метод вызваный объектом класса.Обычно используется для создания нового экземпляра класса или для его инициализации. Также используется для доступа и изменения атрибутов класса.
PDO::CUBRID_SCH_METHOD_FILE | Получить информацию о файле, где определен метод таблицы.
PDO::CUBRID_SCH_SUPER_TABLE | Получить имя и тип таблицы, чьи атрибуты наследуются указанной таблицей.
PDO::CUBRID_SCH_SUB_TABLE | Получить имя и тип таблицы, которая наследует атрибуты указанной.
PDO::CUBRID_SCH_CONSTRAINT | Получить ограничения таблицы.
PDO::CUBRID_SCH_TRIGGER | Получить триггеры таблицы.
PDO::CUBRID_SCH_TABLE_PRIVILEGE | Получить информацию о правах на таблицу.
PDO::CUBRID_SCH_COL_PRIVILEGE | Получить информацию о правах на столбец.
PDO::CUBRID_SCH_DIRECT_SUPER_TABLE | Получить прямую супертаблицу для заданной таблицы.
PDO::CUBRID_SCH_PRIMARY_KEY | Получить первичный ключ таблицы.
PDO::CUBRID_SCH_IMPORTED_KEYS | Получить импортированные ключи для таблицы.
PDO::CUBRID_SCH_EXPORTED_KEYS | Получить экспортированные ключи для таблицы.
PDO::CUBRID_SCH_CROSS_REFERENCE | Получить связи двух таблиц.

Содержание

  • PDO_CUBRID DSN — Соединение с базой данных CUBRID
  • PDO::cubrid_schema — Получить запрошенную информацию о схеме


Соединение с базой данных CUBRID

  • « CUBRID (PDO)
  • PDO::cubrid_schema »
  • PHP Manual
  • CUBRID (PDO)
  • Соединение с базой данных CUBRID

PDO_CUBRID DSN

(Информация о версии неизвестна, возможно, только в Git)

PDO_CUBRID DSN — Соединение с базой данных CUBRID

Описание

Имя источника данных (Data Source Name, DSN) PDO_CUBRID состоит из следующих элементов, разделенных точкой с запятой:

Префикс DSN

cubrid:.

host

Имя хоста, на котором развернута база данных.

port

Порт, на котором база данных слушает подключения.

dbname

Имя базы данных.

Примечания

Замечание:

При соединении с CUBRID вы должны указать имя пользователя и пароль.

Примеры

Пример #1 Пример PDO_CUBRID DSN

Следующий пример демонстрирует PDO_CUBRID DSN для соединения с базой CUBRID:

cubrid:host=localhost;port=33000;dbname=demodb


Получить запрошенную информацию о схеме

  • « PDO_CUBRID DSN
  • MS SQL Server (PDO_DBLIB) »
  • PHP Manual
  • CUBRID (PDO)
  • Получить запрошенную информацию о схеме

PDO::cubrid_schema

(Информация о версии неизвестна, возможно, только в Git)

PDO::cubrid_schema — Получить запрошенную информацию о схеме

Описание

public PDO::cubrid_schema ( int $schema_type [, string $table_name [, string $col_name ]] ) : array

Эта функция используется для получения информации о схеме базы данных. Если необходима информация о конкретной таблице, то будет необходимо указать ее имя в параметре table_name. Если нужна информация о конкретном столбце таблицы, то его имя необходимо указать в параметре col_name (может использоваться только с PDO::CUBRID_SCH_COL_PRIVILEGE).

Результат будет возвращен в виде двумерного массива (столбец (ассоциативный массив) * строка (ассоциативный массив)). В следующей таблице приводятся типы схемы и структура столбцов результирующего массива, который будет возвращен в зависимости от используемого типа схемы.

Состав результата каждого типа
Схема | Номер столбца | Имя столбца | Значение
PDO::CUBRID_SCH_TABLE | 1 | NAME |
 | 2 | TYPE | 0:system table 1:view 2:table
PDO::CUBRID_SCH_VIEW | 1 | NAME |
 | 2 | TYPE | 1:view
PDO::CUBRID_SCH_QUERY_SPEC | 1 | QUERY_SPEC |
PDO::CUBRID_SCH_ATTRIBUTE / PDO::CUBRID_SCH_TABLE_ATTRIBUTE | 1 | ATTR_NAME |
 | 2 | DOMAIN |
 | 3 | SCALE |
 | 4 | PRECISION |
 | 5 | INDEXED | 1:indexed
 | 6 | NOT NULL | 1:not null
 | 7 | SHARED | 1:shared
 | 8 | UNIQUE | 1:unique
 | 9 | DEFAULT |
 | 10 | ATTR_ORDER | base:1
 | 11 | CLASS_NAME |
 | 12 | SOURCE_CLASS |
 | 13 | IS_KEY | 1:key
PDO::CUBRID_SCH_METHOD / PDO::CUBRID_SCH_TABLE_METHOD | 1 | NAME |
 | 2 | RET_DOMAIN |
 | 3 | ARG_DOMAIN |
PDO::CUBRID_SCH_METHOD_FILE | 1 | METHOD_FILE |
PDO::CUBRID_SCH_SUPER_TABLE / PDO::CUBRID_SCH_DIRECT_SUPER_TABLE / PDO::CUBRID_SCH_SUB_TABLE | 1 | CLASS_NAME |
 | 2 | TYPE | 0:system table 1:view 2:table
PDO::CUBRID_SCH_CONSTRAINT | 1 | TYPE | 0:unique 1:index 2:reverse unique 3:reverse index
 | 2 | NAME |
 | 3 | ATTR_NAME |
 | 4 | NUM_PAGES |
 | 5 | NUM_KEYS |
 | 6 | PRIMARY_KEY | 1:primary key
 | 7 | KEY_ORDER | base:1
PDO::CUBRID_SCH_TRIGGER | 1 | NAME |
 | 2 | STATUS |
 | 3 | EVENT |
 | 4 | TARGET_CLASS |
 | 5 | TARGET_ATTR |
 | 6 | ACTION_TIME |
 | 7 | ACTION |
 | 8 | PRIORITY |
 | 9 | CONDITION_TIME |
 | 10 | CONDITION |
PDO::CUBRID_SCH_TABLE_PRIVILEGE / PDO::CUBRID_SCH_COL_PRIVILEGE | 1 | CLASS_NAME / ATTR_NAME |
 | 2 | PRIVILEGE |
 | 3 | GRANTABLE |
PDO::CUBRID_SCH_PRIMARY_KEY | 1 | CLASS_NAME |
 | 2 | ATTR_NAME |
 | 3 | KEY_SEQ | base:1
 | 4 | KEY_NAME |
PDO::CUBRID_SCH_IMPORTED_KEYS / PDO::CUBRID_SCH_EXPORTED_KEYS / PDO::CUBRID_SCH_CROSS_REFERENCE | 1 | PKTABLE_NAME |
 | 2 | PKCOLUMN_NAME |
 | 3 | FKTABLE_NAME | base:1
 | 4 | FKCOLUMN_NAME |
 | 5 | KEY_SEQ | base:1
 | 6 | UPDATE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 7 | DELETE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 8 | FK_NAME |
 | 9 | PK_NAME |

Список параметров

schema_type

Требуемый тип схемы.

table_name

Имя таблицы, схему которой вы хотите получить.

col_name

Имя столбца, схему которой вы хотите получить.

Возвращаемые значения

В случае успеха будет возвращен ассоциативный массив со схемой.

В случае неудачи будет возвращено FALSE

Примеры

Пример #1 Пример использования PDO::cubrid_schema()

В этом примере демонстрируется получение информации о первичных и вторичных ключах таблицы "game".

<?php
$pk_list = $dbh->cubrid_schema(PDO::CUBRID_SCH_PRIMARY_KEY, "game");
print_r($pk_list);

$fk_list = $dbh->cubrid_schema(PDO::CUBRID_SCH_IMPORTED_KEYS, "game");
print_r($fk_list);
?>

Результат выполнения данного примера:

Result:
Array
(
    [0] => Array
        (
            [CLASS_NAME] => game
            [ATTR_NAME] => athlete_code
            [KEY_SEQ] => 3
            [KEY_NAME] => pk_game_host_year_event_code_athlete_code
        )

    [1] => Array
        (
            [CLASS_NAME] => game
            [ATTR_NAME] => event_code
            [KEY_SEQ] => 2
            [KEY_NAME] => pk_game_host_year_event_code_athlete_code
        )

    [2] => Array
        (
            [CLASS_NAME] => game
            [ATTR_NAME] => host_year
            [KEY_SEQ] => 1
            [KEY_NAME] => pk_game_host_year_event_code_athlete_code
        )

)
Array
(
    [0] => Array
        (
            [PKTABLE_NAME] => athlete
            [PKCOLUMN_NAME] => code
            [FKTABLE_NAME] => game
            [FKCOLUMN_NAME] => athlete_code
            [KEY_SEQ] => 1
            [UPDATE_RULE] => 1
            [DELETE_RULE] => 1
            [FK_NAME] => fk_game_athlete_code
            [PK_NAME] => pk_athlete_code
        )

    [1] => Array
        (
            [PKTABLE_NAME] => event
            [PKCOLUMN_NAME] => code
            [FKTABLE_NAME] => game
            [FKCOLUMN_NAME] => event_code
            [KEY_SEQ] => 1
            [UPDATE_RULE] => 1
            [DELETE_RULE] => 1
            [FK_NAME] => fk_game_event_code
            [PK_NAME] => pk_event_code
        )

)


Функции Microsoft SQL Server и Sybase (PDO_DBLIB)

Введение

PDO_DBLIB - драйвер, реализующий интерфейс PHP Data Objects (PDO) для доступа к базам данных Microsoft SQL Server и Sybase с использованием библиотеки FreeTDS.

Этот модуль больше недоступен для Windows с PHP 5.3 и выше.

В Windows вы должны использовать SqlSrv - альтернативный драйвер для MS SQL, доступный на сайте Microsoft: » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx .

Если использовать SqlSrv не представляется возможным, то для соединения с Microsoft SQL Server и Sybase, используйте драйвер PDO_ODBC, так как нативный Windows DB-LIB является древним, потоконебезопасным и не поддерживается Microsoft.

Содержание

  • PDO_DBLIB DSN — Соединение с базами данных Microsoft SQL Server и Sybase


Соединение с базами данных Microsoft SQL Server и Sybase

  • « MS SQL Server (PDO_DBLIB)
  • Firebird (PDO) »
  • PHP Manual
  • MS SQL Server (PDO_DBLIB)
  • Соединение с базами данных Microsoft SQL Server и Sybase

PDO_DBLIB DSN

(PECL PDO_DBLIB >= 0.9.0)

PDO_DBLIB DSN — Соединение с базами данных Microsoft SQL Server и Sybase

Описание

Имя источника данных (Data Source Name, DSN) PDO_DBLIB состоит из следующих элементов:

Префикс DSN

Используйте префикс DSN sybase: в случае, если PDO_DBLIB собран с библиотеками Sybase ct-lib, mssql:, если PDO_DBLIB собран с библиотеками Microsoft SQL Server, или dblib:, если PDO_DBLIB собран с библиотеками FreeTDS.

host

Имя сервера, на котором располагается база данных. По умолчанию 127.0.0.1.

dbname

Имя базы данных.

charset

Клиентская кодировка.

appname

Имя приложения (используется в sysprocesses). По умолчанию "PHP Generic DB-lib" или "PHP freetds".

secure

В данный момент не используется.

Примеры

Пример #1 Примеры использования PDO_DBLIB DSN

Следующие примеры демонстрируют PDO_DBLIB DSN для соединения с базами данных Microsoft SQL Server и Sybase:

mssql:host=localhost;dbname=testdb
sybase:host=localhost;dbname=testdb
dblib:host=localhost;dbname=testdb


Функции Firebird (PDO_FIREBIRD)

Введение

PDO_FIREBIRD - драйвер, реализующий интерфейс PHP Data Objects (PDO) для доступа к базам данных Firebird.

Установка

Для установке расширения PDO Firebird используйте опцию --with-pdo-firebird[=DIR] , где [=DIR] указывает на директорию установки Firebird.

$ ./configure --with-pdo-firebird

Предопределенные константы

Перечисленные ниже константы определены данным драйвером и будут доступны только в случае, если PHP был собран с поддержкой этого расширения или данное расширение было подгружено динамически во время выполнения. Вдобавок, эти драйверо-зависимые константы должны быть использованы только совместно с этим драйвером. Использование атрибутов, специфичных для некоторого драйвера с другим драйвером может вызвать неожиданное поведение. Если ваш код выполняется с несколькими драйверами, то можно использовать функцию PDO::getAttribute() для получения атрибута PDO::ATTR_DRIVER_NAME для проверки драйвера.

PDO::FB_ATTR_DATE_FORMAT (integer)

Доступно с PHP 5.3.0.

истанавливает формат даты.

PDO::FB_ATTR_TIME_FORMAT (integer)

Устанавливает формат времени.

Доступно с PHP 5.3.0.

PDO::FB_ATTR_TIMESTAMP_FORMAT (integer)

Устанавливает формат временной метки.

Доступно с PHP 5.3.0.

Содержание

  • PDO_FIREBIRD DSN — Соединение с базой Firebird


Соединение с базой Firebird

  • « Firebird (PDO)
  • IBM (PDO) »
  • PHP Manual
  • Firebird (PDO)
  • Соединение с базой Firebird

PDO_FIREBIRD DSN

(PECL PDO_FIREBIRD >= 0.1.0)

PDO_FIREBIRD DSN — Соединение с базой Firebird

Описание

Имя источника данных (Data Source Name, DSN) PDO_FIREBIRD состоит из следующих элементов:

Префикс DSN

firebird:.

dbname

Имя базы данных.

charset

Кодировка.

role

Имя роли SQL.

dialect

Диалект базы данных; либо 1 или 3. Если не указан, диалектом по умолчанию будет 3. Доступно с PHP 7.4.0.

Примеры

Пример #1 Пример PDO_FIREBIRD DSN с путем

Следующий пример демонстрирует PDO_FIREBIRD DSN для соединения с базой Firebird:

firebird:dbname=/path/to/DATABASE.FDB

Пример #2 Пример PDO_FIREBIRD DSN с путем и портом

Следующий пример демонстрирует PDO_FIREBIRD DSN с указанием пути и порта для соединения с базой Firebird:

firebird:dbname=hostname/port:/path/to/DATABASE.FDB

Пример #3 Пример PDO_FIREBIRD DSN для localhost и пути до employee.fdb в системе Debian

Следующий пример демонстрирует PDO_FIREBIRD DSN для соединения с Firebird на локальном хосте и базой данных employee.fdb:

firebird:dbname=localhost:/var/lib/firebird/2.5/data/employee.fdb

Пример #4 PDO_FIREBIRD DSN to connect to a dialect 1 database

Следующий пример демонстрирует PDO_FIREBIRD DSN для соединения с базой данных Firebird test.fdb, которая была создана с помощью диалекта 1. Поддерживается, начиная с PHP 7.4.0.

firebird:dbname=localhost:/var/lib/firebird/2.5/data/test.fdb;CHARSET=Windows-1251;dialect=1


Функции IBM (PDO_IBM)

Введение

PDO_IBM - это драйвер, реализующий интерфейс PHP Data Objects (PDO) для предоставления возможности работать с базами данных IBM.

Установка

Для сборки расширения PDO_IBM, на вашей системе должен быть установлен DB2 Client версии v9.1 или выше. DB2 Client можно загрузить с сайта » сайта разработки приложений IBM.

Замечание: Обратите внимание

DB2 Client версии v9.1 и выше поддерживает прямой доступ к DB2 для Linux, UNIX и Windows Server v8 и v9.1.

Также DB2 Client v9.1 поддерживает доступ к серверам DB2 UDB для i5 и DB2 UDB для z/OS используя отдельно купленый » продукт DB2 Connect.

PDO_IBM - это расширение » PECL, так что следуйте инструкции Установка модулей PECL для установки данного расширения. Не забудьте указать команде configure местоположение заголовочных файлов DB2 Client и библиотек:

bash$ ./configure --with-pdo-ibm=/path/to/sqllib[,shared]
Команда configure по умолчанию будет использовать переменную окружения DB2DIR.

Содержание

  • PDO_IBM DSN — Соединение с базой данных IBM


Соединение с базой данных IBM

  • « IBM (PDO)
  • Informix (PDO) »
  • PHP Manual
  • IBM (PDO)
  • Соединение с базой данных IBM

PDO_IBM DSN

(PECL PDO_IBM >= 0.9.0)

PDO_IBM DSN — Соединение с базой данных IBM

Описание

Имя источника данных (Data Source Name, DSN) PDO_IBM базируется на IBM CLI DSN. Главный компонент PDO_IBM DSN:

Префикс DSN

Префикс DSN - ibm:.

DSN

DSN может быть одним из нижеследующего:

  • a) Настройка источника данных с помощью db2cli.ini или odbc.ini

  • b) Каталогизированное имя базы данных. Т.е. псевдоним базы данных в каталоге клиента DB2

  • c) Полноценная строка соединения: DRIVER={IBM DB2 ODBC DRIVER};DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password;, где параметры означают следующее:

    database

    Имя базы данных.

    hostname

    Имя хоста или IP-адрес сервера баз данных.

    port

    Порт TCP/IP, на котором слушает база.

    username

    Имя пользователя.

    password

    Пароль пользователя.

Примеры

Пример #1 Пример PDO_IBM DSN с использованием db2cli.ini

Следующий пример демонстрирует PDO_IBM DSN для соединения с базой DB2 указанной как DB2_9 в db2cli.ini:

$db = new PDO("ibm:DSN=DB2_9", "", "");

[DB2_9]
Database=testdb
Protocol=tcpip
Hostname=11.22.33.444
Servicename=56789

Пример #2 Пример PDO_IBM DSN с использованием строки соединения

Следующий пример демонстрирует PDO_IBM DSN для соединения с базой DB2 с именем testdb используя синтаксис соединения DB2 CLI.

$db = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" .
  "HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;", "testuser", "tespass");


Функции Informix (PDO_INFORMIX)

Введение

PDO_INFORMIX - это драйвер, реализующий интерфейс PHP Data Objects (PDO) для доступа к базам данных Informix.

Установка

Для сборки расширения PDO_INFORMIX, вам потребуется установленный на том же хосте Informix Client SDK 2.81 UC1 или выше. Informix Client SDK можно загрузить с » сайта поддержки IBM Informix.

PDO_INFORMIX является » PECL расширением, так что для его установки следуйте следующим инструкциям Установка модулей PECL. Выполните комманду configure указав местоположение заголовочных файлов и библиотек Informix Client SDK:

   bash$ ./configure --with-pdo-informix=/path/to/SDK[,shared]
По умолчанию комманда configure будет использовать значение переменной окружения INFORMIXDIR.

Перематываемый курсор

PDO_INFORMIX поддерживает перематываемые курсоры; однако по умолчанию их использование не разрешено. Для разрешения их поддержки вы должны указать ENABLESCROLLABLECURSORS=1 в соответствующих настройках соединения ODBC в odbc.ini или задать параметр EnableScrollableCursors=1 в строке соединения (DSN).

Содержание

  • PDO_INFORMIX DSN — Соединение с базой данных Informix


Соединение с базой данных Informix

  • « Informix (PDO)
  • MySQL (PDO) »
  • PHP Manual
  • Informix (PDO)
  • Соединение с базой данных Informix

PDO_INFORMIX DSN

(PECL PDO_INFORMIX >= 0.1.0)

PDO_INFORMIX DSN — Соединение с базой данных Informix

Описание

Строка соединения (Data Source Name, DSN) PDO_INFORMIX базируется на строке Informix ODBC DSN. Подробности конфигурирования Informix ODBC DSN читайте на сайте » Informix Dynamic Server Information Center. Основные элементы PDO_INFORMIX DSN:

Префикс DSN

informix:.

DSN

DSN должен быть или указан в odbc.ini или задан полной » строкой соединения.

Примеры

Пример #1 Использование PDO_INFORMIX DSN в odbc.ini

Следующий пример демонстрирует соединение с базой данных Informix определенной как Infdrv33 в odbc.ini:

$db = new PDO("informix:DSN=Infdrv33", "", "");

[ODBC Data Sources]
Infdrv33=INFORMIX 3.3 32-BIT

[Infdrv33]
Driver=/opt/informix/csdk_2.81.UC1G2/lib/cli/iclis09b.so
Description=INFORMIX 3.3 32-BIT
Database=common_db
LogonID=testuser
pwd=testpass
Servername=ids_server
DB_LOCALE=en_US.819
OPTIMIZEAUTOCOMMIT=1
ENABLESCROLLABLECURSORS=1

Пример #2 Соединение с использованием полноценной строки соединения

В следующем примере производится соединение с базой данных common_db с использованием строки соединения.

$db = new PDO("informix:host=host.domain.com; service=9800;
    database=common_db; server=ids_server; protocol=onsoctcp;
    EnableScrollableCursors=1", "testuser", "tespass");


Функции MySQL (PDO_MYSQL)

Введение

PDO_MYSQL - это драйвер, реализуюший интерфейс PHP Data Objects (PDO) и предоставляет доступ из PHP к базам данных MySQL.

Начиная с PHP 5.2.1, PDO_MYSQL по умолчанию использует эмулированную подготовку. Ранее PDO_MYSQL по умолчанию использовал нативную поддержку подготовленных запросов, пристутствущих в MySQL 4.1 и выше, и эмулировал их для более старых версий клиентских библиотек mysql.

MySQL 8

При запуске PHP до версии 7.1.16 или PHP 7.2 до 7.2.4, установите плагин пароля по умолчанию MySQL 8 Server в mysql_native_password, иначе вы увидите ошибки, похожие на The server requested authentication method unknown to the client [caching_sha2_password], даже когда caching_sha2_password не используется.

Это связано с тем, что MySQL 8 по умолчанию использует caching_sha2_password, и плагин не распознается старыми версиями PHP (mysqlnd). Вместо этого измените это, установив default_authentication_plugin=mysql_native_password в my.cnf. Плагин caching_sha2_password будет поддерживаться в будущей версии PHP. Пока же расширение mysql_xdevapi поддерживает его.

Внимание

Осторожно: Некоторые типы MySQL таблиц (механизмы хранения, движков) не поддерживают транзакции. При написании кода с использованием транзацкий применительно к таблицам, которые их не поддерживают, MySQL будет считать, что транзакция была начата успешно. Кроме того, выполнение любого DDL-запроса завершит все открытые транзакции, а также выполнит весь стек не завершенных запросов.

Установка

Обычно, установочные пакеты Unix имеют в своем составе бинарные пакеты PHP. Несмотря на то, что эти бинарные пакеты обычно собраны с поддержкой расширения MySQL, возможно понадобится устанавливать библиотеки расширений отдельно. Проверьте свой дистрибутив на наличие нужных библиотек через пакетный менеджер.

К примеру, на Ubuntu установка пакета php5-mysql устанавливает расширения ext/mysql, ext/mysqli, и PDO_MYSQL. На CentOS, пакет php-mysql так же устанавливает эти три расширения.

Также вы всегда можете скомпилировать необходимые расширения самостоятельно. Сборка PHP из исходных кодов позволит вам собрать именно те расширения MySQL, которые вам нужны, а также выбрать нужную клиентскую библиотеку для каждого расширения.

Используйте --with-pdo-mysql[=DIR] для установки расширения PDO MySQL, где необязательный параметр [=DIR] указывает директорию, где установлена MySQL. Начиная с PHP 5.4, по умолчанию используется библиотека mysqlnd. Более детальный разбор по выбору библиотеки можно почитать в разделе "Выбор библиотеки MySQL".

Дополнительный параметр --with-mysql-sock[=DIR] указывает расположение unix-сокета MySQL для всех MySQL расширений, включая PDO_MYSQL. Если параметр не указан, поиск производится в директориях по умолчанию.

Дополнительный параметр --with-zlib-dir[=DIR] используется как префикс пути к libz.

$ ./configure --with-pdo-mysql --with-mysql-sock=/var/mysql/mysql.sock

Поддержка SSL включается, используя соответствующую константу PDO_MySQL, которая эквивалентна вызову » API MySQL-функции mysql_ssl_set() в C. К тому же SSL не может быть включен с помощью PDO::setAttribute, потому что соединение уже существует. Смотрите документацию MySQL о » подключении к MySQL с SSL.

Список изменений
Версия | Описание
5.4.0 | Библиотека mysqlnd выбирается по умолчанию, если вы собираете PHP с поддержкой PDO_MYSQL. Ранее библиотекой по умолчанию для MySQL была libmysqlclient.
5.4.0 | Клиентские библиотеки MySQL версии 4.1 и ниже больше не поддерживаются.
5.3.9 | Добавлена поддержка SSL в mysqlnd с OpenSSL.
5.3.7 | Добавлена поддержка SSL в libmysqlclient с OpenSSL.

Предопределенные константы

Перечисленные ниже константы определены данным драйвером и будут доступны только в случае, если PHP был собран с поддержкой этого расширения или данное расширение было подгружено динамически во время выполнения. Вдобавок, эти драйверо-зависимые константы должны быть использованы только совместно с этим драйвером. Использование атрибутов, специфичных для некоторого драйвера с другим драйвером может вызвать неожиданное поведение. Если ваш код выполняется с несколькими драйверами, то можно использовать функцию PDO::getAttribute() для получения атрибута PDO::ATTR_DRIVER_NAME для проверки драйвера.

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (integer)
Если этот атрибут установлен в TRUE в PDOStatement, MySQL-драйвер будет использовать буферизованные версии API MySQL. Если вы пишете переносимый на другие библиотеки код, вы должны использовать PDOStatement::fetchAll().

Пример #1 Буферизация запросов в MySQL

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
    $stmt = $db->prepare('select * from foo',
        array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
} else {
    die("приложение работает только с mysql; Следует использовать \$stmt->fetchAll() вместо этого");
}
?>

PDO::MYSQL_ATTR_LOCAL_INFILE (integer)

Включить LOAD LOCAL INFILE.

Обратите внимание, что эта константа может быть использована только в массиве driver_options при создании дескриптора новой базы данных.

PDO::MYSQL_ATTR_INIT_COMMAND (integer)

Команда, которую необходимо выполнить при подключении к MySQL-серверу. Также будет автоматически выполнена при переподключении.

Обратите внимание, что эта константа может быть использована только в массиве driver_options при создании дескриптора новой базы данных.

PDO::MYSQL_ATTR_READ_DEFAULT_FILE (integer)

Чтение именованных параметров из файла my.cnf. Эта опция недоступна, если используется mysqlnd, потому что mysqlnd не читает файлы конфигурации MySQL.

PDO::MYSQL_ATTR_READ_DEFAULT_GROUP (integer)

Чтение именованной группы параметров из файла my.cnf или из файла, определенного в константе MYSQL_READ_DEFAULT_FILE. Эта опция недоступна, если используется mysqlnd, потому что mysqlnd не читает файлы конфигурации MySQL.

PDO::MYSQL_ATTR_MAX_BUFFER_SIZE (integer)

Максимальный размер буфера. По умолчанию равен 1 Мб. Эта константа не поддерживается при компиляции вместе с mysqlnd.

PDO::MYSQL_ATTR_DIRECT_QUERY (integer)

Выполнять прямые запросы, не использовать подготовленные конструкции.

PDO::MYSQL_ATTR_FOUND_ROWS (integer)

Возвращает количество найденных (совпавших) строк, а не количество измененных строк.

PDO::MYSQL_ATTR_IGNORE_SPACE (integer)

Разрешает пробелы после имен функций. Делает все имена функций зарезервированными словами.

PDO::MYSQL_ATTR_COMPRESS (integer)

Включить сжатие сетевого соединения. Эта константа поддерживается при компиляции вместе с mysqlnd, начиная c PHP 5.3.11.

PDO::MYSQL_ATTR_SSL_CA (integer)

Путь к файлу сертификата SSL.

Существует, начиная с PHP 5.3.7.

PDO::MYSQL_ATTR_SSL_CAPATH (integer)

Путь к директории, которая содержит SSL-сертификаты доверенных центров (CA), хранящиеся в формате PEM.

Существует, начиная с PHP 5.3.7.

PDO::MYSQL_ATTR_SSL_CERT (integer)

Путь к файлу с SSL-сертификатом.

Существует, начиная с PHP 5.3.7.

PDO::MYSQL_ATTR_SSL_CIPHER (integer)

Список из одного или более допустимых шифров для использования в SSL-шифровании в формате, который понимает OpenSSL. Например: DHE-RSA-AES256-SHA:AES128-SHA

Существует, начиная с PHP 5.3.7.

PDO::MYSQL_ATTR_SSL_KEY (integer)

Путь к файлу с ключом SSL.

Существует, начиная с PHP 5.3.7.

PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT (integer)

Предоставляет способ отключения проверки SSL-сертификата сервера.

Существует, начиная с PHP 7.0.18 и PHP 7.1.4.

PDO::MYSQL_ATTR_MULTI_STATEMENTS (integer)

Если установлено как FALSE, запрещает запуск множественных запросов, как для PDO::prepare(), так и для PDO::query().

Обратите внимание, что эта константа может быть использована только в массиве driver_options при создании нового дескриптора БД.

Существует, начиная с PHP 5.5.21 и PHP 5.6.5.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции конфигурации PDO_MYSQL
Имя | По умолчанию | Место изменения
pdo_mysql.default_socket | "/tmp/mysql.sock" | PHP_INI_SYSTEM
pdo_mysql.debug | NULL | PHP_INI_SYSTEM
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

pdo_mysql.default_socket string

Устанавливает сокет домена UNIX. Эту опцию необходимо указать во время компиляции, если сокет домена найден во время конфигурирования. Эта настройка только для Unix.

pdo_mysql.debug boolean

Разрешает отладку для PDO_MYSQL. Эта настройка доступна только, если PDO_MYSQL скомпилирован с "mysqlnd" и в режиме отладки PDO.

Содержание

  • PDO_MYSQL DSN — Соединение с базой данных MySQL


Соединение с базой данных MySQL

  • « MySQL (PDO)
  • MS SQL Server (PDO) »
  • PHP Manual
  • MySQL (PDO)
  • Соединение с базой данных MySQL

PDO_MYSQL DSN

(PECL PDO_MYSQL >= 0.1.0)

PDO_MYSQL DSN — Соединение с базой данных MySQL

Описание

Имя источника данных (Data Source Name или DSN) PDO_MYSQL состоит из следующих элементов:

DSN префикc

DSN-префикс - это mysql:.

host

Имя хоста, где находится сервер баз данных.

port

Номер порта, который слушает сервер баз данных.

dbname

Имя базы данных.

unix_socket

Сокет MySQL Unix (не должен использоваться совместно с host или port).

charset

Кодировка. См. раздел Кодировки для дополнительной информации.

До PHP 5.3.6 этот элемент игнорировался. Частично этот параметр можно заменить с помощью PDO::MYSQL_ATTR_INIT_COMMAND, как показанно в примере ниже.

Внимание

Метод в примере ниже может быть использован только с кодировками, которые совпадают в части 7-битного представления ASCII, таких как ISO-8859-1 и UTF-8. Пользователи, использующие кодировки с другим представлением (такие как UTF-16 или Big5) должны использовать опцию charset, добавленную в PHP 5.3.6 и более поздних версиях.

Пример #1 Установка набора символов соединения UTF-8 до PHP 5.3.6

<?php
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'username';
$password = 'password';
$options = array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);

$dbh = new PDO($dsn, $username, $password, $options);
?>

Список изменений

Версия | Описание
5.3.6 | До версии 5.3.6 параметр charset игнорировался.

Примеры

Пример #2 Примеры DNS для PDO_MYSQL

Следующие примеры показывают использование PDO_MYSQL DSN для соединения с базой данных MySQL:

mysql:host=localhost;dbname=testdb
Более сложный пример:
mysql:host=localhost;port=3307;dbname=testdb
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb

Примечания

Замечание: Только Unix:

Если имя хоста установлено как "localhost", то соединение поисходит через сокет домена. Если PDO_MYSQL скомпилирован с использованием libmysqlclient, то путь к файлу-сокета будет совпадать с путем, по которому скомпилирован libmysqlclient. Если PDO_MYSQL скомпилирован с использованием mysqlnd, значение сокета по умолчанию, может быть выставлено с использованием настройки pdo_mysql.default_socket.


Функции модуля PDO_SQLSRV для Microsoft SQL Server

Введение

PDO_SQLSRV — это драйвер, реализующий интерфейс PHP Data Objects (PDO) для получения доступа из PHP к базам данных MS SQL Server (начиная с версии SQL Server 2005) и SQL Azure.

Установка

Модуль PDO_SQLSRV включается добавлением соответствующего файла DLL в директорию модулей вашей установленной копии PHP и соответствующей записи в файл php.ini. Загружаемая копия модуля PDO_SQLSRV включает в себя восемь файлов драйверов, четыре из них для поддержки PDO. Если вы используете потоконебезопасную сборку PHP (PHP 5.3), используйте php_pdo_sqlsrv_53_nts.dll (вы должны использовать потоконебезопасную версию, если в качестве веб-сервера у вас установлен IIS). Если же вы используете потокобезопасную сборку, то должны использовать php_pdo_sqlsrv_52_ts_vc6.dll. Аналогично, для PHP 5.4 используйте php_pdo_sqlsrv_54_nts.dll или php_pdo_sqlsrv_54_ts.dll.

Наиболее часто используемая версия драйвера доступна здесь: » Загрузка SQLSRV. Если вам нужна поддержка PHP 5.2 и/или PHP скомпилирован с использованием VC6, используйте релиз драйвера 2.0: » Загрузка SQLSRV 2.0. Исходный код драйвера размещен в » публичном репозитории.

За подробностями о системных требованиях обратитесь к разделу » Системные требования SQLSRV.

Модуль PDO_SQLSRV может использоваться с PHP только в ОС Windows. Для Linux используйте ODBC и » Microsoft's SQL Server ODBC Driver для Linux.

Предопределенные константы

Перечисленные ниже константы определены данным драйвером и будут доступны только в случае, если PHP был собран с поддержкой этого расширения или данное расширение было подгружено динамически во время выполнения. Вдобавок, эти драйверо-зависимые константы должны быть использованы только совместно с этим драйвером. Использование атрибутов, специфичных для некоторого драйвера с другим драйвером может вызвать неожиданное поведение. Если ваш код выполняется с несколькими драйверами, то можно использовать функцию PDO::getAttribute() для получения атрибута PDO::ATTR_DRIVER_NAME для проверки драйвера.

PDO::SQLSRV_TXN_READ_UNCOMMITTED (integer)
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN. Устанавливает уровень изоляции транзакций для соединения в значение Read Uncommitted.
PDO::SQLSRV_TXN_READ_COMMITTED (integer)
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN. Устанавливает уровень изоляции транзакций для соединения в значение Read Committed.
PDO::SQLSRV_TXN_REPEATABLE_READ (integer)
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN. Устанавливает уровень изоляции транзакций для соединения в значение Repeateable Read.
PDO::SQLSRV_TXN_SNAPSHOT (integer)
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN. Устанавливает уровень изоляции транзакций для соединения в значение Snapshot.
PDO::SQLSRV_TXN_SERIALIZABLE (integer)
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN. Устанавливает уровень изоляции транзакций для соединения в значение Serializable.
PDO::SQLSRV_ENCODING_BINARY (integer)
Определяет, что данные отправляются/получаются в виде потока байтов к/от сервера без выполнения преобразования кодировки или другого преобразования. Константа может быть передана в функции PDOStatement::setAttribute, PDO::prepare, PDOStatement::bindColumn и PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_SYSTEM (integer)
Определяет, что данные отправляются/получаются к/от сервера в 8ми-битной кодировке локали Windows, установленной в системе. Все мультибайтовые символы и символы, не преобразуемые в данную кодировку, заменяются символом вопроса (?). Константа может быть передана в функции PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn и PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_UTF8 (integer)
Определяет, что данные отправляются/получаются к/от сервера в кодировке UTF-8. Константа может быть передана в функции PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn и PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_DEFAULT (integer)
Определяет, что данные отправляются/получаются к/от сервера согласно значению PDO::SQLSRV_ENCODING_SYSTEM, указанному при подключении. Для подключения может использоваться кодировка, указанная при подготовке выражения. Константа может быть передана в функции PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn и PDOStatement::bindParam.
PDO::SQLSRV_ATTR_QUERY_TIMEOUT (integer)
Неотрицательное целое число, отражающее период тайм-аута в секундах. Ноль (0) - это значение по умолчанию, означающее, что время тайм-аута не учитывается. Константа может быть передана в функции PDOStatement::setAttribute, PDO::setAttribute и PDO::prepare.
PDO::SQLSRV_ATTR_DIRECT_QUERY (integer)
Показывает, что запрос должен быть немедленно выполнен, без подготовки выражения. Константа может быть передана в функции PDO::setAttribute и PDO::prepare. За подробностями обратитесь к разделу документации » Немедленное выполнение выражений и выполнение подготовленных выражений.

Содержание

  • PDO_SQLSRV DSN — Подключение к базам данных MS SQL Server и SQL Azure


Подключение к базам данных MS SQL Server и SQL Azure

  • « MS SQL Server (PDO)
  • Oracle (PDO) »
  • PHP Manual
  • MS SQL Server (PDO)
  • Подключение к базам данных MS SQL Server и SQL Azure

PDO_SQLSRV DSN

(Информация о версии неизвестна, возможно, только в Git)

PDO_SQLSRV DSN — Подключение к базам данных MS SQL Server и SQL Azure

Описание

Строка источника данных (Data Source Name, DSN) для PDO_SQLSRV состоит из следующих элементов:

Префикс DSN

Префикс DSN равен sqlsrv:.

APP

Имя приложения, используемое при трассировке.

ConnectionPooling

Определяет, берется ли соединение из пула соединений (1 или TRUE) или нет (0 или FALSE).

Database

Имя базы данных.

Encrypt

Определяет, будут ли шифроваться данные коммуникации с SQL Server (1 или TRUE) или не будут (0 или FALSE).

Failover_Partner

Определяет сервер и экземпляр зеркала базы данных (если включено и настроено) в случае недоступности первичного сервера.

LoginTimeout

Определяет время ожидания подключения (в секундах).

MultipleActiveResultSets

Отключает или явно включает поддержку функции Multiple Active Result Sets (MARS) - возвращение нескольких результирующих наборов.

QuotedId

Определяет, использовать для заключения в кавычки идентификаторов стандарт SQL-92 (1 или TRUE) или правила, задаваемые Transact-SQL (0 или FALSE).

Server

Имя сервера базы данных.

TraceFile

Определяет путь до файла, используемого для данных трассировки.

TraceOn

Определяет, включена ли для создаваемого соединения функция трассировки ODBC (1 или TRUE) или отключена (0 или FALSE).

TransactionIsolation

Определяет уровень изоляции транзакций. Допустимые значения данной опции -
PDO::SQLSRV_TXN_READ_UNCOMMITTED, PDO::SQLSRV_TXN_READ_COMMITTED,
PDO::SQLSRV_TXN_REPEATABLE_READ, PDO::SQLSRV_TXN_SNAPSHOT и
PDO::SQLSRV_TXN_SERIALIZABLE.

TrustServerCertificate

Определяет, должен ли клиент принимать (1 или TRUE) или отклонять (0 or FALSE) самозаверенные (self-signed) сертификаты сервера.

WSID

Определяет имя компьютера для трассировки.

Примеры

Пример #1 Примеры PDO_SQLSRV DSN

Следующий пример показывает, как подключаться к определенной базе данных MS SQL Server:

$c = new PDO("sqlsrv:Server=localhost;Database=testdb", "UserName", "Password");

Следующий пример показывает, как подключаться к базе данных MS SQL Server по определенному порту:

$c = new PDO("sqlsrv:Server=localhost,1521;Database=testdb", "UserName", "Password");

Следующий пример показывает, как подключаться к базе данных SQL Azure с идентификатором сервера 12345abcde. Примечание: при соединении к SQL Azure с помощью PDO, имя пользователя будет равно UserName@12345abcde (UserName@ServerId).

$c = new PDO("sqlsrv:Server=12345abcde.database.windows.net;Database=testdb", "UserName@12345abcde", "Password");


Функции Oracle (PDO_OCI)

Установка

Если база данных Oracle находится на том же компьютере, что и PHP, программное обеспечение базы данных уже содержит необходимые библиотеки. Если PHP находится на другом компьютере, используйте бесплатные библиотеки » Oracle Instant Client. Подробнее смотрите в требованиях OCI8.

Для установки расширения PDO Oracle OCI используйте опцию --with-pdo-oci[=DIR] , , где [=DIR] - необязательное значение, указывающее на домашнюю директорию Oracle. По умолчанию [=DIR] принимает значение переменной окружения $ORACLE_HOME.

Используйте опцию --with-pdo-oci=instantclient,prefix,version Для Oracle Instant Client SDK, с указанными префиксом и версией.

// Использование $ORACLE_HOME
$ ./configure --with-pdo-oci

// Использование OIC для Linux с версией 10.2.0.3 и префиксом /usr
$ ./configure --with-pdo-oci=instantclient,/usr,10.2.0.3

Предопределенные константы

Перечисленные ниже константы определены данным драйвером и будут доступны только в случае, если PHP был собран с поддержкой этого расширения или данное расширение было подгружено динамически во время выполнения. Вдобавок, эти драйверо-зависимые константы должны быть использованы только совместно с этим драйвером. Использование атрибутов, специфичных для некоторого драйвера с другим драйвером может вызвать неожиданное поведение. Если ваш код выполняется с несколькими драйверами, то можно использовать функцию PDO::getAttribute() для получения атрибута PDO::ATTR_DRIVER_NAME для проверки драйвера.

PDO::OCI_ATTR_ACTION (integer)

Позволяет задать действие для сессии.

Существует, начиная с PHP 7.2.16 и 7.3.3

PDO::OCI_ATTR_CLIENT_INFO (integer)

Позволяет задать информацию по клиенту для сессии.

Существует, начиная с PHP 7.2.16 и 7.3.3

PDO::OCI_ATTR_CLIENT_IDENTIFIER (integer)

Позволяет задать идентификатор клиента для сессии.

Существует, начиная с PHP 7.2.16 и 7.3.3

PDO::OCI_ATTR_MODULE (integer)

Позволяет задать модуль для сессии.

Существует, начиная с PHP 7.2.16 и 7.3.3

Содержание

  • PDO_OCI DSN — Соединение с базой данных Oracle


Соединение с базой данных Oracle

  • « Oracle (PDO)
  • ODBC и DB2 (PDO) »
  • PHP Manual
  • Oracle (PDO)
  • Соединение с базой данных Oracle

PDO_OCI DSN

(PECL PDO_OCI >= 0.1.0)

PDO_OCI DSN — Соединение с базой данных Oracle

Описание

Строка подключения (Data Source Name, DSN) PDO_OCI состоит из следующих элементов:

Префикс DSN

oci:.

dbname (Oracle Instant Client)

URI для Oracle Instant Client имеет вид dbname=//hostname:port-number/database. Если вы соединяетесь с базой данных, указанной в tnsnames.ora, то вы можете использовать только ее имя: dbname=database.

charset

Кодировка на стороне клиента для заданного окружения.

Примеры

Пример #1 Примеры использования PDO_OCI DSN

Следующие примеры показывают соединение с базой данных Oracle:

// Соединение с базой данных, указанной в tnsnames.ora
oci:dbname=mydb

// Соединение с использованием Oracle Instant Client
oci:dbname=//localhost:1521/mydb


Функции ODBC и DB2 (PDO_ODBC)

Введение

PDO_ODBC - драйвер, реализующий интерфейс PHP Data Objects (PDO) для доступа к базам данных через драйвер ODBC или через библиотеку IBM DB2 Call Level Interface (DB2 CLI). В текущий момент PDO_ODBC поддерживает различные "оттенки" драйверов баз данных:

ibm-db2

Поддержка доступа к серверам IBM DB2 Universal Database, Cloudscape и Apache Derby через свободный клиент DB2 express-C.

unixODBC

Поддерживает доступ к базам данных через менеджер драйверов unixODBC и собственные ODBC драйверы баз данных.

generic

Предоставляет опцию компиляции менеджеров драйверов ODBC, которые не поддерживаются PDO_ODBC напрямую.

В Windows php_pdo_odbc.dll должно быть разрешено как расширение в php.ini. Оно собирается с участием Windows ODBC Driver Manager, так что PHP сможет соединяться с любой базой данных определенной как System DSN и является рекомендованным для использования для соединения с базами данных Microsoft SQL Server.

Установка

PDO_ODBC на UNIX системах

  1. Начиная с PHP 5.1, расширение PDO_ODBC включено в исходный код PHP. Вы можете скомпилировать это расширение как статическое или разделяемое, используя следующий синтаксис configure.

    ibm_db2

    ./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/
    Для сборки PDO_ODBC для ibm-db2 вам потребуется предварительно установить заголовочные файлы пакета разработчика приложений DB2. Заголовочные файлы пакета разработчика приложений DB2 можно установить как с помощью установочного пакета сервера DB2, так и в составе отдельного клиента "DB2 Application Development Client", доступного для загрузки с » сайта поддержки IBM developerWorks.

    Если вы не укажете директорию установки библиотек и заголовочных файлов DB2, configure будет искать их в /home/db2inst1/sqllib.

    unixODBC

    ./configure --with-pdo-odbc=unixODBC,/usr/local
    Если вы не укажете директорию установки библиотек и заголовочных файлов unixODBC, configure будет искать их в /usr/local.

    generic
    ./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Конфигурационные опции PDO_ODBC
Имя | По умолчанию | Место изменения | Список изменений
pdo_odbc.connection_pooling | "strict" | PHP_INI_ALL | Доступно с PHP 5.1.0.
pdo_odbc.db2_instance_name | NULL | PHP_INI_SYSTEM | Доступно с PHP 5.1.1. Эта возможность устарела и будет обязательно удалена в будущем.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

pdo_odbc.connection_pooling string

Нужно ли объединять соединения ODBC. Может быть "strict", "relaxed" или "off" (аналогично ""). Параметр определяет как строго менеджер соединений должен сравнивать параметры соединений для выбора, создавать новое соединение или возвращать уже существующее. По умолчанию рекомендуется использовать strict, что означает, что сохраненное соединение будет возвращаться только, если все параметры точно совпадают. relaxed приведет к тому, что закешированное соединение будет возвращено, если параметры схожи. Это приведет к более активному использованию кеша, но может привести к утечке информации о соединении (к примеру) между виртуальными хостами.

Эту настройку можно изменить только в php.ini и воздействует на все процессы; все модули, загшруженные в процексс и использующие те же библиотеки ODBC будут зависить от этой настройки, включая Унифицированное расширение ODBC.

Внимание

Значение relaxed не должно использоваться на общем хостинге в целях безопасности.

Подсказка

Если у вас нет очень серьезного повода использовать значение, отличное от strict - не меняйте его.

pdo_odbc.db2_instance_name string

Если вы скомпилировали PDO_ODBC с использованием db2, эта опция установит значение переменной окружения DB2INSTANCE в системах Linux и UNIX, равным выбранному имени экземпляра DB2. Это позволяет PDO_ODBC опредилить местоположение библиотек DB2 и произвести соединение с каталогом базы данных DB2.

Эту настройку можно изменить только в php.ini и воздействует на все процессы; все модули, загруженные в процексс и использующие те же библиотеки ODBC будут зависить от этой настройки, включая унифицированное расширение ODBC.

Эта опция не работает в Windows.

Содержание

  • PDO_ODBC DSN — Соединение с базами данных ODBC или DB2


Соединение с базами данных ODBC или DB2

  • « ODBC и DB2 (PDO)
  • PostgreSQL (PDO) »
  • PHP Manual
  • ODBC и DB2 (PDO)
  • Соединение с базами данных ODBC или DB2

PDO_ODBC DSN

(PECL PDO_ODBC >= 0.1.0)

PDO_ODBC DSN — Соединение с базами данных ODBC или DB2

Описание

Имя источника данных (Data Source Name, DSN) PDO_ODBC состоит из следующих элементов:

Префикс DSN

odbc:. Если вы соединяетесь с базой, указанной в каталоге менеджера драйверов ODBC или каталоге DB2, вы можете добавить имя в этом каталоге в DSN.

DSN

Имя базы данных как указано в каталоге менеджера драйверов ODBC или в каталоге DB2. Также вы можете указать полную строку соединения ODBC, как описано тут » http://www.connectionstrings.com/.

UID

Имя пользователя для соединения. Если вы указываете имя пользователя в строке DSN, PDO будет игнорировать имя, заданное аргументом в конструкторе PDO.

PWD

Пароль пользователя для соединения. Если вы указываете пароль пользователя в строке DSN, PDO будет игнорировать пароль, заданный аргументом в конструкторе PDO.

Примеры

Пример #1 Пример PDO_ODBC DSN (менеджер драйверов ODBC)

В следующем примере показано использование PDO_ODBC DSN для соединения с базой данных, определенной в каталоге ODBC как testdb:

odbc:testdb

Пример #2 Пример использования PDO_ODBC DSN (некаталогизированное соединение IBM DB2)

В следующем примере показано использование PDO_ODBC DSN для соединения с базой данных IBM DB2 по имени SAMPLE, используя полную строку ODBC DSN:

odbc:DRIVER={IBM DB2 ODBC DRIVER};HOSTNAME=localhost;PORT=50000;DATABASE=SAMPLE;PROTOCOL=TCPIP;UID=db2inst1;PWD=ibmdb2;

Пример #3 Пример использования PDO_ODBC DSN (некаталогизированное соединение Microsoft Access)

В следующем примере показано использование PDO_ODBC DSN для соединения с базой Microsoft Access, хранящейся в C:\db.mdb, используя полную строку ODBC DSN:

odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\db.mdb;Uid=Admin


Функции PostgreSQL (PDO_PGSQL)

Введение

PDO_PGSQL - это драйвер реализующий интерфейс PHP Data Objects (PDO) для доступа к базам данных PostgreSQL.

Типы ресурсов

Это расширение определяет потоковый ресурс, возвращаемый PDO::pgsqlLOBOpen().

Установка

Для установки расширения PDO PostgreSQL используйте опцию --with-pdo-pgsql[=DIR] , где [=DIR] - необязательное значение, указывающее на директорию установки базы PostgreSQL или путь до pg_config.

$ ./configure --with-pdo-pgsql

Содержание

  • PDO_PGSQL DSN — Соединение с базой данных PostgreSQL
  • PDO::pgsqlCopyFromArray — Копировать массив PHP в таблицу
  • PDO::pgsqlCopyFromFile — Скопировать данные из файла в таблицу
  • PDO::pgsqlCopyToArray — Выгрузить данные из таблицы в массив PHP
  • PDO::pgsqlCopyToFile — Выгрузка таблицы в файл
  • PDO::pgsqlGetNotify — Получить асинхронное уведомление
  • PDO::pgsqlGetPid — Получает PID сервера
  • PDO::pgsqlLOBCreate — Создать новый большой объект (LOB)
  • PDO::pgsqlLOBOpen — Открывает поток для существующего большого объекта
  • PDO::pgsqlLOBUnlink — Удалить большой объект


Соединение с базой данных PostgreSQL

  • « PostgreSQL (PDO)
  • PDO::pgsqlCopyFromArray »
  • PHP Manual
  • PostgreSQL (PDO)
  • Соединение с базой данных PostgreSQL

PDO_PGSQL DSN

(PECL PDO_PGSQL >= 0.1.0)

PDO_PGSQL DSN — Соединение с базой данных PostgreSQL

Описание

Строка подключания (Data Source Name или DSN) PDO_PGSQL состоит из следующих элементов, разделенных пробелом либо точкой с запятой:

Префикс DSN

pgsql:.

host

Имя хоста, на котором расположена база данных.

port

Порт, на котором эта база данных ждет подключения.

dbname

Имя базы данных.

user

Имя пользователя для соединения. Если вы зададите имя пользователя в DSN, PDO проигнорирует значение, переданное в качестве параметра конструктору.

password

Пароль пользователя для соединения. Если вы зададите пароль в DSN, PDO проигнорирует значение, переданное в качестве параметра конструктору.

Замечание:

Поля bytea возвращаются как потоки.

Примеры

Пример #1 Примеры PDO_PGSQL DSN

Следующий пример демонстрирует строку подключения к базе PostgreSQL:

pgsql:host=localhost;port=5432;dbname=testdb;user=bruce;password=mypass


Копировать массив PHP в таблицу

  • « PDO_PGSQL DSN
  • PDO::pgsqlCopyFromFile »
  • PHP Manual
  • PostgreSQL (PDO)
  • Копировать массив PHP в таблицу

PDO::pgsqlCopyFromArray

(PHP 5 >= 5.3.3, PHP 7)

PDO::pgsqlCopyFromArray — Копировать массив PHP в таблицу

Описание

public PDO::pgsqlCopyFromArray ( string $table_name , array $rows [, string $delimiter = '\t' [, string $null_as = "\\\\N" [, string $fields ]]] ) : bool

Копирует данные из массива rows в таблицу table_name с использованием разделителя полей delimiter и списка полей fields

Список параметров

table_name

Строка с именем таблицы

rows

Массив строк с полями, разделенными delimiter

delimiter

Разделитель, используемый в массиве rows

null_as

Как интерпретировать значения NULL

fields

Список полей для вставки

Возвращаемые значения

Возвращает TRUE или или FALSE в случае возникновения ошибки.


Скопировать данные из файла в таблицу

  • « PDO::pgsqlCopyFromArray
  • PDO::pgsqlCopyToArray »
  • PHP Manual
  • PostgreSQL (PDO)
  • Скопировать данные из файла в таблицу

PDO::pgsqlCopyFromFile

(PHP 5 >= 5.3.3, PHP 7)

PDO::pgsqlCopyFromFile — Скопировать данные из файла в таблицу

Описание

public PDO::pgsqlCopyFromFile ( string $table_name , string $filename [, string $delimiter = '\t' [, string $null_as = "\\\\N" [, string $fields ]]] ) : bool

Копирует строки из файла filename в таблицу table_name используя разделитель полей delimiter и список полей fields

Список параметров

table_name

Строка с именем таблицы

filename

Имя файла с данными

delimiter

Разделитель полей, используемый в filename

null_as

Как интерпретировать значения NULL

fields

Список полей для вставки

Возвращаемые значения

Возвращает TRUE или или FALSE в случае возникновения ошибки.


Выгрузить данные из таблицы в массив PHP

  • « PDO::pgsqlCopyFromFile
  • PDO::pgsqlCopyToFile »
  • PHP Manual
  • PostgreSQL (PDO)
  • Выгрузить данные из таблицы в массив PHP

PDO::pgsqlCopyToArray

(PHP 5 >= 5.3.3, PHP 7)

PDO::pgsqlCopyToArray — Выгрузить данные из таблицы в массив PHP

Описание

public PDO::pgsqlCopyToArray ( string $table_name [, string $delimiter = '\t' [, string $null_as = "\\\\N" [, string $fields ]]] ) : array

Выгружает данные из таблицы table в массив, используя разделитель delimiter и список полей fields

Список параметров

table_name

Строка с именем таблицы

delimiter

Разделитель полей

null_as

Как интерпретировать значения NULL

fields

Список полей для вставки

Возвращаемые значения

Возвращает массив строк, или FALSE в случае возникновения ошибки.


Выгрузка таблицы в файл

  • « PDO::pgsqlCopyToArray
  • PDO::pgsqlGetNotify »
  • PHP Manual
  • PostgreSQL (PDO)
  • Выгрузка таблицы в файл

PDO::pgsqlCopyToFile

(PHP 5 >= 5.3.3, PHP 7)

PDO::pgsqlCopyToFile — Выгрузка таблицы в файл

Описание

public PDO::pgsqlCopyToFile ( string $table_name , string $filename [, string $delimiter = '\t' [, string $null_as = "\\\\N" [, string $fields ]]] ) : bool

Выгружает данные в файл filename используя разделитель полей delimiter и список полей fields

Список параметров

table_name

Строка с именем таблицы

filename

Имя файла

delimiter

Разделитель полей, используемый в filename

null_as

Как интерпретировать значения NULL

fields

Список полей для вставки

Возвращаемые значения

Возвращает TRUE в случае успеха, или FALSE в случае возникновения ошибки.


Получить асинхронное уведомление

  • « PDO::pgsqlCopyToFile
  • PDO::pgsqlGetPid »
  • PHP Manual
  • PostgreSQL (PDO)
  • Получить асинхронное уведомление

PDO::pgsqlGetNotify

(PHP 5 >= 5.6.0, PHP 7)

PDO::pgsqlGetNotify — Получить асинхронное уведомление

Описание

public PDO::pgsqlGetNotify ([ int $result_type = PDO::FETCH_USE_DEFAULT [, int $ms_timeout = 0 ]] ) : array

Возвращает результирующий набор, представляющий ожидание асинхронного уведомления.

Список параметров

result_type

Формат, в котором должен вернутся результирующий набор, представленный как одна из констант PDO::FETCH_*.

ms_timeout

Время ожидания ответа в миллисекундах.

Возвращаемые значения

Если одно или больше уведомлений находятся в режиме ожидания, возвращает одну строку с полями message и pid, иначе возвращает FALSE.


Получает PID сервера

  • « PDO::pgsqlGetNotify
  • PDO::pgsqlLOBCreate »
  • PHP Manual
  • PostgreSQL (PDO)
  • Получает PID сервера

PDO::pgsqlGetPid

(PHP 5 >= 5.6.0, PHP 7)

PDO::pgsqlGetPid — Получает PID сервера

Описание

public PDO::pgsqlGetPid ( void ) : int

Возвращает PID сервера.

Возвращаемые значения

PID сервера.


Создать новый большой объект (LOB)

  • « PDO::pgsqlGetPid
  • PDO::pgsqlLOBOpen »
  • PHP Manual
  • PostgreSQL (PDO)
  • Создать новый большой объект (LOB)

PDO::pgsqlLOBCreate

(PHP 5 >= 5.1.2, PHP 7, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBCreate — Создать новый большой объект (LOB)

Описание

public PDO::pgsqlLOBCreate ( void ) : string

Функция PDO::pgsqlLOBCreate() создает большой объект (LOB) и возвращает его OID. Вы можете открыть поток для чтения или изменения объекта, используя функцию PDO::pgsqlLOBOpen(). OID можно сохранить в столбце типа OID и использовать как ссылку на LOB не вызывая неконтролируемого увеличения размера строк. LOB будет жить в базе данных пока не будет удален с помощью функции PDO::pgsqlLOBUnlink().

Большие объекты могут быть до 2ГБ размером, но они очень громоздкие. Вы должны убедиться, что выполнили PDO::pgsqlLOBUnlink() до того, как удалите последнюю строку в вашей БД, которая ссылается на его OID. К тому же, большие объекты не имеют контроля доступа. В качестве альтернативы попробуйте использовать тип данных bytea. Последние версии PostgreSQL разрешают столбцы типа bytea до 1ГБ размером и прозрачно управляют табличным пространством для оптимизации длины строк.

Замечание: Эту функцию необходимо выполнять в транзакции.

Список параметров

PDO::pgsqlLOBCreate() не принимает параметров.

Возвращаемые значения

Возвращает OID созданного объекта или FALSE.

Примеры

Пример #1 Пример использования PDO::pgsqlLOBCreate()

В этом примере создается LOB и наполняется данными из файла. После этого его OID сохраняется в таблице.

<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$oid = $db->pgsqlLOBCreate();
$stream = $db->pgsqlLOBOpen($oid, 'w');
$local = fopen($filename, 'rb');
stream_copy_to_stream($local, $stream);
$local = null;
$stream = null;
$stmt = $db->prepare("INSERT INTO BLOBS (ident, oid) VALUES (?, ?)");
$stmt->execute(array($some_id, $oid));
$db->commit();
?>

Смотрите также

  • PDO::pgsqlLOBOpen() - Открывает поток для существующего большого объекта
  • PDO::pgsqlLOBUnlink() - Удалить большой объект
  • pg_lo_create() - Создает большой объект


Открывает поток для существующего большого объекта

  • « PDO::pgsqlLOBCreate
  • PDO::pgsqlLOBUnlink »
  • PHP Manual
  • PostgreSQL (PDO)
  • Открывает поток для существующего большого объекта

PDO::pgsqlLOBOpen

(PHP 5 >= 5.1.2, PHP 7, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBOpen — Открывает поток для существующего большого объекта

Описание

public PDO::pgsqlLOBOpen ( string $oid [, string $mode = "rb" ] ) : resource

Функция PDO::pgsqlLOBOpen() открывает поток к большому объекту (LOB) заданному с помощью oid. Если mode задан как r, поток открывается для чтения. Если mode задан как w, то для записи. Для манипуляции с потоком вы можете использовать обычные файловые функции, такие как fread(), fwrite() и fgets().

Замечание: Эта функция и все манипуляции с LOB должны совершаться в транзакции.

Список параметров

oid

Идентификатор большого объекта.

mode

Если r, то поток открывается на чтение. Если w, то поток открывается на запись.

Возвращаемые значения

Возвращает ресурс потока в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования PDO::pgsqlLOBOpen()

Продолжая пример из описания PDO::pgsqlLOBCreate(), этот код извлекает LOB из БД и выводит его в браузер.

<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$stmt = $db->prepare("select oid from BLOBS where ident = ?");
$stmt->execute(array($some_id));
$stmt->bindColumn('oid', $oid, PDO::PARAM_STR);
$stmt->fetch(PDO::FETCH_BOUND);
$stream = $db->pgsqlLOBOpen($oid, 'r');
header("Content-type: application/octet-stream");
fpassthru($stream);
?>

Смотрите также

  • PDO::pgsqlLOBCreate() - Создать новый большой объект (LOB)
  • PDO::pgsqlLOBUnlink() - Удалить большой объект
  • pg_lo_open() - Открывает большой объект базы данных


Удалить большой объект

  • « PDO::pgsqlLOBOpen
  • SQLite (PDO) »
  • PHP Manual
  • PostgreSQL (PDO)
  • Удалить большой объект

PDO::pgsqlLOBUnlink

(PHP 5 >= 5.1.2, PHP 7, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBUnlink — Удалить большой объект

Описание

public PDO::pgsqlLOBUnlink ( string $oid ) : bool

Удаляет большой объект (LOB) из БД по его OID.

Замечание: Эту функция необходимо выполнять в транзакции.

Список параметров

oid

Идентификатор LOB

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования PDO::pgsqlLOBUnlink()

В этом примере мы удаляем большой объект из БД до того, как удалим ссылающиеся на него строки из таблицы, хранящей информацию о больших объектах, которую мы использовали в примерах для функций PDO::pgsqlLOBCreate() и PDO::pgsqlLOBOpen().

<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$db->pgsqlLOBUnlink($oid);
$stmt = $db->prepare("DELETE FROM BLOBS where ident = ?");
$stmt->execute(array($some_id));
$db->commit();
?>

Смотрите также

  • PDO::pgsqlLOBOpen() - Открывает поток для существующего большого объекта
  • PDO::pgsqlLOBCreate() - Создать новый большой объект (LOB)


Функции SQLite (PDO_SQLITE)

Введение

PDO_SQLITE — это драйвер, который реализует интерфейс Data Objects (PDO) для обеспечения доступа к базам данных SQLite 3.

В PHP 5.1 расширение SQLite также обеспечивает работу драйвера для базы данных SQLite 2; хотя это не техническая часть драйвера PDO_SQLITE, но он работает аналогично, так что это тоже документировано. Драйвер SQLite 2 для PDO предоставляется прежде всего для того, чтобы упростить импорт устаревших файлов базы данных SQLite 2 в приложение, использующее более быстрый эффективный драйвер SQLite 3. Как результат, драйвер SQLite 2 не такой многофункциональный, как драйвер SQLite 3.

Замечание:

PDO_SQLITE позволяет использовать строки помимо потоков вместе с PDO::PARAM_LOB.

Установка

Драйвер PDO_SQLITE PDO доступен по умолчанию. Для отключения используйте --without-pdo-sqlite[=DIR] , где [=DIR] - директория, куда установлен sqlite. Начиная с PHP 7.4.0 требуется библиотека » libsqlite версии 3.5.0 или новее. Ранее встроенный из коробки libsqlite мог использовался вместо этого, и был значением по умолчанию, если опция [=DIR] не задана.

Замечание: Дополнительная настройка на Windows с PHP 7.4.0

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: libsqlite3.dll.

Содержание

  • PDO_SQLITE DSN — Соединение с базой данных SQLite
  • PDO::sqliteCreateAggregate — Регистрация агрегирующей пользовательской функции для использования в SQL-запросах
  • PDO::sqliteCreateCollation — Регистрация пользовательской функции сортировки для использования в SQL-запросах
  • PDO::sqliteCreateFunction — Регистрация пользовательской функции для использования в SQL-запросах


Соединение с базой данных SQLite

  • « SQLite (PDO)
  • PDO::sqliteCreateAggregate »
  • PHP Manual
  • SQLite (PDO)
  • Соединение с базой данных SQLite

PDO_SQLITE DSN

(PECL PDO_SQLITE >= 0.2.0)

PDO_SQLITE DSN — Соединение с базой данных SQLite

Описание

Имя источника данных (Data Source Name, DSN) PDO_SQLITE состоит из следующих элементов:

DSN-префикс (SQLite 3)

DSN-префикс - это sqlite:.

  • Для доступа к базе данных на диске, добавьте абсолютный путь к DSN-префиксу.

  • Для создания базы данных в памяти, добавьте :memory: к DSN-префиксу.

DSN-префикс (SQLite 2)

Расширение SQLite в PHP 5.1 предоставляет драйвер PDO, поддерживающий доступ и создание баз данных SQLite 2. Это дает вам возможность работать с базами данных, созданных с помощью SQLite в более ранних версиях PHP.

Замечание:

Драйвер sqlite2 доступен в PHP 5.1.x, только если вы разрешили и PDO и ext/sqlite. На данный момент он не доступен в PECL.

DSN-префикс для соединения с SQLite 2 - sqlite2:.

  • Для доступа к базе данных на диске, добавьте абсолютный путь к DSN-префиксу.

  • Для создания базы данных в памяти, добавьте :memory: к DSN-префиксу.

Примеры

Пример #1 Пример DSN PDO_SQLITE

В следующем примере показаны DSN PDO_SQLITE для соединения с SQLite:

sqlite:/opt/databases/mydb.sq3
sqlite::memory:
sqlite2:/opt/databases/mydb.sq2
sqlite2::memory:


Регистрация агрегирующей пользовательской функции для использования в SQL-запросах

  • « PDO_SQLITE DSN
  • PDO::sqliteCreateCollation »
  • PHP Manual
  • SQLite (PDO)
  • Регистрация агрегирующей пользовательской функции для использования в SQL-запросах

PDO::sqliteCreateAggregate

(PHP 5 >= 5.1.0, PHP 7, PECL pdo_sqlite >= 1.0.0)

PDO::sqliteCreateAggregate — Регистрация агрегирующей пользовательской функции для использования в SQL-запросах

Описание

public PDO::sqliteCreateAggregate ( string $function_name , callable $step_func , callable $finalize_func [, int $num_args ] ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Этот метод аналогичен PDO::sqliteCreateFunction, за исключением того, что он регистрирует функцию, которую можно использовать для вычисления агрегированного результата по всем строкам в запросе.

Ключевое отличие этого метода от PDO::sqliteCreateFunction в том, что для управление агрегированием требует использование двух функций.

Список параметров

function_name

Имя функции для использовании в запросах.

step_func

Функция обратного вызова для каждой строки в результирующем наборе. Ваша PHP-функция должна аккумулировать результат и сохранять его в контексте агрегации.

Эта функция должна быть определена следующим образом:

step ( mixed $context , int $rownumber , mixed $value1 [, mixed $... ] ) : mixed
context

Для первой строки должено равняться NULL; Для всех последующих строк его значение должно быть равно значению, возвращенному на предыдущем шаге; вы должны использовать его для сохранения состояния агрегации.

rownumber

Номер текущей строки.

value1

Первый аргумент переданный агрегатору.

...

Последующие аргументы.

Возвращаемое значение функции будет использовано как параметр context при следующем запуске функции, либо как значение передаваемое финализирующей функции.

finalize_func

Функция обратного вызова для вычисление итогового агрегированного значения. Она будет вызвана как только все строки результирующего набора будут обработаны, ей будет передан агрегирующий контекст и она вернет финальное значение. Данная функция должна вернуть значение типа понятного SQLite (т.е. скалярный тип).

Эта функция должна быть определена следующим образом:

fini ( mixed $context , int $rowcount ) : mixed
context

Содержит значение, возвращанное самым последним вызовом агрегирующей функции step_func.

rowcount

Количество строк, к которым применялась агрегирующая функция.

Возвращаемое значение этой функции будет использовано как результат агрегации.

num_args

Подсказка для парсера SQLite, если функция обратного вызова получает заданное количество аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример агрегирующей функции max_length

<?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, $rownumber, $string)
{
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
    return $context;
}

function max_len_finalize($context, $rowcount)
{
    return $context === null ? 0 : $context;
}

$db->sqliteCreateAggregate('max_len', 'max_len_step', 'max_len_finalize');

var_dump($db->query('SELECT max_len(a) from strings')->fetchAll());

?>

В этом примере мы создали агрегирующую функцию, которая вычисляет длину самой большой строки в одном из столбцов таблицы. Для каждой строки, вызывается функция max_len_step и ей передается параметр $context. Этот параметр, как и любая другая переменная PHP может содержать и массив и объект. В данном примере она используется для хранения максимальной длины строки; Если $string имеет длину большую, чем содержится в контексте, мы обновляем контекст новым значением.

После того, как будут обработаны все строки, SQLite вызовет функцию max_len_finalize для вычисления результата агрегации. В ней мы производим вычисления, основываясь на данных из $context. В нашем простом примере мы просто возвращаем его значение, так как никакие дополнительные вычисления не требуются.

Подсказка

КРАЙНЕ НЕ рекомендуется сохранять в контексте копии значений для обработки их в финализирующей функции, так как это повлечет за собой большой перерасход памяти SQLite для обработки запроса. Просто представьте, сколько памяти вам понадобится, если вам потребуется агрегировать, например, миллион значений по 32 байта.

Подсказка

Вы можете использовать PDO::sqliteCreateFunction и PDO::sqliteCreateAggregate для переопределения стандартных агрегирующих функций SQLite.

Замечание:

Этот метод недоступен с драйвером SQLite2. В этом случае используйте старое sqlite API.

Смотрите также

  • PDO::sqliteCreateFunction
  • sqlite_create_function() - Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах
  • sqlite_create_aggregate() - Регистрирует агрегирующую функцию для использования в SQL-запросах


Регистрация пользовательской функции сортировки для использования в SQL-запросах

  • « PDO::sqliteCreateAggregate
  • PDO::sqliteCreateFunction »
  • PHP Manual
  • SQLite (PDO)
  • Регистрация пользовательской функции сортировки для использования в SQL-запросах

PDO::sqliteCreateCollation

(PHP 5 >= 5.3.11, PHP 7)

PDO::sqliteCreateCollation — Регистрация пользовательской функции сортировки для использования в SQL-запросах

Описание

public PDO::sqliteCreateCollation ( string $name , callable $callback ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

name

Имя функции для использовании в запросах.

callback

Имя функции PHP, либо определенная пользователем функция для использования в качестве функции обратного вызова и определяющая поведение при сортировке. Она должна принимать две строки и возвращать -1 или 1, если первая строка должна располагаться до или после второй строки соответственно, либо 0, если порядок не важен.

Эта функция должна быть определена следующим образом:

collation ( string $string1 , string $string2 ) : int

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования PDO::sqliteCreateCollation()

<?php
$db = new PDO('sqlite::memory:');
$db->exec("CREATE TABLE test (col1 string)");
$db->exec("INSERT INTO test VALUES ('a1')");
$db->exec("INSERT INTO test VALUES ('a10')");
$db->exec("INSERT INTO test VALUES ('a2')");

$db->sqliteCreateCollation('NATURAL_CMP', 'strnatcmp');
foreach ($db->query("SELECT col1 FROM test ORDER BY col1") as $row) {
  echo $row['col1'] . "\n";
}
echo "\n";
foreach ($db->query("SELECT col1 FROM test ORDER BY col1 COLLATE NATURAL_CMP") as $row) {
  echo $row['col1'] . "\n";
}
?>

Результат выполнения данного примера:

a1
a10
a2

a1
a2
a10

Примечания

Замечание:

Этот метод недоступен с драйвером SQLite2. В этом случае используйте старое sqlite API.


Регистрация пользовательской функции для использования в SQL-запросах

  • « PDO::sqliteCreateCollation
  • 4D (PDO) »
  • PHP Manual
  • SQLite (PDO)
  • Регистрация пользовательской функции для использования в SQL-запросах

PDO::sqliteCreateFunction

(PHP 5 >= 5.1.0, PHP 7, PECL pdo_sqlite >= 1.0.0)

PDO::sqliteCreateFunction — Регистрация пользовательской функции для использования в SQL-запросах

Описание

public PDO::sqliteCreateFunction ( string $function_name , callable $callback [, int $num_args = -1 [, int $flags = 0 ]] ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Этот метод позволяет вам регистрировать функцию PHP как пользовательскую функцию SQLite (User Defined Function, UDF), что позволит использовать ее в SQL-запросах.

UDF можно использовать в любом SQL-запросе, в котором позволяется использовать функции, например SELECT, UPDATE, а также в триггерах.

Список параметров

function_name

Имя функции для использовании в запросах.

callback

Функция обратного вызова для обработки вызовов SQL-функции.

Замечание: Функция обратного вызова должна возвращать значение понятного SQLite типа (то есть скалярного типа).

Эта функция должна быть определена следующим образом:

callback ( mixed $value1 [, mixed $... ] ) : mixed
value1

Первый аргумент передаваемый в SQL-функцию.

...

Последующие аргументы.

num_args

Количество аргументов, которое принимает функция. Если задать равным -1, то функция будет принимать любое количество аргументов.

flags

Побитовая конъюнкция (ИЛИ) флагов. На данный момент поддерживается только флаг PDO::SQLITE_DETERMINISTIC, который определяет то, что функция всегда возвращает одинаковый результат для одинаковых входных значений.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.4 | Добавлен параметр flags.

Примеры

Пример #1 Пример использования PDO::sqliteCreateFunction()

<?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();
?>

В этом примере мы определили функцию, вычисляющую md5 сумму строки и переворачивающую ее. Когда SQL-запрос будет запущен, полученные значения filename будут преобразованы этой функцией. Результирующий набор $rows будет содержать преобразованные значения.

Красота подобного подхода заключается в том, что вам не нужно после получения результирующего набора пробегаться по нему циклом foreach для вычисления нужных значений.

Подсказка

Вы можете использовать PDO::sqliteCreateFunction и PDO::sqliteCreateAggregate для переопределения стандартных аггрегирующих функций SQLite.

Замечание:

Этот метод недоступен с драйвером SQLite2. В этом случае используйте старое sqlite API.

Смотрите также

  • PDO::sqliteCreateAggregate
  • sqlite_create_function() - Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах
  • sqlite_create_aggregate() - Регистрирует агрегирующую функцию для использования в SQL-запросах


Функции 4D (PDO_4D)

Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

PDO_4D - драйвер, реализующий интерфейс PHP Data Objects (PDO) для доступа к базам данных 4D.

4D является интегрированной платформой, которая ускоряет и облегчает разработку и развертывание бизнес-приложений, используемая более чем в 70 странах тысячами разработчиков и провайдерами вертикальных решений с миллионами конечных пользователей по всему миру.

Предлагая набор интегрированных инструментов, таких как ANSI SQL, реляционные и транзакционные базы данных, графическое окружение разработки, язык четвертого поколения с более чем 1000 высокоуровневых комманд, встроенный сервер HTTP, сервер приложений и т.д. 4D облегчает создание и поддержку приложений обслуживающих от сотни до тысяч одновременных пользователей на Windows, Mac или на любом веб-клиенте.

Также 4D является открытой платформой, предоставляющей полноценное API для создания плагинов, включая различные коннекторы, позволяющие им работать как бекенд или фронтенд для различных окружений (Oracle через OCI, сервер и клиент SOAP, источник данных Flex, все базы данных ODBC, XML поверх HTTP и т.д.)

В дополнение к возможности взаимодействовать с приложениями 4D через веб-сервисы, теперь к базам данных 4D можно подключаться напрямую через драйвер PDO_4D.

Более подробно об окружении разработки 4D читайте тут » http://www.4d.com/.

PDO_4D умеет работать с 4D версии 12 beta и выше, для macOS и Windows. Более старые версии тоже будут работать, но нестабильно.

Содержание

  • PDO_4D DSN — Соединение с сервером 4D SQL
  • Константы PDO_4D — Константы PDO_4D
  • Типы SQL с PDO_4D и PHP — SQL-типы с PDO_4D и PHP
  • SQL, принимаемый 4D — PDO и SQL 4D
  • Примеры использования PDO_4D — Примеры использования PDO_4D


Соединение с сервером 4D SQL

  • « 4D (PDO)
  • Константы PDO_4D »
  • PHP Manual
  • 4D (PDO)
  • Соединение с сервером 4D SQL

PDO_4D DSN

(Информация о версии неизвестна, возможно, только в Git)

PDO_4D DSN — Соединение с сервером 4D SQL

Описание

Имя источника данных (Data Source Name, DSN) PDO_4D состоит из:

Префикса DSN

4D:.

host

Имя хоста, на котором развернута база данных.

port

Опционально. Порт, на котором база данных ожидает соединения.

user

Имя пользователя для соединения.

password

Пароль пользователя.

dbname

Имя базы данных. Опциональный параметр, не используется.

charset

Кодировка 4D.

Примеры

Пример #1 Пример DSN для PDO_4D

В следующем примере указаны два DSN для PDO_4D,:

4D:host=localhost;CHARSET=Windows-1251
Другие доступные значения:
4D:host=localhost
4D:


Константы PDO_4D

(Информация о версии неизвестна, возможно, только в Git)

Константы PDO_4D — Константы PDO_4D

Предопределенные константы

Перечисленные ниже константы определены данным драйвером и будут доступны только в случае, если PHP был собран с поддержкой этого расширения или данное расширение было подгружено динамически во время выполнения. Вдобавок, эти драйверо-зависимые константы должны быть использованы только совместно с этим драйвером. Использование атрибутов, специфичных для некоторого драйвера с другим драйвером может вызвать неожиданное поведение. Если ваш код выполняется с несколькими драйверами, то можно использовать функцию PDO::getAttribute() для получения атрибута PDO::ATTR_DRIVER_NAME для проверки драйвера.

PDO::FOURD_ATTR_CHARSET (integer)

Изменяет кодировку, в которой 4D возхвращает дату. (По умолчанию UTF-8).

PDO::FOURD_ATTR_PREFERRED_IMAGE_TYPES (integer)

Запрашиваемый формат изображения, когда выбирается строка, содержащая поле типа PICTURE. Может быть любого типа, который поддерживает 4D.


SQL-типы с PDO_4D и PHP

  • « Константы PDO_4D
  • SQL, принимаемый 4D »
  • PHP Manual
  • 4D (PDO)
  • SQL-типы с PDO_4D и PHP

Типы SQL с PDO_4D и PHP

(Информация о версии неизвестна, возможно, только в Git)

Типы SQL с PDO_4D и PHP — SQL-типы с PDO_4D и PHP

Поддерживаемые типы SQL
Тип SQL 4D | Эквивалент 4D | Комментарий
ALPHA_NUMERIC | TEXT |
VARCHAR | TEXT |
TEXT | TEXT |
TIMESTAMP | DATE |
INTERVAL | HOUR |
DURATION | HOUR |
BOOLEAN | BOOLEAN |
BIT | BOOLEAN |
BYTE | INT32 |
INT16 | SMALLINT |
SMALLINT | SMALLINT |
INT32 | INT32 |
INT | INT32 |
INT64 | INT64 |
NUMERIC | INT64 |
REAL | REAL | Не поддерживается (используйте VARCHAR)
FLOAT | FLOAT | Не поддерживается (используйте VARCHAR)
DOUBLE PRECISION | FLOAT |
BLOB | BLOB | Должно использоваться в подготовленных запросах и PDO::PARAM_LOB
BIT VARYING | BLOB | Должно использоваться в подготовленных запросах и PDO::PARAM_LOB
CLOB | TEXT |
PICTURE | PICTURE | Должно использоваться в подготовленных запросах и PDO::PARAM_LOB


PDO и SQL 4D

  • « Типы SQL с PDO_4D и PHP
  • Примеры использования PDO_4D »
  • PHP Manual
  • 4D (PDO)
  • PDO и SQL 4D

SQL, принимаемый 4D

(Информация о версии неизвестна, возможно, только в Git)

SQL, принимаемый 4D — PDO и SQL 4D

Описание

4D строго реализует стандарт ANSI 89 и соблюдает его. Крайне рекомендуется изучить документацию по 4D SQL перед его использованием. Документация расположена по ссылке » http://doc.4d.com/. Ниже представлен список характеристик 4D SQL: он не полон, но может использоваться для составления общего представления.

Характеристики 4D SQL
Характеристики | Альтернативы | Примечания
INTEGER | Модифицируйте SQL для использования INT. | INT является поддерживаемым целочисленным типом в 4Dv12.0.
CHAR | Используйте VARCHAR. | Не поддерживается в 4Dv12.0
UNION | Не поддерживается. Используйте несколько запросов. | Не поддерживается в 4Dv12.0
SELECT 1 + 1; | SELECT 1 + 1 FROM _USER_SCHEMAS; | FROM обязателен
FLOAT | Преобразуйте значения FLOAT или STRING с помощью функций SQL 4D (CAST, ROUND, TRUNC или TRUNCATE) | Не поддерживается в текущей версии драйвера PDO_4D
Строгая типизация | Убедитесь, что ваш запрос SQL или ваш код PHP задает данные того типа, который ожидается | Другими словами, нельзя вставить значение '1' (как строку) в столбец типа INTEGER.
PDO::execute($row)(): работает только если все поля таблицы имеют тип TEXT или VARCHAR | Используйте подготовленные запросы и используйте корректные типы. | Модуль PDO преобразует все значения, переданные через execute() в строки и ожидает, что база данных воспримет их корректно.
SELECT NULL FROM TABLE | Не используйте константу NULL. Извлекайте ее из таблицы. | Недопустимо использовать константу NULL в операторе SELECT
SELECT * FROM TABLE WHERE 1 | Используйте WHERE 1 = 1 | В операторе WHERE недопустимо использовать константы
SHOW TABLES | Используйте системные таблицы | Список таблиц, схемы, индексы и т.д. хранятся в следующих системных таблицах: _USER_TABLES, _USER_COLUMNS, _USER_INDEXES, _USER_CONSTRAINTS, _USER_IND_COLUMNS, _USER_CONS_COLUMNS и _USER_SCHEMAS.
Разделитель структуры SQL | Используйте следующую функцию для защиты элементов SQL: function sqlEscapeElement(elem) { return '[' . str_replace(']',']]', $elem) . ']'; } | Для экранирования имен элементов SQL (таблиц, полей, пользователей, групп, схем, первичных ключей и т.д.), поместите их в квадратные скобки, а закрывающие скобки должны быть задвоены.


Примеры использования PDO_4D

(Информация о версии неизвестна, возможно, только в Git)

Примеры использования PDO_4D — Примеры использования PDO_4D

Простой пример демонстрирующий соединение, запуск запроса, чтение данных и закрытие соединения.

Пример #1 Простой пример PDO_4D

<?php
$dsn = '4D:host=localhost;CHARSET=Windows-1251';
$user = 'test';
$pass = 'test';

// Соединение с сервером 4D SQL
$db = new PDO($dsn, $user, $pass);

try {
    $db->exec('CREATE TABLE test(id varCHAR(1) NOT NULL, val VARCHAR(10))');
} catch (PDOException $e) {
    die("Erreur 4D : " . $e->getMessage());
}

$db->exec("INSERT INTO test VALUES('A', 'B')");
$db->exec("INSERT INTO test VALUES('C', 'D')");
$db->exec("INSERT INTO test VALUES('E', 'F')");

$stmt = $db->prepare('SELECT id, val from test');

$stmt->execute();
print_r($stmt->fetchAll());

unset($stmt);
unset($db);
?>

Результат выполнения данного примера:

    Array
(
    [0] => Array
        (
            [ID] => A
            [0] => A
            [VAL] => B
            [1] => B
        )

    [1] => Array
        (
            [ID] => C
            [0] => C
            [VAL] => D
            [1] => D
        )

    [2] => Array
        (
            [ID] => E
            [0] => E
            [VAL] => F
            [1] => F
        )

)

Этот пример демонстрирует как выполнять запрос в языке 4D, и как читать результат через PDO_4D.

Пример #2 Доступ к языку 4D из pdo_4d

Установка метода 4D, вызывающего method. Убедитесь, что в свойствах метода установлена опция Available via SQL. Соответствующий код 4D:

C_TEXT($0)
$0:=Application Version(*)

Код PHP, использующий заданный выше метод 4D:

<?php
$dsn = '4D:host=localhost;CHARSET=Windows-1251';
$user = 'test';
$pass = 'test';

// Соединение с сервером 4D
$db = new PDO($dsn, $user, $pass);

$stmt = $db->prepare('SELECT {FN method() AS VARCHAR } FROM _USER_SCHEMAS LIMIT 1');

$stmt->execute();
print_r($stmt->fetchAll());

unset($stmt);
unset($db);
?>

Результат выполнения данного примера:

(
    [0] => Array
        (
            [<expression>] => F0011140
            [0] => F0011140
        )

)

Пример #3 Экранирование имен таблиц 4D

В этом примере показывается, как правильно экранировать имена таблиц в SQL-запросе 4D.

<?php
$dsn = '4D:host=localhost;CHARSET=Windows-1251';
$user = 'test';
$pass = 'test';

// Соединение с сервером 4D
$db = new PDO($dsn, $user, $pass);

$objects = array('[',']','[]','][','[[',']]','[[[',']]]','TBL ]]32[23');

foreach($objects as $id => $object) {
    $object = str_replace(']',']]', $object);
    print "$object\n";

    $db->exec('CREATE TABLE IF NOT EXISTS ['.$object.'](['.$object.'] FLOAT)');

    $req = "INSERT INTO [$object] ([$object]) VALUES ($id);";
    $db->query($req);

    $q = $db->prepare("SELECT [$object] FROM [$object]");
    $q->execute();
    $x[] = $q->fetch(PDO::FETCH_NUM);

    $db->exec('DROP TABLE ['.$object.'];');
}

?>

Результат выполнения данного примера:

[
]]
[]]
]][
[[
]]]]
[[[
]]]]]]
TBL ]]]]32[23


Расширения для работы с базами данных отдельных производителей

  • CUBRID
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции CUBRID
    • Функции совместимости CUBRID MySQL
    • Устаревшие псевдонимы и функции CUBRID
  • DB++
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции DB++
  • dBase
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • dBase
  • filePro
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции filePro
  • Firebird/InterBase
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Firebird/InterBase
  • FrontBase
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции FrontBase
  • IBM DB2 — IBM DB2, Cloudscape и Apache Derby
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции IBM DB2
  • Informix
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Informix
  • Ingres — Ingres DBMS, EDBC и Enterprise Access Gateways
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции Ingres
  • MaxDB
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции MaxDB
  • Mongo — Драйвер MongoDB (устаревший)
    • Установка и настройка
    • Предопределенные константы
    • Manual
    • Базовые классы
    • Типы
    • Классы GridFS
    • Пакетные классы
    • Дополнительно
    • Функции Mongo
    • Исключения
    • Список изменений
  • MongoDB — Драйвер MongoDB
    • Установка и настройка
    • Обучающие материалы
    • Архитектура и внутреннее устройство драйвера — Обзор архитектуры драйвера и ее особенностей
    • Безопасность
    • MongoDB\Driver — Классы драйвера MongoDB
    • MongoDB\BSON — Классы типов BSON и функции сериализации
    • MongoDB\Driver\Monitoring — Классы мониторинга и функции подписчика
    • MongoDB\Driver\Exception — Классы исключений
  • mSQL
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • mSQL Функции
  • Mssql — Microsoft SQL Server
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Mssql Функции
  • MySQL — MySQL драйверы и плагины
    • Обзор PHP драйверов MySQL
    • MySQLi — Улучшенный модуль MySQL (MySQL Improved)
    • Mysql_xdevapi
    • MySQL (Original) — Оригинальное API MySQL
    • Mysqlnd — Встроенный драйвер MySQL
    • mysqlnd_ms — Плагин репликации и балансировки нагрузки для mysqlnd
    • mysqlnd_qc — Mysqlnd query result cache plugin
    • mysqlnd_uh — Mysqlnd user handler plugin
    • mysqlnd_mux — Mysqlnd connection multiplexing plugin
    • mysqlnd_memcache — Плагин Mysqlnd Memcache
  • OCI8 — Oracle OCI8
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Работа с соединениями OCI8 и Connection Pooling
    • Поддержка OCI8 Fast Application Notification (FAN)
    • Поддержка прозрачного для приложений восстановления после отказа (Transparent Application Failover или TAF) для OCI8
    • OCI8 и динамическая трассировка DTrace
    • Поддерживаемые типы данных
    • OCI8 Функции
    • OCI-Collection — Класс OCI-Collection
    • OCI-Lob — Класс OCI-Lob
    • Устаревшие наименования и функции OCI8
  • Paradox — Доступ к файлам Paradox
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Paradox
  • PostgreSQL
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции PostgreSQL
  • SQLite
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • SQLite
  • SQLite3
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • SQLite3 — Класс SQLite3
    • SQLite3Stmt — Класс SQLite3Stmt
    • SQLite3Result — Класс SQLite3Result
  • SQLSRV — Драйвер СУБД Microsoft SQL Server для PHP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции SQLSRV
  • Sybase
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Sybase
  • tokyo_tyrant
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • TokyoTyrant — The TokyoTyrant class
    • TokyoTyrantTable — The TokyoTyrantTable class
    • TokyoTyrantQuery — The TokyoTyrantQuery class
    • TokyoTyrantIterator — The TokyoTyrantIterator class
    • TokyoTyrantException — The TokyoTyrantException class


CUBRID

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции CUBRID
    • cubrid_bind — Связывает переменные с подготовленным запросом
    • cubrid_close_prepare — Закрывает обработчик запроса
    • cubrid_close_request — Закрывает обработчик запроса
    • cubrid_col_get — Получение контента столбца типа коллекция по OID
    • cubrid_col_size — Получает количество элементов в столбце типа коллекция по OID
    • cubrid_column_names — Получить имена столбцов в результирующем наборе
    • cubrid_column_types — Получить типы столбцов в результирующем наборе
    • cubrid_commit — Подтверждение транзакции
    • cubrid_connect_with_url — Создает окружение для соединения с сервером CUBRID
    • cubrid_connect — Открывает соединение к серверу CUBRID
    • cubrid_current_oid — Возвращает OID текущей позиции курсора
    • cubrid_disconnect — Закрывает соединение с базой данных
    • cubrid_drop — Удаление экземпляра по OID
    • cubrid_error_code_facility — Получить код уровня, на котором произошла ошибка
    • cubrid_error_code — Получить код ошибки
    • cubrid_error_msg — Возвращает текст последней произошедшей ошибки
    • cubrid_execute — Execute a prepared SQL statement
    • cubrid_fetch — Fetch the next row from a result set
    • cubrid_free_result — Free the memory occupied by the result data
    • cubrid_get_autocommit — Возвращает настройку авто-коммита для соединения
    • cubrid_get_charset — Возвращает кодировку текущего соединения CUBRID
    • cubrid_get_class_name — Get the class name using OID
    • cubrid_get_client_info — Return the client library version
    • cubrid_get_db_parameter — Returns the CUBRID database parameters
    • cubrid_get_query_timeout — Get the query timeout value of the request
    • cubrid_get_server_info — Return the CUBRID server version
    • cubrid_get — Get a column using OID
    • cubrid_insert_id — Return the ID generated for the last updated AUTO_INCREMENT column
    • cubrid_is_instance — Check whether the instance pointed by OID exists
    • cubrid_lob_close — Close BLOB/CLOB data
    • cubrid_lob_export — Export BLOB/CLOB data to file
    • cubrid_lob_get — Get BLOB/CLOB data
    • cubrid_lob_send — Read BLOB/CLOB data and send straight to browser
    • cubrid_lob_size — Get BLOB/CLOB data size
    • cubrid_lob2_bind — Bind a lob object or a string as a lob object to a prepared statement as parameters
    • cubrid_lob2_close — Close LOB object
    • cubrid_lob2_export — Export the lob object to a file
    • cubrid_lob2_import — Import BLOB/CLOB data from a file
    • cubrid_lob2_new — Create a lob object
    • cubrid_lob2_read — Read from BLOB/CLOB data
    • cubrid_lob2_seek64 — Move the cursor of a lob object
    • cubrid_lob2_seek — Move the cursor of a lob object
    • cubrid_lob2_size64 — Get a lob object's size
    • cubrid_lob2_size — Get a lob object's size
    • cubrid_lob2_tell64 — Tell the cursor position of the LOB object
    • cubrid_lob2_tell — Tell the cursor position of the LOB object
    • cubrid_lob2_write — Write to a lob object
    • cubrid_lock_read — Set a read lock on the given OID
    • cubrid_lock_write — Set a write lock on the given OID
    • cubrid_move_cursor — Move the cursor in the result
    • cubrid_next_result — Get result of next query when executing multiple SQL statements
    • cubrid_num_cols — Return the number of columns in the result set
    • cubrid_num_rows — Get the number of rows in the result set
    • cubrid_pconnect_with_url — Open a persistent connection to CUBRID server
    • cubrid_pconnect — Open a persistent connection to a CUBRID server
    • cubrid_prepare — Prepare a SQL statement for execution
    • cubrid_put — Update a column using OID
    • cubrid_rollback — Roll back a transaction
    • cubrid_schema — Get the requested schema information
    • cubrid_seq_drop — Delete an element from sequence type column using OID
    • cubrid_seq_insert — Insert an element to a sequence type column using OID
    • cubrid_seq_put — Update the element value of sequence type column using OID
    • cubrid_set_add — Insert a single element to set type column using OID
    • cubrid_set_autocommit — Устанавливает режим авто-коммита для соединения
    • cubrid_set_db_parameter — Sets the CUBRID database parameters
    • cubrid_set_drop — Delete an element from set type column using OID
    • cubrid_set_query_timeout — Set the timeout time of query execution
    • cubrid_version — Получить версию модуля CUBRID PHP
  • Функции совместимости CUBRID MySQL
    • cubrid_affected_rows — Количество строк, затронутых последним SQL-запросом
    • cubrid_client_encoding — Возвращает кодировку текущего соединения CUBRID
    • cubrid_close — Закрывает соединение с базой данных
    • cubrid_data_seek — Переместить внутренний указатель в результирующем наборе CUBRID
    • cubrid_db_name — Получение имени базы данных из результата cubrid_list_dbs
    • cubrid_errno — Возвращает код ошибки предыдущей операции CUBRID
    • cubrid_error — Возвращает текст последней произошедшей ошибки
    • cubrid_fetch_array — Извлечение строки из результирующего набора в виде ассоциативного массива, индексированного массива или обоих сразу
    • cubrid_fetch_assoc — Извлечь строку из результирующего набора в виде ассоциативного массива
    • cubrid_fetch_field — Получение информации о столбце результирующего набора в виде объекта
    • cubrid_fetch_lengths — Возвращает массив, содержащий длины всех столбцов текущей строки
    • cubrid_fetch_object — Извлечь следующую строку как объект
    • cubrid_fetch_row — Извлечь строку из результирующего набора в виде индексированного массива
    • cubrid_field_flags — Получить строку, содержащую флаги столбца по указанному индексу
    • cubrid_field_len — Получить максимальную длину указанного столбца
    • cubrid_field_name — Получить имя указанного столбца
    • cubrid_field_seek — Переместить внутренний указатель результирующего набора на указанный столбец
    • cubrid_field_table — Получить имя таблицы, которой принадлежит указанный столбец
    • cubrid_field_type — Получить тип указанного столбца
    • cubrid_list_dbs — Получить массив со списком всех баз данных CUBRID
    • cubrid_num_fields — Получить количество столбцов в результирующем наборе
    • cubrid_ping — Проверяет, живо ли соединение к серверу и переподнимает его, если нет
    • cubrid_query — Отправка запроса CUBRID
    • cubrid_real_escape_string — Экранирование специальных символов в SQL-запросе
    • cubrid_result — Получить значение из заданного столбца заданной строки
    • cubrid_unbuffered_query — Выполнение запроса без загрузки результата в память
  • Устаревшие псевдонимы и функции CUBRID
    • cubrid_load_from_glo — Читает данные из экземпляра GLO и записывает их в файл
    • cubrid_new_glo — Создает экземпляр glo
    • cubrid_save_to_glo — Сохраняет запрошенный файл в экземпляре GLO
    • cubrid_send_glo — Чтение данных из glo и вывод их в стандартное устройство вывода


Введение

Эти функции позволяют получить доступ серверам баз данных CUBRID. Больше информации о CUBRID можно найти на сайте » CUBRID.

Также посмотрите » Документацию CUBRID.


Требования

Для того, чтобы эти функции были доступны, необходимо установить CUBRID и скомпилировать CUBRID PHP Library с его поддержкой.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/cubrid.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Инструкцию по ручной установке под Linux и Windows читайте в файле build-guide.html, включенном в пакет.


  • « Установка
  • Типы ресурсов »
  • PHP Manual
  • Установка и настройка
  • Настройка во время выполнения

Настройка во время выполнения

Настройки времени исполнения отсутствуют.


Типы ресурсов

Существует четыре типа ресурсов, используемых в CUBRID. Первый - идентификатор соединения, второй - ресурс, хранящий результат запроса, и два последних содержат результаты запроса типов BLOB/CLOB.

идентификатор соединения

Идентификатор соединения, возвращаемый функциями cubrid_connect(),
cubrid_connect_with_url(),
cubrid_pconnect() и
cubrid_pconnect_with_url().

request identifier

Идентификатор запроса, возвращаемый функциями cubrid_prepare() и cubrid_execute().

Идентификатор LOB

Идентификатор LOB, возвращаемый функцией cubrid_lob_get().

LOB2 identifier

Идентификатор LOB, возвращаемый функцией cubrid_lob2_new() или взятый из результирующего набора.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Следующие константы могут быть использованы при создании SQL-запросов. Для этого их можно задать в функциях cubrid_prepare() и cubrid_execute().

Флаги исполнения SQL-запроса CUBRID
Константа | Описание
CUBRID_INCLUDE_OID | Определяет, получать ли OID во время запроса.
CUBRID_ASYNC | Запуск запроса в асинхронном режиме.
CUBRID_EXEC_QUERY_ALL | Запуск запроса в синхронном режиме. Этот флаг необходимо устанавливать когда выполняются множественные SQL-запросы.

Следующие константы используются при извлечении результатов. Их можно задавать в функциях cubrid_fetch() и cubrid_fetch_array().

Флаги извлечения CUBRID
Константа | Описание
CUBRID_NUM | Получить результат в виде индексированного массива (первый индекс 0).
CUBRID_ASSOC | Получить результат в виде ассоциативного массива.
CUBRID_BOTH | Получить результат в виде и индексированного и ассоциативного массивов (по умолчанию).
CUBRID_OBJECT | Получить результат в виде объекта.
CUBRID_LOB | Константа CUBRID_LOB может быть использована при работе с LOB объектами. Ее можно задать в функциях cubrid_fetch(), cubrid_fetch_row(), cubrid_fetch_array(), cubrid_fetch_assoc() и cubrid_fetch_object().

Следующие константы используются при позиционировании курсора в результирующем наборе. Они передаются и возвращаются функцией cubrid_move_cursor().

Флаги позиционирования курсора CUBRID
Константа | Описание
CUBRID_CURSOR_FIRST | Переместить текущий курсов на первую запись.
CUBRID_CURSOR_CURRENT | Перемещать курсор относительно его текущей позиции. Используется по умолчанию.
CUBRID_CURSOR_LAST | Переместить текущий курсов на последнюю запись.
CUBRID_CURSOR_SUCCESS | Возвращается функцией cubrid_move_cursor() в случае успешного выполнения. Флаг удален начиная с версии 8.4.1.
CUBRID_NO_MORE_DATA | Возвращается функцией cubrid_move_cursor() в случае возникновения ошибки. Флаг удален начиная с версии 8.4.1.
CUBRID_CURSOR_ERROR | Возвращается функцией cubrid_move_cursor() в случае возникновения ошибки. Флаг удален начиная с версии 8.4.1.

Следующие константы используются для задания режима автоматического подтверждения транзакций. Устанавливаются в функции cubrid_set_autocommit() или возвращаются cubrid_get_autocommit().

Флаги автоподтверждения транзакций CUBRID
Константа | Описание
CUBRID_AUTOCOMMIT_TRUE | Разрешить режим автоматического подтверждения транзакции.
CUBRID_AUTOCOMMIT_FALSE | Запретить режим автоматического подтверждения транзакции.

Следующие константы можно использовать для задания параметров базы данных. Используются в функции cubrid_set_db_parameter().

Флаги параметров базы данных CUBRID
Константа | Описание
CUBRID_PARAM_ISOLATION_LEVEL | Уровень изоляции для соединения.
CUBRID_PARAM_LOCK_TIMEOUT | Таймаут транзакций.

Следующие константы используются для задания уровня изоляции для транзакций. Задаются в cubrid_set_db_parameter() и возвращаются из cubrid_get_db_parameter().

Флаги уровня изоляции транзакции CUBRID
Константа | Описание
TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE | Самый низкий уровень изоляции (1). Может произойти грязное, неповторяющеся или фантомное чтение для кортежа и не повторяющееся чтение для таблицы.
TRAN_COMMIT_CLASS_COMMIT_INSTANCE | Относительно низкий уровень изоляции (2). Грязного четния не будет, но неповторяющееся или фантомное может произойти.
TRAN_REP_CLASS_UNCOMMIT_INSTANCE | Стандартный уровень изоляции CUBRID (3). Может произойти грязное, неповторяющеся или фантомное чтение для кортежа, но гарантируется повторяемость чтения для таблиц.
TRAN_REP_CLASS_COMMIT_INSTANCE | Относительно низкий уровень изоляции (4). Грязного четния не будет, но неповторяющееся или фантомное может произойти.
TRAN_REP_CLASS_REP_INSTANCE | Относительно высокий уровень изоляции (5). Грязного и неповторяющегося четния не будет, но фантомное может произойти.
TRAN_SERIALIZABLE | Наивысший уровень изоляции (6). Ни грязного, ни фантомного, ни неповторяющегося чтения не произойдет.

Следующие константы используются при получении схемы базы дынных. Используются в функции cubrid_schema().

Флаги схемы CUBRID
Константа | Описание
CUBRID_SCH_CLASS | Получить имя и тип таблицы CUBRID.
CUBRID_SCH_VCLASS | Получить имя и тип представления CUBRID.
CUBRID_SCH_QUERY_SPEC | Получить SQL-код, которым создано представление.
CUBRID_SCH_ATTRIBUTE | Получить атрибуты столбца таблицы.
CUBRID_SCH_CLASS_ATTRIBUTE | Получить атрибуты таблицы.
CUBRID_SCH_METHOD | Получить метод экземпляра. Метод экземпляра - это метод, вызываемый экземпляром класса. Он используется чаще, чем метод класса, поскольку бошьшинство операций запускаются внутри экземпляра.
CUBRID_SCH_CLASS_METHOD | Получить метод класса. Метод класса - это метод, вызываемый объектом класса. Обычно используется для создания нового экземпляра класса или для его инициализации. Также он используется для доступа к атрибутам класса и их изменения.
CUBRID_SCH_METHOD_FILE | Получить информацию о файле, в котором определен метод таблицы.
CUBRID_SCH_SUPERCLASS | Получить имя и тип таблицы из которой наследуются атрибуты.
CUBRID_SCH_SUBCLASS | Получить имя и тип таблицы в которой наследуются атрибуты текущей таблицы.
CUBRID_SCH_CONSTRAINT | Получить ограничения таблицы.
CUBRID_SCH_TRIGGER | получить триггеры таблицы.
CUBRID_SCH_CLASS_PRIVILEGE | Получить информацию о правах доступа к таблице.
CUBRID_SCH_ATTR_PRIVILEGE | Получить информацию о правах доступа к столбцу таблицы.
CUBRID_SCH_DIRECT_SUPER_CLASS | Получить таблицу, являющуюся прямым предком данной.
CUBRID_SCH_PRIMARY_KEY | Получить первичный ключ таблицы.
CUBRID_SCH_IMPORTED_KEYS | Получить импортированные ключи таблицы.
CUBRID_SCH_EXPORTED_KEYS | Получить экспортированные ключи таблицы.
CUBRID_SCH_CROSS_REFERENCE | Получить ссылочные отношения двух таблиц.

Следующие константы используются для обозначения ошибок. Они могут быть возвращены функцией cubrid_error_code_facility().

Коды ошибок CUBRID
Константа | Описание
CUBRID_FACILITY_DBMS | Произошла ошибка в CUBRID dbms.
CUBRID_FACILITY_CAS | Произошла ошибка в cas брокера CUBRID.
CUBRID_FACILITY_CCI | Произошла ошибка в CUBRID cci.
CUBRID_FACILITY_CLIENT | Произошла ошибка в клиенте PHP CUBRID.


Примеры

Простой пример, в котором устанавливается соединение с CUBRID. В этом разделе рассказывается о самых базовых вещах и особенностях, на которые следует обратить внимание. Следующий код будет осуществлять соединение с CUBRID, что подразумевает, что сервер и брокер CUBRID запущены.

Пример ниже использует базу данных demodb, которая создается по умолчанию при установке. Убедитесь, что она создана.

Пример #1 Пример извлечения данных

<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=euc-kr">
    </head>
    <body>
    <center>
    <table border=2>
    <?php
        /**
         * Задаем информация для соединения. host_ip - это IP адрес,
         * на котором запущен брокер CUBRID (например, localhost).
         * host_port - соответственно его порт.
         * Порт задается по умолчанию при установке.
         * Подробности можно узнать в "Administrator's Guide."
         */
        $host_ip = "localhost";
        $host_port = 33000;
        $db_name = "demodb";
        /**
         * Соединяемся с сервером CUBRID. Не производим фактического соединения, а
         * только получаем информацию о нем. Причина, по которой мы не делаем
         * фактического соединения в том, чтобы транзакции обрабатывались более
         * эффективно в трехзвенной архитектуре.
         */
        $cubrid_con = @cubrid_connect($host_ip, $host_port, $db_name);

        if (!$cubrid_con) {
            echo "Ошибка подключения к базе данных";
            exit;
        }
    ?>
    <?php
        $sql = "select sports, count(players) as players from event group by sports";
        /**
         * Запрашиваем у сервера CUBRID результат SQL-запроса.
         * Теперь производим фактическое соединение с сервером CUBRID.
         */
        $result = cubrid_execute($cubrid_con, $sql);

        if ($result) {
            /**
             * Получаем имена столбцов из результирующего набора.
             */
            $columns = cubrid_column_names($result);
            /**
             * Получаем количество столбцов в результирующем наборе.
             */
            $num_fields = cubrid_num_cols($result);
            /**
             * Выводим имена столбцов на экран.
             */
            echo("<tr>");

            while (list($key, $colname) = each($columns)) {
                echo("<td align=center>$colname</td>");
            }

            echo("</tr>");

            /**
             * получаем результаты из результирующего набора.
             */
            while ($row = cubrid_fetch($result)) {
                echo("<tr>");

                for ($i = 0; $i < $num_fields; $i++) {
                    echo("<td align=center>");
                    echo($row[$i]);
                    echo("</td>");
                }

                echo("</tr>");
            }
        }
        /**
         * Модуль PHP в CUBRID работает в трехуровневой архитектуре. Даже когда
         * вызывается SELECT для обработки транзакций, он обрабатывается как часть
         * транзакции. action. Следовательно, транзакцию надо либо подтвердить, либо
         * откатить, даже когда вызывается SELECT.
         */
        cubrid_commit($cubrid_con);
        cubrid_disconnect($cubrid_con);
    ?>
    </body>
    </html>

Пример #2 Пример вставки данных

<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=euc- kr">
    </head>
    <body>
    <center>
    <table border=2>
    <?php
        /**
         * host_ip - IP адрес сервера, где установлен брокер CUBRID
         * host_port - порт, на котором он слушает
         * db_name - имя базы данных CUBRID
         */
        $host_ip = "localhost";
        $host_port = 33000;
        $db_name = "demodb";
        $cubrid_con = @cubrid_connect($host_ip, $host_port, $db_name);

        if (!$cubrid_con) {
            echo "Ошибка подключения к базе данных";
            exit;
        }
    ?>
    <?php
        $sql = "insert into olympic (host_year,host_nation,host_city,"
            . "opening_date,closing_date) values (2008, 'China', 'Beijing',"
            . "to_date('08-08-2008','mm-dd- yyyy'),to_date('08-24-2008','mm-dd-yyyy')) ;"
        $result = cubrid_execute($cubrid_con, $sql);
        if ($result) {
            /**
             * Обработали успешно, можно фиксировать.
             */
            cubrid_commit($cubrid_con);
            echo("Inserted successfully ");
        } else {
            /**
             * Произошла ошибка, значит выводим ее на экран и откатываемся.
             */
            echo(cubrid_error_msg());
            cubrid_rollback($cubrid_con);
        }
        cubrid_disconnect($cubrid_con);
    ?>
    </body>
    </html>


Функции CUBRID

Содержание

  • cubrid_bind — Связывает переменные с подготовленным запросом
  • cubrid_close_prepare — Закрывает обработчик запроса
  • cubrid_close_request — Закрывает обработчик запроса
  • cubrid_col_get — Получение контента столбца типа коллекция по OID
  • cubrid_col_size — Получает количество элементов в столбце типа коллекция по OID
  • cubrid_column_names — Получить имена столбцов в результирующем наборе
  • cubrid_column_types — Получить типы столбцов в результирующем наборе
  • cubrid_commit — Подтверждение транзакции
  • cubrid_connect_with_url — Создает окружение для соединения с сервером CUBRID
  • cubrid_connect — Открывает соединение к серверу CUBRID
  • cubrid_current_oid — Возвращает OID текущей позиции курсора
  • cubrid_disconnect — Закрывает соединение с базой данных
  • cubrid_drop — Удаление экземпляра по OID
  • cubrid_error_code_facility — Получить код уровня, на котором произошла ошибка
  • cubrid_error_code — Получить код ошибки
  • cubrid_error_msg — Возвращает текст последней произошедшей ошибки
  • cubrid_execute — Execute a prepared SQL statement
  • cubrid_fetch — Fetch the next row from a result set
  • cubrid_free_result — Free the memory occupied by the result data
  • cubrid_get_autocommit — Возвращает настройку авто-коммита для соединения
  • cubrid_get_charset — Возвращает кодировку текущего соединения CUBRID
  • cubrid_get_class_name — Get the class name using OID
  • cubrid_get_client_info — Return the client library version
  • cubrid_get_db_parameter — Returns the CUBRID database parameters
  • cubrid_get_query_timeout — Get the query timeout value of the request
  • cubrid_get_server_info — Return the CUBRID server version
  • cubrid_get — Get a column using OID
  • cubrid_insert_id — Return the ID generated for the last updated AUTO_INCREMENT column
  • cubrid_is_instance — Check whether the instance pointed by OID exists
  • cubrid_lob_close — Close BLOB/CLOB data
  • cubrid_lob_export — Export BLOB/CLOB data to file
  • cubrid_lob_get — Get BLOB/CLOB data
  • cubrid_lob_send — Read BLOB/CLOB data and send straight to browser
  • cubrid_lob_size — Get BLOB/CLOB data size
  • cubrid_lob2_bind — Bind a lob object or a string as a lob object to a prepared statement as parameters
  • cubrid_lob2_close — Close LOB object
  • cubrid_lob2_export — Export the lob object to a file
  • cubrid_lob2_import — Import BLOB/CLOB data from a file
  • cubrid_lob2_new — Create a lob object
  • cubrid_lob2_read — Read from BLOB/CLOB data
  • cubrid_lob2_seek64 — Move the cursor of a lob object
  • cubrid_lob2_seek — Move the cursor of a lob object
  • cubrid_lob2_size64 — Get a lob object's size
  • cubrid_lob2_size — Get a lob object's size
  • cubrid_lob2_tell64 — Tell the cursor position of the LOB object
  • cubrid_lob2_tell — Tell the cursor position of the LOB object
  • cubrid_lob2_write — Write to a lob object
  • cubrid_lock_read — Set a read lock on the given OID
  • cubrid_lock_write — Set a write lock on the given OID
  • cubrid_move_cursor — Move the cursor in the result
  • cubrid_next_result — Get result of next query when executing multiple SQL statements
  • cubrid_num_cols — Return the number of columns in the result set
  • cubrid_num_rows — Get the number of rows in the result set
  • cubrid_pconnect_with_url — Open a persistent connection to CUBRID server
  • cubrid_pconnect — Open a persistent connection to a CUBRID server
  • cubrid_prepare — Prepare a SQL statement for execution
  • cubrid_put — Update a column using OID
  • cubrid_rollback — Roll back a transaction
  • cubrid_schema — Get the requested schema information
  • cubrid_seq_drop — Delete an element from sequence type column using OID
  • cubrid_seq_insert — Insert an element to a sequence type column using OID
  • cubrid_seq_put — Update the element value of sequence type column using OID
  • cubrid_set_add — Insert a single element to set type column using OID
  • cubrid_set_autocommit — Устанавливает режим авто-коммита для соединения
  • cubrid_set_db_parameter — Sets the CUBRID database parameters
  • cubrid_set_drop — Delete an element from set type column using OID
  • cubrid_set_query_timeout — Set the timeout time of query execution
  • cubrid_version — Получить версию модуля CUBRID PHP


Связывает переменные с подготовленным запросом

  • « Функции CUBRID
  • cubrid_close_prepare »
  • PHP Manual
  • Функции CUBRID
  • Связывает переменные с подготовленным запросом

cubrid_bind

(PECL CUBRID >= 8.3.0)

cubrid_bind — Связывает переменные с подготовленным запросом

Описание

cubrid_bind ( resource $req_identifier , int $bind_index , mixed $bind_value [, string $bind_value_type ] ) : bool

Функция cubrid_bind() используется для привязки значений к указанным меткам, либо знакам вопроса, в SQL-запросе, заданном cubrid_prepare(). Если не задан параметр bind_value_type, то будет использоваться строковый тип.

Замечание:

Если привязываемые данные имеют тип BLOB/CLOB, CUBRID попытается использовать их как потоки PHP. Если фактическое привязываемое значение не является потоком, то CUBRID сконвертирует его в строку и будет считать полным путем к файлу, где эти данные лежат.

Если тип данных, которые будут связаны явно является ENUM, то параметр $bind_value должен быть элементом ENUM заданным в виде строки.

В окружении сегмента CUBRID, $bind_value_type должен быть включен в функцию cubrid_bind.

В следующей таблице приведены типы замещающих значений.

Привязка типов в CUBRID
Уровень поддержки | Тип привязки | Соответствующий SQL-тип
Поддерживается | STRING | CHAR, VARCHAR
 | NCHAR | NCHAR, NVARCHAR
 | BIT | BIT, VARBIT
 | NUMERIC or NUMBER | SHORT, INT, NUMERIC
 | FLOAT | FLOAT
 | DOUBLE | DOUBLE
 | TIME | TIME
 | DATE | DATE
 | TIMESTAMP | TIMESTAMP
 | OBJECT | OBJECT
 | ENUM | ENUM
 | BLOB | BLOB
 | CLOB | CLOB
 | NULL | NULL
Не поддерживается | SET | SET
 | MULTISET | MULTISET
 | SEQUENCE | SEQUENCE

Список параметров

req_identifier

Идентификатор запроса, полученный из cubrid_prepare().

bind_index

Расположение связавыемых параметров. Начинаются с 1.

bind_value

Фактическое значения для привязки.

bind_value_type

Тип связываемого значения. (По умолчанию не задано. Таким образом, по умолчанию используется тип STRING. Однако, вы должны явно указать тип для значений NCHAR, BIT, или BLOB/CLOB).

Возвращаемые значения

TRUE, в случае успеха.

FALSE, в случае неудачи.

Список изменений

Версия | Описание
8.3.1 | Добавлена поддержка типов данных BLOB/CLOB.

Примеры

Пример #1 Пример использования cubrid_bind()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$result = cubrid_execute($conn, "SELECT code FROM event WHERE sports='Basketball' and gender='M'");
$row = cubrid_fetch_array($result, CUBRID_ASSOC);
$event_code = $row["code"];

cubrid_close_request($result);

$game_req = cubrid_prepare($conn, "SELECT athlete_code FROM game WHERE host_year=1992 and event_code=? and nation_code='USA'");
cubrid_bind($game_req, 1, $event_code, "number");
cubrid_execute($game_req);

printf("--- Dream Team (1992 United States men's Olympic basketball team) ---\n");
while ($athlete_code = cubrid_fetch_array($game_req, CUBRID_NUM)) {
    $athlete_req = cubrid_prepare($conn, "SELECT name FROM athlete WHERE code=? AND nation_code='USA' AND event='Basketball' AND gender='M'");
    cubrid_bind($athlete_req, 1, $athlete_code[0], "number");
    cubrid_execute($athlete_req);
    $row = cubrid_fetch_assoc($athlete_req);
    printf("%s\n", $row["name"]);
}

cubrid_close_request($game_req);
cubrid_close_request($athlete_req);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

--- Dream Team (1992 United States men's Olympic basketball team) ---
Stockton John
Robinson David
Pippen Scottie
Mullin C.
Malone Karl
Laettner C.
Jordan Michael
Johnson Earvin
Ewing Patrick
Drexler Clyde
Bird Larry
Barkley Charles

Пример #2 Пример использования cubrid_bind() с BLOB/CLOB

<?php
$con = cubrid_connect("localhost", 33000, "demodb", "dba", "");
if ($con) {
    cubrid_execute($con,"DROP TABLE if exists php_cubrid_lob_test");
    cubrid_execute($con,"CREATE TABLE php_cubrid_lob_test (doc_content CLOB)");
    $sql = "INSERT INTO php_cubrid_lob_test(doc_content) VALUES(?)";
    $req = cubrid_prepare($con, $sql);

    $fp = fopen("book.txt", "rb");

    cubrid_bind($req, 1, $fp, "clob");
    cubrid_execute($req);
}
?>

Пример #3 Пример использования cubrid_bind() с BLOB/CLOB

<?php
$con = cubrid_connect("localhost", 33000, "demodb", "dba", "");
if ($con) {
    cubrid_execute($con,"DROP TABLE if exists php_cubrid_lob_test");
    cubrid_execute($con,"CREATE TABLE php_cubrid_lob_test (image BLOB)");
    $sql = "INSERT INTO php_cubrid_lob_test(image) VALUES(?)";
    $req = cubrid_prepare($con, $sql);

    cubrid_bind($req, 1, "cubrid_logo.png", "blob");
    cubrid_execute($req);
}
?>

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_prepare() - Prepare a SQL statement for execution


Закрывает обработчик запроса

  • « cubrid_bind
  • cubrid_close_request »
  • PHP Manual
  • Функции CUBRID
  • Закрывает обработчик запроса

cubrid_close_prepare

(PECL CUBRID >= 8.3.0)

cubrid_close_prepare — Закрывает обработчик запроса

Описание

cubrid_close_prepare ( resource $req_identifier ) : bool

Функция cubrid_close_prepare() закрывает обработчик запроса, заданный в req_identifier, и высвобождает выделенную ему память. Является синонимом для cubrid_close_request().

Список параметров

req_identifier

Идентификатор запроса.

Возвращаемые значения

Возвращает TRUE в случае успеха.

Примеры

Пример #1 Пример использования cubrid_close_prepare()

<?php
$con = cubrid_connect ("localhost", 33000, "demodb", "dba", "");
if ($con) {
   echo "connected successfully";
   $req = cubrid_execute ( $con, "select * from members",
                           CUBRID_INCLUDE_OID | CUBRID_ASYNC);
   if ($req) {
      while ( list ($id, $name) = cubrid_fetch ($req) ){
         echo $id;
         echo $name;
      }
      cubrid_close_prepare($req); // or you can use cubrid_close_request($req)
   }
   cubrid_disconnect($con);
}
?>

Смотрите также

  • cubrid_close_request() - Закрывает обработчик запроса


Закрывает обработчик запроса

  • « cubrid_close_prepare
  • cubrid_col_get »
  • PHP Manual
  • Функции CUBRID
  • Закрывает обработчик запроса

cubrid_close_request

(PECL CUBRID >= 8.3.0)

cubrid_close_request — Закрывает обработчик запроса

Описание

cubrid_close_request ( resource $req_identifier ) : bool

Функция cubrid_close_request() закрывает обработчик запроса, заданный в req_identifier, и высвобождает выделенную ему память. Является синонимом для cubrid_close_prepare().

Список параметров

req_identifier

Идентификатор запроса.

Возвращаемые значения

Возвращает TRUE в случае успеха.

Примеры

Пример #1 Пример использования cubrid_close_request()

<?php
$con = cubrid_connect ("localhost", 33000, "demodb", "dba", "");
if ($con) {
   echo "connected successfully";
   $req = cubrid_execute ( $con, "select * from members",
                           CUBRID_INCLUDE_OID | CUBRID_ASYNC);
   if ($req) {
      while ( list ($id, $name) = cubrid_fetch ($req) ){
         echo $id;
         echo $name;
      }
      cubrid_close_request($req); // or you can use cubrid_close_prepare($req)
   }
   cubrid_disconnect($con);
}
?>

Смотрите также

  • cubrid_close_prepare() - Закрывает обработчик запроса


Получение контента столбца типа коллекция по OID

  • « cubrid_close_request
  • cubrid_col_size »
  • PHP Manual
  • Функции CUBRID
  • Получение контента столбца типа коллекция по OID

cubrid_col_get

(PECL CUBRID >= 8.3.0)

cubrid_col_get — Получение контента столбца типа коллекция по OID

Описание

cubrid_col_get ( resource $conn_identifier , string $oid , string $attr_name ) : array

Функция cubrid_col_get() используется для получения контента элемента типа коллекция (set, multiset, sequence) в виде массива.

Список параметров

conn_identifier

Идентификатор коллекции.

oid

OID экземпляра, который вы хотите прочитать.

attr_name

Имя атрибута, который вы хотите прочитать.

Возвращаемые значения

Индексированный массив (начинается с 0), содержащий запрошенные элементы, в случае успеха.

FALSE (для отличия ошибки от ситуации, когда атрибут содержит пустую коллекцию или NULL, в случае ошибки будет вызвано предупреждение; в этом случае нужно использовать функцию cubrid_error_code()), в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_col_get()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

$size = cubrid_col_size($conn, $oid, "b");
var_dump($size);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
int(3)


Получает количество элементов в столбце типа коллекция по OID

  • « cubrid_col_get
  • cubrid_column_names »
  • PHP Manual
  • Функции CUBRID
  • Получает количество элементов в столбце типа коллекция по OID

cubrid_col_size

(PECL CUBRID >= 8.3.0)

cubrid_col_size — Получает количество элементов в столбце типа коллекция по OID

Описание

cubrid_col_size ( resource $conn_identifier , string $oid , string $attr_name ) : int

Функция cubrid_col_size() используется для получения количества элементов в атрибуте типа коллекция (set, multiset, sequence).

Список параметров

conn_identifier

Идентификатор соединения.

oid

OID экземпляра.

attr_name

Имя атрибута, с которым вы хотите работать.

Возвращаемые значения

Количество элементов, в случае удачи.

FALSE, в случае неудачи.

Список изменений

Версия | Описание
8.3.1 | Изменено возвращаемое значение: в случае неудачи возвращается FALSE, а не -1.

Примеры

Пример #1 Пример использования cubrid_col_size()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

$size = cubrid_col_size($conn, $oid, "b");
var_dump($size);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
int(3)


Получить имена столбцов в результирующем наборе

  • « cubrid_col_size
  • cubrid_column_types »
  • PHP Manual
  • Функции CUBRID
  • Получить имена столбцов в результирующем наборе

cubrid_column_names

(PECL CUBRID >= 8.3.0)

cubrid_column_names — Получить имена столбцов в результирующем наборе

Описание

cubrid_column_names ( resource $req_identifier ) : array

Функция cubrid_column_names() используется для получения имен столбцов в результирующем наборе, заданном в req_identifier.

Список параметров

req_identifier

Идентификатор запроса.

Возвращаемые значения

Массив строк, содержащих имена столбцов, в случае успеха.

FALSE, в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_column_names()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$column_names = cubrid_column_names($result);
$column_types = cubrid_column_types($result);

printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Maxlen");
for($i = 0, $size = count($column_names); $i < $size; $i++) {
    $column_len = cubrid_field_len($result, $i);
    printf("%-30s %-30s %-15s\n", $column_names[$i], $column_types[$i], $column_len);
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Column Names                   Column Types                   Column Maxlen
host_year                      integer                        11
event_code                     integer                        11
athlete_code                   integer                        11
stadium_code                   integer                        11
nation_code                    char                           3
medal                          char                           1
game_date                      date                           10

Смотрите также

  • cubrid_prepare() - Prepare a SQL statement for execution
  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_column_types() - Получить типы столбцов в результирующем наборе


Получить типы столбцов в результирующем наборе

  • « cubrid_column_names
  • cubrid_commit »
  • PHP Manual
  • Функции CUBRID
  • Получить типы столбцов в результирующем наборе

cubrid_column_types

(PECL CUBRID >= 8.3.0)

cubrid_column_types — Получить типы столбцов в результирующем наборе

Описание

cubrid_column_types ( resource $req_identifier ) : array

Функция cubrid_column_types() используется для получения типов столбцов в результирующем наборе, заданном в req_identifier.

Список параметров

req_identifier

Request identifier.

Возвращаемые значения

Массив строк, содержащих типы столбцов, в случае успеха.

FALSE, в случае неудачи.

Примеры

Пример #1 cubrid_column_types() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$column_names = cubrid_column_names($result);
$column_types = cubrid_column_types($result);

printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Maxlen");
for($i = 0, $size = count($column_names); $i < $size; $i++) {
    $column_len = cubrid_field_len($result, $i);
    printf("%-30s %-30s %-15s\n", $column_names[$i], $column_types[$i], $column_len);
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Column Names                   Column Types                   Column Maxlen
host_year                      integer                        11
event_code                     integer                        11
athlete_code                   integer                        11
stadium_code                   integer                        11
nation_code                    char                           3
medal                          char                           1
game_date                      date                           10

Смотрите также

  • cubrid_column_names() - Получить имена столбцов в результирующем наборе
  • cubrid_prepare() - Prepare a SQL statement for execution
  • cubrid_execute() - Execute a prepared SQL statement


Подтверждение транзакции

  • « cubrid_column_types
  • cubrid_connect_with_url »
  • PHP Manual
  • Функции CUBRID
  • Подтверждение транзакции

cubrid_commit

(PECL CUBRID >= 8.3.0)

cubrid_commit — Подтверждение транзакции

Описание

cubrid_commit ( resource $conn_identifier ) : bool

Функция cubrid_commit() используется для подтверждения изменений, произведенных в транзакции в соединении conn_identifier, После вызова функции cubrid_commit(), соединение с сервером будет закрыто, но обработчик соединения все еще будет корректным.

В CUBRID PHP, режим авто-коммита для транзакций по умолчанию отключен. Вы можете разрешить или запретить его принудительно с помощью функции cubrid_set_autocommit(). Узнать текущий статус можно функцией cubrid_get_autocommit(). Перед тем как начать транзакцию, убедитесь, что авто-коммит запрещен.

Список параметров

conn_identifier

Идентификатор соединения.

Возвращаемые значения

TRUE, в случае успеха.

FALSE, в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_commit()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE publishers");

$sql = <<<EOD
CREATE TABLE publishers(
pub_id CHAR(3),
pub_name VARCHAR(20),
city VARCHAR(15),
state CHAR(2),
country VARCHAR(15)
)
EOD;
cubrid_set_autocommit($conn,false);
if (!cubrid_execute($conn, $sql)) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n", cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}

$req = cubrid_prepare($conn, "INSERT INTO publishers VALUES(?, ?, ?, ?, ?)");

$id_list = array("P01", "P02", "P03", "P04");
$name_list = array("Abatis Publishers", "Core Dump Books", "Schadenfreude Press", "Tenterhooks Press");
$city_list = array("New York", "San Francisco", "Hamburg", "Berkeley");
$state_list = array("NY", "CA", NULL, "CA");
$country_list = array("USA", "USA", "Germany", "USA");

for ($i = 0, $size = count($id_list); $i < $size; $i++) {
    cubrid_bind($req, 1, $id_list[$i]);
    cubrid_bind($req, 2, $name_list[$i]);
    cubrid_bind($req, 3, $city_list[$i]);
    cubrid_bind($req, 4, $state_list[$i]);
    cubrid_bind($req, 5, $country_list[$i]);

    if (!($ret = cubrid_execute($req))) {
        break;
    }
}

if (!$ret) {
    cubrid_rollback($conn);
} else {
    cubrid_commit($conn);

    $req = cubrid_execute($conn, "SELECT * FROM publishers");
    while ($result = cubrid_fetch_assoc($req)) {
        printf("%-3s %-20s %-15s %-3s %-15s\n",
            $result["pub_id"], $result["pub_name"], $result["city"], $result["state"], $result["country"]);
    }
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

P01 Abatis Publishers    New York        NY  USA
P02 Core Dump Books      San Francisco   CA  USA
P03 Schadenfreude Press  Hamburg             Germany
P04 Tenterhooks Press    Berkeley        CA  USA

Смотрите также

  • cubrid_rollback() - Roll back a transaction
  • cubrid_get_autocommit() - Возвращает настройку авто-коммита для соединения
  • cubrid_set_autocommit() - Устанавливает режим авто-коммита для соединения


Создает окружение для соединения с сервером CUBRID

  • « cubrid_commit
  • cubrid_connect »
  • PHP Manual
  • Функции CUBRID
  • Создает окружение для соединения с сервером CUBRID

cubrid_connect_with_url

(PECL CUBRID >= 8.3.1)

cubrid_connect_with_url — Создает окружение для соединения с сервером CUBRID

Описание

cubrid_connect_with_url ( string $conn_url [, string $userid [, string $passwd [, bool $new_link = FALSE ]]] ) : resource

Функция cubrid_connect_with_url() используется для создания окружения для соединения с сервером посредством информации заданной в виде строки URL. Если в CUBRID разрешена функциональность высокой доступности, необходимо задать информация для соединения с резервным сервером, которая будет использоваться для соединения, если с основным что-то случится. Если логин и пароль не заданы, то по умолчанию будет использоваться соединение "PUBLIC".

<url> ::= CUBRID:<host>:<db_name>:<db_user>:<db_password>:[?<properties>]

<properties> ::= <property> [&<property>]

<properties> ::= alhosts=<alternative_hosts>[ &rctime=<time>]

<properties> ::= login_timeout=<milli_sec>

<properties> ::= query_timeout=<milli_sec>

<properties> ::= disconnect_on_query_timeout=true|false

<alternative_hosts> ::= <standby_broker1_host>:<port> [,<standby_broker2_host>:<port>]

<host> := HOSTNAME | IP_ADDR

<time> := SECOND

<milli_sec> := MILLI SECOND

  • host : Имя хоста или IP-адрес основного сервера
  • db_name : имя базы данных
  • db_user : Имя пользователя
  • db_password : пароль
  • alhosts : Задает информацию о брокере резервного сервера, который будет использоваться в случае недоступности основного. Если вы зададите несколько резервных брокеров, то попытки соединения будут происходить в том же порядке, как они описаны в URL.
  • rctime : Интервал между попытками подключения к активному брокеру, в котором произошел сбой. после возникновения ошибки, система соединится с резервным брокерам, указанном в в althosts (failover), откатит незавершенные транзакции, и затем попытается соединиться с активным брокером основного узла через каждые rctime. Значение по умолчанию 600 секунд.
  • login_timeout : Максимальное время (миллисекунды) ожидания авторизации. По умолчанию 0, что обозначает бесконечное время ожидания.
  • query_timeout : Максимальное время (миллисекунды) ожидания выполнения запроса. По исчерпании этого времени на сервер будет отослано сообщение о прекращении запроса. Возвращенное значение запроса будет зависить от настройки disconnect_on_query_timeout; даже если будет послано сообщение о прекращении запроса, он все еще может завершиться удачно.
  • disconnect_on_query_timeout : Определяет, будет ли сразу после истечения таймаута для запроса возвращена ошибка. По умолчанию FALSE.

Замечание:

Символы ? и : являются специальными в URL соединения и не могут быть использованы в пароле. Пример некорректного пароля, который нельзя использовать в строке соединения, потому, что в нем используются символы "?:".

$url = "CUBRID:localhost:33000:tdb:dba:12?:?login_timeout=100";

Пароли, содержащие ? или : могут быть посланы отдельно.

$url = "CUBRID:localhost:33000:tbd:::?login_timeout=100";

$conn = cubrid_connect_with_url($url, "dba", "12?");

Если логин или пароль пусты, необходимо все равно сохранять символы ":":

$url = "CUBRID:localhost:33000:demodb:::";

Список параметров

conn_url

Строка, содержащая информацию для соединения.

userid

Имя пользователя.

passwd

пароль.

new_link

Если функция cubrid_connect_with_url() была вызвана повторно с такими же аргументами, новое соединение не будет создано, вместо него будет возвращен идентификатор уже существующего подключения. Параметр new_link меняет такое поведение и вынуждает cubrid_connect_with_url() в любом случае создать новое соединение, даже если функция cubrid_connect_with_url() ранее была вызвана с такими же аргументами.

Возвращаемые значения

Идентификатор подключения в случае успеха.

FALSE, в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_connect_with_url() без задания свойств

<?php
$conn_url = "CUBRID:localhost:33000:demodb:dba::";
$con = cubrid_connect_with_url($conn_url);

if ($con) {
   echo "connected successfully";
   cubrid_execute($con, "create table person(id int,name char(16))");
   $req =cubrid_execute($con, "insert into person values(1,'James')");

   if ($req) {
      cubrid_close_request($req);
      cubrid_commit($con);
   } else {
      cubrid_rollback($con);
   }
   cubrid_disconnect($con);
}
?>

Пример #2 Пример использования cubrid_connect_with_url() с заданием свойств

<?php
$conn_url = "CUBRID:127.0.0.1:33000:demodb:dba::?login_timeout=100"
$con = cubrid_connect_with_url ($conn_url);

if ($con) {
   echo "connected successfully";
   cubrid_execute($con, "create table person(id int,name char(16))");
   $req =cubrid_execute($con, "insert into person values(1,'James')");

   if ($req) {
      cubrid_close_request($req);
      cubrid_commit($con);
   } else {
      cubrid_rollback($con);
   }
   cubrid_disconnect($con);
}
?>

Смотрите также

  • cubrid_connect() - Открывает соединение к серверу CUBRID
  • cubrid_pconnect() - Open a persistent connection to a CUBRID server
  • cubrid_pconnect_with_url() - Open a persistent connection to CUBRID server
  • cubrid_disconnect() - Закрывает соединение с базой данных
  • cubrid_close() - Закрывает соединение с базой данных


Открывает соединение к серверу CUBRID

  • « cubrid_connect_with_url
  • cubrid_current_oid »
  • PHP Manual
  • Функции CUBRID
  • Открывает соединение к серверу CUBRID

cubrid_connect

(PECL CUBRID >= 8.3.1)

cubrid_connect — Открывает соединение к серверу CUBRID

Описание

cubrid_connect ( string $host , int $port , string $dbname [, string $userid [, string $passwd [, bool $new_link = FALSE ]]] ) : resource

Функция cubrid_connect() используется для создания соединения с сервером, используя его адрес, порт, имя базы данных, имени пользователя и пароля. Если логин и пароль не заданы, то по умолчанию будет использоваться соединение "PUBLIC".

Список параметров

host

Имя хоста или IP-адрес сервера CUBRID CAS.

port

Порт сервера CUBRID CAS (BROKER_PORT в $CUBRID/conf/cubrid_broker.conf).

dbname

Имя базы данных.

userid

Имя пользователя. Если не задано, то будет использовано имя по умолчанию "public".

passwd

Пароль. Если не задан, то будет использоваться "".

new_link

Если функция cubrid_connect_with_url() была вызвана повторно с такими же аргументами, новое соединение не будет создано, вместо него будет возвращен идентификатор уже существующего подключения. Параметр new_link меняет такое поведение и вынуждает cubrid_connect_with_url() в любом случае создать новое соединение, даже если функция cubrid_connect_with_url() ранее была вызвана с такими же аргументами.

Возвращаемые значения

Идентификатор подключения в случае успеха.

FALSE, в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_connect()

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Смотрите также

  • cubrid_pconnect() - Open a persistent connection to a CUBRID server
  • cubrid_connect_with_url() - Создает окружение для соединения с сервером CUBRID
  • cubrid_pconnect_with_url() - Open a persistent connection to CUBRID server
  • cubrid_disconnect() - Закрывает соединение с базой данных
  • cubrid_close() - Закрывает соединение с базой данных


Возвращает OID текущей позиции курсора

  • « cubrid_connect
  • cubrid_disconnect »
  • PHP Manual
  • Функции CUBRID
  • Возвращает OID текущей позиции курсора

cubrid_current_oid

(PECL CUBRID >= 8.3.0)

cubrid_current_oid — Возвращает OID текущей позиции курсора

Описание

cubrid_current_oid ( resource $req_identifier ) : string

Функция cubrid_current_oid() используется для получения oid текущего положения курсора в результирующем наборе. Для использования функции cubrid_current_oid(), запущенный запрос должен быть обновляемым, и при запуске запроса была задана опция CUBRID_INCLUDE_OID.

Список параметров

req_identifier

Идентификатор запроса.

Возвращаемые значения

Oid текущего положения курсора, в случае успеха.

FALSE, в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_current_oid()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code", CUBRID_INCLUDE_OID);
$oid = cubrid_current_oid($req);
$res = cubrid_get($conn, $oid);

print_r($res);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Array
(
    [s_name] => X
    [f_name] => Mixed
)

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement


Закрывает соединение с базой данных

  • « cubrid_current_oid
  • cubrid_drop »
  • PHP Manual
  • Функции CUBRID
  • Закрывает соединение с базой данных

cubrid_disconnect

(PECL CUBRID >= 8.3.0)

cubrid_disconnect — Закрывает соединение с базой данных

Описание

cubrid_disconnect ([ resource $conn_identifier ] ) : bool

Функция cubrid_disconnect() используется для закрытия обработчика соединения и отсоединения от сервера. Если какой либо обработчик запроса не будет закрыт к этому моменту, он будет принудительно закрыт. Функция аналогична функции совместимости CUBRID MySQL cubrid_close().

Список параметров

conn_identifier

Идентификатор соединения.

Возвращаемые значения

TRUE, в случае успеха.

FALSE, в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_disconnect()

<?php
$con = cubrid_connect ("localhost", 33000, "demodb");
if ($con) {
   echo "connected successfully";

   $req = cubrid_execute( $con, "create table person(id int,name char(10))");
   if ($req) {
      cubrid_close_request($req);
      cubrid_commit($con);
   } else {
      cubrid_rollback($con);
   }

   $req = cubrid_execute( $con, "insert into person values(1,'James')");
   if ($req) {
      cubrid_close_request($req);
      cubrid_commit($con);
   } else {
      cubrid_rollback($con);
   }
   cubrid_disconnect($con);
}
?>

Смотрите также

  • cubrid_close() - Закрывает соединение с базой данных
  • cubrid_connect() - Открывает соединение к серверу CUBRID
  • cubrid_connect_with_url() - Создает окружение для соединения с сервером CUBRID


Удаление экземпляра по OID

  • « cubrid_disconnect
  • cubrid_error_code_facility »
  • PHP Manual
  • Функции CUBRID
  • Удаление экземпляра по OID

cubrid_drop

(PECL CUBRID >= 8.3.0)

cubrid_drop — Удаление экземпляра по OID

Описание

cubrid_drop ( resource $conn_identifier , string $oid ) : bool

Функция cubrid_drop() используется для удаления экземпляра из из базы данных, заданного его oid.

Список параметров

conn_identifier

Connection identifier.

oid

Oid экземпляра, который надо удалить.

Возвращаемые значения

TRUE, в случае успеха.

FALSE, в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_drop()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

printf("--- Before Drop: ---\n");
$attr = cubrid_get($conn, $oid);
var_dump($attr);

if (cubrid_drop($conn, $oid)) {
    cubrid_commit($conn);
} else {
    cubrid_rollback($conn);
}

cubrid_close_request($req);

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

printf("\n--- After Drop: ---\n");
$attr = cubrid_get($conn, $oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

--- Before Drop: ---
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

--- After Drop: ---
array(4) {
  ["a"]=>
  string(1) "2"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "4"
    [1]=>
    string(1) "5"
    [2]=>
    string(1) "7"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "44"
    [1]=>
    string(2) "55"
    [2]=>
    string(2) "66"
    [3]=>
    string(3) "666"
  }
  ["d"]=>
  string(10) "b         "
}

Смотрите также

  • cubrid_is_instance() - Check whether the instance pointed by OID exists


Получить код уровня, на котором произошла ошибка

  • « cubrid_drop
  • cubrid_error_code »
  • PHP Manual
  • Функции CUBRID
  • Получить код уровня, на котором произошла ошибка

cubrid_error_code_facility

(PECL CUBRID >= 8.3.0)

cubrid_error_code_facility — Получить код уровня, на котором произошла ошибка

Описание

cubrid_error_code_facility ( void ) : int

Функция cubrid_error_code_facility() используется для выявления, на каком уровне произошла ошибка. Обычно вы можете получить код ошибки, если какая-либо функция вернула FALSE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Коды уровней: CUBRID_FACILITY_DBMS, CUBRID_FACILITY_CAS, CUBRID_FACILITY_CCI, CUBRID_FACILITY_CLIENT

Примеры

Пример #1 Пример использования cubrid_error_code_facility()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = @cubrid_execute($conn, "SELECT * FROM unknown");
if (!$req) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n",
        cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}
?>

Результат выполнения данного примера:

Error facility: 1
Error code: -493
Error msg: Syntax: In line 1, column 15 before END OF STATEMENT
Syntax error: unexpected 'unknown'

Смотрите также

  • cubrid_error_code() - Получить код ошибки
  • cubrid_error_msg() - Возвращает текст последней произошедшей ошибки


Получить код ошибки

  • « cubrid_error_code_facility
  • cubrid_error_msg »
  • PHP Manual
  • Функции CUBRID
  • Получить код ошибки

cubrid_error_code

(PECL CUBRID >= 8.3.0)

cubrid_error_code — Получить код ошибки

Описание

cubrid_error_code ( void ) : int

Функция cubrid_error_code() используется для получения кода произошедшей ошибки. Обычно вы можете получить код ошибки, если какая-либо функция вернула FALSE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Код возникшей ошибки, или 0 (ноль), если ошибки небыло.

Примеры

Пример #1 Пример использования cubrid_error_code()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_prepare($conn , "SELECT * FROM code WHERE s_name=?");

$req = @cubrid_execute($req);
if (!$req) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n",
        cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}
?>

Результат выполнения данного примера:

Error facility: 4
Error code: -30015
Error msg: Some parameter not binded

Смотрите также

  • cubrid_error_code_facility() - Получить код уровня, на котором произошла ошибка
  • cubrid_error_msg() - Возвращает текст последней произошедшей ошибки


Возвращает текст последней произошедшей ошибки

  • « cubrid_error_code
  • cubrid_execute »
  • PHP Manual
  • Функции CUBRID
  • Возвращает текст последней произошедшей ошибки

cubrid_error_msg

(PECL CUBRID >= 8.3.0)

cubrid_error_msg — Возвращает текст последней произошедшей ошибки

Описание

cubrid_error_msg ( void ) : string

Функция cubrid_error_msg() используется для получения текста произошедшей ошибки. Обычно вы можете получить текст ошибки, если какая-либо функция вернула FALSE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текст ошибки.

Примеры

Пример #1 Пример использования cubrid_error_msg()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

if (!@cubrid_schema($conn, 100000)) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n",
        cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}
?>

Результат выполнения данного примера:

Error facility: 2
Error code: -10015
Error msg: Invalid T_CCI_SCH_TYPE value

Смотрите также

  • cubrid_error_code() - Получить код ошибки
  • cubrid_error_code_facility() - Получить код уровня, на котором произошла ошибка


Execute a prepared SQL statement

  • « cubrid_error_msg
  • cubrid_fetch »
  • PHP Manual
  • Функции CUBRID
  • Execute a prepared SQL statement

cubrid_execute

(PECL CUBRID >= 8.3.0)

cubrid_execute — Execute a prepared SQL statement

Описание

cubrid_execute ( resource $conn_identifier , string $sql [, int $option = 0 ] ) : resource
cubrid_execute ( resource $request_identifier [, int $option = 0 ] ) : bool

The cubrid_execute() function is used to execute the given SQL statement. It executes the query by using conn_identifier and SQL, and then returns the request identifier created. It is used for simple execution of query, where the parameter binding is not needed. In addition, the cubrid_execute() function is used to execute the prepared statement by means of cubrid_prepare() and cubrid_bind(). At this time, you need to specify arguments of request_identifier and option.

The option is used to determine whether to get OID after query execution and whether to execute the query in synchronous or asynchronous mode. CUBRID_INCLUDE_OID and CUBRID_ASYNC (or CUBRID_EXEC_QUERY_ALL if you want to execute multiple SQL statements) can be specified by using a bitwise OR operator. If not specified, neither of them isselected. If the flag CUBRID_EXEC_QUERY_ALL is set, a synchronous mode (sync_mode) is used to retrieve query results, and in such cases the following rules are applied:

  • The return value is the result of the first query.
  • If an error occurs in any query, the execution is processed as a failure.
  • In a query composed of q1 q2 q3, if an error occurs in q2 after q1 succeeds the execution, the result of q1 remains valid. That is, the previous successful query executions are not rolled back when an error occurs.
  • If a query is executed successfully, the result of the second query can be obtained using cubrid_next_result().

If the first argument is request_identifier to execute the cubrid_prepare() function, you can specify an option, CUBRID_ASYNC only.

Список параметров

conn_identifier

Connection identifier.

sql

SQL to be executed.

option

Query execution option CUBRID_INCLUDE_OID, CUBRID_ASYNC, CUBRID_EXEC_QUERY_ALL.

request_identifier

cubrid_prepare() identifier.

Возвращаемые значения

Request identifier, when process is successful and first param is conn_identifier; TRUE, when process is successful and first argument is request_identifier.

FALSE, when process is unsuccessful.

Список изменений

Версия | Описание
8.4.0 | Add new option CUBRID_EXEC_QUERY_ALL.

Примеры

Пример #1 cubrid_execute() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$result = cubrid_execute($conn, "SELECT code FROM event WHERE name='100m Butterfly' and gender='M'", CUBRID_ASYNC);
$row = cubrid_fetch_array($result, CUBRID_ASSOC);
$event_code = $row["code"];

cubrid_close_request($result);

$history_req = cubrid_prepare($conn, "SELECT * FROM history WHERE event_code=?");
cubrid_bind($history_req, 1, $event_code, "number");
cubrid_execute($history_req);

printf("%-20s %-9s %-10s %-5s\n", "athlete", "host_year", "score", "unit");
while ($row = cubrid_fetch_array($history_req, CUBRID_ASSOC)) {
    printf("%-20s %-9s %-10s %-5s\n",
        $row["athlete"], $row["host_year"], $row["score"], $row["unit"]);
}

cubrid_close_request($history_req);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

athlete              host_year score      unit
Phelps Michael       2004      51.25      time

Смотрите также

  • cubrid_prepare() - Prepare a SQL statement for execution
  • cubrid_bind() - Связывает переменные с подготовленным запросом
  • cubrid_next_result() - Get result of next query when executing multiple SQL statements
  • cubrid_close_request() - Закрывает обработчик запроса
  • cubrid_commit() - Подтверждение транзакции
  • cubrid_rollback() - Roll back a transaction


Fetch the next row from a result set

  • « cubrid_execute
  • cubrid_free_result »
  • PHP Manual
  • Функции CUBRID
  • Fetch the next row from a result set

cubrid_fetch

(PECL CUBRID >= 8.3.0)

cubrid_fetch — Fetch the next row from a result set

Описание

cubrid_fetch ( resource $result [, int $type = CUBRID_BOTH ] ) : mixed

The cubrid_fetch() function is used to get a single row from the query result. The cursor automatically moves to the next row after getting the result.

Список параметров

result

result comes from a call to cubrid_execute()

type

Array type of the fetched result CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH, CUBRID_OBJECT. If you want to operate the lob object, you can use CUBRID_LOB.

Возвращаемые значения

Result array or object, when process is successful.

FALSE, when there are no more rows; NULL, when process is unsuccessful.

The result can be received either as an array or as an object, and you can decide which data type to use by setting the type argument. The type variable can be set to one of the following values:

  • CUBRID_NUM : Numerical array (0-based)
  • CUBRID_ASSOC : Associative array
  • CUBRID_BOTH : Numerical & Associative array (default)
  • CUBRID_OBJECT : object that has the attribute name as the column name of query result

When type argument is omitted, the result will be received using CUBRID_BOTH option as default. When you want to receive query result in object data type, the column name of the result must obey the naming rules for identifiers in PHP. For example, column name such as "count(*)" cannot be received in object type.

Примеры

Пример #1 cubrid_fetch() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT * FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n", "name", "area", "seats", "address");
while ($row = cubrid_fetch($req)) {
    printf("%-40s %-10s %-6s %-20s\n",
        $row["name"], $row["area"], $row["seats"], $row["address"]);
}

// if you want to operate lob object, you can use cubrid_fetch($req, CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch_array() - Извлечение строки из результирующего набора в виде ассоциативного массива, индексированного массива или обоих сразу
  • cubrid_fetch_row() - Извлечь строку из результирующего набора в виде индексированного массива
  • cubrid_fetch_assoc() - Извлечь строку из результирующего набора в виде ассоциативного массива
  • cubrid_fetch_object() - Извлечь следующую строку как объект


Free the memory occupied by the result data

  • « cubrid_fetch
  • cubrid_get_autocommit »
  • PHP Manual
  • Функции CUBRID
  • Free the memory occupied by the result data

cubrid_free_result

(PECL CUBRID >= 8.3.0)

cubrid_free_result — Free the memory occupied by the result data

Описание

cubrid_free_result ( resource $req_identifier ) : bool

This function frees the memory occupied by the result data. It returns TRUE on success or FALSE on failure. Note that it can only frees the client fetch buffer now, and if you want free all memory, use function cubrid_close_request().

Список параметров

req_identifier

This is the request identifier.

Возвращаемые значения

TRUE on success.

FALSE on failure.

Примеры

Пример #1 cubrid_free_result() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$req = cubrid_execute($conn, "SELECT * FROM history WHERE host_year=2004 ORDER BY event_code");
$row = cubrid_fetch_assoc($req);
var_dump($row);

cubrid_free_result($req);
cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(5) {
  ["event_code"]=>
  string(5) "20005"
  ["athlete"]=>
  string(12) "Hayes Joanna"
  ["host_year"]=>
  string(4) "2004"
  ["score"]=>
  string(5) "12.37"
  ["unit"]=>
  string(4) "time"
}


Возвращает настройку авто-коммита для соединения

  • « cubrid_free_result
  • cubrid_get_charset »
  • PHP Manual
  • Функции CUBRID
  • Возвращает настройку авто-коммита для соединения

cubrid_get_autocommit

(PECL CUBRID >= 8.4.0)

cubrid_get_autocommit — Возвращает настройку авто-коммита для соединения

Описание

cubrid_get_autocommit ( resource $conn_identifier ) : bool

Функция cubrid_get_autocommit() используется для определения, разрешен ли в этом соединении авто-коммит или нет.

Для CUBRID 8.4.0, авто-коммит транзакций запрещен по умолчанию.

Для CUBRID 8.4.0, авто-коммит транзакций разрешен по умолчанию.

Список параметров

conn_identifier

Идентификатор соединения.

Возвращаемые значения

TRUE, если авто-коммит разрешен.

FALSE, если авто-коммит запрещен.

NULL в случае ошибки.

Смотрите также

  • cubrid_set_autocommit() - Устанавливает режим авто-коммита для соединения
  • cubrid_commit() - Подтверждение транзакции


Возвращает кодировку текущего соединения CUBRID

  • « cubrid_get_autocommit
  • cubrid_get_class_name »
  • PHP Manual
  • Функции CUBRID
  • Возвращает кодировку текущего соединения CUBRID

cubrid_get_charset

(PECL CUBRID >= 8.3.0)

cubrid_get_charset — Возвращает кодировку текущего соединения CUBRID

Описание

cubrid_get_charset ( resource $conn_identifier ) : string

Эта функция возвращает кодировку текущего соединения CUBRID и аналогична функции совместимости CUBRID MySQL cubrid_client_encoding().

Список параметров

conn_identifier

Идентификатор соединения.

Возвращаемые значения

Строка, содержащая кодировку текущего соединения CUBRID в случае успеха.

FALSE в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_get_charset()

<?php

$con = cubrid_connect("localhost", 33000, "demodb");
if (!$con)
{
    die('Could not connect.');
}

printf("CUBRID current charset: %s\n", cubrid_get_charset($con));

?>

Результат выполнения данного примера:

CUBRID current charset: iso8859-1

Смотрите также

  • cubrid_client_encoding() - Возвращает кодировку текущего соединения CUBRID


Get the class name using OID

  • « cubrid_get_charset
  • cubrid_get_client_info »
  • PHP Manual
  • Функции CUBRID
  • Get the class name using OID

cubrid_get_class_name

(PECL CUBRID >= 8.3.0)

cubrid_get_class_name — Get the class name using OID

Описание

cubrid_get_class_name ( resource $conn_identifier , string $oid ) : string

The cubrid_get_class_name() function is used to get the class name from oid. It doesn't work when selecting data from the system tables, for example db_class.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance that you want to check the existence.

Возвращаемые значения

Class name when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_get_class_name() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code", CUBRID_INCLUDE_OID);
$oid = cubrid_current_oid($req);
$class_name = cubrid_get_class_name($conn, $oid);

print_r($class_name);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

code

Смотрите также

  • cubrid_is_instance() - Check whether the instance pointed by OID exists
  • cubrid_drop() - Удаление экземпляра по OID


Return the client library version

  • « cubrid_get_class_name
  • cubrid_get_db_parameter »
  • PHP Manual
  • Функции CUBRID
  • Return the client library version

cubrid_get_client_info

(PECL CUBRID >= 8.3.0)

cubrid_get_client_info — Return the client library version

Описание

cubrid_get_client_info ( void ) : string

This function returns a string that represents the client library version.

Список параметров

Возвращаемые значения

A string that represents the client library version; on success.

FALSE on failure.

Примеры

Пример #1 cubrid_get_client_info() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

Результат выполнения данного примера:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1


Returns the CUBRID database parameters

  • « cubrid_get_client_info
  • cubrid_get_query_timeout »
  • PHP Manual
  • Функции CUBRID
  • Returns the CUBRID database parameters

cubrid_get_db_parameter

(PECL CUBRID >= 8.3.0)

cubrid_get_db_parameter — Returns the CUBRID database parameters

Описание

cubrid_get_db_parameter ( resource $conn_identifier ) : array

This function returns the CUBRID database parameters or it returns FALSE on failure. It returns an associative array with the values for the following parameters:

  • PARAM_ISOLATION_LEVEL
  • PARAM_LOCK_TIMEOUT
  • PARAM_MAX_STRING_LENGTH
  • PARAM_AUTO_COMMIT

Database parameters
Parameter | Description
PARAM_ISOLATION_LEVEL | The transaction isolation level.
LOCK_TIMEOUT | CUBRID provides the lock timeout feature, which sets the waiting time (in seconds) for the lock until the transaction lock setting is allowed. The default value of the lock_timeout_in_secs parameter is -1, which means the application client will wait indefinitely until the transaction lock is allowed.
PARAM_AUTO_COMMIT | In CUBRID PHP, auto-commit mode is disabled by default for transaction management. It can be set by using cubrid_set_autocommit().

The following table shows the isolation levels from 1 to 6. It consists of table schema (row) and isolation level:

Levels of Isolation Supported by CUBRID
Name | Description
SERIALIZABLE (6) | In this isolation level, problems concerning concurrency (e.g. dirty read, non-repeatable read, phantom read, etc.) do not occur.
REPEATABLE READ CLASS with REPEATABLE READ INSTANCES (5) | Another transaction T2 cannot update the schema of table A while transaction T1 is viewing table A. Transaction T1 may experience phantom read for the record R that was inserted by another transaction T2 when it is repeatedly retrieving a specific record.
REPEATABLE READ CLASS with READ COMMITTED INSTANCES (or CURSOR STABILITY) (4) | Another transaction T2 cannot update the schema of table A while transaction T1 is viewing table A. Transaction T1 may experience R read (non-repeatable read) that was updated and committed by another transaction T2 when it is repeatedly retrieving the record R.
REPEATABLE READ CLASS with READ UNCOMMITTED INSTANCES (3) | Default isolation level. Another transaction T2 cannot update the schema of table A while transaction T1 is viewing table A. Transaction T1 may experience R' read (dirty read) for the record that was updated but not committed by another transaction T2.
READ COMMITTED CLASS with READ COMMITTED INSTANCES (2) | Transaction T1 may experience A' read (non-repeatable read) for the table that was updated and committed by another transaction T2 while it is viewing table A repeatedly. Transaction T1 may experience R' read (non-repeatable read) for the record that was updated and committed by another transaction T2 while it is retrieving the record R repeatedly.
READ COMMITTED CLASS with READ UNCOMMITTED INSTANCES (1) | Transaction T1 may experience A' read (non-repeatable read) for the table that was updated and committed by another transaction T2 while it is repeatedly viewing table A. Transaction T1 may experience R' read (dirty read) for the record that was updated but not committed by another transaction T2.

Список параметров

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last link opened by cubrid_connect() is assumed.

Возвращаемые значения

An associative array with CUBRID database parameters; on success.

FALSE on failure.

Список изменений

Версия | Описание
8.4.0 | Change LOCK_TIMEOUT to PARAM_LOCK_TIMEOUT, and MAX_STRING_LENGTH to PARAM_MAX_STRING_LENGTH in result.

Примеры

Пример #1 cubrid_get_db_parameter() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

Результат выполнения данного примера:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Смотрите также

  • cubrid_set_db_parameter() - Sets the CUBRID database parameters
  • cubrid_get_autocommit() - Возвращает настройку авто-коммита для соединения


Get the query timeout value of the request

  • « cubrid_get_db_parameter
  • cubrid_get_server_info »
  • PHP Manual
  • Функции CUBRID
  • Get the query timeout value of the request

cubrid_get_query_timeout

(PECL CUBRID >= 8.4.1)

cubrid_get_query_timeout — Get the query timeout value of the request

Описание

cubrid_get_query_timeout ( resource $req_identifier ) : int

The cubrid_get_query_timeout() function is used to get the query timeout of the request.

Список параметров

req_identifier

Request identifier.

Возвращаемые значения

Success: the query timeout value of the current request. Units of msec.

Failure: FALSE

Примеры

Пример #1 cubrid_get_query_timeout() example

<?php

$host = "localhost";
$port = 33000;
$db = "demodb";

$conn =
cubrid_connect_with_url("CUBRID:$host:$port:$db:::?login_timeout=50000&query_timeout=5000&disconnect_on_query_timeout=yes");

$req = cubrid_prepare($conn, "SELECT * FROM code");

$timeout = cubrid_get_query_timeout($req);
var_dump($timeout);

cubrid_set_query_timeout($req, 1000);
$timeout = cubrid_get_query_timeout($req);
var_dump($timeout);

cubrid_close($conn);
?>

Результат выполнения данного примера:

int(5000)
int(1000)

Смотрите также

  • cubrid_set_query_timeout() - Set the timeout time of query execution


Return the CUBRID server version

  • « cubrid_get_query_timeout
  • cubrid_get »
  • PHP Manual
  • Функции CUBRID
  • Return the CUBRID server version

cubrid_get_server_info

(PECL CUBRID >= 8.3.0)

cubrid_get_server_info — Return the CUBRID server version

Описание

cubrid_get_server_info ( resource $conn_identifier ) : string

This function returns a string that represents the CUBRID server version.

Список параметров

conn_identifier

The CUBRID connection.

Возвращаемые значения

A string that represents the CUBRID server version; on success.

FALSE on failure.

Примеры

Пример #1 cubrid_get_server_info() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

Результат выполнения данного примера:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1


Get a column using OID

  • « cubrid_get_server_info
  • cubrid_insert_id »
  • PHP Manual
  • Функции CUBRID
  • Get a column using OID

cubrid_get

(PECL CUBRID >= 8.3.0)

cubrid_get — Get a column using OID

Описание

cubrid_get ( resource $conn_identifier , string $oid [, mixed $attr ] ) : mixed

The cubrid_get() function is used to get the attribute of the instance of the given oid. You can get single attribute by using string data type for the attr argument, or many attributes by using array data type for the attr argument.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance that you want to read.

attr

Name of the attribute that you want to read.

Возвращаемые значения

Content of the requested attribute, when process is successful; When attr is set with string data type, the result is returned as a string; when attr is set with array data type (0-based numerical array), then the result is returned in associative array. When attr is omitted, then all attributes are received in array form.

FALSE when process is unsuccessful or result is NULL (If error occurs to distinguish empty string from NULL, then it prints the warning message. You can check the error by using cubrid_error_code())

Примеры

Пример #1 cubrid_get() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_get($conn, $oid, "b");
var_dump($attr);

$attr = cubrid_get($conn, $oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

string(9) "{1, 2, 3}"
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

Смотрите также

  • cubrid_put() - Update a column using OID


Return the ID generated for the last updated AUTO_INCREMENT column

  • « cubrid_get
  • cubrid_is_instance »
  • PHP Manual
  • Функции CUBRID
  • Return the ID generated for the last updated AUTO_INCREMENT column

cubrid_insert_id

(PECL CUBRID >= 8.3.0)

cubrid_insert_id — Return the ID generated for the last updated AUTO_INCREMENT column

Описание

cubrid_insert_id ([ resource $conn_identifier ] ) : string

The cubrid_insert_id() function retrieves the ID generated for the AUTO_INCREMENT column which is updated by the previous INSERT query. It returns 0 if the previous query does not generate new rows, or FALSE on failure.

Замечание:

CUBRID supports AUTO_INCREMENT for more than one columns in a table. In most cases, there will be a single AUTO_INCREMENT column in a table. If there are multiple AUTO_INCREMENT columns, this function should not be used even if it will return a value.

Список параметров

conn_identifier

The connection identifier previously obtained by a call to cubrid_connect().

Возвращаемые значения

A string representing the ID generated for an AUTO_INCREMENT column by the previous query, on success.

0, if the previous query does not generate new rows.

FALSE on failure.

Список изменений

Версия | Описание
8.4.0 | Change the return value from an array to string; Remove the first parameter class_name.

Примеры

Пример #1 cubrid_insert_id() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

@cubrid_execute($conn, "DROP TABLE cubrid_test");
cubrid_execute($conn, "CREATE TABLE cubrid_test (d int AUTO_INCREMENT(1, 2), t varchar)");

for ($i = 0; $i < 10; $i++) {
    cubrid_execute($conn, "INSERT INTO cubrid_test(t) VALUES('cubrid_test')");
}

$id = cubrid_insert_id();
var_dump($id);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

string(2) "19"


Check whether the instance pointed by OID exists

  • « cubrid_insert_id
  • cubrid_lob_close »
  • PHP Manual
  • Функции CUBRID
  • Check whether the instance pointed by OID exists

cubrid_is_instance

(PECL CUBRID >= 8.3.0)

cubrid_is_instance — Check whether the instance pointed by OID exists

Описание

cubrid_is_instance ( resource $conn_identifier , string $oid ) : int

The cubrid_is_instance() function is used to check whether the instance pointed by the given oid exists or not.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance that you want to check the existence.

Возвращаемые значения

1, if such instance exists;

0, if such instance does not exist;

-1, in case of error

Примеры

Пример #1 cubrid_is_instance() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$sql = <<<EOD
SELECT host_year, medal, game_date
FROM game
WHERE athlete_code IN
    (SELECT code FROM athlete WHERE name='Thorpe Ian');
EOD;

$req = cubrid_execute($conn, $sql, CUBRID_INCLUDE_OID);
$oid = cubrid_current_oid($req);

$res = cubrid_is_instance ($conn, $oid);
if ($res == 1) {
    echo "Instance pointed by $oid exists.\n";
} else if ($res == 0){
    echo "Instance pointed by $oid doesn't exist.\n";
} else {
    echo "error\n";
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Instance pointed by @0|0|0 doesn't exist.

Смотрите также

  • cubrid_drop() - Удаление экземпляра по OID
  • cubrid_get_class_name() - Get the class name using OID


Close BLOB/CLOB data

  • « cubrid_is_instance
  • cubrid_lob_export »
  • PHP Manual
  • Функции CUBRID
  • Close BLOB/CLOB data

cubrid_lob_close

(PECL CUBRID >= 8.3.1)

cubrid_lob_close — Close BLOB/CLOB data

Описание

cubrid_lob_close ( array $lob_identifier_array ) : bool

cubrid_lob_close() is used to close all BLOB/CLOB returned from cubrid_lob_get().

Список параметров

lob_identifier_array

LOB identifier array return from cubrid_lob_get.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_lob_close() example

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");
echo "Doc size: ".cubrid_lob_size($lobs[0])." bytes";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob_get() - Get BLOB/CLOB data
  • cubrid_lob_size() - Get BLOB/CLOB data size
  • cubrid_lob_export() - Export BLOB/CLOB data to file
  • cubrid_lob_send() - Read BLOB/CLOB data and send straight to browser


Export BLOB/CLOB data to file

  • « cubrid_lob_close
  • cubrid_lob_get »
  • PHP Manual
  • Функции CUBRID
  • Export BLOB/CLOB data to file

cubrid_lob_export

(PECL CUBRID >= 8.3.1)

cubrid_lob_export — Export BLOB/CLOB data to file

Описание

cubrid_lob_export ( resource $conn_identifier , resource $lob_identifier , string $path_name ) : bool

cubrid_lob_export() is used to get BLOB/CLOB data from CUBRID database, and saves its contents to a file. To use this function, you must use cubrid_lob_get() first to get BLOB/CLOB info from CUBRID.

Список параметров

conn_identifier

Connection identifier.

lob_identifier

LOB identifier.

path_name

Path name of the file.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_lob_export() example

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");
echo "Doc size: ".cubrid_lob_size($lobs[0])." bytes";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob_get() - Get BLOB/CLOB data
  • cubrid_lob_close() - Close BLOB/CLOB data
  • cubrid_lob_size() - Get BLOB/CLOB data size
  • cubrid_lob_send() - Read BLOB/CLOB data and send straight to browser


Get BLOB/CLOB data

  • « cubrid_lob_export
  • cubrid_lob_send »
  • PHP Manual
  • Функции CUBRID
  • Get BLOB/CLOB data

cubrid_lob_get

(PECL CUBRID >= 8.3.1)

cubrid_lob_get — Get BLOB/CLOB data

Описание

cubrid_lob_get ( resource $conn_identifier , string $sql ) : array

cubrid_lob_get() is used to get BLOB/CLOB meta info from CUBRID database, CUBRID gets BLOB/CLOB by executing the SQL statement, and returns all LOBs as a resource array. Be sure that the SQL retrieves only one column and its data type is BLOB or CLOB.

Remember to use cubrid_lob_close() to release the LOBs if you don't need it any more.

Список параметров

conn_identifier

Connection identifier.

sql

SQL statement to be executed.

Возвращаемые значения

Return an array of LOB resources, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_lob_get() example

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");
echo "Doc size: ".cubrid_lob_size($lobs[0])." bytes";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob_close() - Close BLOB/CLOB data
  • cubrid_lob_size() - Get BLOB/CLOB data size
  • cubrid_lob_export() - Export BLOB/CLOB data to file
  • cubrid_lob_send() - Read BLOB/CLOB data and send straight to browser


Read BLOB/CLOB data and send straight to browser

  • « cubrid_lob_get
  • cubrid_lob_size »
  • PHP Manual
  • Функции CUBRID
  • Read BLOB/CLOB data and send straight to browser

cubrid_lob_send

(PECL CUBRID >= 8.3.1)

cubrid_lob_send — Read BLOB/CLOB data and send straight to browser

Описание

cubrid_lob_send ( resource $conn_identifier , resource $lob_identifier ) : bool

cubrid_lob_send() reads BLOB/CLOB data and passes it straight through to the browser. To use this function, you must use cubrid_lob_get() first to get BLOB/CLOB info from CUBRID.

Список параметров

conn_identifier

Connection identifier.

lob_identifier

LOB identifier.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_lob_send() example

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");

cubrid_lob_send($conn, $lobs[0]);
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob_get() - Get BLOB/CLOB data
  • cubrid_lob_close() - Close BLOB/CLOB data
  • cubrid_lob_size() - Get BLOB/CLOB data size
  • cubrid_lob_export() - Export BLOB/CLOB data to file


Get BLOB/CLOB data size

  • « cubrid_lob_send
  • cubrid_lob2_bind »
  • PHP Manual
  • Функции CUBRID
  • Get BLOB/CLOB data size

cubrid_lob_size

(PECL CUBRID >= 8.3.1)

cubrid_lob_size — Get BLOB/CLOB data size

Описание

cubrid_lob_size ( resource $lob_identifier ) : string

cubrid_lob_size() is used to get BLOB/CLOB data size.

Список параметров

lob_identifier

LOB identifier.

Возвращаемые значения

A string representing LOB data size, when process is successful.

FALSE, when process is unsuccessful.

Список изменений

Версия | Описание
8.4.0 | Change return value type from int to string.

Примеры

Пример #1 cubrid_lob_size() example

<?php
$lobs = cubrid_lob_get($con, "SELECT doc_content FROM doc WHERE doc_id=5");
echo "Doc size:".cubrid_lob_size($lobs[0]);
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
?>

Смотрите также

  • cubrid_lob_get() - Get BLOB/CLOB data
  • cubrid_lob_close() - Close BLOB/CLOB data
  • cubrid_lob_export() - Export BLOB/CLOB data to file
  • cubrid_lob_send() - Read BLOB/CLOB data and send straight to browser


Bind a lob object or a string as a lob object to a prepared statement as parameters

  • « cubrid_lob_size
  • cubrid_lob2_close »
  • PHP Manual
  • Функции CUBRID
  • Bind a lob object or a string as a lob object to a prepared statement as parameters

cubrid_lob2_bind

(PECL CUBRID >= 8.4.1)

cubrid_lob2_bind — Bind a lob object or a string as a lob object to a prepared statement as parameters

Описание

cubrid_lob2_bind ( resource $req_identifier , int $bind_index , mixed $bind_value [, string $bind_value_type ] ) : bool

The cubrid_lob2_bind() function is used to bind BLOB/CLOB datas to a corresponding question mark placeholder in the SQL statement that was passed to cubrid_prepare(). If bind_value_type is not given, string will be "BLOB" as the default. But if you use cubrid_lob2_new() before, bind_value_type will be consistent with type in cubrid_lob2_new() as the default.

Список параметров

req_identifier

Request identifier as a result of cubrid_prepare().

bind_index

Location of binding parameters. It starts with 1.

bind_value

Actual value for binding.

bind_value_type

It must be "BLOB" or "CLOB" and it won't be case-sensitive. If it not be given, the default value is "BLOB".

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_lob2_bind() example

<?php
// Table: test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES (?, ?)");

cubrid_bind($req,1, 3);

$lob = cubrid_lob2_new($conn, 'CLOB');
cubrid_lob2_bind($req, 2, $lob);

cubrid_execute($req);

cubrid_bind($req, 1, 4);

cubrid_lob2_bind($req, 2, 'CUBRID LOB2 TEST', 'CLOB');

cubrid_execute($req);

cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob2_new() - Create a lob object
  • cubrid_lob2_close() - Close LOB object


Close LOB object

  • « cubrid_lob2_bind
  • cubrid_lob2_export »
  • PHP Manual
  • Функции CUBRID
  • Close LOB object

cubrid_lob2_close

(PECL CUBRID >= 8.4.1)

cubrid_lob2_close — Close LOB object

Описание

cubrid_lob2_close ( resource $lob_identifier ) : bool

The cubrid_lob2_close() function is used to close LOB object returned from cubrid_lob2_new() or got from the result set.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Возвращаемые значения

TRUE, on success.

FALSE, on failure.

Смотрите также

  • cubrid_lob2_new() - Create a lob object


Export the lob object to a file

  • « cubrid_lob2_close
  • cubrid_lob2_import »
  • PHP Manual
  • Функции CUBRID
  • Export the lob object to a file

cubrid_lob2_export

(PECL CUBRID >= 8.4.1)

cubrid_lob2_export — Export the lob object to a file

Описание

cubrid_lob2_export ( resource $lob_identifier , string $file_name ) : bool

The cubrid_lob2_export() function is used to save the contents of BLOB/CLOB data to a file. To use this function, you must use cubrid_lob2_new() or fetch a lob object from CUBRID database first. If the file already exists, the operation will fail. This function will not influence the cursor position of the lob object. It operates the entire lob object.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

filename

File name you want to store BLOB/CLOB data. It also supports the path of the file.

Возвращаемые значения

TRUE if the process is successful and FALSE for failure.

Примеры

Пример #1 cubrid_lob2_export() example

<?php
// Table: test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$req = cubrid_prepare($conn, "select * from doc");

cubrid_execute($req);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);

$row = cubrid_fetch($req, CUBRID_NUM | CUBRID_LOB);

cubrid_lob2_export($row[1], "doc_3.txt");

cubrid_lob2_close($row[1]);
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob2_new() - Create a lob object
  • cubrid_lob2_close() - Close LOB object
  • cubrid_lob2_import() - Import BLOB/CLOB data from a file
  • cubrid_lob2_bind() - Bind a lob object or a string as a lob object to a prepared statement as parameters


Import BLOB/CLOB data from a file

  • « cubrid_lob2_export
  • cubrid_lob2_new »
  • PHP Manual
  • Функции CUBRID
  • Import BLOB/CLOB data from a file

cubrid_lob2_import

(PECL CUBRID >= 8.4.1)

cubrid_lob2_import — Import BLOB/CLOB data from a file

Описание

cubrid_lob2_import ( resource $lob_identifier , string $file_name ) : bool

The cubrid_lob2_import() function is used to save the contents of BLOB/CLOB data from a file. To use this function, you must use cubrid_lob2_new() or fetch a lob object from CUBRID database first. If the file already exists, the operation will fail. This function will not influence the cursor position of the lob object. It operates the entire lob object.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

filename

File name you want to import BLOB/CLOB data. It also supports the path of the file.

Возвращаемые значения

TRUE if the process is successful and FALSE for failure.

Примеры

Пример #1 cubrid_lob2_export() example

<?php

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES (?, ?)");
cubrid_bind($req, 1, 1);

$lob = cubrid_lob2_new($conn, "clob");
cubrid_lob2_import($lob, "doc_1.txt");
cubrid_lob2_bind($req, 2, $lob, 'CLOB'); // or cubrid_lob2_bind($req, 2, $lob);

cubrid_execute($req);

cubrid_lob2_close($lob);
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob2_new() - Create a lob object
  • cubrid_lob2_close() - Close LOB object
  • cubrid_lob2_export() - Export the lob object to a file
  • cubrid_lob2_bind() - Bind a lob object or a string as a lob object to a prepared statement as parameters


Create a lob object

  • « cubrid_lob2_import
  • cubrid_lob2_read »
  • PHP Manual
  • Функции CUBRID
  • Create a lob object

cubrid_lob2_new

(PECL CUBRID >= 8.4.1)

cubrid_lob2_new — Create a lob object

Описание

cubrid_lob2_new ([ resource $conn_identifier [, string $type = "BLOB" ]] ) : resource

The cubrid_lob2_new() function is used to create a lob object (both BLOB and CLOB). This function should be used before you bind a lob object.

Список параметров

conn_identifier

Connection identifier. If the connection identifier is not specified, the last connection opened by cubrid_connect() or cubrid_connect_with_url() is assumed.

type

It may be "BLOB" or "CLOB", it won't be case-sensitive. The default value is "BLOB".

Возвращаемые значения

Lob identifier when it is successful.

FALSE on failure.

Смотрите также

  • cubrid_lob2_close() - Close LOB object


Read from BLOB/CLOB data

  • « cubrid_lob2_new
  • cubrid_lob2_seek64 »
  • PHP Manual
  • Функции CUBRID
  • Read from BLOB/CLOB data

cubrid_lob2_read

(PECL CUBRID >= 8.4.1)

cubrid_lob2_read — Read from BLOB/CLOB data

Описание

cubrid_lob2_read ( resource $lob_identifier , int $len ) : string

The cubrid_lob2_read() function reads len bytes from the LOB data and returns the bytes read.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

len

Length from buffer you want to read from the lob data.

Возвращаемые значения

Returns the contents as a string.

FALSE when there is no more data.

NULL on failure.

Примеры

Пример #1 cubrid_lob2_read() example 1

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "public", "");

$req = cubrid_execute($conn, "select * from test_lob");

$row = cubrid_fetch_row($req, CUBRID_LOB);

print "position now is " . cubrid_lob2_tell($row[1]) . "\n";

cubrid_lob2_seek($row[1], 10, CUBRID_CURSOR_FIRST);

print "\nposition after moving farword is " . cubrid_lob2_tell($row[1]) . "\n";

$data = cubrid_lob2_read($row[1], 12);

print "\nposition after reading is " . cubrid_lob2_tell($row[1]) . "\n";

print $data . "\n";

cubrid_lob2_seek($row[1], 5, CUBRID_CURSOR_CURRENT);

print "\nposition after moving again is " . cubrid_lob2_tell($row[1]) . "\n";

$data = cubrid_lob2_read($row[1], 20);
print $data . "\n";

cubrid_disconnect($conn);
?>

Пример #2 cubrid_lob2_read() example 2

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

$req = cubrid_execute($conn, "select * from test_lob");

$row = cubrid_fetch_row($req, CUBRID_LOB);

while (true) {
    if ($data = cubrid_lob2_read($row[1], 1024)) {
        print $data . "\n";
    }
    elseif ($data === false) {
        print "There is no more data\n";
        break;
    }
    else {
        print "There must some errors\n";
        break;
    }
}

cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Move the cursor of a lob object

  • « cubrid_lob2_read
  • cubrid_lob2_seek »
  • PHP Manual
  • Функции CUBRID
  • Move the cursor of a lob object

cubrid_lob2_seek64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_seek64 — Move the cursor of a lob object

Описание

cubrid_lob2_seek64 ( resource $lob_identifier , string $offset [, int $origin = CUBRID_CURSOR_CURRENT ] ) : bool

The cubrid_lob2_seek64() function is used to move the cursor position of a lob object by the value set in the offset argument, to the direction set in the origin argument. If the offset you want to move is larger than an integer data can be stored, you can use this function.

To set the origin argument, you can use CUBRID_CURSOR_FIRST to set the cursor position moving forward offset units from the first beginning. In this case, offset must be a positive value.

If you use CUBRID_CURSOR_CURRENT for origin, you can move forward or backward. and offset can be positive or negative.

If you use CUBRID_CURSOR_LAST for origin, you can move backward offset units from the end of LOB object and offset only can be positive.

Замечание:

If you use this function to move the cursor position of the lob object, you should pass offset as a string.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

offset

Number of units you want to move the cursor.

origin

This parameter can be the following values:

CUBRID_CURSOR_FIRST: move forward from the first beginning.

CUBRID_CURSOR_CURRENT: move forward or backward from the current position.

CUBRID_CURSOR_LAST: move backward at the end of LOB object.

Возвращаемые значения

TRUE if the process is successful and FALSE for failure.

Примеры

Пример #1 cubrid_lob2_seek64() example

<?php
// test_lob (id INT, contents CLOB)
// Data length of doc_1.txt should be greater than 20101029056306120215.

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES (?, ?)");
cubrid_bind($req, 1, 1);

$lob = cubrid_lob2_new($conn, "clob");
cubrid_lob2_import($lob, "doc_1.txt");
cubrid_lob2_bind($req, 2, $lob, 'CLOB'); // or cubrid_lob2_bind($req, 2, $lob);

cubrid_execute($req);

cubrid_lob2_close($lob);

$req = cubrid_execute($conn, "select * from test_lob");
$row = cubrid_fetch_row($req, CUBRID_LOB);
$lob = $row[1];

cubrid_lob2_seek64($lob, "20101029056306120215", CUBRID_CURSOR_FIRST);
$data = cubrid_lob2_read($lob, 20);
echo $data."\n";
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Move the cursor of a lob object

  • « cubrid_lob2_seek64
  • cubrid_lob2_size64 »
  • PHP Manual
  • Функции CUBRID
  • Move the cursor of a lob object

cubrid_lob2_seek

(PECL CUBRID >= 8.4.1)

cubrid_lob2_seek — Move the cursor of a lob object

Описание

cubrid_lob2_seek ( resource $lob_identifier , int $offset [, int $origin = CUBRID_CURSOR_CURRENT ] ) : bool

The cubrid_lob2_seek() function is used to move the cursor position of a lob object by the value set in the offset argument, to the direction set in the origin argument.

To set the origin argument, you can use CUBRID_CURSOR_FIRST to set the cursor position moving forward offset units from the first beginning. In this case, offset must be a positive value.

If you use CUBRID_CURSOR_CURRENT for origin, you can move forward or backward. and offset can be positive or negative.

If you use CUBRID_CURSOR_LAST for origin, you can move backward offset units from the end of LOB object and offset only can be positive.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

offset

Number of units you want to move the cursor.

origin

This parameter can be the following values:

CUBRID_CURSOR_FIRST: move forward from the first beginning.

CUBRID_CURSOR_CURRENT: move forward or backward from the current position.

CUBRID_CURSOR_LAST: move backward at the end of LOB object.

Возвращаемые значения

TRUE if the process is successful and FALSE for failure.

Примеры

Пример #1 cubrid_lob2_seek() example

<?php
// test_lob (id INT, contents CLOB)
$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");
$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES(2, ?)");

$lob = cubrid_lob2_new($conn, 'CLOB');
$len = cubrid_lob2_write($lob, "Hello world");

cubrid_lob2_seek($lob, 0, CUBRID_CURSOR_LAST);
cubrid_lob2_write($lob, "beautiful");

cubrid_lob2_seek($lob, 15, CUBRID_CURSOR_FIRST);
$data = cubrid_lob2_read($lob, 5);

echo $data."\n";

cubrid_lob2_bind($req, 1, $lob);
cubrid_execute($req);

cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Get a lob object's size

  • « cubrid_lob2_seek
  • cubrid_lob2_size »
  • PHP Manual
  • Функции CUBRID
  • Get a lob object's size

cubrid_lob2_size64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_size64 — Get a lob object's size

Описание

cubrid_lob2_size64 ( resource $lob_identifier ) : string

The cubrid_lob2_size64() function is used to get the size of a lob object. If the size of a lob object is larger than an integer data can be stored, you can use this function and it will return the size as a string.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Возвращаемые значения

It will return the size of the LOB object as a string when it processes successfully.

FALSE on failure.

Смотрите также

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size


Get a lob object's size

  • « cubrid_lob2_size64
  • cubrid_lob2_tell64 »
  • PHP Manual
  • Функции CUBRID
  • Get a lob object's size

cubrid_lob2_size

(PECL CUBRID >= 8.4.1)

cubrid_lob2_size — Get a lob object's size

Описание

cubrid_lob2_size ( resource $lob_identifier ) : int

The cubrid_lob2_size() function is used to get the size of a lob object.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Возвращаемые значения

It will return the size of the LOB object when it processes successfully.

FALSE on failure.

Смотрите также

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size64() - Get a lob object's size


Tell the cursor position of the LOB object

  • « cubrid_lob2_size
  • cubrid_lob2_tell »
  • PHP Manual
  • Функции CUBRID
  • Tell the cursor position of the LOB object

cubrid_lob2_tell64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_tell64 — Tell the cursor position of the LOB object

Описание

cubrid_lob2_tell64 ( resource $lob_identifier ) : string

The cubrid_lob2_tell64() function is used to tell the cursor position of the LOB object. If the size of a lob object is larger than an integer data can be stored, you can use this function and it will return the position information as a string.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Возвращаемые значения

It will return the cursor position on the LOB object as a string when it processes successfully.

FALSE on failure.

Смотрите также

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Tell the cursor position of the LOB object

  • « cubrid_lob2_tell64
  • cubrid_lob2_write »
  • PHP Manual
  • Функции CUBRID
  • Tell the cursor position of the LOB object

cubrid_lob2_tell

(PECL CUBRID >= 8.4.1)

cubrid_lob2_tell — Tell the cursor position of the LOB object

Описание

cubrid_lob2_tell ( resource $lob_identifier ) : int

The cubrid_lob2_tell() function is used to tell the cursor position of the LOB object.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Возвращаемые значения

It will return the cursor position on the LOB object when it processes successfully.

FALSE on failure.

Смотрите также

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Write to a lob object

  • « cubrid_lob2_tell
  • cubrid_lock_read »
  • PHP Manual
  • Функции CUBRID
  • Write to a lob object

cubrid_lob2_write

(PECL CUBRID >= 8.4.1)

cubrid_lob2_write — Write to a lob object

Описание

cubrid_lob2_write ( resource $lob_identifier , string $buf ) : bool

The cubrid_lob2_write() function reads as much as data from buf and stores it to the LOB object. Note that this function can only append characters now.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

buf

Data that need to be written to the lob object.

Возвращаемые значения

TRUE if the process is successful and FALSE for failure.

Примеры

Пример #1 cubrid_lob2_write() example 1

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES(2, ?)");

$lob = cubrid_lob2_new($conn, 'CLOB');
$len = cubrid_lob2_write($lob, "Hello world");

cubrid_lob2_bind($req, 1, $lob);
cubrid_execute($req);

cubrid_disconnect($conn);
?>

Пример #2 cubrid_lob2_write() example 2

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES(1, ?)");
$lob1 = cubrid_lob2_new($conn, 'CLOB');
$len = cubrid_lob2_write($lob1, "cubrid php driver");
cubrid_lob2_bind($req, 1, $lob1);
cubrid_execute($req);

$req = cubrid_execute($conn, "select * from test_lob");

$row = cubrid_fetch_row($req, CUBRID_LOB);
$lob2 = $row[1];
cubrid_lob2_seek($lob2, 0, CUBRID_CURSOR_LAST);

$pos = cubrid_lob2_tell($lob2);
print "pos before write: $pos\n";

cubrid_lob2_write($lob2, "Hello world");

$pos = cubrid_lob2_tell($lob2);
print "pos after write: $pos\n";

cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Set a read lock on the given OID

  • « cubrid_lob2_write
  • cubrid_lock_write »
  • PHP Manual
  • Функции CUBRID
  • Set a read lock on the given OID

cubrid_lock_read

(PECL CUBRID >= 8.3.0)

cubrid_lock_read — Set a read lock on the given OID

Описание

cubrid_lock_read ( resource $conn_identifier , string $oid ) : bool

The cubrid_lock_read() function is used to put read lock on the instance pointed by given oid.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance that you want to put read lock on.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_lock_read() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

cubrid_lock_read($conn, $oid);

$attr = cubrid_get($conn, $oid, "b");
var_dump($attr);

$attr = cubrid_get($conn, $oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

string(9) "{1, 2, 3}"
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

Смотрите также

  • cubrid_lock_write() - Set a write lock on the given OID


Set a write lock on the given OID

  • « cubrid_lock_read
  • cubrid_move_cursor »
  • PHP Manual
  • Функции CUBRID
  • Set a write lock on the given OID

cubrid_lock_write

(PECL CUBRID >= 8.3.0)

cubrid_lock_write — Set a write lock on the given OID

Описание

cubrid_lock_write ( resource $conn_identifier , string $oid ) : bool

The cubrid_lock_write() function is used to put write lock on the instance pointed by the given oid.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance that you want to put write lock on.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_lock_write() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

cubrid_lock_write($conn, $oid);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_put($conn, $oid, "b", array(2, 4, 8));

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(3) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "4"
  [2]=>
  string(1) "8"
}

Смотрите также

  • cubrid_lock_read() - Set a read lock on the given OID


Move the cursor in the result

  • « cubrid_lock_write
  • cubrid_next_result »
  • PHP Manual
  • Функции CUBRID
  • Move the cursor in the result

cubrid_move_cursor

(PECL CUBRID >= 8.3.0)

cubrid_move_cursor — Move the cursor in the result

Описание

cubrid_move_cursor ( resource $req_identifier , int $offset [, int $origin = CUBRID_CURSOR_CURRENT ] ) : bool

The cubrid_move_cursor() function is used to move the current cursor location of req_identifier by the value set in the offset argument, to the direction set in the origin argument. To set the origin argument, you can use CUBRID_CURSOR_FIRST for the first part of the result, CUBRID_CURSOR_CURRENT for the current location of the result, or CUBRID_CURSOR_LAST for the last part of the result. If origin argument is not explicitly designated, then the function uses CUBRID_CURSOR_CURRENT as its default value.

If the value of cursor movement range goes over the valid limit, then the cursor moves to the next location after the valid range for the cursor. For example, if you move 20 units in the result with the size of 10, then the cursor will move to 11th place and return CUBRID_NO_MORE_DATA.

Список параметров

req_identifier

Request identifier.

offset

Number of units you want to move the cursor.

origin

Location where you want to move the cursor from CUBRID_CURSOR_FIRST, CUBRID_CURSOR_CURRENT, CUBRID_CURSOR_LAST.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsucceful.

Примеры

Пример #1 cubrid_move_cursor() example

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code");
cubrid_move_cursor($req, 1, CUBRID_CURSOR_LAST);

$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_CURRENT);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  string(1) "G"
  [1]=>
  string(4) "Gold"
}
array(2) {
  [0]=>
  string(1) "X"
  [1]=>
  string(5) "Mixed"
}
array(2) {
  [0]=>
  string(1) "M"
  [1]=>
  string(3) "Man"
}

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement


Get result of next query when executing multiple SQL statements

  • « cubrid_move_cursor
  • cubrid_num_cols »
  • PHP Manual
  • Функции CUBRID
  • Get result of next query when executing multiple SQL statements

cubrid_next_result

(PECL CUBRID >= 8.4.0)

cubrid_next_result — Get result of next query when executing multiple SQL statements

Описание

cubrid_next_result ( resource $result ) : bool

The cubrid_next_result() function is used to get results of next query if multiple SQL statements are executed and CUBRID_EXEC_QUERY_ALL flag is set upon cubrid_execute().

Список параметров

result

result comes from a call to cubrid_execute()

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_next_result() example

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb", "dba");

$sql_stmt = "SELECT * FROM code; SELECT * FROM history WHERE host_year=2004 AND event_code=20281";
$res = cubrid_execute($conn, $sql_stmt, CUBRID_EXEC_QUERY_ALL);

get_result_info($res);
cubrid_next_result($res);
get_result_info($res);

function get_result_info($req)
{
    printf("\n------------ get_result_info --------------------\n");

    $row_num = cubrid_num_rows($req);
    $col_num = cubrid_num_cols($req);

    $column_name_list = cubrid_column_names($req);
    $column_type_list = cubrid_column_types($req);

    $column_last_name = cubrid_field_name($req, $col_num - 1);
    $column_last_table = cubrid_field_table($req, $col_num - 1);

    $column_last_type = cubrid_field_type($req, $col_num - 1);
    $column_last_len = cubrid_field_len($req, $col_num - 1);

    $column_1_flags = cubrid_field_flags($req, 1);

    printf("%-30s %d\n", "Row count:", $row_num);
    printf("%-30s %d\n", "Column count:", $col_num);
    printf("\n");

    printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Len");
    printf("------------------------------------------------------------------------------\n");

    $size = count($column_name_list);
    for($i = 0; $i < $size; $i++) {
        $column_len = cubrid_field_len($req, $i);
        printf("%-30s %-30s %-15s\n", $column_name_list[$i], $column_type_list[$i], $column_len);
    }
    printf("\n\n");

    printf("%-30s %s\n", "Last Column Name:", $column_last_name);
    printf("%-30s %s\n", "Last Column Table:", $column_last_table);
    printf("%-30s %s\n", "Last Column Type:", $column_last_type);
    printf("%-30s %d\n", "Last Column Len:", $column_last_len);
    printf("%-30s %s\n", "Second Column Flags:", $column_1_flags);

    printf("\n\n");
}
?>

Результат выполнения данного примера:

------------ get_result_info --------------------
Row count:                     6
Column count:                  2

Column Names                   Column Types                   Column Len
------------------------------------------------------------------------------
s_name                         char                           1
f_name                         varchar                        6

Last Column Name:              f_name
Last Column Table:             code
Last Column Type:              varchar
Last Column Len:               6
Second Column Flags:

------------ get_result_info --------------------
Row count:                     4
Column count:                  5

Column Names                   Column Types                   Column Len
------------------------------------------------------------------------------
event_code                     integer                        11
athlete                        varchar                        40
host_year                      integer                        11
score                          varchar                        10
unit                           varchar                        5

Last Column Name:              unit
Last Column Table:             history
Last Column Type:              varchar
Last Column Len:               5
Second Column Flags:           not_null primary_key unique_key

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement


Return the number of columns in the result set

  • « cubrid_next_result
  • cubrid_num_rows »
  • PHP Manual
  • Функции CUBRID
  • Return the number of columns in the result set

cubrid_num_cols

(PECL CUBRID >= 8.3.0)

cubrid_num_cols — Return the number of columns in the result set

Описание

cubrid_num_cols ( resource $result ) : int

The cubrid_num_cols() function is used to get the number of columns from the query result. It can only be used when the query executed is a select statement.

Список параметров

result

Result.

Возвращаемые значения

Number of columns, when process is successful.

FALSE, if SQL statement is not SELECT.

Примеры

Пример #1 cubrid_num_cols() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code");

$row_num = cubrid_num_rows($req);
$col_num = cubrid_num_cols($req);

printf("Row Num: %d\nColumn Num: %d\n", $row_num, $col_num);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Row Num: 6
Column Num: 2

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_num_rows() - Get the number of rows in the result set


Get the number of rows in the result set

  • « cubrid_num_cols
  • cubrid_pconnect_with_url »
  • PHP Manual
  • Функции CUBRID
  • Get the number of rows in the result set

cubrid_num_rows

(PECL CUBRID >= 8.3.0)

cubrid_num_rows — Get the number of rows in the result set

Описание

cubrid_num_rows ( resource $result ) : int

The cubrid_num_rows() function is used to get the number of rows from the query result. You can use it only when the query executed is a select statement. When you want to know such value for INSERT, UPDATE, or DELETE query, you have to use the cubrid_affected_rows() function.

Note: The cubrid_num_rows() function can only be used for synchronous query; it returns 0 when it is used for asynchronous query.

Список параметров

result

result comes from a call to cubrid_execute(), cubrid_query() and cubrid_prepare()

Возвращаемые значения

Number of rows, when process is successful.

0 when the query was done in async mode.

-1, if SQL statement is not SELECT.

FALSE when process is unsuccessful.

Примеры

Пример #1 cubrid_num_rows() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code");

$row_num = cubrid_num_rows($req);
$col_num = cubrid_num_cols($req);

printf("Row Num: %d\nColumn Num: %d\n", $row_num, $col_num);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Row Num: 6
Column Num: 2

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_num_cols() - Return the number of columns in the result set
  • cubrid_affected_rows() - Количество строк, затронутых последним SQL-запросом


Open a persistent connection to CUBRID server

  • « cubrid_num_rows
  • cubrid_pconnect »
  • PHP Manual
  • Функции CUBRID
  • Open a persistent connection to CUBRID server

cubrid_pconnect_with_url

(PECL CUBRID >= 8.3.1)

cubrid_pconnect_with_url — Open a persistent connection to CUBRID server

Описание

cubrid_pconnect_with_url ( string $conn_url [, string $userid [, string $passwd ]] ) : resource

Establishes a persistent connection to a CUBRID server.

cubrid_pconnect_with_url() acts very much like cubrid_connect_with_url() 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, port, dbname and userid. 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 (cubrid_close() or cubrid_disconnect() will not close links established by cubrid_pconnect_with_url()).

This type of link is therefore called 'persistent'.

<url> ::= CUBRID:<host>:<db_name>:<db_user>:<db_password>:[?<properties>]

<properties> ::= <property> [&<property>]

<properties> ::= alhosts=<alternative_hosts>[ &rctime=<time>]

<properties> ::= login_timeout=<milli_sec>

<properties> ::= query_timeout=<milli_sec>

<properties> ::= disconnect_on_query_timeout=true|false

<alternative_hosts> ::= <standby_broker1_host>:<port> [,<standby_broker2_host>:<port>]

<host> := HOSTNAME | IP_ADDR

<time> := SECOND

<milli_sec> := MILLI SECOND

  • host : A host name or IP address of the master database
  • db_name : A name of the database
  • db_user : A name of the database user
  • db_password : A database user password
  • alhosts : Specifies the broker information of the standby server, which is used for failover when it is impossible to connect to the active server. You can specify multiple brokers for failover, and the connection to the brokers is attempted in the order listed in alhosts
  • rctime : An interval between the attempts to connect to the active broker in which failure occurred. After a failure occurs, the system connects to the broker specified by althosts (failover), terminates the transaction, and then attempts to connect to the active broker of the master database at every rctime. The default value is 600 seconds.
  • login_timeout : Timeout value (unit: msec.) for database login. The default value is 0, which means infinite postponement.
  • query_timeout : Timeout value (unit: msec.) for query request. Upon timeout, a message to cancel requesting a query transferred to server is sent. The return value can depend on the disconnect_on_query_timeout configuration; even though the message to cancel a request is sent to server, that request may succeed.
  • disconnect_on_query_timeout : Configures a value whether to immediately return an error of function being executed upon timeout. The default value is false.

Замечание:

? and : that are used as identifiers in PHP connection URL can't be included in the password. The following is an example of a password that is invalid to use as connection URL because it contains "?:".

$url = "CUBRID:localhost:33000:tdb:dba:12?:?login_timeout=100";

Passwords that contain ? or : may be passed as a separate parameter.

$url = "CUBRID:localhost:33000:tbd:::?login_timeout=100";

$conn = cubrid_pconnect_with_url ($url, "dba", "12?");

If user or password is empty,you can't delete ":",the following is an example.

$url = "CUBRID:localhost:33000:demodb:::";

Список параметров

conn_url

A character string that contains server connection information.

userid

User name for the database.

passwd

User password.

Возвращаемые значения

Connection identifier, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_pconnect_with_url() url without properties example

<?php
$conn_url = "CUBRID:127.0.0.1:33000:demodb:dba::"
$con = cubrid_pconnect_with_url ($conn_url);

if ($con) {
   echo "connected successfully";
   cubrid_execute($con, "create table person(id int,name char(16))");
   $req =cubrid_execute($con, "insert into person values(1,'James')");

   if ($req) {
      cubrid_close_request ($req);
      cubrid_commit ($con);
   } else {
      cubrid_rollback ($con);
   }
   cubrid_disconnect ($con);
}
?>

Пример #2 cubrid_pconnect_with_url() url with properties example

<?php
$conn_url = "CUBRID:127.0.0.1:33000:demodb:dba::?althost=10.34.63.132:33088&rctime=100"
$con = cubrid_pconnect_with_url ($conn_url);

if ($con) {
   echo "connected successfully";
   $req =cubrid_execute($con, "insert into person values(1,'James')");

   if ($req) {
      cubrid_close_request ($req);
      cubrid_commit ($con);
   } else {
      cubrid_rollback ($con);
   }
   cubrid_disconnect ($con);
}
?>

Смотрите также

  • cubrid_connect() - Открывает соединение к серверу CUBRID
  • cubrid_connect_with_url() - Создает окружение для соединения с сервером CUBRID
  • cubrid_pconnect() - Open a persistent connection to a CUBRID server
  • cubrid_disconnect() - Закрывает соединение с базой данных
  • cubrid_close() - Закрывает соединение с базой данных


Open a persistent connection to a CUBRID server

  • « cubrid_pconnect_with_url
  • cubrid_prepare »
  • PHP Manual
  • Функции CUBRID
  • Open a persistent connection to a CUBRID server

cubrid_pconnect

(PECL CUBRID >= 8.3.1)

cubrid_pconnect — Open a persistent connection to a CUBRID server

Описание

cubrid_pconnect ( string $host , int $port , string $dbname [, string $userid [, string $passwd ]] ) : resource

Establishes a persistent connection to a CUBRID server.

cubrid_pconnect() acts very much like cubrid_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, port, dbname and userid. 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 (cubrid_close() or cubrid_disconnect() will not close links established by cubrid_pconnect()).

This type of link is therefore called 'persistent'.

Список параметров

host

Host name or IP address of CUBRID CAS server.

port

Port number of CUBRID CAS server (BROKER_PORT configured in $CUBRID/conf/cubrid_broker.conf).

dbname

Name of database.

userid

User name for the database.

passwd

User password.

Возвращаемые значения

Connection identifier, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_connect() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_pconnect("localhost", 33000, "demodb", "dba");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Смотрите также

  • cubrid_connect() - Открывает соединение к серверу CUBRID
  • cubrid_connect_with_url() - Создает окружение для соединения с сервером CUBRID
  • cubrid_pconnect_with_url() - Open a persistent connection to CUBRID server
  • cubrid_disconnect() - Закрывает соединение с базой данных
  • cubrid_close() - Закрывает соединение с базой данных


Prepare a SQL statement for execution

  • « cubrid_pconnect
  • cubrid_put »
  • PHP Manual
  • Функции CUBRID
  • Prepare a SQL statement for execution

cubrid_prepare

(PECL CUBRID >= 8.3.0)

cubrid_prepare — Prepare a SQL statement for execution

Описание

cubrid_prepare ( resource $conn_identifier , string $prepare_stmt [, int $option = 0 ] ) : resource

The cubrid_prepare() function is a sort of API which represents SQL statements compiled previously to a given connection handle. This pre-compiled SQL statement will be included in the cubrid_prepare().

Accordingly, you can use this statement effectively to execute several times repeatedly or to process long data. Only a single statement can be used and a parameter may put a question mark (?) to appropriate area in the SQL statement. Add a parameter when you bind a value in the VALUES clause of INSERT statement or in the WHERE clause. Note that it is allowed to bind a value to a MARK(?) by using the cubrid_bind() function only.

Список параметров

conn_identifier

Connection identifier.

prepare_stmt

Prepare query.

option

OID return option CUBRID_INCLUDE_OID.

Возвращаемые значения

Request identifier, if process is successful;

FALSE, if process is unsuccessful.

Примеры

Пример #1 cubrid_prepare() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$sql = <<<EOD
SELECT g.event_code, e.name
FROM game g
JOIN event e ON g.event_code=e.code
WHERE host_year = ? AND event_code NOT IN (SELECT event_code FROM game WHERE host_year=?) GROUP BY event_code;
EOD;

$req = cubrid_prepare($conn, $sql);

cubrid_bind($req, 1, 2004);
cubrid_bind($req, 2, 2000);
cubrid_execute($req);

$row_num = cubrid_num_rows($req);
printf("There are %d event that exits in 2004 olympic but not in 2000. For example:\n\n", $row_num);

printf("%-15s %s\n", "Event_code", "Event_name");
printf("----------------------------\n");

$row = cubrid_fetch_assoc($req);
printf("%-15d %s\n", $row["event_code"], $row["name"]);
$row = cubrid_fetch_assoc($req);
printf("%-15d %s\n", $row["event_code"], $row["name"]);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

There are 27 event that exits in 2004 olympic but not in 2000. For example:

Event_code      Event_name
----------------------------
20063           +91kg
20070           64kg

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_bind() - Связывает переменные с подготовленным запросом


Update a column using OID

  • « cubrid_prepare
  • cubrid_rollback »
  • PHP Manual
  • Функции CUBRID
  • Update a column using OID

cubrid_put

(PECL CUBRID >= 8.3.0)

cubrid_put — Update a column using OID

Описание

cubrid_put ( resource $conn_identifier , string $oid [, string $attr ], mixed $value ) : bool

The cubrid_put() function is used to update an attribute of the instance of the given oid.

You can update single attribute by using string data type to set attr. In such case, you can use integer, floating point or string type data for the value argument. To update multiple number of attributes, you can disregard the attr argument, and set value argument with associative array data type.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance that you want to update.

attr

Name of the attribute that you want to update.

value

New value that you want to assign to the attribute.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_put() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_put($conn, $oid, "b", array(2, 4, 8));

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(3) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "4"
  [2]=>
  string(1) "8"
}

Смотрите также

  • cubrid_get() - Get a column using OID
  • cubrid_set_add() - Insert a single element to set type column using OID
  • cubrid_set_drop() - Delete an element from set type column using OID
  • cubrid_seq_insert() - Insert an element to a sequence type column using OID
  • cubrid_seq_drop() - Delete an element from sequence type column using OID
  • cubrid_seq_put() - Update the element value of sequence type column using OID


Roll back a transaction

  • « cubrid_put
  • cubrid_schema »
  • PHP Manual
  • Функции CUBRID
  • Roll back a transaction

cubrid_rollback

(PECL CUBRID >= 8.3.0)

cubrid_rollback — Roll back a transaction

Описание

cubrid_rollback ( resource $conn_identifier ) : bool

The cubrid_rollback() function executes rollback on the transaction pointed by conn_identifier, currently in progress.

Connection to server is closed after calling cubrid_rollback(). Connection handle, however, is still valid.

Список параметров

conn_identifier

Connection identifier.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_rollback() example

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb", "dba");
cubrid_set_autocommit($conn,false);

@cubrid_execute($conn, "DROP TABLE publishers");

$sql = <<<EOD
CREATE TABLE publishers(
pub_id CHAR(3),
pub_name VARCHAR(20),
city VARCHAR(15),
state CHAR(2),
country VARCHAR(15)
)
EOD;

if (!cubrid_execute($conn, $sql)) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n", cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}

$req = cubrid_prepare($conn, "INSERT INTO publishers VALUES(?, ?, ?, ?, ?)");

$id_list = array("P01", "P02", "P03", "P04");
$name_list = array("Abatis Publishers", "Core Dump Books", "Schadenfreude Press", "Tenterhooks Press");
$city_list = array("New York", "San Francisco", "Hamburg", "Berkeley");
$state_list = array("NY", "CA", NULL, "CA");
$country_list = array("USA", "USA", "Germany", "USA");

for ($i = 0, $size = count($id_list); $i < $size; $i++) {
    cubrid_bind($req, 1, $id_list[$i]);
    cubrid_bind($req, 2, $name_list[$i]);
    cubrid_bind($req, 3, $city_list[$i]);
    cubrid_bind($req, 4, $state_list[$i]);
    cubrid_bind($req, 5, $country_list[$i]);

    if (!($ret = cubrid_execute($req))) {
        break;
    }
}

if (!$ret) {
    cubrid_rollback($conn);
} else {
    cubrid_commit($conn);

    $req = cubrid_execute($conn, "SELECT * FROM publishers");
    while ($result = cubrid_fetch_assoc($req)) {
        printf("%-3s %-20s %-15s %-3s %-15s\n",
            $result["pub_id"], $result["pub_name"], $result["city"], $result["state"], $result["country"]);
    }
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

P01 Abatis Publishers    New York        NY  USA
P02 Core Dump Books      San Francisco   CA  USA
P03 Schadenfreude Press  Hamburg             Germany
P04 Tenterhooks Press    Berkeley        CA  USA

Смотрите также

  • cubrid_commit() - Подтверждение транзакции
  • cubrid_disconnect() - Закрывает соединение с базой данных


Get the requested schema information

  • « cubrid_rollback
  • cubrid_seq_drop »
  • PHP Manual
  • Функции CUBRID
  • Get the requested schema information

cubrid_schema

(PECL CUBRID >= 8.3.0)

cubrid_schema — Get the requested schema information

Описание

cubrid_schema ( resource $conn_identifier , int $schema_type [, string $class_name [, string $attr_name ]] ) : array

The cubrid_schema() function is used to get the requested schema information from database. You have to designate class_name, if you want to get information on certain class, attr_name, if you want to get information on certain attribute (can be used only with CUBRID_ SCH_ATTR_PRIVILEGE).

The result of the cubrid_schema function is returned as a two-dimensional array (column (associative array) * row (numeric array)). The following tables shows types of schema and the column structure of the result array to be returned based on the schema type.

Result Composition of Each Type
Schema | Column Number | Column Name | Value
CUBRID_SCH_CLASS | 1 | NAME |
 | 2 | TYPE | 0:system class 1:vclass 2:class
CUBRID_SCH_VCLASS | 1 | NAME |
 | 2 | TYPE | 1:vclass
CUBRID_SCH_QUERY_SPEC | 1 | QUERY_SPEC |
CUBRID_SCH_ATTRIBUTE / CUBRID_SCH_CLASS_ATTRIBUTE | 1 | ATTR_NAME |
 | 2 | DOMAIN |
 | 3 | SCALE |
 | 4 | PRECISION |
 | 5 | INDEXED | 1:indexed
 | 6 | NOT NULL | 1:not null
 | 7 | SHARED | 1:shared
 | 8 | UNIQUE | 1:unique
 | 9 | DEFAULT |
 | 10 | ATTR_ORDER | base:1
 | 11 | CLASS_NAME |
 | 12 | SOURCE_CLASS |
 | 13 | IS_KEY | 1:key
CUBRID_SCH_METHOD / CUBRID_SCH_CLASS_METHOD | 1 | NAME |
 | 2 | RET_DOMAIN |
 | 3 | ARG_DOMAIN |
CUBRID_SCH_METHOD_FILE | 1 | METHOD_FILE |
CUBRID_SCH_SUPERCLASS / CUBRID_SCH_DIRECT_SUPER_CLASS / CUBRID_SCH_SUBCLASS | 1 | CLASS_NAME |
 | 2 | TYPE | 0:system class 1:vclass 2:class
CUBRID_SCH_CONSTRAINT | 1 | TYPE | 0:unique 1:index 2:reverse unique 3:reverse index
 | 2 | NAME |
 | 3 | ATTR_NAME |
 | 4 | NUM_PAGES |
 | 5 | NUM_KEYS |
 | 6 | PRIMARY_KEY | 1:primary key
 | 7 | KEY_ORDER | base:1
CUBRID_SCH_TRIGGER | 1 | NAME |
 | 2 | STATUS |
 | 3 | EVENT |
 | 4 | TARGET_CLASS |
 | 5 | TARGET_ATTR |
 | 6 | ACTION_TIME |
 | 7 | ACTION |
 | 8 | PRIORITY |
 | 9 | CONDITION_TIME |
 | 10 | CONDITION |
CUBRID_SCH_CLASS_PRIVILEGE / CUBRID_SCH_ATTR_PRIVILEGE | 1 | CLASS_NAME / ATTR_NAME |
 | 2 | PRIVILEGE |
 | 3 | GRANTABLE |
CUBRID_SCH_PRIMARY_KEY | 1 | CLASS_NAME |
 | 2 | ATTR_NAME |
 | 3 | KEY_SEQ | base:1
 | 4 | KEY_NAME |
CUBRID_SCH_IMPORTED_KEYS / CUBRID_SCH_EXPORTED_KEYS / CUBRID_SCH_CROSS_REFERENCE | 1 | PKTABLE_NAME |
 | 2 | PKCOLUMN_NAME |
 | 3 | FKTABLE_NAME | base:1
 | 4 | FKCOLUMN_NAME |
 | 5 | KEY_SEQ | base:1
 | 6 | UPDATE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 7 | DELETE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 8 | FK_NAME |
 | 9 | PK_NAME |

Список параметров

conn_identifier

Connection identifier.

schema_type

Schema data that you want to know.

class_name

Class you want to know the schema of.

attr_name

Attribute you want to know the schema of.

Возвращаемые значения

Array containing the schema information, when process is successful;

FALSE, when process is unsuccessful

Список изменений

Версия | Описание
8.3.1 | Change return value: when process is unsuccessful, return false, not -1.

Примеры

Пример #1 cubrid_schema() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

printf("\n--- Primary Key ---\n");
$pk = cubrid_schema($conn, CUBRID_SCH_PRIMARY_KEY, "game");
var_dump($pk);

printf("\n--- Foreign Keys ---\n");
$fk = cubrid_schema($conn, CUBRID_SCH_IMPORTED_KEYS, "game");
var_dump($fk);

printf("\n--- Column Attribute ---\n");
$attr = cubrid_schema($conn, CUBRID_SCH_ATTRIBUTE, "stadium", "area");
var_dump($attr);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

--- Primary Key ---
array(3) {
  [0]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(12) "athlete_code"
    ["KEY_SEQ"]=>
    string(1) "3"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
  [1]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(10) "event_code"
    ["KEY_SEQ"]=>
    string(1) "2"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
  [2]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(9) "host_year"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
}

--- Foreign Keys ---
array(2) {
  [0]=>
  array(9) {
    ["PKTABLE_NAME"]=>
    string(7) "athlete"
    ["PKCOLUMN_NAME"]=>
    string(4) "code"
    ["FKTABLE_NAME"]=>
    string(4) "game"
    ["FKCOLUMN_NAME"]=>
    string(12) "athlete_code"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["UPDATE_RULE"]=>
    string(1) "1"
    ["DELETE_RULE"]=>
    string(1) "1"
    ["FK_NAME"]=>
    string(20) "fk_game_athlete_code"
    ["PK_NAME"]=>
    string(15) "pk_athlete_code"
  }
  [1]=>
  array(9) {
    ["PKTABLE_NAME"]=>
    string(5) "event"
    ["PKCOLUMN_NAME"]=>
    string(4) "code"
    ["FKTABLE_NAME"]=>
    string(4) "game"
    ["FKCOLUMN_NAME"]=>
    string(10) "event_code"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["UPDATE_RULE"]=>
    string(1) "1"
    ["DELETE_RULE"]=>
    string(1) "1"
    ["FK_NAME"]=>
    string(18) "fk_game_event_code"
    ["PK_NAME"]=>
    string(13) "pk_event_code"
  }
}

--- Column Attribute ---
array(1) {
  [0]=>
  array(13) {
    ["ATTR_NAME"]=>
    string(4) "area"
    ["DOMAIN"]=>
    string(1) "7"
    ["SCALE"]=>
    string(1) "2"
    ["PRECISION"]=>
    string(2) "10"
    ["INDEXED"]=>
    string(1) "0"
    ["NON_NULL"]=>
    string(1) "0"
    ["SHARED"]=>
    string(1) "0"
    ["UNIQUE"]=>
    string(1) "0"
    ["DEFAULT"]=>
    NULL
    ["ATTR_ORDER"]=>
    string(1) "4"
    ["CLASS_NAME"]=>
    string(7) "stadium"
    ["SOURCE_CLASS"]=>
    string(7) "stadium"
    ["IS_KEY"]=>
    string(1) "0"
  }
}


Delete an element from sequence type column using OID

  • « cubrid_schema
  • cubrid_seq_insert »
  • PHP Manual
  • Функции CUBRID
  • Delete an element from sequence type column using OID

cubrid_seq_drop

(PECL CUBRID >= 8.3.0)

cubrid_seq_drop — Delete an element from sequence type column using OID

Описание

cubrid_seq_drop ( resource $conn_identifier , string $oid , string $attr_name , int $index ) : bool

The cubrid_seq_drop() function is used to delete an element you request from the given sequence type attribute in the database.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute that you want to delete an element from.

index

Index of the element that you want to delete (1-based).

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_seq_drop() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_seq_drop($conn, $oid, "c", 4);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(3) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
}

Смотрите также

  • cubrid_seq_insert() - Insert an element to a sequence type column using OID
  • cubrid_seq_put() - Update the element value of sequence type column using OID


Insert an element to a sequence type column using OID

  • « cubrid_seq_drop
  • cubrid_seq_put »
  • PHP Manual
  • Функции CUBRID
  • Insert an element to a sequence type column using OID

cubrid_seq_insert

(PECL CUBRID >= 8.3.0)

cubrid_seq_insert — Insert an element to a sequence type column using OID

Описание

cubrid_seq_insert ( resource $conn_identifier , string $oid , string $attr_name , int $index , string $seq_element ) : bool

The cubrid_col_insert() function is used to insert an element to a sequence type attribute in a requested location.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute you want to insert an instance to.

index

Location of the element, you want to insert the element to (1-based).

seq_element

Content of the element that you want to insert.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_seq_insert() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_seq_insert($conn, $oid, "c", 5, "44");

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(5) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
  [4]=>
  string(2) "44"
}

Смотрите также

  • cubrid_seq_drop() - Delete an element from sequence type column using OID
  • cubrid_seq_put() - Update the element value of sequence type column using OID


Update the element value of sequence type column using OID

  • « cubrid_seq_insert
  • cubrid_set_add »
  • PHP Manual
  • Функции CUBRID
  • Update the element value of sequence type column using OID

cubrid_seq_put

(PECL CUBRID >= 8.3.0)

cubrid_seq_put — Update the element value of sequence type column using OID

Описание

cubrid_seq_put ( resource $conn_identifier , string $oid , string $attr_name , int $index , string $seq_element ) : bool

The cubrid_seq_put() function is used to update the content of the requested element in a sequent type attribute using OID.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute that you want to update an element.

index

Index (1-based) of the element that you want to update.

seq_element

New content that you want to use for the update.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_seq_put() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_seq_put($conn, $oid, "c", 1, "111");

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(4) {
  [0]=>
  string(3) "111"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}

Смотрите также

  • cubrid_seq_drop() - Delete an element from sequence type column using OID
  • cubrid_seq_insert() - Insert an element to a sequence type column using OID


Insert a single element to set type column using OID

  • « cubrid_seq_put
  • cubrid_set_autocommit »
  • PHP Manual
  • Функции CUBRID
  • Insert a single element to set type column using OID

cubrid_set_add

(PECL CUBRID >= 8.3.0)

cubrid_set_add — Insert a single element to set type column using OID

Описание

cubrid_set_add ( resource $conn_identifier , string $oid , string $attr_name , string $set_element ) : bool

The cubrid_set_add() function is used to insert a single element to a set type attribute (set, multiset, sequence) you requested.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute you want to insert an element.

set_element

Content of the element you want to insert.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_set_add() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_set_add($conn, $oid, "b", "4");

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(4) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
  [3]=>
  string(1) "4"
}

Смотрите также

  • cubrid_seq_drop() - Delete an element from sequence type column using OID


Устанавливает режим авто-коммита для соединения

  • « cubrid_set_add
  • cubrid_set_db_parameter »
  • PHP Manual
  • Функции CUBRID
  • Устанавливает режим авто-коммита для соединения

cubrid_set_autocommit

(PECL CUBRID >= 8.4.0)

cubrid_set_autocommit — Устанавливает режим авто-коммита для соединения

Описание

cubrid_set_autocommit ( resource $conn_identifier , bool $mode ) : bool

Функция cubrid_set_autocommit() используется для установки режима авто-коммита для соединения.

В CUBRID PHP, авто-коммит транзакций по умолчанию запрещен. Если вы его включите, все ожидающие транзакции будут автоматически подтверждены.

Список параметров

conn_identifier

Идентификатор соединения.

mode

Режим авто-коммита. Одна из двух констант:

  • CUBRID_AUTOCOMMIT_FALSE
  • CUBRID_AUTOCOMMIT_TRUE

Возвращаемые значения

TRUE, в случае успеха.

FALSE, в случае неудачи.

Смотрите также

  • cubrid_get_autocommit() - Возвращает настройку авто-коммита для соединения
  • cubrid_commit() - Подтверждение транзакции


Sets the CUBRID database parameters

  • « cubrid_set_autocommit
  • cubrid_set_drop »
  • PHP Manual
  • Функции CUBRID
  • Sets the CUBRID database parameters

cubrid_set_db_parameter

(PECL CUBRID >= 8.4.0)

cubrid_set_db_parameter — Sets the CUBRID database parameters

Описание

cubrid_set_db_parameter ( resource $conn_identifier , int $param_type , int $param_value ) : bool

The cubrid_set_db_parameter() function is used to set the CUBRID database parameters. It can set the following CUBRID database parameters:

  • PARAM_ISOLATION_LEVEL
  • PARAM_LOCK_TIMEOUT

Замечание:

The auto-commit mode can be set by using cubrid_set_autocommit().

Список параметров

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last link opened by cubrid_connect() is assumed.

param_type

Database parameter type.

param_value

Isolation level value (1-6) or lock timeout (in seconds) value.

Возвращаемые значения

TRUE on success.

FALSE on failure.

Примеры

Пример #1 cubrid_get_db_parameter() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$params = cubrid_get_db_parameter($conn);
var_dump($params);

cubrid_set_autocommit($conn, CUBRID_AUTOCOMMIT_TRUE);
cubrid_set_db_parameter($conn, CUBRID_PARAM_ISOLATION_LEVEL, 2);

$params_new = cubrid_get_db_parameter($conn);
var_dump($params_new);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(4) {
  ["PARAM_ISOLATION_LEVEL"]=>
  int(3)
  ["PARAM_LOCK_TIMEOUT"]=>
  int(-1)
  ["PARAM_MAX_STRING_LENGTH"]=>
  int(1073741823)
  ["PARAM_AUTO_COMMIT"]=>
  int(0)
}
array(4) {
  ["PARAM_ISOLATION_LEVEL"]=>
  int(2)
  ["PARAM_LOCK_TIMEOUT"]=>
  int(-1)
  ["PARAM_MAX_STRING_LENGTH"]=>
  int(1073741823)
  ["PARAM_AUTO_COMMIT"]=>
  int(1)
}

Смотрите также

  • cubrid_get_db_parameter() - Returns the CUBRID database parameters
  • cubrid_set_autocommit() - Устанавливает режим авто-коммита для соединения


Delete an element from set type column using OID

  • « cubrid_set_db_parameter
  • cubrid_set_query_timeout »
  • PHP Manual
  • Функции CUBRID
  • Delete an element from set type column using OID

cubrid_set_drop

(PECL CUBRID >= 8.3.0)

cubrid_set_drop — Delete an element from set type column using OID

Описание

cubrid_set_drop ( resource $conn_identifier , string $oid , string $attr_name , string $set_element ) : bool

The cubrid_set_drop() function is used to delete an element that you request from the given set type (set, multiset) attribute of the database.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute you want to delete an element from.

set_element

Content of the element you want to delete.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_set_drop() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_set_drop($conn, $oid, "b", "1");

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(2) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "3"
}

Смотрите также

  • cubrid_set_add() - Insert a single element to set type column using OID


Set the timeout time of query execution

  • « cubrid_set_drop
  • cubrid_version »
  • PHP Manual
  • Функции CUBRID
  • Set the timeout time of query execution

cubrid_set_query_timeout

(PECL CUBRID >= 8.4.1)

cubrid_set_query_timeout — Set the timeout time of query execution

Описание

cubrid_set_query_timeout ( resource $req_identifier , int $timeout ) : bool

The cubrid_set_query_timeout() function is used to set the timeout time of query execution.

Список параметров

req_identifier

Request identifier.

timeout

Timeout time, unit of msec.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Смотрите также

  • cubrid_get_query_timeout() - Get the query timeout value of the request


Получить версию модуля CUBRID PHP

  • « cubrid_set_query_timeout
  • Функции совместимости CUBRID MySQL »
  • PHP Manual
  • Функции CUBRID
  • Получить версию модуля CUBRID PHP

cubrid_version

(PECL CUBRID >= 8.3.0)

cubrid_version — Получить версию модуля CUBRID PHP

Описание

cubrid_version ( void ) : string

Функция cubrid_version() используется для получения версии модуля CUBRID PHP.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Информация о версии (например "8.3.1.0001").

Примеры

Пример #1 Пример использования cubrid_version()

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb", "dba");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

Результат выполнения данного примера:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Смотрите также

  • cubrid_error_code() - Получить код ошибки
  • cubrid_error_code_facility() - Получить код уровня, на котором произошла ошибка


Функции совместимости CUBRID MySQL

Содержание

  • cubrid_affected_rows — Количество строк, затронутых последним SQL-запросом
  • cubrid_client_encoding — Возвращает кодировку текущего соединения CUBRID
  • cubrid_close — Закрывает соединение с базой данных
  • cubrid_data_seek — Переместить внутренний указатель в результирующем наборе CUBRID
  • cubrid_db_name — Получение имени базы данных из результата cubrid_list_dbs
  • cubrid_errno — Возвращает код ошибки предыдущей операции CUBRID
  • cubrid_error — Возвращает текст последней произошедшей ошибки
  • cubrid_fetch_array — Извлечение строки из результирующего набора в виде ассоциативного массива, индексированного массива или обоих сразу
  • cubrid_fetch_assoc — Извлечь строку из результирующего набора в виде ассоциативного массива
  • cubrid_fetch_field — Получение информации о столбце результирующего набора в виде объекта
  • cubrid_fetch_lengths — Возвращает массив, содержащий длины всех столбцов текущей строки
  • cubrid_fetch_object — Извлечь следующую строку как объект
  • cubrid_fetch_row — Извлечь строку из результирующего набора в виде индексированного массива
  • cubrid_field_flags — Получить строку, содержащую флаги столбца по указанному индексу
  • cubrid_field_len — Получить максимальную длину указанного столбца
  • cubrid_field_name — Получить имя указанного столбца
  • cubrid_field_seek — Переместить внутренний указатель результирующего набора на указанный столбец
  • cubrid_field_table — Получить имя таблицы, которой принадлежит указанный столбец
  • cubrid_field_type — Получить тип указанного столбца
  • cubrid_list_dbs — Получить массив со списком всех баз данных CUBRID
  • cubrid_num_fields — Получить количество столбцов в результирующем наборе
  • cubrid_ping — Проверяет, живо ли соединение к серверу и переподнимает его, если нет
  • cubrid_query — Отправка запроса CUBRID
  • cubrid_real_escape_string — Экранирование специальных символов в SQL-запросе
  • cubrid_result — Получить значение из заданного столбца заданной строки
  • cubrid_unbuffered_query — Выполнение запроса без загрузки результата в память


Количество строк, затронутых последним SQL-запросом

  • « Функции совместимости CUBRID MySQL
  • cubrid_client_encoding »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Количество строк, затронутых последним SQL-запросом

cubrid_affected_rows

(PECL CUBRID >= 8.3.0)

cubrid_affected_rows — Количество строк, затронутых последним SQL-запросом

Описание

cubrid_affected_rows ([ resource $conn_identifier ] ) : int
cubrid_affected_rows ([ resource $req_identifier ] ) : int

Функция cubrid_affected_rows() используется для получения количества строк, затронутых последним SQL-запросом типа INSERT, DELETE или UPDATE.

Список параметров

conn_identifier

Идентификатор соединения CUBRID. Если не задано, то будет использоваться последнее открытое с помощью cubrid_connect() соединение.

req_identifier

Идентификатор запроса, должен быть возвращен функциями cubrid_prepare() или cubrid_execute(). Если не задан, то будет использован последний запрос, возвращенный cubrid_prepare() или cubrid_execute().

Возвращаемые значения

Количество строк, затронутых последним SQL-запросом, в случае успешного выполнения.

-1, если запрос не был типа INSERT, DELETE или UPDATE.

FALSE, если идентификатор запроса не указан и отсутствуют какие-либо выполненые запросы.

Примеры

Пример #1 Пример использования cubrid_affected_rows()

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
cubrid_execute($conn, "DROP TABLE IF EXISTS cubrid_test");
cubrid_execute($conn, "CREATE TABLE cubrid_test (d varchar)");
$sql_stmt = "INSERT INTO cubrid_test(d) VALUES('php-test')";
$req = cubrid_prepare($conn, $sql_stmt);

for ($i = 0; $i < 10; $i++) {
    cubrid_execute($req);
}
cubrid_commit($conn);

$req = cubrid_execute($conn, "DELETE FROM cubrid_test WHERE d='php-test'", CUBRID_ASYNC);
var_dump(cubrid_affected_rows());
var_dump(cubrid_affected_rows($conn));
var_dump(cubrid_affected_rows($req));

cubrid_disconnect($conn);

print "done!";
?>

Результат выполнения данного примера:

Rows deleted: 5

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement


Возвращает кодировку текущего соединения CUBRID

  • « cubrid_affected_rows
  • cubrid_close »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Возвращает кодировку текущего соединения CUBRID

cubrid_client_encoding

(PECL CUBRID >= 8.3.1)

cubrid_client_encoding — Возвращает кодировку текущего соединения CUBRID

Описание

cubrid_client_encoding ([ resource $conn_identifier ] ) : string

Функция возвращает кодировку текущего соединения CUBRID и аналогична функции cubrid_get_encoding().

Список параметров

conn_identifier

Идентификатор соединения. Если не задано, то будет использовано последнее открытое с помощью cubrid_connect() соединение.

Возвращаемые значения

Строка, содержащая кодировку текущего соединения CUBRID в случае успешного выполнения.

FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_client_encoding()

<?php

$con = cubrid_connect("localhost", 33000, "demodb");
if (!$con)
{
    die('Не получилось подключиться.');
}

printf("Текущая кодировка CUBRID: %s\n", cubrid_client_encoding($con));

?>

Результат выполнения данного примера:

Текущая кодировка CUBRID: iso8859-1

Смотрите также

  • cubrid_get_charset() - Возвращает кодировку текущего соединения CUBRID


Закрывает соединение с базой данных

  • « cubrid_client_encoding
  • cubrid_data_seek »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Закрывает соединение с базой данных

cubrid_close

(PECL CUBRID >= 8.3.1)

cubrid_close — Закрывает соединение с базой данных

Описание

cubrid_close ([ resource $conn_identifier ] ) : bool

Функция cubrid_close() используется для закрытия обработчика соединения и отсоединения от сервера. Если какой-либо обработчик запроса не будет закрыт к этому моменту, он будет принудительно закрыт. Функция аналогична функции CUBRID cubrid_disconnect().

Список параметров

conn_identifier

Идентификатор соединения. Если не задано, то будет использовано последнее открытое с помощью cubrid_connect() соединение.

Возвращаемые значения

TRUE, в случае успешного выполнения.

FALSE, в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_close()

<?php
$con = cubrid_connect ("localhost", 33000, "demodb");
if ($con) {
   echo "подключение успешно выполнено";
   $req = cubrid_execute ( $con, "insert into person values(1,'James')");
   if ($req) {
      cubrid_close_request ($req);
      cubrid_commit ($con);
   } else {
      cubrid_rollback ($con);
   }
   cubrid_close ($con);
}
?>

Смотрите также

  • cubrid_disconnect() - Закрывает соединение с базой данных
  • cubrid_connect() - Открывает соединение к серверу CUBRID
  • cubrid_connect_with_url() - Создает окружение для соединения с сервером CUBRID


Переместить внутренний указатель в результирующем наборе CUBRID

  • « cubrid_close
  • cubrid_db_name »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Переместить внутренний указатель в результирующем наборе CUBRID

cubrid_data_seek

(PECL CUBRID >= 8.3.0)

cubrid_data_seek — Переместить внутренний указатель в результирующем наборе CUBRID

Описание

cubrid_data_seek ( resource $result , int $row_number ) : bool

Функция перемещает внутренний указатель в результирующем наборе CUBRID (заданным идентификатором запроса) на строку с заданным номером. Может использоваться совместно с функциями типа cubrid_fetch_assoc(), которые используют значение row_number.

Список параметров

result

Результат.

row_number

Желаемый номер строки нового указателя результата.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_data_seek()

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb");

$req = cubrid_execute($conn, "SELECT * FROM code");
cubrid_data_seek($req, 0);

$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_data_seek($req, 2);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_data_seek($req, 4);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  string(1) "X"
  [1]=>
  string(5) "Mixed"
}
array(2) {
  [0]=>
  string(1) "M"
  [1]=>
  string(3) "Man"
}
array(2) {
  [0]=>
  string(1) "S"
  [1]=>
  string(6) "Silver"
}


Получение имени базы данных из результата cubrid_list_dbs

  • « cubrid_data_seek
  • cubrid_errno »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Получение имени базы данных из результата cubrid_list_dbs

cubrid_db_name

(PECL CUBRID >= 8.3.1)

cubrid_db_name — Получение имени базы данных из результата cubrid_list_dbs

Описание

cubrid_db_name ( array $result , int $index ) : string

Извлекает имя базы данных из результата вызова cubrid_list_dbs().

Список параметров

result

Указатель на результат вызова cubrid_list_dbs().

index

Индекс в результирующем наборе.

Возвращаемые значения

Возвращает имя базы данных в случае успешного выполнения или FALSE в случае возникновения ошибки. Если вернулось FALSE, используйте cubrid_error() для точного определения произошедшей ошибки.

Примеры

Пример #1 Пример использования cubrid_db_name()

<?php
error_reporting(E_ALL);

$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$db_list = cubrid_list_dbs($conn);

$i = 0;
$cnt = count($db_list);
while ($i < $cnt) {
    echo cubrid_db_name($db_list, $i) . "\n";
    $i++;
}
?>

Результат выполнения данного примера:

demodb

Смотрите также

  • cubrid_list_dbs() - Получить массив со списком всех баз данных CUBRID


Возвращает код ошибки предыдущей операции CUBRID

  • « cubrid_db_name
  • cubrid_error »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Возвращает код ошибки предыдущей операции CUBRID

cubrid_errno

(PECL CUBRID >= 8.3.1)

cubrid_errno — Возвращает код ошибки предыдущей операции CUBRID

Описание

cubrid_errno ([ resource $conn_identifier ] ) : int

Возвращает код ошибки предыдущей операции CUBRID.

Функция cubrid_errno() используется для получения кода произошедшей ошибки. Обычно вы можете получить код ошибки, если какая-либо функция вернула FALSE.

Список параметров

conn_identifier

Идентификатор соединения. Если не задано, то будет использовано последнее открытое с помощью cubrid_connect() соединение.

Возвращаемые значения

Код возникшей ошибки, или 0 (ноль), если ошибки не было.

Примеры

Пример #1 Пример использования cubrid_errno()

<?php
$con = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$req = cubrid_execute($con, "select id, name from person");
if ($req) {
    while (list ($id, $name) = cubrid_fetch($req))
    echo $id, $name;
} else {
    echo "Код ошибки: ", cubrid_errno($con);
    echo "Текст ошибки: ", cubrid_error($con);
}
?>

Результат выполнения данного примера:

Код ошибки: -493 Текст ошибки: Syntax: Unknown class "person". select id, [name] from person

Смотрите также

  • cubrid_error() - Возвращает текст последней произошедшей ошибки
  • cubrid_error_code() - Получить код ошибки
  • cubrid_error_msg() - Возвращает текст последней произошедшей ошибки


Возвращает текст последней произошедшей ошибки

  • « cubrid_errno
  • cubrid_fetch_array »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Возвращает текст последней произошедшей ошибки

cubrid_error

(PECL CUBRID >= 8.3.1)

cubrid_error — Возвращает текст последней произошедшей ошибки

Описание

cubrid_error ([ resource $connection ] ) : string

Функция cubrid_error() используется для получения текста произошедшей ошибки. Обычно вы можете получить текст ошибки, если какая-либо функция вернула FALSE.

Список параметров

connection

Идентификатор соединения.

Возвращаемые значения

Текст ошибки.

Примеры

Пример #1 Пример использования cubrid_error()

<?php
$con = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$req = cubrid_execute($con, "select id, name from person");
if ($req) {
    while (list ($id, $name) = cubrid_fetch($req))
    echo $id, $name;
} else {
    echo "Код ошибки: ", cubrid_errno($con);
    echo "Текст ошибки: ", cubrid_error($con);
}
?>

Результат выполнения данного примера:

Код ошибки: -493 Текст ошибки: Syntax: Unknown class "person". select id, [name] from person

Смотрите также

  • cubrid_errno() - Возвращает код ошибки предыдущей операции CUBRID
  • cubrid_error_code() - Получить код ошибки
  • cubrid_error_msg() - Возвращает текст последней произошедшей ошибки


Извлечение строки из результирующего набора в виде ассоциативного массива, индексированного массива или обоих сразу

  • « cubrid_error
  • cubrid_fetch_assoc »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Извлечение строки из результирующего набора в виде ассоциативного массива, индексированного массива или обоих сразу

cubrid_fetch_array

(PECL CUBRID >=8.3.0)

cubrid_fetch_array — Извлечение строки из результирующего набора в виде ассоциативного массива, индексированного массива или обоих сразу

Описание

cubrid_fetch_array ( resource $result [, int $type = CUBRID_BOTH ] ) : array

Функция cubrid_fetch_array() служит для извлечения одной строки из результирующего набора. После извлечения, курсор автоматически передвинется на следующую строку.

Список параметров

result

Result полученный из cubrid_execute()

type

Тип массива для извлечения: CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH. Если вам нужно оперировать объектами типа LOB - используйте CUBRID_LOB.

Возвращаемые значения

Возвращает массив строк, соответствующий извлеченной строке, в случае успешного выполнеения.

FALSE, если строк больше нет; NULL, когда процесс завершается с ошибкой.

Тип возвращаемого массива зависит от заданного типа. По умолчанию используется CUBRID_BOTH, что ведет к извлечению как ассоциативного, так и индексированного массивов, но это поведение можно переопределить параметром type. Значения, допустимые для параметра type:

  • CUBRID_NUM : Индексированный массив (первый элемент имеет индекс 0)
  • CUBRID_ASSOC : Ассоциативный массив
  • CUBRID_BOTH : И тот и другой одновременно (по умолчанию)

Примеры

Пример #1 Пример использования cubrid_fetch_array()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT name,area,seats,address FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n", "name", "area", "seats", "address");
while ($row = cubrid_fetch_array($req, CUBRID_NUM)) {
    printf("%-40s %-10s %-6s %-20s\n", $row[0], $row[1], $row[2], $row[3]);
}

// Если вам нужно оперировать объектами LOB - используйте
// cubrid_fetch_array($req, CUBRID_NUM | CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch() - Fetch the next row from a result set
  • cubrid_fetch_row() - Извлечь строку из результирующего набора в виде индексированного массива
  • cubrid_fetch_assoc() - Извлечь строку из результирующего набора в виде ассоциативного массива
  • cubrid_fetch_object() - Извлечь следующую строку как объект


Извлечь строку из результирующего набора в виде ассоциативного массива

  • « cubrid_fetch_array
  • cubrid_fetch_field »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Извлечь строку из результирующего набора в виде ассоциативного массива

cubrid_fetch_assoc

(PECL CUBRID >= 8.3.0)

cubrid_fetch_assoc — Извлечь строку из результирующего набора в виде ассоциативного массива

Описание

cubrid_fetch_assoc ( resource $result [, int $type ] ) : array

Функция возвращает ассоциативный массив, соответствующей строке в результирующем наборе на которую указывает внутренний указатель. После извлечения внутренний указатель перемещается на следующую строку. Если строки закончились, то функция вернет FALSE.

Список параметров

result

Result, полученный из cubrid_execute()

type

Может быть только CUBRID_LOB. Этот параметр используется только если вам необходимо оперировать объектами LOB.

Возвращаемые значения

Ассоциативный массив в случае успешного выполнения.

FALSE, если строк больше нет; NULL, когда процесс завершается с ошибкой.

Примеры

Пример #1 Пример использования cubrid_fetch_assoc()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT name,area,seats,address FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n", "name", "area", "seats", "address");
while ($row = cubrid_fetch_assoc($req)) {
    printf("%-40s %-10s %-6s %-20s\n",
        $row["name"], $row["area"], $row["seats"], $row["address"]);
}

// Если вам нужно оперировать объектами LOB - используйте
// cubrid_fetch_assoc($req, CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch() - Fetch the next row from a result set
  • cubrid_fetch_row() - Извлечь строку из результирующего набора в виде индексированного массива
  • cubrid_fetch_array() - Извлечение строки из результирующего набора в виде ассоциативного массива, индексированного массива или обоих сразу
  • cubrid_fetch_object() - Извлечь следующую строку как объект


Получение информации о столбце результирующего набора в виде объекта

  • « cubrid_fetch_assoc
  • cubrid_fetch_lengths »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Получение информации о столбце результирующего набора в виде объекта

cubrid_fetch_field

(PECL CUBRID >= 8.3.1)

cubrid_fetch_field — Получение информации о столбце результирующего набора в виде объекта

Описание

cubrid_fetch_field ( resource $result [, int $field_offset = 0 ] ) : object

Функция возвращает объект, в свойствах которого содержится информация о столбце. Свойства объекта:

name

имя столбца

table

имя таблицы

def

значение столбца по умолчанию

max_length

максимальная длина столбца

not_null

1, если не может быть NULL

primary_key

1, если является первичным ключом

unique_key

1, если является уникальным ключом

multiple_key

1, если является неуникальным ключом

numeric

1, если содержит числовое значение

blob

1, если содержит BLOB

type

тип столбца

unsigned

1, если беззнаковый тип

zerofill

1, если дополняется нулями

Список параметров

result

Result, полученный из cubrid_execute()

field_offset

Числовой индекс столбца. Если не задан, то будет извлечен следующий, не извлеченный этой функцией, столбец. field_offset начинается с нуля.

Возвращаемые значения

Объект с описанными выше свойствами в случае успешного выполнения.

FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_fetch_field()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT event_code,athlete_code,nation_code,game_date FROM game WHERE host_year=1988 and event_code=20001;");

var_dump(cubrid_fetch_row($req));

cubrid_field_seek($req, 1);
$field = cubrid_fetch_field($req);

printf("\n--- Field Properties ---\n");
printf("%-30s %s\n", "имя столбца:", $field->name);
printf("%-30s %s\n", "имя таблицы:", $field->table);
printf("%-30s \"%s\"\n", "значение столбца по умолчанию:", $field->def);
printf("%-30s %d\n", "максимальная длина столбца:", $field->max_length);
printf("%-30s %d\n", "не может быть NULL:", $field->not_null);
printf("%-30s %d\n", "является первичным ключом:", $field->primary_key);
printf("%-30s %d\n", "является уникальным ключом:", $field->unique_key);
printf("%-30s %d\n", "является неуникальным ключом:", $field->multiple_key);
printf("%-30s %d\n", "содержит числовое значение:", $field->numeric);
printf("%-30s %d\n", "содержит BLOB:", $field->blob);
printf("%-30s %s\n", "тип столбца:", $field->type);
printf("%-30s %d\n", "беззнаковый тип:", $field->unsigned);
printf("%-30s %d\n", "дополняется нулями:", $field->zerofill);

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  string(5) "20001"
  [1]=>
  string(5) "16681"
  [2]=>
  string(3) "KOR"
  [3]=>
  string(9) "1988-9-30"
}

--- Field Properties ---
имя столбца:                         athlete_code
имя таблицы:                         game
значение столбца по умолчанию:          ""
максимальная длина столбца:             0
не может быть NULL:                  1
является первичным ключом:             1
является уникальным ключом:            1
является неуникальным ключом:           0
содержит числовое значение:             1
содержит BLOB:                       0
тип столбца:                         integer
беззнаковый тип:                      0
дополняется нулями:                    0


Возвращает массив, содержащий длины всех столбцов текущей строки

  • « cubrid_fetch_field
  • cubrid_fetch_object »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Возвращает массив, содержащий длины всех столбцов текущей строки

cubrid_fetch_lengths

(PECL CUBRID >= 8.3.0)

cubrid_fetch_lengths — Возвращает массив, содержащий длины всех столбцов текущей строки

Описание

cubrid_fetch_lengths ( resource $result ) : array

Функция возвращает индексированный массив, содержащий длины столбцов в текущей строке из результурующего набора, или FALSE в случае возникновения ошибки.

Замечание:

Если столбец типа BLOB/CLOB, то для получения его длины используйте cubrid_lob_size().

Список параметров

result

Result полученный из cubrid_execute()

Возвращаемые значения

Индексированный массив.

FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_fetch_lengths()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$row = cubrid_fetch_row($result);
print_r($row);

$lens = cubrid_fetch_lengths($result);
print_r($lens);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Array
(
    [0] => 2004
    [1] => 20085
    [2] => 15118
    [3] => 30134
    [4] => AUS
    [5] => G
    [6] => 2004-8-20
)
Array
(
    [0] => 4
    [1] => 5
    [2] => 5
    [3] => 5
    [4] => 3
    [5] => 1
    [6] => 10
)


Извлечь следующую строку как объект

  • « cubrid_fetch_lengths
  • cubrid_fetch_row »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Извлечь следующую строку как объект

cubrid_fetch_object

(PECL CUBRID >= 8.3.0)

cubrid_fetch_object — Извлечь следующую строку как объект

Описание

cubrid_fetch_object ( resource $result [, string $class_name [, array $params [, int $type ]]] ) : object

Функция возвращает объект со свойствами, имена которых равны именам столбцов результирующего набора, а значения, соответственно, значениям.

Список параметров

result

Result полученный из cubrid_execute()

class_name

Имя класса, который будет использован для создания объекта. Если не задано, то будет использован stdClass (stdClass - базовый, пустой, класс PHP, который используется при преобразовании прочих типов в объекты).

params

Необязательный массив параметров для передачи в конструктор class_name.

type

Может содержать только CUBRID_LOB. Используется при работе с объектами типа LOB.

Возвращаемые значения

Объект, в случае успешного выполнения.

FALSE, если строк больше нет; NULL, когда процесс завершается с ошибкой.

Примеры

Пример #1 Пример использования cubrid_fetch_object()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$res = cubrid_execute($conn, "SELECT * FROM code");

var_dump(cubrid_fetch_object($res));

// В случае работы с LOB используйте cubrid_fetch_object($res, CUBRID_LOB)

class demodb_code {
    public $s_name = null;
    public $f_name = null;

    public function toString() {
        var_dump($this);
    }
}

var_dump(cubrid_fetch_object($res, "demodb_code"));

// В случае работы с LOB используйте cubrid_fetch_object($res, "demodb_code", CUBRID_LOB)

class demodb_code_construct extends demodb_code {
    public function __construct($s, $f) {
        $this->s_name = $s;
        $this->f_name = $f;
    }
}

var_dump(cubrid_fetch_object($res, 'demodb_code_construct', array('s_name', 'f_name')));

// В случае работы с LOB используйте cubrid_fetch_object($res, 'demodb_code_construct', array('s_name', 'f_name'), CUBRID_LOB)

var_dump(cubrid_fetch_object($res));

cubrid_close_request($res);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

object(stdClass)#1 (2) {
  ["s_name"]=>
  string(1) "X"
  ["f_name"]=>
  string(5) "Mixed"
}
object(demodb_code)#1 (2) {
  ["s_name"]=>
  string(1) "W"
  ["f_name"]=>
  string(5) "Woman"
}
object(demodb_code_construct)#1 (2) {
  ["s_name"]=>
  string(6) "s_name"
  ["f_name"]=>
  string(6) "f_name"
}
object(stdClass)#1 (2) {
  ["s_name"]=>
  string(1) "B"
  ["f_name"]=>
  string(6) "Bronze"
}

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch() - Fetch the next row from a result set
  • cubrid_fetch_array() - Извлечение строки из результирующего набора в виде ассоциативного массива, индексированного массива или обоих сразу
  • cubrid_fetch_assoc() - Извлечь строку из результирующего набора в виде ассоциативного массива
  • cubrid_fetch_row() - Извлечь строку из результирующего набора в виде индексированного массива


Извлечь строку из результирующего набора в виде индексированного массива

  • « cubrid_fetch_object
  • cubrid_field_flags »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Извлечь строку из результирующего набора в виде индексированного массива

cubrid_fetch_row

(PECL CUBRID >= 8.3.0)

cubrid_fetch_row — Извлечь строку из результирующего набора в виде индексированного массива

Описание

cubrid_fetch_row ( resource $result [, int $type ] ) : array

Функция возвращает ассоциативный массив, соответствующей строке в результирующем наборе на которую указывает внутренний указатель. После извлечения внутренний указатель перемещается на следующую строку. Первый элемент имеет индекс 0.

Список параметров

result

Result, полученный из cubrid_execute()

type

Может быть только CUBRID_LOB. Этот параметр используется только если вам необходимо оперировать объектами LOB.

Возвращаемые значения

Индексированный массив в случае успешного выполнения.

FALSE, если строк больше нет; NULL, когда процесс завершается с ошибкой.

Примеры

Пример #1 Пример использования cubrid_fetch_row()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT name,area,seats,address FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n", "наименование", "площадь", "мест", "адрес");
while ($row = cubrid_fetch_row($req)) {
    printf("%-40s %-10s %-6s %-20s\n", $row[0], $row[1], $row[2], $row[3]);
}

// В случае работы с LOB используйте cubrid_fetch_row($req, CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

наименование                                площадь     мест  адрес
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch() - Fetch the next row from a result set
  • cubrid_fetch_array() - Извлечение строки из результирующего набора в виде ассоциативного массива, индексированного массива или обоих сразу
  • cubrid_fetch_assoc() - Извлечь строку из результирующего набора в виде ассоциативного массива
  • cubrid_fetch_object() - Извлечь следующую строку как объект


Получить строку, содержащую флаги столбца по указанному индексу

  • « cubrid_fetch_row
  • cubrid_field_len »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Получить строку, содержащую флаги столбца по указанному индексу

cubrid_field_flags

(PECL CUBRID >= 8.3.0)

cubrid_field_flags — Получить строку, содержащую флаги столбца по указанному индексу

Описание

cubrid_field_flags ( resource $result , int $field_offset ) : string

Функция возвращает строку, содержащую флаги столбца по указанному индексу, разделенные пробелом. Вы можете разбить строку на отдельные части с помощью explode. Возможные значения флагов: not_null, primary_key, unique_key, foreign_key, auto_increment, shared, reverse_index, reverse_unique и timestamp.

Список параметров

result

Result полученный из cubrid_execute()

field_offset

Индекс поля в строке результирующего набора. field_offset начинается с 0. Если field_offset не задан, то будет вызвана ошибка уровня E_WARNING.

Возвращаемые значения

Строка с флагами в случае успешного выполнения.

FALSE в случае некорректного значения field_offset.

-1, если SQL-запрос был отличного от SELECT типа.

Примеры

Пример #1 Пример использования cubrid_field_flags()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$col_num = cubrid_num_cols($result);

printf("%-30s %s\n", "Имя поля", "Флаги поля");
for($i = 0; $i < $col_num; $i++) {
    printf("%-30s %s\n", cubrid_field_name($result, $i), cubrid_field_flags($result, $i));
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Наименование поля                Флаги поля
host_year                      not_null primary_key unique_key
event_code                     not_null primary_key unique_key foreign_key
athlete_code                   not_null primary_key unique_key foreign_key
stadium_code                   not_null
nation_code
medal
game_date


Получить максимальную длину указанного столбца

  • « cubrid_field_flags
  • cubrid_field_name »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Получить максимальную длину указанного столбца

cubrid_field_len

(PECL CUBRID >= 8.3.0)

cubrid_field_len — Получить максимальную длину указанного столбца

Описание

cubrid_field_len ( resource $result , int $field_offset ) : int

Функция возвращает максимальную длину указанного столбца в случае успешного выполнения или FALSE в случае возникновения ошибки.

Список параметров

result

Result полученный из cubrid_execute()

field_offset

Индекс поля в строке результирующего набора. field_offset начинается с 0. Если field_offset не задан, то будет вызвана ошибка уровня E_WARNING.

Возвращаемые значения

Максимальная длина в случае успешного выполнения.

FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_field_len()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$column_names = cubrid_column_names($result);
$column_types = cubrid_column_types($result);

printf("%-30s %-30s %-15s\n", "Наименование столбца", "Тип столбца", "Максимальная длина столбца");
for($i = 0, $size = count($column_names); $i < $size; $i++) {
    $column_len = cubrid_field_len($result, $i);
    printf("%-30s %-30s %-15s\n", $column_names[$i], $column_types[$i], $column_len);
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Наименование столбца                   Тип столбца                   Максимальная длина столбца
host_year                      integer                        11
event_code                     integer                        11
athlete_code                   integer                        11
stadium_code                   integer                        11
nation_code                    char                           3
medal                          char                           1
game_date                      date                           10


Получить имя указанного столбца

  • « cubrid_field_len
  • cubrid_field_seek »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Получить имя указанного столбца

cubrid_field_name

(PECL CUBRID >= 8.3.0)

cubrid_field_name — Получить имя указанного столбца

Описание

cubrid_field_name ( resource $result , int $field_offset ) : string

Функция возвращает имя указанного столбца в случае успешного выполнения или FALSE в случае возникновения ошибки.

Список параметров

result

Result, полученный из cubrid_execute()

field_offset

Индекс поля в строке результирующего набора. field_offset начинается с 0. Если field_offset не задан, то будет вызвана ошибка уровня E_WARNING.

Возвращаемые значения

Имя столбца в случае успешного выполнения.

FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_field_name()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$col_num = cubrid_num_cols($result);

printf("%-30s %s\n", "Наименование поля", "Флаги поля");
for($i = 0; $i < $col_num; $i++) {
    printf("%-30s %s\n", cubrid_field_name($result, $i), cubrid_field_flags($result, $i));
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Наименование поля                 Флаги поля
host_year                      not_null primary_key unique_key
event_code                     not_null primary_key unique_key foreign_key
athlete_code                   not_null primary_key unique_key foreign_key
stadium_code                   not_null
nation_code
medal
game_date


Переместить внутренний указатель результирующего набора на указанный столбец

  • « cubrid_field_name
  • cubrid_field_table »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Переместить внутренний указатель результирующего набора на указанный столбец

cubrid_field_seek

(PECL CUBRID >= 8.3.0)

cubrid_field_seek — Переместить внутренний указатель результирующего набора на указанный столбец

Описание

cubrid_field_seek ( resource $result [, int $field_offset = 0 ] ) : bool

Функция перемещает внутренний указатель результирующего набора на указанный столбец. Это смещение используется функцией cubrid_fetch_field(), если не указан параметр offset. Возвращает TRUE либо FALSE в зависимости от успешности выполнения.

Список параметров

result

Result, полученный из cubrid_execute()

field_offset

Индекс поля в строке результирующего набора. field_offset начинается с 0. Если field_offset не задан, то будет вызвана ошибка уровня E_WARNING.

Возвращаемые значения

TRUE в случае успешного выполнения.

FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_field_seek()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT event_code,athlete_code,nation_code,game_date FROM game WHERE host_year=1988 and event_code=20001;");

var_dump(cubrid_fetch_row($req));

cubrid_field_seek($req, 1);
$field = cubrid_fetch_field($req);

printf("\n--- Свойства поля ---\n");
printf("%-30s %s\n", "имя столбца:", $field->name);
printf("%-30s %s\n", "имя таблицы:", $field->table);
printf("%-30s \"%s\"\n", "значение столбца по умолчанию:", $field->def);
printf("%-30s %d\n", "максимальная длина столбца:", $field->max_length);
printf("%-30s %d\n", "не может быть NULL:", $field->not_null);
printf("%-30s %d\n", "является уникальным ключом:", $field->unique_key);
printf("%-30s %d\n", "является неуникальным ключом:", $field->multiple_key);
printf("%-30s %d\n", "содержит числовое значение:", $field->numeric);
printf("%-30s %s\n", "тип столбца:", $field->type);

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  string(5) "20001"
  [1]=>
  string(5) "16132"
  [2]=>
  string(3) "KOR"
  [3]=>
  string(9) "1988-09-30"
}

--- Свойства поля ---
имя столбца:                         athlete_code
имя таблицы:                         game
значение столбца по умолчанию:           ""
максимальная длина столбца:             0
не может быть NULL:                  1
является уникальным ключом:             1
является неуникальным ключом:           0
содержит числовое значение:             1
тип столбца:                          integer


Получить имя таблицы, которой принадлежит указанный столбец

  • « cubrid_field_seek
  • cubrid_field_type »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Получить имя таблицы, которой принадлежит указанный столбец

cubrid_field_table

(PECL CUBRID >= 8.3.0)

cubrid_field_table — Получить имя таблицы, которой принадлежит указанный столбец

Описание

cubrid_field_table ( resource $result , int $field_offset ) : string

Функция возвращает имя таблицы, которая содержит указанный столбец. Бывает полезно при работе с большими запросами с JOIN'ами.

Список параметров

result

Result полученный из cubrid_execute()

field_offset

Индекс поля в строке результирующего набора. field_offset начинается с 0. Если field_offset не задан, то будет вызвана ошибка уровня E_WARNING.

Возвращаемые значения

Имя таблицы в случае успешного выполнения.

FALSE если задан некорректный field_offset.

-1, если SQL-запрос был отличного от SELECT типа.

Примеры

Пример #1 Пример использования cubrid_field_table()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM code");

$col_num = cubrid_num_cols($result);

printf("%-15s %-15s %s\n", "Таблица поля", "Наименовение поля", "Тип поля");
for($i = 0; $i < $col_num; $i++) {
    printf("%-15s %-15s %s\n",
        cubrid_field_table($result, $i), cubrid_field_name($result, $i), cubrid_field_type($result, $i));
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Таблица поля      Наименовение поля  Тип поля
code            s_name          char
code            f_name          varchar


Получить тип указанного столбца

  • « cubrid_field_table
  • cubrid_list_dbs »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Получить тип указанного столбца

cubrid_field_type

(PECL CUBRID >= 8.3.0)

cubrid_field_type — Получить тип указанного столбца

Описание

cubrid_field_type ( resource $result , int $field_offset ) : string

Функция возвращает тип указанного столбца. Тип может принимать следующие значения: "int", "real", "string" и т.д.

Список параметров

result

Result, полученный из cubrid_execute()

field_offset

Индекс поля в строке результирующего набора. field_offset начинается с 0. Если field_offset не задан, то будет вызвана ошибка уровня E_WARNING.

Возвращаемые значения

Тип столбца в случае успешного выполнения.

FALSE, если задан некорректный field_offset.

-1, если SQL-запрос был отличного от SELECT типа.

Примеры

Пример #1 Прнимер использования cubrid_field_type()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM code");

$col_num = cubrid_num_cols($result);

printf("%-15s %-15s %s\n", "Таблица поля", "Наименование поля", "Тип поля");
for($i = 0; $i < $col_num; $i++) {
    printf("%-15s %-15s %s\n",
        cubrid_field_table($result, $i), cubrid_field_name($result, $i), cubrid_field_type($result, $i));
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Таблица поля      Наименование поля  Тип поля
code            s_name          char
code            f_name          varchar


Получить массив со списком всех баз данных CUBRID

  • « cubrid_field_type
  • cubrid_num_fields »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Получить массив со списком всех баз данных CUBRID

cubrid_list_dbs

(PECL CUBRID >= 8.3.0)

cubrid_list_dbs — Получить массив со списком всех баз данных CUBRID

Описание

cubrid_list_dbs ([ resource $conn_identifier ] ) : array

Функция возвращает массив со списком всех баз данных CUBRID

Список параметров

conn_identifier

The CUBRID connection.

Возвращаемые значения

Индексированный массив со списком баз данных.

FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_list_dbs()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$db_list = cubrid_list_dbs($conn);
var_dump($db_list);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(1) {
  [0]=>
  string(6) "demodb"
}


Получить количество столбцов в результирующем наборе

  • « cubrid_list_dbs
  • cubrid_ping »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Получить количество столбцов в результирующем наборе

cubrid_num_fields

(PECL CUBRID >= 8.3.0)

cubrid_num_fields — Получить количество столбцов в результирующем наборе

Описание

cubrid_num_fields ( resource $result ) : int

Возвращает количество столбцов в результирующем наборе или FALSE в случае возникновения ошибки.

Список параметров

result

result, полученный из cubrid_execute(), cubrid_query() или cubrid_prepare()

Возвращаемые значения

Количество столюцов в случае успешного выполнения.

-1, если SQL-запрос был отличного от SELECT типа.

FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_num_fields()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$req = cubrid_execute($conn, "SELECT * FROM code");

$row_num = cubrid_num_rows($req);
$col_num = cubrid_num_fields($req);

printf("Количество строк: %d\nКоличество столбцов: %d\n", $row_num, $col_num);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Количество строк: 6
Количество столбцов: 2


Проверяет, живо ли соединение к серверу и переподнимает его, если нет

  • « cubrid_num_fields
  • cubrid_query »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Проверяет, живо ли соединение к серверу и переподнимает его, если нет

cubrid_ping

(PECL CUBRID >= 8.3.1)

cubrid_ping — Проверяет, живо ли соединение к серверу и переподнимает его, если нет

Описание

cubrid_ping ([ resource $conn_identifier ] ) : bool

Проверяет, живо ли соединение к серверу.

Список параметров

conn_identifier

Идентификатор соединения. Если не задано, то будет использовано последнее открытое с помощью cubrid_connect() соединение.

Возвращаемые значения

Возвращает TRUE, если соединение работает, иначе FALSE.

Примеры

Пример #1 Пример использования cubrid_ping()

<?php
set_time_limit(0);

$conn = cubrid_connect('localhost', 33000, 'demodb');

/* Предположим, что это ну очень длинный запрос */
$sql = "select * from athlete";
$result = cubrid_query($sql);
if (!$result) {
    echo 'Запрос #1 завершился с ошибкой, выходим.';
    exit;
}

/* Проверяем, живо ли еще соединение и пересоздаем его, если нет */
if (!cubrid_ping($conn)) {
    echo 'Потеряно соединение, выходим после запроса #1';
    exit;
}
cubrid_free_result($result);

/* Так так, соединение работает. Тогда еще один запрос! */
$sql2 = "select * from code";
$result2 = cubrid_query($sql2);
?>


Отправка запроса CUBRID

  • « cubrid_ping
  • cubrid_real_escape_string »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Отправка запроса CUBRID

cubrid_query

(PECL CUBRID >= 8.3.1)

cubrid_query — Отправка запроса CUBRID

Описание

cubrid_query ( string $query [, resource $conn_identifier ] ) : resource

Функция cubrid_query() посылает уникальный запрос (множественные запросы не поддерживаются) текущей активной базе данных, заданной идентификатором соединения conn_identifier.

Список параметров

query

SQL-запрос

Данные в запросе должны быть корректно экранированы.

conn_identifier

Идентификатор соединения. Если не задано, то будет использовано последнее, открытое с помощью cubrid_connect() соединение.

Возвращаемые значения

Для SELECT, SHOW, DESCRIBE, EXPLAIN и прочих запросах, возвращающих результирующий набор, cubrid_query() возвращает resource в случае успешного выполнения и FALSE в случае возникновения ошибки.

Для прочих типов SQL-запросов, INSERT, UPDATE, DELETE, DROP и т.д, cubrid_query() возвращает TRUE или FALSE в зависимости от успешности выполнения.

Возвращенный результат можно передавать в функцию cubrid_fetch_array() и ей подобные для работы с полученными данными.

Используйте cubrid_num_rows() для определения количества возвращенных оператором SELECT строк или cubrid_affected_rows() для определения количества затронутых строк, для запросов изменяющих данные, таких как DELETE, INSERT, REPLACE и UPDATE.

cubrid_query() также может завершиться с ошибкой и вернуть FALSE, если пользоватиль не имеет прав на доступ к таблице, используемой в запросе.

Примеры

Пример #1 Некорректный запрос

Следующий запрос содержит синтаксическую ошибку, так что cubrid_query() вернет FALSE.

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb');

$result = cubrid_query('SELECT * WHERE 1=1');
if (!$result) {
    die('Некорректный запрос: ' . cubrid_error());
}

?>

Пример #2 Корректный запрос

Следующий запрос корректен, так что cubrid_query() вернет resource.

<?php
// Какие нибудь значения
$firstname = 'fred';
$lastname  = 'fox';

$conn = cubrid_connect('localhost', 33000, 'demodb');

cubrid_execute($conn,"DROP TABLE if exists friends");
cubrid_execute($conn,"create table friends(firstname varchar,lastname varchar,address char(24),age int)");
cubrid_execute($conn,"insert into friends values('fred','fox','home-1','20')");
cubrid_execute($conn,"insert into friends values('blue','cat','home-2','21')");
// Сформулируем запрос
// Это лучший путь для выполнения запроса
// Другие примеры смотрите cubrid_real_escape_string()
$query = sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'",
cubrid_real_escape_string($firstname),
cubrid_real_escape_string($lastname));

// Выполняем запрос
$result = cubrid_query($query);

// Проверяем результат
// Показывает сам запрос и ошибку. полезно при отладке.
if (!$result) {
    $message  = 'Некорректный запрос: ' . cubrid_error() . "\n";
    $message .= 'Всего запросов: ' . $query;
    die($message);
}

// Используем результат
// Попытка распечатать $result не позволит получить доступ к информации в ресурсе
// Должна быть использована одна из функций cubrid
// Смотрите cubrid_result(), cubrid_fetch_array(), cubrid_fetch_row() и т.д.
while ($row = cubrid_fetch_assoc($result)) {
    echo $row['firstname'];
    echo $row['lastname'];
    echo $row['address'];
    echo $row['age'];
}

// Освобождаем ресурсы. В принципе можно и не делать, так как
// они будут автоматически освобождены после завершения работы скрипта
cubrid_free_result($result);
?>

Смотрите также

  • cubrid_connect() - Открывает соединение к серверу CUBRID
  • cubrid_error() - Возвращает текст последней произошедшей ошибки
  • cubrid_real_escape_string() - Экранирование специальных символов в SQL-запросе
  • cubrid_result() - Получить значение из заданного столбца заданной строки
  • cubrid_fetch_assoc() - Извлечь строку из результирующего набора в виде ассоциативного массива
  • cubrid_unbuffered_query() - Выполнение запроса без загрузки результата в память


Экранирование специальных символов в SQL-запросе

  • « cubrid_query
  • cubrid_result »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Экранирование специальных символов в SQL-запросе

cubrid_real_escape_string

(PECL CUBRID >= 8.3.0)

cubrid_real_escape_string — Экранирование специальных символов в SQL-запросе

Описание

cubrid_real_escape_string ( string $unescaped_string [, resource $conn_identifier ] ) : string

Функция возвращает экранированную версию переданной строки. Она экранирует символы: '. В целом, одинарная кавычка используется для обертывания символьной строки. Также можно исполльзовать двойные кавычки, в зависимости от значения ansi_quotes. Если ansi_quotes установлен в "no", то строка обернутая в двойные кавычки будет рассматриваться как строка символов, а не как идентификатор. Значение по умолчанию - "yes". Если вы хотите использовать одинарную кавычку как часть строки - поставьте две одинарные кавычки подряд.

Список параметров

unescaped_string

Строка, которую необходимо экранировать

conn_identifier

Идентификатор соединения CUBRID. Если не задано, то будет использован последнее соединение, возвращенное cubrid_connect().

Возвращаемые значения

Экранированная строка.

FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_real_escape_string()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$unescaped_str = ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
$escaped_str = cubrid_real_escape_string($unescaped_str);

$len = strlen($unescaped_str);

@cubrid_execute($conn, "DROP TABLE cubrid_test");
cubrid_execute($conn, "CREATE TABLE cubrid_test (t char($len))");
cubrid_execute($conn, "INSERT INTO cubrid_test (t) VALUES('$escaped_str')");

$req = cubrid_execute($conn, "SELECT * FROM cubrid_test");
$row = cubrid_fetch_assoc($req);

var_dump($row);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(1) {
  ["t"]=>
  string(95) " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
}


Получить значение из заданного столбца заданной строки

  • « cubrid_real_escape_string
  • cubrid_unbuffered_query »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Получить значение из заданного столбца заданной строки

cubrid_result

(PECL CUBRID >= 8.3.0)

cubrid_result — Получить значение из заданного столбца заданной строки

Описание

cubrid_result ( resource $result , int $row [, mixed $field = 0 ] ) : string

Функция возвращает значение из заданного столбца заданной строки результирующего набора.

Список параметров

result

result полученный из cubrid_execute()

row

Номер строки, начиная с 0.

field

Имя или индекс столбца field. Это может быть индекс, имя столбца, имя таблицы с именем столбца, разделенных точкой (tablename.fieldname). Если имя столбца является псевдонимом ('select foo as bar from...'), используйте этот псевдоним вместо реального имени столбца. Если не задано, то будет использован первый столбец.

Возвращаемые значения

Значение заданного столбца в случае успешного выполнения (NULL, если значение равно null).

FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_result()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$req = cubrid_execute($conn, "SELECT * FROM code");

$result = cubrid_result($req, 0);
var_dump($result);

$result = cubrid_result($req, 0, 1);
var_dump($result);

$result = cubrid_result($req, 5, "f_name");
var_dump($result);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

string(1) "X"
string(5) "Mixed"
string(4) "Gold"


Выполнение запроса без загрузки результата в память

  • « cubrid_result
  • Устаревшие псевдонимы и функции CUBRID »
  • PHP Manual
  • Функции совместимости CUBRID MySQL
  • Выполнение запроса без загрузки результата в память

cubrid_unbuffered_query

(PECL CUBRID >= 8.3.0)

cubrid_unbuffered_query — Выполнение запроса без загрузки результата в память

Описание

cubrid_unbuffered_query ( string $query [, resource $conn_identifier ] ) : resource

Функция выполняет запрос без ожидания его выполнения. Она возвращает значение в процессе создания результирующего набора.

Список параметров

query

SQL-запрос

conn_identifier

Идентификатор соединения CUBRID. Если не задано, то будет использовано последнее соединение, возвращенное cubrid_connect().

Возвращаемые значения

Для SELECT, SHOW, DESCRIBE, EXPLAIN и прочих запросах, возвращающих результирующий набор, cubrid_query() возвращает resource в случае успешного выполнения.

Для операторов SQL другого типа, UPDATE, DELETE, DROP и т.д. возвращает TRUE в случае успешного выполнения.

FALSE в случае возникновения ошибки.

Примечания

Замечание:

Приимущества cubrid_unbuffered_query() имеют свою цену:
вы не сможете использовать cubrid_num_rows() и
cubrid_data_seek() для результирующего набора, возвращенного
cubrid_unbuffered_query().

Примеры

Пример #1 Пример использования cubrid_unbuffered_query()

<?php
    $link = cubrid_connect("localhost", 30000, "demodb", "dba", "");
    if (!$link)
    {
        die('Не удалось соединиться.');
    }
    $query = "select * from code";
    $result = cubrid_unbuffered_query($query, $link);

    while ($row = cubrid_fetch($result))
    {
        var_dump($row);
    }

    cubrid_close_request($result);
    cubrid_disconnect($link);
?>


Устаревшие псевдонимы и функции CUBRID

Содержание

  • cubrid_load_from_glo — Читает данные из экземпляра GLO и записывает их в файл
  • cubrid_new_glo — Создает экземпляр glo
  • cubrid_save_to_glo — Сохраняет запрошенный файл в экземпляре GLO
  • cubrid_send_glo — Чтение данных из glo и вывод их в стандартное устройство вывода


Читает данные из экземпляра GLO и записывает их в файл

  • « Устаревшие псевдонимы и функции CUBRID
  • cubrid_new_glo »
  • PHP Manual
  • Устаревшие псевдонимы и функции CUBRID
  • Читает данные из экземпляра GLO и записывает их в файл

cubrid_load_from_glo

(PECL CUBRID >= 8.3.0)

cubrid_load_from_glo — Читает данные из экземпляра GLO и записывает их в файл

Описание

cubrid_load_from_glo ( resource $conn_identifier , string $oid , string $file_name ) : int

Функция cubrid_load_from_glo() используется для чтения данных из экземпляра GLO и записи их в заданный файл.

Список параметров

conn_identifier

Идентификатор соединения.

oid

Oid инстанса glo из которого вы хотите прочитать данные.

file_name

Имя целевого файла.

Возвращаемые значения

TRUE в случае успешного выполнения.

FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_load_from_glo()

<?php
$req = cubrid_execute ($con, "select image from person where id=1");
if ($req) {
   list ($oid) = cubrid_fetch($req);
   cubrid_close_request($req);
   $res = cubrid_load_from_glo ($con, $oid, "output.jpg");
   if ($res) {
      echo "Картинка была изменена";
   }
}
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: cubrid_load_from_glo()

Замечание:

Функция удалена в CUBRID 3.1.

Смотрите также

  • cubrid_new_glo() - Создает экземпляр glo
  • cubrid_save_to_glo() - Сохраняет запрошенный файл в экземпляре GLO
  • cubrid_send_glo() - Чтение данных из glo и вывод их в стандартное устройство вывода


Создает экземпляр glo

  • « cubrid_load_from_glo
  • cubrid_save_to_glo »
  • PHP Manual
  • Устаревшие псевдонимы и функции CUBRID
  • Создает экземпляр glo

cubrid_new_glo

(PECL CUBRID >= 8.3.0)

cubrid_new_glo — Создает экземпляр glo

Описание

cubrid_new_glo ( resource $conn_identifier , string $class_name , string $file_name ) : string

Функция cubrid_new_glo() используется для создания экземпляра glo в запрошенном классе (glo класс). Glo создается типа LO, и хранится в файле file_name.

Список параметров

conn_identifier

Идентификатор соединения.

class_name

Имя класса, в котором вы собираетесь создать glo.

file_name

Имя целевого файла.

Возвращаемые значения

Oid созданного экземпляра в случае успешного выполнения.

FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_new_glo()

<?php
$oid = cubrid_new_glo ($con, "glo", "input.jpg");
if ($oid){
   // тип "image" - "object"
   $req = cubrid_execute ($con, "insert into person(image) values($oid)");
   if ($req) {
      echo "картинка была обновлена";
      cubrid_close_request ($req);
      cubrid_commit($con);
   }
}
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: cubrid_new_glo()

Замечание:

Функция удалена в CUBRID 3.1.

Смотрите также

  • cubrid_save_to_glo() - Сохраняет запрошенный файл в экземпляре GLO
  • cubrid_load_from_glo() - Читает данные из экземпляра GLO и записывает их в файл
  • cubrid_send_glo() - Чтение данных из glo и вывод их в стандартное устройство вывода


Сохраняет запрошенный файл в экземпляре GLO

  • « cubrid_new_glo
  • cubrid_send_glo »
  • PHP Manual
  • Устаревшие псевдонимы и функции CUBRID
  • Сохраняет запрошенный файл в экземпляре GLO

cubrid_save_to_glo

(PECL CUBRID >= 8.3.0)

cubrid_save_to_glo — Сохраняет запрошенный файл в экземпляре GLO

Описание

cubrid_save_to_glo ( resource $conn_identifier , string $oid , string $file_name ) : int

Функция cubrid_save_to_glo() используется для сохранения запрошенного файла в экземпляре glo.

Список параметров

conn_identifier

Идентификатор соединения.

oid

Oid экземпляра glo в котором вы хотите сохранить файл.

file_name

Имя целевого файла.

Возвращаемые значения

TRUE в случае успешного выполнения.

FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_save_to_glo()

<?php
$req = cubrid_execute ($con, "select image from person where id=1");
if ($req) {
   list ($oid) = cubrid_fetch($req);
   cubrid_close_request($req);
   $res = cubrid_save_to_glo ($con, $oid, "input.jpg");
   if ($res) {
      echo "изображение изменено";
   }
}
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: cubrid_save_to_glo()

Замечание:

Функция удалена в CUBRID 3.1.

Смотрите также

  • cubrid_new_glo() - Создает экземпляр glo
  • cubrid_load_from_glo() - Читает данные из экземпляра GLO и записывает их в файл
  • cubrid_send_glo() - Чтение данных из glo и вывод их в стандартное устройство вывода


Чтение данных из glo и вывод их в стандартное устройство вывода

  • « cubrid_save_to_glo
  • DB++ »
  • PHP Manual
  • Устаревшие псевдонимы и функции CUBRID
  • Чтение данных из glo и вывод их в стандартное устройство вывода

cubrid_send_glo

(PECL CUBRID >= 8.3.0)

cubrid_send_glo — Чтение данных из glo и вывод их в стандартное устройство вывода

Описание

cubrid_send_glo ( resource $conn_identifier , string $oid ) : int

Функция cubrid_send_glo() используется для чтения данных из glo и вывода их в стандартное устройство вывода PHP.

Список параметров

conn_identifier

Идентификатор соединения.

oid

Oid экземпляра glo из которого вы хотите прочитать данные.

Возвращаемые значения

TRUE в случае успешного выполнения.

FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_send_glo()

<?php
$req = cubrid_execute ($con, "select image from person where id =1");
if ($req) {
  list ($oid) = cubrid_fetch($req);
  cubrid_close_request($req);
  Header ("Content-type: image/jpeg");
  cubrid_send_glo ($con, $oid);
}
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: cubrid_send_glo()

Замечание:

Функция удалена в CUBRID 3.1.

Смотрите также

  • cubrid_new_glo() - Создает экземпляр glo
  • cubrid_save_to_glo() - Сохраняет запрошенный файл в экземпляре GLO
  • cubrid_load_from_glo() - Читает данные из экземпляра GLO и записывает их в файл


DB++

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
    • Коды ошибок db++
  • Функции DB++
    • dbplus_add — Добавляет кортеж к отношению
    • dbplus_aql — Выполняет запрос 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 — Создает новое отношение DB++
    • dbplus_rcrtexact — Создает точную, но пустую копию соотношения включая индексы
    • dbplus_rcrtlike — Создает пустую копию отношения с индексами по умолчанию
    • dbplus_resolve — Извлекает информацию о хосте отношения
    • dbplus_restorepos — Позиция восстановления
    • dbplus_rkeys — Задает новый первичный ключ для отношения
    • dbplus_ropen — Открыть файл отношений локально
    • dbplus_rquery — Выполнить локальный (сырой) AQL запрос
    • dbplus_rrename — Переименовывает отношение
    • dbplus_rsecindex — Создает новый вторичный индекс для отношения
    • dbplus_runlink — Удалить файл отношения
    • dbplus_rzap — Удаляет все кортежи для отношения
    • dbplus_savepos — Сохранить позицию
    • dbplus_setindex — Задать индекс
    • dbplus_setindexbynumber — Установить индекс по номеру
    • dbplus_sql — Выполнить SQL запрос
    • dbplus_tcl — Выполняет код TCL на стороне сервера
    • dbplus_tremove — Удалить кортеж и вернуть новый кортеж
    • dbplus_undo — Отмена
    • dbplus_undoprepare — Подготовить отмену
    • dbplus_unlockrel — Снять блокировку записи с отношения
    • dbplus_unselect — Удалить ограничения с отношения
    • dbplus_update — Заменяет заданный кортеж для отношения
    • dbplus_xlockrel — Запрашивает эксключивную блокировку для отношения
    • dbplus_xunlockrel — Освобождает эксклюзивную блокировку для отношения


Введение

db++ создана немецкой компанией » Concept asa. Представляет из себя высокопроизводительную реляционную базу данных, потребляющую мало памяти и дискового пространства, в теории. Не смотря на то, что она предоставляет SQL и еще один дополнительный языковой интерфейс, она, на самом деле, в первую очередь не база данных SQL, а база, предоставляющая свой собственный язык запросов AQL, который более близок к реляционной алгебре, нежели к SQL.

Concept asa всегда поддерживала языки с открытым исходным кодом. db++ имеет интерфейсы вызовов Perl и Tcl и использует Tcl как язык внутренних хранимых процедур.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.


Требования

Модуль базируется на клиентских библиотеках db++, так что для его использования вам будет необходимо установить эти библиотеки.

» Concept asa предоставляет » Демонстрационную версию db++ и » документацию для Linux и некоторых других Unix. Также есть версия под Windows, но этот модуль ее пока не поддерживает.


Установка

Для сборки модуля необходимо сперва установить клиентские библиотеки и заголовочные файлы db++ (они по умолчанию входят в установочный пакет db++). Необходимо добавить в строку configure опцию --with-dbplus .

configure будет искать библиотеки и заголовочные файлы по путям /usr/dbplus, /usr/local/dbplus и /opt/dblus. Если db++ установлен по другому пути, то необходимо указать этот путь в строке configure следующим образом: --with-dbplus=/your/installation/path .


Типы ресурсов

dbplus_relation

Большинство функций db++ оперируют либо возвращают ресурс dbplus_relation. dbplus_relation - это обработчик для хранимых связей, либо связей, созданных в результате запроса.


Предопределенные константы

Содержание

  • Коды ошибок db++

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.


Коды ошибок db++

Коды ошибок DB++
Константа PHP | Константа db++ | Значение
DBPLUS_ERR_NOERR (integer) | ERR_NOERR | Нет ошибки
DBPLUS_ERR_DUPLICATE (integer) | ERR_DUPLICATE | Попытка вставки дубликата кортежа
DBPLUS_ERR_EOSCAN (integer) | ERR_EOSCAN | Конец сканирования из rget()
DBPLUS_ERR_EMPTY (integer) | ERR_EMPTY | Отношение пусто (сервер)
DBPLUS_ERR_CLOSE (integer) | ERR_CLOSE | Сервер не может закрыться
DBPLUS_ERR_WLOCKED (integer) | ERR_WLOCKED | Отношение заблокировано на запись
DBPLUS_ERR_LOCKED (integer) | ERR_LOCKED | Отношение уже заблокировано
DBPLUS_ERR_NOLOCK (integer) | ERR_NOLOCK | Отношение не может быть заблокировано
DBPLUS_ERR_READ (integer) | ERR_READ | Ошибка чтения отношения
DBPLUS_ERR_WRITE (integer) | ERR_WRITE | Ошибка записи в отношение
DBPLUS_ERR_CREATE (integer) | ERR_CREATE | Ошибка системного вызова Create()
DBPLUS_ERR_LSEEK (integer) | ERR_LSEEK | Ошибка системного вызова Lseek()
DBPLUS_ERR_LENGTH (integer) | ERR_LENGTH | Кортеж превысил максимальную длину
DBPLUS_ERR_OPEN (integer) | ERR_OPEN | Ошибка системного вызова Open()
DBPLUS_ERR_WOPEN (integer) | ERR_WOPEN | Отношение уже открыто для записи
DBPLUS_ERR_MAGIC (integer) | ERR_MAGIC | Файл не является отношением
DBPLUS_ERR_VERSION (integer) | ERR_VERSION | Файл является очень старым отношением
DBPLUS_ERR_PGSIZE (integer) | ERR_PGSIZE | Отношение использует другой размер страницы
DBPLUS_ERR_CRC (integer) | ERR_CRC | Некорректная контрольная сумма суперстраницы
DBPLUS_ERR_PIPE (integer) | ERR_PIPE | Конвеерная связь требует lseek()
DBPLUS_ERR_NIDX (integer) | ERR_NIDX | Слишком много вторичных индексов
DBPLUS_ERR_MALLOC (integer) | ERR_MALLOC | Ошибка системного вызова Malloc()
DBPLUS_ERR_NUSERS (integer) | ERR_NUSERS | Ошибка максимального количества пользователей
DBPLUS_ERR_PREEXIT (integer) | ERR_PREEXIT | Вызвана некорректным использованием
DBPLUS_ERR_ONTRAP (integer) | ERR_ONTRAP | Вызвана сигналом
DBPLUS_ERR_PREPROC (integer) | ERR_PREPROC | Ошибка в препроцессоре
DBPLUS_ERR_DBPARSE (integer) | ERR_DBPARSE | Ошибка в парсере
DBPLUS_ERR_DBRUNERR (integer) | ERR_DBRUNERR | Ошибка запуска в базе
DBPLUS_ERR_DBPREEXIT (integer) | ERR_DBPREEXIT | Состояние выхода вызвано процедурой prexit() *
DBPLUS_ERR_WAIT (integer) | ERR_WAIT | Подождите немного (Simple only)
DBPLUS_ERR_CORRUPT_TUPLE (integer) | ERR_CORRUPT_TUPLE | Клиент прислал испорченный кортеж
DBPLUS_ERR_WARNING0 (integer) | ERR_WARNING0 | Простые процедуры столкнулись с нефатальной ошибкой и были скорректированы
DBPLUS_ERR_PANIC (integer) | ERR_PANIC | Сервер на самом деле не умер, но после аварии послал ERR_PANIC всем своим клиентам
DBPLUS_ERR_FIFO (integer) | ERR_FIFO | Не могу создать fifo
DBPLUS_ERR_PERM (integer) | ERR_PERM | Доступ запрещен
DBPLUS_ERR_TCL (integer) | ERR_TCL | Ошибка TCL
DBPLUS_ERR_RESTRICTED (integer) | ERR_RESTRICTED | Только два пользователя
DBPLUS_ERR_USER (integer) | ERR_USER | Ошибка для использования програмистом в приложении
DBPLUS_ERR_UNKNOWN (integer) | ERR_UNKNOWN |


Функции DB++

Содержание

  • dbplus_add — Добавляет кортеж к отношению
  • dbplus_aql — Выполняет запрос 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 — Создает новое отношение DB++
  • dbplus_rcrtexact — Создает точную, но пустую копию соотношения включая индексы
  • dbplus_rcrtlike — Создает пустую копию отношения с индексами по умолчанию
  • dbplus_resolve — Извлекает информацию о хосте отношения
  • dbplus_restorepos — Позиция восстановления
  • dbplus_rkeys — Задает новый первичный ключ для отношения
  • dbplus_ropen — Открыть файл отношений локально
  • dbplus_rquery — Выполнить локальный (сырой) AQL запрос
  • dbplus_rrename — Переименовывает отношение
  • dbplus_rsecindex — Создает новый вторичный индекс для отношения
  • dbplus_runlink — Удалить файл отношения
  • dbplus_rzap — Удаляет все кортежи для отношения
  • dbplus_savepos — Сохранить позицию
  • dbplus_setindex — Задать индекс
  • dbplus_setindexbynumber — Установить индекс по номеру
  • dbplus_sql — Выполнить SQL запрос
  • dbplus_tcl — Выполняет код TCL на стороне сервера
  • dbplus_tremove — Удалить кортеж и вернуть новый кортеж
  • dbplus_undo — Отмена
  • dbplus_undoprepare — Подготовить отмену
  • dbplus_unlockrel — Снять блокировку записи с отношения
  • dbplus_unselect — Удалить ограничения с отношения
  • dbplus_update — Заменяет заданный кортеж для отношения
  • dbplus_xlockrel — Запрашивает эксключивную блокировку для отношения
  • dbplus_xunlockrel — Освобождает эксклюзивную блокировку для отношения


Добавляет кортеж к отношению

  • « Функции DB++
  • dbplus_aql »
  • PHP Manual
  • Функции DB++
  • Добавляет кортеж к отношению

dbplus_add

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_add — Добавляет кортеж к отношению

Описание

dbplus_add ( resource $relation , array $tuple ) : int

Добавляет кортеж к отношению relation.

Список параметров

relation

tuple

Массив пар атрибут/значение для вставки в relation.

После успешного запуска этот массив будет содержать данные созданного кортежа, включая все созданные косвенно доменные поля, вроде последовательностей.

Возвращаемые значения

В случае успешного выполнения возвращает DBPLUS_ERR_NOERR, либо другой код db++ в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_errcode() - Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки


Выполняет запрос AQL

  • « dbplus_add
  • dbplus_chdir »
  • PHP Manual
  • Функции DB++
  • Выполняет запрос AQL

dbplus_aql

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_aql — Выполняет запрос AQL

Описание

dbplus_aql ( string $query [, string $server [, string $dbpath ]] ) : resource

Выполняет запрос AQL query на заданном сервере server и по пути dbpath.

Список параметров

query

Запрос AQL. Подробное описание AQL (Algebraic Query Language) читайте в документации по db++.

server

dbpath

Возвращаемые значения

Возвращает обработчик связи в случае успешного выполнения. Результирующие данные можно извлечь из этого обработчика с помощью dbplus_next() и dbplus_curr(). Другие функции доступа к связям не будут работать с этим обработчиком.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Получить/установить текущую виртуальную директорию базы данных

  • « dbplus_aql
  • dbplus_close »
  • PHP Manual
  • Функции DB++
  • Получить/установить текущую виртуальную директорию базы данных

dbplus_chdir

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_chdir — Получить/установить текущую виртуальную директорию базы данных

Описание

dbplus_chdir ([ string $newdir ] ) : string

Изменяет текущую виртуальную директорию, файлы отношений в которой будут просматриваться при помощи dbplus_open().

Список параметров

newdir

Новая директория. Если этот параметр опустить, то будет просто возвращена текущая директория.

Возвращаемые значения

Возвращает абсолютный путь текущей директории.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Закрыть отношение

  • « dbplus_chdir
  • dbplus_curr »
  • PHP Manual
  • Функции DB++
  • Закрыть отношение

dbplus_close

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_close — Закрыть отношение

Описание

dbplus_close ( resource $relation ) : mixed

Закрывает отношение, открытое с помощью dbplus_open().

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

В случае успешного выполнения возвращает TRUE, в случае возникновения ошибки возвращает DBPLUS_ERR_UNKNOWN.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Взять текущий кортеж для отношения

  • « dbplus_close
  • dbplus_errcode »
  • PHP Manual
  • Функции DB++
  • Взять текущий кортеж для отношения

dbplus_curr

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_curr — Взять текущий кортеж для отношения

Описание

dbplus_curr ( resource $relation , array &$tuple ) : int

Читает данные текущего кортежа для отношения relation.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

Данные помещаются в этот параметр в виде ассоциативного массива.

Возвращаемые значения

Функция возвращает 0 (оно же DBPLUS_ERR_NOERR) в случае успешного выполнения, либо другую константу db++ в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_first() - Получить первый кортеж для отношения
  • dbplus_prev() - Получить предыдущий кортеж для отношения
  • dbplus_next() - Получить следующий кортеж для отношения
  • dbplus_last() - Получает последний кортеж для отношения
  • dbplus_errcode() - Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки


Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки

  • « dbplus_curr
  • dbplus_errno »
  • PHP Manual
  • Функции DB++
  • Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки

dbplus_errcode

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_errcode — Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки

Описание

dbplus_errcode ([ int $errno ] ) : string

Возвращает текстовое описание для заданного кода ошибки, либо последнюю ошибку.

Список параметров

errno

Код ошибки. Если не задан, то используется код ошибки последней операции.

Возвращаемые значения

Возвращает текст ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает код ошибки последней операции

  • « dbplus_errcode
  • dbplus_find »
  • PHP Manual
  • Функции DB++
  • Возвращает код ошибки последней операции

dbplus_errno

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_errno — Возвращает код ошибки последней операции

Описание

dbplus_errno ( void ) : int

Возвращает код ошибки последней операции db++.

Возвращаемые значения

Код ошибки в виде целого числа.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_errcode() - Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки


Устанавливает ограничения для отношения

  • « dbplus_errno
  • dbplus_first »
  • PHP Manual
  • Функции DB++
  • Устанавливает ограничения для отношения

dbplus_find

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_find — Устанавливает ограничения для отношения

Описание

dbplus_find ( resource $relation , array $constraints , mixed $tuple ) : int

Устанавливает ограничения для отношения relation.

Все последующие вызовы dbplus_curr() или dbplus_next() будут возвращать только те кортежи, которые подходят под эти ограничения.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

constraints

Ограничения представляют собой триплеты строк, содержащие доменное имя, оператор сравнения и значение сравнения. Параметр constraints может быть массивом, содержащим коллекцию массивов, которые содержат по три соответствующих элемента, либо массивом, содержащим кратное трем количество строк.

Можно использовать следующие операторы сравнения: '==', '>', '>=', '<', '<=', '!=', '~' для регулярных выражений, и 'BAND' или 'BOR' для побитовых операций.

tuple

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_unselect() - Удалить ограничения с отношения


Получить первый кортеж для отношения

  • « dbplus_find
  • dbplus_flush »
  • PHP Manual
  • Функции DB++
  • Получить первый кортеж для отношения

dbplus_first

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_first — Получить первый кортеж для отношения

Описание

dbplus_first ( resource $relation , array &$tuple ) : int

Читает данные первого кортежа для отношения relation, делает его текущим и возвращает в виде ассоциативного массива в tuple.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

Возвращаемые значения

Функция возвращает 0 (оно же DBPLUS_ERR_NOERR) в случае успешного выполнения, либо другую константу db++ в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_curr() - Взять текущий кортеж для отношения
  • dbplus_prev() - Получить предыдущий кортеж для отношения
  • dbplus_next() - Получить следующий кортеж для отношения
  • dbplus_last() - Получает последний кортеж для отношения
  • dbplus_errcode() - Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки


Сбрасывает все изменения, сделанные для отношения

  • « dbplus_first
  • dbplus_freealllocks »
  • PHP Manual
  • Функции DB++
  • Сбрасывает все изменения, сделанные для отношения

dbplus_flush

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_flush — Сбрасывает все изменения, сделанные для отношения

Описание

dbplus_flush ( resource $relation ) : int

Записывает все изменения, сделанные для отношения relation с момента последней записи.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Функция возвращает 0 (оно же DBPLUS_ERR_NOERR) в случае успешного выполнения, либо другую константу db++ в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_errcode() - Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки


Освобождает все блокировки, сделанные клиентом

  • « dbplus_flush
  • dbplus_freelock »
  • PHP Manual
  • Функции DB++
  • Освобождает все блокировки, сделанные клиентом

dbplus_freealllocks

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_freealllocks — Освобождает все блокировки, сделанные клиентом

Описание

dbplus_freealllocks ( void ) : int

Освобождает все блокировки кортежей, сделанные клиентом.

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_getlock() - Запрашивает блокировку на запись для кортежа
  • dbplus_freelock() - Снимает блокировку записи с кортежа
  • dbplus_freerlocks() - Снимает все блокировки для отношения


Снимает блокировку записи с кортежа

  • « dbplus_freealllocks
  • dbplus_freerlocks »
  • PHP Manual
  • Функции DB++
  • Снимает блокировку записи с кортежа

dbplus_freelock

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_freelock — Снимает блокировку записи с кортежа

Описание

dbplus_freelock ( resource $relation , string $tuple ) : int

Снимает блокировку записи с кортежа tuple, установленную с помощью dbplus_getlock().

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_getlock() - Запрашивает блокировку на запись для кортежа
  • dbplus_freerlocks() - Снимает все блокировки для отношения
  • dbplus_freealllocks() - Освобождает все блокировки, сделанные клиентом


Снимает все блокировки для отношения

  • « dbplus_freelock
  • dbplus_getlock »
  • PHP Manual
  • Функции DB++
  • Снимает все блокировки для отношения

dbplus_freerlocks

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_freerlocks — Снимает все блокировки для отношения

Описание

dbplus_freerlocks ( resource $relation ) : int

Снимает все блокировки кортежей для отношения relation.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_getlock() - Запрашивает блокировку на запись для кортежа
  • dbplus_freelock() - Снимает блокировку записи с кортежа
  • dbplus_freealllocks() - Освобождает все блокировки, сделанные клиентом


Запрашивает блокировку на запись для кортежа

  • « dbplus_freerlocks
  • dbplus_getunique »
  • PHP Manual
  • Функции DB++
  • Запрашивает блокировку на запись для кортежа

dbplus_getlock

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_getlock — Запрашивает блокировку на запись для кортежа

Описание

dbplus_getlock ( resource $relation , string $tuple ) : int

Запрашивает блокировку на запись для заданного кортежа tuple.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

Возвращаемые значения

Возвращает 0 в случае успешного выполнения или код ошибки, обычно DBPLUS_ERR_WLOCKED, в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_freelock() - Снимает блокировку записи с кортежа
  • dbplus_freerlocks() - Снимает все блокировки для отношения
  • dbplus_freealllocks() - Освобождает все блокировки, сделанные клиентом


Получить уникальный идентификатор (номер) для отношения

  • « dbplus_getlock
  • dbplus_info »
  • PHP Manual
  • Функции DB++
  • Получить уникальный идентификатор (номер) для отношения

dbplus_getunique

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_getunique — Получить уникальный идентификатор (номер) для отношения

Описание

dbplus_getunique ( resource $relation , int $uniqueid ) : int

Получает гарантированно уникальное число для заданного отношения relation и заносит его в переменную, указанную в uniqueid.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

uniqueid

Возвращаемые значения

Функция возвращает 0 (оно же DBPLUS_ERR_NOERR) в случае успешного выполнения, либо другую константу db++ в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Получает информацию об отношении

  • « dbplus_getunique
  • dbplus_last »
  • PHP Manual
  • Функции DB++
  • Получает информацию об отношении

dbplus_info

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_info — Получает информацию об отношении

Описание

dbplus_info ( resource $relation , string $key , array &$result ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

key

result

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Получает последний кортеж для отношения

  • « dbplus_info
  • dbplus_lockrel »
  • PHP Manual
  • Функции DB++
  • Получает последний кортеж для отношения

dbplus_last

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_last — Получает последний кортеж для отношения

Описание

dbplus_last ( resource $relation , array &$tuple ) : int

Читает данные последнего кортежа для отношения relation, делает его текущим и записывает в виде ассоциативного массива в tuple.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

Возвращаемые значения

Функция возвращает 0 (оно же DBPLUS_ERR_NOERR) в случае успешного выполнения, либо другую константу db++ в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_first() - Получить первый кортеж для отношения
  • dbplus_curr() - Взять текущий кортеж для отношения
  • dbplus_prev() - Получить предыдущий кортеж для отношения
  • dbplus_next() - Получить следующий кортеж для отношения


Запрашивает блокировку записи для отношения

  • « dbplus_last
  • dbplus_next »
  • PHP Manual
  • Функции DB++
  • Запрашивает блокировку записи для отношения

dbplus_lockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_lockrel — Запрашивает блокировку записи для отношения

Описание

dbplus_lockrel ( resource $relation ) : int

Запрашивает блокировку записи для отношения relation.

Другие клиенты могут продолжать читать связь, но не могут ее изменять.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Получить следующий кортеж для отношения

  • « dbplus_lockrel
  • dbplus_open »
  • PHP Manual
  • Функции DB++
  • Получить следующий кортеж для отношения

dbplus_next

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_next — Получить следующий кортеж для отношения

Описание

dbplus_next ( resource $relation , array &$tuple ) : int

Читает данные следующего кортежа для отношения relation, делает его текущим и записывает в виде ассоциативного массива в tuple.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

Возвращаемые значения

Функция возвращает 0 (оно же DBPLUS_ERR_NOERR) в случае успешного выполнения, либо другую константу db++ в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_first() - Получить первый кортеж для отношения
  • dbplus_curr() - Взять текущий кортеж для отношения
  • dbplus_prev() - Получить предыдущий кортеж для отношения
  • dbplus_last() - Получает последний кортеж для отношения


Открыть файл отношений

  • « dbplus_next
  • dbplus_prev »
  • PHP Manual
  • Функции DB++
  • Открыть файл отношений

dbplus_open

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_open — Открыть файл отношений

Описание

dbplus_open ( string $name ) : resource

Открывает указанный файл отношений.

Список параметров

name

Абсолютный, либо относительный путь к файлу. В любом случае он будет отражен как абсолютный путь к файлу на конкретном хосте и сервере.

Возвращаемые значения

В случае успешного выполнения будет возвращен ресурс файла отношений (курсор), который можно использовать последующей работы с файлом отношений. В случае возникновения ошибки будет возвращен 0. Конкретную ошибку можно узнать вызвав функцию dbplus_errno().

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Получить предыдущий кортеж для отношения

  • « dbplus_open
  • dbplus_rchperm »
  • PHP Manual
  • Функции DB++
  • Получить предыдущий кортеж для отношения

dbplus_prev

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_prev — Получить предыдущий кортеж для отношения

Описание

dbplus_prev ( resource $relation , array &$tuple ) : int

Читает данные предыдущего кортежа для отношения relation, делает его текущим и записывает в виде ассоциативного массива в tuple.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

Возвращаемые значения

Функция возвращает 0 (оно же DBPLUS_ERR_NOERR) в случае успешного выполнения, либо другую константу db++ в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_first() - Получить первый кортеж для отношения
  • dbplus_curr() - Взять текущий кортеж для отношения
  • dbplus_next() - Получить следующий кортеж для отношения
  • dbplus_last() - Получает последний кортеж для отношения


Изменить разрешения для отношения

  • « dbplus_prev
  • dbplus_rcreate »
  • PHP Manual
  • Функции DB++
  • Изменить разрешения для отношения

dbplus_rchperm

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rchperm — Изменить разрешения для отношения

Описание

dbplus_rchperm ( resource $relation , int $mask , string $user , string $group ) : int

Изменяет права доступа к файлу отношения в соответствии с mask, user и group. Значения зависят от используемой операционной системы.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

mask

user

group

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создает новое отношение DB++

  • « dbplus_rchperm
  • dbplus_rcrtexact »
  • PHP Manual
  • Функции DB++
  • Создает новое отношение DB++

dbplus_rcreate

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rcreate — Создает новое отношение DB++

Описание

dbplus_rcreate ( string $name , mixed $domlist [, bool $overwrite ] ) : resource

Создает новое отношение. Любое существующее отношение с таким же именем name будет перезаписано, если оно в данный момент не используется и overwrite задано как TRUE.

Список параметров

name

domlist

Комбинация доменов. Можно передать как строку с одним доменом, так и массив строк.

Этот параметр должен содержать спецификацию доменов для создаваемого отношения в виде строки либо массива. Спецификация должна состоять из уникальных доменных имен для данного отношения, слешей и символов типа спецификации. Смотрите документацию db++, раздел dbcreate(1), для получения более подробной информации.

Замечание:

Эта функция, также, принимает строку с несколькими доменами, разделенными пробелами, но рекомендуется использовать массив.

overwrite

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создает точную, но пустую копию соотношения включая индексы

  • « dbplus_rcreate
  • dbplus_rcrtlike »
  • PHP Manual
  • Функции DB++
  • Создает точную, но пустую копию соотношения включая индексы

dbplus_rcrtexact

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rcrtexact — Создает точную, но пустую копию соотношения включая индексы

Описание

dbplus_rcrtexact ( string $name , resource $relation [, bool $overwrite ] ) : mixed

dbplus_rcrtexact() создает точную, но пустую копию заданного отношения relation под новым именем name.

Список параметров

name

relation

Копируемое отношение, открытое с помощью dbplus_open().

overwrite

Если отношение с именем name уже существует, никакой процесс его не использует и этот парамерт установлен как TRUE, то оно будет перезаписано.

Возвращаемые значения

В случае успешного выполнения возвращает ресурс и DBPLUS_ERR_UNKNOWN в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создает пустую копию отношения с индексами по умолчанию

  • « dbplus_rcrtexact
  • dbplus_resolve »
  • PHP Manual
  • Функции DB++
  • Создает пустую копию отношения с индексами по умолчанию

dbplus_rcrtlike

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rcrtlike — Создает пустую копию отношения с индексами по умолчанию

Описание

dbplus_rcrtlike ( string $name , resource $relation [, int $overwrite ] ) : mixed

dbplus_rcrtexact() создает пустую копию отношения relation с именем name, но с индексами по умолчанию.

Список параметров

name

relation

Копируемое отношение, открытое с помощью dbplus_open().

overwrite

Если отношение с именем name уже существует, никакой процесс его не использует и этот парамерт установлен как TRUE, то оно будет перезаписано.

Возвращаемые значения

В случае успешного выполнения возвращает ресурс и DBPLUS_ERR_UNKNOWN в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Извлекает информацию о хосте отношения

  • « dbplus_rcrtlike
  • dbplus_restorepos »
  • PHP Manual
  • Функции DB++
  • Извлекает информацию о хосте отношения

dbplus_resolve

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_resolve — Извлекает информацию о хосте отношения

Описание

dbplus_resolve ( string $relation_name ) : array

dbplus_resolve() пытается извлечь информацию о внутреннем идентификаторе сервера, реальном имени хоста и абсолютном пути до файла отношения на этом хосте по заданному relation_name.

Список параметров

relation_name

Имя отношения.

Возвращаемые значения

Возвращает массив со следующими ключами: sid, host host_path, или FALSE в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_tcl() - Выполняет код TCL на стороне сервера


Позиция восстановления

  • « dbplus_resolve
  • dbplus_rkeys »
  • PHP Manual
  • Функции DB++
  • Позиция восстановления

dbplus_restorepos

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_restorepos — Позиция восстановления

Описание

dbplus_restorepos ( resource $relation , array $tuple ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Задает новый первичный ключ для отношения

  • « dbplus_restorepos
  • dbplus_ropen »
  • PHP Manual
  • Функции DB++
  • Задает новый первичный ключ для отношения

dbplus_rkeys

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rkeys — Задает новый первичный ключ для отношения

Описание

dbplus_rkeys ( resource $relation , mixed $domlist ) : mixed

dbplus_rkeys() заменяет текущий первичный ключ для relation с помощью комбинации доменов, заданных с помощью domlist.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

domlist

Комбинация доменов. Можно передать как строку с одним именем домена, так и массив строк.

Возвращаемые значения

В случае успешного выполнения возвращает ресурс и DBPLUS_ERR_UNKNOWN в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Открыть файл отношений локально

  • « dbplus_rkeys
  • dbplus_rquery »
  • PHP Manual
  • Функции DB++
  • Открыть файл отношений локально

dbplus_ropen

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_ropen — Открыть файл отношений локально

Описание

dbplus_ropen ( string $name ) : resource

dbplus_ropen() открывает файл отношений file локально. Это даст быстрый доступ к нему, без накладных расходом на клиент-серверное взаимодействие. Доступ будет только на чтение и можно будет использовать только dbplus_curr() и dbplus_next().

Список параметров

name

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Выполнить локальный (сырой) AQL запрос

  • « dbplus_ropen
  • dbplus_rrename »
  • PHP Manual
  • Функции DB++
  • Выполнить локальный (сырой) AQL запрос

dbplus_rquery

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rquery — Выполнить локальный (сырой) AQL запрос

Описание

dbplus_rquery ( string $query [, string $dbpath ] ) : resource

dbplus_rquery() выполняет локальный (сырой) AQL запрос, используя встроенный в клиентскую библиотеку db++ интерпретатор AQL. Функция dbplus_rquery() работает быстрее, чем dbplus_aql(), но только с локальными данными.

Список параметров

query

dbpath

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Переименовывает отношение

  • « dbplus_rquery
  • dbplus_rsecindex »
  • PHP Manual
  • Функции DB++
  • Переименовывает отношение

dbplus_rrename

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rrename — Переименовывает отношение

Описание

dbplus_rrename ( resource $relation , string $name ) : int

dbplus_rrename() изменяет имя отношения с relation на name.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

name

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создает новый вторичный индекс для отношения

  • « dbplus_rrename
  • dbplus_runlink »
  • PHP Manual
  • Функции DB++
  • Создает новый вторичный индекс для отношения

dbplus_rsecindex

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rsecindex — Создает новый вторичный индекс для отношения

Описание

dbplus_rsecindex ( resource $relation , mixed $domlist , int $type ) : mixed

dbplus_rsecindex() создает новый вторичный индекс для отношения relation, состоящий из доменов, указанных в domlist и имеющий тип type

Список параметров

relation

Отношение, открытое dbplus_open().

domlist

Комбинация доменов. Можно передать как строку с одним доменом, так и массив строк.

type

Возвращаемые значения

В случае успешного выполнения возвращает ресурс и DBPLUS_ERR_UNKNOWN случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Удалить файл отношения

  • « dbplus_rsecindex
  • dbplus_rzap »
  • PHP Manual
  • Функции DB++
  • Удалить файл отношения

dbplus_runlink

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_runlink — Удалить файл отношения

Описание

dbplus_runlink ( resource $relation ) : int

dbplus_runlink() закрывает и удаляет отношение relation.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Удаляет все кортежи для отношения

  • « dbplus_runlink
  • dbplus_savepos »
  • PHP Manual
  • Функции DB++
  • Удаляет все кортежи для отношения

dbplus_rzap

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rzap — Удаляет все кортежи для отношения

Описание

dbplus_rzap ( resource $relation ) : int

dbplus_rzap() удалит все кортежи для отношения relation.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Сохранить позицию

  • « dbplus_rzap
  • dbplus_setindex »
  • PHP Manual
  • Функции DB++
  • Сохранить позицию

dbplus_savepos

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_savepos — Сохранить позицию

Описание

dbplus_savepos ( resource $relation ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Задать индекс

  • « dbplus_savepos
  • dbplus_setindexbynumber »
  • PHP Manual
  • Функции DB++
  • Задать индекс

dbplus_setindex

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_setindex — Задать индекс

Описание

dbplus_setindex ( resource $relation , string $idx_name ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

idx_name

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Установить индекс по номеру

  • « dbplus_setindex
  • dbplus_sql »
  • PHP Manual
  • Функции DB++
  • Установить индекс по номеру

dbplus_setindexbynumber

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_setindexbynumber — Установить индекс по номеру

Описание

dbplus_setindexbynumber ( resource $relation , int $idx_number ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

idx_number

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Выполнить SQL запрос

  • « dbplus_setindexbynumber
  • dbplus_tcl »
  • PHP Manual
  • Функции DB++
  • Выполнить SQL запрос

dbplus_sql

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_sql — Выполнить SQL запрос

Описание

dbplus_sql ( string $query [, string $server [, string $dbpath ]] ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

query

server

dbpath

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Выполняет код TCL на стороне сервера

  • « dbplus_sql
  • dbplus_tremove »
  • PHP Manual
  • Функции DB++
  • Выполняет код TCL на стороне сервера

dbplus_tcl

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_tcl — Выполняет код TCL на стороне сервера

Описание

dbplus_tcl ( int $sid , string $script ) : string

Сервер db++ подготавливает интерпритатор TCL для каждого клиентского подключения. Этот интерпритатор позволяет серверу запускать присланный клиентом код TCL как хранимую процедуру. Это позволяет увеличить производительность операций базы данных избегая лишней передачи данных от сервера клиенту и переключения контекста.

В функцию dbplus_tcl() необходимо передать идентификатор соединения и скрипт TCL (script), который необходимо выполнить. Идентификатор соединения можно получить из функции dbplus_resolve(). Функция возвращает код возврата TCL, либо сообщение об ошибке TCL.

Список параметров

sid

script

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_resolve() - Извлекает информацию о хосте отношения


Удалить кортеж и вернуть новый кортеж

  • « dbplus_tcl
  • dbplus_undo »
  • PHP Manual
  • Функции DB++
  • Удалить кортеж и вернуть новый кортеж

dbplus_tremove

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_tremove — Удалить кортеж и вернуть новый кортеж

Описание

dbplus_tremove ( resource $relation , array $tuple [, array &$current ] ) : int

dbplus_tremove() удаляет tuple из relation, если он идеально соответствует кортежу в связи. current, если задано, будет содержать данные нового текущего кортежа, который станет текущим после вызова dbplus_tremove().

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

current

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Отмена

  • « dbplus_tremove
  • dbplus_undoprepare »
  • PHP Manual
  • Функции DB++
  • Отмена

dbplus_undo

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_undo — Отмена

Описание

dbplus_undo ( resource $relation ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Подготовить отмену

  • « dbplus_undo
  • dbplus_unlockrel »
  • PHP Manual
  • Функции DB++
  • Подготовить отмену

dbplus_undoprepare

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_undoprepare — Подготовить отмену

Описание

dbplus_undoprepare ( resource $relation ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Снять блокировку записи с отношения

  • « dbplus_undoprepare
  • dbplus_unselect »
  • PHP Manual
  • Функции DB++
  • Снять блокировку записи с отношения

dbplus_unlockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_unlockrel — Снять блокировку записи с отношения

Описание

dbplus_unlockrel ( resource $relation ) : int

Снимает блокировку записи с отношения, установленную dbplus_lockrel().

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Удалить ограничения с отношения

  • « dbplus_unlockrel
  • dbplus_update »
  • PHP Manual
  • Функции DB++
  • Удалить ограничения с отношения

dbplus_unselect

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_unselect — Удалить ограничения с отношения

Описание

dbplus_unselect ( resource $relation ) : int

Вызов dbplus_unselect() удаляет ограничения, установленные функцией dbplus_find() для отношения relation.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Заменяет заданный кортеж для отношения

  • « dbplus_unselect
  • dbplus_xlockrel »
  • PHP Manual
  • Функции DB++
  • Заменяет заданный кортеж для отношения

dbplus_update

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_update — Заменяет заданный кортеж для отношения

Описание

dbplus_update ( resource $relation , array $old , array $new ) : int

dbplus_update() заменяет кортеж old данными кортежа new, только если old точно соответствует кортежу для отношения relation.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

old

Старый кортеж.

new

Новый кортеж.

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Запрашивает эксключивную блокировку для отношения

  • « dbplus_update
  • dbplus_xunlockrel »
  • PHP Manual
  • Функции DB++
  • Запрашивает эксключивную блокировку для отношения

dbplus_xlockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_xlockrel — Запрашивает эксключивную блокировку для отношения

Описание

dbplus_xlockrel ( resource $relation ) : int

Запрашивает эксключивную блокировку для отношения relation, запрещая доступ на чтение для других клиентов.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_xunlockrel() - Освобождает эксклюзивную блокировку для отношения


Освобождает эксклюзивную блокировку для отношения

  • « dbplus_xlockrel
  • dBase »
  • PHP Manual
  • Функции DB++
  • Освобождает эксклюзивную блокировку для отношения

dbplus_xunlockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_xunlockrel — Освобождает эксклюзивную блокировку для отношения

Описание

dbplus_xunlockrel ( resource $relation ) : int

Освобождает эксклюзивную блокировку для отношения, полученную с помощью dbplus_xlockrel().

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


dBase

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • dBase
    • dbase_add_record — Добавляет запись в базу данных
    • dbase_close — Закрывает базу данных
    • dbase_create — Создает базу данных
    • dbase_delete_record — Удаление записей из базы данных
    • dbase_get_header_info — Получает информацию о свойствах полей базы данных
    • dbase_get_record_with_names — Получает запись из базы данных в виде ассоциативного массива
    • dbase_get_record — Получает записи из базы данных, как из индексированного массива
    • dbase_numfields — Получает количество полей базы данных
    • dbase_numrecords — Получает количество записей в базе данных
    • dbase_open — Открывает базу данных
    • dbase_pack — Фиксирует удаление из базы данных
    • dbase_replace_record — Заменяет запись в базе данных


Введение

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.3.0.

Эти функции позволяют получить доступ к записям, хранящимся в DBase-формате (DBF) баз данных.

Внимание

Мы не рекомендуем использовать файлы DBase файлы для использования в промышленной эксплуатации. Лучше выберите » SQLite или какую-либо настоящую базу данных; » MySQL или » Postgres являются наиболее частым выбором при работе с PHP. Поддержка dBase больше нужна для импорта и экспорта данных вашей базы данных, поскольку формат ее файлов понятен большинству пакетов электронных таблиц (например, Excel).

Предостережение

С версии dbase 7.0.0, база данных автоматически блокируется с помощью flock(). Ранее поддержки блокировок не было, так что два конкурирующих процесса веб-сервера, изменяющие один и тот же файл dBase могли с легкостью испортить базу. Такое может произойти даже и в dbase 7.0.0+ на системах, которые реализуют блокировку на уровне процесса с многопоточными SAPI, такими как ISAPI.

База данных dBase является просто последовательностью файлов с фиксированной длиной записи. Записи добавляются в конец файла и удаленные записи будут (физически) хранится до вызова dbase_pack().

Поддерживаются только dbf-файлы уровня 3 (dBASE III+) - 5 (dBASE V). Доступные типы полей dBase:

Типы полей
Поле | dBase тип | Формат | Дополнительная информация
M | Memo | n/a | Тип не поддерживается PHP, такое поле будет игнорироваться
D | Date | YYYYMMDD | Длина поля ограничена 8
T | DateTime | YYYYMMDDhhmmss.uuu | (FoxPro) Проверка на корректность не производится. Доступно с dbase 7.0.0.
N | Number | Число | Вы должны указать длину и точность (количество цифр после десятичной точки).
F | Float | Число с плавающей запятой | То же, что и N. Доступно с PHP 5.2.0
C | String | A string | Вы должны указать длину. При получении данных, строка будет дополнена справа пробелами до заявленной длины. Более длинные строки будут обрезаны без предупреждения.
L | Boolean | T или Y для TRUE, F или N для FALSE, ? - не инициализированно. | С dbase 7.0.0, возвращается как bool (TRUE или FALSE), или NULL для не инициализированных полей. Ранее возвращалось как int (1 или 0).

Замечание:

Начиная с dbase 7.0.0 поддерживаются обнуляемые поля для баз данных DBASE_TYPE_FOXPRO. Если поле обнуляемое. При передаче NULL будет установлен соответствующий флаг и, при дальнейшем извлечении поля, будет возвращено значение NULL.

Замечание:

Поддержки для индексов и memo-полей нет.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/dbase.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

В dbase 7.0.0 определен ресурс dbase, который возвращается функциями dbase_open() и dbase_create().


Предопределенные константы

Данное расширение не определяет никакие константы.

DBASE_VERSION (string)
Версия расширения. (Доступно с dbase 7.0.0)
DBASE_RDONLY (int)
Открыть базу данных только для чтения. Используется с dbase_open(). (Доступно с dbase 7.0.0)
DBASE_RDWR (int)
Открыть базу данных для чтения и записи. Используется с dbase_open(). (Доступно с 7.0.0)
DBASE_TYPE_DBASE (int)
Создать базу данных типа dBASE. Используется с dbase_create(). (Доступно с 7.0.0)
DBASE_TYPE_FOXPRO (int)
Создать базу данных типа FoxPro. Используется с dbase_create(). (Доступно с 7.0.0)


dBase

Примеры

Большинство примеров в документации требуют наличие базы данных dBase. Мы будем использовать /tmp/test.dbf ,которую создали в примере с dbase_create().

Содержание

  • dbase_add_record — Добавляет запись в базу данных
  • dbase_close — Закрывает базу данных
  • dbase_create — Создает базу данных
  • dbase_delete_record — Удаление записей из базы данных
  • dbase_get_header_info — Получает информацию о свойствах полей базы данных
  • dbase_get_record_with_names — Получает запись из базы данных в виде ассоциативного массива
  • dbase_get_record — Получает записи из базы данных, как из индексированного массива
  • dbase_numfields — Получает количество полей базы данных
  • dbase_numrecords — Получает количество записей в базе данных
  • dbase_open — Открывает базу данных
  • dbase_pack — Фиксирует удаление из базы данных
  • dbase_replace_record — Заменяет запись в базе данных


Добавляет запись в базу данных

  • « dBase
  • dbase_close »
  • PHP Manual
  • dBase
  • Добавляет запись в базу данных

dbase_add_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_add_record — Добавляет запись в базу данных

Описание

dbase_add_record ( resource $dbase_identifier , array $record ) : bool

Добавляет данные в базу данных

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

record

Индексированный массив с данными. Количество элементов должно быть равно числу полей в базе данных, в противном случае dbase_add_record() не удастся выполнить.

Замечание:

Если вы используете в качестве параметра запись, которую вернула функция dbase_get_record(), не забудьте сбросить ключ deleted. (прим пер. - unset(record['deleted']);

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Примеры

Пример #1 Вставка записи в базу данных dBase

<?php

// открыть БД в режиме чтения и записи
$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_add_record
  • dbase_create »
  • PHP Manual
  • dBase
  • Закрывает базу данных

dbase_close

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_close — Закрывает базу данных

Описание

dbase_close ( resource $dbase_identifier ) : bool

Закрывает базу данных согласно полученному идентификатору.

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Примеры

Пример #1 Закрытие файла базы данных dBase

<?php

// открыть БД в режиме чтения
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  // получить некоторые данные

  dbase_close($db);
}

?>

Смотрите также

  • dbase_open() - Открывает базу данных
  • dbase_create() - Создает базу данных


Создает базу данных

  • « dbase_close
  • dbase_delete_record »
  • PHP Manual
  • dBase
  • Создает базу данных

dbase_create

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_create — Создает базу данных

Описание

dbase_create ( string $filename , array $fields [, int $type = DBASE_TYPE_DBASE ] ) : resource

dbase_create() создает базу данных dBase с заданными свойствами. Если файл уже существует, то он не будет предварительно очищен. Для принудительной очистки используйте функцию dbase_pack().

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Замечание:

На поведение этой функции влияет значение директивы open_basedir.

Список параметров

filename

Имя базы данных. Это может быть относительный или абсолютный путь к файлу, в котором dBase будет хранить ваши данные.

fields

Массив массивов, в котором каждый массив описывает формат одного поля базы данных. Формат каждого поля состоит из имени этого поля, символа, указывающего тип поля, и, при необходимости, его длину, точность и флаг обнуляемости. Поддерживаемые типы файлов перечислены в вводной секции.

type

Тип создаваемой базы данных. Либо DBASE_TYPE_DBASE либо DBASE_TYPE_FOXPRO.

Замечание:

Имена полей ограничены в длину и не должны превышать 10 символов.

Возвращаемые значения

Возвращает идентификатор связи с базой данных, если база данных успешно создана, или FALSE в случае ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Добавлен параметр type.
dbase 7.0.0 | Возвращаемое значение теперь имеет тип resource а не int.

Примеры

Пример #1 Создание файла базы данных dBase

<?php

// база данных "definition"
$def = array(
  array("date",     "D"),
  array("name",     "C",  50),
  array("age",      "N",   3, 0),
  array("email",    "C", 128),
  array("ismember", "L")
);

// создаем
if (!dbase_create('/tmp/test.dbf', $def)) {
  echo "Ошибка, не получается создать базу данных\n";
}

?>

Смотрите также

  • dbase_open() - Открывает базу данных
  • dbase_close() - Закрывает базу данных


Удаление записей из базы данных

  • « dbase_create
  • dbase_get_header_info »
  • PHP Manual
  • dBase
  • Удаление записей из базы данных

dbase_delete_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_delete_record — Удаление записей из базы данных

Описание

dbase_delete_record ( resource $dbase_identifier , int $record_number ) : bool

Помечает указанные записи для удаления из базы данных.

Замечание:

Для окончательного удаления записей из базы данных, необходимо вызвать dbase_pack().

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

record_number

Целое число, в промежутке от 1 до количества записей в базе дынных (количество записей возвращает функция dbase_numrecords()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Смотрите также

  • dbase_add_record() - Добавляет запись в базу данных
  • dbase_replace_record() - Заменяет запись в базе данных


Получает информацию о свойствах полей базы данных

  • « dbase_delete_record
  • dbase_get_record_with_names »
  • PHP Manual
  • dBase
  • Получает информацию о свойствах полей базы данных

dbase_get_header_info

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_get_header_info — Получает информацию о свойствах полей базы данных

Описание

dbase_get_header_info ( resource $dbase_identifier ) : array

Возвращает информацию о структуре полей (столбцов) базы данных, согласно заданному идентификатору.

Список параметров

dbase_identifier

Идентификатор базы данных, полученный с помощью dbase_open() или dbase_create().

Возвращаемые значения

Индексированный массив значений для каждой колонки (поля). Индекс массива начинается с 0.

Каждый элемент массива содержит ассоциативный массив информации о столбцах БД следующего вида:

name
Наименование поля
type
Тип поля dBase в удобном для восприятия виде (date, boolean, и т.д.) Поддерживаемые типы файлов перечислены в вводной секции.
length
Максимально хранимое число байт данного поля (включая "precision" - прим. пер.)
precision
Количество цифр после запятой
format
Предложенный в printf() формат спецификации для данного типа
offset
Байт смещения, указывающий размещение поля от начала записи (строки).

Если информация в заголовке базы данных не может быть прочитана, возвращает FALSE.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Примеры

Пример #1 Получение свойств полей файла базы данных dBase

<?php
// Путь к файлу БД
$db_path = "/tmp/test.dbf";

// Открываем файл БД
$dbh = dbase_open($db_path, 0)
  or die("Ошибка! Не получается открыть файл '$db_path'.");

// Получаем информацию о столбцах
$column_info = dbase_get_header_info($dbh);

// Отображение информации
print_r($column_info);
?>


Получает запись из базы данных в виде ассоциативного массива

  • « dbase_get_header_info
  • dbase_get_record »
  • PHP Manual
  • dBase
  • Получает запись из базы данных в виде ассоциативного массива

dbase_get_record_with_names

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_get_record_with_names — Получает запись из базы данных в виде ассоциативного массива

Описание

dbase_get_record_with_names ( resource $dbase_identifier , int $record_number ) : array

Получает запись из базы данных dBase в виде ассоциативного массива (вместе с именами соответствующих полей).

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

record_number

Индекс записи (Здесь соответствует физическому номеру записи. - прим. пер.) в диапазоне от 1 до dbase_numrecords($dbase_identifier)

Возвращаемые значения

Ассоциативный массив с данными строки. Массив будет включать в себя ключ deleted который равен 1, если запись помечена на удаление (см. dbase_delete_record()). Возвращает и пустые записи. Следовательно, этой функцией невозможно извлечь значение или имя поля delete.

Каждое поле преобразуется в соответствующий тип PHP, за исключением:

  • Date преобразуется в строку.
  • DateTime преобразуется в строку.
  • Целые, выходящие из диапазона PHP_INT_MIN..PHP_INT_MAX преобразуются в строки.
  • До dbase 7.0.0, логические значение (L) преобразуются в 1 или 0.

В случае ошибки, dbase_get_record_with_names() возвращает FALSE.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Примеры

Пример #1 Список всех зарегистрированных пользователей в базе данных

<?php
// открываем базу в режиме чтения
$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_with_names значениям записи
// обращаемся по имени - $row['ismember'],
// а в случае с dbase_get_record к значениям записи
// обращаемся по номеру - $row[4]
?>

Смотрите также

  • dbase_get_record() - Получает записи из базы данных, как из индексированного массива


Получает записи из базы данных, как из индексированного массива

  • « dbase_get_record_with_names
  • dbase_numfields »
  • PHP Manual
  • dBase
  • Получает записи из базы данных, как из индексированного массива

dbase_get_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_get_record — Получает записи из базы данных, как из индексированного массива

Описание

dbase_get_record ( resource $dbase_identifier , int $record_number ) : array

Получает записи из базы данных, как из индексированного массива.

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

record_number

Индекс записи (Здесь соответствует физическому номеру записи. - прим. пер.) в диапазоне от 1 до dbase_numrecords($dbase_identifier)

Возвращаемые значения

Возвращает запись в виде массива. Массив будет включать в себя ключ deleted который равен 1, если запись помечена на удаление (см. dbase_delete_record()).

Каждое поле преобразуется в соответствующий тип PHP, за исключением:

  • Date преобразуется в строку.
  • DateTime преобразуется в строку.
  • Целые, выходящие из диапазона PHP_INT_MIN..PHP_INT_MAX преобразуются в строки.
  • До dbase 7.0.0, логические значение (L) преобразуются в 1 или 0.

В случае ошибки, dbase_get_record() возвращает FALSE.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Смотрите также

  • dbase_get_record_with_names() - Получает запись из базы данных в виде ассоциативного массива


Получает количество полей базы данных

  • « dbase_get_record
  • dbase_numrecords »
  • PHP Manual
  • dBase
  • Получает количество полей базы данных

dbase_numfields

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_numfields — Получает количество полей базы данных

Описание

dbase_numfields ( resource $dbase_identifier ) : int

Получает количество полей (колонок) в указанной базе данных.

Замечание:

Поле номеруются от 0 до dbase_numfields($db)-1, тогда как записи базы данных от 1 до dbase_numrecords($db).

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

Возвращаемые значения

Количество полей в базе данных или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource, а не int.

Примеры

Пример #1 Пример использования dbase_numfields()

<?php
//открытие БД для чтения
$db = dbase_open('.\tmp\test.dbf', 0);

//если соединение успешно, то выполняем действия
if ($db) {
  //получение количества записей БД
  $record_numbers = dbase_numrecords($db);
  //получение количества полей БД
  $nf  = dbase_numfields($db);
  //вывод всех записей БД
  //построчный обход
  for ($j = 1;  $j <= $record_numbers;  $j++) {
    //вывод номера строки
    echo $j."=>" ;
    //получение строки по номеру (индексу)
    $rec = dbase_get_record($db, $j);

    //обход по столбцам
    for ($i = 0; $i < $nf; $i++) {
      //вывод данных поля
      echo $rec[$i], "\t";
    }
  echo "<br>";
  }
dbase_close($db);
} else echo "Не удалось подключиться к БД";

?>

Смотрите также

  • dbase_numrecords() - Получает количество записей в базе данных


Получает количество записей в базе данных

  • « dbase_numfields
  • dbase_open »
  • PHP Manual
  • dBase
  • Получает количество записей в базе данных

dbase_numrecords

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_numrecords — Получает количество записей в базе данных

Описание

dbase_numrecords ( resource $dbase_identifier ) : int

Получает количество записей (строк) в указанной базе данных.

Замечание:

Записи, помеченные как удаленные, также учитываются.

Замечание:

Записи базы данных нумеруются от 1 dbase_numrecords($db), тогда как поля от 0 до dbase_numfields($db)-1.

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

Возвращаемые значения

Количество записей в базе данных, или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Примеры

Пример #1 Цикл по всем записям базы данных

<?php

// открываем в режиме для чтения
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  $record_numbers = dbase_numrecords($db);
  for ($i = 1; $i <= $record_numbers; $i++) {
      //выполнение каких-либо действий с записью
  }
}

?>

Смотрите также

  • dbase_numfields() - Получает количество полей базы данных


Открывает базу данных

  • « dbase_numrecords
  • dbase_pack »
  • PHP Manual
  • dBase
  • Открывает базу данных

dbase_open

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_open — Открывает базу данных

Описание

dbase_open ( string $filename , int $mode ) : resource

dbase_open() открывает базу данных dBase с заданным режимом доступа.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Замечание:

На поведение этой функции влияет значение директивы open_basedir.

Список параметров

filename

Имя базы данных. Это может быть относительный или абсолютный путь к файлу, в котором dBase будет хранить ваши данные.

mode

Целое число, которое соответствует аналогичному в системном вызове open() (Обычно 0 означает режим для чтения, 1 - режим для записи, и 2 - режим для чтения и записи).

Замечание:

Вы не можете открыть файл в dBase в режиме только для записи, потому что функция будет не в состоянии читать информацию из заголовка БД, и, таким образом, вы не можете использовать 1 в качестве значения mode.

С версии dbase 7.0.0 вы можете использовать DBASE_RDONLY и DBASE_RDWR, для задания режима открытия базы в mode.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Примеры

Пример #1 Открытие dBase файл базы данных

<?php

// открытие в режиме чтения
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  // чтение некотрых данных

  dbase_close($db);
}

?>

Возвращаемые значения

Возвращает идентификатор ссылки на базу данных, если база данных успешно открыта, или FALSE если произошла ошибка.

Смотрите также

  • dbase_create() - Создает базу данных
  • dbase_close() - Закрывает базу данных


Фиксирует удаление из базы данных

  • « dbase_open
  • dbase_replace_record »
  • PHP Manual
  • dBase
  • Фиксирует удаление из базы данных

dbase_pack

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_pack — Фиксирует удаление из базы данных

Описание

dbase_pack ( resource $dbase_identifier ) : bool

Фиксирует удаление из базы данных, окончательно удаляет записи, которые были помечены на удаление с помощью dbase_delete_record(). Обратите внимание, что после выполнения этой операции файл будет усечен (в отличие от команды dBASE III's PACK)

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Примеры

Пример #1 Очистка базы данных dBase

<?php

// открываем в режиме чтения и записи
$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);
  }
  // стираем базу
  dbase_pack($db);
}

?>

Смотрите также

  • dbase_delete_record() - Удаление записей из базы данных


Заменяет запись в базе данных

  • « dbase_pack
  • filePro »
  • PHP Manual
  • dBase
  • Заменяет запись в базе данных

dbase_replace_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_replace_record — Заменяет запись в базе данных

Описание

dbase_replace_record ( resource $dbase_identifier , array $record , int $record_number ) : bool

Заменяет данную запись в базе данных на заданные значения.

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

record

Индексированный массив данных. Количество элементов должно быть равно количеству полей в базе данных, в противном случае вызов dbase_replace_record() не удастся.

Замечание:

Если вы используете в качестве параметра запись, которую вернула dbase_get_record(), не забудьте сбросить ключ с именем deleted.

record_number

Целое число, которое может быть в диапазоне от 1 до числа записей в базе данных (которое вернула функция dbase_numrecords()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Примеры

Пример #1 Обновление записи в базе данных

<?php

// откроем в режиме чтения и записи
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
  // получим старую запись
  $row = dbase_get_record_with_names($db, 1);

  // сбросим пометку 'deleted'
  unset($row['deleted']);

  // Установим в поле даты текущую дату
  $row['date'] = date('Ymd');

  // Преобразуем $row в массив
  $row = array_values($row);

  // Заменим запись
  dbase_replace_record($db, $row, 1);
  dbase_close($db);
}

?>

Примечания

Замечание:

При использовании dbase_get_record() и dbase_get_record_with_names(), поля типа Boolean возвращаются как целочисленное значение (0 либо 1). Если вы собираетесь записывать эти значения обратно, необходимо помнить, что результат станет равным 0.

Смотрите также

  • dbase_add_record() - Добавляет запись в базу данных
  • dbase_delete_record() - Удаление записей из базы данных


filePro

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции filePro
    • filepro_fieldcount — Получить число полей в базе данных filePro
    • filepro_fieldname — Получить имя поля
    • filepro_fieldtype — Получить тип поля
    • filepro_fieldwidth — Возвращает ширину поля
    • filepro_retrieve — Извлечение данных из базы filePro
    • filepro_rowcount — Получение количества строк в базе данных filePro
    • filepro — Прочитать и проверить файл соотношений


Введение

Эти функции предоставляют доступ к содержимому базы данных filePro в режиме только для чтения.

filePro - зарегистрированная торговая марка fP Technologies, Inc. Больше информации о filePro доступно по ссылке » http://www.fptech.com/.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.2.0.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/filepro.


  • « Типы ресурсов
  • Функции filePro »
  • PHP Manual
  • filePro
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции filePro

Содержание

  • filepro_fieldcount — Получить число полей в базе данных filePro
  • filepro_fieldname — Получить имя поля
  • filepro_fieldtype — Получить тип поля
  • filepro_fieldwidth — Возвращает ширину поля
  • filepro_retrieve — Извлечение данных из базы filePro
  • filepro_rowcount — Получение количества строк в базе данных filePro
  • filepro — Прочитать и проверить файл соотношений


Получить число полей в базе данных filePro

  • « Функции filePro
  • filepro_fieldname »
  • PHP Manual
  • Функции filePro
  • Получить число полей в базе данных filePro

filepro_fieldcount

(PHP 4, PHP 5 < 5.2.0, PHP 7)

filepro_fieldcount — Получить число полей в базе данных filePro

Описание

filepro_fieldcount ( void ) : int

Возвращает число полей (столбцов) в открытой базе данных filePro.

Возвращаемые значения

Возвращает число полей (столбцов) в открытой базе данных filePro, или FALSE в случае возникновения ошибки.

Смотрите также

  • filepro() - Прочитать и проверить файл соотношений


Получить имя поля

  • « filepro_fieldcount
  • filepro_fieldtype »
  • PHP Manual
  • Функции filePro
  • Получить имя поля

filepro_fieldname

(PHP 4, PHP 5 < 5.2.0, PHP 7)

filepro_fieldname — Получить имя поля

Описание

filepro_fieldname ( int $field_number ) : string

Возвращает имя поля в соотвествии с field_number.

Список параметров

field_number

Номер поля.

Возвращаемые значения

Возвращает строку с именем поля, либо FALSE в случае возникновения ошибки.


Получить тип поля

  • « filepro_fieldname
  • filepro_fieldwidth »
  • PHP Manual
  • Функции filePro
  • Получить тип поля

filepro_fieldtype

(PHP 4, PHP 5 < 5.2.0, PHP 7)

filepro_fieldtype — Получить тип поля

Описание

filepro_fieldtype ( int $field_number ) : string

Возвращает тип поля в соотвествии с field_number.

Список параметров

field_number

Номер поля.

Возвращаемые значения

Возвращает строку с типом поля, либо FALSE в случае возникновения ошибки.


Возвращает ширину поля

  • « filepro_fieldtype
  • filepro_retrieve »
  • PHP Manual
  • Функции filePro
  • Возвращает ширину поля

filepro_fieldwidth

(PHP 4, PHP 5 < 5.2.0, PHP 7)

filepro_fieldwidth — Возвращает ширину поля

Описание

filepro_fieldwidth ( int $field_number ) : int

Возвращает ширину поля в соотвествии с field_number.

Список параметров

field_number

Номер поля.

Возвращаемые значения

Возвращает целое число с шириной поля, либо FALSE в случае возникновения ошибки.


Извлечение данных из базы filePro

  • « filepro_fieldwidth
  • filepro_rowcount »
  • PHP Manual
  • Функции filePro
  • Извлечение данных из базы filePro

filepro_retrieve

(PHP 4, PHP 5 < 5.2.0, PHP 7)

filepro_retrieve — Извлечение данных из базы filePro

Описание

filepro_retrieve ( int $row_number , int $field_number ) : string

Возвращает данные из указанной позиции в базе данных.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Список параметров

row_number

Номер строки. Должно быть в диапазоне от нуля до общего количества строк в базе минус 1. (0..filepro_rowcount() - 1)

field_number

Номер поля. (0..filepro_fieldcount() - 1)

Возвращаемые значения

Возвращает запрашиваемые данные, либо FALSE в случае возникновения ошибки.


Получение количества строк в базе данных filePro

  • « filepro_retrieve
  • filepro »
  • PHP Manual
  • Функции filePro
  • Получение количества строк в базе данных filePro

filepro_rowcount

(PHP 4, PHP 5 < 5.2.0, PHP 7)

filepro_rowcount — Получение количества строк в базе данных filePro

Описание

filepro_rowcount ( void ) : int

Возвращает количество строк в открытой базе данных filePro.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Возвращаемые значения

Возвращает количество строк в открытой базе данных filePro, или FALSE в случае возникновения ошибки.

Смотрите также

  • filepro() - Прочитать и проверить файл соотношений


Прочитать и проверить файл соотношений

  • « filepro_rowcount
  • Firebird/InterBase »
  • PHP Manual
  • Функции filePro
  • Прочитать и проверить файл соотношений

filepro

(PHP 4, PHP 5 < 5.2.0, PHP 7)

filepro — Прочитать и проверить файл соотношений

Описание

filepro ( string $directory ) : bool

Прочитать и проверить файл соотношений, хранящий информацию и количество полей.

Блокировка не выставляется, так что следует избегать внесения изменений в базу filePro, когда она открыта в PHP скрипте.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Список параметров

directory

Директория базы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Firebird/InterBase

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Firebird/InterBase
    • fbird_add_user — Псевдоним ibase_add_user
    • fbird_affected_rows — Псевдоним ibase_affected_rows
    • fbird_backup — Псевдоним ibase_backup
    • fbird_blob_add — Псевдоним ibase_blob_add
    • fbird_blob_cancel — Cancel creating blob
    • fbird_blob_close — Псевдоним ibase_blob_close
    • fbird_blob_create — Псевдоним ibase_blob_create
    • fbird_blob_echo — Псевдоним ibase_blob_echo
    • fbird_blob_get — Псевдоним ibase_blob_get
    • fbird_blob_import — Псевдоним ibase_blob_import
    • fbird_blob_info — Псевдоним ibase_blob_info
    • fbird_blob_open — Псевдоним ibase_blob_open
    • fbird_close — Псевдоним ibase_close
    • fbird_commit_ret — Псевдоним ibase_commit_ret
    • fbird_commit — Псевдоним ibase_commit
    • fbird_connect — Псевдоним ibase_connect
    • fbird_db_info — Псевдоним ibase_db_info
    • fbird_delete_user — Псевдоним ibase_delete_user
    • fbird_drop_db — Псевдоним ibase_drop_db
    • fbird_errcode — Псевдоним ibase_errcode
    • fbird_errmsg — Псевдоним ibase_errmsg
    • fbird_execute — Псевдоним ibase_execute
    • fbird_fetch_assoc — Псевдоним ibase_fetch_assoc
    • fbird_fetch_object — Псевдоним ibase_fetch_object
    • fbird_fetch_row — Псевдоним ibase_fetch_row
    • fbird_field_info — Псевдоним ibase_field_info
    • fbird_free_event_handler — Псевдоним ibase_free_event_handler
    • fbird_free_query — Псевдоним ibase_free_query
    • fbird_free_result — Псевдоним ibase_free_result
    • fbird_gen_id — Псевдоним ibase_gen_id
    • fbird_maintain_db — Псевдоним ibase_maintain_db
    • fbird_modify_user — Псевдоним ibase_modify_user
    • fbird_name_result — Псевдоним ibase_name_result
    • fbird_num_fields — Псевдоним ibase_num_fields
    • fbird_num_params — Псевдоним ibase_num_params
    • fbird_param_info — Псевдоним ibase_param_info
    • fbird_pconnect — Псевдоним ibase_pconnect
    • fbird_prepare — Псевдоним ibase_prepare
    • fbird_query — Псевдоним ibase_query
    • fbird_restore — Псевдоним ibase_restore
    • fbird_rollback_ret — Псевдоним ibase_rollback_ret
    • fbird_rollback — Псевдоним ibase_rollback
    • fbird_server_info — Псевдоним ibase_server_info
    • fbird_service_attach — Псевдоним ibase_service_attach
    • fbird_service_detach — Псевдоним ibase_service_detach
    • fbird_set_event_handler — Псевдоним ibase_set_event_handler
    • fbird_trans — Псевдоним ibase_trans
    • fbird_wait_event — Псевдоним ibase_wait_event
    • ibase_add_user — Добавляет пользователя в безопасную базу данных
    • ibase_affected_rows — Возвращает количество строк, на которые повлиял предыдущий запрос
    • ibase_backup — Инициирует задание резервного копирования в диспетчере служб и немедленно возвращает
    • ibase_blob_add — Добавляет данные во вновь созданный BLOB-объект
    • ibase_blob_cancel — Отменяет создания BLOB-объекта
    • ibase_blob_close — Закрывает BLOB-объект
    • ibase_blob_create — Создает новый BLOB-объект для заполнения данными
    • ibase_blob_echo — Выводит содержимое BLOB-объекта в браузер
    • ibase_blob_get — Получает количество байтов от открытого BLOB-объекта
    • ibase_blob_import — Создает BLOB-объект, копирует в него файл и закрывает его
    • ibase_blob_info — Возвращает длину BLOB-объекта и другую полезную информацию
    • ibase_blob_open — Открывает BLOB-объект для извлечения частей данных
    • ibase_close — Закрывает соединение с базой данных InterBase
    • ibase_commit_ret — Фиксирует транзакцию, не закрывая ее
    • ibase_commit — Фиксирует транзакцию
    • ibase_connect — Открывает соединение с базой данных
    • ibase_db_info — Запрашивает статистику базы данных
    • ibase_delete_user — Удаляет пользователя из безопасной базы данных
    • ibase_drop_db — Удаляет базу данных
    • ibase_errcode — Возвращает код ошибки
    • ibase_errmsg — Возвращает сообщение об ошибке
    • ibase_execute — Выполняет предварительно подготовленный запрос
    • ibase_fetch_assoc — Извлекает строку результата из запроса в виде ассоциативного массива
    • ibase_fetch_object — Получает объект из базы данных InterBase
    • ibase_fetch_row — Извлекает строку из базы данных InterBase
    • 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 — 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 — Регистрирует callback-функцию, которая будет вызываться при публикации событий
    • ibase_trans — Begin a transaction
    • ibase_wait_event — Ждем, пока событие будет опубликовано в базе данных


Введение

Firebird является реляционной базой данных, реализующая множество возможностей ISO SQL-2003 и работающая на Linux, Windows и различных Unix-платформах. Firebird высокопроизводительная, отлично работающая в условиях конкурентного доступа БД, предоставляющая мощный язык разработки встроенных процедур и триггеров. Она, под разными именами, используется в промышленных системах начиная с 1981.

InterBase - это имя проприетарного варианта RDBMS с закрытым исходным кодом, которая разрабатывается компанией Embarcadero/Inprise. Более подробно можно почитать по ссылке » http://www.embarcadero.com/products/interbase.

Firebird - это коммерчески независимый проект (сообщество) программистов на C++, технических советников и прочих участников сообщества, разрабатывающих и расширяющих мультиплатформенную систему управления реляционными базами данных, основанную на коде открытым компанией Inprise Corp (она же Embarcadero) под лицензией InterBase Public License v.1.0 on 25 July, 2000. Более подробно о Firebird читайте тут » http://www.firebirdsql.org/.

Замечание:

Модуль поддерживает InterBase версии 6 и выше и Firebird версии 2.0 и выше.

База данных использует символ одинарной кавычки (') для экранирования. Добавьте в ваш php.ini следующую директиву (Устарело в PHP 5.3.0. Удалено в PHP 5.4.0):

magic_quotes_sybase = On


Установка

Для включения поддержки Firebird/InterBase, сконфигурируйте PHP с опцией --with-interbase[=DIR] , где DIR указывает на директорию установки Firebird/InterBase (по умолчанию /usr).

Замечание: Замечания для пользователей Win32/Win64

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: fbclient.dll,gds32.dll

Если сервер Firebird/InterBase установлен на той же машине, где запускается PHP, то эти DLL уже должны присутствовать и путь к fbclient.dll,gds32.dll (gds32.dll создается установщиком для старых приложений) уже будет прописан в PATH.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Конфигурационные опции InterBase
Имя | По умолчанию | Место изменения | Список изменений
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 |
ibase.default_user | NULL | PHP_INI_ALL |
ibase.default_password | NULL | PHP_INI_ALL |
ibase.default_charset | NULL | PHP_INI_ALL |
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_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

ibase.allow_persistent boolean

Разрешено ли использовать постоянные соединения к Firebird/InterBase.

ibase.max_persistent integer

Максимальное количество постоянных соединений для процесса. Если данное ограничение будет превышено, то функция ibase_pconnect() будет возвращать непостоянные соединения.

ibase.max_links integer

Максимальное количество соединений с Firebird/InterBase на процесс, включая постоянные.

ibase.default_db string

База данных по умолчанию. Если вызывать ibase_[p]connect() без указания имени базы данных, то будет использовано это значение. Если данный параметр установлен и включен безопасный режим SQL, то будут разрешены соединения только с этой базой.

ibase.default_user string

Имя пользователя по умолчанию.

ibase.default_password string

Пароль по умолчанию.

ibase.default_charset string

Кодировка по умолчанию.

ibase.timestampformat string

ibase.dateformat string

ibase.timeformat string

Эти директивы используются для установки формата даты и времени. Данные форматы будут использоваться как при получении результирующего набора, содержащего поля соответствующих типов, так и при связывании значений с параметрами запроса.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Следующие константы можно задавать в функции ibase_trans() для определения поведения транзакций.

Флаги транзакций Firebird/InterBase
Константа | Описание
IBASE_DEFAULT | Настройки по умолчанию для новой транзакции. Это значение определяется клиентской библиотекой, которое в большинстве случаев равно IBASE_WRITE|IBASE_CONCURRENCY|IBASE_WAIT.
IBASE_READ | Начинает транзакцию в режиме только на чтение.
IBASE_WRITE | Начинает транзакцию в режиме чтения и записи.
IBASE_CONSISTENCY | Начинает транзакцию с уровнем изоляции 'consistency' (согласование). Это означает, что транзакция не может читать из таблиц, в которые вносятся изменения паралельными (конкурирующими) транзакциями.
IBASE_CONCURRENCY | Начинает транзакцию с уровнем изоляции 'concurrency' (или 'snapshot', 'моментальный снимок'). Это означает, что транзакция имеет доступ ко всем таблицам, но не может видеть изменения других транзакций после снимка.
IBASE_COMMITTED | Начинает транзакцию с уровнем изоляции 'read committed' (читать фиксированое). Этот флаг должен быть объединен с IBASE_REC_VERSION или IBASE_REC_NO_VERSION. Этот уровень изоляции позволяет получить доступ к изменениям, совершеными после начала транзакции. Если указан флаг IBASE_REC_NO_VERSION, только последняя версия изменений может быть прочитана. Если указан флаг IBASE_REC_VERSION, то можно читать изменения, находящиеся в очереди в параллельных транзакциях.
IBASE_WAIT | Флаг, указывающий, что транзакция должна ждать при возникновении конфликта транзакций.
IBASE_NOWAIT | Флаг, указывающий, что транзакция должна вернуть ошибку при возникновении конфликта транзакций.

Следующие константы можно задавать в функциях ibase_fetch_row(), ibase_fetch_assoc() или ibase_fetch_object(), для управления поведением извлечением данных.

Флаги извлечения Firebird/InterBase
Константа | Описание
IBASE_FETCH_BLOBS | Также можно использовать IBASE_TEXT для обеспечения обратной совместимости. Вынуждает извлекать объекты BLOB целиком, а не только их идентификаторы.
IBASE_FETCH_ARRAYS | Вынуждает извлекать массивы целиком, а не только их идентификаторы. Идентификаторы массивов можно использоваться только для операций вставки, так как на данный момент отсутствуют какие-либо другие функции для работы с ними.
IBASE_UNIXTIME | Вынуждает поля типа дата/время извлекаться не как строки, а как временные метки Unix (количество секунд, прошедших с 1 января 1970 00:00 UTC). Может вызвать проблемы на некоторых системах, если необходимо работать с более ранними датами.

Следующие константы используются для передачи в запросы и сервисные функции API
(ibase_server_info(), ibase_db_info(),
ibase_backup(), ibase_restore()
и ibase_maintain_db()). За подробностями обратитесь к
документации Firebird/InterBase.

IBASE_BKP_IGNORE_CHECKSUMS
IBASE_BKP_IGNORE_LIMBO
Опция для ibase_backup()
IBASE_BKP_METADATA_ONLY
Опция для ibase_backup()
IBASE_BKP_NO_GARBAGE_COLLECT
Опция для ibase_backup()
IBASE_BKP_OLD_DESCRIPTIONS
Опция для ibase_backup()
IBASE_BKP_NON_TRANSPORTABLE
Опция для ibase_backup()
IBASE_BKP_CONVERT
Опция для ibase_backup()
IBASE_RES_DEACTIVATE_IDX
Опция для ibase_restore()
IBASE_RES_NO_SHADOW
Опция для ibase_restore()
IBASE_RES_NO_VALIDITY
Опция для ibase_restore()
IBASE_RES_ONE_AT_A_TIME
Опция для ibase_restore()
IBASE_RES_REPLACE
IBASE_RES_CREATE
Опция для ibase_restore()
IBASE_RES_USE_ALL_SPACE
Опция для 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
Опция для ibase_maintain_db()
IBASE_STS_DATA_PAGES
IBASE_STS_DB_LOG
IBASE_STS_HDR_PAGES
IBASE_STS_IDX_PAGES
IBASE_STS_SYS_RELATIONS
Опция для ibase_db_info()
IBASE_SVC_SERVER_VERSION
Опция для ibase_server_info()
IBASE_SVC_IMPLEMENTATION
Опция для ibase_server_info()
IBASE_SVC_GET_ENV
Опция для ibase_server_info()
IBASE_SVC_GET_ENV_LOCK
IBASE_SVC_GET_ENV_MSG
IBASE_SVC_USER_DBPATH
IBASE_SVC_SVR_DB_INFO
IBASE_SVC_GET_USERS
Опция для ibase_server_info()


Функции Firebird/InterBase

Содержание

  • fbird_add_user — Псевдоним ibase_add_user
  • fbird_affected_rows — Псевдоним ibase_affected_rows
  • fbird_backup — Псевдоним ibase_backup
  • fbird_blob_add — Псевдоним ibase_blob_add
  • fbird_blob_cancel — Cancel creating blob
  • fbird_blob_close — Псевдоним ibase_blob_close
  • fbird_blob_create — Псевдоним ibase_blob_create
  • fbird_blob_echo — Псевдоним ibase_blob_echo
  • fbird_blob_get — Псевдоним ibase_blob_get
  • fbird_blob_import — Псевдоним ibase_blob_import
  • fbird_blob_info — Псевдоним ibase_blob_info
  • fbird_blob_open — Псевдоним ibase_blob_open
  • fbird_close — Псевдоним ibase_close
  • fbird_commit_ret — Псевдоним ibase_commit_ret
  • fbird_commit — Псевдоним ibase_commit
  • fbird_connect — Псевдоним ibase_connect
  • fbird_db_info — Псевдоним ibase_db_info
  • fbird_delete_user — Псевдоним ibase_delete_user
  • fbird_drop_db — Псевдоним ibase_drop_db
  • fbird_errcode — Псевдоним ibase_errcode
  • fbird_errmsg — Псевдоним ibase_errmsg
  • fbird_execute — Псевдоним ibase_execute
  • fbird_fetch_assoc — Псевдоним ibase_fetch_assoc
  • fbird_fetch_object — Псевдоним ibase_fetch_object
  • fbird_fetch_row — Псевдоним ibase_fetch_row
  • fbird_field_info — Псевдоним ibase_field_info
  • fbird_free_event_handler — Псевдоним ibase_free_event_handler
  • fbird_free_query — Псевдоним ibase_free_query
  • fbird_free_result — Псевдоним ibase_free_result
  • fbird_gen_id — Псевдоним ibase_gen_id
  • fbird_maintain_db — Псевдоним ibase_maintain_db
  • fbird_modify_user — Псевдоним ibase_modify_user
  • fbird_name_result — Псевдоним ibase_name_result
  • fbird_num_fields — Псевдоним ibase_num_fields
  • fbird_num_params — Псевдоним ibase_num_params
  • fbird_param_info — Псевдоним ibase_param_info
  • fbird_pconnect — Псевдоним ibase_pconnect
  • fbird_prepare — Псевдоним ibase_prepare
  • fbird_query — Псевдоним ibase_query
  • fbird_restore — Псевдоним ibase_restore
  • fbird_rollback_ret — Псевдоним ibase_rollback_ret
  • fbird_rollback — Псевдоним ibase_rollback
  • fbird_server_info — Псевдоним ibase_server_info
  • fbird_service_attach — Псевдоним ibase_service_attach
  • fbird_service_detach — Псевдоним ibase_service_detach
  • fbird_set_event_handler — Псевдоним ibase_set_event_handler
  • fbird_trans — Псевдоним ibase_trans
  • fbird_wait_event — Псевдоним ibase_wait_event
  • ibase_add_user — Добавляет пользователя в безопасную базу данных
  • ibase_affected_rows — Возвращает количество строк, на которые повлиял предыдущий запрос
  • ibase_backup — Инициирует задание резервного копирования в диспетчере служб и немедленно возвращает
  • ibase_blob_add — Добавляет данные во вновь созданный BLOB-объект
  • ibase_blob_cancel — Отменяет создания BLOB-объекта
  • ibase_blob_close — Закрывает BLOB-объект
  • ibase_blob_create — Создает новый BLOB-объект для заполнения данными
  • ibase_blob_echo — Выводит содержимое BLOB-объекта в браузер
  • ibase_blob_get — Получает количество байтов от открытого BLOB-объекта
  • ibase_blob_import — Создает BLOB-объект, копирует в него файл и закрывает его
  • ibase_blob_info — Возвращает длину BLOB-объекта и другую полезную информацию
  • ibase_blob_open — Открывает BLOB-объект для извлечения частей данных
  • ibase_close — Закрывает соединение с базой данных InterBase
  • ibase_commit_ret — Фиксирует транзакцию, не закрывая ее
  • ibase_commit — Фиксирует транзакцию
  • ibase_connect — Открывает соединение с базой данных
  • ibase_db_info — Запрашивает статистику базы данных
  • ibase_delete_user — Удаляет пользователя из безопасной базы данных
  • ibase_drop_db — Удаляет базу данных
  • ibase_errcode — Возвращает код ошибки
  • ibase_errmsg — Возвращает сообщение об ошибке
  • ibase_execute — Выполняет предварительно подготовленный запрос
  • ibase_fetch_assoc — Извлекает строку результата из запроса в виде ассоциативного массива
  • ibase_fetch_object — Получает объект из базы данных InterBase
  • ibase_fetch_row — Извлекает строку из базы данных InterBase
  • 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 — 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 — Регистрирует callback-функцию, которая будет вызываться при публикации событий
  • ibase_trans — Begin a transaction
  • ibase_wait_event — Ждем, пока событие будет опубликовано в базе данных


Псевдоним ibase_add_user

  • « Функции Firebird/InterBase
  • fbird_affected_rows »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_add_user

fbird_add_user

(PHP 5, PHP 7)

fbird_add_user — Псевдоним ibase_add_user()

Описание

Эта функция является псевдонимом: ibase_add_user().

Смотрите также

  • fbird_modify_user() - Псевдоним ibase_modify_user
  • fbird_delete_user() - Псевдоним ibase_delete_user


Псевдоним ibase_affected_rows

  • « fbird_add_user
  • fbird_backup »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_affected_rows

fbird_affected_rows

(PHP 5, PHP 7)

fbird_affected_rows — Псевдоним ibase_affected_rows()

Описание

Эта функция является псевдонимом: ibase_affected_rows().

Смотрите также

  • fbird_query() - Псевдоним ibase_query
  • fbird_execute() - Псевдоним ibase_execute


Псевдоним ibase_backup

  • « fbird_affected_rows
  • fbird_blob_add »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_backup

fbird_backup

(PHP 5, PHP 7)

fbird_backup — Псевдоним ibase_backup()

Описание

Эта функция является псевдонимом: ibase_backup().


Псевдоним ibase_blob_add

  • « fbird_backup
  • fbird_blob_cancel »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_blob_add

fbird_blob_add

(PHP 5, PHP 7)

fbird_blob_add — Псевдоним ibase_blob_add()

Описание

Эта функция является псевдонимом: ibase_blob_add().

Смотрите также

  • fbird_blob_cancel() - Cancel creating blob
  • fbird_blob_close() - Псевдоним ibase_blob_close
  • fbird_blob_create() - Псевдоним ibase_blob_create
  • fbird_blob_import() - Псевдоним ibase_blob_import


Cancel creating blob

  • « fbird_blob_add
  • fbird_blob_close »
  • PHP Manual
  • Функции Firebird/InterBase
  • Cancel creating blob

fbird_blob_cancel

(PHP 5, PHP 7)

fbird_blob_cancel — Cancel creating blob

Описание

fbird_blob_cancel ( resource $blob_handle ) : bool

This function will discard a BLOB if it has not yet been closed by fbird_blob_close().

Список параметров

blob_handle

A BLOB handle opened with fbird_blob_create().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fbird_blob_close() - Псевдоним ibase_blob_close
  • fbird_blob_create() - Псевдоним ibase_blob_create
  • fbird_blob_import() - Псевдоним ibase_blob_import


Псевдоним ibase_blob_close

  • « fbird_blob_cancel
  • fbird_blob_create »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_blob_close

fbird_blob_close

(PHP 5, PHP 7)

fbird_blob_close — Псевдоним ibase_blob_close()

Описание

Эта функция является псевдонимом: ibase_blob_close().

Смотрите также

  • fbird_blob_create() - Псевдоним ibase_blob_create
  • fbird_blob_cancel() - Cancel creating blob
  • fbird_blob_open() - Псевдоним ibase_blob_open
  • fbird_blob_import() - Псевдоним ibase_blob_import


Псевдоним ibase_blob_create

  • « fbird_blob_close
  • fbird_blob_echo »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_blob_create

fbird_blob_create

(PHP 5, PHP 7)

fbird_blob_create — Псевдоним ibase_blob_create()

Описание

Эта функция является псевдонимом: ibase_blob_create().

Смотрите также

  • fbird_blob_add() - Псевдоним ibase_blob_add
  • fbird_blob_cancel() - Cancel creating blob
  • fbird_blob_close() - Псевдоним ibase_blob_close
  • fbird_blob_import() - Псевдоним ibase_blob_import


Псевдоним ibase_blob_echo

  • « fbird_blob_create
  • fbird_blob_get »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_blob_echo

fbird_blob_echo

(PHP 5, PHP 7)

fbird_blob_echo — Псевдоним ibase_blob_echo()

Описание

Эта функция является псевдонимом: ibase_blob_echo().

Смотрите также

  • fbird_blob_open() - Псевдоним ibase_blob_open
  • fbird_blob_close() - Псевдоним ibase_blob_close
  • fbird_blob_get() - Псевдоним ibase_blob_get


Псевдоним ibase_blob_get

  • « fbird_blob_echo
  • fbird_blob_import »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_blob_get

fbird_blob_get

(PHP 5, PHP 7)

fbird_blob_get — Псевдоним ibase_blob_get()

Описание

Эта функция является псевдонимом: ibase_blob_get().

Смотрите также

  • fbird_blob_open() - Псевдоним ibase_blob_open
  • fbird_blob_close() - Псевдоним ibase_blob_close
  • fbird_blob_echo() - Псевдоним ibase_blob_echo


Псевдоним ibase_blob_import

  • « fbird_blob_get
  • fbird_blob_info »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_blob_import

fbird_blob_import

(PHP 5, PHP 7)

fbird_blob_import — Псевдоним ibase_blob_import()

Описание

Эта функция является псевдонимом: ibase_blob_import().

Смотрите также

  • fbird_blob_add() - Псевдоним ibase_blob_add
  • fbird_blob_cancel() - Cancel creating blob
  • fbird_blob_close() - Псевдоним ibase_blob_close
  • fbird_blob_create() - Псевдоним ibase_blob_create


Псевдоним ibase_blob_info

  • « fbird_blob_import
  • fbird_blob_open »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_blob_info

fbird_blob_info

(PHP 5, PHP 7)

fbird_blob_info — Псевдоним ibase_blob_info()

Описание

Эта функция является псевдонимом: ibase_blob_info().


Псевдоним ibase_blob_open

  • « fbird_blob_info
  • fbird_close »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_blob_open

fbird_blob_open

(PHP 5, PHP 7)

fbird_blob_open — Псевдоним ibase_blob_open()

Описание

Эта функция является псевдонимом: ibase_blob_open().

Смотрите также

  • fbird_blob_close() - Псевдоним ibase_blob_close
  • fbird_blob_echo() - Псевдоним ibase_blob_echo
  • fbird_blob_get() - Псевдоним ibase_blob_get


Псевдоним ibase_close

  • « fbird_blob_open
  • fbird_commit_ret »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_close

fbird_close

(PHP 5, PHP 7)

fbird_close — Псевдоним ibase_close()

Описание

Эта функция является псевдонимом: ibase_close().

Смотрите также

  • fbird_connect() - Псевдоним ibase_connect
  • fbird_pconnect() - Псевдоним ibase_pconnect


Псевдоним ibase_commit_ret

  • « fbird_close
  • fbird_commit »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_commit_ret

fbird_commit_ret

(PHP 5, PHP 7)

fbird_commit_ret — Псевдоним ibase_commit_ret()

Описание

Эта функция является псевдонимом: ibase_commit_ret().


Псевдоним ibase_commit

  • « fbird_commit_ret
  • fbird_connect »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_commit

fbird_commit

(PHP 5, PHP 7)

fbird_commit — Псевдоним ibase_commit()

Описание

Эта функция является псевдонимом: ibase_commit().


Псевдоним ibase_connect

  • « fbird_commit
  • fbird_db_info »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_connect

fbird_connect

(PHP 5, PHP 7)

fbird_connect — Псевдоним ibase_connect()

Описание

Эта функция является псевдонимом: ibase_connect().

Смотрите также

  • fbird_pconnect() - Псевдоним ibase_pconnect
  • fbird_close() - Псевдоним ibase_close


Псевдоним ibase_db_info

  • « fbird_connect
  • fbird_delete_user »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_db_info

fbird_db_info

(PHP 5, PHP 7)

fbird_db_info — Псевдоним ibase_db_info()

Описание

Эта функция является псевдонимом: ibase_db_info().


Псевдоним ibase_delete_user

  • « fbird_db_info
  • fbird_drop_db »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_delete_user

fbird_delete_user

(PHP 5, PHP 7)

fbird_delete_user — Псевдоним ibase_delete_user()

Описание

Эта функция является псевдонимом: ibase_delete_user().

Смотрите также

  • fbird_add_user() - Псевдоним ibase_add_user
  • fbird_modify_user() - Псевдоним ibase_modify_user


Псевдоним ibase_drop_db

  • « fbird_delete_user
  • fbird_errcode »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_drop_db

fbird_drop_db

(PHP 5, PHP 7)

fbird_drop_db — Псевдоним ibase_drop_db()

Описание

Эта функция является псевдонимом: ibase_drop_db().

Смотрите также

  • fbird_connect() - Псевдоним ibase_connect
  • fbird_pconnect() - Псевдоним ibase_pconnect


Псевдоним ibase_errcode

  • « fbird_drop_db
  • fbird_errmsg »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_errcode

fbird_errcode

(PHP 5, PHP 7)

fbird_errcode — Псевдоним ibase_errcode()

Описание

Эта функция является псевдонимом: ibase_errcode().

Смотрите также

  • fbird_errmsg() - Псевдоним ibase_errmsg


Псевдоним ibase_errmsg

  • « fbird_errcode
  • fbird_execute »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_errmsg

fbird_errmsg

(PHP 5, PHP 7)

fbird_errmsg — Псевдоним ibase_errmsg()

Описание

Эта функция является псевдонимом: ibase_errmsg().

Смотрите также

  • fbird_errcode() - Псевдоним ibase_errcode


Псевдоним ibase_execute

  • « fbird_errmsg
  • fbird_fetch_assoc »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_execute

fbird_execute

(PHP 5, PHP 7)

fbird_execute — Псевдоним ibase_execute()

Описание

Эта функция является псевдонимом: ibase_execute().

Смотрите также

  • fbird_query() - Псевдоним ibase_query


Псевдоним ibase_fetch_assoc

  • « fbird_execute
  • fbird_fetch_object »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_fetch_assoc

fbird_fetch_assoc

(PHP 5, PHP 7)

fbird_fetch_assoc — Псевдоним ibase_fetch_assoc()

Описание

Эта функция является псевдонимом: ibase_fetch_assoc().

Смотрите также

  • fbird_fetch_row() - Псевдоним ibase_fetch_row
  • fbird_fetch_object() - Псевдоним ibase_fetch_object


Псевдоним ibase_fetch_object

  • « fbird_fetch_assoc
  • fbird_fetch_row »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_fetch_object

fbird_fetch_object

(PHP 5, PHP 7)

fbird_fetch_object — Псевдоним ibase_fetch_object()

Описание

Эта функция является псевдонимом: ibase_fetch_object().

Смотрите также

  • fbird_fetch_row() - Псевдоним ibase_fetch_row
  • fbird_fetch_assoc() - Псевдоним ibase_fetch_assoc


Псевдоним ibase_fetch_row

  • « fbird_fetch_object
  • fbird_field_info »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_fetch_row

fbird_fetch_row

(PHP 5, PHP 7)

fbird_fetch_row — Псевдоним ibase_fetch_row()

Описание

Эта функция является псевдонимом: ibase_fetch_row().

Смотрите также

  • fbird_fetch_assoc() - Псевдоним ibase_fetch_assoc
  • fbird_fetch_object() - Псевдоним ibase_fetch_object


Псевдоним ibase_field_info

  • « fbird_fetch_row
  • fbird_free_event_handler »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_field_info

fbird_field_info

(PHP 5, PHP 7)

fbird_field_info — Псевдоним ibase_field_info()

Описание

Эта функция является псевдонимом: ibase_field_info().

Смотрите также

  • fbird_num_fields() - Псевдоним ibase_num_fields


Псевдоним ibase_free_event_handler

  • « fbird_field_info
  • fbird_free_query »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_free_event_handler

fbird_free_event_handler

(PHP 5, PHP 7)

fbird_free_event_handler — Псевдоним ibase_free_event_handler()

Описание

Эта функция является псевдонимом: ibase_free_event_handler().

Смотрите также

  • fbird_set_event_handler() - Псевдоним ibase_set_event_handler


Псевдоним ibase_free_query

  • « fbird_free_event_handler
  • fbird_free_result »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_free_query

fbird_free_query

(PHP 5, PHP 7)

fbird_free_query — Псевдоним ibase_free_query()

Описание

Эта функция является псевдонимом: ibase_free_query().


Псевдоним ibase_free_result

  • « fbird_free_query
  • fbird_gen_id »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_free_result

fbird_free_result

(PHP 5, PHP 7)

fbird_free_result — Псевдоним ibase_free_result()

Описание

Эта функция является псевдонимом: ibase_free_result().


Псевдоним ibase_gen_id

  • « fbird_free_result
  • fbird_maintain_db »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_gen_id

fbird_gen_id

(PHP 5, PHP 7)

fbird_gen_id — Псевдоним ibase_gen_id()

Описание

Эта функция является псевдонимом: ibase_gen_id().


Псевдоним ibase_maintain_db

  • « fbird_gen_id
  • fbird_modify_user »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_maintain_db

fbird_maintain_db

(PHP 5, PHP 7)

fbird_maintain_db — Псевдоним ibase_maintain_db()

Описание

Эта функция является псевдонимом: ibase_maintain_db().


Псевдоним ibase_modify_user

  • « fbird_maintain_db
  • fbird_name_result »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_modify_user

fbird_modify_user

(PHP 5, PHP 7)

fbird_modify_user — Псевдоним ibase_modify_user()

Описание

Эта функция является псевдонимом: ibase_modify_user().

Смотрите также

  • fbird_add_user() - Псевдоним ibase_add_user
  • fbird_delete_user() - Псевдоним ibase_delete_user


Псевдоним ibase_name_result

  • « fbird_modify_user
  • fbird_num_fields »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_name_result

fbird_name_result

(PHP 5, PHP 7)

fbird_name_result — Псевдоним ibase_name_result()

Описание

Эта функция является псевдонимом: ibase_name_result().

Смотрите также

  • fbird_prepare() - Псевдоним ibase_prepare
  • fbird_execute() - Псевдоним ibase_execute


Псевдоним ibase_num_fields

  • « fbird_name_result
  • fbird_num_params »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_num_fields

fbird_num_fields

(PHP 5, PHP 7)

fbird_num_fields — Псевдоним ibase_num_fields()

Описание

Эта функция является псевдонимом: ibase_num_fields().

Смотрите также

  • fbird_field_info() - Псевдоним ibase_field_info


Псевдоним ibase_num_params

  • « fbird_num_fields
  • fbird_param_info »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_num_params

fbird_num_params

(PHP 5, PHP 7)

fbird_num_params — Псевдоним ibase_num_params()

Описание

Эта функция является псевдонимом: ibase_num_params().

Смотрите также

  • fbird_prepare() - Псевдоним ibase_prepare
  • fbird_param_info() - Псевдоним ibase_param_info


Псевдоним ibase_param_info

  • « fbird_num_params
  • fbird_pconnect »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_param_info

fbird_param_info

(PHP 5, PHP 7)

fbird_param_info — Псевдоним ibase_param_info()

Описание

Эта функция является псевдонимом: ibase_param_info().

Смотрите также

  • fbird_field_info() - Псевдоним ibase_field_info
  • fbird_num_params() - Псевдоним ibase_num_params


Псевдоним ibase_pconnect

  • « fbird_param_info
  • fbird_prepare »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_pconnect

fbird_pconnect

(PHP 5, PHP 7)

fbird_pconnect — Псевдоним ibase_pconnect()

Описание

Эта функция является псевдонимом: ibase_pconnect().

Смотрите также

  • fbird_close() - Псевдоним ibase_close
  • fbird_connect() - Псевдоним ibase_connect


Псевдоним ibase_prepare

  • « fbird_pconnect
  • fbird_query »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_prepare

fbird_prepare

(PHP 5, PHP 7)

fbird_prepare — Псевдоним ibase_prepare()

Описание

Эта функция является псевдонимом: ibase_prepare().


Псевдоним ibase_query

  • « fbird_prepare
  • fbird_restore »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_query

fbird_query

(PHP 5, PHP 7)

fbird_query — Псевдоним ibase_query()

Описание

Эта функция является псевдонимом: ibase_query().

Смотрите также

  • fbird_errmsg() - Псевдоним ibase_errmsg
  • fbird_fetch_row() - Псевдоним ibase_fetch_row
  • fbird_fetch_object() - Псевдоним ibase_fetch_object
  • fbird_free_result() - Псевдоним ibase_free_result


Псевдоним ibase_restore

  • « fbird_query
  • fbird_rollback_ret »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_restore

fbird_restore

(PHP 5, PHP 7)

fbird_restore — Псевдоним ibase_restore()

Описание

Эта функция является псевдонимом: ibase_restore().


Псевдоним ibase_rollback_ret

  • « fbird_restore
  • fbird_rollback »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_rollback_ret

fbird_rollback_ret

(PHP 5, PHP 7)

fbird_rollback_ret — Псевдоним ibase_rollback_ret()

Описание

Эта функция является псевдонимом: ibase_rollback_ret().


Псевдоним ibase_rollback

  • « fbird_rollback_ret
  • fbird_server_info »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_rollback

fbird_rollback

(PHP 5, PHP 7)

fbird_rollback — Псевдоним ibase_rollback()

Описание

Эта функция является псевдонимом: ibase_rollback().


Псевдоним ibase_server_info

  • « fbird_rollback
  • fbird_service_attach »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_server_info

fbird_server_info

(PHP 5, PHP 7)

fbird_server_info — Псевдоним ibase_server_info()

Описание

Эта функция является псевдонимом: ibase_server_info().


Псевдоним ibase_service_attach

  • « fbird_server_info
  • fbird_service_detach »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_service_attach

fbird_service_attach

(PHP 5, PHP 7)

fbird_service_attach — Псевдоним ibase_service_attach()

Описание

Эта функция является псевдонимом: ibase_service_attach().


Псевдоним ibase_service_detach

  • « fbird_service_attach
  • fbird_set_event_handler »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_service_detach

fbird_service_detach

(PHP 5, PHP 7)

fbird_service_detach — Псевдоним ibase_service_detach()

Описание

Эта функция является псевдонимом: ibase_service_detach().


Псевдоним ibase_set_event_handler

  • « fbird_service_detach
  • fbird_trans »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_set_event_handler

fbird_set_event_handler

(PHP 5, PHP 7)

fbird_set_event_handler — Псевдоним ibase_set_event_handler()

Описание

Эта функция является псевдонимом: ibase_set_event_handler().

Смотрите также

  • fbird_free_event_handler() - Псевдоним ibase_free_event_handler
  • fbird_wait_event() - Псевдоним ibase_wait_event


Псевдоним ibase_trans

  • « fbird_set_event_handler
  • fbird_wait_event »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_trans

fbird_trans

(PHP 5, PHP 7)

fbird_trans — Псевдоним ibase_trans()

Описание

Эта функция является псевдонимом: ibase_trans().


Псевдоним ibase_wait_event

  • « fbird_trans
  • ibase_add_user »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_wait_event

fbird_wait_event

(PHP 5, PHP 7)

fbird_wait_event — Псевдоним ibase_wait_event()

Описание

Эта функция является псевдонимом: ibase_wait_event().

Смотрите также

  • fbird_set_event_handler() - Псевдоним ibase_set_event_handler
  • fbird_free_event_handler() - Псевдоним ibase_free_event_handler


Добавляет пользователя в безопасную базу данных

  • « fbird_wait_event
  • ibase_affected_rows »
  • PHP Manual
  • Функции Firebird/InterBase
  • Добавляет пользователя в безопасную базу данных

ibase_add_user

(PHP 5, PHP 7)

ibase_add_user — Добавляет пользователя в безопасную базу данных

Описание

ibase_add_user ( resource $service_handle , string $user_name , string $password [, string $first_name [, string $middle_name [, string $last_name ]]] ) : bool

Список параметров

service_handle

Дескриптор службы сервера базы данных.

user_name

Имя для входа нового пользователя базы данных.

password

Пароль нового пользователя.

first_name

Имя нового пользователя базы данных.

middle_name

Отчество нового пользователя базы данных.

last_name

Фамилия нового пользователя базы данных.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_modify_user() - Изменяет пользователя в безопасной базе данных
  • ibase_delete_user() - Удаляет пользователя из безопасной базы данных


Возвращает количество строк, на которые повлиял предыдущий запрос

  • « ibase_add_user
  • ibase_backup »
  • PHP Manual
  • Функции Firebird/InterBase
  • Возвращает количество строк, на которые повлиял предыдущий запрос

ibase_affected_rows

(PHP 5, PHP 7)

ibase_affected_rows — Возвращает количество строк, на которые повлиял предыдущий запрос

Описание

ibase_affected_rows ([ resource $link_identifier ] ) : int

Эта функция возвращает количество строк, на которые повлиял предыдущий запрос (INSERT, UPDATE или DELETE), который был выполнен из указанного контекста транзакции.

Список параметров

link_identifier

Контекст транзакции. Если link_identifier является ресурсом соединения, используется его транзакция по умолчанию.

Возвращаемые значения

Возвращает количество строк в виде целого числа.

Смотрите также

  • ibase_query() - Execute a query on an InterBase database
  • ibase_execute() - Выполняет предварительно подготовленный запрос


Инициирует задание резервного копирования в диспетчере служб и немедленно возвращает

  • « ibase_affected_rows
  • ibase_blob_add »
  • PHP Manual
  • Функции Firebird/InterBase
  • Инициирует задание резервного копирования в диспетчере служб и немедленно возвращает

ibase_backup

(PHP 5, PHP 7)

ibase_backup — Инициирует задание резервного копирования в диспетчере служб и немедленно возвращает

Описание

ibase_backup ( resource $service_handle , string $source_db , string $dest_file [, int $options = 0 [, bool $verbose = FALSE ]] ) : mixed

Эта функция передает аргументы на (удаленный) сервер базы данных. Там начинается новый процесс резервного копирования. Поэтому вы не получите никаких ответов.

Список параметров

service_handle

Ранее открытое соединение с сервером базы данных.

source_db

Абсолютный путь к файлу базы данных на сервере базы данных. Вы также можете использовать псевдоним базы данных.

dest_file

Путь к файлу резервной копии на сервере базы данных.

options

Дополнительные опции для передачи на сервер базы данных для резервного копирования. Параметр 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. Прочтите раздел о Предопределенные константы для получения дополнительной информации.

verbose

Поскольку процесс резервного копирования выполняется на сервере базы данных, у вас нет шансов получить его вывод. Этот аргумент бесполезен.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Поскольку процесс резервного копирования выполняется на (удаленном) сервере, эта функция просто передает ему аргументы. Пока аргументы корректны, вы не получите FALSE.

Примеры

Пример #1 Пример использования ibase_backup()

<?php

// Соединение к серверу базы данных по IP-адресу и порту
$service = ibase_service_attach ('10.1.11.200/3050', 'sysdba', 'masterkey');

// Запуск процесса резервного копирования на сервере базы данных
// Резервное копирование базы данных сотрудников, используя полный путь к /srv/backup/employees.fbk
// Не используйте никаких специальных аргументов
ibase_backup($service, '/srv/firebird/employees.fdb', '/srv/backup/employees.fbk');

// Освобождение подключенного соединения
ibase_service_detach ($service);
?>

Пример #2 Пример использования ibase_backup() с аргументами

<?php

// Подключиться к серверу базы данных по имени и порту по умолчанию
$service = ibase_service_attach ('fb-server.contoso.local', 'sysdba', 'masterkey');

// Запуск процесс резервного копирования на сервере базы данных
// Резервное копирование базы данных сотрудников с использованием псевдонима в /srv/backup/employees.fbk.
// Резервное копирование только метаданных. Не создавайте переносную резервную копию.
ibase_backup($service, 'employees.fdb', '/srv/backup/employees.fbk', IBASE_BKP_METADATA_ONLY | IBASE_BKP_NON_TRANSPORTABLE);

// Освобождение подключенного соединения
ibase_service_detach ($service);
?>

Смотрите также

  • ibase_restore() - Initiates a restore task in the service manager and returns immediately


Добавляет данные во вновь созданный BLOB-объект

  • « ibase_backup
  • ibase_blob_cancel »
  • PHP Manual
  • Функции Firebird/InterBase
  • Добавляет данные во вновь созданный BLOB-объект

ibase_blob_add

(PHP 5, PHP 7)

ibase_blob_add — Добавляет данные во вновь созданный BLOB-объект

Описание

ibase_blob_add ( resource $blob_handle , string $data ) : void

ibase_blob_add() добавляет данные в BLOB-объект, созданный с помощью ibase_blob_create().

Список параметров

blob_handle

Дескриптор BLOB-объекта, открытого с помощью ibase_blob_create().

data

Данные для добавления.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ibase_blob_cancel() - Отменяет создания BLOB-объекта
  • ibase_blob_close() - Закрывает BLOB-объект
  • ibase_blob_create() - Создает новый BLOB-объект для заполнения данными
  • ibase_blob_import() - Создает BLOB-объект, копирует в него файл и закрывает его


Отменяет создания BLOB-объекта

  • « ibase_blob_add
  • ibase_blob_close »
  • PHP Manual
  • Функции Firebird/InterBase
  • Отменяет создания BLOB-объекта

ibase_blob_cancel

(PHP 5, PHP 7)

ibase_blob_cancel — Отменяет создания BLOB-объекта

Описание

ibase_blob_cancel ( resource $blob_handle ) : bool

Эта функция отбрасывает BLOB-объект, если он еще не был закрыт с помощью ibase_blob_close().

Список параметров

blob_handle

Дескриптор BLOB-объекта, открытый с помощью ibase_blob_create().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_blob_close() - Закрывает BLOB-объект
  • ibase_blob_create() - Создает новый BLOB-объект для заполнения данными
  • ibase_blob_import() - Создает BLOB-объект, копирует в него файл и закрывает его


Закрывает BLOB-объект

  • « ibase_blob_cancel
  • ibase_blob_create »
  • PHP Manual
  • Функции Firebird/InterBase
  • Закрывает BLOB-объект

ibase_blob_close

(PHP 5, PHP 7)

ibase_blob_close — Закрывает BLOB-объект

Описание

ibase_blob_close ( resource $blob_handle ) : mixed

Эта функция закрывает BLOB-объект, открытый для чтения с помощью ibase_blob_open() или ibase_blob_create().

Список параметров

blob_handle

BLOB-объект, открытый с помощью ibase_blob_create() или ibase_blob_open().

Возвращаемые значения

Если BLOB-объект читался, функция возвращает TRUE в случае успешного выполнения, если BLOB записывался, функция возвращает строку, содержащую идентификатор BLOB-объекта, который был назначен ей базой данных. В случае неудачи функция возвращает FALSE.

Смотрите также

  • ibase_blob_cancel() - Отменяет создания BLOB-объекта
  • ibase_blob_open() - Открывает BLOB-объект для извлечения частей данных


Создает новый BLOB-объект для заполнения данными

  • « ibase_blob_close
  • ibase_blob_echo »
  • PHP Manual
  • Функции Firebird/InterBase
  • Создает новый BLOB-объект для заполнения данными

ibase_blob_create

(PHP 5, PHP 7)

ibase_blob_create — Создает новый BLOB-объект для заполнения данными

Описание

ibase_blob_create ([ resource $link_identifier = NULL ] ) : resource

ibase_blob_create() создает новый BLOB-объект для заполнения данными.

Список параметров

link_identifier

Идентификатор ссылки InterBase. Если не указано, предполагается последняя открытая ссылка.

Возвращаемые значения

Возвращает дескриптор BLOB-объекта для последующего использования с ibase_blob_add() или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_blob_add() - Добавляет данные во вновь созданный BLOB-объект
  • ibase_blob_cancel() - Отменяет создания BLOB-объекта
  • ibase_blob_close() - Закрывает BLOB-объект
  • ibase_blob_import() - Создает BLOB-объект, копирует в него файл и закрывает его


Выводит содержимое BLOB-объекта в браузер

  • « ibase_blob_create
  • ibase_blob_get »
  • PHP Manual
  • Функции Firebird/InterBase
  • Выводит содержимое BLOB-объекта в браузер

ibase_blob_echo

(PHP 5, PHP 7)

ibase_blob_echo — Выводит содержимое BLOB-объекта в браузер

Описание

ibase_blob_echo ( string $blob_id ) : bool
ibase_blob_echo ( resource $link_identifier , string $blob_id ) : bool

Функция открывает BLOB-объект для чтения и отправляет его содержимое на стандартный вывод (в большинстве случаев - браузер).

Список параметров

link_identifier

Идентификатор ссылки InterBase. Если не указан, предполагается последняя открытая ссылка.

blob_id

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_blob_open() - Открывает BLOB-объект для извлечения частей данных
  • ibase_blob_close() - Закрывает BLOB-объект
  • ibase_blob_get() - Получает количество байтов от открытого BLOB-объекта


Получает количество байтов от открытого BLOB-объекта

  • « ibase_blob_echo
  • ibase_blob_import »
  • PHP Manual
  • Функции Firebird/InterBase
  • Получает количество байтов от открытого BLOB-объекта

ibase_blob_get

(PHP 5, PHP 7)

ibase_blob_get — Получает количество байтов от открытого BLOB-объекта

Описание

ibase_blob_get ( resource $blob_handle , int $len ) : string

Функция возвращает не более len байт из BLOB-объекта, который был открыт для чтения с помощью ibase_blob_open().

Замечание:

Невозможно прочитать из BLOB-объекта, который был открыт для записи с помощью ibase_blob_create().

Список параметров

blob_handle

BLOB-объект, открытый с помощью ibase_blob_open().

len

Размер возвращаемых данных.

Возвращаемые значения

Возвращает не более len байт из BLOB-объекта или FALSE, при ошибке.

Примеры

Пример #1 Пример использования ibase_blob_get()

<?php
$result    = ibase_query("SELECT blob_value FROM table");
$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]);
?>
Хотя этот пример делает не больше, чем 'ibase_blob_echo($data->BLOB_VALUE)', он показывает, как получить информацию в $variable для дальнейших манипуляций.

Смотрите также

  • ibase_blob_open() - Открывает BLOB-объект для извлечения частей данных
  • ibase_blob_close() - Закрывает BLOB-объект
  • ibase_blob_echo() - Выводит содержимое BLOB-объекта в браузер


Создает BLOB-объект, копирует в него файл и закрывает его

  • « ibase_blob_get
  • ibase_blob_info »
  • PHP Manual
  • Функции Firebird/InterBase
  • Создает BLOB-объект, копирует в него файл и закрывает его

ibase_blob_import

(PHP 5, PHP 7)

ibase_blob_import — Создает BLOB-объект, копирует в него файл и закрывает его

Описание

ibase_blob_import ( resource $link_identifier , resource $file_handle ) : string
ibase_blob_import ( resource $file_handle ) : string

Функция создает BLOB-объект, считывает в него весь файл, закрывает его и возвращает назначенный идентификатор BLOB-объекта.

Список параметров

link_identifier

Идентификатор ссылки InterBase. Если не указан, предполагается последняя открытая ссылка.

file_handle

Дескриптор файла - возвращаемый функцией fopen().

Возвращаемые значения

Возвращает идентификатор BLOB-объекта в случае успешного выполнения, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования ibase_blob_import()

<?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)) {
        // импорт не удался
    } else {
        $query = "INSERT INTO foo (name, data) VALUES ('$filename', ?)";
        $prepared = ibase_prepare($dbh, $query);
        if (!ibase_execute($prepared, $blob)) {
            // запись не удалась
        }
    }
} else {
    // невозможно открыть файл данных
}
?>

Смотрите также

  • ibase_blob_add() - Добавляет данные во вновь созданный BLOB-объект
  • ibase_blob_cancel() - Отменяет создания BLOB-объекта
  • ibase_blob_close() - Закрывает BLOB-объект
  • ibase_blob_create() - Создает новый BLOB-объект для заполнения данными


Возвращает длину BLOB-объекта и другую полезную информацию

  • « ibase_blob_import
  • ibase_blob_open »
  • PHP Manual
  • Функции Firebird/InterBase
  • Возвращает длину BLOB-объекта и другую полезную информацию

ibase_blob_info

(PHP 5, PHP 7)

ibase_blob_info — Возвращает длину BLOB-объекта и другую полезную информацию

Описание

ibase_blob_info ( resource $link_identifier , string $blob_id ) : array
ibase_blob_info ( string $blob_id ) : array

Возвращает длину BLOB-объекта и другую полезную информацию.

Список параметров

link_identifier

Идентификатор ссылки InterBase. Если не указан, предполагается последняя открытая ссылка.

blob_id

Идентификатор BLOB-объекта.

Возвращаемые значения

Возвращает массив, содержащий информацию о BLOB-объекте. Возвращаемая информация состоит из длины BLOB-объекта, количества содержащихся в нем сегментов, размера самого большого сегмента и того, является ли он BLOB-потоком или сегментированным BLOB-объектом.


Открывает BLOB-объект для извлечения частей данных

  • « ibase_blob_info
  • ibase_close »
  • PHP Manual
  • Функции Firebird/InterBase
  • Открывает BLOB-объект для извлечения частей данных

ibase_blob_open

(PHP 5, PHP 7)

ibase_blob_open — Открывает BLOB-объект для извлечения частей данных

Описание

ibase_blob_open ( resource $link_identifier , string $blob_id ) : resource
ibase_blob_open ( string $blob_id ) : resource

Открывает существующий BLOB-объект для чтения.

Список параметров

link_identifier

Идентификатор ссылки InterBase. Если не указан, предполагается последняя открытая ссылка.

blob_id

Идентификатор BLOB-объекта.

Возвращаемые значения

Возвращает дескриптор BLOB-объекта для последующего использования с помощью ibase_blob_get() или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_blob_close() - Закрывает BLOB-объект
  • ibase_blob_echo() - Выводит содержимое BLOB-объекта в браузер
  • ibase_blob_get() - Получает количество байтов от открытого BLOB-объекта


Закрывает соединение с базой данных InterBase

  • « ibase_blob_open
  • ibase_commit_ret »
  • PHP Manual
  • Функции Firebird/InterBase
  • Закрывает соединение с базой данных InterBase

ibase_close

(PHP 5, PHP 7)

ibase_close — Закрывает соединение с базой данных InterBase

Описание

ibase_close ([ resource $connection_id = NULL ] ) : bool

Закрывает ссылку на базу данных InterBase, связанную с идентификатором соединения, полученным с помощью ibase_connect(). Транзакция по умолчанию для ссылки зафиксирована, остальные транзакции отменены.

Список параметров

connection_id

Идентификатор ссылки InterBase, полученный с помощью ibase_connect(). Если не указан, предполагается последняя открытая ссылка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_connect() - Открывает соединение с базой данных
  • ibase_pconnect() - Open a persistent connection to an InterBase database


Фиксирует транзакцию, не закрывая ее

  • « ibase_close
  • ibase_commit »
  • PHP Manual
  • Функции Firebird/InterBase
  • Фиксирует транзакцию, не закрывая ее

ibase_commit_ret

(PHP 5, PHP 7)

ibase_commit_ret — Фиксирует транзакцию, не закрывая ее

Описание

ibase_commit_ret ([ resource $link_or_trans_identifier = NULL ] ) : bool

Фиксирует транзакцию, не закрывая ее.

Список параметров

link_or_trans_identifier

Если вызывается без аргумента, функция фиксирует транзакцию по умолчанию для ссылки по умолчанию. Если аргумент - идентификатор соединения, транзакция по умолчанию соответствующего соединения будет зафиксирована. Если аргумент - идентификатор транзакции, соответствующая транзакция будет зафиксирована. Контекст транзакции будет сохранен, поэтому операторы, выполненные из этой транзакции, не будут признаны недействительными.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Фиксирует транзакцию

  • « ibase_commit_ret
  • ibase_connect »
  • PHP Manual
  • Функции Firebird/InterBase
  • Фиксирует транзакцию

ibase_commit

(PHP 5, PHP 7)

ibase_commit — Фиксирует транзакцию

Описание

ibase_commit ([ resource $link_or_trans_identifier = NULL ] ) : bool

Фиксирует транзакцию.

Список параметров

link_or_trans_identifier

Если вызывается без аргумента, функция фиксирует транзакцию по умолчанию для ссылки по умолчанию. Если аргумент - идентификатор соединения, транзакция по умолчанию соответствующего соединения будет зафиксирована. Если аргумент - идентификатор транзакции, соответствующая транзакция будет зафиксирована.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Открывает соединение с базой данных

  • « ibase_commit
  • ibase_db_info »
  • PHP Manual
  • Функции Firebird/InterBase
  • Открывает соединение с базой данных

ibase_connect

(PHP 5, PHP 7)

ibase_connect — Открывает соединение с базой данных

Описание

ibase_connect ([ string $database [, string $username [, string $password [, string $charset [, int $buffers [, int $dialect [, string $role [, int $sync ]]]]]]]] ) : resource

Устанавливает соединение с сервером Firebird/InterBase.

В случае повторного вызова ibase_connect() с теми же аргументами новая ссылка не будет установлена, вместо этого будет возвращен идентификатор уже открытой ссылки. Ссылка на сервер будет закрыта, как только завершится выполнение скрипта, если только она не была закрыта ранее явным вызовом ibase_close().

Список параметров

database

Аргумент database должен быть корректным путем к файлу базы данных на сервере, на котором он находится. Если сервер не является локальным, перед ним должно стоять префикс 'hostname:' (TCP / IP), 'hostname/port:' (TCP/IP с сервером interbase на настраиваемом порту TCP), '//hostname/' (NetBEUI), в зависимости от используемого протокола соединения.

username

Имя пользователя. Может быть установлено с помощью директивы ibase.default_user php.ini.

password

Пароль для username. Может быть установлен с помощью директивы ibase.default_password php.ini.

charset

charset является набором символов по умолчанию для базы данных.

buffers

buffers - это количество буферов базы данных, выделяемых для кэша на стороне сервера. Если 0 или не указано, сервер выбирает свой собственный по умолчанию.

dialect

dialect выбирает диалект SQL по умолчанию для любого оператора, выполняемого в соединении, по умолчанию он соответствует максимальному из поддерживаемых клиентских библиотек.

role

Функционально только с InterBase 5 и выше.

sync

Возвращаемые значения

Возвращает идентификатор ссылки Firebird/InterBase в случае успешного выполнения или FALSE в случае ошибки.

Ошибки

Если вы получите какую-то ошибку, например "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (происходит, когда вы пытаетесь использовать некоторые символы с ударениями), при использовании этого и после ibase_query() вы должны установить набор символов (например, ISO8859_1 или ваш текущий набор символов).

Примеры

Пример #1 Пример использования ibase_connect()

<?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);
?>

Смотрите также

  • ibase_pconnect() - Open a persistent connection to an InterBase database
  • ibase_close() - Закрывает соединение с базой данных InterBase


Запрашивает статистику базы данных

  • « ibase_connect
  • ibase_delete_user »
  • PHP Manual
  • Функции Firebird/InterBase
  • Запрашивает статистику базы данных

ibase_db_info

(PHP 5, PHP 7)

ibase_db_info — Запрашивает статистику базы данных

Описание

ibase_db_info ( resource $service_handle , string $db , int $action [, int $argument = 0 ] ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Удаляет пользователя из безопасной базы данных

  • « ibase_db_info
  • ibase_drop_db »
  • PHP Manual
  • Функции Firebird/InterBase
  • Удаляет пользователя из безопасной базы данных

ibase_delete_user

(PHP 5, PHP 7)

ibase_delete_user — Удаляет пользователя из безопасной базы данных

Описание

ibase_delete_user ( resource $service_handle , string $user_name ) : bool

Список параметров

service_handle

Дескриптор службы сервера базы данных.

user_name

Имя пользователя, которого вы хотите удалить из базы данных.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_add_user() - Добавляет пользователя в безопасную базу данных
  • ibase_modify_user() - Изменяет пользователя в безопасной базе данных


Удаляет базу данных

  • « ibase_delete_user
  • ibase_errcode »
  • PHP Manual
  • Функции Firebird/InterBase
  • Удаляет базу данных

ibase_drop_db

(PHP 5, PHP 7)

ibase_drop_db — Удаляет базу данных

Описание

ibase_drop_db ([ resource $connection = NULL ] ) : bool

Функция удаляет базу данных, которая была открыта либо с помощью ibase_connect(), либо ibase_pconnect(). База данных закрывается и удаляется с сервера.

Список параметров

connection

Идентификатор ссылки InterBase. Если не указан, предполагается последняя открытая ссылка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_connect() - Открывает соединение с базой данных
  • ibase_pconnect() - Open a persistent connection to an InterBase database


Возвращает код ошибки

  • « ibase_drop_db
  • ibase_errmsg »
  • PHP Manual
  • Функции Firebird/InterBase
  • Возвращает код ошибки

ibase_errcode

(PHP 5, PHP 7)

ibase_errcode — Возвращает код ошибки

Описание

ibase_errcode ( void ) : int

Возвращает код ошибки, полученный в результате последнего вызова функции InterBase.

Возвращаемые значения

Возвращает код ошибки в виде целого числа или FALSE, если ошибки не произошло.

Смотрите также

  • ibase_errmsg() - Возвращает сообщение об ошибке


Возвращает сообщение об ошибке

  • « ibase_errcode
  • ibase_execute »
  • PHP Manual
  • Функции Firebird/InterBase
  • Возвращает сообщение об ошибке

ibase_errmsg

(PHP 5, PHP 7)

ibase_errmsg — Возвращает сообщение об ошибке

Описание

ibase_errmsg ( void ) : string

Возвращает сообщение об ошибке, полученное в результате последнего вызова функции InterBase.

Возвращаемые значения

Возвращает сообщение об ошибке в виде строки или FALSE если ошибки не произошло.

Смотрите также

  • ibase_errcode() - Возвращает код ошибки


Выполняет предварительно подготовленный запрос

  • « ibase_errmsg
  • ibase_fetch_assoc »
  • PHP Manual
  • Функции Firebird/InterBase
  • Выполняет предварительно подготовленный запрос

ibase_execute

(PHP 5, PHP 7)

ibase_execute — Выполняет предварительно подготовленный запрос

Описание

ibase_execute ( resource $query [, mixed $... ] ) : resource

Выполняет запрос, подготовленный с помощью ibase_prepare().

Это намного эффективнее, чем использование ibase_query(), если вы повторяете один и тот же тип запроса несколько раз, изменяя только некоторые параметры.

Список параметров

query

Запрос InterBase, подготовленный с помощью ibase_prepare().

...

Возвращаемые значения

Если запрос вызывает ошибку, возвращает FALSE. Если запрос выполнен успешно, и есть (возможно пустой) набор результатов (как при запросе SELECT), возвращает идентификатор результата. Если запрос выполнен успешно и результатов не было, возвращается TRUE.

Замечание:

Функция возвращает количество строк, затронутых запросом (если > 0 и применимо к типу оператора). Если запрос выполнен успешно, но не затронул ни одну строку (например, UPDATE несуществующей записи), вернет TRUE.

Примеры

Пример #1 Пример использования ibase_execute()

<?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);
}

?>

Смотрите также

  • ibase_query() - Execute a query on an InterBase database


Извлекает строку результата из запроса в виде ассоциативного массива

  • « ibase_execute
  • ibase_fetch_object »
  • PHP Manual
  • Функции Firebird/InterBase
  • Извлекает строку результата из запроса в виде ассоциативного массива

ibase_fetch_assoc

(PHP 5, PHP 7)

ibase_fetch_assoc — Извлекает строку результата из запроса в виде ассоциативного массива

Описание

ibase_fetch_assoc ( resource $result [, int $fetch_flag = 0 ] ) : array

Извлекает строку результата из запроса в виде ассоциативного массива

ibase_fetch_assoc() извлекает одну строку данных из результата. Если два или более столбца результата имеют одинаковые наименования полей, последний столбец будет иметь приоритет. Чтобы получить доступ к другим столбцам с тем же именем, вам нужно либо получить доступ к результату с помощью числовых индексов функцией ibase_fetch_row(), либо использовать псевдонимы в своем запросе.

Список параметров

result

Дескриптор результата.

fetch_flag

fetch_flag представляет собой комбинацию констант IBASE_TEXT и IBASE_UNIXTIME ORed. Передача IBASE_TEXT заставит функцию возвращать содержимое BLOB-объектов вместо идентификаторов BLOB-объектов. Передача IBASE_UNIXTIME заставит функцию возвращать значения даты/времени как метки времени Unix, а не как отформатированные строки.

Возвращаемые значения

Возвращает ассоциативный массив, соответствующий выбранной строке. Последующие вызовы вернут следующую строку в наборе результатов или FALSE, если строк больше нет.

Смотрите также

  • ibase_fetch_row() - Извлекает строку из базы данных InterBase
  • ibase_fetch_object() - Получает объект из базы данных InterBase


Получает объект из базы данных InterBase

  • « ibase_fetch_assoc
  • ibase_fetch_row »
  • PHP Manual
  • Функции Firebird/InterBase
  • Получает объект из базы данных InterBase

ibase_fetch_object

(PHP 5, PHP 7)

ibase_fetch_object — Получает объект из базы данных InterBase

Описание

ibase_fetch_object ( resource $result_id [, int $fetch_flag = 0 ] ) : object

Извлекает строку как псевдообъект из заданного идентификатора результата.

Последующие вызовы ibase_fetch_object() вернут следующую строку в наборе результатов.

Список параметров

result_id

Идентификатор результата InterBase, полученный с помощью ibase_query() или ibase_execute().

fetch_flag

fetch_flag представляет собой комбинацию констант IBASE_TEXT и IBASE_UNIXTIME ORed. Передача IBASE_TEXT заставит функцию возвращать содержимое BLOB-объектов вместо идентификаторов BLOB-объектов. Передача IBASE_UNIXTIME заставит функцию возвращать значения даты/времени как метки времени Unix, а не как отформатированные строки.

Возвращаемые значения

Возвращает объект с информацией о строке или FALSE, если строк больше нет.

Примеры

Пример #1 Пример использования ibase_fetch_object()

<?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);
?>

Смотрите также

  • ibase_fetch_row() - Извлекает строку из базы данных InterBase
  • ibase_fetch_assoc() - Извлекает строку результата из запроса в виде ассоциативного массива


Извлекает строку из базы данных InterBase

  • « ibase_fetch_object
  • ibase_field_info »
  • PHP Manual
  • Функции Firebird/InterBase
  • Извлекает строку из базы данных InterBase

ibase_fetch_row

(PHP 5, PHP 7)

ibase_fetch_row — Извлекает строку из базы данных InterBase

Описание

ibase_fetch_row ( resource $result_identifier [, int $fetch_flag = 0 ] ) : array

ibase_fetch_row() извлекает одну строку данных из данного набора результатов.

Последующие вызовы ibase_fetch_row() вернут следующую строку в наборе результатов или FALSE, если строк больше нет.

Список параметров

result_identifier

Идентификатор результата InterBase.

fetch_flag

fetch_flag представляет собой комбинацию констант IBASE_TEXT и IBASE_UNIXTIME ORed. Передача IBASE_TEXT заставит функцию возвращать содержимое BLOB-объектов вместо идентификаторов BLOB-объектов. Передача IBASE_UNIXTIME заставит функцию возвращать значения даты/времени как метки времени Unix, а не как отформатированные строки.

Возвращаемые значения

Возвращает массив, соответствующий выбранной строке, или FALSE, если строк больше нет. Каждый столбец результата сохраняется в смещении массива, начиная со смещения 0.

Смотрите также

  • ibase_fetch_assoc() - Извлекает строку результата из запроса в виде ассоциативного массива
  • ibase_fetch_object() - Получает объект из базы данных InterBase


Получает информацию о поле

  • « ibase_fetch_row
  • ibase_free_event_handler »
  • PHP Manual
  • Функции Firebird/InterBase
  • Получает информацию о поле

ibase_field_info

(PHP 5, PHP 7)

ibase_field_info — Получает информацию о поле

Описание

ibase_field_info ( resource $result , int $field_number ) : array

Возвращает массив с информацией о поле после выполнения запроса select.

Список параметров

result

Идентификатор результата InterBase.

field_number

Смещение поля.

Возвращаемые значения

Возвращает массив со следующими ключами: name, alias, relation, length и type.

Примеры

Пример #1 Пример использования ibase_field_info()

<?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 "Имя: ". $col_info['name']. "\n";
    echo "Псевдоним: ". $col_info['alias']. "\n";
    echo "Связь: ". $col_info['relation']. "\n";
    echo "Длина: ". $col_info['length']. "\n";
    echo "Тип: ". $col_info['type']. "\n";
}
?>

Смотрите также

  • ibase_num_fields() - Get the number of fields in a result set


Отменяет зарегистрированный обработчик события

  • « ibase_field_info
  • ibase_free_query »
  • PHP Manual
  • Функции Firebird/InterBase
  • Отменяет зарегистрированный обработчик события

ibase_free_event_handler

(PHP 5, PHP 7)

ibase_free_event_handler — Отменяет зарегистрированный обработчик события

Описание

ibase_free_event_handler ( resource $event ) : bool

Функция отменяет, зарегистрированный обработчик события, указанный в event. Callback-функция больше не будет вызываться для событий, для которых она была зарегистрирована.

Список параметров

event

Ресурс события, созданный ibase_set_event_handler().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_set_event_handler() - Регистрирует callback-функцию, которая будет вызываться при публикации событий


Освобождает память, выделенную на подготовку запроса

  • « ibase_free_event_handler
  • ibase_free_result »
  • PHP Manual
  • Функции Firebird/InterBase
  • Освобождает память, выделенную на подготовку запроса

ibase_free_query

(PHP 5, PHP 7)

ibase_free_query — Освобождает память, выделенную на подготовку запроса

Описание

ibase_free_query ( resource $query ) : bool

Освобождает подготовленный запрос.

Список параметров

query

Запрос, подготовленный с помощью ibase_prepare().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Освобождает набор результатов

  • « ibase_free_query
  • ibase_gen_id »
  • PHP Manual
  • Функции Firebird/InterBase
  • Освобождает набор результатов

ibase_free_result

(PHP 5, PHP 7)

ibase_free_result — Освобождает набор результатов

Описание

ibase_free_result ( resource $result_identifier ) : bool

Освобождает набор результатов.

Список параметров

result_identifier

Набор результатов, созданных с помощью ibase_query() или ibase_execute().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Увеличивает указанный генератор и возвращает его новое значение

  • « ibase_free_result
  • ibase_maintain_db »
  • PHP Manual
  • Функции Firebird/InterBase
  • Увеличивает указанный генератор и возвращает его новое значение

ibase_gen_id

(PHP 5, PHP 7)

ibase_gen_id — Увеличивает указанный генератор и возвращает его новое значение

Описание

ibase_gen_id ( string $generator [, int $increment = 1 [, resource $link_identifier = NULL ]] ) : mixed
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает новое значение генератора в виде целого числа или строки, если значение слишком большое.


Выполняет команду обслуживания на сервере базы данных

  • « ibase_gen_id
  • ibase_modify_user »
  • PHP Manual
  • Функции Firebird/InterBase
  • Выполняет команду обслуживания на сервере базы данных

ibase_maintain_db

(PHP 5, PHP 7)

ibase_maintain_db — Выполняет команду обслуживания на сервере базы данных

Описание

ibase_maintain_db ( resource $service_handle , string $db , int $action [, int $argument = 0 ] ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Изменяет пользователя в безопасной базе данных

  • « ibase_maintain_db
  • ibase_name_result »
  • PHP Manual
  • Функции Firebird/InterBase
  • Изменяет пользователя в безопасной базе данных

ibase_modify_user

(PHP 5, PHP 7)

ibase_modify_user — Изменяет пользователя в безопасной базе данных

Описание

ibase_modify_user ( resource $service_handle , string $user_name , string $password [, string $first_name [, string $middle_name [, string $last_name ]]] ) : bool

Список параметров

service_handle

Дескриптор службы сервера базы данных.

user_name

Имя пользователя базы данных для изменения.

password

Новый пароль пользователя.

first_name

Новое имя пользователя.

middle_name

Новое отчество пользователя.

last_name

Новая фамилия пользователя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_add_user() - Добавляет пользователя в безопасную базу данных
  • ibase_delete_user() - Удаляет пользователя из безопасной базы данных


Присваивает имя набору результатов

  • « ibase_modify_user
  • ibase_num_fields »
  • PHP Manual
  • Функции Firebird/InterBase
  • Присваивает имя набору результатов

ibase_name_result

(PHP 5, PHP 7)

ibase_name_result — Присваивает имя набору результатов

Описание

ibase_name_result ( resource $result , string $name ) : bool

Функция присваивает имя набору результатов. Имя может быть использовано позже в запросах UPDATE|DELETE ... WHERE CURRENT OF name.

Список параметров

result

Набор результатов InterBase.

name

Имя для назначения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ibase_name_result()

<?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);
}
?>

Смотрите также

  • ibase_prepare() - Prepare a query for later binding of parameter placeholders and execution
  • ibase_execute() - Выполняет предварительно подготовленный запрос


Get the number of fields in a result set

  • « ibase_name_result
  • ibase_num_params »
  • PHP Manual
  • Функции Firebird/InterBase
  • Get the number of fields in a result set

ibase_num_fields

(PHP 5, PHP 7)

ibase_num_fields — Get the number of fields in a result set

Описание

ibase_num_fields ( resource $result_id ) : int

Get the number of fields in a result set.

Список параметров

result_id

An InterBase result identifier.

Возвращаемые значения

Returns the number of fields as an integer.

Примеры

Пример #1 ibase_num_fields() example

<?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";
}
?>

Смотрите также

  • ibase_field_info() - Получает информацию о поле


Return the number of parameters in a prepared query

  • « ibase_num_fields
  • ibase_param_info »
  • PHP Manual
  • Функции Firebird/InterBase
  • Return the number of parameters in a prepared query

ibase_num_params

(PHP 5, PHP 7)

ibase_num_params — Return the number of parameters in a prepared query

Описание

ibase_num_params ( resource $query ) : int

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().

Список параметров

query

The prepared query handle.

Возвращаемые значения

Returns the number of parameters as an integer.

Смотрите также

  • ibase_prepare() - Prepare a query for later binding of parameter placeholders and execution
  • ibase_param_info() - Return information about a parameter in a prepared query


Return information about a parameter in a prepared query

  • « ibase_num_params
  • ibase_pconnect »
  • PHP Manual
  • Функции Firebird/InterBase
  • Return information about a parameter in a prepared query

ibase_param_info

(PHP 5, PHP 7)

ibase_param_info — Return information about a parameter in a prepared query

Описание

ibase_param_info ( resource $query , int $param_number ) : array

Returns an array with information about a parameter after a query has been prepared.

Список параметров

query

An InterBase prepared query handle.

param_number

Parameter offset.

Возвращаемые значения

Returns an array with the following keys: name, alias, relation, length and type.

Смотрите также

  • ibase_field_info() - Получает информацию о поле
  • ibase_num_params() - Return the number of parameters in a prepared query


Open a persistent connection to an InterBase database

  • « ibase_param_info
  • ibase_prepare »
  • PHP Manual
  • Функции Firebird/InterBase
  • Open a persistent connection to an InterBase database

ibase_pconnect

(PHP 5, PHP 7)

ibase_pconnect — Open a persistent connection to an InterBase database

Описание

ibase_pconnect ([ string $database [, string $username [, string $password [, string $charset [, int $buffers [, int $dialect [, string $role [, int $sync ]]]]]]]] ) : resource

Opens a persistent connection to an InterBase database.

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'.

Список параметров

database

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

The user name. Can be set with the ibase.default_user php.ini directive.

password

The password for username. Can be set with the ibase.default_password php.ini directive.

charset

charset is the default character set for a database.

buffers

buffers is the number of database buffers to allocate for the server-side cache. If 0 or omitted, server chooses its own default.

dialect

dialect selects the default SQL dialect for any statement executed within a connection, and it defaults to the highest one supported by client libraries. Functional only with InterBase 6 and up.

role

Functional only with InterBase 5 and up.

sync

Возвращаемые значения

Returns an InterBase link identifier on success, or FALSE on error.

Смотрите также

  • ibase_close() - Закрывает соединение с базой данных InterBase
  • ibase_connect() - Открывает соединение с базой данных


Prepare a query for later binding of parameter placeholders and execution

  • « ibase_pconnect
  • ibase_query »
  • PHP Manual
  • Функции Firebird/InterBase
  • Prepare a query for later binding of parameter placeholders and execution

ibase_prepare

(PHP 5, PHP 7)

ibase_prepare — Prepare a query for later binding of parameter placeholders and execution

Описание

ibase_prepare ( string $query ) : resource
ibase_prepare ( resource $link_identifier , string $query ) : resource
ibase_prepare ( resource $link_identifier , string $trans , string $query ) : resource

Prepare a query for later binding of parameter placeholders and execution (via ibase_execute()).

Список параметров

query

An InterBase query.

link_identifier

An InterBase link identifier returned from ibase_connect(). If omitted, the last opened link is assumed.

trans

An InterBase transaction handle the query should be associated with. If omitted, the default transaction of the connection is assumed.

Возвращаемые значения

Returns a prepared query handle, or FALSE on error.


Execute a query on an InterBase database

  • « ibase_prepare
  • ibase_restore »
  • PHP Manual
  • Функции Firebird/InterBase
  • Execute a query on an InterBase database

ibase_query

(PHP 5, PHP 7)

ibase_query — Execute a query on an InterBase database

Описание

ibase_query ([ resource $link_identifier ], string $query [, int $bind_args ] ) : resource

Performs a query on an InterBase database.

Список параметров

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

query

An InterBase query.

bind_args

Возвращаемые значения

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.

Замечание:

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).

Список изменений

Версия | Описание
5.3.1 | On success the function now returns TRUE if there were no affected rows, where it previously returned 0 (a zero followed by an empty space).

Примеры

Пример #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());

?>

Смотрите также

  • ibase_errmsg() - Возвращает сообщение об ошибке
  • ibase_fetch_row() - Извлекает строку из базы данных InterBase
  • ibase_fetch_object() - Получает объект из базы данных InterBase
  • ibase_free_result() - Освобождает набор результатов


Initiates a restore task in the service manager and returns immediately

  • « ibase_query
  • ibase_rollback_ret »
  • PHP Manual
  • Функции Firebird/InterBase
  • Initiates a restore task in the service manager and returns immediately

ibase_restore

(PHP 5, PHP 7)

ibase_restore — Initiates a restore task in the service manager and returns immediately

Описание

ibase_restore ( resource $service_handle , string $source_file , string $dest_db [, int $options = 0 [, bool $verbose = FALSE ]] ) : mixed

This function passes the arguments to the (remote) database server. There it starts a new restore process. Therefore you won't get any responses.

Список параметров

service_handle

A previously opened connection to the database server.

source_file

The absolute path on the server where the backup file is located.

dest_db

The path to create the new database on the server. You can also use database alias.

options

Additional options to pass to the database server for restore. The options parameter can be a combination of the following constants: 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, IBASE_PRP_PAGE_BUFFERS, IBASE_PRP_SWEEP_INTERVAL, IBASE_RES_CREATE. Read the section about Предопределенные константы for further information.

verbose

Since the restore process is done on the database server, you don't have any chance to get its output. This argument is useless.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Since the restore process is done on the (remote) server, this function just passes the arguments to it. While the arguments are legal, you won't get FALSE.

Примеры

Пример #1 ibase_restore() example

<?php

// Attach to database server by ip address and port
$service = ibase_service_attach ('10.1.11.200/3050', 'sysdba', 'masterkey');

// Start the restore process on database server
// Restore employee backup to the new emps.fdb database
// Don't use any special arguments
ibase_restore($service, '/srv/backup/employees.fbk', '/srv/firebird/emps.fdb');

// Free the attached connection
ibase_service_detach ($service);
?>

Пример #2 ibase_restore() example with arguments

<?php

// Attach to database server by name and default port
$service = ibase_service_attach ('fb-server.contoso.local', 'sysdba', 'masterkey');

// Start the restore process on database server
// Restore to employee database using alias.
// Restore without indixes. Replace existing database.
ibase_restore($service, '/srv/backup/employees.fbk', 'employees.fdb', IBASE_RES_DEACTIVATE_IDX | IBASE_RES_REPLACE);

// Free the attached connection
ibase_service_detach ($service);
?>

Смотрите также

  • ibase_backup() - Инициирует задание резервного копирования в диспетчере служб и немедленно возвращает


Roll back a transaction without closing it

  • « ibase_restore
  • ibase_rollback »
  • PHP Manual
  • Функции Firebird/InterBase
  • Roll back a transaction without closing it

ibase_rollback_ret

(PHP 5, PHP 7)

ibase_rollback_ret — Roll back a transaction without closing it

Описание

ibase_rollback_ret ([ resource $link_or_trans_identifier = NULL ] ) : bool

Rolls back a transaction without closing it.

Список параметров

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 в случае возникновения ошибки.


Roll back a transaction

  • « ibase_rollback_ret
  • ibase_server_info »
  • PHP Manual
  • Функции Firebird/InterBase
  • Roll back a transaction

ibase_rollback

(PHP 5, PHP 7)

ibase_rollback — Roll back a transaction

Описание

ibase_rollback ([ resource $link_or_trans_identifier = NULL ] ) : bool

Rolls back a transaction.

Список параметров

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 в случае возникновения ошибки.


Request information about a database server

  • « ibase_rollback
  • ibase_service_attach »
  • PHP Manual
  • Функции Firebird/InterBase
  • Request information about a database server

ibase_server_info

(PHP 5, PHP 7)

ibase_server_info — Request information about a database server

Описание

ibase_server_info ( resource $service_handle , int $action ) : string

Список параметров

service_handle

A previously created connection to the database server.

action

A valid constant.

Возвращаемые значения

Returns mixed types depending on context.

Примеры

Пример #1 ibase_service_attach() example

<?php
    // Attach to the remote Firebird server
    if (($service = ibase_service_attach('10.1.1.254/3050', 'sysdba', 'masterkey')) != FALSE) {

        // Successfully attached.

        // Output the info
        echo "Server version: " . ibase_server_info($service, IBASE_SVC_SERVER_VERSION) . "\n";
        echo "Server implementation: " . ibase_server_info($service, IBASE_SVC_IMPLEMENTATION) . "\n";
        echo "Server users: " . print_r(ibase_server_info($service, IBASE_SVC_GET_USERS), true) . "\n";
        echo "Server directory: " . ibase_server_info($service, IBASE_SVC_GET_ENV) . "\n";
        echo "Server lock path: " . ibase_server_info($service, IBASE_SVC_GET_ENV_LOCK) . "\n";
        echo "Server lib path: " . ibase_server_info($service, IBASE_SVC_GET_ENV_MSG) . "\n";
        echo "Path of user db: " . ibase_server_info($service, IBASE_SVC_USER_DBPATH) . "\n";
        echo "Established connections: " . print_r(ibase_server_info($service, IBASE_SVC_SVR_DB_INFO),true) . "\n";

        // Detach from server (disconnect)
        ibase_service_detach($service);

    }
    else {
        // Output message on error
        $conn_error = ibase_errmsg();
        die($conn_error);
    }
?>

Результат выполнения данного примера:

Server version: LI-V3.0.4.33054 Firebird 3.0
Server implementation: Firebird/Linux/AMD/Intel/x64
Server users: Array
(
    [0] => Array
        (
            [user_name] => SYSDBA
            [first_name] => Sql
            [middle_name] => Server
            [last_name] => Administrator
            [user_id] => 0
            [group_id] => 0
        )

)

Server directory: /etc/firebird/
Server lock path: /tmp/firebird/
Server lib path: /usr/lib64/firebird/lib/
Path of user db: /var/lib/firebird/secdb/security3.fdb
Established connections: Array
(
    [attachments] => 3
    [databases] => 2
    [0] => /srv/firebird/poss.fdb
    [1] => /srv/firebird/employees.fdb
)


Connect to the service manager

  • « ibase_server_info
  • ibase_service_detach »
  • PHP Manual
  • Функции Firebird/InterBase
  • Connect to the service manager

ibase_service_attach

(PHP 5, PHP 7)

ibase_service_attach — Connect to the service manager

Описание

ibase_service_attach ( string $host , string $dba_username , string $dba_password ) : resource

Список параметров

host

The name or ip address of the database host. You can define the port by adding '/' and port number. If no port is specified, port 3050 will be used.

dba_username

The name of any valid user.

dba_password

The user's password.

Возвращаемые значения

Returns a Interbase / Firebird link identifier on success или FALSE в случае возникновения ошибки.

Примеры

Пример #1 ibase_service_attach() example

<?php
    // Attach to the remote Firebird server by ip address
    if (($service = ibase_service_attach('10.1.1.199', 'sysdba', 'masterkey')) != FALSE) {

        // Successfully attached.
        // Fetch server version (something like 'LI-V3.0.4.33054 Firebird 3.0')
        $server_version  = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);

        // Fetch server implementation (something like 'Firebird/Linux/AMD/Intel/x64')
        $server_implementation = ibase_server_info($service, IBASE_SVC_IMPLEMENTATION);

        // Detach from server (disconnect)
        ibase_service_detach($service);

        // Output the info
        echo "Server version: " . $server_version . "<br/>";
        echo "Server implementation: " . $server_implementation;
    }
    else {
        // Output message on error
        $conn_error = ibase_errmsg();
        die($conn_error);
    }

?>

Пример #2 ibase_service_attach() example using hostname/port syntax

<?php
    // Attach to the remote Firebird server by name. Use Port 3050.
    if (($service = ibase_service_attach('FB-SRV-01.contoso.local/3050', 'sysdba', 'masterkey')) != FALSE) {

        // Successfully attached.
        // Fetch server version (something like 'LI-V3.0.4.33054 Firebird 3.0')
        $server_version  = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);

        // Fetch server implementation (something like 'Firebird/Linux/AMD/Intel/x64')
        $server_implementation = ibase_server_info($service, IBASE_SVC_IMPLEMENTATION);

        // Detach from server (disconnect)
        ibase_service_detach($service);

        // Output the info
        echo "Server version: " . $server_version . "<br/>";
        echo "Server implementation: " . $server_implementation;
    }
    else {
        // Output message on error
        $conn_error = ibase_errmsg();
        die($conn_error);
    }

?>

Смотрите также

  • ibase_service_detach() - Disconnect from the service manager


Disconnect from the service manager

  • « ibase_service_attach
  • ibase_set_event_handler »
  • PHP Manual
  • Функции Firebird/InterBase
  • Disconnect from the service manager

ibase_service_detach

(PHP 5, PHP 7)

ibase_service_detach — Disconnect from the service manager

Описание

ibase_service_detach ( resource $service_handle ) : bool

Список параметров

service_handle

A previously created connection to the database server.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 ibase_service_detach() example

<?php
    // Attach to the remote Firebird server by ip address
    if (($service = ibase_service_attach('10.1.1.199', 'sysdba', 'masterkey')) != FALSE) {

        // Successfully attached.
        // Fetch server version (something like 'LI-V3.0.4.33054 Firebird 3.0')
        $server_version  = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);

        // Fetch server implementation (something like 'Firebird/Linux/AMD/Intel/x64')
        $server_implementation = ibase_server_info($service, IBASE_SVC_IMPLEMENTATION);

        // Detach from server (disconnect)
        if(ibase_service_detach($service) == FALSE) {
            echo "Error on service detach.";
        }
        else {
            echo "Successfully detached from service.";
        }

    }
    else {
        // Output message on error
        $conn_error = ibase_errmsg();
        die($conn_error);
    }

?>


Регистрирует callback-функцию, которая будет вызываться при публикации событий

  • « ibase_service_detach
  • ibase_trans »
  • PHP Manual
  • Функции Firebird/InterBase
  • Регистрирует callback-функцию, которая будет вызываться при публикации событий

ibase_set_event_handler

(PHP 5, PHP 7)

ibase_set_event_handler — Регистрирует callback-функцию, которая будет вызываться при публикации событий

Описание

ibase_set_event_handler ( callable $event_handler , string $event_name1 [, string $... ] ) : resource
ibase_set_event_handler ( resource $connection , callable $event_handler , string $event_name1 [, string $... ] ) : resource

Функция регистрирует пользовательскую функцию PHP в качестве обработчика событий для указанных событий.

Список параметров

event_handler

Callback-фукнция вызывается с именем события и ресурсом ссылки в качестве аргументов всякий раз, когда одно из указанных событий публикуется базой данных.

Callback-фукнция должна возвращать FALSE, если обработчик события должен быть отменен. Любое другое возвращаемое значение игнорируется. Функция принимает до 15 аргументов события.

event_name1

Наименование события.

...

Разрешено максимум 15 событий.

Возвращаемые значения

Возвращаемое значение является ресурсом события. Этот ресурс можно использовать для освобождения обработчика событий с помощью ibase_free_event_handler().

Примеры

Пример #1 Пример использования ibase_set_event_handler()

<?php

function event_handler($event_name, $link)
{
    if ($event_name == "NEW ORDER") {
        // обрабатываем новый заказ
        ibase_query($link, "UPDATE orders SET status='handled'");
    } else if ($event_name == "DB_SHUTDOWN") {
        // отменяем обработчик событий
        return false;
    }
}

ibase_set_event_handler($link, "event_handler", "NEW_ORDER", "DB_SHUTDOWN");
?>

Смотрите также

  • ibase_free_event_handler() - Отменяет зарегистрированный обработчик события
  • ibase_wait_event() - Ждем, пока событие будет опубликовано в базе данных


Begin a transaction

  • « ibase_set_event_handler
  • ibase_wait_event »
  • PHP Manual
  • Функции Firebird/InterBase
  • Begin a transaction

ibase_trans

(PHP 5, PHP 7)

ibase_trans — Begin a transaction

Описание

ibase_trans ([ int $trans_args [, resource $link_identifier ]] ) : resource
ibase_trans ([ resource $link_identifier [, int $trans_args ]] ) : resource

Begins a transaction.

Замечание:

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().

Замечание:

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().

Список параметров

trans_args

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.

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

Возвращаемые значения

Returns a transaction handle, or FALSE on error.


Ждем, пока событие будет опубликовано в базе данных

  • « ibase_trans
  • FrontBase »
  • PHP Manual
  • Функции Firebird/InterBase
  • Ждем, пока событие будет опубликовано в базе данных

ibase_wait_event

(PHP 5, PHP 7)

ibase_wait_event — Ждем, пока событие будет опубликовано в базе данных

Описание

ibase_wait_event ( string $event_name1 [, string $... ] ) : string
ibase_wait_event ( resource $connection , string $event_name1 [, string $... ] ) : string

Функция приостанавливает выполнение сценария до тех пор, пока одно из указанных событий не будет опубликовано в базе данных. Имя события, которое было опубликовано, возвращается. Функция принимает до 15 аргументов события.

Список параметров

event_name1

Название события.

...

Возвращаемые значения

Возвращает название события, которое было опубликовано.

Смотрите также

  • ibase_set_event_handler() - Регистрирует callback-функцию, которая будет вызываться при публикации событий
  • ibase_free_event_handler() - Отменяет зарегистрированный обработчик события


FrontBase

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции FrontBase
    • fbsql_affected_rows — Возвращает число затронутых строк в предыдущем FrontBase действии
    • 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 error number from previous operation
    • fbsql_error — Returns the error message from previous 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 — Описание
    • 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_rows_fetched — Get the number of rows affected by the last statement
    • fbsql_select_db — Select a FrontBase database
    • fbsql_set_characterset — Change input/output character set
    • 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_table_name — Get table name of field
    • fbsql_tablename — Псевдоним fbsql_table_name
    • fbsql_username — Get or set the username for the connection
    • fbsql_warnings — Enable or disable FrontBase warnings


Введение

Эти функции позволяют получить доступ к серверам баз данных FrontBase. Больше информации о FrontBase можно найти тут » http://www.frontbase.com/.

Документация на FrontBase лежит тут » http://www.frontbase.com/cgi-bin/WebObjects/FBWebSite.woa.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.3.0.


Требования

Для использования функций этого модуля вы должны как минимум установить клиентские библиотеки FrontBase, либо сам сервер баз данных. Дистрибутив FrontBase можно взять здесь » http://www.frontbase.com/.


Установка

Чтобы использовать этот модуль, PHP должен быть собран с опцией --with-fbsql[=DIR] . Если вы зададите этот параметр без указания пути, то PHP постарается самостоятельно найти клиентские библиотеки fbsql по пути, являющимся путем по умолчанию для данной платформы. Пользователи установившие FrontBase в нестандартную директорию должны указать путь до нее: --with-fbsql=/path/to/fbsql . Это позволит PHP использовать указанные клиентские библиотеки, установленные FrontBase, избегая любых конфликтов.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настроек FrontBase
Имя | По умолчанию | Место изменения | Список изменений
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM |
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM |
fbsql.autocommit | "1" | PHP_INI_SYSTEM |
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM |
fbsql.max_links | "128" | PHP_INI_SYSTEM |
fbsql.max_connections | "128" | PHP_INI_SYSTEM |
fbsql.max_results | "128" | PHP_INI_SYSTEM |
fbsql.batchSize | "1000" | PHP_INI_SYSTEM | Удалено в PHP 5.1.0.
fbsql.default_host | NULL | PHP_INI_SYSTEM |
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM |
fbsql.default_password | "" | PHP_INI_SYSTEM |
fbsql.default_database | "" | PHP_INI_SYSTEM |
fbsql.default_database_password | "" | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если 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)


Функции FrontBase

Содержание

  • fbsql_affected_rows — Возвращает число затронутых строк в предыдущем FrontBase действии
  • 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 error number from previous operation
  • fbsql_error — Returns the error message from previous 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 — Описание
  • 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_rows_fetched — Get the number of rows affected by the last statement
  • fbsql_select_db — Select a FrontBase database
  • fbsql_set_characterset — Change input/output character set
  • 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_table_name — Get table name of field
  • fbsql_tablename — Псевдоним fbsql_table_name
  • fbsql_username — Get or set the username for the connection
  • fbsql_warnings — Enable or disable FrontBase warnings


Возвращает число затронутых строк в предыдущем FrontBase действии

  • « Функции FrontBase
  • fbsql_autocommit »
  • PHP Manual
  • Функции FrontBase
  • Возвращает число затронутых строк в предыдущем FrontBase действии

fbsql_affected_rows

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_affected_rows — Возвращает число затронутых строк в предыдущем FrontBase действии

Описание

fbsql_affected_rows ([ resource $link_identifier ] ) : int

fbsql_affected_rows() возвращает число затронутых строк в последнем INSERT, UPDATE или DELETE запросе, связанным с link_identifier.

Замечание:

Если используются транзакции, то нужно вызвать fbsql_affected_rows() после INSERT, UPDATE, или DELETE запроса, но не после коммита.

Если последний запрос был DELETE запросом без условий в WHERE, то все записи будут удалены из таблицы, функция вернет 0.

Замечание:

Если используется UPDATE, то FrontBase не обновит столбцы, где новое значение идентично предыдущему значению. Это создает вероятность, что fbsql_affected_rows() может фактически не быть равной числу соответствующих строк, только число строк, которые были буквально затронуты запросом.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Если последний запрос не был произведен, то функция возвращает -1.

Смотрите также

  • fbsql_num_rows() - Get number of rows in result


Enable or disable autocommit

  • « fbsql_affected_rows
  • fbsql_blob_size »
  • PHP Manual
  • Функции FrontBase
  • Enable or disable autocommit

fbsql_autocommit

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_autocommit — Enable or disable autocommit

Описание

fbsql_autocommit ( resource $link_identifier [, bool $OnOff ] ) : bool

Returns the current autocommit status.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

OnOff

If this optional 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().

Возвращаемые значения

Returns the current autocommit status, as a boolean.

Смотрите также

  • fbsql_commit() - Commits a transaction to the database
  • fbsql_rollback() - Rollback a transaction to the database


Get the size of a BLOB

  • « fbsql_autocommit
  • fbsql_change_user »
  • PHP Manual
  • Функции FrontBase
  • Get the size of a BLOB

fbsql_blob_size

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_blob_size — Get the size of a BLOB

Описание

fbsql_blob_size ( string $blob_handle [, resource $link_identifier ] ) : int

Returns the size of the given BLOB.

Список параметров

blob_handle

A BLOB handle, returned by fbsql_create_blob().

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns the BLOB size as an integer, or FALSE on error.

Смотрите также

  • fbsql_clob_size() - Get the size of a CLOB


Change logged in user of the active connection

  • « fbsql_blob_size
  • fbsql_clob_size »
  • PHP Manual
  • Функции FrontBase
  • Change logged in user of the active connection

fbsql_change_user

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_change_user — Change logged in user of the active connection

Описание

fbsql_change_user ( string $user , string $password [, string $database [, resource $link_identifier ]] ) : bool

fbsql_change_user() changes the logged in user of the specified connection. If the new user and password authorization fails, the current connected user stays active.

Список параметров

user

The new user name.

password

The new user password.

database

If specified, this will be the default or current database after the user has been changed.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Get the size of a CLOB

  • « fbsql_change_user
  • fbsql_close »
  • PHP Manual
  • Функции FrontBase
  • Get the size of a CLOB

fbsql_clob_size

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_clob_size — Get the size of a CLOB

Описание

fbsql_clob_size ( string $clob_handle [, resource $link_identifier ] ) : int

Returns the size of the given CLOB.

Список параметров

clob_handle

A CLOB handle, returned by fbsql_create_clob().

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns the CLOB size as an integer, or FALSE on error.

Смотрите также

  • fbsql_blob_size() - Get the size of a BLOB


Close FrontBase connection

  • « fbsql_clob_size
  • fbsql_commit »
  • PHP Manual
  • Функции FrontBase
  • Close FrontBase connection

fbsql_close

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_close — Close FrontBase connection

Описание

fbsql_close ([ resource $link_identifier ] ) : bool

Closes the connection to the FrontBase server that's associated with the specified link identifier.

Using fbsql_close() isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 fbsql_close() example

<?php
$link = fbsql_connect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
echo "Connected successfully";
fbsql_close($link);
?>

Смотрите также

  • fbsql_connect() - Open a connection to a FrontBase Server
  • fbsql_pconnect() - Open a persistent connection to a FrontBase Server


Commits a transaction to the database

  • « fbsql_close
  • fbsql_connect »
  • PHP Manual
  • Функции FrontBase
  • Commits a transaction to the database

fbsql_commit

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_commit — Commits a transaction to the database

Описание

fbsql_commit ([ resource $link_identifier ] ) : bool

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.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fbsql_autocommit() - Enable or disable autocommit
  • fbsql_rollback() - Rollback a transaction to the database


Open a connection to a FrontBase Server

  • « fbsql_commit
  • fbsql_create_blob »
  • PHP Manual
  • Функции FrontBase
  • Open a connection to a FrontBase Server

fbsql_connect

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_connect — Open a connection to a FrontBase Server

Описание

 fbsql_connect
  ([ string $hostname = ini_get("fbsql.default_host")
 [, string $username = ini_get("fbsql.default_user")
 [, string $password = ini_get("fbsql.default_password")
]]] ) : resource

fbsql_connect() establishes a connection to a FrontBase server.

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().

Список параметров

hostname

The server host name.

username

The user name for the connection.

password

The password for the connection.

Возвращаемые значения

Returns a positive FrontBase link identifier on success, or FALSE on errors.

Примеры

Пример #1 fbsql_connect() example

<?php

$link = fbsql_connect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
echo "Connected successfully";
fbsql_close($link);

?>

Смотрите также

  • fbsql_pconnect() - Open a persistent connection to a FrontBase Server
  • fbsql_close() - Close FrontBase connection


Create a BLOB

  • « fbsql_connect
  • fbsql_create_clob »
  • PHP Manual
  • Функции FrontBase
  • Create a BLOB

fbsql_create_blob

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_create_blob — Create a BLOB

Описание

fbsql_create_blob ( string $blob_data [, resource $link_identifier ] ) : string

Creates a BLOB from the given data.

Список параметров

blob_data

The BLOB data.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns a resource handle to the newly created BLOB, which 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);
?>

Смотрите также

  • fbsql_create_clob() - Create a CLOB
  • fbsql_read_blob() - Read a BLOB from the database
  • fbsql_read_clob() - Read a CLOB from the database
  • fbsql_set_lob_mode() - Set the LOB retrieve mode for a FrontBase result set


Create a CLOB

  • « fbsql_create_blob
  • fbsql_create_db »
  • PHP Manual
  • Функции FrontBase
  • Create a CLOB

fbsql_create_clob

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_create_clob — Create a CLOB

Описание

fbsql_create_clob ( string $clob_data [, resource $link_identifier ] ) : string

Creates a CLOB from the given data.

Список параметров

clob_data

The CLOB data.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns a resource handle to the newly created CLOB, which 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);
?>

Смотрите также

  • fbsql_create_blob() - Create a BLOB
  • fbsql_read_blob() - Read a BLOB from the database
  • fbsql_read_clob() - Read a CLOB from the database
  • fbsql_set_lob_mode() - Set the LOB retrieve mode for a FrontBase result set


Create a FrontBase database

  • « fbsql_create_clob
  • fbsql_data_seek »
  • PHP Manual
  • Функции FrontBase
  • Create a FrontBase database

fbsql_create_db

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_create_db — Create a FrontBase database

Описание

fbsql_create_db ( string $database_name [, resource $link_identifier [, string $database_options ]] ) : bool

Attempts to create a new database on the specified server.

Список параметров

database_name

The database name, as a string.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

database_options

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #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());
}
?>

Смотрите также

  • fbsql_drop_db() - Drop (delete) a FrontBase database


Move internal result pointer

  • « fbsql_create_db
  • fbsql_database_password »
  • PHP Manual
  • Функции FrontBase
  • Move internal result pointer

fbsql_data_seek

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_data_seek — Move internal result pointer

Описание

fbsql_data_seek ( resource $result , int $row_number ) : bool

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.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

row_number

The row number. Starts at 0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #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);
?>


Sets or retrieves the password for a FrontBase database

  • « fbsql_data_seek
  • fbsql_database »
  • PHP Manual
  • Функции FrontBase
  • Sets or retrieves the password for a FrontBase database

fbsql_database_password

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_database_password — Sets or retrieves the password for a FrontBase database

Описание

fbsql_database_password ( resource $link_identifier [, string $database_password ] ) : string

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 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.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

database_password

The database password, as a string. If given, the function sets the database password for the specified link identifier.

Возвращаемые значения

Returns the database password associated with the link identifier.

Примеры

Пример #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);
?>

Смотрите также

  • fbsql_connect() - Open a connection to a FrontBase Server
  • fbsql_pconnect() - Open a persistent connection to a FrontBase Server
  • fbsql_select_db() - Select a FrontBase database


Get or set the database name used with a connection

  • « fbsql_database_password
  • fbsql_db_query »
  • PHP Manual
  • Функции FrontBase
  • Get or set the database name used with a connection

fbsql_database

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_database — Get or set the database name used with a connection

Описание

fbsql_database ( resource $link_identifier [, string $database ] ) : string

Get or set the database name used with the connection.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

database

The database name. If given, the default database of the connexion will be changed to database.

Возвращаемые значения

Returns the name of the database used with this connection.


Send a FrontBase query

  • « fbsql_database
  • fbsql_db_status »
  • PHP Manual
  • Функции FrontBase
  • Send a FrontBase query

fbsql_db_query

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_db_query — Send a FrontBase query

Описание

fbsql_db_query ( string $database , string $query [, resource $link_identifier ] ) : resource

Selects a database and executes a query on it.

Список параметров

database

The database to be selected.

query

The SQL query to be executed.

Замечание:

The query string shall always end with a semicolon.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns a positive FrontBase result identifier to the query result, or FALSE on error.

Смотрите также

  • fbsql_query() - Send a FrontBase query
  • fbsql_connect() - Open a connection to a FrontBase Server


Get the status for a given database

  • « fbsql_db_query
  • fbsql_drop_db »
  • PHP Manual
  • Функции FrontBase
  • Get the status for a given database

fbsql_db_status

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

fbsql_db_status — Get the status for a given database

Описание

fbsql_db_status ( string $database_name [, resource $link_identifier ] ) : int

Gets the current status of the specified database.

Список параметров

database_name

The database name.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns an integer value with the current status. This 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.

Смотрите также

  • fbsql_start_db() - Start a database on local or remote server
  • fbsql_stop_db() - Stop a database on local or remote server


Drop (delete) a FrontBase database

  • « fbsql_db_status
  • fbsql_errno »
  • PHP Manual
  • Функции FrontBase
  • Drop (delete) a FrontBase database

fbsql_drop_db

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_drop_db — Drop (delete) a FrontBase database

Описание

fbsql_drop_db ( string $database_name [, resource $link_identifier ] ) : bool

fbsql_drop_db() attempts to drop (remove) an entire database from the server associated with the specified link identifier.

Список параметров

database_name

The database name, as a string.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fbsql_create_db() - Create a FrontBase database


Returns the error number from previous operation

  • « fbsql_drop_db
  • fbsql_error »
  • PHP Manual
  • Функции FrontBase
  • Returns the error number from previous operation

fbsql_errno

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_errno — Returns the error number from previous operation

Описание

fbsql_errno ([ resource $link_identifier ] ) : int

Returns the numerical value of the error message from previous FrontBase operation.

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.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns the error number from the last fbsql function, or 0 (zero) if no error occurred.

Примеры

Пример #1 fbsql_errno() Example

<?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 />";
?>

Смотрите также

  • fbsql_error() - Returns the error message from previous operation
  • fbsql_warnings() - Enable or disable FrontBase warnings


Returns the error message from previous operation

  • « fbsql_errno
  • fbsql_fetch_array »
  • PHP Manual
  • Функции FrontBase
  • Returns the error message from previous operation

fbsql_error

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_error — Returns the error message from previous operation

Описание

fbsql_error ([ resource $link_identifier ] ) : string

Returns the error message from previous FrontBase operation.

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 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.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns the error text from the last fbsql function, or '' (the empty string) if no error occurred.

Примеры

Пример #1 fbsql_error() Example

<?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 />";
?>

Смотрите также

  • fbsql_errno() - Returns the error number from previous operation
  • fbsql_warnings() - Enable or disable FrontBase warnings


Fetch a result row as an associative array, a numeric array, or both

  • « fbsql_error
  • fbsql_fetch_assoc »
  • PHP Manual
  • Функции FrontBase
  • Fetch a result row as an associative array, a numeric array, or both

fbsql_fetch_array

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_array — Fetch a result row as an associative array, a numeric array, or both

Описание

fbsql_fetch_array ( resource $result [, int $result_type ] ) : array

fbsql_fetch_array() is a combination of
fbsql_fetch_row() and
fbsql_fetch_assoc().

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.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

result_type

A constant and can take the following values: FBSQL_ASSOC, FBSQL_NUM, or FBSQL_BOTH.

When using FBSQL_BOTH, 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.

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

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

Примеры

Пример #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_fetch_row() - Get a result row as an enumerated array
  • fbsql_fetch_assoc() - Fetch a result row as an associative array
  • fbsql_fetch_object() - Fetch a result row as an object


Fetch a result row as an associative array

  • « fbsql_fetch_array
  • fbsql_fetch_field »
  • PHP Manual
  • Функции FrontBase
  • Fetch a result row as an associative array

fbsql_fetch_assoc

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_assoc — Fetch a result row as an associative array

Описание

fbsql_fetch_assoc ( resource $result ) : array

Calling fbsql_fetch_assoc() is equivalent to calling fbsql_fetch_array() with FBSQL_ASSOC as 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().

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.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows.

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.

Примеры

Пример #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_row() - Get a result row as an enumerated array
  • fbsql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • fbsql_fetch_object() - Fetch a result row as an object


Get column information from a result and return as an object

  • « fbsql_fetch_assoc
  • fbsql_fetch_lengths »
  • PHP Manual
  • Функции FrontBase
  • Get column information from a result and return as an object

fbsql_fetch_field

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_field — Get column information from a result and return as an object

Описание

fbsql_fetch_field ( resource $result [, int $field_offset ] ) : object

Used in order to obtain information about fields in a certain query result.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

field_offset

The numerical offset of the field. The field index starts at 0. If not specified, the next field that wasn't yet retrieved by fbsql_fetch_field() is retrieved.

Возвращаемые значения

Returns an object containing field information, or FALSE on errors.

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);
?>

Смотрите также

  • fbsql_field_seek() - Set result pointer to a specified field offset


Get the length of each output in a result

  • « fbsql_fetch_field
  • fbsql_fetch_object »
  • PHP Manual
  • Функции FrontBase
  • Get the length of each output in a result

fbsql_fetch_lengths

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_lengths — Get the length of each output in a result

Описание

fbsql_fetch_lengths ( resource $result ) : array

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.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Returns an array, starting at offset 0, that corresponds to the lengths of each field in the last row fetched by fbsql_fetch_row(), or FALSE on error.

Смотрите также

  • fbsql_fetch_row() - Get a result row as an enumerated array


Fetch a result row as an object

  • « fbsql_fetch_lengths
  • fbsql_fetch_row »
  • PHP Manual
  • Функции FrontBase
  • Fetch a result row as an object

fbsql_fetch_object

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_object — Fetch a result row as an object

Описание

fbsql_fetch_object ( resource $result ) : object

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).

Speed-wise, the function is identical to fbsql_fetch_array(), and almost as quick as fbsql_fetch_row() (the difference is insignificant).

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

Примеры

Пример #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);
?>

Смотрите также

  • fbsql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • fbsql_fetch_row() - Get a result row as an enumerated array
  • fbsql_fetch_assoc() - Fetch a result row as an associative array


Get a result row as an enumerated array

  • « fbsql_fetch_object
  • fbsql_field_flags »
  • PHP Manual
  • Функции FrontBase
  • Get a result row as an enumerated array

fbsql_fetch_row

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_row — Get a result row as an enumerated array

Описание

fbsql_fetch_row ( resource $result ) : array

fbsql_fetch_row() fetches one row of data from the result associated with the specified result identifier.

Subsequent call to fbsql_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Returns an array that corresponds to the fetched row where each result column is stored in an offset, starting at offset 0, or FALSE if there are no more rows.

Смотрите также

  • 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_object() - Fetch a result row as an object
  • fbsql_data_seek() - Move internal result pointer
  • fbsql_fetch_lengths() - Get the length of each output in a result
  • fbsql_result() - Get result data


Get the flags associated with the specified field in a result

  • « fbsql_fetch_row
  • fbsql_field_len »
  • PHP Manual
  • Функции FrontBase
  • Get the flags associated with the specified field in a result

fbsql_field_flags

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_flags — Get the flags associated with the specified field in a result

Описание

fbsql_field_flags ( resource $result [, int $field_offset ] ) : string

Gets the flags associated with the specified field in a result.

Список параметров

result

A result pointer returned by fbsql_list_fields().

field_offset

The numerical offset of the field. The field index starts at 0.

Возвращаемые значения

Returns the field flags of the specified field as a single word per flag separated by a single space, so that you can split the returned value using explode().


Returns the length of the specified field

  • « fbsql_field_flags
  • fbsql_field_name »
  • PHP Manual
  • Функции FrontBase
  • Returns the length of the specified field

fbsql_field_len

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_len — Returns the length of the specified field

Описание

fbsql_field_len ( resource $result [, int $field_offset ] ) : int

Returns the length of the specified field.

Список параметров

result

A result pointer returned by fbsql_list_fields().

field_offset

The numerical offset of the field. The field index starts at 0.

Возвращаемые значения

Returns the length of the specified field.


Get the name of the specified field in a result

  • « fbsql_field_len
  • fbsql_field_seek »
  • PHP Manual
  • Функции FrontBase
  • Get the name of the specified field in a result

fbsql_field_name

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_name — Get the name of the specified field in a result

Описание

fbsql_field_name ( resource $result [, int $field_index ] ) : string

Returns the name of the specified field index.

Список параметров

result

A result pointer returned by fbsql_list_fields().

field_index

The numerical offset of the field. The field index starts at 0.

Возвращаемые значения

Returns the name as a string, or FALSE if the field doesn't exist.

Примеры

Пример #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_type() - Get the type of the specified field in a result


Set result pointer to a specified field offset

  • « fbsql_field_name
  • fbsql_field_table »
  • PHP Manual
  • Функции FrontBase
  • Set result pointer to a specified field offset

fbsql_field_seek

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_seek — Set result pointer to a specified field offset

Описание

fbsql_field_seek ( resource $result [, int $field_offset ] ) : bool

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.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

field_offset

The numerical offset of the field. The field index starts at 0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fbsql_fetch_field() - Get column information from a result and return as an object


Get name of the table the specified field is in

  • « fbsql_field_seek
  • fbsql_field_type »
  • PHP Manual
  • Функции FrontBase
  • Get name of the table the specified field is in

fbsql_field_table

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_table — Get name of the table the specified field is in

Описание

fbsql_field_table ( resource $result [, int $field_offset ] ) : string

Returns the name of the table that the specified field is in.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

field_offset

The numerical offset of the field. The field index starts at 0.

Возвращаемые значения

Returns the name of the table, as a string.


Get the type of the specified field in a result

  • « fbsql_field_table
  • fbsql_free_result »
  • PHP Manual
  • Функции FrontBase
  • Get the type of the specified field in a result

fbsql_field_type

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_type — Get the type of the specified field in a result

Описание

fbsql_field_type ( resource $result [, int $field_offset ] ) : string

fbsql_field_type() is similar to the fbsql_field_name() function, but the field type is returned instead.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

field_offset

The numerical offset of the field. The field index starts at 0.

Возвращаемые значения

Returns the field type, as a string.

This can 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_name() - Get the name of the specified field in a result


Free result memory

  • « fbsql_field_type
  • fbsql_get_autostart_info »
  • PHP Manual
  • Функции FrontBase
  • Free result memory

fbsql_free_result

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_free_result — Free result memory

Описание

fbsql_free_result ( resource $result ) : bool

Frees all memory associated with the given result identifier.

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.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Описание

  • « fbsql_free_result
  • fbsql_hostname »
  • PHP Manual
  • Функции FrontBase
  • Описание

fbsql_get_autostart_info

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

fbsql_get_autostart_info —

Описание

fbsql_get_autostart_info ([ resource $link_identifier ] ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.


Get or set the host name used with a connection

  • « fbsql_get_autostart_info
  • fbsql_insert_id »
  • PHP Manual
  • Функции FrontBase
  • Get or set the host name used with a connection

fbsql_hostname

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_hostname — Get or set the host name used with a connection

Описание

fbsql_hostname ( resource $link_identifier [, string $host_name ] ) : string

Gets or sets the host name used with a connection.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

host_name

If provided, this will be the new connection host name.

Возвращаемые значения

Returns the current host name used for the connection.

Смотрите также

  • fbsql_username() - Get or set the username for the connection
  • fbsql_password() - Get or set the user password used with a connection


Get the id generated from the previous INSERT operation

  • « fbsql_hostname
  • fbsql_list_dbs »
  • PHP Manual
  • Функции FrontBase
  • Get the id generated from the previous INSERT operation

fbsql_insert_id

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_insert_id — Get the id generated from the previous INSERT operation

Описание

fbsql_insert_id ([ resource $link_identifier ] ) : int

Gets the id generated from the previous INSERT operation which created a DEFAULT UNIQUE 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.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns the ID generated from the previous INSERT query, or 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 this function immediately after the query that generates the value.

Смотрите также

  • fbsql_affected_rows() - Возвращает число затронутых строк в предыдущем FrontBase действии


List databases available on a FrontBase server

  • « fbsql_insert_id
  • fbsql_list_fields »
  • PHP Manual
  • Функции FrontBase
  • List databases available on a FrontBase server

fbsql_list_dbs

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_list_dbs — List databases available on a FrontBase server

Описание

fbsql_list_dbs ([ resource $link_identifier ] ) : resource

Return a result pointer containing the databases available from the current fbsql daemon. Use the fbsql_tablename() to traverse this result pointer.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns a result pointer or FALSE on error.

Примеры

Пример #1 fbsql_list_dbs() example

<?php
$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_list_fields() - List FrontBase result fields
  • fbsql_list_tables() - List tables in a FrontBase database


List FrontBase result fields

  • « fbsql_list_dbs
  • fbsql_list_tables »
  • PHP Manual
  • Функции FrontBase
  • List FrontBase result fields

fbsql_list_fields

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_list_fields — List FrontBase result fields

Описание

fbsql_list_fields ( string $database_name , string $table_name [, resource $link_identifier ] ) : resource

Retrieves information about the given table.

Список параметров

database_name

The database name.

table_name

The table name.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns a result pointer which can be used with the fbsql_field_xxx functions, or FALSE on error.

Ошибки

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_field_len() - Returns the length of the specified field
  • fbsql_field_name() - Get the name of the specified field in a result
  • fbsql_field_type() - Get the type of the specified field in a result
  • fbsql_field_flags() - Get the flags associated with the specified field in a result


List tables in a FrontBase database

  • « fbsql_list_fields
  • fbsql_next_result »
  • PHP Manual
  • Функции FrontBase
  • List tables in a FrontBase database

fbsql_list_tables

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_list_tables — List tables in a FrontBase database

Описание

fbsql_list_tables ( string $database [, resource $link_identifier ] ) : resource

Returns a result pointer describing the database.

Список параметров

database

The database name.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns a result pointer which can be used with the fbsql_tablename() function to read the actual table names, or FALSE on error.

Смотрите также

  • fbsql_list_fields() - List FrontBase result fields
  • fbsql_list_dbs() - List databases available on a FrontBase server


Move the internal result pointer to the next result

  • « fbsql_list_tables
  • fbsql_num_fields »
  • PHP Manual
  • Функции FrontBase
  • Move the internal result pointer to the next result

fbsql_next_result

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_next_result — Move the internal result pointer to the next result

Описание

fbsql_next_result ( resource $result ) : bool

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.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Returns 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);
?>


Get number of fields in result

  • « fbsql_next_result
  • fbsql_num_rows »
  • PHP Manual
  • Функции FrontBase
  • Get number of fields in result

fbsql_num_fields

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_num_fields — Get number of fields in result

Описание

fbsql_num_fields ( resource $result ) : int

Returns the number of fields in the given result set.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Returns the number of fields, as an integer.

Смотрите также

  • fbsql_db_query() - Send a FrontBase query
  • fbsql_query() - Send a FrontBase query
  • fbsql_fetch_field() - Get column information from a result and return as an object
  • fbsql_num_rows() - Get number of rows in result


Get number of rows in result

  • « fbsql_num_fields
  • fbsql_password »
  • PHP Manual
  • Функции FrontBase
  • Get number of rows in result

fbsql_num_rows

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_num_rows — Get number of rows in result

Описание

fbsql_num_rows ( resource $result ) : int

Gets the number of rows in the given result set.

This function is only valid for SELECT statements. To retrieve the number of rows returned from a INSERT, UPDATE or DELETE query, use fbsql_affected_rows().

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Returns the number of rows returned by the last SELECT statement.

Примеры

Пример #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";

?>

Смотрите также

  • fbsql_affected_rows() - Возвращает число затронутых строк в предыдущем FrontBase действии
  • fbsql_connect() - Open a connection to a FrontBase Server
  • fbsql_select_db() - Select a FrontBase database
  • fbsql_query() - Send a FrontBase query


Get or set the user password used with a connection

  • « fbsql_num_rows
  • fbsql_pconnect »
  • PHP Manual
  • Функции FrontBase
  • Get or set the user password used with a connection

fbsql_password

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_password — Get or set the user password used with a connection

Описание

fbsql_password ( resource $link_identifier [, string $password ] ) : string

Get or set the user password used with a connection.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

password

If provided, this will be the new connection password.

Возвращаемые значения

Returns the current password used for the connection.

Смотрите также

  • fbsql_username() - Get or set the username for the connection
  • fbsql_hostname() - Get or set the host name used with a connection


Open a persistent connection to a FrontBase Server

  • « fbsql_password
  • fbsql_query »
  • PHP Manual
  • Функции FrontBase
  • Open a persistent connection to a FrontBase Server

fbsql_pconnect

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_pconnect — Open a persistent connection to a FrontBase Server

Описание

 fbsql_pconnect
  ([ string $hostname = ini_get("fbsql.default_host")
 [, string $username = ini_get("fbsql.default_user")
 [, string $password = ini_get("fbsql.default_password")
]]] ) : resource

Establishes a persistent connection to a FrontBase server.

To set the 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'.

Список параметров

hostname

The server host name.

username

The user name for the connection.

password

The password for the connection.

Возвращаемые значения

Returns a positive FrontBase persistent link identifier on success, or FALSE on error.

Смотрите также

  • fbsql_connect() - Open a connection to a FrontBase Server


Send a FrontBase query

  • « fbsql_pconnect
  • fbsql_read_blob »
  • PHP Manual
  • Функции FrontBase
  • Send a FrontBase query

fbsql_query

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_query — Send a FrontBase query

Описание

fbsql_query ( string $query [, resource $link_identifier [, int $batch_size ]] ) : resource

Sends a query to the currently active database on the server.

If 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.

Список параметров

query

The SQL query to be executed.

Замечание:

The query string shall always end with a semicolon.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

batch_size

Возвращаемые значения

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.

For SELECT statements, fbsql_query() returns a new result identifier that you can pass to fbsql_result().

fbsql_query() will also fail and return FALSE if you don't have permission to access the table(s) referenced by the query.

Примеры

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_affected_rows() - Возвращает число затронутых строк в предыдущем FrontBase действии
  • fbsql_db_query() - Send a FrontBase query
  • fbsql_free_result() - Free result memory
  • fbsql_result() - Get result data
  • fbsql_select_db() - Select a FrontBase database
  • fbsql_connect() - Open a connection to a FrontBase Server


Read a BLOB from the database

  • « fbsql_query
  • fbsql_read_clob »
  • PHP Manual
  • Функции FrontBase
  • Read a BLOB from the database

fbsql_read_blob

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_read_blob — Read a BLOB from the database

Описание

fbsql_read_blob ( string $blob_handle [, resource $link_identifier ] ) : string

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.

Список параметров

blob_handle

A BLOB handle, returned by fbsql_create_blob().

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns a string containing the specified BLOB data.

Примеры

Пример #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);

?>

Смотрите также

  • fbsql_create_blob() - Create a BLOB
  • fbsql_read_clob() - Read a CLOB from the database
  • fbsql_set_lob_mode() - Set the LOB retrieve mode for a FrontBase result set


Read a CLOB from the database

  • « fbsql_read_blob
  • fbsql_result »
  • PHP Manual
  • Функции FrontBase
  • Read a CLOB from the database

fbsql_read_clob

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_read_clob — Read a CLOB from the database

Описание

fbsql_read_clob ( string $clob_handle [, resource $link_identifier ] ) : string

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.

Список параметров

clob_handle

A CLOB handle, returned by fbsql_create_clob().

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns a string containing the specified CLOB data.

Примеры

Пример #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);

?>

Смотрите также

  • fbsql_create_clob() - Create a CLOB
  • fbsql_read_blob() - Read a BLOB from the database
  • fbsql_set_lob_mode() - Set the LOB retrieve mode for a FrontBase result set


Get result data

  • « fbsql_read_clob
  • fbsql_rollback »
  • PHP Manual
  • Функции FrontBase
  • Get result data

fbsql_result

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_result — Get result data

Описание

fbsql_result ( resource $result [, int $row [, mixed $field ]] ) : mixed

Returns the contents of one cell from a FrontBase 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're MUCH quicker than fbsql_result().

Calls to fbsql_result() should not be mixed with calls to other functions that deal with the result set.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

row

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 offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Возвращаемые значения

Смотрите также

Recommended high-performance alternatives:

  • fbsql_fetch_row() - Get a result row as an enumerated array
  • 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_object() - Fetch a result row as an object


Rollback a transaction to the database

  • « fbsql_result
  • fbsql_rows_fetched »
  • PHP Manual
  • Функции FrontBase
  • Rollback a transaction to the database

fbsql_rollback

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_rollback — Rollback a transaction to the database

Описание

fbsql_rollback ([ resource $link_identifier ] ) : bool

Ends the current transaction by rolling back all statements issued since last commit.

This command is only needed if autocommit is set to false.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fbsql_autocommit() - Enable or disable autocommit
  • fbsql_commit() - Commits a transaction to the database


Get the number of rows affected by the last statement

  • « fbsql_rollback
  • fbsql_select_db »
  • PHP Manual
  • Функции FrontBase
  • Get the number of rows affected by the last statement

fbsql_rows_fetched

(PHP 5 >= 5.1.0, PHP 7)

fbsql_rows_fetched — Get the number of rows affected by the last statement

Описание

fbsql_rows_fetched ( resource $result ) : int

Gets the number of rows affected by the last statement.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Returns the number of rows, as an integer.


Select a FrontBase database

  • « fbsql_rows_fetched
  • fbsql_set_characterset »
  • PHP Manual
  • Функции FrontBase
  • Select a FrontBase database

fbsql_select_db

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_select_db — Select a FrontBase database

Описание

fbsql_select_db ([ string $database_name [, resource $link_identifier ]] ) : bool

Sets the current active database on the given link identifier.

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.

Список параметров

database_name

The name of the database to be selected.

If the database is protected with a database password, the you must call fbsql_database_password() before selecting the database.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fbsql_connect() - Open a connection to a FrontBase Server
  • fbsql_pconnect() - Open a persistent connection to a FrontBase Server
  • fbsql_database_password() - Sets or retrieves the password for a FrontBase database
  • fbsql_query() - Send a FrontBase query


Change input/output character set

  • « fbsql_select_db
  • fbsql_set_lob_mode »
  • PHP Manual
  • Функции FrontBase
  • Change input/output character set

fbsql_set_characterset

(PHP 5 >= 5.1.0, PHP 7)

fbsql_set_characterset — Change input/output character set

Описание

fbsql_set_characterset ( resource $link_identifier , int $characterset [, int $in_out_both ] ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Set the LOB retrieve mode for a FrontBase result set

  • « fbsql_set_characterset
  • fbsql_set_password »
  • PHP Manual
  • Функции FrontBase
  • Set the LOB retrieve mode for a FrontBase result set

fbsql_set_lob_mode

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_set_lob_mode — Set the LOB retrieve mode for a FrontBase result set

Описание

fbsql_set_lob_mode ( resource $result , int $lob_mode ) : bool

Sets the mode for retrieving LOB data from the database.

When BLOB and CLOB data is retrieved in FrontBase it can be retrieved direct or indirect. Direct retrieved 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 retrieved directly.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

lob_mode

Can be one of:

  • 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'.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fbsql_create_blob() - Create a BLOB
  • fbsql_create_clob() - Create a CLOB
  • fbsql_read_blob() - Read a BLOB from the database
  • fbsql_read_clob() - Read a CLOB from the database


Change the password for a given user

  • « fbsql_set_lob_mode
  • fbsql_set_transaction »
  • PHP Manual
  • Функции FrontBase
  • Change the password for a given user

fbsql_set_password

(PHP 5, PHP 7)

fbsql_set_password — Change the password for a given user

Описание

fbsql_set_password ( resource $link_identifier , string $user , string $password , string $old_password ) : bool

Changes the password for the given user.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

user

The user name.

password

The new password to be set.

old_password

The old password to be replaced.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set the transaction locking and isolation

  • « fbsql_set_password
  • fbsql_start_db »
  • PHP Manual
  • Функции FrontBase
  • Set the transaction locking and isolation

fbsql_set_transaction

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_set_transaction — Set the transaction locking and isolation

Описание

fbsql_set_transaction ( resource $link_identifier , int $locking , int $isolation ) : void

Sets the transaction locking and isolation.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

locking

The type of locking to be set. It can be one of the following constants: FBSQL_LOCK_DEFERRED, FBSQL_LOCK_OPTIMISTIC, or FBSQL_LOCK_PESSIMISTIC.

isolation

The type of isolation to be set. It can be one of the following constants: FBSQL_ISO_READ_UNCOMMITTED, FBSQL_ISO_READ_COMMITTED, FBSQL_ISO_REPEATABLE_READ, FBSQL_ISO_SERIALIZABLE, or FBSQL_ISO_VERSIONED.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Start a database on local or remote server

  • « fbsql_set_transaction
  • fbsql_stop_db »
  • PHP Manual
  • Функции FrontBase
  • Start a database on local or remote server

fbsql_start_db

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_start_db — Start a database on local or remote server

Описание

fbsql_start_db ( string $database_name [, resource $link_identifier [, string $database_options ]] ) : bool

Start a database on local or remote server.

Список параметров

database_name

The database name.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

database_options

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fbsql_db_status() - Get the status for a given database
  • fbsql_stop_db() - Stop a database on local or remote server


Stop a database on local or remote server

  • « fbsql_start_db
  • fbsql_table_name »
  • PHP Manual
  • Функции FrontBase
  • Stop a database on local or remote server

fbsql_stop_db

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_stop_db — Stop a database on local or remote server

Описание

fbsql_stop_db ( string $database_name [, resource $link_identifier ] ) : bool

Stops a database on local or remote server.

Список параметров

database_name

The database name.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fbsql_db_status() - Get the status for a given database
  • fbsql_start_db() - Start a database on local or remote server


Get table name of field

  • « fbsql_stop_db
  • fbsql_tablename »
  • PHP Manual
  • Функции FrontBase
  • Get table name of field

fbsql_table_name

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_table_name — Get table name of field

Описание

fbsql_table_name ( resource $result , int $index ) : string

fbsql_table_name() gets the name of the current table in the given result set.

The fbsql_num_rows() function may be used to determine the number of tables in the result pointer.

Список параметров

result

A result pointer returned by fbsql_list_tables().

index

Integer index for the current table.

Возвращаемые значения

Returns the name of the table, as a string.

Примеры

Пример #1 fbsql_table_name() example

<?php
fbsql_connect("localhost", "_SYSTEM", "");
$result = fbsql_list_tables("wisconsin");
$i = 0;
while ($i < fbsql_num_rows($result)) {
    $tb_names[$i] = fbsql_table_name($result, $i);
    echo $tb_names[$i] . "<br />";
    $i++;
}
?>


Псевдоним fbsql_table_name

  • « fbsql_table_name
  • fbsql_username »
  • PHP Manual
  • Функции FrontBase
  • Псевдоним fbsql_table_name

fbsql_tablename

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_tablename — Псевдоним fbsql_table_name()

Описание

Эта функция является псевдонимом: fbsql_table_name().


Get or set the username for the connection

  • « fbsql_tablename
  • fbsql_warnings »
  • PHP Manual
  • Функции FrontBase
  • Get or set the username for the connection

fbsql_username

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_username — Get or set the username for the connection

Описание

fbsql_username ( resource $link_identifier [, string $username ] ) : string

Get or set the username used for the connection.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

username

If provided, this is the new username to set.

Возвращаемые значения

Returns the current username used with the connection, as a string.

Смотрите также

  • fbsql_password() - Get or set the user password used with a connection
  • fbsql_hostname() - Get or set the host name used with a connection


Enable or disable FrontBase warnings

  • « fbsql_username
  • IBM DB2 »
  • PHP Manual
  • Функции FrontBase
  • Enable or disable FrontBase warnings

fbsql_warnings

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_warnings — Enable or disable FrontBase warnings

Описание

fbsql_warnings ([ bool $OnOff ] ) : bool

Enables or disables FrontBase warnings.

Список параметров

OnOff

Whether to enable warnings or no.

Возвращаемые значения

Returns TRUE if warnings is turned on, FALSE otherwise.

Смотрите также

  • fbsql_errno() - Returns the error number from previous operation
  • fbsql_error() - Returns the error message from previous operation


IBM DB2, Cloudscape и Apache Derby

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции IBM DB2
    • db2_autocommit — Возвращает или устанавливает режим автоподтверждения транзакций для соединения
    • db2_bind_param — Binds a PHP variable to an SQL statement parameter
    • db2_client_info — Возвращает объект со свойствами, описывающими клиента DB2
    • db2_close — Закрывает соединение с базой данных
    • db2_column_privileges — Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
    • db2_columns — Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
    • db2_commit — Подтверждает транзакцию
    • 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 — Возвращает тип курсора, который используется в ресурсе оператора
    • db2_escape_string — Используется для экранирования некоторых символов
    • 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_get_option — Retrieves an option value for a statement resource or a connection resource
    • db2_last_insert_id — Returns the auto generated ID of the last insert query that successfully executed on this connection
    • db2_lob_read — Gets a user defined size of LOB files with each invocation
    • db2_next_result — Requests the next result set from a stored procedure
    • db2_num_fields — Возвращает количество полей в результирующем наборе
    • db2_num_rows — Returns the number of rows affected by an SQL statement
    • db2_pclose — Closes a persistent database connection
    • 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 — Откатывает транзакцию
    • db2_server_info — Returns an object with properties that describe the DB2 database server
    • db2_set_option — Установка опции для соединения или ресурса оператора
    • 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


Введение

Эти функции позволят вам получить доступ к базам данных IBM DB2 Universal Database, IBM Cloudscape и Apache Derby, используя DB2 Call Level Interface (DB2 CLI).


Требования

Для соединения с IBM DB2 Universal Database под Linux, UNIX и Windows, IBM Cloudscape или Apache Derby, вы должны установить клиента IBM DB2 Universal Database на той же машине, где будет работать PHP. Модуль разрабатывался и тестировался с DB2 версии 8.2.

Для соединения с IBM DB2 Universal Database под z/OS или iSeries, вам нужен IBM DB2 Connect или эквивалентное ПО, способное быть шлюзом DRDA.

Требования под Linux или Unix

Для доступа к функциям модуля из PHP, вам необходимо сначала задать экземпляр DB2 с которым вы будете работать. Его можно задать в php.ini с помощью опции ibm_db2.instance_name или вы можете создать профиль экземпляра DB2.

Если вы, к примеру, создадите экземпляр DB2 с именем db2inst1 в /home/db2inst1/, вы можете добавить следующую запись в php.ini:

ibm_db2.instance_name=db2inst1
Если вы не задали имя экземпляра php.ini, вы должны выполнить следующую команду, изменяющую переменные окружения, для доступа к DB2:
bash$ source /home/db2inst1/sqllib/db2profile
Для разрешения доступа вашему веб-серверу к функциям модуля, вы должны либо задать опцию ibm_db2.instance_name в php.ini, либо обеспечить выставление соответствующих переменных окружения DB2 в вашем скрипте запуска веб-сервера (обычно это /etc/init.d/httpd или /etc/init.d/apache).


Установка

Для сборки модуля ibm_db2, сначала необходимо установить разработческие библиотеки и заголовочные файлы DB2. DB2 не устанавливает их по умолчанию, так что вам придется запустить пакет установки DB2 и добавить эти опции. Заголовочные файлы включены в DB2 Application Development Client, доступный для свободного скачивания с » сайта поддержки IBM DB2 Universal Database.

Если вы добавили необходимые библиотеки и заголовочные файлы на Linux или Unix системе, где уже была установлена база DB2, вам нужно будет запустить команду db2iupdt -e для обновления символических ссылок на них в вашем экземпляре DB2.

ibm_db2 является модулем » PECL, так что действуйте в соответствии с инструкциями Установка модулей PECL для его установки. Используйте команду configure для задания расположения библиотек и заголовочных файлов DB2, таким образом:

bash$ ./configure --with-IBM_DB2=/path/to/DB2
По умолчанию, configure использует путь /opt/IBM/db2/V8.1.

Замечание: Замечание для пользователей IIS

Если вы используете драйвер ibm_db2 с Microsoft Internet Information Server (IIS), вы должны сделать следующее:

  • Установите DB2 с расширенной безопасностью операционной системы.
  • Добавьте путь к исполняемому файлу PHP в системную переменную окружения PATH (по умолчанию C:\php\).
  • Создайте еще одну системную переменную окружения, содержащую путь к PHP.INI (например: PHPRC = C:\php\).
  • Добавьте IUSR_COMPUTERNAME в группу DB2USERS.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

ibm_db2 Опции настройки
Имя | По умолчанию | Место изменения | Лог изменений
ibm_db2.binmode | "1" | PHP_INI_ALL |
ibm_db2.i5_all_pconnect | "0" | PHP_INI_SYSTEM | Доступно с ibm_db2 1.6.5.
ibm_db2.i5_allow_commit | "0" | PHP_INI_SYSTEM | Доступно с ibm_db2 1.4.9.
ibm_db2.i5_dbcs_alloc | "0" | PHP_INI_SYSTEM | Доступно с ibm_db2 1.5.0.
ibm_db2.instance_name | NULL | PHP_INI_SYSTEM | Доступно с ibm_db2 1.0.2.
ibm_db2.i5_ignore_userid | "0" | PHP_INI_SYSTEM | Доступно с ibm_db2 1.8.0.

Краткое разъяснение конфигурационных директив.

ibm_db2.binmode integer

Эта опция контролирует режим конвертации из/в бинарные данные в приложении PHP.

  • 1 (DB2_BINARY)

  • 2 (DB2_CONVERT)

  • 3 (DB2_PASSTHRU)

ibm_db2.i5_all_pconnect integer

Эта опция полностью переопределяет поведение i5 db2_connect(). Если ibm_db2.i5_all_pconnect = 1, все соединения с DB2 будут постоянными (db2_pconnect()). На i5/OS использовать db2_pconnect() гораздо, категорически, лучше чем db2_connect(). Эта установка переопределяет db2_connect() таким образом, что всегда вызывается db2_pconnect(), что позволяет не переписывать код приложения.

  • 0 - db2_connect() работает штатно

  • 1 - db2_connect() работает как db2_pconnect()

ibm_db2.i5_allow_commit integer

Эта опция контролирует уровень изоляции, используемый для i5 схемы коллекций в приложении PHP (смотри i5_commit для переопределения).

  • 0 - контроль обязательств не используется.

  • 1 - read uncommitted, возможно грязное чтение.

  • 2 - read committed, грязное чтение не возможно.

  • 3 - repeatable read, грязное и неповторяющееся чтение не возможны.

  • 4 - serializeable, грязное чтение, неповторяющееся чтение и фантомы не возможны.

ibm_db2.i5_dbcs_alloc integer

Эта опция контролирует внутреннют схему расположения для больших буферов колонок DBCS.

  • 0 - нет расширенного размещения (смотри i5_dbcs_alloc для переопределения)

  • 1 - использовать расширенное размещение (смотри i5_dbcs_alloc для переопределения)

ibm_db2.instance_name string

В операционных системах Linux и UNIX, эта опция задает имя экземпляра для использования каталогизированных соединений с базой данных. Если эта опция определена, ее значение используется вместо значения переменной окружения DB2INSTANCE.

Эта опция игнорируется в Windows .

ibm_db2.i5_ignore_userid integer

Эта опция переопределяет userid и password для i5 db2_(p)connect в приложении PHP. Если ibm_db2.i5_ignore_userid = 1, все соединения будут происходить с userid=NULL и password=NULL. Следовательно задания Apache будут соединяться с текущим профайлом (NOBODY). Используйте это переопределение только для простых вебсайтов, не требующих переключения профайлов и, следовательно, сможете избежать всех накладных расходов связанных с дополнительными задачами QSQSRVR. Это простое решение для обнуления userid и password без внесения изменений в код PHP. Это переопределение можно использовать вместе с ibm_db2.i5_all_pconnect = 1.

  • 0 - db2_(p)connect использует переданные userid и password

  • 1 - db2_(p)connect считает userid и password за NULL


Типы ресурсов

Модуль ibm_db2 возвращает три типа ресурсов: ресурс соединения, ресурс оператора и ресурс результирующего набора.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

DB2_BINARY (integer)
Указывает, что бинарные данные должны быть возвращены как есть. Этот режим используется по умолчанию.
DB2_CONVERT (integer)
Указывает, что бинарные данные должны конвертироваться в шестнадцатеричный формат и возвращаться как строка ASCII.
DB2_PASSTHRU (integer)
Указывает, что бинарные данные должны быть конвертированы в NULL.
DB2_SCROLLABLE (integer)
Курсор "scrollable" - перематываемый. Этот режим разрешает случайный доступ к строкам в результирующем наборе, но в данный момент поддерживается только для IBM DB2 Universal Database.
DB2_FORWARD_ONLY (integer)
Курсор "forward-only" - только вперед. Используется по умолчанию и поддерживается всеми серверами баз данных.
DB2_PARAM_IN (integer)
Указанная переменная PHP должна быть привязана как параметр IN для хранимой процедуры.
DB2_PARAM_OUT (integer)
Указанная переменная PHP должна быть привязана как параметр OUT для хранимой процедуры.
DB2_PARAM_INOUT (integer)
Указанная переменная PHP должна быть привязана как параметр INOUT для хранимой процедуры.
DB2_PARAM_FILE (integer)
Указывает, что столбец должен быть привязан непосредственно к файлу для ввода.
DB2_AUTOCOMMIT_ON (integer)
Указывает, что необходимо включить режим автоподтверждения транзакции.
DB2_AUTOCOMMIT_OFF (integer)
Указывает, что необходимо отключить режим автоподтверждения транзакции.
DB2_DOUBLE (integer)
Указывает, что переменная должна быть связана как тип данных DOUBLE, FLOAT или REAL.
DB2_LONG (integer)
Указывает, что переменная должна быть связана как тип данных SMALLINT, INTEGER или BIGINT.
DB2_CHAR (integer)
Указывает, что переменная должна быть связана как тип данных CHAR или VARCHAR.
DB2_CASE_NATURAL (integer)
Указывает, что имена столбцов должны возвращаться как есть, без изменения регистра символов.
DB2_CASE_LOWER (integer)
Указывает, что имена столбцов должны возвращаться в нижнем регистре.
DB2_CASE_UPPER (integer)
Указывает, что имена столбцов должны возвращаться в верхнем регистре.
DB2_DEFERRED_PREPARE_ON (integer)
Указывает, что для данного ресурса оператора должен быть включен режим отложенной подготовки запроса.
DB2_DEFERRED_PREPARE_OFF (integer)
Указывает, что для данного ресурса оператора должен быть отключен режим отложенной подготовки запроса.


Функции IBM DB2

Содержание

  • db2_autocommit — Возвращает или устанавливает режим автоподтверждения транзакций для соединения
  • db2_bind_param — Binds a PHP variable to an SQL statement parameter
  • db2_client_info — Возвращает объект со свойствами, описывающими клиента DB2
  • db2_close — Закрывает соединение с базой данных
  • db2_column_privileges — Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns — Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_commit — Подтверждает транзакцию
  • 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 — Возвращает тип курсора, который используется в ресурсе оператора
  • db2_escape_string — Используется для экранирования некоторых символов
  • 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_get_option — Retrieves an option value for a statement resource or a connection resource
  • db2_last_insert_id — Returns the auto generated ID of the last insert query that successfully executed on this connection
  • db2_lob_read — Gets a user defined size of LOB files with each invocation
  • db2_next_result — Requests the next result set from a stored procedure
  • db2_num_fields — Возвращает количество полей в результирующем наборе
  • db2_num_rows — Returns the number of rows affected by an SQL statement
  • db2_pclose — Closes a persistent database connection
  • 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 — Откатывает транзакцию
  • db2_server_info — Returns an object with properties that describe the DB2 database server
  • db2_set_option — Установка опции для соединения или ресурса оператора
  • 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


Возвращает или устанавливает режим автоподтверждения транзакций для соединения

  • « Функции IBM DB2
  • db2_bind_param »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает или устанавливает режим автоподтверждения транзакций для соединения

db2_autocommit

(PECL ibm_db2 >= 1.0.0)

db2_autocommit — Возвращает или устанавливает режим автоподтверждения транзакций для соединения

Описание

db2_autocommit ( resource $connection [, bool $value ] ) : mixed

Возвращает или устанавливает режим автоподтверждения транзакций для указанного соединения.

Список параметров

connection

Переменная содержащая активный ресурс подключения, полученный с помощью db2_connect() или db2_pconnect().

value

Одна из следующих констант:

DB2_AUTOCOMMIT_OFF

Отключает автоподтверждение.

DB2_AUTOCOMMIT_ON

Включает автоподтверждение.

Возвращаемые значения

Если в db2_autocommit() передать только параметр connection, она вернет значение текущего режима для этого соединения в виде целого числа принимающего значение DB2_AUTOCOMMIT_OFF, если автоподтверждение отключено и DB2_AUTOCOMMIT_ON, если включено.

Если в db2_autocommit() переданы оба параметра, connection и autocommit, она попытается установить для заданного соединения указанный режим автоподтверждения. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Получение текущего режима автоподтверждения транзакций

В следующем примере мы создадим соединение с отключенным автоподтверждением и проверим его с помощью db2_autocommit().

<?php
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);
$conn = db2_connect($database, $user, $password, $options);
$ac = db2_autocommit($conn);
if ($ac == DB2_AUTOCOMMIT_OFF) {
    print "$ac -- автоподтверждение включено.";
} else {
    print "$ac -- автоподтверждение отключено.";
}
?>

Результат выполнения данного примера:

0 -- автоподтверждение отключено.

Пример #2 Установка режима автоподтверждения транзакции

В следующем примере мы создадим соединение с отключенным автоподтверждением, после чего его включим и проверим.

<?php
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);
$conn = db2_connect($database, $user, $password, $options);

// Включаем автоподтверждение
$rc = db2_autocommit($conn, DB2_AUTOCOMMIT_ON);
if ($rc) {
    print "Автоподтверждение успешно включено.\n";
}

// ппроверяет текущий режим
$ac = db2_autocommit($conn);
if ($ac == DB2_AUTOCOMMIT_OFF) {
    print "$ac -- автоподтверждение включено.";
} else {
    print "$ac -- автоподтверждение отключено.";
}
?>

Результат выполнения данного примера:

Автоподтверждение успешно включено.
1 -- автоподтверждение включено.

Смотрите также

  • db2_connect() - Returns a connection to a database
  • db2_pconnect() - Returns a persistent connection to a database


Binds a PHP variable to an SQL statement parameter

  • « db2_autocommit
  • db2_client_info »
  • PHP Manual
  • Функции IBM DB2
  • Binds a PHP variable to an SQL statement parameter

db2_bind_param

(PECL ibm_db2 >= 1.0.0)

db2_bind_param — Binds a PHP variable to an SQL statement parameter

Описание

db2_bind_param ( resource $stmt , int $parameter_number , string $variable_name [, int $parameter_type [, int $data_type = 0 [, int $precision = -1 [, int $scale = 0 ]]]] ) : bool

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). To avoid memory overhead, you can also specify DB2_PARAM_FILE to bind the PHP variable to the name of a file that contains large object (BLOB, CLOB, or DBCLOB) data.

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. This parameter can also be used for retrieving XML output values from stored procedures. A non-negative value specifies the maximum size of the XML data that will be retrieved from the database. If this parameter is not used, a default of 1MB will be assumed for retrieving the XML output value from the stored procedure.

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";
$weight = 0;

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: 0

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

Пример #3 Inserting a binary large object (BLOB) directly from a file

The data for large objects are typically stored in files, such as XML documents or audio files. Rather than reading an entire file into a PHP variable, and then binding that PHP variable into an SQL statement, you can avoid some memory overhead by binding the file directly to the input parameter of your SQL statement. The following example demonstrates how to bind a file directly into a BLOB column.

<?php
$stmt = db2_prepare($conn, "INSERT INTO animal_pictures(picture) VALUES (?)");

$picture = "/opt/albums/spook/grooming.jpg";
$rc = db2_bind_param($stmt, 1, "picture", DB2_PARAM_FILE);
$rc = db2_execute($stmt);
?>

Смотрите также

  • db2_execute() - Executes a prepared SQL statement
  • db2_prepare() - Prepares an SQL statement to be executed


Возвращает объект со свойствами, описывающими клиента DB2

  • « db2_bind_param
  • db2_close »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает объект со свойствами, описывающими клиента DB2

db2_client_info

(PECL ibm_db2 >= 1.1.1)

db2_client_info — Возвращает объект со свойствами, описывающими клиента DB2

Описание

db2_client_info ( resource $connection ) : object

Эта функция возвращает объект с доступными только на чтение свойствами, возвращающими информацию о клиенте DB2. Эти свойства перечислены в следующей таблице:

Свойства клиента DB2
Имя свойства | Возвращаемый тип | Описание
APPL_CODEPAGE | int | Кодовая страница приложения.
CONN_CODEPAGE | int | Кодовая страница текущего соединения.
DATA_SOURCE_NAME | string | Имя источника данных (DSN) использовавшееся для создания текущего соединения.
DRIVER_NAME | string | Имя библиотеки реализующей спецификацию DB2 Call Level Interface (CLI).
DRIVER_ODBC_VER | string | Версия ODBC, которую поддерживает клиент DB2. Возвращает строку "MM.mm", где MM - мажор, а mm - минор. Клиент DB2 всегда возвращает "03.51".
DRIVER_VER | string | Версия клиента в виде строки "MM.mm.uuuu", где MM - мажор, mm - минор, а uuuu - уровень обновления. К примеру, "08.02.0001" означает мажорную версию 8, минорную 2 и уровень обновления 1.
ODBC_SQL_CONFORMANCE string

Уровень поддержки клиентом грамматики ODBC SQL:

MINIMUM

Минимальная поддержка грамматики ODBC SQL.

CORE

Базовая поддержка грамматики ODBC SQL.

EXTENDED

Расширенная поддержка грамматики ODBC SQL.

ODBC_VER | string | Версия ODBC, которую поддерживает драйвер ODBC. Возвращает строку формата "MM.mm.rrrr", где MM - мажор, mm - минор и rrrr - версия релиза. Клиент DB2 всегда возвращает "03.01.0000".

Список параметров

connection

Задает активное соединение DB2.

Возвращаемые значения

В случае успеха возвращает объект, иначе FALSE.

Примеры

Пример #1 Пример использования db2_client_info()

Для получения информации вы должны передать корректный ресурс соединения в 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() - Returns an object with properties that describe the DB2 database server


Закрывает соединение с базой данных

  • « db2_client_info
  • db2_column_privileges »
  • PHP Manual
  • Функции IBM DB2
  • Закрывает соединение с базой данных

db2_close

(PECL ibm_db2 >= 1.0.0)

db2_close — Закрывает соединение с базой данных

Описание

db2_close ( resource $connection ) : bool

Функция закрывает соединение с базой DB2, созданное с помощью db2_connect() и возвращает соответствующие ресурсы серверу баз данных.

Если вы попытаетесь закрыть постоянное соединение, созданное с помощью db2_pconnect(), то запрос на закрытие будет проигнорирован и соединение будет доступно для последующего использования.

Список параметров

connection

Активное соединение с DB2.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Закрытие соединения

Следующий пример демонстрирует успешную попытку закрыть соединение с IBM DB2, Cloudscape, или базой данных Apache Derby.

<?php
$conn = db2_connect('SAMPLE', 'db2inst1', 'ibmdb2');
$rc = db2_close($conn);
if ($rc) {
    echo "Соединение закрыто.";
}
?>

Результат выполнения данного примера:

Соединение закрыто.

Смотрите также

  • db2_connect() - Returns a connection to a database
  • db2_pclose() - Closes a persistent database connection
  • db2_pconnect() - Returns a persistent connection to a database


Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы

  • « db2_close
  • db2_columns »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы

db2_column_privileges

(PECL ibm_db2 >= 1.0.0)

db2_column_privileges — Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы

Описание

db2_column_privileges ( resource $connection [, string $qualifier [, string $schema [, string $table-name [, string $column-name ]]]] ) : resource

Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы.

Список параметров

connection

Ресурс соединения с базой данных IBM DB2, Cloudscape или Apache Derby.

qualifier

Квалификатор для баз DB2, работающих на серверах OS/390 или z/OS. В остальных случаях указывайте NULL или пустую строку.

schema

Схема, содержащая таблицы. Для выбора всех схем укажите NULL или пустую строку.

table-name

Имя таблицы или представления. Для выбора всех таблиц укажите NULL или пустую строку.

column-name

Имя столбца. Для выбора всех столбцов укажите NULL или пустую строку.

Возвращаемые значения

Возвращает ресурс оператора с результирующим набором, содержащим строки, описывающие привилегии заданных условиями столбцов. Строки содержат следующие поля:

Имя столбца | Описание
TABLE_CAT | Имя каталога. Если таблица не имеет каталогов, то это поле будет содержать NULL.
TABLE_SCHEM | Имя схемы.
TABLE_NAME | Имя таблицы или представления.
COLUMN_NAME | Имя столбца.
GRANTOR | Идентификатор пользователя, установившего привилегию.
GRANTEE | Идентификатор пользователя, для которого установлена привилегия.
PRIVILEGE | Установленная привилегия.
IS_GRANTABLE | Может ли GRANTEE выдавать эту привилегию другим пользователям.

Смотрите также

  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • 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_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_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


Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы

  • « db2_column_privileges
  • db2_commit »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы

db2_columns

(PECL ibm_db2 >= 1.0.0)

db2_columns — Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы

Описание

db2_columns ( resource $connection [, string $qualifier [, string $schema [, string $table-name [, string $column-name ]]]] ) : resource

Returns a result set listing the columns and associated metadata for a table.

Список параметров

connection

Ресурс соединения с базой данных IBM DB2, Cloudscape или Apache Derby.

qualifier

Квалификатор для баз DB2, работающих на серверах OS/390 или z/OS. В остальных случаях указывайте NULL или пустую строку.

schema

Схема, содержащая таблицы. Для выбора всех схем укажите '%'.

table-name

Имя таблицы или представления. Для выбора всех таблиц укажите NULL или пустую строку.

column-name

Имя столбца. Для выбора всех столбцов укажите NULL или пустую строку.

Возвращаемые значения

Возвращает ресурс оператора с результирующим набором, содержащим строки, описывающие заданные условиями столбцы. Строки содержат следующие поля:

Имя столбца | Описание
TABLE_CAT | Имя каталога. Если таблица не имеет каталогов, то это поле будет содержать NULL.
TABLE_SCHEM | Имя схемы.
TABLE_NAME | Имя таблицы или представления.
COLUMN_NAME | Имя столбца.
DATA_TYPE | Тип данных SQL в виде целого числа.
TYPE_NAME | Текстовое представление типа данных.
COLUMN_SIZE | Размер столбца в виде целого числа.
BUFFER_LENGTH | Максимальное количество байт, необходимое для хранения данных из этого столбца.
DECIMAL_DIGITS | Количество цифр после запятой, или NULL, если не применимо.
NUM_PREC_RADIX | Целое число, равное 10 (если длина числа измеряется в десятичных цифрах), 2 (если длина измеряется в битах), или NULL (если не применимо).
NULLABLE | Целое число, определяющее, может ли столбец принимать значение NULL.
REMARKS | Описание столбца.
COLUMN_DEF | Значение поля по умолчанию.
SQL_DATA_TYPE | Целое число, определяющее длину записи.
SQL_DATETIME_SUB | Возвращает целое число, описывающее подтип данных Datrtime или NULL, если не применимо.
CHAR_OCTET_LENGTH | Максимальная длина в октетах для символьных типов данных. Совпадает с COLUMN_SIZE для однобайтовых символьных данных или NULL для несимвольных данных.
ORDINAL_POSITION | Порядковый номер столбца в таблице. Начинаются с 1.
IS_NULLABLE | Строка равная 'YES', если столбец может быть NULL и 'NO', если нет.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • 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_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_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


Подтверждает транзакцию

  • « db2_columns
  • db2_conn_error »
  • PHP Manual
  • Функции IBM DB2
  • Подтверждает транзакцию

db2_commit

(PECL ibm_db2 >= 1.0.0)

db2_commit — Подтверждает транзакцию

Описание

db2_commit ( resource $connection ) : bool

Подтверждает текущую транзакцию на указанном соединении и начинает новую. По умолчанию, в PHP, используется автоподтверждение транзакций, так что функция db2_commit() нужна только в том случае, если вы принудительно отключили автоподтверждение транзакций для соединения.

Список параметров

connection

Переменная содержащая активный ресурс подключения, полученный с помощью db2_connect() или db2_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • db2_autocommit() - Возвращает или устанавливает режим автоподтверждения транзакций для соединения
  • db2_rollback() - Откатывает транзакцию


Returns a string containing the SQLSTATE returned by the last connection attempt

  • « db2_commit
  • db2_conn_errormsg »
  • PHP Manual
  • Функции IBM DB2
  • Returns a string containing the SQLSTATE returned by the last connection attempt

db2_conn_error

(PECL ibm_db2 >= 1.0.0)

db2_conn_error — Returns a string containing the SQLSTATE returned by the last connection attempt

Описание

db2_conn_error ([ resource $connection ] ) : string

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() - Returns the last connection error message and SQLCODE value
  • db2_connect() - Returns a connection to a database
  • 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


Returns the last connection error message and SQLCODE value

  • « db2_conn_error
  • db2_connect »
  • PHP Manual
  • Функции IBM DB2
  • Returns the last connection error message and SQLCODE value

db2_conn_errormsg

(PECL ibm_db2 >= 1.0.0)

db2_conn_errormsg — Returns the last connection error message and SQLCODE value

Описание

db2_conn_errormsg ([ resource $connection ] ) : string

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() - Returns a string containing the SQLSTATE returned by the last connection attempt
  • db2_connect() - Returns a connection to a database
  • 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


Returns a connection to a database

  • « db2_conn_errormsg
  • db2_cursor_type »
  • PHP Manual
  • Функции IBM DB2
  • Returns a connection to a database

db2_connect

(PECL ibm_db2 >= 1.0.0)

db2_connect — Returns a connection to a database

Описание

db2_connect ( string $database , string $username , string $password [, array $options ] ) : resource

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:

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.

DB2_ATTR_CASE

Passing the DB2_CASE_NATURAL value specifies that column names are returned in natural case.

Passing the DB2_CASE_LOWER value specifies that column names are returned in lower case.

Passing the DB2_CASE_UPPER value specifies that column names are returned in upper case.

CURSOR

Passing the DB2_FORWARD_ONLY value specifies a forward-only cursor for a statement resource. This is the default cursor type and is supported on all database servers.

Passing the DB2_SCROLLABLE value 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.

The following new option is available in ibm_db2 version 1.7.0 and later.

trustedcontext

Passing the DB2_TRUSTED_CONTEXT_ENABLE value turns trusted context on for this connection handle. This parameter cannot be set using db2_set_option().

This key works only if the database is cataloged (even if the database is local), or if you specify the full DSN when you create the connection.

To catalog the database, use following commands:

db2 catalog tcpip node loopback remote <SERVERNAME> server <SERVICENAME>
db2 catalog database <LOCALDBNAME> as <REMOTEDBNAME> at node loopback
db2 "update dbm cfg using svcename <SERVICENAME>"
db2set DB2COMM=TCPIP

The following new i5/OS options are available in ibm_db2 version 1.5.1 and later.

i5_lib

A character value that indicates the default library that will be used for resolving unqualified file references. This is not valid if the connection is using system naming mode.

i5_naming

DB2_I5_NAMING_ON value turns on DB2 UDB CLI iSeries system naming mode. Files are qualified using the slash (/) delimiter. Unqualified files are resolved using the library list for the job.

DB2_I5_NAMING_OFF value turns off DB2 UDB CLI default naming mode, which is SQL naming. Files are qualified using the period (.) delimiter. Unqualified files are resolved using either the default library or the current user ID.

i5_commit

The i5_commit attribute should be set before the db2_connect(). If the value is changed after the connection has been established, and the connection is to a remote data source, the change does not take effect until the next successful db2_connect() for the connection handle.

Замечание:

The php.ini setting ibm_db2.i5_allow_commit==0 or DB2_I5_TXN_NO_COMMIT is the default, but may be overridden with the i5_commit option.

DB2_I5_TXN_NO_COMMIT - Commitment control is not used.

DB2_I5_TXN_READ_UNCOMMITTED - Dirty reads, nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_READ_COMMITTED - Dirty reads are not possible. Nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_REPEATABLE_READ - Dirty reads and nonrepeatable reads are not possible. Phantoms are possible.

DB2_I5_TXN_SERIALIZABLE - Transactions are serializable. Dirty reads, non-repeatable reads, and phantoms are not possible

i5_query_optimize

DB2_FIRST_IO All queries are optimized with the goal of returning the first page of output as fast as possible. This goal works well when the output is controlled by a user who is most likely to cancel the query after viewing the first page of output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause.

DB2_ALL_IO All queries are optimized with the goal of running the entire query to completion in the shortest amount of elapsed time. This is a good option when the output of a query is being written to a file or report, or the interface is queuing the output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause. This is the default.

i5_dbcs_alloc

DB2_I5_DBCS_ALLOC_ON value turns on DB2 6X allocation scheme for DBCS translation column size growth.

DB2_I5_DBCS_ALLOC_OFF value turns off DB2 6X allocation scheme for DBCS translation column size growth.

Note: php.ini setting ibm_db2.i5_dbcs_alloc==0 or DB2_I5_DBCS_ALLOC_OFF is the default, but may be overridden with the i5_dbcs_alloc option.

i5_date_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) date format yyyy-mm-dd is used. This is the default.

DB2_I5_FMT_USA - The United States date format mm/dd/yyyy is used.

DB2_I5_FMT_EUR - The European date format dd.mm.yyyy is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard date format yyyy-mm-dd is used.

DB2_I5_FMT_MDY - The date format mm/dd/yyyy is used.

DB2_I5_FMT_DMY - The date format dd/mm/yyyy is used.

DB2_I5_FMT_YMD - The date format yy/mm/dd is used.

DB2_I5_FMT_JUL - The Julian date format yy/ddd is used.

DB2_I5_FMT_JOB - The job default is used.

i5_date_sep

DB2_I5_SEP_SLASH - A slash ( / ) is used as the date separator. This is the default.

DB2_I5_SEP_DASH - A dash ( - ) is used as the date separator.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the date separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the date separator.

DB2_I5_SEP_BLANK - A blank is used as the date separator.

DB2_I5_SEP_JOB - The job default is used

i5_time_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) time format hh.mm.ss is used. This is the default.

DB2_I5_FMT_USA - The United States time format hh:mmxx is used, where xx is AM or PM.

DB2_I5_FMT_EUR - The European time format hh.mm.ss is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard time format hh:mm:ss is used.

DB2_I5_FMT_HMS - The hh:mm:ss format is used.

i5_time_sep

DB2_I5_SEP_COLON - A colon ( : ) is used as the time separator. This is the default.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the time separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the time separator.

DB2_I5_SEP_BLANK - A blank is used as the time separator.

DB2_I5_SEP_JOB - The job default is used.

i5_decimal_sep

DB2_I5_SEP_PERIOD - A period ( . ) is used as the decimal separator. This is the default.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the decimal separator.

DB2_I5_SEP_JOB - The job default is used.

The following new i5/OS option is available in ibm_db2 version 1.8.0 and later.

i5_libl

A character value that indicates the library list that will be used for resolving unqualified file references. Specify the library list elements separated by blanks 'i5_libl'=>"MYLIB YOURLIB ANYLIB".

Замечание:

i5_libl calls qsys2/qcmdexc('cmd',cmdlen), which is only available in i5/OS V5R4 and later.

Возвращаемые значения

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.

Пример #4 i5/OS best performance

To achieve best performance for your i5/OS ibm_db2 1.5.1 PHP application use the default host, userid, and password for your db2_connect().

<?php
  $library = "ADC";
  $i5 = db2_connect("", "", "", array("i5_lib"=>"qsys2"));
  $result = db2_exec($i5,
       "select * from systables where table_schema = '$library'");
  while ($row = db2_fetch_both($result)) {
     echo $row['TABLE_NAME']."</br>";
  }
  db2_close($i5);
?>

Результат выполнения данного примера:

ANIMALS
NAMES
PICTURES

Пример #5 Using trusted context

The following example shows how to enable trusted context, switch users, and get the current user ID.

<?php

$database = "SAMPLE";
$hostname = "localhost";
$port = 50000;
$authID = "db2inst1";
$auth_pass = "ibmdb2";

$tc_user = "tcuser";
$tc_pass = "tcpassword";

$dsn = "DATABASE=$database;HOSTNAME=$hostname;PORT=$port;
  PROTOCOL=TCPIP;UID=$authID;PWD=$auth_pass;";
$options = array ("trustedcontext" => DB2_TRUSTED_CONTEXT_ENABLE);

$tc_conn = db2_connect($dsn, "", "", $options);
if($tc_conn) {
    echo "Explicit trusted connection succeeded.\n";

    if(db2_get_option($tc_conn, "trustedcontext")) {
        $userBefore = db2_get_option($tc_conn, "trusted_user");

        //Do some work as user 1.

        //Switching to trusted user.
        $parameters = array("trusted_user" => $tc_user,
          "trusted_password" => $tcuser_pass);
        $res = db2_set_option ($tc_conn, $parameters, 1);

        $userAfter = db2_get_option($tc_conn, "trusted_user");
        //Do more work as trusted user.

        if($userBefore != $userAfter) {
            echo "User has been switched." . "\n";
        }
    }

    db2_close($tc_conn);
}
else {
    echo "Explicit trusted connection failed.\n";
}
?>

Результат выполнения данного примера:

Explicit trusted connection succeeded.
User has been switched.

Смотрите также

  • db2_close() - Закрывает соединение с базой данных
  • db2_pconnect() - Returns a persistent connection to a database


Возвращает тип курсора, который используется в ресурсе оператора

  • « db2_connect
  • db2_escape_string »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает тип курсора, который используется в ресурсе оператора

db2_cursor_type

(PECL ibm_db2 >= 1.0.0)

db2_cursor_type — Возвращает тип курсора, который используется в ресурсе оператора

Описание

db2_cursor_type ( resource $stmt ) : int

Возвращает тип курсора, который используется в ресурсе оператора.

Список параметров

stmt

Корректный ресурс оператора.

Возвращаемые значения

Возвращает либо DB2_FORWARD_ONLY, либо DB2_SCROLLABLE, в зависимости от типа используемого курсора.

Смотрите также

  • db2_prepare() - Prepares an SQL statement to be executed


Используется для экранирования некоторых символов

  • « db2_cursor_type
  • db2_exec »
  • PHP Manual
  • Функции IBM DB2
  • Используется для экранирования некоторых символов

db2_escape_string

(PECL ibm_db2 >= 1.6.0)

db2_escape_string — Используется для экранирования некоторых символов

Описание

db2_escape_string ( string $string_literal ) : string

Добавляет обратных слеши перед специальными символами в переданной строке.

Список параметров

string_literal

Строка, содержащая символы, которые надо экранировать. Символы, которые надо экранировать: \x00, \n, \r, \, ', " и \x1a.

Возвращаемые значения

Возвращает string_literal с экранированными специальными символами.

Примеры

Пример #1 Пример использования db2_escape_string()

Результат выполнения функции db2_escape_string()

<?php

$conn = db2_connect($database, $user, $password);

if ($conn) {
    $str[0] = "All characters: \x00 , \n , \r , \ , ' , \" , \x1a .";
    $str[1] = "Backslash (\). Single quote ('). Double quote (\")";
    $str[2] = "The NULL character \0 must be quoted as well";
    $str[3] = "Intersting characters: \x1a , \x00 .";
    $str[4] = "Nothing to quote";
    $str[5] = 200676;
    $str[6] = "";

    foreach( $str as $string ) {
        echo "db2_escape_string: " . db2_escape_string($string). "\n";
    }
}
?>

Результат выполнения данного примера:

db2_escape_string: All characters: \0 , \n , \r , \\ , \' , \" , \Z .
db2_escape_string: Backslash (\\). Single quote (\'). Double quote (\")
db2_escape_string: The NULL character \0 must be quoted as well
db2_escape_string: Intersting characters: \Z , \0 .
db2_escape_string: Nothing to quote
db2_escape_string: 200676
db2_escape_string:

Смотрите также

  • db2_prepare() - Prepares an SQL statement to be executed


Executes an SQL statement directly

  • « db2_escape_string
  • db2_execute »
  • PHP Manual
  • Функции IBM DB2
  • Executes an SQL statement directly

db2_exec

(PECL ibm_db2 >= 1.0.0)

db2_exec — Executes an SQL statement directly

Описание

db2_exec ( resource $connection , string $statement [, array $options ] ) : resource

Executes an SQL statement directly.

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.

For a description of valid statement options, see db2_set_option().

Возвращаемые значения

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

Пример #3 Returning XML data as an SQL ResultSet

The following example demonstrates how to work with documents stored in a XML column using the SAMPLE database. Using some pretty simple SQL/XML, this example returns some of the nodes in a XML document in an SQL ResultSet format that most users are familiar with.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = 'SELECT * FROM XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" VARCHAR (50) PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) AS T
    WHERE NAME = \'Kathy Smith\'
    ';
$stmt = db2_exec($conn, $query);

while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE\n");
}
db2_close($conn);

?>

Результат выполнения данного примера:

1000     Kathy Smith     416-555-1358
1001     Kathy Smith     905-555-7258

Пример #4 Performing a "JOIN" with XML data

The following example works with documents stored in 2 different XML columns in the SAMPLE database. It creates 2 temporary tables from the XML documents from 2 different columns and returns an SQL ResultSet with information regarding shipping status for the customer.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
    SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
    FROM
    XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" BIGINT PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) as A,
    PURCHASEORDER AS B,
    XMLTABLE (
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
    COLUMNS
    "PONUM"  BIGINT PATH \'@PoNum\',
    "STATUS" VARCHAR (50) PATH \'@Status\'
    ) as C
    WHERE A.CID = B.CUSTID AND
    B.POID = C.PONUM AND
    A.NAME = \'Kathy Smith\'
';

$stmt = db2_exec($conn, $query);

while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE     $row->PONUM     $row->STATUS\n");
}

db2_close($conn);

?>

Результат выполнения данного примера:

1001     Kathy Smith     905-555-7258     5002     Shipped

Пример #5 Returning SQL data as part of a larger XML document

The following example works with a portion of the PRODUCT.DESCRIPTION documents in the SAMPLE database. It creates a XML document containing product description (XML data) and pricing info (SQL data).

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT
XMLSERIALIZE(
XMLQUERY(\'
    declare boundary-space strip;
    declare default element namespace "http://posample.org";
    <promoList> {
    for $prod in $doc/product
    where $prod/description/price < 10.00
    order by $prod/description/price ascending
    return(
        <promoitem> {
        $prod,
        <startdate> {$start} </startdate>,
        <enddate> {$end} </enddate>,
        <promoprice> {$promo} </promoprice>
        } </promoitem>
    )
    } </promoList>
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = \'100-100-01\'
';

$stmt = db2_exec($conn, $query);

while($row = db2_fetch_array($stmt)){
    printf("$row[0]\n");
}
db2_close($conn);

?>

Результат выполнения данного примера:

<promoList xmlns="http://posample.org">
    <promoitem>
    <product pid="100-100-01">
        <description>
            <name>Snow Shovel, Basic 22 inch</name>
            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
            <price>9.99</price>
            <weight>1 kg</weight>
        </description>
    </product>
    <startdate>2004-11-19</startdate>
    <enddate>2004-12-19</enddate>
    <promoprice>7.25</promoprice>
    </promoitem>
</promoList>

Смотрите также

  • db2_execute() - Executes a prepared SQL statement
  • db2_prepare() - Prepares an SQL statement to be executed


Executes a prepared SQL statement

  • « db2_exec
  • db2_fetch_array »
  • PHP Manual
  • Функции IBM DB2
  • Executes a prepared SQL statement

db2_execute

(PECL ibm_db2 >= 1.0.0)

db2_execute — Executes a prepared SQL statement

Описание

db2_execute ( resource $stmt [, array $parameters ] ) : bool

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!

Пример #3 Returning XML data as an SQL ResultSet

The following example demonstrates how to work with documents stored in a XML column using the SAMPLE database. Using some pretty simple SQL/XML, this example returns some of the nodes in a XML document in an SQL ResultSet format that most users are familiar with.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = 'SELECT * FROM XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" VARCHAR (50) PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) AS T
    WHERE NAME = ?
    ';

$stmt = db2_prepare($conn, $query);

$name = 'Kathy Smith';

if ($stmt) {
    db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE\n");
    }
}
db2_close($conn);

?>

Результат выполнения данного примера:

1000     Kathy Smith     416-555-1358
1001     Kathy Smith     905-555-7258

Пример #4 Performing a "JOIN" with XML data

The following example works with documents stored in 2 different XML columns in the SAMPLE database. It creates 2 temporary tables from the XML documents from 2 different columns and returns an SQL ResultSet with information regarding shipping status for the customer.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
FROM
XMLTABLE(
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
COLUMNS
"CID" BIGINT PATH \'@Cid\',
"NAME" VARCHAR (50) PATH \'name\',
"PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
) as A,
PURCHASEORDER AS B,
XMLTABLE (
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
COLUMNS
"PONUM"  BIGINT PATH \'@PoNum\',
"STATUS" VARCHAR (50) PATH \'@Status\'
) as C
WHERE A.CID = B.CUSTID AND
    B.POID = C.PONUM AND
    A.NAME = ?
';

$stmt = db2_prepare($conn, $query);

$name = 'Kathy Smith';

if ($stmt) {
    db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE     $row->PONUM     $row->STATUS\n");
    }
}

db2_close($conn);

?>

Результат выполнения данного примера:

1001     Kathy Smith     905-555-7258     5002     Shipped

Пример #5 Returning SQL data as part of a larger XML document

The following example works with a portion of the PRODUCT.DESCRIPTION documents in the SAMPLE database. It creates a XML document containing product description (XML data) and pricing info (SQL data).

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT
XMLSERIALIZE(
XMLQUERY(\'
    declare boundary-space strip;
    declare default element namespace "http://posample.org";
    <promoList> {
    for $prod in $doc/product
    where $prod/description/price < 10.00
    order by $prod/description/price ascending
    return(
        <promoitem> {
        $prod,
        <startdate> {$start} </startdate>,
        <enddate> {$end} </enddate>,
        <promoprice> {$promo} </promoprice>
            } </promoitem>
    )
    } </promoList>
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = ?
';

$stmt = db2_prepare($conn, $query);

$pid = "100-100-01";

if ($stmt) {
    db2_bind_param($stmt, 1, "pid", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_array($stmt)){
    printf("$row[0]\n");
    }
}

db2_close($conn);

?>

Результат выполнения данного примера:

<promoList xmlns="http://posample.org">
    <promoitem>
    <product pid="100-100-01">
        <description>
            <name>Snow Shovel, Basic 22 inch</name>
            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
            <price>9.99</price>
            <weight>1 kg</weight>
        </description>
    </product>
    <startdate>2004-11-19</startdate>
    <enddate>2004-12-19</enddate>
    <promoprice>7.25</promoprice>
    </promoitem>
</promoList>

Смотрите также

  • db2_exec() - Executes an SQL statement directly
  • 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_row() - Sets the result set pointer to the next row or requested row
  • db2_prepare() - Prepares an SQL statement to be executed
  • db2_result() - Returns a single column from a row in the result set


Returns an array, indexed by column position, representing a row in a result set

  • « db2_execute
  • db2_fetch_assoc »
  • PHP Manual
  • Функции IBM DB2
  • Returns an array, indexed by column position, representing a row in a result set

db2_fetch_array

(PECL ibm_db2 >= 1.0.1)

db2_fetch_array — Returns an array, indexed by column position, representing a row in a result set

Описание

db2_fetch_array ( resource $stmt [, int $row_number = -1 ] ) : array

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_array() from a scrollable cursor

If your result set uses a scrollable cursor, you can call db2_fetch_array() 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() - 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_result() - Returns a single column from a row in the result set


Returns an array, indexed by column name, representing a row in a result set

  • « db2_fetch_array
  • db2_fetch_both »
  • PHP Manual
  • Функции IBM DB2
  • Returns an array, indexed by column name, representing a row in a result set

db2_fetch_assoc

(PECL ibm_db2 >= 1.0.0)

db2_fetch_assoc — Returns an array, indexed by column name, representing a row in a result set

Описание

db2_fetch_assoc ( resource $stmt [, int $row_number = -1 ] ) : array

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() - Returns an array, indexed by column position, 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_result() - Returns a single column from a row in the result set


Returns an array, indexed by both column name and position, representing a row in a result set

  • « db2_fetch_assoc
  • db2_fetch_object »
  • PHP Manual
  • Функции IBM DB2
  • Returns an array, indexed by both column name and position, representing a row in a result set

db2_fetch_both

(PECL ibm_db2 >= 1.0.0)

db2_fetch_both — Returns an array, indexed by both column name and position, representing a row in a result set

Описание

db2_fetch_both ( resource $stmt [, int $row_number = -1 ] ) : array

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() - 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_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_result() - Returns a single column from a row in the result set


Returns an object with properties representing columns in the fetched row

  • « db2_fetch_both
  • db2_fetch_row »
  • PHP Manual
  • Функции IBM DB2
  • Returns an object with properties representing columns in the fetched row

db2_fetch_object

(PECL ibm_db2 >= 1.0.0)

db2_fetch_object — Returns an object with properties representing columns in the fetched row

Описание

db2_fetch_object ( resource $stmt [, int $row_number = -1 ] ) : object

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() - 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_row() - Sets the result set pointer to the next row or requested row
  • db2_result() - Returns a single column from a row in the result set


Sets the result set pointer to the next row or requested row

  • « db2_fetch_object
  • db2_field_display_size »
  • PHP Manual
  • Функции IBM DB2
  • Sets the result set pointer to the next row or requested row

db2_fetch_row

(PECL ibm_db2 >= 1.0.0)

db2_fetch_row — Sets the result set pointer to the next row or requested row

Описание

db2_fetch_row ( resource $stmt [, int $row_number ] ) : bool

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

Пример #2 i5/OS recommended alternatives to db2_fetch_row/db2_result

On i5/OS it is recommended that you use db2_fetch_both(), db2_fetch_array(), or db2_fetch_object() over db2_fetch_row()/db2_result(). In general db2_fetch_row()/db2_result() have more issues with various column types in EBCIDIC to ASCII translation, including possible truncation in DBCS applications. You may also find the performance of db2_fetch_both(), db2_fetch_array(), and db2_fetch_object() to be superior to db2_fetch_row()/db2_result().

<?php
  $conn = db2_connect("","","");
  $sql = 'SELECT SPECIFIC_SCHEMA, SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_CREATED, ROUTINE_BODY, IN_PARMS, OUT_PARMS, INOUT_PARMS, PARAMETER_STYLE, EXTERNAL_NAME, EXTERNAL_LANGUAGE FROM QSYS2.SYSROUTINES FETCH FIRST 2 ROWS ONLY';
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_both($stmt)){
    echo "<br>db2_fetch_both {$row['SPECIFIC_NAME']} {$row['ROUTINE_CREATED']} {$row[5]}";
  }
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_array($stmt)){
    echo "<br>db2_fetch_array {$row[1]}  {$row[5]}";
  }
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_object($stmt)){
    echo "<br>db2_fetch_object {$row->SPECIFIC_NAME} {$row->ROUTINE_CREATED}";
  }
  db2_close($conn);
?>

Результат выполнения данного примера:

db2_fetch_both MATCH_ANIMAL 2006-08-25-17.10.23.775000 2006-08-25-17.10.23.775000
db2_fetch_both MULTIRESULTS 2006-10-17-10.11.05.308000 2006-10-17-10.11.05.308000
db2_fetch_array MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_array MULTIRESULTS 2006-10-17-10.11.05.308000
db2_fetch_object MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_object MULTIRESULTS 2006-10-17-10.11.05.308000

Смотрите также

  • 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_result() - Returns a single column from a row in the result set


Returns the maximum number of bytes required to display a column

  • « db2_fetch_row
  • db2_field_name »
  • PHP Manual
  • Функции IBM DB2
  • Returns the maximum number of bytes required to display a column

db2_field_display_size

(PECL ibm_db2 >= 1.0.0)

db2_field_display_size — Returns the maximum number of bytes required to display a column

Описание

db2_field_display_size ( resource $stmt , mixed $column ) : int

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() - 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


Returns the name of the column in the result set

  • « db2_field_display_size
  • db2_field_num »
  • PHP Manual
  • Функции IBM DB2
  • Returns the name of the column in the result set

db2_field_name

(PECL ibm_db2 >= 1.0.0)

db2_field_name — Returns the name of the column in the result set

Описание

db2_field_name ( resource $stmt , mixed $column ) : string

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() - Returns the maximum number of bytes required to display a column
  • 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


Returns the position of the named column in a result set

  • « db2_field_name
  • db2_field_precision »
  • PHP Manual
  • Функции IBM DB2
  • Returns the position of the named column in a result set

db2_field_num

(PECL ibm_db2 >= 1.0.0)

db2_field_num — Returns the position of the named column in a result set

Описание

db2_field_num ( resource $stmt , mixed $column ) : int

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() - 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_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


Returns the precision of the indicated column in a result set

  • « db2_field_num
  • db2_field_scale »
  • PHP Manual
  • Функции IBM DB2
  • Returns the precision of the indicated column in a result set

db2_field_precision

(PECL ibm_db2 >= 1.0.0)

db2_field_precision — Returns the precision of the indicated column in a result set

Описание

db2_field_precision ( resource $stmt , mixed $column ) : int

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() - 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_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


Returns the scale of the indicated column in a result set

  • « db2_field_precision
  • db2_field_type »
  • PHP Manual
  • Функции IBM DB2
  • Returns the scale of the indicated column in a result set

db2_field_scale

(PECL ibm_db2 >= 1.0.0)

db2_field_scale — Returns the scale of the indicated column in a result set

Описание

db2_field_scale ( resource $stmt , mixed $column ) : int

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() - 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_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


Returns the data type of the indicated column in a result set

  • « db2_field_scale
  • db2_field_width »
  • PHP Manual
  • Функции IBM DB2
  • Returns the data type of the indicated column in a result set

db2_field_type

(PECL ibm_db2 >= 1.0.0)

db2_field_type — Returns the data type of the indicated column in a result set

Описание

db2_field_type ( resource $stmt , mixed $column ) : string

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() - 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_width() - Returns the width of the current value of the indicated column in a result set


Returns the width of the current value of the indicated column in a result set

  • « db2_field_type
  • db2_foreign_keys »
  • PHP Manual
  • Функции IBM DB2
  • Returns the width of the current value of the indicated column in a result set

db2_field_width

(PECL ibm_db2 >= 1.0.0)

db2_field_width — Returns the width of the current value of the indicated column in a result set

Описание

db2_field_width ( resource $stmt , mixed $column ) : int

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() - 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


Returns a result set listing the foreign keys for a table

  • « db2_field_width
  • db2_free_result »
  • PHP Manual
  • Функции IBM DB2
  • Returns a result set listing the foreign keys for a table

db2_foreign_keys

(PECL ibm_db2 >= 1.0.0)

db2_foreign_keys — Returns a result set listing the foreign keys for a table

Описание

db2_foreign_keys ( resource $connection , string $qualifier , string $schema , string $table-name ) : resource

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() - 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_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_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


Frees resources associated with a result set

  • « db2_foreign_keys
  • db2_free_stmt »
  • PHP Manual
  • Функции IBM DB2
  • Frees resources associated with a result set

db2_free_result

(PECL ibm_db2 >= 1.0.0)

db2_free_result — Frees resources associated with a result set

Описание

db2_free_result ( resource $stmt ) : bool

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() - Frees resources associated with the indicated statement resource


Frees resources associated with the indicated statement resource

  • « db2_free_result
  • db2_get_option »
  • PHP Manual
  • Функции IBM DB2
  • Frees resources associated with the indicated statement resource

db2_free_stmt

(PECL ibm_db2 >= 1.0.0)

db2_free_stmt — Frees resources associated with the indicated statement resource

Описание

db2_free_stmt ( resource $stmt ) : bool

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() - Frees resources associated with a result set


Retrieves an option value for a statement resource or a connection resource

  • « db2_free_stmt
  • db2_last_insert_id »
  • PHP Manual
  • Функции IBM DB2
  • Retrieves an option value for a statement resource or a connection resource

db2_get_option

(PECL ibm_db2 >= 1.6.0)

db2_get_option — Retrieves an option value for a statement resource or a connection resource

Описание

db2_get_option ( resource $resource , string $option ) : string

Retrieves the value of a specified option value for a statement resource or a connection resource.

Список параметров

resource

A valid statement resource as returned from db2_prepare() or a valid connection resource as returned from db2_connect() or db2_pconnect().

option

A valid statement or connection options. The following new options are available as of ibm_db2 version 1.6.0. They provide useful tracking information that can be set during execution with db2_get_option().

Замечание:

Prior versions of ibm_db2 do not support these new options.

When the value in each option is being set, some servers might not handle the entire length provided and might truncate the value.

To ensure that the data specified in each option is converted correctly when transmitted to a host system, use only the characters A through Z, 0 through 9, and the underscore (_) or period (.).

userid

SQL_ATTR_INFO_USERID - A pointer to a null-terminated character string used to identify the client user ID sent to the host database server when using DB2 Connect.

Замечание:

DB2 for z/OS and OS/390 servers support up to a length of 16 characters. This user-id is not to be confused with the authentication user-id, it is for identification purposes only and is not used for any authorization.

acctstr

SQL_ATTR_INFO_ACCTSTR - A pointer to a null-terminated character string used to identify the client accounting string sent to the host database server when using DB2 Connect.

Замечание:

DB2 for z/OS and OS/390 servers support up to a length of 200 characters.

applname

SQL_ATTR_INFO_APPLNAME - A pointer to a null-terminated character string used to identify the client application name sent to the host database server when using DB2 Connect.

Замечание:

DB2 for z/OS and OS/390 servers support up to a length of 32 characters.

wrkstnname

SQL_ATTR_INFO_WRKSTNNAME - A pointer to a null-terminated character string used to identify the client workstation name sent to the host database server when using DB2 Connect.

Замечание:

DB2 for z/OS and OS/390 servers support up to a length of 18 characters.

The following table specifies which options are compatible with the available resource types:

Resource-Parameter Matrix
Key | Value | Resource Type
 |  | Connection | Statement | Result Set
userid | SQL_ATTR_INFO_USERID | X | X | -
acctstr | SQL_ATTR_INFO_ACCTSTR | X | X | -
applname | SQL_ATTR_INFO_APPLNAME | X | X | -
wrkstnname | SQL_ATTR_INFO_WRKSTNNAME | X | X | -

Возвращаемые значения

Returns the current setting of the connection attribute provided on success или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Setting and retrieving parameters through a connection resource

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$user     = 'db2inst1';
$password = 'ibmdb2';

/* Obtain Connection Resource */
$conn = db2_connect($database, $user, $password);

echo "Client attributes passed through connection string:\n";

/* Create the associative options array with valid key-value pairs */
/* Assign the attributes through connection string */
/* Access the options specified */
$options1 = array('userid' => 'db2inst1');
$conn1 = db2_connect($database, $user, $password, $options1);
$val = db2_get_option($conn1, 'userid');
echo $val . "\n";

$options2 = array('acctstr' => 'account');
$conn2 = db2_connect($database, $user, $password, $options2);
$val = db2_get_option($conn2, 'acctstr');
echo $val . "\n";

$options3 = array('applname' => 'myapp');
$conn3 = db2_connect($database, $user, $password, $options3);
$val = db2_get_option($conn3, 'applname');
echo $val . "\n";

$options4 = array('wrkstnname' => 'workstation');
$conn4 = db2_connect($database, $user, $password, $options4);
$val = db2_get_option($conn4, 'wrkstnname');
echo $val . "\n";

echo "Client attributes passed post-connection:\n";

/* Create the associative options array with valid key-value pairs */
/* Assign the attributes after a connection is made */
/* Access the options specified */
$options5 = array('userid' => 'db2inst1');
$conn5 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn5, $options5, 1);
$val = db2_get_option($conn5, 'userid');
echo $val . "\n";

$options6 = array('acctstr' => 'account');
$conn6 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn6, $options6, 1);
$val = db2_get_option($conn6, 'acctstr');
echo $val . "\n";

$options7 = array('applname' => 'myapp');
$conn7 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn7, $options7, 1);
$val = db2_get_option($conn7, 'applname');
echo $val . "\n";

$options8 = array('wrkstnname' => 'workstation');
$conn8 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn8, $options8, 1);
$val = db2_get_option($conn8, 'wrkstnname');
echo $val . "\n";
?>

Результат выполнения данного примера:

Client attributes passed through connection string:
db2inst1
account
myapp
workstation
Client attributes passed post-connection:
db2inst1
account
myapp
workstation

Смотрите также

  • db2_connect() - Returns a connection to a database
  • db2_cursor_type() - Возвращает тип курсора, который используется в ресурсе оператора
  • db2_exec() - Executes an SQL statement directly
  • db2_set_option() - Установка опции для соединения или ресурса оператора
  • db2_pconnect() - Returns a persistent connection to a database
  • db2_prepare() - Prepares an SQL statement to be executed


Returns the auto generated ID of the last insert query that successfully executed on this connection

  • « db2_get_option
  • db2_lob_read »
  • PHP Manual
  • Функции IBM DB2
  • Returns the auto generated ID of the last insert query that successfully executed on this connection

db2_last_insert_id

(PECL ibm_db2 >= 1.7.1)

db2_last_insert_id — Returns the auto generated ID of the last insert query that successfully executed on this connection

Описание

db2_last_insert_id ( resource $resource ) : string

Returns the auto generated ID of the last insert query that successfully executed on this connection.

The result of this function is not affected by any of the following:

  • A single row INSERT statement with a VALUES clause for a table without an identity column.

  • A multiple row INSERT statement with a VALUES clause.

  • An INSERT statement with a fullselect.

  • A ROLLBACK TO SAVEPOINT statement.

Список параметров

resource

A valid connection resource as returned from db2_connect() or db2_pconnect(). The value of this parameter cannot be a statement resource or result set resource.

Возвращаемые значения

Returns the auto generated ID of last insert query that successfully executed on this connection.

Примеры

Пример #1 A db2_last_insert_id() example

The following example shows how to return the auto generated ID of last insert query that successfully executed on this connection.

<?php

$database = "SAMPLE";
$user = "db2inst1";
$password = "ibmdb2";

$conn = db2_connect($database, $user, $password);
if($conn) {
    $createTable = "CREATE TABLE lastInsertID
      (id integer GENERATED BY DEFAULT AS IDENTITY, name varchar(20))";
    $insertTable = "INSERT INTO lastInsertID (name) VALUES ('Temp Name')";

    $stmt = @db2_exec($conn, $createTable);

    /* Checking for single row inserted. */
    $stmt = db2_exec($conn, $insertTable);
    $ret =  db2_last_insert_id($conn);
    if($ret) {
        echo "Last Insert ID is : " . $ret . "\n";
    } else {
        echo "No Last insert ID.\n";
    }

    db2_close($conn);
}
else {
    echo "Connection failed.";
}
?>

Результат выполнения данного примера:

Last Insert ID is : 1


Gets a user defined size of LOB files with each invocation

  • « db2_last_insert_id
  • db2_next_result »
  • PHP Manual
  • Функции IBM DB2
  • Gets a user defined size of LOB files with each invocation

db2_lob_read

(PECL ibm_db2 >= 1.6.0)

db2_lob_read — Gets a user defined size of LOB files with each invocation

Описание

db2_lob_read ( resource $stmt , int $colnum , int $length ) : string

Use db2_lob_read() to iterate through a specified column of a result set and retrieve a user defined size of LOB data.

Список параметров

stmt

A valid stmt resource containing LOB data.

colnum

A valid column number in the result set of the stmt resource.

length

The size of the LOB data to be retrieved from the stmt resource.

Возвращаемые значения

Returns the amount of data the user specifies. Returns FALSE if the data cannot be retrieved.

Примеры

Пример #1 Iterating through different types of data

<?php

/* Database Connection Parameters */
$db = 'SAMPLE';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Obtain Connection Resource */
$conn = db2_connect($db,$username,$password);

if ($conn) {
    $drop = 'DROP TABLE clob_stream';
    $result = @db2_exec( $conn, $drop );

    $create = 'CREATE TABLE clob_stream (id INTEGER, my_clob CLOB)';
    $result = db2_exec( $conn, $create );

    $variable = "";
    $stmt = db2_prepare($conn, "INSERT INTO clob_stream (id,my_clob) VALUES (1, ?)");
    $variable = "THIS IS A CLOB TEST. THIS IS A CLOB TEST.";
    db2_bind_param($stmt, 1, "variable", DB2_PARAM_IN);
    db2_execute($stmt);

    $sql = "SELECT id,my_clob FROM clob_stream";
    $result = db2_prepare($conn, $sql);
    db2_execute($result);
    db2_fetch_row($result);
    $i = 0;
    /* Read LOB data */
    while ($data = db2_lob_read($result, 2, 6)) {
        echo "Loop $i: $data\n";
        $i = $i + 1;
    }

    $drop = 'DROP TABLE blob_stream';
    $result = @db2_exec( $conn, $drop );

    $create = 'CREATE TABLE blob_stream (id INTEGER, my_blob CLOB)';
    $result = db2_exec( $conn, $create );

    $variable = "";
    $stmt = db2_prepare($conn, "INSERT INTO blob_stream (id,my_blob) VALUES (1, ?)");
    $variable = "THIS IS A BLOB TEST. THIS IS A BLOB TEST.";
    db2_bind_param($stmt, 1, "variable", DB2_PARAM_IN);
    db2_execute($stmt);

    $sql = "SELECT id,my_blob FROM blob_stream";
    $result = db2_prepare($conn, $sql);
    db2_execute($result);
    db2_fetch_row($result);
    $i = 0;
    /* Read LOB data */
    while ($data = db2_lob_read($result, 2, 6)) {
        echo "Loop $i: $data\n";
        $i = $i + 1;
    }
} else {
    echo 'no connection: ' . db2_conn_errormsg();
}

?>

Результат выполнения данного примера:

Loop 0: THIS I
Loop 1: S A CL
Loop 2: OB TES
Loop 3: T. THI
Loop 4: S IS A
Loop 5:  CLOB
Loop 6: TEST.
Loop 0: THIS I
Loop 1: S A BL
Loop 2: OB TES
Loop 3: T. THI
Loop 4: S IS A
Loop 5:  BLOB
Loop 6: TEST.

Смотрите также

  • db2_bind_param() - Binds a PHP variable to an SQL statement parameter
  • db2_exec() - Executes an SQL statement directly
  • db2_execute() - Executes a prepared SQL statement
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_prepare() - Prepares an SQL statement to be executed
  • db2_result() - Returns a single column from a row in the result set


Requests the next result set from a stored procedure

  • « db2_lob_read
  • db2_num_fields »
  • PHP Manual
  • Функции IBM DB2
  • Requests the next result set from a stored procedure

db2_next_result

(PECL ibm_db2 >= 1.0.0)

db2_next_result — Requests the next result set from a stored procedure

Описание

db2_next_result ( resource $stmt ) : resource

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_next_result
  • db2_num_rows »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает количество полей в результирующем наборе

db2_num_fields

(PECL ibm_db2 >= 1.0.0)

db2_num_fields — Возвращает количество полей в результирующем наборе

Описание

db2_num_fields ( resource $stmt ) : int

Возвращает количество полей в результирующем наборе. Это полезно при обработке результирующих наборов динамически сформированных запросов, или в случае использования хранимых процедур.

Список параметров

stmt

Корректный ресурс оператора, содержащий результирующий набор.

Возвращаемые значения

Возвращает число полей в результирующем наборе или FALSE, если передан некорректный ресурс оператора.

Примеры

Пример #1 Получение количества полей в результирующем наборе

Следующий пример демонстрирует получение количества полей в результирующем наборе.

<?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 "В результирующем наборе {$columns} столбцов.";
?>

Результат выполнения данного примера:

В результирующем наборе 4 столбцов.

Смотрите также

  • db2_execute() - Executes a prepared SQL statement
  • 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


Returns the number of rows affected by an SQL statement

  • « db2_num_fields
  • db2_pclose »
  • PHP Manual
  • Функции IBM DB2
  • Returns the number of rows affected by an SQL statement

db2_num_rows

(PECL ibm_db2 >= 1.0.0)

db2_num_rows — Returns the number of rows affected by an SQL statement

Описание

db2_num_rows ( resource $stmt ) : int

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.


Closes a persistent database connection

  • « db2_num_rows
  • db2_pconnect »
  • PHP Manual
  • Функции IBM DB2
  • Closes a persistent database connection

db2_pclose

(PECL ibm_db2 >= 1.8.0)

db2_pclose — Closes a persistent database connection

Описание

db2_pclose ( resource $resource ) : bool

This function closes a DB2 client connection created with db2_pconnect() and returns the corresponding resources to the database server.

Замечание:

This function is only available on i5/OS in response to i5/OS system administration requests.

If you have a persistent DB2 client connection created with db2_pconnect(), you may use this function to close the connection. To avoid substantial connection performance penalties, this function should only be used in rare cases when the persistent connection has become unresponsive or the persistent connection will not be needed for a long period of time.

Список параметров

connection

Specifies an active DB2 client connection.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Closing a persistent connection

The following example demonstrates a successful attempt to close a connection to an IBM DB2 i5/OS database.

<?php
$conn = db2_pconnect('', '', '');
$rc = db2_pclose($conn);
if ($rc) {
    echo "Connection was successfully closed.";
}
?>

Результат выполнения данного примера:

Connection was successfully closed.

Смотрите также

  • db2_close() - Закрывает соединение с базой данных
  • db2_pconnect() - Returns a persistent connection to a database


Returns a persistent connection to a database

  • « db2_pclose
  • db2_prepare »
  • PHP Manual
  • Функции IBM DB2
  • Returns a persistent connection to a database

db2_pconnect

(PECL ibm_db2 >= 1.0.0)

db2_pconnect — Returns a persistent connection to a database

Описание

db2_pconnect ( string $database , string $username , string $password [, array $options ] ) : resource

Returns a persistent connection to an IBM DB2 Universal Database, IBM Cloudscape, or Apache Derby database.

For more information on persistent connections, refer to Постоянные соединения с базами данных.

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.

Users running version 1.9.0 or later of ibm_db2 should be aware that the extension will perform a transaction rollback on persistent connections at the end of a request, thus ending the transaction. This prevents the transaction block from carrying over to the next request which uses that connection if script execution ends before the transaction block does.

Список параметров

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.

DB2_ATTR_CASE

Passing the DB2_CASE_NATURAL value specifies that column names are returned in natural case.

Passing the DB2_CASE_LOWER value specifies that column names are returned in lower case.

Passing the DB2_CASE_UPPER value specifies that column names are returned in upper case.

CURSOR

Passing the DB2_FORWARD_ONLY value specifies a forward-only cursor for a statement resource. This is the default cursor type and is supported on all database servers.

Passing the DB2_SCROLLABLE value 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.

The following new option is available in ibm_db2 version 1.7.0 and later.

trustedcontext

Passing the DB2_TRUSTED_CONTEXT_ENABLE value turns trusted context on for this connection handle. This parameter cannot be set using db2_set_option().

This key works only if the database is cataloged (even if the database is local), or if you specify the full DSN when you create the connection.

To catalog the database, use following commands:

db2 catalog tcpip node loopback remote <SERVERNAME> server <SERVICENAME>
db2 catalog database <LOCALDBNAME> as <REMOTEDBNAME> at node loopback
db2 "update dbm cfg using svcename <SERVICENAME>"
db2set DB2COMM=TCPIP

The following new i5/OS options are available in ibm_db2 version 1.5.1 and later.

Подсказка

Conflicting connection attributes used in conjunction with persistent connections can produce indeterminate results on i5/OS. Site policies should be establish for all applications using each persistent connection user profile. The default DB2_AUTOCOMMIT_ON is suggested when using persistent connections.

i5_lib

A character value that indicates the default library that will be used for resolving unqualified file references. This is not valid if the connection is using system naming mode.

i5_naming

DB2_I5_NAMING_ON value turns on DB2 UDB CLI iSeries system naming mode. Files are qualified using the slash (/) delimiter. Unqualified files are resolved using the library list for the job.

DB2_I5_NAMING_OFF value turns off DB2 UDB CLI default naming mode, which is SQL naming. Files are qualified using the period (.) delimiter. Unqualified files are resolved using either the default library or the current user ID.

i5_commit

The i5_commit attribute should be set before the db2_pconnect(). If the value is changed after the connection has been established, and the connection is to a remote data source, the change does not take effect until the next successful db2_pconnect() for the connection handle.

Замечание:

The php.ini setting ibm_db2.i5_allow_commit==0 or DB2_I5_TXN_NO_COMMIT is the default, but may be overridden with the i5_commit option.

DB2_I5_TXN_NO_COMMIT - Commitment control is not used.

DB2_I5_TXN_READ_UNCOMMITTED - Dirty reads, nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_READ_COMMITTED - Dirty reads are not possible. Nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_REPEATABLE_READ - Dirty reads and nonrepeatable reads are not possible. Phantoms are possible.

DB2_I5_TXN_SERIALIZABLE - Transactions are serializable. Dirty reads, non-repeatable reads, and phantoms are not possible

i5_query_optimize

DB2_FIRST_IO All queries are optimized with the goal of returning the first page of output as fast as possible. This goal works well when the output is controlled by a user who is most likely to cancel the query after viewing the first page of output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause.

DB2_ALL_IO All queries are optimized with the goal of running the entire query to completion in the shortest amount of elapsed time. This is a good option when the output of a query is being written to a file or report, or the interface is queuing the output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause. This is the default.

i5_dbcs_alloc

DB2_I5_DBCS_ALLOC_ON value turns on DB2 6X allocation scheme for DBCS translation column size growth.

DB2_I5_DBCS_ALLOC_OFF value turns off DB2 6X allocation scheme for DBCS translation column size growth.

Замечание:

The php.ini setting ibm_db2.i5_dbcs_alloc==0 or DB2_I5_DBCS_ALLOC_OFF is the default, but may be overridden with the i5_dbcs_alloc option.

i5_date_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) date format yyyy-mm-dd is used. This is the default.

DB2_I5_FMT_USA - The United States date format mm/dd/yyyy is used.

DB2_I5_FMT_EUR - The European date format dd.mm.yyyy is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard date format yyyy-mm-dd is used.

DB2_I5_FMT_MDY - The date format mm/dd/yyyy is used.

DB2_I5_FMT_DMY - The date format dd/mm/yyyy is used.

DB2_I5_FMT_YMD - The date format yy/mm/dd is used.

DB2_I5_FMT_JUL - The Julian date format yy/ddd is used.

DB2_I5_FMT_JOB - The job default is used.

i5_date_sep

DB2_I5_SEP_SLASH - A slash ( / ) is used as the date separator. This is the default.

DB2_I5_SEP_DASH - A dash ( - ) is used as the date separator.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the date separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the date separator.

DB2_I5_SEP_BLANK - A blank is used as the date separator.

DB2_I5_SEP_JOB - The job default is used

i5_time_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) time format hh.mm.ss is used. This is the default.

DB2_I5_FMT_USA - The United States time format hh:mmxx is used, where xx is AM or PM.

DB2_I5_FMT_EUR - The European time format hh.mm.ss is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard time format hh:mm:ss is used.

DB2_I5_FMT_HMS - The hh:mm:ss format is used.

i5_time_sep

DB2_I5_SEP_COLON - A colon ( : ) is used as the time separator. This is the default.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the time separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the time separator.

DB2_I5_SEP_BLANK - A blank is used as the time separator.

DB2_I5_SEP_JOB - The job default is used.

i5_decimal_sep

DB2_I5_SEP_PERIOD - A period ( . ) is used as the decimal separator. This is the default.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the decimal separator.

DB2_I5_SEP_JOB - The job default is used.

The following new i5/OS option is available in ibm_db2 version 1.8.0 and later.

i5_libl

A character value that indicates the library list that will be used for resolving unqualified file references. Specify the library list elements separated by blanks 'i5_libl'=>"MYLIB YOURLIB ANYLIB".

Замечание:

i5_libl calls qsys2/qcmdexc('cmd',cmdlen), which is only available in i5/OS V5R4 and later.

Возвращаемые значения

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.

Список изменений

Версия | Описание
ibm_db2 1.9.0 | Active transactions within a persistent connection will be rolled back at the end of each request.
ibm_db2 1.8.0 | The i5_libl option is available for i5/OS users.
ibm_db2 1.7.0 | The trustedcontext option is available.
ibm_db2 1.5.1 | The i5_lib, i5_naming, i5_commit, i5_query_optimize, i5_dbcs_alloc, i5_date_fmt, i5_date_sep, i5_time_fmt, i5_time_sep and i5_decimal_sep options are available for i5/OS users.

Примеры

Пример #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.

Пример #2 Using trusted context

The following example shows how to enable trusted context, switch users, and get the current user ID.

<?php

$database = "SAMPLE";
$hostname = "localhost";
$port = 50000;
$authID = "db2inst1";
$auth_pass = "ibmdb2";

$tc_user = "tcuser";
$tc_pass = "tcpassword";

$dsn = "DATABASE=$database;HOSTNAME=$hostname;PORT=$port;
  PROTOCOL=TCPIP;UID=$authID;PWD=$auth_pass;";
$options = array ("trustedcontext" => DB2_TRUSTED_CONTEXT_ENABLE);

$tc_conn = db2_pconnect($dsn, "", "", $options);
if($tc_conn) {
    echo "Explicit trusted connection succeeded.\n";

    if(db2_get_option($tc_conn, "trustedcontext")) {
        $userBefore = db2_get_option($tc_conn, "trusted_user");

        //Do some work as user 1.

        //Switching to trusted user.
        $parameters = array("trusted_user" => $tc_user,
          "trusted_password" => $tcuser_pass);
        $res = db2_set_option ($tc_conn, $parameters, 1);

        $userAfter = db2_get_option($tc_conn, "trusted_user");
        //Do more work as trusted user.

        if($userBefore != $userAfter) {
            echo "User has been switched." . "\n";
        }
    }

    db2_close($tc_conn);
}
else {
    echo "Explicit trusted connection failed.\n";
}
?>

Результат выполнения данного примера:

Explicit trusted connection succeeded.
User has been switched.

Смотрите также

  • db2_connect() - Returns a connection to a database


Prepares an SQL statement to be executed

  • « db2_pconnect
  • db2_primary_keys »
  • PHP Manual
  • Функции IBM DB2
  • Prepares an SQL statement to be executed

db2_prepare

(PECL ibm_db2 >= 1.0.0)

db2_prepare — Prepares an SQL statement to be executed

Описание

db2_prepare ( resource $connection , string $statement [, array $options ] ) : resource

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.

For a description of valid statement options, see db2_set_option().

Возвращаемые значения

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() - Binds a PHP variable to an SQL statement parameter
  • db2_execute() - Executes a prepared SQL statement
  • 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


Returns a result set listing primary keys for a table

  • « db2_prepare
  • db2_procedure_columns »
  • PHP Manual
  • Функции IBM DB2
  • Returns a result set listing primary keys for a table

db2_primary_keys

(PECL ibm_db2 >= 1.0.0)

db2_primary_keys — Returns a result set listing primary keys for a table

Описание

db2_primary_keys ( resource $connection , string $qualifier , string $schema , string $table-name ) : resource

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() - Returns a result set listing the foreign 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_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_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


Returns a result set listing stored procedure parameters

  • « db2_primary_keys
  • db2_procedures »
  • PHP Manual
  • Функции IBM DB2
  • Returns a result set listing stored procedure parameters

db2_procedure_columns

(PECL ibm_db2 >= 1.0.0)

db2_procedure_columns — Returns a result set listing stored procedure parameters

Описание

db2_procedure_columns ( resource $connection , string $qualifier , string $schema , string $procedure , string $parameter ) : resource

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() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • 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_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


Returns a result set listing the stored procedures registered in a database

  • « db2_procedure_columns
  • db2_result »
  • PHP Manual
  • Функции IBM DB2
  • Returns a result set listing the stored procedures registered in a database

db2_procedures

(PECL ibm_db2 >= 1.0.0)

db2_procedures — Returns a result set listing the stored procedures registered in a database

Описание

db2_procedures ( resource $connection , string $qualifier , string $schema , string $procedure ) : resource

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() - Returns a result set listing the foreign keys for a table
  • 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_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_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


Returns a single column from a row in the result set

  • « db2_procedures
  • db2_rollback »
  • PHP Manual
  • Функции IBM DB2
  • Returns a single column from a row in the result set

db2_result

(PECL ibm_db2 >= 1.0.0)

db2_result — Returns a single column from a row in the result set

Описание

db2_result ( resource $stmt , mixed $column ) : mixed

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() - 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_result
  • db2_server_info »
  • PHP Manual
  • Функции IBM DB2
  • Откатывает транзакцию

db2_rollback

(PECL ibm_db2 >= 1.0.0)

db2_rollback — Откатывает транзакцию

Описание

db2_rollback ( resource $connection ) : bool

Откатывает текущую транзакцию на указанном соединении и начинает новую. По умолчанию, в PHP, используется автоподтверждение транзакций, так что функция db2_rollback() нужна только в том случае, если вы принудительно отключили автоподтверждение транзакций для соединения.

Список параметров

connection

Переменная содержащая активный ресурс подключения, полученный с помощью db2_connect() или db2_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Откат операции DELETE

В следующем примере мы посчитаем количество строк в таблице, отключим автоподтверждение транзакций, удалим все строки в таблице и убедимся, что их стало 0. После этого мы используем функцию db2_rollback() и проверим, что число строк в таблице стало таким же, как и до удаления - это подтвердит, что транзакция успешно откатилась.

<?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";

    // Отключаем автоподтверждение
    db2_autocommit($conn, DB2_AUTOCOMMIT_OFF);

    // Удаляем все строки из ANIMALS
    db2_exec($conn, "DELETE FROM animals");

    $stmt = db2_exec($conn, "SELECT count(*) FROM animals");
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";

    // Откатываем операцию DELETE
    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() - Подтверждает транзакцию


Returns an object with properties that describe the DB2 database server

  • « db2_rollback
  • db2_set_option »
  • PHP Manual
  • Функции IBM DB2
  • Returns an object with properties that describe the DB2 database server

db2_server_info

(PECL ibm_db2 >= 1.1.1)

db2_server_info — Returns an object with properties that describe the DB2 database server

Описание

db2_server_info ( resource $connection ) : object

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:

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


Установка опции для соединения или ресурса оператора

  • « db2_server_info
  • db2_special_columns »
  • PHP Manual
  • Функции IBM DB2
  • Установка опции для соединения или ресурса оператора

db2_set_option

(PECL ibm_db2 >= 1.0.0)

db2_set_option — Установка опции для соединения или ресурса оператора

Описание

db2_set_option ( resource $resource , array $options , int $type ) : bool

Установка опции для соединения или ресурса оператора. Для ресурса результирующего набора опции задавать нельзя.

Список параметров

resource

Корректный ресурс оператора, полученный из db2_prepare() или же ресурс соединения, полученный из db2_connect() или db2_pconnect().

options

Ассоциативный массив, содержащий опции, соответствующие ресурсу. Этот параметр можно использовать для изменения режима автоподтверждения транзакций, типа курсора и задания регистра имен столбцов (нижний, верхний, как есть) в результирующем наборе.

autocommit

DB2_AUTOCOMMIT_ON - включить режим автоподтверждения транзакций для заданного соединения.

DB2_AUTOCOMMIT_OFF - отключить режим автоподтверждения транзакций для заданного соединения.

cursor

DB2_FORWARD_ONLY - задать тип курсора "только вперед". Это тип по умолчанию и он поддерживается всеми базами данных.

DB2_SCROLLABLE - задать тип курсора как "перематываемый". Данный тип курсора позволяет получать доступ к произвольным строкам результирующего набора и доступен только для IBM DB2 Universal Database.

binmode

DB2_BINARY - определяет, что бинарные данные будут возвращены как есть. Это режим по умолчанию, он равносилен заданию ibm_db2.binmode=1 в php.ini.

DB2_CONVERT - определяет, что бинарные данные будут сконвертированы в шестнадцатеричное предстваление. Равносильно заданию ibm_db2.binmode=2 в php.ini.

DB2_CONVERT - определяет, что бинарные данные будут сконвертированы в NULL. Равносильно заданию ibm_db2.binmode=3 в php.ini.

db2_attr_case

DB2_CASE_LOWER - определяет, что имена столбцов будут возвращены в нижнем регистре.

DB2_CASE_UPPER - определяет, что имена столбцов будут возвращены в верхнем регистре.

DB2_CASE_NATURAL - определяет, что имена столбцов будут возвращены как есть.

deferred_prepare

DB2_DEFERRED_PREPARE_ON - включает отложенную подготовку ресурса оператора.

DB2_DEFERRED_PREPARE_OFF - выключает отложенную подготовку ресурса оператора.

Следующие новые опции i5/OS доступны в ibm_db2 версии 1.5.1 и выше. Эти опции доступны только если PHP и ibm_db2 запущены на системе i5.

i5_fetch_only

DB2_I5_FETCH_ON - курсоры могут быть только для чтения и не могут использоваться для позиционирования при DELETE или UPDATE. Является поведением по умолчанию, только если переменная окружения SQL_ATTR_FOR_FETCH_ONLY не установлена в SQL_FALSE.

DB2_I5_FETCH_OFF - курсоры можно использовать для позиционирования при DELETE или UPDATE.

Следующие новые опции доступны в ibm_db2 версии 1.8.0 и выше.

rowcount

DB2_ROWCOUNT_PREFETCH_ON - клиент может запросить количество строк перед извлечением, что означает, что функция db2_num_rows() возвратит количество выбранных строк, даже если используется курсор ROLLFORWARD_ONLY.

DB2_ROWCOUNT_PREFETCH_OFF - клиент не может запросить количество строк перед извлечением

Следующие новые опции доступны в ibm_db2 версии 1.7.0 и выше.

trusted_user

Для переведения пользователя в статус доверенного пользователя, укажите идентификатор (строка) доверенного пользователя в качестве значения этого параметра. Эта опция может быть задана только для ресурса соединения. Для использования этой опции необходимо, чтобы для соединения был разрешендоверенный контекст.

trusted_password

Пароль (строка), соответствующий идентификатору пользователя, заданному в trusted_user.

Следующие новые опции доступны в ibm_db2 версии 1.6.0 и выше. Эти опции предоставляют полезную информацию, которую можно получить через db2_get_option().

Замечание:

Если значения каждой опции задано, некоторые серверы могут не суметь обработать все значение и обрежут его.

Для уверенности в том, что все опции сконвертированы корректно при передаче на хост, используйте только символы A-Z, 0-9, подчеркивание(_) и точку (.).

userid

SQL_ATTR_INFO_USERID - указатель на символьную строку, кончающуюся null-байтом и содержащую идентификатор пользователя, переданный базе данный при соединении.

Замечание:

DB2 для серверов z/OS и OS/390 поддерживает длину вплоть до 16 символов. Идентификатор пользователя никак не скомпрометирует идентификатор авторизации - это разные сущности.

acctstr

SQL_ATTR_INFO_ACCTSTR - указатель на символьную строку, кончающуюся null-байтом и использующуюся для идентификации учетной строки клиента, соответствующей посланой на сервер при соединении.

Замечание:

DB2 для серверов z/OS и OS/390 поддерживает длину вплоть до 200 символов.

applname

SQL_ATTR_INFO_APPLNAME - указатель на символьную строку, кончающуюся null-байтом и использующуюся для идентификации имени клиентского приложения, соответствующей посланой на сервер при соединении.

Замечание:

DB2 для серверов z/OS и OS/390 поддерживает длину вплоть до 32 символов.

wrkstnname

SQL_ATTR_INFO_WRKSTNNAME - указатель на символьную строку, кончающуюся null-байтом и использующуюся для идентификации имени рабочей станции, соответствующей посланой на сервер при соединении.

Замечание:

DB2 для серверов z/OS и OS/390 поддерживает длину вплоть до 18 символов.

type

Целочисленное значение, определяющее тип ресурса, который был передан в функцию.

1 - передан ресурс соединения.

Любое другое значение, отличное от 1 означает ресурс оператора.

Следующая таблица показывает, какие параметры совместимы с какими ресурсами:

Матрица ресурс/параметр
Ключ | Значение | Тип ресурса
 |  | Соединение | Оператор | Результирующий набор
autocommit | DB2_AUTOCOMMIT_ON | X | - | -
autocommit | DB2_AUTOCOMMIT_OFF | X | - | -
cursor | DB2_SCROLLABLE | - | X | -
cursor | DB2_FORWARD_ONLY | - | X | -
binmode | DB2_BINARY | X | X | -
binmode | DB2_CONVERT | X | X | -
binmode | DB2_PASSTHRU | X | X | -
db2_attr_case | DB2_CASE_LOWER | X | X | -
db2_attr_case | DB2_CASE_UPPER | X | X | -
db2_attr_case | DB2_CASE_NATURAL | X | X | -
deferred_prepare | DB2_DEFERRED_PREPARE_ON | - | X | -
deferred_prepare | DB2_DEFERRED_PREPARE_OFF | - | X | -
i5_fetch_only | DB2_I5_FETCH_ON | - | X | -
i5_fetch_only | DB2_I5_FETCH_OFF | - | X | -
rowcount | DB2_ROWCOUNT_PREFETCH_ON | - | X | -
rowcount | DB2_ROWCOUNT_PREFETCH_OFF | - | X | -
trusted_user | <USER NAME> (String) | X | - | -
trusted_password | <PASSWORD> (String) | X | - | -
userid | SQL_ATTR_INFO_USERID | X | X | -
acctstr | SQL_ATTR_INFO_ACCTSTR | X | X | -
applname | SQL_ATTR_INFO_APPLNAME | X | X | -
wrkstnname | SQL_ATTR_INFO_WRKSTNNAME | X | X | -

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Установка одного параметра для ресурса соединения

<?php
/* Параметры соединения с базой данных */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Строка соединения */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Получаем ресурс соединения */
$conn = db2_connect($conn_string, '', '');

/* Создаем ассоциативный массив опций */
$options = array('autocommit' => DB2_AUTOCOMMIT_ON);

/* Вызываем функцию */
$result = db2_set_option($conn, $options, 1);

/* Проверяем, все ли опции установились */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Результат выполнения данного примера:

Options Set Successfully

Пример #2 Установка нескольких параметров для ресурса соединения

<?php
/* Параметры соединения с базой данных */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Строка соединения */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Получаем ресурс соединения */
$conn = db2_connect($conn_string, '', '');

/* Создаем ассоциативный массив опций */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
                    'binmode' => DB2_PASSTHRU,
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

/* Вызываем функцию */
$result = db2_set_option($conn, $options, 1);

/* Проверяем, все ли опции установились */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Результат выполнения данного примера:

Options Set Successfully

Пример #3 Установка нескольких параметров с одним некорректным ключем

<?php
/* Параметры соединения с базой данных */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Строка соединения */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Получаем ресурс соединения */
$conn = db2_connect($conn_string, '', '');

/* Создаем ассоциативный массив опций */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
             'MY_INVALID_KEY' => DB2_PASSTHRU,
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

/* Вызываем функцию */
$result = db2_set_option($conn, $options, 1);

/* Проверяем, все ли опции установились */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Результат выполнения данного примера:

Could Not Set Options

Пример #4 Установка нескольких параметров с одним некорректным значением

<?php
/* Параметры соединения с базой данных */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Строка соединения */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Получаем ресурс соединения */
$conn = db2_connect($conn_string, '', '');

/* Создаем ассоциативный массив опций */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
                    'binmode' => 'INVALID_VALUE',
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

/* Вызываем функцию */
$result = db2_set_option($conn, $options, 1);

/* Проверяем, все ли опции установились */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Результат выполнения данного примера:

Could Not Set Options

Пример #5 Setting multiple parameters with a connection resource and the wrong type

<?php
/* Параметры соединения с базой данных */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Строка соединения */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Получаем ресурс соединения */
$conn = db2_connect($conn_string, '', '');

/* Создаем ассоциативный массив опций */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
                    'binmode' => DB2_PASSTHRU,
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

/* Вызываем функцию */
$result = db2_set_option($conn, $options, 2);

/* Проверяем, все ли опции установились */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Результат выполнения данного примера:

Could Not Set Options

Пример #6 Setting multiple parameters with the wrong resource

<?php
/* Параметры соединения с базой данных */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Строка соединения */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Получаем ресурс соединения */
$conn = db2_connect($conn_string, '', '');

/* Создаем ассоциативный массив опций */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
                    'binmode' => DB2_PASSTHRU,
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

$stmt = db2_prepare($conn, 'SELECT * FROM EMPLOYEE');

/* Вызываем функцию */
$result = db2_set_option($stmt, $options, 1);

/* Проверяем, все ли опции установились */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Результат выполнения данного примера:

Could Not Set Options

Пример #7 Putting it all together

<?php
/* Параметры соединения с базой данных */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Строка соединения */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Получаем ресурс соединения */
$conn = db2_connect($conn_string, '', '');

/* Создаем ассоциативный массив опций */
$options = array('db2_attr_case' => DB2_CASE_LOWER,
                        'cursor' => DB2_SCROLLABLE);

$stmt = db2_prepare($conn, 'SELECT * FROM EMPLOYEE WHERE EMPNO = ? OR EMPNO = ?');

/* Вызываем функцию */
$option_result = db2_set_option($stmt, $options, 2);
$result = db2_execute($stmt, array('000130', '000140'));

/* Получаем строку 2 перед строкой 1. Перематываемый курсор! */
print_r(db2_fetch_assoc($stmt, 2));
print '<br /><br />';
print_r(db2_fetch_assoc($stmt, 1));

?>

Результат выполнения данного примера:

Array
(
    [empno] => 000140
    [firstnme] => HEATHER
    [midinit] => A
    [lastname] => NICHOLLS
    [workdept] => C01
    [phoneno] => 1793
    [hiredate] => 1976-12-15
    [job] => ANALYST
    [edlevel] => 18
    [sex] => F
    [birthdate] => 1946-01-19
    [salary] => 28420.00
    [bonus] => 600.00
    [comm] => 2274.00
)

Array
(
    [empno] => 000130
    [firstnme] => DELORES
    [midinit] => M
    [lastname] => QUINTANA
    [workdept] => C01
    [phoneno] => 4578
    [hiredate] => 1971-07-28
    [job] => ANALYST
    [edlevel] => 16
    [sex] => F
    [birthdate] => 1925-09-15
    [salary] => 23800.00
    [bonus] => 500.00
    [comm] => 1904.00
)

Пример #8 Курсор i5/OS только для чтения

<?php
  $conn = db2_connect("", "", "", array("i5_lib"=>"nobody"));
  $stmt = db2_prepare($conn, 'select * from names where first = ?');
  $name = "first2";
  db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
  $options = array("i5_fetch_only"=>DB2_I5_FETCH_ON);
  db2_set_option($stmt,$options,0);
  if (db2_execute($stmt)) {
    while ($row = db2_fetch_array($stmt)) {
      echo "{$row[0]} {$row[1]}";
    }
  }
?>

Результат выполнения данного примера:

first2 last2

Смотрите также

  • db2_connect() - Returns a connection to a database
  • db2_pconnect() - Returns a persistent connection to a database
  • db2_exec() - Executes an SQL statement directly
  • db2_prepare() - Prepares an SQL statement to be executed
  • db2_cursor_type() - Возвращает тип курсора, который используется в ресурсе оператора


Returns a result set listing the unique row identifier columns for a table

  • « db2_set_option
  • db2_statistics »
  • PHP Manual
  • Функции IBM DB2
  • Returns a result set listing the unique row identifier columns for a table

db2_special_columns

(PECL ibm_db2 >= 1.0.0)

db2_special_columns — Returns a result set listing the unique row identifier columns for a table

Описание

db2_special_columns ( resource $connection , string $qualifier , string $schema , string $table_name , int $scope ) : resource

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() - Returns a result set listing the foreign keys for a table
  • 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_statistics() - Returns a result set listing the index and statistics for a table
  • 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


Returns a result set listing the index and statistics for a table

  • « db2_special_columns
  • db2_stmt_error »
  • PHP Manual
  • Функции IBM DB2
  • Returns a result set listing the index and statistics for a table

db2_statistics

(PECL ibm_db2 >= 1.0.0)

db2_statistics — Returns a result set listing the index and statistics for a table

Описание

db2_statistics ( resource $connection , string $qualifier , string $schema , string $table-name , bool $unique ) : resource

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() - Returns a result set listing the foreign keys for a table
  • 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_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • 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


Returns a string containing the SQLSTATE returned by an SQL statement

  • « db2_statistics
  • db2_stmt_errormsg »
  • PHP Manual
  • Функции IBM DB2
  • Returns a string containing the SQLSTATE returned by an SQL statement

db2_stmt_error

(PECL ibm_db2 >= 1.0.0)

db2_stmt_error — Returns a string containing the SQLSTATE returned by an SQL statement

Описание

db2_stmt_error ([ resource $stmt ] ) : string

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() - 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_stmt_errormsg() - Returns a string containing the last SQL statement error message


Returns a string containing the last SQL statement error message

  • « db2_stmt_error
  • db2_table_privileges »
  • PHP Manual
  • Функции IBM DB2
  • Returns a string containing the last SQL statement error message

db2_stmt_errormsg

(PECL ibm_db2 >= 1.0.0)

db2_stmt_errormsg — Returns a string containing the last SQL statement error message

Описание

db2_stmt_errormsg ([ resource $stmt ] ) : string

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() - 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_stmt_error() - Returns a string containing the SQLSTATE returned by an SQL statement


Returns a result set listing the tables and associated privileges in a database

  • « db2_stmt_errormsg
  • db2_tables »
  • PHP Manual
  • Функции IBM DB2
  • Returns a result set listing the tables and associated privileges in a database

db2_table_privileges

(PECL ibm_db2 >= 1.0.0)

db2_table_privileges — Returns a result set listing the tables and associated privileges in a database

Описание

db2_table_privileges ( resource $connection [, string $qualifier [, string $schema [, string $table_name ]]] ) : resource

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() - Returns a result set listing the foreign keys for a table
  • 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_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_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a result set listing the tables and associated metadata in a database

  • « db2_table_privileges
  • Informix »
  • PHP Manual
  • Функции IBM DB2
  • Returns a result set listing the tables and associated metadata in a database

db2_tables

(PECL ibm_db2 >= 1.0.0)

db2_tables — Returns a result set listing the tables and associated metadata in a database

Описание

db2_tables ( resource $connection [, string $qualifier [, string $schema [, string $table-name [, string $table-type ]]]] ) : resource

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() - Returns a result set listing the foreign keys for a table
  • 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_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_table_privileges() - Returns a result set listing the tables and associated privileges in a database


Informix

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Informix
    • ifx_affected_rows — Получить число строк затронутых запросом
    • ifx_blobinfile_mode — Устанавливает режим BLOB для всех запросов типа SELECT
    • ifx_byteasvarchar — Установить поведение по умолчанию для BYTE
    • ifx_close — Закрыть соединение с Informix
    • ifx_connect — Открытие соединения с базой данных Informix
    • ifx_copy_blob — Создать дубликат заданного объекта BLOB
    • ifx_create_blob — Создать объект BLOB
    • ifx_create_char — Создает символьный объект
    • ifx_do — Запускает подготовленный SQL-запрос
    • ifx_error — Возвращает код ошибки последней операции Informix
    • ifx_errormsg — Возвращает сообщение об ошибке последнего выполненного оператора Informix
    • ifx_fetch_row — Получить строку в виде ассоциативного массива
    • ifx_fieldproperties — Список свойств полей
    • ifx_fieldtypes — Список столбцов
    • ifx_free_blob — Удалить объект BLOB
    • ifx_free_char — Удалить символьный объект
    • ifx_free_result — Высвобождает ресурсы для запроса
    • ifx_get_blob — Возвращает контент объекта BLOB
    • ifx_get_char — Возвращает контент символьного объекта
    • ifx_getsqlca — Получить содержимое sqlca.sqlerrd[0..5] после выполнения запроса
    • ifx_htmltbl_result — Форматирует все строки запроса в виде таблицы HTML
    • ifx_nullformat — Установить возвращаемое по умолчанию значение для NULL
    • ifx_num_fields — Возвращает количество столбцов в запросе
    • ifx_num_rows — Число строк уже извлененных из запроса
    • ifx_pconnect — Open persistent Informix connection
    • ifx_prepare — Подготавливает SQL-запрос для выполнения
    • ifx_query — Send Informix query
    • ifx_textasvarchar — Устанавливает режим чтения TEXT
    • ifx_update_blob — Обновление контента объекта BLOB
    • ifx_update_char — Обновление контента символьного объекта
    • ifxus_close_slob — Удалить объект SLOB
    • ifxus_create_slob — Создать и открыть объект SLOB
    • ifxus_free_slob — Удалить объект SLOB
    • ifxus_open_slob — Открыть объект SLOB
    • ifxus_read_slob — Прочитать заданное количество байт из SLOB
    • ifxus_seek_slob — Задать текущий файл или переместится на позицию
    • ifxus_tell_slob — Возвращает текущий файл или позицию
    • ifxus_write_slob — Записать строку в объект SLOB


Введение

Драйвер для баз данных Informix (IDS) 7.x, SE 7.x, Universal Server (IUS) 9.x и IDS 2000 реализован в "ifx.ec" и "php_informix.h" в директории модуля informix. Поддержка IDS 7.x готова практически полностью, с полной поддержкой столбцов типа BYTE и TEXT. IUS 9.x частично готова: новые типы данных добавлены, но поддержка SLOB и CLOB в процессе создания.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.2.1.


Требования

Замечание: Примечания по конфигурации

Вам необходим ESQL/C для компиляции драйвера PHP Informix. ESQL/C версии 7.2x и выше должен подойти. ESQL/C - это часть Informix Client SDK.

Убедитесь, что переменная "INFORMIXDIR" установлена корректно и $INFORMIXDIR/bin находится в PATH перед тем как запустать скрипт "configure".


Установка

Для включения этого модуля используйте ключ конфигурации --with-informix[=DIR] , где DIR соответствует INFORMIXDIR, т.е. директории установки базы данных.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Замечание:

Убедитесь, что драйверу ifx доступны переменные окружения INFORMIXDIR и INFORMIXSERVER и что директория INFORMIX/bin включена в PATH. Проверить можно запустив скрипт, содержащий команду phpinfo(). В выводе phpinfo() перечислены все установленые переменные окружения. Это работает и для CGI и для Apache mod_php. Необходимо задать эти переменные в скрипте запуска Apache.

Разделяемые библиотеки Informix также должны доступны загрузчику (проверьте LD_LIBRARY_PATH или ld.so.conf/ldconfig).

Замечание: Несколько замечаний по использованию BLOB (столбцы TEXT и BYTE)

BLOB адресуются по своему идентификатору. Запросы типа SELECT возвращают "blob id" для столбцов BYTE и TEXT. Контент данных полей можно получить с помощью "string_var = ifx_get_blob($blob_id);" если хотите сохранить его в памяти ("ifx_blobinfile(0);"). Если предпочитаете сохранить в файл, используйте "ifx_blobinfile(1);" и "ifx_get_blob($blob_id);", который вернет имя файла. Для получения контента BLOB используйте обычные функции работы с файлами.

Для запросов INSERT/UPDATE вам необходимо создать эти "blob id's" самостоятельно с помощью "ifx_create_blob();". После этого поместите BLOB в массив и замените в запросе соответствующие поля на знаки вопроса (?). Для запросов INSERT/UPDATE контент полей BLOB задается функцией ifx_update_blob().

Поведение столбцов BLOB можно изменить с помощью параметров конфигурации, которые можно менять во время исполнения:

переменная конфигурации: ifx.textasvarchar

переменная конфигурации: ifx.byteasvarchar

функции времени исполнения:

ifx_textasvarchar(0): использовать идентификаторы BLOB для запросов SELECT с типом TEXT

ifx_byteasvarchar(0): использовать идентификаторы BLOB для запросов SELECT с типом BYTE

ifx_textasvarchar(1): возвращать столбцы TEXT как будто они типа VARCHAR. В данном случае необходимость в использовании идентификатора BLOB отпадает.

ifx_byteasvarchar(1): возвращать столбцы BYTE как будто они типа VARCHAR. В данном случае необходимость в использовании идентификатора BLOB отпадает.

переменная конфигурации: ifx.blobinfile

функции времени исполнения:

ifx_blobinfile_mode(0): сохранение столбцов BYTE в памяти, идентификатор BLOB позволит получить их контент.

ifx_blobinfile_mode(1): сохранение столбцов BYTE в файл, идентификатор BLOB позволит получить имя файла.

Если вы установите ifx_text/byteasvarchar равным 1, вы сможете использовать TEXT и BYTE в запросах SELECT как обычные (но очень длинные) поля VARCHAR. Подобное использование бинарно безопасно, так что можете смело пользоваться. Если возвращаемые данные содержат что-то странное, то вы сами несете полную ответственность за результаты.

Если вы установили set ifx_blobinfile равным 1, используйте имя файла, возвращенное ifx_get_blob(..) для получения контента. Не забывайте УДАЛЯТЬ ВРЕМЕННЫЕ ФАЙЛЫ, СОЗДАННЫЕ INFORMIX для выгрузки BLOB. Каждая извлеченная строка создаст новый временный файл для каждого поля BYTE.

Местоположение временных файлов определяется переменной окружения "blobdir" и по умолчанию равно "." (текущая директория). Что-то типа: putenv(blobdir=tmpblob"); сильно облегчит последующую очистку временной директории. Имена временных файлов начинаются с "blb".

Замечание: Автоматическое обрезание данных "char" (SQLCHAR и SQLNCHAR)

Такое поведение можно задать переменной конфигурации

ifx.charasvarchar: если установлено в 1, конечные пробельные символы будут автоматически обрезаны.

Замечание: Значения NULL

Переменная конфигурации ifx.nullformat (и функция времени выполнения ifx_nullformat()), установленная в TRUE возвратит поля NULL как строку "NULL", если установлена в FALSE - вернет пустую строку. Эта настройка позволит различать пустые строки и NULL.

Настройки конфигурации Informix
Имя | По умолчанию | Место изменения | Список изменений
ifx.allow_persistent | "1" | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.max_persistent | "-1" | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.max_links | "-1" | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.default_host | NULL | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.default_user | NULL | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.default_password | NULL | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.blobinfile | "1" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ifx.textasvarchar | "0" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ifx.byteasvarchar | "0" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ifx.charasvarchar | "0" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ifx.nullformat | "0" | PHP_INI_ALL | Удалено в PHP 5.2.1.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

ifx.allow_persistent boolean

Разрешать или нет постоянные соединения Informix.

ifx.max_persistent integer

Максимальное количество постоянных соединений на процесс.

ifx.max_links integer

Максимальное количество соединений на процесс, включая постоянные.

ifx.default_host string

Хост для соединения по умолчанию, если не задан в ifx_connect() или ifx_pconnect(). Не применяется в безопасный режим.

ifx.default_user string

Пользователь по умолчанию, если не задан в ifx_connect() ifx_pconnect(). Не применяется в безопасный режим.

ifx.default_password string

Пароль по умолчанию, если не задан в в ifx_connect() или ifx_pconnect(). Не применяется в безопасный режим.

ifx.blobinfile boolean

Если хотите помещать поля BLOB в файл, установите в TRUE. Если в память, то установите в FALSE. Можно переопределить во время исполнения с функцией ifx_blobinfile_mode().

ifx.textasvarchar boolean

Если хотите возвращать TEXT как обычную строку, установите в TRUE. Если хотите получать идентификатор BLOB, установите в FALSE. Можно переопределить во время исполнения с функцией ifx_textasvarchar().

ifx.byteasvarchar boolean

Если хотите возвращать BYTE как обычную строку, установите в TRUE. Если хотите получать идентификатор BLOB, установите в FALSE. Можно переопределить во время исполнения с функцией ifx_textasvarchar().

ifx.charasvarchar boolean

Установите как TRUE, если хотите обрезать конечные пробельные символы у CHAR.

ifx.nullformat boolean

Если хотите получать NULL как строку "NULL" - установите в TRUE. Если хотите получать NULL как пустую строку - установите в FALSE. Можно переопределить во время исполнения с функцией ifx_nullformat().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

IFX_SCROLL (integer)
IFX_HOLD (integer)
IFX_LO_RDONLY (integer)
IFX_LO_WRONLY (integer)
IFX_LO_APPEND (integer)
IFX_LO_RDWR (integer)
IFX_LO_BUFFER (integer)
IFX_LO_NOBUFFER (integer)


Функции Informix

Содержание

  • ifx_affected_rows — Получить число строк затронутых запросом
  • ifx_blobinfile_mode — Устанавливает режим BLOB для всех запросов типа SELECT
  • ifx_byteasvarchar — Установить поведение по умолчанию для BYTE
  • ifx_close — Закрыть соединение с Informix
  • ifx_connect — Открытие соединения с базой данных Informix
  • ifx_copy_blob — Создать дубликат заданного объекта BLOB
  • ifx_create_blob — Создать объект BLOB
  • ifx_create_char — Создает символьный объект
  • ifx_do — Запускает подготовленный SQL-запрос
  • ifx_error — Возвращает код ошибки последней операции Informix
  • ifx_errormsg — Возвращает сообщение об ошибке последнего выполненного оператора Informix
  • ifx_fetch_row — Получить строку в виде ассоциативного массива
  • ifx_fieldproperties — Список свойств полей
  • ifx_fieldtypes — Список столбцов
  • ifx_free_blob — Удалить объект BLOB
  • ifx_free_char — Удалить символьный объект
  • ifx_free_result — Высвобождает ресурсы для запроса
  • ifx_get_blob — Возвращает контент объекта BLOB
  • ifx_get_char — Возвращает контент символьного объекта
  • ifx_getsqlca — Получить содержимое sqlca.sqlerrd[0..5] после выполнения запроса
  • ifx_htmltbl_result — Форматирует все строки запроса в виде таблицы HTML
  • ifx_nullformat — Установить возвращаемое по умолчанию значение для NULL
  • ifx_num_fields — Возвращает количество столбцов в запросе
  • ifx_num_rows — Число строк уже извлененных из запроса
  • ifx_pconnect — Open persistent Informix connection
  • ifx_prepare — Подготавливает SQL-запрос для выполнения
  • ifx_query — Send Informix query
  • ifx_textasvarchar — Устанавливает режим чтения TEXT
  • ifx_update_blob — Обновление контента объекта BLOB
  • ifx_update_char — Обновление контента символьного объекта
  • ifxus_close_slob — Удалить объект SLOB
  • ifxus_create_slob — Создать и открыть объект SLOB
  • ifxus_free_slob — Удалить объект SLOB
  • ifxus_open_slob — Открыть объект SLOB
  • ifxus_read_slob — Прочитать заданное количество байт из SLOB
  • ifxus_seek_slob — Задать текущий файл или переместится на позицию
  • ifxus_tell_slob — Возвращает текущий файл или позицию
  • ifxus_write_slob — Записать строку в объект SLOB


Получить число строк затронутых запросом

  • « Функции Informix
  • ifx_blobinfile_mode »
  • PHP Manual
  • Функции Informix
  • Получить число строк затронутых запросом

ifx_affected_rows

(PHP 4, PHP 5 < 5.2.1)

ifx_affected_rows — Получить число строк затронутых запросом

Описание

ifx_affected_rows ( resource $result_id ) : int

Возвращает количество строк затронутых запросом, ассоциированным с ресурсом result_id.

Для INSERT, UPDATE и DELETE, это число является корректным (sqlerrd[2]) количеством затронутых строк. Для SELECT оно является предположительным (sqlerrd[0]). Не полагайтесь на него. Сервер баз данных никогда не возвращает количество строк, возвращенных запросом SELECT, потому что он даже не начал подгружать их на данном этапе (только после "PREPARE", когда оптимизатор составил план запроса).

Полезно использовать после ifx_prepare() для ограничения необходимого результирующего набора.

Список параметров

result_id

Корректный идентификатор результата, возвращенный ifx_query() или ifx_prepare().

Возвращаемые значения

Возвращает количество строк в виде целого числа.

Примеры

Пример #1 Informix, затронутые строки

<?php
$rid = ifx_prepare("select * from emp
                     where name like " . $name, $connid);
if (! $rid) {
    /* ... ошибка ... */
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Слишком много строк в наборе результатов (%d)\n<br />", $rowcount);
    die ("Пожалуйста, ограничьте ваш запрос<br />\n");
}
?>

Смотрите также

  • ifx_num_rows() - Число строк уже извлененных из запроса


Устанавливает режим BLOB для всех запросов типа SELECT

  • « ifx_affected_rows
  • ifx_byteasvarchar »
  • PHP Manual
  • Функции Informix
  • Устанавливает режим BLOB для всех запросов типа SELECT

ifx_blobinfile_mode

(PHP 4, PHP 5 < 5.2.1)

ifx_blobinfile_mode — Устанавливает режим BLOB для всех запросов типа SELECT

Описание

ifx_blobinfile_mode ( int $mode ) : bool

Устанавливает режим BLOB для всех запросов типа SELECT.

Список параметров

mode

Режим "0" означает, что BLOB будут сохраняться в памяти, а "1", что в файл.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установить поведение по умолчанию для BYTE

  • « ifx_blobinfile_mode
  • ifx_close »
  • PHP Manual
  • Функции Informix
  • Установить поведение по умолчанию для BYTE

ifx_byteasvarchar

(PHP 4, PHP 5 < 5.2.1)

ifx_byteasvarchar — Установить поведение по умолчанию для BYTE

Описание

ifx_byteasvarchar ( int $mode ) : bool

Устанавливает поведение по умолчанию для BYTE для запросов типа SELECT.

Список параметров

mode

При режиме "0" будут возвращаться идентификаторы BLOB, при "1" VARCHAR с контентом.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_textasvarchar() - Устанавливает режим чтения TEXT


Закрыть соединение с Informix

  • « ifx_byteasvarchar
  • ifx_connect »
  • PHP Manual
  • Функции Informix
  • Закрыть соединение с Informix

ifx_close

(PHP 4, PHP 5 < 5.2.1)

ifx_close — Закрыть соединение с Informix

Описание

ifx_close ([ resource $link_identifier ] ) : bool

ifx_close() закрывает соединение с базой данных Informix.

Обратите внимание, что обычно исользовать эту функцию нет смысла. Все непостоянные соединения автоматически закрываются по окончанию работы скрипта.

ifx_close() не закрывает постоянные соединения, полученные из ifx_pconnect().

Список параметров

link_identifier

Идентификатор соединения. Если не задан, то закроется последнее открытое соединение.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Закрытие соединения с Informix

<?php
$conn_id = ifx_connect ("mydb@ol_srv", "itsme", "mypassword");
/* ... всякие запросы и их обработки ... */
ifx_close($conn_id);
?>

Смотрите также

  • ifx_connect() - Открытие соединения с базой данных Informix
  • ifx_pconnect() - Open persistent Informix connection


Открытие соединения с базой данных Informix

  • « ifx_close
  • ifx_copy_blob »
  • PHP Manual
  • Функции Informix
  • Открытие соединения с базой данных Informix

ifx_connect

(PHP 4, PHP 5 < 5.2.1)

ifx_connect — Открытие соединения с базой данных Informix

Описание

ifx_connect ([ string $database [, string $userid [, string $password ]]] ) : resource

ifx_connect() устанавливает соединение с базой данных Informix.

Если функция ifx_connect() будет повторно вызвана с такими же аргументами, то новое соединение не будет установлено и, вместо него, вернется уже существующее.

Соединение с сервером будет автоматически закрыто после окончания работы скрипта. Либо его можно закрыть самостоятельно функцией ifx_close().

Список параметров

Все аргументы опциональны. Если они не заданы, то будут использованы значения по умолчанию, заданные в php.ini (ifx.default_host для хоста (библиотеки Informix будут использовать переменную окружения INFORMIXSERVER, если значение не задано), ifx.default_user для пользователя, ifx.default_password для пароля (если не задано, то будет пытаться соединиться без пароля).

database

Строка, содержащая имя базы данных.

userid

Строка с именем пользователя.

password

Строка с паролем.

Возвращаемые значения

В случае успешного выполнения возвращает идентификатор соединения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Соединение с базой данных

<?php
$conn_id = ifx_connect ("mydb@ol_srv1", "imyself", "mypassword");
?>

Смотрите также

  • ifx_pconnect() - Open persistent Informix connection
  • ifx_close() - Закрыть соединение с Informix


Создать дубликат заданного объекта BLOB

  • « ifx_connect
  • ifx_create_blob »
  • PHP Manual
  • Функции Informix
  • Создать дубликат заданного объекта BLOB

ifx_copy_blob

(PHP 4, PHP 5 < 5.2.1)

ifx_copy_blob — Создать дубликат заданного объекта BLOB

Описание

ifx_copy_blob ( int $bid ) : int

Создает дубликат заданного объекта BLOB.

Список параметров

bid

Идентификатор BLOB.

Возвращаемые значения

Возвращает идентификатор нового объекта BLOB или FALSE в случае возниновения ошибки.

Смотрите также

  • ifx_create_blob() - Создать объект BLOB
  • ifx_free_blob() - Удалить объект BLOB


Создать объект BLOB

  • « ifx_copy_blob
  • ifx_create_char »
  • PHP Manual
  • Функции Informix
  • Создать объект BLOB

ifx_create_blob

(PHP 4, PHP 5 < 5.2.1)

ifx_create_blob — Создать объект BLOB

Описание

ifx_create_blob ( int $type , int $mode , string $param ) : int

Создает объект BLOB.

Список параметров

type

1 = TEXT, 0 = BYTE

mode

0 = объект BLOB держит контент в памяти, 1 = объект BLOB держит контент в файле.

param

Если mode = 0: указывает на контент. Если mode = 1: указывает на строку с именем файла.

Возвращаемые значения

Возвращает идентификатор нового объекта BLOB или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_copy_blob() - Создать дубликат заданного объекта BLOB
  • ifx_free_blob() - Удалить объект BLOB


Создает символьный объект

  • « ifx_create_blob
  • ifx_do »
  • PHP Manual
  • Функции Informix
  • Создает символьный объект

ifx_create_char

(PHP 4, PHP 5 < 5.2.1)

ifx_create_char — Создает символьный объект

Описание

ifx_create_char ( string $param ) : int

Создает символьный объект.

Список параметров

param

Контент создаваемого объекта.

Возвращаемые значения

Возвращает идентификатор объекта или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_free_char() - Удалить символьный объект


Запускает подготовленный SQL-запрос

  • « ifx_create_char
  • ifx_error »
  • PHP Manual
  • Функции Informix
  • Запускает подготовленный SQL-запрос

ifx_do

(PHP 4, PHP 5 < 5.2.1)

ifx_do — Запускает подготовленный SQL-запрос

Описание

ifx_do ( resource $result_id ) : bool

Запускает подготовленный SQL-запрос или открывает для него курсор.

НЕ освобождает result_id в случае возникновения ошибки.

Также задает корректное значение ifx_affected_rows() для не-SELECT запросов. Извлечь можно функцией ifx_affected_rows().

Список параметров

result_id

result_id - идентификатор запроса, полученный ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

Пример #1 Пример использования ifx_do()

<?php
$conn = fx_connect( "db", "user", "password" );
$result = ifx_prepare("SELECT customer_num, company FROM customer", $conn);
ifx_do($result);
?>

Смотрите также

  • ifx_prepare() - Подготавливает SQL-запрос для выполнения


Возвращает код ошибки последней операции Informix

  • « ifx_do
  • ifx_errormsg »
  • PHP Manual
  • Функции Informix
  • Возвращает код ошибки последней операции Informix

ifx_error

(PHP 4, PHP 5 < 5.2.1)

ifx_error — Возвращает код ошибки последней операции Informix

Описание

ifx_error ([ resource $link_identifier ] ) : string

Возвращает строку, состоящую из одного символа, описывающего результат в целом, и значений SQLSTATE и SQLCODE.

Список параметров

link_identifier

Идентификатор соединения.

Возвращаемые значения

Коды ошибок Informix (SQLSTATE & SQLCODE) в виде x [SQLSTATE = aa bbb SQLCODE=cccc].

где x = пробел : нет ошибки

E : ошибка

N : данных больше нет

W : предупреждение

? : не задано

Если символ "x" не является пробелом, то подробное описание ошибки можно получить проанализировав SQLSTATE и SQLCODE.

Описание кодов ошибок SQLSTATE и SQLCODE читайте в документации к Informix.

Смотрите также

  • ifx_errormsg() - Возвращает сообщение об ошибке последнего выполненного оператора Informix


Возвращает сообщение об ошибке последнего выполненного оператора Informix

  • « ifx_error
  • ifx_fetch_row »
  • PHP Manual
  • Функции Informix
  • Возвращает сообщение об ошибке последнего выполненного оператора Informix

ifx_errormsg

(PHP 4, PHP 5 < 5.2.1)

ifx_errormsg — Возвращает сообщение об ошибке последнего выполненного оператора Informix

Описание

ifx_errormsg ([ int $errorcode ] ) : string

Возвращает сообщение об ошибке последнего выполненного оператора Informix.

Список параметров

errorcode

Если задано, то функция вернет сообщение об ошибке, соответствующее этому коду.

Возвращаемые значения

Возвращает строку с описанием ошибки.

Примеры

Пример #1 Пример использования ifx_errormsg()

<?php
printf("%s\n<br>", ifx_errormsg(-201));
?>

Смотрите также

  • ifx_error() - Возвращает код ошибки последней операции Informix


Получить строку в виде ассоциативного массива

  • « ifx_errormsg
  • ifx_fieldproperties »
  • PHP Manual
  • Функции Informix
  • Получить строку в виде ассоциативного массива

ifx_fetch_row

(PHP 4, PHP 5 < 5.2.1)

ifx_fetch_row — Получить строку в виде ассоциативного массива

Описание

ifx_fetch_row ( resource $result_id [, mixed $position ] ) : array

Извлекает строку в виде ассоциативного массива.

Каждый запуск ifx_fetch_row() будет возвращать следующую строку из результирующего набора и FALSE, когда строки кончатся.

Список параметров

result_id

result_id - идентификатор запроса, полученный ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

position

Опциональный параметр при использовании проматываемого курсора: NEXT, PREVIOUS, CURRENT, FIRST, LAST или число. Если вы укажете число, будет возвращена строка с данным номером. Этот параметр опционален и применяется только с курсорами типа SCROLL.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий строку результирующего набора, либо FALSE, если строки закончились.

Столбцы BLOB возвращаются в виде их числовых идентификаторов, которые можно использовать с функцией ifx_get_blob(), если не используется ifx_textasvarchar(1) или ifx_byteasvarchar(1), в этом случае они будут возвращаться как VARCHAR.

Примеры

Пример #1 Извлечение строк

<?php
$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    /* ... ошибка ... */
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Слишком много строк в результирующем наборе (%d)\n<br />", $rowcount);
    die ("Пожалуйста, ограничьте запрос<br />\n");
}
if (! ifx_do ($rid)) {
   /* ... ошибка ... */
}
$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_fetch_row
  • ifx_fieldtypes »
  • PHP Manual
  • Функции Informix
  • Список свойств полей

ifx_fieldproperties

(PHP 4, PHP 5 < 5.2.1)

ifx_fieldproperties — Список свойств полей

Описание

ifx_fieldproperties ( resource $result_id ) : array

Возвращает список свойств для каждого поля в запросе в виде ассоциативного массива. Свойства описываются в следующем формате: "SQLTYPE;length;precision;scale;ISNULLABLE" где SQLTYPE = тип столбца Informix, например "SQLVCHAR" и ISNULLABLE = "Y" или "N".

Список параметров

result_id

result_id - идентификатор запроса, полученный ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

Возвращаемые значения

Возвращает ассоциативный массив с ключами равными именам столбцов и значениями, состоящими из описания их свойств для запроса с идентификатором result_id. Возвращает FALSE в случае возникновения ошибки.

Примеры

Пример #1 Свойства полей

<?php
$properties = ifx_fieldproperties($resultid);
if (!isset($properties)) {
    /* ... ошибка ... */
}
foreach ($properties as $fname => $val) {
    echo "$fname:\t свойство = $val\n";
}
?>

Смотрите также

  • ifx_fieldtypes() - Список столбцов


Список столбцов

  • « ifx_fieldproperties
  • ifx_free_blob »
  • PHP Manual
  • Функции Informix
  • Список столбцов

ifx_fieldtypes

(PHP 4, PHP 5 < 5.2.1)

ifx_fieldtypes — Список столбцов

Описание

ifx_fieldtypes ( resource $result_id ) : array

Возвращает ассоциативный массив с ключами равными именам столбцов и значениями равными их типу для запроса с идентификатором result_id.

Список параметров

result_id

result_id - идентификатор запроса, полученный ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

Возвращаемые значения

Возвращает ассоциативный массив с ключами равными именам столбцов и значениями равными их типу для запроса с идентификатором result_id. Возвращает FALSE в случае возникновения ошибки.

Примеры

Пример #1 Имена и типы столбцов

<?php
$types = ifx_fieldtypes($resultid);
if (is_array($types)) {
    foreach ($types as $fname => $val) {
        echo "$fname:\t тип = $val\n";
    }
}
?>

Смотрите также

  • ifx_fieldproperties() - Список свойств полей


Удалить объект BLOB

  • « ifx_fieldtypes
  • ifx_free_char »
  • PHP Manual
  • Функции Informix
  • Удалить объект BLOB

ifx_free_blob

(PHP 4, PHP 5 < 5.2.1)

ifx_free_blob — Удалить объект BLOB

Описание

ifx_free_blob ( int $bid ) : bool

Удаляет объект BLOB по его идентификатору.

Список параметров

bid

Идентификатор BLOB.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_create_blob() - Создать объект BLOB


Удалить символьный объект

  • « ifx_free_blob
  • ifx_free_result »
  • PHP Manual
  • Функции Informix
  • Удалить символьный объект

ifx_free_char

(PHP 4, PHP 5 < 5.2.1)

ifx_free_char — Удалить символьный объект

Описание

ifx_free_char ( int $bid ) : bool

Удаляет символьный объект по его идентификатору.

Список параметров

bid

Идентификатор объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_create_char() - Создает символьный объект


Высвобождает ресурсы для запроса

  • « ifx_free_char
  • ifx_get_blob »
  • PHP Manual
  • Функции Informix
  • Высвобождает ресурсы для запроса

ifx_free_result

(PHP 4, PHP 5 < 5.2.1)

ifx_free_result — Высвобождает ресурсы для запроса

Описание

ifx_free_result ( resource $result_id ) : bool

Высвобождает ресурсы, связанные с идентификатором запроса result_id.

Список параметров

result_id

result_id - идентификатор запроса, полученный с помощью ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_do() - Запускает подготовленный SQL-запрос


Возвращает контент объекта BLOB

  • « ifx_free_result
  • ifx_get_char »
  • PHP Manual
  • Функции Informix
  • Возвращает контент объекта BLOB

ifx_get_blob

(PHP 4, PHP 5 < 5.2.1)

ifx_get_blob — Возвращает контент объекта BLOB

Описание

ifx_get_blob ( int $bid ) : string

Возвращает контент объекта BLOB.

Список параметров

bid

Идентификатор BLOB.

Возвращаемые значения

Контент объекта BLOB в виде строки или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_get_char() - Возвращает контент символьного объекта


Возвращает контент символьного объекта

  • « ifx_get_blob
  • ifx_getsqlca »
  • PHP Manual
  • Функции Informix
  • Возвращает контент символьного объекта

ifx_get_char

(PHP 4, PHP 5 < 5.2.1)

ifx_get_char — Возвращает контент символьного объекта

Описание

ifx_get_char ( int $bid ) : string

Возвращает контент символьного объекта.

Список параметров

bid

Идентификатор объекта.

Возвращаемые значения

Возвращает контент символьного объекта в виде строки или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_get_blob() - Возвращает контент объекта BLOB


Получить содержимое sqlca.sqlerrd[0..5] после выполнения запроса

  • « ifx_get_char
  • ifx_htmltbl_result »
  • PHP Manual
  • Функции Informix
  • Получить содержимое sqlca.sqlerrd[0..5] после выполнения запроса

ifx_getsqlca

(PHP 4, PHP 5 < 5.2.1)

ifx_getsqlca — Получить содержимое sqlca.sqlerrd[0..5] после выполнения запроса

Описание

ifx_getsqlca ( resource $result_id ) : array

Возвращает псевдостроку с sqlca.sqlerrd[0] ... sqlca.sqlerrd[5] после выполнения запроса с идентификатором result_id.

Для запросов INSERT, UPDATE и DELETE, возвращаемые значение являются значениями, возвращенными сервером после их выполнения. Они дают доступ к числу затронутых строк и значению SERIAL для операторов INSERT. Для запросов SELECT эти значения выставляются после оператора PREPARE. Это дает доступ к *ожидаемому* количеству затронутых строк. Использование этой функции сокращает накладные расходы, которые могут возникнуть при вызове SELECT dbinfo('sqlca.sqlerrdx'), так как она извлекает значения, сохраненные драйвером ifx.

Список параметров

result_id

result_id - идентификатор запроса, полученный ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

Возвращаемые значения

Возвращает ассоциативный массив со следующими полями: sqlerrd0, sqlerrd1, sqlerrd2, sqlerrd3, sqlerrd4 и sqlerrd5.

Примеры

Пример #1 Извлечение значений sqlca.sqlerrd[x]

<?php
/* Считаем первый столбец таблицы 'sometable' как тип SERIAL */
$qid = ifx_query("insert into sometable
                  values (0, '2nd column', 'another column') ", $connid);
if (!$qid) {
    /* ... jib,rf ... */
}
$sqlca = ifx_getsqlca($qid);
$serial_value = $sqlca["sqlerrd1"];
echo "Номер вставленной строки : $serial_value<br />\n";
?>


Форматирует все строки запроса в виде таблицы HTML

  • « ifx_getsqlca
  • ifx_nullformat »
  • PHP Manual
  • Функции Informix
  • Форматирует все строки запроса в виде таблицы HTML

ifx_htmltbl_result

(PHP 4, PHP 5 < 5.2.1)

ifx_htmltbl_result — Форматирует все строки запроса в виде таблицы HTML

Описание

ifx_htmltbl_result ( resource $result_id [, string $html_table_options ] ) : int

Форматирует все строки запроса result_id в таблицу HTML.

Список параметров

result_id

result_id - идентификатор запроса, полученный ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

html_table_options

Этот опциональный аргумент задает опции тега <table>.

Возвращаемые значения

Возвращает число извлеченных строк, или FALSE в случае ошибки.

Примеры

Пример #1 Результаты запроса в виде таблицы HTML

<?php
$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    /* ... ошибка ... */
}
$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)) {
    /* ... ошибка ... */
}

ifx_htmltbl_result ($rid, "border=\"2\"");

ifx_free_result($rid);
?>


Установить возвращаемое по умолчанию значение для NULL

  • « ifx_htmltbl_result
  • ifx_num_fields »
  • PHP Manual
  • Функции Informix
  • Установить возвращаемое по умолчанию значение для NULL

ifx_nullformat

(PHP 4, PHP 5 < 5.2.1)

ifx_nullformat — Установить возвращаемое по умолчанию значение для NULL

Описание

ifx_nullformat ( int $mode ) : bool

Установить возвращаемое по умолчанию значение для NULL.

Список параметров

mode

Режим "0" возвратит "", режим "1" возвратит "NULL".

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает количество столбцов в запросе

  • « ifx_nullformat
  • ifx_num_rows »
  • PHP Manual
  • Функции Informix
  • Возвращает количество столбцов в запросе

ifx_num_fields

(PHP 4, PHP 5 < 5.2.1)

ifx_num_fields — Возвращает количество столбцов в запросе

Описание

ifx_num_fields ( resource $result_id ) : int

После подготовки запроса возвращает число столбцов в нем.

Список параметров

result_id

result_id - идентификатор запроса, полученный ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

Возвращаемые значения

Возвращает количество столбцов в запросе result_id, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования ifx_num_fields()

<?php
$conn_id = ifx_connect("db", "user", "password");
$res_id = ifx_query("select * from systables", $conn_id);
echo ifx_num_fields($res_id);
?>

Смотрите также

  • ifx_num_rows() - Число строк уже извлененных из запроса


Число строк уже извлененных из запроса

  • « ifx_num_fields
  • ifx_pconnect »
  • PHP Manual
  • Функции Informix
  • Число строк уже извлененных из запроса

ifx_num_rows

(PHP 4, PHP 5 < 5.2.1)

ifx_num_rows — Число строк уже извлененных из запроса

Описание

ifx_num_rows ( resource $result_id ) : int

Число строк уже извлененных для запроса result_id после ifx_query() или ifx_do().

Список параметров

result_id

result_id - идентификатор запроса, полученный ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

Возвращаемые значения

Возвращает число извлеченных строк или FALSE в случае ошибки.

Смотрите также

  • ifx_num_fields() - Возвращает количество столбцов в запросе


Open persistent Informix connection

  • « ifx_num_rows
  • ifx_prepare »
  • PHP Manual
  • Функции Informix
  • Open persistent Informix connection

ifx_pconnect

(PHP 4, PHP 5 < 5.2.1)

ifx_pconnect — Open persistent Informix connection

Описание

ifx_pconnect ([ string $database [, string $userid [, string $password ]]] ) : resource

ifx_pconnect() работает так же как ifx_connect() с двумя значительными отличиями.

Первое отличие. При соединении эта функция сперва пытается найти уже открытое постоянное соединение с такими же хостом, именем пользователя и паролем. Если таковое будет найдено, то оно будет возвращено вместо создания нового.

Второе отличие. Соединение с сервером не будет прервано по окончанию работы скрипта. Вместо этого данное соединение будет доступно для всех последующих запросов на соединение. Также, функция ifx_close() не работает с ifx_pconnect().

This type of links is therefore called 'persistent'.

Список параметров

Все аргументы опциональны. Если они не заданы, то будут использованы значения по умолчанию, заданные в php.ini (ifx.default_host для хоста (библиотеки Informix будут использовать переменную окружения INFORMIXSERVER, если значение не задано), ifx.default_user для пользователя, ifx.default_password для пароля (если не задано, то будеет пытаться соединиться без пароля).

database

Строка, содержащая имя базы данных.

userid

Строка с именем пользователя.

password

Строка с паролем.

Возвращаемые значения

Возвращает идентификатор постоянного соединения, либо FALSE в случае ошибки.

Смотрите также

  • ifx_connect() - Открытие соединения с базой данных Informix


Подготавливает SQL-запрос для выполнения

  • « ifx_pconnect
  • ifx_query »
  • PHP Manual
  • Функции Informix
  • Подготавливает SQL-запрос для выполнения

ifx_prepare

(PHP 4, PHP 5 < 5.2.1)

ifx_prepare — Подготавливает SQL-запрос для выполнения

Описание

ifx_prepare ( string $query , resource $link_identifier [, int $cursor_def ], mixed $blobidarray ) : resource

Подготавливает query для использования в ifx_do().

Для запросов типа SELECT задается и открывается курсор. Остальные типы запросов сразу же запускаются.

Для всех типов запросов сохраняется число (реальное или предполагаемое) затронутых строк, которое можно извлечь функцией ifx_affected_rows().

Если контент столбцов TEXT (или BYTE) позволяют, вы можете использовать ifx_textasvarchar(1) и ifx_byteasvarchar(1). Это позволит получать контент столбцов TEXT (или BYTE) как обычный (но длинный) VARCHAR и не заморачиваться идентификаторов объектов BLOB.

С ifx_textasvarchar(0) или ifx_byteasvarchar(0) (ситуация по умолчанию), запросы типа SELECT будут возвращать столбцы с BLOB в виде их идентификаторовs (целое число). Контент данных столбцов придется извлекать из памяти или файла успользуя специальные функции.

Список параметров

query

Строка запроса.

link_identifier

Идентификатор соединения.

cursor_def

Опциональный параметр, позволяющий задать тип курсора равным scroll и/или hold. Может быть IFX_SCROLL, IFX_HOLD, или обоими сразу, побитово сложенными (ИЛИ).

blobidarray

Если в запросе используются поля BLOB (BYTE или TEXT), вы можете добавить параметр blobidarray, содержащий соответствующие "blob ids", и тогда будет необходимо заменить соответствующие поля в запросе на "?".

Возвращаемые значения

Возвращает идентификатор результата для использования в ifx_do(), или FALSE в случае ошибки.

Смотрите также

  • ifx_do() - Запускает подготовленный SQL-запрос


Send Informix query

  • « ifx_prepare
  • ifx_textasvarchar »
  • PHP Manual
  • Функции Informix
  • Send Informix query

ifx_query

(PHP 4, PHP 5 < 5.2.1)

ifx_query — Send Informix query

Описание

ifx_query ( string $query , resource $link_identifier [, int $cursor_type [, mixed $blobidarray ]] ) : resource

Посылает query в базу данных используя идентификатор соединения.

Для запросов типа SELECT задается и открывается курсор. Остальные типы запросов сразу же запускаются.

Для всех типов запросов сохраняется число (реальное или предполагаемое) затронутых строк, которое можно извлечь функцией ifx_affected_rows().

Если контент столбцов TEXT (или BYTE) позволяют, вы можете использовать ifx_textasvarchar(1) и ifx_byteasvarchar(1). Это позволит получать контент столбцов TEXT (или BYTE) как обычный (но длинный) VARCHAR и не заморачиваться идентификаторов объектов BLOB.

С ifx_textasvarchar(0) или ifx_byteasvarchar(0) (ситуация по умолчанию), запросы типа SELECT будут возвращать столбцы с BLOB в виде их идентификаторовs (целое число). Контент данных столбцов придется извлекать из памяти или файла успользуя специальные функции.

Список параметров

query

Строка запроса.

link_identifier

Идентификатор соединения.

cursor_def

Опциональный параметр, позволяющий задать тип курсора равным scroll и/или hold. Может быть IFX_SCROLL, IFX_HOLD, или обоими сразу, побитово сложенными (ИЛИ). Если вы опустите этот параметр, то курсор будет обычным последовательным курсором.

blobidarray

Если в запросе используются поля BLOB (BYTE или TEXT), вы можете добавить параметр blobidarray, содержащий соответствующие "blob ids", и тогда будет необходимо заменить соответствующие поля в запросе на "?".

Возвращаемые значения

Возвращает идентификатор результата, или FALSE в случае ошибки.

Примеры

Пример #1 Вывод всех строк таблицы "orders" в виде таблицы HTML

<?php
ifx_textasvarchar(1);      // используем "text mode" для BLOB
$res_id = ifx_query("select * from orders", $conn_id);
if (! $res_id) {
    printf("Не могу выполнить запрос : %s\n<br />%s<br />\n", ifx_error(), ifx_errormsg());
    die;
}
ifx_htmltbl_result($res_id, "border=\"1\"");
ifx_free_result($res_id);
?>

Пример #2 Вставка значений в таблицу "catalog"

<?php

// Создаем идентификаторы BLOB для столбцов BYTE и TEXT
$textid = ifx_create_blob(0, 0, "Столбец Text в памяти");
$byteid = ifx_create_blob(1, 0, "Столбец Byte в памяти");

// Сохраняем идентификаторы BLOB в массиве blobid
$blobidarray[] = $textid;
$blobidarray[] = $byteid;

// Запускаем запрос
$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);
?>

Смотрите также

  • ifx_connect() - Открытие соединения с базой данных Informix


Устанавливает режим чтения TEXT

  • « ifx_query
  • ifx_update_blob »
  • PHP Manual
  • Функции Informix
  • Устанавливает режим чтения TEXT

ifx_textasvarchar

(PHP 4, PHP 5 < 5.2.1)

ifx_textasvarchar — Устанавливает режим чтения TEXT

Описание

ifx_textasvarchar ( int $mode ) : bool

Устанавливает режим чтения TEXT.

Список параметров

mode

Режим "0" вернет идентификаторы BLOB, режим "1" вернет VARCHAR.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_byteasvarchar() - Установить поведение по умолчанию для BYTE


Обновление контента объекта BLOB

  • « ifx_textasvarchar
  • ifx_update_char »
  • PHP Manual
  • Функции Informix
  • Обновление контента объекта BLOB

ifx_update_blob

(PHP 4, PHP 5 < 5.2.1)

ifx_update_blob — Обновление контента объекта BLOB

Описание

ifx_update_blob ( int $bid , string $content ) : bool

Обновление контента объекта BLOB с идентификатором bid.

Список параметров

bid

Идентификатор BLOB.

content

Новые данные в виде строки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_update_char() - Обновление контента символьного объекта


Обновление контента символьного объекта

  • « ifx_update_blob
  • ifxus_close_slob »
  • PHP Manual
  • Функции Informix
  • Обновление контента символьного объекта

ifx_update_char

(PHP 4, PHP 5 < 5.2.1)

ifx_update_char — Обновление контента символьного объекта

Описание

ifx_update_char ( int $bid , string $content ) : bool

Обновление контента символьного объекта с идентификатором bid.

Список параметров

bid

Идентификатор объекта.

content

Новые данные в виде строки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_update_blob() - Обновление контента объекта BLOB


Удалить объект SLOB

  • « ifx_update_char
  • ifxus_create_slob »
  • PHP Manual
  • Функции Informix
  • Удалить объект SLOB

ifxus_close_slob

(PHP 4, PHP 5 < 5.2.1)

ifxus_close_slob — Удалить объект SLOB

Описание

ifxus_close_slob ( int $bid ) : bool

Удалить объект SLOB с идентификатором bid.

Список параметров

bid

Идентификатор объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifxus_open_slob() - Открыть объект SLOB


Создать и открыть объект SLOB

  • « ifxus_close_slob
  • ifxus_free_slob »
  • PHP Manual
  • Функции Informix
  • Создать и открыть объект SLOB

ifxus_create_slob

(PHP 4, PHP 5 < 5.2.1)

ifxus_create_slob — Создать и открыть объект SLOB

Описание

ifxus_create_slob ( int $mode ) : int

Создать и открыть объект SLOB.

Список параметров

mode

Комбинация констант IFX_LO_RDONLY, IFX_LO_WRONLY, IFX_LO_APPEND IFX_LO_RDWR, IFX_LO_BUFFER, IFX_LO_NOBUFFER.

Возвращаемые значения

Возвращает идентификатор нового объекта или FALSE в случае возникновения ошибки.

Смотрите также

  • ifxus_close_slob() - Удалить объект SLOB
  • ifxus_free_slob() - Удалить объект SLOB


Удалить объект SLOB

  • « ifxus_create_slob
  • ifxus_open_slob »
  • PHP Manual
  • Функции Informix
  • Удалить объект SLOB

ifxus_free_slob

(PHP 4, PHP 5 < 5.2.1)

ifxus_free_slob — Удалить объект SLOB

Описание

ifxus_free_slob ( int $bid ) : bool

Удаляет объект SLOB.

Список параметров

bid

Идентификатор объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifxus_close_slob() - Удалить объект SLOB


Открыть объект SLOB

  • « ifxus_free_slob
  • ifxus_read_slob »
  • PHP Manual
  • Функции Informix
  • Открыть объект SLOB

ifxus_open_slob

(PHP 4, PHP 5 < 5.2.1)

ifxus_open_slob — Открыть объект SLOB

Описание

ifxus_open_slob ( int $bid , int $mode ) : int

Открыть объект SLOB. bid должен быть существующим идентификатором SLOB.

Список параметров

bid

Идентификатор SLOB.

mode

Комбинация констант IFX_LO_RDONLY, IFX_LO_WRONLY, IFX_LO_APPEND IFX_LO_RDWR, IFX_LO_BUFFER, IFX_LO_NOBUFFER.

Возвращаемые значения

Возвращает идентификатор объекта или FALSE в случае возникновения ошибки.

Смотрите также

  • ifxus_close_slob() - Удалить объект SLOB
  • ifxus_free_slob() - Удалить объект SLOB


Прочитать заданное количество байт из SLOB

  • « ifxus_open_slob
  • ifxus_seek_slob »
  • PHP Manual
  • Функции Informix
  • Прочитать заданное количество байт из SLOB

ifxus_read_slob

(PHP 4, PHP 5 < 5.2.1)

ifxus_read_slob — Прочитать заданное количество байт из SLOB

Описание

ifxus_read_slob ( int $bid , int $nbytes ) : string

Читает nbytes байт из SLOB.

Список параметров

bid

Идентификатор SLOB.

nbytes

Количество байт для чтения.

Возвращаемые значения

Возвращает контент SLOB в виде строки или FALSE в случае возникновения ошибки.

Смотрите также

  • ifxus_write_slob() - Записать строку в объект SLOB


Задать текущий файл или переместится на позицию

  • « ifxus_read_slob
  • ifxus_tell_slob »
  • PHP Manual
  • Функции Informix
  • Задать текущий файл или переместится на позицию

ifxus_seek_slob

(PHP 4, PHP 5 < 5.2.1)

ifxus_seek_slob — Задать текущий файл или переместится на позицию

Описание

ifxus_seek_slob ( int $bid , int $mode , int $offset ) : int

Задать текущий файл или переместится на позицию.

Список параметров

bid

Идентификатор SLOB.

mode

0 = LO_SEEK_SET, 1 = LO_SEEK_CUR, 2 = LO_SEEK_END.

offset

Смещение в байтах.

Возвращаемые значения

Возвращает текущую позицию в виде целого числа или FALSE в случае возникновения ошибки.

Смотрите также

  • ifxus_tell_slob() - Возвращает текущий файл или позицию


Возвращает текущий файл или позицию

  • « ifxus_seek_slob
  • ifxus_write_slob »
  • PHP Manual
  • Функции Informix
  • Возвращает текущий файл или позицию

ifxus_tell_slob

(PHP 4, PHP 5 < 5.2.1)

ifxus_tell_slob — Возвращает текущий файл или позицию

Описание

ifxus_tell_slob ( int $bid ) : int

Возвращает текущий файл или позицию объекта SLOB

Список параметров

bid

Идентификатор SLOB.

Возвращаемые значения

Возвращает текущую позицию в виде целого числа или FALSE в случае возникновения ошибки.

Смотрите также

  • ifxus_seek_slob() - Задать текущий файл или переместится на позицию


Записать строку в объект SLOB

  • « ifxus_tell_slob
  • Ingres »
  • PHP Manual
  • Функции Informix
  • Записать строку в объект SLOB

ifxus_write_slob

(PHP 4, PHP 5 < 5.2.1)

ifxus_write_slob — Записать строку в объект SLOB

Описание

ifxus_write_slob ( int $bid , string $content ) : int

Записать строку в объект SLOB.

Список параметров

bid

Идентификатор SLOB.

content

Строка для записи.

Возвращаемые значения

Возвращает число записанных байт или FALSE в случае возникновения ошибки.

Смотрите также

  • ifxus_read_slob() - Прочитать заданное количество байт из SLOB


Ingres DBMS, EDBC и Enterprise Access Gateways

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Базовое использование
  • Функции Ingres
    • ingres_autocommit_state — Test if the connection is using autocommit
    • ingres_autocommit — Switch autocommit on or off
    • ingres_charset — Returns the installation character set
    • ingres_close — Close an Ingres database connection
    • ingres_commit — Commit a transaction
    • ingres_connect — Open a connection to an Ingres database
    • ingres_cursor — Get a cursor name for a given result resource
    • ingres_errno — Get the last Ingres error number generated
    • ingres_error — Get a meaningful error message for the last error generated
    • ingres_errsqlstate — Get the last SQLSTATE error code generated
    • ingres_escape_string — Escape special characters for use in a query
    • ingres_execute — Execute a prepared query
    • ingres_fetch_array — Fetch a row of result into an array
    • ingres_fetch_assoc — Fetch a row of result into an associative array
    • ingres_fetch_object — Fetch a row of result into an object
    • ingres_fetch_proc_return — Get the return value from a procedure call
    • 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_free_result — Free the resources associated with a result identifier
    • ingres_next_error — Get the next Ingres error
    • 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 a query
    • ingres_pconnect — Open a persistent connection to an Ingres database
    • ingres_prepare — Prepare a query for later execution
    • ingres_query — Send an SQL query to Ingres
    • ingres_result_seek — Set the row position before fetching data
    • ingres_rollback — Roll back a transaction
    • ingres_set_environment — Set environment features controlling output options
    • ingres_unbuffered_query — Send an unbuffered SQL query to Ingres


Введение

Драйвер Ingres для PHP позволяет соединяться и делать запросы в Ingres DBMS, EDBC и Enterprise Access Gateways.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0.


Требования

Для сборки модуля у вас должно присутствовать работоспособное клиентское окружение Ingres. Клиентское ПО можно загрузить с сайта » http://esd.ingres.com/.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/ingres.

Вы можете загрузить DLL для модуля PECL с сайта » http://esd.ingres.com/product/drivers/PHP/.

Для использования модуля вам придется его » загрузить и скомпилировать, разрешив поддержку Ingres с помощью опции --with-ingres[=DIR] , где DIR указывает на базовую директорию Ingres. Если переменная окружения II_SYSTEM установлена некорректно, вам понадобится использовать --with-ingres=DIR , указав директорию, куда установлен Ingres.

Код PHP, написанный для версии 2.x и более свежих обратно несовместим с более ранними версиями модуля. Однако возможно запустить два несовместимых релиза в одном окружении PHP, используя опцию --enable-ingres2 . Эта опция конфигурации переименовывает модуль в ingres2, изменяя имена функций, директивы конфигурации и константы. К примеру, если задать эту опцию, то ingres_connect() будет переименована в ingres2_connect().

Для работы функций модуля необходима выставленная переменная окружения II_SYSTEM. Пользователям Linux и UNIX также необходимо указать путь к разделяемым библиотекам, например, добавив его к переменной окружения LD_LIBRARY_PATH. При использовании веб-сервера Apache, эти переменные должны определяться в его стартовом скрипте. Также, для загрузки модулем корректных разделяемых библиотек, необходимо использовать директиву PassEnv. Например:

Пример #1 Пример использования PassEnv для Ingres

<IfModule mod_env.c>
    PassEnv II_SYSTEM
    PassEnv LD_LIBRARY_PATH
</IfModule>

Замечание:

Примеры настройки для различных веб-серверов и операционных систем читайте по ссылке » http://community.ingres.com/wiki/Ingres_Articles#Ingres_and_Web_Servers.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Ingres
Имя | По умолчанию | Место изменения | Список изменений
ingres.allow_persistent | "1" | PHP_INI_SYSTEM | Доступно с ingres 1.0.0
ingres.array_index_start | "1" | PHP_INI_ALL | Доступно с ingres 1.4.0.
ingres.auto | "1" | PHP_INI_ALL | Доступно с ingres 2.0.0.
ingres.blob_segment_length | "4096" | PHP_INI_ALL | Доступно с ingres 1.2.0.
ingres.cursor_mode | "0" | PHP_INI_ALL | Доступно с ingres 1.1.0.
ingres.default_database | NULL | PHP_INI_ALL | Доступно с ingres 1.0.0
ingres.default_password | NULL | PHP_INI_ALL | Доступно с ingres 1.0.0
ingres.default_user | NULL | PHP_INI_ALL | Доступно с ingres 1.0.0
ingres.describe | 1 | PHP_INI_ALL | Доступно с ingres 2.1.0
ingres.fetch_buffer_size | 100 | PHP_INI_ALL | Доступно с ingres 2.1.0
ingres.max_links | "-1" | PHP_INI_SYSTEM | Доступно с ingres 1.0.0
ingres.max_persistent | "-1" | PHP_INI_SYSTEM | Доступно с ingres 1.0.0
ingres.reuse_connection | "1" | PHP_INI_ALL | Доступно с ingres 2.0.0
ingres.scrollable | "1" | PHP_INI_ALL | Доступно с ingres 2.0.0.
ingres.trace | "0" | PHP_INI_ALL | Доступно с ingres 2.0.0.
ingres.trace_connect | "0" | PHP_INI_ALL | Доступно с ingres 1.2.1.
ingres.utf8 | "1" | PHP_INI_ALL | Доступно с ingres 2.0.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

ingres.allow_persistent boolean

Определяет, разрешены ли постоянные соединения

ingres.array_index_start integer

Определяет значение первого элемента в индексированных массивах возвращаемых ingres_fetch_row() и ingres_fetch_array(). По умолчанию, значение ingres.array_index_start равно 1. Если вы хотите, чтобы это расширение вело себя так же, как и все остальные расширения баз данных, установите значение равным 0.

ingres.auto boolean

Включает или выключает эмуляцию автоподтверждения транзакции. Ingress не может держать несколько открытых курсоров при включенном автоподтверждении. Если опция разрешена, драйвер будет эмулировать автоподтверждение.

ingres.blob_segment_length integer

Определяет размер памяти в байтах, используемый при чтении данных BLOB.

ingres.cursor_mode integer

Задает режим по умолчанию для курсоров открываемых ingres_prepare(). Допустимые значения: INGRES_CURSOR_UPDATE или INGRES_CURSOR_READONLY.

ingres.default_database string

Задает имя базы данных по умолчанию, которое будет использовано, если оно не задано при соединении. Не применяется в SQL safe mode.

ingres.default_password string

Задает пароль по умолчанию, который будет использовано, если не задан при соединении. Не применяется в SQL safe mode.

ingres.default_user string

Задает имя пользователя по умолчанию, которое будет использовано, если не задано при соединении. Не применяется в SQL safe mode.

ingres.describe boolean

Разрешает использование DESCRIBE INPUT для определения ожидаемых типов данных для запросов использующих параметры. Доступно с Ingres 9.1.0. Если отключено, то запросы использующие передаваемые параметры могут потребовать ручного описания типов этих параметров используя аргумент types функции ingres_query().

Замечание:

Разрешение этого функционала может привести к увеличению траффика между расширением и базой данных при использовании ingres_query(). Для минимизации этого траффика используйте ingres_prepare() и ingres_execute().

ingres.fetch_buffer_size integer

Указывает количество строк в предварительной выборке, которую будут пытаться сделать функции ingres_fetch_array(), ingres_fetch_object() и ingres_fetch_row() при каждой операции извлечения.

ingres.max_links integer

Определяет максимальное количество сессий Ingres для одного процесса или потока. Это число не должно превышать значения максимального количества соединений Ingress.

ingres.max_persistent integer

Определяет максимальное количество постоянных сессий для одного процесса или потока. Это число не должно превышать значения максимального количества соединений Ingress.

ingres.reuse_connection boolean

Переиспользовать существующее активное соединение, если используются те же база данных и пользователь.

ingres.scrollable boolean

Разрешает поддержку перематываемых курсоров. При извлечении CLOB или BLOB, эта настройка должна быть выставлена в FALSE. Доступно с Ingres 9.2.0.

ingres.trace boolean

Разрешает простую трассировку используя сообщения E_NOTICE.

ingres.trace_connect boolean

Печатает сообщения E_NOTICE в процессе выполнения ingres_connect() или ingres_pconnect().

ingres.utf8 boolean

Предполагает, что для NVARCHAR и NCHAR строки передаются с использованием кодировки UTF8 и преобразует их в UTF16 для сервера.


Типы ресурсов

ingres_connect() и ingres_pconnect() возвращают идентификатор соединения Ingres.

ingres_query() и ingres_unbuffered_query() возвращают идентификатор результирующего набора Ingres.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

INGRES_ASSOC (integer)
Извлекать строки в виде ассоциативного массива. Используется с ingres_fetch_array().
INGRES_NUM (integer)
Извлекать строки в виде индексированного массива. Обратите внимание, что по умолчанию первое поле в массиве будет иметь индекс 1. Как изменить это поведение смотрите тут: ingres.array_index_start. Используется с ingres_fetch_array().
INGRES_BOTH (integer)
Извлекать строки в виде индексированного и ассоциативного массивов одновременно. Используется с ingres_fetch_array().
INGRES_EXT_VERSION (string)
Содержит версию расширения Ingres. Доступно с PECL версии 1.2.0.
INGRES_API_VERSION (integer)
Содержит версию Ingres OpenAPI, с которой собрано расширение. Доступно с PECL версии 1.2.0.
INGRES_CURSOR_READONLY (integer)
Открывать курсор в режиме "readonly". Доступно с PECL версии 1.2.0. Используется с ingres.cursor_mode.
INGRES_CURSOR_UPDATE (integer)
Открывать курсор в режиме "for update." Доступно с PECL версии 1.2.0. Используется с ingres.cursor_mode.
INGRES_DATE_MULTINATIONAL (integer)
Идентично заданию опции II_DATE_FORMAT значения MULTINATIONAL.
Доступно с PECL версии 1.2.0.
Используется в ingres_connect(), ingres_pconnect()
и ingres_set_environment(). Читайте раздел options
на странице описания ingres_set_environment().
INGRES_DATE_MULTINATIONAL4 (integer)
Идентично заданию опции II_DATE_FORMAT значения MULTINATIONAL4.
Доступно с PECL версии 1.2.0.
Используется в ingres_connect(), ingres_pconnect()
и ingres_set_environment(). Читайте раздел options
на странице описания ingres_set_environment().
INGRES_DATE_FINNISH (integer)
Идентично заданию опции II_DATE_FORMAT значения FINNISH.
Доступно с PECL версии 1.2.0.
Используется в ingres_connect(), ingres_pconnect()
и ingres_set_environment(). Читайте раздел options
на странице описания ingres_set_environment().
INGRES_DATE_ISO (integer)
Идентично заданию опции II_DATE_FORMAT значения ISO.
Доступно с PECL версии 1.2.0.
Используется в ingres_connect(), ingres_pconnect()
и ingres_set_environment(). Читайте раздел options
на странице описания ingres_set_environment().
INGRES_DATE_ISO4 (integer)
Идентично заданию опции II_DATE_FORMAT значения ISO4.
Доступно с PECL версии 1.2.0.
Используется в ingres_connect(), ingres_pconnect()
и ingres_set_environment(). Читайте раздел options
на странице описания ingres_set_environment().
INGRES_DATE_GERMAN (integer)
Идентично заданию опции II_DATE_FORMAT значения GERMAN.
Доступно с PECL версии 1.2.0.
Используется в ingres_connect(), ingres_pconnect()
и ingres_set_environment(). Читайте раздел options
на странице описания ingres_set_environment().
INGRES_DATE_MDY (integer)
Идентично заданию опции II_DATE_FORMAT значения MDY.
Доступно с PECL версии 1.2.0.
Используется в ingres_connect(), ingres_pconnect()
и ingres_set_environment(). Читайте раздел options
на странице описания ingres_set_environment().
INGRES_DATE_DMY (integer)
Идентично заданию опции II_DATE_FORMAT значения DMY.
Доступно с PECL версии 1.2.0.
Используется в ingres_connect(), ingres_pconnect()
и ingres_set_environment(). Читайте раздел options
на странице описания ingres_set_environment().
INGRES_DATE_YMD (integer)
Идентично заданию опции II_DATE_FORMAT значения YMD.
Доступно с PECL версии 1.2.0.
Используется в ingres_connect(), ingres_pconnect()
и ingres_set_environment(). Читайте раздел options
на странице описания ingres_set_environment().
INGRES_MONEY_LEADING (integer)
Указывает, что символ денежной единицы ставится перед числовым значением. Идентично заданию опции II_MONEY_FORMAT значения "L:". Доступно с PECL версии 1.2.0. Используется в ingres_connect(), ingres_pconnect() и ingres_set_environment(). Читайте раздел options на странице описания ingres_set_environment().
INGRES_MONEY_TRAILING (integer)
Указывает, что символ денежной единицы ставится позади числового значения. Идентично заданию опции II_MONEY_FORMAT значения "T:". Доступно с PECL версии 1.2.0. Используется в ingres_connect(), ingres_pconnect() и ingres_set_environment(). Читайте раздел options на странице описания ingres_set_environment().
INGRES_STRUCTURE_BTREE (integer)
Определяет структуру таблиц и индексов по умолчанию как BTREE при использовании в сочетании в другими опциями или опциями index_structure при подключении. Доступно с PECL версии 1.4.0. Используется в ingres_connect() и ingres_pconnect(). Читайте раздел options на странице описания ingres_connect().
INGRES_STRUCTURE_CBTREE (integer)
Определяет структуру таблиц и индексов по умолчанию как COMPRESSED BTREE при использовании в сочетании в другими опциями или опциями index_structure при подключении. Доступно с PECL версии 1.4.0. Используется в ingres_connect() и ingres_pconnect(). Читайте раздел options на странице описания ingres_connect().
INGRES_STRUCTURE_HASH (integer)
Определяет структуру таблиц и индексов по умолчанию как HASH при использовании в сочетании в другими опциями или опциями index_structure при подключении. Доступно с PECL версии 1.4.0. Используется в ingres_connect() и ingres_pconnect(). Читайте раздел options на странице описания ingres_connect().
INGRES_STRUCTURE_CHASH (integer)
Определяет структуру таблиц и индексов по умолчанию как COMPRESSED HASH при использовании в сочетании в другими опциями или опциями index_structure при подключении. Доступно с PECL версии 1.4.0. Используется в ingres_connect() и ingres_pconnect(). Читайте раздел options на странице описания ingres_connect().
INGRES_STRUCTURE_HEAP (integer)
Определяет структуру таблиц и индексов по умолчанию как HEAP при использовании в сочетании в другими опциями или опциями index_structure при подключении. Доступно с PECL версии 1.4.0. Используется в ingres_connect() и ingres_pconnect(). Читайте раздел options на странице описания ingres_connect().
INGRES_STRUCTURE_CHEAP (integer)
Определяет структуру таблиц и индексов по умолчанию как COMPRESSED HEAP при использовании в сочетании в другими опциями или опциями index_structure при подключении. Доступно с PECL версии 1.4.0. Используется в ingres_connect() и ingres_pconnect(). Читайте раздел options на странице описания ingres_connect().
INGRES_STRUCTURE_ISAM (integer)
Определяет структуру таблиц и индексов по умолчанию как ISAM при использовании в сочетании в другими опциями или опциями index_structure при подключении. Доступно с PECL версии 1.4.0. Используется в ingres_connect() и ingres_pconnect(). Читайте раздел options на странице описания ingres_connect().
INGRES_STRUCTURE_CISAM (integer)
Определяет структуру таблиц и индексов по умолчанию как COMPRESSED ISAM при использовании в сочетании в другими опциями или опциями index_structure при подключении. Доступно с PECL версии 1.4.0. Используется в ingres_connect() и ingres_pconnect(). Читайте раздел options на странице описания ingres_connect().


  • « Предопределенные константы
  • Базовое использование »
  • PHP Manual
  • Ingres
  • Примеры

Примеры

Содержание

  • Базовое использование


Базовое использование

Следующий простой пример демонстрирует соединение с базой Ingres, запуск запроса, печать результата и закрытие соединения.

Пример #1 Простой пример Ingres

<?php
// Соединяемся, выбираем базу данных
$link = ingres_connect("database", "user", "password")
    or die("Невозможно установить соединение: " . ingres_error($link));
echo "Соединение установлено";

// Делаем выборку из таблицы, которая присутствует в любой базе Ingres
$query = "SELECT * FROM iitables";
$result = ingres_query($link,$query) or die("Query failed: " .
ingres_error($link));

// Печатаем результат
// relid - имя таблицы
// relowner - владелец таблицы
echo "<table>\n";
while ($iitables = ingres_fetch_object($result)) {
    echo "\t<tr>\n";
    echo "\t\t<td>" . $iitables->relid . "</td>\n";
    echo "\t\t<td>" . $iitables->relowner . "</td>\n";
    echo "\t</tr>\n";
}
echo "</table>\n";

// Высвобождаем ресурсы
ingres_free_result($result);

// Подтверждаем транзакцию
ingres_commit($link);

// Закрываем соединение
ingres_close($link);
?>


Функции Ingres

Содержание

  • ingres_autocommit_state — Test if the connection is using autocommit
  • ingres_autocommit — Switch autocommit on or off
  • ingres_charset — Returns the installation character set
  • ingres_close — Close an Ingres database connection
  • ingres_commit — Commit a transaction
  • ingres_connect — Open a connection to an Ingres database
  • ingres_cursor — Get a cursor name for a given result resource
  • ingres_errno — Get the last Ingres error number generated
  • ingres_error — Get a meaningful error message for the last error generated
  • ingres_errsqlstate — Get the last SQLSTATE error code generated
  • ingres_escape_string — Escape special characters for use in a query
  • ingres_execute — Execute a prepared query
  • ingres_fetch_array — Fetch a row of result into an array
  • ingres_fetch_assoc — Fetch a row of result into an associative array
  • ingres_fetch_object — Fetch a row of result into an object
  • ingres_fetch_proc_return — Get the return value from a procedure call
  • 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_free_result — Free the resources associated with a result identifier
  • ingres_next_error — Get the next Ingres error
  • 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 a query
  • ingres_pconnect — Open a persistent connection to an Ingres database
  • ingres_prepare — Prepare a query for later execution
  • ingres_query — Send an SQL query to Ingres
  • ingres_result_seek — Set the row position before fetching data
  • ingres_rollback — Roll back a transaction
  • ingres_set_environment — Set environment features controlling output options
  • ingres_unbuffered_query — Send an unbuffered SQL query to Ingres


Test if the connection is using autocommit

  • « Функции Ingres
  • ingres_autocommit »
  • PHP Manual
  • Функции Ingres
  • Test if the connection is using autocommit

ingres_autocommit_state

(PECL ingres >= 2.0.0)

ingres_autocommit_state — Test if the connection is using autocommit

Описание

ingres_autocommit_state ( resource $link ) : bool

ingres_autocommit_state() is called to determine whether the current link has autocommit enabled or not.

Список параметров

link

The connection link identifier

Возвращаемые значения

Returns TRUE if autocommit is enabled or FALSE when autocommit is disabled

Смотрите также

  • ingres_autocommit() - Switch autocommit on or off
  • ingres_query() - Send an SQL query to Ingres


Switch autocommit on or off

  • « ingres_autocommit_state
  • ingres_charset »
  • PHP Manual
  • Функции Ingres
  • Switch autocommit on or off

ingres_autocommit

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_autocommit — Switch autocommit on or off

Описание

ingres_autocommit ( resource $link ) : bool

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 autocommit mode is on, every query is automatically committed by the server, as if ingres_commit() was called after every call to ingres_query(). To see if autocommit is enabled use, ingres_autocommit_state().

By default Ingres will rollback any uncommitted transactions at the end of a request. Use this function or ingres_commit() to ensure your data is committed to the database.

Список параметров

link

The connection link identifier

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ingres_autocommit_state() - Test if the connection is using autocommit
  • ingres_query() - Send an SQL query to Ingres
  • ingres_rollback() - Roll back a transaction
  • ingres_commit() - Commit a transaction


Returns the installation character set

  • « ingres_autocommit
  • ingres_close »
  • PHP Manual
  • Функции Ingres
  • Returns the installation character set

ingres_charset

(PECL ingres >= 2.1.0)

ingres_charset — Returns the installation character set

Описание

ingres_charset ( resource $link ) : string

ingres_charset() is called to determine the character set being used by the Ingres client, from II_CHARSETxx (where xx is the installation code).

Замечание:

You can override the value returned by using the function putenv(). Changing the value of II_CHARSETxx in a running Ingres installation can cause data corruption.

Список параметров

link

The connection link identifier

Возвращаемые значения

Returns a string with the value for II_CHARSETxx or returns NULL if the value could not be determined.

Примеры

Пример #1 ingres_charset() - Get the installation character set

<?php
$link = ingres_connect($database, $user, $password);

echo ingres_charset($link) . "\n";

ingres_close($link);
?>

Смотрите также

  • ingres_connect() - Open a connection to an Ingres database
  • ingres_query() - Send an SQL query to Ingres


Close an Ingres database connection

  • « ingres_charset
  • ingres_commit »
  • PHP Manual
  • Функции Ingres
  • Close an Ingres database connection

ingres_close

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_close — Close an Ingres database connection

Описание

ingres_close ( resource $link ) : bool

ingres_close() closes the connection to the Ingres server that is associated with the specified link.

ingres_close() is usually unnecessary, as it will not close persistent connections and all non-persistent connections are automatically closed at the end of the script.

Список параметров

link

The connection link identifier

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ingres_connect() - Open a connection to an Ingres database
  • ingres_pconnect() - Open a persistent connection to an Ingres database


Commit a transaction

  • « ingres_close
  • ingres_connect »
  • PHP Manual
  • Функции Ingres
  • Commit a transaction

ingres_commit

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_commit — Commit a transaction

Описание

ingres_commit ( resource $link ) : bool

ingres_commit() commits the currently open transaction, making all changes made to the database permanent.

This closes the transaction. A new transaction can be opened 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.

By default Ingres will roll back any uncommitted transactions at the end of a request. Use this function or ingres_autocommit() to ensure your that data is committed to the database.

Список параметров

link

The connection link identifier

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_rollback() - Roll back a transaction
  • ingres_autocommit() - Switch autocommit on or off


Open a connection to an Ingres database

  • « ingres_commit
  • ingres_cursor »
  • PHP Manual
  • Функции Ingres
  • Open a connection to an Ingres database

ingres_connect

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_connect — Open a connection to an Ingres database

Описание

ingres_connect ([ string $database [, string $username [, string $password [, array $options ]]]] ) : resource

ingres_connect() opens a connection with the given Ingres database.

The connection is closed when the script ends or when ingres_close() is called on this link.

Список параметров

If some parameters are missing, ingres_connect() uses the values in php.ini for ingres.default_database, ingres.default_user and ingres.default_password.

database

The database name. Must follow the syntax:

[vnode::]dbname[/svr_class]

username

The Ingres user name

password

The password associated with username

options

ingres_connect() options

Option name | Option type | Description | Example
date_century_boundary | integer | The threshold by which a 2-digit year is determined to be in the current century or in the next century. Equivalent to II_DATE_CENTURY_BOUNDARY. | 50
group | string | Specifies the group ID of the user, equivalent to the "-G" flag | payroll
role | string | The role ID of the application. If a role password is required, the parameter value should be specified as "role/password"
effective_user | string | The ingres user account being impersonated, equivalent to the "-u" flag | another_user
dbms_password | string | The internal database password for the user connecting to Ingres | s3cr3t
table_structure string

The default structure for new tables. Valid values for table_structure are:

  • INGRES_STRUCTURE_BTREE
  • INGRES_STRUCTURE_HASH
  • INGRES_STRUCTURE_HEAP
  • INGRES_STRUCTURE_ISAM
  • INGRES_STRUCTURE_CBTREE
  • INGRES_STRUCTURE_CISAM
  • INGRES_STRUCTURE_CHASH
  • INGRES_STRUCTURE_CHEAP

 INGRES_STRUCTURE_BTREE
index_structure string

The default structure for new secondary indexes. Valid values for index_structure are:

  • INGRES_STRUCTURE_CBTREE
  • INGRES_STRUCTURE_CISAM
  • INGRES_STRUCTURE_CHASH
  • INGRES_STRUCTURE_BTREE
  • INGRES_STRUCTURE_HASH
  • INGRES_STRUCTURE_ISAM

 INGRES_STRUCTURE_HASH
login_local | boolean | Determines how the connection user ID and password are used when a VNODE is included in the target database string. If set to TRUE, the user ID and password are used to locally access the VNODE, and the VNODE login information is used to establish the DBMS connection. If set to FALSE, the process user ID is used to access the VNODE, and the connection user ID and password are used in place of the VNODE login information to establish the DBMS connection. This parameter is ignored if no VNODE is included in the target database string. The default is FALSE. | TRUE
timezone | string | Controls the timezone of the session. If not set it will default to the value defined by II_TIMEZONE_NAME. If II_TIMEZONE_NAME is not defined, NA-PACIFIC (GMT-8 with Daylight Savings) is used.
date_format integer

Sets the allowable input and output format for Ingres dates. Defaults to the value defined by II_DATE_FORMAT. If II_DATE_FORMAT is not set the default date format is US, e.g. mm/dd/yy. Valid values for date_format are:

  • INGRES_DATE_DMY
  • INGRES_DATE_FINISH
  • INGRES_DATE_GERMAN
  • INGRES_DATE_ISO
  • INGRES_DATE_ISO4
  • INGRES_DATE_MDY
  • INGRES_DATE_MULTINATIONAL
  • INGRES_DATE_MULTINATIONAL4
  • INGRES_DATE_YMD
  • INGRES_DATE_US

 INGRES_DATE_MULTINATIONAL4
decimal_separator string The character identifier for decimal data ","
money_lort integer

Leading or trailing currency sign. Valid values for money_lort are:

  • INGRES_MONEY_LEADING
  • INGRES_MONEY_TRAILING

 INGRES_MONEY_TRAILING
money_sign string The currency symbol to be used with the MONEY datatype €
money_precision | integer | The precision of the MONEY datatype | 3
float4_precision | integer | Precision of the FLOAT4 datatype | 10
float8_precision | integer | Precision of the FLOAT8 data | 10
blob_segment_length | integer | The amount of data in bytes to fetch at a time when retrieving BLOB or CLOB data, defaults to 4096 bytes when not explicitly set | 8192

Возвращаемые значения

Returns a Ingres link resource on success или FALSE в случае возникновения ошибки

Примеры

Пример #1 Open a connection to an Ingres database

<?php
$link = ingres_connect("mydb", "user", "pass")
    or die("Could not connect");
echo "Connected successfully";
ingres_close($link);
?>

Смотрите также

  • ingres_pconnect() - Open a persistent connection to an Ingres database
  • ingres_close() - Close an Ingres database connection


Get a cursor name for a given result resource

  • « ingres_connect
  • ingres_errno »
  • PHP Manual
  • Функции Ingres
  • Get a cursor name for a given result resource

ingres_cursor

(PECL ingres >= 1.1.0)

ingres_cursor — Get a cursor name for a given result resource

Описание

ingres_cursor ( resource $result ) : string

Returns a string with the active cursor name. If no cursor is active then NULL is returned.

Список параметров

result

The query result identifier

Возвращаемые значения

Returns a string containing the active cursor name. If no cursor is active then NULL is returned.

Примеры

Пример #1 Get cursor name for a query resource

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_prepare($link, "select * from table");

$cursor_name = ingres_cursor($result);

echo $cursor_name;

?>

Смотрите также

  • ingres_prepare() - Prepare a query for later execution
  • ingres_execute() - Execute a prepared query


Get the last Ingres error number generated

  • « ingres_cursor
  • ingres_error »
  • PHP Manual
  • Функции Ingres
  • Get the last Ingres error number generated

ingres_errno

(PECL ingres >= 1.1.0)

ingres_errno — Get the last Ingres error number generated

Описание

ingres_errno ([ resource $link ] ) : int

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.

Список параметров

link

The connection link identifier

Возвращаемые значения

Returns an integer containing the last error number. If no error was reported, 0 is returned.

Примеры

Пример #1 Get the last Ingres error number generated

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");

$error_code = ingres_errno($link);

if ( $error_code != 0 ) {
   echo "An error occurred - " . $error_code;
}
?>

Смотрите также

  • ingres_error() - Get a meaningful error message for the last error generated
  • ingres_errsqlstate() - Get the last SQLSTATE error code generated
  • ingres_next_error() - Get the next Ingres error


Get a meaningful error message for the last error generated

  • « ingres_errno
  • ingres_errsqlstate »
  • PHP Manual
  • Функции Ingres
  • Get a meaningful error message for the last error generated

ingres_error

(PECL ingres >= 1.1.0)

ingres_error — Get a meaningful error message for the last error generated

Описание

ingres_error ([ resource $link ] ) : string

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.

Список параметров

link

The connection link identifier

Возвращаемые значения

Returns a string containing the last error, or NULL if no error has occurred.

Примеры

Пример #1 Get a message for the last error generated

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");

$error_text = ingres_error();

if (!is_null($error_text)) {
   echo "An error occurred - " . $error_text;
}
?>

Смотрите также

  • ingres_errno() - Get the last Ingres error number generated
  • ingres_errsqlstate() - Get the last SQLSTATE error code generated
  • ingres_next_error() - Get the next Ingres error


Get the last SQLSTATE error code generated

  • « ingres_error
  • ingres_escape_string »
  • PHP Manual
  • Функции Ingres
  • Get the last SQLSTATE error code generated

ingres_errsqlstate

(PECL ingres >= 1.1.0)

ingres_errsqlstate — Get the last SQLSTATE error code generated

Описание

ingres_errsqlstate ([ resource $link ] ) : string

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.

Список параметров

link

The connection link identifier

Возвращаемые значения

Returns a string containing the last SQLSTATE, or NULL if no error has occurred.

Примеры

Пример #1 Get the last SQLSTATE error code generated

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");

$error_sqlstate = ingres_errsqlstate($link);

if (!is_null($error_sqlstate)) {
   echo "An error occurred - " . $error_sqlstate;
}
?>

Смотрите также

  • ingres_errno() - Get the last Ingres error number generated
  • ingres_error() - Get a meaningful error message for the last error generated
  • ingres_next_error() - Get the next Ingres error


Escape special characters for use in a query

  • « ingres_errsqlstate
  • ingres_execute »
  • PHP Manual
  • Функции Ingres
  • Escape special characters for use in a query

ingres_escape_string

(PECL ingres >= 2.1.0)

ingres_escape_string — Escape special characters for use in a query

Описание

ingres_escape_string ( resource $link , string $source_string ) : string

ingres_escape_string() is used to escape certain characters within a string before it is sent to the database server.

Список параметров

link

The connection link identifier

source_string

The source string to be parsed

Возвращаемые значения

Returns a string containing the escaped data.

Примеры

Пример #1 Escape special characters for use in a query

<?php
$link = ingres_connect($database, $user, $password);

$last_name = "O'Connor";

$sql = sprintf("select * from user_profile where up_last = '%s'", ingres_escape_string( $link, $last_name));

$result = ingres_query($link, $sql);

while ($user = ingres_fetch_object($result))
{
  echo $user->up_first . '<BR/>';
}

ingres_commit($link);

ingres_close($link);

?>

Смотрите также

  • ingres_query() - Send an SQL query to Ingres


Execute a prepared query

  • « ingres_escape_string
  • ingres_fetch_array »
  • PHP Manual
  • Функции Ingres
  • Execute a prepared query

ingres_execute

(PECL ingres >= 1.1.0)

ingres_execute — Execute a prepared query

Описание

ingres_execute ( resource $result [, array $params [, string $types ]] ) : bool

Execute a query prepared using ingres_prepare().

Замечание: Related Configurations

See also the ingres.describe, ingres.scrollable and ingres.utf8 directives in Runtime Configuration.

Список параметров

result

The result query identifier

params

An array of parameter values to be used with the query

types

A string containing a sequence of types for the parameter values passed. See the types parameter in ingres_query() for the list of type codes.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ingres_unbuffered_query() - Send an unbuffered SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative 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_commit() - Commit a transaction
  • ingres_rollback() - Roll back a transaction
  • ingres_autocommit() - Switch autocommit on or off
  • ingres_set_environment() - Set environment features controlling output options
  • ingres_errno() - Get the last Ingres error number generated
  • ingres_error() - Get a meaningful error message for the last error generated


Fetch a row of result into an array

  • « ingres_execute
  • ingres_fetch_assoc »
  • PHP Manual
  • Функции Ingres
  • Fetch a row of result into an array

ingres_fetch_array

(PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_fetch_array — Fetch a row of result into an array

Описание

ingres_fetch_array ( resource $result [, int $result_type ] ) : array

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 another column or columns of the same name, you must use the numeric index of the column or make an alias for the column. For example:

<?php

$result = ingres_query($link, "select ap_place as city, ap_ccode as country from airport where ap_iatacode = 'VLL'");
$result = ingres_fetch_array($result);
$foo = $result["city"];
$bar = $result["country"];

?>

With regard to speed, the function is identical to ingres_fetch_object(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

By default, arrays created by ingres_fetch_array() start from position 1 and not 0 as with other DBMS extensions. The starting position can be adjusted to 0 using the configuration parameter ingres.array_index_start.

Замечание: Related Configurations

See also the ingres.array_index_start, ingres.fetch_buffer_size and ingres.utf8 directives in Runtime Configuration.

Список параметров

result

The query result identifier

result_type

The result type. This result_type can be INGRES_NUM for enumerated array, INGRES_ASSOC for associative array, or INGRES_BOTH (default).

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows

Примеры

Пример #1 Fetch a row of result into an array

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link,"select * from table");
while ($row = ingres_fetch_array($result)) {
    echo $row["user_id"];  // using associative array
    echo $row["fullname"];
    echo $row[1];          // using enumerated array
    echo $row[2];
}
?>

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_num_fields() - Get the number of fields returned by the last query
  • ingres_field_name() - Get the name of a field in a query result
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Fetch a row of result into an associative array

  • « ingres_fetch_array
  • ingres_fetch_object »
  • PHP Manual
  • Функции Ingres
  • Fetch a row of result into an associative array

ingres_fetch_assoc

(PECL ingres >= 2.2.2)

ingres_fetch_assoc — Fetch a row of result into an associative array

Описание

ingres_fetch_assoc ( resource $result ) : array

This function is stores the data fetched from a query executed using ingres_query() in an associative array, using the field names as keys.

With regard to speed, the function is identical to ingres_fetch_object(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

By default, arrays created by ingres_fetch_assoc() start from position 1 and not 0 as with other DBMS extensions. The starting position can be adjusted to 0 using the configuration parameter ingres.array_index_start.

Замечание: Related Configurations

See also the ingres.array_index_start, ingres.fetch_buffer_size and ingres.utf8 directives in Runtime Configuration.

Список параметров

result

The query result identifier

Возвращаемые значения

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows

Примеры

Пример #1 Fetch a row into an associative array

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link,"select * from table");
while ($row = ingres_fetch_assoc($result)) {
    echo $row["user_id"];  // using associative array
    echo $row["fullname"];
}
?>

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_num_fields() - Get the number of fields returned by the last query
  • ingres_field_name() - Get the name of a field in a query result
  • 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


Fetch a row of result into an object

  • « ingres_fetch_assoc
  • ingres_fetch_proc_return »
  • PHP Manual
  • Функции Ingres
  • Fetch a row of result into an object

ingres_fetch_object

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_fetch_object — Fetch a row of result into an object

Описание

ingres_fetch_object ( resource $result [, int $result_type ] ) : object

This function is similar to ingres_fetch_array(), with one difference - an object is returned instead of an array. Indirectly, this means that you can access the data only by the field names and not by their offsets (numbers are illegal property names).

With regard to speed, the function is identical to ingres_fetch_array(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

Замечание: Related Configurations

See also the ingres.fetch_buffer_size and ingres.utf8 directives in Runtime Configuration.

Список параметров

link

The query result identifier

result_type

(Optional argument.) result_type is a constant and can take the following values: INGRES_ASSOC, INGRES_NUM, and INGRES_BOTH.

Возвращаемые значения

Returns an object that corresponds to the fetched row, or FALSE if there are no more rows

Примеры

Пример #1 Fetch a row into an object

<?php
$link = ingres_connect($database, $user, $password);
$result = ingres_query($link, "select * from table");
while ($row = ingres_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
?>

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_num_fields() - Get the number of fields returned by the last query
  • ingres_field_name() - Get the name of a field in a query result
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Get the return value from a procedure call

  • « ingres_fetch_object
  • ingres_fetch_row »
  • PHP Manual
  • Функции Ingres
  • Get the return value from a procedure call

ingres_fetch_proc_return

(PECL ingres >= 1.4.0)

ingres_fetch_proc_return — Get the return value from a procedure call

Описание

ingres_fetch_proc_return ( resource $result ) : int

This function is used to retrieve the return value following the execution of an Ingres database procedure (stored procedure).

Замечание:

If used with a row-producing procedure, this function should be called after all the rows from the procedure have been fetched using ingres_fetch_array(), ingres_fetch_object() or ingres_fetch_row(). This function will eliminate any rows yet to be fetched should there be any left over.

Список параметров

result

The result identifier for a query

Возвращаемые значения

Returns an integer if there is a return value otherwise it will return NULL.

Примеры

Пример #1 Get the return value from a procedure call

<?php

$link = ingres_connect($database);

if ( ingres_errno() != 0 ) {
    $error_text = ingres_error();
    die($error_text);
}

$result = ingres_query($link, "execute procedure php_proc (value = 1000)");

if ( ingres_errno() != 0 ) {
    $error_text = ingres_error();
    die($error_text);
}

echo "return value - " . ingres_fetch_proc_return($result) . "\n";

ingres_close($link);

?>

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • 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


Fetch a row of result into an enumerated array

  • « ingres_fetch_proc_return
  • ingres_field_length »
  • PHP Manual
  • Функции Ingres
  • Fetch a row of result into an enumerated array

ingres_fetch_row

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_fetch_row — Fetch a row of result into an enumerated array

Описание

ingres_fetch_row ( resource $result ) : array

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 calls to ingres_fetch_row() return the next row in the result set, or FALSE if there are no more rows.

By default, arrays created by ingres_fetch_row() start from position 1 and not 0 as with other DBMS extensions. The starting position can be adjusted to 0 using the configuration parameter ingres.array_index_start.

Замечание: Related Configurations

See also the ingres.array_index_start, ingres.fetch_buffer_size and ingres.utf8 directives in Runtime Configuration.

Список параметров

result

The query result identifier

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows

Примеры

Пример #1 Fetch a row of result into an enumerated array

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Смотрите также

  • ingres_num_fields() - Get the number of fields returned by the last query
  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object


Get the length of a field

  • « ingres_fetch_row
  • ingres_field_name »
  • PHP Manual
  • Функции Ingres
  • Get the length of a field

ingres_field_length

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_field_length — Get the length of a field

Описание

ingres_field_length ( resource $result , int $index ) : int

ingres_field_length() returns the length of a field. This is the number of bytes the server uses to store the field. For detailed information, see the Ingres OpenAPI User Guide, Appendix "Data Types" in the Ingres documentation.

Замечание: Related Configurations

See ingres.array_index_start in Runtime Configuration

Список параметров

result

The query result identifier

index

index is the column number whose length will be retrieved.

The possible values of index depend upon the value of ingres.array_index_start. If ingres.array_index_start is 1 (the default) then index must be between 1 and the value returned by ingres_num_fields(). If ingres.array_index_start is 0 then index must be between 0 and ingres_num_fields() - 1.

Возвращаемые значения

Returns the length of a field.

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Get the name of a field in a query result

  • « ingres_field_length
  • ingres_field_nullable »
  • PHP Manual
  • Функции Ingres
  • Get the name of a field in a query result

ingres_field_name

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_field_name — Get the name of a field in a query result

Описание

ingres_field_name ( resource $result , int $index ) : string

ingres_field_name() returns the name of a field in a query result.

Замечание: Related Configurations

See ingres.array_index_start in Runtime Configuration

Список параметров

result

The query result identifier

index

index is the field whose name will be retrieved.

The possible values of index depend upon the value of ingres.array_index_start. If ingres.array_index_start is 1 (the default) then index must be between 1 and the value returned by ingres_num_fields(). If ingres.array_index_start is 0 then index must be between 0 and ingres_num_fields() - 1.

Возвращаемые значения

Returns the name of a field in a query result или FALSE в случае возникновения ошибки

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Test if a field is nullable

  • « ingres_field_name
  • ingres_field_precision »
  • PHP Manual
  • Функции Ingres
  • Test if a field is nullable

ingres_field_nullable

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_field_nullable — Test if a field is nullable

Описание

ingres_field_nullable ( resource $result , int $index ) : bool

Test if a field is nullable.

Замечание: Related Configurations

See ingres.array_index_start in Runtime Configuration

Список параметров

result

The query result identifier

index

index is the field whose nullability will be retrieved.

The possible values of index depend upon the value of ingres.array_index_start. If ingres.array_index_start is 1 (the default) then index must be between 1 and the value returned by ingres_num_fields(). If ingres.array_index_start is 0 then index must be between 0 and ingres_num_fields() - 1.

Возвращаемые значения

ingres_field_nullable() returns TRUE if the field can be set to the NULL value and FALSE if it cannot

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Get the precision of a field

  • « ingres_field_nullable
  • ingres_field_scale »
  • PHP Manual
  • Функции Ingres
  • Get the precision of a field

ingres_field_precision

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_field_precision — Get the precision of a field

Описание

ingres_field_precision ( resource $result , int $index ) : int

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 "Data Types" in the Ingres documentation.

Замечание: Related Configurations

See ingres.array_index_start in Runtime Configuration

Список параметров

result

The query result identifier

index

index is the field whose precision will be retrieved.

The possible values of index depend upon the value of ingres.array_index_start. If ingres.array_index_start is 1 (the default) then index must be between 1 and the value returned by ingres_num_fields(). If ingres.array_index_start is 0 then index must be between 0 and ingres_num_fields() - 1.

Возвращаемые значения

Returns the field precision as an integer

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Get the scale of a field

  • « ingres_field_precision
  • ingres_field_type »
  • PHP Manual
  • Функции Ingres
  • Get the scale of a field

ingres_field_scale

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_field_scale — Get the scale of a field

Описание

ingres_field_scale ( resource $result , int $index ) : int

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 "Data Types" in the Ingres documentation.

Замечание: Related Configurations

See ingres.array_index_start in Runtime Configuration

Список параметров

result

The query result identifier

index

index is the field whose scale will be retrieved.

The possible values of index depend upon the value of ingres.array_index_start. If ingres.array_index_start is 1 (the default) then index must be between 1 and the value returned by ingres_num_fields(). If ingres.array_index_start is 0 then index must be between 0 and ingres_num_fields() - 1.

Возвращаемые значения

Returns the scale of the field, as an integer

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Get the type of a field in a query result

  • « ingres_field_scale
  • ingres_free_result »
  • PHP Manual
  • Функции Ingres
  • Get the type of a field in a query result

ingres_field_type

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_field_type — Get the type of a field in a query result

Описание

ingres_field_type ( resource $result , int $index ) : string

Get the type of a field in a query result.

Замечание: Related Configurations

See ingres.array_index_start in Runtime Configuration

Список параметров

result

The query result identifier

index

index is the field whose type will be retrieved.

The possible values of index depend upon the value of ingres.array_index_start. If ingres.array_index_start is 1 (the default) then index must be between 1 and the value returned by ingres_num_fields(). If ingres.array_index_start is 0 then index must be between 0 and ingres_num_fields() - 1.

Возвращаемые значения

ingres_field_type() returns the type of a field in a query result или FALSE в случае возникновения ошибки. 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 "Data Types" in the Ingres documentation.

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Free the resources associated with a result identifier

  • « ingres_field_type
  • ingres_next_error »
  • PHP Manual
  • Функции Ingres
  • Free the resources associated with a result identifier

ingres_free_result

(PECL ingres >= 2.0.0)

ingres_free_result — Free the resources associated with a result identifier

Описание

ingres_free_result ( resource $result ) : bool

Список параметров

result

The query result identifier

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Free a result resource

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");

while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
ingres_free_result($result);

ingres_close($link)

?>

Смотрите также

  • ingres_query() - Send an SQL query to Ingres


Get the next Ingres error

  • « ingres_free_result
  • ingres_num_fields »
  • PHP Manual
  • Функции Ingres
  • Get the next Ingres error

ingres_next_error

(PECL ingres >= 2.0.0)

ingres_next_error — Get the next Ingres error

Описание

ingres_next_error ([ resource $link ] ) : bool

Get the next Ingres error for the last executed query. Each call to ingres_next_error() can be followed by a call to ingres_errno(), ingres_error() or ingres_errsqlstate() to get the respective error number, error text, or SQL STATE. While ingres_next_error() returns TRUE, there are more errors to fetch.

Список параметров

link

The connection link identifier

Возвращаемые значения

ingres_next_error() returns TRUE if there is another error to retrieve or FALSE when there are no more errors

Смотрите также

  • ingres_errno() - Get the last Ingres error number generated
  • ingres_error() - Get a meaningful error message for the last error generated
  • ingres_errsqlstate() - Get the last SQLSTATE error code generated


Get the number of fields returned by the last query

  • « ingres_next_error
  • ingres_num_rows »
  • PHP Manual
  • Функции Ingres
  • Get the number of fields returned by the last query

ingres_num_fields

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_num_fields — Get the number of fields returned by the last query

Описание

ingres_num_fields ( resource $result ) : int

ingres_num_fields() returns the number of fields in the results returned by the Ingres server after a call to ingres_query().

Список параметров

result

The query result identifier

Возвращаемые значения

Returns the number of fields

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Get the number of rows affected or returned by a query

  • « ingres_num_fields
  • ingres_pconnect »
  • PHP Manual
  • Функции Ingres
  • Get the number of rows affected or returned by a query

ingres_num_rows

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_num_rows — Get the number of rows affected or returned by a query

Описание

ingres_num_rows ( resource $result ) : int

This function primarily is meant to get the number of rows modified in the database. However, it can be used to retrieve the number of rows to fetch for a SELECT statement.

Замечание:

If scrollable cursors are disabled and 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 will be unable to get them.

Instead, you should 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.

Список параметров

result

The result identifier for a query

Возвращаемые значения

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.

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Open a persistent connection to an Ingres database

  • « ingres_num_rows
  • ingres_prepare »
  • PHP Manual
  • Функции Ingres
  • Open a persistent connection to an Ingres database

ingres_pconnect

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_pconnect — Open a persistent connection to an Ingres database

Описание

ingres_pconnect ([ string $database [, string $username [, string $password [, array $options ]]]] ) : resource

Open a persistent connection to an Ingres database.

There are only two differences between this function and ingres_connect(): First, when connecting, the function will initially try to find a (persistent) link that is 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".

Список параметров

database

The database name. Must follow the syntax:

[vnode::]dbname[/svr_class]

username

The Ingres user name

password

The password associated with username

options

See ingres_connect() for the list of options that can be passed

Возвращаемые значения

Returns an Ingres link resource on success или FALSE в случае возникновения ошибки

Смотрите также

  • ingres_connect() - Open a connection to an Ingres database
  • ingres_close() - Close an Ingres database connection


Prepare a query for later execution

  • « ingres_pconnect
  • ingres_query »
  • PHP Manual
  • Функции Ingres
  • Prepare a query for later execution

ingres_prepare

(PECL ingres >= 1.1.0)

ingres_prepare — Prepare a query for later execution

Описание

ingres_prepare ( resource $link , string $query ) : mixed

Prepares a query for execution by ingres_execute().

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 call either 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.

Замечание: Related Configurations

See also the ingres.describe, ingres.scrollable and ingres.utf8 directives in Runtime Configuration.

Список параметров

link

The connection link identifier

query

A valid SQL query (see the Ingres SQL reference guide) in the Ingres documentation. See the query parameter in ingres_query() for a list of SQL statements which cannot be executed using ingres_prepare()

Возвращаемые значения

ingres_prepare() returns a query result identifier that
is used with ingres_execute() to execute the query. To see
if an error occurred, use ingres_errno(),
ingres_error(), or
ingres_errsqlstate().

Смотрите также

  • ingres_unbuffered_query() - Send an unbuffered SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative 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_commit() - Commit a transaction
  • ingres_rollback() - Roll back a transaction
  • ingres_autocommit() - Switch autocommit on or off
  • ingres_set_environment() - Set environment features controlling output options
  • ingres_errno() - Get the last Ingres error number generated
  • ingres_error() - Get a meaningful error message for the last error generated


Send an SQL query to Ingres

  • « ingres_prepare
  • ingres_result_seek »
  • PHP Manual
  • Функции Ingres
  • Send an SQL query to Ingres

ingres_query

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_query — Send an SQL query to Ingres

Описание

ingres_query ( resource $link , string $query [, array $params [, string $types ]] ) : mixed

ingres_query() sends the given query to the Ingres server.

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 call either 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.

Замечание: Related Configurations

See also the ingres.describe, ingres.scrollable and ingres.utf8 directives in Runtime Configuration

Список параметров

link

The connection link identifier.

query

A valid SQL query (see the Ingres SQL reference guide) in the Ingres documentation.

Data inside the query should be properly escaped.

The following types of SQL queries cannot 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

params

An array of parameter values to be used with the query

types

A string containing a sequence of types for the parameter values passed. When ingres.describe is enabled, this parameter can be ignored as the driver automatically fetches the expected parameter types from the server.

Type code | Ingres type
a | BOOLEAN
b | BYTE
B | LONG BYTE/BLOB
c | CHAR
d | DATE/ANSIDATE/TIMESTAMP/TIME
f | FLOAT
i | INTEGER
L | LONG TEXT
m | MONEY
M | LONG NVARCHAR
n | NCHAR
N | NVARCHAR
t | TEXT
v | VARCHAR
V | LONG VARCHAR

Возвращаемые значения

ingres_query() returns a query result identifier on
success else it returns FALSE. To see if an error
occurred use ingres_errno(),
ingres_error() or
ingres_errsqlstate().

Примеры

Пример #1 Send a simple select

<?php
$link = ingres_connect("demodb");

$result = ingres_query($link, "select * from user_profile");
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Пример #2 Passing query parameters to ingres_query()

<?php
$link = ingres_connect("demodb");

$params[] = "Emma";
$query = "select * from user_profile where up_first = ?";
$result = ingres_query($link, $query, $params);
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Пример #3 Inserting a BLOB with parameter types

<?php
$link = ingres_connect("demodb");

//Open a photo
$fh = fopen("photo.jpg","r");
$blob_data = stream_get_contents($fh);
fclose($fh);

//Prepare parameters
$params[] = $blob_data;
$params[] = 1201;

//Define parameter types
$param_types = "Bi";

$query = "update user_profile set up_image = ? where up_id = ?";
$result = ingres_query($link, $query , $params, $param_types);

if (ingres_errno())
{
    echo ingres_errno() . "-" . ingres_error() . "\n";
}

ingres_commit($link);

ingres_close($link);
?>

Смотрите также

  • ingres_unbuffered_query() - Send an unbuffered SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative 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_commit() - Commit a transaction
  • ingres_rollback() - Roll back a transaction
  • ingres_autocommit() - Switch autocommit on or off
  • ingres_set_environment() - Set environment features controlling output options
  • ingres_errno() - Get the last Ingres error number generated
  • ingres_error() - Get a meaningful error message for the last error generated


Set the row position before fetching data

  • « ingres_query
  • ingres_rollback »
  • PHP Manual
  • Функции Ingres
  • Set the row position before fetching data

ingres_result_seek

(PECL ingres >= 2.1.0)

ingres_result_seek — Set the row position before fetching data

Описание

ingres_result_seek ( resource $result , int $position ) : bool

This function is used to position the cursor associated with the result resource before issuing a fetch. If ingres.array_index_start is set to 0 then the first row is 0 else it is 1. ingres_result_seek() can be used only with queries that make use of scrollable cursors. It cannot be used with ingres_unbuffered_query().

Замечание: Related Configurations

See also the ingres.scrollable and ingres.array_index_start directives in Runtime Configuration.

Список параметров

result

The result identifier for a query

position

The row to position the cursor on. If ingres.array_index_start is set to 0, then the first row is 0, else it is 1

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Position the cursor on the 3rd row

<?php

$result=ingres_query($link, "select * from airport where ap_ccode = 'ES' order by ap_place asc");

/* goto row 3 */
if (!ingres_result_seek($result, 3))
{
    echo ingres_errno() . " - " . ingres_error . "\n";
    die("i died");
}
else
{
    $airport = ingres_fetch_object ($result);
    {
        echo $airport->ap_iatacode . " - " .  $airport->ap_name . "\n";
    }
}

ingres_commit($link);

?>

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Roll back a transaction

  • « ingres_result_seek
  • ingres_set_environment »
  • PHP Manual
  • Функции Ingres
  • Roll back a transaction

ingres_rollback

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_rollback — Roll back a transaction

Описание

ingres_rollback ( resource $link ) : bool

ingres_rollback() rolls back the currently open transaction, actually cancelling all changes made to the database during the transaction.

This closes the transaction. A new transaction can be opened by sending a query with ingres_query().

Список параметров

link

The connection link identifier

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_commit() - Commit a transaction
  • ingres_autocommit() - Switch autocommit on or off


Set environment features controlling output options

  • « ingres_rollback
  • ingres_unbuffered_query »
  • PHP Manual
  • Функции Ingres
  • Set environment features controlling output options

ingres_set_environment

(PECL ingres >= 1.2.0)

ingres_set_environment — Set environment features controlling output options

Описание

ingres_set_environment ( resource $link , array $options ) : bool

ingres_set_environment() is called to set environmental options that affect the output of certain values from Ingres, such as the timezone, date format, decimal character separator, and float precision.

Список параметров

link

The connection link identifier

options

An enumerated array of option name/value pairs. The following table lists the option name and the expected type

Option name | Option type | Description | Example
date_century_boundary | integer | The threshold by which a 2-digit year is determined to be in the current century or in the next century. Equivalent to II_DATE_CENTURY_BOUNDARY | 50
timezone | string | Controls the timezone of the session. If not set, it will default the value defined by II_TIMEZONE_NAME. If II_TIMEZONE_NAME is not defined, NA-PACIFIC (GMT-8 with Daylight Savings) is used. | UNITED-KINGDOM
date_format integer

Sets the allowable input and output format for Ingres dates. Defaults to the value defined by II_DATE_FORMAT. If II_DATE_FORMAT is not set, the default date format is US, for example mm/dd/yy. Valid values for date_format are:

  • INGRES_DATE_DMY
  • INGRES_DATE_FINISH
  • INGRES_DATE_GERMAN
  • INGRES_DATE_ISO
  • INGRES_DATE_ISO4
  • INGRES_DATE_MDY
  • INGRES_DATE_MULTINATIONAL
  • INGRES_DATE_MULTINATIONAL4
  • INGRES_DATE_YMD
  • INGRES_DATE_US

 INGRES_DATE_ISO4
decimal_separator string The character identifier for decimal data ","
money_lort integer

Leading or trailing currency sign. Valid values for money_lort are:

  • INGRES_MONEY_LEADING
  • INGRES_MONEY_TRAILING

 INGRES_MONEY_LEADING
money_sign string The currency symbol to be used with the MONEY datatype €
money_precision | integer | The precision of the MONEY datatype | 2
float4_precision | integer | Precision of the FLOAT4 datatype | 10
float8_precision | integer | Precision of the FLOAT8 data | 10
blob_segment_length | integer | The amount of data in bytes to fetch at a time when retrieving BLOB or CLOB data. Defaults to 4096 bytes when not set explicitly | 8192

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Set date_format to ISO4

<?php
$options = array( "date_format" => INGRES_DATE_ISO4 );

if (ingres_set_environment($link, $options))
{
    $result=ingres_query($link,"select date('now') as date");

    while ( $object = ingres_fetch_object ($result) ) {
        echo $object->date."\n";
    }
}
?>

Пример #2 Set timezone to HONG-KONG

<?php

$options = array( "timezone" => "HONG-KONG");

if (ingres_set_environment($link, $options))
{
    $result=ingres_query($link,"select date('now') as date");

    while ( $object = ingres_fetch_object ($result) ) {
        echo $object->date."\n";
    }
}
?>

Смотрите также

  • ingres_connect() - Open a connection to an Ingres database
  • ingres_query() - Send an SQL query to Ingres


Send an unbuffered SQL query to Ingres

  • « ingres_set_environment
  • MaxDB »
  • PHP Manual
  • Функции Ingres
  • Send an unbuffered SQL query to Ingres

ingres_unbuffered_query

(Информация о версии неизвестна, возможно, только в Git)

ingres_unbuffered_query — Send an unbuffered SQL query to Ingres

Описание

ingres_unbuffered_query ( resource $link , string $query [, array $params [, string $types ]] ) : mixed

ingres_unbuffered_query() sends the given query to the Ingres server.

The query becomes part of the currently open transaction. If there is no open transaction, ingres_unbuffered_query() opens a new transaction. To close the transaction, you can call either 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. Ingres allows only a single unbuffered statement to be active at any one time. The extension will close any active unbuffered statements before executing any SQL. In addition you cannot use ingres_result_seek() to position the row before fetching.

Замечание: Related Configurations

See also the ingres.describe and ingres.utf8 directives in Runtime Configuration.

Список параметров

link

The connection link identifier

query

A valid SQL query (see the Ingres SQL reference guide) in the Ingres documentation. See the query parameter in ingres_query() for a list of SQL statements that cannot be executed via ingres_unbuffered_query().

Data inside the query should be properly escaped.

params

An array of parameter values to be used with the query

types

A string containing a sequence of types for the parameter values passed. See the types parameter in ingres_query() for the list of type codes.

Возвращаемые значения

ingres_unbuffered_query() returns a query result identifier when there are rows to fetch; else it returns FALSE when there are no rows, as is the case of an INSERT, UPDATE, or DELETE statement. To see if an error occurred, use ingres_errno(), ingres_error(), or ingres_errsqlstate().

Примеры

Пример #1 Issue a simple un-buffered select

<?php
$link = ingres_connect("demodb");

$result = ingres_unbuffered_query($link, "select * from user_profile");
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Пример #2 Passing query parameters to ingres_unbuffered_query()

<?php
$link = ingres_connect("demodb");

$params[] = "Emma";
$query = "select * from user_profile where up_first = ?";
$result = ingres_unbuffered_query($link, $query, $params);
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Пример #3 Inserting a BLOB with parameter types

<?php
$link = ingres_connect("demodb");

//Open a photo
$fh = fopen("photo.jpg","r");
$blob_data = stream_get_contents($fh);
fclose($fh);

//Prepare parameters
$params[] = $blob_data;
$params[] = 1201;

//Define parameter types
$param_types = "Bi";

$query = "update user_profile set up_image = ? where up_id = ?";
$result = ingres_unbuffered_query($link, $query , $params, $param_types);

if (ingres_errno())
{
    echo ingres_errno() . "-" . ingres_error() . "\n";
}
?>

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative 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_commit() - Commit a transaction
  • ingres_rollback() - Roll back a transaction
  • ingres_autocommit() - Switch autocommit on or off
  • ingres_set_environment() - Set environment features controlling output options
  • ingres_errno() - Get the last Ingres error number generated
  • ingres_error() - Get a meaningful error message for the last error generated


MaxDB

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Основы использования
  • Функции MaxDB
    • 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 — Псевдоним maxdb_stmt_bind_param
    • maxdb_bind_result — Псевдоним 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 — Псевдоним maxdb_character_set_name
    • maxdb_close_long_data — Псевдоним 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 — Псевдоним maxdb_real_escape_string
    • maxdb_execute — Псевдоним 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 — Псевдоним 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 — Псевдоним 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 — Псевдоним maxdb_stmt_param_count
    • maxdb_ping — Pings a server connection, or tries to reconnect if the connection has gone down
    • maxdb_prepare — Prepare an 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 an 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 — Псевдоним 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 — Псевдоним 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 an 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


Введение

Модуль MaxDB PHP дает доступ к функциональности, предоставляемой MaxDB 7.5.0 и выше. Более подробно о сервере баз данных MaxDB читайте по ссылке » http://www.sdn.sap.com/irj/sdn/maxdb.

Модуль MaxDB PHP совместим с модулем MySQL mysqli с некоторыми незначительными отличиями в поведении функций, связанных с различием MaxDB и MySQL.

Главные отличия от mysqli в следующих функциях:

  • maxdb_character_set_name() - Возвращает только ascii или unicode.
  • maxdb_get_client_info() - Возвращает другую строку версии.
  • maxdb_get_client_version() - Возвращает другую строку версии.
  • maxdb_get_host_info() - Возвращает localhost или имя хоста.
  • maxdb_get_server_info() - Возвращает другую строку версии.
  • maxdb_get_server_version() - Возвращает другую строку версии.
  • maxdb_kill() - Производит только разъединение сессии.
  • maxdb_multi_query() - Не может обрабатывать множественные SQL-запросы.
  • maxdb_next_result() - Всегда возвращает FALSE.
  • maxdb_options() - Поддерживает другой набор параметров.
  • maxdb_report() - Поддерживает другой режим отчета.
  • maxdb_stat() - Возвращает другую строку статуса.
  • maxdb_stmt_store_result() - Нет необходимости для MaxDB.
  • maxdb_store_result() - Нет необходимости для MaxDB.

Документация по MaxDB доступна тут » http://maxdb.sap.com/documentation/.


Требования

Для получения доступа к этим функциям вам необходимо собрать PHP с поддержкой MaxDB. Дополнительно, вам будет необходимо установить MaxDB SQLDBC runtime library, для соединения с сервером MaxDB.

Документацию по MaxDB SQLDBC можно найти тут » http://maxdb.sap.com/documentation/.

Загрузить пакет MaxDB SQLDBC можно тут » http://www.sdn.sap.com/irj/sdn/maxdb-downloads.


Установка

Доступ к функциям модуля можно получить использовав опцию конфигурации --with-maxdb[=DIR] . [DIR] указывает на директорию, в которую установлен пакет MaxDB SQLDBC.

Пользователям Windows достаточно раскомментировать php_maxdb.dll в php.ini.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции конфигурирования MaxDB
Имя | По умолчанию | Место изменения | Список изменений
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_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

maxdb.default_host string

Сервер для соединения по умолчанию, если он не задан.

maxdb.default_db string

База данных для соединения по умолчанию, если она не задана.

maxdb.default_user string

Пользователь для соединения по умолчанию, если он не задан.

maxdb.default_pw string

Пароль пользователя для соединения по умолчанию, если он не задан.

maxdb.long_readlen integer

Максимальное количество в байт, которые будут переданы клиенту, если запросом к базе данных извлечено много данных.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Этот модуль определяет ресурсы.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Следующие константы можно использовать с maxdb_options(). Более подробное описание этих констант читайте тут » http://maxdb.sap.com/documentation/.

Константы клиента MaxDB PHP
Константы | Описание
MAXDB_COMPNAME | Имя компонента, используемое для инициализации окружения времени выполнения для SQLDBC.
MAXDB_APPLICATION | Приложение для соединения с базой данных.
MAXDB_APPVERSION | Версия приложения.
MAXDB_SQLMODE | Режим SQL.
MAXDB_UNICODE | TRUE, если соединение в unicode (UCS2) или FALSE, если нет.
MAXDB_TIMEOUT | Максимальное время неактивности, после которого соединение будет закрыто.
MAXDB_ISOLATIONLEVEL | Определяет, будут ли и, если да, то как запрашиваться и сниматься блокировки.
MAXDB_PACKETCOUNT | Количество различающихся пакетов запросов используемых в соединении.
MAXDB_STATEMENTCACHESIZE | Количество подготовленных запросов, которые будут кешироваться для переиспользования на уровне сессии.
MAXDB_CURSORPREFIX | Префикс, который будет использоваться для автоматически создаваемых результирующих таблиц.

Функция maxdb_fetch_array() использует константы для различных типов результирующего массива:

Констатны извлечения MaxDB
Константы | Описание
MAXDB_ASSOC | Результирующий набор возвращается в виде ассоциативного массива.
MAXDB_ASSOC_UPPER | Результирующий набор возвращается в виде ассоциативного массива в котором ключи (имена столбцов) приведены к верхнему регистру.
MAXDB_ASSOC_LOWER | Результирующий набор возвращается в виде ассоциативного массива в котором ключи (имена столбцов) приведены к нижнему регистру.
MAXDB_BOTH | Результирующий набор возвращается в виде комбинированного, ассоциативного и индексированного массива.
MAXDB_NUM | Результирующий набор возвращается в виде индексированного массива.


  • « Предопределенные константы
  • Основы использования »
  • PHP Manual
  • MaxDB
  • Примеры

Примеры

Содержание

  • Основы использования


Основы использования

Все примеры использования MaxDB PHP в этой документации работают с демонстрационной базой HOTELDB из дистрибутива MaxDB. Более подробно об этой базе данных можно узнать по ссылке » http://maxdb.sap.com/doc/7_7/44/d8c25164bb38d0e10000000a1553f7/content.htm.

Для использования приведенных здесь примеров вам необходимо загрузить демонстрационные данные в вашу базу. После этого необходимо установить maxdb.default_db в php.ini таким образом, чтобы оно указывало на вашу демонстрационную базу.

Простой пример, демонстрирующий соединение, запуск запроса, печать результата и завершение сессии.

Пример #1 Обзорный пример использования MaxDB

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* проверяем успешность соединения */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* выполняем SQL-запрос */
$query = "SELECT * FROM hotel.city";
$result = maxdb_query($link, $query) or die("Query failed : " . maxdb_error());

/* печатаем результат */
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";

/* освобождает результирующий набор */
maxdb_free_result($result);

/* закрываем соединение */
maxdb_close($link);
?>

Следующий пример показывает, как связывать переменные с запросом SELECT INTO.

Пример #2 Пример использования запроса SELECT INTO

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* проверяем успешность соединения */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* выполняем SQL-запрос */
$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);
?>

Следующий пример демонстрирует использование процедур MaxDB.

Пример #3 Пример использования процедур

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* проверяем успешность соединения */
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);

/* выполняем SQL-запрос */
$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

Предопределенные классы

maxdb

Представляет соединение между PHP и базой данных MaxDB.

Конструктор

  • maxdb - создает новый объект maxdb

Методы

  • autocommit - включает или выключает режим автоподтверждения транзакции

  • change_user - изменяет пользователя указанного соединения

  • character_set_name - возвращает кодировку по умолчанию для соединения

  • close - закрывает открытое соединение

  • commit - подтверждает текущую транзакцию

  • connect - открывает новое соединение с сервером MaxDB

  • debug - осуществляет операции отладки

  • dump_debug_info - выводит отладочную информацию

  • get_client_info - возвращает версию клиента

  • get_host_info - возвращает тип использованного соединения

  • get_server_info - возвращает версию сервера MaxDB

  • get_server_version - возвращает версию сервера MaxDB

  • init - инициализирует объект maxdb

  • info - извлекает информацию о последнем запросе

  • kill - просит сервер убить поток MaxDB

  • multi_query - выполняет множественный запрос

  • more_results - проверяет, есть ли еще результаты в текущем множественном запросе

  • next_result - читает следующий результат из текущего множественного запроса

  • options - устанавливает опции

  • ping - пингует соединение с сервером и переподключает его в случае необходимости

  • prepare - подготавливает SQL-запрос

  • query - выполняет запрос

  • real_connect - пытается соединиться с сервером MaxDB

  • escape_string - экранирует специальные символы в строке для использования в SQL-запросе, принимая в расчет кодировку соединения

  • rollback - откатывает текущую транзакцию

  • select_db - выбирает базу данных по умолчанию

  • ssl_set - устанавливает параметры ssl

  • stat - получает текущий системный статус

  • stmt_init- инициализирует запрос для использования с maxdb_stmt_prepare

  • store_result - передает на клиента результирующий набор последнего запроса

  • use_result - передает на клиента небуферизированный результирующий набор последнего запроса

  • thread-safe - определяет, задана ли потокобезопасность или нет

Свойства

  • affected_rows - возвращает количество строк затронутых последним запросом

  • client_info - возвращает версию клиента MaxDB в виде строки

  • client_version - возвращает версию клиента MaxDB в виде целого числа

  • errno - возвращает код ошибки последней операции

  • error - возвращает строку ошибки последней операции

  • field_count - возвращает число столбцов для последнего запроса

  • host_info - возвращает строку, содержащую тип использованного соединения

  • info - получает информацию о последнем запущенном запросе

  • insert_id - возвращает идентификатор автоматически сгенерированный в последнем запросе

  • protocol_version - возвращает версию используемого протокола MaxDB

  • sqlstate - возвращает строку содержащую SQLSTATE последней ошибки

  • thread_id - возвращает идентификатор потока текущего соединения

  • warning_count - возвращает количество предупреждений, сгенерированных последним запросом

maxdb_stmt

Представляет подготовленный запрос.

Методы

  • bind_param - связывает переменные с подготовленным запросом

  • bind_result - связывает переменные с подготовленным запросом для сохранения результатов

  • close - закрывает подготовленный запрос

  • data-seek - переход к заданной строке результирующего запроса

  • execute - запускает подготовленный запрос

  • fetch - извлекает результат из результирующего набора в связанные переменные

  • free_result - освобождает результирующий набор

  • result_metadata - извлекает метаданные результирующего набора

  • prepare - подготавливает SQL-запрос

  • send_long_data - отсылает данные частями

  • close_long_data - завершает длинные данные сессии

  • reset - сбрасывает подготовленный запрос

  • store_result - буферизует весь результирующий набор

Свойства

  • affected_rows - возвращает количество строк, затронутых последним запуском запроса

  • errno - возвращает код ошибки последнего вызова функции запроса

  • errno - возвращает текст ошибки последнего вызова функции запроса

  • param_count - возвращает количество параметров заданного подготовленного запроса

  • sqlstate - возвращает строку, содержащую SQLSTATE последней вызванной функции запроса

maxdb_result

Представляет результирующий набор, возвращенный запросом к базе данных.

Методы

  • close - закрывает результирующий набор

  • data_seek - перемещает внутренний указатель

  • fetch_field - получает информацию о столбце результирующего запроса

  • fetch_fields - получает информацию о всех столбцах результирующего запроса

  • fetch_field_direct - получает информацию о заданном столбце

  • fetch_array - извлекает строку в виде ассоциативного, индексированного или смешанного массива

  • fetch_assoc - извлекает строку в виде ассоциативного массива

  • fetch_object - извлекает строку в виде объекта

  • fetch_row - извлекает строку в виде индексированного массива

  • close - освобождает использованную результатом память

  • field_seek - устанавливает указатель на заданный столбец результирующего набора

Свойства

  • current_field - возвращает текущую позицию указателя на столбец

  • field_count - возвращает количество столбцов в результирующем наборе

  • lengths - возвращает массив длин столбцов

  • num_rows - возвращает количество строк в результирующем наборе

Содержание

  • 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 — Псевдоним maxdb_stmt_bind_param
  • maxdb_bind_result — Псевдоним 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 — Псевдоним maxdb_character_set_name
  • maxdb_close_long_data — Псевдоним 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 — Псевдоним maxdb_real_escape_string
  • maxdb_execute — Псевдоним 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 — Псевдоним 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 — Псевдоним 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 — Псевдоним maxdb_stmt_param_count
  • maxdb_ping — Pings a server connection, or tries to reconnect if the connection has gone down
  • maxdb_prepare — Prepare an 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 an 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 — Псевдоним 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 — Псевдоним 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 an 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


Gets the number of affected rows in a previous MaxDB operation

  • « Функции MaxDB
  • maxdb_autocommit »
  • PHP Manual
  • Функции MaxDB
  • Gets the number of affected rows in a previous MaxDB operation

maxdb_affected_rows

maxdb::affected_rows

(PECL maxdb >= 1.0)

maxdb_affected_rows -- maxdb::affected_rows — Gets the number of affected rows in a previous MaxDB operation

Описание

Процедурный стиль

maxdb_affected_rows ( resource $link ) : int

Объектно-ориентированный стиль

int $maxdb->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.

Возвращаемые значения

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.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Affected rows (INSERT): 15
Affected rows (UPDATE): 15
Affected rows (DELETE): 0
Affected rows (SELECT): 15

Смотрите также

  • maxdb_num_rows() - Gets the number of rows in a result
  • maxdb_info() - Retrieves information about the most recently executed query


Turns on or off auto-commiting database modifications

  • « maxdb_affected_rows
  • maxdb_bind_param »
  • PHP Manual
  • Функции MaxDB
  • Turns on or off auto-commiting database modifications

maxdb_autocommit

maxdb::auto_commit

(PECL maxdb >= 1.0)

maxdb_autocommit -- maxdb::auto_commit — Turns on or off auto-commiting database modifications

Описание

Процедурный стиль

maxdb_autocommit ( resource $link , bool $mode ) : bool

Объектно-ориентированный стиль

maxdb::auto_commit ( bool $mode ) : bool

maxdb_autocommit() is used to turn on or off auto-commit mode on queries for the database connection represented by the link resource.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • maxdb_commit() - Commits the current transaction
  • maxdb_rollback() - Rolls back current transaction


Псевдоним maxdb_stmt_bind_param

  • « maxdb_autocommit
  • maxdb_bind_result »
  • PHP Manual
  • Функции MaxDB
  • Псевдоним maxdb_stmt_bind_param

maxdb_bind_param

(PECL maxdb 1.0)

maxdb_bind_param — Псевдоним maxdb_stmt_bind_param()

Описание

Эта функция является псевдонимом: maxdb_stmt_bind_param()

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Псевдоним maxdb_stmt_bind_result

  • « maxdb_bind_param
  • maxdb_change_user »
  • PHP Manual
  • Функции MaxDB
  • Псевдоним maxdb_stmt_bind_result

maxdb_bind_result

(PECL maxdb 1.0)

maxdb_bind_result — Псевдоним maxdb_stmt_bind_result()

Описание

Эта функция является псевдонимом: maxdb_stmt_bind_result().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Changes the user of the specified database connection

  • « maxdb_bind_result
  • maxdb_character_set_name »
  • PHP Manual
  • Функции MaxDB
  • Changes the user of the specified database connection

maxdb_change_user

maxdb::change_user

(PECL maxdb >= 1.0)

maxdb_change_user -- maxdb::change_user — Changes the user of the specified database connection

Описание

Процедурный стиль

maxdb_change_user ( resource $link , string $user , string $password , string $database ) : bool

Объектно-ориентированный стиль

maxdb::change_user ( string $user , string $password , string $database ) : bool

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.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Result: a
Database running

Смотрите также

  • maxdb_connect() - Open a new connection to the MaxDB server
  • maxdb_select_db() - Selects the default database for database queries


Returns the default character set for the database connection

  • « maxdb_change_user
  • maxdb_client_encoding »
  • PHP Manual
  • Функции MaxDB
  • Returns the default character set for the database connection

maxdb_character_set_name

maxdb::character_set_name

(PECL maxdb >= 1.0)

maxdb_character_set_name -- maxdb::character_set_name — Returns the default character set for the database connection

Описание

Процедурный стиль

maxdb_character_set_name ( resource $link ) : string

Объектно-ориентированный стиль

maxdb::character_set_name ( void ) : string

Returns the current character set for the database connection specified by the link parameter.

Возвращаемые значения

The default character set for the current connection, either ascii or unicode.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Current character set is ascii

Смотрите также

  • maxdb_client_encoding() - Псевдоним maxdb_character_set_name
  • maxdb_real_escape_string() - Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection


Псевдоним maxdb_character_set_name

  • « maxdb_character_set_name
  • maxdb_close_long_data »
  • PHP Manual
  • Функции MaxDB
  • Псевдоним maxdb_character_set_name

maxdb_client_encoding

(PECL maxdb 1.0)

maxdb_client_encoding — Псевдоним maxdb_character_set_name()

Описание

Эта функция является псевдонимом: maxdb_character_set_name().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Псевдоним maxdb_stmt_close_long_data

  • « maxdb_client_encoding
  • maxdb_close »
  • PHP Manual
  • Функции MaxDB
  • Псевдоним maxdb_stmt_close_long_data

maxdb_close_long_data

maxdb::close_long_data

(PECL maxdb >= 1.0)

maxdb_close_long_data -- maxdb::close_long_data — Псевдоним maxdb_stmt_close_long_data()

Описание

Эта функция является псевдонимом: maxdb_stmt_close_long_data().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Closes a previously opened database connection

  • « maxdb_close_long_data
  • maxdb_commit »
  • PHP Manual
  • Функции MaxDB
  • Closes a previously opened database connection

maxdb_close

maxdb::close

(PECL maxdb >= 1.0)

maxdb_close -- maxdb::close — Closes a previously opened database connection

Описание

Процедурный стиль

maxdb_close ( resource $link ) : bool

Объектно-ориентированный стиль

maxdb::close ( void ) : bool

The maxdb_close() function closes a previously opened database connection specified by the link parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • maxdb_connect() - Open a new connection to the MaxDB server
  • maxdb_init() - Initializes MaxDB and returns an resource for use with maxdb_real_connect
  • maxdb_real_connect() - Opens a connection to a MaxDB server


Commits the current transaction

  • « maxdb_close
  • maxdb_connect_errno »
  • PHP Manual
  • Функции MaxDB
  • Commits the current transaction

maxdb_commit

maxdb::commit

(PECL maxdb >= 1.0)

maxdb_commit -- maxdb::commit — Commits the current transaction

Описание

Процедурный стиль

maxdb_commit ( resource $link ) : bool

Объектно-ориентированный стиль

maxdb::commit ( void ) : bool

Commits the current transaction for the database connection specified by the link parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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_autocommit() - Turns on or off auto-commiting database modifications
  • maxdb_rollback() - Rolls back current transaction


Returns the error code from last connect call

  • « maxdb_commit
  • maxdb_connect_error »
  • PHP Manual
  • Функции MaxDB
  • Returns the error code from last connect call

maxdb_connect_errno

(PECL maxdb >= 1.0)

maxdb_connect_errno — Returns the error code from last connect call

Описание

maxdb_connect_errno ( void ) : int

The maxdb_connect_errno() function will return the last error code number for last call to maxdb_connect(). If no errors have occurred, this function will return zero.

Возвращаемые значения

An error code value for the last call to maxdb_connect(), if it failed. zero means no error occurred.

Примеры

Пример #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());
}
?>

Результатом выполнения данного примера будет что-то подобное:

PHP Warning:  maxdb_connect(): -4008 POS(1) Unknown user name/password combination [08004] <...>
Can't connect to localhost. Errorcode: -4008

Смотрите также

  • maxdb_connect() - Open a new connection to the MaxDB server
  • maxdb_connect_error() - Returns a string description of the last connect error
  • maxdb_errno() - Returns the error code for the most recent function call
  • maxdb_error() - Returns a string description of the last error
  • maxdb_sqlstate() - Returns the SQLSTATE error from previous MaxDB operation


Returns a string description of the last connect error

  • « maxdb_connect_errno
  • maxdb_connect »
  • PHP Manual
  • Функции MaxDB
  • Returns a string description of the last connect error

maxdb_connect_error

(PECL maxdb >= 1.0)

maxdb_connect_error — Returns a string description of the last connect error

Описание

maxdb_connect_error ( void ) : string

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 occurred, this function will return an empty string.

Возвращаемые значения

A string that describes the error. An empty string if no error occurred.

Примеры

Пример #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());
}
?>

Результатом выполнения данного примера будет что-то подобное:

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() - Open a new connection to the MaxDB server
  • maxdb_connect_errno() - Returns the error code from last connect call
  • maxdb_errno() - Returns the error code for the most recent function call
  • maxdb_error() - Returns a string description of the last error
  • maxdb_sqlstate() - Returns the SQLSTATE error from previous MaxDB operation


Open a new connection to the MaxDB server

  • « maxdb_connect_error
  • maxdb_data_seek »
  • PHP Manual
  • Функции MaxDB
  • Open a new connection to the MaxDB server

maxdb_connect

maxdb::__construct

(PECL maxdb >= 1.0)

maxdb_connect -- maxdb::__construct — Open a new connection to the MaxDB server

Описание

Процедурный стиль

maxdb_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port = 0 [, string $socket ]]]]]] ) : resource

Объектно-ориентированный стиль

maxdb::__construct ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port = 0 [, 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 или FALSE в случае возникновения ошибки.

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.

Возвращаемые значения

Returns a resource which represents the connection to a MaxDB Server or FALSE if the connection failed.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Host information: localhost


Adjusts the result pointer to an arbitary row in the result

  • « maxdb_connect
  • maxdb_debug »
  • PHP Manual
  • Функции MaxDB
  • Adjusts the result pointer to an arbitary row in the result

maxdb_data_seek

maxdb_result::data_seek

(PECL maxdb >= 1.0)

maxdb_data_seek -- maxdb_result::data_seek — Adjusts the result pointer to an arbitary row in the result

Описание

Процедурный стиль

maxdb_data_seek ( resource $result , int $offset ) : bool

Объектно-ориентированный стиль

maxdb_result::data_seek ( int $offset ) : bool

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).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

City: Irvine  State: CA

Смотрите также

  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_fetch_row() - Get a result row as an enumerated array
  • maxdb_num_rows() - Gets the number of rows in a result


Performs debugging operations

  • « maxdb_data_seek
  • maxdb_disable_reads_from_master »
  • PHP Manual
  • Функции MaxDB
  • Performs debugging operations

maxdb_debug

(PECL maxdb >= 1.0)

maxdb_debug — Performs debugging operations

Описание

maxdb_debug ( string $debug ) : void

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.

Возвращаемые значения

maxdb_debug() doesn't return any value.

Примеры

Пример #1 Процедурный стиль

<?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.


Disable reads from master

  • « maxdb_debug
  • maxdb_disable_rpl_parse »
  • PHP Manual
  • Функции MaxDB
  • Disable reads from master

maxdb_disable_reads_from_master

maxdb::disable_reads_from_master

(PECL maxdb >= 1.0)

maxdb_disable_reads_from_master -- maxdb::disable_reads_from_master — Disable reads from master

Описание

Процедурный стиль

maxdb_disable_reads_from_master ( resource $link ) : bool

Объектно-ориентированный стиль

maxdb::disable_reads_from_master ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Disable RPL parse

  • « maxdb_disable_reads_from_master
  • maxdb_dump_debug_info »
  • PHP Manual
  • Функции MaxDB
  • Disable RPL parse

maxdb_disable_rpl_parse

(PECL maxdb >= 1.0)

maxdb_disable_rpl_parse — Disable RPL parse

Описание

maxdb_disable_rpl_parse ( resource $link ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Dump debugging information into the log

  • « maxdb_disable_rpl_parse
  • maxdb_embedded_connect »
  • PHP Manual
  • Функции MaxDB
  • Dump debugging information into the log

maxdb_dump_debug_info

(PECL maxdb >= 1.0)

maxdb_dump_debug_info — Dump debugging information into the log

Описание

maxdb_dump_debug_info ( resource $link ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Open a connection to an embedded MaxDB server

  • « maxdb_dump_debug_info
  • maxdb_enable_reads_from_master »
  • PHP Manual
  • Функции MaxDB
  • Open a connection to an embedded MaxDB server

maxdb_embedded_connect

(PECL maxdb >= 1.0)

maxdb_embedded_connect — Open a connection to an embedded MaxDB server

Описание

maxdb_embedded_connect ([ string $dbname ] ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Enable reads from master

  • « maxdb_embedded_connect
  • maxdb_enable_rpl_parse »
  • PHP Manual
  • Функции MaxDB
  • Enable reads from master

maxdb_enable_reads_from_master

(PECL maxdb >= 1.0)

maxdb_enable_reads_from_master — Enable reads from master

Описание

maxdb_enable_reads_from_master ( resource $link ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Enable RPL parse

  • « maxdb_enable_reads_from_master
  • maxdb_errno »
  • PHP Manual
  • Функции MaxDB
  • Enable RPL parse

maxdb_enable_rpl_parse

(PECL maxdb >= 1.0)

maxdb_enable_rpl_parse — Enable RPL parse

Описание

maxdb_enable_rpl_parse ( resource $link ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Returns the error code for the most recent function call

  • « maxdb_enable_rpl_parse
  • maxdb_error »
  • PHP Manual
  • Функции MaxDB
  • Returns the error code for the most recent function call

maxdb_errno

maxdb::errno

(PECL maxdb >= 1.0)

maxdb_errno -- maxdb::errno — Returns the error code for the most recent function call

Описание

Процедурный стиль

maxdb_errno ( resource $link ) : int

Объектно-ориентированный стиль

int $maxdb->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 occurred, this function will return zero.

Возвращаемые значения

An error code value for the last call, if it failed. zero means no error occurred.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

PHP Warning:  maxdb_query(): -4005 POS(8) Unknown column name:XXX [42000] <...>
Errorcode: -4005

Смотрите также

  • maxdb_connect_errno() - Returns the error code from last connect call
  • maxdb_connect_error() - Returns a string description of the last connect error
  • maxdb_error() - Returns a string description of the last error
  • maxdb_sqlstate() - Returns the SQLSTATE error from previous MaxDB operation


Returns a string description of the last error

  • « maxdb_errno
  • maxdb_escape_string »
  • PHP Manual
  • Функции MaxDB
  • Returns a string description of the last error

maxdb_error

maxdb::error

(PECL maxdb >= 1.0)

maxdb_error -- maxdb::error — Returns a string description of the last error

Описание

Процедурный стиль

maxdb_error ( resource $link ) : string

Объектно-ориентированный стиль

string $maxdb->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 occurred, this function will return an empty string.

Возвращаемые значения

A string that describes the error. An empty string if no error occurred.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

PHP Warning:  maxdb_query(): -4005 POS(8) Unknown column name:XXX [42000]
Errormessgae: POS(8) Unknown column name:XXX

Смотрите также

  • maxdb_connect_errno() - Returns the error code from last connect call
  • maxdb_connect_error() - Returns a string description of the last connect error
  • maxdb_errno() - Returns the error code for the most recent function call
  • maxdb_sqlstate() - Returns the SQLSTATE error from previous MaxDB operation


Псевдоним maxdb_real_escape_string

  • « maxdb_error
  • maxdb_execute »
  • PHP Manual
  • Функции MaxDB
  • Псевдоним maxdb_real_escape_string

maxdb_escape_string

(PECL maxdb 1.0)

maxdb_escape_string — Псевдоним maxdb_real_escape_string()

Описание

Эта функция является псевдонимом: maxdb_real_escape_string().


Псевдоним maxdb_stmt_execute

  • « maxdb_escape_string
  • maxdb_fetch_array »
  • PHP Manual
  • Функции MaxDB
  • Псевдоним maxdb_stmt_execute

maxdb_execute

(PECL maxdb 1.0)

maxdb_execute — Псевдоним maxdb_stmt_execute()

Описание

Эта функция является псевдонимом: maxdb_stmt_execute().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Fetch a result row as an associative, a numeric array, or both

  • « maxdb_execute
  • maxdb_fetch_assoc »
  • PHP Manual
  • Функции MaxDB
  • Fetch a result row as an associative, a numeric array, or both

maxdb_fetch_array

maxdb_result::fetch_array

(PECL maxdb >= 1.0)

maxdb_fetch_array -- maxdb_result::fetch_array — Fetch a result row as an associative, a numeric array, or both

Описание

Процедурный стиль

maxdb_fetch_array ( resource $result [, int $resulttype ] ) : mixed

Объектно-ориентированный стиль

maxdb_result::fetch_array ([ int $resulttype ] ) : mixed

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.

Возвращаемые значения

Returns an array that corresponds to the fetched row or NULL if there are no more rows in resultset.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

New York (NY)
New York (NY)
Long Island (NY)

Смотрите также

  • maxdb_fetch_assoc() - Fetch a result row as an associative array
  • maxdb_fetch_row() - Get a result row as an enumerated array
  • maxdb_fetch_resource()


Fetch a result row as an associative array

  • « maxdb_fetch_array
  • maxdb_fetch_field_direct »
  • PHP Manual
  • Функции MaxDB
  • Fetch a result row as an associative array

maxdb_fetch_assoc

maxdb_result::fetch_assoc

(PECL maxdb >= 1.0)

maxdb_fetch_assoc -- maxdb_result::fetch_assoc — Fetch a result row as an associative array

Описание

Процедурный стиль

maxdb_fetch_assoc ( resource $result ) : array

Объектно-ориентированный стиль

maxdb_result::fetch_assoc ( void ) : array

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.

Возвращаемые значения

Returns an array that corresponds to the fetched row or NULL if there are no more rows in resultset.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

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() - Fetch a result row as an associative, a numeric array, or both
  • maxdb_fetch_row() - Get a result row as an enumerated array
  • maxdb_fetch_resource()


Fetch meta-data for a single field

  • « maxdb_fetch_assoc
  • maxdb_fetch_field »
  • PHP Manual
  • Функции MaxDB
  • Fetch meta-data for a single field

maxdb_fetch_field_direct

maxdb_result::fetch_field_direct

(PECL maxdb >= 1.0)

maxdb_fetch_field_direct -- maxdb_result::fetch_field_direct — Fetch meta-data for a single field

Описание

Процедурный стиль

maxdb_fetch_field_direct ( resource $result , int $fieldnr ) : mixed

Объектно-ориентированный стиль

maxdb_result::fetch_field_direct ( int $fieldnr ) : mixed

maxdb_fetch_field_direct() returns an resource which contains field definition information from specified resultset. The value of fieldnr must be in the range from 0 to number of fields - 1.

Возвращаемые значения

Returns an resource which contains field definition information or FALSE if no field information for specified fieldnr is available.

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)

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Name:     CNO
Table:
max. Len: 4
Flags:    -1
Type:     0

Смотрите также

  • maxdb_num_fields() - Get the number of fields in a result
  • 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


Returns the next field in the result set

  • « maxdb_fetch_field_direct
  • maxdb_fetch_fields »
  • PHP Manual
  • Функции MaxDB
  • Returns the next field in the result set

maxdb_fetch_field

maxdb_result::fetch_field

(PECL maxdb >= 1.0)

maxdb_fetch_field -- maxdb_result::fetch_field — Returns the next field in the result set

Описание

Процедурный стиль

maxdb_fetch_field ( resource $result ) : mixed

Объектно-ориентированный стиль

maxdb_result::fetch_field ( void ) : mixed

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.

Возвращаемые значения

Returns an resource which contains field definition information or FALSE if no field information is available.

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)

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Name:     NAME
Table:
max. Len: 10
Flags:    -1
Type:     2

Name:     CNO
Table:
max. Len: 4
Flags:    -1
Type:     0

Смотрите также

  • maxdb_num_fields() - Get the number of fields in a result
  • maxdb_fetch_field_direct() - Fetch meta-data for a single field
  • maxdb_fetch_fields() - Returns an array of resources representing the fields in a result set
  • maxdb_field_seek() - Set result pointer to a specified field offset


Returns an array of resources representing the fields in a result set

  • « maxdb_fetch_field
  • maxdb_fetch_lengths »
  • PHP Manual
  • Функции MaxDB
  • Returns an array of resources representing the fields in a result set

maxdb_fetch_fields

maxdb_result::fetch_fields

(PECL maxdb >= 1.0)

maxdb_fetch_fields -- maxdb_result::fetch_fields — Returns an array of resources representing the fields in a result set

Описание

Процедурный стиль

maxdb_fetch_fields ( resource $result ) : mixed

Объектно-ориентированный стиль

maxdb_result::fetch_fields ( void ) : mixed

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.

Возвращаемые значения

Returns an array of resources which contains field definition information or FALSE if no field information is available.

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)

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Name:     NAME
Table:
max. Len: 10
Flags:    -1
Type:     2

Name:     CNO
Table:
max. Len: 4
Flags:    -1
Type:     0

Смотрите также

  • maxdb_num_fields() - Get the number of fields in a result
  • maxdb_fetch_field() - Returns the next field in the result set
  • maxdb_fetch_field_direct() - Fetch meta-data for a single field


Returns the lengths of the columns of the current row in the result set

  • « maxdb_fetch_fields
  • maxdb_fetch_object »
  • PHP Manual
  • Функции MaxDB
  • Returns the lengths of the columns of the current row in the result set

maxdb_fetch_lengths

maxdb_result::lengths

(PECL maxdb >= 1.0)

maxdb_fetch_lengths -- maxdb_result::lengths — Returns the lengths of the columns of the current row in the result set

Описание

Процедурный стиль

maxdb_fetch_lengths ( resource $result ) : array

Объектно-ориентированный стиль

array $maxdb_result->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 или FALSE в случае возникновения ошибки.

Возвращаемые значения

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.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

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


Returns the current row of a result set as an object

  • « maxdb_fetch_lengths
  • maxdb_fetch_row »
  • PHP Manual
  • Функции MaxDB
  • Returns the current row of a result set as an object

maxdb_fetch_object

maxdb_result::fetch_object

(PECL maxdb >= 1.0)

maxdb_fetch_object -- maxdb_result::fetch_object — Returns the current row of a result set as an object

Описание

Процедурный стиль

maxdb_fetch_object ( object $result ) : object

Объектно-ориентированный стиль

maxdb_result::fetch_object ( void ) : object

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.

Возвращаемые значения

Returns an object that corresponds to the fetched row or NULL if there are no more rows in resultset.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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 object 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);
?>

Результатом выполнения данного примера будет что-то подобное:

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() - 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_row() - Get a result row as an enumerated array


Get a result row as an enumerated array

  • « maxdb_fetch_object
  • maxdb_fetch »
  • PHP Manual
  • Функции MaxDB
  • Get a result row as an enumerated array

maxdb_fetch_row

maxdb_result::fetch_row

(PECL maxdb >= 1.0)

maxdb_fetch_row -- maxdb_result::fetch_row — Get a result row as an enumerated array

Описание

Процедурный стиль

maxdb_fetch_row ( resource $result ) : mixed

Объектно-ориентированный стиль

maxdb_result::fetch_row ( void ) : mixed

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.

Возвращаемые значения

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.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 enumerated array */
   while ($row = $result->fetch_row()) {
       printf ("%s (%s)\n", $row[0], $row[1]);
   }

   /* free result set */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?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 enumerated 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);
?>

Результатом выполнения данного примера будет что-то подобное:

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() - 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_resource()


Псевдоним maxdb_stmt_fetch

  • « maxdb_fetch_row
  • maxdb_field_count »
  • PHP Manual
  • Функции MaxDB
  • Псевдоним maxdb_stmt_fetch

maxdb_fetch

(PECL maxdb 1.0)

maxdb_fetch — Псевдоним maxdb_stmt_fetch()

Описание

Эта функция является псевдонимом: maxdb_stmt_fetch().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Returns the number of columns for the most recent query

  • « maxdb_fetch
  • maxdb_field_seek »
  • PHP Manual
  • Функции MaxDB
  • Returns the number of columns for the most recent query

maxdb_field_count

maxdb::field_count

(PECL maxdb >= 1.0)

maxdb_field_count -- maxdb::field_count — Returns the number of columns for the most recent query

Описание

Процедурный стиль

maxdb_field_count ( resource $link ) : int

Объектно-ориентированный стиль

maxdb::field_count ( void ) : int

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.

Возвращаемые значения

An integer representing the number of fields in a result set.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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.


Set result pointer to a specified field offset

  • « maxdb_field_count
  • maxdb_field_tell »
  • PHP Manual
  • Функции MaxDB
  • Set result pointer to a specified field offset

maxdb_field_seek

maxdb_result::field_seek

(PECL maxdb >= 1.0)

maxdb_field_seek -- maxdb_result::field_seek — Set result pointer to a specified field offset

Описание

Процедурный стиль

maxdb_field_seek ( resource $result , int $fieldnr ) : bool

Объектно-ориентированный стиль

maxdb_result::field_seek ( int $fieldnr ) : bool

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.

Возвращаемые значения

maxdb_field_seek() returns previuos value of field cursor.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Name:     NAME
Table:
max. Len: 10
Flags:    -1
Type:     2

Смотрите также

  • maxdb_fetch_field() - Returns the next field in the result set


Get current field offset of a result pointer

  • « maxdb_field_seek
  • maxdb_free_result »
  • PHP Manual
  • Функции MaxDB
  • Get current field offset of a result pointer

maxdb_field_tell

maxdb_result::current_field

(PECL maxdb >= 1.0)

maxdb_field_tell -- maxdb_result::current_field — Get current field offset of a result pointer

Описание

Процедурный стиль

maxdb_field_tell ( resource $result ) : int

Объектно-ориентированный стиль

int $maxdb_result->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.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

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_fetch_field() - Returns the next field in the result set
  • maxdb_field_seek() - Set result pointer to a specified field offset


Frees the memory associated with a result

  • « maxdb_field_tell
  • maxdb_get_client_info »
  • PHP Manual
  • Функции MaxDB
  • Frees the memory associated with a result

maxdb_free_result

maxdb_result::free

(PECL maxdb >= 1.0)

maxdb_free_result -- maxdb_result::free — Frees the memory associated with a result

Описание

Процедурный стиль

maxdb_free_result ( resource $result ) : void

Объектно-ориентированный стиль

maxdb_result::free ( void ) : 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() - Performs a query on the database
  • maxdb_stmt_store_result() - Transfers a result set from a prepared statement
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_use_result() - Initiate a result set retrieval


Returns the MaxDB client version as a string

  • « maxdb_free_result
  • maxdb_get_client_version »
  • PHP Manual
  • Функции MaxDB
  • Returns the MaxDB client version as a string

maxdb_get_client_info

(PECL maxdb >= 1.0)

maxdb_get_client_info — Returns the MaxDB client version as a string

Описание

maxdb_get_client_info ( void ) : string

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

Примеры

Пример #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());
?>

Результатом выполнения данного примера будет что-то подобное:

Client library version: libSQLDBC <...>

Смотрите также

  • maxdb_get_client_version() - Get MaxDB client info
  • 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


Get MaxDB client info

  • « maxdb_get_client_info
  • maxdb_get_host_info »
  • PHP Manual
  • Функции MaxDB
  • Get MaxDB client info

maxdb_get_client_version

(PECL maxdb >= 1.0)

maxdb_get_client_version — Get MaxDB client info

Описание

maxdb_get_client_version ( void ) : int

Returns client version number as an integer.

Возвращаемые значения

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 exists.

Примеры

Пример #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());
?>

Результатом выполнения данного примера будет что-то подобное:

Client library version: 7.<...>

Смотрите также

  • maxdb_get_client_info() - Returns the MaxDB client version as a string
  • 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


Returns a string representing the type of connection used

  • « maxdb_get_client_version
  • maxdb_get_metadata »
  • PHP Manual
  • Функции MaxDB
  • Returns a string representing the type of connection used

maxdb_get_host_info

maxdb::get_host_info

(PECL maxdb >= 1.0)

maxdb_get_host_info -- maxdb::get_host_info — Returns a string representing the type of connection used

Описание

Процедурный стиль

maxdb_get_host_info ( resource $link ) : string

Объектно-ориентированный стиль

string $maxdb->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.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Host info: localhost

Смотрите также

  • maxdb_get_proto_info() - Returns the version of the MaxDB protocol used


Псевдоним maxdb_stmt_result_metadata

  • « maxdb_get_host_info
  • maxdb_get_proto_info »
  • PHP Manual
  • Функции MaxDB
  • Псевдоним maxdb_stmt_result_metadata

maxdb_get_metadata

(PECL maxdb 1.0)

maxdb_get_metadata — Псевдоним maxdb_stmt_result_metadata()

Описание

Эта функция является псевдонимом: maxdb_stmt_result_metadata().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Returns the version of the MaxDB protocol used

  • « maxdb_get_metadata
  • maxdb_get_server_info »
  • PHP Manual
  • Функции MaxDB
  • Returns the version of the MaxDB protocol used

maxdb_get_proto_info

maxdb::protocol_version

(PECL maxdb >= 1.0)

maxdb_get_proto_info -- maxdb::protocol_version — Returns the version of the MaxDB protocol used

Описание

Процедурный стиль

maxdb_get_proto_info ( resource $link ) : int

Объектно-ориентированный стиль

string $maxdb->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).

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Protocol version: 10

Смотрите также

  • maxdb_get_host_info() - Returns a string representing the type of connection used


Returns the version of the MaxDB server

  • « maxdb_get_proto_info
  • maxdb_get_server_version »
  • PHP Manual
  • Функции MaxDB
  • Returns the version of the MaxDB server

maxdb_get_server_info

maxdb::server_info

(PECL maxdb >= 1.0)

maxdb_get_server_info -- maxdb::server_info — Returns the version of the MaxDB server

Описание

Процедурный стиль

maxdb_get_server_info ( resource $link ) : string

Объектно-ориентированный стиль

string $maxdb->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.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Server version: Kernel    7<...>

Смотрите также

  • maxdb_get_client_info() - Returns the MaxDB client version as a string
  • maxdb_get_client_version() - Get MaxDB client info
  • maxdb_get_server_version() - Returns the version of the MaxDB server as an integer


Returns the version of the MaxDB server as an integer

  • « maxdb_get_server_info
  • maxdb_info »
  • PHP Manual
  • Функции MaxDB
  • Returns the version of the MaxDB server as an integer

maxdb_get_server_version

maxdb::server_version

(PECL maxdb >= 1.0)

maxdb_get_server_version -- maxdb::server_version — Returns the version of the MaxDB server as an integer

Описание

Процедурный стиль

maxdb_get_server_version ( resource $link ) : int

Объектно-ориентированный стиль

int $maxdb->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.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Server version: 7<...>

Смотрите также

  • maxdb_get_client_info() - Returns the MaxDB client version as a string
  • maxdb_get_client_version() - Get MaxDB client info
  • maxdb_get_server_info() - Returns the version of the MaxDB server


Retrieves information about the most recently executed query

  • « maxdb_get_server_version
  • maxdb_init »
  • PHP Manual
  • Функции MaxDB
  • Retrieves information about the most recently executed query

maxdb_info

maxdb::info

(PECL maxdb >= 1.0)

maxdb_info -- maxdb::info — Retrieves information about the most recently executed query

Описание

Процедурный стиль

maxdb_info ( resource $link ) : string

Объектно-ориентированный стиль

string $maxdb->info;

The maxdb_info() function returns a string providing information about the last query executed. The nature of this string is provided below:

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.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Records: 25 Duplicates: 0 Warnings: 0

Смотрите также

  • maxdb_affected_rows() - Gets the number of affected rows in a previous MaxDB operation
  • maxdb_warning_count() - Returns the number of warnings from the last query for the given link
  • maxdb_num_rows() - Gets the number of rows in a result


Initializes MaxDB and returns an resource for use with maxdb_real_connect

  • « maxdb_info
  • maxdb_insert_id »
  • PHP Manual
  • Функции MaxDB
  • Initializes MaxDB and returns an resource for use with maxdb_real_connect

maxdb_init

(PECL maxdb >= 1.0)

maxdb_init — Initializes MaxDB and returns an resource for use with maxdb_real_connect

Описание

maxdb_init ( void ) : resource

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() - Set options
  • maxdb_close() - Closes a previously opened database connection
  • maxdb_real_connect() - Opens a connection to a MaxDB server
  • maxdb_connect() - Open a new connection to the MaxDB server


Returns the auto generated id used in the last query

  • « maxdb_init
  • maxdb_kill »
  • PHP Manual
  • Функции MaxDB
  • Returns the auto generated id used in the last query

maxdb_insert_id

maxdb::insert_id

(PECL maxdb >= 1.0)

maxdb_insert_id -- maxdb::insert_id — Returns the auto generated id used in the last query

Описание

Процедурный стиль

maxdb_insert_id ( resource $link ) : mixed

Объектно-ориентированный стиль

mixed $maxdb->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.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

New Record has id 1.


Disconnects from a MaxDB server

  • « maxdb_insert_id
  • maxdb_master_query »
  • PHP Manual
  • Функции MaxDB
  • Disconnects from a MaxDB server

maxdb_kill

maxdb::kill

(PECL maxdb >= 1.0)

maxdb_kill -- maxdb::kill — Disconnects from a MaxDB server

Описание

Процедурный стиль

maxdb_kill ( resource $link , int $processid ) : bool

Объектно-ориентированный стиль

maxdb::kill ( int $processid ) : bool

This function is used to disconnect from a MaxDB server specified by the processid parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Error: Session not connected

Смотрите также

  • maxdb_thread_id() - Returns the thread ID for the current connection


Enforce execution of a query on the master in a master/slave setup

  • « maxdb_kill
  • maxdb_more_results »
  • PHP Manual
  • Функции MaxDB
  • Enforce execution of a query on the master in a master/slave setup

maxdb_master_query

(PECL maxdb >= 1.0)

maxdb_master_query — Enforce execution of a query on the master in a master/slave setup

Описание

maxdb_master_query ( resource $link , string $query ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Check if there any more query results from a multi query

  • « maxdb_master_query
  • maxdb_multi_query »
  • PHP Manual
  • Функции MaxDB
  • Check if there any more query results from a multi query

maxdb_more_results

maxdb::more_results

(PECL maxdb >= 1.0)

maxdb_more_results -- maxdb::more_results — Check if there any more query results from a multi query

Описание

maxdb_more_results ( resource $link ) : bool

maxdb_more_results() indicates if one or more result sets are available from a previous call to maxdb_multi_query().

Возвращаемые значения

Always FALSE.

Примеры

See maxdb_multi_query().

Смотрите также

  • maxdb_multi_query() - Performs a query on the database
  • maxdb_next_result() - Prepare next result from multi_query
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_use_result() - Initiate a result set retrieval


Performs a query on the database

  • « maxdb_more_results
  • maxdb_next_result »
  • PHP Manual
  • Функции MaxDB
  • Performs a query on the database

maxdb_multi_query

maxdb::multi_query

(PECL maxdb >= 1.0)

maxdb_multi_query -- maxdb::multi_query — Performs a query on the database

Описание

Процедурный стиль

maxdb_multi_query ( resource $link , string $query ) : bool

Объектно-ориентированный стиль

maxdb::multi_query ( string $query ) : bool

The maxdb_multi_query() works like the function maxdb_query(). Multiple queries are not yet supported.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

a

Смотрите также

  • maxdb_use_result() - Initiate a result set retrieval
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_next_result() - Prepare next result from multi_query
  • maxdb_more_results() - Check if there any more query results from a multi query


Prepare next result from multi_query

  • « maxdb_multi_query
  • maxdb_num_fields »
  • PHP Manual
  • Функции MaxDB
  • Prepare next result from multi_query

maxdb_next_result

maxdb::next_result

(PECL maxdb >= 1.0)

maxdb_next_result -- maxdb::next_result — Prepare next result from multi_query

Описание

maxdb_next_result ( resource $link ) : bool

Since multiple queries are not yet supported, maxdb_next_result() returns always FALSE.

Возвращаемые значения

Returns FALSE.

Смотрите также

  • maxdb_multi_query() - Performs a query on the database
  • maxdb_more_results() - Check if there any more query results from a multi query
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_use_result() - Initiate a result set retrieval


Get the number of fields in a result

  • « maxdb_next_result
  • maxdb_num_rows »
  • PHP Manual
  • Функции MaxDB
  • Get the number of fields in a result

maxdb_num_fields

maxdb_result::field_count

(PECL maxdb >= 1.0)

maxdb_num_fields -- maxdb_result::field_count — Get the number of fields in a result

Описание

Процедурный стиль

maxdb_num_fields ( resource $result ) : int

Объектно-ориентированный стиль

int $maxdb_result->field_count;

maxdb_num_fields() returns the number of fields from specified result set.

Возвращаемые значения

The number of fields from a result set

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Result set has 3 fields.

Смотрите также

  • maxdb_fetch_field() - Returns the next field in the result set


Gets the number of rows in a result

  • « maxdb_num_fields
  • maxdb_options »
  • PHP Manual
  • Функции MaxDB
  • Gets the number of rows in a result

maxdb_num_rows

maxdb::num_rows

(PECL maxdb >= 1.0)

maxdb_num_rows -- maxdb::num_rows — Gets the number of rows in a result

Описание

Процедурный стиль

maxdb_num_rows ( resource $result ) : int

Объектно-ориентированный стиль

int $maxdb->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.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Result set has 15 rows.

Смотрите также

  • maxdb_affected_rows() - Gets the number of affected rows in a previous MaxDB operation
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_use_result() - Initiate a result set retrieval
  • maxdb_query() - Performs a query on the database


Set options

  • « maxdb_num_rows
  • maxdb_param_count »
  • PHP Manual
  • Функции MaxDB
  • Set options

maxdb_options

maxdb::options

(PECL maxdb >= 1.0)

maxdb_options -- maxdb::options — Set options

Описание

Процедурный стиль

maxdb_options ( resource $link , int $option , mixed $value ) : bool

Объектно-ориентированный стиль

maxdb::options ( int $option , mixed $value ) : bool

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://maxdb.sap.com/documentation/ The parameter option can be one of the following values:

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 в случае возникновения ошибки.

Примеры

See maxdb_real_connect().

Смотрите также

  • maxdb_init() - Initializes MaxDB and returns an resource for use with maxdb_real_connect
  • maxdb_real_connect() - Opens a connection to a MaxDB server


Псевдоним maxdb_stmt_param_count

  • « maxdb_options
  • maxdb_ping »
  • PHP Manual
  • Функции MaxDB
  • Псевдоним maxdb_stmt_param_count

maxdb_param_count

(PECL maxdb 1.0)

maxdb_param_count — Псевдоним maxdb_stmt_param_count()

Описание

Эта функция является псевдонимом: maxdb_stmt_param_count().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Pings a server connection, or tries to reconnect if the connection has gone down

  • « maxdb_param_count
  • maxdb_prepare »
  • PHP Manual
  • Функции MaxDB
  • Pings a server connection, or tries to reconnect if the connection has gone down

maxdb_ping

maxdb::ping

(PECL maxdb >= 1.0)

maxdb_ping -- maxdb::ping — Pings a server connection, or tries to reconnect if the connection has gone down

Описание

Процедурный стиль

maxdb_ping ( resource $link ) : bool

Объектно-ориентированный стиль

maxdb::ping ( void ) : bool

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.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Our connection is ok!


Prepare an SQL statement for execution

  • « maxdb_ping
  • maxdb_query »
  • PHP Manual
  • Функции MaxDB
  • Prepare an SQL statement for execution

maxdb_prepare

maxdb::prepare

(PECL maxdb >= 1.0)

maxdb_prepare -- maxdb::prepare — Prepare an SQL statement for execution

Описание

Процедурный стиль

maxdb_prepare ( resource $link , string $query ) : resource

Объектно-ориентированный стиль

maxdb::prepare ( string $query ) : maxdb_stmt

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 occurred.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Rosemont is in district IL

Смотрите также

  • maxdb_stmt_execute() - Executes a prepared Query
  • maxdb_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • 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() - Closes a prepared statement


Performs a query on the database

  • « maxdb_prepare
  • maxdb_real_connect »
  • PHP Manual
  • Функции MaxDB
  • Performs a query on the database

maxdb_query

maxdb::query

(PECL maxdb >= 1.0)

maxdb_query -- maxdb::query — Performs a query on the database

Описание

Процедурный стиль

maxdb_query ( resource $link , string $query [, int $resultmode ] ) : mixed

Объектно-ориентированный стиль

maxdb::query ( string $query ) : mixed

The maxdb_query() function is used to simplify the act of performing a query against the database represented by the link parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. For SELECT, SHOW, DESCRIBE or EXPLAIN maxdb_query() will return a result resource.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Table mycity successfully created.
Select returned 25 rows.

Смотрите также

  • maxdb_real_query() - Execute an SQL query
  • maxdb_multi_query() - Performs a query on the database
  • maxdb_free_result() - Frees the memory associated with a result


Opens a connection to a MaxDB server

  • « maxdb_query
  • maxdb_real_escape_string »
  • PHP Manual
  • Функции MaxDB
  • Opens a connection to a MaxDB server

maxdb_real_connect

maxdb::real_connect

(PECL maxdb >= 1.0)

maxdb_real_connect -- maxdb::real_connect — Opens a connection to a MaxDB server

Описание

Процедурный стиль

maxdb_real_connect ( resource $link [, string $hostname [, string $username [, string $passwd [, string $dbname [, int $port = 0 [, string $socket ]]]]]] ) : bool

Объектно-ориентированный стиль

maxdb::real_connect ([ string $hostname [, string $username [, string $passwd [, string $dbname [, int $port = 0 [, string $socket ]]]]]] ) : bool

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 в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Connection: localhost <...>

Смотрите также

  • maxdb_connect() - Open a new connection to the MaxDB server
  • maxdb_init() - Initializes MaxDB and returns an resource for use with maxdb_real_connect
  • maxdb_options() - Set options
  • maxdb_ssl_set() - Used for establishing secure connections using SSL
  • maxdb_close() - Closes a previously opened database connection


Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

  • « maxdb_real_connect
  • maxdb_real_query »
  • PHP Manual
  • Функции MaxDB
  • Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

maxdb_real_escape_string

maxdb::real_escape_string

(PECL maxdb >= 1.0)

maxdb_real_escape_string -- maxdb::real_escape_string — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

Описание

Процедурный стиль

maxdb_real_escape_string ( resource $link , string $escapestr ) : string

Объектно-ориентированный стиль

maxdb::real_escape_string ( string $escapestr ) : string

This function is used to create a legal SQL string that you can use in an 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 ', ".

Возвращаемые значения

Returns an escaped string.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: maxdb_query(): -5016 POS(43) Missing delimiter: ) <...>
Error: 42000
1 Row inserted.

Смотрите также

  • maxdb_character_set_name() - Returns the default character set for the database connection


Execute an SQL query

  • « maxdb_real_escape_string
  • maxdb_report »
  • PHP Manual
  • Функции MaxDB
  • Execute an SQL query

maxdb_real_query

maxdb::real_query

(PECL maxdb >= 1.0)

maxdb_real_query -- maxdb::real_query — Execute an SQL query

Описание

Процедурный стиль

maxdb_real_query ( resource $link , string $query ) : bool

Объектно-ориентированный стиль

maxdb::real_query ( string $query ) : bool

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().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • maxdb_query() - Performs a query on the database
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_use_result() - Initiate a result set retrieval


Enables or disables internal report functions

  • « maxdb_real_query
  • maxdb_rollback »
  • PHP Manual
  • Функции MaxDB
  • Enables or disables internal report functions

maxdb_report

(PECL maxdb 1.0)

maxdb_report — Enables or disables internal report functions

Описание

maxdb_report ( int $flags ) : bool

Список параметров

flags

One of the MAXDB_REPORT_XXX constants.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: maxdb_query(): -4004 POS(18) Unknown table name:NONEXISTINGTABLE <...>


Rolls back current transaction

  • « maxdb_report
  • maxdb_rpl_parse_enabled »
  • PHP Manual
  • Функции MaxDB
  • Rolls back current transaction

maxdb_rollback

maxdb::rollback

(PECL maxdb >= 1.0)

maxdb_rollback -- maxdb::rollback — Rolls back current transaction

Описание

Процедурный стиль

maxdb_rollback ( resource $link ) : bool

Объектно-ориентированный стиль

maxdb::rollback ( void ) : bool

Rollbacks the current transaction for the database specified by the link parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

0 rows in table mycity.
25 rows in table mycity (after rollback).

Смотрите также

  • maxdb_commit() - Commits the current transaction
  • maxdb_autocommit() - Turns on or off auto-commiting database modifications


Check if RPL parse is enabled

  • « maxdb_rollback
  • maxdb_rpl_probe »
  • PHP Manual
  • Функции MaxDB
  • Check if RPL parse is enabled

maxdb_rpl_parse_enabled

(PECL maxdb >= 1.0)

maxdb_rpl_parse_enabled — Check if RPL parse is enabled

Описание

maxdb_rpl_parse_enabled ( resource $link ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


RPL probe

  • « maxdb_rpl_parse_enabled
  • maxdb_rpl_query_type »
  • PHP Manual
  • Функции MaxDB
  • RPL probe

maxdb_rpl_probe

(PECL maxdb >= 1.0)

maxdb_rpl_probe — RPL probe

Описание

maxdb_rpl_probe ( resource $link ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Returns RPL query type

  • « maxdb_rpl_probe
  • maxdb_select_db »
  • PHP Manual
  • Функции MaxDB
  • Returns RPL query type

maxdb_rpl_query_type

maxdb::rpl_query_type

(PECL maxdb >= 1.0)

maxdb_rpl_query_type -- maxdb::rpl_query_type — Returns RPL query type

Описание

Процедурный стиль

maxdb_rpl_query_type ( resource $link ) : int

Объектно-ориентированный стиль

maxdb::rpl_query_type ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Selects the default database for database queries

  • « maxdb_rpl_query_type
  • maxdb_send_long_data »
  • PHP Manual
  • Функции MaxDB
  • Selects the default database for database queries

maxdb_select_db

maxdb::select_db

(PECL maxdb >= 1.0)

maxdb_select_db -- maxdb::select_db — Selects the default database for database queries

Описание

maxdb_select_db ( resource $link , string $dbname ) : bool

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().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

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_connect() - Open a new connection to the MaxDB server
  • maxdb_real_connect() - Opens a connection to a MaxDB server


Псевдоним maxdb_stmt_send_long_data

  • « maxdb_select_db
  • maxdb_send_query »
  • PHP Manual
  • Функции MaxDB
  • Псевдоним maxdb_stmt_send_long_data

maxdb_send_long_data

(PECL maxdb >= 1.0)

maxdb_send_long_data — Псевдоним maxdb_stmt_send_long_data()

Описание

Эта функция является псевдонимом: maxdb_stmt_send_long_data().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Send the query and return

  • « maxdb_send_long_data
  • maxdb_server_end »
  • PHP Manual
  • Функции MaxDB
  • Send the query and return

maxdb_send_query

maxdb::send_query

(PECL maxdb >= 1.0)

maxdb_send_query -- maxdb::send_query — Send the query and return

Описание

Процедурный стиль

maxdb_send_query ( resource $link , string $query ) : bool

Объектно-ориентированный стиль

maxdb::send_query ( string $query ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Shut down the embedded server

  • « maxdb_send_query
  • maxdb_server_init »
  • PHP Manual
  • Функции MaxDB
  • Shut down the embedded server

maxdb_server_end

(PECL maxdb >= 1.0)

maxdb_server_end — Shut down the embedded server

Описание

maxdb_server_end ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Initialize embedded server

  • « maxdb_server_end
  • maxdb_set_opt »
  • PHP Manual
  • Функции MaxDB
  • Initialize embedded server

maxdb_server_init

(PECL maxdb >= 1.0)

maxdb_server_init — Initialize embedded server

Описание

maxdb_server_init ([ array $server [, array $groups ]] ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Псевдоним maxdb_options

  • « maxdb_server_init
  • maxdb_sqlstate »
  • PHP Manual
  • Функции MaxDB
  • Псевдоним maxdb_options

maxdb_set_opt

(PECL maxdb 1.0)

maxdb_set_opt — Псевдоним maxdb_options()

Описание

Эта функция является псевдонимом: maxdb_options().


Returns the SQLSTATE error from previous MaxDB operation

  • « maxdb_set_opt
  • maxdb_ssl_set »
  • PHP Manual
  • Функции MaxDB
  • Returns the SQLSTATE error from previous MaxDB operation

maxdb_sqlstate

maxdb::sqlstate

(PECL maxdb >= 1.0)

maxdb_sqlstate -- maxdb::sqlstate — Returns the SQLSTATE error from previous MaxDB operation

Описание

Процедурный стиль

maxdb_sqlstate ( resource $link ) : string

Объектно-ориентированный стиль

string $maxdb->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.

Возвращаемые значения

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: maxdb_query(): -6000 POS(20) Duplicate table name:CITY [I6000] <...>
Error - SQLSTATE I6000.

Смотрите также

  • maxdb_errno() - Returns the error code for the most recent function call
  • maxdb_error() - Returns a string description of the last error


Used for establishing secure connections using SSL

  • « maxdb_sqlstate
  • maxdb_stat »
  • PHP Manual
  • Функции MaxDB
  • Used for establishing secure connections using SSL

maxdb_ssl_set

maxdb::ssl_set

(PECL maxdb >= 1.0)

maxdb_ssl_set -- maxdb::ssl_set — Used for establishing secure connections using SSL

Описание

Процедурный стиль

maxdb_ssl_set ( resource $link , string $key , string $cert , string $ca , string $capath , string $cipher ) : bool

Объектно-ориентированный стиль

maxdb::ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Gets the current system status

  • « maxdb_ssl_set
  • maxdb_stmt_affected_rows »
  • PHP Manual
  • Функции MaxDB
  • Gets the current system status

maxdb_stat

maxdb::stat

(PECL maxdb >= 1.0)

maxdb_stat -- maxdb::stat — Gets the current system status

Описание

Процедурный стиль

maxdb_stat ( resource $link ) : string

Объектно-ориентированный стиль

maxdb::stat ( void ) : string

maxdb_stat() returns a string containing several information about the MaxDB server running.

Возвращаемые значения

A string describing the server status. FALSE if an error occurred.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

System status: Kernel    7<...>

Смотрите также

  • maxdb_get_server_info() - Returns the version of the MaxDB server


Returns the total number of rows changed, deleted, or inserted by the last executed statement

  • « maxdb_stat
  • maxdb_stmt_bind_param »
  • PHP Manual
  • Функции MaxDB
  • Returns the total number of rows changed, deleted, or inserted by the last executed statement

maxdb_stmt_affected_rows

maxdb_stmt::affected_rows

(PECL maxdb >= 1.0)

maxdb_stmt_affected_rows -- maxdb_stmt::affected_rows — Returns the total number of rows changed, deleted, or inserted by the last executed statement

Описание

Процедурный стиль

maxdb_stmt_affected_rows ( resource $stmt ) : int

Объектно-ориентированный стиль

int $maxdb_stmt->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.

Возвращаемые значения

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.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

rows inserted: 4

Смотрите также

  • maxdb_stmt_num_rows() - Return the number of rows in statements result set
  • maxdb_prepare() - Prepare an SQL statement for execution


Binds variables to a prepared statement as parameters

  • « maxdb_stmt_affected_rows
  • maxdb_stmt_bind_result »
  • PHP Manual
  • Функции MaxDB
  • Binds variables to a prepared statement as parameters

maxdb_stmt_bind_param

maxdb_stmt::bind_param

(PECL maxdb >= 1.0)

maxdb_stmt_bind_param -- maxdb_stmt::bind_param — Binds variables to a prepared statement as parameters

Описание

Процедурный стиль

maxdb_stmt_bind_param ( resource $stmt , string $types , mixed &$var1 [, mixed &$... ] ) : bool

Объектно-ориентированный стиль

maxdb_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] ) : bool

Процедурный стиль (extended syntax):

maxdb_stmt_bind_param ( resource $stmt , string $types , array &$var ) : bool

Объектно-ориентированный стиль (extended syntax):

maxdb_stmt::bind_param ( string $types , array &$var ) : bool

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 an 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().

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 sent in packages

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

1 Row inserted.
1 Row deleted.

Пример #3 Процедурный стиль (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);
?>

Результатом выполнения данного примера будет что-то подобное:

21.600000

Пример #4 Процедурный стиль (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);
?>

Результатом выполнения данного примера будет что-то подобное:

a

Пример #5 Объектно-ориентированный стиль (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();
?>

Результатом выполнения данного примера будет что-то подобное:

1 Row inserted.
1 Row inserted.
11111 Georgetown NY
22222 New Orleans LA
2 Rows deleted.

Смотрите также

  • maxdb_stmt_bind_result() - Binds variables to a prepared statement for result storage
  • maxdb_stmt_execute() - Executes a prepared Query
  • maxdb_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • maxdb_prepare() - Prepare an SQL statement for execution
  • maxdb_stmt_send_long_data() - Send data in blocks
  • maxdb_stmt_errno() - Returns the error code for the most recent statement call
  • maxdb_stmt_error() - Returns a string description for last statement error


Binds variables to a prepared statement for result storage

  • « maxdb_stmt_bind_param
  • maxdb_stmt_close_long_data »
  • PHP Manual
  • Функции MaxDB
  • Binds variables to a prepared statement for result storage

maxdb_stmt_bind_result

maxdb_stmt::bind_result

(PECL maxdb >= 1.0)

maxdb_stmt_bind_result -- maxdb_stmt::bind_result — Binds variables to a prepared statement for result storage

Описание

Процедурный стиль

maxdb_stmt_bind_result ( resource $stmt , mixed &$var1 [, mixed &$... ] ) : bool

Объектно-ориентированный стиль

maxdb_stmt::bind_result ( mixed &$var1 [, mixed &$... ] ) : bool

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.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

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() - Binds variables to a prepared statement as parameters
  • maxdb_stmt_execute() - Executes a prepared Query
  • maxdb_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • maxdb_prepare() - Prepare an SQL statement for execution
  • maxdb_stmt_prepare() - Prepare an SQL statement for execution
  • maxdb_stmt_init() - Initializes a statement and returns an resource for use with maxdb_stmt_prepare
  • maxdb_stmt_errno() - Returns the error code for the most recent statement call
  • maxdb_stmt_error() - Returns a string description for last statement error


Ends a sequence of maxdb_stmt_send_long_data

  • « maxdb_stmt_bind_result
  • maxdb_stmt_close »
  • PHP Manual
  • Функции MaxDB
  • Ends a sequence of maxdb_stmt_send_long_data

maxdb_stmt_close_long_data

maxdb_stmt::close_long_data

(PECL maxdb 1.0)

maxdb_stmt_close_long_data -- maxdb_stmt::close_long_data — Ends a sequence of maxdb_stmt_send_long_data()

Описание

Процедурный стиль

maxdb_stmt_close_long_data ( resource $stmt , int $param_nr ) : bool

Объектно-ориентированный стиль

maxdb_stmt::close_long_data ( void ) : bool

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() - Prepare an SQL statement for execution
  • maxdb_stmt_bind_param() - Binds variables to a prepared statement as parameters


Closes a prepared statement

  • « maxdb_stmt_close_long_data
  • maxdb_stmt_data_seek »
  • PHP Manual
  • Функции MaxDB
  • Closes a prepared statement

maxdb_stmt_close

maxdb_stmt::close

(PECL maxdb >= 1.0)

maxdb_stmt_close -- maxdb_stmt::close — Closes a prepared statement

Описание

Процедурный стиль

maxdb_stmt_close ( resource $stmt ) : bool

Объектно-ориентированный стиль

maxdb_stmt::close ( void ) : bool

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.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • maxdb_prepare() - Prepare an SQL statement for execution


Seeks to an arbitray row in statement result set

  • « maxdb_stmt_close
  • maxdb_stmt_errno »
  • PHP Manual
  • Функции MaxDB
  • Seeks to an arbitray row in statement result set

maxdb_stmt_data_seek

maxdb_stmt::data_seek

(PECL maxdb >= 1.0)

maxdb_stmt_data_seek -- maxdb_stmt::data_seek — Seeks to an arbitray row in statement result set

Описание

Процедурный стиль

maxdb_stmt_data_seek ( resource $statement , int $offset ) : bool

Объектно-ориентированный стиль

maxdb_stmt::data_seek ( int $offset ) : bool

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).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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. 5 */
   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);
?>

Результатом выполнения данного примера будет что-то подобное:

City: Dallas  Zip: 75243

Смотрите также

  • maxdb_prepare() - Prepare an SQL statement for execution


Returns the error code for the most recent statement call

  • « maxdb_stmt_data_seek
  • maxdb_stmt_error »
  • PHP Manual
  • Функции MaxDB
  • Returns the error code for the most recent statement call

maxdb_stmt_errno

maxdb_stmt::errno

(PECL maxdb >= 1.0)

maxdb_stmt_errno -- maxdb_stmt::errno — Returns the error code for the most recent statement call

Описание

Процедурный стиль

maxdb_stmt_errno ( resource $stmt ) : int

Объектно-ориентированный стиль

int $maxdb_stmt->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://maxdb.sap.com/documentation/.

Возвращаемые значения

An error code value. Zero means no error occurred.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Error: -4004.

Смотрите также

  • maxdb_stmt_error() - Returns a string description for last statement error
  • maxdb_stmt_sqlstate() - Returns SQLSTATE error from previous statement operation


Returns a string description for last statement error

  • « maxdb_stmt_errno
  • maxdb_stmt_execute »
  • PHP Manual
  • Функции MaxDB
  • Returns a string description for last statement error

maxdb_stmt_error

maxdb_stmt::error

(PECL maxdb >= 1.0)

maxdb_stmt_error -- maxdb_stmt::error — Returns a string description for last statement error

Описание

Процедурный стиль

maxdb_stmt_error ( resource $stmt ) : string

Объектно-ориентированный стиль

string $maxdb_stmt->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.

Возвращаемые значения

A string that describes the error. An empty string if no error occurred.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Error: POS(23) Unknown table name:MYCITY.

Смотрите также

  • maxdb_stmt_errno() - Returns the error code for the most recent statement call
  • maxdb_stmt_sqlstate() - Returns SQLSTATE error from previous statement operation


Executes a prepared Query

  • « maxdb_stmt_error
  • maxdb_stmt_fetch »
  • PHP Manual
  • Функции MaxDB
  • Executes a prepared Query

maxdb_stmt_execute

maxdb_stmt::execute

(PECL maxdb >= 1.0)

maxdb_stmt_execute -- maxdb_stmt::execute — Executes a prepared Query

Описание

Процедурный стиль

maxdb_stmt_execute ( resource $stmt ) : bool

Объектно-ориентированный стиль

maxdb_stmt::execute ( void ) : bool

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 appropriate 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.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

11111 (Georgetown,NY)
22222 (Hubbatown,CA)

Смотрите также

  • maxdb_prepare() - Prepare an SQL statement for execution
  • maxdb_stmt_bind_param() - Binds variables to a prepared statement as parameters


Fetch results from a prepared statement into the bound variables

  • « maxdb_stmt_execute
  • maxdb_stmt_free_result »
  • PHP Manual
  • Функции MaxDB
  • Fetch results from a prepared statement into the bound variables

maxdb_stmt_fetch

maxdb_stmt::fetch

(PECL maxdb >= 1.0)

maxdb_stmt_fetch -- maxdb_stmt::fetch — Fetch results from a prepared statement into the bound variables

Описание

Процедурный стиль

maxdb_stmt_fetch ( resource $stmt ) : bool

Объектно-ориентированный стиль

maxdb_stmt::fetch ( void ) : bool

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
Value | Description
TRUE | Success. Data has been fetched
FALSE | Error occurred
NULL | No more rows/data exists

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

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_prepare() - Prepare an SQL statement for execution
  • 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_bind_result() - Binds variables to a prepared statement for result storage


Frees stored result memory for the given statement handle

  • « maxdb_stmt_fetch
  • maxdb_stmt_init »
  • PHP Manual
  • Функции MaxDB
  • Frees stored result memory for the given statement handle

maxdb_stmt_free_result

maxdb_stmt::free_result

(PECL maxdb >= 1.0)

maxdb_stmt_free_result -- maxdb_stmt::free_result — Frees stored result memory for the given statement handle

Описание

Процедурный стиль

maxdb_stmt_free_result ( resource $stmt ) : void

Объектно-ориентированный стиль

maxdb_stmt::free_result ( void ) : 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() - Transfers a result set from a prepared statement


Initializes a statement and returns an resource for use with maxdb_stmt_prepare

  • « maxdb_stmt_free_result
  • maxdb_stmt_num_rows »
  • PHP Manual
  • Функции MaxDB
  • Initializes a statement and returns an resource for use with maxdb_stmt_prepare

maxdb_stmt_init

maxdb::stmt_init

(PECL maxdb >= 1.0)

maxdb_stmt_init -- maxdb::stmt_init — Initializes a statement and returns an resource for use with maxdb_stmt_prepare

Описание

Процедурный стиль

maxdb_stmt_init ( resource $link ) : resource

Объектно-ориентированный стиль

maxdb::stmt_init ( void ) : object

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() - Prepare an SQL statement for execution


Return the number of rows in statements result set

  • « maxdb_stmt_init
  • maxdb_stmt_param_count »
  • PHP Manual
  • Функции MaxDB
  • Return the number of rows in statements result set

maxdb_stmt_num_rows

maxdb_stmt::num_rows

(PECL maxdb >= 1.0)

maxdb_stmt_num_rows -- maxdb_stmt::num_rows — Return the number of rows in statements result set

Описание

Процедурный стиль

maxdb_stmt_num_rows ( resource $stmt ) : int

Объектно-ориентированный стиль

int $maxdb_stmt->num_rows;

Returns the number of rows in the result set.

Возвращаемые значения

An integer representing the number of rows in result set.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Number of rows: 25.

Смотрите также

  • maxdb_stmt_affected_rows() - Returns the total number of rows changed, deleted, or inserted by the last executed statement
  • maxdb_prepare() - Prepare an SQL statement for execution
  • maxdb_stmt_store_result() - Transfers a result set from a prepared statement


Returns the number of parameter for the given statement

  • « maxdb_stmt_num_rows
  • maxdb_stmt_prepare »
  • PHP Manual
  • Функции MaxDB
  • Returns the number of parameter for the given statement

maxdb_stmt_param_count

maxdb_stmt::param_count

(PECL maxdb >= 1.0)

maxdb_stmt_param_count -- maxdb_stmt::param_count — Returns the number of parameter for the given statement

Описание

Процедурный стиль

maxdb_stmt_param_count ( resource $stmt ) : int

Объектно-ориентированный стиль

int $maxdb_stmt->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.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Statement has 2 markers.

Смотрите также

  • maxdb_prepare() - Prepare an SQL statement for execution


Prepare an SQL statement for execution

  • « maxdb_stmt_param_count
  • maxdb_stmt_reset »
  • PHP Manual
  • Функции MaxDB
  • Prepare an SQL statement for execution

maxdb_stmt_prepare

maxdb_stmt::prepare

(PECL maxdb >= 1.0)

maxdb_stmt_prepare -- maxdb_stmt::prepare — Prepare an SQL statement for execution

Описание

Процедурный стиль

maxdb_stmt_prepare ( resource $stmt , string $query ) : bool

Объектно-ориентированный стиль

maxdb_stmt::prepare ( string $query ) : mixed

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 в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Portland is in district OR

Смотрите также

  • maxdb_stmt_init() - Initializes a statement and returns an resource for use with maxdb_stmt_prepare
  • maxdb_stmt_execute() - Executes a prepared Query
  • maxdb_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • 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() - Closes a prepared statement


Resets a prepared statement

  • « maxdb_stmt_prepare
  • maxdb_stmt_result_metadata »
  • PHP Manual
  • Функции MaxDB
  • Resets a prepared statement

maxdb_stmt_reset

maxdb_stmt::reset

(PECL maxdb >= 1.0)

maxdb_stmt_reset -- maxdb_stmt::reset — Resets a prepared statement

Описание

Процедурный стиль

maxdb_stmt_reset ( resource $stmt ) : bool

Объектно-ориентированный стиль

maxdb_stmt::reset ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Returns result set metadata from a prepared statement

  • « maxdb_stmt_reset
  • maxdb_stmt_send_long_data »
  • PHP Manual
  • Функции MaxDB
  • Returns result set metadata from a prepared statement

maxdb_stmt_result_metadata

maxdb_stmt::result_metadata

(PECL maxdb >= 1.0)

maxdb_stmt_result_metadata -- maxdb_stmt::result_metadata — Returns result set metadata from a prepared statement

Описание

Процедурный стиль

maxdb_stmt_result_metadata ( resource $stmt ) : resource

Объектно-ориентированный стиль

maxdb_stmt::result_metadata ( void ) : resource

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 occurred.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Fieldname: ID

Смотрите также

  • maxdb_prepare() - Prepare an SQL statement for execution
  • maxdb_free_result() - Frees the memory associated with a result


Send data in blocks

  • « maxdb_stmt_result_metadata
  • maxdb_stmt_sqlstate »
  • PHP Manual
  • Функции MaxDB
  • Send data in blocks

maxdb_stmt_send_long_data

maxdb_stmt::send_long_data

(PECL maxdb 1.0)

maxdb_stmt_send_long_data -- maxdb_stmt::send_long_data — Send data in blocks

Описание

Процедурный стиль

maxdb_stmt_send_long_data ( resource $stmt , int $param_nr , string $data ) : bool

Объектно-ориентированный стиль

maxdb_stmt::stmt_send_long_data ( int $param_nr , string $data ) : bool

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() - Prepare an SQL statement for execution
  • maxdb_stmt_bind_param() - Binds variables to a prepared statement as parameters


Returns SQLSTATE error from previous statement operation

  • « maxdb_stmt_send_long_data
  • maxdb_stmt_store_result »
  • PHP Manual
  • Функции MaxDB
  • Returns SQLSTATE error from previous statement operation

maxdb_stmt_sqlstate

(PECL maxdb >= 1.0)

maxdb_stmt_sqlstate — Returns SQLSTATE error from previous statement operation

Описание

maxdb_stmt_sqlstate ( resource $stmt ) : string

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.

Возвращаемые значения

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Error: 42000.

Смотрите также

  • maxdb_stmt_errno() - Returns the error code for the most recent statement call
  • maxdb_stmt_error() - Returns a string description for last statement error


Transfers a result set from a prepared statement

  • « maxdb_stmt_sqlstate
  • maxdb_store_result »
  • PHP Manual
  • Функции MaxDB
  • Transfers a result set from a prepared statement

maxdb_stmt_store_result

maxdb_stmt::store_result

(PECL maxdb >= 1.0)

maxdb_stmt_store_result -- maxdb_stmt::store_result — Transfers a result set from a prepared statement

Описание

Процедурный стиль

maxdb_stmt_store_result ( resource $stmt ) : bool

Объектно-ориентированный стиль

maxdb_stmt::store_result ( void ) : object

maxdb_stmt_store_result() has no functionally effect and should not be used for retrieving data from MaxDB server.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Number of rows: 25.

Смотрите также

  • maxdb_prepare() - Prepare an SQL statement for execution
  • maxdb_stmt_result_metadata() - Returns result set metadata from a prepared statement
  • maxdb_fetch() - Псевдоним maxdb_stmt_fetch


Transfers a result set from the last query

  • « maxdb_stmt_store_result
  • maxdb_thread_id »
  • PHP Manual
  • Функции MaxDB
  • Transfers a result set from the last query

maxdb_store_result

maxdb::store_result

(PECL maxdb >= 1.0)

maxdb_store_result -- maxdb::store_result — Transfers a result set from the last query

Описание

Процедурный стиль

maxdb_store_result ( resource $link ) : resource

Объектно-ориентированный стиль

maxdb::store_result ( void ) : object

This function has no functionally effect.

Возвращаемые значения

Returns a result resource or FALSE if an error occurred.

Примеры

See maxdb_multi_query().

Смотрите также

  • maxdb_real_query() - Execute an SQL query
  • maxdb_use_result() - Initiate a result set retrieval


Returns the thread ID for the current connection

  • « maxdb_store_result
  • maxdb_thread_safe »
  • PHP Manual
  • Функции MaxDB
  • Returns the thread ID for the current connection

maxdb_thread_id

maxdb::thread_id

(PECL maxdb >= 1.0)

maxdb_thread_id -- maxdb::thread_id — Returns the thread ID for the current connection

Описание

Процедурный стиль

maxdb_thread_id ( resource $link ) : int

Объектно-ориентированный стиль

int $maxdb->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.

Возвращаемые значения

maxdb_thread_id() returns the Thread ID for the current connection.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: maxdb_query(): -10821 Session not connected <...>
Error: Session not connected

Смотрите также

  • maxdb_kill() - Disconnects from a MaxDB server


Returns whether thread safety is given or not

  • « maxdb_thread_id
  • maxdb_use_result »
  • PHP Manual
  • Функции MaxDB
  • Returns whether thread safety is given or not

maxdb_thread_safe

(PECL maxdb >= 7.6.06.04)

maxdb_thread_safe — Returns whether thread safety is given or not

Описание

maxdb_thread_safe ( void ) : bool

maxdb_thread_safe() indicates whether the client library is compiled as thread-safe.

Возвращаемые значения

TRUE if the client library is thread-safe, otherwise FALSE.


Initiate a result set retrieval

  • « maxdb_thread_safe
  • maxdb_warning_count »
  • PHP Manual
  • Функции MaxDB
  • Initiate a result set retrieval

maxdb_use_result

maxdb::use_result

(PECL maxdb >= 1.0)

maxdb_use_result -- maxdb::use_result — Initiate a result set retrieval

Описание

Процедурный стиль

maxdb_use_result ( resource $link ) : resource

Объектно-ориентированный стиль

maxdb::use_result ( void ) : resource

maxdb_use_result() has no effect.

Возвращаемые значения

Returns result или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

a

Смотрите также

  • maxdb_real_query() - Execute an SQL query
  • maxdb_store_result() - Transfers a result set from the last query


Returns the number of warnings from the last query for the given link

  • « maxdb_use_result
  • Mongo »
  • PHP Manual
  • Функции MaxDB
  • Returns the number of warnings from the last query for the given link

maxdb_warning_count

maxdb::warning_count

(PECL maxdb >= 1.0)

maxdb_warning_count -- maxdb::warning_count — Returns the number of warnings from the last query for the given link

Описание

Процедурный стиль

maxdb_warning_count ( resource $link ) : int

Объектно-ориентированный стиль

int $maxdb->warning_count;

maxdb_warning_count() returns the number of warnings from the last query in the connection represented by the link parameter.

Возвращаемые значения

Number of warnings or zero if there are no warnings.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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 Процедурный стиль

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: maxdb_query(): -8004 POS(62) Constant must be compatible with column type and length <...>
Number of warning: 0

Смотрите также

  • maxdb_errno() - Returns the error code for the most recent function call
  • maxdb_error() - Returns a string description of the last error
  • maxdb_sqlstate() - Returns the SQLSTATE error from previous MaxDB operation


Драйвер MongoDB (устаревший)

  • Установка и настройка
    • Требования
    • Установка
    • Опции php.ini
  • Предопределенные константы
  • Manual
    • Руководство
    • Предпочтения чтения
    • Гарантии записи
    • Карта сопоставления SQL в Mongo
    • Подключения
    • Параметры контекста потока
    • Запись
    • Запросы
    • Обновления
    • Безопасность
    • Поиск проблемы
    • Запускаем тесты драйвера
  • Базовые классы
    • MongoClient — Класс MongoClient
    • MongoDB — Класс MongoDB
    • MongoCollection — Класс MongoCollection
    • MongoCursor — Класс MongoCursor
    • MongoCursorInterface — Интерфейс MongoCursorInterface
    • MongoCommandCursor — Класс MongoCommandCursor
  • Типы
    • MongoId — Класс MongoId
    • MongoCode — Класс MongoCode
    • MongoDate — Класс MongoDate
    • MongoRegex — Класс MongoRegex
    • MongoBinData — Класс MongoBinData
    • MongoInt32 — Класс MongoInt32
    • MongoInt64 — Класс MongoInt64
    • MongoDBRef — Класс MongoDBRef
    • MongoMinKey — Класс MongoMinKey
    • MongoMaxKey — Класс MongoMaxKey
    • MongoTimestamp — Класс MongoTimestamp
  • Классы GridFS
    • MongoGridFS — Класс MongoGridFS
    • MongoGridFSFile — Класс MongoGridFSFile
    • MongoGridFSCursor — Класс MongoGridFSCursor
  • Пакетные классы
    • MongoWriteBatch — Класс MongoWriteBatch
    • MongoInsertBatch — Класс MongoInsertBatch
    • MongoUpdateBatch — Класс MongoUpdateBatch
    • MongoDeleteBatch — Класс MongoDeleteBatch
  • Дополнительно
    • MongoLog — Класс MongoLog
    • MongoPool — Класс MongoPool
    • Mongo — Класс Mongo [устарел]
  • Функции Mongo
    • bson_decode — Преобразовывает объект BSON в массив PHP
    • bson_encode — Преобразовывет переменную PHP в строку BSON
  • Исключения
    • MongoException — Класс MongoException
    • MongoResultException — Класс MongoResultException
    • MongoCursorException — Класс MongoCursorException
    • MongoCursorTimeoutException — Класс MongoCursorTimeoutException
    • MongoConnectionException — Класс MongoConnectionException
    • MongoGridFSException — Класс MongoGridFSException
    • MongoDuplicateKeyException — Класс MongoDuplicateKeyException
    • MongoProtocolException — Класс MongoProtocolException
    • MongoExecutionTimeoutException — Класс MongoExecutionTimeoutException
    • MongoWriteConcernException — Класс MongoWriteConcernException
  • Список изменений


Установка и настройка

Содержание

  • Требования
  • Установка
  • Опции php.ini
Внимание

Это расширение объявлено устаревшим. Вместо него используйте расширение MongoDB.


Установка

Внимание

Это расширение объявлено устаревшим. Вместо него используйте расширение MongoDB.

Драйвер MongoDB работает практически на любой операционной системе: Windows, macOS, Unix, и Linux; на машинах с порядком от младшего к старшему и от старшего к младшему; на 32- и 64-разрядных машинах; с версиями PHP от 5.3 до 5.6 (версии драйвера до 1.6 также работают с PHP 5.2).

Это расширение » PECL не поставляется вместе с PHP.

  • Ручная установка
  • Установка на *NIX
  • Установка на Windows
  • macOS
  • Gentoo
  • Red Hat
  • Инструкции по установке сторонних производителей

Ручная установка

Разработчики драйверов и люди, заинтересованные в самых свежих версиях, могут собрать его из исходных кодов, которые находятся на » Github. Перейдите на Github, затем нажмите кнопку "download" и выполните команды:

$ tar zxvf mongo-php-driver-legacy-<commit_id>.tar.gz
$ cd mongo-php-driver-legacy-<commit_id>
$ phpize
$ ./configure
$ make all
$ sudo make install

Внесите изменения в php.ini:

  • Убедитесь, что переменная extension_dir указывает на каталог, содержащий mongo.so. Установщик покажет путь, где он устанавливает драйвер, показав примерно следующее:

    Installing '/usr/lib/php/extensions/no-debug-non-zts-20060613/mongo.so'
    Убедитесь, что он совпадает с каталогом расширений PHP, выполнив:
    $ php -i | grep extension_dir
  extension_dir => /usr/lib/php/extensions/no-debug-non-zts-20060613 =>
                   /usr/lib/php/extensions/no-debug-non-zts-20060613
    Если это не так, измените extension_dir в php.ini или переместите mongo.so.

  • Для автозагрузки расширения при старте PHP, добавьте строку:

    extension=mongo.so

Установка на *NIX

Выполните:

$ sudo pecl install mongo

Добавьте следующую строку в файл php.ini:

extension=mongo.so

Если при установке pecl не хватает памяти, убедитесь, что memory_limit в php.ini установлен, как минимум 128MB.

Установка на Windows

Скомпилированные модули для каждой версии доступны на сайте » PECL для всех комбинаций версий, потокобезопасности и библиотек VC. Разархивируйте загруженный модуль и скопируйте php_mongo.dll директорию с расширениями PHP (по умолчанию "ext").

Добавьте следующую строку в php.ini:

extension=php_mongo.dll

Замечание: Дополнительные зависимости DLL для пользователей Windows

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: libsasl.dll

macOS

В большинстве случаев установка из PECL - самый простой способ:

$ sudo pecl install mongo

Если в вашей системе установлено несколько версий PHP (например, встроенная в macOS, Homebrew, » XAMPP), обратите внимание, что у каждой версии PHP будет своя команда pecl и файл php.ini.

Замечание: Зависимость Xcode для компиляции в macOS

Для компиляции драйвера на macOS потребуются инструменты разработчика Xcode, которые устанавливаются с помощью команды xcode-select --install. Если эта команда недоступна, сначала вам понадобится установить пакет » Command Line Tools.

Gentoo

В Gentoo есть пакет для драйвера PHP PECL под названием dev-php/pecl-mongo, который можно установить с помощью команды:

$ sudo emerge -va dev-php/pecl-mongo

Если вы используете PECL, то можете получить сообщение об ошибке, что libtool неправильной версии. Компиляция из исходного кода вам понадобится для запуска aclocal и autoconf.

$ phpize
$ aclocal
$ autoconf
$ ./configure
$ make
$ sudo make install

Red Hat

Включает в себя Fedora и CentOS.

Параметры Apache по умолчанию в этих системах не позволяют запросам устанавливать сетевые подключения, так что при попытке подключения к базе данных драйвер получит ошибку "Доступ запрещен". Если вы столкнулись с этой проблемой, попробуйте выполнить:

$ /usr/sbin/setsebool -P httpd_can_network_connect 1
Затем перезапустите Apache. (Эта проблема также возникает с SELinux.)

Инструкции по установке сторонних производителей

Многие люди создали отличные учебные пособия по установке драйверов PHP.

  • » (Re)installing PHP on macOS

    В этой статье Джастина Хилмана подробно описан процесс установки PHP и дополнительных расширений с помощью Homebrew на macOS. Это дополняет предыдущие инструкции на этой странице по установке драйвера с помощью Homebrew.

  • » PHP 5.3.1 with Xdebug, MongoDB and Lithium on Ubuntu 9.10 / Apache 2.2

    Этот скринкаст Джона Адамса демонстрирует, как быстро начать работу с PHP 5.3.1, Xdebug и MongoDB в Ubuntu 9.10 с Apache.


Опции php.ini

Поведение этих функций зависит от установок в php.ini.

Опции настройки Mongo
Имя | По умолчанию | Место изменения | Список изменений
mongo.allow_empty_keys | 0 | PHP_INI_ALL |
mongo.allow_persistent | 1 | PHP_INI_ALL | Удалено в 1.2.0
mongo.chunk_size | 262144 | PHP_INI_ALL |
mongo.cmd | "$" | PHP_INI_ALL |
mongo.default_host | "localhost" | PHP_INI_ALL |
mongo.default_port | 27017 | PHP_INI_ALL |
mongo.is_master_interval | 15 | PHP_INI_ALL | Добавлено в версии 1.2.10, до 1.3.0, значение по умолчанию 60.
mongo.long_as_object | 0 | PHP_INI_ALL |
mongo.native_long | 1 | PHP_INI_ALL | До версии 1.5.0, значение по умолчанию 0.
mongo.ping_interval | 5 | PHP_INI_ALL | Добавлено в версии 1.2.10
mongo.utf8 | 1 | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

mongo.allow_empty_keys int

Добавлено в версии 1.0.11.

Разрешить использование пустых строк ("") в качестве ключевых имен. По умолчанию драйвер будет бросать исключение при попытке установки пустой строки в качестве ключа в базе данных. Это очень легко допустить используя двойные кавычки с $-оператором, так что рекомендуется оставить этот параметр по умолчанию. Однако, если вам нужно хранить пустые ключи, вы можете включить эту опцию, чтобы драйвер позволил вам передать пустые строки в базу данных.

mongo.allow_persistent int

Разрешены ли постоянные соединения. (Удалено в 1.2.0 - теперь все соединения постоянны)

mongo.chunk_size int

Количество байт в фрагменте. Используется для разделения файлов GridFS. Это число должно быть как минимум на 100 байт меньше четырех мегабайт (максимум: 4194204 байт), но рекомендуется не использовать максимальное значение.

mongo.cmd string

Символ, который будет использоваться в модификаторах и сравнениях вместо $.

Так как легко можно забыть экранировать "$", вы можете выбрать свой собственный символ для экранирования. Выбирать имеет смысл чимвол, который не встречается в именах ваших ключей, например ":".

mongo.cmd = ":"

Теперь произведем сравнение:

<?php

$query = array( "i" => array( ":gt" => 20, ":lte" => 30 ) );

?>

Вы так же можете изменить этот символ используя ini_set("mongo.cmd", ":"). Вы так же можете использовать одинарные кавычки или \$.

mongo.default_host string

Имя хоста по умолчанию. Оно используется, если небыло задано в конструкторе.

mongo.default_port string

Порт, который будет использоваться для соединения с базуой данных, если он небыл указан в конструкторе. По умолчанию установлено как 27017.

mongo.is_master_interval int

Добавлено в версии 1.2.10.

Для соединения с репликой: Минимальный интервал, с которым драйвер будет посылать запросы "isMaster" на сервер MongoDB. Чем ниже будет эта величина, тем чаще будут отправляться такие запросы, но и тем быстрее драйвер будет обнаруживать изменения в топологии репликации.

mongo.long_as_object int

Возвращает BSON_LONG как экземпляр MongoInt64, а не как примитивный тип.

mongo.native-long int

Значение по умолчанию для этой опции будет изменен на TRUE в 1.5.0, так что обязательно установите эту опцию в значение, которое вы хотите (вероятно TRUE), чтобы работа драйвера внезапно не изменилась при обновлении.

На 64-битных платформах, опция mongo.native_long позволяет хранить 64-битные целые числа в MongoDB. Если данная опция не установлена, храниться будут только 32-битные числа. Если опция включена, тип данных в MongoDB будет BSON LONG, а не BSON INT, как в случае выключения данной опции.

Эта опция также меняет поведение при чтении полей BSON LONG из MohdoDB. Если mongo.native_long не будет разрешена, драйвер преобразует каждое BSON LONG в PHP тип float, что может привести к потере точности.

На 32-битных платформах, опция mongo.native_long не влияет на хранение целочисленных значений в MongoDB: целые будут храниться как BSON INT как и раньше. Однако, если этот параметр будет включен, при попытке прочитать BSON LONG из базы, будет вызвано исключение MongoCursorException, предупреждая о возможной потере точности.

Для 32-битных систем рекомендуется использовать эту настройку совместно с mongo.long_as_object.

mongo.ping_interval int

Добавлено в версии 1.2.10.

Для соединения с репликой: Минимальный интервал, с которым драйвер будет посылать запросы "ping" на сервер MongoDB. Чем ниже будет эта величина, тем чаще будут отправляться такие запросы, но и тем быстрее драйвер будет обнаруживать недоступность реплики.

mongo.utf8 int

Включает вызов исключений при получении не-UTF8 строки. До версии 1.0.4, PHP драйвер проигнорирует не UTF8 строки, даже если вы отключили работу с ними в Mongo. По состоянию на 1.0.4, драйвер выдает MongoException . Для облегчения перехода на новую версию драйвера приложений которые вставляют не UTF8 строки, в таблицы вы можете отключить эту опцию, чтобы съэмитировать работу предыдущей версии, без вызова исключений. Эта опция пропадет начиная с версии 1.1.0 и исключения будут всегда вызываться при попытки вставить не-UTF8 строки.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MONGO_STREAMS (integer)
Псевдоним MONGO_SUPPORTS_STREAMS
MONGO_SUPPORTS_STREAMS (integer)
1 при компиляции с потоками PHP (по умолчанию начиная с 1.4.0).
MONGO_SUPPORTS_SSL (integer)
1 если OpenSSL включена и доступна.
MONGO_SUPPORTS_AUTH_MECHANISM_MONGODB_CR (integer)
1 при компиляции с поддержкой MongoDB-Challenge/Reponse authentication.
MONGO_SUPPORTS_AUTH_MECHANISM_MONGODB_X509 (integer)
1 при компиляции с поддержкой аутентификации x.509.
MONGO_SUPPORTS_AUTH_MECHANISM_GSSAPI (integer)
1 при компиляции с поддержкой аутентификации GSSAPI.
MONGO_SUPPORTS_AUTH_MECHANISM_PLAIN (integer)
1 при компиляции с поддержкой аутентификации PLAIN.
MONGO_STREAM_NOTIFY_TYPE_IO_INIT (integer)
MONGO_STREAM_NOTIFY_TYPE_LOG (integer)
MONGO_STREAM_NOTIFY_IO_READ (integer)
MONGO_STREAM_NOTIFY_IO_WRITE (integer)
MONGO_STREAM_NOTIFY_IO_PROGRESS (integer)
MONGO_STREAM_NOTIFY_IO_COMPLETED (integer)
MONGO_STREAM_NOTIFY_LOG_INSERT (integer)
MONGO_STREAM_NOTIFY_LOG_QUERY (integer)
MONGO_STREAM_NOTIFY_LOG_UPDATE (integer)
MONGO_STREAM_NOTIFY_LOG_DELETE (integer)
MONGO_STREAM_NOTIFY_LOG_GETMORE (integer)
MONGO_STREAM_NOTIFY_LOG_KILLCURSOR (integer)
MONGO_STREAM_NOTIFY_LOG_BATCHINSERT (integer)
MONGO_STREAM_NOTIFY_LOG_RESPONSE_HEADER (integer)
MONGO_STREAM_NOTIFY_LOG_WRITE_REPLY (integer)
MONGO_STREAM_NOTIFY_LOG_CMD_INSERT (integer)
MONGO_STREAM_NOTIFY_LOG_CMD_UPDATE (integer)
MONGO_STREAM_NOTIFY_LOG_CMD_DELETE (integer)
MONGO_STREAM_NOTIFY_LOG_WRITE_BATCH (integer)


Manual

Содержание

  • Руководство
  • Предпочтения чтения
  • Гарантии записи
  • Карта сопоставления SQL в Mongo
  • Подключения
  • Параметры контекста потока
  • Запись
  • Запросы
  • Обновления
  • Безопасность
  • Поиск проблемы
  • Запускаем тесты драйвера
Внимание

Это расширение объявлено устаревшим. Вместо него используйте расширение MongoDB.

Это руководство дает представление об использовании MongoDB, но по большей части оно рассказывает об использовании драйвера PHP. Для подробной информации о проектировании схемы, значении терминов и настройки сервера баз данных, читайте » документацию MongoDB.


Руководство

Содержание

  • Создание соединения
  • Получение базы данных
  • Получение коллекции
  • Вставка документа
  • Поиск документов с помощью MongoCollection::findOne
  • Добавление нескольких документов
  • Подсчет документов в коллекции
  • Использование курсора для получения всех документов
  • Установка критериев для запроса
  • Получение набора документов с запросом
  • Создание индекса
Внимание

Это расширение объявлено устаревшим. Вместо него используйте расширение MongoDB.

Это официальный драйвер MongoDB для PHP.

Вот быстрый пример кода, который соединяется с MongoDB, вставляет и запрашивает документы, выполняет итерацию результатов запроса и отключается. Подробнее о каждом шаге в руководстве ниже.

<?php

// соединяемся
$m = new MongoClient();

// выбираем базу данных
$db = $m->comedy;

// выбираем коллекцию (аналог таблицы реляционной базы данных)
$collection = $db->cartoons;

// добавляем запись
$document = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );
$collection->insert($document);

// добавляем еще одну запись, с другой "формой"
$document = array( "title" => "XKCD", "online" => true );
$collection->insert($document);

// находим все в коллекции
$cursor = $collection->find();

// перебираем результаты
foreach ($cursor as $document) {
    echo $document["title"] . "\n";
}

?>

Результат выполнения данного примера:

Calvin and Hobbes
XKCD


Создание соединения

Чтобы подключиться к серверу базы данных, используйте одну из следующих конструкций:

<?php
$connection = new MongoClient(); // подключаемся к localhost:27017
$connection = new MongoClient( "mongodb://example.com" ); // подключиться к удаленному хосту (порт по умолчанию: 27017)
$connection = new MongoClient( "mongodb://example.com:65432" ); // подключиться к удаленному хосту по заданному порту
?>

Вам не нужно явно отключаться от базы данных. Драйвер использует постоянные соединения и будет повторно использовать уже установленные соединения.

Смотрите также

Глава о подключении, охватывающая различные типы соединений.

Документация по API для класса MongoClient и MongoClient::__construct() дает исчерпывающий обзор всех возможных вариантов с несколькими примерами.


Получение базы данных

Чтобы выбрать базу данных, используйте:

<?php
$connection = new MongoClient();
$db = $connection->dbname;
?>

База данных не обязательно должна быть создана заранее, вы можете создать новые базы данных, просто выбрав их.

Будьте осторожны с опечатками! Вы можете непреднамеренно создать новую базу данных, что может привести к сбивающим с толку ошибкам (ниже приведен код, когда используется name и неправильно введенное anme во втором случае:

<?php
$connection = new MongoClient();

$db = $connection->mybiglongdbname;
// делаем что-нибудь

$db = $connection->mybiglongdbanme;
// сейчас мы подключены к другой базе данных!
?>

Смотрите также

Документация по API для класса MongoDB содержит больше информации об объектах базы данных.


Получение коллекции

Получение коллекции имеет тот же синтаксис, что и получение базы данных:

<?php
$connection = new MongoClient();
$db = $connection->baz;

// выбираем коллекцию:
$collection = $db->foobar;

// или, непосредственно выбирем базу данных и коллекцию:
$collection = $connection->baz->foobar;
?>

Коллекция аналогична таблице (если вы знакомы с реляционными базами данных).

Смотрите также

Документация по API для класса MongoCollection содержит больше информации об объектах коллекции.


Вставка документа

Ассоциативные массивы - это базовый объект, который можно сохранить в коллекции в базе данных. Например, "документ" может быть:

<?php
$doc = array(
    "name" => "MongoDB",
    "type" => "database",
    "count" => 1,
    "info" => (object)array( "x" => 203, "y" => 102),
    "versions" => array("0.9.7", "0.9.8", "0.9.9")
);
?>

Обратите внимание, что вы можете иметь вложенные массивы и объекты. Драйвер всегда будет хранить ассоциативный массив как объект в базе данных. Численно индексированный массив сохраняется как массив в случае, если ключи начинаются с 0 и не прерываются, и как объект, если ключи массива не начинаются с 0 или имеют пробелы (то есть: 0, 1, 4, 5).

Чтобы вставить этот документ, используйте MongoCollection::insert():

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$collection->insert( $doc );
?>

Смотрите также

Документация API к MongoCollection::insert() содержит больше информации о вставке данных.


Поиск документов с помощью MongoCollection::findOne

  • « Вставка документа
  • Добавление нескольких документов »
  • PHP Manual
  • Руководство
  • Поиск документов с помощью MongoCollection::findOne

Поиск документов с помощью MongoCollection::findOne()

Чтобы показать, что документ, который мы вставили на предыдущем шаге, хранится в базе данных, мы можем выполнить простую операцию MongoCollection::findOne(), чтобы получить один документ из коллекции. Этот метод полезен, когда существует только один документ, соответствующий запросу, или вас интересует только один результат.

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$document = $collection->findOne();
var_dump( $document );
?>

Результат выполнения данного примера:

array(6) {
  ["_id"]=>
  object(MongoId)#8 (1) {
    ["$id"]=>
    string(24) "4e2995576803fab768000000"
  }
  ["name"]=>
  string(7) "MongoDB"
  ["type"]=>
  string(8) "database"
  ["count"]=>
  int(1)
  ["info"]=>
  array(2) {
    ["x"]=>
    int(203)
    ["y"]=>
    int(102)
  }
  ["versions"]=>
  array(3) {
    [0]=>
    string(5) "0.9.7"
    [1]=>
    string(5) "0.9.8"
    [2]=>
    string(5) "0.9.9"
  }
}

Обратите внимание, что есть поле _id, которое было автоматически добавлено в ваш документ. _id - это поле "первичный ключ". Если в вашем документе он не указан, драйвер добавит его автоматически.

Если вы укажете свое собственное поле _id, оно должно быть уникальным для коллекции. Смотрите пример здесь:

<?php
$connection = new MongoClient();
$db = $connection->database;

$db->foo->insert(array("_id" => 1));
// это выдаст исключение
$db->foo->insert(array("_id" => 1));

// здесь все хорошо, так как это другая коллекция
$db->bar->insert(array("_id" => 1));
?>

По умолчанию драйвер гарантирует, что сервер подтвердил запись перед возвратом. Вы можете при желании отключить это поведение, передав array("w" => 0) в качестве второго аргумента. Это означает, что драйвер не должен ждать, пока база данных подтвердит запись, и не вызовет исключение дубликата _id.

Смотрите также

MongoCollection::findOne() для получения дополнительной информации о поиске данных.

MongoId более подробно описывает уникальные идентификаторы.

Раздел записи описывает более детальную запись, а в главе Гарантии записи подробно рассматриваются различные параметры записи.


Добавление нескольких документов

Чтобы сделать более интересные вещи с запросами, давайте добавим в коллекцию несколько простых документов. Эти документы будут иметь форму array( "i" => value );; и мы можем сделать это довольно эффективно в цикле:

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

for ( $i = 0; $i < 100; $i++ )
{
    $collection->insert( array( 'i' => $i, "field{$i}" => $i * 2 ) );
}
?>

Обратите внимание, что мы можем вставить массивы с разными ключами в одну коллекцию. Именно этот аспект мы имеем в виду, когда говорим, что MongoDB "без схемы". В приведенном выше примере каждый документ имеет поле i, а также имя поля в виде field + $i.


Подсчет документов в коллекции

Теперь, когда мы вставили 101 документ (100, которые мы сделали в цикле, плюс первый), мы можем проверить, добавлены ли они все, используя метод MongoCollection::count().

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

echo $collection->count();
?>
и это должно вывести 101.


Использование курсора для получения всех документов

Чтобы получить все документы в коллекции, мы будем использовать MongoCollection::find(). Метод find() возвращает объект MongoCursor, который позволяет перебирать набор документов, соответствующих нашему запросу. Итак, чтобы запросить все документы и распечатать их:

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$cursor = $collection->find();
foreach ( $cursor as $id => $value )
{
    echo "$id: ";
    var_dump( $value );
}
?>
и это должно вывести все 101 документов в коллекции. $id - это поле _id документа (приведенное к строке), а $value - сам документ.

Смотрите также

Документация API по MongoCollection::find() содержит больше информации о поиске данных.


Установка критериев для запроса

Мы можем создать запрос для передачи в метод MongoCollection::find(), чтобы получить подмножество документов в нашей коллекции. Например, если мы хотим найти документ, для которого значение поля "i" равно 71, мы бы сделали следующее:

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$query = array( 'i' => 71 );
$cursor = $collection->find( $query );

while ( $cursor->hasNext() )
{
    var_dump( $cursor->getNext() );
}
?>

Результат выполнения данного примера:

array(2) {
  ["_id"]=>
  object(MongoId)#6 (0) {
  }
  ["i"]=>
  int(71)
  ["_ns"]=>
  "testCollection"
}


Получение набора документов с запросом

Мы можем использовать запрос, чтобы получить набор документов из нашей коллекции. Например, если мы хотим получить все документы, где "i" > 50, мы могли бы написать:

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$query = array( "i" => array( '$gt' => 50 ) ); //обратите внимание на одинарные кавычки вокруг '$gt'
$cursor = $collection->find( $query );

while ( $cursor->hasNext() )
{
    var_dump( $cursor->getNext() );
}
?>

который должен напечатать документы, где "i" > 50. Мы также можем получить диапазон, скажем, 20 < i <= 30:

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$query = array( 'i' => array( '$gt' => 20, "\$lte" => 30 ) );
$cursor = $collection->find( $query );

while ( $cursor->hasNext() )
{
    var_dump( $cursor->getNext() );
}
?>

Не забывайте всегда избегать символа $ или использовать одинарные кавычки. В противном случае PHP будет интерпретировать его, как переменную $gt.


Создание индекса

MongoDB поддерживает индексы, и их очень легко добавить в коллекцию. Для создания индекса вы указываете имя поля и направление: по возрастанию (1) или по убыванию (-1). Следующее создает восходящий индекс в поле "i":

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$collection->ensureIndex( array( "i" => 1 ) );  // создаем индекс на "i"
$collection->ensureIndex( array( "i" => -1, "j" => 1 ) );  // индекс на "i" по убыванию, "j" по возрастанию
?>

Индексирование имеет решающее значение для хорошей производительности чтения по мере роста ваших данных. Если вы не знакомы с индексированием, ознакомьтесь с документацией MongoCollection::ensureIndex() и базовой документацией по » индексированию MongoDB.


Предпочтения чтения

В MongoDB 2.2 и версии 1.3.0 драйвера добавлена поддержка » предпочтений чтения, которые позволяют контролировать направление запросов к экземплярам mongod в среде с набором реплик. Предпочтения чтения могут быть указаны для каждого соединения базы данных или коллекции. Предпочтения, определенные на более высоком уровне, будут наследоваться по умолчанию (например, MongoCollection будет наследовать предпочтения чтения, определенные в соответствующем экземпляре MongoDB).

Предпочтения чтения задаются с помощью комбинации режимов и наборов тегов. Режимы определяют приоритетность экземпляров mongod, а » наборы тегов определяют критерии для приемлемых экземпляров mongod. Экземпляры Mongod имеют право, только если они находятся в пределах 15 мс времени пинга от ближайшего экземпляра Mongod.

Режимы предпочтений чтения

Внимание

Все режимы предпочтений чтения, кроме MongoClient::RP_PRIMARY, могут возвращать устаревшие данные, поскольку вторичные сервера реплицируют операции с основного с некоторой задержкой. Убедитесь, что ваше приложение может переносить устаревшие данные, если вы решите использовать режим, отличный от MongoClient::RP_PRIMARY.

  • MongoClient::RP_PRIMARY

    Все операции чтения используют только набор реплик с основного сервера. Работает по умолчанию. Если основной сервер недоступен, операции чтения приведут к исключению.

    Этот режим несовместим с использованием наборов тегов. Указание набора тегов с помощью MongoClient::RP_PRIMARY приведет к исключению.

  • MongoClient::RP_PRIMARY_PREFERRED

    В большинстве ситуаций операции читаются с основного сервера. Однако, если он недоступен, как в случае аварийного переключения, операции читаются с вторичных серверов.

    Когда предпочтения чтения включает в себя набор тегов, клиент читает сначала с основного сервера, если он доступен, а затем с вторичных, которые соответствуют указанным тэгам. Если ни у одного вторичного сервероа нет совпадающих тегов, операция чтения выдаст исключение.

    Внимание

    Версия 2.2 mongos добавила полную поддержку предпочтений чтения. При подключении к более старым экземплярам mongos MongoClient::RP_PRIMARY_PREFERRED будет отправлять запросы к вторичным серверам.

  • MongoClient::RP_SECONDARY

    Операции только для чтения с вторичных серверов. Если вторичные серверы недоступны, операции чтения приведут к исключению.

    Большинство наборов имеют по крайней мере один вторичный объект, но в некоторых ситуациях доступного вторичного устройства может не быть. Например, набор с первичным, вторичным и арбитром может не иметь никаких вторичных серверов, если участник находится в состоянии восстановления или недоступен.

    Когда предпочтение чтения включает в себя набор тегов, клиент пытается найти вторичные элементы, которые соответствуют указанному набору тегов, и направляет чтения случайному вторичному элементу из ближайшей группы. Если ни у каких вторичных серверов нет совпадающих тегов, операция чтения выдаст исключение.

  • MongoClient::RP_SECONDARY_PREFERRED

    В большинстве ситуаций операции читаются со вторичных серверов, но в ситуациях, когда набор состоит из одного основного сервера без других членов, операция чтения будет использовать основной сервер.

    Когда предпочтения чтения включает в себя набор тегов, клиент пытается найти вторичный сервер, который соответствует указанному набору тегов, и направляет чтения случайному вторичному серверу из ближайшей группы. Если ни у каких вторичных серверов нет совпадающих тегов, операция чтения выдаст исключение.

  • MongoClient::RP_NEAREST

    Драйвер считывает данные со случайного члена набора, время проверки которого менее чем на 15 мс медленнее, чем у участника с самым низким временем проверки связи. Чтения в режиме MongoClient::RP_NEAREST не учитывают тип элемента и могут считываться как с основного, так и с вторичных.

    Установите этот режим, чтобы минимизировать влияние задержки сети на операции чтения без предпочтения текущих или устаревших данных.

    Если вы укажете набор тегов, клиент попытается найти элемент, который соответствует указанному набору тегов и направит операции чтения на случайный узел из ближайшей группы.

    Замечание:

    Все операции чтения из ближайшего члена набора реплик, которые соответствуют указанному режиму предпочтений чтения. Режим MongoClient::RP_NEAREST предпочитает чтение с низкой задержкой по сравнению с основным или дополнительным статусом члена.

Наборы тегов

» Наборы тегов позволяют указывать критерии, чтобы приложение могло ориентировать операции чтения на конкретные элементы на основе пользовательских параметров. Наборы тегов позволяют гарантировать, что операции чтения предназначены для членов в конкретном центре обработки данных или для целевых экземпляров Mongod, предназначенных для определенного класса операций, таких как отчеты или аналитика.

Вы можете указать наборы тегов в следующих режимах предпочтений чтения:

  • MongoClient::RP_PRIMARY_PREFERRED

  • MongoClient::RP_SECONDARY

  • MongoClient::RP_SECONDARY_PREFERRED

  • MongoClient::RP_NEAREST

Вы не можете указывать наборы тегов в режиме предпочтений чтения MongoClient::RP_PRIMARY. Теги применяются только при выборе дополнительного члена набора, за исключением режима, с выбором ближайшего члена набора.

Указаение предпочтений чтения

Предпочтения чтения могут быть указаны либо в URI соединения, предоставленном MongoClient::__construct(), который использует синтаксис строки запроса, либо с помощью методов установки в основных классах, которые используют синтаксис массива для наборов тегов.

При указании режимов предпочтения чтения в строке запроса наборы тегов для значения readPreferenceTags должны быть последовательностью пар ключ/значение, разделенных запятыми.

Замечание:

Каждый набор тегов, определенный в строке запроса, будет использовать имя readPreferenceTags. В отличие от того, как PHP может обрабатывать строки запроса URL, последовательные значения для readPreferenceTags не будут перезаписывать друг друга. Драйвер будет собирать наборы тегов в порядке их появления в строке запроса.

Внимание

Если драйвер не может найти соответствующий набор тегов, чтение не удастся! Вы несете ответственность за предоставление подходящего запасного варианта, такого как пустое значение readPreferenceTags для возврата к "предпочтению без набора тегов".

Пример #1 Предпочтения чтения в URI подключения с синтаксисом строки запроса

<?php
// Предпочитаем ближайший сервер без тегов
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));

// Выбираем ближайший сервер в "восточном" дата-центре
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));

// Предпочитаем ближайший сервер в "восточном" центре обработки данных, также используемый для отчетности,
// но используем сервер в "западном" центре обработки данных
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east,use:reporting';
$uri .= '&readPreferenceTags=dc:west';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));

// Предпочитаем ближайший сервер в "восточном" центре обработки данных,
// затем сервер в "западном" центре обработки данных, и, наконец,
// возвращаемся к предпочтению без набора тегов
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east';
$uri .= '&readPreferenceTags=dc:west';
$uri .= '&readPreferenceTags=';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));
?>

Пример #2 Устанавливаем предпочтения чтения с синтаксисом массива для наборов тегов

<?php

$m = new MongoClient('mongodb://rs1.example.com,rs2.example.com', array(
    'replicaSet' => 'rs',
));

// Предпочитаем ближайший сервер без тегов
$m->setReadPreference(MongoClient::RP_NEAREST, array());

// Выбираем ближайший сервер в "восточном" дата-центре
$m->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east'),
));

// Предпочитаем ближайший сервер в "восточном" центре обработки данных, также используемый для отчетности,
// но используем сервер в "западном" центре обработки данных
$m->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));

// Предпочитаем ближайший сервер в "восточном" центре обработки данных,
// затем сервер в "западном" центре обработки данных, и, наконец,
// возвращаемся к предпочтению без набора тегов
$m->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east'),
    array('dc' => 'west'),
    array(),
));
?>


Гарантии записи

MongoDB предоставляет несколько различных способов выбора, как будет проходить запись в базу данных. Эти способы называются гарантии записи и охватывают все: от полного игнорирования всех ошибок до определения того, какие серверы должны подтвердить запись перед возвратом операции.

Когда для записи (например, с помощью MongoCollection::insert(), MongoCollection::update() и MongoCollection::remove()) задается параметр гарантий записи ("w"), драйвер отправляет запрос в MongoDB и piggy возвращает команду getLastError (GLE) одновременно с опцией гарантии записи. Сервер возвращает только в том случае, если условие гарантий записи прошло проверку, как выполненное или время ожидания запроса истекло (с параметром "wtimeout" по умолчанию установлено значение 10000 миллисекунд).

Внимание

Несмотря на то, что время ожидания команды getLastError истекло, данные, скорее всего, будут записаны на основной сервер и реплицированы на все вторичные серверы, как только они его догонят.

Типичные причины возникновения превышения времени ожидания - указание записи о проблеме, которая требует подтверждения с большего количества серверов, чем доступно в данный момент.

При использовании подтвержденных записей и сбоя набора реплик, драйвер автоматически отключается от основного сервера, выдает исключение и пытается найти новый основной на следующей операции (ваше приложение должно решить, следует ли повторить операцию на новый основной сервер).

При использовании неподтвержденных записей (w=0) и при сбое набора реплик, драйвер не сможет узнать об изменении, поэтому он продолжит работу и молча прекратит запись.

Гарантии записи по умолчанию для MongoClient - 1: подтверждение операций записи.

Доступные гарантии записи
Гарантии записи | Значение | Описание
w=0 | Не подтвержден | За записью не последует вызов GLE, поэтому она не проверяется ("выстрели и забудь")
w=1 | Подтвержден | Запись будет подтверждена сервером (основной в конфигурации набора реплик)
w=N | Набор реплик подтвержден | Запись будет подтверждена основным сервером и реплицирована на N-1 вторичных серверов.
w=majority | Подтвержден большинством | Запись будет подтверждена большинством наборов реплик (включая основной). Это специальная зарезервированная строка.
w=<tag set> | Набор меток для набора реплик подтвержден | Запись будет подтверждена всеми членами набора меток.
j=true | Журналируемый | Запись будет подтверждена первичным сервером и журнал будет записан на диск

Использование гарантий записи

Каждый из методов, вызывающих запись (MongoCollection::insert(), MongoCollection::update(), MongoCollection::remove() и MongoCollection::batchInsert()), позволяет использовать необязательный аргумент для отправки набора параметров в MongoDB сервер. С этим массивом опций вы можете установить гарантии записи, как показано в следующем примере:

Пример #1 Передача гарантий записи в запись

<?php
// Устанавливаем w=0 для insert:
$collection->insert($someDoc, array("w" => 0));

// Устанавливаем w=majority для update:
$collection->update($someDoc, $someUpdates, array("w" => "majority"));

// Устанавливаем w=5 и j=true для remove:
$collection->remove($someDoc, array("w" => 5, "j" => true));

// Устанавливаем w="AllDCs" для batchInsert:
$collection->batchInsert(array($someDoc1, $someDoc2), array("w" => "AllDCs"));
?>

Помимо установки гарантий записи для каждой операции в качестве аргумента опции, также можно установить гарантии записи по умолчанию различными способами.

Первый способ - через строку подключения. Строка подключения принимает параметры journal, w и wTimeoutMS:

Пример #2 Гарантии записи в строке подключения

<?php
$m = new MongoClient("mongodb://localhost/?journal=true&w=majority&wTimeoutMS=20000");
?>

Начиная с версии 1.5 драйвера также можно вызывать MongoDB::setWriteConcern() и MongoCollection::setWriteConcern(), чтобы установить гарантии записи по умолчанию для всех операций, созданных из этого конкретного объекта MongoDB или MongoCollection:

Пример #3 MongoDB::setWriteConcern и MongoCollection::setWriteConcern

<?php
$m = new MongoClient("mongodb://localhost/");
$d = $m->demoDb;
$c = $d->demoCollection;

// Устанавливаем w=3 на объекте базы данных с таймаутом 25000 мс
$d->setWriteConcern(3, 25000);

// Устанавливаем w=majority на объекте коллекции без изменения времени ожидания
$c->setWriteConcern("majority");
?>

Неподтвержденные записи

Не требуя от сервера подтверждения записи, запись может быть выполнена очень быстро, но вы не будете знаеть, действительно ли запись удалась. Запись может завершиться неудачей по ряду причин: если есть проблемы с сетью, если сервер базы данных вышел из строя, или если запись была просто недействительной (например, запись в системную коллекцию или ошибки дублированного ключа).

При разработке всегда следует использовать подтвержденные записи (для защиты от непреднамеренных ошибок, таких как синтаксические ошибки, недопустимые операторы, ошибки дублирующихся ключей и т.д.). В производстве неподтвержденные записи могут использоваться для "незначительных" данных. Незначительные данные различаются в зависимости от приложения, но, как правило, это автоматические (вместо сгенерированных пользователем) данные, таких как отслеживание кликов или местоположения GPS, где вы можете получать тысячи записей в секунду.

Настоятельно рекомендуется выполнять подтвержденную запись в конце серии неподтвержденных записей. Это не приведет к слишком большим потерям производительности, но все же позволит вам отследить любые ошибки, которые могли произойти.

Пример #4 Неподтвержденные гарантии записи, сопровождаемые подтверждением записи

<?php
$collection->insert($someDoc, array("w" => 0));
$collection->update($criteria, $newObj, array("w" => 0));
$collection->insert($somethingElse, array("w" => 0));
try {
    $collection->remove($something, array("w" => 1));
} catch(MongoCursorException $e) {
    /* Обрабатываем исключение.. */
    /* Здесь мы должны выполнить запросы find() по идентификаторам,
    сгенерированным для $thingElse и $someDoc, чтобы убедиться,
    что они записаны в базу данных, и попытаться выяснить, где в цепочке что-то произошло */
}
?>

Если последняя запись выдает исключение, вы будете знать, что есть проблема с вашей базой данных.

Подтвержденные записи

Этот тип операций записи гарантирует, что база данных приняла операцию записи, прежде чем вернуть успешное выполнение. Если запись не удалась, она выдаст исключение MongoCursorException с объяснением ошибки. Поведение MongoClient по умолчанию - подтверждение записи (w=1).

Можно указать, сколько членов набора реплик должно подтвердить запись (т.е. реплицировать ли ее) до того, как запись будет признана подтвержденной и операция вернет успешное выполнение.

Пример #5 Подтвержденные записи

<?php
// Принудительное подтверждение только от основного сервера
$collection->insert($doc, array("w" => 1));

// Принудительное подтверждение от основного и еще одного
// члена набора реплик
$collection->insert($doc, array("w" => 2));

// Принудительное подтверждение от основного и шести других
// членов набора реплик (вы, вероятно, никогда не должны делать так):
$collection->insert($doc, array("w" => 7));
?>

Имейте в виду, необходимо тщательно выбирать ваши гарантии записи. Если у вас есть набор реплик с 5 участниками, и вы выбираете гарантии записи 4, вы рискуете заблокировать запись навсегда, когда один из членов набора реплик выйдет из строя на техническое обслуживание или произойдет временное отключение сети.

Внимание

Передача строкового значения для гарантий записи имеет особое значение (Набор меток для набора реплик подтвержден). Пожалуйста, будьте осторожны, НЕ используйте строковые значения для чисел (т.е. array("w" => "1")), так как он будет рассматриваться, как имя набора тегов.

Записи, подтвержденные большинством

Использование особой опции majority гарантий записи - это рекомендуемый способ записи, необходимый для выживания после апокалипсиса, поскольку он гарантирует, что большая часть вашего набора реплик будет иметь запись и, следовательно, будет гарантированно выдерживать все обычные сценарии подозрительных сбоев.

Пример #6 Записи, подтвержденные большинством

<?php
$collection->insert($someDoc, array("w" => "majority"));
?>

Журналируемые записи

При подключении к реплике задайте гарантии записи по умолчанию только для того, чтобы основной сервер подтвердил запись. Однако существует окно 100 мс, пока запись не будет занесена в журнал и записана на диск. Можно принудительно записать запись в журнал перед подтверждением записи, установив опцию j:

Пример #7 Подтвержденные и журналируемые записи

Принудительное заполнение журнала

<?php
$options = array(
    "w" => 1,
    "j" => true,
);
try {
    $collection->insert($document, $options);
} catch(MongoCursorException $e) {
    /* обрабатываем исключение */
}
?>

Смотрите также

  • » Документация по гарантиям записи MongoDB

Список изменений

Версия | Описание
1.3.0 | В MongoClient были введены по умолчанию подтвержденные записи. Устаревшим значением по умолчанию в Mongo были неподтвержденные записи.
1.3.0 | Опция "safe" записи устарела и недоступна для нового класса MongoClient. Вместо этого используйте опцию "w".


Карта сопоставления SQL в Mongo

Это специфичная для PHP версия карты сопоставления » SQL-Mongo в документации.

Оператор SQL | Оператор Mongo Query Language
CREATE TABLE USERS (a Number, b Number) | Подразумевает или использует MongoDB::createCollection().
INSERT INTO USERS VALUES(1,1) | $db->users->insert(array("a" => 1, "b" => 1));
SELECT a,b FROM users | $db->users->find(array(), array("a" => 1, "b" => 1));
SELECT * FROM users WHERE age=33 | $db->users->find(array("age" => 33));
SELECT a,b FROM users WHERE age=33 | $db->users->find(array("age" => 33), array("a" => 1, "b" => 1));
SELECT a,b FROM users WHERE age=33 ORDER BY name | $db->users->find(array("age" => 33), array("a" => 1, "b" => 1))->sort(array("name" => 1));
SELECT * FROM users WHERE age>33 | $db->users->find(array("age" => array('$gt' => 33)));
SELECT * FROM users WHERE age<33 | $db->users->find(array("age" => array('$lt' => 33)));
SELECT * FROM users WHERE name LIKE "%Joe%" | $db->users->find(array("name" => new MongoRegex("/Joe/")));
SELECT * FROM users WHERE name LIKE "Joe%" | $db->users->find(array("name" => new MongoRegex("/^Joe/")));
SELECT * FROM users WHERE age>33 AND age<=40 | $db->users->find(array("age" => array('$gt' => 33, '$lte' => 40)));
SELECT * FROM users ORDER BY name DESC | $db->users->find()->sort(array("name" => -1));
CREATE INDEX myindexname ON users(name) | $db->users->ensureIndex(array("name" => 1));
CREATE INDEX myindexname ON users(name,ts DESC) | $db->users->ensureIndex(array("name" => 1, "ts" => -1));
SELECT * FROM users WHERE a=1 and b='q' | $db->users->find(array("a" => 1, "b" => "q"));
SELECT * FROM users LIMIT 20, 10 | $db->users->find()->limit(10)->skip(20);
SELECT * FROM users WHERE a=1 or b=2 | $db->users->find(array('$or' => array(array("a" => 1), array("b" => 2))));
SELECT * FROM users LIMIT 1 | $db->users->find()->limit(1);
EXPLAIN SELECT * FROM users WHERE z=3 | $db->users->find(array("z" => 3))->explain()
SELECT DISTINCT last_name FROM users | $db->command(array("distinct" => "users", "key" => "last_name"));
SELECT COUNT(*y) FROM users | $db->users->count();
SELECT COUNT(*y) FROM users where AGE > 30 | $db->users->find(array("age" => array('$gt' => 30)))->count();
SELECT COUNT(AGE) from users | $db->users->find(array("age" => array('$exists' => true)))->count();
UPDATE users SET a=1 WHERE b='q' | $db->users->update(array("b" => "q"), array('$set' => array("a" => 1)));
UPDATE users SET a=a+2 WHERE b='q' | $db->users->update(array("b" => "q"), array('$inc' => array("a" => 2)));
DELETE FROM users WHERE z="abc" | $db->users->remove(array("z" => "abc"));


Подключения

Содержание

  • Подключение по SSL
  • Аутентификация
  • Наборы реплик
  • Шардинг
  • Поддержка доменных сокетов
  • Постоянные соединения (версия 1.3.0+)
  • Пул соединений (*только* версии 1.2.0-1.2.12)
  • Постоянные соединения вручную (*только* версии до 1.1.4)

Подключение к MongoDB может быть выполнено просто с помощью new MongoClient, но существует множество дополнительных параметров. Документация к MongoClient::__construct() охватывает все параметры API, в этом разделе будет рассмотрено более детально подключение, а также советы для практического использования.


Подключение по SSL

Драйвер поддерживает подключение » MongoDB по SSL и может дополнительно использовать параметры контекста потока SSL для предоставления подробной информации, такой как проверка сертификатов по определенной цепочке или проверка подлинности » MongoDB с использованием сертификатов X.509.

Пример #1 Подключение к MongoDB по SSL

<?php
$mc = new MongoClient("mongodb://server1", array("ssl" => true));
?>

Пример #2 Подключение к MongoDB по SSL, проверяя подлинность сертификата:

<?php
$SSL_DIR = "/vagrant/certs";
$SSL_FILE = "CA_Root_Certificate.pem";

$ctx = stream_context_create(array(
    "ssl" => array(
        /* Удостоверяющий Центр, которым должен быть удостоверен сертификат */
        "cafile"            => $SSL_DIR . "/" . $SSL_FILE,

        /* Отключаем самоподписанные сертификаты */
        "allow_self_signed" => false,

        /* Проверяем сертификат по корневому сертификату Удостоверяющего Центра. */
        "verify_peer"       => true, /* По умолчанию false до PHP 5.6 */

        /* Проверяем имя партнера (например, проверка имени хоста) */
        /* Будет использовать имя хоста, используемое для подключения к узлу */
        "verify_peer_name"  => true,

        /* Проверяем, что срок действия сертификата сервера не истек */
        "verify_expiry"     => true, /* Доступно только в PHP-драйвере MongoDB */
    ),
);

$mc = new MongoClient(
    "mongodb://server1",
    array("ssl" => true),
    array("context" => $ctx)
);
?>

Замечание:

Параметр "verify_peer_name" был добавлен в PHP 5.6.0. В версии 1.6.5, функция была добавлена в драйвер, поэтому он работает также с PHP 5.3 и 5.4.

Пример #3 Подключение к MongoDB с клиентским сертификатом

<?php
$SSL_DIR  = "/vagrant/certs";
$SSL_FILE = "CA_Root_Certificate.pem";

$MYCERT   = "/vagrant/certs/ca-signed-client.pem";

$ctx = stream_context_create(array(
    "ssl" => array(
        "local_cert"        => $MYCERT,
        /* Если сертификат, был закодирован паролем, необходимо указать его здесь */
        "passphrase"        => "My Passphrase for the local_cert",

        /* При желании дополнительно проверьте */
        "cafile"            => $SSL_DIR . "/" . $SSL_FILE,
        "allow_self_signed" => false,
        "verify_peer"       => true,
        "verify_peer_name"  => true,
        "verify_expiry"     => true,
    ),
));

$mc = new MongoClient(
    "mongodb://server1/?ssl=true",
    array(),
    array("context" => $ctx)
);
?>

Пример #4 Аутентификация по сертификатам X.509

Имя пользователя - certificate subject из X.509, можно получить следующим образом:

openssl x509 -in /vagrant/certs/ca-signed-client.pem -inform PEM -subject -nameopt RFC2253
<?php
$ctx = stream_context_create( array(
    "ssl" => array(
        "local_cert" => "/vagrant/certs/ca-signed-client.pem",
    )
) );

$mc = new MongoClient(
    'mongodb://username@server1/?authSource=$external&authMechanism=MONGODB-X509&ssl=true',
    array(),
    array("context" => $ctx)
);
?>

Где username - это атрибут subject сертификата.

Список изменений

Версия | Описание
1.5.0 | Добавлена поддержка аутентификации X.509.
1.4.0 | Добавлена поддержка подключения к MongoDB с поддержкой SSL.


Аутентификация

Если MongoDB запускается с опциями --auth или --keyFile, необходимо пройти аутентификацию, прежде чем выполнять какие-либо операции с драйвером. Можно аутентифицировать соединение, указав имя пользователя и пароль в URI или указать параметры "username" и "password" в MongoClient::__construct().

Пример #1 Аутентификация в базе данных "admin"

<?php
// Указание имени пользователя и пароля в URI соединения (предпочтительно)
$m = new MongoClient("mongodb://${username}:${password}@localhost");

// Указание имени пользователя и пароля через массив параметров (альтернатива)
$m = new MongoClient("mongodb://localhost", array("username" => $username, "password" => $password));
?>

По умолчанию драйвер будет проходить аутентификацию в базе данных admin. Можно аутентифицироваться в другой базе данных, указав ее либо в URI соединения, либо в параметре "db" для MongoClient::__construct().

Пример #2 Аутентификация в прочих базах данных

<?php
// Указание базы данных в URI соединения (предпочтительно)
$m = new MongoClient("mongodb://${username}:${password}@localhost/myDatabase");

// Указание базы данных через массив параметров (альтернатива)
$m = new MongoClient("mongodb://${username}:${password}@localhost", array("db" => "myDatabase"));
?>

Если подключение разорвано, драйвер автоматически попытается его восстановить и подтвердить вашу подлинность.


Наборы реплик

Чтобы подключиться к набору реплик, укажите один или несколько серверов и используйте параметр "replicaSet". Несколько серверов могут быть разделены запятой.

Пример #1 Списки ReplicaSet

<?php
// Использование нескольких серверов (предпочтительно)
$m = new MongoClient("mongodb://rs1.example.com:27017,rs2.example.com:27017/?replicaSet=myReplSetName");

// Использование одного сервера
$m = new MongoClient("mongodb://rs1.example.com:27017", array("replicaSet" => "myReplSetName"));

// Использование нескольких серверов
$m = new MongoClient("mongodb://rs1.example.com:27017,rs2.example.com:27017", array("replicaSet" => "myReplSetName"));
?>

Драйвер PHP запросит перечисленные серверы базы данных, чтобы определить основной. До тех пор, пока он может подключиться хотя бы к одному серверу из списка и найти основной, подключение будет успешным. Если он не может установить соединение ни с одним из перечисленных серверов или не может найти основной, возникнет исключение MongoConnectionException.

Подсказка

Необходимо всегда предоставлять список более чем одному члену ReplicaSet. Для обеспечения максимальной доступности необходимо использовать хотя бы один сервер из каждого вашего центра обработки данных.

Внимание

Имена хостов, которые указываются в списке подключения, должны совпадать с именами хостов в конфигурации набора реплик. Это связано с тем, что драйвер использует имена хостов только в конфигурации набора реплик для создания хэша для своих постоянных соединений.

Например, если в списке используется IP-адрес, а для набора реплик заданы имена хостов, драйвер откажется от подключений из списка, которые отличаются от канонических имен хостов, указанных в наборе реплик. По сути, эти неканонические соединения в списке будут воссозданы при каждом запросе, что значительно уменьшит выгоду от использования постоянных соединений.

Внимание

Драйвер не поддерживает подключение к различным наборам реплик с одинаковым именем. Это выходит за рамки сценария, поэтому убедитесь, что у вас есть отдельные имена для каждого из ваших наборов реплик. Это также означает, что вы не можете сделать это:

Пример #2 Неправильное дублирование имени набора реплик

<?php
$m = new MongoClient("mongodb://devserver1,devserver2,devserver3/?replicaSet=repset");
$m = new MongoClient("mongodb://prodserver1,prodserver2,prodserver3/?replicaSet=repset");
?>

Вместо этого вам нужно задать два разных имени для ваших наборов реплик:

Пример #3 Правильное использование двух имен набора реплик

<?php
$m = new MongoClient("mongodb://devserver1,devserver2,devserver3/?replicaSet=devset");
$m = new MongoClient("mongodb://prodserver1,prodserver2,prodserver3/?replicaSet=prodset");
?>

Если основной сервер становится недоступным, будут проведены выборы, и вторичный будет назначен на роль основного (если не может быть установлено большинство голосов). В течение этого времени (» 20-60 секунд) соединение не сможет выполнять какие-либо операции записи, и попытки сделать это приведут к исключению. Запросы к вторичным серверам все еще смогут выполнять чтение.

Замечание:

По умолчанию, в предпочтениях чтения установлено чтение только с основного сервера. Во время процесса выборов, основной сервер отсутствует, поэтому чтение не удастся.

Рекомендуется использовать предпочтения чтения MongoClient::RP_PRIMARY_PREFERRED для приложений, которым требуется высокая доступность для чтения, тогда чтение будет выполняться на вторичных серверах, когда основной будет недоступен.

После выбора основного сервера попытка выполнить чтение или запись позволит драйверу обнаружить его. Драйвер назначит его своим основным подключением к базе данных и продолжит нормальную работу.

Состояние вторичного сервера проверяется каждые 5 секунд (настраивается с помощью mongo.ping_interval) или когда следующая операция происходит через 5 секунд. Он также перепроверит конфигурацию, когда у драйвера возникнут проблемы с подключением к серверу.

Отказы набора реплик проверяются каждые 60 секунд (настраивается с помощью mongo.is_master_interval) и каждый раз, когда происходит сбой операции записи при использовании подтвержденных записей.

Предостережение

Вторичные сервера могут отставать от основного в операциях, поэтому ваше приложение должно иметь возможность обрабатывать устаревшие данные при использовании предпочтений чтения, отличных от MongoClient::RP_PRIMARY.

Для получения дополнительной информации о наборах реплик смотрите » документацию.

Смотрите также

  • Предпочтения чтения
  • Гарантии записи

Список изменений

Версия | Описание
1.0.9 | Добавлена поддержка подключения к ReplicaSet и автоматического перехода на другой ресурс.


Шардинг

Чтобы подключиться к кластеру сегментов, укажите адрес одного или нескольких экземпляров mongos в строке подключения. Несколько серверов могут быть разделены запятой.

<?php
// Использование одного сервера
$m = new MongoClient("mongodb://mongos1.example.com:27017");

// Использование нескольних серверов
$m = new MongoClient("mongodb://mongos1.example.com:27017,mongos2.example.com:27017");
?>

Независимо от того, является ли каждый шард автономным сервером mongod или полным набором реплик, процесс подключения драйвера одинаков. Вся связь с базой данных будет проходить через mongos.

Для получения дополнительной информации о шардинге в MongoDB смотрите » документацию.


Поддержка доменных сокетов

MongoDB имеет встроенную поддержку для подключения через Unix Domain Sockets и открывает сокет при запуске. По умолчанию сокет находится в /tmp/mongodb-<port>.sock.

Чтобы подключиться к файлу сокета, укажите путь в строке подключения MongoDB:

<?php
$m = new MongoClient("mongodb:///tmp/mongo-27017.sock");
?>

Для аутентификации в базе данных (как описано выше) с помощью файла сокета, необходимо указать порт 0, чтобы анализатор строки соединения мог определить конец пути сокета. Кроме того, вы можете использовать параметры в конструкторе.

<?php
$m = new MongoClient("mongodb://username:password@/tmp/mongo-27017.sock:0/foo");
?>

Список изменений

Версия | Описание
1.0.9 | Добавлена поддержка доменных сокетов Unix.


Постоянные соединения (версия 1.3.0+)

Все версии драйвера, начиная с 1.3.0, используют постоянные соединения, чтобы минимизировать количество подключений к каждому серверу базы данных. Эти соединения сохраняются рабочим процессом PHP и могут использоваться повторно между несколькими запросами.

Перед подключением к серверу базы данных, драйвер создаст хеш для соединения на основе своего хоста, порта, имени набора реплик (если есть), любых учетных данных аутентификации (например, имени пользователя, пароля, базы данных) и идентификатора процесса. Если для этого хеша уже существует соединение, оно будет использоваться вместо создания нового соединения, связанного с этим хешем. MongoClient::getConnections() может использоваться для получения информации о каждом постоянном соединении. Рассмотрим следующий пример:

<?php

$m1 = new MongoClient('mongodb://localhost');
$m2 = new MongoClient('mongodb://localhost');
$m3 = new MongoClient('mongodb://user:pw@localhost');
$m4 = new MongoClient('mongodb://127.0.0.1');
$m5 = new MongoClient('mongodb://rs1.local:30017,rs2.local:30018/?replicaSet=rs');
$m6 = new MongoClient('mongodb://sharding.local:40017');

foreach (MongoClient::getConnections() as $conn) {
    echo $conn['hash'], "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

localhost:27017;-;X;15487
localhost:27017;-;admin/user/c56c...8bbc;15487
127.0.0.1:27017;-;X;15487
rs1.local:30017;rs;X;15487
rs2.local:30018;rs;X;15487
sharding.local:40017;-;X;15487

В этом примере $m1 и $m2 имеют одинаковый хэш и имеют постоянное соединение. Соединения друг с другом экземпляра MongoClient для хеширования уникальных значений и использования их собственных сокетов. Обратите внимание, что у "localhost" и "127.0.0.1" разный хэш; Разрешение DNS не учитывается.


Пул соединений (*только* версии 1.2.0-1.2.12)

Замечание:

Этот раздел больше не относится к версии 1.3.0 драйвера и служит только исторической справкой о том, как пулы работали.

В последних версиях драйвера больше нет концепции объединения в пул, и для каждого типа подключения (ReplicaSet / standalone / mongos) для каждой комбинации учетных данных будет поддерживаться только одно подключение.

Создание соединений - одна из самых тяжелых вещей, которую делает драйвер. Для правильной настройки соединения может потребоваться сотни миллисекунд, даже в быстрой сети. Таким образом, драйвер пытается минимизировать количество новых соединений, созданных путем повторного использования соединений из пула.

Когда пользователь создает новый экземпляр MongoClient, все необходимые соединения будут взяты из их пулов (для наборов реплик может потребоваться несколько соединений, по одному для каждого члена набора). Когда экземпляр MongoClient выходит из области видимости, соединения будут возвращены в пул. Когда процесс PHP завершится, все соединения в пулах будут закрыты.

"Почему у меня так много открытых соединений?"

Пулы соединений могут генерировать большое количество соединений. Это ожидается, и, используя небольшую арифметику, вы можете выяснить, сколько соединений будет создано. Существует три фактора, определяющих общее количество соединений:

  • connections_per_pool

    Каждый пул соединений создает по умолчанию неограниченное количество соединений. Можно предположить, что это проблема: если он может создавать неограниченное количество соединений, не может ли он создать тысячи, и на сервере не хватит файловых дескрипторов? На практике это маловероятно, поскольку неиспользуемые соединения возвращаются в пул для последующего использования, поэтому будущие соединения будут использовать то же соединение, а не создавать новое. Если вы не создадите тысячи соединений одновременно, не выходя за рамки, количество открытых соединений должно оставаться на разумном количестве.

    Вы можете увидеть, сколько подключений у вас в пуле, используя функцию MongoPool::info(). Добавьте поля "in use" и "in pool" для данного сервера. Это общее количество соединений для этого пула.

  • pools_per_process

    Каждый адрес сервера MongoDB, к которому вы подключаетесь, получает свой пул подключений. Например, если вашим локальным именем хоста является "example.net", при подключении к "example.net:27017", "localhost: 27017" и "/tmp/mongodb-27017.sock" будут созданы три пула соединений. Вы можете увидеть, сколько пулов соединений вы открыли, используя MongoPool::info().

  • processes

    Каждый процесс PHP имеет отдельный набор пулов. PHP-FPM и Apache обычно создают от 6 до пары десятков рабочих PHP-процессов. Проверьте свои настройки, чтобы увидеть, какое максимальное количество PHP-процессов может быть запущено.

    Если вы используете PHP-FPM, подсчет количества соединений может быть сложным, потому что это вызовет больше процессов PHP-FPM под большой нагрузкой. Чтобы быть в безопасности, посмотрите на параметр max_children или добавьте spare_servers + start_servers (выберите любое большее число). Это будет указывать, сколько PHP-процессов (т.е. наборов пулов) необходимо планировать.

Три вышеупомянутые переменные можно перемножить, чтобы получить максимальное число ожидаемых соединений: connections_per_pool * pools_per_process * processes. Обратите внимание, что connections_per_pool может быть разным для разных пулов, так что connections_per_pool должен быть максимальным.

Например, предположим, что мы получаем 30 подключений на пул, 10 пулов на процесс PHP и 128 процессов PHP. Тогда мы можем ожидать 38400 подключений с этой машины. Таким образом, мы должны установить лимит файловых дескрипторов этой машины достаточно высоким, чтобы обрабатывать все эти соединения, или он может исчерпать файловые дескрипторы.

Для получения дополнительной информации о пуле соединений смотрите MongoPool.


Постоянные соединения вручную (*только* версии до 1.1.4)

Замечание:

Этот раздел не актуален для 1.2.0+. В 1.2.0+ соединения всегда постоянны и управляются автоматически драйвером. Если вы используете версию 1.2.x (а не 1.3.x или более позднюю), смотрите MongoPool для получения дополнительной информации о пуле.

Создание нового соединения к базе данных происходит очень медленно. Чтобы свести к минимуму количество соединений, которые вам нужно установить, вы можете использовать постоянные соединения. Постоянное соединение сохраняется в PHP, поэтому вы можете использовать одно и то же соединение для нескольких запросов.

Например, эта простая программа подключается к базе данных 1000 раз:

<?php

for ($i=0; $i<1000; $i++) {
  $m = new MongoClient();
}

?>

Выполнение займет приблизительно 18 секунд. Если мы изменим его, чтобы использовать постоянное соединение,

<?php

for ($i=0; $i<1000; $i++) {
  $m = new MongoClient("localhost:27017", array("persist" => "x"));
}

?>

... то, для выполнения требуется менее 0,02 секунды, поскольку выполняется только одно соединение с базой данных.

Постоянные соединения нуждаются в строке идентификатора (в приведенном выше примере это "x"), чтобы однозначно идентифицировать их. Для использования постоянного соединения имя хоста, порт, постоянная строка и учетные данные для аутентификации (имя пользователя, пароль и база данных, если они указаны) должны соответствовать существующему постоянному соединению. В противном случае будет создано новое соединение с этой идентифицирующей информацией.

Постоянные соединения настоятельно рекомендуются и должны всегда использоваться, если нет веских причин не делать этого. Большинство причин, по которым они не рекомендуются для реляционных баз данных, не имеют отношения к MongoDB.


Параметры контекста потока

Модуль PHP MongoDB обеспечивает поддержку контекста потока с использованием контекста mongodb.

Контекст потока должен быть создан с помощью stream_context_create() и передан в конструктор MongoClient::__construct() до того, как будет установлено фактическое соединение с MongoDB. Невозможно применить контекст потока к уже созданным потокам.

Дополнительные контекстные параметры и параметры, такие как ssl и параметры уведомлений, также поддерживаются.

Параметры контекста MongoDB предоставляют обширный интерфейс для регистрации сетевого трафика между драйвером и серверами MongoDB. Этот интерфейс может использоваться для обеспечения ведения журнала запросов, профилировщика, отладчиков или чего-либо, что может потребоваться для проверки лежащих в основе команд и параметров протокола.

Смотрите также

  • Опции контекста SSL
  • Контекстные опции сокета
  • Параметры контекста

Содержание

  • log_cmd_delete — Callback-функция при удалении документов
  • log_cmd_insert — Callback-функция при вставке документов
  • log_cmd_update — Callback-функция при обновлении документов
  • log_getmore — Callback-функция, при получении пакета курсоров
  • log_killcursor — Callback-функция, при выполнении операций KILLCURSOR
  • log_reply — Callback-функция, при чтении ответа MongoDB
  • log_write_batch — Callback-функция, при записи пакетов


Callback-функция при удалении документов

  • « Параметры контекста потока
  • log_cmd_insert »
  • PHP Manual
  • Параметры контекста потока
  • Callback-функция при удалении документов

log_cmd_delete

(PECL mongo >= 1.5.0)

log_cmd_delete — Callback-функция при удалении документов

Описание

log_cmd_delete ( array $server , array $writeOptions , array $deleteOptions , array $protocolOptions )

Функция типа callable, используемая опцией контекста log_cmd_delete, при удалении документов

Замечание:

Это не реальная функция, а прототип того, какой она должна быть.

Список параметров

server

Массив, содержащий основную информацию о выбранном сервере.

ключ | значение
hash | хэш сервера, например: localhost:27017;-;X;56052
type | Тип узла (primary/secondary/mongos/arbiter): 2
max_bson_size | максимальный размер BSON, который этот узел поддерживает: 16777216
max_message_size | Максимальный размер сообщения, который этот узел поддерживает: 48000000
request_id | Идентификатор запроса для этого сообщения: 42

writeOptions

key | value
ordered | булево, если операция (в случае пакетных операций) должна выполняться последовательно (ordered=true)
writeConcern | Массив опций контроля записи (writeConcern, смотри ниже)
значения массива writeConcern
ключ | значение
fsync | булево, сбрасывать на диск перед запуском
j | булево, записывать в журнал перед запуском
wtimeout | целое число, миллисекунды, максимальное время, которое основной сервер (primary) ждет подтверждение репликации
w | integer=число серверов, или string=тэг-репликации

deleteOptions

ключ | значение
limit | Целое число, 1 или 0. Если 0, то удаляются все подходящие документы.
q | Массив, критерии поиска

protocolOptions

key | value
message_length | Общий размер в байтах закодированного сообщения, отправляемого по сети
request_id | Идентификатор для сообщения: 42
namespace | Пространство имен MongoDB , используемого для сообщений протокола dbname.collectionname

Список изменений

Версия | Описание
1.5.0 | Доступна только при соединении с MongoDB 2.6.0+


Callback-функция при вставке документов

  • « log_cmd_delete
  • log_cmd_update »
  • PHP Manual
  • Параметры контекста потока
  • Callback-функция при вставке документов

log_cmd_insert

(PECL mongo >= 1.5.0)

log_cmd_insert — Callback-функция при вставке документов

Описание

log_cmd_insert ( array $server , array $document , array $writeOptions , array $protocolOptions )

Функция типа callable, используемая опцией контекста log_cmd_insert, при вставке документа

Замечание:

Это не реальная функция, а прототип того, какой она должна быть.

Список параметров

server

Массив, содержащий основную информацию о выбранном сервере.

ключ | значение
hash | хэш сервера, например: localhost:27017;-;X;56052
type | Тип узла (primary/secondary/mongos/arbiter): 2
max_bson_size | максимальный размер BSON, который этот узел поддерживает: 16777216
max_message_size | Максимальный размер сообщения, который этот узел поддерживает: 48000000
request_id | Идентификатор запроса для этого сообщения: 42

document

Подготовленный к вставке документ

writeOptions

key | value
ordered | булево, если операция (в случае пакетных операций) должна выполняться последовательно (ordered=true)
writeConcern | Массив опций контроля записи (writeConcern, смотри ниже)
значения массива writeConcern
ключ | значение
fsync | булево, сбрасывать на диск перед запуском
j | булево, записывать в журнал перед запуском
wtimeout | целое число, миллисекунды, максимальное время, которое основной сервер (primary) ждет подтверждение репликации
w | integer=число серверов, или string=тэг-репликации

protocolOptions

key | value
message_length | Общий размер в байтах закодированного сообщения, отправляемого по сети
request_id | Идентификатор для сообщения: 42
namespace | Пространство имен MongoDB , используемого для сообщений протокола dbname.collectionname

Список изменений

Версия | Описание
1.5.0 | Доступна только при соединении с MongoDB 2.6.0+


Callback-функция при обновлении документов

  • « log_cmd_insert
  • log_getmore »
  • PHP Manual
  • Параметры контекста потока
  • Callback-функция при обновлении документов

log_cmd_update

(PECL mongo >= 1.5.0)

log_cmd_update — Callback-функция при обновлении документов

Описание

log_cmd_update ( array $server , array $writeOptions , array $updateOptions , array $protocolOptions )

Функция типа callable, используемая опцией контекста log_cmd_update, при обновлении документа

Замечание:

Это не реальная функция, а прототип того, какой она должна быть.

Список параметров

server

Массив, содержащий основную информацию о выбранном сервере.

ключ | значение
hash | хэш сервера, например: localhost:27017;-;X;56052
type | Тип узла (primary/secondary/mongos/arbiter): 2
max_bson_size | максимальный размер BSON, который этот узел поддерживает: 16777216
max_message_size | Максимальный размер сообщения, который этот узел поддерживает: 48000000
request_id | Идентификатор запроса для этого сообщения: 42

writeOptions

key | value
ordered | булево, если операция (в случае пакетных операций) должна выполняться последовательно (ordered=true)
writeConcern | Массив опций контроля записи (writeConcern, смотри ниже)
значения массива writeConcern
ключ | значение
fsync | булево, сбрасывать на диск перед запуском
j | булево, записывать в журнал перед запуском
wtimeout | целое число, миллисекунды, максимальное время, которое основной сервер (primary) ждет подтверждение репликации
w | integer=число серверов, или string=тэг-репликации

updateOptions

ключ | значение
multi | Тип Boolean. TRUE, если допустимо обновление всех подходящих записей
upsert | Тип Boolean. TRUE, если документ должен быть создан, когда поиск по критерию завершился неудачей
q | Массив, критерии поиска
u | Массив, новые объекты/модификации

protocolOptions

key | value
message_length | Общий размер в байтах закодированного сообщения, отправляемого по сети
request_id | Идентификатор для сообщения: 42
namespace | Пространство имен MongoDB , используемого для сообщений протокола dbname.collectionname

Список изменений

Версия | Описание
1.5.0 | Доступна только при соединении с MongoDB 2.6.0+


Callback-функция, при получении пакета курсоров

  • « log_cmd_update
  • log_killcursor »
  • PHP Manual
  • Параметры контекста потока
  • Callback-функция, при получении пакета курсоров

log_getmore

(PECL mongo >= 1.5.0)

log_getmore — Callback-функция, при получении пакета курсоров

Описание

log_getmore ( array $server , array $info )

callable функция, используемая контекстной опцией log_getmore, при выполнении операции GET_MORE.

Замечание:

Это не настоящая функция, а всего лишь прототип, какой должна быть функция.

Список параметров

server

Массив, содержащий основную информацию о выбранном сервере.

ключ | значение
hash | хэш сервера, например: localhost:27017;-;X;56052
type | Тип узла (primary/secondary/mongos/arbiter): 2
max_bson_size | максимальный размер BSON, который этот узел поддерживает: 16777216
max_message_size | Максимальный размер сообщения, который этот узел поддерживает: 48000000
request_id | Идентификатор запроса для этого сообщения: 42

info

ключ | значение
request_id | целое число, идентификатор запроса драйвера
cursor_id | целое число, идентификатор курсора используется для получения дополнительных данных
batch_size | целое число, максимальное количество запрашиваемых документов


Callback-функция, при выполнении операций KILLCURSOR

  • « log_getmore
  • log_reply »
  • PHP Manual
  • Параметры контекста потока
  • Callback-функция, при выполнении операций KILLCURSOR

log_killcursor

(PECL mongo >= 1.5.0)

log_killcursor — Callback-функция, при выполнении операций KILLCURSOR

Описание

log_killcursor ( array $server , array $info )

callable функция, используемая контекстной опцией log_killcursor, при чтении killcursor из MongoDB.

Замечание:

Это не настоящая функция, а всего лишь прототип, какой должна быть функция.

Список параметров

server

Массив, содержащий основную информацию о выбранном сервере.

ключ | значение
hash | хэш сервера, например: localhost:27017;-;X;56052
type | Тип узла (primary/secondary/mongos/arbiter): 2
max_bson_size | максимальный размер BSON, который этот узел поддерживает: 16777216
max_message_size | Максимальный размер сообщения, который этот узел поддерживает: 48000000
request_id | Идентификатор запроса для этого сообщения: 42

info

ключ | значение
cursor_id | целое число, идентификатор курсора для завершения


Callback-функция, при чтении ответа MongoDB

  • « log_killcursor
  • log_write_batch »
  • PHP Manual
  • Параметры контекста потока
  • Callback-функция, при чтении ответа MongoDB

log_reply

(PECL mongo >= 1.5.0)

log_reply — Callback-функция, при чтении ответа MongoDB

Описание

log_reply ( array $server , array $messageHeaders , array $operationHeaders )

callable функция, используемая контекстной опцией log_reply, при чтении ответа из MongoDB.

Замечание:

Это не настоящая функция, а всего лишь прототип, какой должна быть функция.

Список параметров

server

Массив, содержащий основную информацию о выбранном сервере.

ключ | значение
hash | хэш сервера, например: localhost:27017;-;X;56052
type | Тип узла (primary/secondary/mongos/arbiter): 2
max_bson_size | максимальный размер BSON, который этот узел поддерживает: 16777216
max_message_size | Максимальный размер сообщения, который этот узел поддерживает: 48000000
request_id | Идентификатор запроса для этого сообщения: 42

messageHeaders

ключ | значение
length | целое число, байты, длина ответа на сообщение
request_id | целое число, идентификатор запроса сервера
response_id | целое число, идентификатор запроса драйвера, на который это сообщение является ответом
opcode | целое число, идентификатор кода операции

operationHeaders

ключ | значение
flags | целое число, битовая маска флагов протокола
cursor_id | целое число, идентификатор курсора, созданного на сервере (0, если ни один не создан, или он устарел)
start | начальное смещение этого курсора
returned | целое число, сколько документов возвращено на этот раз

Смотрите также

  • » OP_REPLY определение в проводном протоколе


Callback-функция, при записи пакетов

  • « log_reply
  • Запись »
  • PHP Manual
  • Параметры контекста потока
  • Callback-функция, при записи пакетов

log_write_batch

(PECL mongo >= 1.5.0)

log_write_batch — Callback-функция, при записи пакетов

Описание

log_write_batch ( array $server , array $writeOptions , array $batch , array $protocolOptions )

callable функция, используемая контекстной опцией log_write_batch, при выполнении пакетной операции.

Замечание:

Это не настоящая функция, а всего лишь прототип, какой должна быть функция.

Список параметров

server

Массив, содержащий основную информацию о выбранном сервере.

ключ | значение
hash | хэш сервера, например: localhost:27017;-;X;56052
type | Тип узла (primary/secondary/mongos/arbiter): 2
max_bson_size | максимальный размер BSON, который этот узел поддерживает: 16777216
max_message_size | Максимальный размер сообщения, который этот узел поддерживает: 48000000
request_id | Идентификатор запроса для этого сообщения: 42

writeOptions

key | value
ordered | булево, если операция (в случае пакетных операций) должна выполняться последовательно (ordered=true)
writeConcern | Массив опций контроля записи (writeConcern, смотри ниже)
значения массива writeConcern
ключ | значение
fsync | булево, сбрасывать на диск перед запуском
j | булево, записывать в журнал перед запуском
wtimeout | целое число, миллисекунды, максимальное время, которое основной сервер (primary) ждет подтверждение репликации
w | integer=число серверов, или string=тэг-репликации

batch

Массив, фактическая пакетная операция.

protocolOptions

key | value
message_length | Общий размер в байтах закодированного сообщения, отправляемого по сети
request_id | Идентификатор для сообщения: 42
namespace | Пространство имен MongoDB , используемого для сообщений протокола dbname.collectionname

Список изменений

Версия | Описание
1.5.0 | Доступно только при подключении к MongoDB 2.6.0+


Запись

Обновление вложенных объектов

Предположим, мы хотим изменить имя автора комментария в этом документе:

{
    "_id" : ObjectId("4b06c282edb87a281e09dad9"),
    "content" : "this is a blog post.",
    "comments" :
    [
        {
            "author" : "Mike",
            "comment" : "I think that blah blah blah...",
        },
        {
            "author" : "John",
            "comment" : "I disagree."
        }
    ]
}
Для изменения внутреннего поля, мы используем $set (чтобы все остальные поля не были удалены!) с индексом комментария для изменения:
<?php

$blog->update($criteria, array('$set' => array("comments.1" => array("author" => "Jim"))));

?>

Позиционный оператор

Позиционный оператор $ полезен для обновления объектов, находящихся в массивах. Например, в приведенном выше примере предположим, что мы не знали индекс комментария, который нам нужно было изменить, просто нам нужно было изменить "John" на "Jim". Для этого мы можем использовать $.

<?php

$blog->update(
    array('comments.author' => 'John'),
    array('$set' => array('comments.$.author' => 'Jim')));

?>


Запросы

Распределение запросов к вторичным серверам

Все запросы (чтение и запись) отправляются только основному члену реплики, установленному по умолчанию. Это, однако, легко настраивается с помощью предпочтений чтения, которые позволяют вам установить некоторые общие предпочтения чтения (например, разрешить чтение c ближайшего вторичного сервера), а также предоставляют способы для целевого назначения сервера в конкретной стране, центре обработки данных или даже оборудовании, путем использования наборов тегов реплики.

Настройки чтения могут быть настроены на каждом уровне драйвера:

  • В качетве параметра строки запроса или параметра MongoClient::__construct()
  • Непосредственно в вызове MongoClient::setReadPreference()
  • На уровне базы данных с помощью MongoDB::setReadPreference()
  • На уровне коллекции с помощью MongoCollection::setReadPreference()
  • На уровне курсора с помощью MongoCursor::setReadPreference() или MongoCommandCursor::setReadPreference()
Каждый класс наследует настройку предпочтений чтения из "родительского" контекста.

Пример #1 Наследование предпочтений чтения от уровня базы данных до курсора

<?php
$db->setReadPreference(MongoClient::RP_SECONDARY_PREFERRED);
$c = $db->myCollection;

$cursor = $c->find();
?>

В этом примере запрос будет выполнен к вторичному серверу. Коллекция наследует MongoClient::RP_SECONDARY_PREFERRED базы данных, а курсор наследует ее от коллекции.

Как выбираются вторичные сервера

Каждый экземпляр MongoClient выбирает свой собственный вторичный сервер, используя доступный вторичный сервер с наименьшим временем проверки связи. Итак, если бы у нас был сервер PHP в Европе и в Австралии, и у нас было по одному вторичному серверу в каждом из этих центров обработки данных, мы могли бы сделать:

<?php
$options = array("replicaSet" => "setName", "readPreference" => MongoClient::RP_SECONDARY_PREFERRED);

// на австралийском сервере
$m = new MongoClient("mongodb://primary,australianhost.secondary,europeanhost.secondary", $options);
$cursor = $m->foo->bar->find();
$cursor->getNext();
echo "Чтение с: ", $cursor->info()["server"], "\n";

// на европейском сервере
$m = new MongoClient("mongodb://primary,australianhost.secondary,europeanhost.secondary", $options);
$cursor = $m->foo->bar->find();
$cursor->getNext();
echo "Чтение с: ", $cursor->info()["server"], "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Чтение с: australianHost
Чтение с: europeanHost

Обратите внимание, что мы должны выполнить запрос до того, как будет выбран вторичный сервер лениво драйвером и для каждого запроса отдельно.

Вы можете увидеть, что драйвер считает текущим состоянием членов набора, запустив MongoClient::getHosts() или MongoClient::getConnections().

Если ни один вторичный сервер не доступен для чтения, драйвер будет отправлять чтение основному, как мы указали MongoClient::RP_SECONDARY_PREFERRED, который будет выполнять откат для выполнения запроса на основном сервере, если вторичные серверы недоступны. Сервер считается читаемым, если его состояние равно 2 (SECONDARY), а его состояние равно 1. Вы можете проверить это с помощью MongoClient::getHosts() и MongoClient::getConnections().

Случайные заметки

Записи всегда отправляются основному серверу, и по умолчанию все операции чтения отправляются также основному серверу.

Запросы по _id

Каждому вставленному объекту автоматически присваивается уникальное поле _id, которое часто является полезным полем для запросов. Работает аналогично функциональности "получить последний идентификатор вставки", за исключением того, что _id выбирается клиентом.

Предположим, что мы хотим найти документ, который мы только что вставили. Вставка добавляет поле _id к документу, поэтому мы можем выполнить запрос следующим образом:

<?php
$person = array("name" => "joe");

$people->insert($person);

// сейчас у $joe есть поле _id
$joe = $people->findOne(array("_id" => $person['_id']));
?>

Если пользователь не указал иное, поле _id является MongoId. Самая распространенная ошибка - попытка использовать строку для совпадения с MongoId. Помните, что это два разных типа данных, и они не будут соответствовать друг другу так же, как строка "array()" не совпадает с пустым массивом. Например:

<?php
$person = array("name" => "joe");

$people->insert($person);

// преобразовываем _id в строку
$pid = $person['_id'] . "";

// ОШИБКА - $pid является строкой, а не MongoId
$joe = $people->findOne(array("_id" => $pid));
?>

Массивы

Массивы особенные в нескольких отношениях. Во-первых, есть два типа, которые использует MongoDB: "нормальные" массивы и ассоциативные массивы. Ассоциативные массивы могут иметь любое сочетание ключевых типов и значений. "Нормальные" массивы определяются как массивы с возрастающими числовыми индексами, начинающимися с 0 и увеличивающимися на единицу для каждого элемента. Как обычный PHP-массив.

Например, если вы хотите сохранить список наград в документе, вы можете выполнить:

<?php

$collection->save(array("awards" => array("gold", "silver", "bronze")));

?>

Запросы могут попадать в массивы для поиска элементов. Предположим, что мы хотим найти все документы с элементом массива заданного значения. Например, документы с "gold" наградой, такие как:

{ "_id" : ObjectId("4b06c282edb87a281e09dad9"), "awards" : ["gold", "silver", "bronze"]}

Это можно сделать простым запросом, игнорируя тот факт, что "awards" - это массив:

<?php

  $cursor = $collection->find(array("awards" => "gold"));

?>

Предположим, что мы запрашиваем более сложный объект, если каждый элемент массива был самим объектом, например:

{
     "_id" : ObjectId("4b06c282edb87a281e09dad9"),
     "awards" :
     [
        {
            "first place" : "gold"
        },
        {
            "second place" : "silver"
        },
        {
            "third place" :  "bronze"
        }
     ]
}

Не обращая внимания на то, что это массив, мы можем использовать точечную нотацию для запроса подобъекта:

<?php

$cursor = $collection->find(array("awards.first place" => "gold"));

?>

Обратите внимание, что не имеет значения, что в имени поля есть пробел (хотя может быть лучше не использовать пробелы, просто чтобы сделать вещи более читабельными).

Вы также можете использовать массив для запроса количества возможных значений. Например, если бы мы искали документы "gold" или "copper", мы могли бы сделать:

<?php

$cursor = $collection->find(array("awards" => array('$in' => array("gold", "copper"))));

?>

Список изменений

Версия | Описание
1.3.0 | Введена структура предпочтений чтения, позволяющая более детально контролировать операции чтения со вторичных серверов.
1.3.0 | Устарело использование slaveOkay, альтернатива - предпочтения чтения.
1.1.0 | Введена возможность маршрутизации чтения на вторичных серварах членов набора реплик с использованием Mongo::setSlaveOkay()


Обновления

Обновления могут быть одной из самых сложных операций, доступных с MongoDB. Они объединяют запрос с действием, изменяя документы, которые соответствуют критериям. Они также чрезвычайно производительные, что позволяет быстро менять документы и заменять их целиком. Они сделаны на месте (когда это возможно) с небольшими накладными расходами.

Изменение или замена документов

Вы можете использовать два типа обновлений: изменение обновлений и замена обновлений. Изменяющие обновления содержат $-операторы и поля изменений в документе: они могут увеличивать счетчики, помещать новые элементы в массив или изменять тип поля.

Например, изменяющее обновление может добавить новое поле в документ.

<?php
/** предположим, документы выглядят так:
 * {"username" : "...", "password" : "...", "email" : "..."}
 */
$coll->update(array("username" => "joe"), array('$set' => array("twitter" => "@joe4153")));

/** Теперь документ будет выглядеть так:
 * {"username" : "joe", "password" : "...", "email" : "...", "twitter" : "@joe4153"}
 */
?>

Замена обновлений заменяет весь соответствующий документ новым документом. Как правило, они не так эффективны, как использование $-модификаторов, но могут быть очень полезны для сложных операций или обновлений, которые нельзя выразить в терминах $-операторов.

Например, заменяющее обновление может полностью изменить структуру документа.

<?php
/** предположим, документы выглядят так:
 * {"username" : "...", "password" : "...", "email" : "..."}
 */
$coll->update(array("username" => "joe"), array("userId" => 12345, "info" => array(
    "name" => "joe", "twitter" => "@joe4153", "email" => "..."), "likes" => array()));

/** теперь документ будет выглядеть так:
 * {
 *     "userId" : 12345,
 *     "info" : {
 *         "name" : "joe",
 *         "twitter" : "@joe4153",
 *         "email" : "..."
 *     },
 *     "likes" : []
 * }
 */
?>

Обновление вложенных объектов

Предположим, мы хотим изменить имя автора комментария в этом документе:

{
    "_id" : ObjectId("4b06c282edb87a281e09dad9"),
    "content" : "this is a blog post.",
    "comments" :
    [
        {
            "author" : "Mike",
            "comment" : "I think that blah blah blah...",
        },
        {
            "author" : "John",
            "comment" : "I disagree."
        }
    ]
}
Чтобы изменить внутреннее поле, мы используем $set (чтобы все остальные поля не были удалены!) с индексом комментария для изменения:
<?php

$blog->update($criteria, array('$set' => array("comments.1" => array("author" => "Jim"))));

?>

Позиционный оператор

Позиционный оператор $ полезен для обновления объектов, находящихся в массивах. Например, в приведенном выше примере предположим, что мы не знали индекс комментария, который нам нужно было изменить, просто нам нужно было изменить "John" на "Jim". Мы можем использовать для этого $.

<?php

$blog->update(
    array("comments.author" => "John"),
    array('$set' => array('comments.$.author' => "Jim")));

?>


Безопасность

Атаки инъекциями в запросах

Если вы передаете параметры $_GET (или $_POST) в запросах, убедитесь, что они сначала приводятся к строкам. Пользователи могут вставлять ассоциативные массивы в запросы GET и POST, которые затем могут стать нежелательными $-запросами.

Довольно безобидный пример. Предположим, вы ищете информацию о пользователе по запросу http://www.example.com?username=bob. Ваше приложение выполняет запрос $collection->find(array("username" => $_GET['username'])).

Кто-то может сломать это, сделав запрос http://www.example.com?username[$ne]=foo, который PHP волшебным образом превратит в ассоциативный массив, превратив его в $collection->find(array("username" => array('$ne' => "foo"))), который вернет всех пользователей, не имеющих имени "foo" (вероятно, всех ваших пользователей).

От такой атаки довольно легко защититься: убедитесь, что параметры $_GET и $_POST соответствуют ожидаемому типу, прежде чем отправлять их в базу данных (в данном примере приведите их к строкам).

Обратите внимание, что этот тип атаки может использоваться с любым взаимодействием с базой данных: включая поиск, изменение и удаление.

Спасибо » Филу за указание на это.

Смотрите » основную документацию для получения дополнительной информации об SQL-инъекциях в MongoDB.

Атаки JavaScript-инъекциями

Если вы используете JavaScript, убедитесь, что все переменные, которые пересекают границы PHP-JavaScript, передаются в поле scope класса MongoCode, а не интерполируются в строку JavaScript. Это может произойти при использовании MongoDB::execute(), $where сlauses, MapReduces, group-by и в любых других случаях, когда вы можете передать JavaScript в базу данных.

Замечание:

MapReduce игнорирует поле scope класса MongoCode, но в команде есть параметр scope, который можно использовать вместо него.

Например, предположим, что у нас есть некоторый JavaScript, чтобы приветствовать пользователя в журналах базы данных. Мы могли бы сделать:

<?php

// не делайте так!

$username = $_POST['username'];
$db->execute("print('Привет, $username!');");

?>

Что будет, если злоумышленник передаст какой-то JavaScript?

<?php

// не делайте так!

// в $username будет передано "'); db.users.drop(); print('"
$db->execute("print('Привет, $username!');");

?>

Теперь MongoDB выполняет строку JavaScript "print('Привет, '); db.users.drop(); print('!');". Эту атаку легко предотвратить: используйте scope для передачи переменных из PHP в JavaScript:

<?php

$scope = array("user" => $username);
$db->execute(new MongoCode("print('Привет, '+user+'!');", $scope));

?>

Это добавит переменную user в область JavaScript. Теперь, если кто-то попытается отправить вредоносный код, MongoDB безвредно напечатает Привет, '); db.dropDatabase(); print('!.

Использование scope помогает предотвратить выполнение вредоносного ввода базой данных. Тем не менее, вы должны убедиться, что ваш код не изменится и все равно выполнит ввод! Например, никогда не используйте функцию JavaScript eval при вводе пользователем данных:

<?php

// не делайте так!

// $jsShellInput is "db.users.drop();"
$scope = array("input" => $jsShellInput);
$db->execute(new MongoCode("eval(input);", $scope));

?>

Всегда используйте scope и никогда не позволяйте базе данных выполнять пользовательский ввод в виде кода.


Поиск проблемы

Если у вас возникли проблемы, есть много ресурсов, к которым вы можете обратиться.

  • IRC

    Официальная IRC-комната MongoDB - irc.freenode.net/#mongodb. Это самый быстрый способ получить помощь.

  • Список рассылки

    » Список рассылки MongoDB - это хороший (и обычно очень быстрый) способ получить ответы на вопросы.

  • Багтрекер

    Нашли ошибку? Хотите функцию? Есть вопрос? Напишите об этом в » трекере ошибок драйвера PHP.

Вы можете заставить драйвер регистрировать все виды сообщений об ошибках, как сообщения об ошибках PHP уровня E_NOTICE. Посмотрите на MongoLog для примера.


Запускаем тесты драйвера

Пакет PECL не поставляется с тестами, но они доступны на » Github.

.phpt тесты

Тесты .phpt являются стандартным способом тестирования расширений PHP. После компиляции драйвера MongoDB с помощью команды "make" вы можете запустить команду "make test" для запуска тестов. Эти тесты требуют, чтобы MongoDB работал, и, следовательно, вам нужно настроить сам набор тестов.

Более подробная информация о запуске тестов содержится в соответствующих руководствах на » GitHub.

Сообщение об ошибках

Пожалуйста, сообщайте о любых ошибках в » Баг-трекер. Там могут быть пропущенные тесты, это нормально и может быть проигнорировано.

Новые тесты всегда приветствуются! Пожалуйста, не стесняйтесь вносить новые тесты любого типа, тестирующие любую функциональность.


Базовые классы

Содержание

  • MongoClient
  • MongoDB
  • MongoCollection
  • MongoCursor
  • MongoCursorInterface
  • MongoCommandCursor
Внимание

Это расширение объявлено устаревшим. Вместо него используйте расширение MongoDB.

Базовые классы - это основная часть драйвера.


Класс MongoClient

(PECL mongo >=1.3.0)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\Driver\Manager

Введение

Менеджер подключения между PHP и MongoDB.

Данный класс служит для создания и управления подключениями. Типичное использование:

Пример #1 Типичное использование MongoClient

<?php

$m = new MongoClient(); // соединение
$db = $m->foo; // получаем базу данных "foo"

?>

Смотрите MongoClient::__construct() и раздел по созданию подключений для более подробной информации по подключению к Mongo.

Обзор классов

MongoClient {
/* Константы */
const string VERSION ;
const string DEFAULT_HOST = "localhost" ;
const int DEFAULT_PORT = 27017 ;
const string RP_PRIMARY = "primary" ;
const string RP_PRIMARY_PREFERRED = "primaryPreferred" ;
const string RP_SECONDARY = "secondary" ;
const string RP_SECONDARY_PREFERRED = "secondaryPreferred" ;
const string RP_NEAREST = "nearest" ;
/* Свойства */
public boolean $connected = FALSE ;
public string $status = NULL ;
protected string $server = NULL ;
protected boolean $persistent = NULL ;
/* Методы */
public __construct ([ string $server = "mongodb://localhost:27017" [, array $options = array("connect" => TRUE) [, array $driver_options ]]] )
public close ([ boolean|string $connection ] ) : bool
public connect ( void ) : bool
public dropDB ( mixed $db ) : array
public __get ( string $dbname ) : MongoDB
public static getConnections ( void ) : array
public getHosts ( void ) : array
public getReadPreference ( void ) : array
public getWriteConcern ( void ) : array
public killCursor ( string $server_hash , int|MongoInt64 $id ) : bool
public listDBs ( void ) : array
public selectCollection ( string $db , string $collection ) : MongoCollection
public selectDB ( string $name ) : MongoDB
public setReadPreference ( string $read_preference [, array $tags ] ) : bool
public setWriteConcern ( mixed $w [, int $wtimeout ] ) : bool
public __toString ( void ) : string
}

Предопределенные константы

Константы MongoClient

MongoClient::VERSION
Версия PHP драйвера. Может оканчиваться суффиксом "dev", "+" или "-", если это промежуточная версия.
MongoClient::DEFAULT_HOST
Адрес сервера Mongo, к которому будет происходить подключение, если адрес не указан.
MongoClient::DEFAULT_PORT
Порт, к которому будет производиться подключение, если он не указан.
MongoClient::RP_PRIMARY
Предпочтение по выборке для основного члена набора реплик.
MongoClient::RP_PRIMARY_PREFERRED
Предпочтение по выборке для предпочтительного основного члена набора реплик.
MongoClient::RP_SECONDARY
Предпочтение по выборке для вторичного члена набора реплик.
MongoClient::RP_SECONDARY_PREFERRED
Предпочтение по выборке для предпочтительного вторичного члена набора реплик.
MongoClient::RP_NEAREST
Предпочтение по выборке для ближайшего члена набора реплик.

Параметры

connected

Этот параметр будет установлен в TRUE, если есть открытое соединение с базой, иначе - FALSE. Если соединение происходит к набору реплик, то это свойство может быть равным TRUE в случае, если есть соединение к узлу, соответствующему текущей настройке на чтение. Этот параметр не учитывает аутентификацию.

Это свойство устарело с версии 1.5.0.

status

Это свойство больше не используется и должно быть установлено в NULL. В драйвере версии 1.1.x и ранее, это свойство можно задать строками (т.е. "recycled", "new"), если используется постоянное соединение.

Это свойство устарело с версии 1.5.0.

Смотрите также

  • Предпочтения чтения
  • Гарантии записи
  • Подключения
  • Основная документация MongoDB о » соединениях

Содержание

  • MongoClient::close — Закрывает соединение
  • MongoClient::connect — Подключается к серверу базы данных
  • MongoClient::__construct — Создает новый объект подключения к базе данных
  • MongoClient::dropDB — Удаляет базу данных [устарело]
  • MongoClient::__get — Получает базу данных
  • MongoClient::getConnections — Возвращает информацию обо всех открытых соединениях
  • MongoClient::getHosts — Обновляет статус для всех связанных хостов
  • MongoClient::getReadPreference — Получает предпочтения чтения для соединения
  • MongoClient::getWriteConcern — Получает гарантии записи для соединения
  • MongoClient::killCursor — Разрушает определенный курсор на сервере
  • MongoClient::listDBs — Перечисляет все доступные базы данных
  • MongoClient::selectCollection — Получает коллекцию базы данных
  • MongoClient::selectDB — Получает базу данных
  • MongoClient::setReadPreference — Устанавливает предпочтения чтения для соединения
  • MongoClient::setWriteConcern — Устанавливает гарантии записи для соединения
  • MongoClient::__toString — Строковое представление этого соединения


Закрывает соединение

  • « MongoClient
  • MongoClient::connect »
  • PHP Manual
  • MongoClient
  • Закрывает соединение

MongoClient::close

(PECL mongo >=1.3.0)

MongoClient::close — Закрывает соединение

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public MongoClient::close ([ boolean|string $connection ] ) : bool

Метод MongoClient::close() принудительно закрывает соединение с базой данных, даже если используются постоянные соединения. Вы никогда не должны делать это при нормальных обстоятельствах.

Список параметров

connection

Если соединение не задано или FALSE, то соединение, которое будет выбрано для записи, будет закрыто. В конфигурации с одним узлом - все соединения, но если вы подключены к набору реплик, close() закроет соединение только с основным сервером.

Если соединение TRUE, тогда все соединения, известные диспетчеру соединений, будут закрыты. Это может включать соединения, на которые нет ссылок в строке соединения, используемой для создания объекта, для которого вы вызываете close.

Если connection является строковым аргументом, он закроет только соединение, идентифицированное этим хешем. Хэши являются идентификаторами для соединения и могут быть получены путем вызова MongoClient::getConnections().

Возвращаемые значения

Возвращает, если соединение было успешно закрыто.

Примеры

Пример #1 Пример использования MongoClient::close()

Этот пример демонстрирует, как выборочно закрыть все соединения только для вторичных серверов.

<?php
// Подключаемся к набору реплик
$a = new MongoClient("mongodb://whisky:13000/?replicaset=seta");

$connections = $a->getConnections();

foreach ( $connections as $con )
{
    // Цикл по всем соединениям, и если тип "SECONDARY"
    // мы закрываем соединение
    if ( $con['connection']['connection_type_desc'] == "SECONDARY" )
    {
        echo "Закрываем '{$con['hash']}': ";
        $closed = $a->close( $con['hash'] );
        echo $closed ? "ok" : "failed", "\n";
    }
}
?>

Результат выполнения данного примера:

Закрываем 'whisky:13001;X;4948': ok

Список изменений

Версия | Описание
1.3.0 | Параметр connection к этой функции был добавлен в 1.3.0. До этого этим методом закрывалось только соединение записи.
1.2.0 | До версии 1.2.0 драйвер не использовал постоянные соединения по умолчанию, и все соединения закрывались, как только выход из MongoDB выходил из области действия. Начиная с версии 1.2.0, это больше не так, и плохая идея - вызывать close, так как в итоге вы можете перегружать сервер соединениями под высокой нагрузкой.

Смотрите также

  • MongoClient::getConnections() - Возвращает информацию обо всех открытых соединениях


Подключается к серверу базы данных

  • « MongoClient::close
  • MongoClient::__construct »
  • PHP Manual
  • MongoClient
  • Подключается к серверу базы данных

MongoClient::connect

(PECL mongo >=1.3.0)

MongoClient::connect — Подключается к серверу базы данных

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public MongoClient::connect ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Если соединение прошло успешно.

Ошибки

Выдает исключение MongoConnectionException, если не удается подключиться к базе данных.


Создает новый объект подключения к базе данных

  • « MongoClient::connect
  • MongoClient::dropDB »
  • PHP Manual
  • MongoClient
  • Создает новый объект подключения к базе данных

MongoClient::__construct

(PECL mongo >=1.3.0)

MongoClient::__construct — Создает новый объект подключения к базе данных

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\Driver\Manager::__construct()

Описание

 public MongoClient::__construct
  ([ string $server = "mongodb://localhost:27017"
 [, array $options = array("connect" => TRUE)
 [, array $driver_options
]]] )

Если параметры не переданы, то подключается к "localhost:27017" (или к тому, что было указано в php.ini для mongo.default_host и mongo.default_port).

server должен иметь форму:

mongodb://[username:password@]host1[:port1][,host2[:port2:],...]/db

Строка подключения всегда начинается с mongodb://, чтобы указать, что это строка подключения в этой форме.

Если указаны username и password, конструктор попытается аутентифицировать соединение с базой данных перед возвратом. Имя пользователя и пароль не являются обязательными и должны сопровождаться @, если указаны.

Должен быть указан хотя бы один хост (порт необязательный, всегда по умолчанию 27017), и к нему может быть подключено столько хостов, сколько необходимо. Имена хостов разделены запятыми, и конструктор вернется успешно, если он подключен хотя бы к одному хосту. Если он не может подключиться ни к одному из хостов, он выдаст исключение MongoConnectionException. Пожалуйста, обратитесь к разделу наборы реплик для получения информации о том, как подключиться к наборам реплик.

Если вы указали имя пользователя и пароль, вы можете указать базу данных для аутентификации. Если db не указан, будет использоваться "admin".

Необязательная строка запроса может использоваться для указания дополнительных параметров. Те же параметры поддерживаются и в массиве параметров, поэтому они там переписываются. Ниже приведены примеры, как установить эти параметры.

Одна часть параметров определяет, как драйвер считывает данные со вторичных узлов в среде набора реплик. Дополнительная информация о том, как работают эти настройки чтения, также доступна на странице документации по настройкам чтения.

Список параметров

server

Имя сервера.

options

Массив опций для подключения. В настоящее время доступны следующие варианты:

  • "authMechanism"

    Доступные механизмы:

    authMechanism | Описание | Доступность
    MONGODB-CR | Проверка подлинности с использованием механизма ответа на вызов. Это значение по умолчанию. | Все версии MongoDB
    MONGODB-X509 | Аутентификация с использованием сертификатов X.509 | MongoDB 2.6. Доступно только когда OpenSSL включен
    PLAIN | Аутентификация с использованием незашифрованного простого имени пользователя + пароля. Должен использоваться по SSL-соединениям. Обычно используется MongoDB для входа через сторонний сервер LDAP | MongoDB Enterprise 2.4. Драйвер должен быть скомпилирован с CyrusSASL2
    GSSAPI | Аутентификация через системы Kerberos | MongoDB Enterprise 2.4. Драйвер должен быть скомпилирован с CyrusSASL2
    SCRAM-SHA-1 | Аутентификация через SCRAM-SHA-1 | MongoDB 3.0.

  • "authSource"

    Должно быть установлено имя базы данных, где пользователь определен.

  • "connect"

    Если конструктор должен подключиться, прежде чем вернуться. По умолчанию TRUE. Если установлено значение FALSE, драйвер будет автоматически подключаться к серверу всякий раз, когда необходимо выполнить запрос. Кроме того, вы можете запустить MongoClient::connect() вручную.

    Внимание

    Эта опция не поддерживается через строку подключения.

  • "connectTimeoutMS"

    Сколько времени может занять соединение до истечения времени ожидания в миллисекундах. По умолчанию 60000 (60 секунд).

    Если указано -1, время ожидания соединения не будет применяться, и PHP будет использовать default_socket_timeout.

  • "db"

    Здесь можно указать базу данных для аутентификации, не включая ее в список хостов. Это переопределяет базу данных, указанную в списке хостов.

  • "fsync"

    Если установлен "fsync", все операции записи будут блокироваться до тех пор, пока база данных не сбросит изменения на диск. Это замедляет операции записи, но гарантирует, что запись прошла успешно и что операции могут быть восстановлены в случае полного сбоя системы.

    Если на сервере MongoDB включено ведение журнала, эта опция идентична "journal". Если ведение журнала не включено, этот параметр гарантирует, что операции записи будут синхронизированы с файлами базы данных на диске.

    Замечание: Если ведение журнала включено, пользователям настоятельно рекомендуется использовать опцию "journal" вместо "fsync". Не используйте одновременно "fsync" и "journal", так как это приведет к ошибке.

  • "journal"

    Если установлен "journal", все операции записи будут блокироваться до тех пор, пока база данных не сбросит изменения в журнал на диске. Это замедляет операции записи, но гарантирует, что запись прошла успешно и что операции могут быть восстановлены в случае полного сбоя системы.

    Замечание: Если эта опция используется и ведение журнала отключено, MongoDB 2.6+ вызовет ошибку и запись не удастся; старые версии сервера просто игнорируют эту опцию.

  • "gssapiServiceName"

    Устанавливает » субъект службы Kerberos. Применяется только когда authMechanism=GSSAPI. По умолчанию "mongodb".

  • "password"

    Здесь можно указать пароль, а не включать его в список хостов. Особенно полезно, если в пароле есть «@». Это отменяет пароль, установленный в списке хостов.

  • "readPreference"

    Определяет предпочтения чтения. Предпочтения чтения предоставляют вам контроль, из которого могут быть считаны вторичные данные.

    Допустимые значения: MongoClient::RP_PRIMARY,
MongoClient::RP_PRIMARY_PREFERRED,
MongoClient::RP_SECONDARY,
MongoClient::RP_SECONDARY_PREFERRED и
MongoClient::RP_NEAREST.

    Смотрите документацию по Read Preference для получения дополнительной информации.

  • "readPreferenceTags"

    Определяет теги предпочтения чтения в виде массива строк. Теги могут использоваться в сочетании с опцией readPreference для дальнейшего контроля, из каких вторичных данных могут быть считаны.

    Смотрите документацию по предпочтениям чтения для получения дополнительной информации.

  • "replicaSet"

    Имя реплики, к которой нужно подключиться. Если указано, основной сервер будет определен автоматически. Это означает, что драйвер может в конечном итоге подключиться к серверу, которого даже нет в списке. Смотрите пример набора реплик ниже для подробностей.

  • "secondaryAcceptableLatencyMS"

    При чтении с вторичного сервера (с использованием ReadPreferences) не читайте с вторичных серверов, о которых известно, что они находятся на более чем secondaryAcceptableLatencyMS, вдали от нас. По умолчанию 15

  • "socketTimeoutMS"

    Сколько времени может занять операция сокета (чтение или запись) до истечения времени ожидания в миллисекундах. По умолчанию 30000 (30 секунд).

    Если указано -1, операции с сокетом могут блокироваться бесконечно. Опция также может быть установлена для каждой операции, используя MongoCursor::timeout() для запросов или опцию "socketTimeoutMS" для методов записи.

    Замечание: Время ожидания на стороне клиента. Если время операции записи истекло, нет способа узнать, обработал ли сервер запись или нет, так как вместо возврата результата записи, будет выдано исключение MongoCursorTimeoutException.

  • "ssl"

    Логическое значение, указывающее, хотите ли вы включить SSL для соединений с MongoDB. Дополнительные параметры, такие как сертификаты, могут быть установлены с помощью Опции контекста SSL.

  • "username"

    Здесь можно указать имя пользователя, а не включать его в список хостов. Особенно полезно, если в имени пользователя есть ":". Это переопределяет имя пользователя, установленное в списке хостов.

  • "w"

    Опция w задает гарантии записи для драйвера, который определяет, как долго драйвер блокирует при записи. Значением по умолчанию является 1.

    Этот параметр применим при подключении как к отдельным серверам, так и к наборам реплик. Положительное значение контролирует, как много узлов должно подтвердить запись, прежде чем драйвер продолжит работу. Значение 1 потребует, чтобы единственный сервер или основной сервер (в наборе реплик) подтвердили операцию записи. Значение 3 приведет к блокировке драйвера до тех пор, пока запись не будет применена как к основному, так и к двум вторичным серверам (в наборе реплик).

    Строковое значение используется для управления тем, какие наборы тегов учитываются при записи. "majority" является особенным и гарантирует, что операция записи была применена к большинству (более 50%) участвующих узлов.

  • "wTimeoutMS"

    Параметр указывает ограничение времени в миллисекундах для гарантии записи. Это применимо только для операций записи, где "w" больше 1, поскольку время ожидания относится к репликации. Если проблема с записью не будет удовлетворена в течение срока, будет выдано исключение MongoCursorException. Значение 0 может быть указано для блокировки на неопределенный срок. Значением по умолчанию является 10000 (десять секунд).

Следующие параметры устарели и больше не должны использоваться:

  • "slaveOkay"

    Устаревшее. Пожалуйста, используйте предпочтения чтения.

  • "timeout"

    Устаревший псевдоним для "connectTimeoutMS".

  • "wTimeout"

    Устаревший псевдоним для "wTimeoutMS".

driver_options

Массив опций для драйвера MongoDB. Опции включают настройку параметров контекста SSL соединения или регистрацию callback-функций.

  • "context"

    Контекст потока для присоединения ко всем новым соединениям. Позволяет вам, например, настроить сертификаты SSL и описаны в разделе параметры контекста SSL. Смотрите инструкцию по соединению через SSL.

Возвращаемые значения

Возвращает новый объект подключения к базе данных.

Ошибки

Выдает исключение MongoConnectionException, если он пытается и не может подключиться к базе данных для всех заданных имен хостов. Он также выдаст исключение MongoConnnectionException, если указано неверное имя пользователя или пароль. Смотрите документацию MongoConnectionException для общих исключений и их причин.

Примеры

Пример #1 Пример набора реплик MongoClient::__construct()

В этом примере показано, как подключить драйвер к набору реплик. Предполагается, что существует набор из трех серверов: sf1.example.com, sf2.example.com и ny1.example.com. Основным может быть любой из этих серверов.

<?php

// передаем разделенный запятыми список имен серверов конструктору
// Обратите внимание, что нам не нужно передавать все члены набора реплик драйверу
// выведет полный список.
$m1 = new MongoClient("mongodb://sf2.example.com,ny1.example.com", array("replicaSet" => "myReplSet"));

?>

Если текущий основной сервер отказывает, драйвер выяснит, какой вторичный сервер стал новым основным, и автоматически начнет использовать это соединение. Автоматическое переключение при сбое не будет работать правильно, если replicaSet не указан.

Чтобы драйвер мог подключиться к набору реплик, должен быть хотя бы один начальный элемент в начальном списке.

Если вы включите источника из двух отдельных наборов реплик, поведение будет не определенным.

Смотрите » базовую документацию по наборам реплик для получения дополнительной информации.

Пример #2 Подключение к доменному сокету

В версии 1.0.9+ вы можете использовать доменный сокет UNIX для подключения к экземпляру MongoDB, работающему локально. Это должно быть немного быстрее, чем при использовании сетевого подключения.

В версии 1.5.0 сервер MongoDB автоматически открывает сокет по адресу /tmp/mongodb-<port>.sock. Вы можете подключиться к этому, указав путь в строке подключения:

<?php

// Сервер MongoDB, работающий локально на порте 20000
$m = new MongoClient("mongodb:///tmp/mongodb-20000.sock");

?>

Вы можете комбинировать это с любыми другими связями, которые вы хотите:

<?php

// пробуем подключиться к сокету домена, открываем соединение с локальным хостом
$m = new MongoClient("mongodb:///tmp/mongodb-27017.sock,localhost:27017");

?>

Пример #3 Пример аутентификации MongoClient::__construct()

Пользователь должен существовать в базе данных "admin", прежде чем пытаться использовать аутентификацию. Вы можете создать его с помощью оболочки Mongo, выполнив:

> use admin
switched to db admin
> db.addUser("testUser", "testPass");
{
        "_id" : ObjectId("4b21272fd9ab21611d19095c"),
        "user" : "testUser",
        "pwd" : "03b9b27e0abf1865e2f6fcbd9845dd59"
}
>

После создания пользователя, в данном случае, имени пользователя "testUser" и пароля "testPass", вы можете создать аутентифицированное соединение:

<?php

$m = new MongoClient("mongodb://testUser:testPass@localhost");

?>

Пример #4 Пример предпочтения чтения в MongoClient::__construct()

<?php

// Предпочтем ближайший сервер в "восточном" дата-центре
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));
?>

Смотрите раздел предпочтениям чтения для получения дополнительной информации.

Пример #5 Пример опций MongoClient::__construct()

Опции могут передаваться как через строку запроса в строке подключения, так и в виде массива, передаваемого в качестве второго аргумента конструктору.

Здесь мы устанавливаем для опции журнала значение true, а для readPreference - вторичный сервер, предпочитаемый по умолчанию для всех операций записи:

<?php
$m = new MongoClient("mongodb://localhost/?journal=true&readPreference=secondary");
?>

И теперь мы делаем то же самое, но с помощью массива опций:

<?php
$options = array(
    'journal' => true,
    'readPreference' => 'secondary',
);
$m = new MongoClient("mongodb://localhost/", $options);
?>

Пример #6 Пример предпочтения чтения в MongoClient::__construct()

<?php

// Предпочтем ближайший сервер в "восточном" дата-центре
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));
?>

Смотрите раздел предпочтениям чтения для получения дополнительной информации.

Список изменений

Версия | Описание
1.6.0

Добавлена поддержка "SCRAM-SHA-1" в опции "authMechanism".

1.5.0

Добавлены "authMechanism", "gssapiServiceName" и "secondaryAcceptableLatencyMS".

1.4.0

Добавлена опция "ssl" и поддержка подключения по SSL.

Добавлена опция "wTimeoutMS", которая заменяет "wTimeout".

Выдает E_DEPRECATED, при использовании "slaveOkay" или "timeout".

1.5.0

Добавлена опция "authSource".

1.3.4

Добавлены опции "connectTimeoutMS" и "socketTimeoutMS".

1.3.0

Добавлены опции "readPreference", "readPreferenceTags", "w", и "wTimeout".

1.2.0

Добавлены опции "username" и "password".

Удалена опция "persist", так как все соединения теперь являются постоянными. Ее все еще можно использовать, но это ни на что не влияет.

"persist"

Когда соединение должно быть постоянным. Если установлено, соединение будет постоянным. Строковое представление значения используется в качестве идентификатора для соединения, поэтому два экземпляра MongoClient, которые инициализируются array("persist" => "foobar"), будут использовать одно и то же соединение с базой данных, тогда как экземпляр, инициализированный array("persist" => "barbaz"), будет использовать другое соединение с базой данных.

Опция "replicaSet" теперь принимает строку, а не логическое значение.

1.0.9 | Добавлена опция "replicaSet".
1.0.2

Изменен конструктор, чтобы принимать массив опций. До версии 1.0.2 конструктор принимал следующие параметры:

server

Имя сервера.

connect

Необязательный логический параметр, указывающий, должен ли конструктор подключаться к базе данных перед возвратом. По умолчанию TRUE.

persistent

Если соединение должно быть постоянным.

paired

Если соединение должно быть сопряжено.


Удаляет базу данных [устарело]

  • « MongoClient::__construct
  • MongoClient::__get »
  • PHP Manual
  • MongoClient
  • Удаляет базу данных [устарело]

MongoClient::dropDB

(PECL mongo >=1.3.0)

MongoClient::dropDB — Удаляет базу данных [устарело]

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено, но можно использовать функции из библиотеки PHP:

  • » MongoDB\Client::dropDatabase()

Описание

public MongoClient::dropDB ( mixed $db ) : array
Внимание

Метод устарел

Используйте MongoDB::drop() вместо этого метода.

Список параметров

db

База данных для удаления. Может быть объектом MongoDB или именем базы данных.

Возвращаемые значения

Возвращает ответ базы данных.


Получает базу данных

  • « MongoClient::dropDB
  • MongoClient::getConnections »
  • PHP Manual
  • MongoClient
  • Получает базу данных

MongoClient::__get

(PECL mongo >=1.3.0)

MongoClient::__get — Получает базу данных

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено, но можно использовать функции из библиотеки PHP:

  • » MongoDB\Client::__get()

Описание

public MongoClient::__get ( string $dbname ) : MongoDB

Это самый простой способ получения базы данных. Если имя базы данных содержит какие-либо специальные символы, необходимо будет использовать MongoClient::selectDB(), однако этого должно быть достаточно в большинстве случаев.

<?php

$mongo = new MongoClient();

// следующие две строки равнозначны
$db = $mongo->selectDB("foo");
$db = $mongo->foo;

?>

Список параметров

dbname

Имя базы данных.

Возвращаемые значения

Возвращает новый объект БД.

Ошибки

Выдает общее исключение, если имя базы данных неверно.


Возвращает информацию обо всех открытых соединениях

  • « MongoClient::__get
  • MongoClient::getHosts »
  • PHP Manual
  • MongoClient
  • Возвращает информацию обо всех открытых соединениях

MongoClient::getConnections

(PECL mongo >=1.3.0)

MongoClient::getConnections — Возвращает информацию обо всех открытых соединениях

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public static MongoClient::getConnections ( void ) : array

Возвращает массив всех открытых соединений и информацию о каждом из серверов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) открытых соединений.

Примеры

Пример #1 Пример использования MongoClient::getConnections()

<?php
$m = new MongoClient;
var_dump($m->getConnections());
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(3) {
    ["hash"]=>
    string(26) "localhost:27017;-;X;56052"
    ["server"]=>
    array(3) {
      ["host"]=>
      string(10) "localhost"
      ["port"]=>
      int(27017)
      ["pid"]=>
      int(56052)
    }
    ["connection"]=>
    array(8) {
      ["last_ping"]=>
      int(1354076401)
      ["last_ismaster"]=>
      int(0)
      ["ping_ms"]=>
      int(0)
      ["connection_type"]=>
      int(1)
      ["connection_type_desc"]=>
      string(10) "STANDALONE"
      ["max_bson_size"]=>
      int(16777216)
      ["tag_count"]=>
      int(0)
      ["tags"]=>
      array(0) {
      }
    }
  }
}


Обновляет статус для всех связанных хостов

  • « MongoClient::getConnections
  • MongoClient::getReadPreference »
  • PHP Manual
  • MongoClient
  • Обновляет статус для всех связанных хостов

MongoClient::getHosts

(PECL mongo >=1.3.0)

MongoClient::getHosts — Обновляет статус для всех связанных хостов

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\Driver\Manager::getServers()

Описание

public MongoClient::getHosts ( void ) : array

Метод полезен только при подключении к набору реплик. Возвращает статус всех хостов в наборе. Без набора реплик он просто вернет массив с одним элементом, содержащим хост, к которому вы подключены.

Смотрите раздел по запросам руководства для получения информации о распределении чтений среди вторичных серверов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив информации о хостах в наборе. Включает в себя имя хоста, его работоспособность (1, если исправен), его состояние (1, если является основным, 2 - вторичным, 0 - любым другим), количество времени, которое потребовалось для проверки связи с сервером, и когда произошел последний пинг. Например, для набора реплик из трех членов это будет выглядеть примерно так:

array(3) {
  ["A:27017"]=>
  array(4) {
    ["host"]=>
    "A"
    ["port"]=>
    27017
    ["health"]=>
    int(1)
    ["state"]=>
    int(2)
    ["ping"]=>
    int(369)
    ["lastPing"]=>
    int(1309470644)
  }
  ["B:27017"]=>
  array(4) {
    ["host"]=>
    "B"
    ["port"]=>
    27017
    ["health"]=>
    int(1)
    ["state"]=>
    int(1)
    ["ping"]=>
    int(139)
    ["lastPing"]=>
    int(1309470644)
  }
  ["C:27017"]=>
  array(4) {
    ["host"]=>
    "C"
    ["port"]=>
    27017
    ["health"]=>
    int(1)
    ["state"]=>
    int(2)
    ["ping"]=>
    int(1012)
    ["lastPing"]=>
    int(1309470644)
  }
}

Список изменений

Версия | Описание
1.2.10 | Добавлена поддержка нерепликазных наборов. Возвращенные элементы массива теперь также включают имя hostname и port.

Смотрите также

  • MongoClient::getConnections() - Возвращает информацию обо всех открытых соединениях


Получает предпочтения чтения для соединения

  • « MongoClient::getHosts
  • MongoClient::getWriteConcern »
  • PHP Manual
  • MongoClient
  • Получает предпочтения чтения для соединения

MongoClient::getReadPreference

(PECL mongo >=1.3.0)

MongoClient::getReadPreference — Получает предпочтения чтения для соединения

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public MongoClient::getReadPreference ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Данная функция возвращает массив, описывающий режимы предпочтения чтения. Массив содержит следующие значения: type для строкового значения режима предпочтения чтения (соответствующий константам MongoClient) и tagsets, содержащее список всех критерий наборов тегов. Если наборы тегов не были указаны, то tagsets в массиве не будет.

Список изменений

Версия | Описание
1.3.3 | Возвращаемое значение изменилось, чтобы соответствовать MongoClient::setReadPreference(). Значение type было изменено с числа на строку, type_string была удалена, и tagsets теперь выражают теги, как пары ключ/значение вместо строк, разделенных двоеточиями.

Примеры

Пример #1 Пример возвращаемого значения MongoClient::getReadPreference()

<?php

$m = new MongoClient();
$m->setReadPreference(MongoClient::RP_SECONDARY, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
    array(),
));
var_dump($m->getReadPreference());
?>

Результат выполнения данного примера:

array(2) {
  ["type"]=>
  string(9) "secondary"
  ["tagsets"]=>
  array(3) {
    [0]=>
    array(2) {
      ["dc"]=>
      string(4) "east"
      ["use"]=>
      string(9) "reporting"
    }
    [1]=>
    array(1) {
      ["dc"]=>
      string(7) "west"
    }
    [2]=>
    array(0) {
    }
  }
}

Смотрите также

  • Документация по предпочтениям чтения.
  • MongoClient::setReadPreference() - Устанавливает предпочтения чтения для соединения


Получает гарантии записи для соединения

  • « MongoClient::getReadPreference
  • MongoClient::killCursor »
  • PHP Manual
  • MongoClient
  • Получает гарантии записи для соединения

MongoClient::getWriteConcern

(PECL mongo >=1.5.0)

MongoClient::getWriteConcern — Получает гарантии записи для соединения

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public MongoClient::getWriteConcern ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция возвращает массив, описывающий контроль записи. Массив содержит значения w - уровень подтверждения или режим в виде строки, и wtimeout определяющий максимальное количество миллисекунд ожидания для сервера, чтобы удовлетворить контроль записи.

Примеры

Пример #1 Пример возвращаемого значения MongoClient::getWriteConcern()

<?php

$mc = new MongoClient('mongodb://localhost:27017', array('wTimeoutMS' => 500));
var_dump($mc->getWriteConcern());

$mc->setWriteConcern(1, 1000);
var_dump($mc->getWriteConcern());
?>

Результат выполнения данного примера:

array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(500)
}
array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(1000)
}

Смотрите также

  • Документация по гарантиям записи.
  • MongoClient::setWriteConcern() - Устанавливает гарантии записи для соединения


Разрушает определенный курсор на сервере

  • « MongoClient::getWriteConcern
  • MongoClient::listDBs »
  • PHP Manual
  • MongoClient
  • Разрушает определенный курсор на сервере

MongoClient::killCursor

(PECL mongo >=1.5.0)

MongoClient::killCursor — Разрушает определенный курсор на сервере

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public MongoClient::killCursor ( string $server_hash , int|MongoInt64 $id ) : bool

В определенных ситуациях может потребоваться разрушить курсор на сервере. Обычно время ожидания курсора истекает после 10 минут бездействия, но возможно создать вечный курсор с MongoCursor::immortal(), который никогда не истекает. Чтобы иметь возможность разрушить такой вечный курсор, вы можете вызвать этот метод с информацией, предоставленной MongoCursor::info().

Список параметров

server_hash

Хеш сервера с курсором. Может быть получено через MongoCursor::info().

id

Идентификатор курсора для разрушения. Вы можете предоставить либо int, содержащий 64-битный идентификатор курсора, либо объект класса MongoInt64.

Возвращаемые значения

Возвращает TRUE, если метод пытался разрушить курсор, и FALSE, если с аргументами было что-то не так (например, неправильный server_hash). Статус возврата не отражает, где курсор был фактически разрушен, поскольку сервер не предоставляет эту информацию.

Ошибки

Метод отображает предупреждение, если предоставленный server_hash не совпадает с существующим соединением. В этом случае также не предпринимаются попытки разрушить курсор.

Примеры

Пример #1 Пример использования MongoClient::killCursor()

В этом примере показано, как подключиться, выполнить запрос, получить информацию о курсоре и затем разрушить его.

<?php
$m = new MongoClient();
$c = $m->testdb->collection;
$cursor = $c->find();
$result = $cursor->next();

// Теперь курсор корректен, поэтому мы можем получить хеш и идентификатор:
$info = $cursor->info();

// Разрушаем курсор
MongoClient::killCursor( $info['server'], $info['id'] );
?>


Перечисляет все доступные базы данных

  • « MongoClient::killCursor
  • MongoClient::selectCollection »
  • PHP Manual
  • MongoClient
  • Перечисляет все доступные базы данных

MongoClient::listDBs

(PECL mongo >=1.3.0)

MongoClient::listDBs — Перечисляет все доступные базы данных

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено, но можно использовать функции из библиотеки PHP:

  • » MongoDB\Client::listDatabases()

Описание

public MongoClient::listDBs ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий три поля. Первое поле - это databases, которые в свою очередь содержат массив. Каждый элемент массива представляет собой ассоциативный массив, соответствующий базе данных, с указанием имени базы данных, ее размера и, если она пустая. Два других поля - totalSize (в байтах) и ok, что равно 1, если этот метод успешно выполнен.

Примеры

Пример #1 Пример использования MongoClient::listDBs()

Пример, демонстрирующий, как использовать listDBs и возвращенную структуру данных.

<?php

$mongo = new MongoClient();
$dbs = $mongo->listDBs();
print_r($dbs);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [databases] => Array
        (
            [0] => Array
                (
                    [name] => doctrine
                    [sizeOnDisk] => 218103808
                    [empty] =>
                )
        )

    [totalSize] => 218103808
    [ok] => 1
)


Получает коллекцию базы данных

  • « MongoClient::listDBs
  • MongoClient::selectDB »
  • PHP Manual
  • MongoClient
  • Получает коллекцию базы данных

MongoClient::selectCollection

(PECL mongo >=1.3.0)

MongoClient::selectCollection — Получает коллекцию базы данных

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено, но можно использовать функции из библиотеки PHP:

  • » MongoDB\Client::selectCollection()

Описание

public MongoClient::selectCollection ( string $db , string $collection ) : MongoCollection

Список параметров

db

Имя базы данных.

collection

Название коллекции.

Возвращаемые значения

Возвращает новый объект коллекции.

Ошибки

Выбрасывает Exception если имя базы данных или коллекции неверно.

Примеры

Пример #1 Пример использования MongoClient::selectCollection()

<?php
$m = new MongoClient();

$c1 = $m->selectCollection("foo", "bar.baz");
// что равносильно
$c2 = $m->selectDB("foo")->selectCollection("bar.baz");

// $c1 и $c2 теперь представляют одну и ту же коллекцию
?>


Получает базу данных

  • « MongoClient::selectCollection
  • MongoClient::setReadPreference »
  • PHP Manual
  • MongoClient
  • Получает базу данных

MongoClient::selectDB

(PECL mongo >=1.3.0)

MongoClient::selectDB — Получает базу данных

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено, но можно использовать функции из библиотеки PHP:

  • » MongoDB\Client::selectDatabase()

Описание

public MongoClient::selectDB ( string $name ) : MongoDB

Список параметров

name

Имя базы данных.

Возвращаемые значения

Возвращает новый объект базы данных.

Ошибки

Выбрасывает Exception если имя базы данных неверно.


Устанавливает предпочтения чтения для соединения

  • « MongoClient::selectDB
  • MongoClient::setWriteConcern »
  • PHP Manual
  • MongoClient
  • Устанавливает предпочтения чтения для соединения

MongoClient::setReadPreference

(PECL mongo >=1.3.0)

MongoClient::setReadPreference — Устанавливает предпочтения чтения для соединения

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public MongoClient::setReadPreference ( string $read_preference [, array $tags ] ) : bool

Список параметров

read_preference

Режимы предпочтения чтения: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED и MongoClient::RP_NEAREST.

tags

Пустой массив, либо содержащий наборы тегов, где каждый такой набор является массивом из критериев, используемых в соответствии с тегами членов набора реплик.

Возвращаемые значения

Возвращает TRUE в случае успеха, иначе - FALSE.

Ошибки

Генерирует ошибку уровня E_WARNING, в случае неверных параметров, либо если один или более наборов тегов были переданы с режимом чтения MongoClient::RP_PRIMARY.

Примеры

Пример #1 Пример синтаксиса массива набора тегов MongoClient::setReadPreference()

<?php

$m = new MongoClient();

// Предпочитаем ближайший сервер в "восточном" дата-центре, также используемый для отчетности,
// но используем сервер в "западном" дата-центре
$m->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));
?>

Смотрите также

  • Документация по предпочтениям чтения.
  • MongoClient::getReadPreference() - Получает предпочтения чтения для соединения


Устанавливает гарантии записи для соединения

  • « MongoClient::setReadPreference
  • MongoClient::__toString »
  • PHP Manual
  • MongoClient
  • Устанавливает гарантии записи для соединения

MongoClient::setWriteConcern

(PECL mongo >=1.5.0)

MongoClient::setWriteConcern — Устанавливает гарантии записи для соединения

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public MongoClient::setWriteConcern ( mixed $w [, int $wtimeout ] ) : bool

Список параметров

w

Контроль записи. Может быть числом означающим число серверов, требуемых для подтверждения записи, или режим в виде строки (например "majority").

wtimeout

Максимальное количество миллисекунд ожидания для сервера, чтобы удовлетворить контроль записи.

Возвращаемые значения

Возвращает TRUE в случае успеха, или FALSE в противном случае.

Ошибки

Бросает предупреждение E_WARNING в случае, если параметр w не является целым числом или строкой.

Примеры

Пример #1 Пример использования MongoClient::setWriteConcern()

<?php

$mc = new MongoClient('mongodb://rs1.example.com,rs2.example.com');

// Требуем, чтобы большинство серверов в наборе реплик подтверждали записи
// в течение трех секунд.
$mc->setWriteConcern('majority', 3000);
?>

Смотрите также

  • Документация по гарантиям записи.
  • MongoClient::getWriteConcern() - Получает гарантии записи для соединения


Строковое представление этого соединения

  • « MongoClient::setWriteConcern
  • MongoDB »
  • PHP Manual
  • MongoClient
  • Строковое представление этого соединения

MongoClient::__toString

(PECL mongo >=1.3.0)

MongoClient::__toString — Строковое представление этого соединения

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public MongoClient::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя хоста и порт для этого соединения.


Класс MongoDB

(PECL mongo >=0.9.0)

Введение

Экземпляры этого класса используются для взаимодействия с базой данных. Чтобы получить базу данных:

Пример #1 Выбор базы данных

<?php

$m = new MongoClient(); // подключение
$db = $m->selectDB("example");

?>
Имена баз данных могут использовать практически любой символ в диапазоне ASCII. Тем не менее, они не могут содержать " ", "." или быть пустой строкой. Название "system" также зарезервировано.

Несколько необычных, но допустимых имен базы данных: "null", "[x,y]", "3", "\"", "/".

В отличие от имен коллекций, имена баз данных могут содержать "$".

Обзор классов

MongoDB {
/* Константы */
const int PROFILING_OFF = 0 ;
const int PROFILING_SLOW = 1 ;
const int PROFILING_ON = 2 ;
/* Поля */
public integer $w = 1 ;
public integer $wtimeout = 10000 ;
/* Методы */
public authenticate ( string $username , string $password ) : array
public command ( array $command [, array $options = array() [, string &$hash ]] ) : array
public __construct ( MongoClient $conn , string $name )
public createCollection ( string $name [, array $options ] ) : MongoCollection
public createDBRef ( string $collection , mixed $document_or_id ) : array
public drop ( void ) : array
public dropCollection ( mixed $coll ) : array
public execute ( mixed $code [, array $args = array() ] ) : array
public forceError ( void ) : bool
public __get ( string $name ) : MongoCollection
public getCollectionInfo ([ array $options = array() ] ) : array
public getCollectionNames ([ array $options = array() ] ) : array
public getDBRef ( array $ref ) : array
public getGridFS ([ string $prefix = "fs" ] ) : MongoGridFS
public getProfilingLevel ( void ) : int
public getReadPreference ( void ) : array
public getSlaveOkay ( void ) : bool
public getWriteConcern ( void ) : array
public lastError ( void ) : array
public listCollections ([ array $options = array() ] ) : array
public prevError ( void ) : array
public repair ([ bool $preserve_cloned_files = FALSE [, bool $backup_original_files = FALSE ]] ) : array
public resetError ( void ) : array
public selectCollection ( string $name ) : MongoCollection
public setProfilingLevel ( int $level ) : int
public setReadPreference ( string $read_preference [, array $tags ] ) : bool
public setSlaveOkay ([ bool $ok = TRUE ] ) : bool
public setWriteConcern ( mixed $w [, int $wtimeout ] ) : bool
public __toString ( void ) : string
}

Предопределенные константы

Уровни журнала MongoDB

MongoDB::PROFILING_OFF
Профилирование выключено.
MongoDB::PROFILING_SLOW
Профилирование включено для медленных операций (>100 мс).
MongoDB::PROFILING_ON
Профилирование включено для всех операций.

Поля

w
1

Количество серверов, на которые нужно реплицировать изменение, прежде чем вернуть успешное завершение. Наследуется экземплярами MongoCollection. Функциональность w доступна только с версии 1.5.1+ сервера MongoDB и 1.0.8+ драйвера.

Опция w используется всякий раз, когда вам нужно настроить уровень подтверждения (MongoCollection::insert(), MongoCollection::update(), MongoCollection::remove(), MongoCollection::save() и MongoCollection::ensureIndex(), все это поддерживается ). При значении по умолчанию (1) подтвержденная операция будет возвращена после выполнения операции сервером базы данных. Если сервер отключается до того, как операция будет реплицирована на вторичный сервер, можно потерять операцию навсегда. Таким образом, вы можете указать, что если w будет больше единицы, то это гарантирует, что по крайней мере один вторичный сервер выполнит операцию, прежде чем она будет считаться успешной.

Например, если w равно 2, основной сервер и один вторичный должны иметь запись операции, иначе драйвер сгенерирует исключение MongoCursorException. Соблазнительно установить для w общее число вторичных + основной, но тогда, если один вторичный сервер не работает, произойдет сбой и возникнет исключение, поэтому обычно w=2 является самым безопасным (основной сервер и один вторичный).

wtimeout
10000

Количество миллисекунд ожидания для репликации MongoDB::$w. Наследуется экземплярами MongoCollection. Функциональность w доступна только в версии 1.5.1+ сервера MongoDB и 1.0.8+ драйвера.

Если не установлено значение wtimeout, сервер всегда ждет завершения репликации на w серверах. По умолчанию драйвер ожидает 10 секунд, вы можете изменить это значение, чтобы изменить его поведение.

Смотрите также

Основная документация MongoDB для » баз данных.

Содержание

  • MongoDB::authenticate — Выполняет вход в базу данных
  • MongoDB::command — Выполняет команду базы данных
  • MongoDB::__construct — Создает новую базу данных
  • MongoDB::createCollection — Создает коллекцию
  • MongoDB::createDBRef — Создает ссылку на базу данных
  • MongoDB::drop — Удалаяет базу данных
  • MongoDB::dropCollection — Удаляет коллекцию [устарел]
  • MongoDB::execute — Запускает код JavaScript на сервере базы данных [устарело]
  • MongoDB::forceError — Создает ошибку базы данных
  • MongoDB::__get — Получить коллекцию
  • MongoDB::getCollectionInfo — Возвращает информацию о коллекциях в базе данных
  • MongoDB::getCollectionNames — Получает массив имен для всех коллекций в базе данных
  • MongoDB::getDBRef — Выбирает документ, указанный в ссылке на базу данных
  • MongoDB::getGridFS — Извлекает инструментарий для работы с файлами, хранящимися в этой базе данных
  • MongoDB::getProfilingLevel — Получает уровень профилирования базы данных
  • MongoDB::getReadPreference — Получает предпочтения чтения для базы данных
  • MongoDB::getSlaveOkay — Получает настройки slaveOkay для базы данных
  • MongoDB::getWriteConcern — Получает гарантии записи для базы данных
  • MongoDB::lastError — Проверяет, была ли ошибка в последней выполненной операции с базой данных
  • MongoDB::listCollections — Получает массив объектов MongoCollection для всех коллекций в базе данных
  • MongoDB::prevError — Проверяет последнюю ошибку, выданную во время работы базы данных
  • MongoDB::repair — Чинит и сжимает базу данных
  • MongoDB::resetError — Удаляет все помеченные ошибки в базе данных
  • MongoDB::selectCollection — Получает коллекцию
  • MongoDB::setProfilingLevel — Устанавливает уровень профилирования базы данных
  • MongoDB::setReadPreference — Устанавливает предпочтения чтения для базы данных
  • MongoDB::setSlaveOkay — Изменяет настройки slaveOkay для базы данных
  • MongoDB::setWriteConcern — Устанавливает гарантии записи для базы данных
  • MongoDB::__toString — Название базы данных


Выполняет вход в базу данных

  • « MongoDB
  • MongoDB::command »
  • PHP Manual
  • MongoDB
  • Выполняет вход в базу данных

MongoDB::authenticate

(PECL mongo >=1.0.1)

MongoDB::authenticate — Выполняет вход в базу данных

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Вместо этого вам необходимо предоставить учетные данные через строку подключения.

Описание

public MongoDB::authenticate ( string $username , string $password ) : array

Этот метод вызывает соединение для аутентификации. Если для сервера базы данных включена аутентификация (по умолчанию это не так), вам необходимо войти в систему, прежде чем база данных позволит вам что-либо сделать.

В общем, вы должны использовать аутентификацию, встроенную в MongoClient::__construct(), в предпочтение этому методу. Если вы аутентифицируетесь при подключении, и соединение прерывается и повторно подключается во время сеанса, вы будете повторно аутентифицированы. Если вы вручную прошли проверку подлинности с использованием этого метода, и соединение обрывается, вам придется снова вызывать этот метод после повторного подключения.

Этот метод идентичен выполнению:

<?php

$salted = "${username}:mongo:${password}";
$hash = md5($salted);

$nonce = $db->command(array("getnonce" => 1));

$saltedHash = md5($nonce["nonce"]."${username}${hash}");

$result = $db->command(array("authenticate" => 1,
    "user" => $username,
    "nonce" => $nonce["nonce"],
    "key" => $saltedHash
));

?>

Как только соединение было аутентифицировано, оно может быть де-аутентифицировано только с помощью команды базы данных "logout":

<?php

$db->command(array("logout" => 1));

?>

Список параметров

username

Имя пользователя.

password

Пароль (в текстовом виде).

Возвращаемые значения

Возвращает ответ базы данных. Если вход был успешным, вернет

<?php
array("ok" => 1);
?>
Если что-то пошло не так, вернет
<?php
array("ok" => 0, "errmsg" => "auth fails");
?>
(вместо "auth fails" может быть другое сообщение, в зависимости от версии базы данных и того, что не так).

Смотрите также

Основная документация MongoDB по » аутентификации.

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED при использовании. Пожалуйста, передавайте детали аутентификации в конструкторе.


Выполняет команду базы данных

  • « MongoDB::authenticate
  • MongoDB::__construct »
  • PHP Manual
  • MongoDB
  • Выполняет команду базы данных

MongoDB::command

(PECL mongo >=0.9.2)

MongoDB::command — Выполняет команду базы данных

Описание

public MongoDB::command ( array $command [, array $options = array() [, string &$hash ]] ) : array

Почти все, что не является операцией CRUD, может быть выполнено с помощью команды базы данных. Нужно узнать версию базы данных? Для этого есть команда. Нужно сделать агрегацию? Для этого есть команда. Нужно включить запись событий? Вы поняли идею.

Этот метод идентичен:

<?php

public function command($data) {
    return $this->selectCollection('$cmd')->findOne($data);
}

?>

Список параметров

command

Запрос на отправку.

options

Массив опций для создания индекса. В настоящее время доступны следующие варианты:

  • "socketTimeoutMS"

    Эта опция определяет время в миллисекундах для общения в socket. Если сервер не ответил за отведенное время, то будет брошено исключение MongoCursorTimeoutException, и не будет никакой возможности определить произвел ли сервер запись или нет. Значение -1 используется для постоянно отключения этой функции. Значением по умолчанию для MongoClient является 30000 (30 секунд).

Следующие параметры устарели и больше не должны использоваться:

  • "timeout"

    Устаревший псевдоним для "socketTimeoutMS".

hash

Установите хэш подключения сервера, который выполнил команду. Когда результат команды подходит для создания MongoCommandCursor, хеш предназначен для передачи в MongoCommandCursor::createFromDocument().

Хеш также будет соответствовать соединению, возвращенному из MongoClient::getConnections().

Список изменений

Версия | Описание
1.5.0 | Переименована опция "timeout" в "socketTimeoutMS". Выдает E_DEPRECATED при использовании "timeout". Добавлен параметр ссылки на hash.
1.2.0 | Добавлен параметр options с одним вариантом: "timeout".

Возвращаемые значения

Возвращает ответ базы данных. Каждый ответ базы данных всегда является максимум одним документом, что означает, что результат команды базы данных никогда не может превышать 16 Мб. Структура результирующего документа зависит от команды, но большинство результатов будет иметь поле ok, указывающее успех или неудачу, и results, содержащие массив каждого из результирующих документов.

Примеры

Пример #1 Пример использования MongoDB::command() "distinct"

Поиск всех различных значений для ключа.

<?php

$people = $db->people;

$people->insert(array("name" => "Joe", "age" => 4));
$people->insert(array("name" => "Sally", "age" => 22));
$people->insert(array("name" => "Dave", "age" => 22));
$people->insert(array("name" => "Molly", "age" => 87));

$ages = $db->command(array("distinct" => "people", "key" => "age"));

foreach ($ages['values'] as $age) {
    echo "$age\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

4
22
87

Пример #2 Пример использования MongoDB::command() "distinct"

Поиск всех различных значений для ключа, где значение больше или равно 18.

<?php

$people = $db->people;

$people->insert(array("name" => "Joe", "age" => 4));
$people->insert(array("name" => "Sally", "age" => 22));
$people->insert(array("name" => "Dave", "age" => 22));
$people->insert(array("name" => "Molly", "age" => 87));

$ages = $db->command(
    array(
        "distinct" => "people",
        "key" => "age",
        "query" => array("age" => array('$gte' => 18))
    )
);

foreach ($ages['values'] as $age) {
    echo "$age\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

22
87

Пример #3 Пример использования MongoDB::command() MapReduce

Получение всех пользователей, у которых есть хотя бы одно событие "sale", и сколько раз каждый из этих пользователей совершил распродажу.

<?php

// пример документа о событии
$events->insert(array("user_id" => $id,
    "type" => $type,
    "time" => new MongoDate(),
    "desc" => $description));

// конструктор карты и reduce функции
$map = new MongoCode("function() { emit(this.user_id,1); }");
$reduce = new MongoCode("function(k, vals) { ".
    "var sum = 0;".
    "for (var i in vals) {".
        "sum += vals[i];".
    "}".
    "return sum; }");

$sales = $db->command(array(
    "mapreduce" => "events",
    "map" => $map,
    "reduce" => $reduce,
    "query" => array("type" => "sale"),
    "out" => array("merge" => "eventCounts")));

$users = $db->selectCollection($sales['result'])->find();

foreach ($users as $user) {
    echo "{$user['_id']} принял участие в {$user['value']} распродажах.\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

User 47cc67093475061e3d9536d2 принял участие в 3 распродажах.
User 49902cde5162504500b45c2c принял участие в 14 распродажах.
User 4af467e4fd543cce7b0ea8e2 принял участие в 1 распродажах.

Замечание: Использование MongoCode

В этом примере используется MongoCode, который также может принимать аргумент scope. Однако в настоящее время MongoDB не поддерживает использование scope в MapReduce. Если вы хотите использовать переменные на стороне клиента в функциях MapReduce, вы можете добавить их в глобальную область, используя необязательное поле scope с командой базы данных. Смотрите » документацию MapReduce для получения дополнительной информации.

Замечание: Аргумент out

До 1.8.0 аргумент out был необязательным. Если вы его не используете, результаты MapReduce будут записаны во временную коллекцию, которая будет удалена при закрытии вашего соединения. В 1.8.0+ требуется аргумент out. Смотрите » документацию MapReduce для получения дополнительной информации.

Пример #4 Пример использования MongoDB::command() "geoNear"

В этом примере показано, как использовать команду geoNear.

<?php
$m = new MongoClient();
$d = $m->demo;
$c = $d->poiConcat;

$r = $d->command(array(
    'geoNear' => "poiConcat",      // Поиск в коллекции poiConcat
    'near' => array(-0.08, 51.48), // Поиск около 51.48° с.ш., 0.08° в.д.
    'spherical' => true,           // Включение сферический поиск
    'num' => 5,                    // Максимум 5 возвращенных документов
));
print_r($r);
?>

Смотрите также

  • MongoCollection::aggregate() - Выполняет агрегацию с использованием структуры агрегации
  • MongoCollection::findAndModify() - Обновляет документ и возвращает его
  • MongoCollection::group() - Выполняет операцию, аналогичную команде SQL GROUP BY

Основная документация MongoDB по » командам базы данных.


Создает новую базу данных

  • « MongoDB::command
  • MongoDB::createCollection »
  • PHP Manual
  • MongoDB
  • Создает новую базу данных

MongoDB::__construct

(PECL mongo >=0.9.0)

MongoDB::__construct — Создает новую базу данных

Описание

public MongoDB::__construct ( MongoClient $conn , string $name )

Этот метод не предназначен для непосредственного вызова. Предпочтительный способ создания экземпляра MongoDB - через MongoClient::__get() или MongoClient::selectDB().

Если вы игнорируете предыдущий абзац и хотите вызвать его напрямую, вы можете сделать это:

<?php

$m = new MongoClient();
$db = new MongoDB($m, 'mydbname');

?>

Но не надо. Разве это не намного лучше:

<?php

$m = new MongoClient();
$db = $m->mydbname;

// или, если имя содержит странные символы:

$db = $m->selectDB('my,db:name');

?>

Список параметров

MongoClient conn

Подключение к базе данных.

name

Имя базы данных.

Возвращаемые значения

Возвращает базу данных.

Ошибки

Выдает исключение по умолчанию, если имя базы данных некорректное.


Создает коллекцию

  • « MongoDB::__construct
  • MongoDB::createDBRef »
  • PHP Manual
  • MongoDB
  • Создает коллекцию

MongoDB::createCollection

(PECL mongo >=0.9.0)

MongoDB::createCollection — Создает коллекцию

Описание

public MongoDB::createCollection ( string $name [, array $options ] ) : MongoCollection

Этот метод используется для создания ограниченных коллекций и других коллекций, требующих специальных параметров. Это идентично выполнению:

<?php

$collection = $db->command(array(
    "create" => $name,
    "capped" => $options["capped"],
    "size" => $options["size"],
    "max" => $options["max"],
    "autoIndexId" => $options["autoIndexId"],
));

?>
Смотрите MongoDB::command() для получения дополнительной информации о командах базы данных.

Список параметров

name

Название коллекции.

options

Массив, содержащий опции для коллекций. Каждый параметр является собственным элементом в массиве параметров, а имя параметра, указанное ниже, является ключом элемента. Поддерживаемые параметры зависят от версии сервера MongoDB и механизма хранения, и драйвер принимает любой параметр, который вы передаете, прямо на сервер. Вот некоторые из поддерживаемых опций, но вы можете найти полный список в основных документах MongoDB на » createCollection:

capped

Если коллекция должна быть фиксированного размера.

size

Если коллекция имеет фиксированный размер, ее размер в байтах.

max

Если коллекция имеет фиксированный размер, максимальное количество элементов для хранения в коллекции.

autoIndexId

Если значение capped равно TRUE, вы можете указать FALSE, чтобы отключить автоматический индекс, созданный в поле _id. До MongoDB 2.2 значением по умолчанию для autoIndexId было FALSE.

Возвращаемые значения

Возвращает объект коллекции, представляющий новую коллекцию.

Примеры

Пример #1 Пример использования MongoDB::createCollection() ограниченной коллекции

Ограниченная коллекция - это особый тип коллекции, который имеет фиксированный размер или фиксированное количество элементов. Как только коллекция "заполнится", самые старые элементы будут удалены при добавлении новых элементов. Ограниченные коллекции могут быть очень полезны для приложений, таких как ведение журналов, где вы можете зарезервировать определенное количество места для журналов и не беспокоиться о том, что они станут слишком большими.

В этом примере создается очень маленькая коллекция журналов, в которой будет храниться не более 10 документов.

<?php

$log = $db->createCollection(
    "logger",
    array(
        'capped' => true,
        'size' => 10*1024,
        'max' => 10
    )
);

for ($i = 0; $i < 100; $i++) {
    $log->insert(array("level" => WARN, "msg" => "пример сообщения журнала #$i", "ts" => new MongoDate()));
}

$msgs = $log->find();

foreach ($msgs as $msg) {
    echo $msg['msg']."\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

пример сообщения журнала #90
пример сообщения журнала #91
пример сообщения журнала #92
пример сообщения журнала #93
пример сообщения журнала #94
пример сообщения журнала #95
пример сообщения журнала #96
пример сообщения журнала #97
пример сообщения журнала #98
пример сообщения журнала #99

Список изменений

Версия Описание
1.4.0

В версиях до 1.4.0 все параметры были аргументами метода. Синопсис функций в этих старых версиях:

public MongoDB::createCollection ( string $name [, bool $capped = FALSE [, int $size = 0 [, int $max = 0 ]]] ) : MongoCollection

Значение параметров такое же, как описано выше в аргументе options.


Создает ссылку на базу данных

  • « MongoDB::createCollection
  • MongoDB::drop »
  • PHP Manual
  • MongoDB
  • Создает ссылку на базу данных

MongoDB::createDBRef

(PECL mongo >=0.9.0)

MongoDB::createDBRef — Создает ссылку на базу данных

Описание

public MongoDB::createDBRef ( string $collection , mixed $document_or_id ) : array

Этот метод является гибким интерфейсом для создания ссылок на базу данных (смотрите MongoDBRef).

Список параметров

collection

Коллекция, на которую будет указывать ссылка на базу данных.

document_or_id

Если указан массив или объект, его поле _id будет использоваться в качестве идентификатора ссылки. Если указан MongoId или скаляр, он будет использоваться в качестве ссылочного идентификатора.

Возвращаемые значения

Возвращает массив ссылок на базу данных.

Если в качестве параметра document_or_id был указан массив без поля _id, будет возвращено значение NULL.

Примеры

Пример #1 Пример использования MongoDB::createDBRef()

Пример, демонстрирующий, как программно создать массив ссылок на базу данных из документа.

<?php

$articles = $db->articles;

$article = array(
 'title' => 'Test article',
 'description' => 'Test article description'
);

$articles->insert($article);
$ref = $db->createDBRef('articles', $article);

print_r($article);
print_r($ref);
?>

Результатом выполнения данного примера будет что-то подобное:

     Array
     (
         [title] => Test article
         [description] => Test article description
         [_id] => MongoId Object
             (
             )

     )
     Array
     (
         [$ref] => articles
         [$id] => MongoId Object
             (
             )

     )

Теперь $ref может быть сохранен в другом документе и получен позже с помощью MongoDB::getDBRef() или MongoCollection::getDBRef().

Пример #2 Пример использования MongoDB::createDBRef()

Пример, демонстрирующий, как программно создать ссылку на базу данных только из идентификатора.

<?php

$id = new MongoId('47cc67093475061e3d9536d2');
$ref = $db->createDBRef('articles', $id);
?>


Удалаяет базу данных

  • « MongoDB::createDBRef
  • MongoDB::dropCollection »
  • PHP Manual
  • MongoDB
  • Удалаяет базу данных

MongoDB::drop

(PECL mongo >=0.9.0)

MongoDB::drop — Удалаяет базу данных

Описание

public MongoDB::drop ( void ) : array

Удаляет текущую используемую базу данных.

Это аналогичто запуску:

<?php

public function drop() {
    $this->command(array("dropDatabase" => 1));
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает резульата операции.

Примеры

Пример #1 MongoDB::drop() example

Этот пример показывает, как можно удалить базу данных Mongo и узнать результат операции.

<?php

$db = $mongo->foo;
$response = $db->drop();
print_r($response);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [dropped] => foo.$cmd
    [ok] => 1
)


Удаляет коллекцию [устарел]

  • « MongoDB::drop
  • MongoDB::execute »
  • PHP Manual
  • MongoDB
  • Удаляет коллекцию [устарел]

MongoDB::dropCollection

(PECL mongo >=0.9.0)

MongoDB::dropCollection — Удаляет коллекцию [устарел]

Описание

public MongoDB::dropCollection ( mixed $coll ) : array
Внимание

Устаревшая функция

Используйте MongoCollection::drop() вместо него.

Эта функция приводит к утечке памяти в версии 1.0.7 и более ранних!

Список параметров

coll

MongoCollection или название коллекции для удаления.

Возвращаемые значения

Возвращает ответ базы данных.


Запускает код JavaScript на сервере базы данных [устарело]

  • « MongoDB::dropCollection
  • MongoDB::forceError »
  • PHP Manual
  • MongoDB
  • Запускает код JavaScript на сервере базы данных [устарело]

MongoDB::execute

(PECL mongo >=0.9.3)

MongoDB::execute — Запускает код JavaScript на сервере базы данных [устарело]

Описание

public MongoDB::execute ( mixed $code [, array $args = array() ] ) : array
Внимание

Команда » eval, которую вызывает этот метод, не рекомендуется в MongoDB 3.0+.

Сервер базы данных Mongo работает на движке JavaScript. Этот метод позволяет запускать произвольный JavaScript в базе данных. Это может быть полезно, если вы хотите слегка коснуться нескольких коллекций или обработать некоторые результаты на стороне базы данных, чтобы уменьшить объем, который должен быть отправлен клиенту.

Запуск JavaScript в базе данных требует блокировки записи, то есть блокирует другие операции. Обязательно подумайте об этом, прежде чем запускать длинный скрипт.

Это оболочка для команды базы данных » eval. Этот метод в основном:

<?php

public function execute($code, $args) {
    return $this->command(array('eval' => $code, 'args' => $args));
}

?>

MongoDB подразумевает оператор возврата, если у вас есть один оператор в одной строке. Это может вызвать некоторое неинтуитивное поведение. Например, это возвращает "foo":

<?php

$db->execute('"foo";');

?>

Тем не менее, это вернет NULL:

<?php

$db->execute('"bar"; "foo";'); // более одного оператора

$db->execute('db.foo.count(
);'); // более одной строки

?>

Чтобы избежать неожиданного поведения, лучше не полагаться на MongoDB, чтобы решить, что возвращать, а явно указать возвращаемое значение. В приведенных выше примерах мы можем изменить их на:

<?php

$db->execute('"bar"; return "foo";');

$db->execute('return db.foo.count(
);');

?>

Теперь первый оператор вернет "foo", а второй оператор вернет счетчик коллекции "foo".

Список параметров

code

MongoCode или строка для выполнения.

args

Аргументы для передачи в code.

Возвращаемые значения

Возвращает результат оценки.

Примеры

Пример #1 Пристой пример использования MongoDB::execute()

<?php

$response = $db->execute("function() { return 'Привет, мир!'; }");
echo $response['retval'];

?>

Результатом выполнения данного примера будет что-то подобное:

Привет, мир!

Пример #2 Пример использования параметра MongoDB::execute()

Необязательный массив параметров будет передан в функцию JavaScript.

<?php

$response = $db->execute("function(greeting, name) { return greeting+', '+name+'!'; }", array("Пока", "Джо"));
echo $response['retval'];

?>

Результатом выполнения данного примера будет что-то подобное:

Пока, Джо!

Пример #3 Пример области

Если MongoCode объект используется вместо строки для первого параметра, можно передать область, в которой будет выполняться JavaScript.

<?php

$func =
    "function(greeting, name) { ".
        "return greeting+', '+name+', сказал '+greeter;".
    "}";
$scope = array("greeter" => "Фред");

$code = new MongoCode($func, $scope);

$response = $db->execute($code, array("Пока", "Джо"));
echo $response['retval'];

?>

Результатом выполнения данного примера будет что-то подобное:

Пока, Джо, сказал Фред

Смотрите также

  • Документация MongoDB по » команде eval

Список изменений

Версия | Описание
1.7.0 | Этот метод устарел из-за того, что команда лежащий в основе » eval устарела в MongoDB 3.0+.


Создает ошибку базы данных

  • « MongoDB::execute
  • MongoDB::__get »
  • PHP Manual
  • MongoDB
  • Создает ошибку базы данных

MongoDB::forceError

(PECL mongo >=0.9.5)

MongoDB::forceError — Создает ошибку базы данных

Описание

public MongoDB::forceError ( void ) : bool

Этот метод не очень полезен для обычного использования MongoDB. Вызывает ошибку базы данных. Это означает, что MongoDB::lastError() вернет общую ошибку базы данных после выполнения этой команды.

Эта команда идентична выполнению:

<?php

public function forceError() {
    return $this->command(array('forceerror' => 1));
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ответ базы данных.

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED при использовании.


Получить коллекцию

  • « MongoDB::forceError
  • MongoDB::getCollectionInfo »
  • PHP Manual
  • MongoDB
  • Получить коллекцию

MongoDB::__get

(PECL mongo >=1.0.2)

MongoDB::__get — Получить коллекцию

Описание

public MongoDB::__get ( string $name ) : MongoCollection

Это самый простой путь получить коллекцию из объекта базы данных. Если название коллекции содержит странные символы, то вы можете использовать метод MongoDB::selectCollection().

<?php

$mongo = new MongoClient();

// следующие две стрки эквивалентны
$collection = $mongo->selectDB("foo")->selectCollection("bar");
$collection = $mongo->foo->bar;

?>

Список параметров

name

Имя коллекции.

Возвращаемые значения

Возвращает коллекцию.


Возвращает информацию о коллекциях в базе данных

  • « MongoDB::__get
  • MongoDB::getCollectionNames »
  • PHP Manual
  • MongoDB
  • Возвращает информацию о коллекциях в базе данных

MongoDB::getCollectionInfo

(PECL mongo >=1.6.0)

MongoDB::getCollectionInfo — Возвращает информацию о коллекциях в базе данных

Описание

public MongoDB::getCollectionInfo ([ array $options = array() ] ) : array

Получает список всех коллекций в базе данных и возвращает их в виде массива документов, которые содержат их имена и параметры.

Замечание: Этот метод использует комманду » listCollections когда общается с MongoDB 2.8+. Для более старых баз данных, этот метод запрашивает специальную коллекцию system.namespaces.

Список параметров

options

Массив опций для перечисления коллекций. В настоящее время доступны следующие варианты:

  • "filter"

    Опциональный критерий запроса. Если задан, то будет использован для фильтрации коллекций, включенных в результирующий набор.

    Подходящие поля для запроса включают "name" (строка с именем коллекции, без префикса в виде имени базы данных) и "options" (объект, включающий опции, использованные при создании этой коллекции)..

    Замечание: MongoDB 2.6 и более ранние версии, требуют, чтобы критерий "name" был строго строкового типа. Потому, что драйвер должен добавть к этому значению префикс в виде имени базы данныхдля запроса коллекции system.namespaces. Более поздние версии MongoDB не имеют этого ограничения, так как драйвер использует комманду listCollections.

  • "includeSystemCollections"

    Логическое значение, по умолчанию FALSE. Определяет, должны ли системные коллекции входить в результирующий набор.

Следующая опция может использоваться с MongoDB 2.8+:

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

Возвращаемые значения

Эта функция возвращает массив, где каждый элемент представляет собой массив, описывающий коллекцию. Элементы будут содержать ключ name, обозначающий имя коллекции, и, необязательно, ключ options, обозначающий массив объектов, используемых для создания коллекции. Например, закрытые коллекции будут содержать capped и size параметры.

Ошибки

Для MongoDB 2.6 и более ранних версий MongoException будет выброшено, если для критерия "name" опции "filter" было указано не строковое значение.

Примеры

Пример #1 Пример использования MongoDB::getCollectionInfo()

<?php
$m = new MongoClient();
$db = $m->selectDB("demo");
var_dump($db->getCollectionInfo());
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  array(2) {
    ["name"]=>
    string(4) "logs"
    ["options"]=>
    array(2) {
      ["capped"]=>
      bool(true)
      ["size"]=>
      int(10240)
    }
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(5) "users"
    ["options"]=>
    array(1) {
      ["flags"]=>
      int(1)
    }
  }
}

Смотрите также

  • MongoDB::getCollectionNames() - Получает массив имен для всех коллекций в базе данных
  • MongoDB::listCollections() - Получает массив объектов MongoCollection для всех коллекций в базе данных


Получает массив имен для всех коллекций в базе данных

  • « MongoDB::getCollectionInfo
  • MongoDB::getDBRef »
  • PHP Manual
  • MongoDB
  • Получает массив имен для всех коллекций в базе данных

MongoDB::getCollectionNames

(PECL mongo >=1.3.0)

MongoDB::getCollectionNames — Получает массив имен для всех коллекций в базе данных

Описание

public MongoDB::getCollectionNames ([ array $options = array() ] ) : array

Получает список всех коллекций в базе данных и возвращает их имена в виде массива строк.

Замечание: Этот метод использует комманду » listCollections когда общается с MongoDB 2.8+. Для более старых баз данных, этот метод запрашивает специальную коллекцию system.namespaces.

Список параметров

options

Массив опций для перечисления коллекций. В настоящее время доступны следующие варианты:

  • "filter"

    Опциональный критерий запроса. Если задан, то будет использован для фильтрации коллекций, включенных в результирующий набор.

    Подходящие поля для запроса включают "name" (строка с именем коллекции, без префикса в виде имени базы данных) и "options" (объект, включающий опции, использованные при создании этой коллекции)..

    Замечание: MongoDB 2.6 и более ранние версии, требуют, чтобы критерий "name" был строго строкового типа. Потому, что драйвер должен добавть к этому значению префикс в виде имени базы данныхдля запроса коллекции system.namespaces. Более поздние версии MongoDB не имеют этого ограничения, так как драйвер использует комманду listCollections.

  • "includeSystemCollections"

    Логическое значение, по умолчанию FALSE. Определяет, должны ли системные коллекции входить в результирующий набор.

Следующая опция может использоваться с MongoDB 2.8+:

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

Возвращаемые значения

Returns the collection names as an array of strings.

Ошибки

Для MongoDB 2.6 и более ранних версий MongoException будет выброшено, если для критерия "name" опции "filter" было указано не строковое значение.

Список изменений

Версия | Описание
1.6.0 | Изменен первый параметр, чтобы он был массивом опций. До версии 1.6.0 первым параметром было булево значение, указывающее на параметр "includeSystemCollections".

Примеры

Пример #1 Пример использования MongoDB::getCollectionNames()

<?php
$m = new MongoClient();
$db = $m->selectDB("demo");
$collections = $db->getCollectionNames();

foreach ($collections as $collectionName) {
    echo "Found collection: ", $collectionName, "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

...
Found collection: img
Found collection: beer
Found collection: collation
...

Смотрите также

  • MongoDB::listCollections() - Получает массив объектов MongoCollection для всех коллекций в базе данных
  • MongoDB::getCollectionInfo() - Возвращает информацию о коллекциях в базе данных


Выбирает документ, указанный в ссылке на базу данных

  • « MongoDB::getCollectionNames
  • MongoDB::getGridFS »
  • PHP Manual
  • MongoDB
  • Выбирает документ, указанный в ссылке на базу данных

MongoDB::getDBRef

(PECL mongo >=0.9.0)

MongoDB::getDBRef — Выбирает документ, указанный в ссылке на базу данных

Описание

public MongoDB::getDBRef ( array $ref ) : array

Список параметров

ref

Ссылка на базу данных.

Возвращаемые значения

Возвращает документ, указанный в ссылке на базу данных.

Примеры

Пример #1 Пример использования MongoDB::getDBRef()

Пример, демонстрирующий, как получить ссылку на базу данных и каков ожидаемый ввод.

<?php

 $ref = array(
   '$ref' => 'profiles',
   '$id' => new MongoId('47cc67093475061e3d9536d2')
 );

 $profile = $db->getDBRef($ref);
 ?>

Смотрите MongoDB::createDBRef() для получения дополнительной информации о том, как программно создавать ссылки на базу данных.


Извлекает инструментарий для работы с файлами, хранящимися в этой базе данных

  • « MongoDB::getDBRef
  • MongoDB::getProfilingLevel »
  • PHP Manual
  • MongoDB
  • Извлекает инструментарий для работы с файлами, хранящимися в этой базе данных

MongoDB::getGridFS

(PECL mongo >=0.9.0)

MongoDB::getGridFS — Извлекает инструментарий для работы с файлами, хранящимися в этой базе данных

Описание

public MongoDB::getGridFS ([ string $prefix = "fs" ] ) : MongoGridFS

Список параметров

prefix

Префикс для файлов и наборов фрагментов.

Возвращаемые значения

Возвращает новый объект gridfs для базы данных.

Примеры

Пример #1 µПример использования MongoDB::getGridFS()

Этот пример демонстрирует, как получить экземпляр MongoGridFS.

<?php

$db = $mongo->my_db;

$prefix = 'files';
$collection = $db->getGridFS($prefix);

?>

Узнайте больше о MongoGridFS, чтобы узнать, как хранить файлы с MongoDB.


Получает уровень профилирования базы данных

  • « MongoDB::getGridFS
  • MongoDB::getReadPreference »
  • PHP Manual
  • MongoDB
  • Получает уровень профилирования базы данных

MongoDB::getProfilingLevel

(PECL mongo >=0.9.0)

MongoDB::getProfilingLevel — Получает уровень профилирования базы данных

Описание

public MongoDB::getProfilingLevel ( void ) : int

Это возвращает текущий уровень профилирования базы данных.

Профилировщик базы данных отслеживает время выполнения запроса. Если вы включите его (скажем, MongoDB::setProfilingLevel() или оболочку), вы сможете увидеть, сколько запросов заняло больше времени, чем заданное количество миллисекунд, или время для всех запросов.

Обратите внимание, что профилирование замедляет запросы, поэтому его лучше использовать при разработке или тестировании, чем в чувствительном ко времени приложении.

Эта функция эквивалентна выполнению:

<?php

public function getProfilingLevel() {
    return $this->command(array('profile' => -1));
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает уровень профилирования.

Смотрите также

  • Документация MongoDB по » профилированию
  • MongoDB::setProfilingLevel() - Устанавливает уровень профилирования базы данных


Получает предпочтения чтения для базы данных

  • « MongoDB::getProfilingLevel
  • MongoDB::getSlaveOkay »
  • PHP Manual
  • MongoDB
  • Получает предпочтения чтения для базы данных

MongoDB::getReadPreference

(PECL mongo >=1.3.0)

MongoDB::getReadPreference — Получает предпочтения чтения для базы данных

Описание

public MongoDB::getReadPreference ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Данная функция возвращает массив, описывающий режимы предпочтения чтения. Массив содержит следующие значения: type для строкового значения режима предпочтения чтения (соответствующий константам MongoClient) и tagsets, содержащее список всех критерий наборов тегов. Если наборы тегов не были указаны, то tagsets в массиве не будет.

Список изменений

Версия | Описание
1.3.3 | Возвращаемое значение было изменено, чтобы соответствовать MongoDB::setReadPreference(). Значение type было изменено с числа на строку, type_string была удалена, и tagsets теперь выражают теги как пары ключ/значение вместо строк, разделенных двоеточиями.

Примеры

Пример #1 Пример возвращаемого значения MongoDB::getReadPreference()

<?php

$m = new MongoClient();
$db = $m->test;
$db->setReadPreference(MongoClient::RP_SECONDARY, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
    array(),
));
var_dump($db->getReadPreference());
?>

Результат выполнения данного примера:

array(2) {
  ["type"]=>
  string(9) "secondary"
  ["tagsets"]=>
  array(3) {
    [0]=>
    array(2) {
      ["dc"]=>
      string(4) "east"
      ["use"]=>
      string(9) "reporting"
    }
    [1]=>
    array(1) {
      ["dc"]=>
      string(7) "west"
    }
    [2]=>
    array(0) {
    }
  }
}

Смотрите также

  • Документация по предпочтениям чтения.
  • MongoDB::setReadPreference() - Устанавливает предпочтения чтения для базы данных


Получает настройки slaveOkay для базы данных

  • « MongoDB::getReadPreference
  • MongoDB::getWriteConcern »
  • PHP Manual
  • MongoDB
  • Получает настройки slaveOkay для базы данных

MongoDB::getSlaveOkay

(PECL mongo >=1.1.0)

MongoDB::getSlaveOkay — Получает настройки slaveOkay для базы данных

Описание

public MongoDB::getSlaveOkay ( void ) : bool

Смотрите раздел про запросы данного руководства для получения информации о распределении чтения среди вторичных серверов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает значение slaveOkay для этого экземпляра.

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED при использовании.

Смотрите также

  • Предпочтения чтения
  • MongoDB::getReadPreference() - Получает предпочтения чтения для базы данных
  • MongoDB::setReadPreference() - Устанавливает предпочтения чтения для базы данных


Получает гарантии записи для базы данных

  • « MongoDB::getSlaveOkay
  • MongoDB::lastError »
  • PHP Manual
  • MongoDB
  • Получает гарантии записи для базы данных

MongoDB::getWriteConcern

(PECL mongo >=1.5.0)

MongoDB::getWriteConcern — Получает гарантии записи для базы данных

Описание

public MongoDB::getWriteConcern ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция возвращает массив, описывающий контроль записи. Массив содержит значения w - уровень подтверждения или режим в виде строки, и wtimeout определяющий максимальное количество миллисекунд ожидания для сервера, чтобы удовлетворить контроль записи.

Примеры

Пример #1 Пример возвращаемого значения MongoDB::getWriteConcern()

<?php

$mc = new MongoClient('mongodb://localhost:27017', array('wTimeoutMS' => 500));
$db = $mc->selectDB('test');
var_dump($db->getWriteConcern());

$db->setWriteConcern(1, 1000);
var_dump($db->getWriteConcern());
?>

Результат выполнения данного примера:

array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(500)
}
array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(1000)
}

Смотрите также

  • Документация по гарантиям записи.
  • MongoDB::setWriteConcern() - Устанавливает гарантии записи для базы данных


Проверяет, была ли ошибка в последней выполненной операции с базой данных

  • « MongoDB::getWriteConcern
  • MongoDB::listCollections »
  • PHP Manual
  • MongoDB
  • Проверяет, была ли ошибка в последней выполненной операции с базой данных

MongoDB::lastError

(PECL mongo >=0.9.5)

MongoDB::lastError — Проверяет, была ли ошибка в последней выполненной операции с базой данных

Описание

public MongoDB::lastError ( void ) : array

Этот метод эквивалентен:

<?php

public function lastError() {
    return $this->command(array('getlasterror' => 1));
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ошибку, если она была.

Примеры

Пример #1 Пример использования MongoDB::lastError(), при ошибке NULL

<?php
$db->resetError();
var_dump($db->lastError());
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["err"]=>
  NULL
  ["n"]=>
  int(0)
  ["ok"]=>
  float(1)
}

Пример #2 Пример использования MongoDB::lastError(), при дублировании ключа

<?php
$c = $db->selectCollection("foo");

// вставляем два документа с одинаковым _id
$c->insert(array("_id" => 1));
$c->insert(array("_id" => 1));

var_dump($db->lastError());
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["err"]=>
  string(64) "E11000 duplicate key errorindex: foo.foo.$_id_  dup key: { : 1 }"
  ["n"]=>
  int(0)
  ["ok"]=>
  float(1)
}


Получает массив объектов MongoCollection для всех коллекций в базе данных

  • « MongoDB::lastError
  • MongoDB::prevError »
  • PHP Manual
  • MongoDB
  • Получает массив объектов MongoCollection для всех коллекций в базе данных

MongoDB::listCollections

(PECL mongo >=0.9.0)

MongoDB::listCollections — Получает массив объектов MongoCollection для всех коллекций в базе данных

Описание

public MongoDB::listCollections ([ array $options = array() ] ) : array

Получает список всех коллекций в базе данных и возвращает их в виде массива объектов MongoCollection.

Замечание: Этот метод использует комманду » listCollections когда общается с MongoDB 2.8+. Для более старых баз данных, этот метод запрашивает специальную коллекцию system.namespaces.

Список параметров

options

Массив опций для перечисления коллекций. В настоящее время доступны следующие варианты:

  • "filter"

    Опциональный критерий запроса. Если задан, то будет использован для фильтрации коллекций, включенных в результирующий набор.

    Подходящие поля для запроса включают "name" (строка с именем коллекции, без префикса в виде имени базы данных) и "options" (объект, включающий опции, использованные при создании этой коллекции)..

    Замечание: MongoDB 2.6 и более ранние версии, требуют, чтобы критерий "name" был строго строкового типа. Потому, что драйвер должен добавть к этому значению префикс в виде имени базы данныхдля запроса коллекции system.namespaces. Более поздние версии MongoDB не имеют этого ограничения, так как драйвер использует комманду listCollections.

  • "includeSystemCollections"

    Логическое значение, по умолчанию FALSE. Определяет, должны ли системные коллекции входить в результирующий набор.

Следующая опция может использоваться с MongoDB 2.8+:

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

Возвращаемые значения

Возвращает массив объектов MongoCollection.

Ошибки

Для MongoDB 2.6 и более ранних версий MongoException будет выброшено, если для критерия "name" опции "filter" было указано не строковое значение.

Список изменений

Версия | Описание
1.6.0 | Изменен первый параметр, чтобы он был массивом опций. До версии 1.6.0 первым параметром было булево значение, указывающее на параметр "includeSystemCollections".
1.3.0 | Добавлен параметр includeSystemCollections.

Примеры

Пример #1 Пример использования MongoDB::listCollections()

В следующем примере демонстрируется счетчик выполнения для каждой коллекции в базе данных.

<?php

$m = new MongoClient();
$db = $m->selectDB("demo");
$collections = $db->listCollections();

foreach ($collections as $collection) {
    echo "количество документов в $collection: ";
    echo $collection->count(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

...
amount of documents in demo.pubs: 4
amount of documents in demo.elephpants: 3
amount of documents in demo.cities: 22840
...

Смотрите также

  • MongoDB::getCollectionNames() - Получает массив имен для всех коллекций в базе данных
  • MongoDB::getCollectionInfo() - Возвращает информацию о коллекциях в базе данных


Проверяет последнюю ошибку, выданную во время работы базы данных

  • « MongoDB::listCollections
  • MongoDB::repair »
  • PHP Manual
  • MongoDB
  • Проверяет последнюю ошибку, выданную во время работы базы данных

MongoDB::prevError

(PECL mongo >=0.9.5)

MongoDB::prevError — Проверяет последнюю ошибку, выданную во время работы базы данных

Описание

public MongoDB::prevError ( void ) : array

MongoDB::lastError() предпочтительнее этого. Метод возвращает последнюю ошибку базы данных, которая произошла, и сколько операций назад она произошла. Метод устаревший.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ошибку и количество операций назад, когда она произошла.

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED при использовании.


Чинит и сжимает базу данных

  • « MongoDB::prevError
  • MongoDB::resetError »
  • PHP Manual
  • MongoDB
  • Чинит и сжимает базу данных

MongoDB::repair

(PECL mongo >=0.9.0)

MongoDB::repair — Чинит и сжимает базу данных

Описание

public MongoDB::repair ([ bool $preserve_cloned_files = FALSE [, bool $backup_original_files = FALSE ]] ) : array

Создает свежую копию всех данных базы данных. Удалит все поврежденные данные и найдет компактные и большие участки свободного пространства. Это очень медленная операция для большой базы данных.

Обычно запускается из оболочки или командной строки, а не из драйвера.

Это эквивалентно функции:

<?php

public function repair() {
    return $this->command(array('repairDatabase' => 1));
}

?>

Список параметров

preserve_cloned_files

Если скопированные файлы должны быть сохранены, если восстановление не удается.

backup_original_files

Если должна быть создана резервная копия оригинальных файлов.

Возвращаемые значения

Возвращает ответ базы данных.

Смотрите также

Основная документация MongoDB по » repairDatabase.

Примеры

Пример #1 Пример использования MongoDB::repair()

Этот пример демонстрирует, как восстановить и сжать базу данных.

<?php

$db = $mongo->foo;

$response = $db->repair();
print_r($response);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [ok] => 1
)


Удаляет все помеченные ошибки в базе данных

  • « MongoDB::repair
  • MongoDB::selectCollection »
  • PHP Manual
  • MongoDB
  • Удаляет все помеченные ошибки в базе данных

MongoDB::resetError

(PECL mongo >=0.9.5)

MongoDB::resetError — Удаляет все помеченные ошибки в базе данных

Описание

public MongoDB::resetError ( void ) : array

Этот метод не используется в обычных операциях. Сбрасывает трекер ошибок базы данных (который может быть увеличен с помощью MongoDB::forceError(), также обычно не используется).

Это эквивалентно:

<?php

public function resetError() {
    return $this->command(array('reseterror' => 1));
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ответ базы данных.

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED при использовании.


Получает коллекцию

  • « MongoDB::resetError
  • MongoDB::setProfilingLevel »
  • PHP Manual
  • MongoDB
  • Получает коллекцию

MongoDB::selectCollection

(PECL mongo >=0.9.0)

MongoDB::selectCollection — Получает коллекцию

Описание

public MongoDB::selectCollection ( string $name ) : MongoCollection

Список параметров

name

Название коллекции.

Возвращаемые значения

Возвращает новый объект коллекции.

Ошибки

Выдает Exception, если имя коллекции недопустимо.


Устанавливает уровень профилирования базы данных

  • « MongoDB::selectCollection
  • MongoDB::setReadPreference »
  • PHP Manual
  • MongoDB
  • Устанавливает уровень профилирования базы данных

MongoDB::setProfilingLevel

(PECL mongo >=0.9.0)

MongoDB::setProfilingLevel — Устанавливает уровень профилирования базы данных

Описание

public MongoDB::setProfilingLevel ( int $level ) : int

Изменяет текущий уровень профилирования базы данных.

Эта функция эквивалентна выполнению:

<?php

public function setProfilingLevel($level) {
    return $this->command(array('profile' => $level));
}

?>

Варианты уровней: 0 (выкл.), 1 (запросы > 100 мс) и 2 (все запросы). Если вы хотите профилировать запросы, которые занимают больше времени, чем другой период времени, используйте команду базы данных и передайте ей второй параметр, количество миллисекунд. Например, чтобы профилировать все запросы, которые занимают более одной секунды, выполните:

<?php

$result = $this->command(array('profile' => 1, 'slowms' => 1000));

?>

Профилированные запросы появятся в коллекции system.profile этой базы данных.

Список параметров

level

Уровень профилирования.

Возвращаемые значения

Возвращает предыдущий уровень профилирования.

Смотрите также

  • Документация MongoDB по » профилированию
  • MongoDB::getProfilingLevel() - Получает уровень профилирования базы данных


Устанавливает предпочтения чтения для базы данных

  • « MongoDB::setProfilingLevel
  • MongoDB::setSlaveOkay »
  • PHP Manual
  • MongoDB
  • Устанавливает предпочтения чтения для базы данных

MongoDB::setReadPreference

(PECL mongo >=1.3.0)

MongoDB::setReadPreference — Устанавливает предпочтения чтения для базы данных

Описание

public MongoDB::setReadPreference ( string $read_preference [, array $tags ] ) : bool

Список параметров

read_preference

Режимы предпочтения чтения: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED и MongoClient::RP_NEAREST.

tags

Пустой массив, либо содержащий наборы тегов, где каждый такой набор является массивом из критериев, используемых в соответствии с тегами членов набора реплик.

Возвращаемые значения

Возвращает TRUE в случае успеха, иначе - FALSE.

Ошибки

Генерирует ошибку уровня E_WARNING, в случае неверных параметров, либо если один или более наборов тегов были переданы с режимом чтения MongoClient::RP_PRIMARY.

Примеры

Пример #1 Пример использования синтаксиса массива набора тегов MongoDB::setReadPreference()

<?php

$m = new MongoClient();
$db = $m->test;

// Предпочитаем ближайший сервер в "восточном" центре обработки данных,
// также используемый для отчетности, но используем сервер в "западном" центре обработки данных.
$db->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));
?>

Смотрите также

  • Документация по предпочтениям чтения.
  • MongoDB::getReadPreference() - Получает предпочтения чтения для базы данных


Изменяет настройки slaveOkay для базы данных

  • « MongoDB::setReadPreference
  • MongoDB::setWriteConcern »
  • PHP Manual
  • MongoDB
  • Изменяет настройки slaveOkay для базы данных

MongoDB::setSlaveOkay

(PECL mongo >=1.1.0)

MongoDB::setSlaveOkay — Изменяет настройки slaveOkay для базы данных

Описание

public MongoDB::setSlaveOkay ([ bool $ok = TRUE ] ) : bool

Смотрите раздел про запросы данного руководства для получения информации о распределении чтения среди вторичных серверов.

Список параметров

ok

Если чтения должны быть отправлены вторичным членам набора реплик для всех возможных запросов, использующих этот экземпляр MongoDB.

Возвращаемые значения

Возвращает предыдущее значение slaveOkay для этого экземпляра.

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED при использовании.

Смотрите также

  • Предпочтения чтения
  • MongoDB::setReadPreference() - Устанавливает предпочтения чтения для базы данных
  • MongoDB::getReadPreference() - Получает предпочтения чтения для базы данных


Устанавливает гарантии записи для базы данных

  • « MongoDB::setSlaveOkay
  • MongoDB::__toString »
  • PHP Manual
  • MongoDB
  • Устанавливает гарантии записи для базы данных

MongoDB::setWriteConcern

(PECL mongo >=1.5.0)

MongoDB::setWriteConcern — Устанавливает гарантии записи для базы данных

Описание

public MongoDB::setWriteConcern ( mixed $w [, int $wtimeout ] ) : bool

Список параметров

w

Контроль записи. Может быть числом означающим число серверов, требуемых для подтверждения записи, или режим в виде строки (например "majority").

wtimeout

Максимальное количество миллисекунд ожидания для сервера, чтобы удовлетворить контроль записи.

Возвращаемые значения

Возвращает TRUE в случае успеха, или FALSE в противном случае.

Ошибки

Бросает предупреждение E_WARNING в случае, если параметр w не является целым числом или строкой.

Примеры

Пример #1 Пример использования MongoDB::setWriteConcern()

<?php

$mc = new MongoClient('mongodb://rs1.example.com,rs2.example.com');
$db = $mc->selectDB('test');

// Требуем, чтобы большинство серверов в наборе реплик
// подтверждали запись в течение трех секунд.
$db->setWriteConcern('majority', 3000);
?>

Смотрите также

  • Документация по гарантиям записи.
  • MongoDB::getWriteConcern() - Получает гарантии записи для базы данных


Название базы данных

  • « MongoDB::setWriteConcern
  • MongoCollection »
  • PHP Manual
  • MongoDB
  • Название базы данных

MongoDB::__toString

(PECL mongo >=0.9.0)

MongoDB::__toString — Название базы данных

Описание

public MongoDB::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя базы данных.


Класс MongoCollection

(PECL mongo >=0.9.0)

Введение

Представляет коллекцию MongoDB.

Наименования коллекций могут использовать любой символ из набора ASCII. Некоторые допустимые наименования коллекций: "", "...", "my collection", and "*&#@".

Определенные пользователем имена коллекций не могут содержать символ $. Существуют определенные служебные коллекции, которые используют $ в своих наименованиях (например, local.oplog.$main), но это зарезервированный символ. Если вы создадите и будете использовать коллекцию с символом $ в наименовании, MongoDB выдаст ошибку.

Обзор классов

MongoCollection {
/* Константы */
const int ASCENDING = 1 ;
const int DESCENDING = -1 ;
/* Поля */
public MongoDB $db = NULL ;
public integer $w ;
public integer $wtimeout ;
/* Методы */
public aggregate ( array $pipeline [, array $options ] ) : array
public aggregateCursor ( array $command [, array $options ] ) : MongoCommandCursor
public batchInsert ( array $a [, array $options = array() ] ) : mixed
public __construct ( MongoDB $db , string $name )
public count ([ array $query = array() [, array $options = array() ]] ) : int
public createDBRef ( mixed $document_or_id ) : array
public createIndex ( array $keys [, array $options = array() ] ) : bool
public deleteIndex ( string|array $keys ) : array
public deleteIndexes ( void ) : array
public distinct ( string $key [, array $query ] ) : array
public drop ( void ) : array
public ensureIndex ( string|array $key|keys [, array $options = array() ] ) : bool
public find ([ array $query = array() [, array $fields = array() ]] ) : MongoCursor
public findAndModify ( array $query [, array $update [, array $fields [, array $options ]]] ) : array
 public findOne
  ([ array $query = array()
 [, array $fields = array()
 [, array $options = array()
]]] ) : array
public __get ( string $name ) : MongoCollection
public getDBRef ( array $ref ) : array
public getIndexInfo ( void ) : array
public getName ( void ) : string
public getReadPreference ( void ) : array
public getSlaveOkay ( void ) : bool
public getWriteConcern ( void ) : array
public group ( mixed $keys , array $initial , MongoCode $reduce [, array $options = array() ] ) : array
public insert ( array|object $document [, array $options = array() ] ) : bool|array
public parallelCollectionScan ( int $num_cursors ) : array[MongoCommandCursor]
public remove ([ array $criteria = array() [, array $options = array() ]] ) : bool|array
public save ( array|object $document [, array $options = array() ] ) : mixed
public setReadPreference ( string $read_preference [, array $tags ] ) : bool
public setSlaveOkay ([ bool $ok = TRUE ] ) : bool
public setWriteConcern ( mixed $w [, int $wtimeout ] ) : bool
static protected toIndexString ( mixed $keys ) : string
public __toString ( void ) : string
public update ( array $criteria , array $new_object [, array $options = array() ] ) : bool|array
public validate ([ bool $scan_data = FALSE ] ) : array
}

Предопределенные константы

MongoCollection::ASCENDING
Сортировка и создание индекса по возрастанию.
MongoCollection::DESCENDING
Сортировка и создание индекса по убыванию.

Поля

db

"Родительская" база данных для данной коллекции.

w

Количество серверов, на которые нужно реплицировать изменение, прежде чем вернуть успешное завершение. Значение наследуется от родительской базы данных. Класс MongoDB имеет более подробное описание того, как работает w.

wtimeout

Количество миллисекунд ожидания для репликации $this->w. Значение наследуется от родительской базы данных. Класс MongoDB имеет более подробное описание того, как работает wtimeout.

Смотрите также

Для получения дополнительной информации о коллекциях в MongoDB смотрите » документацию.

Содержание

  • MongoCollection::aggregate — Выполняет агрегацию с использованием структуры агрегации
  • MongoCollection::aggregateCursor — Выполняет команду конвейера агрегации и получает результаты с помощью курсора
  • MongoCollection::batchInsert — Вставляет несколько документов в коллекцию
  • MongoCollection::__construct — Создает новую коллекцию
  • MongoCollection::count — Считает количество записей в коллекции
  • MongoCollection::createDBRef — Создает ссылку на базу данных
  • MongoCollection::createIndex — Создает индекс для указанных полей, если он еще не существует
  • MongoCollection::deleteIndex — Удаляет индекс из коллекции
  • MongoCollection::deleteIndexes — Удаляет все индексы для коллекции
  • MongoCollection::distinct — Возвращает список уникальных значений для данного ключа в коллекции
  • MongoCollection::drop — Удаляет коллекцию
  • MongoCollection::ensureIndex — Создает индекс для указанных полей, если он еще не существует
  • MongoCollection::find — Запрашивает коллекцию, возвращая MongoCursor для набора результатов
  • MongoCollection::findAndModify — Обновляет документ и возвращает его
  • MongoCollection::findOne — Запрашивает коллекцию, возвращая единственный элемент
  • MongoCollection::__get — Получает коллекцию
  • MongoCollection::getDBRef — Выбирает документ базы данных на который указывает ссылка
  • MongoCollection::getIndexInfo — Возвращает информацию об индексах в коллекции
  • MongoCollection::getName — Получить имя коллекции
  • MongoCollection::getReadPreference — Получает предпочтения чтения для коллекции
  • MongoCollection::getSlaveOkay — Получает значение slaveOkay для коллекции
  • MongoCollection::getWriteConcern — Получает гарантии записи для этой коллекции
  • MongoCollection::group — Выполняет операцию, аналогичную команде SQL GROUP BY
  • MongoCollection::insert — Вставляет документ в коллекцию
  • MongoCollection::parallelCollectionScan — Возвращает массив курсоров в итератор по всей параллельной коллекции
  • MongoCollection::remove — Удаление записей из коллекции
  • MongoCollection::save — Сохраняет документ в коллекцию
  • MongoCollection::setReadPreference — Устанавливает предпочтения чтения для коллекции
  • MongoCollection::setSlaveOkay — Изменяет настройки slaveOkay для коллекции
  • MongoCollection::setWriteConcern — Устанавливает гарантии записи для этой базы данных
  • MongoCollection::toIndexString — Преобразует ключи, указывающие индекс, в его идентифицирующую строку
  • MongoCollection::__toString — Строковое представление коллекции
  • MongoCollection::update — Обновляет записи на основе заданных критериев
  • MongoCollection::validate — Проверяет коллекцию


Выполняет агрегацию с использованием структуры агрегации

  • « MongoCollection
  • MongoCollection::aggregateCursor »
  • PHP Manual
  • MongoCollection
  • Выполняет агрегацию с использованием структуры агрегации

MongoCollection::aggregate

(PECL mongo >=1.3.0)

MongoCollection::aggregate — Выполняет агрегацию с использованием структуры агрегации

Описание

public MongoCollection::aggregate ( array $pipeline [, array $options ] ) : array
public MongoCollection::aggregate ( array $op [, array $op [, array $... ]] ) : array

» Платформа агрегации MongoDB предоставляет средства для вычисления агрегированных значений без использования MapReduce. Несмотря на то, что MapReduce является мощным средством, оно зачастую сложнее, чем необходимо для многих простых задач агрегирования, таких как суммирование или вычисление среднего значения полей.

Метод принимает либо переменное количество операторов конвейера, либо один массив операторов, составляющих конвейер.

Список параметров

pipeline

Массив операторов конвейера.

options

Опции для команды агрегации. Допустимые варианты:

  • "allowDiskUse"

    Разрешить этапы агрегации для записи во временные файлы

  • "cursor"

    Опции, управляющие созданием объекта курсора. Эта опция заставляет команду возвращать результат документа, подходящий для создания MongoCommandCursor. Если вам нужно использовать эту опцию, вы должны рассмотреть возможность использования MongoCollection::aggregateCursor().

  • "explain"

    Вернуть информацию об обработке конвейера.

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

Or

op

Первый оператор конвейера.

op

Второй оператор конвейера.

...

Дополнительные операторы конвейера.

Возвращаемые значения

Результат агрегации в виде массива. ok будет установлен в качестве 1 в случае успеха, 0 в случае ошибки.

Ошибки

При возникновении ошибки возвращается массив со следующими ключами:

  • errmsg - с указанием причины отказа
  • code - код ошибки сбоя
  • ok - будет установлен 0.

Список изменений

Версия | Описание
1.5.0 | Добавлен необязательный аргумент options

Примеры

Пример #1 Пример использования MongoCollection::aggregate()

В следующем примере операция агрегирования поворачивает данные, чтобы создать набор имен авторов, сгруппированных по тегам, примененным к статье. Вызовите структуру агрегации, введя следующую команду:

<?php
$m = new MongoClient("localhost");
$c = $m->selectDB("examples")->selectCollection("article");
$data = array (
    'title' => 'this is my title',
    'author' => 'bob',
    'posted' => new MongoDate,
    'pageViews' => 5,
    'tags' => array ( 'fun', 'good', 'fun' ),
    'comments' => array (
      array (
        'author' => 'joe',
        'text' => 'this is cool',
      ),
      array (
        'author' => 'sam',
        'text' => 'this is bad',
      ),
    ),
    'other' =>array (
      'foo' => 5,
    ),
);
$d = $c->insert($data, array("w" => 1));

$ops = array(
    array(
        '$project' => array(
            "author" => 1,
            "tags"   => 1,
        )
    ),
    array('$unwind' => '$tags'),
    array(
        '$group' => array(
            "_id" => array("tags" => '$tags'),
            "authors" => array('$addToSet' => '$author'),
        ),
    ),
);
$results = $c->aggregate($ops);
var_dump($results);
?>

Результат выполнения данного примера:

array(2) {
  ["result"]=>
  array(2) {
    [0]=>
    array(2) {
      ["_id"]=>
      array(1) {
        ["tags"]=>
        string(4) "good"
      }
      ["authors"]=>
      array(1) {
        [0]=>
        string(3) "bob"
      }
    }
    [1]=>
    array(2) {
      ["_id"]=>
      array(1) {
        ["tags"]=>
        string(3) "fun"
      }
      ["authors"]=>
      array(1) {
        [0]=>
        string(3) "bob"
      }
    }
  }
  ["ok"]=>
  float(1)
}

В следующих примерах используется » набор данных zipcode. Используйте mongoimport для загрузки этого набора данных в ваш экземпляр mongod.

Пример #2 Пример использования MongoCollection::aggregate()

Чтобы вернуть все штаты с населением более 10 миллионов, используйте следующую операцию агрегирования:

<?php
$m = new MongoClient("localhost");
$c = $m->selectDB("test")->selectCollection("zips");

$pipeline = array(
    array(
        '$group' => array(
            '_id' => array('state' => '$state'),
            'totalPop' => array('$sum' => '$pop')
        )
    ),
    array(
        '$match' => array(
            'totalPop' => array('$gte' => 10 * 1000 * 1000)
        )
    ),
);
$out = $c->aggregate($pipeline);
var_dump($out);
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["result"]=>
  array(7) {
    [0]=>
    array(2) {
      ["_id"]=>
      string(2) "TX"
      ["totalPop"]=>
      int(16986510)
    }
    [1]=>
    array(2) {
      ["_id"]=>
      string(2) "PA"
      ["totalPop"]=>
      int(11881643)
    }
    [2]=>
    array(2) {
      ["_id"]=>
      string(2) "NY"
      ["totalPop"]=>
      int(17990455)
    }
    [3]=>
    array(2) {
      ["_id"]=>
      string(2) "IL"
      ["totalPop"]=>
      int(11430602)
    }
    [4]=>
    array(2) {
      ["_id"]=>
      string(2) "CA"
      ["totalPop"]=>
      int(29760021)
    }
    [5]=>
    array(2) {
      ["_id"]=>
      string(2) "OH"
      ["totalPop"]=>
      int(10847115)
    }
    [6]=>
    array(2) {
      ["_id"]=>
      string(2) "FL"
      ["totalPop"]=>
      int(12937926)
    }
  }
  ["ok"]=>
  float(1)
}

Пример #3 Пример использования MongoCollection::aggregate()

Чтобы получить среднюю численность населения по городам в каждом штате, используйте следующую операцию агрегирования:

<?php
$m = new MongoClient;
$c = $m->selectDB("test")->selectCollection("zips");

$out = $c->aggregate(
    array(
        '$group' => array(
            '_id' => array('state' => '$state', 'city' => '$city' ),
            'pop' => array('$sum' => '$pop' )
        )
    ),
    array(
        '$group' => array(
            '_id' => '$_id.state',
            'avgCityPop' => array('$avg' => '$pop')
        )
    )
);

var_dump($out);
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["result"]=>
  array(51) {
    [0]=>
    array(2) {
      ["_id"]=>
      string(2) "DC"
      ["avgCityPop"]=>
      float(303450)
    }
    [1]=>
    array(2) {
      ["_id"]=>
      string(2) "DE"
      ["avgCityPop"]=>
      float(14481.913043478)
    }
...
    [49]=>
    array(2) {
      ["_id"]=>
      string(2) "WI"
      ["avgCityPop"]=>
      float(7323.0074850299)
    }
    [50]=>
    array(2) {
      ["_id"]=>
      string(2) "WV"
      ["avgCityPop"]=>
      float(2759.1953846154)
    }
  }
  ["ok"]=>
  float(1)
}

Пример #4 MongoCollection::aggregate()с параметрами команды

Чтобы вернуть информацию о том, как будет обрабатываться конвейер, мы используем опцию команды explain:

<?php
$m = new MongoClient;
$c = $m->selectDB("test")->selectCollection("zips");

$pipeline = array(
    array(
        '$group' => array(
            '_id' => '$state',
           'totalPop' => array('$sum' => '$pop'),
        ),
    ),
    array(
        '$match' => array(
            'totalPop' => array('$gte' => 10 * 1000 * 1000)
        )
    ),
    array(
        '$sort' => array("totalPop" => -1),
    ),
);

$options = array("explain" => true);
$out = $c->aggregate($pipeline, $options);
var_dump($out);
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["stages"]=>
  array(4) {
    [0]=>
    array(1) {
      ["$cursor"]=>
      array(3) {
        ["query"]=>
        array(0) {
        }
        ["fields"]=>
        array(3) {
          ["pop"]=>
          int(1)
          ["state"]=>
          int(1)
          ["_id"]=>
          int(0)
        }
        ["plan"]=>
        array(4) {
          ["cursor"]=>
          string(11) "BasicCursor"
          ["isMultiKey"]=>
          bool(false)
          ["scanAndOrder"]=>
          bool(false)
          ["allPlans"]=>
          array(1) {
            [0]=>
            array(3) {
              ["cursor"]=>
              string(11) "BasicCursor"
              ["isMultiKey"]=>
              bool(false)
              ["scanAndOrder"]=>
              bool(false)
            }
          }
        }
      }
    }
    [1]=>
    array(1) {
      ["$group"]=>
      array(2) {
        ["_id"]=>
        string(6) "$state"
        ["totalPop"]=>
        array(1) {
          ["$sum"]=>
          string(4) "$pop"
        }
      }
    }
    [2]=>
    array(1) {
      ["$match"]=>
      array(1) {
        ["totalPop"]=>
        array(1) {
          ["$gte"]=>
          int(10000000)
        }
      }
    }
    [3]=>
    array(1) {
      ["$sort"]=>
      array(1) {
        ["sortKey"]=>
        array(1) {
          ["totalPop"]=>
          int(-1)
        }
      }
    }
  }
  ["ok"]=>
  float(1)
}

Смотрите также

  • MongoCollection::aggregateCursor() - Выполняет команду конвейера агрегации и получает результаты с помощью курсора
  • » Структуры агрегации MongoDB


Выполняет команду конвейера агрегации и получает результаты с помощью курсора

  • « MongoCollection::aggregate
  • MongoCollection::batchInsert »
  • PHP Manual
  • MongoCollection
  • Выполняет команду конвейера агрегации и получает результаты с помощью курсора

MongoCollection::aggregateCursor

(PECL mongo >=1.5.0)

MongoCollection::aggregateCursor — Выполняет команду конвейера агрегации и получает результаты с помощью курсора

Описание

public MongoCollection::aggregateCursor ( array $command [, array $options ] ) : MongoCommandCursor

С помощью этого метода вы можете выполнять конвейеры структуры агрегации и получать результаты с помощью курсора, вместо того, чтобы возвращать только один документ, как это было бы с MongoCollection::aggregate(). Этот метод возвращает объект MongoCommandCursor. Этот объект курсора реализует интерфейс Iterator точно так же, как объекты MongoCursor, которые возвращаются методом MongoCollection::find().

Замечание: Результирующий MongoCommandCursor будет наследовать предпочтения чтения этой коллекции. MongoCommandCursor::setReadPreference() может использоваться для изменения предпочтения чтения перед итерацией курсора.

Список параметров

pipeline

Конвейер структуры агрегации для выполнения.

options

Опции для команды агрегации. Допустимые варианты:

  • "allowDiskUse"

    Разрешить этапы агрегации для записи во временные файлы

  • "cursor"

    Можно настроить, сколько исходных документов сервер должен вернуть с первым набором результатов. Начальный размер пакета по умолчанию - 101. Вы можете изменить его, добавив параметр batchSize:

    <?php
    $collection    ->aggregateCursor(
            $pipeline,
        [     "cursor" => [ "batchSize" => 4 ] ]
    );

    Эта опция только настраивает размер первого пакета. Чтобы настроить размер будущих пакетов, используйте метод MongoCommandCursor::batchSize() в возвращенном объекте MongoCommandCursor.

  • "explain"

    Вернуть информацию об обработке конвейера. Эта опция может привести к тому, что команда вернет результирующий документ, который не подходит для создания MongoCommandCursor. Если вам нужно использовать эту опцию, вы должны рассмотреть возможность использования MongoCollection::aggregate().

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

Возвращаемые значения

Возвращает объект MongoCommandCursor. Поскольку он реализует интерфейс Iterator, вы можете перебирать каждый из результатов, возвращаемых запросом команды. MongoCommandCursor также реализует интерфейс MongoCursorInterface, который добавляет методы MongoCommandCursor::batchSize(), MongoCommandCursor::dead(), MongoCommandCursor::info().

Примеры

Пример #1 Пример использования MongoCollection::aggregateCursor()

Поиск всех различных значений для ключа.

<?php
$m = new MongoClient;
$db = $m->test;
$people = $db->people;
$people->drop();

$people->insert(array("name" => "Joe", "points" => 4));
$people->insert(array("name" => "Molly", "points" => 43));
$people->insert(array("name" => "Sally", "points" => 22));
$people->insert(array("name" => "Joe", "points" => 22));
$people->insert(array("name" => "Molly", "points" => 87));

$ages = $people->aggregateCursor( [
        [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ],
        [ '$sort' => [ 'points' => -1 ] ],
] );

foreach ($ages as $person) {
    echo "{$person['_id']}: {$person['points']}\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Molly: 130
Joe: 26
Sally: 22

Пример #2 Пример использования MongoCollection::aggregateCursor() с другим начальным размером пакета

Поиск всех различных значений для ключа.

<?php
$m = new MongoClient;
$db = $m->test;
$people = $db->people;
$people->drop();

/* Вставьте пример данных */
$people->insert(array("name" => "Joe", "points" => 4));
$people->insert(array("name" => "Molly", "points" => 43));
$people->insert(array("name" => "Sally", "points" => 22));
$people->insert(array("name" => "Joe", "points" => 22));
$people->insert(array("name" => "Molly", "points" => 87));

/* Запустите командный курсор */
$ages = $people->aggregateCursor(
    [
        [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ],
        [ '$sort' => [ 'points' => -1 ] ],
    ],
    [ "cursor" => [ "batchSize" => 4 ] ]
);

foreach ($ages as $person) {
    echo "{$person['_id']}: {$person['points']}\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Molly: 130
Joe: 26
Sally: 22

Смотрите также

  • MongoDB::command() - Выполняет команду базы данных
  • MongoCommandCursor
  • MongoCommandCursor::batchSize() - Ограничивает количество элементов, возвращаемых в одном пакете
  • MongoCollection::aggregate() - Выполняет агрегацию с использованием структуры агрегации
  • » Структура агрегации MongoDB


Вставляет несколько документов в коллекцию

  • « MongoCollection::aggregateCursor
  • MongoCollection::__construct »
  • PHP Manual
  • MongoCollection
  • Вставляет несколько документов в коллекцию

MongoCollection::batchInsert

(PECL mongo >=0.9.0)

MongoCollection::batchInsert — Вставляет несколько документов в коллекцию

Описание

public MongoCollection::batchInsert ( array $a [, array $options = array() ] ) : mixed

Список параметров

a

Массив массивов или объектов. Если какие-либо объекты используются, они могут не иметь защищенных или частных свойств.

Замечание:

Если документы для вставки не имеют ключа или свойства _id, будет создан новый экземпляр MongoId и назначен ему. Посмотрите MongoCollection::insert() для получения дополнительной информации об этом поведении.

options

Массив опций для пакета операций вставки. В настоящее время доступны следующие варианты:

  • "continueOnError"

    Булево, по умолчанию FALSE. Если установлено, база данных не будет останавливать обработку массовой вставки в случае сбоя (например, из-за дублирования идентификаторов). Это приведет к тому, что массовая вставка ведет себя аналогично серии одиночных вставок, за исключением того, что при вызове MongoDB::lastError() будет установлена ошибка в случае сбоя любой вставки, а не только последней. Если происходит несколько ошибок, MongoDB::lastError() сообщает о самых последних ошибках.

    Замечание:

    Обратите внимание, что continueOnError влияет на ошибки только на стороне базы данных. Если вы попытаетесь вставить документ с ошибками (например, он содержит ключ с пустым именем), то этот документ даже не будет перенесен в базу данных, так как драйвер обнаружит эту ошибку и выгрузится. continueOnError не влияет на ошибки, обнаруженные в документах драйвером.

  • "fsync"

    Булево, по умолчанию FALSE. Если включено журналирование, то работает также как и "j". Если журналирование не включено, то операции записи блокируются пока не будут синхронизированы с файлами на жестком диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если журналирование включено, то пользователю настоятельно рекомендуется использовать опцию "j" вместо "fsync". Не используйте "fsync" и "j" одновременно,так как это может привести к ошибке.

  • "j"

    Булево, по умолчанию FALSE. Блокирует операции записи пока они не будут синхронизированы с журналом на диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если применяется эта опция и журналирование отключено, то MongoDB 2.6+ выбросит ошибку и прервет запись; старые версии сервера просто игнорируют эту опцию.

  • "socketTimeoutMS"

    Эта опция определяет время в миллисекундах для общения в socket. Если сервер не ответил за отведенное время, то будет брошено исключение MongoCursorTimeoutException, и не будет никакой возможности определить произвел ли сервер запись или нет. Значение -1 используется для постоянно отключения этой функции. Значением по умолчанию для MongoClient является 30000 (30 секунд).

  • "w"

    Смотрите Контроль записи. Значение по умолчанию для MongoClient является 1.

  • "wTimeoutMS"

    Эта опция определяет лимит времени в миллисекундах для подтверждения контроля записи. Она применима только, если "w" больше 1, так как ограничение времени относится к репликации. Если контроль записи не подтвержден за отведенное время, то будет выброшено исключение MongoCursorException. Значение 0 для постоянного отключения. Значением по умолчанию для MongoClient является 10000 (десять секунд).

Следующие параметры устарели и больше не должны использоваться:

  • "safe"

    Устаревшая опция. Используйте опцию "w" контроля записи.

  • "timeout"

    Устаревший псевдоним для "socketTimeoutMS".

  • "wtimeout"

    Устаревший псевдоним для "wTimeoutMS".

Возвращаемые значения

Если параметр w установлен для подтверждения записи, возвращает ассоциативный массив со статусом вставок ("ok") и любой ошибкой, которая могла произойти ("err"). В противном случае возвращает TRUE, если пакетная вставка была успешно отправлена, иначе FALSE.

Ошибки

Выдает исключение MongoException, если какие-либо вставленные документы пусты или содержат ключи нулевой длины. Попытка вставить объект с защищенными и закрытыми свойствами приведет к ошибке ключа нулевой длины.

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.

Список изменений

Версия | Описание
1.5.0

Добавлена опция "wTimeoutMS", которая заменяет "wtimeout". Выдает E_DEPRECATED, когда используется "wtimeout".

Добавлена опция "socketTimeoutMS", которая заменяет "timeout". Выдает E_DEPRECATED, когда используется "timeout".

Выдает E_DEPRECATED, когда используется "safe".

1.3.4 | Добавлена опция "wtimeout".
1.3.0 | Добавлена опция "w".
1.2.7 | Добавлена опция "continueOnError".
1.0.9

Добавлена возможность передавать целые числа в опцию "safe", которая ранее принимала только логические значения.

Добавлена опция "fsync".

1.0.5 | Добавлен параметр options.

Примеры

Пример #1 Пример использования MongoCollection::batchInsert()

Пакетная вставка - это быстрый способ добавить сразу несколько элементов в базу данных.

<?php

$users = array();
for ($i = 0; $i<100; $i++) {
  $users[] = array('username' => 'user'.$i, 'i' => $i);
}

$mongo = new MongoClient();
$collection = $mongo->my_db->users;
$collection->drop();

$collection->batchInsert($users);

foreach ($users as $user) {
  echo $user['_id']."\n"; // населенный экземпляром MongoId
}

$users = $collection->find()->sort(array('i' => 1));
foreach ($users as $user) {
    var_dump($user['username']);
}

?>

Результатом выполнения данного примера будет что-то подобное:

4bf43ac68ead0e1971000000
4bf43ac68ead0e1971010000
4bf43ac68ead0e1971020000
...
string(5) "user1"
string(5) "user2"
string(5) "user3"
...

Пример #2 Пример использования MongoCollection::batchInsert() с игнорированием ошибок

<?php

$con = new Mongo;
$db = $con->demo;

$doc1 = array(
        '_id' => new MongoId('4cb4ab6d7addf98506010001'),
        'id' => 1,
        'desc' => "ONE",
);
$doc2 = array(
        '_id' => new MongoId('4cb4ab6d7addf98506010002'),
        'id' => 2,
        'desc' => "TWO",
);
$doc3 = array(
        '_id' => new MongoId('4cb4ab6d7addf98506010002'), // тот же _id, что и выше
        'id' => 3,
        'desc' => "THREE",
);
$doc4 = array(
        '_id' => new MongoId('4cb4ab6d7addf98506010004'),
        'id' => 4,
        'desc' => "FOUR",
);

$c = $db->selectCollection('c');
$c->batchInsert(
    array($doc1, $doc2, $doc3, $doc4),
    array('continueOnError' => true)
);

$docs = $c->find();
foreach ($docs as $doc) {
    var_dump($doc['desc']);
}
?>

Результатом выполнения данного примера будет что-то подобное:

string(3) "ONE"
string(3) "TWO"
string(4) "FOUR"

Смотрите также

  • MongoCollection::insert() - Вставляет документ в коллекцию
  • MongoCollection::update() - Обновляет записи на основе заданных критериев
  • MongoCollection::find() - Запрашивает коллекцию, возвращая MongoCursor для набора результатов
  • MongoCollection::remove() - Удаление записей из коллекции
  • Основная документация » по вставке MongoDB.


Создает новую коллекцию

  • « MongoCollection::batchInsert
  • MongoCollection::count »
  • PHP Manual
  • MongoCollection
  • Создает новую коллекцию

MongoCollection::__construct

(PECL mongo >=0.9.0)

MongoCollection::__construct — Создает новую коллекцию

Описание

public MongoCollection::__construct ( MongoDB $db , string $name )

Список параметров

MongoDB db

Родительская база данных.

name

Название для этой коллекции.

Возвращаемые значения

Возвращает новый объект коллекции.

Ошибки

Выдает исключение по умолчанию, если имя коллекции недопустимо.


Считает количество записей в коллекции

  • « MongoCollection::__construct
  • MongoCollection::createDBRef »
  • PHP Manual
  • MongoCollection
  • Считает количество записей в коллекции

MongoCollection::count

(PECL mongo >=0.9.0)

MongoCollection::count — Считает количество записей в коллекции

Описание

 public MongoCollection::count
  ([ array $query = array()
 [, array $options = array()
]] ) : int

Список параметров

query

Ассоциативный массив или объект с полями для запроса

options

Массив опций для создания индекса. В настоящее время доступны следующие опции:

Имя | Тип | Описание
hint mixed

Индекс используемый для запроса. Если передается строка, то она должна соответствовать названию индекса. Если массив или объект, то он должен соответсвовать спецификации используемой для создания индекса т.е. первому аргументу в MongoCollection::createIndex())

Эта опция поддерживается только в MongoDB 2.6+.
limit | integer | Максимальное количество возвращаемых документов
maxTimeMS integer

Определяет совокупный лимит врмени в миллисекундах для выполнения операций (не включает в себя время простоя). Если операция не выполнится в течение этого времени, то будет вызвано исключение MongoExecutionTimeoutException

Эта опция поддерживается только в MongoDB 2.6+.
skip | integer | Количество документов которые нужно пропустить перед посчетом возвращаемого результата

Возвращаемые значения

Возвращает количество документов в коллекции, соответствующих условиям

Ошибки

Исключение MongoResultException вызывается в том случае, если сервер не может выполнить команду из-за ошибки

Исключение MongoExecutionTimeoutException вызывается в том случае, если выполнение команды прекратилось связи с ограничениями опции maxTimeMS.

Список изменений

Версия | Описание
1.6.0 | Теперь второй параметр options является массивом опций. limit и skip в качестве второго и третьего параметра, соотвественно, являются устаревшими
1.0.7 | Добавлены limit и skip как второй и третий параметр соотвественно

Примеры

Пример #1 Пример использования MongoCollection::count()

<?php

// Вставить записи в коллекцию
$collection->insert(array('x'=>1));
$collection->insert(array('x'=>2));
$collection->insert(array('x'=>3));

// Вывод количества записей во всей коллекции
var_dump($collection->count());

// Вывод количества записей в коллекции по определенному полю
var_dump($collection->count(array('x'=>1)));

?>

Результатом выполнения данного примера будет что-то подобное:

int(3)
int(1)


Создает ссылку на базу данных

  • « MongoCollection::count
  • MongoCollection::createIndex »
  • PHP Manual
  • MongoCollection
  • Создает ссылку на базу данных

MongoCollection::createDBRef

(PECL mongo >=0.9.0)

MongoCollection::createDBRef — Создает ссылку на базу данных

Описание

public MongoCollection::createDBRef ( mixed $document_or_id ) : array

Список параметров

document_or_id

Если указан массив или объект, его поле _id будет использоваться в качестве идентификатора ссылки. Если указан MongoId или скаляр, он будет использоваться в качестве ссылочного идентификатора.

Возвращаемые значения

Возвращает массив ссылок на базу данных.

Если в качестве параметра document_or_id был указан массив без поля _id, будет возвращено значение NULL.

Примеры

Пример #1 Пример использования MongoCollection::createDBRef()

<?php

$songs = $db->songs;
$playlists = $db->playlists;

// создаем ссылку на песню
$manamana = $songs->findOne(array('title' => 'Ma na ma na'));
$refToSong = $songs->createDBRef($manamana);

// добавляем ссылку в мой плейлист
$playlists->update(array('username' => 'me'), array('$push' => array('songlist' => $refToSong)));

?>

Смотрите также

  • MongoCollection::getDBRef() - Выбирает документ базы данных на который указывает ссылка


Создает индекс для указанных полей, если он еще не существует

  • « MongoCollection::createDBRef
  • MongoCollection::deleteIndex »
  • PHP Manual
  • MongoCollection
  • Создает индекс для указанных полей, если он еще не существует

MongoCollection::createIndex

(PECL mongo >=1.5.0)

MongoCollection::createIndex — Создает индекс для указанных полей, если он еще не существует

Описание

public MongoCollection::createIndex ( array $keys [, array $options = array() ] ) : bool

Создает индекс для указанных полей, если он еще не существует. Поля могут быть проиндексированы с направлением (например, по возрастанию или по убыванию) или со специальным типом (например, текст, геопространственный, хэшированный).

Замечание:

Этот метод будет использовать команду базы данных » createIndexes, при взаимодействии с MongoDB 2.6+. Для предыдущих версий базы данных метод выполняет операцию вставки в специальную коллекцию system.indexes.

Список параметров

keys

Массив, определяющий поля индекса в качестве его ключей. Для каждого поля значением является либо направление индекса, либо » тип индекса. Если указано направление, укажите 1 для возрастания или -1 для убывания.

options

Массив опций для создания индекса. Мы передаем все указанные параметры прямо на сервер, но неполный список доступных на данный момент параметров включает:

  • "unique"

    Укажите TRUE для создания уникального индекса. По умолчанию значение равно FALSE. Эта опция применяется только к возрастающим/убывающим индексам.

    Замечание:

    При индексации MongoDB поля, если не имеет значения для указанного поля, будет проиндексировано значение NULL. Если несколько документов не содержат поля, то уникальный индекс отклонит все документы, кроме первого. Можно использовать опцию "sparse", чтобы обойти это ограничение, так как документы без указанного поля не будут индексироваться.

  • "sparse"

    Укажите TRUE для создания разреженного (sparse) индекса, который индексирует только документы содержащие указанное поле. Значение по умолчанию FALSE.

  • "expireAfterSeconds"

    Значение этой опции определяет количество секунд, после которого документ считается устаревшим и автоматически удаляется из коллекции. Эта опция совместима только с индексами на одно поле, где поле содержит значения MongoDate.

    Замечание:

    Эта опция доступна в MongoDB 2.2+. Смотрите » Устаревание данных в коллекциях с помощью задания TTL для получения более подробной информации.

  • "name"

    Необязательное имя, которое уникально идентифицирует индекс.

    Замечание:

    По умолчанию, драйвер создает имя индекса на основе полей индекса и их порядке или типе. Например, составной индекс array("x" => 1, "y" => -1) будет назван "x_1_y_-1", а геоиндекс array("loc" => "2dsphere") будет назван "loc_2dsphere". Для индексов из нескольких полей возможно превышение именем » максимальной длины имени индекса MongoDB. В этом случае можно применить опцию "name", чтобы указать более короткое имя.

  • "background"

    Перестраивать индекс в фоновом режиме, чтобы не блокировать другие задачи базы данных. Укажите TRUE для перестроения в фоновом режиме. Значение по умолчанию - FALSE.

    Внимание

    До MongoDB 2.6.0, перестраивание индекса запускалось на ведомом сервере как приоритетная операция, независимо от этой опции. Смотрите » Перестроение индексов с Replica Sets для дополнительной информации.

  • "socketTimeoutMS"

    Эта опция определяет время в миллисекундах для общения в socket. Если сервер не ответил за отведенное время, то будет брошено исключение MongoCursorTimeoutException, и не будет никакой возможности определить произвел ли сервер запись или нет. Значение -1 используется для постоянно отключения этой функции. Значением по умолчанию для MongoClient является 30000 (30 секунд).

Следующая опция может использоваться с MongoDB 2.6+:

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

Следующие опции могут использоваться с версиями MongoDB до 2.8:

  • "dropDups"

    Укажите TRUE для принудительного создания уникального индекса, где коллекция может содержать одинаковые значения для ключа. MongoDB будет индексировать первое вхождение ключа и удалять все последующие документы из коллекции, которые содержат такие же значения для ключа. Значение по умолчанию - FALSE.

    Внимание

    "dropDups" может удалить данные из вашей базы данных. Используйте с особой осторожностью.

    Замечание:

    Эта опция не поддерживается в MongoDB 2.8+. Создание индекса не выполнится, если коллекция содержит одинаковые значения.

Следующие параметры могут использоваться с версиями MongoDB до 2.6:

  • "w"

    Смотрите Контроль записи. Значение по умолчанию для MongoClient является 1.

  • "wTimeoutMS"

    Эта опция определяет лимит времени в миллисекундах для подтверждения контроля записи. Она применима только, если "w" больше 1, так как ограничение времени относится к репликации. Если контроль записи не подтвержден за отведенное время, то будет выброшено исключение MongoCursorException. Значение 0 для постоянного отключения. Значением по умолчанию для MongoClient является 10000 (десять секунд).

Следующие параметры устарели и больше не должны использоваться:

  • "safe"

    Устаревшая опция. Используйте опцию "w" контроля записи.

  • "timeout"

    Устаревший псевдоним для "socketTimeoutMS".

  • "wtimeout"

    Устаревший псевдоним для "wTimeoutMS".

Возвращаемые значения

Возвращает массив, содержащий состояние создания индекса. В массиве указывается, была ли операция выполнена успешно ("ok"), количество индексов до и после операции ("numIndexesBefore" и "numIndexesAfter"), а также была ли создана коллекция, которой принадлежит индекс ("createdCollectionAutomatically"). Если индекс уже существует и его не нужно создавать, вместо "numIndexesAfter" может присутствовать поле "note".

В MongoDB 2.4 и более ранних версиях документ о статусе возвращается только в том случае, если гарантии записи равны как минимум 1. В противном случае возвращается TRUE. Поля в документе состояния отличаются, за исключением поля "ok", которое указывает, было ли создание индекса успешным. Дополнительные поля описаны в документации для MongoCollection::insert().

Ошибки

Выдает исключение MongoException, если имя индекса длиннее 128 байт или если спецификация индекса не является массивом.

Выдает исключение MongoDuplicateKeyException, если серверу не удалось создать уникальный индекс из-за конфликтующих документов.

Выдает исключение MongoResultException, если серверу не удалось создать индекс из-за ошибки.

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.

Примеры

Пример #1 Пример использования MongoCollection::createIndex()

<?php

$c = new MongoCollection($db, 'foo');

// создать индекс по возрастанию на 'х'
$c->createIndex(array('x' => 1));

// создать уникальный индекс на 'y'
$c->createIndex(array('y' => 1), array('unique' => true));

// создать составной индекс по возрастанию на 'za' и по убыванию на 'zb'
$c->createIndex(array('za' => 1, 'zb' => -1));

?>

Пример #2 Геопространственная индексация

Mongo поддерживает геопространственные индексы, которые позволяют вам искать документы рядом с заданным местоположением или внутри фигуры. В следующем примере создается геопространственный индекс в поле "loc":

<?php

$collection->createIndex(array('loc' => '2dsphere'));

?>

Пример #3 Пример удаления дубликатов

<?php

$collection->insert(array('username' => 'joeschmoe'));
$collection->insert(array('username' => 'joeschmoe'));

/* Сбой создания индекса, так как вы не можете создать
/* уникальный индекс на поле, если существуют дубликаты.
 */
$collection->createIndex(array('username' => 1), array('unique' => 1));

/* MongoDB будет одним из конфликтующих документов
/* и позволит создать уникальный индекс.
 */
$collection->createIndex(array('username' => 1), array('unique' => 1, 'dropDups' => 1));

/* Теперь у нас есть уникальный индекс, и последующие вставки
/* с тем же именем пользователя завершатся неудачно.
 */
$collection->insert(array('username' => 'joeschmoe'));

?>

Смотрите также

  • MongoCollection::deleteIndex() - Удаляет индекс из коллекции
  • MongoCollection::deleteIndexes() - Удаляет все индексы для коллекции
  • » Индексы и документация по » типу индекса MongoDB.


Удаляет индекс из коллекции

  • « MongoCollection::createIndex
  • MongoCollection::deleteIndexes »
  • PHP Manual
  • MongoCollection
  • Удаляет индекс из коллекции

MongoCollection::deleteIndex

(PECL mongo >=0.9.0)

MongoCollection::deleteIndex — Удаляет индекс из коллекции

Описание

public MongoCollection::deleteIndex ( string|array $keys ) : array

Этот метод идентичен:

<?php

public function deleteIndexes($keys) {
  $indexName = $this->toIndexString($keys);

  return $this->db->command(array(
    "deleteIndexes" => $this->getName(),
    "index" => $indexName,
  ));
}

?>

Каждому индексу присваивается уникальное имя при его создании. Это часто генерируется драйвером на основе ключа(ей) индекса и порядка/типа, но пользовательские имена также могут быть указаны с помощью опции "name" MongoCollection::createIndex().

К сожалению, MongoCollection::deleteIndex() не может удалить пользовательские индексы из-за проблемы обратной совместимости. Когда предоставляется строковый аргумент, предполагается, что это имя одного поля в возрастающем индексе (например, имя "x_1" будет использоваться для аргумента "x"). Если указан массив или объект, имя индекса генерируется так же, как если бы этот аргумент был передан MongoCollection::createIndex().

Чтобы удалить индекс с пользовательским именем с помощью драйвера PHP, необходимо использовать команду базы данных deleteIndexes. Например, индекс с именем "myIndex" можно удалить с помощью драйвера PHP, выполнив:

<?php

$db->command(array(
  "deleteIndexes" => $collection->getName(),
  "index" => "myIndex",
));

?>

Чтобы определить имя индекса с помощью драйвера PHP, вы можете запросить коллекцию system.indexes базы данных и найти поле "name" каждого результата. Поле "ns" будет указывать коллекцию, к которой принадлежит каждый индекс.

Список параметров

keys

Массив, определяющий поля индекса в качестве его ключей. Для каждого поля значением является либо направление индекса, либо » тип индекса. Если указано направление, укажите 1 для возрастания или -1 для убывания.

Если указана строка, предполагается, что это имя одного поля в возрастающем индексе.

Возвращаемые значения

Возвращает ответ базы данных.

Примеры

Пример #1 Пример использования MongoCollection::deleteIndex()

Этот пример передает строку функции и параметры массива.

<?php

$m = new MongoClient();
$c = $m->example->indices;

// создаем и удаляем простой индекс
$c->createIndex(array("i"=>1));
$c->deleteIndex("i");

// создаем и удаляем многоключевой индекс
$c->ensureIndex(array("j" => 1, "k" => 1));
$c->deleteIndex(array("j" => 1, "k" => 1));

?>

Смотрите также

  • MongoCollection::createIndex() - Создает индекс для указанных полей, если он еще не существует
  • MongoCollection::deleteIndexes() - Удаляет все индексы для коллекции
  • MongoCollection::toIndexString() - Преобразует ключи, указывающие индекс, в его идентифицирующую строку
  • » Индексы и документация по » типу индекса MongoDB.


Удаляет все индексы для коллекции

  • « MongoCollection::deleteIndex
  • MongoCollection::distinct »
  • PHP Manual
  • MongoCollection
  • Удаляет все индексы для коллекции

MongoCollection::deleteIndexes

(PECL mongo >=0.9.0)

MongoCollection::deleteIndexes — Удаляет все индексы для коллекции

Описание

public MongoCollection::deleteIndexes ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ответ базы данных.

Примеры

Пример #1 Пример использования MongoCollection::deleteIndexes()

Этот пример показывает, как удалить все индексы из коллекции и ожидаемый ответ запроса.

<?php

$collection = $mongo->my_db->articles;
$response = $collection->deleteIndexes();
print_r($response);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [nIndexesWas] => 1
    [msg] => all indexes deleted for collection
    [ok] => 1
)

Смотрите также

  • MongoCollection::createIndex() - Создает индекс для указанных полей, если он еще не существует
  • MongoCollection::deleteIndex() - Удаляет индекс из коллекции


Возвращает список уникальных значений для данного ключа в коллекции

  • « MongoCollection::deleteIndexes
  • MongoCollection::drop »
  • PHP Manual
  • MongoCollection
  • Возвращает список уникальных значений для данного ключа в коллекции

MongoCollection::distinct

(PECL mongo >=1.2.11)

MongoCollection::distinct — Возвращает список уникальных значений для данного ключа в коллекции

Описание

public MongoCollection::distinct ( string $key [, array $query ] ) : array

Команда distinct возвращает список уникальных значений для данного ключа в коллекции.

Список параметров

key

Ключ, используемый для получения уникальных значений

query

Опциональные параметры запроса.

Возвращаемые значения

Возвращает массив уникальных значений, или FALSE в случае возникновения ошибки

Примеры

Пример #1 Пример использования MongoCollection::distinct()

<?php
// Подключение и создание документа и коллекции
$m = new Mongo;
$db = $m->selectDB("test");
$db->dropCollection("distinct");
$c = $db->distinct;

// Вставка данных в коллекцию
$c->insert(array("stuff" => "bar", "zip-code" => 10010));
$c->insert(array("stuff" => "foo", "zip-code" => 10010));
$c->insert(array("stuff" => "bar", "zip-code" => 99701), array("w" => 1));

// Получение уникальных данных по ключу zip-code
$retval = $c->distinct("zip-code");
var_dump($retval);

// Получение уникальных данных по ключу zip-code с использованием запроса
$retval = $c->distinct("zip-code", array("stuff" => "foo"));
var_dump($retval);

$retval = $c->distinct("zip-code", array("stuff" => "bar"));
var_dump($retval);

?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  int(10010)
  [1]=>
  int(99701)
}
array(1) {
  [0]=>
  int(10010)
}
array(2) {
  [0]=>
  int(10010)
  [1]=>
  int(99701)
}

Пример #2 Пример использования MongoCollection::distinct() с вложенным документом

<?php
$c->insert(array("user" => array("points" => 25)));
$c->insert(array("user" => array("points" => 31)));
$c->insert(array("user" => array("points" => 25)));

$retval = $c->distinct("user.points");
var_dump($retval);

$retval = $c->distinct("user.nonexisting");
var_dump($retval);
?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  int(25)
  [1]=>
  int(31)
}
array(0) {
}


Удаляет коллекцию

  • « MongoCollection::distinct
  • MongoCollection::ensureIndex »
  • PHP Manual
  • MongoCollection
  • Удаляет коллекцию

MongoCollection::drop

(PECL mongo >=0.9.0)

MongoCollection::drop — Удаляет коллекцию

Описание

public MongoCollection::drop ( void ) : array

Удаляет коллекцию и удаляет ее индексы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ответ базы данных.

Примеры

Пример #1 Пример использования MongoCollection::drop()

Этот пример показывает, как удалить коллекцию и ожидаемый ответ запроса.

<?php

$collection = $mongo->my_db->articles;
$response = $collection->drop();
print_r($response);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [nIndexesWas] => 1
    [msg] => all indexes deleted for collection
    [ns] => my_db.articles
    [ok] => 1
)


Создает индекс для указанных полей, если он еще не существует

  • « MongoCollection::drop
  • MongoCollection::find »
  • PHP Manual
  • MongoCollection
  • Создает индекс для указанных полей, если он еще не существует

MongoCollection::ensureIndex

(PECL mongo >=0.9.0)

MongoCollection::ensureIndex — Создает индекс для указанных полей, если он еще не существует

Описание

public MongoCollection::ensureIndex ( string|array $key|keys [, array $options = array() ] ) : bool
Внимание

Этот метод устарел с версии 1.5.0. Пожалуйста, используйте MongoCollection::createIndex() вместо этого.

Создает индекс для указанных полей, если он еще не существует. Поля могут быть проиндексированы с направлением (например, по возрастанию или по убыванию) или специальным типом (например, текст, геопространственный, хэшированный).

Замечание:

Этот метод будет использовать команду базы данных » createIndexes при взаимодействии с MongoDB 2.6+. ля предыдущих версий базы данных метод выполняет операцию вставки в специальную коллекцию system.indexes.

Список параметров

keys

Массив, определяющий поля индекса в качестве его ключей. Для каждого поля значением является либо направление индекса, либо » тип индекса. Если указано направление, укажите 1 для возрастания или -1 для убывания.

options

Массив опций для создания индекса. В настоящее время доступны следующие варианты:

  • "unique"

    Укажите TRUE для создания уникального индекса. По умолчанию значение равно FALSE. Эта опция применяется только к возрастающим/убывающим индексам.

    Замечание:

    При индексации MongoDB поля, если не имеет значения для указанного поля, будет проиндексировано значение NULL. Если несколько документов не содержат поля, то уникальный индекс отклонит все документы, кроме первого. Можно использовать опцию "sparse", чтобы обойти это ограничение, так как документы без указанного поля не будут индексироваться.

  • "sparse"

    Укажите TRUE для создания разреженного (sparse) индекса, который индексирует только документы содержащие указанное поле. Значение по умолчанию FALSE.

  • "expireAfterSeconds"

    Значение этой опции определяет количество секунд, после которого документ считается устаревшим и автоматически удаляется из коллекции. Эта опция совместима только с индексами на одно поле, где поле содержит значения MongoDate.

    Замечание:

    Эта опция доступна в MongoDB 2.2+. Смотрите » Устаревание данных в коллекциях с помощью задания TTL для получения более подробной информации.

  • "name"

    Необязательное имя, которое уникально идентифицирует индекс.

    Замечание:

    По умолчанию, драйвер создает имя индекса на основе полей индекса и их порядке или типе. Например, составной индекс array("x" => 1, "y" => -1) будет назван "x_1_y_-1", а геоиндекс array("loc" => "2dsphere") будет назван "loc_2dsphere". Для индексов из нескольких полей возможно превышение именем » максимальной длины имени индекса MongoDB. В этом случае можно применить опцию "name", чтобы указать более короткое имя.

  • "background"

    Перестраивать индекс в фоновом режиме, чтобы не блокировать другие задачи базы данных. Укажите TRUE для перестроения в фоновом режиме. Значение по умолчанию - FALSE.

    Внимание

    До MongoDB 2.6.0, перестраивание индекса запускалось на ведомом сервере как приоритетная операция, независимо от этой опции. Смотрите » Перестроение индексов с Replica Sets для дополнительной информации.

  • "socketTimeoutMS"

    Эта опция определяет время в миллисекундах для общения в socket. Если сервер не ответил за отведенное время, то будет брошено исключение MongoCursorTimeoutException, и не будет никакой возможности определить произвел ли сервер запись или нет. Значение -1 используется для постоянно отключения этой функции. Значением по умолчанию для MongoClient является 30000 (30 секунд).

Следующая опция может использоваться с MongoDB 2.6+:

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

Следующие опции могут использоваться с версиями MongoDB до 2.8:

  • "dropDups"

    Укажите TRUE для принудительного создания уникального индекса, где коллекция может содержать одинаковые значения для ключа. MongoDB будет индексировать первое вхождение ключа и удалять все последующие документы из коллекции, которые содержат такие же значения для ключа. Значение по умолчанию - FALSE.

    Внимание

    "dropDups" может удалить данные из вашей базы данных. Используйте с особой осторожностью.

    Замечание:

    Эта опция не поддерживается в MongoDB 2.8+. Создание индекса не выполнится, если коллекция содержит одинаковые значения.

Следующие параметры могут использоваться с версиями MongoDB до 2.6:

  • "w"

    Смотрите Контроль записи. Значение по умолчанию для MongoClient является 1.

  • "wTimeoutMS"

    Эта опция определяет лимит времени в миллисекундах для подтверждения контроля записи. Она применима только, если "w" больше 1, так как ограничение времени относится к репликации. Если контроль записи не подтвержден за отведенное время, то будет выброшено исключение MongoCursorException. Значение 0 для постоянного отключения. Значением по умолчанию для MongoClient является 10000 (десять секунд).

Следующие параметры устарели и больше не должны использоваться:

  • "safe"

    Устаревшая опция. Используйте опцию "w" контроля записи.

  • "timeout"

    Устаревший псевдоним для "socketTimeoutMS".

  • "wtimeout"

    Устаревший псевдоним для "wTimeoutMS".

Возвращаемые значения

Возвращает массив, содержащий состояние создания индекса. В массиве указывается, была ли операция выполнена успешно ("ok"), количество индексов до и после операции ("numIndexesBefore" и "numIndexesAfter"), а также была ли создана коллекция, которой принадлежит индекс ("createdCollectionAutomatically"). Если индекс уже существует и его не нужно создавать, вместо "numIndexesAfter" может присутствовать поле "note".

В MongoDB 2.4 и более ранних версиях документ о статусе возвращается только в том случае, если гарантии записи равны как минимум 1. В противном случае возвращается TRUE. Поля в документе состояния отличаются, за исключением поля "ok", которое указывает, было ли создание индекса успешным. Дополнительные поля описаны в документации для MongoCollection::insert().

Список изменений

Версия | Описание
1.5.0

Переименован параметр "wtimeout" в "wTimeoutMS". Выдает E_DEPRECATED, когда используется "wtimeout".

Переименован параметр "timeout" в "socketTimeoutMS". Выдает E_DEPRECATED, когда используется "timeout".

Выдает E_DEPRECATED, когда используется "safe".

1.3.4 | Добавлена опция "wtimeout".
1.3.0

Добавлена опция "w".

Параметр options больше не принимает логическое значение для обозначения уникального индекса. Вместо этого это теперь должно быть передано array('unique' => true).

1.2.11 | Выдает E_DEPRECATED, когда options являются скалярными.
1.2.0 | Добавлена опция "timeout".
1.0.11

Опция "safe" запускает первичное аварийное переключение, если это необходимо.

MongoException будет выброшено, если имя индекса (либо сгенерированное, либо установленное) длиннее 128 байт.

1.0.5 | Добавлена опция "name" для переопределения создания имени индекса.
1.0.2 | Изменен параметр options с логического на массив. До версии 1.0.2 вторым параметром было необязательное логическое значение, указывающее уникальный индекс.

Ошибки

Выдает исключение MongoException, если имя индекса длиннее 128 байт или если спецификация индекса не является массивом.

Выдает исключение MongoDuplicateKeyException, если серверу не удалось создать уникальный индекс из-за конфликтующих документов.

Выдает исключение MongoResultException, если серверу не удалось создать индекс из-за ошибки.

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.

Примеры

Пример #1 Пример использования MongoCollection::ensureIndex()

<?php

$c = new MongoCollection($db, 'foo');

// создаем индекс по возрастанию на 'х'
$c->ensureIndex(array('x' => 1));

// создаем уникальный индекс на 'y'
$c->ensureIndex(array('y' => 1), array('unique' => true));

// создаем составной индекс по возрастанию на 'za' и по убыванию на 'zb'
$c->ensureIndex(array('za' => 1, 'zb' => -1));

?>

Пример #2 Геопространственная индексация

Mongo поддерживает геопространственные индексы, которые позволяют вам искать документы рядом с заданным местоположением или внутри фигуры. В следующем примере создается геопространственный индекс в поле "loc":

<?php

$collection->ensureIndex(array('loc' => '2dsphere'));

?>

Пример #3 Пример удаления дубликатов

<?php

$collection->insert(array('username' => 'joeschmoe'));
$collection->insert(array('username' => 'joeschmoe'));

/* Сбой создания индекса, так как вы не можете создать
/* уникальный индекс на поле, если существуют дубликаты.
 */
$collection->ensureIndex(array('username' => 1), array('unique' => 1));

/* MongoDB будет одним из конфликтующих документов
/* и позволит создать уникальный индекс.
 */
$collection->ensureIndex(array('username' => 1), array('unique' => 1, 'dropDups' => 1));

/* Теперь у нас есть уникальный индекс, и последующие вставки
/* с тем же именем пользователя завершатся неудачно.
 */
$collection->insert(array('username' => 'joeschmoe'));

?>

Смотрите также

  • MongoCollection::createIndex() - Создает индекс для указанных полей, если он еще не существует
  • MongoCollection::deleteIndex() - Удаляет индекс из коллекции
  • MongoCollection::deleteIndexes() - Удаляет все индексы для коллекции
  • » Индексы и документация по » типу индекса MongoDB.


Запрашивает коллекцию, возвращая MongoCursor для набора результатов

  • « MongoCollection::ensureIndex
  • MongoCollection::findAndModify »
  • PHP Manual
  • MongoCollection
  • Запрашивает коллекцию, возвращая MongoCursor для набора результатов

MongoCollection::find

(PECL mongo >=0.9.0)

MongoCollection::find — Запрашивает коллекцию, возвращая MongoCursor для набора результатов

Описание

 public MongoCollection::find
  ([ array $query = array()
 [, array $fields = array()
]] ) : MongoCursor

Список параметров

query

Поля для поиска. Язык запросов MongoDB довольно обширный. Драйвер PHP почти во всех случаях передает запрос напрямую на сервер, поэтому чтение основных документов MongoDB в » find - хорошая идея.

Внимание

Пожалуйста, убедитесь, что для всех специальных операторов запросов (начиная с $) вы используете одинарные кавычки, чтобы PHP не пытался заменить "$exists" значением переменной $exists.

fields

Поля результатов для возврата. Массив находится в формате array('fieldname' => true, 'fieldname2' => true). Поле _id всегда возвращается.

Возвращаемые значения

Возвращает курсор для результатов поиска.

Примеры

Пример #1 Пример использования MongoCollection::find()

Этот пример демонстрирует основные параметры поиска.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'produce');

// поиск фруктов
$fruitQuery = array('Type' => 'Fruit');

$cursor = $collection->find($fruitQuery);
foreach ($cursor as $doc) {
    var_dump($doc);
}

// поиск сладкой продукции. Taste - дочерний элемент Details.
$sweetQuery = array('Details.Taste' => 'Sweet');
echo "Sweet\n";
$cursor = $collection->find($sweetQuery);
foreach ($cursor as $doc) {
    var_dump($doc);
}

?>

Результат выполнения данного примера:

array(4) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "50a87dd084f045a19b220dd6"
  }
  ["Name"]=>
  string(5) "Apple"
  ["Type"]=>
  string(5) "Fruit"
  ["Details"]=>
  array(2) {
    ["Taste"]=>
    string(5) "Sweet"
    ["Colour"]=>
    string(3) "Red"
  }
}
array(4) {
  ["_id"]=>
  object(MongoId)#8 (1) {
    ["$id"]=>
    string(24) "50a87de084f045a19b220dd7"
  }
  ["Name"]=>
  string(5) "Lemon"
  ["Type"]=>
  string(5) "Fruit"
  ["Details"]=>
  array(2) {
    ["Taste"]=>
    string(4) "Sour"
    ["Colour"]=>
    string(5) "Green"
  }
}

Sweet:
array(4) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "50a87dd084f045a19b220dd6"
  }
  ["Name"]=>
  string(5) "Apple"
  ["Type"]=>
  string(5) "Fruit"
  ["Details"]=>
  array(2) {
    ["Taste"]=>
    string(5) "Sweet"
    ["Colour"]=>
    string(3) "Red"
  }
}

Смотрите MongoCursor для получения дополнительной информации, как работать с курсорами.

Пример #2 Пример использования MongoCollection::find()

Этот пример демонстрирует, как искать диапазон.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');

// поиск документов где 5 < x <20
$rangeQuery = array('x' => array( '$gt' => 5, '$lt' => 20 ));

$cursor = $collection->find($rangeQuery);
foreach ($cursor as $doc) {
    var_dump($doc);
}

?>

Результат выполнения данного примера:

array(2) {
  ["_id"]=>
  object(MongoId)#10 (1) {
    ["$id"]=>
    string(24) "4ebc3e3710b89f2349000000"
  }
  ["x"]=>
  int(12)
}
array(2) {
  ["_id"]=>
  object(MongoId)#11 (1) {
    ["$id"]=>
    string(24) "4ebc3e3710b89f2349000001"
  }
  ["x"]=>
  int(12)
}

Смотрите MongoCursor для получения дополнительной информации, как работать с курсорами.

Пример #3 Пример использования MongoCollection::find() совместно с $where

Этот пример демонстрирует, как искать коллекцию, используя код JavaScript, чтобы уменьшить набор результатов.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');

$js = "function() {
    return this.name == 'Joe' || this.age == 50;
}";
$cursor = $collection->find(array('$where' => $js));
foreach ($cursor as $doc) {
    var_dump($doc);
}

?>

Результат выполнения данного примера:

array(3) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "4ebc3e3710b89f2349000002"
  }
  ["name"]=>
  string(3) "Joe"
  ["age"]=>
  int(20)
}

Пример #4 Пример использования MongoCollection::find() совместно с $in

В этом примере показано, как искать коллекцию с помощью оператора $in.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');

$cursor = $collection->find(array(
    'name' => array('$in' => array('Joe', 'Wendy'))
));

?>

Результат выполнения данного примера:

array(3) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "4ebc3e3710b89f2349000002"
  }
  ["name"]=>
  string(3) "Joe"
  ["age"]=>
  int(20)
}

Пример #5 Получение результатов в виде массива

Возвращает MongoCursor. Часто, когда люди только начинают, им удобнее использовать массив. Чтобы превратить курсор в массив, используйте функцию iterator_to_array().

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');

$cursor = $collection->find();
$array = iterator_to_array($cursor);

?>

Результат выполнения данного примера:

array(3) {
  ["4ebc40af10b89f5149000000"]=>
  array(2) {
    ["_id"]=>
    object(MongoId)#6 (1) {
      ["$id"]=>
      string(24) "4ebc40af10b89f5149000000"
    }
    ["x"]=>
    int(12)
  }
  ["4ebc40af10b89f5149000001"]=>
  array(2) {
    ["_id"]=>
    object(MongoId)#11 (1) {
      ["$id"]=>
      string(24) "4ebc40af10b89f5149000001"
    }
    ["x"]=>
    int(12)
  }
  ["4ebc40af10b89f5149000002"]=>
  array(3) {
    ["_id"]=>
    object(MongoId)#12 (1) {
      ["$id"]=>
      string(24) "4ebc40af10b89f5149000002"
    }
    ["name"]=>
    string(3) "Joe"
    ["age"]=>
    int(20)
  }
}

Использование iterator_to_array() заставляет драйвер загружать все результаты в память, поэтому не делайте этого для наборов результатов, которые больше веделенной памяти!

Кроме того, некоторые системные коллекции не имеют поля _id. Если вы имеете дело с коллекцией, в которой могут быть документы без _id, передайте FALSE в качестве второго аргумента iterator_to_array() (чтобы он не пытался использовать несуществующие значения _id в качестве ключей).

Смотрите также

  • MongoCollection::findOne() - Запрашивает коллекцию, возвращая единственный элемент
  • MongoCollection::insert() - Вставляет документ в коллекцию
  • Основные документы MongoDB по » поиску.


Обновляет документ и возвращает его

  • « MongoCollection::find
  • MongoCollection::findOne »
  • PHP Manual
  • MongoCollection
  • Обновляет документ и возвращает его

MongoCollection::findAndModify

(PECL mongo >=1.3.0)

MongoCollection::findAndModify — Обновляет документ и возвращает его

Описание

public MongoCollection::findAndModify ( array $query [, array $update [, array $fields [, array $options ]]] ) : array

Команда findAndModify атомарно изменяет и возвращает один документ. По умолчанию возвращенный документ не содержит изменений, внесенных в обновление. Чтобы вернуть документ с изменениями, внесенными в обновление, используйте параметр new.

Список параметров

query

Критерии запроса для поиска.

update

Критерии обновления.

fields

Необязательно, вернуть только эти поля.

options

Массив опций, которые нужно применить, например удалить документ соответствия из БД и вернуть его.

Опция | Описание
sort array | Определяет, какой документ будет изменен операцией, если запрос выбирает несколько документов. findAndModify изменит первый документ в порядке сортировки, заданном этим аргументом.
remove boolean | Необязательно, если поле update существует. Когда TRUE, удаляет выбранный документ. Значением по умолчанию является FALSE.
update array | Необязательно, если поле remove существует. Выполняет обновление выбранного документа.
new boolean | Необязательный. Когда TRUE, возвращает измененный документ, а не оригинал. Метод findAndModify игнорирует параметр new для операций удаления. Значением по умолчанию является FALSE.
upsert boolean | Необязательный. Используется вместе с полем update. Когда TRUE, команда findAndModify создает новый документ, если запрос не возвращает документов. По умолчанию установлено значение false. В MongoDB 2.2 команда findAndModify возвращает NULL, когда upsert равен TRUE.

Возвращаемые значения

Возвращает исходный документ или измененный документ, если установлен new.

Ошибки

Выдает исключение MongoResultException при сбое.

Примеры

Пример #1 Пример использования MongoCollection::findAndModify()

<?php
$m = new Mongo;
$col = $m->selectDB("test")->jobs;

$col->insert(array(
     "name" => "Next promo",
     "inprogress" => false,
     "priority" => 0,
     "tasks" => array( "select product", "add inventory", "do placement"),
) );

$col->insert(array(
     "name" => "Biz report",
     "inprogress" => false,
     "priority" => 1,
     "tasks" => array( "run sales report", "email report" )
) );

$col->insert(array(
     "name" => "Biz report",
     "inprogress" => false,
     "priority" => 2,
     "tasks" => array( "run marketing report", "email report" )
    ),
    array("w" => 1)
);

$retval = $col->findAndModify(
     array("inprogress" => false, "name" => "Biz report"),
     array('$set' => array('inprogress' => true, "started" => new MongoDate())),
     null,
     array(
        "sort" => array("priority" => -1),
        "new" => true,
    )
);

var_dump($retval);
?>

Результатом выполнения данного примера будет что-то подобное:

array(6) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "5091b5b244415e8cc3000002"
  }
  ["inprogress"]=>
  bool(true)
  ["name"]=>
  string(10) "Biz report"
  ["priority"]=>
  int(2)
  ["started"]=>
  object(MongoDate)#8 (2) {
    ["sec"]=>
    int(1351726514)
    ["usec"]=>
    int(925000)
  }
  ["tasks"]=>
  array(2) {
    [0]=>
    string(20) "run marketing report"
    [1]=>
    string(12) "email report"
  }
}

Пример #2 Пример обработки ошибок MongoCollection::findAndModify()

<?php
$m = new Mongo;
$col = $m->selectDB("test")->jobs;
try {
    $retval = $col->findAndModify(
         array("inprogress" => false, "name" => "Next promo"),
         array('$pop' => array("tasks" => -1)),
         array("tasks" => array('$pop' => array("stuff"))),
         array("new" => true)
    );
} catch(MongoResultException $e) {
    echo $e->getCode(), " : ", $e->getMessage(), "\n";
    var_dump($e->getDocument());
}

?>

Результатом выполнения данного примера будет что-то подобное:

13097 : exception: Unsupported projection option: $pop
array(3) {
  ["errmsg"]=>
  string(46) "exception: Unsupported projection option: $pop"
  ["code"]=>
  int(13097)
  ["ok"]=>
  float(0)
}

Смотрите также

  • Документация по » команде findAndModify MongoDB


Запрашивает коллекцию, возвращая единственный элемент

  • « MongoCollection::findAndModify
  • MongoCollection::__get »
  • PHP Manual
  • MongoCollection
  • Запрашивает коллекцию, возвращая единственный элемент

MongoCollection::findOne

(PECL mongo >=0.9.0)

MongoCollection::findOne — Запрашивает коллекцию, возвращая единственный элемент

Описание

 public MongoCollection::findOne
  ([ array $query = array()
 [, array $fields = array()
 [, array $options = array()
]]] ) : array

В отличие от MongoCollection::find(), этот метод будет возвращать только первый результат из набора результатов, а не MongoCursor, который можно перебирать.

Список параметров

query

Поля для поиска. Язык запросов MongoDB довольно обширный. Драйвер PHP почти во всех случаях передает запрос напрямую на сервер, поэтому чтение основных документов MongoDB на » find - хорошая идея.

Внимание

Пожалуйста, убедитесь, что для всех специальных операторов запросов (начинающихся с $) вы используете одинарные кавычки, чтобы PHP не пытался заменить "$exists" значением переменной $exists.

fields

Поля результатов для возврата. Массив находится в формате array('fieldname' => true, 'fieldname2' => true). Поле _id всегда возвращается.

options

Этот параметр является ассоциативным массивом массива формы array("name" => <value>, ...). В настоящее время поддерживаются следующие варианты:

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

Возвращаемые значения

Возвращает запись, соответствующую запросу или NULL.

Ошибки

Выдает исключение MongoConnectionException, если он не может подключиться к базе данных.

Список изменений

Версия | Описание
1.5.0 | Добавлен необязательный параметр options.

Примеры

Пример #1 MongoCollection::findOne() документ по его идентификатору.

Этот пример демонстрирует, как найти один документ в коллекции по его идентификатору.

<?php

$articles = $mongo->my_db->articles;

$article = $articles->findOne(array('_id' => new MongoId('47cc67093475061e3d9536d2')));

?>

Пример #2 MongoCollection::findOne() документ по какому-либо условию.

Этот пример демонстрирует, как найти один документ в коллекции по некоторым условиям и ограничению возвращаемых полей.

<?php

$users = $mongo->my_db->users;
$user = $users->findOne(array('username' => 'jwage'), array('password'));
print_r($user);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [_id] => MongoId Object
        (
        )

    [password] => test
)

Обратите внимание, что, хотя в документе есть поле username, мы ограничиваем результаты только полем password.

Смотрите также

  • MongoCollection::find() - Запрашивает коллекцию, возвращая MongoCursor для набора результатов
  • MongoCollection::insert() - Вставляет документ в коллекцию
  • MongoDB основные документы по » find.


Получает коллекцию

  • « MongoCollection::findOne
  • MongoCollection::getDBRef »
  • PHP Manual
  • MongoCollection
  • Получает коллекцию

MongoCollection::__get

(PECL mongo >=1.0.2)

MongoCollection::__get — Получает коллекцию

Описание

public MongoCollection::__get ( string $name ) : MongoCollection

Краткий синтаксис для получения коллекции с разделенным точками именем. Если имя коллекции содержит странные символы, вам, возможно, придется использовать MongoDB::selectCollection().

<?php

$mongo = new MongoClient();

// следующие две строки эквивалентны
$collection = $mongo->selectDB("foo")->selectCollection("bar.baz");
$collection = $mongo->foo->bar->baz;

?>

Список параметров

name

Следующая строка в названии коллекции.

Возвращаемые значения

Возвращает коллекцию.


Выбирает документ базы данных на который указывает ссылка

  • « MongoCollection::__get
  • MongoCollection::getIndexInfo »
  • PHP Manual
  • MongoCollection
  • Выбирает документ базы данных на который указывает ссылка

MongoCollection::getDBRef

(PECL mongo >=0.9.0)

MongoCollection::getDBRef — Выбирает документ базы данных на который указывает ссылка

Описание

public MongoCollection::getDBRef ( array $ref ) : array

Список параметров

ref

Ссылка базы данных.

Возвращаемые значения

Возвращает документ базы данных, на который указывает ссылка.

Примеры

Пример #1 Пример использования MongoCollection::getDBRef()

<?php

$playlists = $db->playlists;

$myList = $playlists->findOne(array('username' => 'me'));

// получаем каждую песню в плейлисте
foreach ($myList['songlist'] as $songRef) {
    $song = $playlists->getDBRef($songRef);
    echo $song['title'] . "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Dazed and Confused
Ma na ma na
Bohemian Rhapsody

В приведенном выше примере каждая $songRef выглядит примерно так:
    Array
    (
        [$ref] => songs
        [$id] => 49902cde5162504500b45c2c
    )

Смотрите также

  • MongoCollection::createDBRef() - Создает ссылку на базу данных


Возвращает информацию об индексах в коллекции

  • « MongoCollection::getDBRef
  • MongoCollection::getName »
  • PHP Manual
  • MongoCollection
  • Возвращает информацию об индексах в коллекции

MongoCollection::getIndexInfo

(PECL mongo >=0.9.0)

MongoCollection::getIndexInfo — Возвращает информацию об индексах в коллекции

Описание

public MongoCollection::getIndexInfo ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция возвращает массив, в котором каждый элемент описывает индекс. Элементы будут содержать значения name для имени индекса, ns для пространства имен (комбинация базы данных и имени коллекции) и key для списка всех полей в индексе и их порядка. Дополнительные значения могут присутствовать для специальных индексов, таких как unique или sparse.

Примеры

Пример #1 Пример использования MongoCollection::getIndexInfo()

<?php

$m = new MongoClient();
$c = $m->selectCollection('test', 'venues');
var_dump($c->getIndexInfo());

?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  [0]=>
  array(4) {
    ["v"]=>
    int(1)
    ["key"]=>
    array(1) {
      ["_id"]=>
      int(1)
    }
    ["name"]=>
    string(4) "_id_"
    ["ns"]=>
    string(11) "test.venues"
  }
  [1]=>
  array(4) {
    ["v"]=>
    int(1)
    ["key"]=>
    array(1) {
      ["name"]=>
      float(1)
    }
    ["name"]=>
    string(6) "name_1"
    ["ns"]=>
    string(11) "test.venues"
  }
  [2]=>
  array(4) {
    ["v"]=>
    int(1)
    ["key"]=>
    array(2) {
      ["type"]=>
      float(1)
      ["createdAt"]=>
      float(-1)
    }
    ["name"]=>
    string(19) "type_1_createdAt_-1"
    ["ns"]=>
    string(11) "test.venues"
  }
  [3]=>
  array(5) {
    ["v"]=>
    int(1)
    ["key"]=>
    array(1) {
      ["location"]=>
      string(8) "2dsphere"
    }
    ["name"]=>
    string(17) "location_2dsphere"
    ["ns"]=>
    string(11) "test.venues"
    ["2dsphereIndexVersion"]=>
    int(2)
  }
}

Смотрите также

Основная документация MongoDB по » ванильным индексам и » геопространственным индексам.


Получить имя коллекции

  • « MongoCollection::getIndexInfo
  • MongoCollection::getReadPreference »
  • PHP Manual
  • MongoCollection
  • Получить имя коллекции

MongoCollection::getName

(PECL mongo >=0.9.0)

MongoCollection::getName — Получить имя коллекции

Описание

public MongoCollection::getName ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя коллекции.

Примеры

Пример #1 Пример использования MongoCollection::getName()

<?php

$m = new MongoClient();
$c = $m->foo->bar->baz;

echo "Working with collection " . $c->getName() . ".\n";

// Метод MongoCollection::__toString() возвращает полное пространство имен
echo "Working in namespace $c.\n";

?>

Результатом выполнения данного примера будет что-то подобное:

Working with collection bar.baz.
Working in namespace foo.bar.baz.


Получает предпочтения чтения для коллекции

  • « MongoCollection::getName
  • MongoCollection::getSlaveOkay »
  • PHP Manual
  • MongoCollection
  • Получает предпочтения чтения для коллекции

MongoCollection::getReadPreference

(PECL mongo >=1.3.0)

MongoCollection::getReadPreference — Получает предпочтения чтения для коллекции

Описание

public MongoCollection::getReadPreference ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Данная функция возвращает массив, описывающий режимы предпочтения чтения. Массив содержит следующие значения: type для строкового значения режима предпочтения чтения (соответствующий константам MongoClient) и tagsets, содержащее список всех критерий наборов тегов. Если наборы тегов не были указаны, то tagsets в массиве не будет.

Список изменений

Версия | Описание
1.3.3 | Возвращаемое значение было изменено, чтобы соответствовать MongoCollection::setReadPreference(). Значение type было изменено с числа на строку, type_string была удалена, и tagsets теперь выражают теги как пары ключ/значение вместо строк, разделенных двоеточиями.

Примеры

Пример #1 Пример возвращаемого значения MongoCollection::getReadPreference()

<?php

$m = new MongoClient();
$c = $m->test->users;
$c->setReadPreference(MongoClient::RP_SECONDARY, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
    array(),
));
var_dump($c->getReadPreference());
?>

Результат выполнения данного примера:

array(2) {
  ["type"]=>
  string(9) "secondary"
  ["tagsets"]=>
  array(3) {
    [0]=>
    array(2) {
      ["dc"]=>
      string(4) "east"
      ["use"]=>
      string(9) "reporting"
    }
    [1]=>
    array(1) {
      ["dc"]=>
      string(7) "west"
    }
    [2]=>
    array(0) {
    }
  }
}

Смотрите также

  • Документация по предпочтениям чтения.
  • MongoCollection::setReadPreference() - Устанавливает предпочтения чтения для коллекции


Получает значение slaveOkay для коллекции

  • « MongoCollection::getReadPreference
  • MongoCollection::getWriteConcern »
  • PHP Manual
  • MongoCollection
  • Получает значение slaveOkay для коллекции

MongoCollection::getSlaveOkay

(PECL mongo >=1.1.0)

MongoCollection::getSlaveOkay — Получает значение slaveOkay для коллекции

Описание

public MongoCollection::getSlaveOkay ( void ) : bool

Смотрите раздел про запросы данного руководства для получения информации о распределении чтений среди вторичных серверов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает значение slaveOkay для этого экземпляра.

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED при использовании.

Смотрите также

  • Предпочтения чтения
  • MongoCollection::getReadPreference() - Получает предпочтения чтения для коллекции


Получает гарантии записи для этой коллекции

  • « MongoCollection::getSlaveOkay
  • MongoCollection::group »
  • PHP Manual
  • MongoCollection
  • Получает гарантии записи для этой коллекции

MongoCollection::getWriteConcern

(PECL mongo >=1.5.0)

MongoCollection::getWriteConcern — Получает гарантии записи для этой коллекции

Описание

public MongoCollection::getWriteConcern ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция возвращает массив, описывающий контроль записи. Массив содержит значения w - уровень подтверждения или режим в виде строки, и wtimeout определяющий максимальное количество миллисекунд ожидания для сервера, чтобы удовлетворить контроль записи.

Примеры

Пример #1 Пример возвращаемого значения MongoCollection::getWriteConcern()

<?php

$mc = new MongoClient('mongodb://localhost:27017', array('wTimeoutMS' => 500));
$coll = $mc->selectCollection('test', 'foo');
var_dump($coll->getWriteConcern());

$coll->setWriteConcern(1, 1000);
var_dump($coll->getWriteConcern());
?>

Результат выполнения данного примера:

array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(500)
}
array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(1000)
}

Смотрите также

  • Документация по гарантиям записи.
  • MongoCollection::setWriteConcern() - Устанавливает гарантии записи для этой базы данных


Выполняет операцию, аналогичную команде SQL GROUP BY

  • « MongoCollection::getWriteConcern
  • MongoCollection::insert »
  • PHP Manual
  • MongoCollection
  • Выполняет операцию, аналогичную команде SQL GROUP BY

MongoCollection::group

(PECL mongo >=0.9.2)

MongoCollection::group — Выполняет операцию, аналогичную команде SQL GROUP BY

Описание

public MongoCollection::group ( mixed $keys , array $initial , MongoCode $reduce [, array $options = array() ] ) : array

Список параметров

keys

Поля для группировки. Если передан массив или объект без кода, это будет ключ, используемый для группировки результатов.

1.0.4+: Если keys является экземпляром MongoCode, keys будут обрабатываться как функция, которая возвращает ключ для группировки (смотрите пример "Передача функции keys" ниже).

initial

Начальное значение объекта счетчика агрегации.

reduce

Функция, которая принимает два аргумента (текущий документ и агрегацию на данный момент) и выполняет агрегацию.

options

Необязательные параметры для групповой команды. Допустимые варианты:

  • "condition"

    Критерии включения документа в агрегацию.

  • "finalize"

    Функция вызывается один раз для каждой уникальной клавиши, которая принимает окончательный результат функции reduce.

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

Возвращаемые значения

Возвращает массив, содержащий результат.

Список изменений

Версия | Описание
1.5.0 | Добавлена опция "maxTimeMS".
1.2.11 | Выдает E_DEPRECATED, когда используется options, как scalar.

Примеры

Пример #1 Пример использования MongoCollection::group()

Группирует документы по категориям и создает список имен в этой категории.

<?php

$collection->insert(array("category" => "fruit", "name" => "apple"));
$collection->insert(array("category" => "fruit", "name" => "peach"));
$collection->insert(array("category" => "fruit", "name" => "banana"));
$collection->insert(array("category" => "veggie", "name" => "corn"));
$collection->insert(array("category" => "veggie", "name" => "broccoli"));

$keys = array("category" => 1);

$initial = array("items" => array());

$reduce = "function (obj, prev) { prev.items.push(obj.name); }";

$g = $collection->group($keys, $initial, $reduce);

echo json_encode($g['retval']);

?>

Результатом выполнения данного примера будет что-то подобное:

[{"category":"fruit","items":["apple","peach","banana"]},{"category":"veggie","items":["corn","broccoli"]}]

Пример #2 Пример использования MongoCollection::group()

Этот пример не использует никаких ключей, поэтому каждый документ будет иметь свою собственную группу. Он также использует условие: только те документы, которые соответствуют этому условию, будут обрабатываться функцией группировки.

<?php

$collection->save(array("a" => 2));
$collection->save(array("b" => 5));
$collection->save(array("a" => 1));

// используем все поля
$keys = array();

// устанавливаем начальные значения
$initial = array("count" => 0);

// функция JavaScript для выполнения
$reduce = "function (obj, prev) { prev.count++; }";

// используем только те документы, у которых поле "а" больше 1
$condition = array('condition' => array("a" => array( '$gt' => 1)));

$g = $collection->group($keys, $initial, $reduce, $condition);

var_dump($g);

?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  ["retval"]=>
  array(1) {
    [0]=>
    array(1) {
      ["count"]=>
      float(1)
    }
  }
  ["count"]=>
  float(1)
  ["keys"]=>
  int(1)
  ["ok"]=>
  float(1)
}

Пример #3 Передача функции keys

Если вы хотите сгруппировать по чему-то отличному от имен полей, вы можете передать функцию в качестве первого параметра MongoCollection::group(), и она будет выполняться для каждого документа. Возвращаемое значение функции будет использоваться в качестве значения группировки.

Этот пример демонстрирует группирование по числовому полю по модулю 4.

<?php

$c->group(new MongoCode('function(doc) { return {mod : doc.num % 4}; }'),
     array("count" => 0),
     new MongoCode('function(current, total) { total.count++; }'));

?>


Вставляет документ в коллекцию

  • « MongoCollection::group
  • MongoCollection::parallelCollectionScan »
  • PHP Manual
  • MongoCollection
  • Вставляет документ в коллекцию

MongoCollection::insert

(PECL mongo >=0.9.0)

MongoCollection::insert — Вставляет документ в коллекцию

Описание

public MongoCollection::insert ( array|object $document [, array $options = array() ] ) : bool|array

Все строки, отправляемые в базу данных, должны быть в формате UTF-8. Если строка не UTF-8, будет выдано исключение MongoException. Чтобы вставить (или запросить) строку не-UTF-8, используйте MongoBinData.

Список параметров

document

Массив или объект. Если используется объект, он может не иметь защищенных или закрытых свойств.

Замечание:

Если у параметра нет ключа или свойства _id, будет создан новый экземпляр MongoId и назначен ему. Это специальное поведение не означает, что параметр передается по ссылке.

options

Массив опций для операции вставки. В настоящее время доступны следующие варианты:

  • "fsync"

    Булево, по умолчанию FALSE. Если включено журналирование, то работает также как и "j". Если журналирование не включено, то операции записи блокируются пока не будут синхронизированы с файлами на жестком диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если журналирование включено, то пользователю настоятельно рекомендуется использовать опцию "j" вместо "fsync". Не используйте "fsync" и "j" одновременно,так как это может привести к ошибке.

  • "j"

    Булево, по умолчанию FALSE. Блокирует операции записи пока они не будут синхронизированы с журналом на диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если применяется эта опция и журналирование отключено, то MongoDB 2.6+ выбросит ошибку и прервет запись; старые версии сервера просто игнорируют эту опцию.

  • "socketTimeoutMS"

    Эта опция определяет время в миллисекундах для общения в socket. Если сервер не ответил за отведенное время, то будет брошено исключение MongoCursorTimeoutException, и не будет никакой возможности определить произвел ли сервер запись или нет. Значение -1 используется для постоянно отключения этой функции. Значением по умолчанию для MongoClient является 30000 (30 секунд).

  • "w"

    Смотрите Контроль записи. Значение по умолчанию для MongoClient является 1.

  • "wTimeoutMS"

    Эта опция определяет лимит времени в миллисекундах для подтверждения контроля записи. Она применима только, если "w" больше 1, так как ограничение времени относится к репликации. Если контроль записи не подтвержден за отведенное время, то будет выброшено исключение MongoCursorException. Значение 0 для постоянного отключения. Значением по умолчанию для MongoClient является 10000 (десять секунд).

Следующие параметры устарели и больше не должны использоваться:

  • "safe"

    Устаревшая опция. Используйте опцию "w" контроля записи.

  • "timeout"

    Устаревший псевдоним для "socketTimeoutMS".

  • "wtimeout"

    Устаревший псевдоним для "wTimeoutMS".

Возвращаемые значения

Возвращает массив, содержащий состояние вставки, если установлена опция "w". В противном случае возвращает TRUE, если вставленный массив не пустой (исключение MongoException будет выдано, если вставленный массив пуст).

Если возвращается массив, могут присутствовать следующие ключи:

ok

Это почти всегда будет 1 (если не произошел сбой самого last_error).

err

Если это поле не null, произошла ошибка в предыдущей операции. Если это поле установлено, это будет строка, описывающая возникшую ошибку.

code

Если произошла ошибка базы данных, соответствующий код ошибки будет передан обратно клиенту.

errmsg

Это поле устанавливается, если что-то идет не так с командой базы данных. Это связано с тем, что ok равно 0. Например, если w установлено и время ожидания истекло, для errmsg будет установлено значение «превышено время ожидания подчиненных устройств», и значение ok будет равно 0. Если это поле установлено, оно будет строкой, описывающей произошла ошибка.

n

Если последней операцией было обновление, удаление или удаление, будет возвращено количество затронутых документов. Для операций вставки это значение всегда равно 0.

wtimeout

Если для предыдущего варианта истекло время ожидания репликации.

waited

Сколько времени операция ожидала до истечения времени ожидания.

wtime

Если w был установлен и операция прошла успешно, сколько времени потребовалось для репликации на w серверов.

upserted

Если произошел сбой, это поле будет содержать поле _id новой записи. Для слияния будет присутствовать это поле или updatedExisting (если ошибка не произошла).

updatedExisting

Если слияние обновило существующий элемент, это поле будет истинным. Для слияния будет присутствовать это поле или upserted (если ошибка не произошла).

Ошибки

Выдает исключение MongoException, если вставленный документ пуст или содержит ключи нулевой длины. Попытка вставить объект с защищенными и закрытыми свойствами приведет к ошибке ключа нулевой длины.

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.

Список изменений

Версия | Описание
1.5.0

Добавлена опция "wTimeoutMS", которая заменяет "wtimeout". Выдает E_DEPRECATED, когда используется "wtimeout".

Добавлена опция "socketTimeoutMS", которая заменяет "timeout". Выдает E_DEPRECATED, когда используется "timeout".

Выдает E_DEPRECATED, когда используется "safe".

1.3.4 | Добавлена опция "wtimeout".
1.3.0

Добавлена опция "w" option.

Параметр options больше не принимает логическое значение для обозначения подтвержденной записи. Вместо этого теперь это должно быть сделано с array('w' => 1) (поведение по умолчанию MongoClient).

1.2.0 | Добавлена опция "timeout".
1.0.11 | Отключается при ошибках "not master", если установлен "safe".
1.0.9

Добавлена возможность передавать целые числа в опцию "safe", которая ранее принимала только логические значения.

Добавлена опция "fsync".

Тип возвращаемого значения был изменен на массив, содержащий информацию об ошибке, если используется параметр "safe". В противном случае логическое значение возвращается, как и раньше.

1.0.2 | Изменен второй параметр, чтобы он был массивом опций. До версии 1.0.2 вторым параметром был логический параметр, указывающий "safe" параметр.
1.0.1 | Выдает исключение MongoCursorException, если установлена опция "safe" и вставка завершается неудачно.

Примеры

Пример #1 Пример использования MongoCollection::insert() _id

Поле _id будет добавлено во вставленный документ, если его еще нет. В зависимости от того, как передан параметр, сгенерированный _id может быть или не быть доступен для вызывающего кода.

<?php

$m = new MongoClient();
$collection = $m->selectCollection('test', 'phpmanual');

// Если используется литерал массива, то нет доступа к сгенерированному _id
$collection->insert(array('x' => 1));

// _id доступен для массива, переданного по значению
$a = array('x' => 2);
$collection->insert($a);
var_dump($a);

// _id недоступен для массива, переданного по ссылке
$b = array('x' => 3);
$ref = &$b;
$collection->insert($ref);
var_dump($ref);

// _id доступен, если функция переноса не запускает копирование при записи
function insert_no_cow($collection, $document)
{
    $collection->insert($document);
}

$c = array('x' => 4);
insert_no_cow($collection, $c);
var_dump($c);

// _id недоступен, если функция переноса запускает копирование при записи
function insert_cow($collection, $document)
{
    $document['y'] = 1;
    $collection->insert($document);
}

$d = array('x' => 5);
insert_cow($collection, $d);
var_dump($d);

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["x"]=>
  int(2)
  ["_id"]=>
  object(MongoId)#4 (0) {
  }
}
array(1) {
  ["x"]=>
  int(3)
}
array(2) {
  ["x"]=>
  int(4)
  ["_id"]=>
  object(MongoId)#5 (0) {
  }
}
array(1) {
  ["x"]=>
  int(5)
}

Пример #2 Пример использования MongoCollection::insert() c подтверждением записи

В этом примере показана вставка двух элементов с одинаковым _id, которое вызовет исключение MongoCursorException, которое было задано для w.

<?php

$person = array("name" => "Joe", "age" => 20);
$collection->insert($person);

// теперь $person имеет поле _id, поэтому,
// если мы сохраним его снова, мы получим исключение
try {
    $collection->insert($person, array("w" => 1));
} catch(MongoCursorException $e) {
    echo "Не могу сохранить того же человека дважды!\n";
}

?>

Смотрите также

  • MongoCollection::batchInsert() - Вставляет несколько документов в коллекцию
  • MongoCollection::update() - Обновляет записи на основе заданных критериев
  • MongoCollection::find() - Запрашивает коллекцию, возвращая MongoCursor для набора результатов
  • MongoCollection::remove() - Удаление записей из коллекции
  • Основные документы MongoDB по » вставке.


Возвращает массив курсоров в итератор по всей параллельной коллекции

  • « MongoCollection::insert
  • MongoCollection::remove »
  • PHP Manual
  • MongoCollection
  • Возвращает массив курсоров в итератор по всей параллельной коллекции

MongoCollection::parallelCollectionScan

(PECL mongo >=1.5.0)

MongoCollection::parallelCollectionScan — Возвращает массив курсоров в итератор по всей параллельной коллекции

Описание

public MongoCollection::parallelCollectionScan ( int $num_cursors ) : array[MongoCommandCursor]

Этот метод возвращает массив максимум num_cursors из курсоров. Итерация по одному из возвращенных курсоров приводит к частичному набору документов для коллекции. Итерация по всем возвращенным курсорам приводит к тому, что каждый документ возвращается из коллекции.

Этот метод является оболочкой для команды parallelCollectionScan MongoDB.

Список параметров

num_cursors

Количество курсоров, запрашиваемых с сервера. Обратите внимание, что сервер может вернуть меньше курсоров, чем вы запрашивали.

Возвращаемые значения

Возвращает массив объектов MongoCommandCursor.

Примеры

Пример #1 Пример использования MongoCollection::parallelCollectionScan()

Возврат всех документов в коллекции с использованием нескольких курсоров.

<?php
$m = new MongoClient;
$c = $m->demo->cities;

/* Запрашиваем три курсора */
$cursors = $c->parallelCollectionScan( 3 );

/* Добавляем все курсоры в MultipleIterator */
$mi = new MultipleIterator( MultipleIterator::MIT_NEED_ANY );
foreach ( $cursors as $cursor )
{
    $mi->attachIterator( $cursor );
}

/* Итерация по всем связанным курсорам */
foreach ( $mi as $items )
{
    foreach ( $items as $item )
    {
        if ( $item !== NULL )
        {
            echo $item['name'], "\n";
        }
    }
}
?>

Смотрите также

  • MultipleIterator
  • MongoCommandCursor
  • MongoDB::command() - Выполняет команду базы данных


Удаление записей из коллекции

  • « MongoCollection::parallelCollectionScan
  • MongoCollection::save »
  • PHP Manual
  • MongoCollection
  • Удаление записей из коллекции

MongoCollection::remove

(PECL mongo >=0.9.0)

MongoCollection::remove — Удаление записей из коллекции

Описание

 public MongoCollection::remove
  ([ array $criteria = array()
 [, array $options = array()
]] ) : bool|array

Список параметров

criteria

Критерии запроса для удаления из документа

options

Массив опций для операции удаления. В данный момент доступны следующие опции:

  • "w"

    Смотрите Контроль записи. Значение по умолчанию для MongoClient является 1.

  • "justOne"

    Задайте как TRUE для удаления тьолько одного элемента. Если задать как FALSE, либо пропустить, то будут удалены все документы, удовлетворяющие критерию.

  • "fsync"

    Булево, по умолчанию FALSE. Если включено журналирование, то работает также как и "j". Если журналирование не включено, то операции записи блокируются пока не будут синхронизированы с файлами на жестком диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если журналирование включено, то пользователю настоятельно рекомендуется использовать опцию "j" вместо "fsync". Не используйте "fsync" и "j" одновременно,так как это может привести к ошибке.

  • "j"

    Булево, по умолчанию FALSE. Блокирует операции записи пока они не будут синхронизированы с журналом на диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если применяется эта опция и журналирование отключено, то MongoDB 2.6+ выбросит ошибку и прервет запись; старые версии сервера просто игнорируют эту опцию.

  • "socketTimeoutMS"

    Эта опция определяет время в миллисекундах для общения в socket. Если сервер не ответил за отведенное время, то будет брошено исключение MongoCursorTimeoutException, и не будет никакой возможности определить произвел ли сервер запись или нет. Значение -1 используется для постоянно отключения этой функции. Значением по умолчанию для MongoClient является 30000 (30 секунд).

  • "w"

    Смотрите Контроль записи. Значение по умолчанию для MongoClient является 1.

  • "wTimeoutMS"

    Эта опция определяет лимит времени в миллисекундах для подтверждения контроля записи. Она применима только, если "w" больше 1, так как ограничение времени относится к репликации. Если контроль записи не подтвержден за отведенное время, то будет выброшено исключение MongoCursorException. Значение 0 для постоянного отключения. Значением по умолчанию для MongoClient является 10000 (десять секунд).

Следующие опции считаются устаревшими и не рекомендованы к использованию:

  • "safe"

    Устаревшая опция. Используйте опцию "w" контроля записи.

  • "timeout"

    Устаревший псевдоним для "socketTimeoutMS".

  • "wtimeout"

    Устаревший псевдоним для "wTimeoutMS".

Возвращаемые значения

Возвращает массив, содержащий статус удаления, если установлена опция "w". Иначе возвращает TRUE

Поля этого массива описаны в документации для функции MongoCollection::insert().

Ошибки

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.

Список изменений

Версия | Описание
1.5.0

Добавлена опция "wTimeoutMS" в замен устаревшей "wtimeout". Ошибка уровня E_DEPRECATED будет вызвана в случае использования "wtimeout".

Добавлена опция "socketTimeoutMS" в замен устаревшей "timeout". Ошибка уровня E_DEPRECATED будет вызвана в случае использования "timeout".

Ошибка уровня E_DEPRECATED будет вызвана в случае использования "safe".

1.3.4 | Добавлена опция "wtimeout".
1.3.0

Добавлена опция "w".

Параметр options больше не принимает логические значения для определения поведения как "justOne". Вместо этого необходимо использовать array('justOne' => true).

1.2.11 | Ошибка уровня E_DEPRECATED если options скалярного типа.
1.2.0 | Добавлена опция "timeout".
1.0.11 | Ошибки сброса соединения на "не мастере" если установлена "safe".
1.0.9

Добавлена возможность передавать целые числа в опцию "safe", которая ранее принимала только логические значения.

Добавлена опция "fsync".

Тип возвращаемого значения изменен на массив, содержащий информацию об ошибке если установлена опция "safe". В протовном случае, как и раньше, возвращается логическое значения.

1.0.5 | Второй парамент теперь принимает массив опция. До версии 1.0.5 второй параметр принимал логическое значение, устанавливавшее опцию "safe".

Примеры

Пример #1 Пример использования MongoCollection::remove() с опцией justOne

<?php

$radioactive = $db->radioactive;

// Посчитаем, сколько у нас еще плутония
$remaining = $radioactive->count(array('type' => 94));

$halflife = $remaining/2;

// удалим половину
while ($halflife > 0) {
    $radioactive->remove(array('type' => 94), array("justOne" => true));
    $halflife--;
}

?>

Смотрите также

  • MongoCollection::insert() - Вставляет документ в коллекцию
  • MongoCollection::update() - Обновляет записи на основе заданных критериев
  • MongoDB core docs on » remove.


Сохраняет документ в коллекцию

  • « MongoCollection::remove
  • MongoCollection::setReadPreference »
  • PHP Manual
  • MongoCollection
  • Сохраняет документ в коллекцию

MongoCollection::save

(PECL mongo >=0.9.0)

MongoCollection::save — Сохраняет документ в коллекцию

Описание

public MongoCollection::save ( array|object $document [, array $options = array() ] ) : mixed

Если объект из базы данных, обновляет существующий объект базы данных, в противном случае добавояет этот объект.

Список параметров

document

Массив или объект для сохранения. Если объект используется, он может не иметь защищенных или закрытых свойств.

Замечание:

Если у параметра нет ключа или свойства _id, будет создан новый экземпляр MongoId и назначен ему. Посмотрите MongoCollection::insert() для получения дополнительной информации об этом поведении.

options

Параметры для сохранения.

  • "fsync"

    Булево, по умолчанию FALSE. Если включено журналирование, то работает также как и "j". Если журналирование не включено, то операции записи блокируются пока не будут синхронизированы с файлами на жестком диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если журналирование включено, то пользователю настоятельно рекомендуется использовать опцию "j" вместо "fsync". Не используйте "fsync" и "j" одновременно,так как это может привести к ошибке.

  • "j"

    Булево, по умолчанию FALSE. Блокирует операции записи пока они не будут синхронизированы с журналом на диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если применяется эта опция и журналирование отключено, то MongoDB 2.6+ выбросит ошибку и прервет запись; старые версии сервера просто игнорируют эту опцию.

  • "socketTimeoutMS"

    Эта опция определяет время в миллисекундах для общения в socket. Если сервер не ответил за отведенное время, то будет брошено исключение MongoCursorTimeoutException, и не будет никакой возможности определить произвел ли сервер запись или нет. Значение -1 используется для постоянно отключения этой функции. Значением по умолчанию для MongoClient является 30000 (30 секунд).

  • "w"

    Смотрите Контроль записи. Значение по умолчанию для MongoClient является 1.

  • "wtimeout"

    Устаревший псевдоним для "wTimeoutMS".

  • "wTimeoutMS"

    Эта опция определяет лимит времени в миллисекундах для подтверждения контроля записи. Она применима только, если "w" больше 1, так как ограничение времени относится к репликации. Если контроль записи не подтвержден за отведенное время, то будет выброшено исключение MongoCursorException. Значение 0 для постоянного отключения. Значением по умолчанию для MongoClient является 10000 (десять секунд).

  • "safe"

    Устаревшая опция. Используйте опцию "w" контроля записи.

  • "timeout"

    Устаревший псевдоним для "socketTimeoutMS".

Возвращаемые значения

Если w был установлен, возвращает массив, содержащий состояние сохранения. В противном случае возвращает логическое значение, представляющее, если массив не был пустым (пустой массив не будет вставлен).

Ошибки

Выдает исключение MongoException, если вставленный документ пуст или содержит ключи нулевой длины. Попытка вставить объект с защищенными и закрытыми свойствами приведет к ошибке ключа нулевой длины.

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.

Список изменений

Версия | Описание
1.5.0

Добавлена опция "wTimeoutMS", которая заменяет "wtimeout". Выдает E_DEPRECATED, когда используется "wtimeout".

Добавлена опция "socketTimeoutMS", которая заменяет "timeout". Выдает E_DEPRECATED, когда используется "timeout".

Выдает E_DEPRECATED, когда используется "safe".

1.2.0 | Добавлена опция "timeout".
1.0.11 | Отключается при ошибках "not master", если установлен "safe".
1.0.9

Добавлена опция "fsync".

1.0.5 | Добавлен параметр options.

Примеры

Пример #1 Пример использования MongoCollection::save()

<?php

$obj = array('x' => 1);

// вставляем $obj в БД
$collection->save($obj);
var_dump($obj);

// добавляем другое поле
$obj['foo'] = 'bar';

// $obj не может быть вставлен снова, вызывает ошибку дубликата _id
$collection->insert($obj);

// сохраняем обновления $obj с новым полем
$collection->save($obj);

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["x"]=>
  int(1)
  ["_id"]=>
  object(MongoId)#4 (1) {
    ["$id"]=>
    string(24) "50b6afe544415ed606000000"
  }
}


Устанавливает предпочтения чтения для коллекции

  • « MongoCollection::save
  • MongoCollection::setSlaveOkay »
  • PHP Manual
  • MongoCollection
  • Устанавливает предпочтения чтения для коллекции

MongoCollection::setReadPreference

(PECL mongo >=1.3.0)

MongoCollection::setReadPreference — Устанавливает предпочтения чтения для коллекции

Описание

public MongoCollection::setReadPreference ( string $read_preference [, array $tags ] ) : bool

Список параметров

read_preference

Режимы предпочтения чтения: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED и MongoClient::RP_NEAREST.

tags

Пустой массив, либо содержащий наборы тегов, где каждый такой набор является массивом из критериев, используемых в соответствии с тегами членов набора реплик.

Возвращаемые значения

Возвращает TRUE в случае успеха, иначе - FALSE.

Ошибки

Генерирует ошибку уровня E_WARNING, в случае неверных параметров, либо если один или более наборов тегов были переданы с режимом чтения MongoClient::RP_PRIMARY.

Примеры

Пример #1 Пример синтаксиса массива набора тегов MongoCollection::setReadPreference()

<?php

$m = new MongoClient();
$c = $m->test->users;

// Предпочитаем ближайший сервер в "восточном" центре обработки данных,
// используемый для отчетности, но используем сервер в "западном" центре обработки данных.
$c->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));
?>

Смотрите также

  • Документация по предпочтениям чтения.
  • MongoCollection::getReadPreference() - Получает предпочтения чтения для коллекции


Изменяет настройки slaveOkay для коллекции

  • « MongoCollection::setReadPreference
  • MongoCollection::setWriteConcern »
  • PHP Manual
  • MongoCollection
  • Изменяет настройки slaveOkay для коллекции

MongoCollection::setSlaveOkay

(PECL mongo >=1.1.0)

MongoCollection::setSlaveOkay — Изменяет настройки slaveOkay для коллекции

Описание

public MongoCollection::setSlaveOkay ([ bool $ok = TRUE ] ) : bool

Смотрите раздел про запросы данного руководства для получения информации о распределении чтений среди вторичных серверов.

Список параметров

ok

Если чтение должно быть отправлено вторичным серверам набора реплик для всех возможных запросов, использующих экземпляр MongoCollection.

Возвращаемые значения

Возвращает предыдущее значение slaveOkay для этого экземпляра.

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED при использовании.

Смотрите также

  • Предпочтения чтения
  • MongoCollection::setReadPreference() - Устанавливает предпочтения чтения для коллекции


Устанавливает гарантии записи для этой базы данных

  • « MongoCollection::setSlaveOkay
  • MongoCollection::toIndexString »
  • PHP Manual
  • MongoCollection
  • Устанавливает гарантии записи для этой базы данных

MongoCollection::setWriteConcern

(PECL mongo >=1.5.0)

MongoCollection::setWriteConcern — Устанавливает гарантии записи для этой базы данных

Описание

public MongoCollection::setWriteConcern ( mixed $w [, int $wtimeout ] ) : bool

Список параметров

w

Контроль записи. Может быть числом означающим число серверов, требуемых для подтверждения записи, или режим в виде строки (например "majority").

wtimeout

Максимальное количество миллисекунд ожидания для сервера, чтобы удовлетворить контроль записи.

Возвращаемые значения

Возвращает TRUE в случае успеха, или FALSE в противном случае.

Ошибки

Бросает предупреждение E_WARNING в случае, если параметр w не является целым числом или строкой.

Примеры

Пример #1 Пример использования MongoDB::setWriteConcern()

<?php

$mc = new MongoClient('mongodb://rs1.example.com,rs2.example.com');
$coll = $mc->selectCollection('test', 'foo');

// Требуем, чтобы большинство серверов в наборе реплик
// подтверждали запись в течение трех секунд.
$coll->setWriteConcern('majority', 3000);
?>

Смотрите также

  • Документация по гарантиям записи.
  • MongoCollection::getWriteConcern() - Получает гарантии записи для этой коллекции


Преобразует ключи, указывающие индекс, в его идентифицирующую строку

  • « MongoCollection::setWriteConcern
  • MongoCollection::__toString »
  • PHP Manual
  • MongoCollection
  • Преобразует ключи, указывающие индекс, в его идентифицирующую строку

MongoCollection::toIndexString

(PECL mongo >=0.9.0)

MongoCollection::toIndexString — Преобразует ключи, указывающие индекс, в его идентифицирующую строку

Описание

static protected MongoCollection::toIndexString ( mixed $keys ) : string
Внимание

Этот метод устарел с версии 1.5.0.

Список параметров

keys

Поле или поля для преобразования в идентифицирующую строку

Возвращаемые значения

Возвращает строку, которая описывает индекс.

Примеры

Пример #1 Пример использования MongoCollection::toIndexString()

Этот пример показывает, как вы можете создать индексное имя из ключей. Поскольку это защищенный (статичный) метод, вам нужно сначала перегрузить его в дочернем классе.

<?php
// Создаем унаследованный класс, чтобы сделать метод "public".
class MyCollection extends MongoCollection
{
    static public function toIndexString($a)
    {
        return parent::toIndexString($a);
    }
}

echo MyCollection::toIndexString("foo"), "\n";
// Выведет: foo_1

echo MyCollection::toIndexString(array('name' => 1, 'age' => -1)), "\n";
// Выведет: name_1_age_-1
?>

Смотрите также

Основные документы MongoDB по » инлексам.

Список изменений

Версия | Описание
1.5.0 | Этот метод устарел.


Строковое представление коллекции

  • « MongoCollection::toIndexString
  • MongoCollection::update »
  • PHP Manual
  • MongoCollection
  • Строковое представление коллекции

MongoCollection::__toString

(PECL mongo >=0.9.0)

MongoCollection::__toString — Строковое представление коллекции

Описание

public MongoCollection::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает полное имя коллекции.

Примеры

Пример #1 Пример использования MongoCollection::__toString()

<?php

$m = new MongoClient();

$c1 = $m->foo->bar->baz;
echo "Работаем с коллекцией $c1.";

$c2 = $m->selectCollection('[]', '&');
echo "Работаем с коллекцией $c2.";

?>

Результатом выполнения данного примера будет что-то подобное:

Работаем с коллекцией foo.bar.baz.
Работаем с коллекцией [].&.


Обновляет записи на основе заданных критериев

  • « MongoCollection::__toString
  • MongoCollection::validate »
  • PHP Manual
  • MongoCollection
  • Обновляет записи на основе заданных критериев

MongoCollection::update

(PECL mongo >=0.9.0)

MongoCollection::update — Обновляет записи на основе заданных критериев

Описание

public MongoCollection::update ( array $criteria , array $new_object [, array $options = array() ] ) : bool|array

Список параметров

criteria

Критерии запроса документов для обновления.

new_object

Объект, используемый для обновления сопоставленных документов. Может содержать операторы обновления (для изменения определенных полей) или документ замены.

options

Массив опций для операции обновления. В настоящее время доступны следующие варианты:

  • "upsert"

    Если ни один документ не соответствует $criteria, будет добавлен новый документ.

    Если новый документ будет вставлен, а $new_object содержит атомарные модификаторы (то есть операторы $), эти операции будут применены к параметру $criteria для создания нового документа. Если $new_object не содержит атомарных модификаторов, он будет использоваться как есть для вставленного документа. Смотрите приведенные ниже примеры для получения дополнительной информации.

  • "multiple"

    Все документы, соответствующие $criteria, будут обновлены. MongoCollection::update() имеет совершенно противоположное поведение MongoCollection::remove(): он обновляет один документ по умолчанию, а не все соответствующие документы. Рекомендуется всегда указывать, хотите ли вы обновить несколько документов или один документ, поскольку база данных может изменить свое поведение по умолчанию в какой-то момент в будущем.

  • "fsync"

    Булево, по умолчанию FALSE. Если включено журналирование, то работает также как и "j". Если журналирование не включено, то операции записи блокируются пока не будут синхронизированы с файлами на жестком диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если журналирование включено, то пользователю настоятельно рекомендуется использовать опцию "j" вместо "fsync". Не используйте "fsync" и "j" одновременно,так как это может привести к ошибке.

  • "j"

    Булево, по умолчанию FALSE. Блокирует операции записи пока они не будут синхронизированы с журналом на диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если применяется эта опция и журналирование отключено, то MongoDB 2.6+ выбросит ошибку и прервет запись; старые версии сервера просто игнорируют эту опцию.

  • "socketTimeoutMS"

    Эта опция определяет время в миллисекундах для общения в socket. Если сервер не ответил за отведенное время, то будет брошено исключение MongoCursorTimeoutException, и не будет никакой возможности определить произвел ли сервер запись или нет. Значение -1 используется для постоянно отключения этой функции. Значением по умолчанию для MongoClient является 30000 (30 секунд).

  • "w"

    Смотрите Контроль записи. Значение по умолчанию для MongoClient является 1.

  • "wTimeoutMS"

    Эта опция определяет лимит времени в миллисекундах для подтверждения контроля записи. Она применима только, если "w" больше 1, так как ограничение времени относится к репликации. Если контроль записи не подтвержден за отведенное время, то будет выброшено исключение MongoCursorException. Значение 0 для постоянного отключения. Значением по умолчанию для MongoClient является 10000 (десять секунд).

Следующие параметры устарели и больше не должны использоваться:

  • "safe"

    Устаревшая опция. Используйте опцию "w" контроля записи.

  • "timeout"

    Устаревший псевдоним для "socketTimeoutMS".

  • "wtimeout"

    Устаревший псевдоним для "wTimeoutMS".

Возвращаемые значения

Возвращает массив, содержащий состояние обновления, если установлена опция "w". В противном случае возвращает TRUE.

Поля в массиве статуса описаны в документации к MongoCollection::insert().

Ошибки

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.

Список изменений

Версия | Описание
1.5.0

Добавлена опция "wTimeoutMS", которая заменяет "wtimeout". Выдает E_DEPRECATED, когда используется "wtimeout".

Добавлена опция "socketTimeoutMS", которая заменяет "timeout". Выдает E_DEPRECATED, когда используется "timeout".

Выдает E_DEPRECATED, когда используется "safe".

1.3.4 | Добавлена опция "wtimeout".
1.3.0

Добавлена опция "w".

Параметр options больше не принимает логическое значение для обозначения слияния. Вместо этого теперь необходимо указывать array('upsert' => true).

1.2.11 | Выдает E_DEPRECATED, когда options являются scalar.
1.2.0 | Добавлена опция "timeout".
1.0.11 | Отключается при ошибках "not master", если установлен "safe".
1.0.9

Добавлена возможность передавать целые числа в опцию "safe", которая ранее принимала только логические значения.

Добавлена опция "fsync".

Тип возвращаемого значения был изменен на массив, содержащий информацию об ошибке, если используется параметр "safe". В противном случае логическое значение возвращается, как и раньше.

1.0.5 | Добавлена опция "safe".
1.0.1 | Изменен параметр options с логического на массив. До версии 1.0.1 вторым параметром было необязательное логическое значение, определяющее слияние.

Примеры

Пример #1 Пример использования MongoCollection::update()

Добавление адресного поля в документ.

<?php

$c->insert(array("firstname" => "Bob", "lastname" => "Jones" ));
$newdata = array('$set' => array("address" => "1 Smith Lane"));
$c->update(array("firstname" => "Bob"), $newdata);

var_dump($c->findOne(array("firstname" => "Bob")));

?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  ["_id"]=>
  object(MongoId)#6 (0) {
  }
  ["firstname"]=>
  string(3) "Bob"
  ["lastname"]=>
  string(5) "Jones"
  ["address"]=>
  string(12) "1 Smith Lane"
}

Пример #2 Пример использования слияния MongoCollection::update()

Слияние может упростить код, так как одна строка может создать документ, если он не существует (на основе $criteria), или обновить существующий документ, если он соответствует.

В следующем примере $new_object содержит атомарный модификатор. Поскольку коллекция пуста и слияние должно вставить новый документ, он будет применять эти операции к параметру $criteria для создания документа.

<?php

$c->drop();
$c->update(
    array("uri" => "/summer_pics"),
    array('$inc' => array("page hits" => 1)),
    array("upsert" => true)
);
var_dump($c->findOne());

?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["_id"]=>
  object(MongoId)#9 (0) {
  }
  ["uri"]=>
  string(12) "/summer_pics"
  ["page hits"]=>
  int(1)
}

Если $new_object не содержит атомарных модификаторов (то есть операторов $), слияние будет использовать $new_object как есть для нового документа. Это соответствует поведению обычного обновления, когда отсутствие атомарных модификаторов приводит к перезаписи документа.

<?php

$c->drop();
$c->update(
    array("name" => "joe"),
    array("username" => "joe312", "createdAt" => new MongoDate()),
    array("upsert" => true)
);
var_dump($c->findOne());

?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["_id"]=>
  object(MongoId)#10 (0) {
  }
  ["username"]=>
  string(6) "joe312"
  ["createdAt"]=>
  object(MongoDate)#4 (0) {
  }
}

Пример #3 Пример использования множественного MongoCollection::update()

По умолчанию MongoCollection::update() обновляет только первый документ, соответствующий $criteria, которые он находит. Использование опции "multiple" может переопределить это поведение, если это необходимо.

В этом примере поле "gift" добавляется каждому человеку, у которого день рождения на следующий день.

<?php

$today = array('$gt' => new MongoDate(), '$lt' => new MongoDate(strtotime("+1 day")));
$people->update(
    array("birthday" => $today),
    array('$set' => array('gift' => $surprise)),
    array("multiple" => true)
);

?>

Смотрите также

Документация по PHP по обновлению и » основная документация MongoDB.


Проверяет коллекцию

  • « MongoCollection::update
  • MongoCursor »
  • PHP Manual
  • MongoCollection
  • Проверяет коллекцию

MongoCollection::validate

(PECL mongo >=0.9.0)

MongoCollection::validate — Проверяет коллекцию

Описание

public MongoCollection::validate ([ bool $scan_data = FALSE ] ) : array

Список параметров

scan_data

Проверяет только индексы, а не базовую коллекцию.

Возвращаемые значения

Возвращает оценку базы данных этого объекта.


Класс MongoCursor

(PECL mongo >=0.9.0)

Введение

Курсор используется для итерации результатов запроса к базе данных. Например, чтобы запросить базу данных и увидеть все результаты, вы можете сделать:

Пример #1 Пример использования MongoCursor

<?php

$cursor = $collection->find();
var_dump(iterator_to_array($cursor));

?>

Обычно курсоры не создаются с помощью конструктора MongoCursor. Вы получаете новый курсор, вызывая MongoCollection::find() (как показано выше).

Предположим, что в приведенном выше примере $collection была коллекцией 50 Гб. Мы, конечно, не хотим загружать все сразу в память, для этого нужен курсор: позволить клиенту получить доступ к коллекции по частям.

Если у нас большой набор результатов, мы можем выполнить итерацию, загружая несколько мегабайт результатов в память за раз. Например, мы могли бы сделать:

Пример #2 Итерации MongoCursor

<?php

$cursor = $collection->find();

foreach ($cursor as $doc) {
    // делаем что-нибудь с каждым документом
}

?>
Здесь мы проходим через каждый документ в коллекции, загружаем и собираем документы коллекции по мере необходимости.

Обратите внимание, это означает, что курсор не содержит результаты базы данных, он просто управляет ими. Таким образом, если вы печатаете курсор (скажем, с помощью var_dump() или print_r()), вы просто получите объект курсора, а не документы. Чтобы получить сами документы, вы можете использовать один из способов, показанных выше.

Стадии курсора

MongoCursor имеет две "жизненные стадии": до и после выполнения запроса. Когда курсор создан, он еще не связался с базой данных, поэтому он находится в состоянии перед выполнением запроса. В этом состоянии клиент может дополнительно указать, что он хочет сделать запросом, включая добавление ограничений, пропусков, сортировок и более сложных параметров.

Когда клиент пытается получить результат (вызывая MongoCursor::next(), прямо или косвенно), курсор перемещается в стадию после выполнения запроса. На данный момент запрос был выполнен базой данных и больше не может быть изменен.

Пример #3 Добавление параметров в MongoCursor

<?php

$cursor = $collection->find()->limit(10);

// База данных еще не опрошена, поэтому можно добавить дополнительные параметры поиска
$cursor = $cursor->sort(array("a" => 1));

var_dump($cursor->getNext());
// теперь база данных была опрошена и больше опций не может быть добавлено

// так что это вызовет исключение:
$cursor->skip(4);
?>

Обзор классов

MongoCursor implements MongoCursorInterface , Iterator {
/* Статичные поля */
static boolean $slaveOkay = FALSE ;
static integer $timeout = 30000 ;
/* Методы */
public addOption ( string $key , mixed $value ) : MongoCursor
public awaitData ([ bool $wait = TRUE ] ) : MongoCursor
public batchSize ( int $batchSize ) : MongoCursor
public __construct ( MongoClient $connection , string $ns [, array $query = array() [, array $fields = array() ]] )
public count ([ bool $foundOnly = FALSE ] ) : int
public current ( void ) : array
public dead ( void ) : bool
protected doQuery ( void ) : void
public explain ( void ) : array
public fields ( array $f ) : MongoCursor
public getNext ( void ) : array
public getReadPreference ( void ) : array
public hasNext ( void ) : bool
public hint ( mixed $index ) : MongoCursor
public immortal ([ bool $liveForever = TRUE ] ) : MongoCursor
public info ( void ) : array
public key ( void ) : string|int
public limit ( int $num ) : MongoCursor
public maxTimeMS ( int $ms ) : MongoCursor
public next ( void ) : array
public partial ([ bool $okay = TRUE ] ) : MongoCursor
public reset ( void ) : void
public rewind ( void ) : void
public setFlag ( int $flag [, bool $set = TRUE ] ) : MongoCursor
public setReadPreference ( string $read_preference [, array $tags ] ) : MongoCursor
public skip ( int $num ) : MongoCursor
public slaveOkay ([ bool $okay = TRUE ] ) : MongoCursor
public snapshot ( void ) : MongoCursor
public sort ( array $fields ) : MongoCursor
public tailable ([ bool $tail = TRUE ] ) : MongoCursor
public timeout ( int $ms ) : MongoCursor
public valid ( void ) : bool
}

Статические переменные

slaveOkay

Установленный в запросе флаг "slaveOkay", позволяет выполнять чтение на вторичном сервере (вторичные по умолчанию предназначены только для резервного копирования и не запрашиваются). Может быть переопределен с помощью MongoCursor::slaveOkay().

Эта функциональность устарела. Пожалуйста, используйте вместо этого Предпочтения чтения.

timeout

Установите время ожидания в миллисекундах для ответов базы данных. Используйте -1, чтобы ждать вечно. Может быть переопределено с помощью MongoCursor::timeout(). Не приводит к тому, что сервер MongoDB отменяет операцию; только к указанию драйверу прекратить ждать ответа и выдать исключение MongoCursorTimeoutException по истечении заданного времени.

Смотрите также

Для получения дополнительной информации о курсорах в MongoDB смотрите » документацию.

Содержание

  • MongoCursor::addOption — Добавляет пару ключ/значение верхнего уровня в запрос
  • MongoCursor::awaitData — Устанавливает, будет ли этот курсор некоторое время ждать, пока настраиваемый курсор вернет больше данных
  • MongoCursor::batchSize — Ограничивает количество элементов, возвращаемых в одном пакете
  • MongoCursor::__construct — Создает новый курсор
  • MongoCursor::count — Подсчитывает количество результатов для запроса
  • MongoCursor::current — Возвращает текущий элемент
  • MongoCursor::dead — Проверяет, есть ли результаты, которые еще не были отправлены из базы данных
  • MongoCursor::doQuery — Выполняет запрос
  • MongoCursor::explain — Возвращает объяснение запроса, часто полезное для оптимизации и отладки
  • MongoCursor::fields — Устанавливает поля для запроса
  • MongoCursor::getNext — Перемещает курсор к следующему результату и возвращает этот результат
  • MongoCursor::getReadPreference — Получает предпочтения чтения для запроса
  • MongoCursor::hasNext — Проверяет, есть ли еще элементы в этом курсоре
  • MongoCursor::hint — Дает базе данных подсказку о запросе
  • MongoCursor::immortal — Устанавливает, будет ли курсор отключен
  • MongoCursor::info — Получает информацию о создании и итерации курсора
  • MongoCursor::key — Возвращает _id текущего результата или его индекс в наборе результатов
  • MongoCursor::limit — Ограничивает количество возвращаемых результатов
  • MongoCursor::maxTimeMS — Устанавливает время ожидания на стороне сервера для этого запроса
  • MongoCursor::next — Перемещает курсор к следующему результату и возвращает этот результат
  • MongoCursor::partial — Если этот запрос должен получить частичные результаты от mongos, если шард недоступен
  • MongoCursor::reset — Очищает курсор
  • MongoCursor::rewind — Возвращает курсор в начало набора результатов
  • MongoCursor::setFlag — Устанавливает произвольные флаги, если нет метода, доступного конкретному флагу
  • MongoCursor::setReadPreference — Устанавливает предпочтения чтения для запроса
  • MongoCursor::skip — Пропускает ряд результатов
  • MongoCursor::slaveOkay — Устанавливает, может ли этот запрос быть выполнен на вторичном сервере [устарел]
  • MongoCursor::snapshot — Использует режим снимка для запроса
  • MongoCursor::sort — Сортирует результаты по заданным полям
  • MongoCursor::tailable — Устанавливает, останется ли этот курсор открытым после извлечения последних результатов
  • MongoCursor::timeout — Устанавливает время ожидания на стороне клиента для запроса
  • MongoCursor::valid — Проверяет, читает ли курсор правильный результат


Добавляет пару ключ/значение верхнего уровня в запрос

  • « MongoCursor
  • MongoCursor::awaitData »
  • PHP Manual
  • MongoCursor
  • Добавляет пару ключ/значение верхнего уровня в запрос

MongoCursor::addOption

(PECL mongo >=1.0.4)

MongoCursor::addOption — Добавляет пару ключ/значение верхнего уровня в запрос

Описание

public MongoCursor::addOption ( string $key , mixed $value ) : MongoCursor

Это расширенная функция, и ее нельзя использовать, если вы не знаете, что делаете.

Запрос может быть дополнительно вложен в поле "query", если заданы другие параметры, такие как сортировка или подсказка. Например, добавление сортировки приведет к тому, что запрос становится подполем более крупного объекта запроса, например:

<?php

$query = array("query" => $query, "orderby" => $sort);

?>

Этот метод предназначен для добавления поля верхнего уровня в запрос. Это делает запрос подобъектом (если это еще не сделано) и добавляет пару ключ/значение по вашему выбору на верхний уровень.

Внимание

Его нельзя использовать для добавления дополнительных критериев к запросу на лету. Например, это не будет работать:

<?php

// НЕ ПРАВИЛЬНО
$cursor = $users->find()->addOption("name", "joe")->addOption("age", 20);

?>
Это не запрашивает пользователя с именем "joe" в возрасте 20 лет.

Список параметров

key

Имя поля для добавления.

value

Значение для добавления.

Возвращаемые значения

Возвращает курсор.

Ошибки

Выдает исключение MongoCursorException, если этот курсор начал итерацию.

Примеры

Пример #1 Пример использования MongoCursor::addOption() для добавления комментария

MongoDB поддерживает специальные опции для отправки на сервер. Оболочка использует опцию _addSpecial для отправки $comment на сервер. Этот комментарий будет отображаться в журнале профилирования (например, для медленных запросов). В драйвере PHP вы используете метод MongoCursor::addOption().

<?php
$m = new MongoClient;
$c = $m->demo->demo;
$cursor = $c->find();
$cursor->addOption('$comment', "Этот комментарий будет отображаться в журнале профилирования");

foreach ($cursor as $document) { /* пусто */ }
?>

Результатом выполнения данного примера будет что-то подобное:

{
    "op" : "query",
    "ns" : "demo.demo",
    "query" : {
        "$query" : {

        },
        "$comment" : "Этот комментарий будет отображаться в журнале профилирования"
    },
    "cursorid" : 168463566447,
    "ntoreturn" : 0,
    "ntoskip" : 0,
    "nscanned" : 101,
    "nscannedObjects" : 101,
    "keyUpdates" : 0,
    "numYield" : 0,
...

Пример #2 Пример использования MongoCursor::addOption()

Использование MongoCursor::skip() для пропуска миллионов результатов может стать медленным. Одним из способов решения этой проблемы является использование параметров $min или $max для запроса. Это может быть удобно, но для них требуется указатель именно на искомые поля. Это пример того, как использовать $min в качестве альтернативы MongoCursor::skip().

<?php

// убедитесь, что у нас есть индекс
$c->ensureIndex(array("ts" => 1));

// вам, возможно, придется изменить это, чтобы запускаться
// в разумные сроки на медленных машинах (на хорошей машине это может занять около 30 секунд)
for ($i = 0; $i < 30000000; $i++) {
    $c->insert(array("ts" => new MongoDate(), "i" => $i));
}

$now = strtotime("now");

// найти документы, вставленные за последние 2 секунды
$cursor = $c->find()->addOption('$min', array("ts" => $now-2));

?>


Устанавливает, будет ли этот курсор некоторое время ждать, пока настраиваемый курсор вернет больше данных

  • « MongoCursor::addOption
  • MongoCursor::batchSize »
  • PHP Manual
  • MongoCursor
  • Устанавливает, будет ли этот курсор некоторое время ждать, пока настраиваемый курсор вернет больше данных

MongoCursor::awaitData

(PECL mongo >=1.2.11)

MongoCursor::awaitData — Устанавливает, будет ли этот курсор некоторое время ждать, пока настраиваемый курсор вернет больше данных

Описание

public MongoCursor::awaitData ([ bool $wait = TRUE ] ) : MongoCursor

Метод должен использоваться с настраиваемыми курсорами. Если мы находимся в конце, блокирум на некоторое время и не возвращаем никаких данных. После периода ожидания мы возвращаем, как обычно.

Список параметров

wait

Если курсор должен ждать, пока больше данных не станет доступно.

Возвращаемые значения

Возвращает курсор.

Ошибки

Выдает исключение MongoCursorException, если этот курсор начал итерацию.

Примеры

Пример #1 Пример использования MongoCursor::awaitData()

В этом примере мы подключаем "oplog" и вместо сна во время каждой итерации устанавливаем опцию MongoCursor::awaitData(). MongoCursor::hasNext() теперь будет блокироваться, пока не станет доступно больше данных.

<?php
$m = new MongoClient( 'mongodb://localhost:13000', array( 'replSet' => 'seta' ) );
$c = $m->local->selectCollection( 'oplog.rs' );
$cursor = $c->find( array( 'ns' => 'demo.article', 'op' => 'i' ) );
$cursor->tailable( true );
$cursor->awaitData( true );

while (true) {
    if (!$cursor->hasNext()) {
        // мы прочитали все результаты, выходим
        if ($cursor->dead()) {
            break;
        }
    } else {
        var_dump( $cursor->getNext() );
    }
}
?>

Смотрите также

Документация MongoDB по » настраиваемым курсорам.

  • MongoCursor::tailable() - Устанавливает, останется ли этот курсор открытым после извлечения последних результатов


Ограничивает количество элементов, возвращаемых в одном пакете

  • « MongoCursor::awaitData
  • MongoCursor::__construct »
  • PHP Manual
  • MongoCursor
  • Ограничивает количество элементов, возвращаемых в одном пакете

MongoCursor::batchSize

(PECL mongo >=1.0.11)

MongoCursor::batchSize — Ограничивает количество элементов, возвращаемых в одном пакете

Описание

public MongoCursor::batchSize ( int $batchSize ) : MongoCursor

Курсор обычно выбирает пакет объектов результатов и сохраняет их локально. Этот метод устанавливает значение batchSize для настройки количества документов, полученных с сервера за один раз. Однако он никогда не вернет больше документов, чем умещается в максимальном размере пакета (обычно 4 МБ).

Список параметров

batchSize

Количество результатов, возвращаемых на пакет. Каждая партия требует отправки на сервер в оба конца.

Если batchSize равен 2 или более, он представляет размер каждой партии извлеченных объектов. Его можно настроить для оптимизации производительности и ограничения передачи данных.

Если batchSize равен 1 или отрицательному значению, он ограничит количество возвращаемых документов абсолютным значением batchSize, и курсор будет закрыт. Например, если batchSize равен -10, сервер вернет максимум 10 документов и столько, сколько может уместиться в 4 МБ, затем закроет курсор.

Внимание

Значение batchSize, равное 1, является специальным и означает то же самое, что и -1, т.е. значение 1 делает курсор способным вернуть только один документ.

Обратите внимание, что эта функция отличается от MongoCursor::limit() тем, что документы должны соответствовать максимальному размеру, и устраняет необходимость отправлять запрос на закрытие курсора на стороне сервера. Размер пакета может быть изменен даже после итерации курсора, и в этом случае настройка будет применяться при следующем получении пакета.

Это не может переопределить ограничение MongoDB на объем данных, которые он возвращает клиенту (т.е. если вы установите размер пакета в 1 000 000 000, MongoDB все равно будет возвращать только 4-16 МБ результатов на пакет).

Чтобы обеспечить согласованное поведение, правила MongoCursor::batchSize() и MongoCursor::limit() ведут себя немного сложнее, но работают "как положено". Правила таковы: жесткие ограничения переопределяют мягкие ограничения, причем MongoCursor::limit() отдается предпочтение над MongoCursor::batchSize(). После этого, тот лимит, который установлен ниже, чем другой, будет приоритетнее. Смотрите ниже раздел с примерами.

Возвращаемые значения

Возвращает курсор.

Примеры

Пример #1 Пример использования MongoCursor::batchSize() в комбинации с MongoCursor::limit()

<?php

// один пакет, максимум 10 штук. -10 заставит сервер
// вернуть 10 элементов, а затем убрать курсор.
$cursor->limit(20)->batchSize(-10);

// первая партия: не более 10 товаров
$cursor->limit(10);

// первая партия: не более 10 товаров
$cursor->limit(10)->batchSize(20);

// результаты извлекаются партиями по 10 штук в каждой,
// максимум возвращается 20 товаров (это означает две партии по 10 штук).
$cursor->limit(20)->batchSize(10);

// результаты извлекаются партиями по 7 штук в каждой,
// максимум возвращается 30 элементов (это означает, что драйвер запрашивает
// 4 партии по 7 и одну партию из 2).
$cursor->limit(30)->batchSize(7)
?>

Смотрите также

Документация MongoDB по » batchSize.

  • MongoCursor::limit() - Ограничивает количество возвращаемых результатов
  • MongoCursorInterface::batchSize() - Ограничивает количество элементов, возвращаемых в одном пакете

Список изменений

Версия | Описание
1.4.5 | До версии 1.4.5 этот метод генерировал исключение MongoCursorException, если курсор уже начал итерацию.


Создает новый курсор

  • « MongoCursor::batchSize
  • MongoCursor::count »
  • PHP Manual
  • MongoCursor
  • Создает новый курсор

MongoCursor::__construct

(PECL mongo >=0.9.0)

MongoCursor::__construct — Создает новый курсор

Описание

public MongoCursor::__construct ( MongoClient $connection , string $ns [, array $query = array() [, array $fields = array() ]] )

Список параметров

connection

Подключение к базе данных.

ns

Полное имя базы данных и коллекции.

query

Запрос к базе данных.

fields

Поля для возврата.

Возвращаемые значения

Возвращает новый курсор.


Подсчитывает количество результатов для запроса

  • « MongoCursor::__construct
  • MongoCursor::current »
  • PHP Manual
  • MongoCursor
  • Подсчитывает количество результатов для запроса

MongoCursor::count

(PECL mongo >=0.9.2)

MongoCursor::count — Подсчитывает количество результатов для запроса

Описание

public MongoCursor::count ([ bool $foundOnly = FALSE ] ) : int

Этот метод не влияет на состояние курсора: если вы еще не запросили, вы все равно можете применить ограничения, пропуски и т.д. Если вы начали перебирать результаты, он не будет перемещать текущую позицию курсора. Если вы исчерпали курсор, он не будет сброшен.

Список параметров

foundOnly

Отправляет ограничение курсора и пропускает информацию в функцию подсчета, если необходимо.

Возвращаемые значения

Количество документов, возвращаемых запросом этого курсора.

Примеры

Пример #1 Пример использования MongoCursor::count()

<?php

$collection->insert(array('x'=>1));
$collection->insert(array('x'=>2));
$collection->insert(array('x'=>3));

$cursor = $collection->find();

var_dump($cursor->count());
var_dump($cursor->count(true));

$cursor->limit(2);

var_dump($cursor->count());
var_dump($cursor->count(true));

?>

Результатом выполнения данного примера будет что-то подобное:

int(3)
int(3)
int(3)
int(2)

Ошибки

Выдает исключение MongoConnectionException, если не может подключиться к базе данных.


Возвращает текущий элемент

  • « MongoCursor::count
  • MongoCursor::dead »
  • PHP Manual
  • MongoCursor
  • Возвращает текущий элемент

MongoCursor::current

(PECL mongo >=0.9.0)

MongoCursor::current — Возвращает текущий элемент

Описание

public MongoCursor::current ( void ) : array

Возвращает NULL до вызова MongoCursor::next().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий результирующий документ в виде ассоциативного массива. NULL будет возвращен, если нет результата.

Смотрите также

  • Iterator::current() - Возврат текущего элемента


Проверяет, есть ли результаты, которые еще не были отправлены из базы данных

  • « MongoCursor::current
  • MongoCursor::doQuery »
  • PHP Manual
  • MongoCursor
  • Проверяет, есть ли результаты, которые еще не были отправлены из базы данных

MongoCursor::dead

(PECL mongo >=0.9.6)

MongoCursor::dead — Проверяет, есть ли результаты, которые еще не были отправлены из базы данных

Описание

public MongoCursor::dead ( void ) : bool

База данных отправляет ответы в пакетах документов, до 4 МБ документов на ответ. Этот метод проверяет, есть ли в базе данных еще пакеты или набор результатов исчерпан.

"Мертвый" курсор не означает, что MongoCursor::hasNext() вернет FALSE, это означает только, что база данных завершила отправку результатов клиенту. Клиент должен продолжать перебирать результаты, пока MongoCursor::hasNext() не станет FALSE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если есть еще результаты, которые еще не были отправлены клиенту, и FALSE в противном случае.

Смотрите также

  • MongoCursorInterface::dead() - Проверяет, есть ли результаты, которые еще не были отправлены из базы данных


Выполняет запрос

  • « MongoCursor::dead
  • MongoCursor::explain »
  • PHP Manual
  • MongoCursor
  • Выполняет запрос

MongoCursor::doQuery

(PECL mongo >=0.9.0 <1.6.0)

MongoCursor::doQuery — Выполняет запрос

Описание

protected MongoCursor::doQuery ( void ) : void
Внимание

Пожалуйста, не используйте это.

Эта функция фактически запрашивает базу данных. Все запросы и команды проходят через эту функцию. Таким образом, эта функция может быть переопределена для обеспечения настраиваемой обработки запросов.

Это позволяет сериализовать ваш запрос, отправить его в базу данных, получить ответ и десериализовать его. Таким образом, если вы планируете переопределить это, ваш код, вероятно, должен обратиться к оригиналу, чтобы использовать существующую функциональность (смотрите пример использования ниже).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

NULL.

Ошибки

Выдает исключение MongoConnectionException, если не может подключиться к базе данных.

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED при использовании.

Примеры

Пример #1 Пример использования MongoCursor::doQuery()

Вы можете переопределить эту функцию, чтобы попытаться выполнить запрос на вторичном сервере, и, если это не удастся, повторить попытку на основном.

<?php

class MyCursor extends MongoCursor {

    protected function doQuery() {

        $this->slaveOkay();

        try {
            MongoCursor::doQuery();
        }
        catch(MongoCursorException $e) {
            $this->slaveOkay(false);
            MongoCursor::doQuery();
        }
    }
}

?>


Возвращает объяснение запроса, часто полезное для оптимизации и отладки

  • « MongoCursor::doQuery
  • MongoCursor::fields »
  • PHP Manual
  • MongoCursor
  • Возвращает объяснение запроса, часто полезное для оптимизации и отладки

MongoCursor::explain

(PECL mongo >=0.9.2)

MongoCursor::explain — Возвращает объяснение запроса, часто полезное для оптимизации и отладки

Описание

public MongoCursor::explain ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объяснение запроса.

Примеры

Пример #1 Пример использования MongoCursor::explain()

<?php

$cursor = $collection->find(array("x"=>1), array("y"));
$cursor->sort(array("z" => 1))->limit(4)->skip(5);

var_dump($cursor->explain());

?>

Результатом выполнения данного примера будет что-то подобное:

array(8) {
  ["cursor"]=>
  string(15) "BtreeCursor x_1"
  ["startKey"]=>
  array(1) {
    ["x"]=>
    int(1)
  }
  ["endKey"]=>
  array(1) {
    ["x"]=>
    int(1)
  }
  ["nscanned"]=>
  float(4)
  ["n"]=>
  int(4)
  ["scanAndOrder"]=>
  int(1)
  ["millis"]=>
  int(3)
  ["allPlans"]=>
  array(2) {
    [0]=>
    array(3) {
      ["cursor"]=>
      string(15) "BtreeCursor x_1"
      ["startKey"]=>
      array(1) {
        ["x"]=>
        int(1)
      }
      ["endKey"]=>
      array(1) {
        ["x"]=>
        int(1)
      }
    }
    [1]=>
    array(3) {
      ["cursor"]=>
      string(11) "BasicCursor"
      ["startKey"]=>
      array(0) {
      }
      ["endKey"]=>
      array(0) {
      }
    }
  }
}

Ошибки

Выдает исключение MongoConnectionException, если не может подключиться к базе данных.

Смотрите также

Документация MongoDB по » explain.


Устанавливает поля для запроса

  • « MongoCursor::explain
  • MongoCursor::getNext »
  • PHP Manual
  • MongoCursor
  • Устанавливает поля для запроса

MongoCursor::fields

(PECL mongo >=1.0.6)

MongoCursor::fields — Устанавливает поля для запроса

Описание

public MongoCursor::fields ( array $f ) : MongoCursor

Поля указываются как "fieldname" : bool. TRUE указывает, что поле должно быть возвращено, FALSE указывает, что оно не должно быть возвращено. Вы также можете использовать 1 и 0 вместо TRUE и FALSE.

Таким образом, чтобы вернуть только поле "summary", можно выполнить:

<?php

$cursor->fields(array("summary" => true));

?>

Чтобы вернуть все поля, кроме "hidden":

<?php

$cursor->fields(array("hidden" => false));

?>

Список параметров

f

Поля для возврата (или не возврата).

Возвращаемые значения

Возвращает курсор.

Ошибки

Выдает исключение MongoCursorException, если этот курсор начал итерацию или задан скалярный аргумент.


Перемещает курсор к следующему результату и возвращает этот результат

  • « MongoCursor::fields
  • MongoCursor::getReadPreference »
  • PHP Manual
  • MongoCursor
  • Перемещает курсор к следующему результату и возвращает этот результат

MongoCursor::getNext

(PECL mongo >=0.9.0)

MongoCursor::getNext — Перемещает курсор к следующему результату и возвращает этот результат

Описание

public MongoCursor::getNext ( void ) : array

Замечание:

MongoCursor::getNext() является псевдонимом MongoCursor::next().


Получает предпочтения чтения для запроса

  • « MongoCursor::getNext
  • MongoCursor::hasNext »
  • PHP Manual
  • MongoCursor
  • Получает предпочтения чтения для запроса

MongoCursor::getReadPreference

(PECL mongo >=1.3.3)

MongoCursor::getReadPreference — Получает предпочтения чтения для запроса

Описание

public MongoCursor::getReadPreference ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Данная функция возвращает массив, описывающий режимы предпочтения чтения. Массив содержит следующие значения: type для строкового значения режима предпочтения чтения (соответствующий константам MongoClient) и tagsets, содержащее список всех критерий наборов тегов. Если наборы тегов не были указаны, то tagsets в массиве не будет.

Примеры

Пример #1 Пример возвращаемого значения MongoCursor::getReadPreference()

<?php

$m = new MongoClient();
$cursor = $m->test->users->find();
$cursor->setReadPreference(MongoClient::RP_SECONDARY, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
    array(),
));
var_dump($cursor->getReadPreference());
?>

Результат выполнения данного примера:

array(2) {
  ["type"]=>
  string(9) "secondary"
  ["tagsets"]=>
  array(3) {
    [0]=>
    array(2) {
      ["dc"]=>
      string(4) "east"
      ["use"]=>
      string(9) "reporting"
    }
    [1]=>
    array(1) {
      ["dc"]=>
      string(7) "west"
    }
    [2]=>
    array(0) {
    }
  }
}

Смотрите также

  • Документация по предпочтениям чтения.
  • MongoCursor::setReadPreference() - Устанавливает предпочтения чтения для запроса
  • MongoCursorInterface::getReadPreference() - Получает предпочтения чтения для этого запроса


Проверяет, есть ли еще элементы в этом курсоре

  • « MongoCursor::getReadPreference
  • MongoCursor::hint »
  • PHP Manual
  • MongoCursor
  • Проверяет, есть ли еще элементы в этом курсоре

MongoCursor::hasNext

(PECL mongo >=0.9.0)

MongoCursor::hasNext — Проверяет, есть ли еще элементы в этом курсоре

Описание

public MongoCursor::hasNext ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает, если есть другой элемент.

Ошибки

Выдает исключение MongoConnectionException, если не может подключиться к базе данных, и исключение MongoCursorTimeoutException, если превышено время ожидания.


Дает базе данных подсказку о запросе

  • « MongoCursor::hasNext
  • MongoCursor::immortal »
  • PHP Manual
  • MongoCursor
  • Дает базе данных подсказку о запросе

MongoCursor::hint

(PECL mongo >=0.9.0)

MongoCursor::hint — Дает базе данных подсказку о запросе

Описание

public MongoCursor::hint ( mixed $index ) : MongoCursor

Список параметров

index

Индекс для использования в запросе. Если передана строка, она должна соответствовать имени индекса. Если передан массив или объект, он должен соответствовать спецификации, используемой для создания индекса (то есть первого аргумента MongoCollection::ensureIndex()).

Возвращаемые значения

Возвращает курсор.

Ошибки

Выдает исключение MongoCursorException, если этот курсор начал итерацию.

Список изменений

Версия | Описание
1.4.0 | Аргумент index теперь поддерживает имена индексов, как строковые значения. В версиях до 1.4.0 принимались только значения массива или объекта.


Устанавливает, будет ли курсор отключен

  • « MongoCursor::hint
  • MongoCursor::info »
  • PHP Manual
  • MongoCursor
  • Устанавливает, будет ли курсор отключен

MongoCursor::immortal

(PECL mongo >=1.0.1)

MongoCursor::immortal — Устанавливает, будет ли курсор отключен

Описание

public MongoCursor::immortal ([ bool $liveForever = TRUE ] ) : MongoCursor

После некоторого времени простоя на сервере курсоры по умолчанию "умирают". Как правило, это то, что вам нужно. База данных очищает курсор после того, как все его результаты отправлены клиенту, но если клиент не запрашивает все результаты, курсор будет там затихать, занимая ресурсы. Таким образом, через несколько минут курсор "отключается", и база данных предполагает, что клиент получил все, что ему нужно, и очищает ресурсы курсора.

Если по какой-то причине вам нужен курсор, чтобы долго зависать, вы можете предотвратить очистку базы данных с помощью этого метода. Однако, если вы сделаете курсор вечным, вам нужно будет перебирать все его результаты (или, по крайней мере, до тех пор, пока MongoCursor::dead() не вернет TRUE), или курсор будет зависать в базе данных вечно, занимая ресурсы.

Список параметров

liveForever

Если курсор должен быть вечным.

Возвращаемые значения

Возвращает курсор.

Ошибки

Выдает исключение MongoCursorException, если этот курсор начал итерацию.


Получает информацию о создании и итерации курсора

  • « MongoCursor::immortal
  • MongoCursor::key »
  • PHP Manual
  • MongoCursor
  • Получает информацию о создании и итерации курсора

MongoCursor::info

(PECL mongo >=1.0.5)

MongoCursor::info — Получает информацию о создании и итерации курсора

Описание

public MongoCursor::info ( void ) : array

Можно вызвать до или после того, как курсор начнет итерацию.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает пространство имен, размер пакета, лимит, пропуск, флаги, запрос и проецируемые поля для этого курсора. Если курсор начал итерацию, будет включена дополнительная информация об итерации и соединении.

Список изменений

Версия | Описание
1.1.0 | Добавлен ряд других полей, включая id (идентификатор курсора), at (счетчик драйвера для которого документ является текущим), numReturned (число, возвращаемое сервером в текущем пакете) и server (на какой сервер был отправлен запрос) - полезно в сочетании с Предпочтения чтения.
1.0.10 | Добавлено поле started_iterating, логическое значение, указывающее, является ли курсор пре- или пост-запросом.

Примеры

Пример #1 Пример использования MongoCursor::info()

<?php
$m = new MongoClient();

$cursor = $m->test->foo->find(array("x" => 4), array("y" => 0));

echo "Перед началом итерации:\n";
var_dump($cursor->info());

echo "\nПосле начала итерации:\n";
$cursor->rewind();
var_dump($cursor->info());

?>

Результатом выполнения данного примера будет что-то подобное:

Перед началом итерации:
array(8) {
  ["ns"]=>
  string(8) "test.foo"
  ["limit"]=>
  int(0)
  ["batchSize"]=>
  int(0)
  ["skip"]=>
  int(0)
  ["flags"]=>
  int(0)
  ["query"]=>
  array(1) {
    ["x"]=>
    int(4)
  }
  ["fields"]=>
  array(1) {
    ["y"]=>
    int(0)
  }
  ["started_iterating"]=>
  bool(false)
}

После начала итерации:
array(15) {
  ["ns"]=>
  string(8) "test.foo"
  ["limit"]=>
  int(0)
  ["batchSize"]=>
  int(0)
  ["skip"]=>
  int(0)
  ["flags"]=>
  int(0)
  ["query"]=>
  array(1) {
    ["x"]=>
    int(4)
  }
  ["fields"]=>
  array(1) {
    ["y"]=>
    int(0)
  }
  ["started_iterating"]=>
  bool(true)
  ["id"]=>
  int(0)
  ["at"]=>
  int(0)
  ["numReturned"]=>
  int(1)
  ["server"]=>
  string(25) "localhost:27017;-;.;26450"
  ["host"]=>
  string(9) "localhost"
  ["port"]=>
  int(27017)
  ["connection_type_desc"]=>
  string(10) "STANDALONE"
}

Смотрите также

  • MongoCursorInterface::info() - Получает информацию о создании и итерации курсора


Возвращает _id текущего результата или его индекс в наборе результатов

  • « MongoCursor::info
  • MongoCursor::limit »
  • PHP Manual
  • MongoCursor
  • Возвращает _id текущего результата или его индекс в наборе результатов

MongoCursor::key

(PECL mongo >=0.9.0)

MongoCursor::key — Возвращает _id текущего результата или его индекс в наборе результатов

Описание

public MongoCursor::key ( void ) : string|int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий результат _id в виде строки. Если у результата нет _id, его числовой индекс в наборе результатов будет возвращен как целое число.

Смотрите также

  • Iterator::key() - Возврат ключа текущего элемента


Ограничивает количество возвращаемых результатов

  • « MongoCursor::key
  • MongoCursor::maxTimeMS »
  • PHP Manual
  • MongoCursor
  • Ограничивает количество возвращаемых результатов

MongoCursor::limit

(PECL mongo >=0.9.0)

MongoCursor::limit — Ограничивает количество возвращаемых результатов

Описание

public MongoCursor::limit ( int $num ) : MongoCursor

Список параметров

num

Количество результатов для возврата.

Возвращаемые значения

Возвращает курсор.

Ошибки

Выдает исключение MongoCursorException, если курсор начал итерацию.

Смотрите также

  • Документация MongoDB по » ограничениям.
  • MongoCursor::batchSize() - Ограничивает количество элементов, возвращаемых в одном пакете
  • MongoCursor::skip() - Пропускает ряд результатов


Устанавливает время ожидания на стороне сервера для этого запроса

  • « MongoCursor::limit
  • MongoCursor::next »
  • PHP Manual
  • MongoCursor
  • Устанавливает время ожидания на стороне сервера для этого запроса

MongoCursor::maxTimeMS

(PECL mongo >=1.5.0)

MongoCursor::maxTimeMS — Устанавливает время ожидания на стороне сервера для этого запроса

Описание

public MongoCursor::maxTimeMS ( int $ms ) : MongoCursor

Задает совокупный лимит времени в миллисекундах, который должен быть разрешен сервером для обработки операций над курсором.

Список параметров

ms

Задает совокупный лимит времени в миллисекундах, который должен быть разрешен сервером для обработки операций над курсором.

Возвращаемые значения

Возвращает курсор.

Ошибки

Выдает исключение MongoCursorException, если этот курсор начал итерацию.

Вызывает методы, которые выбирают результаты, чтобы вызвать исключение MongoExecutionTimeoutException, если запрос занимает больше времени, чем указанное количество миллисекунд во время обработки.

Примеры

Пример #1 Пример использования MongoCursor::maxTimeMS()

В следующем примере сервер прервет запрос, если для возврата курсору курсору потребуется более двух секунд.

<?php

$cursor = $collection->find();
$cursor->maxTimeMS(2000);

try {
    $results = iterator_to_array($cursor);
} catch (MongoExecutionTimeoutException $e) {
    echo "запрос занял слишком много времени!";
}

?>

Примечания

Внимание

В отличие от MongoCursor::timeout(), который задает время ожидания на стороне клиента, MongoCursor::maxTimeMS() может использоваться для того, чтобы сервер MongoDB прерывал длительные запросы. Это время ожидания накапливается за время жизни курсора (то есть каждый пакет будет вносить свой вклад в этот срок). Во времи ожидания учитывается только время обработки; простой не считается.


Перемещает курсор к следующему результату и возвращает этот результат

  • « MongoCursor::maxTimeMS
  • MongoCursor::partial »
  • PHP Manual
  • MongoCursor
  • Перемещает курсор к следующему результату и возвращает этот результат

MongoCursor::next

(PECL mongo >=0.9.0)

MongoCursor::next — Перемещает курсор к следующему результату и возвращает этот результат

Описание

public MongoCursor::next ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает следующий документ.

Ошибки

Выдает исключение MongoConnectionException, если не может подключиться к базе данных, и исключение MongoCursorTimeoutException, если превышено время ожидания.

Смотрите также

  • Iterator::next() - Переход к следующему элементу


Если этот запрос должен получить частичные результаты от mongos, если шард недоступен

  • « MongoCursor::next
  • MongoCursor::reset »
  • PHP Manual
  • MongoCursor
  • Если этот запрос должен получить частичные результаты от mongos, если шард недоступен

MongoCursor::partial

(PECL mongo >=1.2.0)

MongoCursor::partial — Если этот запрос должен получить частичные результаты от mongos, если шард недоступен

Описание

public MongoCursor::partial ([ bool $okay = TRUE ] ) : MongoCursor

Эта опция позволяет mongos отправлять частичные результаты запроса, если шард недоступен. Это применимо только при запуске сегментированного кластера MongoDB и подключении к mongos.

Если шард выходит из строя и запрос должен быть отправлен этому шарду, mongos вернет результаты (если таковые имеются) от шардов, с которыми он уже связался, а затем сообщение об ошибке, что он не может достигнуть шарда (исключение MongoCursorException в PHP). Если вы хотите получить любые результаты, которые могут предоставить mongos, и не исключение, вы можете использовать этот метод. Обратите внимание, что это означает, что у вас не будет указания на то, что шард недоступен в вашем запросе.

Это не влияет на запрос, если все шарды достижимы. Этот флаг был реализован в MongoDB версии 1.7.5, поэтому будет работать только с этой версией и выше.

Список параметров

okay

Если получение частичных результатов в порядке.

Возвращаемые значения

Возвращает курсор.

Ошибки

Выдает исключение MongoCursorException, если этот курсор начал итерацию.


Очищает курсор

  • « MongoCursor::partial
  • MongoCursor::rewind »
  • PHP Manual
  • MongoCursor
  • Очищает курсор

MongoCursor::reset

(PECL mongo >=0.9.0)

MongoCursor::reset — Очищает курсор

Описание

public MongoCursor::reset ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения

NULL.


Возвращает курсор в начало набора результатов

  • « MongoCursor::reset
  • MongoCursor::setFlag »
  • PHP Manual
  • MongoCursor
  • Возвращает курсор в начало набора результатов

MongoCursor::rewind

(PECL mongo >=0.9.0)

MongoCursor::rewind — Возвращает курсор в начало набора результатов

Описание

public MongoCursor::rewind ( void ) : void

Это идентично функции:

<?php

public function rewind() {
    $this->reset();
    $this->next();
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

NULL.

Ошибки

Выдает исключение MongoConnectionException, если не может подключиться к базе данных, и исключение MongoCursorTimeoutException, если превышено время ожидания.

Смотрите также

  • Iterator::rewind() - Перемотать итератор на первый элемент


Устанавливает произвольные флаги, если нет метода, доступного конкретному флагу

  • « MongoCursor::rewind
  • MongoCursor::setReadPreference »
  • PHP Manual
  • MongoCursor
  • Устанавливает произвольные флаги, если нет метода, доступного конкретному флагу

MongoCursor::setFlag

(PECL mongo >=1.2.11)

MongoCursor::setFlag — Устанавливает произвольные флаги, если нет метода, доступного конкретному флагу

Описание

public MongoCursor::setFlag ( int $flag [, bool $set = TRUE ] ) : MongoCursor

Класс MongoCursor имеет несколько методов для установки флагов в объекте запроса. Этот метод доступен в случае, если проводной протокол MongoDB приобрел новый флаг, а драйвер не был обновлен методом для этого нового флага. Во всех остальных случаях метод должен быть использован. Смотрите раздел "Смотрите также" для доступных методов.

Список параметров

flag

Какой флаг установить. Вы не можете установить флаг 6 (EXHAUST), так как драйвер не знает, как с ними справиться. Вы получите предупреждение, если попытаетесь использовать этот флаг. Для доступных флагов, пожалуйста, обратитесь к » документации протокола проводной связи.

set

Должен ли флаг быть установлен (TRUE) или не установлен (FALSE).

Возвращаемые значения

Возвращает курсор.

Ошибки

Показывает предупреждение при попытке установить неподдерживаемый флаг.

Список изменений

Версия | Описание
1.4.0 | Добавлена поддержка флага 3 (OPLOG_REPLAY). Версии до 1.4.0 будут выдавать предупреждение о том, что флаг не поддерживается.

Примеры

Пример #1 Пример использования MongoCursor::setFlag()

<?php
$m = new MongoClient( 'mongodb://localhost:13000', array( 'replSet' => 'seta' ) );
$c = $m->local->selectCollection( 'oplog.rs' );
$cursor = $c->find( array( 'ns' => 'demo.article', 'op' => 'i' ) );
$cursor->setFlag( 1, true ); // устанавливает настраиваемый флаг
$cursor->setFlag( 5, true ); // устанавливает флаг ожидания данных
?>

Смотрите также

  • MongoCursor::tailable() - Устанавливает, останется ли этот курсор открытым после извлечения последних результатов
  • MongoCursor::immortal() - Устанавливает, будет ли курсор отключен
  • MongoCursor::awaitData() - Устанавливает, будет ли этот курсор некоторое время ждать, пока настраиваемый курсор вернет больше данных
  • MongoCursor::partial() - Если этот запрос должен получить частичные результаты от mongos, если шард недоступен
  • Документация MongoDB по » флагам запросов протокола проводной связи


Устанавливает предпочтения чтения для запроса

  • « MongoCursor::setFlag
  • MongoCursor::skip »
  • PHP Manual
  • MongoCursor
  • Устанавливает предпочтения чтения для запроса

MongoCursor::setReadPreference

(PECL mongo >=1.3.3)

MongoCursor::setReadPreference — Устанавливает предпочтения чтения для запроса

Описание

public MongoCursor::setReadPreference ( string $read_preference [, array $tags ] ) : MongoCursor

Список параметров

read_preference

Режимы предпочтения чтения: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED и MongoClient::RP_NEAREST.

tags

Пустой массив, либо содержащий наборы тегов, где каждый такой набор является массивом из критериев, используемых в соответствии с тегами членов набора реплик.

Возвращаемые значения

Возвращает курсор.

Ошибки

Генерирует ошибку уровня E_WARNING, в случае неверных параметров, либо если один или более наборов тегов были переданы с режимом чтения MongoClient::RP_PRIMARY.

Примеры

Пример #1 Пример синтаксиса MongoCursor::setReadPreference() массива набора тегов

<?php

$m = new MongoClient();
$cursor = $m->test->users->find();

// Предпочитаем ближайший сервер в "восточном" центре обработки данных,
// также используемый для отчетности, но используем сервер в "западном" центре обработки данных.
$cursor->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));
?>

Смотрите также

  • Документация по предпочтениям чтения.
  • MongoCursor::getReadPreference() - Получает предпочтения чтения для запроса
  • MongoCursorInterface::setReadPreference() - Устанавливает предпочтения чтения для этого запроса


Пропускает ряд результатов

  • « MongoCursor::setReadPreference
  • MongoCursor::slaveOkay »
  • PHP Manual
  • MongoCursor
  • Пропускает ряд результатов

MongoCursor::skip

(PECL mongo >=0.9.0)

MongoCursor::skip — Пропускает ряд результатов

Описание

public MongoCursor::skip ( int $num ) : MongoCursor

Список параметров

num

Количество результатов, чтобы пропустить.

Возвращаемые значения

Возвращает курсор.

Ошибки

Выдает исключение MongoCursorException, если курсор начал итерацию.

Смотрите также

  • MongoCursor::limit() - Ограничивает количество возвращаемых результатов


Устанавливает, может ли этот запрос быть выполнен на вторичном сервере [устарел]

  • « MongoCursor::skip
  • MongoCursor::snapshot »
  • PHP Manual
  • MongoCursor
  • Устанавливает, может ли этот запрос быть выполнен на вторичном сервере [устарел]

MongoCursor::slaveOkay

(PECL mongo >=0.9.4)

MongoCursor::slaveOkay — Устанавливает, может ли этот запрос быть выполнен на вторичном сервере [устарел]

Описание

public MongoCursor::slaveOkay ([ bool $okay = TRUE ] ) : MongoCursor
Внимание

Этот метод устарел с версии 1.5.0. Вместо этого, пожалуйста, используйте MongoCursor::setReadPreference() и Предпочтения чтения.

Использование этого вызовет чтение маршрута драйвера для вторичных серверов, если:

  • Вы используете набор реплик, и
  • Вы создали экземпляр MongoClient, используя опцию "replicaSet" => "setName", и
  • Существует рабочий вторичный сервер, который может быть достигнут драйвером.
Вы можете проверить, какой сервер использовался для этого запроса, вызвав MongoCursor::info() после выполнения запроса. Поле server покажет, на какой сервер был отправлен запрос.

Обратите внимание, что вы должны использовать эту функцию, даже если вы не используете автоматическую маршрутизацию к вторичным серверам. Если вы подключаетесь напрямую к вторичному серверу в наборе реплик, вам все равно нужно вызвать эту функцию, которая в основном сообщает базе данных, что вы знаете, что вы можете получать более старые данные, и с этим все в порядке. Если вы не выполните это, вы получите ошибку "not master" при попытке запроса.

Этот метод переопределит статичную переменную класса
MongoCursor::$slaveOkay. Также переопределит
Mongo::setSlaveOkay(),
MongoDB::setSlaveOkay() и
MongoCollection::setSlaveOkay().

Список параметров

okay

Если все в порядке, чтобы запросить вторичный сервер.

Возвращаемые значения

Возвращает курсор.

Ошибки

Выдает исключение MongoCursorException, если этот курсор начал итерацию.

Примеры

Пример #1 Пример использования MongoCursor::slaveOkay()

<?php

MongoCursor::$slaveOkay = false;

// не можем запросить вторичный сервер
$cursor = $collection->find();

// можем запросить вторичный сервер
$cursor = $collection->find()->slaveOkay();

MongoCursor::$slaveOkay = true;

// можем запросить вторичный сервер
$cursor = $collection->find();

// не можем запросить вторичный сервер
$cursor = $collection->find()->slaveOkay(false);

?>

Смотрите также

  • Предпочтения чтения
  • MongoCursor::setReadPreference() - Устанавливает предпочтения чтения для запроса
  • MongoCursor::getReadPreference() - Получает предпочтения чтения для запроса

Список изменений

Версия | Описание
1.5.0 | Метод устарел. Используйте вместо него MongoCursor::setReadPreference() и Предпочтения чтения.


Использует режим снимка для запроса

  • « MongoCursor::slaveOkay
  • MongoCursor::sort »
  • PHP Manual
  • MongoCursor
  • Использует режим снимка для запроса

MongoCursor::snapshot

(PECL mongo >=0.9.4)

MongoCursor::snapshot — Использует режим снимка для запроса

Описание

public MongoCursor::snapshot ( void ) : MongoCursor

Использует режим снимка для запроса. Режим моментального снимка гарантирует, что документ не будет возвращен более одного раза, поскольку промежуточная операция записи приводит к перемещению документа. Документы, вставленные или удаленные в течение срока действия курсора, могут возвращаться или не возвращаться независимо от режима моментального снимка.

Запросы с короткими ответами (менее 1 МБ) всегда эффективно снимаются.

Режим моментальных снимков не может использоваться с сортировкой, явными подсказками или запросами к изолированным коллекциям.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает курсор.

Ошибки

Выдает исключение MongoCursorException, если этот курсор начал итерацию.

Смотрите также

Документация MongoDB по » оператору $snapshot.


Сортирует результаты по заданным полям

  • « MongoCursor::snapshot
  • MongoCursor::tailable »
  • PHP Manual
  • MongoCursor
  • Сортирует результаты по заданным полям

MongoCursor::sort

(PECL mongo >=0.9.0)

MongoCursor::sort — Сортирует результаты по заданным полям

Описание

public MongoCursor::sort ( array $fields ) : MongoCursor

Список параметров

fields

Массив полей для сортировки. Каждый элемент в массиве имеет в качестве ключа имя поля и в качестве значения либо 1 для сортировки по возрастанию, либо -1 для сортировки по убыванию.

Каждый результат сначала сортируется по первому полю в массиве, затем (если он существует) по второму полю в массиве и т.д. Это означает, что важен порядок fields в массиве полей. Смотрите также раздел с примерами.

Возвращаемые значения

Возвращает тот же курсор, на котором был вызван этот метод.

Ошибки

Выдает исключение MongoCursorException, если этот курсор начал итерацию.

Примеры

Пример #1 Пример использования MongoCursor::sort()

<?php
// Сортировка по полю 'х', по возрастанию
$cursor->sort(array('x' => 1));

// Порядок в ассоциативном массиве важен.
// Например, эти два примера приведут к разным результатам:

// Сортируем по дате по возрастанию и по возрасту по убыванию
$cursor->sort(array('date' => 1, 'age' => -1));

// Сортируем по возрасту по убыванию и по дате по возрастанию
$cursor->sort(array('age' => -1, 'date' => 1));
?>


Устанавливает, останется ли этот курсор открытым после извлечения последних результатов

  • « MongoCursor::sort
  • MongoCursor::timeout »
  • PHP Manual
  • MongoCursor
  • Устанавливает, останется ли этот курсор открытым после извлечения последних результатов

MongoCursor::tailable

(PECL mongo >=0.9.4)

MongoCursor::tailable — Устанавливает, останется ли этот курсор открытым после извлечения последних результатов

Описание

public MongoCursor::tailable ([ bool $tail = TRUE ] ) : MongoCursor

Mongo имеет функцию, известную как настраиваемые курсоры, которые похожи на Unix-команду "tail -f".

Настраиваемый курсор означает, что он не закрывается при получении последних данных. Скорее, курсор отмечает конечную позицию объекта. Вы можете возобновить использование курсора позже, с того места, где он был расположен, если было получено больше данных.

Как и любой "скрытый курсор", курсор может стать недействительным в какой-то момент, например, если последний объект, на который он ссылается, был удален. Таким образом, вы должны быть готовы к запросу, если курсор - MongoCursor::dead().

Список параметров

tail

Если курсор должен быть настраиваемым.

Возвращаемые значения

Возвращает курсор.

Ошибки

Выдает исключение MongoCursorException, если этот курсор начал итерацию.

Примеры

Пример #1 Пример использования MongoCursor::tailable()

<?php

$cursor = $collection->find()->tailable();

$results = array();

while (1) {
    if (!$cursor->hasNext()) {
        // мы прочитали все результаты, выходим
        if ($cursor->dead()) {
            break;
        }
        // пока читаем все результаты, ждем дальше
        sleep(10);
    }
    else {
        $results[] = $cursor->getNext();
    }
}

?>

Смотрите также

Документация MongoDB по » настраиваемым курсорам.

  • MongoCursor::awaitData() - Устанавливает, будет ли этот курсор некоторое время ждать, пока настраиваемый курсор вернет больше данных


Устанавливает время ожидания на стороне клиента для запроса

  • « MongoCursor::tailable
  • MongoCursor::valid »
  • PHP Manual
  • MongoCursor
  • Устанавливает время ожидания на стороне клиента для запроса

MongoCursor::timeout

(PECL mongo >=1.0.3)

MongoCursor::timeout — Устанавливает время ожидания на стороне клиента для запроса

Описание

public MongoCursor::timeout ( int $ms ) : MongoCursor

Время ожидания может быть установлено в любое время и повлияет на последующие запросы курсора, включая выборку большого количества результатов из базы данных.

Список параметров

ms

Количество миллисекунд, в течение которых курсор ожидает ответа. Используйте -1, чтобы ждать бесконечно. По умолчанию курсор будет ждать 30000 миллисекунд (30 секунд).

Возвращаемые значения

Возвращает курсор.

Ошибки

Вызывает методы, которые извлекают результаты, чтобы вызвать исключение MongoCursorTimeoutException, если запрос занимает больше времени, чем указанное количество миллисекунд.

Примеры

Пример #1 Пример использования MongoCursor::timeout()

В следующем примере драйвер будет бесконечно ждать первоначального ответа базы данных, а затем ждать 100 миллисекунд для последующих ответов.

<?php

$cursor = $collection->find();
$cursor->timeout(-1);

/* $cursor->hasNext() выполняет запрос. Устанавливаем бесконечное время ожидания,
/* поэтому драйвер будет ждать ответа столько, сколько потребуется.
 */
while ($cursor->hasNext()) {
    $cursor->timeout(100);

    /* Время ожидания уже установлено, поэтому, если курсору нужно получить
    /* больше результатов из базы данных, он будет ждать ответа только 100 мс.
     */
    try {
        print_r($cursor->getNext());
    } catch (MongoCursorTimeoutException $e) {
        echo "запрос занял слишком много времени!";
    }
}

?>

Примечания

Внимание

Это не заставляет сервер MongoDB отменять длительные операции; он только указывает драйверу прекратить ждать ответа и выдать исключение MongoCursorTimeoutException по истечении заданного времени. Если вам нужно указать время ожидания для запроса на стороне сервера, попробуйте использовать MongoCursor::maxTimeMS().

Смотрите также

  • MongoCursorInterface::timeout() - Устанавливает время ожидания на стороне клиента для текущего запроса
  • Опция socketTimeoutMS для MongoClient::__construct()


Проверяет, читает ли курсор правильный результат

  • « MongoCursor::timeout
  • MongoCursorInterface »
  • PHP Manual
  • MongoCursor
  • Проверяет, читает ли курсор правильный результат

MongoCursor::valid

(PECL mongo >=0.9.0)

MongoCursor::valid — Проверяет, читает ли курсор правильный результат

Описание

public MongoCursor::valid ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если текущий результат не равен null, и FALSE в противном случае.

Смотрите также

  • Iterator::valid() - Проверяет корректность текущей позиции


Интерфейс MongoCursorInterface

(PECL mongo >=1.5.0)

Введение

Интерфейс для курсоров, который можно использовать для перебора результатов запроса или команды базы данных. Интерфейс реализован классами MongoCursor и MongoCommandCursor.

Замечание: Подобно Traversable, это внутренний интерфейс, который не может быть реализован в скрипте PHP.

Обзор классов

MongoCursorInterface extends Iterator {
/* Методы */
abstract public batchSize ( int $batchSize ) : MongoCursorInterface
abstract public dead ( void ) : bool
abstract public getReadPreference ( void ) : array
abstract public info ( void ) : array
abstract public setReadPreference ( string $read_preference [, array $tags ] ) : MongoCursorInterface
abstract public timeout ( int $ms ) : MongoCursorInterface
/* Наследуемые методы */
abstract public Iterator::current ( void ) : mixed
abstract public Iterator::key ( void ) : scalar
abstract public Iterator::next ( void ) : void
abstract public Iterator::rewind ( void ) : void
abstract public Iterator::valid ( void ) : bool
}

Содержание

  • MongoCursorInterface::batchSize — Ограничивает количество элементов, возвращаемых в одном пакете
  • MongoCursorInterface::dead — Проверяет, есть ли результаты, которые еще не были отправлены из базы данных
  • MongoCursorInterface::getReadPreference — Получает предпочтения чтения для этого запроса
  • MongoCursorInterface::info — Получает информацию о создании и итерации курсора
  • MongoCursorInterface::setReadPreference — Устанавливает предпочтения чтения для этого запроса
  • MongoCursorInterface::timeout — Устанавливает время ожидания на стороне клиента для текущего запроса


Ограничивает количество элементов, возвращаемых в одном пакете

  • « MongoCursorInterface
  • MongoCursorInterface::dead »
  • PHP Manual
  • MongoCursorInterface
  • Ограничивает количество элементов, возвращаемых в одном пакете

MongoCursorInterface::batchSize

(PECL mongo >=1.5.0)

MongoCursorInterface::batchSize — Ограничивает количество элементов, возвращаемых в одном пакете

Описание

abstract public MongoCursorInterface::batchSize ( int $batchSize ) : MongoCursorInterface

Курсор обычно выбирает пакет объектов результатов и сохраняет их локально. Этот метод устанавливает значение размера пакета для настройки количества документов, полученных с сервера за один пакет.

Список параметров

batchSize

Количество результатов, возвращаемых в пакете.

Возвращаемые значения

Возвращает текущий курсор.


Проверяет, есть ли результаты, которые еще не были отправлены из базы данных

  • « MongoCursorInterface::batchSize
  • MongoCursorInterface::getReadPreference »
  • PHP Manual
  • MongoCursorInterface
  • Проверяет, есть ли результаты, которые еще не были отправлены из базы данных

MongoCursorInterface::dead

(PECL mongo >=1.5.0)

MongoCursorInterface::dead — Проверяет, есть ли результаты, которые еще не были отправлены из базы данных

Описание

abstract public MongoCursorInterface::dead ( void ) : bool

Метод проверяет, был ли исчерпан курсор, и в базе данных больше нет результатов для отправки клиенту. Курсор "dead" не обязательно означает, что для итерации больше нет результатов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если есть еще результаты, которые еще не были отправлены клиенту, и FALSE в противном случае.


Получает предпочтения чтения для этого запроса

  • « MongoCursorInterface::dead
  • MongoCursorInterface::info »
  • PHP Manual
  • MongoCursorInterface
  • Получает предпочтения чтения для этого запроса

MongoCursorInterface::getReadPreference

(PECL mongo >=1.6.0)

MongoCursorInterface::getReadPreference — Получает предпочтения чтения для этого запроса

Описание

abstract public MongoCursorInterface::getReadPreference ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Данная функция возвращает массив, описывающий режимы предпочтения чтения. Массив содержит следующие значения: type для строкового значения режима предпочтения чтения (соответствующий константам MongoClient) и tagsets, содержащее список всех критерий наборов тегов. Если наборы тегов не были указаны, то tagsets в массиве не будет.

Смотрите также

  • Документация по предпочтениям чтения.
  • MongoCursorInterface::setReadPreference() - Устанавливает предпочтения чтения для этого запроса


Получает информацию о создании и итерации курсора

  • « MongoCursorInterface::getReadPreference
  • MongoCursorInterface::setReadPreference »
  • PHP Manual
  • MongoCursorInterface
  • Получает информацию о создании и итерации курсора

MongoCursorInterface::info

(PECL mongo >=1.5.0)

MongoCursorInterface::info — Получает информацию о создании и итерации курсора

Описание

abstract public MongoCursorInterface::info ( void ) : array

Возвращает информацию о создании и итерации курсора. Можно вызвать до или после того, как курсор начнет перебирать.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает пространство имен, размер пакета, лимит, пропуск, флаги, запрос и проецируемые поля для этого курсора. Если курсор начал итерацию, будет включена дополнительная информация об итерации и соединении.


Устанавливает предпочтения чтения для этого запроса

  • « MongoCursorInterface::info
  • MongoCursorInterface::timeout »
  • PHP Manual
  • MongoCursorInterface
  • Устанавливает предпочтения чтения для этого запроса

MongoCursorInterface::setReadPreference

(PECL mongo >=1.6.0)

MongoCursorInterface::setReadPreference — Устанавливает предпочтения чтения для этого запроса

Описание

abstract public MongoCursorInterface::setReadPreference ( string $read_preference [, array $tags ] ) : MongoCursorInterface

Список параметров

read_preference

Режимы предпочтения чтения: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED и MongoClient::RP_NEAREST.

tags

Пустой массив, либо содержащий наборы тегов, где каждый такой набор является массивом из критериев, используемых в соответствии с тегами членов набора реплик.

Возвращаемые значения

Возвращает текущий курсор.

Ошибки

Генерирует ошибку уровня E_WARNING, в случае неверных параметров, либо если один или более наборов тегов были переданы с режимом чтения MongoClient::RP_PRIMARY.

Смотрите также

  • Документация по предпочтениям чтения.
  • MongoCursorInterface::getReadPreference() - Получает предпочтения чтения для этого запроса


Устанавливает время ожидания на стороне клиента для текущего запроса

  • « MongoCursorInterface::setReadPreference
  • MongoCommandCursor »
  • PHP Manual
  • MongoCursorInterface
  • Устанавливает время ожидания на стороне клиента для текущего запроса

MongoCursorInterface::timeout

(PECL mongo >=1.5.0)

MongoCursorInterface::timeout — Устанавливает время ожидания на стороне клиента для текущего запроса

Описание

abstract public MongoCursorInterface::timeout ( int $ms ) : MongoCursorInterface

Время ожидания может быть установлено в любое время и повлияет на последующий поиск данных, связанный с этим курсором, включая выборку большего количества результатов из базы данных.

Список параметров

ms

Количество миллисекунд, в течение которых курсор ожидает ответа. Используйте -1, чтобы ждать бесконечно. По умолчанию курсор будет ждать 30000 миллисекунд (30 секунд).

Возвращаемые значения

Возвращает текущий курсор.

Ошибки

Вызывает методы, которые извлекают результаты, чтобы вызвать исключение MongoCursorTimeoutException, если выборка данных занимает больше времени, чем указанное количество миллисекунд.

Смотрите также

  • Опция socketTimeoutMS для MongoClient::__construct()


Класс MongoCommandCursor

(PECL mongo >=1.5.0)

Введение

Командный курсор похож на MongoCursor за исключением того, что он используется для перебора результатов команды базы данных вместо обычного запроса. Командные курсоры полезны для итерации больших наборов результатов, которые могут превышать ограничение размера документа (на данный момент - 16 МБ) одного ответа MongoDB::command().

Вы можете создавать командные курсоры, используя MongoCommandCursor::__construct() или метод фабрики MongoCommandCursor::createFromDocument(), как правило, используя специфичные для команды помощники, такие как MongoCollection::aggregateCursor().

Обратите внимание, что курсор не содержит результаты команды базы данных; он просто управляет итерацией. Таким образом, если вы печатаете курсор (например, с помощью var_dump() или print_r()), вы увидите объект курсора, но не документы результата.

Стадии курсора

MongoCommandCursor имеет две "жизненные стадии": до и после выполнения запроса. Когда курсор создан, он еще не связался с базой данных, поэтому он находится в состоянии перед выполнением запроса. Когда клиент впервые пытается получить результат (вызывая MongoCommandCursor::rewind(), прямо или косвенно), курсор переходит в состояние после выполнения запроса.

Размер пакета командного курсора и время ожидания сокета могут быть сконфигурированы как в состоянии до, так и после выполнения запроса.

Пример #1 Добавление параметров в MongoCommandCursor

<?php

$cursor = new MongoCommandCursor(...);

$cursor = $cursor->batchSize( 4 );

foreach ($cursor as $result) {
    var_dump($result);
}
?>

Обзор классов

MongoCommandCursor implements MongoCursorInterface , Iterator {
/* Методы */
public batchSize ( int $batchSize ) : MongoCommandCursor
public __construct ( MongoClient $connection , string $ns , array $command = array() )
public static createFromDocument ( MongoClient $connection , string $hash , array $document ) : MongoCommandCursor
public current ( void ) : array
public dead ( void ) : bool
public getReadPreference ( void ) : array
public info ( void ) : array
public key ( void ) : int
public next ( void ) : void
public rewind ( void ) : array
public setReadPreference ( string $read_preference [, array $tags ] ) : MongoCommandCursor
public timeout ( int $ms ) : MongoCommandCursor
public valid ( void ) : bool
}

Смотрите также

  • MongoDB::command()
  • MongoCollection::aggregateCursor()

Содержание

  • MongoCommandCursor::batchSize — Ограничивает количество элементов, возвращаемых в одном пакете
  • MongoCommandCursor::__construct — Создает новый командный курсор
  • MongoCommandCursor::createFromDocument — Создает новый курсор команды из существующего ответа команды документа
  • MongoCommandCursor::current — Возвращает текущий элемент
  • MongoCommandCursor::dead — Проверяет, есть ли результаты, которые еще не были отправлены из базы данных
  • MongoCommandCursor::getReadPreference — Получает предпочтения чтения для команды
  • MongoCommandCursor::info — Получает информацию о создании и итерации курсора
  • MongoCommandCursor::key — Возвращает индекс текущего результата в наборе результатов
  • MongoCommandCursor::next — Перемещает курсор к следующему результату
  • MongoCommandCursor::rewind — Выполняет команду и сбрасывает курсор на начало набора результатов
  • MongoCommandCursor::setReadPreference — Устанавливает предпочтения чтения для команды
  • MongoCommandCursor::timeout — Устанавливает время ожидания на стороне клиента для команды
  • MongoCommandCursor::valid — Проверяет, читает ли курсор правильный результат


Ограничивает количество элементов, возвращаемых в одном пакете

  • « MongoCommandCursor
  • MongoCommandCursor::__construct »
  • PHP Manual
  • MongoCommandCursor
  • Ограничивает количество элементов, возвращаемых в одном пакете

MongoCommandCursor::batchSize

(PECL mongo >=1.5.0)

MongoCommandCursor::batchSize — Ограничивает количество элементов, возвращаемых в одном пакете

Описание

public MongoCommandCursor::batchSize ( int $batchSize ) : MongoCommandCursor

Курсор обычно выбирает пакет объектов результатов и сохраняет их локально. Этот метод устанавливает значение batchSize для настройки количества документов, полученных с сервера за один раз.

Список параметров

batchSize

Количество результатов, возвращаемых в одном пакете. Каждый пакет требует отправки на сервер в оба конца.

Это не переопределяет ограничение MongoDB на объем данных, которые он возвращает клиенту (т.е. если вы установите размер пакета в 1 000 000 000, MongoDB все равно будет возвращать только 4-16 МБ результаты в пакете).

Возвращаемые значения

Возвращает курсор.

Примеры

Пример #1 MongoCommandCursor::batchSize()

<?php
$commandCursor->batchSize(20);
?>

Смотрите также

  • MongoCursorInterface::batchSize() - Ограничивает количество элементов, возвращаемых в одном пакете


Создает новый командный курсор

  • « MongoCommandCursor::batchSize
  • MongoCommandCursor::createFromDocument »
  • PHP Manual
  • MongoCommandCursor
  • Создает новый командный курсор

MongoCommandCursor::__construct

(PECL mongo >=1.5.0)

MongoCommandCursor::__construct — Создает новый командный курсор

Описание

public MongoCommandCursor::__construct ( MongoClient $connection , string $ns , array $command = array() )

Как правило, вам не нужно создавать MongoCommandCursor вручную, поскольку существуют вспомогательные функции, такие как MongoCollection::aggregateCursor() и MongoCollection::parallelCollectionScan(); однако, если сервер вводит новые команды, которые могут возвращать курсоры, этот конструктор будет полезен при отсутствии определенных вспомогательных методов. Вы также можете рассмотреть возможность использования MongoCommandCursor::createFromDocument().

Список параметров

connection

Подключение к базе данных.

ns

Полное имя базы данных и коллекции (например, "test.foo")

command

Команда базы данных.

Возвращаемые значения

Возвращает новый курсор.

Примеры

Пример #1 Пример использования MongoCommandCursor

<?php
$m = new MongoClient;

// Определяет конвейер агрегации
$pipeline = [
    [ '$group' => [
        '_id' => '$country_code',
        'timezones' => [ '$addToSet' => '$timezone' ]
    ] ],
    [ '$sort' => [ '_id' => 1 ] ],
];

// Создает объект MongoCommandCursor
$cursor = new MongoCommandCursor(
    $m, // MongoClient object
    'demo.cities', // namespace
    [
        'aggregate' => 'cities',
        'pipeline' => $pipeline,
        'cursor' => [ 'batchSize' => 0 ],
    ]
);

foreach($cursor as $result) {
   ...
}
?>

Смотрите также

  • MongoCommandCursor::createFromDocument() - Создает новый курсор команды из существующего ответа команды документа
  • MongoCollection::aggregateCursor() - Выполняет команду конвейера агрегации и получает результаты с помощью курсора
  • MongoCollection::parallelCollectionScan() - Возвращает массив курсоров в итератор по всей параллельной коллекции


Создает новый курсор команды из существующего ответа команды документа

  • « MongoCommandCursor::__construct
  • MongoCommandCursor::current »
  • PHP Manual
  • MongoCommandCursor
  • Создает новый курсор команды из существующего ответа команды документа

MongoCommandCursor::createFromDocument

(PECL mongo >=1.5.0)

MongoCommandCursor::createFromDocument — Создает новый курсор команды из существующего ответа команды документа

Описание

public static MongoCommandCursor::createFromDocument ( MongoClient $connection , string $hash , array $document ) : MongoCommandCursor

Используйте этот метод, если у вас есть необработанный результат команды с информацией о курсоре. Обратите внимание, что курсоры, созданные с помощью этого метода, не могут повторяться многократно, поскольку у них не будет исходной команды, необходимой для повторного выполнения.

Список параметров

connection

Подключение к базе данных.

hash

Хэш соединения, полученный с помощью третьего аргумента путем ссылки на MongoDB::command().

document

Документ с информацией курсора в нем. Этот документ должен содержать поля id, ns и firstBatch. Такой документ получается путем вызова MongoDB::command() с соответствующими аргументами для возврата курсора, а не только встроенного результата. Смотрите пример ниже.

Возвращаемые значения

Возвращает новый курсор.

Примеры

Пример #1 MongoCommandCursor::createFromDocument()

<?php
$m = new MongoClient;
$d = $m->demo;

// Определяет конвейер агрегации
$pipeline = [
    [ '$group' => [
        '_id' => '$country_code',
        'timezones' => [ '$addToSet' => '$timezone' ]
    ] ],
    [ '$sort' => [ '_id' => 1 ] ],
];

// Выполняет команду. Параметр "cursor" указывает серверу возвращать
// информацию о курсоре в ответе вместо внутренних результатов.
$r = $d->command(
    [
        'aggregate' => 'cities',
        'pipeline' => $pipeline,
        'cursor' => [ 'batchSize' => 1 ],
    ],
    null,
    $hash
);

// Показывает результат и хэш
var_dump( $r, $hash );

// Создает курсор команды
$cursor = MongoCommandCursor::createFromDocument( $m, $hash, $r );
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["cursor"]=>
  array(3) {
    ["id"]=>
    object(MongoInt64)#5 (1) {
      ["value"]=>
      string(12) "392143983421"
    }
    ["ns"]=>
    string(11) "demo.cities"
    ["firstBatch"]=>
    array(1) {
      [0]=>
      array(2) {
        ["_id"]=>
        string(2) "AD"
        ["timezones"]=>
        array(1) {
          [0]=>
          string(14) "Europe/Andorra"
        }
      }
    }
  }
  ["ok"]=>
  float(1)
}
string(25) "localhost:27017;-;.;17617"

Как видите, возвращаемая информация о курсоре имеет поля id, ns и firstBatch.

Смотрите также

  • MongoCommandCursor::__construct() - Создает новый командный курсор


Возвращает текущий элемент

  • « MongoCommandCursor::createFromDocument
  • MongoCommandCursor::dead »
  • PHP Manual
  • MongoCommandCursor
  • Возвращает текущий элемент

MongoCommandCursor::current

(PECL mongo >=1.5.0)

MongoCommandCursor::current — Возвращает текущий элемент

Описание

public MongoCommandCursor::current ( void ) : array

Это возвращает NULL до вызова MongoCommandCursor::rewind().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий результат документа в виде ассоциативного массива. NULL будет возвращено, если нет результата.

Смотрите также

  • Iterator::current() - Возврат текущего элемента


Проверяет, есть ли результаты, которые еще не были отправлены из базы данных

  • « MongoCommandCursor::current
  • MongoCommandCursor::getReadPreference »
  • PHP Manual
  • MongoCommandCursor
  • Проверяет, есть ли результаты, которые еще не были отправлены из базы данных

MongoCommandCursor::dead

(PECL mongo >=1.5.0)

MongoCommandCursor::dead — Проверяет, есть ли результаты, которые еще не были отправлены из базы данных

Описание

public MongoCommandCursor::dead ( void ) : bool

Этот метод проверяет, исчерпан ли курсор MongoCommandCursor, и в базе данных больше нет результатов для отправки клиенту. "Мертвый" курсор не обязательно означает, что для итерации больше нет результатов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если есть еще результаты, которые еще не были отправлены клиенту, и FALSE в противном случае.

Смотрите также

  • MongoCursorInterface::dead() - Проверяет, есть ли результаты, которые еще не были отправлены из базы данных


Получает предпочтения чтения для команды

  • « MongoCommandCursor::dead
  • MongoCommandCursor::info »
  • PHP Manual
  • MongoCommandCursor
  • Получает предпочтения чтения для команды

MongoCommandCursor::getReadPreference

(PECL mongo >=1.6.0)

MongoCommandCursor::getReadPreference — Получает предпочтения чтения для команды

Описание

public MongoCommandCursor::getReadPreference ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Данная функция возвращает массив, описывающий режимы предпочтения чтения. Массив содержит следующие значения: type для строкового значения режима предпочтения чтения (соответствующий константам MongoClient) и tagsets, содержащее список всех критерий наборов тегов. Если наборы тегов не были указаны, то tagsets в массиве не будет.

Примеры

Пример #1 Пример возвращаемого значения MongoCommandCursor::getReadPreference()

<?php

$m = new MongoClient('mongodb://rs1.example.com:27017', array('replicaSet' => 'myReplSetName'));
$collection = $m->selectCollection('test', 'people');

// Если MongoCommandCursor создается напрямую, он наследует предпочтения чтения
// экземпляра MongoClient, переданного его конструктору;
// однако если у MongoCollection::aggregateCursor() будет MongoCommandCursor,
// то он будет наследовать предпочтения чтения коллекции.
$collection->setReadPreference(MongoClient::RP_SECONDARY);

$cursor = $collection->aggregateCursor( [
    [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ],
    [ '$sort' => [ 'points' => -1 ] ],
] );

var_dump($cursor->getReadPreference());

?>

Результат выполнения данного примера:

array(1) {
  ["type"]=>
  string(9) "secondary"
}

Смотрите также

  • Документация по предпочтениям чтения.
  • MongoCommandCursor::setReadPreference() - Устанавливает предпочтения чтения для команды
  • MongoCursorInterface::getReadPreference() - Получает предпочтения чтения для этого запроса


Получает информацию о создании и итерации курсора

  • « MongoCommandCursor::getReadPreference
  • MongoCommandCursor::key »
  • PHP Manual
  • MongoCommandCursor
  • Получает информацию о создании и итерации курсора

MongoCommandCursor::info

(PECL mongo >=1.5.0)

MongoCommandCursor::info — Получает информацию о создании и итерации курсора

Описание

public MongoCommandCursor::info ( void ) : array

Можно вызывать до или после того, как курсор начнет перебирать.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает пространство имен, размер пакета, лимит, пропуск, флаги, запрос и проецируемые поля для этого курсора. Если курсор начал итерацию, будет включена дополнительная информация об итерации и соединении.

Примеры

Пример #1 Пример использования MongoCommandCursor::info()

<?php
$m = new MongoClient();

$cursor = new MongoCommandCursor(
    $m, // Объект MongoClient
    'demo.cities', // namespace
    [
        'aggregate' => 'cities',
        'pipeline' => [ [ '$match' => [ '_id' => [ '$exists' => true ] ] ] ],
        'cursor' => [ 'batchSize' => 1 ],
    ]
);

echo "Перед началом итерации:\n";
var_dump($cursor->info());

echo "\После начала итерации:\n";
$cursor->rewind();
var_dump($cursor->info());

?>

Результатом выполнения данного примера будет что-то подобное:

Перед началом итерации:
array(8) {
  ["ns"]=>
  string(11) "demo.cities"
  ["limit"]=>
  int(0)
  ["batchSize"]=>
  int(0)
  ["skip"]=>
  int(0)
  ["flags"]=>
  int(0)
  ["query"]=>
  array(3) {
    ["aggregate"]=>
    string(6) "cities"
    ["pipeline"]=>
    array(1) {
      [0]=>
      array(1) {
        ["$match"]=>
        array(1) {
          ["_id"]=>
          array(1) {
            ["$exists"]=>
            bool(true)
          }
        }
      }
    }
    ["cursor"]=>
    array(1) {
      ["batchSize"]=>
      int(1)
    }
  }
  ["fields"]=>
  NULL
  ["started_iterating"]=>
  bool(false)
}

После начала итерации:
array(17) {
  ["ns"]=>
  string(11) "demo.cities"
  ["limit"]=>
  int(0)
  ["batchSize"]=>
  int(0)
  ["skip"]=>
  int(0)
  ["flags"]=>
  int(0)
  ["query"]=>
  array(3) {
    ["aggregate"]=>
    string(6) "cities"
    ["pipeline"]=>
    array(1) {
      [0]=>
      array(1) {
        ["$match"]=>
        array(1) {
          ["_id"]=>
          array(1) {
            ["$exists"]=>
            bool(true)
          }
        }
      }
    }
    ["cursor"]=>
    array(1) {
      ["batchSize"]=>
      int(1)
    }
  }
  ["fields"]=>
  NULL
  ["started_iterating"]=>
  bool(true)
  ["id"]=>
  int(185840310129)
  ["at"]=>
  int(0)
  ["numReturned"]=>
  int(0)
  ["server"]=>
  string(25) "localhost:27017;-;.;23991"
  ["host"]=>
  string(9) "localhost"
  ["port"]=>
  int(27017)
  ["connection_type_desc"]=>
  string(10) "STANDALONE"
  ["firstBatchAt"]=>
  int(0)
  ["firstBatchNumReturned"]=>
  int(1)
}

Смотрите также

  • MongoCursorInterface::info() - Получает информацию о создании и итерации курсора


Возвращает индекс текущего результата в наборе результатов

  • « MongoCommandCursor::info
  • MongoCommandCursor::next »
  • PHP Manual
  • MongoCommandCursor
  • Возвращает индекс текущего результата в наборе результатов

MongoCommandCursor::key

(PECL mongo >=1.5.0)

MongoCommandCursor::key — Возвращает индекс текущего результата в наборе результатов

Описание

public MongoCommandCursor::key ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Индекс текущего результата в наборе результатов.

Смотрите также

  • Iterator::key() - Возврат ключа текущего элемента


Перемещает курсор к следующему результату

  • « MongoCommandCursor::key
  • MongoCommandCursor::rewind »
  • PHP Manual
  • MongoCommandCursor
  • Перемещает курсор к следующему результату

MongoCommandCursor::next

(PECL mongo >=1.5.0)

MongoCommandCursor::next — Перемещает курсор к следующему результату

Описание

public MongoCommandCursor::next ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения

NULL.

Ошибки

Выдает исключение MongoConnectionException, если не может подключиться к базе данных, и исключение MongoCursorTimeoutException, если превышено время ожидания.

Смотрите также

  • Iterator::next() - Переход к следующему элементу


Выполняет команду и сбрасывает курсор на начало набора результатов

  • « MongoCommandCursor::next
  • MongoCommandCursor::setReadPreference »
  • PHP Manual
  • MongoCommandCursor
  • Выполняет команду и сбрасывает курсор на начало набора результатов

MongoCommandCursor::rewind

(PECL mongo >=1.5.0)

MongoCommandCursor::rewind — Выполняет команду и сбрасывает курсор на начало набора результатов

Описание

public MongoCommandCursor::rewind ( void ) : array

Если курсор уже начал итерацию, команда будет выполнена повторно.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Необработанный документ с результатами сервера.

Ошибки

Выдает исключение MongoConnectionException, если не может подключиться к базе данных, и исключение MongoCursorTimeoutException, если превышено время ожидания.

Выдает исключение MongoCursorException, если курсор был создан с помощью MongoCommandCursor::createFromDocument() и уже начал итерацию. Такие курсоры не могут повторяться несколько раз, так как им не хватает исходной команды, необходимой для повторного выполнения.

Примеры

Пример #1 MongoCommandCursor::rewind()

<?php
$rawResult = $commandCursor->rewind();

// Командный курсор сбрасывается на начало набора результатов.

var_dump($rawResult);
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["cursor"]=>
  array(3) {
    ["id"]=>
    object(MongoInt64)#5 (1) {
      ["value"]=>
      string(12) "310050110216"
    }
    ["ns"]=>
    string(9) "demo.test"
    ["firstBatch"]=>
    array(1) {
      [0]=>
      array(2) {
        ["_id"]=>
        object(MongoId)#6 (1) {
          ["$id"]=>
          string(24) "52f5691544670a8077b0dc51"
        }
        ["value"]=>
        string(2) "42"
      }
    }
  }
  ["ok"]=>
  float(1)
}

Смотрите также

  • Iterator::rewind() - Перемотать итератор на первый элемент


Устанавливает предпочтения чтения для команды

  • « MongoCommandCursor::rewind
  • MongoCommandCursor::timeout »
  • PHP Manual
  • MongoCommandCursor
  • Устанавливает предпочтения чтения для команды

MongoCommandCursor::setReadPreference

(PECL mongo >=1.6.0)

MongoCommandCursor::setReadPreference — Устанавливает предпочтения чтения для команды

Описание

public MongoCommandCursor::setReadPreference ( string $read_preference [, array $tags ] ) : MongoCommandCursor

Список параметров

read_preference

Режимы предпочтения чтения: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED и MongoClient::RP_NEAREST.

tags

Пустой массив, либо содержащий наборы тегов, где каждый такой набор является массивом из критериев, используемых в соответствии с тегами членов набора реплик.

Возвращаемые значения

Возвращает курсор.

Ошибки

Генерирует ошибку уровня E_WARNING, в случае неверных параметров, либо если один или более наборов тегов были переданы с режимом чтения MongoClient::RP_PRIMARY.

Примеры

Пример #1 MongoCommandCursor::setReadPreference() пример синтаксиса массива набора тегов

<?php

$m = new MongoClient('mongodb://rs1.example.com:27017', array('replicaSet' => 'myReplSetName'));
$collection = $m->selectCollection('test', 'people');

$cursor = $collection->aggregateCursor( [
    [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ],
    [ '$sort' => [ 'points' => -1 ] ],
] );

// Предпочитаем ближайший сервер в "восточном" центре обработки данных,
// также используемый для отчетности, но используем сервер в "западном" центре обработки данных.
$cursor->setReadPreference(MongoClient::RP_NEAREST, [
    [ 'dc' => 'east', 'use' => 'reporting' ],
    [ 'dc' => 'west' ],
] );

foreach ($cursor as $person) {
    // ...
}

// Если предпочтения чтения изменено, они будут использованы
// при следующей перемотке курсора и повторном выполнении команды.
$cursor->setReadPreference(MongoClient::RP_PRIMARY);

foreach ($cursor as $person) {
    // ...
}

?>

Смотрите также

  • Документация по предпочтениям чтения.
  • MongoCommandCursor::getReadPreference() - Получает предпочтения чтения для команды
  • MongoCursorInterface::setReadPreference() - Устанавливает предпочтения чтения для этого запроса


Устанавливает время ожидания на стороне клиента для команды

  • « MongoCommandCursor::setReadPreference
  • MongoCommandCursor::valid »
  • PHP Manual
  • MongoCommandCursor
  • Устанавливает время ожидания на стороне клиента для команды

MongoCommandCursor::timeout

(PECL mongo >=1.6.0)

MongoCommandCursor::timeout — Устанавливает время ожидания на стороне клиента для команды

Описание

public MongoCommandCursor::timeout ( int $ms ) : MongoCommandCursor

Время ожидания может быть установлено в любое время и повлияет на последующий поиск данных, связанный с этим курсором, включая выборку большего количества результатов из базы данных.

Список параметров

ms

Количество миллисекунд, в течение которых курсор ожидает ответа. Используйте -1, чтобы ждать вечно. По умолчанию курсор будет ждать 30000 миллисекунд (30 секунд).

Возвращаемые значения

Возвращает курсор.

Ошибки

Вызывает методы, которые извлекают результаты, чтобы вызвать исключение MongoCursorTimeoutException, если выборка данных занимает больше времени, чем указанное количество миллисекунд.

Примеры

Пример #1 Пример использования MongoCommandCursor::timeout()

В следующем примере драйвер будет ждать в течение 60 секунд первого ответа от команды. Кроме того, он будет ждать 60 секунд каждый раз, когда сервер будет опрашиваться для получения дополнительной информации.

<?php

$m = new MongoClient;
$col = $m->database->collection;

$pipeline = [ ... ];

$cursor = $col->aggregateCursor( $pipeline );
$cursor->timeout( 60000 ); // на 60 секунд

foreach ( $cursor as $result ) {
   ...
}

?>

Примечания

Внимание

Это не заставит сервер MongoDB отменять длительные операции; он только указывает драйверу прекратить ждать ответа и выдать исключение MongoCursorTimeoutException по истечении заданного времени. Если вам нужно указать время ожидания на стороне сервера для команды, рассмотрите возможность передачи опции maxTimeMS в MongoCollection::aggregateCursor().

Смотрите также

  • MongoCollection::aggregateCursor() - Выполняет команду конвейера агрегации и получает результаты с помощью курсора
  • MongoCursorInterface::timeout() - Устанавливает время ожидания на стороне клиента для текущего запроса
  • Опция socketTimeoutMS для MongoClient::__construct()


Проверяет, читает ли курсор правильный результат

  • « MongoCommandCursor::timeout
  • Типы »
  • PHP Manual
  • MongoCommandCursor
  • Проверяет, читает ли курсор правильный результат

MongoCommandCursor::valid

(PECL mongo >=1.5.0)

MongoCommandCursor::valid — Проверяет, читает ли курсор правильный результат

Описание

public MongoCommandCursor::valid ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если текущий результат не равен null, и FALSE в противном случае.

Смотрите также

  • Iterator::valid() - Проверяет корректность текущей позиции


Типы

Содержание

  • MongoId
  • MongoCode
  • MongoDate
  • MongoRegex
  • MongoBinData
  • MongoInt32
  • MongoInt64
  • MongoDBRef
  • MongoMinKey
  • MongoMaxKey
  • MongoTimestamp

MongoDB позволяет программистам сохранять и запрашивать данные, выраженные во всех основных типах PHP, составных типах (массивы, ассоциативные массивы и объекты) и полдюжины классов, предоставляемых драйвером PHP MongoDB (для регулярных выражений, дат и другие специализированные приложения).

Логиечские и NULL

TRUE, FALSE, и NULL могут использоваться как есть.

Числа

Числа отличаются от строк в MongoDB: "123" не соответствует 123. Таким образом, если вы хотите убедиться, что числа отсортированы и сопоставлены правильно, вы должны убедиться, что они действительно сохраняются, как числа.

<?php

$doc = array("a" => 123, "b" => "123");
$collection->insert($doc);

$doc->find(array("a" => 123));   // совпадает
$doc->find(array("a" => "123")); // не совпадает
$doc->find(array("a" => 123.0)); // совпадает
$doc->find(array("b" => 123));   // не совпадает
$doc->find(array("b" => "123")); // совпадает

?>

Как отмечено выше, числа с плавающей запятой сравниваются с целыми числами или совпадают с ними, как и следовало ожидать.

Большие числа

По умолчанию, в 32-разрядной системе числа отправляются в базу данных, как 32-разрядные целые числа. В 64-битной системе они отправляются, как 64-битные целые числа. Для обратной совместимости все системы десериализуют 64-битные целые числа, как числа с плавающей запятой. Числа с плавающей точкой не являются точными. Если вам нужны точные значения, вы должны изменить настройки php.ini.

В 32-битной системе, если установлен mongo.long_as_object, 64-битные целые числа будут возвращены, как объекты MongoInt64. Целое число будет сохранено в поле значения с идеальной точностью (в виде строки). Вы также можете использовать MongoInt64 для сохранения 64-разрядных целых чисел на 32-разрядных компьютерах.

В 64-битных системах вы можете установить mongo.long_as_object или mongo.native_long. mongo.native_long вернет 64-битные целые и "нормальные" целые числа PHP. Вы можете использовать MongoInt32 для сохранения 32-разрядных целых чисел на 64-разрядных компьютерах.

Вам следует установить поведение mongo.long_as_object и mongo.native_long, которое вы планируете использовать, даже если это поведение по умолчанию (для защиты от будущих изменений по умолчанию).

Смотрите также: параметры php.ini, MongoInt32, MongoInt64.

Строки

Строки должны быть UTF-8. Строки не-UTF-8 должны быть либо преобразованы в UTF-8 перед отправкой в базу данных, либо сохранены, как двоичные данные.

Регулярные выражения могут использоваться для сопоставления строк и выражаются с использованием класса MongoRegex.

Двоичные данные

Строки, изображения и любые другие двоичные данные не в формате UTF-8 следует отправлять в базу данных с использованием типа MongoBinData.

Даты

Даты могут быть созданы с помощью класса MongoDate. Они хранятся в миллисекундах с начала Unix-эпохи.

MongoTimestamp не предназначен для сохранения дат или временных меток, он используется внутри MongoDB. Если вы не создаете инструмент, взаимодействующий с внутренними компонентами репликации или шардинга, вы должны использовать MongoDate, а не MongoTimestamp.

Уникальные идентификаторы

Драйвер автоматически создаст поле _id перед вставкой документа (если он не указан пользователем). Это поле является экземпляром MongoId (в большинстве других языков называется "ObjectId").

Эти идентификаторы имеют длину 12 байтов и состоят из:

  • 4 байта метки времени

    Никакие две записи не могут иметь одинаковый идентификатор, если они были вставлены в разное время.

  • 3-х байтовый идентификатор машины

    Никакие две записи не могут иметь одинаковый идентификатор, если они были вставлены на разных компьютерах.

  • 2-х байтовый идентификатор потока

    Никакие две записи не могут иметь одинаковый идентификатор, если они были вставлены разными потоками, работающими на одной машине.

  • 3 байта значения приращения

    Каждый раз, когда создается идентификатор, глобальный счетчик увеличивается и используется в качестве значения приращения следующего идентификатора.

Таким образом, никакие две записи не могут иметь одинаковый идентификатор, если только одному процессу на одном компьютере не удалось вставить 256^3 (более 16 миллионов) документов за одну секунду, переполнив поле приращения.

JavaScript

MongoDB поставляется с механизмом JavaScript, так что вы можете встраивать JavaScript в запросы (используя предложение $where), отправлять его непосредственно в базу данных для выполнения и использовать для выполнения агрегации.

В целях безопасности используйте поле scope MongoCode, чтобы использовать переменные PHP в JavaScript. Код, который не требует внешних значений, может использовать MongoCode или просто быть строкой. Смотрите раздел о безопасности для получения дополнительной информации об отправке JavaScript в базу данных.

Массивы и Объекты

Массивы и объекты также могут быть сохранены в базе данных. Массив с восходящими числовыми ключами будет сохранен, как массив, все остальное - как объект.

<?php

// $scores будет сохранен, как массив
$scores = array(98, 100, 73, 85);
$collection->insert(array("scores" => $scores));

// $scores будет сохранен, как объект
$scores = array("quiz1" => 98, "midterm" => 100, "quiz2" => 73, "final" => 85);
$collection->insert(array("scores" => $scores));

?>

Если вы запросите эти объекты с помощью оболочки базы данных, они будут выглядеть так:

> db.students.find()
{ "_id" : ObjectId("4b06beada9ad6390dab17c43"), "scores" : [ 98, 100, 73, 85 ] }
{ "_id" : ObjectId("4b06bebea9ad6390dab17c44"), "scores" : { "quiz1" : 98, "midterm" : 100, "quiz2" : 73, "final" : 85 } }

База данных также может сохранять произвольные объекты PHP (хотя они будут возвращаться в виде ассоциативных массивов). Поля используются для пар ключ/значение. Например, сообщение в блоге может выглядеть так:

<?php

  // класс сообщения в блоге
  class Post {

  var $author;
  var $content;
  var $comments = array();
  var $date;

  public function __construct($author, $content) {
  $this->author = $author;
$this->content = $content;
    $this->date = new MongoDate();
  }

  public function setTitle($title) {
    $this->title = $title;
  }
}

// создаем простую запись в блоге и вставляем ее в базу данных
$post1 = new Post("Adam", "This is a blog post");

$blog->insert($post1);

// нет ничего ограничивающего тип поля "автор",
// поэтому мы можем сделать его вложенным объектом
$author = array("name" => "Fred", "karma" => 42);
$post2 = new Post($author, "This is another blog post.");

// мы создаем дополнительное поле, устанавливая заголовок
$post2->setTitle("Second Post");

$blog->insert($post2);

?>

Из оболочки базы данных это будет выглядеть примерно так:

> db.blog.find()
{ "_id" : ObjectId("4b06c263edb87a281e09dad8"), "author" : "Adam", "content" : "This is a blog post", "comments" : [ ], "date" : "Fri Nov 20 2009 11:22:59 GMT-0500 (EST)" }
{ "_id" : ObjectId("4b06c282edb87a281e09dad9"), "author" : { "name" : "Fred", "karma" : 42 }, "content" : "This is a blog post", "comments" : [ ], "date" : "Fri Nov 20 2009 11:23:30 GMT-0500 (EST)", "title" : "Second Post" }

Драйвер не будет обнаруживать эталонные циклы в массивах и объектах. Например, это выдаст фатальную ошибку:

<?php

$collection->insert($GLOBALS);

?>
Fatal error: Nesting level too deep - recursive dependency?
Если вам нужно вставить документы, которые могут иметь рекурсивную зависимость, вы должны проверить их самостоятельно, прежде чем передавать их драйверу.


Класс MongoId

(PECL mongo >=0.8.0)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\ObjectId

Введение

Уникальный идентификатор, созданный для объектов базы данных. При добавлении записи в базу данных без поля _id, такое поле будет автоматически добавлено и инициализировано объектом MongoId. Если хранимые записи предположительно и так будут содержать уникальные поля, (такие как имя пользователя или отметку времени), возможно использовать их вместо поля _id , и это не будет изменено MongoId.

Экземпляры класса MongoId выполняют роль автоинкремента реляционных базах данных: обеспечивает кортеж уникальным ключом в случае отсутствия такового. Однако автоинкремент не очень хорошо работает с секционированными (sharded) базами данных, так как в таком случае невозможно обеспечить быстрый поиск следующего инкремента. Данный класс удовлетворяет требованиям к быстрой генерации значения, уникального в пределах секции.

Каждый MongoId состоит из 12 байт (преобразующихся в 24 шестнадцатеричных символа). Первые 4 байта занимает отметка времени, следующие 3 хеш имени хоста клиента, следующие 2 - последние 2 значащих байта идентификатора процесса исполнения скрипта, и последние 3 байта - автоинкрементное значение.

Объекты MongoIdмогуть быть сериализованы и десериализованы. Пример сериализованного значения:

C:7:"MongoId":24:{4af9f23d8ead0e1d32000000}

Обзор классов

MongoId {
public string $$id = NULL ;
/* Методы */
public __construct ([ string|MongoId $id = NULL ] )
public static getHostname ( void ) : string
public getInc ( void ) : int
public getPID ( void ) : int
public getTimestamp ( void ) : int
public static isValid ( mixed $value ) : bool
public static __set_state ( array $props ) : MongoId
public __toString ( void ) : string
}

Поля

id
Поле содержит строчное представление объекта.

Замечание: Имя свойства начинается с символа $. К нему можно обратиться используя сложный синтаксис разбора переменных (т.е. $mongoId->{'$id'}).

Смотрите также

Документация MongoDB об » идентификаторах.

Содержание

  • MongoId::__construct — Создает новый идентификатор
  • MongoId::getHostname — Получает имя хоста, используемое для идентификаторов этой машины
  • MongoId::getInc — Получает увеличенное значение для создания этого идентификатора
  • MongoId::getPID — Получает идентификатор процесса
  • MongoId::getTimestamp — Получает количество секунд с момента создания этого идентификатора
  • MongoId::isValid — Проверяет, является ли значение корректным ObjectId
  • MongoId::__set_state — Создает фиктивный MongoId
  • MongoId::__toString — Возвращает шестнадцатеричное представление этого идентификатора


Создает новый идентификатор

  • « MongoId
  • MongoId::getHostname »
  • PHP Manual
  • MongoId
  • Создает новый идентификатор

MongoId::__construct

(PECL mongo >= 0.8.0)

MongoId::__construct — Создает новый идентификатор

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\ObjectId::__construct()

Описание

public MongoId::__construct ([ string|MongoId $id = NULL ] )

Список параметров

id

Строка (должна содержать 24 шестнадцатеричных символа) или экземпляр MongoId.

Возвращаемые значения

Возвращает новый идентификатор.

Список изменений

Версия | Описание
1.4.0 | Исключение выдается при передаче неверной строки

Примеры

Пример #1 Пример использования MongoId::__construct()

В этом примере показано, как создать новый идентификатор. Это бывает редко необходимо, поскольку драйвер автоматически добавляет идентификатор в массивы перед их сохранением в базу данных.

<?php

  $id1 = new MongoId();
  echo "$id1\n";

  $id2 = new MongoId();
  echo "$id2\n";

  ?>

Результатом выполнения данного примера будет что-то подобное:

49a7011a05c677b9a916612a
49a702d5450046d3d515d10d

Пример #2 Пример параметра

В этом примере показано, как использовать строковый параметр для инициализации MongoId с заданным значением.

<?php
  $id1 = new MongoId();

  // создаем новый идентификатор из $id1
  $id2 = new MongoId("$id1");

  // показываем, что $id1 и $id2 имеют одинаковое шестнадцатеричное значение
  var_dump($id1 == $id2);
  ?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)

Смотрите также

  • MongoId::__toString() - Возвращает шестнадцатеричное представление этого идентификатора
  • MongoId::isvalid() - Проверяет, является ли значение корректным ObjectId


Получает имя хоста, используемое для идентификаторов этой машины

  • « MongoId::__construct
  • MongoId::getInc »
  • PHP Manual
  • MongoId
  • Получает имя хоста, используемое для идентификаторов этой машины

MongoId::getHostname

(PECL mongo >= 1.0.8)

MongoId::getHostname — Получает имя хоста, используемое для идентификаторов этой машины

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public static MongoId::getHostname ( void ) : string

Возвращает имя хоста, которое MongoId использует для генерации уникальных идентификаторов. Должно быть то же значение, которое возвращает gethostname().

Это идентично функции:

<?php

public static function getHostname() {
    return gethostname();
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя хоста.


Получает увеличенное значение для создания этого идентификатора

  • « MongoId::getHostname
  • MongoId::getPID »
  • PHP Manual
  • MongoId
  • Получает увеличенное значение для создания этого идентификатора

MongoId::getInc

(PECL mongo >= 1.0.11)

MongoId::getInc — Получает увеличенное значение для создания этого идентификатора

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public MongoId::getInc ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает увеличенное значение, использованное для создания этого MongoId.


Получает идентификатор процесса

  • « MongoId::getInc
  • MongoId::getTimestamp »
  • PHP Manual
  • MongoId
  • Получает идентификатор процесса

MongoId::getPID

(PECL mongo >= 1.0.11)

MongoId::getPID — Получает идентификатор процесса

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public MongoId::getPID ( void ) : int

Извлекает pid из Mongo ID

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает PID из MongoId.


Получает количество секунд с момента создания этого идентификатора

  • « MongoId::getPID
  • MongoId::isValid »
  • PHP Manual
  • MongoId
  • Получает количество секунд с момента создания этого идентификатора

MongoId::getTimestamp

(PECL mongo >= 1.0.1)

MongoId::getTimestamp — Получает количество секунд с момента создания этого идентификатора

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public MongoId::getTimestamp ( void ) : int

Возвращает то же самое, что и time() при создании идентификатора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество секунд с момента создания этого идентификатора. Хранится только четыре байта метки времени, поэтому MongoDate является лучшим выбором для хранения точного или широкого диапазона времени.


Проверяет, является ли значение корректным ObjectId

  • « MongoId::getTimestamp
  • MongoId::__set_state »
  • PHP Manual
  • MongoId
  • Проверяет, является ли значение корректным ObjectId

MongoId::isValid

(PECL mongo >= 1.5.0)

MongoId::isValid — Проверяет, является ли значение корректным ObjectId

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public static MongoId::isValid ( mixed $value ) : bool

Метод может использоваться для проверки переменной перед передачей ее в качестве аргумента в MongoId::__construct().

Список параметров

value

Значение для проверки на корректность.

Возвращаемые значения

Возвращает TRUE, если значение является экземпляром MongoId или строкой, состоящей ровно из 24 шестнадцатеричных символов; в противном случае возвращается FALSE.


Создает фиктивный MongoId

  • « MongoId::isValid
  • MongoId::__toString »
  • PHP Manual
  • MongoId
  • Создает фиктивный MongoId

MongoId::__set_state

(PECL mongo >= 1.0.8)

MongoId::__set_state — Создает фиктивный MongoId

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public static MongoId::__set_state ( array $props ) : MongoId

Функция используется только внутри PHP, ее не нужно вызывать пользователю.

Это идентично функции:

<?php

public static function __set_state($props) {
    return new MongoId("000000000000000000000000");
}

?>

Список параметров

props

Теоретически, массив свойств используется для создания нового идентификатора. Однако, поскольку экземпляры MongoId не имеют свойств, это не используется.

Возвращаемые значения

Новый идентификатор со значением "000000000000000000000000".


Возвращает шестнадцатеричное представление этого идентификатора

  • « MongoId::__set_state
  • MongoCode »
  • PHP Manual
  • MongoId
  • Возвращает шестнадцатеричное представление этого идентификатора

MongoId::__toString

(PECL mongo >= 0.8.0)

MongoId::__toString — Возвращает шестнадцатеричное представление этого идентификатора

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\ObjectId::__toString()

Описание

public MongoId::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий идентификатор.

Примеры

Пример #1 Пример использования MongoId::__toString()

<?php

$m = new MongoClient();
$collection = $m->selectDB("foo")->selectCollection("bar");

$collection->insert(array( "x" => "y" ));
$collection->insert(array( "x" => "y" ));

$cursor = $collection->find();
$r1 = $cursor->next();
$r2 = $cursor->next();

echo $r1["_id"] . "\n";
echo $r2["_id"] . "\n";

?>

Результатом выполнения данного примера будет что-то подобное:

49a7011a05c677b9a916612a
49a702d5450046d3d515d10d


Класс MongoCode

(PECL mongo >=0.8.3)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\JavaScript

Введение

Представляет код JavaScript для базы данных.

Объекты MongoCode состоят из двух частей: строки кода и необязательной области видимости. Строка кода должна быть валидным JavaScript. Область действия - это ассоциативный массив пар переменных имя/значение.

Обзор классов

MongoCode {
/* Методы */
public __construct ( string $code [, array $scope = array() ] )
public __toString ( void ) : string
}

Содержание

  • MongoCode::__construct — Создает новый объект MongoCode
  • MongoCode::__toString — Возвращает код как строку


Создает новый объект MongoCode

  • « MongoCode
  • MongoCode::__toString »
  • PHP Manual
  • MongoCode
  • Создает новый объект MongoCode

MongoCode::__construct

(PECL mongo >= 0.8.3)

MongoCode::__construct — Создает новый объект MongoCode

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\JavaScript::__construct()

Описание

public MongoCode::__construct ( string $code [, array $scope = array() ] )

Список параметров

code

Строка кода.

scope

Скоуп использования кода.

Возвращаемые значения

Возвращает новый объект MongoCode.

Примеры

Пример #1 Пример использования MongoCode::__construct()

<?php

$code = new MongoCode('function() { '.
    'for(i=0;i<10;i++) {'.
        'db.foo.update({z : i}, {z : x});'.
    '}'.
    'return x-1;'.
 '}', array("x" => 4));
var_dump($code);

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoCode)#1 (2) {
  ["scope"]=>
  array(1) {
    ["x"]=>
    int(4)
  }
  ["code"]=>
  string(80) "function() { for(i=0;i<10;i++) { db.foo.update({z : i}, {z : x}); } return x-1; }"
}

Пример #2 Использование MongoCode с $where

В данном примере запрашивается коллекция элементов, для которых поле 'x' меньше чем $y. Обратите внимание, что объекты PHP могут быть переданы в скоуп JavaScript и функция JavaScript возвращает boolean.

<?php

$cursor = $collection->find(array('$where' => new MongoCode('function() { return this.x < y; }', array('y'=>$y))));

?>


Возвращает код как строку

  • « MongoCode::__construct
  • MongoDate »
  • PHP Manual
  • MongoCode
  • Возвращает код как строку

MongoCode::__toString

(PECL mongo >= 0.8.3)

MongoCode::__toString — Возвращает код как строку

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public MongoCode::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код, указание скоупа не обязательно.

Примеры

Пример #1 Пример использования MongoCode::__toString()

<?php

$code = new MongoCode('return x;', array("x"=>"hi"));
echo "$code\n";

$code = new MongoCode('function() { for(i=0;i<10;i++) { db.foo.update({x:i}, {x:i+1}); } }');
echo "$code\n";

?>

Результатом выполнения данного примера будет что-то подобное:

return x;
function() { for(i=0;i<10;i++) { db.foo.update({x:i}, {x:i+1}); } }


Класс MongoDate

(PECL mongo >=0.8.1)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\UTCDateTime

Введение

Представляет объекты даты для базы данных. Этот класс следует использовать для сохранения дат в базе данных и для запроса дат. Например:

Пример #1 Сохранение даты с MongoDate

<?php

// сохраняем дату в базе данных
$collection->save(array("ts" => new MongoDate()));

$start = new MongoDate(strtotime("2010-01-15 00:00:00"));
$end = new MongoDate(strtotime("2010-01-30 00:00:00"));

// находим даты между 1/15/2010 и 1/30/2010
$collection->find(array("ts" => array('$gt' => $start, '$lte' => $end)));

?>

MongoDB хранит даты в миллисекундах после эпохи Unix (Unix-время). Это значит, что даты не содержат информацию о часовом поясе. Часовые пояса должны храниться в отдельном поле, если это необходимо. Во-вторых, это означает, что любая точность, превышающая миллисекунды, будет потеряна при отправке документа в/из базы данных.

Обзор классов

MongoDate {
/* Поля */
public int $sec ;
public int $usec ;
/* Методы */
public __construct ([ int $sec = time() [, int $usec = 0 ]] )
public toDateTime ( void ) : DateTime
public __toString ( void ) : string
}

Содержание

  • MongoDate::__construct — Создает новую дату
  • MongoDate::toDateTime — Возвращает объект DateTime, представляющий дату
  • MongoDate::__toString — Возвращает строковое представление даты


Создает новую дату

  • « MongoDate
  • MongoDate::toDateTime »
  • PHP Manual
  • MongoDate
  • Создает новую дату

MongoDate::__construct

(PECL mongo >= 0.8.1)

MongoDate::__construct — Создает новую дату

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\UTCDateTime::__construct()

Описание

public MongoDate::__construct ([ int $sec = time() [, int $usec = 0 ]] )

Создает новую дату. Если параметры не указаны, используется текущее время.

Список параметров

sec

Количество секунд с начала Unix-эпохи (т.е. 1 января 1970 00:00:00.000 UTC).

usec

Микросекунды. Обратите внимание, что разрешение MongoDB составляет миллисекунды, а не микросекунды, поэтому значение будет усечено до миллисекундного разрешения.

Возвращаемые значения

Возвращает новую дату.

Примеры

Пример #1 Пример использования MongoDate::__construct()

Этот пример демонстрирует создание новой даты с текущим временем и новой даты с заданным временем.

<?php

$d = new MongoDate();
echo "$d\n";
$d = new MongoDate(1234567890);
echo "$d\n";
$d = new MongoDate(strtotime("2009-05-01 00:00:01"));
echo "$d\n";

?>

Результатом выполнения данного примера будет что-то подобное:

0.23660600 1235685067
0.00000000 1234567890
0.00000000 1241150401

Смотрите также

  • MongoDate::__toString() - Возвращает строковое представление даты


Возвращает объект DateTime, представляющий дату

  • « MongoDate::__construct
  • MongoDate::__toString »
  • PHP Manual
  • MongoDate
  • Возвращает объект DateTime, представляющий дату

MongoDate::toDateTime

(PECL mongo >= 1.6.0)

MongoDate::toDateTime — Возвращает объект DateTime, представляющий дату

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\UTCDateTime::toDateTime()

Описание

public MongoDate::toDateTime ( void ) : DateTime

Возвращает представление даты DateTime. Возвращенный DateTime будет использовать часовой пояс UTC.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Дата, в виде объекта DateTime.

Примеры

Пример #1 Пример использования MongoDate::toDateTime()

В этом примере показано создание объекта DateTime из объекта MongoDate.

<?php
$d = new MongoDate(strtotime("2014-11-18 11:01:25"));
var_dump( $d->toDateTime() );
?>

Результатом выполнения данного примера будет что-то подобное:

class DateTime#2 (3) {
  public $date =>
  string(26) "2014-11-18 11:01:25.000000"
  public $timezone_type =>
  int(1)
  public $timezone =>
  string(6) "+00:00"
}


Возвращает строковое представление даты

  • « MongoDate::toDateTime
  • MongoRegex »
  • PHP Manual
  • MongoDate
  • Возвращает строковое представление даты

MongoDate::__toString

(PECL mongo >= 0.8.1)

MongoDate::__toString — Возвращает строковое представление даты

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\UTCDateTime::__toString()

Описание

public MongoDate::__toString ( void ) : string

Возвращает строковое представление даты, аналогичное представлению, возвращаемому функцией microtime().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строковое представление даты.


Класс MongoRegex

(PECL mongo >=0.8.1)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Regex

Введение

Класс можно использовать для создания регулярных выражений. Как правило, эти выражения будут использоваться для запроса к базе данных и поиска подходящих строк. Более необычно, когда они могут быть сохранены в базу данных и восстановлены.

Регулярные выражения состоят из четырех частей. Сначала / в качестве начального разделителя, затем шаблон, другой / и, наконец, строка, содержащая флаги.

Пример #1 Шаблон регулярного выражения

/pattern/flags

MongoDB распознает шесть флагов регулярных выражений:

  • i: Без учета регистра

  • m: Многострочный

  • x: Может содержать комментарии

  • l: Локаль

  • s: Точка, "." соответствует всему, включая переводы строк

  • u: Соответствует юникоду

Обзор классов

MongoRegex {
/* Поля */
public string $regex ;
public string $flags ;
/* Методы */
public __construct ( string $regex )
public __toString ( void ) : string
}

Содержание

  • MongoRegex::__construct — Создает новое регулярное выражение
  • MongoRegex::__toString — Возвращает строковое представление регулярного выражения


Создает новое регулярное выражение

  • « MongoRegex
  • MongoRegex::__toString »
  • PHP Manual
  • MongoRegex
  • Создает новое регулярное выражение

MongoRegex::__construct

(PECL mongo >= 0.8.1)

MongoRegex::__construct — Создает новое регулярное выражение

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Regex::__construct()

Описание

public MongoRegex::__construct ( string $regex )

Создает новое регулярное выражение.

Список параметров

regex

Строка регулярного выражения в формате /expr/flags.

Возвращаемые значения

Возвращает новое регулярное выражение.

Примеры

Пример #1 Пример использования MongoRegex::__construct()

В этом примере используется регулярное выражение для запроса всех документов с полем имени пользователя, начинающимся (^) с l и гласным ([aeiouy]), без учета регистра (/i).

<?php
$luke_search = new MongoRegex("/^l[aeiouy]/i");
$cursor = $collection->find(array("username" => $luke_search));
?>

Смотрите также

  • MongoRegex::__toString() - Возвращает строковое представление регулярного выражения


Возвращает строковое представление регулярного выражения

  • « MongoRegex::__construct
  • MongoBinData »
  • PHP Manual
  • MongoRegex
  • Возвращает строковое представление регулярного выражения

MongoRegex::__toString

(PECL mongo >= 0.8.1)

MongoRegex::__toString — Возвращает строковое представление регулярного выражения

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Regex::__toString()

Описание

public MongoRegex::__toString ( void ) : string

Возвращает строковое представление регулярного выражения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Регулярное выражение в виде "/expr/flags".

Примеры

Пример #1 Пример использования MongoRegex::__toString()

<?php

$r = new MongoRegex( "/[a-fA-F0-9]{16}/g" );
echo $r->regex . "\n";
echo $r->flags . "\n";
echo "$r\n";

?>

Результатом выполнения данного примера будет что-то подобное:

[a-fA-F0-9]{16}
g
/[a-fA-F0-9]{16}/g


Класс MongoBinData

(PECL mongo >= 0.8.1)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Binary

Введение

Объект, который может использоваться для хранения или получения бинарных данных из базы данных.

Максимальный размер одного документа, вставляемого в базу данных составляет 16 МБ. Для данных превышающих этот размер (видео, аудио, автобиографии Генри Киссенджера) используйте MongoGridFS. Данные менее 16МБ, возможно, будет лучше вставлять непосредственно в документ, используя MongoBinData.

Например, для вставки изображения в документ, можно написать:

<?php

$profile = array(
    "username" => "foobity",
    "pic" => new MongoBinData(file_get_contents("gravatar.jpg"), MongoBinData::GENERIC),
);

$users->save($profile);

?>

Данный класс содержит поле type, который на данный момент не предоствляют дополнительной функциональности в базе данных или драйвере PHP. Существует семь предопределенных типов, которые являются константами класса и описаны ниже. Для обратной совместимости, драйвер PHP по умолчанию использует тип MongoBinData::BYTE_ARRAY; однако, в будущем, его могут поменять на MongoBinData::GENERIC. Пользователи поощряются указывать тип в конструкторе MongoBinData::__construct().

Обзор классов

MongoBinData {
/* Константы */
const int GENERIC = 0 ;
const int FUNC = 1 ;
const int BYTE_ARRAY = 2 ;
const int UUID = 3 ;
const int UUID_RFC4122 = 4 ;
const int MD5 = 5 ;
const int CUSTOM = 128 ;
/* Fields */
public string $bin ;
public int $type = 2 ;
/* Методы */
public __construct ( string $data [, int $type = 0 ] )
public __toString ( void ) : string
}

Предопределенные константы

Типы бинарных данных

MongoBinData::GENERIC
Двоичные данные общего назначения.
MongoBinData::FUNC
Функция.
MongoBinData::BYTE_ARRAY
Двоичные данные общего назначения. (Объявлен устаревшим в пользу MongoBinData::GENERIC).
MongoBinData::UUID
Универсальный уникальный идентификатор. (Объявлен устаревшим в пользу MongoBinData::UUID_RFC4122).
MongoBinData::UUID_RFC4122
Универсальный уникальный идентификатор (в соответствии с » RFC 4122).
MongoBinData::MD5
MD5.
MongoBinData::CUSTOM
Определенный пользователем тип.

Список изменений

Версия | Описание
1.5.0 | Добавлены константы MongoBinData::GENERIC и MongoBinData::UUID_RFC4122.

Содержание

  • MongoBinData::__construct — Создает новый двоичный объект данных
  • MongoBinData::__toString — Строковое представление этого двоичного объекта данных


Создает новый двоичный объект данных

  • « MongoBinData
  • MongoBinData::__toString »
  • PHP Manual
  • MongoBinData
  • Создает новый двоичный объект данных

MongoBinData::__construct

(PECL mongo >= 0.8.1)

MongoBinData::__construct — Создает новый двоичный объект данных

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Binary::__construct()

Описание

public MongoBinData::__construct ( string $data [, int $type = 0 ] )

Создает новый двоичный объект данных.

Существует семь типов двоичных данных, в настоящее время распознаваемых спецификацией BSON, которые определены как константы класса. Для обратной совместимости драйвер PHP использует MongoBinData::BYTE_ARRAY по умолчанию; однако, это может быть изменено на MongoBinData::GENERIC в будущем. Рекомендуется указывать тип, а не полагаться на значение по умолчанию.

Список параметров

data

Двоичные данные.

type

Тип данных.

Возвращаемые значения

Возвращает новый двоичный объект данных.

Список изменений

Версия | Описание
1.5.0 | Значение по умолчанию изменено с 2 (MongoBinData::BYTE_ARRAY) на 0 (MongoBinData::GENERIC).
1.2.11 | Выдает E_DEPRECATED, когда второй аргумент не используется. Значение type по умолчанию может измениться в ближайшем будущем.


Строковое представление этого двоичного объекта данных

  • « MongoBinData::__construct
  • MongoInt32 »
  • PHP Manual
  • MongoBinData
  • Строковое представление этого двоичного объекта данных

MongoBinData::__toString

(PECL mongo >= 0.8.1)

MongoBinData::__toString — Строковое представление этого двоичного объекта данных

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Binary::getData()

Описание

public MongoBinData::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку "<Mongo Binary Data>". Чтобы получить доступ к содержимому MongoBinData, используйте поле bin.


Класс MongoInt32

(PECL mongo >=1.0.9)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Вместо этого новое расширение выбирает соответствующий тип базы данных в зависимости от значения целого числа.

Введение

Класс можно использовать для сохранения 32-разрядных целых чисел в базе данных в 64-разрядной системе.

Обзор классов

MongoInt32 {
/* Поля */
public string $value ;
/* Методы */
public __construct ( string $value )
public __toString ( void ) : string
}

Поля

value
Строковое значение 32-битного числа. Например, значение 123 будет "123".

Содержание

  • MongoInt32::__construct — Создает новое 32-битное целочисленное (integer)
  • MongoInt32::__toString — Возвращает строковое представление 32-битного целочисленного


Создает новое 32-битное целочисленное (integer)

  • « MongoInt32
  • MongoInt32::__toString »
  • PHP Manual
  • MongoInt32
  • Создает новое 32-битное целочисленное (integer)

MongoInt32::__construct

(PECL mongo >= 1.0.9)

MongoInt32::__construct — Создает новое 32-битное целочисленное (integer)

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Вместо этого новое расширение выбирает подходящий тип базы данных в зависимости от целочисленного значения.

Описание

public MongoInt32::__construct ( string $value )

Создает новое 32-битное целочисленное с заданным значением.

Список параметров

value

Число.

Возвращаемые значения

Новое 32-битное целочисленное с заданным значением.


Возвращает строковое представление 32-битного целочисленного

  • « MongoInt32::__construct
  • MongoInt64 »
  • PHP Manual
  • MongoInt32
  • Возвращает строковое представление 32-битного целочисленного

MongoInt32::__toString

(PECL mongo >= 1.0.9)

MongoInt32::__toString — Возвращает строковое представление 32-битного целочисленного

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Вместо этого новое расширение выбирает подходящий тип базы данных в зависимости от целочисленного значения.

Описание

public MongoInt32::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление 32-битного целочисленного.


Класс MongoInt64

(PECL mongo >=1.0.9)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Вместо этого новое расширение выбирает соответствующий тип базы данных в зависимости от значения целого числа.

Введение

Класс можно использовать для сохранения 64-разрядных целых чисел в базе данных в 32-разрядной системе.

Обзор классов

MongoInt64 {
/* Поля */
public string $value ;
/* Методы */
public __construct ( string $value )
public __toString ( void ) : string
}

Поля

value
Строковое значение 32-битного числа. Например, значение 123 будет "123".

Содержание

  • MongoInt64::__construct — Создает новое 64-битное целочисленное (integer)
  • MongoInt64::__toString — Возвращает строковое представление 64-битного целочисленного


Создает новое 64-битное целочисленное (integer)

  • « MongoInt64
  • MongoInt64::__toString »
  • PHP Manual
  • MongoInt64
  • Создает новое 64-битное целочисленное (integer)

MongoInt64::__construct

(PECL mongo >= 1.0.9)

MongoInt64::__construct — Создает новое 64-битное целочисленное (integer)

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Вместо этого новое расширение выбирает подходящий тип базы данных в зависимости от целочисленного значения.

Описание

public MongoInt64::__construct ( string $value )

Создает новое 64-битное целочисленное с заданным значением.

Список параметров

value

Число.

Возвращаемые значения

Новое 64-битное целочисленное с заданным значением.


Возвращает строковое представление 64-битного целочисленного

  • « MongoInt64::__construct
  • MongoDBRef »
  • PHP Manual
  • MongoInt64
  • Возвращает строковое представление 64-битного целочисленного

MongoInt64::__toString

(PECL mongo >= 1.0.9)

MongoInt64::__toString — Возвращает строковое представление 64-битного целочисленного

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Вместо этого новое расширение выбирает подходящий тип базы данных в зависимости от целочисленного значения.

Описание

public MongoInt64::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление 64-битного целочисленного.


Класс MongoDBRef

(PECL mongo >=0.9.0)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Концепция ссылок на базу данных, а следовательно и данный класс, являются устаревшими.

Введение

Этот класс может быть использован для создания простых связей между объектами разных коллекций.

Основание: Предположим, что нам нужно сослаться на документ из другой коллекции. Самый простой способ - создать специальное поле в текущем документе. Например, если у нас есть коллекции людей и адресов, мы можем создать связь между документом адреса и документом человека:

Пример #1 Связывание документов

<?php

$people = $db->people;
$addresses = $db->addresses;

$myAddress = array("line 1" => "123 Main Street",
    "line 2" => null,
    "city" => "Springfield",
    "state" => "Vermont",
    "country" => "USA");

// сохраняем адрес
$addresses->insert($myAddress);

// сохраняем человека со ссылкой на адрес
$me = array("name" => "Fred", "address" => $myAddress['_id']);
$people->insert($me);

?>

Позже мы можем найти адрес человека с помощью запроса в коллекцию адресов с использованием MongoId который мы сохранили в коллекции людей.

Теперь предположим, что мы имеем более общий случай, когда не известно какая коллекция (или даже база данных) содержит указанный документ. MongoDBRef является хорошим выбором в такой ситуации, так как это общий формат, который понимают все драйверы и базы данных.

Если каждый человек имеет список понравившихся вещей и все они находятся в разных коллекциях, таких как: "hobbies", "sports", "books", и т.д., мы можем использовать MongoDBRef для отслеживания того, что и из какой коллекции "лайкнул" человек:

Пример #2 Создание MongoDBRef связи

<?php

$people = $db->selectCollection("people");

// модель поезда в коллекции "hobbies"
$trainRef = MongoDBRef::create("hobbies", $modelTrains['_id']);
// футбол в "sports" коллекции
$soccerRef = MongoDBRef::create("sports", $soccer['_id']);

//теперь мы знаем, какие коллекции элементов в массиве "likes" придут, когда
// мы будем извлекать этот документ
$people->insert(array("name" => "Fred", "likes" => array($trainRef, $soccerRef)));

?>

Ссылки в базе данных можно рассматривать как гиперссылки: он предоставляет уникальный адрес другого документа, но не загружает его автоматически и не переходит по этим ссылкам.

Ссылки в базе данных это обычный ассоциативный массив, не экземплр MongoDBRef, поэтому этот класс немного оличается от других классов типов данных. Этот класс содержит только ститические методы для манипуляции ссылками базы данных.

Обзор классов

MongoDBRef {
/* Методы */
public static create ( string $collection , mixed $id [, string $database ] ) : array
public static get ( MongoDB $db , array $ref ) : array
public static isRef ( mixed $ref ) : bool
}

Смотрите также

Базовая документация на MongoDB лежит тут » databases references.

Содержание

  • MongoDBRef::create — Создает новую ссылку в базе данных
  • MongoDBRef::get — Извлекает объект, на который указывает ссылка
  • MongoDBRef::isRef — Проверяет, что массив является ссылкой


Создает новую ссылку в базе данных

  • « MongoDBRef
  • MongoDBRef::get »
  • PHP Manual
  • MongoDBRef
  • Создает новую ссылку в базе данных

MongoDBRef::create

(PECL mongo >= 0.9.0)

MongoDBRef::create — Создает новую ссылку в базе данных

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Концепция ссылок на базу данных, а следовательно и данный класс, являются устаревшими.

Описание

public static MongoDBRef::create ( string $collection , mixed $id [, string $database ] ) : array

Если база данных не задана, будет использоваться текущая.

Список параметров

collection

Имя коллекции (без имени базы данных).

id

Поле _id связываемого объекта.

database

Название базы данных.

Возвращаемые значения

Возвращает ссылку.

Примеры

Пример #1 Пример MongoDBRef::create()

Здесь создается ссылка базы данных на документ из коллекции addresses. MongoCollection::getName() функция возвращает имя коллекции (без имени базы данных).

<?php
$addresses = $db->addresses;
$people = $db->people;

//сохраняем $address в который будет добавлен _id
$addresses->insert($address);

// создаем ссылку
$ref = MongoDBRef::create($addresses->getName(), $address['_id']);

// добавляем ее как поле в $person
$person['address'] = $ref;
$people->save($person);
?>

Смотрите также

  • MongoDB::createDBRef() - Создает ссылку на базу данных
  • MongoCollection::createDBRef() - Создает ссылку на базу данных


Извлекает объект, на который указывает ссылка

  • « MongoDBRef::create
  • MongoDBRef::isRef »
  • PHP Manual
  • MongoDBRef
  • Извлекает объект, на который указывает ссылка

MongoDBRef::get

(PECL mongo >= 0.9.0)

MongoDBRef::get — Извлекает объект, на который указывает ссылка

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Концепция ссылок на базу данных, а следовательно и данный класс, являются устаревшими.

Описание

public static MongoDBRef::get ( MongoDB $db , array $ref ) : array

Список параметров

db

База данных для использования.

ref

Ссылка для выборки.

Возвращаемые значения

Возвращает документ, на который есть ссылка или NULL если этот документ не существует (битая ссылка).

Примеры

Пример #1 MongoCollection::createDBRef() пример

<?php

// получаем данные $person из бд
$person = $people->findOne();

// разыменовываем адрес
$address = MongoDBRef::get($people->db, $person['address']);

?>

Смотрите также

  • MongoDB::getDBRef() - Выбирает документ, указанный в ссылке на базу данных
  • MongoCollection::getDBRef() - Выбирает документ базы данных на который указывает ссылка


Проверяет, что массив является ссылкой

  • « MongoDBRef::get
  • MongoMinKey »
  • PHP Manual
  • MongoDBRef
  • Проверяет, что массив является ссылкой

MongoDBRef::isRef

(PECL mongo >= 0.9.0)

MongoDBRef::isRef — Проверяет, что массив является ссылкой

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Концепция ссылок на базу данных, а следовательно и данный класс, являются устаревшими.

Описание

public static MongoDBRef::isRef ( mixed $ref ) : bool

Этот метод фактически не переходит по ссылке, поэтому он не может определить является ли ссылка "битой". Он просто проверяет, что ref это правильная ссылка в нужном формате (что это объект или массив с $ref and $id полями).

Список параметров

ref

Массив или объект для проверки

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Класс MongoMinKey

(PECL mongo >= 1.0.2)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\MinKey

Введение

MongoMinKey - это специальный тип, используемый базой данных, который при сравнении меньше всех других возможных значений BSON. Таким образом, если запрос отсортирован по заданному полю в порядке возрастания, любой документ с MongoMinKey в качестве значения будет возвращен первым.

MongoMinKey не имеет связанных полей, методов или констант. Это просто "наименьшее" значение, которое может быть представлено в базе данных.

Замечание: MongoMinKey используется MongoDB для индексирования и разделения. Как правило, нет причин использовать этот класс в приложении.

Обзор классов

MongoMinKey {
}

Использование MongoMinKey в качестве значения

<?php

$collection->insert(array("task" => "lunch", "doBy" => new MongoMinKey));
$collection->insert(array("task" => "staff meeting", "doBy" => new MongoDate(strtotime("+4 days"))));

$cursor = $collection->find()->sort(array("doBy" => 1));

?>

Курсор вернет документ обеда, за которым следует документ совещания персонала. Документ обеда всегда будет возвращен первым, независимо от того, что еще добавлено в коллекцию (если другие документы не добавлены с MongoMinKey в их поле "doBy").

Смотрите также

  • MongoMaxKey


Класс MongoMaxKey

(PECL mongo >= 1.0.2)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\MaxKey

Введение

MongoMaxKey - это специальный тип, используемый базой данных, который при сравнении больше, чем все другие возможные значения BSON. Таким образом, если запрос отсортирован по заданному полю в порядке возрастания, любой документ с MongoMaxKey в качестве значения будет возвращен последним.

MongoMaxKey не имеет связанных полей, методов или констант. Это просто "наибольшее" значение, которое может быть представлено в базе данных.

Замечание: MongoMaxKey используется MongoDB для индексирования и разделения. Как правило, нет причин использовать этот класс в приложении.

Обзор классов

MongoMaxKey {
}

Использование MongoMaxKey в качестве значения

<?php

$collection->insert(array("task" => "dishes", "doBy" => new MongoMaxKey));
$collection->insert(array("task" => "staff meeting", "doBy" => new MongoDate(strtotime("+4 days"))));

$cursor = $collection->find()->sort(array("doBy" => 1));

?>

Курсор вернет документ встречи сотрудников, а затем документ блюд. Документ блюда всегда будет возвращаться последним, независимо от того, что еще добавлено в коллекцию (если другие документы не добавлены с помощью MongoMaxKey в их поле "doBy").

Смотрите также

  • MongoMinKey


Класс MongoTimestamp

(PECL mongo >=1.0.1)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Timestamp

Введение

MongoTimestamp - это внутренний тип, используемый MongoDB для репликации и разделения. Он состоит из 4-байтовой метки времени (то есть секунды с начала Unix-эпохи) и 4-байтового увеличения. Этот тип не предназначен для хранения значений времени или даты (например, поля "madeAt" в документе).

Замечание: Если вы не пишете приложение, которое взаимодействует с журналом репликации MongoDB или разделяет внутренние ресурсы: остановитесь, перейдите непосредственно к MongoDate. Этот класс вам не нужен.

Обзор классов

MongoTimestamp {
/* Fields */
public int $sec = 0 ;
public int $inc = 0 ;
/* Методы */
public __construct ([ int $sec = time() [, int $inc ]] )
public __toString ( void ) : string
}

Содержание

  • MongoTimestamp::__construct — Создает новую временную метку (timestamp)
  • MongoTimestamp::__toString — Возвращает текстовое представление временной метки


Создает новую временную метку (timestamp)

  • « MongoTimestamp
  • MongoTimestamp::__toString »
  • PHP Manual
  • MongoTimestamp
  • Создает новую временную метку (timestamp)

MongoTimestamp::__construct

(PECL mongo >= 1.0.1)

MongoTimestamp::__construct — Создает новую временную метку (timestamp)

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Timestamp::__construct()

Описание

public MongoTimestamp::__construct ([ int $sec = time() [, int $inc ]] )

Создает новую временную метку. Если параметры не заданы, то будет использовано текущее время, а инкремент выбран автоматически. Инкремент устанавливается равным нулю на момент загрузки модуля и увеличивается с каждым вызовом конструктора без передачи в него параметра $inc.

Список параметров

sec

количество секунд с начала эпохи UNIX (т.е. 1 января 1970 00:00:00.000 UTC).

inc

Инкремент.

Возвращаемые значения

Возвращает новую временную метку.

Смотрите также

  • MongoTimestamp::__toString() - Возвращает текстовое представление временной метки


Возвращает текстовое представление временной метки

  • « MongoTimestamp::__construct
  • Классы GridFS »
  • PHP Manual
  • MongoTimestamp
  • Возвращает текстовое представление временной метки

MongoTimestamp::__toString

(PECL mongo >= 1.0.1)

MongoTimestamp::__toString — Возвращает текстовое представление временной метки

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Timestamp::__toString()

Описание

public MongoTimestamp::__toString ( void ) : string

Возвращает полн "sec" этой временной метки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество секунд с начала эпохи UNIX.


  • « MongoTimestamp::__toString
  • MongoGridFS »
  • PHP Manual
  • Mongo
  • Классы GridFS

Классы GridFS

Содержание

  • MongoGridFS
  • MongoGridFSFile
  • MongoGridFSCursor


Класс MongoGridFS

(PECL mongo >=0.9.0)

Введение

Утилиты для хранения и извлечения файлов из базы данных.

GridFS - это спецификация хранилища, с которой работают все поддерживаемые драйверы. По сути, она определяет две коллекции: files для метаданных файла и chunks содержимого файла. Если файл большой, он будет автоматически разбит на мелкие фрагменты, и каждый фрагмент будет сохранен как документ в коллекции фрагментов.

Каждый документ в коллекции файлов содержит имя файла, дату загрузки и хэш md5. Он также содержит уникальное поле _id, которое можно использовать для запроса к коллекции фрагментов содержимого файла. Каждый документ в коллекции чанков содержит фрагмент двоичных данных, поле files_id, совпадающее с _id его файла, и положение этого фрагмента в общем файле.

Например, документы файлов выглядят примерно так:

<?php
array("_id" => 123456789, "filename" => "foo.txt", "chunkSize" => 3, "length" => 12);
?>
а фрагменты документов выглядят так:
<?php
array("files_id" => 123456789, "n" => 0, "data" => new MongoBinData("abc"));
array("files_id" => 123456789, "n" => 1, "data" => new MongoBinData("def"));
array("files_id" => 123456789, "n" => 2, "data" => new MongoBinData("ghi"));
array("files_id" => 123456789, "n" => 3, "data" => new MongoBinData("jkl"));
?>
Конечно, размер фрагмента по умолчанию составляет тысячи байтов, но это громоздкий пример.

Межязыковая совместимость

Должна быть возможность использовать любые файлы, созданные MongoGridFS с любыми другими драйверами, и наоборот. Однако некоторые драйверы ожидают, что все метаданные, связанные с файлом, будут в поле "metadata". Если вы собираетесь использовать другие языки, хорошей идеей будет поместить информацию, которую вы хотите, чтобы они видели в поле "metadata". Например, вместо:

<?php

$grid->storeFile("somefile.txt", array("date" => new MongoDate()));

?>

сделать так:

<?php

$grid->storeFile("somefile.txt", array("metadata" => array("date" => new MongoDate())));

?>

Семейство MongoGridFS

MongoGridFS представляет коллекции файлов и фрагментов. MongoGridFS расширяет MongoCollection, и экземпляр MongoGridFS имеет доступ ко всем методам MongoCollection, которые действуют на коллекцию файлов:

<?php

$grid = $db->getGridFS();
$grid->update(array("filename" => "foo"), $newObj); // обновление коллекции файлов

?>

Еще один пример манипулирования метаданными:

<?php

// сохраняем файл
$id = $grid->storeFile("game.tgz");
$game = $grid->findOne();

// добавляем счетчик загрузок
$game->file['downloads'] = 0;
$grid->save($game->file);

// увеличиваем значение счетчика
$grid->update(array("_id" => $id), array('$inc' => array("downloads" => 1)));

?>

Вы также можете получить доступ к коллекции фрагментов из экземпляра MongoGridFS:

<?php

  $chunks = $grid->chunks; // $chunks - обычная коллекция MongoCollection
$chunks->insert(array("x" => 4));

?>

Есть некоторые методы для MongoGridFS с тем же именем, что и методы MongoCollection, которые ведут себя немного по-другому. Например, MongoGridFS::remove() удалит все объекты, которые соответствуют критериям, из коллекции файлов, а их содержимое - из коллекции фрагментов.

Чтобы сохранить что-то новое в GridFS, есть несколько вариантов. Если у вас есть имя файла, вы можете выполнить:

<?php

$grid->storeFile($filename, array("whatever" => "metadata", "you" => "want"));

?>

Если у вас есть строка байтов, которая не является файлом, вы также можете сохранить ее, используя MongoGridFS::storeBytes():

<?php

$grid->storeBytes($bytes, array("whatever" => "metadata", "you" => "want"));

?>

Запрос к коллекции MongoGridFS возвращает MongoGridFSCursor, который ведет себя, как обычный MongoCursor, за исключением того, что он возвращает MongoGridFSFiles вместо ассоциативных массивов.

MongoGridFSFiles могут быть записаны обратно на диск с помощью MongoGridFSFile::write() или извлечены в память с помощью MongoGridFSFile::getBytes(). В настоящее время не существует метода для автоматической потоковой передачи фрагментов, но его было бы довольно просто написать, обратившись к коллекции $grid->chunks.

Объекты MongoGridFSFile содержат поля файла, которые могут содержая любые метаданные.

Обзор классов

extends MongoCollection {
/* Поля */
public MongoCollection $chunks = NULL ;
protected string $filesName = NULL ;
protected string $chunksName = NULL ;
/* Методы */
public __construct ( MongoDB $db [, string $prefix = "fs" [, mixed $chunks = "fs" ]] )
public delete ( mixed $id ) : bool|array
public drop ( void ) : array
public find ([ array $query = array() [, array $fields = array() ]] ) : MongoGridFSCursor
public findOne ([ mixed $query = array() [, mixed $fields = array() ]] ) : MongoGridFSFile
public get ( mixed $id ) : MongoGridFSFile
public put ( string $filename [, array $metadata = array() [, array $options = array() ]] ) : mixed
public remove ([ array $criteria = array() [, array $options = array() ]] ) : bool|array
public storeBytes ( string $bytes [, array $metadata = array() [, array $options = array() ]] ) : mixed
public storeFile ( string|resource $filename [, array $metadata = array() [, array $options = array() ]] ) : mixed
public storeUpload ( string $name [, array $metadata ] ) : mixed
}

Смотрите также

  • Документация MongoDB по » GridFS
  • Статья в блоге LightCube Solutions про » сохранение пользовательских файлов
  • Статья в блоге LightCube Solutions про » добавление метаданных к файлам

Содержание

  • MongoGridFS::__construct — Создает новые коллекции файлов
  • MongoGridFS::delete — Удаляет файл и его фрагменты из базы данных
  • MongoGridFS::drop — Удаляет файлы и коллекции фрагментов
  • MongoGridFS::find — Запросы к файлам
  • MongoGridFS::findOne — Возвращает один файл, соответствующий критериям
  • MongoGridFS::get — Получает файл из базы данных
  • MongoGridFS::put — Сохраняет файл в базе данных
  • MongoGridFS::remove — Удаляет файлы и их фрагменты из базы данных
  • MongoGridFS::storeBytes — Сохраняет строку байтов в базе данных
  • MongoGridFS::storeFile — Сохраняет файл в базе данных
  • MongoGridFS::storeUpload — Сохраняет загруженный файл в базе данных


Создает новые коллекции файлов

  • « MongoGridFS
  • MongoGridFS::delete »
  • PHP Manual
  • MongoGridFS
  • Создает новые коллекции файлов

MongoGridFS::__construct

(PECL mongo >=0.9.0)

MongoGridFS::__construct — Создает новые коллекции файлов

Описание

public MongoGridFS::__construct ( MongoDB $db [, string $prefix = "fs" [, mixed $chunks = "fs" ]] )

Файлы хранятся в двух коллекциях: первая содержит метаинформацию файла, вторая содержит фрагменты фактического файла. По умолчанию fs.files и fs.chunks являются именами коллекций.

Используйте один аргумент для указания префикса, отличного от "fs":

$fs = new MongoGridFS($db, "myfiles");
использует коллекции myfiles.files и myfiles.chunks.

Список параметров

db

База данных.

files

Необязательный префикс имени коллекции.


Удаляет файл и его фрагменты из базы данных

  • « MongoGridFS::__construct
  • MongoGridFS::drop »
  • PHP Manual
  • MongoGridFS
  • Удаляет файл и его фрагменты из базы данных

MongoGridFS::delete

(PECL mongo >=1.0.8)

MongoGridFS::delete — Удаляет файл и его фрагменты из базы данных

Описание

public MongoGridFS::delete ( mixed $id ) : bool|array

Замечание:

MongoGridFS::delete() - это удобный метод для вызова MongoGridFS::remove() с определенными критериями и параметрами параметров по умолчанию.

Список параметров

id

_id файла для удаления.

Возвращаемые значения

Возвращает массив, содержащий состояние удаления (относительно коллекции files), если применяются гарантии записи. В противном случае возвращает TRUE.

Поля в массиве статуса описаны в документации к MongoCollection::insert().

Ошибки

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.


Удаляет файлы и коллекции фрагментов

  • « MongoGridFS::delete
  • MongoGridFS::find »
  • PHP Manual
  • MongoGridFS
  • Удаляет файлы и коллекции фрагментов

MongoGridFS::drop

(PECL mongo >=0.9.0)

MongoGridFS::drop — Удаляет файлы и коллекции фрагментов

Описание

public MongoGridFS::drop ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ответ базы данных.


Запросы к файлам

  • « MongoGridFS::drop
  • MongoGridFS::findOne »
  • PHP Manual
  • MongoGridFS
  • Запросы к файлам

MongoGridFS::find

(PECL mongo >=0.9.0)

MongoGridFS::find — Запросы к файлам

Описание

 public MongoGridFS::find
  ([ array $query = array()
 [, array $fields = array()
]] ) : MongoGridFSCursor

Список параметров

query

Запрос.

fields

Возвращаемые поля.

Возвращаемые значения

Возвращает MongoGridFSCursor.


Возвращает один файл, соответствующий критериям

  • « MongoGridFS::find
  • MongoGridFS::get »
  • PHP Manual
  • MongoGridFS
  • Возвращает один файл, соответствующий критериям

MongoGridFS::findOne

(PECL mongo >=0.9.0)

MongoGridFS::findOne — Возвращает один файл, соответствующий критериям

Описание

 public MongoGridFS::findOne
  ([ mixed $query = array()
 [, mixed $fields = array()
]] ) : MongoGridFSFile

Список параметров

query

Имя файла или критерии для поиска.

Возвращаемые значения

Возвращает MongoGridFSFile или NULL.

Примеры

Пример #1 Пример использования MongoGridFS::findOne()

Пример, демонстрирующий, как найти один файл из MongoGridFS.

<?php

$downloads = $mongo->my_db->getGridFS('downloads');

$downloads->storeFile('filename.tgz');

$download = $downloads->findOne('filename.tgz'); // экземпляр MongoGridFSFile

print_r($download);
?>

Смотрите MongoGridFSFile для получения дополнительной информации о том, как работать с файлами.

Результатом выполнения данного примера будет что-то подобное:

MongoGridFSFile Object
(
    [file] => Array
        (
            [_id] => MongoId Object
                (
                )

            [filename] => filename.tgz
            [uploadDate] => MongoDate Object
                (
                    [sec] => 1274288014
                    [usec] => 467000
                )

            [chunkSize] => 262144
            [md5] => d41d8cd98f00b204e9800998ecf8427e
        )

    [gridfs:protected] => MongoGridFS Object
        (
            [chunks] => MongoCollection Object
                (
                )

            [filesName:protected] => downloads.files
            [chunksName:protected] => downloads.chunks
        )

)


Получает файл из базы данных

  • « MongoGridFS::findOne
  • MongoGridFS::put »
  • PHP Manual
  • MongoGridFS
  • Получает файл из базы данных

MongoGridFS::get

(PECL mongo >=1.0.8)

MongoGridFS::get — Получает файл из базы данных

Описание

public MongoGridFS::get ( mixed $id ) : MongoGridFSFile

Список параметров

id

_id файла для поиска.

Возвращаемые значения

Возвращает файл, если найден, или NULL.


Сохраняет файл в базе данных

  • « MongoGridFS::get
  • MongoGridFS::remove »
  • PHP Manual
  • MongoGridFS
  • Сохраняет файл в базе данных

MongoGridFS::put

(PECL mongo >=1.0.8)

MongoGridFS::put — Сохраняет файл в базе данных

Описание

public MongoGridFS::put ( string $filename [, array $metadata = array() [, array $options = array() ]] ) : mixed

Замечание:

MongoGridFS::put() является псевдонимом MongoGridFS::storeFile().

Список параметров

filename

Имя файла для сохранения.

metadata

Другие поля метаданных для включения в файл документа.

Замечание:

Данные поля могут перезаписать поля, автоматически созданные драйвером, как указано в основной документации MongoDB » коллекции файлов. В качестве практического применения данного поведения можно указать собственный chunkSize или _id для файла.

options

Массив опций для операций вставки, выполняемых для коллекций chunks и files. Смотрите MongoCollection::insert() для документации по этим параметрам.

Возвращаемые значения

Возвращает _id сохраненного документа. Это будет сгенерированный MongoId, за исключением случая, когда _id был явно указан в параметре metadata.

Ошибки

Выдает исключение MongoGridFSException, если при чтении filename или вставке в коллекции chunks или files возникает ошибка.

Смотрите также

  • MongoGridFS::storeBytes() - Сохраняет строку байтов в базе данных
  • MongoGridFS::storeFile() - Сохраняет файл в базе данных
  • MongoGridFS::storeUpload() - Сохраняет загруженный файл в базе данных
  • Основная документация MongoDB по » GridFS


Удаляет файлы и их фрагменты из базы данных

  • « MongoGridFS::put
  • MongoGridFS::storeBytes »
  • PHP Manual
  • MongoGridFS
  • Удаляет файлы и их фрагменты из базы данных

MongoGridFS::remove

(PECL mongo >=0.9.0)

MongoGridFS::remove — Удаляет файлы и их фрагменты из базы данных

Описание

 public MongoGridFS::remove
  ([ array $criteria = array()
 [, array $options = array()
]] ) : bool|array

Список параметров

criteria

Имя файла или критерии для поиска.

options

Массив опций для операций удаления, выполняемых над коллекциями chunks и files. Смотрите MongoCollection::remove() для документации по этим опциям.

Возвращаемые значения

Возвращает массив, содержащий состояние удаления (относительно коллекции files), если установлена опция "w". В противном случае возвращает TRUE.

Поля в массиве статуса описаны в документации к MongoCollection::insert().

Ошибки

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.


Сохраняет строку байтов в базе данных

  • « MongoGridFS::remove
  • MongoGridFS::storeFile »
  • PHP Manual
  • MongoGridFS
  • Сохраняет строку байтов в базе данных

MongoGridFS::storeBytes

(PECL mongo >=0.9.2)

MongoGridFS::storeBytes — Сохраняет строку байтов в базе данных

Описание

public MongoGridFS::storeBytes ( string $bytes [, array $metadata = array() [, array $options = array() ]] ) : mixed

Список параметров

bytes

Строка байтов для сохранения.

metadata

Другие поля метаданных для включения в файл документа.

Замечание:

Данные поля могут перезаписать поля, автоматически созданные драйвером, как указано в основной документации MongoDB » коллекции файлов. В качестве практического применения данного поведения можно указать собственный chunkSize или _id для файла.

options

Массив опций для операций вставки, выполняемых для коллекций chunks и files. Смотрите MongoCollection::insert() для документации по этим параметрам.

Возвращаемые значения

Возвращает _id сохраненного документа. Это будет сгенерированный MongoId, за исключением случая, когда _id был явно указан в параметре metadata.

Ошибки

Выдает исключение MongoGridFSException, если при вставке коллекций chunks или files произошла ошибка.

Примеры

Пример #1 MongoGridFS::storeBytes() с дополнительными метаданными

<?php
$m = new MongoClient();
$gridfs = $m->selectDB('test')->getGridFS();

$bytes = 'abcdefghijklmnopqrstuvwxyz';
$id = $gridfs->storeBytes($bytes, array('_id' => 'alphabet'));
$gridfsFile = $gridfs->get($id);

var_dump($gridfsFile->file);
?>

Результатом выполнения данного примера будет что-то подобное:

array(7) {
  ["_id"]=>
  string(8) "alphabet"
  ["uploadDate"]=>
  object(MongoDate)#7 (0) {
  }
  ["length"]=>
  int(26)
  ["chunkSize"]=>
  int(262144)
  ["md5"]=>
  string(32) "c3fcd3d76192e4007dfb496cca67e13b"
}

Смотрите также

  • MongoGridFS::put() - Сохраняет файл в базе данных
  • MongoGridFS::storeFile() - Сохраняет файл в базе данных
  • MongoGridFS::storeUpload() - Сохраняет загруженный файл в базе данных
  • Основная документация MongoDB по » GridFS


Сохраняет файл в базе данных

  • « MongoGridFS::storeBytes
  • MongoGridFS::storeUpload »
  • PHP Manual
  • MongoGridFS
  • Сохраняет файл в базе данных

MongoGridFS::storeFile

(PECL mongo >=0.9.0)

MongoGridFS::storeFile — Сохраняет файл в базе данных

Описание

public MongoGridFS::storeFile ( string|resource $filename [, array $metadata = array() [, array $options = array() ]] ) : mixed

Список параметров

filename

Наименование файла или читаемого потока для хранения.

metadata

Другие поля метаданных для включения в файл документа.

Замечание:

Данные поля могут перезаписать поля, автоматически созданные драйвером, как указано в основной документации MongoDB » коллекции файлов. В качестве практического применения данного поведения можно указать собственный chunkSize или _id для файла.

options

Массив опций для операций вставки, выполняемых для коллекций chunks и files. Смотрите MongoCollection::insert() для документации по этим параметрам.

Возвращаемые значения

Возвращает _id сохраненного документа. Это будет сгенерированный MongoId, за исключением случая, когда _id был явно указан в параметре metadata.

Ошибки

Выдает исключение MongoGridFSException, если при чтении filename или вставке в коллекции chunks или files возникает ошибка.

Примеры

Пример #1 MongoGridFS::storeFile() с дополнительными метаданными

<?php
$m = new MongoClient();
$gridfs = $m->selectDB('test')->getGridFS();

$id = $gridfs->storeFile('example.txt', array('contentType' => 'plain/text'));
$gridfsFile = $gridfs->get($id);

var_dump($gridfsFile->file);
?>

Результатом выполнения данного примера будет что-то подобное:

array(7) {
  ["_id"]=>
  object(MongoId)#6 (0) {
  }
  ["contentType"]=>
  string(10) "plain/text"
  ["filename"]=>
  string(11) "example.txt"
  ["uploadDate"]=>
  object(MongoDate)#7 (0) {
  }
  ["length"]=>
  int(26)
  ["chunkSize"]=>
  int(262144)
  ["md5"]=>
  string(32) "c3fcd3d76192e4007dfb496cca67e13b"
}

Смотрите также

  • MongoGridFS::put() - Сохраняет файл в базе данных
  • MongoGridFS::storeBytes() - Сохраняет строку байтов в базе данных
  • MongoGridFS::storeUpload() - Сохраняет загруженный файл в базе данных
  • Основная документация MongoDB по » GridFS


Сохраняет загруженный файл в базе данных

  • « MongoGridFS::storeFile
  • MongoGridFSFile »
  • PHP Manual
  • MongoGridFS
  • Сохраняет загруженный файл в базе данных

MongoGridFS::storeUpload

(PECL mongo >=0.9.0)

MongoGridFS::storeUpload — Сохраняет загруженный файл в базе данных

Описание

public MongoGridFS::storeUpload ( string $name [, array $metadata ] ) : mixed

Список параметров

name

Имя загруженного файла(ов) для сохранения. Должно соответствовать атрибуту name поля файл в форме HTML.

metadata

Другие поля метаданных для включения в файл документа.

Замечание:

Данные поля могут перезаписать поля, автоматически созданные драйвером, как указано в основной документации MongoDB » коллекции файлов. В качестве практического применения данного поведения можно указать собственный chunkSize или _id для файла.

Замечание:

Поле filename будет заполнено именем файла клиента (например, $_FILES['foo']['name']).

Возвращаемые значения

Возвращает _id сохраненного документа. Это будет сгенерированный MongoId, за исключением случая, когда _id был явно указан в параметре metadata.

Замечание:

Если несколько файлов загружены с использованием одного и того же имени поля, этот метод ничего не вернет; однако сами файлы все равно будут обработаны.

Ошибки

Выдает исключение MongoGridFSException, если при чтении загруженных файлов или вставке в коллекции chunks или files возникает ошибка.

Список изменений

Версия | Описание
1.2.5 | Изменен второй параметр на массив метаданных. До 1.2.5 вторым параметром была необязательная строка, переопределяющая имя файла.

Примеры

Пример #1 Пример HTML-формы для MongoGridFS::storeUpload()

Suppose you have the following HTML form:

<form method="POST" enctype="multipart/form-data">
    <label for="username">Имя пользователя:</label>
    <input type="text" name="username" id="username" />

    <label for="pic">Пожалуйста, загрузите изображение профиля:</label>
    <input type="file" name="pic" id="pic" />

    <input type="submit" />
</form>

Если вы хотите сохранить загруженное изображение в MongoDB, вы можете сделать следующее в скрипте, обрабатывающем отправку формы:

<?php
$m = new MongoClient();
$gridfs = $m->selectDB('test')->getGridFS();

$gridfs->storeUpload('pic', array('username' => $_POST['username']));
?>

Смотрите также

  • MongoGridFS::put() - Сохраняет файл в базе данных
  • MongoGridFS::storeBytes() - Сохраняет строку байтов в базе данных
  • MongoGridFS::storeFile() - Сохраняет файл в базе данных
  • Основная документация MongoDB по » GridFS


Класс MongoGridFSFile

(PECL mongo >=0.9.0)

Введение

Объект файла в базе данных.

Обзор классов

MongoGridFSFile {
/* Поля */
public array $file = NULL ;
protected MongoGridFS $gridfs = NULL ;
/* Методы */
public MongoGridfsFile::__construct ( MongoGridFS $gridfs , array $file )
public getBytes ( void ) : string
public getFilename ( void ) : string
public getResource ( void ) : resource
public getSize ( void ) : int
public write ([ string $filename = NULL ] ) : int
}

Содержание

  • MongoGridfsFile::__construct — Создает новый файл GridFS
  • MongoGridFSFile::getBytes — Возвращает содержимое файла в виде строки байтов
  • MongoGridFSFile::getFilename — Возвращает наименование файла
  • MongoGridFSFile::getResource — Возвращает ресурс, который можно использовать для чтения сохраненного файла
  • MongoGridFSFile::getSize — Возвращает размер файла
  • MongoGridFSFile::write — Записывает файл в файловую систему


Создает новый файл GridFS

  • « MongoGridFSFile
  • MongoGridFSFile::getBytes »
  • PHP Manual
  • MongoGridFSFile
  • Создает новый файл GridFS

MongoGridfsFile::__construct

(PECL mongo >=0.9.0)

MongoGridfsFile::__construct — Создает новый файл GridFS

Описание

public MongoGridfsFile::__construct ( MongoGridFS $gridfs , array $file )

Список параметров

gridfs

Родительский экземпляр MongoGridFS.

file

Файл из базы данных.

Возвращаемые значения

Возвращает новый MongoGridFSFile.


Возвращает содержимое файла в виде строки байтов

  • « MongoGridfsFile::__construct
  • MongoGridFSFile::getFilename »
  • PHP Manual
  • MongoGridFSFile
  • Возвращает содержимое файла в виде строки байтов

MongoGridFSFile::getBytes

(PECL mongo >=0.9.0)

MongoGridFSFile::getBytes — Возвращает содержимое файла в виде строки байтов

Описание

public MongoGridFSFile::getBytes ( void ) : string

Предупреждение: это загрузит файл в память. Если файл больше вашей памяти, это вызовет проблемы!

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку байтов в файле.

Примеры

Пример #1 Пример использования MongoGridFSFile::getBytes()

<?php

$images = $db->my_db->getGridFS('images');

$image = $images->findOne('jwage.png');

header('Content-type: image/png;');
echo $image->getBytes();
?>


Возвращает наименование файла

  • « MongoGridFSFile::getBytes
  • MongoGridFSFile::getResource »
  • PHP Manual
  • MongoGridFSFile
  • Возвращает наименование файла

MongoGridFSFile::getFilename

(PECL mongo >=0.9.0)

MongoGridFSFile::getFilename — Возвращает наименование файла

Описание

public MongoGridFSFile::getFilename ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает наименование файла


Возвращает ресурс, который можно использовать для чтения сохраненного файла

  • « MongoGridFSFile::getFilename
  • MongoGridFSFile::getSize »
  • PHP Manual
  • MongoGridFSFile
  • Возвращает ресурс, который можно использовать для чтения сохраненного файла

MongoGridFSFile::getResource

(PECL mongo >=1.3.0)

MongoGridFSFile::getResource — Возвращает ресурс, который можно использовать для чтения сохраненного файла

Описание

public MongoGridFSFile::getResource ( void ) : resource

Этот метод возвращает ресурс потока, который можно использовать со всеми файловыми функциями в PHP, которые имеют дело с чтением файлов. Содержимое файла извлекается из MongoDB на лету, так что весь файл не нужно сразу загружать в память.

Максимум два блока GridFSFile будут загружены в память.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ресурс, который можно использовать для чтения файла

Примеры

Пример #1 Пример использования MongoGridFSFile::getResource()

<?php
$m = new Mongo;
$images = $m->my_db->getGridFS('images');

$image = $images->findOne('mongo.png');

header('Content-type: image/png;');
$stream = $image->getResource();

while (!feof($stream)) {
    echo fread($stream, 8192);
}
?>


Возвращает размер файла

  • « MongoGridFSFile::getResource
  • MongoGridFSFile::write »
  • PHP Manual
  • MongoGridFSFile
  • Возвращает размер файла

MongoGridFSFile::getSize

(PECL mongo >=0.9.0)

MongoGridFSFile::getSize — Возвращает размер файла

Описание

public MongoGridFSFile::getSize ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер файла


Записывает файл в файловую систему

  • « MongoGridFSFile::getSize
  • MongoGridFSCursor »
  • PHP Manual
  • MongoGridFSFile
  • Записывает файл в файловую систему

MongoGridFSFile::write

(PECL mongo >=0.9.0)

MongoGridFSFile::write — Записывает файл в файловую систему

Описание

public MongoGridFSFile::write ([ string $filename = NULL ] ) : int

Список параметров

filename

Расположение, в которое нужно записать файл. Если ничего не указано, будет использовано имя сохраненного файла.

Возвращаемые значения

Возвращает количество записанных байтов.

Примеры

Пример #1 Пример использования MongoGridFSFile::write()

<?php

$images = $db->my_db->getGridFS('images');

$image = $images->findOne('jwage.png');
$image->write('/path/to/write/jwage.png');
?>


Класс MongoGridFSCursor

(PECL mongo >=0.9.0)

Введение

Курсор для файловых результатов базы данных.

Обзор классов

extends MongoCursor {
/* Поля */
protected MongoGridFS $gridfs = NULL ;
/* Методы */
public __construct ( MongoGridFS $gridfs , resource $connection , string $ns , array $query , array $fields )
public current ( void ) : MongoGridFSFile
public getNext ( void ) : MongoGridFSFile
public key ( void ) : string
}

Содержание

  • MongoGridFSCursor::__construct — Создает новый курсор
  • MongoGridFSCursor::current — Возвращает текущий файл
  • MongoGridFSCursor::getNext — Возвращает следующий файл, на который указывает курсор, и перемещает курсор
  • MongoGridFSCursor::key — Возвращает имя файла текущего результата


Создает новый курсор

  • « MongoGridFSCursor
  • MongoGridFSCursor::current »
  • PHP Manual
  • MongoGridFSCursor
  • Создает новый курсор

MongoGridFSCursor::__construct

(PECL mongo >=0.9.0)

MongoGridFSCursor::__construct — Создает новый курсор

Описание

public MongoGridFSCursor::__construct ( MongoGridFS $gridfs , resource $connection , string $ns , array $query , array $fields )

Список параметров

gridfs

Связанная коллекция GridFS.

connection

Подключение к базе данных.

ns

Полное наименование базы данных и коллекции.

query

Запрос к базе данных.

fields

Возвращаемые поля.

Возвращаемые значения

Возвращает новый курсор.


Возвращает текущий файл

  • « MongoGridFSCursor::__construct
  • MongoGridFSCursor::getNext »
  • PHP Manual
  • MongoGridFSCursor
  • Возвращает текущий файл

MongoGridFSCursor::current

(PECL mongo >=0.9.0)

MongoGridFSCursor::current — Возвращает текущий файл

Описание

public MongoGridFSCursor::current ( void ) : MongoGridFSFile

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий файл.


Возвращает следующий файл, на который указывает курсор, и перемещает курсор

  • « MongoGridFSCursor::current
  • MongoGridFSCursor::key »
  • PHP Manual
  • MongoGridFSCursor
  • Возвращает следующий файл, на который указывает курсор, и перемещает курсор

MongoGridFSCursor::getNext

(PECL mongo >=0.9.0)

MongoGridFSCursor::getNext — Возвращает следующий файл, на который указывает курсор, и перемещает курсор

Описание

public MongoGridFSCursor::getNext ( void ) : MongoGridFSFile

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает следующий файл.


Возвращает имя файла текущего результата

  • « MongoGridFSCursor::getNext
  • Пакетные классы »
  • PHP Manual
  • MongoGridFSCursor
  • Возвращает имя файла текущего результата

MongoGridFSCursor::key

(PECL mongo >=0.9.0)

MongoGridFSCursor::key — Возвращает имя файла текущего результата

Описание

public MongoGridFSCursor::key ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Идентификатор _id текущего результата в виде строки.

Список изменений

Версия | Описание
1.3.0 | Возвращается _id документа, как строковое значение, поскольку ключ должен быть уникальным. До 1.3.0, возвращался параметр filename.


Пакетные классы

Содержание

  • MongoWriteBatch
  • MongoInsertBatch
  • MongoUpdateBatch
  • MongoDeleteBatch


Класс MongoWriteBatch

(PECL mongo >=1.5.0)

Введение

MongoWriteBatch является базовым классом для классов MongoInsertBatch, MongoUpdateBatch и MongoDeleteBatch.

MongoWriteBatch позволяет "собирать в пакет" несколько операций (одного типа) и отправлять их все в MongoDB одновременно. Это может быть особенно полезно при одновременной работе со многими документами, чтобы уменьшить количество обращений.

До версии 1.5.0 драйвера было возможно использовать MongoCollection::batchInsert(), однако, начиная с 1.5.0, этот метод не рекомендуется использовать.

Примечание: Этот класс доступен только при общении с серверами MongoDB 2.6.0 (и выше). Он будет выдавать исключение MongoProtocolException при попытке использовать его на старых серверах MongoDB.

Обзор классов

MongoWriteBatch {
/* Константы */
const int COMMAND_INSERT = 1 ;
const int COMMAND_UPDATE = 2 ;
const int COMMAND_DELETE = 3 ;
/* Методы */
protected __construct ( MongoCollection $collection [, string $batch_type [, array $write_options ]] )
public add ( array $item ) : bool
final public execute ( array $write_options ) : array
}

Типы MongoWriteBatch

MongoWriteBatch::COMMAND_INSERT

Создает пакет записи и вставки

MongoWriteBatch::COMMAND_UPDATE

Создает пакет обновления записи

MongoWriteBatch::COMMAND_DELETE

Создает пакет удаления записи

Описание

При выполнении пакета с помощью вызова MongoWriteBatch::execute(), MongoWriteBatch будет отправлять до maxWriteBatchSize (по умолчанию 1000) или maxBsonObjectSize (по умолчанию 16777216 байт), в зависимости от того, что произойдет первым.

Замечание:

Документы никогда не будут переданы частично. При добавлении документов в пакет, превышающий лимит, создается новый пакет и документ будет помещен в него.

Ошибки

  • Exception, при ошибках разбора параметров
  • Exception, при ошибках проверки аргументов (например, отсутствующие ключи)
  • MongoProtocolException, при обращении к серверу MongoDB старше 2.6.0.
  • MongoProtocolException, при ошибках сокетов.
  • MongoWriteConcernException, когда запись не удалась из-за WriteConcerns

Примеры

Пример #1 Пример MongoWriteBatch

Добавление документов в пакет и последующее его выполнение:

<?php
$mc = new MongoClient("localhost");

$collection = $mc->selectCollection("test", "test");

$docs = array();
$docs[] = array("my" => "demo");
$docs[] = array("is" => "working");
$docs[] = array("pretty" => "well");

$batch = new MongoInsertBatch($collection);
foreach($docs as $document) {
    $batch->add($document);
}
$retval = $batch->execute(array("w" => 1));
var_dump($retval);
?>

Результат выполнения данного примера:

array(2) {
  ["nInserted"]=>
  int(3)
  ["ok"]=>
  bool(true)
}

Содержание

  • MongoWriteBatch::add — Добавляет операцию записи в пакет
  • MongoWriteBatch::__construct — Создает новый пакет операций записи
  • MongoWriteBatch::execute — Выполняет пакет операций записи


Добавляет операцию записи в пакет

  • « MongoWriteBatch
  • MongoWriteBatch::__construct »
  • PHP Manual
  • MongoWriteBatch
  • Добавляет операцию записи в пакет

MongoWriteBatch::add

(PECL mongo >= 1.5.0)

MongoWriteBatch::add — Добавляет операцию записи в пакет

Описание

public MongoWriteBatch::add ( array $item ) : bool

Добавляет операцию записи в пакет.

Если пакет с $item превышает размеры maxWriteBatchSize или maxBsonObjectSize, драйвер разделит пакеты на несколько команд записи при вызове MongoWriteBatch::execute().

Список параметров

item

Массив, описывающий операцию записи. Структура этого значения зависит от типа операции пакета.

Тип пакета | Ожидаемый аргумент
MongoWriteBatch::COMMAND_INSERT | Документ для добавления.
MongoWriteBatch::COMMAND_UPDATE

Операция необработанного обновления.

Обязательными ключами являются "q" и "u", которые соответствуют параметрам $criteria и $new_object в MongoCollection::update() соответственно.

Необязательными ключами являются "multi" и "upsert", которые соответствуют опциям "multiple" и "upsert" для MongoCollection::update() соответственно. Если не указано, обе опции по умолчанию имеют значение FALSE.

MongoWriteBatch::COMMAND_DELETE

Операция необработанного удаления.

Обязательные ключи: "q" и "limit", которые соответствуют параметру $criteria и опции "justOne" MongoCollection::remove(), соответственно.

Параметр "limit" является integer; однако MongoDB в настоящее время поддерживает только 0 (то есть удалить все соответствующие документы) и 1 (то есть удалить не более одного соответствующего документа).

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, выдает исключение в противном случае.

Ошибки

  • Exception при сбое анализа параметров
  • Exception из-за ошибок проверки аргументов (например, отсутствующие ключи)

Примеры

Пример #1 Пример использования MongoWriteBatch::add()

Пакетная операция вставки

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$docs = array();
$docs[] = array("my" => "demo");
$docs[] = array("is" => "working");
$docs[] = array("pretty" => "well");

$batch = new MongoInsertBatch($collection);
foreach($docs as $document) {
    $batch->add($document);
}
$batch->execute(array("w" => 1));
?>

Пример #2 Пример использования MongoWriteBatch::add()

Пакетная операция обновления

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$item1 = array(
    "q" => array("my" => "demo"),
    "u" => array('$set' => array("try" => 1)),
    "multi"  => false, /* значение по умолчанию */
    "upsert" => false, /* значение по умолчанию */
);
$item2 = array(
    "q" => array("is" => "working"),
    "u" => array('$set' => array("try" => 2)),
    "multi" => true,
);
$item3 = array(
    "q" => array("created" => "new-document"),
    "u" => array('$set' => array("try" => 3)),
    "upsert" => true,
);

$batch = new MongoUpdateBatch($collection);
$batch->add($item1);
$batch->add($item2);
$batch->add($item3);
$batch->execute(array("w" => 1));

?>

Пример #3 Пример использования MongoWriteBatch::add()

Пакетная операция удаления

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$item1 = array(
    "q" => array("my" => "demo"),
    "limit" => 1,
);
$item2 = array(
    "q" => array("try" => 3),
    "limit" => 1,
);

$batch = new MongoDeleteBatch($collection);
$batch->add($item1);
$batch->add($item2);
$batch->execute(array("w" => 1));
?>


Создает новый пакет операций записи

  • « MongoWriteBatch::add
  • MongoWriteBatch::execute »
  • PHP Manual
  • MongoWriteBatch
  • Создает новый пакет операций записи

MongoWriteBatch::__construct

(PECL mongo >= 1.5.0)

MongoWriteBatch::__construct — Создает новый пакет операций записи

Описание

protected MongoWriteBatch::__construct ( MongoCollection $collection [, string $batch_type [, array $write_options ]] )

Создает новый MongoWriteBatch.

Замечание:

Это защищенный конструктор. Пожалуйста, используйте один из классов, наследующих MongoWriteBatch.

Список параметров

collection

Объект MongoCollection для выполняемого пакета. Его опции контроля записи будут скопированы и использованы по умолчанию, если не будут переданы через $write_options или MongoWriteBatch::execute().

batch_type

Один из:

  • 0 - создает пакет MongoWriteBatch::COMMAND_INSERT
  • 1 - создает пакет MongoWriteBatch::COMMAND_UPDATE
  • 2 - создает пакет MongoWriteBatch::COMMAND_DELETE

write_options

Массив опций записи.

ключ | значение
w (int|string) | Значения контроля записи
wtimeout (int) | Максимальное время ожидания репликации
ordered | Определяет, должна ли MongoDB применять этот пакет в определенном по порядку. Упорядоченная запись запускается последовательно (по одному элементу за раз) и запись прекращается после первой же ошибки. Неупорядоченная запись может запускаться параллельно и ошибки не приводят к остановке записи. По умолчанию TRUE
j (bool) | Ожидать журналирование на основном сервере (primary). Не рекомендуется, используйте вместо него опцию Контроля Записи (WriteConcern)
fsync (bool) | Ожидать fsync на основном сервере (primary). Не рекомендуется, используйте вместо него опцию Контроля Записи (WriteConcern)

Возвращаемые значения

Новый тип MongoWriteBatch batch_type.

Смотрите также

  • MongoInsertBatch
  • MongoUpdateBatch
  • MongoDeleteBatch


Выполняет пакет операций записи

  • « MongoWriteBatch::__construct
  • MongoInsertBatch »
  • PHP Manual
  • MongoWriteBatch
  • Выполняет пакет операций записи

MongoWriteBatch::execute

(PECL mongo >= 1.5.0)

MongoWriteBatch::execute — Выполняет пакет операций записи

Описание

final public MongoWriteBatch::execute ( array $write_options ) : array

Выполняет пакет операций записи.

Список параметров

write_options

Смотрите MongoWriteBatch::__construct.

Возвращаемые значения

Возвращает массив, содержащий статистическую информацию для полного пакета. Если пакет нужно было разделить на несколько пакетов, возвращаемое значение будет агрегировать значения из отдельных пакетов и возвращать только итог.

Если пакет был пустым, возвращается массив, содержащий только поле 'ok' (как TRUE), хотя ничего не будет отправлено (NOOP).

Ключ массива | Значение | Возвращается для типа пакета
nInserted | Количество вставленных документов | MongoWriteBatch::COMMAND_INSERT batch
nMatched | Количество документов, соответствующих критериям запроса | MongoWriteBatch::COMMAND_UPDATE batch
nModified | Количество документов, которые действительно необходимо изменить | MongoWriteBatch::COMMAND_UPDATE batch
nUpserted | Количество отправленных документов | MongoWriteBatch::COMMAND_UPDATE batch
nRemoved | Количество удаленных документов | MongoWriteBatch::COMMAND_DELETE batch
ok | Индикатор успешности выполнения команды | All

Ошибки

Исключение MongoWriteConcernException выдается при сбое.

Примеры

Пример #1 Пример использования MongoWriteBatch::add()

Пакетная операция вставки

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$docs = array();
$docs[] = array("my" => "demo");
$docs[] = array("is" => "working");
$docs[] = array("pretty" => "well");

$batch = new MongoInsertBatch($collection);
foreach($docs as $document) {
    $batch->add($document);
}
$retval = $batch->execute(array("w" => 1));
var_dump($retval);
?>

Результат выполнения данного примера:

array(2) {
  ["nInserted"]=>
  int(3)
  ["ok"]=>
  bool(true)
}

Пример #2 Пример использования MongoWriteBatch::add()

Пакетная операция обновления

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$item1 = array(
    "q" => array("my" => "demo"),
    "u" => array('$set' => array("try" => 1)),
    "multi"  => false, /* значение по умолчанию */
    "upsert" => false, /* значение по умолчанию */
);
$item2 = array(
    "q" => array("is" => "working"),
    "u" => array('$set' => array("try" => 2)),
    "multi" => true,
);
$item3 = array(
    "q" => array("created" => "new-document"),
    "u" => array('$set' => array("try" => 3)),
    "upsert" => true,
);

$batch = new MongoUpdateBatch($collection);
$batch->add($item1);
$batch->add($item2);
$batch->add($item3);
$retval = $batch->execute(array("w" => 1));
var_dump($retval);

?>

Результат выполнения данного примера:

array(4) {
  ["nMatched"]=>
  int(18)
  ["nModified"]=>
  int(2)
  ["nUpserted"]=>
  int(0)
  ["ok"]=>
  bool(true)
}

Пример #3 Пример использования MongoWriteBatch::add()

Пакетная операция удаления

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$item1 = array(
    "q" => array("my" => "demo"),
    "limit" => 1,
);
$item2 = array(
    "q" => array("try" => 3),
    "limit" => 1,
);

$batch = new MongoDeleteBatch($collection);
$batch->add($item1);
$batch->add($item2);
$retval = $batch->execute(array("w" => 1));
var_dump($retval);
?>

Результат выполнения данного примера:

array(2) {
  ["nRemoved"]=>
  int(1)
  ["ok"]=>
  bool(true)
}


Класс MongoInsertBatch

(PECL mongo >=1.5.0)

Введение

Создает пакет операций INSERT. Смотрите MongoWriteBatch.

Обзор классов

MongoInsertBatch extends MongoWriteBatch {
/* Методы */
public __construct ( MongoCollection $collection [, array $write_options ] )
/* Наследуемые методы */
public MongoWriteBatch::add ( array $item ) : bool
final public MongoWriteBatch::execute ( array $write_options ) : array
}

Содержание

  • MongoInsertBatch::__construct — Конструктор MongoInsertBatch


Конструктор MongoInsertBatch

  • « MongoInsertBatch
  • MongoUpdateBatch »
  • PHP Manual
  • MongoInsertBatch
  • Конструктор MongoInsertBatch

MongoInsertBatch::__construct

(PECL mongo >= 1.5.0)

MongoInsertBatch::__construct — Конструктор MongoInsertBatch

Описание

public MongoInsertBatch::__construct ( MongoCollection $collection [, array $write_options ] )

Создает объект для пакетного исполнения INSERT. Смотрите MongoWriteBatch.

Список параметров

collection

Объект MongoCollection для выполняемого пакета. Его опции контроля записи будут скопированы и использованы по умолчанию, если не будут переданы через $write_options или MongoWriteBatch::execute().

write_options

Массив опций записи.

ключ | значение
w (int|string) | Значения контроля записи
wtimeout (int) | Максимальное время ожидания репликации
ordered | Определяет, должна ли MongoDB применять этот пакет в определенном по порядку. Упорядоченная запись запускается последовательно (по одному элементу за раз) и запись прекращается после первой же ошибки. Неупорядоченная запись может запускаться параллельно и ошибки не приводят к остановке записи. По умолчанию TRUE
j (bool) | Ожидать журналирование на основном сервере (primary). Не рекомендуется, используйте вместо него опцию Контроля Записи (WriteConcern)
fsync (bool) | Ожидать fsync на основном сервере (primary). Не рекомендуется, используйте вместо него опцию Контроля Записи (WriteConcern)

Возвращаемые значения

Новый объект MongoInsertBatch.


Класс MongoUpdateBatch

(PECL mongo >=1.5.0)

Введение

Создает пакет операций UPDATE. Смотрите MongoWriteBatch.

Обзор классов

MongoUpdateBatch extends MongoWriteBatch {
/* Методы */
public __construct ( MongoCollection $collection [, array $write_options ] )
/* Наследуемые методы */
public MongoWriteBatch::add ( array $item ) : bool
final public MongoWriteBatch::execute ( array $write_options ) : array
}

Содержание

  • MongoUpdateBatch::__construct — Конструктор MongoUpdateBatch


Конструктор MongoUpdateBatch

  • « MongoUpdateBatch
  • MongoDeleteBatch »
  • PHP Manual
  • MongoUpdateBatch
  • Конструктор MongoUpdateBatch

MongoUpdateBatch::__construct

(PECL mongo >= 1.5.0)

MongoUpdateBatch::__construct — Конструктор MongoUpdateBatch

Описание

public MongoUpdateBatch::__construct ( MongoCollection $collection [, array $write_options ] )

Создает объект для пакетного исполнения UPDATE. Смотрите MongoWriteBatch.

Список параметров

collection

Объект MongoCollection для выполняемого пакета. Его опции контроля записи будут скопированы и использованы по умолчанию, если не будут переданы через $write_options или MongoWriteBatch::execute().

write_options

Массив опций записи.

ключ | значение
w (int|string) | Значения контроля записи
wtimeout (int) | Максимальное время ожидания репликации
ordered | Определяет, должна ли MongoDB применять этот пакет в определенном по порядку. Упорядоченная запись запускается последовательно (по одному элементу за раз) и запись прекращается после первой же ошибки. Неупорядоченная запись может запускаться параллельно и ошибки не приводят к остановке записи. По умолчанию TRUE
j (bool) | Ожидать журналирование на основном сервере (primary). Не рекомендуется, используйте вместо него опцию Контроля Записи (WriteConcern)
fsync (bool) | Ожидать fsync на основном сервере (primary). Не рекомендуется, используйте вместо него опцию Контроля Записи (WriteConcern)

Возвращаемые значения

Новый объект MongoUpdateBatch.


Класс MongoDeleteBatch

(PECL mongo >=1.5.0)

Введение

Создает пакет операций DELETE. Смотрите MongoWriteBatch.

Обзор классов

MongoDeleteBatch extends MongoWriteBatch {
/* Методы */
public __construct ( MongoCollection $collection [, array $write_options ] )
/* Наследуемые методы */
public MongoWriteBatch::add ( array $item ) : bool
final public MongoWriteBatch::execute ( array $write_options ) : array
}

Содержание

  • MongoDeleteBatch::__construct — Конструктор MongoDeleteBatch


Конструктор MongoDeleteBatch

  • « MongoDeleteBatch
  • Дополнительно »
  • PHP Manual
  • MongoDeleteBatch
  • Конструктор MongoDeleteBatch

MongoDeleteBatch::__construct

(PECL mongo >= 1.5.0)

MongoDeleteBatch::__construct — Конструктор MongoDeleteBatch

Описание

public MongoDeleteBatch::__construct ( MongoCollection $collection [, array $write_options ] )

Создает объект для пакетного исполнения DELETE. Смотрите MongoWriteBatch.

Список параметров

collection

Объект MongoCollection для выполняемого пакета. Его опции контроля записи будут скопированы и использованы по умолчанию, если не будут переданы через $write_options или MongoWriteBatch::execute().

write_options

Массив опций записи.

ключ | значение
w (int|string) | Значения контроля записи
wtimeout (int) | Максимальное время ожидания репликации
ordered | Определяет, должна ли MongoDB применять этот пакет в определенном по порядку. Упорядоченная запись запускается последовательно (по одному элементу за раз) и запись прекращается после первой же ошибки. Неупорядоченная запись может запускаться параллельно и ошибки не приводят к остановке записи. По умолчанию TRUE
j (bool) | Ожидать журналирование на основном сервере (primary). Не рекомендуется, используйте вместо него опцию Контроля Записи (WriteConcern)
fsync (bool) | Ожидать fsync на основном сервере (primary). Не рекомендуется, используйте вместо него опцию Контроля Записи (WriteConcern)

Возвращаемые значения

Новый объект MongoDeleteBatch.


  • « MongoDeleteBatch::__construct
  • MongoLog »
  • PHP Manual
  • Mongo
  • Дополнительно

Дополнительно

Содержание

  • MongoLog
  • MongoPool
  • Mongo


Класс MongoLog

(PECL mongo >=1.2.3)

Введение

Запись событий может быть использована для получения подробной информации о том, что делает драйвер. Ведение журнала отключено по умолчанию, но этот класс позволяет активировать определенные уровни ведения журнала для различных частей драйвера. Например:

<?php

// печатает все сообщения
MongoLog::setLevel(MongoLog::ALL); // все уровни журнала
MongoLog::setModule(MongoLog::ALL); // все части драйвера

// печатает важные события об отказе реплики
MongoLog::setLevel(MongoLog::INFO);
MongoLog::setModule(MongoLog::RS);

// печатает события информационного и диагностического уровня для наборов реплик и соединений
MongoLog::setLevel(MongoLog::INFO|MongoLog::FINE);
MongoLog::setModule(MongoLog::RS|MongoLog::CON);

?>

Замечание:

По умолчанию MongoLog отправляет все сообщения журнала как уведомления PHP. В зависимости от используемого вами SAPI сообщения могут отправляться в stderr (для CLI) или в журнал ошибок веб-сервера. Если после настройки MongoLog сообщения журнала не отображаются должным образом, убедитесь, что бит E_NOTICE включен в error_reporting и что display_errors включен.

Обзор классов

MongoLog {
/* Константы */
const int NONE = 0 ;
const int ALL = 31 ;
level constants {
const int WARNING = 1 ;
const int INFO = 2 ;
const int FINE = 4 ;
module constants {
const int RS = 1 ;
const int POOL = 1 ;
const int CON = 2 ;
const int IO = 4 ;
const int SERVER = 8 ;
const int PARSE = 16 ;
/* Поля */
private static int $callback ;
private static int $level ;
private static int $module ;
/* Методы */
public static getCallback ( void ) : callable
public static getLevel ( void ) : int
public static getModule ( void ) : int
public static setCallback ( callable $log_function ) : void
public static setLevel ( int $level ) : void
public static setModule ( int $module ) : void
}

Предопределенные константы

Константы MongoLog

Эти константы могут быть использованы, как MongoLog::setLevel() и MongoLog::setModule().

MongoLog::NONE
Ничего не записывать.
MongoLog::ALL
Записывать все события.

Константы уровней MongoLog

Эти константы могут быть использованы, как MongoLog::setLevel().

MongoLog::WARNING
Записывать события, которые являются несколько исключительными, но не вполне достойными фактического исключения (например, исправимые ошибки подключения).
MongoLog::INFO
Записывать события, которые могут представлять интерес для администраторов, но не особо заслуживают внимания (например, анализ параметров, этапы аутентификации).
MongoLog::FINE
Записывать большинство событий, которые выполняет драйвер (например, выбор сервера, связь через сокет). В зависимости от регистрируемого модуля, может быть очень шумно и в первую очередь полезно для отладки.

Константы модуля MongoLog

Эти константы могут быть использованы как MongoLog::setModule().

MongoLog::CON
Журнал подключения активности. Создание новых соединений, аутентификация, пинг, тайм-ауты и т.д.
MongoLog::IO
Журнал трафика в/из базы данных. Если ваша программа не тривиальна, это создаст огромное количество сообщений журнала.
MongoLog::PARSE
Журнал разбора строки подключения и параметров при построении MongoClient.
MongoLog::POOL
Ранее использовался для регистрации активности пула соединений. Параметр теперь является устаревшим псевдонимом MongoLog::RS.
MongoLog::RS
Журнал активности реплик. Аварийное переключение, выбор параметров чтения и т.д.
MongoLog::SERVER
Ранее использовался для регистрации изменений состояния сервера. Параметр теперь является устаревшим псевдонимом MongoLog::RS.

Список изменений

Версия | Описание
1.3.0 | Добавлена константа MongoLog::CON, объявлены уставевшими MongoLog::POOL и MongoLog::SERVER.

Содержание

  • MongoLog::getCallback — Получает ранее установленную callback-функцию
  • MongoLog::getLevel — Получает уровень(-ни), которые в настоящее время записываются
  • MongoLog::getModule — Получает модуль(-и), которые в настоящее время записываются
  • MongoLog::setCallback — Устанавливает callback-функцию для вызова событий
  • MongoLog::setLevel — Устанавливает уровень(-ни) для записи событий
  • MongoLog::setModule — Устанавливает модуль(-и) для записи событий


Получает ранее установленную callback-функцию

  • « MongoLog
  • MongoLog::getLevel »
  • PHP Manual
  • MongoLog
  • Получает ранее установленную callback-функцию

MongoLog::getCallback

(PECL mongo >= 1.3.0)

MongoLog::getCallback — Получает ранее установленную callback-функцию

Описание

public static MongoLog::getCallback ( void ) : callable

Получает callback-функцию.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает callback-функцию или FALSE, если она еще не установлена.

Примечания

Предостережение

Функция доступна только в PHP 5.3.0 и более поздних версиях.


Получает уровень(-ни), которые в настоящее время записываются

  • « MongoLog::getCallback
  • MongoLog::getModule »
  • PHP Manual
  • MongoLog
  • Получает уровень(-ни), которые в настоящее время записываются

MongoLog::getLevel

(PECL mongo >= 1.2.3)

MongoLog::getLevel — Получает уровень(-ни), которые в настоящее время записываются

Описание

public static MongoLog::getLevel ( void ) : int

Эта функция может использоваться, чтобы увидеть, какие уровни в настоящее время записываются. Возвращенное целое число можно сравнить с константами уровня MongoLog, используя побитовые операторы для проверки определенных уровней записи событий.

<?php

if (MongoLog::getLevel() & MongoLog::FINE) {
    echo "много записей\n";
}

if (MongoLog::getLevel() ^ MongoLog::NONE) {
    echo "запись событий, хотя бы, немного\n";
}

if (MongoLog::getLevel() == MongoLog::ALL) {
    echo "запись событий на высшем уровне\n";
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Получает уровень(-ни), которые в настоящее время записываются.


Получает модуль(-и), которые в настоящее время записываются

  • « MongoLog::getLevel
  • MongoLog::setCallback »
  • PHP Manual
  • MongoLog
  • Получает модуль(-и), которые в настоящее время записываются

MongoLog::getModule

(PECL mongo >= 1.2.3)

MongoLog::getModule — Получает модуль(-и), которые в настоящее время записываются

Описание

public static MongoLog::getModule ( void ) : int

Эта функция может использоваться, чтобы увидеть, какие модули драйвера в настоящее время записываются. Возвращенное целое число можно сравнить с константами модуля MongoLog, используя побитовые операторы, чтобы проверить, записываются ли события определенных модулей.

<?php

if (MongoLog::getModule() & MongoLog::RS) {
    echo "записываются события наборов реплик\n";
}

if (MongoLog::getModule() ^ MongoLog::NONE) {
    echo "Какие-то события записываются\n";
}

if ((MongoLog::getModule() & MongoLog::IO) == 0) {
    echo "не записываются события io\n";
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает модуль(-и), которые в настоящее время записываются.


Устанавливает callback-функцию для вызова событий

  • « MongoLog::getModule
  • MongoLog::setLevel »
  • PHP Manual
  • MongoLog
  • Устанавливает callback-функцию для вызова событий

MongoLog::setCallback

(PECL mongo >= 1.3.0)

MongoLog::setCallback — Устанавливает callback-функцию для вызова событий

Описание

public static MongoLog::setCallback ( callable $log_function ) : void

Функция установит callback-функцию, которая будет вызываться для событий вместо выдачи уведомления PHP.

Список параметров

log_function

Callback-функция для вызова событий. Должна соответствовать прототипу:

log_function ( int $module , int $level , string $message )
module
Одна из констант модуля MongoLog.
level
Одна из констант уровня MongoLog.
message
Сообщение журнала.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования MongoLog::setCallback()

<?php

function module2string($module)
{
    switch ($module) {
        case MongoLog::RS: return "REPLSET";
        case MongoLog::CON: return "CON";
        case MongoLog::IO: return "IO";
        case MongoLog::SERVER: return "SERVER";
        case MongoLog::PARSE: return "PARSE";
        default: return "UNKNOWN";
    }
}

function level2string($level)
{
    switch ($level) {
        case MongoLog::WARNING: return "WARN";
        case MongoLog::INFO: return "INFO";
        case MongoLog::FINE: return "FINE";
        default: return "UNKNOWN";
    }
}

function callback($module, $level, $message)
{
    echo date("Y-m-d H:i:s - ");
    printf("%s (%s): %s\n", module2string($module), level2string($level), $message);
}

MongoLog::setLevel(MongoLog::ALL);
MongoLog::setModule(MongoLog::ALL);

// Мы указываем здесь имя функции, но любая вызываемая функция (например, анонимная функция) будет работать
MongoLog::setCallback("callback");

new MongoClient();
?>

Результатом выполнения данного примера будет что-то подобное:

2013-07-09 09:41:42 - PARSE (INFO): Parsing localhost:27017
2013-07-09 09:41:42 - PARSE (INFO): - Found node: localhost:27017
2013-07-09 09:41:42 - PARSE (INFO): - Connection type: STANDALONE
2013-07-09 09:41:42 - CON (INFO): mongo_get_read_write_connection: finding a STANDALONE connection
2013-07-09 09:41:42 - CON (INFO): connection_create: creating new connection for localhost:27017
2013-07-09 09:41:42 - CON (INFO): stream_connect: Not establishing SSL for localhost:27017
2013-07-09 09:41:42 - CON (INFO): get_server_flags: start
2013-07-09 09:41:42 - CON (FINE): send_packet: read from header: 36
2013-07-09 09:41:42 - CON (FINE): send_packet: data_size: 95
2013-07-09 09:41:42 - CON (FINE): get_server_flags: setting maxBsonObjectSize to 16777216
2013-07-09 09:41:42 - CON (FINE): get_server_flags: setting maxMessageSizeBytes to 48000000
2013-07-09 09:41:42 - CON (INFO): is_ping: pinging localhost:27017;-;.;1543
2013-07-09 09:41:42 - CON (FINE): send_packet: read from header: 36
2013-07-09 09:41:42 - CON (FINE): send_packet: data_size: 17
2013-07-09 09:41:42 - CON (INFO): is_ping: last pinged at 1373359302; time: 0ms
2013-07-09 09:41:42 - REPLSET (FINE): finding candidate servers
2013-07-09 09:41:42 - REPLSET (FINE): - all servers
2013-07-09 09:41:42 - REPLSET (FINE): filter_connections: adding connections:
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): filter_connections: done
2013-07-09 09:41:42 - REPLSET (FINE): limiting by seeded/discovered servers
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): limiting by seeded/discovered servers: done
2013-07-09 09:41:42 - REPLSET (FINE): limiting by credentials
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): limiting by credentials: done
2013-07-09 09:41:42 - REPLSET (FINE): sorting servers by priority and ping time
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): sorting servers: done
2013-07-09 09:41:42 - REPLSET (FINE): selecting near servers
2013-07-09 09:41:42 - REPLSET (FINE): selecting near servers: nearest is 0ms
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): selecting near server: done
2013-07-09 09:41:42 - REPLSET (INFO): pick server: random element 0
2013-07-09 09:41:42 - REPLSET (INFO): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543

Примечания

Предостережение

Функция доступна только в PHP 5.3.0 и более поздних версиях.


Устанавливает уровень(-ни) для записи событий

  • « MongoLog::setCallback
  • MongoLog::setModule »
  • PHP Manual
  • MongoLog
  • Устанавливает уровень(-ни) для записи событий

MongoLog::setLevel

(PECL mongo >= 1.2.3)

MongoLog::setLevel — Устанавливает уровень(-ни) для записи событий

Описание

public static MongoLog::setLevel ( int $level ) : void

Эта функция может использоваться для контроля многословия записи событий и типов действий, события которых должны записываться. Константы уровня MongoLog могут использоваться с побитовыми операторами для указания нескольких уровней.

<?php

// сначала укажите модуль для записи событий
MongoLog::setModule(MongoLog::CON);

// записывать события для каждого уровня
MongoLog::setLevel(MongoLog::ALL);

// записывать только предупреждения и информационные сообщения
MongoLog::setLevel(MongoLog::WARNING|MongoLog::INFO);

// записывать все, кроме хорошей активности
MongoLog::setLevel(MongoLog::ALL & (~MongoLog::FINE));

?>

Обратите внимание, что вы также должны вызвать MongoLog::setModule(), чтобы указать, события каких модулей драйвера должны записываться.

Список параметров

level

Уровень(-ни), которые вы хотите записывать.


Устанавливает модуль(-и) для записи событий

  • « MongoLog::setLevel
  • MongoPool »
  • PHP Manual
  • MongoLog
  • Устанавливает модуль(-и) для записи событий

MongoLog::setModule

(PECL mongo >= 1.2.3)

MongoLog::setModule — Устанавливает модуль(-и) для записи событий

Описание

public static MongoLog::setModule ( int $module ) : void

Эта функция может использоваться, чтобы установить, какие модули драйвера должны записываться. Константы модуля MongoLog могут использоваться с побитовыми операторами для указания нескольких модулей.

<?php

// сначала укажите уровень записи событий
MongoLog::setLevel(MongoLog::ALL);

// запись событий активности реплики
MongoLog::setModule(MongoLog::RS);

// запись событий активности реплики и активности соединения
MongoLog::setModule(MongoLog::RS|MongoLog::CON);

// записывать все события, кроме IO активности
MongoLog::setModule(MongoLog::ALL & (~MongoLog::IO));

?>

Обратите внимание, что вы также должны вызвать MongoLog::setLevel(), чтобы включить запись событий.

Список параметров

module

Модуль(-и), которые вы хотите записывать.


Класс MongoPool

(PECL mongo >= 1.2.3)

Введение

Внимание

Текущие (1.3.0+) выпуски драйвера больше не реализуют пул. Класс и его методы устарели и не должны использоваться.

Обзор классов

MongoPool {
/* Методы */
public static getSize ( void ) : int
public info ( void ) : array
public static setSize ( int $size ) : bool
}

Список изменений

Версия | Описание
1.3.0 | Функциональность была удалена и больше ничего не реализует, только выводит предупреждения об устаревании. Класс поддерживается только для обратной совместимости и будет удален в ближайшем будущем.
1.2.11 | Выдает E_DEPRECATED при использовании.

Содержание

  • MongoPool::getSize — Получает размер пула для пулов соединений
  • MongoPool::info — Возвращает информацию обо всех пулах соединений
  • MongoPool::setSize — Устанавливает размер для будущих пулов соединений


Получает размер пула для пулов соединений

  • « MongoPool
  • MongoPool::info »
  • PHP Manual
  • MongoPool
  • Получает размер пула для пулов соединений

MongoPool::getSize

(PECL mongo >= 1.2.3)

MongoPool::getSize — Получает размер пула для пулов соединений

Описание

public static MongoPool::getSize ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий размер пула.

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED, при использовании.

Примеры

Пример #1 Изменение размера пула

Возвращает размер пула по умолчанию, устанавливает новый размер пула, затем печатает новый размер пула и информацию об отладке пула. Обратите внимание, что изменение размера пула влияет только на новые пулы соединений, но не меняет старые.

<?php

$connection = new Mongo("host1");

// размер пула -1
echo "Размер пула: ".MongoPool::getSize()."\n";

echo "устанавливаем размера пула на 200\n";

MongoPool::setSize(200);

// размер пула 200
echo "Размер пула: ".MongoPool::getSize()."\n";

$conn2 = new Mongo("host2");

// осталось в host1 -2
// осталось в host2 199
var_dump(Mongo::poolDebug());

?>

Смотрите также

  • MongoPool::setSize() - Устанавливает размер для будущих пулов соединений
  • MongoPool::info() - Возвращает информацию обо всех пулах соединений
  • Документация по подключению.


Возвращает информацию обо всех пулах соединений

  • « MongoPool::getSize
  • MongoPool::setSize »
  • PHP Manual
  • MongoPool
  • Возвращает информацию обо всех пулах соединений

MongoPool::info

(PECL mongo >= 1.2.3)

MongoPool::info — Возвращает информацию обо всех пулах соединений

Описание

public MongoPool::info ( void ) : array

Возвращает массив информации обо всех пулах соединений.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Каждый пул соединений имеет идентификатор, который начинается с хоста. Для каждого пула эта функция показывает следующие поля:

in use

Количество соединений, используемых в данный момент экземплярами Mongo.

in pool

Количество соединений в данный момент в пуле (не используется).

remaining

Количество соединений, которые могут быть созданы этим пулом. Например, предположим, что в пуле осталось 5 подключений и 3 подключения в пуле. Мы могли бы создать 8 новых экземпляров MongoClient до того, как исчерпали этот пул (при условии, что ни один из экземпляров MongoClient не вышел из области видимости, возвращая свои подключения к пулу).

Отрицательное число означает, что этот пул будет поддерживать неограниченное количество подключений.

Перед созданием пула вы можете изменить максимальное количество соединений, вызвав Mongo::setPoolSize(). Как только пул обнаруживается в выходных данных этой функции, его размер не может быть изменен.

total

Общее количество соединений, разрешенных для этого пула. Должно быть больше или равно "in use" + "in pool" (или -1).

timeout

Время ожидания сокета для соединений в этом пуле. Как долго соединения в этом пуле будут пытаться подключиться к серверу, прежде чем отказаться.

waiting

Если вы ограничили размер пула, работники, запрашивающие соединения из пула, могут заблокировать, пока другие работники не вернут свои соединения. В этом поле отображается количество заблокированных работниками миллисекунд для освобождения соединений. Если это число продолжает расти, вы можете использовать MongoPool::setSize(), чтобы добавить больше соединений в ваш пул.

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED, при использовании.


Устанавливает размер для будущих пулов соединений

  • « MongoPool::info
  • Mongo »
  • PHP Manual
  • MongoPool
  • Устанавливает размер для будущих пулов соединений

MongoPool::setSize

(PECL mongo >= 1.2.3)

MongoPool::setSize — Устанавливает размер для будущих пулов соединений

Описание

public static MongoPool::setSize ( int $size ) : bool

Устанавливает максимальное количество соединений, которое смогут создавать новые пулы.

Список параметров

size

Максимальное количество соединений, которые будущие пулы смогут создать. Отрицательное число означают, что пул будет поддерживать бесконечное количество соединений.

Возвращаемые значения

Возвращает прежнее значение размера пула.

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED, при использовании.

Примеры

Пример #1 Пример использования Mongo::setPoolSize()

Если вы устанавливаете размер пула равным n, а затем создаете n соединений, попытка создатьn+1 соединение вызовет исключение MongoConnectionException.

<?php

// разрешить только одно подключение к серверу
MongoPool::setSize(1);

// создаем одно соединение с localhost: 27017
$m1 = new Mongo();

// попытка создать второе соединение с localhost:27017
// разрешено только одно соединение, поэтому это выдаст исключение
$m2 = new Mongo();

?>

Результатом выполнения данного примера будет что-то подобное:

Fatal error: Uncaught exception 'MongoConnectionException' with message 'no more connections in pool' in /path/to/php/script.php:10
Stack trace:
#0 /path/to/php/script.php(10): Mongo->__construct()
#1 {main}
  thrown in /path/to/php/script.php on line 10

Смотрите также

  • MongoPool::getSize() - Получает размер пула для пулов соединений
  • MongoPool::info() - Возвращает информацию обо всех пулах соединений
  • Документация по подключению.


Класс Mongo [устарел]

(PECL mongo >=0.9.0)

Введение

Подключение между PHP и MongoDB.

Данный класс расширяет MongoClient и обеспечивает доступ к нескольким устаревшим методам.

В целях обратной совместимости данный класс устанавливает значением по умолчанию 0 для параметра конструктора "w", что отменяет необходимость подтверждения операций записи от сервера. Подробнее смотрите в документации MongoClient::__construct().

Внимание

Данный класс УСТАРЕЛ начиная с версии 1.3.0, его использование строго не рекомендуется. Пожалуйста, используйте вместо него класс MongoClient

Обзор классов

Mongo extends MongoClient {
/* Методы */
protected connectUtil ( void ) : bool
public static getPoolSize ( void ) : int
public getSlave ( void ) : string
public getSlaveOkay ( void ) : bool
public poolDebug ( void ) : array
public static setPoolSize ( int $size ) : bool
public setSlaveOkay ([ bool $ok = TRUE ] ) : bool
public switchSlave ( void ) : string
/* Наследуемые методы */
public MongoClient::close ([ boolean|string $connection ] ) : bool
public MongoClient::connect ( void ) : bool
public MongoClient::dropDB ( mixed $db ) : array
public MongoClient::__get ( string $dbname ) : MongoDB
public static MongoClient::getConnections ( void ) : array
public MongoClient::getHosts ( void ) : array
public MongoClient::getReadPreference ( void ) : array
public MongoClient::getWriteConcern ( void ) : array
public MongoClient::killCursor ( string $server_hash , int|MongoInt64 $id ) : bool
public MongoClient::listDBs ( void ) : array
public MongoClient::selectCollection ( string $db , string $collection ) : MongoCollection
public MongoClient::selectDB ( string $name ) : MongoDB
public MongoClient::setReadPreference ( string $read_preference [, array $tags ] ) : bool
public MongoClient::setWriteConcern ( mixed $w [, int $wtimeout ] ) : bool
public MongoClient::__toString ( void ) : string
}

Содержание

  • Mongo::connectUtil — Соединяет с сервером базы данных
  • Mongo::__construct — Конструктор
  • Mongo::getPoolSize — Получает размер пула для пула соединений
  • Mongo::getSlave — Возвращает адрес, используемый для чтения slaveOkay
  • Mongo::getSlaveOkay — Получает настройки slaveOkay для этого соединения
  • Mongo::poolDebug — Возвращает информацию обо всех пулах соединений
  • Mongo::setPoolSize — Устанавливает размер будущих пулов
  • Mongo::setSlaveOkay — Изменяет настройки slaveOkay для подключения
  • Mongo::switchSlave — Выбирает новый вторичный сервер для чтения slaveOkay


Соединяет с сервером базы данных

  • « Mongo
  • Mongo::__construct »
  • PHP Manual
  • Mongo
  • Соединяет с сервером базы данных

Mongo::connectUtil

(PECL mongo >=0.9.0)

Mongo::connectUtil — Соединяет с сервером базы данных

Описание

protected Mongo::connectUtil ( void ) : bool
Внимание

Это внутренняя функция, которую вы никогда не должны вызывать самостоятельно.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Если соединение прошло успешно.

Ошибки

Выдает исключение MongoConnectionException, если не удается подключиться к базам данных.


Конструктор

  • « Mongo::connectUtil
  • Mongo::getPoolSize »
  • PHP Manual
  • Mongo
  • Конструктор

Mongo::__construct

(PECL mongo >=0.9.0)

Mongo::__construct — Конструктор

Описание

public Mongo::__construct ([ string $server [, array $options ]] )

Этот метод перезаписывает конструктор MongoClient и отключает подтвержденные записи.

Пожалуйста, посмотрите MongoClient::__construct() для описания параметров.

Возвращаемые значения

Внимание

Создание экземпляра класса выдаст предупреждение E_DEPRECATED и отключит подтвержденные записи.

Пожалуйста, используйте вместо него MongoClient.


Получает размер пула для пула соединений

  • « Mongo::__construct
  • Mongo::getSlave »
  • PHP Manual
  • Mongo
  • Получает размер пула для пула соединений

Mongo::getPoolSize

(PECL mongo >=1.2.0)

Mongo::getPoolSize — Получает размер пула для пула соединений

Описание

public static Mongo::getPoolSize ( void ) : int
Внимание

Этот метод УСТАРЕЛ с версии 1.2.3. Полагаться на него крайне не рекомендуется. Пожалуйста, используйте MongoPool::getSize() вместо него.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий размер пула.

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED, при использовании.

Примеры

Пример #1 Изменение размера пула

Возвращает размер пула по умолчанию, устанавливает новый размер пула, затем выводит новый размер пула и информацию об отладке пула. Обратите внимание, что изменение размера пула влияет только на новые пулы соединений, но не меняет старые.

<?php

$connection = new Mongo("host1");

// размер пула -1
echo "размер пула: ".Mongo::getPoolSize()."\n";

echo "устанавливаем размер пула 200\n";

Mongo::setPoolSize(200);

// размер пула 200
echo "размер пула: ".Mongo::getPoolSize()."\n";

$conn2 = new Mongo("host2");

// остается для host1 -2
// остается для host2 199
var_dump(Mongo::poolDebug());

?>

Смотрите также

  • Mongo::setPoolSize() - Устанавливает размер будущих пулов
  • Mongo::poolDebug() - Возвращает информацию обо всех пулах соединений
  • Документация по подключению.


Возвращает адрес, используемый для чтения slaveOkay

  • « Mongo::getPoolSize
  • Mongo::getSlaveOkay »
  • PHP Manual
  • Mongo
  • Возвращает адрес, используемый для чтения slaveOkay

Mongo::getSlave

(PECL mongo >=1.1.0)

Mongo::getSlave — Возвращает адрес, используемый для чтения slaveOkay

Описание

public Mongo::getSlave ( void ) : string

Находит адрес вторичного сервера, в настоящее время используемого для чтения. Это метод только для чтения: он ничего не меняет во внутреннем состоянии объекта.

Когда вы создаете соединение с базой данных, драйвер не сразу выберет вторичный вервер для использования. Таким образом, после подключения эта функция вернет значение NULL, даже если доступны дополнительные компоненты. Когда вы в первый раз делаете запрос с установленным slaveOkay, в этот момент драйвер выберет вторичный сервер для соединения. В этот момент функция вернет выбранный вторичный сервер.

См. раздел про запросы руководства для получения информации о распределении чтений среди вторичных серверов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Адрес вторичного сервера, который использует это соединение для чтения.

Возвращает NULL, если еще не связан с набором реплик или если они еще не инициализированы.

Ошибки

Вызывает ошибку уровня E_DEPRECATED

Возвращаемые результаты не очень полезны, поскольку вторичный сервер выбирается при каждом запросе и выполнении команды базы данных.

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED, при использовании.

Смотрите также

  • MongoCursor::info() - Получает информацию о создании и итерации курсора


Получает настройки slaveOkay для этого соединения

  • « Mongo::getSlave
  • Mongo::poolDebug »
  • PHP Manual
  • Mongo
  • Получает настройки slaveOkay для этого соединения

Mongo::getSlaveOkay

(PECL mongo >=1.1.0)

Mongo::getSlaveOkay — Получает настройки slaveOkay для этого соединения

Описание

public Mongo::getSlaveOkay ( void ) : bool

См. раздел про запросы руководства для получения информации о распределении чтений среди вторичных серверов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает значение slaveOkay для этого экземпляра.

Ошибки

Вызывает ошибку уровня E_DEPRECATED

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED, при использовании.

Смотрите также

  • Предпочтения чтения
  • MongoClient::getReadPreference() - Получает предпочтения чтения для соединения


Возвращает информацию обо всех пулах соединений

  • « Mongo::getSlaveOkay
  • Mongo::setPoolSize »
  • PHP Manual
  • Mongo
  • Возвращает информацию обо всех пулах соединений

Mongo::poolDebug

(PECL mongo >=1.2.0)

Mongo::poolDebug — Возвращает информацию обо всех пулах соединений

Описание

public Mongo::poolDebug ( void ) : array
Внимание

Этот метод УСТАРЕЛ с версии 1.2.3. Полагаться на него крайне не рекомендуется. Пожалуйста, используйте MongoPool::info() вместо него.

Возвращает массив информации обо всех пулах соединений.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Каждый пул соединений имеет идентификатор, который начинается с хоста. Для каждого пула эта функция показывает следующие поля:

in use

Количество соединений, используемых в данный момент экземплярами MongoClient.

in pool

Количество соединений, которые в данный момент в пуле (не используется).

remaining

Количество соединений, которые могут быть созданы этим пулом. Например, предположим, что в пуле осталось 5 подключений и 3 подключения в пуле. Мы могли бы создать 8 новых экземпляров MongoClient до того, как исчерпаем этот пул (при условии, что ни один из экземпляров MongoClient не вышел из области видимости, возвращая свои подключения к пулу).

Отрицательное число означает, что этот пул будет вызывать неограниченное количество подключений.

Перед созданием пула вы можете изменить максимальное количество соединений, вызвав Mongo::setPoolSize(). Как только пул обнаружится в выходных данных этой функции, его размер не сможет быть изменен.

timeout

Время ожидания сокета для соединений в этом пуле. Как долго соединения в этом пуле будут пытаться подключиться к серверу, прежде чем отказаться.

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED, при использовании.


Устанавливает размер будущих пулов

  • « Mongo::poolDebug
  • Mongo::setSlaveOkay »
  • PHP Manual
  • Mongo
  • Устанавливает размер будущих пулов

Mongo::setPoolSize

(PECL mongo >=1.2.0)

Mongo::setPoolSize — Устанавливает размер будущих пулов

Описание

public static Mongo::setPoolSize ( int $size ) : bool
Внимание

Этот метод УСТАРЕЛ с версии 1.2.3. Полагаться на него крайне не рекомендуется. Пожалуйста, используйте MongoPool::setSize() вместо него.

Устанавливает максимальное количество соединений, которые смогут создавать новые пулы.

Список параметров

size

Максимальное количество соединений, которые будущие пулы смогут создать. Отрицательное значение означает, что пул будет вызывать бесконечное количество соединений.

Возвращаемые значения

Возвращает прежнее значение размера пула.

Примеры

Пример #1 Пример использования Mongo::setPoolSize()

Если вы установите размер пула равным n, а затем создадите n соединений, попытка создать n+1-е соединение вызовет исключение MongoConnectionException.

<?php

// разрешаем только одно подключение к серверу
Mongo::setPoolSize(1);

// создаем одно соединение с localhost:27017
$m1 = new Mongo();

// пытаемся создать второе соединение с localhost:27017
// разрешено только одно соединение, поэтому это вызовет исключение
$m2 = new Mongo();

?>

Результатом выполнения данного примера будет что-то подобное:

Fatal error: Uncaught exception 'MongoConnectionException' with message 'no more connections in pool' in /path/to/php/script.php:10
Stack trace:
#0 /path/to/php/script.php(10): Mongo->__construct()
#1 {main}
  thrown in /path/to/php/script.php on line 10

Смотрите также

  • Mongo::getPoolSize() - Получает размер пула для пула соединений
  • Mongo::poolDebug() - Возвращает информацию обо всех пулах соединений
  • Документация по подключению.


Изменяет настройки slaveOkay для подключения

  • « Mongo::setPoolSize
  • Mongo::switchSlave »
  • PHP Manual
  • Mongo
  • Изменяет настройки slaveOkay для подключения

Mongo::setSlaveOkay

(PECL mongo >=1.1.0)

Mongo::setSlaveOkay — Изменяет настройки slaveOkay для подключения

Описание

public Mongo::setSlaveOkay ([ bool $ok = TRUE ] ) : bool

Смотрите раздел запросов для получения информации о распределении чтений среди вторичных серверов.

Список параметров

ok

Если запросы чтения должны быть отправлены вторичным серверам набора реплик для всех возможных запросов, использующих экземпляр MongoClient.

Возвращаемые значения

Возвращает предыдущее значение slaveOkay для экземпляра.

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED, при использовании.

Смотрите также

  • Предпочтения чтения
  • MongoClient::setReadPreference() - Устанавливает предпочтения чтения для соединения


Выбирает новый вторичный сервер для чтения slaveOkay

  • « Mongo::setSlaveOkay
  • Функции Mongo »
  • PHP Manual
  • Mongo
  • Выбирает новый вторичный сервер для чтения slaveOkay

Mongo::switchSlave

(PECL mongo >=1.1.0)

Mongo::switchSlave — Выбирает новый вторичный сервер для чтения slaveOkay

Описание

public Mongo::switchSlave ( void ) : string

Выбирает случайный вторичный сервер для соединения для чтения. Он вызывается драйвером автоматически и не должен использоваться. Он вызывает MongoClient::getHosts() (для обновления статуса хостов) и Mongo::getSlave() (для получения возвращаемого значения).

Смотрите раздел про запросы руководства для получения информации о распределении чтений среди вторичных серверов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Адрес вторичного сервера, который использует это соединение для чтения. Он может совпадать с предыдущим адресом, поскольку адреса выбираются случайным образом. Он может возвращать только один адрес, если доступен только один дополнительный (или только основной).

Например, если бы у нас была реплика из трех элементов с основным, вторичным и арбитром, этот метод всегда возвращал бы адрес вторичного сервера. Если вторичный сервер становится недоступным, этот метод всегда вернет адрес основного. Если основной также становится недоступным, этот метод выдаст исключение, так как арбитр не может обрабатывать чтения.

Ошибки

Выдает исключение MongoException (код ошибки 15), если оно вызывается для соединения, не связанного с репликой. Он также выдаст исключение MongoException, если не найдет ни одного (основного или дополнительного) сервера для чтения (код ошибки 16).

Список изменений

Версия | Описание
1.2.11 | Выдает E_DEPRECATED, при использовании.

Смотрите также

  • Предпочтения чтения


Функции Mongo

Содержание

  • bson_decode — Преобразовывает объект BSON в массив PHP
  • bson_encode — Преобразовывет переменную PHP в строку BSON


Преобразовывает объект BSON в массив PHP

  • « Функции Mongo
  • bson_encode »
  • PHP Manual
  • Функции Mongo
  • Преобразовывает объект BSON в массив PHP

bson_decode

(PECL mongo >=1.0.1)

bson_decode — Преобразовывает объект BSON в массив PHP

Описание

bson_decode ( string $bson ) : array

Функция нестабильная и совершенно бесполезна для 99% пользователей. Может быть полезна только в случае если вы пишете что-нибудь странное, как, например, написание собственного драйвера поверх стандартного драйвера PHP.

Список параметров

bson

Преобразуемый BSON объект.

Возвращаемые значения

Возвращает десериализованный BSON объект.


Преобразовывет переменную PHP в строку BSON

  • « bson_decode
  • Исключения »
  • PHP Manual
  • Функции Mongo
  • Преобразовывет переменную PHP в строку BSON

bson_encode

(PECL mongo >=1.0.1)

bson_encode — Преобразовывет переменную PHP в строку BSON

Описание

bson_encode ( mixed $anything ) : string

Функция нестабильна и совершенно бесполезна для 99% пользователей. Может быть полезна только в случае если вы пишете что-нибудь странное, как, например, написание собственного драйвера поверх стандартного драйвера PHP.

Список параметров

anything

Преобразуемая переменная.

Возвращаемые значения

Возвращает сериализованную строку.


Исключения

Содержание

  • MongoException
  • MongoResultException
  • MongoCursorException
  • MongoCursorTimeoutException
  • MongoConnectionException
  • MongoGridFSException
  • MongoDuplicateKeyException
  • MongoProtocolException
  • MongoExecutionTimeoutException
  • MongoWriteConcernException

Странности VMWare

Если вы работаете с VMWare в Windows и используете CIFS, приостановка виртуальной машины приведет к тому, что CIFS выйдет из синхронизации и вызовет странные ошибки при его приостановке ("The Mongo object has not been correctly initialized by its constructor"). Постоянное монтирование общих папок Windows исправит это, и вы сможете приостанавливать и отключать по желанию.

Чтобы навсегда смонтировать общие ресурсы Windows, выполните:

$ sudo update-rc.d -f umountnfs.sh remove
$ sudo update-rc.d umountnfs.sh stop 15 0 6 .

Смотрите » документацию Ubuntu для актуальных инструкций.


Класс MongoException

(PECL mongo >= 1.0.0)

Введение

Стандартное исключение Mongo.

Охватывает множество различных состояний ошибок, которые могут быть конкретизированны, но всегда будут расширять MongoException.

  • The MongoSomething object has not been correctly initialized by its constructor

    Code: 0

    Ошибка возникает, когда ваш объект Mongo не подключен к серверу базы данных.

  • zero-length keys are not allowed, did you use $ with double quotes?

    Code: 1

    Ошибка возникает, когда вы сохраняете "" в качестве ключа. Вы вообще не должны этого делать. "" может испортить доступ к подобъекту и используется MongoDB для внутреннего использования. Однако, если вы действительно хотите, вы можете установить для mongo.allow_empty_keys значение true в файле php.ini, чтобы переопределить эту проверку работоспособности. Если вы переопределите этот параметр, настоятельно рекомендуется установить строгий контроль ошибок, чтобы избежать ошибок интерполяции строк.

  • '.' not allowed in key: <key>

    Code: 2

    Ошибка возникает, когда вы указываете ключ в котором присутствует "." - это запрещено.

  • insert too large: <size>, max: <max>

    Code: 3

    Ошибка возникает, когда вы отправляете слишком много данных в базу данных одновременно: база данных будет принимать вставки только до определенного размера (в данный момент 16 Мб).

  • no elements in doc

    Code: 4

    Ошибка возникает, при сохранении документа без полей.

  • size of BSON doc is <size> bytes, max <max>MB

    Code: 5

    Ошибка возникает, при сохранении документа, размер которого больше, чем может сохранить MongoDB.

  • no documents given

    Code: 6

    Ошибка возникает, при пакетной вставке пустого массива документов.

  • MongoCollection::group takes an array, object, or MongoCode key

    Code: 7

    Ошибка возникает, при отправке неверного параметра в MongoCollection::group().

  • field names must be strings

    Code: 8

    Вы должны отформатировать селекторы полей, как массив array("field1" => 1, "field2" => 1, ..., "fieldN" => 1).

  • invalid regex

    Code: 9

    Ошибка возникает, при передаче в MongoRegex неправильного формата регулярного выражения.

  • MongoDBRef::get: $ref field must be a string

    Code: 10

  • MongoDBRef::get: $db field must be a string

    Code: 11

  • non-utf8 string: <str>

    Code: 12

    Эта ошибка возникает, если вы пытаетесь отправить в базу данных строку, отличную от utf8. Все строки, входящие в базу данных, должны быть в формате UTF8. См. Опции php.ini для опции перехода, чтобы смягчить это исключение.

  • mutex error: <err>

    Code: 13

    Драйвер использует мьютексы для синхронизации запросов и ответов в многопоточных средах. Это довольно серьезная ошибка и может не иметь трассировки стека. Это необычно и должно быть сообщено сопровождающим с любой системной информацией и шагами по воспроизведению, которые вы можете предоставить.

  • index name too long: <len>, max <max> characters

    Code: 14

    Нельзя создать индексы с именами длиннее 128 символов. Если вы получили эту ошибку, вы должны использовать опцию "name" MongoCollection::ensureIndex(), чтобы создать более короткое имя для вашего индекса.

Обзор классов

MongoException extends Exception {
}


Класс MongoResultException

(PECL mongo >=1.3.0)

Введение

MongoResultException вызывается несколькими командами-помощниками (такими как MongoCollection::findAndModify()) в случае сбоя. Исходный документ результатов доступен через MongoResultException::getDocument().

Обзор классов

MongoResultException extends MongoException {
/* Свойства */
public $document ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
public getDocument ( void ) : array
}

Свойства

document

Необработанный документ в виде массива.

Содержание

  • MongoResultException::getDocument — Извлекает весь результирующий документ ошибки


Извлекает весь результирующий документ ошибки

  • « MongoResultException
  • MongoCursorException »
  • PHP Manual
  • MongoResultException
  • Извлекает весь результирующий документ ошибки

MongoResultException::getDocument

(PECL mongo >=1.3.0)

MongoResultException::getDocument — Извлекает весь результирующий документ ошибки

Описание

public MongoResultException::getDocument ( void ) : array

Извлекает весь результирующий документ ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Полный результирующий документ в виде массива, включая, если доступно, частичные данные и дополнительные ключи.

Примеры

Пример #1 Пример использования MongoResultException::getDocument()

<?php
$mc = new MongoClient("localhost");
$c = $mc->selectCollection("test", "test");

$c->insert(array(
     "name" => "Next promo",
     "inprogress" => false,
     "priority" => 0,
     "tasks" => array( "select product", "add inventory", "do placement"),
) );

$c->insert(array(
     "name" => "Biz report",
     "inprogress" => false,
     "priority" => 1,
     "tasks" => array( "run sales report", "email report" )
) );

$c->insert(array(
     "name" => "Biz report",
     "inprogress" => false,
     "priority" => 2,
     "tasks" => array( "run marketing report", "email report" )
    ),
    array("w" => true)
);

try {
    $retval = $c->findAndModify(
         array("inprogress" => false, "name" => "Biz report"),
         array('$set' => array('$set' => array('inprogress' => true, "started" => new MongoDate()))),
         null,
         array(
            "sort" => array("priority" => -1),
            "new" => true,
        )
    );
} catch(MongoResultException $e) {
    echo $e->getMessage(), "\n";
    $res = $e->getDocument();
    var_dump($res);
}
?>

Результатом выполнения данных примеров будет что-то подобное:

$set is not valid for storage.
array(3) {
  ["lastErrorObject"]=>
  array(5) {
    ["connectionId"]=>
    int(6)
    ["err"]=>
    string(30) "$set is not valid for storage."
    ["code"]=>
    int(52)
    ["n"]=>
    int(0)
    ["ok"]=>
    float(1)
  }
  ["ok"]=>
  float(0)
  ["errmsg"]=>
  string(30) "$set is not valid for storage."
}


Класс MongoCursorException

(PECL mongo >= 1.0.0)

Введение

Вызывается, при неправильном доступе к курсору или ошибкой, при получении ответа. Обратите внимание, что это может быть вызвано любым запросом к базе данных, который получает ответ, а не только запросами. Запись, команды и любые другие операции, которые отправляют информацию в базу данных и ожидают ответа, могут вызвать исключение MongoCursorException. Единственное исключение - это новый new MongoClient() (создающий новое соединение), который будет генерировать только исключения MongoConnectionException.

Возвращает конкретное сообщение об ошибке, чтобы помочь диагностировать проблему и числовой код ошибки, связанный с причиной исключения.

Например, предположим, что вы пытались вставить два документа с одинаковым _id:

<?php

try {
    $collection->insert(array("_id" => 1), array("w" => 1));
    $collection->insert(array("_id" => 1), array("w" => 1));
}
catch (MongoCursorException $e) {
    echo "error message: ".$e->getMessage()."\n";
    echo "error code: ".$e->getCode()."\n";
}

?>
Будет выведено следующее:
error message: E11000 duplicate key error index: foo.bar.$_id_  dup key: { : 1 }
error code: 11000
Обратите внимание, что код ошибки MongoDB (11000) используется для кода ошибки PHP. Драйвер PHP использует "родной" код ошибки везде, где это возможно.

Ниже приведен список распространенных ошибок, кодов и причин. Точные ошибки выделены курсивом, ошибки, в которых сообщение может отличаться, описаны в косых чертах.

  • cannot modify cursor after beginning iteration

    Code: 0

    Ошибка возникает, когда вы вызываете метод, который устанавливает запрос после его выполнения. Сбросьте курсор и попробуйте снова.

    Например:

    <?php

    try {
            $cursor = $collection->find();
            var_dump($cursor->getNext());

            // getNext() запросил базу данных, слишком поздно для установки лимита
            $cursor->limit(1);
    }
    catch (    MongoCursorException $e) {
        echo     "Сообщение об ошибке: ".$e->getMessage()."\n";
        echo     "Код ошибки: ".$e->getCode()."\n";
    }

    // это будет работать, хотя:
    $cursor->getNext();
    $cursor->reset();
    $cursor->limit(1);

    ?>

  • Get next batch send errors

    Code: 1

    Ошибка возникает, когда не удалось отправить запрос в базу данных. Убедитесь, что база данных все еще работает и сеть в порядке.

  • cursor not found

    Code: 2

    Ошибка возникает, когда драйвер пытался получить больше результатов из базы данных, но в базе данных не было записи запроса. Обычно это означает, что время ожидания курсора на стороне сервера истекло: после нескольких минут бездействия база данных уничтожит курсор (см. MongoCursor::immortal() для получения информации для предотвращения этого).

    Например:

    <?php

    try {
            $cursor = $collection->find();
            $cursor->getNext();

            // Ждем 15 минут
            sleep(60*15);

        while (    $cursor->hasNext()) {
                $cursor->getNext();
        }
    }
    catch (    MongoCursorException $e) {
        echo     "Сообщение об ошибке: ".$e->getMessage()."\n";
        echo     "Код ошибки: ".$e->getCode()."\n";
    }

    ?>

  • cursor->buf.pos is null

    Code: 3

    Ошибка возникает, если у вас недостаточно ОЗУ или другое необычное обстоятельство.

  • couldn't get response header

    Code: 4

    Распространенная ошибка, если база данных или сеть выходит из строя. Это означает, что драйвер не смог получить ответ от соединения.

  • no db response

    Code: 5

    Это может даже не быть ошибкой, например, команда базы данных "shutdown" не возвращает ответа. Однако, если вы ожидали ответа, это означает, что база данных его не дала.

  • bad response length: %d, did the db assert?

    Code: 6

    Ошибка возникает, если ответ базы данных был меньше 0. Это, вероятно, указывает на сетевую ошибку или повреждение базы данных.

  • incomplete header

    Code: 7

    Весьма необычно. Происходит, если ответ базы данных начался правильно, но оборвался посередине. Вероятно, указывает на проблему с сетью.

  • incomplete response

    Code: 8

    Highly unusual. Occurs if the database response started out correctly, but broke off in the middle. Probably indicates a network problem.

  • couldn't find a response

    Code: 9

    Ошибка возникает, если ответ был кэширован и теперь не может быть найден.

  • error getting socket

    Code: 10

    Ошибка возникает, если сокет был закрыт или обнаружена ошибка. Драйвер должен автоматически переподключиться (если это возможно) при следующей операции.

  • couldn't find reply, please try again

    Code: 11

    Драйвер сохраняет любые ответы в базе данных, которые он не может немедленно сопоставить с запросом. Исключение возникает, если драйвер уже передал ответ на ваш запрос и не может найти ваш ответ в своем кэше.

  • error getting database response: errstr

    WSA error getting database response: errstr

    "errstr" - это ошибка io, сообщаемая непосредственно из подсистемы сокета C. В Windows сообщение об ошибке имеет префикс "WSA".

  • Timeout error

    Code: 13

    Ошибка возникает, если при ожидании завершения запроса произошла ошибка.

  • couldn't send query: <various>

    Code: 14

    Ошибка сокета C при отправке.

  • max number of retries exhausted, couldn't send query

    Code: 19

    Драйвер автоматически повторяет "простые" запросы (не команды), если первая попытка не удалась по определенным причинам. Это должно вызывать меньшее количество исключений во время аварийного переключения набора реплик (хотя вам, вероятно, все еще придется иметь дело с некоторыми из них) и устранять временные проблемы в сети.

    Также может быть вызвано тем, что драйвер вообще не может повторно подключиться к базе данных (если, например, база данных недоступна).

    Версия 1.2.2+.

Ошибки, прошедшие через базу данных

Ошибки базы данных всегда должны вызывать исключения MongoCursorExceptions для запросов. Сообщения об ошибках и коды отправляются непосредственно из базы данных, и вы должны увидеть соответствующие ошибки в журнале базы данных.

Некоторые ошибки базы данных перечислены ниже:

  • E11000 duplicate key error index: foo.bar.$X dup key: { /* ... */ }

    Code: 11000

    Ошибка базы данных для дубликатов ключей.

  • not master

    Codes: 10107, 13435, and 10058

    Не основные ошибки, проходящие через базу данных. Каждый из них приведет к отключению драйвера и попытке найти новый основной сервер. Фактическая ошибка, которую вы получаете при отработке отказа, может не быть ошибкой "not master", в зависимости от того, когда происходит изменение на основном сервере.

Обзор классов

MongoCursorException extends MongoException {
}

Содержание

  • MongoCursorException::getHost — Имя хоста сервера, на котором произошла ошибка


Имя хоста сервера, на котором произошла ошибка

  • « MongoCursorException
  • MongoCursorTimeoutException »
  • PHP Manual
  • MongoCursorException
  • Имя хоста сервера, на котором произошла ошибка

MongoCursorException::getHost

(PECL mongo >= 1.0.0)

MongoCursorException::getHost — Имя хоста сервера, на котором произошла ошибка

Описание

public MongoCursorException::getHost ( void ) : string

Возвращает имя хоста сервера, на котором произошла ошибка.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя хоста, или NULL, если не удалось определить.


Класс MongoCursorTimeoutException

(PECL mongo >= 1.0.0)

Введение

Вызывается при превышении времени ожидания запроса. Вы можете установить время ожидания до появления этого исключения, вызвав MongoCursor::timeout() у курсора или установив MongoCursor::$timeout. Статическая переменная полезна для запросов, для команд базы данных и MongoCollection::findOne(), которые неявно используют курсоры.

Обзор классов

MongoCursorTimeoutException extends MongoCursorException {
}


Класс MongoConnectionException

(PECL mongo >= 1.0.0)

Введение

Выбрасывается, когда драйвер не может подключиться к базе данных.

Существует ряд возможных сообщений об ошибках, которые помогут вам диагностировать проблему подключения. Это:

  • No candidate servers found

    Ошибка возникает, когда драйвер не может установить соединение с MongoDB (выполняется ReadPreferences, если указано).

  • No server name given.

    Ошибка возникает, если вы передаете "" в качестве наименования сервера, возможно, из-за опечатки с интерполяцией строк, например, "$servr" вместо "$server".

  • failed to get host [hostname] or port [portnum] from [server].

    Ошибка возникает, когда строка сервера была искажена. "[hostname]" и "[portnum]" будет так много, что драйвер не сможет их обработать.

  • Operation in progress

    Ошибка возникает, когда время подключения к базе данных истекло.

  • Transport endpoint is not connected

    Ошибка возникает, когда строка подключения неверна, драйвер не может даже найти сервер базы данных.

  • couldn't determine master

    Ошибка возникает, когда ни один сервер в соединении с набором реплик не был определен как основной.

  • couldn't get host info for [server]

    Ошибка возникает, когда DNS не может разрешить адрес сервера, который вы указали. Это может быть легко вызвано опечаткой, например, "server" вместо "$server".

  • Invalid Argument

    Ошибка возникает, при попытке подключиться к работающей машине, если база данных на самом деле не работает. Убедитесь, что вы запустили сервер базы данных перед подключением.

  • Permission denied

    Ошибка возникает, когда сокет не может быть открыт из-за проблем с разрешениями. В вариантах Red Hat это может быть вызвано настройкой по умолчанию, которая не позволяет Apache создавать сетевые подключения. Вы можете переопределить этот параметр, выполнив:

    $ /usr/sbin/setsebool -P httpd_can_network_connect 1
    затем перезапустите Apache.

Если сообщение об ошибке не указано выше, это, вероятно, ошибка с сокетом C, которую вы можете поискать в интернете.

Обзор классов

MongoConnectionException extends MongoException {
}


Класс MongoGridFSException

(PECL mongo >= 1.0.0)

Введение

Вызывается при ошибке чтения или записи файлов в базу данных или из нее.

Обзор классов

MongoGridFSException extends MongoException {
}

Коды ошибок

Коды ошибок MongoGridFSException
Код | Сообщение | Причина
3 | Could not open file $filename | Возникает, при попытке сохранить неверный файл, например, каталог
4 | File $filename is too large: $filesize bytes | Максимальный размер файла в GridFS составляет 4 Гб.
5 | could not find filehandle | У ресурса нет файлового дескриптора
6 | no file is associate with this filehandle | Ресурс не является файловым ресурсом
7 | error setting up file: $filenames | Не удается открыть файл для чтения
9 | error reading file $filenames | Ошибка чтения файла
10 | error reading filehandle | Не удалось прочитать данные с ресурса
11 | could not find uploaded file %s | Имя файла не похоже на загруженный файл
12 | Couldn't find tmp_name in the $_FILES array. Are you sure the upload worked? | Загрузка файла, вероятно, не удалась
13 | tmp_name was not a string or an array | Указано неверное имя файла
14 | couldn't find file size | Свойство length отсутствует
15 | Cannot find filename | Имя файла не указано, и свойство filename не задано
16 | could not open destination file %s | Имя файла назначения не доступно для записи
17 | error reading chunk of file | Фрагмент данных поврежден
18 | couldn't create a php_stream | Не удалось создать ресурс потока
19 | couldn't find property | Фрагмент данных поврежден
20 | chunk number has wrong size (size) when the max is maxchunksize | Фрагмент данных больше, чем ожидалось
21 | chunk has wrong format | Фрагмент данных поврежден


Класс MongoDuplicateKeyException

(PECL mongo >= 1.5.0)

Введение

Вызывается, при попытке вставить документ в коллекцию, которая уже содержит те же значения для уникальных ключей.

Обзор классов

MongoDuplicateKeyException extends MongoWriteConcernException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
public MongoWriteConcernException::getDocument ( void ) : array
}

Примеры

Пример #1 Перехватываем MongoDuplicateKeyException

<?php
$mc = new MongoClient("localhost");

$c = $mc->selectCollection("test", "test");

$c->insert(array('_id' => 1));
try {
    $c->insert(array('_id' => 1));
} catch (MongoWriteConcernException $e) {
    echo $e->getMessage(), "\n";
}
?>

Результатом выполнения данных примеров будет что-то подобное:

localhost:27017: insertDocument :: caused by :: 11000 E11000 duplicate key error index: test.test.$_id_  dup key: { : 1 }


Класс MongoProtocolException

(PECL mongo >= 1.5.0)

Введение

При обращении к MongoDB 2.6.0 и более поздним версиям, некоторые операции (например, запись) могут вызвать исключение MongoProtocolException, когда ответ от сервера не имеет смысла - например, во время сбоя сети (мы могли прочитать весь ответ) или повреждения данных.

Это исключение также выдается при попытке использовать новые протоколы, которые поддерживает сервер, например, используя MongoWriteBatch при обращении к серверу MongoDB до версии 2.6.0.

Обзор классов

MongoProtocolException extends MongoException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}

Примеры

Пример #1 Отлавливаем MongoProtocolException

Выполнение следующего примера с MongoDB до 2.6.0 вызовет исключение MongoProtocolException

<?php
$mc = new MongoClient("localhost");
$c = $mc->selectCollection("test", "test");

try {
    $batch = new MongoInsertBatch($c);
} catch(MongoProtocolException $e) {
    echo $e->getMessage();
}
?>

Результатом выполнения данных примеров будет что-то подобное:

Текущий основной сервер не имеет API записи


Класс MongoExecutionTimeoutException

(PECL mongo >= 1.5.0)

Введение

Вызывается, при истечении времени ожидания со стороны сервера (то есть в MongoDB).

Чтобы настроить порог времени ожидания операции, используйте MongoCursor::maxTimeMS() или параметр команды "maxTimeMS".

Обзор классов

MongoExecutionTimeoutException extends MongoException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}


Класс MongoWriteConcernException

(PECL mongo >= 1.5.0)

Введение

MongoWriteConcernException генерируется при сбое записи. См. Гарантии записи, чтобы узнать, как установить пороги ошибок.

До MongoDB 2.6.0 команда » getLastError определяла, была ли ошибка записи.

Обзор классов

MongoWriteConcernException extends MongoCursorException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
public getDocument ( void ) : array
/* Наследуемые методы */
public MongoCursorException::getHost ( void ) : string
}

Содержание

  • MongoWriteConcernException::getDocument — Получить ошибочный документ


Получить ошибочный документ

  • « MongoWriteConcernException
  • Список изменений »
  • PHP Manual
  • MongoWriteConcernException
  • Получить ошибочный документ

MongoWriteConcernException::getDocument

(PECL mongo >= 1.5.0)

MongoWriteConcernException::getDocument — Получить ошибочный документ

Описание

public MongoWriteConcernException::getDocument ( void ) : array

Возвращает актуальный ответ сервера, который был интерпритирован как ошибка.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Документ MongoDB, если доступен, в виде массива.


Список изменений

Следующие изменения были произведены с классами/функциями/методами данного расширения.

MongoDB PHP Driver 1.5.0

Поддерживает все новые функции для MongoDB 2.6, в том числе:

  • Агрегат теперь может вернуть курсор
  • Агрегационный конвейер теперь можно объяснить
  • Возможно установить maxTimeMS для команд и запросов
  • Прозрачная поддержка нового командного API записи MongoDB
  • Новые классы MongoWriteBatch (с использованием нового API записи MongoDB)
  • Поддержка функций MongoDB Enterprise (например, Kerberos, LDAP, X509)
  • Возможность настройки приемлемой задержки сервера для вторичных чтений (secondaryAcceptableLatencyMS)

В этом выпуске некоторые функциональные возможности драйвера, которые ранее были задокументированы как устаревшие, теперь формально вызывают уведомления об устаревании. Это включает:

  • Создание класса Mongo
  • Вызов MongoCursor::slaveOkay()
  • Параметры "wtimeout" и "safe" для операций записи MongoCollection
  • Управление открытыми свойствами в основных классах (таких как $collection->w)

Замечание:

Ранее устаревшие функции не были удалены.

Изменения в поведении:

  • Установка параметра mongo.native_long INI теперь вызывает ошибку на 32-битных платформах, и по умолчанию имеет значение true для 64-битных платформ.

MongoDB PHP Driver 1.4.0

Серия 1.4 представила фундаментальные изменения в том, как создаются соединения с серверами MongoDB. Драйвер теперь использует собственные потоки PHP, поэтому применяются все обычные параметры потоков PHP. Кроме того, была добавлена экспериментальная поддержка контекста потока.

В серии 1.4.x также добавлена поддержка MongoDB 2.4.x.

Однако наиболее важные улучшения касаются обработки наборов реплик, особенно узлов с истекшим временем ожидания и узлов, которые недоступны по различным причинам. Помимо улучшений в обработке набора реплик, этот выпуск решает проблемы с настройками чтения через узлы mongos. Также добавлена поддержка подключений с поддержкой SSL, а также параметров строки журнала и fsync.

MongoDB PHP Driver 1.3.0

Серия 1.3 представила несколько основных изменений в расширении, таких как полностью переписанная обработка соединений (и удаление механизма объединения), поддержка предпочтений чтения и изменение по умолчанию гарантий записи, которые должны быть подтверждены, путем введения нового класса MongoClient, который служит заменой устаревшему классу Mongo.

Драйвер теперь также поддерживает подключение к нескольким экземплярам mongos (маршрутизатор Mongo Shard) для балансировки нагрузки.

Другие улучшения включают улучшенное ведение журналов для упрощения отладки обработки соединений с MongoLog и поддержку » структуры агрегации с помощью метода MongoCollection::aggregate().

Изменения в существующих методах

Ниже приведен список всех улучшений существующих методов с момента их появления.

Version | Function | Description
1.7.0 | MongoDB::execute | Этот метод устарел из-за того, что команда лежащий в основе eval устарела в MongoDB 3.0+.
1.6.0 | MongoClient::__construct | Добавлена поддержка "SCRAM-SHA-1" в опции "authMechanism".
 | MongoCollection::count | Теперь второй параметр options является массивом опций. limit и skip в качестве второго и третьего параметра, соотвественно, являются устаревшими
 | MongoDB::getCollectionNames | Изменен первый параметр, чтобы он был массивом опций. До версии 1.6.0 первым параметром было булево значение, указывающее на параметр "includeSystemCollections".
 | MongoDB::listCollections | Изменен первый параметр, чтобы он был массивом опций. До версии 1.6.0 первым параметром было булево значение, указывающее на параметр "includeSystemCollections".
1.5.0 | log_cmd_delete | Доступна только при соединении с MongoDB 2.6.0+
 | log_cmd_insert | Доступна только при соединении с MongoDB 2.6.0+
 | log_cmd_update | Доступна только при соединении с MongoDB 2.6.0+
 | log_write_batch | Доступно только при подключении к MongoDB 2.6.0+
 | MongoBinData::__construct | Значение по умолчанию изменено с 2 (MongoBinData::BYTE_ARRAY) на 0 (MongoBinData::GENERIC).
 | MongoClient::__construct | Добавлены "authMechanism", "gssapiServiceName" и "secondaryAcceptableLatencyMS".
 | MongoClient::__construct | Добавлена опция "authSource".
 | MongoCollection::aggregate | Добавлен необязательный аргумент options
 | MongoCollection::batchInsert | Добавлена опция "wTimeoutMS", которая заменяет "wtimeout". Выдает E_DEPRECATED, когда используется "wtimeout". Добавлена опция "socketTimeoutMS", которая заменяет "timeout". Выдает E_DEPRECATED, когда используется "timeout". Выдает E_DEPRECATED, когда используется "safe".
 | MongoCollection::ensureIndex | Переименован параметр "wtimeout" в "wTimeoutMS". Выдает E_DEPRECATED, когда используется "wtimeout". Переименован параметр "timeout" в "socketTimeoutMS". Выдает E_DEPRECATED, когда используется "timeout". Выдает E_DEPRECATED, когда используется "safe".
 | MongoCollection::findOne | Добавлен необязательный параметр options.
 | MongoCollection::group | Добавлена опция "maxTimeMS".
 | MongoCollection::insert | Добавлена опция "wTimeoutMS", которая заменяет "wtimeout". Выдает E_DEPRECATED, когда используется "wtimeout". Добавлена опция "socketTimeoutMS", которая заменяет "timeout". Выдает E_DEPRECATED, когда используется "timeout". Выдает E_DEPRECATED, когда используется "safe".
 | MongoCollection::remove | Добавлена опция "wTimeoutMS" в замен устаревшей "wtimeout". Ошибка уровня E_DEPRECATED будет вызвана в случае использования "wtimeout". Добавлена опция "socketTimeoutMS" в замен устаревшей "timeout". Ошибка уровня E_DEPRECATED будет вызвана в случае использования "timeout". Ошибка уровня E_DEPRECATED будет вызвана в случае использования "safe".
 | MongoCollection::save | Добавлена опция "wTimeoutMS", которая заменяет "wtimeout". Выдает E_DEPRECATED, когда используется "wtimeout". Добавлена опция "socketTimeoutMS", которая заменяет "timeout". Выдает E_DEPRECATED, когда используется "timeout". Выдает E_DEPRECATED, когда используется "safe".
 | MongoCollection::toIndexString | Этот метод устарел.
 | MongoCollection::update | Добавлена опция "wTimeoutMS", которая заменяет "wtimeout". Выдает E_DEPRECATED, когда используется "wtimeout". Добавлена опция "socketTimeoutMS", которая заменяет "timeout". Выдает E_DEPRECATED, когда используется "timeout". Выдает E_DEPRECATED, когда используется "safe".
 | MongoCursor::slaveOkay | Метод устарел. Используйте вместо него MongoCursor::setReadPreference и .
 | MongoDB::command | Переименована опция "timeout" в "socketTimeoutMS". Выдает E_DEPRECATED при использовании "timeout". Добавлен параметр ссылки на hash.
1.4.5 | MongoCursor::batchSize | До версии 1.4.5 этот метод генерировал исключение MongoCursorException, если курсор уже начал итерацию.
1.4.0 | MongoClient::__construct | Добавлена опция "ssl" и поддержка подключения по SSL. Добавлена опция "wTimeoutMS", которая заменяет "wTimeout". Выдает E_DEPRECATED, при использовании "slaveOkay" или "timeout".
 | MongoCursor::hint | Аргумент index теперь поддерживает имена индексов, как строковые значения. В версиях до 1.4.0 принимались только значения массива или объекта.
 | MongoCursor::setFlag | Добавлена поддержка флага 3 (OPLOG_REPLAY). Версии до 1.4.0 будут выдавать предупреждение о том, что флаг не поддерживается.
 | MongoDB::createCollection | В версиях до 1.4.0 все параметры были аргументами метода. Синопсис функций в этих старых версиях: public MongoCollectionMongoDB::createCollection stringname boolcappedFALSE intsize0 intmax0 Значение параметров такое же, как описано выше в аргументе options.
 | MongoId::__construct | Исключение выдается при передаче неверной строки
1.3.4 | MongoClient::__construct | Добавлены опции "connectTimeoutMS" и "socketTimeoutMS".
 | MongoCollection::batchInsert | Добавлена опция "wtimeout".
 | MongoCollection::ensureIndex | Добавлена опция "wtimeout".
 | MongoCollection::insert | Добавлена опция "wtimeout".
 | MongoCollection::remove | Добавлена опция "wtimeout".
 | MongoCollection::update | Добавлена опция "wtimeout".
1.3.3 | MongoClient::getReadPreference | Возвращаемое значение изменилось, чтобы соответствовать MongoClient::setReadPreference. Значение type было изменено с числа на строку, type_string была удалена, и tagsets теперь выражают теги, как пары ключ/значение вместо строк, разделенных двоеточиями.
 | MongoCollection::getReadPreference | Возвращаемое значение было изменено, чтобы соответствовать MongoCollection::setReadPreference. Значение type было изменено с числа на строку, type_string была удалена, и tagsets теперь выражают теги как пары ключ/значение вместо строк, разделенных двоеточиями.
 | MongoDB::getReadPreference | Возвращаемое значение было изменено, чтобы соответствовать MongoDB::setReadPreference. Значение type было изменено с числа на строку, type_string была удалена, и tagsets теперь выражают теги как пары ключ/значение вместо строк, разделенных двоеточиями.
1.3.0 | MongoClient::close | Параметр connection к этой функции был добавлен в 1.3.0. До этого этим методом закрывалось только соединение записи.
 | MongoClient::__construct | Добавлены опции "readPreference", "readPreferenceTags", "w", и "wTimeout".
 | MongoCollection::batchInsert | Добавлена опция "w".
 | MongoCollection::ensureIndex | Добавлена опция "w". Параметр options больше не принимает логическое значение для обозначения уникального индекса. Вместо этого это теперь должно быть передано array('unique' => true).
 | MongoCollection::insert | Добавлена опция "w" option. Параметр options больше не принимает логическое значение для обозначения подтвержденной записи. Вместо этого теперь это должно быть сделано с array('w' => 1) (поведение по умолчанию MongoClient).
 | MongoCollection::remove | Добавлена опция "w". Параметр options больше не принимает логические значения для определения поведения как "justOne". Вместо этого необходимо использовать array('justOne' => true).
 | MongoCollection::update | Добавлена опция "w". Параметр options больше не принимает логическое значение для обозначения слияния. Вместо этого теперь необходимо указывать array('upsert' => true).
 | MongoDB::listCollections | Добавлен параметр includeSystemCollections.
 | MongoGridFSCursor::key | Возвращается _id документа, как строковое значение, поскольку ключ должен быть уникальным. До 1.3.0, возвращался параметр filename.
1.2.11 | Mongo::getPoolSize | Выдает E_DEPRECATED, при использовании.
 | Mongo::getSlave | Выдает E_DEPRECATED, при использовании.
 | Mongo::getSlaveOkay | Выдает E_DEPRECATED, при использовании.
 | Mongo::poolDebug | Выдает E_DEPRECATED, при использовании.
 | Mongo::setSlaveOkay | Выдает E_DEPRECATED, при использовании.
 | Mongo::switchSlave | Выдает E_DEPRECATED, при использовании.
 | MongoBinData::__construct | Выдает E_DEPRECATED, когда второй аргумент не используется. Значение type по умолчанию может измениться в ближайшем будущем.
 | MongoCollection::ensureIndex | Выдает E_DEPRECATED, когда options являются скалярными.
 | MongoCollection::getSlaveOkay | Выдает E_DEPRECATED при использовании.
 | MongoCollection::group | Выдает E_DEPRECATED, когда используется options, как scalar.
 | MongoCollection::remove | Ошибка уровня E_DEPRECATED если options скалярного типа.
 | MongoCollection::setSlaveOkay | Выдает E_DEPRECATED при использовании.
 | MongoCollection::update | Выдает E_DEPRECATED, когда options являются scalar.
 | MongoCursor::doQuery | Выдает E_DEPRECATED при использовании.
 | MongoDB::authenticate | Выдает E_DEPRECATED при использовании. Пожалуйста, передавайте детали аутентификации в конструкторе.
 | MongoDB::forceError | Выдает E_DEPRECATED при использовании.
 | MongoDB::getSlaveOkay | Выдает E_DEPRECATED при использовании.
 | MongoDB::prevError | Выдает E_DEPRECATED при использовании.
 | MongoDB::resetError | Выдает E_DEPRECATED при использовании.
 | MongoDB::setSlaveOkay | Выдает E_DEPRECATED при использовании.
 | MongoPool::getSize | Выдает E_DEPRECATED, при использовании.
 | MongoPool::info | Выдает E_DEPRECATED, при использовании.
 | MongoPool::setSize | Выдает E_DEPRECATED, при использовании.
1.2.10 | MongoClient::getHosts | Добавлена поддержка нерепликазных наборов. Возвращенные элементы массива теперь также включают имя hostname и port.
1.2.7 | MongoCollection::batchInsert | Добавлена опция "continueOnError".
1.2.5 | MongoGridFS::storeUpload | Изменен второй параметр на массив метаданных. До 1.2.5 вторым параметром была необязательная строка, переопределяющая имя файла.
1.2.0 | MongoClient::close | До версии 1.2.0 драйвер не использовал постоянные соединения по умолчанию, и все соединения закрывались, как только выход из MongoDB выходил из области действия. Начиная с версии 1.2.0, это больше не так, и плохая идея - вызывать close, так как в итоге вы можете перегружать сервер соединениями под высокой нагрузкой.
 | MongoClient::__construct | Добавлены опции "username" и "password". Удалена опция "persist", так как все соединения теперь являются постоянными. Ее все еще можно использовать, но это ни на что не влияет. "persist" Когда соединение должно быть постоянным. Если установлено, соединение будет постоянным. Строковое представление значения используется в качестве идентификатора для соединения, поэтому два экземпляра MongoClient, которые инициализируются array("persist" => "foobar"), будут использовать одно и то же соединение с базой данных, тогда как экземпляр, инициализированный array("persist" => "barbaz"), будет использовать другое соединение с базой данных. Опция "replicaSet" теперь принимает строку, а не логическое значение.
 | MongoCollection::ensureIndex | Добавлена опция "timeout".
 | MongoCollection::insert | Добавлена опция "timeout".
 | MongoCollection::remove | Добавлена опция "timeout".
 | MongoCollection::save | Добавлена опция "timeout".
 | MongoCollection::update | Добавлена опция "timeout".
 | MongoDB::command | Добавлен параметр options с одним вариантом: "timeout".
1.1.0 | MongoCursor::info | Добавлен ряд других полей, включая id (идентификатор курсора), at (счетчик драйвера для которого документ является текущим), numReturned (число, возвращаемое сервером в текущем пакете) и server (на какой сервер был отправлен запрос) - полезно в сочетании с .
1.0.11 | MongoCollection::ensureIndex | Опция "safe" запускает первичное аварийное переключение, если это необходимо. MongoException будет выброшено, если имя индекса (либо сгенерированное, либо установленное) длиннее 128 байт.
 | MongoCollection::insert | Отключается при ошибках "not master", если установлен "safe".
 | MongoCollection::remove | Ошибки сброса соединения на "не мастере" если установлена "safe".
 | MongoCollection::save | Отключается при ошибках "not master", если установлен "safe".
 | MongoCollection::update | Отключается при ошибках "not master", если установлен "safe".
1.0.10 | MongoCursor::info | Добавлено поле started_iterating, логическое значение, указывающее, является ли курсор пре- или пост-запросом.
1.0.9 | MongoClient::__construct | Добавлена опция "replicaSet".
 | MongoCollection::batchInsert | Добавлена возможность передавать целые числа в опцию "safe", которая ранее принимала только логические значения. Добавлена опция "fsync".
 | MongoCollection::insert | Добавлена возможность передавать целые числа в опцию "safe", которая ранее принимала только логические значения. Добавлена опция "fsync". Тип возвращаемого значения был изменен на массив, содержащий информацию об ошибке, если используется параметр "safe". В противном случае логическое значение возвращается, как и раньше.
 | MongoCollection::remove | Добавлена возможность передавать целые числа в опцию "safe", которая ранее принимала только логические значения. Добавлена опция "fsync". Тип возвращаемого значения изменен на массив, содержащий информацию об ошибке если установлена опция "safe". В протовном случае, как и раньше, возвращается логическое значения.
 | MongoCollection::save | Добавлена опция "fsync".
 | MongoCollection::update | Добавлена возможность передавать целые числа в опцию "safe", которая ранее принимала только логические значения. Добавлена опция "fsync". Тип возвращаемого значения был изменен на массив, содержащий информацию об ошибке, если используется параметр "safe". В противном случае логическое значение возвращается, как и раньше.
1.0.7 | MongoCollection::count | Добавлены limit и skip как второй и третий параметр соотвественно
1.0.5 | MongoCollection::batchInsert | Добавлен параметр options.
 | MongoCollection::ensureIndex | Добавлена опция "name" для переопределения создания имени индекса.
 | MongoCollection::remove | Второй парамент теперь принимает массив опция. До версии 1.0.5 второй параметр принимал логическое значение, устанавливавшее опцию "safe".
 | MongoCollection::save | Добавлен параметр options.
 | MongoCollection::update | Добавлена опция "safe".
1.0.2 | MongoClient::__construct | Изменен конструктор, чтобы принимать массив опций. До версии 1.0.2 конструктор принимал следующие параметры: server Имя сервера. connect Необязательный логический параметр, указывающий, должен ли конструктор подключаться к базе данных перед возвратом. По умолчанию TRUE. persistent Если соединение должно быть постоянным. paired Если соединение должно быть сопряжено.
 | MongoCollection::ensureIndex | Изменен параметр options с логического на массив. До версии 1.0.2 вторым параметром было необязательное логическое значение, указывающее уникальный индекс.
 | MongoCollection::insert | Изменен второй параметр, чтобы он был массивом опций. До версии 1.0.2 вторым параметром был логический параметр, указывающий "safe" параметр.
1.0.1 | MongoCollection::insert | Выдает исключение MongoCursorException, если установлена опция "safe" и вставка завершается неудачно.
 | MongoCollection::update | Изменен параметр options с логического на массив. До версии 1.0.1 вторым параметром было необязательное логическое значение, определяющее слияние.


Драйвер MongoDB

В отличие от расширения mongo, это расширение поддерживает разрабатывается поверх библиотек » libmongoc и » libbson. Оно предоставляет минимальное API для ключевого функционала драйвера: команды, запросы, записи, управление соединением и сериализация BSON.

Самодельные библиотеки PHP, требующие это расширение, могут предоставлять высокоуровневые API, такие как: сборщики запросов, методы помощники для индивидуальных команд и GridFS. Разработчики приложений должны рассмотреть вопрос об использовании этого расширения совместно с » библиотекой MongoDB PHP, которая реализует такие же высокоуровневые API драйвера MongoDB, как и для других языков. Подобное разделение задач позволяет этому драйверу сконцентрироваться на главных задачах, стоящих перед ним - повышение производительности.

  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Предопределенные константы
  • Обучающие материалы
    • Использование библиотеки PHP для MongoDB (PHPLIB)
    • Мониторинг производительности приложения (Application Performance Monitoring или APM)
  • Архитектура и внутреннее устройство драйвера — Обзор архитектуры драйвера и ее особенностей
    • Архитектура — Обзор архитектуры
    • Соединения — Обработка соединения и постоянство
    • Постоянные данные — Сериализация и десериализация переменных PHP в MongoDB
  • Безопасность
    • Атака с помощью инъекций в запросе
    • Атака с помощью инъекций в скриптах
  • MongoDB\Driver — Классы драйвера MongoDB
    • MongoDB\Driver\Manager — Класс MongoDB\Driver\Manager
    • MongoDB\Driver\Command — Класс The MongoDB\Driver\Command
    • MongoDB\Driver\Query — Класс MongoDB\Driver\Query
    • MongoDB\Driver\BulkWrite — Класс MongoDB\Driver\BulkWrite
    • MongoDB\Driver\Session — Класс MongoDB\Driver\Session
    • MongoDB\Driver\ClientEncryption — Класс MongoDB\Driver\ClientEncryption
    • MongoDB\Driver\WriteConcern — Класс MongoDB\Driver\WriteConcern
    • MongoDB\Driver\ReadPreference — Класс MongoDB\Driver\ReadPreference
    • MongoDB\Driver\ReadConcern — Класс MongoDB\Driver\ReadConcern
    • MongoDB\Driver\Cursor — Класс MongoDB\Driver\Cursor
    • MongoDB\Driver\CursorId — Класс MongoDB\Driver\CursorId
    • MongoDB\Driver\CursorInterface — Интерфейс MongoDB\Driver\CursorInterface
    • MongoDB\Driver\Server — Класс MongoDB\Driver\Server
    • MongoDB\Driver\WriteConcernError — Класс The MongoDB\Driver\WriteConcernError
    • MongoDB\Driver\WriteError — Класс MongoDB\Driver\WriteError
    • MongoDB\Driver\WriteResult — Класс MongoDB\Driver\WriteResult
  • MongoDB\BSON — Классы типов BSON и функции сериализации
    • Функции
    • MongoDB\BSON\Binary — Класс MongoDB\BSON\Binary
    • MongoDB\BSON\Decimal128 — Класс MongoDB\BSON\Decimal128
    • MongoDB\BSON\Javascript — Класс MongoDB\BSON\Javascript
    • MongoDB\BSON\MaxKey — Класс MongoDB\BSON\MaxKey
    • MongoDB\BSON\MinKey — Класс MongoDB\BSON\MinKey
    • MongoDB\BSON\ObjectId — Класс MongoDB\BSON\ObjectId
    • MongoDB\BSON\Regex — Класс MongoDB\BSON\Regex
    • MongoDB\BSON\Timestamp — Класс MongoDB\BSON\Timestamp
    • MongoDB\BSON\UTCDateTime — Класс MongoDB\BSON\UTCDateTime
    • MongoDB\BSON\Type — Интерфейс MongoDB\BSON\Type
    • MongoDB\BSON\Persistable — Интерфейс MongoDB\BSON\Persistable
    • MongoDB\BSON\Serializable — Интерфейс MongoDB\BSON\Serializable
    • MongoDB\BSON\Unserializable — Интерфейс MongoDB\BSON\Unserializable
    • MongoDB\BSON\BinaryInterface — Интерфейс MongoDB\BSON\BinaryInterface
    • MongoDB\BSON\Decimal128Interface — Интерфейс MongoDB\BSON\Decimal128Interface
    • MongoDB\BSON\JavascriptInterface — Интерфейс MongoDB\BSON\JavascriptInterface
    • MongoDB\BSON\MaxKeyInterface — Интерфейс MongoDB\BSON\MaxKeyInterface
    • MongoDB\BSON\MinKeyInterface — Интерфейс MongoDB\BSON\MinKeyInterface
    • MongoDB\BSON\ObjectIdInterface — Интерфейс MongoDB\BSON\ObjectIdInterface
    • MongoDB\BSON\RegexInterface — Интерфейс MongoDB\BSON\RegexInterface
    • MongoDB\BSON\TimestampInterface — Интерфейс MongoDB\BSON\TimestampInterface
    • MongoDB\BSON\UTCDateTimeInterface — Интерфейс MongoDB\BSON\UTCDateTimeInterface
    • MongoDB\BSON\DBPointer — Класс MongoDB\BSON\DBPointer (устаревший)
    • MongoDB\BSON\Int64 — Класс MongoDB\BSON\Int64
    • MongoDB\BSON\Symbol — Класс MongoDB\BSON\Symbol (устаревший)
    • MongoDB\BSON\Undefined — Класс MongoDB\BSON\Undefined (устарело)
  • MongoDB\Driver\Monitoring — Классы мониторинга и функции подписчика
    • Функции
    • MongoDB\Driver\Monitoring\CommandFailedEvent — Класс MongoDB\Driver\Monitoring\CommandFailedEvent
    • MongoDB\Driver\Monitoring\CommandStartedEvent — Класс MongoDB\Driver\Monitoring\CommandStartedEvent
    • MongoDB\Driver\Monitoring\CommandSucceededEvent — Класс MongoDB\Driver\Monitoring\CommandSucceededEvent
    • MongoDB\Driver\Monitoring\CommandSubscriber — Интерфейс The MongoDB\Driver\Monitoring\CommandSubscriber
    • MongoDB\Driver\Monitoring\Subscriber — Интерфейс MongoDB\Driver\Monitoring\Subscriber
  • MongoDB\Driver\Exception — Классы исключений
    • MongoDB\Driver\Exception\AuthenticationException — Класс MongoDB\Driver\Exception\AuthenticationException
    • MongoDB\Driver\Exception\BulkWriteException — Класс MongoDB\Driver\Exception\BulkWriteException
    • MongoDB\Driver\Exception\CommandException — Класс MongoDB\Driver\Exception\CommandException
    • MongoDB\Driver\Exception\ConnectionException — Класс MongoDB\Driver\Exception\ConnectionException
    • MongoDB\Driver\Exception\ConnectionTimeoutException — Класс MongoDB\Driver\Exception\ConnectionTimeoutException
    • MongoDB\Driver\Exception\EncryptionException — Класс MongoDB\Driver\Exception\EncryptionException
    • MongoDB\Driver\Exception\Exception — Интерфейс MongoDB\Driver\Exception\Exception
    • MongoDB\Driver\Exception\ExecutionTimeoutException — Класс MongoDB\Driver\Exception\ExecutionTimeoutException
    • MongoDB\Driver\Exception\InvalidArgumentException — Класс MongoDB\Driver\Exception\InvalidArgumentException
    • MongoDB\Driver\Exception\LogicException — Класс MongoDB\Driver\Exception\LogicException
    • MongoDB\Driver\Exception\RuntimeException — The MongoDB\Driver\Exception\RuntimeException class
    • MongoDB\Driver\Exception\ServerException — Класс MongoDB\Driver\Exception\ServerException
    • MongoDB\Driver\Exception\SSLConnectionException — Класс MongoDB\Driver\Exception\SSLConnectionException (устаревший)
    • MongoDB\Driver\Exception\UnexpectedValueException — Класс MongoDB\Driver\Exception\UnexpectedValueException
    • MongoDB\Driver\Exception\WriteException — Класс MongoDB\Driver\Exception\WriteException
    • Class Tree — MongoDB Exception Class Tree


Установка и настройка

  • Требования
  • Установка
    • Установка драйвера MongoDB PHP с помощью PECL
    • Установка драйвера MongoDB PHP на macOS помощью Homebrew
    • Установка драйвера MongoDB PHP под Windows
    • Ручная установка драйвера MongoDB PHP
  • Настройка во время выполнения
  • Предопределенные константы


Требования

Требуется PHP версии 5.5 или выше.

Драйверу нужны библиотеки » libbson и » libmongoc, и по умолчанию он будет использовать их встроенные версии.

Драйверу требуется » OpenSSL и в ее поиске он будет полагаться на PHP (т.е. PHP_SETUP_OPENSSL). Если в процессе сборки OpenSSL не будет найден, проверьте, что у вас установлены разработческая версия библиотеки ( libssl-dev) и » pkg-config.

Из-за потенциальных проблем представления 64-разрядных целых чисел на 32-разрядных платформах, пользователям рекомендуется использовать 64-разрядную среду. При использовании 32-разрядной платформы помните, что любое 64-разрядное целое число, прочитанное из базы данных, будет возвращено как экземпляр MongoDB\BSON\Int64 вместо целочисленного типа PHP.

Дополнительно может использоваться » Cyrus SASL, если доступно.


Установка

Содержание

  • Установка драйвера MongoDB PHP с помощью PECL
  • Установка драйвера MongoDB PHP на macOS помощью Homebrew
  • Установка драйвера MongoDB PHP под Windows
  • Ручная установка драйвера MongoDB PHP


Установка драйвера MongoDB PHP с помощью PECL

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/mongodb

Пользователи Linux, Unix и macOS могут использовать следующую команду для установки драйвера:

$ sudo pecl install mongodb

Если на вашей системе установлено несколько версий PHP (например для macOS: установка по умолчанию, Homebrew и » XAMPP), обратите внимание, что каждая из них имеет собственную команду pecl и файл php.ini.

Установка драйвера с помощью PECL использует встгоенные библиотеки » libbson и » libmongoc и попытается сконфигурировать их автоматически.

Замечание: Если процесс установки не сможет найти библиотеку SSL, убедитесь, что установлены разработческие пакеты (такие как libssl-dev) и пакет » pkg-config. Если это не поможет, то произведите ручную установку.

И, в конце концов, добавьте следующую строку в php.ini:

extension=mongodb.so


Установка драйвера MongoDB PHP на macOS помощью Homebrew

Начиная с » Homebrew 1.5.0, пакет » Homebrew/php tap был объявлен устаревшим и удалил формулы для этого расширеня PHP. В дальнейшем пользователям macOS рекомендуется устанавливать драйвер через формулу » php и следовать стандартным иснтрукциям по установке из PECL используя команду pecl предоставляемую установкой PHP через Homebrew.


Установка драйвера MongoDB PHP под Windows

Скомпилированные модули для каждой версии доступны на сайте » PECL для всех комбинаций версий, потокобезопасности и библиотек VC. Разархивируйте загруженный модуль и скопируйте php_mongo.dll в директорию с расширениями PHP (по умолчанию "ext").

Добавьте следующую строку в php.ini:

extension=php_mongo.dll

Замечание: Дополнительные зависимости DLL для пользователей Windows

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: libsasl.dll


Ручная установка драйвера MongoDB PHP

Разработчики драйверов и людей заинтересованные в самых свежих версиях, могут собрать драйвер из исходных кодов, которые находятся тут: » Github. Запустите следующие команды для клонирования и сборки проекта:

$ git clone https://github.com/mongodb/mongo-php-driver.git
$ cd mongo-php-driver
$ git submodule update --init
$ phpize
$ ./configure
$ make all
$ sudo make install

Если на вашей системе установлено несколько версий PHP (например для macOS установка по умолчанию И » XAMPP), обратите внимание, что каждая из них имеет собственную команду phpize и файл php.ini.

По умолчанию драйвер будет использовать встроенную версию » libbson, » libmongoc и » libmongocrypt и попытается настроить их самостоятельно. Если эти библиотеки уже установлены в системе, вы можете сообщить драйверу об этом с помощью аргумента --with-libbson=yes --with--libmongoc=yes команды configure. Начиная с версии 1.7.0 модуля, эти аргументы устарели, и вы должны использовать вместо них --with-mongodb-system-libs=yes.

Полный список опций команды configure можно получить с помощью configure --help.

При использовании встроенных версий libbson и libmongoc, драйвер также попытается выбрать библиотеку SSL в соответствии с опцией --with-mongodb-ssl команды configure. По умолчанию это --with-mongodb-ssl=auto, что приведет к поиску в таком порядке: Secure Transport (только macOS), OpenSSL, LibreSSL. Также вы можете явно указать openssl, libressl или darwin.

Замечание:

Если процесс установки не сможет найти библиотеку SSL, убедитесь, что установлены разработческие пакеты (такие как libssl-dev) и пакет » pkg-config.

При использовании Homebrew для macOS, обычна ситуация, когда установлено несколько разных версий OpenSSL. Для использования именно той версии, которая вам нужна, соответствующим образом установите переменную окружения PKG_CONFIG_PATH. Она будет использоваться pkg-config для определения пути поиска . Если не используется pkg-config, то можно использовать configure с ключем --with-openssl-dir=DIR (только для OpenSSL).

На последнем, финальном шаге, make install выведет путь, по которому была собран модуль mongodb.so. Например так:

Installing shared extensions:     /usr/lib/php/extensions/debug-non-zts-20151012/

Убедитесь, что директива extension_dir файла php.ini указывает на каталог, в котором присутствует библиотека mongodb.so. Проверить значение этой директивы можно так:

$ php -i | grep extension_dir
  extension_dir => /usr/lib/php/extensions/debug-non-zts-20151012 =>
                   /usr/lib/php/extensions/debug-non-zts-20151012

Если директории отличаются, то поменяйте значение extension_dir в php.ini или просто переместите mongodb.so в нужную директорию.

Добавьте следующую строку в php.ini:

extension=mongodb.so


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки mongodb
Имя | По умолчанию | Место изменения | Список изменений | Комментарии
mongodb.debug | "" | PHP_INI_ALL |  |

Краткое разъяснение конфигурационных директив.

mongodb.debug string

Сохранять всю отладочную информацию в этой директории или потоковом ресурсе. Если указать "stderr", то вывод будет писаться в STDERR.

Замечание:

Обратите внимание, что журнал отладки может содержать конфиденциальную информацию, такую как учетные данные на сервере MongoDB и полные документы, записанные или прочитанные с сервера. Пожалуйста, просмотрите все журналы отладки, прежде чем делиться ими с другими людьми.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MONGODB_VERSION (string)
Номер версии расширения в стиле x.y.z
MONGODB_STABILITY (string)
Уровень стабильности (alpha/beta/stable)


Обучающие материалы

В данном разделе вы найдете некоторое количество обучающих материалов по использованию драйвера MongoDB для PHP.

  • Использование библиотеки PHP для MongoDB (PHPLIB)
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Использование библиотеки PHP для MongoDB (PHPLIB)

После первоначальной настройки драйвера, мы продолжим объяснять, как начать работу с драйвером MongoDB и соответствующей пользовательской библиотекой, для создания нашего первого проекта.

Установка библиотеки PHP с помощью Composer

Последнее, что нам необходимо установить перед тем, как начать писать наше приложение - установить библиотеку PHP.

Библиотеку будем устанавливать с помощью пакетного менеджера » Composer. Инструкции по установке Composer ищите на его сайте.

Устанавливаем библиотеку следующим образом:

$ composer require mongodb/mongodb

Будет выведено что-то вроде:

./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing mongodb/mongodb (1.0.0)
    Downloading: 100%

Writing lock file
Generating autoload files

Composer создаст несколько файлов: composer.json, composer.lock и директорию vendor, содержащую саму библиотеку и прочие зависимости, которые потребуются в вашем проекте.

Использование библиотеки PHP

Кроме управления зависимостями, Composer также предоставляет автоподгрузчик классов для этих зависимостей. Убедитесь, что вы включили этьот автозагрузчик в начало своего скрипта или в код bootstrap() вашего приложения:

<?php
// Этот путь должен указывать на автозагрузчик Composer
require 'vendor/autoload.php';

После этого можно использовать любой функционал, описанный в » документации по библиотеке.

Если вы ранее использовали более старый драйвер (т.е. расширение mongo), то API библиотеки должно быть вам знакомо. Оно содержит класс » Client для соединения с MongoDB, класс » Database для операций уровня базы данных (т.е. команды, управление коллекциями) и класс » Collection для операций уровня коллекции (т.е. методы » CRUD, управление индексами). Различные методы Collection были переименованы для большей понятности и соответствия языково-независимой » спецификации.

Пример, как вставить документ в коллекцию beers базы данных demo:

<?php
require 'vendor/autoload.php'; // подключаем автоподгрузчик классов Composer

$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;

$result = $collection->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );

echo "Идентификатор вставленного документа '{$result->getInsertedId()}'";
?>

Вместо инъекции сгенерированного поля _id во входящий документ (как это делалось в старых версиях драйвера), теперь можно это делать с помощью метода insertOne возвращенного объекта.

После вставки вы, конечно же, можете запросить только что вставленные данные. Для этого используйте метод find, который возвращает итерируемый курсор:

<?php
require 'vendor/autoload.php'; // подключаем автоподгрузчик классов Composer

$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;

$result = $collection->find( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );

foreach ($result as $entry) {
    echo $entry['_id'], ': ', $entry['name'], "\n";
}
?>

Хоть из примера это и не очевидно, но документы BSON и массивы по умолчанию десериализованы как типы классов в библиотеке. Эти классы гарантируют, что значения сохранят свои типы когда будут сериализовываться обратно в BSON, что позволяет избежать проблемы старых драйверов, когда массивы могли преобразоваться в документы и наоборот. Кроме того, классы наследуют ArrayObject для большего удобства использования. Более подробно о сериализации и десериализации между переменными PHP и BSON можно прочитать в спецификации Постоянные данные.


Мониторинг производительности приложения (Application Performance Monitoring или APM)

Начиная с версии 1.3, драйвер MongoDB содержит API для мониторинга производительности. Это API позволяет определить, как долго выполняется конкретная операция, путем настройки подписчиков. Каждый подписчик должен реализовывать один или более интерфейсов из пространства имен MongoDB\Driver\Monitoring. В данный момент доступен только один интерфейс - MongoDB\Driver\Monitoring\CommandSubscriber.

Интерфейс MongoDB\Driver\Monitoring\CommandSubscriber определяет три метода: commandStarted, commandSucceeded и commandFailed. Каждый из них принимает один параметр event класса, соответствующего нужному событию. К примеру, commandSucceeded принимает аргумент $event класса MongoDB\Driver\Monitoring\CommandSucceededEvent.

В данном руководстве вы реализуем подписчика, который создает список профилировок всех запросов и среднего времени их исполнения.

Класс подписчик Scaffolding

Мы начнес с шаблона для нашего подписчика:

<?php

class QueryTimeCollector implements \MongoDB\Driver\Monitoring\CommandSubscriber
{
    public function commandStarted( \MongoDB\Driver\Monitoring\CommandStartedEvent $event )
    {
    }

    public function commandSucceeded( \MongoDB\Driver\Monitoring\CommandSucceededEvent $event )
    {
    }

    public function commandFailed( \MongoDB\Driver\Monitoring\CommandFailedEvent $event )
    {
    }
}

?>

Регистрация подписчика

Как только объект подписчик создан, необходимо его зарегистрировать в драйвере в системе мониторинга. Регистрация производится методом MongoDB\Driver\Monitoring\addSubscriber().

<?php

\MongoDB\Driver\Monitoring\addSubscriber( new QueryTimeCollector() );

?>

Реализуем логику

Теперь займемся реализацией логики класа подписчика. Для сопоставления двух событий, относящихся к успешно выполненной команды (commandStarted and commandSucceeded), каждый объект события предоставляет поле requestId.

Для записи среднего времени выполнения запроса мы начнем с отслеживания команды find в событии commandStarted. Мы будем добавлять элемент в массив pendingCommands с индексом соответствующим requestId и значением, соответствующим запросу.

Когда мы получим соответствующее событие commandSucceeded с соответствующим requestId, мы добавим время выполнения (из durationMicros) к общему времени и увеличим счетчик операций.

Если мы получим событие commandFailed, мы просто удалим соответствующую запись из pendingCommands.

<?php

class QueryTimeCollector implements \MongoDB\Driver\Monitoring\CommandSubscriber
{
    private $pendingCommands = [];
    private $queryShapeStats = [];

    /* Создает форму запроса из аргумента фильтра. В данный момент учитываются
     * только поля верхнего уровня. */
    private function createQueryShape( array $filter )
    {
        return json_encode( array_keys( $filter ) );
    }

    public function commandStarted( \MongoDB\Driver\Monitoring\CommandStartedEvent $event )
    {
        if ( array_key_exists( 'find', (array) $event->getCommand() ) )
        {
            $queryShape = $this->createQueryShape( (array) $event->getCommand()->filter );
            $this->pendingCommands[$event->getRequestId()] = $queryShape;
        }
    }

    public function commandSucceeded( \MongoDB\Driver\Monitoring\CommandSucceededEvent $event )
    {
        $requestId = $event->getRequestId();
        if ( array_key_exists( $requestId, $this->pendingCommands ) )
        {
            $this->queryShapeStats[$this->pendingCommands[$requestId]]['count']++;
            $this->queryShapeStats[$this->pendingCommands[$requestId]]['duration'] += $event->getDurationMicros();
            unset( $this->pendingCommands[$requestId] );
        }
    }

    public function commandFailed( \MongoDB\Driver\Monitoring\CommandFailedEvent $event )
    {
        if ( array_key_exists( $event->getRequestId(), $this->pendingCommands ) )
        {
            unset( $this->pendingCommands[$event->getRequestId()] );
        }
    }

    public function __destruct()
    {
        foreach( $this->queryShapeStats as $shape => $stats )
        {
            echo "Shape: ", $shape, " (", $stats['count'], ")\n  ",
                $stats['duration'] / $stats['count'], "µs\n\n";
        }
    }
}

$m = new \MongoDB\Driver\Manager( 'mongodb://localhost:27016' );

/* Добавляем подписчика */
\MongoDB\Driver\Monitoring\addSubscriber( new QueryTimeCollector() );

/* Запускаем пачку запросов */
$query = new \MongoDB\Driver\Query( [
    'region_slug' => 'scotland-highlands', 'age' => [ '$gte' => 20 ]
] );
$cursor = $m->executeQuery( 'dramio.whisky', $query );

$query = new \MongoDB\Driver\Query( [
    'region_slug' => 'scotland-lowlands', 'age' => [ '$gte' => 15 ]
] );
$cursor = $m->executeQuery( 'dramio.whisky', $query );

$query = new \MongoDB\Driver\Query( [ 'region_slug' => 'scotland-lowlands' ] );
$cursor = $m->executeQuery( 'dramio.whisky', $query );

?>


Обзор архитектуры драйвера и ее особенностей

  • Архитектура — Обзор архитектуры
  • Соединения — Обработка соединения и постоянство
  • Постоянные данные — Сериализация и десериализация переменных PHP в MongoDB
    • Сериализация в BSON
    • Десериализация из BSON


Обзор архитектуры

В этом разделе объясняется, как различные части драйвера соединяются вместе. От разных языков исполнения, через расширение и до библиотек PHP над ними. Эта новая архитектура заменила старое расширение mongo. Мы называем новое расширение mongodb.

В верхней части этого стека находится » библиотека PHP, которую мы будем распространять в виде пакета Composer. Эта библиотека предоставит API, аналогичный тому, что пользователи ожидают от старого драйвера mongo (например, методы CRUD, объекты баз данных и коллекций, помощники команд), и мы ожидаем, что он будет общей зависимостью для большинства приложений, созданных с MongoDB. Эта библиотека также будет реализовывать общие » спецификации в интересах улучшения согласованности API со всеми » драйверами, поддерживаемыми MongoDB (и, надеемся, также некоторыми драйверами сообщества).

Под этой библиотекой, у нас есть драйвер нижнего уровня. Это расширение будет эффективно связывать PHP и наши системные библиотеки (» libmongoc и » libbson). Это расширение будет предоставлять идентичный общедоступный API для наиболее важной и чувствительной к производительности функциональности:

  • Управление соединением
  • BSON кодирование и декодирование
  • Сериализация документа объекта (для поддержки библиотек ODM)
  • Выполнение команд и операций записи
  • Обработка запросов и курсоров

Разъединяя внутренние компоненты драйвера и высокоуровневый API в расширениях и библиотеках PHP, соответственно, мы надеемся уменьшить нагрузку на обслуживание и ускорить итерацию новых функций. Как приятный побочный эффект, это также облегчит кому-либо вносить свой вклад в драйвера. Кроме того, идентичный общедоступный API значительно упростит портирование приложения на среды выполнения PHP, независимо от того, использует ли приложение драйвер низкого уровня напрямую или библиотеку PHP более высокого уровня.

» GridFS - отличный пример того, почему мы выбрали это направление. Хотя мы реализовали GridFS в C для нашего старого драйвера mongo, на самом деле это довольно высокоуровневая спецификация. Его API - это просто абстракция для доступа к двум коллекциям: файлам (то есть метаданным) и частям (то есть блокам данных). Аналогично, весь синтаксический сахар, найденный в старом драйвере mongo, такой как обработка загруженных файлов или представление файлов GridFS в виде потоков PHP, может быть реализован на чистом PHP. При условии, что у нас есть эффективные методы для чтения и записи в коллекции GridFS и благодаря нашим низкоуровневым расширениям мы будем переводить этот API на PHP - беспроигрышный вариант.

Ранее я упоминал, что мы ожидаем, что библиотека PHP будет общей зависимостью для большинства приложений, но не для всех. Некоторые пользователи могут предпочесть придерживаться API-интерфейса без излишеств, предлагаемого расширениями, или создать собственную высокоуровневую абстракцию (сродни » Doctrine MongoDB для старого драйвера mongo). Будущие библиотеки могут включать PHP-библиотеку, предназначенную для администрирования MongoDB, которая предоставляет API для различных команд управления пользователями и командами ops. Следующая основная версия » Doctrine MongoDB ODM, скорее всего, также будет размещена непосредственно над расширениями.

Хотя мы будем продолжать поддерживать и поддерживать старый драйвер mongo и его пользователей в обозримом будущем, мы приглашаем всех использовать драйвер следующего поколения и рассматривать его для любых новых проектов в будущем. Вы можете найти все необходимые компоненты в GitHub и JIRA:

Исходный код драйвера и расположение JIRA
Проект | GitHub | JIRA
PHP библиотека | » mongodb/mongo-php-library | » PHPLIB
PHP 5 и PHP 7 драйвер (phongo) | » mongodb/mongo-php-driver | » PHPC

Существующий проект » PHP в JIRA останется открытым для сообщений об ошибках в старом драйвере mongo, но мы просим вас использовать в новых проектах то, что описывалось выше и касается наших драйверов следующего поколения.


Обработка соединения и постоянство

Замечание: На Unix, драйвер MongoDB чувствителен к сценариям, которые используют системный вызов fork() без последующего exec(). Пользователям рекомендуется не переиспользовать экземпляр MongoDB\Driver\Manager в дочернем процессе. child process.

Постоянство подключения и топологии (версия PHP начиная с 1.2.0)

Все версии драйвера, начиная с 1.2.0, сохраняют клиентский объект » libmongoc в рабочем процессе PHP, что позволяет ему повторно использовать соединения с базой данных, состояния аутентификации и информацию о топологии в нескольких запросах.

Когда вызывается MongoDB\Driver\Manager::__construct(), из его аргументов создается хеш (т.е. строка URI и параметры массива). Драйвер попытается найти ранее сохраненный клиентский объект » libmongoc для этого хэша. Если существующий клиент не может быть найден для хеша, будет создан новый клиент (и сохранен для будущего использования).

Каждый клиент содержит свои собственные подключения к базе данных и представление топологии сервера (например, автономный, набор реплик, кластер сегментов). Сохраняя клиент между запросами PHP, драйвер может повторно использовать установленные подключения к базе данных и устранять необходимость » обнаружения топологии сервера при каждом запросе.

Рассмотрим следующий пример:

<?php

$managers = [
    new MongoDB\Driver\Manager('mongodb://127.0.0.1'),
    new MongoDB\Driver\Manager('mongodb://127.0.0.1'),
    new MongoDB\Driver\Manager('mongodb://127.0.0.1:27017'),
    new MongoDB\Driver\Manager('mongodb://rs1.example.com,rs2.example.com/', ['replicaSet' => 'myReplicaSet']),
];

foreach ($managers as $manager) {
    $manager->executeCommand('test', new MongoDB\Driver\Command(['ping' => 1]));
}

?>

Первые два объекта Manager будут использовать один и тот же клиент » libmongoc, поскольку их аргументы конструктора идентичны. Третий и четвертый объекты будут использовать каждый свой клиент. Всего будет создано три клиента, и процесс PHP, выполняющий этот скрипт, откроет два соединения с 127.0.0.1 и одно соединение с каждым из rs1.example.com и rs2.example.com. Если драйвер обнаруживает дополнительных членов набора реплик после выполнения команд isMaster, он также открывает дополнительные подключения к этим серверам.

Если этот же процесс снова выполнит сценарий во втором запросе, эти три клиента будут использованы повторно, и новые подключения не будут выполняться. В зависимости от того, как давно был обработан предыдущий запрос, драйверу может потребоваться выполнить дополнительные команды isMaster для обновления своего представления топологий.

Постоянство сокетов (версии PHP до 1.2.0)

Версии драйвера PHP до 1.2.0 используют PHP's Streams API для соединений с базой данных, используя API в » libmongoc для определения пользовательских обработчиков для связи с сокетами; однако новый клиент libmongoc создается для каждого MongoDB\Driver\Manager. В результате драйвер сохраняет отдельные соединения с базой данных, но не информацию о состоянии аутентификации или топологии. Это означает, что драйвер должен выдавать команды в начале каждого запроса для проверки подлинности и » обнаружения топологии сервера.

Соединения с базой данных сохраняются с помощью хэша, полученного из хоста, порта и строки URI сервера, используемой для построения MongoDB\Driver\Manager. Параметры массива конструктора не включены в этот хэш.

Замечание: Версии драйвер >= 1.1.8 and < 1.2.0 не сохраняют сокеты для соединений SSL. Смотрите » PHPC-720 для получения дополнительной информации.

Несмотря на недостатки, связанные с сохранением соединений SSL и информацией о топологии, эта версия драйвера поддерживает все параметры контекста SSL, поскольку использует PHP's Streams API.


Сериализация и десериализация переменных PHP в MongoDB

Содержание

  • Сериализация в BSON
  • Десериализация из BSON

Этот документ обсуждает методы, как составные структуры (документы, массивы, объекты) сохраняются через драйверы. И как они возвращаются назад в PHP.


Сериализация в BSON

Массивы

Если массив является упакованным массивом - то есть ключи начинаются с 0 и являются последовательными без пробелов: массив BSON.

Если массив не упакован - то есть имеет ассоциативные (строковые) ключи, ключи не начинаются с 0 или при наличии пробелов:: объект BSON

Документ верхнего уровня (корневой), всегда сериализуется, как документ BSON.

Примеры

Сериализация, как массив BSON:

[ 8, 5, 2, 3 ] => [ 8, 5, 2, 3 ]
[ 0 => 4, 1 => 9 ] => [ 4, 9 ]

Сериализация, как документ BSON:

[ 0 => 1, 2 => 8, 3 => 12 ] => { "0" : 1, "2" : 8, "3" : 12 }
[ "foo" => 42 ] => { "foo" : 42 }
[ 1 => 9, 0 => 10 ] => { "1" : 9, "0" : 10 }

Обратите внимание, что пять примеров являются выдержками из полного документа и представляют только одно значение внутри документа.

Объекты

Если объект принадлежит к классу stdClass, сериализуйте, как документ BSON.

Если объект является поддерживаемым классом, который реализует MongoDB\BSON\Type, то используйте логику сериализации BSON для этого конкретного типа. Экземпляры MongoDB\BSON\Type (исключая MongoDB\BSON\Serializable можно сериализовать только, как значение поля документа. Попытка сериализации такого объекта в качестве корневого документа приведет к выбросу MongoDB\Driver\Exception\UnexpectedValueException

Если объект неизвестного класса реализует интерфейс MongoDB\BSON\Type, выдается исключение MongoDB\Driver\Exception\UnexpectedValueException

Если объект относится к какому-либо другому классу, без реализации какого-либо специального интерфейса, сериализуйте, как документ BSON. Оставляйте только public свойства и игнорируйте protected и private свойства.

Если объект принадлежит к классу, который реализует интерфейс MongoDB\BSON\Serializable, вызовите MongoDB\BSON\Serializable::bsonSerialize() и используйте возвращенный массив или stdClass для сериализации в качестве документа BSON или массива. Тип BSON будет определяться следующим:

  1. Корневые документы должны быть сериализованы, как документ BSON.

  2. MongoDB\BSON\Persistable объекты должны быть сериализованы, как документ BSON.

  3. Если MongoDB\BSON\Serializable::bsonSerialize() возвращает упакованный массив, сериализуйте его, как массив BSON.

  4. Если MongoDB\BSON\Serializable::bsonSerialize() возвращает неупакованный массив или stdClass, сериализуйте, как документ BSON.

  5. Если MongoDB\BSON\Serializable::bsonSerialize() не вернул массив или stdClass, выдаст исключение MongoDB\Driver\Exception\UnexpectedValueException.

Если объект принадлежит к классу, который реализует интерфейс MongoDB\BSON\Persistable (что подразумевает MongoDB\BSON\Serializable), получите свойства аналогично предыдущим абзацам, но также добавьте дополнительное свойство __pclass в качестве Binary значения с подтипом 0x80 и данными, содержащими полное имя класса сериализуемого объекта.

Свойство __pclass добавляется в массив или объект, возвращаемый MongoDB\BSON\Serializable::bsonSerialize(), что означает, что оно будет перезаписывать любой ключ/свойство __pclass в возвращаемом значении MongoDB\BSON\Serializable::bsonSerialize(). Если вы хотите избежать такого поведения и установить собственное значение __pclass, вы не должны реализовывать MongoDB\BSON\Persistable и вместо этого должны реализовывать MongoDB\BSON\Serializable напрямую.

Примеры

<?php

class stdClass {
  public $foo = 42;
} // => { "foo" : 42 }

class MyClass {
  public $foo = 42;
  protected $prot = "wine";
  private $fpr = "cheese";
} // => { "foo" : 42 }

class AnotherClass1 implements MongoDB\BSON\Serializable {
  public $foo = 42;
  protected $prot = "wine";
  private $fpr = "cheese";
  function bsonSerialize() {
      return [ 'foo' => $this->foo, 'prot' => $this->prot ];
  }
} // => { "foo" : 42, "prot" : "wine" }

class AnotherClass2 implements MongoDB\BSON\Serializable {
  public $foo = 42;
  function bsonSerialize() {
      return $this;
  }
} // => MongoDB\Driver\Exception\UnexpectedValueException("bsonSerialize() did not return an array or stdClass")

class AnotherClass3 implements MongoDB\BSON\Serializable {
  private $elements = [ 'foo', 'bar' ];
  function bsonSerialize() {
      return $this->elements;
  }
} // => { "0" : "foo", "1" : "bar" }

class ContainerClass implements MongoDB\BSON\Serializable {
  public $things = AnotherClass4 implements MongoDB\BSON\Serializable {
    private $elements = [ 0 => 'foo', 2 => 'bar' ];
    function bsonSerialize() {
      return $this->elements;
    }
  }
  function bsonSerialize() {
      return [ 'things' => $this->things ];
  }
} // => { "things" : { "0" : "foo", "2" : "bar" } }

class ContainerClass implements MongoDB\BSON\Serializable {
  public $things = AnotherClass5 implements MongoDB\BSON\Serializable {
    private $elements = [ 0 => 'foo', 2 => 'bar' ];
    function bsonSerialize() {
      return array_values($this->elements);
    }
  }
  function bsonSerialize() {
      return [ 'things' => $this->things ];
  }
} // => { "things" : [ "foo", "bar" ] }

class ContainerClass implements MongoDB\BSON\Serializable {
  public $things = AnotherClass6 implements MongoDB\BSON\Serializable {
    private $elements = [ 'foo', 'bar' ];
    function bsonSerialize() {
      return (object) $this->elements;
    }
  }
  function bsonSerialize() {
      return [ 'things' => $this->things ];
  }
} // => { "things" : { "0" : "foo", "1" : "bar" } }

class UpperClass implements MongoDB\BSON\Persistable {
  public $foo = 42;
  protected $prot = "wine";
  private $fpr = "cheese";
  function bsonSerialize() {
      return [ 'foo' => $this->foo, 'prot' => $this->prot ];
  }
} // => { "foo" : 42, "prot" : "wine", "__pclass" : { "$type" : "80", "$binary" : "VXBwZXJDbGFzcw==" } }


Десериализация из BSON

Устаревшее расширение mongo десериализовало, как документы, так и массивы BSON в качестве массивов PHP. Хотя с PHP массивами удобно работать, такое поведение было проблематичным, поскольку различные типы BSON могут десериализоваться до одного и того же значения PHP (например, {"0": "foo"} и ["foo"]) и будет невозможно вывести оригинальный тип BSON. По умолчанию текущий драйвер решает эту проблему, обеспечивая преобразование массивов и документов BSON в массивы и объекты PHP соответственно.

Для составных типов существует три типа данных:

root

относится только к документу верхнего уровня BSON

document

относится только к встроенным документам BSON

array

относится к массивам BSON

Помимо трех групповых типов, также можно настроить определенные поля в документе для сопоставления с типами данных, указанными ниже. В качестве примера, следующая карта типов позволяет сопоставить каждый встроенный документ в массиве "addresses" с классом Address, а каждое поле "city" в этих документах с встроенным адресом с классом City:

[
    'fieldPaths' => [
        'addresses.$' => 'MyProject\Address',
        'addresses.$.city' => 'MyProject\City',
    ],
]

Каждый из этих трех типов данных, а также сопоставления для конкретных полей могут быть сопоставлены с различными типами PHP. Возможные значения сопоставления:

не указано или NULL (по умолчанию)

  • Массив BSON будет десериализован, как PHP array.

  • Документ BSON (корневой или внедренный) без свойства __pclass [1] становится объектом PHP stdClass, причем каждый ключ документа BSON устанавливается в качестве открытого свойства stdClass.

  • Документ BSON (корневой или встроенный) со свойством __pclass [1] становится объектом PHP имени класса, как это определено свойством __pclass.

    Если указанный класс реализует интерфейс MMongoDB\BSON\Persistable, то свойства документа BSON, включая свойство __pclass, отправляются в виде ассоциативного массива в функцию MongoDB\BSON\Unserializable::bsonUnserialize() для инициализации свойств объекта.

    Если названный класс не существует или не реализует интерфейс MongoDB\BSON\Persistable, будет использоваться stdClass, и каждый ключ документа BSON (включая __pclass) будет установлен, как открытое свойство stdClass.

    Функциональность __pclass зависит от того, является ли свойство частью извлеченного документа MongoDB. Если вы используете проекцию при запросе документов, вам нужно включить поле __pclass в проекцию, чтобы эта функция работала.

"array"

Превращает массив BSON или документ BSON в массив PHP. Не будет специальной обработки свойства __pclass [1], но его можно установить, как элемент в возвращаемом массиве, если он присутствовал в документе BSON.

"object" или "stdClass"

Превращает массив BSON или документ BSON в объект stdClass. Не будет специальной обработки свойства __pclass [1], но оно может быть установлено, как открытое свойство в возвращаемом объекте, если оно присутствовало в документе BSON.

любая другая строка

Определяет имя класса, который должен десериализовать массив BSON или объект BSON. Для объектов BSON, которые содержат свойства __pclass, этот класс будет иметь приоритет.

Если названный класс не существует, не является конкретным (то есть является абстрактным или интерфейсом) или не реализует MongoDB\BSON\Unserializable, то выдается исключение MongoDB\Driver\Exception\InvalidArgumentException.

Если объект BSON имеет свойство __pclass, и этот класс существует и реализует MongoDB\BSON\Persistable, он заменит класс, представленный в карте типов.

Свойства документа BSON, включая свойство __pclass, если оно существует, будут отправлены в виде ассоциативного массива в функцию MongoDB\BSON\Unserializable::bsonUnserialize() для инициализации свойств объекта.

TypeMaps

TypeMaps можно установить с помощью метода MongoDB\Driver\Cursor::setTypeMap() для объекта MongoDB\Driver\Cursor или аргумента $typeMap в MongoDB\BSON\toPHP(). Каждый из трех классов (root, document, и array) может быть задан индивидуально, в дополнение к типам полей.

Если значение на карте равно NULL, это означает то же самое, что и значение по умолчанию для этого элемента.

Примеры

В этих примерах используются следующие классы:

MyClass

который не реализует интерфейс

YourClass

который реализует MongoDB\BSON\Unserializable

OurClass

который реализует MongoDB\BSON\Persistable

TheirClass

который расширяет OurClass

Метод MongoDB\BSON\Unserializable::bsonUnserialize() класса YourClass, OurClass, OurClass выполняет итерацию по массиву и устанавливает свойства без изменений. Он также устанавливает для свойства $unserialized значение true:

<?php

function bsonUnserialize( array $map )
{
    foreach ( $map as $k => $value )
    {
        $this->$k = $value;
    }
    $this->unserialized = true;
}

/* typemap: [] (все значения по умолчанию) */
{ "foo": "yes", "bar" : false }
  -> stdClass { $foo => 'yes', $bar => false }

{ "foo": "no", "array" : [ 5, 6 ] }
  -> stdClass { $foo => 'no', $array => [ 5, 6 ] }

{ "foo": "no", "obj" : { "embedded" : 3.14 } }
  -> stdClass { $foo => 'no', $obj => stdClass { $embedded => 3.14 } }

{ "foo": "yes", "__pclass": "MyClass" }
  -> stdClass { $foo => 'yes', $__pclass => 'MyClass' }

{ "foo": "yes", "__pclass": { "$type" : "80", "$binary" : "MyClass" } }
  -> stdClass { $foo => 'yes', $__pclass => Binary(0x80, 'MyClass') }

{ "foo": "yes", "__pclass": { "$type" : "80", "$binary" : "YourClass") }
  -> stdClass { $foo => 'yes', $__pclass => Binary(0x80, 'YourClass') }

{ "foo": "yes", "__pclass": { "$type" : "80", "$binary" : "OurClass") }
  -> OurClass { $foo => 'yes', $__pclass => Binary(0x80, 'OurClass'), $unserialized => true }

{ "foo": "yes", "__pclass": { "$type" : "44", "$binary" : "YourClass") }
  -> stdClass { $foo => 'yes', $__pclass => Binary(0x44, 'YourClass') }

/* typemap: [ "root" => "MissingClass" ] */
{ "foo": "yes" }
  -> MongoDB\Driver\Exception\InvalidArgumentException("MissingClass does not exist")

/* typemap: [ "root" => "MyClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "MyClass" } }
  -> MongoDB\Driver\Exception\InvalidArgumentException("MyClass does not implement Unserializable interface")

/* typemap: [ "root" => "MongoDB\BSON\Unserializable" ] */
{ "foo": "yes" }
  -> MongoDB\Driver\Exception\InvalidArgumentException("Unserializable is not a concrete class")

/* typemap: [ "root" => "YourClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "MongoDB\BSON\Unserializable" } }
  -> YourClass { $foo => "yes", $__pclass => Binary(0x80, "MongoDB\BSON\Unserializable"), $unserialized => true }

/* typemap: [ "root" => "YourClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "MyClass" } }
  -> YourClass { $foo => "yes", $__pclass => Binary(0x80, "MyClass"), $unserialized => true }

/* typemap: [ "root" => "YourClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "OurClass" } }
  -> OurClass { $foo => "yes", $__pclass => Binary(0x80, "OurClass"), $unserialized => true }

/* typemap: [ "root" => "YourClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "TheirClass" } }
  -> TheirClass { $foo => "yes", $__pclass => Binary(0x80, "TheirClass"), $unserialized => true }

/* typemap: [ "root" => "OurClass" ] */
{ foo: "yes", "__pclass" : { "$type": "80", "$binary": "TheirClass" } }
  -> TheirClass { $foo => "yes", $__pclass => Binary(0x80, "TheirClass"), $unserialized => true }

/* typemap: [ 'root' => 'YourClass' ] */
{ foo: "yes", "__pclass" : { "$type": "80", "$binary": "YourClass" } }
  -> YourClass { $foo => 'yes', $__pclass => Binary(0x80, 'YourClass'), $unserialized => true }

/* typemap: [ 'root' => 'array', 'document' => 'array' ] */
{ "foo": "yes", "bar" : false }
  -> [ "foo" => "yes", "bar" => false ]

{ "foo": "no", "array" : [ 5, 6 ] }
  -> [ "foo" => "no", "array" => [ 5, 6 ] ]

{ "foo": "no", "obj" : { "embedded" : 3.14 } }
  -> [ "foo" => "no", "obj" => [ "embedded => 3.14 ] ]

{ "foo": "yes", "__pclass": "MyClass" }
  -> [ "foo" => "yes", "__pclass" => "MyClass" ]

{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "MyClass" } }
  -> [ "foo" => "yes", "__pclass" => Binary(0x80, "MyClass") ]

{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "OurClass" } }
  -> [ "foo" => "yes", "__pclass" => Binary(0x80, "OurClass") ]

/* typemap: [ 'root' => 'object', 'document' => 'object' ] */
{ "foo": "yes", "__pclass": { "$type": "80", "$binary": "MyClass" } }
  -> stdClass { $foo => "yes", "__pclass" => Binary(0x80, "MyClass") }


  • « Десериализация из BSON
  • Атака с помощью инъекций в запросе »
  • PHP Manual
  • MongoDB
  • Безопасность

Безопасность

  • Атака с помощью инъекций в запросе
  • Атака с помощью инъекций в скриптах


Атака с помощью инъекций в запросе

Если вы передаете параметры $_GET (или $_POST) своим запросам, убедитесь, что они сначала приводятся к строкам. Пользователи могут вставлять ассоциативные массивы в запросы GET и POST, которые затем могут стать нежелательными $-запросами.

Довольно безобидный пример. Предположим, вы ищете информацию о пользователе по запросу http://www.example.com?username=bob. Ваше приложение создает запрос $q = new \MongoDB\Driver\Query( [ 'username' => $_GET['username'] ]).

Кто-то может подорвать это, получив http://www.example.com?username[$ne]=foo, который PHP волшебным образом превратит в ассоциативный массив, превратив ваш запрос в $q = new \MongoDB\Driver\Query( [ 'username' => [ '$ne' => 'foo' ] ] ), который вернет всех пользователей, не имеющих имени "foo" (вероятно, всех ваших пользователей).

От этой атаки достаточно легко защититься: убедитесь, что параметры $_GET и $_POST соответствуют ожидаемому типу, прежде чем отправлять их в базу данных. PHP имеет функцию filter_var(), чтобы помочь с этим.

Обратите внимание, что этот тип атаки может использоваться с любым взаимодействием с базой данных, которое находит документ, включая команды update, upserts, delete и findAndModify.

Смотрите » основную документацию для получения дополнительной информации о проблемах SQL инъекций в MongoDB.


Атака с помощью инъекций в скриптах

Если вы используете JavaScript, убедитесь, что все переменные, которые пересекают границу PHP-JavaScript, передаются в поле scope MongoDB\BSON\Javascript, а не интерполируются в строку JavaScript. Это может возникнуть при использовании предложений $where в запросах, командах mapReduce и group, а также в любое другое время, когда вы можете передать JavaScript в базу данных.

Например, предположим, что у нас есть некоторый JavaScript, чтобы приветствовать пользователя в журналах базы данных. Мы могли бы сделать:

<?php
$m = new MongoDB\Driver\Manager;

// Не делайте так!!!
$username = $_GET['field'];

$cmd = new \MongoDB\Driver\Command( [
    'eval' => "print('Привет, $username!');"
] );

$r = $m->executeCommand( 'dramio', $cmd );
?>

Однако что, если злоумышленник передаст какой-то JavaScript?

<?php
$m = new MongoDB\Driver\Manager;

// Не делайте так!!!
$username = $_GET['field'];
// $username is set to "'); db.users.drop(); print('"

$cmd = new \MongoDB\Driver\Command( [
    'eval' => "print('Привет, $username!');"
] );

$r = $m->executeCommand( 'dramio', $cmd );
?>

Теперь MongoDB выполнит строку JavaScript "print('Привет, '); db.users.drop(); print('!');". Эту атаку легко избежать: используйте args для передачи переменных из PHP в JavaScript:

<?php
$m = new MongoDB\Driver\Manager;

$_GET['field'] = 'derick';
$args = [ $_GET['field'] ];

$cmd = new \MongoDB\Driver\Command( [
    'eval' => "function greet(username) { print('Привет, ' + username + '!'); }",
    'args' => $args,
] );

$r = $m->executeCommand( 'dramio', $cmd );
?>

Это добавляет аргумент в область JavaScript, которая используется в качестве аргумента для функции greet. Теперь, если кто-то попытается отправить вредоносный код, MongoDB безвредно напечатает Привет, '); db.dropDatabase(); print('!.

Использование аргументов помогает предотвратить выполнение вредоносного ввода базой данных. Тем не менее, вы должны убедиться, что ваш код не перевернется и все равно выполнит ввод! Лучше всего избегать выполнения любого JavaScript на сервере.

Настоятельно рекомендуется избегать предложения » $where clause с запросами, так как это существенно влияет на производительность. По возможности используйте либо обычные операторы запросов, либо » Aggregation Framework.

В качестве альтернативы » MapReduce, использующей JavaScript, рассмотрите возможность использования » Aggregation Framework. В отличие от Map/Reduce, он использует идиоматический язык для построения запросов, без необходимости писать и использовать более медленный подход JavaScript, который требуется для Map/Reduce.

Команда » eval устарела с MongoDB 3.0, и ее также следует избегать.


Классы драйвера MongoDB

  • MongoDB\Driver\Manager — Класс MongoDB\Driver\Manager
    • MongoDB\Driver\Manager::__construct — Создает новый Manager MongoDB
    • MongoDB\Driver\Manager::createClientEncryption — Создание нового объекта ClientEncryption
    • MongoDB\Driver\Manager::executeBulkWrite — Выполняет одну или несколько операций записи
    • MongoDB\Driver\Manager::executeCommand — Выполняет команду базы данных
    • MongoDB\Driver\Manager::executeQuery — Выполняет запрос к базе данных
    • MongoDB\Driver\Manager::executeReadCommand — Выполняет команду базы данных, которая читает
    • MongoDB\Driver\Manager::executeReadWriteCommand — Выполняет команду базы данных, которая читает и пишет
    • MongoDB\Driver\Manager::executeWriteCommand — Выполняет команду базы данных, которая пишет
    • MongoDB\Driver\Manager::getReadConcern — Возвращает ReadConcern для Manager
    • MongoDB\Driver\Manager::getReadPreference — Возвращает ReadPreference для Manager
    • MongoDB\Driver\Manager::getServers — Возвращает серверы, к которым подключен менеджер
    • MongoDB\Driver\Manager::getWriteConcern — Возвращает WriteConcern для Manager
    • MongoDB\Driver\Manager::selectServer — Выбрать сервер, соответствующий предпочтениям чтения
    • MongoDB\Driver\Manager::startSession — Запускает новый клиентский сеанс для использования с этим клиентом
  • MongoDB\Driver\Command — Класс The MongoDB\Driver\Command
    • MongoDB\Driver\Command::__construct — Создает новый объект Command
  • MongoDB\Driver\Query — Класс MongoDB\Driver\Query
    • MongoDB\Driver\Query::__construct — Создает новый запрос
  • MongoDB\Driver\BulkWrite — Класс MongoDB\Driver\BulkWrite
    • MongoDB\Driver\BulkWrite::__construct — Создает новый объект BulkWrite
    • MongoDB\Driver\BulkWrite::count — Подсчитывает количество операций записи в порции
    • MongoDB\Driver\BulkWrite::delete — Добавление операции удаления в порцию
    • MongoDB\Driver\BulkWrite::insert — Добавить операцию вставки в порцию
    • MongoDB\Driver\BulkWrite::update — Добавить операцию обновления в порцию
  • MongoDB\Driver\Session — Класс MongoDB\Driver\Session
    • MongoDB\Driver\Session::abortTransaction — Прерывает транзакцию
    • MongoDB\Driver\Session::advanceClusterTime — Увеличивает время кластера для сеанса
    • MongoDB\Driver\Session::advanceOperationTime — Увеличивает время операции для сеанса
    • MongoDB\Driver\Session::commitTransaction — Фиксирует транзакцию
    • MongoDB\Driver\Session::__construct — Создает новый сеанс (не используется)
    • MongoDB\Driver\Session::endSession — Завершает сеанс
    • MongoDB\Driver\Session::getClusterTime — Возвращает время кластера для этого сеанса
    • MongoDB\Driver\Session::getLogicalSessionId — Возвращает логический идентификатор сеанса для этого сеанса
    • MongoDB\Driver\Session::getOperationTime — Возвращает время операции для этого сеанса
    • MongoDB\Driver\Session::getServer — Возвращает сервер к которому привязана текущая сессия
    • MongoDB\Driver\Session::getTransactionOptions — Returns options for the currently running transaction
    • MongoDB\Driver\Session::getTransactionState — Returns the current transaction state for this session
    • MongoDB\Driver\Session::isInTransaction — Определяет, происходит ли в данный момент многодокументная транзакция
    • MongoDB\Driver\Session::startTransaction — Запускает транзакцию
  • MongoDB\Driver\ClientEncryption — Класс MongoDB\Driver\ClientEncryption
    • MongoDB\Driver\ClientEncryption::createDataKey — Создает ключ шифрования
    • MongoDB\Driver\ClientEncryption::decrypt — Расшифровать данных
    • MongoDB\Driver\ClientEncryption::encrypt — Зашифровать данные
  • MongoDB\Driver\WriteConcern — Класс MongoDB\Driver\WriteConcern
    • MongoDB\Driver\WriteConcern::bsonSerialize — Возвращает объект сериализации BSON
    • MongoDB\Driver\WriteConcern::__construct — Создать новый WriteConcern
    • MongoDB\Driver\WriteConcern::getJournal — Возвращает опцию "journal" WriteConcern
    • MongoDB\Driver\WriteConcern::getW — Возвращает опцию "w" WriteConcern
    • MongoDB\Driver\WriteConcern::getWtimeout — Возвращает опцию "wtimeout" WriteConcern
    • MongoDB\Driver\WriteConcern::isDefault — Проверяет, является ли гарантия записи по умолчанию
    • MongoDB\Driver\WriteConcern::serialize — Serialize a WriteConcern
    • MongoDB\Driver\WriteConcern::unserialize — Unserialize a WriteConcern
  • MongoDB\Driver\ReadPreference — Класс MongoDB\Driver\ReadPreference
    • MongoDB\Driver\ReadPreference::bsonSerialize — Возвращает объект сериализации BSON
    • MongoDB\Driver\ReadPreference::__construct — Создать новый ReadPreference
    • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds — Возвращает параметр "maxStalenessSeconds" ReadPreference
    • MongoDB\Driver\ReadPreference::getMode — Возвращает параметр "mode" ReadPreference
    • MongoDB\Driver\ReadPreference::getModeString — Returns the ReadPreference's "mode" option as a string
    • MongoDB\Driver\ReadPreference::getTagSets — Возвращает параметр "tagSets" ReadPreference
    • MongoDB\Driver\ReadPreference::serialize — Serialize a ReadPreference
    • MongoDB\Driver\ReadPreference::unserialize — Unserialize a ReadPreference
  • MongoDB\Driver\ReadConcern — Класс MongoDB\Driver\ReadConcern
    • MongoDB\Driver\ReadConcern::bsonSerialize — Возвращает объект для сериализации BSON
    • MongoDB\Driver\ReadConcern::__construct — Создает новый ReadConcern
    • MongoDB\Driver\ReadConcern::getLevel — Возвращает опцию "level" ReadConcern
    • MongoDB\Driver\ReadConcern::isDefault — Проверяет, является ли гарантией чтения по умолчанию
    • MongoDB\Driver\ReadConcern::serialize — Serialize a ReadConcern
    • MongoDB\Driver\ReadConcern::unserialize — Unserialize a ReadConcern
  • MongoDB\Driver\Cursor — Класс MongoDB\Driver\Cursor
    • MongoDB\Driver\Cursor::__construct — Создает новый объект Cursor (не используется)
    • MongoDB\Driver\Cursor::getId — Возвращает идентификатор для курсора
    • MongoDB\Driver\Cursor::getServer — Возвращает сервер, связанный с курсором
    • MongoDB\Driver\Cursor::isDead — Проверяет, исчерпан ли курсор или может содержать дополнительные результаты
    • MongoDB\Driver\Cursor::setTypeMap — Устанавливает карту типа для десериализации BSON
    • MongoDB\Driver\Cursor::toArray — Возвращает массив, содержащий все результаты курсора
  • MongoDB\Driver\CursorId — Класс MongoDB\Driver\CursorId
    • MongoDB\Driver\CursorId::__construct — Создает новый объект CursorId (не используется)
    • MongoDB\Driver\CursorId::serialize — Serialize a CursorId
    • MongoDB\Driver\CursorId::__toString — Строковое представление идентификатора курсора
    • MongoDB\Driver\CursorId::unserialize — Unserialize a CursorId
  • MongoDB\Driver\CursorInterface — Интерфейс MongoDB\Driver\CursorInterface
    • MongoDB\Driver\CursorInterface::getId — Возвращает идентификатор курсора
    • MongoDB\Driver\CursorInterface::getServer — Возвращает сервер, с которым связан курсор
    • MongoDB\Driver\CursorInterface::isDead — Проверить, можно ли еще получить из курсора результаты
    • MongoDB\Driver\CursorInterface::setTypeMap — Задать сопоставление типов для десериализации BSON
    • MongoDB\Driver\CursorInterface::toArray — Вернуть все результаты для данного курсора в виде массива
  • MongoDB\Driver\Server — Класс MongoDB\Driver\Server
    • MongoDB\Driver\Server::__construct — Создает новый Server (не используется)
    • MongoDB\Driver\Server::executeBulkWrite — Выполнить одну или несколько операций записи на сервере
    • MongoDB\Driver\Server::executeCommand — Выполнить команду базы данных на сервере
    • MongoDB\Driver\Server::executeQuery — Выполняет запрос к базе данных на сервере
    • MongoDB\Driver\Server::executeReadCommand — Выполняет команду базы данных, которая читает на сервере
    • MongoDB\Driver\Server::executeReadWriteCommand — Выполняет команду базы данных, которая читает и пишет на сервере
    • MongoDB\Driver\Server::executeWriteCommand — Выполняет команду базы данных, которая пишет на сервере
    • MongoDB\Driver\Server::getHost — Возвращает имя хоста сервера
    • MongoDB\Driver\Server::getInfo — Возвращает массив информации об этом сервере
    • MongoDB\Driver\Server::getLatency — Возвращает задержку этого сервера
    • MongoDB\Driver\Server::getPort — Возвращает порт, который слушает сервер
    • MongoDB\Driver\Server::getTags — Возвращает массив тегов, описывающих сервер в наборе реплик
    • MongoDB\Driver\Server::getType — Возвращает целое число, обозначающее тип этого сервера
    • MongoDB\Driver\Server::isArbiter — Проверяет, является ли сервер членом-арбитром в наборе реплик
    • MongoDB\Driver\Server::isHidden — Проверяет, является ли сервер скрытым членом набора реплик
    • MongoDB\Driver\Server::isPassive — Проверяет, является ли сервер пассивным членом набора реплик
    • MongoDB\Driver\Server::isPrimary — Проверяет, является ли сервер основным членом набора реплик
    • MongoDB\Driver\Server::isSecondary — Проверяет, является ли этот сервер второстепенным членом набора реплик
  • MongoDB\Driver\WriteConcernError — Класс The MongoDB\Driver\WriteConcernError
    • MongoDB\Driver\WriteConcernError::getCode — Возвращает код ошибки WriteConcernError
    • MongoDB\Driver\WriteConcernError::getInfo — Возвращает дополнительные метаданные для WriteConcernError
    • MongoDB\Driver\WriteConcernError::getMessage — Возвращает сообщение об ошибке WriteConcernError
  • MongoDB\Driver\WriteError — Класс MongoDB\Driver\WriteError
    • MongoDB\Driver\WriteError::getCode — Возвращает код ошибки WriteError
    • MongoDB\Driver\WriteError::getIndex — Возвращает индекс записи, соответствующей этому WriteError
    • MongoDB\Driver\WriteError::getInfo — Возвращает дополнительные метаданные для WriteError
    • MongoDB\Driver\WriteError::getMessage — Возвращает сообщение об ошибке WriteError
  • MongoDB\Driver\WriteResult — Класс MongoDB\Driver\WriteResult
    • MongoDB\Driver\WriteResult::getDeletedCount — Возвращает количество удаленных документов
    • MongoDB\Driver\WriteResult::getInsertedCount — Возвращает количество вставленных документов (исключая слияния)
    • MongoDB\Driver\WriteResult::getMatchedCount — Возвращает количество документов, выбранных для обновления
    • MongoDB\Driver\WriteResult::getModifiedCount — Возвращает количество существующих обновленных документов
    • MongoDB\Driver\WriteResult::getServer — Возвращает сервер, связанный с этим результатом записи
    • MongoDB\Driver\WriteResult::getUpsertedCount — Возвращает количество документов, вставленных слиянием
    • MongoDB\Driver\WriteResult::getUpsertedIds — Возвращает массив идентификаторов для объединенных документов
    • MongoDB\Driver\WriteResult::getWriteConcernError — Возвращает любую ошибку гарантий записи, которая произошла
    • MongoDB\Driver\WriteResult::getWriteErrors — Возвращает любые ошибки записи, которые произошли
    • MongoDB\Driver\WriteResult::isAcknowledged — Возвращает, была ли запись подтверждена


Класс MongoDB\Driver\Manager

(mongodb >=1.0.0)

Введение

Класс MongoDB\Driver\Manager является основной точкой входа в расширение. Он отвечает за поддержание соединений с MongoDB (будь то автономный сервер, набор реплик или распределенный кластер).

При инициализации класса Manager не происходит подключение к MongoDB. Это означает, что MongoDB\Driver\Manager всегда может быть создан, даже если сервера MongoDB не работают.

Любая запись или запрос будут вызывать исключение cоединения, поскольку соединения создаются "лениво" (по требованию). Сервер MongoDB также может быть недоступен в течение всего времени выполнения скрипта. Поэтому важно, чтобы все действия с Manager были обернуты в блок try/catch.

Обзор классов

final MongoDB\Driver\Manager {
/* Методы */
 final public __construct
  ([ string $uri = "mongodb://127.0.0.1/"
 [, array $uriOptions = array()
 [, array $driverOptions = array()
]]] )
final public createClientEncryption ( array $options ) : MongoDB\Driver\ClientEncryption
final public executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk [, array $options = array() ] ) : MongoDB\Driver\WriteResult
final public executeCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor
final public executeQuery ( string $namespace , MongoDB\Driver\Query $query [, array $options = array() ] ) : MongoDB\Driver\Cursor
final public executeReadCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor
final public executeReadWriteCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor
final public executeWriteCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor
final public getReadConcern ( void ) : MongoDB\Driver\ReadConcern
final public getReadPreference ( void ) : MongoDB\Driver\ReadPreference
final public getServers ( void ) : array
final public getWriteConcern ( void ) : MongoDB\Driver\WriteConcern
final public selectServer ( MongoDB\Driver\ReadPreference $readPreference ) : MongoDB\Driver\Server
final public startSession ([ array $options ] ) : MongoDB\Driver\Session
}

Примеры

Пример #1 Простой пример использования MongoDB\Driver\Manager::__construct()

Выводит различную информацию о MongoDB\Driver\Manager с помощью функции var_dump(). Это может быть полезно для отладки, чтобы посмотреть как драйвер видит настройку MongoDB и какие опции используются.

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
var_dump($manager);

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoDB\Driver\Manager)#1 (3) {
  ["request_id"]=>
  int(1714636915)
  ["uri"]=>
  string(25) "mongodb://localhost:27017"
  ["cluster"]=>
  array(13) {
    ["mode"]=>
    string(6) "direct"
    ["state"]=>
    string(4) "born"
    ["request_id"]=>
    int(0)
    ["sockettimeoutms"]=>
    int(300000)
    ["last_reconnect"]=>
    int(0)
    ["uri"]=>
    string(25) "mongodb://localhost:27017"
    ["requires_auth"]=>
    int(0)
    ["nodes"]=>
    array(...)
    ["max_bson_size"]=>
    int(16777216)
    ["max_msg_size"]=>
    int(50331648)
    ["sec_latency_ms"]=>
    int(15)
    ["peers"]=>
    array(0) {
    }
    ["replSet"]=>
    NULL
  }
}

Содержание

  • MongoDB\Driver\Manager::__construct — Создает новый Manager MongoDB
  • MongoDB\Driver\Manager::createClientEncryption — Создание нового объекта ClientEncryption
  • MongoDB\Driver\Manager::executeBulkWrite — Выполняет одну или несколько операций записи
  • MongoDB\Driver\Manager::executeCommand — Выполняет команду базы данных
  • MongoDB\Driver\Manager::executeQuery — Выполняет запрос к базе данных
  • MongoDB\Driver\Manager::executeReadCommand — Выполняет команду базы данных, которая читает
  • MongoDB\Driver\Manager::executeReadWriteCommand — Выполняет команду базы данных, которая читает и пишет
  • MongoDB\Driver\Manager::executeWriteCommand — Выполняет команду базы данных, которая пишет
  • MongoDB\Driver\Manager::getReadConcern — Возвращает ReadConcern для Manager
  • MongoDB\Driver\Manager::getReadPreference — Возвращает ReadPreference для Manager
  • MongoDB\Driver\Manager::getServers — Возвращает серверы, к которым подключен менеджер
  • MongoDB\Driver\Manager::getWriteConcern — Возвращает WriteConcern для Manager
  • MongoDB\Driver\Manager::selectServer — Выбрать сервер, соответствующий предпочтениям чтения
  • MongoDB\Driver\Manager::startSession — Запускает новый клиентский сеанс для использования с этим клиентом


Создает новый Manager MongoDB

  • « MongoDB\Driver\Manager
  • MongoDB\Driver\Manager::createClientEncryption »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Создает новый Manager MongoDB

MongoDB\Driver\Manager::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Manager::__construct — Создает новый Manager MongoDB

Описание

 final public MongoDB\Driver\Manager::__construct
  ([ string $uri = "mongodb://127.0.0.1/"
 [, array $uriOptions = array()
 [, array $driverOptions = array()
]]] )

Создает новый объект MongoDB\Driver\Manager с переданными параметрами.

Замечание: В » спецификации по обнаружению и мониторингу сервера, этот конструктор не выполняет ввода-вывода. Соединения будут инициализироваться по требованию, когда выполняется первая операция.

Замечание: При передаче любых URI-опций, связанных с SSL или TLS, через строку подключения или параметр uriOptions, драйвер неявно включает TLS при соединениях. Чтобы предотвратить это, либо явно отключите опцию tls, либо не передавайте никаких TLS-опций.

Замечание: На Unix, драйвер MongoDB чувствителен к сценариям, которые используют системный вызов fork() без последующего exec(). Пользователям рекомендуется не переиспользовать экземпляр MongoDB\Driver\Manager в дочернем процессе. child process.

Список параметров

uri

URI-адрес подключения » mongodb://:

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

Подробнее о поддерживаемых параметрах, см. раздел » Параметры строки подключения в руководстве MongoDB. » Параметры пула подключения не поддерживаются, т.к. PHP-драйвер не реализует пулы подключений.

uri - это URL, поэтому любые специальные символы в его компонентах должны закодированы в соответствии » RFC 3986. Это особенно актуально для имени пользователя и пароля, которые часто могут содержать специальные символы, такие как @, :, или %. При подключении через доменный сокет Unix, путь сокета может содержать специальные символы, например слеши, которые необходимо закодировать. Функция rawurlencode() может использоваться для кодирования составных частей URI-адреса.

uriOptions

Дополнительные » параметры строки подключения, которые будут перезаписывать любые параметры с тем же именем в параметре uri.

uriOptions
Название опции | Тип | Описание
appname string

В MongoDB 3.4+ появилась возможность добавлять аннотации к соединениям с метаданными, предоставляемыми подключающимся клиентом. Эти метаданные включаются в журналы логирования сервера при установлении соединения, а также записываются в журналы медленных запросов, если включено профилирование базы данных.

Эта опция может использоваться для указания имени приложения, которое будет включено в метаданные. Значение не может превышать 128 символов.

authMechanism string

Механизм аутентификации, который MongoDB будет использовать для аутентификации соединения. Для просмотра дополнительных сведений и списка поддерживаемых значений, см. раздел » Параметры аутентификации в руководстве MongoDB.

authMechanismProperties array

Свойства для выбранного механизма аутентификации. Для просмотра дополнительных сведений и списка поддерживаемых значений, см. раздел » Спецификация аутентификации драйвера.

Замечание: Если не указана в строке URI-адреса, эта опция представляется в виде массива пар ключ-значение. Ключи и значения в этом массиве должны быть строками.

authSource string

Имя базы данных, связанное с учетными данными пользователя. По умолчанию используется компонент базы данных из URI-адреса соединения.

Для механизмов аутентификации, которые делегируют хранение учетных данных другим службам (например, GSSAPI), значение должно быть "$external".

canonicalizeHostname boolean

Если TRUE, драйвер будет преобразовывать реальное имя хоста для IP-адреса сервера перед аутентификацией через SASL. Некоторые базовые слои GSSAPI уже делают это, но эта функциональность может быть отключена в их конфигурации (например, krb.conf). По умолчанию FALSE.

Этот параметр является устаревшим псевдонимом для свойства "CANONICALIZE_HOST_NAME" параметра URI "authMechanismProperties".

compressors string

Имеющий приоритет, список разделенных запятыми компрессоров, которые клиент хочет использовать. Сообщения сжаты только в том случае, если клиент и сервер совместно используют любые компрессоры, а компрессор, используемый в каждом направлении, будет зависеть от индивидуальной конфигурации сервера или драйвера. Смотрите » Спецификация компресии драйвера для получения дополнительной информации.

connectTimeoutMS integer

Время в миллисекунд, чтобы попытаться подключиться перед тайм-аутом. По умолчанию - 10 000 миллисекунд.

gssapiServiceName string

Устанавливает имя службы Kerberos при подключении к керберизованными экземплярам MongoDB. Это значение должно совпадать именем службы, установленным в экземплярах MongoDB (т.е. с параметром сервер, » saslServiceName ). По умолчанию используется "mongodb".

Этот параметр является устаревшим псевдонимом для свойства "SERVICE_NAME" параметра URI "authMechanismProperties".

heartbeatFrequencyMS integer

Задает интервал в миллисекундах между проверками драйвера топологии MongoDB, отсчитываемыми с конца предыдущей проверки до начала следующей. По умолчанию - 60 000 миллисекунд.

Согласно » Спецификации по обнаружению и мониторингу сервера, это значение не может быть меньше 500 миллисекунд.

journal boolean

Соответствует параметру гарантий записи journal. Если TRUE, для записи будет требоваться подтверждение от MongoDB, что операция была записана в журнал. Подробнее см. MongoDB\Driver\WriteConcern.

localThresholdMS integer

Размер в миллисекундах окна задержки для выбора среди нескольких подходящих экземпляров MongoDB при разрешении предпочтения чтения. По умолчанию - 15 миллисекунд.

maxStalenessSeconds integer

Соответствует параметру предпочтениям чтения "maxStalenessSeconds". Указывает в секундах насколько устаревшим может быть вторичный узел в наборе реплик, прежде чем клиент перестанет его использовать для операций чтения. По умолчанию не задано максимальное отставание репликации (staleness) и клиенты не будут учитывать отставание вторичного узла при выборе при выборе направления операции чтения. Подробнее см. MongoDB\Driver\ReadPreference.

Если указана, максимальное отставание должно быть 32-битным целым числом, большим или равным MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS (т.е. 90 секунд).

password | string | Пароль для аутентификации пользователя. Эта опция полезна, если пароль содержит специальные символы, которые в противном случае должны были закодированы для URI-адреса подключения.
readConcernLevel | string | Соответствует параметру гарантий чтения level Определяет уровень изоляции чтения. Подробнее см. MongoDB\Driver\ReadConcern.
readPreference string

Соответствует параметру предпочтениям чтения mode По умолчанию - "primary". Подробнее см. MongoDB\Driver\ReadPreference.

readPreferenceTags array

Соответствует параметру предпочтениям чтения tagSets. Наборы тегов позволяют настраивать операции чтения для опреденных членов набора реплики. Подробнее см. MongoDB\Driver\ReadPreference.

Замечание: Если в строке URI не указано, этот параметр представляется как как массив, соответствующий формату, ожидаемому MongoDB\Driver\ReadPreference::__construct().

replicaSet string

Задает имя набора реплики.

retryReads boolean

Указывает, должен ли драйвер автоматически повторять определенные операции чтения, которые не выполняются из-за временных сетевых ошибок или выборов набора реплик. Требуется MongoDB 3.6+. По умолчанию TRUE.

Смотрите » Спецификацию по Retryable Reads для получения дополнительной информации.

retryWrites boolean

Указывает, должен ли драйвер автоматически повторять определенные операции записи, которые не выполняются из-за временных сетевых ошибок или выборов набора реплик. Требуется MongoDB 3.6+. По умолчанию TRUE.

Смотрите » Retryable Writes в руководстве MongoDB для получения дополнительной информации.

safe boolean

Если TRUE, указывает 1 для параметра w гарантии записи по умолчанию. Если FALSE, указывается 0. Подробнее см. MongoDB\Driver\WriteConcern.

Эта опция устарела и не должна использоваться.

serverSelectionTimeoutMS integer

Указывает как долго в миллисекунд блокировать выбор сервера перед выбросом исключения. По умолчанию - 30 000 миллисекунд.

serverSelectionTryOnce boolean

Если TRUE, то сообщает драйверу сканировать развертывание MongoDB только один раз после неудачной попытки выбора сервера, а затем либо выбрать сервер или создать ошибку. Когда FALSE, драйвер блокирует выбор и выполняет поиск сервера до истечения времени, указанного в параметре "serverSelectionTimeoutMS". По умолчанию - TRUE.

slaveOk boolean

Указывает "secondaryPreferred" для режима предпочтения чтения, если TRUE. Подробности см. MongoDB\Driver\ReadPreference.

Эта опция устарела и не должна использоваться.

socketCheckIntervalMS integer

Если сокет не использовался в последнее время, драйвер должен проверить с помощью команды isMaster, прежде чем использовать его для любой операции. По умолчанию - 5 000 миллисекунд.

socketTimeoutMS integer

Время в миллисекундах, чтобы попытаться отправить или получить в сокет до истечения времени. По умолчанию - 300 000 миллисекунд (т.е. 5 минут).

ssl boolean

Создает соединение с TLS/SSL, если TRUE. По умолчанию - FALSE.

Параметр является устаревшим псевдонимом для параметра URI "tls".

tls boolean

Инициирует соединение с TLS/SSL, если TRUE. По умолчанию FALSE.

tlsAllowInvalidCertificates boolean

Указывает, должен ли драйвер выдавать ошибку, если сертификат TLS сервера недействителен. По умолчанию FALSE.

Внимание

Отключение проверки сертификата создает уязвимость.

tlsAllowInvalidHostnames boolean

Указывает, должен ли драйвер выдавать ошибку при несоответствии имени хоста сервера и имени хоста, указанного в сертификате TLS. По умолчанию FALSE.

Внимание

Отключение проверки сертификата создает уязвимость. Разрешение недопустимых имен хоста может привести к атаке типа » "человек посередине" (man-in-the-middle).

tlsCAFile string

Путь к файлу с одним или несколькими центрами сертификации, которые следует считать доверенными при установлении соединения TLS. По умолчанию будет использоваться хранилище системных сертификатов.

tlsCertificateKeyFile string

Путь к файлу сертификата клиента или файлу закрытого ключа клиента; в случае, если они оба необходимы, файлы должны быть объединены.

tlsCertificateKeyFilePassword string

Пароль для расшифровки закрытого ключа клиента (т.е. параметра URI "tlsCertificateKeyFile"), который будет использоваться для соединений TLS.

tlsInsecure boolean

Ослабьте ограничения TLS в максимально возможной степени. При значении TRUE этот параметр имеет тот же эффект, что и указание значения TRUE для обоих параметров URI tlsAllowInvalidCertificates и "tlsAllowInvalidHostnames". По умолчанию FALSE.

Внимание

Отключение проверки сертификата создает уязвимость. Разрешение недопустимых имен хоста может привести к атаке типа » "человек посередине" (man-in-the-middle).

username | string | Имя пользователя для аутентификации. Эта опция полезна, если имя пользователя содержит специальные символы, которые в противном случае должны были быть закодированы в URL для URI-адреса подключения.
w integer|string

Соответствует параметру гарантий записи w. Подробнее см. MongoDB\Driver\WriteConcern.

wTimeoutMS integer|string

Соответствует параметру гарантий записи wtimeout. Указывает срок в миллисекундах для гарантии записи. Подробнее см. MongoDB\Driver\WriteConcern.

Если указан, wTimeoutMS должен быть 32-битным целым числом со знаком, большим или равным нулю.

zlibCompressionLevel integer

Указывает уровень сжатия для использования zlib. Эта опция ничего не делает, если zlib не включен в URL опции "compressors". Смотрите » Спецификация компрессии драйвера для получения дополнительной информации.

driverOptions

driverOptions
Опция | Тип | Описание
allow_invalid_hostname boolean

Отключает проверку имени хоста, если TRUE. По умолчанию - FALSE.

Разрешение недопустимых имен хоста может привести к атаке типа » "человек посередине" (man-in-the-middle).

Этот параметр является устаревшим псевдонимом для параметра URI "tlsAllowInvalidHostnames"

autoEncryption array

Предоставляет опции для включения автоматического шифрования на уровне поля на стороне клиента. Поддерживаются следующие опции:

Опции для автоматического шифрования
Опция | Тип | Описание
keyVaultClient | MongoDB\Driver\Manager | Менеджер используется для маршрутизации запросов ключей данных в отдельный кластер MongoDB. По умолчанию используется текущий менеджер и кластер.
keyVaultNamespace | string | Полное пространство имен (например, "databaseName.collectionName"), обозначающее коллекцию, которая содержит все ключи данных, используемые для шифрования и дешифрования.
kmsProviders array

Документ, содержащий конфигурацию для одного или нескольких провайдеров KMS, которые используются для шифрования ключей данных. В настоящее время поддерживаются aws или local, и, по крайней мере, один из них должен быть указан.

Формат для aws выглядит следующим образом:

aws: {
    accessKeyId: <string>,
    secretAccessKey: <string>
}

Формат для local выглядит следующим образом:

local: {
    // Главный ключ, используемый для шифрования/дешифрования ключей данных
    key: <96-byte MongoDB\BSON\Binary with subtype 0>
}
schemaMap array

Позволяет указать локальную схему JSON, которая используется для настройки шифрования.

Замечание: Добавление schemaMap обеспечивает большую безопасность, чем использование схем JSON, полученных с сервера. Это защищает от вредоносного сервера, рекламирующего ложную схему JSON, которая может заставить клиента отправлять незашифрованные данные, которые должны быть зашифрованы.

Замечание: Схемы, поставляемые в schemaMap, применяются только для настройки автоматического шифрования на стороне клиента. Другие правила проверки в схеме JSON не будут применяться драйвером и приведут к ошибке.

bypassAutoEncryption | boolean | Если для этого параметра установлено значение TRUE, mongocryptd не будет появляться автоматически. Это используется для отключения автоматического шифрования.
extraOptions | array | extraOptions относится к процессу mongocryptd. Смотрите » Руководство по шифрованию на стороне клиента, чтобы получить больше информации.

Замечание: Автоматическое шифрование — это только корпоративная функция, которая применяется только к операциям над коллекцией. Автоматическое шифрование не поддерживается для операций с базой данных или представлением, операции, которые не получится обойти, приведут к ошибке. Чтобы обойти автоматическое шифрование для всех операций, установите bypassAutoEncryption=true в autoEncryption. Automatic encryption is an enterprise only feature that only applies to operations on a collection. Automatic encryption is not supported for operations on a database or view, and operations that are not bypassed will result in error. To bypass automatic encryption for all operations, set bypassAutoEncryption=true in autoEncryption. Для получения дополнительной информации об операциях в белом списке смотрите » Руководство по шифрованию на стороне клиента.

ca_dir string

Путь к корректно захешированному каталогу сертификатов. По умолчанию будет использоваться хранилище системных сертификатов.

ca_file string

Путь к файлу с одним или несколькими центрами сертификации, которые следует считать доверенными при установлении соединения TLS. По умолчанию будет использоваться хранилище системных сертификатов.

Параметр является устаревшим псевдонимом для параметра URI "tlsCAFile".

context resource

Параметры контекста SSL для использования в качестве запасного варианта, если не указана опция драйвера или эквивалентная ей опция URI. Обратите внимание, что драйвер не обращается к контексту потока по умолчанию (т.е. stream_context_get_default()). Поддерживаются следующие параметры контекста:

Резервные параметры контекста SSL
Параметр драйвера | Параметр контекста (запасной вариант)
ca_dir | capath
ca_file | cafile
pem_file | local_cert
pem_pwd | passphrase
weak_cert_validation | allow_self_signed

Параметр поддерживается для обратной совместимости, но его следует считать устаревшим.

crl_file | string | Путь к файлу списка аннулированных сертификатов.
pem_file string

Путь к сертификату в формате PEM для аутентификации клиента.

Этот параметр является устаревшим псевдонимом для параметра URI "tlsCertificateKeyFile".

pem_pwd string

Парольная фраза к PEM-закодированному сертификату (если есть).

Этот параметр является устаревшим псевдонимом для параметра URI "tlsCertificateKeyFilePassword".

weak_cert_validation boolean

Отключает проверку сертифика, если TRUE. По умолчанию - FALSE

Этот параметр является устаревшим псевдонимом для параметра URI "tlsAllowInvalidHostnames".

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неверном формате uri выбрасывает исключение MongoDB\Driver\Exception\RuntimeException.

Список изменений

Версия Описание
1.7.0

Добавлена опция драйвера "autoEncryption".

Указание любой опции SSL или TLS в параметре driverOptions теперь неявно включает TLS, как это делается для соответствующих опций URI.

1.6.0

Добавлены параметры URI "retryReads", "tls", "tlsAllowInvalidCertificates", "tlsAllowInvalidHostnames", "tlsCAFile", "tlsCertificateKeyFile", "tlsCertificateKeyFilePassword", и "tlsInsecure".

Параметр URI "retryWrites" по умолчанию TRUE.

Передача URI-опции SSL или TLS через строку подключения или параметр uriOptions теперь неявно включает TLS, при условии, если ssl или tls не равны FALSE. TSL не включается неявно для любых опций в параметре driverOptions, как в предыдущих версиях.

1.5.0

"wtimeoutMS" теперь всегда проверяется и применяется к гарантии записи. Ранее эта опция игнорировалась, если "w" был <= 1, поскольку тайм-аут применяется только к репликации.

1.4.0

Добавлены опции URI "compressors", "retryWrites" и "zlibCompressionLevel".

1.3.0

В аргументе uriOptions теперь есть опции "authMechanism" и "authMechanismProperties". Раньше эти опции поддерживались только в аргументе uri.

1.2.0

Аргумент uri по умолчанию теперь "mongodb://127.0.0.1/". Порт по умолчанию не изменился - 27017.

Добавлен URI-параметр "appname".

Добавлены параметры драйвера "allow_invalid_hostname", "ca_file", "ca_dir", "clr_file", "pem_file", "pem_pwd" и "weak_cert_validation".

API потоков PHP больше не используется для соединения с сокетом. Параметр URI "connectTimeoutMS" теперь по умолчанию равен 10 секунд вместо default_socket_timeout в предыдущих версиях. Кроме того, драйвер больше не поддерживает все параметры SSL-контекста через параметр драйвера "context".

1.1.0

Аргумент uri является необязательный и по умолчанию равен "mongodb://localhost:27017/".

Примеры

Пример #1 Примеры использования MongoDB\Driver\Manager::__construct()

Подключение к автономному узлу MongoDB:

<?php

$manager = new MongoDB\Driver\Manager("mongodb://example.com:27017");

?>

Подключение к автономному узлу MongoDB через доменный сокет Unix. Путь сокета может содержать специальные символы, например слеши, которые должны закодированы с помощью rawurlencode().

<?php

$manager = new MongoDB\Driver\Manager("mongodb://" . rawurlencode("/tmp/mongodb-27017.sock"));

?>

Подключение к набору реплик:

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

?>

Подключение к сегментированному кластеру (т.е. одну или нескольким экземплярам mongos):

<?php

$manager = new MongoDB\Driver\Manager("mongodb://mongos1.example.com,mongos2.example.com/");

?>

Подключение к MongoDB с учетными данными аутентификации для конкретного пользователя и базы данных:

<?php

$manager = new MongoDB\Driver\Manager("mongodb://myusername:mypassword@example.com/mydatabase");

?>

Подключение к MongoDB с учетными данными аутентификации для конкретного пользователя и базы данных, где имя пользователя или пароль содержат специальные символы (e.g. @, :, %). В следующем примере, строка с паролем myp@ss:w%rd была вручную экранирована; однако rawurlencode() может использоваться для экранирования URI-компонетов, которые могут содержать специальные символы.

<?php

$manager = new MongoDB\Driver\Manager("mongodb://myusername:myp%40ss%3Aw%25rd@example.com/mydatabase");

?>

Подключение к MongoDB с аутентификацией X509:

<?php

$manager = new MongoDB\Driver\Manager(
    "mongodb://example.com/?ssl=true&authMechanism=MONGODB-X509",
    [],
    [
        "pem_file" => "/path/to/client.pem",
    ]
);
?>

Смотрите также

  • Обработка подключения и сохранение
  • » Формат строки соединения MongoDB


Создание нового объекта ClientEncryption

  • « MongoDB\Driver\Manager::__construct
  • MongoDB\Driver\Manager::executeBulkWrite »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Создание нового объекта ClientEncryption

MongoDB\Driver\Manager::createClientEncryption

(mongodb >=1.7.0)

MongoDB\Driver\Manager::createClientEncryption — Создание нового объекта ClientEncryption

Описание

final public MongoDB\Driver\Manager::createClientEncryption ( array $options ) : MongoDB\Driver\ClientEncryption

Создает новый объект MongoDB\Driver\ClientEncryption с заданными параметрами.

Список параметров

options

options
Параметр | Тип | Описание
keyVaultClient | MongoDB\Driver\Manager | Менеджер используется для маршрутизации запросов ключей данных в отдельный кластер MongoDB. По умолчанию используется текущий менеджер и кластер.
keyVaultNamespace | string | Полное пространство имен (например, "databaseName.collectionName"), обозначающее коллекцию, которая содержит все ключи данных, используемые для шифрования и дешифрования.
kmsProviders array

Документ, содержащий конфигурацию для одного или нескольких провайдеров KMS, которые используются для шифрования ключей данных. В настоящее время поддерживаются aws или local, и, по крайней мере, один из них должен быть указан.

Формат для aws выглядит следующим образом:

aws: {
    accessKeyId: <string>,
    secretAccessKey: <string>
}

Формат для local выглядит следующим образом:

local: {
    // Главный ключ, используемый для шифрования/дешифрования ключей данных
    key: <96-byte MongoDB\BSON\Binary with subtype 0>
}

Возвращаемые значения

Возвращает новый экземпляр MongoDB\Driver\ClientEncryption.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException если модуль был скомпилирован без поддержки libmongocrypt

Смотрите также

  • MongoDB\Driver\ClientEncryption
  • Страница в в руководстве по MongoDB: » Явное (ручное) шифрование на уровне поля на стороне клиента


Выполняет одну или несколько операций записи

  • « MongoDB\Driver\Manager::createClientEncryption
  • MongoDB\Driver\Manager::executeCommand »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Выполняет одну или несколько операций записи

MongoDB\Driver\Manager::executeBulkWrite

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeBulkWrite — Выполняет одну или несколько операций записи

Описание

final public MongoDB\Driver\Manager::executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk [, array $options = array() ] ) : MongoDB\Driver\WriteResult

Выполняет одну или несколько операций записи на основном сервере.

Объект класса MongoDB\Driver\BulkWrite может быть создан с одной или несколькими операциями записи различного типа (например, обновлениями, удалениями и вставками). Драйвер попытается отправить операции одного и того же типа на сервер с минимальным количества запросов, чтобы сократить обращения к серверу.

Список параметров

namespace (string)

Полностью определенное имя (т.е. "databaseName.collectionName").

bulk (MongoDB\Driver\BulkWrite)

Записи для выполнения.

опции

options
Опция Тип Описание
session MongoDB\Driver\Session

Сессия для связывания с операцией.

writeConcern MongoDB\Driver\WriteConcern

Гаранатия записи для применения к операции.

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\WriteResult.

Ошибки

  • При отсутствии какой-либо операции записи в bulk, выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Если bulk уже был выполнен, выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException. Объекты MongoDB\Driver\BulkWrite не могут быть выполнены несколько раз.
  • Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется в сочетании с неподтвержденной гарантией записи.
  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • При ошибке записи бросает исключение MongoDB\Driver\Exception\BulkWriteException.
  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • При возникновении других ошибок, бросает исключение MongoDB\Driver\Exception\RuntimeException.

Список изменений

Версия | Описание
1.4.4 | Если опция "session" используется в сочетании с неподтвержденной гарантией записи, выбрасывается исключение MongoDB\Driver\Exception\InvalidArgumentException.
1.4.0 | Третий параметр options теперь массив. Для обратной совместимости этот параметр еще принимает объект MongoDB\Driver\WriteConcern.
1.3.0 | Теперь выбрасывается исключение MongoDB\Driver\Exception\InvalidArgumentException, если bulk не содержит операций записи. Ранее выбрасывалось MongoDB\Driver\Exception\BulkWriteException.

Примеры

Пример #1 Пример использования MongoDB\Driver\Manager::executeBulkWrite()

<?php

$bulk = new MongoDB\Driver\BulkWrite();

$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);

$bulk->update(['x' => 2], ['$set' => ['x' => 1]], ['multi' => false, 'upsert' => false]);
$bulk->update(['x' => 3], ['$set' => ['x' => 3]], ['multi' => false, 'upsert' => true]);
$bulk->update(['_id' => 3], ['$set' => ['x' => 3]], ['multi' => false, 'upsert' => true]);

$bulk->insert(['_id' => 4, 'x' => 2]);

$bulk->delete(['x' => 1], ['limit' => 1]);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 100);
$result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);

printf("Добавлено %d документ(ов)\n", $result->getInsertedCount());
printf("Найдено %d документ(ов)\n", $result->getMatchedCount());
printf("Обновлено %d документ(ов)\n", $result->getModifiedCount());
printf("Добавлено и добавлено %d документ(ов)\n", $result->getUpsertedCount());
printf("Удалено %d документ(ов)\n", $result->getDeletedCount());

foreach ($result->getUpsertedIds() as $index => $id) {
    printf('upsertedId[%d]: ', $index);
    var_dump($id);
}

/* Если WriteConcern не может быть выполнен */
if ($writeConcernError = $result->getWriteConcernError()) {
    printf("%s (%d): %s\n", $writeConcernError->getMessage(), $writeConcernError->getCode(), var_export($writeConcernError->getInfo(), true));
}

/* Если запись не может произойти вообще*/
foreach ($result->getWriteErrors() as $writeError) {
    printf("Операция#%d: %s (%d)\n", $writeError->getIndex(), $writeError->getMessage(), $writeError->getCode());
}
?>

Результатом выполнения данного примера будет что-то подобное:

Добавлено 3 документ(ов)
Найдено 1 документ(ов)
Обновлено 1 документ(ов)
Добавлено и добавлено 2 документ(ов)
Удалено 1 документ(ов)
upsertedId[3]: object(MongoDB\BSON\ObjectId)#5 (1) {
  ["oid"]=>
  string(24) "54d3adc3ce7a792f4d703756"
}
upsertedId[4]: int(3)

Смотрите также

  • MongoDB\Driver\BulkWrite
  • MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteConcern
  • MongoDB\Driver\Server::executeBulkWrite() - Выполнить одну или несколько операций записи на сервере


Выполняет команду базы данных

  • « MongoDB\Driver\Manager::executeBulkWrite
  • MongoDB\Driver\Manager::executeQuery »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Выполняет команду базы данных

MongoDB\Driver\Manager::executeCommand

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeCommand — Выполняет команду базы данных

Описание

final public MongoDB\Driver\Manager::executeCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor

Выбирает сервер в соответствии с опцией "readPreference" и выполняет запрос на этом сервере. По умолчанию будет использоваться предпочтение чтения из URI URI подключения MongoDB.

Этот метод не применяет особую логику к команде. Хотя этот метод принимает "readConcern" и "writeConcern", которые будут включены в документы коанды, эти опции не будут соответствовать значениям по умолчанию из MongoDB URI соединения , и не будет учитываться версия сервера MongoDB. Поэтому пользователям рекомендуется использовать конкретные методы команды чтения и/или записи если это возможно.

Список параметров

db (string)

Имя базы данных, в которой запускается комманда.

command (MongoDB\Driver\Command)

Команда для выполнения.

options

options
Опция Тип Описание
readConcern MongoDB\Driver\ReadConcern

Гаранатия чтения для применения к операции.

Эта опция доступна в MongoDB 3.2+ и приведет к исключению во время выполнения, если указана для более старой версии сервера.

readPreference MongoDB\Driver\ReadPreference

Предпочтение чтения, используемая для выбора сервера для выполнения операции.

session MongoDB\Driver\Session

Сессия для связывания с операцией.

writeConcern MongoDB\Driver\WriteConcern

Гаранатия записи для применения к операции.

Внимание

При использовании "session" и наличии незавершенных транзакций, вы не можете указать "readConcern" or "writeConcern" option. Это приведет к выбрасыванию исключения MongoDB\Driver\Exception\InvalidArgumentException. Вместо этого вы должны установить эти две опции при создании транзакции с помощью MongoDB\Driver\Session::startTransaction().

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\Cursor.

Ошибки

  • Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется с соответствующей транзакцией в сочетании с опцией "readConcern" или "writeConcern".
  • Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется в сочетании с неподтвержденной гарантией записи.
  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • При возникновении других ошибок (например, неправильная команда), бросает исключение MongoDB\Driver\Exception\RuntimeException.

Список изменений

Версия | Описание
1.4.4 | Если опция "session" используется в сочетании с неподтвержденной гарантией записи, выбрасывается исключение MongoDB\Driver\Exception\InvalidArgumentException.
1.4.0 | Третий параметр теперь представляет собой массив options. Для обратной совместимости этот параметр все равно примет объект MongoDB\Driver\ReadPreference.

Примеры

Пример #1 Пример выполнения MongoDB\Driver\Manager::executeCommand() с командой, возвращающей одиночный документ

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$command = new MongoDB\Driver\Command(['ping' => 1]);

try {
    $cursor = $manager->executeCommand('admin', $command);
} catch(MongoDB\Driver\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}

/* Команда ping возвращает одиночный результат, поэтому мы должны получить доступ к
 * первому результату в курсор. */
$response = $cursor->toArray()[0];

var_dump($response);

?>

Результат выполнения данного примера:

array(1) {
  ["ok"]=>
  float(1)
}

Пример #2 Пример выполнения MongoDB\Driver\Manager::executeCommand() с командой, возвращающей курсор

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1, 'y' => 'foo']);
$bulk->insert(['x' => 2, 'y' => 'bar']);
$bulk->insert(['x' => 3, 'y' => 'bar']);
$manager->executeBulkWrite('db.collection', $bulk);

$command = new MongoDB\Driver\Command([
    'aggregate' => 'collection',
    'pipeline' => [
        ['$group' => ['_id' => '$y', 'sum' => ['$sum' => '$x']]],
    ],
    'cursor' => new stdClass,
]);
$cursor = $manager->executeCommand('db', $command);

/* Команда aggragete опционально может вернуть результаты в курсоре вместо
 * одиночного документа. В таком случае мы можем перебирать на курсоре для
 * непосредственного доступа к результатам. */
foreach ($cursor as $document) {
    var_dump($document);
}

?>

Результат выполнения данного примера:

object(stdClass)#6 (2) {
  ["_id"]=>
  string(3) "bar"
  ["sum"]=>
  int(10)
}
object(stdClass)#7 (2) {
  ["_id"]=>
  string(3) "foo"
  ["sum"]=>
  int(2)
}

Пример #3 Ограничение времени выполнения запроса

Опция "maxTimeMS" класса MongoDB\Driver\Query может использоваться для ограничения времени выполнения запроса. Обратите внимание, что этот срок применяется на стороне сервера и не учитывает задержки сети. См. » Завершение выполнения операций в руководстве MongoDB для получения дополнительной информации.

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');

$command = new MongoDB\Driver\Command([
    'count' => 'collection',
    'query' => ['x' => ['$gt' => 1]],
    'maxTimeMS' => 1000,
]);

$cursor = $manager->executeCommand('db', $command);

var_dump($cursor->toArray()[0]);

?>

Если запрос не завершится через секунду после начала выполнения на сервере, будет выброшено исключение MongoDB\Driver\Exception\ExecutionTimeoutException.

Примечания

Замечание: Если используется вторичный readPreference, ответственность выполняющего кода гарантировать, что command может быть выполнен на вторичном узле. Проверка не выполняется драйвером.

Смотрите также

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Manager::executeReadCommand() - Выполняет команду базы данных, которая читает
  • MongoDB\Driver\Manager::executeReadWriteCommand() - Выполняет команду базы данных, которая читает и пишет
  • MongoDB\Driver\Manager::executeWriteCommand() - Выполняет команду базы данных, которая пишет
  • MongoDB\Driver\Server::executeCommand() - Выполнить команду базы данных на сервере


Выполняет запрос к базе данных

  • « MongoDB\Driver\Manager::executeCommand
  • MongoDB\Driver\Manager::executeReadCommand »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Выполняет запрос к базе данных

MongoDB\Driver\Manager::executeQuery

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeQuery — Выполняет запрос к базе данных

Описание

final public MongoDB\Driver\Manager::executeQuery ( string $namespace , MongoDB\Driver\Query $query [, array $options = array() ] ) : MongoDB\Driver\Cursor

Выбирает сервер в соответствии с опцией "readPreference" и выполняет запрос на этом сервере. По умолчанию будет использоваться предпочтение чтения из URI URI подключения MongoDB.

Список параметров

namespace (string)

Полностью определенное имя (т.е. "databaseName.collectionName").

query (MongoDB\Driver\Query)

Запрос для выполнения.

options

options
Опция Тип Описание
readPreference MongoDB\Driver\ReadPreference

Предпочтение чтения, используемая для выбора сервера для выполнения операции.

session MongoDB\Driver\Session

Сессия для связывания с операцией.

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\Cursor.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • При возникновении других ошибок (например, неправильные операторы запроса), выбрасывает исключение MongoDB\Driver\Exception\RuntimeException.

Список изменений

Версия | Описание
1.4.0 | Третий параметр теперь представляет собой массив options. Для обратной совместимости этот параметр все равно примет объект MongoDB\Driver\ReadPreference.

Примеры

Пример #1 Пример выполнения MongoDB\Driver\Manager::executeQuery()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$filter = ['x' => ['$gt' => 1]];
$options = [
    'projection' => ['_id' => 0],
    'sort' => ['x' => -1],
];

$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);

foreach ($cursor as $document) {
    var_dump($document);
}

?>

Результат выполнения данного примера:

object(stdClass)#6 (1) {
  ["x"]=>
  int(3)
}
object(stdClass)#7 (1) {
  ["x"]=>
  int(2)
}

Пример #2 Ограничение времени выполнения запроса

Опция "maxTimeMS" класса MongoDB\Driver\Query может использоваться для ограничения времени выполнения запроса. Обратите внимание, что этот срок применяется на стороне сервера и не учитывает задержки сети. См. » Завершение выполнения операций в руководстве MongoDB для получения дополнительной информации.

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');

$filter = ['x' => ['$gt' => 1]];
$options = [
    'maxTimeMS' => 1000,
];

$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);

foreach ($cursor as $document) {
    var_dump($document);
}

?>

Если запрос не завершится через секунду после начала выполнения на сервере, будет выброшено исключение MongoDB\Driver\Exception\ExecutionTimeoutException.

Смотрите также

  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Query
  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Server::executeQuery() - Выполняет запрос к базе данных на сервере


Выполняет команду базы данных, которая читает

  • « MongoDB\Driver\Manager::executeQuery
  • MongoDB\Driver\Manager::executeReadWriteCommand »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Выполняет команду базы данных, которая читает

MongoDB\Driver\Manager::executeReadCommand

(mongodb >=1.4.0)

MongoDB\Driver\Manager::executeReadCommand — Выполняет команду базы данных, которая читает

Описание

final public MongoDB\Driver\Manager::executeReadCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor

Выбирает сервер в соответствии с опцией "readPreference" и выполняет команду на сервере. По умолчанию будет использоваться предпочтение чтения из URI подключения MongoDB.

Этот метод будет применять логику, специфичную для команд, которые читают (например, » count) и учитывают версию сервера MongoDB. Опция "readConcern" будет по умолчанию соответствовать соответствующему значению из URI подключения MongoDB.

Список параметров

db (string)

Имя базы данных, в которой запускается комманда.

command (MongoDB\Driver\Command)

Команда для выполнения.

options

options
Опция Тип Описание
readConcern MongoDB\Driver\ReadConcern

Гаранатия чтения для применения к операции.

Эта опция доступна в MongoDB 3.2+ и приведет к исключению во время выполнения, если указана для более старой версии сервера.

readPreference MongoDB\Driver\ReadPreference

Предпочтение чтения, используемая для выбора сервера для выполнения операции.

session MongoDB\Driver\Session

Сессия для связывания с операцией.

Внимание

При использовании "session" и наличии незавершенных транзакций, вы не можете указать "readConcern" or "writeConcern" option. Это приведет к выбрасыванию исключения MongoDB\Driver\Exception\InvalidArgumentException. Вместо этого вы должны установить эти две опции при создании транзакции с помощью MongoDB\Driver\Session::startTransaction().

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\Cursor.

Ошибки

  • Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется с соответствующей транзакцией в сочетании с опцией "readConcern" или "writeConcern".
  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Выдает исключение MongoDB\Driver\Exception\RuntimeException для других ошибок (например, неверная команда).

Смотрите также

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Manager::executeCommand() - Выполняет команду базы данных
  • MongoDB\Driver\Manager::executeReadWriteCommand() - Выполняет команду базы данных, которая читает и пишет
  • MongoDB\Driver\Manager::executeWriteCommand() - Выполняет команду базы данных, которая пишет
  • MongoDB\Driver\Server::executeReadCommand() - Выполняет команду базы данных, которая читает на сервере


Выполняет команду базы данных, которая читает и пишет

  • « MongoDB\Driver\Manager::executeReadCommand
  • MongoDB\Driver\Manager::executeWriteCommand »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Выполняет команду базы данных, которая читает и пишет

MongoDB\Driver\Manager::executeReadWriteCommand

(mongodb >=1.4.0)

MongoDB\Driver\Manager::executeReadWriteCommand — Выполняет команду базы данных, которая читает и пишет

Описание

final public MongoDB\Driver\Manager::executeReadWriteCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor

Выполняет команду на основном сервере.

Этот метод будет применять логику, специфичную для команд, которые читают и пишут (например, » findAndModify) и учитывают версию сервера MongoDB. Параметры "readConcern" и "writeConcern" по умолчанию соответствуют соответствующим значениям из URI подключения MongoDB.

Список параметров

db (string)

Имя базы данных, в которой запускается комманда.

command (MongoDB\Driver\Command)

Команда для выполнения.

options

options
Опция Тип Описание
readConcern MongoDB\Driver\ReadConcern

Гаранатия чтения для применения к операции.

Эта опция доступна в MongoDB 3.2+ и приведет к исключению во время выполнения, если указана для более старой версии сервера.

session MongoDB\Driver\Session

Сессия для связывания с операцией.

writeConcern MongoDB\Driver\WriteConcern

Гаранатия записи для применения к операции.

Внимание

При использовании "session" и наличии незавершенных транзакций, вы не можете указать "readConcern" or "writeConcern" option. Это приведет к выбрасыванию исключения MongoDB\Driver\Exception\InvalidArgumentException. Вместо этого вы должны установить эти две опции при создании транзакции с помощью MongoDB\Driver\Session::startTransaction().

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\Cursor.

Ошибки

  • Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется с соответствующей транзакцией в сочетании с опцией "readConcern" или "writeConcern".
  • Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется в сочетании с неподтвержденной гарантией записи.
  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Выдает исключение MongoDB\Driver\Exception\RuntimeException для других ошибок (например, неверная команда).

Список изменений

Версия | Описание
1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException будет выброшено, если опция "session" используется в сочетании с неподтвержденной записью.

Смотрите также

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Manager::executeCommand() - Выполняет команду базы данных
  • MongoDB\Driver\Manager::executeReadCommand() - Выполняет команду базы данных, которая читает
  • MongoDB\Driver\Manager::executeWriteCommand() - Выполняет команду базы данных, которая пишет
  • MongoDB\Driver\Server::executeReadWriteCommand() - Выполняет команду базы данных, которая читает и пишет на сервере


Выполняет команду базы данных, которая пишет

  • « MongoDB\Driver\Manager::executeReadWriteCommand
  • MongoDB\Driver\Manager::getReadConcern »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Выполняет команду базы данных, которая пишет

MongoDB\Driver\Manager::executeWriteCommand

(mongodb >=1.4.0)

MongoDB\Driver\Manager::executeWriteCommand — Выполняет команду базы данных, которая пишет

Описание

final public MongoDB\Driver\Manager::executeWriteCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor

Выполняет команду на основном сервере.

Этот метод будет применять логику, специфичную для команд, которые пишут (например, » drop) и учитывают версию сервера MongoDB. Опция "writeConcern" по умолчанию будет соответствовать значению из URI подключения MongoDB.

Замечание: Метод не предназначен для выполнения » insert, » update, или » delete команд. Пользователям рекомендуется использовать MongoDB\Driver\Manager::executeBulkWrite() для этих команд.

Список параметров

db (string)

Имя базы данных, в которой запускается комманда.

command (MongoDB\Driver\Command)

Команда для выполнения.

options

options
Опция Тип Описание
session MongoDB\Driver\Session

Сессия для связывания с операцией.

writeConcern MongoDB\Driver\WriteConcern

Гаранатия записи для применения к операции.

Внимание

При использовании "session" и наличии незавершенных транзакций, вы не можете указать "readConcern" or "writeConcern" option. Это приведет к выбрасыванию исключения MongoDB\Driver\Exception\InvalidArgumentException. Вместо этого вы должны установить эти две опции при создании транзакции с помощью MongoDB\Driver\Session::startTransaction().

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\Cursor.

Ошибки

  • Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется с соответствующей транзакцией в сочетании с опцией "readConcern" или "writeConcern".
  • Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется в сочетании с неподтвержденной гарантией записи.
  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException для других ошибок (например, неверная команда).

Список изменений

Версия | Описание
1.4.4 | Будет выброшено MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется в сочетании с неподтвержденной записью.

Смотрите также

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Manager::executeCommand() - Выполняет команду базы данных
  • MongoDB\Driver\Manager::executeReadCommand() - Выполняет команду базы данных, которая читает
  • MongoDB\Driver\Manager::executeReadWriteCommand() - Выполняет команду базы данных, которая читает и пишет
  • MongoDB\Driver\Server::executeWriteCommand() - Выполняет команду базы данных, которая пишет на сервере


Возвращает ReadConcern для Manager

  • « MongoDB\Driver\Manager::executeWriteCommand
  • MongoDB\Driver\Manager::getReadPreference »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Возвращает ReadConcern для Manager

MongoDB\Driver\Manager::getReadConcern

(mongodb >=1.1.0)

MongoDB\Driver\Manager::getReadConcern — Возвращает ReadConcern для Manager

Описание

final public MongoDB\Driver\Manager::getReadConcern ( void ) : MongoDB\Driver\ReadConcern

Возвращает MongoDB\Driver\ReadConcern для Manager, полученный из его URI-опций. Это гарантия чтения по умолчанию для запросов и команд, выполняемых в Manager.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

MongoDB\Driver\ReadConcern для Manager.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\Manager::getReadConcern()

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
var_dump($manager->getReadConcern());

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017/?readConcernLevel=local');
var_dump($manager->getReadConcern());

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoDB\Driver\ReadConcern)#2 (0) {
}
object(MongoDB\Driver\ReadConcern)#1 (1) {
  ["level"]=>
  string(5) "local"
}

Смотрите также

  • MongoDB\Driver\ReadConcern
  • MongoDB\Driver\Manager::__construct() - Создает новый Manager MongoDB


Возвращает ReadPreference для Manager

  • « MongoDB\Driver\Manager::getReadConcern
  • MongoDB\Driver\Manager::getServers »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Возвращает ReadPreference для Manager

MongoDB\Driver\Manager::getReadPreference

(mongodb >=1.0.0)

MongoDB\Driver\Manager::getReadPreference — Возвращает ReadPreference для Manager

Описание

final public MongoDB\Driver\Manager::getReadPreference ( void ) : MongoDB\Driver\ReadPreference

Возвращает MongoDB\Driver\ReadPreference для Manager, полученный из его URI-опций. Это предпочтение чтения по умолчанию для запросов и команд, выполняемых в Manager.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает MongoDB\Driver\ReadPreference для Manager.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример выполнения MongoDB\Driver\Manager::getReadPreference()

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
var_dump($manager->getReadPreference());

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017/?readPreference=secondaryPreferred&readPreferenceTags=dc:ny,rack:1&readPreferenceTags=dc:ny&readPreferenceTags=');
var_dump($manager->getReadPreference());

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoDB\Driver\ReadPreference)#2 (1) {
  ["mode"]=>
  string(7) "primary"
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(18) "secondaryPreferred"
  ["tags"]=>
  array(3) {
    [0]=>
    object(stdClass)#3 (2) {
      ["dc"]=>
      string(2) "ny"
      ["rack"]=>
      string(1) "1"
    }
    [1]=>
    object(stdClass)#4 (1) {
      ["dc"]=>
      string(2) "ny"
    }
    [2]=>
    object(stdClass)#5 (0) {
    }
  }
}

Смотрите также

  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Manager::__construct() - Создает новый Manager MongoDB


Возвращает серверы, к которым подключен менеджер

  • « MongoDB\Driver\Manager::getReadPreference
  • MongoDB\Driver\Manager::getWriteConcern »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Возвращает серверы, к которым подключен менеджер

MongoDB\Driver\Manager::getServers

(mongodb >=1.0.0)

MongoDB\Driver\Manager::getServers — Возвращает серверы, к которым подключен менеджер

Описание

final public MongoDB\Driver\Manager::getServers ( void ) : array

Возвращает array экземпляров MongoDB\Driver\Server, к которым подключен текущий менеджер.

Замечание: Посколько драйвер подключается к базе данных лениво, этот метод может возвращать пустой array, если он вызывается перед выполнением операции в MongoDB\Driver\Manager.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив (array) экземпляров MongoDB\Driver\Server, к которым подключен менеджер.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример выполнения MongoDB\Driver\Manager::getServers()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

/* Из-за того, что драйвер подключается к серверу лениво, вызов Manager::getServers()
 * первоначально может вернуть пустой массив. */
var_dump($manager->getServers());

$command = new MongoDB\Driver\Command(['ping' => 1]);
$manager->executeCommand('db', $command);

var_dump($manager->getServers());

?>

Результатом выполнения данного примера будет что-то подобное:

array(0) {
}
array(1) {
  [0]=>
  object(MongoDB\Driver\Server)#3 (10) {
    ["host"]=>
    string(9) "localhost"
    ["port"]=>
    int(27017)
    ["type"]=>
    int(1)
    ["is_primary"]=>
    bool(false)
    ["is_secondary"]=>
    bool(false)
    ["is_arbiter"]=>
    bool(false)
    ["is_hidden"]=>
    bool(false)
    ["is_passive"]=>
    bool(false)
    ["last_is_master"]=>
    array(8) {
      ["ismaster"]=>
      bool(true)
      ["maxBsonObjectSize"]=>
      int(16777216)
      ["maxMessageSizeBytes"]=>
      int(48000000)
      ["maxWriteBatchSize"]=>
      int(1000)
      ["localTime"]=>
      object(MongoDB\BSON\UTCDateTime)#4 (1) {
        ["milliseconds"]=>
        int(1447267964517)
      }
      ["maxWireVersion"]=>
      int(3)
      ["minWireVersion"]=>
      int(0)
      ["ok"]=>
      float(1)
    }
    ["round_trip_time"]=>
    int(554)
  }
}

Смотрите также

  • MongoDB\Driver\Server
  • MongoDB\Driver\Manager::selectServer() - Выбрать сервер, соответствующий предпочтениям чтения


Возвращает WriteConcern для Manager

  • « MongoDB\Driver\Manager::getServers
  • MongoDB\Driver\Manager::selectServer »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Возвращает WriteConcern для Manager

MongoDB\Driver\Manager::getWriteConcern

(mongodb >=1.0.0)

MongoDB\Driver\Manager::getWriteConcern — Возвращает WriteConcern для Manager

Описание

final public MongoDB\Driver\Manager::getWriteConcern ( void ) : MongoDB\Driver\WriteConcern

Возвращает MongoDB\Driver\WriteConcern для Manager, полученный из его URI-опций. Это гарантия записи по умолчанию для запросов и команд, выполняемых в Manager.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

MongoDB\Driver\WriteConcern для Manager.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример выполнения MongoDB\Driver\Manager::getWriteConcern()

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
var_dump($manager->getWriteConcern());

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017/?w=majority&wtimeoutMS=2000');
var_dump($manager->getWriteConcern());

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoDB\Driver\WriteConcern)#2 (0) {
}
object(MongoDB\Driver\WriteConcern)#1 (2) {
  ["w"]=>
  string(8) "majority"
  ["wtimeout"]=>
  int(2000)
}

Смотрите также

  • MongoDB\Driver\WriteConcern
  • MongoDB\Driver\Manager::__construct() - Создает новый Manager MongoDB


Выбрать сервер, соответствующий предпочтениям чтения

  • « MongoDB\Driver\Manager::getWriteConcern
  • MongoDB\Driver\Manager::startSession »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Выбрать сервер, соответствующий предпочтениям чтения

MongoDB\Driver\Manager::selectServer

(mongodb >=1.0.0)

MongoDB\Driver\Manager::selectServer — Выбрать сервер, соответствующий предпочтениям чтения

Описание

final public MongoDB\Driver\Manager::selectServer ( MongoDB\Driver\ReadPreference $readPreference ) : MongoDB\Driver\Server

Выбирает MongoDB\Driver\Server, соответствующий readPreference. Это можно использовать для предварительного выбора сервера, чтобы выполнить проверку версии перед выполнением операции.

Замечание: В отличие от MongoDB\Driver\Manager::getServers(), этот метод будет инициализировать подключение к базе данных и при необходимости выполнять обнаружение сервера. Подробнее см. » Спецификацию выбора сервера.

Список параметров

readPreference (MongoDB\Driver\ReadPreference)

Предпочтение чтения используется для выбора сервера.

Возвращаемые значения

Возвращает MongoDB\Driver\Server, соответствующий предпочтению чтения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • При невозможности найти сервер, соответствующий предпочтению чтения, выбрасывает исключение MongoDB\Driver\Exception\RuntimeException

Смотрите также

  • MongoDB\Driver\Server
  • MongoDB\Driver\Manager::getServers() - Возвращает серверы, к которым подключен менеджер
  • » Server Selection Specification


Запускает новый клиентский сеанс для использования с этим клиентом

  • « MongoDB\Driver\Manager::selectServer
  • MongoDB\Driver\Command »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Запускает новый клиентский сеанс для использования с этим клиентом

MongoDB\Driver\Manager::startSession

(mongodb >=1.4.0)

MongoDB\Driver\Manager::startSession — Запускает новый клиентский сеанс для использования с этим клиентом

Описание

final public MongoDB\Driver\Manager::startSession ([ array $options ] ) : MongoDB\Driver\Session

Создает MongoDB\Driver\Session для указанных параметров. Сеанс затем может быть указан при выполнении команд, запросов и операций записи.

Замечание: MongoDB\Driver\Session может использоваться только с MongoDB\Driver\Manager, из которого он был создан.

Список параметров

options

options
Опция Тип Описание По умолчанию
causalConsistency boolean

Настраивает причинную согласованность в сеансе. Если TRUE, каждая операция в сеансе будет причинно упорядочена после предыдущей операции чтения или записи. Установите на FALSE, чтобы отключить причинную согласованность.

Смотрите » Причинную согласованность в руководстве MongoDB для получения дополнительной информации.

TRUE
defaultTransactionOptions array

Параметры по умолчанию для применения к вновь создаваемым транзакциям. Эти параметры используются, если они не переопределяются, когда транзакция запускается с различным значением для каждого параметра.

options
Опция Тип Описание
maxCommitTimeMS integer

Максимальный период времени в миллисекундах, в течение которого может выполняться одна команда commitTransaction.

Если указано, maxCommitTimeMS должно быть 32-разрядным целым числом со знаком, большим или равным нулю.

readConcern MongoDB\Driver\ReadConcern

Гаранатия чтения для применения к операции.

Эта опция доступна в MongoDB 3.2+ и приведет к исключению во время выполнения, если указана для более старой версии сервера.

readPreference MongoDB\Driver\ReadPreference

Предпочтение чтения, используемая для выбора сервера для выполнения операции.

writeConcern MongoDB\Driver\WriteConcern

Гаранатия записи для применения к операции.

Эта опция доступна в MongoDB 4.0+.

[]

Возвращаемые значения

Возвращает MongoDB\Driver\Session.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выдает исключение MongoDB\Driver\Exception\RuntimeException если сеанс не может быть создан (например, libmongoc не поддерживает шифрование).

Список изменений

Версия | Описание
1.6.0 | Параметр "maxCommitTimeMS" добавлен в "defaultTransactionOptions".
1.5.0 | Добавлена опция "defaultTransactionOptions".

Смотрите также

  • MongoDB\Driver\Session
  • » Причинная согласованность в руководстве MongoDB


Класс The MongoDB\Driver\Command

(mongodb >=1.0.0)

Введение

Класс MongoDB\Driver\Command - это объект значения, представляющий команду базы данных.

Чтобы предоставить Помощников команд (Command Helpers) должен быть создан объект MongoDB\Driver\Command.

Обзор классов

final MongoDB\Driver\Command {
/* Методы */
final public __construct ( array|object $document [, array $commandOptions ] )
}

Примеры

Пример #1 Использование MongoDB\Driver\Command для предоставления помощника по созданию коллекций

<?php
class CreateCollection {
    protected $cmd = array();

    function __construct($collectionName) {
        $this->cmd["create"] = (string)$collectionName;
    }
    function setCappedCollection($maxBytes, $maxDocuments = false) {
        $this->cmd["capped"] = true;
        $this->cmd["size"]   = (int)$maxBytes;

        if ($maxDocuments) {
            $this->cmd["max"] = (int)$maxDocuments;
        }
    }
    function usePowerOf2Sizes($bool) {
        if ($bool) {
            $this->cmd["flags"] = 1;
        } else {
            $this->cmd["flags"] = 0;
        }
    }
    function setFlags($flags) {
        $this->cmd["flags"] = (int)$flags;
    }
    function getCommand() {
        return new MongoDB\Driver\Command($this->cmd);
    }
    function getCollectionName() {
        return $this->cmd["create"];
    }
}

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$createCollection = new CreateCollection("cappedCollection");
$createCollection->setCappedCollection(64 * 1024);

try {
    $command = $createCollection->getCommand();
    $cursor = $manager->executeCommand("databaseName", $command);
    $response = $cursor->toArray()[0];
    var_dump($response);

    $collstats = ["collstats" => $createCollection->getCollectionName()];
    $cursor = $manager->executeCommand("databaseName", new MongoDB\Driver\Command($collstats));
    $response = $cursor->toArray()[0];
    var_dump($response);
} catch(MongoDB\Driver\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}

?>

Результат выполнения данного примера:

object(MongoDB\Driver\Command)#3 (1) {
  ["command"]=>
  array(3) {
    ["create"]=>
    string(16) "cappedCollection"
    ["capped"]=>
    bool(true)
    ["size"]=>
    int(65536)
  }
}
array(1) {
  ["ok"]=>
  float(1)
}
array(16) {
  ["ns"]=>
  string(29) "databaseName.cappedCollection"
  ["count"]=>
  int(0)
  ["size"]=>
  int(0)
  ["numExtents"]=>
  int(1)
  ["storageSize"]=>
  int(65536)
  ["nindexes"]=>
  int(1)
  ["lastExtentSize"]=>
  float(65536)
  ["paddingFactor"]=>
  float(1)
  ["paddingFactorNote"]=>
  string(101) "paddingFactor is unused and unmaintained in 2.8. It remains hard coded to 1.0 for compatibility only."
  ["userFlags"]=>
  int(0)
  ["capped"]=>
  bool(true)
  ["max"]=>
  int(9223372036854775807)
  ["maxSize"]=>
  int(65536)
  ["totalIndexSize"]=>
  int(8176)
  ["indexSizes"]=>
  object(stdClass)#4 (1) {
    ["_id_"]=>
    int(8176)
  }
  ["ok"]=>
  float(1)
}

Содержание

  • MongoDB\Driver\Command::__construct — Создает новый объект Command


Создает новый объект Command

  • « MongoDB\Driver\Command
  • MongoDB\Driver\Query »
  • PHP Manual
  • MongoDB\Driver\Command
  • Создает новый объект Command

MongoDB\Driver\Command::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Command::__construct — Создает новый объект Command

Описание

final public MongoDB\Driver\Command::__construct ( array|object $document [, array $commandOptions ] )

Создает новый объект класса MongoDB\Driver\Command, который является неизменяемым значением, представляющим команду базы данных. Эту команду впоследствии можно запустить с помощью MongoDB\Driver\Manager::executeCommand().

Полный документ команды, включающий ее имя и прочие опции,, должен быть задан в параметре document. Параметр commandOptions используется только для определения опций запуска команды и результирующий MongoDB\Driver\Cursor.

Список параметров

document

Полный документ команды, который будет передан серверу.

commandOptions

Замечание: Не используйте этот параметр для указания опций, описанных в руководстве по командам MongoDB. Этот параметр можно использовать только для опций перечисленных ниже.

commandOptions
Опция Тип Описание
maxAwaitTimeMS integer

Положительное целое число, определяющие ограничение времени в миллисекундах, на которое сервер может блокировать операцию getMore, если данные отсутствуют. Эта опция может использоваться только совместно с командами, возвращающими хвостовые (tailable) курсоры. (например » Change Streams).

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
1.4.0 | Добавлен второй аргумент commandOptions, позволяющий определить опцию "maxAwaitTimeMS".

Примеры

Пример #1 Пример использования MongoDB\Driver\Command::__construct()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$command = new MongoDB\Driver\Command(array("buildinfo" => 1));

try {
    $cursor = $manager->executeCommand("admin", $command);
    $response = $cursor->toArray()[0];
} catch(MongoDB\Driver\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}
var_dump($response);

?>

Результатом выполнения данного примера будет что-то подобное:

array(13) {
  ["version"]=>
  string(14) "2.8.0-rc2-pre-"
  ["gitVersion"]=>
  string(62) "b743d7158f7642f4da6b7eac8320374b3b88dc2e modules: subscription"
  ["OpenSSLVersion"]=>
  string(25) "OpenSSL 1.0.1f 6 Jan 2014"
  ["sysInfo"]=>
  string(104) "Linux infant 3.16.0-24-generic #32-Ubuntu SMP Tue Oct 28 13:07:32 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49"
  ["loaderFlags"]=>
  string(91) "-fPIC -pthread -Wl,-z,now -rdynamic -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,-E"
  ["compilerFlags"]=>
  string(301) "-Wnon-virtual-dtor -Woverloaded-virtual -std=c++11 -fPIC -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -pipe -Werror -O3 -Wno-unused-local-typedefs -Wno-unused-function -Wno-deprecated-declarations -Wno-unused-but-set-variable -fno-builtin-memcmp -std=c99"
  ["allocator"]=>
  string(8) "tcmalloc"
  ["versionArray"]=>
  array(4) {
    [0]=>
    int(2)
    [1]=>
    int(8)
    [2]=>
    int(0)
    [3]=>
    int(-8)
  }
  ["javascriptEngine"]=>
  string(2) "V8"
  ["bits"]=>
  int(64)
  ["debug"]=>
  bool(false)
  ["maxBsonObjectSize"]=>
  int(16777216)
  ["ok"]=>
  float(1)
}

Пример #2 Пример использования MongoDB\Driver\Command::__construct()

Команды также могут принимать опции, как часть нормальной структуры, которую вы создаете и отправляете на сервер. К примеру, с большинством команд можно передавать опцию maxTimeMS для ограничения времени их выполнения.

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$command = new MongoDB\Driver\Command(
    array(
        "distinct" => "beer",
        "key" => "beer_name",
        "maxTimeMS" => 10,
    )
);

try {
    $cursor = $manager->executeCommand("beerdb", $command);
    $response = $cursor->toArray()[0];
} catch(MongoDB\Driver\Exception\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}
var_dump($response);

?>

Результатом выполнения данного примера будет что-то подобное:

operation exceeded time limit

Смотрите также

  • MongoDB\Driver\Manager::executeCommand() - Выполняет команду базы данных
  • MongoDB\Driver\Cursor


Класс MongoDB\Driver\Query

(mongodb >=1.0.0)

Введение

Класс MongoDB\Driver\Query - это объект значения, представляющий запрос базы данных.

Обзор классов

final MongoDB\Driver\Query {
/* Методы */
final public __construct ( array|object $filter [, array $queryOptions ] )
}

Содержание

  • MongoDB\Driver\Query::__construct — Создает новый запрос


Создает новый запрос

  • « MongoDB\Driver\Query
  • MongoDB\Driver\BulkWrite »
  • PHP Manual
  • MongoDB\Driver\Query
  • Создает новый запрос

MongoDB\Driver\Query::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Query::__construct — Создает новый запрос

Описание

final public MongoDB\Driver\Query::__construct ( array|object $filter [, array $queryOptions ] )

Создает новый MongoDB\Driver\Query, который является объектом неизменяемого значения, представляющим запрос к базе данных. Затем запрос может быть выполнен с помощью MongoDB\Driver\Manager::executeQuery().

Список параметров

filter (array|object)

» Предикат запроса. Пустой предикат совпадет со всеми элементами коллекции.

Замечание: При вычислении критериев запроса, MongoDB сравнивает типы и значения в соответствии с собственными » правилами сравнения типов BSON, отличных от правил сравнения и приведения типов PHP. Когда истользуется специальный тип BSON, критерия запроса должна соответствовать классу BSON (т.е. использовать MongoDB\BSON\ObjectId для выборке по » ObjectId).

queryOptions

queryOptions
Опция | Тип | Описание
allowPartialResults boolean

Для запросов к изолированной коллекции возвращает частичные результаты из mongos, если некоторые шарды недоступны, вместо выдачи ошибки.

Возврат к устаревшей "partial" опции, если она не указана.

awaitData | boolean | Используйте совместно с опцией "tailable", чтобы временно заблокировать операцию getMore для курсора, если в конце данных, а не возвращать никаких данных. После истечения времени ожидания запрос возвращается, как обычно.
batchSize integer

Количество документов для возврата в первом пакете. По умолчанию - 101. Размер пакета 0 означает, что курсор будет установлен, но никакие документы не будут возвращены в первом пакете.

В версиях MongoDB до 3.2, где запросы используют устаревший проводной протокол OP_QUERY, размер пакета, равный 1, будет закрывать курсор независимо от количества совпадающих документов.

collation array|object

» Сопоставление позволяет пользователям указывать специфичные для конкретного языка правила для сравнения строк, такие как реакцию на регистр букв и надстрочные знаки. Если задано сопоставление, то поле "locale" также обязательно. Описание полей смотрите в разделе » Сопоставление.

Если сопоставление не задано явно, но у коллекции определено сопоставление по умолчанию, то будет использовано оно. Если нет ни того ни того, то MongoDB будет использовать простое бинарное сравнение строк.

Эта опция доступна в MongoDB 3.4+ и, если будет использована для более старых версий, вызовет исключение во время исполнения.

comment string

Комментарий для прикрепления к запросу, помогающий интерпретировать и отслеживать данные профиля запроса.

Возврат к устаревшему модификатору "$comment", если он не указан.

exhaust boolean

Потоковая передача данных на полную мощность в нескольких "дополнительных" пакетах при условии, что клиент полностью прочитает все запрашиваемые данные. Быстрее, когда вы извлекаете много данных и знаете, что хотите все это перенести. Примечание: клиент не имеет права не читать все данные, если он не закрывает соединение.

Эта опция не поддерживается командой find в MongoDB 3.2+ и заставит драйвер использовать устаревшую версию проводного протокола (то есть OP_QUERY).

explain boolean

Если TRUE, возвращенный MongoDB\Driver\Cursor будет содержать один документ, который описывает процесс и индексы, используемые для возврата запроса.

Возврат к устаревшему модификатору "$explain", если он не указан.

Эта опция не поддерживается командой find в MongoDB 3.2+ и будет учитываться только при использовании устаревшей версии проводного протокола (т.е. OP_QUERY). Команда » explain должна использоваться на MongoDB 3.0+.

hint string|array|object

Индекс спецификации. Укажите либо имя индекса в виде строки, либо шаблон ключа индекса. Если указано, то система запросов будет рассматривать планы только с использованием хинтованного индекса.

Откат к устаревшей опции "hint", если она не указана.

limit integer

Максимальное количество документов для возврата. Если не указано, то по умолчанию используется без ограничений. Значение 0 эквивалентно установке без ограничения.

Отрицательное значение будет интерпретироваться как положительное значение с параметром "singleBatch", установленным в значение TRUE. Это поведение поддерживается для обратной совместимости, но его следует считать устаревшим.

max array|object

Эксклюзивная верхняя граница для определенного индекса.

Возврат к устаревшему модификатору "$max", если он не указан.

maxAwaitTimeMS integer

Положительное целое число, обозначающее ограничение времени в миллисекундах для сервера, чтобы заблокировать операцию getMore, если данные недоступны. Эта опция должна использоваться только в сочетании с опциями "tailable" и "awaitData".

maxScan integer
Внимание

Эта опция устарела и не должна использоваться.

Целое положительное число, обозначающее максимальное количество документов или индексных ключей для сканирования при выполнении запроса.

Возврат к устаревшему модификатору "$maxScan", если он не указан.

maxTimeMS integer

Накопленный лимит времени в миллисекундах для операций обработки на курсоре. MongoDB прерывает операцию в ближайшей следующей точке прерывания.

Возврат к устаревшему модификатору "$maxTimeMS", если он не указан.

min array|object

Включающая нижняя граница для определенного индекса.

Возврат к устаревшему модификатору "$min", если он не указан.

modifiers | array | » Метаоператоры, изменяющие вывод или поведение запроса. Использование этих операторов не рекомендуется в пользу именованных опций.
noCursorTimeout | boolean | Запрещает серверу синхронизировать незанятые курсоры после периода бездействия (10 минут).
oplogReplay boolean

Внутреннее использование для наборов реплик. Чтобы использовать oplogReplay, вы должны включить в фильтр следующее условие:

[ 'ts' => [ '$gte' => <timestamp> ] ]
projection array|object

» Спецификация проекции для определения полей, которые необходимо включить в возвращаемые документы.

Если вы используете функцию ODM для десериализации документов в качестве их исходного класса PHP, убедитесь, что вы включили поле __pclass в проекцию. Это необходимо для работы десериализации, и без нее драйвер вернет (по умолчанию) объект stdClass.

readConcern MongoDB\Driver\ReadConcern

Гарантии чтения, чтобы применить к операции. По умолчанию будут использоваться гарантии чтения из URI подключения MongoDB.

Эта опция доступна в MongoDB 3.2+ и приведет к исключению во время выполнения, если указано для более старой версии сервера.

returnKey boolean

Если TRUE, возвращает только индексные ключи в результирующих документах. Значением по умолчанию является FALSE. Если TRUE и команда find не используют индекс, возвращенные документы будут пустыми.

Возврат к устаревшему модификатору "$returnKey", если он не указан.

showRecordId boolean

Определяет, возвращать ли идентификатор записи для каждого документа. Если TRUE, добавляет поле "$recordId" верхнего уровня к возвращенным документам.

Возврат к устаревшему модификатору "$showDiskLoc", если он не указан.

singleBatch | boolean | Определяет, закрывать ли курсор после первого пакета. По умолчанию FALSE.
skip | integer | Количество документов для пропуска. По умолчанию 0.
slaveOk | boolean | Разрешить запрос вторичных наборов реплик
snapshot boolean
Внимание

Эта опция устарела и не должна использоваться.

Запрещает курсору возвращать документ более одного раза из-за промежуточной операции записи.

Возврат к устаревшему модификатору "$snapshot", если он не указан.

sort array|object

Спецификация сортировки для упорядочения результатов.

Возврат к устаревшему модификатору "$orderby", если он не указан.

tailable | boolean | Возвращает настраиваемый курсор для ограниченной коллекции.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
1.5.0

Параметры "maxScan" и "snapshot" устарели.

1.3.0

Добавлен параметр "maxAwaitTimeMS".

1.2.0

Добавлен параметр "allowPartialResults", "collation", "comment", "hint", "max", "maxScan", "maxTimeMS", "min", "returnKey", "showRecordId", и "snapshot".

Переименован параметр "partial" в "allowPartialResults". Для обратной совместимости, "partial" все равно будет прочитан, если "allowPartialResults" не указан.

Удален параметр "slaveOk", который устарел. Для запросов, использующих устаревший проводной протокол OP_QUERY, драйвер устанавливает бит slaveOk по мере необходимости в соответствии с » Спецификацией выбора сервера.

1.1.0 | Добавлен параметр "readConcern".

Примеры

Пример #1 Пример использования MongoDB\Driver\Query::__construct()

<?php
/* Выберите только документы, автором которых является "bjori" с не менее 100 просмотров */
$filter = [
    'author' => 'bjori',
    'views' => [
        '$gte' => 100,
    ],
];

$options = [
    /* Вернуть только следующие поля в соответствующих документах */
    'projection' => [
        'title' => 1,
        'article' => 1,
    ],
    /* Вернуть документы в порядке убывания просмотров */
    'sort' => [
        'views' => -1
    ],
];

$query = new MongoDB\Driver\Query($filter, $options);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$readPreference = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$cursor = $manager->executeQuery('databaseName.collectionName', $query, $readPreference);

foreach($cursor as $document) {
    var_dump($document);
}

?>

Смотрите также

  • MongoDB\Driver\Manager::executeQuery() - Выполняет запрос к базе данных
  • MongoDB\Driver\Cursor


Класс MongoDB\Driver\BulkWrite

(mongodb >=1.0.0)

Введение

Класс MongoDB\Driver\BulkWrite собирает одну или несколько операций записи, которые должны быть отправлены на сервер. После добавления любого количества операций вставки, обновления или удаления, коллекция может быть выполнена с помощью MongoDB\Driver\Manager::executeBulkWrite().

Операции записи могут быть отсортированы (по умолчанию) или не отсортированы. Отсортированные операции записи отправляются на сервер в указанном порядке для последовательного выполнения. В случае возникновения ошибки записи, любые оставшиеся операции будут прерваны. Неотсортированные операции отправляются на сервер в произвольном порядке, где они могут выполняться параллельно. Сообщения об ошибках, которые возникают, будут отправлены после выполнения всех операций.

Обзор классов

final MongoDB\Driver\BulkWrite implements Countable {
/* Методы */
public __construct ([ array $options ] )
public count ( void ) : int
public delete ( array|object $filter [, array $deleteOptions ] ) : void
public insert ( array|object $document ) : mixed
public update ( array|object $filter , array|object $newObj [, array $updateOptions ] ) : void
}

Примеры

Пример #1 Смешанные операции группируются по типу

Смешанные операции записи (т.е. добавления, обновления или удаления) будут собраны в типизированные команды записи, которые в последовательном порядке будут отправлены на сервер.

<?php

$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);
$bulk->update(['x' => 2], ['$set' => ['x' => 1]]);
$bulk->insert(['_id' => 3, 'x' => 3]);
$bulk->delete(['x' => 1]);

?>

В результате будут выполнены четыре команды записи (т.е. обращений). Поскольку операции отсортированы, третья вставка не может быть отправлена до тех пор, пока не будет выполнено предыдущее обновление.

Пример #2 Отсортированные операции записи, вызывающие ошибку

<?php

$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);
$bulk->delete([]);
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 3, 'hello' => 'world']);
$bulk->update(['_id' => 3], ['$set' => ['hello' => 'earth']]);
$bulk->insert(['_id' => 4, 'hello' => 'pluto']);
$bulk->update(['_id' => 4], ['$set' => ['hello' => 'moon']]);
$bulk->insert(['_id' => 3]);
$bulk->insert(['_id' => 4]);
$bulk->insert(['_id' => 5]);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);

try {
    $result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
    $result = $e->getWriteResult();

    // Убедиться, что гарантия записи не может быть выполнена
    if ($writeConcernError = $result->getWriteConcernError()) {
        printf("%s (%d): %s\n",
            $writeConcernError->getMessage(),
            $writeConcernError->getCode(),
            var_export($writeConcernError->getInfo(), true)
        );
    }

    // Проверить, не выполнялись ли какие-либо операции записи
    foreach ($result->getWriteErrors() as $writeError) {
        printf("Operation#%d: %s (%d)\n",
            $writeError->getIndex(),
            $writeError->getMessage(),
            $writeError->getCode()
        );
    }
} catch (MongoDB\Driver\Exception\Exception $e) {
    printf("Другая ошибка: %s\n", $e->getMessage());
    exit;
}

printf("Добавлено %d документ(ов)\n", $result->getInsertedCount());
printf("Обновлено %d документ(ов)\n", $result->getModifiedCount());

?>

Результат выполнения данного примера:

Operation#7: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 3 } (11000)
Добавлено 4 документ(ов)
Обновлено 2 документ(ов)

Если гарантия записи не может быть выполнена, результат вышеприведеного примера будет что-то вроде этого:

waiting for replication timed out (64): array (
  'wtimeout' => true,
)
Operation#7: E11000 duplicate key error index: databaseName.collectionName.$_id_ dup key: { : 3 } (11000)
Inserted 4 document(s)
Updated  2 document(s)

Если мы выполним пример выше, но разрешим неотсортированные записи:

<?php

$bulk = new MongoDB\Driver\BulkWrite(['ordered' => false]);
/* ... */

?>

Результат выполнения данного примера:

Operation#7: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 3 } (11000)
Operation#8: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 4 } (11000)
Inserted 5 document(s)
Updated  2 document(s)

Смотрите также

  • MongoDB\Driver\Manager::executeBulkWrite()
  • MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteConcern
  • MongoDB\Driver\WriteConcernError
  • MongoDB\Driver\WriteError

Содержание

  • MongoDB\Driver\BulkWrite::__construct — Создает новый объект BulkWrite
  • MongoDB\Driver\BulkWrite::count — Подсчитывает количество операций записи в порции
  • MongoDB\Driver\BulkWrite::delete — Добавление операции удаления в порцию
  • MongoDB\Driver\BulkWrite::insert — Добавить операцию вставки в порцию
  • MongoDB\Driver\BulkWrite::update — Добавить операцию обновления в порцию


Создает новый объект BulkWrite

  • « MongoDB\Driver\BulkWrite
  • MongoDB\Driver\BulkWrite::count »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Создает новый объект BulkWrite

MongoDB\Driver\BulkWrite::__construct

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::__construct — Создает новый объект BulkWrite

Описание

public MongoDB\Driver\BulkWrite::__construct ([ array $options ] )

Создает новый MongoDB\Driver\BulkWrite, который является изменяемым объектом, к которому могут быть добавлены одна и несколько операций записи. Операции записи могут быть выполнены с помощью MongoDB\Driver\Manager::executeBulkWrite().

Список параметров

options (array)

options
Опция | Тип | Описание | Значение по умолчанию
bypassDocumentValidation boolean

Если TRUE, позволяет выполнять операции вставки или обновления, чтобы обойти проверку уровня документа.

Этот параметр доступен в MongoDB 3.2+ и игнорируется в более старых версиях сервера, которые не поддерживают проверку уровня сервера.

FALSE
ordered | boolean | Отсортированные операции (TRUE) выполняется последовательно на сервере MongoDB, тогда как неотсортированные операции (FALSE) отправляются на сервере в произвольном порядке и могут выполняться параллельно. | TRUE

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
1.1.0 | Добавлена опция "bypassDocumentValidation".

Примеры

Пример #1 Пример выполнения MongoDB\Driver\BulkWrite::__construct()

<?php

$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);
$bulk->delete([]);
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);
$bulk->update(
    ['x' => 2],
    ['$set' => ['x' => 1]],
    ['limit' => 1, 'upsert' => false]
);
$bulk->delete(['x' => 1], ['limit' => 1]);
$bulk->update(
    ['_id' => 3],
    ['$set' => ['x' => 3]],
    ['limit' => 1, 'upsert' => true]
);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(1);

try {
    $result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
    $result = $e->getWriteResult();

    // Проверяем обеспечение гарантии записи
    if ($writeConcernError = $result->getWriteConcernError()) {
        printf("%s (%d): %s\n",
            $writeConcernError->getMessage(),
            $writeConcernError->getCode(),
            var_export($writeConcernError->getInfo(), true)
        );
    }

    // Проверяем, если какие-либо операции записи не были выполнены
    foreach ($result->getWriteErrors() as $writeError) {
        printf("Operation#%d: %s (%d)\n",
            $writeError->getIndex(),
            $writeError->getMessage(),
            $writeError->getCode()
        );
    }
} catch (MongoDB\Driver\Exception\Exception $e) {
    printf("Другая ошибка: %s\n", $e->getMessage());
    exit;
}

printf("Inserted %d document(s)\n", $result->getInsertedCount());
printf("Updated  %d document(s)\n", $result->getModifiedCount());
printf("Upserted %d document(s)\n", $result->getUpsertedCount());
printf("Deleted  %d document(s)\n", $result->getDeletedCount());

?>

Результат выполнения данного примера:

Inserted 2 document(s)
Updated  1 document(s)
Upserted 1 document(s)
Deleted  1 document(s)

Смотрите также

  • MongoDB\Driver\Manager::executeBulkWrite() - Выполняет одну или несколько операций записи
  • MongoDB\Driver\WriteResult


Подсчитывает количество операций записи в порции

  • « MongoDB\Driver\BulkWrite::__construct
  • MongoDB\Driver\BulkWrite::delete »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Подсчитывает количество операций записи в порции

MongoDB\Driver\BulkWrite::count

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::count — Подсчитывает количество операций записи в порции

Описание

public MongoDB\Driver\BulkWrite::count ( void ) : int

Возвращает количество операций записи, добавленных в объект MongoDB\Driver\BulkWrite.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество операций записи, добавленных в объект MongoDB\Driver\BulkWrite.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
1.2.0 | Возвращает количество операций записи, добавленных в объект MongoDB\Driver\BulkWrite. В более ранних версиях возвращалось предполагаемое количество обращений клиента к серверу, необходмых для выполнения всех операций записи.

Примеры

Пример #1 Пример выполнения MongoDB\Driver\BulkWrite::count()

<?php

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);
$bulk->update(['x' => 2], ['$set' => ['x' => 1]]);
$bulk->delete(['x' => 1]);

var_dump(count($bulk));

?>

Результат выполнения данного примера:

int(4)


Добавление операции удаления в порцию

  • « MongoDB\Driver\BulkWrite::count
  • MongoDB\Driver\BulkWrite::insert »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Добавление операции удаления в порцию

MongoDB\Driver\BulkWrite::delete

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::delete — Добавление операции удаления в порцию

Описание

public MongoDB\Driver\BulkWrite::delete ( array|object $filter [, array $deleteOptions ] ) : void

Добавляет операцию удаления в объект MongoDB\Driver\BulkWrite.

Список параметров

filter (array|object)

» Предикат запроса. Пустой предикат совпадет со всеми элементами коллекции.

Замечание: При вычислении критериев запроса, MongoDB сравнивает типы и значения в соответствии с собственными » правилами сравнения типов BSON, отличных от правил сравнения и приведения типов PHP. Когда истользуется специальный тип BSON, критерия запроса должна соответствовать классу BSON (т.е. использовать MongoDB\BSON\ObjectId для выборке по » ObjectId).

deleteOptions

deleteOptions
Опция | Тип | Описание | Значение по умолчанию
collation array|object

» Сопоставление позволяет пользователям указывать специфичные для конкретного языка правила для сравнения строк, такие как реакцию на регистр букв и надстрочные знаки. Если задано сопоставление, то поле "locale" также обязательно. Описание полей смотрите в разделе » Сопоставление.

Если сопоставление не задано явно, но у коллекции определено сопоставление по умолчанию, то будет использовано оно. Если нет ни того ни того, то MongoDB будет использовать простое бинарное сравнение строк.

Эта опция доступна в MongoDB 3.4+ и, если будет использована для более старых версий, вызовет исключение во время исполнения.

limit | boolean | Удалить все подходящие документа (FALSE) или только первый найденный документ (TRUE) | FALSE

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
1.2.0 | Добавлена опция "collation".

Примеры

Пример #1 Пример выполнения MongoDB\Driver\BulkWrite::delete()

<?php

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->delete(['x' => 1], ['limit' => 1]);
$bulk->delete(['x' => 2], ['limit' => 0]);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$result = $manager->executeBulkWrite('db.collection', $bulk);

?>

Смотрите также

  • MongoDB\Driver\Manager::executeBulkWrite() - Выполняет одну или несколько операций записи
  • MongoDB\Driver\WriteResult


Добавить операцию вставки в порцию

  • « MongoDB\Driver\BulkWrite::delete
  • MongoDB\Driver\BulkWrite::update »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Добавить операцию вставки в порцию

MongoDB\Driver\BulkWrite::insert

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::insert — Добавить операцию вставки в порцию

Описание

public MongoDB\Driver\BulkWrite::insert ( array|object $document ) : mixed

Добавляем операцию вставки в MongoDB\Driver\BulkWrite.

Список параметров

document (array|object)

Документ для вставки.

Возвращаемые значения

Возвращает _id добавленного документа. Если в document не был задан _id, будет возвращен MongoDB\BSON\ObjectId, сгенерированный для вставки.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
1.3.0 | Всегда возвращается _id для добавленного документа. Ранее метод возвращал значение только в случае если MongoDB\BSON\ObjectId был создан.

Примеры

Пример #1 MongoDB\Driver\BulkWrite::insert() example

<?php

$bulk = new MongoDB\Driver\BulkWrite;

$document1 = ['title' => 'one'];
$document2 = ['_id' => 'custom ID', 'title' => 'two'];
$document3 = ['_id' => new MongoDB\BSON\ObjectId, 'title' => 'three'];

$_id1 = $bulk->insert($document1);
$_id2 = $bulk->insert($document2);
$_id3 = $bulk->insert($document3);

var_dump($_id1, $_id2, $_id3);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$result = $manager->executeBulkWrite('db.collection', $bulk);

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoDB\BSON\ObjectId)#3 (1) {
  ["oid"]=>
  string(24) "54d51146bd21b91405401d92"
}
NULL
NULL

Смотрите также

  • MongoDB\Driver\Manager::executeBulkWrite() - Выполняет одну или несколько операций записи
  • MongoDB\Driver\WriteResult
  • MongoDB\BSON\ObjectId
  • MongoDB\BSON\Persistable


Добавить операцию обновления в порцию

  • « MongoDB\Driver\BulkWrite::insert
  • MongoDB\Driver\Session »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Добавить операцию обновления в порцию

MongoDB\Driver\BulkWrite::update

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::update — Добавить операцию обновления в порцию

Описание

public MongoDB\Driver\BulkWrite::update ( array|object $filter , array|object $newObj [, array $updateOptions ] ) : void

Добавляет операцию обновления в MongoDB\Driver\BulkWrite.

Список параметров

filter (array|object)

» Предикат запроса. Пустой предикат совпадет со всеми элементами коллекции.

Замечание: При вычислении критериев запроса, MongoDB сравнивает типы и значения в соответствии с собственными » правилами сравнения типов BSON, отличных от правил сравнения и приведения типов PHP. Когда истользуется специальный тип BSON, критерия запроса должна соответствовать классу BSON (т.е. использовать MongoDB\BSON\ObjectId для выборке по » ObjectId).

newObj (array|object)

Документ, содержащий операторы обновления (например, $set), заменяющий документ (например, только выражения field:value) или » конвейер агрегации.

updateOptions

updateOptions
Опция | Тип | Описание | Значение по умолчанию
arrayFilters array

Массив документов фильтров, который определяет, какие элементы массива будут изменены для операции обновления в поле массива. См. » Указывайте arrayFilters для операций обновления массива в руководстве MongoDB для получения дополнительной информации.

Эта опция доступна с MongoDB 3.6+ и приведет к исключению во время выполнения, если она указан для более старой версии сервера.

collation array|object

» Сопоставление позволяет пользователям указывать специфичные для конкретного языка правила для сравнения строк, такие как реакцию на регистр букв и надстрочные знаки. Если задано сопоставление, то поле "locale" также обязательно. Описание полей смотрите в разделе » Сопоставление.

Если сопоставление не задано явно, но у коллекции определено сопоставление по умолчанию, то будет использовано оно. Если нет ни того ни того, то MongoDB будет использовать простое бинарное сравнение строк.

Эта опция доступна в MongoDB 3.4+ и, если будет использована для более старых версий, вызовет исключение во время исполнения.

hint string|array|object

Индекс спецификации. Укажите либо имя индекса в виде строки, либо шаблон ключа индекса. Если указано, то система запросов будет рассматривать планы только с использованием индекса подсказок.

multi | boolean | Обновить только первый найденный документ, если FALSE или все подходящие документы при TRUE. Эта опция не может быть TRUE, когда newObj - заменяющий документ. | FALSE
upsert | boolean | Если filter не соответствует существующему документу, будет вставлен новый документ. Документ будет создан из newObj, если он заменяющий документ (т.е. отсутствуют операторы обновления); в противном случае операторы в newObj будут применяться к filter для создания нового документа. | FALSE

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
1.6.0 | Параметр newObj теперь принимает конвейер агрегации. Требуется MongoDB 4.2+, для более старой версии сервера выбросит исключение во время выполнения.
1.5.0 | Использование опции "arrayFilters" приведет к исключению во время выполнения, если он не поддерживается сервером. Раньше не выбрасывалось исключение, и этот параметр, возможно, был проигнорирован.
1.4.0 | Добавлена опция "arrayFilters".
1.2.0 | Добавлена опция "collation".

Примеры

Пример #1 Пример выполнения MongoDB\Driver\BulkWrite::update()

<?php

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->update(
    ['x' => 2],
    ['$set' => ['y' => 3]],
    ['multi' => false, 'upsert' => false]
);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$result = $manager->executeBulkWrite('db.collection', $bulk);

?>

Смотрите также

  • MongoDB\Driver\Manager::executeBulkWrite() - Выполняет одну или несколько операций записи
  • MongoDB\Driver\WriteResult


Класс MongoDB\Driver\Session

(mongodb >=1.4.0)

Введение

Класс MongoDB\Driver\Session представляет клиентский сеанс и возвращается MongoDB\Driver\Manager::startSession(). Команды, запросы и операции записи могут затем быть связаны с сеансом.

Обзор классов

final MongoDB\Driver\Session {
/* Константы */
const string TRANSACTION_NONE = none ;
const string TRANSACTION_STARTING = starting ;
const string TRANSACTION_IN_PROGRESS = in_progress ;
const string TRANSACTION_COMMITTED = committed ;
const string TRANSACTION_ABORTED = aborted ;
/* Методы */
final public abortTransaction ( void ) : void
final public advanceClusterTime ( array|object $clusterTime ) : void
final public advanceOperationTime ( MongoDB\BSON\TimestampInterface $operationTime ) : void
final public commitTransaction ( void ) : void
final private __construct ( void )
final public endSession ( void ) : void
final public getClusterTime ( void ) : object|null
final public getLogicalSessionId ( void ) : object
final public getOperationTime ( void ) : MongoDB\BSON\Timestamp|null
final public getServer ( void ) : MongoDB\Driver\Server|null
final public getTransactionOptions ( void ) : array|null
final public getTransactionState ( void ) : string
final public isInTransaction ( void ) : boolean
final public startTransaction ([ array $options ] ) : void
}

Предопределенные константы

MongoDB\Driver\Session::TRANSACTION_NONE

Нет транзакции в процессе.

MongoDB\Driver\Session::TRANSACTION_STARTING

Транзакция была начата, но на сервер не было отправлено ни одной операции.

MongoDB\Driver\Session::TRANSACTION_IN_PROGRESS

Транзакция в процессе.

MongoDB\Driver\Session::TRANSACTION_COMMITTED

Транзакция была зафиксирована.

MongoDB\Driver\Session::TRANSACTION_ABORTED

Транзакция была прервана.

Содержание

  • MongoDB\Driver\Session::abortTransaction — Прерывает транзакцию
  • MongoDB\Driver\Session::advanceClusterTime — Увеличивает время кластера для сеанса
  • MongoDB\Driver\Session::advanceOperationTime — Увеличивает время операции для сеанса
  • MongoDB\Driver\Session::commitTransaction — Фиксирует транзакцию
  • MongoDB\Driver\Session::__construct — Создает новый сеанс (не используется)
  • MongoDB\Driver\Session::endSession — Завершает сеанс
  • MongoDB\Driver\Session::getClusterTime — Возвращает время кластера для этого сеанса
  • MongoDB\Driver\Session::getLogicalSessionId — Возвращает логический идентификатор сеанса для этого сеанса
  • MongoDB\Driver\Session::getOperationTime — Возвращает время операции для этого сеанса
  • MongoDB\Driver\Session::getServer — Возвращает сервер к которому привязана текущая сессия
  • MongoDB\Driver\Session::getTransactionOptions — Returns options for the currently running transaction
  • MongoDB\Driver\Session::getTransactionState — Returns the current transaction state for this session
  • MongoDB\Driver\Session::isInTransaction — Определяет, происходит ли в данный момент многодокументная транзакция
  • MongoDB\Driver\Session::startTransaction — Запускает транзакцию


Прерывает транзакцию

  • « MongoDB\Driver\Session
  • MongoDB\Driver\Session::advanceClusterTime »
  • PHP Manual
  • MongoDB\Driver\Session
  • Прерывает транзакцию

MongoDB\Driver\Session::abortTransaction

(mongodb >=1.5.0)

MongoDB\Driver\Session::abortTransaction — Прерывает транзакцию

Описание

final public MongoDB\Driver\Session::abortTransaction ( void ) : void

Завершает многодокументную транзакцию и откатывает любые изменения данных, сделанные операциями внутри транзакции. То есть транзакция заканчивается без сохранения каких-либо изменений, внесенных операциями в транзакции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выдает исключение MongoDB\Driver\Exception\RuntimeException, если транзакция не может быть прервана (например, транзакция не была начата).

Смотрите также

  • MongoDB\Driver\Manager::startSession() - Запускает новый клиентский сеанс для использования с этим клиентом
  • MongoDB\Driver\Session::commitTransaction() - Фиксирует транзакцию
  • MongoDB\Driver\Session::startTransaction() - Запускает транзакцию


Увеличивает время кластера для сеанса

  • « MongoDB\Driver\Session::abortTransaction
  • MongoDB\Driver\Session::advanceOperationTime »
  • PHP Manual
  • MongoDB\Driver\Session
  • Увеличивает время кластера для сеанса

MongoDB\Driver\Session::advanceClusterTime

(mongodb >=1.4.0)

MongoDB\Driver\Session::advanceClusterTime — Увеличивает время кластера для сеанса

Описание

final public MongoDB\Driver\Session::advanceClusterTime ( array|object $clusterTime ) : void

Увеличивает время кластера для сеанса. Если время кластера меньше или равно текущему времени кластера сеанса, функция не будет работать.

Используя этот метод в сочетании с MongoDB\Driver\Session::advanceOperationTime() для копирования кластера и времени операций из другого сеанса, вы можете убедиться, что операции в этом сеансе причинно соответствуют последней операции в другом сеансе.

Список параметров

clusterTime

Время кластера - это документ, содержащий логическую метку времени и сигнатуру сервера. Как правило, это значение будет получено путем вызова MongoDB\Driver\Session::getClusterTime() для другого объекта сеанса.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Session::advanceOperationTime() - Увеличивает время операции для сеанса
  • MongoDB\Driver\Session::getClusterTime() - Возвращает время кластера для этого сеанса


Увеличивает время операции для сеанса

  • « MongoDB\Driver\Session::advanceClusterTime
  • MongoDB\Driver\Session::commitTransaction »
  • PHP Manual
  • MongoDB\Driver\Session
  • Увеличивает время операции для сеанса

MongoDB\Driver\Session::advanceOperationTime

(mongodb >=1.4.0)

MongoDB\Driver\Session::advanceOperationTime — Увеличивает время операции для сеанса

Описание

final public MongoDB\Driver\Session::advanceOperationTime ( MongoDB\BSON\TimestampInterface $operationTime ) : void

Увеличивает время операции для сеанса. Если время операции меньше или равно текущему времени сеанса, функция не будет работать.

Используя этот метод в сочетании с MongoDB\Driver\Session::advanceClusterTime() для копирования операции и времени кластеризации из другого сеанса, вы можете гарантировать, что операции в этом сеансе причинно согласуются с последней операцией в другом сеансе.

Список параметров

operationTime

Время операции является логической отметкой времени. Как правило, это значение будет получено путем вызова MongoDB\Driver\Session::getOperationTime() для другого объекта сеанса.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Session::advanceClusterTime() - Увеличивает время кластера для сеанса
  • MongoDB\Driver\Session::getClusterTime() - Возвращает время кластера для этого сеанса


Фиксирует транзакцию

  • « MongoDB\Driver\Session::advanceOperationTime
  • MongoDB\Driver\Session::__construct »
  • PHP Manual
  • MongoDB\Driver\Session
  • Фиксирует транзакцию

MongoDB\Driver\Session::commitTransaction

(mongodb >=1.5.0)

MongoDB\Driver\Session::commitTransaction — Фиксирует транзакцию

Описание

final public MongoDB\Driver\Session::commitTransaction ( void ) : void

Сохраняет изменения, внесенные операциями в многодокументную транзакцию и завершает транзакцию. До фиксации ни одно изменение данных, сделанных из транзакции, не будет видно за пределами транзакции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выдает исключение MongoDB\Driver\Exception\CommandException, если сервер не смог зафиксировать транзакцию (например, из-за конфликтов, проблем с сетью). В случае, если исключение MongoDB\Driver\Exception\CommandException::getResultDocument() имеет элемент "errorLabels", и этот массив содержит значение "TransientTransactionError" или "UnUnknownTransactionCommitResult", можно повторить попытку всей транзакции. В более новых версиях драйвера вместо этого следует использовать MongoDB\Driver\Exception\RuntimeException::hasErrorLabel() для проверки этой ситуации.
  • Выдает исключение MongoDB\Driver\Exception\RuntimeException, если транзакция не может быть зафиксирована (например, транзакция не была запущена).

Смотрите также

  • MongoDB\Driver\Manager::startSession() - Запускает новый клиентский сеанс для использования с этим клиентом
  • MongoDB\Driver\Session::abortTransaction() - Прерывает транзакцию
  • MongoDB\Driver\Session::startTransaction() - Запускает транзакцию
  • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel() - Возвращает, связана ли метка ошибки с исключением


Создает новый сеанс (не используется)

  • « MongoDB\Driver\Session::commitTransaction
  • MongoDB\Driver\Session::endSession »
  • PHP Manual
  • MongoDB\Driver\Session
  • Создает новый сеанс (не используется)

MongoDB\Driver\Session::__construct

(mongodb >=1.4.0)

MongoDB\Driver\Session::__construct — Создает новый сеанс (не используется)

Описание

final private MongoDB\Driver\Session::__construct ( void )

MongoDB\Driver\Session объекты возвращаются MongoDB\Driver\Manager::startSession() и не могут быть созданы напрямую.

Список параметров

У этой функции нет параметров.

Смотрите также

  • MongoDB\Driver\Manager::startSession() - Запускает новый клиентский сеанс для использования с этим клиентом


Завершает сеанс

  • « MongoDB\Driver\Session::__construct
  • MongoDB\Driver\Session::getClusterTime »
  • PHP Manual
  • MongoDB\Driver\Session
  • Завершает сеанс

MongoDB\Driver\Session::endSession

(mongodb >=1.5.0)

MongoDB\Driver\Session::endSession — Завершает сеанс

Описание

final public MongoDB\Driver\Session::endSession ( void ) : void

Этот метод закрывает существующий сеанс. Если транзакция была связана с этим сеансом, транзакция будет прервана. После вызова этого метода приложения не должны вызывать другие методы в сеансе.

Замечание: Сессии также закрыты во время сбора мусора. Не должно быть необходимости вызывать этот метод при нормальных обстоятельствах.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Manager::startSession() - Запускает новый клиентский сеанс для использования с этим клиентом
  • MongoDB\Driver\Session::abortTransaction() - Прерывает транзакцию
  • MongoDB\Driver\Session::commitTransaction() - Фиксирует транзакцию
  • MongoDB\Driver\Session::startTransaction() - Запускает транзакцию


Возвращает время кластера для этого сеанса

  • « MongoDB\Driver\Session::endSession
  • MongoDB\Driver\Session::getLogicalSessionId »
  • PHP Manual
  • MongoDB\Driver\Session
  • Возвращает время кластера для этого сеанса

MongoDB\Driver\Session::getClusterTime

(mongodb >=1.4.0)

MongoDB\Driver\Session::getClusterTime — Возвращает время кластера для этого сеанса

Описание

final public MongoDB\Driver\Session::getClusterTime ( void ) : object|null

Возвращает время кластера для этого сеанса. Если сеанс не использовался для какой-либо операции и MongoDB\Driver\Session::advanceClusterTime() не был вызван, время кластера будет равно NULL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает время кластера для этого сеанса или NULL, если у сеанса нет времени кластера.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Session::advanceClusterTime() - Увеличивает время кластера для сеанса


Возвращает логический идентификатор сеанса для этого сеанса

  • « MongoDB\Driver\Session::getClusterTime
  • MongoDB\Driver\Session::getOperationTime »
  • PHP Manual
  • MongoDB\Driver\Session
  • Возвращает логический идентификатор сеанса для этого сеанса

MongoDB\Driver\Session::getLogicalSessionId

(mongodb >=1.4.0)

MongoDB\Driver\Session::getLogicalSessionId — Возвращает логический идентификатор сеанса для этого сеанса

Описание

final public MongoDB\Driver\Session::getLogicalSessionId ( void ) : object

Возвращает логический идентификатор сеанса для этого сеанса, который может использоваться для идентификации операций сеанса на сервере.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает логический идентификатор сеанса для этого сеанса.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает время операции для этого сеанса

  • « MongoDB\Driver\Session::getLogicalSessionId
  • MongoDB\Driver\Session::getServer »
  • PHP Manual
  • MongoDB\Driver\Session
  • Возвращает время операции для этого сеанса

MongoDB\Driver\Session::getOperationTime

(mongodb >=1.4.0)

MongoDB\Driver\Session::getOperationTime — Возвращает время операции для этого сеанса

Описание

final public MongoDB\Driver\Session::getOperationTime ( void ) : MongoDB\BSON\Timestamp|null

Возвращает время операции для этого сеанса. Если сеанс не использовался ни для какой операции, и MongoDB\Driver\Session::advanceOperationTime() не был вызван, время операции будет равно NULL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает время операции для этого сеанса или NULL, если у сеанса нет времени операции.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Session::advanceOperationTime() - Увеличивает время операции для сеанса


Возвращает сервер к которому привязана текущая сессия

  • « MongoDB\Driver\Session::getOperationTime
  • MongoDB\Driver\Session::getTransactionOptions »
  • PHP Manual
  • MongoDB\Driver\Session
  • Возвращает сервер к которому привязана текущая сессия

MongoDB\Driver\Session::getServer

(mongodb >=1.6.0)

MongoDB\Driver\Session::getServer — Возвращает сервер к которому привязана текущая сессия

Описание

final public MongoDB\Driver\Session::getServer ( void ) : MongoDB\Driver\Server|null

Возвращает MongoDB\Driver\Server, к которому привязана текущая сессия. Если сессия не привязана к серверу, то будет возвращен NULL.

Привязка сессии в основном используется для шардированных транзакций, так как все комманды должны ийти на один и тот же инстанс mongos. Этот метод предназначен для использования в библиотеках, построенных поверх расширения, чтобы можно было закрепить сервер, а не выбирать сервер для каждой следующей команды.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает MongoDB\Driver\Server к которому прикреплена сессия. Или NULL, если сессия не прикреплена ни к какому серверу.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Returns options for the currently running transaction

  • « MongoDB\Driver\Session::getServer
  • MongoDB\Driver\Session::getTransactionState »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns options for the currently running transaction

MongoDB\Driver\Session::getTransactionOptions

(mongodb >=1.7.0)

MongoDB\Driver\Session::getTransactionOptions — Returns options for the currently running transaction

Описание

final public MongoDB\Driver\Session::getTransactionOptions ( void ) : array|null

Returns options for the currently running transaction.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a array containing current transaction options, or NULL if no transaction is running.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Session::getTransactionState() - Returns the current transaction state for this session


Returns the current transaction state for this session

  • « MongoDB\Driver\Session::getTransactionOptions
  • MongoDB\Driver\Session::isInTransaction »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns the current transaction state for this session

MongoDB\Driver\Session::getTransactionState

(mongodb >=1.7.0)

MongoDB\Driver\Session::getTransactionState — Returns the current transaction state for this session

Описание

final public MongoDB\Driver\Session::getTransactionState ( void ) : string

Returns the transaction state for this session.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current transaction state for this session.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Session::isInTransaction() - Определяет, происходит ли в данный момент многодокументная транзакция
  • MongoDB\Driver\Session::getTransactionOptions() - Returns options for the currently running transaction


Определяет, происходит ли в данный момент многодокументная транзакция

  • « MongoDB\Driver\Session::getTransactionState
  • MongoDB\Driver\Session::startTransaction »
  • PHP Manual
  • MongoDB\Driver\Session
  • Определяет, происходит ли в данный момент многодокументная транзакция

MongoDB\Driver\Session::isInTransaction

(mongodb >=1.6.0)

MongoDB\Driver\Session::isInTransaction — Определяет, происходит ли в данный момент многодокументная транзакция

Описание

final public MongoDB\Driver\Session::isInTransaction ( void ) : boolean

Определяет, происходит ли в данный момент в текущей сессии многодокументная транзакция. Считается, что транзакция "происходит прямо сейчас", если она была запущена, но пока не была ни подтверждена ни отменена.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE или FALSE.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Session::getTransactionState() - Returns the current transaction state for this session


Запускает транзакцию

  • « MongoDB\Driver\Session::isInTransaction
  • MongoDB\Driver\ClientEncryption »
  • PHP Manual
  • MongoDB\Driver\Session
  • Запускает транзакцию

MongoDB\Driver\Session::startTransaction

(mongodb >=1.5.0)

MongoDB\Driver\Session::startTransaction — Запускает транзакцию

Описание

final public MongoDB\Driver\Session::startTransaction ([ array $options ] ) : void

Запускает многодокументную транзакцию, связанную с сеансом. В любой момент времени вы можете иметь не более одной открытой транзакции для сеанса. После запуска транзакции объект сеанса должен быть передан каждой операции с помощью опции "session" (например, MongoDB\Driver\Manager::executeBulkWrite()), чтобы связать эту операцию с транзакцией.

Транзакции могут быть зафиксированы через MongoDB\Driver\Session::commitTransaction() и прерваны с помощью MongoDB\Driver\Session::abortTransaction(). Транзакции также автоматически прерываются, когда сеанс закрывается из сборки мусора или явно вызывается MongoDB\Driver\Session::endSession().

Список параметров

options

Параметры могут быть переданы в качестве аргумента этому методу. Каждый элемент в этом массиве опций переопределяет соответствующую опцию из опции "defaultTransactionOptions", если она установлена при запуске сеанса с MongoDB\Driver\Manager::startSession().

options
Опция Тип Описание
maxCommitTimeMS integer

Максимальный период времени в миллисекундах, в течение которого может выполняться одна команда commitTransaction.

Если указано, maxCommitTimeMS должно быть 32-разрядным целым числом со знаком, большим или равным нулю.

readConcern MongoDB\Driver\ReadConcern

Гаранатия чтения для применения к операции.

Эта опция доступна в MongoDB 3.2+ и приведет к исключению во время выполнения, если указана для более старой версии сервера.

readPreference MongoDB\Driver\ReadPreference

Предпочтение чтения, используемая для выбора сервера для выполнения операции.

writeConcern MongoDB\Driver\WriteConcern

Гаранатия записи для применения к операции.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выдает исключение MongoDB\Driver\Exception\CommandException, если транзакция не может быть запущена из-за проблемы на стороне сервера (например, не удалось получить блокировку).
  • Выдает исключение MongoDB\Driver\Exception\RuntimeException, если транзакция не может быть запущена (например, транзакция уже была запущена).

Список изменений

Версия | Описание
1.6.0 | Добавлен параметр "maxCommitTimeMS".

Смотрите также

  • MongoDB\Driver\Manager::startSession() - Запускает новый клиентский сеанс для использования с этим клиентом
  • MongoDB\Driver\Session::commitTransaction() - Фиксирует транзакцию
  • MongoDB\Driver\Session::abortTransaction() - Прерывает транзакцию


Класс MongoDB\Driver\ClientEncryption

(mongodb >=1.7.0)

Введение

Класс MongoDB\Driver\ClientEncryption обрабатывает как создание ключей шифронания на стороне клиента, так и ручное шифрование/дешифрование.

Обзор классов

final MongoDB\Driver\ClientEncryption {
/* Constants */
const string AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC = AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic ;
const string AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM = AEAD_AES_256_CBC_HMAC_SHA_512-Random ;
/* Методы */
final public createDataKey ( string $kmsProvider [, array $options ] ) : MongoDB\BSON\Binary
final public decrypt ( MongoDB\BSON\Binary $value ) : mixed
final public encrypt ( mixed $value [, array $options ] ) : MongoDB\BSON\Binary
}

Предопределенные константы

MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC

Использовать шифрования на случайном ключе

MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM

Использовать детерминированное (запрашиваемое) шифрование

Смотрите также

  • MongoDB\Driver\Manager::createClientEncryption()

Содержание

  • MongoDB\Driver\ClientEncryption::createDataKey — Создает ключ шифрования
  • MongoDB\Driver\ClientEncryption::decrypt — Расшифровать данных
  • MongoDB\Driver\ClientEncryption::encrypt — Зашифровать данные


Создает ключ шифрования

  • « MongoDB\Driver\ClientEncryption
  • MongoDB\Driver\ClientEncryption::decrypt »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Создает ключ шифрования

MongoDB\Driver\ClientEncryption::createDataKey

(mongodb >=1.7.0)

MongoDB\Driver\ClientEncryption::createDataKey — Создает ключ шифрования

Описание

final public MongoDB\Driver\ClientEncryption::createDataKey ( string $kmsProvider [, array $options ] ) : MongoDB\BSON\Binary

Создает новый документ с ключем шифрования и кладет его в коллекцию хранилища ключей.

Список параметров

kmsProvider

Провайдер KMS ("local" или "aws"), который будет использоваться для шифрования нового ключа.

options

Опции
Опция Тип Описание
masterKey array

masterKey задает подходящий для KMS ключ, который будет использоваться для шифрования нового ключа. Если kmsProvider задан как aws, то параметр обязателен и должен содержать следующие поля:

Опции masterKey для AWS
Опция | Тип | Описание
region | string | Обязателен
key | string | Обязателен. Amazon Resource Name (ARN) для мастер ключа пользователя (CMK) AWS
endpoint | string | Необязательный. Альтернативный идентификатор хоста, куда будет отправляться запрос KMS. Может содержать номер порта

keyAltNames array

Опциональный список альтернативных имен использующихся для ссылки на ключ. Если ключ создан с использованием альтернативных имён, то при шифровании можно ссылаться на уникальное альтернативное имя вместо _id.

Возвращаемые значения

Возвращает идентификатор нового ключа в виде объекта MongoDB\BSON\Binary с подтипом 4 (UUID).

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Бросает исключение MongoDB\Driver\Exception\EncryptionException если в процессе создания ключа произошла ошибка


Расшифровать данных

  • « MongoDB\Driver\ClientEncryption::createDataKey
  • MongoDB\Driver\ClientEncryption::encrypt »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Расшифровать данных

MongoDB\Driver\ClientEncryption::decrypt

(mongodb >=1.7.0)

MongoDB\Driver\ClientEncryption::decrypt — Расшифровать данных

Описание

final public MongoDB\Driver\ClientEncryption::decrypt ( MongoDB\BSON\Binary $value ) : mixed

Расшифровывает значение.

Список параметров

value

Объект класса MongoDB\BSON\Binary с подтипом 6, содержащий зашифрованные данные.

Возвращаемые значения

Возвращает расшифрованные занные в том виде, как они былы переданы в MongoDB\Driver\ClientEncryption::encrypt().

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Бросает исключение MongoDB\Driver\Exception\EncryptionException если в процессе дешифровки произошла ошибка

Смотрите также

  • MongoDB\Driver\ClientEncryption::encrypt() - Зашифровать данные


Зашифровать данные

  • « MongoDB\Driver\ClientEncryption::decrypt
  • MongoDB\Driver\WriteConcern »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Зашифровать данные

MongoDB\Driver\ClientEncryption::encrypt

(mongodb >=1.7.0)

MongoDB\Driver\ClientEncryption::encrypt — Зашифровать данные

Описание

final public MongoDB\Driver\ClientEncryption::encrypt ( mixed $value [, array $options ] ) : MongoDB\BSON\Binary

Шифрует данные.

Список параметров

value

Значение для шифрования. Этот метод может зашифровать любые данные, которые могут быть записаны в MongoDB.

options

Опции шифрования
Опция Тип Описание
algorithm string

Алгоритм шифрования. Используйте константы заданные в MongoDB\Driver\ClientEncryption.

keyAltName string

Задаёт документ коллекции хранилища ключей по keyAltName.

keyId MongoDB\BSON\Binary

Задаёт ключ данных по _id. Значение типа UUID (бинарный подтип 4).

Замечание: Можно указывать только опцию keyId или keyAltName, но не обе сразу. Опция algorithm обязательна.

Возвращаемые значения

Возвращает зашифрованные данные в виде объекта MongoDB\BSON\Binary с подтипом 6.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Бросает исключение MongoDB\Driver\Exception\EncryptionException если при шифровании возникла ошибка

Смотрите также

  • MongoDB\Driver\ClientEncryption::decrypt() - Расшифровать данных


Класс MongoDB\Driver\WriteConcern

(mongodb >=1.0.0)

Введение

MongoDB\Driver\WriteConcern описывает уровень надежности, запрошенный MongoDB для операций записи на автономный mongod или на набор реплик или на сегментированные кластеры. В сегментированных кластерах экземпляры mongos будут передавать гарантии записи на сегменты.

Обзор классов

final MongoDB\Driver\WriteConcern implements MongoDB\BSON\Serializable , Serializable {
/* Константы */
const string MAJORITY = "majority" ;
/* Методы */
final public bsonSerialize ( void ) : object
final public __construct ( string|integer $w [, int $wtimeout [, bool $journal ]] )
final public getJournal ( void ) : boolean|null
final public getW ( void ) : string|integer|null
final public getWtimeout ( void ) : int|MongoDB\BSON\Int64
final public isDefault ( void ) : bool
final public serialize ( void ) : string
final public unserialize ( string $serialized ) : void
}

Предопределенные константы

MongoDB\Driver\WriteConcern::MAJORITY

Большинство членов в наборе; арбитров, члены, не участвующие в голосовании, пассивные члены, скрытые члены и отложенные члены, все они включены в определение большинства гарантии записи.

Список изменений

Версия | Описание
1.7.0 | Реализует Serializable.
1.2.0 | Реализует MongoDB\BSON\Serializable.

Содержание

  • MongoDB\Driver\WriteConcern::bsonSerialize — Возвращает объект сериализации BSON
  • MongoDB\Driver\WriteConcern::__construct — Создать новый WriteConcern
  • MongoDB\Driver\WriteConcern::getJournal — Возвращает опцию "journal" WriteConcern
  • MongoDB\Driver\WriteConcern::getW — Возвращает опцию "w" WriteConcern
  • MongoDB\Driver\WriteConcern::getWtimeout — Возвращает опцию "wtimeout" WriteConcern
  • MongoDB\Driver\WriteConcern::isDefault — Проверяет, является ли гарантия записи по умолчанию
  • MongoDB\Driver\WriteConcern::serialize — Serialize a WriteConcern
  • MongoDB\Driver\WriteConcern::unserialize — Unserialize a WriteConcern


Возвращает объект сериализации BSON

  • « MongoDB\Driver\WriteConcern
  • MongoDB\Driver\WriteConcern::__construct »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Возвращает объект сериализации BSON

MongoDB\Driver\WriteConcern::bsonSerialize

(mongodb >=1.2.0)

MongoDB\Driver\WriteConcern::bsonSerialize — Возвращает объект сериализации BSON

Описание

final public MongoDB\Driver\WriteConcern::bsonSerialize ( void ) : object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект сериализации WriteConcern как BSON.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteConcern::bsonSerialize() с большинством гарантии записи

<?php

$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY);
var_dump($wc->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($wc));

?>

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)#2 (1) {
  ["w"]=>
  string(8) "majority"
}

{ "w" : "majority" }

Пример #2 MongoDB\Driver\WriteConcern::bsonSerialize() с тайм-аутом и журналом

<?php

$wc = new MongoDB\Driver\WriteConcern(2, 1000, true);
var_dump($wc->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($wc));

?>

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)#2 (3) {
  ["w"]=>
  int(2)
  ["j"]=>
  bool(true)
  ["wtimeout"]=>
  int(1000)
}

{ "w" : 2, "j" : true, "wtimeout" : 1000 }

Смотрите также

  • MongoDB\BSON\Serializable::bsonSerialize() - Предоставляет массив или документ для сериализации в BSON
  • » Справочная информация по гарантии записи


Создать новый WriteConcern

  • « MongoDB\Driver\WriteConcern::bsonSerialize
  • MongoDB\Driver\WriteConcern::getJournal »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Создать новый WriteConcern

MongoDB\Driver\WriteConcern::__construct

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::__construct — Создать новый WriteConcern

Описание

final public MongoDB\Driver\WriteConcern::__construct ( string|integer $w [, int $wtimeout [, bool $journal ]] )

Создает новый MongoDB\Driver\WriteConcern, который является неизменяемым объектом значения.

Список параметров

w

Гарантия записи
Значение | Описание
1 | Требует подтверждение, что операция записи распространилась на автономный mongod или на первичный в наборе реплик. Это гарантия записи по умолчанию для MongoDB.
0 | Не требует подтверждение операции записи. Тем не менее, это может вернуть информацию о исключениях сокета и сетевых ошибках в приложение.
<integer greater than 1> | Числа, превышающие действительны только для набора реплик для запроса подтверждения от указанного количества членов, включая первичный.
MongoDB\Driver\WriteConcern::MAJORITY

Требует подтверждения того, что операции записи распространяются на большинство голосующих узлов, включая первичный, и были записаны в журнал на диск для этих узлов.

До MongoDB 3.0 это относится к большинству членов набора реплик (а не только к узлам голосования).

string | Строковое представление интерпретируется как набор тегов. Требует подтверждение, что операция записи распространяется на член набора реплик с указанным тегом.

wtimeout

Сколько ждать (в миллисекундах) ответа от вторичных узлов перед тем, как выдать ошибку.

wtimeout приводит к тому, что операции записи возвращаются с ошибкой (WriteConcernError) после указанного периода, даже если требуемая гарантия записи в конечном счете будет успешной. Когда эти гарантии записи возвращаются, MongoDB не отменяет успешные изменения данных, выполненные до того, как гарантия записи превысила временной лимит wtimeout

Если указано, wtimeout должен быть 64-битным целым числом со знаком, больше или равен нулю.

Тайм-аут гарантии записи
Значение | Описание
0 | Блокировать бесконечно. Это значение по умолчанию.
<целое число больше, чем 0> | Миллисекунды до ожидания возврата.

journal

Ожидать, пока mongod не применит запись в журнал.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неверном w или отрицательном wtimeout или если они больше, чем 32-битное целое число со знаком, выбрасывает MongoDB\Driver\Exception\InvalidArgumentException

Список изменений

Версия | Описание
1.7.0 | Параметр wTimeout теперь принимает 64-битные значения.

Примеры

Пример #1 Пример выполнения MongoDB\Driver\WriteConcern::__construct()

<?php

/* Request write acknowledgement from the majority of the replica set nodes */
$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 500);

/* Request write acknowledgement from a node configured with the "MultipleDC" tag */
$wc = new MongoDB\Driver\WriteConcern("MultipleDC", 500);

?>

Смотрите также

  • » Справочная информация по гарантии записи


Возвращает опцию "journal" WriteConcern

  • « MongoDB\Driver\WriteConcern::__construct
  • MongoDB\Driver\WriteConcern::getW »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Возвращает опцию "journal" WriteConcern

MongoDB\Driver\WriteConcern::getJournal

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::getJournal — Возвращает опцию "journal" WriteConcern

Описание

final public MongoDB\Driver\WriteConcern::getJournal ( void ) : boolean|null

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает опцию "journal" WriteConcern.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример выполнения MongoDB\Driver\WriteConcern::getJournal()

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->getJournal());

$wc = new MongoDB\Driver\WriteConcern(1, 0, true);
var_dump($wc->getJournal());

$wc = new MongoDB\Driver\WriteConcern(1, 0, false);
var_dump($wc->getJournal());

?>

Результат выполнения данного примера:

NULL
bool(true)
bool(false)

Смотрите также

  • » Write Concern reference


Возвращает опцию "w" WriteConcern

  • « MongoDB\Driver\WriteConcern::getJournal
  • MongoDB\Driver\WriteConcern::getWtimeout »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Возвращает опцию "w" WriteConcern

MongoDB\Driver\WriteConcern::getW

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::getW — Возвращает опцию "w" WriteConcern

Описание

final public MongoDB\Driver\WriteConcern::getW ( void ) : string|integer|null

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает опцию "w" WriteConcern.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример выполнения MongoDB\Driver\WriteConcern::getW()

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->getW());

$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY);
var_dump($wc->getW());

?>

Результат выполнения данного примера:

int(1)
string(8) "majority"

Смотрите также

  • » Write Concern reference


Возвращает опцию "wtimeout" WriteConcern

  • « MongoDB\Driver\WriteConcern::getW
  • MongoDB\Driver\WriteConcern::isDefault »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Возвращает опцию "wtimeout" WriteConcern

MongoDB\Driver\WriteConcern::getWtimeout

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::getWtimeout — Возвращает опцию "wtimeout" WriteConcern

Описание

final public MongoDB\Driver\WriteConcern::getWtimeout ( void ) : int|MongoDB\BSON\Int64

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает опцию "wtimeout" WriteConcern.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
1.7.0 | В 32-разрядных системах этот метод будет возвращать экземпляр MongoDB\BSON\Int64, если объект WriteConcern был создан с wTimeout, который превышает 32-разрядный диапазон. В 64-разрядных системах этот метод всегда возвращает целочисленное значение.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteConcern::getWtimeout()

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->getWtimeout());

$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 3000);
var_dump($wc->getWtimeout());

?>

Результат выполнения данного примера:

int(0)
int(3000)

Смотрите также

  • » Write Concern reference


Проверяет, является ли гарантия записи по умолчанию

  • « MongoDB\Driver\WriteConcern::getWtimeout
  • MongoDB\Driver\WriteConcern::serialize »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Проверяет, является ли гарантия записи по умолчанию

MongoDB\Driver\WriteConcern::isDefault

(mongodb >=1.3.0)

MongoDB\Driver\WriteConcern::isDefault — Проверяет, является ли гарантия записи по умолчанию

Описание

final public MongoDB\Driver\WriteConcern::isDefault ( void ) : bool

Проверяет, является ли эта гарантия записи по умолчанию (т.е. не указаны параметры). Этот метод в первую очередь предназначен для использования совместно с MongoDB\Driver\Manager::getWriteConcern() для определения того, был ли объект Manager создан без каких-либо опций гарантии записи.

Драйвер не будет включать гарантию записи по умолчанию в свои операции записи (например, MongoDB\Driver\Manager::executeBulkWrite()), чтобы позволить серверу применять свою собственную по умолчанию, которая, возможно, была » изменена. Библиотеки, которые обращаются к гарантии записи Manager, чтобы включить ее в свои собственные команды записи, должны использовать этот метод, чтобы гарантировать, что гарантии записи по умолчанию остаются неустановленными.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если эта гарантия записи по умолчанию, или FALSE в противном случае.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteConcern::isDefault() example

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->isDefault());

$manager = new MongoDB\Driver\Manager('mongodb://127.0.0.1/?w=majority');
$wc = $manager->getWriteConcern();
var_dump($wc->isDefault());

$manager = new MongoDB\Driver\Manager('mongodb://127.0.0.1/');
$wc = $manager->getWriteConcern();
var_dump($wc->isDefault());

?>

Результат выполнения данного примера:

bool(false)
bool(false)
bool(true)

Смотрите также

  • MongoDB\Driver\Manager::getWriteConcern() - Возвращает WriteConcern для Manager
  • » Изменение гарантии записи по умолчанию в руководстве MongoDB
  • » Справочная информация по гарантии записи


Serialize a WriteConcern

  • « MongoDB\Driver\WriteConcern::isDefault
  • MongoDB\Driver\WriteConcern::unserialize »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Serialize a WriteConcern

MongoDB\Driver\WriteConcern::serialize

(mongodb >=1.7.0)

MongoDB\Driver\WriteConcern::serialize — Serialize a WriteConcern

Описание

final public MongoDB\Driver\WriteConcern::serialize ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the serialized representation of the MongoDB\Driver\WriteConcern.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\WriteConcern::unserialize() - Unserialize a WriteConcern
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Serializing Objects


Unserialize a WriteConcern

  • « MongoDB\Driver\WriteConcern::serialize
  • MongoDB\Driver\ReadPreference »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Unserialize a WriteConcern

MongoDB\Driver\WriteConcern::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\WriteConcern::unserialize — Unserialize a WriteConcern

Описание

final public MongoDB\Driver\WriteConcern::unserialize ( string $serialized ) : void

Список параметров

serialized

The serialized MongoDB\Driver\WriteConcern.

Возвращаемые значения

Returns the unserialized MongoDB\Driver\WriteConcern.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Смотрите также

  • MongoDB\Driver\WriteConcern::serialize() - Serialize a WriteConcern
  • unserialize() - Создает PHP-значение из хранимого представления
  • Serializing Objects


Класс MongoDB\Driver\ReadPreference

(mongodb >=1.0.0)

Введение

Обзор классов

final MongoDB\Driver\ReadPreference implements MongoDB\BSON\Serializable , Serializable {
/* Константы */
const integer RP_PRIMARY = 1 ;
const integer RP_PRIMARY_PREFERRED = 5 ;
const integer RP_SECONDARY = 2 ;
const integer RP_SECONDARY_PREFERRED = 6 ;
const integer RP_NEAREST = 10 ;
const string PRIMARY = primary ;
const string PRIMARY_PREFERRED = primaryPreferred ;
const string SECONDARY = secondary ;
const string SECONDARY_PREFERRED = secondaryPreferred ;
const string NEAREST = nearest ;
const integer NO_MAX_STALENESS = -1 ;
const integer SMALLEST_MAX_STALENESS_SECONDS = 90 ;
/* Методы */
final public bsonSerialize ( void ) : object
final public __construct ( string|integer $mode [, array $tagSets = NULL [, array $options = array() ]] )
final public getMaxStalenessSeconds ( void ) : int
final public getMode ( void ) : int
final public getModeString ( void ) : string
final public getTagSets ( void ) : array
final public serialize ( void ) : string
final public unserialize ( string $serialized ) : void
}

Предопределенные константы

MongoDB\Driver\ReadPreference::RP_PRIMARY

Все операции считываются из текущего первичного узла набора реплик. Это предпочтение чтения по умолчанию для MongoDB.

MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED

В большинстве ситуация операции считываются из первичного узла, но если он недоступен, операции считываются из вторичных членов.

MongoDB\Driver\ReadPreference::RP_SECONDARY

Все операции считываются из вторичных членов набора реплик.

MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED

В большинстве ситуация операции считываются из вторичных узлов, но если они недоступны, операции считываются из первичного узла.

MongoDB\Driver\ReadPreference::RP_NEAREST

Операции считываются из члена набора реплик с наименьшой задержкой сети, независимо от типа члена.

MongoDB\Driver\ReadPreference::PRIMARY

Все операции чтения из текущей реплики установлены первичными. Это предпочтение чтения по умолчанию для MongoDB.

MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED

В большинстве случаев операции читаются из первичного узла, но если он недоступен, операции читаются с вторичных узлов.

MongoDB\Driver\ReadPreference::SECONDARY

Все операции читаются из вторичных узлов набора реплик.

MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED

В большинстве случаев операции читаются из вторичных узлов, но если они недоступны, операции читаются с первичного.

MongoDB\Driver\ReadPreference::NEAREST

Операции считываются из узла набора реплик с наименьшей задержкой в сети, независимо от типа.

MongoDB\Driver\ReadPreference::NO_MAX_STALENESS

Значение по умолчанию для параметра "maxStalenessSeconds" чтобы указать на ограничение на максимальное запаздывание (staleness), что означает, что драйвер не будет учитывать задержку вторичных узлов при выборе направления для операции чтения.

MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS

Минимальное значение для параметра "maxStalenessSeconds" равно 90 секундам. Драйвер оценивает запаздывание (staleness) вторичных узлов, периодически проверяя последнюю дату записи каждого члена набора реплик. Поскольку эти проверки являются нечастыми, оценка запаздывания является грубой. Таким образом, драйвер не может обеспечить максимальную величину запаздывания менее 90 секунд.

Список изменений

Версия | Описание
1.7.0 | Добавлены константы MongoDB\Driver\ReadPreference::PRIMARY, MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED, MongoDB\Driver\ReadPreference::SECONDARY, MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED, MongoDB\Driver\ReadPreference::NEAREST. Реализует Serializable.
1.2.0 | Добавлены константы MongoDB\Driver\ReadPreference::NO_MAX_STALENESS и MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS. Реализует MongoDB\BSON\Serializable.

Содержание

  • MongoDB\Driver\ReadPreference::bsonSerialize — Возвращает объект сериализации BSON
  • MongoDB\Driver\ReadPreference::__construct — Создать новый ReadPreference
  • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds — Возвращает параметр "maxStalenessSeconds" ReadPreference
  • MongoDB\Driver\ReadPreference::getMode — Возвращает параметр "mode" ReadPreference
  • MongoDB\Driver\ReadPreference::getModeString — Returns the ReadPreference's "mode" option as a string
  • MongoDB\Driver\ReadPreference::getTagSets — Возвращает параметр "tagSets" ReadPreference
  • MongoDB\Driver\ReadPreference::serialize — Serialize a ReadPreference
  • MongoDB\Driver\ReadPreference::unserialize — Unserialize a ReadPreference


Возвращает объект сериализации BSON

  • « MongoDB\Driver\ReadPreference
  • MongoDB\Driver\ReadPreference::__construct »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Возвращает объект сериализации BSON

MongoDB\Driver\ReadPreference::bsonSerialize

(mongodb >=1.2.0)

MongoDB\Driver\ReadPreference::bsonSerialize — Возвращает объект сериализации BSON

Описание

final public MongoDB\Driver\ReadPreference::bsonSerialize ( void ) : object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект сериализации ReadPreference как BSON.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\ReadPreference::bsonSerialize() с первичным предпочтениям чтения

<?php

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
var_dump($rp->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rp));

?>

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)#2 (1) {
  ["mode"]=>
  string(7) "primary"
}

{ "mode" : "primary" }

Пример #2 Пример использования MongoDB\Driver\ReadPreference::bsonSerialize() с вторичным предпочтением чтения и наборами тегов

<?php

$rp = new MongoDB\Driver\ReadPreference(
    MongoDB\Driver\ReadPreference::RP_SECONDARY,
    [
        ['dc' => 'ny'],
        ['dc' => 'sf', 'use' => 'reporting'],
        []
    ]
);
var_dump($rp->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rp));

?>

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)#2 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["tags"]=>
  array(3) {
    [0]=>
    object(stdClass)#1 (1) {
      ["dc"]=>
      string(2) "ny"
    }
    [1]=>
    object(stdClass)#5 (2) {
      ["dc"]=>
      string(2) "sf"
      ["use"]=>
      string(9) "reporting"
    }
    [2]=>
    object(stdClass)#4 (0) {
    }
  }
}

{ "mode" : "secondary", "tags" : [ { "dc" : "ny" }, { "dc" : "sf", "use" : "reporting" }, {  } ] }

Пример #3 Пример использования MongoDB\Driver\ReadPreference::bsonSerialize() с вторичным предпочтением чтения и максимальным staleness

<?php

$rp = new MongoDB\Driver\ReadPreference(
    MongoDB\Driver\ReadPreference::RP_SECONDARY,
    null,
    ['maxStalenessSeconds' => 120]
);
var_dump($rp->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rp));

?>

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)#2 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["maxStalenessSeconds"]=>
  int(120)
}

{ "mode" : "secondary", "maxStalenessSeconds" : 120 }

Смотрите также

  • MongoDB\BSON\Serializable::bsonSerialize() - Предоставляет массив или документ для сериализации в BSON
  • » Справочная информация по предпочтению чтения


Создать новый ReadPreference

  • « MongoDB\Driver\ReadPreference::bsonSerialize
  • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Создать новый ReadPreference

MongoDB\Driver\ReadPreference::__construct

(mongodb >=1.0.0)

MongoDB\Driver\ReadPreference::__construct — Создать новый ReadPreference

Описание

final public MongoDB\Driver\ReadPreference::__construct ( string|integer $mode [, array $tagSets = NULL [, array $options = array() ]] )

Создает новый MongoDB\Driver\ReadPreference, который является неизменяемым объектом значения.

Список параметров

mode

Режим предпочтения чтения
Значение Описание
MongoDB\Driver\ReadPreference::RP_PRIMARY or "primary"

Все операции считывается из текущего первичного узла набора реплик. Это предпочтение чтения по умолчанию для MongoDB.

MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED or "primaryPreferred"

В большинстве ситуаций операции считываются из первичного узла, но если он недоступен, операции считываются из вторичных узлов.

MongoDB\Driver\ReadPreference::RP_SECONDARY или "secondary"

Все операции считываются из вторичных узлов набора реплик.

MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED или "secondaryPreferred"

В большинстве ситуаций операции считываются из вторичных членов, но если вторичные члены недоступны, операции считываются из первичного узла.

MongoDB\Driver\ReadPreference::RP_NEAREST or "nearest"

Операции считываются из члена набора репилк с наименьшей задержкой сети, независимо от типа члена.

tagSets

Наборы тегов позволяют настраивать операции чтения для определенных членов набора реплик. Этот параметр должен быть массивом ассоциативных массивов, каждый из которых содержит ноль или несколько пар ключ-значение. При выборе сервера для операции чтения драйвер пытается выбрать узел, имеющий все теги в наборе (т.е. ассоциативный массив пар ключ-значение). Если выбор не удался, the driver will attempt subsequent sets. Пустой набор тегов (array()) будет соответствовать любому узлу и может использоваться как резервный.

Теги не совместимы с режимом MongoDB\Driver\ReadPreference::RP_PRIMARY, и, как правило, применяется только при выборе вторичного члена набора для операции чтения. Однако режим MongoDB\Driver\ReadPreference::RP_NEAREST в сочетании с набором тегов, выбирает соответствующий член с наименьшей задержкой сети. Этот член может быть первичным или вторичным.

options

options
Опция Тип Описание
maxStalenessSeconds integer

Определяет максимальное отставание репликации или "staleness", для чтения из вторичных узлов. Когда оцениваемая staleness вторичных узлов превышает это значение, драйвер прекращает использовать ее для операций чтения.

Если указано, максимальный staleness должен быть 32-битным числом без знака, большим или равным MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS.

По умолчанию используется MongoDB\Driver\ReadPreference::NO_MAX_STALENESS, что означает, что драйвер не будет учитывать отставания вторичных узлов при выборе направления для операции чтения.

Этот параметр несовместим с режимом MongoDB\Driver\ReadPreference::RP_PRIMARY. Указание максимальной staleness также требует, чтобы все экземпляры MongoDB в развертывании использовали MongoDB 3.4+. Исключение будет выброшено во время выполнения, если экземпляры MongoDB в развертывании имеют более старую версию.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При некорректном mode бросает MongoDB\Driver\Exception\InvalidArgumentException
  • Если tagSets предоставляется как первичное предпочтение чтения или имеет неправильный формат (т.е. не массив из нуля или более документов) бросает MongoDB\Driver\Exception\InvalidArgumentException.
  • Если опция "maxStalenessSeconds" предоставляется для первичного предпочтения чтения или находится вне диапазона, бросает MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
1.3.0 | Аргумент mode теперь принимает строковое значение, которое соответствует URI-опции "readPreference" для MongoDB\Driver\Manager::__construct().
1.2.0 | Добавлен третий аргумент options, который поддерживает параметр "maxStalenessSeconds".

Примеры

Пример #1 Пример выполнения MongoDB\Driver\ReadPreference::__construct()

<?php

/* Prefer a secondary node but fall back to a primary. */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED));

/* Prefer a node in the New York data center with lowest latency. */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_NEAREST, [['dc' => 'ny']]));

/* Require a secondary node whose replication lag is within two minutes of the primary */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, ['maxStalenessSeconds' => 120]));

?>

Результат выполнения данного примера:

object(MongoDB\Driver\ReadPreference)#1 (1) {
  ["mode"]=>
  string(18) "secondaryPreferred"
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(7) "nearest"
  ["tags"]=>
  array(1) {
    [0]=>
    object(stdClass)#2 (1) {
      ["dc"]=>
      string(2) "ny"
    }
  }
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["maxStalenessSeconds"]=>
  int(120)
}

Смотрите также

  • » Read Preference reference


Возвращает параметр "maxStalenessSeconds" ReadPreference

  • « MongoDB\Driver\ReadPreference::__construct
  • MongoDB\Driver\ReadPreference::getMode »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Возвращает параметр "maxStalenessSeconds" ReadPreference

MongoDB\Driver\ReadPreference::getMaxStalenessSeconds

(mongodb >=1.2.0)

MongoDB\Driver\ReadPreference::getMaxStalenessSeconds — Возвращает параметр "maxStalenessSeconds" ReadPreference

Описание

final public MongoDB\Driver\ReadPreference::getMaxStalenessSeconds ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает параметр "maxStalenessSeconds" ReadPreference. Если не указана максимальная staleness, возвращается MongoDB\Driver\ReadPreference::NO_MAX_STALENESS.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример выполнения MongoDB\Driver\ReadPreference::getMaxStalenessSeconds()

<?php

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY);
var_dump($rp->getMaxStalenessSeconds());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, [
    'maxStalenessSeconds' => MongoDB\Driver\ReadPreference::NO_MAX_STALENESS,
]);
var_dump($rp->getMaxStalenessSeconds());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, [
    'maxStalenessSeconds' => MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS,
]);
var_dump($rp->getMaxStalenessSeconds());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, [
    'maxStalenessSeconds' => 1000,
]);
var_dump($rp->getMaxStalenessSeconds());

?>

Результат выполнения данного примера:

int(-1)
int(-1)
int(90)
int(1000)

Смотрите также

  • » Read Preference reference


Возвращает параметр "mode" ReadPreference

  • « MongoDB\Driver\ReadPreference::getMaxStalenessSeconds
  • MongoDB\Driver\ReadPreference::getModeString »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Возвращает параметр "mode" ReadPreference

MongoDB\Driver\ReadPreference::getMode

(mongodb >=1.0.0)

MongoDB\Driver\ReadPreference::getMode — Возвращает параметр "mode" ReadPreference

Описание

final public MongoDB\Driver\ReadPreference::getMode ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает параметр "mode" ReadPreference

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример выполнения MongoDB\Driver\ReadPreference::getMode()

<?php

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
var_dump($rp->getMode());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED);
var_dump($rp->getMode());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY);
var_dump($rp->getMode());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED);
var_dump($rp->getMode());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_NEAREST);
var_dump($rp->getMode());

?>

Результат выполнения данного примера:

int(1)
int(5)
int(2)
int(6)
int(10)

Смотрите также

  • MongoDB\Driver\ReadPreference::getModeString() - Returns the ReadPreference's "mode" option as a string
  • » Read Preference reference


Returns the ReadPreference's "mode" option as a string

  • « MongoDB\Driver\ReadPreference::getMode
  • MongoDB\Driver\ReadPreference::getTagSets »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "mode" option as a string

MongoDB\Driver\ReadPreference::getModeString

(mongodb >=1.7.0)

MongoDB\Driver\ReadPreference::getModeString — Returns the ReadPreference's "mode" option as a string

Описание

final public MongoDB\Driver\ReadPreference::getModeString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the ReadPreference's "mode" option as a string.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\ReadPreference::getModeString() example

<?php

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::PRIMARY);
var_dump($rp->getModeString());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED);
var_dump($rp->getModeString());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::SECONDARY);
var_dump($rp->getModeString());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED);
var_dump($rp->getModeString());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::NEAREST);
var_dump($rp->getModeString());

?>

Результат выполнения данного примера:

string(7) "primary"
string(16) "primaryPreferred"
string(9) "secondary"
string(18) "secondaryPreferred"
string(7) "nearest"

Смотрите также

  • MongoDB\Driver\ReadPreference::getMode() - Возвращает параметр "mode" ReadPreference
  • » Read Preference reference


Возвращает параметр "tagSets" ReadPreference

  • « MongoDB\Driver\ReadPreference::getModeString
  • MongoDB\Driver\ReadPreference::serialize »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Возвращает параметр "tagSets" ReadPreference

MongoDB\Driver\ReadPreference::getTagSets

(mongodb >=1.0.0)

MongoDB\Driver\ReadPreference::getTagSets — Возвращает параметр "tagSets" ReadPreference

Описание

final public MongoDB\Driver\ReadPreference::getTagSets ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает параметр "tagSets" ReadPreference.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример выполнения MongoDB\Driver\ReadPreference::getTagSets()

<?php

$mode = MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED;

/* Как и null, так и пустой массив, обозначают, что не будут установлены теги для предпочтения. */
$rp = new MongoDB\Driver\ReadPreference($mode, null);
var_dump($rp->getTagSets());

$rp = new MongoDB\Driver\ReadPreference($mode, []);
var_dump($rp->getTagSets());

/* Выбрать узел в Нью-Йорке, но вернуться к любому доступному резервному узлу. */
$rp = new MongoDB\Driver\ReadPreference($mode, [['dc' => 'ny']]);
var_dump($rp->getTagSets());

/* Выбрать узел в Нью-Йорке, за которым следует узел в Сан-Франциско,
   который помечен для использования для отчетов, и, наконец, вернуться к любому доступному резервному узлу. */
$rp = new MongoDB\Driver\ReadPreference($mode, [
  ['dc' => 'ny'],
  ['dc' => 'sf', 'use' => 'reporting'],
  [],
]);
var_dump($rp->getTagSets());

?>

Результат выполнения данного примера:

array(0) {
}
array(0) {
}
array(2) {
  [0]=>
  array(1) {
    ["dc"]=>
    string(2) "ny"
  }
  [1]=>
  array(0) {
  }
}
array(3) {
  [0]=>
  array(1) {
    ["dc"]=>
    string(2) "ny"
  }
  [1]=>
  array(2) {
    ["dc"]=>
    string(2) "sf"
    ["use"]=>
    string(9) "reporting"
  }
  [2]=>
  array(0) {
  }
}

Смотрите также

  • » Справочная информация по предпочтению чтения


Serialize a ReadPreference

  • « MongoDB\Driver\ReadPreference::getTagSets
  • MongoDB\Driver\ReadPreference::unserialize »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Serialize a ReadPreference

MongoDB\Driver\ReadPreference::serialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadPreference::serialize — Serialize a ReadPreference

Описание

final public MongoDB\Driver\ReadPreference::serialize ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the serialized representation of the MongoDB\Driver\ReadPreference.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\ReadPreference::unserialize() - Unserialize a ReadPreference
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Serializing Objects


Unserialize a ReadPreference

  • « MongoDB\Driver\ReadPreference::serialize
  • MongoDB\Driver\ReadConcern »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Unserialize a ReadPreference

MongoDB\Driver\ReadPreference::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadPreference::unserialize — Unserialize a ReadPreference

Описание

final public MongoDB\Driver\ReadPreference::unserialize ( string $serialized ) : void

Список параметров

serialized

The serialized MongoDB\Driver\ReadPreference.

Возвращаемые значения

Returns the unserialized MongoDB\Driver\ReadPreference.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Смотрите также

  • MongoDB\Driver\ReadPreference::serialize() - Serialize a ReadPreference
  • unserialize() - Создает PHP-значение из хранимого представления
  • Serializing Objects


Класс MongoDB\Driver\ReadConcern

(mongodb >=1.1.0)

Введение

MongoDB\Driver\ReadConcern контролирует уровень изоляции для операций чтения для наборов реплик и сегментов наборов реплик. Эта опция требует MongoDB 3.2 или новее.

Обзор классов

final MongoDB\Driver\ReadConcern implements MongoDB\BSON\Serializable , Serializable {
/* Константы */
const string AVAILABLE = "available" ;
const string LINEARIZABLE = "linearizable" ;
const string LOCAL = "local" ;
const string MAJORITY = "majority" ;
/* Методы */
final public bsonSerialize ( void ) : object
final public __construct ([ string $level ] )
final public getLevel ( void ) : string|null
final public isDefault ( void ) : bool
final public serialize ( void ) : string
final public unserialize ( string $serialized ) : void
}

Предопределенные константы

MongoDB\Driver\ReadConcern::AVAILABLE

По умолчанию для чтения против вторичных, когда afterClusterTime и level не указаны.

Запрос возвращает самые последние данные экземпляра. Не гарантирует, что данные были записаны большинству членов набора реплик (то есть могут быть откаты).

Для неохраняемых коллекций (включая коллекции в автономном развертывании или развертывании набора реплик), "local" и "available" гарантии чтения ведут себя одинаково.

Для сегментированного кластера "available" гарантии чтения обеспечивает большую терпимость для разделов, поскольку она не ожидает гарантий согласованности. Однако запрос с "available" гарантиями чтения может вернуть потерянные документы, если в сегменте выполняется миграция фрагментов, поскольку "available" гарантий чтения, в отличие от "local" гарантий чтения, не связывается с первичным сервером сегмента или серверами конфигурации для получения обновленных метаданных.

MongoDB\Driver\ReadConcern::LINEARIZABLE

Запрос возвращает данные, которые отражают все успешные записи, выпущенные с гарантиями записи "majority" и подтвержденные до начала операции чтения. Для наборов реплик, которые выполняются с параметром writeConcernMajorityJournalDefault, установленным в значение TRUE, линеаризуемые гарантии чтения возвращают данные, которые никогда не будут откатываться.

Если для writeConcernMajorityJournalDefault задано значение FALSE, MongoDB не будет ожидать, что w: "majority" записей будет устойчивым, прежде чем подтвердить записи. Таким образом, операции записи "majority" могут откатываться в случае потери члена набора реплик.

Вы можете указать линеаризуемые гарантии чтения для операций чтения только на основном сервере.

Линеаризуемые гарантии чтения применяются только в том случае, если в операциях чтения указан фильтр запроса, который однозначно идентифицирует один документ.

Подсказка

Всегда используйте maxTimeMS с линеаризуемыми гарантиями чтения, если большинство элементов, несущих данные, недоступно. maxTimeMS гарантирует, что операция не блокируется бесконечно, и вместо этого гарантирует, что операция возвращает ошибку, если проблема чтения не может быть выполнена.

Для линеаризуемых гарантий чтения требуется MongoDB 3.4.

MongoDB\Driver\ReadConcern::LOCAL

По умолчанию для чтения по первичному, если level не указан, и для чтения по вторичному, если level не указан, но задано afterClusterTime.

Запрос возвращает самые последние данные экземпляра. Не гарантирует, что данные были записаны большинству членов набора реплик (то есть могут быть откаты).

MongoDB\Driver\ReadConcern::MAJORITY

Запрос возвращает самые последние данные экземпляра, которые были признаны записанными большинству членов в наборе реплик.

Чтобы использовать уровень гарантий чтения "majority", наборы реплик должны использовать механизм хранения WiredTiger и протокол выбора версии 1.

Список изменений

Версия | Описание
1.7.0 | Реализует Serializable.
1.4.0 | Добавлена константа MongoDB\Driver\ReadConcern::AVAILABLE.
1.2.0 | Добавлена константа MongoDB\Driver\ReadConcern::LINEARIZABLE. Реализует MongoDB\BSON\Serializable.

Смотрите также

  • » Справка по гарантиям чтения

Содержание

  • MongoDB\Driver\ReadConcern::bsonSerialize — Возвращает объект для сериализации BSON
  • MongoDB\Driver\ReadConcern::__construct — Создает новый ReadConcern
  • MongoDB\Driver\ReadConcern::getLevel — Возвращает опцию "level" ReadConcern
  • MongoDB\Driver\ReadConcern::isDefault — Проверяет, является ли гарантией чтения по умолчанию
  • MongoDB\Driver\ReadConcern::serialize — Serialize a ReadConcern
  • MongoDB\Driver\ReadConcern::unserialize — Unserialize a ReadConcern


Возвращает объект для сериализации BSON

  • « MongoDB\Driver\ReadConcern
  • MongoDB\Driver\ReadConcern::__construct »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Возвращает объект для сериализации BSON

MongoDB\Driver\ReadConcern::bsonSerialize

(mongodb >=1.2.0)

MongoDB\Driver\ReadConcern::bsonSerialize — Возвращает объект для сериализации BSON

Описание

final public MongoDB\Driver\ReadConcern::bsonSerialize ( void ) : object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект для сериализации ReadConcern, как BSON.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\ReadConcern::bsonSerialize() с пустыми гарантиями чтения

<?php

$rc = new MongoDB\Driver\ReadConcern;
var_dump($rc->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rc));

?>

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)#2 (0) {
}

{ }

Пример #2 Пример использования MongoDB\Driver\ReadConcern::bsonSerialize() с локальными гарантиями чтения

<?php

$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::LOCAL);
var_dump($rc->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rc));

?>

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)#2 (1) {
  ["level"]=>
  string(5) "local"
}

{ "level" : "local" }

Смотрите также

  • MongoDB\BSON\Serializable::bsonSerialize() - Предоставляет массив или документ для сериализации в BSON
  • » Справка по гарантиям чтения


Создает новый ReadConcern

  • « MongoDB\Driver\ReadConcern::bsonSerialize
  • MongoDB\Driver\ReadConcern::getLevel »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Создает новый ReadConcern

MongoDB\Driver\ReadConcern::__construct

(mongodb >=1.0.0)

MongoDB\Driver\ReadConcern::__construct — Создает новый ReadConcern

Описание

final public MongoDB\Driver\ReadConcern::__construct ([ string $level ] )

Создает новый MongoDB\Driver\ReadConcern, который является объектом неизменяемого значения.

Список параметров

level

» Уровень гарантий чтения. Вы можете использовать, но не ограничиваясь этим, одну из констант класса.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\ReadConcern::__construct()

<?php

/* Неуказанный уровень изоляции чтения (использует поведение сервера по умолчанию) */
$rc = new MongoDB\Driver\ReadConcern();

/* Запрашиваем изоляцию чтения от одного узла набора реплик */
$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::LOCAL);

/* Запрашиваем изоляцию чтения от большинства узлов набора реплик */
$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::MAJORITY);

?>

Смотрите также

  • » Справка по гарантиям чтения


Возвращает опцию "level" ReadConcern

  • « MongoDB\Driver\ReadConcern::__construct
  • MongoDB\Driver\ReadConcern::isDefault »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Возвращает опцию "level" ReadConcern

MongoDB\Driver\ReadConcern::getLevel

(mongodb >=1.0.0)

MongoDB\Driver\ReadConcern::getLevel — Возвращает опцию "level" ReadConcern

Описание

final public MongoDB\Driver\ReadConcern::getLevel ( void ) : string|null

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает опцию "level" ReadConcern.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\ReadConcern::getLevel()

<?php

$rc = new MongoDB\Driver\ReadConcern();
var_dump($rc->getLevel());

$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::LOCAL);
var_dump($rc->getLevel());

$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::MAJORITY);
var_dump($rc->getLevel());

?>

Результат выполнения данного примера:

NULL
string(5) "local"
string(8) "majority"

Смотрите также

  • » Справка по гарантиям чтения


Проверяет, является ли гарантией чтения по умолчанию

  • « MongoDB\Driver\ReadConcern::getLevel
  • MongoDB\Driver\ReadConcern::serialize »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Проверяет, является ли гарантией чтения по умолчанию

MongoDB\Driver\ReadConcern::isDefault

(mongodb >=1.3.0)

MongoDB\Driver\ReadConcern::isDefault — Проверяет, является ли гарантией чтения по умолчанию

Описание

final public MongoDB\Driver\ReadConcern::isDefault ( void ) : bool

Возвращает, является ли это гарантией чтения по умолчанию (т.е. параметры не указаны). Этот метод в первую очередь предназначен для использования в сочетании с MongoDB\Driver\Manager::getReadConcern(), чтобы определить, был ли построен Manager без каких-либо гарантий чтения.

Драйвер не будет включать в себя гарантии чтения по умолчанию в своих операциях чтения (например, MongoDB\Driver\Manager::executeQuery()), чтобы сервер мог применять свои собственные значения по умолчанию. Библиотеки, которые обращаются к гарантиям чтения Manager, чтобы включить его в свои собственные команды чтения, должны использовать этот метод, чтобы гарантировать, что гарантии чтения по умолчанию остаются неустановленными.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если это гарантии чтения по умолчанию, и FALSE в противном случае.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\ReadConcern::isDefault()

<?php

$rc = new MongoDB\Driver\ReadConcern(null);
var_dump($rc->isDefault());

$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::MAJORITY);
var_dump($rc->isDefault());

$manager = new MongoDB\Driver\Manager('mongodb://127.0.0.1/?readConcernLevel=majority');
$rc = $manager->getReadConcern();
var_dump($rc->isDefault());

$manager = new MongoDB\Driver\Manager('mongodb://127.0.0.1/');
$rc = $manager->getReadConcern();
var_dump($rc->isDefault());

?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(false)
bool(true)

Смотрите также

  • MongoDB\Driver\Manager::getReadConcern() - Возвращает ReadConcern для Manager
  • » Справка по гарантиям чтения


Serialize a ReadConcern

  • « MongoDB\Driver\ReadConcern::isDefault
  • MongoDB\Driver\ReadConcern::unserialize »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Serialize a ReadConcern

MongoDB\Driver\ReadConcern::serialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadConcern::serialize — Serialize a ReadConcern

Описание

final public MongoDB\Driver\ReadConcern::serialize ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the serialized representation of the MongoDB\Driver\ReadConcern.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\ReadConcern::unserialize() - Unserialize a ReadConcern
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Serializing Objects


Unserialize a ReadConcern

  • « MongoDB\Driver\ReadConcern::serialize
  • MongoDB\Driver\Cursor »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Unserialize a ReadConcern

MongoDB\Driver\ReadConcern::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadConcern::unserialize — Unserialize a ReadConcern

Описание

final public MongoDB\Driver\ReadConcern::unserialize ( string $serialized ) : void

Список параметров

serialized

The serialized MongoDB\Driver\ReadConcern.

Возвращаемые значения

Returns the unserialized MongoDB\Driver\ReadConcern.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Смотрите также

  • MongoDB\Driver\ReadConcern::serialize() - Serialize a ReadConcern
  • unserialize() - Создает PHP-значение из хранимого представления
  • Serializing Objects


Класс MongoDB\Driver\Cursor

(mongodb >=1.0.0)

Введение

Класс MongoDB\Driver\Cursor содержит результаты команды MongoDB command или запроса и может быть возвращен MongoDB\Driver\Manager::executeCommand() или MongoDB\Driver\Manager::executeQuery() соответственно.

Обзор классов

final MongoDB\Driver\Cursor implements MongoDB\Driver\CursorInterface {
/* Методы */
final private __construct ( void )
final public getId ( void ) : MongoDB\Driver\CursorId
final public getServer ( void ) : MongoDB\Driver\Server
final public isDead ( void ) : bool
final public setTypeMap ( array $typemap ) : void
final public toArray ( void ) : array
}

Список изменений

Версия | Описание
1.6.0 | Реализует MongoDB\Driver\CursorInterface, который наследует Traversable.

Примеры

Пример #1 Reading a result set

Как MongoDB\Driver\Manager::executeCommand(), так MongoDB\Driver\Manager::executeQuery(), возвращают свои результаты в виде объекта MongoDB\Driver\Cursor.

Поскольку MongoDB\Driver\Cursor реализует интерфейс Traversable, вы можете итерировать по набору результата с помощью foreach.

<?php

$manager = new MongoDB\Driver\Manager();

/* Вставить определенные документы, чтобы наш запрос вернул результаты */
$bulkWrite = new MongoDB\Driver\BulkWrite;
$bulkWrite->insert(['name' => 'Ceres', 'size' => 946, 'distance' => 2.766]);
$bulkWrite->insert(['name' => 'Vesta', 'size' => 525, 'distance' => 2.362]);
$manager->executeBulkWrite("test.asteroids", $bulkWrite);

/* Запрос на получение всех элементов в коллекции */
$query = new MongoDB\Driver\Query( [] );

/* Запрос коллекции "asteroids" базы данных "test" */
$cursor = $manager->executeQuery("test.asteroids", $query);

/* Теперь $cursor содержит объект, обернутый вокруг набора с результатом. Используйте
 * foreach() для итеации по всему результату */
foreach ($cursor as $document) {
    print_r($document);
}

?>

Результатом выполнения данного примера будет что-то подобное:

stdClass Object
(
    [_id] => MongoDB\BSON\ObjectId Object
        (
            [oid] => 5a4cff2f122d3321565d8cc2
        )

    [name] => Ceres
    [size] => 946
    [distance] => 2.766
)
stdClass Object
(
    [_id] => MongoDB\BSON\ObjectId Object
        (
            [oid] => 5a4cff2f122d3321565d8cc3
        )

    [name] => Vesta
    [size] => 525
    [distance] => 2.362
}

Пример #2 Чтение набора результатов для хвостового курсора

» Хвостовые курсоры - - это особый тип курсора MongoDB, который позволяет клиенту читать некоторые результаты, а затем ждать, пока не появятся дополнительные документы. Эти курсоры в основном используются с » Capped Collections and » Change Streams.

Хотя обычные курсоры можно итерировать один раз с помощью foreach, этот подход не будет работать с хвостовыми курсорами. Когда foreach используется с хвостовым курсором, цикл останавливается по достижении конца начального набора результатов. Попытка продолжить итерацию курсора со вторым foreach выбросить исключение, поскольку PHP пытается перемотать курсор. Подобно объектам результатов в других драйверах баз данных, курсоры в MongoDB поддерживают только итерацию вперед, что означает, что они не могут быть перемотаны.

Для непрерывного считывания с хвостового курсора объект курсора должен быть завернут с помощью IteratorIterator. Это позволяет приложению напрямую управлять итерацией курсора, избегать непреднамеренного перемотки курсора и решать, когда ждать новых результатов или полностью прекратить итерацию.

Чтобы продемонстрировать хвостовой курсор в действии, будут использоваться два скрипта: "производитель" (producer) и "потребитель" (consumer). Скрипт продюсера создаст новую capped-коллекцию, используя команду » create и начнет вставку нового документа в эту коллекцию каждую секунду.

<?php

$manager = new MongoDB\Driver\Manager;

$manager->executeCommand('test', new MongoDB\Driver\Command([
    'create' => 'asteroids',
    'capped' => true,
    'size' => 1048576,
]));

while (true) {
    $bulkWrite = new MongoDB\Driver\BulkWrite;
    $bulkWrite->insert(['createdAt' => new MongoDB\BSON\UTCDateTime]);
    $manager->executeBulkWrite('test.asteroids', $bulkWrite);

    sleep(1);
}

?>

Когда скрипт продюсера (producer) все еще запущен, может быть выполнен второй пользовательский скрипт для чтения вставленных документов с помощью хвостового (tailable) курсора, обозначенного параметрами tailable и awaitData для MongoDB\Driver\Query::__construct().

<?php

$manager = new MongoDB\Driver\Manager;

$query = new MongoDB\Driver\Query([], [
    'tailable' => true,
    'awaitData' => true,
]);

$cursor = $manager->executeQuery('test.asteroids', $query);

$iterator = new IteratorIterator($cursor);

$iterator->rewind();

while (true) {
    if ($iterator->valid()) {
        $document = $iterator->current();
        printf("Пользовательский документ создан: %s\n", $document->createdAt);
    }

    $iterator->next();
}

?>

Пользовательский скрипт начнет с быстрой печати всех доступных документов в заблокированной коллекции (как если бы использовался foreach); однако при достижении конца начального набора результатов он не завершится. Так как курсор является хвостовым, вызов IteratorIterator::valid() будет блокировать и ждать дополнительных результатов. IteratorIterator::valid() также используется для проверки наличия на каждом этапе данных, доступных для чтения.

Замечание: В этом примере используется опция запроса awaitData, чтобы проинструктировать сервер блокировать в течение короткого периода (например, одну секунду) в конце набора результатов перед возвратом ответа драйверу. Это используется для предотвращения агрессивного опроса (polling) сервера при отсутствии результатов. Параметр maxAwaitTimeMS может использоваться в сочетании с tailable и awaitData, чтобы указать время, которое сервер должен блокировать, когда он достигнет конца набора результатов.

Ошибки

При итерации по объекту курсора данные BSON преобразуются в переменные PHP. Эта итерация может вызвать следующие исключения:

  • Выбрасывает MongoDB\Driver\Exception\InvalidArgumentException, если класс на карте типов не может быть создан или не реализует MongoDB\BSON\Unserializable.
  • Исключение MongoDB\Driver\Exception\UnexpectedValueException выбрасывается, если входные данные не являются ровно одним документом BSON. Возможные причины включают, но не ограничены некоррекстным BSON, лишними данными или неожиданной ошибкой » libbson.

Содержание

  • MongoDB\Driver\Cursor::__construct — Создает новый объект Cursor (не используется)
  • MongoDB\Driver\Cursor::getId — Возвращает идентификатор для курсора
  • MongoDB\Driver\Cursor::getServer — Возвращает сервер, связанный с курсором
  • MongoDB\Driver\Cursor::isDead — Проверяет, исчерпан ли курсор или может содержать дополнительные результаты
  • MongoDB\Driver\Cursor::setTypeMap — Устанавливает карту типа для десериализации BSON
  • MongoDB\Driver\Cursor::toArray — Возвращает массив, содержащий все результаты курсора


Создает новый объект Cursor (не используется)

  • « MongoDB\Driver\Cursor
  • MongoDB\Driver\Cursor::getId »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Создает новый объект Cursor (не используется)

MongoDB\Driver\Cursor::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::__construct — Создает новый объект Cursor (не используется)

Описание

final private MongoDB\Driver\Cursor::__construct ( void )

Объекты MongoDB\Driver\Cursor возвращаются в результате выполнения команды или запроса и не может создан непосредственно.

Список параметров

У этой функции нет параметров.

Смотрите также

  • MongoDB\Driver\Manager::executeCommand() - Выполняет команду базы данных
  • MongoDB\Driver\Manager::executeQuery() - Выполняет запрос к базе данных
  • MongoDB\Driver\Server::executeCommand() - Выполнить команду базы данных на сервере
  • MongoDB\Driver\Server::executeQuery() - Выполняет запрос к базе данных на сервере


Возвращает идентификатор для курсора

  • « MongoDB\Driver\Cursor::__construct
  • MongoDB\Driver\Cursor::getServer »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Возвращает идентификатор для курсора

MongoDB\Driver\Cursor::getId

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::getId — Возвращает идентификатор для курсора

Описание

final public MongoDB\Driver\Cursor::getId ( void ) : MongoDB\Driver\CursorId

Возвращает MongoDB\Driver\CursorId, связанный с этим курсором. Идентификатор курсора однозначно идентифицирует курсор на сервере.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает MongoDB\Driver\CursorId для курсора.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример выполнения MongoDB\Driver\Cursor::getId()

<?php

/* В этом примере мы добавляем несколько документов в коллекцию и указываем
 * меньший batchSize, чтобы гарантировать, что первая порция содержит только
 * подмножество наших результатов и курсор остается открытым на сервере. */
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([], ['batchSize' => 2]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);
var_dump($cursor->getId());

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoDB\Driver\CursorId)#5 (1) {
  ["id"]=>
  int(94810124093)
}

Смотрите также

  • MongoDB\Driver\CursorId
  • MongoDB\Driver\CursorId::__toString() - Строковое представление идентификатора курсора


Возвращает сервер, связанный с курсором

  • « MongoDB\Driver\Cursor::getId
  • MongoDB\Driver\Cursor::isDead »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Возвращает сервер, связанный с курсором

MongoDB\Driver\Cursor::getServer

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::getServer — Возвращает сервер, связанный с курсором

Описание

final public MongoDB\Driver\Cursor::getServer ( void ) : MongoDB\Driver\Server

Возвращает MongoDB\Driver\Server, связанный с курсором. Это сервер, который выполнил MongoDB\Driver\Query или MongoDB\Driver\Command.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает MongoDB\Driver\Server, связанный с курсором.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример выполнения MongoDB\Driver\Cursor::getServer()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);
var_dump($cursor->getServer());

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoDB\Driver\Server)#5 (10) {
  ["host"]=>
  string(9) "localhost"
  ["port"]=>
  int(27017)
  ["type"]=>
  int(1)
  ["is_primary"]=>
  bool(false)
  ["is_secondary"]=>
  bool(false)
  ["is_arbiter"]=>
  bool(false)
  ["is_hidden"]=>
  bool(false)
  ["is_passive"]=>
  bool(false)
  ["last_is_master"]=>
  array(8) {
    ["ismaster"]=>
    bool(true)
    ["maxBsonObjectSize"]=>
    int(16777216)
    ["maxMessageSizeBytes"]=>
    int(48000000)
    ["maxWriteBatchSize"]=>
    int(1000)
    ["localTime"]=>
    object(MongoDB\BSON\UTCDateTime)#6 (1) {
      ["milliseconds"]=>
      int(1446505367907)
    }
    ["maxWireVersion"]=>
    int(3)
    ["minWireVersion"]=>
    int(0)
    ["ok"]=>
    float(1)
  }
  ["round_trip_time"]=>
  int(584)
}

Смотрите также

  • MongoDB\Driver\Server


Проверяет, исчерпан ли курсор или может содержать дополнительные результаты

  • « MongoDB\Driver\Cursor::getServer
  • MongoDB\Driver\Cursor::setTypeMap »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Проверяет, исчерпан ли курсор или может содержать дополнительные результаты

MongoDB\Driver\Cursor::isDead

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::isDead — Проверяет, исчерпан ли курсор или может содержать дополнительные результаты

Описание

final public MongoDB\Driver\Cursor::isDead ( void ) : bool

Проверяет, нет ли у курсора дополнительных результатов. Этот метод аналогичен методу » cursor.isExhausted() в оболочке MongoDB и в первую очередь полезен при выполнении итерации » хвостовых курсоров.

Курсор не имеет дополнительных результатов и считается "мертвым", если выполняется одно из следующих условий:

  • Текущий пакет был полностью повторен и идентификатор курсора равен нулю (то есть » getMore не может быть выполнен).
  • Произошла ошибка при итерации курсора.
  • Курсор достиг своего установленного предела.

Преднамеренно не всегда возможно определить, имеет ли курсор дополнительные результаты. Случаи, когда курсор может иметь больше доступных данных, следующие:

  • В текущем пакете есть дополнительные документы, которые буферизируются на стороне клиента. Итерация извлечет документ из локального буфера.
  • В текущем пакете нет дополнительных документов (то есть локального буфера), но идентификатор курсора не равен нулю. Итерация будет запрашивать больше документов с сервера с помощью операции » getMore, которая может возвращать или не возвращать дополнительные результаты и/или указывать, что курсор был закрыт на сервере, возвращая ноль для его идентификатора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если курсор не содержит никаких дополнительных результатов и FALSE в противном случае.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример выполнения MongoDB\Driver\Cursor::isDead()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);

$iterator = new IteratorIterator($cursor);

$iterator->rewind();
var_dump($cursor->isDead());

$iterator->next();
var_dump($cursor->isDead());

$iterator->next();
var_dump($cursor->isDead());

$iterator->next();
var_dump($cursor->isDead());

?>

Результат выполнения данного примера:

bool(false)
bool(false)
bool(false)
bool(true)

Смотрите также

  • » Хвостовые курсоры в руководстве MongoDB
  • » cursor.isExhausted() в руководстве MongoDB


Устанавливает карту типа для десериализации BSON

  • « MongoDB\Driver\Cursor::isDead
  • MongoDB\Driver\Cursor::toArray »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Устанавливает карту типа для десериализации BSON

MongoDB\Driver\Cursor::setTypeMap

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::setTypeMap — Устанавливает карту типа для десериализации BSON

Описание

final public MongoDB\Driver\Cursor::setTypeMap ( array $typemap ) : void

Устанавливает конфигурацию карты типов, которая будет использоваться при десериализации результатов BSON в значения PHP.

Список параметров

typeMap (array)

Конфигурация карты типов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

При итерации по курсору может выбрасываться следующие исключения из-за неправильной конфигурации карты типов:

  • Выбрасывает MongoDB\Driver\Exception\InvalidArgumentException, если класс на карте типов не может быть создан или не реализует MongoDB\BSON\Unserializable.

Примеры

Пример #1 Пример выполнения MongoDB\Driver\Cursor::setTypeMap()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$id = $bulk->insert(['x' => 1]);
$manager->executeBulkWrite('db.collection', $bulk);

$query = new MongoDB\Driver\Query(['_id' => $id]);
$cursor = $manager->executeQuery('db.collection', $query);
$cursor->setTypeMap(['root' => 'array']);

foreach ($cursor as $document) {
    var_dump($document);
}

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["_id"]=>
  object(MongoDB\BSON\ObjectId)#6 (1) {
    ["oid"]=>
    string(24) "56424fb76118fd3267180741"
  }
  ["x"]=>
  int(1)
}

Смотрите также

  • Постоянные данные


Возвращает массив, содержащий все результаты курсора

  • « MongoDB\Driver\Cursor::setTypeMap
  • MongoDB\Driver\CursorId »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Возвращает массив, содержащий все результаты курсора

MongoDB\Driver\Cursor::toArray

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::toArray — Возвращает массив, содержащий все результаты курсора

Описание

final public MongoDB\Driver\Cursor::toArray ( void ) : array

Итерирует курсор и возвращает его результаты в виде массива. MongoDB\Driver\Cursor::setTypeMap() может использоваться для управления тем, как документы десериализованы в значение PHP.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает array, содержащий все результаты курсора.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\Cursor::toArray()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$query = new MongoDB\Driver\Query([]);
$cursor = $manager->executeQuery('db.collection', $query);

var_dump($cursor->toArray());

?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  [0]=>
  object(stdClass)#6 (2) {
    ["_id"]=>
    object(MongoDB\BSON\ObjectId)#5 (1) {
      ["oid"]=>
      string(24) "564259a96118fd40b41bcf61"
    }
    ["x"]=>
    int(1)
  }
  [1]=>
  object(stdClass)#8 (2) {
    ["_id"]=>
    object(MongoDB\BSON\ObjectId)#7 (1) {
      ["oid"]=>
      string(24) "564259a96118fd40b41bcf62"
    }
    ["x"]=>
    int(2)
  }
  [2]=>
  object(stdClass)#10 (2) {
    ["_id"]=>
    object(MongoDB\BSON\ObjectId)#9 (1) {
      ["oid"]=>
      string(24) "564259a96118fd40b41bcf63"
    }
    ["x"]=>
    int(3)
  }
}

Смотрите также

  • MongoDB\Driver\Cursor::setTypeMap() - Устанавливает карту типа для десериализации BSON


Класс MongoDB\Driver\CursorId

(mongodb >=1.0.0)

Введение

Класс MongoDB\Driver\CursorID - объект значения, который представляет идентификатор курсора. Экземпляры этого класса возвращаются MongoDB\Driver\Cursor::getId().

Обзор классов

final MongoDB\Driver\CursorId implements Serializable {
/* Методы */
final private __construct ( void )
final public serialize ( void ) : string
final public __toString ( void ) : string
final public unserialize ( string $serialized ) : void
}

Список изменений

Версия | Описание
1.7.0 | Реализует Serializable.

Содержание

  • MongoDB\Driver\CursorId::__construct — Создает новый объект CursorId (не используется)
  • MongoDB\Driver\CursorId::serialize — Serialize a CursorId
  • MongoDB\Driver\CursorId::__toString — Строковое представление идентификатора курсора
  • MongoDB\Driver\CursorId::unserialize — Unserialize a CursorId


Создает новый объект CursorId (не используется)

  • « MongoDB\Driver\CursorId
  • MongoDB\Driver\CursorId::serialize »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Создает новый объект CursorId (не используется)

MongoDB\Driver\CursorId::__construct

(mongodb >=1.0.0)

MongoDB\Driver\CursorId::__construct — Создает новый объект CursorId (не используется)

Описание

final private MongoDB\Driver\CursorId::__construct ( void )

Объекты MongoDB\Driver\CursorId возвращаются из MongoDB\Driver\Cursor::getId() и не могут созданы непосредственно.

Список параметров

У этой функции нет параметров.

Смотрите также

  • MongoDB\Driver\Cursor::getId() - Возвращает идентификатор для курсора


Serialize a CursorId

  • « MongoDB\Driver\CursorId::__construct
  • MongoDB\Driver\CursorId::__toString »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Serialize a CursorId

MongoDB\Driver\CursorId::serialize

(mongodb >=1.7.0)

MongoDB\Driver\CursorId::serialize — Serialize a CursorId

Описание

final public MongoDB\Driver\CursorId::serialize ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the serialized representation of the MongoDB\Driver\CursorId.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\CursorId::unserialize() - Unserialize a CursorId
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Serializing Objects


Строковое представление идентификатора курсора

  • « MongoDB\Driver\CursorId::serialize
  • MongoDB\Driver\CursorId::unserialize »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Строковое представление идентификатора курсора

MongoDB\Driver\CursorId::__toString

(mongodb >=1.0.0)

MongoDB\Driver\CursorId::__toString — Строковое представление идентификатора курсора

Описание

final public MongoDB\Driver\CursorId::__toString ( void ) : string

Возвращает идентификатор курсора в виде строки (string).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор курсора в виде строки (string).

Примеры

Пример #1 Пример выполнения MongoDB\Driver\CursorId::__toString()

<?php

/* В этом примере мы добавляем документы в коллекцию и указываем
 * меньший batchSize, чтобы гарантировать, что первая порция содержит только подмножество
 * наших результатов и курсор остается открытым на сервере. */
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([], ['batchSize' => 2]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);
var_dump((string) $cursor->getId());

?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "98061641158"

Смотрите также

  • MongoDB\Driver\Cursor::getId() - Возвращает идентификатор для курсора


Unserialize a CursorId

  • « MongoDB\Driver\CursorId::__toString
  • MongoDB\Driver\CursorInterface »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Unserialize a CursorId

MongoDB\Driver\CursorId::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\CursorId::unserialize — Unserialize a CursorId

Описание

final public MongoDB\Driver\CursorId::unserialize ( string $serialized ) : void

Список параметров

serialized

The serialized MongoDB\Driver\CursorId.

Возвращаемые значения

Returns the unserialized MongoDB\Driver\CursorId.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Смотрите также

  • MongoDB\Driver\CursorId::serialize() - Serialize a CursorId
  • unserialize() - Создает PHP-значение из хранимого представления
  • Serializing Objects


Интерфейс MongoDB\Driver\CursorInterface

(mongodb >=1.6.0)

Введение

Интерфейс, реализованный MongoDB\Driver\Cursor. Также можно использовать для тайпхинтинга в пользовательских классах.

Обзор классов

MongoDB\Driver\CursorInterface implements Traversable {
/* Методы */
abstract public getId ( void ) : MongoDB\Driver\CursorId
abstract public getServer ( void ) : MongoDB\Driver\Server
abstract public isDead ( void ) : bool
abstract public setTypeMap ( array $typemap ) : void
abstract public toArray ( void ) : array
}

Содержание

  • MongoDB\Driver\CursorInterface::getId — Возвращает идентификатор курсора
  • MongoDB\Driver\CursorInterface::getServer — Возвращает сервер, с которым связан курсор
  • MongoDB\Driver\CursorInterface::isDead — Проверить, можно ли еще получить из курсора результаты
  • MongoDB\Driver\CursorInterface::setTypeMap — Задать сопоставление типов для десериализации BSON
  • MongoDB\Driver\CursorInterface::toArray — Вернуть все результаты для данного курсора в виде массива


Возвращает идентификатор курсора

  • « MongoDB\Driver\CursorInterface
  • MongoDB\Driver\CursorInterface::getServer »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Возвращает идентификатор курсора

MongoDB\Driver\CursorInterface::getId

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::getId — Возвращает идентификатор курсора

Описание

abstract public MongoDB\Driver\CursorInterface::getId ( void ) : MongoDB\Driver\CursorId

Возвращает MongoDB\Driver\CursorId связанный с курсором. Каждый курсор на сервере имеет уникальный идентификатор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает MongoDB\Driver\CursorId для курсора.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Cursor::getId() - Возвращает идентификатор для курсора
  • MongoDB\Driver\CursorId
  • MongoDB\Driver\CursorId::__toString() - Строковое представление идентификатора курсора


Возвращает сервер, с которым связан курсор

  • « MongoDB\Driver\CursorInterface::getId
  • MongoDB\Driver\CursorInterface::isDead »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Возвращает сервер, с которым связан курсор

MongoDB\Driver\CursorInterface::getServer

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::getServer — Возвращает сервер, с которым связан курсор

Описание

abstract public MongoDB\Driver\CursorInterface::getServer ( void ) : MongoDB\Driver\Server

Возвращает MongoDB\Driver\Server связанный с курсором. Это тот сервер, на котором запущены MongoDB\Driver\Query или MongoDB\Driver\Command.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает MongoDB\Driver\Server связанный с курсором.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Cursor::getServer() - Возвращает сервер, связанный с курсором
  • MongoDB\Driver\Server


Проверить, можно ли еще получить из курсора результаты

  • « MongoDB\Driver\CursorInterface::getServer
  • MongoDB\Driver\CursorInterface::setTypeMap »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Проверить, можно ли еще получить из курсора результаты

MongoDB\Driver\CursorInterface::isDead

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::isDead — Проверить, можно ли еще получить из курсора результаты

Описание

abstract public MongoDB\Driver\CursorInterface::isDead ( void ) : bool

Проверяет, можно ли попытаться получить из курсора результаты. Изначально курсор находится в статусе "жив"(alive), но в следующих случаях может перейти в статус "мёртв"(dead):

  • При очередной вычитке не хвостового курсора не был возвращен документ
  • Произошла ошибка
  • Курсор прочитал последний батч до завершения
  • Курсор достиг предустановленного лимита
Это в первую очередь полезно при работе с хвостовыми курсорами.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если запросить очередной результат не получится или FALSE, если он еще "жив".

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Cursor::isDead() - Проверяет, исчерпан ли курсор или может содержать дополнительные результаты


Задать сопоставление типов для десериализации BSON

  • « MongoDB\Driver\CursorInterface::isDead
  • MongoDB\Driver\CursorInterface::toArray »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Задать сопоставление типов для десериализации BSON

MongoDB\Driver\CursorInterface::setTypeMap

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::setTypeMap — Задать сопоставление типов для десериализации BSON

Описание

abstract public MongoDB\Driver\CursorInterface::setTypeMap ( array $typemap ) : void

Задать сопоставление типов для использования при десериализации результатов BSON в значения PHP.

Список параметров

typeMap (array)

Конфигурация карты типов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Cursor::setTypeMap() - Устанавливает карту типа для десериализации BSON
  • Постоянные данные


Вернуть все результаты для данного курсора в виде массива

  • « MongoDB\Driver\CursorInterface::setTypeMap
  • MongoDB\Driver\Server »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Вернуть все результаты для данного курсора в виде массива

MongoDB\Driver\CursorInterface::toArray

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::toArray — Вернуть все результаты для данного курсора в виде массива

Описание

abstract public MongoDB\Driver\CursorInterface::toArray ( void ) : array

Итерирует курсор и возвращает результаты в виде массива. Для контродя десериализации в типы PHP можно использовать MongoDB\Driver\CursorInterface::setTypeMap().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий все результаты курсора.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Cursor::toArray() - Возвращает массив, содержащий все результаты курсора
  • MongoDB\Driver\CursorInterface::setTypeMap() - Задать сопоставление типов для десериализации BSON


Класс MongoDB\Driver\Server

(mongodb >=1.0.0)

Введение

Обзор классов

final MongoDB\Driver\Server {
/* Константы */
const integer TYPE_UNKNOWN = 0 ;
const integer TYPE_STANDALONE = 1 ;
const integer TYPE_MONGOS = 2 ;
const integer TYPE_POSSIBLE_PRIMARY = 3 ;
const integer TYPE_RS_PRIMARY = 4 ;
const integer TYPE_RS_SECONDARY = 5 ;
const integer TYPE_RS_ARBITER = 6 ;
const integer TYPE_RS_OTHER = 7 ;
const integer TYPE_RS_GHOST = 8 ;
/* Методы */
final private __construct ( void )
final public executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk [, array $options = array() ] ) : MongoDB\Driver\WriteResult
final public executeCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor
final public executeQuery ( string $namespace , MongoDB\Driver\Query $query [, array $options = array() ] ) : MongoDB\Driver\Cursor
final public executeReadCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor
final public executeReadWriteCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor
final public executeWriteCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor
final public getHost ( void ) : string
final public getInfo ( void ) : array
final public getLatency ( void ) : string
final public getPort ( void ) : int
final public getTags ( void ) : array
final public getType ( void ) : int
final public isArbiter ( void ) : bool
final public isHidden ( void ) : bool
final public isPassive ( void ) : bool
final public isPrimary ( void ) : bool
final public isSecondary ( void ) : bool
}

Предопределенные константы

MongoDB\Driver\Server::TYPE_UNKNOWN

Неизвестный тип сервера, возвращаемый MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_STANDALONE

Автономный тип сервера, возвращаемый MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_MONGOS

Тип сервера Mongos, возвращаемый MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_POSSIBLE_PRIMARY

Тип набора реплик возможного основного сервера, возвращаемый MongoDB\Driver\Server::getType().

Сервер может быть идентифицирован как возможный основной, если он еще не был проверен, но другая память набора реплик думает, что он является основным.

MongoDB\Driver\Server::TYPE_RS_PRIMARY

Тип набора реплик основного сервера, возвращаемый MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_RS_SECONDARY

Тип набора реплик вторичного сервера, возвращаемый MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_RS_ARBITER

Тип набора реплик арбитра сервера, возвращаемый MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_RS_OTHER

Другой тип набора реплик сервера, возвращаемый MongoDB\Driver\Server::getType().

Такие серверы могут быть скрыты, запускаются или восстанавливаются. Они не могут быть запрошены, но их списки хостов полезны для обнаружения текущей конфигурации набора реплик.

MongoDB\Driver\Server::TYPE_RS_GHOST

Призрачный тип набора реплик, возвращаемый MongoDB\Driver\Server::getType().

Серверы могут быть идентифицированы как таковые, по крайней мере, в трех ситуациях: кратко во время запуска сервера; в неинициализированном наборе реплик; или когда сервер держится в стороне (т.е. удаляется из конфигурации набора реплик). Они не могут быть запрошены, и их список хостов не может быть использован для обнаружения текущей конфигурации набора реплик; однако клиент может отслеживать этот сервер в надежде, что он переходит в более полезное состояние.

Содержание

  • MongoDB\Driver\Server::__construct — Создает новый Server (не используется)
  • MongoDB\Driver\Server::executeBulkWrite — Выполнить одну или несколько операций записи на сервере
  • MongoDB\Driver\Server::executeCommand — Выполнить команду базы данных на сервере
  • MongoDB\Driver\Server::executeQuery — Выполняет запрос к базе данных на сервере
  • MongoDB\Driver\Server::executeReadCommand — Выполняет команду базы данных, которая читает на сервере
  • MongoDB\Driver\Server::executeReadWriteCommand — Выполняет команду базы данных, которая читает и пишет на сервере
  • MongoDB\Driver\Server::executeWriteCommand — Выполняет команду базы данных, которая пишет на сервере
  • MongoDB\Driver\Server::getHost — Возвращает имя хоста сервера
  • MongoDB\Driver\Server::getInfo — Возвращает массив информации об этом сервере
  • MongoDB\Driver\Server::getLatency — Возвращает задержку этого сервера
  • MongoDB\Driver\Server::getPort — Возвращает порт, который слушает сервер
  • MongoDB\Driver\Server::getTags — Возвращает массив тегов, описывающих сервер в наборе реплик
  • MongoDB\Driver\Server::getType — Возвращает целое число, обозначающее тип этого сервера
  • MongoDB\Driver\Server::isArbiter — Проверяет, является ли сервер членом-арбитром в наборе реплик
  • MongoDB\Driver\Server::isHidden — Проверяет, является ли сервер скрытым членом набора реплик
  • MongoDB\Driver\Server::isPassive — Проверяет, является ли сервер пассивным членом набора реплик
  • MongoDB\Driver\Server::isPrimary — Проверяет, является ли сервер основным членом набора реплик
  • MongoDB\Driver\Server::isSecondary — Проверяет, является ли этот сервер второстепенным членом набора реплик


Создает новый Server (не используется)

  • « MongoDB\Driver\Server
  • MongoDB\Driver\Server::executeBulkWrite »
  • PHP Manual
  • MongoDB\Driver\Server
  • Создает новый Server (не используется)

MongoDB\Driver\Server::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Server::__construct — Создает новый Server (не используется)

Описание

final private MongoDB\Driver\Server::__construct ( void )

Объекты MongoDB\Driver\Server создаются внутри MongoDB\Driver\Manager, когда соединение с базой данных установлено и могут быть возвращены MongoDB\Driver\Manager::getServers() и MongoDB\Driver\Manager::selectServer().

Список параметров

У этой функции нет параметров.

Смотрите также

  • MongoDB\Driver\Manager::getServers() - Возвращает серверы, к которым подключен менеджер
  • MongoDB\Driver\Manager::selectServer() - Выбрать сервер, соответствующий предпочтениям чтения


Выполнить одну или несколько операций записи на сервере

  • « MongoDB\Driver\Server::__construct
  • MongoDB\Driver\Server::executeCommand »
  • PHP Manual
  • MongoDB\Driver\Server
  • Выполнить одну или несколько операций записи на сервере

MongoDB\Driver\Server::executeBulkWrite

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeBulkWrite — Выполнить одну или несколько операций записи на сервере

Описание

final public MongoDB\Driver\Server::executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk [, array $options = array() ] ) : MongoDB\Driver\WriteResult

Выполняет одну или несколько операций записи на сервере.

Объект MongoDB\Driver\BulkWrite может быть создан с одной или несколькими операциями записи различного типа (например, обновления, удаления и вставки). Драйвер попытается отправить операции одного типа на сервер в виде как можно меньшего количества запросов для сокращения обращений к серверу.

Список параметров

namespace (string)

Полностью определенное имя (т.е. "databaseName.collectionName").

bulk (MongoDB\Driver\BulkWrite)

Записи для выполнения.

options

options
Опция Тип Описание
session MongoDB\Driver\Session

Сессия для связывания с операцией.

writeConcern MongoDB\Driver\WriteConcern

Гаранатия записи для применения к операции.

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\WriteResult.

Ошибки

  • При отсутствии операций записи в bulk выбрасывает MongoDB\Driver\Exception\InvalidArgumentException.
  • Если bulk уже был выполнен, выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException. Объекты MongoDB\Driver\BulkWrite не могут быть выполнены несколько раз.
  • Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется в сочетании с неподтвержденной гарантией записи.
  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • При ошибке записи бросает исключение MongoDB\Driver\Exception\BulkWriteException.
  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • При возникновении других ошибок выбрасывает MongoDB\Driver\Exception\RuntimeException.

Список изменений

Версия | Описание
1.4.4 | Если опция "session" используется в сочетании с неподтвержденной гарантией записи, выбрасывается исключение MongoDB\Driver\Exception\InvalidArgumentException.
1.4.0 | Третий параметр теперь представляет собой массив options. Для обратной совместимости этот параметр все равно примет объект MongoDB\Driver\ReadPreference.
1.3.0 | Если bulk не содержит операций записи, выбрасывается MongoDB\Driver\Exception\InvalidArgumentException. Ранее выбрасывалось MongoDB\Driver\Exception\BulkWriteException.

Примечания

Замечание: Ответственность вызывающего кода заключается в том, что сервер в состоянии выполнять операцию записи. Например, выполнение операции записи на вторичном узле (исключая "локальную" базу данных) завершится неудачей.

Смотрите также

  • MongoDB\Driver\BulkWrite
  • MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteConcern
  • MongoDB\Driver\Manager::executeBulkWrite() - Выполняет одну или несколько операций записи


Выполнить команду базы данных на сервере

  • « MongoDB\Driver\Server::executeBulkWrite
  • MongoDB\Driver\Server::executeQuery »
  • PHP Manual
  • MongoDB\Driver\Server
  • Выполнить команду базы данных на сервере

MongoDB\Driver\Server::executeCommand

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeCommand — Выполнить команду базы данных на сервере

Описание

final public MongoDB\Driver\Server::executeCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor

Выполняет команду на сервере.

Этот метод не применяет особую логику к команде. Хотя этот метод принимает "readConcern" и "writeConcern", которые будут включены в документы коанды, эти опции не будут соответствовать значениям по умолчанию из MongoDB URI соединения , и не будет учитываться версия сервера MongoDB. Поэтому пользователям рекомендуется использовать конкретные методы команды чтения и/или записи если это возможно.

Замечание: Опция "readPreference" не контролирует сервер, к которому драйвер выполняет операцию; она всегда будет выполняться на этом объекте сервера. Вместо этого, он может быть использован при выполнении операции на втором узле (из набора реплик, не автономный) или на узле mongos для обеспечения того, что драйвер устанавливает проводной протокол соответствующим образом или добавляет предпочтение чтения к операции, соответственно.

Список параметров

db (string)

Имя базы данных, в которой запускается комманда.

command (MongoDB\Driver\Command)

Команда для выполнения.

options

options
Опция Тип Описание
readConcern MongoDB\Driver\ReadConcern

Гаранатия чтения для применения к операции.

Эта опция доступна в MongoDB 3.2+ и приведет к исключению во время выполнения, если указана для более старой версии сервера.

readPreference MongoDB\Driver\ReadPreference

Предпочтение чтения, используемая для выбора сервера для выполнения операции.

session MongoDB\Driver\Session

Сессия для связывания с операцией.

writeConcern MongoDB\Driver\WriteConcern

Гаранатия записи для применения к операции.

Внимание

При использовании "session" и наличии незавершенных транзакций, вы не можете указать "readConcern" or "writeConcern" option. Это приведет к выбрасыванию исключения MongoDB\Driver\Exception\InvalidArgumentException. Вместо этого вы должны установить эти две опции при создании транзакции с помощью MongoDB\Driver\Session::startTransaction().

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\Cursor.

Ошибки

  • Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется с соответствующей транзакцией в сочетании с опцией "readConcern" или "writeConcern".
  • Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется в сочетании с неподтвержденной гарантией записи.
  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command, issuing a write command to a secondary).

Список изменений

Версия | Описание
1.4.4 | Если опция "session" используется в сочетании с неподтвержденной гарантией записи, выбрасывается исключение MongoDB\Driver\Exception\InvalidArgumentException.
1.4.0 | Третий параметр теперь представляет собой массив options. Для обратной совместимости этот параметр все равно примет объект MongoDB\Driver\ReadPreference.

Примечания

Замечание: Ответственность вызывающего кода заключается в том, что сервер в состоянии выполнять операцию записи. Например, выполнение операции записи на вторичном узле (исключая "локальную" базу данных) завершится неудачей.

Смотрите также

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Server::executeReadCommand() - Выполняет команду базы данных, которая читает на сервере
  • MongoDB\Driver\Server::executeReadWriteCommand() - Выполняет команду базы данных, которая читает и пишет на сервере
  • MongoDB\Driver\Server::executeWriteCommand() - Выполняет команду базы данных, которая пишет на сервере
  • MongoDB\Driver\Manager::executeCommand() - Выполняет команду базы данных


Выполняет запрос к базе данных на сервере

  • « MongoDB\Driver\Server::executeCommand
  • MongoDB\Driver\Server::executeReadCommand »
  • PHP Manual
  • MongoDB\Driver\Server
  • Выполняет запрос к базе данных на сервере

MongoDB\Driver\Server::executeQuery

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeQuery — Выполняет запрос к базе данных на сервере

Описание

final public MongoDB\Driver\Server::executeQuery ( string $namespace , MongoDB\Driver\Query $query [, array $options = array() ] ) : MongoDB\Driver\Cursor

Выполняет запрос на сервере.

Замечание: Опция "readPreference" не управляет сервером, которому драйвер выполняет операцию; он всегда будет выполняться на этом объекте сервера. Вместо этого его можно использовать при выдаче операции на вторичном сервере (из соединения с репликой, а не автономном) или узел mongos, чтобы гарантировать, что драйвер соответственно устанавливает проводной протокол или добавляет предпочтения чтения к операции, соответственно.

Список параметров

namespace (string)

Полностью определенное имя (т.е. "databaseName.collectionName").

query (MongoDB\Driver\Query)

Запрос для выполнения.

options

options
Опция Тип Описание
readPreference MongoDB\Driver\ReadPreference

Предпочтение чтения, используемая для выбора сервера для выполнения операции.

session MongoDB\Driver\Session

Сессия для связывания с операцией.

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\Cursor.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Выдает исключение MongoDB\Driver\Exception\RuntimeException на другие ошибки (например, недопустимые операторы запросов).

Список изменений

Версия | Описание
1.4.0 | Третий параметр теперь является массивом options. Для обратной совместимости этот параметр будет по-прежнему принимать объект MongoDB\Driver\ReadPreference.

Смотрите также

  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Query
  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Manager::executeQuery() - Выполняет запрос к базе данных


Выполняет команду базы данных, которая читает на сервере

  • « MongoDB\Driver\Server::executeQuery
  • MongoDB\Driver\Server::executeReadWriteCommand »
  • PHP Manual
  • MongoDB\Driver\Server
  • Выполняет команду базы данных, которая читает на сервере

MongoDB\Driver\Server::executeReadCommand

(mongodb >=1.4.0)

MongoDB\Driver\Server::executeReadCommand — Выполняет команду базы данных, которая читает на сервере

Описание

final public MongoDB\Driver\Server::executeReadCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor

Выполняет команду на этом сервере.

Этот метод будет применять логику, специфичную для команд, которые читают (например, » count) и учитывают версию сервера MongoDB. Опция "readConcern" будет по умолчанию соответствовать соответствующему значению из URI подключения MongoDB.

Замечание: Опция "readPreference" не контролирует сервер, к которому драйвер выполняет операцию; она всегда будет выполняться на этом объекте сервера. Вместо этого, он может быть использован при выполнении операции на втором узле (из набора реплик, не автономный) или на узле mongos для обеспечения того, что драйвер устанавливает проводной протокол соответствующим образом или добавляет предпочтение чтения к операции, соответственно.

Список параметров

db (string)

Имя базы данных, в которой запускается комманда.

command (MongoDB\Driver\Command)

Команда для выполнения.

options

options
Опция Тип Описание
readConcern MongoDB\Driver\ReadConcern

Гаранатия чтения для применения к операции.

Эта опция доступна в MongoDB 3.2+ и приведет к исключению во время выполнения, если указана для более старой версии сервера.

readPreference MongoDB\Driver\ReadPreference

Предпочтение чтения, используемая для выбора сервера для выполнения операции.

session MongoDB\Driver\Session

Сессия для связывания с операцией.

Внимание

При использовании "session" и наличии незавершенных транзакций, вы не можете указать "readConcern" or "writeConcern" option. Это приведет к выбрасыванию исключения MongoDB\Driver\Exception\InvalidArgumentException. Вместо этого вы должны установить эти две опции при создании транзакции с помощью MongoDB\Driver\Session::startTransaction().

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\Cursor.

Ошибки

  • Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется с соответствующей транзакцией в сочетании с опцией "readConcern" или "writeConcern".
  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Выдает исключение MongoDB\Driver\Exception\RuntimeException на другие ошибки (например, неверная команда ).

Смотрите также

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Server::executeCommand() - Выполнить команду базы данных на сервере
  • MongoDB\Driver\Server::executeReadWriteCommand() - Выполняет команду базы данных, которая читает и пишет на сервере
  • MongoDB\Driver\Server::executeWriteCommand() - Выполняет команду базы данных, которая пишет на сервере
  • MongoDB\Driver\Manager::executeReadCommand() - Выполняет команду базы данных, которая читает


Выполняет команду базы данных, которая читает и пишет на сервере

  • « MongoDB\Driver\Server::executeReadCommand
  • MongoDB\Driver\Server::executeWriteCommand »
  • PHP Manual
  • MongoDB\Driver\Server
  • Выполняет команду базы данных, которая читает и пишет на сервере

MongoDB\Driver\Server::executeReadWriteCommand

(mongodb >=1.4.0)

MongoDB\Driver\Server::executeReadWriteCommand — Выполняет команду базы данных, которая читает и пишет на сервере

Описание

final public MongoDB\Driver\Server::executeReadWriteCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor

Выполняет команду на сервере.

Этот метод будет применять логику, специфичную для команд, которые читают и пишут (например, » findAndModify) и учитывают версию сервера MongoDB. Параметры "readConcern" и "writeConcern" по умолчанию соответствуют соответствующим значениям из URI подключения MongoDB.

Список параметров

db (string)

Имя базы данных, в которой запускается комманда.

command (MongoDB\Driver\Command)

Команда для выполнения.

options

options
Опция Тип Описание
readConcern MongoDB\Driver\ReadConcern

Гаранатия чтения для применения к операции.

Эта опция доступна в MongoDB 3.2+ и приведет к исключению во время выполнения, если указана для более старой версии сервера.

session MongoDB\Driver\Session

Сессия для связывания с операцией.

writeConcern MongoDB\Driver\WriteConcern

Гаранатия записи для применения к операции.

Внимание

При использовании "session" и наличии незавершенных транзакций, вы не можете указать "readConcern" or "writeConcern" option. Это приведет к выбрасыванию исключения MongoDB\Driver\Exception\InvalidArgumentException. Вместо этого вы должны установить эти две опции при создании транзакции с помощью MongoDB\Driver\Session::startTransaction().

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\Cursor.

Ошибки

  • Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется с соответствующей транзакцией в сочетании с опцией "readConcern" или "writeConcern".
  • Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется в сочетании с неподтвержденной гарантией записи.
  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Выдает исключение MongoDB\Driver\Exception\RuntimeException на другие ошибки (например, неверная команда).

Список изменений

Версия | Описание
1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException будет выброшено, если опция "session" используется в сочетании с неподтвержденной записью.

Примечания

Замечание: Ответственность вызывающего кода заключается в том, что сервер в состоянии выполнять операцию записи. Например, выполнение операции записи на вторичном узле (исключая "локальную" базу данных) завершится неудачей.

Смотрите также

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Server::executeCommand() - Выполнить команду базы данных на сервере
  • MongoDB\Driver\Server::executeReadCommand() - Выполняет команду базы данных, которая читает на сервере
  • MongoDB\Driver\Server::executeWriteCommand() - Выполняет команду базы данных, которая пишет на сервере
  • MongoDB\Driver\Manager::executeReadWriteCommand() - Выполняет команду базы данных, которая читает и пишет


Выполняет команду базы данных, которая пишет на сервере

  • « MongoDB\Driver\Server::executeReadWriteCommand
  • MongoDB\Driver\Server::getHost »
  • PHP Manual
  • MongoDB\Driver\Server
  • Выполняет команду базы данных, которая пишет на сервере

MongoDB\Driver\Server::executeWriteCommand

(mongodb >=1.4.0)

MongoDB\Driver\Server::executeWriteCommand — Выполняет команду базы данных, которая пишет на сервере

Описание

final public MongoDB\Driver\Server::executeWriteCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor

Выполняет команду на этом сервере.

Этот метод будет применять логику, специфичную для команд, которые пишут (например, » drop) и учитывают версию сервера MongoDB. Опция "writeConcern" по умолчанию будет соответствовать соответствующему значению из URI подключения MongoDB.

Замечание: Метод не предназначен для выполнения » insert, » update, или » delete команд. Пользователям рекомендуется использовать MongoDB\Driver\Manager::executeBulkWrite() для этих команд.

Список параметров

db (string)

Имя базы данных, в которой запускается комманда.

command (MongoDB\Driver\Command)

Команда для выполнения.

options

options
Опция Тип Описание
session MongoDB\Driver\Session

Сессия для связывания с операцией.

writeConcern MongoDB\Driver\WriteConcern

Гаранатия записи для применения к операции.

Внимание

При использовании "session" и наличии незавершенных транзакций, вы не можете указать "readConcern" or "writeConcern" option. Это приведет к выбрасыванию исключения MongoDB\Driver\Exception\InvalidArgumentException. Вместо этого вы должны установить эти две опции при создании транзакции с помощью MongoDB\Driver\Session::startTransaction().

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\Cursor.

Ошибки

  • Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется с соответствующей транзакцией в сочетании с опцией "readConcern" или "writeConcern".
  • Выбрасывается MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется в сочетании с неподтвержденной гарантией записи.
  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException на другие ошибки (например, неверная команда).

Список изменений

Версия | Описание
1.4.4 | Будет выброшено MongoDB\Driver\Exception\InvalidArgumentException, если опция "session" используется в сочетании с неподтвержденной записью.

Примечания

Замечание: Ответственность вызывающего кода заключается в том, что сервер в состоянии выполнять операцию записи. Например, выполнение операции записи на вторичном узле (исключая "локальную" базу данных) завершится неудачей.

Смотрите также

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Server::executeCommand() - Выполнить команду базы данных на сервере
  • MongoDB\Driver\Server::executeReadCommand() - Выполняет команду базы данных, которая читает на сервере
  • MongoDB\Driver\Server::executeReadWriteCommand() - Выполняет команду базы данных, которая читает и пишет на сервере
  • MongoDB\Driver\Manager::executeWriteCommand() - Выполняет команду базы данных, которая пишет


Возвращает имя хоста сервера

  • « MongoDB\Driver\Server::executeWriteCommand
  • MongoDB\Driver\Server::getInfo »
  • PHP Manual
  • MongoDB\Driver\Server
  • Возвращает имя хоста сервера

MongoDB\Driver\Server::getHost

(mongodb >=1.0.0)

MongoDB\Driver\Server::getHost — Возвращает имя хоста сервера

Описание

final public MongoDB\Driver\Server::getHost ( void ) : string

Возвращает имя хоста сервера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя хоста сервера.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\Server::getHost()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017/");

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$server = $manager->selectServer($rp);

var_dump($server->getHost());

?>

Результат выполнения данного примера:

string(9) "localhost"

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Возвращает массив информации об этом сервере


Возвращает массив информации об этом сервере

  • « MongoDB\Driver\Server::getHost
  • MongoDB\Driver\Server::getLatency »
  • PHP Manual
  • MongoDB\Driver\Server
  • Возвращает массив информации об этом сервере

MongoDB\Driver\Server::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\Server::getInfo — Возвращает массив информации об этом сервере

Описание

final public MongoDB\Driver\Server::getInfo ( void ) : array

Возвращает массив информации об этом сервере.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив информации об этом сервере.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\Server::getInfo()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017/");

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$server = $manager->selectServer($rp);

var_dump($server->getInfo());

?>

Результатом выполнения данного примера будет что-то подобное:

array(8) {
  ["ismaster"]=>
  bool(true)
  ["maxBsonObjectSize"]=>
  int(16777216)
  ["maxMessageSizeBytes"]=>
  int(48000000)
  ["maxWriteBatchSize"]=>
  int(1000)
  ["localTime"]=>
  object(MongoDB\BSON\UTCDateTime)#4 (1) {
    ["milliseconds"]=>
    int(1447276242774)
  }
  ["maxWireVersion"]=>
  int(3)
  ["minWireVersion"]=>
  int(0)
  ["ok"]=>
  float(1)
}


Возвращает задержку этого сервера

  • « MongoDB\Driver\Server::getInfo
  • MongoDB\Driver\Server::getPort »
  • PHP Manual
  • MongoDB\Driver\Server
  • Возвращает задержку этого сервера

MongoDB\Driver\Server::getLatency

(mongodb >=1.0.0)

MongoDB\Driver\Server::getLatency — Возвращает задержку этого сервера

Описание

final public MongoDB\Driver\Server::getLatency ( void ) : string

Возвращает задержку этого сервера (т.е. измеренное клиентом » время прохождения команды ismaster).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает задержку этого сервера.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\Server::getLatency()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017/");

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$server = $manager->selectServer($rp);

var_dump($server->getLatency());

?>

Результатом выполнения данного примера будет что-то подобное:

int(592)

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Возвращает массив информации об этом сервере
  • » Спецификация обнаружения и мониторинга сервера


Возвращает порт, который слушает сервер

  • « MongoDB\Driver\Server::getLatency
  • MongoDB\Driver\Server::getTags »
  • PHP Manual
  • MongoDB\Driver\Server
  • Возвращает порт, который слушает сервер

MongoDB\Driver\Server::getPort

(mongodb >=1.0.0)

MongoDB\Driver\Server::getPort — Возвращает порт, который слушает сервер

Описание

final public MongoDB\Driver\Server::getPort ( void ) : int

Возвращает порт, который слушает сервер.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает порт, который слушает сервер.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\Server::getPort()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017/");

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$server = $manager->selectServer($rp);

var_dump($server->getPort());

?>

Результат выполнения данного примера:

int(27017)

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Возвращает массив информации об этом сервере


Возвращает массив тегов, описывающих сервер в наборе реплик

  • « MongoDB\Driver\Server::getPort
  • MongoDB\Driver\Server::getType »
  • PHP Manual
  • MongoDB\Driver\Server
  • Возвращает массив тегов, описывающих сервер в наборе реплик

MongoDB\Driver\Server::getTags

(mongodb >=1.0.0)

MongoDB\Driver\Server::getTags — Возвращает массив тегов, описывающих сервер в наборе реплик

Описание

final public MongoDB\Driver\Server::getTags ( void ) : array

Возвращает array » тегов, используемых для описания этого сервера в наборе реплик. Массив будет содержать ноль или более пар string ключей и значений.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает array тегов, используемых для описания сервера в наборе реплик.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Возвращает массив информации об этом сервере


Возвращает целое число, обозначающее тип этого сервера

  • « MongoDB\Driver\Server::getTags
  • MongoDB\Driver\Server::isArbiter »
  • PHP Manual
  • MongoDB\Driver\Server
  • Возвращает целое число, обозначающее тип этого сервера

MongoDB\Driver\Server::getType

(mongodb >=1.0.0)

MongoDB\Driver\Server::getType — Возвращает целое число, обозначающее тип этого сервера

Описание

final public MongoDB\Driver\Server::getType ( void ) : int

Возвращает integer, обозначающее тип этого сервера. Значение будет соответствовать константе MongoDB\Driver\Server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает integer, обозначающее тип этого сервера.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Возвращает массив информации об этом сервере


Проверяет, является ли сервер членом-арбитром в наборе реплик

  • « MongoDB\Driver\Server::getType
  • MongoDB\Driver\Server::isHidden »
  • PHP Manual
  • MongoDB\Driver\Server
  • Проверяет, является ли сервер членом-арбитром в наборе реплик

MongoDB\Driver\Server::isArbiter

(mongodb >=1.0.0)

MongoDB\Driver\Server::isArbiter — Проверяет, является ли сервер членом-арбитром в наборе реплик

Описание

final public MongoDB\Driver\Server::isArbiter ( void ) : bool

Возвращает, является ли этот сервер » членом-арбитром набора реплик.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если этот сервер является членом-арбитром набора реплик, и FALSE в противном случае.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Возвращает массив информации об этом сервере


Проверяет, является ли сервер скрытым членом набора реплик

  • « MongoDB\Driver\Server::isArbiter
  • MongoDB\Driver\Server::isPassive »
  • PHP Manual
  • MongoDB\Driver\Server
  • Проверяет, является ли сервер скрытым членом набора реплик

MongoDB\Driver\Server::isHidden

(mongodb >=1.0.0)

MongoDB\Driver\Server::isHidden — Проверяет, является ли сервер скрытым членом набора реплик

Описание

final public MongoDB\Driver\Server::isHidden ( void ) : bool

Возвращает, является ли этот сервер » скрытым членом набора реплик.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если этот сервер является скрытым членом набора реплик, и FALSE в противном случае.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Возвращает массив информации об этом сервере


Проверяет, является ли сервер пассивным членом набора реплик

  • « MongoDB\Driver\Server::isHidden
  • MongoDB\Driver\Server::isPrimary »
  • PHP Manual
  • MongoDB\Driver\Server
  • Проверяет, является ли сервер пассивным членом набора реплик

MongoDB\Driver\Server::isPassive

(mongodb >=1.0.0)

MongoDB\Driver\Server::isPassive — Проверяет, является ли сервер пассивным членом набора реплик

Описание

final public MongoDB\Driver\Server::isPassive ( void ) : bool

Возвращает, является ли этот сервер » пассивным членом набора реплик (то есть его приоритет равен 0).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если этот сервер является пассивным членом набора реплик, и FALSE в противном случае.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Возвращает массив информации об этом сервере


Проверяет, является ли сервер основным членом набора реплик

  • « MongoDB\Driver\Server::isPassive
  • MongoDB\Driver\Server::isSecondary »
  • PHP Manual
  • MongoDB\Driver\Server
  • Проверяет, является ли сервер основным членом набора реплик

MongoDB\Driver\Server::isPrimary

(mongodb >=1.0.0)

MongoDB\Driver\Server::isPrimary — Проверяет, является ли сервер основным членом набора реплик

Описание

final public MongoDB\Driver\Server::isPrimary ( void ) : bool

Возвращает, является ли этот сервер » основным членом набора реплик.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если этот сервер является основным членом набора реплик, и FALSE в противном случае.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Возвращает массив информации об этом сервере


Проверяет, является ли этот сервер второстепенным членом набора реплик

  • « MongoDB\Driver\Server::isPrimary
  • MongoDB\Driver\WriteConcernError »
  • PHP Manual
  • MongoDB\Driver\Server
  • Проверяет, является ли этот сервер второстепенным членом набора реплик

MongoDB\Driver\Server::isSecondary

(mongodb >=1.0.0)

MongoDB\Driver\Server::isSecondary — Проверяет, является ли этот сервер второстепенным членом набора реплик

Описание

final public MongoDB\Driver\Server::isSecondary ( void ) : bool

Возвращает, является ли этот сервер » второстепенным членом набора реплик.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если этот сервер является второстепенным членом набора реплик, и FALSE в противном случае.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Возвращает массив информации об этом сервере


Класс The MongoDB\Driver\WriteConcernError

(mongodb >=1.0.0)

Введение

Класс MongoDB\Driver\WriteConcernError инкапсулирует информацию об ошибке записи и может быть возвращен MongoDB\Driver\WriteResult::getWriteConcernError().

Обзор классов

final MongoDB\Driver\WriteConcernError {
/* Методы */
final public getCode ( void ) : int
final public getInfo ( void ) : mixed
final public getMessage ( void ) : string
}

Содержание

  • MongoDB\Driver\WriteConcernError::getCode — Возвращает код ошибки WriteConcernError
  • MongoDB\Driver\WriteConcernError::getInfo — Возвращает дополнительные метаданные для WriteConcernError
  • MongoDB\Driver\WriteConcernError::getMessage — Возвращает сообщение об ошибке WriteConcernError


Возвращает код ошибки WriteConcernError

  • « MongoDB\Driver\WriteConcernError
  • MongoDB\Driver\WriteConcernError::getInfo »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Возвращает код ошибки WriteConcernError

MongoDB\Driver\WriteConcernError::getCode

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getCode — Возвращает код ошибки WriteConcernError

Описание

final public MongoDB\Driver\WriteConcernError::getCode ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код ошибки WriteConcernError.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteConcernError::getCode()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$writeConcern = new MongoDB\Driver\WriteConcern(2, 1);

try {
    $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteConcernError()->getCode());
}

?>

Результатом выполнения данного примера будет что-то подобное:

int(64)

Смотрите также

  • » Справка по гарантиям записи


Возвращает дополнительные метаданные для WriteConcernError

  • « MongoDB\Driver\WriteConcernError::getCode
  • MongoDB\Driver\WriteConcernError::getMessage »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Возвращает дополнительные метаданные для WriteConcernError

MongoDB\Driver\WriteConcernError::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getInfo — Возвращает дополнительные метаданные для WriteConcernError

Описание

final public MongoDB\Driver\WriteConcernError::getInfo ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает дополнительные метаданные для WriteConcernError или NULL, если нет метаданных.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteConcernError::getInfo()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$writeConcern = new MongoDB\Driver\WriteConcern(2, 1);

try {
    $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteConcernError()->getInfo());
}

?>

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)#1 (1) {
  ["wtimeout"]=>
  bool(true)
}

Смотрите также

  • » Справка по гарантиям записи


Возвращает сообщение об ошибке WriteConcernError

  • « MongoDB\Driver\WriteConcernError::getInfo
  • MongoDB\Driver\WriteError »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Возвращает сообщение об ошибке WriteConcernError

MongoDB\Driver\WriteConcernError::getMessage

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getMessage — Возвращает сообщение об ошибке WriteConcernError

Описание

final public MongoDB\Driver\WriteConcernError::getMessage ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сообщение об ошибке WriteConcernError.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteConcernError::getMessage()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$writeConcern = new MongoDB\Driver\WriteConcern(2, 1);

try {
    $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteConcernError()->getMessage());
}

?>

Результатом выполнения данного примера будет что-то подобное:

string(33) "waiting for replication timed out"

Смотрите также

  • » Справка по гарантиям записи


Класс MongoDB\Driver\WriteError

(mongodb >=1.0.0)

Введение

Класс MongoDB\Driver\WriteError инкапсулирует информацию об ошибке записи и может быть возвращен как элемент массива из MongoDB\Driver\WriteResult::getWriteErrors().

Обзор классов

final MongoDB\Driver\WriteError {
/* Методы */
final public getCode ( void ) : int
final public getIndex ( void ) : int
final public getInfo ( void ) : mixed
final public getMessage ( void ) : string
}

Содержание

  • MongoDB\Driver\WriteError::getCode — Возвращает код ошибки WriteError
  • MongoDB\Driver\WriteError::getIndex — Возвращает индекс записи, соответствующей этому WriteError
  • MongoDB\Driver\WriteError::getInfo — Возвращает дополнительные метаданные для WriteError
  • MongoDB\Driver\WriteError::getMessage — Возвращает сообщение об ошибке WriteError


Возвращает код ошибки WriteError

  • « MongoDB\Driver\WriteError
  • MongoDB\Driver\WriteError::getIndex »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Возвращает код ошибки WriteError

MongoDB\Driver\WriteError::getCode

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getCode — Возвращает код ошибки WriteError

Описание

final public MongoDB\Driver\WriteError::getCode ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код ошибки WriteError.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteError::getCode()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 1]);

try {
    $manager->executeBulkWrite('db.collection', $bulk);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteErrors()[0]->getCode());
}

?>

Результатом выполнения данного примера будет что-то подобное:

int(11000)


Возвращает индекс записи, соответствующей этому WriteError

  • « MongoDB\Driver\WriteError::getCode
  • MongoDB\Driver\WriteError::getInfo »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Возвращает индекс записи, соответствующей этому WriteError

MongoDB\Driver\WriteError::getIndex

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getIndex — Возвращает индекс записи, соответствующей этому WriteError

Описание

final public MongoDB\Driver\WriteError::getIndex ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает индекс записи (из MongoDB\Driver\BulkWrite), соответствующий текущему WriteError.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteError::getIndex()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 1]);

try {
    $manager->executeBulkWrite('db.collection', $bulk);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteErrors()[0]->getIndex());
}

?>

Результатом выполнения данного примера будет что-то подобное:

int(1)

Смотрите также

  • MongoDB\Driver\BulkWrite


Возвращает дополнительные метаданные для WriteError

  • « MongoDB\Driver\WriteError::getIndex
  • MongoDB\Driver\WriteError::getMessage »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Возвращает дополнительные метаданные для WriteError

MongoDB\Driver\WriteError::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getInfo — Возвращает дополнительные метаданные для WriteError

Описание

final public MongoDB\Driver\WriteError::getInfo ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает дополнительные метаданные для WriteError, либо NULL, если метаданные недоступны.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает сообщение об ошибке WriteError

  • « MongoDB\Driver\WriteError::getInfo
  • MongoDB\Driver\WriteResult »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Возвращает сообщение об ошибке WriteError

MongoDB\Driver\WriteError::getMessage

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getMessage — Возвращает сообщение об ошибке WriteError

Описание

final public MongoDB\Driver\WriteError::getMessage ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сообщение об ошибке WriteError.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteError::getMessage()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 1]);

try {
    $manager->executeBulkWrite('db.collection', $bulk);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteErrors()[0]->getMessage());
}

?>

Результатом выполнения данного примера будет что-то подобное:

string(70) "E11000 duplicate key error index: db.collection.$_id_ dup key: { : 1 }"


Класс MongoDB\Driver\WriteResult

(mongodb >=1.0.0)

Введение

Класс MongoDB\Driver\WriteResult инкапсулирует информацию о выполненном MongoDB\Driver\BulkWrite и может быть возвращен MongoDB\Driver\Manager::executeBulkWrite().

Обзор классов

final MongoDB\Driver\WriteResult {
/* Методы */
final public getDeletedCount ( void ) : integer|null
final public getInsertedCount ( void ) : integer|null
final public getMatchedCount ( void ) : integer|null
final public getModifiedCount ( void ) : integer|null
final public getServer ( void ) : MongoDB\Driver\Server
final public getUpsertedCount ( void ) : integer|null
final public getUpsertedIds ( void ) : array
final public getWriteConcernError ( void ) : MongoDB\Driver\WriteConcernError|null
final public getWriteErrors ( void ) : array
final public isAcknowledged ( void ) : bool
}

Содержание

  • MongoDB\Driver\WriteResult::getDeletedCount — Возвращает количество удаленных документов
  • MongoDB\Driver\WriteResult::getInsertedCount — Возвращает количество вставленных документов (исключая слияния)
  • MongoDB\Driver\WriteResult::getMatchedCount — Возвращает количество документов, выбранных для обновления
  • MongoDB\Driver\WriteResult::getModifiedCount — Возвращает количество существующих обновленных документов
  • MongoDB\Driver\WriteResult::getServer — Возвращает сервер, связанный с этим результатом записи
  • MongoDB\Driver\WriteResult::getUpsertedCount — Возвращает количество документов, вставленных слиянием
  • MongoDB\Driver\WriteResult::getUpsertedIds — Возвращает массив идентификаторов для объединенных документов
  • MongoDB\Driver\WriteResult::getWriteConcernError — Возвращает любую ошибку гарантий записи, которая произошла
  • MongoDB\Driver\WriteResult::getWriteErrors — Возвращает любые ошибки записи, которые произошли
  • MongoDB\Driver\WriteResult::isAcknowledged — Возвращает, была ли запись подтверждена


Возвращает количество удаленных документов

  • « MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteResult::getInsertedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Возвращает количество удаленных документов

MongoDB\Driver\WriteResult::getDeletedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getDeletedCount — Возвращает количество удаленных документов

Описание

final public MongoDB\Driver\WriteResult::getDeletedCount ( void ) : integer|null

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество удаленных документов или NULL если запись не была подтверждена.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteResult::getDeletedCount()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getDeletedCount());

?>

Результат выполнения данного примера:

int(1)

Смотрите также

  • MongoDB\Driver\WriteResult::isAcknowledged() - Возвращает, была ли запись подтверждена


Возвращает количество вставленных документов (исключая слияния)

  • « MongoDB\Driver\WriteResult::getDeletedCount
  • MongoDB\Driver\WriteResult::getMatchedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Возвращает количество вставленных документов (исключая слияния)

MongoDB\Driver\WriteResult::getInsertedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getInsertedCount — Возвращает количество вставленных документов (исключая слияния)

Описание

final public MongoDB\Driver\WriteResult::getInsertedCount ( void ) : integer|null

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество вставленных документов (исключая слияния) или NULL если запись не была подтверждена.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteResult::getInsertedCount()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getInsertedCount());

?>

Результат выполнения данного примера:

int(1)

Смотрите также

  • MongoDB\Driver\WriteResult::isAcknowledged() - Возвращает, была ли запись подтверждена


Возвращает количество документов, выбранных для обновления

  • « MongoDB\Driver\WriteResult::getInsertedCount
  • MongoDB\Driver\WriteResult::getModifiedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Возвращает количество документов, выбранных для обновления

MongoDB\Driver\WriteResult::getMatchedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getMatchedCount — Возвращает количество документов, выбранных для обновления

Описание

final public MongoDB\Driver\WriteResult::getMatchedCount ( void ) : integer|null

Если операция обновления не приводит к изменению документа (например, установка значения поля в его текущее значение), сопоставленное количество может быть больше, чем значение, возвращаемое MongoDB\Driver\WriteResult::getModifiedCount().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество документов, выбранных для обновления, или NULL если запись не была подтверждена.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteResult::getMatchedCount()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getMatchedCount());

?>

Результат выполнения данного примера:

int(1)

Смотрите также

  • MongoDB\Driver\WriteResult::getModifiedCount() - Возвращает количество существующих обновленных документов
  • MongoDB\Driver\WriteResult::isAcknowledged() - Возвращает, была ли запись подтверждена


Возвращает количество существующих обновленных документов

  • « MongoDB\Driver\WriteResult::getMatchedCount
  • MongoDB\Driver\WriteResult::getServer »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Возвращает количество существующих обновленных документов

MongoDB\Driver\WriteResult::getModifiedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getModifiedCount — Возвращает количество существующих обновленных документов

Описание

final public MongoDB\Driver\WriteResult::getModifiedCount ( void ) : integer|null

Если операция обновления не приводит к изменению документа (например, установка значения поля в его текущее значение), измененное число может быть меньше, чем значение, возвращаемое MongoDB\Driver\WriteResult::getMatchedCount().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество существующих обновленных документов или NULL, если запись не была подтверждена.

Измененный счетчик недоступен в версиях MongoDB до версии 2.6, в которой использовалась устаревшая версия проводного протокола (т.е. OP_UPDATE). В этом случае измененное количество также будет равно NULL.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteResult::getModifiedCount()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getModifiedCount());

?>

Результат выполнения данного примера:

int(1)

Смотрите также

  • MongoDB\Driver\WriteResult::getMatchedCount() - Возвращает количество документов, выбранных для обновления
  • MongoDB\Driver\WriteResult::isAcknowledged() - Возвращает, была ли запись подтверждена


Возвращает сервер, связанный с этим результатом записи

  • « MongoDB\Driver\WriteResult::getModifiedCount
  • MongoDB\Driver\WriteResult::getUpsertedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Возвращает сервер, связанный с этим результатом записи

MongoDB\Driver\WriteResult::getServer

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getServer — Возвращает сервер, связанный с этим результатом записи

Описание

final public MongoDB\Driver\WriteResult::getServer ( void ) : MongoDB\Driver\Server

Возвращает MongoDB\Driver\Server, связанный с этим результатом записи. Это сервер, который выполнил MongoDB\Driver\BulkWrite.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает MongoDB\Driver\Server связанный с этим результатом записиt.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteResult::getServer()

<?php

$manager = new MongoDB\Driver\Manager;
$server = $manager->selectServer(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY));

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$result = $server->executeBulkWrite('db.collection', $bulk);

var_dump($result->getServer() == $server);

?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • MongoDB\Driver\Server


Возвращает количество документов, вставленных слиянием

  • « MongoDB\Driver\WriteResult::getServer
  • MongoDB\Driver\WriteResult::getUpsertedIds »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Возвращает количество документов, вставленных слиянием

MongoDB\Driver\WriteResult::getUpsertedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getUpsertedCount — Возвращает количество документов, вставленных слиянием

Описание

final public MongoDB\Driver\WriteResult::getUpsertedCount ( void ) : integer|null

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество документов, вставленных слиянием.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteResult::getUpsertedCount()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getUpsertedCount());

?>

Результат выполнения данного примера:

int(2)

Смотрите также

  • MongoDB\Driver\WriteResult::getUpsertedIds() - Возвращает массив идентификаторов для объединенных документов
  • MongoDB\Driver\WriteResult::isAcknowledged() - Возвращает, была ли запись подтверждена


Возвращает массив идентификаторов для объединенных документов

  • « MongoDB\Driver\WriteResult::getUpsertedCount
  • MongoDB\Driver\WriteResult::getWriteConcernError »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Возвращает массив идентификаторов для объединенных документов

MongoDB\Driver\WriteResult::getUpsertedIds

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getUpsertedIds — Возвращает массив идентификаторов для объединенных документов

Описание

final public MongoDB\Driver\WriteResult::getUpsertedIds ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив идентификаторов (т.е. значения полей "_id") для объединенных документов. Ключи массива будут соответствовать индексу операции записи (из MongoDB\Driver\BulkWrite), ответственной за слияние.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteResult::getUpsertedIds()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getUpsertedIds());

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [2]=>
  object(MongoDB\BSON\ObjectId)#4 (1) {
    ["oid"]=>
    string(24) "580e62a224f2302f191b880b"
  }
  [3]=>
  object(MongoDB\BSON\ObjectId)#5 (1) {
    ["oid"]=>
    string(24) "580e62a224f2302f191b880c"
  }
}

Смотрите также

  • MongoDB\Driver\WriteResult::getUpsertedCount() - Возвращает количество документов, вставленных слиянием
  • MongoDB\Driver\WriteResult::isAcknowledged() - Возвращает, была ли запись подтверждена


Возвращает любую ошибку гарантий записи, которая произошла

  • « MongoDB\Driver\WriteResult::getUpsertedIds
  • MongoDB\Driver\WriteResult::getWriteErrors »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Возвращает любую ошибку гарантий записи, которая произошла

MongoDB\Driver\WriteResult::getWriteConcernError

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getWriteConcernError — Возвращает любую ошибку гарантий записи, которая произошла

Описание

final public MongoDB\Driver\WriteResult::getWriteConcernError ( void ) : MongoDB\Driver\WriteConcernError|null

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает MongoDB\Driver\WriteConcernError, если во время операции записи произошла ошибка гарантий записи, и NULL в противном случае.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteResult::getWriteConcernError()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$writeConcern = new MongoDB\Driver\WriteConcern(2, 1);

try {
    $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteConcernError());
}

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoDB\Driver\WriteConcernError)#6 (3) {
  ["message"]=>
  string(33) "waiting for replication timed out"
  ["code"]=>
  int(64)
  ["info"]=>
  object(stdClass)#7 (1) {
    ["wtimeout"]=>
    bool(true)
  }
}

Смотрите также

  • MongoDB\Driver\WriteConcern
  • » Справка по гарантиям записи


Возвращает любые ошибки записи, которые произошли

  • « MongoDB\Driver\WriteResult::getWriteConcernError
  • MongoDB\Driver\WriteResult::isAcknowledged »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Возвращает любые ошибки записи, которые произошли

MongoDB\Driver\WriteResult::getWriteErrors

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getWriteErrors — Возвращает любые ошибки записи, которые произошли

Описание

final public MongoDB\Driver\WriteResult::getWriteErrors ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив объектов MongoDB\Driver\WriteError для любых ошибок записи, обнаруженных во время операции записи. Массив будет пустым, если ошибок не произошло.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteResult::getWriteErrors() с одной ошибкой

<?php

$manager = new MongoDB\Driver\Manager;

/* По умолчанию массовые операции записи выполняются последовательно по порядку
 * и выполнение прекращается после первой ошибки.
 */
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 3]);
$bulk->insert(['_id' => 4]);
$bulk->insert(['_id' => 4]);

try {
    $result = $manager->executeBulkWrite('db.collection', $bulk);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteErrors());
}

?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  object(MongoDB\Driver\WriteError)#5 (4) {
    ["message"]=>
    string(81) "E11000 duplicate key error collection: db.collection index: _id_ dup key: { : 2 }"
    ["code"]=>
    int(11000)
    ["index"]=>
    int(2)
    ["info"]=>
    NULL
  }
}

Пример #2 Пример использования MongoDB\Driver\WriteResult::getWriteErrors() с несколькими ошибками

<?php

$manager = new MongoDB\Driver\Manager;

/* Параметр "ordered" может использоваться для продолжения
 * выполнения массовых операций записи после первой ошибки.
 */
$bulk = new MongoDB\Driver\BulkWrite(['ordered' => false]);
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 3]);
$bulk->insert(['_id' => 4]);
$bulk->insert(['_id' => 4]);

try {
    $result = $manager->executeBulkWrite('db.collection', $bulk);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteErrors());
}

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  object(MongoDB\Driver\WriteError)#5 (4) {
    ["message"]=>
    string(81) "E11000 duplicate key error collection: db.collection index: _id_ dup key: { : 2 }"
    ["code"]=>
    int(11000)
    ["index"]=>
    int(2)
    ["info"]=>
    NULL
  }
  [1]=>
  object(MongoDB\Driver\WriteError)#6 (4) {
    ["message"]=>
    string(81) "E11000 duplicate key error collection: db.collection index: _id_ dup key: { : 4 }"
    ["code"]=>
    int(11000)
    ["index"]=>
    int(5)
    ["info"]=>
    NULL
  }
}

Смотрите также

  • MongoDB\Driver\WriteError


Возвращает, была ли запись подтверждена

  • « MongoDB\Driver\WriteResult::getWriteErrors
  • MongoDB\BSON »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Возвращает, была ли запись подтверждена

MongoDB\Driver\WriteResult::isAcknowledged

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::isAcknowledged — Возвращает, была ли запись подтверждена

Описание

final public MongoDB\Driver\WriteResult::isAcknowledged ( void ) : bool

Если запись подтверждена, другие поля будут доступны в объекте MongoDB\Driver\WriteResult.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если запись была подтверждена, и FALSE в противном случае.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteResult::isAcknowledged() с подтвержденными гарантиями записи

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->isAcknowledged());

?>

Результат выполнения данного примера:

bool(true)

Пример #2 Пример использования MongoDB\Driver\WriteResult::isAcknowledged() с неподтвержденными гарантиями записи

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk, new MongoDB\Driver\WriteConcern(0));

var_dump($result->isAcknowledged());

?>

Результат выполнения данного примера:

bool(false)

Смотрите также

  • MongoDB\Driver\WriteConcern
  • » Справка по гарантиям записи


Классы типов BSON и функции сериализации

  • Функции
    • MongoDB\BSON\fromJSON — Возвращает представление BSON значения JSON
    • MongoDB\BSON\fromPHP — Возвращает представление BSON значения PHP
    • MongoDB\BSON\toCanonicalExtendedJSON — Возвращает Canonical Extended JSON представление для значения BSON
    • MongoDB\BSON\toJSON — Возвращает Legacy Extended JSON представление значения BSON
    • MongoDB\BSON\toPHP — Возвращает PHP представление значения BSON
    • MongoDB\BSON\toRelaxedExtendedJSON — Возвращает Relaxed Extended JSON представление значения BSON
  • MongoDB\BSON\Binary — Класс MongoDB\BSON\Binary
    • MongoDB\BSON\Binary::__construct — Создает новый Binary
    • MongoDB\BSON\Binary::getData — Возвращает данные Binary
    • MongoDB\BSON\Binary::getType — Возвращает тип Binary
    • MongoDB\BSON\Binary::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\Binary::serialize — Сериализует Binary
    • MongoDB\BSON\Binary::__toString — Возвращает данные Binary
    • MongoDB\BSON\Binary::unserialize — Десериализует Binary
  • MongoDB\BSON\Decimal128 — Класс MongoDB\BSON\Decimal128
    • MongoDB\BSON\Decimal128::__construct — Создает новый Decimal128
    • MongoDB\BSON\Decimal128::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\Decimal128::serialize — Сериализирует Decimal128
    • MongoDB\BSON\Decimal128::__toString — Возвращает строковое представление Decimal128
    • MongoDB\BSON\Decimal128::unserialize — Десериализует Decimal128
  • MongoDB\BSON\Javascript — Класс MongoDB\BSON\Javascript
    • MongoDB\BSON\Javascript::__construct — Конструктор Javascript
    • MongoDB\BSON\Javascript::getCode — Возвращает код JavaScript
    • MongoDB\BSON\Javascript::getScope — Возвращает область документа JavaScript
    • MongoDB\BSON\Javascript::jsonSerialize — Возвращает представление, которое может быть преобразовано в JSON
    • MongoDB\BSON\Javascript::serialize — Сериализовать JavaScript
    • MongoDB\BSON\Javascript::__toString — Возвращает код JavaScript
    • MongoDB\BSON\Javascript::unserialize — Десериализовать JavaScript
  • MongoDB\BSON\MaxKey — Класс MongoDB\BSON\MaxKey
    • MongoDB\BSON\MaxKey::__construct — Конструктор MaxKey
    • MongoDB\BSON\MaxKey::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\MaxKey::serialize — Сериализует MaxKey
    • MongoDB\BSON\MaxKey::unserialize — Десериализует MaxKey
  • MongoDB\BSON\MinKey — Класс MongoDB\BSON\MinKey
    • MongoDB\BSON\MinKey::__construct — Конструктор MinKey
    • MongoDB\BSON\MinKey::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\MinKey::serialize — Сериализует MinKey
    • MongoDB\BSON\MinKey::unserialize — Десериализует MinKey
  • MongoDB\BSON\ObjectId — Класс MongoDB\BSON\ObjectId
    • MongoDB\BSON\ObjectId::__construct — Создает новый ObjectId
    • MongoDB\BSON\ObjectId::getTimestamp — Возвращает метку времени ObjectId
    • MongoDB\BSON\ObjectId::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\ObjectId::serialize — Сериализует ObjectId
    • MongoDB\BSON\ObjectId::__toString — Возвращает шестнадцатеричное представление ObjectId
    • MongoDB\BSON\ObjectId::unserialize — Десериализует ObjectId
  • MongoDB\BSON\Regex — Класс MongoDB\BSON\Regex
    • MongoDB\BSON\Regex::__construct — Создает новый Regex
    • MongoDB\BSON\Regex::getFlags — Возвращает флаги Regex
    • MongoDB\BSON\Regex::getPattern — Возвращает шаблон Regex
    • MongoDB\BSON\Regex::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\Regex::serialize — Сериализует Regex
    • MongoDB\BSON\Regex::__toString — Возвращает строковое представление Regex
    • MongoDB\BSON\Regex::unserialize — Десериализует Regex
  • MongoDB\BSON\Timestamp — Класс MongoDB\BSON\Timestamp
    • MongoDB\BSON\Timestamp::__construct — Создает новый Timestamp
    • MongoDB\BSON\Timestamp::getIncrement — Возвращает компонент приращения Timestamp
    • MongoDB\BSON\Timestamp::getTimestamp — Возвращает компонент отметки времени Timestamp
    • MongoDB\BSON\Timestamp::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\Timestamp::serialize — Сериализует Timestamp
    • MongoDB\BSON\Timestamp::__toString — Возвращает строковое представление Timestamp
    • MongoDB\BSON\Timestamp::unserialize — Десериализует Timestamp
  • MongoDB\BSON\UTCDateTime — Класс MongoDB\BSON\UTCDateTime
    • MongoDB\BSON\UTCDateTime::__construct — Создает новый UTCDateTime
    • MongoDB\BSON\UTCDateTime::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\UTCDateTime::serialize — Сериализует UTCDateTime
    • MongoDB\BSON\UTCDateTime::toDateTime — Возвращает представление DateTime этого UTCDateTime
    • MongoDB\BSON\UTCDateTime::__toString — Возвращает строковое представление UTCDateTime
    • MongoDB\BSON\UTCDateTime::unserialize — Десериализует UTCDateTime
  • MongoDB\BSON\Type — Интерфейс MongoDB\BSON\Type
  • MongoDB\BSON\Persistable — Интерфейс MongoDB\BSON\Persistable
  • MongoDB\BSON\Serializable — Интерфейс MongoDB\BSON\Serializable
    • MongoDB\BSON\Serializable::bsonSerialize — Предоставляет массив или документ для сериализации в BSON
  • MongoDB\BSON\Unserializable — Интерфейс MongoDB\BSON\Unserializable
    • MongoDB\BSON\Unserializable::bsonUnserialize — Создает объект из массива BSON или документа
  • MongoDB\BSON\BinaryInterface — Интерфейс MongoDB\BSON\BinaryInterface
    • MongoDB\BSON\BinaryInterface::getData — Возвращает данные BinaryInterface
    • MongoDB\BSON\BinaryInterface::getType — Возвращает тип BinaryInterface
    • MongoDB\BSON\BinaryInterface::__toString — Возвращает данные BinaryInterface
  • MongoDB\BSON\Decimal128Interface — Интерфейс MongoDB\BSON\Decimal128Interface
    • MongoDB\BSON\Decimal128Interface::__toString — Возвращает строковое представление Decimal128Interface
  • MongoDB\BSON\JavascriptInterface — Интерфейс MongoDB\BSON\JavascriptInterface
    • MongoDB\BSON\JavascriptInterface::getCode — Возвращает код JavascriptInterface
    • MongoDB\BSON\JavascriptInterface::getScope — Возвращает области видимости документа JavascriptInterface
    • MongoDB\BSON\JavascriptInterface::__toString — Возвращает код JavascriptInterface
  • MongoDB\BSON\MaxKeyInterface — Интерфейс MongoDB\BSON\MaxKeyInterface
  • MongoDB\BSON\MinKeyInterface — Интерфейс MongoDB\BSON\MinKeyInterface
  • MongoDB\BSON\ObjectIdInterface — Интерфейс MongoDB\BSON\ObjectIdInterface
    • MongoDB\BSON\ObjectIdInterface::getTimestamp — Возвращает компонент отметки времени ObjectIdInterface
    • MongoDB\BSON\ObjectIdInterface::__toString — Возвращает шестнадцатеричное представление ObjectIdInterface
  • MongoDB\BSON\RegexInterface — Интерфейс MongoDB\BSON\RegexInterface
    • MongoDB\BSON\RegexInterface::getFlags — Возвращает флаги RegexInterface
    • MongoDB\BSON\RegexInterface::getPattern — Возвращает шаблон RegexInterface
    • MongoDB\BSON\RegexInterface::__toString — Возвращает строковое представление RegexInterface
  • MongoDB\BSON\TimestampInterface — Интерфейс MongoDB\BSON\TimestampInterface
    • MongoDB\BSON\TimestampInterface::getIncrement — Возвращает инкрементный компонент TimestampInterface
    • MongoDB\BSON\TimestampInterface::getTimestamp — Возвращает компонент отметки времени TimestampInterface
    • MongoDB\BSON\TimestampInterface::__toString — Возвращает строковое представление TimestampInterface
  • MongoDB\BSON\UTCDateTimeInterface — Интерфейс MongoDB\BSON\UTCDateTimeInterface
    • MongoDB\BSON\UTCDateTimeInterface::toDateTime — Возвращает представление DateTime этого UTCDateTimeInterface
    • MongoDB\BSON\UTCDateTimeInterface::__toString — Возвращает строковое представление UTCDateTimeInterface
  • MongoDB\BSON\DBPointer — Класс MongoDB\BSON\DBPointer (устаревший)
    • MongoDB\BSON\DBPointer::__construct — Создает новый DBPointer (не используется)
    • MongoDB\BSON\DBPointer::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\DBPointer::serialize — Сериализует DBPointer
    • MongoDB\BSON\DBPointer::__toString — Возвращает пустую строку
    • MongoDB\BSON\DBPointer::unserialize — Десериализует DBPointer
  • MongoDB\BSON\Int64 — Класс MongoDB\BSON\Int64
    • MongoDB\BSON\Int64::__construct — Создает новый Int64 (не используется)
    • MongoDB\BSON\Int64::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\Int64::serialize — Сериализует Int64
    • MongoDB\BSON\Int64::__toString — Возвращает строковое представление Int64
    • MongoDB\BSON\Int64::unserialize — Десериализует Int64
  • MongoDB\BSON\Symbol — Класс MongoDB\BSON\Symbol (устаревший)
    • MongoDB\BSON\Symbol::__construct — Создает новый Symbol (не используется)
    • MongoDB\BSON\Symbol::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\Symbol::serialize — Сериализует Symbol
    • MongoDB\BSON\Symbol::__toString — Возвращает Symbol в виде строки
    • MongoDB\BSON\Symbol::unserialize — Десериализует Symbol
  • MongoDB\BSON\Undefined — Класс MongoDB\BSON\Undefined (устарело)
    • MongoDB\BSON\Undefined::__construct — Создает новый Undefined (не используется)
    • MongoDB\BSON\Undefined::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\Undefined::serialize — Сериализует Undefined
    • MongoDB\BSON\Undefined::__toString — Возвращает пустую строку
    • MongoDB\BSON\Undefined::unserialize — Десериализует Undefined


Функции

Содержание

  • MongoDB\BSON\fromJSON — Возвращает представление BSON значения JSON
  • MongoDB\BSON\fromPHP — Возвращает представление BSON значения PHP
  • MongoDB\BSON\toCanonicalExtendedJSON — Возвращает Canonical Extended JSON представление для значения BSON
  • MongoDB\BSON\toJSON — Возвращает Legacy Extended JSON представление значения BSON
  • MongoDB\BSON\toPHP — Возвращает PHP представление значения BSON
  • MongoDB\BSON\toRelaxedExtendedJSON — Возвращает Relaxed Extended JSON представление значения BSON


Возвращает представление BSON значения JSON

  • « Функции
  • MongoDB\BSON\fromPHP »
  • PHP Manual
  • Функции
  • Возвращает представление BSON значения JSON

MongoDB\BSON\fromJSON

(mongodb >=1.0.0)

MongoDB\BSON\fromJSON — Возвращает представление BSON значения JSON

Описание

MongoDB\BSON\fromJSON ( string $json ) : string

Преобразует строку » Extended JSON в ее представление BSON.

Список параметров

json (string)

Значение JSON для преобразования.

Возвращаемые значения

Сериализованный документ BSON в виде двоичной строки.

Ошибки

  • Выдает MongoDB\Driver\Exception\UnexpectedValueException, если значение JSON не может быть преобразовано в BSON (например, из-за синтаксической ошибки).

Примеры

Пример #1 Пример использования MongoDB\BSON\fromJSON()

<?php

$json = '{ "_id": { "$oid": "563143b280d2387c91807965" } }';
$bson = MongoDB\BSON\fromJSON($json);
$value = MongoDB\BSON\toPHP($bson);
var_dump($value);

?>

Результат выполнения данного примера:

object(stdClass)#2 (1) {
  ["_id"]=>
  object(MongoDB\BSON\ObjectId)#1 (1) {
    ["oid"]=>
    string(24) "563143b280d2387c91807965"
  }
}

Смотрите также

  • MongoDB\BSON\toJSON() - Возвращает Legacy Extended JSON представление значения BSON
  • » MongoDB Extended JSON
  • » MongoDB BSON


Возвращает представление BSON значения PHP

  • « MongoDB\BSON\fromJSON
  • MongoDB\BSON\toCanonicalExtendedJSON »
  • PHP Manual
  • Функции
  • Возвращает представление BSON значения PHP

MongoDB\BSON\fromPHP

(mongodb >=1.0.0)

MongoDB\BSON\fromPHP — Возвращает представление BSON значения PHP

Описание

MongoDB\BSON\fromPHP ( array|object $value ) : string

Сериализует массив или объект PHP (например, документ) в его представление » BSON. Возвращенная двоичная строка будет описывать документ BSON.

Список параметров

value (array|object)

Значение PHP для сериализации.

Возвращаемые значения

Сериализованный документ BSON в виде двоичной строки.

Ошибки

  • Выдает MongoDB\Driver\Exception\UnexpectedValueException, если значение PHP не может быть преобразовано в BSON. Возможные причины включают, но не ограничиваются, столкновением с неожиданным экземпляром MongoDB\BSON\Type или MongoDB\BSON\Serializable::bsonSerialize(), не может вернуть array или stdClass.

Примеры

Пример #1 Пример использования MongoDB\BSON\fromPHP()

<?php

$bson = MongoDB\BSON\fromPHP(['foo' => 1]);
echo bin2hex($bson), "\n";

?>

Результат выполнения данного примера:

0e00000010666f6f000100000000cat

Смотрите также

  • MongoDB\BSON\toPHP() - Возвращает PHP представление значения BSON
  • » MongoDB BSON
  • Постоянные данные


Возвращает Canonical Extended JSON представление для значения BSON

  • « MongoDB\BSON\fromPHP
  • MongoDB\BSON\toJSON »
  • PHP Manual
  • Функции
  • Возвращает Canonical Extended JSON представление для значения BSON

MongoDB\BSON\toCanonicalExtendedJSON

(mongodb >=1.3.0)

MongoDB\BSON\toCanonicalExtendedJSON — Возвращает Canonical Extended JSON представление для значения BSON

Описание

MongoDB\BSON\toCanonicalExtendedJSON ( string $bson ) : string

Преобразует строку BSON в ее » Canonical Extended JSON представление. Канонический формат предпочитает точность типов за счет краткого вывода и наиболее подходит для создания выходных данных, которые могут быть преобразованы обратно в BSON без какой-либо потери информации о типе (например, числовые типы останутся дифференцированными).

Список параметров

bson (string)

Значение BSON для преобразования.

Возвращаемые значения

Преобразованное значение JSON.

Ошибки

  • Исключение MongoDB\Driver\Exception\UnexpectedValueException выбрасывается, если входные данные не являются ровно одним документом BSON. Возможные причины включают, но не ограничены некоррекстным BSON, лишними данными или неожиданной ошибкой » libbson.

Примеры

Пример #1 Пример использования MongoDB\BSON\toCanonicalExtendedJSON()

<?php

$documents = [
    [ 'null' => null ],
    [ 'boolean' => true ],
    [ 'string' => 'foo' ],
    [ 'int32' => 123 ],
    [ 'int64' => 4294967295 ],
    [ 'double' => 1.0, ],
    [ 'nan' => NAN ],
    [ 'pos_inf' => INF ],
    [ 'neg_inf' => -INF ],
    [ 'array' => [ 'foo', 'bar' ]],
    [ 'document' => [ 'foo' => 'bar' ]],
    [ 'oid' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1') ],
    [ 'dec128' => new MongoDB\BSON\Decimal128('1234.5678') ],
    [ 'binary' => new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC) ],
    [ 'date' => new MongoDB\BSON\UTCDateTime(1445990400000) ],
    [ 'timestamp' => new MongoDB\BSON\Timestamp(1234, 5678) ],
    [ 'regex' => new MongoDB\BSON\Regex('pattern', 'i') ],
    [ 'code' => new MongoDB\BSON\Javascript('function() { return 1; }') ],
    [ 'code_ws' => new MongoDB\BSON\Javascript('function() { return a; }', ['a' => 1]) ],
    [ 'minkey' => new MongoDB\BSON\MinKey ],
    [ 'maxkey' => new MongoDB\BSON\MaxKey ],
];

foreach ($documents as $document) {
    $bson = MongoDB\BSON\fromPHP($document);
    echo MongoDB\BSON\toCanonicalExtendedJSON($bson), "\n";
}

?>

Результат выполнения данного примера:

{ "null" : null }
{ "boolean" : true }
{ "string" : "foo" }
{ "int32" : { "$numberInt" : "123" } }
{ "int64" : { "$numberLong" : "4294967295"} }
{ "double" : { "$numberDouble" : "1.0" } }
{ "nan" : { "$numberDouble" : "NaN" } }
{ "pos_inf" : { "$numberDouble" : "Infinity" } }
{ "neg_inf" : { "$numberDouble" : "-Infinity" } }
{ "array" : [ "foo", "bar" ] }
{ "document" : { "foo" : "bar" } }
{ "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } }
{ "dec128" : { "$numberDecimal" : "1234.5678" } }
{ "binary" : { "$binary" : { "base64": "Zm9v", "subType" : "00" } } }
{ "date" : { "$date" : { "$numberLong" : "1445990400000" } } }
{ "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } }
{ "regex" : { "$regularExpression" : { "pattern" : "pattern", "options" : "i" } } }
{ "code" : { "$code" : "function() { return 1; }" } }
{ "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : { "$numberInt" : "1" } } } }
{ "minkey" : { "$minKey" : 1 } }
{ "maxkey" : { "$maxKey" : 1 } }

Смотрите также

  • MongoDB\BSON\fromJSON() - Возвращает представление BSON значения JSON
  • MongoDB\BSON\toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление значения BSON
  • » Спецификация Extended JSON
  • » MongoDB BSON


Возвращает Legacy Extended JSON представление значения BSON

  • « MongoDB\BSON\toCanonicalExtendedJSON
  • MongoDB\BSON\toPHP »
  • PHP Manual
  • Функции
  • Возвращает Legacy Extended JSON представление значения BSON

MongoDB\BSON\toJSON

(mongodb >=1.0.0)

MongoDB\BSON\toJSON — Возвращает Legacy Extended JSON представление значения BSON

Описание

MongoDB\BSON\toJSON ( string $bson ) : string

Преобразует строку BSON в ее » Legacy Extended JSON представление.

Замечание: Существует несколько форматов JSON для представления BSON. Эта функция реализует "строгий режим", определенный в » MongoDB Extended JSON, который был заменен каноническими и упрощенными форматами, определенными в » Спецификации Extended JSON и реализованными MongoDB\BSON\toCanonicalExtendedJSON() и MongoDB\BSON\toRelaxedExtendedJSON() соответственно.

Внимание

» JSON не поддерживает NAN и INF, а формат Legacy Extended JSON MongoDB не определяет альтернативное представление для этих значений (» libbson будет выводить литералы nan и inf, которые могут не распознаться, как корректный JSON). Если вы работаете с BSON, который может содержать неконечные числа, используйте MongoDB\BSON\toCanonicalExtendedJSON() или MongoDB\BSON\toRelaxedExtendedJSON().

Список параметров

bson (string)

Значение BSON для преобразования.

Возвращаемые значения

Преобразованное значение JSON.

Ошибки

  • Исключение MongoDB\Driver\Exception\UnexpectedValueException выбрасывается, если входные данные не являются ровно одним документом BSON. Возможные причины включают, но не ограничены некоррекстным BSON, лишними данными или неожиданной ошибкой » libbson.

Примеры

Пример #1 Пример использования MongoDB\BSON\toJSON()

<?php

$documents = [
    [ 'null' => null ],
    [ 'boolean' => true ],
    [ 'string' => 'foo' ],
    [ 'int32' => 123 ],
    [ 'int64' => 4294967295 ],
    [ 'double' => 1.0, ],
    [ 'nan' => NAN ],
    [ 'pos_inf' => INF ],
    [ 'neg_inf' => -INF ],
    [ 'array' => [ 'foo', 'bar' ]],
    [ 'document' => [ 'foo' => 'bar' ]],
    [ 'oid' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1') ],
    [ 'dec128' => new MongoDB\BSON\Decimal128('1234.5678') ],
    [ 'binary' => new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC) ],
    [ 'date' => new MongoDB\BSON\UTCDateTime(1445990400000) ],
    [ 'timestamp' => new MongoDB\BSON\Timestamp(1234, 5678) ],
    [ 'regex' => new MongoDB\BSON\Regex('pattern', 'i') ],
    [ 'code' => new MongoDB\BSON\Javascript('function() { return 1; }') ],
    [ 'code_ws' => new MongoDB\BSON\Javascript('function() { return a; }', ['a' => 1]) ],
    [ 'minkey' => new MongoDB\BSON\MinKey ],
    [ 'maxkey' => new MongoDB\BSON\MaxKey ],
];

foreach ($documents as $document) {
    $bson = MongoDB\BSON\fromPHP($document);
    echo MongoDB\BSON\toJSON($bson), "\n";
}

?>

Результат выполнения данного примера:

{ "null" : null }
{ "boolean" : true }
{ "string" : "foo" }
{ "int32" : 123 }
{ "int64" : 4294967295 }
{ "double" : 1.0 }
{ "nan" : nan }
{ "pos_inf" : inf }
{ "neg_inf" : -inf }
{ "array" : [ "foo", "bar" ] }
{ "document" : { "foo" : "bar" } }
{ "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } }
{ "dec128" : { "$numberDecimal" : "1234.5678" } }
{ "binary" : { "$binary" : "Zm9v", "$type" : "00" } }
{ "date" : { "$date" : 1445990400000 } }
{ "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } }
{ "regex" : { "$regex" : "pattern", "$options" : "i" } }
{ "code" : { "$code" : "function() { return 1; }" } }
{ "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : 1 } } }
{ "minkey" : { "$minKey" : 1 } }
{ "maxkey" : { "$maxKey" : 1 } }

Смотрите также

  • MongoDB\BSON\fromJSON() - Возвращает представление BSON значения JSON
  • MongoDB\BSON\toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON представление для значения BSON
  • MongoDB\BSON\toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление значения BSON
  • » MongoDB Extended JSON
  • » MongoDB BSON


Возвращает PHP представление значения BSON

  • « MongoDB\BSON\toJSON
  • MongoDB\BSON\toRelaxedExtendedJSON »
  • PHP Manual
  • Функции
  • Возвращает PHP представление значения BSON

MongoDB\BSON\toPHP

(mongodb >=1.0.0)

MongoDB\BSON\toPHP — Возвращает PHP представление значения BSON

Описание

MongoDB\BSON\toPHP ( string $bson [, array $typeMap = array() ] ) : array|object

Десериализует документ BSON (т.е. двоичную строку) в его представление PHP. Параметр typeMap может использоваться для управления типами PHP, используемыми для преобразования массивов и документов BSON (как корневых, так и встроенных).

Внимание

Поля, содержащие устаревшие типы BSON (т.е. undefined, symbol, DBPointer), представляются только базовыми объектами классов MongoDB\BSON\Undefined, MongoDB\BSON\Symbol и MongoDB\BSON\DBPointer, при преобразовании BSON в PHP. Эти объекты создаются из данных BSON и используются для хранения этих типов обратно в базу данных, но не могут быть созданы, поскольку они имеют частный конструктор.

Список параметров

bson (string)

Значение BSON для десериализации.

typeMap (array)

Конфигурация карты типов.

Возвращаемые значения

Десериализованное значение PHP.

Ошибки

  • Выдает MongoDB\Driver\Exception\InvalidArgumentException, если класс в карте типов не может быть создан или не реализует MongoDB\BSON\Unserializable.
  • Исключение MongoDB\Driver\Exception\UnexpectedValueException выбрасывается, если входные данные не являются ровно одним документом BSON. Возможные причины включают, но не ограничены некоррекстным BSON, лишними данными или неожиданной ошибкой » libbson.

Список изменений

Версия | Описание
1.4.0 | Если входные данные содержат неподдерживаемый устаревший тип BSON, драйвер больше не будет записывать предупреждение в журнал отладки, а вместо этого создаст объект, представляющий этот тип.
1.3.2 | MongoDB\Driver\Exception\UnexpectedValueException больше не выдается, если входные данные содержат неподдерживаемый, устаревший тип BSON. Такие типы будут игнорироваться (как они были в версиях до 1.3.0), хотя драйвер теперь будет записывать предупреждение в журнал отладки (смотрите: mongodb.debug).
1.3.0 | MongoDB\Driver\Exception\UnexpectedValueException выдается, если входные данные содержат неподдерживаемый, устаревший тип BSON. Ранее такие типы игнорировались.

Примеры

Пример #1 Пример использования MongoDB\BSON\toPHP()

<?php

$bson = hex2bin('0e00000010666f6f000100000000');
$value = MongoDB\BSON\toPHP($bson);
var_dump($value);

?>

Результат выполнения данного примера:

object(stdClass)#1 (1) {
  ["foo"]=>
  int(1)
}

Смотрите также

  • MongoDB\BSON\fromPHP() - Возвращает представление BSON значения PHP
  • » MongoDB BSON
  • Постоянные данные


Возвращает Relaxed Extended JSON представление значения BSON

  • « MongoDB\BSON\toPHP
  • MongoDB\BSON\Binary »
  • PHP Manual
  • Функции
  • Возвращает Relaxed Extended JSON представление значения BSON

MongoDB\BSON\toRelaxedExtendedJSON

(mongodb >=1.3.0)

MongoDB\BSON\toRelaxedExtendedJSON — Возвращает Relaxed Extended JSON представление значения BSON

Описание

MongoDB\BSON\toRelaxedExtendedJSON ( string $bson ) : string

Преобразует строку BSON в ее представление » Relaxed Extended JSON. Расслабленный формат предпочитает использование примитивов типа JSON за счет точности типов и наиболее подходит для получения выходных данных, которые могут быть легко использованы веб API и людьми.

Список параметров

bson (string)

Значение BSON для преобразования.

Возвращаемые значения

Преобразованное значение JSON.

Ошибки

  • Исключение MongoDB\Driver\Exception\UnexpectedValueException выбрасывается, если входные данные не являются ровно одним документом BSON. Возможные причины включают, но не ограничены некоррекстным BSON, лишними данными или неожиданной ошибкой » libbson.

Примеры

Пример #1 Пример использования MongoDB\BSON\toRelaxedExtendedJSON()

<?php

$documents = [
    [ 'null' => null ],
    [ 'boolean' => true ],
    [ 'string' => 'foo' ],
    [ 'int32' => 123 ],
    [ 'int64' => 4294967295 ],
    [ 'double' => 1.0, ],
    [ 'nan' => NAN ],
    [ 'pos_inf' => INF ],
    [ 'neg_inf' => -INF ],
    [ 'array' => [ 'foo', 'bar' ]],
    [ 'document' => [ 'foo' => 'bar' ]],
    [ 'oid' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1') ],
    [ 'dec128' => new MongoDB\BSON\Decimal128('1234.5678') ],
    [ 'binary' => new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC) ],
    [ 'date' => new MongoDB\BSON\UTCDateTime(1445990400000) ],
    [ 'timestamp' => new MongoDB\BSON\Timestamp(1234, 5678) ],
    [ 'regex' => new MongoDB\BSON\Regex('pattern', 'i') ],
    [ 'code' => new MongoDB\BSON\Javascript('function() { return 1; }') ],
    [ 'code_ws' => new MongoDB\BSON\Javascript('function() { return a; }', ['a' => 1]) ],
    [ 'minkey' => new MongoDB\BSON\MinKey ],
    [ 'maxkey' => new MongoDB\BSON\MaxKey ],
];

foreach ($documents as $document) {
    $bson = MongoDB\BSON\fromPHP($document);
    echo MongoDB\BSON\toRelaxedExtendedJSON($bson), "\n";
}

?>

Результат выполнения данного примера:

{ "null" : null }
{ "boolean" : true }
{ "string" : "foo" }
{ "int32" : 123 }
{ "int64" : 4294967295 }
{ "double" : 1.0 }
{ "nan" : { "$numberDouble" : "NaN" } }
{ "pos_inf" : { "$numberDouble" : "Infinity" } }
{ "neg_inf" : { "$numberDouble" : "-Infinity" } }
{ "array" : [ "foo", "bar" ] }
{ "document" : { "foo" : "bar" } }
{ "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } }
{ "dec128" : { "$numberDecimal" : "1234.5678" } }
{ "binary" : { "$binary" : { "base64": "Zm9v", "subType" : "00" } } }
{ "date" : { "$date" : "2015-10-28T00:00:00Z" } }
{ "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } }
{ "regex" : { "$regularExpression" : { "pattern" : "pattern", "options" : "i" } } }
{ "code" : { "$code" : "function() { return 1; }" } }
{ "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : 1 } } }
{ "minkey" : { "$minKey" : 1 } }
{ "maxkey" : { "$maxKey" : 1 } }

Смотрите также

  • MongoDB\BSON\fromJSON() - Возвращает представление BSON значения JSON
  • MongoDB\BSON\toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON представление для значения BSON
  • » Extended JSON
  • » MongoDB BSON


Класс MongoDB\BSON\Binary

(mongodb >=1.0.0)

Введение

Тип BSON для бинарных данных (т.е. массива байт). Бинарные значения также имеют подтип, обозначающий, какой тип данных содержится в массиве байт. Подтипы с нуля до 127 предопределены или зарезервированы. Подтипы с 128-255 задаются пользователем.

Обзор классов

final MongoDB\BSON\Binary implements MongoDB\BSON\BinaryInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Константы */
const integer TYPE_GENERIC = 0 ;
const integer TYPE_FUNCTION = 1 ;
const integer TYPE_OLD_BINARY = 2 ;
const integer TYPE_OLD_UUID = 3 ;
const integer TYPE_UUID = 4 ;
const integer TYPE_MD5 = 5 ;
const integer TYPE_ENCRYPTED = 6 ;
const integer TYPE_USER_DEFINED = 128 ;
/* Методы */
final public __construct ( string $data , int $type )
final public getData ( void ) : string
final public getType ( void ) : int
final public jsonSerialize ( void ) : mixed
final public serialize ( void ) : string
final public __toString ( void ) : string
final public unserialize ( string $serialized ) : void
}

Предопределенные константы

MongoDB\BSON\Binary::TYPE_GENERIC

Бинарные данные

MongoDB\BSON\Binary::TYPE_FUNCTION

Функция

MongoDB\BSON\Binary::TYPE_OLD_BINARY

Бинарные данные (объявлена устаревшей, используйте MongoDB\BSON\Binary::TYPE_GENERIC)

MongoDB\BSON\Binary::TYPE_OLD_UUID

Универсальный уникальный идентификатор (объявлена устаревшей. Используйте MongoDB\BSON\Binary::TYPE_UUID). При использовании этого типа, бинарные данные должны быть длиной 16 байт.

Исторически другие значения кодированные этим типов, но другими драйверами, базируются на других конвенциях (например, разный тип порядка байт), что делает его непереносимым. Драйвер PHP не применяет каких-либо обработок для данных этого типа.

MongoDB\BSON\Binary::TYPE_UUID

Универсальный уникальный идентификатор. При использовании этого типа, бинарные данные должны быть длиной 16 байт » RFC 4122.

MongoDB\BSON\Binary::TYPE_MD5

Хэш MD5. При использовании этого типа, бинарные данные должны быть длиной 16 байт.

MongoDB\BSON\Binary::TYPE_ENCRYPTED

Зашифрованное значение. Этот подтип используется для шифрования на стороне клиента.

MongoDB\BSON\Binary::TYPE_USER_DEFINED

Пользовательсий тип. В то время как типы с 0 по 127 преопределены, либо зарезервированы, типы со 128 по 255 могут использоваться для чего угодно.

Список изменений

Версия | Описание
1.3.0 | Реализует интерфейс MongoDB\BSON\BinaryInterface.
1.2.0 | Реализует интерфейсы Serializable и JsonSerializable.

Содержание

  • MongoDB\BSON\Binary::__construct — Создает новый Binary
  • MongoDB\BSON\Binary::getData — Возвращает данные Binary
  • MongoDB\BSON\Binary::getType — Возвращает тип Binary
  • MongoDB\BSON\Binary::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
  • MongoDB\BSON\Binary::serialize — Сериализует Binary
  • MongoDB\BSON\Binary::__toString — Возвращает данные Binary
  • MongoDB\BSON\Binary::unserialize — Десериализует Binary


Создает новый Binary

  • « MongoDB\BSON\Binary
  • MongoDB\BSON\Binary::getData »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Создает новый Binary

MongoDB\BSON\Binary::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Binary::__construct — Создает новый Binary

Описание

final public MongoDB\BSON\Binary::__construct ( string $data , int $type )

Список параметров

data (string)

Двоичные данные.

type (integer)

8-разрядное целое число, обозначающее тип данных.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выдает MongoDB\Driver\Exception\InvalidArgumentException, если type не является 8-разрядным целым числом.
  • Выдает MongoDB\Driver\Exception\InvalidArgumentException, если type является MongoDB\BSON\Binary::TYPE_UUID или MongoDB\BSON\Binary::TYPE_OLD_UUID, а длина data не равна 16 байтам.

Список изменений

Версия | Описание
1.3.0 | MongoDB\Driver\Exception\InvalidArgumentException выдается, если type является MongoDB\BSON\Binary::TYPE_UUID или MongoDB\BSON\Binary::TYPE_OLD_UUID, а длина data не равна 16 байтам.
1.1.3 | MongoDB\Driver\Exception\InvalidArgumentException выдается, если type не является 8-разрядным целым числом.

Примеры

Пример #1 Пример использования MongoDB\BSON\Binary::__construct()

<?php

$binary = new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC);
var_dump($binary);

?>

Результат выполнения данного примера:

object(MongoDB\BSON\Binary)#1 (2) {
  ["data"]=>
  string(3) "foo"
  ["type"]=>
  int(0)
}

Смотрите также

  • » Типы BSON


Возвращает данные Binary

  • « MongoDB\BSON\Binary::__construct
  • MongoDB\BSON\Binary::getType »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Возвращает данные Binary

MongoDB\BSON\Binary::getData

(mongodb >=1.0.0)

MongoDB\BSON\Binary::getData — Возвращает данные Binary

Описание

final public MongoDB\BSON\Binary::getData ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные Binary.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\BSON\Binary::getData()

<?php

$binary = new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC);
var_dump($binary->getData());

?>

Результат выполнения данного примера:

string(3) "foo"

Смотрите также

  • » Типы BSON


Возвращает тип Binary

  • « MongoDB\BSON\Binary::getData
  • MongoDB\BSON\Binary::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Возвращает тип Binary

MongoDB\BSON\Binary::getType

(mongodb >=1.0.0)

MongoDB\BSON\Binary::getType — Возвращает тип Binary

Описание

final public MongoDB\BSON\Binary::getType ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает тип Binary.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\BSON\Binary::getType()

<?php

$binary = new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC);
var_dump($binary->getType());

?>

Результат выполнения данного примера:

int(0)

Смотрите также

  • » Типы BSON


Возвращает представление, которое можно преобразовать в JSON

  • « MongoDB\BSON\Binary::getType
  • MongoDB\BSON\Binary::serialize »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Возвращает представление, которое можно преобразовать в JSON

MongoDB\BSON\Binary::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Binary::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON

Описание

final public MongoDB\BSON\Binary::jsonSerialize ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные, которые можно сериализовать с помощью json_encode() для создания расширенного JSON-представления MongoDB\BSON\Binary.

Замечание: Вывод соответствует выводу функции MongoDB\BSON\toJSON(), которая использует унаследованный, специфичный для драйвера, расширенный формат JSON. Он не обязательно будет подходить под » relaxed или » canonical представления расширенного JSON, используемых в MongoDB\BSON\toRelaxedExtendedJSON() и MongoDB\BSON\toCanonicalExtendedJSON(), соответственно.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • JsonSerializable::jsonSerialize() - Задает данные, которые должны быть сериализованы в JSON
  • json_encode() - Возвращает JSON-представление данных
  • MongoDB\BSON\toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON представление для значения BSON
  • MongoDB\BSON\toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление значения BSON
  • » MongoDB Extended JSON


Сериализует Binary

  • « MongoDB\BSON\Binary::jsonSerialize
  • MongoDB\BSON\Binary::__toString »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Сериализует Binary

MongoDB\BSON\Binary::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Binary::serialize — Сериализует Binary

Описание

final public MongoDB\BSON\Binary::serialize ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\BSON\Binary.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\Binary::unserialize() - Десериализует Binary
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Возвращает данные Binary

  • « MongoDB\BSON\Binary::serialize
  • MongoDB\BSON\Binary::unserialize »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Возвращает данные Binary

MongoDB\BSON\Binary::__toString

(mongodb >=1.2.0)

MongoDB\BSON\Binary::__toString — Возвращает данные Binary

Описание

final public MongoDB\BSON\Binary::__toString ( void ) : string

Этот метод является псевдонимом: MongoDB\BSON\Binary::getData().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные Binary.

Примеры

Пример #1 Пример использования MongoDB\BSON\Binary::__toString()

<?php

var_dump((string) new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC));

?>

Результат выполнения данного примера:

string(3) "foo"

Смотрите также

  • MongoDB\BSON\Binary::getData() - Возвращает данные Binary
  • » Типы BSON


Десериализует Binary

  • « MongoDB\BSON\Binary::__toString
  • MongoDB\BSON\Decimal128 »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Десериализует Binary

MongoDB\BSON\Binary::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Binary::unserialize — Десериализует Binary

Описание

final public MongoDB\BSON\Binary::unserialize ( string $serialized ) : void

Список параметров

serialized

Сериализованный MongoDB\BSON\Binary.

Возвращаемые значения

Возвращает десериализованный MongoDB\BSON\Binary.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выдает MongoDB\Driver\Exception\UnexpectedValueException, если свойства не могут быть десериализованы (например, serialized был неправильно сформирован).
  • Выдает MongoDB\Driver\Exception\InvalidArgumentException, если свойства недопустимы (например, отсутствуют поля или недопустимые значения).

Смотрите также

  • MongoDB\BSON\Binary::serialize() - Сериализует Binary
  • unserialize() - Создает PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\BSON\Decimal128

(mongodb >=1.2.0)

Введение

Тип BSON для » Decimal128 формата с плавающей запятой, который поддерживает числа до 34 десятичных знаков (то есть значимых цифр) и диапазон экспонент от -6143 до +6144.

В отличие от типа double BSON (то есть float в PHP), который хранит только приблизительные значения десятичных значений, тип данных decimal хранит точное значение. Например, MongoDB\BSON\Decimal128('9.99') имеет точное значение 9ю99, где двойное значение 9ю99 будет иметь приблизительное значение 9.9900000000000002131628....

Замечание: MongoDB\BSON\Decimal128 совместим только с MongoDB 3.4+. При попытке использовать тип BSON с более ранними версиями приведет к ошибке.

Обзор классов

final MongoDB\BSON\Decimal128 implements MongoDB\BSON\Decimal128Interface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Методы */
final public __construct ([ string $value ] )
final public jsonSerialize ( void ) : mixed
final public serialize ( void ) : string
final public __toString ( void ) : string
final public unserialize ( string $serialized ) : void
}

Список изменений

Версия | Описание
1.3.0 | Реализует интерфейс MongoDB\BSON\Decimal128Interface.
1.2.0 | Реализует интерфейсы Serializable и JsonSerializable.

Содержание

  • MongoDB\BSON\Decimal128::__construct — Создает новый Decimal128
  • MongoDB\BSON\Decimal128::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
  • MongoDB\BSON\Decimal128::serialize — Сериализирует Decimal128
  • MongoDB\BSON\Decimal128::__toString — Возвращает строковое представление Decimal128
  • MongoDB\BSON\Decimal128::unserialize — Десериализует Decimal128


Создает новый Decimal128

  • « MongoDB\BSON\Decimal128
  • MongoDB\BSON\Decimal128::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Создает новый Decimal128

MongoDB\BSON\Decimal128::__construct

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::__construct — Создает новый Decimal128

Описание

final public MongoDB\BSON\Decimal128::__construct ([ string $value ] )

Замечание: MongoDB\BSON\Decimal128 совместим только с MongoDB 3.4+. При попытке использовать тип BSON с более ранними версиями приведет к ошибке.

Список параметров

value (string)

Десятичная строка.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выдает исключение MongoDB\Driver\Exception\InvalidArgumentException, если value не является допустимой десятичной строкой.

Примеры

Пример #1 Пример использования MongoDB\BSON\Decimal128::__construct()

<?php

var_dump(new MongoDB\BSON\Decimal128(1234.5678));
var_dump(new MongoDB\BSON\Decimal128(NAN));
var_dump(new MongoDB\BSON\Decimal128(INF));

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoDB\BSON\Decimal128)#1 (1) {
  ["dec"]=>
  string(9) "1234.5678"
}
object(MongoDB\BSON\Decimal128)#1 (1) {
  ["dec"]=>
  string(3) "NaN"
}
object(MongoDB\BSON\Decimal128)#1 (1) {
  ["dec"]=>
  string(8) "Infinity"
}

Смотрите также

  • » Формат с плавающей точкой Decimal128
  • » Типы BSON


Возвращает представление, которое можно преобразовать в JSON

  • « MongoDB\BSON\Decimal128::__construct
  • MongoDB\BSON\Decimal128::serialize »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Возвращает представление, которое можно преобразовать в JSON

MongoDB\BSON\Decimal128::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON

Описание

final public MongoDB\BSON\Decimal128::jsonSerialize ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные, которые могут быть сериализованы json_encode() для создания расширенного JSON-представления MongoDB\BSON\Decimal128.

Замечание: Вывод соответствует выводу функции MongoDB\BSON\toJSON(), которая использует унаследованный, специфичный для драйвера, расширенный формат JSON. Он не обязательно будет подходить под » relaxed или » canonical представления расширенного JSON, используемых в MongoDB\BSON\toRelaxedExtendedJSON() и MongoDB\BSON\toCanonicalExtendedJSON(), соответственно.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • JsonSerializable::jsonSerialize() - Задает данные, которые должны быть сериализованы в JSON
  • json_encode() - Возвращает JSON-представление данных
  • MongoDB\BSON\toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON представление для значения BSON
  • MongoDB\BSON\toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление значения BSON
  • » MongoDB Extended JSON


Сериализирует Decimal128

  • « MongoDB\BSON\Decimal128::jsonSerialize
  • MongoDB\BSON\Decimal128::__toString »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Сериализирует Decimal128

MongoDB\BSON\Decimal128::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::serialize — Сериализирует Decimal128

Описание

final public MongoDB\BSON\Decimal128::serialize ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\BSON\Decimal128.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\Decimal128::unserialize() - Десериализует Decimal128
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Возвращает строковое представление Decimal128

  • « MongoDB\BSON\Decimal128::serialize
  • MongoDB\BSON\Decimal128::unserialize »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Возвращает строковое представление Decimal128

MongoDB\BSON\Decimal128::__toString

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::__toString — Возвращает строковое представление Decimal128

Описание

final public MongoDB\BSON\Decimal128::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление Decimal128.

Примеры

Пример #1 Пример использования MongoDB\BSON\Decimal128::__toString()

<?php

var_dump((string) new MongoDB\BSON\Decimal128(1234.5678));
var_dump((string) new MongoDB\BSON\Decimal128(NAN));
var_dump((string) new MongoDB\BSON\Decimal128(INF));

?>

Результатом выполнения данного примера будет что-то подобное:

string(9) "1234.5678"
string(3) "NaN"
string(8) "Infinity"

Смотрите также

  • » Формат с плавающей точкой Decimal128
  • » Типы BSON


Десериализует Decimal128

  • « MongoDB\BSON\Decimal128::__toString
  • MongoDB\BSON\Javascript »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Десериализует Decimal128

MongoDB\BSON\Decimal128::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::unserialize — Десериализует Decimal128

Описание

final public MongoDB\BSON\Decimal128::unserialize ( string $serialized ) : void

Список параметров

serialized

Cериализованный MongoDB\BSON\Decimal128.

Возвращаемые значения

Возвращает десериализованный MongoDB\BSON\Decimal128.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выдает исключение MongoDB\Driver\Exception\UnexpectedValueException, если свойства не могут быть десериализованы (например, параметр serialized был искажен).
  • Выдает исключение MongoDB\Driver\Exception\InvalidArgumentException, если свойства недействительны (например, отсутствуют поля или недопустимые значения).

Смотрите также

  • MongoDB\BSON\Decimal128::serialize() - Сериализирует Decimal128
  • unserialize() - Создает PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\BSON\Javascript

(mongodb >=1.0.0)

Введение

Тип BSON для кода Javascript. Может быть указан необязательный документ области видимости, который сопоставляет идентификаторы со значениями и определяет область, в которой код должен оцениваться сервером.

Замечание: Этот тип BSON в основном используется при выполнении команд базы данных, которые принимают функцию Javascript в качестве параметра, например » mapReduce.

Обзор классов

final MongoDB\BSON\Javascript implements MongoDB\BSON\JavascriptInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Методы */
final public __construct ( string $code [, array|object $scope ] )
final public getCode ( void ) : string
final public getScope ( void ) : object|null
final public jsonSerialize ( void ) : mixed
final public serialize ( void ) : string
final public __toString ( void ) : string
final public unserialize ( string $serialized ) : void
}

Список изменений

Версия | Описание
1.3.0 | Реализует интерфейс MongoDB\BSON\JavascriptInterface.
1.2.0 | Реализует интерфейсы Serializable и JsonSerializable.

Содержание

  • MongoDB\BSON\Javascript::__construct — Конструктор Javascript
  • MongoDB\BSON\Javascript::getCode — Возвращает код JavaScript
  • MongoDB\BSON\Javascript::getScope — Возвращает область документа JavaScript
  • MongoDB\BSON\Javascript::jsonSerialize — Возвращает представление, которое может быть преобразовано в JSON
  • MongoDB\BSON\Javascript::serialize — Сериализовать JavaScript
  • MongoDB\BSON\Javascript::__toString — Возвращает код JavaScript
  • MongoDB\BSON\Javascript::unserialize — Десериализовать JavaScript


Конструктор Javascript

  • « MongoDB\BSON\Javascript
  • MongoDB\BSON\Javascript::getCode »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Конструктор Javascript

MongoDB\BSON\Javascript::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Javascript::__construct — Конструктор Javascript

Описание

final public MongoDB\BSON\Javascript::__construct ( string $code [, array|object $scope ] )

Список параметров

code (string)

Код Javascript.

scope (array|object)

Контекст Javascript.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Пораждает исключение MongoDB\Driver\Exception\InvalidArgumentException если code содержит null-байты.

Список изменений

Версия | Описание
1.2.0 | Пораждает исключение MongoDB\Driver\Exception\InvalidArgumentException если code содержит null-байты. Ранее, в подобном случае, аргумент обрезался про первому встретившемуся null-байту.

Примеры

Пример #1 Пример использования MongoDB\BSON\Javascript::__construct()

<?php

$code = new MongoDB\BSON\Javascript('function() { return 1; }');
var_dump($code);

$codews = new MongoDB\BSON\Javascript('function() { return foo; }', ['foo' => 'bar']);
var_dump($codews);

?>

Результат выполнения данного примера:

object(MongoDB\BSON\Javascript)#1 (2) {
  ["javascript"]=>
  string(24) "function() { return 1; }"
  ["scope"]=>
  object(stdClass)#2 (0) {
  }
}
object(MongoDB\BSON\Javascript)#2 (2) {
  ["javascript"]=>
  string(26) "function() { return foo; }"
  ["scope"]=>
  object(stdClass)#1 (1) {
    ["foo"]=>
    string(3) "bar"
  }
}

Смотрите также

  • » Типы BSON


Возвращает код JavaScript

  • « MongoDB\BSON\Javascript::__construct
  • MongoDB\BSON\Javascript::getScope »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Возвращает код JavaScript

MongoDB\BSON\Javascript::getCode

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::getCode — Возвращает код JavaScript

Описание

final public MongoDB\BSON\Javascript::getCode ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код JavaScript.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример выполнения MongoDB\BSON\Javascript::getCode()

<?php

$js = new MongoDB\BSON\Javascript('function foo(bar) { return bar; }');
var_dump($js->getCode());

?>

Результат выполнения данного примера:

string(33) "function foo(bar) { return bar; }"

Смотрите также

  • » Типы BSON


Возвращает область документа JavaScript

  • « MongoDB\BSON\Javascript::getCode
  • MongoDB\BSON\Javascript::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Возвращает область документа JavaScript

MongoDB\BSON\Javascript::getScope

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::getScope — Возвращает область документа JavaScript

Описание

final public MongoDB\BSON\Javascript::getScope ( void ) : object|null

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает область документа JavaScript.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример выполнения MongoDB\BSON\Javascript::getScope()

<?php

$js = new MongoDB\BSON\Javascript('function foo(bar) { return bar; }');
var_dump($js->getScope());

$js = new MongoDB\BSON\Javascript('function foo() { return foo; }', ['foo' => 42]);
var_dump($js->getScope());

?>

Результат выполнения данного примера:

NULL
object(stdClass)#1 (1) {
  ["foo"]=>
  int(42)
}

Смотрите также

  • » BSON Types


Возвращает представление, которое может быть преобразовано в JSON

  • « MongoDB\BSON\Javascript::getScope
  • MongoDB\BSON\Javascript::serialize »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Возвращает представление, которое может быть преобразовано в JSON

MongoDB\BSON\Javascript::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::jsonSerialize — Возвращает представление, которое может быть преобразовано в JSON

Описание

final public MongoDB\BSON\Javascript::jsonSerialize ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные, которые могут быть сериализованы json_encode() для создания JSON-представления MongoDB\BSON\Javascript.

Замечание: Вывод соответствует выводу функции MongoDB\BSON\toJSON(), которая использует унаследованный, специфичный для драйвера, расширенный формат JSON. Он не обязательно будет подходить под » relaxed или » canonical представления расширенного JSON, используемых в MongoDB\BSON\toRelaxedExtendedJSON() и MongoDB\BSON\toCanonicalExtendedJSON(), соответственно.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • JsonSerializable::jsonSerialize() - Задает данные, которые должны быть сериализованы в JSON
  • json_encode() - Возвращает JSON-представление данных
  • MongoDB\BSON\toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON представление для значения BSON
  • MongoDB\BSON\toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление значения BSON
  • » Расширенный JSON MongoDB


Сериализовать JavaScript

  • « MongoDB\BSON\Javascript::jsonSerialize
  • MongoDB\BSON\Javascript::__toString »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Сериализовать JavaScript

MongoDB\BSON\Javascript::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::serialize — Сериализовать JavaScript

Описание

final public MongoDB\BSON\Javascript::serialize ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\BSON\Javascript.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\Javascript::unserialize() - Десериализовать JavaScript
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Возвращает код JavaScript

  • « MongoDB\BSON\Javascript::serialize
  • MongoDB\BSON\Javascript::unserialize »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Возвращает код JavaScript

MongoDB\BSON\Javascript::__toString

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::__toString — Возвращает код JavaScript

Описание

final public MongoDB\BSON\Javascript::__toString ( void ) : string

Этот метод является псевдонимом: MongoDB\BSON\Javascript::getCode().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код JavaScript.

Примеры

Пример #1 Пример выполнения MongoDB\BSON\Javascript::__toString()

<?php

var_dump((string) new MongoDB\BSON\Javascript('function foo(bar) { return bar; }'));

?>

Результат выполнения данного примера:

string(33) "function foo(bar) { return bar; }"

Смотрите также

  • MongoDB\BSON\Javascript::getCode() - Возвращает код JavaScript
  • » BSON Types


Десериализовать JavaScript

  • « MongoDB\BSON\Javascript::__toString
  • MongoDB\BSON\MaxKey »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Десериализовать JavaScript

MongoDB\BSON\Javascript::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::unserialize — Десериализовать JavaScript

Описание

final public MongoDB\BSON\Javascript::unserialize ( string $serialized ) : void

Список параметров

serialized

Сериализованный MongoDB\BSON\Javascript.

Возвращаемые значения

Возвращает десериализованный MongoDB\BSON\Javascript.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает MongoDB\Driver\Exception\UnexpectedValueException, если свойства не может быть десериализован (т.е. serialized неверный).
  • Выбрасывает MongoDB\Driver\Exception\InvalidArgumentException, если свойства некорректные (например, отсутствующие поля или неверные неправильные значения).

Смотрите также

  • MongoDB\BSON\Javascript::serialize() - Сериализовать JavaScript
  • unserialize() - Создает PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\BSON\MaxKey

(mongodb >=1.0.0)

Введение

Специальный тип BSON, который сравнивает выше всех других возможных значений элемента BSON.

Замечание: Это внутренний тип MongoDB, используемый для индексации и шардинга.

Обзор классов

final MongoDB\BSON\MaxKey implements MongoDB\BSON\MaxKeyInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Методы */
final public __construct ( void )
final public jsonSerialize ( void ) : mixed
final public serialize ( void ) : string
final public unserialize ( string $serialized ) : void
}

Список изменений

Версия | Описание
1.3.0 | Реализует интерфейс MongoDB\BSON\MaxKeyInterface.
1.2.0 | Реализует интерфейсы Serializable и JsonSerializable.

Содержание

  • MongoDB\BSON\MaxKey::__construct — Конструктор MaxKey
  • MongoDB\BSON\MaxKey::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
  • MongoDB\BSON\MaxKey::serialize — Сериализует MaxKey
  • MongoDB\BSON\MaxKey::unserialize — Десериализует MaxKey


Конструктор MaxKey

  • « MongoDB\BSON\MaxKey
  • MongoDB\BSON\MaxKey::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Конструктор MaxKey

MongoDB\BSON\MaxKey::__construct

(mongodb >=1.0.0)

MongoDB\BSON\MaxKey::__construct — Конструктор MaxKey

Описание

final public MongoDB\BSON\MaxKey::__construct ( void )

Список параметров

У этой функции нет параметров.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\BSON\MaxKey::__construct()

<?php

var_dump(new MongoDB\BSON\MaxKey());

?>

Результат выполнения данного примера:

object(MongoDB\BSON\MaxKey)#1 (0) {
}

Смотрите также

  • » Типы BSON


Возвращает представление, которое можно преобразовать в JSON

  • « MongoDB\BSON\MaxKey::__construct
  • MongoDB\BSON\MaxKey::serialize »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Возвращает представление, которое можно преобразовать в JSON

MongoDB\BSON\MaxKey::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\MaxKey::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON

Описание

final public MongoDB\BSON\MaxKey::jsonSerialize ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные, которые могут быть сериализованы с помощью json_encode() для создания расширенного JSON-представления MongoDB\BSON\MaxKey.

Замечание: Вывод соответствует выводу функции MongoDB\BSON\toJSON(), которая использует унаследованный, специфичный для драйвера, расширенный формат JSON. Он не обязательно будет подходить под » relaxed или » canonical представления расширенного JSON, используемых в MongoDB\BSON\toRelaxedExtendedJSON() и MongoDB\BSON\toCanonicalExtendedJSON(), соответственно.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • JsonSerializable::jsonSerialize() - Задает данные, которые должны быть сериализованы в JSON
  • json_encode() - Возвращает JSON-представление данных
  • MongoDB\BSON\toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON представление для значения BSON
  • MongoDB\BSON\toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление значения BSON
  • » MongoDB Extended JSON


Сериализует MaxKey

  • « MongoDB\BSON\MaxKey::jsonSerialize
  • MongoDB\BSON\MaxKey::unserialize »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Сериализует MaxKey

MongoDB\BSON\MaxKey::serialize

(mongodb >=1.2.0)

MongoDB\BSON\MaxKey::serialize — Сериализует MaxKey

Описание

final public MongoDB\BSON\MaxKey::serialize ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\BSON\MaxKey.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\MaxKey::unserialize() - Десериализует MaxKey
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Десериализует MaxKey

  • « MongoDB\BSON\MaxKey::serialize
  • MongoDB\BSON\MinKey »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Десериализует MaxKey

MongoDB\BSON\MaxKey::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\MaxKey::unserialize — Десериализует MaxKey

Описание

final public MongoDB\BSON\MaxKey::unserialize ( string $serialized ) : void

Список параметров

serialized

Сериализованный MongoDB\BSON\MaxKey.

Возвращаемые значения

Возвращает десериализованный MongoDB\BSON\MaxKey.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\MaxKey::serialize() - Сериализует MaxKey
  • unserialize() - Создает PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\BSON\MinKey

(mongodb >=1.0.0)

Введение

Специальный тип BSON, который сравнивает ниже всех других возможных значений элемента BSON.

Замечание: Это внутренний тип MongoDB, используемый для индексации и шардинга.

Обзор классов

final MongoDB\BSON\MinKey implements MongoDB\BSON\MinKeyInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Методы */
final public __construct ( void )
final public jsonSerialize ( void ) : mixed
final public serialize ( void ) : string
final public unserialize ( string $serialized ) : void
}

Список изменений

Версия | Описание
1.3.0 | Реализует интерфейс MongoDB\BSON\MinKeyInterface.
1.2.0 | Реализует интерфейсы Serializable и JsonSerializable.

Содержание

  • MongoDB\BSON\MinKey::__construct — Конструктор MinKey
  • MongoDB\BSON\MinKey::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
  • MongoDB\BSON\MinKey::serialize — Сериализует MinKey
  • MongoDB\BSON\MinKey::unserialize — Десериализует MinKey


Конструктор MinKey

  • « MongoDB\BSON\MinKey
  • MongoDB\BSON\MinKey::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Конструктор MinKey

MongoDB\BSON\MinKey::__construct

(mongodb >=1.0.0)

MongoDB\BSON\MinKey::__construct — Конструктор MinKey

Описание

final public MongoDB\BSON\MinKey::__construct ( void )

Список параметров

У этой функции нет параметров.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\BSON\MinKey::__construct()

<?php

var_dump(new MongoDB\BSON\MinKey());

?>

Результат выполнения данного примера:

object(MongoDB\BSON\MinKey)#1 (0) {
}

Смотрите также

  • » Типы BSON


Возвращает представление, которое можно преобразовать в JSON

  • « MongoDB\BSON\MinKey::__construct
  • MongoDB\BSON\MinKey::serialize »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Возвращает представление, которое можно преобразовать в JSON

MongoDB\BSON\MinKey::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\MinKey::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON

Описание

final public MongoDB\BSON\MinKey::jsonSerialize ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные, которые могут быть сериализованы с помощью json_encode() для создания расширенного JSON-представления MongoDB\BSON\MinKey.

Замечание: Вывод соответствует выводу функции MongoDB\BSON\toJSON(), которая использует унаследованный, специфичный для драйвера, расширенный формат JSON. Он не обязательно будет подходить под » relaxed или » canonical представления расширенного JSON, используемых в MongoDB\BSON\toRelaxedExtendedJSON() и MongoDB\BSON\toCanonicalExtendedJSON(), соответственно.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • JsonSerializable::jsonSerialize() - Задает данные, которые должны быть сериализованы в JSON
  • json_encode() - Возвращает JSON-представление данных
  • MongoDB\BSON\toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON представление для значения BSON
  • MongoDB\BSON\toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление значения BSON
  • » MongoDB Extended JSON


Сериализует MinKey

  • « MongoDB\BSON\MinKey::jsonSerialize
  • MongoDB\BSON\MinKey::unserialize »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Сериализует MinKey

MongoDB\BSON\MinKey::serialize

(mongodb >=1.2.0)

MongoDB\BSON\MinKey::serialize — Сериализует MinKey

Описание

final public MongoDB\BSON\MinKey::serialize ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\BSON\MinKey.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\MinKey::unserialize() - Десериализует MinKey
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Десериализует MinKey

  • « MongoDB\BSON\MinKey::serialize
  • MongoDB\BSON\ObjectId »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Десериализует MinKey

MongoDB\BSON\MinKey::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\MinKey::unserialize — Десериализует MinKey

Описание

final public MongoDB\BSON\MinKey::unserialize ( string $serialized ) : void

Список параметров

serialized

Сериализованный MongoDB\BSON\MinKey.

Возвращаемые значения

Возвращает десериализованный MongoDB\BSON\MinKey.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\MinKey::serialize() - Сериализует MinKey
  • unserialize() - Создает PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\BSON\ObjectId

(mongodb >=1.0.0)

Введение

Тип BSON для » ObjectId. Значение состоит из 12 байтов, где первые четыре байта являются меткой времени, которая отражает создание ObjectId. В частности, значение состоит из:

  • 4-байтовое значение, представляющее секунды с начала эпохи Unix,
  • 5-байтовое случайное число, уникальное для машины и процесса, и
  • 3-байтовый счетчик, начинающийся со случайного значения.

В MongoDB каждый документ, хранящийся в коллекции, требует уникального поля _id, которое действует как первичный ключ. Если во вставленном документе пропущено поле _id, драйвер автоматически создает ObjectId для поля _id.

Использование ObjectIds для поля _id обеспечивает следующие дополнительные преимущества:

  • Время создания ObjectId можно получить с помощью метода MongoDB\BSON\ObjectId::getTimestamp().
  • Сортировка по полю _id, в котором хранятся значения ObjectId, примерно эквивалентна сортировке по времени создания.

Обзор классов

final MongoDB\BSON\ObjectId implements MongoDB\BSON\ObjectIdInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Методы */
final public __construct ([ string $id ] )
final public getTimestamp ( void ) : int
final public jsonSerialize ( void ) : mixed
final public serialize ( void ) : string
final public __toString ( void ) : string
final public unserialize ( string $serialized ) : void
}

Список изменений

Версия | Описание
1.3.0 | Переименован из MongoDB\BSON\ObjectID в MongoDB\BSON\ObjectId. Реализует интерфейс MongoDB\BSON\ObjectIdInterface.
1.2.0 | Реализует интерфейсы Serializable и JsonSerializable.

Содержание

  • MongoDB\BSON\ObjectId::__construct — Создает новый ObjectId
  • MongoDB\BSON\ObjectId::getTimestamp — Возвращает метку времени ObjectId
  • MongoDB\BSON\ObjectId::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
  • MongoDB\BSON\ObjectId::serialize — Сериализует ObjectId
  • MongoDB\BSON\ObjectId::__toString — Возвращает шестнадцатеричное представление ObjectId
  • MongoDB\BSON\ObjectId::unserialize — Десериализует ObjectId


Создает новый ObjectId

  • « MongoDB\BSON\ObjectId
  • MongoDB\BSON\ObjectId::getTimestamp »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Создает новый ObjectId

MongoDB\BSON\ObjectId::__construct

(mongodb >=1.0.0)

MongoDB\BSON\ObjectId::__construct — Создает новый ObjectId

Описание

final public MongoDB\BSON\ObjectId::__construct ([ string $id ] )

Список параметров

id (string)

24-символьная шестнадцатеричная строка. Если не указано, драйвер сгенерирует ObjectId.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выдает исключение MongoDB\Driver\Exception\InvalidArgumentException если id не является 24-символьной шестнадцатеричной строкой.

Примеры

Пример #1 Пример использования MongoDB\BSON\ObjectId::__construct()

<?php

var_dump(new MongoDB\BSON\ObjectId());

var_dump(new MongoDB\BSON\ObjectId('000000000000000000000001'));

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoDB\BSON\ObjectId)#1 (1) {
  ["oid"]=>
  string(24) "56732d3dda14d81214634921"
}
object(MongoDB\BSON\ObjectId)#1 (1) {
  ["oid"]=>
  string(24) "000000000000000000000001"
}

Смотрите также

  • » Справка по ObjectId
  • » Типы BSON: ObjectId


Возвращает метку времени ObjectId

  • « MongoDB\BSON\ObjectId::__construct
  • MongoDB\BSON\ObjectId::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Возвращает метку времени ObjectId

MongoDB\BSON\ObjectId::getTimestamp

(mongodb >=1.2.0)

MongoDB\BSON\ObjectId::getTimestamp — Возвращает метку времени ObjectId

Описание

final public MongoDB\BSON\ObjectId::getTimestamp ( void ) : int

Компонент метки времени в ObjectId - это его наиболее значимые 32 бита, которые обозначают количество секунд с начала эпохи Unix. Это значение читается, как 32-разрядное целое число без знака с порядком байтов в старшем порядке.

Замечание: Так как целочисленный тип в PHP является знаковым, некоторые значения, полученные с помощью этого метода, могут превратиться в отрицательные целые числа на 32-битных платформах. Для получения строкового представления беззнакового целого можно воспользоваться шаблоном форматирования "%u" функции sprintf().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает метку времени ObjectId.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\BSON\ObjectId::getTimestamp()

<?php

var_dump((new MongoDB\BSON\ObjectId())->getTimestamp());

var_dump((new MongoDB\BSON\ObjectId('0000002a0000000000000000'))->getTimestamp());

?>

Результатом выполнения данного примера будет что-то подобное:

integer(1484854719)
integer(42)

Смотрите также

  • » Справка по ObjectId
  • » Типы BSON: ObjectId


Возвращает представление, которое можно преобразовать в JSON

  • « MongoDB\BSON\ObjectId::getTimestamp
  • MongoDB\BSON\ObjectId::serialize »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Возвращает представление, которое можно преобразовать в JSON

MongoDB\BSON\ObjectId::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\ObjectId::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON

Описание

final public MongoDB\BSON\ObjectId::jsonSerialize ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные, которые могут быть сериализованы с помощью json_encode() для создания расширенного JSON-представления MongoDB\BSON\ObjectId.

Замечание: Вывод соответствует выводу функции MongoDB\BSON\toJSON(), которая использует унаследованный, специфичный для драйвера, расширенный формат JSON. Он не обязательно будет подходить под » relaxed или » canonical представления расширенного JSON, используемых в MongoDB\BSON\toRelaxedExtendedJSON() и MongoDB\BSON\toCanonicalExtendedJSON(), соответственно.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • JsonSerializable::jsonSerialize() - Задает данные, которые должны быть сериализованы в JSON
  • json_encode() - Возвращает JSON-представление данных
  • MongoDB\BSON\toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON представление для значения BSON
  • MongoDB\BSON\toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление значения BSON
  • » MongoDB Extended JSON


Сериализует ObjectId

  • « MongoDB\BSON\ObjectId::jsonSerialize
  • MongoDB\BSON\ObjectId::__toString »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Сериализует ObjectId

MongoDB\BSON\ObjectId::serialize

(mongodb >=1.2.0)

MongoDB\BSON\ObjectId::serialize — Сериализует ObjectId

Описание

final public MongoDB\BSON\ObjectId::serialize ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\BSON\ObjectId.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\ObjectId::unserialize() - Десериализует ObjectId
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Возвращает шестнадцатеричное представление ObjectId

  • « MongoDB\BSON\ObjectId::serialize
  • MongoDB\BSON\ObjectId::unserialize »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Возвращает шестнадцатеричное представление ObjectId

MongoDB\BSON\ObjectId::__toString

(mongodb >=1.0.0)

MongoDB\BSON\ObjectId::__toString — Возвращает шестнадцатеричное представление ObjectId

Описание

final public MongoDB\BSON\ObjectId::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает шестнадцатеричное представление ObjectId.

Примеры

Пример #1 Пример использования MongoDB\BSON\ObjectId::__toString()

<?php

var_dump((string) new MongoDB\BSON\ObjectId());
var_dump((string) new MongoDB\BSON\ObjectId('000000000000000000000001'));

?>

Результатом выполнения данного примера будет что-то подобное:

string(24) "56731b49da14d8747d701211"
string(24) "000000000000000000000001"

Смотрите также

  • » Справка по ObjectId
  • » Типы BSON: ObjectId


Десериализует ObjectId

  • « MongoDB\BSON\ObjectId::__toString
  • MongoDB\BSON\Regex »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Десериализует ObjectId

MongoDB\BSON\ObjectId::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\ObjectId::unserialize — Десериализует ObjectId

Описание

final public MongoDB\BSON\ObjectId::unserialize ( string $serialized ) : void

Список параметров

serialized

Сериализованный MongoDB\BSON\ObjectId.

Возвращаемые значения

Возвращает десериализованный MongoDB\BSON\ObjectId.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выдает исключение MongoDB\Driver\Exception\UnexpectedValueException, если свойства не могут быть десериализованы (например, serialized был неправильно сформирован).
  • Выдает исключение MongoDB\Driver\Exception\InvalidArgumentException, если свойства недействительны (например, отсутствуют поля или недопустимые значения).

Смотрите также

  • MongoDB\BSON\ObjectId::serialize() - Сериализует ObjectId
  • unserialize() - Создает PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\BSON\Regex

(mongodb >=1.0.0)

Введение

Тип BSON для шаблона регулярного выражения и дополнительные » флаги.

Замечание: Этот тип BSON в основном используется при запросах к базе данных. В качестве альтернативы можно использовать оператор запроса » $regex.

Обзор классов

final MongoDB\BSON\Regex implements MongoDB\BSON\RegexInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Методы */
final public __construct ( string $pattern [, string $flags = "" ] )
final public getFlags ( void ) : string
final public getPattern ( void ) : string
final public jsonSerialize ( void ) : mixed
final public serialize ( void ) : string
final public __toString ( void ) : string
final public unserialize ( string $serialized ) : void
}

Список изменений

Версия | Описание
1.3.0 | Реализует интерфейс MongoDB\BSON\RegexInterface.
1.2.0 | Реализует интерфейсы Serializable и JsonSerializable.

Содержание

  • MongoDB\BSON\Regex::__construct — Создает новый Regex
  • MongoDB\BSON\Regex::getFlags — Возвращает флаги Regex
  • MongoDB\BSON\Regex::getPattern — Возвращает шаблон Regex
  • MongoDB\BSON\Regex::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
  • MongoDB\BSON\Regex::serialize — Сериализует Regex
  • MongoDB\BSON\Regex::__toString — Возвращает строковое представление Regex
  • MongoDB\BSON\Regex::unserialize — Десериализует Regex


Создает новый Regex

  • « MongoDB\BSON\Regex
  • MongoDB\BSON\Regex::getFlags »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Создает новый Regex

MongoDB\BSON\Regex::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Regex::__construct — Создает новый Regex

Описание

final public MongoDB\BSON\Regex::__construct ( string $pattern [, string $flags = "" ] )

Список параметров

pattern (string)

Шаблон регулярного выражения.

Замечание: Шаблон не должен быть заключен в символы-разделители.

flags (string)

» Флаги регулярных выражений. Символы в этом аргументе будут отсортированы в алфавитном порядке.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выдает MongoDB\Driver\Exception\InvalidArgumentException, если pattern или flags содержат нулевые байты.

Список изменений

Версия Описание
1.2.0

Аргумент flags является необязательным и по умолчанию равен пустой строке.

Символы в аргументе flags будут отсортированы в алфавитном порядке при построении регулярного выражения. Ранее символы хранились в указанном порядке.

Выдается MongoDB\Driver\Exception\InvalidArgumentException, если pattern или flags содержат нулевые байты. Ранее значения были бы обрезаны в первом нулевом байте.

Примеры

Пример #1 Пример использования MongoDB\BSON\Regex::__construct()

<?php

$regex = new MongoDB\BSON\Regex('^foo', 'i');
var_dump($regex);

?>

Результат выполнения данного примера:

object(MongoDB\BSON\Regex)#1 (2) {
  ["pattern"]=>
  string(4) "^foo"
  ["flags"]=>
  string(1) "i"
}

Смотрите также

  • » Типы BSON
  • » Поддерживаемые флаги регулярных выражений


Возвращает флаги Regex

  • « MongoDB\BSON\Regex::__construct
  • MongoDB\BSON\Regex::getPattern »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Возвращает флаги Regex

MongoDB\BSON\Regex::getFlags

(mongodb >=1.0.0)

MongoDB\BSON\Regex::getFlags — Возвращает флаги Regex

Описание

final public MongoDB\BSON\Regex::getFlags ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает флаги Regex.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\BSON\Regex::getFlags()

<?php

$regex = new MongoDB\BSON\Regex('regex', 'i');
var_dump($regex->getFlags());

?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "i"

Смотрите также

  • » Типы BSON
  • » Поддерживаемые флаги регулярных выражений


Возвращает шаблон Regex

  • « MongoDB\BSON\Regex::getFlags
  • MongoDB\BSON\Regex::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Возвращает шаблон Regex

MongoDB\BSON\Regex::getPattern

(mongodb >=1.0.0)

MongoDB\BSON\Regex::getPattern — Возвращает шаблон Regex

Описание

final public MongoDB\BSON\Regex::getPattern ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает шаблон Regex.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\BSON\Regex::getPattern()

<?php

$regex = new MongoDB\BSON\Regex('regex', 'i');
var_dump($regex->getPattern());

?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "regex"

Смотрите также

  • » Типы BSON


Возвращает представление, которое можно преобразовать в JSON

  • « MongoDB\BSON\Regex::getPattern
  • MongoDB\BSON\Regex::serialize »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Возвращает представление, которое можно преобразовать в JSON

MongoDB\BSON\Regex::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Regex::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON

Описание

final public MongoDB\BSON\Regex::jsonSerialize ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные, которые могут быть сериализованы с помощью json_encode() для создания расширенного JSON-представления MongoDB\BSON\Regex.

Замечание: Вывод соответствует выводу функции MongoDB\BSON\toJSON(), которая использует унаследованный, специфичный для драйвера, расширенный формат JSON. Он не обязательно будет подходить под » relaxed или » canonical представления расширенного JSON, используемых в MongoDB\BSON\toRelaxedExtendedJSON() и MongoDB\BSON\toCanonicalExtendedJSON(), соответственно.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • JsonSerializable::jsonSerialize() - Задает данные, которые должны быть сериализованы в JSON
  • json_encode() - Возвращает JSON-представление данных
  • MongoDB\BSON\toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON представление для значения BSON
  • MongoDB\BSON\toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление значения BSON
  • » MongoDB Extended JSON


Сериализует Regex

  • « MongoDB\BSON\Regex::jsonSerialize
  • MongoDB\BSON\Regex::__toString »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Сериализует Regex

MongoDB\BSON\Regex::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Regex::serialize — Сериализует Regex

Описание

final public MongoDB\BSON\Regex::serialize ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\BSON\Regex.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\Regex::unserialize() - Десериализует Regex
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Возвращает строковое представление Regex

  • « MongoDB\BSON\Regex::serialize
  • MongoDB\BSON\Regex::unserialize »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Возвращает строковое представление Regex

MongoDB\BSON\Regex::__toString

(mongodb >=1.0.0)

MongoDB\BSON\Regex::__toString — Возвращает строковое представление Regex

Описание

final public MongoDB\BSON\Regex::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление Regex.

Примеры

Пример #1 Пример использования MongoDB\BSON\Regex::__toString()

<?php

$regex = new MongoDB\BSON\Regex('regex', 'i');
var_dump((string) $regex);

?>

Результат выполнения данного примера:

string(8) "/regex/i"

Смотрите также

  • » Типы BSON


Десериализует Regex

  • « MongoDB\BSON\Regex::__toString
  • MongoDB\BSON\Timestamp »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Десериализует Regex

MongoDB\BSON\Regex::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Regex::unserialize — Десериализует Regex

Описание

final public MongoDB\BSON\Regex::unserialize ( string $serialized ) : void

Список параметров

serialized

Сериализованный MongoDB\BSON\Regex.

Возвращаемые значения

Возвращает десериализованный MongoDB\BSON\Regex.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выдает MongoDB\Driver\Exception\UnexpectedValueException, если свойства не могут быть не сериализованы (например, serialized был неправильно сформирован).
  • Выдает MongoDB\Driver\Exception\InvalidArgumentException, если свойства недопустимы (например, отсутствуют поля или недопустимые значения).

Смотрите также

  • MongoDB\BSON\Regex::serialize() - Сериализует Regex
  • unserialize() - Создает PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\BSON\Timestamp

(mongodb >=1.0.0)

Введение

Представляет » метку времени BSON. Значение состоит из 4-байтовой метки времени (т.е. секунды с начала эпохи) и 4-байтового приращения.

Замечание: Это внутренний тип MongoDB, используемый для репликации и разделения. Он не предназначен для общего хранения дат (вместо него следует использовать MongoDB\BSON\UTCDateTime).

Обзор классов

final MongoDB\BSON\Timestamp implements MongoDB\BSON\TimestampInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Методы */
final public __construct ( int $increment , int $timestamp )
final public getIncrement ( void ) : int
final public getTimestamp ( void ) : int
final public jsonSerialize ( void ) : mixed
final public serialize ( void ) : string
final public __toString ( void ) : string
final public unserialize ( string $serialized ) : void
}

Список изменений

Версия | Описание
1.3.0 | Реализует интерфейс MongoDB\BSON\TimestampInterface.
1.2.0 | Реализует интерфейсы Serializable и JsonSerializable.

Содержание

  • MongoDB\BSON\Timestamp::__construct — Создает новый Timestamp
  • MongoDB\BSON\Timestamp::getIncrement — Возвращает компонент приращения Timestamp
  • MongoDB\BSON\Timestamp::getTimestamp — Возвращает компонент отметки времени Timestamp
  • MongoDB\BSON\Timestamp::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
  • MongoDB\BSON\Timestamp::serialize — Сериализует Timestamp
  • MongoDB\BSON\Timestamp::__toString — Возвращает строковое представление Timestamp
  • MongoDB\BSON\Timestamp::unserialize — Десериализует Timestamp


Создает новый Timestamp

  • « MongoDB\BSON\Timestamp
  • MongoDB\BSON\Timestamp::getIncrement »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Создает новый Timestamp

MongoDB\BSON\Timestamp::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Timestamp::__construct — Создает новый Timestamp

Описание

final public MongoDB\BSON\Timestamp::__construct ( int $increment , int $timestamp )

Список параметров

increment (integer)

32-разрядное целое число, обозначающее увеличивающийся порядковый номер для операций в течение данной секунды.

timestamp (integer)

32-разрядное целое число, обозначающее секунды с начала эпохи Unix.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\BSON\Timestamp::__construct()

<?php

$timestamp = new MongoDB\BSON\Timestamp(1234, 5678);

?>

Результат выполнения данного примера:

object(MongoDB\BSON\Timestamp)#1 (2) {
  ["increment"]=>
  int(1234)
  ["timestamp"]=>
  int(5678)
}

Смотрите также

  • » Типы BSON: Timestamps


Возвращает компонент приращения Timestamp

  • « MongoDB\BSON\Timestamp::__construct
  • MongoDB\BSON\Timestamp::getTimestamp »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Возвращает компонент приращения Timestamp

MongoDB\BSON\Timestamp::getIncrement

(mongodb >=1.3.0)

MongoDB\BSON\Timestamp::getIncrement — Возвращает компонент приращения Timestamp

Описание

final public MongoDB\BSON\Timestamp::getIncrement ( void ) : int

Компонент приращения Timestamp - это его младшие 32 бита, которые обозначают порядковый номер приращения для операций в течение данной секунды. Это значение читается как 32-разрядное целое число без знака с порядком байтов в старшем порядке.

Замечание: Так как целочисленный тип в PHP является знаковым, некоторые значения, полученные с помощью этого метода, могут превратиться в отрицательные целые числа на 32-битных платформах. Для получения строкового представления беззнакового целого можно воспользоваться шаблоном форматирования "%u" функции sprintf().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает компонент приращения Timestamp.

Внимание

В 32-битных системах этот метод может возвращать отрицательное число. Хотя части приращения и отметки времени типа отметки времени BSON состоят из двух 32-разрядных значений без знака, PHP не может представить их на 32-разрядных платформах.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • » Типы BSON: Timestamps


Возвращает компонент отметки времени Timestamp

  • « MongoDB\BSON\Timestamp::getIncrement
  • MongoDB\BSON\Timestamp::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Возвращает компонент отметки времени Timestamp

MongoDB\BSON\Timestamp::getTimestamp

(mongodb >=1.3.0)

MongoDB\BSON\Timestamp::getTimestamp — Возвращает компонент отметки времени Timestamp

Описание

final public MongoDB\BSON\Timestamp::getTimestamp ( void ) : int

Компонент отметки времени Timestamp - это его наиболее значимые 32 бита, которые обозначают количество секунд с начала эпохи Unix. Это значение читается, как 32-разрядное целое число без знака с порядком байтов в старшем порядке.

Замечание: Так как целочисленный тип в PHP является знаковым, некоторые значения, полученные с помощью этого метода, могут превратиться в отрицательные целые числа на 32-битных платформах. Для получения строкового представления беззнакового целого можно воспользоваться шаблоном форматирования "%u" функции sprintf().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает компонент отметки времени Timestamp.

Внимание

В 32-битных системах этот метод может возвращать отрицательное число. Хотя части приращения и отметки времени типа отметки времени BSON состоят из двух 32-разрядных значений без знака, PHP не может представить их на 32-разрядных платформах.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • » Типы BSON: Timestamps


Возвращает представление, которое можно преобразовать в JSON

  • « MongoDB\BSON\Timestamp::getTimestamp
  • MongoDB\BSON\Timestamp::serialize »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Возвращает представление, которое можно преобразовать в JSON

MongoDB\BSON\Timestamp::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Timestamp::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON

Описание

final public MongoDB\BSON\Timestamp::jsonSerialize ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные, которые могут быть сериализованы с помощью json_encode() для создания расширенного JSON-представления MongoDB\BSON\Timestamp.

Замечание: Вывод соответствует выводу функции MongoDB\BSON\toJSON(), которая использует унаследованный, специфичный для драйвера, расширенный формат JSON. Он не обязательно будет подходить под » relaxed или » canonical представления расширенного JSON, используемых в MongoDB\BSON\toRelaxedExtendedJSON() и MongoDB\BSON\toCanonicalExtendedJSON(), соответственно.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • JsonSerializable::jsonSerialize() - Задает данные, которые должны быть сериализованы в JSON
  • json_encode() - Возвращает JSON-представление данных
  • MongoDB\BSON\toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON представление для значения BSON
  • MongoDB\BSON\toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление значения BSON
  • » MongoDB Extended JSON


Сериализует Timestamp

  • « MongoDB\BSON\Timestamp::jsonSerialize
  • MongoDB\BSON\Timestamp::__toString »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Сериализует Timestamp

MongoDB\BSON\Timestamp::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Timestamp::serialize — Сериализует Timestamp

Описание

final public MongoDB\BSON\Timestamp::serialize ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\BSON\Timestamp.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\Timestamp::unserialize() - Десериализует Timestamp
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Возвращает строковое представление Timestamp

  • « MongoDB\BSON\Timestamp::serialize
  • MongoDB\BSON\Timestamp::unserialize »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Возвращает строковое представление Timestamp

MongoDB\BSON\Timestamp::__toString

(mongodb >=1.0.0)

MongoDB\BSON\Timestamp::__toString — Возвращает строковое представление Timestamp

Описание

final public MongoDB\BSON\Timestamp::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление Timestamp.

Примеры

Пример #1 Пример использования MongoDB\BSON\Timestamp::__toString()

<?php

$timestamp = new MongoDB\BSON\Timestamp(1234, 5678);
var_dump((string) $timestamp);

?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "[1234:5678]"

Смотрите также

  • » Типы BSON: Timestamps


Десериализует Timestamp

  • « MongoDB\BSON\Timestamp::__toString
  • MongoDB\BSON\UTCDateTime »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Десериализует Timestamp

MongoDB\BSON\Timestamp::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Timestamp::unserialize — Десериализует Timestamp

Описание

final public MongoDB\BSON\Timestamp::unserialize ( string $serialized ) : void

Список параметров

serialized

Сериализованный MongoDB\BSON\Timestamp.

Возвращаемые значения

Возвращает десериализованный MongoDB\BSON\Timestamp.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выдает MongoDB\Driver\Exception\UnexpectedValueException, если свойства не могут быть не сериализованы (например, serialized был неправильно сформирован).
  • Выдает MongoDB\Driver\Exception\InvalidArgumentException, если свойства недопустимы (например, отсутствуют поля или недопустимые значения).

Смотрите также

  • MongoDB\BSON\Timestamp::serialize() - Сериализует Timestamp
  • unserialize() - Создает PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\BSON\UTCDateTime

(mongodb >=1.0.0)

Введение

Представляет » дату BSON. Значение представляет собой 64-разрядное целое число, представляющее количество миллисекунд с начала эпохи Unix (1 января 1970 г.). Отрицательные значения представляют даты до 1970 года.

Обзор классов

final MongoDB\BSON\UTCDateTime implements MongoDB\BSON\UTCDateTimeInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Методы */
final public __construct ([ integer|float|string|DateTimeInterface $milliseconds = NULL ] )
final public jsonSerialize ( void ) : mixed
final public serialize ( void ) : string
final public toDateTime ( void ) : DateTime
final public __toString ( void ) : string
final public unserialize ( string $serialized ) : void
}

Список изменений

Версия | Описание
1.3.0 | Реализует интерфейс MongoDB\BSON\UTCDateTimeInterface.
1.2.0 | Реализует интерфейсы Serializable и JsonSerializable.

Содержание

  • MongoDB\BSON\UTCDateTime::__construct — Создает новый UTCDateTime
  • MongoDB\BSON\UTCDateTime::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
  • MongoDB\BSON\UTCDateTime::serialize — Сериализует UTCDateTime
  • MongoDB\BSON\UTCDateTime::toDateTime — Возвращает представление DateTime этого UTCDateTime
  • MongoDB\BSON\UTCDateTime::__toString — Возвращает строковое представление UTCDateTime
  • MongoDB\BSON\UTCDateTime::unserialize — Десериализует UTCDateTime


Создает новый UTCDateTime

  • « MongoDB\BSON\UTCDateTime
  • MongoDB\BSON\UTCDateTime::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Создает новый UTCDateTime

MongoDB\BSON\UTCDateTime::__construct

(mongodb >=1.0.0)

MongoDB\BSON\UTCDateTime::__construct — Создает новый UTCDateTime

Описание

final public MongoDB\BSON\UTCDateTime::__construct ([ integer|float|string|DateTimeInterface $milliseconds = NULL ] )

Список параметров

milliseconds (integer|float|string|DateTimeInterface)

Количество миллисекунд со времен Unix (1 января 1970 г.). Отрицательные значения представляют даты до 1970 года. Это значение может быть представлено как 64-разрядный integer. Для совместимости в 32-битных системах этот параметр также может быть представлен, как float или string.

Если аргумент является DateTimeInterface, из этого значения будет получено количество миллисекунд, прошедших с начала эпохи Unix. Обратите внимание, что в версиях PHP до 7.1.0 объекты DateTime и DateTimeImmutable, построенные по текущему времени, не включают в себя точность менее секунды.

Если этот аргумент равен NULL, будет использоваться текущее время по умолчанию.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
1.2.0 | Аргумент milliseconds является необязательным и по умолчанию равен NULL (т.е. текущее время). Аргумент также принимает DateTimeInterface, который может использоваться для получения количества миллисекунд с начала эпохи Unix. Ранее принимался только тип integer, float или string.

Примеры

Пример #1 Пример использования MongoDB\BSON\UTCDateTime::__construct()

<?php

var_dump(new MongoDB\BSON\UTCDateTime);

var_dump(new MongoDB\BSON\UTCDateTime(new DateTime));

var_dump(new MongoDB\BSON\UTCDateTime(1416445411987));

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoDB\BSON\UTCDateTime)#1 (1) {
  ["milliseconds"]=>
  string(13) "1484852905560"
}
object(MongoDB\BSON\UTCDateTime)#1 (1) {
  ["milliseconds"]=>
  string(13) "1484852905560"
}
object(MongoDB\BSON\UTCDateTime)#1 (1) {
  ["milliseconds"]=>
  string(13) "1416445411987"
}

Смотрите также

  • » Типы BSON: Date


Возвращает представление, которое можно преобразовать в JSON

  • « MongoDB\BSON\UTCDateTime::__construct
  • MongoDB\BSON\UTCDateTime::serialize »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Возвращает представление, которое можно преобразовать в JSON

MongoDB\BSON\UTCDateTime::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\UTCDateTime::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON

Описание

final public MongoDB\BSON\UTCDateTime::jsonSerialize ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные, которые могут быть сериализованы с помощью json_encode() для создания расширенного JSON-представления MongoDB\BSON\UTCDateTime.

Замечание: Вывод соответствует выводу функции MongoDB\BSON\toJSON(), которая использует унаследованный, специфичный для драйвера, расширенный формат JSON. Он не обязательно будет подходить под » relaxed или » canonical представления расширенного JSON, используемых в MongoDB\BSON\toRelaxedExtendedJSON() и MongoDB\BSON\toCanonicalExtendedJSON(), соответственно.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • JsonSerializable::jsonSerialize() - Задает данные, которые должны быть сериализованы в JSON
  • json_encode() - Возвращает JSON-представление данных
  • MongoDB\BSON\toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON представление для значения BSON
  • MongoDB\BSON\toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление значения BSON
  • » MongoDB Extended JSON


Сериализует UTCDateTime

  • « MongoDB\BSON\UTCDateTime::jsonSerialize
  • MongoDB\BSON\UTCDateTime::toDateTime »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Сериализует UTCDateTime

MongoDB\BSON\UTCDateTime::serialize

(mongodb >=1.2.0)

MongoDB\BSON\UTCDateTime::serialize — Сериализует UTCDateTime

Описание

final public MongoDB\BSON\UTCDateTime::serialize ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\BSON\UTCDateTime.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\UTCDateTime::unserialize() - Десериализует UTCDateTime
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Возвращает представление DateTime этого UTCDateTime

  • « MongoDB\BSON\UTCDateTime::serialize
  • MongoDB\BSON\UTCDateTime::__toString »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Возвращает представление DateTime этого UTCDateTime

MongoDB\BSON\UTCDateTime::toDateTime

(mongodb >=1.0.0)

MongoDB\BSON\UTCDateTime::toDateTime — Возвращает представление DateTime этого UTCDateTime

Описание

final public MongoDB\BSON\UTCDateTime::toDateTime ( void ) : DateTime

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает представление DateTime этого UTCDateTime. Возвращенный DateTime будет использовать часовой пояс UTC.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\BSON\UTCDatetime::toDateTime()

<?php

$utcdatetime = new MongoDB\BSON\UTCDateTime(1416445411987);
$datetime = $utcdatetime->toDateTime();
var_dump($datetime->format('r'));
var_dump($datetime->format('U.u'));
var_dump($datetime->getTimezone());

?>

Результатом выполнения данного примера будет что-то подобное:

string(31) "Thu, 20 Nov 2014 01:03:31 +0000"
string(17) "1416445411.987000"
object(DateTimeZone)#3 (2) {
  ["timezone_type"]=>
  int(1)
  ["timezone"]=>
  string(6) "+00:00"
}

Смотрите также

  • » Типы BSON: Date


Возвращает строковое представление UTCDateTime

  • « MongoDB\BSON\UTCDateTime::toDateTime
  • MongoDB\BSON\UTCDateTime::unserialize »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Возвращает строковое представление UTCDateTime

MongoDB\BSON\UTCDateTime::__toString

(mongodb >=1.0.0)

MongoDB\BSON\UTCDateTime::__toString — Возвращает строковое представление UTCDateTime

Описание

final public MongoDB\BSON\UTCDateTime::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление UTCDateTime.

Примеры

Пример #1 Пример использования MongoDB\BSON\UTCDateTime::__toString()

<?php

$utcdatetime = new MongoDB\BSON\UTCDateTime(1416445411987);
var_dump((string) $utcdatetime);

?>

Результат выполнения данного примера:

string(13) "1416445411987"

Смотрите также

  • » Типы BSON: Date


Десериализует UTCDateTime

  • « MongoDB\BSON\UTCDateTime::__toString
  • MongoDB\BSON\Type »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Десериализует UTCDateTime

MongoDB\BSON\UTCDateTime::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\UTCDateTime::unserialize — Десериализует UTCDateTime

Описание

final public MongoDB\BSON\UTCDateTime::unserialize ( string $serialized ) : void

Список параметров

serialized

Сериализованный MongoDB\BSON\UTCDateTime.

Возвращаемые значения

Возвращает десериализованный MongoDB\BSON\UTCDateTime.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выдает MongoDB\Driver\Exception\UnexpectedValueException, если свойства не могут быть не сериализованы (например, serialized был неправильно сформирован).
  • Выдает MongoDB\Driver\Exception\InvalidArgumentException, если свойства недопустимы (например, отсутствуют поля или недопустимые значения).

Смотрите также

  • MongoDB\BSON\UTCDateTime::serialize() - Сериализует UTCDateTime
  • unserialize() - Создает PHP-значение из хранимого представления
  • Сериализация объектов


Интерфейс MongoDB\BSON\Type

(mongodb >=1.0.0)

Введение

Абстрактный базовый интерфейс, который не должен быть реализован напрямую.

Обзор интерфейсов

MongoDB\BSON\Type {
}

Этот интерфейс не имеет методов. Его единственное назначение - быть базовым интерфейсом для всех классов типов BSON.


Интерфейс MongoDB\BSON\Persistable

(mongodb >=1.0.0)

Введение

Классы могут реализовывать этот интерфейс для использования преимуществ автоматического ODM (сопоставление документов объекта) поведения в драйвере. Во время сериализации драйвер вставляет свойство __pclass, содержащее имя класса PHP, в данные, возвращаемые MongoDB\BSON\Serializable::bsonSerialize(). Во время десериализации то же свойство __pclass будет использоваться для вывода класса PHP (независимого от любой конфигурации типа карты), которая должна быть создана до вызова MongoDB\BSON\Unserializable::bsonUnserialize(). Смотрите Постоянные данные для получения дополнительной информации.

Замечание: Даже если MongoDB\BSON\Serializable::bsonSerialize() вернет последовательный массив, внедрение свойства __pclass приведет к сериализации объекта, как документа BSON.

Обзор интерфейсов

MongoDB\BSON\Persistable implements MongoDB\BSON\Unserializable , MongoDB\BSON\Serializable {
/* Наследуемые методы */
abstract public MongoDB\BSON\Serializable::bsonSerialize ( void ) : array|object
abstract public MongoDB\BSON\Unserializable::bsonUnserialize ( array $data ) : void
}


Интерфейс MongoDB\BSON\Serializable

(mongodb >=1.0.0)

Введение

Классы, которые реализуют этот интерфейс, могут возвращать данные для сериализации в виде массива BSON или документа вместо открытых свойств объекта.

Обзор интерфейсов

MongoDB\BSON\Serializable implements MongoDB\BSON\Type {
/* Методы */
abstract public bsonSerialize ( void ) : array|object
}

Содержание

  • MongoDB\BSON\Serializable::bsonSerialize — Предоставляет массив или документ для сериализации в BSON


Предоставляет массив или документ для сериализации в BSON

  • « MongoDB\BSON\Serializable
  • MongoDB\BSON\Unserializable »
  • PHP Manual
  • MongoDB\BSON\Serializable
  • Предоставляет массив или документ для сериализации в BSON

MongoDB\BSON\Serializable::bsonSerialize

(mongodb >=1.0.0)

MongoDB\BSON\Serializable::bsonSerialize — Предоставляет массив или документ для сериализации в BSON

Описание

abstract public MongoDB\BSON\Serializable::bsonSerialize ( void ) : array|object

Вызывается во время сериализации объекта в BSON. Метод должен возвращать array или stdClass.

Корневые документы (например, MongoDB\BSON\Serializable, переданные в MongoDB\BSON\fromPHP()) всегда будут сериализованы, как документ BSON. Для значений полей ассоциативные массивы и экземпляры stdClass будут сериализованы в виде документа BSON, а последовательные массивы (например, последовательные числовые индексы, начинающиеся с 0) будут сериализованы в виде массива BSON.

Пользователям рекомендуется включать свойство _id (например, MongoDB\BSON\ObjectId, инициализированный в вашем конструкторе) при возврате данных для корневого документа BSON; в противном случае драйвер или база данных должны будут сгенерировать MongoDB\BSON\ObjectId при вставке или слиянии документа, соответственно.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

array или stdClass для сериализации в виде массива или документа BSON.

Примеры

Пример #1 MongoDB\BSON\Serializable::bsonSerialize() возвращение ассоциативного массива для корневого документа

<?php

class MyDocument implements MongoDB\BSON\Serializable
{
    private $id;

    function __construct()
    {
        $this->id = new MongoDB\BSON\ObjectId;
    }

    function bsonSerialize()
    {
        return ['_id' => $this->id, 'foo' => 'bar'];
    }
}

$bson = MongoDB\BSON\fromPHP(new MyDocument);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

Результатом выполнения данного примера будет что-то подобное:

{ "_id" : { "$oid" : "56cccdcada14d8755a58c591" }, "foo" : "bar" }

Пример #2 MongoDB\BSON\Serializable::bsonSerialize() возвращение последовательного массива для корневого документа

<?php

class MyArray implements MongoDB\BSON\Serializable
{
    function bsonSerialize()
    {
        return [1, 2, 3];
    }
}

$bson = MongoDB\BSON\fromPHP(new MyArray);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

Результат выполнения данного примера:

{ "0" : 1, "1" : 2, "2" : 3 }

Пример #3 MongoDB\BSON\Serializable::bsonSerialize() возвращение ассоциативного массива для поля документа

<?php

class MyDocument implements MongoDB\BSON\Serializable
{
    function bsonSerialize()
    {
        return ['foo' => 'bar'];
    }
}

$value = ['document' => new MyDocument];
$bson = MongoDB\BSON\fromPHP($value);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

Результат выполнения данного примера:

{ "document" : { "foo" : "bar" } }

Пример #4 MongoDB\BSON\Serializable::bsonSerialize() возвращение последовательного массива для поля документа

<?php

class MyArray implements MongoDB\BSON\Serializable
{
    function bsonSerialize()
    {
        return [1, 2, 3];
    }
}

$value = ['array' => new MyArray];
$bson = MongoDB\BSON\fromPHP($value);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

Результат выполнения данного примера:

{ "array" : [ 1, 2, 3 ] }

Смотрите также

  • MongoDB\BSON\Unserializable::bsonUnserialize() - Создает объект из массива BSON или документа
  • MongoDB\BSON\Persistable
  • Постоянные данные


Интерфейс MongoDB\BSON\Unserializable

(mongodb >=1.0.0)

Введение

Классы, которые реализуют этот интерфейс, могут быть указаны в карте типов для десериализации массивов и документов BSON (как корневых, так и встроенных).

Обзор интерфейсов

MongoDB\BSON\Unserializable {
/* Методы */
abstract public bsonUnserialize ( array $data ) : void
}

Содержание

  • MongoDB\BSON\Unserializable::bsonUnserialize — Создает объект из массива BSON или документа


Создает объект из массива BSON или документа

  • « MongoDB\BSON\Unserializable
  • MongoDB\BSON\BinaryInterface »
  • PHP Manual
  • MongoDB\BSON\Unserializable
  • Создает объект из массива BSON или документа

MongoDB\BSON\Unserializable::bsonUnserialize

(mongodb >=1.0.0)

MongoDB\BSON\Unserializable::bsonUnserialize — Создает объект из массива BSON или документа

Описание

abstract public MongoDB\BSON\Unserializable::bsonUnserialize ( array $data ) : void

Вызывается во время десериализации объекта из BSON. Свойства массива BSON или документа будут переданы в метод в виде массива (array).

Не забудьте проверить свойство _id при обработке данных из документа BSON.

Замечание: Данный метод служит в качестве конструктора объекта Метод __construct() не будет вызываться после этого метода.

Список параметров

data (array)

Свойства в массиве BSON или в документе.

Возвращаемые значения

Возвращаемое значение этого метода игнорируется.

Примеры

Пример #1 Пример использования MongoDB\BSON\Unserializable::bsonUnserialize()

<?php

class MyDocument implements MongoDB\BSON\Unserializable
{
    private $data = [];

    function bsonUnserialize(array $data)
    {
        $this->data = $data;
    }
}

$bson = MongoDB\BSON\fromJSON('{ "foo": "bar" }');
$value = MongoDB\BSON\toPHP($bson, ['root' => 'MyDocument']);
var_dump($value);

?>

Результат выполнения данного примера:

object(MyDocument)#1 (1) {
  ["data":"MyDocument":private]=>
  array(1) {
    ["foo"]=>
    string(3) "bar"
  }
}

Смотрите также

  • MongoDB\BSON\Serializable::bsonSerialize() - Предоставляет массив или документ для сериализации в BSON
  • MongoDB\BSON\Persistable
  • Постоянные данные


Интерфейс MongoDB\BSON\BinaryInterface

(mongodb >=1.3.0)

Введение

Этот интерфейс реализован MongoDB\BSON\Binary, но его также можно использовать для подсказок по типам и классов пользователей.

Обзор классов

MongoDB\BSON\BinaryInterface {
/* Методы */
abstract public getData ( void ) : string
abstract public getType ( void ) : int
abstract public __toString ( void ) : string
}

Содержание

  • MongoDB\BSON\BinaryInterface::getData — Возвращает данные BinaryInterface
  • MongoDB\BSON\BinaryInterface::getType — Возвращает тип BinaryInterface
  • MongoDB\BSON\BinaryInterface::__toString — Возвращает данные BinaryInterface


Возвращает данные BinaryInterface

  • « MongoDB\BSON\BinaryInterface
  • MongoDB\BSON\BinaryInterface::getType »
  • PHP Manual
  • MongoDB\BSON\BinaryInterface
  • Возвращает данные BinaryInterface

MongoDB\BSON\BinaryInterface::getData

(mongodb >=1.3.0)

MongoDB\BSON\BinaryInterface::getData — Возвращает данные BinaryInterface

Описание

abstract public MongoDB\BSON\BinaryInterface::getData ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные BinaryInterface.

Смотрите также

  • MongoDB\BSON\Binary::getData() - Возвращает данные Binary


Возвращает тип BinaryInterface

  • « MongoDB\BSON\BinaryInterface::getData
  • MongoDB\BSON\BinaryInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\BinaryInterface
  • Возвращает тип BinaryInterface

MongoDB\BSON\BinaryInterface::getType

(mongodb >=1.3.0)

MongoDB\BSON\BinaryInterface::getType — Возвращает тип BinaryInterface

Описание

abstract public MongoDB\BSON\BinaryInterface::getType ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает тип BinaryInterface.

Смотрите также

  • MongoDB\BSON\Binary::getType() - Возвращает тип Binary


Возвращает данные BinaryInterface

  • « MongoDB\BSON\BinaryInterface::getType
  • MongoDB\BSON\Decimal128Interface »
  • PHP Manual
  • MongoDB\BSON\BinaryInterface
  • Возвращает данные BinaryInterface

MongoDB\BSON\BinaryInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\BinaryInterface::__toString — Возвращает данные BinaryInterface

Описание

abstract public MongoDB\BSON\BinaryInterface::__toString ( void ) : string

Этот метод является псевдонимом: MongoDB\BSON\BinaryInterface::getData().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные BinaryInterface.

Смотрите также

  • MongoDB\BSON\BinaryInterface::getData() - Возвращает данные BinaryInterface
  • MongoDB\BSON\Binary::__toString() - Возвращает данные Binary


Интерфейс MongoDB\BSON\Decimal128Interface

(mongodb >=1.3.0)

Введение

Этот интерфейс реализован MongoDB\BSON\Decimal128, но также может использоваться для подсказок типов и классов пользовательского пространства.

Обзор классов

MongoDB\BSON\Decimal128Interface {
/* Методы */
abstract public __toString ( void ) : string
}

Содержание

  • MongoDB\BSON\Decimal128Interface::__toString — Возвращает строковое представление Decimal128Interface


Возвращает строковое представление Decimal128Interface

  • « MongoDB\BSON\Decimal128Interface
  • MongoDB\BSON\JavascriptInterface »
  • PHP Manual
  • MongoDB\BSON\Decimal128Interface
  • Возвращает строковое представление Decimal128Interface

MongoDB\BSON\Decimal128Interface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\Decimal128Interface::__toString — Возвращает строковое представление Decimal128Interface

Описание

abstract public MongoDB\BSON\Decimal128Interface::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление Decimal128Interface.

Смотрите также

  • MongoDB\BSON\Decimal128::__toString() - Возвращает строковое представление Decimal128


Интерфейс MongoDB\BSON\JavascriptInterface

(mongodb >=1.3.0)

Введение

Этот интерфейс реализован MongoDB\BSON\Javascript, но также может использоваться для подсказок типов и классов пользовательского пространства.

Обзор классов

MongoDB\BSON\JavascriptInterface {
/* Методы */
abstract public getCode ( void ) : string
abstract public getScope ( void ) : object|null
abstract public __toString ( void ) : string
}

Содержание

  • MongoDB\BSON\JavascriptInterface::getCode — Возвращает код JavascriptInterface
  • MongoDB\BSON\JavascriptInterface::getScope — Возвращает области видимости документа JavascriptInterface
  • MongoDB\BSON\JavascriptInterface::__toString — Возвращает код JavascriptInterface


Возвращает код JavascriptInterface

  • « MongoDB\BSON\JavascriptInterface
  • MongoDB\BSON\JavascriptInterface::getScope »
  • PHP Manual
  • MongoDB\BSON\JavascriptInterface
  • Возвращает код JavascriptInterface

MongoDB\BSON\JavascriptInterface::getCode

(mongodb >=1.3.0)

MongoDB\BSON\JavascriptInterface::getCode — Возвращает код JavascriptInterface

Описание

abstract public MongoDB\BSON\JavascriptInterface::getCode ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код JavascriptInterface.

Смотрите также

  • MongoDB\BSON\Javascript::getCode() - Возвращает код JavaScript


Возвращает области видимости документа JavascriptInterface

  • « MongoDB\BSON\JavascriptInterface::getCode
  • MongoDB\BSON\JavascriptInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\JavascriptInterface
  • Возвращает области видимости документа JavascriptInterface

MongoDB\BSON\JavascriptInterface::getScope

(mongodb >=1.3.0)

MongoDB\BSON\JavascriptInterface::getScope — Возвращает области видимости документа JavascriptInterface

Описание

abstract public MongoDB\BSON\JavascriptInterface::getScope ( void ) : object|null

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает области видимости документа JavascriptInterface.

Смотрите также

  • MongoDB\BSON\Javascript::getScope() - Возвращает область документа JavaScript


Возвращает код JavascriptInterface

  • « MongoDB\BSON\JavascriptInterface::getScope
  • MongoDB\BSON\MaxKeyInterface »
  • PHP Manual
  • MongoDB\BSON\JavascriptInterface
  • Возвращает код JavascriptInterface

MongoDB\BSON\JavascriptInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\JavascriptInterface::__toString — Возвращает код JavascriptInterface

Описание

abstract public MongoDB\BSON\JavascriptInterface::__toString ( void ) : string

Этот метод является псевдонимом: MongoDB\BSON\JavascriptInterface::getCode().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код JavascriptInterface.

Смотрите также

  • MongoDB\BSON\JavascriptInterface::getCode() - Возвращает код JavascriptInterface
  • MongoDB\BSON\Javascript::__toString() - Возвращает код JavaScript


Интерфейс MongoDB\BSON\MaxKeyInterface

(mongodb >=1.3.0)

Введение

Этот интерфейс реализован с помощью MongoDB\BSON\MaxKey, но также может использоваться для подсказок типов и классов пользовательского пространства.

Обзор классов

MongoDB\BSON\MaxKeyInterface {
}

Этот интерфейс не имеет методов.


Интерфейс MongoDB\BSON\MinKeyInterface

(mongodb >=1.3.0)

Введение

Этот интерфейс реализован MongoDB\BSON\MinKey, но также может использоваться для подсказок типов и классов пользовательского пространства.

Обзор классов

MongoDB\BSON\MinKeyInterface {
}

Этот интерфейс не имеет методов.


Интерфейс MongoDB\BSON\ObjectIdInterface

(mongodb >=1.3.0)

Введение

Этот интерфейс реализован с помощью MongoDB\BSON\ObjectId, но также может быть использован для подсказок типов и классов пользовательского пространства.

Обзор классов

MongoDB\BSON\ObjectIdInterface {
/* Методы */
abstract public getTimestamp ( void ) : int
abstract public __toString ( void ) : string
}

Содержание

  • MongoDB\BSON\ObjectIdInterface::getTimestamp — Возвращает компонент отметки времени ObjectIdInterface
  • MongoDB\BSON\ObjectIdInterface::__toString — Возвращает шестнадцатеричное представление ObjectIdInterface


Возвращает компонент отметки времени ObjectIdInterface

  • « MongoDB\BSON\ObjectIdInterface
  • MongoDB\BSON\ObjectIdInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\ObjectIdInterface
  • Возвращает компонент отметки времени ObjectIdInterface

MongoDB\BSON\ObjectIdInterface::getTimestamp

(mongodb >=1.3.0)

MongoDB\BSON\ObjectIdInterface::getTimestamp — Возвращает компонент отметки времени ObjectIdInterface

Описание

abstract public MongoDB\BSON\ObjectIdInterface::getTimestamp ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает компонент отметки времени ObjectIdInterface.

Смотрите также

  • MongoDB\BSON\ObjectId::getTimestamp() - Возвращает метку времени ObjectId


Возвращает шестнадцатеричное представление ObjectIdInterface

  • « MongoDB\BSON\ObjectIdInterface::getTimestamp
  • MongoDB\BSON\RegexInterface »
  • PHP Manual
  • MongoDB\BSON\ObjectIdInterface
  • Возвращает шестнадцатеричное представление ObjectIdInterface

MongoDB\BSON\ObjectIdInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\ObjectIdInterface::__toString — Возвращает шестнадцатеричное представление ObjectIdInterface

Описание

abstract public MongoDB\BSON\ObjectIdInterface::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает шестнадцатеричное представление ObjectIdInterface.

Смотрите также

  • MongoDB\BSON\ObjectId::__toString() - Возвращает шестнадцатеричное представление ObjectId


Интерфейс MongoDB\BSON\RegexInterface

(mongodb >=1.3.0)

Введение

Этот интерфейс реализован MongoDB\BSON\Regex, но также может использоваться для подсказок типов и классов пользовательского пространства.

Обзор классов

MongoDB\BSON\RegexInterface {
/* Методы */
abstract public getFlags ( void ) : string
abstract public getPattern ( void ) : string
abstract public __toString ( void ) : string
}

Содержание

  • MongoDB\BSON\RegexInterface::getFlags — Возвращает флаги RegexInterface
  • MongoDB\BSON\RegexInterface::getPattern — Возвращает шаблон RegexInterface
  • MongoDB\BSON\RegexInterface::__toString — Возвращает строковое представление RegexInterface


Возвращает флаги RegexInterface

  • « MongoDB\BSON\RegexInterface
  • MongoDB\BSON\RegexInterface::getPattern »
  • PHP Manual
  • MongoDB\BSON\RegexInterface
  • Возвращает флаги RegexInterface

MongoDB\BSON\RegexInterface::getFlags

(mongodb >=1.3.0)

MongoDB\BSON\RegexInterface::getFlags — Возвращает флаги RegexInterface

Описание

abstract public MongoDB\BSON\RegexInterface::getFlags ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает флаги RegexInterface.

Смотрите также

  • MongoDB\BSON\Regex::getFlags() - Возвращает флаги Regex


Возвращает шаблон RegexInterface

  • « MongoDB\BSON\RegexInterface::getFlags
  • MongoDB\BSON\RegexInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\RegexInterface
  • Возвращает шаблон RegexInterface

MongoDB\BSON\RegexInterface::getPattern

(mongodb >=1.3.0)

MongoDB\BSON\RegexInterface::getPattern — Возвращает шаблон RegexInterface

Описание

abstract public MongoDB\BSON\RegexInterface::getPattern ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает шаблон RegexInterface.

Смотрите также

  • MongoDB\BSON\Regex::getPattern() - Возвращает шаблон Regex


Возвращает строковое представление RegexInterface

  • « MongoDB\BSON\RegexInterface::getPattern
  • MongoDB\BSON\TimestampInterface »
  • PHP Manual
  • MongoDB\BSON\RegexInterface
  • Возвращает строковое представление RegexInterface

MongoDB\BSON\RegexInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\RegexInterface::__toString — Возвращает строковое представление RegexInterface

Описание

abstract public MongoDB\BSON\RegexInterface::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление RegexInterface.

Смотрите также

  • MongoDB\BSON\Regex::__toString() - Возвращает строковое представление Regex


Интерфейс MongoDB\BSON\TimestampInterface

(mongodb >=1.3.0)

Введение

Этот интерфейс реализован с помощью MongoDB\BSON\Timestamp, но также может использоваться для подсказок типов и классов пользовательского пространства.

Обзор классов

MongoDB\BSON\TimestampInterface {
/* Методы */
abstract public getIncrement ( void ) : int
abstract public getTimestamp ( void ) : int
abstract public __toString ( void ) : string
}

Содержание

  • MongoDB\BSON\TimestampInterface::getIncrement — Возвращает инкрементный компонент TimestampInterface
  • MongoDB\BSON\TimestampInterface::getTimestamp — Возвращает компонент отметки времени TimestampInterface
  • MongoDB\BSON\TimestampInterface::__toString — Возвращает строковое представление TimestampInterface


Возвращает инкрементный компонент TimestampInterface

  • « MongoDB\BSON\TimestampInterface
  • MongoDB\BSON\TimestampInterface::getTimestamp »
  • PHP Manual
  • MongoDB\BSON\TimestampInterface
  • Возвращает инкрементный компонент TimestampInterface

MongoDB\BSON\TimestampInterface::getIncrement

(mongodb >=1.3.0)

MongoDB\BSON\TimestampInterface::getIncrement — Возвращает инкрементный компонент TimestampInterface

Описание

abstract public MongoDB\BSON\TimestampInterface::getIncrement ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает инкрементный компонент TimestampInterface.

Внимание

В 32-битных системах этот метод может возвращать отрицательное число. Хотя части приращения и отметки времени типа отметки времени BSON состоят из двух 32-разрядных значений без знака, PHP не может представлять их на 32-разрядных платформах.

Смотрите также

  • MongoDB\BSON\Timestamp::getIncrement() - Возвращает компонент приращения Timestamp


Возвращает компонент отметки времени TimestampInterface

  • « MongoDB\BSON\TimestampInterface::getIncrement
  • MongoDB\BSON\TimestampInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\TimestampInterface
  • Возвращает компонент отметки времени TimestampInterface

MongoDB\BSON\TimestampInterface::getTimestamp

(mongodb >=1.3.0)

MongoDB\BSON\TimestampInterface::getTimestamp — Возвращает компонент отметки времени TimestampInterface

Описание

abstract public MongoDB\BSON\TimestampInterface::getTimestamp ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает компонент отметки времени TimestampInterface.

Внимание

В 32-битных системах этот метод может возвращать отрицательное число. Хотя части приращения и отметки времени типа отметки времени BSON состоят из двух 32-разрядных значений без знака, PHP не может представлять их на 32-разрядных платформах.

Смотрите также

  • MongoDB\BSON\Timestamp::getTimestamp() - Возвращает компонент отметки времени Timestamp


Возвращает строковое представление TimestampInterface

  • « MongoDB\BSON\TimestampInterface::getTimestamp
  • MongoDB\BSON\UTCDateTimeInterface »
  • PHP Manual
  • MongoDB\BSON\TimestampInterface
  • Возвращает строковое представление TimestampInterface

MongoDB\BSON\TimestampInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\TimestampInterface::__toString — Возвращает строковое представление TimestampInterface

Описание

abstract public MongoDB\BSON\TimestampInterface::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление TimestampInterface.

Смотрите также

  • MongoDB\BSON\Timestamp::__toString() - Возвращает строковое представление Timestamp


Интерфейс MongoDB\BSON\UTCDateTimeInterface

(mongodb >=1.3.0)

Введение

Этот интерфейс реализован с помощью MongoDB\BSON\UTCDateTime, но также может использоваться для подсказок по типам и классов пользовательского пространства.

Обзор классов

MongoDB\BSON\UTCDateTimeInterface {
/* Методы */
abstract public toDateTime ( void ) : DateTime
abstract public __toString ( void ) : string
}

Содержание

  • MongoDB\BSON\UTCDateTimeInterface::toDateTime — Возвращает представление DateTime этого UTCDateTimeInterface
  • MongoDB\BSON\UTCDateTimeInterface::__toString — Возвращает строковое представление UTCDateTimeInterface


Возвращает представление DateTime этого UTCDateTimeInterface

  • « MongoDB\BSON\UTCDateTimeInterface
  • MongoDB\BSON\UTCDateTimeInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\UTCDateTimeInterface
  • Возвращает представление DateTime этого UTCDateTimeInterface

MongoDB\BSON\UTCDateTimeInterface::toDateTime

(mongodb >=1.3.0)

MongoDB\BSON\UTCDateTimeInterface::toDateTime — Возвращает представление DateTime этого UTCDateTimeInterface

Описание

abstract public MongoDB\BSON\UTCDateTimeInterface::toDateTime ( void ) : DateTime

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает представление DateTime этого UTCDateTimeInterface. Возвращенный DateTime должен использовать часовой пояс UTC.

Смотрите также

  • MongoDB\BSON\UTCDateTime::toDateTime() - Возвращает представление DateTime этого UTCDateTime


Возвращает строковое представление UTCDateTimeInterface

  • « MongoDB\BSON\UTCDateTimeInterface::toDateTime
  • MongoDB\BSON\DBPointer »
  • PHP Manual
  • MongoDB\BSON\UTCDateTimeInterface
  • Возвращает строковое представление UTCDateTimeInterface

MongoDB\BSON\UTCDateTimeInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\UTCDateTimeInterface::__toString — Возвращает строковое представление UTCDateTimeInterface

Описание

abstract public MongoDB\BSON\UTCDateTimeInterface::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление UTCDateTimeInterface.

Смотрите также

  • MongoDB\BSON\UTCDateTime::__toString() - Возвращает строковое представление UTCDateTime


Класс MongoDB\BSON\DBPointer (устаревший)

(mongodb >=1.4.0)

Введение

Тип BSON для типа "DBPointer". Этот тип BSON устарел, и этот класс не может быть создан. Он будет создан из типа BSON DBPointer во время преобразования BSON в PHP, а также при преобразовании обратно в BSON при хранении документов в базе данных.

Обзор классов

MongoDB\BSON\DBPointer implements MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Методы */
final private __construct ( void )
final public jsonSerialize ( void ) : mixed
final public serialize ( void ) : string
final public __toString ( void ) : string
final public unserialize ( string $serialized ) : void
}

Содержание

  • MongoDB\BSON\DBPointer::__construct — Создает новый DBPointer (не используется)
  • MongoDB\BSON\DBPointer::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
  • MongoDB\BSON\DBPointer::serialize — Сериализует DBPointer
  • MongoDB\BSON\DBPointer::__toString — Возвращает пустую строку
  • MongoDB\BSON\DBPointer::unserialize — Десериализует DBPointer


Создает новый DBPointer (не используется)

  • « MongoDB\BSON\DBPointer
  • MongoDB\BSON\DBPointer::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Создает новый DBPointer (не используется)

MongoDB\BSON\DBPointer::__construct

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::__construct — Создает новый DBPointer (не используется)

Описание

final private MongoDB\BSON\DBPointer::__construct ( void )

Объекты MongoDB\BSON\DBPointer создаются путем преобразования из устаревшего типа BSON и не могут быть созданы напрямую.

Список параметров

У этой функции нет параметров.

Смотрите также

  • » BSON Types


Возвращает представление, которое можно преобразовать в JSON

  • « MongoDB\BSON\DBPointer::__construct
  • MongoDB\BSON\DBPointer::serialize »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Возвращает представление, которое можно преобразовать в JSON

MongoDB\BSON\DBPointer::jsonSerialize

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON

Описание

final public MongoDB\BSON\DBPointer::jsonSerialize ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные, которые могут быть сериализованы с помощью json_encode() для создания расширенного JSON-представления MongoDB\BSON\DBPointer.

Замечание: Вывод соответствует выводу функции MongoDB\BSON\toJSON(), которая использует унаследованный, специфичный для драйвера, расширенный формат JSON. Он не обязательно будет подходить под » relaxed или » canonical представления расширенного JSON, используемых в MongoDB\BSON\toRelaxedExtendedJSON() и MongoDB\BSON\toCanonicalExtendedJSON(), соответственно.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • JsonSerializable::jsonSerialize() - Задает данные, которые должны быть сериализованы в JSON
  • json_encode() - Возвращает JSON-представление данных
  • MongoDB\BSON\toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON представление для значения BSON
  • MongoDB\BSON\toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление значения BSON
  • » MongoDB Extended JSON


Сериализует DBPointer

  • « MongoDB\BSON\DBPointer::jsonSerialize
  • MongoDB\BSON\DBPointer::__toString »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Сериализует DBPointer

MongoDB\BSON\DBPointer::serialize

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::serialize — Сериализует DBPointer

Описание

final public MongoDB\BSON\DBPointer::serialize ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\BSON\DBPointer.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\DBPointer::unserialize() - Десериализует DBPointer
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Возвращает пустую строку

  • « MongoDB\BSON\DBPointer::serialize
  • MongoDB\BSON\DBPointer::unserialize »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Возвращает пустую строку

MongoDB\BSON\DBPointer::__toString

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::__toString — Возвращает пустую строку

Описание

final public MongoDB\BSON\DBPointer::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает пустую строку.

Смотрите также

  • » BSON Types


Десериализует DBPointer

  • « MongoDB\BSON\DBPointer::__toString
  • MongoDB\BSON\Int64 »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Десериализует DBPointer

MongoDB\BSON\DBPointer::unserialize

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::unserialize — Десериализует DBPointer

Описание

final public MongoDB\BSON\DBPointer::unserialize ( string $serialized ) : void

Список параметров

serialized

Сериализированный MongoDB\BSON\DBPointer.

Возвращаемые значения

Возвращает десериализированный MongoDB\BSON\DBPointer.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\DBPointer::serialize() - Сериализует DBPointer
  • unserialize() - Создает PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\BSON\Int64

(mongodb >=1.5.0)

Введение

Тип BSON для 64-разрядного целого числа. Этот класс не может быть создан и создается только во время декодирования BSON, когда 64-разрядное целое не может быть представлено, как целое число PHP на 32-разрядной платформе. Версии драйвера до 1.5.0 вызовут исключение при попытке декодирования 64-разрядного целого числа на 32-разрядной платформе.

Во время кодирования BSON объекты этого класса будут преобразованы обратно в 64-битный целочисленный тип. Это позволяет использовать 64-битные целые числа в 32-битной среде PHP без потери точности. Метод __toString() позволяет получить доступ к 64-битному целочисленному значению в виде строки.

Замечание: Этот класс существует исключительно для 32-битных платформ. Приложения на 64-битных платформах (т.е. PHP_INT_SIZE равное 8) никогда не должны сталкиваться с этим классом во время нормальной работы.

Обзор классов

final MongoDB\BSON\Int64 implements MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Методы */
final private __construct ( void )
final public jsonSerialize ( void ) : mixed
final public serialize ( void ) : string
final public __toString ( void ) : string
final public unserialize ( string $serialized ) : void
}

Содержание

  • MongoDB\BSON\Int64::__construct — Создает новый Int64 (не используется)
  • MongoDB\BSON\Int64::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
  • MongoDB\BSON\Int64::serialize — Сериализует Int64
  • MongoDB\BSON\Int64::__toString — Возвращает строковое представление Int64
  • MongoDB\BSON\Int64::unserialize — Десериализует Int64


Создает новый Int64 (не используется)

  • « MongoDB\BSON\Int64
  • MongoDB\BSON\Int64::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Создает новый Int64 (не используется)

MongoDB\BSON\Int64::__construct

(mongodb >=1.5.0)

MongoDB\BSON\Int64::__construct — Создает новый Int64 (не используется)

Описание

final private MongoDB\BSON\Int64::__construct ( void )

MongoDB\BSON\Int64 объекты создаются путем преобразования из 64-разрядного целочисленного типа BSON на 32-разрядной платформе и не могут быть созданы напрямую.

Список параметров

У этой функции нет параметров.

Смотрите также

  • » Типы BSON


Возвращает представление, которое можно преобразовать в JSON

  • « MongoDB\BSON\Int64::__construct
  • MongoDB\BSON\Int64::serialize »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Возвращает представление, которое можно преобразовать в JSON

MongoDB\BSON\Int64::jsonSerialize

(mongodb >=1.5.0)

MongoDB\BSON\Int64::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON

Описание

final public MongoDB\BSON\Int64::jsonSerialize ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные, которые могут быть сериализованы с помощью json_encode() для создания расширенного JSON-представления MongoDB\BSON\Int64.

Замечание: Вывод соответствует функции MongoDB\BSON\toCanonicalExtendedJSON(), которая использует » канонический расширенный формат JSON. Это отличается от других классов BSON, которые используют устаревший расширенный формат JSON для конкретного драйвера (MongoDB\BSON\toJSON()), чтобы обеспечить правильное представление 64-разрядного целочисленного значения на 32-разрядных платформах.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • JsonSerializable::jsonSerialize() - Задает данные, которые должны быть сериализованы в JSON
  • json_encode() - Возвращает JSON-представление данных
  • MongoDB\BSON\toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON представление для значения BSON
  • MongoDB\BSON\toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление значения BSON
  • » MongoDB Extended JSON


Сериализует Int64

  • « MongoDB\BSON\Int64::jsonSerialize
  • MongoDB\BSON\Int64::__toString »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Сериализует Int64

MongoDB\BSON\Int64::serialize

(mongodb >=1.5.0)

MongoDB\BSON\Int64::serialize — Сериализует Int64

Описание

final public MongoDB\BSON\Int64::serialize ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\BSON\Int64.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\Int64::unserialize() - Десериализует Int64
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Возвращает строковое представление Int64

  • « MongoDB\BSON\Int64::serialize
  • MongoDB\BSON\Int64::unserialize »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Возвращает строковое представление Int64

MongoDB\BSON\Int64::__toString

(mongodb >=1.5.0)

MongoDB\BSON\Int64::__toString — Возвращает строковое представление Int64

Описание

final public MongoDB\BSON\Int64::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление Int64.

Примеры

Пример #1 Пример использования MongoDB\BSON\Int64::__toString()

<?php

$int64 = unserialize('C:18:"MongoDB\BSON\Int64":47:{a:1:{s:7:"integer";s:19:"9223372036854775807";}}');

var_dump((string) $int64);

?>

Результатом выполнения данного примера будет что-то подобное:

string(19) "9223372036854775807"

Смотрите также

  • » Типы BSON


Десериализует Int64

  • « MongoDB\BSON\Int64::__toString
  • MongoDB\BSON\Symbol »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Десериализует Int64

MongoDB\BSON\Int64::unserialize

(mongodb >=1.5.0)

MongoDB\BSON\Int64::unserialize — Десериализует Int64

Описание

final public MongoDB\BSON\Int64::unserialize ( string $serialized ) : void

Список параметров

serialized

Сериализованный MongoDB\BSON\Int64.

Возвращаемые значения

Возвращает десериализованный MongoDB\BSON\Int64.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выдает исключение MongoDB\Driver\Exception\UnexpectedValueException, если свойства не могут быть не сериализованы (то есть serialized был неправильно сформирован).
  • Выдает исключение MongoDB\Driver\Exception\InvalidArgumentException, если свойства недопустимы (например, отсутствуют поля или недопустимые значения).

Смотрите также

  • MongoDB\BSON\Int64::serialize() - Сериализует Int64
  • unserialize() - Создает PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\BSON\Symbol (устаревший)

(mongodb >=1.4.0)

Введение

Тип BSON для типа "Symbol". Этот тип BSON устарел, и этот класс не может быть создан. Он будет создан из типа символа BSON во время преобразования BSON в PHP, а также при преобразовании обратно в BSON при хранении документов в базе данных.

Обзор классов

MongoDB\BSON\Symbol implements MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Методы */
final private __construct ( void )
final public jsonSerialize ( void ) : mixed
final public serialize ( void ) : string
final public __toString ( void ) : string
final public unserialize ( string $serialized ) : void
}

Содержание

  • MongoDB\BSON\Symbol::__construct — Создает новый Symbol (не используется)
  • MongoDB\BSON\Symbol::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
  • MongoDB\BSON\Symbol::serialize — Сериализует Symbol
  • MongoDB\BSON\Symbol::__toString — Возвращает Symbol в виде строки
  • MongoDB\BSON\Symbol::unserialize — Десериализует Symbol


Создает новый Symbol (не используется)

  • « MongoDB\BSON\Symbol
  • MongoDB\BSON\Symbol::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Создает новый Symbol (не используется)

MongoDB\BSON\Symbol::__construct

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::__construct — Создает новый Symbol (не используется)

Описание

final private MongoDB\BSON\Symbol::__construct ( void )

Объекты MongoDB\BSON\Symbol создаются путем преобразования из устаревшего типа BSON и не могут быть созданы напрямую.

Список параметров

У этой функции нет параметров.

Смотрите также

  • » Типы BSON


Возвращает представление, которое можно преобразовать в JSON

  • « MongoDB\BSON\Symbol::__construct
  • MongoDB\BSON\Symbol::serialize »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Возвращает представление, которое можно преобразовать в JSON

MongoDB\BSON\Symbol::jsonSerialize

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON

Описание

final public MongoDB\BSON\Symbol::jsonSerialize ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные, которые могут быть сериализованы с помощью json_encode() для создания расширенного JSON-представления MongoDB\BSON\Symbol.

Замечание: Вывод соответствует выводу функции MongoDB\BSON\toJSON(), которая использует унаследованный, специфичный для драйвера, расширенный формат JSON. Он не обязательно будет подходить под » relaxed или » canonical представления расширенного JSON, используемых в MongoDB\BSON\toRelaxedExtendedJSON() и MongoDB\BSON\toCanonicalExtendedJSON(), соответственно.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • JsonSerializable::jsonSerialize() - Задает данные, которые должны быть сериализованы в JSON
  • json_encode() - Возвращает JSON-представление данных
  • MongoDB\BSON\toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON представление для значения BSON
  • MongoDB\BSON\toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление значения BSON
  • » MongoDB Extended JSON


Сериализует Symbol

  • « MongoDB\BSON\Symbol::jsonSerialize
  • MongoDB\BSON\Symbol::__toString »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Сериализует Symbol

MongoDB\BSON\Symbol::serialize

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::serialize — Сериализует Symbol

Описание

final public MongoDB\BSON\Symbol::serialize ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\BSON\Symbol.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\Symbol::unserialize() - Десериализует Symbol
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Возвращает Symbol в виде строки

  • « MongoDB\BSON\Symbol::serialize
  • MongoDB\BSON\Symbol::unserialize »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Возвращает Symbol в виде строки

MongoDB\BSON\Symbol::__toString

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::__toString — Возвращает Symbol в виде строки

Описание

final public MongoDB\BSON\Symbol::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление Symbol.

Смотрите также

  • » Типы BSON


Десериализует Symbol

  • « MongoDB\BSON\Symbol::__toString
  • MongoDB\BSON\Undefined »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Десериализует Symbol

MongoDB\BSON\Symbol::unserialize

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::unserialize — Десериализует Symbol

Описание

final public MongoDB\BSON\Symbol::unserialize ( string $serialized ) : void

Список параметров

serialized

Сериализованный MongoDB\BSON\Symbol.

Возвращаемые значения

Возвращает десериализованный MongoDB\BSON\Symbol.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\Symbol::serialize() - Сериализует Symbol
  • unserialize() - Создает PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\BSON\Undefined (устарело)

(mongodb >=1.4.0)

Введение

Тип BSON для типа "Undefined". Этот тип BSON устарел, и этот класс не может быть создан. Он будет создан из неопределенного типа BSON при преобразовании BSON в PHP, а также может быть преобразован обратно в BSON при хранении документов в базе данных.

Обзор классов

final MongoDB\BSON\Undefined implements MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Методы */
final private __construct ( void )
final public jsonSerialize ( void ) : mixed
final public serialize ( void ) : string
final public __toString ( void ) : string
final public unserialize ( string $serialized ) : void
}

Содержание

  • MongoDB\BSON\Undefined::__construct — Создает новый Undefined (не используется)
  • MongoDB\BSON\Undefined::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON
  • MongoDB\BSON\Undefined::serialize — Сериализует Undefined
  • MongoDB\BSON\Undefined::__toString — Возвращает пустую строку
  • MongoDB\BSON\Undefined::unserialize — Десериализует Undefined


Создает новый Undefined (не используется)

  • « MongoDB\BSON\Undefined
  • MongoDB\BSON\Undefined::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Создает новый Undefined (не используется)

MongoDB\BSON\Undefined::__construct

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::__construct — Создает новый Undefined (не используется)

Описание

final private MongoDB\BSON\Undefined::__construct ( void )

Объекты MongoDB\BSON\Undefined создаются путем преобразования из устаревшего типа BSON и не могут быть созданы напрямую.

Список параметров

У этой функции нет параметров.

Смотрите также

  • » Типы BSON


Возвращает представление, которое можно преобразовать в JSON

  • « MongoDB\BSON\Undefined::__construct
  • MongoDB\BSON\Undefined::serialize »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Возвращает представление, которое можно преобразовать в JSON

MongoDB\BSON\Undefined::jsonSerialize

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::jsonSerialize — Возвращает представление, которое можно преобразовать в JSON

Описание

final public MongoDB\BSON\Undefined::jsonSerialize ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные, которые могут быть сериализованы с помощью json_encode() для создания расширенного JSON-представления MongoDB\BSON\Undefined.

Замечание: Вывод соответствует выводу функции MongoDB\BSON\toJSON(), которая использует унаследованный, специфичный для драйвера, расширенный формат JSON. Он не обязательно будет подходить под » relaxed или » canonical представления расширенного JSON, используемых в MongoDB\BSON\toRelaxedExtendedJSON() и MongoDB\BSON\toCanonicalExtendedJSON(), соответственно.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • JsonSerializable::jsonSerialize() - Задает данные, которые должны быть сериализованы в JSON
  • json_encode() - Возвращает JSON-представление данных
  • MongoDB\BSON\toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON представление для значения BSON
  • MongoDB\BSON\toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление значения BSON
  • » MongoDB Extended JSON


Сериализует Undefined

  • « MongoDB\BSON\Undefined::jsonSerialize
  • MongoDB\BSON\Undefined::__toString »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Сериализует Undefined

MongoDB\BSON\Undefined::serialize

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::serialize — Сериализует Undefined

Описание

final public MongoDB\BSON\Undefined::serialize ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\BSON\Undefined.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\Undefined::unserialize() - Десериализует Undefined
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Возвращает пустую строку

  • « MongoDB\BSON\Undefined::serialize
  • MongoDB\BSON\Undefined::unserialize »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Возвращает пустую строку

MongoDB\BSON\Undefined::__toString

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::__toString — Возвращает пустую строку

Описание

final public MongoDB\BSON\Undefined::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает пустую строку.

Смотрите также

  • » Типы BSON


Десериализует Undefined

  • « MongoDB\BSON\Undefined::__toString
  • MongoDB\Driver\Monitoring »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Десериализует Undefined

MongoDB\BSON\Undefined::unserialize

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::unserialize — Десериализует Undefined

Описание

final public MongoDB\BSON\Undefined::unserialize ( string $serialized ) : void

Список параметров

serialized

Сериализованный MongoDB\BSON\Undefined.

Возвращаемые значения

Возвращает десериализованный MongoDB\BSON\Undefined.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\Undefined::serialize() - Сериализует Undefined
  • unserialize() - Создает PHP-значение из хранимого представления
  • Сериализация объектов


Классы мониторинга и функции подписчика

  • Функции
    • MongoDB\Driver\Monitoring\addSubscriber — Регистрирует нового подписчика события мониторинга
    • MongoDB\Driver\Monitoring\removeSubscriber — Отписывает существующего подписчика события мониторинга
  • MongoDB\Driver\Monitoring\CommandFailedEvent — Класс MongoDB\Driver\Monitoring\CommandFailedEvent
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName — Возвращает имя команды
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros — Возвращает длительность команды в микросекундах
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getError — Возвращает исключение, связанное с неудачной командой
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId — Возвращает идентификатор операции команды
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply — Возвращает документ ответа команды
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId — Возвращает идентификатор запроса команды
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer — Возвращает сервер, на котором была выполнена команда
  • MongoDB\Driver\Monitoring\CommandStartedEvent — Класс MongoDB\Driver\Monitoring\CommandStartedEvent
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand — Возвращает документ команды
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName — Возвращает имя команды
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName — Возвращает базу данных, на которой выполнялась команда
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId — Возвращает идентификатор операции команды
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId — Возвращает идентификатор запроса команды
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer — Возвращает сервер, на котором была выполнена команда
  • MongoDB\Driver\Monitoring\CommandSucceededEvent — Класс MongoDB\Driver\Monitoring\CommandSucceededEvent
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName — Возвращает имя команды
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros — Возвращает длительность команды в микросекундах
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId — Возвращает идентификатор операции команды
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply — Возвращает документ ответа команды
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId — Возвращает идентификатор запроса команды
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer — Возвращает сервер, на котором была выполнена команда
  • MongoDB\Driver\Monitoring\CommandSubscriber — Интерфейс The MongoDB\Driver\Monitoring\CommandSubscriber
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed — Метод уведомления о неудачной команде
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted — Метод уведомления о запущенной команде
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded — Метод уведомления об успешной команде
  • MongoDB\Driver\Monitoring\Subscriber — Интерфейс MongoDB\Driver\Monitoring\Subscriber


Функции

Содержание

  • MongoDB\Driver\Monitoring\addSubscriber — Регистрирует нового подписчика события мониторинга
  • MongoDB\Driver\Monitoring\removeSubscriber — Отписывает существующего подписчика события мониторинга


Регистрирует нового подписчика события мониторинга

  • « Функции
  • MongoDB\Driver\Monitoring\removeSubscriber »
  • PHP Manual
  • Функции
  • Регистрирует нового подписчика события мониторинга

MongoDB\Driver\Monitoring\addSubscriber

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\addSubscriber — Регистрирует нового подписчика события мониторинга

Описание

MongoDB\Driver\Monitoring\addSubscriber ( MongoDB\Driver\Monitoring\Subscriber $subscriber ) : void

Регистрирует нового подписчика события мониторинга с драйвером. Зарегистрированные подписчики будут уведомлены о событиях мониторинга с помощью специальных методов.

Замечание: Если объект уже зарегистрирован, эта функция не сработает.

Список параметров

subscriber (MongoDB\Driver\Monitoring\Subscriber)

Объект подписчика события мониторинга для регистрации.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\Subscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Monitoring\removeSubscriber() - Отписывает существующего подписчика события мониторинга
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Отписывает существующего подписчика события мониторинга

  • « MongoDB\Driver\Monitoring\addSubscriber
  • MongoDB\Driver\Monitoring\CommandFailedEvent »
  • PHP Manual
  • Функции
  • Отписывает существующего подписчика события мониторинга

MongoDB\Driver\Monitoring\removeSubscriber

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\removeSubscriber — Отписывает существующего подписчика события мониторинга

Описание

MongoDB\Driver\Monitoring\removeSubscriber ( MongoDB\Driver\Monitoring\Subscriber $subscriber ) : void

Отписывает существующего подписчика события мониторинга от драйвера. Отписанные подписчики больше не будут уведомлены о событий мониторинга.

Замечание: Если объект не зарегистрирован, эта функция не сработает.

Список параметров

subscriber (MongoDB\Driver\Monitoring\Subscriber)

Объект подписчика события мониторинга для отписки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\Subscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Monitoring\addSubscriber() - Регистрирует нового подписчика события мониторинга
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Класс MongoDB\Driver\Monitoring\CommandFailedEvent

(mongodb >=1.3.0)

Введение

Класс MongoDB\Driver\Monitoring\CommandFailedEvent содержит информацию о неудачной команде.

Обзор классов

final MongoDB\Driver\Monitoring\CommandFailedEvent {
/* Методы */
final public getCommandName ( void ) : string
final public getDurationMicros ( void ) : int
final public getError ( void ) : Exception
final public getOperationId ( void ) : string
final public getReply ( void ) : object
final public getRequestId ( void ) : string
final public getServer ( void ) : MongoDB\Driver\Server
}

Содержание

  • MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName — Возвращает имя команды
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros — Возвращает длительность команды в микросекундах
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getError — Возвращает исключение, связанное с неудачной командой
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId — Возвращает идентификатор операции команды
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply — Возвращает документ ответа команды
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId — Возвращает идентификатор запроса команды
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer — Возвращает сервер, на котором была выполнена команда


Возвращает имя команды

  • « MongoDB\Driver\Monitoring\CommandFailedEvent
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Возвращает имя команды

MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName — Возвращает имя команды

Описание

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName ( void ) : string

Возвращает имя команды (например, "find", "aggregate").

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя команды.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Возвращает длительность команды в микросекундах

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getError »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Возвращает длительность команды в микросекундах

MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros — Возвращает длительность команды в микросекундах

Описание

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros ( void ) : int

Длительность команды - это рассчитанное значение, которое включает время отправки сообщения и получение ответа от сервера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает продолжительность команды в микросекундах.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Возвращает исключение, связанное с неудачной командой

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Возвращает исключение, связанное с неудачной командой

MongoDB\Driver\Monitoring\CommandFailedEvent::getError

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getError — Возвращает исключение, связанное с неудачной командой

Описание

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getError ( void ) : Exception

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает исключение (Exception), связанное с неудачной командой.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Возвращает идентификатор операции команды

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getError
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Возвращает идентификатор операции команды

MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId — Возвращает идентификатор операции команды

Описание

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId ( void ) : string

Идентификатор операции генерируется драйвером и может использоваться для связывания событий вместе, таких как операций массовой записи, которые могут быть разделены на несколько команд на уровне протокола.

Замечание: Поскольку несколько команд могут совместно использовать один и тот же идентификатор операции, нецелесообразно использовать его для связывания объектов событий друг с другом. Вместо этого следует использовать идентификатор запроса, возвращенный MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор операции команды.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId() - Возвращает идентификатор операции команды
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId() - Возвращает идентификатор запроса команды
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Возвращает документ ответа команды

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Возвращает документ ответа команды

MongoDB\Driver\Monitoring\CommandFailedEvent::getReply

(mongodb >=1.5.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getReply — Возвращает документ ответа команды

Описание

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getReply ( void ) : object

Ответный документ будет преобразован из BSON в PHP с использованием правил десериализации по умолчанию (например, документы BSON будут преобразованы в stdClass).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает документ ответа команды в виде объекта stdClass.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • Мониторинг производительности приложения (Application Performance Monitoring или APM)
  • Постоянные данные


Возвращает идентификатор запроса команды

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getReply
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Возвращает идентификатор запроса команды

MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId — Возвращает идентификатор запроса команды

Описание

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId ( void ) : string

Идентификатор запроса генерируется драйвером и может использоваться для связывания MongoDB\Driver\Monitoring\CommandFailedEvent с предыдущим MongoDB\Driver\Monitoring\CommandStartedEvent.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор запроса команды.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId() - Возвращает идентификатор запроса команды
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Возвращает сервер, на котором была выполнена команда

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId
  • MongoDB\Driver\Monitoring\CommandStartedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Возвращает сервер, на котором была выполнена команда

MongoDB\Driver\Monitoring\CommandFailedEvent::getServer

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getServer — Возвращает сервер, на котором была выполнена команда

Описание

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getServer ( void ) : MongoDB\Driver\Server

Возвращает MongoDB\Driver\Server, на котором была выполнена команда.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает MongoDB\Driver\Server, на котором была выполнена команда.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer() - Возвращает сервер, на котором была выполнена команда
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Класс MongoDB\Driver\Monitoring\CommandStartedEvent

(mongodb >=1.3.0)

Введение

Класс MongoDB\Driver\Monitoring\CommandStartedEvent содержит информацию о запущенной команды.

Обзор классов

final MongoDB\Driver\Monitoring\CommandStartedEvent {
/* Методы */
final public getCommand ( void ) : object
final public getCommandName ( void ) : string
final public getDatabaseName ( void ) : string
final public getOperationId ( void ) : string
final public getRequestId ( void ) : string
final public getServer ( void ) : MongoDB\Driver\Server
}

Содержание

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand — Возвращает документ команды
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName — Возвращает имя команды
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName — Возвращает базу данных, на которой выполнялась команда
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId — Возвращает идентификатор операции команды
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId — Возвращает идентификатор запроса команды
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer — Возвращает сервер, на котором была выполнена команда


Возвращает документ команды

  • « MongoDB\Driver\Monitoring\CommandStartedEvent
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Возвращает документ команды

MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand — Возвращает документ команды

Описание

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand ( void ) : object

Документ ответа будет преобразован из BSON в PHP используя правила десериализации (например, документы BSON будут преобразованы в stdClass).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает документ команды в виде объекта stdClass.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • Мониторинг производительности приложения (Application Performance Monitoring или APM)
  • Постоянные данные


Возвращает имя команды

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Возвращает имя команды

MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName — Возвращает имя команды

Описание

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName ( void ) : string

Возвращает имя команды (например, "find", "aggregate").

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя команды.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Возвращает базу данных, на которой выполнялась команда

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Возвращает базу данных, на которой выполнялась команда

MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName — Возвращает базу данных, на которой выполнялась команда

Описание

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает базу данных, на которой была выполнена команда.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Возвращает идентификатор операции команды

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Возвращает идентификатор операции команды

MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId — Возвращает идентификатор операции команды

Описание

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId ( void ) : string

Идентификатор операции генерируется драйвером и может использоваться для связывания событий вместе, таких как операций массовой записи, которые могут быть разделены на несколько команд на уровне протокола.

Замечание: Поскольку несколько команд могут совместно использовать один и тот же идентификатор операции, нецелесообразно использовать его для связывания объектов событий друг с другом. Вместо этого следует использовать идентификатор запроса, возвращенный MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор операции команды.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId() - Возвращает идентификатор операции команды
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId() - Возвращает идентификатор операции команды
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId() - Возвращает идентификатор запроса команды
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Возвращает идентификатор запроса команды

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Возвращает идентификатор запроса команды

MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId — Возвращает идентификатор запроса команды

Описание

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId ( void ) : string

Идентификатор запроса генерируется драйвером и может использоваться для связывания MongoDB\Driver\Monitoring\CommandStartedEvent с последующим MongoDB\Driver\Monitoring\CommandFailedEvent или MongoDB\Driver\Monitoring\CommandSucceededEvent.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор запроса команды.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId() - Возвращает идентификатор запроса команды
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId() - Возвращает идентификатор запроса команды
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Возвращает сервер, на котором была выполнена команда

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId
  • MongoDB\Driver\Monitoring\CommandSucceededEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Возвращает сервер, на котором была выполнена команда

MongoDB\Driver\Monitoring\CommandStartedEvent::getServer

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getServer — Возвращает сервер, на котором была выполнена команда

Описание

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getServer ( void ) : MongoDB\Driver\Server

Возвращает MongoDB\Driver\Server, на котором была выполнена команда.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает MongoDB\Driver\Server, на котором была выполнена команда.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer() - Возвращает сервер, на котором была выполнена команда
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer() - Возвращает сервер, на котором была выполнена команда
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Класс MongoDB\Driver\Monitoring\CommandSucceededEvent

(mongodb >=1.3.0)

Введение

Класс MongoDB\Driver\Monitoring\CommandSucceededEvent содержит информацию об успешной команде.

Обзор классов

final MongoDB\Driver\Monitoring\CommandSucceededEvent {
/* Методы */
final public getCommandName ( void ) : string
final public getDurationMicros ( void ) : int
final public getOperationId ( void ) : string
final public getReply ( void ) : object
final public getRequestId ( void ) : string
final public getServer ( void ) : MongoDB\Driver\Server
}

Содержание

  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName — Возвращает имя команды
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros — Возвращает длительность команды в микросекундах
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId — Возвращает идентификатор операции команды
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply — Возвращает документ ответа команды
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId — Возвращает идентификатор запроса команды
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer — Возвращает сервер, на котором была выполнена команда


Возвращает имя команды

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Возвращает имя команды

MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName — Возвращает имя команды

Описание

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName ( void ) : string

Возвращает имя команды (например, "find", "aggregate").

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя команды.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Возвращает длительность команды в микросекундах

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Возвращает длительность команды в микросекундах

MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros — Возвращает длительность команды в микросекундах

Описание

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros ( void ) : int

Длительность команды - это рассчитанное значение, которое включает время отправки сообщения и получение ответа от сервера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает продолжительность команды в микросекундах.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Возвращает идентификатор операции команды

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Возвращает идентификатор операции команды

MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId — Возвращает идентификатор операции команды

Описание

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId ( void ) : string

Идентификатор операции генерируется драйвером и может использоваться для связывания событий вместе, таких как операций массовой записи, которые могут быть разделены на несколько команд на уровне протокола.

Замечание: Поскольку несколько команд могут совместно использовать один и тот же идентификатор операции, нецелесообразно использовать его для связывания объектов событий друг с другом. Вместо этого следует использовать идентификатор запроса, возвращенный MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор операции команды.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId() - Возвращает идентификатор операции команды
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId() - Возвращает идентификатор запроса команды
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Возвращает документ ответа команды

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Возвращает документ ответа команды

MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply — Возвращает документ ответа команды

Описание

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply ( void ) : object

Документ ответа будет преобразован из BSON в PHP с использованием правил десериализации (например, документы BSON будут преобразованы в stdClass).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает документ ответа команды в виде объекта stdClass object.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • Мониторинг производительности приложения (Application Performance Monitoring или APM)
  • Постоянные данные


Возвращает идентификатор запроса команды

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Возвращает идентификатор запроса команды

MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId — Возвращает идентификатор запроса команды

Описание

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId ( void ) : string

Идентификатор запроса генерируется драйвером и может использоваться для связывания MongoDB\Driver\Monitoring\CommandSucceededEvent с предыдущим MongoDB\Driver\Monitoring\CommandStartedEvent.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор запроса команды.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId() - Возвращает идентификатор запроса команды
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Возвращает сервер, на котором была выполнена команда

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId
  • MongoDB\Driver\Monitoring\CommandSubscriber »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Возвращает сервер, на котором была выполнена команда

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer — Возвращает сервер, на котором была выполнена команда

Описание

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer ( void ) : MongoDB\Driver\Server

Возвращает MongoDB\Driver\Server, на котором была выполнена команда.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает MongoDB\Driver\Server, на котором была выполнена команда.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer() - Возвращает сервер, на котором была выполнена команда
  • MongoDB\Driver\Cursor::getServer() - Возвращает сервер, связанный с курсором
  • MongoDB\Driver\WriteResult::getServer() - Возвращает сервер, связанный с этим результатом записи
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Интерфейс The MongoDB\Driver\Monitoring\CommandSubscriber

(mongodb >=1.3.0)

Введение

Классы могут реализовать этот интерфейс для регистрации подписчика событий, который уведомляется о каждом, успешном или неудачном событии команды. Для подробной информации см. Мониторинг производительности приложения (Application Performance Monitoring или APM).

Обзор интерфейсов

MongoDB\Driver\Monitoring\CommandSubscriber implements MongoDB\Driver\Monitoring\Subscriber {
/* Методы */
abstract public commandFailed ( MongoDB\Driver\Monitoring\CommandFailedEvent $event ) : void
abstract public commandStarted ( MongoDB\Driver\Monitoring\CommandStartedEvent $event ) : void
abstract public commandSucceeded ( MongoDB\Driver\Monitoring\CommandSucceededEvent $event ) : void
}

Содержание

  • MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed — Метод уведомления о неудачной команде
  • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted — Метод уведомления о запущенной команде
  • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded — Метод уведомления об успешной команде


Метод уведомления о неудачной команде

  • « MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • Метод уведомления о неудачной команде

MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed — Метод уведомления о неудачной команде

Описание

abstract public MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed ( MongoDB\Driver\Monitoring\CommandFailedEvent $event ) : void

Если подписчик зарегистрирован в MongoDB\Driver\Monitoring\addSubscriber(), драйвер вызовет этот метод при неудачном выполнении команды.

Список параметров

event (MongoDB\Driver\Monitoring\CommandFailedEvent)

Объект события, содержащий информацию о неудачной команде.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Регистрирует нового подписчика события мониторинга
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Метод уведомления о запущенной команде

  • « MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed
  • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • Метод уведомления о запущенной команде

MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted — Метод уведомления о запущенной команде

Описание

abstract public MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted ( MongoDB\Driver\Monitoring\CommandStartedEvent $event ) : void

Если подписчик зарегистрирован в MongoDB\Driver\Monitoring\addSubscriber(), драйвер вызовет этот метод при запуске команды.

Список параметров

event (MongoDB\Driver\Monitoring\CommandStartedEvent)

Объект события, содержащий информацию о запущенной команде.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Регистрирует нового подписчика события мониторинга
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Метод уведомления об успешной команде

  • « MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted
  • MongoDB\Driver\Monitoring\Subscriber »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • Метод уведомления об успешной команде

MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded — Метод уведомления об успешной команде

Описание

abstract public MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded ( MongoDB\Driver\Monitoring\CommandSucceededEvent $event ) : void

Если подписчик зарегистрирован в MongoDB\Driver\Monitoring\addSubscriber(), драйвер вызовет этот метод при успешном выполнении команды.

Список параметров

event (MongoDB\Driver\Monitoring\CommandSucceededEvent)

Объект события, содержащий информацию об успешной команде.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Регистрирует нового подписчика события мониторинга
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Интерфейс MongoDB\Driver\Monitoring\Subscriber

(mongodb >=1.3.0)

Введение

Базовый интерфейс для подписчиков событий. Он используется в качестве подсказки типа для MongoDB\Driver\Monitoring\addSubscriber() и MongoDB\Driver\Monitoring\removeSubscriber(), и не должен реализовываться напрямую.

Обзор интерфейсов

MongoDB\Driver\Monitoring\Subscriber {
}

Этот интерфейс не имеет методов. Его единственная цель - быть базовым интерфейсом для всех подписчиков событий.


Классы исключений

  • MongoDB\Driver\Exception\AuthenticationException — Класс MongoDB\Driver\Exception\AuthenticationException
  • MongoDB\Driver\Exception\BulkWriteException — Класс MongoDB\Driver\Exception\BulkWriteException
  • MongoDB\Driver\Exception\CommandException — Класс MongoDB\Driver\Exception\CommandException
    • MongoDB\Driver\Exception\CommandException::getResultDocument — Возвращает результат документа для неудавшейся команды
  • MongoDB\Driver\Exception\ConnectionException — Класс MongoDB\Driver\Exception\ConnectionException
  • MongoDB\Driver\Exception\ConnectionTimeoutException — Класс MongoDB\Driver\Exception\ConnectionTimeoutException
  • MongoDB\Driver\Exception\EncryptionException — Класс MongoDB\Driver\Exception\EncryptionException
  • MongoDB\Driver\Exception\Exception — Интерфейс MongoDB\Driver\Exception\Exception
  • MongoDB\Driver\Exception\ExecutionTimeoutException — Класс MongoDB\Driver\Exception\ExecutionTimeoutException
  • MongoDB\Driver\Exception\InvalidArgumentException — Класс MongoDB\Driver\Exception\InvalidArgumentException
  • MongoDB\Driver\Exception\LogicException — Класс MongoDB\Driver\Exception\LogicException
  • MongoDB\Driver\Exception\RuntimeException — The MongoDB\Driver\Exception\RuntimeException class
    • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel — Возвращает, связана ли метка ошибки с исключением
  • MongoDB\Driver\Exception\ServerException — Класс MongoDB\Driver\Exception\ServerException
  • MongoDB\Driver\Exception\SSLConnectionException — Класс MongoDB\Driver\Exception\SSLConnectionException (устаревший)
  • MongoDB\Driver\Exception\UnexpectedValueException — Класс MongoDB\Driver\Exception\UnexpectedValueException
  • MongoDB\Driver\Exception\WriteException — Класс MongoDB\Driver\Exception\WriteException
    • MongoDB\Driver\Exception\WriteException::getWriteResult — Возвращает WriteResult для операции записи закончившейся ошибкой
  • Class Tree — MongoDB Exception Class Tree


Класс MongoDB\Driver\Exception\AuthenticationException

(mongodb >= 1.0.0)

Введение

Выбрасывается, когда драйвер не может выполнить аутентификацию с сервером.

Обзор классов

MongoDB\Driver\Exception\AuthenticationException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected bool $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс MongoDB\Driver\Exception\BulkWriteException

(mongodb >= 1.0.0)

Введение

Выбрасывается при неудачной массовой операции записи.

Обзор классов

MongoDB\Driver\Exception\BulkWriteException extends MongoDB\Driver\Exception\WriteException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected MongoDB\Driver\WriteResult $writeResult ;
protected bool $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public MongoDB\Driver\Exception\WriteException::getWriteResult ( void ) : MongoDB\Driver\WriteResult
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс MongoDB\Driver\Exception\CommandException

(mongodb >= 1.5.0)

Введение

Выбрасывается, когда команда потерпела неудачу.

Обзор классов

abstract MongoDB\Driver\Exception\CommandException extends MongoDB\Driver\Exception\ServerException implements MongoDB\Driver\Exception\Exception {
/* Свойства */
protected object $resultDocument ;
/* Наследуемые свойства */
protected bool $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
final public getResultDocument ( void ) : object
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Свойства

resultDocument

Документ результата, связанный с неудачной командой.

Содержание

  • MongoDB\Driver\Exception\CommandException::getResultDocument — Возвращает результат документа для неудавшейся команды


Возвращает результат документа для неудавшейся команды

  • « MongoDB\Driver\Exception\CommandException
  • MongoDB\Driver\Exception\ConnectionException »
  • PHP Manual
  • MongoDB\Driver\Exception\CommandException
  • Возвращает результат документа для неудавшейся команды

MongoDB\Driver\Exception\CommandException::getResultDocument

(mongodb >= 1.5.0)

MongoDB\Driver\Exception\CommandException::getResultDocument — Возвращает результат документа для неудавшейся команды

Описание

final public MongoDB\Driver\Exception\CommandException::getResultDocument ( void ) : object

Возвращает результат документа для неудавшейся команды.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Документ результата для неудавшейся команды.

Смотрите также

  • MongoDB\Driver\Manager::executeCommand() - Выполняет команду базы данных


Класс MongoDB\Driver\Exception\ConnectionException

(mongodb >= 1.0.0)

Введение

Базовый класс для исключений, выбрасывающихся, когда драйвер не может установить подключение к базе данных.

Обзор классов

MongoDB\Driver\Exception\ConnectionException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected bool $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс MongoDB\Driver\Exception\ConnectionTimeoutException

(mongodb >= 1.0.0)

Введение

Выбрасывается, когда драйверу не удается установить соединение с базой данных в течение определенного периода времени (connectTimeoutMS). или выбор сервера не удался (serverSelectionTimeoutMS).

Обзор классов

final MongoDB\Driver\Exception\ConnectionTimeoutException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected bool $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс MongoDB\Driver\Exception\EncryptionException

(mongodb >= 1.7.0)

Введение

Базовый класс для исключений бросаемых в процессе шифрования на стороне клиента.

Обзор классов

MongoDB\Driver\Exception\EncryptionException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected bool $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Интерфейс MongoDB\Driver\Exception\Exception

(mongodb >= 1.0.0)

Введение

Базовой интерфейс для всех исключений драйвера. Это можно использовать, что поймать только исключения, возникающие из самого драйвера.

Обзор классов

MongoDB\Driver\Exception\Exception {
}


Класс MongoDB\Driver\Exception\ExecutionTimeoutException

(mongodb >= 1.0.0)

Введение

Выбрасывается, когда запрос или команда не завершается в течение определенного периода времени (например, » maxTimeMS).

Обзор классов

final MongoDB\Driver\Exception\ExecutionTimeoutException extends MongoDB\Driver\Exception\ServerException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected bool $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Список изменений

Версия | Описание
1.5.0 | Теперь этот класс расширяет MongoDB\Driver\Exception\ServerException вместо MongoDB\Driver\Exception\RuntimeException.


Класс MongoDB\Driver\Exception\InvalidArgumentException

(mongodb >= 1.0.0)

Введение

Выбрасывается, когда методу драйвера переданы некорректные аргументы (например, недопустимые типы опций).

Обзор классов

MongoDB\Driver\Exception\InvalidArgumentException extends InvalidArgumentException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс MongoDB\Driver\Exception\LogicException

(mongodb >= 1.0.0)

Введение

Выбрасывается при неправильном использовании драйвера (например, перемотка в начало курсора).

Обзор классов

MongoDB\Driver\Exception\LogicException extends LogicException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


The MongoDB\Driver\Exception\RuntimeException class

(mongodb >= 1.0.0)

Введение

Выбрасывается, когда драйвер обнаруживает ошибку во время выполнения (например, внутренняя ошибка из » libmongoc).

Обзор классов

MongoDB\Driver\Exception\RuntimeException extends RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Свойства */
protected bool $errorLabels ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
final public hasErrorLabel ( string $errorLabel ) : bool
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Свойства

errorLabels

Содержит массив меток ошибок для исключения. Например, метки ошибок могут использоваться для определения того, можно ли безопасно провести транзакцию, если присутствует метка TransientTransactionError. Существование определенной метки ошибки должно быть проверено с помощью MongoDB\Driver\Exception\RuntimeException::hasErrorLabel() вместо интерпретации этого свойства errorLabels вручную. Contains an array of error labels to go with an exception. For example, error labels can be used to detect whether a transaction can be retried safely if the TransientTransactionError label is present. The existence of a specific error label should be tested for with the MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(), instead of interpreting this errorLabels property manually.

Список изменений

Версия | Описание
1.6.0 | Добавлены метод MongoDB\Driver\Exception\RuntimeException::hasErrorLabel() и свойство MongoDB\Driver\Exception\RuntimeException::errorLabels.

Содержание

  • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel — Возвращает, связана ли метка ошибки с исключением


Возвращает, связана ли метка ошибки с исключением

  • « MongoDB\Driver\Exception\RuntimeException
  • MongoDB\Driver\Exception\ServerException »
  • PHP Manual
  • MongoDB\Driver\Exception\RuntimeException
  • Возвращает, связана ли метка ошибки с исключением

MongoDB\Driver\Exception\RuntimeException::hasErrorLabel

(mongodb >= 1.6.0)

MongoDB\Driver\Exception\RuntimeException::hasErrorLabel — Возвращает, связана ли метка ошибки с исключением

Описание

final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool

Возвращает, был ли установлен errorLabel для этого исключения. Метки ошибок устанавливаются либо сервером, либо драйвером, чтобы указать конкретные ситуации, в которых может потребоваться принять решение о способе обработки конкретного исключения. Такой ситуацией может быть в проверке, можно ли безопасно повторить транзакцию, которая не удалась из-за временной ошибки (например, проблемы с сетью или конфликт транзакций). Примерами меток ошибок являются TransientTransactionError и UnknownTransactionCommitResult.

Список параметров

errorLabel

Название errorLabel для проверки.

Возвращаемые значения

Связана ли переданное значение параметра errorLabel с соответствующим исключением.

Смотрите также

  • MongoDB\Driver\Session::commitTransaction() - Фиксирует транзакцию
  • » Документация MongoDB по транзакциям


Класс MongoDB\Driver\Exception\ServerException

(mongodb >= 1.5.0)

Введение

Базовый класс для исключений, выброшенныз сервером. Код этого исключения и его подклассы будут соответствовать исходному коду ошибки с сервера.

Обзор классов

MongoDB\Driver\Exception\ServerException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected bool $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс MongoDB\Driver\Exception\SSLConnectionException (устаревший)

(mongodb >= 1.0.0)

Внимание

Этот класс исключений устарел и может быть удален в будущей основной версии. Драйвер никогда не выбросит это исключение.

Введение

Выбрасывается, когда драйверу не удается установить SSL-соединение с сервером.

Обзор классов

final MongoDB\Driver\Exception\SSLConnectionException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected bool $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс MongoDB\Driver\Exception\UnexpectedValueException

(mongodb >= 1.0.0)

Введение

Выбрасывается, когда драйвер сталкивается с неожиданным значением (например, во время сериализации или десериализации BSON).

Обзор классов

MongoDB\Driver\Exception\UnexpectedValueException extends UnexpectedValueException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс MongoDB\Driver\Exception\WriteException

(mongodb >= 1.0.0)

Введение

Базовый класс для исключений, вызванных неудачной операцией записи. Это исключение содержит объект MongoDB\Driver\WriteResult.

Обзор классов

abstract MongoDB\Driver\Exception\WriteException extends MongoDB\Driver\Exception\ServerException implements MongoDB\Driver\Exception\Exception {
/* Свойства */
protected MongoDB\Driver\WriteResult $writeResult ;
/* Наследуемые свойства */
protected bool $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
final public getWriteResult ( void ) : MongoDB\Driver\WriteResult
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Свойства

writeResult

Объект MongoDB\Driver\WriteResult, связанный с неудачной операцией записи.

Список изменений

Версия | Описание
1.5.0 | Теперь класс наследуется от MongoDB\Driver\Exception\ServerException вместо MongoDB\Driver\Exception\RuntimeException.

Содержание

  • MongoDB\Driver\Exception\WriteException::getWriteResult — Возвращает WriteResult для операции записи закончившейся ошибкой


Возвращает WriteResult для операции записи закончившейся ошибкой

  • « MongoDB\Driver\Exception\WriteException
  • Class Tree »
  • PHP Manual
  • MongoDB\Driver\Exception\WriteException
  • Возвращает WriteResult для операции записи закончившейся ошибкой

MongoDB\Driver\Exception\WriteException::getWriteResult

(mongodb >= 1.0.0)

MongoDB\Driver\Exception\WriteException::getWriteResult — Возвращает WriteResult для операции записи закончившейся ошибкой

Описание

final public MongoDB\Driver\Exception\WriteException::getWriteResult ( void ) : MongoDB\Driver\WriteResult

Возвращает объект MongoDB\Driver\WriteResult для операции записи, которая закончилась ошибкой. Более подробную информацию об ошибке можно получить с помощью методов MongoDB\Driver\WriteResult::getWriteErrors() и MongoDB\Driver\WriteResult::getWriteConcernError().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект MongoDB\Driver\WriteResult для операции записи закончившейся ошибкой.

Примеры

Пример #1 Пример использования MongoDB\Driver\Exception\WriteException::getWriteResult()

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost');
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 1]);

try {
    $manager->executeBulkWrite('db.collection', $bulk);
} catch (MongoDB\Driver\Exception\WriteException $e) {
    $writeResult = $e->getWriteResult();

    if ($writeConcernError = $writeResult->getWriteConcernError()) {
        var_dump($writeConcernError);
    }

    if ($writeErrors = $writeResult->getWriteErrors()) {
        var_dump($writeErrors);
    }
}

?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  object(MongoDB\Driver\WriteError)#5 (4) {
    ["message"]=>
    string(70) "E11000 duplicate key error index: db.collection.$_id_ dup key: { : 1 }"
    ["code"]=>
    int(11000)
    ["index"]=>
    int(1)
    ["info"]=>
    NULL
  }
}

Смотрите также

  • MongoDB\Driver\WriteResult
  • MongoDB\Driver\Manager::executeBulkWrite() - Выполняет одну или несколько операций записи


MongoDB Exception Class Tree

The class hierarchy for MongoDB exceptions is modeled after that of the SPL Exceptions. Base classes extend their SPL counterpart and all exception classes in the extension implement the MongoDB\Driver\Exception\Exception interface.

  • MongoDB\Driver\Exception\LogicException (extends LogicException)
  • MongoDB\Driver\Exception\InvalidArgumentException (extends InvalidArgumentException)
  • MongoDB\Driver\Exception\UnexpectedValueException (extends UnexpectedValueException)
  • MongoDB\Driver\Exception\RuntimeException (extends RuntimeException)
    • MongoDB\Driver\Exception\ConnectionException
      • MongoDB\Driver\Exception\AuthenticationException
      • MongoDB\Driver\Exception\ConnectionTimeoutException
      • MongoDB\Driver\Exception\SSLConnectionException (deprecated)
    • MongoDB\Driver\Exception\EncryptionException
    • MongoDB\Driver\Exception\ServerException
      • MongoDB\Driver\Exception\CommandException
      • MongoDB\Driver\Exception\ExecutionTimeoutException
      • MongoDB\Driver\Exception\WriteException
        • MongoDB\Driver\Exception\BulkWriteException


mSQL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Основы использования
  • mSQL Функции
    • msql_affected_rows — Возвращает количество затронутых строк
    • msql_close — Закрыть соединение mSQL
    • msql_connect — Open mSQL connection
    • msql_create_db — Create mSQL database
    • msql_createdb — Псевдоним msql_create_db
    • msql_data_seek — Move internal row pointer
    • msql_db_query — Send mSQL query
    • msql_dbname — Псевдоним 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


Введение

Эти функции позволяют вам получить доступ к базе mSQL. Более подробную информацию о mSQL можно найти по адресу » http://www.hughes.com.au/.


Установка

Для работы с этими функциями PHP должен быть скомпилирован с поддержкой msql при помощи опции --with-msql[=DIR] , где DIR - это директория установки mSQL, по умолчанию равная /usr/local/msql3.

Замечание: Замечание для пользователей Win32

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: msql.dll


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки mSQL
Имя | По умолчанию | Место изменения | Список изменений
msql.allow_persistent | "1" | PHP_INI_ALL |
msql.max_persistent | "-1" | PHP_INI_ALL |
msql.max_links | "-1" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

msql.allow_persistent boolean

Разрешить постоянные mSQL соединения.

msql.max_persistent integer

Максимальное количество постоянных соединений с mSQL на процесс.

msql.max_links integer

Максимальное количество соединений с mSQL на процесс, включая постоянные соединения.


Типы ресурсов

В модуле mSQL используется два типа ресурсов. Первый является ссылкой на идентификатор соединения с базой, второй содержит результат запроса.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MSQL_ASSOC (integer)
MSQL_NUM (integer)
MSQL_BOTH (integer)


  • « Предопределенные константы
  • Основы использования »
  • PHP Manual
  • mSQL
  • Примеры

Примеры

Содержание

  • Основы использования


Основы использования

Этот простой пример демонстрирует как установить соединение с базой данных, выполнить запрос, вывести результат запроса и разорвать соединение с базой.

Пример #1 mSQL пример использования

<?php
/* Соединяемся, выбираем базу данных */
$link = msql_connect('localhost', 'username', 'password')
    or die('Невозможно соединиться: ' . msql_error($link));

msql_select_db('database', $link)
    or die('Невозможно выбрать базу данных');

/* Выполнение SQL запроса */
$query = 'SELECT * FROM my_table';
$result = msql_query($query, $link) or die('Ошибка при выполнении запроса: ' . msql_error());

/* Выводим результат в 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";

/* Очищаем результат выборки */
msql_free_result($result);

/* Закрываем соединение */
msql_close($link);
?>


mSQL Функции

Содержание

  • msql_affected_rows — Возвращает количество затронутых строк
  • msql_close — Закрыть соединение mSQL
  • msql_connect — Open mSQL connection
  • msql_create_db — Create mSQL database
  • msql_createdb — Псевдоним msql_create_db
  • msql_data_seek — Move internal row pointer
  • msql_db_query — Send mSQL query
  • msql_dbname — Псевдоним 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


Возвращает количество затронутых строк

  • « mSQL Функции
  • msql_close »
  • PHP Manual
  • mSQL Функции
  • Возвращает количество затронутых строк

msql_affected_rows

(PHP 4, PHP 5, PHP 7)

msql_affected_rows — Возвращает количество затронутых строк

Описание

msql_affected_rows ( resource $result ) : int

Возвращает количество строк, затронутых последним запросом SELECT, UPDATE или DELETE для результирующего набора result.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

Возвращаемые значения

Возвращает количество затронутых строк в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • msql_query() - Send mSQL query


Закрыть соединение mSQL

  • « msql_affected_rows
  • msql_connect »
  • PHP Manual
  • mSQL Функции
  • Закрыть соединение mSQL

msql_close

(PHP 4, PHP 5, PHP 7)

msql_close — Закрыть соединение mSQL

Описание

msql_close ([ resource $link_identifier ] ) : bool

Функция msql_close() закрывает непостоянное соединение с сервером mSQL, связанное с заданным идентификатором.

Использование функции msql_close() не является необходимым, так как непостоянные соединения автоматически закрываются по окончании выполнения скрипта. Смотрите также высвобождение ресурсов.

Список параметров

link_identifier

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msql_connect() - Open mSQL connection
  • msql_pconnect() - Open persistent mSQL connection


Open mSQL connection

  • « msql_close
  • msql_create_db »
  • PHP Manual
  • mSQL Функции
  • Open mSQL connection

msql_connect

(PHP 4, PHP 5, PHP 7)

msql_connect — Open mSQL connection

Описание

msql_connect ([ string $hostname ] ) : resource

msql_connect() establishes a connection to a mSQL server.

If 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() - Open persistent mSQL connection
  • msql_close() - Закрыть соединение mSQL


Create mSQL database

  • « msql_connect
  • msql_createdb »
  • PHP Manual
  • mSQL Функции
  • Create mSQL database

msql_create_db

(PHP 4, PHP 5, PHP 7)

msql_create_db — Create mSQL database

Описание

msql_create_db ( string $database_name [, resource $link_identifier ] ) : bool

msql_create_db() attempts to create a new database on the mSQL server.

Список параметров

database_name

The name of the mSQL database.

link_identifier

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msql_drop_db() - Drop (delete) mSQL database


Псевдоним msql_create_db

  • « msql_create_db
  • msql_data_seek »
  • PHP Manual
  • mSQL Функции
  • Псевдоним msql_create_db

msql_createdb

(PHP 4, PHP 5, PHP 7)

msql_createdb — Псевдоним msql_create_db()

Описание

Эта функция является псевдонимом: msql_create_db().


Move internal row pointer

  • « msql_createdb
  • msql_db_query »
  • PHP Manual
  • mSQL Функции
  • Move internal row pointer

msql_data_seek

(PHP 4, PHP 5, PHP 7)

msql_data_seek — Move internal row pointer

Описание

msql_data_seek ( resource $result , int $row_number ) : bool

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

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

row_number

The seeked row number.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msql_fetch_array() - Fetch row as array
  • msql_fetch_object() - Fetch row as object
  • msql_fetch_row() - Get row as enumerated array
  • msql_result() - Get result data


Send mSQL query

  • « msql_data_seek
  • msql_dbname »
  • PHP Manual
  • mSQL Функции
  • Send mSQL query

msql_db_query

(PHP 4, PHP 5, PHP 7)

msql_db_query — Send mSQL query

Описание

msql_db_query ( string $database , string $query [, resource $link_identifier ] ) : resource

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

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

Returns a positive mSQL query identifier to the query result, or FALSE on error.

Смотрите также

  • msql_query() - Send mSQL query


Псевдоним msql_result

  • « msql_db_query
  • msql_drop_db »
  • PHP Manual
  • mSQL Функции
  • Псевдоним msql_result

msql_dbname

(PHP 4, PHP 5, PHP 7)

msql_dbname — Псевдоним msql_result()

Описание

Эта функция является псевдонимом: msql_result().


Drop (delete) mSQL database

  • « msql_dbname
  • msql_error »
  • PHP Manual
  • mSQL Функции
  • Drop (delete) mSQL database

msql_drop_db

(PHP 4, PHP 5, PHP 7)

msql_drop_db — Drop (delete) mSQL database

Описание

msql_drop_db ( string $database_name [, resource $link_identifier ] ) : bool

msql_drop_db() attempts to drop (remove) a database from the mSQL server.

Список параметров

database_name

The name of the database.

link_identifier

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msql_create_db() - Create mSQL database


Returns error message of last msql call

  • « msql_drop_db
  • msql_fetch_array »
  • PHP Manual
  • mSQL Функции
  • Returns error message of last msql call

msql_error

(PHP 4, PHP 5, PHP 7)

msql_error — Returns error message of last msql call

Описание

msql_error ( void ) : string

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.


Fetch row as array

  • « msql_error
  • msql_fetch_field »
  • PHP Manual
  • mSQL Функции
  • Fetch row as array

msql_fetch_array

(PHP 4, PHP 5, PHP 7)

msql_fetch_array — Fetch row as array

Описание

msql_fetch_array ( resource $result [, int $result_type ] ) : array

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

Обрабатываемый результат запроса, полученный с помощью функции 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);
?>

Список изменений

Версия | Описание
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() - Get row as enumerated array
  • msql_fetch_object() - Fetch row as object
  • msql_data_seek() - Move internal row pointer
  • msql_result() - Get result data


Get field information

  • « msql_fetch_array
  • msql_fetch_object »
  • PHP Manual
  • mSQL Функции
  • Get field information

msql_fetch_field

(PHP 4, PHP 5, PHP 7)

msql_fetch_field — Get field information

Описание

msql_fetch_field ( resource $result [, int $field_offset = 0 ] ) : object

msql_fetch_field() can be used in order to obtain information about fields in a certain query result.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции 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() - Set field offset


Fetch row as object

  • « msql_fetch_field
  • msql_fetch_row »
  • PHP Manual
  • mSQL Функции
  • Fetch row as object

msql_fetch_object

(PHP 4, PHP 5, PHP 7)

msql_fetch_object — Fetch row as object

Описание

msql_fetch_object ( resource $result ) : object

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

Обрабатываемый результат запроса, полученный с помощью функции 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);
?>

Список изменений

Версия | Описание
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() - Fetch row as array
  • msql_fetch_row() - Get row as enumerated array
  • msql_data_seek() - Move internal row pointer
  • msql_result() - Get result data


Get row as enumerated array

  • « msql_fetch_object
  • msql_field_flags »
  • PHP Manual
  • mSQL Функции
  • Get row as enumerated array

msql_fetch_row

(PHP 4, PHP 5, PHP 7)

msql_fetch_row — Get row as enumerated array

Описание

msql_fetch_row ( resource $result ) : array

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

Обрабатываемый результат запроса, полученный с помощью функции 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);
?>

Список изменений

Версия | Описание
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() - Fetch row as array
  • msql_fetch_object() - Fetch row as object
  • msql_data_seek() - Move internal row pointer
  • msql_result() - Get result data


Get field flags

  • « msql_fetch_row
  • msql_field_len »
  • PHP Manual
  • mSQL Функции
  • Get field flags

msql_field_flags

(PHP 4, PHP 5, PHP 7)

msql_field_flags — Get field flags

Описание

msql_field_flags ( resource $result , int $field_offset ) : string

msql_field_flags() returns the field flags of the specified field.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

field_offset

Числовое смещение поля. field_offset начинается с 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.


Get field length

  • « msql_field_flags
  • msql_field_name »
  • PHP Manual
  • mSQL Функции
  • Get field length

msql_field_len

(PHP 4, PHP 5, PHP 7)

msql_field_len — Get field length

Описание

msql_field_len ( resource $result , int $field_offset ) : int

msql_field_len() returns the length of the specified field.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

field_offset

Числовое смещение поля. field_offset начинается с 1.

Возвращаемые значения

Returns the length of the specified field or FALSE on error.


Get the name of the specified field in a result

  • « msql_field_len
  • msql_field_seek »
  • PHP Manual
  • mSQL Функции
  • Get the name of the specified field in a result

msql_field_name

(PHP 4, PHP 5, PHP 7)

msql_field_name — Get the name of the specified field in a result

Описание

msql_field_name ( resource $result , int $field_offset ) : string

msql_field_name() gets the name of the specified field index.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

field_offset

Числовое смещение поля. field_offset начинается с 1.

Возвращаемые значения

The name of the field или FALSE в случае возникновения ошибки.

Смотрите также

  • msql_field_len() - Get field length


Set field offset

  • « msql_field_name
  • msql_field_table »
  • PHP Manual
  • mSQL Функции
  • Set field offset

msql_field_seek

(PHP 4, PHP 5, PHP 7)

msql_field_seek — Set field offset

Описание

msql_field_seek ( resource $result , int $field_offset ) : bool

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

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

field_offset

Числовое смещение поля. field_offset начинается с 1.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msql_fetch_field() - Get field information


Get table name for field

  • « msql_field_seek
  • msql_field_type »
  • PHP Manual
  • mSQL Функции
  • Get table name for field

msql_field_table

(PHP 4, PHP 5, PHP 7)

msql_field_table — Get table name for field

Описание

msql_field_table ( resource $result , int $field_offset ) : int

Returns the name of the table that the specified field is in.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

field_offset

Числовое смещение поля. field_offset начинается с 1.

Возвращаемые значения

The name of the table on success или FALSE в случае возникновения ошибки.


Get field type

  • « msql_field_table
  • msql_fieldflags »
  • PHP Manual
  • mSQL Функции
  • Get field type

msql_field_type

(PHP 4, PHP 5, PHP 7)

msql_field_type — Get field type

Описание

msql_field_type ( resource $result , int $field_offset ) : string

msql_field_type() gets the type of the specified field index.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

field_offset

Числовое смещение поля. field_offset начинается с 1.

Возвращаемые значения

The type of the field. One of int, char, real, ident, null or unknown. This functions will return FALSE on failure.


Alias of msql_field_flags

  • « msql_field_type
  • msql_fieldlen »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_field_flags

msql_fieldflags

(PHP 4, PHP 5, PHP 7)

msql_fieldflags — Alias of msql_field_flags()

Описание

Эта функция является псевдонимом: msql_field_flags().


Alias of msql_field_len

  • « msql_fieldflags
  • msql_fieldname »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_field_len

msql_fieldlen

(PHP 4, PHP 5, PHP 7)

msql_fieldlen — Alias of msql_field_len()

Описание

Эта функция является псевдонимом: msql_field_len().


Alias of msql_field_name

  • « msql_fieldlen
  • msql_fieldtable »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_field_name

msql_fieldname

(PHP 4, PHP 5, PHP 7)

msql_fieldname — Alias of msql_field_name()

Описание

Эта функция является псевдонимом: msql_field_name().


Alias of msql_field_table

  • « msql_fieldname
  • msql_fieldtype »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_field_table

msql_fieldtable

(PHP 4, PHP 5, PHP 7)

msql_fieldtable — Alias of msql_field_table()

Описание

Эта функция является псевдонимом: msql_field_table().


Alias of msql_field_type

  • « msql_fieldtable
  • msql_free_result »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_field_type

msql_fieldtype

(PHP 4, PHP 5, PHP 7)

msql_fieldtype — Alias of msql_field_type()

Описание

Эта функция является псевдонимом: msql_field_type().


Free result memory

  • « msql_fieldtype
  • msql_list_dbs »
  • PHP Manual
  • mSQL Функции
  • Free result memory

msql_free_result

(PHP 4, PHP 5, PHP 7)

msql_free_result — Free result memory

Описание

msql_free_result ( resource $result ) : bool

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

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


List mSQL databases on server

  • « msql_free_result
  • msql_list_fields »
  • PHP Manual
  • mSQL Функции
  • List mSQL databases on server

msql_list_dbs

(PHP 4, PHP 5, PHP 7)

msql_list_dbs — List mSQL databases on server

Описание

msql_list_dbs ([ resource $link_identifier ] ) : resource

msql_list_tables() lists the databases available on the specified link_identifier.

Список параметров

link_identifier

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

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() - List tables in an mSQL database
  • msql_list_fields() - List result fields


List result fields

  • « msql_list_dbs
  • msql_list_tables »
  • PHP Manual
  • mSQL Функции
  • List result fields

msql_list_fields

(PHP 4, PHP 5, PHP 7)

msql_list_fields — List result fields

Описание

msql_list_fields ( string $database , string $tablename [, resource $link_identifier ] ) : resource

msql_list_fields() returns information about the given table.

Список параметров

database

The name of the database.

tablename

The name of the table.

link_identifier

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

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() - List tables in an mSQL database
  • msql_list_dbs() - List mSQL databases on server


List tables in an mSQL database

  • « msql_list_fields
  • msql_num_fields »
  • PHP Manual
  • mSQL Функции
  • List tables in an mSQL database

msql_list_tables

(PHP 4, PHP 5, PHP 7)

msql_list_tables — List tables in an mSQL database

Описание

msql_list_tables ( string $database [, resource $link_identifier ] ) : resource

msql_list_tables() lists the tables on the specified database.

Список параметров

database

The name of the database.

link_identifier

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

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() - List result fields
  • msql_list_dbs() - List mSQL databases on server


Get number of fields in result

  • « msql_list_tables
  • msql_num_rows »
  • PHP Manual
  • mSQL Функции
  • Get number of fields in result

msql_num_fields

(PHP 4, PHP 5, PHP 7)

msql_num_fields — Get number of fields in result

Описание

msql_num_fields ( resource $result ) : int

msql_num_fields() returns the number of fields in a result set.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

Возвращаемые значения

Returns the number of fields in the result set.

Смотрите также

  • msql_query() - Send mSQL query
  • msql_fetch_field() - Get field information
  • msql_num_rows() - Get number of rows in result


Get number of rows in result

  • « msql_num_fields
  • msql_numfields »
  • PHP Manual
  • mSQL Функции
  • Get number of rows in result

msql_num_rows

(PHP 4, PHP 5, PHP 7)

msql_num_rows — Get number of rows in result

Описание

msql_num_rows ( resource $query_identifier ) : int

msql_num_rows() returns the number of rows in a result set.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

Возвращаемые значения

Returns the number of rows in the result set.

Смотрите также

  • msql_num_fields() - Get number of fields in result


Alias of msql_num_fields

  • « msql_num_rows
  • msql_numrows »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_num_fields

msql_numfields

(PHP 4, PHP 5, PHP 7)

msql_numfields — Alias of msql_num_fields()

Описание

Эта функция является псевдонимом: msql_num_fields().


Alias of msql_num_rows

  • « msql_numfields
  • msql_pconnect »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_num_rows

msql_numrows

(PHP 4, PHP 5, PHP 7)

msql_numrows — Alias of msql_num_rows()

Описание

Эта функция является псевдонимом: msql_num_rows().


Open persistent mSQL connection

  • « msql_numrows
  • msql_query »
  • PHP Manual
  • mSQL Функции
  • Open persistent mSQL connection

msql_pconnect

(PHP 4, PHP 5, PHP 7)

msql_pconnect — Open persistent mSQL connection

Описание

msql_pconnect ([ string $hostname ] ) : resource

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 more efficient than 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() - Open mSQL connection
  • msql_close() - Закрыть соединение mSQL


Send mSQL query

  • « msql_pconnect
  • msql_regcase »
  • PHP Manual
  • mSQL Функции
  • Send mSQL query

msql_query

(PHP 4, PHP 5, PHP 7)

msql_query — Send mSQL query

Описание

msql_query ( string $query [, resource $link_identifier ] ) : resource

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

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

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() - Send mSQL query
  • msql_select_db() - Select mSQL database
  • msql_connect() - Open mSQL connection


Alias of sql_regcase

  • « msql_query
  • msql_result »
  • PHP Manual
  • mSQL Функции
  • Alias of sql_regcase

msql_regcase

(PHP 4, PHP 5, PHP 7)

msql_regcase — Alias of sql_regcase()

Описание

Эта функция является псевдонимом: sql_regcase().


Get result data

  • « msql_regcase
  • msql_select_db »
  • PHP Manual
  • mSQL Функции
  • Get result data

msql_result

(PHP 4, PHP 5, PHP 7)

msql_result — Get result data

Описание

msql_result ( resource $result , int $row [, mixed $field ] ) : string

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

Обрабатываемый результат запроса, полученный с помощью функции 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.


Select mSQL database

  • « msql_result
  • msql_tablename »
  • PHP Manual
  • mSQL Функции
  • Select mSQL database

msql_select_db

(PHP 4, PHP 5, PHP 7)

msql_select_db — Select mSQL database

Описание

msql_select_db ( string $database_name [, resource $link_identifier ] ) : bool

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

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msql_connect() - Open mSQL connection
  • msql_pconnect() - Open persistent mSQL connection
  • msql_query() - Send mSQL query


Alias of msql_result

  • « msql_select_db
  • msql »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_result

msql_tablename

(PHP 4, PHP 5, PHP 7)

msql_tablename — Alias of msql_result()

Описание

Эта функция является псевдонимом: msql_result().


Alias of msql_db_query

  • « msql_tablename
  • Mssql »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_db_query

msql

(PHP 4, PHP 5, PHP 7)

msql — Alias of msql_db_query()

Описание

Эта функция является псевдонимом: msql_db_query().


Microsoft SQL Server

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Mssql Функции
    • mssql_bind — Добавляет параметр хранимой процедуре или удаленной хранимой процедуре
    • mssql_close — Закрывает соединение с MS SQL Server
    • mssql_connect — Открывает соединение с MS SQL server
    • mssql_data_seek — Перемещает внутренний указатель на строку
    • mssql_execute — Запускает хранимую процедуру на сервере MS SQL
    • 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
    • mssql_fetch_batch — Returns the next batch of records
    • mssql_fetch_field — Возвращает информацию о столбце
    • mssql_fetch_object — Fetch row as object
    • mssql_fetch_row — Get row as enumerated array
    • 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 — Преобразует 16-байтовый бинарный GUID в строку
    • mssql_init — Инициализирует хранимую процедуру или удаленную хранимую процедуру
    • mssql_min_error_severity — Устанавливает минимальную серьезность ошибок
    • mssql_min_message_severity — Устанавливает минимальную серьезность сообщений
    • mssql_next_result — Move the internal result pointer to the next result
    • mssql_num_fields — Возвращает количество столбцов в результирующем наборе
    • mssql_num_rows — Возвращает количество строк в результате
    • mssql_pconnect — Открывает постоянное соединение с MS SQL
    • mssql_query — Send MS SQL query
    • mssql_result — Get result data
    • mssql_rows_affected — Возвращает количество строк, затронутых последним запросом
    • mssql_select_db — Select MS SQL database


Введение

Внимание

Эта функциональность УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDO_SQLSRV
  • PDO_ODBC
  • SQLSRV
  • Унифицированное ODBC API

Данные функции позволяют вам организовать доступ к базам данных MS SQL Server.

Это расширение более недоступно под Windows для версии PHP 5.3 и выше.

SQLSRV, альтернативный драйвер для MS SQL предоставляемый Microsoft: » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx.


Требования

Требования для платформ Win32.

Расширение требует установленного в системе "MS SQL Client Tools". "Client Tools" можно установить с "MS SQL Server CD" или скопировав ntwdblib.dll из \winnt\system32 на сервере в \winnt\system32 туда, где установлен PHP. Копирование ntwdblib.dll предоставит доступ через именованные каналы, но и только. Конфигурирование клиента потребует установки всех инструментов.

Это расширение более не доступно для Windows с версии PHP 5.3 и выше.

SqlSrv - альтернативный драйвер MS SQL, доступный на сайте Microsoft: » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx.

Требования для платформ Unix/Linux.

Для использования расширения MSSQL под Unix/Linux, вы сначала должны собрать и установить библиотеку FreeTDS. Исходники и инструкции доступны на домашней странице проекта: » http://www.freetds.org/

Замечание:

На Windows, используется DBLIB от Microsoft. Финкции, возвращающие имена столбцов, базируются на функции dbcolname() в DBLIB. DBLIB разработана для SQL Server 6.x, где максимальная длина идентификатора равна 30. Из-за этого, длина столбца ограничена 30 символами. Для платформ, где используется FreeTDS (Linux), это не является проблемой.

Замечание:

В Windows, если вы используете MSSQL 2005 или выше, вы должны скопировать ntwdblib.dll в директорию, в которую у вас установлен PHP и перезаписать его, если он там уже есть. Это из-за того, что поставляемая версия старая. В качестве альтернативы вы можете использовать » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx, ODBC, PDO_DBLIB или PDO_ODBC.


Установка

Расширение MSSQL включается при добавлении extension=php_mssql.dll в php.ini.

Чтобы оно заработало, вы должны собрать PHP с опцией --with-mssql[=DIR] , где DIR - директория установки FreeTDS. И FreeTDS должен быть собран с опцией --enable-msdblib .

Внимание

Функции MS SQL являются синонимами на функции Sybase, если PHP собран с поддержкой расширения Sybase и без расширения MS SQL.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки MS SQL Server
Имя | По умолчанию | Место изменения | Список изменений
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.compatibility_mode | "0" | PHP_INI_ALL |
mssql.connect_timeout | "5" | PHP_INI_ALL |
mssql.timeout | "60" | PHP_INI_ALL | Доступно с версии PHP 4.1.0.
mssql.textsize | "-1" | PHP_INI_ALL |
mssql.textlimit | "-1" | PHP_INI_ALL |
mssql.batchsize | "0" | PHP_INI_ALL | Доступно с версии PHP 4.0.4.
mssql.datetimeconvert | "1" | PHP_INI_ALL | Доступно с версии PHP 4.2.0.
mssql.secure_connection | "0" | PHP_INI_SYSTEM | Доступно с версии PHP 4.3.0.
mssql.max_procs | "-1" | PHP_INI_ALL | Доступно с версии PHP 4.3.0.
mssql.charset | "" | PHP_INI_ALL | Доступно с версии PHP 5.1.2 собранной с использованием FreeTDS 7.0 или выше.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.


Типы ресурсов

mssql link

Соединение, возвращаемое mssql_connect() и mssql_pconnect().

mssql result

Указатель на результат, возвращаемый mssql_query() при запросе типа SELECT.

mssql statement

Указатель на оператор SQL, возвращаемый mssql_init().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MSSQL_ASSOC (integer)
Возвращение ассоциативного массива. Используется в функции mssql_fetch_array() в параметре result_type.
MSSQL_NUM (integer)
Возвращение обычного массива (с числовыми ключами). Используется в функции mssql_fetch_array() в параметре result_type.
MSSQL_BOTH (integer)
Возвращение как ассоциативного, так и обычно массива одновременно. Используется в функции mssql_fetch_array() в параметре result_type и является значением по умолчанию.
SQLTEXT (integer)
Обозначает MSSQL тип 'TEXT'. Используется в функции mssql_bind() в параметре type.
SQLVARCHAR (integer)
Обозначает MSSQL тип 'VARCHAR'. Используется в функции mssql_bind() в параметре type.
SQLCHAR (integer)
Обозначает MSSQL тип 'CHAR'. Используется в функции mssql_bind() в параметре type.
SQLINT1 (integer)
Представляет один байт, с диапазоном значений от -128 до 127.
SQLINT2 (integer)
Представляет два байта, с диапазоном значений от -32768 до 32767.
SQLINT4 (integer)
Представляет четыре байта, с диапазоном значений от -2147483648 до 2147483647.
SQLBIT (integer)
Обозначает MSSQL тип 'BIT'. Используется в функции mssql_bind() в параметре type.
SQLFLT4 (integer)
Представляет четырех-байтовое число с плавающей запятой.
SQLFLT8 (integer)
Представляет восьми-байтовое число с плавающей запятой.


Mssql Функции

Содержание

  • mssql_bind — Добавляет параметр хранимой процедуре или удаленной хранимой процедуре
  • mssql_close — Закрывает соединение с MS SQL Server
  • mssql_connect — Открывает соединение с MS SQL server
  • mssql_data_seek — Перемещает внутренний указатель на строку
  • mssql_execute — Запускает хранимую процедуру на сервере MS SQL
  • 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
  • mssql_fetch_batch — Returns the next batch of records
  • mssql_fetch_field — Возвращает информацию о столбце
  • mssql_fetch_object — Fetch row as object
  • mssql_fetch_row — Get row as enumerated array
  • 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 — Преобразует 16-байтовый бинарный GUID в строку
  • mssql_init — Инициализирует хранимую процедуру или удаленную хранимую процедуру
  • mssql_min_error_severity — Устанавливает минимальную серьезность ошибок
  • mssql_min_message_severity — Устанавливает минимальную серьезность сообщений
  • mssql_next_result — Move the internal result pointer to the next result
  • mssql_num_fields — Возвращает количество столбцов в результирующем наборе
  • mssql_num_rows — Возвращает количество строк в результате
  • mssql_pconnect — Открывает постоянное соединение с MS SQL
  • mssql_query — Send MS SQL query
  • mssql_result — Get result data
  • mssql_rows_affected — Возвращает количество строк, затронутых последним запросом
  • mssql_select_db — Select MS SQL database


Добавляет параметр хранимой процедуре или удаленной хранимой процедуре

  • « Mssql Функции
  • mssql_close »
  • PHP Manual
  • Mssql Функции
  • Добавляет параметр хранимой процедуре или удаленной хранимой процедуре

mssql_bind

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_bind — Добавляет параметр хранимой процедуре или удаленной хранимой процедуре

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::bindParam()
  • PDOStatement::bindValue()
  • sqlsrv_prepare()
  • odbc_prepare()

Описание

mssql_bind ( resource $stmt , string $param_name , mixed &$var , int $type [, bool $is_output = FALSE [, bool $is_null = FALSE [, int $maxlen = -1 ]]] ) : bool

Добавляет параметр хранимой процедуре или удаленной хранимой процедуре.

Список параметров

stmt

Подготовленный оператор, возвращаемый mssql_init().

param_name

Имя параметра в виде строки.

Замечание:

Вы должны использовать символ @, как в синтаксисе T-SQL. Подробное опеисание в разделе, посвященном mssql_execute().

var

Переменная PHP, которую вы связываете с параметром MSSQL. Она передается по ссылке, для извлечения OUTPUT и RETVAL после запуска процедуры.

type

Одна из констант: SQLTEXT, SQLVARCHAR, SQLCHAR, SQLINT1, SQLINT2, SQLINT4, SQLBIT, SQLFLT4, SQLFLT8, SQLFLTN.

is_output

Определяет, что параметр является OUTPUT. Если этот параметр является OUTPUT, но вы его не обозначили таковым, то он будет считаться обычным параметром и ошибка вызвана не будет.

is_null

Определяет, имеет ли параметр значение NULL или нет. Простая передача NULL через var для этого не подходит.

maxlen

Используется с типами CHAR и VARCHAR. Вы должны указывать длину данных, так что если параметр VARCHAR(50), то тип необходимо указать как SQLVARCHAR, а этот параметр как 50.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример mssql_bind()

<?php
// Соединяемся с MSSQL и выбираем базу
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Создаем новую хранимую процедуру
$stmt = mssql_init('NewUserRecord');

// Связываем имена полей
mssql_bind($stmt, '@username',  'Kalle',  SQLVARCHAR,  false,  false,  60);
mssql_bind($stmt, '@name',      'Kalle',  SQLVARCHAR,  false,  false,  60);
mssql_bind($stmt, '@age',       19,       SQLINT1,     false,  false,   3);

// Запускаем
mssql_execute($stmt);

// Освобождаем
mssql_free_statement($stmt);
?>

Смотрите также

  • mssql_execute() - Запускает хранимую процедуру на сервере MS SQL
  • mssql_free_statement() - Освобождает память, занятую оператором
  • mssql_init() - Инициализирует хранимую процедуру или удаленную хранимую процедуру


Закрывает соединение с MS SQL Server

  • « mssql_bind
  • mssql_connect »
  • PHP Manual
  • Mssql Функции
  • Закрывает соединение с MS SQL Server

mssql_close

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_close — Закрывает соединение с MS SQL Server

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • sqlsrv_close()
  • odbc_close()
  • odbc_close_all()

Описание

mssql_close ([ resource $link_identifier ] ) : bool

Закрывает соединение с MS SQL Server, заданное ассоциированным с ним идентификатором. Если идентификатор не указан, то будет закрыто последнее открытое соединение.

Обратите внимание, что обычно это делать не обязательно, так как непостоянные соединения закрываются автоматически после окончания работы скрипта.

Список параметров

link_identifier

Идентификатор соединения MS SQL, возвращенный функцией mssql_connect().

Эта функция не закрывает постоянные соединения, открытые функцией mssql_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример mssql_close()

<?php
// Соединяемся с MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

// Тут творим, что хотим

// Закрываем соединение с MSSQL
mssql_close($link);
?>

Смотрите также

  • mssql_connect() - Открывает соединение с MS SQL server
  • mssql_pconnect() - Открывает постоянное соединение с MS SQL


Открывает соединение с MS SQL server

  • « mssql_close
  • mssql_data_seek »
  • PHP Manual
  • Mssql Функции
  • Открывает соединение с MS SQL server

mssql_connect

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_connect — Открывает соединение с MS SQL server

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDO::__construct()
  • sqlsrv_connect()
  • odbc_connect()

Описание

mssql_connect ([ string $servername [, string $username [, string $password [, bool $new_link = FALSE ]]]] ) : resource

mssql_connect() устанавливает соединение с MS SQL server.

Подключение к серверу будет закрыто как только будет завершено выполнение скрипта, если его не закрыть раньше с помощью функции mssql_close().

Список параметров

servername

Сервер MS SQL. Может также включать номер порта, например hostname:port (Linux), или hostname,port (Windows).

username

Имя пользователя.

password

Пароль.

new_link

Если mssql_connect() будет вызвана повторно с теми же аргументами, то нового соединения создано не будет, а ,вместо этого, будет возвращен уже существующий идентификатор подключения. Этот параметр изменяет такое поведение, и заставляет mssql_connect() всегда создавать новое соединение, даже если mssql_connect() была вызвана ранее с такими же параметрами.

Возвращаемые значения

Возвращает идентификатор соединения с MS SQL в случае успеха, или FALSE при ошибке.

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр new_link

Примеры

Пример #1 Пример использования mssql_connect()

<?php
// Сервер в формате: <computer>\<instance name> или
// <server>,<port> при использовании нестандартного порта
$server = 'KALLESPC\SQLEXPRESS';

// Подключение к MSSQL
$link = mssql_connect($server, 'sa', 'phpfi');

if (!$link) {
    die('Something went wrong while connecting to MSSQL');
}
?>

Смотрите также

  • mssql_close() - Закрывает соединение с MS SQL Server
  • mssql_pconnect() - Открывает постоянное соединение с MS SQL


Перемещает внутренний указатель на строку

  • « mssql_connect
  • mssql_execute »
  • PHP Manual
  • Mssql Функции
  • Перемещает внутренний указатель на строку

mssql_data_seek

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_data_seek — Перемещает внутренний указатель на строку

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • Используйте OFFSET с PDO_SQLSRV, PDO_ODBC, SQLSRV, or the унифицированным драйвером ODBC.

Описание

mssql_data_seek ( resource $result_identifier , int $row_number ) : bool

mssql_data_seek() перемещает указатель на строку в заданном результирующем наборе MS SQL на указанную позицию. Первая строка имеет индекс 0. Следующий вызов mssql_fetch_row() вернет строку, на которую указывает указатель.

Список параметров

result_identifier

Результирующий набор.

row_number

Выбранная позиция, на которую надо переместить указатель.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример mssql_data_seek()

<?php
// Соединяемся с MSSQL и выбираем базу
$link = mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Делаем выборку
$result = mssql_query('SELECT [name], [age] FROM [persons] WHERE [age] >= 13');

if (!$result) {
    die('Query failed.');
}

// Выбираем каждую четвертую строку
for ($i = mssql_num_rows($result) - 1; $i % 4; $i++) {
    if (!mssql_data_seek($result, $i)) {
        continue;
    }

    // Забираем строку ...
}

// Очищаем результат
mssql_free_result($result);
?>


Запускает хранимую процедуру на сервере MS SQL

  • « mssql_data_seek
  • mssql_fetch_array »
  • PHP Manual
  • Mssql Функции
  • Запускает хранимую процедуру на сервере MS SQL

mssql_execute

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_execute — Запускает хранимую процедуру на сервере MS SQL

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • Используйте запрос EXEC с PDO_SQLSRV, PDO_ODBC, SQLSRV, или унифицированным драйвером ODBC.

Описание

mssql_execute ( resource $stmt [, bool $skip_results = FALSE ] ) : mixed

Запускает хранимую процедуру на сервере MS SQL

Список параметров

stmt

Подготовленный оператор, возвращаемый mssql_init().

skip_results

Возвращать результат или нет.

Примеры

Пример #1 Пример mssql_execute()

<?php
// Создание нового оператора
$stmt = mssql_init('NewBlogEntry');

// Несколько строк с данными
$title = 'Тестирование системы блогов';
$content = 'Если вы читаете это, значит система совместима с MSSQL';

// Bind values
mssql_bind($stmt, '@author',    'Felipe Pena',  SQLVARCHAR,     false,  false,   60);
mssql_bind($stmt, '@date',      '08/10/2008',   SQLVARCHAR,     false,  false,   20);
mssql_bind($stmt, '@title',     $title,         SQLVARCHAR,     false,  false,   60);
mssql_bind($stmt, '@content',   $content,       SQLTEXT);

// Запускаем процедуру
mssql_execute($stmt);

// Очищаем оператор
mssql_free_statement($stmt);
?>

Примечания

Замечание:

Если хранимая процедура возвращает параметры, или некоторое значение, они будут доступны сразу после запуска mssql_execute(), только если процедура не возвращает несколько результирующих наборов. В таком случае необходимо использовать mssql_next_result() для перебора результирующих наборов. Как только будет обработан последний результирующий набор, станут доступны возвращаемые параметры и значения.

Смотрите также

  • mssql_bind() - Добавляет параметр хранимой процедуре или удаленной хранимой процедуре
  • mssql_free_statement() - Освобождает память, занятую оператором
  • mssql_init() - Инициализирует хранимую процедуру или удаленную хранимую процедуру


Fetch a result row as an associative array, a numeric array, or both

  • « mssql_execute
  • mssql_fetch_assoc »
  • PHP Manual
  • Mssql Функции
  • Fetch a result row as an associative array, a numeric array, or both

mssql_fetch_array

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_array — Fetch a result row as an associative array, a numeric array, or both

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::fetch()
  • sqlsrv_fetch_array()
  • odbc_fetch_array()

Описание

mssql_fetch_array ( resource $result [, int $result_type = MSSQL_BOTH ] ) : array

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.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

result_type

The type of array that is to be fetched. It's a constant and can take the following values: MSSQL_ASSOC, MSSQL_NUM, and MSSQL_BOTH.

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Примеры

Пример #1 mssql_fetch_array() example

<?php
// Send a select query to MSSQL
$query = mssql_query('SELECT [username], [name] FROM [php].[dbo].[userlist]');

// Check if there were any records
if (!mssql_num_rows($query)) {
    echo 'No records found';
} else {
    // The following is equal to the code below:
    //
    // while ($row = mssql_fetch_row($query)) {

    while ($row = mssql_fetch_array($query, MSSQL_NUM)) {
        // ...
    }
}

// Free the query result
mssql_free_result($query);
?>

Примечания

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

  • mssql_fetch_row() - Get row as enumerated array


Returns an associative array of the current row in the result

  • « mssql_fetch_array
  • mssql_fetch_batch »
  • PHP Manual
  • Mssql Функции
  • Returns an associative array of the current row in the result

mssql_fetch_assoc

(PHP 4 >= 4.2.0, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_assoc — Returns an associative array of the current row in the result

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::fetch()
  • sqlsrv_fetch_array()
  • odbc_fetch_array()

Описание

mssql_fetch_assoc ( resource $result_id ) : array

Returns an associative array that corresponds to the fetched row and moves the internal data pointer ahead. mssql_fetch_assoc() is equivalent to calling mssql_fetch_array() with MSSQL_ASSOC for the optional second parameter.

Список параметров

result_id

The result resource that is being evaluated. This result comes from a call to mssql_query().

Возвращаемые значения

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows.

Примеры

Пример #1 mssql_fetch_assoc() example

<?php
// Send a select query to MSSQL
$query = mssql_query('SELECT [username], [name] FROM [php].[dbo].[userlist]');

// Check if there were any records
if (!mssql_num_rows($query)) {
    echo 'No records found';
}
else
{
    // Print a nice list of users in the format of:
    // * name (username)

    echo '<ul>';

    while ($row = mssql_fetch_assoc($query)) {
        echo '<li>' . $row['name'] . ' (' . $row['username'] . ')</li>';
    }

    echo '</ul>';
}

// Free the query result
mssql_free_result($query);
?>


Returns the next batch of records

  • « mssql_fetch_assoc
  • mssql_fetch_field »
  • PHP Manual
  • Mssql Функции
  • Returns the next batch of records

mssql_fetch_batch

(PHP 4 >= 4.0.4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_batch — Returns the next batch of records

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

mssql_fetch_batch ( resource $result ) : int

Returns the next batch of records.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

Возвращаемые значения

Returns the number of rows in the returned batch.

Примеры

Пример #1 mssql_fetch_batch() example

<?php
// Connect to MSSQL and select the database
$link = mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Send a query
$result = mssql_query('SELECT * FROM [php].[dbo].[people]', $link, 100);
$records = 10;

while ($records >= 0) {
    while ($row = mssql_fetch_assoc($result)) {
        // Do stuff ...
    }

    --$records;
}

if ($batchsize = mssql_fetch_batch($result)) {
    // $batchsize is the number of records left
    // in the result, but not shown above
}
?>


Возвращает информацию о столбце

  • « mssql_fetch_batch
  • mssql_fetch_object »
  • PHP Manual
  • Mssql Функции
  • Возвращает информацию о столбце

mssql_fetch_field

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_field — Возвращает информацию о столбце

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::getColumnMeta()
  • sqlsrv_field_metadata()
  • Различные функции odbc_field_* в унифицированном драйвере ODBC.

Описание

mssql_fetch_field ( resource $result [, int $field_offset = -1 ] ) : object

mssql_fetch_field() используется для получения информации о столбце из результирующего набора.

Список параметров

result

Результирующий набор, полученный как результат вызова mssql_query().

field_offset

Числовой индекс столбца. Если не задано, то будет использован следующий еще не извлеченный столбец. field_offset начинаются с 0.

Возвращаемые значения

Возвращает объект, содержащий информацию о столбце.

Объект содержит следующие свойства:

  • name - имя столбца. Если столбец является результатом функции, то имя задастся автоматически следующим образом - "computed#N", где #N - серийный номер.
  • column_source - имя таблицы, из которой выбран этот столбец.
  • max_length - максимальная длина поля.
  • numeric - 1, если поле числовое.
  • type - тип поля.

Примеры

Пример #1 Пример mssql_fetch_field()

<?php
// Соединяемся с MSSQL и выбираем базу
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Делаем выборку
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]');

// Рисуем таблицу
echo '<h3>Структура таблицы \'persons\'</h3>';
echo '<table border="1">';

// Заголовок таблицы
echo '<thead>';
echo '<tr>';
echo '<td>Имя столбца</td>';
echo '<td>Тип</td>';
echo '<td>Максимальная длина</td>';
echo '</tr>';
echo '</thead>';

// Выводим поля
echo '<tbody>';

for ($i = 0; $i < mssql_num_fields($query); ++$i) {
    // Fetch the field information
    $field = mssql_fetch_field($query, $i);

    // Print the row
    echo '<tr>';
    echo '<td>' . $field->name . '</td>';
    echo '<td>' . strtoupper($field->type) . '</td>';
    echo '<td>' . $field->max_length . '</td>';
    echo '</tr>';
}

echo '</tbody>';
echo '</table>';

// Освобождаем результирующий набор
mssql_free_result($query);
?>

Смотрите также

  • mssql_field_seek() - Перемещение к указанному полю


Fetch row as object

  • « mssql_fetch_field
  • mssql_fetch_row »
  • PHP Manual
  • Mssql Функции
  • Fetch row as object

mssql_fetch_object

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_object — Fetch row as object

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::fetchObject()
  • sqlsrv_fetch_object()
  • odbc_fetch_object()

Описание

mssql_fetch_object ( resource $result ) : object

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).

Speed-wise, the function is identical to mssql_fetch_array(), and almost as quick as mssql_fetch_row() (the difference is insignificant).

Список параметров

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

Возвращаемые значения

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

Примеры

Пример #1 mssql_fetch_object() example

<?php
// Send a select query to MSSQL
$query = mssql_query('SELECT [username], [name] FROM [php].[dbo].[userlist]');

// Check if there were any records
if (!mssql_num_rows($query)) {
    echo 'No records found';
} else {
    // Print a nice list of users in the format of:
    // * name (username)

    echo '<ul>';

    while ($row = mssql_fetch_object($query)) {
        echo '<li>' . $row->name . ' (' . $row->username . ')</li>';
    }

    echo '</ul>';
}

// Free the query result
mssql_free_result($query);
?>

Примечания

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

  • mssql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • mssql_fetch_row() - Get row as enumerated array


Get row as enumerated array

  • « mssql_fetch_object
  • mssql_field_length »
  • PHP Manual
  • Mssql Функции
  • Get row as enumerated array

mssql_fetch_row

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_row — Get row as enumerated array

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::fetch()
  • sqlsrv_fetch_array()
  • odbc_fetch_row()

Описание

mssql_fetch_row ( resource $result ) : array

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.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Примеры

Пример #1 mssql_fetch_row() example

<?php
// Connect to MSSQL and select the database
$link = mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Query to execute
$query = mssql_query('SELECT [id], [quote] FROM [quotes] WHERE [id] = \'42\'', $link);

// Did the query fail?
if (!$query) {
    die('MSSQL error: ' . mssql_get_last_message());
}

// Fetch the row
$row = mssql_fetch_row($query);

// Print the 'quote'
echo 'Quote #' . $row[0] . ': "' . $row[1] . '"';
?>

Результатом выполнения данного примера будет что-то подобное:

Quote #42: "The answer to everything..."

Примечания

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

  • mssql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • mssql_fetch_object() - Fetch row as object
  • mssql_data_seek() - Перемещает внутренний указатель на строку
  • mssql_result() - Get result data


Получить длину поля

  • « mssql_fetch_row
  • mssql_field_name »
  • PHP Manual
  • Mssql Функции
  • Получить длину поля

mssql_field_length

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_length — Получить длину поля

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::getColumnMeta()
  • sqlsrv_field_metadata()
  • odbc_field_len()

Описание

mssql_field_length ( resource $result [, int $offset = -1 ] ) : int

Возвращает длину поля с индексом offset в result.

Список параметров

result

Результирующий набор, полученный после запуска mssql_query().

offset

Индекс поля. Первое поле имеет индекс 0. Если пропущено, то используется текущее поле.

Возвращаемые значения

Возвращает длину поля по указанному индексу, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример mssql_field_length()

<?php
// Соединяемся с MSSQL и выбираем базу
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Делаем выборку
$query = mssql_query('SELECT [name], [age] FROM [php].[dbo].[persons]');

// Печатаем длину поля
echo 'Поле \'age\' имеет размер ' . mssql_field_length($query, 1);

// Очищаем результат
mssql_free_result($query);
?>

Результатом выполнения данного примера будет что-то подобное:

Поле 'age' имеет размер 4

Примечания

Замечание: Замечание для пользователей Windows

В связи с ограничениями, лежащими в основе API используемого PHP (MS DBLib C API), длина поля VARCHAR ограничена 255. Если вам нужно манипулировать более длинными строками, используйте поле TEXT.

Смотрите также

  • mssql_field_name() - Получить имя поля
  • mssql_field_type() - Возвращает тип поля


Получить имя поля

  • « mssql_field_length
  • mssql_field_seek »
  • PHP Manual
  • Mssql Функции
  • Получить имя поля

mssql_field_name

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_name — Получить имя поля

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::getColumnMeta()
  • sqlsrv_field_metadata()
  • odbc_field_name()

Описание

mssql_field_name ( resource $result [, int $offset = -1 ] ) : string

Возвращает имя поля по индексу offset в result.

Список параметров

result

Результирующий набор, полученный из mssql_query().

offset

Индекс поля. Первое поле имеет индекс 0. Если опущено, то используется текущее поле.

Возвращаемые значения

Возвращает имя поля по указанному индексу, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример mssql_field_name()

<?php
// Соединяемся с MSSQL и выбираем базу
$query = mssql_query('SELECT [username], [name], [email] FROM [php].[dbo].[userlist]');

echo 'Результирующий набор содержит поля:', PHP_EOL;

// Выводим все имена полей
for ($i = 0; $i < mssql_num_fields($query); ++$i) {
    echo ' - ' . mssql_field_name($query, $i), PHP_EOL;
}

// Освобождаем результат
mssql_free_result($query);
?>

Результатом выполнения данного примера будет что-то подобное:

Результирующий набор содержит поля:
 - username
 - name
 - email

Смотрите также

  • mssql_field_length() - Получить длину поля
  • mssql_field_type() - Возвращает тип поля


Перемещение к указанному полю

  • « mssql_field_name
  • mssql_field_type »
  • PHP Manual
  • Mssql Функции
  • Перемещение к указанному полю

mssql_field_seek

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_seek — Перемещение к указанному полю

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

mssql_field_seek ( resource $result , int $field_offset ) : bool

Перемещение к указанному полю. Если в следующем вызове mssql_fetch_field() индекс поля указан не будет, то вернется это поле.

Список параметров

result

Результирующий набор, полученный из mssql_query().

field_offset

Индекс поля. Первое поле имеет индекс 0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Использование mssql_field_seek() для mssql_fetch_field()

<?php
// Соединяемся с MSSQL и выбираем базу
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Делаем выборку
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]');

// Создаем структуру таблицы
echo '<h3>Структура \'persons\'</h3>';
echo '<table border="1">';

// Заголовок таблицы
echo '<thead>';
echo '<tr>';
echo '<td>Имя поля</td>';
echo '<td>Тип данных</td>';
echo '<td>Максимальная длина</td>';
echo '</tr>';
echo '</thead>';

// Выводим все поля
echo '<tbody>';

for ($i = 0; $i < mssql_num_fields($query); ++$i) {
    // Забираем информацию по полю, помните, что
    // field_offset не должен быть задан.
    $field = mssql_fetch_field($query);

    // Печатаем строку
    echo '<tr>';
    echo '<td>' . $field->name . '</td>';
    echo '<td>' . strtoupper($field->type) . '</td>';
    echo '<td>' . $field->max_length . '</td>';
    echo '</tr>';

    // Перемещаем внутренний указатель
    // к следующей строке
    mssql_field_seek($query, $i + 1);
}

echo '</tbody>';
echo '</table>';

// Освобождаем результат
mssql_free_result($query);
?>

Смотрите также

  • mssql_fetch_field() - Возвращает информацию о столбце


Возвращает тип поля

  • « mssql_field_seek
  • mssql_free_result »
  • PHP Manual
  • Mssql Функции
  • Возвращает тип поля

mssql_field_type

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_type — Возвращает тип поля

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::getColumnMeta()
  • sqlsrv_field_metadata()
  • odbc_field_type()

Описание

mssql_field_type ( resource $result [, int $offset = -1 ] ) : string

Возвращает тип поля по индексу offset в result.

Список параметров

result

Результирующий набор, полученный из mssql_query().

offset

Индекс поля. Первое поле имеет индекс 0. Если опущено, то используется текущее поле.

Возвращаемые значения

Возвращает тип поля по указанному индексу, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример mssql_field_type()

<?php
// Соединяемся с MSSQL и выбираем базу
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Делаем выборку
$query = mssql_query('SELECT [name] FROM [php].[dbo].[persons]');

// Печатаем длину и тип поля
echo '\'' . mssql_field_name($query, 0) . '\' типа ' .
     strtoupper(mssql_field_type($query, 0)) .
     '(' . mssql_field_length($query, 0) . ')';

// Free the query result
mssql_free_result($query);
?>

Результатом выполнения данного примера будет что-то подобное:

'name' типа CHAR(50)

Смотрите также

  • mssql_field_length() - Получить длину поля
  • mssql_field_name() - Получить имя поля


Освобоздает память, занятую результирующим набором

  • « mssql_field_type
  • mssql_free_statement »
  • PHP Manual
  • Mssql Функции
  • Освобоздает память, занятую результирующим набором

mssql_free_result

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_free_result — Освобоздает память, занятую результирующим набором

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • odbc_free_result()

Описание

mssql_free_result ( resource $result ) : bool

Запускать mssql_free_result() имеет смысл только в том случае, если вы сильно обеспокоены потреблением памяти во время работы вашего скрипта. Вся память, занятая результатами запросов, автоматически освобождается после окончания работы скрипта. Используя функцию mssql_free_result(), вы освобождаете память, занятую результатом запроса, сразу же.

Список параметров

result

Результирующий набор, полученный в результате выполнения mssql_query(), который надо удалить.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример mssql_free_result()

<?php
// Делаем выборку
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]', $link);

// Работаем с полученными данными

// Как только данные больше не нужны, очищаем их
mssql_free_result($query);
?>

Смотрите также

  • mssql_free_statement() - Освобождает память, занятую оператором


Освобождает память, занятую оператором

  • « mssql_free_result
  • mssql_get_last_message »
  • PHP Manual
  • Mssql Функции
  • Освобождает память, занятую оператором

mssql_free_statement

(PHP 4 >= 4.3.2, PHP 5, PECL odbtp >= 1.1.1)

mssql_free_statement — Освобождает память, занятую оператором

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • sqlsrv_free_stmt()

Описание

mssql_free_statement ( resource $stmt ) : bool

Запускать mssql_free_statement() имеет смысл только в том случае, если вы сильно обеспокоены потреблением памяти во время работы вашего скрипта. Вся память, занятая оператором, автоматически освобождается после окончания работы скрипта. Используя функцию mssql_free_statement(), вы освобождаете память, занятую оператором, сразу же.

Список параметров

stmt

Оператор, полученный из mssql_init().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример mssql_free_statement()

<?php
// Создаем оператор
$stmt = mssql_init('test');

// тут связываем значения и запускаем

// Как закончили - освобождаем занятую память
mssql_free_statement($stmt);
?>

Смотрите также

  • mssql_bind() - Добавляет параметр хранимой процедуре или удаленной хранимой процедуре
  • mssql_execute() - Запускает хранимую процедуру на сервере MS SQL
  • mssql_init() - Инициализирует хранимую процедуру или удаленную хранимую процедуру
  • mssql_free_result() - Освобоздает память, занятую результирующим набором


Возвращает последнее сообщение от сервера

  • « mssql_free_statement
  • mssql_guid_string »
  • PHP Manual
  • Mssql Функции
  • Возвращает последнее сообщение от сервера

mssql_get_last_message

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_get_last_message — Возвращает последнее сообщение от сервера

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::errorInfo()
  • sqlsrv_errors()
  • odbc_errormsg()

Описание

mssql_get_last_message ( void ) : string

Возвращает последнее сообщение от сервера MS-SQL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает последнее сообщение об ошибке, или пустую строку, если ошибок небыло.

Примеры

Пример #1 Пример mssql_get_last_message()

<?php
// Соединяемся с MSSQL и выбираем базу
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Запускаем запрос с ошибкой
$query = @mssql_query('SELECT * FROM [php].[dbo].[not-found]');

if (!$query) {
    // Если выполнение запроса завершилось с ошибкой,
    // печатаем человекочитаемую ошибку mssql_get_last_message()
    die('MSSQL error: ' . mssql_get_last_message());
}
?>

Результатом выполнения данного примера будет что-то подобное:

MSSQL error: Invalid object name 'php.dbo.not-found'.

Смотрите также

  • mssql_min_error_severity() - Устанавливает минимальную серьезность ошибок
  • mssql_min_message_severity() - Устанавливает минимальную серьезность сообщений


Преобразует 16-байтовый бинарный GUID в строку

  • « mssql_get_last_message
  • mssql_init »
  • PHP Manual
  • Mssql Функции
  • Преобразует 16-байтовый бинарный GUID в строку

mssql_guid_string

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_guid_string — Преобразует 16-байтовый бинарный GUID в строку

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

mssql_guid_string ( string $binary [, bool $short_format = FALSE ] ) : string

Преобразует 16-байтовый бинарный GUID в строку.

Список параметров

binary

16-байтовый бинарный GUID.

short_format

Для использования короткого формата.

Возвращаемые значения

В случае успеха возвращает преобразованную строку.

Примеры

Пример #1 Пример mssql_guid_string()

<?php
$binary = '19555081977808608437941339997619274330352755554827939936';

var_dump(mssql_guid_string($binary));
var_dump(mssql_guid_string($binary, true));
?>

Результат выполнения данного примера:

string(36) "35353931-3035-3138-3937-373830383630"
string(32) "31393535353038313937373830383630"


Инициализирует хранимую процедуру или удаленную хранимую процедуру

  • « mssql_guid_string
  • mssql_min_error_severity »
  • PHP Manual
  • Mssql Функции
  • Инициализирует хранимую процедуру или удаленную хранимую процедуру

mssql_init

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_init — Инициализирует хранимую процедуру или удаленную хранимую процедуру

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • Используйте запрос EXEC с PDO_SQLSRV, PDO_ODBC, SQLSRV, или унифицированным драйвером ODBC.

Описание

mssql_init ( string $sp_name [, resource $link_identifier ] ) : resource

Инициализирует хранимую процедуру или удаленную хранимую процедуру.

Список параметров

sp_name

Имя хранимой процедуры, такое как ownew.sp_name или otherdb.owner.sp_name.

link_identifier

Идентификатор соединения MS SQL, возвращенный mssql_connect().

Возвращаемые значения

Возвращает идентификатор ресурса "оператора", используемого в последующих вызовах mssql_bind() и mssql_execute(), или FALSE в случае ошибки.

Примеры

Пример #1 mssql_init() example

<?php
// Соединение с MSSQL и выбор базы
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Создание нового оператора
$stmt = mssql_init('StatementTest', $link);

// Тут связываем значения

// Как только значения связаны, вызываем наш оператор
// используя mssql_execute:
mssql_execute($stmt);

// А теперь освобождаем его:
mssql_free_statement($stmt);
?>

Смотрите также

  • mssql_bind() - Добавляет параметр хранимой процедуре или удаленной хранимой процедуре
  • mssql_execute() - Запускает хранимую процедуру на сервере MS SQL
  • mssql_free_statement() - Освобождает память, занятую оператором


Устанавливает минимальную серьезность ошибок

  • « mssql_init
  • mssql_min_message_severity »
  • PHP Manual
  • Mssql Функции
  • Устанавливает минимальную серьезность ошибок

mssql_min_error_severity

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_min_error_severity — Устанавливает минимальную серьезность ошибок

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

mssql_min_error_severity ( int $severity ) : void

Устанавливает минимальную серьезность ошибок.

Список параметров

severity

новое значение минимальной серьезности ошибок.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример mssql_min_error_severity()

<?php
// Соединяемся с MSSQL и выбираем базу
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Устанавливаем серьезность так, что бы синтаксические
// ошибки  не включались. Для этого задаем ее больше или равной 1
mssql_min_error_severity(1);

// Посылаем запрос с синтаксической ошибкой.
// В этом случае мы использовали синтаксис MySQl
// для обертки имен полей (`) вместо синтаксиса MSSQL - квадратные скобки.
$query = mssql_query('SELECT `syntax`, `error` FROM `MSSQL`');

if (!$query) {
    // Обработчик ошибок ...
}
?>


Устанавливает минимальную серьезность сообщений

  • « mssql_min_error_severity
  • mssql_next_result »
  • PHP Manual
  • Mssql Функции
  • Устанавливает минимальную серьезность сообщений

mssql_min_message_severity

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_min_message_severity — Устанавливает минимальную серьезность сообщений

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

mssql_min_message_severity ( int $severity ) : void

Устанавливает минимальную серьезность сообщений.

Список параметров

severity

Новая минимальная серьезность сообщений.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример mssql_min_message_severity()

<?php
// Соединяемся с MSSQL
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

// Устанавливаем минимальную серьезность сообщений равной 17,
// это не позволит выводить сообщения API, о том, что мы выбрали
// несуществующую базу данных
mssql_min_message_severity(17);

// Выбираем несуществующую базу данных
mssql_select_db('THIS_DATABASE_DOES_NOT_EXISTS');
?>

Результат выполнения данного примера:

mssql_select_db(): Unable to select database:  THIS_DATABASE_DOES_NOT_EXISTS


Move the internal result pointer to the next result

  • « mssql_min_message_severity
  • mssql_num_fields »
  • PHP Manual
  • Mssql Функции
  • Move the internal result pointer to the next result

mssql_next_result

(PHP 4 >= 4.0.5, PHP 5, PECL odbtp >= 1.1.1)

mssql_next_result — Move the internal result pointer to the next result

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::nextRowset()
  • sqlsrv_next_result()
  • odbc_next_result()

Описание

mssql_next_result ( resource $result_id ) : bool

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.

Список параметров

result_id

The result resource that is being evaluated. This result comes from a call to mssql_query().

Возвращаемые значения

Returns TRUE if an additional result set was available or FALSE otherwise.

Примеры

Пример #1 mssql_next_result() example

<?php
// Connect to MSSQL and select the database
$link = mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Send a query to MSSQL
$sql = 'SELECT [name], [age] FROM [php].[dbo].[persons]';
$query = mssql_query($sql, $link);

// Iterate through returned records
do {
    while ($row = mssql_fetch_row($query)) {
        // Handle record ...
    }
} while (mssql_next_result($query));

// Clean up
mssql_free_result($query);
mssql_close($link);
?>


Возвращает количество столбцов в результирующем наборе

  • « mssql_next_result
  • mssql_num_rows »
  • PHP Manual
  • Mssql Функции
  • Возвращает количество столбцов в результирующем наборе

mssql_num_fields

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_num_fields — Возвращает количество столбцов в результирующем наборе

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::columnCount()
  • sqlsrv_num_fields()
  • odbc_num_fields()

Описание

mssql_num_fields ( resource $result ) : int

mssql_num_fields() возвращает количество столбцов в результирующем наборе.

Список параметров

result

Результирующий набор, полученный как результат вызова mssql_query().

Возвращаемые значения

Возвращает целое число, равное количеству столбцов в результирующем наборе.

Примеры

Пример #1 Пример mssql_num_fields()

<?php
// Соединяемся с MSSQL и выбираем базу
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Делаем запрос
$data = mssql_query('SELECT [name], [age] FROM [php].[dbo].[persons]');

// Создаем таблицу
echo '<table border="1">';

$header = false;

// Проходим по результирующему набору
while ($row = mssql_fetch_array($data)) {
    // Строим заголовок таблицы
    if (!$header) {
        echo '<thead>';
        echo '<tr>';

        for ($i = 1; ($i + 1) <= mssql_num_fields($data); ++$i) {
            echo '<td>' . ucfirst($row[$i]) . '</td>';
        }

        echo '</tr>';
        echo '</thead>';
        echo '<tbody>';

        $header = true;
    }

    // Строим строку
    echo '<tr>';

    foreach($row as $value) {
        echo '<td>' . $value . '</td>';
    }

    echo '</tr>';
}

// Закрываем таблицу
echo '</tbody>';
echo '</table>';

// CОчищаем результат
mssql_free_result($data);
mssql_close($link);
?>

Смотрите также

  • mssql_query() - Send MS SQL query
  • mssql_fetch_field() - Возвращает информацию о столбце
  • mssql_num_rows() - Возвращает количество строк в результате


Возвращает количество строк в результате

  • « mssql_num_fields
  • mssql_pconnect »
  • PHP Manual
  • Mssql Функции
  • Возвращает количество строк в результате

mssql_num_rows

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_num_rows — Возвращает количество строк в результате

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::rowCount()
  • sqlsrv_num_rows()
  • odbc_num_rows()

Описание

mssql_num_rows ( resource $result ) : int

mssql_num_rows() возвращает количество строк в результирующем наборе.

Список параметров

result

Результирующий набор, полученный как результат вызова mssql_query().

Возвращаемые значения

Возвращает целое число, равное количеству строк в результирующем наборе.

Примеры

Пример #1 Пример mssql_num_rows()

<?php
// Соединяемся с MSSQL и выбираем базу
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Выбираем все строки из таблицы
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]');

echo 'Всего записей в таблице: ' . mssql_num_rows($query);

// Очищаем результат
mssql_free_result($query);
?>

Смотрите также

  • mssql_query() - Send MS SQL query
  • mssql_fetch_row() - Get row as enumerated array


Открывает постоянное соединение с MS SQL

  • « mssql_num_rows
  • mssql_query »
  • PHP Manual
  • Mssql Функции
  • Открывает постоянное соединение с MS SQL

mssql_pconnect

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_pconnect — Открывает постоянное соединение с MS SQL

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDO::__construct()
  • sqlsrv_connect()
  • odbc_pconnect()

Описание

mssql_pconnect ([ string $servername [, string $username [, string $password [, bool $new_link = FALSE ]]]] ) : resource

mssql_pconnect() работает практически также как и mssql_connect(), но с двумя большими отличиями.

Первое: когда происходит соединение, функция сначала пытается найти уже открытое соединение к тому же хосту, с теми же логином и паролем. Если такое соединение будет найдено, то вместо создания нового соединения, будет возвращен идентификатор найденного.

Второе: соединение с сервером MS SQL не будет закрыто после того, как скрипт завершит свою работу. Вместо этого, ссылка останется открытой для последующего использования. (mssql_close() не закрывает соединения, открытые mssql_pconnect()).

Такой тип соединения называется 'постоянным' (persistent).

Список параметров

servername

Сервер MS SQL. Также может содержать порт, т.е. hostname:port.

username

Имя пользователя.

password

Пароль.

new_link

Если функция mssql_pconnect() будет вызвана повторно с теми же самыми аргументами, то будет возвращен идентификатор уже существующего соединения, а не создание нового. Этот параметр меняет заданное поведение, вынуждая mssql_pconnect() всегда создавать новое соединение, даже если mssql_pconnect() была вызвана ранее с теми же аргументами.

Возвращаемые значения

Возвращает корректный идентификатор постоянного соединения с MS SQL, или FALSE в случае ошибки.

Примеры

Пример #1 Использование mssql_pconnect() с параметром new_link

<?php
// Соединяемся с MSSQL и выбираем базу
$link1 = mssql_pconnect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link1);

// Создаем второе соединение
$link2 = mssql_pconnect('MANGO\SQLEXPRESS', 'sa', 'phpfi', true);
mssql_select_db('random', $link2);
?>


Send MS SQL query

  • « mssql_pconnect
  • mssql_result »
  • PHP Manual
  • Mssql Функции
  • Send MS SQL query

mssql_query

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_query — Send MS SQL query

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDO::query()
  • sqlsrv_query()
  • odbc_exec()

Описание

mssql_query ( string $query [, resource $link_identifier [, int $batch_size = 0 ]] ) : mixed

mssql_query() sends a query to the currently active database on the server that's associated with the specified link identifier.

Список параметров

query

An SQL query.

link_identifier

A MS SQL link identifier, returned by mssql_connect() or mssql_pconnect().

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.

batch_size

The number of records to batch in the buffer.

Возвращаемые значения

Returns a MS SQL result resource on success, TRUE if no rows were returned, or FALSE on error.

Примеры

Пример #1 mssql_query() example

<?php
// Connect to MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

if (!$link || !mssql_select_db('php', $link)) {
    die('Unable to connect or select database!');
}

// Do a simple query, select the version of
// MSSQL and print it.
$version = mssql_query('SELECT @@VERSION');
$row = mssql_fetch_array($version);

echo $row[0];

// Clean up
mssql_free_result($version);
?>

Примечания

Замечание:

If the query returns multiple results then it is necessary to fetch all results by mssql_next_result() or free the results by mssql_free_result() before executing next query.

Смотрите также

  • mssql_select_db() - Select MS SQL database
  • mssql_connect() - Открывает соединение с MS SQL server


Get result data

  • « mssql_query
  • mssql_rows_affected »
  • PHP Manual
  • Mssql Функции
  • Get result data

mssql_result

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_result — Get result data

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • odbc_result()

Описание

mssql_result ( resource $result , int $row , mixed $field ) : string

mssql_result() returns the contents of one cell from a MS SQL result set.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

row

The row number.

field

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.

Замечание:

Specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Возвращаемые значения

Returns the contents of the specified cell.

Примеры

Пример #1 mssql_result() example

<?php
// Send a select query to MSSQL
$query = mssql_query('SELECT [username] FROM [php].[dbo].[userlist]');

// Check if there were any records
if (!mssql_num_rows($query)) {
    echo 'No records found';
} else {
    for ($i = 0; $i < mssql_num_rows($query); ++$i) {
        echo mssql_result($query, $i, 'username'), PHP_EOL;
    }
}

// Free the query result
mssql_free_result($query);
?>

Результатом выполнения данного примера будет что-то подобное:

Kalle
Felipe
Emil
Ross

Пример #2 Faster alternative to above example

<?php
// Send a select query to MSSQL
$query = mssql_query('SELECT [username] FROM [php].[dbo].[userlist]');

// Check if there were any records
if (!mssql_num_rows($query)) {
    echo 'No records found';
} else {
    while ($row = mssql_fetch_array($query)) {
        echo $row['username'], PHP_EOL;
    }
}

// Free the query result
mssql_free_result($query);
?>

Примечания

Замечание:

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().

Смотрите также

Recommended high-performance alternatives:

  • mssql_fetch_row() - Get row as enumerated array
  • 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
  • mssql_fetch_object() - Fetch row as object


Возвращает количество строк, затронутых последним запросом

  • « mssql_result
  • mssql_select_db »
  • PHP Manual
  • Mssql Функции
  • Возвращает количество строк, затронутых последним запросом

mssql_rows_affected

(PHP 4 >= 4.0.4, PHP 5, PECL odbtp >= 1.1.1)

mssql_rows_affected — Возвращает количество строк, затронутых последним запросом

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::rowCount()
  • sqlsrv_rows_affected()

Описание

mssql_rows_affected ( resource $link_identifier ) : int

Возвращает количество строк, затронутых последним запросом, изменяющим данные (например INSERT, UPDATE, DELETE, но не SELECT).

Список параметров

link_identifier

Идентификатор соединения MS SQL, возвращаемый mssql_connect() или mssql_pconnect().

Возвращаемые значения

Возвращает количество строк, затронутых последним запросом.

Примеры

Пример #1 Пример mssql_rows_affected()

<?php
// Удаление всех строк в таблице
mssql_query('TRUNCATE TABLE [php].[dbo].[persons]');

echo 'Deleted ' . mssql_rows_affected($link) . ' row(s)';
?>


Select MS SQL database

  • « mssql_rows_affected
  • MySQL »
  • PHP Manual
  • Mssql Функции
  • Select MS SQL database

mssql_select_db

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_select_db — Select MS SQL database

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDO_SQLSRV DSN
  • PDO_ODBC DSN
  • sqlsrv_connect()
  • odbc_connect()

Описание

mssql_select_db ( string $database_name [, resource $link_identifier ] ) : bool

mssql_select_db() sets the current active database on the server that's associated with the specified link identifier.

Every subsequent call to mssql_query() will be made on the active database.

Список параметров

database_name

The database name.

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).

link_identifier

A MS SQL link identifier, returned by mssql_connect() or mssql_pconnect().

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.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 mssql_select_db() example

<?php
// Create a link to MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

// Select the database 'php'
mssql_select_db('php', $link);
?>

Пример #2 Escaping the database name with square brackets

<?php
// Create a link to MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

// Select the database 'my.database-name'
mssql_select_db('[my.database-name]', $link);
?>

Смотрите также

  • mssql_connect() - Открывает соединение с MS SQL server
  • mssql_pconnect() - Открывает постоянное соединение с MS SQL
  • mssql_query() - Send MS SQL query


MySQL драйверы и плагины

В PHP имеется несколько драйверов и плагинов для доступа к MySQL.

В данном разделе педставлен обзор отличий и функционала различных расширений для работы с MySQL.

  • Обзор PHP драйверов MySQL
    • Обзор терминологии
    • Выбор API
    • Выбор библиотеки
    • Основные понятия
  • MySQLi — Улучшенный модуль MySQL (MySQL Improved)
    • Введение
    • Краткий обзор
    • Краткое руководство
    • Установка и настройка
    • Расширение mysqli и постоянные соединения
    • Предопределенные константы
    • Основная информация о функциях расширения MySQLi
    • Примеры
    • mysqli — Класс mysqli
    • mysqli_stmt — The mysqli_stmt class
    • mysqli_result — The mysqli_result class
    • mysqli_driver — Класс mysqli_driver
    • mysqli_warning — Класс mysqli_warning
    • mysqli_sql_exception — Класс mysqli_sql_exception
    • Синонимы и устаревшие функции Mysqli
    • Список изменений
  • Mysql_xdevapi
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Mysql_xdevapi Функции
    • mysql_xdevapi\BaseResult — Интерфейс BaseResult
    • mysql_xdevapi\Client — Client class
    • mysql_xdevapi\Collection — Класс Collection
    • mysql_xdevapi\CollectionAdd — Класс CollectionAdd
    • mysql_xdevapi\CollectionFind — Класс CollectionFind
    • mysql_xdevapi\CollectionModify — Класс CollectionModify
    • mysql_xdevapi\CollectionRemove — Класс CollectionRemove
    • mysql_xdevapi\ColumnResult — Класс ColumnResult
    • mysql_xdevapi\CrudOperationBindable — Интерфейс CrudOperationBindable
    • mysql_xdevapi\CrudOperationLimitable — Интерфейс CrudOperationLimitable
    • mysql_xdevapi\CrudOperationSkippable — Интерфейс CrudOperationSkippable
    • mysql_xdevapi\CrudOperationSortable — Интерфейс CrudOperationSortable
    • mysql_xdevapi\DatabaseObject — Интерфейс DatabaseObject
    • mysql_xdevapi\DocResult — Класс DocResult
    • mysql_xdevapi\Exception — Класс Exception
    • mysql_xdevapi\Executable — Интерфейс Executable
    • mysql_xdevapi\ExecutionStatus — Класс ExecutionStatus
    • mysql_xdevapi\Expression — Класс Expression
    • mysql_xdevapi\Result — Класс Result
    • mysql_xdevapi\RowResult — Класс RowResult
    • mysql_xdevapi\Schema — Класс Schema
    • mysql_xdevapi\SchemaObject — Интерфейс SchemaObject
    • mysql_xdevapi\Session — Класс Session
    • mysql_xdevapi\SqlStatement — Класс SqlStatement
    • mysql_xdevapi\SqlStatementResult — Класс SqlStatementResult
    • mysql_xdevapi\Statement — Класс Statement
    • mysql_xdevapi\Table — Класс Table
    • mysql_xdevapi\TableDelete — Класс TableDelete
    • mysql_xdevapi\TableInsert — Класс TableInsert
    • mysql_xdevapi\TableSelect — Класс TableSelect
    • mysql_xdevapi\TableUpdate — Класс TableUpdate
    • mysql_xdevapi\Warning — Класс Warning
  • MySQL (Original) — Оригинальное API MySQL
    • Введение
    • Установка и настройка
    • Список изменений
    • Предопределенные константы
    • Примеры
    • MySQL — Функции СУБД MySQL
  • Mysqlnd — Встроенный драйвер MySQL
    • Введение
    • Обзор
    • Установка
    • Настройка во время выполнения
    • Несовместимости
    • Постоянное соединение
    • Statistics
    • Замечания
    • Управление памятью
    • API для плагинов к встроенному драйверу MySQL
  • mysqlnd_ms — Плагин репликации и балансировки нагрузки для mysqlnd
    • Введение
    • Quickstart and Examples
    • Concepts
    • Установка и настройка
    • Предопределенные константы
    • Функции Mysqlnd_ms
    • Change History
  • mysqlnd_qc — Mysqlnd query result cache plugin
    • Введение
    • Quickstart and Examples
    • Установка и настройка
    • Предопределенные константы
    • mysqlnd_qc Функции
    • Change History
  • mysqlnd_uh — Mysqlnd user handler plugin
    • Введение
    • Quickstart and Examples
    • Установка и настройка
    • Предопределенные константы
    • MysqlndUhConnection — The MysqlndUhConnection class
    • MysqlndUhPreparedStatement — The MysqlndUhPreparedStatement class
    • Mysqlnd_uh Функции
    • Change History
  • mysqlnd_mux — Mysqlnd connection multiplexing plugin
    • Введение
    • Concepts
    • Установка и настройка
    • Предопределенные константы
    • Change History
  • mysqlnd_memcache — Плагин Mysqlnd Memcache
    • Введение
    • Быстрый старт и примеры
    • Установка и настройка
    • Предопределенные константы
    • Функции mysqlnd_memcache
    • История изменений


Обзор PHP драйверов MySQL

Введение

В зависимости от версии PHP, можно использовать два либо три различных PHP API для доступа к базе данных MySQL. В PHP 5 доступны следующие расширения: устаревшее mysql, mysqli и PDO_MySQL. В PHP 7, устаревшее расширение mysql не доступно и оставлены только два последних.

В этом руководстве описывается терминология используемая в описаниях каждого API, информация по выбору подходящего API ,и информация которая поможет вам выбрать подходящую, для использования с этим API, MySQL библиотеку.

  • Обзор терминологии
  • Выбор API
  • Выбор библиотеки
  • Основные понятия
    • Буферизированные и небуферизированные запросы
    • Кодировки символов


Обзор терминологии

В этом разделе рассказывается про имеющиеся возможности взаимодействия между PHP приложением и базой данных MySQL.

Что такое API?

Интерфейс программирования приложений(Application Programming Interface или API), описывает классы, методы, функции и переменные, которые ваше приложение должно использовать для выполнения поставленной задачи. В случае PHP, API для доступа к базам данных доступны в качестве расширений PHP.

API может быть процедурным или объектно ориентированным. В процедурном API, для совершения необходимых действий вы вызываете функции, тогда как в объектно ориентированном API вы инстанциируете классы и вызываете их методы. Более предпочтительным является использование объектно ориентированого API, так как подобный подход более современен и позволяет лучше организовать код.

Если вы пишите PHP приложение, которому необходимо взаимодействовать с базой данных MySQL, то у вас есть несколько API на выбор. В этом документе рассказывается про то, какие API есть и как выбрать наиболее подходящее для вашего приложения.

Что такое Коннектор?

В документации MySQL, термин коннектор(connector) отсылает к той части программного обеспечения, которая позволяет вашему приложению соединиться с базой данных MySQL. MySQL предоставляет коннекторы для многих языков программирования, в том числе и для PHP.

Если ваше приложение должно взаимодействовать с базой данных, вы должны написать PHP код для выполнения таких задач как соединение с базой данных, выполнение запросов и прочих функций. Для предоставления вашему приложению необходимого API и для обеспечения взаимодествия между приложением и базой данных требуется специальное программное обеспечение. Это ПО обычно называют коннектором. И именно оно позволяет вашему приложению соединиться(connect) с базой данных.

Что такое Драйвер?

Драйвер - это специализированное ПО, созданное для взаимодействием с определенным сервером баз данных. Драйвер также может использовать сторонние библиотеки, такие как "MySQL Client Library" или "MySQL Native Driver". Эти библиотеки реализуют низкоуровневый протокол взаимодействия с сервером MySQL.

Для примера, коннектор PHP Data Objects (PDO) может использовать различные специализированные драйверы для различных баз данных. Один из них "PDO MYSQL driver", предназначенный для взаимодействия с MySQL.

Иногда люди используют термины коннектор и драйвер, понимая под ними одно и то же. Это неправильно и может привести к путанице. В документации относящейся к MySQL, термин драйвер обозначает ПО, предоставляющее специфичную для конкретного сервера баз данных часть коннектора.

Что такое Расширение?

В документации PHP вы наверняка сталкивались с термином расширение(extension). Код PHP состоит из базового функционала(ядра) и опциональных расширений, дополняющих функционал ядра. Расширения связанные с MySQL, такие как mysqli и mysql, реализованы с использованием фреймворка расширений PHP.

Обычно, расширения предоставляют API для программиста, что бы он мог использовать их функционал в своих программах. Однако существуют расширения не предоставляющие никакого API.

Например расширение "PDO MySQL driver" не предоставляет никакого API для разработчика. Вместо этого оно предоставляет интерфейс для вышестоящего уровня PDO.

Термины API и Расширение обозначают разные вещи, так как расширение может не предоставлять никакого API.


Выбор API

PHP предоставляет три различных API для доступа к MySQL. Ниже показаны API, предоставляемые расширениями mysql, mysqli и PDO. В каждом примере кода создается соединение с сервером MySQL запущенном на сервере "example.com" с использованием логина "user" и пароля "password" и выполняется запрос к нему.

Пример #1 Сравнение трех MySQL API

<?php
// mysqli
$mysqli = new mysqli("example.com", "user", "password", "database");
$result = $mysqli->query("SELECT 'Привет, дорогой пользователь MySQL!' AS _message FROM DUAL");
$row = $result->fetch_assoc();
echo htmlentities($row['_message']);

// PDO
$pdo = new PDO('mysql:host=example.com;dbname=database', 'user', 'password');
$statement = $pdo->query("SELECT 'Привет, дорогой пользователь MySQL!' AS _message FROM DUAL");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);

// mysql
$c = mysql_connect("example.com", "user", "password");
mysql_select_db("database");
$result = mysql_query("SELECT 'Привет, дорогой пользователь MySQL!' AS _message FROM DUAL");
$row = mysql_fetch_assoc($result);
echo htmlentities($row['_message']);
?>

Рекомендованные API

Рекомендуется использовать mysqli или PDO_MySQL. Не рекомендуется использовать старое расширение mysql ,так как оно объявлено устаревшим в PHP 5.5.0 и окончательно убрано в PHP 7. Детальная матрица сравнения представлена ниже. Общая производительность всех трех расширений примерно одинакова. Производительность расширения привносит крайне малую лепту в общую длительность выполнения веб-запроса, обычно не более 0.1%.

Сравнение возможностей

 | ext/mysqli | PDO_MySQL | ext/mysql
Появилось в версии PHP | 5.0 | 5.1 | 2.0
Работает в PHP 5.x | Да | Да | Да
Работает в PHP 7.x | Да | Да | Нет
Статус разработки | Активный | Активный | Поддержка в 5.x; убрано в 7.x
Жизненный цикл | Активный | Активный | Устаревшее в 5.x; убрано в 7.x
Рекомендовано для новых проектов | Да | Да | Нет
ООП интерфейс | Да | Да | Нет
Процедурный интерфейс | Да | Нет | Да
API поддерживает асинхронные, неблокирующие запросы mysqlnd | Да | Нет | Нет
Постоянные(persistent) соединения | Да | Да | Да
API поддерживает кодировки(charset) | Да | Да | Да
API поддерживает подготовленные запросы на стороне сервера | Да | Да | Нет
API поддерживает подготовленные запросы на стороне клиента | Нет | Да | Нет
API подерживает хранимые процедуры | Да | Да | Нет
API поддерживает множественные запросы | Да | Большинство | нет
API поддерживает транзакции | Да | Да | нет
Можно контролировать транзакции посредством SQL | Да | Да | Да
Поддерживает всю функциональность MySQL 5.1+ | Да | Большинство | нет


Выбор библиотеки

Расширения mysqli, PDO_MySQL и mysql - всего лишь легковесные обертки над библиотеками написанными на языке C. Эти расширения могут использовать библиотеки mysqlnd и libmysqlclient. Выбор библиотеки необходимо сделать на этапе компиляции.

Библиотека mysqlnd является частью дистрибутива PHP начиная с версии 5.3.0. Она предоставляет такие возможности как ленивое соединение(lazy connections) и кеширование запросов. В библиотеке libmysqlclient данные возможности недоступны. Так что крайне рекомендуется использовать именно встроенную библиотеку mysqlnd. Для дополнительных сведений смотрите документацию mysqlnd.

Пример #1 Комманды конфигурирования для mysqlnd и libmysqlclient

//Рекомендованная, компилирует с mysqlnd
$ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql=mysqlnd

//Рекомендованная, компилирует с mysqlnd начиная с PHP 5.4
$ ./configure --with-mysqli --with-pdo-mysql --with-mysql

//Не рекомендованная, компилирует с libmysqlclient
$ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-mysql=/path/to/mysql_config --with-mysql=/path/to/mysql_config

Сравнение возможностей библиотек

Рекомендуется использовать библеотеку mysqlnd, а не MySQL Client Server library (libmysqlclient). Обе библиотеки развиваются и поддерживаются производителями.

 | MySQL native driver (mysqlnd) | MySQL client server library (libmysqlclient)
Часть дистрибутива PHP | Да | Нет
Появилась в версии PHP | 5.3.0 | Нет данных
Лицензия | PHP License 3.01 | Двойная лицензия
Статус разработки | Активный | Активный
Жизненный цикл | Окончание не анонсировано | Окончание не анонсировано
PHP 5.4 и выше; компилируется по умолчанию | Да | Нет
PHP 5.3; компилируется по умолчанию | Нет | Да
Поддержка протокола сжатия | Да (5.3.1+) | Да
Поддержка SSL | Да (5.3.3+) | Да
Поддержка именованных конвееров(named pipes) | Да (5.3.4+) | Да
Неблокирующие, асинхронные запросы | Да | Нет
Статистика производительности | Да | Нет
LOAD LOCAL INFILE уважает директиву open_basedir | Да | нет
Использует штатный менеджер памяти PHP (т.е., ограничения памяти PHP) | Да | Нет
Возвращает числовые значения как значения с плавающей запятой(float) (COM_QUERY) | Да | нет
Возвращает числовые значения как строки (string) (COM_QUERY) | Да | Да
Поддержка плагинов | Да | Ограниченно
Разделение Read/Write для репликации MySQL | Да, с плагином | Нет
Балансировка нагрузки | Да, с плагином | Нет
отказоустойчивость | Да, с плагином | нет
Ленивые соединения | Да, с плагином | Нет
Кеширование запросов | Да, с плагином | нет
Прозрачная манипуляция запросами (т.е., auto-EXPLAIN или мониторинг) | Да, с плагином | Нет
Автоматическое переподключение | нет | опционально


Основные понятия

Содержание

  • Буферизированные и небуферизированные запросы
  • Кодировки символов

Эти основные понятия, связанные с драйвером MySQL для PHP.


Буферизированные и небуферизированные запросы

По умолчанию запросы используют режим буферизации. Это значит, что результаты запроса немедленно поступают от сервера MySQL к PHP и сохраняются в памяти PHP-процесса. Это позволяет делать дополнительные операции, такие как подсчет количества строк и перемещение (поиск) текущего указателя результата. Это также дает возможность выполнять новые запросы в том же соединении во время работы над результатом последнего запроса. Недостаток режима буферизации является то, что большие наборы результатов могут потребовать довольно много количество оперативной памяти. Память остается занятой до тех пор, пока все указатели на результирующий набор не будут удалены или результирующий набор не будет явно освобожден, что автоматически происходит во время окончания последнего запроса. Термин "результат сохранения" ("store result") также используется для режима буферизации, так как весь результирующий набор сохраняется сразу.

Замечание:

При использовании libmysqlclient в качестве библиотеки ограничение памяти PHP не будет учитывать память используемую для результирующих наборов, если данные не будут сохранены в переменные PHP. С mysqlnd учёт памяти также будет включать в себя размер результирующего набора.

Небуферизированные MySQL запросы выполняются и возвращают resource, пока данные ожидают получения на сервере MySQL. Это использует меньше памяти на стороне PHP, но может увеличить нагрузку на сервер. Пока полный рузультирующий набор не будет передан с сервера, никакие дальнейшие запросы не могут быть отправлены через это же соединение. Небуферизированные запросы также могут быть отложены как "use result".

Следующие характеристики буферизированных запросов должны быть использованы в случаях, когда вы ожидаете только ограниченный результирующий набор или хотите знать количесво возвращаемых строк до прочтения всех строк. Небуферизированный режим должен быть использован если вы ожидаете большие размеры результирующих наборов.

Поскольку буферизированные запросы применяются по умолчанию, следующие примеры продемонстрируют как выполнить небуферизированные запросы в каждом из API

Пример #1 Пример небуферизированного запроса: mysqli

<?php
$mysqli  = new mysqli("localhost", "my_user", "my_password", "world");
$uresult = $mysqli->query("SELECT Name FROM City", MYSQLI_USE_RESULT);

if ($uresult) {
   while ($row = $uresult->fetch_assoc()) {
       echo $row['Name'] . PHP_EOL;
   }
}
$uresult->close();
?>

Пример #2 Пример небуферизированного запроса: pdo_mysql

<?php
$pdo = new PDO("mysql:host=localhost;dbname=world", 'my_user', 'my_pass');
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

$uresult = $pdo->query("SELECT Name FROM City");
if ($uresult) {
   while ($row = $uresult->fetch(PDO::FETCH_ASSOC)) {
       echo $row['Name'] . PHP_EOL;
   }
}
?>

Пример #3 Пример небуферизированного запроса: mysql

<?php
$conn = mysql_connect("localhost", "my_user", "my_pass");
$db   = mysql_select_db("world");

$uresult = mysql_unbuffered_query("SELECT Name FROM City");
if ($uresult) {
   while ($row = mysql_fetch_assoc($uresult)) {
       echo $row['Name'] . PHP_EOL;
   }
}
?>


Кодировки символов

В идеальном случае кодировка символов должна устанавливаться на уровне сервера и делать это согласно описанию в разделе » Конфигурация кодировки символов документации сервера MySQL. В качестве альтернативы каждый MySQL API предлагает метод для установки кодировки символов во время выполнения.

Предостережение

Кодировка символов и экранирование символов

Кодировка символов должна быть четко определена, поскольку влияет на каждое действие, в том числе на действия с последствиями для безопасности. Например, механизмы экранирования (такие как mysqli_real_escape_string() для mysqli, mysql_real_escape_string() для mysql и PDO::quote() для PDO_MySQL) зависят от этих настроек. Важно понимать, что эти функции не используют кодировку символов определенную в запросе, так например, следующие запросы не будут влиять на поведение этих функций:

Пример #1 Проблемы установки кодировки символов с помощью SQL

<?php

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

// Этот запрос не влияет на поведение $mysqli->real_escape_string();
$mysqli->query("SET NAMES utf8");

// И этот не влияет на $mysqli->real_escape_string();
$mysqli->query("SET CHARACTER SET utf8");

// но вот этот запрос повлияет на поведение $mysqli->real_escape_string();
$mysqli->set_charset('utf8');

// а этот НЕ повлияет, потому что нельзя использовать "-"
$mysqli->set_charset('utf-8'); // (utf8, а не utf-8)

?>

Примеры ниже демонстрируют, как правильно изменять кодировку символов во время выполнения, используя каждый из API.

Замечание: Возможная путаница с UTF-8

Поскольку имена кодировок символов в MySQL не содержат тире/дефис, строка "utf8" применяется в MySQL для установки кодировки UTF-8. Строка "utf-8" неприемлема и потерпит неудачу при установке кодировки символов.

Пример #2 Пример установки кодировки символов: mysqli

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

printf("Первоначальная кодировка: %s\n", $mysqli->character_set_name());

if (!$mysqli->set_charset('utf8')) {
    printf("Ошибка загрузки кодировки utf8: %s\n", $mysqli->error);
    exit;
}

echo "Информация о новой кодировки:\n";
print_r( $mysqli->get_charset() );

?>

Пример #3 Пример установки кодировки символов: pdo_mysql

Примечание: Это работает только с PHP 5.3.6.

<?php
$pdo = new PDO("mysql:host=localhost;dbname=world;charset=utf8", 'my_user', 'my_pass');
?>

Пример #4 Пример установки кодировки символов: mysql

<?php
$conn = mysql_connect("localhost", "my_user", "my_pass");
$db   = mysql_select_db("world");

echo 'Первоначальная кодировка: ' .  mysql_client_encoding($conn) . "\n";

if (!mysql_set_charset('utf8', $conn)) {
    echo "Ошибка: не удается установить кодировку.\n";
    exit;
}

echo 'Ваша текущая кодировка: ' .  mysql_client_encoding($conn);
?>


Улучшенный модуль MySQL (MySQL Improved)

  • Введение
  • Краткий обзор
  • Краткое руководство
    • Процедурный и объектно-ориентированный интерфейс
    • Соединения
    • Выполнение запросов
    • Подготавливаемые запросы
    • Хранимые процедуры
    • Множественные запросы
    • API поддержка транзакций
    • Метаданные
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Расширение mysqli и постоянные соединения
  • Предопределенные константы
  • Основная информация о функциях расширения MySQLi
  • Примеры
    • Базовые примеры расширения MySQLi
  • mysqli — Класс mysqli
    • mysqli::$affected_rows — Получает число строк, затронутых предыдущей операцией MySQL
    • mysqli::autocommit — Включает или отключает автоматическую фиксацию изменений базы данных
    • mysqli::begin_transaction — Стартует транзакцию
    • mysqli::change_user — Позволяет сменить пользователя подключенного к базе данных
    • mysqli::character_set_name — Возвращает кодировку по умолчанию, установленную для соединения с БД
    • mysqli::close — Закрывает ранее открытое соединение с базой данных
    • mysqli::commit — Фиксирует текущую транзакцию
    • mysqli::$connect_errno — Возвращает код ошибки последней попытки соединения
    • mysqli::$connect_error — Возвращает описание последней ошибки подключения
    • mysqli::__construct — Устанавливает новое соединение с сервером MySQL
    • mysqli::debug — Выполняет процедуры отладки
    • mysqli::dump_debug_info — Журналирование отладочной информации
    • mysqli::$errno — Возвращает код ошибки последнего вызова функции
    • mysqli::$error_list — Возвращает список ошибок выполнения последней запущенной команды
    • mysqli::$error — Возвращает строку с описанием последней ошибки
    • mysqli::$field_count — Возвращает число столбцов, затронутых последним запросом
    • mysqli::get_charset — Возвращает объект, описывающий кодировку
    • mysqli::$client_info — Получает информацию о клиенте MySQL
    • mysqli::$client_version — Возвращает информацию о клиенте MySQL в виде строки
    • mysqli::get_connection_stats — Возвращает статистику соединения с клиентом
    • mysqli::$host_info — Возвращает строку, содержащую тип используемого соединения
    • mysqli::$protocol_version — Возвращает версию используемого MySQL протокола
    • mysqli::$server_info — Возвращает версию MySQL сервера
    • mysqli::$server_version — Возвращает версию сервера MySQL, представленную в виде integer
    • mysqli::get_warnings — Получает результат SHOW WARNINGS
    • mysqli::$info — Извлекает информацию о последнем выполненном запросе
    • mysqli::init — Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()
    • mysqli::$insert_id — Возвращает автоматически генерируемый ID, используя последний запрос
    • mysqli::kill — Запрос для сервера завершить выполнение процесса MySQL
    • mysqli::more_results — Проверка, есть ли еще результаты в мультизапросе
    • mysqli::multi_query — Выполняет запрос к базе данных
    • mysqli::next_result — Подготовка следующего доступного результирующего набора из multi_query
    • mysqli::options — Установка настроек
    • mysqli::ping — Проверяет работоспособность соединения или пытается переподключиться, если соединение разорвано
    • mysqli::poll — Опрос подключений
    • mysqli::prepare — Подготавливает SQL выражение к выполнению
    • mysqli::query — Выполняет запрос к базе данных
    • mysqli::real_connect — Устанавливает соединение с сервером mysql
    • mysqli::real_escape_string — Экранирует специальные символы в строке для использования в SQL-выражении, используя текущий набор символов соединения
    • mysqli::real_query — Выполнение SQL запроса
    • mysqli::reap_async_query — Получение результата асинхронного запроса
    • mysqli::refresh — Обновление
    • mysqli::release_savepoint — Удаляет именованную точку сохранения из списка точек сохранения текущей транзакции
    • mysqli::rollback — Откат текущей транзакции
    • mysqli::rpl_query_type — Возвращает RPL тип запроса
    • mysqli::savepoint — Устанавливает именованную точку отката для текущей транзакции
    • mysqli::select_db — Устанавливает базу данных для выполняемых запросов
    • mysqli::send_query — Отправка запроса и возврат
    • mysqli::set_charset — Задает набор символов по умолчанию
    • mysqli::set_local_infile_default — Отмена привязки callback-функции для команды load local infile
    • mysqli::set_local_infile_handler — Задает callback-функцию для команды LOAD DATA LOCAL INFILE
    • mysqli::$sqlstate — Возвращает код состояния SQLSTATE последней MySQL операции
    • mysqli::ssl_set — Используется для установления безопасных соединений, используя SSL
    • mysqli::stat — Получение информации о текущем состоянии системы
    • mysqli::stmt_init — Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare
    • mysqli::store_result — Передает на клиента результирующий набор последнего запроса
    • mysqli::$thread_id — Возвращает ID процесса текущего подключения
    • mysqli::thread_safe — Показывает, безопасна ли работа с процессами
    • mysqli::use_result — Готовит результирующий набор на сервере к использованию
    • mysqli::$warning_count — Возвращает количество предупреждений из последнего запроса заданного подключения
  • mysqli_stmt — The mysqli_stmt class
    • mysqli_stmt::$affected_rows — Возвращает общее количество строк, измененных, удаленных или добавленных последним выполненным выражением
    • mysqli_stmt::attr_get — Получает текущее значение атрибута запроса
    • mysqli_stmt::attr_set — Изменяет поведение подготовленного запроса
    • mysqli_stmt::bind_param — Привязка переменных к параметрам подготавливаемого запроса
    • mysqli_stmt::bind_result — Привязка переменных к подготовленному запросу для размещения результата
    • mysqli_stmt::close — Закрывает подготовленный запрос
    • mysqli_stmt::__construct — Конструктор для объекта mysqli_stmt
    • mysqli_stmt::data_seek — Переход к заданной строке в результирующем наборе
    • mysqli_stmt::$errno — Возвращает код ошибки выполнения последнего запроса
    • mysqli_stmt::$error_list — Возвращает список ошибок выполнения последнего запроса
    • mysqli_stmt::$error — Возвращает строку с пояснением последней ошибки при выполнении запроса
    • mysqli_stmt::execute — Выполняет подготовленный запрос
    • mysqli_stmt::fetch — Связывает результаты подготовленного выражения с переменными
    • mysqli_stmt::$field_count — Возвращает число полей в заданном выражении
    • mysqli_stmt::free_result — Освобождает память от результата запроса, указанного дескриптором
    • mysqli_stmt::get_result — Получает результат из подготовленного запроса
    • mysqli_stmt::get_warnings — Получает результат от SHOW WARNINGS
    • mysqli_stmt::$insert_id — Получает ID, сгенерированный предыдущей операцией INSERT
    • mysqli_stmt::more_results — Проверяет, есть ли еще наборы строк в результате мультизапроса
    • mysqli_stmt::next_result — Читает следующий набор строк из мультизапроса
    • mysqli_stmt::$num_rows — Возвращает число строк в результате запроса
    • mysqli_stmt::$param_count — Возвращает количество параметров в запросе
    • mysqli_stmt::prepare — Подготовка SQL-запроса к выполнению
    • mysqli_stmt::reset — Сбрасывает результаты выполнения подготовленного запроса
    • mysqli_stmt::result_metadata — Возвращает метаданные результирующей таблицы подготавливаемого запроса
    • mysqli_stmt::send_long_data — Отправка данных блоками
    • mysqli_stmt::$sqlstate — Возвращает код ошибки SQLSTATE, вызванной в ходе выполнения последней операции над запросом
    • mysqli_stmt::store_result — Передает результирующий набор запроса на клиента
  • mysqli_result — The mysqli_result class
    • mysqli_result::$current_field — Получает смещение указателя по отношению к текущему полю
    • mysqli_result::data_seek — Перемещает указатель результата на выбранную строку
    • mysqli_result::fetch_all — Выбирает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба
    • mysqli_result::fetch_array — Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
    • mysqli_result::fetch_assoc — Извлекает результирующий ряд в виде ассоциативного массива
    • mysqli_result::fetch_field_direct — Получение метаданных конкретного поля
    • mysqli_result::fetch_field — Возвращает следующее поле результирующего набора
    • mysqli_result::fetch_fields — Возвращает массив объектов, представляющих поля результирующего набора
    • mysqli_result::fetch_object — Возвращает текущую строку результирующего набора в виде объекта
    • mysqli_result::fetch_row — Получение строки результирующей таблицы в виде массива
    • mysqli_result::$field_count — Получение количества полей в результирующем наборе
    • mysqli_result::field_seek — Установить указатель поля на определенное смещение
    • mysqli_result::free — Освобождает память, занятую результатами запроса
    • mysqli_result::$lengths — Возвращает длины полей текущей строки результирующего набора
    • mysqli_result::$num_rows — Получает число рядов в результирующей выборке
  • mysqli_driver — Класс mysqli_driver
    • mysqli_driver::embedded_server_end — Останавливает встроенный сервер
    • mysqli_driver::embedded_server_start — Инициализирует и запускает встроенный сервер
    • mysqli_driver::$report_mode — Включает или отключает внутренние функции протоколирования
  • mysqli_warning — Класс mysqli_warning
    • mysqli_warning::__construct — Выполняет функции конструктора
    • mysqli_warning::next — Получает следующее предупреждение
  • mysqli_sql_exception — Класс mysqli_sql_exception
  • Синонимы и устаревшие функции Mysqli
    • mysqli_bind_param — Синоним функции mysqli_stmt_bind_param
    • mysqli_bind_result — Синоним функции mysqli_stmt_bind_result
    • mysqli_client_encoding — Синоним функции mysqli_character_set_name
    • mysqli_connect — Псевдоним mysqli::__construct
    • mysqli::disable_reads_from_master — Блокирует чтение с мастера
    • mysqli_disable_rpl_parse — Блокировать разбор RPL
    • mysqli_enable_reads_from_master — Включает чтение с мастера
    • mysqli_enable_rpl_parse — Включает разбор RPL
    • mysqli_escape_string — Псевдоним функции mysqli_real_escape_string
    • mysqli_execute — Синоним для mysqli_stmt_execute
    • mysqli_fetch — Синоним для mysqli_stmt_fetch
    • mysqli_get_cache_stats — Возвращает статистические данные о Zval кэше клиента
    • mysqli_get_client_stats — Получить клиентскую попроцессную статистику
    • mysqli_get_links_stats — Возвращает информацию об открытых и закешированных соединениях MySQL
    • mysqli_get_metadata — Синоним для mysqli_stmt_result_metadata
    • mysqli_master_query — Принудительный запуск запроса на хозяине в случае установки хозяин/раб
    • mysqli_param_count — Псевдоним для mysqli_stmt_param_count
    • mysqli_report — Псевдоним mysqli_driver->report_mode
    • mysqli_rpl_parse_enabled — Проверка, включен ли разбор RPL
    • mysqli_rpl_probe — RPL зонд
    • mysqli_send_long_data — Псевдоним для mysqli_stmt_send_long_data
    • mysqli::set_opt — Псевдоним mysqli_options
    • mysqli_slave_query — Принудительный запуск запроса на рабе в установке хозяин/раб
  • Список изменений


Введение

Расширение mysqli позволяет вам получить доступ к функциональности, которую предоставляет MySQL версии 4.1 и выше. Больше информации о сервере баз данных MySQL вы можете получить по адресу » http://www.mysql.com/.

Информация об использовании MySQL из PHP находится по адресу Краткий обзор

Документация MySQL находится по адресу » http://dev.mysql.com/doc/.

Некоторые части данной документации включены из руководства по MySQL с разрешения корпорации Oracle.

Все примеры, приведенные в документации, используют доступные свободно базы данных » world и » sakila.


Краткий обзор

Этот раздел посвящен описанию инструментов для взаимодействия PHP-приложений с базами данных MySQL.

Что такое API?

Интерфейс программирования приложений, или API, определяет набор классов, методов, функций и переменных, которые можно вызывать из вашего приложения для выполнения поставленных задач. Применительно к PHP приложениям, которые должны взаимодействовать с базами данных, необходимые для этого API, как правило, представлены PHP-расширениями.

API могут быть процедурными или объектно-ориентированными. При использовании процедурных API вы вызываете функции для выполнения каких-либо операций, а в случае объектно-ориентированных вы инстанцируете классы и затем вызываете методы созданных объектов. Второй подход, обычно, предпочтительнее, так как он более современный и способствует написанию более организованного кода.

API MySQL предоставляет несколько способов подключения к базе данных из PHP-приложения. В этом документе приводится описание этих способов и даются рекомендации, как выбрать наиболее подходящее решение в конкретной ситуации.

Что такое коннектор?

В документации MySQL термин коннектор (connector) относится к части программного обеспечения, отвечающей за подключение к серверу MySQL. MySQL предоставляет множество коннекторов для различных языков программирования, в частности для PHP.

Для обеспечения взаимодействия PHP приложения с сервером баз данных вам необходимо написать PHP код, выполняющий подключение к серверу, выполнение запросов к базе данных и тому подобные операции. От программного обеспечения сервера требуется предоставить API, которое ваше PHP-приложение сможет использовать, а также функционал, ответственный за взаимодействие вашего приложения с сервером. Программное обеспечение, реализующее такой функционал, обычно называют коннектором, так как оно позволяет вашему приложению подключиться (to connect) к серверу баз данных. В ряде случаев коннектор для своих нужд может потребовать дополнительные библиотеки.

Что такое драйвер?

Драйвером называется часть программного обеспечения, отвечающая за взаимодействие приложения с конкретным типом серверов баз данных. Драйвер также может обращаться к внешним библиотекам, таким как клиентская библиотека MySQL или нативный драйвер MySQL. Эти библиотеки реализуют низкоуровневый протокол взаимодействия с сервером MySQL.

В качестве примера можно привести уровень абстракции для работы с базами данных Объекты данных PHP (PDO), который может использовать один из нескольких драйверов, специфичных для конкретных баз данных. В качестве такого драйвера может выступать драйвер PDO MYSQL, который позволяет PDO взаимодействовать с MySQL-сервером.

Иногда люди употребляют термины коннектор и драйвер, как синонимы, и это может сбить с толку. В документации MySQL термин драйвер означает участок программного кода, входящий в состав коннектора и отвечающий за связь с конкретной СУБД.

Что такое расширение?

В документации к PHP вы будете неоднократно сталкиваться с термином расширение. Код PHP как такового состоит из ядра и присоединенных к нему необязательных расширений, которые увеличивают круг задач, которые может выполнять ядро. Относящиеся к MySQL расширения, такие как mysqli и mysql, взаимодействуют с ядром с помощью фреймворка PHP расширений.

Обычно расширения предоставляют свой API-интерфейс PHP-программисту, чтобы тот мог программно использовать возможности расширения. Однако, некоторые расширения, использующие фреймворк PHP-расширений, не предоставляют программистам никаких интерфейсов.

Драйвер PDO MySQL, например, не предоставляет своего API. Он предоставляет интерфейс только абстрактному слою PDO, лежащему выше.

Термины API и расширение нельзя воспринимать как синонимы, так как расширение может и не предоставлять API программисту.

Какие инструменты для работы с MySQL предлагает API PHP?

API предоставляет на выбор три набора инструментов для подключения к серверу баз данных MySQL:

  • Расширение PHP MySQL

  • Расширение PHP mysqli

  • Объекты данных PHP (PDO)

Каждый из них имеет свои достоинства и недостатки. Целью данного обзора является краткое описание ключевых особенностей каждого API.

Что такое расширение PHP MySQL?

Это оригинальное расширение позволяет разрабатывать PHP-приложения, которые могут взаимодействовать с базой данных MySQL. Расширение mysql предоставляет процедурный интерфейс и предназначено для использования с MySQL версии 4.1.3 или более ранними версиями. Его также можно использовать и с более свежими версиями СУБД, но в этом случае многие возможности сервера, появившиеся после версии 4.1.3, будут недоступны программисту.

Замечание:

Если вы работаете с сервером MySQL 4.1.3 или более поздних версий, настоятельно рекомендуется использовать расширение mysqli.

Исходные коды расширения mysql расположены в директории расширений PHP ext/mysql.

Дополнительную информацию о расширении mysql можно почерпнуть из ресурса MySQL (Original).

Что такое PHP-расширение mysqli?

Расширение mysqli, или как его еще называют улучшенное (improved) расширение MySQL, было разработано, чтобы дать возможность программистам в полной мере воспользоваться функционалом MySQL-сервера версий 4.1.3 и выше. Расширение mysqli включается в поставку PHP версий 5 и выше.

mysqli имеет ряд преимуществ и усовершенствований по сравнению с mysql, которые заключаются в следующем:

  • Объектно-ориентированный интерфейс

  • Поддержка подготавливаемых запросов

  • Поддержка мультизапросов

  • Поддержка транзакций

  • Улучшенные возможности отладки

  • Поддержка встроенного сервера

Замечание:

При работе с MySQL версий 4.1.3 и выше настоятельно рекомендуется использовать именно это расширение.

Наравне с объектно-ориентированным расширение предоставляет и процедурный интерфейс.

Расширение mysqli собирается при помощи фреймворка расширений PHP, его исходный код расположен в директории ext/mysqli.

За дополнительной информацией о расширении mysqli, обращайтесь к разделу MySQLi.

Что такое PDO?

Объекты данных PHP, или PDO, представляют из себя абстракцию коннектора баз данных для PHP приложений. PDO предоставляет API интерфейс взаимодействия с базой данных, не зависящий от конкретной СУБД. Теоретически, при использовании PDO можно поменять сервер баз данных, например с Firebird на MySQL, и это приведет лишь к незначительным изменениям в PHP-коде.

В качестве других подобных абстракций можно привести JDBC для Java-приложений и DBI для Perl.

Наряду с преимуществами PDO, такими как простота и переносимость API, есть его главный недостаток: PDO поддерживает не все возможности сервера баз данных, доступные в последних версиях MySQL. Например, средствами PDO нельзя создавать множественные запросы, хотя MySQL их и поддерживает.

PDO собирается при помощи фреймворка расширений PHP, его исходный код расположен в директории ext/pdo.

Дополнительную информацию о PDO см. в разделе PDO.

Что такое драйвер PDO MYSQL?

Драйвер PDO MYSQL не является API как таковым, во всяком случае с точки зрения программиста. Драйвер PDO MYSQL располагается между самим PDO и сервером MySQL. Программист вызывает функции интерфейса API PDO, а PDO в свою очередь использует драйвер PDO MYSQL для обмена данными и командами с сервером MySQL.

Драйвер PDO MYSQL лишь один из многих PDO-драйверов. Для большинства СУБД есть свои PDO драйверы, как например драйверы для Firebird или PostgreSQL серверов.

Драйвер PDO MYSQL собирается при помощи фреймворка расширений PHP, его исходный код расположен в директории ext/pdo_mysql. Он не предоставляет API-интерфейс программисту PHP.

Дополнительно о драйвере PDO MYSQL можно прочитать в разделе MySQL (PDO).

Что такое нативный драйвер MySQL для PHP?

Чтобы обеспечить взаимодействие с сервером MySQL, расширения mysql и mysqli, а также драйвер PDO MYSQL используют низкоуровневую библиотеку, в которой реализованы необходимые протоколы. В прошлом была доступна только одна такая библиотека: Клиентская библиотека MySQL (MySQL Client Library), также известная как libmysqlclient.

Однако, интерфейс, который предоставляла libmysqlclient, не был оптимизирован для взаимодействия с PHP-приложениями, так как изначально libmysqlclient разрабатывалась для работы с С-приложениями. Несколько позже был разработан нативный драйвер MySQL (MySQL Native Driver) mysqlnd, который представляет собой альтернативу libmysqlclient для PHP.

Каждое из расширений mysql или mysqli, а также драйвер PDO MySQL можно индивидуально настроить для работы либо с libmysqlclient, либо с mysqlnd. Так как mysqlnd создавался специально для PHP-систем, у него есть преимущество в скорости и расходах памяти перед libmysqlclient. Поэтому его использование предпочтительней.

Замечание:

Нативный драйвер MySQL может использоваться только с MySQL версии 4.1.3 и выше.

Нативный драйвер MYSQL собирается при помощи фреймворка расширений PHP, его исходный код расположен в директории ext/mysqlnd. Он не предоставляет API-интерфейс программисту PHP.

Сравнение возможностей

В приведенной таблице приводится сравнение функционала трех основных методов подключения к MySQL из PHP:

Сравнение опций MySQL API в PHP
 | Расширение PHP mysqli | PDO (используя драйвер PDO MySQL и нативный драйвер MySQL) | Расширение PHP MySQL
Версия PHP, в которой был внедрен функционал | 5.0 | 5.0 | До 3.0
Включено в PHP 5.x | Да | Да | Да
Статус разработки MySQL | Разработка продолжается | Разработка продолжается по состоянию на PHP 5.3 | Только поддержка
Рекомендовано MySQL для разработки новых проектов | Да - отдается предпочтение | Да | Нет
API поддерживает наборы символов | Да | Да | Нет
API поддерживает подготавливаемые запросы на стороне сервера | Да | Да | Нет
API поддерживает подготавливаемые запросы на стороне клиента | Нет | Да | Нет
API поддерживает хранимые процедуры | Да | Да | Нет
API поддерживает множественные запросы | Да | По большей части | Нет
Поддержка всего функционала MySQL 4.1+ | Да | По большей части | Нет


Краткое руководство

Содержание

  • Процедурный и объектно-ориентированный интерфейс
  • Соединения
  • Выполнение запросов
  • Подготавливаемые запросы
  • Хранимые процедуры
  • Множественные запросы
  • API поддержка транзакций
  • Метаданные

Данное практическое руководство поможет освоить основные моменты API-интерфейса MySQL-сервера.

В этом руководстве приводится краткий обзор расширения mysqli. Для всех основных особенностей API-интерфейса приведены примеры PHP-кода. Также объясняются принципы работы баз данных в целом, чтобы иметь возможность описать какие-то отдельные моменты, присущие конкретно MySQL.

Требования: Знакомство с языком программирования PHP, SQL, а также знание основ работы с MySQL-сервером.


Процедурный и объектно-ориентированный интерфейс

Расширение mysqli предоставляет двойной интерфейс программисту. Поддерживаются как процедурная, так и объектно-ориентированная парадигмы программирования.

Пользователи, переходящие со старого расширения mysql, возможно, предпочтут процедурный интерфейс. Он весьма схож с интерфейсом старого расширения, и во многих случаях функции отличаются только префиксом в имени. Некоторые mysqli-функции принимают дескриптор соединения первым аргументом, в отличие от соответствующих им функций старого расширения, которые принимают его в качестве последнего необязательного аргумента.

Пример #1 Простота перехода со старого расширения mysql

<?php
$mysqli = mysqli_connect("example.com", "user", "password", "database");
$res = mysqli_query($mysqli, "SELECT 'Пожалуйста, не используйте ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($res);
echo $row['_msg'];

$mysql = mysql_connect("example.com", "user", "password");
mysql_select_db("test");
$res = mysql_query("SELECT 'расширение mysql в новых проектах.' AS _msg FROM DUAL", $mysql);
$row = mysql_fetch_assoc($res);
echo $row['_msg'];
?>

Результат выполнения данного примера:

Пожалуйста, не используйте расширение mysql в новых проектах.

Объектно-ориентированный интерфейс

В дополнение к процедурному пользователи могут использовать объектно-ориентированный интерфейс. Документация заточена именно под объектный интерфейс. Объектно-ориентированный интерфейс предлагает функции сгруппированные по цели их применения, что облегчает их поиск и освоение. Тем не менее, в практических примерах к функциям приводится код для обеих парадигм.

Каких-либо принципиальных отличий в производительности между интерфейсами нет. Пользователи вольны в выборе интерфейса, основываясь на личных предпочтениях.

Пример #2 Объектно-ориентированный и процедурный интерфейсы

<?php
$mysqli = mysqli_connect("example.com", "user", "password", "database");
if (mysqli_connect_errno()) {
    echo "Не удалось подключиться к MySQL: " . mysqli_connect_error();
}

$res = mysqli_query($mysqli, "SELECT 'Мир, полный ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($res);
echo $row['_msg'];

$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: " . $mysqli->connect_error;
}

$res = $mysqli->query("SELECT 'выбора, чтобы угодить всем.' AS _msg FROM DUAL");
$row = $res->fetch_assoc();
echo $row['_msg'];
?>

Результат выполнения данного примера:

Мир, полный выбора, чтобы угодить всем.

Примеры в этом руководстве будут написаны в объектном стиле в виду того, что объектному подходу отдавалось предпочтение при создании документации.

Смешивание стилей

Переключаться между стилями программирования можно сколь угодно часто и в любое время, однако делать этого не рекомендуется, так как это ухудшает читаемость кода и затрудняет его поддержку.

Пример #3 Плохой стиль программирования

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: " . $mysqli->connect_error;
}

$res = mysqli_query($mysqli, "SELECT 'Этот код работает, но лучше так не писать.' AS _msg FROM DUAL");
if (!$res) {
    echo "Не удалось выполнить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

if ($row = $res->fetch_assoc()) {
    echo $row['_msg'];
}
?>

Результат выполнения данного примера:

Этот код работает, но лучше так не писать.

См. также

  • mysqli::__construct()
  • mysqli::query()
  • mysqli_result::fetch_assoc()
  • $mysqli::connect_errno
  • $mysqli::connect_error
  • $mysqli::errno
  • $mysqli::error
  • Общее описание функций расширения MySQLi


Соединения

Сервер MySQL поддерживает различные способы передачи данных. Соединения могут использовать протоколы TCP/IP, сокеты Unix-доменов или именованные пайпы Windows.

Имя хоста localhost имеет специальное назначение. Оно используется только в сокетах Unix доменов. Невозможно открыть соединение TCP/IP, используя в качестве имени хоста localhost. Вместо него нужно задать 127.0.0.1.

Пример #1 Специальное назначение localhost

<?php
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
echo $mysqli->host_info . "\n";

$mysqli = new mysqli("127.0.0.1", "user", "password", "database", 3306);
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

echo $mysqli->host_info . "\n";
?>

Результат выполнения данного примера:

Localhost via UNIX socket
127.0.0.1 via TCP/IP

Умолчания для параметров соединений

В зависимости от функции, осуществляющей подключение, какие-то параметры можно не задавать. Если параметр не задан, расширение попытается использовать значение по умолчанию для этого параметра, которое задано в конфигурационном файле PHP.

Пример #2 Задание значений по умолчанию

mysqli.default_host=192.168.2.27
mysqli.default_user=root
mysqli.default_pw=""
mysqli.default_port=3306
mysqli.default_socket=/tmp/mysql.sock

Далее, чтобы установить соединение, функция передает параметры в клиентскую библиотеку, которой пользуется расширение. Если библиотека обнаружит пустые или отсутствующие параметры, она может подставить вместо них свои встроенные значения по умолчанию.

Встроенные библиотечные значения по умолчанию для параметров соединения

Если имя хоста не задано или передана пустая строка, клиентская библиотека использует для подключения к Unix-сокету хоста localhost. Если сокет не задан или передана пустая строка, и при этом запрошено подключение к Unix-сокету, библиотека попытается подключиться к сокету /tmp/mysql.sock.

В Windows-системах, если в качестве имени хоста передается ., библиотека попытается открыть соединение на основе именованного пайпа. В этом случае имя сокета будет воспринято как имя пайпа. Если имя сокета не задано, то будет использовано значение \\.\pipe\MySQL.

Если соединение не использует ни сокет Unix-домена, ни именованный пайп Windows, и при этом не задан порт для подключения, библиотека использует номер порта 3306.

В драйвере mysqlnd и клиентской библиотеке MySQL (libmysqlclient) заложена та же логика определения умолчаний.

Настройки соединения

Настройки соединения позволяют, например, задать какие-то команды, которые нужно выполнить сразу после подключения, или отдать распоряжение использовать определенный набор символов. Настройки должны быть заданы до подключения к серверу.

Когда требуется задать настройки соединения, операция подключения выполняется в три этапа: функцией mysqli_init() создается дескриптор подключения, затем подключение настраивается с помощью функции mysqli_options(), и наконец устанавливается сетевое соединение с сервером посредством функции mysqli_real_connect().

Объединение подключений в пул

Расширение mysqli поддерживает постоянные соединения с базой данных, которые представляют из себя специальный вид объединяемых соединений. По умолчанию каждое открытое скриптом соединение закрывается либо самим скриптом в ходе выполнения, либо автоматически по завершении работы скрипта. Постоянные соединения отличаются тем, что не закрываются, а помещаются в пул для повторного использования в дальнейшем. Если требуется подключиться к тому же серверу и базе данных, с тем же именем пользователя, паролем, сокетом и портом, то вместо создания нового подключения из пула извлекается уже существующее. Повторное использование подключений позволяет избежать накладных расходов на создание новых соединений.

Каждый PHP-процесс использует свой пул подключений mysqli. В зависимости от конфигурации веб-сервера, PHP-процесс может обслуживать один или несколько запросов. Соответственно, соединение из пула могут последовательно использовать несколько скриптов.

Постоянное соединение

Новое подключение создается, только если в пуле не найдется свободного подключения с теми же данными хоста, имени пользователя, пароля, сокета, порта и базы данных по умолчанию. Механизм постоянных соединений можно включать и выключать PHP директивой mysqli.allow_persistent. Максимальное количество соединений, которые может открыть скрипт, ограничено значением mysqli.max_links. Максимальное количество соединений, которые может открыть один PHP-процесс, ограничено значением mysqli.max_persistent. Следует заметить, что веб-сервер может порождать множество PHP процессов.

Главный недостаток постоянных подключений заключается в том, что перед повторным использованием их состояние не сбрасывается к изначальному. Например, открытые и незавершенные транзакции не будут автоматически откатываться. Также, если во время нахождения соединения в пуле для процесса изменились какие-либо разрешения или уровни доступа, этот факт никак не отразится на подключении при его извлечении из пула. Такое поведение может привести к нежелательным результатам. Хотя, с другой стороны, название постоянный можно рассматривать, как обещание, что подключение и правда останется в том состоянии, в котором оно было помещено в пул.

Расширение mysqli поддерживает обе интерпретации термина постоянное соединение: состояние соединения может сохраняться, а может и сбрасываться в изначальное. По умолчанию при извлечении из пула, соединение сбрасывается. mysqli делает это неявным вызовом функции mysqli_change_user() каждый раз, когда подключение используется повторно. С точки зрения пользователя подключение выглядит, как только что созданное.

Однако, вызов функции mysqli_change_user() довольно дорогостоящая операция. Для улучшения быстродействия можно перекомпилировать расширение с установленным флагом MYSQLI_NO_CHANGE_USER_ON_PCONNECT.

Выбор между безопасным поведением подключений и наилучшим быстродействием остается за пользователем. Здесь нельзя дать однозначного совета. Для простоты использования, по умолчанию включен безопасный режим с очисткой соединений.

См. также

  • mysqli::__construct()
  • mysqli::init()
  • mysqli::options()
  • mysqli::real_connect()
  • mysqli::change_user()
  • $mysqli::host_info
  • Настройки конфигурации MySQLi
  • Постоянные соединения с базами данных


Выполнение запросов

За выполнение запросов отвечают функции mysqli_query(), mysqli_real_query() и mysqli_multi_query(). Чаще всего применяется функция mysqli_query(), так как она выполняет сразу две задачи: выполняет запрос и буферизует на клиенте результат этого запроса (если он есть). Вызов mysqli_query() идентичен последовательному вызову функций mysqli_real_query() и mysqli_store_result().

Пример #1 Подключение к MySQL

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1)")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

Буферизация результатов запроса

После выполнения запроса его результаты можно целиком буферизовать на клиенте, либо читать построчно с сервера. Буферизация на клиенте позволяет серверу как можно быстрее освобождать занятые запросом ресурсы. Построчное же чтение и дальнейшая обработка результатов клиентом довольно медленный процесс. Поэтому рекомендуется использовать буферизацию результирующих наборов. Функция mysqli_query() совмещает в себе операции выполнения запроса и буферизации результирующего набора.

PHP-приложения могут свободно оперировать данными внутри буферизованных результирующих наборов. Быстрая навигация по строкам наборов обусловлена тем, что наборы полностью располагаются в памяти клиента. Следует помнить, что зачастую обработка результатов на клиенте проще, нежели средствами сервера.

Пример #2 Навигация по строкам буферизованной результирующей таблицы

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

$res = $mysqli->query("SELECT id FROM test ORDER BY id ASC");

echo "Обратный порядок...\n";
for ($row_no = $res->num_rows - 1; $row_no >= 0; $row_no--) {
    $res->data_seek($row_no);
    $row = $res->fetch_assoc();
    echo " id = " . $row['id'] . "\n";
}

echo "Исходный порядок строк...\n";
$res->data_seek(0);
while ($row = $res->fetch_assoc()) {
    echo " id = " . $row['id'] . "\n";
}
?>

Результат выполнения данного примера:

Обратный порядок...
 id = 3
 id = 2
 id = 1
Исходный порядок строк...
 id = 1
 id = 2
 id = 3

Небуферизуемые результирующие наборы

Если клиентские ресурсы ограничены, и в тоже время не требуется поддерживать низкую нагрузку на сервер, можно использовать не буферизованные результирующие наборы. Навигация по таким таблицам невозможна, потому что так или иначе должны быть обработаны все строки набора.

Пример #3 Навигация по строкам небуферизованной результирующей таблицы

<?php
$mysqli->real_query("SELECT id FROM test ORDER BY id ASC");
$res = $mysqli->use_result();

echo "Порядок строк в результирующем наборе...\n";
while ($row = $res->fetch_assoc()) {
    echo " id = " . $row['id'] . "\n";
}
?>

Типы данных значений в результирующей таблице

Функции mysqli_query(), mysqli_real_query() и mysqli_multi_query() предназначены для выполнения неподготавливаемых запросов. На уровне протокола клиент-серверного взаимодействия MySQL за выполнение запросов отвечают команда COM_QUERY и текстовый протокол. Когда используется текстовый протокол, сервер MySQL перед отправкой клиенту преобразует все данные в результирующем наборе в текстовые строки. Это преобразование выполняется вне зависимости от типа данных SQL-столбца результирующей таблицы. Клиентские библиотеки mysql, в свою очередь, получают все данные, принимая их за строки. На клиенте не проводится никакого обратного преобразования к исходным типам, все данные, полученные приложением остаются PHP строками.

Пример #4 Текстовый протокол по умолчанию возвращает строки

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

$res = $mysqli->query("SELECT id, label FROM test WHERE id = 1");
$row = $res->fetch_assoc();

printf("id = %s (%s)\n", $row['id'], gettype($row['id']));
printf("label = %s (%s)\n", $row['label'], gettype($row['label']));
?>

Результат выполнения данного примера:

id = 1 (string)
label = a (string)

Если используется библиотека mysqlnd, можно включить преобразование целочисленных значений и чисел с плавающей запятой из столбцов таблицы в PHP числа. Делается это заданием настройки подключения MYSQLI_OPT_INT_AND_FLOAT_NATIVE. В таком случае mysqlnd будет проверять метаданные столбцов и преобразовывать SQL-числа этих полей в PHP-числа, если эти значения не выходят за рамки допустимых диапазонов типов данных PHP. То есть, например, SQL INT число попадет в PHP приложение в виде целого (integer).

Пример #5 Получение исходных типов данных в приложении

<?php
$mysqli = mysqli_init();
$mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);
$mysqli->real_connect("example.com", "user", "password", "database");

if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

$res = $mysqli->query("SELECT id, label FROM test WHERE id = 1");
$row = $res->fetch_assoc();

printf("id = %s (%s)\n", $row['id'], gettype($row['id']));
printf("label = %s (%s)\n", $row['label'], gettype($row['label']));
?>

Результат выполнения данного примера:

id = 1 (integer)
label = a (string)

См. также

  • mysqli::__construct()
  • mysqli::init()
  • mysqli::options()
  • mysqli::real_connect()
  • mysqli::query()
  • mysqli::multi_query()
  • mysqli::use_result()
  • mysqli::store_result()
  • mysqli_result::free()


Подготавливаемые запросы

СУБД MySQL поддерживает подготавливаемые запросы. Подготавливаемые (или параметризованные) запросы используются для повышения эффективности, когда один запрос выполняется многократно.

Принцип работы

Выполнение подготавливаемого запроса проводится в два этапа: подготовка и исполнение. На этапе подготовки на сервер посылается шаблон запроса. Сервер выполняет синтаксическую проверку этого шаблона, строит план выполнения запроса и выделяет под него ресурсы.

MySQL сервер поддерживает неименованные, или позиционные, псевдопеременные ?.

Пример #1 Первый этап: подготовка

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

/* обычный запрос */
if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

/* подготавливаемый запрос, первая стадия: подготовка */
if (!($stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?)"))) {
    echo "Не удалось подготовить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

За подготовкой идет выполнение. Во время запуска запроса клиент привязывает к псевдопеременным реальные значения и посылает их на сервер. Сервер, в свою очередь, подставляет их в шаблон и запускает уже готовый запрос на выполнение.

Пример #2 Второй этап: привязка параметров и выполнение

<?php
/* подготавливаемый запрос, вторая стадия: привязка и выполнение */
$id = 1;
if (!$stmt->bind_param("i", $id)) {
    echo "Не удалось привязать параметры: (" . $stmt->errno . ") " . $stmt->error;
}

if (!$stmt->execute()) {
    echo "Не удалось выполнить запрос: (" . $stmt->errno . ") " . $stmt->error;
}
?>

Повторное выполнение запроса

Подготовленный запрос можно запускать многократно. Перед каждым запуском значения привязанных переменных будут передаваться на сервер и подставляться в текст запроса. Сам текст запроса повторно не анализируется, равно как и не отсылается повторно шаблон.

Пример #3 Выражение INSERT один раз подготавливается, а затем многократно выполняется

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

/* обычный запрос */
if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

/* подготавливаемый запрос, первая стадия: подготовка */
if (!($stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?)"))) {
     echo "Не удалось подготовить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

/* подготавливаемый запрос, вторая стадия: привязка и выполнение */
$id = 1;
if (!$stmt->bind_param("i", $id)) {
    echo "Не удалось привязать параметры: (" . $stmt->errno . ") " . $stmt->error;
}

if (!$stmt->execute()) {
    echo "Не удалось выполнить запрос: (" . $stmt->errno . ") " . $stmt->error;
}

/* подготавливаемый запрос: повторные выполнения, на сервер передаются только значения переменных */
for ($id = 2; $id < 5; $id++) {
    if (!$stmt->execute()) {
        echo "Не удалось выполнить запрос: (" . $stmt->errno . ") " . $stmt->error;
    }
}

/* рекомендуется явно закрывать запросы */
$stmt->close();

/* обычный запрос */
$res = $mysqli->query("SELECT id FROM test");
var_dump($res->fetch_all());
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [3]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
}

Каждый подготавливаемый запрос использует ресурсы сервера. Если запрос больше не нужен, его необходимо сразу закрыть. Если не сделать этого явно, запрос закроется сам, но только когда PHP освободит его дескриптор, как правило это происходит при выходе запроса из области видимости или при завершении работы скрипта.

Использование подготавливаемых запросов не всегда приводит к повышению эффективности. Если параметризованный запрос запускается лишь раз, это приводит к большему количеству клиент-серверных обменов данными, нежели при выполнении простого запроса. Именно по этой причине в примере выше выражение SELECT выполнялось, как обычный запрос.

Также имеет смысл рассмотреть SQL-синтаксис вставки множества значений в выражении INSERT. В примере выше мультивставка (значения для вставки перечисляются через запятую) в предложении INSERT обошлась бы дешевле, чем подготовленный запрос.

Пример #4 Меньше обменов данными при использовании мультивставок SQL

<?php
if (!$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3), (4)")) {
    echo "Не удалось выполнить множественную вставку: (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

Типы данных значений в результирующей таблице

В протоколе клиент-серверного взаимодействия MySQL для обычных и подготавливаемых запросов определены разные протоколы передачи данных клиенту. Параметризованные запросы используют так называемый двоичный протокол. Сервер MySQL посылает результирующий набор клиенту "как есть" в двоичном формате. Данные в таблице не преобразуются в текст. Соответственно, клиентские библиотеки, получив двоичные данные, пытаются привести их к подходящим типам данных PHP. Например, столбец результатов запроса типа SQL INT PHP примет и преобразует в тип integer.

Пример #5 Исходные типы данных

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

$stmt = $mysqli->prepare("SELECT id, label FROM test WHERE id = 1");
$stmt->execute();
$res = $stmt->get_result();
$row = $res->fetch_assoc();

printf("id = %s (%s)\n", $row['id'], gettype($row['id']));
printf("label = %s (%s)\n", $row['label'], gettype($row['label']));
?>

Результат выполнения данного примера:

id = 1 (integer)
label = a (string)

Такое поведение не характерно для обычных запросов, которые по умолчанию все результаты возвращают в виде текстовых строк. Это поведение по умолчанию можно изменить, настроив соединение соответствующим образом. После такой настройки разницы между данными подготавливаемого и обычного запросов уже не будет.

Получение результатов запроса с привязкой переменных

Результаты из подготовленного запроса можно получить либо привязав выходные переменные, либо запросив объект mysqli_result.

Выходные параметры нужно привязывать после выполнения запроса. Каждому столбцу результирующей таблицы должна соответствовать ровно одна переменная.

Пример #6 Привязка переменных к результату запроса

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($stmt = $mysqli->prepare("SELECT id, label FROM test"))) {
    echo "Не удалось подготовить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
    echo "Не удалось выполнить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

$out_id    = NULL;
$out_label = NULL;
if (!$stmt->bind_result($out_id, $out_label)) {
    echo "Не удалось привязать выходные параметры: (" . $stmt->errno . ") " . $stmt->error;
}

while ($stmt->fetch()) {
    printf("id = %s (%s), label = %s (%s)\n", $out_id, gettype($out_id), $out_label, gettype($out_label));
}
?>

Результат выполнения данного примера:

id = 1 (integer), label = a (string)

Объекты подготавливаемых запросов по умолчанию возвращают небуферизованные результирующие наборы. Эти таблицы никаким неявным образом не переносятся на клиента, они остаются на сервере, занимая его ресурсы, пока клиентский процесс самостоятельно не извлечет все данные. Если клиент не может извлечь данные результирующего набора, или после закрытия объекта запроса остаются невыбранными какие-то данные, то на mysqli ложится ответственность неявно подчистить этот мусор за клиентским процессом.

Также можно буферизовать данные результирующих таблиц подготовленного запроса с помощью функции mysqli_stmt_store_result().

Извлечение результатов запроса посредством mysqli_result интерфейса

Вместо использования привязки переменных к результатам запроса, результирующие таблицы можно извлекать средствами интерфейса mysqli_result. Функция mysqli_stmt_get_result() возвращает буферизованный результирующий набор строк.

Пример #7 Использование mysqli_result для выборки результатов запроса

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($stmt = $mysqli->prepare("SELECT id, label FROM test ORDER BY id ASC"))) {
    echo "Не удалось подготовить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
     echo "Не удалось выполнить запрос: (" . $stmt->errno . ") " . $stmt->error;
}

if (!($res = $stmt->get_result())) {
    echo "Не удалось получить результат: (" . $stmt->errno . ") " . $stmt->error;
}

var_dump($res->fetch_all());
?>

Результат выполнения данного примера:

array(1) {
  [0]=>
  array(2) {
    [0]=>
    int(1)
    [1]=>
    string(1) "a"
  }
}

Использование mysqli_result interface имеет дополнительное преимущество в том, что буферизация результирующих таблиц на клиенте предлагает гибкую систему навигации по этим таблицам.

Пример #8 Буферизация результирующего набора для удобства чтения данных

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a'), (2, 'b'), (3, 'c')")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($stmt = $mysqli->prepare("SELECT id, label FROM test"))) {
    echo "Не удалось подготовить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
     echo "Не удалось выполнить запрос: (" . $stmt->errno . ") " . $stmt->error;
}

if (!($res = $stmt->get_result())) {
    echo "Не удалось получить результат: (" . $stmt->errno . ") " . $stmt->error;
}

for ($row_no = ($res->num_rows - 1); $row_no >= 0; $row_no--) {
    $res->data_seek($row_no);
    var_dump($res->fetch_assoc());
}
$res->close();
?>

Результат выполнения данного примера:

array(2) {
  ["id"]=>
  int(3)
  ["label"]=>
  string(1) "c"
}
array(2) {
  ["id"]=>
  int(2)
  ["label"]=>
  string(1) "b"
}
array(2) {
  ["id"]=>
  int(1)
  ["label"]=>
  string(1) "a"
}

Экранирование и SQL-инъекции

Значения привязанных к запросу переменных сервер экранирует автоматически. Серверу необходима подсказка в виде указания типов привязываемых переменных, чтобы правильно преобразовать их значения. Дополнительную информацию см. в описании функции mysqli_stmt_bind_param(). Привязанные переменные отправляются на сервер отдельно от запроса и таким образом не могут влиять на него. Сервер использует эти значения непосредственно в момент выполнения, уже после того, как был обработан шаблон выражения. Привязанные параметры не нуждаются в экранировании, так как они никогда не подставляются непосредственно в строку запроса. Необходимо отправлять тип привязанной переменной на сервер, чтобы определить соответствующее преобразование. Смотрите функцию mysqli_stmt_bind_param() для получения большей информации.

Такое разделение часто считается единственным способом обезопаситься от SQL-инъекции, но на самом деле такого же уровня безопасности можно добиться и с неподготовленными выражениями, если правильно отформатировать все значения. Важно отметить, что правильное форматирование - не то же самое, что и экранирование, и включает в себя больше логики. Таким образом, подготовленные выражения - просто более удобный и менее подверженный ошибкам способ для достижения такой безопасности базы данных.

Эмуляция подготовленного запроса на клиенте

В API нет возможности эмулировать подготавливаемые запросы на клиенте.

Сравнение обычного и подготавливаемого запросов

В таблице ниже приведено сравнение обычного и подготовленного на сервере запросов.

Сравнение подготовленных и не-подготовленных выражений
 | Подготовленный запрос | Обычный запрос
Количество обращений к серверу, SELECT, однократное выполнение | 2 | 1
Количество строк с текстом запроса, переданных клиентом на сервер | 1 | 1
Количество обращений к серверу, SELECT, n-кратное выполнение | 1 + n | n
Количество строк с текстом запроса, переданных клиентом на сервер | 1 шаблон, n раз параметры, если есть | n раз весь текст вместе с параметрами, если они есть
Привязка входных параметров средствами API | Есть, автоматическое экранирование значений параметров | Нет, параметры экранируются вручную
Привязка выходных параметров средствами API | Есть | Нет
Поддерживает использование API mysqli_result | Да, используется mysqli_stmt_get_result() | Да
Буферизация результирующих наборов | Есть, можно использовать функцию mysqli_stmt_get_result() или mysqli_stmt_store_result() | Есть, это поведение по умолчанию для mysqli_query()
Работа с небуферизованными результирующими наборами | Возможно, используется привязка выходных параметров с помощью API | Возможно, используется функция mysqli_real_query() совместно с mysqli_use_result()
Способ передачи данных протокола клиент-серверного взаимодействия MySQL | Двоичный протокол | Текстовый протокол
SQL-типы значений результирующего набора | Сохраняются при извлечении | Преобразовываются в строки или сохраняются при извлечении
Поддерживает все SQL-выражения | Последние версии MySQL поддерживают большинство, но не все | Да

См. также

  • mysqli::__construct()
  • mysqli::query()
  • mysqli::prepare()
  • mysqli_stmt::prepare()
  • mysqli_stmt::execute()
  • mysqli_stmt::bind_param()
  • mysqli_stmt::bind_result()


Хранимые процедуры

СУБД MySQL поддерживает хранимые процедуры. Под этим термином понимается последовательность операций, хранящаяся как единое целое в каталоге базы данных на сервере. Приложения могут вызывать и запускать хранимые процедуры. Для запуска хранимой процедуры используется SQL выражение CALL.

Параметры

Хранимые процедуры могут иметь параметры IN, INOUT и OUT в зависимости от версии MySQL. Интерфейс mysqli не делает различий между этими типами параметров.

Параметр IN

Входные параметры указываются внутри предложения CALL. При передаче входных параметров важно убедиться, что их значения корректно экранированы.

Пример #1 Вызов хранимой процедуры

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
    !$mysqli->query("CREATE PROCEDURE p(IN id_val INT) BEGIN INSERT INTO test(id) VALUES(id_val); END;")) {
    echo "Не удалось создать хранимую процедуру: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("CALL p(1)")) {
    echo "Не удалось вызвать хранимую процедуру: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($res = $mysqli->query("SELECT id FROM test"))) {
    echo "Запрос SELECT потерпел неудачу: (" . $mysqli->errno . ") " . $mysqli->error;
}

var_dump($res->fetch_assoc());
?>

Результат выполнения данного примера:

array(1) {
  ["id"]=>
  string(1) "1"
}

Параметр INOUT/OUT

Значения параметров INOUT/OUT доступны через переменные сессии.

Пример #2 Использование переменных сессии

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
    !$mysqli->query('CREATE PROCEDURE p(OUT msg VARCHAR(50)) BEGIN SELECT "Hi!" INTO msg; END;')) {
    echo "Не удалось создать хранимую процедуру: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("SET @msg = ''") || !$mysqli->query("CALL p(@msg)")) {
    echo "Не удалось вызвать хранимую процедуру: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($res = $mysqli->query("SELECT @msg as _p_out"))) {
    echo "Получить данные не удалось: (" . $mysqli->errno . ") " . $mysqli->error;
}

$row = $res->fetch_assoc();
echo $row['_p_out'];
?>

Результат выполнения данного примера:

Hi!

Разработчики приложений и фреймворков могут предоставить более удобный API, в котором наряду с сессионными переменными используется просмотр каталогов базы данных напрямую. Однако, стоит учитывать, что такой подход снижает быстродействие.

Обработка результирующих наборов

Хранимые процедуры могут возвращать результирующие наборы строк. Таблицы результатов работы хранимой процедуры нельзя корректно извлечь средствами mysqli_query(). Функция mysqli_query() выполняет две операции: запускает запрос и извлекает первый результирующий набор, помещая его в буфер. Хранимые процедуры могут возвращать более одного результирующего набора, но при использовании mysqli_query() все они, кроме первого, станут недоступны пользователю.

Результирующие таблицы хранимых процедур извлекаются функциями mysqli_real_query() или mysqli_multi_query(). Обе функции позволяют получить любое количество результирующих наборов, возвращенных SQL-запросами, таких как CALL. Если в процессе работы не удается извлечь все доступные результаты вызова хранимой процедуры, будет вызываться ошибка.

Пример #3 Извлечение результатов работы хранимой процедуры

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
    !$mysqli->query('CREATE PROCEDURE p() READS SQL DATA BEGIN SELECT id FROM test; SELECT id + 1 FROM test; END;')) {
    echo "Не удалось создать хранимую процедуру: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->multi_query("CALL p()")) {
    echo "Не удалось вызвать хранимую процедуру: (" . $mysqli->errno . ") " . $mysqli->error;
}

do {
    if ($res = $mysqli->store_result()) {
        printf("---\n");
        var_dump($res->fetch_all());
        $res->free();
    } else {
        if ($mysqli->errno) {
            echo "Не удалось получить результат на клиенте: (" . $mysqli->errno . ") " . $mysqli->error;
        }
    }
} while ($mysqli->more_results() && $mysqli->next_result());
?>

Результат выполнения данного примера:

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
}

Использование подготавливаемых запросов

Специальных средств для извлечения данных при использовании подготавливаемых запросов не требуется. Интерфейсы подготавливаемых и обычных запросов одинаковы. Однако, нужно учитывать, что не все версии MYSQL поддерживают подготовку в запросе SQL-выражения CALL.

Пример #4 Хранимые процедуры и подготавливаемые запросы

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
    !$mysqli->query('CREATE PROCEDURE p() READS SQL DATA BEGIN SELECT id FROM test; SELECT id + 1 FROM test; END;')) {
    echo "Не удалось создать хранимую процедуру: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($stmt = $mysqli->prepare("CALL p()"))) {
    echo "Не удалось подготовить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
    echo "Не удалось выполнить запрос: (" . $stmt->errno . ") " . $stmt->error;
}

do {
    if ($res = $stmt->get_result()) {
        printf("---\n");
        var_dump(mysqli_fetch_all($res));
        mysqli_free_result($res);
    } else {
        if ($stmt->errno) {
            echo "Не удалось получить результат на клиенте: (" . $stmt->errno . ") " . $stmt->error;
        }
    }
} while ($stmt->more_results() && $stmt->next_result());
?>

Само собой, поддерживается привязка результатов к объекту запроса.

Пример #5 Хранимые процедуры и подготавливаемые запросы с использованием привязки результатов

<?php
if (!($stmt = $mysqli->prepare("CALL p()"))) {
    echo "Не удалось подготовить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
    echo "Не удалось выполнить запрос: (" . $stmt->errno . ") " . $stmt->error;
}

do {

    $id_out = NULL;
    if (!$stmt->bind_result($id_out)) {
        echo "Не удалось связать результат с объектом запроса: (" . $stmt->errno . ") " . $stmt->error;
    }

    while ($stmt->fetch()) {
        echo "id = $id_out\n";
    }
} while ($stmt->more_results() && $stmt->next_result());
?>

См. также

  • mysqli::query()
  • mysqli::multi_query()
  • mysqli_result::next-result()
  • mysqli_result::more-results()


Множественные запросы

MySQL поддерживает наличие нескольких SQL-предложений в тексте одного запроса. Пересылка на сервер нескольких выражений в одном запроса уменьшает количество клиент-серверных взаимодействий, но требует специальной обработки.

Множественные запросы, или мультизапросы, должны запускаться функцией mysqli_multi_query(). Отдельные SQL-предложения в мультизапросе отделяются точкой с запятой. После выполнения мультизапроса все результирующие наборы, которые он вернул, необходимо извлечь.

MySQL-сервер поддерживает наличие в одном мультизапросе подзапросов, как возвращающих результирующий набор, так и не возвращающих.

Пример #1 Множественные запросы

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

$sql = "SELECT COUNT(*) AS _num FROM test; ";
$sql.= "INSERT INTO test(id) VALUES (1); ";
$sql.= "SELECT COUNT(*) AS _num FROM test; ";

if (!$mysqli->multi_query($sql)) {
    echo "Не удалось выполнить мультизапрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

do {
    if ($res = $mysqli->store_result()) {
        var_dump($res->fetch_all(MYSQLI_ASSOC));
        $res->free();
    }
} while ($mysqli->more_results() && $mysqli->next_result());
?>

Результат выполнения данного примера:

array(1) {
  [0]=>
  array(1) {
    ["_num"]=>
    string(1) "0"
  }
}
array(1) {
  [0]=>
  array(1) {
    ["_num"]=>
    string(1) "1"
  }
}

Рассмотрение аспектов безопасности

Функции API mysqli_query() и mysqli_real_query() во время работы не устанавливают на сервере специальный флаг, необходимый для выполнения мультизапросов. Отдельная API-функция для мультизапросов позволяет снизить вероятность случайных SQL-инъекций. Злоумышленник может попытаться добавить в конец запроса выражения, вроде ; DROP DATABASE mysql или ; SELECT SLEEP(999). Если ему это удастся, но не будет использоваться функция mysqli_multi_query, сервер не выполнит второе внедренное и опасное SQL-выражение.

Пример #2 SQL-инъекция

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
$res    = $mysqli->query("SELECT 1; DROP TABLE mysql.user");
if (!$res) {
    echo "Ошибка при выполнении запроса: (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

Результат выполнения данного примера:

Ошибка при выполнении запроса: (1064) You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax
to use near 'DROP TABLE mysql.user' at line 1

Подготавливаемые запросы

Использование множества выражений в подготавливаемом запросе не поддерживается.

См. также

  • mysqli::query()
  • mysqli::multi_query()
  • mysqli_result::next-result()
  • mysqli_result::more-results()


API поддержка транзакций

Поддержка транзакций в СУБД MySQL зависит от используемого движка хранилища данных. Начиная с MySQL 5.5, по умолчанию используется движок InnoDB. InnoDB полностью поддерживает модель транзакций ACID.

Транзакциями можно управлять как средствами SQL, так и вызовами API-функций. Для включения и выключения режима автофиксации изменений рекомендуется пользоваться API функциями.

Пример #1 Установка режима автофиксации средствами SQL и функциями API

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

/* Рекомендуется управлять настройками транзакций средствами API */
$mysqli->autocommit(false);

/* Не будет распознаваться и учитываться плагинами репликации и балансировки нагрузки */
if (!$mysqli->query('SET AUTOCOMMIT = 0')) {
    echo "Не удалось выполнить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

Дополнительные службы сервера, такие как плагины репликации и балансировки нагрузки, могут отслеживать вызовы API-функций. Плагин репликации может сообщать балансировщику нагрузки о запущенной транзакции, если эта транзакция обслуживается API-функциями. Сервер не сможет распределять нагрузку между репликами базы, если смена режима автофиксации, фиксация и откат транзакций осуществляются SQL-запросами.

Пример #2 Фиксация и откат

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
$mysqli->autocommit(false);

$mysqli->query("INSERT INTO test(id) VALUES (1)");
$mysqli->rollback();

$mysqli->query("INSERT INTO test(id) VALUES (2)");
$mysqli->commit();
?>

Следует заметить, что сервер MySQL не может откатить результаты всех запросов. Некоторые изменения фиксируются неявно.

См. также

  • mysqli::autocommit()
  • mysqli_result::commit()
  • mysqli_result::rollback()


Метаданные

Результирующий набор MySQL содержит метаданные. Эти данные описывают столбцы результирующей таблицы. Все сведения, которые передает MySQL, доступны через mysqli интерфейс. Расширение не изменяет получаемые данные, либо эти изменения незначительны. Различия между версиями MySQL также можно не принимать во внимание.

Метаданные доступны через интерфейс mysqli_result.

Пример #1 Доступ к метаданным результирующей таблицы

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

$res = $mysqli->query("SELECT 1 AS _one, 'Hello' AS _two FROM DUAL");
var_dump($res->fetch_fields());
?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  object(stdClass)#3 (13) {
    ["name"]=>
    string(4) "_one"
    ["orgname"]=>
    string(0) ""
    ["table"]=>
    string(0) ""
    ["orgtable"]=>
    string(0) ""
    ["def"]=>
    string(0) ""
    ["db"]=>
    string(0) ""
    ["catalog"]=>
    string(3) "def"
    ["max_length"]=>
    int(1)
    ["length"]=>
    int(1)
    ["charsetnr"]=>
    int(63)
    ["flags"]=>
    int(32897)
    ["type"]=>
    int(8)
    ["decimals"]=>
    int(0)
  }
  [1]=>
  object(stdClass)#4 (13) {
    ["name"]=>
    string(4) "_two"
    ["orgname"]=>
    string(0) ""
    ["table"]=>
    string(0) ""
    ["orgtable"]=>
    string(0) ""
    ["def"]=>
    string(0) ""
    ["db"]=>
    string(0) ""
    ["catalog"]=>
    string(3) "def"
    ["max_length"]=>
    int(5)
    ["length"]=>
    int(5)
    ["charsetnr"]=>
    int(8)
    ["flags"]=>
    int(1)
    ["type"]=>
    int(253)
    ["decimals"]=>
    int(31)
  }
}

Подготавливаемые запросы

Метаданные результирующих наборов, полученных в результате выполнения подготовленных запросов, можно получить аналогичным образом. Подходящий дескриптор mysqli_result можно получить функцией mysqli_stmt_result_metadata().

Пример #2 Метаданные подготовленных запросов

<?php
$stmt = $mysqli->prepare("SELECT 1 AS _one, 'Hello' AS _two FROM DUAL");
$stmt->execute();
$res = $stmt->result_metadata();
var_dump($res->fetch_fields());
?>

См. также

  • mysqli::query()
  • mysqli_result::fetch_fields()


Требования

Чтобы эти функции были доступны, PHP должен быть собран с поддержкой расширения mysqli.

MySQL 8

При запуске PHP до версии 7.1.16 или PHP 7.2 до 7.2.4, установите плагин по умолчанию MySQL 8 Server в mysql_native_password, иначе вы увидите ошибки, похожие на The server requested authentication method unknown to the client [caching_sha2_password], даже когда caching_sha2_password не используется.

Это связано с тем, что MySQL 8 по умолчанию использует caching_sha2_password, и плагин не распознается старыми версиями PHP (mysqlnd). Вместо этого измените это, установив default_authentication_plugin=mysql_native_password в my.cnf. Плагин caching_sha2_password будет поддерживаться в будущей версии PHP. Пока же расширение mysql_xdevapi поддерживает его.


Установка

Расширение mysqli было представлено с версией PHP 5.0.0. MySQL Native Driver был включен в PHP версии 5.3.0.

Установка для Linux

Большинство дистрибутивов Unix включает бинарные версии PHP, которые в дальнейшем могут быть установлены. Несмотря на то, что бинарные версии, как правило, собраны с включенной поддержкой расширений MySQL, может потребоваться установка дополнительных пакетов с библиотеками расширений. Убедитесь, что менеджер пакетов, идущий с выбранным дистрибутивом, позволяет установить такие пакеты.

К примеру, на Ubuntu пакет php5-mysql устанавливает расширения ext/mysql, ext/mysqli, и pdo_mysql. На CentOS, пакет php-mysql так же их устанавливает.

Конечно, вы всегда можете собрать PHP из исходного кода. Сборка PHP из исходного кода позволяет выделить только те расширения MySQL (а также клиентские библиотеки для каждого из расширений), которые требуется использовать.

Рекомендуется использовать библиотеку MySQL Native Driver, в результате повышается производительность и имеется доступ к функциям, недоступным при использовании MySQL Client Library. См. Что такое MySQL Native Driver в PHP? для ознакомления с возможностями MySQL Native Driver.

Под /path/to/mysql_config подразумевается расположение программы mysql_config, поставляемой вместе с MySQL Server.

Вспомогательная таблица времени компиляции mysqli
Версия PHP | По умолчанию | Опции настройки: mysqlnd | Опции настройки: libmysqlclient | Список изменений
5.4.x и выше | mysqlnd | --with-mysqli | --with-mysqli=/path/to/mysql_config | по умолчанию mysqlnd
5.3.x | libmysqlclient | --with-mysqli=mysqlnd | --with-mysqli=/path/to/mysql_config | mysqlnd поддерживается
5.0.x, 5.1.x, 5.2.x | libmysqlclient | Недоступно | --with-mysqli=/path/to/mysql_config | mysqlnd не поддерживается

Необходимо отметить, что существует возможность свободно перемешивать расширения MySQL и клиентские библиотеки. Например, можно активировать расширение MySQL, позволяющее использовать MySQL Client Library (libmysqlclient), и при этом настроить расширение mysqli для использования MySQL Native Driver. Таким образом, возможны любые перестановки расширений и клиентских библиотек.

Установка для Windows

Для Windows PHP в большинстве случаев устанавливается с помощью установщика.

PHP 5.3.0 и новее

В Windows для PHP версии 5.3 и выше, расширение mysqli разрешено и использует MySQL Native Driver по умолчанию. Это означает, что вам не нужно париться, настраивая доступ кlibmysql.dll.

PHP 5.0, 5.1, 5.2

Для старых, неподдерживаемых версий PHP (PHP 5.2 не поддерживается с 6 января 2011 года), необходимо произвести настройку для включения расширения mysqli и определения используемой им клиентской библиотеки.

Расширение mysqli не включено по умолчанию, а следовательно в php.ini необходимо указать файл DLL php_mysqli.dll. Для этого вам необходимо найти файл php.ini (обычно расположен в c:\php) и убедиться, что вы сняли знак комментирования (";") в начале строки extension=php_mysqli.dll, в разделе [PHP_MYSQLI].

Также, если вы хотите использовать MySQL Client Library с mysqli, то вам необходимо убедиться, что PHP может получить доступ к файлу клиентской библиотеки. MySQL Client Library включен в дистрибутив Windows PHP в виде файла libmysql.dll. Этот файл должен быть доступен в переменной окружения Windows PATH для того, чтобы его можно было успешно загрузить. По ссылке "Как мне добавить мою PHP директорию в Windows PATH" находится статья с информацией о том, как это сделать. Если системная директория Windows прописана в PATH, то можно скопировать libmysql.dll в системную директорию Windows (обычно c:\Windows\system). Однако такой путь не рекомендуется.

При включении любого расширения PHP (например php_mysqli.dll), директива PHP extension_dir должна содержать путь к директории, где находятся расширения PHP. Смотрите также Инструкции по Самостоятельной Установке для Windows. Для примера в PHP 5 значением extension_dir является c:\php\ext.

Замечание:

Если при загрузке сервера появляется следующее сообщение: "Unable to load dynamic library './php_mysqli.dll'", то система не может найти файлы php_mysqli.dll и/или libmysql.dll.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации MySQLi
Имя | По умолчанию | Место изменения | Список изменений
mysqli.allow_local_infile | "0" | PHP_INI_SYSTEM | Доступно с PHP 5.2.4. До PHP 7.2.16 и 7.3.3 значением по умолчанию было "1".
mysqli.allow_persistent | "1" | PHP_INI_SYSTEM | Доступно с PHP 5.3.0.
mysqli.max_persistent | "-1" | PHP_INI_SYSTEM | Доступно с PHP 5.3.0.
mysqli.max_links | "-1" | PHP_INI_SYSTEM |
mysqli.default_port | "3306" | PHP_INI_ALL |
mysqli.default_socket | NULL | PHP_INI_ALL |
mysqli.default_host | NULL | PHP_INI_ALL |
mysqli.default_user | NULL | PHP_INI_ALL |
mysqli.default_pw | NULL | PHP_INI_ALL |
mysqli.reconnect | "0" | PHP_INI_SYSTEM |
mysqli.rollback_on_cached_plink | TRUE | PHP_INI_SYSTEM | Доступно с PHP 5.6.0.

Прочие детали и определения констант PHP_INI_* смотрите в разделе конфигурационные изменения.

Краткое разъяснение конфигурационных директив.

mysqli.allow_local_infile integer

Разрешает доступ к локальным файлам, с точки зрения PHP, с помощью инструкций LOAD DATA

mysqli.allow_persistent integer

Включает возможность создавать постоянные соединения с помощью mysqli_connect().

mysqli.max_persistent integer

Максимально возможное количество постоянных соединений. Для неограниченного количества установите в 0.

mysqli.max_links integer

Максимальное количество соединений MySQL на процесс.

mysqli.default_port integer

TCP-порт, используемый по умолчанию для соединения с сервером баз данных, если другое значение явно не указано. Если значение по умолчанию не указано, оно будет получено из переменной среды окружения MYSQL_TCP_PORT, директивы mysql-tcp в файле /etc/services или константы MYSQL_PORT, которая задаётся во время компиляции, в указанном порядке. Win32 использует только константу MYSQL_PORT.

mysqli.default_socket string

Имя сокета по умолчанию, которое используется для соединения с локальной базой данных, если имя сокета не было указано явно.

mysqli.default_host string

Имя сервера, которое используется, если имя не было указано явно. Это имя не используется в безопасном режиме.

mysqli.default_user string

Имя пользователя, используемое по умолчанию, если имя не было указано явно. Игнорируется в безопасном режиме.

mysqli.default_pw string

Пароль, используемый по умолчанию для подключения к БД, если пароль не был явно указан. Игнорируется в безопасном режиме.

mysqli.reconnect integer

Автоматически восстанавливать соединение при его потере.

Замечание: Эта настройка игнорируется драйвером "mysqlnd".

mysqli.rollback_on_cached_plink bool

Если этот параметр включен, закрытие постоянного соединения откатит любые ожидающие транзакции этого соединения, прежде чем оно будет возвращено в пул постоянных соединений. В противном случае ожидающие соединения буду откатываться только тогда, когда соединение будет повторно использовано или когда оно будет фактически закрыто.

Пользователи не могут устанавливать MYSQL_OPT_READ_TIMEOUT с помощью API-вызовов или установки конфигурационных значений во время работы скрипта. Учтите, что если бы это было возможно, то libmysqlclient и потоки по-разному обрабатывали бы значение MYSQL_OPT_READ_TIMEOUT.


  • « Настройка во время выполнения
  • Расширение mysqli и постоянные соединения »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Расширение mysqli и постоянные соединения

Для расширения mysqli поддержка постоянных соединений была внедрена в PHP 5.3. В PDO MYSQL и ext/mysql на тот момент она уже была. Идея постоянных подключений состоит в том, чтобы соединение между клиентским процессом и базой данных можно было использовать повторно, особенно когда требуется создавать и закрывать соединения множество раз. Это бы позволило снизить накладные расходы на создание новых подключений каждый раз, когда они требуются, за счет использования существующих кешированных подключений, свободных для повторного использования.

В отличие от расширения mysql, в mysqli нет отдельной функции для создания постоянных соединений. Чтобы открыть постоянное соединение, при создании подключения к имени хоста нужно добавить префикс p:.

При использовании постоянных соединений можно столкнуться с проблемой, которая заключается в том, что клиенты могут оставлять такие подключения в непредсказуемом состоянии. Например, клиент ставит блокировку на таблицу, а затем аварийно завершает работу. То есть блокировка снята не будет. Новый клиентский процесс, использующий это подключение повторно, получит его как есть, и вынужден будет провести какую-то очистку подключения, прежде чем начать его использовать. Соответственно, в задачи программиста входит еще и проверка подобных ситуаций и внедрение кода, осуществляющего такую очистку.

Тем не менее, в mysqli эта проблема решена. В расширении есть встроенный функционал, осуществляющий очистку соединений и переводящий их в состояние пригодное для использования. Код очистки, реализованный в mysqli включает следующие операции:

  • Откат активных транзакций

  • Закрытие и удаление временных таблиц

  • Снятие блокировки с таблиц

  • Сброс переменных сессии

  • Закрытие подготовленных запросов (всегда происходит в PHP)

  • Закрытие обработчиков

  • Снятие блокировок, установленных функцией GET_LOCK()

Это позволяет быть уверенным в том, что возвращенные из пула соединения готовы к использованию в клиентских процессах.

Расширение mysqli делает очистку соединений автоматически путем вызова C-API функции mysql_change_user().

Автоматическая очистка имеет свои достоинства и недостатки. Как плюс, программисту больше не надо заботиться об очистке соединения, все делается автоматически. Однако, это не лучшим образом влияет на производительность, скрипт потенциально может работать медленней, так как автоматическая чистка запускается каждый раз, когда соединение извлекается из пула.

Есть возможность отключить автоматическую очистку соединений, если скомпилировать PHP с директивой MYSQLI_NO_CHANGE_USER_ON_PCONNECT.

Замечание:

Постоянные соединения поддерживаются расширением mysqli как при работе с родным MySQL-драйвером, так и при работе с клиентской библиотекой MySQL.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MYSQLI_READ_DEFAULT_GROUP

Читать опции из указанной группы в файле my.cnf или файле, указанном с помощью MYSQLI_READ_DEFAULT_FILE

MYSQLI_READ_DEFAULT_FILE

Читать опции из указанного файла, вместо my.cnf

MYSQLI_OPT_CONNECT_TIMEOUT

Тайм-аут подключения в секундах.

MYSQLI_OPT_LOCAL_INFILE

Включает команду LOAD LOCAL INFILE.

MYSQLI_INIT_COMMAND

Команда, которая будет выполнена при подключении к серверу MySQL. Эта команда будет повторно вызвана при переподключении.

MYSQLI_CLIENT_SSL

Использовать SSL (шифрованный протокол). Эта опция не может быть уставовлена приложениями; она устанавливается внутри библиотеки клиента MySQL.

MYSQLI_CLIENT_COMPRESS

Использовать компрессию.

MYSQLI_CLIENT_INTERACTIVE

Ждать interactive_timeout секунд (вместо wait_timeout) бездействия перед закрытием соединения. Переменная сессии клиента wait_timeout будет установлена в значение переменной сессии interactive_timeout.

MYSQLI_CLIENT_IGNORE_SPACE

Разрешить пробелы после имен функций. Делает все имена функций зарезервированными словами.

MYSQLI_CLIENT_NO_SCHEMA

Запретить синтаксис db_name.tbl_name.col_name.

MYSQLI_CLIENT_MULTI_QUERIES

Разрешить выполнение в одном вызове функции mysqli_query() нескольких запросов, разделенных точкой с запятой.

MYSQLI_STORE_RESULT

Для использования буферизации наборов данных.

MYSQLI_USE_RESULT

Для использования небуферизированных наборов данных.

MYSQLI_ASSOC

Результат возвращается в виде ассоциативного массива с именами полей в качестве индексов.

MYSQLI_NUM

Результат возвращается в виде индексного массива.

MYSQLI_BOTH

Результат возвращается в виде массива, который содержит как числовой, так и ассоциативный индексы.

MYSQLI_NOT_NULL_FLAG

Информирует о том, что поле определено как NOT NULL.

MYSQLI_PRI_KEY_FLAG

Поле является частью первичного индекса.

MYSQLI_UNIQUE_KEY_FLAG

Поле является частью уникального индекса.

MYSQLI_MULTIPLE_KEY_FLAG

Поле является частью индекса.

MYSQLI_BLOB_FLAG

Поле определено как BLOB.

MYSQLI_UNSIGNED_FLAG

Поле определено как UNSIGNED.

MYSQLI_ZEROFILL_FLAG

Поле определено как ZEROFILL.

MYSQLI_AUTO_INCREMENT_FLAG

Поле определено как AUTO_INCREMENT.

MYSQLI_TIMESTAMP_FLAG

Поле определено как TIMESTAMP.

MYSQLI_SET_FLAG

Поле определено как SET.

MYSQLI_NUM_FLAG

Поле определено как NUMERIC.

MYSQLI_PART_KEY_FLAG

Поле является частью мульти-индекса.

MYSQLI_GROUP_FLAG

Поле является частью GROUP BY.

MYSQLI_TYPE_DECIMAL

Поле определено как DECIMAL.

MYSQLI_TYPE_NEWDECIMAL

Математическая точность полей DECIMAL или NUMERIC (MySQL 5.0.3 и выше).

MYSQLI_TYPE_BIT

Поле определено как BIT (MySQL 5.0.3 и выше).

MYSQLI_TYPE_TINY

Поле определено как TINYINT.

MYSQLI_TYPE_SHORT

Поле определено как SMALLINT.

MYSQLI_TYPE_LONG

Поле определено как INT.

MYSQLI_TYPE_FLOAT

Поле определено как FLOAT.

MYSQLI_TYPE_DOUBLE

Поле определено как DOUBLE.

MYSQLI_TYPE_NULL

Поле определено как DEFAULT NULL.

MYSQLI_TYPE_TIMESTAMP

Поле определено как TIMESTAMP.

MYSQLI_TYPE_LONGLONG

Поле определено как BIGINT.

MYSQLI_TYPE_INT24

Поле определено как MEDIUMINT.

MYSQLI_TYPE_DATE

Поле определено как DATE.

MYSQLI_TYPE_TIME

Поле определено как TIME.

MYSQLI_TYPE_DATETIME

Поле определено как DATETIME.

MYSQLI_TYPE_YEAR

Поле определено как YEAR.

MYSQLI_TYPE_NEWDATE

Поле определено как DATE.

MYSQLI_TYPE_INTERVAL

Поле определено как INTERVAL

MYSQLI_TYPE_ENUM

Поле определено как ENUM.

MYSQLI_TYPE_SET

Поле определено как SET.

MYSQLI_TYPE_TINY_BLOB

Поле определено как TINYBLOB.

MYSQLI_TYPE_MEDIUM_BLOB

Поле определено как MEDIUMBLOB.

MYSQLI_TYPE_LONG_BLOB

Поле определено как LONGBLOB.

MYSQLI_TYPE_BLOB

Поле определено как BLOB.

MYSQLI_TYPE_VAR_STRING

Поле определено как VARCHAR.

MYSQLI_TYPE_STRING

Поле определено как CHAR или BINARY

MYSQLI_TYPE_CHAR

Поле определено как TINYINT. Для CHAR смотрите MYSQLI_TYPE_STRING

MYSQLI_TYPE_GEOMETRY

Поле определено как GEOMETRY.

MYSQLI_NEED_DATA

Имеются еще данные, доступные для связанных переменных.

MYSQLI_NO_DATA

Больше нет доступных данных для связанных переменных.

MYSQLI_DATA_TRUNCATED

Произошло усечение данных. Доступно начиная с PHP 5.1.0 и MySQL 5.0.5.

MYSQLI_ENUM_FLAG

Поле определено как ENUM. Доступно с PHP 5.3.0.

MYSQLI_BINARY_FLAG

Поле определено как BINARY. Доступно с PHP 5.3.0.

MYSQLI_CURSOR_TYPE_FOR_UPDATE

MYSQLI_CURSOR_TYPE_NO_CURSOR

MYSQLI_CURSOR_TYPE_READ_ONLY

MYSQLI_CURSOR_TYPE_SCROLLABLE

MYSQLI_STMT_ATTR_CURSOR_TYPE

MYSQLI_STMT_ATTR_PREFETCH_ROWS

MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH

MYSQLI_SET_CHARSET_NAME

MYSQLI_REPORT_INDEX

Уведомлять, если индекс, используемый в запросе, не указан либо превышает максимум.

MYSQLI_REPORT_ERROR

Уведомлять об ошибках вызова функций mysqli.

MYSQLI_REPORT_STRICT

Обрабатывать mysqli_sql_exception как ошибки, а не как предупреждения.

MYSQLI_REPORT_ALL

Включить все уведомления.

MYSQLI_REPORT_OFF

Отключает уведомления.

MYSQLI_DEBUG_TRACE_ENABLED

Установлено в 1, если используется функция mysqli_debug().

MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED

MYSQLI_SERVER_QUERY_NO_INDEX_USED

MYSQLI_REFRESH_GRANT

Обновляет таблицу прав доступа.

MYSQLI_REFRESH_LOG

Сбрасывает логи, точно так же, как и SQL выражение FLUSH LOGS.

MYSQLI_REFRESH_TABLES

Очищает кеш таблицы, точно так же, как и SQL выражение FLUSH TABLES.

MYSQLI_REFRESH_HOSTS

Очищает кеш хоста, точно так же, как и SQL выражение FLUSH HOSTS.

MYSQLI_REFRESH_STATUS

Сбрасывает переменные состояния, точно так же, как и SQL выражение FLUSH STATUS.

MYSQLI_REFRESH_THREADS

Очищает кеш потока.

MYSQLI_REFRESH_SLAVE

На ведомом реплицируемом сервере (slave): сбросить информацию ведущего сервера (master) и перезапустить ведомый сервер. Аналогично выполнению SQL выражения RESET SLAVE.

MYSQLI_REFRESH_MASTER

На ведущем реплицируемом сервере (master): удалить бинарные файлы логов в бинарном индексе логов, и обрезать файл индекса. Аналогично выполнению SQL выражения RESET MASTER.

MYSQLI_TRANS_COR_AND_CHAIN

Добавляет "AND CHAIN" в mysqli_commit() или mysqli_rollback().

MYSQLI_TRANS_COR_AND_NO_CHAIN

Добавляет "AND NO CHAIN" в mysqli_commit() или mysqli_rollback().

MYSQLI_TRANS_COR_RELEASE

Добавляет "RELEASE" в mysqli_commit() или mysqli_rollback().

MYSQLI_TRANS_COR_NO_RELEASE

Добавляет "NO RELEASE" в mysqli_commit() или mysqli_rollback().

MYSQLI_TRANS_START_READ_ONLY

Начинает тразакцию как "START TRANSACTION READ ONLY" с mysqli_begin_transaction().

MYSQLI_TRANS_START_READ_WRITE

Начинает транзакцию как "START TRANSACTION READ WRITE" с mysqli_begin_transaction().

MYSQLI_TRANS_START_CONSISTENT_SNAPSHOT

Начинает транзакцию как "START TRANSACTION WITH CONSISTENT SNAPSHOT" с mysqli_begin_transaction().


Основная информация о функциях расширения MySQLi

Основная информация о методах mysqli
Класс mysqli
ООП-интерфейс | Процедурный интерфейс | Синоним (не используйте!) | Описание
Свойства
$mysqli::affected_rows | mysqli_affected_rows() | - | Получает число строк, затронутых предыдущей операцией MySQL
$mysqli::client_info | mysqli_get_client_info() | - | Возвращает информацию о версии клиента MySQL в виде строки (string)
$mysqli::client_version | mysqli_get_client_version() | - | Возвращает информацию о версии клиента MySQL в виде числа (integer)
$mysqli::connect_errno | mysqli_connect_errno() | - | Возвращает код ошибки последнего соединения
$mysqli::connect_error | mysqli_connect_error() | - | Возвращает строковое описание ошибки последнего подключения
$mysqli::errno | mysqli_errno() | - | Возвращает код ошибки последнего вызова функции
$mysqli::error | mysqli_error() | - | Возвращает строковое описание последней ошибки
$mysqli::field_count | mysqli_field_count() | - | Возвращает число столбцов для последнего запроса
$mysqli::host_info | mysqli_get_host_info() | - | Возвращает строку, содержащую тип используемого соединения
$mysqli::protocol_version | mysqli_get_proto_info() | - | Возвращает версию используемого протокола MySQL
$mysqli::server_info | mysqli_get_server_info() | - | Возвращает версию сервера MySQL
$mysqli::server_version | mysqli_get_server_version() | - | Возвращает версию сервера MySQL в виде числа (integer)
$mysqli::info | mysqli_info() | - | Отображает информацию о наиболее часто исполняемом запросе
$mysqli::insert_id | mysqli_insert_id() | - | Возвращает автоматически сгенерированный id, использованный в последнем запросе
$mysqli::sqlstate | mysqli_sqlstate() | - | Возвращает ошибку SQLSTATE предыдущей операции MySQL
$mysqli::warning_count | mysqli_warning_count() | - | Возвращает число предупреждений последнего запроса для заданной ссылки
Методы
mysqli::autocommit() | mysqli_autocommit() | - | Выключает или выключает автоматическое подтверждение изменений базы данных
mysqli::change_user() | mysqli_change_user() | - | Изменяет пользователя (user) для указанного соединения с базой данных
mysqli::character_set_name(), mysqli::client_encoding | mysqli_character_set_name() | mysqli_client_encoding() | Возвращает кодировку, установленную по умолчанию для соединения с базой данных
mysqli::close() | mysqli_close() | - | Закрывает открытое соединение с базой данных
mysqli::commit() | mysqli_commit() | - | Подтверждает текущую транзакцию
mysqli::__construct() | mysqli_connect() | - | Открыть новое соединение с MySQL сервером [Примечание: статический метод (т.е. метод класса)]
mysqli::debug() | mysqli_debug() | - | Выполняет операции отладки
mysqli::dump_debug_info() | mysqli_dump_debug_info() | - | Сбор отладочной информации в лог
mysqli::get_charset() | mysqli_get_charset() | - | Возвращает объект, описывающий кодировку
mysqli::get_connection_stats() | mysqli_get_connection_stats() | - | Возвращает статистку соединения клиента. Доступно только с расширением mysqlnd.
mysqli::get_client_info() | mysqli_get_client_info() | - | Возвращает версию клиента MySQL в виде строки
mysqli::get_client_stats() | mysqli_get_client_stats() | - | Возвращает статистку клиента для каждого процесса. Доступно только с расширением mysqlnd.
mysqli::get_cache_stats() | mysqli_get_cache_stats() | - | Возвращает статистику клиента по кэшу Zval. Доступно только с расширением mysqlnd.
mysqli::get_server_info() | mysqli_get_server_info() | - | Возвращает строку, содержащую версию сервера MySQL, к которому произведено подключение
mysqli::get_warnings() | mysqli_get_warnings() | - | Не документировано
mysqli::init() | mysqli_init() | - | Инициализирует MySQLi и возвращает ресурс для использования с mysqli_real_connect. [Не вызывается из объекта, так как возвращает объект $mysqli.]
mysqli::kill() | mysqli_kill() | - | Создает запрос серверу на уничтожение MySQL-потока
mysqli::more_results() | mysqli_more_results() | - | Проверяет на наличие дополнительных результатов запроса из мульти-запроса
mysqli::multi_query() | mysqli_multi_query() | - | Выполняет запрос к базе данных
mysqli::next_result() | mysqli_next_result() | - | Выполняет подготовку следующего результата из multi_query
mysqli::options() | mysqli_options() | mysqli_set_opt() | Устанавливает опции
mysqli::ping() | mysqli_ping() | - | Производит пинг соединения с сервером, либо переподключение, если соединение было сброшено
mysqli::prepare() | mysqli_prepare() | - | Выполняет подготовку SQL-запроса (Prepared statement)
mysqli::query() | mysqli_query() | - | Выполняет запрос к базе данных
mysqli::real_connect() | mysqli_real_connect() | - | Открывает соединение с сервером MySQL
mysqli::real_escape_string(), mysqli::escape_string() | mysqli_real_escape_string() | mysqli_escape_string() | Экранирует специальные символы в строке, используемой в SQL-запросе, принимая во внимание кодировку соединения
mysqli::real_query() | mysqli_real_query() | - | Выполняет SQL-запрос
mysqli::refresh() | mysqli_refresh() | - | Очищает таблицы или кеш, или сбрасывает информацию сервера репликации
mysqli::rollback() | mysqli_rollback() | - | Откатывает текущую транзакцию
mysqli::select_db() | mysqli_select_db() | - | Выбирает базу данных по умолчанию для выполнения запросов
mysqli::set_charset() | mysqli_set_charset() | - | Устанавливает кодировку клиента по умолчанию
mysqli::set_local_infile_default() | mysqli_set_local_infile_default() | - | Сбрасывает пользовательский обработчик для загрузки команды из локального файла
mysqli::set_local_infile_handler() | mysqli_set_local_infile_handler() | - | Установить функцию-обработчик команды LOAD DATA LOCAL INFILE
mysqli::ssl_set() | mysqli_ssl_set() | - | Используется для установления защищенных соединений, используя SSL
mysqli::stat() | mysqli_stat() | - | Получает текущее состояние системы
mysqli::stmt_init() | mysqli_stmt_init() | - | Инициализирует и возвращает объект для использования с mysqli_stmt_prepare
mysqli::store_result() | mysqli_store_result() | - | Локально сохраняет результат, полученный последним запросом
mysqli::thread_id() | mysqli_thread_id() | - | Возвращает идентификатор потока для текущего соединения
mysqli::thread_safe() | mysqli_thread_safe() | - | Возвращает состояние безопасности потока
mysqli::use_result() | mysqli_use_result() | - | Инициирует получение результата
Основная информация о методах mysqli_stmt
MySQL_STMT
ООП-интерфейс | Процедурный интерфейс | Синоним (не используйте!) | Описание
Свойства
$mysqli_stmt::affected_rows | mysqli_stmt_affected_rows() | - | Возвращает число строк, измененных, удаленных или вставленных при выполнении последней инструкции
$mysqli_stmt::errno | mysqli_stmt_errno() | - | Возвращает код ошибки последнего выполненного запроса
$mysqli_stmt::error | mysqli_stmt_error() | - | Возвращает строковое описание ошибки последнего запроса
$mysqli_stmt::field_count | mysqli_stmt_field_count() | - | Возвращает число полей в заданном запросе - не документировано
$mysqli_stmt::insert_id | mysqli_stmt_insert_id() | - | Получает ID, сгенерированное последней операцией INSERT
$mysqli_stmt::num_rows | mysqli_stmt_num_rows() | - | Возвращает число строк в результате выполнения запроса
$mysqli_stmt::param_count | mysqli_stmt_param_count() | mysqli_param_count() | Возвращает число параметров для заданного запроса
$mysqli_stmt::sqlstate | mysqli_stmt_sqlstate() | - | Возвращает ошибку SQLSTATE для последнего выполненого запроса
Методы
mysqli_stmt::attr_get() | mysqli_stmt_attr_get() | - | Используется для получения текущего значения атрибута запроса
mysqli_stmt::attr_set() | mysqli_stmt_attr_set() | - | Используется для модификации поведения подготовленного запроса
mysqli_stmt::bind_param() | mysqli_stmt_bind_param() | mysqli_bind_param() | Передается переменные в подготовленный запрос как параметры
mysqli_stmt::bind_result() | mysqli_stmt_bind_result() | mysqli_bind_result() | Передает переменные в подготовленный запрос для сохранения результатов
mysqli_stmt::close() | mysqli_stmt_close() | - | Закрывает подготовленный запрос
mysqli_stmt::data_seek() | mysqli_stmt_data_seek() | - | Производит поиск произвольной строки в результатах запроса
mysqli_stmt::execute() | mysqli_stmt_execute() | mysqli_execute() | Исполняет подготовленный запрос
mysqli_stmt::fetch() | mysqli_stmt_fetch() | mysqli_fetch() | Выборка результатов подготовленного запроса в связанные переменные
mysqli_stmt::free_result() | mysqli_stmt_free_result() | - | Освобождает память, хранящую результаты заданного дескриптором запроса
mysqli_stmt::get_result() | mysqli_stmt_get_result() | - | Получает результаты подготовленного запроса. Доступно только с расширением mysqlnd.
mysqli_stmt::get_warnings() | mysqli_stmt_get_warnings() | - | Не документировано
mysqli_stmt::more_results() | mysqli_stmt_more_results() | - | Проверяет наличие дополнительных результатов запроса в случае множественного запроса
mysqli_stmt::next_result() | mysqli_stmt_next_result() | - | Читает следующий результат из множественного запроса
mysqli_stmt::num_rows() | mysqli_stmt_num_rows() | - | См. также $mysqli_stmt::num_rows
mysqli_stmt::prepare() | mysqli_stmt_prepare() | - | Выполняет подготовку SQL запроса для запуска
mysqli_stmt::reset() | mysqli_stmt_reset() | - | Сбрасывает подготовленный запрос
mysqli_stmt::result_metadata() | mysqli_stmt_result_metadata() | mysqli_get_metadata() | Возвращает метаданные результатов подготовленного запроса
mysqli_stmt::send_long_data() | mysqli_stmt_send_long_data() | mysqli_send_long_data() | Передача данных блоками
mysqli_stmt::store_result() | mysqli_stmt_store_result() | - | Передает результат из подготовленного запроса
Основная информация о методах mysqli_result
mysqli_result
ООП-интерфейс | Процедурный интерфейс | Синоним (не используйте!) | Описание
Свойства
$mysqli_result::current_field | mysqli_field_tell() | - | Получить смещение указателя на результат для текущего поля
$mysqli_result::field_count | mysqli_num_fields() | - | Получить количество полей в результате
$mysqli_result::lengths | mysqli_fetch_lengths() | - | Возвращает длины столбцов текущей строки в наборе результатов
$mysqli_result::num_rows | mysqli_num_rows() | - | Получает число строк в результате
Методы
mysqli_result::data_seek() | mysqli_data_seek() | - | Устанавливает указатель результата на произвольную строку в результате
mysqli_result::fetch_all() | mysqli_fetch_all() | - | Получает все результирующие строки и возвращает массив со строками в виде ассоциативного массива и/или нумерованного массива. Доступно только с расширением mysqlnd.
mysqli_result::fetch_array() | mysqli_fetch_array() | - | Получает результирующую строку в виде ассоциативного массива и/или нумерованного массива
mysqli_result::fetch_assoc() | mysqli_fetch_assoc() | - | Получает результирующую строку в виде ассоциативного массива
mysqli_result::fetch_field_direct() | mysqli_fetch_field_direct() | - | Получает метаданные для одного поля
mysqli_result::fetch_field() | mysqli_fetch_field() | - | Возвращает из результата следующее поле
mysqli_result::fetch_fields() | mysqli_fetch_fields() | - | Возвращает массив объектов из полей результата
mysqli_result::fetch_object() | mysqli_fetch_object() | - | Возвращает текущую строку результата в виде объекта
mysqli_result::fetch_row() | mysqli_fetch_row() | - | Получает строку результата как нумерованный массив
mysqli_result::field_seek() | mysqli_field_seek() | - | Устанавливает смещение указателя результата на определенное поле
mysqli_result::free(), mysqli_result::close, mysqli_result::free_result | mysqli_free_result() | - | Освобождает память, связанную с результатом
Основная информация о методах mysqli_driver
MySQL_Driver
ООП-интерфейс | Процедурный интерфейс | Синоним (не используйте!) | Описание
Свойства
-
Методы
mysqli_driver::embedded_server_end() | mysqli_embedded_server_end() | - | Не документировано
mysqli_driver::embedded_server_start() | mysqli_embedded_server_start() | - | Не документировано

Замечание:

Псевдонимы функций предназначены только для обеспечения обратной совместимости. Не используйте их в новых проектах.


  • « Основная информация о функциях расширения MySQLi
  • Базовые примеры расширения MySQLi »
  • PHP Manual
  • MySQLi
  • Примеры

Примеры

Содержание

  • Базовые примеры расширения MySQLi


Базовые примеры расширения MySQLi

Этот пример показывает как соединяться, выполнять запрос, использовать базовую обработку ошибок, распечатывать результирующую выборку и отключаться от базы данных MySQL.

В этом примере используется свободно доступная база данных Sakila которая может быть загружена с » dev.mysql.com, как описано здесь. Для того, чтобы этот пример работал (a) установите sakila и (b) измените переменные для соединения с БД (host, your_user, your_pass).

Пример #1 Обзорный пример работы с расширением MySQLi

<?php
// Давайте начнем с переменной $_GET в нашем примере.
// Она содержит идентификатор aid для поля actor_id в БД Sakila.
// Пусть ее значение по умолчанию будет 1
// и тип этой переменной будет строго целочисленным во избежание SQL-инъекции
// и/или связанных с этим проблем безопасности. Контроль всего перечисленного выше
 // лежит за пределами этого простого примера.
// Пример:
//   http://example.org/script.php?aid=42
if (isset($_GET['aid']) && is_numeric($_GET['aid'])) {
    $aid = (int) $_GET['aid'];
} else {
    $aid = 1;
}

// Подключаемся к базе MySQL и выбираем базу под названием sakila
// Хост: 127.0.0.1, имя пользователя: your_user, пароль: your_pass, база: sakila
$mysqli = new mysqli('127.0.0.1', 'your_user', 'your_pass', 'sakila');

// О нет!! переменная connect_errno существует, а это значит, что соединение не было успешным!
if ($mysqli->connect_errno) {
    // Соединение не удалось. Что нужно делать в этом случае?
    // Можно отправить письмо администратору, отразить ошибку в журнале,
    // информировать пользователя об ошибке на экране и т.п.
    // Вам не нужно при этом раскрывать конфиденциальную информацию, поэтому
    // просто попробуем так:
    echo "Извините, возникла проблема на сайте";

    // На реальном сайте этого делать не следует, но в качестве примера мы покажем
    // как распечатывать информацию о подробностях возникшей ошибки MySQL
    echo "Ошибка: Не удалась создать соединение с базой MySQL и вот почему: \n";
    echo "Номер ошибки: " . $mysqli->connect_errno . "\n";
    echo "Ошибка: " . $mysqli->connect_error . "\n";

    // Вы можете захотеть показать что-то еще, но мы просто выйдем
    exit;
}

// Выполняем запрос SQL
$sql = "SELECT actor_id, first_name, last_name FROM actor WHERE actor_id = $aid";
if (!$result = $mysqli->query($sql)) {
    // О нет! запрос не удался.
    echo "Извините, возникла проблема в работе сайта.";

    // И снова: не делайте этого на реальном сайте, но в этом примере мы покажем,
    // как получить информацию об ошибке:
    echo "Ошибка: Наш запрос не удался и вот почему: \n";
    echo "Запрос: " . $sql . "\n";
    echo "Номер ошибки: " . $mysqli->errno . "\n";
    echo "Ошибка: " . $mysqli->error . "\n";
    exit;
}

// Уфф, мы это сделали. У нас есть соединение с базой данных и успешный запрос.
// Но где же его результат?
if ($result->num_rows === 0) {
    // Упс! в запросе нет ни одной строки! Иногда это ожидаемо и нормально, иногда нет.
    // Решать вам. В данном случае, может быть actor_id был слишком большим?
    echo "Мы не смогли найти совпадение для $aid, простите. Пожалуйста, попробуйте еще раз.";
    exit;
}

// Теперь мы знаем только, что результат выполнения запроса существует, поэтому давайте
// перенесем его в ассоциативный массив, в котором ключами массива будут названия
 // столбцов.
$actor = $result->fetch_assoc();
echo "Иногда я вижу " . $actor['first_name'] . " " . $actor['last_name'] . " по телевизору.";

// Теперь давайте выгрузим пять случайных актеров и выведем их имена в список.
// Здесь мы добавим меньше степеней обработки ошибок, чтобы вы сделали это самостоятельно
$sql = "SELECT actor_id, first_name, last_name FROM actor ORDER BY rand() LIMIT 5";
if (!$result = $mysqli->query($sql)) {
    echo "Извините, возникла проблема в работе сайта.";
    exit;
}

// Распечатываем список из пяти случайно выбранных актеров и создаем ссылку на id
// каждого из них
echo "<ul>\n";
while ($actor = $result->fetch_assoc()) {
    echo "<li><a href='" . $_SERVER['SCRIPT_FILENAME'] . "?aid=" . $actor['actor_id'] . "'>\n";
    echo $actor['first_name'] . ' ' . $actor['last_name'];
    echo "</a></li>\n";
}
echo "</ul>\n";

// Скрипт автоматически закрывает соединение MySQL и освобождает память, тем не
// менее давайте сделаем это вручную
$result->free();
$mysqli->close();
?>


Класс mysqli

(PHP 5, PHP 7)

Введение

Представляет связь между PHP и базой данных MySQL.

Обзор классов

mysqli {
/* Свойства */
int $affected_rows;
int $connect_errno;
string $connect_error;
int $errno;
array $error_list;
string $error;
int $field_count;
string $client_info;
int $client_version;
string $host_info;
string $protocol_version;
string $server_info;
int $server_version;
string $info;
mixed $insert_id;
string $sqlstate;
int $thread_id;
int $warning_count;
/* Методы */
 __construct
  ([ string $host = ini_get("mysqli.default_host")
 [, string $username = ini_get("mysqli.default_user")
 [, string $passwd = ini_get("mysqli.default_pw")
 [, string $dbname = ""
 [, int $port = ini_get("mysqli.default_port")
 [, string $socket = ini_get("mysqli.default_socket")
]]]]]] )
autocommit ( bool $mode ) : bool
change_user ( string $user , string $password , string $database ) : bool
character_set_name ( void ) : string
close ( void ) : bool
commit ([ int $flags = 0 [, string $name ]] ) : bool
 connect
  ([ string $host = ini_get("mysqli.default_host")
 [, string $username = ini_get("mysqli.default_user")
 [, string $passwd = ini_get("mysqli.default_pw")
 [, string $dbname = ""
 [, int $port = ini_get("mysqli.default_port")
 [, string $socket = ini_get("mysqli.default_socket")
]]]]]] ) : void
debug ( string $message ) : bool
dump_debug_info ( void ) : bool
get_charset ( void ) : object
get_client_info ( void ) : string
get_connection_stats ( void ) : bool
mysqli_stmt::get_server_info ( void ) : string
get_warnings ( void ) : mysqli_warning
init ( void ) : mysqli
kill ( int $processid ) : bool
more_results ( void ) : bool
multi_query ( string $query ) : bool
next_result ( void ) : bool
options ( int $option , mixed $value ) : bool
ping ( void ) : bool
public static poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec = 0 ] ) : int
prepare ( string $query ) : mysqli_stmt
query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] ) : mixed
real_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] ) : bool
escape_string ( string $escapestr ) : string
real_escape_string ( string $escapestr ) : string
real_query ( string $query ) : bool
public reap_async_query ( void ) : mysqli_result
public refresh ( int $options ) : bool
rollback ([ int $flags = 0 [, string $name ]] ) : bool
rpl_query_type ( string $query ) : int
select_db ( string $dbname ) : bool
send_query ( string $query ) : bool
set_charset ( string $charset ) : bool
set_local_infile_handler ( mysqli $link , callable $read_func ) : bool
ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher ) : bool
stat ( void ) : string
stmt_init ( void ) : mysqli_stmt
store_result ([ int $option ] ) : mysqli_result
use_result ( void ) : mysqli_result
}

Содержание

  • mysqli::$affected_rows — Получает число строк, затронутых предыдущей операцией MySQL
  • mysqli::autocommit — Включает или отключает автоматическую фиксацию изменений базы данных
  • mysqli::begin_transaction — Стартует транзакцию
  • mysqli::change_user — Позволяет сменить пользователя подключенного к базе данных
  • mysqli::character_set_name — Возвращает кодировку по умолчанию, установленную для соединения с БД
  • mysqli::close — Закрывает ранее открытое соединение с базой данных
  • mysqli::commit — Фиксирует текущую транзакцию
  • mysqli::$connect_errno — Возвращает код ошибки последней попытки соединения
  • mysqli::$connect_error — Возвращает описание последней ошибки подключения
  • mysqli::__construct — Устанавливает новое соединение с сервером MySQL
  • mysqli::debug — Выполняет процедуры отладки
  • mysqli::dump_debug_info — Журналирование отладочной информации
  • mysqli::$errno — Возвращает код ошибки последнего вызова функции
  • mysqli::$error_list — Возвращает список ошибок выполнения последней запущенной команды
  • mysqli::$error — Возвращает строку с описанием последней ошибки
  • mysqli::$field_count — Возвращает число столбцов, затронутых последним запросом
  • mysqli::get_charset — Возвращает объект, описывающий кодировку
  • mysqli::$client_info — Получает информацию о клиенте MySQL
  • mysqli::$client_version — Возвращает информацию о клиенте MySQL в виде строки
  • mysqli::get_connection_stats — Возвращает статистику соединения с клиентом
  • mysqli::$host_info — Возвращает строку, содержащую тип используемого соединения
  • mysqli::$protocol_version — Возвращает версию используемого MySQL протокола
  • mysqli::$server_info — Возвращает версию MySQL сервера
  • mysqli::$server_version — Возвращает версию сервера MySQL, представленную в виде integer
  • mysqli::get_warnings — Получает результат SHOW WARNINGS
  • mysqli::$info — Извлекает информацию о последнем выполненном запросе
  • mysqli::init — Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()
  • mysqli::$insert_id — Возвращает автоматически генерируемый ID, используя последний запрос
  • mysqli::kill — Запрос для сервера завершить выполнение процесса MySQL
  • mysqli::more_results — Проверка, есть ли еще результаты в мультизапросе
  • mysqli::multi_query — Выполняет запрос к базе данных
  • mysqli::next_result — Подготовка следующего доступного результирующего набора из multi_query
  • mysqli::options — Установка настроек
  • mysqli::ping — Проверяет работоспособность соединения или пытается переподключиться, если соединение разорвано
  • mysqli::poll — Опрос подключений
  • mysqli::prepare — Подготавливает SQL выражение к выполнению
  • mysqli::query — Выполняет запрос к базе данных
  • mysqli::real_connect — Устанавливает соединение с сервером mysql
  • mysqli::real_escape_string — Экранирует специальные символы в строке для использования в SQL-выражении, используя текущий набор символов соединения
  • mysqli::real_query — Выполнение SQL запроса
  • mysqli::reap_async_query — Получение результата асинхронного запроса
  • mysqli::refresh — Обновление
  • mysqli::release_savepoint — Удаляет именованную точку сохранения из списка точек сохранения текущей транзакции
  • mysqli::rollback — Откат текущей транзакции
  • mysqli::rpl_query_type — Возвращает RPL тип запроса
  • mysqli::savepoint — Устанавливает именованную точку отката для текущей транзакции
  • mysqli::select_db — Устанавливает базу данных для выполняемых запросов
  • mysqli::send_query — Отправка запроса и возврат
  • mysqli::set_charset — Задает набор символов по умолчанию
  • mysqli::set_local_infile_default — Отмена привязки callback-функции для команды load local infile
  • mysqli::set_local_infile_handler — Задает callback-функцию для команды LOAD DATA LOCAL INFILE
  • mysqli::$sqlstate — Возвращает код состояния SQLSTATE последней MySQL операции
  • mysqli::ssl_set — Используется для установления безопасных соединений, используя SSL
  • mysqli::stat — Получение информации о текущем состоянии системы
  • mysqli::stmt_init — Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare
  • mysqli::store_result — Передает на клиента результирующий набор последнего запроса
  • mysqli::$thread_id — Возвращает ID процесса текущего подключения
  • mysqli::thread_safe — Показывает, безопасна ли работа с процессами
  • mysqli::use_result — Готовит результирующий набор на сервере к использованию
  • mysqli::$warning_count — Возвращает количество предупреждений из последнего запроса заданного подключения


Получает число строк, затронутых предыдущей операцией MySQL

  • « mysqli
  • mysqli::autocommit »
  • PHP Manual
  • mysqli
  • Получает число строк, затронутых предыдущей операцией MySQL

mysqli::$affected_rows

mysqli_affected_rows

(PHP 5, PHP 7)

mysqli::$affected_rows -- mysqli_affected_rows — Получает число строк, затронутых предыдущей операцией MySQL

Описание

Объектно-ориентированный стиль

int $mysqli->affected_rows;

Процедурный стиль

mysqli_affected_rows ( mysqli $link ) : int

Возвращает число строк, затронутых последним запросом INSERT, UPDATE, REPLACE или DELETE.

Для запросов вида SELECT mysqli_affected_rows() работает как mysqli_num_rows().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Целое число, большее нуля, означает количество затронутых или полученных строк. Ноль означает, что запросом вида UPDATE не обновлено ни одной записи, или что ни одна строка не соответствует условию WHERE в запросе, или что запрос еще не был выполнен. Значение -1 указывает на то, что запрос вернул ошибку.

Замечание:

Если число затронутых строк больше чем максимальное значение int ( PHP_INT_MAX ), то число затронутых строк будет возвращено в строковом виде (string).

Примеры

Пример #1 Пример использования $mysqli->affected_rows

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверка соединения */
if (mysqli_connect_errno()) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* Добавление строк (Insert) */
$mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
printf("Затронутые строки (INSERT): %d\n", $mysqli->affected_rows);

$mysqli->query("ALTER TABLE Language ADD Status int default 0");

/* Обновление строк (Update) */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Затронутые строки (UPDATE): %d\n", $mysqli->affected_rows);

/* Удаление строк (Delete) */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Затронутые строки (DELETE): %d\n", $mysqli->affected_rows);

/* Выбор всех строк (Select) */
$result = $mysqli->query("SELECT CountryCode FROM Language");
printf("Затронутые строки (SELECT): %d\n", $mysqli->affected_rows);

$result->close();

/* Удаление таблицы Language */
$mysqli->query("DROP TABLE Language");

/* Закрытие соединения */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Не могу подключиться к localhost. Ошибка: %s\n", mysqli_connect_error());
    exit();
}

/* Добавление строк (Insert) */
mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage");
printf("Затронутые строки (INSERT): %d\n", mysqli_affected_rows($link));

mysqli_query($link, "ALTER TABLE Language ADD Status int default 0");

/* Обновление строк (Update) */
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Затронутые строки (UPDATE): %d\n", mysqli_affected_rows($link));

/* Удаление строк (Delete) */
mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
printf("Затронутые строки (DELETE): %d\n", mysqli_affected_rows($link));

/* Выбор всех строк (Select) */
$result = mysqli_query($link, "SELECT CountryCode FROM Language");
printf("Затронутые строки (SELECT): %d\n", mysqli_affected_rows($link));

mysqli_free_result($result);

/* Удаление таблицы Language */
mysqli_query($link, "DROP TABLE Language");

/* Закрытие соединения */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Затронутые строки (INSERT): 984
Затронутые строки (UPDATE): 168
Затронутые строки (DELETE): 815
Затронутые строки (SELECT): 169

Смотрите также

  • mysqli_num_rows() - Получает число рядов в результирующей выборке
  • mysqli_info() - Извлекает информацию о последнем выполненном запросе


Включает или отключает автоматическую фиксацию изменений базы данных

  • « mysqli::$affected_rows
  • mysqli::begin_transaction »
  • PHP Manual
  • mysqli
  • Включает или отключает автоматическую фиксацию изменений базы данных

mysqli::autocommit

mysqli_autocommit

(PHP 5, PHP 7)

mysqli::autocommit -- mysqli_autocommit — Включает или отключает автоматическую фиксацию изменений базы данных

Описание

Объектно-ориентированный стиль

mysqli::autocommit ( bool $mode ) : bool

Процедурный стиль

mysqli_autocommit ( mysqli $link , bool $mode ) : bool

Включает или отключает режим автоматической фиксации изменений для соединения с базой данных.

Чтобы определить текущее состояние режима используйте команду SQL SELECT @@autocommit.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

mode

Включает или отключает режим автоматической фиксации изменений.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Эта функция не работает с таблицами без транзакций (MyISAM или ISAM).

Примеры

Пример #1 Пример использования mysqli::autocommit()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Включить режим фиксации */
$mysqli->autocommit(TRUE);

if ($result = $mysqli->query("SELECT @@autocommit")) {
    $row = $result->fetch_row();
    printf("Autocommit is %s\n", $row[0]);
    $result->free();
}

/* Закрыть соединение */
$mysqli->close();
?>

Процедурный стиль

<?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();
}

/* Включить режим фиксации */
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);
}

/* Закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Autocommit is 1

Смотрите также

  • mysqli_begin_transaction() - Стартует транзакцию
  • mysqli_commit() - Фиксирует текущую транзакцию
  • mysqli_rollback() - Откат текущей транзакции


Стартует транзакцию

  • « mysqli::autocommit
  • mysqli::change_user »
  • PHP Manual
  • mysqli
  • Стартует транзакцию

mysqli::begin_transaction

mysqli_begin_transaction

(PHP 5 >= 5.5.0, PHP 7)

mysqli::begin_transaction -- mysqli_begin_transaction — Стартует транзакцию

Описание

Объектно-ориентированный стиль (method):

public mysqli::begin_transaction ([ int $flags = 0 [, string $name ]] ) : bool

Процедурный стиль:

mysqli_begin_transaction ( mysqli $link [, int $flags = 0 [, string $name ]] ) : bool

Стартует транзакцию. Требуется InnoDB (разрешен по умолчанию). Для дополнительной информации, как работают транзакции в MySQL, читайте » http://dev.mysql.com/doc/mysql/en/commit.html.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

flags

Корректные флаги:

  • MYSQLI_TRANS_START_READ_ONLY: Стартовать транзакцию как "START TRANSACTION READ ONLY". Требуется MySQL 5.6 или выше.

  • MYSQLI_TRANS_START_READ_WRITE: Стартовать транзакцию как "START TRANSACTION READ WRITE". Требуется MySQL 5.6 или выше.

  • MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT: Стартовать транзакцию как "START TRANSACTION WITH CONSISTENT SNAPSHOT".

name

Точка сохранения транзакции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования $mysqli->begin_transaction()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("127.0.0.1", "my_user", "my_password", "sakila");

if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

$mysqli->begin_transaction(MYSQLI_TRANS_START_READ_ONLY);

$mysqli->query("SELECT first_name, last_name FROM actor");
$mysqli->commit();

$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "sakila");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_begin_transaction($link, MYSQLI_TRANS_START_READ_ONLY);

mysqli_query($link, "SELECT first_name, last_name FROM actor LIMIT 1");
mysqli_commit($link);

mysqli_close($link);
?>

Смотрите также

  • mysqli_autocommit() - Включает или отключает автоматическую фиксацию изменений базы данных
  • mysqli_commit() - Фиксирует текущую транзакцию
  • mysqli_rollback() - Откат текущей транзакции


Позволяет сменить пользователя подключенного к базе данных

  • « mysqli::begin_transaction
  • mysqli::character_set_name »
  • PHP Manual
  • mysqli
  • Позволяет сменить пользователя подключенного к базе данных

mysqli::change_user

mysqli_change_user

(PHP 5, PHP 7)

mysqli::change_user -- mysqli_change_user — Позволяет сменить пользователя подключенного к базе данных

Описание

Объектно-ориентированный стиль

mysqli::change_user ( string $user , string $password , string $database ) : bool

Процедурный стиль

mysqli_change_user ( mysqli $link , string $user , string $password , string $database ) : bool

Меняет пользователя, от имени которого выполнено подключение к базе данных, и устанавливает текущую базу данных

Для успешной смены пользователя необходимы корректные username и password, а также наличие достаточных прав для работы с базой. Если смена пользователя закончится ошибкой, сохранится текущая авторизация пользователя, до вызова функции.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

user

Имя пользователя для доступа к MySQL

password

Пароль для доступа к MySQL

database

Имя базы данных

Если требуется сменить пользователя без выбора базы данных, следует указывать NULL. Для выбора базы данных, необходимо использовать функцию mysqli_select_db().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

В результате вызова функции текущее соединение с базой данных начинает вести себя так, как будто было создано новое соединение. Независимо от результата операции, вызов функции приводит к откату всех активных транзакций, закрытию временных таблиц и разблокировки всех заблокированных таблиц.

Примеры

Пример #1 Пример использования mysqli::change_user()

Объектно-ориентированный стиль

<?php

/* создаем подключение к базе данных test */
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* устанавливаем переменную a */
$mysqli->query("SET @a:=1");

/* все сбрасываем и выбираем новую базу данных */
$mysqli->change_user("my_user", "my_password", "world");

if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("База данных по умолчанию: %s\n", $row[0]);
    $result->close();
}

if ($result = $mysqli->query("SELECT @a")) {
    $row = $result->fetch_row();
    if ($row[0] === NULL) {
        printf("Значение переменной - NULL\n");
    }
    $result->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
/* создаем подключение к базе данных test */
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* проверяем соединение */
if (!$link) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* устанавливаем переменную a */
mysqli_query($link, "SET @a:=1");

/* все сбрасываем и выбираем новую базу данных */
mysqli_change_user($link, "my_user", "my_password", "world");

if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("База данных по умолчанию: %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("Значение переменной - NULL\n");
    }
    mysqli_free_result($result);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

База данных по умолчанию: world
Значение переменной - NULL

Смотрите также

  • mysqli_connect() - Псевдоним mysqli::__construct
  • mysqli_select_db() - Устанавливает базу данных для выполняемых запросов


Возвращает кодировку по умолчанию, установленную для соединения с БД

  • « mysqli::change_user
  • mysqli::close »
  • PHP Manual
  • mysqli
  • Возвращает кодировку по умолчанию, установленную для соединения с БД

mysqli::character_set_name

mysqli_character_set_name

(PHP 5, PHP 7)

mysqli::character_set_name -- mysqli_character_set_name — Возвращает кодировку по умолчанию, установленную для соединения с БД

Описание

Объектно-ориентированный стиль

mysqli::character_set_name ( void ) : string

Процедурный стиль

mysqli_character_set_name ( mysqli $link ) : string

Возвращает текущую кодировку, установленную для соединения с БД.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Кодировка по умолчанию, установленная для текущего соединения

Примеры

Пример #1 Пример использования mysqli::character_set_name()

Объектно-ориентированный стиль

<?php
/* Открыть соединение */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* Вывод текущей кодировки */
$charset = $mysqli->character_set_name();
printf ("Текущая кодировка - %s\n", $charset);

$mysqli->close();
?>

Процедурный стиль

<?php
/* Открыть соединение */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (!$link) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* Вывод текущей кодировки */
$charset = mysqli_character_set_name($link);
printf ("Текущая кодировка - %s\n",$charset);

/* Закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Текущая кодировка - latin1_swedish_ci

Смотрите также

  • mysqli_set_charset() - Задает набор символов по умолчанию
  • mysqli_client_encoding() - Синоним функции mysqli_character_set_name
  • mysqli_real_escape_string() - Экранирует специальные символы в строке для использования в SQL-выражении, используя текущий набор символов соединения


Закрывает ранее открытое соединение с базой данных

  • « mysqli::character_set_name
  • mysqli::commit »
  • PHP Manual
  • mysqli
  • Закрывает ранее открытое соединение с базой данных

mysqli::close

mysqli_close

(PHP 5, PHP 7)

mysqli::close -- mysqli_close — Закрывает ранее открытое соединение с базой данных

Описание

Объектно-ориентированный стиль

mysqli::close ( void ) : bool

Процедурный стиль

mysqli_close ( mysqli $link ) : bool

Закрывает ранее открытое соединение с базой данных.

Открытые непостоянные соединения MySQL и результирующие наборы автоматически удаляются сразу по окончании работы PHP скрипта. Следовательно, закрывать соединения и очищать результирующие наборы не обязательно, но рекомендуется, так как это сразу же освободит ресурсы базы данных и память, занимаемую результатами выборки, что может положительно сказаться на производительности. Больше информации можно почерпнуть в разделе Освобождение ресурсов

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

См. mysqli_connect().

Примечания

Замечание:

mysqli_close() не закрывает постоянные соединения. Для получения подробностей см. руководство по persistent connections.

Смотрите также

  • mysqli::__construct() - Устанавливает новое соединение с сервером MySQL
  • mysqli_init() - Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()
  • mysqli_real_connect() - Устанавливает соединение с сервером mysql
  • mysqli_free_result() - Освобождает память, занятую результатами запроса


Фиксирует текущую транзакцию

  • « mysqli::close
  • mysqli::$connect_errno »
  • PHP Manual
  • mysqli
  • Фиксирует текущую транзакцию

mysqli::commit

mysqli_commit

(PHP 5, PHP 7)

mysqli::commit -- mysqli_commit — Фиксирует текущую транзакцию

Описание

Объектно-ориентированный стиль

mysqli::commit ([ int $flags = 0 [, string $name ]] ) : bool

Процедурный стиль

mysqli_commit ( mysqli $link [, int $flags = 0 [, string $name ]] ) : bool

Фиксирует транзакцию для установленного соединения с базой данных.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

flags

Битмаска констант MYSQLI_TRANS_COR_*.

name

Если передан, то выполняется COMMIT/*name*/.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.0 | Добавлены параметры flags и name.

Примеры

Пример #1 Пример использования mysqli::commit()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE Language LIKE CountryLanguage");

/* Откл. автофиксацию изменений */
$mysqli->autocommit(FALSE);

/* Вставить некоторые значения */
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* Фиксировать транзакцию */
if (!$mysqli->commit()) {
    print("Не удалось зафиксировать транзакцию\n");
    exit();
}

/* Удалить таблицу */
$mysqli->query("DROP TABLE Language");

/* Закрыть соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* Проверить соединение */
if (!$link) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* Откл. автофиксацию изменений */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE Language LIKE CountryLanguage");

/* Вставить некоторые значения */
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* Фиксировать транзакцию */
if (!mysqli_commit($link)) {
    print("Не удалось зафиксировать транзакцию\n");
    exit();
}

/* Закрыть соединение */
mysqli_close($link);
?>

Смотрите также

  • mysqli_autocommit() - Включает или отключает автоматическую фиксацию изменений базы данных
  • mysqli_begin_transaction() - Стартует транзакцию
  • mysqli_rollback() - Откат текущей транзакции
  • mysqli_savepoint() - Устанавливает именованную точку отката для текущей транзакции


Возвращает код ошибки последней попытки соединения

  • « mysqli::commit
  • mysqli::$connect_error »
  • PHP Manual
  • mysqli
  • Возвращает код ошибки последней попытки соединения

mysqli::$connect_errno

mysqli_connect_errno

(PHP 5, PHP 7)

mysqli::$connect_errno -- mysqli_connect_errno — Возвращает код ошибки последней попытки соединения

Описание

Объектно-ориентированный стиль

int $mysqli->connect_errno;

Процедурный стиль

mysqli_connect_errno ( void ) : int

Возвращает код ошибки последнего вызова mysqli_connect().

Замечание:

Номера ошибок клиента MySQL перечислены в файле errmsg.h, номера ошибок сервера перечислены в mysqld_error.h. В исходном пакете MySQL вы можете найти полный список сообщений об ошибках и их номерах в файле Docs/mysqld_error.txt.

Возвращаемые значения

Код ошибки последнего вызова mysqli_connect(). При отсутствие ошибок выводит 0.

Примеры

Пример #1 Пример использования $mysqli->connect_errno

Объектно-ориентированный стиль

<?php
$mysqli = @new mysqli('localhost', 'fake_user', 'my_password', 'my_db');

if ($mysqli->connect_errno) {
    die('Ошибка соединения: ' . $mysqli->connect_errno);
}
?>

Процедурный стиль

<?php
$link = @mysqli_connect('localhost', 'fake_user', 'my_password', 'my_db');

if (!$link) {
    die('Ошибка соединения: ' . mysqli_connect_errno());
}
?>

Результат выполнения данных примеров:

Ошибка соединения: 1045

Смотрите также

  • mysqli_connect() - Псевдоним mysqli::__construct
  • mysqli_connect_error() - Возвращает описание последней ошибки подключения
  • mysqli_errno() - Возвращает код ошибки последнего вызова функции
  • mysqli_error() - Возвращает строку с описанием последней ошибки
  • mysqli_sqlstate() - Возвращает код состояния SQLSTATE последней MySQL операции


Возвращает описание последней ошибки подключения

  • « mysqli::$connect_errno
  • mysqli::__construct »
  • PHP Manual
  • mysqli
  • Возвращает описание последней ошибки подключения

mysqli::$connect_error

mysqli_connect_error

(PHP 5, PHP 7)

mysqli::$connect_error -- mysqli_connect_error — Возвращает описание последней ошибки подключения

Описание

Объектно-ориентированный стиль

string $mysqli->connect_error;

Процедурный стиль

mysqli_connect_error ( void ) : string

Возвращает последнее сообщение об ошибке после вызова mysqli_connect().

Возвращаемые значения

Сообщение об ошибке. NULL, если ошибка отсутствует.

Примеры

Пример #1 Пример использования $mysqli->connect_error

Объектно-ориентированный стиль

<?php
$mysqli = @new mysqli('localhost', 'fake_user', 'my_password', 'my_db');

// Работает в версиях PHP 5.2.9 и 5.3.0.
if ($mysqli->connect_error) {
    die('Ошибка при подключении: ' . $mysqli->connect_error);
}
?>

Процедурный стиль

<?php
$link = @mysqli_connect('localhost', 'fake_user', 'my_password', 'my_db');

if (!$link) {
    die('Ошибка при подключении: ' . mysqli_connect_error());
}
?>

Результат выполнения данных примеров:

Connect Error: Access denied for user 'fake_user'@'localhost' (using password: YES)

Примечания

Внимание

mysqli->connect_error() работает в версиях PHP 5.2.9 и 5.3.0. Для совместимости с более ранними версиями следует использовать mysqli_connect_error()

Смотрите также

  • mysqli_connect() - Псевдоним mysqli::__construct
  • mysqli_connect_errno() - Возвращает код ошибки последней попытки соединения
  • mysqli_errno() - Возвращает код ошибки последнего вызова функции
  • mysqli_error() - Возвращает строку с описанием последней ошибки
  • mysqli_sqlstate() - Возвращает код состояния SQLSTATE последней MySQL операции


Устанавливает новое соединение с сервером MySQL

  • « mysqli::$connect_error
  • mysqli::debug »
  • PHP Manual
  • mysqli
  • Устанавливает новое соединение с сервером MySQL

mysqli::__construct

mysqli::connect

mysqli_connect

(PHP 5, PHP 7)

mysqli::__construct -- mysqli::connect -- mysqli_connect — Устанавливает новое соединение с сервером MySQL

Описание

Объектно-ориентированный стиль

 mysqli::__construct
  ([ string $host = ini_get("mysqli.default_host")
 [, string $username = ini_get("mysqli.default_user")
 [, string $passwd = ini_get("mysqli.default_pw")
 [, string $dbname = ""
 [, int $port = ini_get("mysqli.default_port")
 [, string $socket = ini_get("mysqli.default_socket")
]]]]]] )
 mysqli::connect
  ([ string $host = ini_get("mysqli.default_host")
 [, string $username = ini_get("mysqli.default_user")
 [, string $passwd = ini_get("mysqli.default_pw")
 [, string $dbname = ""
 [, int $port = ini_get("mysqli.default_port")
 [, string $socket = ini_get("mysqli.default_socket")
]]]]]] ) : void

Процедурный стиль

 mysqli_connect
  ([ string $host = ini_get("mysqli.default_host")
 [, string $username = ini_get("mysqli.default_user")
 [, string $passwd = ini_get("mysqli.default_pw")
 [, string $dbname = ""
 [, int $port = ini_get("mysqli.default_port")
 [, string $socket = ini_get("mysqli.default_socket")
]]]]]] ) : mysqli

Устанавливает соединение с работающим сервером MySQL.

Список параметров

host

Может быть именем хоста или IP-адресом. Передача NULL или строки "localhost" этому параметру означает, что в качестве хоста будет использоваться локальная машина, на которой запущен скрипт. Если есть такая возможность, будут использоваться пайпы вместо протокола TCP/IP.

Если перед именем хоста задать строку p:, то будет открыто постоянное соединение. Если соединение открыто из пула подключений, будет автоматически вызвана функция mysqli_change_user().

username

Имя пользователя MySQL.

passwd

Если не задан или равен NULL, MySQL-сервер в первую очередь попытается аутентифицировать пользователя в принципе имеющего пароль, а затем будет искать среди пользователей, у которых нет пароля. Такой подход позволяет одному пользователю назначать различные права (в зависимости от того, задан пароль или нет).

dbname

Если параметр задан, его значение будет использоваться в качестве имени базы данных по умолчанию при выполнении запросов.

port

Задает номер порта для подключения к серверу MySQL.

socket

Задает сокет или именованный пайп, который необходимо использовать.

Замечание:

Передача параметра socket не будет явно задавать тип соединения при подключении к серверу MySQL. То, как будет устанавливаться соединение с MySQL-сервером, определяется параметром host.

Возвращаемые значения

Возвращает объект, представляющий подключение к серверу MySQL, или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Добавлена возможность устанавливать постоянные соединения.

Примеры

Пример #1 Пример использования mysqli::__construct()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

/*
 * Это "официальный" объектно-ориентированный способ сделать это
 * однако $connect_error не работал вплоть до версий PHP 5.2.9 и 5.3.0.
 */
if ($mysqli->connect_error) {
    die('Ошибка подключения (' . $mysqli->connect_errno . ') '
            . $mysqli->connect_error);
}

/*
 * Если нужно быть уверенным в совместимости с версиями до 5.2.9,
 * лучше использовать такой код
 */
if (mysqli_connect_error()) {
    die('Ошибка подключения (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Соединение установлено... ' . $mysqli->host_info . "\n";

$mysqli->close();
?>

Объектно-ориентированный стиль, когда расширяем класс mysqli

<?php

class foo_mysqli extends mysqli {
    public function __construct($host, $user, $pass, $db) {
        parent::__construct($host, $user, $pass, $db);

        if (mysqli_connect_error()) {
            die('Ошибка подключения (' . mysqli_connect_errno() . ') '
                    . mysqli_connect_error());
        }
    }
}

$db = new foo_mysqli('localhost', 'my_user', 'my_password', 'my_db');

echo 'Соединение установлено... ' . $db->host_info . "\n";

$db->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');

if (!$link) {
    die('Ошибка подключения (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Соединение установлено... ' . mysqli_get_host_info($link) . "\n";

mysqli_close($link);
?>

Результат выполнения данных примеров:

Соединение установлено... MySQL host info: localhost via TCP/IP

Примечания

Замечание:

MySQLnd всегда подразумевает кодировку, которую использует по умолчанию сервер. Эта кодировка передается во время установки соединения/авторизации, которые использует mysqlnd.

Libmysqlclient по умолчанию использует кодировку, установленную в my.cnf или специальным вызовом mysqli_options() до использования mysqli_real_connect(), но после mysqli_init().

Замечание:

Только для ОО-подхода: Если соединение установить не удалось, метод все равно вернет объект. Проверить успешность создания подключения можно либо функцией mysqli_connect_error() или с помощью свойства mysqli->connect_error, как показано в примерах.

Замечание:

Если необходимо задать дополнительные параметры подключения, вроде тайм-аута и т.п., то вместо этого метода необходимо использовать функцию mysqli_real_connect().

Замечание:

Вызов конструктора без параметров идентичен вызову функции mysqli_init().

Замечание:

Ошибка "Can't create TCP/IP socket (10106)" обычно означает, что директива конфигурации variables_order не содержит символ E. В Windows системах, если окружение не скопировано, переменная среды SYSTEMROOT будет недоступна, и у PHP возникнут проблемы с загрузкой Winsock.

Смотрите также

  • mysqli_real_connect() - Устанавливает соединение с сервером mysql
  • mysqli_options() - Установка настроек
  • mysqli_connect_errno() - Возвращает код ошибки последней попытки соединения
  • mysqli_connect_error() - Возвращает описание последней ошибки подключения
  • mysqli_close() - Закрывает ранее открытое соединение с базой данных


Выполняет процедуры отладки

  • « mysqli::__construct
  • mysqli::dump_debug_info »
  • PHP Manual
  • mysqli
  • Выполняет процедуры отладки

mysqli::debug

mysqli_debug

(PHP 5, PHP 7)

mysqli::debug -- mysqli_debug — Выполняет процедуры отладки

Описание

Объектно-ориентированный стиль

mysqli::debug ( string $message ) : bool

Процедурный стиль

mysqli_debug ( string $message ) : bool

Выполняет процедуры отладки, используя библиотеку Fred Fish.

Список параметров

message

Строка, содержащая выполняемую процедуру отладки

Возвращаемые значения

Возвращает TRUE.

Примечания

Замечание:

Чтобы использовать функцию mysqli_debug() вам нужно скомпилировать клиентскую библиотеку MySQL с поддержкой отладки.

Примеры

Пример #1 Генерация файла трассировки

<?php

/* Создать файл трассировки в '/tmp/client.trace' на локальной машине (клиенте): */
mysqli_debug("d:t:o,/tmp/client.trace");

?>

Смотрите также

  • mysqli_dump_debug_info() - Журналирование отладочной информации
  • mysqli_report() - Псевдоним mysqli_driver->report_mode


Журналирование отладочной информации

  • « mysqli::debug
  • mysqli::$errno »
  • PHP Manual
  • mysqli
  • Журналирование отладочной информации

mysqli::dump_debug_info

mysqli_dump_debug_info

(PHP 5, PHP 7)

mysqli::dump_debug_info -- mysqli_dump_debug_info — Журналирование отладочной информации

Описание

Объектно-ориентированный стиль

mysqli::dump_debug_info ( void ) : bool

Процедурный стиль

mysqli_dump_debug_info ( mysqli $link ) : bool

Функция разработана для запуска от имени пользователя с привилегиями SUPER и используется для сборки отладочной информации в журнал сервера MySQL, к которому произведено подключение.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mysqli_debug() - Выполняет процедуры отладки


Возвращает код ошибки последнего вызова функции

  • « mysqli::dump_debug_info
  • mysqli::$error_list »
  • PHP Manual
  • mysqli
  • Возвращает код ошибки последнего вызова функции

mysqli::$errno

mysqli_errno

(PHP 5, PHP 7)

mysqli::$errno -- mysqli_errno — Возвращает код ошибки последнего вызова функции

Описание

Объектно-ориентированный стиль

int $mysqli->errno;

Процедурный стиль

mysqli_errno ( mysqli $link ) : int

Возвращает код ошибки последнего вызова функции MySQLi, завершившейся успехом или провалом.

Номера ошибок клиента MySQL перечислены в файле errmsg.h, номера ошибок сервера перечислены в mysqld_error.h. В исходном пакете MySQL вы можете найти полный список сообщений об ошибках и их номерах в файле Docs/mysqld_error.txt.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Код ошибки последнего вызова функции в случае провала. При отсутствие ошибок выводит 0.

Примеры

Пример #1 Пример использования $mysqli->errno

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if ($mysqli->connect_errno) {
    printf("Соединение не удалось: %s\n", $mysqli->connect_error);
    exit();
}

if (!$mysqli->query("SET a=1")) {
    printf("Код ошибки: %d\n", $mysqli->errno);
}

/* Закрыть соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Соединение не удалось: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Код ошибки: %d\n", mysqli_errno($link));
}

/* Закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Код ошибки: 1193

Смотрите также

  • mysqli_connect_errno() - Возвращает код ошибки последней попытки соединения
  • mysqli_connect_error() - Возвращает описание последней ошибки подключения
  • mysqli_error() - Возвращает строку с описанием последней ошибки
  • mysqli_sqlstate() - Возвращает код состояния SQLSTATE последней MySQL операции


Возвращает список ошибок выполнения последней запущенной команды

  • « mysqli::$errno
  • mysqli::$error »
  • PHP Manual
  • mysqli
  • Возвращает список ошибок выполнения последней запущенной команды

mysqli::$error_list

mysqli_error_list

(PHP 5 >= 5.4.0, PHP 7)

mysqli::$error_list -- mysqli_error_list — Возвращает список ошибок выполнения последней запущенной команды

Описание

Объектно-ориентированный стиль

array $mysqli->error_list;

Процедурный стиль

mysqli_error_list ( mysqli $link ) : array

Возвращает массив ошибок последнего вызова функции MySQLi, которая может завершать работу успехом или неудачей.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Список ошибок, каждая из которых представлена ассоциативным массивом (array) и содержит номер ошибки, ее описание, а также код состояния sqlstate.

Примеры

Пример #1 Пример использования $mysqli->error_list

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "nobody", "");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

if (!$mysqli->query("SET a=1")) {
    print_r($mysqli->error_list);
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    print_r(mysqli_error_list($link));
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Array
(
    [0] => Array
        (
            [errno] => 1193
            [sqlstate] => HY000
            [error] => Unknown system variable 'a'
        )

)

Смотрите также

  • mysqli_connect_errno() - Возвращает код ошибки последней попытки соединения
  • mysqli_connect_error() - Возвращает описание последней ошибки подключения
  • mysqli_error() - Возвращает строку с описанием последней ошибки
  • mysqli_sqlstate() - Возвращает код состояния SQLSTATE последней MySQL операции


Возвращает строку с описанием последней ошибки

  • « mysqli::$error_list
  • mysqli::$field_count »
  • PHP Manual
  • mysqli
  • Возвращает строку с описанием последней ошибки

mysqli::$error

mysqli_error

(PHP 5, PHP 7)

mysqli::$error -- mysqli_error — Возвращает строку с описанием последней ошибки

Описание

Объектно-ориентированный стиль

string $mysqli->error;

Процедурный стиль

mysqli_error ( mysqli $link ) : string

Возвращает сообщение об ошибке последнего вызова функции MySQLi, который может успешно выполниться или провалиться.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Строка с описанием ошибки. Пустая строка, если ошибки нет.

Примеры

Пример #1 Пример с $mysqli->error

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if ($mysqli->connect_errno) {
    printf("Соединение не удалось: %s\n", $mysqli->connect_error);
    exit();
}

if (!$mysqli->query("SET a=1")) {
    printf("Сообщение ошибки: %s\n", $mysqli->error);
}

/* Закрыть соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Соединение не удалось: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Сообщение ошибки: %s\n", mysqli_error($link));
}

/* Закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Сообщение ошибки: Unknown system variable 'a'

Смотрите также

  • mysqli_connect_errno() - Возвращает код ошибки последней попытки соединения
  • mysqli_connect_error() - Возвращает описание последней ошибки подключения
  • mysqli_errno() - Возвращает код ошибки последнего вызова функции
  • mysqli_sqlstate() - Возвращает код состояния SQLSTATE последней MySQL операции


Возвращает число столбцов, затронутых последним запросом

  • « mysqli::$error
  • mysqli::get_charset »
  • PHP Manual
  • mysqli
  • Возвращает число столбцов, затронутых последним запросом

mysqli::$field_count

mysqli_field_count

(PHP 5, PHP 7)

mysqli::$field_count -- mysqli_field_count — Возвращает число столбцов, затронутых последним запросом

Описание

Объектно-ориентированный стиль

int $mysqli->field_count;

Процедурный стиль

mysqli_field_count ( mysqli $link ) : int

Возвращает число столбцов, затронутых последним запросом для соединения, указанного в link. Эта функция может быть полезной при использовании mysqli_store_result() для того, чтобы определить выдан ли непустой результат, или в случае неизвестного назначения запроса.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Целое число, содержащее число полей в результате запроса.

Примеры

Пример #1 Пример использования $mysqli->field_count

Объектно-ориентированный стиль

<?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("SELECT * FROM friends");

if ($mysqli->field_count) {
    /* Определить тип запроса (select/show или describe) */
    $result = $mysqli->store_result();

    /* Создать выборку */
    $row = $result->fetch_row();

    /* Очистить выборку */
    $result->close();
}

/* Закрыть соединение */
$mysqli->close();
?>

Процедурный стиль

<?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, "SELECT * FROM friends");

if (mysqli_field_count($link)) {
    /* Определить тип запроса (select/show или describe) */
    $result = mysqli_store_result($link);

    /* Создать выборку */
    $row = mysqli_fetch_row($result);

    /* Очистить выборку */
    mysqli_free_result($result);
}

/* Закрыть соединение */
mysqli_close($link);
?>


Возвращает объект, описывающий кодировку

  • « mysqli::$field_count
  • mysqli::$client_info »
  • PHP Manual
  • mysqli
  • Возвращает объект, описывающий кодировку

mysqli::get_charset

mysqli_get_charset

(PHP 5 >= 5.1.0, PHP 7)

mysqli::get_charset -- mysqli_get_charset — Возвращает объект, описывающий кодировку

Описание

Объектно-ориентированный стиль

mysqli::get_charset ( void ) : object

Процедурный стиль

mysqli_get_charset ( mysqli $link ) : object

Возвращает объект, содержащий свойства текущей кодировки.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Функция возвращает объект с следующими свойствами:

charset

Имя кодировки

collation

Имя сопоставления

dir

Директория, из которой получено описание кодировки. (?) или "" для встроенных наборов

min_length

Минимальная длина символа в байтах

max_length

Максимальная длина символа в байтах

number

Внутренний номер кодировки

state

Состояние набора символов (?)

Примеры

Пример #1 Пример использования mysqli::get_charset()

Объектно-ориентированный стиль

<?php
  $db = mysqli_init();
  $db->real_connect("localhost","root","","test");
  var_dump($db->get_charset());
?>

Процедурный стиль

<?php
  $db = mysqli_init();
  mysqli_real_connect($db, "localhost","root","","test");
  var_dump(mysqli_get_charset($db));
?>

Результат выполнения данных примеров:

object(stdClass)#2 (7) {
  ["charset"]=>
  string(6) "latin1"
  ["collation"]=>
  string(17) "latin1_swedish_ci"
  ["dir"]=>
  string(0) ""
  ["min_length"]=>
  int(1)
  ["max_length"]=>
  int(1)
  ["number"]=>
  int(8)
  ["state"]=>
  int(801)
}

Смотрите также

  • mysqli_character_set_name() - Возвращает кодировку по умолчанию, установленную для соединения с БД
  • mysqli_set_charset() - Задает набор символов по умолчанию


Получает информацию о клиенте MySQL

  • « mysqli::get_charset
  • mysqli::$client_version »
  • PHP Manual
  • mysqli
  • Получает информацию о клиенте MySQL

mysqli::$client_info

mysqli::get_client_info

mysqli_get_client_info

(PHP 5, PHP 7)

mysqli::$client_info -- mysqli::get_client_info -- mysqli_get_client_info — Получает информацию о клиенте MySQL

Описание

Объектно-ориентированный стиль

string $mysqli->client_info;
mysqli::get_client_info ( void ) : string

Процедурный стиль

mysqli_get_client_info ([ mysqli $link = NULL ] ) : string

Возвращает строку, содержащую версию клиентской библиотеки MySQL.

Возвращаемые значения

Строка, содержащая версию клиентской библиотеки MySQL

Примеры

Пример #1 mysqli_get_client_info

<?php

/* Для определения версии клиентской библиотеки MySQL
   нет необходимости в создании соединения */

printf("Версия клиентской библиотеки: %s\n", mysqli_get_client_info());
?>

Смотрите также

  • mysqli_get_client_version() - Возвращает информацию о клиенте MySQL в виде строки
  • mysqli_get_server_info() - Возвращает версию MySQL сервера
  • mysqli_get_server_version() - Возвращает версию сервера MySQL, представленную в виде integer


Возвращает информацию о клиенте MySQL в виде строки

  • « mysqli::$client_info
  • mysqli::get_connection_stats »
  • PHP Manual
  • mysqli
  • Возвращает информацию о клиенте MySQL в виде строки

mysqli::$client_version

mysqli_get_client_version

(PHP 5, PHP 7)

mysqli::$client_version -- mysqli_get_client_version — Возвращает информацию о клиенте MySQL в виде строки

Описание

Объектно-ориентированный стиль

int $mysqli->client_version;

Процедурный стиль

mysqli_get_client_version ( mysqli $link ) : int

Возвращает версию клиента в виде целого числа.

Возвращаемые значения

Число, содержащее версию клиентской библиотеки MySQL в следующем формате: main_version*10000 + minor_version *100 + sub_version. К примеру, для версии 4.1.0 выведет 40100.

Целесообразно использовать для быстрого определения версии клиентской библиотеки и возможностей её применения.

Примеры

Пример #1 mysqli_get_client_version

<?php

/* Для определения версии клиентской библиотеки MySQL
 нет необходимости в создании соединения*/

printf("Версия клиентской библиотеки: %d\n", mysqli_get_client_version());
?>

Смотрите также

  • mysqli_get_client_info() - Получает информацию о клиенте MySQL
  • mysqli_get_server_info() - Возвращает версию MySQL сервера
  • mysqli_get_server_version() - Возвращает версию сервера MySQL, представленную в виде integer


Возвращает статистику соединения с клиентом

  • « mysqli::$client_version
  • mysqli::$host_info »
  • PHP Manual
  • mysqli
  • Возвращает статистику соединения с клиентом

mysqli::get_connection_stats

mysqli_get_connection_stats

(PHP 5 >= 5.3.0, PHP 7)

mysqli::get_connection_stats -- mysqli_get_connection_stats — Возвращает статистику соединения с клиентом

Описание

Объектно-ориентированный стиль

mysqli::get_connection_stats ( void ) : bool

Процедурный стиль

mysqli_get_connection_stats ( mysqli $link ) : array

Возвращает статистику соединения с клиентом. Доступно только с расширением mysqlnd.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает массив статистики соединения, либо FALSE при ошибке.

Примеры

Пример #1 Пример использования mysqli_get_connection_stats()

<?php
$link = mysqli_connect();
print_r(mysqli_get_connection_stats($link));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [bytes_sent] => 43
    [bytes_received] => 80
    [packets_sent] => 1
    [packets_received] => 2
    [protocol_overhead_in] => 8
    [protocol_overhead_out] => 4
    [bytes_received_ok_packet] => 11
    [bytes_received_eof_packet] => 0
    [bytes_received_rset_header_packet] => 0
    [bytes_received_rset_field_meta_packet] => 0
    [bytes_received_rset_row_packet] => 0
    [bytes_received_prepare_response_packet] => 0
    [bytes_received_change_user_packet] => 0
    [packets_sent_command] => 0
    [packets_received_ok] => 1
    [packets_received_eof] => 0
    [packets_received_rset_header] => 0
    [packets_received_rset_field_meta] => 0
    [packets_received_rset_row] => 0
    [packets_received_prepare_response] => 0
    [packets_received_change_user] => 0
    [result_set_queries] => 0
    [non_result_set_queries] => 0
    [no_index_used] => 0
    [bad_index_used] => 0
    [slow_queries] => 0
    [buffered_sets] => 0
    [unbuffered_sets] => 0
    [ps_buffered_sets] => 0
    [ps_unbuffered_sets] => 0
    [flushed_normal_sets] => 0
    [flushed_ps_sets] => 0
    [ps_prepared_never_executed] => 0
    [ps_prepared_once_executed] => 0
    [rows_fetched_from_server_normal] => 0
    [rows_fetched_from_server_ps] => 0
    [rows_buffered_from_client_normal] => 0
    [rows_buffered_from_client_ps] => 0
    [rows_fetched_from_client_normal_buffered] => 0
    [rows_fetched_from_client_normal_unbuffered] => 0
    [rows_fetched_from_client_ps_buffered] => 0
    [rows_fetched_from_client_ps_unbuffered] => 0
    [rows_fetched_from_client_ps_cursor] => 0
    [rows_skipped_normal] => 0
    [rows_skipped_ps] => 0
    [copy_on_write_saved] => 0
    [copy_on_write_performed] => 0
    [command_buffer_too_small] => 0
    [connect_success] => 1
    [connect_failure] => 0
    [connection_reused] => 0
    [reconnect] => 0
    [pconnect_success] => 0
    [active_connections] => 1
    [active_persistent_connections] => 0
    [explicit_close] => 0
    [implicit_close] => 0
    [disconnect_close] => 0
    [in_middle_of_command_close] => 0
    [explicit_free_result] => 0
    [implicit_free_result] => 0
    [explicit_stmt_close] => 0
    [implicit_stmt_close] => 0
    [mem_emalloc_count] => 0
    [mem_emalloc_ammount] => 0
    [mem_ecalloc_count] => 0
    [mem_ecalloc_ammount] => 0
    [mem_erealloc_count] => 0
    [mem_erealloc_ammount] => 0
    [mem_efree_count] => 0
    [mem_malloc_count] => 0
    [mem_malloc_ammount] => 0
    [mem_calloc_count] => 0
    [mem_calloc_ammount] => 0
    [mem_realloc_count] => 0
    [mem_realloc_ammount] => 0
    [mem_free_count] => 0
    [proto_text_fetched_null] => 0
    [proto_text_fetched_bit] => 0
    [proto_text_fetched_tinyint] => 0
    [proto_text_fetched_short] => 0
    [proto_text_fetched_int24] => 0
    [proto_text_fetched_int] => 0
    [proto_text_fetched_bigint] => 0
    [proto_text_fetched_decimal] => 0
    [proto_text_fetched_float] => 0
    [proto_text_fetched_double] => 0
    [proto_text_fetched_date] => 0
    [proto_text_fetched_year] => 0
    [proto_text_fetched_time] => 0
    [proto_text_fetched_datetime] => 0
    [proto_text_fetched_timestamp] => 0
    [proto_text_fetched_string] => 0
    [proto_text_fetched_blob] => 0
    [proto_text_fetched_enum] => 0
    [proto_text_fetched_set] => 0
    [proto_text_fetched_geometry] => 0
    [proto_text_fetched_other] => 0
    [proto_binary_fetched_null] => 0
    [proto_binary_fetched_bit] => 0
    [proto_binary_fetched_tinyint] => 0
    [proto_binary_fetched_short] => 0
    [proto_binary_fetched_int24] => 0
    [proto_binary_fetched_int] => 0
    [proto_binary_fetched_bigint] => 0
    [proto_binary_fetched_decimal] => 0
    [proto_binary_fetched_float] => 0
    [proto_binary_fetched_double] => 0
    [proto_binary_fetched_date] => 0
    [proto_binary_fetched_year] => 0
    [proto_binary_fetched_time] => 0
    [proto_binary_fetched_datetime] => 0
    [proto_binary_fetched_timestamp] => 0
    [proto_binary_fetched_string] => 0
    [proto_binary_fetched_blob] => 0
    [proto_binary_fetched_enum] => 0
    [proto_binary_fetched_set] => 0
    [proto_binary_fetched_geometry] => 0
    [proto_binary_fetched_other] => 0
)

Смотрите также

  • Описание статистики


Возвращает строку, содержащую тип используемого соединения

  • « mysqli::get_connection_stats
  • mysqli::$protocol_version »
  • PHP Manual
  • mysqli
  • Возвращает строку, содержащую тип используемого соединения

mysqli::$host_info

mysqli_get_host_info

(PHP 5, PHP 7)

mysqli::$host_info -- mysqli_get_host_info — Возвращает строку, содержащую тип используемого соединения

Описание

Объектно-ориентированный стиль

string $mysqli->host_info;

Процедурный стиль

mysqli_get_host_info ( mysqli $link ) : string

Возвращает строку, описывающую соединение, которое обозначено в параметре link (включая имя хоста сервера).

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Символьная строка, содержащая имя хоста сервера и тип подключения.

Примеры

Пример #1 Пример использования $mysqli->host_info

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* вывод информации о хосте */
printf("Информация о хосте: %s\n", $mysqli->host_info);

/* закрытие соединения */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* вывод информации о хосте */
printf("Информация о хосте: %s\n", mysqli_get_host_info($link));

/* закрытие соединения */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Информация о хосте: Localhost via UNIX socket

Смотрите также

  • mysqli_get_proto_info() - Возвращает версию используемого MySQL протокола


Возвращает версию используемого MySQL протокола

  • « mysqli::$host_info
  • mysqli::$server_info »
  • PHP Manual
  • mysqli
  • Возвращает версию используемого MySQL протокола

mysqli::$protocol_version

mysqli_get_proto_info

(PHP 5, PHP 7)

mysqli::$protocol_version -- mysqli_get_proto_info — Возвращает версию используемого MySQL протокола

Описание

Объектно-ориентированный стиль

string $mysqli->protocol_version;

Процедурный стиль

mysqli_get_proto_info ( mysqli $link ) : int

Возвращает целое число, представляющее собой версию протокола MySQL, используемого для соединения, переданного в link.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает целое число, представляющее версию протокола.

Примеры

Пример #1 Пример использования $mysqli->protocol_version

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* Вывести версию протокола */
printf("Версия протокола: %d\n", $mysqli->protocol_version);

/* Закрыть соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* Вывести версию протокола */
printf("Версия протокола: %d\n", mysqli_get_proto_info($link));

/* Закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Protocol version: 10

Смотрите также

  • mysqli_get_host_info() - Возвращает строку, содержащую тип используемого соединения


Возвращает версию MySQL сервера

  • « mysqli::$protocol_version
  • mysqli::$server_version »
  • PHP Manual
  • mysqli
  • Возвращает версию MySQL сервера

mysqli::$server_info

mysqli::get_server_info

mysqli_get_server_info

(PHP 5, PHP 7)

mysqli::$server_info -- mysqli::get_server_info -- mysqli_get_server_info — Возвращает версию MySQL сервера

Описание

Объектно-ориентированный стиль

string $mysqli->server_info;
mysqli_stmt::get_server_info ( void ) : string

Процедурный стиль

mysqli_get_server_info ( mysqli $link ) : string

Возвращает строку, содержащую версию сервера MySQL, к которому также подключено расширение MySQLi.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Строка символов, содержащая версию сервера.

Примеры

Пример #1 Пример использования $mysqli->server_info

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* проверить соединение */
if (mysqli_connect_errno()) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* вывести версию сервера */
printf("Версия сервера: %s\n", $mysqli->server_info);

/* закрыть соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* проверить соединение */
if (mysqli_connect_errno()) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* вывести версию сервера */
printf("Версия сервера: %s\n", mysqli_get_server_info($link));

/* закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Server version: 4.1.2-alpha-debug

Смотрите также

  • mysqli_get_client_info() - Получает информацию о клиенте MySQL
  • mysqli_get_client_version() - Возвращает информацию о клиенте MySQL в виде строки
  • mysqli_get_server_version() - Возвращает версию сервера MySQL, представленную в виде integer


Возвращает версию сервера MySQL, представленную в виде integer

  • « mysqli::$server_info
  • mysqli::get_warnings »
  • PHP Manual
  • mysqli
  • Возвращает версию сервера MySQL, представленную в виде integer

mysqli::$server_version

mysqli_get_server_version

(PHP 5, PHP 7)

mysqli::$server_version -- mysqli_get_server_version — Возвращает версию сервера MySQL, представленную в виде integer

Описание

Объектно-ориентированный стиль

int $mysqli->server_version;

Процедурный стиль

mysqli_get_server_version ( mysqli $link ) : int

Функция mysqli_get_server_version() возвращает версию сервера, к которому создано соединение (переданое в параметре link) в виде целого числа.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Целочисленное представление версии сервера.

Это число собирается следующим образом main_version * 10000 + minor_version * 100 + sub_version (т.е. версия 4.1.0 будет представлена как 40100).

Примеры

Пример #1 Пример использования $mysqli->server_version

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Соединение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* выводим версию сервера */
printf("Версия сервера: %d\n", $mysqli->server_version);

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Соединение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* выводим версию сервера */
printf("Версия сервера: %d\n", mysqli_get_server_version($link));

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Версия сервера: 40102

Смотрите также

  • mysqli_get_client_info() - Получает информацию о клиенте MySQL
  • mysqli_get_client_version() - Возвращает информацию о клиенте MySQL в виде строки
  • mysqli_get_server_info() - Возвращает версию MySQL сервера


Получает результат SHOW WARNINGS

  • « mysqli::$server_version
  • mysqli::$info »
  • PHP Manual
  • mysqli
  • Получает результат SHOW WARNINGS

mysqli::get_warnings

mysqli_get_warnings

(PHP 5 >= 5.1.0, PHP 7)

mysqli::get_warnings -- mysqli_get_warnings — Получает результат SHOW WARNINGS

Описание

Объектно-ориентированный стиль

mysqli::get_warnings ( void ) : mysqli_warning

Процедурный стиль

mysqli_get_warnings ( mysqli $link ) : mysqli_warning
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Извлекает информацию о последнем выполненном запросе

  • « mysqli::get_warnings
  • mysqli::init »
  • PHP Manual
  • mysqli
  • Извлекает информацию о последнем выполненном запросе

mysqli::$info

mysqli_info

(PHP 5, PHP 7)

mysqli::$info -- mysqli_info — Извлекает информацию о последнем выполненном запросе

Описание

Объектно-ориентированный стиль

string $mysqli->info;

Процедурный стиль

mysqli_info ( mysqli $link ) : string

Функция mysqli_info() возвращает строку с информацией о последнем выполненном запросе к базе данных. Описание строки приведено ниже:

Возможные возвращаемые значения mysqli_info
Тип запроса | Пример результирующей строки
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

Замечание:

Запросы, не попадающие в приведенный список, не поддерживаются. В таких ситуациях mysqli_info() вернет пустую строку.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Строка символов представляющая дополнительную информацию о последнем запущенном запросе.

Примеры

Пример #1 Пример использования $mysqli->info

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %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);

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %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));

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Records: 150  Duplicates: 0  Warnings: 0

Смотрите также

  • mysqli_affected_rows() - Получает число строк, затронутых предыдущей операцией MySQL
  • mysqli_warning_count() - Возвращает количество предупреждений из последнего запроса заданного подключения
  • mysqli_num_rows() - Получает число рядов в результирующей выборке


Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()

  • « mysqli::$info
  • mysqli::$insert_id »
  • PHP Manual
  • mysqli
  • Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()

mysqli::init

mysqli_init

(PHP 5, PHP 7)

mysqli::init -- mysqli_init — Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()

Описание

Объектно-ориентированный стиль

mysqli::init ( void ) : mysqli

Процедурный стиль

mysqli_init ( void ) : mysqli

Выделяет память или инициализирует объект MYSQL, пригодный для использования в функциях mysqli_options() и mysqli_real_connect().

Замечание:

Любые последующие вызовы mysqli-функций с этим ресурсом (кроме mysqli_options()) потерпят неудачу, пока не будет вызвана функция mysqli_real_connect().

Возвращаемые значения

Возвращает объект.

Примеры

См. mysqli_real_connect().

Смотрите также

  • mysqli_options() - Установка настроек
  • mysqli_close() - Закрывает ранее открытое соединение с базой данных
  • mysqli_real_connect() - Устанавливает соединение с сервером mysql
  • mysqli_connect() - Псевдоним mysqli::__construct


Возвращает автоматически генерируемый ID, используя последний запрос

  • « mysqli::init
  • mysqli::kill »
  • PHP Manual
  • mysqli
  • Возвращает автоматически генерируемый ID, используя последний запрос

mysqli::$insert_id

mysqli_insert_id

(PHP 5, PHP 7)

mysqli::$insert_id -- mysqli_insert_id — Возвращает автоматически генерируемый ID, используя последний запрос

Описание

Объектно-ориентированный стиль

mixed $mysqli->insert_id;

Процедурный стиль

mysqli_insert_id ( mysqli $link ) : mixed

Функция mysqli_insert_id() возвращает ID, генерируемый запросом (обычно INSERT) к таблице, которая содержит колонку с атрибутом AUTO_INCREMENT. Если последний запрос не был INSERT или UPDATE или в модифицируемой таблице отсутствует колонка с атрибутом AUTO_INCREMENT, данная функция вернет ноль.

Замечание:

Выполнение выражения INSERT или UPDATE, используя функцию LAST_INSERT_ID(), также изменяет значение, возвращаемое функцией mysqli_insert_id().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Значение поля AUTO_INCREMENT, которое было затронуто предыдущим запросом. Возвращает ноль, если предыдущий запрос не затронул таблицы, содержащие поле AUTO_INCREMENT.

Замечание:

Если число больше максимального значения целого числа, функция mysqli_insert_id() вернет строку.

Примеры

Пример #1 Пример функции $mysqli->insert_id

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Соединение не установлено: %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 ("ID новой записи: %d.\n", $mysqli->insert_id);

/* удаление таблицы */
$mysqli->query("DROP TABLE myCity");

/* закрытие соединения */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Соединение не установлено: %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 ("ID новой записи: %d.\n", mysqli_insert_id($link));

/* удаление таблицы */
mysqli_query($link, "DROP TABLE myCity");

/* закрытие соединения */
mysqli_close($link);
?>

Результат выполнения данных примеров:

ID новой записи: 1.


Запрос для сервера завершить выполнение процесса MySQL

  • « mysqli::$insert_id
  • mysqli::more_results »
  • PHP Manual
  • mysqli
  • Запрос для сервера завершить выполнение процесса MySQL

mysqli::kill

mysqli_kill

(PHP 5, PHP 7)

mysqli::kill -- mysqli_kill — Запрос для сервера завершить выполнение процесса MySQL

Описание

Объектно-ориентированный стиль

mysqli::kill ( int $processid ) : bool

Процедурный стиль

mysqli_kill ( mysqli $link , int $processid ) : bool

Эта функция используется, чтобы отправить на сервер команду завершить MySQL процесс заданный параметром processid. Значение этого параметра должно быть получено с помощью функции mysqli_thread_id().

Для завершения работы текущего запроса используйте SQL команду KILL QUERY processid.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqli::kill()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* определим id нашего процесса */
$thread_id = $mysqli->thread_id;

/* убиваем соединение */
$mysqli->kill($thread_id);

/* здесь должна произойти ошибка */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Ошибка: %s\n", $mysqli->error);
    exit;
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* определим id нашего процесса */
$thread_id = mysqli_thread_id($link);

/* убиваем соединение */
mysqli_kill($link, $thread_id);

/* здесь должна произойти ошибка */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Ошибка: %s\n", mysqli_error($link));
    exit;
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Error: MySQL server has gone away

Смотрите также

  • mysqli_thread_id() - Возвращает ID процесса текущего подключения


Проверка, есть ли еще результаты в мультизапросе

  • « mysqli::kill
  • mysqli::multi_query »
  • PHP Manual
  • mysqli
  • Проверка, есть ли еще результаты в мультизапросе

mysqli::more_results

mysqli_more_results

(PHP 5, PHP 7)

mysqli::more_results -- mysqli_more_results — Проверка, есть ли еще результаты в мультизапросе

Описание

Объектно-ориентированный стиль

mysqli::more_results ( void ) : bool

Процедурный стиль

mysqli_more_results ( mysqli $link ) : bool

Указывает, есть ли еще доступные результирующие наборы от предыдущего вызова функции mysqli_multi_query().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращается TRUE в случае, если один или более результирующих наборов доступны после предыдущего вызова функции mysqli_multi_query(), иначе FALSE.

Примеры

См. mysqli_multi_query().

Смотрите также

  • mysqli_multi_query() - Выполняет запрос к базе данных
  • mysqli_next_result() - Подготовка следующего доступного результирующего набора из multi_query
  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию


Выполняет запрос к базе данных

  • « mysqli::more_results
  • mysqli::next_result »
  • PHP Manual
  • mysqli
  • Выполняет запрос к базе данных

mysqli::multi_query

mysqli_multi_query

(PHP 5, PHP 7)

mysqli::multi_query -- mysqli_multi_query — Выполняет запрос к базе данных

Описание

Объектно-ориентированный стиль

mysqli::multi_query ( string $query ) : bool

Процедурный стиль

mysqli_multi_query ( mysqli $link , string $query ) : bool

Запускает на выполнение один или несколько запросов, перечисленных через точку с запятой.

Чтобы получить результирующий набор первого запроса, можно использовать функции
mysqli_use_result() или
mysqli_store_result(). Остальные результирующие наборы
извлекаются функциями mysqli_more_results()
и mysqli_next_result().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

query

Текст запроса в виде строки.

Данные внутри запроса должны быть правильно экранированы.

Возвращаемые значения

Возвращает FALSE, если первое выражение вызвало ошибку. Чтобы получить доступ к ошибкам остальных подзапросов, нужно сначала вызвать функцию mysqli_next_result().

Примеры

Пример #1 Пример использования mysqli::multi_query()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* запускаем мультизапрос */
if ($mysqli->multi_query($query)) {
    do {
        /* получаем первый результирующий набор */
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->free();
        }
        /* печатаем разделитель */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* запускаем мультизапрос */
if (mysqli_multi_query($link, $query)) {
    do {
        /* получаем первый результирующий набор */
        if ($result = mysqli_store_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* печатаем разделитель */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* закрываем соединение */
mysqli_close($link);
?>

Результатом выполнения данных примеров будет что-то подобное:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Смотрите также

  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию
  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса
  • mysqli_next_result() - Подготовка следующего доступного результирующего набора из multi_query
  • mysqli_more_results() - Проверка, есть ли еще результаты в мультизапросе


Подготовка следующего доступного результирующего набора из multi_query

  • « mysqli::multi_query
  • mysqli::options »
  • PHP Manual
  • mysqli
  • Подготовка следующего доступного результирующего набора из multi_query

mysqli::next_result

mysqli_next_result

(PHP 5, PHP 7)

mysqli::next_result -- mysqli_next_result — Подготовка следующего доступного результирующего набора из multi_query

Описание

Объектно-ориентированный стиль

mysqli::next_result ( void ) : bool

Процедурный стиль

mysqli_next_result ( mysqli $link ) : bool

Подготавливает следующий доступный результирующий набор предыдущего вызова
функции mysqli_multi_query(), который затем можно получить
функциями mysqli_store_result() или
mysqli_use_result().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

См. mysqli_multi_query().

Смотрите также

  • mysqli_multi_query() - Выполняет запрос к базе данных
  • mysqli_more_results() - Проверка, есть ли еще результаты в мультизапросе
  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию


Установка настроек

  • « mysqli::next_result
  • mysqli::ping »
  • PHP Manual
  • mysqli
  • Установка настроек

mysqli::options

mysqli_options

(PHP 5, PHP 7)

mysqli::options -- mysqli_options — Установка настроек

Описание

Объектно-ориентированный стиль

mysqli::options ( int $option , mixed $value ) : bool

Процедурный стиль

mysqli_options ( mysqli $link , int $option , mixed $value ) : bool

Используется для установки дополнительных настроек соединения и поведения подключения к базе данных.

Эту функцию можно вызывать неоднократно, чтобы задать несколько настроек.

mysqli_options() нужно вызывать после
mysqli_init() и перед
mysqli_real_connect().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

option

Настройка, которую требуется установить. Это может быть одно из следующих значений:

Допустимые настройки
Имя | Описание
MYSQLI_OPT_CONNECT_TIMEOUT | Тайм-аут соединения в секундах (поддерживается в Windows с TCP/IP, начиная с PHP 5.3.1)
MYSQLI_OPT_LOCAL_INFILE | Включение/выключение LOAD LOCAL INFILE
MYSQLI_INIT_COMMAND | Команда, которую требуется выполнить сразу после подключения к серверу MySQL
MYSQLI_READ_DEFAULT_FILE | Читать настройки из именованного файла вместо my.cnf
MYSQLI_READ_DEFAULT_GROUP | Читать настройки из именованной группы в файле my.cnf или другом файле, заданным настройкой MYSQL_READ_DEFAULT_FILE.
MYSQLI_SERVER_PUBLIC_KEY | Файл публичного ключа RSA для авторизации на базе SHA-2560.
MYSQLI_OPT_NET_CMD_BUFFER_SIZE | Размер внутреннего коммандного/сетевого буфера. Работает только с mysqlnd.
MYSQLI_OPT_NET_READ_BUFFER_SIZE | Максимальный размер блока для чтения в байтах при чтении командного пакета MySQL. Работает только с mysqlnd.
MYSQLI_OPT_INT_AND_FLOAT_NATIVE | Преобразовывает столбцы типов integer и float к числам PHP, а не строкам. Работает только с mysqlnd.
MYSQLI_OPT_SSL_VERIFY_SERVER_CERT

value

Значение настройки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.0 | Добавлены опции MYSQLI_SERVER_PUBLIC_KEY и MYSQLI_SERVER_PUBLIC_KEY.
5.3.0 | Добавлены опции MYSQLI_OPT_INT_AND_FLOAT_NATIVE, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, MYSQLI_OPT_NET_READ_BUFFER_SIZE, и MYSQLI_OPT_SSL_VERIFY_SERVER_CERT.

Примеры

См. mysqli_real_connect().

Примечания

Замечание:

MySQLnd всегда подразумевает кодировку, которую использует по умолчанию сервер. Эта кодировка передается во время установки соединения/авторизации, которые использует mysqlnd.

Libmysqlclient по умолчанию использует кодировку, установленную в my.cnf или специальным вызовом mysqli_options() до использования mysqli_real_connect(), но после mysqli_init().

Смотрите также

  • mysqli_init() - Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()
  • mysqli_real_connect() - Устанавливает соединение с сервером mysql


Проверяет работоспособность соединения или пытается переподключиться, если соединение разорвано

  • « mysqli::options
  • mysqli::poll »
  • PHP Manual
  • mysqli
  • Проверяет работоспособность соединения или пытается переподключиться, если соединение разорвано

mysqli::ping

mysqli_ping

(PHP 5, PHP 7)

mysqli::ping -- mysqli_ping — Проверяет работоспособность соединения или пытается переподключиться, если соединение разорвано

Описание

Объектно-ориентированный стиль

mysqli::ping ( void ) : bool

Процедурный стиль

mysqli_ping ( mysqli $link ) : bool

Проверяет работоспособность соединения с сервером. Если соединение разорвано, а глобальная настройка mysqli.reconnect включена, PHP попытается автоматически переподключиться.

Замечание: Настройка php.ini mysqli.reconnect игнорируется драйвером "mysqlnd", так что автоматического переподключения не произойдет.

Эта функция может использоваться клиентами, которые простаивают без дела долгое время, чтобы проверить, что сервер их не отключил, и переподключиться в случае необходимости.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqli::ping()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if ($mysqli->connect_errno) {
    printf("Не удалось подключиться: %s\n", $mysqli->connect_error);
    exit();
}

/* проверим, жив ли сервер */
if ($mysqli->ping()) {
    printf ("Соединение в порядке!\n");
} else {
    printf ("Ошибка: %s\n", $mysqli->error);
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* проверим, жив ли сервер */
if (mysqli_ping($link)) {
    printf ("Соединение в порядке!\n");
} else {
    printf ("Ошибка: %s\n", mysqli_error($link));
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Our connection is ok!


Опрос подключений

  • « mysqli::ping
  • mysqli::prepare »
  • PHP Manual
  • mysqli
  • Опрос подключений

mysqli::poll

mysqli_poll

(PHP 5 >= 5.3.0, PHP 7)

mysqli::poll -- mysqli_poll — Опрос подключений

Описание

Объектно-ориентированный стиль

public static mysqli::poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec = 0 ] ) : int

Процедурный стиль

mysqli_poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec = 0 ] ) : int

Опрос подключений. Доступно только с расширением mysqlnd. Метод может использоваться как статический.

Список параметров

read

Список соединений для проверки наличия оставшихся результатов, которые можно прочитать.

error

Список соединений, на которых произошли ошибки, например, не удался запрос или соединение было потеряно.

reject

Список соединений, которые были отклонены, потому что на них не был запущен асинхронный запрос, с которым функция может получить результат опроса.

sec

Максимальное количество секунд ожидания, должно быть неотрицательным.

usec

Максимальное количество миллисекунд ожидания, должно быть неотрицательным.

Возвращаемые значения

Возвращает количество готовых к работе соединений в случае успеха, FALSE в случае неудачи.

Примеры

Пример #1 Пример использования mysqli_poll()

<?php
$link1 = mysqli_connect();
$link1->query("SELECT 'test'", MYSQLI_ASYNC);
$all_links = array($link1);
$processed = 0;
do {
    $links = $errors = $reject = array();
    foreach ($all_links as $link) {
        $links[] = $errors[] = $reject[] = $link;
    }
    if (!mysqli_poll($links, $errors, $reject, 1)) {
        continue;
    }
    foreach ($links as $link) {
        if ($result = $link->reap_async_query()) {
            print_r($result->fetch_row());
            if (is_object($result))
                mysqli_free_result($result);
        } else die(sprintf("Ошибка MySQLi: %s", mysqli_error($link)));
        $processed++;
    }
} while ($processed < count($all_links));
?>

Результат выполнения данного примера:

Array
(
    [0] => test
)

Смотрите также

  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_reap_async_query() - Получение результата асинхронного запроса


Подготавливает SQL выражение к выполнению

  • « mysqli::poll
  • mysqli::query »
  • PHP Manual
  • mysqli
  • Подготавливает SQL выражение к выполнению

mysqli::prepare

mysqli_prepare

(PHP 5, PHP 7)

mysqli::prepare -- mysqli_prepare — Подготавливает SQL выражение к выполнению

Описание

Объектно-ориентированный стиль

mysqli::prepare ( string $query ) : mysqli_stmt

Процедурный стиль

mysqli_prepare ( mysqli $link , string $query ) : mysqli_stmt

Подготавливает SQL-запрос и возвращает указатель на это выражение, который может использоваться для дальнейших операций с этим выражением. Запрос должен состоять из одного SQL выражения.

Метки параметров должны быть связаны с переменными приложения функциями mysqli_stmt_bind_param() и/или mysqli_stmt_bind_result() до запуска запроса или выборки строк.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

query

Текст запроса в виде строки.

Замечание:

Нет необходимости в завершающей точке с запятой или символе \g в конце выражения.

Этот параметр может содержать одну или несколько меток параметров SQL-запроса. Эти метки можно добавить путем встраивания знаков вопроса (?) в места выражения, где требуется подставлять параметры.

Замечание:

Эти метки можно встраивать только в определенные места в выражении. Например, они допустимы в списке VALUES() выражения INSERT (чтобы задать значения столбцов для строки), или в операциях сравнения предложения WHERE для задания сравниваемого значения.

Тем не менее, эти метки недопустимы в качестве идентификаторов (таких как имена столбцов или таблиц), а также в списке псевдонимов столбцов предложения SELECT. Нельзя также использовать параметры для задания обоих операндов бинарного оператора (например, знак равенства =). Последнее ограничение необходимо, так как в противном случае невозможно будет определить тип операндов. Еще недопустимо сравнивать метку параметра с NULL выражением ? IS NULL. В основном, параметры допустимы в выражениях языка манипулирования данными (DML), и недопустимы в выражениях языка определения данных (DDL).

Возвращаемые значения

mysqli_prepare() возвращает объект запроса или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования mysqli::prepare()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* создаем подготавливаемый запрос */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {

    /* связываем параметры с метками */
    $stmt->bind_param("s", $city);

    /* запускаем запрос */
    $stmt->execute();

    /* связываем переменные с результатами запроса */
    $stmt->bind_result($district);

    /* получаем значения */
    $stmt->fetch();

    printf("%s находится в округе %s\n", $city, $district);

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* создаем подготавливаемый запрос */
if ($stmt = mysqli_prepare($link, "SELECT District FROM City WHERE Name=?")) {

    /* связываем параметры с метками */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* запускаем запрос */
    mysqli_stmt_execute($stmt);

    /* связываем переменные с результатами запроса */
    mysqli_stmt_bind_result($stmt, $district);

    /* получаем значения */
    mysqli_stmt_fetch($stmt);

    printf("%s находится в округе %s\n", $city, $district);

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Amersfoort is in district Utrecht

Смотрите также

  • mysqli_stmt_execute() - Выполняет подготовленный запрос
  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными
  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса
  • mysqli_stmt_bind_result() - Привязка переменных к подготовленному запросу для размещения результата
  • mysqli_stmt_close() - Закрывает подготовленный запрос


Выполняет запрос к базе данных

  • « mysqli::prepare
  • mysqli::real_connect »
  • PHP Manual
  • mysqli
  • Выполняет запрос к базе данных

mysqli::query

mysqli_query

(PHP 5, PHP 7)

mysqli::query -- mysqli_query — Выполняет запрос к базе данных

Описание

Объектно-ориентированный стиль

mysqli::query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] ) : mixed

Процедурный стиль

mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] ) : mixed

Выполняет запрос query к базе данных.

Для не DML-запросов (не INSERT, UPDATE или DELETE),
эта функция равносильна вызову
функции mysqli_real_query(), а затем
mysqli_use_result() или
mysqli_store_result().

Замечание:

В случае, если длина выражения, которое вы передаете в mysqli_query(), больше, чем max_allowed_packet сервера, возвращаемые коды ошибки могут различаться в зависимости от используемого драйвера. А это может быть либо родной MySQL драйвер (mysqlnd), либо клиентская библиотека MySQL (libmysqlclient). Поведение функции будет следующим:

  • mysqlnd на платформе Linux возвращает код ошибки 1153. Сообщение об ошибке означает размер пакета превышает max_allowed_packet байт.

  • mysqlnd на платформе Windows возвращает код ошибки 2006. Это сообщение об ошибке означает отказ сервера.

  • libmysqlclient на всех платформах возвращает код ошибки 2006. Это сообщение об ошибке означает отказ сервера.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

query

Текст запроса.

Данные в тексте запроса должны быть правильно экранированы.

resultmode

Либо константа MYSQLI_USE_RESULT, либо MYSQLI_STORE_RESULT в зависимости от требуемого поведения функции. По умолчанию используется MYSQLI_STORE_RESULT.

При использовании MYSQLI_USE_RESULT все последующие вызовы этой функции будут возвращать ошибку Commands out of sync до тех пор, пока не будет вызвана функция mysqli_free_result()

С константой MYSQLI_ASYNC (доступна при использовании mysqlnd) возможно выполнять запросы асинхронно. В этом случае для получения результатов каждого запроса необходимо использовать функцию mysqli_poll().

Возвращаемые значения

Возвращает FALSE в случае неудачи. В случае успешного выполнения запросов SELECT, SHOW, DESCRIBE или EXPLAIN mysqli_query() вернет объект mysqli_result. Для остальных успешных запросов mysqli_query() вернет TRUE.

Список изменений

Версия | Описание
5.3.0 | Добавлена возможность выполнять асинхронные запросы.

Примеры

Пример #1 Пример использования mysqli::query()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if ($mysqli->connect_errno) {
    printf("Не удалось подключиться: %s\n", $mysqli->connect_error);
    exit();
}

/* Создание таблицы не возвращает результирующего набора */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Таблица myCity успешно создана.\n");
}

/* Select запросы возвращают результирующий набор */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
    printf("Select вернул %d строк.\n", $result->num_rows);

    /* очищаем результирующий набор */
    $result->close();
}

/* Если нужно извлечь большой объем данных, используем MYSQLI_USE_RESULT */
if ($result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Важно заметить, что мы не можем вызывать функции, которые взаимодействуют
       с сервером, пока не закроем результирующий набор. Все подобные вызовы
       будут вызывать ошибку 'out of sync' */
    if (!$mysqli->query("SET @a:='this will not work'")) {
        printf("Ошибка: %s\n", $mysqli->error);
    }
    $result->close();
}

$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* Создание таблицы не возвращает результирующего набора */
if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Таблица myCity успешно создана.\n");
}

/* Select запросы возвращают результирующий набор */
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {
    printf("Select вернул %d строк.\n", mysqli_num_rows($result));

    /* очищаем результирующий набор */
    mysqli_free_result($result);
}

/* Если нужно извлечь большой объем данных, используем MYSQLI_USE_RESULT */
if ($result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Важно заметить, что мы не можем вызывать функции, которые взаимодействуют
       с сервером, пока не закроем результирующий набор. Все подобные вызовы
       будут вызывать ошибку 'out of sync' */
    if (!mysqli_query($link, "SET @a:='this will not work'")) {
        printf("Ошибка: %s\n", mysqli_error($link));
    }
    mysqli_free_result($result);
}

mysqli_close($link);
?>

Результат выполнения данных примеров:

Таблица myCity успешно создана.
Select вернул 10 строк.
Ошибка: Commands out of sync;  You can't run this command now

Смотрите также

  • mysqli_real_query() - Выполнение SQL запроса
  • mysqli_multi_query() - Выполняет запрос к базе данных
  • mysqli_free_result() - Освобождает память, занятую результатами запроса


Устанавливает соединение с сервером mysql

  • « mysqli::query
  • mysqli::real_escape_string »
  • PHP Manual
  • mysqli
  • Устанавливает соединение с сервером mysql

mysqli::real_connect

mysqli_real_connect

(PHP 5, PHP 7)

mysqli::real_connect -- mysqli_real_connect — Устанавливает соединение с сервером mysql

Описание

Объектно-ориентированный стиль

mysqli::real_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] ) : bool

Процедурный стиль

mysqli_real_connect ( mysqli $link [, string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] ) : bool

Устанавливает соединение с СУБД MySQL.

Эта функция отличается от mysqli_connect():

  • Для работы mysqli_real_connect() необходим действительный объект, созданный функцией mysqli_init().

  • С помощью функции mysqli_options() можно задать различные настройки подключения.

  • Параметр flags.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

host

Может быть именем хоста или IP-адресом. Передача NULL или строки "localhost" этому параметру означает, что в качестве хоста будет использоваться локальная машина, на которой запущен скрипт. Если есть такая возможность, будут использоваться пайпы вместо протокола TCP/IP.

username

Имя пользователя MySQL.

passwd

Если не задан или равен NULL, MySQL-сервер в первую очередь попытается аутентифицировать пользователя в принципе имеющего пароль, а затем будет искать среди пользователей, у которых нет пароля. Такой подход позволяет одному пользователю назначать различные права (в зависимости от того, задан пароль или нет).

dbname

Если параметр задан, его значение будет использоваться в качестве имени базы данных по умолчанию при выполнении запросов.

port

Порт, к которому будет производиться подключение.

socket

Задает номер порта для подключения к серверу MySQL.

Замечание:

Передача параметра socket не будет явно задавать тип соединения при подключении к серверу MySQL. То, как будет устанавливаться соединение с MySQL-сервером, определяется параметром host.

flags

С помощью параметра flags можно задать некоторые настройки соединения:

Поддерживаемые флаги
Имя | Описание
MYSQLI_CLIENT_COMPRESS | Использовать протокол сжатия
MYSQLI_CLIENT_FOUND_ROWS | Возвращать количество строк, подошедших условиям выборки, вместо количества затронутых запросом строк
MYSQLI_CLIENT_IGNORE_SPACE | Допускать пробелы после имен функций. Делает все имена функций зарезервированными словами.
MYSQLI_CLIENT_INTERACTIVE | Допускать interactive_timeout секунд (вместо wait_timeout) простоя, прежде чем закрыть соединение
MYSQLI_CLIENT_SSL | Использовать SSL (шифрование)
MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT | Аналогично MYSQLI_CLIENT_SSL, но запрещает проверку SSL сертификата. Работает только с MySQL Native Driver и MySQL 5.6 и выше.

Замечание:

По причинам безопасности, флаг MULTI_STATEMENT не поддерживается в PHP. Если необходимо выполнять мультизапросы, используйте функцию mysqli_multi_query().

Список изменений

Версия | Описание
5.6.16 | Добавлен флаг MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT для MySQL Native Driver

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqli::real_connect()

Объектно-ориентированный стиль

<?php

$mysqli = mysqli_init();
if (!$mysqli) {
    die('mysqli_init завершилась провалом');
}

if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
    die('Установка MYSQLI_INIT_COMMAND завершилась провалом');
}

if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
    die('Установка MYSQLI_OPT_CONNECT_TIMEOUT завершилась провалом');
}

if (!$mysqli->real_connect('localhost', 'my_user', 'my_password', 'my_db')) {
    die('Ошибка подключения (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Выполнено... ' . $mysqli->host_info . "\n";

$mysqli->close();
?>

Объектно-ориентированный стиль при расширении класса mysqli

<?php

class foo_mysqli extends mysqli {
    public function __construct($host, $user, $pass, $db) {
        parent::init();

        if (!parent::options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
            die('Установка MYSQLI_INIT_COMMAND завершилась провалом');
        }

        if (!parent::options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
            die('Установка MYSQLI_OPT_CONNECT_TIMEOUT завершилась провалом');
        }

        if (!parent::real_connect($host, $user, $pass, $db)) {
            die('Ошибка подключения (' . mysqli_connect_errno() . ') '
                    . mysqli_connect_error());
        }
    }
}

$db = new foo_mysqli('localhost', 'my_user', 'my_password', 'my_db');

echo 'Выполнено... ' . $db->host_info . "\n";

$db->close();
?>

Процедурный стиль

<?php

$link = mysqli_init();
if (!$link) {
    die('mysqli_init завершилась провалом');
}

if (!mysqli_options($link, MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
    die('Установка MYSQLI_INIT_COMMAND завершилась провалом');
}

if (!mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
    die('Установка MYSQLI_OPT_CONNECT_TIMEOUT завершилась провалом');
}

if (!mysqli_real_connect($link, 'localhost', 'my_user', 'my_password', 'my_db')) {
    die('Ошибка подключения (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Выполнено... ' . mysqli_get_host_info($link) . "\n";

mysqli_close($link);
?>

Результат выполнения данных примеров:

Выполнено... MySQL host info: localhost via TCP/IP

Примечания

Замечание:

MySQLnd всегда подразумевает кодировку, которую использует по умолчанию сервер. Эта кодировка передается во время установки соединения/авторизации, которые использует mysqlnd.

Libmysqlclient по умолчанию использует кодировку, установленную в my.cnf или специальным вызовом mysqli_options() до использования mysqli_real_connect(), но после mysqli_init().

Смотрите также

  • mysqli_connect() - Псевдоним mysqli::__construct
  • mysqli_init() - Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()
  • mysqli_options() - Установка настроек
  • mysqli_ssl_set() - Используется для установления безопасных соединений, используя SSL
  • mysqli_close() - Закрывает ранее открытое соединение с базой данных


Экранирует специальные символы в строке для использования в SQL-выражении, используя текущий набор символов соединения

  • « mysqli::real_connect
  • mysqli::real_query »
  • PHP Manual
  • mysqli
  • Экранирует специальные символы в строке для использования в SQL-выражении, используя текущий набор символов соединения

mysqli::real_escape_string

mysqli::escape_string

mysqli_real_escape_string

(PHP 5, PHP 7)

mysqli::real_escape_string -- mysqli::escape_string -- mysqli_real_escape_string — Экранирует специальные символы в строке для использования в SQL-выражении, используя текущий набор символов соединения

Описание

Объектно-ориентированный стиль

mysqli::escape_string ( string $escapestr ) : string
mysqli::real_escape_string ( string $escapestr ) : string

Процедурный стиль

mysqli_real_escape_string ( mysqli $link , string $escapestr ) : string

Эта функция используется для создания допустимых в SQL строк, которые можно использовать в SQL выражениях. Заданная строка кодируется в экранированную SQL строку, используя текущий набор символов подключения.

Предостережение

Безопасность: набор символов по умолчанию

Набор символов должен быть задан либо на стороне сервера, либо с помощью API-функции mysqli_set_charset(). В противном случае mysqli_real_escape_string() работать не будет. За дополнительной информацией обращайтесь к документации наборы символов.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

escapestr

Строка, которую требуется экранировать.

Экранируемые символы NUL (ASCII 0), \n, \r, \, ', ", и Control-Z.

Возвращаемые значения

Возвращает экранированную строку.

Ошибки

Использование этой функции без корректного идентификатора соединения вернет NULL и вызовет ошибку уровня E_WARNING.

Примеры

Пример #1 Пример использования mysqli::real_escape_string()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* этот запрос вызовет ошибку, так как мы не экранировали $city */
if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Ошибка: %s\n", $mysqli->sqlstate);
}

$city = $mysqli->real_escape_string($city);

/* этот запрос отработает нормально */
if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d строк вставлено.\n", $mysqli->affected_rows);
}

$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* этот запрос вызовет ошибку, так как мы не экранировали $city */
if (!mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Ошибка: %s\n", mysqli_sqlstate($link));
}

$city = mysqli_real_escape_string($link, $city);

/* этот запрос отработает нормально */
if (mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d строк вставлено.\n", mysqli_affected_rows($link));
}

mysqli_close($link);
?>

Результат выполнения данных примеров:

Ошибка: 42000
1 строк вставлено.

Примечания

Замечание:

Тем, кто привык использовать функцию mysql_real_escape_string(), следует обратить внимание, что аргументы mysqli_real_escape_string() отличаются от аргументов mysql_real_escape_string(). Идентификатор link в mysqli_real_escape_string() идет первым, в то время как в mysql_real_escape_string() первой идет экранируемая строка.

Смотрите также

  • mysqli_set_charset() - Задает набор символов по умолчанию
  • mysqli_character_set_name() - Возвращает кодировку по умолчанию, установленную для соединения с БД


Выполнение SQL запроса

  • « mysqli::real_escape_string
  • mysqli::reap_async_query »
  • PHP Manual
  • mysqli
  • Выполнение SQL запроса

mysqli::real_query

mysqli_real_query

(PHP 5, PHP 7)

mysqli::real_query -- mysqli_real_query — Выполнение SQL запроса

Описание

Объектно-ориентированный стиль

mysqli::real_query ( string $query ) : bool

Процедурный стиль

mysqli_real_query ( mysqli $link , string $query ) : bool

Выполняет одиночный запрос к базе данных, результаты которого можно получить или использовать функциями mysqli_store_result() или mysqli_use_result().

Чтобы определить, должен ли запрос возвращать результирующий набор, смотрите mysqli_field_count().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

query

Текст запроса в виде строки.

Данные в тексте запроса должны быть правильно экранированы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию


Получение результата асинхронного запроса

  • « mysqli::real_query
  • mysqli::refresh »
  • PHP Manual
  • mysqli
  • Получение результата асинхронного запроса

mysqli::reap_async_query

mysqli_reap_async_query

(PHP 5 >= 5.3.0, PHP 7)

mysqli::reap_async_query -- mysqli_reap_async_query — Получение результата асинхронного запроса

Описание

Объектно-ориентированный стиль

public mysqli::reap_async_query ( void ) : mysqli_result

Процедурный стиль

mysqli_reap_async_query ( mysqli $link ) : mysqli_result

Получает результат асинхронного запроса. Доступно только с расширением mysqlnd.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает mysqli_result в случае успешного завершения, FALSE в противном случае.

Смотрите также

  • mysqli_poll() - Опрос подключений


Обновление

  • « mysqli::reap_async_query
  • mysqli::release_savepoint »
  • PHP Manual
  • mysqli
  • Обновление

mysqli::refresh

mysqli_refresh

(PHP 5 >= 5.3.0, PHP 7)

mysqli::refresh -- mysqli_refresh — Обновление

Описание

Объектно-ориентированный стиль

public mysqli::refresh ( int $options ) : bool

Процедурный стиль

mysqli_refresh ( resource $link , int $options ) : bool

Очищает таблицы или кеш, либо сбрасывает копию серверной информации.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

options

Настройки обновления задаются константами MYSQLI_REFRESH_*, которые описаны в разделе документации Константы MySQLi.

См. также официальную документацию » MySQL Refresh.

Возвращаемые значения

TRUE в случае успешного выполнения, FALSE в противном случае.

Смотрите также

  • mysqli_poll() - Опрос подключений


Удаляет именованную точку сохранения из списка точек сохранения текущей транзакции

  • « mysqli::refresh
  • mysqli::rollback »
  • PHP Manual
  • mysqli
  • Удаляет именованную точку сохранения из списка точек сохранения текущей транзакции

mysqli::release_savepoint

mysqli_release_savepoint

(PHP 5 >= 5.5.0, PHP 7)

mysqli::release_savepoint -- mysqli_release_savepoint — Удаляет именованную точку сохранения из списка точек сохранения текущей транзакции

Описание

Объектно-ориентированный стиль (method):

public mysqli::release_savepoint ( string $name ) : bool

Процедурный стиль:

mysqli_release_savepoint ( mysqli $link , string $name ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

name

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mysqli_rollback() - Откат текущей транзакции


Откат текущей транзакции

  • « mysqli::release_savepoint
  • mysqli::rpl_query_type »
  • PHP Manual
  • mysqli
  • Откат текущей транзакции

mysqli::rollback

mysqli_rollback

(PHP 5, PHP 7)

mysqli::rollback -- mysqli_rollback — Откат текущей транзакции

Описание

Объектно-ориентированный стиль

mysqli::rollback ([ int $flags = 0 [, string $name ]] ) : bool

Процедурный стиль

mysqli_rollback ( mysqli $link [, int $flags = 0 [, string $name ]] ) : bool

Откатывает текущую транзакцию.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

flags

Битовая маска констант MYSQLI_TRANS_COR_*.

name

Если передана, то выполняется ROLLBACK/*name*/.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.0 | Добавлены параметры flags и name.

Примеры

Пример #1 Пример использования mysqli::rollback()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* выключаем автофиксацию */
$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");

/* фиксируем вставленные строки */
$mysqli->commit();

/* удаляем все строки */
$mysqli->query("DELETE FROM myCity");

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d строк в таблице myCity.\n", $row[0]);
    /* очищаем результат */
    $result->close();
}

/* откат */
$mysqli->rollback();

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d строк в таблице myCity (after rollback).\n", $row[0]);
    /* очищаем результат */
    $result->close();
}

/* удаляем таблицу myCity */
$mysqli->query("DROP TABLE myCity");

$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* выключаем автофиксацию */
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");

/* фиксируем вставленные строки */
mysqli_commit($link);

/* удаляем все строки */
mysqli_query($link, "DELETE FROM myCity");

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d строк в таблице myCity.\n", $row[0]);
    /* очищаем результат */
    mysqli_free_result($result);
}

/* откат */
mysqli_rollback($link);

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d строк в таблице myCity (после отката).\n", $row[0]);
    /* очищаем результат */
    mysqli_free_result($result);
}

/* удаляем таблицу myCity */
mysqli_query($link, "DROP TABLE myCity");

mysqli_close($link);
?>

Результат выполнения данных примеров:

0 строк в таблице myCity.
50 строк в таблице myCity (после отката).

Смотрите также

  • mysqli_begin_transaction() - Стартует транзакцию
  • mysqli_commit() - Фиксирует текущую транзакцию
  • mysqli_autocommit() - Включает или отключает автоматическую фиксацию изменений базы данных
  • mysqli_release_savepoint() - Удаляет именованную точку сохранения из списка точек сохранения текущей транзакции


Возвращает RPL тип запроса

  • « mysqli::rollback
  • mysqli::savepoint »
  • PHP Manual
  • mysqli
  • Возвращает RPL тип запроса

mysqli::rpl_query_type

mysqli_rpl_query_type

(PHP 5, PHP 7)

mysqli::rpl_query_type -- mysqli_rpl_query_type — Возвращает RPL тип запроса

Описание

Объектно-ориентированный стиль

mysqli::rpl_query_type ( string $query ) : int

Процедурный стиль

mysqli_rpl_query_type ( mysqli $link , string $query ) : int

Возвращает MYSQLI_RPL_MASTER, MYSQLI_RPL_SLAVE или MYSQLI_RPL_ADMIN в зависимости от типа запроса. INSERT, UPDATE и подобные являются master запросами, SELECT - slave, а FLUSH, REPAIR и им подобные - admin запросы.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА, начиная с PHP 5.3.0.


Устанавливает именованную точку отката для текущей транзакции

  • « mysqli::rpl_query_type
  • mysqli::select_db »
  • PHP Manual
  • mysqli
  • Устанавливает именованную точку отката для текущей транзакции

mysqli::savepoint

mysqli_savepoint

(PHP 5 >= 5.5.0, PHP 7)

mysqli::savepoint -- mysqli_savepoint — Устанавливает именованную точку отката для текущей транзакции

Описание

Объектно-ориентированный стиль (method):

public mysqli::savepoint ( string $name ) : bool

Процедурный стиль:

mysqli_savepoint ( mysqli $link , string $name ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

name

Имя точки отката

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mysqli_commit() - Фиксирует текущую транзакцию


Устанавливает базу данных для выполняемых запросов

  • « mysqli::savepoint
  • mysqli::send_query »
  • PHP Manual
  • mysqli
  • Устанавливает базу данных для выполняемых запросов

mysqli::select_db

mysqli_select_db

(PHP 5, PHP 7)

mysqli::select_db -- mysqli_select_db — Устанавливает базу данных для выполняемых запросов

Описание

Объектно-ориентированный стиль

mysqli::select_db ( string $dbname ) : bool

Процедурный стиль

mysqli_select_db ( mysqli $link , string $dbname ) : bool

Устанавливает базу данных, которая будет использоваться при выполнении запросов к базе данных

Замечание:

Эта функция используется только для смены базы данных во время подключения. Вы можете выбрать базу данных, передав ее четвертым параметром в функции mysqli_connect().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

dbname

Имя базы данных.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqli::select_db()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* возвращаем имя текущей базы данных */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

/* изменяем текущую базу данных на world */
$mysqli->select_db("world");

/* возвращаем имя текущей базы данных */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* возвращаем имя текущей базы данных */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database is %s.\n", $row[0]);
    mysqli_free_result($result);
}

/* изменяем текущую базу данных на world */
mysqli_select_db($link, "world");

/* возвращаем имя текущей базы данных */
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_connect() - Псевдоним mysqli::__construct
  • mysqli_real_connect() - Устанавливает соединение с сервером mysql


Отправка запроса и возврат

  • « mysqli::select_db
  • mysqli::set_charset »
  • PHP Manual
  • mysqli
  • Отправка запроса и возврат

mysqli::send_query

mysqli_send_query

(PHP 5, PHP 7)

mysqli::send_query -- mysqli_send_query — Отправка запроса и возврат

Описание

Объектно-ориентированный стиль

mysqli::send_query ( string $query ) : bool

Процедурный стиль

mysqli_send_query ( mysqli $link , string $query ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА, начиная с PHP 5.3.0.


Задает набор символов по умолчанию

  • « mysqli::send_query
  • mysqli::set_local_infile_default »
  • PHP Manual
  • mysqli
  • Задает набор символов по умолчанию

mysqli::set_charset

mysqli_set_charset

(PHP 5 >= 5.0.5, PHP 7)

mysqli::set_charset -- mysqli_set_charset — Задает набор символов по умолчанию

Описание

Объектно-ориентированный стиль

mysqli::set_charset ( string $charset ) : bool

Процедурный стиль

mysqli_set_charset ( mysqli $link , string $charset ) : bool

Задает набор символов по умолчанию, который будет использоваться при обмене данными с сервером баз данных.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

charset

Набор символов, который необходимо установить.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Чтобы использовать эту функцию на Windows платформах, вам потребуется клиентская библиотека MySQL версии 4.1.11 или выше (для MySQL 5.0 соответственно 5.0.6 или выше).

Замечание:

Это предпочтительный способ задания набора символов. Использование для этих целей функции mysqli_query() (например SET NAMES utf8) не рекомендуется. Дополнительно см. Наборы символов в MySQL.

Примеры

Пример #1 Пример использования mysqli::set_charset()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

printf("Изначальная кодировка: %s\n", $mysqli->character_set_name());

/* изменение набора символов на utf8 */
if (!$mysqli->set_charset("utf8")) {
    printf("Ошибка при загрузке набора символов utf8: %s\n", $mysqli->error);
    exit();
} else {
    printf("Текущий набор символов: %s\n", $mysqli->character_set_name());
}

$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

printf("Изначальная кодировка: %s\n", $mysqli->character_set_name());

/* изменение набора символов на utf8 */
if (!mysqli_set_charset($link, "utf8")) {
    printf("Ошибка при загрузке набора символов utf8: %s\n", mysqli_error($link));
    exit();
} else {
    printf("Текущий набор символов: %s\n", mysqli_character_set_name($link));
}

mysqli_close($link);
?>

Результат выполнения данных примеров:

Изначальная кодировка: latin1
Текущий набор символов: utf8

Смотрите также

  • mysqli_character_set_name() - Возвращает кодировку по умолчанию, установленную для соединения с БД
  • mysqli_real_escape_string() - Экранирует специальные символы в строке для использования в SQL-выражении, используя текущий набор символов соединения
  • Концепции кодировок MySQL
  • » Список поддерживаемых MySQL наборов символов


Отмена привязки callback-функции для команды load local infile

  • « mysqli::set_charset
  • mysqli::set_local_infile_handler »
  • PHP Manual
  • mysqli
  • Отмена привязки callback-функции для команды load local infile

mysqli::set_local_infile_default

mysqli_set_local_infile_default

(PHP 5, PHP 7)

mysqli::set_local_infile_default -- mysqli_set_local_infile_default — Отмена привязки callback-функции для команды load local infile

Описание

mysqli_set_local_infile_default ( mysqli $link ) : void

Отменяет привязку функции обработчика для команды LOAD DATA INFILE LOCAL, которую ранее задали функцией mysqli_set_local_infile_handler().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

См. примеры к функции mysqli_set_local_infile_handler()

Смотрите также

  • mysqli_set_local_infile_handler() - Задает callback-функцию для команды LOAD DATA LOCAL INFILE


Задает callback-функцию для команды LOAD DATA LOCAL INFILE

  • « mysqli::set_local_infile_default
  • mysqli::$sqlstate »
  • PHP Manual
  • mysqli
  • Задает callback-функцию для команды LOAD DATA LOCAL INFILE

mysqli::set_local_infile_handler

mysqli_set_local_infile_handler

(PHP 5, PHP 7)

mysqli::set_local_infile_handler -- mysqli_set_local_infile_handler — Задает callback-функцию для команды LOAD DATA LOCAL INFILE

Описание

Объектно-ориентированный стиль

mysqli::set_local_infile_handler ( mysqli $link , callable $read_func ) : bool

Процедурный стиль

mysqli_set_local_infile_handler ( mysqli $link , callable $read_func ) : bool

Задает callback-функцию для команды LOAD DATA LOCAL INFILE

Задача callback-функции состоит в том, чтобы считать данные из файла, заданного в LOAD DATA LOCAL INFILE, и преобразовать их в формат понятный для LOAD DATA INFILE.

Возвращаемые данные должны соответствовать формату, заданному в LOAD DATA

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

read_func

Callback-функция или объектный метод принимающий следующие параметры:

stream

PHP-поток, связанный с SQL-командами INFILE

&buffer

Строковый буфер для хранения перезаписанных данных

buflen

Максимальное количество символов, которое может вместить буфер

&errormsg

В случае ошибки сюда можно поместить ее описание

Callback-функция должна возвращать число символов, размещенное в буфере buffer или отрицательное число, если произошла ошибка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqli::set_local_infile_handler()

Объектно-ориентированный стиль

<?php
  $db = mysqli_init();
  $db->real_connect("localhost","root","","test");

  function callme($stream, &$buffer, $buflen, &$errmsg)
  {
    $buffer = fgets($stream);

    echo $buffer;

    // приведение к верхнему регистру и замена разделителя "," на [TAB]
    $buffer = strtoupper(str_replace(",", "\t", $buffer));

    return strlen($buffer);
  }

  echo "Входные данные:\n";

  $db->set_local_infile_handler("callme");
  $db->query("LOAD DATA LOCAL INFILE 'input.txt' INTO TABLE t1");
  $db->set_local_infile_default();

  $res = $db->query("SELECT * FROM t1");

  echo "\nРезультат:\n";
  while ($row = $res->fetch_assoc()) {
    echo join(",", $row)."\n";
  }
?>

Процедурный стиль

<?php
  $db = mysqli_init();
  mysqli_real_connect($db, "localhost","root","","test");

  function callme($stream, &$buffer, $buflen, &$errmsg)
  {
    $buffer = fgets($stream);

    echo $buffer;

    // приведение к верхнему регистру и замена разделителя "," на [TAB]
    $buffer = strtoupper(str_replace(",", "\t", $buffer));

    return strlen($buffer);
  }

  echo "Входные данные:\n";

  mysqli_set_local_infile_handler($db, "callme");
  mysqli_query($db, "LOAD DATA LOCAL INFILE 'input.txt' INTO TABLE t1");
  mysqli_set_local_infile_default($db);

  $res = mysqli_query($db, "SELECT * FROM t1");

  echo "\nРезультат:\n";
  while ($row = mysqli_fetch_assoc($res)) {
    echo join(",", $row)."\n";
  }
?>

Результат выполнения данных примеров:

Входные данные:
23,foo
42,bar

Результат:
23,FOO
42,BAR

Смотрите также

  • mysqli_set_local_infile_default() - Отмена привязки callback-функции для команды load local infile


Возвращает код состояния SQLSTATE последней MySQL операции

  • « mysqli::set_local_infile_handler
  • mysqli::ssl_set »
  • PHP Manual
  • mysqli
  • Возвращает код состояния SQLSTATE последней MySQL операции

mysqli::$sqlstate

mysqli_sqlstate

(PHP 5, PHP 7)

mysqli::$sqlstate -- mysqli_sqlstate — Возвращает код состояния SQLSTATE последней MySQL операции

Описание

Объектно-ориентированный стиль

string $mysqli->sqlstate;

Процедурный стиль

mysqli_sqlstate ( mysqli $link ) : string

Возвращает строку с SQLSTATE кодом последней ошибки. Этот код состоит из пяти символов. '00000' означает отсутствие ошибок. Эти коды определены в стандарте ANSI, а также в ODBC. Посмотреть список возможных значений можно на странице » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Замечание:

Следует заметить, что еще не все MySQL ошибки имеют отражение в SQLSTATE кодах. Для подобных ошибок используется код HY000 (общая ошибка).

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает строку с SQLSTATE кодом последней ошибки. Этот код состоит из пяти символов. '00000' означает отсутствие ошибок.

Примеры

Пример #1 Пример использования $mysqli->sqlstate

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* таблица City уже существует, так что мы должны получить ошибку */
if (!$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Ошибка - SQLSTATE %s.\n", $mysqli->sqlstate);
}

$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* таблица City уже существует, так что мы должны получить ошибку */
if (!mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Ошибка - SQLSTATE %s.\n", mysqli_sqlstate($link));
}

mysqli_close($link);
?>

Результат выполнения данных примеров:

Ошибка - SQLSTATE 42S01.

Смотрите также

  • mysqli_errno() - Возвращает код ошибки последнего вызова функции
  • mysqli_error() - Возвращает строку с описанием последней ошибки


Используется для установления безопасных соединений, используя SSL

  • « mysqli::$sqlstate
  • mysqli::stat »
  • PHP Manual
  • mysqli
  • Используется для установления безопасных соединений, используя SSL

mysqli::ssl_set

mysqli_ssl_set

(PHP 5, PHP 7)

mysqli::ssl_set -- mysqli_ssl_set — Используется для установления безопасных соединений, используя SSL

Описание

Объектно-ориентированный стиль

mysqli::ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher ) : bool

Процедурный стиль

mysqli_ssl_set ( mysqli $link , string $key , string $cert , string $ca , string $capath , string $cipher ) : bool

Используется для установления безопасных соединений, используя SSL. Функцию необходимо вызывать до вызова mysqli_real_connect(). Для работы функции требуется включить поддержку OpenSSL, в противном случае функция делать ничего не будет.

Следует упомянуть, что MySQL Native Driver не поддерживает SSL до версии PHP 5.3.3, так что вызов функции при использовании этого драйвера приведет к ошибке. MySQL Native Driver включен по умолчанию на платформах Microsoft Windows в версиях PHP 5.3 и выше.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

key

Путь и имя ключевого файла.

cert

Путь и имя файла сертификата.

ca

Путь и имя файла с разрешениями сертификата.

capath

Путь к директории, в которой хранятся доверенные CA-сертификаты SSL в формате PEM.

cipher

Список допустимых шифров для использования в SSL-шифровании.

Возвращаемые значения

Функция всегда возвращает TRUE. Если SSL установлен некорректно mysqli_real_connect() вернет ошибку при попытке подключения.

Смотрите также

  • mysqli_options() - Установка настроек
  • mysqli_real_connect() - Устанавливает соединение с сервером mysql


Получение информации о текущем состоянии системы

  • « mysqli::ssl_set
  • mysqli::stmt_init »
  • PHP Manual
  • mysqli
  • Получение информации о текущем состоянии системы

mysqli::stat

mysqli_stat

(PHP 5, PHP 7)

mysqli::stat -- mysqli_stat — Получение информации о текущем состоянии системы

Описание

Объектно-ориентированный стиль

mysqli::stat ( void ) : string

Процедурный стиль

mysqli_stat ( mysqli $link ) : string

mysqli_stat() возвращает строку с информацией, схожей с той, что предоставляет команда 'mysqladmin status'. Сюда включается время работы с момента загрузки в секундах, количество запущенных процессов, запросов, перезагрузок и открытых таблиц.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Строка с информацией о состоянии системы. FALSE в случае ошибки.

Примеры

Пример #1 Пример использования mysqli::stat()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

printf ("Состояние системы: %s\n", $mysqli->stat());

$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

printf("Состояние системы: %s\n", mysqli_stat($link));

mysqli_close($link);
?>

Результат выполнения данных примеров:

Состояние системы: 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_get_server_info() - Возвращает версию MySQL сервера


Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare

  • « mysqli::stat
  • mysqli::store_result »
  • PHP Manual
  • mysqli
  • Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare

mysqli::stmt_init

mysqli_stmt_init

(PHP 5, PHP 7)

mysqli::stmt_init -- mysqli_stmt_init — Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare

Описание

Объектно-ориентированный стиль

mysqli::stmt_init ( void ) : mysqli_stmt

Процедурный стиль

mysqli_stmt_init ( mysqli $link ) : mysqli_stmt

Выделяет память и инициализирует объект запроса, который можно использовать в функции mysqli_stmt_prepare().

Замечание:

Все последующие вызовы mysqli_stmt функций вызовут ошибку, пока не будет вызвана функция mysqli_stmt_prepare().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает объект.

Смотрите также

  • mysqli_stmt_prepare() - Подготовка SQL-запроса к выполнению


Передает на клиента результирующий набор последнего запроса

  • « mysqli::stmt_init
  • mysqli::$thread_id »
  • PHP Manual
  • mysqli
  • Передает на клиента результирующий набор последнего запроса

mysqli::store_result

mysqli_store_result

(PHP 5, PHP 7)

mysqli::store_result -- mysqli_store_result — Передает на клиента результирующий набор последнего запроса

Описание

Объектно-ориентированный стиль

mysqli::store_result ([ int $option ] ) : mysqli_result

Процедурный стиль

mysqli_store_result ( mysqli $link [, int $option ] ) : mysqli_result

Передает результирующий набор последнего запроса на соединении link. Дальнейшая работа с этим набором осуществляется функцией mysqli_data_seek().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

option

Устанавливаемая опция. Может иметь одно из следующих значений:

Valid options
Имя | Описание
MYSQLI_STORE_RESULT_COPY_DATA | Копирует результаты из внутреннего буфера mysqlnd в получаемые переменные PHP. По умолчанию mysqlnd использует ссылки, предотвращая копирование и дублирование результатов в памяти. В некоторых случаях, например, если результаты содержат много небольших рядов, копирование может уменьшить общее потребление памяти, так как переменные PHP, содержащие результат, можно освобождать раньше (доступно только при использовании mysqlnd c версии PHP 5.6.0)

Возвращаемые значения

Возвращает буферизованный объект результата запроса или FALSE в случае ошибки.

Замечание:

mysqli_store_result() возвращает FALSE, если запрос не возвращает результирующей таблицы (например, в случае выражения INSERT). Также функция вернет FALSE, если данные из результирующего набора не удалось прочитать. Наличие ошибки можно проверить функцией mysqli_error(), которая в этом случае вернет непустую строку; mysqli_errno() вернет ненулевое значение; и mysqli_field_count() также вернет ненулевое значение. Также возможной причиной возврата FALSE после успешного вызова mysqli_query() может быть слишком большой результирующий набор (не хватает памяти для его размещения). Если функция mysqli_field_count() возвращает ненулевое значение, значит запрос вернул непустой результирующий набор.

Примечания

Замечание:

Даже несмотря на хорошую практику очищать память, занятую результатами запросов, посредством функции mysqli_free_result(), если mysqli_store_result() передает большой результирующий набор, это может стать проблемой.

Примеры

См. mysqli_multi_query().

Смотрите также

  • mysqli_real_query() - Выполнение SQL запроса
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию


Возвращает ID процесса текущего подключения

  • « mysqli::store_result
  • mysqli::thread_safe »
  • PHP Manual
  • mysqli
  • Возвращает ID процесса текущего подключения

mysqli::$thread_id

mysqli_thread_id

(PHP 5, PHP 7)

mysqli::$thread_id -- mysqli_thread_id — Возвращает ID процесса текущего подключения

Описание

Объектно-ориентированный стиль

int $mysqli->thread_id;

Процедурный стиль

mysqli_thread_id ( mysqli $link ) : int

mysqli_thread_id() возвращает ID процесса текущего подключения, который можно завершить функцией mysqli_kill(). Если соединение было разорвано и восстановлено функцией mysqli_ping(), ID процесса будет уже другим. Поэтому нужно получать этот идентификатор, когда это действительно необходимо.

Замечание:

ID процесса назначается по принципу подключение-за-подключением. Соответственно, если соединение разорвано и заново установлено, ему будет присвоен новый идентификатор.

Для завершения работы запущенного запроса можно использовать SQL-команду KILL QUERY processid.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает ID процесса текущего подключения.

Примеры

Пример #1 Пример использования $mysqli->thread_id

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* определяем наш id процесса */
$thread_id = $mysqli->thread_id;

/* убиваем соединение */
$mysqli->kill($thread_id);

/* тут должна произойти ошибка */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Ошибка: %s\n", $mysqli->error);
    exit;
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* определяем наш id процесса */
$thread_id = mysqli_thread_id($link);

/* убиваем соединение */
mysqli_kill($link, $thread_id);

/* тут должна произойти ошибка */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Ошибка: %s\n", mysqli_error($link));
    exit;
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Ошибка: MySQL server has gone away

Смотрите также

  • mysqli_kill() - Запрос для сервера завершить выполнение процесса MySQL


Показывает, безопасна ли работа с процессами

  • « mysqli::$thread_id
  • mysqli::use_result »
  • PHP Manual
  • mysqli
  • Показывает, безопасна ли работа с процессами

mysqli::thread_safe

mysqli_thread_safe

(PHP 5, PHP 7)

mysqli::thread_safe -- mysqli_thread_safe — Показывает, безопасна ли работа с процессами

Описание

Процедурный стиль

mysqli_thread_safe ( void ) : bool

Показывает, клиентская библиотека скомпилирована как потокобезопасная или нет.

Возвращаемые значения

TRUE, если клиентская библиотека потокобезопасна, в противном случае FALSE.


Готовит результирующий набор на сервере к использованию

  • « mysqli::thread_safe
  • mysqli::$warning_count »
  • PHP Manual
  • mysqli
  • Готовит результирующий набор на сервере к использованию

mysqli::use_result

mysqli_use_result

(PHP 5, PHP 7)

mysqli::use_result -- mysqli_use_result — Готовит результирующий набор на сервере к использованию

Описание

Объектно-ориентированный стиль

mysqli::use_result ( void ) : mysqli_result

Процедурный стиль

mysqli_use_result ( mysqli $link ) : mysqli_result

Используется для подготовки к использованию результирующего набора последнего запроса, запущенного функцией mysqli_real_query().

Чтобы результаты запроса стали доступны, после самого запроса необходимо вызывать либо эту функцию, либо mysqli_store_result(). Также вызов какой-либо из них предотвратит отказ следующих запросов на этом же соединении.

Замечание:

mysqli_use_result() не передает весь результирующий набор на клиента, а следовательно невозможно воспользоваться функцией mysqli_data_seek(), чтобы перемещаться по нему. Для этого нужно воспользоваться функцией mysqli_store_result(). mysqli_use_result() не следует использовать, если на стороне клиента данные результирующего набора долго обрабатываются, так как это задерживает работу сервера и не дает другим процессам обновлять таблицы, данные из которых есть в результирующем наборе.

Возвращаемые значения

Возвращает небуферизованный объект результата запроса или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования mysqli::use_result()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* выполняем мультизапрос */
if ($mysqli->multi_query($query)) {
    do {
        /* получаем первый результирующий набор */
        if ($result = $mysqli->use_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* печатаем разделитель */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* выполняем мультизапрос */
if (mysqli_multi_query($link, $query)) {
    do {
        /* получаем первый результирующий набор */
        if ($result = mysqli_use_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* печатаем разделитель */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Смотрите также

  • mysqli_real_query() - Выполнение SQL запроса
  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса


Возвращает количество предупреждений из последнего запроса заданного подключения

  • « mysqli::use_result
  • mysqli_stmt »
  • PHP Manual
  • mysqli
  • Возвращает количество предупреждений из последнего запроса заданного подключения

mysqli::$warning_count

mysqli_warning_count

(PHP 5, PHP 7)

mysqli::$warning_count -- mysqli_warning_count — Возвращает количество предупреждений из последнего запроса заданного подключения

Описание

Объектно-ориентированный стиль

int $mysqli->warning_count;

Процедурный стиль

mysqli_warning_count ( mysqli $link ) : int

Возвращает количество предупреждений из последнего запроса.

Замечание:

Для получения самих предупреждений можно использовать SQL-команду SHOW WARNINGS [limit row_count].

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Количество предупреждений или ноль, если таковых нет.

Примеры

Пример #1 Пример использования $mysqli->warning_count

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* знаменитый город в Уэльсе */
$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();
    }
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* знаменитый город в Уэльсе */
$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);
    }
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Warning (1264): Data truncated for column 'Name' at row 1

Смотрите также

  • mysqli_errno() - Возвращает код ошибки последнего вызова функции
  • mysqli_error() - Возвращает строку с описанием последней ошибки
  • mysqli_sqlstate() - Возвращает код состояния SQLSTATE последней MySQL операции


The mysqli_stmt class

(PHP 5, PHP 7)

Введение

Представляет подготовленное выражение.

Обзор классов

mysqli_stmt {
/* Свойства */
int $affected_rows;
int $errno;
array $error_list;
string $error;
int $field_count;
int $insert_id;
int $num_rows;
int $param_count;
string $sqlstate;
/* Методы */
__construct ( mysqli $link [, string $query ] )
attr_get ( int $attr ) : int
attr_set ( int $attr , int $mode ) : bool
bind_param ( string $types , mixed &$var1 [, mixed &$... ] ) : bool
bind_result ( mixed &$var1 [, mixed &$... ] ) : bool
close ( void ) : bool
data_seek ( int $offset ) : void
execute ( void ) : bool
fetch ( void ) : bool
free_result ( void ) : void
get_result ( void ) : mysqli_result
get_warnings ( void ) : object
num_rows ( void ) : int
prepare ( string $query ) : mixed
reset ( void ) : bool
result_metadata ( void ) : mysqli_result
send_long_data ( int $param_nr , string $data ) : bool
store_result ( void ) : bool
}

Содержание

  • mysqli_stmt::$affected_rows — Возвращает общее количество строк, измененных, удаленных или добавленных последним выполненным выражением
  • mysqli_stmt::attr_get — Получает текущее значение атрибута запроса
  • mysqli_stmt::attr_set — Изменяет поведение подготовленного запроса
  • mysqli_stmt::bind_param — Привязка переменных к параметрам подготавливаемого запроса
  • mysqli_stmt::bind_result — Привязка переменных к подготовленному запросу для размещения результата
  • mysqli_stmt::close — Закрывает подготовленный запрос
  • mysqli_stmt::__construct — Конструктор для объекта mysqli_stmt
  • mysqli_stmt::data_seek — Переход к заданной строке в результирующем наборе
  • mysqli_stmt::$errno — Возвращает код ошибки выполнения последнего запроса
  • mysqli_stmt::$error_list — Возвращает список ошибок выполнения последнего запроса
  • mysqli_stmt::$error — Возвращает строку с пояснением последней ошибки при выполнении запроса
  • mysqli_stmt::execute — Выполняет подготовленный запрос
  • mysqli_stmt::fetch — Связывает результаты подготовленного выражения с переменными
  • mysqli_stmt::$field_count — Возвращает число полей в заданном выражении
  • mysqli_stmt::free_result — Освобождает память от результата запроса, указанного дескриптором
  • mysqli_stmt::get_result — Получает результат из подготовленного запроса
  • mysqli_stmt::get_warnings — Получает результат от SHOW WARNINGS
  • mysqli_stmt::$insert_id — Получает ID, сгенерированный предыдущей операцией INSERT
  • mysqli_stmt::more_results — Проверяет, есть ли еще наборы строк в результате мультизапроса
  • mysqli_stmt::next_result — Читает следующий набор строк из мультизапроса
  • mysqli_stmt::$num_rows — Возвращает число строк в результате запроса
  • mysqli_stmt::$param_count — Возвращает количество параметров в запросе
  • mysqli_stmt::prepare — Подготовка SQL-запроса к выполнению
  • mysqli_stmt::reset — Сбрасывает результаты выполнения подготовленного запроса
  • mysqli_stmt::result_metadata — Возвращает метаданные результирующей таблицы подготавливаемого запроса
  • mysqli_stmt::send_long_data — Отправка данных блоками
  • mysqli_stmt::$sqlstate — Возвращает код ошибки SQLSTATE, вызванной в ходе выполнения последней операции над запросом
  • mysqli_stmt::store_result — Передает результирующий набор запроса на клиента


Возвращает общее количество строк, измененных, удаленных или добавленных последним выполненным выражением

  • « mysqli_stmt
  • mysqli_stmt::attr_get »
  • PHP Manual
  • mysqli_stmt
  • Возвращает общее количество строк, измененных, удаленных или добавленных последним выполненным выражением

mysqli_stmt::$affected_rows

mysqli_stmt_affected_rows

(PHP 5, PHP 7)

mysqli_stmt::$affected_rows -- mysqli_stmt_affected_rows — Возвращает общее количество строк, измененных, удаленных или добавленных последним выполненным выражением

Описание

Объектно-ориентированный стиль

int $mysqli_stmt->affected_rows;

Процедурный стиль

mysqli_stmt_affected_rows ( mysqli_stmt $stmt ) : int

Возвращает количество строк, измененных запросом INSERT, UPDATE или DELETE.

Эта функция работает только с запросами, обновляющими таблицу. Для получения количества строк для запроса SELECT используйте вместо нее mysqli_stmt_num_rows().

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Целое число больше нуля показывает количество измененных или найденных строк. Ноль показывает, что не было обновлено ни одной записи для оператора UPDATE/DELETE, ни одна строка не удовлетворила условию WHERE в запросе или что ни один запрос еще не выполнен. -1 показывает, что запрос выполнен с ошибкой. NULL показывает, что функция получила неверный аргумент.

Замечание:

Если количество измененных строк больше, чем максимальное значение для целого числа в PHP, то это количество будет возвращено в виде строкового значения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* создание временной таблицы */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* подготовленное выражение */
if ($stmt = $mysqli->prepare($query)) {

    /* привязка переменной к метке */
    $code = 'A%';
    $stmt->bind_param("s", $code);

    /* выполнение выражения */
    $stmt->execute();

    printf("Добавлено строк: %d\n", $stmt->affected_rows);

    /* закрытие подготовленного выражения */
    $stmt->close();
}

/* закрытие соединения */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* создание временной таблицы */
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* подготовленное выражение */
if ($stmt = mysqli_prepare($link, $query)) {

    /* привязка переменной к метке */
    $code = 'A%';
    mysqli_stmt_bind_param($stmt, "s", $code);

    /* выполнение выражения */
    mysqli_stmt_execute($stmt);

    printf("Добавлено строк: %d\n", mysqli_stmt_affected_rows($stmt));

    /* закрытие подготовленного выражения */
    mysqli_stmt_close($stmt);
}

/* закрытие соединения */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Добавлено строк: 17

Смотрите также

  • mysqli_stmt_num_rows() - Возвращает число строк в результате запроса
  • mysqli_prepare() - Подготавливает SQL выражение к выполнению


Получает текущее значение атрибута запроса

  • « mysqli_stmt::$affected_rows
  • mysqli_stmt::attr_set »
  • PHP Manual
  • mysqli_stmt
  • Получает текущее значение атрибута запроса

mysqli_stmt::attr_get

mysqli_stmt_attr_get

(PHP 5, PHP 7)

mysqli_stmt::attr_get -- mysqli_stmt_attr_get — Получает текущее значение атрибута запроса

Описание

Объектно-ориентированный стиль

mysqli_stmt::attr_get ( int $attr ) : int

Процедурный стиль

mysqli_stmt_attr_get ( mysqli_stmt $stmt , int $attr ) : int

Используется для получения текущего значения атрибута запроса.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

attr

Атрибут, который необходимо получить.

Возвращаемые значения

Возвращает FALSE, если атрибут не найден, либо возвращает текущее значение атрибута.


Изменяет поведение подготовленного запроса

  • « mysqli_stmt::attr_get
  • mysqli_stmt::bind_param »
  • PHP Manual
  • mysqli_stmt
  • Изменяет поведение подготовленного запроса

mysqli_stmt::attr_set

mysqli_stmt_attr_set

(PHP 5, PHP 7)

mysqli_stmt::attr_set -- mysqli_stmt_attr_set — Изменяет поведение подготовленного запроса

Описание

Объектно-ориентированный стиль

mysqli_stmt::attr_set ( int $attr , int $mode ) : bool

Процедурный стиль

mysqli_stmt_attr_set ( mysqli_stmt $stmt , int $attr , int $mode ) : bool

Используется для изменения поведения подготовленного запроса. Эта функция может быть вызвана несколько раз для установки нескольких атрибутов.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

attr

Устанавливаемый атрибут. Он может принимать следующие значения:

Значения атрибута
Символ | Описание
MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH | Если равен TRUE, то mysqli_stmt_store_result() обновляет метаданные значением MYSQL_FIELD->max_length.
MYSQLI_STMT_ATTR_CURSOR_TYPE | Тип указателя, который надо открыть для запроса при вызове mysqli_stmt_execute(). mode может быть MYSQLI_CURSOR_TYPE_NO_CURSOR (по умолчанию) или MYSQLI_CURSOR_TYPE_READ_ONLY.
MYSQLI_STMT_ATTR_PREFETCH_ROWS | Число строк, которые необходимо выбрать с сервера при использовании указателя. mode может быть в диапазоне от 1 максимального значения типа unsigned long. По умолчанию равно 1.

Если используется опция MYSQLI_STMT_ATTR_CURSOR_TYPE вместе с MYSQLI_CURSOR_TYPE_READ_ONLY, то указатель будет открыт для запроса когда будет запущена mysqli_stmt_execute(). Если есть уже открытый указатель от предыдущего запуска mysqli_stmt_execute(), то указатель будет закрыт перед открытием нового. mysqli_stmt_reset() также закрывает любой открытый указатель перед подготовкой запроса перед перезапуском. mysqli_stmt_free_result() закрывает любой открытый указатель.

Если вы открываете указатель для подготовленного запроса, то в использовании mysqli_stmt_store_result() нет необходимости.

mode

Значение присваиваемое атрибуту.

Смотрите также

  • » Connector/MySQL mysql_stmt_attr_set()


Привязка переменных к параметрам подготавливаемого запроса

  • « mysqli_stmt::attr_set
  • mysqli_stmt::bind_result »
  • PHP Manual
  • mysqli_stmt
  • Привязка переменных к параметрам подготавливаемого запроса

mysqli_stmt::bind_param

mysqli_stmt_bind_param

(PHP 5, PHP 7)

mysqli_stmt::bind_param -- mysqli_stmt_bind_param — Привязка переменных к параметрам подготавливаемого запроса

Описание

Объектно-ориентированный стиль

mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] ) : bool

Процедурный стиль

mysqli_stmt_bind_param ( mysqli_stmt $stmt , string $types , mixed &$var1 [, mixed &$... ] ) : bool

Привязывает переменные к меткам параметров в SQL-выражении, которое было подготовлено фукнцией mysqli_prepare().

Замечание:

Если размер данных переменной превышает максимально допустимый размер пакета (max_allowed_packet), необходимо задать значение b параметру types и использовать функцию mysqli_stmt_send_long_data(), которая будет передавать данные пакетами.

Замечание:

При использовании mysqli_stmt_bind_param() совместно с call_user_func_array() необходимо соблюдать особую осторожность. Нужно принимать во внимание, что mysqli_stmt_bind_param() принимает в качестве параметров только ссылки на значения, в то время как call_user_func_array() принимает список параметров, которые могут передаваться как по ссылке, так и по значению.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

types

Строка, содержащая один или более символов, каждый из которых задает тип значения привязываемой переменной:

Символы задающие тип
Символ | Описание
i | соответствующая переменная имеет тип integer
d | соответствующая переменная имеет тип double
s | соответствующая переменная имеет тип string
b | соответствующая переменная является большим двоичным объектом (blob) и будет пересылаться пакетами

var1

Количество переменных и длина строки types должны в точности соответствовать количеству параметров в запросе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %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;

/* выполнение подготовленного запроса */
$stmt->execute();

printf("%d строк вставлено.\n", $stmt->affected_rows);

/* закрываем запрос */
$stmt->close();

/* очищаем таблицу CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d строк удалено.\n", $mysqli->affected_rows);

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

/* проверка подключения */
if (!$link) {
    printf("Не удалось подключиться: %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;

/* выполнение подготовленного запроса */
mysqli_stmt_execute($stmt);

printf("%d строк вставлено.\n", mysqli_stmt_affected_rows($stmt));

/* закрываем запрос */
mysqli_stmt_close($stmt);

/* очищаем таблицу CountryLanguage */
mysqli_query($link, "DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d строк удалено.\n", mysqli_affected_rows($link));

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

1 строк вставлено.
1 строк удалено.

Смотрите также

  • mysqli_stmt_bind_result() - Привязка переменных к подготовленному запросу для размещения результата
  • mysqli_stmt_execute() - Выполняет подготовленный запрос
  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными
  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_send_long_data() - Отправка данных блоками
  • mysqli_stmt_errno() - Возвращает код ошибки выполнения последнего запроса
  • mysqli_stmt_error() - Возвращает строку с пояснением последней ошибки при выполнении запроса


Привязка переменных к подготовленному запросу для размещения результата

  • « mysqli_stmt::bind_param
  • mysqli_stmt::close »
  • PHP Manual
  • mysqli_stmt
  • Привязка переменных к подготовленному запросу для размещения результата

mysqli_stmt::bind_result

mysqli_stmt_bind_result

(PHP 5, PHP 7)

mysqli_stmt::bind_result -- mysqli_stmt_bind_result — Привязка переменных к подготовленному запросу для размещения результата

Описание

Объектно-ориентированный стиль

mysqli_stmt::bind_result ( mixed &$var1 [, mixed &$... ] ) : bool

Процедурный стиль

mysqli_stmt_bind_result ( mysqli_stmt $stmt , mixed &$var1 [, mixed &$... ] ) : bool

Привязывает столбцы результирующего набора к переменным.

При вызове mysqli_stmt_fetch() для выборки данных, протокол клиент-серверного взаимодействия MySQL помещает выбранные данные в переменные var1, ..., привязанные к столбцам результата выборки.

Замечание:

Следует заметить, что все столбцы должны быть привязаны к переменным после вызова mysqli_stmt_execute() и до вызова mysqli_stmt_fetch(). В зависимости от типов данных столбцов привязанные переменные могут неявно изменять свой PHP тип.

Столбцы можно привязывать и перепривязывать многократно, даже когда результирующий набор уже частично выбран. Новая привязка даст эффект при следующем вызове mysqli_stmt_fetch().

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

var1

Привязываемая переменная.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* подготовка запроса */
if ($stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    $stmt->execute();

    /* привязка переменных к запросу */
    $stmt->bind_result($col1, $col2);

    /* выборка данных */
    while ($stmt->fetch()) {
        printf("%s %s\n", $col1, $col2);
    }

    /* закрываем запрос */
    $stmt->close();
}
/* закрываем подключение */
$mysqli->close();

?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* попытка подключения */
if (!$link) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* подготовка запроса */
if ($stmt = mysqli_prepare($link, "SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    mysqli_stmt_execute($stmt);

    /* привязка переменных к запросу */
    mysqli_stmt_bind_result($stmt, $col1, $col2);

    /* выборка данных */
    while (mysqli_stmt_fetch($stmt)) {
        printf("%s %s\n", $col1, $col2);
    }

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

AFG Afghanistan
ALB Albania
DZA Algeria
ASM American Samoa
AND Andorra

Смотрите также

  • mysqli_stmt_get_result() - Получает результат из подготовленного запроса
  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса
  • mysqli_stmt_execute() - Выполняет подготовленный запрос
  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными
  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_prepare() - Подготовка SQL-запроса к выполнению
  • mysqli_stmt_init() - Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare
  • mysqli_stmt_errno() - Возвращает код ошибки выполнения последнего запроса
  • mysqli_stmt_error() - Возвращает строку с пояснением последней ошибки при выполнении запроса


Закрывает подготовленный запрос

  • « mysqli_stmt::bind_result
  • mysqli_stmt::__construct »
  • PHP Manual
  • mysqli_stmt
  • Закрывает подготовленный запрос

mysqli_stmt::close

mysqli_stmt_close

(PHP 5, PHP 7)

mysqli_stmt::close -- mysqli_stmt_close — Закрывает подготовленный запрос

Описание

Объектно-ориентированный стиль

mysqli_stmt::close ( void ) : bool

Процедурный стиль

mysqli_stmt_close ( mysqli_stmt $stmt ) : bool

Закрывает подготовленный запрос. mysqli_stmt_close() также освобождает дескриптор запроса. Если по текущему запросу получен результат, то эта функция очищает его для того, чтобы мог быть выполнен следующий запрос.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению


Конструктор для объекта mysqli_stmt

  • « mysqli_stmt::close
  • mysqli_stmt::data_seek »
  • PHP Manual
  • mysqli_stmt
  • Конструктор для объекта mysqli_stmt

mysqli_stmt::__construct

(PHP 5, PHP 7)

mysqli_stmt::__construct — Конструктор для объекта mysqli_stmt

Описание

mysqli_stmt::__construct ( mysqli $link [, string $query ] )

Этот метод создает новый объект класса mysqli_stmt.

Замечание:

В общем случае, для создания объекта mysqli_stmt, вместо прямого инстанцирования через конструктор (new mysqli_stmt), рекомендуется использовать функции mysqli_prepare() или mysqli_stmt_init(). Этот метод (как и в принципе возможность прямого инстанцирования mysqli_stmt) в будущем может быть объявлен устаревшим и удален.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

query

Строка, содержащая SQL-запрос. Если данный параметр не указан, то результат будет аналогичен вызову mysqli_stmt_init(). Если указан, то результат будет аналогичен вызову mysqli_prepare().

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_init() - Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare


Переход к заданной строке в результирующем наборе

  • « mysqli_stmt::__construct
  • mysqli_stmt::$errno »
  • PHP Manual
  • mysqli_stmt
  • Переход к заданной строке в результирующем наборе

mysqli_stmt::data_seek

mysqli_stmt_data_seek

(PHP 5, PHP 7)

mysqli_stmt::data_seek -- mysqli_stmt_data_seek — Переход к заданной строке в результирующем наборе

Описание

Объектно-ориентированный стиль

mysqli_stmt::data_seek ( int $offset ) : void

Процедурный стиль

mysqli_stmt_data_seek ( mysqli_stmt $stmt , int $offset ) : void

Перемещает указатель на заданную строку в результирующем наборе.

mysqli_stmt_store_result() must be called prior to mysqli_stmt_data_seek().

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

offset

Значение должно быть в диапазоне от 0 до числа строк минус один (0.. mysqli_stmt_num_rows() - 1).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* открываем соединение */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* выполняем запрос */
    $stmt->execute();

    /* привязываем переменные к результату запроса */
    $stmt->bind_result($name, $code);

    /* помещаем результаты запроса в переменные */
    $stmt->store_result();

    /* переходим к строке 400 результирующей таблицы */
    $stmt->data_seek(399);

    /* извлекаем данные */
    $stmt->fetch();

    printf ("Город: %s  Код страны: %s\n", $name, $code);

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* открываем соединение */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* выполняем запрос */
    mysqli_stmt_execute($stmt);

    /* привязываем переменные к результату запроса */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* помещаем результаты запроса в переменные */
    mysqli_stmt_store_result($stmt);

    /* переходим к строке 400 результирующей таблицы */
    mysqli_stmt_data_seek($stmt, 399);

    /* извлекаем данные */
    mysqli_stmt_fetch($stmt);

    printf ("Город: %s  Код страны: %s\n", $name, $code);

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Город: Benin City  Код страны: NGA

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению


Возвращает код ошибки выполнения последнего запроса

  • « mysqli_stmt::data_seek
  • mysqli_stmt::$error_list »
  • PHP Manual
  • mysqli_stmt
  • Возвращает код ошибки выполнения последнего запроса

mysqli_stmt::$errno

mysqli_stmt_errno

(PHP 5, PHP 7)

mysqli_stmt::$errno -- mysqli_stmt_errno — Возвращает код ошибки выполнения последнего запроса

Описание

Объектно-ориентированный стиль

int $mysqli_stmt->errno;

Процедурный стиль

mysqli_stmt_errno ( mysqli_stmt $stmt ) : int

Возвращает код ошибки для последнего вызова функции, которая могла завершиться удачно или неудачно.

Список клиентских кодов ошибок приведен в заголовочном файле MySQL errmsg.h, серверные ошибки перечислены в mysqld_error.h. В файле документации к MySQL Docs/mysqld_error.txt можно найти полный список возможных кодов и сообщений об ошибках.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Код ошибки. Ноль означает отсутствие ошибок.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* открываем соединение */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %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)) {

    /* удаляем таблицу */
    $mysqli->query("DROP TABLE myCountry");

    /* выполняем запрос */
    $stmt->execute();

    printf("Ошибка: %d.\n", $stmt->errno);

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* открываем соединение */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %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)) {

    /* удаляем таблицу */
    mysqli_query($link, "DROP TABLE myCountry");

    /* выполняем запрос */
    mysqli_stmt_execute($stmt);

    printf("Ошибка: %d.\n", mysqli_stmt_errno($stmt));

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Ошибка: 1146.

Смотрите также

  • mysqli_stmt_error() - Возвращает строку с пояснением последней ошибки при выполнении запроса
  • mysqli_stmt_sqlstate() - Возвращает код ошибки SQLSTATE, вызванной в ходе выполнения последней операции над запросом


Возвращает список ошибок выполнения последнего запроса

  • « mysqli_stmt::$errno
  • mysqli_stmt::$error »
  • PHP Manual
  • mysqli_stmt
  • Возвращает список ошибок выполнения последнего запроса

mysqli_stmt::$error_list

mysqli_stmt_error_list

(PHP 5 >= 5.4.0, PHP 7)

mysqli_stmt::$error_list -- mysqli_stmt_error_list — Возвращает список ошибок выполнения последнего запроса

Описание

Объектно-ориентированный стиль

array $mysqli_stmt->error_list;

Процедурный стиль

mysqli_stmt_error_list ( mysqli_stmt $stmt ) : array

Возвращает список ошибок, возникших при выполнении последней операции над запросом, которая может завершаться успешно или неуспешно.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Список ошибок, каждая из которых представлена в виде массива (array), содержащего код ошибки, сообщение об ошибке, а также код состояния sqlstate.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* открываем соединение */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %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)) {

    /* удаляем таблицу */
    $mysqli->query("DROP TABLE myCountry");

    /* выполняем запрос */
    $stmt->execute();

    echo "Ошибка:\n";
    print_r($stmt->error_list);

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* открываем соединение */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %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)) {

    /* удаляем таблицу */
    mysqli_query($link, "DROP TABLE myCountry");

    /* выполняем запрос */
    mysqli_stmt_execute($stmt);

    echo "Ошибка:\n";
    print_r(mysql_stmt_error_list($stmt));

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Array
(
    [0] => Array
        (
            [errno] => 1146
            [sqlstate] => 42S02
            [error] => Table 'world.myCountry' doesn't exist
        )

)

Смотрите также

  • mysqli_stmt_error() - Возвращает строку с пояснением последней ошибки при выполнении запроса
  • mysqli_stmt_errno() - Возвращает код ошибки выполнения последнего запроса
  • mysqli_stmt_sqlstate() - Возвращает код ошибки SQLSTATE, вызванной в ходе выполнения последней операции над запросом


Возвращает строку с пояснением последней ошибки при выполнении запроса

  • « mysqli_stmt::$error_list
  • mysqli_stmt::execute »
  • PHP Manual
  • mysqli_stmt
  • Возвращает строку с пояснением последней ошибки при выполнении запроса

mysqli_stmt::$error

mysqli_stmt_error

(PHP 5, PHP 7)

mysqli_stmt::$error -- mysqli_stmt_error — Возвращает строку с пояснением последней ошибки при выполнении запроса

Описание

Объектно-ориентированный стиль

string $mysqli_stmt->error;

Процедурный стиль

mysqli_stmt_error ( mysqli_stmt $stmt ) : string

Возвращает строку с сообщением об ошибке для последнего вызова функции, которая могла ее вызвать.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Строка сообщения об ошибке. Пустая строка означает отсутствие ошибок.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* открываем соединение */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %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)) {

    /* удаляем таблицу */
    $mysqli->query("DROP TABLE myCountry");

    /* выполняем запрос */
    $stmt->execute();

    printf("Ошибка: %s.\n", $stmt->error);

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* открываем соединение */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %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)) {

    /* удаляем таблицу */
    mysqli_query($link, "DROP TABLE myCountry");

    /* выполняем запрос */
    mysqli_stmt_execute($stmt);

    printf("Ошибка: %s.\n", mysqli_stmt_error($stmt));

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Ошибка: Table 'world.myCountry' doesn't exist.

Смотрите также

  • mysqli_stmt_errno() - Возвращает код ошибки выполнения последнего запроса
  • mysqli_stmt_sqlstate() - Возвращает код ошибки SQLSTATE, вызванной в ходе выполнения последней операции над запросом


Выполняет подготовленный запрос

  • « mysqli_stmt::$error
  • mysqli_stmt::fetch »
  • PHP Manual
  • mysqli_stmt
  • Выполняет подготовленный запрос

mysqli_stmt::execute

mysqli_stmt_execute

(PHP 5, PHP 7)

mysqli_stmt::execute -- mysqli_stmt_execute — Выполняет подготовленный запрос

Описание

Объектно-ориентированный стиль

mysqli_stmt::execute ( void ) : bool

Процедурный стиль

mysqli_stmt_execute ( mysqli_stmt $stmt ) : bool

Выполняет запрос, который был ранее подготовлен функцией mysqli_prepare(). Если в запросе есть метки параметров, они будут заменены привязанными к ним значениями.

Если выполняются запросы UPDATE, DELETE, или INSERT, то количество измененных строк можно определить функцией mysqli_stmt_affected_rows(). Если запрос возвращает результирующий набор, для извлечения данных из него можно использовать функцию mysqli_stmt_fetch().

Замечание:

Если используется mysqli_stmt_execute(), то прежде чем выполнить следующий запрос, необходимо выбрать все данные из текущего результирующего набора функцией mysqli_stmt_fetch().

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* подготавливаем запрос на вставку строк */
$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';

/* выполняем запрос */
$stmt->execute();

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* выполняем запрос */
$stmt->execute();

/* закрываем запрос */
$stmt->close();

/* получаем все строки из таблицы 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]);
    }
    /* очищаем результирующий набор */
    $result->close();
}

/* удаляем таблицу */
$mysqli->query("DROP TABLE myCity");

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* подготавливаем запрос на вставку строк */
$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';

/* выполняем запрос */
mysqli_stmt_execute($stmt);

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* выполняем запрос */
mysqli_stmt_execute($stmt);

/* закрываем запрос */
mysqli_stmt_close($stmt);

/* получаем все строки из таблицы 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]);
    }
    /* очищаем результирующий набор */
    mysqli_free_result($result);
}

/* удаляем таблицу */
mysqli_query($link, "DROP TABLE myCity");

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Stuttgart (DEU,Baden-Wuerttemberg)
Bordeaux (FRA,Aquitaine)

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса
  • mysqli_stmt_get_result() - Получает результат из подготовленного запроса


Связывает результаты подготовленного выражения с переменными

  • « mysqli_stmt::execute
  • mysqli_stmt::$field_count »
  • PHP Manual
  • mysqli_stmt
  • Связывает результаты подготовленного выражения с переменными

mysqli_stmt::fetch

mysqli_stmt_fetch

(PHP 5, PHP 7)

mysqli_stmt::fetch -- mysqli_stmt_fetch — Связывает результаты подготовленного выражения с переменными

Описание

Объектно-ориентированный стиль

mysqli_stmt::fetch ( void ) : bool

Процедурный стиль

mysqli_stmt_fetch ( mysqli_stmt $stmt ) : bool

Связывает результаты подготовленного выражения с переменными, определенными с помощью mysqli_stmt_bind_result().

Замечание:

Необходимо отметить, что все столбцы должны быть связаны перед вызовом mysqli_stmt_fetch().

Замечание:

Данные не буферизуются при передаче, когда вызывается mysqli_stmt_store_result(), что снижает производительность (но также снижает затраты памяти).

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращаемые значения
Значение | Описание
TRUE | Успех. Данные были выбраны
FALSE | Произошла ошибка
NULL | Больше нет строк/данных или произошло усечение данных

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Попытка соединения не удалась: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = $mysqli->prepare($query)) {

    /* Запустить выражение */
    $stmt->execute();

    /* Определить переменные для результата */
    $stmt->bind_result($name, $code);

    /* Выбрать значения */
    while ($stmt->fetch()) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* Завершить запрос */
    $stmt->close();
}

/* Закрыть соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Попытка соединения не удалась: %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)) {

    /* Запустить запрос */
    mysqli_stmt_execute($stmt);

    /* Определить переменные для результата */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* Выбрать значения */
    while (mysqli_stmt_fetch($stmt)) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* Завершить запрос */
    mysqli_stmt_close($stmt);
}

/* Закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Rockford (USA)
Tallahassee (USA)
Salinas (USA)
Santa Clarita (USA)
Springfield (USA)

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_errno() - Возвращает код ошибки выполнения последнего запроса
  • mysqli_stmt_error() - Возвращает строку с пояснением последней ошибки при выполнении запроса
  • mysqli_stmt_bind_result() - Привязка переменных к подготовленному запросу для размещения результата


Возвращает число полей в заданном выражении

  • « mysqli_stmt::fetch
  • mysqli_stmt::free_result »
  • PHP Manual
  • mysqli_stmt
  • Возвращает число полей в заданном выражении

mysqli_stmt::$field_count

mysqli_stmt_field_count

(PHP 5, PHP 7)

mysqli_stmt::$field_count -- mysqli_stmt_field_count — Возвращает число полей в заданном выражении

Описание

Объектно-ориентированный стиль

int $mysqli_stmt->field_count;

Процедурный стиль

mysqli_stmt_field_count ( mysqli_stmt $stmt ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Освобождает память от результата запроса, указанного дескриптором

  • « mysqli_stmt::$field_count
  • mysqli_stmt::get_result »
  • PHP Manual
  • mysqli_stmt
  • Освобождает память от результата запроса, указанного дескриптором

mysqli_stmt::free_result

mysqli_stmt_free_result

(PHP 5, PHP 7)

mysqli_stmt::free_result -- mysqli_stmt_free_result — Освобождает память от результата запроса, указанного дескриптором

Описание

Объектно-ориентированный стиль

mysqli_stmt::free_result ( void ) : void

Процедурный стиль

mysqli_stmt_free_result ( mysqli_stmt $stmt ) : void

Освобождает от результата запроса память, которая была зарезервирована с помощью mysqli_stmt_store_result().

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • mysqli_stmt_store_result() - Передает результирующий набор запроса на клиента


Получает результат из подготовленного запроса

  • « mysqli_stmt::free_result
  • mysqli_stmt::get_warnings »
  • PHP Manual
  • mysqli_stmt
  • Получает результат из подготовленного запроса

mysqli_stmt::get_result

mysqli_stmt_get_result

(PHP 5 >= 5.3.0, PHP 7)

mysqli_stmt::get_result -- mysqli_stmt_get_result — Получает результат из подготовленного запроса

Описание

Объектно-ориентированный стиль

mysqli_stmt::get_result ( void ) : mysqli_result

Процедурный стиль

mysqli_stmt_get_result ( mysqli_stmt $stmt ) : mysqli_result

Получает результат из подготовленного запроса.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает результат для успешных запросов типа SELECT и FALSE для любых запросов DML (INSERT, UPDATE, DELETE), либо в случае ошибки. Для точного установления причины получения FALSE необходимо воспользоваться функцией mysqli_errno().

Только для MySQL Native Driver

Доступно только с расширением mysqlnd.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$mysqli = new mysqli("127.0.0.1", "user", "password", "world");

if($mysqli->connect_error)
{
    die("$mysqli->connect_errno: $mysqli->connect_error");
}

$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt = $mysqli->stmt_init();
if(!$stmt->prepare($query))
{
    print "Ошибка подготовки запроса\n";
}
else
{
    $stmt->bind_param("s", $continent);

    $continent_array = array('Europe','Africa','Asia','North America');

    foreach($continent_array as $continent)
    {
        $stmt->execute();
        $result = $stmt->get_result();
        while ($row = $result->fetch_array(MYSQLI_NUM))
        {
            foreach ($row as $r)
            {
                print "$r ";
            }
            print "\n";
        }
    }
}

$stmt->close();
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php

$link = mysqli_connect("127.0.0.1", "user", "password", "world");

if (!$link)
{
    $error = mysqli_connect_error();
    $errno = mysqli_connect_errno();
    print "$errno: $error\n";
    exit();
}

$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt = mysqli_stmt_init($link);
if(!mysqli_stmt_prepare($stmt, $query))
{
    print "Ошибка подготовки запроса\n";
}
else
{
    mysqli_stmt_bind_param($stmt, "s", $continent);

    $continent_array = array('Europe','Africa','Asia','North America');

    foreach($continent_array as $continent)
    {
        mysqli_stmt_execute($stmt);
        $result = mysqli_stmt_get_result($stmt);
        while ($row = mysqli_fetch_array($result, MYSQLI_NUM))
        {
            foreach ($row as $r)
            {
                print "$r ";
            }
            print "\n";
        }
    }
}
mysqli_stmt_close($stmt);
mysqli_close($link);
?>

Результат выполнения данных примеров:

Albania 3401200 Europe
Algeria 31471000 Africa
Afghanistan 22720000 Asia
Anguilla 8000 North America

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_result_metadata() - Возвращает метаданные результирующей таблицы подготавливаемого запроса
  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными
  • mysqli_fetch_array() - Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
  • mysqli_stmt_store_result() - Передает результирующий набор запроса на клиента
  • mysqli_errno() - Возвращает код ошибки последнего вызова функции


Получает результат от SHOW WARNINGS

  • « mysqli_stmt::get_result
  • mysqli_stmt::$insert_id »
  • PHP Manual
  • mysqli_stmt
  • Получает результат от SHOW WARNINGS

mysqli_stmt::get_warnings

mysqli_stmt_get_warnings

(PHP 5 >= 5.1.0, PHP 7)

mysqli_stmt::get_warnings -- mysqli_stmt_get_warnings — Получает результат от SHOW WARNINGS

Описание

Объектно-ориентированный стиль

mysqli_stmt::get_warnings ( void ) : object

Процедурный стиль

mysqli_stmt_get_warnings ( mysqli_stmt $stmt ) : object
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получает ID, сгенерированный предыдущей операцией INSERT

  • « mysqli_stmt::get_warnings
  • mysqli_stmt::more_results »
  • PHP Manual
  • mysqli_stmt
  • Получает ID, сгенерированный предыдущей операцией INSERT

mysqli_stmt::$insert_id

mysqli_stmt_insert_id

(PHP 5, PHP 7)

mysqli_stmt::$insert_id -- mysqli_stmt_insert_id — Получает ID, сгенерированный предыдущей операцией INSERT

Описание

Объектно-ориентированный стиль

int $mysqli_stmt->insert_id;

Процедурный стиль

mysqli_stmt_insert_id ( mysqli_stmt $stmt ) : mixed
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Проверяет, есть ли еще наборы строк в результате мультизапроса

  • « mysqli_stmt::$insert_id
  • mysqli_stmt::next_result »
  • PHP Manual
  • mysqli_stmt
  • Проверяет, есть ли еще наборы строк в результате мультизапроса

mysqli_stmt::more_results

mysqli_stmt_more_results

(PHP 5 >= 5.3.0, PHP 7)

mysqli_stmt::more_results -- mysqli_stmt_more_results — Проверяет, есть ли еще наборы строк в результате мультизапроса

Описание

Объектно-ориентированный стиль (method):

public mysqli_stmt::more_results ( void ) : bool

Процедурный стиль:

mysqli_stmt_more_results ( mysql_stmt $stmt ) : bool

Проверяет, есть ли еще наборы строк в результате мультизапроса.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает TRUE, если еще есть доступные результирующие наборы, FALSE в противном случае.

Только для MySQL Native Driver

Доступно только с расширением mysqlnd.

Смотрите также

  • mysqli_stmt::next_result() - Читает следующий набор строк из мультизапроса
  • mysqli::multi_query() - Выполняет запрос к базе данных


Читает следующий набор строк из мультизапроса

  • « mysqli_stmt::more_results
  • mysqli_stmt::$num_rows »
  • PHP Manual
  • mysqli_stmt
  • Читает следующий набор строк из мультизапроса

mysqli_stmt::next_result

mysqli_stmt_next_result

(PHP 5 >= 5.3.0, PHP 7)

mysqli_stmt::next_result -- mysqli_stmt_next_result — Читает следующий набор строк из мультизапроса

Описание

Объектно-ориентированный стиль (method):

public mysqli_stmt::next_result ( void ) : bool

Процедурный стиль:

mysqli_stmt_next_result ( mysql_stmt $stmt ) : bool

Читает следующий набор строк из мультизапроса.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает ошибку уровня E_STRICT, если нет доступного результирующего набора. Следует проверять наличие доступных наборов функцией mysqli_stmt::more_results() непосредственно перед вызовом mysqli_stmt::next_result().

Только для MySQL Native Driver

Доступно только с расширением mysqlnd.

Смотрите также

  • mysqli_stmt::more_results() - Проверяет, есть ли еще наборы строк в результате мультизапроса
  • mysqli::multi_query() - Выполняет запрос к базе данных


Возвращает число строк в результате запроса

  • « mysqli_stmt::next_result
  • mysqli_stmt::$param_count »
  • PHP Manual
  • mysqli_stmt
  • Возвращает число строк в результате запроса

mysqli_stmt::$num_rows

mysqli_stmt::num_rows

mysqli_stmt_num_rows

(PHP 5, PHP 7)

mysqli_stmt::$num_rows -- mysqli_stmt::num_rows -- mysqli_stmt_num_rows — Возвращает число строк в результате запроса

Описание

Объектно-ориентированный стиль

int $mysqli_stmt->num_rows;
mysqli_stmt::num_rows ( void ) : int

Процедурный стиль

mysqli_stmt_num_rows ( mysqli_stmt $stmt ) : int

Возвращает число строк в результате запроса. Результат выполнения mysqli_stmt_num_rows() зависит от того использовалась ли mysqli_stmt_store_result() для буферизации результата выборки в дескрипторе.

Если используется mysqli_stmt_store_result(), mysqli_stmt_num_rows() может быть вызвана в тот же момент.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Целое число, отражающее число строк в результате запроса.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Открыть соединение */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Ошибка соединения: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* Выполнить запрос */
    $stmt->execute();

    /* Сохранить результат */
    $stmt->store_result();

    printf("Число строк: %d.\n", $stmt->num_rows);

    /* Закрыть выражение */
    $stmt->close();
}

/* Закрыть соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* Открыть соединение */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Ошибка соединения: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* Выполнить запрос */
    mysqli_stmt_execute($stmt);

    /* Сохранить результат */
    mysqli_stmt_store_result($stmt);

    printf("Число строк: %d.\n", mysqli_stmt_num_rows($stmt));

    /* Закрыть выражение */
    mysqli_stmt_close($stmt);
}

/* Закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Число строк: 20.

Смотрите также

  • mysqli_stmt_affected_rows() - Возвращает общее количество строк, измененных, удаленных или добавленных последним выполненным выражением
  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_store_result() - Передает результирующий набор запроса на клиента


Возвращает количество параметров в запросе

  • « mysqli_stmt::$num_rows
  • mysqli_stmt::prepare »
  • PHP Manual
  • mysqli_stmt
  • Возвращает количество параметров в запросе

mysqli_stmt::$param_count

mysqli_stmt_param_count

(PHP 5, PHP 7)

mysqli_stmt::$param_count -- mysqli_stmt_param_count — Возвращает количество параметров в запросе

Описание

Объектно-ориентированный стиль

int $mysqli_stmt->param_count;

Процедурный стиль

mysqli_stmt_param_count ( mysqli_stmt $stmt ) : int

Возвращает количество меток параметров в подготовленном запросе.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает целое число равное количеству параметров.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = $mysqli->prepare("SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    $marker = $stmt->param_count;
    printf("В запросе %d меток.\n", $marker);

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %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("В запросе %d меток.\n", $marker);

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

В запросе 2 меток.

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению


Подготовка SQL-запроса к выполнению

  • « mysqli_stmt::$param_count
  • mysqli_stmt::reset »
  • PHP Manual
  • mysqli_stmt
  • Подготовка SQL-запроса к выполнению

mysqli_stmt::prepare

mysqli_stmt_prepare

(PHP 5, PHP 7)

mysqli_stmt::prepare -- mysqli_stmt_prepare — Подготовка SQL-запроса к выполнению

Описание

Объектно-ориентированный стиль

mysqli_stmt::prepare ( string $query ) : mixed

Процедурный стиль

mysqli_stmt_prepare ( mysqli_stmt $stmt , string $query ) : bool

Подготавливает SQL-запрос, переданный в виде строки с завершающим нулем.

Метки параметров должны быть связаны с переменными приложения функциями mysqli_stmt_bind_param() и/или mysqli_stmt_bind_result() до запуска запроса или выборки строк.

Замечание:

В случае, если длина выражения, которое вы передаете в mysqli_stmt_prepare(), больше, чем max_allowed_packet сервера, возвращаемые коды ошибки могут различаться в зависимости от используемого драйвера. А это может быть либо родной MySQL-драйвер (mysqlnd), либо клиентская библиотека MySQL (libmysqlclient). Поведение функции будет следующим:

  • mysqlnd на платформе Linux возвращает код ошибки 1153. Сообщение об ошибке означает размер пакета превышает max_allowed_packet байт.

  • mysqlnd на платформе Windows возвращает код ошибки 2006. Это сообщение об ошибке означает сервер недоступен.

  • libmysqlclient на всех платформах возвращает код ошибки 2006. Это сообщение об ошибке означает сервер недоступен.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

query

Текст запроса в виде строки. Запрос должен состоять из одного SQL-выражения.

Запрос может содержать одну или несколько меток параметров SQL-запроса. Эти метки можно добавить путем встраивания знаков вопроса (?) в места выражения, где требуется подставлять параметры.

Замечание:

Нет необходимости в завершающей точке с запятой или символе \g в конце выражения.

Замечание:

Метки параметров запроса можно встраивать только в определенные места в выражении. Например, они допустимы в списке VALUES() выражения INSERT (чтобы задать значения столбцов для строки), или в операциях сравнения предложения WHERE для задания сравниваемого значения.

Однако, эти метки недопустимы в качестве идентификаторов (таких как имена столбцов или таблиц), а также в списке псевдонимов столбцов предложения SELECT. Нельзя также использовать параметры для задания обоих операндов бинарного оператора (например, знак равенства =). Последнее ограничение необходимо, так как в противном случае невозможно будет определить тип операндов. В основном, параметры допустимы в выражениях языка манипулирования данными (DML), и недопустимы в выражениях языка определения данных (DDL).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* создаем подготавливаемый запрос */
$stmt =  $mysqli->stmt_init();
if ($stmt->prepare("SELECT District FROM City WHERE Name=?")) {

    /* привязываем переменные к параметрам */
    $stmt->bind_param("s", $city);

    /* выполняем запрос */
    $stmt->execute();

    /* привязываем результаты к переменным */
    $stmt->bind_result($district);

    /* выбираем данные из результата */
    $stmt->fetch();

    printf("%s находится в округе %s\n", $city, $district);

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* создаем подготавливаемый запрос */
$stmt = mysqli_stmt_init($link);
if (mysqli_stmt_prepare($stmt, 'SELECT District FROM City WHERE Name=?')) {

    /* привязываем переменные к параметрам */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* выполняем запрос */
    mysqli_stmt_execute($stmt);

    /* привязываем результаты к переменным */
    mysqli_stmt_bind_result($stmt, $district);

    /* выбираем данные из результата */
    mysqli_stmt_fetch($stmt);

    printf("%s находится в округе %s\n", $city, $district);

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Amersfoort находится в округе Utrecht

Смотрите также

  • mysqli_stmt_init() - Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare
  • mysqli_stmt_execute() - Выполняет подготовленный запрос
  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными
  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса
  • mysqli_stmt_bind_result() - Привязка переменных к подготовленному запросу для размещения результата
  • mysqli_stmt_get_result() - Получает результат из подготовленного запроса
  • mysqli_stmt_close() - Закрывает подготовленный запрос


Сбрасывает результаты выполнения подготовленного запроса

  • « mysqli_stmt::prepare
  • mysqli_stmt::result_metadata »
  • PHP Manual
  • mysqli_stmt
  • Сбрасывает результаты выполнения подготовленного запроса

mysqli_stmt::reset

mysqli_stmt_reset

(PHP 5, PHP 7)

mysqli_stmt::reset -- mysqli_stmt_reset — Сбрасывает результаты выполнения подготовленного запроса

Описание

Объектно-ориентированный стиль

mysqli_stmt::reset ( void ) : bool

Процедурный стиль

mysqli_stmt_reset ( mysqli_stmt $stmt ) : bool

Сбрасывает результаты выполнения подготовленного запроса на клиенте и на сервере и переводит запрос в состояние, как после подготовки.

Сбрасывает запрос на сервере, а также данные, переданные на сервер функцией mysqli_stmt_send_long_data(), очищает буфер результатов запроса и текущие ошибки. Функция не удаляет привязки параметров запроса, а также переданные на клиента результирующие наборы. Содержащиеся на клиенте результирующие наборы будут очищены при следующем выполнении запроса (или его закрытии).

Для подготовки запроса с другим SQL-текстом, используйте функцию mysqli_stmt_prepare().

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению


Возвращает метаданные результирующей таблицы подготавливаемого запроса

  • « mysqli_stmt::reset
  • mysqli_stmt::send_long_data »
  • PHP Manual
  • mysqli_stmt
  • Возвращает метаданные результирующей таблицы подготавливаемого запроса

mysqli_stmt::result_metadata

mysqli_stmt_result_metadata

(PHP 5, PHP 7)

mysqli_stmt::result_metadata -- mysqli_stmt_result_metadata — Возвращает метаданные результирующей таблицы подготавливаемого запроса

Описание

Объектно-ориентированный стиль

mysqli_stmt::result_metadata ( void ) : mysqli_result

Процедурный стиль

mysqli_stmt_result_metadata ( mysqli_stmt $stmt ) : mysqli_result

Если запрос, переданный в mysqli_prepare(), генерирует результирующую таблицу, mysqli_stmt_result_metadata() возвращает объект, с помощью которого можно получить описание этого результирующего набора. В частности, можно получить количество полей и описание каждого отдельного поля.

Замечание:

Полученный объектный указатель можно передавать в качестве аргумента в функции обработки метаданных результирующих таблиц, как например:

  • 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()

После завершения работы с этим объектом, занимаемую им память необходимо освободить. Сделать это можно, передав объектный указатель в функцию mysqli_free_result().

Замечание:

Результирующий набор, возвращаемый из mysqli_stmt_result_metadata(), содержит только метаданные. В нем не будет строк выборки. Результаты запроса можно получить с помощью функции mysqli_stmt_fetch().

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает объект или FALSE случае ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?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();

/* получаем результирующий набор метаданных */
$result = $stmt->result_metadata();

/* извлекаем информацию о столбце из метаданных */
$field = $result->fetch_field();

printf("Имя столбца: %s\n", $field->name);

/* закрываем результирующий набор */
$result->close();

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?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);

/* получаем результирующий набор метаданных */
$result = mysqli_stmt_result_metadata($stmt);

/* извлекаем информацию о столбце из метаданных */
$field = mysqli_fetch_field($result);

printf("Имя столбца: %s\n", $field->name);

/* закрываем результирующий набор */
mysqli_free_result($result);

/* закрываем подключение */
mysqli_close($link);
?>

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_free_result() - Освобождает память, занятую результатами запроса


Отправка данных блоками

  • « mysqli_stmt::result_metadata
  • mysqli_stmt::$sqlstate »
  • PHP Manual
  • mysqli_stmt
  • Отправка данных блоками

mysqli_stmt::send_long_data

mysqli_stmt_send_long_data

(PHP 5, PHP 7)

mysqli_stmt::send_long_data -- mysqli_stmt_send_long_data — Отправка данных блоками

Описание

Объектно-ориентированный стиль

mysqli_stmt::send_long_data ( int $param_nr , string $data ) : bool

Процедурный стиль

mysqli_stmt_send_long_data ( mysqli_stmt $stmt , int $param_nr , string $data ) : bool

Позволяет пересылать данные параметра на сервер частями (или чанками), например, когда размер большого объекта (blob) превышает max_allowed_packet. Эту функцию можно запускать многократно, чтобы переслать части символьных или двоичных данных столбца. Данные в столбце должны иметь тип TEXT или BLOB.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

param_nr

Указывает, с каким параметром связаны данные. Параметры нумеруются с нуля.

data

Строка, содержащая пересылаемые данные.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$stmt = $mysqli->prepare("INSERT INTO messages (message) VALUES (?)");
$null = NULL;
$stmt->bind_param("b", $null);
$fp = fopen("messages.txt", "r");
while (!feof($fp)) {
    $stmt->send_long_data(0, fread($fp, 8192));
}
fclose($fp);
$stmt->execute();
?>

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса


Возвращает код ошибки SQLSTATE, вызванной в ходе выполнения последней операции над запросом

  • « mysqli_stmt::send_long_data
  • mysqli_stmt::store_result »
  • PHP Manual
  • mysqli_stmt
  • Возвращает код ошибки SQLSTATE, вызванной в ходе выполнения последней операции над запросом

mysqli_stmt::$sqlstate

mysqli_stmt_sqlstate

(PHP 5, PHP 7)

mysqli_stmt::$sqlstate -- mysqli_stmt_sqlstate — Возвращает код ошибки SQLSTATE, вызванной в ходе выполнения последней операции над запросом

Описание

Объектно-ориентированный стиль

string $mysqli_stmt->sqlstate;

Процедурный стиль

mysqli_stmt_sqlstate ( mysqli_stmt $stmt ) : string

Возвращает строку содержащую код SQLSTATE ошибки, вызванной в результате выполнения последней операции над запросом, которая может завершаться успешно или неуспешно. Этот код состоит из пяти символов. '00000' означает отсутствие ошибок. Значения этого кода определены в стандарте ANSI SQL, а также в ODBC. Полный список возможных кодов можно посмотреть на странице » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает строку, содержащую код ошибки SQLSTATE последней совершенной операции. Этот код состоит из пяти символов. '00000' означает отсутствие ошибок.

Примечания

Замечание:

Следует отметить, что еще не все ошибки MySQL имеют отражение в кодах SQLSTATE. Для таких ошибок используется общий код HY000 (общая ошибка).

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Открываем соединение */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %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)) {

    /* удаляем таблицу */
    $mysqli->query("DROP TABLE myCountry");

    /* выполняем запрос */
    $stmt->execute();

    printf("Ошибка: %s.\n", $stmt->sqlstate);

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* Открываем соединение */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %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)) {

    /* удаляем таблицу */
    mysqli_query($link, "DROP TABLE myCountry");

    /* выполняем запрос */
    mysqli_stmt_execute($stmt);

    printf("Ошибка: %s.\n", mysqli_stmt_sqlstate($stmt));

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Ошибка: 42S02.

Смотрите также

  • mysqli_stmt_errno() - Возвращает код ошибки выполнения последнего запроса
  • mysqli_stmt_error() - Возвращает строку с пояснением последней ошибки при выполнении запроса


Передает результирующий набор запроса на клиента

  • « mysqli_stmt::$sqlstate
  • mysqli_result »
  • PHP Manual
  • mysqli_stmt
  • Передает результирующий набор запроса на клиента

mysqli_stmt::store_result

mysqli_stmt_store_result

(PHP 5, PHP 7)

mysqli_stmt::store_result -- mysqli_stmt_store_result — Передает результирующий набор запроса на клиента

Описание

Объектно-ориентированный стиль

mysqli_stmt::store_result ( void ) : bool

Процедурный стиль

mysqli_stmt_store_result ( mysqli_stmt $stmt ) : bool

Функцию mysqli_stmt_store_result() нужно вызывать после выполнения запросов, возвращающих результирующий набор (SELECT, SHOW, DESCRIBE, EXPLAIN), и только если требуется сохранить результирующий набор целиком на клиенте. Далее, последовательные вызовы mysqli_stmt_fetch() будут возвращать уже буферизованные данные.

Замечание:

В остальных случаях вызывать mysqli_stmt_store_result() нет необходимости. Но если такой вызов совершен, ничего страшного не случится, это не повлияет на производительность и целостность данных. Чтобы убедиться, что запрос вернул результирующий набор, можно воспользоваться функцией mysqli_stmt_result_metadata(), которая в этом случае вернет FALSE.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Открываем соединение */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* выполняем запрос */
    $stmt->execute();

    /* передаем результат */
    $stmt->store_result();

    printf("Количество строк: %d.\n", $stmt->num_rows);

    /* очищаем результат */
    $stmt->free_result();

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* Открываем соединение */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* выполняем запрос */
    mysqli_stmt_execute($stmt);

    /* передаем результат */
    mysqli_stmt_store_result($stmt);

    printf("Количество строк: %d.\n", mysqli_stmt_num_rows($stmt));

    /* очищаем результат */
    mysqli_stmt_free_result($stmt);

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Количество строк: 20.

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_result_metadata() - Возвращает метаданные результирующей таблицы подготавливаемого запроса
  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными


The mysqli_result class

(PHP 5, PHP 7)

Введение

Представляет результирующий набор, полученный из запроса в базу данных.

Список изменений

Список изменений
Версия | Описание
5.4.0 | Добавлена поддержка Iterator, так как mysqli_result теперь реализует Traversable.

Обзор классов

mysqli_result implements Traversable {
/* Свойства */
int $current_field ;
int $field_count;
array $lengths;
int $num_rows;
/* Методы */
data_seek ( int $offset ) : bool
fetch_all ([ int $resulttype = MYSQLI_NUM ] ) : mixed
fetch_array ([ int $resulttype = MYSQLI_BOTH ] ) : mixed
fetch_assoc ( void ) : array
fetch_field_direct ( int $fieldnr ) : object
fetch_field ( void ) : object
fetch_fields ( void ) : array
fetch_object ([ string $class_name = "stdClass" [, array $params ]] ) : object
fetch_row ( void ) : mixed
field_seek ( int $fieldnr ) : bool
free ( void ) : void
}

Содержание

  • mysqli_result::$current_field — Получает смещение указателя по отношению к текущему полю
  • mysqli_result::data_seek — Перемещает указатель результата на выбранную строку
  • mysqli_result::fetch_all — Выбирает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба
  • mysqli_result::fetch_array — Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
  • mysqli_result::fetch_assoc — Извлекает результирующий ряд в виде ассоциативного массива
  • mysqli_result::fetch_field_direct — Получение метаданных конкретного поля
  • mysqli_result::fetch_field — Возвращает следующее поле результирующего набора
  • mysqli_result::fetch_fields — Возвращает массив объектов, представляющих поля результирующего набора
  • mysqli_result::fetch_object — Возвращает текущую строку результирующего набора в виде объекта
  • mysqli_result::fetch_row — Получение строки результирующей таблицы в виде массива
  • mysqli_result::$field_count — Получение количества полей в результирующем наборе
  • mysqli_result::field_seek — Установить указатель поля на определенное смещение
  • mysqli_result::free — Освобождает память, занятую результатами запроса
  • mysqli_result::$lengths — Возвращает длины полей текущей строки результирующего набора
  • mysqli_result::$num_rows — Получает число рядов в результирующей выборке


Получает смещение указателя по отношению к текущему полю

  • « mysqli_result
  • mysqli_result::data_seek »
  • PHP Manual
  • mysqli_result
  • Получает смещение указателя по отношению к текущему полю

mysqli_result::$current_field

mysqli_field_tell

(PHP 5, PHP 7)

mysqli_result::$current_field -- mysqli_field_tell — Получает смещение указателя по отношению к текущему полю

Описание

Объектно-ориентированный стиль

int $mysqli_result->current_field ;

Процедурный стиль

mysqli_field_tell ( mysqli_result $result ) : int

Возвращает позицию указателя поля, используемую при последнем вызове mysqli_fetch_field(). Это значение может быть использовано как аргумент для mysqli_field_seek().

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

Возвращает текущее смещение указателя поля.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Ошибка соединения: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Получить информацию о поле для всех столбцов */
    while ($finfo = $result->fetch_field()) {

        /* Получить смещение указателя поля */
        $currentfield = $result->current_field;

        printf("Столбец %d:\n", $currentfield);
        printf("Имя:     %s\n", $finfo->name);
        printf("Таблица:    %s\n", $finfo->table);
        printf("Макс. длина: %d\n", $finfo->max_length);
        printf("Флаги:    %d\n", $finfo->flags);
        printf("Тип:     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* Закрыть соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Ошибка соединения: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Получить информацию о поле для всех столбцов */
    while ($finfo = mysqli_fetch_field($result)) {

        /* Получить смещение указателя поля */
        $currentfield = mysqli_field_tell($result);

        printf("Столбец %d:\n", $currentfield);
        printf("Имя:     %s\n", $finfo->name);
        printf("Таблица:    %s\n", $finfo->table);
        printf("Макс. длина: %d\n", $finfo->max_length);
        printf("Флаги:    %d\n", $finfo->flags);
        printf("Тип:     %d\n\n", $finfo->type);
    }
    mysqli_free_result($result);
}

/* Закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Столбец 1:
Имя:     Name
Таблица:    Country
Макс. длина: 11
Флаги:    1
Тип:     254

Столбец 2:
Имя:     SurfaceArea
Таблица:    Country
Макс. длина: 10
Флаги:    32769
Тип:     4

Смотрите также

  • mysqli_fetch_field() - Возвращает следующее поле результирующего набора
  • mysqli_field_seek() - Установить указатель поля на определенное смещение


Перемещает указатель результата на выбранную строку

  • « mysqli_result::$current_field
  • mysqli_result::fetch_all »
  • PHP Manual
  • mysqli_result
  • Перемещает указатель результата на выбранную строку

mysqli_result::data_seek

mysqli_data_seek

(PHP 5, PHP 7)

mysqli_result::data_seek -- mysqli_data_seek — Перемещает указатель результата на выбранную строку

Описание

Объектно-ориентированный стиль

mysqli_result::data_seek ( int $offset ) : bool

Процедурный стиль

mysqli_data_seek ( mysqli_result $result , int $offset ) : bool

Функция mysqli_data_seek() перемещает указатель в результате на строку, указанную в параметре offset.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

offset

Смещение. Должно быть между нулем и числом строк в результате минус один (0..mysqli_num_rows() - 1).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Эта функция может быть использована только с буферизованными результатами, которые можно получить использованием функций mysqli_store_result() или mysqli_query().

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Создание подключения */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверка подключения */
if (mysqli_connect_errno()) {
    printf("Соединение не удалось: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($result = $mysqli->query($query)) {

    /* Переход к строке №400 */
    $result->data_seek(399);

    /* Получение строки */
    $row = $result->fetch_row();

    printf ("Город: %s  Код страны: %s\n", $row[0], $row[1]);

    /* Закрытие набора данных */
    $result->close();
}

/* Закрытие соединения */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* Создание подключения */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверка подключения */
if (!$link) {
    printf("Соединение не удалось: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";

if ($result = mysqli_query($link, $query)) {

    /* Переход к строке №400 */
    mysqli_data_seek($result, 399);

    /* Получение строки */
    $row = mysqli_fetch_row($result);

    printf ("Город: %s  Код страны: %s\n", $row[0], $row[1]);

    /* Закрытие набора данных */
    mysqli_free_result($result);
}

/* Закрытие соединения */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Город: Benin City  Код страны: NGA

Смотрите также

  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса
  • mysqli_fetch_row() - Получение строки результирующей таблицы в виде массива
  • mysqli_fetch_array() - Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
  • mysqli_fetch_assoc() - Извлекает результирующий ряд в виде ассоциативного массива
  • mysqli_fetch_object() - Возвращает текущую строку результирующего набора в виде объекта
  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_num_rows() - Получает число рядов в результирующей выборке


Выбирает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба

  • « mysqli_result::data_seek
  • mysqli_result::fetch_array »
  • PHP Manual
  • mysqli_result
  • Выбирает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба

mysqli_result::fetch_all

mysqli_fetch_all

(PHP 5 >= 5.3.0, PHP 7)

mysqli_result::fetch_all -- mysqli_fetch_all — Выбирает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба

Описание

Объектно-ориентированный стиль

mysqli_result::fetch_all ([ int $resulttype = MYSQLI_NUM ] ) : mixed

Процедурный стиль

mysqli_fetch_all ( mysqli_result $result [, int $resulttype = MYSQLI_NUM ] ) : mixed

mysqli_fetch_all() извлекает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

resulttype

Этот необязательный параметр принимает значение константы, которая указывает на тип массива, в который требуется поместить данные. Возможные значения параметра: MYSQLI_ASSOC, MYSQLI_NUM или MYSQLI_BOTH.

Возвращаемые значения

Возвращает массив содержащий ассоциативные или обычные массивы с данными результирующей таблицы.

Только для MySQL Native Driver

Доступно только с расширением mysqlnd.

Так как mysqli_fetch_all() сразу возвращает все строки в виде массива, это может заметно увеличить расходы памяти, нежели несколько запусков функций, вроде mysqli_fetch_array(), которые помещают в массив только одну строку результирующей таблицы. С другой стороны, если требуется многократно переходить от одной строки к другой и выбирать при этом по одной строке, придется каждый раз конструировать новый массив, что тоже не добавит быстродействия. Поэтому, mysqli_fetch_all() нужно использовать только в тех ситуациях, когда весь результирующий набор будет передаваться для обработки в какое-то другое место.

Смотрите также

  • mysqli_fetch_array() - Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
  • mysqli_query() - Выполняет запрос к базе данных


Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба

  • « mysqli_result::fetch_all
  • mysqli_result::fetch_assoc »
  • PHP Manual
  • mysqli_result
  • Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба

mysqli_result::fetch_array

mysqli_fetch_array

(PHP 5, PHP 7)

mysqli_result::fetch_array -- mysqli_fetch_array — Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба

Описание

Объектно-ориентированный стиль

mysqli_result::fetch_array ([ int $resulttype = MYSQLI_BOTH ] ) : mixed

Процедурный стиль

mysqli_fetch_array ( mysqli_result $result [, int $resulttype = MYSQLI_BOTH ] ) : mixed

Возвращает массив, соответствующий выбранной строке или NULL, если в результирующей таблице, представленной параметром result, больше нет доступных строк.

mysqli_fetch_array() является расширенной версией функции mysqli_fetch_row(). Вдобавок к сохранению данных в обычном массиве, mysqli_fetch_array() может сохранять строки в ассоциативном массиве, где имена полей результирующей таблицы будут ключами элементов.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Если два столбца или более имеют одинаковые имена, данные последнего столбца будут перезаписывать данные предыдущих. В таких ситуациях для доступа к данным всех столбцов с одинаковыми именами лучше пользоваться обычными массивами, индексированными номерами столбцов.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

resulttype

Этот необязательный параметр принимает значение константы, которая указывает на тип массива, в который требуется поместить данные. Возможные значения параметра: MYSQLI_ASSOC, MYSQLI_NUM или MYSQLI_BOTH.

При использовании константы MYSQLI_ASSOC функция будет вести себя идентично mysqli_fetch_assoc(), а при MYSQLI_NUM идентично функции mysqli_fetch_row(). При задании MYSQLI_BOTH функция создаст один массив, включающий атрибуты обоих вариантов.

Возвращаемые значения

Возвращает массив строк, соответствующих выбранной строке набора или NULL, если в результирующей таблице больше нет данных.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if ($mysqli->connect_errno) {
    printf("Не удалось подключиться: %s\n", $mysqli->connect_error);
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = $mysqli->query($query);

/* обычный массив */
$row = $result->fetch_array(MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* ассоциативный массив */
$row = $result->fetch_array(MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* ассоциативный и обычный массивы */
$row = $result->fetch_array(MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* очищаем результаты выборки */
$result->free();

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($link, $query);

/* обычный массив */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* ассоциативный массив */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* ассоциативный и обычный массивы */
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* очищаем результаты выборки */
mysqli_free_result($result);

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

Смотрите также

  • mysqli_fetch_assoc() - Извлекает результирующий ряд в виде ассоциативного массива
  • mysqli_fetch_row() - Получение строки результирующей таблицы в виде массива
  • mysqli_fetch_object() - Возвращает текущую строку результирующего набора в виде объекта
  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_data_seek() - Перемещает указатель результата на выбранную строку


Извлекает результирующий ряд в виде ассоциативного массива

  • « mysqli_result::fetch_array
  • mysqli_result::fetch_field_direct »
  • PHP Manual
  • mysqli_result
  • Извлекает результирующий ряд в виде ассоциативного массива

mysqli_result::fetch_assoc

mysqli_fetch_assoc

(PHP 5, PHP 7)

mysqli_result::fetch_assoc -- mysqli_fetch_assoc — Извлекает результирующий ряд в виде ассоциативного массива

Описание

Объектно-ориентированный стиль

mysqli_result::fetch_assoc ( void ) : array

Процедурный стиль

mysqli_fetch_assoc ( mysqli_result $result ) : array

Возвращает ассоциативный массив, соответствующий результирующей выборке или NULL, если других рядов не существует.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

Возвращает ассоциативный массив строк, соответствующий результирующей выборке, где каждый ключ в массиве соответствует имени одного из столбцов выборки или NULL, если других рядов не существует.

Если два или более столбца в выборке имеют одинаковое название полей, то приоритет отдается последнему столбцу. Для доступа к другому столбцу с таким же именем вам необходимо произвести нумерованную выборку с помощью функцию mysqli_fetch_row() или добавить псевдонимы.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if ($mysqli->connect_errno) {
    printf("Соединение не удалось: %s\n", $mysqli->connect_error);
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* извлечение ассоциативного массива */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* удаление выборки */
    $result->free();
}

/* закрытие соединения */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Соединение не удалось: %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)) {

    /* извлечение ассоциативного массива */
    while ($row = mysqli_fetch_assoc($result)) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* удаление выборки */
    mysqli_free_result($result);
}

/* закрытие соединения */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Пример #3 Пример использования mysqli_result с использованием класса iterator

<?php
$c = mysqli_connect('127.0.0.1','user', 'pass');

// Использование итераторов (поддержка была добавлена начиная с PHP 5.4)
foreach ( $c->query('SELECT user,host FROM mysql.user') as $row ) {
    printf("'%s'@'%s'\n", $row['user'], $row['host']);
}

echo "\n==================\n";

// Без использования итераторов
$result = $c->query('SELECT user,host FROM mysql.user');
while ($row = $result->fetch_assoc()) {
    printf("'%s'@'%s'\n", $row['user'], $row['host']);
}

?>

Результатом выполнения данного примера будет что-то подобное:

'root'@'192.168.1.1'
'root'@'127.0.0.1'
'dude'@'localhost'
'lebowski'@'localhost'

==================

'root'@'192.168.1.1'
'root'@'127.0.0.1'
'dude'@'localhost'
'lebowski'@'localhost'

Смотрите также

  • mysqli_fetch_array() - Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
  • mysqli_fetch_row() - Получение строки результирующей таблицы в виде массива
  • mysqli_fetch_object() - Возвращает текущую строку результирующего набора в виде объекта
  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_data_seek() - Перемещает указатель результата на выбранную строку


Получение метаданных конкретного поля

  • « mysqli_result::fetch_assoc
  • mysqli_result::fetch_field »
  • PHP Manual
  • mysqli_result
  • Получение метаданных конкретного поля

mysqli_result::fetch_field_direct

mysqli_fetch_field_direct

(PHP 5, PHP 7)

mysqli_result::fetch_field_direct -- mysqli_fetch_field_direct — Получение метаданных конкретного поля

Описание

Объектно-ориентированный стиль

mysqli_result::fetch_field_direct ( int $fieldnr ) : object

Процедурный стиль

mysqli_fetch_field_direct ( mysqli_result $result , int $fieldnr ) : object

Возвращает информацию о столбце результирующего набора в виде объекта.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

fieldnr

Номер поля. Число должно лежать в диапазоне от 0 до количество полей - 1.

Возвращаемые значения

Возвращает объект содержащий определение поля или FALSE, если поле с номером fieldnr недоступно.

Свойства объекта
Свойство | Описание
name | Имя столбца
orgname | Исходное имя столбца, если у него есть псевдоним
table | Имя таблицы, которой принадлежит столбец (если не вычислено)
orgtable | Исходное имя таблицы, если есть псевдоним
def | Зарезервировано для значения по умолчанию, на данный момент всегда ""
max_length | Максимальная ширина поля результирующего набора.
length | Ширина поля, как она задана при определении таблицы.
charsetnr | Количество наборов символов для поля.
flags | Целое число, представляющее битовые флаги для поля.
type | Тип данных поля
decimals | Число знаков после запятой (для числовых полей)

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* получение метаданных столбца 'SurfaceArea' */
    $finfo = $result->fetch_field_direct(1);

        printf("Имя:         %s\n", $finfo->name);
        printf("Таблица:     %s\n", $finfo->table);
        printf("Макс. длина: %d\n", $finfo->max_length);
        printf("Флаги:       %d\n", $finfo->flags);
        printf("Тип:         %d\n\n", $finfo->type);

    $result->close();
}

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* получение метаданных столбца 'SurfaceArea' */
    $finfo = mysqli_fetch_field_direct($result, 1);

    printf("Имя:         %s\n", $finfo->name);
    printf("Таблица:     %s\n", $finfo->table);
    printf("Макс. длина: %d\n", $finfo->max_length);
    printf("Флаги:       %d\n", $finfo->flags);
    printf("Тип:         %d\n\n", $finfo->type);

    mysqli_free_result($result);
}

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Имя:         SurfaceArea
Таблица:     Country
Макс. длина: 10
Флаги:       32769
Тип:         4

Смотрите также

  • mysqli_num_fields() - Получение количества полей в результирующем наборе
  • mysqli_fetch_field() - Возвращает следующее поле результирующего набора
  • mysqli_fetch_fields() - Возвращает массив объектов, представляющих поля результирующего набора


Возвращает следующее поле результирующего набора

  • « mysqli_result::fetch_field_direct
  • mysqli_result::fetch_fields »
  • PHP Manual
  • mysqli_result
  • Возвращает следующее поле результирующего набора

mysqli_result::fetch_field

mysqli_fetch_field

(PHP 5, PHP 7)

mysqli_result::fetch_field -- mysqli_fetch_field — Возвращает следующее поле результирующего набора

Описание

Объектно-ориентированный стиль

mysqli_result::fetch_field ( void ) : object

Процедурный стиль

mysqli_fetch_field ( mysqli_result $result ) : object

Возвращает информацию об одном столбце результирующего набора в виде объекта. Чтобы получить определения всех столбцов, просто запустите эту функцию многократно.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

Возвращает объект, содержащий определение поля или FALSE, если столбцы в результирующей таблице закончились.

Свойства объекта
Свойство | Описание
name | Имя столбца
orgname | Исходное имя столбца, если у него есть псевдоним
table | Имя таблицы, которой принадлежит столбец (если не вычислено)
orgtable | Исходное имя таблицы, если есть псевдоним
def | Зарезервировано для значения по умолчанию, на данный момент всегда ""
db | База данных (с PHP 5.3.6)
catalog | Имя каталога, всегда "def" (с PHP 5.3.6)
max_length | Максимальная ширина поля результирующего набора.
length | Ширина поля, как она задана при определении таблицы.
charsetnr | Количество наборов символов для поля.
flags | Целое число, представляющее битовые флаги для поля.
type | Тип данных поля
decimals | Число знаков после запятой (для целочисленных полей)

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Получим информацию обо всех столбцах */
    while ($finfo = $result->fetch_field()) {

        printf("Имя:         %s\n", $finfo->name);
        printf("Таблица:     %s\n", $finfo->table);
        printf("Макс. длина: %d\n", $finfo->max_length);
        printf("Флаги:       %d\n", $finfo->flags);
        printf("Тип:         %d\n\n", $finfo->type);
    }
    $result->close();
}

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Получим информацию обо всех столбцах */
    while ($finfo = mysqli_fetch_field($result)) {

        printf("Имя:         %s\n", $finfo->name);
        printf("Таблица:     %s\n", $finfo->table);
        printf("Макс. длина: %d\n", $finfo->max_length);
        printf("Флаги:       %d\n", $finfo->flags);
        printf("Тип:         %d\n\n", $finfo->type);    }
    mysqli_free_result($result);
}

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Имя:         Name
Таблица:     Country
Макс. длина: 11
Флаги:       1
Тип:         254

Имя:         SurfaceArea
Таблица:     Country
Макс. длина: 10
Флаги:       32769
Тип:         4

Смотрите также

  • mysqli_num_fields() - Получение количества полей в результирующем наборе
  • mysqli_fetch_field_direct() - Получение метаданных конкретного поля
  • mysqli_fetch_fields() - Возвращает массив объектов, представляющих поля результирующего набора
  • mysqli_field_seek() - Установить указатель поля на определенное смещение


Возвращает массив объектов, представляющих поля результирующего набора

  • « mysqli_result::fetch_field
  • mysqli_result::fetch_object »
  • PHP Manual
  • mysqli_result
  • Возвращает массив объектов, представляющих поля результирующего набора

mysqli_result::fetch_fields

mysqli_fetch_fields

(PHP 5, PHP 7)

mysqli_result::fetch_fields -- mysqli_fetch_fields — Возвращает массив объектов, представляющих поля результирующего набора

Описание

Объектно-ориентированный стиль

mysqli_result::fetch_fields ( void ) : array

Процедурный стиль

mysqli_fetch_fields ( mysqli_result $result ) : array

Эта функция служит для тех же целей, что и mysqli_fetch_field(), с той лишь разницей, что возвращает не один объект для столбца, а массив таких объектов.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

Возвращает массив объектов, содержащих метаданные полей или FALSE, если доступных столбцов нет.

Свойства объекта
Свойство | Описание
name | Имя столбца
orgname | Исходное имя столбца, если у него есть псевдоним
table | Имя таблицы, которой принадлежит столбец (если не вычислено)
orgtable | Исходное имя таблицы, если есть псевдоним
max_length | Максимальная ширина поля результирующего набора.
length | Длина поля в байтах, как она задана при определении таблицы. Обратите внимание, что данная величина (в байтах) может отличаться от величины в символах, указанной в опредлелении поля таблицы, так как в разных кодировках один символ может может записываться несколькими байтами. Например, поле VARCHAR(10) в кодировке UTF-8 вернет длину 30 = 10 символов * 3 байта на символ, а для кодировки LATIN1 - длину 10, так как в этой кодировке один символ занимает один байт.
charsetnr | Числовой идентификатор кодировки.
flags | Целое число, представляющее битовые флаги для поля.
type | Тип данных поля
decimals | Число знаков после запятой (для целочисленных полей)

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("127.0.0.1", "root", "foofoo", "sakila");

/* Проверяем соединение */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

foreach (array('latin1', 'utf8') as $charset) {

    // Устанавливаем кодировку для демонстрации ее влияния на некоторые
    $mysqli->set_charset($charset);

    $query = "SELECT actor_id, last_name from actor ORDER BY actor_id";

    echo "======================\n";
    echo "Character Set: $charset\n";
    echo "======================\n";

    if ($result = $mysqli->query($query)) {

        /* Читаем информацию по всем столбцам */
        $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("Length:    %d\n",   $val->length);
            printf("charsetnr: %d\n",   $val->charsetnr);
            printf("Flags:     %d\n",   $val->flags);
            printf("Type:      %d\n\n", $val->type);
        }
        $result->free();
    }
}
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "sakila");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

foreach (array('latin1', 'utf8') as $charset) {

    // Устанавливаем кодировку для демонстрации ее влияния на некоторые
    mysqli_set_charset($link, $charset);

    $query = "SELECT actor_id, last_name from actor ORDER BY actor_id";

    echo "======================\n";
    echo "Character Set: $charset\n";
    echo "======================\n";

    if ($result = mysqli_query($link, $query)) {

        /* Читаем информацию по всем столбцам */
        $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("Length:    %d\n",   $val->length);
            printf("charsetnr: %d\n",   $val->charsetnr);
            printf("Flags:     %d\n",   $val->flags);
            printf("Type:      %d\n\n", $val->type);
        }
        mysqli_free_result($result);
    }
}

mysqli_close($link);
?>

Результат выполнения данных примеров:

======================
Character Set: latin1
======================
Name:      actor_id
Table:     actor
Max. Len:  3
Length:    5
charsetnr: 63
Flags:     49699
Type:      2

Name:      last_name
Table:     actor
Max. Len:  12
Length:    45
charsetnr: 8
Flags:     20489
Type:      253

======================
Character Set: utf8
======================
Name:      actor_id
Table:     actor
Max. Len:  3
Length:    5
charsetnr: 63
Flags:     49699
Type:      2

Name:      last_name
Table:     actor
Max. Len:  12
Length:    135
charsetnr: 33
Flags:     20489

Смотрите также

  • mysqli_num_fields() - Получение количества полей в результирующем наборе
  • mysqli_fetch_field_direct() - Получение метаданных конкретного поля
  • mysqli_fetch_field() - Возвращает следующее поле результирующего набора


Возвращает текущую строку результирующего набора в виде объекта

  • « mysqli_result::fetch_fields
  • mysqli_result::fetch_row »
  • PHP Manual
  • mysqli_result
  • Возвращает текущую строку результирующего набора в виде объекта

mysqli_result::fetch_object

mysqli_fetch_object

(PHP 5, PHP 7)

mysqli_result::fetch_object -- mysqli_fetch_object — Возвращает текущую строку результирующего набора в виде объекта

Описание

Объектно-ориентированный стиль

mysqli_result::fetch_object ([ string $class_name = "stdClass" [, array $params ]] ) : object

Процедурный стиль

mysqli_fetch_object ( mysqli_result $result [, string $class_name = "stdClass" [, array $params ]] ) : object

mysqli_fetch_object() вернет текущую строку результирующей таблицы в виде объекта, атрибуты которого будут соответствовать именам столбцов таблицы.

Важно заметить, что mysqli_fetch_object() задает значения свойств объекта до вызова его конструктора.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

class_name

Имя класса, объект которого требуется инстанцировать, задать значения его свойств и вернуть. Если параметр не задан, будет возвращен объект stdClass.

params

Необязательный массив (array) параметров, которые будут переданы конструктору класса class_name.

Возвращаемые значения

Возвращает объект со строковыми свойствами, соответствующими значениям в выбранной строке или NULL, если в результирующем наборе нет доступных строк.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* выборка данных и помещение их в объекты */
    while ($obj = $result->fetch_object()) {
        printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    /* очищаем результирующий набор */
    $result->close();
}

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %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)) {

    /* выборка данных и помещение их в объекты */
    while ($obj = mysqli_fetch_object($result)) {
        printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    /* очищаем результирующий набор */
    mysqli_free_result($result);
}

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Смотрите также

  • mysqli_fetch_array() - Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
  • mysqli_fetch_assoc() - Извлекает результирующий ряд в виде ассоциативного массива
  • mysqli_fetch_row() - Получение строки результирующей таблицы в виде массива
  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_data_seek() - Перемещает указатель результата на выбранную строку


Получение строки результирующей таблицы в виде массива

  • « mysqli_result::fetch_object
  • mysqli_result::$field_count »
  • PHP Manual
  • mysqli_result
  • Получение строки результирующей таблицы в виде массива

mysqli_result::fetch_row

mysqli_fetch_row

(PHP 5, PHP 7)

mysqli_result::fetch_row -- mysqli_fetch_row — Получение строки результирующей таблицы в виде массива

Описание

Объектно-ориентированный стиль

mysqli_result::fetch_row ( void ) : mixed

Процедурный стиль

mysqli_fetch_row ( mysqli_result $result ) : mixed

Выбирает одну строку данных из результирующего набора и возвращает ее в виде массива, в котором индексы элементов соответствуют номерам столбцов (начиная с 0). Каждый последующий вызов функции будет возвращать массив с данными следующей строки набора или NULL, если строки закончились.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

mysqli_fetch_row() возвращает массив строк, соответствующих данным в выбранной строке результирующей таблицы, или NULL, если доступных строк больше нет.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* выборка данных и помещение их в массив */
    while ($row = $result->fetch_row()) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* очищаем результирующий набор */
    $result->close();
}

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %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)) {

    /* выборка данных и помещение их в массив */
    while ($row = mysqli_fetch_row($result)) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* очищаем результирующий набор */
    mysqli_free_result($result);
}

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Смотрите также

  • mysqli_fetch_array() - Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
  • mysqli_fetch_assoc() - Извлекает результирующий ряд в виде ассоциативного массива
  • mysqli_fetch_object() - Возвращает текущую строку результирующего набора в виде объекта
  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_data_seek() - Перемещает указатель результата на выбранную строку


Получение количества полей в результирующем наборе

  • « mysqli_result::fetch_row
  • mysqli_result::field_seek »
  • PHP Manual
  • mysqli_result
  • Получение количества полей в результирующем наборе

mysqli_result::$field_count

mysqli_num_fields

(PHP 5, PHP 7)

mysqli_result::$field_count -- mysqli_num_fields — Получение количества полей в результирующем наборе

Описание

Объектно-ориентированный стиль

int $mysqli_result->field_count;

Процедурный стиль

mysqli_num_fields ( mysqli_result $result ) : int

Возвращает количество полей в результирующем наборе.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

Количество столбцов в результирующей таблице.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* определяем количество стобцов в результирующей таблице */
    $field_cnt = $result->field_count;

    printf("Результат содержит %d полей.\n", $field_cnt);

    /* закрываем результирующий набор */
    $result->close();
}

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* определяем количество стобцов в результирующей таблице */
    $field_cnt = mysqli_num_fields($result);

    printf("Результат содержит %d полей.\n", $field_cnt);

    /* закрываем результирующий набор */
    mysqli_free_result($result);
}

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Результат содержит 5 полей.

Смотрите также

  • mysqli_fetch_field() - Возвращает следующее поле результирующего набора


Установить указатель поля на определенное смещение

  • « mysqli_result::$field_count
  • mysqli_result::free »
  • PHP Manual
  • mysqli_result
  • Установить указатель поля на определенное смещение

mysqli_result::field_seek

mysqli_field_seek

(PHP 5, PHP 7)

mysqli_result::field_seek -- mysqli_field_seek — Установить указатель поля на определенное смещение

Описание

Объектно-ориентированный стиль

mysqli_result::field_seek ( int $fieldnr ) : bool

Процедурный стиль

mysqli_field_seek ( mysqli_result $result , int $fieldnr ) : bool

Устанавливает указатель поля на заданное смещение. Следующий вызов mysqli_fetch_field() позволит получить информацию о столбце с позицией смещения.

Замечание:

Для поиска с начала строки необходимо установить нулевое значение смещения.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

fieldnr

Номер поля. Это значение должно быть в следующем диапазоне: от 0 до число полей - 1.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Ошибка соединения: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Получить информацию о поле во втором столбце */
    $result->field_seek(1);
    $finfo = $result->fetch_field();

    printf("Имя:     %s\n", $finfo->name);
    printf("Таблица:    %s\n", $finfo->table);
    printf("Макс. длина: %d\n", $finfo->max_length);
    printf("Флаги:    %d\n", $finfo->flags);
    printf("Тип:     %d\n\n", $finfo->type);

    $result->close();
}

/* Закрыть соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Ошибка соединения: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Получить информацию о поле во втором столбце */
    mysqli_field_seek($result, 1);
    $finfo = mysqli_fetch_field($result);

    printf("Имя:     %s\n", $finfo->name);
    printf("Таблица:    %s\n", $finfo->table);
    printf("Макс. длина: %d\n", $finfo->max_length);
    printf("Флаги:    %d\n", $finfo->flags);
    printf("Тип:     %d\n\n", $finfo->type);

    mysqli_free_result($result);
}

/* Закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Имя:     SurfaceArea
Таблица:    Country
Макс. длина: 10
Флаги:    32769
Тип:     4

Смотрите также

  • mysqli_fetch_field() - Возвращает следующее поле результирующего набора


Освобождает память, занятую результатами запроса

  • « mysqli_result::field_seek
  • mysqli_result::$lengths »
  • PHP Manual
  • mysqli_result
  • Освобождает память, занятую результатами запроса

mysqli_result::free

mysqli_result::close

mysqli_result::free_result

mysqli_free_result

(PHP 5, PHP 7)

mysqli_result::free -- mysqli_result::close -- mysqli_result::free_result -- mysqli_free_result — Освобождает память, занятую результатами запроса

Описание

Объектно-ориентированный стиль

mysqli_result::free ( void ) : void
mysqli_result::close ( void ) : void
mysqli_result::free_result ( void ) : void

Процедурный стиль

mysqli_free_result ( mysqli_result $result ) : void

Освобождает память, занятую результатами запроса.

Замечание:

Нужно всегда очищать память функцией mysqli_free_result(), если результаты запроса больше не нужны.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_stmt_store_result() - Передает результирующий набор запроса на клиента
  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию


Возвращает длины полей текущей строки результирующего набора

  • « mysqli_result::free
  • mysqli_result::$num_rows »
  • PHP Manual
  • mysqli_result
  • Возвращает длины полей текущей строки результирующего набора

mysqli_result::$lengths

mysqli_fetch_lengths

(PHP 5, PHP 7)

mysqli_result::$lengths -- mysqli_fetch_lengths — Возвращает длины полей текущей строки результирующего набора

Описание

Объектно-ориентированный стиль

array $mysqli_result->lengths;

Процедурный стиль

mysqli_fetch_lengths ( mysqli_result $result ) : array

mysqli_fetch_lengths() возвращает массив, элементы которого представляют длины каждого поля текущей строки результирующего набора.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

Массив целых чисел, представляющих размеры значений столбцов (исключая какие-либо завершающие нуль-символы). FALSE в случае ошибки.

mysqli_fetch_lengths() относится только к текущей строке. Функция вернет FALSE, если будет вызвана до вызова mysqli_fetch_row/array/object или если в результирующем наборе больше нет строк.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = $mysqli->query($query)) {

    $row = $result->fetch_row();

    /* выведем длины полей */
    foreach ($result->lengths as $i => $val) {
        printf("Поле %2d имеет длину %2d\n", $i+1, $val);
    }
    $result->close();
}

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %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);

    /* выведем длины полей */
    foreach (mysqli_fetch_lengths($result) as $i => $val) {
        printf("Поле %2d имеет длину %2d\n", $i+1, $val);
    }
    mysqli_free_result($result);
}

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Поле  1 имеет длину  3
Поле  2 имеет длину  5
Поле  3 имеет длину 13
Поле  4 имеет длину  9
Поле  5 имеет длину  6
Поле  6 имеет длину  1
Поле  7 имеет длину  6
Поле  8 имеет длину  4
Поле  9 имеет длину  6
Поле 10 имеет длину  6
Поле 11 имеет длину  5
Поле 12 имеет длину 44
Поле 13 имеет длину  7
Поле 14 имеет длину  3
Поле 15 имеет длину  2


Получает число рядов в результирующей выборке

  • « mysqli_result::$lengths
  • mysqli_driver »
  • PHP Manual
  • mysqli_result
  • Получает число рядов в результирующей выборке

mysqli_result::$num_rows

mysqli_num_rows

(PHP 5, PHP 7)

mysqli_result::$num_rows -- mysqli_num_rows — Получает число рядов в результирующей выборке

Описание

Объектно-ориентированный стиль

int $mysqli_result->num_rows;

Процедурный стиль

mysqli_num_rows ( mysqli_result $result ) : int

Возвращает число рядов в результирующей выборке.

Поведение функции mysqli_num_rows() зависит от того, используется ли буферизованная или не буферизованная результирующая выборка. Для небуферизованной выборки mysqli_num_rows() не вернет правильное число рядов до тех пор, пока все ряды не будут получены и обработаны.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

Возвращает число рядов в результирующей выборке.

Замечание:

Если число рядов больше чем PHP_INT_MAX, то число будет возвращено в виде строки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Соединение не удалось: %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT Code, Name FROM Country ORDER BY Name")) {

    /* определение числа рядов в выборке */
    $row_cnt = $result->num_rows;

    printf("В выборке %d рядов.\n", $row_cnt);

    /* закрытие выборки */
    $result->close();
}

/* закрытие соединения */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Соединение не удалось: %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name")) {

    /* определение числа рядов в выборке */
    $row_cnt = mysqli_num_rows($result);

    printf("В выборке %d рядов.\n", $row_cnt);

    /* закрытие выборки */
    mysqli_free_result($result);
}

/* закрытие соединения */
mysqli_close($link);
?>

Результат выполнения данных примеров:

В выборке 239 рядов.

Смотрите также

  • mysqli_affected_rows() - Получает число строк, затронутых предыдущей операцией MySQL
  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию
  • mysqli_query() - Выполняет запрос к базе данных


Класс mysqli_driver

(PHP 5, PHP 7)

Введение

MySQLi Driver.

Обзор классов

mysqli_driver {
/* Свойства */
public readonly string $client_info ;
public readonly string $client_version ;
public readonly string $driver_version ;
public readonly string $embedded ;
public bool $reconnect ;
public int $report_mode ;
/* Методы */
embedded_server_end ( void ) : void
embedded_server_start ( int $start , array $arguments , array $groups ) : bool
}

Свойства

client_info

Версия заголовка Client API

client_version

Версия Client

driver_version

Версия MySQLi Driver

embedded

Статус поддержки MySQLi Embedded

reconnect

Разрешить или запретить переподключение (см. INI-директиву mysqli.reconnect)

report_mode

Установить MYSQLI_REPORT_OFF, MYSQLI_REPORT_ALL или любую комбинацию из MYSQLI_REPORT_STRICT (вызов исключений для ошибок), MYSQLI_REPORT_ERROR (сообщение об ошибках) и MYSQLI_REPORT_INDEX (ошибки, связанные с индексами). Смотрите также mysqli_report().

Содержание

  • mysqli_driver::embedded_server_end — Останавливает встроенный сервер
  • mysqli_driver::embedded_server_start — Инициализирует и запускает встроенный сервер
  • mysqli_driver::$report_mode — Включает или отключает внутренние функции протоколирования


Останавливает встроенный сервер

  • « mysqli_driver
  • mysqli_driver::embedded_server_start »
  • PHP Manual
  • mysqli_driver
  • Останавливает встроенный сервер

mysqli_driver::embedded_server_end

mysqli_embedded_server_end

(PHP 5, PHP 7)

mysqli_driver::embedded_server_end -- mysqli_embedded_server_end — Останавливает встроенный сервер

Описание

Объектно-ориентированный стиль

mysqli_driver::embedded_server_end ( void ) : void

Процедурный стиль

mysqli_embedded_server_end ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Инициализирует и запускает встроенный сервер

  • « mysqli_driver::embedded_server_end
  • mysqli_driver::$report_mode »
  • PHP Manual
  • mysqli_driver
  • Инициализирует и запускает встроенный сервер

mysqli_driver::embedded_server_start

mysqli_embedded_server_start

(PHP 5, PHP 7)

mysqli_driver::embedded_server_start -- mysqli_embedded_server_start — Инициализирует и запускает встроенный сервер

Описание

Объектно-ориентированный стиль

mysqli_driver::embedded_server_start ( int $start , array $arguments , array $groups ) : bool

Процедурный стиль

mysqli_embedded_server_start ( int $start , array $arguments , array $groups ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Включает или отключает внутренние функции протоколирования

  • « mysqli_driver::embedded_server_start
  • mysqli_warning »
  • PHP Manual
  • mysqli_driver
  • Включает или отключает внутренние функции протоколирования

mysqli_driver::$report_mode

mysqli_report

(PHP 5, PHP 7)

mysqli_driver::$report_mode -- mysqli_report — Включает или отключает внутренние функции протоколирования

Описание

Объектно-ориентированный стиль

int $mysqli_driver->report_mode ;

Процедурный стиль

mysqli_report ( int $flags ) : bool

Эта функция может оказаться полезной при выполнении запросов на этапе разработки и тестирования. В зависимости от установленных флагов, в протокол будут заноситься ошибки вызовов функций mysqli или сообщения о выполнении запросов не использующих индекс (или использующих неверный индекс).

Список параметров

flags

Поддерживаемые флаги
Имя | Описание
MYSQLI_REPORT_OFF | Отключить протоколирование
MYSQLI_REPORT_ERROR | Заносить в протокол ошибки вызовов функций mysqli
MYSQLI_REPORT_STRICT | Вместо сообщений об ошибках выбрасывать исключение mysqli_sql_exception
MYSQLI_REPORT_INDEX | Заносить в протокол факты использования в запросах неверного индекса (или когда индекс не используется вообще)
MYSQLI_REPORT_ALL | Включить все настройки (заносить в протокол все события)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.4 | Изменен режим протоколирования. Если ранее режим задавался для процесса, то теперь он задается для каждого запроса.
5.2.15 | Изменен режим протоколирования. Если ранее режим задавался для процесса, то теперь он задается для каждого запроса.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* включение протоколирования */
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL;

try {

    /* этот запрос должен отчитаться об ошибке */
    $result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

    /* этот запрос должен отчитаться об использовании неверного индекса */
    $result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");

    $result->close();

    $mysqli->close();

} catch (mysqli_sql_exception $e) {

    echo $e->__toString();
}
?>

Пример #2 Процедурный стиль

<?php
/* включение протоколирования */
mysqli_report(MYSQLI_REPORT_ALL);

$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверка соединения */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* этот запрос должен отчитаться об ошибке */
$result = mysqli_query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* этот запрос должен отчитаться об использовании неверного индекса */
$result = mysqli_query("SELECT Name FROM City WHERE population > 50000");

mysqli_free_result($result);

mysqli_close($link);
?>

Смотрите также

  • mysqli_debug() - Выполняет процедуры отладки
  • mysqli_dump_debug_info() - Журналирование отладочной информации
  • mysqli_sql_exception
  • set_exception_handler() - Задает пользовательский обработчик исключений
  • error_reporting() - Задает, какие ошибки PHP попадут в отчет


Класс mysqli_warning

(PHP 5, PHP 7)

Введение

Представляет предупреждение MySQL.

Обзор классов

mysqli_warning {
/* Свойства */
public $message ;
public $sqlstate ;
public $errno ;
/* Методы */
protected __construct ( void )
public next ( void ) : bool
}

Свойства

message

Строка сообщения

sqlstate

Код SQLstate

errno

Номер ошибки

Содержание

  • mysqli_warning::__construct — Выполняет функции конструктора
  • mysqli_warning::next — Получает следующее предупреждение


Выполняет функции конструктора

  • « mysqli_warning
  • mysqli_warning::next »
  • PHP Manual
  • mysqli_warning
  • Выполняет функции конструктора

mysqli_warning::__construct

(PHP 5, PHP 7)

mysqli_warning::__construct — Выполняет функции конструктора

Описание

protected mysqli_warning::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает следующее предупреждение

  • « mysqli_warning::__construct
  • mysqli_sql_exception »
  • PHP Manual
  • mysqli_warning
  • Получает следующее предупреждение

mysqli_warning::next

(PHP 5, PHP 7)

mysqli_warning::next — Получает следующее предупреждение

Описание

public mysqli_warning::next ( void ) : bool

Изменяет информацию о предупреждении на следующее предупреждение, если это возможно.

После того как предупреждение было установлено на следующее предупреждение, будут доступны новые значения свойств message, sqlstate и errno из mysqli_warning.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если следующее предупреждение было получено успешно. Если больше нет предупреждений, вернет FALSE


Класс mysqli_sql_exception

(PHP 5, PHP 7)

Введение

Класс для обработки исключений mysqli.

Обзор классов

mysqli_sql_exception extends RuntimeException {
/* Свойства */
protected string $sqlstate ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}

Свойства

sqlstate

Код sqlstate.


Синонимы и устаревшие функции Mysqli

Содержание

  • mysqli_bind_param — Синоним функции mysqli_stmt_bind_param
  • mysqli_bind_result — Синоним функции mysqli_stmt_bind_result
  • mysqli_client_encoding — Синоним функции mysqli_character_set_name
  • mysqli_connect — Псевдоним mysqli::__construct
  • mysqli::disable_reads_from_master — Блокирует чтение с мастера
  • mysqli_disable_rpl_parse — Блокировать разбор RPL
  • mysqli_enable_reads_from_master — Включает чтение с мастера
  • mysqli_enable_rpl_parse — Включает разбор RPL
  • mysqli_escape_string — Псевдоним функции mysqli_real_escape_string
  • mysqli_execute — Синоним для mysqli_stmt_execute
  • mysqli_fetch — Синоним для mysqli_stmt_fetch
  • mysqli_get_cache_stats — Возвращает статистические данные о Zval кэше клиента
  • mysqli_get_client_stats — Получить клиентскую попроцессную статистику
  • mysqli_get_links_stats — Возвращает информацию об открытых и закешированных соединениях MySQL
  • mysqli_get_metadata — Синоним для mysqli_stmt_result_metadata
  • mysqli_master_query — Принудительный запуск запроса на хозяине в случае установки хозяин/раб
  • mysqli_param_count — Псевдоним для mysqli_stmt_param_count
  • mysqli_report — Псевдоним mysqli_driver->report_mode
  • mysqli_rpl_parse_enabled — Проверка, включен ли разбор RPL
  • mysqli_rpl_probe — RPL зонд
  • mysqli_send_long_data — Псевдоним для mysqli_stmt_send_long_data
  • mysqli::set_opt — Псевдоним mysqli_options
  • mysqli_slave_query — Принудительный запуск запроса на рабе в установке хозяин/раб


Синоним функции mysqli_stmt_bind_param

  • « Синонимы и устаревшие функции Mysqli
  • mysqli_bind_result »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Синоним функции mysqli_stmt_bind_param

mysqli_bind_param

(PHP 5 < 5.4.0)

mysqli_bind_param — Синоним функции mysqli_stmt_bind_param()

Описание

Эта функция является псевдонимом: mysqli_stmt_bind_param().

Внимание

Данная функция была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Смотрите также

  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса


Синоним функции mysqli_stmt_bind_result

  • « mysqli_bind_param
  • mysqli_client_encoding »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Синоним функции mysqli_stmt_bind_result

mysqli_bind_result

(PHP 5 < 5.4.0)

mysqli_bind_result — Синоним функции mysqli_stmt_bind_result()

Описание

Эта функция является псевдонимом: mysqli_stmt_bind_result().

Внимание

Данная функция была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Смотрите также

  • mysqli_stmt_bind_result() - Привязка переменных к подготовленному запросу для размещения результата


Синоним функции mysqli_character_set_name

  • « mysqli_bind_result
  • mysqli_connect »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Синоним функции mysqli_character_set_name

mysqli_client_encoding

(PHP 5 < 5.4.0)

mysqli_client_encoding — Синоним функции mysqli_character_set_name()

Описание

Эта функция является псевдонимом: mysqli_character_set_name().

Внимание

Данная функция была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Смотрите также

  • mysqli_real_escape_string() - Экранирует специальные символы в строке для использования в SQL-выражении, используя текущий набор символов соединения


Псевдоним mysqli::__construct

  • « mysqli_client_encoding
  • mysqli::disable_reads_from_master »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Псевдоним mysqli::__construct

mysqli_connect

(PHP 5, PHP 7)

mysqli_connect — Псевдоним mysqli::__construct()

Описание

Эта функция является псевдонимом: mysqli::__construct()

Несмотря на то, что документация на mysqli::__construct() содержит примеры процедурного способа использования mysqli_connect(), здесь представлен короткий пример:

Примеры

Пример #1 Пример использования mysqli_connect()

<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");

if (!$link) {
    echo "Ошибка: Невозможно установить соединение с MySQL." . PHP_EOL;
    echo "Код ошибки errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Текст ошибки error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}

echo "Соединение с MySQL установлено!" . PHP_EOL;
echo "Информация о сервере: " . mysqli_get_host_info($link) . PHP_EOL;

mysqli_close($link);
?>

Результатом выполнения данных примеров будет что-то подобное:

Соединение с MySQL установлено!
Информация о сервере: localhost via TCP/IP


Блокирует чтение с мастера

  • « mysqli_connect
  • mysqli_disable_rpl_parse »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Блокирует чтение с мастера

mysqli::disable_reads_from_master

mysqli_disable_reads_from_master

(PHP 5 < 5.3.0)

mysqli::disable_reads_from_master -- mysqli_disable_reads_from_master — Блокирует чтение с мастера

Описание

Объектно-ориентированный стиль

mysqli::disable_reads_from_master ( void ) : void

Процедурный стиль

mysqli_disable_reads_from_master ( mysqli $link ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА, начиная с PHP 5.3.0.


Блокировать разбор RPL

  • « mysqli::disable_reads_from_master
  • mysqli_enable_reads_from_master »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Блокировать разбор RPL

mysqli_disable_rpl_parse

(PHP 5 < 5.3.0)

mysqli_disable_rpl_parse — Блокировать разбор RPL

Описание

mysqli_disable_rpl_parse ( mysqli $link ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА, начиная с PHP 5.3.0.


Включает чтение с мастера

  • « mysqli_disable_rpl_parse
  • mysqli_enable_rpl_parse »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Включает чтение с мастера

mysqli_enable_reads_from_master

(PHP 5 < 5.3.0)

mysqli_enable_reads_from_master — Включает чтение с мастера

Описание

mysqli_enable_reads_from_master ( mysqli $link ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА, начиная с PHP 5.3.0.


Включает разбор RPL

  • « mysqli_enable_reads_from_master
  • mysqli_escape_string »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Включает разбор RPL

mysqli_enable_rpl_parse

(PHP 5 < 5.3.0)

mysqli_enable_rpl_parse — Включает разбор RPL

Описание

mysqli_enable_rpl_parse ( mysqli $link ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА, начиная с PHP 5.3.0.


Псевдоним функции mysqli_real_escape_string

  • « mysqli_enable_rpl_parse
  • mysqli_execute »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Псевдоним функции mysqli_real_escape_string

mysqli_escape_string

(PHP 5, PHP 7)

mysqli_escape_string — Псевдоним функции mysqli_real_escape_string()

Описание

Эта функция является псевдонимом: mysqli_real_escape_string().


Синоним для mysqli_stmt_execute

  • « mysqli_escape_string
  • mysqli_fetch »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Синоним для mysqli_stmt_execute

mysqli_execute

(PHP 5, PHP 7)

mysqli_execute — Синоним для mysqli_stmt_execute()

Описание

Эта функция является псевдонимом: mysqli_stmt_execute().

Примечания

Замечание:

Функция mysqli_execute() устарела и будет удалена.

Смотрите также

  • mysqli_stmt_execute() - Выполняет подготовленный запрос


Синоним для mysqli_stmt_fetch

  • « mysqli_execute
  • mysqli_get_cache_stats »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Синоним для mysqli_stmt_fetch

mysqli_fetch

(PHP 5 < 5.4.0)

mysqli_fetch — Синоним для mysqli_stmt_fetch()

Описание

Эта функция является псевдонимом: mysqli_stmt_fetch().

Внимание

Данная функция была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Смотрите также

  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными


Возвращает статистические данные о Zval кэше клиента

  • « mysqli_fetch
  • mysqli_get_client_stats »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Возвращает статистические данные о Zval кэше клиента

mysqli_get_cache_stats

(PHP 5 >= 5.3.0 and < 5.4.0)

mysqli_get_cache_stats — Возвращает статистические данные о Zval кэше клиента

Внимание

Эта функция была УДАЛЕНА с PHP 5.4.0.

Описание

mysqli_get_cache_stats ( void ) : array

Возвращает пустой массив. Доступно только с расширением mysqlnd.

Список параметров

Возвращаемые значения

Возвращает пустой массив в случае успешного выполнения и FALSE в противном случае.

Список изменений

Версия | Описание
5.4.0 | Функция mysqli_get_cache_stats() удалена.
5.3.0 | Функция mysqli_get_cache_stats() добавлена в виде заглушки.


Получить клиентскую попроцессную статистику

  • « mysqli_get_cache_stats
  • mysqli_get_links_stats »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Получить клиентскую попроцессную статистику

mysqli_get_client_stats

(PHP 5 >= 5.3.0, PHP 7)

mysqli_get_client_stats — Получить клиентскую попроцессную статистику

Описание

mysqli_get_client_stats ( void ) : array

Возвращает клиентскую попроцессную статистику. Доступно только с расширением mysqlnd.

Список параметров

Возвращаемые значения

Возвращает массив со статистикой в случае успеха, либо FALSE.

Примеры

Пример #1 Пример использования mysqli_get_client_stats()

<?php
$link = mysqli_connect();
print_r(mysqli_get_client_stats());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [bytes_sent] => 43
    [bytes_received] => 80
    [packets_sent] => 1
    [packets_received] => 2
    [protocol_overhead_in] => 8
    [protocol_overhead_out] => 4
    [bytes_received_ok_packet] => 11
    [bytes_received_eof_packet] => 0
    [bytes_received_rset_header_packet] => 0
    [bytes_received_rset_field_meta_packet] => 0
    [bytes_received_rset_row_packet] => 0
    [bytes_received_prepare_response_packet] => 0
    [bytes_received_change_user_packet] => 0
    [packets_sent_command] => 0
    [packets_received_ok] => 1
    [packets_received_eof] => 0
    [packets_received_rset_header] => 0
    [packets_received_rset_field_meta] => 0
    [packets_received_rset_row] => 0
    [packets_received_prepare_response] => 0
    [packets_received_change_user] => 0
    [result_set_queries] => 0
    [non_result_set_queries] => 0
    [no_index_used] => 0
    [bad_index_used] => 0
    [slow_queries] => 0
    [buffered_sets] => 0
    [unbuffered_sets] => 0
    [ps_buffered_sets] => 0
    [ps_unbuffered_sets] => 0
    [flushed_normal_sets] => 0
    [flushed_ps_sets] => 0
    [ps_prepared_never_executed] => 0
    [ps_prepared_once_executed] => 0
    [rows_fetched_from_server_normal] => 0
    [rows_fetched_from_server_ps] => 0
    [rows_buffered_from_client_normal] => 0
    [rows_buffered_from_client_ps] => 0
    [rows_fetched_from_client_normal_buffered] => 0
    [rows_fetched_from_client_normal_unbuffered] => 0
    [rows_fetched_from_client_ps_buffered] => 0
    [rows_fetched_from_client_ps_unbuffered] => 0
    [rows_fetched_from_client_ps_cursor] => 0
    [rows_skipped_normal] => 0
    [rows_skipped_ps] => 0
    [copy_on_write_saved] => 0
    [copy_on_write_performed] => 0
    [command_buffer_too_small] => 0
    [connect_success] => 1
    [connect_failure] => 0
    [connection_reused] => 0
    [reconnect] => 0
    [pconnect_success] => 0
    [active_connections] => 1
    [active_persistent_connections] => 0
    [explicit_close] => 0
    [implicit_close] => 0
    [disconnect_close] => 0
    [in_middle_of_command_close] => 0
    [explicit_free_result] => 0
    [implicit_free_result] => 0
    [explicit_stmt_close] => 0
    [implicit_stmt_close] => 0
    [mem_emalloc_count] => 0
    [mem_emalloc_ammount] => 0
    [mem_ecalloc_count] => 0
    [mem_ecalloc_ammount] => 0
    [mem_erealloc_count] => 0
    [mem_erealloc_ammount] => 0
    [mem_efree_count] => 0
    [mem_malloc_count] => 0
    [mem_malloc_ammount] => 0
    [mem_calloc_count] => 0
    [mem_calloc_ammount] => 0
    [mem_realloc_count] => 0
    [mem_realloc_ammount] => 0
    [mem_free_count] => 0
    [proto_text_fetched_null] => 0
    [proto_text_fetched_bit] => 0
    [proto_text_fetched_tinyint] => 0
    [proto_text_fetched_short] => 0
    [proto_text_fetched_int24] => 0
    [proto_text_fetched_int] => 0
    [proto_text_fetched_bigint] => 0
    [proto_text_fetched_decimal] => 0
    [proto_text_fetched_float] => 0
    [proto_text_fetched_double] => 0
    [proto_text_fetched_date] => 0
    [proto_text_fetched_year] => 0
    [proto_text_fetched_time] => 0
    [proto_text_fetched_datetime] => 0
    [proto_text_fetched_timestamp] => 0
    [proto_text_fetched_string] => 0
    [proto_text_fetched_blob] => 0
    [proto_text_fetched_enum] => 0
    [proto_text_fetched_set] => 0
    [proto_text_fetched_geometry] => 0
    [proto_text_fetched_other] => 0
    [proto_binary_fetched_null] => 0
    [proto_binary_fetched_bit] => 0
    [proto_binary_fetched_tinyint] => 0
    [proto_binary_fetched_short] => 0
    [proto_binary_fetched_int24] => 0
    [proto_binary_fetched_int] => 0
    [proto_binary_fetched_bigint] => 0
    [proto_binary_fetched_decimal] => 0
    [proto_binary_fetched_float] => 0
    [proto_binary_fetched_double] => 0
    [proto_binary_fetched_date] => 0
    [proto_binary_fetched_year] => 0
    [proto_binary_fetched_time] => 0
    [proto_binary_fetched_datetime] => 0
    [proto_binary_fetched_timestamp] => 0
    [proto_binary_fetched_string] => 0
    [proto_binary_fetched_blob] => 0
    [proto_binary_fetched_enum] => 0
    [proto_binary_fetched_set] => 0
    [proto_binary_fetched_geometry] => 0
    [proto_binary_fetched_other] => 0
)

Смотрите также

  • Описание метрик


Возвращает информацию об открытых и закешированных соединениях MySQL

  • « mysqli_get_client_stats
  • mysqli_get_metadata »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Возвращает информацию об открытых и закешированных соединениях MySQL

mysqli_get_links_stats

(PHP 5 >= 5.6.0, PHP 7)

mysqli_get_links_stats — Возвращает информацию об открытых и закешированных соединениях MySQL

Описание

mysqli_get_links_stats ( void ) : array

mysqli_get_links_stats() возвращает информацию об открытых и закешированных соединениях MySQL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

mysqli_get_links_stats() возвращает ассоциативный массив из трех целочисленных значений со следующими ключами:

total

Общее количество соединений с любыми статусами.

active_plinks

Количество активных постоянных (persistent) соединениях.

cached_plinks

Количество неактивных постоянных (persistent) соединениях.


Синоним для mysqli_stmt_result_metadata

  • « mysqli_get_links_stats
  • mysqli_master_query »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Синоним для mysqli_stmt_result_metadata

mysqli_get_metadata

(PHP 5 < 5.4.0)

mysqli_get_metadata — Синоним для mysqli_stmt_result_metadata()

Описание

Эта функция является псевдонимом: mysqli_stmt_result_metadata().

Внимание

Данная функция была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Смотрите также

  • mysqli_stmt_result_metadata() - Возвращает метаданные результирующей таблицы подготавливаемого запроса


Принудительный запуск запроса на хозяине в случае установки хозяин/раб

  • « mysqli_get_metadata
  • mysqli_param_count »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Принудительный запуск запроса на хозяине в случае установки хозяин/раб

mysqli_master_query

(PHP 5 < 5.3.0)

mysqli_master_query — Принудительный запуск запроса на хозяине в случае установки хозяин/раб

Описание

mysqli_master_query ( mysqli $link , string $query ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА, начиная с PHP 5.3.0.


Псевдоним для mysqli_stmt_param_count

  • « mysqli_master_query
  • mysqli_report »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Псевдоним для mysqli_stmt_param_count

mysqli_param_count

(PHP 5 < 5.4.0)

mysqli_param_count — Псевдоним для mysqli_stmt_param_count()

Описание

Эта функция является псевдонимом: mysqli_stmt_param_count().

Внимание

Данная функция была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Смотрите также

  • mysqli_stmt_param_count() - Возвращает количество параметров в запросе


Псевдоним mysqli_driver->report_mode

  • « mysqli_param_count
  • mysqli_rpl_parse_enabled »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Псевдоним mysqli_driver->report_mode

mysqli_report

(PHP 5, PHP 7)

mysqli_report — Псевдоним mysqli_driver->report_mode

Описание

Эта функция является псевдонимом: mysqli_driver->report_mode


Проверка, включен ли разбор RPL

  • « mysqli_report
  • mysqli_rpl_probe »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Проверка, включен ли разбор RPL

mysqli_rpl_parse_enabled

(PHP 5 < 5.3.0)

mysqli_rpl_parse_enabled — Проверка, включен ли разбор RPL

Описание

mysqli_rpl_parse_enabled ( mysqli $link ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА, начиная с PHP 5.3.0.


RPL зонд

  • « mysqli_rpl_parse_enabled
  • mysqli_send_long_data »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • RPL зонд

mysqli_rpl_probe

(PHP 5 < 5.3.0)

mysqli_rpl_probe — RPL зонд

Описание

mysqli_rpl_probe ( mysqli $link ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА, начиная с PHP 5.3.0.


Псевдоним для mysqli_stmt_send_long_data

  • « mysqli_rpl_probe
  • mysqli::set_opt »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Псевдоним для mysqli_stmt_send_long_data

mysqli_send_long_data

(PHP 5 < 5.4.0)

mysqli_send_long_data — Псевдоним для mysqli_stmt_send_long_data()

Описание

Эта функция является псевдонимом: mysqli_stmt_send_long_data().

Внимание

Данная функция была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Смотрите также

  • mysqli_stmt_send_long_data() - Отправка данных блоками


Псевдоним mysqli_options

  • « mysqli_send_long_data
  • mysqli_slave_query »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Псевдоним mysqli_options

mysqli::set_opt

mysqli_set_opt

(PHP 5, PHP 7)

mysqli::set_opt -- mysqli_set_opt — Псевдоним mysqli_options()

Описание

Эта функция является псевдонимом: mysqli_options().


Принудительный запуск запроса на рабе в установке хозяин/раб

  • « mysqli::set_opt
  • Список изменений »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Принудительный запуск запроса на рабе в установке хозяин/раб

mysqli_slave_query

(PHP 5 < 5.3.0)

mysqli_slave_query — Принудительный запуск запроса на рабе в установке хозяин/раб

Описание

mysqli_slave_query ( mysqli $link , string $query ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА, начиная с PHP 5.3.0.


Список изменений

Следующие изменения были произведены с классами/функциями/методами данного расширения.

Version | Function | Description
5.6.16 | mysqli::real_connect | Добавлен флаг MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT для MySQL Native Driver
5.5.0 | mysqli::commit | Добавлены параметры flags и name.
 | mysqli::options | Добавлены опции MYSQLI_SERVER_PUBLIC_KEY и MYSQLI_SERVER_PUBLIC_KEY.
 | mysqli::rollback | Добавлены параметры flags и name.
5.4.0 | mysqli_get_cache_stats | Функция mysqli_get_cache_stats удалена.
5.3.4 | mysqli_driver::$report_mode | Изменен режим протоколирования. Если ранее режим задавался для процесса, то теперь он задается для каждого запроса.
5.3.0 | mysqli_get_cache_stats | Функция mysqli_get_cache_stats добавлена в виде заглушки.
 | mysqli::__construct | Добавлена возможность устанавливать постоянные соединения.
 | mysqli::options | Добавлены опции MYSQLI_OPT_INT_AND_FLOAT_NATIVE, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, MYSQLI_OPT_NET_READ_BUFFER_SIZE, и MYSQLI_OPT_SSL_VERIFY_SERVER_CERT.
 | mysqli::query | Добавлена возможность выполнять асинхронные запросы.
5.2.15 | mysqli_driver::$report_mode | Изменен режим протоколирования. Если ранее режим задавался для процесса, то теперь он задается для каждого запроса.


Mysql_xdevapi

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Сборка / Компиляция из исходного кода
  • Предопределенные константы
  • Примеры
  • Mysql_xdevapi Функции
    • expression — Связывает подготовленные переменные утверждения в качестве параметров
    • getSession — Подключается к серверу MySQL
  • mysql_xdevapi\BaseResult — Интерфейс BaseResult
    • BaseResult::getWarnings — Получает предупреждения последней операции
    • BaseResult::getWarningsCount — Получает количество предупреждений последней операции
  • mysql_xdevapi\Client — Client class
    • mysql_xdevapi\Client::close — Close client
    • Client::__construct — Client constructor
    • Client::getClient — Get client session
  • mysql_xdevapi\Collection — Класс Collection
    • Collection::add — Добавляет документ в коллекцию
    • Collection::addOrReplaceOne — Добавляет или заменяет документ коллекции
    • Collection::__construct — Конструктор класса Collection
    • Collection::count — Получает количество документов
    • Collection::createIndex — Создает индекс для коллекции
    • Collection::dropIndex — Drop collection index
    • Collection::existsInDatabase — Проверяет, существует ли коллекция в базе данных
    • Collection::find — Search for document
    • Collection::getName — Получает название коллекции
    • Collection::getOne — Получает один документ
    • Collection::getSchema — Get schema object
    • Collection::getSession — Get session object
    • Collection::modify — Modify collection documents
    • Collection::remove — Удаляет документы коллекции
    • Collection::removeOne — Удаляет один документ из коллекции
    • Collection::replaceOne — Заменяет один документ коллекции
  • mysql_xdevapi\CollectionAdd — Класс CollectionAdd
    • CollectionAdd::__construct — Конструктор класса CollectionAdd
    • CollectionAdd::execute — Выполняет утверждение
  • mysql_xdevapi\CollectionFind — Класс CollectionFind
    • CollectionFind::bind — Привязывает значение к заполнителю запроса
    • CollectionFind::__construct — Конструктор класса CollectionFind
    • CollectionFind::execute — Выполняет утверждение
    • CollectionFind::fields — Устанавливает фильтр поля документа
    • CollectionFind::groupBy — Устанавливает критерии группировки
    • CollectionFind::having — Устанавливает условие для агрегатных функций
    • CollectionFind::limit — Ограничивает количество возвращаемых документов
    • CollectionFind::lockExclusive — Выполняет операцию с EXCLUSIVE LOCK
    • CollectionFind::lockShared — Выполняет операцию с SHARED LOCK
    • CollectionFind::offset — Пропускает указанное количество возвращаемых элементов
    • CollectionFind::sort — Устанавливает критерии сортировки
  • mysql_xdevapi\CollectionModify — Класс CollectionModify
    • CollectionModify::arrayAppend — Добавляет элемент в поле массива
    • CollectionModify::arrayInsert — Добавляет элемент в поле массива
    • CollectionModify::bind — Привязывает значение к заполнителю запроса
    • CollectionModify::__construct — Конструктор класса CollectionModify
    • CollectionModify::execute — Выполняет операцию изменения
    • CollectionModify::limit — Ограничивает количество изменяемых документов
    • CollectionModify::patch — Исправляет документ
    • CollectionModify::replace — Заменяет поле документа
    • CollectionModify::set — Устанавливает атрибут документа
    • CollectionModify::skip — Пропускает элементы
    • CollectionModify::sort — Устанавливает критерии сортировки
    • CollectionModify::unset — Сбрасывает значение полей документа
  • mysql_xdevapi\CollectionRemove — Класс CollectionRemove
    • CollectionRemove::bind — Привязывает значение к заполнителю
    • CollectionRemove::__construct — Конструктор класса CollectionRemove
    • CollectionRemove::execute — Выполняет операцию удаления
    • CollectionRemove::limit — Ограничивает количество документов для удаления
    • CollectionRemove::sort — Устанавливает критерии сортировки
  • mysql_xdevapi\ColumnResult — Класс ColumnResult
    • ColumnResult::__construct — Конструктор класса ColumnResult
    • ColumnResult::getCharacterSetName — Получает набор символов
    • ColumnResult::getCollationName — Получает имя сопоставления
    • ColumnResult::getColumnLabel — Получает метку столбца
    • ColumnResult::getColumnName — Получает название столбца
    • ColumnResult::getFractionalDigits — Получает дробную длину цифры
    • ColumnResult::getLength — Получает длину поля столбца
    • ColumnResult::getSchemaName — Получает название схемы
    • ColumnResult::getTableLabel — Получает метку таблицы
    • ColumnResult::getTableName — Получает название таблицы
    • ColumnResult::getType — Получает тип столбца
    • ColumnResult::isNumberSigned — Проверяет, является ли тип подписанным
    • ColumnResult::isPadded — Проверяет, дополняется ли
  • mysql_xdevapi\CrudOperationBindable — Интерфейс CrudOperationBindable
    • CrudOperationBindable::bind — Привязывает значение к заполнителю
  • mysql_xdevapi\CrudOperationLimitable — Интерфейс CrudOperationLimitable
    • CrudOperationLimitable::limit — Set result limit
  • mysql_xdevapi\CrudOperationSkippable — Интерфейс CrudOperationSkippable
    • CrudOperationSkippable::skip — Number of operations to skip
  • mysql_xdevapi\CrudOperationSortable — Интерфейс CrudOperationSortable
    • CrudOperationSortable::sort — Sort results
  • mysql_xdevapi\DatabaseObject — Интерфейс DatabaseObject
    • DatabaseObject::existsInDatabase — Проверяет, существует ли объект в базе данных
    • DatabaseObject::getName — Получает имя объекта
    • DatabaseObject::getSession — Получает имя сессии
  • mysql_xdevapi\DocResult — Класс DocResult
    • DocResult::__construct — Конструктор DocResult
    • DocResult::fetchAll — Получить все строки
    • DocResult::fetchOne — Получить одну строку
    • DocResult::getWarnings — Получить предупреждения с последней операции
    • DocResult::getWarningsCount — Получить количество предупреждений с последней операции
  • mysql_xdevapi\Exception — Класс Exception
  • mysql_xdevapi\Executable — Интерфейс Executable
    • Executable::execute — Выполняет утверждение
  • mysql_xdevapi\ExecutionStatus — Класс ExecutionStatus
    • ExecutionStatus::__construct — Конструктор класса ExecutionStatus
  • mysql_xdevapi\Expression — Класс Expression
    • Expression::__construct — Конструктор класса Expression
  • mysql_xdevapi\Result — Класс Result
    • Result::__construct — Конструктор класса Result
    • Result::getAffectedItemsCount — Get affected row count
    • Result::getAutoIncrementValue — Получает значение автоинкремента
    • Result::getGeneratedIds — Получает сгенерированные идентификаторы
    • Result::getWarnings — Получает предупреждения последней операции
    • Result::getWarningsCount — Получает количество предупреждений последней операции
  • mysql_xdevapi\RowResult — Класс RowResult
    • RowResult::__construct — Конструктор класса RowResult
    • RowResult::fetchAll — Получает все строки из результата
    • RowResult::fetchOne — Получает строку из результата
    • RowResult::getColumnsCount — Получает количество столбцов
    • RowResult::getColumnNames — Получает все имена столбцов
    • RowResult::getColumns — Получает метаданные столбца
    • RowResult::getWarnings — Получает предупреждения последней операции
    • RowResult::getWarningsCount — Получает количество предупреждений последней операции
  • mysql_xdevapi\Schema — Класс Schema
    • Schema::__construct — Конструктор
    • Schema::createCollection — Добавить коллекцию в схему
    • Schema::dropCollection — Удалить коллекции из схемы
    • Schema::existsInDatabase — Проверить, существует ли в базе данных
    • Schema::getCollection — Получить коллекцию из схемы
    • Schema::getCollectionAsTable — Получить объект таблицы коллекции
    • Schema::getCollections — Получить все коллекции схемы
    • Schema::getName — Получить имя схемы
    • Schema::getSession — Получить сессию схемы
    • Schema::getTable — Получить таблицу схемы
    • Schema::getTables — Получить таблицы схемы
  • mysql_xdevapi\SchemaObject — Интерфейс SchemaObject
    • SchemaObject::getSchema — Получает объект схемы
  • mysql_xdevapi\Session — Класс Session
    • Session::close — Закрывает сессию
    • Session::commit — Фиксирует транзакцию
    • Session::__construct — Описание конструктора
    • Session::createSchema — Создает новую схему
    • Session::dropSchema — Удаляет схему
    • Session::generateUUID — Получает новый UUID
    • Session::getDefaultSchema — Get default schema name
    • Session::getSchema — Получает новый объект схемы
    • Session::getSchemas — Получает схемы
    • Session::getServerVersion — Получает версию сервера
    • Session::listClients — Получает список клиентов
    • Session::quoteName — Add quotes
    • Session::releaseSavepoint — Отменяет установленную точку сохранения
    • Session::rollback — Откатывает транзакцию
    • Session::rollbackTo — Откатывает транзакцию до точки сохранения
    • Session::setSavepoint — Создает точку сохранения
    • Session::sql — Выполняет SQL запрос
    • Session::startTransaction — Начинает транзакцию
  • mysql_xdevapi\SqlStatement — Класс SqlStatement
    • SqlStatement::bind — Связывает параметры утверждения
    • SqlStatement::__construct — Описание конструктора
    • SqlStatement::execute — Выполняет операцию
    • SqlStatement::getNextResult — Получает следующий результат
    • SqlStatement::getResult — Получает результат
    • SqlStatement::hasMoreResults — Проверяет, есть ли еще результаты
  • mysql_xdevapi\SqlStatementResult — Класс SqlStatementResult
    • SqlStatementResult::__construct — Описание конструктора
    • SqlStatementResult::fetchAll — Получает все строки из результата
    • SqlStatementResult::fetchOne — Получает одну строку
    • SqlStatementResult::getAffectedItemsCount — Получает затронутое количество строк
    • SqlStatementResult::getColumnsCount — Получает количество столбцов
    • SqlStatementResult::getColumnNames — Получает имена столбцов
    • SqlStatementResult::getColumns — Получает столбцы
    • SqlStatementResult::getGeneratedIds — Получает сгенерированные идентификаторы
    • SqlStatementResult::getLastInsertId — Получает последний идентификатор вставки
    • SqlStatementResult::getWarnings — Получает предупреждения от последней операции
    • SqlStatementResult::getWarningsCount — Получает количество предупреждений от последней операции
    • SqlStatementResult::hasData — Проверяет, есть ли у результата данные
    • SqlStatementResult::nextResult — Получает следующий результат
  • mysql_xdevapi\Statement — Класс Statement
    • Statement::__construct — Описание конструктора
    • Statement::getNextResult — Получает следующий результат
    • Statement::getResult — Получает результат
    • Statement::hasMoreResults — Проверяет, есть ли еще результаты
  • mysql_xdevapi\Table — Класс Table
    • Table::__construct — Конструктор Table
    • Table::count — Получить количество строк
    • Table::delete — Удалить строки из таблицы
    • Table::existsInDatabase — Проверить, существует ли таблица в базе данных
    • Table::getName — Получить имя таблицы
    • Table::getSchema — Получить схему таблицы
    • Table::getSession — Получить таблицу сессий
    • Table::insert — Вставить строки таблицы
    • Table::isView — Проверить, является ли таблица представлением
    • Table::select — Выбрать строки из таблицы
    • Table::update — Обновить строки в таблице
  • mysql_xdevapi\TableDelete — Класс TableDelete
    • TableDelete::bind — Связывает параметры запроса удаления
    • TableDelete::__construct — Конструктор класса TableDelete
    • TableDelete::execute — Выполняет запрос на удаление
    • TableDelete::limit — Ограничивает строки для удаления
    • TableDelete::orderby — Устанавливает критерии сортировки удаления
    • TableDelete::where — Устанавливает условие поиска для удаления
  • mysql_xdevapi\TableInsert — Класс TableInsert
    • TableInsert::__construct — Конструктор класса TableInsert
    • TableInsert::execute — Выполняет запрос вставки
    • TableInsert::values — Добавляет значения вставки строки
  • mysql_xdevapi\TableSelect — Класс TableSelect
    • TableSelect::bind — Привязывает параметры запроса выборки
    • TableSelect::__construct — Конструктор класса TableSelect
    • TableSelect::execute — Выполняет оператор выборки
    • TableSelect::groupBy — Устанавливает критерии группировки выборки
    • TableSelect::having — Устанавливает выбор с условием
    • TableSelect::limit — Ограничивает выбранные строки
    • TableSelect::lockExclusive — Выполняет EXCLUSIVE LOCK
    • TableSelect::lockShared — Выполняет SHARED LOCK
    • TableSelect::offset — Устанавливает предел смещения
    • TableSelect::orderby — Устанавливает критерии сортировки выборки
    • TableSelect::where — Устанавливает условие поиска выборки
  • mysql_xdevapi\TableUpdate — Класс TableUpdate
    • TableUpdate::bind — Привязывает параметры запроса на обновление
    • TableUpdate::__construct — Конструктор класса TableUpdate
    • TableUpdate::execute — Выполняет запрос на обновление
    • TableUpdate::limit — Ограничивает количество строк для обновления
    • TableUpdate::orderby — Устанавливает критерии сортировки
    • TableUpdate::set — Добавляет поле для обновления
    • TableUpdate::where — Устанавливает фильтр поиска
  • mysql_xdevapi\Warning — Класс Warning
    • Warning::__construct — Конструктор класса Warning


Введение

Модуль обеспечивает доступ к хранилищу документов MySQL через X DevAPI. X DevAPI - это общий API, предоставляемый несколькими коннекторами MySQL, обеспечивающий легкий доступ к реляционным таблицам, а также к коллекциям документов, которые представлены в JSON, из API с операциями в стиле CRUD.

X DevAPI использует X Protocol, клиент-серверный протокол нового поколения сервера MySQL 8.0.

Для получения общей информации о хранилище документов MySQL, пожалуйста, обратитесь к главе » Хранилище документов MySQL в руководстве MySQL.


Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения
  • Сборка / Компиляция из исходного кода


Требования

Для этого модуля требуется сервер MySQL 8+ с включенным плагином X (по умолчанию).

Необходимые библиотеки для компиляции этого модуля: Boost (1.53.0 или выше), OpenSSL и Protobuf.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Пример процедуры установки на Ubuntu 18.04 с PHP 7.2:

// Зависимости
$ apt install build-essential libprotobuf-dev libboost-dev openssl protobuf-compiler

// PHP с нужными модулями; php7.2-dev, необходимым для компиляции
$ apt install php7.2-cli php7.2-dev php7.2-mysql php7.2-pdo php7.2-xml

// Компиляция модуля
$ pecl install mysql_xdevapi

Команда pecl install не включает модули PHP (по умолчанию), включение модулей PHP может быть сделано несколькими способами. Другой пример PHP 7.2 в Ubuntu 18.04:

// Создание собственного ini файла
$ echo "extension=mysql_xdevapi.so" > /etc/php/7.2/mods-available/mysql_xdevapi.ini

// Использование команды 'phpenmod' (примечание: это применимо для Debian/Ubuntu)
$ phpenmod -v 7.2 -s ALL mysql_xdevapi

// Альтернативой 'phpenmod' является создание символической ссылки
// $ ln -s /etc/php/7.2/mods-available/mysql_xdevapi.ini /etc/php/7.2/cli/conf.d/20-mysql_xdevapi.ini

// Давайте посмотрим, какие модули MySQL сейчас включены
$ php -m |grep mysql

mysql_xdevapi
mysqli
mysqlnd
pdo_mysql

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/mysql_xdevapi.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Mysql_xdevapi Опции настройки
Имя | По умолчанию | Место изменения | Список изменений
xmysqlnd.collect_memory_statistics | 0 | PHP_INI_SYSTEM |
xmysqlnd.collect_statistics | 1 | PHP_INI_ALL |
xmysqlnd.debug |  | PHP_INI_SYSTEM |
xmysqlnd.mempool_default_size | 16000 | PHP_INI_ALL |
xmysqlnd.net_read_timeout | 31536000 | PHP_INI_SYSTEM |
xmysqlnd.trace_alloc |  | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

xmysqlnd.collect_memory_statistics integer

xmysqlnd.collect_statistics integer

xmysqlnd.debug string

xmysqlnd.mempool_default_size integer

xmysqlnd.net_read_timeout integer

xmysqlnd.trace_alloc string


Сборка / Компиляция из исходного кода

Соображения по компиляции этого модуля из исходного кода.

  • Имя модуля - 'mysql_xdevapi', поэтому используйте --enable-mysql-xdevapi.

  • Boost: обязателен, при необходимости используйте параметр конфигурации --with-boost=DIR или задайте переменную окружения MYSQL_XDEVAPI_BOOST_ROOT. Требуются только файлы заголовков boost; не двоичные файлы.

  • Google Protocol Buffers (protobuf): обязателен, при необходимости используйте параметр конфигурации --with-protobuf=DIR или задайте переменную окружения MYSQL_XDEVAPI_PROTOBUF_ROOT.

    При желании используйте make protobufs для создания файлов protobuf (*.pb.cc/.h) и make clean-protobufs для удаления созданных файлов protobuf.

    Примечание к protobuf на Windows: в зависимости от окружения может потребоваться статическая библиотека с многопоточным временем выполнения DLL. Для подготовки используйте следующие параметры: -Dprotobuf_MSVC_STATIC_RUNTIME=OFF -Dprotobuf_BUILD_SHARED_LIBS=OFF

  • Google Protocol Buffers / protocol compiler (protoc): обязательны, убедитесь, что во время сборки в PATH доступен правильный 'protoc'. Это особенно важно, поскольку пакетные сценарии Windows PHP SDK могут перезаписывать окружение.

  • Bison: обязателен, и доступен из PATH.

    Примечание к bison на Windows: мы настоятельно рекомендуем, чтобы bison, поставляемый с выбранным PHP SDK, использовал еще одну ошибку, похожую на "zend_globals_macros.h(39): error C2375: 'zendparse': redefinition; different linkage Zend/zend_language_parser.h(214): примечание: note: see declaration of 'zendparse'". Кроме того, пакетные сценарии Windows PHP SDK могут перезаписывать окружение.

  • Примечания для Windows: Чтобы подготовить окружение, ознакомьтесь с официальной документацией по сборке Windows для » оригинального SDK (устаревший, только PHP-7.1) или » текущего SDK (PHP-7.1 или новее).

    Мы рекомендуем использовать обратную косую черту '\\' вместо косой черты '/' для всех путей.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MYSQLX_CLIENT_SSL (integer)
MYSQLX_TYPE_DECIMAL (integer)
MYSQLX_TYPE_TINY (integer)
MYSQLX_TYPE_SHORT (integer)
MYSQLX_TYPE_SMALLINT (integer)
MYSQLX_TYPE_MEDIUMINT (integer)
MYSQLX_TYPE_INT (integer)
MYSQLX_TYPE_BIGINT (integer)
MYSQLX_TYPE_LONG (integer)
MYSQLX_TYPE_FLOAT (integer)
MYSQLX_TYPE_DOUBLE (integer)
MYSQLX_TYPE_NULL (integer)
MYSQLX_TYPE_TIMESTAMP (integer)
MYSQLX_TYPE_LONGLONG (integer)
MYSQLX_TYPE_INT24 (integer)
MYSQLX_TYPE_DATE (integer)
MYSQLX_TYPE_TIME (integer)
MYSQLX_TYPE_DATETIME (integer)
MYSQLX_TYPE_YEAR (integer)
MYSQLX_TYPE_NEWDATE (integer)
MYSQLX_TYPE_ENUM (integer)
MYSQLX_TYPE_SET (integer)
MYSQLX_TYPE_TINY_BLOB (integer)
MYSQLX_TYPE_MEDIUM_BLOB (integer)
MYSQLX_TYPE_LONG_BLOB (integer)
MYSQLX_TYPE_BLOB (integer)
MYSQLX_TYPE_VAR_STRING (integer)
MYSQLX_TYPE_STRING (integer)
MYSQLX_TYPE_CHAR (integer)
MYSQLX_TYPE_BYTES (integer)
MYSQLX_TYPE_INTERVAL (integer)
MYSQLX_TYPE_GEOMETRY (integer)
MYSQLX_TYPE_JSON (integer)
MYSQLX_TYPE_NEWDECIMAL (integer)
MYSQLX_TYPE_BIT (integer)
MYSQLX_LOCK_DEFAULT (integer)
MYSQLX_LOCK_NOWAIT (integer)
MYSQLX_LOCK_SKIP_LOCKED (integer)


Примеры

Центральной точкой входа в X DevAPI является функция mysql_xdevapi\getSession(), которая получает URI на сервер MySQL 8.0 и возвращает объект mysql_xdevap\Session.

Пример #1 Подключение к серверу MySQL

<?php
try {
    $session = mysql_xdevapi\getSession("mysqlx://user:password@host");
} catch(Exception $e) {
    die("Не удалось установить соединение: " . $e->getMessage());
}

// ... используйте $session
?>

Сессия обеспечивает полный доступ к API. Для новой установки сервера MySQL первым шагом является создание схемы базы данных с коллекцией для хранения данных:

Пример #2 Создание схемы и коллекции на сервере MySQL

<?php
$schema = $session->createSchema("test");
$collection = $schema->createCollection("example");
?>

При хранении данных, как правило, json_encode() используется для кодирования данных в JSON, который затем может храниться в коллекции.

В следующем примере данные сохраняются в коллекции, которую мы создали ранее, а затем снова извлекаем их части.

Пример #3 Хранение и получение данных

<?php
$marco = [
  "name" => "Marco",
  "age"  => 19,
  "job"  => "Programmer"
];
$mike = [
  "name" => "Mike",
  "age"  => 39,
  "job"  => "Manager"
];

$schema = $session->getSchema("test");
$collection = $schema->getCollection("example");

$collection->add($marco, $mike)->execute();

var_dump($collection->find("name = 'Mike'")->execute()->fetchOne());
?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  ["_id"]=>
  string(28) "00005ad66aaf0000000000000003"
  ["age"]=>
  int(39)
  ["job"]=>
  string(7) "Manager"
  ["name"]=>
  string(4) "Mike"
}

Пример демонстрирует, что сервер MySQL добавляет дополнительное поле с именем _id, которое служит первичным ключом к документу.

В примере также показано, что извлеченные данные сортируются в алфавитном порядке. Этот конкретный порядок исходит из эффективного двоичного хранилища внутри сервера MySQL, но на него не следует полагаться. За подробностями обращайтесь к документации по типу данных MySQL JSON.

При желании можно использовать итераторы PHP для извлечения нескольких документов:

Пример #4 Извлечение и итерация нескольких документов

<?php
$result = $collection->find()->execute();
foreach ($result as $doc) {
  echo "${doc["name"]} is a ${doc["job"]}.\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Marco is a Programmer.
Mike is a Manager.


Mysql_xdevapi Функции

Содержание

  • expression — Связывает подготовленные переменные утверждения в качестве параметров
  • getSession — Подключается к серверу MySQL


Связывает подготовленные переменные утверждения в качестве параметров

  • « Mysql_xdevapi Функции
  • getSession »
  • PHP Manual
  • Mysql_xdevapi Функции
  • Связывает подготовленные переменные утверждения в качестве параметров

expression

(Информация о версии неизвестна, возможно, только в Git)

expression — Связывает подготовленные переменные утверждения в качестве параметров

Описание

mysql_xdevapi\expression ( string $expression ) : object

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

expression

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\Expression()

<?php
$expression = mysql_xdevapi\Expression("[age,job]");

$res  = $coll->find("age > 30")->fields($expression)->limit(3)->execute();
$data = $res->fetchAll();

print_r($data);
?>

Результатом выполнения данного примера будет что-то подобное:

<?php


Подключается к серверу MySQL

  • « expression
  • mysql_xdevapi\BaseResult »
  • PHP Manual
  • Mysql_xdevapi Функции
  • Подключается к серверу MySQL

getSession

(Информация о версии неизвестна, возможно, только в Git)

getSession — Подключается к серверу MySQL

Описание

mysql_xdevapi\getSession ( string $uri ) : mysql_xdevapi\Session

Подключается к серверу MySQL.

Список параметров

uri

URI к серверу MySQL, такой как mysqlx://user:password@host.

Формат URI:

scheme://[user[:[password]]@]target[:port][?attribute1=value1&attribute2=value2...

  • scheme: обязательный, протокол соединения

    В mysql_xdevapi это всегда 'mysqlx' (для X Protocol)

  • user: необязательный, учетная запись пользователя MySQL для аутентификации

  • password: необязательный, пароль пользователя MySQL для аутентификации

  • target: обязательный, экземпляр сервера, к которому относится соединение:

    * TCP-соединение (имя хоста, адрес IPv4 или адрес IPv6)

    * Путь к сокету Unix (локальный путь к файлу)

    * Именованный канал Windows (локальный путь к файлу)

  • port: необязательный, сетевой порт сервера MySQL.

    по умолчанию порт для X Protocol равен 33060

  • ?attribute=value: этот элемент является необязательным и определяет словарь данных, который содержит различные параметры, в том числе:

    • Атрибут auth (механизм аутентификации), поскольку он относится к зашифрованным соединениям. Для получения дополнительной информации смотрите » Параметры команды для зашифрованных соединений. Поддерживаются следующие значения: plain, mysql41, external, и sha256_mem.

    • Атрибут connect-timeout влияет на соединение, а не на последующие операции. Он устанавливается для каждого соединения на одном или нескольких хостах.

      Введите положительное целое число, чтобы определить время ожидания соединения в секундах, или введите 0 (ноль), чтобы отключить время ожидания (бесконечно). Не определяя время ожидания подключения, вы используется значение по умолчанию 10.

      Связанные, переменные среды MYSQLX_CONNECTION_TIMEOUT (время ожидания в секундах) и MYSQLX_TEST_CONNECTION_TIMEOUT (используемые во время выполнения тестов) могут быть установлены и использованы вместо connect-timeout соединения в URI. Параметр URI подключения к connect-timeout имеет приоритет над переменными среды.

Пример #1 Примеры URI

mysqlx://foobar
mysqlx://root@localhost?socket=%2Ftmp%2Fmysqld.sock%2F
mysqlx://foo:bar@localhost:33060
mysqlx://foo:bar@localhost:33160?ssl-mode=disabled
mysqlx://foo:bar@localhost:33260?ssl-mode=required
mysqlx://foo:bar@localhost:33360?ssl-mode=required&auth=mysql41
mysqlx://foo:bar@(/path/to/socket)
mysqlx://foo:bar@(/path/to/socket)?auth=sha256_mem
mysqlx://foo:bar@[localhost:33060, 127.0.0.1:33061]
mysqlx://foobar?ssl-ca=(/path/to/ca.pem)&ssl-crl=(/path/to/crl.pem)
mysqlx://foo:bar@[localhost:33060, 127.0.0.1:33061]?ssl-mode=disabled
mysqlx://foo:bar@localhost:33160/?connect-timeout=0
mysqlx://foo:bar@localhost:33160/?connect-timeout=10

Для получения дополнительной информации смотрите MySQL Shell » Подключение с использованием строки URI.

Возвращаемые значения

Объект Session.

Ошибки

Ошибка соединения вызывает Exception.

Примеры

Пример #2 Пример использования mysql_xdevapi\getSession()

<?php
try {
    $session = mysql_xdevapi\getSession("mysqlx://user:password@host");
} catch(Exception $e) {
    die("Не удалось установить соединение: " . $e->getMessage());
}

$schemas = $session->getSchemas();
print_r($schemas);

$mysql_version = $session->getServerVersion();
print_r($mysql_version);

var_dump($collection->find("name = 'Alfred'")->execute()->fetchOne());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => mysql_xdevapi\Schema Object
        (
            [name] => helloworld
        )
    [1] => mysql_xdevapi\Schema Object
        (
            [name] => information_schema
        )
    [2] => mysql_xdevapi\Schema Object
        (
            [name] => mysql
        )
    [3] => mysql_xdevapi\Schema Object
        (
            [name] => performance_schema
        )
    [4] => mysql_xdevapi\Schema Object
        (
            [name] => sys
        )
)

80012

array(4) {
  ["_id"]=>
  string(28) "00005ad66abf0001000400000003"
  ["age"]=>
  int(42)
  ["job"]=>
  string(7) "Butler"
  ["name"]=>
  string(4) "Alfred"
}


Интерфейс BaseResult

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\BaseResult {
/* Методы */
abstract public getWarnings ( void ) : array
abstract public getWarningsCount ( void ) : integer
}

Содержание

  • BaseResult::getWarnings — Получает предупреждения последней операции
  • BaseResult::getWarningsCount — Получает количество предупреждений последней операции


Получает предупреждения последней операции

  • « mysql_xdevapi\BaseResult
  • BaseResult::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\BaseResult
  • Получает предупреждения последней операции

BaseResult::getWarnings

(Информация о версии неизвестна, возможно, только в Git)

BaseResult::getWarnings — Получает предупреждения последней операции

Описание

abstract public mysql_xdevapi\BaseResult::getWarnings ( void ) : array

Получает предупреждения, сгенерированные последней операцией сервера MySQL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив объектов Warning последней операции. Каждый объект содержит сообщение об ошибке ('message'), уровень ошибки ('level') и код ошибки ('code'). Возвращается пустой массив, если ошибок нет.

Примеры

Пример #1 Пример использования mysql_xdevapi\RowResult::getWarnings()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table  = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();
$warnings = $res->getWarnings();

print_r($warnings);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
    [1] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
)


Получает количество предупреждений последней операции

  • « BaseResult::getWarnings
  • mysql_xdevapi\Client »
  • PHP Manual
  • mysql_xdevapi\BaseResult
  • Получает количество предупреждений последней операции

BaseResult::getWarningsCount

(Информация о версии неизвестна, возможно, только в Git)

BaseResult::getWarningsCount — Получает количество предупреждений последней операции

Описание

abstract public mysql_xdevapi\BaseResult::getWarningsCount ( void ) : integer

Возвращает количество предупреждений, выданных последней операцией. В частности, эти предупреждения вызываются сервером MySQL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество предупреждений последней операции.

Примеры

Пример #1 Пример использования mysql_xdevapi\RowResult::getWarningsCount()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS foo")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table  = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();

echo $res->getWarningsCount();
?>

Результатом выполнения данного примера будет что-то подобное:

2


Client class

(Информация о версии неизвестна, возможно, только в Git)

Введение

Provides access to the connection pool.

Обзор классов

mysql_xdevapi\Client {
/* Методы */
public close ( void ) : bool
public getSession ( void ) : mysql_xdevapi\Session
}

Содержание

  • mysql_xdevapi\Client::close — Close client
  • Client::__construct — Client constructor
  • Client::getClient — Get client session


Close client

  • « mysql_xdevapi\Client
  • Client::__construct »
  • PHP Manual
  • mysql_xdevapi\Client
  • Close client

mysql_xdevapi\Client::close

(Информация о версии неизвестна, возможно, только в Git)

mysql_xdevapi\Client::close — Close client

Описание

public mysql_xdevapi\Client::close ( void ) : bool

Close all client connections with the server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE if connections are closed.


Client constructor

  • « mysql_xdevapi\Client::close
  • Client::getClient »
  • PHP Manual
  • mysql_xdevapi\Client
  • Client constructor

Client::__construct

(Информация о версии неизвестна, возможно, только в Git)

Client::__construct — Client constructor

Описание

private mysql_xdevapi\Client::__construct ( void )

Construct a client object.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 mysql_xdevapi\Client::__construct() example

<?php
$pooling_options = '{
  "enabled": true,
    "maxSize": 10,
    "maxIdleTime": 3600,
    "queueTimeOut": 1000
}';
$client = mysql_xdevapi\getClient($connection_uri, $pooling_options);
$session = $client->getSession();


Get client session

  • « Client::__construct
  • mysql_xdevapi\Collection »
  • PHP Manual
  • mysql_xdevapi\Client
  • Get client session

Client::getClient

(Информация о версии неизвестна, возможно, только в Git)

Client::getClient — Get client session

Описание

public mysql_xdevapi\Client::getSession ( void ) : mysql_xdevapi\Session

Get session associated with the client.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A Session object.


Класс Collection

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\Collection implements mysql_xdevapi\SchemaObject {
/* Свойства */
public $name ;
/* Методы */
public add ( mixed $document ) : mysql_xdevapi\CollectionAdd
public addOrReplaceOne ( string $id , string $doc ) : mysql_xdevapi\Result
public count ( void ) : integer
public createIndex ( string $index_name , string $index_desc_json ) : void
public dropIndex ( string $index_name ) : bool
public existsInDatabase ( void ) : bool
public find ([ string $search_condition ] ) : mysql_xdevapi\CollectionFind
public getName ( void ) : string
public getOne ( string $id ) : Document
public getSchema ( void ) : Schema Object
public getSession ( void ) : Session
public modify ( string $search_condition ) : mysql_xdevapi\CollectionModify
public remove ( string $search_condition ) : mysql_xdevapi\CollectionRemove
public removeOne ( string $id ) : mysql_xdevapi\Result
public replaceOne ( string $id , string $doc ) : mysql_xdevapi\Result
}

Свойства

name

Содержание

  • Collection::add — Добавляет документ в коллекцию
  • Collection::addOrReplaceOne — Добавляет или заменяет документ коллекции
  • Collection::__construct — Конструктор класса Collection
  • Collection::count — Получает количество документов
  • Collection::createIndex — Создает индекс для коллекции
  • Collection::dropIndex — Drop collection index
  • Collection::existsInDatabase — Проверяет, существует ли коллекция в базе данных
  • Collection::find — Search for document
  • Collection::getName — Получает название коллекции
  • Collection::getOne — Получает один документ
  • Collection::getSchema — Get schema object
  • Collection::getSession — Get session object
  • Collection::modify — Modify collection documents
  • Collection::remove — Удаляет документы коллекции
  • Collection::removeOne — Удаляет один документ из коллекции
  • Collection::replaceOne — Заменяет один документ коллекции


Добавляет документ в коллекцию

  • « mysql_xdevapi\Collection
  • Collection::addOrReplaceOne »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Добавляет документ в коллекцию

Collection::add

(Информация о версии неизвестна, возможно, только в Git)

Collection::add — Добавляет документ в коллекцию

Описание

public mysql_xdevapi\Collection::add ( mixed $document ) : mysql_xdevapi\CollectionAdd

Запускает добавление данного документа (документов) в коллекцию, поддерживаются несколько вариантов метода. Возможные варианты:

  1. Добавление одного документа в виде строки JSON.

  2. Добавление одного документа в виде массива, например: [ 'field' => 'value', 'field2' => 'value2' ... ]

  3. В одну и ту же операцию можно добавить, как документ, так и несколько документов.

Список параметров

document

Один или несколько документов, это может быть либо JSON, либо массив полей с соответствующими значениями. Массив не может быть пустым.

Сервер MySQL автоматически генерирует уникальные значения _id для каждого документа (рекомендуется), хотя оно также может быть добавлено вручную. Это значение должно быть уникальным, иначе операция добавления не будет выполнена.

Возвращаемые значения

Объект CollectionAdd. Используйте execute() для возврата Result, который можно использовать для запроса количества затронутых элементов, количества предупреждений, сгенерированных операцией, или для получения списка сгенерированных идентификаторов для добавленных документов.

Примеры

Пример #1 Пример использования mysql_xdevapi\Collection::add()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

// Добавление двух документов
$collection->add('{"name": "Fred",  "age": 21, "job": "Construction"}')->execute();
$collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

// Добавление двух документов используя один объект JSON
$result = $collection->add(
  '{"name": "Bernie",
    "jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
    "hobbies": ["Sports","Making cupcakes"]}',
  '{"name": "Jane",
    "jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
    "hobbies": ["Walking","Making pies"]}')->execute();

// Получение списка сгенерированных идентификаторов последней операции add()
$ids = $result->getGeneratedIds();
print_r($ids);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 00005b6b53610000000000000056
    [1] => 00005b6b53610000000000000057
)

Примечания

Замечание:

MySQL Server 8.0 или выше генерирует уникальный _id, как показано в примере. Поле _id должно быть определено вручную, если используется MySQL Server 5.7.


Добавляет или заменяет документ коллекции

  • « Collection::add
  • Collection::__construct »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Добавляет или заменяет документ коллекции

Collection::addOrReplaceOne

(Информация о версии неизвестна, возможно, только в Git)

Collection::addOrReplaceOne — Добавляет или заменяет документ коллекции

Описание

public mysql_xdevapi\Collection::addOrReplaceOne ( string $id , string $doc ) : mysql_xdevapi\Result

Добавляет новый документ или заменяет существующий.

Вот несколько сценариев для этого метода:

  • Если ни идентификатор, ни какое-либо уникальное значение ключа не конфликтуют с каким-либо документом в коллекции, то этот документ добавляется.

  • Если идентификатор не соответствует ни одному документу, но одно или несколько уникальных значений ключей конфликтуют с документом в коллекции, выдается ошибка.

  • Если идентификатор соответствует существующему документу и уникальные ключи не определены для коллекции, то документ заменяется.

  • Если идентификатор соответствует существующему документу, или все уникальные ключи в документе замены соответствуют этому же документу или не конфликтуют с другими документами в коллекции, документ заменяется.

  • Если идентификатор соответствует существующему документу, а один или несколько уникальных ключей соответствуют документу, отличному от коллекции, выдается ошибка.

Список параметров

id

Идентификатор фильтра. Если идентификатор или любое другое поле с уникальным индексом уже существует в коллекции, он обновит соответствующий документ.

По умолчанию этот идентификатор автоматически генерируется MySQL Server при добавлении записи и упоминается, как поле с именем '_id'.

doc

Это документ для добавления или замены, представляющий собой строку JSON.

Возвращаемые значения

Объект Result.

Примеры

Пример #1 Пример использования mysql_xdevapi\Collection::addOrReplaceOne()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

// Использование add()
$result = $collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

// Использование addOrReplaceOne()
// Примечания: мы передаем известное значение _id
$result = $collection->addOrReplaceOne('00005b6b53610000000000000056', '{"name": "Fred",  "age": 21, "job": "Construction"}');

?>


Конструктор класса Collection

  • « Collection::addOrReplaceOne
  • Collection::count »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Конструктор класса Collection

Collection::__construct

(Информация о версии неизвестна, возможно, только в Git)

Collection::__construct — Конструктор класса Collection

Описание

private mysql_xdevapi\Collection::__construct ( void )

Создает объект Collection.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\Collection::getOne()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection->add('{"name": "Alfred", "age": 42, "job": "Butler"}')->execute();

// Уникальный _id (по умолчанию и рекомендуется) генерируется MySQL Server
// Возвращает сгенерированные _id; в этом примере добавлена только одна запись, поэтому $ids[0]
$ids        = $result->getGeneratedIds();
$alfreds_id = $ids[0];

// ...

print_r($alfreds_id);
print_r($collection->getOne($alfreds_id));
?>

Результатом выполнения данного примера будет что-то подобное:

00005b6b536100000000000000b1

Array
(
    [_id] => 00005b6b536100000000000000b1
    [age] => 42
    [job] => Butler
    [name] => Alfred
)


Получает количество документов

  • « Collection::__construct
  • Collection::createIndex »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Получает количество документов

Collection::count

(Информация о версии неизвестна, возможно, только в Git)

Collection::count — Получает количество документов

Описание

public mysql_xdevapi\Collection::count ( void ) : integer

Функционал аналогичен операции SQL SELECT COUNT(*) на сервере MySQL для текущей схемы и коллекции. Другими словами, метод подсчитывает количество документов в коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество документов в коллекции.

Примеры

Пример #1 Пример использования mysql_xdevapi\Collection::count()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

$result = $collection
  ->add(
  '{"name": "Bernie",
    "jobs": [
      {"title":"Cat Herder","Salary":42000},
      {"title":"Father","Salary":0}
    ],
    "hobbies": ["Sports","Making cupcakes"]}',
  '{"name": "Jane",
    "jobs": [
      {"title":"Scientist","Salary":18000},
      {"title":"Mother","Salary":0}
    ],
    "hobbies": ["Walking","Making pies"]}')
  ->execute();

var_dump($collection->count());
?>

Результат выполнения данного примера:

int(2)


Создает индекс для коллекции

  • « Collection::count
  • Collection::dropIndex »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Создает индекс для коллекции

Collection::createIndex

(Информация о версии неизвестна, возможно, только в Git)

Collection::createIndex — Создает индекс для коллекции

Описание

public mysql_xdevapi\Collection::createIndex ( string $index_name , string $index_desc_json ) : void

Создает индекс для коллекции.

Выдается исключение, если индекс с таким именем уже существует, или если определение индекса сформировано неправильно.

Список параметров

index_name

Имя индекса, который нужно создать. Должно быть корректным именем индекса, допустимым для SQL-запроса CREATE INDEX.

index_desc_json

Определение индекса для создания. Содержит массив объектов IndexField, и каждый объект описывает один элемент документа для добавления в индекс, а также необязательную строку для типа индекса, который может быть INDEX (по умолчанию) или SPATIAL.

Одно описание IndexField состоит из следующих полей:

  • field: строка, полный путь документа к элементу документа или полю для индексации.

  • type: строка, один из поддерживаемых типов столбцов SQL для сопоставления поля. Для числовых типов может быть добавлено необязательное ключевое слово UNSIGNED. Для типа TEXT может быть добавлена длина, учитываемая для индексации.

  • required: булево, (необязательное) true, если поле должно быть обязательным в документе. По умолчанию используется значение FALSE, за исключением типа GEOJSON, где по умолчанию используется значение TRUE.

  • options: целое число, (необязательное) флаги специальных опций для использования при декодировании данных GEOJSON.

  • srid: целое число, (необязательное) значение srid для использования при декодировании данных GEOJSON.

Ошибочно включать другие поля, не описанные выше, в документы IndexDefinition или IndexField.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\Collection::createIndex()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

// Создание текстового индекса
$collection->createIndex(
  'myindex1',
  '{"fields": [{
    "field": "$.name",
    "type": "TEXT(25)",
    "required": true}],
    "unique": false}'
);

// Пространственный индекс
$collection->createIndex(
  'myindex2',
  '{"fields": [{
    "field": "$.home",
    "type": "GEOJSON",
    "required": true}],
    "type": "SPATIAL"}'
);

// Индекс с несколькими полями
$collection->createIndex(
  'myindex3',
  '{"fields": [
    {
      "field": "$.name",
      "type": "TEXT(20)",
      "required": true
    },
    {
      "field": "$.age",
      "type": "INTEGER"
    },
    {
      "field": "$.job",
      "type": "TEXT(30)",
      "required": false
    }
  ],
  "unique": true
  }'
);


Drop collection index

  • « Collection::createIndex
  • Collection::existsInDatabase »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Drop collection index

Collection::dropIndex

(Информация о версии неизвестна, возможно, только в Git)

Collection::dropIndex — Drop collection index

Описание

public mysql_xdevapi\Collection::dropIndex ( string $index_name ) : bool

Drop a collection index.

This operation does not yield an error if the index does not exist, but FALSE is returned in that case.

Список параметров

index_name

Name of collection index to drop.

Возвращаемые значения

TRUE if the DROP INDEX operation succeeded, otherwise FALSE.

Примеры

Пример #1 mysql_xdevapi\Collection::dropIndex() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

// ...

$collection = $schema->getCollection("people");

$collection->createIndex(
  'myindex',
  '{"fields": [{"field": "$.name", "type": "TEXT(25)", "required": true}], "unique": false}'
);

// ...

if ($collection->dropIndex('myindex')) {
    echo 'An index named 'myindex' was found, and dropped.';
}
?>

Результат выполнения данного примера:

An index named 'myindex' was found, and dropped.


Проверяет, существует ли коллекция в базе данных

  • « Collection::dropIndex
  • Collection::find »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Проверяет, существует ли коллекция в базе данных

Collection::existsInDatabase

(Информация о версии неизвестна, возможно, только в Git)

Collection::existsInDatabase — Проверяет, существует ли коллекция в базе данных

Описание

public mysql_xdevapi\Collection::existsInDatabase ( void ) : bool

Проверяет, ссылается ли объект Collection на коллекцию в базе данных (схему).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если коллекция существует в базе данных, иначе FALSE если это не так.

Примеры

Пример #1 Пример использования mysql_xdevapi\Collection::existsInDatabase()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

// ...

$collection = $schema->getCollection("people");

// ...

if (!$collection->existsInDatabase()) {
    echo "Коллекция с именем addressbook не существует в базе данных. Что случилось?";
}
?>


Search for document

  • « Collection::existsInDatabase
  • Collection::getName »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Search for document

Collection::find

(Информация о версии неизвестна, возможно, только в Git)

Collection::find — Search for document

Описание

public mysql_xdevapi\Collection::find ([ string $search_condition ] ) : mysql_xdevapi\CollectionFind

Search a database collection for a document or set of documents. The found documents are returned as a CollectionFind object is to further modify or fetch results from.

Список параметров

search_condition

Although optional, normally a condition is defined to limit the results to a subset of documents.

Multiple elements might build the condition and the syntax supports parameter binding. The expression used as search condition must be a valid SQL expression. If no search condition is provided (field empty) then find('true') is assumed.

Возвращаемые значения

A CollectionFind object to verify the operation, or fetch the found documents.

Примеры

Пример #1 mysql_xdevapi\Collection::find() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Alfred",     "age": 18, "job": "Butler"}')->execute();
$collection->add('{"name": "Bob",        "age": 19, "job": "Swimmer"}')->execute();
$collection->add('{"name": "Fred",       "age": 20, "job": "Construction"}')->execute();
$collection->add('{"name": "Wilma",      "age": 21, "job": "Teacher"}')->execute();
$collection->add('{"name": "Suki",       "age": 22, "job": "Teacher"}')->execute();

$find   = $collection->find('job LIKE :job AND age > :age');
$result = $find
  ->bind(['job' => 'Teacher', 'age' => 20])
  ->sort('age DESC')
  ->limit(2)
  ->execute();

print_r($result->fetchAll());
?>

Результат выполнения данного примера:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b536100000000000000a8
            [age] => 22
            [job] => Teacher
            [name] => Suki
        )
    [1] => Array
        (
            [_id] => 00005b6b536100000000000000a7
            [age] => 21
            [job] => Teacher
            [name] => Wilma
        )
)


Получает название коллекции

  • « Collection::find
  • Collection::getOne »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Получает название коллекции

Collection::getName

(Информация о версии неизвестна, возможно, только в Git)

Collection::getName — Получает название коллекции

Описание

public mysql_xdevapi\Collection::getName ( void ) : string

Получает название коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Название коллекции в виде строки.

Примеры

Пример #1 Пример использования mysql_xdevapi\Collection::getName()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

// ...

var_dump($collection->getName());
?>

Результатом выполнения данного примера будет что-то подобное:

string(6) "people"


Получает один документ

  • « Collection::getName
  • Collection::getSchema »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Получает один документ

Collection::getOne

(Информация о версии неизвестна, возможно, только в Git)

Collection::getOne — Получает один документ

Описание

public mysql_xdevapi\Collection::getOne ( string $id ) : Document

Выбирает один документ из коллекции.

Это краткая запись для: Collection.find("_id = :id").bind("id", id).execute().fetchOne();

Список параметров

id

_id документа в коллекции.

Возвращаемые значения

Объект коллекции или NULL, если _id не соответствует документу.

Примеры

Пример #1 Пример использования mysql_xdevapi\Collection::getOne()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection->add('{"name": "Alfred", "age": 42, "job": "Butler"}')->execute();

// Уникальный _id (по умолчанию и рекомендуется) генерируется MySQL Server
// Возвращает сгенерированные _id; в этом примере только одна запись, поэтому $ids[0]
$ids        = $result->getGeneratedIds();
$alfreds_id = $ids[0];

// ...

print_r($alfreds_id);
print_r($collection->getOne($alfreds_id));
?>

Результатом выполнения данного примера будет что-то подобное:

00005b6b536100000000000000b1

Array
(
    [_id] => 00005b6b536100000000000000b1
    [age] => 42
    [job] => Butler
    [name] => Alfred
)


Get schema object

  • « Collection::getOne
  • Collection::getSession »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Get schema object

Collection::getSchema

(Информация о версии неизвестна, возможно, только в Git)

Collection::getSchema — Get schema object

Описание

public mysql_xdevapi\Collection::getSchema ( void ) : Schema Object

Retrieve the schema object that contains the collection.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The schema object on success, or NULL if the object cannot be retrieved for the given collection.

Примеры

Пример #1 mysql_xdevapi\Collection::getSchema() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

var_dump($collection->getSchema());
?>

Результатом выполнения данного примера будет что-то подобное:

object(mysql_xdevapi\Schema)#9 (1) {
  ["name"]=>
  string(11) "addressbook"
}


Get session object

  • « Collection::getSchema
  • Collection::modify »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Get session object

Collection::getSession

(Информация о версии неизвестна, возможно, только в Git)

Collection::getSession — Get session object

Описание

public mysql_xdevapi\Collection::getSession ( void ) : Session

Get a new Session object from the Collection object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A Session object.

Примеры

Пример #1 mysql_xdevapi\Collection::getSession() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

// ...

$newsession = $collection->getSession();

var_dump($session);
var_dump($newsession);
?>

Результатом выполнения данного примера будет что-то подобное:

object(mysql_xdevapi\Session)#1 (0) {
}
object(mysql_xdevapi\Session)#4 (0) {
}


Modify collection documents

  • « Collection::getSession
  • Collection::remove »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Modify collection documents

Collection::modify

(Информация о версии неизвестна, возможно, только в Git)

Collection::modify — Modify collection documents

Описание

public mysql_xdevapi\Collection::modify ( string $search_condition ) : mysql_xdevapi\CollectionModify

Modify collections that meet specific search conditions. Multiple operations are allowed, and parameter binding is supported.

Список параметров

search_condition

Must be a valid SQL expression used to match the documents to modify. This expression might be as simple as TRUE, which matches all documents, or it might use functions and operators such as 'CAST(_id AS SIGNED) >= 10', 'age MOD 2 = 0 OR age MOD 3 = 0', or '_id IN ["2","5","7","10"]'.

Возвращаемые значения

If the operation is not executed, then the function will return a Modify object that can be used to add additional modify operations.

If the modify operation is executed, then the returned object will contain the result of the operation.

Примеры

Пример #1 mysql_xdevapi\Collection::modify() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$collection->add('{"name": "Bob",    "age": 19, "job": "Painter"}')->execute();

// Add two new jobs for all Painters: Artist and Crafter
$collection
  ->modify("job in ('Butler', 'Painter')")
  ->arrayAppend('job', 'Artist')
  ->arrayAppend('job', 'Crafter')
  ->execute();

// Remove the 'beer' field from all documents with the age 21
$collection
  ->modify('age < 21')
  ->unset(['beer'])
  ->execute();
?>


Удаляет документы коллекции

  • « Collection::modify
  • Collection::removeOne »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Удаляет документы коллекции

Collection::remove

(Информация о версии неизвестна, возможно, только в Git)

Collection::remove — Удаляет документы коллекции

Описание

public mysql_xdevapi\Collection::remove ( string $search_condition ) : mysql_xdevapi\CollectionRemove

Удаляет коллекции, которые соответствуют определенным условиям поиска. Допускается несколько операций и поддерживается привязка параметров.

Список параметров

search_condition

Должно быть корректным выражением SQL, используемым для сопоставления документов, которые нужно изменить. Выражение может быть таким же простым, как TRUE, которое соответствует всем документам, или оно может использовать функции и операторы, такие как 'CAST(_id AS SIGNED) >= 10', 'age MOD 2 = 0 OR age MOD 3 = 0', или '_id IN ["2","5","7","10"]'.

Возвращаемые значения

Если операция не выполнена, функция вернет объект Remove, который можно использовать для добавления дополнительных операций удаления.

Если операция удаления выполнена, то возвращенный объект будет содержать результат операции.

Примеры

Пример #1 Пример использования mysql_xdevapi\Collection::remove()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$collection->add('{"name": "Bob",    "age": 19, "job": "Painter"}')->execute();

// Удаление всех художников
$collection
  ->remove("job in ('Painter')")
  ->execute();

// Удаление самого старого дворецкого
$collection
  ->remove("job in ('Butler')")
  ->sort('age desc')
  ->limit(1)
  ->execute();

// Удаление записи с самым низким возрастом
$collection
  ->remove('true')
  ->sort('age desc')
  ->limit(1)
  ->execute();
?>


Удаляет один документ из коллекции

  • « Collection::remove
  • Collection::replaceOne »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Удаляет один документ из коллекции

Collection::removeOne

(Информация о версии неизвестна, возможно, только в Git)

Collection::removeOne — Удаляет один документ из коллекции

Описание

public mysql_xdevapi\Collection::removeOne ( string $id ) : mysql_xdevapi\Result

Удаляет один документ из коллекции с соответствующим идентификатором. Сокращенная запись для Collection.remove("_id = :id").bind("id", id).execute().

Список параметров

id

Идентификатор документа коллекции, который нужно удалить. Обычно это _id, который был сгенерирован MySQL Server при добавлении записи.

Возвращаемые значения

Объект Result, который можно использовать для запроса количества затронутых элементов или количества предупреждений, сгенерированных операцией.

Примеры

Пример #1 Пример использования mysql_xdevapi\Collection::removeOne()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();

// Обычно _id известен другими способами,
// но для этого примера давайте извлечем сгенерированный идентификатор и используем его
$ids       = $result->getGeneratedIds();
$alfred_id = $ids[0];

$result = $collection->removeOne($alfred_id);

if(!$result->getAffectedItemsCount()) {
    echo "Alfred с идентификатором $alfred_id не был удален.";
} else {
    echo "До свидания, Alfred, ты можешь взять с собой _id $alfred_id.";
}
?>

Результатом выполнения данного примера будет что-то подобное:

До свидания, Alfred, ты можешь взять с собой _id 00005b6b536100000000000000cb.


Заменяет один документ коллекции

  • « Collection::removeOne
  • mysql_xdevapi\CollectionAdd »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Заменяет один документ коллекции

Collection::replaceOne

(Информация о версии неизвестна, возможно, только в Git)

Collection::replaceOne — Заменяет один документ коллекции

Описание

public mysql_xdevapi\Collection::replaceOne ( string $id , string $doc ) : mysql_xdevapi\Result

Обновляет (или заменяет) документ, по идентификатору, если он существует.

Список параметров

id

Идентификатор документа для замены или обновления. Обычно это _id, который был сгенерирован MySQL Server при добавлении записи.

doc

Документ коллекции для обновления или замены документа, соответствующего параметру id .

Документ может быть либо объектом документа, либо корректной строкой JSON, описывающей новый документ.

Возвращаемые значения

Объект Result, который можно использовать для запроса количества затронутых элементов и количества предупреждений, сгенерированных операцией.

Примеры

Пример #1 Пример использования mysql_xdevapi\Collection::replaceOne()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();

// Обычно _id известен другими способами,
// но для этого примера давайте извлечем сгенерированный идентификатор и используем его
$ids       = $result->getGeneratedIds();
$alfred_id = $ids[0];

// ...

$alfred = $collection->getOne($alfred_id);
$alfred['age'] = 81;
$alfred['job'] = 'Guru';

$collection->replaceOne($alfred_id, $alfred);

?>


Класс CollectionAdd

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\CollectionAdd implements mysql_xdevapi\Executable {
/* Методы */
public execute ( void ) : mysql_xdevapi\Result
}

Содержание

  • CollectionAdd::__construct — Конструктор класса CollectionAdd
  • CollectionAdd::execute — Выполняет утверждение


Конструктор класса CollectionAdd

  • « mysql_xdevapi\CollectionAdd
  • CollectionAdd::execute »
  • PHP Manual
  • mysql_xdevapi\CollectionAdd
  • Конструктор класса CollectionAdd

CollectionAdd::__construct

(Информация о версии неизвестна, возможно, только в Git)

CollectionAdd::__construct — Конструктор класса CollectionAdd

Описание

private mysql_xdevapi\CollectionAdd::__construct ( void )

Используется для добавления документа в коллекцию; вызывается из объекта Collection.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionAdd::__construct()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

// Добавляем два документа
$collection
  ->add('{"name": "Fred",  "age": 21, "job": "Construction"}')
  ->execute();

$collection
  ->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')
  ->execute();

// Добавляем два документа, используя один объект JSON
$result = $collection
  ->add(
    '{"name": "Bernie",
      "jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
      "hobbies": ["Sports","Making cupcakes"]}',
    '{"name": "Jane",
      "jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
      "hobbies": ["Walking","Making pies"]}')
  ->execute();

// Получаем список сгенерированных идентификаторов из последнего выполнения add()
$ids = $result->getGeneratedIds();
print_r($ids);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 00005b6b53610000000000000056
    [1] => 00005b6b53610000000000000057
)

Примечания

Замечание:

MySQL Server 8.0 или выше генерирует уникальный _id, как показано в примере. Поле _id должно быть определено вручную, если используется MySQL Server 5.7.


Выполняет утверждение

  • « CollectionAdd::__construct
  • mysql_xdevapi\CollectionFind »
  • PHP Manual
  • mysql_xdevapi\CollectionAdd
  • Выполняет утверждение

CollectionAdd::execute

(Информация о версии неизвестна, возможно, только в Git)

CollectionAdd::execute — Выполняет утверждение

Описание

public mysql_xdevapi\CollectionAdd::execute ( void ) : mysql_xdevapi\Result

Метод execute необходим для отправки запроса операции CRUD на сервер MySQL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Result, который можно использовать для проверки состояния операции, например, количества затронутых строк.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionAdd::execute()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

// Добавляем два документа
$collection
  ->add('{"name": "Fred",  "age": 21, "job": "Construction"}')
  ->execute();

$collection
  ->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')
  ->execute();

// Добавляем два документа, используя один объект JSON
$result = $collection
  ->add(
    '{"name": "Bernie",
      "jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
      "hobbies": ["Sports","Making cupcakes"]}',
    '{"name": "Jane",
      "jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
      "hobbies": ["Walking","Making pies"]}')
  ->execute();

// Получаем список сгенерированных идентификаторов из последнего выполнения add()
$ids = $result->getGeneratedIds();
print_r($ids);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 00005b6b53610000000000000056
    [1] => 00005b6b53610000000000000057
)


Класс CollectionFind

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\CollectionFind implements mysql_xdevapi\Executable , mysql_xdevapi\CrudOperationBindable , mysql_xdevapi\CrudOperationLimitable , mysql_xdevapi\CrudOperationSortable {
/* Методы */
public bind ( array $placeholder_values ) : mysql_xdevapi\CollectionFind
public execute ( void ) : mysql_xdevapi\DocResult
public fields ( string $projection ) : mysql_xdevapi\CollectionFind
public groupBy ( string $sort_expr ) : mysql_xdevapi\CollectionFind
public having ( string $sort_expr ) : mysql_xdevapi\CollectionFind
public limit ( integer $rows ) : mysql_xdevapi\CollectionFind
public lockExclusive ([ integer $lock_waiting_option ] ) : mysql_xdevapi\CollectionFind
public lockShared ([ integer $lock_waiting_option ] ) : mysql_xdevapi\CollectionFind
public offset ( integer $position ) : mysql_xdevapi\CollectionFind
public sort ( string $sort_expr ) : mysql_xdevapi\CollectionFind
}

Содержание

  • CollectionFind::bind — Привязывает значение к заполнителю запроса
  • CollectionFind::__construct — Конструктор класса CollectionFind
  • CollectionFind::execute — Выполняет утверждение
  • CollectionFind::fields — Устанавливает фильтр поля документа
  • CollectionFind::groupBy — Устанавливает критерии группировки
  • CollectionFind::having — Устанавливает условие для агрегатных функций
  • CollectionFind::limit — Ограничивает количество возвращаемых документов
  • CollectionFind::lockExclusive — Выполняет операцию с EXCLUSIVE LOCK
  • CollectionFind::lockShared — Выполняет операцию с SHARED LOCK
  • CollectionFind::offset — Пропускает указанное количество возвращаемых элементов
  • CollectionFind::sort — Устанавливает критерии сортировки


Привязывает значение к заполнителю запроса

  • « mysql_xdevapi\CollectionFind
  • CollectionFind::__construct »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Привязывает значение к заполнителю запроса

CollectionFind::bind

(Информация о версии неизвестна, возможно, только в Git)

CollectionFind::bind — Привязывает значение к заполнителю запроса

Описание

public mysql_xdevapi\CollectionFind::bind ( array $placeholder_values ) : mysql_xdevapi\CollectionFind

Позволяет пользователю привязать параметр к заполнителю в условии поиска операции поиска. Заполнитель имеет вид :NAME, где ':' - это общий префикс, который должен всегда существовать перед любым NAME, NAME - фактическое имя заполнителя. Функция bind принимает список заполнителей, если в условии поиска необходимо заменить несколько объектов.

Список параметров

placeholder_values

Значения для подстановки в условиях поиска; допускается несколько значений, которые передаются в виде массива, где "PLACEHOLDER_NAME => PLACEHOLDER_VALUE".

Возвращаемые значения

Объект CollectionFind, или цепочка с execute() для возврата объекта Result.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionFind::bind()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$result = $create
  ->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
  ->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->execute();

var_dump($result->fetchAll());
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000cf"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }
}


Конструктор класса CollectionFind

  • « CollectionFind::bind
  • CollectionFind::execute »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Конструктор класса CollectionFind

CollectionFind::__construct

(Информация о версии неизвестна, возможно, только в Git)

CollectionFind::__construct — Конструктор класса CollectionFind

Описание

private mysql_xdevapi\CollectionFind::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования CollectionFind

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$result = $create
  ->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
  ->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->execute();

var_dump($result->fetchAll());
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000cf"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }
}


Выполняет утверждение

  • « CollectionFind::__construct
  • CollectionFind::fields »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Выполняет утверждение

CollectionFind::execute

(Информация о версии неизвестна, возможно, только в Git)

CollectionFind::execute — Выполняет утверждение

Описание

public mysql_xdevapi\CollectionFind::execute ( void ) : mysql_xdevapi\DocResult

Выполняет операцию поиска; эта функциональность разрешена для цепочки методов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект DocResult, из которого можно получить результаты или запросить состояние операции.

Примеры

Пример #1 Пример использования CollectionFind

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create
  ->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
  ->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->execute();

var_dump($result->fetchAll());
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000cf"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }
}


Устанавливает фильтр поля документа

  • « CollectionFind::execute
  • CollectionFind::groupBy »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Устанавливает фильтр поля документа

CollectionFind::fields

(Информация о версии неизвестна, возможно, только в Git)

CollectionFind::fields — Устанавливает фильтр поля документа

Описание

public mysql_xdevapi\CollectionFind::fields ( string $projection ) : mysql_xdevapi\CollectionFind

Определяет столбцы для запроса, которые нужно вернуть. Если не определено, то возвращаются все столбцы.

Список параметров

projection

Может быть одной строкой или массивом строк, эти строки определяют столбцы, которые должны быть возвращены для каждого документа, соответствующего условию поиска.

Возвращаемые значения

Объект CollectionFind, который можно использовать для дальнейшей обработки.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionFind::fields()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create
  ->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
  ->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->fields('name')
  ->execute();

var_dump($result->fetchAll());
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(1) {
    ["name"]=>
    string(6) "Alfred"
  }
}


Устанавливает критерии группировки

  • « CollectionFind::fields
  • CollectionFind::having »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Устанавливает критерии группировки

CollectionFind::groupBy

(Информация о версии неизвестна, возможно, только в Git)

CollectionFind::groupBy — Устанавливает критерии группировки

Описание

public mysql_xdevapi\CollectionFind::groupBy ( string $sort_expr ) : mysql_xdevapi\CollectionFind

Функция может использоваться для группировки набора результатов по еще одному столбцу, часто это используется с агрегатными функциями, такими как COUNT,MAX,MIN,SUM и т.д.

Список параметров

sort_expr

Столбец или столбцы, которые должны использоваться для операции группировки, это может быть либо одна строка, либо массив строковых аргументов, по одному для каждого столбца.

Возвращаемые значения

Объект CollectionFind, который можно использовать для дальнейшей обработки.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionFind::groupBy()

<?php

//Предполагая, что $coll является корректным объектом Collection

//Извлекает все документы из коллекции и группирует результаты по полю 'name'
$res = $coll->find()->groupBy('name')->execute();

?>


Устанавливает условие для агрегатных функций

  • « CollectionFind::groupBy
  • CollectionFind::limit »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Устанавливает условие для агрегатных функций

CollectionFind::having

(Информация о версии неизвестна, возможно, только в Git)

CollectionFind::having — Устанавливает условие для агрегатных функций

Описание

public mysql_xdevapi\CollectionFind::having ( string $sort_expr ) : mysql_xdevapi\CollectionFind

Функция может использоваться после операции 'field', чтобы сделать выборку документов для извлечения.

Список параметров

sort_expr

Должно быть корректное выражение SQL, разрешено использование агрегатных функций.

Возвращаемые значения

Объект CollectionFind, который можно использовать для дальнейшей обработки.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionFind::having()

<?php

//Предполагая, что $coll является корректным объектом Collection

//Найти все документы, у которых 'age' больше 40,
//В объекте Result возвращаются только столбцы 'name' и 'age'.
$res = $coll->find()->fields(['name','age'])->having('age > 40')->execute();

?>


Ограничивает количество возвращаемых документов

  • « CollectionFind::having
  • CollectionFind::lockExclusive »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Ограничивает количество возвращаемых документов

CollectionFind::limit

(Информация о версии неизвестна, возможно, только в Git)

CollectionFind::limit — Ограничивает количество возвращаемых документов

Описание

public mysql_xdevapi\CollectionFind::limit ( integer $rows ) : mysql_xdevapi\CollectionFind

Устанавливает максимальное количество документов для возврата.

Список параметров

rows

Максимальное количество документов.

Возвращаемые значения

Объект CollectionFind, который можно использовать для дополнительной обработки; цепочка с методом execute() для возврата объекта DocResult.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionFind::limit()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$create
  ->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
  ->execute();
$create
  ->add('{"name": "Reginald", "age": 42, "job": "Butler"}')
  ->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->sort('age desc')
  ->limit(1)
  ->execute();

var_dump($result->fetchAll());
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000f3"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }
}


Выполняет операцию с EXCLUSIVE LOCK

  • « CollectionFind::limit
  • CollectionFind::lockShared »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Выполняет операцию с EXCLUSIVE LOCK

CollectionFind::lockExclusive

(Информация о версии неизвестна, возможно, только в Git)

CollectionFind::lockExclusive — Выполняет операцию с EXCLUSIVE LOCK

Описание

public mysql_xdevapi\CollectionFind::lockExclusive ([ integer $lock_waiting_option ] ) : mysql_xdevapi\CollectionFind

Блокирует исключительно документ, другие транзакции блокируются с момента обновления документа и до тех пор, пока документ заблокирован. Пока документ заблокирован, другие транзакции не могут обновлять эти документы, выполнять SELECT ... LOCK IN SHARE MODE или читать данные на определенных уровнях изоляции транзакций. Последовательные чтения игнорируют любые блокировки, установленные для записей, которые существуют в представлении чтения.

Функция полезна непосредственно с командой modify(), чтобы избежать проблем параллелизма. По сути, она сериализует доступ к строке через блокировку строки.

Список параметров

lock_waiting_option

Дополнительная опция ожидания. По умолчанию имеет значение MYSQLX_LOCK_DEFAULT. Допустимые значения представлены константами:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

Возвращаемые значения

Возвращает объект CollectionFind, который можно использовать для дальнейшей обработки.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionFind::lockExclusive()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$session->startTransaction();

$result = $collection
  ->find("age > 50")
  ->lockExclusive()
  ->execute();

// ... выполняем операцию с объектом

// Завершаем транзакцию и разблокируем документ
$session->commit();
?>


Выполняет операцию с SHARED LOCK

  • « CollectionFind::lockExclusive
  • CollectionFind::offset »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Выполняет операцию с SHARED LOCK

CollectionFind::lockShared

(Информация о версии неизвестна, возможно, только в Git)

CollectionFind::lockShared — Выполняет операцию с SHARED LOCK

Описание

public mysql_xdevapi\CollectionFind::lockShared ([ integer $lock_waiting_option ] ) : mysql_xdevapi\CollectionFind

Позволяет разделять документы между несколькими транзакциями, которые блокируются в режиме совместного использования.

Другие сеансы могут читать строки, но не могут изменять их, пока ваша транзакция не будет зафиксирована.

Если какая-либо из этих строк была изменена другой транзакцией, которая еще не зафиксирована,

ваш запрос подождет завершения этой транзакции, а затем использует самые последние значения.

Список параметров

lock_waiting_option

Дополнительная опция ожидания. По умолчанию имеет значение MYSQLX_LOCK_DEFAULT. Допустимые значения представлены константами:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

Возвращаемые значения

Объект CollectionFind, который можно использовать для дальнейшей обработки

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionFind::lockShared()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$session->startTransaction();

$result = $collection
  ->find("age > 50")
  ->lockShared()
  ->execute();

// ... читаем объект в режиме совместного использования

// Завершаем транзакцию и разблокируем документ
$session->commit();
?>


Пропускает указанное количество возвращаемых элементов

  • « CollectionFind::lockShared
  • CollectionFind::sort »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Пропускает указанное количество возвращаемых элементов

CollectionFind::offset

(Информация о версии неизвестна, возможно, только в Git)

CollectionFind::offset — Пропускает указанное количество возвращаемых элементов

Описание

public mysql_xdevapi\CollectionFind::offset ( integer $position ) : mysql_xdevapi\CollectionFind

Пропускает (смещает) это количество элементов, которые в противном случае были бы возвращены операцией поиска. Используйте совместно с методом limit().

При значении, превышающем размер набора результатов, приводит к пустому набору.

Список параметров

position

Количество элементов, которые нужно пропустить для операции limit().

Возвращаемые значения

Объект CollectionFind, который можно использовать для дополнительной обработки.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionFind::offset()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$create
  ->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
  ->execute();
$create
  ->add('{"name": "Reginald", "age": 42, "job": "Butler"}')
  ->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
  ->find()
  ->sort('age asc')
  ->offset(1)
  ->limit(1)
  ->execute();

var_dump($result->fetchAll());
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000f3"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }
}


Устанавливает критерии сортировки

  • « CollectionFind::offset
  • mysql_xdevapi\CollectionModify »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Устанавливает критерии сортировки

CollectionFind::sort

(Информация о версии неизвестна, возможно, только в Git)

CollectionFind::sort — Устанавливает критерии сортировки

Описание

public mysql_xdevapi\CollectionFind::sort ( string $sort_expr ) : mysql_xdevapi\CollectionFind

Сортирует набор результатов по полю, выбранному в аргументе sort_expr. Разрешенные направления: ASC (по возрастанию) или DESC (по убыванию). Операция эквивалентна операции SQL 'ORDER BY' и соответствует тому же набору правил.

Список параметров

sort_expr

Можно указать одно или несколько выражений сортировки, Применяется слева направо, каждое выражение должно быть разделено запятой.

Возвращаемые значения

Объект CollectionFind, который можно использовать для выполнения команды или для добавления дополнительных операций.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionFind::sort()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$create
  ->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
  ->execute();
$create
  ->add('{"name": "Reginald", "age": 42, "job": "Butler"}')
  ->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
  ->find()
  ->sort('job desc', 'age asc')
  ->execute();

var_dump($result->fetchAll());
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b53610000000000000106"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }
  [1]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b53610000000000000107"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }
}


Класс CollectionModify

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\CollectionModify implements mysql_xdevapi\Executable , mysql_xdevapi\CrudOperationBindable , mysql_xdevapi\CrudOperationLimitable , mysql_xdevapi\CrudOperationSkippable , mysql_xdevapi\CrudOperationSortable {
/* Методы */
public arrayAppend ( string $collection_field , string $expression_or_literal ) : mysql_xdevapi\CollectionModify
public arrayInsert ( string $collection_field , string $expression_or_literal ) : mysql_xdevapi\CollectionModify
public bind ( array $placeholder_values ) : mysql_xdevapi\CollectionModify
public execute ( void ) : mysql_xdevapi\Result
public limit ( integer $rows ) : mysql_xdevapi\CollectionModify
public patch ( string $document ) : mysql_xdevapi\CollectionModify
public replace ( string $collection_field , string $expression_or_literal ) : mysql_xdevapi\CollectionModify
public set ( string $collection_field , string $expression_or_literal ) : mysql_xdevapi\CollectionModify
public skip ( integer $position ) : mysql_xdevapi\CollectionModify
public sort ( string $sort_expr ) : mysql_xdevapi\CollectionModify
public unset ( array $fields ) : mysql_xdevapi\CollectionModify
}

Содержание

  • CollectionModify::arrayAppend — Добавляет элемент в поле массива
  • CollectionModify::arrayInsert — Добавляет элемент в поле массива
  • CollectionModify::bind — Привязывает значение к заполнителю запроса
  • CollectionModify::__construct — Конструктор класса CollectionModify
  • CollectionModify::execute — Выполняет операцию изменения
  • CollectionModify::limit — Ограничивает количество изменяемых документов
  • CollectionModify::patch — Исправляет документ
  • CollectionModify::replace — Заменяет поле документа
  • CollectionModify::set — Устанавливает атрибут документа
  • CollectionModify::skip — Пропускает элементы
  • CollectionModify::sort — Устанавливает критерии сортировки
  • CollectionModify::unset — Сбрасывает значение полей документа


Добавляет элемент в поле массива

  • « mysql_xdevapi\CollectionModify
  • CollectionModify::arrayInsert »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Добавляет элемент в поле массива

CollectionModify::arrayAppend

(Информация о версии неизвестна, возможно, только в Git)

CollectionModify::arrayAppend — Добавляет элемент в поле массива

Описание

public mysql_xdevapi\CollectionModify::arrayAppend ( string $collection_field , string $expression_or_literal ) : mysql_xdevapi\CollectionModify

Добавляет элемент в поле документа, когда несколько элементов поля представляются в виде массива. В отличие от arrayInsert(), arrayAppend() всегда добавляет новый элемент в конец массива, тогда как arrayInsert() может определять местоположение.

Список параметров

collection_field

Идентификатор поля, в которое вставляется новый элемент.

expression_or_literal

Новый элемент для добавления в конец массива полей документа.

Возвращаемые значения

Объект CollectionModify, который можно использовать для выполнения команды или для добавления дополнительных операций.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionModify::arrayAppend()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
  ->add(
  '{"name":   "Bernie",
    "traits": ["Friend", "Brother", "Human"]}')
  ->execute();

$collection
  ->modify("name in ('Bernie', 'Jane')")
  ->arrayAppend('traits', 'Happy')
  ->execute();

$result = $collection
  ->find()
  ->execute();

print_r($result->fetchAll());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b5361000000000000010c
            [name] => Bernie
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                    [3] => Happy
                )
        )
)


Добавляет элемент в поле массива

  • « CollectionModify::arrayAppend
  • CollectionModify::bind »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Добавляет элемент в поле массива

CollectionModify::arrayInsert

(Информация о версии неизвестна, возможно, только в Git)

CollectionModify::arrayInsert — Добавляет элемент в поле массива

Описание

public mysql_xdevapi\CollectionModify::arrayInsert ( string $collection_field , string $expression_or_literal ) : mysql_xdevapi\CollectionModify

Добавляет элемент в поле документа, когда несколько элементов поля представляются в виде массива. В отличие от arrayAppend(), arrayInsert() позволяет вам указать, куда добавится новый элемент, определяя, за каким элементом он следует, тогда как arrayAppend() всегда добавляет новый элемент в конец массива.

Список параметров

collection_field

Определите элемент в массиве, после которого добавится новый элемент. Формат этого параметра: FIELD_NAME[ INDEX ], где FIELD_NAME - это имя поля документа, из которого удаляется элемент, а INDEX - это INDEX элемента в поле.

Поле INDEX основано на нуле, поэтому самый левый элемент массива имеет индекс 0.

expression_or_literal

Новый элемент для добавления после FIELD_NAME[ INDEX ]

Возвращаемые значения

Объект CollectionModify, который можно использовать для выполнения команды или для добавления дополнительных операций.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionModify::arrayInsert()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
  ->add(
  '{"name":   "Bernie",
    "traits": ["Friend", "Brother", "Human"]}')
  ->execute();

$collection
  ->modify("name in ('Bernie', 'Jane')")
  ->arrayInsert('traits[1]', 'Happy')
  ->execute();

$result = $collection
  ->find()
  ->execute();

print_r($result->fetchAll());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b5361000000000000010d
            [name] => Bernie
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Happy
                    [2] => Brother
                    [3] => Human
                )
        )
)


Привязывает значение к заполнителю запроса

  • « CollectionModify::arrayInsert
  • CollectionModify::__construct »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Привязывает значение к заполнителю запроса

CollectionModify::bind

(Информация о версии неизвестна, возможно, только в Git)

CollectionModify::bind — Привязывает значение к заполнителю запроса

Описание

public mysql_xdevapi\CollectionModify::bind ( array $placeholder_values ) : mysql_xdevapi\CollectionModify

Привязывает параметр к заполнителю в условии поиска операции изменения.

Заполнитель имеет вид :NAME, где ':' - это общий префикс, который должен всегда существовать до любого NAME, где NAME - это имя заполнителя. Метод bind принимает список заполнителей, если в условии поиска операции изменения необходимо заменить несколько объектов.

Список параметров

placeholder_values

Подстановочные значения для замены в условии поиска. Допускается использование нескольких значений, которые необходимо передать в виде массива сопоставлений PLACEHOLDER_NAME->PLACEHOLDER_VALUE.

Возвращаемые значения

Объект CollectionModify, который можно использовать для выполнения команды или для добавления дополнительных операций.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionModify::bind()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
  ->add(
  '{"name":   "Bernie",
    "traits": ["Friend", "Brother", "Human"]}')
  ->execute();

$collection
  ->modify("name = :name")
  ->bind(['name' => 'Bernie'])
  ->arrayAppend('traits', 'Happy')
  ->execute();

$result = $collection
  ->find()
  ->execute();

print_r($result->fetchAll());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b53610000000000000110
            [name] => Bernie
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                    [3] => Happy
                )
        )
)


Конструктор класса CollectionModify

  • « CollectionModify::bind
  • CollectionModify::execute »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Конструктор класса CollectionModify

CollectionModify::__construct

(Информация о версии неизвестна, возможно, только в Git)

CollectionModify::__construct — Конструктор класса CollectionModify

Описание

private mysql_xdevapi\CollectionModify::__construct ( void )

Ищменяет (обновляет) коллекцию и создается методом Collection::modify().

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionModify::__construct()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
  ->add(
  '{"name":   "Bernie",
    "traits": ["Friend", "Brother", "Human"]}')
  ->execute();

$collection
  ->modify("name in ('Bernie', 'Jane')")
  ->arrayAppend('traits', 'Happy')
  ->execute();

$result = $collection
  ->find()
  ->execute();

print_r($result->fetchAll());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b5361000000000000010c
            [name] => Bernie
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                    [3] => Happy
                )
        )
)


Выполняет операцию изменения

  • « CollectionModify::__construct
  • CollectionModify::limit »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Выполняет операцию изменения

CollectionModify::execute

(Информация о версии неизвестна, возможно, только в Git)

CollectionModify::execute — Выполняет операцию изменения

Описание

public mysql_xdevapi\CollectionModify::execute ( void ) : mysql_xdevapi\Result

Метод execute необходим для отправки запроса операции CRUD на сервер MySQL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Result, который можно использовать для проверки состояния операции, например, количества затронутых строк.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionModify::execute()

<?php

/* ... */

?>


Ограничивает количество изменяемых документов

  • « CollectionModify::execute
  • CollectionModify::patch »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Ограничивает количество изменяемых документов

CollectionModify::limit

(Информация о версии неизвестна, возможно, только в Git)

CollectionModify::limit — Ограничивает количество изменяемых документов

Описание

public mysql_xdevapi\CollectionModify::limit ( integer $rows ) : mysql_xdevapi\CollectionModify

Ограничивает количество документов, изменяемых этой операцией. При желании можно использовать skip() для определения значения смещения.

Список параметров

rows

Максимальное количество документов для изменения.

Возвращаемые значения

Объект CollectionModify.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionModify::limit()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Fred",  "age": 21, "job": "Construction"}')->execute();
$collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();
$collection->add('{"name": "Betty", "age": 24, "job": "Teacher"}')->execute();

$collection
  ->modify("job = :job")
  ->bind(['job' => 'Teacher'])
  ->set('job', 'Principal')
  ->limit(1)
  ->execute();

$result = $collection
  ->find()
  ->execute();

print_r($result->fetchAll());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b53610000000000000118
            [age] => 21
            [job] => Construction
            [name] => Fred
        )
    [1] => Array
        (
            [_id] => 00005b6b53610000000000000119
            [age] => 23
            [job] => Principal
            [name] => Wilma
        )
    [2] => Array
        (
            [_id] => 00005b6b5361000000000000011a
            [age] => 24
            [job] => Teacher
            [name] => Betty
        )
)


Исправляет документ

  • « CollectionModify::limit
  • CollectionModify::replace »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Исправляет документ

CollectionModify::patch

(Информация о версии неизвестна, возможно, только в Git)

CollectionModify::patch — Исправляет документ

Описание

public mysql_xdevapi\CollectionModify::patch ( string $document ) : mysql_xdevapi\CollectionModify

Принимает объект исправления и применяет его к одному или нескольким документам и может обновлять несколько свойств документа.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

document

Документ со свойствами, применяемыми к соответствующим документам.

Возвращаемые значения

Объект CollectionModify.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionModify::patch()

<?php

$res = $coll->modify('"Programmatore" IN job')->patch('{"Hobby" : "Programmare"}')->execute();

?>


Заменяет поле документа

  • « CollectionModify::patch
  • CollectionModify::set »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Заменяет поле документа

CollectionModify::replace

(Информация о версии неизвестна, возможно, только в Git)

CollectionModify::replace — Заменяет поле документа

Описание

public mysql_xdevapi\CollectionModify::replace ( string $collection_field , string $expression_or_literal ) : mysql_xdevapi\CollectionModify

Заменяет (обновляет) данное значение поля новым.

Список параметров

collection_field

Путь документа к элементу для обновления.

expression_or_literal

Значение, устанавливаемое для указанного атрибута.

Возвращаемые значения

Объект CollectionModify.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionModify::replace()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
  ->add(
  '{"name":   "Bernie",
    "traits": ["Friend", "Brother", "Human"]}')
  ->execute();

$collection
  ->modify("name = :name")
  ->bind(['name' => 'Bernie'])
  ->replace("name", "Bern")
  ->execute();

$result = $collection
  ->find()
  ->execute();

print_r($result->fetchAll());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b5361000000000000011b
            [name] => Bern
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                )
        )
)


Устанавливает атрибут документа

  • « CollectionModify::replace
  • CollectionModify::skip »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Устанавливает атрибут документа

CollectionModify::set

(Информация о версии неизвестна, возможно, только в Git)

CollectionModify::set — Устанавливает атрибут документа

Описание

public mysql_xdevapi\CollectionModify::set ( string $collection_field , string $expression_or_literal ) : mysql_xdevapi\CollectionModify

Устанавливает или обновляет атрибуты документов в коллекции.

Список параметров

collection_field

Путь к документу (имя) элемента для установки.

expression_or_literal

Значение для установки.

Возвращаемые значения

Объект CollectionModify.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionModify::set()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
  ->add(
  '{"name":   "Bernie",
    "traits": ["Friend", "Brother", "Human"]}')
  ->execute();

$collection
  ->modify("name = :name")
  ->bind(['name' => 'Bernie'])
  ->set("name", "Bern")
  ->execute();

$result = $collection
  ->find()
  ->execute();

print_r($result->fetchAll());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b53610000000000000111
            [name] => Bern
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                )
        )
)


Пропускает элементы

  • « CollectionModify::set
  • CollectionModify::sort »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Пропускает элементы

CollectionModify::skip

(Информация о версии неизвестна, возможно, только в Git)

CollectionModify::skip — Пропускает элементы

Описание

public mysql_xdevapi\CollectionModify::skip ( integer $position ) : mysql_xdevapi\CollectionModify

Пропускает первые N элементов, которые в противном случае были бы возвращены операцией поиска. Если количество пропущенных элементов превышает размер набора результатов, операция поиска возвращает пустой набор.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

position

Количество пропускаемых элементов.

Возвращаемые значения

Объект CollectionModify, который можно использовать для дальнейшей обработки.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionModify::skip()

<?php

$coll->modify('age > :age')->sort('age desc')->unset(['age'])->bind(['age' => 20])->limit(4)->skip(1)->execute();

?>


Устанавливает критерии сортировки

  • « CollectionModify::skip
  • CollectionModify::unset »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Устанавливает критерии сортировки

CollectionModify::sort

(Информация о версии неизвестна, возможно, только в Git)

CollectionModify::sort — Устанавливает критерии сортировки

Описание

public mysql_xdevapi\CollectionModify::sort ( string $sort_expr ) : mysql_xdevapi\CollectionModify

Сортирует набор результатов по полю, выбранному в аргументе sort_expr. Разрешенные направления: ASC (по возрастанию) или DESC (по убыванию). Эта операция эквивалентна операции SQL 'ORDER BY' и соответствует тому же набору правил.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

sort_expr

Можно указать одно или несколько выражений сортировки, Применяется слева направо, каждое выражение должно быть разделено запятой.

Возвращаемые значения

Объект CollectionModify, который можно использовать для дальнейшей обработки.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionModify::sort()

<?php

$res = $coll->modify('true')->sort('name desc', 'age asc')->limit(4)->set('Married', 'NO')->execute();

?>


Сбрасывает значение полей документа

  • « CollectionModify::sort
  • mysql_xdevapi\CollectionRemove »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Сбрасывает значение полей документа

CollectionModify::unset

(Информация о версии неизвестна, возможно, только в Git)

CollectionModify::unset — Сбрасывает значение полей документа

Описание

public mysql_xdevapi\CollectionModify::unset ( array $fields ) : mysql_xdevapi\CollectionModify

Удаляет атрибуты из документов в коллекции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

fields

Атрибуты для удаления из документов в коллекции.

Возвращаемые значения

Объект CollectionModify, который можно использовать для дальнейшей обработки.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionModify::unset()

<?php

$res = $coll->modify('job like :job_name')->unset(["age", "name"])->bind(['job_name' => 'Plumber'])->execute();

?>


Класс CollectionRemove

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\CollectionRemove implements mysql_xdevapi\Executable , mysql_xdevapi\CrudOperationBindable , mysql_xdevapi\CrudOperationLimitable , mysql_xdevapi\CrudOperationSortable {
/* Методы */
public bind ( array $placeholder_values ) : mysql_xdevapi\CollectionRemove
public execute ( void ) : mysql_xdevapi\Result
public limit ( integer $rows ) : mysql_xdevapi\CollectionRemove
public sort ( string $sort_expr ) : mysql_xdevapi\CollectionRemove
}

Содержание

  • CollectionRemove::bind — Привязывает значение к заполнителю
  • CollectionRemove::__construct — Конструктор класса CollectionRemove
  • CollectionRemove::execute — Выполняет операцию удаления
  • CollectionRemove::limit — Ограничивает количество документов для удаления
  • CollectionRemove::sort — Устанавливает критерии сортировки


Привязывает значение к заполнителю

  • « mysql_xdevapi\CollectionRemove
  • CollectionRemove::__construct »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • Привязывает значение к заполнителю

CollectionRemove::bind

(Информация о версии неизвестна, возможно, только в Git)

CollectionRemove::bind — Привязывает значение к заполнителю

Описание

public mysql_xdevapi\CollectionRemove::bind ( array $placeholder_values ) : mysql_xdevapi\CollectionRemove

Привязывает параметр к заполнителю в условии поиска операции удаления.

Заполнитель имеет вид :NAME, где ':' - это общий префикс, который должен всегда указан перед любым NAME, где NAME - это имя заполнителя. Метод bind принимает список заполнителей, если в условии поиска операции удаления необходимо заменить несколько объектов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

placeholder_values

Значения заполнителя для замены в условии поиска. Допускается использование нескольких значений, которые необходимо передать в виде массива сопоставлений PLACEHOLDER_NAME->PLACEHOLDER_VALUE.

Возвращаемые значения

Объект CollectionRemove, который можно использовать для выполнения команды или для добавления дополнительных операций.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionRemove::bind()

<?php

$res = $coll->remove('age > :age_from and age < :age_to')->bind(['age_from' => 20, 'age_to' => 50])->limit(7)->execute();

?>


Конструктор класса CollectionRemove

  • « CollectionRemove::bind
  • CollectionRemove::execute »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • Конструктор класса CollectionRemove

CollectionRemove::__construct

(Информация о версии неизвестна, возможно, только в Git)

CollectionRemove::__construct — Конструктор класса CollectionRemove

Описание

private mysql_xdevapi\CollectionRemove::__construct ( void )

Удаляет документы коллекции и создается экземпляром метода Collection::remove().

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\Collection::remove()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$collection->add('{"name": "Bob",    "age": 19, "job": "Painter"}')->execute();

// Удаление всех художников
$collection
  ->remove("job in ('Painter')")
  ->execute();

// Удалить самого старого дворецкого
$collection
  ->remove("job in ('Butler')")
  ->sort('age desc')
  ->limit(1)
  ->execute();

// Удалить запись с самым низким возрастом
$collection
  ->remove('true')
  ->sort('age desc')
  ->limit(1)
  ->execute();
?>


Выполняет операцию удаления

  • « CollectionRemove::__construct
  • CollectionRemove::limit »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • Выполняет операцию удаления

CollectionRemove::execute

(Информация о версии неизвестна, возможно, только в Git)

CollectionRemove::execute — Выполняет операцию удаления

Описание

public mysql_xdevapi\CollectionRemove::execute ( void ) : mysql_xdevapi\Result

Функция execute должна вызываться, чтобы заставить клиента отправить запрос операции CRUD на сервер.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Result.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionRemove::execute()

<?php

$res = $coll->remove('true')->sort('age desc')->limit(2)->execute();

?>


Ограничивает количество документов для удаления

  • « CollectionRemove::execute
  • CollectionRemove::sort »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • Ограничивает количество документов для удаления

CollectionRemove::limit

(Информация о версии неизвестна, возможно, только в Git)

CollectionRemove::limit — Ограничивает количество документов для удаления

Описание

public mysql_xdevapi\CollectionRemove::limit ( integer $rows ) : mysql_xdevapi\CollectionRemove

Устанавливает максимальное количество документов для удаления.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

rows

Максимальное количество документов для удаления.

Возвращаемые значения

Возвращает объект CollectionRemove, который можно использовать для выполнения команды или для добавления дополнительных операций.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionRemove::limit()

<?php

$res = $coll->remove('job in (\'Barista\', \'Programmatore\', \'Ballerino\', \'Programmatrice\')')->limit(5)->sort(['age desc', 'name asc'])->execute();

?>


Устанавливает критерии сортировки

  • « CollectionRemove::limit
  • mysql_xdevapi\ColumnResult »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • Устанавливает критерии сортировки

CollectionRemove::sort

(Информация о версии неизвестна, возможно, только в Git)

CollectionRemove::sort — Устанавливает критерии сортировки

Описание

public mysql_xdevapi\CollectionRemove::sort ( string $sort_expr ) : mysql_xdevapi\CollectionRemove

Сортирует набор результатов по полю, выбранному в аргументе sort_expr. Разрешенные направления: ASC (по возрастанию) или DESC (по убыванию). Эта операция эквивалентна операции SQL 'ORDER BY' и соответствует тому же набору правил.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

sort_expr

Можно указать одно или несколько выражений сортировки. Применяется слева направо, и каждое выражение разделяется запятой.

Возвращаемые значения

Объект CollectionRemove, который можно использовать для выполнения команды или для добавления дополнительных операций.

Примеры

Пример #1 Пример использования mysql_xdevapi\CollectionRemove::sort()

<?php

$res = $coll->remove('true')->sort('age desc')->limit(2)->execute();

?>


Класс ColumnResult

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\ColumnResult {
/* Методы */
public getCharacterSetName ( void ) : string
public getCollationName ( void ) : string
public getColumnLabel ( void ) : string
public getColumnName ( void ) : string
public getFractionalDigits ( void ) : integer
public getLength ( void ) : integer
public getSchemaName ( void ) : string
public getTableLabel ( void ) : string
public getTableName ( void ) : string
public getType ( void ) : integer
public isNumberSigned ( void ) : integer
public isPadded ( void ) : integer
}

Содержание

  • ColumnResult::__construct — Конструктор класса ColumnResult
  • ColumnResult::getCharacterSetName — Получает набор символов
  • ColumnResult::getCollationName — Получает имя сопоставления
  • ColumnResult::getColumnLabel — Получает метку столбца
  • ColumnResult::getColumnName — Получает название столбца
  • ColumnResult::getFractionalDigits — Получает дробную длину цифры
  • ColumnResult::getLength — Получает длину поля столбца
  • ColumnResult::getSchemaName — Получает название схемы
  • ColumnResult::getTableLabel — Получает метку таблицы
  • ColumnResult::getTableName — Получает название таблицы
  • ColumnResult::getType — Получает тип столбца
  • ColumnResult::isNumberSigned — Проверяет, является ли тип подписанным
  • ColumnResult::isPadded — Проверяет, дополняется ли


Конструктор класса ColumnResult

  • « mysql_xdevapi\ColumnResult
  • ColumnResult::getCharacterSetName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Конструктор класса ColumnResult

ColumnResult::__construct

(Информация о версии неизвестна, возможно, только в Git)

ColumnResult::__construct — Конструктор класса ColumnResult

Описание

private mysql_xdevapi\ColumnResult::__construct ( void )

Получает метаданные столбца, такие как набор символов; создается методом RowResult::getColumns().

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\ColumnResult::__construct()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS nonsense")->execute();
$session->sql("CREATE DATABASE nonsense")->execute();
$session->sql("CREATE TABLE nonsense.numbers (hello int, world float unsigned)")->execute();
$session->sql("INSERT INTO  nonsense.numbers values (42, 42)")->execute();

$schema = $session->getSchema("nonsense");
$table  = $schema->getTable("numbers");

$result1 = $table->select('hello','world')->execute();

// Возвращает массив объектов ColumnResult
$columns = $result1->getColumns();

foreach ($columns as $column) {
    echo "\nМетка столбца " , $column->getColumnLabel();
    echo " является типом "       , $column->getType();
    echo " и ", ($column->isNumberSigned() === 0) ? "Неподписан." : "Подписан.";
}

// Альтернативный вариант
$result2 = $session->sql("SELECT * FROM nonsense.numbers")->execute();

// Возвращает массив объектов FieldMetadata
print_r($result2->getColumns());

Результатом выполнения данного примера будет что-то подобное:

Метка столбца hello является типом 19 и Подписан.
Метка столбца world является типом 4 и Неподписан.

Array
(
    [0] => mysql_xdevapi\FieldMetadata Object
        (
            [type] => 1
            [type_name] => SINT
            [name] => hello
            [original_name] => hello
            [table] => numbers
            [original_table] => numbers
            [schema] => nonsense
            [catalog] => def
            [collation] => 0
            [fractional_digits] => 0
            [length] => 11
            [flags] => 0
            [content_type] => 0
        )
    [1] => mysql_xdevapi\FieldMetadata Object
        (
            [type] => 6
            [type_name] => FLOAT
            [name] => world
            [original_name] => world
            [table] => numbers
            [original_table] => numbers
            [schema] => nonsense
            [catalog] => def
            [collation] => 0
            [fractional_digits] => 31
            [length] => 12
            [flags] => 1
            [content_type] => 0
        )
)


Получает набор символов

  • « ColumnResult::__construct
  • ColumnResult::getCollationName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Получает набор символов

ColumnResult::getCharacterSetName

(Информация о версии неизвестна, возможно, только в Git)

ColumnResult::getCharacterSetName — Получает набор символов

Описание

public mysql_xdevapi\ColumnResult::getCharacterSetName ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\ColumnResult::getCharacterSetName()

<?php

/* ... */

?>


Получает имя сопоставления

  • « ColumnResult::getCharacterSetName
  • ColumnResult::getColumnLabel »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Получает имя сопоставления

ColumnResult::getCollationName

(Информация о версии неизвестна, возможно, только в Git)

ColumnResult::getCollationName — Получает имя сопоставления

Описание

public mysql_xdevapi\ColumnResult::getCollationName ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\ColumnResult::getCollationName()

<?php

/* ... */

?>


Получает метку столбца

  • « ColumnResult::getCollationName
  • ColumnResult::getColumnName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Получает метку столбца

ColumnResult::getColumnLabel

(Информация о версии неизвестна, возможно, только в Git)

ColumnResult::getColumnLabel — Получает метку столбца

Описание

public mysql_xdevapi\ColumnResult::getColumnLabel ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\ColumnResult::getColumnLabel()

<?php

/* ... */

?>


Получает название столбца

  • « ColumnResult::getColumnLabel
  • ColumnResult::getFractionalDigits »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Получает название столбца

ColumnResult::getColumnName

(Информация о версии неизвестна, возможно, только в Git)

ColumnResult::getColumnName — Получает название столбца

Описание

public mysql_xdevapi\ColumnResult::getColumnName ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\ColumnResult::getColumnName()

<?php

/* ... */

?>


Получает дробную длину цифры

  • « ColumnResult::getColumnName
  • ColumnResult::getLength »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Получает дробную длину цифры

ColumnResult::getFractionalDigits

(Информация о версии неизвестна, возможно, только в Git)

ColumnResult::getFractionalDigits — Получает дробную длину цифры

Описание

public mysql_xdevapi\ColumnResult::getFractionalDigits ( void ) : integer

Получает количество дробных цифр для столбца.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\ColumnResult::getFractionalDigits()

<?php

/* ... */

?>


Получает длину поля столбца

  • « ColumnResult::getFractionalDigits
  • ColumnResult::getSchemaName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Получает длину поля столбца

ColumnResult::getLength

(Информация о версии неизвестна, возможно, только в Git)

ColumnResult::getLength — Получает длину поля столбца

Описание

public mysql_xdevapi\ColumnResult::getLength ( void ) : integer

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\ColumnResult::getLength()

<?php

/* ... */

?>


Получает название схемы

  • « ColumnResult::getLength
  • ColumnResult::getTableLabel »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Получает название схемы

ColumnResult::getSchemaName

(Информация о версии неизвестна, возможно, только в Git)

ColumnResult::getSchemaName — Получает название схемы

Описание

public mysql_xdevapi\ColumnResult::getSchemaName ( void ) : string

Получает имя схемы, в которой хранится столбец.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\ColumnResult::getSchemaName()

<?php

/* ... */

?>


Получает метку таблицы

  • « ColumnResult::getSchemaName
  • ColumnResult::getTableName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Получает метку таблицы

ColumnResult::getTableLabel

(Информация о версии неизвестна, возможно, только в Git)

ColumnResult::getTableLabel — Получает метку таблицы

Описание

public mysql_xdevapi\ColumnResult::getTableLabel ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\ColumnResult::getTableLabel()

<?php

/* ... */

?>


Получает название таблицы

  • « ColumnResult::getTableLabel
  • ColumnResult::getType »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Получает название таблицы

ColumnResult::getTableName

(Информация о версии неизвестна, возможно, только в Git)

ColumnResult::getTableName — Получает название таблицы

Описание

public mysql_xdevapi\ColumnResult::getTableName ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя таблицы для столбца.

Примеры

Пример #1 Пример использования mysql_xdevapi\ColumnResult::getTableName()

<?php

/* ... */

?>


Получает тип столбца

  • « ColumnResult::getTableName
  • ColumnResult::isNumberSigned »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Получает тип столбца

ColumnResult::getType

(Информация о версии неизвестна, возможно, только в Git)

ColumnResult::getType — Получает тип столбца

Описание

public mysql_xdevapi\ColumnResult::getType ( void ) : integer

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\ColumnResult::getType()

<?php

/* ... */

?>


Проверяет, является ли тип подписанным

  • « ColumnResult::getType
  • ColumnResult::isPadded »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Проверяет, является ли тип подписанным

ColumnResult::isNumberSigned

(Информация о версии неизвестна, возможно, только в Git)

ColumnResult::isNumberSigned — Проверяет, является ли тип подписанным

Описание

public mysql_xdevapi\ColumnResult::isNumberSigned ( void ) : integer

Получает информацию о столбцах таблицы и создается методом RowResult::getColumns().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если данный тип столбца является подписанным.

Примеры

Пример #1 Пример использования mysql_xdevapi\ColumnResult::isNumberSigned()

<?php

/* ... */

?>


Проверяет, дополняется ли

  • « ColumnResult::isNumberSigned
  • mysql_xdevapi\CrudOperationBindable »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Проверяет, дополняется ли

ColumnResult::isPadded

(Информация о версии неизвестна, возможно, только в Git)

ColumnResult::isPadded — Проверяет, дополняется ли

Описание

public mysql_xdevapi\ColumnResult::isPadded ( void ) : integer

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если заданный столбец дополняется.

Примеры

Пример #1 Пример использования mysql_xdevapi\ColumnResult::isPadded()

<?php

/* ... */

?>


Интерфейс CrudOperationBindable

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\CrudOperationBindable {
/* Методы */
abstract public bind ( array $placeholder_values ) : mysql_xdevapi\CrudOperationBindable
}

Содержание

  • CrudOperationBindable::bind — Привязывает значение к заполнителю


Привязывает значение к заполнителю

  • « mysql_xdevapi\CrudOperationBindable
  • mysql_xdevapi\CrudOperationLimitable »
  • PHP Manual
  • mysql_xdevapi\CrudOperationBindable
  • Привязывает значение к заполнителю

CrudOperationBindable::bind

(Информация о версии неизвестна, возможно, только в Git)

CrudOperationBindable::bind — Привязывает значение к заполнителю

Описание

abstract public mysql_xdevapi\CrudOperationBindable::bind ( array $placeholder_values ) : mysql_xdevapi\CrudOperationBindable

Привязывает значение к определенному заполнителю.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

placeholder_values

Имя заполнителей и значения для привязки.

Возвращаемые значения

Объект CrudOperationBindable.

Примеры

Пример #1 Пример использования mysql_xdevapi\CrudOperationBindable::bind()

<?php

$res = $coll->modify('name like :name')->arrayInsert('job[0]', 'Calciatore')->bind(['name' => 'ENTITY'])->execute();
$res = $table->delete()->orderby('age desc')->where('age < 20 and age > 12 and name != :name')->bind(['name' => 'Tierney'])->limit(2)->execute();

?>


Интерфейс CrudOperationLimitable

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\CrudOperationLimitable {
/* Методы */
abstract public limit ( integer $rows ) : mysql_xdevapi\CrudOperationLimitable
}

Содержание

  • CrudOperationLimitable::limit — Set result limit


Set result limit

  • « mysql_xdevapi\CrudOperationLimitable
  • mysql_xdevapi\CrudOperationSkippable »
  • PHP Manual
  • mysql_xdevapi\CrudOperationLimitable
  • Set result limit

CrudOperationLimitable::limit

(Информация о версии неизвестна, возможно, только в Git)

CrudOperationLimitable::limit — Set result limit

Описание

abstract public mysql_xdevapi\CrudOperationLimitable::limit ( integer $rows ) : mysql_xdevapi\CrudOperationLimitable

Sets the maximum number of records or documents to return.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

rows

The maximum number of records or documents.

Возвращаемые значения

A CrudOperationLimitable object.

Примеры

Пример #1 mysql_xdevapi\CrudOperationLimitable::limit() example

<?php

$res = $coll->find()->fields(['name as n','age as a','job as j'])->groupBy('j')->limit(11)->execute();
$res = $table->update()->set('age',69)->where('age > 15 and age < 22')->limit(4)->orderby(['age asc','name desc'])->execute();

?>


Интерфейс CrudOperationSkippable

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\CrudOperationSkippable {
/* Методы */
abstract public skip ( integer $skip ) : mysql_xdevapi\CrudOperationSkippable
}

Содержание

  • CrudOperationSkippable::skip — Number of operations to skip


Number of operations to skip

  • « mysql_xdevapi\CrudOperationSkippable
  • mysql_xdevapi\CrudOperationSortable »
  • PHP Manual
  • mysql_xdevapi\CrudOperationSkippable
  • Number of operations to skip

CrudOperationSkippable::skip

(Информация о версии неизвестна, возможно, только в Git)

CrudOperationSkippable::skip — Number of operations to skip

Описание

abstract public mysql_xdevapi\CrudOperationSkippable::skip ( integer $skip ) : mysql_xdevapi\CrudOperationSkippable

Skip this number of records in the returned operation.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

skip

Number of elements to skip.

Возвращаемые значения

A CrudOperationSkippable object.

Примеры

Пример #1 mysql_xdevapi\CrudOperationSkippable::skip() example

<?php

$res = $coll->find('job like \'Programmatore\'')->limit(1)->skip(3)->sort('age asc')->execute();

?>


Интерфейс CrudOperationSortable

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\CrudOperationSortable {
/* Методы */
abstract public sort ( string $sort_expr ) : mysql_xdevapi\CrudOperationSortable
}

Содержание

  • CrudOperationSortable::sort — Sort results


Sort results

  • « mysql_xdevapi\CrudOperationSortable
  • mysql_xdevapi\DatabaseObject »
  • PHP Manual
  • mysql_xdevapi\CrudOperationSortable
  • Sort results

CrudOperationSortable::sort

(Информация о версии неизвестна, возможно, только в Git)

CrudOperationSortable::sort — Sort results

Описание

abstract public mysql_xdevapi\CrudOperationSortable::sort ( string $sort_expr ) : mysql_xdevapi\CrudOperationSortable

Sort the result set by the field selected in the sort_expr argument. The allowed orders are ASC (Ascending) or DESC (Descending). This operation is equivalent to the 'ORDER BY' SQL operation and it follows the same set of rules.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

sort_expr

One or more sorting expressions can be provided. The evaluation is from left to right, and each expression is separated by a comma.

Возвращаемые значения

A CrudOperationSortable object.

Примеры

Пример #1 mysql_xdevapi\CrudOperationSortable::sort() example

<?php

$res = $coll->find('job like \'Cavia\'')->sort('age desc', '_id desc')->execute();

?>


Интерфейс DatabaseObject

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\DatabaseObject {
/* Методы */
abstract public existsInDatabase ( void ) : bool
abstract public getName ( void ) : string
abstract public getSession ( void ) : mysql_xdevapi\Session
}

Содержание

  • DatabaseObject::existsInDatabase — Проверяет, существует ли объект в базе данных
  • DatabaseObject::getName — Получает имя объекта
  • DatabaseObject::getSession — Получает имя сессии


Проверяет, существует ли объект в базе данных

  • « mysql_xdevapi\DatabaseObject
  • DatabaseObject::getName »
  • PHP Manual
  • mysql_xdevapi\DatabaseObject
  • Проверяет, существует ли объект в базе данных

DatabaseObject::existsInDatabase

(Информация о версии неизвестна, возможно, только в Git)

DatabaseObject::existsInDatabase — Проверяет, существует ли объект в базе данных

Описание

abstract public mysql_xdevapi\DatabaseObject::existsInDatabase ( void ) : bool

Проверяет, ссылается ли объект базы данных на объект, который существует в базе данных.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если объект существует в базе данных, иначе FALSE, если это не так.

Примеры

Пример #1 Пример использования mysql_xdevapi\DatabaseObject::existsInDatabase()

<?php

$existInDb = $dbObj->existsInDatabase();

?>


Получает имя объекта

  • « DatabaseObject::existsInDatabase
  • DatabaseObject::getSession »
  • PHP Manual
  • mysql_xdevapi\DatabaseObject
  • Получает имя объекта

DatabaseObject::getName

(Информация о версии неизвестна, возможно, только в Git)

DatabaseObject::getName — Получает имя объекта

Описание

abstract public mysql_xdevapi\DatabaseObject::getName ( void ) : string

Получает имя объекта базы данных.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя объекта базы данных.

Примеры

Пример #1 Пример использования mysql_xdevapi\DatabaseObject::getName()

<?php

$dbObjName = $dbObj->getName();

?>


Получает имя сессии

  • « DatabaseObject::getName
  • mysql_xdevapi\DocResult »
  • PHP Manual
  • mysql_xdevapi\DatabaseObject
  • Получает имя сессии

DatabaseObject::getSession

(Информация о версии неизвестна, возможно, только в Git)

DatabaseObject::getSession — Получает имя сессии

Описание

abstract public mysql_xdevapi\DatabaseObject::getSession ( void ) : mysql_xdevapi\Session

Получает сессию, связанную с объектом базы данных.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Session.

Примеры

Пример #1 Пример использования mysql_xdevapi\DatabaseObject::getSession()

<?php

$session = $dbObj->getSession();

?>


Класс DocResult

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\DocResult implements mysql_xdevapi\BaseResult , Traversable {
/* Методы */
public fetchAll ( void ) : array
public fetchOne ( void ) : array
public getWarnings ( void ) : Array
public getWarningsCount ( void ) : integer
}

Содержание

  • DocResult::__construct — Конструктор DocResult
  • DocResult::fetchAll — Получить все строки
  • DocResult::fetchOne — Получить одну строку
  • DocResult::getWarnings — Получить предупреждения с последней операции
  • DocResult::getWarningsCount — Получить количество предупреждений с последней операции


Конструктор DocResult

  • « mysql_xdevapi\DocResult
  • DocResult::fetchAll »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • Конструктор DocResult

DocResult::__construct

(Информация о версии неизвестна, возможно, только в Git)

DocResult::__construct — Конструктор DocResult

Описание

private mysql_xdevapi\DocResult::__construct ( void )

Получить результаты и предупреждения документа, создается CollectionFind.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования DocResult

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Возвращает объект DocResult
$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->sort('age desc')
  ->limit(1)
  ->execute();

var_dump($result->fetchAll());
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000f3"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }
}


Получить все строки

  • « DocResult::__construct
  • DocResult::fetchOne »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • Получить все строки

DocResult::fetchAll

(Информация о версии неизвестна, возможно, только в Git)

DocResult::fetchAll — Получить все строки

Описание

public mysql_xdevapi\DocResult::fetchAll ( void ) : array

Получить все результаты из результирующего набора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив со всеми результатми из запроса; каждый результат - это ассоциативный массив. Если нет строк результата запроса, то возвращается пустой массив.

Примеры

Пример #1 Пример использования mysql_xdevapi\DocResult::fetchAll()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Возвращает объект DocResult
$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->sort('age desc')
  ->execute();

var_dump($result->fetchAll());
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {

  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b53610000000000000123"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }

  [1]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b53610000000000000122"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }

}


Получить одну строку

  • « DocResult::fetchAll
  • DocResult::getWarnings »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • Получить одну строку

DocResult::fetchOne

(Информация о версии неизвестна, возможно, только в Git)

DocResult::fetchOne — Получить одну строку

Описание

public mysql_xdevapi\DocResult::fetchOne ( void ) : array

Получить один результат из результирующего набора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Результат в виде ассоциативного массива, либо NULL, если результатов нет.

Примеры

Пример #1 Пример использования mysql_xdevapi\DocResult::fetchOne()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Возвращает объект DocResult
$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->sort('age desc')
  ->execute();

var_dump($result->fetchOne());
?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  ["_id"]=>
  string(28) "00005b6b53610000000000000125"
  ["age"]=>
  int(42)
  ["job"]=>
  string(6) "Butler"
  ["name"]=>
  string(8) "Reginald"
}


Получить предупреждения с последней операции

  • « DocResult::fetchOne
  • DocResult::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • Получить предупреждения с последней операции

DocResult::getWarnings

(Информация о версии неизвестна, возможно, только в Git)

DocResult::getWarnings — Получить предупреждения с последней операции

Описание

public mysql_xdevapi\DocResult::getWarnings ( void ) : Array

Получает предупреждения от последней операции с MySQL-сервера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив объектов с предупреждениями, вызванных последней операцией. Каждый объект содержит поля 'message', 'level' и 'code'. Возвращает пустой массив, если нет ошибок.

Примеры

Пример #1 Пример использования mysql_xdevapi\DocResult::getWarnings()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Возвращает объект DocResult
$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->sort('age desc')
  ->execute();

if (!$result->getWarningsCount()) {
    echo "Произошла ошибка:\n";
    print_r($result->getWarnings());
    exit;
}

var_dump($result->fetchOne());
?>

Результатом выполнения данного примера будет что-то подобное:

There was an error:

Array
(
    [0] => mysql_xdevapi\Warning Object
        (
            [message] => Something bad and so on
            [level] => 2
            [code] => 1365
        )
    [1] => mysql_xdevapi\Warning Object
        (
            [message] => Something bad and so on
            [level] => 2
            [code] => 1365
        )
)


Получить количество предупреждений с последней операции

  • « DocResult::getWarnings
  • mysql_xdevapi\Exception »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • Получить количество предупреждений с последней операции

DocResult::getWarningsCount

(Информация о версии неизвестна, возможно, только в Git)

DocResult::getWarningsCount — Получить количество предупреждений с последней операции

Описание

public mysql_xdevapi\DocResult::getWarningsCount ( void ) : integer

Возвращает количество предупреждений, вызванных последней операцией. В частности, эти предупреждения вызываются сервером MySQL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество предупреждений с последней операции.

Примеры

Пример #1 Пример использования mysql_xdevapi\DocResult::getWarningsCount()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Возвращает объект DocResult
$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->sort('age desc')
  ->execute();

if (!$result->getWarningsCount()) {
    echo "Произошла ошибка:\n";
    print_r($result->getWarnings());
    exit;
}

var_dump($result->fetchOne());
?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  ["_id"]=>
  string(28) "00005b6b53610000000000000135"
  ["age"]=>
  int(42)
  ["job"]=>
  string(6) "Butler"
  ["name"]=>
  string(8) "Reginald"
}


Класс Exception

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\Exception extends RuntimeException implements Throwable {
}


Интерфейс Executable

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\Executable {
/* Методы */
abstract public execute ( void ) : mysql_xdevapi\Result
}

Содержание

  • Executable::execute — Выполняет утверждение


Выполняет утверждение

  • « mysql_xdevapi\Executable
  • mysql_xdevapi\ExecutionStatus »
  • PHP Manual
  • mysql_xdevapi\Executable
  • Выполняет утверждение

Executable::execute

(Информация о версии неизвестна, возможно, только в Git)

Executable::execute — Выполняет утверждение

Описание

abstract public mysql_xdevapi\Executable::execute ( void ) : mysql_xdevapi\Result

Выполняет утверждение из операции сбора или запроса таблицы; этот функционал разрешен для цепочки методов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Один из объектов Result, например, Result или SqlStatementResult.

Примеры

Пример #1 Примеры использования execute()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$result_sql = $session->sql("CREATE DATABASE addressbook")->execute();

var_dump($result_sql);

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("humans");

$result_collection = $collection->add(
  '{"name": "Jane",
    "jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
    "hobbies": ["Walking","Making pies"]}');

$result_collection_executed = $result_collection->execute();

var_dump($result_collection);
var_dump($result_collection_executed);
?>

Результатом выполнения данного примера будет что-то подобное:

object(mysql_xdevapi\SqlStatementResult)#3 (0) {
}

object(mysql_xdevapi\CollectionAdd)#5 (0) {
}

object(mysql_xdevapi\Result)#7 (0) {
}


Класс ExecutionStatus

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\ExecutionStatus {
/* Свойства */
public $affectedItems ;
public $matchedItems ;
public $foundItems ;
public $lastInsertId ;
public $lastDocumentId ;
/* Constructor */
private __construct ( void )
}

Свойства

affectedItems

matchedItems

foundItems

lastInsertId

lastDocumentId

Содержание

  • ExecutionStatus::__construct — Конструктор класса ExecutionStatus


Конструктор класса ExecutionStatus

  • « mysql_xdevapi\ExecutionStatus
  • mysql_xdevapi\Expression »
  • PHP Manual
  • mysql_xdevapi\ExecutionStatus
  • Конструктор класса ExecutionStatus

ExecutionStatus::__construct

(Информация о версии неизвестна, возможно, только в Git)

ExecutionStatus::__construct — Конструктор класса ExecutionStatus

Описание

private mysql_xdevapi\ExecutionStatus::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\ExecutionStatus::__construct()

<?php

/* ... */

?>


Класс Expression

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\Expression {
/* Свойства */
public $name ;
/* Конструктор */
public __construct ( string $expression )
}

Свойства

name

Содержание

  • Expression::__construct — Конструктор класса Expression


Конструктор класса Expression

  • « mysql_xdevapi\Expression
  • mysql_xdevapi\Result »
  • PHP Manual
  • mysql_xdevapi\Expression
  • Конструктор класса Expression

Expression::__construct

(Информация о версии неизвестна, возможно, только в Git)

Expression::__construct — Конструктор класса Expression

Описание

public mysql_xdevapi\Expression::__construct ( string $expression )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

expression

Примеры

Пример #1 Пример использования mysql_xdevapi\Expression::__construct()

<?php

/* ... */

?>


Класс Result

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\Result implements mysql_xdevapi\BaseResult , Traversable {
/* Методы */
public getAffectedItemsCount ( void ) : int
public getAutoIncrementValue ( void ) : int
public getGeneratedIds ( void ) : array
public getWarnings ( void ) : array
public getWarningsCount ( void ) : integer
}

Содержание

  • Result::__construct — Конструктор класса Result
  • Result::getAffectedItemsCount — Get affected row count
  • Result::getAutoIncrementValue — Получает значение автоинкремента
  • Result::getGeneratedIds — Получает сгенерированные идентификаторы
  • Result::getWarnings — Получает предупреждения последней операции
  • Result::getWarningsCount — Получает количество предупреждений последней операции


Конструктор класса Result

  • « mysql_xdevapi\Result
  • Result::getAffectedItemsCount »
  • PHP Manual
  • mysql_xdevapi\Result
  • Конструктор класса Result

Result::__construct

(Информация о версии неизвестна, возможно, только в Git)

Result::__construct — Конструктор класса Result

Описание

private mysql_xdevapi\Result::__construct ( void )

Объект, который извлекает сгенерированные идентификаторы, значения AUTO_INCREMENT и предупреждения для набора Result.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\Result::__construct()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("
  CREATE TABLE addressbook.names
    (id INT NOT NULL AUTO_INCREMENT, name VARCHAR(30), age INT, PRIMARY KEY (id))
  ")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->insert("name", "age")->values(["Suzanne", 31],["Julie", 43])->execute();
$result = $table->insert("name", "age")->values(["Suki", 34])->execute();

$ai = $result->getAutoIncrementValue();
var_dump($ai);
?>

Результат выполнения данного примера:

int(3)


Get affected row count

  • « Result::__construct
  • Result::getAutoIncrementValue »
  • PHP Manual
  • mysql_xdevapi\Result
  • Get affected row count

Result::getAffectedItemsCount

(Информация о версии неизвестна, возможно, только в Git)

Result::getAffectedItemsCount — Get affected row count

Описание

public mysql_xdevapi\Result::getAffectedItemsCount ( void ) : int

Get the number of affected rows by the previous operation.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The number (as an integer) of affected rows.

Примеры

Пример #1 mysql_xdevapi\Result::getAffectedItemsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

$result = $collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

var_dump( $res->getAffectedItemsCount() );
?>

Результат выполнения данного примера:

int(1)


Получает значение автоинкремента

  • « Result::getAffectedItemsCount
  • Result::getGeneratedIds »
  • PHP Manual
  • mysql_xdevapi\Result
  • Получает значение автоинкремента

Result::getAutoIncrementValue

(Информация о версии неизвестна, возможно, только в Git)

Result::getAutoIncrementValue — Получает значение автоинкремента

Описание

public mysql_xdevapi\Result::getAutoIncrementValue ( void ) : int

Получает последнее значение AUTO_INCREMENT (идентификатор последней вставки).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение AUTO_INCREMENT.

Примеры

Пример #1 Пример использования mysql_xdevapi\Result::getAutoIncrementValue()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("
  CREATE TABLE addressbook.names
    (id INT NOT NULL AUTO_INCREMENT, name VARCHAR(30), age INT, PRIMARY KEY (id))
  ")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->insert("name", "age")->values(["Suzanne", 31],["Julie", 43])->execute();
$result = $table->insert("name", "age")->values(["Suki", 34])->execute();

$ai = $result->getAutoIncrementValue();
var_dump($ai);
?>

Результат выполнения данного примера:

int(3)


Получает сгенерированные идентификаторы

  • « Result::getAutoIncrementValue
  • Result::getWarnings »
  • PHP Manual
  • mysql_xdevapi\Result
  • Получает сгенерированные идентификаторы

Result::getGeneratedIds

(Информация о версии неизвестна, возможно, только в Git)

Result::getGeneratedIds — Получает сгенерированные идентификаторы

Описание

public mysql_xdevapi\Result::getGeneratedIds ( void ) : array

Получает сгенерированные значения _id из последней операции. Уникальное поле _id генерируется сервером MySQL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив сгенерированных _id из последней операции или пустой массив, если таковых нет.

Примеры

Пример #1 Пример использования mysql_xdevapi\Result::getGeneratedIds()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

$result = $collection->add(
  '{"name": "Bernie",
    "jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
    "hobbies": ["Sports","Making cupcakes"]}',
  '{"name": "Jane",
    "jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
    "hobbies": ["Walking","Making pies"]}')->execute();

$ids = $result->getGeneratedIds();
var_dump($ids);
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  string(28) "00005b6b53610000000000000064"
  [1]=>
  string(28) "00005b6b53610000000000000065"
}


Получает предупреждения последней операции

  • « Result::getGeneratedIds
  • Result::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\Result
  • Получает предупреждения последней операции

Result::getWarnings

(Информация о версии неизвестна, возможно, только в Git)

Result::getWarnings — Получает предупреждения последней операции

Описание

public mysql_xdevapi\Result::getWarnings ( void ) : array

Получает предупреждения последней операции Result.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив объектов Warning последней операции. Каждый объект определяет 'message' об ошибке, 'level' ошибки и 'code' ошибки. Возвращается пустой массив, если ошибок нет.

Примеры

Пример #1 Пример использования mysql_xdevapi\RowResult::getWarnings()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table  = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();
$warnings = $res->getWarnings();

print_r($warnings);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
    [1] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
)


Получает количество предупреждений последней операции

  • « Result::getWarnings
  • mysql_xdevapi\RowResult »
  • PHP Manual
  • mysql_xdevapi\Result
  • Получает количество предупреждений последней операции

Result::getWarningsCount

(Информация о версии неизвестна, возможно, только в Git)

Result::getWarningsCount — Получает количество предупреждений последней операции

Описание

public mysql_xdevapi\Result::getWarningsCount ( void ) : integer

Получает количество предупреждений последней операции Result.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество предупреждений, сгенерированных последней операцией.

Примеры

Пример #1 Пример использования mysql_xdevapi\RowResult::getWarningsCount()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS foo")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table  = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();

echo $res->getWarningsCount();
?>

Результатом выполнения данного примера будет что-то подобное:

2


Класс RowResult

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\RowResult implements mysql_xdevapi\BaseResult , Traversable {
/* Методы */
public fetchAll ( void ) : array
public fetchOne ( void ) : array
public getColumnsCount ( void ) : integer
public getColumnNames ( void ) : array
public getColumns ( void ) : array
public getWarnings ( void ) : array
public getWarningsCount ( void ) : integer
}

Содержание

  • RowResult::__construct — Конструктор класса RowResult
  • RowResult::fetchAll — Получает все строки из результата
  • RowResult::fetchOne — Получает строку из результата
  • RowResult::getColumnsCount — Получает количество столбцов
  • RowResult::getColumnNames — Получает все имена столбцов
  • RowResult::getColumns — Получает метаданные столбца
  • RowResult::getWarnings — Получает предупреждения последней операции
  • RowResult::getWarningsCount — Получает количество предупреждений последней операции


Конструктор класса RowResult

  • « mysql_xdevapi\RowResult
  • RowResult::fetchAll »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Конструктор класса RowResult

RowResult::__construct

(Информация о версии неизвестна, возможно, только в Git)

RowResult::__construct — Конструктор класса RowResult

Описание

private mysql_xdevapi\RowResult::__construct ( void )

Представляет набор результатов, полученный при обращении к базе данных.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\RowResult::__construct()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$row = $table->select('name', 'age')->where('age > 18')->execute()->fetchAll();

print_r($row);

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Получает все строки из результата

  • « RowResult::__construct
  • RowResult::fetchOne »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Получает все строки из результата

RowResult::fetchAll

(Информация о версии неизвестна, возможно, только в Git)

RowResult::fetchAll — Получает все строки из результата

Описание

public mysql_xdevapi\RowResult::fetchAll ( void ) : array

Извлекает все строки из набора результатов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Числовой массив со всеми результатами запроса; каждый результат представляет собой ассоциативный массив. Возвращается пустой массив, если строк нет.

Примеры

Пример #1 Пример использования mysql_xdevapi\RowResult::fetchAll()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$row = $table->select('name', 'age')->execute()->fetchAll();

print_r($row);

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Получает строку из результата

  • « RowResult::fetchAll
  • RowResult::getColumnsCount »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Получает строку из результата

RowResult::fetchOne

(Информация о версии неизвестна, возможно, только в Git)

RowResult::fetchOne — Получает строку из результата

Описание

public mysql_xdevapi\RowResult::fetchOne ( void ) : array

Извлекает один результат из набора результатов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Результат в виде ассоциативного массива или NULL, если нет результатов.

Примеры

Пример #1 Пример использования mysql_xdevapi\RowResult::fetchOne()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$row = $table->select('name', 'age')->where('age < 40')->execute()->fetchOne();

print_r($row);

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name] => Sam
    [age] => 33
)


Получает количество столбцов

  • « RowResult::fetchOne
  • RowResult::getColumnNames »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Получает количество столбцов

RowResult::getColumnsCount

(Информация о версии неизвестна, возможно, только в Git)

RowResult::getColumnsCount — Получает количество столбцов

Описание

public mysql_xdevapi\RowResult::getColumnsCount ( void ) : integer

Получает количество столбцов, присутствующих в наборе результатов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество столбцов; 0 если их нет

Список изменений

Версия | Описание
8.0.14 | Метод переименован из getColumnCount() в getColumnsCount().

Примеры

Пример #1 Пример использования mysql_xdevapi\RowResult::getColumnsCount()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$sql = $session->sql("SELECT * from addressbook.names")->execute();

echo $sql->getColumnsCount();

Результатом выполнения данного примера будет что-то подобное:

2


Получает все имена столбцов

  • « RowResult::getColumnsCount
  • RowResult::getColumns »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Получает все имена столбцов

RowResult::getColumnNames

(Информация о версии неизвестна, возможно, только в Git)

RowResult::getColumnNames — Получает все имена столбцов

Описание

public mysql_xdevapi\RowResult::getColumnNames ( void ) : array

Получает имена столбцов, присутствующих в наборе результатов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Числовой массив имен столбцов таблицы или пустой массив, если набор результатов пуст.

Примеры

Пример #1 Пример использования mysql_xdevapi\RowResult::getColumnNames()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$sql = $session->sql("SELECT * from addressbook.names")->execute();

$colnames = $sql->getColumnNames();

print_r($colnames);

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => name
    [1] => age
)


Получает метаданные столбца

  • « RowResult::getColumnNames
  • RowResult::getWarnings »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Получает метаданные столбца

RowResult::getColumns

(Информация о версии неизвестна, возможно, только в Git)

RowResult::getColumns — Получает метаданные столбца

Описание

public mysql_xdevapi\RowResult::getColumns ( void ) : array

Получает метаданные столбцов, присутствующих в наборе результатов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив объектов FieldMetadata, представляющих столбцы в результате, или пустой массив, если набор результатов пуст.

Примеры

Пример #1 Пример использования mysql_xdevapi\RowResult::getColumns()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$sql = $session->sql("SELECT * from addressbook.names")->execute();

$cols = $sql->getColumns();

print_r($cols);

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => mysql_xdevapi\FieldMetadata Object
        (
            [type] => 7
            [type_name] => BYTES
            [name] => name
            [original_name] => name
            [table] => names
            [original_table] => names
            [schema] => addressbook
            [catalog] => def
            [collation] => 255
            [fractional_digits] => 0
            [length] => 65535
            [flags] => 0
            [content_type] => 0
        )
    [1] => mysql_xdevapi\FieldMetadata Object
        (
            [type] => 1
            [type_name] => SINT
            [name] => age
            [original_name] => age
            [table] => names
            [original_table] => names
            [schema] => addressbook
            [catalog] => def
            [collation] => 0
            [fractional_digits] => 0
            [length] => 11
            [flags] => 0
            [content_type] => 0
        )
)


Получает предупреждения последней операции

  • « RowResult::getColumns
  • RowResult::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Получает предупреждения последней операции

RowResult::getWarnings

(Информация о версии неизвестна, возможно, только в Git)

RowResult::getWarnings — Получает предупреждения последней операции

Описание

public mysql_xdevapi\RowResult::getWarnings ( void ) : array

Получает предупреждения от последней операции RowResult.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив объектов Warning последней операции. Каждый объект определяет 'message' об ошибке, 'level' ошибки и 'code' ошибки. Возвращается пустой массив, если ошибок нет.

Примеры

Пример #1 Пример использования mysql_xdevapi\RowResult::getWarnings()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table  = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();
$warnings = $res->getWarnings();

print_r($warnings);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
    [1] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
)


Получает количество предупреждений последней операции

  • « RowResult::getWarnings
  • mysql_xdevapi\Schema »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Получает количество предупреждений последней операции

RowResult::getWarningsCount

(Информация о версии неизвестна, возможно, только в Git)

RowResult::getWarningsCount — Получает количество предупреждений последней операции

Описание

public mysql_xdevapi\RowResult::getWarningsCount ( void ) : integer

Получает количество предупреждений последней операции RowResult.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество предупреждений, сгенерированных последней операцией.

Примеры

Пример #1 Пример использования mysql_xdevapi\RowResult::getWarningsCount()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS foo")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table  = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();

echo $res->getWarningsCount();
?>

Результатом выполнения данного примера будет что-то подобное:

2


Класс Schema

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\Schema implements mysql_xdevapi\DatabaseObject {
/* Свойства */
public $name ;
/* Методы */
public createCollection ( string $name ) : mysql_xdevapi\Collection
public dropCollection ( string $collection_name ) : bool
public existsInDatabase ( void ) : bool
public getCollection ( string $name ) : mysql_xdevapi\Collection
public getCollectionAsTable ( string $name ) : mysql_xdevapi\Table
public getCollections ( void ) : array
public getName ( void ) : string
public getSession ( void ) : mysql_xdevapi\Session
public getTable ( string $name ) : mysql_xdevapi\Table
public getTables ( void ) : array
}

Свойства

name

Содержание

  • Schema::__construct — Конструктор
  • Schema::createCollection — Добавить коллекцию в схему
  • Schema::dropCollection — Удалить коллекции из схемы
  • Schema::existsInDatabase — Проверить, существует ли в базе данных
  • Schema::getCollection — Получить коллекцию из схемы
  • Schema::getCollectionAsTable — Получить объект таблицы коллекции
  • Schema::getCollections — Получить все коллекции схемы
  • Schema::getName — Получить имя схемы
  • Schema::getSession — Получить сессию схемы
  • Schema::getTable — Получить таблицу схемы
  • Schema::getTables — Получить таблицы схемы


Конструктор

  • « mysql_xdevapi\Schema
  • Schema::createCollection »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Конструктор

Schema::__construct

(Информация о версии неизвестна, возможно, только в Git)

Schema::__construct — Конструктор

Описание

private mysql_xdevapi\Schema::__construct ( void )

Объект Schema предоставляет полный доступ к схеме (базе данных).

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\Schema::__construct()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();
$session->sql("CREATE TABLE food.fruit(name text, rating text)")->execute();

$schema = $session->getSchema("food");
$schema->createCollection("trees");

print_r($schema->gettables());
print_r($schema->getcollections());

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [fruit] => mysql_xdevapi\Table Object
        (
            [name] => fruit
        )
)
Array
(
    [trees] => mysql_xdevapi\Collection Object
        (
            [name] => trees
        )
)


Добавить коллекцию в схему

  • « Schema::__construct
  • Schema::dropCollection »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Добавить коллекцию в схему

Schema::createCollection

(Информация о версии неизвестна, возможно, только в Git)

Schema::createCollection — Добавить коллекцию в схему

Описание

public mysql_xdevapi\Schema::createCollection ( string $name ) : mysql_xdevapi\Collection

Создать коллекцию внутри схемы.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\Schema::getCollection()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();
$session->sql("CREATE TABLE food.fruit(name text, rating text)")->execute();

$schema = $session->getSchema("food");
$schema->createCollection("trees");

print_r($schema->gettables());
print_r($schema->getcollections());

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [fruit] => mysql_xdevapi\Table Object
        (
            [name] => fruit
        )
)
Array
(
    [trees] => mysql_xdevapi\Collection Object
        (
            [name] => trees
        )
)


Удалить коллекции из схемы

  • « Schema::createCollection
  • Schema::existsInDatabase »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Удалить коллекции из схемы

Schema::dropCollection

(Информация о версии неизвестна, возможно, только в Git)

Schema::dropCollection — Удалить коллекции из схемы

Описание

public mysql_xdevapi\Schema::dropCollection ( string $collection_name ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

collection_name

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\Schema::getCollection()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();
$session->sql("CREATE TABLE food.fruit(name text, rating text)")->execute();

$schema = $session->getSchema("food");

$schema->createCollection("trees");
$schema->dropCollection("trees");
$schema->createCollection("buildings");

print_r($schema->gettables());
print_r($schema->getcollections());

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [fruit] => mysql_xdevapi\Table Object
        (
            [name] => fruit
        )
)
Array
(
    [buildings] => mysql_xdevapi\Collection Object
        (
            [name] => buildings
        )
)


Проверить, существует ли в базе данных

  • « Schema::dropCollection
  • Schema::getCollection »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Проверить, существует ли в базе данных

Schema::existsInDatabase

(Информация о версии неизвестна, возможно, только в Git)

Schema::existsInDatabase — Проверить, существует ли в базе данных

Описание

public mysql_xdevapi\Schema::existsInDatabase ( void ) : bool

Проверяет, существует ли текущий объект (схема, таблица, коллекция или представление) в объекте схемы.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE если схема, таблица, коллекция или представление все еще существуют в схеме, в противном случае FALSE.

Примеры

Пример #1 Пример использования mysql_xdevapi\Schema::getCollection()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();
$session->sql("CREATE TABLE food.fruit(name text, rating text)")->execute();

$schema = $session->getSchema("food");
$schema->createCollection("trees");

// ...

$trees = $schema->getCollection("trees");

// ...

// Эта коллекция все еще находится в базе данных (схеме)?
if ($trees->existsInDatabase()) {
    echo "Да, коллекция 'trees' все еще существует.";
}

Результатом выполнения данного примера будет что-то подобное:

Да, коллекция 'trees' все еще существует.


Получить коллекцию из схемы

  • « Schema::existsInDatabase
  • Schema::getCollectionAsTable »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Получить коллекцию из схемы

Schema::getCollection

(Информация о версии неизвестна, возможно, только в Git)

Schema::getCollection — Получить коллекцию из схемы

Описание

public mysql_xdevapi\Schema::getCollection ( string $name ) : mysql_xdevapi\Collection

Получить коллекцию из схемы.

Список параметров

name

Имя коллекции для извлечения.

Возвращаемые значения

Объект Collection для выбранной коллекции.

Примеры

Пример #1 Пример использования mysql_xdevapi\Schema::getCollection()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();

$schema = $session->getSchema("food");
$schema->createCollection("trees");

// ...

$trees = $schema->getCollection("trees");

var_dump($trees);

Результатом выполнения данного примера будет что-то подобное:

object(mysql_xdevapi\Collection)#3 (1) {
  ["name"]=>
  string(5) "trees"
}


Получить объект таблицы коллекции

  • « Schema::getCollection
  • Schema::getCollections »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Получить объект таблицы коллекции

Schema::getCollectionAsTable

(Информация о версии неизвестна, возможно, только в Git)

Schema::getCollectionAsTable — Получить объект таблицы коллекции

Описание

public mysql_xdevapi\Schema::getCollectionAsTable ( string $name ) : mysql_xdevapi\Table

Получить коллекцию, но как объект Table вместо объекта Collection.

Список параметров

name

Имя коллекции, из которой создается экземпляр объекта Table.

Возвращаемые значения

Объект таблицы для коллекции.

Примеры

Пример #1 Пример использования mysql_xdevapi\Schema::getCollectionAsTable()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema  = $session->getSchema("addressbook");
$collect = $schema->createCollection("people");
$collect->add('{"name": "Fred",  "age": 21, "job": "Construction"}')->execute();
$collect->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

$table      = $schema->getCollectionAsTable("people");
$collection = $schema->getCollection("people");

var_dump($table);
var_dump($collection);

Результатом выполнения данного примера будет что-то подобное:

object(mysql_xdevapi\Table)#4 (1) {
  ["name"]=>
  string(6) "people"
}

object(mysql_xdevapi\Collection)#5 (1) {
  ["name"]=>
  string(6) "people"
}


Получить все коллекции схемы

  • « Schema::getCollectionAsTable
  • Schema::getName »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Получить все коллекции схемы

Schema::getCollections

(Информация о версии неизвестна, возможно, только в Git)

Schema::getCollections — Получить все коллекции схемы

Описание

public mysql_xdevapi\Schema::getCollections ( void ) : array

Получить список коллекций для этой схемы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив всех коллекций в этой схеме, где каждое значение элемента массива является объектом Collection с именем коллекции в качестве ключа.

Примеры

Пример #1 Пример использования mysql_xdevapi\Schema::getCollections()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema  = $session->getSchema("addressbook");
$collect = $schema->createCollection("people");
$collect->add('{"name": "Fred",  "age": 21, "job": "Construction"}')->execute();
$collect->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

$collections = $schema->getCollections();
var_dump($collections);
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  ["people"]=>
  object(mysql_xdevapi\Collection)#4 (1) {
    ["name"]=>
    string(6) "people"
  }
}


Получить имя схемы

  • « Schema::getCollections
  • Schema::getSession »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Получить имя схемы

Schema::getName

(Информация о версии неизвестна, возможно, только в Git)

Schema::getName — Получить имя схемы

Описание

public mysql_xdevapi\Schema::getName ( void ) : string

Получить имя схемы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя схемы в виде строки, подключенной к объекту схемы.

Примеры

Пример #1 Пример использования mysql_xdevapi\Schema::getName()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema  = $session->getSchema("addressbook");

// ...

var_dump($schema->getName());
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "addressbook"


Получить сессию схемы

  • « Schema::getName
  • Schema::getTable »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Получить сессию схемы

Schema::getSession

(Информация о версии неизвестна, возможно, только в Git)

Schema::getSession — Получить сессию схемы

Описание

public mysql_xdevapi\Schema::getSession ( void ) : mysql_xdevapi\Session

Получение нового объекта Session из объекта Schema.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Session.

Примеры

Пример #1 Пример использования mysql_xdevapi\Schema::getSession()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema  = $session->getSchema("addressbook");

// ...

$newsession = $schema->getSession();

var_dump($session);
var_dump($newsession);
?>

Результатом выполнения данного примера будет что-то подобное:

object(mysql_xdevapi\Session)#1 (0) {
}

object(mysql_xdevapi\Session)#3 (0) {
}


Получить таблицу схемы

  • « Schema::getSession
  • Schema::getTables »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Получить таблицу схемы

Schema::getTable

(Информация о версии неизвестна, возможно, только в Git)

Schema::getTable — Получить таблицу схемы

Описание

public mysql_xdevapi\Schema::getTable ( string $name ) : mysql_xdevapi\Table

Получение объекта Table для указанной таблицы в схеме.

Список параметров

name

Имя таблицы.

Возвращаемые значения

Объект Table.

Примеры

Пример #1 Пример использования mysql_xdevapi\Schema::getTable()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$row = $table->select('name', 'age')->execute()->fetchAll();

print_r($row);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Получить таблицы схемы

  • « Schema::getTable
  • mysql_xdevapi\SchemaObject »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Получить таблицы схемы

Schema::getTables

(Информация о версии неизвестна, возможно, только в Git)

Schema::getTables — Получить таблицы схемы

Описание

public mysql_xdevapi\Schema::getTables ( void ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив всех таблиц в этой схеме, где каждое значение элемента массива является объектом Table с именем таблицы в качестве ключа.

Примеры

Пример #1 Пример использования mysql_xdevapi\Schema::getTables()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$session->sql("CREATE TABLE addressbook.cities(name text, population int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('Portland', 639863), ('Seattle', 704352)")->execute();

$schema = $session->getSchema("addressbook");
$tables = $schema->getTables();

var_dump($tables);
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["cities"]=>
  object(mysql_xdevapi\Table)#3 (1) {
    ["name"]=>
    string(6) "cities"
  }

  ["names"]=>
  object(mysql_xdevapi\Table)#4 (1) {
    ["name"]=>
    string(5) "names"
  }
}


Интерфейс SchemaObject

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\SchemaObject implements mysql_xdevapi\DatabaseObject {
/* Методы */
abstract getSchema ( void ) : mysql_xdevapi\Schema
}

Содержание

  • SchemaObject::getSchema — Получает объект схемы


Получает объект схемы

  • « mysql_xdevapi\SchemaObject
  • mysql_xdevapi\Session »
  • PHP Manual
  • mysql_xdevapi\SchemaObject
  • Получает объект схемы

SchemaObject::getSchema

(Информация о версии неизвестна, возможно, только в Git)

SchemaObject::getSchema — Получает объект схемы

Описание

abstract mysql_xdevapi\SchemaObject::getSchema ( void ) : mysql_xdevapi\Schema

Используется другими объектами для получения объекта схемы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий объект Schema.

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::getSchema()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$schema  = $session->getSchema("addressbook");

print_r($schema);

Результатом выполнения данного примера будет что-то подобное:

mysql_xdevapi\Schema Object
(
    [name] => addressbook
)


Класс Session

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\Session {
/* Методы */
public close ( void ) : bool
public commit ( void ) : Object
public createSchema ( string $schema_name ) : mysql_xdevapi\Schema
public dropSchema ( string $schema_name ) : bool
public generateUUID ( void ) : string
public getDefaultSchema ( void ) : string
public getSchema ( string $schema_name ) : mysql_xdevapi\Schema
public getSchemas ( void ) : array
public getServerVersion ( void ) : integer
public listClients ( void ) : array
public quoteName ( string $name ) : string
public releaseSavepoint ( string $name ) : void
public rollback ( void ) : void
public rollbackTo ( string $name ) : void
public setSavepoint ([ string $name ] ) : string
public sql ( string $query ) : mysql_xdevapi\SqlStatement
public startTransaction ( void ) : void
}

Содержание

  • Session::close — Закрывает сессию
  • Session::commit — Фиксирует транзакцию
  • Session::__construct — Описание конструктора
  • Session::createSchema — Создает новую схему
  • Session::dropSchema — Удаляет схему
  • Session::generateUUID — Получает новый UUID
  • Session::getDefaultSchema — Get default schema name
  • Session::getSchema — Получает новый объект схемы
  • Session::getSchemas — Получает схемы
  • Session::getServerVersion — Получает версию сервера
  • Session::listClients — Получает список клиентов
  • Session::quoteName — Add quotes
  • Session::releaseSavepoint — Отменяет установленную точку сохранения
  • Session::rollback — Откатывает транзакцию
  • Session::rollbackTo — Откатывает транзакцию до точки сохранения
  • Session::setSavepoint — Создает точку сохранения
  • Session::sql — Выполняет SQL запрос
  • Session::startTransaction — Начинает транзакцию


Закрывает сессию

  • « mysql_xdevapi\Session
  • Session::commit »
  • PHP Manual
  • mysql_xdevapi\Session
  • Закрывает сессию

Session::close

(Информация о версии неизвестна, возможно, только в Git)

Session::close — Закрывает сессию

Описание

public mysql_xdevapi\Session::close ( void ) : bool

Закрывает сессию с сервером.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если сессия закрыта.

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::close()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$session->close();


Фиксирует транзакцию

  • « Session::close
  • Session::__construct »
  • PHP Manual
  • mysql_xdevapi\Session
  • Фиксирует транзакцию

Session::commit

(PHP 4 >= 4.4.0, PHP 5, PHP 7)

Session::commit — Фиксирует транзакцию

Описание

public mysql_xdevapi\Session::commit ( void ) : Object

Фиксирует транзакцию.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект SqlStatementResult.

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::commit()

<?php
$session    = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("friends");

$session->startTransaction();

$collection->add('{"John":42, "Sam":33}')->execute();
$savepoint = $session->setSavepoint();

$session->commit();
$session->close();


Описание конструктора

  • « Session::commit
  • Session::createSchema »
  • PHP Manual
  • mysql_xdevapi\Session
  • Описание конструктора

Session::__construct

(Информация о версии неизвестна, возможно, только в Git)

Session::__construct — Описание конструктора

Описание

private mysql_xdevapi\Session::__construct ( void )

Объект Session, инициированный getSession().

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::__construct()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->close();
?>


Создает новую схему

  • « Session::__construct
  • Session::dropSchema »
  • PHP Manual
  • mysql_xdevapi\Session
  • Создает новую схему

Session::createSchema

(Информация о версии неизвестна, возможно, только в Git)

Session::createSchema — Создает новую схему

Описание

public mysql_xdevapi\Session::createSchema ( string $schema_name ) : mysql_xdevapi\Schema

Создает новую схему.

Список параметров

schema_name

Имя схемы для создания.

Возвращаемые значения

Объект Schema в случае успеха, при ошибке выдает исключение.

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::createSchema()

<?php
$uri  = 'mysqlx://happyuser:password@127.0.0.1:33060/';
$sess = mysql_xdevapi\getSession($uri);

try {

    if ($schema = $sess->createSchema('fruit')) {
        echo "Инфо: Я создал схему с именем 'fruit'\n";
    }

} catch (Exception $e) {

   echo $e->getMessage();

}
?>

Результатом выполнения данного примера будет что-то подобное:

Инфо: Я создал схему с именем 'fruit'


Удаляет схему

  • « Session::createSchema
  • Session::generateUUID »
  • PHP Manual
  • mysql_xdevapi\Session
  • Удаляет схему

Session::dropSchema

(Информация о версии неизвестна, возможно, только в Git)

Session::dropSchema — Удаляет схему

Описание

public mysql_xdevapi\Session::dropSchema ( string $schema_name ) : bool

Удаляет схему (базу данных).

Список параметров

schema_name

Имя схемы для удаления.

Возвращаемые значения

TRUE, если схема удалена, или FALSE если она не существует или не может быть удалена.

Генерируется ошибка уровня E_WARNING, если схема не существует.

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::dropSchema()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->dropSchema("addressbook");

$session->close();
?>


Получает новый UUID

  • « Session::dropSchema
  • Session::getDefaultSchema »
  • PHP Manual
  • mysql_xdevapi\Session
  • Получает новый UUID

Session::generateUUID

(Информация о версии неизвестна, возможно, только в Git)

Session::generateUUID — Получает новый UUID

Описание

public mysql_xdevapi\Session::generateUUID ( void ) : string

Генерирует универсальный уникальный идентификатор (UUID), сгенерированный в соответствии с » RFC 4122.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

UUID; строка длиной 32 символа.

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::generateUuid()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$uuid = $session->generateUuid();

var_dump($uuid);

Результатом выполнения данного примера будет что-то подобное:

string(32) "484B18AC7980F8D4FE84613CDA5EE84B"


Get default schema name

  • « Session::generateUUID
  • Session::getSchema »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get default schema name

Session::getDefaultSchema

(Информация о версии неизвестна, возможно, только в Git)

Session::getDefaultSchema — Get default schema name

Описание

public mysql_xdevapi\Session::getDefaultSchema ( void ) : string

Retrieve name of the default schema that's typically set in the connection URI.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Name of the default schema defined by the connection, or NULL if one was not set.

Примеры

Пример #1 mysql_xdevapi\Session::getSchema() example

<?php
$uri = "mysqlx://testuser:testpasswd@localhost:33160/testx?ssl-mode=disabled";
$session = mysql_xdevapi\getSession($uri);

$schema = $session->getDefaultSchema();
echo $schema;
?>

Результат выполнения данного примера:

testx


Получает новый объект схемы

  • « Session::getDefaultSchema
  • Session::getSchemas »
  • PHP Manual
  • mysql_xdevapi\Session
  • Получает новый объект схемы

Session::getSchema

(Информация о версии неизвестна, возможно, только в Git)

Session::getSchema — Получает новый объект схемы

Описание

public mysql_xdevapi\Session::getSchema ( string $schema_name ) : mysql_xdevapi\Schema

Новый объект Schema для указанного имени схемы.

Список параметров

schema_name

Имя схемы (базы данных), для которой нужно получить объект Schema.

Возвращаемые значения

Объект Schema.

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::getSchema()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$schema  = $session->getSchema("addressbook");

print_r($schema);

Результатом выполнения данного примера будет что-то подобное:

mysql_xdevapi\Schema Object
(
    [name] => addressbook
)


Получает схемы

  • « Session::getSchema
  • Session::getServerVersion »
  • PHP Manual
  • mysql_xdevapi\Session
  • Получает схемы

Session::getSchemas

(Информация о версии неизвестна, возможно, только в Git)

Session::getSchemas — Получает схемы

Описание

public mysql_xdevapi\Session::getSchemas ( void ) : array

Получить объекты схемы для всех схем, доступных в сессии.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив, содержащий объекты, которые представляют все схемы, доступные в сессии.

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::getSchemas()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$schemas  = $session->getSchemas();

print_r($schemas);

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => mysql_xdevapi\Schema Object
        (
            [name] => addressbook
        )
    [1] => mysql_xdevapi\Schema Object
        (
            [name] => information_schema
        )
    ...


Получает версию сервера

  • « Session::getSchemas
  • Session::listClients »
  • PHP Manual
  • mysql_xdevapi\Session
  • Получает версию сервера

Session::getServerVersion

(Информация о версии неизвестна, возможно, только в Git)

Session::getServerVersion — Получает версию сервера

Описание

public mysql_xdevapi\Session::getServerVersion ( void ) : integer

Получает версию сервера MySQL для сессии.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Версия сервера MySQL для сессии в виде целого числа, такого как "80012".

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::getServerVersion()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$version = $session->getServerVersion();

var_dump($version);

Результатом выполнения данного примера будет что-то подобное:

int(80012)


Получает список клиентов

  • « Session::getServerVersion
  • Session::quoteName »
  • PHP Manual
  • mysql_xdevapi\Session
  • Получает список клиентов

Session::listClients

(Информация о версии неизвестна, возможно, только в Git)

Session::listClients — Получает список клиентов

Описание

public mysql_xdevapi\Session::listClients ( void ) : array

Получить список клиентских подключений к сессии MySQL сервера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив, содержащий текущих зарегистрированных клиентов. Элементы массива: "client_id", "user", "host", и "sql_session".

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::listClients()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$ids = $session->listClients();

var_dump($ids);
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(4) {
    ["client_id"]=>
    int(61)
    ["user"]=>
    string(4) "root"
    ["host"]=>
    string(9) "localhost"
    ["sql_session"]=>
    int(72)
  }
}


Add quotes

  • « Session::listClients
  • Session::releaseSavepoint »
  • PHP Manual
  • mysql_xdevapi\Session
  • Add quotes

Session::quoteName

(Информация о версии неизвестна, возможно, только в Git)

Session::quoteName — Add quotes

Описание

public mysql_xdevapi\Session::quoteName ( string $name ) : string

A quoting function to escape SQL names and identifiers. It escapes the identifier given in accordance to the settings of the current connection. This escape function should not be used to escape values.

Список параметров

name

The string to quote.

Возвращаемые значения

The quoted string.

Примеры

Пример #1 mysql_xdevapi\Session::quoteName() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$first = "MySQL's test";
var_dump($first);
var_dump($session->quoteName($first));

$second = 'Another `test` "like" `this`';
var_dump($second);
var_dump($session->quoteName($second));
?>

Результатом выполнения данного примера будет что-то подобное:

string(12) "MySQL's test"
string(14) "`MySQL's test`"

string(28) "Another `test` "like" `this`"
string(34) "`Another ``test`` "like" ``this```"


Отменяет установленную точку сохранения

  • « Session::quoteName
  • Session::rollback »
  • PHP Manual
  • mysql_xdevapi\Session
  • Отменяет установленную точку сохранения

Session::releaseSavepoint

(Информация о версии неизвестна, возможно, только в Git)

Session::releaseSavepoint — Отменяет установленную точку сохранения

Описание

public mysql_xdevapi\Session::releaseSavepoint ( string $name ) : void

Отменяет ранее установленную точку сохранения.

Список параметров

name

Имя точки сохранения для отмены.

Возвращаемые значения

Объект SqlStatementResult.

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::releaseSavepoint()

<?php
$session    = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("friends");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$session->releaseSavepoint($savepoint);
$session->rollback();
?>


Откатывает транзакцию

  • « Session::releaseSavepoint
  • Session::rollbackTo »
  • PHP Manual
  • mysql_xdevapi\Session
  • Откатывает транзакцию

Session::rollback

(Информация о версии неизвестна, возможно, только в Git)

Session::rollback — Откатывает транзакцию

Описание

public mysql_xdevapi\Session::rollback ( void ) : void

Откатывает транзакцию.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект SqlStatementResult.

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::rollback()

<?php
$session    = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("names");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$session->releaseSavepoint($savepoint);
$session->rollback();
?>


Откатывает транзакцию до точки сохранения

  • « Session::rollback
  • Session::setSavepoint »
  • PHP Manual
  • mysql_xdevapi\Session
  • Откатывает транзакцию до точки сохранения

Session::rollbackTo

(Информация о версии неизвестна, возможно, только в Git)

Session::rollbackTo — Откатывает транзакцию до точки сохранения

Описание

public mysql_xdevapi\Session::rollbackTo ( string $name ) : void

Откатывает транзакцию до точки сохранения.

Список параметров

name

Имя точки сохранения для отката; без учета регистра.

Возвращаемые значения

Объект SqlStatementResult.

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::rollbackTo()

<?php
$session    = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("names");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint1 = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$savepoint2 = $session->setSavepoint();

$session->rollbackTo($savepoint1);
?>


Создает точку сохранения

  • « Session::rollbackTo
  • Session::sql »
  • PHP Manual
  • mysql_xdevapi\Session
  • Создает точку сохранения

Session::setSavepoint

(Информация о версии неизвестна, возможно, только в Git)

Session::setSavepoint — Создает точку сохранения

Описание

public mysql_xdevapi\Session::setSavepoint ([ string $name ] ) : string

Создает новую точку сохранения для транзакции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Название точки сохранения. Имя генерируется автоматически, если необязательный параметр name не определен, как 'SAVEPOINT1', 'SAVEPOINT2' и т.д.

Возвращаемые значения

Название точки сохранения.

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::setSavepoint()

<?php
$session    = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("names");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$session->releaseSavepoint($savepoint);
$session->rollback();
?>


Выполняет SQL запрос

  • « Session::setSavepoint
  • Session::startTransaction »
  • PHP Manual
  • mysql_xdevapi\Session
  • Выполняет SQL запрос

Session::sql

(Информация о версии неизвестна, возможно, только в Git)

Session::sql — Выполняет SQL запрос

Описание

public mysql_xdevapi\Session::sql ( string $query ) : mysql_xdevapi\SqlStatement

Создает собственный оператор SQL. Заполнители поддерживаются с помощью нативного синтаксиса "?". Использует метод execute для выполнения утверждения SQL.

Список параметров

query

Утверждение SQL для выполнения.

Возвращаемые значения

Объект SqlStatement.

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::sql()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("CREATE DATABASE addressbook")->execute();
?>


Начинает транзакцию

  • « Session::sql
  • mysql_xdevapi\SqlStatement »
  • PHP Manual
  • mysql_xdevapi\Session
  • Начинает транзакцию

Session::startTransaction

(Информация о версии неизвестна, возможно, только в Git)

Session::startTransaction — Начинает транзакцию

Описание

public mysql_xdevapi\Session::startTransaction ( void ) : void

Начинает новую транзакцию.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект SqlStatementResult.

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::startTransaction()

<?php
$session    = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("friends");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$session->releaseSavepoint($savepoint);
$session->rollback();
?>


Класс SqlStatement

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\SqlStatement {
/* Константы */
const integer EXECUTE_ASYNC = 1 ;
const integer BUFFERED = 2 ;
/* Свойства */
public $statement ;
/* Методы */
public bind ( string $param ) : mysql_xdevapi\SqlStatement
public execute ( void ) : mysql_xdevapi\Result
public getNextResult ( void ) : mysql_xdevapi\Result
public getResult ( void ) : mysql_xdevapi\Result
public hasMoreResults ( void ) : bool
}

Свойства

statement

Предопределенные константы

mysql_xdevapi\SqlStatement::EXECUTE_ASYNC

mysql_xdevapi\SqlStatement::BUFFERED

Содержание

  • SqlStatement::bind — Связывает параметры утверждения
  • SqlStatement::__construct — Описание конструктора
  • SqlStatement::execute — Выполняет операцию
  • SqlStatement::getNextResult — Получает следующий результат
  • SqlStatement::getResult — Получает результат
  • SqlStatement::hasMoreResults — Проверяет, есть ли еще результаты


Связывает параметры утверждения

  • « mysql_xdevapi\SqlStatement
  • SqlStatement::__construct »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Связывает параметры утверждения

SqlStatement::bind

(Информация о версии неизвестна, возможно, только в Git)

SqlStatement::bind — Связывает параметры утверждения

Описание

public mysql_xdevapi\SqlStatement::bind ( string $param ) : mysql_xdevapi\SqlStatement

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

param

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatement::bind()

<?php

/* ... */

?>


Описание конструктора

  • « SqlStatement::bind
  • SqlStatement::execute »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Описание конструктора

SqlStatement::__construct

(Информация о версии неизвестна, возможно, только в Git)

SqlStatement::__construct — Описание конструктора

Описание

private mysql_xdevapi\SqlStatement::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatement::__construct()

<?php

/* ... */

?>


Выполняет операцию

  • « SqlStatement::__construct
  • SqlStatement::getNextResult »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Выполняет операцию

SqlStatement::execute

(Информация о версии неизвестна, возможно, только в Git)

SqlStatement::execute — Выполняет операцию

Описание

public mysql_xdevapi\SqlStatement::execute ( void ) : mysql_xdevapi\Result

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatement::execute()

<?php

/* ... */

?>


Получает следующий результат

  • « SqlStatement::execute
  • SqlStatement::getResult »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Получает следующий результат

SqlStatement::getNextResult

(Информация о версии неизвестна, возможно, только в Git)

SqlStatement::getNextResult — Получает следующий результат

Описание

public mysql_xdevapi\SqlStatement::getNextResult ( void ) : mysql_xdevapi\Result

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatement::getNextResult()

<?php

/* ... */

?>


Получает результат

  • « SqlStatement::getNextResult
  • SqlStatement::hasMoreResults »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Получает результат

SqlStatement::getResult

(Информация о версии неизвестна, возможно, только в Git)

SqlStatement::getResult — Получает результат

Описание

public mysql_xdevapi\SqlStatement::getResult ( void ) : mysql_xdevapi\Result

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatement::getResult()

<?php

/* ... */

?>


Проверяет, есть ли еще результаты

  • « SqlStatement::getResult
  • mysql_xdevapi\SqlStatementResult »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Проверяет, есть ли еще результаты

SqlStatement::hasMoreResults

(Информация о версии неизвестна, возможно, только в Git)

SqlStatement::hasMoreResults — Проверяет, есть ли еще результаты

Описание

public mysql_xdevapi\SqlStatement::hasMoreResults ( void ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если в наборе результатов есть больше объектов для выборки.

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatement::hasMoreResults()

<?php

/* ... */

?>


Класс SqlStatementResult

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\SqlStatementResult implements mysql_xdevapi\BaseResult , Traversable {
/* Методы */
public fetchAll ( void ) : array
public fetchOne ( void ) : array
public getAffectedItemsCount ( void ) : integer
public getColumnsCount ( void ) : integer
public getColumnNames ( void ) : array
public getColumns ( void ) : Array
public getGeneratedIds ( void ) : array
public getLastInsertId ( void ) : String
public getWarnings ( void ) : array
public getWarningCounts ( void ) : integer
public hasData ( void ) : bool
public nextResult ( void ) : mysql_xdevapi\Result
}

Содержание

  • SqlStatementResult::__construct — Описание конструктора
  • SqlStatementResult::fetchAll — Получает все строки из результата
  • SqlStatementResult::fetchOne — Получает одну строку
  • SqlStatementResult::getAffectedItemsCount — Получает затронутое количество строк
  • SqlStatementResult::getColumnsCount — Получает количество столбцов
  • SqlStatementResult::getColumnNames — Получает имена столбцов
  • SqlStatementResult::getColumns — Получает столбцы
  • SqlStatementResult::getGeneratedIds — Получает сгенерированные идентификаторы
  • SqlStatementResult::getLastInsertId — Получает последний идентификатор вставки
  • SqlStatementResult::getWarnings — Получает предупреждения от последней операции
  • SqlStatementResult::getWarningsCount — Получает количество предупреждений от последней операции
  • SqlStatementResult::hasData — Проверяет, есть ли у результата данные
  • SqlStatementResult::nextResult — Получает следующий результат


Описание конструктора

  • « mysql_xdevapi\SqlStatementResult
  • SqlStatementResult::fetchAll »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Описание конструктора

SqlStatementResult::__construct

(Информация о версии неизвестна, возможно, только в Git)

SqlStatementResult::__construct — Описание конструктора

Описание

private mysql_xdevapi\SqlStatementResult::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatementResult::__construct()

<?php

/* ... */

?>


Получает все строки из результата

  • « SqlStatementResult::__construct
  • SqlStatementResult::fetchOne »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Получает все строки из результата

SqlStatementResult::fetchAll

(Информация о версии неизвестна, возможно, только в Git)

SqlStatementResult::fetchAll — Получает все строки из результата

Описание

public mysql_xdevapi\SqlStatementResult::fetchAll ( void ) : array

Извлекает все строки из набора результатов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Числовой массив со всеми результатами запроса; каждый результат представляет собой ассоциативный массив. Возвращается пустой массив, если строк нет.

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatementResult::fetchAll()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS dbtest")->execute();
$session->sql("CREATE DATABASE dbtest")->execute();
$session->sql("CREATE TABLE dbtest.workers(name text, age int, job text)")->execute();
$session->sql("INSERT INTO dbtest.workers values ('John', 42, 'bricklayer'), ('Sam', 33, 'carpenter')")->execute();

$schema = $session->getSchema("dbtest");
$table  = $schema->getTable("workers");

$rows = $session->sql("SELECT * FROM dbtest.workers")->execute()->fetchAll();

print_r($rows);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Получает одну строку

  • « SqlStatementResult::fetchAll
  • SqlStatementResult::getAffectedItemsCount »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Получает одну строку

SqlStatementResult::fetchOne

(Информация о версии неизвестна, возможно, только в Git)

SqlStatementResult::fetchOne — Получает одну строку

Описание

public mysql_xdevapi\SqlStatementResult::fetchOne ( void ) : array

Получает одну строку из набора результатов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Результат, как ассоциативный массив. В случае отсутствия результата возвращается ноль.

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatementResult::fetchOne()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS dbtest")->execute();
$session->sql("CREATE DATABASE dbtest")->execute();
$session->sql("CREATE TABLE dbtest.workers(name text, age int, job text)")->execute();
$session->sql("INSERT INTO dbtest.workers values ('John', 42, 'bricklayer'), ('Sam', 33, 'carpenter')")->execute();

$schema = $session->getSchema("dbtest");
$table  = $schema->getTable("workers");

$rows = $session->sql("SELECT * FROM dbtest.workers")->execute()->fetchOne();

print_r($rows);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name] => John
    [age] => 42
    [job] => bricklayer
)


Получает затронутое количество строк

  • « SqlStatementResult::fetchOne
  • SqlStatementResult::getColumnsCount »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Получает затронутое количество строк

SqlStatementResult::getAffectedItemsCount

(Информация о версии неизвестна, возможно, только в Git)

SqlStatementResult::getAffectedItemsCount — Получает затронутое количество строк

Описание

public mysql_xdevapi\SqlStatementResult::getAffectedItemsCount ( void ) : integer

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatementResult::getAffectedItemsCount()

<?php

/* ... */

?>


Получает количество столбцов

  • « SqlStatementResult::getAffectedItemsCount
  • SqlStatementResult::getColumnNames »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Получает количество столбцов

SqlStatementResult::getColumnsCount

(Информация о версии неизвестна, возможно, только в Git)

SqlStatementResult::getColumnsCount — Получает количество столбцов

Описание

public mysql_xdevapi\SqlStatementResult::getColumnsCount ( void ) : integer

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество столбцов; 0 если их нет

Список изменений

Версия | Описание
8.0.14 | Метод переименован из getColumnCount() в getColumnsCount().

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatementResult::getColumnsCount()

<?php

/* ... */

?>


Получает имена столбцов

  • « SqlStatementResult::getColumnsCount
  • SqlStatementResult::getColumns »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Получает имена столбцов

SqlStatementResult::getColumnNames

(Информация о версии неизвестна, возможно, только в Git)

SqlStatementResult::getColumnNames — Получает имена столбцов

Описание

public mysql_xdevapi\SqlStatementResult::getColumnNames ( void ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatementResult::getColumnNames()

<?php

/* ... */

?>


Получает столбцы

  • « SqlStatementResult::getColumnNames
  • SqlStatementResult::getGeneratedIds »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Получает столбцы

SqlStatementResult::getColumns

(Информация о версии неизвестна, возможно, только в Git)

SqlStatementResult::getColumns — Получает столбцы

Описание

public mysql_xdevapi\SqlStatementResult::getColumns ( void ) : Array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatementResult::getColumns()

<?php

/* ... */

?>


Получает сгенерированные идентификаторы

  • « SqlStatementResult::getColumns
  • SqlStatementResult::getLastInsertId »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Получает сгенерированные идентификаторы

SqlStatementResult::getGeneratedIds

(Информация о версии неизвестна, возможно, только в Git)

SqlStatementResult::getGeneratedIds — Получает сгенерированные идентификаторы

Описание

public mysql_xdevapi\SqlStatementResult::getGeneratedIds ( void ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив сгенерированных _id из последней операции или пустой массив, если таковых нет.

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatementResult::getGeneratedIds()

<?php

/* ... */

?>


Получает последний идентификатор вставки

  • « SqlStatementResult::getGeneratedIds
  • SqlStatementResult::getWarnings »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Получает последний идентификатор вставки

SqlStatementResult::getLastInsertId

(Информация о версии неизвестна, возможно, только в Git)

SqlStatementResult::getLastInsertId — Получает последний идентификатор вставки

Описание

public mysql_xdevapi\SqlStatementResult::getLastInsertId ( void ) : String

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Идентификатор последней операции вставки.

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatementResult::getLastInsertId()

<?php

/* ... */

?>


Получает предупреждения от последней операции

  • « SqlStatementResult::getLastInsertId
  • SqlStatementResult::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Получает предупреждения от последней операции

SqlStatementResult::getWarnings

(Информация о версии неизвестна, возможно, только в Git)

SqlStatementResult::getWarnings — Получает предупреждения от последней операции

Описание

public mysql_xdevapi\SqlStatementResult::getWarnings ( void ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив объектов Warning из последней операции. Каждый объект определяет 'message' об ошибке, 'level' ошибки и 'code' ошибки. Пустой массив возвращается, если ошибок нет.

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatementResult::getWarnings()

<?php

/* ... */

?>


Получает количество предупреждений от последней операции

  • « SqlStatementResult::getWarnings
  • SqlStatementResult::hasData »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Получает количество предупреждений от последней операции

SqlStatementResult::getWarningsCount

(Информация о версии неизвестна, возможно, только в Git)

SqlStatementResult::getWarningsCount — Получает количество предупреждений от последней операции

Описание

public mysql_xdevapi\SqlStatementResult::getWarningCounts ( void ) : integer

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество предупреждений, выданных во время последней операции CRUD.

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatementResult::getWarningsCount()

<?php

/* ... */

?>


Проверяет, есть ли у результата данные

  • « SqlStatementResult::getWarningsCount
  • SqlStatementResult::nextResult »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Проверяет, есть ли у результата данные

SqlStatementResult::hasData

(Информация о версии неизвестна, возможно, только в Git)

SqlStatementResult::hasData — Проверяет, есть ли у результата данные

Описание

public mysql_xdevapi\SqlStatementResult::hasData ( void ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если в наборе результатов есть данные.

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatementResult::hasData()

<?php

/* ... */

?>


Получает следующий результат

  • « SqlStatementResult::hasData
  • mysql_xdevapi\Statement »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Получает следующий результат

SqlStatementResult::nextResult

(Информация о версии неизвестна, возможно, только в Git)

SqlStatementResult::nextResult — Получает следующий результат

Описание

public mysql_xdevapi\SqlStatementResult::nextResult ( void ) : mysql_xdevapi\Result

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Следующий объект Result из набора результатов.

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatementResult::nextResult()

<?php

/* ... */

?>


Класс Statement

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\Statement {
/* Константы */
const integer EXECUTE_ASYNC = 1 ;
const integer BUFFERED = 2 ;
/* Методы */
public getNextResult ( void ) : mysql_xdevapi\Result
public getResult ( void ) : mysql_xdevapi\Result
public hasMoreResults ( void ) : bool
}

Предопределенные константы

mysql_xdevapi\Statement::EXECUTE_ASYNC

mysql_xdevapi\Statement::BUFFERED

Содержание

  • Statement::__construct — Описание конструктора
  • Statement::getNextResult — Получает следующий результат
  • Statement::getResult — Получает результат
  • Statement::hasMoreResults — Проверяет, есть ли еще результаты


Описание конструктора

  • « mysql_xdevapi\Statement
  • Statement::getNextResult »
  • PHP Manual
  • mysql_xdevapi\Statement
  • Описание конструктора

Statement::__construct

(Информация о версии неизвестна, возможно, только в Git)

Statement::__construct — Описание конструктора

Описание

private mysql_xdevapi\Statement::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 mysql_xdevapi\Statement::__construct() example

<?php

/* ... */

?>


Получает следующий результат

  • « Statement::__construct
  • Statement::getResult »
  • PHP Manual
  • mysql_xdevapi\Statement
  • Получает следующий результат

Statement::getNextResult

(Информация о версии неизвестна, возможно, только в Git)

Statement::getNextResult — Получает следующий результат

Описание

public mysql_xdevapi\Statement::getNextResult ( void ) : mysql_xdevapi\Result

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\Statement::getNextResult()

<?php

/* ... */

?>


Получает результат

  • « Statement::getNextResult
  • Statement::hasMoreResults »
  • PHP Manual
  • mysql_xdevapi\Statement
  • Получает результат

Statement::getResult

(Информация о версии неизвестна, возможно, только в Git)

Statement::getResult — Получает результат

Описание

public mysql_xdevapi\Statement::getResult ( void ) : mysql_xdevapi\Result

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\Statement::getResult()

<?php

/* ... */

?>


Проверяет, есть ли еще результаты

  • « Statement::getResult
  • mysql_xdevapi\Table »
  • PHP Manual
  • mysql_xdevapi\Statement
  • Проверяет, есть ли еще результаты

Statement::hasMoreResults

(Информация о версии неизвестна, возможно, только в Git)

Statement::hasMoreResults — Проверяет, есть ли еще результаты

Описание

public mysql_xdevapi\Statement::hasMoreResults ( void ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\Statement::hasMoreResults()

<?php

/* ... */

?>


Класс Table

(PECL mysql-xdevapi >= 8.0.11)

Введение

Предоставляет доступ к таблице через операторы INSERT/SELECT/UPDATE/DELETE.

Обзор классов

mysql_xdevapi\Table implements mysql_xdevapi\SchemaObject {
/* Свойства */
public $name ;
/* Методы */
public count ( void ) : integer
public delete ( void ) : mysql_xdevapi\TableDelete
public existsInDatabase ( void ) : bool
public getName ( void ) : string
public getSchema ( void ) : mysql_xdevapi\Schema
public getSession ( void ) : mysql_xdevapi\Session
public insert ( mixed $columns [, mixed $... ] ) : mysql_xdevapi\TableInsert
public isView ( void ) : bool
public select ( mixed $columns [, mixed $... ] ) : mysql_xdevapi\TableSelect
public update ( void ) : mysql_xdevapi\TableUpdate
}

Свойства

name

Содержание

  • Table::__construct — Конструктор Table
  • Table::count — Получить количество строк
  • Table::delete — Удалить строки из таблицы
  • Table::existsInDatabase — Проверить, существует ли таблица в базе данных
  • Table::getName — Получить имя таблицы
  • Table::getSchema — Получить схему таблицы
  • Table::getSession — Получить таблицу сессий
  • Table::insert — Вставить строки таблицы
  • Table::isView — Проверить, является ли таблица представлением
  • Table::select — Выбрать строки из таблицы
  • Table::update — Обновить строки в таблице


Конструктор Table

  • « mysql_xdevapi\Table
  • Table::count »
  • PHP Manual
  • mysql_xdevapi\Table
  • Конструктор Table

Table::__construct

(Информация о версии неизвестна, возможно, только в Git)

Table::__construct — Конструктор Table

Описание

private mysql_xdevapi\Table::__construct ( void )

Создать объекты таблицы.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\Table::__construct()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");
?>


Получить количество строк

  • « Table::__construct
  • Table::delete »
  • PHP Manual
  • mysql_xdevapi\Table
  • Получить количество строк

Table::count

(Информация о версии неизвестна, возможно, только в Git)

Table::count — Получить количество строк

Описание

public mysql_xdevapi\Table::count ( void ) : integer

Получить количество строк в таблице.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Общее количество строк в таблице.

Примеры

Пример #1 Пример использования mysql_xdevapi\Table::count()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

var_dump($table->count());
?>

Результат выполнения данного примера:

int(2)


Удалить строки из таблицы

  • « Table::count
  • Table::existsInDatabase »
  • PHP Manual
  • mysql_xdevapi\Table
  • Удалить строки из таблицы

Table::delete

(Информация о версии неизвестна, возможно, только в Git)

Table::delete — Удалить строки из таблицы

Описание

public mysql_xdevapi\Table::delete ( void ) : mysql_xdevapi\TableDelete

Удаляет строки из таблицы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект TableDelete; используйте метод execute() для выполнения запроса delete

Примеры

Пример #1 Пример использования mysql_xdevapi\Table::delete()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->delete()->where("name = :name")->orderby("age DESC")->limit(1)->bind(['name' => 'John'])->execute();
?>


Проверить, существует ли таблица в базе данных

  • « Table::delete
  • Table::getName »
  • PHP Manual
  • mysql_xdevapi\Table
  • Проверить, существует ли таблица в базе данных

Table::existsInDatabase

(Информация о версии неизвестна, возможно, только в Git)

Table::existsInDatabase — Проверить, существует ли таблица в базе данных

Описание

public mysql_xdevapi\Table::existsInDatabase ( void ) : bool

Проверяет, существует ли данная таблица в базе данных.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если таблица существует в базе данных, иначе FALSE, если таблицы нет.

Примеры

Пример #1 Пример использования mysql_xdevapi\Table::existsInDatabase()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

if ($table->existsInDatabase()) {
  echo "Да, эта таблица все еще существует в схеме сессии.";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Да, эта таблица все еще существует в схеме сессии.


Получить имя таблицы

  • « Table::existsInDatabase
  • Table::getSchema »
  • PHP Manual
  • mysql_xdevapi\Table
  • Получить имя таблицы

Table::getName

(Информация о версии неизвестна, возможно, только в Git)

Table::getName — Получить имя таблицы

Описание

public mysql_xdevapi\Table::getName ( void ) : string

Возвращает имя объекта базы данных.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя объекта базы данных.

Примеры

Пример #1 Пример использования mysql_xdevapi\Table::getName()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

var_dump($table->getName());
?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "names"


Получить схему таблицы

  • « Table::getName
  • Table::getSession »
  • PHP Manual
  • mysql_xdevapi\Table
  • Получить схему таблицы

Table::getSchema

(Информация о версии неизвестна, возможно, только в Git)

Table::getSchema — Получить схему таблицы

Описание

public mysql_xdevapi\Table::getSchema ( void ) : mysql_xdevapi\Schema

Извлечь схему, связанную с таблицей.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Schema.

Примеры

Пример #1 Пример использования mysql_xdevapi\Table::getSchema()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

var_dump($table->getSchema());
?>

Результатом выполнения данного примера будет что-то подобное:

object(mysql_xdevapi\Schema)#9 (1) {
  ["name"]=>
  string(11) "addressbook"
}


Получить таблицу сессий

  • « Table::getSchema
  • Table::insert »
  • PHP Manual
  • mysql_xdevapi\Table
  • Получить таблицу сессий

Table::getSession

(Информация о версии неизвестна, возможно, только в Git)

Table::getSession — Получить таблицу сессий

Описание

public mysql_xdevapi\Table::getSession ( void ) : mysql_xdevapi\Session

Получить сессию, связанную с таблицей.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Session.

Примеры

Пример #1 Пример использования mysql_xdevapi\Table::getSession()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

var_dump($table->getSession());
?>

Результатом выполнения данного примера будет что-то подобное:

object(mysql_xdevapi\Session)#9 (0) {
}


Вставить строки таблицы

  • « Table::getSession
  • Table::isView »
  • PHP Manual
  • mysql_xdevapi\Table
  • Вставить строки таблицы

Table::insert

(Информация о версии неизвестна, возможно, только в Git)

Table::insert — Вставить строки таблицы

Описание

public mysql_xdevapi\Table::insert ( mixed $columns [, mixed $... ] ) : mysql_xdevapi\TableInsert

Вставляет строки в таблицу.

Список параметров

columns

Столбцы для вставки данных. Может быть массивом с одним или несколькими значениями, либо строкой.

...

Определения дополнительных столбцов.

Возвращаемые значения

Объект TableInsert; используйте метод execute() для выполнения выражения insert.

Примеры

Пример #1 Пример использования mysql_xdevapi\Table::insert()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table ->insert("name", "age")
  ->values(["Suzanne", 31],["Julie", 43])
  ->execute();
?>


Проверить, является ли таблица представлением

  • « Table::insert
  • Table::select »
  • PHP Manual
  • mysql_xdevapi\Table
  • Проверить, является ли таблица представлением

Table::isView

(Информация о версии неизвестна, возможно, только в Git)

Table::isView — Проверить, является ли таблица представлением

Описание

public mysql_xdevapi\Table::isView ( void ) : bool

Определите, является ли базовый объект представлением или нет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если базовый объект является представлением, в противном случае FALSE.

Примеры

Пример #1 Пример использования mysql_xdevapi\Table::isView()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names

if ($table->isView()) {
    echo "Это представление.";
} else {
    echo "Это не представление.";
}
?>

Результат выполнения данного примера:

int(2)


Выбрать строки из таблицы

  • « Table::isView
  • Table::update »
  • PHP Manual
  • mysql_xdevapi\Table
  • Выбрать строки из таблицы

Table::select

(Информация о версии неизвестна, возможно, только в Git)

Table::select — Выбрать строки из таблицы

Описание

public mysql_xdevapi\Table::select ( mixed $columns [, mixed $... ] ) : mysql_xdevapi\TableSelect

Извлекает данные из таблицы.

Список параметров

columns

Столбцы для выбора данных. Может быть массивом с одним или несколькими значениями или строкой.

...

Дополнительные определения параметров столбцов.

Возвращаемые значения

Объект TableSelect; используйте метод execute() для выполнения select и возврата объекта RowResult.

Примеры

Пример #1 Пример использования mysql_xdevapi\Table::count()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$row = $table->select('name', 'age')->execute()->fetchAll();

print_r($row);

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Обновить строки в таблице

  • « Table::select
  • mysql_xdevapi\TableDelete »
  • PHP Manual
  • mysql_xdevapi\Table
  • Обновить строки в таблице

Table::update

(Информация о версии неизвестна, возможно, только в Git)

Table::update — Обновить строки в таблице

Описание

public mysql_xdevapi\Table::update ( void ) : mysql_xdevapi\TableUpdate

Обновляет столбцы в таблице.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект TableUpdate; используйте метод execute() для выполнения выражения update.

Примеры

Пример #1 Пример использования mysql_xdevapi\Table::update()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->update()->set('age',34)->where('name = "Sam"')->limit(1)->execute();
?>


Класс TableDelete

(PECL mysql-xdevapi >= 8.0.11)

Введение

Оператор для операций удаления в таблице.

Обзор классов

mysql_xdevapi\TableDelete implements mysql_xdevapi\Executable {
/* Методы */
public bind ( array $placeholder_values ) : mysql_xdevapi\TableDelete
public execute ( void ) : mysql_xdevapi\Result
public limit ( integer $rows ) : mysql_xdevapi\TableDelete
public orderby ( string $orderby_expr ) : mysql_xdevapi\TableDelete
public where ( string $where_expr ) : mysql_xdevapi\TableDelete
}

Содержание

  • TableDelete::bind — Связывает параметры запроса удаления
  • TableDelete::__construct — Конструктор класса TableDelete
  • TableDelete::execute — Выполняет запрос на удаление
  • TableDelete::limit — Ограничивает строки для удаления
  • TableDelete::orderby — Устанавливает критерии сортировки удаления
  • TableDelete::where — Устанавливает условие поиска для удаления


Связывает параметры запроса удаления

  • « mysql_xdevapi\TableDelete
  • TableDelete::__construct »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Связывает параметры запроса удаления

TableDelete::bind

(Информация о версии неизвестна, возможно, только в Git)

TableDelete::bind — Связывает параметры запроса удаления

Описание

public mysql_xdevapi\TableDelete::bind ( array $placeholder_values ) : mysql_xdevapi\TableDelete

Привязывает значение к определенному заполнителю.

Список параметров

placeholder_values

Имя заполнителя и значение для привязки.

Возвращаемые значения

Объект TableDelete.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableDelete::bind()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->delete()
  ->where("name = :name")
  ->bind(['name' => 'John'])
  ->orderby("age DESC")
  ->limit(1)
  ->execute();

?>


Конструктор класса TableDelete

  • « TableDelete::bind
  • TableDelete::execute »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Конструктор класса TableDelete

TableDelete::__construct

(Информация о версии неизвестна, возможно, только в Git)

TableDelete::__construct — Конструктор класса TableDelete

Описание

private mysql_xdevapi\TableDelete::__construct ( void )

Инициируется с помощью метода delete().

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableDelete::__construct()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->delete()
  ->where("name = :name")
  ->bind(['name' => 'John'])
  ->orderby("age DESC")
  ->limit(1)
  ->execute();

?>


Выполняет запрос на удаление

  • « TableDelete::__construct
  • TableDelete::limit »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Выполняет запрос на удаление

TableDelete::execute

(Информация о версии неизвестна, возможно, только в Git)

TableDelete::execute — Выполняет запрос на удаление

Описание

public mysql_xdevapi\TableDelete::execute ( void ) : mysql_xdevapi\Result

Выполняет запрос на удаление.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Result.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableDelete::execute()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->delete()
  ->where("name = :name")
  ->bind(['name' => 'John'])
  ->orderby("age DESC")
  ->limit(1)
  ->execute();

?>


Ограничивает строки для удаления

  • « TableDelete::execute
  • TableDelete::orderby »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Ограничивает строки для удаления

TableDelete::limit

(Информация о версии неизвестна, возможно, только в Git)

TableDelete::limit — Ограничивает строки для удаления

Описание

public mysql_xdevapi\TableDelete::limit ( integer $rows ) : mysql_xdevapi\TableDelete

Устанавливает максимальное количество записей или документов для удаления.

Список параметров

rows

Максимальное количество записей или документов для удаления.

Возвращаемые значения

Объект TableDelete.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableDelete::limit()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->delete()
  ->where("name = :name")
  ->bind(['name' => 'John'])
  ->orderby("age DESC")
  ->limit(1)
  ->execute();

?>


Устанавливает критерии сортировки удаления

  • « TableDelete::limit
  • TableDelete::where »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Устанавливает критерии сортировки удаления

TableDelete::orderby

(Информация о версии неизвестна, возможно, только в Git)

TableDelete::orderby — Устанавливает критерии сортировки удаления

Описание

public mysql_xdevapi\TableDelete::orderby ( string $orderby_expr ) : mysql_xdevapi\TableDelete

Устанавливает параметры порядка для набора результатов.

Список параметров

orderby_expr

Определение сортировки.

Возвращаемые значения

Объект TableDelete.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableDelete::orderBy()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->delete()
  ->where("age = :age")
  ->bind(['age' => 42])
  ->orderby("name DESC")
  ->limit(1)
  ->execute();

?>


Устанавливает условие поиска для удаления

  • « TableDelete::orderby
  • mysql_xdevapi\TableInsert »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Устанавливает условие поиска для удаления

TableDelete::where

(Информация о версии неизвестна, возможно, только в Git)

TableDelete::where — Устанавливает условие поиска для удаления

Описание

public mysql_xdevapi\TableDelete::where ( string $where_expr ) : mysql_xdevapi\TableDelete

Устанавливает условие поиска для фильтрации.

Список параметров

where_expr

Определяет условие поиска для фильтрации документов или записей.

Возвращаемые значения

Объект TableDelete.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableDelete::where()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->delete()
  ->where("id = :id")
  ->bind(['id' => 42])
  ->limit(1)
  ->execute();

?>


Класс TableInsert

(PECL mysql-xdevapi >= 8.0.11)

Введение

Оператор для операций вставки в таблице.

Обзор классов

mysql_xdevapi\TableInsert implements mysql_xdevapi\Executable {
/* Методы */
public execute ( void ) : mysql_xdevapi\Result
public values ( array $row_values ) : mysql_xdevapi\TableInsert
}

Содержание

  • TableInsert::__construct — Конструктор класса TableInsert
  • TableInsert::execute — Выполняет запрос вставки
  • TableInsert::values — Добавляет значения вставки строки


Конструктор класса TableInsert

  • « mysql_xdevapi\TableInsert
  • TableInsert::execute »
  • PHP Manual
  • mysql_xdevapi\TableInsert
  • Конструктор класса TableInsert

TableInsert::__construct

(Информация о версии неизвестна, возможно, только в Git)

TableInsert::__construct — Конструктор класса TableInsert

Описание

private mysql_xdevapi\TableInsert::__construct ( void )

Инициируется с помощью метода insert().

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableInsert::__construct()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table
  ->insert("name", "age")
  ->values(["Suzanne", 31],["Julie", 43])
  ->execute();
?>


Выполняет запрос вставки

  • « TableInsert::__construct
  • TableInsert::values »
  • PHP Manual
  • mysql_xdevapi\TableInsert
  • Выполняет запрос вставки

TableInsert::execute

(Информация о версии неизвестна, возможно, только в Git)

TableInsert::execute — Выполняет запрос вставки

Описание

public mysql_xdevapi\TableInsert::execute ( void ) : mysql_xdevapi\Result

Выполняет утверждение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Result.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableInsert::execute()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table
  ->insert("name", "age")
  ->values(["Suzanne", 31],["Julie", 43])
  ->execute();
?>


Добавляет значения вставки строки

  • « TableInsert::execute
  • mysql_xdevapi\TableSelect »
  • PHP Manual
  • mysql_xdevapi\TableInsert
  • Добавляет значения вставки строки

TableInsert::values

(Информация о версии неизвестна, возможно, только в Git)

TableInsert::values — Добавляет значения вставки строки

Описание

public mysql_xdevapi\TableInsert::values ( array $row_values ) : mysql_xdevapi\TableInsert

Устанавливает значения для вставки.

Список параметров

row_values

Значения (массив) столбцов для вставки.

Возвращаемые значения

Объект TableInsert.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableInsert::values()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table
  ->insert("name", "age")
  ->values(["Suzanne", 31],["Julie", 43])
  ->execute();
?>


Класс TableSelect

(PECL mysql-xdevapi >= 8.0.11)

Введение

Оператор для операций поиска записи в таблице.

Обзор классов

mysql_xdevapi\TableSelect implements mysql_xdevapi\Executable {
/* Методы */
public bind ( array $placeholder_values ) : mysql_xdevapi\TableSelect
public execute ( void ) : mysql_xdevapi\RowResult
public groupBy ( mixed $sort_expr ) : mysql_xdevapi\TableSelect
public having ( string $sort_expr ) : mysql_xdevapi\TableSelect
public limit ( integer $rows ) : mysql_xdevapi\TableSelect
public lockExclusive ([ integer $lock_waiting_option ] ) : mysql_xdevapi\TableSelect
public lockShared ([ integer $lock_waiting_option ] ) : mysql_xdevapi\TableSelect
public offset ( integer $position ) : mysql_xdevapi\TableSelect
public orderby ( mixed $sort_expr [, mixed $... ] ) : mysql_xdevapi\TableSelect
public where ( string $where_expr ) : mysql_xdevapi\TableSelect
}

Содержание

  • TableSelect::bind — Привязывает параметры запроса выборки
  • TableSelect::__construct — Конструктор класса TableSelect
  • TableSelect::execute — Выполняет оператор выборки
  • TableSelect::groupBy — Устанавливает критерии группировки выборки
  • TableSelect::having — Устанавливает выбор с условием
  • TableSelect::limit — Ограничивает выбранные строки
  • TableSelect::lockExclusive — Выполняет EXCLUSIVE LOCK
  • TableSelect::lockShared — Выполняет SHARED LOCK
  • TableSelect::offset — Устанавливает предел смещения
  • TableSelect::orderby — Устанавливает критерии сортировки выборки
  • TableSelect::where — Устанавливает условие поиска выборки


Привязывает параметры запроса выборки

  • « mysql_xdevapi\TableSelect
  • TableSelect::__construct »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Привязывает параметры запроса выборки

TableSelect::bind

(Информация о версии неизвестна, возможно, только в Git)

TableSelect::bind — Привязывает параметры запроса выборки

Описание

public mysql_xdevapi\TableSelect::bind ( array $placeholder_values ) : mysql_xdevapi\TableSelect

Привязывает значение к определенному заполнителю.

Список параметров

placeholder_values

Название заполнителя и значение для привязки.

Возвращаемые значения

Объект TableSelect.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableSelect::bind()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('name','age')
  ->where('name like :name and age > :age')
  ->bind(['name' => 'John', 'age' => 42])
  ->execute();

$row = $result->fetchAll();
print_r($row);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


Конструктор класса TableSelect

  • « TableSelect::bind
  • TableSelect::execute »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Конструктор класса TableSelect

TableSelect::__construct

(Информация о версии неизвестна, возможно, только в Git)

TableSelect::__construct — Конструктор класса TableSelect

Описание

private mysql_xdevapi\TableSelect::__construct ( void )

Объект, возвращаемый методом select(); Используйте execute() для выполнения запроса.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableSelect::__construct()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('name','age')
  ->where('name like :name and age > :age')
  ->bind(['name' => 'John', 'age' => 42])
  ->orderBy('age desc')
  ->execute();

$row = $result->fetchAll();
print_r($row);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


Выполняет оператор выборки

  • « TableSelect::__construct
  • TableSelect::groupBy »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Выполняет оператор выборки

TableSelect::execute

(Информация о версии неизвестна, возможно, только в Git)

TableSelect::execute — Выполняет оператор выборки

Описание

public mysql_xdevapi\TableSelect::execute ( void ) : mysql_xdevapi\RowResult

Выполняет утверждение выборки, связывая его с методом execute().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект RowResult.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableSelect::execute()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('name','age')
  ->where('name like :name and age > :age')
  ->bind(['name' => 'John', 'age' => 42])
  ->orderBy('age desc')
  ->execute();

$row = $result->fetchAll();
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


Устанавливает критерии группировки выборки

  • « TableSelect::execute
  • TableSelect::having »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Устанавливает критерии группировки выборки

TableSelect::groupBy

(Информация о версии неизвестна, возможно, только в Git)

TableSelect::groupBy — Устанавливает критерии группировки выборки

Описание

public mysql_xdevapi\TableSelect::groupBy ( mixed $sort_expr ) : mysql_xdevapi\TableSelect

Устанавливает критерии группировки для набора результатов.

Список параметров

sort_expr

Критерии группировки.

Возвращаемые значения

Объект TableSelect.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableSelect::groupBy()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 42)")->execute();
$session->sql("INSERT INTO addressbook.names values ('Suki', 31)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('count(*) as count', 'age')
  ->groupBy('age')->orderBy('age asc')
  ->execute();

$row = $result->fetchAll();
print_r($row);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [count] => 1
            [age] => 31
        )
    [1] => Array
        (
            [count] => 2
            [age] => 42
        )
)


Устанавливает выбор с условием

  • « TableSelect::groupBy
  • TableSelect::limit »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Устанавливает выбор с условием

TableSelect::having

(Информация о версии неизвестна, возможно, только в Git)

TableSelect::having — Устанавливает выбор с условием

Описание

public mysql_xdevapi\TableSelect::having ( string $sort_expr ) : mysql_xdevapi\TableSelect

Устанавливает условие для записей для рассмотрения в операциях агрегатной функции.

Список параметров

sort_expr

Условие для агрегатных функций, используемых в критериях группировки.

Возвращаемые значения

Объект TableSelect.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableSelect::having()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 42)")->execute();
$session->sql("INSERT INTO addressbook.names values ('Suki', 31)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('count(*) as count', 'age')
  ->groupBy('age')->orderBy('age asc')
  ->having('count > 1')
  ->execute();

$row = $result->fetchAll();
print_r($row);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [count] => 2
            [age] => 42
        )
)


Ограничивает выбранные строки

  • « TableSelect::having
  • TableSelect::lockExclusive »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Ограничивает выбранные строки

TableSelect::limit

(Информация о версии неизвестна, возможно, только в Git)

TableSelect::limit — Ограничивает выбранные строки

Описание

public mysql_xdevapi\TableSelect::limit ( integer $rows ) : mysql_xdevapi\TableSelect

Устанавливает максимальное количество записей или документов для возврата.

Список параметров

rows

Максимальное количество записей или документов.

Возвращаемые значения

Объект TableSelect.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableSelect::limit()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('name', 'age')
  ->limit(1)
  ->execute();

$row = $result->fetchAll();
print_r($row);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


Выполняет EXCLUSIVE LOCK

  • « TableSelect::limit
  • TableSelect::lockShared »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Выполняет EXCLUSIVE LOCK

TableSelect::lockExclusive

(Информация о версии неизвестна, возможно, только в Git)

TableSelect::lockExclusive — Выполняет EXCLUSIVE LOCK

Описание

public mysql_xdevapi\TableSelect::lockExclusive ([ integer $lock_waiting_option ] ) : mysql_xdevapi\TableSelect

Выполняет операцию чтения с EXCLUSIVE LOCK. Только один замок может быть активным одновременно.

Список параметров

lock_waiting_option

Необязательный параметр ожидания, который по умолчанию равен MYSQLX_LOCK_DEFAULT. Допустимые значения:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

Возвращаемые значения

Объект TableSelect.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableSelect::lockExclusive()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$session->startTransaction();

$result = $table->select('name', 'age')
  ->lockExclusive(MYSQLX_LOCK_NOWAIT)
  ->execute();

$session->commit();

$row = $result->fetchAll();
print_r($row);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 42
        )
)


Выполняет SHARED LOCK

  • « TableSelect::lockExclusive
  • TableSelect::offset »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Выполняет SHARED LOCK

TableSelect::lockShared

(Информация о версии неизвестна, возможно, только в Git)

TableSelect::lockShared — Выполняет SHARED LOCK

Описание

public mysql_xdevapi\TableSelect::lockShared ([ integer $lock_waiting_option ] ) : mysql_xdevapi\TableSelect

Выполняет операцию чтения с SHARED LOCK. Только один замок может быть активным одновременно.

Список параметров

lock_waiting_option

Необязательный параметр ожидания, который по умолчанию равен MYSQLX_LOCK_DEFAULT. Допустимые значения:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

Возвращаемые значения

Объект TableSelect.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableSelect::lockShared()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$session->startTransaction();

$result = $table->select('name', 'age')
  ->lockShared(MYSQLX_LOCK_NOWAIT)
  ->execute();

$session->commit();

$row = $result->fetchAll();
print_r($row);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 42
        )
)


Устанавливает предел смещения

  • « TableSelect::lockShared
  • TableSelect::orderby »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Устанавливает предел смещения

TableSelect::offset

(Информация о версии неизвестна, возможно, только в Git)

TableSelect::offset — Устанавливает предел смещения

Описание

public mysql_xdevapi\TableSelect::offset ( integer $position ) : mysql_xdevapi\TableSelect

Пропускает указанное количество строк в результате.

Список параметров

position

Предел смещения.

Возвращаемые значения

Объект TableSelect.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableSelect::offset()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 42)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('name', 'age')
  ->limit(1)
  ->offset(1)
  ->execute();

$row = $result->fetchAll();
print_r($row);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [name] => Sam
            [age] => 42
        )
)


Устанавливает критерии сортировки выборки

  • « TableSelect::offset
  • TableSelect::where »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Устанавливает критерии сортировки выборки

TableSelect::orderby

(Информация о версии неизвестна, возможно, только в Git)

TableSelect::orderby — Устанавливает критерии сортировки выборки

Описание

public mysql_xdevapi\TableSelect::orderby ( mixed $sort_expr [, mixed $... ] ) : mysql_xdevapi\TableSelect

Устанавливает порядок по критериям.

Список параметров

sort_expr

Выражения, которые определяют порядок по критериям. Может быть массивом с одним или несколькими выражениями или строкой.

...

Дополнительные параметры sort_expr.

Возвращаемые значения

Объект TableSelect.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableSelect::orderBy()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('name', 'age')
  ->orderBy('name desc')
  ->execute();

$row = $result->fetchAll();
print_r($row);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [name] => Sam
            [age] => 42
        )
    [1] => Array
        (
            [name] => John
            [age] => 42
        )
)


Устанавливает условие поиска выборки

  • « TableSelect::orderby
  • mysql_xdevapi\TableUpdate »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Устанавливает условие поиска выборки

TableSelect::where

(Информация о версии неизвестна, возможно, только в Git)

TableSelect::where — Устанавливает условие поиска выборки

Описание

public mysql_xdevapi\TableSelect::where ( string $where_expr ) : mysql_xdevapi\TableSelect

Устанавливает условие поиска для фильтрации.

Список параметров

where_expr

Определяет условие поиска для фильтрации документов или записей.

Возвращаемые значения

Объект TableSelect.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableSelect::where()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('name','age')
  ->where('name like :name and age > :age')
  ->bind(['name' => 'John', 'age' => 42])
  ->execute();

$row = $result->fetchAll();
print_r($row);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


Класс TableUpdate

(PECL mysql-xdevapi >= 8.0.11)

Введение

Оператор для операций обновления записи в таблице.

Обзор классов

mysql_xdevapi\TableUpdate implements mysql_xdevapi\Executable {
/* Методы */
public bind ( array $placeholder_values ) : mysql_xdevapi\TableUpdate
public execute ( void ) : mysql_xdevapi\TableUpdate
public limit ( integer $rows ) : mysql_xdevapi\TableUpdate
public orderby ( mixed $orderby_expr [, mixed $... ] ) : mysql_xdevapi\TableUpdate
public set ( string $table_field , string $expression_or_literal ) : mysql_xdevapi\TableUpdate
public where ( string $where_expr ) : mysql_xdevapi\TableUpdate
}

Содержание

  • TableUpdate::bind — Привязывает параметры запроса на обновление
  • TableUpdate::__construct — Конструктор класса TableUpdate
  • TableUpdate::execute — Выполняет запрос на обновление
  • TableUpdate::limit — Ограничивает количество строк для обновления
  • TableUpdate::orderby — Устанавливает критерии сортировки
  • TableUpdate::set — Добавляет поле для обновления
  • TableUpdate::where — Устанавливает фильтр поиска


Привязывает параметры запроса на обновление

  • « mysql_xdevapi\TableUpdate
  • TableUpdate::__construct »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Привязывает параметры запроса на обновление

TableUpdate::bind

(Информация о версии неизвестна, возможно, только в Git)

TableUpdate::bind — Привязывает параметры запроса на обновление

Описание

public mysql_xdevapi\TableUpdate::bind ( array $placeholder_values ) : mysql_xdevapi\TableUpdate

Привязывает значение к определенному заполнителю.

Список параметров

placeholder_values

Имя заполнителя и значение для привязки, определенное, как массив JSON.

Возвращаемые значения

Объект TableUpdate.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableUpdate::bind()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->update()
  ->set('status', 'admin')
  ->where('name = :name and age > :age')
  ->bind(['name' => 'Bernie', 'age' => 2000])
  ->execute();

?>


Конструктор класса TableUpdate

  • « TableUpdate::bind
  • TableUpdate::execute »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Конструктор класса TableUpdate

TableUpdate::__construct

(Информация о версии неизвестна, возможно, только в Git)

TableUpdate::__construct — Конструктор класса TableUpdate

Описание

private mysql_xdevapi\TableUpdate::__construct ( void )

Инициируется с помощью метода update().

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableUpdate::__construct()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$res = $table->update()
  ->set('level', 3)
  ->where('age > 15 and age < 22')
  ->limit(4)
  ->orderby(['age asc','name desc'])
  ->execute();

?>


Выполняет запрос на обновление

  • « TableUpdate::__construct
  • TableUpdate::limit »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Выполняет запрос на обновление

TableUpdate::execute

(Информация о версии неизвестна, возможно, только в Git)

TableUpdate::execute — Выполняет запрос на обновление

Описание

public mysql_xdevapi\TableUpdate::execute ( void ) : mysql_xdevapi\TableUpdate

Выполняет утверждение обновления.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект TableUpdate.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableUpdate::execute()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$res = $table->update()
  ->set('level', 3)
  ->where('age > 15 and age < 22')
  ->limit(4)
  ->orderby(['age asc','name desc'])
  ->execute();

?>


Ограничивает количество строк для обновления

  • « TableUpdate::execute
  • TableUpdate::orderby »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Ограничивает количество строк для обновления

TableUpdate::limit

(Информация о версии неизвестна, возможно, только в Git)

TableUpdate::limit — Ограничивает количество строк для обновления

Описание

public mysql_xdevapi\TableUpdate::limit ( integer $rows ) : mysql_xdevapi\TableUpdate

Устанавливает максимальное количество записей или документов обновления.

Список параметров

rows

Максимальное количество записей или документов для обновления.

Возвращаемые значения

Объект TableUpdate.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableUpdate::limit()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$res = $table->update()
  ->set('level', 3)
  ->where('age > 15 and age < 22')
  ->limit(4)
  ->orderby(['age asc','name desc'])
  ->execute();

?>


Устанавливает критерии сортировки

  • « TableUpdate::limit
  • TableUpdate::set »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Устанавливает критерии сортировки

TableUpdate::orderby

(Информация о версии неизвестна, возможно, только в Git)

TableUpdate::orderby — Устанавливает критерии сортировки

Описание

public mysql_xdevapi\TableUpdate::orderby ( mixed $orderby_expr [, mixed $... ] ) : mysql_xdevapi\TableUpdate

Устанавливает критерии сортировки.

Список параметров

orderby_expr

Выражения, которые определяют порядок по критериям. Может быть массивом с одним или несколькими выражениями или строкой.

...

Дополнительные параметры sort_expr.

Возвращаемые значения

Объект TableUpdate.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableUpdate::orderby()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$res = $table->update()
  ->set('level', 3)
  ->where('age > 15 and age < 22')
  ->limit(4)
  ->orderby(['age asc','name desc'])
  ->execute();
?>


Добавляет поле для обновления

  • « TableUpdate::orderby
  • TableUpdate::where »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Добавляет поле для обновления

TableUpdate::set

(Информация о версии неизвестна, возможно, только в Git)

TableUpdate::set — Добавляет поле для обновления

Описание

public mysql_xdevapi\TableUpdate::set ( string $table_field , string $expression_or_literal ) : mysql_xdevapi\TableUpdate

Обновляет значение столбца для записей в таблице.

Список параметров

table_field

Имя столбца, подлежащего обновлению.

expression_or_literal

Значение, которое будет установлено в указанном столбце.

Возвращаемые значения

Объект TableUpdate.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableUpdate::set()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$res = $table->update()
  ->set('level', 3)
  ->where('age > 15 and age < 22')
  ->limit(4)
  ->orderby(['age asc','name desc'])
  ->execute();

?>


Устанавливает фильтр поиска

  • « TableUpdate::set
  • mysql_xdevapi\Warning »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Устанавливает фильтр поиска

TableUpdate::where

(Информация о версии неизвестна, возможно, только в Git)

TableUpdate::where — Устанавливает фильтр поиска

Описание

public mysql_xdevapi\TableUpdate::where ( string $where_expr ) : mysql_xdevapi\TableUpdate

Устанавливает условие поиска для фильтрации.

Список параметров

where_expr

Условие поиска для фильтрации документов или записей.

Возвращаемые значения

Объект TableUpdate.

Примеры

Пример #1 Пример использования mysql_xdevapi\TableUpdate::where()

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$res = $table->update()
  ->set('level', 3)
  ->where('age > 15 and age < 22')
  ->limit(4)
  ->orderby(['age asc','name desc'])
  ->execute();

?>


Класс Warning

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

mysql_xdevapi\Warning {
/* Свойства */
public $message ;
public $level ;
public $code ;
/* Конструктор */
private __construct ( void )
}

Свойства

message

level

code

Содержание

  • Warning::__construct — Конструктор класса Warning


Конструктор класса Warning

  • « mysql_xdevapi\Warning
  • MySQL (Original) »
  • PHP Manual
  • mysql_xdevapi\Warning
  • Конструктор класса Warning

Warning::__construct

(Информация о версии неизвестна, возможно, только в Git)

Warning::__construct — Конструктор класса Warning

Описание

private mysql_xdevapi\Warning::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\Warning::__construct()

<?php

/* ... */

?>


Оригинальное API MySQL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Список изменений
  • Предопределенные константы
  • Примеры
    • Обзорный пример расширения MySQL
  • MySQL — Функции СУБД MySQL
    • mysql_affected_rows — Возвращает число затронутых прошлой операцией рядов
    • mysql_client_encoding — Возвращает кодировку соединения
    • mysql_close — Закрывает соединение с сервером MySQL
    • mysql_connect — Открывает соединение с сервером MySQL
    • mysql_create_db — Создает базу данных MySQL
    • mysql_data_seek — Перемещает внутренний указатель в результате запроса
    • mysql_db_name — Возвращает название базы данных из вызова к mysql_list_dbs
    • mysql_db_query — Переключается на указанную базу данных и посылает запрос
    • mysql_drop_db — Уничтожает базу данных MySQL
    • mysql_errno — Возвращает численный код ошибки выполнения последней операции с MySQL
    • mysql_error — Возвращает текст ошибки последней операции с MySQL
    • mysql_escape_string — Экранирует строку для использования в 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 — Возвращает идентификатор, сгенерированный при последнем 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_set_charset — Устанавливает кодировку клиента
    • mysql_stat — Возвращает текущий статус сервера
    • mysql_tablename — Возвращает имя таблицы, содержащей указанное поле
    • mysql_thread_id — Возвращает идентификатор текущего потока
    • mysql_unbuffered_query — Посылает запрос MySQL без авто-обработки результата и его буферизации


Введение

Это расширение устарело с версии PHP 5.5.0, и удалено в версии 7.0.0. Вместо него используйте mysqli или PDO_MySQL. Ознакомьтесь также с обзором MySQL API для более детальной информации по выбору MySQL API.

Эти функции позволяют вам работать с MySQL. За информацией о MySQL обращайтесь к » http://www.mysql.com/.

Документация MySQL находится по адресу » http://dev.mysql.com/doc/.


Требования

Для использования этих функций PHP должен быть собран с поддержкой MySQL.

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:


Установка

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

Для компиляции просто используйте опцию конфигурации --with-mysql[=DIR] , где необязательный параметр [DIR] указывает на директорию с установленным MySQL.

Несмотря на то, что это расширение MySQL совместимо с MySQL 4.1.0 и выше, оно не поддерживает дополнительную функциональность, предоставляемую этими версиями. Для получения такой возможности воспользуйтесь расширением MySQLi.

Если вы хотите установить расширение mysql совместно с mysqli, то для избежания каких-либо конфликтов необходимо использовать одну и ту же клиентскую библиотеку.

Установка на Linux-системы

Примечание: [DIR] является путем к файлам клиентской библиотеки MySQL (заголовкам и библиотекам), которые можно скачать с » MySQL.

Таблица компиляции ext/mysql по версиям PHP
PHP Версия | По умолчанию | Опции настройки: mysqlnd | Опции настройки: libmysqlclient | Список изменений
4.x.x | libmysqlclient | Недоступно | --without-mysql для отключения | MySQL включен по умолчанию, клиентские библиотеки MySQL входят в поставку PHP
5.0.x, 5.1.x, 5.2.x | libmysqlclient | Недоступно | --with-mysql=[DIR] | MySQL больше не включен по умолчанию, и клиентские библиотеки MySQL больше не входят в поставку PHP
5.3.x | libmysqlclient | --with-mysql=mysqlnd | --with-mysql=[DIR] | Стал доступен mysqlnd
5.4.x | mysqlnd | --with-mysql | --with-mysql=[DIR] | mysqlnd выбирается по умолчанию

Установка на Windows-системы

PHP 5.0.x, 5.1.x, 5.2.x

Поддержка MySQL больше не включена по умолчанию, поэтому для ее включения необходимо подключить php_mysql.dll DLL внутри php.ini. Кроме этого, PHP понадобится доступ к клиентской библиотеке MySQL. Файл libmysql.dll поставляется в Windows дистрибутиве PHP, и для корректного общения PHP с MySQL, данный файл должен быть доступен в системном пути Windows PATH. О том как это сделать, смотрите FAQ "Как добавить мою PHP директорию в системный PATH на Windows?". Хотя копирование libmysql.dll в системную папку Windows также сработает (потому что системная папка находится по умолчанию в PATH), это не рекомендуется.

Как и при включении любого другого расширения PHP (в том числе и php_mysql.dll), директива extension_dir должна указывать на директорию, содержащую PHP-расширения. Смотрите также Инструкции по ручной установке в Windows . Пример значения extension_dir для PHP 5: c:\php\ext

Замечание:

Если при старте веб-сервера происходит подобная ошибка: "Unable to load dynamic library './php_mysql.dll'", ("Невозможно подгрузить динамическую библиотеку './php_mysql.dll'"), то это случается из-за того, что на вашей системе не может быть найдена php_mysql.dll и/или libmysql.dll.

PHP 5.3.0+

MySQL Native Driver включен по умолчанию. В том числе php_mysql.dll, но без требования и использования libmysql.dll.

Замечания по установке MySQL

Внимание

Сбои в работе PHP могут иметь место при загрузке совместно этого расширения и расширения recode. За дополнительной информацией обращайтесь к разделу о расширении для recode.

Замечание:

Если вам требуется поддержка кодировок отличных от latin, (установленной по умолчанию), вам придётся установить внешнюю библиотеку libmysqlclient, скомпилированную с их поддержкой.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Директивы конфигурации MySQL
Имя | По умолчанию | Место изменения | Список изменений
mysql.allow_local_infile | "1" | PHP_INI_SYSTEM |
mysql.allow_persistent | "1" | PHP_INI_SYSTEM |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM |
mysql.max_links | "-1" | PHP_INI_SYSTEM |
mysql.trace_mode | "0" | PHP_INI_ALL |
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 | "60" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

mysql.allow_local_infile integer

Разрешает доступ к локальным файлам, с точки зрения PHP, с помощью инструкций LOAD DATA

mysql.allow_persistent boolean

Позволять ли постоянные соединения с MySQL.

mysql.max_persistent integer

Максимальное количество постоянных соединений c MySQL на один процесс.

mysql.max_links integer

Максимальное количество соединений с MySQL на один процесс, включая постоянные соединения.

mysql.trace_mode boolean

Режим трассировки. Если включена опция mysql.trace_mode, будут отображаться предупреждения при сканировании таблиц/индексов, непустых результирующих наборов (result sets), а также ошибки SQL. (Добавлено в версии PHP 4.3.0)

mysql.default_port string

TCP-порт, используемый для соединения с базой данных по умолчанию (если не был указан другой). Если эта директива опущена, порт будет взят из переменной среды MYSQL_TCP_PORT, значения mysql-tcp в файле /etc/services или константы MYSQL_PORT, указанной при компиляции, в указанном порядке. Win32 использует только константу MYSQL_PORT.

mysql.default_socket string

Имя сокета по умолчанию, используемого для соединения с локальной базой данных, если не был указан другой.

mysql.default_host string

Адрес сервера по умолчанию, используемый для соединения с сервером базы данных, если не указан другой. Не работает в SQL safe mode.

mysql.default_user string

Имя пользователя по умолчанию, используемое для соединения с сервером базы данных, если не указано другое. Не работает в SQL safe mode.

mysql.default_password string

Пароль по умолчанию, используемый для соединения с сервером базы данных, если не указан другой. Не работает в SQL safe mode.

mysql.connect_timeout integer

Время ожидания ответа до разрыва соединения в секундах. Linux также использует это значение при ожидании первого ответа от сервера.


Типы ресурсов

Есть два типа ресурсов, используемых в модуле MySQL. Первый является идентификатором соединения для подключения к базе данных, а второй ресурс содержит результат выполнения запроса.


Список изменений

Следующие изменения были произведены с классами/функциями/методами данного расширения.

Общий список изменений для расширения ext/mysql

Этот список изменений ссылается на расширение ext/mysql.

Глобальные изменения в ext/mysql

Следующий список представляет собой подборку изменений расширения ext/mysql.

Версия | Описание
7.0.0 | Это расширение удалено из PHP PHP. Подробности тут Выбор API.
5.5.0 | Это расширение является устаревшим. Подключение к БД MySQL с использованием функции mysql_connect(), mysql_pconnect() или неявное подключение с использование любых функций mysql_* будет генерировать ошибку E_DEPRECATED.
5.5.0 | Все устаревшие функции и алиасы будут вызывать ошибки E_DEPRECATED. Эти функции: mysql(), mysql_fieldname(), mysql_fieldtable(), mysql_fieldlen(), mysql_fieldtype(), mysql_fieldflags(), mysql_selectdb(), mysql_createdb(), mysql_dropdb(), mysql_freeresult(), mysql_numfields(), mysql_numrows(), mysql_listdbs(), mysql_listtables(), mysql_listfields(), mysql_db_name(), mysql_dbname(), mysql_tablename(), and mysql_table_name().

Изменения в существующих фугкциях

Нижеследующий список является компиляцией всех изменений в функциях ext/mysql.

Version | Function | Description
5.5.0 | mysql_connect | Функция вызывает ошибку E_DEPRECATED.
 | mysql_db_name | Функция mysql_list_dbs устарела, и вызывает ошибку уровня E_DEPRECATED.
 | mysql_pconnect | Эта функция теперь вызывает ошибку E_DEPRECATED.
 | mysql_tablename | Функция mysql_tablename устарела, и вызывает ошибку уровня E_DEPRECATED.
5.3.0 | mysql_db_query | Функция теперь выдает предупреждение уровня E_DEPRECATED.
 | mysql_escape_string | Данная функция теперь выдает предупреждение уровня E_DEPRECATED.
4.3.7 | mysql_list_tables | Функция помечена устаревшей.
4.3.0 | mysql_escape_string | Функция помечена как устаревшая, ее не следует больше использовать. Используйте вместо нее mysql_real_escape_string.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Можно указать дополнительные клиентские флаги для функций mysql_connect() и mysql_pconnect() functions. Предопределены следующие константы:

Клиентские константы MySQL
Константа | Описание
MYSQL_CLIENT_COMPRESS | Использовать протокол сжатия
MYSQL_CLIENT_IGNORE_SPACE | Разрешает использовать пробелы после имён функций
MYSQL_CLIENT_INTERACTIVE | Позволяет interactive_timeout секунд (вместо wait_timeout ) бездействия до закрытия соединения.
MYSQL_CLIENT_SSL | Использовать SSL-шифрование. Этот флаг доступен только начиная с версии 4.x клиентской библиотеки MySQL. Версия 3.23.x поставляется как в PHP 4, так и с бинарным дистрибутивом Windows в PHP 5.

Функция mysql_fetch_array() использует константы для определения типа возвращаемого массива. Предопределены следующие константы:

Константы выборки MySQL
Константа | Описание
MYSQL_ASSOC | Результат возвращается в ассоциативном массиве с именами колонок в качестве индексов.
MYSQL_BOTH | Результат возвращается в массиве, содержащем как численные индексы, так и имена колонок в качестве индексов.
MYSQL_NUM | Результат возвращается в массиве, содержащем численные индексы. Индексы начинаются с 0 (0 содержит первую колонку).


  • « Предопределенные константы
  • Обзорный пример расширения MySQL »
  • PHP Manual
  • MySQL (Original)
  • Примеры

Примеры

Содержание

  • Обзорный пример расширения MySQL


Обзорный пример расширения MySQL

Этот простой пример показывает, как соединиться с базой данных, выполнить запрос, распечатать результат и отсоединиться.

Пример #1 Пример работы с MySQL

<?php
// Соединяемся, выбираем базу данных
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    or die('Не удалось соединиться: ' . mysql_error());
echo 'Соединение успешно установлено';
mysql_select_db('my_database') or die('Не удалось выбрать базу данных');

// Выполняем SQL-запрос
$query = 'SELECT * FROM my_table';
$result = mysql_query($query) or die('Запрос не удался: ' . mysql_error());

// Выводим результаты в html
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_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";

// Освобождаем память от результата
mysql_free_result($result);

// Закрываем соединение
mysql_close($link);
?>


Функции СУБД MySQL

Примечания

Замечание:

Большинство функций MySQL принимают link_identifier как последний, опциональный параметр. Если он не указан, то используется последнее открытое соединение. Если соединений нет, то модуль пытается открыть соединение используя параметры, указанные в php.ini. В случае неудачи, функции возвращают FALSE. FALSE.

Содержание

  • mysql_affected_rows — Возвращает число затронутых прошлой операцией рядов
  • mysql_client_encoding — Возвращает кодировку соединения
  • mysql_close — Закрывает соединение с сервером MySQL
  • mysql_connect — Открывает соединение с сервером MySQL
  • mysql_create_db — Создает базу данных MySQL
  • mysql_data_seek — Перемещает внутренний указатель в результате запроса
  • mysql_db_name — Возвращает название базы данных из вызова к mysql_list_dbs
  • mysql_db_query — Переключается на указанную базу данных и посылает запрос
  • mysql_drop_db — Уничтожает базу данных MySQL
  • mysql_errno — Возвращает численный код ошибки выполнения последней операции с MySQL
  • mysql_error — Возвращает текст ошибки последней операции с MySQL
  • mysql_escape_string — Экранирует строку для использования в 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 — Возвращает идентификатор, сгенерированный при последнем 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_set_charset — Устанавливает кодировку клиента
  • mysql_stat — Возвращает текущий статус сервера
  • mysql_tablename — Возвращает имя таблицы, содержащей указанное поле
  • mysql_thread_id — Возвращает идентификатор текущего потока
  • mysql_unbuffered_query — Посылает запрос MySQL без авто-обработки результата и его буферизации


Возвращает число затронутых прошлой операцией рядов

  • « MySQL
  • mysql_client_encoding »
  • PHP Manual
  • MySQL
  • Возвращает число затронутых прошлой операцией рядов

mysql_affected_rows

(PHP 4, PHP 5)

mysql_affected_rows — Возвращает число затронутых прошлой операцией рядов

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_affected_rows()
  • PDOStatement::rowCount()

Описание

mysql_affected_rows ([ resource $link_identifier = NULL ] ) : int

Возвращает количество рядов, затронутых последним INSERT, UPDATE, REPLACE или DELETE запросом, связанным с дескриптором link_identifier.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает количество измененных записей в случае успеха, и -1 в случае если последний запрос не удался.

Если последний запрос был DELETE без указания WHERE и, соответственно, таблица была очищена, функция вернёт ноль во всех версиях MySQL до 4.1.2.

При использовании UPDATE, MySQL не обновит колонки, уже содержащие новое значение. Вследствие этого, функция mysql_affected_rows() не всегда возвращает количество рядов, подошедших под условия, только количество рядов, обновлённых запросом.

Запрос REPLACE сначала удаляет запись с указанным первичным ключом, а потом вставляет новую. Данная функция возвращает количество удаленных записей вместе с количеством вставленных.

В случае использования запросов типа "INSERT ... ON DUPLICATE KEY UPDATE", возвращаемое значение будет равно 1 в случае, если была произведена вставка, или 2 при обновлении существующего ряда.

Примеры

Пример #1 Пример использования mysql_affected_rows()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
mysql_select_db('mydb');

/* здесь функция вернёт корректное число удалённых записей */
mysql_query('DELETE FROM mytable WHERE id < 10');
printf("Удалено записей: %d\n", mysql_affected_rows());

/* если WHERE всегда возвращает false, то функция возвращает 0 */
mysql_query('DELETE FROM mytable WHERE 0');
printf("Удалено записей: %d\n", mysql_affected_rows());
?>

Результатом выполнения данного примера будет что-то подобное:

Удалено записей: 10
Удалено записей: 0

Пример #2 Пример использования mysql_affected_rows() с транзакциями

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
mysql_select_db('mydb');

/* Обновляем ряды */
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
printf ("Обновлено записей: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>

Результатом выполнения данного примера будет что-то подобное:

Обновлено записей: 10

Примечания

Замечание: Транзакции

При использовании транзакций mysql_affected_rows() нужно вызывать после запросов INSERT, UPDATE, DELETE, но не после COMMIT.

Замечание: Запросы SELECT

Чтобы получить количество рядов, возвращённых SELECT-запросом, используйте функцию mysql_num_rows().

Замечание: Каскадные внешние ключи

mysql_affected_rows() не подсчитывает ряды, неявно измененные ограничениями ON DELETE CASCADE и/или ON UPDATE CASCADE.

Смотрите также

  • mysql_num_rows() - Возвращает количество рядов результата запроса
  • mysql_info() - Возвращает информацию о последнем запросе


Возвращает кодировку соединения

  • « mysql_affected_rows
  • mysql_close »
  • PHP Manual
  • MySQL
  • Возвращает кодировку соединения

mysql_client_encoding

(PHP 4 >= 4.3.0, PHP 5)

mysql_client_encoding — Возвращает кодировку соединения

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_character_set_name()

Описание

mysql_client_encoding ([ resource $link_identifier = NULL ] ) : string

Возвращает значение переменной MySQL character_set.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает используемую по умолчанию кодировку для данного соединения.

Примеры

Пример #1 Пример использования mysql_client_encoding()

<?php
$link    = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$charset = mysql_client_encoding($link);

echo "Текущая кодировка: $charset\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Текущая кодировка: latin1

Смотрите также

  • mysql_set_charset() - Устанавливает кодировку клиента
  • mysql_real_escape_string() - Экранирует специальные символы в строках для использования в выражениях SQL


Закрывает соединение с сервером MySQL

  • « mysql_client_encoding
  • mysql_connect »
  • PHP Manual
  • MySQL
  • Закрывает соединение с сервером MySQL

mysql_close

(PHP 4, PHP 5)

mysql_close — Закрывает соединение с сервером MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_close()
  • PDO: Присвоить значение NULL объекту PDO

Описание

mysql_close ([ resource $link_identifier = NULL ] ) : bool

mysql_close() закрывает непостоянное соединение с базой данных MySQL, на которое указывает переданный дескриптор. Если параметр link_identifier не указан, закрывается последнее открытое (текущее) соединение.

Открытые непостоянные соединения MySQL и результирующие наборы автоматически удаляются сразу по окончании работы PHP скрипта. Следовательно, закрывать соединения и очищать результирующие наборы не обязательно, но рекомендуется, так как это сразу же освободит ресурсы базы данных и память, занимаемую результатами выборки, что может положительно сказаться на производительности. Больше информации можно почерпнуть в разделе Освобождение ресурсов

Список параметров

link_identifier

Соединение MySQL. Если не указано, то используется последнее соединение, открытое mysql_connect(). Если соединение не найдено или не установлено, то будет сгенерирована ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_close()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
echo 'Успешно соединились';
mysql_close($link);
?>

Результат выполнения данного примера:

Успешно соединились

Примечания

Замечание:

mysql_close() не закрывает постоянные соединения, созданные функцией mysql_pconnect(). Для дополнительной информации см. руководство по постоянным соединениям.

Смотрите также

  • mysql_connect() - Открывает соединение с сервером MySQL
  • mysql_free_result() - Освобождает память от результата запроса


Открывает соединение с сервером MySQL

  • « mysql_close
  • mysql_create_db »
  • PHP Manual
  • MySQL
  • Открывает соединение с сервером MySQL

mysql_connect

(PHP 4, PHP 5)

mysql_connect — Открывает соединение с сервером MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_connect()
  • PDO::__construct()

Описание

mysql_connect ([ string $server = ini_get("mysql.default_host") [, string $username = ini_get("mysql.default_user") [, string $password = ini_get("mysql.default_password") [, bool $new_link = FALSE [, int $client_flags = 0 ]]]]] ) : resource

Открывает новое соединение с сервером MySQL или использует уже существующее.

Список параметров

server

Сервер MySQL. Может также включать номер порта, например, "hostname:port" или путь к локальному сокету, например, ":/path/to/socket" для локального сервера.

Если PHP-директива mysql.default_host не определена (по умолчанию), то значением по умолчанию является 'localhost:3306'. В SQL safe mode этот параметр игнорируется и всегда используется значение 'localhost:3306'.

username

Имя пользователя. Значение по умолчанию определяется директивой mysql.default_user. В SQL safe mode этот параметр будет проигнорирован и будет использован пользователь, владеющий процессом сервера.

password

Пароль. Значение по умолчанию определяется директивой mysql.default_password. В SQL safe mode этот параметр будет проигнорирован и в качестве пароля будет использована пустая строка.

new_link

Если второй вызов функции mysql_connect() произошёл с теми же аргументами, то новое соединение не будет установлено. Вместо этого функция вернёт ссылку на уже установленное соединение. Параметр new_link может заставить функцию mysql_connect() открыть ещё одно соединение, даже если соединение с аналогичными параметрами уже открыто. В SQL safe mode этот параметр игнорируется.

client_flags

Параметр client_flags должен быть комбинацией из следующих констант: 128 (включает обработку LOAD DATA LOCAL), MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE or MYSQL_CLIENT_INTERACTIVE. Подробнее читайте в разделе Клиентские константы MySQL. В SQL safe mode этот параметр игнорируется.

Возвращаемые значения

Возвращает дескриптор соединения с MySQL в случае успешного выполнения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.0 | Функция вызывает ошибку E_DEPRECATED.

Примеры

Пример #1 Пример использования mysql_connect()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
echo 'Успешно соединились';
mysql_close($link);
?>

Пример #2 Пример использования mysql_connect() с синтаксисом hostname:port

<?php
// соединяемся с example.com на порту 3307
$link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
echo 'Успешно соединились';
mysql_close($link);

// соединяемся с localhost на порту 3307
$link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
echo 'Успешно соединились';
mysql_close($link);
?>

Пример #3 Пример использования mysql_connect() с синтаксисом ":/path/to/socket"

<?php
// соединяемся к localhost по сокету, т.е. /tmp/mysql.sock

// вариант 1: не указываем localhost
$link = mysql_connect(':/tmp/mysql', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
echo 'Успешно соединились';
mysql_close($link);

// вариант 2: указываем localhost
$link = mysql_connect('localhost:/tmp/mysql.sock', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
echo 'Успешно соединились';
mysql_close($link);
?>

Примечания

Замечание:

При указании параметру server значения "localhost" или "localhost:port" клиентская библиотека MySQL будет пытаться соединиться с локальным сокетом. Если вы всё же хотите использовать TCP/IP, используйте адрес "127.0.0.1" вместо "localhost". Если клиентская библиотека пытается подключиться не к тому локальному сокету, это можно исправить через указание директивы в конфигурации PHP, после чего можно оставлять параметр server пустым.

Замечание:

Соединение с сервером будет закрыто при завершении исполнения скрипта, если только до этого оно не было закрыто с помощью функции mysql_close().

Замечание:

Ошибка "Can't create TCP/IP socket (10106)" (Невозможно создать сокет TCP/IP) обычно означает, что конфигурационная директива variables_order не содержит символ E. В Windows, если в окружение не будет скопирована переменная окружения SYSTEMROOT, то PHP будет испытывать проблемы при загрузке Winsock.

Смотрите также

  • mysql_pconnect() - Устанавливает постоянное соединение с сервером MySQL
  • mysql_close() - Закрывает соединение с сервером MySQL


Создает базу данных MySQL

  • « mysql_connect
  • mysql_data_seek »
  • PHP Manual
  • MySQL
  • Создает базу данных MySQL

mysql_create_db

(PHP 4, PHP 5)

mysql_create_db — Создает базу данных MySQL

Внимание

Данная функция объявлена устаревшей в PHP 4.3.0, и, вместе с расширением MySQL, удалена PHP 7.0.0. Вместо нее используйте активно развивающиеся расширения MySQLi или PDO_MySQL. Так же смотрите раздел MySQL: выбор API и это FAQ. Альтернативы для этой функции:

  • mysqli_query()
  • PDO::query()

Описание

mysql_create_db ( string $database_name [, resource $link_identifier = NULL ] ) : bool

mysql_create_db() пытается создать базу данных на сервере, с которым ассоциирован переданный дескриптор соединения.

Список параметров

database_name

Имя создаваемой базы данных.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример создания базы данных MySQL

Функция mysql_create_db() не рекомендуется к использованию. Предпочтительнее использовать mysql_query() с SQL-запросом создания базы данных CREATE DATABASE.

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}

$sql = 'CREATE DATABASE my_db';
if (mysql_query($sql, $link)) {
    echo "База my_db успешно создана\n";
} else {
    echo 'Ошибка при создании базы данных: ' . mysql_error() . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

База my_db успешно создана

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_createdb()

Замечание:

Данная функция не будет доступна, если расширение MySQL было скомпилировано клиентской библиотекой MySQL версии 4.x.

Смотрите также

  • mysql_query() - Посылает запрос MySQL
  • mysql_select_db() - Выбирает базу данных MySQL


Перемещает внутренний указатель в результате запроса

  • « mysql_create_db
  • mysql_db_name »
  • PHP Manual
  • MySQL
  • Перемещает внутренний указатель в результате запроса

mysql_data_seek

(PHP 4, PHP 5)

mysql_data_seek — Перемещает внутренний указатель в результате запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_data_seek()
  • PDO::FETCH_ORI_ABS

Описание

mysql_data_seek ( resource $result , int $row_number ) : bool

mysql_data_seek() перемещает внутренний указатель результата запроса, с которым связан переданный дескриптор, к ряду с указанным номером. Следующий вызов к функции получения данных MySQL, такой как mysql_fetch_assoc(), вернёт именно его.

Нумерация row_number начинается с 0. row_number должен быть значением в диапазоне от 0 до mysql_num_rows() - 1. Однако, если результат пуст (mysql_num_rows() == 0), то попытка сдвига указателя к нулевому ряду завершится неудачей - будет вызвана ошибка уровня E_WARNING и mysql_data_seek() вернет FALSE.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

row_number

Желаемый номер ряда в полученном дескрипторе результата.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_data_seek()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
$db_selected = mysql_select_db('sample_db');
if (!$db_selected) {
    die('Не удалось выбрать базу данных: ' . mysql_error());
}
$query = 'SELECT last_name, first_name FROM friends';
$result = mysql_query($query);
if (!$result) {
    die('Ошибка запроса: ' . mysql_error());
}
/* получение рядов в обратном порядке */
for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--) {
    if (!mysql_data_seek($result, $i)) {
        echo "Не удалось переместиться к ряду $i: " . mysql_error() . "\n";
        continue;
    }

    if (!($row = mysql_fetch_assoc($result))) {
        continue;
    }

    echo $row['last_name'] . ' ' . $row['first_name'] . "<br />\n";
}

mysql_free_result($result);
?>

Примечания

Замечание:

Функция mysql_data_seek() может быть использована
только с mysql_query(), но не с
mysql_unbuffered_query().

Смотрите также

  • mysql_query() - Посылает запрос MySQL
  • mysql_num_rows() - Возвращает количество рядов результата запроса
  • mysql_fetch_row() - Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_fetch_array() - Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
  • mysql_fetch_object() - Обрабатывает ряд результата запроса и возвращает объект


Возвращает название базы данных из вызова к mysql_list_dbs

  • « mysql_data_seek
  • mysql_db_query »
  • PHP Manual
  • MySQL
  • Возвращает название базы данных из вызова к mysql_list_dbs

mysql_db_name

(PHP 4, PHP 5)

mysql_db_name — Возвращает название базы данных из вызова к mysql_list_dbs()

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • Запрос: SELECT DATABASE()

Описание

mysql_db_name ( resource $result , int $row [, mixed $field = NULL ] ) : string

Возвращает название базы данных из вызова к mysql_list_dbs().

Список параметров

result

Дескриптор результата, полученный из вызова mysql_list_dbs().

row

Индекс в результате.

field

Имя поля.

Возвращаемые значения

Возвращает название базы данных в случае успеха, или FALSE в случае ошибки. В случае возврата FALSE используйте mysql_error() для определения природы ошибок.

Список изменений

Версия | Описание
5.5.0 | Функция mysql_list_dbs() устарела, и вызывает ошибку уровня E_DEPRECATED.

Примеры

Пример #1 Пример использования mysql_db_name()

<?php
error_reporting(E_ALL);

$link = mysql_connect('dbhost', 'username', 'password');
$db_list = mysql_list_dbs($link);

$i = 0;
$cnt = mysql_num_rows($db_list);
while ($i < $cnt) {
    echo mysql_db_name($db_list, $i) . "\n";
    $i++;
}
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_dbname()

Смотрите также

  • mysql_list_dbs() - Возвращает список баз данных, доступных на сервере
  • mysql_tablename() - Возвращает имя таблицы, содержащей указанное поле


Переключается на указанную базу данных и посылает запрос

  • « mysql_db_name
  • mysql_drop_db »
  • PHP Manual
  • MySQL
  • Переключается на указанную базу данных и посылает запрос

mysql_db_query

(PHP 4, PHP 5)

mysql_db_query — Переключается на указанную базу данных и посылает запрос

Внимание

Данная функция объявлена устаревшей в PHP 5.3.0, и, вместе с расширением MySQL, удалена PHP 7.0.0. Вместо нее используйте активно развивающиеся расширения MySQLi или PDO_MySQL. Так же смотрите раздел MySQL: выбор API и это FAQ. Альтернативы для этой функции:

  • mysqli_select_db() then the query
  • PDO::__construct()

Описание

mysql_db_query ( string $database , string $query [, resource $link_identifier = NULL ] ) : resource

mysql_db_query() выбирает базу данных и выполняет запрос к ней.

Список параметров

database

Имя базы данных, на которую произойдет переключение.

query

Запрос MySQL.

Данные в запросе должны быть корректно проэкранированы.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает ресурс результата запроса к MySQL или FALSE в случае ошибки. Функция также возвращает TRUE/FALSE для INSERT/UPDATE/DELETE запросов для индикации успеха/провала.

Список изменений

Версия | Описание
5.3.0 | Функция теперь выдает предупреждение уровня E_DEPRECATED.

Примеры

Пример #1 Пример использования альтернативы mysql_db_query()

<?php

if (!$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
    echo 'Не удалось подключиться к mysql';
    exit;
}

if (!mysql_select_db('mysql_dbname', $link)) {
    echo 'Не удалось выбрать базу данных';
    exit;
}

$sql    = 'SELECT foo FROM bar WHERE id = 42';
$result = mysql_query($sql, $link);

if (!$result) {
    echo "Ошибка DB, запрос не удался\n";
    echo 'MySQL Error: ' . mysql_error();
    exit;
}

while ($row = mysql_fetch_assoc($result)) {
    echo $row['foo'];
}

mysql_free_result($result);

?>

Примечания

Замечание:

Учтите, что эта функция НЕ переключает соединение обратно к предыдущей базе данных. Другими словами, вы не можете использовать эту функцию, чтобы временно переключиться на другую базу данных и выполнить запрос. Переключиться обратно вам придётся вручную. Крайне рекомендуется использовать синтаксис database.table в SQL-запросах или функцию mysql_select_db(), вместо использования этой функции.

Смотрите также

  • mysql_query() - Посылает запрос MySQL
  • mysql_select_db() - Выбирает базу данных MySQL


Уничтожает базу данных MySQL

  • « mysql_db_query
  • mysql_errno »
  • PHP Manual
  • MySQL
  • Уничтожает базу данных MySQL

mysql_drop_db

(PHP 4, PHP 5)

mysql_drop_db — Уничтожает базу данных MySQL

Внимание

Данная функция объявлена устаревшей в PHP 4.3.0, и, вместе с расширением MySQL, удалена PHP 7.0.0. Вместо нее используйте активно развивающиеся расширения MySQLi или PDO_MySQL. Так же смотрите раздел MySQL: выбор API и это FAQ. Альтернативы для этой функции:

  • Выполнить запрос DROP DATABASE

Описание

mysql_drop_db ( string $database_name [, resource $link_identifier = NULL ] ) : bool

mysql_drop_db() пытается уничтожить базу данных на сервере, на который ссылается переданный дескриптор соединения. Данная функция устарела, используйте вместо нее mysql_query() с запросом DROP DATABASE.

Список параметров

database_name

Имя удаляемой базы данных.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Альтернативный пример использования mysql_drop_db()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Не удалось подключиться к базе данных: ' . mysql_error());
}

$sql = 'DROP DATABASE my_db';
if (mysql_query($sql, $link)) {
    echo "База данных my_db была успешно удалена\n";
} else {
    echo 'Ошибка при удалении базы данных: ' . mysql_error() . "\n";
}
?>

Примечания

Внимание

Эта функция недоступна, если расширение было скомпилировано с клиентской библиотекой MySQL версии 4.x.

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_dropdb()

Смотрите также

  • mysql_query() - Посылает запрос MySQL


Возвращает численный код ошибки выполнения последней операции с MySQL

  • « mysql_drop_db
  • mysql_error »
  • PHP Manual
  • MySQL
  • Возвращает численный код ошибки выполнения последней операции с MySQL

mysql_errno

(PHP 4, PHP 5)

mysql_errno — Возвращает численный код ошибки выполнения последней операции с MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_errno()
  • PDO::errorCode()

Описание

mysql_errno ([ resource $link_identifier = NULL ] ) : int

Возвращает код ошибки последней функции работы с MySQL.

Ошибки работы с MySQL больше не вызывают сообщений в PHP. Вместо этого используйте функцию mysql_errno(), чтобы получить код ошибки. Учтите, что функция возвращает код ошибки только последней выполненной функции (исключая mysql_error() и mysql_errno()). Проверяйте результат работы функции до вызова следующей.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает код ошибки последней функции работы с MySQL, или 0 (ноль), если операция выполнена успешно.

Примеры

Пример #1 Пример использования mysql_errno()

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!mysql_select_db("nonexistentdb", $link)) {
    echo mysql_errno($link) . ": " . mysql_error($link). "\n";
}

mysql_select_db("kossu", $link);
if (!mysql_query("SELECT * FROM nonexistenttable", $link)) {
    echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

Смотрите также

  • mysql_error() - Возвращает текст ошибки последней операции с MySQL
  • » Коды ошибок MySQL


Возвращает текст ошибки последней операции с MySQL

  • « mysql_errno
  • mysql_escape_string »
  • PHP Manual
  • MySQL
  • Возвращает текст ошибки последней операции с MySQL

mysql_error

(PHP 4, PHP 5)

mysql_error — Возвращает текст ошибки последней операции с MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_error()
  • PDO::errorInfo()

Описание

mysql_error ([ resource $link_identifier = NULL ] ) : string

Возвращает текст ошибки выполнения последней функции MySQL. Ошибки работы с MySQL больше не вызывают сообщений в PHP. Вместо этого используйте функцию mysql_error(), для получения сообщения об ошибке. Учтите, что функция возвращает текст ошибки только последней выполненной функции MySQL (исключая mysql_error() и mysql_errno()), поэтому убедитесь, что вы вызываете данную функцию до вызова следующей функции MySQL.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает текст ошибки выполнения последней функции MySQL, или '' (пустую строку), если операция выполнена успешно.

Примеры

Пример #1 Пример использования mysql_error()

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");

mysql_select_db("nonexistentdb", $link);
echo mysql_errno($link) . ": " . mysql_error($link). "\n";

mysql_select_db("kossu", $link);
mysql_query("SELECT * FROM nonexistenttable", $link);
echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

Смотрите также

  • mysql_errno() - Возвращает численный код ошибки выполнения последней операции с MySQL
  • » Коды ошибок MySQL


Экранирует строку для использования в mysql_query

  • « mysql_error
  • mysql_fetch_array »
  • PHP Manual
  • MySQL
  • Экранирует строку для использования в mysql_query

mysql_escape_string

(PHP 4 >= 4.0.3, PHP 5)

mysql_escape_string — Экранирует строку для использования в mysql_query

Внимание

Данная функция объявлена устаревшей в PHP 4.3.0, и, вместе с расширением MySQL, удалена PHP 7.0.0. Вместо нее используйте активно развивающиеся расширения MySQLi или PDO_MySQL. Так же смотрите раздел MySQL: выбор API и это FAQ. Альтернативы для этой функции:

  • mysqli_escape_string()
  • PDO::quote()

Описание

mysql_escape_string ( string $unescaped_string ) : string

Функция экранирует unescaped_string таким образом, после чего её можно безопасно использовать в mysql_query(). Данная функция устарела.

Функция идентична mysql_real_escape_string(), исключая тот факт, что mysql_real_escape_string() принимает параметром ещё и идентификатор соединения и экранирует строку с учетом текущей кодировки. mysql_escape_string() не делает этого и результат работы не зависит от кодировки, в который вы работаете с БД.

Список параметров

unescaped_string

Экранируемая строка.

Возвращаемые значения

Возвращает экранируемую строку.

Список изменений

Версия | Описание
5.3.0 | Данная функция теперь выдает предупреждение уровня E_DEPRECATED.
4.3.0 | Функция помечена как устаревшая, ее не следует больше использовать. Используйте вместо нее mysql_real_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_escape_string() не экранирует символы % и _.

Смотрите также

  • mysql_real_escape_string() - Экранирует специальные символы в строках для использования в выражениях SQL
  • addslashes() - Экранирует строку с помощью слешей
  • Директиву magic_quotes_gpc.


Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба

  • « mysql_escape_string
  • mysql_fetch_assoc »
  • PHP Manual
  • MySQL
  • Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба

mysql_fetch_array

(PHP 4, PHP 5)

mysql_fetch_array — Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_array()
  • PDOStatement::fetch()

Описание

mysql_fetch_array ( resource $result [, int $result_type = MYSQL_BOTH ] ) : array

Возвращает массив, соответствующий обработанному ряду результата запроса и сдвигает внутренний указатель данных вперед.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

result_type

Тип возвращаемого массива. Является константой и может принимать следующие значения: MYSQL_ASSOC, MYSQL_NUM и MYSQL_BOTH.

Возвращаемые значения

Возвращает массив строк, соответствующих обработанному ряду результата запроса, или FALSE, если рядов больше нет. Тип возвращаемого массива зависит от значения параметра result_type. При использовании MYSQL_BOTH (по умолчанию), вы получите массив, состоящий как из ассоциативных индексов, так и из численных. MYSQL_ASSOC вернёт только ассоциативные индексы (аналогично функции mysql_fetch_assoc()), а MYSQL_NUM - только численные (аналогично функции mysql_fetch_row()).

Если несколько колонок в результате будут иметь одинаковые названия, то будет возвращена последняя колонка. Чтобы получить доступ к другим колонкам с тем же именем, используйте численные индексы массива или псевдонимы в запросе. В случае псевдонимов используйте именно их - вы не сможете использовать настоящие имена колонок.

Примеры

Пример #1 Запрос с применением псевдонимов для дублирующихся имен колонок

SELECT table1.field AS foo, table2.field AS bar FROM table1, table2

Пример #2 mysql_fetch_array() с MYSQL_NUM

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Ошибка соединения: " . 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  Имя: %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("Ошибка соединения: " . 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  Имя: %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("Ошибка соединения: " . 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  Имя: %s", $row[0], $row["name"]);
}

mysql_free_result($result);
?>

Примечания

Замечание: Производительность

Важно заметить, что mysql_fetch_array() работает незначительно медленнее, чем mysql_fetch_row(), в то же время предоставляя намного более удобный доступ к данным.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

  • mysql_fetch_row() - Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_data_seek() - Перемещает внутренний указатель в результате запроса
  • mysql_query() - Посылает запрос MySQL


Возвращает ряд результата запроса в качестве ассоциативного массива

  • « mysql_fetch_array
  • mysql_fetch_field »
  • PHP Manual
  • MySQL
  • Возвращает ряд результата запроса в качестве ассоциативного массива

mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5)

mysql_fetch_assoc — Возвращает ряд результата запроса в качестве ассоциативного массива

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_assoc()
  • PDOStatement::fetch(PDO::FETCH_ASSOC)

Описание

mysql_fetch_assoc ( resource $result ) : array

Возвращает ассоциативный массив, соответствующий полученному ряду и сдвигает вперед внутренний указатель результата. Функция mysql_fetch_assoc() аналогична вызову функции mysql_fetch_array() со вторым необязательным параметром, равным MYSQL_ASSOC. Функция возвращает только ассоциативный массив.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

Возвращаемые значения

Возвращает ассоциативный массив строк, соответствующий полученному ряду, либо FALSE если рядов больше нет.

Если два или более столбцов результата имеют одинаковые имена, приоритет будет иметь последний столбец. Для доступа к другому одноименному столбцу (или столбцам), вам необходимо либо обратиться к результату запроса по числовому индексу с помощью mysql_fetch_row() либо добавить псевдонимы к нужным столбцам. Для более подробной информации о псевдонимах смотрите описание примера mysql_fetch_array().

Примеры

Пример #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_assoc() лишь незначительно медленнее, чем mysql_fetch_row(), но в то же время предоставляет важную дополнительную информацию.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

  • mysql_fetch_row() - Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • mysql_fetch_array() - Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
  • mysql_data_seek() - Перемещает внутренний указатель в результате запроса
  • mysql_query() - Посылает запрос MySQL
  • mysql_error() - Возвращает текст ошибки последней операции с MySQL


Возвращает информацию о колонке из результата запроса в виде объекта

  • « mysql_fetch_assoc
  • mysql_fetch_lengths »
  • PHP Manual
  • MySQL
  • Возвращает информацию о колонке из результата запроса в виде объекта

mysql_fetch_field

(PHP 4, PHP 5)

mysql_fetch_field — Возвращает информацию о колонке из результата запроса в виде объекта

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_field()
  • PDOStatement::getColumnMeta()

Описание

mysql_fetch_field ( resource $result [, int $field_offset = 0 ] ) : object

Возвращает объект, содержащий информацию о колонке. Эту функцию можно использовать для получения информации о полях в переданном результате запроса.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

field_offset

Числовое смещение поля. Если смещение не указано, функция возвращает информацию о первой колонке, которая ещё не была обработана этой функцией. Нумерация field_offset начинается с 0.

Возвращаемые значения

Возвращает object, содержащий информацию о колонке. Объект содержит следующие свойства:

  • 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
$conn = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$conn) {
    die('Ошибка при соединении: ' . mysql_error());
}
mysql_select_db('database');
$result = mysql_query('select * from table');
if (!$result) {
    die('Ошибка в запросе: ' . mysql_error());
}
/* получаем данные о колонке */
$i = 0;
while ($i < mysql_num_fields($result)) {
    echo "Информация о колонке $i:<br />\n";
    $meta = mysql_fetch_field($result, $i);
    if (!$meta) {
        echo "Информация недоступна<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);
?>

Примечания

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание:

Если поля или таблицы имеют дополнительные имена в запросе SQL, то будет возвращены эти дополнительные имена. Исходное имя может быть получено, например, с помощью mysqli_result::fetch_field().

Смотрите также

  • mysql_field_seek() - Устанавливает внутренний указатель результата на переданное смещение поля


Возвращает длину каждого поля в результате

  • « mysql_fetch_field
  • mysql_fetch_object »
  • PHP Manual
  • MySQL
  • Возвращает длину каждого поля в результате

mysql_fetch_lengths

(PHP 4, PHP 5)

mysql_fetch_lengths — Возвращает длину каждого поля в результате

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_lengths()
  • PDOStatement::getColumnMeta()

Описание

mysql_fetch_lengths ( resource $result ) : array

Возвращает массив длин для каждого поля, содержащегося в последнем ряду результата, полученном из MySQL.

mysql_fetch_lengths() возвращает длины каждого поля,
содержащегося в последнем ряду, обработанном функциями
mysql_fetch_row(),
mysql_fetch_assoc(),
mysql_fetch_array() и
mysql_fetch_object() в массиве, начинающемся с 0.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

Возвращаемые значения

Массив (array) длин в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_fetch_lengths()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Ошибка выполнения запроса: ' . mysql_error();
    exit;
}
$row     = mysql_fetch_assoc($result);
$lengths = mysql_fetch_lengths($result);

print_r($row);
print_r($lengths);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [id] => 42
    [email] => user@example.com
)
Array
(
    [0] => 2
    [1] => 16
)

Смотрите также

  • mysql_field_len() - Возвращает длину указанного поля
  • mysql_fetch_row() - Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • strlen() - Возвращает длину строки


Обрабатывает ряд результата запроса и возвращает объект

  • « mysql_fetch_lengths
  • mysql_fetch_row »
  • PHP Manual
  • MySQL
  • Обрабатывает ряд результата запроса и возвращает объект

mysql_fetch_object

(PHP 4, PHP 5)

mysql_fetch_object — Обрабатывает ряд результата запроса и возвращает объект

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_object()
  • PDOStatement::fetch(PDO::FETCH_OBJ)

Описание

mysql_fetch_object ( resource $result [, string $class_name [, array $params ]] ) : object

Возвращает объект со свойствами, соответствующими колонкам в обработанном ряду и сдвигает внутренний указатель результата вперед.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

class_name

Имя класса. Будет создан экземпляр указанного класса, заполнен свойствами и возвращен. Если не указан, возвращается экземпляр stdClass.

params

Необязательный массив (array) параметров, передаваемых в конструктор создаваемого экземпляра class_name.

Возвращаемые значения

Возвращает объект (object) со строковыми свойствами, соответствующими полученному ряду, или FALSE, если рядов больше нет.

Примеры

Пример #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);
?>

Пример #2 Пример использования mysql_fetch_object()

<?php
class foo {
    public $name;
}

mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");

$result = mysql_query("select name from mytable limit 1");
$obj = mysql_fetch_object($result, 'foo');
var_dump($obj);
?>

Примечания

Замечание: Производительность

В плане скорости эта функция аналогична mysql_fetch_array() и почти также быстра, как mysql_fetch_row() (разница незначительна).

Замечание:

mysql_fetch_object() работает аналогично mysql_fetch_array(), с единственным отличием - функция возвращает объект вместо массива. Это, кроме всего прочего, означает, что вы сможете работать с полями только по имени колонок, а не индексов (числа не могут быть свойствами объекта).

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

  • mysql_fetch_array() - Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
  • mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_fetch_row() - Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • mysql_data_seek() - Перемещает внутренний указатель в результате запроса
  • mysql_query() - Посылает запрос MySQL


Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами

  • « mysql_fetch_object
  • mysql_field_flags »
  • PHP Manual
  • MySQL
  • Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами

mysql_fetch_row

(PHP 4, PHP 5)

mysql_fetch_row — Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_row()
  • PDOStatement::fetch(PDO::FETCH_NUM)

Описание

mysql_fetch_row ( resource $result ) : array

Возвращает массив с числовыми индексами, содержащий данные обработанного ряда, и сдвигает внутренний указатель результата вперед.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

Возвращаемые значения

Возвращает массив строк с числовыми индексами, содержащий данные обработанного ряда, или FALSE, если рядов не осталось.

mysql_fetch_row() обрабатывает один ряд результата, на который ссылается переданный указатель. Ряд возвращается в виде массива. Каждая колонка располагается в следующей ячейке массива, начиная с нулевого индекса

Примеры

Пример #1 Получение одного ряда с помощью mysql_fetch_row()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Ошибка запроса: ' . mysql_error();
    exit;
}
$row = mysql_fetch_row($result);

echo $row[0]; // 42
echo $row[1]; // email
?>

Примечания

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

  • mysql_fetch_array() - Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
  • mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_fetch_object() - Обрабатывает ряд результата запроса и возвращает объект
  • mysql_data_seek() - Перемещает внутренний указатель в результате запроса
  • mysql_fetch_lengths() - Возвращает длину каждого поля в результате
  • mysql_result() - Возвращает данные результата запроса


Возвращает флаги, связанные с указанным полем результата запроса

  • « mysql_fetch_row
  • mysql_field_len »
  • PHP Manual
  • MySQL
  • Возвращает флаги, связанные с указанным полем результата запроса

mysql_field_flags

(PHP 4, PHP 5)

mysql_field_flags — Возвращает флаги, связанные с указанным полем результата запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_field_direct() [flags]
  • PDOStatement::getColumnMeta() [flags]

Описание

mysql_field_flags ( resource $result , int $field_offset ) : string

mysql_field_flags() возвращает флаги, связанные с указанным полем. Каждый флаг возвращается как отдельное слово, отделённое от предыдущего пробелом. Полученное значение можно разбить в массив, используя функцию explode().

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

field_offset

Числовое смещение поля. field_offset начинается с 0. Если field_offset не существует, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает строку с флагами, связанными с результатом или FALSE в случае возникновения ошибки.

Возвращаются следующие флаги, если ваша версия MySQL их уже поддерживает: "not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment" и "timestamp".

Примеры

Пример #1 Пример использования mysql_field_flags()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Ошибка в запросе: ' . mysql_error();
    exit;
}
$flags = mysql_field_flags($result, 0);

echo $flags;
print_r(explode(' ', $flags));
?>

Результатом выполнения данного примера будет что-то подобное:

not_null primary_key auto_increment
Array
(
    [0] => not_null
    [1] => primary_key
    [2] => auto_increment
)

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_fieldflags()

Смотрите также

  • mysql_field_type() - Возвращает тип указанного поля из результата запроса
  • mysql_field_len() - Возвращает длину указанного поля


Возвращает длину указанного поля

  • « mysql_field_flags
  • mysql_field_name »
  • PHP Manual
  • MySQL
  • Возвращает длину указанного поля

mysql_field_len

(PHP 4, PHP 5)

mysql_field_len — Возвращает длину указанного поля

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_field_direct() [length]
  • PDOStatement::getColumnMeta() [len]

Описание

mysql_field_len ( resource $result , int $field_offset ) : int

mysql_field_len() возвращает длину указанного поля.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

field_offset

Числовое смещение поля. field_offset начинается с 0. Если field_offset не существует, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Длина указанного поля в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_field_len()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Не удалось выполнить запрос: ' . mysql_error();
    exit;
}

// Получит длину поля id так, как указано в структуре базы данных
$length = mysql_field_len($result, 0);
echo $length;
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_fieldlen()

Смотрите также

  • mysql_fetch_lengths() - Возвращает длину каждого поля в результате
  • strlen() - Возвращает длину строки


Возвращает название указанной колонки результата запроса

  • « mysql_field_len
  • mysql_field_seek »
  • PHP Manual
  • MySQL
  • Возвращает название указанной колонки результата запроса

mysql_field_name

(PHP 4, PHP 5)

mysql_field_name — Возвращает название указанной колонки результата запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_field_direct() [name] или [orgname]
  • PDOStatement::getColumnMeta() [name]

Описание

mysql_field_name ( resource $result , int $field_offset ) : string

mysql_field_name() возвращает название колонки с указанным индексом.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

field_offset

Числовое смещение поля. field_offset начинается с 0. Если field_offset не существует, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Название поля по указанному индексу в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_field_name()

<?php
/* Таблица пользователей состоит из трёх колонок:
 *   user_id
 *   username
 *   password.
 */
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения с MySQL: ' . mysql_error());
}
$dbname = 'mydb';
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected) {
    die("Не удалось выбрать базу $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_type() - Возвращает тип указанного поля из результата запроса
  • mysql_field_len() - Возвращает длину указанного поля


Устанавливает внутренний указатель результата на переданное смещение поля

  • « mysql_field_name
  • mysql_field_table »
  • PHP Manual
  • MySQL
  • Устанавливает внутренний указатель результата на переданное смещение поля

mysql_field_seek

(PHP 4, PHP 5)

mysql_field_seek — Устанавливает внутренний указатель результата на переданное смещение поля

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_field_seek()
  • PDOStatement::fetch() с использованием параметров cursor_orientation и offset

Описание

mysql_field_seek ( resource $result , int $field_offset ) : bool

Перемещает указатель к полю с указанным смещением. Если следующий вызов функции mysql_fetch_field() не содержит смещения, то будет возвращено смещение, содержащееся в mysql_field_seek().

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

field_offset

Числовое смещение поля. field_offset начинается с 0. Если field_offset не существует, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mysql_fetch_field() - Возвращает информацию о колонке из результата запроса в виде объекта


Возвращает название таблицы, которой принадлежит указанное поле

  • « mysql_field_seek
  • mysql_field_type »
  • PHP Manual
  • MySQL
  • Возвращает название таблицы, которой принадлежит указанное поле

mysql_field_table

(PHP 4, PHP 5)

mysql_field_table — Возвращает название таблицы, которой принадлежит указанное поле

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_field_direct() [table] или [orgtable]
  • PDOStatement::getColumnMeta() [table]

Описание

mysql_field_table ( resource $result , int $field_offset ) : string

Возвращает название таблицы, которой принадлежит указанное поле.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

field_offset

Числовое смещение поля. field_offset начинается с 0. Если field_offset не существует, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Имя таблицы в случае успеха.

Примеры

Пример #1 Пример использования mysql_field_table()

<?php

$query = "SELECT account.*, country.* FROM account, country WHERE country.name = 'Portugal' AND account.country_id = country.id";

// получаем результат из базы данных
$result = mysql_query($query);

// выводит имя таблицы и имя поля
for ($i = 0; $i < mysql_num_fields($result); ++$i) {
    $table = mysql_field_table($result, $i);
    $field = mysql_field_name($result, $i);

    echo  "$table: $field\n";
}

?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_fieldtable()

Смотрите также

  • mysql_list_tables() - Возвращает список таблиц базы данных MySQL


Возвращает тип указанного поля из результата запроса

  • « mysql_field_table
  • mysql_free_result »
  • PHP Manual
  • MySQL
  • Возвращает тип указанного поля из результата запроса

mysql_field_type

(PHP 4, PHP 5)

mysql_field_type — Возвращает тип указанного поля из результата запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_field_direct() [type]
  • PDOStatement::getColumnMeta() [driver:decl_type] или [pdo_type]

Описание

mysql_field_type ( resource $result , int $field_offset ) : string

Функция mysql_field_type() аналогична функции mysql_field_name(). Аргументы одинаковы, но вместо имени колонки возвращается её тип.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

field_offset

Числовое смещение поля. field_offset начинается с 0. Если field_offset не существует, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Поля могут быть следующих типов: "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 "Ваша таблица '" . $table . "' содержит " . $fields . " поля и " . $rows . " запись\n";
echo "В таблице есть следующие поля:\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();
?>

Результатом выполнения данного примера будет что-то подобное:

Ваша таблица 'func' содержит 4 поля и 1 запись
В таблице есть следующие поля:
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_name() - Возвращает название указанной колонки результата запроса
  • mysql_field_len() - Возвращает длину указанного поля


Освобождает память от результата запроса

  • « mysql_field_type
  • mysql_get_client_info »
  • PHP Manual
  • MySQL
  • Освобождает память от результата запроса

mysql_free_result

(PHP 4, PHP 5)

mysql_free_result — Освобождает память от результата запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_free_result()
  • Присвоение значения NULL переменной PDO объекта, или PDOStatement::closeCursor()

Описание

mysql_free_result ( resource $result ) : bool

mysql_free_result() высвободит всю память, занимаемую результатом, на который ссылается переданный дескриптор result.

mysql_free_result() нуждается в вызове только в том случае, если вы всерьёз обеспокоены тем, сколько памяти используют ваши запросы к БД, возвращающие большое количество данных. Вся память, используемая для хранения этих данных автоматически очистится в конце работы скрипта.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Если в качестве параметра result передан не ресурс, то будет вызвана ошибка уровня E_WARNING. Стоит также заметить, что mysql_query() возвращает resource только для запросов SELECT, SHOW, EXPLAIN и DESCRIBE.

Примеры

Пример #1 Пример использования mysql_free_result()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Не удалось выполнить запрос: ' . mysql_error();
    exit;
}
/* Используем результат, подразумевая, что после этого он нам больше не нужен */
$row = mysql_fetch_assoc($result);

/* Теперь освобождаем результат и продолжаем дальнейшую работу над нашим скриптом */
mysql_free_result($result);

echo $row['id'];
echo $row['email'];
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_freeresult()

Смотрите также

  • mysql_query() - Посылает запрос MySQL
  • is_resource() - Проверяет, является ли переменная ресурсом


Возвращает данные о MySQL-клиенте

  • « mysql_free_result
  • mysql_get_host_info »
  • PHP Manual
  • MySQL
  • Возвращает данные о MySQL-клиенте

mysql_get_client_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_client_info — Возвращает данные о MySQL-клиенте

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_get_client_info()
  • PDO::getAttribute(PDO::ATTR_CLIENT_VERSION)

Описание

mysql_get_client_info ( void ) : string

mysql_get_client_info() возвращает строку, содержащую версию клиентской библиотеки.

Возвращаемые значения

Версия клиентской библиотеки MySQL.

Примеры

Пример #1 Пример использования mysql_get_client_info()

<?php
printf("Версия клиентской библиотеки MySQL: %s\n", mysql_get_client_info());
?>

Результатом выполнения данного примера будет что-то подобное:

Версия клиентской библиотеки MySQL: 3.23.39

Смотрите также

  • mysql_get_host_info() - Возвращает информацию о соединении с MySQL
  • mysql_get_proto_info() - Возвращает информацию о протоколе MySQL
  • mysql_get_server_info() - Возвращает информацию о сервере MySQL


Возвращает информацию о соединении с MySQL

  • « mysql_get_client_info
  • mysql_get_proto_info »
  • PHP Manual
  • MySQL
  • Возвращает информацию о соединении с MySQL

mysql_get_host_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_host_info — Возвращает информацию о соединении с MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_get_host_info()
  • PDO::getAttribute(PDO::ATTR_CONNECTION_STATUS)

Описание

mysql_get_host_info ([ resource $link_identifier = NULL ] ) : string

Описывает тип используемого соединения, указанного переданным дескриптором соединения, включая имя хоста.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает строку, описывающую тип используемого соединения, указанного переданным дескриптором соединения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_get_host_info()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
printf("Тип соединения с MySQL: %s\n", mysql_get_host_info());
?>

Результатом выполнения данного примера будет что-то подобное:

Тип соединения с MySQL: Localhost via UNIX socket

Смотрите также

  • mysql_get_client_info() - Возвращает данные о MySQL-клиенте
  • mysql_get_proto_info() - Возвращает информацию о протоколе MySQL
  • mysql_get_server_info() - Возвращает информацию о сервере MySQL


Возвращает информацию о протоколе MySQL

  • « mysql_get_host_info
  • mysql_get_server_info »
  • PHP Manual
  • MySQL
  • Возвращает информацию о протоколе MySQL

mysql_get_proto_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_proto_info — Возвращает информацию о протоколе MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_get_proto_info()

Описание

mysql_get_proto_info ([ resource $link_identifier = NULL ] ) : int

Возвращает информацию о протоколе MySQL.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает используемый протокол MySQL в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_get_proto_info()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
printf("Версия протокола MySQL: %s\n", mysql_get_proto_info());
?>

Результатом выполнения данного примера будет что-то подобное:

Версия протокола MySQL: 10

Смотрите также

  • mysql_get_client_info() - Возвращает данные о MySQL-клиенте
  • mysql_get_host_info() - Возвращает информацию о соединении с MySQL
  • mysql_get_server_info() - Возвращает информацию о сервере MySQL


Возвращает информацию о сервере MySQL

  • « mysql_get_proto_info
  • mysql_info »
  • PHP Manual
  • MySQL
  • Возвращает информацию о сервере MySQL

mysql_get_server_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_server_info — Возвращает информацию о сервере MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_get_server_info()
  • PDO::getAttribute(PDO::ATTR_SERVER_VERSION)

Описание

mysql_get_server_info ([ resource $link_identifier = NULL ] ) : string

Возвращает версию сервера MySQL.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает версию сервера MySQL в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_get_server_info()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
printf("Версия сервера MySQL: %s\n", mysql_get_server_info());
?>

Результатом выполнения данного примера будет что-то подобное:

Версия сервера MySQL: 4.0.1-alpha

Смотрите также

  • mysql_get_client_info() - Возвращает данные о MySQL-клиенте
  • mysql_get_host_info() - Возвращает информацию о соединении с MySQL
  • mysql_get_proto_info() - Возвращает информацию о протоколе MySQL
  • phpversion() - Получает текущую версию PHP


Возвращает информацию о последнем запросе

  • « mysql_get_server_info
  • mysql_insert_id »
  • PHP Manual
  • MySQL
  • Возвращает информацию о последнем запросе

mysql_info

(PHP 4 >= 4.3.0, PHP 5)

mysql_info — Возвращает информацию о последнем запросе

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_info()

Описание

mysql_info ([ resource $link_identifier = NULL ] ) : string

Возвращает подробную информацию о последнем запросе.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает информацию о запросе в случае успеха, или FALSE в случае ошибки. Смотрите пример ниже для каких запросов возвращается информация и как выглядят возвращаемые значения. Для не перечисленных запросов будет возвращено значение 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_insert_id() - Возвращает идентификатор, сгенерированный при последнем INSERT-запросе
  • mysql_stat() - Возвращает текущий статус сервера


Возвращает идентификатор, сгенерированный при последнем INSERT-запросе

  • « mysql_info
  • mysql_list_dbs »
  • PHP Manual
  • MySQL
  • Возвращает идентификатор, сгенерированный при последнем INSERT-запросе

mysql_insert_id

(PHP 4, PHP 5)

mysql_insert_id — Возвращает идентификатор, сгенерированный при последнем INSERT-запросе

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_insert_id()
  • PDO::lastInsertId()

Описание

mysql_insert_id ([ resource $link_identifier = NULL ] ) : int

Возвращает идентификатор, сгенерированный колонкой с AUTO_INCREMENT последним запросом (обычно INSERT).

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Идентификатор, сгенерированный колонкой с AUTO_INCREMENT последним запросом в случае успеха , 0, если последний запрос не генерирует значение AUTO_INCREMENT value, и FALSE, если соединение MySQL не было установлено.

Примеры

Пример #1 Пример использования mysql_insert_id()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
mysql_select_db('mydb');

mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Идентификатор последней вставленной записи %d\n", mysql_insert_id());
?>

Примечания

Предостережение

mysql_insert_id() конвертирует возвращаемый функцией MySQL C API тип значения функции mysql_insert_id() в тип long (называемый int в PHP). Если ваша колонка AUTO_INCREMENT имеет тип BIGINT (64 бита), то значение, возвращаемое функцией в результате преобразования может быть искажено. Используйте вместо данной функции внутреннюю MySQL-функцию LAST_INSERT_ID() в SQL-запросе. Подробнее о максимальных значениях целых чисел смотрите в разделе документации, посвященном целым числам.

Замечание:

Так как mysql_insert_id() работает с последним выполненным запросом, вызывайте mysql_insert_id() сразу же после запроса, генерирующего новое значение.

Замечание:

Значение в SQL функции MySQL LAST_INSERT_ID() всегда содержит последний сгенерированный ID и не обнуляется между запросами.

Смотрите также

  • mysql_query() - Посылает запрос MySQL
  • mysql_info() - Возвращает информацию о последнем запросе


Возвращает список баз данных, доступных на сервере

  • « mysql_insert_id
  • mysql_list_fields »
  • PHP Manual
  • MySQL
  • Возвращает список баз данных, доступных на сервере

mysql_list_dbs

(PHP 4, PHP 5)

mysql_list_dbs — Возвращает список баз данных, доступных на сервере

Внимание

Данная функция объявлена устаревшей в PHP 5.4.0, и, вместе с расширением MySQL, удалена PHP 7.0.0. Вместо нее используйте активно развивающиеся расширения MySQLi или PDO_MySQL. Так же смотрите раздел MySQL: выбор API и это FAQ. Альтернативы для этой функции:

  • SQL запрос: SHOW DATABASES

Описание

mysql_list_dbs ([ resource $link_identifier = NULL ] ) : resource

Возвращает указатель на результат, содержащий список баз данных, доступных на указанном сервере.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает resource результата в случае успеха, или FALSE в случае ошибки. Используйте функцию mysql_tablename(), чтобы получить данные из результата, или любую другую функцию, работающую с результатами запросов, например mysql_fetch_array().

Примеры

Пример #1 Пример использования mysql_list_dbs()

<?php
// Без использования mysql_list_dbs()
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$res = mysql_query("SHOW DATABASES");

while ($row = mysql_fetch_assoc($res)) {
    echo $row['Database'] . "\n";
}

// Устарело, начиная с PHP 5.4.0
$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_listdbs()

Смотрите также

  • mysql_db_name() - Возвращает название базы данных из вызова к mysql_list_dbs
  • mysql_select_db() - Выбирает базу данных MySQL


Возвращает список колонок таблицы

  • « mysql_list_dbs
  • mysql_list_processes »
  • PHP Manual
  • MySQL
  • Возвращает список колонок таблицы

mysql_list_fields

(PHP 4, PHP 5)

mysql_list_fields — Возвращает список колонок таблицы

Внимание

Данная функция объявлена устаревшей в PHP 5.4.0, и, вместе с расширением MySQL, удалена PHP 7.0.0. Вместо нее используйте активно развивающиеся расширения MySQLi или PDO_MySQL. Так же смотрите раздел MySQL: выбор API и это FAQ. Альтернативы для этой функции:

  • SQL запрос: SHOW COLUMNS FROM sometable

Описание

mysql_list_fields ( string $database_name , string $table_name [, resource $link_identifier = NULL ] ) : resource

Возвращает информацию о таблице с переданным именем.

Эта функция устарела. Вместо нее рекомендуется использовать mysql_query() с SQL-запросом SHOW COLUMNS FROM table [LIKE 'name'].

Список параметров

database_name

Имя опрашиваемой базы данных.

table_name

Имя опрашиваемой таблицы.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Дескриптор результата (resource) в случае успеха, или FALSE в случае ошибки.

Возвращаемый результат может быть обработан с помощью следующих
функций: mysql_field_flags(),
mysql_field_len(),
mysql_field_name() и
mysql_field_type().

Примеры

Пример #1 Пример использования mysql_list_fields()

<?php
$result = mysql_query("SHOW COLUMNS FROM sometable");
if (!$result) {
    echo 'Ошибка при выполнении запроса: ' . mysql_error();
    exit;
}
if (mysql_num_rows($result) > 0) {
    while ($row = mysql_fetch_assoc($result)) {
        print_r($row);
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [Field] => id
    [Type] => int(7)
    [Null] =>
    [Key] => PRI
    [Default] =>
    [Extra] => auto_increment
)
Array
(
    [Field] => email
    [Type] => varchar(100)
    [Null] =>
    [Key] =>
    [Default] =>
    [Extra] =>
)

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_listfields()

Смотрите также

  • mysql_field_flags() - Возвращает флаги, связанные с указанным полем результата запроса
  • mysql_info() - Возвращает информацию о последнем запросе


Возвращает список процессов MySQL

  • « mysql_list_fields
  • mysql_list_tables »
  • PHP Manual
  • MySQL
  • Возвращает список процессов MySQL

mysql_list_processes

(PHP 4 >= 4.3.0, PHP 5)

mysql_list_processes — Возвращает список процессов MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_thread_id()

Описание

mysql_list_processes ([ resource $link_identifier = NULL ] ) : resource

Возвращает список текущих процессов на сервере MySQL.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Дескриптор результата (resource) в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #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_stat() - Возвращает текущий статус сервера


Возвращает список таблиц базы данных MySQL

  • « mysql_list_processes
  • mysql_num_fields »
  • PHP Manual
  • MySQL
  • Возвращает список таблиц базы данных MySQL

mysql_list_tables

(PHP 4, PHP 5)

mysql_list_tables — Возвращает список таблиц базы данных MySQL

Внимание

Данная функция объявлена устаревшей в PHP 4.3.0, и, вместе с расширением MySQL, удалена PHP 7.0.0. Вместо нее используйте активно развивающиеся расширения MySQLi или PDO_MySQL. Так же смотрите раздел MySQL: выбор API и это FAQ. Альтернативы для этой функции:

  • SQL запрос: SHOW TABLES FROM dbname

Описание

mysql_list_tables ( string $database [, resource $link_identifier = NULL ] ) : resource

Возвращает список имен таблиц базы данных MySQL.

Данная функция устарела. Вместо нее рекомендуется использовать mysql_query() с запросом SHOW TABLES [FROM db_name] [LIKE 'pattern'].

Список параметров

database

Имя базы данных

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Дескриптор результата (resource) в случае успеха или FALSE в случае возникновения ошибки.

Используйте функцию mysql_tablename() для работы с результатом запроса, либо любую другую функцию, способную это делать, например, mysql_fetch_array().

Список изменений

Версия | Описание
4.3.7 | Функция помечена устаревшей.

Примеры

Пример #1 Пример использования mysql_list_tables()

<?php
$dbname = 'mysql_dbname';

if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
    echo 'Ошибка подключения к mysql';
    exit;
}

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

if (!$result) {
    echo "Ошибка базы, не удалось получить список таблиц\n";
    echo 'Ошибка MySQL: ' . mysql_error();
    exit;
}

while ($row = mysql_fetch_row($result)) {
    echo "Таблица: {$row[0]}\n";
}

mysql_free_result($result);
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_listtables()

Смотрите также

  • mysql_list_dbs() - Возвращает список баз данных, доступных на сервере
  • mysql_tablename() - Возвращает имя таблицы, содержащей указанное поле


Возвращает количество полей результата запроса

  • « mysql_list_tables
  • mysql_num_rows »
  • PHP Manual
  • MySQL
  • Возвращает количество полей результата запроса

mysql_num_fields

(PHP 4, PHP 5)

mysql_num_fields — Возвращает количество полей результата запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_num_fields()
  • PDOStatement::columnCount()

Описание

mysql_num_fields ( resource $result ) : int

Возвращает количество полей в результате запроса.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

Возвращаемые значения

Возвращает количество полей в результате запроса (resource) в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_num_fields()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Не удалось выполнить запрос: ' . mysql_error();
    exit;
}

/* возвращает 2, так как id,email === двум полям */
echo mysql_num_fields($result);
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_numfields()

Смотрите также

  • mysql_select_db() - Выбирает базу данных MySQL
  • mysql_query() - Посылает запрос MySQL
  • mysql_fetch_field() - Возвращает информацию о колонке из результата запроса в виде объекта
  • mysql_num_rows() - Возвращает количество рядов результата запроса


Возвращает количество рядов результата запроса

  • « mysql_num_fields
  • mysql_pconnect »
  • PHP Manual
  • MySQL
  • Возвращает количество рядов результата запроса

mysql_num_rows

(PHP 4, PHP 5)

mysql_num_rows — Возвращает количество рядов результата запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_num_rows()
  • mysqli_stmt_num_rows()
  • PDOStatement::rowCount()

Описание

mysql_num_rows ( resource $result ) : int

Возвращает количество рядов результата запроса. Эта команда работает только с запросами SELECT или SHOW, возвращающих актуальный результат запроса. Чтобы получить количество рядов, обработанных функциями INSERT, UPDATE, REPLACE и DELETE, используйте функцию mysql_affected_rows().

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

Возвращаемые значения

Количество рядов в результате запроса в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #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 рядов\n";

?>

Примечания

Замечание:

При использовании mysql_unbuffered_query() функция mysql_num_rows() не вернёт корректного значения до тех пор, пока все ряды не будут получены.

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_numrows()

Смотрите также

  • mysql_affected_rows() - Возвращает число затронутых прошлой операцией рядов
  • mysql_connect() - Открывает соединение с сервером MySQL
  • mysql_data_seek() - Перемещает внутренний указатель в результате запроса
  • mysql_select_db() - Выбирает базу данных MySQL
  • mysql_query() - Посылает запрос MySQL


Устанавливает постоянное соединение с сервером MySQL

  • « mysql_num_rows
  • mysql_ping »
  • PHP Manual
  • MySQL
  • Устанавливает постоянное соединение с сервером MySQL

mysql_pconnect

(PHP 4, PHP 5)

mysql_pconnect — Устанавливает постоянное соединение с сервером MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_connect() с p: префиксом хоста
  • PDO::__construct() с опцией драйвера PDO::ATTR_PERSISTENT

Описание

mysql_pconnect ([ string $server = ini_get("mysql.default_host") [, string $username = ini_get("mysql.default_user") [, string $password = ini_get("mysql.default_password") [, int $client_flags = 0 ]]]] ) : resource

Устанавливает постоянное соединение с сервером MySQL.

mysql_pconnect() работает аналогично mysql_connect() с двумя важными отличиями.

Во-первых, при соединении функция пытается найти уже открытый (постоянный) указатель на тот же сервер с тем же пользователем и паролем. Если он найден, возвращён функцией будет именно он, вместо открытия нового соединения.

Во-вторых, соединение с SQL-сервером не будет закрыто, когда работа скрипта закончится. Вместо этого, оно останется рабочим для будущего использования (mysql_close() также не закрывает постоянные соединения, открытые mysql_pconnect()).

Соединения такого типа называют 'постоянными'.

Список параметров

server

Сервер MySQL. Может также включать номер порта, например, "hostname:port" или путь к локальному сокету, например, ":/path/to/socket" для локального хоста.

Если директива mysql.default_host не определена (по умолчанию), то по умолчанию используется значение 'localhost:3306'

username

Имя пользователя. По умолчанию используется имя пользователя, владеющего серверным процессом.

password

Пароль. По умолчанию используется пустая строка.

client_flags

Параметр client_flags может быть комбинацией следующих констант: 128 (включает обработку LOAD DATA LOCAL), MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE и MYSQL_CLIENT_INTERACTIVE.

Возвращаемые значения

Возвращает дескриптор постоянного соединения MySQL в случае успеха, и FALSE в случае ошибки.

Список изменений

Версия | Описание
5.5.0 | Эта функция теперь вызывает ошибку E_DEPRECATED.

Примечания

Замечание:

Учтите, что соединения такого типа работают только, если PHP установлен как модуль. За дополнительной информацией обращайтесь к разделу "Постоянные соединения с базами данных".

Внимание

Использование постоянных соединений может потребовать некоторой настройки Apache и MySQL. Убедитесь, что вы не превысите максимальное число дозволенных соединений в MySQL.

Смотрите также

  • mysql_connect() - Открывает соединение с сервером MySQL
  • "Постоянные соединения с базами данных"


Проверяет соединение с сервером и пересоединяется при необходимости

  • « mysql_pconnect
  • mysql_query »
  • PHP Manual
  • MySQL
  • Проверяет соединение с сервером и пересоединяется при необходимости

mysql_ping

(PHP 4 >= 4.3.0, PHP 5)

mysql_ping — Проверяет соединение с сервером и пересоединяется при необходимости

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_ping()

Описание

mysql_ping ([ resource $link_identifier = NULL ] ) : bool

Проверяет работает ли соединение с сервером. Если оно утеряно, автоматически предпринимается попытка пересоединения. Эта функция может быть использована в скриптах, работающих на протяжении долгого времени.

Замечание:

Автоматическое восстановление соединения по умолчанию отключено в версиях MySQL >= 5.0.3.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает TRUE, если соединение в рабочем состоянии и FALSE в противном случае.

Примеры

Пример #1 Пример использования mysql_ping()

<?php
set_time_limit(0);

$conn = mysql_connect('localhost', 'mysqluser', 'mypass');
$db   = mysql_select_db('mydb');

/* Подразумевается что этот запрос будет выполняться достаточно долго */
$result = mysql_query($sql);
if (!$result) {
    echo 'Запрос #1 не удался, выходим.';
    exit;
}

/* Проверяем что соединение еще работает, если нет, соединяемся заново */
if (!mysql_ping($conn)) {
    echo 'Соединение потеряно, выходим после запроса #1';
    exit;
}
mysql_free_result($result);

/* Соединение еще работает, выполняем еще один запрос */
$result2 = mysql_query($sql2);
?>

Смотрите также

  • mysql_thread_id() - Возвращает идентификатор текущего потока
  • mysql_list_processes() - Возвращает список процессов MySQL


Посылает запрос MySQL

  • « mysql_ping
  • mysql_real_escape_string »
  • PHP Manual
  • MySQL
  • Посылает запрос MySQL

mysql_query

(PHP 4, PHP 5)

mysql_query — Посылает запрос MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_query()
  • PDO::query()

Описание

mysql_query ( string $query [, resource $link_identifier = NULL ] ) : mixed

mysql_query() посылает один запрос (посылка нескольких запросов не поддерживается) активной базе данных сервера, на который ссылается переданный дескриптор link_identifier.

Список параметров

query

SQL-запрос

Запрос не должен заканчиваться точкой с запятой. Данные в запросе должны быть корректно проэкранированы.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Для запросов SELECT, SHOW, DESCRIBE, EXPLAIN и других запросов, возвращающих результат из нескольких рядов, mysql_query() возвращает дескриптор результата запроса (resource), или FALSE в случае ошибки.

Для других типов SQL-запросов, INSERT, UPDATE, DELETE, DROP и других, mysql_query() возвращает TRUE в случае успеха и FALSE в случае ошибки.

Полученный дескриптор результата нужно передать в функцию mysql_fetch_assoc() или любую другую функцию, работающую с результатами запросов.

Используйте mysql_num_rows() для выяснения количества рядов в результате SELECT-запроса или mysql_affected_rows() для выяснения количества обработанных рядов запросами DELETE, INSERT, REPLACE и UPDATE.

mysql_query() также завершится с ошибкой и вернет FALSE, если у пользователя нет доступа к какой-либо из таблиц, фигурирующих в запросе.

Примеры

Пример #1 Неверный запрос

Следующий запрос составлен неправильно и mysql_query() вернёт FALSE.

<?php
$result = mysql_query('SELECT * WHERE 1 = 1');
if (!$result) {
    die('Неверный запрос: ' . mysql_error());
}

?>

Пример #2 Верный запрос

Следующий запрос верен, поэтому mysql_query() вернет resource.

<?php
// Эти данные, к примеру, могли быть получены от пользователя
$firstname = 'fred';
$lastname  = 'fox';

// Формируем запрос
// Это лучший способ выполнить SQL-запрос
// Еще примеры можно найти в документации mysql_real_escape_string()
$query = sprintf("SELECT firstname, lastname, address, age FROM friends
    WHERE firstname='%s' AND lastname='%s'",
    mysql_real_escape_string($firstname),
    mysql_real_escape_string($lastname));

// Выполняем запрос
$result = mysql_query($query);

// Проверяем результат
// Это показывает реальный запрос, посланный к MySQL, а также ошибку. Удобно при отладке.
if (!$result) {
    $message  = 'Неверный запрос: ' . mysql_error() . "\n";
    $message .= 'Запрос целиком: ' . $query;
    die($message);
}

// Используем результат
// Попытка напечатать $result не выведет информацию, которая в нем хранится
// Необходимо использовать какую-либо mysql-функцию, работающую с результатом запроса
// См. также mysql_result(), mysql_fetch_array(), mysql_fetch_row() и т.п.
while ($row = mysql_fetch_assoc($result)) {
    echo $row['firstname'];
    echo $row['lastname'];
    echo $row['address'];
    echo $row['age'];
}

// Освобождаем ресурсы, ассоциированные с результатом
// Это делается автоматически в конце скрипта
mysql_free_result($result);
?>

Смотрите также

  • mysql_connect() - Открывает соединение с сервером MySQL
  • mysql_error() - Возвращает текст ошибки последней операции с MySQL
  • mysql_real_escape_string() - Экранирует специальные символы в строках для использования в выражениях SQL
  • mysql_result() - Возвращает данные результата запроса
  • mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_unbuffered_query() - Посылает запрос MySQL без авто-обработки результата и его буферизации


Экранирует специальные символы в строках для использования в выражениях SQL

  • « mysql_query
  • mysql_result »
  • PHP Manual
  • MySQL
  • Экранирует специальные символы в строках для использования в выражениях SQL

mysql_real_escape_string

(PHP 4 >= 4.3.0, PHP 5)

mysql_real_escape_string — Экранирует специальные символы в строках для использования в выражениях SQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_real_escape_string()
  • PDO::quote()

Описание

mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier = NULL ] ) : string

Экранирует специальные символы в unescaped_string, принимая во внимание кодировку соединения, таким образом, что результат можно безопасно использовать в SQL-запросе в функции mysql_query(). Если вставляются бинарные данные, то к ним так же необходимо применять эту функцию.

mysql_real_escape_string() вызывает библиотечную функцию MySQL mysql_real_escape_string, которая добавляет обратную косую черту к следующим символам: \x00, \n, \r, \, ', " и \x1a.

Эта функция должна всегда (за несколькими исключениями) использоваться для того, чтобы обезопасить данные, вставляемые в запрос перед отправкой его в MySQL.

Предостережение

Безопасность: кодировка символов по умолчанию

Кодировка символов должна устанваливаться как на сервере, так и с помощью функции mysql_set_charset(), чтобы влиять на поведение mysql_real_escape_string(). Подробнее описано в разделе кодировка символов.

Список параметров

unescaped_string

Экранируемая строка.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает строку, в которой экранированы все необходимые символы, или FALSE в случае ошибки.

Ошибки

Запуск этой функции без существующего соединения с MySQL вызовет ошибку уровня E_WARNING. Данную функцию можно запускать только если есть соединение сMySQL.

Примеры

Пример #1 Простой пример использования mysql_real_escape_string()

<?php
// Соединение
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

// Запрос
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            mysql_real_escape_string($user),
            mysql_real_escape_string($password));
?>

Пример #2 Пример использования mysql_real_escape_string() без наличия соединения

Этот пример показывает, что произойдет, если вызвать эту функцию без наличия соединения с MySQL.

<?php
// Коннекта к MySQL нет

$lastname  = "O'Reilly";
$_lastname = mysql_real_escape_string($lastname);

$query = "SELECT * FROM actors WHERE last_name = '$_lastname'";

var_dump($_lastname);
var_dump($query);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: mysql_real_escape_string(): No such file or directory in /this/test/script.php on line 5
Warning: mysql_real_escape_string(): A link to the server could not be established in /this/test/script.php on line 5

bool(false)
string(41) "SELECT * FROM actors WHERE last_name = ''"

Пример #3 Пример взлома с использованием SQL-инъекции

<?php
// Мы никак не проверили переменную $_POST['password'],
// а она может содержать совсем не то, что мы ожидали. Например:
$_POST['username'] = 'aidan';
$_POST['password'] = "' OR ''='";

// посылаем запрос, чтобы проверить имя и пароль пользователя
$query = "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'";
mysql_query($query);

// посмотрим, какой запрос будет отправлен в MySQL:
echo $query;
?>

Запрос, который будет отправлен в MySQL:

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''

Это позволит кому угодно войти в систему без пароля.

Примечания

Замечание:

Функцию mysql_real_escape_string() можно использовать только после того, как установлено соединение с MySQL. В противном случае возникнет ошибка уровня E_WARNING, а функция возвратит FALSE. Если link_identifier не указан, используется последнее открытое соединение.

Замечание:

Если magic_quotes_gpc включены, то сначала данные следует обработать функцией stripslashes(). Если данную функцию применить к уже проэкранированным данным, то данные будут проэкранированы дважды.

Замечание:

Если не пользоваться этой функцией, то запрос становится уязвимым для взлома с помощью SQL-инъекций.

Замечание: mysql_real_escape_string() не экранирует символы % и _. Эти знаки являются масками групп символов в операторах MySQL LIKE, GRANT и REVOKE.

Смотрите также

  • mysql_set_charset() - Устанавливает кодировку клиента
  • mysql_client_encoding() - Возвращает кодировку соединения
  • addslashes() - Экранирует строку с помощью слешей
  • stripslashes() - Удаляет экранирование символов
  • Директива magic_quotes_gpc
  • Директива magic_quotes_runtime


Возвращает данные результата запроса

  • « mysql_real_escape_string
  • mysql_select_db »
  • PHP Manual
  • MySQL
  • Возвращает данные результата запроса

mysql_result

(PHP 4, PHP 5)

mysql_result — Возвращает данные результата запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_data_seek() в связке с
mysqli_field_seek() и
mysqli_fetch_field()
  • PDOStatement::fetchColumn()

Описание

mysql_result ( resource $result , int $row [, mixed $field = 0 ] ) : string

Возвращает содержимое одного поля из набора результата MySQL.

Работая с большими результатами запросов, следует использовать одну из функций, обрабатывающих сразу целый ряд результата (указаны ниже). Так как эти функции возвращают значение нескольких ячеек сразу, они НАМНОГО быстрее mysql_result(). Кроме того, учтите, что указание численного смещения работает намного быстрее, чем указание колонки, или колонки с таблицей через точку.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

row

Номер получаемого ряда из результата. Нумерация рядов начинается с 0.

field

Имя или смещение получаемого поля.

Может быть как смещением поля, именем поля, так и именем поля вместе с таблицей (таблица.поле). Если для поля был указан псевдоним ('select foo as bar from...'), используйте его вместо имени самого поля. Если не указан, возвращается первое поле.

Возвращаемые значения

Содержимое одного поля из набора результата MySQL в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования mysql_result()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
if (!mysql_select_db('database_name')) {
    die('Ошибка выбора базы данных: ' . mysql_error());
}
$result = mysql_query('SELECT name FROM work.employee');
if (!$result) {
    die('Ошибка выполнения запроса:' . mysql_error());
}
echo mysql_result($result, 2); // выведет имя третьего сотрудника

mysql_close($link);
?>

Примечания

Замечание:

Вызовы функции mysql_result() не должны смешиваться с другими функциями, работающими с результатом запроса.

Смотрите также

  • mysql_fetch_row() - Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • mysql_fetch_array() - Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
  • mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_fetch_object() - Обрабатывает ряд результата запроса и возвращает объект


Выбирает базу данных MySQL

  • « mysql_result
  • mysql_set_charset »
  • PHP Manual
  • MySQL
  • Выбирает базу данных MySQL

mysql_select_db

(PHP 4, PHP 5)

mysql_select_db — Выбирает базу данных MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_select_db()
  • PDO::__construct() (раздел о dsn)

Описание

mysql_select_db ( string $database_name [, resource $link_identifier = NULL ] ) : bool

Выбирает для работы указанную базу данных на сервере, на который ссылается переданный дескриптор соединения. Каждый последующий вызов функции mysql_query() будет работать с выбранной базой данных.

Список параметров

database_name

Имя выбираемой базы данных.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_select_db()

<?php

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Не удалось соединиться : ' . mysql_error());
}

// выбираем foo в качестве текущей базы данных
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
    die ('Не удалось выбрать базу foo: ' . mysql_error());
}
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_selectdb()

Смотрите также

  • mysql_connect() - Открывает соединение с сервером MySQL
  • mysql_pconnect() - Устанавливает постоянное соединение с сервером MySQL
  • mysql_query() - Посылает запрос MySQL


Устанавливает кодировку клиента

  • « mysql_select_db
  • mysql_stat »
  • PHP Manual
  • MySQL
  • Устанавливает кодировку клиента

mysql_set_charset

(PHP 5 >= 5.2.3)

mysql_set_charset — Устанавливает кодировку клиента

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_set_charset()
  • PDO: Добавлением charset в строку соединения, например charset=utf8

Описание

mysql_set_charset ( string $charset [, resource $link_identifier = NULL ] ) : bool

Устанавливает кодировку по умолчанию для текущего соединения.

Список параметров

charset

Корректное название кодировки.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Данная функция требует MySQL версии 5.0.7 или выше.

Замечание:

Это наиболее предпочитаемый способ для смены кодировки. Использование mysql_query() в этих целях (например SET NAMES utf8) не рекомендуется. Смотрите раздел кодировка символов в MySQL для подробной информации.

Смотрите также

  • Настройка кодировок символов в MySQL
  • » Список поддерживаемых MySQL кодировок
  • mysql_client_encoding() - Возвращает кодировку соединения


Возвращает текущий статус сервера

  • « mysql_set_charset
  • mysql_tablename »
  • PHP Manual
  • MySQL
  • Возвращает текущий статус сервера

mysql_stat

(PHP 4 >= 4.3.0, PHP 5)

mysql_stat — Возвращает текущий статус сервера

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_stat()
  • PDO::getAttribute(PDO::ATTR_SERVER_INFO)

Описание

mysql_stat ([ resource $link_identifier = NULL ] ) : string

mysql_stat() возвращает текущий статус сервера.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает строку с данными аптайма, количества потоков, запросов, количеством открытых таблиц и таблиц с сброшенным внутренним кэшем (flush tables), а также количество запросов в секунду. Для получения полного списка других переменных вам необходимо будет использовать SQL-запрос SHOW STATUS. Если передан некорректный link_identifier, то будет возвращен NULL.

Примеры

Пример #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
)

Пример #2 Альтернативный пример использования mysql_stat()

<?php
$link   = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$result = mysql_query('SHOW STATUS', $link);
while ($row = mysql_fetch_assoc($result)) {
    echo $row['Variable_name'] . ' = ' . $row['Value'] . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

back_log = 50
basedir = /usr/local/
bdb_cache_size = 8388600
bdb_log_buffer_size = 32768
bdb_home = /var/db/mysql/
bdb_max_lock = 10000
bdb_logdir =
bdb_shared_data = OFF
bdb_tmpdir = /var/tmp/
...

Смотрите также

  • mysql_get_server_info() - Возвращает информацию о сервере MySQL
  • mysql_list_processes() - Возвращает список процессов MySQL


Возвращает имя таблицы, содержащей указанное поле

  • « mysql_stat
  • mysql_thread_id »
  • PHP Manual
  • MySQL
  • Возвращает имя таблицы, содержащей указанное поле

mysql_tablename

(PHP 4, PHP 5)

mysql_tablename — Возвращает имя таблицы, содержащей указанное поле

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • SQL запрос: SHOW TABLES

Описание

mysql_tablename ( resource $result , int $i ) : string

Возвращает имя таблицы из result.

Данная функция устарела. Вместо нее рекомендуется использование mysql_query() с SQL-запросом SHOW TABLES [FROM db_name] [LIKE 'pattern'].

Список параметров

result

Дескриптор результата типа resource, полученный из вызова mysql_list_tables().

i

Целочисленный индекс (номер ряда/таблицы)

Возвращаемые значения

Имя таблицы в случае успеха или FALSE в случае возникновения ошибки.

Используйте функцию mysql_tablename() для работы с результатом запроса, либо любую другую функцию, способную это делать, например, mysql_fetch_array().

Список изменений

Версия | Описание
5.5.0 | Функция mysql_tablename() устарела, и вызывает ошибку уровня E_DEPRECATED.

Примеры

Пример #1 Пример использования mysql_tablename()

<?php
mysql_connect("localhost", "mysql_user", "mysql_password");
$result = mysql_list_tables("mydb");
$num_rows = mysql_num_rows($result);
for ($i = 0; $i < $num_rows; $i++) {
    echo "Table: ", mysql_tablename($result, $i), "\n";
}

mysql_free_result($result);
?>

Примечания

Замечание:

Для определения количества таблиц в результате запроса можно использовать функцию mysql_num_rows().

Смотрите также

  • mysql_list_tables() - Возвращает список таблиц базы данных MySQL
  • mysql_field_table() - Возвращает название таблицы, которой принадлежит указанное поле
  • mysql_db_name() - Возвращает название базы данных из вызова к mysql_list_dbs


Возвращает идентификатор текущего потока

  • « mysql_tablename
  • mysql_unbuffered_query »
  • PHP Manual
  • MySQL
  • Возвращает идентификатор текущего потока

mysql_thread_id

(PHP 4 >= 4.3.0, PHP 5)

mysql_thread_id — Возвращает идентификатор текущего потока

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_thread_id()

Описание

mysql_thread_id ([ resource $link_identifier = NULL ] ) : int

mysql_thread_id() возвращает идентификатор текущего потока. Если соединение потеряно и вы пересоединились с помощью mysql_ping(), то идентификатор потока изменится. Это означает, что вам не следует получать данный идентификатор и хранить его для дальнейшего использования. Вызывайте функцию тогда, когда он вам нужен.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Идентификатор потока в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_thread_id()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$thread_id = mysql_thread_id($link);
if ($thread_id){
    printf("Идентификатор текущего потока: %d\n", $thread_id);
}
?>

Результатом выполнения данного примера будет что-то подобное:

Идентификатор текущего потока: 73

Смотрите также

  • mysql_ping() - Проверяет соединение с сервером и пересоединяется при необходимости
  • mysql_list_processes() - Возвращает список процессов MySQL


Посылает запрос MySQL без авто-обработки результата и его буферизации

  • « mysql_thread_id
  • Mysqlnd »
  • PHP Manual
  • MySQL
  • Посылает запрос MySQL без авто-обработки результата и его буферизации

mysql_unbuffered_query

(PHP 4 >= 4.0.6, PHP 5)

mysql_unbuffered_query — Посылает запрос MySQL без авто-обработки результата и его буферизации

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • See: Буферизованные и не буферизованные запросы

Описание

mysql_unbuffered_query ( string $query [, resource $link_identifier = NULL ] ) : resource

mysql_unbuffered_query() посылает запрос MySQL query без автоматической обработки и буферизации её результата, в отличие от функции mysql_query(). Это позволяет сохранить достаточно большое количество памяти для SQL-запросов, возвращающих большое количество данных. Кроме того, вы можете начать работу с полученными данными сразу после того, как первый ряд был получен: вам не приходится ждать до конца SQL-запроса. При использовании mysql_unbuffered_query() с несколькими соединениями MySQL, вы должны указать необязательный параметр link_identifier.

Список параметров

query

Запускаемый SQL-запрос.

Данные в запросе должны быть корректно проэкранированы.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Для SELECT, SHOW, DESCRIBE и EXPLAIN запросов mysql_unbuffered_query() возвращает resource в случае успеха, или FALSE в случае ошибки.

Для остальных типов SQL-запросов, UPDATE, DELETE, DROP и т.д., mysql_unbuffered_query() возвращает TRUE в случае успеха и FALSE в случае ошибки.

Примечания

Замечание:

Однако, плюсы использования mysql_unbuffered_query() имеют свою цену: вы не можете использовать функции mysql_num_rows() и mysql_data_seek() с результатом запроса, возвращённым этой функцией, пока не будут получены все ряды. Кроме того, вы должны будете обработать все ряды запроса до отправки нового запроса, используя тот же link_identifier.

Смотрите также

  • mysql_query() - Посылает запрос MySQL


Встроенный драйвер MySQL

  • Введение
  • Обзор
  • Установка
  • Настройка во время выполнения
  • Несовместимости
  • Постоянное соединение
  • Statistics
  • Замечания
  • Управление памятью
  • API для плагинов к встроенному драйверу MySQL
    • Сравнение плагинов mysqlnd с MySQL Proxy
    • Получение API плагинов mysqlnd
    • Архитектура плагинов MySQL Native Driver
    • API плагинов mysqlnd
    • Начинаем разработку плагина mysqlnd


Введение

MySQL Native Driver является заменой для клиентской библиотеки MySQL (libmysqlclient). MySQL Native Driver является частью официальных исходных кодов PHP начиная с PHP 5.3.0.

Модули баз данных MySQL mysqli и PDO MYSQL соединяются с сервером MySQL. В прошлом это делалось с помощью модуля, использующего сервисы, которые предоставляет клиентская библиотека MySQL. Такие модули компилировались с клиентской библиотекой MySQL для того, чтобы использовать собственный клиент-серверный протокол.

С появлением MySQL Native Driver появилась альтернатива, так как модули баз данных могут компилироваться для использования MySQL Native Driver вместо клиентской библиотеки MySQL.

MySQL Native Driver написан на C в виде модуля PHP.


Обзор

Чем он не является

Хотя встроенный драйвер MySQL написан как модуль PHP, важно понимать, что он не предоставляет программисту PHP нового API. API к базе данных MySQL для программиста предоставляются модулями MySQL, mysqli и PDO MYSQL. Эти модули могут использовать возможности встроенного драйвера MySQL для общения с сервером MySQL. Таким образом, вы не должны думать о встроенном драйвере MySQL как об API.

Зачем его использовать?

Использование встроенного драйвера MySQL дает некоторые плюсы относительно клиентской библиотеки MySQL.

Более старая клиентская библиотека MySQL была написана MySQL AB (сейчас Oracle Corporation) и выпускалась под лицензией MySQL. В конечном итоге это привело к тому, что поддержка MySQL в PHP была по умолчанию выключена. С другой стороны, встроенный драйвер MySQL был разработан как часть проекта PHP, и выпущен под лицензией PHP. Это снимает вопросы с лицензированием, бывшие проблемными в прошлом.

Также, в прошлом вам требовалось собирать модули, работающие с базой данных MySQL, рядом с клиентской библиотекой MySQL. Обычно это означало, что на машине, на которой вы разрабатывали PHP-код, требовался установленный MySQL. К тому же, когда PHP-приложение работало, модули, работающие с MySQL, могли обращаться к клиентской библиотеке MySQL во время работы, так что ее файл должен был быть установлен в вашей системе. Со встроенным драйвером MySQL эта проблема исчезла, поскольку он является частью стандартного дистрибутива. Таким образом, вам не потребуется установленный MySQL, чтобы собирать PHP или использовать работающие с базой данных PHP-приложения.

Поскольку встроенный драйвер MySQL написан как модуль PHP, он тесно связан с работой PHP. Это приводит к приросту эффективности, особенно в плане использования оперативной памяти, поскольку драйвер использует систему управления памятью PHP. Он также поддерживает настройки лимита памяти PHP. Использование встроенного драйвера MySQL приводит к сопоставимой или даже лучшей производительности, чем в случае клиентской библиотеки MySQL, поскольку всегда гарантируется наиболее эффективное использование памяти. Одним из примеров эффективности работы с памятью является то, что при использовании клиентской библиотеки MySQL каждая строка хранится в памяти дважды, тогда как в случае встроенного драйвера MySQL каждая строка хранится в памяти только один раз.

Замечание: Контроль использования памяти

Так как встроенный драйвер MySQL использует систему контроля памяти PHP, используемая им память может быть отслежена с помощью функции memory_get_usage(). Это нельзя сделать с помощью libmysqlclient, так как он использует функцию языка Си malloc().

Особые возможности

Встроенный драйвер MySQL также предоставляет некоторые особые возможности, недоступные при использовании расширениями клиентской библиотеки MySQL. Список этих возможностей приведен ниже:

  • Улучшены постоянные соединения

  • Особая функция mysqli_fetch_all()

  • Вызов статистики производительности:
mysqli_get_cache_stats(),
mysqli_get_client_stats(),
mysqli_get_connection_stats()

Статистика производительности может быть очень полезна для нахождения узких мест в производительности.

Встроенный драйвер MySQL также поддерживает постоянные соединения при использовании модуля mysqli.

Поддержка SSL

Встроенный драйвер MySQL поддерживает SSL с версии PHP 5.3.3

Поддержка протокола с использованием сжатия

Начиная с PHP 5.3.2, встроенный драйвер MySQL поддерживает клиент-серверный протокол с использованием сжатия. Этой поддержки нет в версиях 5.3.0 и 5.3.1. Модули, например, ext/mysql или ext/mysqli, настроенные на использование встроенного драйвера MySQL, могут также воспользоваться этой возможностью. Обратите внимание, что PDO_MYSQL НЕ поддерживает сжатие при использовании совместно с mysqlnd.

Поддержка именованных каналов

Поддержка именованных каналов для Windows была добавлена в PHP версии 5.4.0.


Установка

Список изменений

Список изменений
Версия | Описание
5.3.0 | Был добавлен встроенный драйвер MySQL, поддерживающий все MySQL-модули (то есть mysql, mysqli и PDO_MYSQL). Указание параметра mysqlnd в соответствующий параметр конфигурации включает эту поддержку.
5.4.0 | Встроенный драйвер MySQL теперь по умолчанию работает для всех MySQL-модулей (то есть mysql, mysqli и PDO_MYSQL). Указание параметра mysqlnd при конфигурации теперь необязательно.
5.5.0 | Добавлена поддержка плагина аутентификации SHA-256.

Установка в Unix

Модули для работы с MySQL должны быть сконфигурированы для использования клиентской библиотеки MySQL. Для работы встроенного драйвера MySQL требуется собрать PHP, указав, что модули для работы с MySQL должны быть скомпилированы с поддержкой встроенного драйвера MySQL. Это делается с помощью параметров конфигурации перед сборкой PHP из исходного кода.

Например, чтобы собрать модули MySQL mysqli и PDO MYSQL, использующие встроенный драйвер MySQL, должна быть выполнена следующая команда:

./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
[other options]

Установка в Windows

В официальных Windows-дистрибутивах PHP 5.3 и выше встроенный драйвер MySQL включен по умолчанию, так что никаких дополнительных настроек для его использования не требуется. В этом случае все модули для работы с MySQL будут использовать встроенный драйвер MySQL.

Поддержка плагина аутентификации SHA-256

Для встроенного драйвера MySQL требуется подключить и включить OpenSSL функционал PHP, чтобы подключаться к MySQL через аккаунты, использующие плагин аутентификации MySQL SHA-256. Например, можно настроить PHP следующим образом:

./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl
[other options]


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации встроенного драйвера MySQL
Имя | По умолчанию | Место изменения | Список изменений
mysqlnd.collect_statistics | "1" | PHP_INI_SYSTEM | Доступен с PHP 5.3.0.
mysqlnd.collect_memory_statistics | "0" | PHP_INI_SYSTEM | Доступен с PHP 5.3.0.
mysqlnd.debug | "" | PHP_INI_SYSTEM | Доступен с PHP 5.3.0.
mysqlnd.log_mask | 0 | PHP_INI_ALL | Доступен с PHP 5.3.0
mysqlnd.mempool_default_size | 16000 | PHP_INI_ALL | Доступен с PHP 5.3.3
mysqlnd.net_read_timeout | ""86400"" | PHP_INI_ALL | Доступен с PHP 5.3.0. До PHP 7.2.0 значением по умолчанию "31536000", а местом изменения было PHP_INI_SYSTEM
mysqlnd.net_cmd_buffer_size | 5.3.0 - "2048", 5.3.1 - "4096" | PHP_INI_SYSTEM | Доступен с PHP 5.3.0.
mysqlnd.net_read_buffer_size | "32768" | PHP_INI_SYSTEM | Доступен с PHP 5.3.0.
mysqlnd.sha256_server_public_key | "" | PHP_INI_PERDIR | Доступен с PHP 5.5.0.
mysqlnd.trace_alloc | "" | PHP_INI_SYSTEM | Доступен с PHP 5.5.0.
mysqlnd.fetch_data_copy | 0 | PHP_INI_ALL | Доступен с PHP 5.6.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

mysqlnd.collect_statistics boolean

Включает сбор различной статистики клиента, доступ к которой можно
получить с помощью mysqli_get_client_stats(),
mysqli_get_connection_stats(),
mysqli_get_cache_stats() и которая отображается
в разделе mysqlnd вывода функции
phpinfo().

Этот параметр конфигурации включает всю статистику встроенного драйвера MySQL, кроме относящейся к работе с оперативной памятью.

mysqlnd.collect_memory_statistics boolean

Включает сбор различной статистики оперативной памяти, доступ к
которой можно получить с помощью mysqli_get_client_stats(),
mysqli_get_connection_stats(),
mysqli_get_cache_stats() и которая отображается
в разделе mysqlnd вывода функции
phpinfo().

Этот параметр конфигурации включает всю статистику, относящуюся к работе с оперативной памятью, в общий набор данных статистики встроенного драйвера MySQL.

mysqlnd.debug string

Записывает команды из всех расширений, использующих mysqlnd, в указанный файл с логами.

Формат параметра следующий: mysqlnd.debug = "option1[,parameter_option1][:option2[,parameter_option2]]".

Возможны нижеуказанные значения для строки форматирования:

  • A[,file] - добавляет вывод трассировки в указанный файл. Также каждый раз проверяет успешность записи данных. Это реализовано путем закрытия и повторного открытия файла (что достаточно медленно). Дает гарантию целостности файла с логами в случае ошибки приложения.

  • a[,file] - добавляет вывод трассировки в указанный файл.

  • d - Включает вывод из макроса DBUG_<N> для текущего состояния. Может быть дополнено списком ключевых слов, чтобы выбрать вывод только содержащего эти ключевые слова макросов DBUG. Пустой список ключевых слов подразумевает вывод всех для макросов.

  • f[,functions] - ограничивает действия отладчика указанным списком функций. Пустой список функций подразумевает выбор всех функций.

  • F - помечает вывод каждой строчки отладчика названием исходного файла, содержащего код, вызвавший вывод.

  • i - помечает вывод каждой строчки отладчика PID текущего процесса.

  • L - помечает вывод каждой строчки отладчика названием исходного файла, вызвавшего вывод, и номером строки в ней.

  • n - помечает вывод каждой строчки отладчика уровнем вложенности текущей функции.

  • o[,file] - сходно с a[,file], но перезаписывает старый файл, а не дописывает его.

  • O[,file] - сходно с A[,file] но перезаписывает старый файл, а не дописывает его.

  • t[,N] - включает контроль функций во время трассировки. Максимальный уровень вложенности определен N и по умолчанию равен 200.

  • x - этот параметр активирует профилирование.

  • m - отслеживать вызовы, связанные с выделениями и высвобождением памяти.

Пример:

d:t:x:O,/tmp/mysqlnd.trace

Замечание:

Эта возможность доступна только для отладочной сборки PHP. Работает на Microsoft Windows при использовании отладочной сборки PHP, если PHP был собран с помощью Microsoft Visual C версии 9 и выше.

mysqlnd.log_mask integer

Определяет, какие запросы будут журналироваться. Значение по умолчанию - 0, что отключает журналирование. Значение параметра - только целое число, константы PHP использовать нельзя. Например, при значении 48 (16 + 32) в журнал будут записываться медленные запросы, которые либо используют неподходящие индексы (SERVER_QUERY_NO_GOOD_INDEX_USED = 16), либо не используют их вообще SERVER_QUERY_NO_INDEX_USED = 32). При значении 2043 (1 + 2 + 8 + ... + 1024) в журнал будут записываться все типы медленных запросов.

Используются следующие типы запросов: SERVER_STATUS_IN_TRANS=1, SERVER_STATUS_AUTOCOMMIT=2,
SERVER_MORE_RESULTS_EXISTS=8, SERVER_QUERY_NO_GOOD_INDEX_USED=16, SERVER_QUERY_NO_INDEX_USED=32,
SERVER_STATUS_CURSOR_EXISTS=64, SERVER_STATUS_LAST_ROW_SENT=128, SERVER_STATUS_DB_DROPPED=256,
SERVER_STATUS_NO_BACKSLASH_ESCAPES=512, and SERVER_QUERY_WAS_SLOW=1024.

mysqlnd.mempool_default_size integer

Default size of the mysqlnd memory pool, which is used by result sets.

mysqlnd.net_read_timeout integer

mysqlnd и клиентская библиотека MySQL, libmysqlclient, используют разные сетевые API. mysqlnd использует потоки PHP, тогда как libmysqlclient - собственную обертку над сетевыми вызовами операционной системы. В PHP по умолчанию выставлен 60-секундный таймаут для потоков. Этот параметр выставляется в php.ini директивой default_socket_timeout. По умолчанию это относится ко всем потокам, которым не установлено другое значение таймаута. mysqlnd не устанавливал других значений, поэтому подключения долго выполняющихся запросов могут быть отключены после default_socket_timeout секунд с ошибкой 2006 - MySQL Server has gone away. Клиентская библиотека MySQL устанавливает таймаут по умолчанию равным 24 * 3600 секунд (1 день) и ждет возникновения других таймаутов, таких как таймаут TCP/IP. Теперь mysqlnd использует такой же очень долгий таймаут. Это значение можно изменить через новую директиву php.ini - mysqlnd.net_read_timeout. mysqlnd.net_read_timeout будет использоваться любым расширением (ext/mysql, ext/mysqli, PDO_MySQL), использующим mysqlnd. mysqlnd указывает потокам PHP использовать mysqlnd.net_read_timeout. Пожалуйста, обратите внимание, что могут быть небольшие различия между MYSQL_OPT_READ_TIMEOUT в клиентской библиотеке MySQL и потоках PHP, например, судя по документации, MYSQL_OPT_READ_TIMEOUT работает только для TCP/IP-подключений и, вплоть до MySQL 5.1.2, только под Windows. Потоки PHP могут не иметь подобных ограничений. В случае сомнений просьба сверяться с документацией потоков.

mysqlnd.net_cmd_buffer_size integer

mysqlnd резервирует внутренний командно-сетевой буфер размером mysqlnd.net_cmd_buffer_size (в php.ini) байт для каждого соединения. Если команда клиент-серверного протокола MySQL, например, COM_QUERY (обычный запрос), не умещается в буфер, mysqlnd увеличит буфер до размера, необходимого для отправки команды. Каждый раз, когда буфер был увеличен, переменная статистики command_buffer_too_small будет увеличена на один.

Если mysqlnd приходится увеличивать буфер сверх его заданного размера в mysqlnd.net_cmd_buffer_size байт для большинства соединений, вам следует обдумать необходимость увеличения размера по умолчанию, чтобы избежать повторных резерваций буфера.

Размер буфера по умолчанию равен 2048 байт в PHP 5.3.0. В дальнейших версиях значение по умолчанию составляет 4096 байт.

Рекомендуется устанавливать размер буфера не менее 4096 байт, поскольку mysqlnd также использует его при считывании определенных пакетов данных из MySQL. В PHP 5.3.0 mysqlnd не станет увеличивать размер буфера, если MySQL пришлет пакет большего размера, чем текущий размер буфера. Как следствие, mysqlnd будет не в состоянии расшифровать пакет и клиентское приложение получит ошибку. В PHP 5.3.0 есть только два случая, в которых пакет может быть больше указанных по умолчанию в mysqlnd.net_cmd_buffer_size 2048 байт: в пакете передается очень длинное сообщение об ошибке или пакет содержит метаданные из COM_LIST_FIELD (mysql_list_fields()) и эти данные получаются из строкового столбца с очень длинным значением по умолчанию (более 1900 байт).

Начиная с PHP 5.3.2 mysqlnd не дает установить значение буфера менее 4096 байт.

Это значение также может быть установлено функцией mysqli_options(link, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size).

mysqlnd.net_read_buffer_size integer

Максимальный размер части данных при считывании, в байтах, при обработке тела командного пакета MySQL. Клиент-серверный протокол MySQL оборачивает все свои команды в пакеты. Пакет состоит из небольшого заголовка и тела, содержащего непосредственно данные команды. Размер тела закодирован в заголовке. mysqlnd считывает тело частями по MIN(header.size, mysqlnd.net_read_buffer_size) байт. Если размер тела пакета больше, чем mysqlnd.net_read_buffer_size байт, mysqlnd будет вызывать read() несколько раз.

Это значение также может быть установлено функцией mysqli_options(link, MYSQLI_OPT_NET_READ_BUFFER_SIZE, size).

mysqlnd.sha256_server_public_key string

Данная опция относится к плагину аутентификации SHA-256 и содержит путь к файлу с публичным ключом RSA MySQL-сервера..

Клиент может как не указывать публичный ключ RSA, указать его с помощью данной опции, либо установить ключ во время выполнения с помощью функции mysqli_options(). Если публичный ключ RSA не был передан клиентом, то ключ будет получен в результате стандартной процедуры аутентификации плагина аутентификации SHA-256.

mysqlnd.trace_alloc string

mysqlnd.fetch_data_copy integer

Принуждает копировать наборы из внутреннего буфера наборов в PHP переменные вместо использования логики с ссылками и "копированием при записи" по умолчанию. Смотрите реализация управления памятью для получения большей информации.

Копирование результирующих наборов вместо PHP переменных ссылающихся на них позволяют выделять память для PHP переменных заранее. В зависимости от пользовательского кода, реальных запросов к базе данных и размеров их результатов, можно снизить потребление памяти mysqlnd.

Не применяйте, если используется PDO_MySQL. В PDO_MySQL еще не добавлена поддержка этого нового режима.


Несовместимости

Встроенный драйвер MySQL (mysqlnd), в большинстве случаев, совместим с клиентской библиотекой MySQL libmysql. Этот раздел описывает несовместимости между этими библиотеками.

  • Значения в полях данных типа bit в библиотеке libmysql возвращаются как бинарные строки (например, "\0" или "\x1F"), а в библиотеке mysqlnd - как десятичные строки (например, "0" или "31"). Если необходимо, чтобы код был совместим с обеими библиотеками, то всегда из MySQL возвращайте данные из полей типа bit в виде чисел, используя подобный запрос: SELECT bit + 0 FROM table.


Постоянное соединение

Использование постоянных соединений

Если mysqli используется с mysqlnd,\ при создании постоянного соединения оно генерирует на сервере запрос COM_CHANGE_USER (mysql_change_user()). Это гарантирует, что при подключении будет повторно произведена авторизация.

Поскольку из-за вызовов COM_CHANGE_USER увеличиваются накладные расходы, возможно отключить такое поведение во время компиляции. В таком случае повторное использование постоянного соединения будет генерировать вызов COM_PING (mysql_ping), для проверки возможности повторного использования соединения.

Генерация вызова COM_CHANGE_USER может быть отключена флагом компиляции MYSQLI_NO_CHANGE_USER_ON_PCONNECT. Например:

shell# CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT" ./configure --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql/bin/mysql_config --enable-debug && make clean && make -j6

Или альтернативный вариант:

shell# export CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT"
shell# configure --whatever-option
shell# make clean
shell# make

Обратите внимание, что только mysqli совместно с mysqlnd используют COM_CHANGE_USER. Остальные комбинации модуль-драйвер используют COM_PING при первоначальном использовании постоянного соединения.


Statistics

Using Statistical Data

MySQL Native Driver поддерживает сбор статистики по взаимодействию клиента с сервером. Статистика собирается с двух основных точек:

  • Клиентская статистика

  • Статистика соединения

Если вы используете расширение mysqli, эта статистика доступна с помощью двух функций, обращающихся к API:

  • mysqli_get_client_stats()

  • mysqli_get_connection_stats()

Замечание:

Статистика аггрегируется со всех расширений использующих MySQL Native Driver. К примеру, если подключить и ext/mysql и ext/mysqli через MySQL Native Driver, как вызовы функций ext/mysql так и ext/mysqli будут внесены в общую статистику. Возможность разделить статистику в зависимости от использованного расширения отсутствует. Вы можете сконфигурировать драйвера PDO MySQL, ext/mysql и ext/mysqli для опционального использования MySQL Native Driver. При этом, все три расширения будут изменять статистику.

Доступ к клиентской статистике

Для получения клиентской статистике необходимо выполнить функцию mysqli_get_client_stats(). Функция вызывается без параметров.

Функция возвращает ассоциативный массив, использующий в качестве ключей названия метрик статистики и в качестве значения этих метрик, собственно, значения.

Также клиентская статистика доступна с помощью функции phpinfo().

Доступ к статистике соединения

Для получения статистики соединения, выполните функцию mysqli_get_connection_stats(), передав в качестве параметра ресурс соединения.

Функция возвращает ассоциативный массив, использующий в качестве ключей названия метрик статистики и в качестве значения этих метрик, собственно, значения.

Буферизованные и небуферизованные результирующие наборы

Результирующие наборы могут быть буферизованными и небуферизованными. При использовании настроек по умолчанию, ext/mysql и ext/mysqli работают с буферизованными результирующими наборами при использовании нормальных (не подготовленных) запросов. Буферизованные результирующие наборы кешируются на стороне клиента. После выполнения запроса, все результаты передаются на клиента, где сохраняются в кеше. Преимущество буферизованных запросов в том, что сразу высвобождаются серверные ресурсы, связанные с хранением результирующего набора.

Небуферизованные результирующие наборы, с другой стороны, сохраняются на сервере гораздо дольше. Если вы хотите сократить потребление памяти на клиенте, но при этом нагрузить сервер, используйте небуферизованные результирующие наборы. Если узким местом в вашей системе является сервер баз данных, то вам стоит задуматься о скорейшем перемещении орезультатов на клиента. Обычно клиенты масштабируются гораздо легче, чем сервера БД. Нагрузка ложится не только на память, но и на прочие ресурсы, которые должна поддерживать база данных для обслуживания соединения, такие как открытые файловые дескрипторы и нити исполнения.

Подготовленные запросы по умолчанию используют небуферизованные результирующие наборы. В любом случае, вы можете использовать функцию mysqli_stmt_store_result() для буферизации результатов.

Статистика возвращаемая MySQL Native Driver

Следующая таблица демонстрирует список возвращаемой функциями mysqli_get_client_stats() и mysqli_get_connection_stats() статистики.

Статистика mysqlnd: Сеть
Метрика | Область применения | Описание | Замечания
bytes_sent | Соединение | Количество байт переданных от PHP на сервер MySQL | Может использоваться для проверки эффективности протокола сжатия
bytes_received | Соединение | Количество байт полученных от сервера MySQL | Может использоваться для проверки эффективности протокола сжатия
packets_sent | Соединение | Количество пакетов посланых от клиента серверу MySQL | Используется для отладки реализации клиент-серверного протокола
packets_received | Соединение | Количество пакетов принятых клиентом от сервера MySQL | Используется для отладки реализации клиент-серверного протокола
protocol_overhead_in | Соединение | накладные расходы клиент-серверного протокола MySQLв байтах для входящего траффика. на данный момент только заголовок пакета (4 байта) считается за накладные расходы. protocol_overhead_in = packets_received * 4 | Используется для отладки реализации клиент-серверного протокола
protocol_overhead_out | Соединение | MySQL Client Server protocol overhead in bytes for outgoing traffic. Currently only the Packet Header (4 bytes) is considered as overhead. protocol_overhead_out = packets_sent * 4 | Используется для отладки реализации клиент-серверного протокола
bytes_received_ok_packet | Соединение | Общее количество байт принятых ОК-пакетов клиент-серверного протокола MySQL. OK-пакеты могут содержать статусные сообщения. Длина статусных сообщений может меняться, следовательно размер ОК-пакетов не фиксирована. | Используется для отладки реализации клиент-серверного протокола. Обратите внимание, что общий размер включает в себя заголовочный пакет, размером 4 байта.
packets_received_ok | Соединение | Количество принятых OK-пакетов | Используется для отладки реализации клиент-серверного протокола. Обратите внимание, что общий размер включает в себя заголовочный пакет, размером 4 байта.
bytes_received_eof_packet | Соединение | Общее количество байт принятых EOF-пакетов. Размер EOF-пакета может изменяться в зависимости от версии сервера. Также, EOF-пакеты могут использоваться как транспорт для сообщений об ошибках. | Используется для отладки реализации клиент-серверного протокола. Обратите внимание, что общий размер включает в себя заголовочный пакет, размером 4 байта.
packets_received_eof | Соединение | Количество принятых EOF-пакетов. Как и для прочей статистики по пакетам, это число может увеличиваться каждый раз, когда PHP не получает ожидаемый пакет, а, к примеру, получае сообщение об ошибке. | Используется для отладки реализации клиент-серверного протокола. Обратите внимание, что общий размер включает в себя заголовочный пакет, размером 4 байта.
bytes_received_rset_header_packet | Соединение | Общее количество байт принятых заголовочных пакетов результирующих наборов. Размер пакетов зависит от полезной нагрузки (LOAD LOCAL INFILE, INSERT, UPDATE, SELECT, сообщение об ошибке). | Используется для отладки реализации клиент-серверного протокола. Обратите внимание, что общий размер включает в себя заголовочный пакет, размером 4 байта.
packets_received_rset_header | Соединение | Количество пакетов заголовков результирующих наборов. | Используется для отладки реализации клиент-серверного протокола. Обратите внимание, что общий размер включает в себя заголовочный пакет, размером 4 байта.
bytes_received_rset_field_meta_packet | Соединение | Общий размер в байтах полученных пакетов с метаданными результирующих наборов (информации о столбцах). Естественно размер каждого пакета индивидуален. Эти пакеты могут выступать транспортом для ошибок и EOF-пакетов в случае COM_LIST_FIELDS. | Используется для отладки реализации клиент-серверного протокола. Обратите внимание, что общий размер включает в себя заголовочный пакет, размером 4 байта.
packets_received_rset_field_meta | Соединение | Общее количество полученных пакетов с метаданными результирующих наборов (информации о столбцах). | Используется для отладки реализации клиент-серверного протокола. Обратите внимание, что общий размер включает в себя заголовочный пакет, размером 4 байта.
bytes_received_rset_row_packet | Соединение | Общий размер в байтах полученных пакетов с данными результирующего набора. Эти пакеты могут служить транспортом для ошибок и в качестве EOF-пакетов. Вы можете вычислить количество ошибок и EOF-пакетов отняв rows_fetched_from_server_normal и rows_fetched_from_server_ps от bytes_received_rset_row_packet. | Используется для отладки реализации клиент-серверного протокола. Обратите внимание, что общий размер включает в себя заголовочный пакет, размером 4 байта.
packets_received_rset_row | Соединение | Кодичество пакетов с данными результирующих наборов и их суммарный объем в байтах. | Используется для отладки реализации клиент-серверного протокола. Обратите внимание, что общий размер включает в себя заголовочный пакет, размером 4 байта.
bytes_received_prepare_response_packet | Соединение | Общий размер в байтах ОК-пакетов инициализации подготовленных запросов. (инициализирующие пакеты подготовленных запросов). Эти пакеты могут выступать транспортом для ошибок. Рзмер пакета зависит от версии Mysql: 9 байт для MySQL4.1 и 12 байт начиная с 5.0. Нет надежного способа узнать количество ошибок. Вы можете определить, что случилась ошибка, если, наример, вы работаете с MySQL 5.0 или новее, а bytes_received_prepare_response_packet != packets_received_prepare_response * 12. Также смотрите ps_prepared_never_executed, ps_prepared_once_executed. | Используется для отладки реализации клиент-серверного протокола. Обратите внимание, что общий размер включает в себя заголовочный пакет, размером 4 байта.
packets_received_prepare_response | Соединение | Количество полученных ОК-пакетов для инициализации подготовленных запросов. | Используется для отладки реализации клиент-серверного протокола. Обратите внимание, что общий размер включает в себя заголовочный пакет, размером 4 байта.
bytes_received_change_user_packet | Соединение | Общий размер в байтах полученных пакетов COM_CHANGE_USER. Пакеты могут служить транспортом для ошибок и EOF-пакетов. | Используется для отладки реализации клиент-серверного протокола. Обратите внимание, что общий размер включает в себя заголовочный пакет, размером 4 байта.
packets_received_change_user | Соединение | Количество принятых пакетов COM_CHANGE_USER | Используется для отладки реализации клиент-серверного протокола. Обратите внимание, что общий размер включает в себя заголовочный пакет, размером 4 байта.
packets_sent_command | Соединение | Количество команд посланных от PHP серверу MySQL. Возможность узнать, какие конкретно и в каких количествах посылались команды отсутствует. Лучшее, для чего вы можете использовать эту метрику, это проверять, что посылает команды серверу MySQL и поддержка MySQL в PHP не запрещена. Также отсутствует возможность определить количество ошибок, возникших при отправке этих команд. Единственная опозноваемая ошибка - это command_buffer_too_small (смотрите ниже). | Используется для отладки реализации клиент-серверного протокола
bytes_received_real_data_normal Соединение Количество байт полезной нагрузки извлеченной клиентом PHP из mysqlnd с использованием текстового протокола. Это актуальный размер данных содержащихся в результирующем наборе, которые клиент PHP уже загрузил. Обратите внимание, что хоть возможно mysqlnd забрал и полный результирующий набор с сервера MySQL, но в этой метрике учитываются только данные уже полученные клиентом PHP от mysqlnd. К примеру, следующий код увеличит значение метрики:
$mysqli = new mysqli();
$res = $mysqli->query("SELECT 'abc'");
$res->fetch_assoc();
$res->close();

Каждая операция извлечения увеличивает это число.

Статистика не изменится, если результирующий набор был только буферизован, но не извлечен, как в этом примере:

$mysqli = new mysqli();
$res = $mysqli->query("SELECT 'abc'");
$res->close();

Эта статистика доступна с PHP версии 5.3.4.

bytes_received_real_data_ps | Соединение | Количество байт полезной нагрузки, извлеченной клиентом PHP из mysqlnd используя подготовленные запросы. | Это размер только тех данных, которые были извлечены клиентом PHP. Значение метрики не будет увеличиваться если клиент PHP не будет запрвшивать эти данные. Обратите внимание, что хоть возможно mysqlnd забрал и полный результирующий набор с сервера MySQL, но в этой метрике учитываются только данные уже полученные клиентом PHP от mysqlnd. Также смотрите bytes_received_real_data_normal. Эта метрика доступна с PHP версии 5.3.4.

Результирующий набор

Статистика mysqlnd: результирующий набор
Метрика | Область применения | Описание | Замечания
result_set_queries | Соединение | Количество запросов, по которым был создан результирующий набор. Пример запросов, создающих результирующий набор: SELECT, SHOW. Статистика не будет увеличиваться в случае ошибки чтения заголовочного пакета результирующего набора. | Вы можете использовать эту метрику, как опосредованный счетчик выполненых запросов, например для обнаружения клиента, создающего большую нагрузку на БД.
non_result_set_queries | Соединение | Количество запросов, по которым не был создан результирующий набор. Пример запросов, не создающих результирующий набор: INSERT, UPDATE, LOAD DATA. Статистика не будет увеличиваться в случае ошибки чтения заголовочного пакета результирующего набора. | Вы можете использовать эту метрику, как опосредованный счетчик выполненых запросов, например для обнаружения клиента, создающего большую нагрузку на БД.
no_index_used | Соединение | Количество запросов, создающих результирующий набор, но не использовавших индексы (также смотрите опцию запуска mysqld -log-queries-not-using-indexes). Если вы хотите получать отчеты о подобных запросах, вы можете использовать mysqli_report(MYSQLI_REPORT_INDEX) для того, чтобы ext/mysqli выбрасывал исключение. Если вы предпочитаете просто предупреждение, используйте mysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT).
bad_index_used | Соединение | Количество запросов, создающих результирующий набор, но не использовавших хорошие индексы (также смотрите опцию запуска mysqld -log-slow-queries). | Если вы хотите получать отчеты о подобных запросах, вы можете использовать mysqli_report(MYSQLI_REPORT_INDEX)для того, чтобы ext/mysqli выбрасывал исключение. Если вы предпочитаете просто предупреждение, используйте mysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT)
slow_queries | Соединение | SQL-запросы, выполнявшиеся долешь чем long_query_time секунд и потребовавшие перебора более чем min_examined_row_limit строк. | Не извлекается с помощью mysqli_report()
buffered_sets | Соединение | Количество буферезированных результирующих наборов возвращенных нормальными запросами. Нормальные, здесь и дальше значит не подготовленные. | Примеры вызовов API, буферизующих результирующий набор на клиенте: mysql_query(), mysqli_query(), mysqli_store_result(), mysqli_stmt_get_result(). Буферизация результирующего набора на клиенте гарантирует, что серверные ресурсы будут освобождены так быстро, как возможно и делает позиционирование более простым. Плохая новость в том, что это будет стоит дополнительного расхода памяти на клиенте. Обратите внимание, что mysqlnd (в отличие от клиентской библиотеки MySQL) зависит от ограничений PHP на память, поскольку использует внутренний менеджер памяти PHP. Это является одной из причин, почему memory_get_usage() при использовании mysqlnd показывает большие значение, чем при использовании клиенктской библиотеки MySQL. memory_get_usage() не замеряет потребление памяти клиентской библиотекой MySQL, поскольку он не использует внутренний менеджер памяти PHP.
unbuffered_sets | Соединение | Количество небуферизованных результирующих наборов возвращенных нормальными (не подготовленными) запросами. | Примеры вызовов API, не буферизующих результирующий набор на клиенте: mysqli_use_result()
ps_buffered_sets | Соединение | Количество буферизованных результирующих наборов возвращенных подготовленными запросами. По умолчанию, подготовленные запросы не буферизируются. | Примеры вызовов API, буферизующих результирующий набор на клиенте: mysqli_stmt_store_result
ps_unbuffered_sets | Соединение | Количество небуферизованных результирующих наборов возвращенных подготовленными запросами. | По умолчанию, подготовленные запросы не буферизируются.
flushed_normal_sets Соединение Количество результирующих наборов возвращенных нормальными (не подготовленными) запросами с непрочтенными данными, которые были обнулены прозрачно для вас. Подобное происходит только с небуферизированными результирующими наборами. Небуферизированные результирующие наборы должны быть полностью извлечены, прежде чем будет возможно запустить новый запрос в том же соединении с MySQL, в противном случае произойдет ошибка. Если приложение не извлекло все строки небуферизированного результирующего набора, mysqlnd принудительно извлечет его, чтобы освободить ресурсы сервера. Также смотрите rows_skipped_normal и rows_skipped_ps. Возможные причины, ведущие к принудительному обнулению:

  • Ошибка клиентского приложения

  • Клиент перестал извлекать записи, так как нашел, что искал, но результирующий набор еще не был извлечен до конца

  • Аварийное завершение клиентского приложения

flushed_ps_sets Соединение Количество результирующих наборов возвращенных подготовленными запросами с непрочтенными данными, которые были обнулены прозрачно для вас. Подобное происходит только с небуферизированными результирующими наборами. Небуферизированные результирующие наборы должны быть полностью извлечены, прежде чем будет возможно запустить новый запрос в том же соединении с MySQL, в противном случае произойдет ошибка. Если приложение не извлекло все строки небуферизированного результирующего набора, mysqlnd принудительно извлечет его, чтобы освободить ресурсы сервера. Также смотрите rows_skipped_normal и rows_skipped_ps. Возможные причины, ведущие к принудительному обнулению:

  • Ошибка клиентского приложения

  • Клиент перестал извлекать записи, так как нашел, что искал, но результирующий набор еще не был извлечен до конца

  • Аварийное завершение клиентского приложения

ps_prepared_never_executed | Соединение | Количество подготовленных, но не запущенных запросов. | Подготовленные запросы потребляют серверные ресурсы. Вы не должны подготавливать запросы, если не будете их запускать.
ps_prepared_once_executed | Соединение | Количество подготовленных запросов, запущенных только один раз. | Главная идея подготовленных запросов в том, что один и тот же запрос будет запускаться несколько раз, но, возможно, с другими параметрами. Это позволяет сэкономить на подготовке запросов, позволяя произвести разбор запроса только один раз, а потом просто подставлять в него параметры и запускать. При подготовке запроса происходит кеширование результата, например можно многократно использовать дерево разбора, созданное один раз на жтапе подготовки. Если же вы запускаете подготовленный запрос всего один раз, то никакого выйгрыша по сравнению с нормальными запросами не будет, даже наоборот, будут дополнительные накладные расходы на кеширование подготовленного запроса. Таким образом, подготовленные запросы, которые используются всего один раз, ведут к ухудшению производительности.
rows_fetched_from_server_normal, rows_fetched_from_server_ps | Соединение | Общее количество успешно извлеченных строк из базы MySQL, независимо от того, использованы они были приложением или нет. Часть строк могут не извлекаться приложением, но при этом принудительно обнуляться. | Также смотрите packets_received_rset_row
rows_buffered_from_client_normal, rows_buffered_from_client_ps | Соединение | Общее количество успешно буферизованных строк, полученных при выполнении "нормальных" запросов. Это количество строк, извлеченных из MySQL и буферизованных на клиенте. Обратите внимание, что существует две независимые метрики для буферизованных строк и (переданых от MySQL в буфер mysqlnd) и строк, прочтенных приложением (переданных из буфера mysqlnd клиентскому приложению). Если количество буферизованных строк больше чем число извлеченных клиентом, то стоит обратить внимание на клиентские запросы, так как они извлекают больше данных, чем им на самом деле нужно. | Пример запросов, буферизующих результирующие наборы: mysqli_query(), mysqli_store_result()
rows_fetched_from_client_normal_buffered, rows_fetched_from_client_ps_buffered | Соединение | Общее количество извлеченных клиентов строк из буферизованных результирующих наборов для любого типа запросов.
rows_fetched_from_client_normal_unbuffered, rows_fetched_from_client_ps_unbuffered | Соединение | Total number of rows fetched by the client from a unbuffered result set created by a "normal" query or a prepared statement.
rows_fetched_from_client_ps_cursor | Соединение | Общее количество извлеченных клиентов строк из небуферизованных результирующих наборов для любого типа запросов.
rows_skipped_normal, rows_skipped_ps | Соединение | Зарезервированно для использования в будущем и в данный момент не поддерживается
copy_on_write_saved, copy_on_write_performed | Процесс | Если используется mysqlnd: переменные, возвращенные расширением, указывающие на внутренний сетевой буфер результатов mysqlnd. если вы не меняли переменные, извлеченные данные будут сохранены в памяти один раз. если вы меняли переменные, mysqlnd выполнит копирование при записи для защиты внутренних сетевых буферов результата от изменения. Если используется клиентская библиотека MySQL: вы всегда держите извлеченные данные в памяти в двух экземплярах. Один раз во внутренних буферах клиентской библиотеки MySQL, и еще один раз в переменных, возвращенных расширением. В теории, mysqlnd может до 40% сократить потребление памяти. В любом случае помните, что эту экономию не удастся замерить с помощью memory_get_usage().
explicit_free_result, implicit_free_result | Соединение, процесс (только на стадии очистки подготовленных запросов) | Общее количество высвобожденных результирующих наборов. | Очистка всегда производится явно, но для результирующих наборов, созданных инициализирующими командами, например mysqli_options(MYSQLI_INIT_COMMAND , ...)
proto_text_fetched_null, proto_text_fetched_bit, proto_text_fetched_tinyint proto_text_fetched_short, proto_text_fetched_int24, proto_text_fetched_int proto_text_fetched_bigint, proto_text_fetched_decimal, proto_text_fetched_float proto_text_fetched_double, proto_text_fetched_date, proto_text_fetched_year proto_text_fetched_time, proto_text_fetched_datetime, proto_text_fetched_timestamp proto_text_fetched_string, proto_text_fetched_blob, proto_text_fetched_enum proto_text_fetched_set, proto_text_fetched_geometry, proto_text_fetched_other Соединение Общее количество столбцов определенного типа, извлеченных нормальными запросами (текстовый протокол MySQL). Связка метаданных C API / MySQL с именами метрик статистики:

  • MYSQL_TYPE_NULL - proto_text_fetched_null

  • MYSQL_TYPE_BIT - proto_text_fetched_bit

  • MYSQL_TYPE_TINY - proto_text_fetched_tinyint

  • MYSQL_TYPE_SHORT - proto_text_fetched_short

  • MYSQL_TYPE_INT24 - proto_text_fetched_int24

  • MYSQL_TYPE_LONG - proto_text_fetched_int

  • MYSQL_TYPE_LONGLONG - proto_text_fetched_bigint

  • MYSQL_TYPE_DECIMAL, MYSQL_TYPE_NEWDECIMAL - proto_text_fetched_decimal

  • MYSQL_TYPE_FLOAT - proto_text_fetched_float

  • MYSQL_TYPE_DOUBLE - proto_text_fetched_double

  • MYSQL_TYPE_DATE, MYSQL_TYPE_NEWDATE - proto_text_fetched_date

  • MYSQL_TYPE_YEAR - proto_text_fetched_year

  • MYSQL_TYPE_TIME - proto_text_fetched_time

  • MYSQL_TYPE_DATETIME - proto_text_fetched_datetime

  • MYSQL_TYPE_TIMESTAMP - proto_text_fetched_timestamp

  • MYSQL_TYPE_STRING, MYSQL_TYPE_VARSTRING, MYSQL_TYPE_VARCHAR - proto_text_fetched_string

  • MYSQL_TYPE_TINY_BLOB, MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, MYSQL_TYPE_BLOB - proto_text_fetched_blob

  • MYSQL_TYPE_ENUM - proto_text_fetched_enum

  • MYSQL_TYPE_SET - proto_text_fetched_set

  • MYSQL_TYPE_GEOMETRY - proto_text_fetched_geometry

  • Любые не перечисленные MYSQL_TYPE_* - proto_text_fetched_other

Обратите внимение, что константы типов MYSQL_* могут не ассоциироваться с одинаковыми столбцами SQL для разных версий MySQL.

proto_binary_fetched_null, proto_binary_fetched_bit, proto_binary_fetched_tinyint proto_binary_fetched_short, proto_binary_fetched_int24, proto_binary_fetched_int, proto_binary_fetched_bigint, proto_binary_fetched_decimal, proto_binary_fetched_float, proto_binary_fetched_double, proto_binary_fetched_date, proto_binary_fetched_year, proto_binary_fetched_time, proto_binary_fetched_datetime, proto_binary_fetched_timestamp, proto_binary_fetched_string, proto_binary_fetched_blob, proto_binary_fetched_enum, proto_binary_fetched_set, proto_binary_fetched_geometry, proto_binary_fetched_other | Соединение | Общее количество столбцов определенного типа, извлеченных подготовленными запросами (бинарный протокол MySQL). | Связь типов с proto_text_* смотри в предыдущем пункте.
Статистика mysqlnd: Соединение
Метрика | Область применения | Описание | Замечания
connect_success, connect_failure | Соединение | Общее количество удачных/неудачных попыток соединения. | Переиспользованные и прочие типы соединений включаются.
reconnect | Процесс | Общее количество попыток выполнить real_connect на уже открытом соединении. | Следующий код $link = new mysqli(...); $link->real_connect(...) приведет к пересоединению. Но $link = new mysqli(...); $link->connect(...) не приведет, так как $link->connect(...) принудительно закроет существующее соединение перед созданием нового.
pconnect_success | Соединение | Общее количество успешных попыток открыть постоянное соединение | Обратите внимание, что connect_success содержит суммарное количество обычных и постоянных соединений. Так что количество обычных соединений можно вычислить так: connect_success - pconnect_success.
active_connections | Соединение | Общее количество активных соединений, как обычных, так и постоянных.
active_persistent_connections | Соединение | Общее количество активных постоянных соединений. | Общее количество активных непостоянных соединений равно: active_connections - active_persistent_connections.
explicit_close Соединение Общее количество явно закрытых соединений (только ext/mysqli). Пример кода, в котором явно закрывается соединение:
$link = new mysqli(...); $link->close(...)
$link = new mysqli(...); $link->connect(...)
implicit_close Соединение Общее количество неявно закрытых соединений (только ext/mysqli). Пример кода, в котором соединение закрывается не явно:

  • $link = new mysqli(...); $link->real_connect(...)

  • unset($link)

  • Постоянное соединение: соединение было создано с помощью real_connect и, возможно, с неизвестным набором опций - закрывается неявно для предотвращения переиспользования соединения с неизвестным набором опций

  • Постоянное соединение: ping/change_user завершаются с ошибкой и ext/mysqli закрывает соединение

  • Окончание работы скрипта: закрываются соединения, не закрытые пользователем явно

disconnect_close | Соединение | Ошибки соединения возвращаемые при вызове C API mysql_real_connect() во время установления соединения. | Вызывается disconnect_close, потому, что идентификатор соединения, переданный в вызов C API, должен быть закрыт.
in_middle_of_command_close | Процесс | Соединение закрыто во время исполнения команды (результирующий набор не извлечен, после запуска запроса и до получения ответа, во время извлечения данных, во время загрузки данных с помощью LOAD DATA). | если вы не используете асинхронные запросы, подобное может случиться только если работа скрипта неожиданно прервалась и PHP автоматически закрыл соединение.
init_command_executed_count | Соединение | Общее количество запусков инициализирующих команд, к примеру mysqli_options(MYSQLI_INIT_COMMAND , ...). | Количество успешно запущенных команд равно init_command_executed_count - init_command_failed_count.
init_command_failed_count | Соединение | Общее количество неудачных инициализирующих команд.
Статистика mysqlnd: Команды COM_*
Метрика Область применения Описание Замечания
com_quit, com_init_db, com_query, com_field_list, com_create_db, com_drop_db, com_refresh, com_shutdown, com_statistics, com_process_info, com_connect, com_process_kill, com_debug, com_ping, com_time, com_delayed_insert, com_change_user, com_binlog_dump, com_table_dump, com_connect_out, com_register_slave, com_stmt_prepare, com_stmt_execute, com_stmt_send_long_data, com_stmt_close, com_stmt_reset, com_stmt_set_option, com_stmt_fetch, com_daemon Соединение Общее количество попыток послать одну из COM_* команд из PHP серверу MySQL.

Метрика увеличивается после проверки синтаксиса команды и непосредственно перед отсылкой соответствующего пакета серверу MySQL. Если mysqlnd не удалось послать пакет, метрика не будет уменьшина. В случае неудачной посылки mysqlnd вернет предупреждение Error while sending %s packet. PID=%d.

Примеры использования:

  • Отследить, что PHP посылает определенные команды серверу, например, что клиент шлет COM_PROCESS_KILL

  • Посчитать среднее количество запусков подготовленных запросов, сравнив COM_EXECUTE с COM_PREPARE

  • Проверить, что PHP исполняет неподготовленные запросы, убедившись, что COM_QUERY равно нулю

  • Определить скрипт PHP, выполняющий множество запросов, проверив COM_QUERY и COM_EXECUTE

Прочее

Статистика mysqlnd: Прочее
Метрика | Область применения | Описание | Замечания
explicit_stmt_close, implicit_stmt_close | Процесс | Общее количество закрытых подготовленных запросов. | Закрытие всегда происходит явно, за исключением ошибок при подготовке.
mem_emalloc_count, mem_emalloc_ammount, mem_ecalloc_count, mem_ecalloc_ammount, mem_erealloc_count, mem_erealloc_ammount, mem_efree_count, mem_malloc_count, mem_malloc_ammount, mem_calloc_count, mem_calloc_ammount, mem_realloc_count, mem_realloc_ammount, mem_free_count | Процесс | Вызовы менеджера памяти. | Только для разработчиков.
command_buffer_too_small Соединение Количество расширений сетевого командного буфера в процессе отправки команды от PHP серверу MySQL.

mysqlnd выделяет внутренний командный/сетевой буфер размера mysqlnd.net_cmd_buffer_size (php.ini) байт для каждого соединения. Если команда клиент-серверного протокола MySQL, к примеру COM_QUERY (обычный запрос), не помещается в него, mysqlnd увеличивает размер буфера до необходимого размера. Каждый раз, когда размер буфера увеличивается длясоединения, command_buffer_too_small увеличивается на единицу.

Если mysqlnd увеличивает размер буфера более его начального размера mysqlnd.net_cmd_buffer_size (php.ini) практически для каждого соединения, вам стоит задуматься об изменении этого значения.

Размер буфера по умолчанию равен 2048 байт в PHP 5.3.0. В будущих версиях по умолчанию будет 4kB или больше. Это значение можно поменять в php.ini изменив значение ключа mysqlnd.net_cmd_buffer_size или используя mysqli_options(MYSQLI_OPT_NET_CMD_BUFFER_SIZE, int size).

рекомендуется устанавливать размер буфера не менее 4096 байт, потому как mysqlnd также использует его при чтении определенных комуникационных пакетов от сервера MySQL. В PHP 5.3.0, mysqlnd не увеличивает буфер, если MySQL шлет пакет больший текущего размера буфера. Из-за этого mysqlnd не может принять такой пакет и возвращает ошибку пользовательскому приложению. Есть только два варианта, когда размер пакета может быть более 2048 байт (значение mysqlnd.net_cmd_buffer_size по умолчанию в PHP 5.3.0) : пакет содержит очень длинное сообщение, либо если пакет содержит метаданные столбцов из COM_LIST_FIELD (mysql_list_fields()) и метаданные содержат данный о строковом столбце с очень длинным значением по умолчанию (>1900 байт). Ни одного сообщение о подобных проблемах не зафиксировано, но опасность есть.

Начиная с PHP 5.3.2, mysqlnd не позволяет задавать размер буфера меньше 4096 байт.

connection_reused


Замечания

Этот раздел содержит набор различных замечаний по поводу использования встроенного драйвера MySQL.

  • Использование mysqlnd подразумевает использование потоков PHP как основу для подключений. При работе с mysqlnd следует обращаться к документации потоков PHP (Потоки), а не к документации клиентской библиотеки MySQL, по поводу таких вещей, как, например, настройка таймаута.


Управление памятью

Введение

Встроенный драйвер MySQL (mysqlnd) управляет памятью по-другому, в отличие от клиентской библиотеки MySQL (libmysql). Библиотеки различаются способом выделения и освобождения памяти, тем, как память выделяется по кускам во время чтения результатов из MySQL, существующими опциями для отладки и разработки, и тем, как результаты, считанные из MySQL, связаны с пользовательскими переменными PHP.

Следующая информация предназначена в качестве введения и обобщения для пользователей, заинтересованых в понимании mysqlnd на уровне C-кода.

Используемые функции для управления памятью

Все операции выделения и освобождения памяти происходят используя PHP-функции, предназначенные для управления памятью. Поэтому, потребление памяти встроенного драйвера MySQL может быть отслежено при помощи вызовов PHP API, таких как memory_get_usage(). Из-за того, что память выделяется и освобождается при помощи системы управления памятью PHP, изменения на уровне операционной системы могут быть видны не мгновенно. Система управления памятью PHP ведет себя как прокси, которая может вызывать задержку в освобождении памяти. Ввиду этого, сравнение использования памяти встроенного драйвера MySQL и клиентской библиотеки MySQL (libmysql) довольно сложно. Клиентская библиотека MySQL (libmysql) использует систему управления памятью операционной системы напрямую, следовательно, эффект на уровне операционной системы может быть виден незамедлительно.

Любое ограничение памяти, установленное в PHP, также влияет на встроенный драйвер MySQL. Это может вызвать ошибки переполнения памяти при извлечении больших массивов данных, которые превышают размер оставшейся памяти, предоставленных РНР. Из-за того, что клиентская библиотека MySQL не использует функций управления памяти PHP, она не подчиняется ограничению памяти, установленному в PHP. При использовании libmysql, в зависимости от модели развертывания, объем памяти, занимаемый PHP-процессом, может вырасти за пределы ограничений, установленных в PHP. В тоже время, PHP-скрипты могут обрабатывать больший объем массивов данных, так как области памяти, выделенные для хранения данных, не находятся под управлением РНР.

Функции системы управления памятью PHP вызываются встроенным драйвером MySQL через легковесную обертку. Среди прочего, обертка делает отладку легче.

Обработка массивов полученных данных

Различные MySQL-сервера и различные клиенткие API различают буферизированные и небуферизированные результаты. Небуферизированные результаты передаются строка за строкой от MySQL к клиенту и клиент читает их по порядку. Буферизированные результаты забираются клиентской библиотекой целиком до передачи их клиенту.

Встроенный драйвер MySQL использует PHP-потоки для сетевого общения с сервером MySQL. Результаты, посланные MySQL-сервером, выбираются из сетевых буферов PHP-потоков в результирующий буфер mysqlnd. Результирующий буфер состоит из zvals. На втором шаге результаты становятся доступными PHP-скрипту. Последняя передача из результирующего буфера в PHP-переменные вызывает потребление памяти и в большинстве случаев оно заметно при использовании буферизированных результатов.

По умолчанию встроенный драйвер MySQL пытается избежать двойного хранения буферного результа в памяти. Результаты хранятся только один раз во внутренних результирующих буферах и их zvals. Когда результаты забираются в РНР-переменные PHP-скриптом, переменные будут ссылаться на внутренние результаты буферов. Результаты запросов к базам данных не копируются и хранятся в памяти только один раз. Достаточно пользователю изменить содержимое переменной, содержащей результаты работы базы данных, как будет выполнен механизм копирования при записи (Copy-On-Write), для того, чтобы избежать изменения ссылающего внутреннего буфера результата. Содержимое буфера не должно быть изменено, так как пользователь может принять решение прочитать результат во второй раз. Механизм копирования при записи реализуется с помощью дополнительного управления списком ссылок и использования стандартных zval счетчиков ссылок. Копирование при записи также должно быть сделано, если пользователь читает данные результата в PHP переменных и освобождает данные результата прежде, чем переменные будут уничтожены.

В общем, этот шаблон работает хорошо для скриптов, которые читают наборы данных единожды и не изменяют переменных, содержащих результаты. Его главный недостаток в накладных расходах памяти, вызванных дополнительным управлением ссылками, причина которого в первую очередь связана с тем, что пользовательские переменные, удерживающие результаты, не могут быть полностью освобождены до того, как система управления ссылками mysqlnd содержит ссылки на них. Встроенный драйвер MySQL удаляет ссылку на на пользовательские переменные когда массив полученных данных освобождается или выполняется механизм копирования при записи. Наблюдатель увидит рост общего потребления памяти пока массив полученных данных не освободится. Используйте статистику, чтобы проверить, скрипт явно произвел освобождение данных результата или же драйвер сделал это неявно и поэтому память используется в течение более долгого времени, чем это необходимо. Статистика также помогает увидеть количество операций копирования при записи.

PHP-скрипт, читающий множество небольших строк в буферизированном массиве данных, использующий код, подобный while ($row = $res->fetch_assoc()) { ... }, может оптимизировать потребление памяти, запросив копии вместо ссылок. Хотя и запрос копий означает хранение тех же результатов в памяти дважды, это позволяет PHP уничтожить копию, содержащую в $row в качестве итерируемого массива данных и перед уничтожением результат устанавливает сам себя. На загруженном сервере оптимизация использования памяти может помочь улучшить общую производительность системы, хотя для отдельного скрипта подход с копией вместо ссылок может быть медленнее в связи с дополнительным выделением памяти и дополнительными операциями копирования в памяти.

Режим копирования может быть включен принудительно, установив mysqlnd.fetch_data_copy=1.

Контроль и отладка

Существует несколько методов отслеживания использования памяти во встроенном драйвере MySQL "mysqlnd". Если цель - получить быстрый высокоуровневый обзор или проверить эффективность PHP-скриптов при работе с памятью, то проверьте статистику, собранную библиотекой. Статистика позволит вам, например, поймать SQL-запрос, который генерирует больше результатов, чем обрабатываются PHP-скриптом.

Журнал отладки может быть сконфигурирован для записи вызовов системы управления памятью. Это помогает увидеть когда память выделяется и освобождается. Однако, размер запрошенных кусков памяти может не быть в списке.

В некоторых последних версиях встроенного драйвера MySQL "mysqlnd" присутствует возможность эмуляции случайных ситуаций нехватки памяти. Эта возможность была задумана для использования только C-разработчиками библиотеки или авторами плагина mysqlnd. Пожалуйста, используйте поиск по исходному коду для соответствующей настройки PHP и для дальнейшей информации. Это возможность является недокументированной и может быть изменена в любое время без дополнительного уведомления.


API для плагинов к встроенному драйверу MySQL

Содержание

  • Сравнение плагинов mysqlnd с MySQL Proxy
  • Получение API плагинов mysqlnd
  • Архитектура плагинов MySQL Native Driver
  • API плагинов mysqlnd
  • Начинаем разработку плагина mysqlnd

API для плагинов к встроенному драйверу MySQL является особенностью встроенного драйвера MySQL (mysqlnd). Плагины mysqlnd работают на уровне между PHP-приложениями и сервером MySQL. Это похоже на работу MySQL Proxy. Плагины mysqlnd могут реализовывать стандартные задачи MySQL Proxy, такие как балансирование нагрузки, мониторинг и оптимизация быстродействия. При этом, вследствие другой архитектуры и месторасположения, плагины mysqlnd не имеют некоторых недочетов MySQL Proxy. Например, нет единой точки отказа, не требуется установка отдельного proxy-сервера и нет необходимости в изучении нового языка программирования Lua.

Плагин mysqlnd можно рассматривать как модуль mysqlnd. Плагины могут перехватывать большую часть функций mysqlnd. Эти функции вызываются модулями PHP, такими как ext/mysql, ext/mysqli и PDO_MYSQL. В конечном счете, плагины mysqlnd могут перехватывать все запросы, сделанные этими модулями из клиентского приложения.

Внутренние вызовы функций mysqlnd также могут быть перехвачены или заменены. Ограничения по работе с внутренней таблицей функций mysqlnd отсутствуют. Возможно настроить все таким образом, что при вызове определенных функций mysqlnd из модулей, использующих mysqlnd, этот вызов будет перенаправляться в соответствующую функцию плагина mysqlnd. Возможность манипулировать внутренней таблицей функций mysqlnd дает плагинам максимум гибкости.

Плагины mysqlnd фактически являются модулями PHP, написанными на C и использующими API для плагинов mysqlnd (встроенном в драйвер mysqlnd). Плагины могут быть полностью прозрачными для PHP-приложений. Изменять приложение не потребуется, поскольку плагины работают на другом уровне. Плагины mysqlnd можно рассматривать как работающие на уровень ниже mysqlnd.

Нижеуказанный список показывает несколько возможных вариантов плагинов mysqlnd.

  • Балансировка нагрузки

    • Разделение чтения и записи. Примером является модуль PECL/mysqlnd_ms (Master Slave). Модель разделяет запросы на чтение и запись для настройки репликации.

    • Отказоустойчивость

    • Равномерная загрузка, запросы на наименее загруженный сервер

  • Мониторинг

    • Логирование запросов

    • Анализ запросов

    • Аудит запросов. Примером является модуль PECL/mysqlnd_sip (SQL Injection Protection, защита от SQL-инъекций). Модель анализирует запросы и выполняет только подходящие под набор правил.

  • Производительность.

    • Кеширование. Примером является модуль PECL/mysqlnd_qc (Query Cache, кеширование запросов).

    • Ограничение ресурсов выделяемых запросу

    • Шардинг. Примером является модуль PECL/mysqlnd_mc (Multi Connect). Модель пытается разбить запрос SELECT на n частей, используя SELECT ... LIMIT part_1, SELECT LIMIT part_n. Он отправляет запросы на отдельные MySQL-сервера и собирает результат на клиенте.

Доступные плагины к встроенному драйверу MySQL

Существует несколько уже доступных плагинов mysqlnd. Список включает:

  • PECL/mysqlnd_mc - Multi Connect plugin.

  • PECL/mysqlnd_ms - Master Slave plugin.

  • PECL/mysqlnd_qc - Query Cache (кеширование запросов) plugin.

  • PECL/mysqlnd_pscache - Prepared Statement Handle Cache plugin (обработка кеширования подготовленных запросов)

  • PECL/mysqlnd_sip - SQL Injection Protection plugin (защита от SQL-инъекций)

  • PECL/mysqlnd_uh - User Handler plugin (обработка пользователей)


Сравнение плагинов mysqlnd с MySQL Proxy

Плагины mysqlnd и MySQL Proxy - это разные технологии, использующие разные подходы. Оба варианта являются подходящими инструментами для решения разнообразных стандартных задач, таких как балансировка нагрузки, мониторинг и улучшение производительности. Важным отличием является то, что MySQL Proxy работает со всеми клиентами MySQL, тогда как плагины mysqlnd - только для PHP-приложений.

Как модуль PHP, плагин mysqlnd устанавливается на сервере приложений PHP вместе с остальным PHP. MySQL Proxy может быть запущен на сервере приложений PHP или же быть установлен на отдельной машине для поддержки множественных серверов приложений PHP.

Установка MySQL Proxy на сервере приложений имеет два преимущества:

  1. Отсутствие единой точки отказа

  2. Легкость в масштабировании (горизонтальном или же клиентском)

MySQL Proxy (а также плагины mysqlnd) могут легко решать проблемы, ради решения которых иначе понадобились бы изменения в существующих приложениях.

Тем не менее, у MySQL Proxy есть некоторые недостатки:

  • MySQL Proxy - это новый элемент и технология, которую потребуется изучить и установить

  • MySQL Proxy требует знания скриптового языка Lua

MySQL Proxy может быть изменен с помощью C и Lua. Lua является предпочтительным скриптовым языком для MySQL Proxy. Для большинства экспертов PHP, Lua является новым языком, который надо изучать. Плагин mysqlnd может быть написан на C. Также можно написать плагин на PHP, используя » PECL/mysqlnd_uh.

MySQL Proxy работает как демон - фоновый процесс. MySQL Proxy может вспомнить ранее принятые решения, так как все состояние может быть сохранено. Однако плагины mysqlnd привязаны к жизненному циклу PHP, базирующемуся на запросах. Также MySQL Proxy может разделять единожды полученный результат между разными серверами приложений. Плагины mysqlnd для решения этой задачи должны использовать какое-нибудь постоянное хранилище, для сохранения результатов между запросами. Например, для этого может быть использован другой демон, такой как Memcache. Так что в этом случае MySQL Proxy работает явно лучше.

MySQL Proxy работает поверх сетевых протоколов. С помощью MySQL Proxy вы можете разобрать и подвергнуть инженерному анализу протокол MySQL Client Server. Что-либо поменять можно только манипулируя протоколом обмена. Если протокол вдруг поменяется (что случается крайне редко), скрипты MySQL Proxy будет необходимо переписывать.

Плагины Mysqlnd работают поверх C API, который дублирует клиент libmysqlclient. Это C API по сути обычная обертка вокруг протокола MySQL Client Server. Вы можете перехватывать все вызовы C API. PHP использует C API, фактически вы можете перехватывать вообще все вызовы PHP, без необходимости програмировать на уровне протокола обмена.

Mysqlnd реализует протокол обмена. Таким образом, плагины могут перехватывать, исследовать, менять и даже целиком заменять протокол связи. Хотя обычно ничего этого не требуется.

Плагины позволяют вам использовать два уровня (C API и протокол обмена), в этом они гораздо гибче, чем MySQL Proxy. Если плагин mysqlnd реализован с использованием C API, изменения протокола обмена не потребуют изменения плагина.


Получение API плагинов mysqlnd

API плагинов mysqlnd является частью стандартного модуля ext/mysqlnd. API плагинов mysqlnd начали разрабатывать в декабре 2009 года. Он разрабатывался как часть репозитория исходных кодов PHP и, соответственно, доступен через публичный репозиторий Git либо через загрузку снапшота исходных кодов.

В следующей таблице указаны соответствия версий PHP и входящего в него mysqlnd.

Версии mysqlnd, поставляющиеся с PHP
Версия PHP | Версия MySQL Native Driver
5.3.0 | 5.0.5
5.3.1 | 5.0.5
5.3.2 | 5.0.7
5.3.3 | 5.0.7
5.3.4 | 5.0.7

Разработчики плагинов могут узнать версию mysqlnd путем доступа к MYSQLND_VERSION, являющейся строкой формата mysqlnd 5.0.7-dev - 091210 - $Revision: 300535, или через MYSQLND_VERSION_ID, являющейся числовым представлением версии, например 50007. Расчитать версию из этого числа можно так:

Таблица расчета MYSQLND_VERSION_ID
Версия (часть) | Пример
Major*10000 | 5*10000 = 50000
Minor*100 | 0*100 = 0
Patch | 7 = 7
MYSQLND_VERSION_ID | 50007

В процессе разработки, разработчики должны отслеживать версию mysqlnd на предмет совместимости и версионного тестирования, так как версии mysqlnd имеют свойство меняться и это может случиться в процессе работы над плагином.


Архитектура плагинов MySQL Native Driver

В этой секции рассмотрена архитектура плагинов mysqlnd.

Поверхностный обзор MySQL Native Driver

Перед началом разработки плагинов mysqlnd, полезно ознакомиться, как сам по себе организован mysqlnd. Mysqlnd состоит из следующих модулей:

Организационная схема mysqlnd, помодульно
Модули статистики | mysqlnd_statistics.c
Соединение | mysqlnd.c
Результирующий набор | mysqlnd_result.c
Метаданные результирующего набора | mysqlnd_result_meta.c
Оператор | mysqlnd_ps.c
Сеть | mysqlnd_net.c
Протокол обмена | mysqlnd_wireprotocol.c

Объектно-ориентированная парадигма C

На уровне кода, mysqlnd использует паттерн C для реализации объектно-ориентированного подхода.

В C объекты описывают используя struct. Члены структуры являются свойствами объекта. Члены структуры, указывающие на функции, являются методами.

В отличие от таких языков как C++ или Java, в C нет фиксированных правил наследования. Однако существуют некоторые договоренности, которым необходимо следовать, но это мы обсудим позже.

Жизненный цикл PHP

При рассмотрении жизненного цикла PHP существует два основных цикла:

  • Цикл старта и остановки движка PHP

  • Цикл обработки запроса

При старте движка PHP, первым делом вызывается функция инициализации модулей (MINIT) для каждого зарегистрированного модуля. Это позволяет каждому модулю установить переменные и выделить ресурсы, которые будут задействованы все время жизни процесса движка PHP. Когда движок PHP выключается, он вызывает функцию остановки модулей (MSHUTDOWN) для каждого модуля.

На протяжении жизненного цикла движка PHP, он принимает некоторое количество запросов. Каждый запрос порождает новый жизненный цикл. На каждый запрос, движок PHP вызывает функцию инициализации для каждого модуля. Модуль может предпринять выставление переменных и выделение ресурсов, требуемых для обслуживания запроса. По окончании жизни запроса, движок вызывает функцию остановки запроса (RSHUTDOWN) для каждого модуля, что позволяет им произвести необходимые чистки.

Как работает плагин

Плагин mysqlnd работает перехватывая вызовы модулей, использующих mysqlnd, к mysqlnd. Это достигается подменой таблицы функций mysqlnd на созданную плагином.

Следующий код демонстрирует замену таблицы функций mysqlnd:

/* хранилище оригинальной таблицы */
struct st_mysqlnd_conn_methods org_methods;

void minit_register_hooks(TSRMLS_D) {
  /* активная таблица функций */
  struct st_mysqlnd_conn_methods * current_methods
    = mysqlnd_conn_get_methods();

  /* бэкап оригинальной таблицы */
  memcpy(&org_methods, current_methods,
    sizeof(struct st_mysqlnd_conn_methods);

  /* установка новых методов */
  current_methods->query = MYSQLND_METHOD(my_conn_class, query);
}

Манипуляцией с таблицей функций соединения необходимо заниматься на этапе инициализации модуля (MINIT). Таблица функций - это глобальный разделяемый ресурс. В многопоточном окружении, со сборкой TSRM, манипуляция глобальным разделяемым ресурсом на этапе обработки запроса приведет к конфликтам.

Замечание:

Не используйте какую-либо логику, связанную с фиксированным размером при манипуляции с таблицей функций mysqlnd. Всегда добавляйте новые методы в конец таблицы, так как сама таблица может в будущем в любой момент измениться.

Вызов родительских методов

Если записи оригинальной таблицы функций были сохранены, то всегда остается возможность вызвать оригинальный метод - родительский.

В некоторых случаях, например, для Connection::stmt_init(), жизненно важно сначала вызвать родительский метод, и только потом делать что либо в новом методе.

MYSQLND_METHOD(my_conn_class, query)(MYSQLND *conn,
  const char *query, unsigned int query_len TSRMLS_DC) {

  php_printf("my_conn_class::query(query = %s)\n", query);

  query = "SELECT 'query rewritten' FROM DUAL";
  query_len = strlen(query);

  return org_methods.query(conn, query, query_len); /* возврат с вызовом родителя */
}

Расширение свойств

Объекты mysqlnd представлены как C struct. Невозможно добавить члена в C struct во время исполнения. Пользователи объектов mysqlnd не могут просто добавить свойства объекту.

Произвольные данные (свойства) могут быть добавлены к объекту mysqlnd с использованием соответствующей функции из семейства mysqlnd_plugin_get_plugin_<object>_data(). При размещении объекта mysqlnd резервируется место в конце объекта для удержания void * указателя на произвольные данные. mysqlnd резервирует место для одного void * указателя на плагин.

В следующей таблице показано, как вычислить положение указателя для конкретного плагина:

Расчет указателя для mysqlnd
Адрес памяти | Содержимое
0 | Начало объекта mysqlnd (C struct)
n | Конец объекта mysqlnd (C struct)
n + (m x sizeof(void*)) | void* для данных объекта плагина номер m

Если вы планируете делать подкласс от одного из конструкторов объекта mysqlnd, которые разрешены, имейте это в виду!

Следующий код демонстрирует расширение свойств:

/* Любые данные, которые мы хотим добавить */
typedef struct my_conn_properties {
  unsigned long query_counter;
} MY_CONN_PROPERTIES;

/* идентификатор плагина */
unsigned int my_plugin_id;

void minit_register_hooks(TSRMLS_D) {
  /* получаем уникальный идентификатор плагина */
  my_plugin_id = mysqlnd_plugin_register();
  /* snip - see Extending Connection: methods */
}

static MY_CONN_PROPERTIES** get_conn_properties(const MYSQLND *conn TSRMLS_DC) {
  MY_CONN_PROPERTIES** props;
  props = (MY_CONN_PROPERTIES**)mysqlnd_plugin_get_plugin_connection_data(
    conn, my_plugin_id);
  if (!props || !(*props)) {
    *props = mnd_pecalloc(1, sizeof(MY_CONN_PROPERTIES), conn->persistent);
    (*props)->query_counter = 0;
  }
  return props;
}

Разработчик плагина отвечает за управление памятью данных плагина.

Рекомендуется использовать управление памятью mysqlnd для данных плагина. Эти функции именуются используя такие соглашения: mnd_*loc(). Управление памятью mysqlnd имеет ряд полезных свойств, таких как использование отладочного модуля управления памятью в неотладочных сборках.

Когда и как создавать подкласс
 | Когда создавать подкласс? | Каждый экземпляр имеет свою собственную таблицу функций? | Как создавать подкласс?
Срединение (MYSQLND) | MINIT | Нет | mysqlnd_conn_get_methods()
Результирующий набор (MYSQLND_RES) | MINIT or later | Да | mysqlnd_result_get_methods() или методом объекта, манипулирующим таблицей функций
Результирующий набор (MYSQLND_RES_METADATA) | MINIT | Нет | mysqlnd_result_metadata_get_methods()
Оператор (MYSQLND_STMT) | MINIT | Нет | mysqlnd_stmt_get_methods()
Сеть (MYSQLND_NET) | MINIT или позже | Да | mysqlnd_net_get_methods() или методом объекта, манипулирующим таблицей функций
Протокол обмена (MYSQLND_PROTOCOL) | MINIT или позже | Да | mysqlnd_protocol_get_methods() или методом объекта, манипулирующим таблицей функций

Вы не должны манипулировать таблицей функций после MINIT, если это прямо не разрешено в таблице выше.

Некоторые классы содержат указатель на таблицу функций методов. Все экземпляры подобных классов должны делить одну и ту же таблицу функций. Для того, что бы избежать хаоса, особенно в многопоточном окружении, управлять такими таблицами функций стоит только во время MINIT.

Прочие классы используют копии глобально разделенных таблиц функций. Таблица функций создается одновременно с объектом. Каждый объект использует свою таблицу. Это дает вам две возможности: вы можете управлять таблицей функций по умолчанию для объекта во время MINIT, а также вы можете изменять методы объекта не затрагивая другие экземпляры этого же класса.

Преимущество разделяемой таблицы функций в производительности, так как нет нужды копировать таблицу функций отдельно для каждого объекта.

Статус конструктора
Тип | Размещение, создание, сброс | Может быть изменено? | Вызывающий
Connection (MYSQLND) | mysqlnd_init() | Нет | mysqlnd_connect()
Результирующий набор (MYSQLND_RES)

Размещение:

  • Connection::result_init()

Сброс и повторная инициализация во время:

  • Result::use_result()

  • Result::store_result

Да, но вызовите родителя!

  • Connection::list_fields()

  • Statement::get_result()

  • Statement::prepare() (Только метаданные)

  • Statement::resultMetaData()

Метаданные результирующего набора (MYSQLND_RES_METADATA) | Connection::result_meta_init() | Да, но вызовите родителя! | Result::read_result_metadata()
Оператор (MYSQLND_STMT) | Connection::stmt_init() | Да, но вызовите родителя! | Connection::stmt_init()
Сеть (MYSQLND_NET) | mysqlnd_net_init() | Нет | Connection::init()
Протокол обмена (MYSQLND_PROTOCOL) | mysqlnd_protocol_init() | Нет | Connection::init()

Настоятельно рекомендуется не заменять конструктор целиком. Конструкторы производят выделение памяти. Выделение памяти жизненно необходимо для API плагинов mysqlnd и для логики объекта mysqlnd. Если вам не страшны предупреждения и хотите сильно поменять конструктор, то хотя бы вызовите родительский конструктор прежде, чем что-либо делать.

Несмотря на все предупреждения, это может быть полезным для конструктора подкласса. Конструкторы - отличное место для изменения таблицы функций для объектов, не использующих разделенную таблицу, таких как результирующий набор, сеть, протокол обмена.

Статус уничтожения
 | Производный метод должен вызвать родительский? | Деструктор
Соединение | да, после выполнения метода | free_contents(), end_psession()
Результирующий набор | да, после выполнения метода | free_result()
Метаданные результирующего набора | да, после выполнения метода | free()
Оператор | да, после выполнения метода | dtor(), free_stmt_content()
Сеть | да, после выполнения метода | free()
Протокол обмена | да, после выполнения метода | free()

Деструкторы являются подходящим местом, чтобы освободить ресуры, занимаемые свойствами mysqlnd_plugin_get_plugin_<object>_data().

Перечисленные деструкторы могут не совпадать с актуальными методами mysqlnd для очистки самого объекта. Однако они являются самым лучшим местом, куда вы можете вклиниться для очистки данных своего плагина. Так же как и с конструкторами, вы можете полностью переопределить эти методы, но делать это не рекомендуется. Если вам необходимо вставить в каждый из перечисленных методов очистку данных своего плагина, то необходимо обеспечить запуск родительских методов mysqlnd.

Рекомендованный метод для плагинов - выполнить код очистки данных плагина и сразу же после этого вызывать родительский метод.

Предостережение

В связи с ошибкой в PHP с 5.3.0 по 5.3.3, плагины не ассоциировали свои данные с постоянными соединениями. Это происходило потому, что ext/mysql и ext/mysqli не вызывали все необходимые методы mysqlnd end_psession() и, теоретически, это могло приводить к утечкам памяти в плагинах. Эта ошибка исправлена в PHP 5.3.4.


API плагинов mysqlnd

API плагинов mysqlnd предоставляет следующие функции:

  • mysqlnd_plugin_register()

  • mysqlnd_plugin_count()

  • mysqlnd_plugin_get_plugin_connection_data()

  • mysqlnd_plugin_get_plugin_result_data()

  • mysqlnd_plugin_get_plugin_stmt_data()

  • mysqlnd_plugin_get_plugin_net_data()

  • mysqlnd_plugin_get_plugin_protocol_data()

  • mysqlnd_conn_get_methods()

  • mysqlnd_result_get_methods()

  • mysqlnd_result_meta_get_methods()

  • mysqlnd_stmt_get_methods()

  • mysqlnd_net_get_methods()

  • mysqlnd_protocol_get_methods()

Нет стандартных определений того, что такое плагин и как он работает.

Часто встречающиеся в плагинах компоненты:

  • Менеджер плагина

  • API плагина

  • Сервисы приложения (или модули)

  • API сервисов приложения (или API модулей)

Концепция плагина mysqlnd эксплуатирует эту функциональность и, кроме того, радует нас открытой архитектурой.

Нет запретов

Плагин имеет полный доступ ко всем внутренностям mysqlnd. Нет ограничений или запретов, связанных с безопасностью. Все что угодно можно переписать для реализации дружественных или враждебных алгоритмов, так что рекомендуется ставить плагины только из доверенных источников.

Как обсуждалось выше, плагины могут свободно использовать указатели. Эти указатели ничем не ограничены и могут указывать на данные другого плагина. Простейшая арифметическая операция позволит получить доступ к данным другого плагина.

Рекомендуется писать сотрудничающие плагины, которые могут работать сообща с другими плагинами и всегда вызывать родительские методы. Плагины никогда не должны вести себя враждебно к самому mysqlnd.

Проблемы: пример сотрудничества и построения цепочки
Модуль | Указатель mysqlnd.query() | Стек вызова, если вызывается родитель
ext/mysqlnd | mysqlnd.query() | mysqlnd.query
ext/mysqlnd_cache mysqlnd_cache.query()

  1. mysqlnd_cache.query()

  2. mysqlnd.query

ext/mysqlnd_monitor mysqlnd_monitor.query()

  1. mysqlnd_monitor.query()

  2. mysqlnd_cache.query()

  3. mysqlnd.query

В этом сценарии загружены плагины кеша (ext/mysqlnd_cache) и мониторинга (ext/mysqlnd_monitor). Оба наследуют класс Connection::query(). регистрация плагинов происходит на этапе MINIT в соответствии с описанной выше логикой. PHP, по умолчанию, вызывает модули в алфавитном порядке. Плагины не знают друг о друге и не накладывают каких-либо зависимостей.

По умолчанию, плагины вызывают родительский метод query из своей, переопределенной, версии этого метода.

Резюме по модулю PHP

Повторение пройденного материала на примере поведения плагина ext/mysqlnd_plugin, использующего API плагинов mysqlnd для PHP:

  • Любое приложение PHP, использующее MySQL пытается установить соединение по адресу 192.168.2.29

  • Приложение использует одно из следующих модулей ext/mysql, ext/mysqli или PDO_MYSQL. Все три модуля используют mysqlnd для соединения с 192.168.2.29.

  • Mysqlnd вызывает метод соединения, который наследуется плагином ext/mysqlnd_plugin.

  • ext/mysqlnd_plugin вызывает зарегистрированный пользователем метод proxy::connect().

  • Этот метод подменяет IP адрес соединения с 192.168.2.29 на 127.0.0.1 и возвращает установленное parent::connect() соединение.

  • ext/mysqlnd_plugin делает то же самое, что и parent::connect(127.0.0.1), вызывая оригинальный метод mysqlnd для соединения.

  • ext/mysqlnd устанавливает соединение и возвращает его ext/mysqlnd_plugin. ext/mysqlnd_plugin, в свою очередь, передает его дальше.

  • Без разницы, какой модуль был использован, он все равно получит соединение к 127.0.0.1. После этого, модуль возвращает это соединение приложению. Круг замкнулся.


Начинаем разработку плагина mysqlnd

Важно помнить, что плагин mysqlnd сам по себе является модулем PHP.

Следующий пример показывает базовую структуру функции MINIT, использующуюся в типичном плагине mysqlnd:

/* my_php_mysqlnd_plugin.c */

 static PHP_MINIT_FUNCTION(mysqlnd_plugin) {
  /* глобальные переменные, ini-настройки, ресурсы, классы */

  /* регистрируем плагин mysqlnd */
  mysqlnd_plugin_id = mysqlnd_plugin_register();

  conn_m = mysqlnd_get_conn_methods();
  memcpy(org_conn_m, conn_m,
    sizeof(struct st_mysqlnd_conn_methods));

  conn_m->query = MYSQLND_METHOD(mysqlnd_plugin_conn, query);
  conn_m->connect = MYSQLND_METHOD(mysqlnd_plugin_conn, connect);
}

/* my_mysqlnd_plugin.c */

 enum_func_status MYSQLND_METHOD(mysqlnd_plugin_conn, query)(/* ... */) {
  /* ... */
}
enum_func_status MYSQLND_METHOD(mysqlnd_plugin_conn, connect)(/* ... */) {
  /* ... */
}

Анализ задачи: от C до пользовательского пространства

 class proxy extends mysqlnd_plugin_connection {
  public function connect($host, ...) { .. }
}
mysqlnd_plugin_set_conn_proxy(new proxy());

Процесс:

  1. PHP: пользователь регистрирует callback-функцию плагина

  2. PHP: пользователь вызывает PHP MySQL API для соединения с MySQL

  3. C: ext/*mysql* вызывает метод mysqlnd

  4. C: mysqlnd обрывается в ext/mysqlnd_plugin

  5. C: ext/mysqlnd_plugin

    1. Вызывает пользовательскую callback-функцию

    2. Или оригинальный метод mysqlnd, если она не задана

Вам необходимо выполнить следующие действия:

  1. Создайте в С класс "mysqlnd_plugin_connection"

  2. Примите и зарегистрируйте прокси объект с помощью "mysqlnd_plugin_set_conn_proxy()"

  3. Вызовите прокси методы пространства пользователя из C (оптимизация - zend_interfaces.h)

Методы объекта пространства пользователя должны быть вызваны с помощью call_user_function() или на уровень ниже, с помощью zend_call_method().

Оптимизация: вызывайте методы из С с помощью zend_call_method

Следующий кусок кода демонстрирует прототип функции zend_call_method, взятый из zend_interfaces.h.

 ZEND_API zval* zend_call_method(
  zval **object_pp, zend_class_entry *obj_ce,
  zend_function **fn_proxy, char *function_name,
  int function_name_len, zval **retval_ptr_ptr,
  int param_count, zval* arg1, zval* arg2 TSRMLS_DC
);

Zend API поддерживает только два аргумента. Вам может понадобиться больше. К примеру:

 enum_func_status (*func_mysqlnd_conn__connect)(
  MYSQLND *conn, const char *host,
  const char * user, const char * passwd,
  unsigned int passwd_len, const char * db,
  unsigned int db_len, unsigned int port,
  const char * socket, unsigned int mysql_flags TSRMLS_DC
);

Для обхода этой проблемы вам необходимо сделать копию zend_call_method() и добавить необходимые параметры. Вы можете сделать это создав набор макросов MY_ZEND_CALL_METHOD_WRAPPER.

Обращение к пространству пользователя PHP

Этот кусок кода демонстрирует оптимизированный метод вызова функций пространства пользователя из С:

/* my_mysqlnd_plugin.c */

MYSQLND_METHOD(my_conn_class,connect)(
  MYSQLND *conn, const char *host /* ... */ TSRMLS_DC) {
  enum_func_status ret = FAIL;
  zval * global_user_conn_proxy = fetch_userspace_proxy();
  if (global_user_conn_proxy) {
    /* вызов прокси пространства пользователя */
    ret = MY_ZEND_CALL_METHOD_WRAPPER(global_user_conn_proxy, host, /*...*/);
  } else {
    /* или оригинальный метод mysqlnd = ничего не делать, быть прозрачным */
    ret = org_methods.connect(conn, host, user, passwd,
          passwd_len, db, db_len, port,
          socket, mysql_flags TSRMLS_CC);
  }
  return ret;
}

Обращение к пространству пользователя: простые аргументы

/* my_mysqlnd_plugin.c */

 MYSQLND_METHOD(my_conn_class,connect)(
  /* ... */, const char *host, /* ...*/) {
  /* ... */
  if (global_user_conn_proxy) {
    /* ... */
    zval* zv_host;
    MAKE_STD_ZVAL(zv_host);
    ZVAL_STRING(zv_host, host, 1);
    MY_ZEND_CALL_METHOD_WRAPPER(global_user_conn_proxy, zv_retval, zv_host /*, ...*/);
    zval_ptr_dtor(&zv_host);
    /* ... */
  }
  /* ... */
}

Обращение к пространству пользователя: структуры как аргументы

/* my_mysqlnd_plugin.c */

MYSQLND_METHOD(my_conn_class, connect)(
  MYSQLND *conn, /* ...*/) {
  /* ... */
  if (global_user_conn_proxy) {
    /* ... */
    zval* zv_conn;
    ZEND_REGISTER_RESOURCE(zv_conn, (void *)conn, le_mysqlnd_plugin_conn);
    MY_ZEND_CALL_METHOD_WRAPPER(global_user_conn_proxy, zv_retval, zv_conn, zv_host /*, ...*/);
    zval_ptr_dtor(&zv_conn);
    /* ... */
  }
  /* ... */
}

первый аргумент многих методов mysqlnd - это "объекты" С. К примеру, первый аргумент метода connect() является указателем на MYSQLND. Структура MYSQLND представляет собой объект соединения mysqlnd.

Указатель на объект соединения mysqlnd можно сравнить со стандартным обработчиком файлового ввода/вывода. Так же как и он, объект соединения mysqlnd должен быть связан с пространством пользователя с использованием PHP типом "resource".

Из C в пространство пользователя и обратно

 class proxy extends mysqlnd_plugin_connection {
  public function connect($conn, $host, ...) {
    /* до внедрения */
    printf("Подключение к = '%s'\n", $host);
    debug_print_backtrace();
    return parent::connect($conn);
  }

  public function query($conn, $query) {
    /* после внедрения */
    $ret = parent::query($conn, $query);
    printf("Запрос = '%s'\n", $query);
    return $ret;
  }
}
mysqlnd_plugin_set_conn_proxy(new proxy());

Пользователи PHP должны иметь возможность вызывать родительские реализации переопределенных методов.

В результате наследования возможно "уточнить" только выбранные методы и вы можете выбрать, когда выполнять ваш код, до или после родительского.

Встроенный класс: mysqlnd_plugin_connection::connect()

/*  my_mysqlnd_plugin_classes.c */

 PHP_METHOD("mysqlnd_plugin_connection", connect) {
  /* ... упрощенный! ... */
  zval* mysqlnd_rsrc;
  MYSQLND* conn;
  char* host; int host_len;
  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs",
    &mysqlnd_rsrc, &host, &host_len) == FAILURE) {
    RETURN_NULL();
  }
  ZEND_FETCH_RESOURCE(conn, MYSQLND* conn, &mysqlnd_rsrc, -1,
    "Mysqlnd Connection", le_mysqlnd_plugin_conn);
  if (PASS == org_methods.connect(conn, host, /* simplified! */ TSRMLS_CC))
    RETVAL_TRUE;
  else
    RETVAL_FALSE;
}


Плагин репликации и балансировки нагрузки для mysqlnd

  • Введение
  • Quickstart and Examples
    • Setup
    • Running statements
    • Connection state
    • SQL Hints
    • Local transactions
    • XA/Distributed Transactions
    • Service level and consistency
    • Global transaction IDs
    • Cache integration
    • Failover
    • Partitioning and Sharding
    • MySQL Fabric
  • Concepts
    • Architecture
    • Connection pooling and switching
    • Local transaction handling
    • Error handling
    • Transient errors
    • Failover
    • Load balancing
    • Read-write splitting
    • Filter
    • Service level and consistency
    • Global transaction IDs
    • Cache integration
    • Supported clusters
    • XA/Distributed transactions
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Файл настроек плагина (>=1.1.x)
  • Предопределенные константы
  • Функции Mysqlnd_ms
    • mysqlnd_ms_dump_servers — Returns a list of currently configured servers
    • mysqlnd_ms_fabric_select_global — Switch to global sharding server for a given table
    • mysqlnd_ms_fabric_select_shard — Switch to shard
    • mysqlnd_ms_get_last_gtid — Returns the latest global transaction ID
    • mysqlnd_ms_get_last_used_connection — Returns an array which describes the last used connection
    • mysqlnd_ms_get_stats — Returns query distribution and connection statistics
    • mysqlnd_ms_match_wild — Finds whether a table name matches a wildcard pattern or not
    • mysqlnd_ms_query_is_select — Find whether to send the query to the master, the slave or the last used MySQL server
    • mysqlnd_ms_set_qos — Sets the quality of service needed from the cluster
    • mysqlnd_ms_set_user_pick_server — Sets a callback for user-defined read/write splitting
    • mysqlnd_ms_xa_begin — Starts a distributed/XA transaction among MySQL servers
    • mysqlnd_ms_xa_commit — Commits a distributed/XA transaction among MySQL servers
    • mysqlnd_ms_xa_gc — Garbage collects unfinished XA transactions after severe errors
    • mysqlnd_ms_xa_rollback — Rolls back a distributed/XA transaction among MySQL servers
  • Change History
    • PECL/mysqlnd_ms 1.6 series
    • PECL/mysqlnd_ms 1.5 series
    • PECL/mysqlnd_ms 1.4 series
    • PECL/mysqlnd_ms 1.3 series
    • PECL/mysqlnd_ms 1.2 series
    • PECL/mysqlnd_ms 1.1 series
    • PECL/mysqlnd_ms 1.0 series


Введение

Плагин репликации и балансировки нагрузки (mysqlnd_ms) для mysqlnd позволяет легко добавить поддержку репликации в MySQL ко всем PHP MySQL расширениям, которые используют mysqlnd.

Начиная с версии PHP 5.3.3, встроенный драйвер MySQL (mysqlnd) имеет возможность написания внутренних плагинов, ипользуя API языка C. C-плагины, такие как плагин репликации и балансировки нагрузки, могут расширить функциональность mysqlnd.

Встроенный драйвер MySQL (mysqlnd) - это C-библиотека, которая поставляется вместе с PHP, начиная с версии 5.3.0. Она служит полноценной заменой для клиентской библиотеки MySQL (libmysqlclient). Использование библиотеки mysqlnd имеет несколько преимуществ: не нужно дополнительных библиотек, так как она идет в комплекте с PHP, она под лицензией PHP, ниже потребление памяти в определенных случаях, и она содержит новую функциональность, такую как асинхронные запросы.

Плагины mysqlnd, такие как mysqlnd_ms, в большей части работают прозрачно для пользователя. Плагины репликации и балансировки нагрузки поддерживают все приложения на PHP и все MySQL-раcширения для PHP. Они не изменяют существующее API. Поэтому это может быть легко использовано с существующими PHP-приложениями.

Ключевые особенности

Ключевые особенности плагина PECL/mysqlnd_ms следующие:

  • Прозрачность и, следовательно, легкость в использовании.

    • Поддержка всех MySQL-раcширений для PHP.

    • Поддержка SSL.

    • Совместимое API.

    • Требуется небольшое или вовсе не требуется изменение приложения, в зависимости от задач.

    • Ленивые соединения: соединение к master- и slave-серверу не открываются до непосредственного выполнения SQL-запроса.

    • Дополнительно: автоматическая использование master-сервера после первой записи в веб-запрос, для того, чтобы снизить возможное влияние задержки репликации.

  • Может быть использовано совместно с любыми кластерными решениями MySQL.

    • MySQL-репликация: разделение чтения и записи выполняется с помощью плагина. Это основное назначение плагина.

    • Кластер MySQL: разделение чтения и записи может быть отключено. Возможна версия конфигурации с многими master-серверами.

    • Сторонние решения: плагин оптимизирован для MySQL-репликации, но может быть использован с другими типами решений для кластеризации MySQL.

  • Возможности стратегии разделения чтения и записи.

    • Автоматическое определение SELECT-запросов.

    • Поддержка подсказок SQL (SQL hints) для переопределения действий по умолчанию.

    • Возможно определение пользователем.

    • Может быть отключено для, например, случая использования синхронных кластеров, таких как MySQL-кластер.

  • Возможности стратегии балансировки нагрузки.

    • Round-robin-алгоритм: позволяет выбрать slave-сервер на основе Round-robin-алгоритма для каждого запроса на slave-сервер.

    • Алгоритм случайности: выбирает случайный slave-сервер для каждого slave-запроса.

    • Алгоритм случайности на запрос: выбирает slave-сервер для выполнения всех запросов с течение одного web-запроса.

    • Возможно определение пользователем: в приложении можно зарегистрировать callback-функцию для mysqlnd_ms.

    • PHP 5.4.0 или выше: транзакции знают об использовании API-вызовов только для управления транзакциями.

    • Взвешенная балансировка нагрузки: сервера могут быть назначены с разными приоритетами, например, можно задать перенаправление большего количества запросов к более мощному серверу, чем к другому менее мощному. Или же задать желаемый сервер, находящийся недалеко, для уменьшения задержки.

  • Глобальный идентификатор транзакции.

    • Эмуляция на стороне клиента. Осуществляет ручной перенос master-сервера и повышение slave-сервера легче с асинронными кластерами, такими как MySQL Replication.

    • Поддержка встроенных глобальных идентификаторов транзакций для MySQL 5.6.5 или выше.

    • Поддержка использования идентификаторов транзакции для идентификации текущих асинхронных slave-серверов для чтения в случае, когда требуется сессионная согласованность. Пожалуйста, обратите внимание на ограничения, упоминаемые в руководстве.

    • Регулирование: в дополнение, плагин может ожидать "синхронное" состояние slave-сервера перед продолжением.

  • Обслуживание и последовательность уровней.

    • Приложения могут запросить сессионную и сильную согласованность, а также согласованность в конечном счете для соединений. Поиск оответствущих узлов кластера будет выполнен автоматически.

    • Доступ к slave-серверам в MySQL-репликации с согласованностью в конечном счете может быть заменен на доступ к быстрому локальному кэшу для уменьшения загрузки сервера.

  • Партиционирование и шардинг.

    • Сервера в кластере репликации могут быть организованы в группы. Подсказки SQL могут быть использованы для ручного направления запросов к определенной группе. Группировка может быть использована для секционирования (шардинга) данных или же для решения проблемы горячих точек с обновлениями.

    • Фильтры MySQL-репликации поддерживаются через фильтр таблицы.

  • MySQL-фабрика

    • Экспериментальная функция для поддержки MySQL-фабрики также включена.

Ограничения

Встроенный механизм разграничения чтения и записи очень простой. Каждый запрос, начинающийся с ключевого слова SELECT, рассматривается как читающий запрос и будет отправлен на slave-сервер. Все другие запросы (такие как SHOW) рассматриваются как записывающие запросы и будут посланы к master-серверу MySQL. Этот встроенный механизм может быть переопределен, используя подсказки SQL (SQL hints) или пользовательские callback-функции.

Механизм разграничения чтения и записи не знает об мульти-запросах. Мульти-запросы рассматриваются как один запрос. Решение о перенаправлении запроса основано на начале запроса. Например, при использовании mysqli_multi_query() для выполнения мульти-запроса SELECT id FROM test ; INSERT INTO test(id) VALUES (1), запрос будет перенаправлен к slave-серверу из-за того, что он начинается с ключевого слова SELECT. INSERT-запрос, который является частью мульти-запроса, не будет перенаправлен к master-серверу.

Замечание:

Приложения должны быть осведомлены о последствиях переключения соединений, которые выполняются с целью балансировки. Пожалуйста, обратитесь к документации за информацией об объединении и переключении соединений, обработки транзакций, отказоустойчивости при балансировки нагрузки и механизме разграничения чтения и записи.

Номенклатура

Сокращение mysqlnd_ms означает mysqlnd master slave plugin. Над названием особо не задумывались и он было выбрано быстро. В самом начале разработчики не рассчитывали продолжать дальнейшее использование кода.


Quickstart and Examples

Содержание

  • Setup
  • Running statements
  • Connection state
  • SQL Hints
  • Local transactions
  • XA/Distributed Transactions
  • Service level and consistency
  • Global transaction IDs
  • Cache integration
  • Failover
  • Partitioning and Sharding
  • MySQL Fabric

The mysqlnd replication load balancing plugin is easy to use. This quickstart will demo typical use-cases, and provide practical advice on getting started.

It is strongly recommended to read the reference sections in addition to the quickstart. The quickstart tries to avoid discussing theoretical concepts and limitations. Instead, it will link to the reference sections. It is safe to begin with the quickstart. However, before using the plugin in mission critical environments we urge you to read additionally the background information from the reference sections.

The focus is on using PECL mysqlnd_ms for work with an asynchronous MySQL cluster, namely MySQL replication. Generally speaking an asynchronous cluster is more difficult to use than a synchronous one. Thus, users of, for example, MySQL Cluster will find more information than needed.


Setup

The plugin is implemented as a PHP extension. See also the installation instructions to install the » PECL/mysqlnd_ms extension.

Compile or configure the PHP MySQL extension (API) (mysqli, PDO_MYSQL, mysql) that you plan to use with support for the mysqlnd library. PECL/mysqlnd_ms is a plugin for the mysqlnd library. To use the plugin with any of the PHP MySQL extensions, the extension has to use the mysqlnd library.

Then, load the extension into PHP and activate the plugin in the PHP configuration file using the PHP configuration directive named mysqlnd_ms.enable.

Пример #1 Enabling the plugin (php.ini)

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini

The plugin uses its own configuration file. Use the PHP configuration directive mysqlnd_ms.config_file to set the full file path to the plugin-specific configuration file. This file must be readable by PHP (e.g., the web server user). Please note, the configuration directive mysqlnd_ms.config_file superseeds mysqlnd_ms.ini_file since 1.4.0. It is a common pitfall to use the old, no longer available configuration directive.

Create a plugin-specific configuration file. Save the file to the path set by the PHP configuration directive mysqlnd_ms.config_file.

The plugins configuration file is JSON based. It is divided into one or more sections. Each section has a name, for example, myapp. Every section makes its own set of configuration settings.

A section must, at a minimum, list the MySQL replication master server, and set a list of slaves. The plugin supports using only one master server per section. Multi-master MySQL replication setups are not yet fully supported. Use the configuration setting master to set the hostname, and the port or socket of the MySQL master server. MySQL slave servers are configured using the slave keyword.

Пример #2 Minimal plugin-specific configuration file (mysqlnd_ms_plugin.ini)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": [

        ]
    }
}

Configuring a MySQL slave server list is required, although it may contain an empty list. It is recommended to always configure at least one slave server.

Server lists can use anonymous or non-anonymous syntax. Non-anonymous lists include alias names for the servers, such as master_0 for the master in the above example. The quickstart uses the more verbose non-anonymous syntax.

Пример #3 Recommended minimal plugin-specific config (mysqlnd_ms_plugin.ini)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

If there are at least two servers in total, the plugin can start to load balance and switch connections. Switching connections is not always transparent and can cause issues in certain cases. The reference sections about connection pooling and switching, transaction handling, fail over load balancing and read-write splitting all provide more details. And potential pitfalls are described later in this guide.

It is the responsibility of the application to handle potential issues caused by connection switches, by configuring a master with at least one slave server, which allows switching to work therefore related problems can be found.

The MySQL master and MySQL slave servers, which you configure, do not need to be part of MySQL replication setup. For testing purpose you can use single MySQL server and make it known to the plugin as a master and slave server as shown below. This could help you to detect many potential issues with connection switches. However, such a setup will not be prone to the issues caused by replication lag.

Пример #4 Using one server as a master and as a slave (testing only!)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        }
    }
}

The plugin attempts to notify you of invalid configurations. Since 1.5.0 it will throw a warning during PHP startup if the configuration file cannot be read, is empty or parsing the JSON failed. Depending on your PHP settings those errors may appear in some log files only. Further validation is done when a connection is to be established and the configuration file is searched for valid sections. Setting mysqlnd_ms.force_config_usage may help debugging a faulty setup. Please, see also configuration file debugging notes.


Running statements

The plugin can be used with any PHP MySQL extension (mysqli, mysql, and PDO_MYSQL) that is compiled to use the mysqlnd library. PECL/mysqlnd_ms plugs into the mysqlnd library. It does not change the API or behavior of those extensions.

Whenever a connection to MySQL is being opened, the plugin compares the host parameter value of the connect call, with the section names from the plugin specific configuration file. If, for example, the plugin specific configuration file has a section myapp then the section should be referenced by opening a MySQL connection to the host myapp

Пример #1 Plugin specific configuration file (mysqlnd_ms_plugin.ini)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

Пример #2 Opening a load balanced connection

<?php
/* Load balanced following "myapp" section rules from the plugins config file */
$mysqli = new mysqli("myapp", "username", "password", "database");
$pdo = new PDO('mysql:host=myapp;dbname=database', 'username', 'password');
$mysql = mysql_connect("myapp", "username", "password");
?>

The connection examples above will be load balanced. The plugin will send read-only statements to the MySQL slave server with the IP 192.168.2.27 and will listen on port 3306 for the MySQL client connection. All other statements will be directed to the MySQL master server running on the host localhost. If on Unix like operating systems, the master on localhost will be accepting MySQL client connections on the Unix domain socket /tmp/mysql.sock, while TCP/IP is the default port on Windows. The plugin will use the user name username and the password password to connect to any of the MySQL servers listed in the section myapp of the plugins configuration file. Upon connect, the plugin will select database as the current schemata.

The username, password and schema name are taken from the connect API calls and used for all servers. In other words: you must use the same username and password for every MySQL server listed in a plugin configuration file section. The is not a general limitation. As of PECL/mysqlnd_ms 1.1.0, it is possible to set the username and password for any server in the plugins configuration file, to be used instead of the credentials passed to the API call.

The plugin does not change the API for running statements. Read-write splitting works out of the box. The following example assumes that there is no significant replication lag between the master and the slave.

Пример #3 Executing statements

<?php
/* Load balanced following "myapp" section rules from the plugins config file */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno()) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Statements will be run on the master */
if (!$mysqli->query("DROP TABLE IF EXISTS test")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
if (!$mysqli->query("CREATE TABLE test(id INT)")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
if (!$mysqli->query("INSERT INTO test(id) VALUES (1)")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* read-only: statement will be run on a slave */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
} else {
    $row = $res->fetch_assoc();
    $res->close();
    printf("Slave returns id = '%s'\n", $row['id']);
}
$mysqli->close();
?>

Результатом выполнения данного примера будет что-то подобное:

Slave returns id = '1'


Connection state

The plugin changes the semantics of a PHP MySQL connection handle. A new connection handle represents a connection pool, instead of a single MySQL client-server network connection. The connection pool consists of a master connection, and optionally any number of slave connections.

Every connection from the connection pool has its own state. For example, SQL user variables, temporary tables and transactions are part of the state. For a complete list of items that belong to the state of a connection, see the connection pooling and switching concepts documentation. If the plugin decides to switch connections for load balancing, the application could be given a connection which has a different state. Applications must be made aware of this.

Пример #1 Plugin config with one slave and one master

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

Пример #2 Pitfall: connection state and SQL user variables

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Connection 1, connection bound SQL user variable, no SELECT thus run on master */
if (!$mysqli->query("SET @myrole='master'")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Connection 2, run on slave because SELECT */
if (!($res = $mysqli->query("SELECT @myrole AS _role"))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
} else {
    $row = $res->fetch_assoc();
    $res->close();
    printf("@myrole = '%s'\n", $row['_role']);
}
$mysqli->close();
?>

Результат выполнения данного примера:

@myrole = ''

The example opens a load balanced connection and executes two statements. The first statement SET @myrole='master' does not begin with the string SELECT. Therefore the plugin does not recognize it as a read-only query which shall be run on a slave. The plugin runs the statement on the connection to the master. The statement sets a SQL user variable which is bound to the master connection. The state of the master connection has been changed.

The next statement is SELECT @myrole AS _role. The plugin does recognize it as a read-only query and sends it to the slave. The statement is run on a connection to the slave. This second connection does not have any SQL user variables bound to it. It has a different state than the first connection to the master. The requested SQL user variable is not set. The example script prints @myrole = ''.

It is the responsibility of the application developer to take care of the connection state. The plugin does not monitor all connection state changing activities. Monitoring all possible cases would be a very CPU intensive task, if it could be done at all.

The pitfalls can easily be worked around using SQL hints.


SQL Hints

SQL hints can force a query to choose a specific server from the connection pool. It gives the plugin a hint to use a designated server, which can solve issues caused by connection switches and connection state.

SQL hints are standard compliant SQL comments. Because SQL comments are supposed to be ignored by SQL processing systems, they do not interfere with other programs such as the MySQL Server, the MySQL Proxy, or a firewall.

Three SQL hints are supported by the plugin: The MYSQLND_MS_MASTER_SWITCH hint makes the plugin run a statement on the master, MYSQLND_MS_SLAVE_SWITCH enforces the use of the slave, and MYSQLND_MS_LAST_USED_SWITCH will run a statement on the same server that was used for the previous statement.

The plugin scans the beginning of a statement for the existence of an SQL hint. SQL hints are only recognized if they appear at the beginning of the statement.

Пример #1 Plugin config with one slave and one master

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

Пример #2 SQL hints to prevent connection switches

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno()) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Connection 1, connection bound SQL user variable, no SELECT thus run on master */
if (!$mysqli->query("SET @myrole='master'")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Connection 1, run on master because of SQL hint */
if (!($res = $mysqli->query(sprintf("/*%s*/SELECT @myrole AS _role", MYSQLND_MS_LAST_USED_SWITCH)))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
} else {
    $row = $res->fetch_assoc();
    $res->close();
    printf("@myrole = '%s'\n", $row['_role']);
}
$mysqli->close();
?>

Результат выполнения данного примера:

@myrole = 'master'

In the above example, using MYSQLND_MS_LAST_USED_SWITCH prevents session switching from the master to a slave when running the SELECT statement.

SQL hints can also be used to run SELECT statements on the MySQL master server. This may be desired if the MySQL slave servers are typically behind the master, but you need current data from the cluster.

In version 1.2.0 the concept of a service level has been introduced to address cases when current data is required. Using a service level requires less attention and removes the need of using SQL hints for this use case. Please, find more information below in the service level and consistency section.

Пример #3 Fighting replication lag

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Force use of master, master has always fresh and current data */
if (!$mysqli->query(sprintf("/*%s*/SELECT critical_data FROM important_table", MYSQLND_MS_MASTER_SWITCH))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
?>

A use case may include the creation of tables on a slave. If an SQL hint is not given, then the plugin will send CREATE and INSERT statements to the master. Use the SQL hint MYSQLND_MS_SLAVE_SWITCH if you want to run any such statement on a slave, for example, to build temporary reporting tables.

Пример #4 Table creation on a slave

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Force use of slave */
if (!$mysqli->query(sprintf("/*%s*/CREATE TABLE slave_reporting(id INT)", MYSQLND_MS_SLAVE_SWITCH))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
/* Continue using this particular slave connection */
if (!$mysqli->query(sprintf("/*%s*/INSERT INTO slave_reporting(id) VALUES (1), (2), (3)", MYSQLND_MS_LAST_USED_SWITCH))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
/* Don't use MYSQLND_MS_SLAVE_SWITCH which would allow switching to another slave! */
if ($res = $mysqli->query(sprintf("/*%s*/SELECT COUNT(*) AS _num FROM slave_reporting", MYSQLND_MS_LAST_USED_SWITCH))) {
    $row = $res->fetch_assoc();
    $res->close();
    printf("There are %d rows in the table 'slave_reporting'", $row['_num']);
} else {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
$mysqli->close();
?>

The SQL hint MYSQLND_MS_LAST_USED forbids switching a connection, and forces use of the previously used connection.


Local transactions

The current version of the plugin is not transaction safe by default, because it is not aware of running transactions in all cases. SQL transactions are units of work to be run on a single server. The plugin does not always know when the unit of work starts and when it ends. Therefore, the plugin may decide to switch connections in the middle of a transaction.

No kind of MySQL load balancer can detect transaction boundaries without any kind of hint from the application.

You can either use SQL hints to work around this limitation. Alternatively, you can activate transaction API call monitoring. In the latter case you must use API calls only to control transactions, see below.

Пример #1 Plugin config with one slave and one master

[myapp]
{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

Пример #2 Using SQL hints for transactions

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Not a SELECT, will use master */
if (!$mysqli->query("START TRANSACTION")) {
    /* Please use better error handling in your code */
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Prevent connection switch! */
if (!$mysqli->query(sprintf("/*%s*/INSERT INTO test(id) VALUES (1)", MYSQLND_MS_LAST_USED_SWITCH))) {
    /* Please do proper ROLLBACK in your code, don't just die */
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if ($res = $mysqli->query(sprintf("/*%s*/SELECT COUNT(*) AS _num FROM test", MYSQLND_MS_LAST_USED_SWITCH))) {
    $row = $res->fetch_assoc();
    $res->close();
    if ($row['_num'] > 1000) {
        if (!$mysqli->query(sprintf("/*%s*/INSERT INTO events(task) VALUES ('cleanup')", MYSQLND_MS_LAST_USED_SWITCH))) {
            die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
        }
    }
} else {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if (!$mysqli->query(sprintf("/*%s*/UPDATE log SET last_update = NOW()", MYSQLND_MS_LAST_USED_SWITCH))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if (!$mysqli->query(sprintf("/*%s*/COMMIT", MYSQLND_MS_LAST_USED_SWITCH))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

$mysqli->close();
?>

Starting with PHP 5.4.0, the mysqlnd library allows the plugin to monitor the status of the autocommit mode, if the mode is set by API calls instead of using SQL statements such as SET AUTOCOMMIT=0. This makes it possible for the plugin to become transaction aware. In this case, you do not need to use SQL hints.

If using PHP 5.4.0 or newer, API calls that enable autocommit mode, and when setting the plugin configuration option trx_stickiness=master, the plugin can automatically disable load balancing and connection switches for SQL transactions. In this configuration, the plugin stops load balancing if autocommit is disabled and directs all statements to the master. This prevents connection switches in the middle of a transaction. Once autocommit is re-enabled, the plugin starts to load balance statements again.

API based transaction boundary detection has been improved with PHP 5.5.0 and PECL/mysqlnd_ms 1.5.0 to cover not only calls to mysqli_autocommit() but also mysqli_begin(), mysqli_commit() and mysqli_rollback().

Пример #3 Transaction aware load balancing: trx_stickiness setting

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "trx_stickiness": "master"
    }
}

Пример #4 Transaction aware

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Disable autocommit, plugin will run all statements on the master */
$mysqli->autocommit(false);

if (!$mysqli->query("INSERT INTO test(id) VALUES (1)")) {
    /* Please do proper ROLLBACK in your code, don't just die */
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if ($res = $mysqli->query("SELECT COUNT(*) AS _num FROM test")) {
    $row = $res->fetch_assoc();
    $res->close();
    if ($row['_num'] > 1000) {
        if (!$mysqli->query("INSERT INTO events(task) VALUES ('cleanup')")) {
            die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
        }
    }
} else {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if (!$mysqli->query("UPDATE log SET last_update = NOW()")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if (!$mysqli->commit()) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Plugin assumes that the transaction has ended and starts load balancing again */
$mysqli->autocommit(true);
$mysqli->close();
?>

Замечание: Version requirement

The plugin configuration option trx_stickiness=master requires PHP 5.4.0 or newer.

Please note the restrictions outlined in the transaction handling concepts section.


XA/Distributed Transactions

Замечание: Version requirement

XA related functions have been introduced in PECL mysqlnd_ms version 1.6.0-alpha.

Замечание: Early adaptors wanted

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments, although early lab tests indicate reasonable quality.

Please, contact the development team if you are interested in this feature. We are looking for real life feedback to complement the feature.

XA transactions are a standardized method for executing transactions across multiple resources. Those resources can be databases or other transactional systems. The MySQL server supports XA SQL statements which allows users to carry out a distributed SQL transaction that spawns multiple database servers or any kind as long as they support the SQL statements too. In such a scenario it is in the responsibility of the user to coordinate the participating servers.

PECL/mysqlnd_ms can act as a transaction coordinator for a global (distributed, XA) transaction carried out on MySQL servers only. As a transaction coordinator, the plugin tracks all servers involved in a global transaction and transparently issues appropriate SQL statements on the participants. The global transactions are controlled with mysqlnd_ms_xa_begin(), mysqlnd_ms_xa_commit() and mysqlnd_ms_xa_rollback(). SQL details are mostly hidden from the application as is the need to track and coordinate participants.

Пример #1 General pattern for XA transactions

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* start a global transaction */
$gtrid_id = "12345";
if (!mysqlnd_ms_xa_begin($mysqli, $gtrid_id)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* run queries as usual: XA BEGIN will be injected upon running a query */
if (!$mysqli->query("INSERT INTO orders(order_id, item) VALUES (1, 'christmas tree, 1.8m')")) {
    /* Either INSERT failed or the injected XA BEGIN failed */
    if ('XA' == substr($mysqli->sqlstate, 0, 2)) {
        printf("Global transaction/XA related failure, [%d] %s\n", $mysqli->errno, $mysqli->error);
    } else {
        printf("INSERT failed, [%d] %s\n", $mysqli->errno, $mysqli->error);
    }
    /* rollback global transaction */
    mysqlnd_ms_xa_rollback($mysqli, $xid);
    die("Stopping.");
}

/* continue carrying out queries on other servers, e.g. other shards */

/* commit the global transaction */
if (!mysqlnd_ms_xa_commit($mysqli, $xa_id)) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
?>

Unlike with local transactions, which are carried out on a single server, XA transactions have an identifier (xid) associated with them. The XA transaction identifier is composed of a global transaction identifier (gtrid), a branch qualifier (bqual) a format identifier (formatID). Only the global transaction identifier can and must be given when calling any of the plugins XA functions.

Once a global transaction has been started, the plugin begins tracking servers until the global transaction ends. When a server is picked for query execution, the plugin injects the SQL statement XA BEGIN prior to executing the actual SQL statement on the server. XA BEGIN makes the server participate in the global transaction. If the injected SQL statement fails, the plugin will report the issue in reply to the query execution function that was used. In the above example, $mysqli->query("INSERT INTO orders(order_id, item) VALUES (1, 'christmas tree, 1.8m')") would indicate such an error. You may want to check the errors SQL state code to determine whether the actual query (here: INSERT) has failed or the error is related to the global transaction. It is up to you to ignore the failure to start the global transaction on a server and continue execution without having the server participate in the global transaction.

Пример #2 Local and global transactions are mutually exclusive

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* start a local transaction */
if (!$mysqli->begin_transaction()) {
    die(sprintf("[%d/%s] %s\n", $mysqli->errno, $mysqli->sqlstate, $mysqli->error));
}

/* cannot start global transaction now - must end local transaction first */
$gtrid_id = "12345";
if (!mysqlnd_ms_xa_begin($mysqli, $gtrid_id)) {
    die(sprintf("[%d/%s] %s\n", $mysqli->errno, $mysqli->sqlstate, $mysqli->error));
}
?>

Результат выполнения данного примера:

Warning: mysqlnd_ms_xa_begin(): (mysqlnd_ms) Some work is done outside global transaction. You must end the active local transaction first in ... on line ...
[1400/XAE09] (mysqlnd_ms) Some work is done outside global transaction. You must end the active local transaction first

A global transaction cannot be started when a local transaction is active. The plugin tries to detect this situation as early as possible, that is when mysqlnd_ms_xa_begin() is called. If using API calls only to control transactions, the plugin will know that a local transaction is open and return an error for mysqlnd_ms_xa_begin(). However, note the plugins limitations on detecting transaction boundaries.. In the worst case, if using direct SQL for local transactions (BEGIN, COMMIT, ...), it may happen that an error is delayed until some SQL is executed on a server.

To end a global transaction invoke mysqlnd_ms_xa_commit() or mysqlnd_ms_xa_rollback(). When a global transaction is ended all participants must be informed of the end. Therefore, PECL/mysqlnd_ms transparently issues appropriate XA related SQL statements on some or all of them. Any failure during this phase will cause an implicit rollback. The XA related API is intentionally kept simple here. A more complex API that gave more control would bare few, if any, advantages over a user implementation that issues all lower level XA SQL statements itself.

XA transactions use the two-phase commit protocol. The two-phase commit protocol is a blocking protocol. There are cases when no progress can be made, not even when using timeouts. Transaction coordinators should survive their own failure, be able to detect blockades and break ties. PECL/mysqlnd_ms takes the role of a transaction coordinator and can be configured to survive its own crash to avoid issues with blocked MySQL servers. Therefore, the plugin can and should be configured to use a persistent and crash-safe state to allow garbage collection of unfinished, aborted global transactions. A global transaction can be aborted in an open state if either the plugin fails (crashes) or a connection from the plugin to a global transaction participant fails.

Пример #3 Transaction coordinator state store

{
    "myapp": {
        "xa": {
            "state_store": {
                "participant_localhost_ip": "192.168.2.12",
                "mysql": {
                    "host": "192.168.2.13",
                    "user": "root",
                    "password": "",
                    "db": "test",
                    "port": "3312",
                    "socket": null
                }
            }
        },
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.14",
                "port": "3306"
            }
        }
    }
}

Currently, PECL/mysqlnd_ms supports only using MySQL database tables as a state store. The SQL definitions of the tables are given in the plugin configuration section. Please, make sure to use a transactional and crash-safe storage engine for the tables, such as InnoDB. InnoDB is the default table engine in recent versions of the MySQL server. Make also sure the database server itself is highly available.

If a state store has been configured, the plugin can perform a garbage collection. During garbage collection it may be necessary to connect to a participant of a failed global transaction. Thus, the state store holds a list of participants and, among others, their host names. If the garbage collection is run on another host but the one that has written a participant entry with the host name localhost, then localhost resolves to different machines. There are two solutions to the problem. Either you do not configure any servers with the host name localhost but configure an IP address (and port) or, you hint the garbage collection. In the above example, localhost is used for master_0, hence it may not resolve to the correct host during garbage collection. However, participant_localhost_ip is also set to hint the garbage collection that localhost stands for the IP 192.168.2.12.


Service level and consistency

Замечание: Version requirement

Service levels have been introduced in PECL mysqlnd_ms version 1.2.0-alpha. mysqlnd_ms_set_qos() is available with PHP 5.4.0 or newer.

Different types of MySQL cluster solutions offer different service and data consistency levels to their users. An asynchronous MySQL replication cluster offers eventual consistency by default. A read executed on an asynchronous slave may return current, stale or no data at all, depending on whether the slave has replayed all changesets from the master or not.

Applications using an MySQL replication cluster need to be designed to work correctly with eventual consistent data. In some cases, however, stale data is not acceptable. In those cases only certain slaves or even only master accesses are allowed to achieve the required quality of service from the cluster.

As of PECL mysqlnd_ms 1.2.0 the plugin is capable of selecting MySQL replication nodes automatically that deliver session consistency or strong consistency. Session consistency means that one client can read its writes. Other clients may or may not see the clients' write. Strong consistency means that all clients will see all writes from the client.

Пример #1 Session consistency: read your writes

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        }
    }
}

Пример #2 Requesting session consistency

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* read-write splitting: master used */
if (!$mysqli->query("INSERT INTO orders(order_id, item) VALUES (1, 'christmas tree, 1.8m')")) {
    /* Please use better error handling in your code */
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Request session consistency: read your writes */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Plugin picks a node which has the changes, here: master */
if (!$res = $mysqli->query("SELECT item FROM orders WHERE order_id = 1")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

var_dump($res->fetch_assoc());

/* Back to eventual consistency: stale data allowed */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Plugin picks any slave, stale data is allowed */
if (!$res = $mysqli->query("SELECT item, price FROM specials")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
?>

Service levels can be set in the plugins configuration file and at runtime using mysqlnd_ms_set_qos(). In the example the function is used to enforce session consistency (read your writes) for all future statements until further notice. The SELECT statement on the orders table is run on the master to ensure the previous write can be seen by the client. Read-write splitting logic has been adapted to fulfill the service level.

After the application has read its changes from the orders table it returns to the default service level, which is eventual consistency. Eventual consistency puts no restrictions on choosing a node for statement execution. Thus, the SELECT statement on the specials table is executed on a slave.

The new functionality supersedes the use of SQL hints and the master_on_write configuration option. In many cases mysqlnd_ms_set_qos() is easier to use, more powerful improves portability.

Пример #3 Maximum age/slave lag

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "failover" : "master"
    }
}

Пример #4 Limiting slave lag

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Read from slaves lagging no more than four seconds */
$ret = mysqlnd_ms_set_qos(
    $mysqli,
    MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL,
    MYSQLND_MS_QOS_OPTION_AGE,
    4
);

if (!$ret) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Plugin picks any slave, which may or may not have the changes */
if (!$res = $mysqli->query("SELECT item, price FROM daytrade")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Back to default: use of all slaves and masters permitted */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
?>

The eventual consistency service level can be used with an optional parameter to set a maximum slave lag for choosing slaves. If set, the plugin checks SHOW SLAVE STATUS for all configured slaves. In case of the example, only slaves for which Slave_IO_Running=Yes, Slave_SQL_Running=Yes and Seconds_Behind_Master <= 4 is true are considered for executing the statement SELECT item, price FROM daytrade.

Checking SHOW SLAVE STATUS is done transparently from an applications perspective. Errors, if any, are reported as warnings. No error will be set on the connection handle. Even if all SHOW SLAVE STATUS SQL statements executed by the plugin fail, the execution of the users statement is not stopped, given that master fail over is enabled. Thus, no application changes are required.

Замечание: Expensive and slow operation

Checking SHOW SLAVE STATUS for all slaves adds overhead to the application. It is an expensive and slow background operation. Try to minimize the use of it. Unfortunately, a MySQL replication cluster does not give clients the possibility to request a list of candidates from a central instance. Thus, a more efficient way of checking the slaves lag is not available.

Please, note the limitations and properties of SHOW SLAVE STATUS as explained in the MySQL reference manual.

To prevent mysqlnd_ms from emitting a warning if no slaves can be found that lag no more than the defined number of seconds behind the master, it is necessary to enable master fail over in the plugins configuration file. If no slaves can be found and fail over is turned on, the plugin picks a master for executing the statement.

If no slave can be found and fail over is turned off, the plugin emits a warning, it does not execute the statement and it sets an error on the connection.

Пример #5 Fail over not set

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        }
    }
}

Пример #6 No slave within time limit

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Read from slaves lagging no more than four seconds */
$ret = mysqlnd_ms_set_qos(
    $mysqli,
    MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL,
    MYSQLND_MS_QOS_OPTION_AGE,
    4
);

if (!$ret) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Plugin picks any slave, which may or may not have the changes */
if (!$res = $mysqli->query("SELECT item, price FROM daytrade")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Back to default: use of all slaves and masters permitted */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
?>

Результат выполнения данного примера:

PHP Warning:  mysqli::query(): (mysqlnd_ms) Couldn't find the appropriate slave connection. 0 slaves to choose from. Something is wrong in %s on line %d
PHP Warning:  mysqli::query(): (mysqlnd_ms) No connection selected by the last filter in %s on line %d
[2000] (mysqlnd_ms) No connection selected by the last filter


Global transaction IDs

Замечание: Version requirement

A client-side global transaction ID injection has been introduced in mysqlnd_ms version 1.2.0-alpha. The feature is not required for synchronous clusters, such as MySQL Cluster. Use it with asynchronous clusters such as classical MySQL replication.

As of MySQL 5.6.5-m8 release candidate the MySQL server features built-in global transaction identifiers. The MySQL built-in global transaction ID feature is supported by PECL/mysqlnd_ms 1.3.0-alpha or later. However, the final feature set found in MySQL 5.6 production releases to date is not sufficient to support the ideas discussed below in all cases. Please, see also the concepts section.

PECL/mysqlnd_ms can either use its own global transaction ID emulation or the global transaction ID feature built-in to MySQL 5.6.5-m8 or later. From a developer perspective the client-side and server-side approach offer the same features with regards to service levels provided by PECL/mysqlnd_ms. Their differences are discussed in the concepts section.

The quickstart first demonstrates the use of the client-side global transaction ID emulation built-in to PECL/mysqlnd_ms before its show how to use the server-side counterpart. The order ensures that the underlying idea is discussed first.

Idea and client-side emulation

In its most basic form a global transaction ID (GTID) is a counter in a table on the master. The counter is incremented whenever a transaction is committed on the master. Slaves replicate the table. The counter serves two purposes. In case of a master failure, it helps the database administrator to identify the most recent slave for promoting it to the new master. The most recent slave is the one with the highest counter value. Applications can use the global transaction ID to search for slaves which have replicated a certain write (identified by a global transaction ID) already.

PECL/mysqlnd_ms can inject SQL for every committed transaction to increment a GTID counter. The so created GTID is accessible by the application to identify an applications write operation. This enables the plugin to deliver session consistency (read your writes) service level by not only querying masters but also slaves which have replicated the change already. Read load is taken away from the master.

Client-side global transaction ID emulation has some limitations. Please, read the concepts section carefully to fully understand the principles and ideas behind it, before using in production environments. The background knowledge is not required to continue with the quickstart.

First, create a counter table on your master server and insert a record into it. The plugin does not assist creating the table. Database administrators must make sure it exists. Depending on the error reporting mode, the plugin will silently ignore the lack of the table or bail out.

Пример #1 Create counter table on master

CREATE TABLE `trx` (
  `trx_id` int(11) DEFAULT NULL,
  `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1
INSERT INTO `trx`(`trx_id`) VALUES (1);

In the plugins configuration file set the SQL to update the global transaction ID table using on_commit from the global_transaction_id_injection section. Make sure the table name used for the UPDATE statement is fully qualified. In the example, test.trx is used to refer to table trx in the schema (database) test. Use the table that was created in the previous step. It is important to set the fully qualified table name because the connection on which the injection is done may use a different default database. Make sure the user that opens the connection is allowed to execute the UPDATE.

Enable reporting of errors that may occur when mysqlnd_ms does global transaction ID injection.

Пример #2 Plugin config: SQL for client-side GTID injection

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "global_transaction_id_injection":{
            "on_commit":"UPDATE test.trx SET trx_id = trx_id + 1",
            "report_error":true
        }
    }
}

Пример #3 Transparent global transaction ID injection

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("DROP TABLE IF EXISTS test")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("CREATE TABLE test(id INT)")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("INSERT INTO test(id) VALUES (1)")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* auto commit mode, read on slave, no increment */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

var_dump($res->fetch_assoc());
?>

Результат выполнения данного примера:

array(1) {
  ["id"]=>
  string(1) "1"
}

The example runs three statements in auto commit mode on the master, causing three transactions on the master. For every such statement, the plugin will inject the configured UPDATE transparently before executing the users SQL statement. When the script ends the global transaction ID counter on the master has been incremented by three.

The fourth SQL statement executed in the example, a SELECT, does not trigger an increment. Only transactions (writes) executed on a master shall increment the GTID counter.

Замечание: SQL for global transaction ID: efficient solution wanted!

The SQL used for the client-side global transaction ID emulation is inefficient. It is optimized for clearity not for performance. Do not use it for production environments. Please, help finding an efficient solution for inclusion in the manual. We appreciate your input.

Пример #4 Plugin config: SQL for fetching GTID

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "global_transaction_id_injection":{
            "on_commit":"UPDATE test.trx SET trx_id = trx_id + 1",
            "fetch_last_gtid" : "SELECT MAX(trx_id) FROM test.trx",
            "report_error":true
        }
    }
}

Пример #5 Obtaining GTID after injection

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("DROP TABLE IF EXISTS test")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

printf("GTID after transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("CREATE TABLE test(id INT)")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

printf("GTID after transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));
?>

Результат выполнения данного примера:

GTID after transaction 7
GTID after transaction 8

Applications can ask PECL mysqlnd_ms for a global transaction ID which belongs to the last write operation performed by the application. The function mysqlnd_ms_get_last_gtid() returns the GTID obtained when executing the SQL statement from the fetch_last_gtid entry of the global_transaction_id_injection section from the plugins configuration file. The function may be called after the GTID has been incremented.

Applications are adviced not to run the SQL statement themselves as this bares the risk of accidentally causing an implicit GTID increment. Also, if the function is used, it is easy to migrate an application from one SQL statement for fetching a transaction ID to another, for example, if any MySQL server ever features built-in global transaction ID support.

The quickstart shows a SQL statement which will return a GTID equal or greater to that created for the previous statement. It is exactly the GTID created for the previous statement if no other clients have incremented the GTID in the time span between the statement execution and the SELECT to fetch the GTID. Otherwise, it is greater.

Пример #6 Plugin config: Checking for a certain GTID

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "global_transaction_id_injection":{
            "on_commit":"UPDATE test.trx SET trx_id = trx_id + 1",
            "fetch_last_gtid" : "SELECT MAX(trx_id) FROM test.trx",
            "check_for_gtid" : "SELECT trx_id FROM test.trx WHERE trx_id >= #GTID",
            "report_error":true
        }
    }
}

Пример #7 Session consistency service level and GTID combined

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* auto commit mode, transaction on master, GTID must be incremented */
if (   !$mysqli->query("DROP TABLE IF EXISTS test")
    || !$mysqli->query("CREATE TABLE test(id INT)")
    || !$mysqli->query("INSERT INTO test(id) VALUES (1)")
) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* GTID as an identifier for the last write */
$gtid = mysqlnd_ms_get_last_gtid($mysqli);

/* Session consistency (read your writes): try to read from slaves not only master */
if (false == mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION, MYSQLND_MS_QOS_OPTION_GTID, $gtid)) {
    die(sprintf("[006] [%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Either run on master or a slave which has replicated the INSERT */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

var_dump($res->fetch_assoc());
?>

A GTID returned from mysqlnd_ms_get_last_gtid() can be used as an option for the session consistency service level. Session consistency delivers read your writes. Session consistency can be requested by calling mysqlnd_ms_set_qos(). In the example, the plugin will execute the SELECT statement either on the master or on a slave which has replicated the previous INSERT already.

PECL mysqlnd_ms will transparently check every configured slave if it has replicated the INSERT by checking the slaves GTID table. The check is done running the SQL set with the check_for_gtid option from the global_transaction_id_injection section of the plugins configuration file. Please note, that this is a slow and expensive procedure. Applications should try to use it sparsely and only if read load on the master becomes to high otherwise.

Use of the server-side global transaction ID feature

Замечание: Insufficient server support in MySQL 5.6

The plugin has been developed against a pre-production version of MySQL 5.6. It turns out that all released production versions of MySQL 5.6 do not provide clients with enough information to enforce session consistency based on GTIDs. Please, read the concepts section for details.

Starting with MySQL 5.6.5-m8 the MySQL Replication system features server-side global transaction IDs. Transaction identifiers are automatically generated and maintained by the server. Users do not need to take care of maintaining them. There is no need to setup any tables in advance, or for setting on_commit. A client-side emulation is no longer needed.

Clients can continue to use global transaction identifier to achieve session consistency when reading from MySQL Replication slaves in some cases but not all! The algorithm works as described above. Different SQL statements must be configured for fetch_last_gtid and check_for_gtid. The statements are given below. Please note, MySQL 5.6.5-m8 is a development version. Details of the server implementation may change in the future and require adoption of the SQL statements shown.

Using the following configuration any of the above described functionality can be used together with the server-side global transaction ID feature. mysqlnd_ms_get_last_gtid() and mysqlnd_ms_set_qos() continue to work as described above. The only difference is that the server does not use a simple sequence number but a string containing of a server identifier and a sequence number. Thus, users cannot easily derive an order from GTIDs returned by mysqlnd_ms_get_last_gtid().

Пример #8 Plugin config: using MySQL 5.6.5-m8 built-in GTID feature

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "global_transaction_id_injection":{
            "fetch_last_gtid" : "SELECT @@GLOBAL.GTID_DONE AS trx_id FROM DUAL",
            "check_for_gtid" : "SELECT GTID_SUBSET('#GTID', @@GLOBAL.GTID_DONE) AS trx_id FROM DUAL",
            "report_error":true
        }
    }
}


Cache integration

Замечание: Version requirement, dependencies and status

Please, find more about version requirements, extension load order dependencies and the current status in the concepts section!

Databases clusters can deliver different levels of consistency. As of PECL/mysqlnd_ms 1.2.0 it is possible to advice the plugin to consider only cluster nodes that can deliver the consistency level requested. For example, if using asynchronous MySQL Replication with its cluster-wide eventual consistency, it is possible to request session consistency (read your writes) at any time using mysqlnd_ms_set_quos(). Please, see also the service level and consistency introduction.

Пример #1 Recap: quality of service to request read your writes

/* Request session consistency: read your writes */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

Assuming PECL/mysqlnd has been explicitly told to deliver no consistency level higher than eventual consistency, it is possible to replace a database node read access with a client-side cache using time-to-live (TTL) as its invalidation strategy. Both the database node and the cache may or may not serve current data as this is what eventual consistency defines.

Replacing a database node read access with a local cache access can improve overall performance and lower the database load. If the cache entry is every reused by other clients than the one creating the cache entry, a database access is saved and thus database load is lowered. Furthermore, system performance can become better if computation and delivery of a database query is slower than a local cache access.

Пример #2 Plugin config: no special entries for caching

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
    }
}

Пример #3 Caching a slave request

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

if (   !$mysqli->query("DROP TABLE IF EXISTS test")
    || !$mysqli->query("CREATE TABLE test(id INT)")
    || !$mysqli->query("INSERT INTO test(id) VALUES (1)")
) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Explicitly allow eventual consistency and caching (TTL <= 60 seconds) */
if (false == mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL, MYSQLND_MS_QOS_OPTION_CACHE, 60)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* To make this example work, we must wait for a slave to catch up. Brute force style. */
$attempts = 0;
do {
    /* check if slave has the table */
    if ($res = $mysqli->query("SELECT id FROM test")) {
        break;
    } else if ($mysqli->errno) {
        die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
    }
    /* wait for slave to catch up */
    usleep(200000);
} while ($attempts++ < 10);

/* Query has been run on a slave, result is in the cache */
assert($res);
var_dump($res->fetch_assoc());

/* Served from cache */
$res = $mysqli->query("SELECT id FROM test");
?>

The example shows how to use the cache feature. First, you have to set the quality of service to eventual consistency and explicitly allow for caching. This is done by calling mysqlnd_ms_set_qos(). Then, the result set of every read-only statement is cached for upto that many seconds as allowed with mysqlnd_ms_set_qos().

The actual TTL is lower or equal to the value set with mysqlnd_ms_set_qos(). The value passed to the function sets the maximum age (seconds) of the data delivered. To calculate the actual TTL value the replication lag on a slave is checked and subtracted from the given value. If, for example, the maximum age is set to 60 seconds and the slave reports a lag of 10 seconds the resulting TTL is 50 seconds. The TTL is calculated individually for every cached query.

Пример #4 Read your writes and caching combined

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

if (   !$mysqli->query("DROP TABLE IF EXISTS test")
    || !$mysqli->query("CREATE TABLE test(id INT)")
    || !$mysqli->query("INSERT INTO test(id) VALUES (1)")
) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Explicitly allow eventual consistency and caching (TTL <= 60 seconds) */
if (false == mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL, MYSQLND_MS_QOS_OPTION_CACHE, 60)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* To make this example work, we must wait for a slave to catch up. Brute force style. */
$attempts = 0;
do {
    /* check if slave has the table */
    if ($res = $mysqli->query("SELECT id FROM test")) {
        break;
    } else if ($mysqli->errno) {
        die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
    }
    /* wait for slave to catch up */
    usleep(200000);
} while ($attempts++ < 10);

assert($res);

/* Query has been run on a slave, result is in the cache */
var_dump($res->fetch_assoc());

/* Served from cache */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
var_dump($res->fetch_assoc());

/* Update on master */
if (!$mysqli->query("UPDATE test SET id = 2")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Read your writes */
if (false == mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Fetch latest data */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
var_dump($res->fetch_assoc());
?>

The quality of service can be changed at any time to avoid further cache usage. If needed, you can switch to read your writes (session consistency). In that case, the cache will not be used and fresh data is read.


Failover

By default, the plugin does not attempt to fail over if connecting to a host fails. This prevents pitfalls related to connection state. It is recommended to manually handle connection errors in a way similar to a failed transaction. You should catch the error, rebuild the connection state and rerun your query as shown below.

If connection state is no issue to you, you can alternatively enable automatic and silent failover. Depending on the configuration, the automatic and silent failover will either attempt to fail over to the master before issuing and error or, try to connect to other slaves, given the query allowes for it, before attempting to connect to a master. Because automatic failover is not fool-proof, it is not discussed in the quickstart. Instead, details are given in the concepts section below.

Пример #1 Manual failover, automatic optional

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "simulate_slave_failure",
                "port": "0"
            },
            "slave_1": {
                "host": "127.0.0.1",
                "port": 3311
            }
        },
       "filters": { "roundrobin": [] }
    }
 }

Пример #2 Manual failover

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

$sql = "SELECT 1 FROM DUAL";

/* error handling as it should be done regardless of the plugin */
if (!($res = $link->query($sql))) {
    /* plugin specific: check for connection error */
    switch ($link->errno) {
    case 2002:
    case 2003:
    case 2005:
        printf("Connection error - trying next slave!\n");
        /* load balancer will pick next slave */
        $res = $link->query($sql);
        break;
    default:
        /* no connection error, failover is unlikely to help */
        die(sprintf("SQL error: [%d] %s", $link->errno, $link->error));
        break;
    }
}
if ($res) {
    var_dump($res->fetch_assoc());
}
?>


Partitioning and Sharding

Database clustering is done for various reasons. Clusters can improve availability, fault tolerance, and increase performance by applying a divide and conquer approach as work is distributed over many machines. Clustering is sometimes combined with partitioning and sharding to further break up a large complex task into smaller, more manageable units.

The mysqlnd_ms plugin aims to support a wide variety of MySQL database clusters. Some flavors of MySQL database clusters have built-in methods for partitioning and sharding, which could be transparent to use. The plugin supports the two most common approaches: MySQL Replication table filtering, and Sharding (application based partitioning).

MySQL Replication supports partitioning as filters that allow you to create slaves that replicate all or specific databases of the master, or tables. It is then in the responsibility of the application to choose a slave according to the filter rules. You can either use the mysqlnd_ms node_groups filter to manually support this, or use the experimental table filter.

Manual partitioning or sharding is supported through the node grouping filter, and SQL hints as of 1.5.0. The node_groups filter lets you assign a symbolic name to a group of master and slave servers. In the example, the master master_0 and slave_0 form a group with the name Partition_A. It is entirely up to you to decide what makes up a group. For example, you may use node groups for sharding, and use the group names to address shards like Shard_A_Range_0_100.

Пример #1 Cluster node groups

{
  "myapp": {
       "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "simulate_slave_failure",
                "port": "0"
            },
            "slave_1": {
                "host": "127.0.0.1",
                "port": 3311
            }
        },
        "filters": {
            "node_groups": {
                "Partition_A" : {
                    "master": ["master_0"],
                    "slave": ["slave_0"]
                }
            },
           "roundrobin": []
        }
    }
}

Пример #2 Manual partitioning using SQL hints

<?php
function select($mysqli, $msg, $hint = '')
{
    /* Note: weak test, two connections to two servers may have the same thread id */
    $sql = sprintf("SELECT CONNECTION_ID() AS _thread, '%s' AS _hint FROM DUAL", $msg);
    if ($hint) {
        $sql = $hint . $sql;
    }
    if (!($res = $mysqli->query($sql))) {
        printf("[%d] %s", $mysqli->errno, $mysqli->error);
        return false;
    }
    $row =  $res->fetch_assoc();
    printf("%d - %s - %s\n", $row['_thread'], $row['_hint'], $sql);
    return true;
}

$mysqli = new mysqli("myapp", "user", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* All slaves allowed */
select($mysqli, "slave_0");
select($mysqli, "slave_1");

/* only servers of node group "Partition_A" allowed */
select($mysqli, "slave_1", "/*Partition_A*/");
select($mysqli, "slave_1", "/*Partition_A*/");
?>
6804 - slave_0 - SELECT CONNECTION_ID() AS _thread, 'slave1' AS _hint FROM DUAL
2442 - slave_1 - SELECT CONNECTION_ID() AS _thread, 'slave2' AS _hint FROM DUAL
6804 - slave_0 - /*Partition_A*/SELECT CONNECTION_ID() AS _thread, 'slave1' AS _hint FROM DUAL
6804 - slave_0 - /*Partition_A*/SELECT CONNECTION_ID() AS _thread, 'slave1' AS _hint FROM DUAL

By default, the plugin will use all configured master and slave servers for query execution. But if a query begins with a SQL hint like /*node_group*/, the plugin will only consider the servers listed in the node_group for query execution. Thus, SELECT queries prefixed with /*Partition_A*/ will only be executed on slave_0.


MySQL Fabric

Замечание: Version requirement and status

Work on supporting MySQL Fabric started in version 1.6. Please, consider the support to be of pre-alpha quality. The manual may not list all features or feature limitations. This is work in progress.

Sharding is the only use case supported by the plugin to date.

Замечание: MySQL Fabric concepts

Please, check the MySQL reference manual for more information about MySQL Fabric and how to set it up. The PHP manual assumes that you are familiar with the basic concepts and ideas of MySQL Fabric.

MySQL Fabric is a system for managing farms of MySQL servers to achive High Availability and optionally support sharding. Technically, it is a middleware to manage and monitor MySQL servers.

Clients query MySQL Fabric to obtain lists of MySQL servers, their state and their roles. For example, clients can request a list of slaves for a MySQL Replication group and whether they are ready to handle SQL requests. Another example is a cluster of sharded MySQL servers where the client seeks to know which shard to query for a given table and shard key. If configured to use Fabric, the plugin uses XML RCP over HTTP to obtain the list at runtime from a MySQL Fabric host. The XML remote procedure call itself is done in the background and transparent from a developers point of view.

Instead of listing MySQL servers directly in the plugins configuration file it contains a list of one or more MySQL Fabric hosts

Пример #1 Plugin config: Fabric hosts instead of MySQL servers

{
    "myapp": {
        "fabric": {
            "hosts": [
                {
                    "host" : "127.0.0.1",
                    "port" : 8080
                }
            ]
        }
    }
}

Users utilize the new functions mysqlnd_ms_fabric_select_shard() and mysqlnd_ms_fabric_select_global() to switch to the set of servers responsible for a given shard key. Then, the plugin picks an appropriate server for running queries on. When doing so, the plugin takes care of additional load balancing rules set.

The below example assumes that MySQL Fabric has been setup to shard the table test.fabrictest using the id column of the table as a shard key.

Пример #2 Manual partitioning using SQL hints

<?php
$mysqli = new mysqli("myapp", "user", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Create a global table - a table available on all shards */
mysqlnd_ms_fabric_select_global($mysqli, "test.fabrictest");
if (!$mysqli->query("CREATE TABLE test.fabrictest(id INT NOT NULL PRIMARY KEY)")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Switch connection to appropriate shard and insert record */
mysqlnd_ms_fabric_select_shard($mysqli, "test.fabrictest", 10);
if (!($res = $mysqli->query("INSERT INTO fabrictest(id) VALUES (10)"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Try to read newly inserted record */
mysqlnd_ms_fabric_select_shard($mysqli, "test.fabrictest", 10);
if (!($res = $mysqli->query("SELECT id FROM test WHERE id = 10"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
?>

The example creates the sharded table, inserts a record and reads the record thereafter. All SQL data definition language (DDL) operations on a sharded table must be applied to the so called global server group. Prior to creating or altering a sharded table, mysqlnd_ms_fabric_select_global() is called to switch the given connection to the corresponding servers of the global group. Data manipulation (DML) SQL statements must be sent to the shards directly. The mysqlnd_ms_fabric_select_shard() switches a connection to shards handling a certain shard key.


Concepts

Содержание

  • Architecture
  • Connection pooling and switching
  • Local transaction handling
  • Error handling
  • Transient errors
  • Failover
  • Load balancing
  • Read-write splitting
  • Filter
  • Service level and consistency
  • Global transaction IDs
  • Cache integration
  • Supported clusters
  • XA/Distributed transactions

This explains the architecture and related concepts for this plugin, and describes the impact that MySQL replication and this plugin have on developmental tasks while using a database cluster. Reading and understanding these concepts is required, in order to use this plugin with success.


Architecture

The mysqlnd replication and load balancing plugin is implemented as a PHP extension. It is written in C and operates under the hood of PHP. During the startup of the PHP interpreter, in the module init phase of the PHP engine, it gets registered as a mysqlnd plugin to replace selected mysqlnd C methods.

At PHP runtime, it inspects queries sent from mysqlnd (PHP) to the MySQL server. If a query is recognized as read-only, it will be sent to one of the configured slave servers. Statements are considered read-only if they either start with SELECT, the SQL hint /*ms=slave*/ or a slave had been chosen for running the previous query, and the query started with the SQL hint /*ms=last_used*/. In all other cases, the query will be sent to the MySQL replication master server.

For better portability, applications should use the MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH, and MYSQLND_MS_LAST_USED_SWITCH predefined mysqlnd_ms constants, instead of their literal values, such as /*ms=slave*/.

The plugin handles the opening and closing of database connections to both master and slave servers. From an application point of view, there continues to be only one connection handle. However, internally, this one public connection handle represents a pool of network connections that are managed by the plugin. The plugin proxies queries to the master server, and to the slaves using multiple connections.

Database connections have a state consisting of, for example, transaction status, transaction settings, character set settings, and temporary tables. The plugin will try to maintain the same state among all internal connections, whenever this can be done in an automatic and transparent way. In cases where it is not easily possible to maintain state among all connections, such as when using BEGIN TRANSACTION, the plugin leaves it to the user to handle.


Connection pooling and switching

The replication and load balancing plugin changes the semantics of a PHP MySQL connection handle. The existing API of the PHP MySQL extensions (mysqli, mysql, and PDO_MYSQL) are not changed in a way that functions are added or removed. But their behavior changes when using the plugin. Existing applications do not need to be adapted to a new API, but they may need to be modified because of the behavior changes.

The plugin breaks the one-by-one relationship between a mysqli, mysql, and PDO_MYSQL connection handle and a MySQL network connection. And a mysqli, mysql, and PDO_MYSQL connection handle represents a local pool of connections to the configured MySQL replication master and MySQL replication slave servers. The plugin redirects queries to the master and slave servers. At some point in time one and the same PHP connection handle may point to the MySQL master server. Later on, it may point to one of the slave servers or still the master. Manipulating and replacing the network connection referenced by a PHP MySQL connection handle is not a transparent operation.

Every MySQL connection has a state. The state of the connections in the connection pool of the plugin can differ. Whenever the plugin switches from one wire connection to another, the current state of the user connection may change. The applications must be aware of this.

The following list shows what the connection state consists of. The list may not be complete.

  • Transaction status
  • Temporary tables
  • Table locks
  • Session system variables and session user variables
  • The current database set using USE and other state chaining SQL commands
  • Prepared statements
  • HANDLER variables
  • Locks acquired with GET_LOCK()

Connection switches happen right before queries are executed. The plugin does not switch the current connection until the next statement is executed.

Замечание: Replication issues

See also the MySQL reference manual chapter about » replication features and related issues. Some restrictions may not be related to the PHP plugin, but are properties of the MySQL replication system.

Broadcasted messages

The plugins philosophy is to align the state of connections in the pool only if the state is under full control of the plugin, or if it is necessary for security reasons. Just a few actions that change the state of the connection fall into this category.

The following is a list of connection client library calls that change state, and are broadcasted to all open connections in the connection pool.

If any of the listed calls below are to be executed, the plugin loops over all open master and slave connections. The loop continues until all servers have been contacted, and the loop does not break if a server indicates a failure. If possible, the failure will propagate to the called user API function, which may be detected depending on which underlying library function was triggered.

Library call | Notes | Version
change_user() | Called by the mysqli_change_user() user API call. Also triggered upon reuse of a persistent mysqli connection. | Since 1.0.0.
select_db | Called by the following user API calls: mysql_select_db(), mysql_list_tables(), mysql_db_query(), mysql_list_fields(), mysqli_select_db(). Note, that SQL USE is not monitored. | Since 1.0.0.
set_charset() | Called by the following user API calls: mysql_set_charset(). mysqli_set_charset(). Note, that SQL SET NAMES is not monitored. | Since 1.0.0.
set_server_option() | Called by the following user API calls: mysqli_multi_query(), mysqli_real_query(), mysqli_query(), mysql_query(). | Since 1.0.0.
set_client_option() | Called by the following user API calls: mysqli_options(), mysqli_ssl_set(), mysqli_connect(), mysql_connect(), mysql_pconnect(). | Since 1.0.0.
set_autocommit() | Called by the following user API calls: mysqli_autocommit(), PDO::setAttribute(PDO::ATTR_AUTOCOMMIT). | Since 1.0.0. PHP >= 5.4.0.
ssl_set() | Called by the following user API calls: mysqli_ssl_set(). | Since 1.1.0.

Broadcasting and lazy connections

The plugin does not proxy or remember all settings to apply them on connections opened in the future. This is important to remember, if using lazy connections. Lazy connections are connections which are not opened before the client sends the first connection. Use of lazy connections is the default plugin action.

The following connection library calls each changed state, and their execution is recorded for later use when lazy connections are opened. This helps ensure that the connection state of all connections in the connection pool are comparable.

Library call | Notes | Version
change_user() | User, password and database recorded for future use. | Since 1.1.0.
select_db | Database recorded for future use. | Since 1.1.0.
set_charset() | Calls set_client_option(MYSQL_SET_CHARSET_NAME, charset) on lazy connection to ensure charset will be used upon opening the lazy connection. | Since 1.1.0.
set_autocommit() | Adds SET AUTOCOMMIT=0|1 to the list of init commands of a lazy connection using set_client_option(MYSQL_INIT_COMMAND, "SET AUTOCOMMIT=...%quot;). | Since 1.1.0. PHP >= 5.4.0.
Предостережение

Connection state

The connection state is not only changed by API calls. Thus, even if PECL mysqlnd_ms monitors all API calls, the application must still be aware. Ultimately, it is the applications responsibility to maintain the connection state, if needed.

Charsets and string escaping

Due to the use of lazy connections, which are a default, it can happen that an application tries to escape a string for use within SQL statements before a connection has been established. In this case string escaping is not possible. The string escape function does not know what charset to use before a connection has been established.

To overcome the problem a new configuration setting server_charset has been introduced in version 1.4.0.

Attention has to be paid on escaping strings with a certain charset but using the result on a connection that uses a different charset. Please note, that PECL/mysqlnd_ms manipulates connections and one application level connection represents a pool of multiple connections that all may have different default charsets. It is recommended to configure the servers involved to use the same default charsets. The configuration setting server_charset does help with this situation as well. If using server_charset, the plugin will set the given charset on all newly opened connections.


Local transaction handling

Transaction handling is fundamentally changed. An SQL transaction is a unit of work that is run on one database server. The unit of work consists of one or more SQL statements.

By default the plugin is not aware of SQL transactions. The plugin may switch connections for load balancing at any point in time. Connection switches may happen in the middle of a transaction. This is against the nature of an SQL transaction. By default, the plugin is not transaction safe.

Any kind of MySQL load balancer must be hinted about the begin and end of a transaction. Hinting can either be done implicitly by monitoring API calls or using SQL hints. Both options are supported by the plugin, depending on your PHP version. API monitoring requires PHP 5.4.0 or newer. The plugin, like any other MySQL load balancer, cannot detect transaction boundaries based on the MySQL Client Server Protocol. Thus, entirely transparent transaction aware load balancing is not possible. The least intrusive option is API monitoring, which requires little to no application changes, depending on your application.

Please, find examples of using SQL hints or the API monitoring in the examples section. The details behind the API monitoring, which makes the plugin transaction aware, are described below.

Beginning with PHP 5.4.0, the mysqlnd library allows this plugin to subclass the library C API call set_autocommit(), to detect the status of autocommit mode.

The PHP MySQL extensions either issue a query (such as SET AUTOCOMMIT=0|1), or use the mysqlnd library call set_autocommit() to control the autocommit setting. If an extension makes use of set_autocommit(), the plugin can be made transaction aware. Transaction awareness cannot be achieved if using SQL to set the autocommit mode. The library function set_autocommit() is called by the mysqli_autocommit() and PDO::setAttribute(PDO::ATTR_AUTOCOMMIT) user API calls.

The plugin configuration option trx_stickiness=master can be used to make the plugin transactional aware. In this mode, the plugin stops load balancing if autocommit becomes disabled, and directs all statements to the master until autocommit gets enabled.

An application that does not want to set SQL hints for transactions but wants to use the transparent API monitoring to avoid application changes must make sure that the autocommit settings is changed exclusively through the listed API calls.

API based transaction boundary detection has been improved with PHP 5.5.0 and PECL/mysqlnd_ms 1.5.0 to cover not only calls to mysqli_autocommit() but also mysqli_begin(), mysqli_commit() and mysqli_rollback().


Error handling

Applications using PECL/mysqlnd_ms should implement proper error handling for all user API calls. And because the plugin changes the semantics of a connection handle, API calls may return unexpected errors. If using the plugin on a connection handle that no longer represents an individual network connection, but a connection pool, an error code and error message will be set on the connection handle whenever an error occurs on any of the network connections behind.

If using lazy connections, which is the default, connections are not opened until they are needed for query execution. Therefore, an API call for a statement execution may return a connection error. In the example below, an error is provoked when trying to run a statement on a slave. Opening a slave connection fails because the plugin configuration file lists an invalid host name for the slave.

Пример #1 Provoking a connection error

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "invalid_host_name",
            }
        },
        "lazy_connections": 1
    }
}

The explicit activation of lazy connections is for demonstration purpose only.

Пример #2 Connection error on query execution

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno())
  /* Of course, your error handling is nicer... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

/* Connection 1, connection bound SQL user variable, no SELECT thus run on master */
if (!$mysqli->query("SET @myrole='master'")) {
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Connection 2, run on slave because SELECT, provoke connection error */
if (!($res = $mysqli->query("SELECT @myrole AS _role"))) {
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
} else {
 $row = $res->fetch_assoc();
 $res->close();
 printf("@myrole = '%s'\n", $row['_role']);
}
$mysqli->close();
?>

Результатом выполнения данного примера будет что-то подобное:

PHP Warning:  mysqli::query(): php_network_getaddresses: getaddrinfo failed: Name or service not known in %s on line %d
PHP Warning:  mysqli::query(): [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known (trying to connect via tcp://invalid_host_name:3306) in %s on line %d
[2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

Applications are expected to handle possible connection errors by implementing proper error handling.

Depending on the use case, applications may want to handle connection errors differently from other errors. Typical connection errors are 2002 (CR_CONNECTION_ERROR) - Can't connect to local MySQL server through socket '%s' (%d), 2003 (CR_CONN_HOST_ERROR) - Can't connect to MySQL server on '%s' (%d) and 2005 (CR_UNKNOWN_HOST) - Unknown MySQL server host '%s' (%d). For example, the application may test for the error codes and manually perform a fail over. The plugins philosophy is not to offer automatic fail over, beyond master fail over, because fail over is not a transparent operation.

Пример #3 Provoking a connection error

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "invalid_host_name"
            },
            "slave_1": {
                "host": "192.168.78.136"
            }
        },
        "lazy_connections": 1,
        "filters": {
            "roundrobin": [

            ]
        }
    }
}

Explicitly activating lazy connections is done for demonstration purposes, as is round robin load balancing as opposed to the default random once type.

Пример #4 Most basic failover

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno())
  /* Of course, your error handling is nicer... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

/* Connection 1, connection bound SQL user variable, no SELECT thus run on master */
if (!$mysqli->query("SET @myrole='master'")) {
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Connection 2, first slave */
$res = $mysqli->query("SELECT VERSION() AS _version");
/* Hackish manual fail over */
if (2002 == $mysqli->errno || 2003 == $mysqli->errno || 2004 == $mysqli->errno) {
  /* Connection 3, first slave connection failed, trying next slave */
  $res = $mysqli->query("SELECT VERSION() AS _version");
}

if (!$res) {
  printf("ERROR, [%d] '%s'\n", $mysqli->errno, $mysqli->error);
} else {
 /* Error messages are taken from connection 3, thus no error */
 printf("SUCCESS, [%d] '%s'\n", $mysqli->errno, $mysqli->error);
 $row = $res->fetch_assoc();
 $res->close();
 printf("version = %s\n", $row['_version']);
}
$mysqli->close();
?>

Результатом выполнения данного примера будет что-то подобное:

[1045] Access denied for user 'username'@'localhost' (using password: YES)
PHP Warning:  mysqli::query(): php_network_getaddresses: getaddrinfo failed: Name or service not known in %s on line %d
PHP Warning:  mysqli::query(): [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known (trying to connect via tcp://invalid_host_name:3306) in %s on line %d
SUCCESS, [0] ''
version = 5.6.2-m5-log

In some cases, it may not be easily possible to retrieve all errors that occur on all network connections through a connection handle. For example, let's assume a connection handle represents a pool of three open connections. One connection to a master and two connections to the slaves. The application changes the current database using the user API call mysqli_select_db(), which then calls the mysqlnd library function to change the schemata. mysqlnd_ms monitors the function, and tries to change the current database on all connections to harmonize their state. Now, assume the master succeeds in changing the database, and both slaves fail. Upon the initial error from the first slave, the plugin will set an appropriate error on the connection handle. The same is done when the second slave fails to change the database. The error message from the first slave is lost.

Such cases can be debugged by either checking for errors of the type E_WARNING (see above) or, if no other option, investigation of the mysqlnd_ms debug and trace log.


Transient errors

Some distributed database clusters make use of transient errors. A transient error is a temporary error that is likely to disappear soon. By definition it is safe for a client to ignore a transient error and retry the failed operation on the same database server. The retry is free of side effects. Clients are not forced to abort their work or to fail over to another database server immediately. They may enter a retry loop before to wait for the error to disappear before giving up on the database server. Transient errors can be seen, for example, when using MySQL Cluster. But they are not bound to any specific clustering solution per se.

PECL/mysqlnd_ms can perform an automatic retry loop in case of a transient error. This increases distribution transparency and thus makes it easier to migrate an application running on a single database server to run on a cluster of database servers without having to change the source of the application.

The automatic retry loop will repeat the requested operation up to a user configurable number of times and pause between the attempts for a configurable amount of time. If the error disappears during the loop, the application will never see it. If not, the error is forwarded to the application for handling.

In the example below a duplicate key error is provoked to make the plugin retry the failing query two times before the error is passed to the application. Between the two attempts the plugin sleeps for 100 milliseconds.

Пример #1 Provoking a transient error

mysqlnd_ms.enable=1
mysqlnd_ms.collect_statistics=1
{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
       },
       "transient_error": {
          "mysql_error_codes": [
            1062
          ],
          "max_retries": 2,
          "usleep_retry": 100
       }
    }
}

Пример #2 Transient error retry loop

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno())
  /* Of course, your error handling is nicer... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT PRIMARY KEY)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1))")) {
  printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Retry loop is completely transparent. Checking statistics is
 the only way to know about implicit retries */
$stats = mysqlnd_ms_get_stats();
printf("Transient error retries before error: %d\n", $stats['transient_error_retries']);

/* Provoking duplicate key error to see statistics change */
if (!$mysqli->query("INSERT INTO test(id) VALUES (1))")) {
  printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

$stats = mysqlnd_ms_get_stats();
printf("Transient error retries after error: %d\n", $stats['transient_error_retries']);

$mysqli->close();
?>

Результатом выполнения данного примера будет что-то подобное:

Transient error retries before error: 0
[1062] Duplicate entry '1' for key 'PRIMARY'
Transient error retries before error: 2

Because the execution of the retry loop is transparent from a users point of view, the example checks the statistics provided by the plugin to learn about it.

As the example shows, the plugin can be instructed to consider any error transient regardless of the database servers error semantics. The only error that a stock MySQL server considers temporary has the error code 1297. When configuring other error codes but 1297 make sure your configuration reflects the semantics of your clusters error codes.

The following mysqlnd C API calls are monitored by the plugin to check
for transient errors: query(),
change_user(), select_db(),
set_charset(), set_server_option()
prepare(), execute(),
set_autocommit(),
tx_begin(), tx_commit(),
tx_rollback(), tx_commit_or_rollback().
The corresponding user API calls have similar names.

The maximum time the plugin may sleep during the retry loop depends on the function in question. The a retry loop for query(), prepare() or execute() will sleep for up to max_retries * usleep_retry milliseconds.

However, functions that control connection state are dispatched to all connections. The retry loop settings are applied to every connection on which the command is to be run. Thus, such a function may interrupt program execution for longer than a function that is run on one server only. For example, set_autocommit() is dispatched to connections and may sleep up to (max_retries * usleep_retry) * number_of_open_connections) milliseconds. Please, keep this in mind when setting long sleep times and large retry numbers. Using the default settings of max_retries=1, usleep_retry=100 and lazy_connections=1 it is unlikely that you will ever see a delay of more than 1 second.


Failover

By default, connection failover handling is left to the user. The application is responsible for checking return values of the database functions it calls and reacting to possible errors. If, for example, the plugin recognizes a query as a read-only query to be sent to the slave servers, and the slave server selected by the plugin is not available, the plugin will raise an error after not executing the statement.

Default: manual failover

It is up to the application to handle the error and, if required, re-issue the query to trigger the selection of another slave server for statement execution. The plugin will make no attempts to failover automatically, because the plugin cannot ensure that an automatic failover will not change the state of the connection. For example, the application may have issued a query which depends on SQL user variables which are bound to a specific connection. Such a query might return incorrect results if the plugin would switch the connection implicitly as part of automatic failover. To ensure correct results, the application must take care of the failover, and rebuild the required connection state. Therefore, by default, no automatic failover is performed by the plugin.

A user that does not change the connection state after opening a connection may activate automatic failover. Please note, that automatic failover logic is limited to connection attempts. Automatic failover is not used for already established connections. There is no way to instruct the plugin to attempt failover on a connection that has been connected to MySQL already in the past.

Automatic failover

The failover policy is configured in the plugins configuration file, by using the failover configuration directive.

Automatic and silent failover can be enabled through the failover configuration directive. Automatic failover can either be configured to try exactly one master after a slave failure or, alternatively, loop over slaves and masters before returning an error to the user. The number of connection attempts can be limited and failed hosts can be excluded from future load balancing attempts. Limiting the number of retries and remembering failed hosts are considered experimental features, albeit being reasonable stable. Syntax and semantics may change in future versions.

Please note, since version 1.5.0 automatic failover is disabled for the duration of a transaction if transaction stickiness is enabled and transaction boundaries have been detected. The plugin will not switch connections for the duration of a transaction. It will also not perform automatic and silent failover. Instead an error will be thrown. It is then left to the user to handle the failure of the transaction. Please check, the trx_stickiness documentation how to do this.

A basic manual failover example is provided within the error handling section.

Standby servers

Using weighted load balancing, introduced in PECL/mysqlnd 1.4.0, it is possible to configure standby servers that are sparsely used during normal operations. A standby server that is primarily used as a worst-case standby failover target can be assigned a very low weight/priority in relation to all other servers. As long as all servers are up and running the majority of the workload is assigned to the servers which have hight weight values. Few requests will be directed to the standby system which has a very low weight value.

Upon failure of the servers with a high priority, you can still failover to the standby, which has been given a low load balancing priority by assigning a low weight to it. Failover can be some manually or automatically. If done automatically, you may want to combine it with the remember_failed option.

At this point, it is not possible to instruct the load balancer to direct no requests at all to a standby. This may not be much of a limitation given that the highest weight you can assign to a server is 65535. Given two slaves, of which one shall act as a standby and has been assigned a weight of 1, the standby will have to handle far less than one percent of the overall workload.

Failover and primary copy

Please note, if using a primary copy cluster, such as MySQL Replication, it is difficult to do connection failover in case of a master failure. At any time there is only one master in the cluster for a given dataset. The master is a single point of failure. If the master fails, clients have no target to fail over write requests. In case of a master outage the database administrator must take care of the situation and update the client configurations, if need be.


Load balancing

Four load balancing strategies are supported to distribute statements over the configured MySQL slave servers:

random

Chooses a random server whenever a statement is executed.

random once (default)

Chooses a random server after the first statement is executed, and uses the decision for the rest of the PHP request.

It is the default, and the lowest impact on the connection state.

round robin

Iterates over the list of configured servers.

user-defined via callback

Is used to implement any other strategy.

The load balancing policy is configured in the plugins configuration file using the random, roundrobin, and user filters.

Servers can be prioritized assigning a weight. A server that has been given a weight of two will get twice as many requests as a server that has been given the default weight of one. Prioritization can be handy in heterogenous environments. For example, you may want to assign more requests to a powerful machine than to a less powerful. Or, you may have configured servers that are close or far from the client, thus expose different latencies.


Read-write splitting

The plugin executes read-only statements on the configured MySQL slaves, and all other queries on the MySQL master. Statements are considered read-only if they either start with SELECT, the SQL hint /*ms=slave*/, or if a slave had been chosen for running the previous query and the query starts with the SQL hint /*ms=last_used*/. In all other cases, the query will be sent to the MySQL replication master server. It is recommended to use the constants MYSQLND_MS_SLAVE_SWITCH, MYSQLND_MS_MASTER_SWITCH and MYSQLND_MS_LAST_USED_SWITCH instead of /*ms=slave*/. See also the list of mysqlnd_ms constants.

SQL hints are a special kind of standard compliant SQL comments. The plugin does check every statement for certain SQL hints. The SQL hints are described within the mysqlnd_ms constants documentation, constants that are exported by the extension. Other systems involved with the statement processing, such as the MySQL server, SQL firewalls, and SQL proxies, are unaffected by the SQL hints, because those systems are designed to ignore SQL comments.

The built-in read-write splitter can be replaced by a user-defined filter, see also the user filter documentation.

A user-defined read-write splitter can request the built-in logic to send a statement to a specific location, by invoking mysqlnd_ms_is_select().

Замечание:

The built-in read-write splitter is not aware of multi-statements. Multi-statements are seen as one statement. The splitter will check the beginning of the statement to decide where to run the statement. If, for example, a multi-statement begins with SELECT 1 FROM DUAL; INSERT INTO test(id) VALUES (1); ... the plugin will run it on a slave although the statement is not read-only.


Filter

Замечание: Version requirement

Filters exist as of mysqlnd_ms version 1.1.0-beta.

filters. PHP applications that implement a MySQL replication cluster must first identify a group of servers in the cluster which could execute a statement before the statement is executed by one of the candidates. In other words: a defined list of servers must be filtered until only one server is available.

The process of filtering may include using one or more filters, and filters can be chained. And they are executed in the order they are defined in the plugins configuration file.

Замечание: Explanation: comparing filter chaining to pipes

The concept of chained filters can be compared to using pipes to connect command line utilities on an operating system command shell. For example, an input stream is passed to a processor, filtered, and then transferred to be output. Then, the output is passed as input to the next command, which is connected to the previous using the pipe operator.

Available filters:

  • Load balancing filters: random and roundrobin.
  • Selection filter: user, user_multi, quality_of_service.

The random filter implements the 'random' and 'random once' load balancing policies. The 'round robin' load balancing can be configured through the roundrobin filter. Setting a 'user defined callback' for server selection is possible with the user filter. The quality_of_service filter finds cluster nodes capable of delivering a certain service, for example, read-your-writes or, not lagging more seconds behind the master than allowed.

Filters can accept parameters to change their behavior. The random filter accepts an optional sticky parameter. If set to true, the filter changes load balancing from random to random once. Random picks a random server every time a statement is to be executed. Random once picks a random server when the first statement is to be executed and uses the same server for the rest of the PHP request.

One of the biggest strength of the filter concept is the possibility to chain filters. This strength does not become immediately visible because the random, roundrobin and user filters are supposed to output no more than one server. If a filter reduces the list of candidates for running a statement to only one server, it makes little sense to use that one server as input for another filter for further reduction of the list of candidates.

An example filter sequence that will fail:

  • Statement to be executed: SELECT 1 FROM DUAL. Passed to all filters.
  • All configured nodes are passed as input to the first filter. Master nodes: master_0. Slave nodes:slave_0, slave_1
  • Filter: random, argument sticky=1. Picks a random slave once to be used for the rest of the PHP request. Output: slave_0.
  • Output of slave_0 and the statement to be executed is passed as input to the next filter. Here: roundrobin, server list passed to filter is: slave_0.
  • Filter: roundrobin. Server list consists of one server only, round robin will always return the same server.
If trying to use such a filter sequence, the plugin may emit a warning like (mysqlnd_ms) Error while creating filter '%s' . Non-multi filter '%s' already created. Stopping in %s on line %d. Furthermore, an appropriate error on the connection handle may be set.

A second type of filter exists: multi filter. A multi filter emits zero, one or multiple servers after processing. The quality_of_service filter is an example. If the service quality requested sets an upper limit for the slave lag and more than one slave is lagging behind less than the allowed number of seconds, the filter returns more than one cluster node. A multi filter must be followed by other to further reduce the list of candidates for statement execution until a candidate is found.

A filter sequence with the quality_of_service multi filter followed by a load balancing filter.

  • Statement to be executed: SELECT sum(price) FROM orders WHERE order_id = 1. Passed to all filters.
  • All configured nodes are passed as input to the first filter. Master nodes: master_0. Slave nodes: slave_0, slave_1, slave_2, slave_3
  • Filter: quality_of_service, rule set: session_consistency (read-your-writes) Output: master_0
  • Output of master_0 and the statement to be executed is passed as input to the next filter, which is roundrobin.
  • Filter: roundrobin. Server list consists of one server. Round robin selects master_0.

A filter sequence must not end with a multi filter. If trying to use a filter sequence which ends with a multi filter the plugin may emit a warning like (mysqlnd_ms) Error in configuration. Last filter is multi filter. Needs to be non-multi one. Stopping in %s on line %d. Furthermore, an appropriate error on the connection handle may be set.

Замечание: Speculation towards the future: MySQL replication filtering

In future versions, there may be additional multi filters. For example, there may be a table filter to support MySQL replication filtering. This would allow you to define rules for which database or table is to be replicated to which node of a replication cluster. Assume your replication cluster consists of four slaves (slave_0, slave_1, slave_2, slave_3) two of which replicate a database named sales (slave_0, slave_1). If the application queries the database slaves, the hypothetical table filter reduces the list of possible servers to slave_0 and slave_1. Because the output and list of candidates consists of more than one server, it is necessary and possible to add additional filters to the candidate list, for example, using a load balancing filter to identify a server for statement execution.


Service level and consistency

Замечание: Version requirement

Service levels have been introduced in mysqlnd_ms version 1.2.0-alpha. mysqlnd_ms_set_qos() requires PHP 5.4.0 or newer.

The plugin can be used with different kinds of MySQL database clusters. Different clusters can deliver different levels of service to applications. The service levels can be grouped by the data consistency levels that can be achieved. The plugin knows about:

  • eventual consistency
  • session consistency
  • strong consistency

Depending how a cluster is used it may be possible to achieve higher service levels than the default one. For example, a read from an asynchronous MySQL replication slave is eventual consistent. Thus, one may say the default consistency level of a MySQL replication cluster is eventual consistency. However, if the master only is used by a client for reading and writing during a session, session consistency (read your writes) is given. PECL mysqlnd 1.2.0 abstracts the details of choosing an appropriate node for any of the above service levels from the user.

Service levels can be set through the qualify-of-service filter in the plugins configuration file and at runtime using the function mysqlnd_ms_set_qos().

The plugin defines the different service levels as follows.

Eventual consistency is the default service provided by an asynchronous cluster, such as classical MySQL replication. A read operation executed on an arbitrary node may or may not return stale data. The applications view of the data is eventual consistent.

Session consistency is given if a client can always read its own writes. An asynchronous MySQL replication cluster can deliver session consistency if clients always use the master after the first write or never query a slave which has not yet replicated the clients write operation.

The plugins understanding of strong consistency is that all clients always see the committed writes of all other clients. This is the default when using MySQL Cluster or any other cluster offering synchronous data distribution.

Service level parameters

Eventual consistency and session consistency service level accept parameters.

Eventual consistency is the service provided by classical MySQL replication. By default, all nodes qualify for read requests. An optional age parameter can be given to filter out nodes which lag more than a certain number of seconds behind the master. The plugin is using SHOW SLAVE STATUS to measure the lag. Please, see the MySQL reference manual to learn about accuracy and reliability of the SHOW SLAVE STATUS command.

Session consistency (read your writes) accepts an optional GTID parameter to consider reading not only from the master but also from slaves which already have replicated a certain write described by its transaction identifier. This way, when using asynchronous MySQL replication, read requests may be load balanced over slaves while still ensuring session consistency.

The latter requires the use of client-side global transaction id injection.

Advantages of the new approach

The new approach supersedes the use of SQL hints and the configuration option master_on_write in some respects. If an application running on top of an asynchronous MySQL replication cluster cannot accept stale data for certain reads, it is easier to tell the plugin to choose appropriate nodes than prefixing all read statements in question with the SQL hint to enforce the use of the master. Furthermore, the plugin may be able to use selected slaves for reading.

The master_on_write configuration option makes the plugin use the master after the first write (session consistency, read your writes). In some cases, session consistency may not be needed for the rest of the session but only for some, few read operations. Thus, master_on_write may result in more read load on the master than necessary. In those cases it is better to request a higher than default service level only for those reads that actually need it. Once the reads are done, the application can return to default service level. Switching between service levels is only possible using mysqlnd_ms_set_qos().

Performance considerations

A MySQL replication cluster cannot tell clients which slaves are capable of delivering which level of service. Thus, in some cases, clients need to query the slaves to check their status. PECL mysqlnd_ms transparently runs the necessary SQL in the background. However, this is an expensive and slow operation. SQL statements are run if eventual consistency is combined with an age (slave lag) limit and if session consistency is combined with a global transaction ID.

If eventual consistency is combined with an maximum age (slave lag), the plugin selects candidates for statement execution and load balancing for each statement as follows. If the statement is a write all masters are considered as candidates. Slaves are not checked and not considered as candidates. If the statement is a read, the plugin transparently executes SHOW SLAVE STATUS on every slaves connection. It will loop over all connections, send the statement and then start checking for results. Usually, this is slightly faster than a loop over all connections in which for every connection a query is send and the plugin waits for its results. A slave is considered a candidate if SHOW SLAVE STATUS reports Slave_IO_Running=Yes, Slave_SQL_Running=Yes and Seconds_Behind_Master is less or equal than the allowed maximum age. In case of an SQL error, the plugin emits a warning but does not set an error on the connection. The error is not set to make it possible to use the plugin as a drop-in.

If session consistency is combined with a global transaction ID, the plugin executes the SQL statement set with the fetch_last_gtid entry of the global_transaction_id_injection section from the plugins configuration file. Further details are identical to those described above.

In version 1.2.0 no additional optimizations are done for executing background queries. Future versions may contain optimizations, depending on user demand.

If no parameters and options are set, no SQL is needed. In that case, the plugin consider all nodes of the type shown below.

  • eventual consistency, no further options set: all masters, all slaves
  • session consistency, no further options set: all masters
  • strong consistency (no options allowed): all masters

Throttling

The quality of service filter can be combined with Global transaction IDs to throttle clients. Throttling does reduce the write load on the master by slowing down clients. If session consistency is requested and global transactions identifier are used to check the status of a slave, the check can be done in two ways. By default a slave is checked and skipped immediately if it does not match the criteria for session consistency. Alternatively, the plugin can wait for a slave to catch up to the master until session consistency is possible. To enable the throttling, you have to set wait_for_gtid_timeout configuration option.


Global transaction IDs

Замечание: Version requirement

Client side global transaction ID injection exists as of mysqlnd_ms version 1.2.0-alpha. Transaction boundaries are detected by monitoring API calls. This is possible as of PHP 5.4.0. Please, see also Transaction handling.

As of MySQL 5.6.5-m8 the MySQL server features built-in global transaction identifiers. The MySQL built-in global transaction ID feature is supported by PECL/mysqlnd_ms 1.3.0-alpha or later. Neither are client-side transaction boundary monitoring nor any setup activities required if using the server feature.

Please note, all MySQL 5.6 production versions do not provide clients with enough information to use GTIDs for enforcing session consistency. In the worst case, the plugin will choose the master only.

Idea and client-side emulation

PECL/mysqlnd_ms can do client-side transparent global transaction ID injection. In its most basic form, a global transaction identifier is a counter which is incremented for every transaction executed on the master. The counter is held in a table on the master. Slaves replicate the counter table.

In case of a master failure a database administrator can easily identify the most recent slave for promoting it as a new master. The most recent slave has the highest transaction identifier.

Application developers can ask the plugin for the global transaction identifier (GTID) for their last successful write operation. The plugin will return an identifier that refers to an transaction no older than that of the clients last write operation. Then, the GTID can be passed as a parameter to the quality of service (QoS) filter as an option for session consistency. Session consistency ensures read your writes. The filter ensures that all reads are either directed to a master or a slave which has replicated the write referenced by the GTID.

When injection is done

The plugin transparently maintains the GTID table on the master. In autocommit mode the plugin injects an UPDATE statement before executing the users statement for every master use. In manual transaction mode, the injection is done before the application calls commit() to close a transaction. The configuration option report_error of the GTID section in the plugins configuration file is used to control whether a failed injection shall abort the current operation or be ignored silently (default).

Please note, the PHP version requirements for transaction boundary monitoring and their limits.

Limitations

Client-side global transaction ID injection has shortcomings. The potential issues are not specific to PECL/mysqlnd_ms but are rather of general nature.

  • Global transaction ID tables must be deployed on all masters and replicas.
  • The GTID can have holes. Only PHP clients using the plugin will maintain the table. Other clients will not.
  • Client-side transaction boundary detection is based on API calls only.
  • Client-side transaction boundary detection does not take implicit commit into account. Some MySQL SQL statements cause an implicit commit and cannot be rolled back.

Using server-side global transaction identifier

Starting with PECL/mysqlnd_ms 1.3.0-alpha the MySQL 5.6.5-m8 or newer built-in global transaction identifier feature is supported. Use of the server feature lifts all of the above listed limitations. Please, see the MySQL Reference Manual for limitations and preconditions for using server built-in global transaction identifiers.

Whether to use the client-side emulation or the server built-in functionality is a question not directly related to the plugin, thus it is not discussed in depth. There are no plans to remove the client-side emulation and you can continue to use it, if the server-side solution is no option. This may be the case in heterogenous environments with old MySQL server or, if any of the server-side solution limitations is not acceptable.

From an applications perspective there is hardly a difference in using one or the other approach. The following properties differ.

  • Client-side emulation, as shown in the manual, is using an easy to compare sequence number for global transactions. Multi-master is not handled to keep the manual examples easy. Server-side built-in feature is using a combination of a server identifier and a sequence number as a global transaction identifier. Comparison cannot use numeric algebra. Instead a SQL function must be used. Please, see the MySQL Reference Manual for details. Server-side built-in feature of MySQL 5.6 cannot be used to ensure session consistency under all circumstances. Do not use it for the quality-of-service feature. Here is a simple example why it will not give reliable results. There are more edge cases that cannot be covered with limited functionality exported by the server. Currently, clients can ask a MySQL replication master for a list of all executed global transaction IDs only. If a slave is configured not to replicate all transactions, for example, because replication filters are set, then the slave will never show the same set of executed global transaction IDs. Albeit the slave may have replicated a clients writes and it may be a candidate for a consistent read, it will never be considered by the plugin. Upon write the plugin learns from the master that the servers complete transaction history consists of GTID=1..3. There is no way for the plugin to ask for the GTID of the write transaction itself, say GTID=3. Assume that a slave does not replicate the transactions GTID=1..2 but only GTID=3 because of a replication feature. Then, the slaves transaction history is GTID=3. However, the plugin tries to find a node which has a transaction history of GITD=1...3. Albeit the slave has replicated the clients write and session consistency may be achieved when reading from the slave, it will not be considered by the plugin. This is not a fault of the plugin implementation but a feature gap on the server side. Please note, this is a trivial case to illustrate the issue there are other issues. In sum you are asked not to attempt using MySQL 5.6 built-in GTIDs for enforcing session consistency. Sooner or later the load balancing will stop working properly and the plugin will direct all session consistency requests to the master.
  • Plugin global transaction ID statistics are only available with client-side emulation because they monitor the emulation.

Замечание: Global transaction identifiers in distributed systems

Global transaction identifiers can serve multiple purposes in the context of distributed systems, such as a database cluster. Global transaction identifiers can be used for, for example, system wide identification of transactions, global ordering of transactions, heartbeat mechanism and for checking the replication status of replicas. PECL/mysqlnd_ms, a clientside driver based software, does focus on using GTIDs for tasks that can be handled at the client, such as checking the replication status of replicas for asynchronous replication setups.


Cache integration

Замечание: Version requirement

The feature requires use of PECL/mysqlnd_ms 1.3.0-beta or later, and PECL/mysqlnd_qc 1.1.0-alpha or newer. PECL/mysqlnd_ms must be compiled to support the feature. PHP 5.4.0 or newer is required.

Замечание: Setup: extension load order

PECL/mysqlnd_ms must be loaded before PECL/mysqlnd_qc, when using shared extensions.

Замечание: Feature stability

The cache integration is of beta quality.

Замечание: Suitable MySQL clusters

The feature is targeted for use with MySQL Replication (primary copy). Currently, no other kinds of MySQL clusters are supported. Users of such cluster must control PECL/mysqlnd_qc manually if they are interested in client-side query caching.

Support for MySQL replication clusters (asynchronous primary copy) is the main focus of PECL/mysqlnd_ms. The slaves of a MySQL replication cluster may or may not reflect the latest updates from the master. Slaves are asynchronous and can lag behind the master. A read from a slave is eventual consistent from a cluster-wide perspective.

The same level of consistency is offered by a local cache using time-to-live (TTL) invalidation strategy. Current data or stale data may be served. Eventually, data searched for in the cache is not available and the source of the cache needs to be accessed.

Given that both a MySQL Replication slave (asynchronous secondary) and a local TTL-driven cache deliver the same level of service it is possible to transparently replace a remote database access with a local cache access to gain better possibility.

As of PECL/mysqlnd_ms 1.3.0-beta the plugin is capable of transparently controlling PECL/mysqlnd_ms 1.1.0-alpha or newer to cache a read-only query if explicitly allowed by setting an appropriate quality of service through mysqlnd_ms_set_qos(). P lease, see the quickstart for a code example. Both plugins must be installed, PECL/mysqlnd_ms must be compiled to support the cache feature and PHP 5.4.0 or newer has to be used.

Applications have full control of cache usage and can request fresh data at any time, if need be. The cache usage can be enabled and disabled time during the execution of a script. The cache will be used if mysqlnd_ms_set_qos() sets the quality of service to eventual consistency and enables cache usage. Cache usage is disabled by requesting higher consistency levels, for example, session consistency (read your writes). Once the quality of service has been relaxed to eventual consistency the cache can be used again.

If caching is enabled for a read-only statement, PECL/mysqlnd_ms may inject SQL hints to control caching by PECL/mysqlnd_qc. It may modify the SQL statement it got from the application. Subsequent SQL processors are supposed to ignore the SQL hints. A SQL hint is a SQL comment. Comments must not be ignored, for example, by the database server.

The TTL of a cache entry is computed on a per statement basis. Applications set an maximum age for the data they want to retrieve using mysqlnd_ms_set_qos(). The age sets an approximate upper limit of how many seconds the data returned may lag behind the master.

The following logic is used to compute the actual TTL if caching is enabled. The logic takes the estimated slave lag into account for choosing a TTL. If, for example, there are two slaves lagging 5 and 10 seconds behind and the maximum age allowed is 60 seconds, the TTL is set to 50 seconds. Please note, the age setting is no more than an estimated guess.

  • Check whether the statement is read-only. If not, don't cache.
  • If caching is enabled, check the slave lag of all configured slaves. Establish slave connections if none exist so far and lazy connections are used.
  • Send SHOW SLAVE STATUS to all slaves. Do not wait for the first slave to reply before sending to the second slave. Clients often wait long for replies, thus we send out all requests in a burst before fetching in a second stage.
  • Loop over all slaves. For every slave wait for its reply. Do not start checking another slave before the currently waited for slave has replied. Check for Slave_IO_Running=Yes and Slave_SQL_Running=Yes. If both conditions hold true, fetch the value of Seconds_Behind_Master. In case of any errors or if conditions fail, set an error on the slave connection. Skip any such slave connection for the rest of connection filtering.
  • Search for the maximum value of Seconds_Behind_Master from all slaves that passed the previous conditions. Subtract the value from the maximum age provided by the user with mysqlnd_ms_set_qos(). Use the result as a TTL.
  • The filtering may sort out all slaves. If so, the maximum age is used as TTL, because the maximum lag found equals zero. It is perfectly valid to sort out all slaves. In the following it is up to subsequent filter to decide what to do. The built-in load balancing filter will pick the master.
  • Inject the appropriate SQL hints to enable caching by PECL/mysqlnd_qc.
  • Proceed with the connection filtering, e.g. apply load balancing rules to pick a slave.
  • PECL/mysqlnd_qc is loaded after PECL/mysqlnd_ms by PHP. Thus, it will see all query modifications of PECL/mysqlnd_ms and cache the query if instructed to do so.

The algorithm may seem expensive. SHOW SLAVE STATUS is a very fast operation. Given a sufficient number of requests and cache hits per second the cost of checking the slaves lag can easily outweigh the costs of the cache decision.

Suggestions on a better algorithm are always welcome.


Supported clusters

Any application using any kind of MySQL cluster is faced with the same tasks:

  • Identify nodes capable of executing a given statement with the required service level
  • Load balance requests within the list of candidates
  • Automatic fail over within candidates, if needed

The plugin is optimized for fulfilling these tasks in the context of a classical asynchronous MySQL replication cluster consisting of a single master and many slaves (primary copy). When using classical, asynchronous MySQL replication all of the above listed tasks need to be mastered at the client side.

Other types of MySQL cluster may have lower requirements on the application side. For example, if all nodes in the cluster can answer read and write requests, no read-write splitting needs to be done (multi-master, update-all). If all nodes in the cluster are synchronous, they automatically provide the highest possible quality of service which makes choosing a node easier. In this case, the plugin may serve the application after some reconfiguration to disable certain features, such as built-in read-write splitting.

Замечание: Documentation focus

The documentation focusses describing the use of the plugin with classical asynchronous MySQL replication clusters (primary copy). Support for this kind of cluster has been the original development goal. Use of other clusters is briefly described below. Please note, that this is still work in progress.

Primary copy (MySQL Replication)

This is the primary use case of the plugin. Follow the hints given in the descriptions of each feature.

  • Configure one master and one or more slaves. Server configuration details are given in the setup section.
  • Use random load balancing policy together with the sticky flag.
  • If you do not plan to use the service level API calls, add the master on write flag.
  • Please, make yourself aware of the properties of automatic failover before adding a failover directive.
  • Consider the use of trx_stickiness to execute transactions on the primary only. Please, read carefully how it works before you rely on it.

Пример #1 Enabling the plugin (php.ini)

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini

Пример #2 Basic plugin configuration (mysqlnd_ms_plugin.ini) for MySQL Replication

{
  "myapp": {
    "master": {
      "master_1": {
        "host": "localhost",
        "socket": "\/tmp\/mysql57.sock"
      }
    },
    "slave": {
      "slave_0": {
        "host": "127.0.0.1",
        "port": 3308
      },
      "slave_1": {
        "host": "192.168.2.28",
        "port": 3306
      }
    },
    "filters": {
      "random": {
        "sticky": "1"
      }
    }
  }
}

Primary copy with multi primaries (MMM - MySQL Multi Master)

MySQL Replication allows you to create cluster topologies with multiple masters (primaries). Write-write conflicts are not handled by the replication system. This is no update anywhere setup. Thus, data must be partitioned manually and clients must redirected in accordance to the partitioning rules. The recommended setup is equal to the sharding setup below.

Manual sharding, possibly combined with primary copy and multiple primaries

Use SQL hints and the node group filter for clusters that use data partitioning but leave query redirection to the client. The example configuration shows a multi master setup with two shards.

Пример #3 Multiple primaries - multi master (php.ini)

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini
mysqlnd_ms.multi_master=1

Пример #4 Primary copy with multiple primaries and paritioning

{
  "myapp": {
    "master": {
      "master_1": {
        "host": "localhost",
        "socket": "\/tmp\/mysql57.sock"
      }
      "master_2": {
        "host": "192.168.2.27",
        "socket": "3306"
      }
    },
    "slave": {
      "slave_1": {
        "host": "127.0.0.1",
        "port": 3308
      },
      "slave_2": {
        "host": "192.168.2.28",
        "port": 3306
      }
    },
    "filters": {
      "node_groups": {
        "Partition_A" : {
          "master": ["master_1"],
          "slave": ["slave_1"]
        },
        "Partition_B" : {
          "master": ["master_2"],
          "slave": ["slave_2"]
        }
      },
      "roundrobin": []
    }
  }
}

The plugin can also be used with a loose collection of unrelated shards. For such a cluster, configure masters only and disable read write splitting. The nodes of such a cluster are called masters in the plugin configuration as they accept both reads and writes for their partition.

Using synchronous update everywhere clusters such as MySQL Cluster

MySQL Cluster is a synchronous cluster solution. All cluster nodes accept read and write requests. In the context of the plugin, all nodes shall be considered as masters.

Use the load balancing and fail over features only.

  • Disable the plugins built-in read-write splitting.
  • Configure masters only.
  • Consider random once load balancing strategy, which is the plugins default. If random once is used, only masters are configured and no SQL hints are used to force using a certain node, no connection switches will happen for the duration of a web request. Thus, no special handling is required for transactions. The plugin will pick one master at the beginning of the PHP script and use it until the script terminates.
  • Do not set the quality of service. All nodes have all the data. This automatically gives you the highest possible service quality (strong consistency).
  • Do not enable client-side global transaction injection. It is neither required to help with server-side fail over nor to assist the quality of service filter choosing an appropriate node.

Disabling built-in read-write splitting.

  • Set mysqlnd_ms.disable_rw_split=1
  • Do not use SQL hints to enforce the use of slaves

Configure masters only.

  • Set mysqlnd_ms.multi_master=1.
  • Do not configure any slaves.
  • Set failover=loop_before_master in the plugins configuration file to avoid warnings about the empty slave list and to make the failover logic loop over all configured masters before emitting an error. Please, note the warnings about automatic failover given in the previous sections.

Пример #5 Multiple primaries - multi master (php.ini)

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini
mysqlnd_ms.multi_master=1
mysqlnd_ms.disable_rw_split=1

Пример #6 Synchronous update anywhere cluster

"myapp": {
    "master": {
      "master_1": {
        "host": "localhost",
        "socket": "\/tmp\/mysql57.sock"
      },
      "master_2": {
        "host": "192.168.2.28",
        "port": 3306
      }
    },
    "slave": {
    },
    "filters": {
      "roundrobin": {
      }
    },
    "failover": {
      "strategy": "loop_before_master",
      "remember_failed": true
    }
  }
}

If running an update everywhere cluster that has no built-in partitioning to avoid hot spots and high collision rates, consider using the node groups filter to keep updates on a frequently accessed table on one of the nodes. This may help to reduce collision rates and thus improve performance.


XA/Distributed transactions

Замечание: Version requirement

XA related functions have been introduced in PECL/mysqlnd_ms version 1.6.0-alpha.

Замечание: Early adaptors wanted

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments, although early lab tests indicate reasonable quality.

Please, contact the development team if you are interested in this feature. We are looking for real life feedback to complement the feature.

Below is a list of some feature restrictions.

  • The feature is not yet compatible with the MySQL Fabric support . This limitation is soon to be lifted.

    XA transaction identifier are currently restricted to numbers. This limitation will be lifted upon request, it is a simplification used during the initial implementation.

Замечание: MySQL server restrictions

The XA support by the MySQL server has some restrictions. Most noteably, the servers binary log may lack changes made by XA transactions in case of certain errors. Please, see the MySQL manual for details.

XA/Distributed transactions can spawn multiple MySQL servers. Thus, they may seem like a perfect tool for sharded MySQL clusters, for example, clusters managed with MySQL Fabric. PECL/mysqlnd_ms hides most of the SQL commands to control XA transactions and performs automatic administrative tasks in cases of errors, to provide the user with a comprehensive API. Users should setup the plugin carefully and be well aware of server restrictions prior to using the feature.

Пример #1 General pattern for XA transactions

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");

/* BEGIN */
mysqlnd_ms_xa_begin($mysqli, 1 /* xa id */);

/* run queries on various servers */
$mysqli->query("UPDATE some_table SET col_a = 1");
...

/* COMMIT */
mysqlnd_ms_xa_commit($link, 1);
?>

XA transactions use the two-phase commit protocol. The two-phase commit protocol is a blocking protocol. During the first phase participating servers begin a transaction and the client carries out its work. This phase is followed by a second voting phase. During voting, the servers first make a firm promise that they are ready to commit the work even in case of their possible unexpected failure. Should a server crash in this phase, it will still recall the aborted transaction after recover and wait for the client to decide on whether it shall be committed or rolled back.

Should a client that has initiated a global transaction crash after all the participating servers gave their promise to be ready to commit, then the servers must wait for a decision. The servers are not allowed to unilaterally decide on the transaction.

A client crash or disconnect from a participant, a server crash or server error during the fist phase of the protocol is uncritical. In most cases, the server will forget about the XA transaction and its work is rolled back. Additionally, the plugin tries to reach out to as many participants as it can to instruct the server to roll back the work immediately. It is not possible to disable this implicit rollback carried out by PECL/mysqlnd_ms in case of errors during the first phase of the protocol. This design decision has been made to keep the implementation simple.

An error during the second phase of the commit protocol can develop into a more severe situation. The servers will not forget about prepared but unfinished transactions in all cases. The plugin will not attempt to solve these cases immediately but waits for optional background garbage collection to ensure progress of the commit protocol. It is assumed that a solution will take significant time as it may include waiting for a participating server to recover from a crash. This time span may be longer than a developer and end user expects when trying to commit a global transaction with mysqlnd_ms_xa_commit(). Thus, the function returns with the unfinished global transaction still requiring attention. Please, be warned that at this point, it is not yet clear whether the global transaction will be committed or rolled back later on.

Errors during the second phase can be ignored, handled by yourself or solved by the build-int garbage collection logic. Ignoring them is not recommended as you may experience unfinished global transactions on your servers that block resources virtually indefinitely. Handling the errors requires knowing the participants, checking their state and issuing appropriate SQL commands on them. There are no user API calls to expose this very information. You will have to configure a state store and make the plugin record its actions in it to receive the desired facts.

Please, see the quickstart and related plugin configuration file settings for an example how to configure a state. In addition to configuring a state store, you have to setup some SQL tables. The table definitions are given in the description of the plugin configuration settings.

Setting up and configuring a state store is also a precondition for using the built-in garbage collection for XA transactions that fail during the second commit phase. Recording information about ongoing XA transactions is an unavoidable extra task. The extra task consists of updating the state store after each and every operation that changes the state of the global transaction itself (started, committed, rolled back, errors and aborts), the addition of participants (host, optionally user and password required to connect) and any changes to a participants state. Please note, depending on configuration and your security policies, these recordings may be considered sensitive. It is therefore recommended to restrict access to the state store. Unless the state store itself becomes overloaded, writing the state information may contribute noteworthy to the runtime but should overall be only a minor factor.

It is possible that the effort it takes to implement your own routines for handling XA transactions that failed during the second commit phase exceeds the benefits of using the XA feature of PECL/mysqlnd_ms in the first place. Thus, the manual focussed on using the built-on garbage collection only.

Garbage collection can be triggered manually or automatically in the background. You may want to call mysqlnd_ms_xa_gc() immediately after a commit failure to attempt to solve any failed but still open global transactions as soon as possible. You may also decide to disable the automatic background garbage collection, implement your own rule set for invoking the built-in garbage collection and trigger it when desired.

By default the plugin will start the garbage collection with a certain probability in the extensions internal RSHUTDOWN method. The request shutdown is called after your script finished. Whether the garbage collection will be triggered is determined by computing a random value between 1...1000 and comparing it with the configuration setting probability (default: 5). If the setting is greater or equal to the random value, the garbage collection will be triggered.

Once started, the garbage collection acts upon up to max_transactions_per_run (default: 100) global transactions recorded. Records include successfully finished but also unfinished XA transactions. Records for successful transactions are removed and unfinished transactions are attempted to be solved. There are no statistics that help you finding the right balance between keeping garbage collection runs short by limiting the number of transactions considered per run and preventing the garbage collection to fall behind, resulting in many records.

For each failed XA transaction the garbage collection makes max_retries (default: 5) attempts to finish it. After that PECL/mysqlnd_ms gives up. There are two possible reasons for this. Either a participating server crashed and has not become accessible again within max_retries invocations of the garbage collection, or there is a situation that the built-in garbage collection cannot cope with. Likely, the latter would be considered a bug. However, you can manually force more garbage collection runs calling mysqlnd_ms_xa_gc() with the appropriate parameter set. Should even those function runs fail to solve the situation, then the problem must be solved by an operator.

The function mysqlnd_ms_get_stats() provides some statistics on how many XA transactions have been started, committed, failed or rolled back.


Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения
  • Файл настроек плагина (>=1.1.x)


Требования

PHP 5.3.6 или новее. Некоторый продвинутый функционал требует PHP 5.4.0 или новее.

Плагин репликации и распределения нагрузки mysqlnd_ms поддерживается всеми приложениями PHP и всеми доступными расширениями PHP MySQL (mysqli, mysql, PDO_MYSQL). Расширения PHP MySQL должны быть сконфигурированы с поддержкой mysqlnd, чтобы можно было использовать плагин mysqlnd_ms для mysqlnd.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/mysqlnd_ms

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Mysqlnd_ms
Имя | По умолчанию | Место изменения | Список изменений
mysqlnd_ms.enable | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.force_config_usage | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.ini_file | "" | PHP_INI_SYSTEM |
mysqlnd_ms.config_file | "" | PHP_INI_SYSTEM |
mysqlnd_ms.collect_statistics | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.multi_master | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.disable_rw_split | 0 | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

mysqlnd_ms.enable integer

Включает или выключает плагин. Если выключено, то это расширение не будет встроено в mysqlnd для проксирования внутренних вызовов mysqlnd C API.

mysqlnd_ms.force_config_usage integer

Если включено, плагин проверяет, соответствует ли значение параметра хоста (сервера) любого подключения к MySQL имени раздела из файла конфигурации плагина. Если нет, попытка подключения будет заблокирована.

Эта настройка полезна не только для жесткого ограничения PHP определенными серверами, но и для отладки проблем с конфигурационным файлом. Корректность конфигурационного файла проверяется на двух этапах. Первая проверка происходит при начале обработки веб-запроса PHP. В этот момент плагин читает и декадирует конфигурационный файл. Ошибки выброшенные на этом раннем этапе жизненного цикла расширения могут показываться пользователю некорректно. Поэтому плагин их забуфферизует и сможет вывести на этапе подключения к MySQL. По умолчанию, ошибки, забуферризированные на момент старта, породят ошибки уровня E_WARNING. Если force_config_usage установлена, то будет использован тип E_RECOVERABLE_ERROR.

Пожалуйста прочтите раздел замечания по отладке конфигурационного файла.

mysqlnd_ms.ini_file string

Конфигурационный файл плагина. В версии 1.4.0 эта настройка была переименована в mysqlnd_ms.config_file.

mysqlnd_ms.config_file string

Конфигурационный файл плагина. С версии 1.4.0 заменяет mysqlnd_ms.ini_file.

mysqlnd_ms.collect_statistics integer

Разрешает или запрещает сбор статистики. По умолчанию сбор статистики отключен из-за воздействия на производительность. Статистику можно получить с помощью функции mysqlnd_ms_get_stats().

mysqlnd_ms.multi_master integer

Разрешает или запрещает поддержку конфигурации MySQL с несколькими мастер-серверами (multi master). Подробнее читайте тут - поддерживаемые кластеры.

mysqlnd_ms.disable_rw_split integer

Включает или отключает встроенное разделение чтения и записи.

Определяет, будет ли использоваться распределение нагрузки и функционал ленивого соединения для разделения операций чтения и записи. Если разделение чтения и записи запрещено, то для запуска запросов будут использоваться сервера только из списка мастеров, а все подчиненные (slave) сервера будут игнорироваться.

SQL-хинты MYSQLND_MS_USE_SLAVE не будут обрабатываться. Все запросы будут переодресованы на мастер-сервера.

Запрещение разделения чтения и записи влияет на возвращаемое значение функции mysqlnd_ms_query_is_select(). Функции будет запрещено использовать подчиненные сервера.

Замечание: Сервера с несколькими мастерами (Multiple master)

Установка mysqlnd_ms.multi_master=1 позволит плагину использовать несколько мастер-серверов, вместо использования только одного, первого из списка, сервера.

Подробнее читайте тут - поддерживаемые кластеры.


Файл настроек плагина (>=1.1.x)

Следующая документация относится к PECL/mysqlnd_ms >= 1.1.0-beta. Она не подходит для более ранних версий. Документация для более ранних версий содержится в разделе mysqlnd_ms 1.0.x и ниже.

Введение

Замечание: Список изменений: Функционал добавленный в PECL/mysqlnd_ms 1.1.0-beta

Следующая документация относится к PECL/mysqlnd_ms >= 1.1.0-beta. Она не подходит для более ранних версий.

Плагин использует собственный файл конфигурации. Файл конфигурации содержит информацию о главном сервере репликации MySQL, подчиненных серверах репликации MySQL, политике выбора сервера (балансировка нагрузки), стратегии обработки отказов и использовании ленивых соединений.

Плагин загружает свой файл конфигурации в начале веб-запроса. Затем он кешируется в памяти и используется в течение всей обработки запроса. Таким образом, нет необходимости перезапускать PHP после изменения файла конфигурации. Изменения в конфигурационном файле станут активными почти мгновенно.

Для определения конфигурационного файла используется директива конфигурации PHP mysqlnd_ms.config_file. Обратите внимание, что эта директива не будет повторно прочитана для обработки каждого нового веб-запроса. Таким образом, при изменении имени или местоположения файла конфигурации потребуется перезагрузка PHP. Однако, если имя и путь файла остались прежними, то все изменения в нем будут применены.

Использование и разбор JSON достаточно эффективно, и использование JSON позволяет создать иерархические структуры данных намного легче, в отличие от стандартного файла php.ini.

Пример #1 Преобразование массива PHP в формат JSON

Или в качестве альтернативы, если есть желание, можно использовать синтаксис массивов PHP. В этом примере показан процесс преобразования массива в формат JSON.

<?php
$config = array(
  "myapp" => array(
    "master" => array(
      "master_0" => array(
        "host"   => "localhost",
        "socket" => "/tmp/mysql.sock",
      ),
    ),
    "slave" => array(),
  ),
);

file_put_contents("mysqlnd_ms.ini", json_encode($config, JSON_PRETTY_PRINT));
printf("Файл mysqlnd_ms.ini создан...\n");
printf("Сброс содержимого файла...\n");
printf("%s\n", str_repeat("-", 80));
echo file_get_contents("mysqlnd_ms.ini");
printf("\n%s\n", str_repeat("-", 80));
?>

Результат выполнения данного примера:

Файл mysqlnd_ms.ini создан...
Сброс содержимого файла...
--------------------------------------------------------------------------------
{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": [

        ]
    }
}
--------------------------------------------------------------------------------

Конфигурационный файл плагина состоит из одной или более секций. Секции представлены свойствами самого верхнего уровня в дереве JSON. Секции также можно назвать именами конфигураций.

Приложения ссылаются на секции по их имени. Приложения используют имена секций в качестве параметра хоста (сервера) в методах создания соединения расширений mysqli, mysql и PDO_MYSQL. После подключения плагин mysqlnd сравнивает имя хоста со всеми именами секций из файла конфигурации плагина. Если совпадение найдено, то будут загружены настройки для этой секции.

Пример #2 Пример использования имен секций

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27"
            },
            "slave_1": {
                "host": "192.168.2.27",
                "port": 3306
            }
        }
    },
    "localhost": {
        "master": [
            {
                "host": "localhost",
                "socket": "\/path\/to\/mysql.sock"
            }
        ],
        "slave": [
            {
                "host": "192.168.3.24",
                "port": "3305"
            },
            {
                "host": "192.168.3.65",
                "port": "3309"
            }
        ]
    }
}
<?php
/* Все эти соединения будут использовать распределение нагрузки */
$mysqli = new mysqli("myapp", "username", "password", "database");
$pdo = new PDO('mysql:host=myapp;dbname=database', 'username', 'password');
$mysql = mysql_connect("myapp", "username", "password");

$mysqli = new mysqli("localhost", "username", "password", "database");
?>

Имена секций - это строки. Допустимо использовать такие значения: 192.168.2.1, 127.0.0.1 или localhost. Если, к примеру, приложение соединяется к localhost и присутствует секция localhost, то семантика операции соединения будет изменена. Приложение будет использовать не только сервер MySQL, расположенный на localhost, но плагин также начнет балансировку нагрузки MySQL-запрсов, согласно правилам из секции localhost. Таким образом, вы можете настроить балансировку нагрузки без изменения исходного кода приложения. Имейте в виду, что такая конфигурация может не способствовать общей читаемости исходного кода вашего приложения. Использование имен секций, совпадающих с реальными именами хостов, следует рассматривать как последнее средство.

Каждая секция конфигурации, как минимум, должна содержать список основных (master) серверов и список подчиненных (slave) серверов. Список основных серверов содержится в секции master, а список подчиненных в секции slave. Если не задать список подчиненных серверов, то будет выдана фатальная ошибка уровня E_ERROR, поэтому просто оставляйте ее пустой. Допустимо не использовать подчиненные сервера, но рекомендуется это делать только в случае синхронных кластеров. Более подробно читайте в разделе поддерживаемые кластеры. Основная часть документации фокусируется на использовании асинхронных кластеров репликации MySQL.

Списки подчиненных и основных серверов могут быть индексированы символьными именами. Либо же можно использовать массив анонимных записей.

Пример #3 Список анонимных подчиненных серверов

"slave": [
    {
        "host": "192.168.3.24",
        "port": "3305"
    },
    {
        "host": "192.168.3.65",
        "port": "3309"
    }
]

Список анонимных серверов задается массивом JSON. Список индексированных серверов задается объектом JSON.

Пример #4 Список основных серверов с символьными именами

"master": {
    "master_0": {
        "host": "localhost"
    }
}

Рекомендуется все же использовать имена для серверов, так как они будут показаны в сообщениях об ошибках.

Порядок серверов сохраняется и учитывается mysqlnd_ms. Если, например, вы сконфигурируете стратегию балансировки round robin, то первый запрос SELECT будет запущен на первом из списка сервере.

Сервер описывается с помощью полей host, port, socket, db, user, password и connect_flags. Обязательным из них является только host, а остальные опциональны.

Пример #5 Конфигурация сервера

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "db_server_host",
                "port": "db_server_port",
                "socket": "db_server_socket",
                "db": "database_resp_schema",
                "user": "user",
                "password": "password",
                "connect_flags": 0
            }
        },
        "slave": {
            "slave_0": {
                "host": "db_server_host",
                "port": "db_server_port",
                "socket": "db_server_socket"
            }
        }
    }
}

Если какие-либо параметры не заданы, то плагин будет использовать заданные пользователем значения в функции соединения. Смотрите раздел с примером использования имен секций.

Формат конфигурационного файла был изменен в версии 1.1.0-beta для возможности задания связанных фильтров. Фильтры нужны для фильтрации списка серверов для выбора того, на котором будет выполняться запрос. Фильтры настраиваются в разделе filter. Фильтры запускаются mysqlnd_ms в том порядке, как они описаны в конфигурационном файле. Определение фильтров не является обязательным, так что, если они вам не нужны, то можете не указывать секцию filters.

Фильтры заменяют использовавшуюся в более ранних версиях настройку pick[] Новые random и roundrobin предоставляют ту-же функциональность.

Пример #6 Новый фильтр roundrobin, старая функциональность

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            },
            "slave_1": {
                "host": "192.168.78.137",
                "port": "3306"
            }
        },
        "filters": {
            "roundrobin": [

            ]
        }
    }
}

Функция mysqlnd_ms_set_user_pick_server() была удалена. Определение функции обратного вызова теперь происходит с помощью фильтра user. Фильтр user принимает обязательный параметр callback для установки обработчика, ранее устанавливавшегося с помощью функции mysqlnd_ms_set_user_pick_server().

Пример #7 Фильтр user заменяет mysqlnd_ms_set_user_pick_server()

"filters": {
    "user": {
        "callback": "pick_server"
    }
}

Корректность конфигурационного файла проверяется на двух этапах, при его первоначальном чтении и при создании соединения. Чтение конфигурационного файла происходит при старте обработки веб-запроса PHP. На ранних стадиях загрузки расширения, ошибки могут отображаться некорректно. В самом худшем случае ошибки вообще не будут показаны и соединения не будут устанавливаться, возвращая неадекватные сообщения. Эта проблема была решена вверсии 1.5.0.

Пример #8 Обычные сообщения об ошибках в случае некорректности конфигурационного файла (до версии 1.5.0)

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
?>

Результат выполнения данного примера:

Warning: mysqli::mysqli(): (mysqlnd_ms) (mysqlnd_ms) Failed to parse config file [s1.json]. Please, verify the JSON in Command line code

Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known in Command line code on line 1

Warning: mysqli::query(): Couldn't fetch mysqli in Command line code on line 1

Fatal error: Call to a member function fetch_assoc() on a non-object in Command line code on line 1

Начиная с версии 1.5.0, ошибки этапа чтения конфигурационного файла сохраняются в буфере и выводятся при попытке установки соединения. Для установки уровня ошибок, который будет использоваться для вывода забуферизованных ошибок, используйте директиву mysqlnd_ms.force_config_usage. По умолчанию будет использоваться уровень E_WARNING.

Пример #9 Улучшеная проверка конфигурационного файла, начиная с версии 1.5.0

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
?>

Результат выполнения данного примера:

Warning: mysqli::mysqli(): (mysqlnd_ms) (mysqlnd_ms) Failed to parse config file [s1.json]. Please, verify the JSON in Command line code on line 1

Для отладки потенциальных ошибок конфигурационного файла может быть полезным установить mysqlnd_ms.force_config_usage = 1. Это не только переключит уровень ошибок на E_RECOVERABLE_ERROR, но и позволит отловить опечатки в именах секций.

Пример #10 Возможно более точная ошибка из-за mysqlnd_ms.force_config_usage=1

mysqlnd_ms.force_config_usage=1
<?php
$mysqli = new mysqli("invalid_section", "username", "password", "database");
?>

Результат выполнения данного примера:

Warning: mysqli::mysqli(): (mysqlnd_ms) Exclusive usage of configuration enforced but did not find the correct INI file section (invalid_section) in Command line code on line 1 line 1

Конфигурационные директивы

Ниже приведено краткое описание доступных директив конфигурации.

master массив или объект

Списков основных серверов MySQL. Список может быть как типа массив JSON для указания списка анонимных серверов, так и типа объект JSON. Примеры смотрите выше.

Обязательно должен быть определен хотя бы один основной сервер. Если в конфигурационном файле будет отсутствовать эта директива, то плагин вызовет ошибку уровня E_ERROR. Фатальная ошибка может выглядить так (mysqlnd_ms) Section [master] doesn't exist for host [name_of_a_config_section] in %s on line %d.

Сервер описывается с моиощью host, port, socket, db, user, password и connect_flags. Обязательно должно присутствовать значение host. Остальные настройки по желанию. Если их не задавать, то плагин возьмет их из параметров, указанных пользователем в функции соединения с БД. Также см.: пример использование имен секций.

Таблица параметров настройки сервера.

Ключ Описание Версия
host

Хост, на котором развернута база данных. Это обязательный параметр. В случае его отсутствия, при попытке соединения будет выдана ошибка уровня E_RECOVERABLE_ERROR. Ошибка будет примерно такая (mysqlnd_ms) Cannot find [host] in [%s] section in config in %s on line %d.

Начиная с 1.1.0.
port

Порт TCP/IP, на котором слушает БД.

Начиная с 1.1.0.
socket

Сокет Unix сервера баз данных.

Начиная с 1.1.0.
db

База данных (схема).

Начиная с 1.1.0.
user

Пользователь.

Начиная с 1.1.0.
password

Пароль.

Начиная с 1.1.0.
connect_flags

Флаги соединения.

Начиная с 1.1.0.

Плагин поддерживает только один основной сервер. Существует экспериментальная настройка, позволяющая использовать несколько основных серверов. Подробности не задокументированы. Настройка предназначена только для разработки.

slave массив или объект

Список подчиненных серверов репликации MySQL. Синтаксис аналогичен списку основных серверов. См. master.

Плагин поддерживает работу с одним или более подчиненными серверами.

Список подчиненных серверов должен присутствовать в обязательном порядке. Плагин вызовет ошибку уровня E_ERROR, если в конфигурационном файле будет отсутствовать директива slave. Сообщение об ошибке будет примерно таким (mysqlnd_ms) Section [slave] doesn't exist for host [%s] in %s on line %d. Обратите внимание, что допустимо указывать пустой список. Ошибка была введена только для контроля, что секция slave в принципе присутствует. Если у вас используются только основные сервера, то допустимо оставлять этот список пустым.

При пустом списке, если будет предпринята попытка запустить запрос на подчиненном сервере, плагин может выдать предупреждение типа mysqlnd_ms) Couldn't find the appropriate slave connection. 0 slaves to choose from.. Также возможно у другое предупреждение, такое как (mysqlnd_ms) No connection selected by the last filter.

global_transaction_id_injection массив или объект

Настройка глобального идентификатора транзакции относится как к встроеному серверному механизму глобальных идентификаторов транзакций, так и к эмуляции на стороне клиента.

Ключ Описание Версия
fetch_last_gtid

SQL-запрос для извлечения последнего глобального идентификатора транзакций. Этот запрос нужен тогда, когда плагину необходимо узнать самый свежий идентификатор глобальной транзакции. Это нужно, например, при проверке статуса подчиненного сервера. Также используется функцией mysqlnd_ms_get_last_gtid().

Начиная с 1.2.0.
check_for_gtid

SQL-запрос для проверки того, что на реплике применились все транзакции вплоть до искомой, включая ее. Этот запрос нужен для поиска реплики с наилучшей согласованностью, покрывающей необходимую. Этот запрос может содержать шаблон #GTID, который будет заменен необходимым плагину глобальным идентификатором транзакции. Примеры смотрите в разделе быстрай старт.

Начиная с 1.2.0.
report_errors

Выдавать ли предупреждение в случае, если выполнение какого либо из этих запросов завершилось ошибкой.

Начиная с 1.2.0.
on_commit

Только для эмуляции глобального идентификатора транзакции на стороне клиента. SQl-запрос, который будет запущен по окончанию транзакции для обновления глобального идентификатора транзакции на основном сервере. Примеры смотрите в разделе быстрай старт.

Начиная с 1.2.0.
wait_for_gtid_timeout

Заставляет плагин ждать wait_for_gtid_timeout секунд, пока подчиненный сервер не придет в согласованное состояние, при поиске подчиненного сервера. Эта настройка ограничивает время выделяемое на опрос статуса подчиненного сервера. Если опрос занимает слишком много времени, то общее затраченное время может привысить wait_for_gtid_timeout. Плагин вызывает sleep(1) для паузы в одну секунду между двумя опросами.

Эта настройка может использоваться как с функионалом MySQL 5.6., так и с эмуляцией глобального идентификатора транзакций на стороне клиента.

Ожидание, пока подчиненный сервер среплицирует необходимый GTID, необходимо для поддержание согласованности сессии и позволяет притормозить клиента. Притормаживание клиента неявно сказывается на уменьшении нагрузки по записи на основной сервер. Системы репликации, базирующиеся на копировании с основных серверов на подчиненные, такие как репликация MySQL, требуют больше времени для достижения согласованности. Это может быть полезно для увеличения количества копий данных для обеспечения высокой доступности, или для снижения нагрузки на основной сервер.

Начиная с 1.4.0.
fabric объект

Настройки, относящиеся к MySQL Fabric. Если плагин используется вместе с MySQL Fabric, то файл конфигурации плагина не содержит секций со списками серверов. Вместо этого плагин запрашивает эти списки у MySQL Fabric.

Минимальная конфигурация для использования плагина с MySQL Fabric должна содержать список из одного или более хостов MySQL Fabric, к которым он будет обращаться. Если задано более одного хоста, то плагин будет использовать стратегию roundrobin для выбора одного из них. Другие стратегии пока недоступны.

Пример #11 Минимальная конфигурация плагина для использования с MySQL Fabric

{
    "myapp": {
        "fabric": {
            "hosts": [
                {
                    "host" : "127.0.0.1",
                    "port" : 8080
                }
            ]
        }
    }
}

Каждый хост MySQL Fabric описывается объектом JSON со следующими параметрами.

Ключ Описание Версия
host

Хост MySQL Fabric.

Начиная с 1.6.0.
port

Порт TCP/IP, на котором MySQL Fabric принимает запросы от удаленных клиентов, типа нашего плагина.

Начиная с 1.6.0.

Плагин использует потоки PHP для общения с MySQL Fabric через XML RPC поверх HTTP. По умолчанию дл сетевого взаимодействия не заданы какие0либо тайм-ауты. Таким образом, по умолчанию используются тайм-ауты потоков PHP, которые не контролируются плагином.

Можно задать собственные тайм-ауты. Настройка тайм-аутов в конфигурационном файле плагина будет иметь тот же эффект, что и настройка тайм-аутов для HTTP-соединения через потоки PHP.

Тайм-аут задается в секундах. Допустимые значения лежат в диапазоне от 0 до 65535. Эта настройка доступна с версии 1.6.

Пример #12 Таймаут соединения с Fabric

{
    "myapp": {
        "fabric": {
            "hosts": [
                {
                    "host" : "127.0.0.1",
                    "port" : 8080
                }
            ],
            "timeout": 2
        }
    }
}

Закрепление транзакции за сервером (Transaction stickiness) и логика MySQL Fabric могут противоречить друг другу. Закрепление транзакции запрещает переключение между серверами на протяжении выполнения транзакции. При использовании Fabric и шардинга, пользователь ошибочно может запустить локальную транзакцию на одном сервере и затем попытаться переключиться на другой, используя функции mysqlnd_ms_fabric_select_shard() или mysqlnd_ms_fabric_select_global(). В этом случае плагин не отвергнет запрос на переключение посреди транзакции, а позволит пользователю переключиться независимо от того, включено ли закрепление. Это будет исключительно ошибкой пользователя, написавшего такой код.

Если закрепление транзакции включено и вы хотите получать предупреждения, используя функции mysqlnd_ms_fabric_select_shard() или mysqlnd_ms_fabric_select_global(), то установите логический флаг trx_warn_server_list_changes.

Пример #13 Предупреждение о нарушении границ транзакции

{
    "myapp": {
        "fabric": {
            "hosts": [
                {
                    "host" : "127.0.0.1",
                    "port" : 8080
                }
            ],
            "trx_warn_serverlist_changes": 1
        },
        "trx_stickiness": "on"
    }
}
<?php
$link = new mysqli("myapp", "root", "", "test");
/*
  Этот запрос скорее всего завершится с ошибкой.
  Но в любом случае мы перейдем в режим
  необходимый для демонстрации.
*/
@mysqlnd_ms_fabric_select_global($link, 1);
$link->begin_transaction();
@$link->query("DROP TABLE IF EXISTS test");
/*
  Переключение серверов/шардов является ошибкой
  при открытии локальной транзакции!
*/
mysqlnd_ms_select_global($link, 1);
?>

Результат выполнения данного примера:

PHP Warning: mysqlnd_ms_fabric_select_global(): (mysqlnd_ms) Fabric server exchange in the middle of a transaction in %s on line %d

Обратите внимание, что эта особенность эксперементальная и в будущем синтаксис и семантика могут поменяться.

filters объект

Список фильтров. Фильтры нужны для фильтрации списка серверов доступных для выполнения заданного запроса. Фильтры можно выстраивать цепочкой. Фильтры random и roundrobin заменяют директиву pick[], ранее использовавшуюся для политик балансировки. Фильтр user заменяет функцию mysqlnd_ms_set_user_pick_server().

Фильтры могут принимать параметры для уточнения своих действий.

Если политики балансировки нагрузки не заданы, то плагин будет использовать random_once. Политика random_once берет случайный подчиненный сервер в момент запуска первого запроса на чтение. Для любых запросов, производящих только чтение, будет использоваться подчиненный сервер до момента завершения обработки PHP-скрипта. В случае, если в этой секции не заданы random или roundrobin, то балансировка нагрузки не будет использоваться.

Если цепочка фильтров настроена таким образом, что фильтр возвращающий не более одного сервера является входом фильтра, которому необходимо получить более одного сервера, то плагин может выдать предупреждение при создании подключения. Предупреждение будет примерно такое: (mysqlnd_ms) Error while creating filter '%s' . Non-multi filter '%s' already created. Более того, для соединения может быть установлена ошибка с номером 2000, SQL-состоянием HY000 и сообщением, аналогичным предупреждению.

Пример #14 Некорректная последовательность фильтров

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": [
            "roundrobin",
            "random"
        ]
    }
}
<?php
$link = new mysqli("myapp", "root", "", "test");
printf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
$link->query("SELECT 1 FROM DUAL");
?>

Результат выполнения данного примера:

PHP Warning:  mysqli::mysqli(): (HY000/2000): (mysqlnd_ms) Error while creating filter 'random' . Non-multi filter 'roundrobin' already created. Stopping in filter_warning.php on line 1
[2000] (mysqlnd_ms) Error while creating filter 'random' . Non-multi filter 'roundrobin' already created. Stopping
PHP Warning:  mysqli::query(): Couldn't fetch mysqli in filter_warning.php on line 3

Фильтр: random объект

Фильтр random работает как политики балансировки нагрузки, как random и random once, устанавливаемые ранее с помощью pick[].

Политика random берет случайный сервер всякий раз, когда надо выполнить запрос на чтение. Политика random once выбирает один подчиненный сервер и использует его для запросов на чтение на протяжении выполнения PHP-скрипта. Если политики балансировки нагрузки не определены, то, по умолчанию, будет использоваться random once.

Если фильтру random не передать ни одного аргумента, то будет выбрана политика балансировки random.

Пример #15 Стратегия random с помощью фильтра random

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            },
            "slave_1": {
                "host": "192.168.78.137",
                "port": "3306"
            }
        },
        "filters": [
            "random"
        ]
    }
}

Фильтру можно передать необязательный аргумент sticky. Если параметр sticky будет иметь значение 1 (типа строка), то фильтр будет определять стратегию random once.

Пример #16 Стратегия random once с помощью фильтра random

{
    "filters": {
        "random": {
            "sticky": "1"
        }
    }
}

Оба фильтра, random и roundrobin, поддерживают установку приоритета, веса сервера, начиная с PECL/mysqlnd_ms 1.4.0. Если в фильтре определен аргумент weight, он должен определять вес для всех серверов. При этом список подчиненных серверов в секции slave должен быть не анонимным, а именованным, как и в секции master. Имена должны использоваться для определения весов конкретных серверов с помощью weight.

Пример #17 Ошибка ссылки

[E_RECOVERABLE_ERROR] mysqli_real_connect(): (mysqlnd_ms) Unknown server 'slave3' in 'random' filter configuration. Stopping in %s on line %d

Использование ошибочного имени в секции weight может привести к ошибке, показанной выше.

Если секция weight отсутствует, то вес всех серверов считается за единицу.

Пример #18 Задание весов для балансировки нагрузки

{
   "myapp": {
       "master": {
           "master1":{
               "host":"localhost",
               "socket":"\/var\/run\/mysql\/mysql.sock"
           }
       },
       "slave": {
           "slave1": {
               "host":"192.168.2.28",
               "port":3306
           },
           "slave2": {
               "host":"192.168.2.29",
               "port":3306
           },
           "slave3": {
               "host":"192.0.43.10",
               "port":3306
           },
       },
       "filters": {
           "random": {
               "weights": {
                   "slave1":8,
                   "slave2":4,
                   "slave3":1,
                   "master1":1
               }
           }
       }
   }
}

В среднем, сервер с весом два будет выбираться в два раза чаще, чем сервер с весом один. Различные веса могут отражать производительность разных серверов, для задания предпочтения серверам с меньшими сетевыми задержками, или для настройки резервного сервера, который будет использоваться в случае отказа основного. В последнем случае имеет смысл задать резервному серверу очень маленький вес относительно остальных. К примеру, в приведенной выше конфигурации, сервер slave3 будет принимать только 8 процентов всех запросов, и если slave1 и slave2 работают, он будет выбираться крайне редко. В случае отказа slave1 и slave2, использование slave3 возрастет. Пожалуйста, перед тем как начать использовать веса таким образом, почитайте об обеспечении отказоустойчивости.

Корректные значения весов лежат в диапазоне от 1 до 65535.

Неизвестные аргументы будут тихо проигнорированы.

The filter expects one or more servers as input. Outputs one server. A filter sequence such as random, roundrobin may cause a warning and an error message to be set on the connection handle when executing a statement.

Список аргументов фильтра.

Ключ Описание Версия
sticky

Включает или отключает стратегию балансировки random once. См. выше.

Начиная с 1.2.0.
weight

Назначение весов/приоритетов серверам при балансировке нагрузки. Описание см. выше.

Начиная с 1.4.0.
Фильтр: roundrobin объект

При использовании фильтра roundrobin, плагин последовательно перебирает список подчиненных серверов для выбора сервера, на котором будет выполнен запрос. Если плагин доходит до конца списка, то перебор начинается с его начала.

Пример #19 roundrobin filter

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": [
            "roundrobin"
        ]
    }
}

Ожидает один или более серверов на вход. Возвращает один сервер. Последовательность фильтров, такая как roundrobin, random может установить ошибку для обработчика подключения во время выполнения запроса.

Список аргументов фильтра.

Ключ Описание Версия
weight

Назначение весов/приоритетов серверам при балансировке нагрузки. Описание см. выше.

Начиная с 1.4.0.
Фильтр: user объект

Фильтр user заменяет функцию mysqlnd_ms_set_user_pick_server(), которая была удалена в версии 1.1.0-beta. Фильтр устанавливает функцию обратного вызова, которая будет использоваться для выбора серверов и разделения операций записи/чтения.

Встроенный в плагин механизм разделения чтения/записи может быть переопределен двумя способами. Самый простой способ - добавить в начало строки запроса SQL-хинт MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH или MYSQLND_MS_LAST_USED_SWITCH. Использованием SQL-хинтов можно контролировать, например, будет ли запрос выполняться на основном сервере или на одном из подчиненных. С помощью SQL-хинтов невозможно однозначно указать конкретный подчиненный сервер для выполнения запроса.

Полный контроль над процедурой выбора сервера дает использование функции обратного вызова. Использование такой функции рекомендовано продвинутым пользователям, так как эта функция должна покрывать все возможные ситуации, в ином случае обрабатываемых плагином.

Плагин вызывает функцию для выбора сервера из списков подчиненных и основных серверов. Функция должна проанализировать запрос и вернуть URI наиболее подходящего сервера для его выполнения.

Если разрешены ленивые соединения и функция выберет подчиненный сервер, к которому еще не было установлено соединение и новое соединение завершится с ошибкой, плагин вернет ошибку до того, как с произойдет следующая операция с этим соединением, например запуск запроса. Это накладывает на разработчика задачу обработки таких ошибок. К примеру, приложение может перезапустить запрос в надежде, что в этот раз функция обратного вызова вернет другой сервер. Функция обратного вызова должна убедиться, что не вернет сервер, соединение с которым ранее завершилось ошибкой, или же изначально проверять доступность сервера, перед тем как вернуть его плагину, чтобы не свалиться в бесконечный цикл.

Пример #20 Установка callback-функции

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": {
            "user": {
                "callback": "pick_server"
            }
        }
    }
}

Функция обратного вызова должны вернуть хост для выполнения запроса. URI хоста должно браться из списков подчиненных и основных серверов, переданных функции. Если функция вернет значение, отсутствующее в этих списках, то плагин вызовет ошибку уровня E_RECOVERABLE_ERROR. Ошибка будет примерно такая (mysqlnd_ms) User filter callback has returned an unknown server. The server 'server that is not in master or slave list' can neither be found in the master list nor in the slave list. Если приложение перехватит и проигнорирует эту ошибку, то для соединения будет ошибка, например такая: (mysqlnd_ms) No connection selected by the last filter with the error code 2000 and the sqlstate HY000. Также может быть показано предупреждение.

Задание в качестве функции обратного вызова несуществующей функции приведет к ошибке уровня E_RECOVERABLE_ERROR при попытке ее вызвать. Сообщение об ошибке будет примерно такое: (mysqlnd_ms) Specified callback (pick_server) is not a valid callback. Если приложение перехватит и проигнорирует эту ошибку, то для соединения будет ошибка, например такая: (mysqlnd_ms) Specified callback (pick_server) is not a valid callback with the error code 2000 and the sqlstate HY000. Также может быть показано предупреждение.

Следующие параметры плагин передает функции обратного вызова.

Параметр Описание Версия
connected_host

URI текущего соединения.

Начиная с 1.1.0.
query

Строка с SQL-запросом, который необходимо выполнить.

Начиная с 1.1.0.
masters

Список основных серверов. Обратите внимание, что если настроена цепочка фильтров, и этот фильтр не первый в списке, то этот список может отличаться от списка в конфигурационном файле, так как предыдущие фильтры могли этот список уменьшить.

Начиная с 1.1.0.
slaves

Список подчиненных серверов. Обратите внимание, что если настроена цепочка фильтров, и этот фильтр не первый в списке, то этот список может отличаться от списка в конфигурационном файле, так как предыдущие фильтры могли этот список уменьшить.

Начиная с 1.1.0.
last_used_connection

URI сервера, на котором исполнялся последний запрос.

Начиная с 1.1.0.
in_transaction

Логический флаг, определяющий, является ли запрос частью открытой транзакции. Если включен режим autocommit, то этот флаг будет FALSE, иначе TRUE.

Определение транзакции базируется на мониторинге библиотеки mysqlnd на предмет вызовов set_autocommit. Более подробно читайте в разделе пулы соединений и переключение.

Начиная с 1.1.0.

Пример #21 Использование функции обратного вызова

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            },
            "slave_1": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": {
            "user": {
                "callback": "pick_server"
            }
        }
    }
}
<?php
function pick_server($connected, $query, $masters, $slaves, $last_used_connection, $in_transaction)
{
 static $slave_idx = 0;
 static $num_slaves = NULL;
 if (is_null($num_slaves))
  $num_slaves = count($slaves);

 /* по умолчанию: откат в встроеной в плагин логике */
 $ret = NULL;

 printf("Пользователь соединен с '%s'...\n", $connected);
 printf("... решаем где выполнять '%s'\n", $query);

 $where = mysqlnd_ms_query_is_select($query);
 switch ($where)
 {
  case MYSQLND_MS_QUERY_USE_MASTER:
   printf("... используем основной сервер\n");
   $ret = $masters[0];
   break;
  case MYSQLND_MS_QUERY_USE_SLAVE:
   /* SELECT или SQL-хинт для использования подчиненного */
   if (stristr($query, "FROM table_on_slave_a_only"))
   {
    /* таблица, которая находится только на первом подчиненном сервере */
    printf("... доступ к таблице возможен только на подчиненном сервере A\n");
    $ret = $slaves[0];
   }
   else
   {
    /* round robin */
    printf("... выполняем запрос на чтение на подчиненном сервере\n");
    $ret = $slaves[$slave_idx++ % $num_slaves];
   }
   break;
  case MYSQLND_MS_QUERY_LAST_USED:
   printf("... испольщзуем тот же сервер, что и для предыдущего запроса\n");
   $ret = $last_used_connection;
   break;
 }

 printf("... ret = '%s'\n", $ret);
 return $ret;
}

$mysqli = new mysqli("myapp", "root", "", "test");

if (!($res = $mysqli->query("SELECT 1 FROM DUAL")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

if (!($res = $mysqli->query("SELECT 2 FROM DUAL")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

if (!($res = $mysqli->query("SELECT * FROM table_on_slave_a_only")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

$mysqli->close();
?>

Результат выполнения данного примера:

Пользователь соединен с 'myapp'...
... решаем где выполнять 'SELECT 1 FROM DUAL'
... выполняем запрос на чтение на подчиненном сервере
... ret = 'tcp://192.168.2.27:3306'
Пользователь соединен с 'myapp'...
... решаем где выполнять 'SELECT 2 FROM DUAL'
... some read-only query for a slave
... ret = 'tcp://192.168.78.136:3306'
Пользователь соединен с 'myapp'...
... решаем где выполнять 'SELECT * FROM table_on_slave_a_only'
... доступ к таблице возможен только на подчиненном сервере A
... ret = 'tcp://192.168.2.27:3306'

Фильтр: user_multi объект

Фильтр user_multi отличается от user только в одном аспекте. Весь остальной синтаксис аналогичен. Фильтр user может выбрать и вернуть только один сервер. Цепочка фильтров на этом обычно заканчивается, так как она должна сократить список серверов ровно до одного. Соответственно, после user остается ровно один сервер, на котором и запускается запрос.

Фильтр user_multi, напротив, возвращает список подчиненных и основных серверов, который передается следующему фильтру в цепочке. Такой фильтр обычно ставится в начале цепочки фильтров. Другой фильтр, возвращающий более одного сервера - это quality_of_service.

Функция обратного вызова, заданая в user_multi должна вернуть массив с двумя элементами. В первом список выбранных основных серверов, а во втором - подчиненных серверов. Список должен содержать ключи подчиненных и основных серверов, присутствующие в переданных ему ранее списках. Следующий пример демонстрирует получения случайного списка подчиненных и основных серверов.

Пример #22 Получение случайных подчиненных и основных серверов

<?php
function pick_server($connected, $query, $masters, $slaves, $last_used_connection, $in_transaction)
{
  $picked_masters = array()
  foreach ($masters as $key => $value) {
    if (mt_rand(0, 2) > 1)
      $picked_masters[] = $key;
  }
  $picked_slaves = array()
  foreach ($slaves as $key => $value) {
    if (mt_rand(0, 2) > 1)
      $picked_slaves[] = $key;
  }
  return array($picked_masters, $picked_slaves);
}
?>

В случае, если функция не вернет списка серверов, плагин выдаст ошибку уровня E_RECOVERABLE. Ошибка будет примерно такая: (mysqlnd_ms) User multi filter callback has not returned a list of servers to use. The callback must return an array in %s on line %d. В случае, если списки будут не пустыми, но будут содержать некорретные ключи серверов, то будет выдана ошибка уровня E_RECOVERABLE с примерно таким текстом: (mysqlnd_ms) User multi filter callback has returned an invalid list of servers to use. Server id is negative in %s on line %d, или похожая.

Будет ли выдаваться ошибка в случае возврата пустых списков подчиненных или основных серверов, зависит от настроек. Если возвращен пустой список основных серверов для запроса на запись, то плагин, скорее всего, вызовет ошибку типа (mysqlnd_ms) Couldn't find the appropriate master connection. 0 masters to choose from. Something is wrong in %s on line %d. Обычно именно такая ошибка уровня E_ERROR и произойдет. В случае операции чтения и пустого списка подчиненных серверов, поведение будет определяться конфигурацией механизма защиты от отказов. Если допустим откат к основному серверу, то ошибок не будет. Если же откат к основному серверу запрещен, то будет ошибка типа (mysqlnd_ms) Couldn't find the appropriate slave connection. 0 slaves to choose from. Something is wrong in %s on line %d.

Фильтр: node_groups объект

Фильтр node_groups позволяет группировать узлы кластера и отправлять запрос на эти группы, например для поддержки партиционирования. Партиционирование данных может потребоваться в случае ручного шардирования, в кластерах типа primary copy с несколькими основными серверами или для обхода узких мест в кластерах типа update everywhere, не имеющих собственных механизмов партиционирования. Соответственно, после этого фильтра необходимо применить другой фильтр, который выберет один сервер из возвращенного списка.

Ключ Описание Версия
пользовательские имена групп узлов

Можно определить одну или более групп узлов кластера. Каждая такая группа должна иметь свое имя. Это имя используется в SQL-хинтах для принудительного задания группы серверов, на которых должен выполняться запрос. Для запуска запроса на одном из серверов конкретной группы, SQL-зхапрос должен предворяться хинтом /*имя группы узлов*/. Обратите внимание, что вокруг имя группы узлов не должно быть пробелов. Поскольку имя группы узлов будет использоваться как есть вам качестве части SQl-хинта, вы должны избегать имен некорректных с точки зрения SQL.

Каждое определение группы серверов должно содержать список основных-серверов. Также можно задавать список подчиненных серверов. В случае отсутствия основного-сервера в группе name_of_group может привести к ошибке уровня E_RECOVERABLE_ERROR с текстом (mysqlnd_ms) No masters configured in node group 'name_of_group' for 'node_groups' filter.

Список подчиненных и основных серверов должен содержать сервера, которые присутствуют в глобальном списке основных серверов и глобальном списке подчиненных серверов соответственно. В случае если будет указан неизвестный сервер, то будет выдана ошибка уровня E_RECOVERABLE_ERROR с текстом (mysqlnd_ms) Unknown master 'server_alias_name' (section 'name_of_group') in 'node_groups' filter configuration.

Пример #23 Ручное партиционирование

{
  "myapp": {
       "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.28",
                "port": 3306
            },
            "slave_1": {
                "host": "127.0.0.1",
                "port": 3311
            }
        },
        "filters": {
            "node_groups": {
                "Partition_A" : {
                    "master": ["master_0"],
                    "slave": ["slave_0"]
                }
            },
           "roundrobin": []
        }
    }
}

Обратите внимание, что если цепочка фильтров вернула пустой список подчиненных серверов и использована конфигурационная директива mysqlnd_ms.multi_master=0, плагин может выдать предупреждение.

Начиная с 1.5.0.
Фильтр: quality_of_service объект

Фильтр quality_of_service идентифицирует узлы кластера способные предоставить необходимый уровень сервиса. Это фильтр, который может вернуть ноль, один или несколько серверов. За ним обязательно должен следовать фильтр, гарантированно возвращающий ровно один сервер.

Фильтр quality_of_service появился в версии 1.2.0-alpha. В версиях 1.2, этот фильтр фокусируется на таком аспекте качества, как согласованность данных. Разные типы кластеров предоставляют разный уровень согласованности данных. К примеру, асинхронная репликация MySQL предоставляет не гарантированную согласованность. Подчиненный сервер может не отдать запрашиваемые данные, либо данные на нем будут устаревшиви, поскольку они на него еще не среплицировались. Обычно это допустимо. В других случаях, для корректной работы приложения, требуется более высокий уровень согласованности. Для таких случаев quality_of_service может отбросить сервера, которые этого не гарантируют.

Фильтр quality_of_service может быть удален или создан во время исполнения.Успешный вызов mysqlnd_ms_set_qos() удаляет все существующие qos фильтры из списка фильтров и добавляет новый в самое начало. Все настройки, какие можно сделать с помощью mysqlnd_ms_set_qos(), также можно сделать и в конфигурационном файле. Однако использование функции, безусловно, является наиболее распространенным вариантом использования. Вместо установки уровней session_consistency и strong_consistency, рекомендуется просто не указывать подчиненные сервера, а только основные сервера. Использование пустого списка подчиненных серверов короче и более читаемо. Единственный уровень сервиса, который имеет смысл указывать в конфигурационном файле, это комбинация eventual_consistency и контроль максимальной задержки репликации подчиненного сервера.

Ключ Описание Версия
eventual_consistency

Не гарантированная согласованность. Позволяет использовать любые подчиненные и основные сервера. данные могут быть устаревшими.

Данный фильтр может принимать опциональный параметр age. Если параметр age задан, то плагин будет рассматривать достойными чтения только те подчиненные сервера, для которых репликация возвращает задержку подчиненного сервера меньшую или равную age. Задержка репликации измеряется с использованием SHOW SLAVE STATUS. Если плагин не может получить значение задержки репликации, то сервер будет исключен. Детали реализации и использования описаны в секции концепции качества сервиса.

Обратите внимание, что если цепочка фильтров вернула пустой список подчиненных серверов и использована конфигурационная директива mysqlnd_ms.multi_master=0, плагин может выдать предупреждение.

Пример #24 Global limit on slave lag

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            },
            "slave_1": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": {
            "quality_of_service": {
                "eventual_consistency": {
                    "age":123
                }
            }
        }
    }
}

 Начиная с 1.2.0.
session_consistency

Согласованность на уровне сессии (гарантия чтения значений, которые вы записали). Позволяет использовать все основные сервера и подчиненные сервера синхронизованные с основным сервером. Если не задано никаких дополнительных параметров, то все подчиненные серверы будут исключены, так как надежно определить то, что подчиненные сервера полностью синхронизированы с основным сервером - невозможно. Обратите внимание, что если цепочка фильтров вернула пустой список подчиненных серверов и использована конфигурационная директива mysqlnd_ms.multi_master=0, плагин может выдать предупреждение.

Временно согласованность на уровне сессии можно с помощью функции mysqlnd_ms_set_qos(), что является альтернативой использованию master_on_write. master_on_write скорее всего, отправит больше запросов основному серверу, чем необходимо. Приложение сможет продолжить работу с более низким уровнем согласованности после выполнения критичных запросов.

Начиная с 1.1.0.
strong_consistency

Сильная согласованность. Будут использованы только основной сервер.

Начиная с 1.2.0.
failover До версии (включая) 1.3.x: строка. Начиная с 1.4.0: объект.

Политика обработки отказов. Поддерживаемые политики: disabled (по умолчанию), master, loop_before_master (Начиная с 1.4.0).

Если политики обработки отказов не настроены, то по умолчанию никакой автоматической обработки отказов производиться не будет (failover=disabled). Всякий раз, когда плагин не может установить соединение с сервером, он выдает предупреждение и устанавливает для этого соединения код и сообщение об ошибке. После этого он возвращает ошибку приложению на обработку и, например, перепосылает последний запрос в надежде, что будет выбран другой сервер.

Обратите внимание, что логика обработки отказов по умолчанию применяется только при создании нового соединения. Если соединение было открыто, то никаких попыток переподключения, в случае ошибки, производиться не будет. Если, к примеру, сервер, с которым установлено соединение, отключится, то, при попытке выполнить на нем запрос, никаких попыток восстановления предпринято не будет. Вместо этого вернется ошибка.

Если используется failover=master, то плагин будет неявно переключаться на основной сервер, если он доступен. Пожалуйста внимательно почитайте документацию, где описаны все риски и подводные камни использования failover=master.

Пример #25 Откат к основному серверу в случае невозможности соединиться с подчиненным сервером (PECL/mysqlnd_ms < 1.4.0)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "failover": "master"
    }
}

Начиная с PECL/mysqlnd_ms 1.4.0 ключ конфигурации failover должен содержать объект.

Пример #26 Новый синтаксис, начиная с версии 1.4.0

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "failover": {"strategy": "master" }
    }
}

Ключ Описание Версия
strategy

Политика обработки отказов. Допустимые значения: disabled (default), master, loop_before_master

Значение disabled запрещает автоматическую обработку отказов.

Значение master говорит плагину, что, в случае недоступности подчиненного сервера, необходимо переключиться на основному серверу. Если соединение с основным сервером вернуло ошибку, то плагин завершит цикл обработки ошибок и вернет ошибку пользователю.

Если используется loop_before_master и сделан запрос к подчиненному серверу, плагин попытается соединиться с другими подчиненными серверами и только в самом конце переключится на основной сервер. Если указано несколько основных серверов и разрешена конфигурация с несколькими основными серверами, то плагин будет пытаться соединиться со всеми ними по очереди и только потом вернет ошибку.

Начиная с 1.4.0.
remember_failed

Запоминать ошибки в течение всего времени исполнения PHP-скрипта. По умолчанию: false.

Если установить как true, то плагин запомнит хосты, к которым не удалось подключиться, и в течение исполнения текущего скрипта больше не будет пытаться их использовать для балансировки нагрузки.

Начиная с версии 1.4.0. Этот функционал доступен только в сочетании с фильтрами балансировки нагрузки random и roundrobin. Рекомендуется использовать эту опцию.
max_retries

Максимальное количество попыток коннекта перед тем, как отклонить хост. По умолчанию: 0 (нет ограничений).

Эта настройка предназначена для предотвращения исключения хостов из списка используемых после первой ошибки соединения. Если установить n > 0, то плагин не будет убирать сервер из списка пока для него не будет предпринято заданное количество неудачных соединений.

Начиная с 1.4.0. Этот функционал доступен только в сочетании с фильтрами балансировки нагрузки random и roundrobin.

Установка failover любым значением, отличным от disabled, master или loop_before_master, не вызовет ошибок или предупреждений.

lazy_connections логическое

Контролирует использование ленивых подключений. Ленивые подключения - это такие подключения, которые не устанавливаются, пока клиент не отправит первый запрос. Включены по умолчанию.

Ленивые подключения крайне рекомендованы к использованию, поскольку позволяют сильно сократить количество открытых соединений. Если вы запретите ленивые соединения, то, например, настроив кластер из одного основного сервера и двух подчиненных серверов, вы получите три одновременно открытых соединения при первом же подключении к базе, хотя в вашем скрипте используется только подключение к основному серверу.

Леничные подключения не представляют опасности, если вы часто меняете состояние подключения. Плагин не отправляет все изменения состояния во все соединения из пула соединений. Небольшое количество изменений посылаются только в открытые соединения. Ленивые соединения, открытые позже, не будут затронуты. Только небольшое количество настроек будут "запоминаться" и применяться к новым открытым ленивым соединениям.

Пример #27 Запрещение ленивых соединений

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "lazy_connections": 0
    }
}

Внимательно изучите документацию по server_charset, для того, чтобы избежать проблем с экранированием строк и с серверами, использующими другие настройки локали по умолчанию.

server_charset строка

Эта настройка появилась в версии 1.4.0. Крайне рекомендуется ее использовать при включенных ленивых подключениях.

Настройка server_charset служит двум целям. Она используется как кодировка по умолчанию при экранировании строк до установления соединения и помогает избежать подводных камней в гетерогенном окружении, когда разные сервера используют разные кодировки по умолчанию.

При выполнении экранирования строк учитывается кодировка соединений. Выключение экранирования строк невозможно до того, как соединение будет открыто, и не станет известна кодировка соединения. Использование ленивых подключений задерживает реальное открытие соединение до момента отправки первого запроса.

Приложения использующие ленивые подключения могут попытаться экранировать строки перед отправкой запроса. Фактически это обычное дело, когда строка запроса нуждается в экранировании. Однако, так как ленивое соединение еще не открыто, то такое экранирование завершится с ошибкой. Плагин выдаст ошибку уровня E_WARNING с текстом (mysqlnd_ms) string escaping doesn't work without established connection. Possible solution is to add server_charset to your configuration.

Установка server_charset позволит плагину использовать заданную кодировку для экранирования строк до того, как ленивое соединение будет реально установлено. Мало того, плагин будет принудительно использовать эту кодировку когда соединение установлено.

Принудительное использование настроенной кодировки для экранирования позволит избежать подводных камней при использовании другой кодировки позже, после установки соединения. Это дополнительное преимущество, позволяющее не выравнивать настройки кодировки на всех используемых серверах. Не важно, какая кодировка настроена на серверах, плагин, по умолчанию, будет использовать свою.

Плагин не запрещает пользователю в любой момент поменять кодировку с помощью функции set_charset() или соответствующего SQL-запроса. Обратите внимание, что использование SQL не рекомендуется, поскольку плагин не сможет его отследить. Пользователь может, к примеру, изменить кодировку для ленивого соединения после экранирования, но до установления соединения. Кодировка, установленная пользователем, может быть использована для любого вложенного экранирования, до установления реального соединения. Соединение будет установлено с использованием заданной в конфигурационном файле кодировки не взирая на кодировку сервера и предшествующие действия пользователя. Если соединение уже было установлено, set_charset больше не имеет смысла.

Пример #28 Экранирование строк для ленивых подключений

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "lazy_connections": 1,
        "server_charset" : "utf8"
    }
}
<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
$mysqli->real_escape("это будет экранироваться с помощью настройки server_charset - utf8");
$mysqli->set_charset("latin1");
$mysqli->real_escape("это будет экранироваться с помощью latin1");
/* server_charset implicitly set - utf8 connection */
$mysqli->query("SELECT 'это соединение будет использовать server_charset' AS _msg FROM DUAL");
/* теперь используется latin1*/
$mysqli->set_charset("latin1");
?>

master_on_write логическое значение

Если установлено, то плагин начнет использовать основной сервер только после того, как на нем будет выполнен первый запрос. Приложение также сможет использовать подчиненные сервера, используя SQL-хинты.

Эта настройка может помочь победить задержку репликации. Если, например, будет запущен запрос INSERT, то, после него, все последующие запросы плагин будет отправлять на основной сервер, включая запросы типа SELECT. Это может помочь в случае, когда подчиненные сервера не успеют среплицировать результаты запроса INSERT.

Пример #29 Обеспечение консистентного чтения

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "master_on_write": 1
    }
}

Обратите внимание, что фильтр quality_of_service появился в версии 1.2.0-alpha. Он дает возможность более тонко упровлять уровнем сервиса, который вам нужен.

Все настройки привязки транзакции к серверу, включая trx_stickiness=on, перебиваются master_on_write=1.

trx_stickiness строка

Политики привязки транзакции к серверу. Поддерживаемые политики: disabled (по умолчанию), master.

Эта настройка требует версии PHP 5.4.0 или выше. Если использовать с более ранними версиями PHP, то плагин выдаст предупреждение вида (mysqlnd_ms) trx_stickiness strategy is not supported before PHP 5.3.99.

Если политика не определена, либо установлена как trx_stickiness=disabled, то плагин может балансировать нагрузку и переключаться между серверами в течение транзакции. Плагин не транзакционно-безопасен. Для предотвращения переключения соединения в ходе транзакции можно использовать SQL-хинты.

Начиная с PHP 5.4.0, библиотека mysqlnd позволяет отслеживать изменение состояния режима autocommit, путем перехвата вызовов функции set_autocommit(). Если задано set_stickiness=master и autocommit отключен расширением PHP MySQL путем вызова mysqlnd внутренней функции set_autocommit(), плагин понимает, что начата транзакция, и все последующие запросы будут выполняться на основном сервере, пока не будет включен autocommit. Соответственно можно не использовать SQL-хинты.

Например, для вызова внутренней функции библиотеки mysqlnd set_autocommit(), можно использовать mysqli_autocommit().

Следует учесть, что даже с установкой trx_stickiness=master, плагин не сможет перехватывать изменение режима autocommit, вызваное SQL-запросами, такими как SET AUTOCOMMIT=0 или BEGIN.

Начиная с PHP 5.5.0, библиотека mysqlnd содержит дополнительные вызовы C API для контроля транзакций. Уровень контроля совпадает с заданным SQL-запросом. mysqli API был изменен для использования этих вызовов. Начиная с версии 1.5.0, PECL/mysqlnd_ms может отслеживать не только mysqli_autocommit(), но также mysqli_begin(), mysqli_commit() и mysqli_rollback(). Это позволяет отслеживать границы транзакций и останавливать для них балансировку.

Пример #30 Использование основного сервера для запуска транзакции

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "trx_stickiness": "master"
    }
}

Начиная с версии 1.5.0, в рамках транзакции запрещен автоматическая обработка отказов. Если границы транзакции определены верно, разрешена привязка транзакции к серверу и, в этот момент, сервер перестает отвечать, то плагин не будет пытаться переключиться на другой сервер, если явно не настроены политики обработки отказов. Пользователь должен обработать такие ошибки самостоятельно. В зависимости от настроек, плагин может выдать ошибку уровня E_WARNING с текстом вроде такого: (mysqlnd_ms) Automatic failover is not permitted in the middle of a transaction. Эта ошибка может быть перебита другими ошибками, выданными функциями, исполняющими запрос, например (mysqlnd_ms) No connection selected by the last filter.

Пример #31 Нет автоматического переключения при сбое, обработка ошибок

<?php
/* предположение: настроена автоматическая обработка ошибок */
$mysqli = new mysqli("myapp", "username", "password", "database");

/* переключаем внутреннее состояние плагина в in_trx = 1 */
$mysqli->autocommit(false);

/* предположение: сервер перестал отвечать */
if (!($res = $mysqli->query("SELECT 'Этот запрос не выполнился' AS _msg FROM DUAL"))) {
 /* обрабатываем ошибку транзакции, внутреннее состояние плагина все еще in_trx = 1 */
 printf("[%d] %s", $mysqli->errno, $mysqli->error);
 /*
  Если используется механизм определения транзакции на базе autocommit(),
  то НЕОБХОДИМО вызвать autocommit(true). В противном случае плагин
  будет думать, что продолжается текущая транзакция и переключиться на
  другой сервер не получится.
 */
 $mysqli->autocommit(true);
 /* Ну и теперь вы хотите начать новую транзакцию */
 $mysqli->autocommit(false);
}
/* с этого момента используем latin1 */
$mysqli->set_charset("latin1");
?>

Если сервер отказывает в середине транзакции, плагин будет игнорировать все попытки переключиться на другой сервер, пока транзакция не будет завершена. Напомним, что плагин контролирует вызовы API для обнаружения границ транзакций. Таким образом, вам нужно, например, включить режим автокоммита для завершения текущей транзакции для того, чтобы плагин включит балансировку нагрузки. Собственно вы можете сразу же начать новую транзакцию, снова отключив режим автоматического подтверждения.

Если вы не будете обрабатывать ошибки и завершать некорректную транзакцию, то дальнейшие вызовы API могут привести к ошибкам, таким как Commands out of sync; you can't run this command now. Запомните - это очень важно, обрабатывать все ошибки.

transient_error объект

Настройка появилась в версии 1.6.0.

Узел кластера базы данных может вернуть ошибку, вызванную кратковременным сбоем. Клиент может повторить запрос на том же узле, переключиться на другой, или вообще отменить запрос. Для подобных ошибок вполне безпасно использовать для повторного запроса тот же сервер.

PECL/mysqlnd_ms может выполнить повтор запроса от имени приложения. С помощью transient_error можно настроить плагин для повтора запроса, завершившегося с конкретными ошибками определенное количество раз с паузой между попытками. Если в процессе повтора ошибка пропадет, то приложение этого даже не заметит. Если все попытки завершились неудачей, то приложению будет возвращена ошибка.

Пример #32 Цикл повторов исправляемых ошибок

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
       },
       "transient_error": {
          "mysql_error_codes": [
            1297
          ],
          "max_retries": 2,
          "usleep_retry": 100
       }
    }
}

Ключ Описание Версия
mysql_error_codes

Список исправляемых кодов ошибок. Вы можете добавить любые коды ошибок в этот список. Допустимо считать исправляемой любую ошибку, а не только 1297 (HY000 (ER_GET_TEMPORARY_ERRMSG), Message: Got temporary error %d '%s' from %s). Перед добавлением других кодов, кроме 1297, в список, убедитесь, что кластер поддержитвает повтор такого запроса без нарушения состояния вашего приложения.

Начиная с 1.6.0.
max_retries

Максимальное количество повторов перед отправкой ошибки пользователю.

По умолчанию: 1

Начиная с 1.6.0.
usleep_retry

Задержка в миллисекундах между повторами. Это значение будет передано C-функции usleep().

По умолчанию: 100

Начиная с 1.6.0.
xa объект

Настройка появилась в версии 1.6.0.

Замечание: Эксперементальный функционал

Эта функциональность в данный момент находится в разработке, так что при ее использовании могут возникать проблемы и ограничения. Не используйте в промышленном окружении.

state_store
record_participant_credentials

Сохранять ли имя пользователя и пароль участника глобальной транзакции в таблице участников. Если отключено, сборщик мусора, при подключении к серверам будет использовать имя и пароль по умолчанию. Если вы не используете разных пользователей для разных серверов MySQL, то спокойно можно использовать значения по умолчанию и не сохранять эту информацию в хранилище состояния.

Обратите внимание, что при использовании этого функционала, имя и пароль пользователя в хранилище состояния MySQL будут храниться в текстовом виде. Вся отвественность за обеспечение безопасности этой информации лежит на вас.

По умолчанию: false

participant_localhost_ip

Во время сбора мусора XA, плагин может найти сервер участник, для которого был был записан хост localhost. Если сбор мусора запустился на другом хосте, но хост сделал запись участника в хранилище состояния, то localhost будет разрешаться как другой хост. Поэтому при записи имени хоста участника в хранилище состояния следует использовать не localhost, а актуальный IP-адрес localhost.

Установка participant_localhost_ip должна использоваться только если нельзя избежать использования localhost. Если смотреть только с точки зрения сбора мусора, желательно не настраивать соединения с сокетом, а использовать IP-адрес и порт.

mysql

В качестве хранилища состояния доступно только хранилище состояния MySQL.

global_trx_table

Имя таблицы MySQL, используемой для хранения состояния текущей или оборванной глобальной транзакции. Для создания таблицы используйте приведенный ниже SQL-запрос. Не забудьте заменить имя таблицы на то, которое будете использовать в настройках.

По умолчанию: mysqlnd_ms_xa_trx

Пример #33 SQL-запрос для создания таблицы хранилища состояния транзакции

CREATE TABLE mysqlnd_ms_xa_trx (
  store_trx_id int(11) NOT NULL AUTO_INCREMENT,
  gtrid int(11) NOT NULL,
  format_id int(10) unsigned NOT NULL DEFAULT '1',
  state enum('XA_NON_EXISTING','XA_ACTIVE','XA_IDLE','XA_PREPARED','XA_COMMIT','XA_ROLLBACK') NOT NULL DEFAULT 'XA_NON_EXISTING',
  intend enum('XA_NON_EXISTING','XA_ACTIVE','XA_IDLE','XA_PREPARED','XA_COMMIT','XA_ROLLBACK') DEFAULT 'XA_NON_EXISTING',
  finished enum('NO','SUCCESS','FAILURE') NOT NULL DEFAULT 'NO',
  modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  started datetime DEFAULT NULL,
  timeout datetime DEFAULT NULL,
  PRIMARY KEY (store_trx_id),
  KEY idx_xa_id (gtrid,format_id,finished),
  KEY idx_state (state)
) ENGINE=InnoDB

participant_table

Имя таблицы MySQL, используемой для хранения информации об участниках текущей или оборванной глобальной транзакции. Для создания таблицы используйте приведенный ниже SQL-запрос. Не забудьте заменить имя таблицы на то, которое будете использовать в настройках.

Хранение имени и пароля пользователя контролируется настройкой record_participant_credentials

По умолчанию: mysqlnd_ms_xa_participants

Пример #34 SQL-запрос для создания таблицы хранилища участников транзакции

CREATE TABLE mysqlnd_ms_xa_participants (
  fk_store_trx_id int(11) NOT NULL,
  bqual varbinary(64) NOT NULL DEFAULT '',
  participant_id int(10) unsigned NOT NULL AUTO_INCREMENT,
  server_uuid varchar(127) DEFAULT NULL,
  scheme varchar(1024) NOT NULL,
  host varchar(127) DEFAULT NULL,
  port smallint(5) unsigned DEFAULT NULL,
  socket varchar(127) DEFAULT NULL,
  user varchar(127) DEFAULT NULL,
  password varchar(127) DEFAULT NULL,
  state enum('XA_NON_EXISTING','XA_ACTIVE','XA_IDLE','XA_PREPARED','XA_COMMIT','XA_ROLLBACK')
   NOT NULL DEFAULT 'XA_NON_EXISTING',
  health enum('OK','GC_DONE','CLIENT ERROR','SERVER ERROR') NOT NULL DEFAULT 'OK',
  connection_id int(10) unsigned DEFAULT NULL,
  client_errno smallint(5) unsigned DEFAULT NULL,
  client_error varchar(1024) DEFAULT NULL,
  modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (participant_id),
  KEY idx_xa_bqual (bqual),
  KEY idx_store_trx (fk_store_trx_id),
  CONSTRAINT mysqlnd_ms_xa_participants_ibfk_1 FOREIGN KEY (fk_store_trx_id)
    REFERENCES mysqlnd_ms_xa_trx (store_trx_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB
garbage_collection_table

Имя таблицы MySQL используемой для отслеживания и синхронизации запуска сбора мусора. Для создания таблицы используйте приведенный ниже SQL-запрос. Не забудьте заменить имя таблицы на то, которое будете использовать в настройках.

По умолчанию: mysqlnd_ms_xa_gc

Пример #35 SQL-запрос для создания таблицы хранилища тнформации о сборе мусора

CREATE TABLE mysqlnd_ms_xa_gc (
  gc_id int(10) unsigned NOT NULL AUTO_INCREMENT,
  gtrid int(11) NOT NULL,
  format_id int(10) unsigned NOT NULL DEFAULT '1',
  fk_store_trx_id int(11) DEFAULT NULL,
  modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  attempts smallint(5) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (gc_id),
  KEY idx_store_trx (gtrid,format_id,fk_store_trx_id)
) ENGINE=InnoDB
host

Имя хоста сервера MySQL.

user

Имя пользователя.

password

Пароль.

db

База данных, в которой располагаются таблицы сборщика мусора. Обратите внимание, что таблицы сборщика мусора необходимо создать до использования плагина. Таблицы не создаются во время исполнения и сборщик мусора не сможет без них работать.

port

Порт сервера MySQL.

socket

Доменный сокет unix для сервера MySQL. Обратите внимание, что если вы используете несколько серверов PHP, то любой из них может попытаться выполнить сборку мусора и должен иметь доступ к хранилищу состояния. В этом случае вы можете настроить IP-адрес и порт для сервера MySQL, хранящего состояние, чтобы все серверы PHP могли к нему обратиться.

rollback_on_close

Производить ли автоматический откат открытой глобальной транзакции при закрытии соединения. Если включено, то поведение будет аналогично поведению с локальными транзакциями. Как только клиент потерял соединение, сервер откатит все открытые и не завершенные транзакции.

По умолчанию: true

garbage_collection
max_retries

Максимальное количество попыток запуска сборки мусора. Допустимы значения в диапазоне от 0 до 100. 0 означает отсутствие ограничений, только если ограничения не настроены в хранилище состояния. Ограничения хранилища состояния, предположительно, значительно выше, чем 100. Доступно с версии 1.6.0.

Обратите внимание, что крайне важно завершить ошибочные XA-транзакции за разумное время, чтобы сервера участники могли высвободить занятые ими ресурсы. Встроенный сборщик мусора не ожидает, что будет завершаться с ошибкой длительное время, пока сбойные сервера приходят в себя. Все еще возможны ситуации, когда может потребоваться вмешательство человека для решения проблем сборщика мусора. В этом случае сперва надо убедиться, что ситуацию нельзя разрешить принудительным запуском mysqlnd_ms_xa_gc(), а только потом принимать более серьезные меры.

По умолчанию: 5

probability

Вероятность сбора мусора. Допустимы значения от 0 до 1000. Установка 0 запрещает автоматический фоновый сбор мусора. Помните, что даже установив 0, вы сможете запускать сборку мусора самостоятельно с помощью mysqlnd_ms_gc(). Доступно с версии 1.6.0.

Автоматический сбор мусора для зависшей XA-транзакции возможен только если настроено хранение состояния. Хранилище состояния отвечает за отслеживание XA-транзакции. Основываясь на записях в хранилище состояния можно определить участников транзакции и выполнить на них откат.

Сбор мусора запускается в качестве в процессе завершения обработки веб-запроса PHP, как только ваш скрипт завершил работу. Надо ли запускать сборщик мусора, определяется вычислением случайного числа между 0 и 1000. Если число выше или равно настроеной вероятности, то сборка будет запущена.

По умолчанию: 5

max_transactions_per_run

Максимальное количество XA-транзакций, которые будут обработаны за один запуск сборки мусора. Допустимы значения от 1 до 32768. Доступно с версии 1.6.0.

Зачистка незавершенный XA-транзакций требует значительных затрат времени и ресурсов. Сборщик мусора должен соединиться с несколькими участниками незавершенной транзакции и выполнить определенные SQL-запросы для ее отката.

По умолчанию: 100

Файл конфигурации плагина (<= 1.0.x)

Замечание:

Все дальнейшие описания относятся к PECL/mysqlnd_ms < 1.1.0-beta. Они не используются в более ранних версиях.

Плагин использует собственный файл конфигурации. Файл конфигурации содержит информацию о главном сервере репликации MySQL, подчиненных серверах репликации MySQL, политике выбора сервера (балансировка нагрузки), стратегии обработки отказов и использовании ленивых соединений.

Для определения конфигурационного файла используется директива конфигурации PHP mysqlnd_ms.ini_file.

Конфигурационный файл используйет стандартный формат php.ini. Он содержит одну или несколько секций. Каждая секция содержит свою порцию настроек. Глобальной секции с настройками по умолчанию нет.

Приложения обращаются к секциям по их именам. Имена секций сравниваются с именем хоста (сервера) при использовании функций соединения с MySQL расширений mysqli, mysql и PDO_MYSQL. В момент соединения плагин mysqlnd сравнивает имя хоста с именами секций конфигурационного файла. Если они совпадают, то используются настройки соответствующей секции.

Пример #36 Пример использования имен секций

[myapp]
master[] = localhost
slave[] = 192.168.2.27
slave[] = 192.168.2.28:3306
[localhost]
master[] = localhost:/tmp/mysql/mysql.sock
slave[] = 192.168.3.24:3305
slave[] = 192.168.3.65:3309
<?php
/* Все соединения будут сбалансированы по нагрузке */
$mysqli = new mysqli("myapp", "username", "password", "database");
$pdo = new PDO('mysql:host=myapp;dbname=database', 'username', 'password');
$mysql = mysql_connect("myapp", "username", "password");

$mysqli = new mysqli("localhost", "username", "password", "database");
?>

Имена секций являются строками. Вполне допустимо использовать имена 192.168.2.1, 127.0.0.1 или localhost. Если, к примеру, приложение соединяется с localhost и в файле конфигурации есть секция [localhost], то семантика операции соединения изменится. Приложение больше не будет использовать БД запущенную только на сервере localhost, так как плагин запустит процесс балансировки нагрузки в соответствии с настройкой секции [localhost]. Это позволит включить балансировку нагрузки для приложения без переписывания его кода.

Директивы master[], slave[] и pick[] используют спископодобный синтаксис. Директивы с таким синтаксисом могут встречаться в конфигурационном файле множество раз в одной секции. Плагин использует опции в том порядке, как они определены в файле конфигурации. Рассмотрим пример ниже. В нем заданы две директивы slave[] в секции [myapp]. И если для операций чтения настроена политика балансировки round-robin, то первый такой запрос будет отправлен серверу mysql_slave_1, потому что он первый в списке. Второй запрос будет направлен серверу mysql_slave_2, так как он второй в списке. И т.д. Таким образом, спископодобные директивы читаются в том порядке, как они определены в файле конфигурации.

Пример #37 Спископодобный синтакцис

[myapp]
master[] = mysql_master_server
slave[] = mysql_slave_1
slave[] = mysql_slave_2

Ниже приведено краткое описание директив конфигурации, которые можно использовать.

master[] строка

URI основного сервера репликации MySQL. URI имеет следующий синтаксис hostname[:port|unix_domain_socket].

Плагин может работать только с одним основным сервером.

Определение основного сервера является обязательным. Если его не указать, то плагин выдаст предупреждение такого вида (mysqlnd_ms) Cannot find master section in config. Furthermore the plugin may set an error code for the connection handle such as HY000/2000 (CR_UNKNOWN_ERROR). Текст ошибки может отличаться в зависимости от ваших языковых настроек.

slave[] строка

URI одного или нескольких подчиненных серверов. URI имеет следующий синтаксис hostname[:port|unix_domain_socket].

Плагин может работать с одним и более подчиненными серверами.

Определение хотя бы одного подчиненного сервера является обязательным. Если его не указать, то плагин выдаст предупреждение такого вида (mysqlnd_ms) Cannot find slaves section in config. Furthermore the plugin may set an error code for the connection handle such as HY000/2000 (CR_UNKNOWN_ERROR). Текст ошибки может отличаться в зависимости от ваших языковых настроек.

pick[] строка

Политики балансировки нагрузки (выбора сервера). Поддерживаемые политики: random, random_once (по умолчанию), roundrobin, user.

Если политики не определены, то будет использоваться random_once. Политика random_once выбирает один подчиненный сервер при первом запросе на чтение и использует его для таких запросов до конца работы скрипта.

Политика random выбирает случайный подчиненный сервер для каждого нового запроса на чтение.

Если настроена политика roundrobin, плагин перебирает подчиненные сервера по очереди, начиная с первого в списке и, когда доходит до конца списка, переходит в его начало.

Установка более одной политики балансировки будет работать только для политики user и функции mysqlnd_ms_set_user_pick_server(). Если определенная пользователем функция обратного вызова не смогла выбрать сервер, то плагин перейдет к использованию второй сконфигурированной политики балансировки.

failover строка

Политика обработки отказов. Допустимые политики: disabled (по умолчанию), master.

Если политика обработки отказов не определена, то никакой автоматической обработки отказов происходить не будет (failover=disabled). Всякий раз, когда плагин не может подключиться к серверу, он будет выдавать предупреждение и устанавливать код ошибки и сообщение для соединения. Соответственно обработка ошибки, к примеру перезапуск последнего запроса на другом сервере, ложится на плечи приложения.

Если используется failover=master, плагин будет неявно откатываться к подчиненному, если он есть. Пожалуйста, изучите документацию для понимания всех потенциальных рисков использования failover=master.

lazy_connections логическое

Контролирует использование ленивых подключений. Ленивые подключения - это такие подключения, которые не устанавливаются пока клиент не пошлет первый запрос. Включены по умолчанию.

Ленивые подключения крайне рекомендованы к использованию, поскольку позволяют сильно сократить количество открытых соединений. Если вы запретите ленивые соединения, то, например, настроив кластер из одного основного сервера и двух подчиненных серверов, вы получите три одновременно открытых соединения при первом же подключении к базе, хотя в вашем скрипте используется только подключение к основному серверу.

Леничные подключения не представляют опасности, если вы часто меняете состояние подключения. Плагин не отправляет все изменения состояния во все соединения из пула соединений. Небольшое количество изменений посылаются только в открытые соединения. Ленивые соединения, открытые позже, не будут затронуты. Только небольшое количество настроек будут "запоминаться" и применяться к новым открытым ленивым соединениям.

master_on_write логическое

Если установлено, то плагин начнет использовать основной сервер только после того, как на нем будет выполнен первый запрос. Приложение также сможет использовать подчиненные сервера используя SQL-хинты.

Эта настройка может помочь победить задержку репликации. Если, например, будет запущен запрос INSERT, то, после него, все последующие запросы плагин будет отправлять на основной сервер, включая запросы типа SELECT. Это может помочь в случае, когда подчиненные сервера не успеют среплицировать результаты запроса INSERT.

trx_stickiness строка

Политики привязки транзакции к серверу. Поддерживаемые политики: disabled (по умолчанию), master.

Эксперементальная функциональность.

Эта настройка требует версии PHP 5.4.0 или выше. Если использовать с более ранними версиями PHP, то плагин выдаст предупреждение вида (mysqlnd_ms) trx_stickiness strategy is not supported before PHP 5.3.99.

Если политика не определена, либо установлена как trx_stickiness=disabled, то плагин может балансировать нагрузку и переключаться между серверами в течение транзакции. Плагин не транзакционно-безопасен. Для предотвращения переключения соединения в ходе транзакции можно использовать SQL-хинты.

Начиная с PHP 5.4.0, библиотека mysqlnd позволяет отслеживать изменение состояния режима autocommit, путем перехвата вызовов функции trx_autocommit(). Если задано set_stickiness=master и autocommit отключен расширением PHP MySQL путем вызова mysqlnd внутренней функции trx_autocommit(), плагин понимает, что начата транзакция, и все последующие запросы будут выполняться на основном сервере, пока не будет включен autocommit. Соответственно можно не использовать SQL-хинты.

Например, для вызова внутренней функции библиотеки mysqlnd trx_autocommit(), можно использовать mysqli_autocommit().

Следует учесть, что даже с установкой trx_stickiness=master, плагин не сможет перехватывать изменение режима autocommit, вызваное SQL-запросами, такими как SET AUTOCOMMIT=0.

Тестирование

Замечание:

Секция применима к mysqlnd_ms 1.1.0 или выше, не не к 1.0.

Набор тестов PECL/mysqlnd_ms содержится в директории tests/ в исходных кодах расширения. Там содержатся стандартные тесты phpt, которые описаны на сайте PHP Quality Assurance Teams.

Запуск тестов требует наличия от одного до четырех серверов MySQL. Некоторые тесты вообще не соединяются с MySQL. Другим нужен один сервер. Некоторым два. В определенных случаях два сервера используются для эмуляции репликации. В других случаях требуются настроенные подчиненный и основной сервер репликации. Тесты попытаются определить, сколько всего и каким образом настроено серверов. Если конфигурация не подходящаяя, то соответствующие тесты будут автоматически пропущены.

Перед запуском тестов отредактируйте tests/config.inc для настройки тестовых серверов MySQL.

Наиболее простая конфигурация.

 putenv("MYSQL_TEST_HOST=localhost");
 putenv("MYSQL_TEST_PORT=3306");
 putenv("MYSQL_TEST_USER=root");
 putenv("MYSQL_TEST_PASSWD=");
 putenv("MYSQL_TEST_DB=test");
 putenv("MYSQL_TEST_ENGINE=MyISAM");
 putenv("MYSQL_TEST_SOCKET=");

 putenv("MYSQL_TEST_SKIP_CONNECT_FAILURE=1");
 putenv("MYSQL_TEST_CONNECT_FLAGS=0");
 putenv("MYSQL_TEST_EXPERIMENTAL=0");

 /* эмуляция кластера репликации */
 putenv("MYSQL_TEST_EMULATED_MASTER_HOST=". getenv("MYSQL_TEST_HOST"));
 putenv("MYSQL_TEST_EMULATED_SLAVE_HOST=". getenv("MYSQL_TEST_HOST"));

 /* реальный кластер репликации */
 putenv("MYSQL_TEST_MASTER_HOST=". getenv("MYSQL_TEST_EMULATED_MASTER_HOST"));
 putenv("MYSQL_TEST_SLAVE_HOST=". getenv("MYSQL_TEST_EMULATED_SLAVE_HOST"));

MYSQL_TEST_HOST, MYSQL_TEST_PORT и MYSQL_TEST_SOCKET определяют имя хоста, TCP/IP порт и сокет Unix для тестового сервера по умолчанию. MYSQL_TEST_USER и MYSQL_TEST_PASSWD содержат имя пользователя и пароль для подключения к MYSQL_TEST_DB. Все настроенные сервера должны иметь одинаковых пользователя и его пароль.

Можно использовать любой синтаксис host, host:port или host:/path/to/socket.

putenv("MYSQL_TEST_SLAVE_HOST=192.168.78.136:3307"));
putenv("MYSQL_TEST_MASTER_HOST=myserver_hostname:/path/to/socket"));

Отладка и диагностика

Для отладки PECL/mysqlnd_ms можно использовать лог отладки mysqlnd. О том, как mysqlnd PECL/mysqlnd_ms добавляет записи в лог библиотеки mysqlnd, читайте тут mysqlnd.debug.

Пример настроек для активации записи в лог отладки:

mysqlnd.debug=d:t:x:O,/tmp/mysqlnd.trace

Замечание:

Эта возможность доступна только совместно с отладочной сборкой PHP. Работает в Microsoft Windows если используется отладочная сборка PHP, собранная в Microsoft Visual C версии 9 и выше.

Лог отладки показывает вызовы функций библиотеки mysqlnd и плагина PECL/mysqlnd_ms одинаково. Вызовы библиотеки mysqlnd обычно идут с префиксами mysqlnd_. Вызовы PECL/mysqlnd начинаются с mysqlnd_ms.

Пример записи в отладочный лог (соединение):

[...]
>mysqlnd_connect
| info : host=myapp user=root db=test port=3306 flags=131072
| >mysqlnd_ms::connect
| | >mysqlnd_ms_config_json_section_exists
| | | info : section=[myapp] len=[5]
| | | >mysqlnd_ms_config_json_sub_section_exists
| | | | info : section=[myapp] len=[5]
| | | | info : ret=1
| | | <mysqlnd_ms_config_json_sub_section_exists
| | | info : ret=1
| | <mysqlnd_ms_config_json_section_exists
[...]

Отладочный лог полезен не только разработчикам плагина, но и обычным пользователям для поиска ошибок. Например если приложение некорректно обрабатывает ошибки или не может самостоятельно их логировать, то разбор этого лога может помочь. Но помните, что использование этого лога для отладки ошибок приложения - это самое крайнее средство. Запись отладочного лога на диск - это медленная операция, которая может негативно сказаться на скорости работы приложения.

Пример лога с ошибкой соединения:

[...]
| | | | | | | info : adding error [Access denied for user 'root'@'localhost' (using password: YES)] to the list
| | | | | | | info : PACKET_FREE(0)
| | | | | | | info : PACKET_FREE(0x7f3ef6323f50)
| | | | | | | info : PACKET_FREE(0x7f3ef6324080)
| | | | | | <mysqlnd_auth_handshake
| | | | | | info : switch_to_auth_protocol=n/a
| | | | | | info : conn->error_info.error_no = 1045
| | | | | <mysqlnd_connect_run_authentication
| | | | | info : PACKET_FREE(0x7f3ef63236d8)
| | | | | >mysqlnd_conn::free_contents
| | | | | | >mysqlnd_net::free_contents
| | | | | | <mysqlnd_net::free_contents
| | | | | | info : Freeing memory of members
| | | | | | info : scheme=unix:///tmp/mysql.sock
| | | | | | >mysqlnd_error_list_pdtor
| | | | | | <mysqlnd_error_list_pdtor
| | | | | <mysqlnd_conn::free_contents
| | | | <mysqlnd_conn::connect
[...]

Лог трассировки также может быть полезен для проверки корректности поведения самого PECL/mysqlnd_ms. К примеру для проверки, какой сервер был выбран для выполнения запроса, и почему.

Пример лога трассировки (выбор сервера):

[...]
>mysqlnd_ms::query
| info : query=DROP TABLE IF EXISTS test
| >_mysqlnd_plugin_get_plugin_connection_data
| | info : plugin_id=5
| <_mysqlnd_plugin_get_plugin_connection_data
| >mysqlnd_ms_pick_server_ex
| | info : conn_data=0x7fb6a7d3e5a0 *conn_data=0x7fb6a7d410d0
| | >mysqlnd_ms_select_servers_all
| | <mysqlnd_ms_select_servers_all
| | >mysqlnd_ms_choose_connection_rr
| | | >mysqlnd_ms_query_is_select
[...]
| | | <mysqlnd_ms_query_is_select
[...]
| | | info : Init the master context
| | | info : list(0x7fb6a7d3f598) has 1
| | | info : Using master connection
| | | >mysqlnd_ms_advanced_connect
| | | | >mysqlnd_conn::connect
| | | | | info : host=localhost user=root db=test port=3306 flags=131072 persistent=0 state=0

В этом примере был выполнен запрос DROP TABLE IF EXISTS test. Обратите внимание, что SQL-запрос был записан в лог. Возможно вам придется озаботится ограничением доступа к этому логу для сокрытия векретной информации.

Для запроса использовалась политика балансировки round robin, как видно из имени функции >mysqlnd_ms_choose_connection_rr. Он был послан на основной сервер host=localhost user=root db=test port=3306 flags=131072 persistent=0 state=0.

Мониторинг

Работу плагина можно мониторить с помощью лога трассировки mysqlnd, статистики mysqlnd, статистики плагина mysqlnd_ms plugin и прочих внешних инструментов. Использование лога трассировки рекомендуется использовать только в целях отладки. Для стандартного мониторинга рекомендуется использовать статистику плагина.

Запись лога трассировки - это медленная операция. При использовании внешних инструментов не забудьте прочитать документацию по ним для понимания возможного воздействия на производительность и списка собираемых метрик. Довольно часто внешние инструменты позволяют увидеть стек вызовов. Обычно стек вызовов и лог трассировки более трудны для восприятия, чем статистика предоставляемая плагином.

Статистика позволяет увидеть, как часто используются определенные типы серверов кластера (подчиненный или основной), почему используется тот или иной сервер, использовались ли ленивые подключения и производились ли инъекции идентификатора глобальной транзакции. Предоставляемая информация позволяет пользователю проанализировать действия плагина по выбору серверов и запланировать использование кластерных ресурсов. Статистику можно получить с помощью функции mysqlnd_ms_get_stats(). Список доступных метрик смотрите на странице посвященной описанию этой функции.

Статистика собирается для каждого процесса PHP. В зависимости от модели развертывания, один процесс PHP может обслуживать как один, так и несколько пользовательских запросов. Если используется модель CGI, то один процесс PHP обслуживает ровно один пользовательский запрос. Для FastCGI или для модуля веб-сервера, один процесс PHP, обычно, обслуживает несколько запросов. Аналогично и для веб-серверов использующих потоки. Обратите внимание, что работающие параллельно потоки могут параллельно обновлять статистику. Таким образом, при использовании многопоточной модели развертывания PHP, статистику могут одновременно обновлять несколько пользовательских запросов, и это следует помнить при ее анализе.

Пример #38 Проверка активности плагина в однопоточной модели развертывания

mysqlnd_ms.enable=1
mysqlnd_ms.collect_statistics=1
<?php
/* Балансировка нагрузки происходит согластно настройкам для секции "myapp" (не показаны) */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno())
  /* Тут бы, конечно, ошибку обработать... Ну да ладно. */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

$stats_before = mysqlnd_ms_get_stats();
if ($res = $mysqli->query("SELECT 'Read request' FROM DUAL")) {
  var_dump($res->fetch_all());
}
$stats_after = mysqlnd_ms_get_stats();
if ($stats_after['use_slave'] <= $stats_before['use_slave']) {
  echo "Согласно статистике, запрос на чтение выполнялся не на подчиненном сервере!";
}
?>

Статистика агрегируется для всех действий плагина и всех подключений, обрабатываемых плагином. Определить, сколько конкретно было обарботано подключений невозможно.

С помощью функции register_shutdown_function() или настройки PHP auto_append_file можно легко настроить запись статистической информации в, например, файл, по завершению работы скрипта. Или не писать в файл, а посылать во внешнюю систему мониторинга.

Пример #39 Запись статистики в процессе остановки

mysqlnd_ms.enable=1
mysqlnd_ms.collect_statistics=1
error_log=/tmp/php_errors.log
<?php
function check_stats() {
  $msg = str_repeat("-", 80) . "\n";
  $msg .= var_export(mysqlnd_ms_get_stats(), true) . "\n";
  $msg .= str_repeat("-", 80) . "\n";
  error_log($msg);
}
register_shutdown_function("check_stats");
?>


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SQL hint related

Пример #1 Example demonstrating the usage of mysqlnd_ms constants

The mysqlnd replication and load balancing plugin (mysqlnd_ms) performs read/write splitting. This directs write queries to a MySQL master server, and read-only queries to the MySQL slave servers. The plugin has a built-in read/write split logic. All queries which start with SELECT are considered read-only queries, which are then sent to a MySQL slave server that is listed in the plugin configuration file. All other queries are directed to the MySQL master server that is also specified in the plugin configuration file.

User supplied SQL hints can be used to overrule automatic read/write splitting, to gain full control on the process. SQL hints are standards compliant SQL comments. The plugin will scan the beginning of a query string for an SQL comment for certain commands, which then control query redirection. Other systems involved in the query processing are unaffected by the SQL hints because other systems will ignore the SQL comments.

The plugin supports three SQL hints to direct queries to either the MySQL slave servers, the MySQL master server, or the last used MySQL server. SQL hints must be placed at the beginning of a query to be recognized by the plugin.

For better portability, it is recommended to use the string constants MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH and MYSQLND_MS_LAST_USED_SWITCH instead of their literal values.

<?php
/* Use constants for maximum portability */
$master_query = "/*" . MYSQLND_MS_MASTER_SWITCH . "*/SELECT id FROM test";

/* Valid but less portable: using literal instead of constant */
$slave_query = "/*ms=slave*/SHOW TABLES";

printf("master_query = '%s'\n", $master_query);
printf("slave_query = '%s'\n", $slave_query);
?>

Результат выполнения данных примеров:

master_query = /*ms=master*/SELECT id FROM test
slave_query = /*ms=slave*/SHOW TABLES

MYSQLND_MS_MASTER_SWITCH (string)
SQL hint used to send a query to the MySQL replication master server.
MYSQLND_MS_SLAVE_SWITCH (string)
SQL hint used to send a query to one of the MySQL replication slave servers.
MYSQLND_MS_LAST_USED_SWITCH (string)
SQL hint used to send a query to the last used MySQL server. The last used MySQL server can either be a master or a slave server in a MySQL replication setup.

mysqlnd_ms_query_is_select() related

MYSQLND_MS_QUERY_USE_MASTER (integer)
If mysqlnd_ms_is_select() returns MYSQLND_MS_QUERY_USE_MASTER for a given query, the built-in read/write split mechanism recommends sending the query to a MySQL replication master server.
MYSQLND_MS_QUERY_USE_SLAVE (integer)
If mysqlnd_ms_is_select() returns MYSQLND_MS_QUERY_USE_SLAVE for a given query, the built-in read/write split mechanism recommends sending the query to a MySQL replication slave server.
MYSQLND_MS_QUERY_USE_LAST_USED (integer)
If mysqlnd_ms_is_select() returns MYSQLND_MS_QUERY_USE_LAST_USED for a given query, the built-in read/write split mechanism recommends sending the query to the last used server.

mysqlnd_ms_set_qos(), quality of service filter and service level related

MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL (integer)
Use to request the service level eventual consistency from the mysqlnd_ms_set_qos(). Eventual consistency is the default quality of service when reading from an asynchronous MySQL replication slave. Data returned in this service level may or may not be stale, depending on whether the selected slaves happen to have replicated the latest changes from the MySQL replication master or not.
MYSQLND_MS_QOS_CONSISTENCY_SESSION (integer)
Use to request the service level session consistency from the mysqlnd_ms_set_qos(). Session consistency is defined as read your writes. The client is guaranteed to see his latest changes.
MYSQLND_MS_QOS_CONSISTENCY_STRONG (integer)
Use to request the service level strong consistency from the mysqlnd_ms_set_qos(). Strong consistency is used to ensure all clients see each others changes.
MYSQLND_MS_QOS_OPTION_GTID (integer)
Used as a service level option with mysqlnd_ms_set_qos() to parameterize session consistency.
MYSQLND_MS_QOS_OPTION_AGE (integer)
Used as a service level option with mysqlnd_ms_set_qos() to parameterize eventual consistency.

Other

The plugins version number can be obtained using MYSQLND_MS_VERSION or MYSQLND_MS_VERSION_ID. MYSQLND_MS_VERSION is the string representation of the numerical version number MYSQLND_MS_VERSION_ID, which is an integer such as 10000. Developers can calculate the version number as follows.

Version (part) | Example
Major*10000 | 1*10000 = 10000
Minor*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_MS_VERSION_ID | 10000

MYSQLND_MS_VERSION (string)
Plugin version string, for example, 1.0.0-prototype.
MYSQLND_MS_VERSION_ID (integer)
Plugin version number, for example, 10000.


Функции Mysqlnd_ms

Содержание

  • mysqlnd_ms_dump_servers — Returns a list of currently configured servers
  • mysqlnd_ms_fabric_select_global — Switch to global sharding server for a given table
  • mysqlnd_ms_fabric_select_shard — Switch to shard
  • mysqlnd_ms_get_last_gtid — Returns the latest global transaction ID
  • mysqlnd_ms_get_last_used_connection — Returns an array which describes the last used connection
  • mysqlnd_ms_get_stats — Returns query distribution and connection statistics
  • mysqlnd_ms_match_wild — Finds whether a table name matches a wildcard pattern or not
  • mysqlnd_ms_query_is_select — Find whether to send the query to the master, the slave or the last used MySQL server
  • mysqlnd_ms_set_qos — Sets the quality of service needed from the cluster
  • mysqlnd_ms_set_user_pick_server — Sets a callback for user-defined read/write splitting
  • mysqlnd_ms_xa_begin — Starts a distributed/XA transaction among MySQL servers
  • mysqlnd_ms_xa_commit — Commits a distributed/XA transaction among MySQL servers
  • mysqlnd_ms_xa_gc — Garbage collects unfinished XA transactions after severe errors
  • mysqlnd_ms_xa_rollback — Rolls back a distributed/XA transaction among MySQL servers


Returns a list of currently configured servers

  • « Функции Mysqlnd_ms
  • mysqlnd_ms_fabric_select_global »
  • PHP Manual
  • Функции Mysqlnd_ms
  • Returns a list of currently configured servers

mysqlnd_ms_dump_servers

(Информация о версии неизвестна, возможно, только в Git)

mysqlnd_ms_dump_servers — Returns a list of currently configured servers

Описание

mysqlnd_ms_dump_servers ( mixed $connection ) : array

Returns a list of currently configured servers.

Список параметров

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

Возвращаемые значения

FALSE on error. Otherwise, returns an array with two entries masters and slaves each of which contains an array listing all corresponding servers.

The function can be used to check and debug the list of servers currently used by the plugin. It is mostly useful when the list of servers changes at runtime, for example, when using MySQL Fabric.

masters and slaves server entries

Key | Description | Version
name_from_config | Server entry name from config, if appliciable. NULL if no configuration name is available. | Since 1.6.0.
hostname | Host name of the server. | Since 1.6.0.
user | Database user used to authenticate against the server. | Since 1.6.0.
port | TCP/IP port of the server. | Since 1.6.0.
socket | Unix domain socket of the server. | Since 1.6.0.

Примечания

Замечание:

mysqlnd_ms_dump_servers() requires PECL mysqlnd_ms >> 1.6.0.

Примеры

Пример #1 mysqlnd_ms_dump_servers() example

{
    "myapp": {
        "master": {
            "master1": {
                "host":"master1_host",
                "port":"master1_port",
                "socket":"master1_socket",
                "db":"master1_db",
                "user":"master1_user",
                "password":"master1_pw"
            }
        },
        "slave": {
             "slave_0": {
                 "host":"slave0_host",
                 "port":"slave0_port",
                 "socket":"slave0_socket",
                 "db":"slave0_db",
                 "user":"slave0_user",
                 "password":"slave0_pw"
             },
             "slave_1": {
                 "host":"slave1_host"
             }
        }
    }
}
<?php
$link = mysqli_connect("myapp", "global_user", "global_pass", "global_db", 1234, "global_socket");
var_dump(mysqlnd_ms_dump_servers($link);
?>

Результат выполнения данного примера:

array(2) {
  ["masters"]=>
  array(1) {
    [0]=>
    array(5) {
      ["name_from_config"]=>
      string(7) "master1"
      ["hostname"]=>
      string(12) "master1_host"
      ["user"]=>
      string(12) "master1_user"
      ["port"]=>
      int(3306)
      ["socket"]=>
      string(14) "master1_socket"
    }
  }
  ["slaves"]=>
  array(2) {
    [0]=>
    array(5) {
      ["name_from_config"]=>
      string(7) "slave_0"
      ["hostname"]=>
      string(11) "slave0_host"
      ["user"]=>
      string(11) "slave0_user"
      ["port"]=>
      int(3306)
      ["socket"]=>
      string(13) "slave0_socket"
    }
    [1]=>
    array(5) {
      ["name_from_config"]=>
      string(7) "slave_1"
      ["hostname"]=>
      string(11) "slave1_host"
      ["user"]=>
      string(12) "gloabal_user"
      ["port"]=>
      int(1234)
      ["socket"]=>
      string(13) "global_socket"
    }
  }
}


Switch to global sharding server for a given table

  • « mysqlnd_ms_dump_servers
  • mysqlnd_ms_fabric_select_shard »
  • PHP Manual
  • Функции Mysqlnd_ms
  • Switch to global sharding server for a given table

mysqlnd_ms_fabric_select_global

(Информация о версии неизвестна, возможно, только в Git)

mysqlnd_ms_fabric_select_global — Switch to global sharding server for a given table

Описание

mysqlnd_ms_fabric_select_global ( mixed $connection , mixed $table_name ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

MySQL Fabric related.

Switch the connection to the nodes handling global sharding queries for the given table name.

Список параметров

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

table_name

The table name to ask Fabric about.

Возвращаемые значения

FALSE on error. Otherwise, TRUE

Примечания

Замечание:

mysqlnd_ms_fabric_select_global() requires PECL mysqlnd_ms >> 1.6.0.


Switch to shard

  • « mysqlnd_ms_fabric_select_global
  • mysqlnd_ms_get_last_gtid »
  • PHP Manual
  • Функции Mysqlnd_ms
  • Switch to shard

mysqlnd_ms_fabric_select_shard

(Информация о версии неизвестна, возможно, только в Git)

mysqlnd_ms_fabric_select_shard — Switch to shard

Описание

mysqlnd_ms_fabric_select_shard ( mixed $connection , mixed $table_name , mixed $shard_key ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

MySQL Fabric related.

Switch the connection to the shards responsible for the given table name and shard key.

Список параметров

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

table_name

The table name to ask Fabric about.

shard_key

The shard key to ask Fabric about.

Возвращаемые значения

FALSE on error. Otherwise, TRUE

Примечания

Замечание:

mysqlnd_ms_fabric_select_shard() requires PECL mysqlnd_ms >> 1.6.0.


Returns the latest global transaction ID

  • « mysqlnd_ms_fabric_select_shard
  • mysqlnd_ms_get_last_used_connection »
  • PHP Manual
  • Функции Mysqlnd_ms
  • Returns the latest global transaction ID

mysqlnd_ms_get_last_gtid

(PECL mysqlnd_ms >= 1.2.0)

mysqlnd_ms_get_last_gtid — Returns the latest global transaction ID

Описание

mysqlnd_ms_get_last_gtid ( mixed $connection ) : string

Returns a global transaction identifier which belongs to a write operation no older than the last write performed by the client. It is not guaranteed that the global transaction identifier is identical to that one created for the last write transaction performed by the client.

Список параметров

connection

A PECL/mysqlnd_ms connection handle to a MySQL server of the type PDO_MYSQL, mysqli> or ext/mysql. The connection handle is obtained when opening a connection with a host name that matches a mysqlnd_ms configuration file entry using any of the above three MySQL driver extensions.

Возвращаемые значения

Returns a global transaction ID (GTID) on success. Otherwise, returns FALSE.

The function mysqlnd_ms_get_last_gtid() returns the GTID obtained when executing the SQL statement from the fetch_last_gtid entry of the global_transaction_id_injection section from the plugins configuration file.

The function may be called after the GTID has been incremented.

Примечания

Замечание:

mysqlnd_ms_get_last_gtid() requires PHP >= 5.4.0 and PECL mysqlnd_ms >= 1.2.0. Internally, it is using a mysqlnd library C functionality not available with PHP 5.3.

Please note, all MySQL 5.6 production versions do not provide clients with enough information to use GTIDs for enforcing session consistency. In the worst case, the plugin will choose the master only.

Примеры

Пример #1 mysqlnd_ms_get_last_gtid() example

<?php
/* Open mysqlnd_ms connection using mysqli, PDO_MySQL or mysql extension */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli)
  /* Of course, your error handling is nicer... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("DROP TABLE IF EXISTS test"))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

printf("GTID after transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("CREATE TABLE test(id INT)"))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

printf("GTID after transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));
?>

Смотрите также

  • Global Transaction IDs


Returns an array which describes the last used connection

  • « mysqlnd_ms_get_last_gtid
  • mysqlnd_ms_get_stats »
  • PHP Manual
  • Функции Mysqlnd_ms
  • Returns an array which describes the last used connection

mysqlnd_ms_get_last_used_connection

(PECL mysqlnd_ms >= 1.1.0)

mysqlnd_ms_get_last_used_connection — Returns an array which describes the last used connection

Описание

mysqlnd_ms_get_last_used_connection ( mixed $connection ) : array

Returns an array which describes the last used connection from the plugins connection pool currently pointed to by the user connection handle. If using the plugin, a user connection handle represents a pool of database connections. It is not possible to tell from the user connection handles properties to which database server from the pool the user connection handle points.

The function can be used to debug or monitor PECL mysqlnd_ms.

Список параметров

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

Возвращаемые значения

FALSE on error. Otherwise, an array which describes the connection used to execute the last statement on.

Array which describes the connection.

Property | Description | Version
scheme | Connection scheme. Either tcp://host:port or unix://host:socket. If you want to distinguish connections from each other use a combination of scheme and thread_id as a unique key. Neither scheme nor thread_id alone are sufficient to distinguish two connections from each other. Two servers may assign the same thread_id to two different connections. Thus, connections in the pool may have the same thread_id. Also, do not rely on uniqueness of scheme in a pool. Your QA engineers may use the same MySQL server instance for two distinct logical roles and add it multiple times to the pool. This hack is used, for example, in the test suite. | Since 1.1.0.
host | Database server host used with the connection. The host is only set with TCP/IP connections. It is empty with Unix domain or Windows named pipe connections, | Since 1.1.0.
host_info | A character string representing the server hostname and the connection type. | Since 1.1.2.
port | Database server port used with the connection. | Since 1.1.0.
socket_or_pipe | Unix domain socket or Windows named pipe used with the connection. The value is empty for TCP/IP connections. | Since 1.1.2.
thread_id | Connection thread id. | Since 1.1.0.
last_message | Info message obtained from the MySQL C API function mysql_info(). Please, see mysqli_info() for a description. | Since 1.1.0.
errno | Error code. | Since 1.1.0.
error | Error message. | Since 1.1.0.
sqlstate | Error SQLstate code. | Since 1.1.0.

Примечания

Замечание:

mysqlnd_ms_get_last_used_connection() requires PHP >= 5.4.0 and PECL mysqlnd_ms >> 1.1.0. Internally, it is using a mysqlnd library C call not available with PHP 5.3.

Примеры

The example assumes that myapp refers to a plugin configuration file section and represents a connection pool.

Пример #1 mysqlnd_ms_get_last_used_connection() example

<?php
$link = new mysqli("myapp", "user", "password", "database");
$res = $link->query("SELECT 1 FROM DUAL");
var_dump(mysqlnd_ms_get_last_used_connection($link));
?>

Результат выполнения данного примера:

array(10) {
  ["scheme"]=>
  string(22) "unix:///tmp/mysql.sock"
  ["host_info"]=>
  string(25) "Localhost via UNIX socket"
  ["host"]=>
  string(0) ""
  ["port"]=>
  int(3306)
  ["socket_or_pipe"]=>
  string(15) "/tmp/mysql.sock"
  ["thread_id"]=>
  int(46253)
  ["last_message"]=>
  string(0) ""
  ["errno"]=>
  int(0)
  ["error"]=>
  string(0) ""
  ["sqlstate"]=>
  string(5) "00000"
}


Returns query distribution and connection statistics

  • « mysqlnd_ms_get_last_used_connection
  • mysqlnd_ms_match_wild »
  • PHP Manual
  • Функции Mysqlnd_ms
  • Returns query distribution and connection statistics

mysqlnd_ms_get_stats

(PECL mysqlnd_ms >= 1.0.0)

mysqlnd_ms_get_stats — Returns query distribution and connection statistics

Описание

mysqlnd_ms_get_stats ( void ) : array

Returns an array of statistics collected by the replication and load balancing plugin.

The PHP configuration setting mysqlnd_ms.collect_statistics controls the collection of statistics. The collection of statistics is disabled by default for performance reasons.

The scope of the statistics is the PHP process. Depending on your deployment model a PHP process may handle one or multiple requests.

Statistics are aggregated for all connections and all storage handler. It is not possible to tell how much queries originating from mysqli, PDO_MySQL or mysql API calls have contributed to the aggregated data values.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns NULL if the PHP configuration directive mysqlnd_ms.enable has disabled the plugin. Otherwise, returns array of statistics.

Array of statistics

Statistic | Description | Version
use_slave

The semantics of this statistic has changed between 1.0.1 - 1.1.0.

The meaning for version 1.0.1 is as follows. Number of statements considered as read-only by the built-in query analyzer. Neither statements which begin with a SQL hint to force use of slave nor statements directed to a slave by an user-defined callback are included. The total number of statements sent to the slaves is use_slave + use_slave_sql_hint + use_slave_callback.

PECL/mysqlnd_ms 1.1.0 introduces a new concept of chained filters. The statistics is now set by the internal load balancing filter. With version 1.1.0 the load balancing filter is always the last in the filter chain, if used. In future versions a load balancing filter may be followed by other filters causing another change in the meaning of the statistic. If, in the future, a load balancing filter is followed by another filter it is no longer guaranteed that the statement, which increments use_slave, will be executed on the slaves.

The meaning for version 1.1.0 is as follows. Number of statements sent to the slaves. Statements directed to a slave by the user filter (an user-defined callback) are not included. The latter are counted by use_slave_callback.

Since 1.0.0.
use_master

The semantics of this statistic has changed between 1.0.1 - 1.1.0.

The meaning for version 1.0.1 is as follows. Number of statements not considered as read-only by the built-in query analyzer. Neither statements which begin with a SQL hint to force use of master nor statements directed to a master by an user-defined callback are included. The total number of statements sent to the master is use_master + use_master_sql_hint + use_master_callback.

PECL/mysqlnd_ms 1.1.0 introduces a new concept of chained filters. The statictics is now set by the internal load balancing filter. With version 1.1.0 the load balancing filter is always the last in the filter chain, if used. In future versions a load balancing filter may be followed by other filters causing another change in the meaning of the statistic. If, in the future, a load balancing filter is followed by another filter it is no longer guaranteed that the statement, which increments use_master, will be executed on the slaves.

The meaning for version 1.1.0 is as follows. Number of statements sent to the masters. Statements directed to a master by the user filter (an user-defined callback) are not included. The latter are counted by use_master_callback.

Since 1.0.0.
use_slave_guess | Number of statements the built-in query analyzer recommends sending to a slave because they contain no SQL hint to force use of a certain server. The recommendation may be overruled in the following. It is not guaranteed whether the statement will be executed on a slave or not. This is how often the internal is_select function has guessed that a slave shall be used. Please, see also the user space function mysqlnd_ms_query_is_select(). | Since 1.1.0.
use_master_guess | Number of statements the built-in query analyzer recommends sending to a master because they contain no SQL hint to force use of a certain server. The recommendation may be overruled in the following. It is not guaranteed whether the statement will be executed on a slave or not. This is how often the internal is_select function has guessed that a master shall be used. Please, see also the user space function mysqlnd_ms_query_is_select(). | Since 1.1.0.
use_slave_sql_hint | Number of statements sent to a slave because statement begins with the SQL hint to force use of slave. | Since 1.0.0.
use_master_sql_hint | Number of statements sent to a master because statement begins with the SQL hint to force use of master. | Since 1.0.0.
use_last_used_sql_hint | Number of statements sent to server which has run the previous statement, because statement begins with the SQL hint to force use of previously used server. | Since 1.0.0.
use_slave_callback | Number of statements sent to a slave because an user-defined callback has chosen a slave server for statement execution. | Since 1.0.0.
use_master_callback | Number of statements sent to a master because an user-defined callback has chosen a master server for statement execution. | Since 1.0.0.
non_lazy_connections_slave_success | Number of successfully opened slave connections from configurations not using lazy connections. The total number of successfully opened slave connections is non_lazy_connections_slave_success + lazy_connections_slave_success | Since 1.0.0.
non_lazy_connections_slave_failure | Number of failed slave connection attempts from configurations not using lazy connections. The total number of failed slave connection attempts is non_lazy_connections_slave_failure + lazy_connections_slave_failure | Since 1.0.0.
non_lazy_connections_master_success | Number of successfully opened master connections from configurations not using lazy connections. The total number of successfully opened master connections is non_lazy_connections_master_success + lazy_connections_master_success | Since 1.0.0.
non_lazy_connections_master_failure | Number of failed master connection attempts from configurations not using lazy connections. The total number of failed master connection attempts is non_lazy_connections_master_failure + lazy_connections_master_failure | Since 1.0.0.
lazy_connections_slave_success | Number of successfully opened slave connections from configurations using lazy connections. | Since 1.0.0.
lazy_connections_slave_failure | Number of failed slave connection attempts from configurations using lazy connections. | Since 1.0.0.
lazy_connections_master_success | Number of successfully opened master connections from configurations using lazy connections. | Since 1.0.0.
lazy_connections_master_failure | Number of failed master connection attempts from configurations using lazy connections. | Since 1.0.0.
trx_autocommit_on | Number of autocommit mode activations via API calls. This figure may be used to monitor activity related to the plugin configuration setting trx_stickiness. If, for example, you want to know if a certain API call invokes the mysqlnd library function trx_autocommit(), which is a requirement for trx_stickiness, you may call the user API function in question and check if the statistic has changed. The statistic is modified only by the plugins internal subclassed trx_autocommit() method. | Since 1.0.0.
trx_autocommit_off | Number of autocommit mode deactivations via API calls. | Since 1.0.0.
trx_master_forced | Number of statements redirected to the master while trx_stickiness=master and autocommit mode is disabled. | Since 1.0.0.
gtid_autocommit_injections_success | Number of successful SQL injections in autocommit mode as part of the plugins client-side global transaction id emulation. | Since 1.2.0.
gtid_autocommit_injections_failure | Number of failed SQL injections in autocommit mode as part of the plugins client-side global transaction id emulation. | Since 1.2.0.
gtid_commit_injections_success | Number of successful SQL injections in commit mode as part of the plugins client-side global transaction id emulation. | Since 1.2.0.
gtid_commit_injections_failure | Number of failed SQL injections in commit mode as part of the plugins client-side global transaction id emulation. | Since 1.2.0.
gtid_implicit_commit_injections_success | Number of successful SQL injections when implicit commit is detected as part of the plugins client-side global transaction id emulation. Implicit commit happens, for example, when autocommit has been turned off, a query is executed and autocommit is enabled again. In that case, the statement will be committed by the server and SQL to maintain is injected before the autocommit is re-enabled. Another sequence causing an implicit commit is begin(), query(), begin(). The second call to begin() will implicitly commit the transaction started by the first call to begin(). begin() refers to internal library calls not actual PHP user API calls. | Since 1.2.0.
gtid_implicit_commit_injections_failure | Number of failed SQL injections when implicit commit is detected as part of the plugins client-side global transaction id emulation. Implicit commit happens, for example, when autocommit has been turned off, a query is executed and autocommit is enabled again. In that case, the statement will be committed by the server and SQL to maintain is injected before the autocommit is re-enabled. | Since 1.2.0.
transient_error_retries | How often an operation has been retried when a transient error was detected. See also, transient_error plugin configuration file setting. | Since 1.6.0.
fabric_sharding_lookup_servers_success | Number of successful sharding.lookup_servers remote procedure calls to MySQL Fabric. A call is considered successful if the plugin could reach MySQL Fabric and got any reply. The reply itself may or may not be understood by the plugin. Success refers to the network transport only. If the reply was not understood or indicates a valid error condition, fabric_sharding_lookup_servers_xml_failure gets incremented. | Since 1.6.0.
fabric_sharding_lookup_servers_failure | Number of failed sharding.lookup_servers remote procedure calls to MySQL Fabric. A remote procedure call is considered failed if there was a network error in connecting to, writing to or reading from MySQL Fabric. | Since 1.6.0.
fabric_sharding_lookup_servers_time_total | Time spent connecting to,writing to and reading from MySQL Fabrich during the sharding.lookup_servers remote procedure call. The value is aggregated for all calls. Time is measured in microseconds. | Since 1.6.0.
fabric_sharding_lookup_servers_bytes_total | Total number of bytes received from MySQL Fabric in reply to sharding.lookup_servers calls. | Since 1.6.0.
fabric_sharding_lookup_servers_xml_failure | How often a reply from MySQL Fabric to sharding.lookup_servers calls was not understood. Please note, the current experimental implementation does not distinguish between valid errors returned and malformed replies. | Since 1.6.0.
xa_begin | How many XA/distributed transactions have been started using mysqlnd_ms_xa_begin(). | Since 1.6.0.
xa_commit_success | How many XA/distributed transactions have been successfully committed using mysqlnd_ms_xa_commit(). | Since 1.6.0.
xa_commit_failure | How many XA/distributed transactions failed to commit during mysqlnd_ms_xa_commit(). | Since 1.6.0.
xa_rollback_success | How many XA/distributed transactions have been successfully rolled back using mysqlnd_ms_xa_rollback(). The figure does not include implict rollbacks performed as a result of mysqlnd_ms_xa_commit() failure. | Since 1.6.0.
xa_rollback_failure | How many XA/distributed transactions could not be rolled back. This includes failures of mysqlnd_ms_xa_rollback() but also failured during rollback when closing a connection, if rollback_on_close is set. Please, see also xa_rollback_on_close below. | Since 1.6.0.
xa_participants | Total number of participants in any XA transaction started with mysqlnd_ms_xa_begin(). | Since 1.6.0.
xa_rollback_on_close | How many XA transactions have been rolled back implicitly when a connection was close and rollback_on_close is set. Depending on your coding policies, this may hint a flaw in your code as you may prefer to explicitly clean up resources. | Since 1.6.0.
pool_masters_total | Number of master servers (connections) in the internal connection pool. | Since 1.6.0.
pool_slaves_total | Number of slave servers (connections) in the internal connection pool. | Since 1.6.0.
pool_masters_active | Number of master servers (connections) from the internal connection pool which are currently used for picking a connection. | Since 1.6.0.
pool_slaves_active | Number of slave servers (connections) from the internal connection pool which are currently used for picking a connection. | Since 1.6.0.
pool_updates | How often the active connection list has been replaced and a new set of master and slave servers had been installed. | Since 1.6.0.
pool_master_reactivated | How often a master connection has been reused after being flushed from the active list. | Since 1.6.0.
pool_slave_reactivated | How often a slave connection has been reused after being flushed from the active list. | Since 1.6.0.

Примеры

Пример #1 mysqlnd_ms_get_stats() example

<?php
printf("mysqlnd_ms.enable = %d\n", ini_get("mysqlnd_ms.enable"));
printf("mysqlnd_ms.collect_statistics = %d\n", ini_get("mysqlnd_ms.collect_statistics"));
var_dump(mysqlnd_ms_get_stats());
?>

Результат выполнения данного примера:

mysqlnd_ms.enable = 1
mysqlnd_ms.collect_statistics = 1
array(26) {
  ["use_slave"]=>
  string(1) "0"
  ["use_master"]=>
  string(1) "0"
  ["use_slave_guess"]=>
  string(1) "0"
  ["use_master_guess"]=>
  string(1) "0"
  ["use_slave_sql_hint"]=>
  string(1) "0"
  ["use_master_sql_hint"]=>
  string(1) "0"
  ["use_last_used_sql_hint"]=>
  string(1) "0"
  ["use_slave_callback"]=>
  string(1) "0"
  ["use_master_callback"]=>
  string(1) "0"
  ["non_lazy_connections_slave_success"]=>
  string(1) "0"
  ["non_lazy_connections_slave_failure"]=>
  string(1) "0"
  ["non_lazy_connections_master_success"]=>
  string(1) "0"
  ["non_lazy_connections_master_failure"]=>
  string(1) "0"
  ["lazy_connections_slave_success"]=>
  string(1) "0"
  ["lazy_connections_slave_failure"]=>
  string(1) "0"
  ["lazy_connections_master_success"]=>
  string(1) "0"
  ["lazy_connections_master_failure"]=>
  string(1) "0"
  ["trx_autocommit_on"]=>
  string(1) "0"
  ["trx_autocommit_off"]=>
  string(1) "0"
  ["trx_master_forced"]=>
  string(1) "0"
  ["gtid_autocommit_injections_success"]=>
  string(1) "0"
  ["gtid_autocommit_injections_failure"]=>
  string(1) "0"
  ["gtid_commit_injections_success"]=>
  string(1) "0"
  ["gtid_commit_injections_failure"]=>
  string(1) "0"
  ["gtid_implicit_commit_injections_success"]=>
  string(1) "0"
  ["gtid_implicit_commit_injections_failure"]=>
  string(1) "0"
  ["transient_error_retries"]=>
  string(1) "0"
}

Смотрите также

  • Runtime configuration
  • mysqlnd_ms.collect_statistics
  • mysqlnd_ms.enable
  • Monitoring


Finds whether a table name matches a wildcard pattern or not

  • « mysqlnd_ms_get_stats
  • mysqlnd_ms_query_is_select »
  • PHP Manual
  • Функции Mysqlnd_ms
  • Finds whether a table name matches a wildcard pattern or not

mysqlnd_ms_match_wild

(PECL mysqlnd_ms >= 1.1.0)

mysqlnd_ms_match_wild — Finds whether a table name matches a wildcard pattern or not

Описание

mysqlnd_ms_match_wild ( string $table_name , string $wildcard ) : bool

Finds whether a table name matches a wildcard pattern or not.

This function is not of much practical relevance with PECL mysqlnd_ms 1.1.0 because the plugin does not support MySQL replication table filtering yet.

Список параметров

table_name

The table name to check if it is matched by the wildcard.

wildcard

The wildcard pattern to check against the table name. The wildcard pattern supports the same placeholders as MySQL replication filters do.

MySQL replication filters can be configured by using the MySQL Server configuration options --replicate-wild-do-table and --replicate-wild-do-db. Please, consult the MySQL Reference Manual to learn more about this MySQL Server feature.

The supported placeholders are:

  • % - zero or more literals
  • _ - one literal

Placeholders can be escaped using \.

Возвращаемые значения

Returns TRUE table_name is matched by wildcard. Otherwise, returns FALSE

Примеры

Пример #1 mysqlnd_ms_match_wild() example

<?php
var_dump(mysqlnd_ms_match_wild("schema_name.table_name", "schema%"));
var_dump(mysqlnd_ms_match_wild("abc", "_"));
var_dump(mysqlnd_ms_match_wild("table1", "table_"));
var_dump(mysqlnd_ms_match_wild("asia_customers", "%customers"));
var_dump(mysqlnd_ms_match_wild("funny%table","funny\%table"));
var_dump(mysqlnd_ms_match_wild("funnytable", "funny%table"));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)


Find whether to send the query to the master, the slave or the last used MySQL server

  • « mysqlnd_ms_match_wild
  • mysqlnd_ms_set_qos »
  • PHP Manual
  • Функции Mysqlnd_ms
  • Find whether to send the query to the master, the slave or the last used MySQL server

mysqlnd_ms_query_is_select

(PECL mysqlnd_ms >= 1.0.0)

mysqlnd_ms_query_is_select — Find whether to send the query to the master, the slave or the last used MySQL server

Описание

mysqlnd_ms_query_is_select ( string $query ) : int

Finds whether to send the query to the master, the slave or the last used MySQL server.

The plugins built-in read/write split mechanism will be used to analyze the query string to make a recommendation where to send the query. The built-in read/write split mechanism is very basic and simple. The plugin will recommend sending all queries to the MySQL replication master server but those which begin with SELECT, or begin with a SQL hint which enforces sending the query to a slave server. Due to the basic but fast algorithm the plugin may propose to run some read-only statements such as SHOW TABLES on the replication master.

Список параметров

query

Query string to test.

Возвращаемые значения

A return value of MYSQLND_MS_QUERY_USE_MASTER indicates that the query should be send to the MySQL replication master server. The function returns a value of MYSQLND_MS_QUERY_USE_SLAVE if the query can be run on a slave because it is considered read-only. A value of MYSQLND_MS_QUERY_USE_LAST_USED is returned to recommend running the query on the last used server. This can either be a MySQL replication master server or a MySQL replication slave server.

If read write splitting has been disabled by setting mysqlnd_ms.disable_rw_split, the function will always return MYSQLND_MS_QUERY_USE_MASTER or MYSQLND_MS_QUERY_USE_LAST_USED.

Примеры

Пример #1 mysqlnd_ms_query_is_select() example

<?php
function is_select($query)
{
 switch (mysqlnd_ms_query_is_select($query))
 {
  case MYSQLND_MS_QUERY_USE_MASTER:
   printf("'%s' should be run on the master.\n", $query);
   break;
  case MYSQLND_MS_QUERY_USE_SLAVE:
   printf("'%s' should be run on a slave.\n", $query);
   break;
  case MYSQLND_MS_QUERY_USE_LAST_USED:
   printf("'%s' should be run on the server that has run the previous query\n", $query);
   break;
  default:
   printf("No suggestion where to run the '%s', fallback to master recommended\n", $query);
   break;
 }
}

is_select("INSERT INTO test(id) VALUES (1)");
is_select("SELECT 1 FROM DUAL");
is_select("/*" . MYSQLND_MS_LAST_USED_SWITCH . "*/SELECT 2 FROM DUAL");
?>

Результат выполнения данного примера:

INSERT INTO test(id) VALUES (1) should be run on the master.
SELECT 1 FROM DUAL should be run on a slave.
/*ms=last_used*/SELECT 2 FROM DUAL should be run on the server that has run the previous query

Смотрите также

  • Predefined Constants
  • user filter
  • Runtime configuration
  • mysqlnd_ms.disable_rw_split
  • mysqlnd_ms.enable


Sets the quality of service needed from the cluster

  • « mysqlnd_ms_query_is_select
  • mysqlnd_ms_set_user_pick_server »
  • PHP Manual
  • Функции Mysqlnd_ms
  • Sets the quality of service needed from the cluster

mysqlnd_ms_set_qos

(PECL mysqlnd_ms < 1.2.0)

mysqlnd_ms_set_qos — Sets the quality of service needed from the cluster

Описание

mysqlnd_ms_set_qos ( mixed $connection , int $service_level [, int $service_level_option [, mixed $option_value ]] ) : bool

Sets the quality of service needed from the cluster. A database cluster delivers a certain quality of service to the user depending on its architecture. A major aspect of the quality of service is the consistency level the cluster can offer. An asynchronous MySQL replication cluster defaults to eventual consistency for slave reads: a slave may serve stale data, current data, or it may have not the requested data at all, because it is not synchronous to the master. In a MySQL replication cluster, only master accesses can give strong consistency, which promises that all clients see each others changes.

PECL/mysqlnd_ms hides the complexity of choosing appropriate nodes to achieve a certain level of service from the cluster. The "Quality of Service" filter implements the necessary logic. The filter can either be configured in the plugins configuration file, or at runtime using mysqlnd_ms_set_qos().

Similar results can be achieved with PECL mysqlnd_ms < 1.2.0, if using SQL hints to force the use of a certain type of node or using the master_on_write plugin configuration option. The first requires more code and causes more work on the application side. The latter is less refined than using the quality of service filter. Settings made through the function call can be reversed, as shown in the example below. The example temporarily switches to a higher service level (session consistency, read your writes) and returns back to the clusters default after it has performed all operations that require the better service. This way, read load on the master can be minimized compared to using master_on_write, which would continue using the master after the first write.

Since 1.5.0 calls will fail when done in the middle of a transaction if transaction stickiness is enabled and transaction boundaries have been detected. properly.

Список параметров

connection

A PECL/mysqlnd_ms connection handle to a MySQL server of the type PDO_MYSQL, mysqli or ext/mysql for which a service level is to be set. The connection handle is obtained when opening a connection with a host name that matches a mysqlnd_ms configuration file entry using any of the above three MySQL driver extensions.

service_level

The requested service level: MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL, MYSQLND_MS_QOS_CONSISTENCY_SESSION or MYSQLND_MS_QOS_CONSISTENCY_STRONG.

service_level_option

An option to parameterize the requested service level. The option can either be MYSQLND_MS_QOS_OPTION_GTID or MYSQLND_MS_QOS_OPTION_AGE.

The option MYSQLND_MS_QOS_OPTION_GTID can be used to refine the service level MYSQLND_MS_QOS_CONSISTENCY_SESSION. It must be combined with a fourth function parameter, the option_value. The option_value shall be a global transaction ID obtained from mysqlnd_ms_get_last_gtid(). If set, the plugin considers both master servers and asynchronous slaves for session consistency (read your writes). Otherwise, only masters are used to achieve session consistency. A slave is considered up-to-date and checked if it has already replicated the global transaction ID from option_value. Please note, searching appropriate slaves is an expensive and slow operation. Use the feature sparsely, if the master cannot handle the read load alone.

The MYSQLND_MS_QOS_OPTION_AGE option can be combined with the MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL service level, to filter out asynchronous slaves that lag more seconds behind the master than option_value. If set, the plugin will only consider slaves for reading if SHOW SLAVE STATUS reports Slave_IO_Running=Yes, Slave_SQL_Running=Yes and Seconds_Behind_Master <= option_value. Please note, searching appropriate slaves is an expensive and slow operation. Use the feature sparsely in version 1.2.0. Future versions may improve the algorithm used to identify candidates. Please, see the MySQL reference manual about the precision, accuracy and limitations of the MySQL administrative command SHOW SLAVE STATUS.

option_value

Parameter value for the service level option. See also the service_level_option parameter.

Возвращаемые значения

Returns TRUE if the connections service level has been switched to the requested. Otherwise, returns FALSE

Примечания

Замечание:

mysqlnd_ms_set_qos() requires PHP >= 5.4.0 and PECL mysqlnd_ms >= 1.2.0. Internally, it is using a mysqlnd library C functionality not available with PHP 5.3.

Please note, all MySQL 5.6 production versions do not provide clients with enough information to use GTIDs for enforcing session consistency. In the worst case, the plugin will choose the master only.

Примеры

Пример #1 mysqlnd_ms_set_qos() example

<?php
/* Open mysqlnd_ms connection using mysqli, PDO_MySQL or mysql extension */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli)
  /* Of course, your error handling is nicer... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

/* Session consistency: read your writes */
$ret = mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION);
if (!$ret)
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

/* Will use master and return fresh data, client can see his last write */
if (!$res = $mysqli->query("SELECT item, price FROM orders WHERE order_id = 1"))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

/* Back to default: use of all slaves and masters permitted, stale data can happen */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
?>

Смотрите также

  • mysqlnd_ms_get_last_gtid() - Returns the latest global transaction ID
  • Service level and consistency concept
  • Filter concept


Sets a callback for user-defined read/write splitting

  • « mysqlnd_ms_set_qos
  • mysqlnd_ms_xa_begin »
  • PHP Manual
  • Функции Mysqlnd_ms
  • Sets a callback for user-defined read/write splitting

mysqlnd_ms_set_user_pick_server

(PECL mysqlnd_ms < 1.1.0)

mysqlnd_ms_set_user_pick_server — Sets a callback for user-defined read/write splitting

Описание

mysqlnd_ms_set_user_pick_server ( string $function ) : bool

Sets a callback for user-defined read/write splitting. The plugin will call the callback only if pick[]=user is the default rule for server picking in the relevant section of the plugins configuration file.

The plugins built-in read/write query split mechanism decisions can be overwritten in two ways. The easiest way is to prepend the query string with the SQL hints MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH or MYSQLND_MS_LAST_USED_SWITCH. Using SQL hints one can control, for example, whether a query shall be send to the MySQL replication master server or one of the slave servers. By help of SQL hints it is not possible to pick a certain slave server for query execution.

Full control on server selection can be gained using a callback function. Use of a callback is recommended to expert users only because the callback has to cover all cases otherwise handled by the plugin.

The plugin will invoke the callback function for selecting a server from the lists of configured master and slave servers. The callback function inspects the query to run and picks a server for query execution by returning the hosts URI, as found in the master and slave list.

If the lazy connections are enabled and the callback chooses a slave server for which no connection has been established so far and establishing the connection to the slave fails, the plugin will return an error upon the next action on the failed connection, for example, when running a query. It is the responsibility of the application developer to handle the error. For example, the application can re-run the query to trigger a new server selection and callback invocation. If so, the callback must make sure to select a different slave, or check slave availability, before returning to the plugin to prevent an endless loop.

Список параметров

function

The function to be called. Class methods may also be invoked statically using this function by passing array($classname, $methodname) to this parameter. Additionally class methods of an object instance may be called by passing array($objectinstance, $methodname) to this parameter.

Возвращаемые значения

Host to run the query on. The host URI is to be taken from the master and slave connection lists passed to the callback function. If callback returns a value neither found in the master nor in the slave connection lists the plugin will fallback to the second pick method configured via the pick[] setting in the plugin configuration file. If not second pick method is given, the plugin falls back to the build-in default pick method for server selection.

Примечания

Замечание:

mysqlnd_ms_set_user_pick_server() is available with PECL mysqlnd_ms < 1.1.0. It has been replaced by the user filter. Please, check the Change History for upgrade notes.

Примеры

Пример #1 mysqlnd_ms_set_user_pick_server() example

[myapp]
master[] = localhost
slave[] = 192.168.2.27:3306
slave[] = 192.168.78.136:3306
pick[] = user
<?php

function pick_server($connected, $query, $master, $slaves, $last_used)
{
 static $slave_idx = 0;
 static $num_slaves = NULL;
 if (is_null($num_slaves))
  $num_slaves = count($slaves);

 /* default: fallback to the plugins build-in logic */
 $ret = NULL;

 printf("User has connected to '%s'...\n", $connected);
 printf("... deciding where to run '%s'\n", $query);

 $where = mysqlnd_ms_query_is_select($query);
 switch ($where)
 {
  case MYSQLND_MS_QUERY_USE_MASTER:
   printf("... using master\n");
   $ret = $master[0];
   break;
  case MYSQLND_MS_QUERY_USE_SLAVE:
   /* SELECT or SQL hint for using slave */
   if (stristr($query, "FROM table_on_slave_a_only"))
   {
    /* a table which is only on the first configured slave  */
    printf("... access to table available only on slave A detected\n");
    $ret = $slaves[0];
   }
   else
   {
    /* round robin */
    printf("... some read-only query for a slave\n");
    $ret = $slaves[$slave_idx++ % $num_slaves];
   }
   break;
  case MYSQLND_MS_QUERY_LAST_USED:
   printf("... using last used server\n");
   $ret = $last_used;
   break;
 }

 printf("... ret = '%s'\n", $ret);
 return $ret;
}

mysqlnd_ms_set_user_pick_server("pick_server");

$mysqli = new mysqli("myapp", "root", "root", "test");

if (!($res = $mysqli->query("SELECT 1 FROM DUAL")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

if (!($res = $mysqli->query("SELECT 2 FROM DUAL")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

if (!($res = $mysqli->query("SELECT * FROM table_on_slave_a_only")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

$mysqli->close();
?>

Результат выполнения данного примера:

User has connected to 'myapp'...
... deciding where to run 'SELECT 1 FROM DUAL'
... some read-only query for a slave
... ret = 'tcp://192.168.2.27:3306'
User has connected to 'myapp'...
... deciding where to run 'SELECT 2 FROM DUAL'
... some read-only query for a slave
... ret = 'tcp://192.168.78.136:3306'
User has connected to 'myapp'...
... deciding where to run 'SELECT * FROM table_on_slave_a_only'
... access to table available only on slave A detected
... ret = 'tcp://192.168.2.27:3306'

Смотрите также

  • mysqlnd_ms_query_is_select() - Find whether to send the query to the master, the slave or the last used MySQL server
  • Filter concept
  • user filter


Starts a distributed/XA transaction among MySQL servers

  • « mysqlnd_ms_set_user_pick_server
  • mysqlnd_ms_xa_commit »
  • PHP Manual
  • Функции Mysqlnd_ms
  • Starts a distributed/XA transaction among MySQL servers

mysqlnd_ms_xa_begin

(PECL mysqlnd_ms < 1.6.0)

mysqlnd_ms_xa_begin — Starts a distributed/XA transaction among MySQL servers

Описание

mysqlnd_ms_xa_begin ( mixed $connection , string $gtrid [, int $timeout ] ) : int

Starts a XA transaction among MySQL servers. PECL/mysqlnd_ms acts as a transaction coordinator the distributed transaction.

Once a global transaction has been started, the plugin injects appropriate XA BEGIN SQL statements on all MySQL servers used in the following. The global transaction is either ended by calling mysqlnd_ms_xa_commit(), mysqlnd_ms_xa_rollback() or by an implicit rollback in case of an error.

During a global transaction, the plugin tracks all server switches, for example, when switching from one MySQL shard to another MySQL shard. Immediately before a query is run on a server that has not been participating in the global transaction yet, XA BEGIN is executed on the server. From a users perspective the injection happens during a call to a query execution function such as mysqli_query(). Should the injection fail an error is reported to the caller of the query execution function. The failing server does not become a participant in the global transaction. The user may retry executing a query on the server and hereby retry injecting XA BEGIN, abort the global transaction because not all required servers can participate, or ignore and continue the global without the failed server.

Reasons to fail executing XA BEGIN include but are not limited to a server being unreachable or the server having an open, concurrent XA transaction using the same xid.

Please note, global and local transactions are mutually exclusive. You cannot start a XA transaction when you have a local transaction open. The local transaction must be ended first. The plugin tries to detect this conflict as early as possible. It monitors API calls for controlling local transactions to learn about the current state. However, if using SQL statements for local transactions such as BEGIN, the plugin may not know the current state and the conflict is not detected before XA BEGIN is injected and executed.

The use of other XA resources but MySQL servers is not supported by the function. To carry out a global transaction among, for example, a MySQL server and another vendors database system, you should issue the systems SQL commands yourself.

Замечание: Experimental

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments.

Список параметров

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

gtrid

Global transaction identifier (gtrid). The gtrid is a binary string up to 64 bytes long. Please note, depending on your character set settings, 64 characters may require more than 64 bytes to store.

In accordance with the MySQL SQL syntax, XA transactions use identifiers made of three parts. An xid consists of a global transaction identifier (gtrid), a branch qualifier (bqual) and a format identifier (formatID). Only the global transaction identifier can and needs to be set.

The branch qualifier and format identifier are set automatically. The details should be considered implementation dependent, which may change without prior notice. In version 1.6 the branch qualifier is consecutive number which is incremented whenever a participant joins the global transaction.

timeout

Timeout in seconds. The default value is 60 seconds.

The timeout is a hint to the garbage collection. If a transaction is recorded to take longer than expected, the garbage collection begins checking the transactions status.

Setting a low value may make the garbage collection check the progress too often. Please note, checking the status of a global transaction may involve connecting to all recorded participants and possibly issuing queries on the servers.

Возвращаемые значения

Returns TRUE if there is no open local or global transaction and a new global transaction can be started. Otherwise, returns FALSE

Смотрите также

  • Quickstart XA/Distributed transactions
  • Runtime configuration
  • mysqlnd_ms_get_stats() - Returns query distribution and connection statistics


Commits a distributed/XA transaction among MySQL servers

  • « mysqlnd_ms_xa_begin
  • mysqlnd_ms_xa_gc »
  • PHP Manual
  • Функции Mysqlnd_ms
  • Commits a distributed/XA transaction among MySQL servers

mysqlnd_ms_xa_commit

(PECL mysqlnd_ms < 1.6.0)

mysqlnd_ms_xa_commit — Commits a distributed/XA transaction among MySQL servers

Описание

mysqlnd_ms_xa_commit ( mixed $connection , string $gtrid ) : int

Commits a global transaction among MySQL servers started by mysqlnd_ms_xa_begin().

If any of the global transaction participants fails to commit an implicit rollback is performed. It may happen that not all cases can be handled during the rollback. For example, no attempts will be made to reconnect to a participant after the connection to the participant has been lost. Solving cases that cannot easily be rolled back is left to the garbage collection.

Замечание: Experimental

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments.

Список параметров

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

gtrid

Global transaction identifier (gtrid).

Возвращаемые значения

Returns TRUE if the global transaction has been committed. Otherwise, returns FALSE

Смотрите также

  • Quickstart XA/Distributed transactions
  • Runtime configuration
  • mysqlnd_ms_get_stats() - Returns query distribution and connection statistics


Garbage collects unfinished XA transactions after severe errors

  • « mysqlnd_ms_xa_commit
  • mysqlnd_ms_xa_rollback »
  • PHP Manual
  • Функции Mysqlnd_ms
  • Garbage collects unfinished XA transactions after severe errors

mysqlnd_ms_xa_gc

(PECL mysqlnd_ms < 1.6.0)

mysqlnd_ms_xa_gc — Garbage collects unfinished XA transactions after severe errors

Описание

mysqlnd_ms_xa_gc ( mixed $connection [, string $gtrid [, bool $ignore_max_retries ]] ) : int

Garbage collects unfinished XA transactions.

The XA protocol is a blocking protocol. There exist cases when servers participating in a global transaction cannot make progress when the transaction coordinator crashes or disconnects. In such a case, the MySQL servers keep waiting for instructions to finish the XA transaction in question. Because transactions occupy resources, transactions should always be terminated properly.

Garbage collection requires configuring a state store to track global transactions. Should a PHP client crash in the middle of a transaction and a new PHP client be started, then the built-in garbage collection can learn about the aborted global transaction and terminate it. If you do not configure a state store, the garbage collection cannot perform any cleanup tasks.

The state store should be crash-safe and be highly available to survive its own crash. Currently, only MySQL is supported as a state store.

Garbage collection can also be performed automatically in the background. See the plugin configuration directive garbage_collection for details.

Замечание: Experimental

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments.

Список параметров

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

gtrid

Global transaction identifier (gtrid). If given, the garbage collection considers the transaction only. Otherwise, the state store is scanned for any unfinished transaction.

ignore_max_retries

Whether to ignore the plugin configuration max_retries setting. If garbage collection continuously fails and the max_retries limit is reached prior to finishing the failed global transaction, you can attempt further runs prior to investigating the cause and solving the issue manually by issuing appropriate SQL statements on the participants. Setting the parameter has the same effect as temporarily setting max_retries = 0.

Возвращаемые значения

Returns TRUE if garbage collection was successful. Otherwise, returns FALSE

Смотрите также

  • Quickstart XA/Distributed transactions
  • Runtime configuration
  • State store configuration
  • mysqlnd_ms_get_stats() - Returns query distribution and connection statistics


Rolls back a distributed/XA transaction among MySQL servers

  • « mysqlnd_ms_xa_gc
  • Change History »
  • PHP Manual
  • Функции Mysqlnd_ms
  • Rolls back a distributed/XA transaction among MySQL servers

mysqlnd_ms_xa_rollback

(PECL mysqlnd_ms < 1.6.0)

mysqlnd_ms_xa_rollback — Rolls back a distributed/XA transaction among MySQL servers

Описание

mysqlnd_ms_xa_rollback ( mixed $connection , string $gtrid ) : int

Rolls back a global transaction among MySQL servers started by mysqlnd_ms_xa_begin().

If any of the global transaction participants fails to rollback the situation is left to be solved by the garbage collection.

Замечание: Experimental

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments.

Список параметров

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

gtrid

Global transaction identifier (gtrid).

Возвращаемые значения

Returns TRUE if the global transaction has been rolled back. Otherwise, returns FALSE

Смотрите также

  • Quickstart XA/Distributed transactions
  • Runtime configuration
  • mysqlnd_ms_get_stats() - Returns query distribution and connection statistics


Change History

Содержание

  • PECL/mysqlnd_ms 1.6 series
  • PECL/mysqlnd_ms 1.5 series
  • PECL/mysqlnd_ms 1.4 series
  • PECL/mysqlnd_ms 1.3 series
  • PECL/mysqlnd_ms 1.2 series
  • PECL/mysqlnd_ms 1.1 series
  • PECL/mysqlnd_ms 1.0 series

This change history is a high level summary of selected changes that may impact applications and/or break backwards compatibility.

See also the CHANGES file in the source distribution for a complete list of changes.


PECL/mysqlnd_ms 1.6 series

1.6.0-alpha

  • Release date: TBD
  • Motto/theme: Maintenance and initial MySQL Fabric support

Замечание:

This is the current development series. All features are at an early stage. Changes may happen at any time without prior notice. Please, do not use this version in production environments.

The documentation may not reflect all changes yet.

Bug fixes

  • Won't fix: #66616 R/W split fails: QOS with mysqlnd_get_last_gtid with built-in MySQL GTID

    This is not a bug in the plugins implementation but a server side feature limitation not considered and documented before. MySQL 5.6 built-in GTIDs cannot be used to ensure session consistency when reading from slaves in all cases. In the worst case the plugin will not consider using the slaves and fallback to using the master. There will be no wrong results but no benefit from doing GTID checks either.

  • Fixed #66064 - Random once load balancer ignoring weights

    Due to a config parsing bug random load balancing has ignored node weights if, and only if, the sticky flag was set (random once).

  • Fixed #65496 - Wrong check for slave delay

    The quality of service filter has erroneously ignored slaves that lag for zero (0) seconds if a any maximum lag had been set. Although a slave was not lagging behind, it was excluded from the load balancing list if a maximum age was set by the QoS filter. This was due to using the wrong comparison operator in the source of the filter.

  • Fixed #65408 - Compile failure with -Werror=format-security

Feature changes

  • Introduced an internal connection pool. When using Fabric and switching from shard group A to shard group B, we are replacing the entire list of masters and slaves. This troubles the connections state alignment logic and some filters. Some filters cache information on the master and slave lists. The new internal connection pool abstraction allows us to inform the filters of changes, hence they can update their caches.

    Later on, the pool can also be used to reduce connection overhead. Assume you are switching from a shard group to another and back again. Whenever the switch is done, the pool's active server (and connection) lists are replaced. However, no longer used connections are not necessarily closed immediately but can be kept in the pool for later reuse.

    Please note, the connection pool is internalat this point. There are some new statistics to monitor it. However, you cannot yet configure pool size of behaviour.

  • Added a basic distributed transaction abstraction. XA transactions can are supported ever since using standard SQL calls. This is inconvenient as XA participants must be managed manually. PECL/mysqlnd_ms introduces API calls to control XA transaction among MySQL servers. When using the new functions, PECL/mysqlnd_ms acts as a transaction coordinator. After starting a distributed transaction, the plugin tracks all servers involved until the transaction is ended and issues appropriate SQL statements on the XA participants.

    This is useful, for example, when using Fabric and sharding. When using Fabric the actual shard servers involved in a business transaction may not be known in advance. Thus, manually controlling a transaction that spawns multiple shards becomes difficult. Please, be warned about current limitations.

  • Introduced automatic retry loop for transient errors and corresponding statistic to count the number of implicit retries. Some distributed database clusters use transient errors to hint a client to retry its operation in a bit. Most often, the client is then supposed to halt execution (sleep) for a short moment before retrying the desired operation. Immediately failing over to another node is not necessary in response to the error. Instead, a retry loop can be performed. Common situation when using MySQL Cluster.

  • Introduced automatic retry loop for transient errors and corresponding statistic to count the number of implicit retries. Some distributed database clusters use transient errors to hint a client to retry its operation in a bit. Most often, the client is then supposed to halt execution (sleep) for a short moment before retrying the desired operation. Immediately failing over to another node is not necessary in response to the error. Instead, a retry loop can be performed. Common situation when using MySQL Cluster.

  • Introduced most basic support for the MySQL Fabric High Availability and sharding framework.

    Please, consider this pre-alpha quality. Both the server side framework and the client side code is supposed to work flawless considering the MySQL Fabric quickstart examples only. However, testing has not been performed to the level of prior plugin alpha releases. Either sides are moving targets, API changes may happen at any time without prior warning.

    As this is work in progress, the manual may not yet reflect allow feature limitations and known bugs.

  • New statistics to monitor the Fabric XML RPC call sharding.lookup_servers: fabric_sharding_lookup_servers_success, fabric_sharding_lookup_servers_failure, fabric_sharding_lookup_servers_time_total, fabric_sharding_lookup_servers_bytes_total, fabric_sharding_lookup_servers_xml_failure.

  • New functions related to MySQL Fabric:
mysqlnd_ms_fabric_select_shard(),
mysqlnd_ms_fabric_select_global(),
mysqlnd_ms_dump_servers().


PECL/mysqlnd_ms 1.5 series

1.5.1-stable

  • Release date: 06/2013
  • Motto/theme: Sharding support, improved transaction support

Замечание:

This is the current stable series. Use this version in production environments.

The documentation is complete.

1.5.0-alpha

  • Release date: 03/2013
  • Motto/theme: Sharding support, improved transaction support

Bug fixes

  • Fixed #60605 PHP segmentation fault when mysqlnd_ms is enabled.

  • Setting transaction stickiness disables all load balancing, including automatic failover, for the duration of a transaction. So far connection switches could have happened in the middle of a transaction in multi-master configurations and during automatic failover although transaction monitoring had detected transaction boundaries properly.

  • BC break and bug fix. SQL hints enforcing the use of a specific kind of server (MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH, MYSQLND_MS_LAST_USED_SWITCH) are ignored for the duration of a transaction of transaction stickiness is enabled and transaction boundaries have been detected properly.

    This is a change in behaviour. However, it is also a bug fix and a step to align behaviour. If, in previous versions, transaction stickiness, one of the above listed SQL hints and the quality of service filtering was combined it could happened that the SQL hints got ignored. In some case the SQL hints did work, in other cases they did not. The new behaviour is more consistent. SQL hints will always be ignore for the duration of a transaction, if transaction stickiness is enabled.

    Please note, transaction boundary detection continues to be based on API call monitoring. SQL commands controlling transactions are not monitored.

  • BC break and bug fix. Calls to mysqlnd_ms_set_qos() will fail when done in the middle of a transaction if transaction stickiness is enabled. Connection switches are not allowed for the duration of a transaction. Changing the quality of service likely results on a different set of servers qualifying for query execution, possibly making it necessary to switch connections. Thus, the call is not allowed in during an active transaction. The quality of server can, however, be changed in between transactions.

Feature changes

  • Introduced the node_group filter. The filter lets you organize servers (master and slaves) into groups. Queries can be directed to a certain group of servers by prefixing the query statement with a SQL hint/comment that contains the groups configured name. Grouping can be used for partitioning and sharding, and also to optimize for local caching. In the case of sharding, a group name can be thought of like a shard key. All queries for a given shard key will be executed on the configured shard. Note: both the client and server must support sharding for sharding to function with mysqlnd_ms.

  • Extended configuration file validation during PHP startup (RINIT). An E_WARNING level error will be thrown if the configuration file can not be read (permissions), is empty, or the file (JSON) could not be parsed. Warnings may appear in log files, which depending on how PHP is configured.

    Distributions that aim to provide a pre-configured setup, including a configuration file stub, are asked to put {} into the configuration file to prevent this warning about an invalid configuration file.

    Further configuration file validation is done when parsing sections upon opening a connection. Please, note that there may still be situations when an invalid plugin configuration file does not lead to proper error messages but a failure to connect.

  • As of PHP 5.5.0, improved support for transaction boundaries detection was added for mysqli. The mysqli extension has been modified to use the new C API calls of the mysqlnd library to begin, commit, and rollback a transaction or savepoint. If trx_stickiness is used to enable transaction aware load balancing, the mysqli_begin(), mysqli_commit() and mysqli_rollback() functions will now be monitered by the plugin, to go along with the mysqli_autocommit() function that was already supported. All SQL features to control transactions are also available through the improved mysqli transaction control related functions. This means that it is not required to issue SQL statements instead of using API calls. Applications using the appropriate API calls can be load balanced by PECL/mysqlnd_ms in a completely transaction-aware way.

    Please note, PDO_MySQL has not been updated yet to utilize the new mysqlnd API calls. Thus, transaction boundary detection with PDO_MySQL continues to be limited to the monitoring by passing in PDO::ATTR_AUTOCOMMIT to PDO::setAttribute().

  • Introduced trx_stickiness=on. This trx_stickiness option differs from trx_stickiness=master as it tries to execute a read-only transaction on a slave, if quality of service (consistency level) allows the use of a slave. Read-only transactions were introduced in MySQL 5.6, and they offer performance gains.

  • Query cache support is considered beta if used with the mysqli API. It should work fine with primary copy based clusters. For all other APIs, this feature continues to be called experimental.

  • The code examples in the mysqlnd_ms source were updated.


PECL/mysqlnd_ms 1.4 series

1.4.2-stable

  • Release date: 08/2012
  • Motto/theme: Tweaking based on user feedback

1.4.1-beta

  • Release date: 08/2012
  • Motto/theme: Tweaking based on user feedback

Bug fixes

  • Fixed build with PHP 5.5

1.4.0-alpha

  • Release date: 07/2012
  • Motto/theme: Tweaking based on user feedback

Feature changes

  • BC break: Renamed plugin configuration setting ini_file to config_file. In early versions the plugin configuration file used ini style. Back then the configuration setting was named accordingly. It has now been renamed to reflect the newer file format and to distinguish it from PHP's own ini file (configuration directives file).

  • Introduced new default charset setting server_charset to allow proper escaping before a connection is opened. This is most useful when using lazy connections, which are a default.

  • Introduced wait_for_gtid_timeout setting to throttle slave reads that need session consistency. If global transaction identifier are used and the service level is set to session consistency, the plugin tries to find up-to-date slaves. The slave status check is done by a SQL statement. If nothing else is set, the slave status is checked only one can the search for more up-to-date slaves continues immediately thereafter. Setting wait_for_gtid_timeout instructs the plugin to poll a slaves status for wait_for_gtid_timeout seconds if the first execution of the SQL statement has shown that the slave is not up-to-date yet. The poll will be done once per second. This way, the plugin will wait for slaves to catch up and throttle the client.

  • New failover strategy loop_before_master. By default the plugin does no failover. It is possible to enable automatic failover if a connection attempt fails. Upto version 1.3 only master strategy existed to failover to a master if a slave connection fails. loop_before_master is similar but tries all other slaves before attempting to connect to the master if a slave connection fails.

    The number of attempts can be limited using the max_retries option. Failed hosts can be remembered and skipped in load balancing for the rest of the web request. max_retries and remember_failed are considered experimental although decent stability is given. Syntax and semantics may change in the future without prior notice.


PECL/mysqlnd_ms 1.3 series

1.3.2-stable

  • Release date: 04/2012
  • Motto/theme: see 1.3.0-alpha

Bug fixes

  • Fixed problem with multi-master where although in a transaction the queries to the master weren't sticky and were spread all over the masters (RR). Still not sticky for Random. Random_once is not affected.

1.3.1-beta

  • Release date: 04/2012
  • Motto/theme: see 1.3.0-alpha

Bug fixes

  • Fixed problem with building together with QC.

1.3.0-alpha

  • Release date: 04/2012
  • Motto/theme: Query caching through quality-of-service concept

The 1.3 series aims to improve the performance of applications and the overall load of an asynchronous MySQL cluster, for example, a MySQL cluster using MySQL Replication. This is done by transparently replacing a slave access with a local cache access, if the application allows it by setting an appropriate quality of service flag. When using MySQL replication a slave can serve stale data. An application using MySQL replication must continue to work correctly with stale data. Given that the application is know to work correctly with stale data, the slave access can transparently be replace with a local cache access.

PECL/mysqlnd_qc serves as a cache backend. PECL/mysqlnd_qc supports use of various storage locations, among others main memory, APC and MEMCACHE.

Feature changes

  • Added cache option to quality-of-service (QoS) filter.

    • New configure option enable-mysqlnd-ms-cache-support
    • New constant MYSQLND_MS_HAVE_CACHE_SUPPORT.
    • New constant MYSQLND_MS_QOS_OPTION_CACHE to be used with mysqlnd_ms_set_qos().

  • Support for built-in global transaction identifier feature of MySQL 5.6.5-m8 or newer.


PECL/mysqlnd_ms 1.2 series

1.2.1-beta

  • Release date: 01/2012
  • Motto/theme: see 1.2.0-alpha

Minor test changes.

1.2.0-alpha

  • Release date: 11/2011
  • Motto/theme: Global Transaction ID injection and quality-of-service concept

In version 1.2 the focus continues to be on supporting MySQL database clusters with asynchronous replication. The plugin tries to make using the cluster introducing a quality-of-service filter which applications can use to define what service quality they need from the cluster. Service levels provided are eventual consistency with optional maximum age/slave slag, session consistency and strong consistency.

Additionally the plugin can do client-side global transaction id injection to make manual master failover easier.

Feature changes

  • Introduced quality-of-service (QoS) filter. Service levels provided by QoS filter:

    • eventual consistency, optional option slave lag
    • session consistency, optional option GTID
    • strong consistency

  • Added the mysqlnd_ms_set_qos() function to set the required connection quality at runtime. The new constants related to mysqlnd_ms_set_qos() are:

    • MYSQLND_MS_QOS_CONSISTENCY_STRONG
    • MYSQLND_MS_QOS_CONSISTENCY_SESSION
    • MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL
    • MYSQLND_MS_QOS_OPTION_GTID
    • MYSQLND_MS_QOS_OPTION_AGE

  • Added client-side global transaction id injection (GTID).

  • New statistics related to GTID:

    • gtid_autocommit_injections_success
    • gtid_autocommit_injections_failure
    • gtid_commit_injections_success
    • gtid_commit_injections_failure
    • gtid_implicit_commit_injections_success
    • gtid_implicit_commit_injections_failure

  • Added mysqlnd_ms_get_last_gtid() to fetch the last global transaction id.

  • Enabled support for multi master without slaves.


PECL/mysqlnd_ms 1.1 series

1.1.0

  • Release date: 09/2011
  • Motto/theme: Cover replication basics with production quality

The 1.1 and 1.0 series expose a similar feature set. Internally, the 1.1 series has been refactored to plan for future feature additions. A new configuration file format has been introduced, and limitations have been lifted. And the code quality and quality assurance has been improved.

Feature changes

  • Added the (chainable) filter concept:

    • BC break: mysqlnd_ms_set_user_pick_server() has been removed. Thehttp://svn.php.net/viewvc/pecl/mysqlnd_ms/trunk/ user filter has been introduced to replace it. The filter offers similar functionality, but see below for an explanation of the differences.

  • New powerful JSON based configuration syntax.
  • Lazy connections improved: security relevant, and state changing commands are covered.
  • Support for (native) prepared statements.

  • New statistics: use_master_guess, use_slave_guess.

    • BC break: Semantics of statistics changed for use_slave, use_master. Future changes are likely. Please see, mysqlnd_ms_get_stats().

  • List of broadcasted messages extended by ssl_set.
  • Library calls now monitored to remember settings for lazy connections: change_user, select_db, set_charset, set_autocommit.
  • Introduced mysqlnd_ms.disable_rw_split. The configuration setting allows using the load balancing and lazy connection functionality independently of read write splitting.

Bug fixes

  • Fixed PECL #22724 - Server switching (mysqlnd_ms_query_is_select() case sensitive)
  • Fixed PECL #22784 - Using mysql_connect and mysql_select_db did not work
  • Fixed PECL #59982 - Unusable extension with --enable-mysqlnd-ms-table-filter. Use of the option is NOT supported. You must not used it. Added note to m4.
  • Fixed Bug #60119 - host="localhost" lost in mysqlnd_ms_get_last_used_connection()

The mysqlnd_ms_set_user_pick_server() function was removed, and replaced in favor of a new user filter. You can no longer set a callback function using mysqlnd_ms_set_user_pick_server() at runtime, but instead have to configure it in the plugins configuration file. The user filter will pass the same arguments to the callback as before. Therefore, you can continue to use the same procedural function as a callback.callback It is no longer possible to use static class methods, or class methods of an object instance, as a callback. Doing so will cause the function executing a statement handled by the plugin to emit an E_RECOVERABLE_ERROR level error, which might look like: "(mysqlnd_ms) Specified callback (picker) is not a valid callback." Note: this may halt your application.


PECL/mysqlnd_ms 1.0 series

1.0.1-alpha

  • Release date: 04/2011
  • Motto/theme: bug fix release

1.0.0-alpha

  • Release date: 04/2011
  • Motto/theme: Cover replication basics to test user feedback

The first release of practical use. It features basic automatic read-write splitting, SQL hints to overrule automatic redirection, load balancing of slave requests, lazy connections, and optional, automatic use of the master after the first write.

The public feature set is close to that of the 1.1 release.

1.0.0-pre-alpha

  • Release date: 09/2010
  • Motto/theme: Proof of concept

Initial check-in. Essentially a demo of the mysqlnd plugin API.


Mysqlnd query result cache plugin

  • Введение
  • Quickstart and Examples
    • Architecture and Concepts
    • Setup
    • Caching queries
    • Setting the TTL
    • Pattern based caching
    • Slam defense
    • Finding cache candidates
    • Measuring cache efficiency
    • Beyond TTL: user-defined storage
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределенные константы
  • mysqlnd_qc Функции
    • mysqlnd_qc_clear_cache — Flush all cache contents
    • mysqlnd_qc_get_available_handlers — Returns a list of available storage handler
    • mysqlnd_qc_get_cache_info — Returns information on the current handler, the number of cache entries and cache entries, if available
    • mysqlnd_qc_get_core_stats — Statistics collected by the core of the query cache
    • mysqlnd_qc_get_normalized_query_trace_log — Returns a normalized query trace log for each query inspected by the query cache
    • mysqlnd_qc_get_query_trace_log — Returns a backtrace for each query inspected by the query cache
    • mysqlnd_qc_set_cache_condition — Set conditions for automatic caching
    • mysqlnd_qc_set_is_select — Installs a callback which decides whether a statement is cached
    • mysqlnd_qc_set_storage_handler — Change current storage handler
    • mysqlnd_qc_set_user_handlers — Sets the callback functions for a user-defined procedural storage handler
  • Change History
    • PECL/mysqlnd_qc 1.2 series
    • PECL/mysqlnd_qc 1.1 series
    • PECL/mysqlnd_qc 1.0 series


Введение

The mysqlnd query result cache plugin adds easy to use client-side query caching to all PHP MySQL extensions using mysqlnd.

As of version PHP 5.3.3 the MySQL native driver for PHP ( mysqlnd) features an internal plugin C API. C plugins, such as the query cache plugin, can extend the functionality of mysqlnd.

Mysqlnd plugins such as the query cache plugin operate transparent from a user perspective. The cache plugin supports all PHP applications and all PHP MySQL extensions ( mysqli, mysql, PDO_MYSQL). It does not change existing APIs.

No significant application changes are required to cache a query. The cache has two operation modes. It will either cache all queries (not recommended) or only those queries marked with a certain SQL hint (recommended).

Key Features

  • Transparent and therefore easy to use

    • supports all PHP MySQL extensions

    • no API changes

    • very little application changes required

  • Flexible invalidation strategy

    • Time-to-Live (TTL)

    • user-defined

  • Storage with different scope and life-span

    • Default (Hash, process memory)

    • APC

    • MEMCACHE

    • sqlite

    • user-defined

  • Built-in slam defense to prevent cache stampeding.

Limitations

The current 1.0.1 release of PECL mysqlnd_qc does not support PHP 5.4. Version 1.1.0-alpha lifts this limitation.

Prepared statements and unbuffered queries are fully supported. Thus, the plugin is capable of caching all statements issued with mysqli or PDO_MySQL, which are the only two PHP MySQL APIs to offer prepared statement support.

On the name

The shortcut mysqlnd_qc stands for mysqlnd query cache plugin. The name was chosen for a quick-and-dirty proof-of-concept. In the beginning the developers did not expect to continue using the code base. Sometimes PECL/mysqlnd_qc has also been called client-side query result set cache.


Quickstart and Examples

Содержание

  • Architecture and Concepts
  • Setup
  • Caching queries
  • Setting the TTL
  • Pattern based caching
  • Slam defense
  • Finding cache candidates
  • Measuring cache efficiency
  • Beyond TTL: user-defined storage

The mysqlnd query cache plugin is easy to use. This quickstart will demo typical use-cases, and provide practical advice on getting started.

It is strongly recommended to read the reference sections in addition to the quickstart. It is safe to begin with the quickstart. However, before using the plugin in mission critical environments we urge you to read additionally the background information from the reference sections.

Most of the examples use the mysqli extension because it is the most feature complete PHP MySQL extension. However, the plugin can be used with any PHP MySQL extension that is using the mysqlnd library.


Architecture and Concepts

The query cache plugin is implemented as a PHP extension. It is written in C and operates under the hood of PHP. During the startup of the PHP interpreter, it gets registered as a mysqlnd plugin to replace selected mysqlnd C methods. Hereby, it can change the behaviour of any PHP MySQL extension (mysqli, PDO_MYSQL, mysql) compiled to use the mysqlnd library without changing the extensions API. This makes the plugin compatible with each and every PHP MySQL application. Because existing APIs are not changed, it is almost transparent to use. Please, see the mysqlnd plugin API description for a discussion of the advantages of the plugin architecture and a comparison with proxy based solutions.

Transparent to use

At PHP run time PECL/mysqlnd_qc can proxy queries send from PHP (mysqlnd) to the MySQL server. It then inspects the statement string to find whether it shall cache its results. If so, result set is cached using a storage handler and further executions of the statement are served from the cache for a user-defined period. The Time to Live (TTL) of the cache entry can either be set globally or on a per statement basis.

A statement is either cached if the plugin is instructed to cache all statements globally using a or, if the query string starts with the SQL hint (/*qc=on*/). The plugin is capable of caching any query issued by calling appropriate API calls of any of the existing PHP MySQL extensions.

Flexible storage: various storage handler

Various storage handler are supported to offer different scopes for cache entries. Different scopes allow for different degrees in sharing cache entries among clients.

  • default (built-in): process memory, scope: process, one or more web requests depending on PHP deployment model used

  • APC: shared memory, scope: single server, multiple web requests

  • SQLite: memory or file, scope: single server, multiple web requests

  • MEMCACHE: main memory, scope: single or multiple server, multiple web requests

  • user (built-in): user-defined - any, scope: user-defined - any

Support for the APC, SQLite and MEMCACHE storage handler has to be enabled at compile time. The default and user handler are built-in. It is possible to switch between compiled-in storage handlers on a per query basis at run time. However, it is recommended to pick one storage handler and use it for all cache entries.

Built-in slam defense to avoid overloading

To avoid overload situations the cache plugin has a built-in slam defense mechanism. If a popular cache entries expires many clients using the cache entries will try to refresh the cache entry. For the duration of the refresh many clients may access the database server concurrently. In the worst case, the database server becomes overloaded and it takes more and more time to refresh the cache entry, which in turn lets more and more clients try to refresh the cache entry. To prevent this from happening the plugin has a slam defense mechanism. If slam defense is enabled and the plugin detects an expired cache entry it extends the life time of the cache entry before it refreshes the cache entry. This way other concurrent accesses to the expired cache entry are still served from the cache for a certain time. The other concurrent accesses to not trigger a concurrent refresh. Ideally, the cache entry gets refreshed by the client which extended the cache entries lifespan before other clients try to refresh the cache and potentially cause an overload situation.

Unique approach to caching

PECL/mysqlnd_qc has a unique approach to caching result sets that is superior to application based cache solutions. Application based solutions first fetch a result set into PHP variables. Then, the PHP variables are serialized for storage in a persistent cache, and then unserialized when fetching. The mysqlnd query cache stores the raw wire protocol data sent from MySQL to PHP in its cache and replays it, if still valid, on a cache hit. This way, it saves an extra serialization step for a cache put that all application based solutions have to do. It can store the raw wire protocol data in the cache without having to serialize into a PHP variable first and deserializing the PHP variable for storing in the cache again.


Setup

The plugin is implemented as a PHP extension. See also the installation instructions to install the » PECL/mysqlnd_qc extension.

Compile or configure the PHP MySQL extension (mysqli, PDO_MYSQL, mysql) that you plan to use with support for the mysqlnd library. PECL/mysqlnd_qc is a plugin for the mysqlnd library. To use the plugin with any of the existing PHP MySQL extensions (APIs), the extension has to use the mysqlnd library.

Then, load the extension into PHP and activate the plugin in the PHP configuration file using the PHP configuration directive named mysqlnd_qc.enable_qc.

Пример #1 Enabling the plugin (php.ini)

mysqlnd_qc.enable_qc=1


Caching queries

There are four ways to trigger caching of a query.

  • Use of SQL hints on a per query basis
  • User supplied callbacks to decide on a per query basis, for example, using mysqlnd_qc_is_select()
  • mysqlnd_set_cache_condition() for rule based automatic per query decisions
  • mysqlnd_qc.cache_by_default = 1 to cache all queries blindly

Use of SQL hints and mysqlnd_qc.cache_by_default = 1 are explained below. Please, refer to the function reference on mysqlnd_qc_is_select() for a description of using a callback and, mysqlnd_qc_set_cache_condition() on how to set rules for automatic caching.

A SQL hint is a SQL standards compliant comment. As a SQL comment it is ignored by the database. A statement is considered eligible for caching if it either begins with the SQL hint enabling caching or it is a SELECT statement.

An individual query which shall be cached must begin with the SQL hint /*qc=on*/. It is recommended to use the PHP constant MYSQLND_QC_ENABLE_SWITCH instead of using the string value.

  • not eligible for caching and not cached: INSERT INTO test(id) VALUES (1)

  • not eligible for caching and not cached: SHOW ENGINES

  • eligible for caching but uncached: SELECT id FROM test

  • eligible for caching and cached: /*qc=on*/SELECT id FROM test

The examples SELECT statement string is prefixed with the MYSQLND_QC_ENABLE_SWITCH SQL hint to enable caching of the statement. The SQL hint must be given at the very beginning of the statement string to enable caching.

Пример #1 Using the MYSQLND_QC_ENABLE_SWITCH SQL hint

mysqlnd_qc.enable_qc=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

/* Will be cached because of the SQL hint */
$start = microtime(true);
$res   = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 1");

var_dump($res->fetch_assoc());
$res->free();

printf("Total time uncached query: %.6fs\n", microtime(true) - $start);

/* Cache hit */
$start = microtime(true);
$res   = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 1");

var_dump($res->fetch_assoc());
$res->free();

printf("Total time cached query: %.6fs\n", microtime(true) - $start);
?>

Результатом выполнения данных примеров будет что-то подобное:

array(1) {
  ["id"]=>
  string(1) "1"
}
Total time uncached query: 0.000740s
array(1) {
  ["id"]=>
  string(1) "1"
}
Total time cached query: 0.000098s

If nothing else is configured, as it is the case in the quickstart example, the plugin will use the built-in default storage handler. The default storage handler uses process memory to hold a cache entry. Depending on the PHP deployment model, a PHP process may serve one or more web requests. Please, consult the web server manual for details. Details make no difference for the examples given in the quickstart.

The query cache plugin will cache all queries regardless if the query string begins with the SQL hint which enables caching or not, if the PHP configuration directive mysqlnd_qc.cache_by_default is set to 1. The setting mysqlnd_qc.cache_by_default is evaluated by the core of the query cache plugins. Neither the built-in nor user-defined storage handler can overrule the setting.

The SQL hint /*qc=off*/ can be used to disable caching of individual queries if mysqlnd_qc.cache_by_default = 1 It is recommended to use the PHP constant MYSQLND_QC_DISABLE_SWITCH instead of using the string value.

Пример #2 Using the MYSQLND_QC_DISABLE_SWITCH SQL hint

mysqlnd_qc.enable_qc=1
mysqlnd_qc.cache_by_default=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

/* Will be cached although no SQL hint is present because of mysqlnd_qc.cache_by_default = 1*/
$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

$mysqli->query("DELETE FROM test WHERE id = 1");

/* Cache hit - no automatic invalidation and still valid! */
$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* Cache miss - query must not be cached because of the SQL hint */
$res = $mysqli->query("/*" . MYSQLND_QC_DISABLE_SWITCH . "*/SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();
?>

Результат выполнения данных примеров:

array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "1"
}
NULL

PECL/mysqlnd_qc forbids caching of statements for which at least one column from the statements result set shows no table name in its meta data by default. This is usually the case for columns originating from SQL functions such as NOW() or LAST_INSERT_ID(). The policy aims to prevent pitfalls if caching by default is used.

Пример #3 Example showing which type of statements are not cached

mysqlnd_qc.enable_qc=1
mysqlnd_qc.cache_by_default=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1)");

for ($i = 0; $i < 3; $i++) {

    $start = microtime(true);

    /* Note: statement will not be cached because of NOW() use */
    $res = $mysqli->query("SELECT id, NOW() AS _time FROM test");
    $row = $res->fetch_assoc();

    /* dump results */
    var_dump($row);

    printf("Total time: %.6fs\n", microtime(true) - $start);

    /* pause one second */
    sleep(1);
}
?>

Результатом выполнения данных примеров будет что-то подобное:

array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:43:10"
}
Total time: 0.000540s
array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:43:11"
}
Total time: 0.000555s
array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:43:12"
}
Total time: 0.000549s

It is possible to enable caching for all statements including those which has columns in their result set for which MySQL reports no table, such as the statement from the example. Set mysqlnd_qc.cache_no_table = 1 to enable caching of such statements. Please, note the difference in the measured times for the above and below examples.

Пример #4 Enabling caching for all statements using the mysqlnd_qc.cache_no_table ini setting

mysqlnd_qc.enable_qc=1
mysqlnd_qc.cache_by_default=1
mysqlnd_qc.cache_no_table=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1)");

for ($i = 0; $i < 3; $i++) {

    $start = microtime(true);

    /* Note: statement will not be cached because of NOW() use */
    $res = $mysqli->query("SELECT id, NOW() AS _time FROM test");
    $row = $res->fetch_assoc();

    /* dump results */
    var_dump($row);

    printf("Total time: %.6fs\n", microtime(true) - $start);

    /* pause one second */
    sleep(1);
}
?>

Результатом выполнения данных примеров будет что-то подобное:

array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:47:45"
}
Total time: 0.000546s
array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:47:45"
}
Total time: 0.000187s
array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:47:45"
}
Total time: 0.000167s

Замечание:

Although mysqlnd_qc.cache_no_table = 1 has been created for use with mysqlnd_qc.cache_by_default = 1 it is bound it. The plugin will evaluate the mysqlnd_qc.cache_no_table whenever a query is to be cached, no matter whether caching has been enabled using a SQL hint or any other measure.


Setting the TTL

The default invalidation strategy of the query cache plugin is Time to Live (TTL). The built-in storage handlers will use the default TTL defined by the PHP configuration value mysqlnd_qc.ttl unless the query string contains a hint for setting a different TTL. The TTL is specified in seconds. By default cache entries expire after 30 seconds

The example sets mysqlnd_qc.ttl=3 to cache statements for three seconds by default. Every second it updates a database table record to hold the current time and executes a SELECT statement to fetch the record from the database. The SELECT statement is cached for three seconds because it is prefixed with the SQL hint enabling caching. The output verifies that the query results are taken from the cache for the duration of three seconds before they are refreshed.

Пример #1 Setting the TTL with the mysqlnd_qc.ttl ini setting

mysqlnd_qc.enable_qc=1
mysqlnd_qc.ttl=3
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id VARCHAR(255))");

for ($i = 0; $i < 7; $i++) {

    /* update DB row  */
    if (!$mysqli->query("DELETE FROM test") ||
        !$mysqli->query("INSERT INTO test(id) VALUES (NOW())"))
      /* Of course, a real-life script should do better error handling */
      die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

    /* select latest row but cache results */
    $query  = "/*" . MYSQLND_QC_ENABLE_SWITCH . "*/";
    $query .= "SELECT id AS _time FROM test";
    if (!($res = $mysqli->query($query)) ||
        !($row = $res->fetch_assoc()))
    {
      printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
    }
    $res->free();
    printf("Wall time %s - DB row time %s\n", date("H:i:s"), $row['_time']);

    /* pause one second */
    sleep(1);
}
?>

Результатом выполнения данных примеров будет что-то подобное:

Wall time 14:55:59 - DB row time 2012-01-11 14:55:59
Wall time 14:56:00 - DB row time 2012-01-11 14:55:59
Wall time 14:56:01 - DB row time 2012-01-11 14:55:59
Wall time 14:56:02 - DB row time 2012-01-11 14:56:02
Wall time 14:56:03 - DB row time 2012-01-11 14:56:02
Wall time 14:56:04 - DB row time 2012-01-11 14:56:02
Wall time 14:56:05 - DB row time 2012-01-11 14:56:05

As can be seen from the example, any TTL based cache can serve stale data. Cache entries are not automatically invalidated, if underlying data changes. Applications using the default TTL invalidation strategy must be able to work correctly with stale data.

A user-defined cache storage handler can implement any invalidation strategy to work around this limitation.

The default TTL can be overruled using the SQL hint /*qc_tt=seconds*/. The SQL hint must be appear immediately after the SQL hint which enables caching. It is recommended to use the PHP constant MYSQLND_QC_TTL_SWITCH instead of using the string value.

Пример #2 Setting TTL with SQL hints

<?php
$start = microtime(true);

/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

printf("Default TTL\t: %d seconds\n", ini_get("mysqlnd_qc.ttl"));

/* Will be cached for 2 seconds */
$sql = sprintf("/*%s*//*%s%d*/SELECT id FROM test WHERE id = 1", MYSQLND_QC_ENABLE_SWITCH, MYSQLND_QC_TTL_SWITCH, 2);
$res = $mysqli->query($sql);

var_dump($res->fetch_assoc());
$res->free();

$mysqli->query("DELETE FROM test WHERE id = 1");
sleep(1);

/* Cache hit - no automatic invalidation and still valid! */
$res = $mysqli->query($sql);
var_dump($res->fetch_assoc());
$res->free();

sleep(2);

/* Cache miss - cache entry has expired */
$res = $mysqli->query($sql);
var_dump($res->fetch_assoc());
$res->free();

printf("Script runtime\t: %d seconds\n", microtime(true) - $start);
?>

Результатом выполнения данных примеров будет что-то подобное:

Default TTL     : 30 seconds
array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "1"
}
NULL
Script runtime  : 3 seconds


Pattern based caching

An application has three options for telling PECL/mysqlnd_qc whether a particular statement shall be used. The most basic approach is to cache all statements by setting mysqlnd_qc.cache_by_default = 1. This approach is often of little practical value. But it enables users to make a quick estimation about the maximum performance gains from caching. An application designed to use a cache may be able to prefix selected statements with the appropriate SQL hints. However, altering an applications source code may not always be possible or desired, for example, to avoid problems with software updates. Therefore, PECL/mysqlnd_qc allows setting a callback which decides if a query is to be cached.

The callback is installed with the mysqlnd_qc_set_is_select() function. The callback is given the statement string of every statement inspected by the plugin. Then, the callback can decide whether to cache the function. The callback is supposed to return FALSE if the statement shall not be cached. A return value of TRUE makes the plugin try to add the statement into the cache. The cache entry will be given the default TTL ( mysqlnd_qc.ttl). If the callback returns a numerical value it is used as the TTL instead of the global default.

Пример #1 Setting a callback with mysqlnd_qc_set_is_select()

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_statistics=1
<?php
/* callback which decides if query is cached */
function is_select($query) {
    static $patterns = array(
      /* true - use default from mysqlnd_qc.ttl */
      "@SELECT\s+.*\s+FROM\s+test@ismU" => true,
      /* 3 - use TTL = 3 seconds */
      "@SELECT\s+.*\s+FROM\s+news@ismU" => 3
    );

    /* check if query does match pattern */
    foreach ($patterns as $pattern => $ttl) {
        if (preg_match($pattern, $query)) {
            printf("is_select(%45s): cache\n", $query);
            return $ttl;
        }
    }
    printf("is_select(%45s): do not cache\n", $query);
    return false;
}
/* install callback */
mysqlnd_qc_set_is_select("is_select");

/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* cache put */
$mysqli->query("SELECT id FROM test WHERE id = 1");
/* cache hit */
$mysqli->query("SELECT id FROM test WHERE id = 1");
/* cache put */
$mysqli->query("SELECT * FROM test");

$stats = mysqlnd_qc_get_core_stats();
printf("Cache put: %d\n", $stats['cache_put']);
printf("Cache hit: %d\n", $stats['cache_hit']);
?>

Результатом выполнения данных примеров будет что-то подобное:

is_select(                    DROP TABLE IF EXISTS test): do not cache
is_select(                    CREATE TABLE test(id INT)): do not cache
is_select(    INSERT INTO test(id) VALUES (1), (2), (3)): do not cache
is_select(             SELECT id FROM test WHERE id = 1): cache
is_select(             SELECT id FROM test WHERE id = 1): cache
is_select(                           SELECT * FROM test): cache
Cache put: 2
Cache hit: 1

The examples callback tests if a statement string matches a pattern. If this is the case, it either returns TRUE to cache the statement using the global default TTL or an alternative TTL.

To minimize application changes the callback can put into and registered in an auto prepend file.


Slam defense

A badly designed cache can do more harm than good. In the worst case a cache can increase database server load instead of minimizing it. An overload situation can occur if a highly shared cache entry expires (cache stampeding).

Cache entries are shared and reused to a different degree depending on the storage used. The default storage handler stores cache entries in process memory. Thus, a cache entry can be reused for the life-span of a process. Other PHP processes cannot access it. If Memcache is used, a cache entry can be shared among multiple PHP processes and even among multiple machines, depending on the set up being used.

If a highly shared cache entry stored, for example, in Memcache expires, many clients gets a cache miss. Many client requests can no longer be served from the cache but try to run the underlying query on the database server. Until the cache entry is refreshed, more and more clients contact the database server. In the worst case, a total lost of service is the result.

The overload can be avoided using a storage handler which limits the reuse of cache entries to few clients. Then, at the average, its likely that only a limited number of clients will try to refresh a cache entry concurrently.

Additionally, the built-in slam defense mechanism can and should be used. If slam defense is activated an expired cache entry is given an extended life time. The first client getting a cache miss for the expired cache entry tries to refresh the cache entry within the extended life time. All other clients requesting the cache entry are temporarily served from the cache although the original TTL of the cache entry has expired. The other clients will not experience a cache miss before the extended life time is over.

Пример #1 Enabling the slam defense mechanism

mysqlnd_qc.slam_defense=1
mysqlnd_qc.slam_defense_ttl=1

The slam defense mechanism is enabled with the PHP configuration directive mysqlnd_qc.slam_defense. The extended life time of a cache entry is set with mysqlnd_qc.slam_defense_ttl.

The function mysqlnd_qc_get_core_stats() returns an array of statistics. The statistics slam_stale_refresh and slam_stale_hit are incremented if slam defense takes place.

It is not possible to give a one-fits-all recommendation on the slam defense configuration. Users are advised to monitor and test their setup and derive settings accordingly.


Finding cache candidates

A statement should be considered for caching if it is executed often and has a long run time. Cache candidates are found by creating a list of statements sorted by the product of the number of executions multiplied by the statements run time. The function mysqlnd_qc_get_query_trace_log() returns a query log which help with the task.

Collecting a query trace is a slow operation. Thus, it is disabled by default. The PHP configuration directive mysqlnd_qc.collect_query_trace is used to enable it. The functions trace contains one entry for every query issued before the function is called.

Пример #1 Collecting a query trace

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_query_trace=1
<?php
/* connect to MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");

/* dummy queries to fill the query trace */
for ($i = 0; $i < 2; $i++) {
    $res = $mysqli->query("SELECT 1 AS _one FROM DUAL");
    $res->free();
}

/* dump trace */
var_dump(mysqlnd_qc_get_query_trace_log());
?>

Результат выполнения данных примеров:

array(2) {
  [0]=>
  array(8) {
    ["query"]=>
    string(26) "SELECT 1 AS _one FROM DUAL"
    ["origin"]=>
    string(102) "#0 qc.php(7): mysqli->query('SELECT 1 AS _on...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(25)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [1]=>
  array(8) {
    ["query"]=>
    string(26) "SELECT 1 AS _one FROM DUAL"
    ["origin"]=>
    string(102) "#0 qc.php(7): mysqli->query('SELECT 1 AS _on...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(8)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
}

Assorted information is given in the trace. Among them timings and the origin of the query call. The origin property holds a code backtrace to identify the source of the query. The depth of the backtrace can be limited with the PHP configuration directive mysqlnd_qc.query_trace_bt_depth. The default depth is 3.

Пример #2 Setting the backtrace depth with the mysqlnd_qc.query_trace_bt_depth ini setting

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_query_trace=1
<?php
/* connect to MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* dummy queries to fill the query trace */
for ($i = 0; $i < 3; $i++) {
    $res = $mysqli->query("SELECT id FROM test WHERE id = " . $mysqli->real_escape_string($i));
    $res->free();
}

$trace = mysqlnd_qc_get_query_trace_log();
$summary = array();
foreach ($trace as $entry) {
    if (!isset($summary[$entry['query']])) {
        $summary[$entry['query']] = array(
            "executions" => 1,
            "time"       => $entry['run_time'] + $entry['store_time'],
        );
    } else {
        $summary[$entry['query']]['executions']++;
        $summary[$entry['query']]['time'] += $entry['run_time'] + $entry['store_time'];
    }
}

foreach ($summary as $query => $details) {
    printf("%45s: %5dms (%dx)\n",
    $query, $details['time'], $details['executions']);
}
?>

Результатом выполнения данных примеров будет что-то подобное:

                    DROP TABLE IF EXISTS test:     0ms (1x)
                    CREATE TABLE test(id INT):     0ms (1x)
    INSERT INTO test(id) VALUES (1), (2), (3):     0ms (1x)
             SELECT id FROM test WHERE id = 0:    25ms (1x)
             SELECT id FROM test WHERE id = 1:    10ms (1x)
             SELECT id FROM test WHERE id = 2:     9ms (1x)


Measuring cache efficiency

PECL/mysqlnd_qc offers three ways to measure the cache efficiency. The function mysqlnd_qc_get_normalized_query_trace_log() returns statistics aggregated by the normalized query string, mysqlnd_qc_get_cache_info() gives storage handler specific information which includes a list of all cached items, depending on the storage handler. Additionally, the core of PECL/mysqlnd_qc collects high-level summary statistics aggregated per PHP process. The high-level statistics are returned by mysqlnd_qc_get_core_stats().

The functions mysqlnd_qc_get_normalized_query_trace_log() and mysqlnd_qc_get_core_stats() will not collect data unless data collection has been enabled through their corresponding PHP configuration directives. Data collection is disabled by default for performance considerations. It is configurable with the mysqlnd_qc.time_statistics option, which determines if timing information should be collected. Collection of time statistics is enabled by default but only performed if data collection as such has been enabled. Recording time statistics causes extra system calls. In most cases, the benefit of the monitoring outweighs any potential performance penalty of the additional system calls.

Пример #1 Collecting statistics data with the mysqlnd_qc.time_statistics ini setting

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_statistics=1
<?php
/* connect to MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* dummy queries */
for ($i = 1; $i <= 4; $i++) {
    $query = sprintf("/*%s*/SELECT id FROM test WHERE id = %d", MYSQLND_QC_ENABLE_SWITCH, $i % 2);
    $res   = $mysqli->query($query);

    $res->free();
}

var_dump(mysqlnd_qc_get_core_stats());
?>

Результатом выполнения данных примеров будет что-то подобное:

array(26) {
  ["cache_hit"]=>
  string(1) "2"
  ["cache_miss"]=>
  string(1) "2"
  ["cache_put"]=>
  string(1) "2"
  ["query_should_cache"]=>
  string(1) "4"
  ["query_should_not_cache"]=>
  string(1) "3"
  ["query_not_cached"]=>
  string(1) "3"
  ["query_could_cache"]=>
  string(1) "4"
  ["query_found_in_cache"]=>
  string(1) "2"
  ["query_uncached_other"]=>
  string(1) "0"
  ["query_uncached_no_table"]=>
  string(1) "0"
  ["query_uncached_no_result"]=>
  string(1) "0"
  ["query_uncached_use_result"]=>
  string(1) "0"
  ["query_aggr_run_time_cache_hit"]=>
  string(2) "28"
  ["query_aggr_run_time_cache_put"]=>
  string(3) "900"
  ["query_aggr_run_time_total"]=>
  string(3) "928"
  ["query_aggr_store_time_cache_hit"]=>
  string(2) "14"
  ["query_aggr_store_time_cache_put"]=>
  string(2) "40"
  ["query_aggr_store_time_total"]=>
  string(2) "54"
  ["receive_bytes_recorded"]=>
  string(3) "136"
  ["receive_bytes_replayed"]=>
  string(3) "136"
  ["send_bytes_recorded"]=>
  string(2) "84"
  ["send_bytes_replayed"]=>
  string(2) "84"
  ["slam_stale_refresh"]=>
  string(1) "0"
  ["slam_stale_hit"]=>
  string(1) "0"
  ["request_counter"]=>
  int(1)
  ["process_hash"]=>
  int(1929695233)
}

For a quick overview, call mysqlnd_qc_get_core_stats(). It delivers cache usage, cache timing and traffic related statistics. Values are aggregated on a per process basis for all queries issued by any PHP MySQL API call.

Some storage handler, such as the default handler, can report cache entries, statistics related to the entries and meta data for the underlying query through the mysqlnd_qc_get_cache_info() function. Please note, that the information returned depends on the storage handler. Values are aggregated on a per process basis.

Пример #2 Example mysqlnd_qc_get_cache_info() usage

mysqlnd_qc.enable_qc=1
<?php
/* connect to MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* dummy queries to fill the query trace */
for ($i = 1; $i <= 4; $i++) {
    $query = sprintf("/*%s*/SELECT id FROM test WHERE id = %d", MYSQLND_QC_ENABLE_SWITCH, $i % 2);
    $res   = $mysqli->query($query);

    $res->free();
}

var_dump(mysqlnd_qc_get_cache_info());
?>

Результатом выполнения данных примеров будет что-то подобное:

array(4) {
  ["num_entries"]=>
  int(2)
  ["handler"]=>
  string(7) "default"
  ["handler_version"]=>
  string(5) "1.0.0"
  ["data"]=>
  array(2) {
    ["Localhost via UNIX socket
3306
root
test|/*qc=on*/SELECT id FROM test WHERE id = 1"]=>
    array(2) {
      ["statistics"]=>
      array(11) {
        ["rows"]=>
        int(1)
        ["stored_size"]=>
        int(71)
        ["cache_hits"]=>
        int(1)
        ["run_time"]=>
        int(391)
        ["store_time"]=>
        int(27)
        ["min_run_time"]=>
        int(16)
        ["max_run_time"]=>
        int(16)
        ["min_store_time"]=>
        int(8)
        ["max_store_time"]=>
        int(8)
        ["avg_run_time"]=>
        int(8)
        ["avg_store_time"]=>
        int(4)
      }
      ["metadata"]=>
      array(1) {
        [0]=>
        array(8) {
          ["name"]=>
          string(2) "id"
          ["orig_name"]=>
          string(2) "id"
          ["table"]=>
          string(4) "test"
          ["orig_table"]=>
          string(4) "test"
          ["db"]=>
          string(4) "test"
          ["max_length"]=>
          int(1)
          ["length"]=>
          int(11)
          ["type"]=>
          int(3)
        }
      }
    }
    ["Localhost via UNIX socket
3306
root
test|/*qc=on*/SELECT id FROM test WHERE id = 0"]=>
    array(2) {
      ["statistics"]=>
      array(11) {
        ["rows"]=>
        int(0)
        ["stored_size"]=>
        int(65)
        ["cache_hits"]=>
        int(1)
        ["run_time"]=>
        int(299)
        ["store_time"]=>
        int(13)
        ["min_run_time"]=>
        int(11)
        ["max_run_time"]=>
        int(11)
        ["min_store_time"]=>
        int(6)
        ["max_store_time"]=>
        int(6)
        ["avg_run_time"]=>
        int(5)
        ["avg_store_time"]=>
        int(3)
      }
      ["metadata"]=>
      array(1) {
        [0]=>
        array(8) {
          ["name"]=>
          string(2) "id"
          ["orig_name"]=>
          string(2) "id"
          ["table"]=>
          string(4) "test"
          ["orig_table"]=>
          string(4) "test"
          ["db"]=>
          string(4) "test"
          ["max_length"]=>
          int(0)
          ["length"]=>
          int(11)
          ["type"]=>
          int(3)
        }
      }
    }
  }
}

It is possible to further break down the granularity of statistics to the level of the normalized statement string. The normalized statement string is the statements string with all parameters replaced with question marks. For example, the two statements SELECT id FROM test WHERE id = 0 and SELECT id FROM test WHERE id = 1 are normalized into SELECT id FROM test WHERE id = ?. Their both statistics are aggregated into one entry for SELECT id FROM test WHERE id = ?.

Пример #3 Example mysqlnd_qc_get_normalized_query_trace_log() usage

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_normalized_query_trace=1
<?php
/* connect to MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* dummy queries to fill the query trace */
for ($i = 1; $i <= 4; $i++) {
    $query = sprintf("/*%s*/SELECT id FROM test WHERE id = %d", MYSQLND_QC_ENABLE_SWITCH, $i % 2);
    $res   = $mysqli->query($query);

    $res->free();
}

var_dump(mysqlnd_qc_get_normalized_query_trace_log());
?>

Результатом выполнения данных примеров будет что-то подобное:

array(4) {
  [0]=>
  array(9) {
    ["query"]=>
    string(25) "DROP TABLE IF EXISTS test"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [1]=>
  array(9) {
    ["query"]=>
    string(27) "CREATE TABLE test (id INT )"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [2]=>
  array(9) {
    ["query"]=>
    string(46) "INSERT INTO test (id ) VALUES (? ), (? ), (? )"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [3]=>
  array(9) {
    ["query"]=>
    string(31) "SELECT id FROM test WHERE id =?"
    ["occurences"]=>
    int(4)
    ["eligible_for_caching"]=>
    bool(true)
    ["avg_run_time"]=>
    int(179)
    ["min_run_time"]=>
    int(11)
    ["max_run_time"]=>
    int(393)
    ["avg_store_time"]=>
    int(12)
    ["min_store_time"]=>
    int(7)
    ["max_store_time"]=>
    int(25)
  }
}

The source distribution of PECL/mysqlnd_qc contains a directory web/ in which web based monitoring scripts can be found which give an example how to write a cache monitor. Please, follow the instructions given in the source.

Since PECL/mysqlnd_qc 1.1.0 it is possible to write statistics into a log file. Please, see mysqlnd_qc.collect_statistics_log_file.


Beyond TTL: user-defined storage

The query cache plugin supports the use of user-defined storage handler. User-defined storage handler can use arbitrarily complex invalidation algorithms and support arbitrary storage media.

All user-defined storage handlers have to provide a certain interface. The functions of the user-defined storage handler will be called by the core of the cache plugin. The necessary interface consists of seven public functions. Both procedural and object oriented user-defined storage handler must implement the same set of functions.

Пример #1 Using a user-defined storage handler

<?php
/* Enable default caching of all statements */
ini_set("mysqlnd_qc.cache_by_default", 1);

/* Procedural user defined storage handler functions */

$__cache = array();

function get_hash($host_info, $port, $user, $db, $query) {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    return md5(sprintf("%s%s%s%s%s", $host_info, $port, $user, $db, $query));
}

function find_query_in_cache($key) {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    if (isset($__cache[$key])) {
        $tmp = $__cache[$key];
        if ($tmp["valid_until"] < time()) {
            unset($__cache[$key]);
            $ret = NULL;
        } else {
            $ret = $__cache[$key]["data"];
        }
    } else {
        $ret = NULL;
    }

    return $ret;
}

function return_to_cache($key) {
    /*
     Called on cache hit after cached data has been processed,
     may be used for reference counting
    */
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());
}

function add_query_to_cache_if_not_exists($key, $data, $ttl, $run_time, $store_time, $row_count) {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    $__cache[$key] = array(
        "data"               => $data,
        "row_count"          => $row_count,
        "valid_until"        => time() + $ttl,
        "hits"               => 0,
        "run_time"           => $run_time,
        "store_time"         => $store_time,
        "cached_run_times"   => array(),
        "cached_store_times" => array(),
    );

    return TRUE;
}

function query_is_select($query) {
    printf("\t%s('%s'): ", __FUNCTION__, $query);

    $ret = FALSE;
    if (stristr($query, "SELECT") !== FALSE) {
        /* cache for 5 seconds */
        $ret = 5;
    }

    printf("%s\n", (FALSE === $ret) ? "FALSE" : $ret);
    return $ret;
}

function update_query_run_time_stats($key, $run_time, $store_time) {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    if (isset($__cache[$key])) {
        $__cache[$key]['hits']++;
        $__cache[$key]["cached_run_times"][] = $run_time;
        $__cache[$key]["cached_store_times"][] = $store_time;
    }
}

function get_stats($key = NULL) {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    if ($key && isset($__cache[$key])) {
        $stats = $__cache[$key];
    } else {
        $stats = array();
        foreach ($__cache as $key => $details) {
            $stats[$key] = array(
               'hits'              => $details['hits'],
               'bytes'             => strlen($details['data']),
               'uncached_run_time' => $details['run_time'],
               'cached_run_time'   => (count($details['cached_run_times']))
                                      ? array_sum($details['cached_run_times']) / count($details['cached_run_times'])
                                      : 0,
            );
        }
    }

    return $stats;
}

function clear_cache() {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    $__cache = array();
    return TRUE;
}

/* Install procedural user-defined storage handler */
if (!mysqlnd_qc_set_user_handlers("get_hash", "find_query_in_cache",
    "return_to_cache", "add_query_to_cache_if_not_exists",
    "query_is_select", "update_query_run_time_stats", "get_stats", "clear_cache")) {

        printf("Failed to install user-defined storage handler\n");
}

/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

printf("\nCache put/cache miss\n");

$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* Delete record to verify we get our data from the cache */
$mysqli->query("DELETE FROM test WHERE id = 1");

printf("\nCache hit\n");

$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

printf("\nDisplay cache statistics\n");
var_dump(mysqlnd_qc_get_cache_info());

printf("\nFlushing cache, cache put/cache miss");
var_dump(mysqlnd_qc_clear_cache());

$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();
?>

Результатом выполнения данных примеров будет что-то подобное:

        query_is_select('DROP TABLE IF EXISTS test'): FALSE
        query_is_select('CREATE TABLE test(id INT)'): FALSE
        query_is_select('INSERT INTO test(id) VALUES (1), (2)'): FALSE

Cache put/cache miss
        query_is_select('SELECT id FROM test WHERE id = 1'): 5
        get_hash(5)
        find_query_in_cache(1)
        add_query_to_cache_if_not_exists(6)
array(1) {
  ["id"]=>
  string(1) "1"
}
        query_is_select('DELETE FROM test WHERE id = 1'): FALSE

Cache hit
        query_is_select('SELECT id FROM test WHERE id = 1'): 5
        get_hash(5)
        find_query_in_cache(1)
        return_to_cache(1)
        update_query_run_time_stats(3)
array(1) {
  ["id"]=>
  string(1) "1"
}

Display cache statistics
        get_stats(0)
array(4) {
  ["num_entries"]=>
  int(1)
  ["handler"]=>
  string(4) "user"
  ["handler_version"]=>
  string(5) "1.0.0"
  ["data"]=>
  array(1) {
    ["18683c177dc89bb352b29965d112fdaa"]=>
    array(4) {
      ["hits"]=>
      int(1)
      ["bytes"]=>
      int(71)
      ["uncached_run_time"]=>
      int(398)
      ["cached_run_time"]=>
      int(4)
    }
  }
}

Flushing cache, cache put/cache miss    clear_cache(0)
bool(true)
        query_is_select('SELECT id FROM test WHERE id = 1'): 5
        get_hash(5)
        find_query_in_cache(1)
        add_query_to_cache_if_not_exists(6)
NULL


  • « Beyond TTL: user-defined storage
  • Требования »
  • PHP Manual
  • mysqlnd_qc
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения


Требования

PHP 5.3.3 or a newer version of PHP.

PECL/mysqlnd_qc is a mysqlnd plugin. It plugs into the mysqlnd library. To use you this plugin with a PHP MySQL extension, the extension (mysqli, mysql, or PDO_MYSQL) must enable the mysqlnd library.

For using the APC storage handler with PECL/mysqlnd_qc 1.0 APC 3.1.3p1-beta or newer. PECL/mysqlnd_qc 1.2 has been tested with APC 3.1.13-beta. The APC storage handler cannot be used with a shared build. You cannot use the PHP configuration directive extension to load the APC and PECL/mysqlnd_qc extensions if PECL/mysqlnd_qc will use APC as a storage handler. For using the APC storage handler, you have to statically compile PHP with APC and PECL/mysqlnd_qc support into PHP.

For using MEMCACHE storage handler: Use libmemcache 0.38 or newer. PECL/mysqlnd_qc 1.2 has been tested with libmemcache 1.4.0.

For using sqlite storage handler: Use the sqlite3 extension that bundled with PHP.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/mysqlnd_qc

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

mysqlnd_qc Опции настройки
Имя | По умолчанию | Место изменения | Список изменений
mysqlnd_qc.enable_qc | 1 | PHP_INI_SYSTEM |
mysqlnd_qc.ttl | 30 | PHP_INI_ALL |
mysqlnd_qc.cache_by_default | 0 | PHP_INI_ALL |
mysqlnd_qc.cache_no_table | 0 | PHP_INI_ALL |
mysqlnd_qc.use_request_time | 0 | PHP_INI_ALL |
mysqlnd_qc.time_statistics | 1 | PHP_INI_ALL |
mysqlnd_qc.collect_statistics | 0 | PHP_INI_ALL |
mysqlnd_qc.collect_statistics_log_file | /tmp/mysqlnd_qc.stats | PHP_INI_SYSTEM |
mysqlnd_qc.collect_query_trace | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.query_trace_bt_depth | 3 | PHP_INI_SYSTEM |
mysqlnd_qc.collect_normalized_query_trace | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.ignore_sql_comments | 1 | PHP_INI_ALL |
mysqlnd_qc.slam_defense | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.slam_defense_ttl | 30 | PHP_INI_SYSTEM |
mysqlnd_qc.std_data_copy | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.apc_prefix | qc_ | PHP_INI_ALL |
mysqlnd_qc.memc_server | 127.0.0.1 | PHP_INI_ALL |
mysqlnd_qc.memc_port | 11211 | PHP_INI_ALL |
mysqlnd_qc.sqlite_data_file | :memory: | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

mysqlnd_qc.enable_qc integer

Enables or disables the plugin. If disabled the extension will not plug into mysqlnd to proxy internal mysqlnd C API calls.

mysqlnd_qc.ttl integer

Default Time-to-Live (TTL) for cache entries in seconds.

mysqlnd_qc.cache_by_default integer

Cache all queries regardless if they begin with the SQL hint that enables caching of a query or not. Storage handler cannot overrule the setting. It is evaluated by the core of the plugin.

mysqlnd_qc.cache_no_table integer

Whether to cache queries with no table name in any of columns meta data of their result set, for example, SELECT SLEEP(1), SELECT NOW(), SELECT SUBSTRING().

mysqlnd_qc.use_request_time integer

Use PHP global request time to avoid gettimeofday() system calls? If using APC storage handler it should be set to the value of apc.use_request_time , if not warnings will be generated.

mysqlnd_qc.time_statistics integer

Collect run time and store time statistics using gettimeofday() system call? Data will be collected only if you also set mysqlnd_qc.collect_statistics = 1,

mysqlnd_qc.collect_statistics integer

Collect statistics for mysqlnd_qc_get_core_stats()? Does not influence storage handler statistics! Handler statistics can be an integral part of the handler internal storage format. Therefore, collection of some handler statistics cannot be disabled.

mysqlnd_qc.collect_statistics-log-file integer

If mysqlnd_qc.collect_statistics and mysqlnd_qc.collect_statistics_log_file are set, the plugin will dump statistics into the specified log file at every 10th web request during PHP request shutdown. The log file needs to be writable by the web server user.

Since 1.1.0.

mysqlnd_qc.collect_query_trace integer

Collect query back traces?

mysqlnd_qc.query_trace_bt_depth integer

Maximum depth/level of a query code backtrace.

mysqlnd_qc.ignore_sql_comments integer

Whether to remove SQL comments from a query string before hashing it to generate a cache key. Disable if you do not want two statemts such as SELECT /*my_source_ip=123*/ id FROM test and SELECT /*my_source_ip=456*/ id FROM test to refer to the same cache entry.

Since 1.1.0.

mysqlnd_qc.slam_defense integer

Activates handler based slam defense (cache stampeding protection) if available. Supported by Default and APC storage handler

mysqlnd_qc.slam_defense_ttl integer

TTL for stale cache entries which are served while another client updates the entries. Supported by APC storage handler.

mysqlnd_qc.collect_normalized_query_trace integer

Collect aggregated normalized query traces? The setting has no effect by default. You compile the extension using the define NORM_QUERY_TRACE_LOG to make use of the setting.

mysqlnd_qc.std_data_copy integer

Default storage handler: copy cached wire data? EXPERIMENTAL - use default setting!

mysqlnd_qc.apc_prefix string

The APC storage handler stores data in the APC user cache. The setting sets a prefix to be used for cache entries.

mysqlnd_qc.memc_server string

MEMCACHE storage handler: memcache server host.

mysqlnd_qc.memc_port integer

MEMCACHE storage handler: memcached server port.

mysqlnd_qc.sqlite_data_file string

sqlite storage handler: data file. Any setting but :memory: may be of little practical value.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SQL hint related

Пример #1 Using SQL hint constants

The query cache is controlled by SQL hints. SQL hints are used to enable and disable caching. SQL hints can be used to set the TTL of a query.

The SQL hints recognized by the query cache can be manually changed at compile time. This makes it possible to use mysqlnd_qc in environments in which the default SQL hints are already taken and interpreted by other systems. Therefore it is recommended to use the SQL hint string constants instead of manually adding the default SQL hints to the query string.

<?php
/* Use constants for maximum portability */
$query = "/*" . MYSQLND_QC_ENABLE_SWITCH . "*/SELECT id FROM test";

/* Valid but less portable: default TTL */
$query = "/*qc=on*/SELECT id FROM test";

/* Valid but less portable: per statement TTL */
$query = "/*qc=on*//*qc_ttl=5*/SELECT id FROM test";

printf("MYSQLND_QC_ENABLE_SWITCH: %s\n", MYSQLND_QC_ENABLE_SWITCH);
printf("MYSQLND_QC_DISABLE_SWITCH: %s\n", MYSQLND_QC_DISABLE_SWITCH);
printf("MYSQLND_QC_TTL_SWITCH: %s\n", MYSQLND_QC_TTL_SWITCH);
?>

Результат выполнения данных примеров:

MYSQLND_QC_ENABLE_SWITCH: qc=on
MYSQLND_QC_DISABLE_SWITCH: qc=off
MYSQLND_QC_TTL_SWITCH: qc_ttl=

MYSQLND_QC_ENABLE_SWITCH (string)
SQL hint used to enable caching of a query.
MYSQLND_QC_DISABLE_SWITCH (string)
SQL hint used to disable caching of a query if mysqlnd_qc.cache_by_default = 1.
MYSQLND_QC_TTL_SWITCH (string)
SQL hint used to set the TTL of a result set.
MYSQLND_QC_SERVER_ID_SWITCH (string)
This SQL hint should not be used in general. It is needed by PECL/mysqlnd_ms to group cache entries for one statement but originating from different physical connections. If the hint is used connection settings such as user, hostname and charset are not considered for generating a cache key of a query. Instead the given value and the query string are used as input to the hashing function that generates the key. PECL/mysqlnd_ms may, if instructed, cache results from MySQL Replication slaves. Because it can hold many connections to the slave the cache key shall not be formed from the user, hostname or other settings that may vary for the various slave connections. Instead, PECL/mysqlnd_ms provides an identifier which refers to the group of slave connections that shall be enabled to share cache entries no matter which physical slave connection was to generate the cache entry. Use of this feature outside of PECL/mysqlnd_ms is not recommended.

mysqlnd_qc_set_cache_condition() related

Пример #2 Example mysqlnd_qc_set_cache_condition() usage

The function mysqlnd_qc_set_cache_condition() allows setting conditions for automatic caching of statements which don't begin with the SQL hints necessary to manually enable caching.

<?php
/* Cache all accesses to tables with the name "new%" in schema/database "db_example" for 1 second */
if (!mysqlnd_qc_set_cache_condition(MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN, "db_example.new%", 1)) {
  die("Failed to set cache condition!");
}

$mysqli = new mysqli("host", "user", "password", "db_example", "port");
/* cached although no SQL hint given  */
$mysqli->query("SELECT id, title FROM news");

$pdo_mysql = new PDO("mysql:host=host;dbname=db_example;port=port", "user", "password");
/* not cached: no SQL hint, no pattern match */
$pdo_mysql->query("SELECT id, title FROM latest_news");
/* cached: TTL 1 second, pattern match */
$pdo_mysql->query("SELECT id, title FROM news");
?>

MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN (int)
Used as a parameter of mysqlnd_qc_set_cache_condition() to set conditions for schema based automatic caching.

Other

The plugin version number can be obtained using either MYSQLND_QC_VERSION, which is the string representation of the numerical version number, or MYSQLND_QC_VERSION_ID, which is an integer such as 10000. Developers can calculate the version number as follows.

Version (part) | Example
Major*10000 | 1*10000 = 10000
Minor*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_QC_VERSION_ID | 10000

MYSQLND_QC_VERSION (string)
Plugin version string, for example, 1.0.0-prototype.

MYSQLND_QC_VERSION_ID (int)
Plugin version number, for example, 10000.


mysqlnd_qc Функции

Содержание

  • mysqlnd_qc_clear_cache — Flush all cache contents
  • mysqlnd_qc_get_available_handlers — Returns a list of available storage handler
  • mysqlnd_qc_get_cache_info — Returns information on the current handler, the number of cache entries and cache entries, if available
  • mysqlnd_qc_get_core_stats — Statistics collected by the core of the query cache
  • mysqlnd_qc_get_normalized_query_trace_log — Returns a normalized query trace log for each query inspected by the query cache
  • mysqlnd_qc_get_query_trace_log — Returns a backtrace for each query inspected by the query cache
  • mysqlnd_qc_set_cache_condition — Set conditions for automatic caching
  • mysqlnd_qc_set_is_select — Installs a callback which decides whether a statement is cached
  • mysqlnd_qc_set_storage_handler — Change current storage handler
  • mysqlnd_qc_set_user_handlers — Sets the callback functions for a user-defined procedural storage handler


Flush all cache contents

  • « mysqlnd_qc Функции
  • mysqlnd_qc_get_available_handlers »
  • PHP Manual
  • mysqlnd_qc Функции
  • Flush all cache contents

mysqlnd_qc_clear_cache

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_clear_cache — Flush all cache contents

Описание

mysqlnd_qc_clear_cache ( void ) : bool

Flush all cache contents.

Flushing the cache is a storage handler responsibility. All built-in storage handler but the memcache storage handler support flushing the cache. The memcache storage handler cannot flush its cache contents.

User-defined storage handler may or may not support the operation.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

A return value of FALSE indicates that flushing all cache contents has failed or the operation is not supported by the active storage handler. Applications must not expect that calling the function will always flush the cache.


Returns a list of available storage handler

  • « mysqlnd_qc_clear_cache
  • mysqlnd_qc_get_cache_info »
  • PHP Manual
  • mysqlnd_qc Функции
  • Returns a list of available storage handler

mysqlnd_qc_get_available_handlers

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_available_handlers — Returns a list of available storage handler

Описание

mysqlnd_qc_get_available_handlers ( void ) : array

Which storage are available depends on the compile time configuration of the query cache plugin. The default storage handler is always available. All other storage handler must be enabled explicitly when building the extension.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array of available built-in storage handler. For each storage handler the version number and version string is given.

Примеры

Пример #1 mysqlnd_qc_get_available_handlers() example

<?php
var_dump(mysqlnd_qc_get_available_handlers());
?>

Результат выполнения данных примеров:

array(5) {
  ["default"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["user"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["APC"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["MEMCACHE"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["sqlite"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
}

Смотрите также

  • Installation
  • mysqlnd_qc_set_storage_handler() - Change current storage handler


Returns information on the current handler, the number of cache entries and cache entries, if available

  • « mysqlnd_qc_get_available_handlers
  • mysqlnd_qc_get_core_stats »
  • PHP Manual
  • mysqlnd_qc Функции
  • Returns information on the current handler, the number of cache entries and cache entries, if available

mysqlnd_qc_get_cache_info

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_cache_info — Returns information on the current handler, the number of cache entries and cache entries, if available

Описание

mysqlnd_qc_get_cache_info ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns information on the current handler, the number of cache entries and cache entries, if available. If and what data will be returned for the cache entries is subject to the active storage handler. Storage handler are free to return any data. Storage handler are recommended to return at least the data provided by the default handler, if technically possible.

The scope of the information is the PHP process. Depending on the PHP deployment model a process may serve one or more web requests.

Values are aggregated for all cache activities on a per storage handler basis. It is not possible to tell how much queries originating from mysqli, PDO_MySQL or mysql.API calls have contributed to the aggregated data values. Use mysqlnd_qc_get_core_stats() to get timing data aggregated for all storage handlers.

Array of cache information

handler string

The active storage handler.

All storage handler. Since 1.0.0.

handler_version string

The version of the active storage handler.

All storage handler. Since 1.0.0.

num_entries int

The number of cache entries. The value depends on the storage handler in use.

The default, APC and SQLite storage handler provide the actual number of cache entries.

The MEMCACHE storage handler always returns 0. MEMCACHE does not support counting the number of cache entries.

If a user defined handler is used, the number of entries of the data property is reported.

Since 1.0.0.

data array

The version of the active storage handler.

Additional storage handler dependent data on the cache entries. Storage handler are requested to provide similar and comparable information. A user defined storage handler is free to return any data.

Since 1.0.0.

The following information is provided by the default storage handler for the data property.

The data property holds a hash. The hash is indexed by the internal cache entry identifier of the storage handler. The cache entry identifier is human-readable and contains the query string leading to the cache entry. Please, see also the example below. The following data is given for every cache entry.

statistics array

Statistics of the cache entry.

Since 1.0.0.

Property | Description | Version
rows | Number of rows of the cached result set. | Since 1.0.0.
stored_size | The size of the cached result set in bytes. This is the size of the payload. The value is not suited for calculating the total memory consumption of all cache entries including the administrative overhead of the cache entries. | Since 1.0.0.
cache_hits | How often the cached entry has been returned. | Since 1.0.0.
run_time | Run time of the statement to which the cache entry belongs. This is the run time of the uncached statement. It is the time between sending the statement to MySQL receiving a reply from MySQL. Run time saved by using the query cache plugin can be calculated like this: cache_hits * ((run_time - avg_run_time) + (store_time - avg_store_time)). | Since 1.0.0.
store_time | Store time of the statements result set to which the cache entry belongs. This is the time it took to fetch and store the results of the uncached statement. | Since 1.0.0.
min_run_time | Minimum run time of the cached statement. How long it took to find the statement in the cache. | Since 1.0.0.
min_store_time | Minimum store time of the cached statement. The time taken for fetching the cached result set from the storage medium and decoding | Since 1.0.0.
avg_run_time | Average run time of the cached statement. | Since 1.0.0.
avg_store_time | Average store time of the cached statement. | Since 1.0.0.
max_run_time | Average run time of the cached statement. | Since 1.0.0.
max_store_time | Average store time of the cached statement. | Since 1.0.0.
valid_until | Timestamp when the cache entry expires. | Since 1.1.0.
metadata array

Metadata of the cache entry. This is the metadata provided by MySQL together with the result set of the statement in question. Different versions of the MySQL server may return different metadata. Unlike with some of the PHP MySQL extensions no attempt is made to hide MySQL server version dependencies and version details from the caller. Please, refer to the MySQL C API documentation that belongs to the MySQL server in use for further details.

The metadata list contains one entry for every column.

Since 1.0.0.

Property | Description | Version
name | The field name. Depending on the MySQL version this may be the fields alias name. | Since 1.0.0.
org_name | The field name. | Since 1.0.0.
table | The table name. If an alias name was used for the table, this usually holds the alias name. | Since 1.0.0.
org_table | The table name. | Since 1.0.0.
db | The database/schema name. | Since 1.0.0.
max_length | The maximum width of the field. Details may vary by MySQL server version. | Since 1.0.0.
length | The width of the field. Details may vary by MySQL server version. | Since 1.0.0.
type | The data type of the field. Details may vary by the MySQL server in use. This is the MySQL C API type constants value. It is recommended to use type constants provided by the mysqli extension to test for its meaning. You should not test for certain type values by comparing with certain numbers. | Since 1.0.0.

The APC storage handler returns the same information for the data property but no metadata. The metadata of a cache entry is set to NULL.

The MEMCACHE storage handler does not fill the data property. Statistics are not available on a per cache entry basis with the MEMCACHE storage handler.

A user defined storage handler is free to provide any data.

Примеры

Пример #1 mysqlnd_qc_get_cache_info() example

The example shows the output from the built-in default storage handler. Other storage handler may report different data.

<?php
/* Populate the cache, e.g. using mysqli */
$mysqli = new mysqli("host", "user", "password", "schema");
$mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/SELECT id FROM test");

/* Display cache information */
var_dump(mysqlnd_qc_get_cache_info());
?>

Результат выполнения данных примеров:

array(4) {
 ["num_entries"]=>
 int(1)
 ["handler"]=>
 string(7) "default"
 ["handler_version"]=>
 string(5) "1.0.0"
 ["data"]=>
 array(1) {
   ["Localhost via UNIX socket 3306 user schema|/*qc=on*/SELECT id FROM test"]=>
   array(2) {
     ["statistics"]=>
     array(11) {
       ["rows"]=>
       int(6)
       ["stored_size"]=>
       int(101)
       ["cache_hits"]=>
       int(0)
       ["run_time"]=>
       int(471)
       ["store_time"]=>
       int(27)
       ["min_run_time"]=>
       int(0)
       ["max_run_time"]=>
       int(0)
       ["min_store_time"]=>
       int(0)
       ["max_store_time"]=>
       int(0)
       ["avg_run_time"]=>
       int(0)
       ["avg_store_time"]=>
       int(0)
     }
     ["metadata"]=>
     array(1) {
       [0]=>
       array(8) {
         ["name"]=>
         string(2) "id"
         ["orig_name"]=>
         string(2) "id"
         ["table"]=>
         string(4) "test"
         ["orig_table"]=>
         string(4) "test"
         ["db"]=>
         string(4) "schema"
         ["max_length"]=>
         int(1)
         ["length"]=>
         int(11)
         ["type"]=>
         int(3)
       }
     }
   }
 }
}

Смотрите также

  • mysqlnd_qc_get_core_stats() - Statistics collected by the core of the query cache


Statistics collected by the core of the query cache

  • « mysqlnd_qc_get_cache_info
  • mysqlnd_qc_get_normalized_query_trace_log »
  • PHP Manual
  • mysqlnd_qc Функции
  • Statistics collected by the core of the query cache

mysqlnd_qc_get_core_stats

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_core_stats — Statistics collected by the core of the query cache

Описание

mysqlnd_qc_get_core_stats ( void ) : array

Returns an array of statistics collected by the core of the cache plugin. The same data fields will be reported for any storage handler because the data is collected by the core.

The PHP configuration setting mysqlnd_qc.collect_statistics controls the collection of statistics. The collection of statistics is disabled by default for performance reasons. Disabling the collection of statistics will also disable the collection of time related statistics.

The PHP configuration setting mysqlnd_qc.collect_time_statistics controls the collection of time related statistics.

The scope of the core statistics is the PHP process. Depending on your deployment model a PHP process may handle one or multiple requests.

Statistics are aggregated for all cache entries and all storage handler. It is not possible to tell how much queries originating from mysqli, PDO_MySQL or mysql API calls have contributed to the aggregated data values.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Array of core statistics

Statistic | Description | Version
cache_hit | Statement is considered cacheable and cached data has been reused. Statement is considered cacheable and a cache miss happened but the statement got cached by someone else while we process it and thus we can fetch the result from the refreshed cache. | Since 1.0.0.
cache_miss Statement is considered cacheable...

  • ... and has been added to the cache

  • ... but the PHP configuration directive setting of mysqlnd_qc.cache_no_table = 1 has prevented caching.

  • ... but an unbuffered result set is requested.

  • ... but a buffered result set was empty.

Since 1.0.0.
cache_put | Statement is considered cacheable and has been added to the cache. Take care when calculating derived statistics. Storage handler with a storage life time beyond process scope may report cache_put = 0 together with cache_hit > 0, if another process has filled the cache. You may want to use num_entries from mysqlnd_qc_get_cache_info() if the handler supports it ( default, APC). | Since 1.0.0.
query_should_cache | Statement is considered cacheable based on query string analysis. The statement may or may not be added to the cache. See also cache_put. | Since 1.0.0.
query_should_not_cache | Statement is considered not cacheable based on query string analysis. | Since 1.0.0.
query_not_cached | Statement is considered not cacheable or it is considered cachable but the storage handler has not returned a hash key for it. | Since 1.0.0.
query_could_cache Statement is considered cacheable...

  • ... and statement has been run without errors

  • ... and meta data shows at least one column in the result set

The statement may or may not be in the cache already. It may or may not be added to the cache later on. 		Since 1.0.0.
query_found_in_cache | Statement is considered cacheable and we have found it in the cache but we have not replayed the cached data yet and we have not send the result set to the client yet. This is not considered a cache hit because the client might not fetch the result or the cached data may be faulty. | Since 1.0.0.
query_uncached_other | Statement is considered cacheable and it may or may not be in the cache already but either replaying cached data has failed, no result set is available or some other error has happened.
query_uncached_no_table | Statement has not been cached because the result set has at least one column which has no table name in its meta data. An example of such a query is SELECT SLEEP(1). To cache those statements you have to change default value of the PHP configuration directive mysqlnd_qc.cache_no_table and set mysqlnd_qc.cache_no_table = 1. Often, it is not desired to cache such statements. | Since 1.0.0.
query_uncached_use_result | Statement would have been cached if a buffered result set had been used. The situation is also considered as a cache miss and cache_miss will be incremented as well. | Since 1.0.0.
query_aggr_run_time_cache_hit | Aggregated run time (ms) of all cached queries. Cached queries are those which have incremented cache_hit. | Since 1.0.0.
query_aggr_run_time_cache_put | Aggregated run time (ms) of all uncached queries that have been put into the cache. See also cache_put. | Since 1.0.0.
query_aggr_run_time_total | Aggregated run time (ms) of all uncached and cached queries that have been inspected and executed by the query cache. | Since 1.0.0.
query_aggr_store_time_cache_hit | Aggregated store time (ms) of all cached queries. Cached queries are those which have incremented cache_hit. | Since 1.0.0.
query_aggr_store_time_cache_put | Aggregated store time ( ms) of all uncached queries that have been put into the cache. See also cache_put. | Since 1.0.0.
query_aggr_store_time_total | Aggregated store time (ms) of all uncached and cached queries that have been inspected and executed by the query cache. | Since 1.0.0.
receive_bytes_recorded | Recorded incoming network traffic ( bytes) send from MySQL to PHP. The traffic may or may not have been added to the cache. The traffic is the total for all queries regardless if cached or not. | Since 1.0.0.
receive_bytes_replayed | Network traffic replayed during cache. This is the total amount of incoming traffic saved because of the usage of the query cache plugin. | Since 1.0.0.
send_bytes_recorded | Recorded outgoing network traffic ( bytes) send from MySQL to PHP. The traffic may or may not have been added to the cache. The traffic is the total for all queries regardless if cached or not. | Since 1.0.0.
send_bytes_replayed | Network traffic replayed during cache. This is the total amount of outgoing traffic saved because of the usage of the query cache plugin. | Since 1.0.0.
slam_stale_refresh | Number of cache misses which triggered serving stale data until the client causing the cache miss has refreshed the cache entry. | Since 1.0.0.
slam_stale_hit | Number of cache hits while a stale cache entry gets refreshed. | Since 1.0.0.

Примеры

Пример #1 mysqlnd_qc_get_core_stats() example

<?php
/* Enable collection of statistics - default: disabled */
ini_set("mysqlnd_qc.collect_statistics", 1);

/* Enable collection of all timing related statistics -
default: enabled but overruled by mysqlnd_qc.collect_statistics = 0 */
ini_set("mysqlnd_qc.collect_time_statistics", 1);

/* Populate the cache, e.g. using mysqli */
$mysqli = new mysqli('host', 'user', 'password', 'schema');

/* Cache miss and cache put */
$mysqli->query("/*qc=on*/SELECT id FROM test");
/* Cache hit */
$mysqli->query("/*qc=on*/SELECT id FROM test");

/* Display core statistics */
var_dump(mysqlnd_qc_get_core_stats());
?>

Результат выполнения данных примеров:

array(26) {
  ["cache_hit"]=>
  string(1) "1"
  ["cache_miss"]=>
  string(1) "1"
  ["cache_put"]=>
  string(1) "1"
  ["query_should_cache"]=>
  string(1) "2"
  ["query_should_not_cache"]=>
  string(1) "0"
  ["query_not_cached"]=>
  string(1) "0"
  ["query_could_cache"]=>
  string(1) "2"
  ["query_found_in_cache"]=>
  string(1) "1"
  ["query_uncached_other"]=>
  string(1) "0"
  ["query_uncached_no_table"]=>
  string(1) "0"
  ["query_uncached_no_result"]=>
  string(1) "0"
  ["query_uncached_use_result"]=>
  string(1) "0"
  ["query_aggr_run_time_cache_hit"]=>
  string(1) "4"
  ["query_aggr_run_time_cache_put"]=>
  string(3) "395"
  ["query_aggr_run_time_total"]=>
  string(3) "399"
  ["query_aggr_store_time_cache_hit"]=>
  string(1) "2"
  ["query_aggr_store_time_cache_put"]=>
  string(1) "8"
  ["query_aggr_store_time_total"]=>
  string(2) "10"
  ["receive_bytes_recorded"]=>
  string(2) "65"
  ["receive_bytes_replayed"]=>
  string(2) "65"
  ["send_bytes_recorded"]=>
  string(2) "29"
  ["send_bytes_replayed"]=>
  string(2) "29"
  ["slam_stale_refresh"]=>
  string(1) "0"
  ["slam_stale_hit"]=>
  string(1) "0"
  ["request_counter"]=>
  int(1)
  ["process_hash"]=>
  int(3547549858)
}

Смотрите также

  • Runtime configuration
  • mysqlnd_qc.collect_statistics
  • mysqlnd_qc.time_statistics
  • mysqlnd_qc_get_cache_info() - Returns information on the current handler, the number of cache entries and cache entries, if available


Returns a normalized query trace log for each query inspected by the query cache

  • « mysqlnd_qc_get_core_stats
  • mysqlnd_qc_get_query_trace_log »
  • PHP Manual
  • mysqlnd_qc Функции
  • Returns a normalized query trace log for each query inspected by the query cache

mysqlnd_qc_get_normalized_query_trace_log

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_normalized_query_trace_log — Returns a normalized query trace log for each query inspected by the query cache

Описание

mysqlnd_qc_get_normalized_query_trace_log ( void ) : array

Returns a normalized query trace log for each query inspected by the query cache. The collection of the trace log is disabled by default. To collect the trace log you have to set the PHP configuration directive mysqlnd_qc.collect_normalized_query_trace to 1

Entries in the trace log are grouped by the normalized query statement. The normalized query statement is the query statement with all statement parameter values being replaced with a question mark. For example, the two statements SELECT id FROM test WHERE id = 1 and SELECT id FROM test WHERE id = 2 are normalized as SELECT id FROM test WHERE id = ?. Whenever a statement is inspected by the query cache which matches the normalized statement pattern, its statistics are grouped by the normalized statement string.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An array of query log. Every list entry contains the normalized query stringand further detail information.

Key | Description
query | Normalized statement string.
occurences | How many statements have matched the normalized statement string in addition to the one which has created the log entry. The value is zero if a statement has been normalized, its normalized representation has been added to the log but no further queries inspected by PECL/mysqlnd_qc have the same normalized statement string.
eligible_for_caching | Whether the statement could be cached. An statement eligible for caching has not necessarily been cached. It not possible to tell for sure if or how many cached statement have contributed to the aggregated normalized statement log entry. However, comparing the minimum and average run time one can make an educated guess.
avg_run_time | The average run time of all queries contributing to the query log entry. The run time is the time between sending the query statement to MySQL and receiving an answer from MySQL.
avg_store_time | The average store time of all queries contributing to the query log entry. The store time is the time needed to fetch a statements result set from the server to the client and, storing it on the client.
min_run_time | The minimum run time of all queries contributing to the query log entry.
min_store_time | The minimum store time of all queries contributing to the query log entry.
max_run_time | The maximum run time of all queries contributing to the query log entry.
max_store_time | The maximum store time of all queries contributing to the query log entry.

Примеры

Пример #1 mysqlnd_qc_get_normalized_query_trace_log() example

mysqlnd_qc.collect_normalized_query_trace=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

/* not cached */
$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* cache put */
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

/* cache hit */
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

var_dump(mysqlnd_qc_get_normalized_query_trace_log());
?>

Результат выполнения данных примеров:

array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(4) {
  [0]=>
  array(9) {
    ["query"]=>
    string(25) "DROP TABLE IF EXISTS test"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [1]=>
  array(9) {
    ["query"]=>
    string(27) "CREATE TABLE test (id INT )"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [2]=>
  array(9) {
    ["query"]=>
    string(40) "INSERT INTO test (id ) VALUES (? ), (? )"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [3]=>
  array(9) {
    ["query"]=>
    string(31) "SELECT id FROM test WHERE id =?"
    ["occurences"]=>
    int(2)
    ["eligible_for_caching"]=>
    bool(true)
    ["avg_run_time"]=>
    int(159)
    ["min_run_time"]=>
    int(12)
    ["max_run_time"]=>
    int(307)
    ["avg_store_time"]=>
    int(10)
    ["min_store_time"]=>
    int(8)
    ["max_store_time"]=>
    int(13)
  }
}

Смотрите также

  • Runtime configuration
  • mysqlnd_qc.collect_normalized_query_trace
  • mysqlnd_qc.time_statistics
  • mysqlnd_qc_get_query_trace_log() - Returns a backtrace for each query inspected by the query cache


Returns a backtrace for each query inspected by the query cache

  • « mysqlnd_qc_get_normalized_query_trace_log
  • mysqlnd_qc_set_cache_condition »
  • PHP Manual
  • mysqlnd_qc Функции
  • Returns a backtrace for each query inspected by the query cache

mysqlnd_qc_get_query_trace_log

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_query_trace_log — Returns a backtrace for each query inspected by the query cache

Описание

mysqlnd_qc_get_query_trace_log ( void ) : array

Returns a backtrace for each query inspected by the query cache. The collection of the backtrace is disabled by default. To collect the backtrace you have to set the PHP configuration directive mysqlnd_qc.collect_query_trace to 1

The maximum depth of the backtrace is limited to the depth set with the PHP configuration directive mysqlnd_qc.query_trace_bt_depth.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An array of query backtrace. Every list entry contains the query string, a backtrace and further detail information.

Key | Description
query | Query string.
origin | Code backtrace.
run_time | Query run time in milliseconds. The collection of all times and the necessary gettimeofday system calls can be disabled by setting the PHP configuration directive mysqlnd_qc.time_statistics to 0
store_time | Query result set store time in milliseconds. The collection of all times and the necessary gettimeofday system calls can be disabled by setting the PHP configuration directive mysqlnd_qc.time_statistics to 0
eligible_for_caching | TRUE if query is cacheable otherwise FALSE.
no_table | TRUE if the query has generated a result set and at least one column from the result set has no table name set in its metadata. This is usually the case with queries which one probably do not want to cache such as SELECT SLEEP(1). By default any such query will not be added to the cache. See also PHP configuration directive mysqlnd_qc.cache_no_table.
was_added | TRUE if the query result has been put into the cache, otherwise FALSE.
was_already_in_cache | TRUE if the query result would have been added to the cache if it was not already in the cache (cache hit). Otherwise FALSE.

Примеры

Пример #1 mysqlnd_qc_get_query_trace_log() example

mysqlnd_qc.collect_query_trace=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

/* not cached */
$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* cache put */
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

/* cache hit */
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

var_dump(mysqlnd_qc_get_query_trace_log());
?>

Результат выполнения данных примеров:

array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(6) {
  [0]=>
  array(8) {
    ["query"]=>
    string(25) "DROP TABLE IF EXISTS test"
    ["origin"]=>
    string(102) "#0 qc.php(4): mysqli->query('DROP TABLE IF E...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [1]=>
  array(8) {
    ["query"]=>
    string(25) "CREATE TABLE test(id INT)"
    ["origin"]=>
    string(102) "#0 qc.php(5): mysqli->query('CREATE TABLE te...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [2]=>
  array(8) {
    ["query"]=>
    string(36) "INSERT INTO test(id) VALUES (1), (2)"
    ["origin"]=>
    string(102) "#0 qc.php(6): mysqli->query('INSERT INTO tes...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [3]=>
  array(8) {
    ["query"]=>
    string(32) "SELECT id FROM test WHERE id = 1"
    ["origin"]=>
    string(102) "#0 qc.php(9): mysqli->query('SELECT id FROM ...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(25)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [4]=>
  array(8) {
    ["query"]=>
    string(41) "/*qc=on*/SELECT id FROM test WHERE id = 2"
    ["origin"]=>
    string(103) "#0 qc.php(14): mysqli->query('/*qc=on*/SELECT...')
#1 {main}"
    ["run_time"]=>
    int(311)
    ["store_time"]=>
    int(13)
    ["eligible_for_caching"]=>
    bool(true)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(true)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [5]=>
  array(8) {
    ["query"]=>
    string(41) "/*qc=on*/SELECT id FROM test WHERE id = 2"
    ["origin"]=>
    string(103) "#0 qc.php(19): mysqli->query('/*qc=on*/SELECT...')
#1 {main}"
    ["run_time"]=>
    int(13)
    ["store_time"]=>
    int(8)
    ["eligible_for_caching"]=>
    bool(true)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(true)
  }
}

Смотрите также

  • Runtime configuration
  • mysqlnd_qc.collect_query_trace
  • mysqlnd_qc.query_trace_bt_depth
  • mysqlnd_qc.time_statistics
  • mysqlnd_qc.cache_no_table
  • mysqlnd_qc_get_normalized_query_trace_log() - Returns a normalized query trace log for each query inspected by the query cache


Set conditions for automatic caching

  • « mysqlnd_qc_get_query_trace_log
  • mysqlnd_qc_set_is_select »
  • PHP Manual
  • mysqlnd_qc Функции
  • Set conditions for automatic caching

mysqlnd_qc_set_cache_condition

(PECL mysqlnd_qc >= 1.1.0)

mysqlnd_qc_set_cache_condition — Set conditions for automatic caching

Описание

mysqlnd_qc_set_cache_condition ( int $condition_type , mixed $condition , mixed $condition_option ) : bool

Sets a condition for automatic caching of statements which do not contain the necessary SQL hints to enable caching of them.

Список параметров

condition_type

Type of the condition. The only allowed value is MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN.

condition

Parameter for the condition set with condition_type. Parameter type and structure depend on condition_type

If condition_type equals MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN condition must be a string. The string sets a pattern. Statements are cached if table and database meta data entry of their result sets match the pattern. The pattern is checked for a match with the db and org_table meta data entries provided by the underlying MySQL client server library. Please, check the MySQL Reference manual for details about the two entries. The db and org_table values are concatenated with a dot (.) before matched against condition. Pattern matching supports the wildcards % and _. The wildcard % will match one or many arbitrary characters. _ will match one arbitrary character. The escape symbol is backslash.

condition_option

Option for condition. Type and structure depend on condition_type.

If condition_type equals MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN condition_options is the TTL to be used.

Примеры

Пример #1 mysqlnd_qc_set_cache_condition() example

<?php
/* Cache all accesses to tables with the name "new%" in schema/database "db_example" for 1 second */
if (!mysqlnd_qc_set_cache_condition(MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN, "db_example.new%", 1)) {
  die("Failed to set cache condition!");
}

$mysqli = new mysqli("host", "user", "password", "db_example", "port");
/* cached although no SQL hint given  */
$mysqli->query("SELECT id, title FROM news");

$pdo_mysql = new PDO("mysql:host=host;dbname=db_example;port=port", "user", "password");
/* not cached: no SQL hint, no pattern match */
$pdo_mysql->query("SELECT id, title FROM latest_news");
/* cached: TTL 1 second, pattern match */
$pdo_mysql->query("SELECT id, title FROM news");
?>

Возвращаемые значения

Returns TRUE on success or FALSE on FAILURE.

Смотрите также

  • Quickstart: pattern based caching


Installs a callback which decides whether a statement is cached

  • « mysqlnd_qc_set_cache_condition
  • mysqlnd_qc_set_storage_handler »
  • PHP Manual
  • mysqlnd_qc Функции
  • Installs a callback which decides whether a statement is cached

mysqlnd_qc_set_is_select

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_set_is_select — Installs a callback which decides whether a statement is cached

Описание

mysqlnd_qc_set_is_select ( string $callback ) : mixed

Installs a callback which decides whether a statement is cached.

There are several ways of hinting PELC/mysqlnd_qc to cache a query. By default, PECL/mysqlnd_qc attempts to cache a if caching of all statements is enabled or the query string begins with a certain SQL hint. The plugin internally calls a function named is_select() to find out. This internal function can be replaced with a user-defined callback. Then, the user-defined callback is responsible to decide whether the plugin attempts to cache a statement. Because the internal function is replaced with the callback, the callback gains full control. The callback is free to ignore the configuration setting mysqlnd_qc.cache_by_default and SQL hints.

The callback is invoked for every statement inspected by the plugin. It is given the statements string as a parameter. The callback returns FALSE if the statement shall not be cached. It returns TRUE to make the plugin attempt to cache the statements result set, if any. A so-created cache entry is given the default TTL set with the PHP configuration directive mysqlnd_qc.ttl. If a different TTL shall be used, the callback returns a numeric value to be used as the TTL.

The internal is_select function is part of the internal cache storage handler interface. Thus, a user-defined storage handler offers the same capabilities.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 mysqlnd_qc_set_is_select() example

<?php
/* callback which decides if query is cached */
function is_select($query) {
  static $patterns = array(
   /* true - use default from mysqlnd_qc.ttl */
   "@SELECT\s+.*\s+FROM\s+test@ismU" => true,
   /* 3 - use TTL = 3 seconds */
   "@SELECT\s+.*\s+FROM\s+news@ismU" => 3
  );
  /* check if query does match pattern */
  foreach ($patterns as $pattern => $ttl) {
    if (preg_match($pattern, $query)) {
      printf("is_select(%45s): cache\n", $query);
      return $ttl;
    }
  }
  printf("is_select(%45s): do not cache\n", $query);
  return false;
}
mysqlnd_qc_set_is_select("is_select");

/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* cache put */
$mysqli->query("SELECT id FROM test WHERE id = 1");
/* cache hit */
$mysqli->query("SELECT id FROM test WHERE id = 1");
/* cache put */
$mysqli->query("SELECT * FROM test");
?>

Результат выполнения данных примеров:

is_select(                    DROP TABLE IF EXISTS test): do not cache
is_select(                    CREATE TABLE test(id INT)): do not cache
is_select(    INSERT INTO test(id) VALUES (1), (2), (3)): do not cache
is_select(             SELECT id FROM test WHERE id = 1): cache
is_select(             SELECT id FROM test WHERE id = 1): cache
is_select(                           SELECT * FROM test): cache

Смотрите также

  • Runtime configuration
  • mysqlnd_qc.ttl
  • mysqlnd_qc.cache_by_default
  • mysqlnd_qc_set_user_handlers() - Sets the callback functions for a user-defined procedural storage handler


Change current storage handler

  • « mysqlnd_qc_set_is_select
  • mysqlnd_qc_set_user_handlers »
  • PHP Manual
  • mysqlnd_qc Функции
  • Change current storage handler

mysqlnd_qc_set_storage_handler

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_set_storage_handler — Change current storage handler

Описание

mysqlnd_qc_set_storage_handler ( string $handler ) : bool

Sets the storage handler used by the query cache. A list of available storage handler can be obtained from mysqlnd_qc_get_available_handlers(). Which storage are available depends on the compile time configuration of the query cache plugin. The default storage handler is always available. All other storage handler must be enabled explicitly when building the extension.

Список параметров

handler

Handler can be of type string representing the name of a built-in storage handler or an object of type mysqlnd_qc_handler_default. The names of the built-in storage handler are default, APC, MEMCACHE, sqlite.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

If changing the storage handler fails a catchable fatal error will be thrown. The query cache cannot operate if the previous storage handler has been shutdown but no new storage handler has been installed.

Примеры

Пример #1 mysqlnd_qc_set_storage_handler() example

The example shows the output from the built-in default storage handler. Other storage handler may report different data.

<?php
var_dump(mysqlnd_qc_set_storage_handler("memcache"));

if (true === mysqlnd_qc_set_storage_handler("default"))
  printf("Default storage handler activated");

/* Catchable fatal error */
var_dump(mysqlnd_qc_set_storage_handler("unknown"));
?>

Результат выполнения данных примеров:

bool(true)
Default storage handler activated
Catchable fatal error: mysqlnd_qc_set_storage_handler(): Unknown handler 'unknown' in (file) on line (line)

Смотрите также

  • Installation
  • mysqlnd_qc_get_available_handlers() - Returns a list of available storage handler


Sets the callback functions for a user-defined procedural storage handler

  • « mysqlnd_qc_set_storage_handler
  • Change History »
  • PHP Manual
  • mysqlnd_qc Функции
  • Sets the callback functions for a user-defined procedural storage handler

mysqlnd_qc_set_user_handlers

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_set_user_handlers — Sets the callback functions for a user-defined procedural storage handler

Описание

mysqlnd_qc_set_user_handlers ( string $get_hash , string $find_query_in_cache , string $return_to_cache , string $add_query_to_cache_if_not_exists , string $query_is_select , string $update_query_run_time_stats , string $get_stats , string $clear_cache ) : bool

Sets the callback functions for a user-defined procedural storage handler.

Список параметров

get_hash

Name of the user function implementing the storage handler get_hash functionality.

find_query_in_cache

Name of the user function implementing the storage handler find_in_cache functionality.

return_to_cache

Name of the user function implementing the storage handler return_to_cache functionality.

add_query_to_cache_if_not_exists

Name of the user function implementing the storage handler add_query_to_cache_if_not_exists functionality.

query_is_select

Name of the user function implementing the storage handler query_is_select functionality.

update_query_run_time_stats

Name of the user function implementing the storage handler update_query_run_time_stats functionality.

get_stats

Name of the user function implementing the storage handler get_stats functionality.

clear_cache

Name of the user function implementing the storage handler clear_cache functionality.

Возвращаемые значения

Returns TRUE on success or FALSE on FAILURE.

Смотрите также

  • Procedural user-defined storage handler example


Change History

Содержание

  • PECL/mysqlnd_qc 1.2 series
  • PECL/mysqlnd_qc 1.1 series
  • PECL/mysqlnd_qc 1.0 series

This change history is a high level summary of selected changes that may impact applications and/or break backwards compatibility.

See also the CHANGES file in the source distribution for a complete list of changes.


PECL/mysqlnd_qc 1.2 series

1.2.0 - alpha

  • Release date: 03/2013
  • Motto/theme: PHP 5.5 compatibility

Feature changes

  • Update build for PHP 5.5 (Credits: Remi Collet)

  • APC storage handler update

    • Fix build for APC 3.1.13-beta and trunk

  • Introduced MYSQLND_QC_VERSION and MYSQLND_QC_VERSION_ID.


PECL/mysqlnd_qc 1.1 series

1.1.0 - stable

  • Release date: 04/2012
  • Motto/theme: PHP 5.4 compatibility, schema pattern based caching and mysqlnd_ms support

1.1.0 - beta

  • Release date: 04/2012
  • Motto/theme: PHP 5.4 compatibility, schema pattern based caching and mysqlnd_ms support

1.1.0 - alpha

  • Release date: 04/2012
  • Motto/theme: PHP 5.4 compatibility, schema pattern based caching and mysqlnd_ms support

Feature changes

  • APC storage handler update

    • Fix build for APC 3.1.9+
    • Note: Use of the APC storage handler is currently not recommended due to stability issues of APC itself.

  • New PHP configuration directives

    • mysqlnd_qc.collect_statistics_log_file. Aggregated cache statistics log file written after every 10th request served by the PHP process.
    • mysqlnd_qc.ignore_sql_comments. Control whether SQL comments are ignored for cache key hash generation.

  • New constants and SQL hints

    • MYSQLND_QC_SERVER_ID_SWITCH allows grouping of cache entries from different physical connections. This is needed by PECL/mysqlnd_ms.
    • MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN to be used with mysqlnd_qc_set_cache_condition().

  • New function mysqlnd_qc_set_cache_condition() for built-in schema pattern based caching. Likely to support a wider range of conditions in the future.

  • Report valid_until timestamp for cache entries of the default handler through mysqlnd_qc_get_cache_info().

  • Include charset number for cache entry hashing. This should prevent serving result sets which have the wrong charset.

    API change: get_hash_key expects new "charsetnr" (int) parameter after "port".

  • API change: changing is_select() signature from bool is_select() to mixed is_select(). Mixed can be either boolean or array(long ttl, string server_id). This is needed by PECL/mysqlnd_ms.

Other

  • Support acting as a cache backend for PECL/mysqlnd_ms 1.3.0-beta or later to transparently replace MySQL Replication slave reads with cache accesses, if the user explicitly allows.

Bug fixes

  • Fixed Bug #59959 (config.m4, wrong library - 64bit memcached handler builds) (Credits: Remi Collet)


PECL/mysqlnd_qc 1.0 series

1.0.1-stable

  • Release date: 12/2010
  • Motto/theme: Prepared statement support

Added support for Prepared statements and unbuffered queries.

1.0.0-beta

  • Release date: 07/2010
  • Motto/theme: TTL-based cache with various storage options (Memcache, APC, SQLite, user-defined)

Initial public release of the transparent TTL-based query result cache. Flexible storage of cached results. Various storage media supported.


Mysqlnd user handler plugin

  • Введение
  • Quickstart and Examples
    • Setup
    • How it works
    • Installing a proxy
    • Basic query monitoring
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • MysqlndUhConnection — The MysqlndUhConnection class
    • MysqlndUhConnection::changeUser — Changes the user of the specified mysqlnd database connection
    • MysqlndUhConnection::charsetName — Returns the default character set for the database connection
    • MysqlndUhConnection::close — Closes a previously opened database connection
    • MysqlndUhConnection::connect — Open a new connection to the MySQL server
    • MysqlndUhConnection::__construct — The __construct purpose
    • MysqlndUhConnection::endPSession — End a persistent connection
    • MysqlndUhConnection::escapeString — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
    • MysqlndUhConnection::getAffectedRows — Gets the number of affected rows in a previous MySQL operation
    • MysqlndUhConnection::getErrorNumber — Returns the error code for the most recent function call
    • MysqlndUhConnection::getErrorString — Returns a string description of the last error
    • MysqlndUhConnection::getFieldCount — Returns the number of columns for the most recent query
    • MysqlndUhConnection::getHostInformation — Returns a string representing the type of connection used
    • MysqlndUhConnection::getLastInsertId — Returns the auto generated id used in the last query
    • MysqlndUhConnection::getLastMessage — Retrieves information about the most recently executed query
    • MysqlndUhConnection::getProtocolInformation — Returns the version of the MySQL protocol used
    • MysqlndUhConnection::getServerInformation — Returns the version of the MySQL server
    • MysqlndUhConnection::getServerStatistics — Gets the current system status
    • MysqlndUhConnection::getServerVersion — Returns the version of the MySQL server as an integer
    • MysqlndUhConnection::getSqlstate — Returns the SQLSTATE error from previous MySQL operation
    • MysqlndUhConnection::getStatistics — Returns statistics about the client connection
    • MysqlndUhConnection::getThreadId — Returns the thread ID for the current connection
    • MysqlndUhConnection::getWarningCount — Returns the number of warnings from the last query for the given link
    • MysqlndUhConnection::init — Initialize mysqlnd connection
    • MysqlndUhConnection::killConnection — Asks the server to kill a MySQL thread
    • MysqlndUhConnection::listFields — List MySQL table fields
    • MysqlndUhConnection::listMethod — Wrapper for assorted list commands
    • MysqlndUhConnection::moreResults — Check if there are any more query results from a multi query
    • MysqlndUhConnection::nextResult — Prepare next result from multi_query
    • MysqlndUhConnection::ping — Pings a server connection, or tries to reconnect if the connection has gone down
    • MysqlndUhConnection::query — Performs a query on the database
    • MysqlndUhConnection::queryReadResultsetHeader — Read a result set header
    • MysqlndUhConnection::reapQuery — Get result from async query
    • MysqlndUhConnection::refreshServer — Flush or reset tables and caches
    • MysqlndUhConnection::restartPSession — Restart a persistent mysqlnd connection
    • MysqlndUhConnection::selectDb — Selects the default database for database queries
    • MysqlndUhConnection::sendClose — Sends a close command to MySQL
    • MysqlndUhConnection::sendQuery — Sends a query to MySQL
    • MysqlndUhConnection::serverDumpDebugInformation — Dump debugging information into the log for the MySQL server
    • MysqlndUhConnection::setAutocommit — Turns on or off auto-committing database modifications
    • MysqlndUhConnection::setCharset — Sets the default client character set
    • MysqlndUhConnection::setClientOption — Sets a client option
    • MysqlndUhConnection::setServerOption — Sets a server option
    • MysqlndUhConnection::shutdownServer — The shutdownServer purpose
    • MysqlndUhConnection::simpleCommand — Sends a basic COM_* command
    • MysqlndUhConnection::simpleCommandHandleResponse — Process a response for a basic COM_* command send to the client
    • MysqlndUhConnection::sslSet — Used for establishing secure connections using SSL
    • MysqlndUhConnection::stmtInit — Initializes a statement and returns a resource for use with mysqli_statement::prepare
    • MysqlndUhConnection::storeResult — Transfers a result set from the last query
    • MysqlndUhConnection::txCommit — Commits the current transaction
    • MysqlndUhConnection::txRollback — Rolls back current transaction
    • MysqlndUhConnection::useResult — Initiate a result set retrieval
  • MysqlndUhPreparedStatement — The MysqlndUhPreparedStatement class
    • MysqlndUhPreparedStatement::__construct — Результат __construct
    • MysqlndUhPreparedStatement::execute — Выполняет подготовленный запрос
    • MysqlndUhPreparedStatement::prepare — Подготавливает утверждение SQL для выполнения
  • Mysqlnd_uh Функции
    • mysqlnd_uh_convert_to_mysqlnd — Converts a MySQL connection handle into a mysqlnd connection handle
    • mysqlnd_uh_set_connection_proxy — Installs a proxy for mysqlnd connections
    • mysqlnd_uh_set_statement_proxy — Installs a proxy for mysqlnd statements
  • Change History
    • PECL/mysqlnd_uh 1.0 series


Введение

The mysqlnd user handler plugin (mysqlnd_uh) allows users to set hooks for most internal calls of the MySQL native driver for PHP (mysqlnd). Mysqlnd and its plugins, including PECL/mysqlnd_uh, operate on a layer beneath the PHP MySQL extensions. A mysqlnd plugin can be considered as a proxy between the PHP MySQL extensions and the MySQL server as part of the PHP executable on the client-side. Because the plugins operates on their own layer below the PHP MySQL extensions, they can monitor and change application actions without requiring application changes. If the PHP MySQL extensions (mysqli, mysql, PDO_MYSQL) are compiled to use mysqlnd this can be used for:

  • Monitoring

    • Queries executed by any of the PHP MySQL extensions

    • Prepared statements executing by any of the PHP MySQL extensions

  • Auditing

    • Detection of database usage

    • SQL injection protection using black and white lists

  • Assorted

    • Load Balancing connections

The MySQL native driver for PHP (mysqlnd) features an internal plugin C API. C plugins, such as the mysqlnd user handler plugin, can extend the functionality of mysqlnd. PECL/mysqlnd_uh makes parts of the internal plugin C API available to the PHP user for plugin development with PHP.

Замечание: Status

The mysqlnd user handler plugin is in alpha status. Take appropriate care before using it in production environments.

Security considerations

PECL/mysqlnd_uh gives users access to MySQL user names, MySQL password used by any of the PHP MySQL extensions to connect to MySQL. It allows monitoring of all queries and prepared statements exposing the statement string to the user. Therefore, the extension should be installed with care. The PHP_INI_SYSTEM configuration setting mysqlnd_uh.enable can be used to prevent users from hooking mysqlnd calls.

Code obfuscators and similar technologies are not suitable to prevent monitoring of mysqlnd library activities if PECL/mysqlnd_uh is made available and the user can install a proxy, for example, using auto_prepend_file.

Documentation note

Many of the mysqlnd_uh functions are briefly described because the mysqli extension is a thin abstraction layer on top of the MySQL C API that the mysqlnd library provides. Therefore, the corresponding mysqli documentation (along with the MySQL reference manual) can be consulted to receive more information about a particular function.

On the name

The shortcut mysqlnd_uh stands for mysqlnd user handler, and has been the name since early development.


Quickstart and Examples

Содержание

  • Setup
  • How it works
  • Installing a proxy
  • Basic query monitoring

The mysqlnd user handler plugin can be understood as a client-side proxy for all PHP MySQL extensions (mysqli, mysql, PDO_MYSQL), if they are compiled to use the mysqlnd library. The extensions use the mysqlnd library internally, at the C level, to communicate with the MySQL server. PECL/mysqlnd_uh allows it to hook many mysqlnd calls. Therefore, most activities of the PHP MySQL extensions can be monitored.

Because monitoring happens at the level of the library, at a layer below the application, it is possible to monitor applications without changing them.

On the C level, the mysqlnd library is structured in modules or classes. The extension hooks almost all methods of the mysqlnd internal connection class and exposes them through the user space class MysqlndUhConnection. Some few methods of the mysqlnd internal statement class are made available to the PHP user with the class MysqlndUhPreparedStatement. By subclassing the classes MysqlndUhConnection and MysqlndUhPreparedStatement users get access to mysqlnd internal function calls.

Замечание:

The internal mysqlnd function calls are not designed to be exposed to the PHP user. Manipulating their activities may cause PHP to crash or leak memory. Often, this is not considered a bug. Please, keep in mind that you are accessing C library functions through PHP which are expected to take certain actions, which you may not be able to emulate in user space. Therefore, it is strongly recommended to always call the parent method implementation when subclassing MysqlndUhConnection or MysqlndUhPreparedStatement. To prevent the worst case, the extension performs some sanity checks. Please, see also the Mysqlnd_uh Опции настройки.


Setup

The plugin is implemented as a PHP extension. See the installation instructions to install the » PECL/mysqlnd_uh extension. Then, load the extension into PHP and activate the plugin in the PHP configuration file using the PHP configuration directive named mysqlnd_uh.enable. The below example shows the default settings of the extension.

Пример #1 Enabling the plugin (php.ini)

mysqlnd_uh.enable=1
mysqlnd_uh.report_wrong_types=1


How it works

This describes the background and inner workings of the mysqlnd_uh extension.

Two classes are provided by the extension: MysqlndUhConnection and MysqlndUhPreparedStatement. MysqlndUhConnection lets you access almost all methods of the mysqlnd internal connection class. The latter exposes some selected methods of the mysqlnd internal statement class. For example, MysqlndUhConnection::connect() maps to the mysqlnd library C function mysqlnd_conn__connect.

As a mysqlnd plugin, the PECL/mysqlnd_uh extension replaces mysqlnd library C functions with its own functions. Whenever a PHP MySQL extension compiled to use mysqlnd calls a mysqlnd function, the functions installed by the plugin are executed instead of the original mysqlnd ones. For example, mysqli_connect() invokes mysqlnd_conn__connect, so the connect function installed by PECL/mysqlnd_uh will be called. The functions installed by PECL/mysqlnd_uh are the methods of the built-in classes.

The built-in PHP classes and their methods do nothing but call their mysqlnd C library counterparts, to behave exactly like the original mysqlnd function they replace. The code below illustrates in pseudo-code what the extension does.

Пример #1 Pseudo-code: what a built-in class does

class MysqlndUhConnection {
  public function connect(($conn, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
    MYSQLND* c_mysqlnd_connection = convert_from_php_to_c($conn);
    ...
    return call_c_function(mysqlnd_conn__connect(c_mysqlnd_connection, ...));
  }
}

The build-in classes behave like a transparent proxy. It is possible for you to replace the proxy with your own. This is done by subclassing MysqlndUhConnection or MysqlndUhPreparedStatement to extend the functionality of the proxy, followed by registering a new proxy object. Proxy objects are installed by mysqlnd_uh_set_connection_proxy() and mysqlnd_uh_set_statement_proxy().

Пример #2 Installing a proxy

<?php
class proxy extends MysqlndUhConnection {
 public function connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
?>

Результат выполнения данного примера:

proxy::connect(array (
  0 => NULL,
  1 => 'localhost',
  2 => 'root',
  3 => '',
  4 => 'test',
  5 => 3306,
  6 => NULL,
  7 => 131072,
))
proxy::connect returns true


Installing a proxy

The extension provides two built-in classes: MysqlndUhConnection and MysqlndUhPreparedStatement. The classes are used for hooking mysqlnd library calls. Their methods correspond to mysqlnd internal functions. By default they act like a transparent proxy and do nothing but call their mysqlnd counterparts. By subclassing the classes you can install your own proxy to monitor mysqlnd.

See also the How it works guide to learn about the inner workings of this extension.

Connection proxies are objects of the type MysqlndUhConnection. Connection proxy objects are installed by mysqlnd_uh_set_connection_proxy(). If you install the built-in class MysqlndUhConnection as a proxy, nothing happens. It behaves like a transparent proxy.

Пример #1 Proxy registration, mysqlnd_uh.enable=1

<?php
mysqlnd_uh_set_connection_proxy(new MysqlndUhConnection());
$mysqli = new mysqli("localhost", "root", "", "test");
?>

The PHP_INI_SYSTEM configuration setting mysqlnd_uh.enable controls whether a proxy may be set. If disabled, the extension will throw errors of type E_WARNING

Пример #2 Proxy installation disabled

mysqlnd_uh.enable=0
<?php
mysqlnd_uh_set_connection_proxy(new MysqlndUhConnection());
$mysqli = new mysqli("localhost", "root", "", "test");
?>

Результат выполнения данного примера:

PHP Warning:  MysqlndUhConnection::__construct(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enabled = false.  You must not use any of the base classes in %s on line %d
PHP Warning:  mysqlnd_uh_set_connection_proxy(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. The proxy has not been installed  in %s on line %d

To monitor mysqlnd, you have to write your own proxy object subclassing MysqlndUhConnection. Please, see the function reference for a the list of methods that can be subclassed. Alternatively, you can use reflection to inspect the built-in MysqlndUhConnection.

Create a new class proxy. Derive it from the built-in class MysqlndUhConnection. Replace the MysqlndUhConnection::connect(). method. Print out the host parameter value passed to the method. Make sure that you call the parent implementation of the connect method. Failing to do so may give unexpected and undesired results, including memory leaks and crashes.

Register your proxy and open three connections using the PHP MySQL extensions mysqli, mysql, PDO_MYSQL. If the extensions have been compiled to use the mysqlnd library, the proxy::connect method will be called three times, once for each connection opened.

Пример #3 Connection proxy

<?php
class proxy extends MysqlndUhConnection {
  public function connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
   printf("Connection opened to '%s'\n", $host);
   /* Always call the parent implementation! */
   return parent::connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags);
  }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysql = mysql_connect("localhost", "root", "");
$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "");
?>

Результат выполнения данного примера:

Connection opened to 'localhost'
Connection opened to 'localhost'
Connection opened to 'localhost'

The use of prepared statement proxies follows the same pattern: create a proxy object of the type MysqlndUhPreparedStatement and install the proxy using mysqlnd_uh_set_statement_proxy().

Пример #4 Prepared statement proxy

<?php
class stmt_proxy extends MysqlndUhPreparedStatement {
 public function prepare($res, $query) {
  printf("%s(%s)\n", __METHOD__, $query);
  return parent::prepare($res, $query);
 }
}
mysqlnd_uh_set_statement_proxy(new stmt_proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$stmt = $mysqli->prepare("SELECT 'mysqlnd hacking made easy' AS _msg FROM DUAL");
?>

Результат выполнения данного примера:

stmt_proxy::prepare(SELECT 'mysqlnd hacking made easy' AS _msg FROM DUAL)


Basic query monitoring

Basic monitoring of a query statement is easy with PECL/mysqlnd_uh. Combined with debug_print_backtrace() it can become a powerful tool, for example, to find the origin of certain statement. This may be desired when searching for slow queries but also after database refactoring to find code still accessing deprecated databases or tables. The latter may be a complicated matter to do otherwise, especially if the application uses auto-generated queries.

Пример #1 Basic Monitoring

<?php
class conn_proxy extends MysqlndUhConnection {
 public function query($res, $query) {
  debug_print_backtrace();
  return parent::query($res, $query);
 }
}
class stmt_proxy extends MysqlndUhPreparedStatement {
 public function prepare($res, $query) {
  debug_print_backtrace();
  return parent::prepare($res, $query);
 }
}
mysqlnd_uh_set_connection_proxy(new conn_proxy());
mysqlnd_uh_set_statement_proxy(new stmt_proxy());

printf("Proxies installed...\n");
$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "");
var_dump($pdo->query("SELECT 1 AS _one FROM DUAL")->fetchAll(PDO::FETCH_ASSOC));

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->prepare("SELECT 1 AS _two FROM DUAL");
?>

Результат выполнения данного примера:

#0  conn_proxy->query(Resource id #19, SELECT 1 AS _one FROM DUAL)
#1  PDO->query(SELECT 1 AS _one FROM DUAL) called at [example.php:19]
array(1) {
  [0]=>
  array(1) {
    ["_one"]=>
    string(1) "1"
  }
}
#0  stmt_proxy->prepare(Resource id #753, SELECT 1 AS _two FROM DUAL)
#1  mysqli->prepare(SELECT 1 AS _two FROM DUAL) called at [example.php:22]

For basic query monitoring you should install a connection and a prepared statement proxy. The connection proxy should subclass MysqlndUhConnection::query(). All database queries not using native prepared statements will call this method. In the example the query function is invoked by a PDO call. By default, PDO_MySQL is using prepared statement emulation.

All native prepared statements are prepared with the prepare method of mysqlnd exported through MysqlndUhPreparedStatement::prepare(). Subclass MysqlndUhPreparedStatement and overwrite prepare for native prepared statement monitoring.


Требования

PHP 5.3.3 or later. It is recommended to use PHP 5.4.0 or later to get access to the latest mysqlnd features.

The mysqlnd_uh user handler plugin supports all PHP applications and all available PHP MySQL extensions (mysqli, mysql, PDO_MYSQL). The PHP MySQL extension must be configured to use mysqlnd in order to be able to use the mysqlnd_uh plugin for mysqlnd.

The alpha versions makes use of some mysqli features. You must enable mysqli to compile the plugin. This requirement may be removed in the future. Note, that this requirement does not restrict you to use the plugin only with mysqli. You can use the plugin to monitor mysql, mysqli and PDO_MYSQL.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/mysqlnd-uh

PECL/mysqlnd_uh is currently not available on Windows. The source code of the extension makes use of C99 constructs not allowed with PHP Windows builds.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Mysqlnd_uh Опции настройки
Имя | По умолчанию | Место изменения | Список изменений
mysqlnd_uh.enable | 1 | PHP_INI_SYSTEM |
mysqlnd_uh.report_wrong_types | 1 | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

mysqlnd_uh.enable integer

Enables or disables the plugin. If set to disabled, the extension will not allow users to plug into mysqlnd to hook mysqlnd calls.

mysqlnd_uh.report_wrong_types integer

Whether to report wrong return value types of user hooks as E_WARNING level errors. This is recommended for detecting errors.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Most of the constants refer to details of the MySQL Client Server Protocol. Please, refer to the MySQL reference manual to learn about their meaning. To avoid content duplication, only short descriptions are given.

MysqlndUhConnection::simpleCommand() related

The following constants can be used to detect what command is to be send through MysqlndUhConnection::simpleCommand().

MYSQLND_UH_MYSQLND_COM_SLEEP (integer)
MySQL Client Server protocol command: COM_SLEEP.
MYSQLND_UH_MYSQLND_COM_QUIT (integer)
MySQL Client Server protocol command: COM_QUIT.
MYSQLND_UH_MYSQLND_COM_INIT_DB (integer)
MySQL Client Server protocol command: COM_INIT_DB.
MYSQLND_UH_MYSQLND_COM_QUERY (integer)
MySQL Client Server protocol command: COM_QUERY.
MYSQLND_UH_MYSQLND_COM_FIELD_LIST (integer)
MySQL Client Server protocol command: COM_FIELD_LIST.
MYSQLND_UH_MYSQLND_COM_CREATE_DB (integer)
MySQL Client Server protocol command: COM_CREATE_DB.
MYSQLND_UH_MYSQLND_COM_DROP_DB (integer)
MySQL Client Server protocol command: COM_DROP_DB.
MYSQLND_UH_MYSQLND_COM_REFRESH (integer)
MySQL Client Server protocol command: COM_REFRESH.
MYSQLND_UH_MYSQLND_COM_SHUTDOWN (integer)
MySQL Client Server protocol command: COM_SHUTDOWN.
MYSQLND_UH_MYSQLND_COM_STATISTICS (integer)
MySQL Client Server protocol command: COM_STATISTICS.
MYSQLND_UH_MYSQLND_COM_PROCESS_INFO (integer)
MySQL Client Server protocol command: COM_PROCESS_INFO.
MYSQLND_UH_MYSQLND_COM_CONNECT (integer)
MySQL Client Server protocol command: COM_CONNECT.
MYSQLND_UH_MYSQLND_COM_PROCESS_KILL (integer)
MySQL Client Server protocol command: COM_PROCESS_KILL.
MYSQLND_UH_MYSQLND_COM_DEBUG (integer)
MySQL Client Server protocol command: COM_DEBUG.
MYSQLND_UH_MYSQLND_COM_PING (integer)
MySQL Client Server protocol command: COM_PING.
MYSQLND_UH_MYSQLND_COM_TIME (integer)
MySQL Client Server protocol command: COM_TIME.
MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT (integer)
MySQL Client Server protocol command: COM_DELAYED_INSERT.
MYSQLND_UH_MYSQLND_COM_CHANGE_USER (integer)
MySQL Client Server protocol command: COM_CHANGE_USER.
MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP (integer)
MySQL Client Server protocol command: COM_BINLOG_DUMP.
MYSQLND_UH_MYSQLND_COM_TABLE_DUMP (integer)
MySQL Client Server protocol command: COM_TABLE_DUMP.
MYSQLND_UH_MYSQLND_COM_CONNECT_OUT (integer)
MySQL Client Server protocol command: COM_CONNECT_OUT.
MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED (integer)
MySQL Client Server protocol command: COM_REGISTER_SLAVED.
MYSQLND_UH_MYSQLND_COM_STMT_PREPARE (integer)
MySQL Client Server protocol command: COM_STMT_PREPARE.
MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE (integer)
MySQL Client Server protocol command: COM_STMT_EXECUTE.
MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA (integer)
MySQL Client Server protocol command: COM_STMT_SEND_LONG_DATA.
MYSQLND_UH_MYSQLND_COM_STMT_CLOSE (integer)
MySQL Client Server protocol command: COM_STMT_CLOSE.
MYSQLND_UH_MYSQLND_COM_STMT_RESET (integer)
MySQL Client Server protocol command: COM_STMT_RESET.
MYSQLND_UH_MYSQLND_COM_SET_OPTION (integer)
MySQL Client Server protocol command: COM_SET_OPTION.
MYSQLND_UH_MYSQLND_COM_STMT_FETCH (integer)
MySQL Client Server protocol command: COM_STMT_FETCH.
MYSQLND_UH_MYSQLND_COM_DAEMON (integer)
MySQL Client Server protocol command: COM_DAEMON.
MYSQLND_UH_MYSQLND_COM_END (integer)
MySQL Client Server protocol command: COM_END.

The following constants can be used to analyze the ok_packet argument of MysqlndUhConnection::simpleCommand().

MYSQLND_UH_MYSQLND_PROT_GREET_PACKET (integer)
MySQL Client Server protocol packet: greeting.
MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET (integer)
MySQL Client Server protocol packet: authentication.
MYSQLND_UH_MYSQLND_PROT_OK_PACKET (integer)
MySQL Client Server protocol packet: OK.
MYSQLND_UH_MYSQLND_PROT_EOF_PACKET (integer)
MySQL Client Server protocol packet: EOF.
MYSQLND_UH_MYSQLND_PROT_CMD_PACKET (integer)
MySQL Client Server protocol packet: command.
MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET (integer)
MySQL Client Server protocol packet: result set header.
MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET (integer)
MySQL Client Server protocol packet: resultset field.
MYSQLND_UH_MYSQLND_PROT_ROW_PACKET (integer)
MySQL Client Server protocol packet: row.
MYSQLND_UH_MYSQLND_PROT_STATS_PACKET (integer)
MySQL Client Server protocol packet: stats.
MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET (integer)
MySQL Client Server protocol packet: prepare response.
MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET (integer)
MySQL Client Server protocol packet: change user response.
MYSQLND_UH_MYSQLND_PROT_LAST (integer)
No practical meaning. Last entry marker of internal C data structure list.

MysqlndUhConnection::close() related

The following constants can be used to detect why a connection has been closed through MysqlndUhConnection::close().

MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT (integer)
User has called mysqlnd to close the connection.
MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT (integer)
Implicitly closed, for example, during garbage connection.
MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED (integer)
Connection error.
MYSQLND_UH_MYSQLND_CLOSE_LAST (integer)
No practical meaning. Last entry marker of internal C data structure list.

MysqlndUhConnection::setServerOption() related

The following constants can be used to detect which option is set through MysqlndUhConnection::setServerOption().

MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON (integer)
Option: enables multi statement support.
MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_OFF (integer)
Option: disables multi statement support.

MysqlndUhConnection::setClientOption() related

The following constants can be used to detect which option is set through MysqlndUhConnection::setClientOption().

MYSQLND_UH_MYSQLND_OPTION_OPT_CONNECT_TIMEOUT (integer)
Option: connection timeout.
MYSQLND_UH_MYSQLND_OPTION_OPT_COMPRESS (integer)
Option: whether the MySQL compressed protocol is to be used.
MYSQLND_UH_MYSQLND_OPTION_OPT_NAMED_PIPE (integer)
Option: named pipe to use for connection (Windows).
MYSQLND_UH_MYSQLND_OPTION_INIT_COMMAND (integer)
Option: init command to execute upon connect.
MYSQLND_UH_MYSQLND_READ_DEFAULT_FILE (integer)
Option: MySQL server default file to read upon connect.
MYSQLND_UH_MYSQLND_READ_DEFAULT_GROUP (integer)
Option: MySQL server default file group to read upon connect.
MYSQLND_UH_MYSQLND_SET_CHARSET_DIR (integer)
Option: charset description files directory.
MYSQLND_UH_MYSQLND_SET_CHARSET_NAME (integer)
Option: charset name.
MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE (integer)
Option: Whether to allow LOAD DATA LOCAL INFILE use.
MYSQLND_UH_MYSQLND_OPT_PROTOCOL (integer)
Option: supported protocol version.
MYSQLND_UH_MYSQLND_SHARED_MEMORY_BASE_NAME (integer)
Option: shared memory base name for shared memory connections.
MYSQLND_UH_MYSQLND_OPT_READ_TIMEOUT (integer)
Option: connection read timeout.
MYSQLND_UH_MYSQLND_OPT_WRITE_TIMEOUT (integer)
Option: connection write timeout.
MYSQLND_UH_MYSQLND_OPT_USE_RESULT (integer)
Option: unbuffered result sets.
MYSQLND_UH_MYSQLND_OPT_USE_REMOTE_CONNECTION (integer)
Embedded server related.
MYSQLND_UH_MYSQLND_OPT_USE_EMBEDDED_CONNECTION (integer)
Embedded server related.
MYSQLND_UH_MYSQLND_OPT_GUESS_CONNECTION (integer)
TODO
MYSQLND_UH_MYSQLND_SET_CLIENT_IP (integer)
TODO
MYSQLND_UH_MYSQLND_SECURE_AUTH (integer)
TODO
MYSQLND_UH_MYSQLND_REPORT_DATA_TRUNCATION (integer)
Option: Whether to report data truncation.
MYSQLND_UH_MYSQLND_OPT_RECONNECT (integer)
Option: Whether to reconnect automatically.
MYSQLND_UH_MYSQLND_OPT_SSL_VERIFY_SERVER_CERT (integer)
Option: TODO
MYSQLND_UH_MYSQLND_OPT_NET_CMD_BUFFER_SIZE (integer)
Option: mysqlnd network buffer size for commands.
MYSQLND_UH_MYSQLND_OPT_NET_READ_BUFFER_SIZE (integer)
Option: mysqlnd network buffer size for reading from the server.
MYSQLND_UH_MYSQLND_OPT_SSL_KEY (integer)
Option: SSL key.
MYSQLND_UH_MYSQLND_OPT_SSL_CERT (integer)
Option: SSL certificate.
MYSQLND_UH_MYSQLND_OPT_SSL_CA (integer)
Option: SSL CA.
MYSQLND_UH_MYSQLND_OPT_SSL_CAPATH (integer)
Option: Path to SSL CA.
MYSQLND_UH_MYSQLND_OPT_SSL_CIPHER (integer)
Option: SSL cipher.
MYSQLND_UH_MYSQLND_OPT_SSL_PASSPHRASE (integer)
Option: SSL passphrase.
MYSQLND_UH_SERVER_OPTION_PLUGIN_DIR (integer)
Option: server plugin directory.
MYSQLND_UH_SERVER_OPTION_DEFAULT_AUTH (integer)
Option: default authentication method.
MYSQLND_UH_SERVER_OPTION_SET_CLIENT_IP (integer)
TODO
MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET (integer)
Option: maximum allowed packet size. Available as of PHP 5.4.0.
MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL (integer)
Option: TODO. Available as of PHP 5.4.0.
MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE (integer)
Option: make mysqlnd return integer and float columns as long even when using the MySQL Client Server text protocol. Only available with a custom build of mysqlnd.

Other

The plugins version number can be obtained using MYSQLND_UH_VERSION or MYSQLND_UH_VERSION_ID. MYSQLND_UH_VERSION is the string representation of the numerical version number MYSQLND_UH_VERSION_ID, which is an integer such as 10000. Developers can calculate the version number as follows.

Version (part) | Example
Major*10000 | 1*10000 = 10000
Minor*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_UH_VERSION_ID | 10000

MYSQLND_UH_VERSION (string)
Plugin version string, for example, 1.0.0-alpha.
MYSQLND_UH_VERSION_ID (integer)
Plugin version number, for example, 10000.


The MysqlndUhConnection class

(PECL mysqlnd-uh >= 1.0.0-alpha)

Введение

Обзор классов

MysqlndUhConnection {
/* Методы */
public changeUser ( mysqlnd_connection $connection , string $user , string $password , string $database , bool $silent , int $passwd_len ) : bool
public charsetName ( mysqlnd_connection $connection ) : string
public close ( mysqlnd_connection $connection , int $close_type ) : bool
public connect ( mysqlnd_connection $connection , string $host , string $use" , string $password , string $database , int $port , string $socket , int $mysql_flags ) : bool
public __construct ( void )
public endPSession ( mysqlnd_connection $connection ) : bool
public escapeString ( mysqlnd_connection $connection , string $escape_string ) : string
public getAffectedRows ( mysqlnd_connection $connection ) : int
public getErrorNumber ( mysqlnd_connection $connection ) : int
public getErrorString ( mysqlnd_connection $connection ) : string
public getFieldCount ( mysqlnd_connection $connection ) : int
public getHostInformation ( mysqlnd_connection $connection ) : string
public getLastInsertId ( mysqlnd_connection $connection ) : int
public getLastMessage ( mysqlnd_connection $connection ) : void
public getProtocolInformation ( mysqlnd_connection $connection ) : string
public getServerInformation ( mysqlnd_connection $connection ) : string
public getServerStatistics ( mysqlnd_connection $connection ) : string
public getServerVersion ( mysqlnd_connection $connection ) : int
public getSqlstate ( mysqlnd_connection $connection ) : string
public getStatistics ( mysqlnd_connection $connection ) : array
public getThreadId ( mysqlnd_connection $connection ) : int
public getWarningCount ( mysqlnd_connection $connection ) : int
public init ( mysqlnd_connection $connection ) : bool
public killConnection ( mysqlnd_connection $connection , int $pid ) : bool
public listFields ( mysqlnd_connection $connection , string $table , string $achtung_wild ) : array
public listMethod ( mysqlnd_connection $connection , string $query , string $achtung_wild , string $par1 ) : void
public moreResults ( mysqlnd_connection $connection ) : bool
public nextResult ( mysqlnd_connection $connection ) : bool
public ping ( mysqlnd_connection $connection ) : bool
public query ( mysqlnd_connection $connection , string $query ) : bool
public queryReadResultsetHeader ( mysqlnd_connection $connection , mysqlnd_statement $mysqlnd_stmt ) : bool
public reapQuery ( mysqlnd_connection $connection ) : bool
public refreshServer ( mysqlnd_connection $connection , int $options ) : bool
public restartPSession ( mysqlnd_connection $connection ) : bool
public selectDb ( mysqlnd_connection $connection , string $database ) : bool
public sendClose ( mysqlnd_connection $connection ) : bool
public sendQuery ( mysqlnd_connection $connection , string $query ) : bool
public serverDumpDebugInformation ( mysqlnd_connection $connection ) : bool
public setAutocommit ( mysqlnd_connection $connection , int $mode ) : bool
public setCharset ( mysqlnd_connection $connection , string $charset ) : bool
public setClientOption ( mysqlnd_connection $connection , int $option , int $value ) : bool
public setServerOption ( mysqlnd_connection $connection , int $option ) : void
public shutdownServer ( string $MYSQLND_UH_RES_MYSQLND_NAME , string $level ) : void
public simpleCommand ( mysqlnd_connection $connection , int $command , string $arg , int $ok_packet , bool $silent , bool $ignore_upsert_status ) : bool
public simpleCommandHandleResponse ( mysqlnd_connection $connection , int $ok_packet , bool $silent , int $command , bool $ignore_upsert_status ) : bool
public sslSet ( mysqlnd_connection $connection , string $key , string $cert , string $ca , string $capath , string $cipher ) : bool
public stmtInit ( mysqlnd_connection $connection ) : resource
public storeResult ( mysqlnd_connection $connection ) : resource
public txCommit ( mysqlnd_connection $connection ) : bool
public txRollback ( mysqlnd_connection $connection ) : bool
public useResult ( mysqlnd_connection $connection ) : resource
}

Содержание

  • MysqlndUhConnection::changeUser — Changes the user of the specified mysqlnd database connection
  • MysqlndUhConnection::charsetName — Returns the default character set for the database connection
  • MysqlndUhConnection::close — Closes a previously opened database connection
  • MysqlndUhConnection::connect — Open a new connection to the MySQL server
  • MysqlndUhConnection::__construct — The __construct purpose
  • MysqlndUhConnection::endPSession — End a persistent connection
  • MysqlndUhConnection::escapeString — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
  • MysqlndUhConnection::getAffectedRows — Gets the number of affected rows in a previous MySQL operation
  • MysqlndUhConnection::getErrorNumber — Returns the error code for the most recent function call
  • MysqlndUhConnection::getErrorString — Returns a string description of the last error
  • MysqlndUhConnection::getFieldCount — Returns the number of columns for the most recent query
  • MysqlndUhConnection::getHostInformation — Returns a string representing the type of connection used
  • MysqlndUhConnection::getLastInsertId — Returns the auto generated id used in the last query
  • MysqlndUhConnection::getLastMessage — Retrieves information about the most recently executed query
  • MysqlndUhConnection::getProtocolInformation — Returns the version of the MySQL protocol used
  • MysqlndUhConnection::getServerInformation — Returns the version of the MySQL server
  • MysqlndUhConnection::getServerStatistics — Gets the current system status
  • MysqlndUhConnection::getServerVersion — Returns the version of the MySQL server as an integer
  • MysqlndUhConnection::getSqlstate — Returns the SQLSTATE error from previous MySQL operation
  • MysqlndUhConnection::getStatistics — Returns statistics about the client connection
  • MysqlndUhConnection::getThreadId — Returns the thread ID for the current connection
  • MysqlndUhConnection::getWarningCount — Returns the number of warnings from the last query for the given link
  • MysqlndUhConnection::init — Initialize mysqlnd connection
  • MysqlndUhConnection::killConnection — Asks the server to kill a MySQL thread
  • MysqlndUhConnection::listFields — List MySQL table fields
  • MysqlndUhConnection::listMethod — Wrapper for assorted list commands
  • MysqlndUhConnection::moreResults — Check if there are any more query results from a multi query
  • MysqlndUhConnection::nextResult — Prepare next result from multi_query
  • MysqlndUhConnection::ping — Pings a server connection, or tries to reconnect if the connection has gone down
  • MysqlndUhConnection::query — Performs a query on the database
  • MysqlndUhConnection::queryReadResultsetHeader — Read a result set header
  • MysqlndUhConnection::reapQuery — Get result from async query
  • MysqlndUhConnection::refreshServer — Flush or reset tables and caches
  • MysqlndUhConnection::restartPSession — Restart a persistent mysqlnd connection
  • MysqlndUhConnection::selectDb — Selects the default database for database queries
  • MysqlndUhConnection::sendClose — Sends a close command to MySQL
  • MysqlndUhConnection::sendQuery — Sends a query to MySQL
  • MysqlndUhConnection::serverDumpDebugInformation — Dump debugging information into the log for the MySQL server
  • MysqlndUhConnection::setAutocommit — Turns on or off auto-committing database modifications
  • MysqlndUhConnection::setCharset — Sets the default client character set
  • MysqlndUhConnection::setClientOption — Sets a client option
  • MysqlndUhConnection::setServerOption — Sets a server option
  • MysqlndUhConnection::shutdownServer — The shutdownServer purpose
  • MysqlndUhConnection::simpleCommand — Sends a basic COM_* command
  • MysqlndUhConnection::simpleCommandHandleResponse — Process a response for a basic COM_* command send to the client
  • MysqlndUhConnection::sslSet — Used for establishing secure connections using SSL
  • MysqlndUhConnection::stmtInit — Initializes a statement and returns a resource for use with mysqli_statement::prepare
  • MysqlndUhConnection::storeResult — Transfers a result set from the last query
  • MysqlndUhConnection::txCommit — Commits the current transaction
  • MysqlndUhConnection::txRollback — Rolls back current transaction
  • MysqlndUhConnection::useResult — Initiate a result set retrieval


Changes the user of the specified mysqlnd database connection

  • « MysqlndUhConnection
  • MysqlndUhConnection::charsetName »
  • PHP Manual
  • MysqlndUhConnection
  • Changes the user of the specified mysqlnd database connection

MysqlndUhConnection::changeUser

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::changeUser — Changes the user of the specified mysqlnd database connection

Описание

public MysqlndUhConnection::changeUser ( mysqlnd_connection $connection , string $user , string $password , string $database , bool $silent , int $passwd_len ) : bool

Changes the user of the specified mysqlnd database connection

Список параметров

connection

Mysqlnd connection handle. Do not modify!

user

The MySQL user name.

password

The MySQL password.

database

The MySQL database to change to.

silent

Controls if mysqlnd is allowed to emit errors or not.

passwd_len

Length of the MySQL password.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::changeUser() example

<?php
class proxy extends MysqlndUhConnection {
 /* Hook mysqlnd's connection::change_user call */
 public function changeUser($res, $user, $passwd, $db, $silent, $passwd_len) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::changeUser($res, $user, $passwd, $db, $silent, $passwd_len);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
/* Install proxy/hooks to be used with all future mysqlnd connection */
mysqlnd_uh_set_connection_proxy(new proxy());

/* Create mysqli connection which is using the mysqlnd library */
$mysqli = new mysqli("localhost", "root", "", "test");

/* Example of a user API call which triggers the hooked mysqlnd call */
var_dump($mysqli->change_user("root", "bar", "test"));
?>

Результат выполнения данного примера:

proxy::changeUser(array (
  0 => NULL,
  1 => 'root',
  2 => 'bar',
  3 => 'test',
  4 => false,
  5 => 3,
))
proxy::changeUser returns false
bool(false)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_change_user() - Позволяет сменить пользователя подключенного к базе данных


Returns the default character set for the database connection

  • « MysqlndUhConnection::changeUser
  • MysqlndUhConnection::close »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the default character set for the database connection

MysqlndUhConnection::charsetName

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::charsetName — Returns the default character set for the database connection

Описание

public MysqlndUhConnection::charsetName ( mysqlnd_connection $connection ) : string

Returns the default character set for the database connection.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

The default character set.

Примеры

Пример #1 MysqlndUhConnection::charsetName() example

<?php
class proxy extends MysqlndUhConnection {
  public function charsetName($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::charsetName($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump(mysqli_character_set_name($mysqli));
?>

Результат выполнения данного примера:

proxy::charsetName(array (
  0 => NULL,
))
proxy::charsetName returns 'latin1'
string(6) "latin1"

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_character_set_name() - Возвращает кодировку по умолчанию, установленную для соединения с БД


Closes a previously opened database connection

  • « MysqlndUhConnection::charsetName
  • MysqlndUhConnection::connect »
  • PHP Manual
  • MysqlndUhConnection
  • Closes a previously opened database connection

MysqlndUhConnection::close

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::close — Closes a previously opened database connection

Описание

public MysqlndUhConnection::close ( mysqlnd_connection $connection , int $close_type ) : bool

Closes a previously opened database connection.

Замечание:

Failing to call the parent implementation may cause memory leaks or crash PHP. This is not considered a bug. Please, keep in mind that the mysqlnd library functions have never been designed to be exposed to the user space.

Список параметров

connection

The connection to be closed. Do not modify!

close_type

Why the connection is to be closed. The value of close_type is one of MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT, MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT, MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED or MYSQLND_UH_MYSQLND_CLOSE_LAST. The latter should never be seen, unless the default behaviour of the mysqlnd library has been changed by a plugin.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::close() example

<?php
function close_type_to_string($close_type) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED => "MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED",
  MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT => "MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT",
  MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT => "MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT",
  MYSQLND_UH_MYSQLND_CLOSE_LAST => "MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT"
 );
 return (isset($mapping[$close_type])) ? $mapping[$close_type] : 'unknown';
}

class proxy extends MysqlndUhConnection {
  public function close($res, $close_type) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   printf("close_type = %s\n", close_type_to_string($close_type));
   /* WARNING: you must call the parent */
   $ret = parent::close($res, $close_type);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->close();
?>

Результат выполнения данного примера:

proxy::close(array (
  0 => NULL,
  1 => 0,
))
close_type = MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT
proxy::close returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_close() - Закрывает ранее открытое соединение с базой данных
  • mysql_close() - Закрывает соединение с сервером MySQL


Open a new connection to the MySQL server

  • « MysqlndUhConnection::close
  • MysqlndUhConnection::__construct »
  • PHP Manual
  • MysqlndUhConnection
  • Open a new connection to the MySQL server

MysqlndUhConnection::connect

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::connect — Open a new connection to the MySQL server

Описание

public MysqlndUhConnection::connect ( mysqlnd_connection $connection , string $host , string $use" , string $password , string $database , int $port , string $socket , int $mysql_flags ) : bool

Open a new connection to the MySQL server.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

host

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.

user

The MySQL user name.

password

If not provided or NULL, 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).

database

If provided will specify the default database to be used when performing queries.

port

Specifies the port number to attempt to connect to the MySQL server.

socket

Specifies the socket or named pipe that should be used. If NULL, mysqlnd will default to /tmp/mysql.sock.

mysql_flags

Connection options.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::connect() example

<?php
class proxy extends MysqlndUhConnection {
 public function connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
?>

Результат выполнения данного примера:

proxy::connect(array (
  0 => NULL,
  1 => 'localhost',
  2 => 'root',
  3 => '',
  4 => 'test',
  5 => 3306,
  6 => NULL,
  7 => 131072,
))
proxy::connect returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_connect() - Псевдоним mysqli::__construct
  • mysql_connect() - Открывает соединение с сервером MySQL


The __construct purpose

  • « MysqlndUhConnection::connect
  • MysqlndUhConnection::endPSession »
  • PHP Manual
  • MysqlndUhConnection
  • The __construct purpose

MysqlndUhConnection::__construct

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::__construct — The __construct purpose

Описание

public MysqlndUhConnection::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


End a persistent connection

  • « MysqlndUhConnection::__construct
  • MysqlndUhConnection::escapeString »
  • PHP Manual
  • MysqlndUhConnection
  • End a persistent connection

MysqlndUhConnection::endPSession

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::endPSession — End a persistent connection

Описание

public MysqlndUhConnection::endPSession ( mysqlnd_connection $connection ) : bool

End a persistent connection

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::endPSession() example

<?php
class proxy extends MysqlndUhConnection {
 public function endPSession($conn) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::endPSession($conn);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("p:localhost", "root", "", "test");
$mysqli->close();
?>

Результат выполнения данного примера:

proxy::endPSession(array (
  0 => NULL,
))
proxy::endPSession returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

  • « MysqlndUhConnection::endPSession
  • MysqlndUhConnection::getAffectedRows »
  • PHP Manual
  • MysqlndUhConnection
  • Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

MysqlndUhConnection::escapeString

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::escapeString — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

Описание

public MysqlndUhConnection::escapeString ( mysqlnd_connection $connection , string $escape_string ) : string

Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection.

Список параметров

MYSQLND_UH_RES_MYSQLND_NAME

Mysqlnd connection handle. Do not modify!

escape_string

The string to be escaped.

Возвращаемые значения

The escaped string.

Примеры

Пример #1 MysqlndUhConnection::escapeString() example

<?php
class proxy extends MysqlndUhConnection {
 public function escapeString($res, $string) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::escapeString($res, $string);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->set_charset("latin1");
$mysqli->real_escape_string("test0'test");
?>

Результат выполнения данного примера:

proxy::escapeString(array (
  0 => NULL,
  1 => 'test0\'test',
))
proxy::escapeString returns 'test0\\\'test'

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_real_escape_string() - Экранирует специальные символы в строке для использования в SQL-выражении, используя текущий набор символов соединения
  • mysql_real_escape_string() - Экранирует специальные символы в строках для использования в выражениях SQL


Gets the number of affected rows in a previous MySQL operation

  • « MysqlndUhConnection::escapeString
  • MysqlndUhConnection::getErrorNumber »
  • PHP Manual
  • MysqlndUhConnection
  • Gets the number of affected rows in a previous MySQL operation

MysqlndUhConnection::getAffectedRows

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getAffectedRows — Gets the number of affected rows in a previous MySQL operation

Описание

public MysqlndUhConnection::getAffectedRows ( mysqlnd_connection $connection ) : int

Gets the number of affected rows in a previous MySQL operation.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Number of affected rows.

Примеры

Пример #1 MysqlndUhConnection::getAffectedRows() example

<?php
class proxy extends MysqlndUhConnection {
 public function getAffectedRows($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getAffectedRows($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1)");
var_dump($mysqli->affected_rows);
?>

Результат выполнения данного примера:

proxy::getAffectedRows(array (
  0 => NULL,
))
proxy::getAffectedRows returns 1
int(1)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_affected_rows() - Получает число строк, затронутых предыдущей операцией MySQL
  • mysql_affected_rows() - Возвращает число затронутых прошлой операцией рядов


Returns the error code for the most recent function call

  • « MysqlndUhConnection::getAffectedRows
  • MysqlndUhConnection::getErrorString »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the error code for the most recent function call

MysqlndUhConnection::getErrorNumber

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getErrorNumber — Returns the error code for the most recent function call

Описание

public MysqlndUhConnection::getErrorNumber ( mysqlnd_connection $connection ) : int

Returns the error code for the most recent function call.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Error code for the most recent function call.

Примеры

MysqlndUhConnection::getErrorNumber() is not only executed after the invocation of a user space API call which maps directly to it but also called internally.

Пример #1 MysqlndUhConnection::getErrorNumber() example

<?php
class proxy extends MysqlndUhConnection {
 public function getErrorNumber($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getErrorNumber($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

printf("connect...\n");
$mysqli = new mysqli("localhost", "root", "", "test");
printf("query...\n");
$mysqli->query("PLEASE_LET_THIS_BE_INVALID_SQL");
printf("errno...\n");
var_dump($mysqli->errno);
printf("close...\n");
$mysqli->close();
?>

Результат выполнения данного примера:

connect...
proxy::getErrorNumber(array (
  0 => NULL,
))
proxy::getErrorNumber returns 0
query...
errno...
proxy::getErrorNumber(array (
  0 => NULL,
))
proxy::getErrorNumber returns 1064
int(1064)
close...

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • MysqlndUhConnection::getErrorString() - Returns a string description of the last error
  • mysqli_errno() - Возвращает код ошибки последнего вызова функции
  • mysql_errno() - Возвращает численный код ошибки выполнения последней операции с MySQL


Returns a string description of the last error

  • « MysqlndUhConnection::getErrorNumber
  • MysqlndUhConnection::getFieldCount »
  • PHP Manual
  • MysqlndUhConnection
  • Returns a string description of the last error

MysqlndUhConnection::getErrorString

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getErrorString — Returns a string description of the last error

Описание

public MysqlndUhConnection::getErrorString ( mysqlnd_connection $connection ) : string

Returns a string description of the last error.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Error string for the most recent function call.

Примеры

MysqlndUhConnection::getErrorString() is not only executed after the invocation of a user space API call which maps directly to it but also called internally.

Пример #1 MysqlndUhConnection::getErrorString() example

<?php
class proxy extends MysqlndUhConnection {
 public function getErrorString($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getErrorString($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

printf("connect...\n");
$mysqli = new mysqli("localhost", "root", "", "test");
printf("query...\n");
$mysqli->query("WILL_I_EVER_LEARN_SQL?");
printf("errno...\n");
var_dump($mysqli->error);
printf("close...\n");
$mysqli->close();
?>

Результат выполнения данного примера:

connect...
proxy::getErrorString(array (
  0 => NULL,
))
proxy::getErrorString returns ''
query...
errno...
proxy::getErrorString(array (
  0 => NULL,
))
proxy::getErrorString returns 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'WILL_I_EVER_LEARN_SQL?\' at line 1'
string(168) "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WILL_I_EVER_LEARN_SQL?' at line 1"
close...

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • MysqlndUhConnection::getErrorNumber() - Returns the error code for the most recent function call
  • mysqli_error() - Возвращает строку с описанием последней ошибки
  • mysql_error() - Возвращает текст ошибки последней операции с MySQL


Returns the number of columns for the most recent query

  • « MysqlndUhConnection::getErrorString
  • MysqlndUhConnection::getHostInformation »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the number of columns for the most recent query

MysqlndUhConnection::getFieldCount

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getFieldCount — Returns the number of columns for the most recent query

Описание

public MysqlndUhConnection::getFieldCount ( mysqlnd_connection $connection ) : int

Returns the number of columns for the most recent query.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Number of columns.

Примеры

MysqlndUhConnection::getFieldCount() is not only executed after the invocation of a user space API call which maps directly to it but also called internally.

Пример #1 MysqlndUhConnection::getFieldCount() example

<?php
class proxy extends MysqlndUhConnection {
 public function getFieldCount($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getFieldCount($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("WILL_I_EVER_LEARN_SQL?");
var_dump($mysqli->field_count);
$mysqli->query("SELECT 1, 2, 3 FROM DUAL");
var_dump($mysqli->field_count);
?>

Результат выполнения данного примера:

proxy::getFieldCount(array (
  0 => NULL,
))
proxy::getFieldCount returns 0
int(0)
proxy::getFieldCount(array (
  0 => NULL,
))
proxy::getFieldCount returns 3
proxy::getFieldCount(array (
  0 => NULL,
))
proxy::getFieldCount returns 3
int(3)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_field_count() - Возвращает число столбцов, затронутых последним запросом


Returns a string representing the type of connection used

  • « MysqlndUhConnection::getFieldCount
  • MysqlndUhConnection::getLastInsertId »
  • PHP Manual
  • MysqlndUhConnection
  • Returns a string representing the type of connection used

MysqlndUhConnection::getHostInformation

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getHostInformation — Returns a string representing the type of connection used

Описание

public MysqlndUhConnection::getHostInformation ( mysqlnd_connection $connection ) : string

Returns a string representing the type of connection used.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Connection description.

Примеры

Пример #1 MysqlndUhConnection::getHostInformation() example

<?php
class proxy extends MysqlndUhConnection {
 public function getHostInformation($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getHostInformation($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->host_info);
?>

Результат выполнения данного примера:

proxy::getHostInformation(array (
  0 => NULL,
))
proxy::getHostInformation returns 'Localhost via UNIX socket'
string(25) "Localhost via UNIX socket"

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_get_host_info() - Возвращает строку, содержащую тип используемого соединения
  • mysql_get_host_info() - Возвращает информацию о соединении с MySQL


Returns the auto generated id used in the last query

  • « MysqlndUhConnection::getHostInformation
  • MysqlndUhConnection::getLastMessage »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the auto generated id used in the last query

MysqlndUhConnection::getLastInsertId

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getLastInsertId — Returns the auto generated id used in the last query

Описание

public MysqlndUhConnection::getLastInsertId ( mysqlnd_connection $connection ) : int

Returns the auto generated id used in the last query.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Last insert id.

Примеры

Пример #1 MysqlndUhConnection::getLastInsertId() example

<?php
class proxy extends MysqlndUhConnection {
 public function getLastInsertId($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getLastInsertId($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT AUTO_INCREMENT PRIMARY KEY, col VARCHAR(255))");
$mysqli->query("INSERT INTO test(col) VALUES ('a')");
var_dump($mysqli->insert_id);
?>

Результат выполнения данного примера:

proxy::getLastInsertId(array (
  0 => NULL,
))
proxy::getLastInsertId returns 1
int(1)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_insert_id() - Возвращает автоматически генерируемый ID, используя последний запрос
  • mysql_insert_id() - Возвращает идентификатор, сгенерированный при последнем INSERT-запросе


Retrieves information about the most recently executed query

  • « MysqlndUhConnection::getLastInsertId
  • MysqlndUhConnection::getProtocolInformation »
  • PHP Manual
  • MysqlndUhConnection
  • Retrieves information about the most recently executed query

MysqlndUhConnection::getLastMessage

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getLastMessage — Retrieves information about the most recently executed query

Описание

public MysqlndUhConnection::getLastMessage ( mysqlnd_connection $connection ) : void

Retrieves information about the most recently executed query.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Last message. Trying to return a string longer than 511 bytes will cause an error of the type E_WARNING and result in the string being truncated.

Примеры

Пример #1 MysqlndUhConnection::getLastMessage() example

<?php
class proxy extends MysqlndUhConnection {
 public function getLastMessage($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getLastMessage($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->info);
$mysqli->query("DROP TABLE IF EXISTS test");
var_dump($mysqli->info);
?>

Результат выполнения данного примера:

proxy::getLastMessage(array (
  0 => NULL,
))
proxy::getLastMessage returns ''
string(0) ""
proxy::getLastMessage(array (
  0 => NULL,
))
proxy::getLastMessage returns ''
string(0) ""

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_info() - Извлекает информацию о последнем выполненном запросе
  • mysql_info() - Возвращает информацию о последнем запросе


Returns the version of the MySQL protocol used

  • « MysqlndUhConnection::getLastMessage
  • MysqlndUhConnection::getServerInformation »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the version of the MySQL protocol used

MysqlndUhConnection::getProtocolInformation

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getProtocolInformation — Returns the version of the MySQL protocol used

Описание

public MysqlndUhConnection::getProtocolInformation ( mysqlnd_connection $connection ) : string

Returns the version of the MySQL protocol used.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

The protocol version.

Примеры

Пример #1 MysqlndUhConnection::getProtocolInformation() example

<?php
class proxy extends MysqlndUhConnection {
 public function getProtocolInformation($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getProtocolInformation($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->protocol_version);
?>

Результат выполнения данного примера:

proxy::getProtocolInformation(array (
  0 => NULL,
))
proxy::getProtocolInformation returns 10
int(10)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_get_proto_info() - Возвращает версию используемого MySQL протокола
  • mysql_get_proto_info() - Возвращает информацию о протоколе MySQL


Returns the version of the MySQL server

  • « MysqlndUhConnection::getProtocolInformation
  • MysqlndUhConnection::getServerStatistics »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the version of the MySQL server

MysqlndUhConnection::getServerInformation

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getServerInformation — Returns the version of the MySQL server

Описание

public MysqlndUhConnection::getServerInformation ( mysqlnd_connection $connection ) : string

Returns the version of the MySQL server.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

The server version.

Примеры

Пример #1 MysqlndUhConnection::getServerInformation() example

<?php
class proxy extends MysqlndUhConnection {
 public function getServerInformation($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getServerInformation($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->server_info);
?>

Результат выполнения данного примера:

proxy::getServerInformation(array (
  0 => NULL,
))
proxy::getServerInformation returns '5.1.45-debug-log'
string(16) "5.1.45-debug-log"

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_get_server_info() - Возвращает версию MySQL сервера
  • mysql_get_server_info() - Возвращает информацию о сервере MySQL


Gets the current system status

  • « MysqlndUhConnection::getServerInformation
  • MysqlndUhConnection::getServerVersion »
  • PHP Manual
  • MysqlndUhConnection
  • Gets the current system status

MysqlndUhConnection::getServerStatistics

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getServerStatistics — Gets the current system status

Описание

public MysqlndUhConnection::getServerStatistics ( mysqlnd_connection $connection ) : string

Gets the current system status.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

The system status message.

Примеры

Пример #1 MysqlndUhConnection::getServerStatistics() example

<?php
class proxy extends MysqlndUhConnection {
 public function getServerStatistics($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getServerStatistics($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump(mysqli_stat($mysqli));
?>

Результат выполнения данного примера:

proxy::getServerStatistics(array (
  0 => NULL,
))
proxy::getServerStatistics returns 'Uptime: 2059995  Threads: 1  Questions: 126157  Slow queries: 0  Opens: 6377  Flush tables: 1  Open tables: 18  Queries per second avg: 0.61'
string(140) "Uptime: 2059995  Threads: 1  Questions: 126157  Slow queries: 0  Opens: 6377  Flush tables: 1  Open tables: 18  Queries per second avg: 0.61"

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_stat() - Получение информации о текущем состоянии системы
  • mysql_stat() - Возвращает текущий статус сервера


Returns the version of the MySQL server as an integer

  • « MysqlndUhConnection::getServerStatistics
  • MysqlndUhConnection::getSqlstate »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the version of the MySQL server as an integer

MysqlndUhConnection::getServerVersion

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getServerVersion — Returns the version of the MySQL server as an integer

Описание

public MysqlndUhConnection::getServerVersion ( mysqlnd_connection $connection ) : int

Returns the version of the MySQL server as an integer.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

The MySQL version.

Примеры

Пример #1 MysqlndUhConnection::getServerVersion() example

<?php
class proxy extends MysqlndUhConnection {
 public function getServerVersion($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getServerVersion($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->server_version);
?>

Результат выполнения данного примера:

proxy::getServerVersion(array (
  0 => NULL,
))
proxy::getServerVersion returns 50145
int(50145)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_get_server_version() - Возвращает версию сервера MySQL, представленную в виде integer
  • mysql_get_server_version()


Returns the SQLSTATE error from previous MySQL operation

  • « MysqlndUhConnection::getServerVersion
  • MysqlndUhConnection::getStatistics »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the SQLSTATE error from previous MySQL operation

MysqlndUhConnection::getSqlstate

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getSqlstate — Returns the SQLSTATE error from previous MySQL operation

Описание

public MysqlndUhConnection::getSqlstate ( mysqlnd_connection $connection ) : string

Returns the SQLSTATE error from previous MySQL operation.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

The SQLSTATE code.

Примеры

Пример #1 MysqlndUhConnection::getSqlstate() example

<?php
class proxy extends MysqlndUhConnection {
 public function getSqlstate($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getSqlstate($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->sqlstate);
$mysqli->query("AN_INVALID_REQUEST_TO_PROVOKE_AN_ERROR");
var_dump($mysqli->sqlstate);
?>

Результат выполнения данного примера:

proxy::getSqlstate(array (
  0 => NULL,
))
proxy::getSqlstate returns '00000'
string(5) "00000"
proxy::getSqlstate(array (
  0 => NULL,
))
proxy::getSqlstate returns '42000'
string(5) "42000"

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_sql_state()


Returns statistics about the client connection

  • « MysqlndUhConnection::getSqlstate
  • MysqlndUhConnection::getThreadId »
  • PHP Manual
  • MysqlndUhConnection
  • Returns statistics about the client connection

MysqlndUhConnection::getStatistics

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getStatistics — Returns statistics about the client connection

Описание

public MysqlndUhConnection::getStatistics ( mysqlnd_connection $connection ) : array

Returns statistics about the client connection.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Connection statistics collected by mysqlnd.

Примеры

Пример #1 MysqlndUhConnection::getStatistics() example

<?php
class proxy extends MysqlndUhConnection {
 public function getStatistics($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getStatistics($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->get_connection_stats());
?>

Результат выполнения данного примера:

proxy::getStatistics(array (
  0 => NULL,
))
proxy::getStatistics returns array (
  'bytes_sent' => '73',
  'bytes_received' => '77',
  'packets_sent' => '2',
  'packets_received' => '2',
  'protocol_overhead_in' => '8',
  'protocol_overhead_out' => '8',
  'bytes_received_ok_packet' => '0',
  'bytes_received_eof_packet' => '0',
  'bytes_received_rset_header_packet' => '0',
  'bytes_received_rset_field_meta_packet' => '0',
  'bytes_received_rset_row_packet' => '0',
  'bytes_received_prepare_response_packet' => '0',
  'bytes_received_change_user_packet' => '0',
  'packets_sent_command' => '0',
  'packets_received_ok' => '0',
  'packets_received_eof' => '0',
  'packets_received_rset_header' => '0',
  'packets_received_rset_field_meta' => '0',
  'packets_received_rset_row' => '0',
  'packets_received_prepare_response' => '0',
  'packets_received_change_user' => '0',
  'result_set_queries' => '0',
  'non_result_set_queries' => '0',
  'no_index_used' => '0',
  'bad_index_used' => '0',
  'slow_queries' => '0',
  'buffered_sets' => '0',
  'unbuffered_sets' => '0',
  'ps_buffered_sets' => '0',
  'ps_unbuffered_sets' => '0',
  'flushed_normal_sets' => '0',
  'flushed_ps_sets' => '0',
  'ps_prepared_never_executed' => '0',
  'ps_prepared_once_executed' => '0',
  'rows_fetched_from_server_normal' => '0',
  'rows_fetched_from_server_ps' => '0',
  'rows_buffered_from_client_normal' => '0',
  'rows_buffered_from_client_ps' => '0',
  'rows_fetched_from_client_normal_buffered' => '0',
  'rows_fetched_from_client_normal_unbuffered' => '0',
  'rows_fetched_from_client_ps_buffered' => '0',
  'rows_fetched_from_client_ps_unbuffered' => '0',
  'rows_fetched_from_client_ps_cursor' => '0',
  'rows_affected_normal' => '0',
  'rows_affected_ps' => '0',
  'rows_skipped_normal' => '0',
  'rows_skipped_ps' => '0',
  'copy_on_write_saved' => '0',
  'copy_on_write_performed' => '0',
  'command_buffer_too_small' => '0',
  'connect_success' => '1',
  'connect_failure' => '0',
  'connection_reused' => '0',
  'reconnect' => '0',
  'pconnect_success' => '0',
  'active_connections' => '1',
  'active_persistent_connections' => '0',
  'explicit_close' => '0',
  'implicit_close' => '0',
  'disconnect_close' => '0',
  'in_middle_of_command_close' => '0',
  'explicit_free_result' => '0',
  'implicit_free_result' => '0',
  'explicit_stmt_close' => '0',
  'implicit_stmt_close' => '0',
  'mem_emalloc_count' => '0',
  'mem_emalloc_amount' => '0',
  'mem_ecalloc_count' => '0',
  'mem_ecalloc_amount' => '0',
  'mem_erealloc_count' => '0',
  'mem_erealloc_amount' => '0',
  'mem_efree_count' => '0',
  'mem_efree_amount' => '0',
  'mem_malloc_count' => '0',
  'mem_malloc_amount' => '0',
  'mem_calloc_count' => '0',
  'mem_calloc_amount' => '0',
  'mem_realloc_count' => '0',
  'mem_realloc_amount' => '0',
  'mem_free_count' => '0',
  'mem_free_amount' => '0',
  'mem_estrndup_count' => '0',
  'mem_strndup_count' => '0',
  'mem_estndup_count' => '0',
  'mem_strdup_count' => '0',
  'proto_text_fetched_null' => '0',
  'proto_text_fetched_bit' => '0',
  'proto_text_fetched_tinyint' => '0',
  'proto_text_fetched_short' => '0',
  'proto_text_fetched_int24' => '0',
  'proto_text_fetched_int' => '0',
  'proto_text_fetched_bigint' => '0',
  'proto_text_fetched_decimal' => '0',
  'proto_text_fetched_float' => '0',
  'proto_text_fetched_double' => '0',
  'proto_text_fetched_date' => '0',
  'proto_text_fetched_year' => '0',
  'proto_text_fetched_time' => '0',
  'proto_text_fetched_datetime' => '0',
  'proto_text_fetched_timestamp' => '0',
  'proto_text_fetched_string' => '0',
  'proto_text_fetched_blob' => '0',
  'proto_text_fetched_enum' => '0',
  'proto_text_fetched_set' => '0',
  'proto_text_fetched_geometry' => '0',
  'proto_text_fetched_other' => '0',
  'proto_binary_fetched_null' => '0',
  'proto_binary_fetched_bit' => '0',
  'proto_binary_fetched_tinyint' => '0',
  'proto_binary_fetched_short' => '0',
  'proto_binary_fetched_int24' => '0',
  'proto_binary_fetched_int' => '0',
  'proto_binary_fetched_bigint' => '0',
  'proto_binary_fetched_decimal' => '0',
  'proto_binary_fetched_float' => '0',
  'proto_binary_fetched_double' => '0',
  'proto_binary_fetched_date' => '0',
  'proto_binary_fetched_year' => '0',
  'proto_binary_fetched_time' => '0',
  'proto_binary_fetched_datetime' => '0',
  'proto_binary_fetched_timestamp' => '0',
  'proto_binary_fetched_string' => '0',
  'proto_binary_fetched_blob' => '0',
  'proto_binary_fetched_enum' => '0',
  'proto_binary_fetched_set' => '0',
  'proto_binary_fetched_geometry' => '0',
  'proto_binary_fetched_other' => '0',
  'init_command_executed_count' => '0',
  'init_command_failed_count' => '0',
  'com_quit' => '0',
  'com_init_db' => '0',
  'com_query' => '0',
  'com_field_list' => '0',
  'com_create_db' => '0',
  'com_drop_db' => '0',
  'com_refresh' => '0',
  'com_shutdown' => '0',
  'com_statistics' => '0',
  'com_process_info' => '0',
  'com_connect' => '0',
  'com_process_kill' => '0',
  'com_debug' => '0',
  'com_ping' => '0',
  'com_time' => '0',
  'com_delayed_insert' => '0',
  'com_change_user' => '0',
  'com_binlog_dump' => '0',
  'com_table_dump' => '0',
  'com_connect_out' => '0',
  'com_register_slave' => '0',
  'com_stmt_prepare' => '0',
  'com_stmt_execute' => '0',
  'com_stmt_send_long_data' => '0',
  'com_stmt_close' => '0',
  'com_stmt_reset' => '0',
  'com_stmt_set_option' => '0',
  'com_stmt_fetch' => '0',
  'com_deamon' => '0',
  'bytes_received_real_data_normal' => '0',
  'bytes_received_real_data_ps' => '0',
)
array(160) {
  ["bytes_sent"]=>
  string(2) "73"
  ["bytes_received"]=>
  string(2) "77"
  ["packets_sent"]=>
  string(1) "2"
  ["packets_received"]=>
  string(1) "2"
  ["protocol_overhead_in"]=>
  string(1) "8"
  ["protocol_overhead_out"]=>
  string(1) "8"
  ["bytes_received_ok_packet"]=>
  string(1) "0"
  ["bytes_received_eof_packet"]=>
  string(1) "0"
  ["bytes_received_rset_header_packet"]=>
  string(1) "0"
  ["bytes_received_rset_field_meta_packet"]=>
  string(1) "0"
  ["bytes_received_rset_row_packet"]=>
  string(1) "0"
  ["bytes_received_prepare_response_packet"]=>
  string(1) "0"
  ["bytes_received_change_user_packet"]=>
  string(1) "0"
  ["packets_sent_command"]=>
  string(1) "0"
  ["packets_received_ok"]=>
  string(1) "0"
  ["packets_received_eof"]=>
  string(1) "0"
  ["packets_received_rset_header"]=>
  string(1) "0"
  ["packets_received_rset_field_meta"]=>
  string(1) "0"
  ["packets_received_rset_row"]=>
  string(1) "0"
  ["packets_received_prepare_response"]=>
  string(1) "0"
  ["packets_received_change_user"]=>
  string(1) "0"
  ["result_set_queries"]=>
  string(1) "0"
  ["non_result_set_queries"]=>
  string(1) "0"
  ["no_index_used"]=>
  string(1) "0"
  ["bad_index_used"]=>
  string(1) "0"
  ["slow_queries"]=>
  string(1) "0"
  ["buffered_sets"]=>
  string(1) "0"
  ["unbuffered_sets"]=>
  string(1) "0"
  ["ps_buffered_sets"]=>
  string(1) "0"
  ["ps_unbuffered_sets"]=>
  string(1) "0"
  ["flushed_normal_sets"]=>
  string(1) "0"
  ["flushed_ps_sets"]=>
  string(1) "0"
  ["ps_prepared_never_executed"]=>
  string(1) "0"
  ["ps_prepared_once_executed"]=>
  string(1) "0"
  ["rows_fetched_from_server_normal"]=>
  string(1) "0"
  ["rows_fetched_from_server_ps"]=>
  string(1) "0"
  ["rows_buffered_from_client_normal"]=>
  string(1) "0"
  ["rows_buffered_from_client_ps"]=>
  string(1) "0"
  ["rows_fetched_from_client_normal_buffered"]=>
  string(1) "0"
  ["rows_fetched_from_client_normal_unbuffered"]=>
  string(1) "0"
  ["rows_fetched_from_client_ps_buffered"]=>
  string(1) "0"
  ["rows_fetched_from_client_ps_unbuffered"]=>
  string(1) "0"
  ["rows_fetched_from_client_ps_cursor"]=>
  string(1) "0"
  ["rows_affected_normal"]=>
  string(1) "0"
  ["rows_affected_ps"]=>
  string(1) "0"
  ["rows_skipped_normal"]=>
  string(1) "0"
  ["rows_skipped_ps"]=>
  string(1) "0"
  ["copy_on_write_saved"]=>
  string(1) "0"
  ["copy_on_write_performed"]=>
  string(1) "0"
  ["command_buffer_too_small"]=>
  string(1) "0"
  ["connect_success"]=>
  string(1) "1"
  ["connect_failure"]=>
  string(1) "0"
  ["connection_reused"]=>
  string(1) "0"
  ["reconnect"]=>
  string(1) "0"
  ["pconnect_success"]=>
  string(1) "0"
  ["active_connections"]=>
  string(1) "1"
  ["active_persistent_connections"]=>
  string(1) "0"
  ["explicit_close"]=>
  string(1) "0"
  ["implicit_close"]=>
  string(1) "0"
  ["disconnect_close"]=>
  string(1) "0"
  ["in_middle_of_command_close"]=>
  string(1) "0"
  ["explicit_free_result"]=>
  string(1) "0"
  ["implicit_free_result"]=>
  string(1) "0"
  ["explicit_stmt_close"]=>
  string(1) "0"
  ["implicit_stmt_close"]=>
  string(1) "0"
  ["mem_emalloc_count"]=>
  string(1) "0"
  ["mem_emalloc_amount"]=>
  string(1) "0"
  ["mem_ecalloc_count"]=>
  string(1) "0"
  ["mem_ecalloc_amount"]=>
  string(1) "0"
  ["mem_erealloc_count"]=>
  string(1) "0"
  ["mem_erealloc_amount"]=>
  string(1) "0"
  ["mem_efree_count"]=>
  string(1) "0"
  ["mem_efree_amount"]=>
  string(1) "0"
  ["mem_malloc_count"]=>
  string(1) "0"
  ["mem_malloc_amount"]=>
  string(1) "0"
  ["mem_calloc_count"]=>
  string(1) "0"
  ["mem_calloc_amount"]=>
  string(1) "0"
  ["mem_realloc_count"]=>
  string(1) "0"
  ["mem_realloc_amount"]=>
  string(1) "0"
  ["mem_free_count"]=>
  string(1) "0"
  ["mem_free_amount"]=>
  string(1) "0"
  ["mem_estrndup_count"]=>
  string(1) "0"
  ["mem_strndup_count"]=>
  string(1) "0"
  ["mem_estndup_count"]=>
  string(1) "0"
  ["mem_strdup_count"]=>
  string(1) "0"
  ["proto_text_fetched_null"]=>
  string(1) "0"
  ["proto_text_fetched_bit"]=>
  string(1) "0"
  ["proto_text_fetched_tinyint"]=>
  string(1) "0"
  ["proto_text_fetched_short"]=>
  string(1) "0"
  ["proto_text_fetched_int24"]=>
  string(1) "0"
  ["proto_text_fetched_int"]=>
  string(1) "0"
  ["proto_text_fetched_bigint"]=>
  string(1) "0"
  ["proto_text_fetched_decimal"]=>
  string(1) "0"
  ["proto_text_fetched_float"]=>
  string(1) "0"
  ["proto_text_fetched_double"]=>
  string(1) "0"
  ["proto_text_fetched_date"]=>
  string(1) "0"
  ["proto_text_fetched_year"]=>
  string(1) "0"
  ["proto_text_fetched_time"]=>
  string(1) "0"
  ["proto_text_fetched_datetime"]=>
  string(1) "0"
  ["proto_text_fetched_timestamp"]=>
  string(1) "0"
  ["proto_text_fetched_string"]=>
  string(1) "0"
  ["proto_text_fetched_blob"]=>
  string(1) "0"
  ["proto_text_fetched_enum"]=>
  string(1) "0"
  ["proto_text_fetched_set"]=>
  string(1) "0"
  ["proto_text_fetched_geometry"]=>
  string(1) "0"
  ["proto_text_fetched_other"]=>
  string(1) "0"
  ["proto_binary_fetched_null"]=>
  string(1) "0"
  ["proto_binary_fetched_bit"]=>
  string(1) "0"
  ["proto_binary_fetched_tinyint"]=>
  string(1) "0"
  ["proto_binary_fetched_short"]=>
  string(1) "0"
  ["proto_binary_fetched_int24"]=>
  string(1) "0"
  ["proto_binary_fetched_int"]=>
  string(1) "0"
  ["proto_binary_fetched_bigint"]=>
  string(1) "0"
  ["proto_binary_fetched_decimal"]=>
  string(1) "0"
  ["proto_binary_fetched_float"]=>
  string(1) "0"
  ["proto_binary_fetched_double"]=>
  string(1) "0"
  ["proto_binary_fetched_date"]=>
  string(1) "0"
  ["proto_binary_fetched_year"]=>
  string(1) "0"
  ["proto_binary_fetched_time"]=>
  string(1) "0"
  ["proto_binary_fetched_datetime"]=>
  string(1) "0"
  ["proto_binary_fetched_timestamp"]=>
  string(1) "0"
  ["proto_binary_fetched_string"]=>
  string(1) "0"
  ["proto_binary_fetched_blob"]=>
  string(1) "0"
  ["proto_binary_fetched_enum"]=>
  string(1) "0"
  ["proto_binary_fetched_set"]=>
  string(1) "0"
  ["proto_binary_fetched_geometry"]=>
  string(1) "0"
  ["proto_binary_fetched_other"]=>
  string(1) "0"
  ["init_command_executed_count"]=>
  string(1) "0"
  ["init_command_failed_count"]=>
  string(1) "0"
  ["com_quit"]=>
  string(1) "0"
  ["com_init_db"]=>
  string(1) "0"
  ["com_query"]=>
  string(1) "0"
  ["com_field_list"]=>
  string(1) "0"
  ["com_create_db"]=>
  string(1) "0"
  ["com_drop_db"]=>
  string(1) "0"
  ["com_refresh"]=>
  string(1) "0"
  ["com_shutdown"]=>
  string(1) "0"
  ["com_statistics"]=>
  string(1) "0"
  ["com_process_info"]=>
  string(1) "0"
  ["com_connect"]=>
  string(1) "0"
  ["com_process_kill"]=>
  string(1) "0"
  ["com_debug"]=>
  string(1) "0"
  ["com_ping"]=>
  string(1) "0"
  ["com_time"]=>
  string(1) "0"
  ["com_delayed_insert"]=>
  string(1) "0"
  ["com_change_user"]=>
  string(1) "0"
  ["com_binlog_dump"]=>
  string(1) "0"
  ["com_table_dump"]=>
  string(1) "0"
  ["com_connect_out"]=>
  string(1) "0"
  ["com_register_slave"]=>
  string(1) "0"
  ["com_stmt_prepare"]=>
  string(1) "0"
  ["com_stmt_execute"]=>
  string(1) "0"
  ["com_stmt_send_long_data"]=>
  string(1) "0"
  ["com_stmt_close"]=>
  string(1) "0"
  ["com_stmt_reset"]=>
  string(1) "0"
  ["com_stmt_set_option"]=>
  string(1) "0"
  ["com_stmt_fetch"]=>
  string(1) "0"
  ["com_deamon"]=>
  string(1) "0"
  ["bytes_received_real_data_normal"]=>
  string(1) "0"
  ["bytes_received_real_data_ps"]=>
  string(1) "0"
}

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_get_connection_stats() - Возвращает статистику соединения с клиентом


Returns the thread ID for the current connection

  • « MysqlndUhConnection::getStatistics
  • MysqlndUhConnection::getWarningCount »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the thread ID for the current connection

MysqlndUhConnection::getThreadId

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getThreadId — Returns the thread ID for the current connection

Описание

public MysqlndUhConnection::getThreadId ( mysqlnd_connection $connection ) : int

Returns the thread ID for the current connection.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Connection thread id.

Примеры

Пример #1 MysqlndUhConnection::getThreadId() example

<?php
class proxy extends MysqlndUhConnection {
 public function getThreadId($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getThreadId($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->thread_id);
?>

Результат выполнения данного примера:

proxy::getThreadId(array (
  0 => NULL,
))
proxy::getThreadId returns 27646
int(27646)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_thread_id() - Возвращает ID процесса текущего подключения
  • mysql_thread_id() - Возвращает идентификатор текущего потока


Returns the number of warnings from the last query for the given link

  • « MysqlndUhConnection::getThreadId
  • MysqlndUhConnection::init »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the number of warnings from the last query for the given link

MysqlndUhConnection::getWarningCount

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getWarningCount — Returns the number of warnings from the last query for the given link

Описание

public MysqlndUhConnection::getWarningCount ( mysqlnd_connection $connection ) : int

Returns the number of warnings from the last query for the given link.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Number of warnings.

Примеры

Пример #1 MysqlndUhConnection::getWarningCount() example

<?php
class proxy extends MysqlndUhConnection {
 public function getWarningCount($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getWarningCount($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->warning_count);
?>

Результат выполнения данного примера:

proxy::getWarningCount(array (
  0 => NULL,
))
proxy::getWarningCount returns 0
int(0)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_warning_count() - Возвращает количество предупреждений из последнего запроса заданного подключения


Initialize mysqlnd connection

  • « MysqlndUhConnection::getWarningCount
  • MysqlndUhConnection::killConnection »
  • PHP Manual
  • MysqlndUhConnection
  • Initialize mysqlnd connection

MysqlndUhConnection::init

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::init — Initialize mysqlnd connection

Описание

public MysqlndUhConnection::init ( mysqlnd_connection $connection ) : bool

Initialize mysqlnd connection. This is an mysqlnd internal call to initialize the connection object.

Замечание:

Failing to call the parent implementation may cause memory leaks or crash PHP. This is not considered a bug. Please, keep in mind that the mysqlnd library functions have never been designed to be exposed to the user space.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::init() example

<?php
class proxy extends MysqlndUhConnection {
 public function init($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::init($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
?>

Результат выполнения данного примера:

proxy::init(array (
  0 => NULL,
))
proxy::init returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Asks the server to kill a MySQL thread

  • « MysqlndUhConnection::init
  • MysqlndUhConnection::listFields »
  • PHP Manual
  • MysqlndUhConnection
  • Asks the server to kill a MySQL thread

MysqlndUhConnection::killConnection

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::killConnection — Asks the server to kill a MySQL thread

Описание

public MysqlndUhConnection::killConnection ( mysqlnd_connection $connection , int $pid ) : bool

Asks the server to kill a MySQL thread.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

pid

Thread Id of the connection to be killed.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::kill() example

<?php
class proxy extends MysqlndUhConnection {
 public function killConnection($res, $pid) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::killConnection($res, $pid);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->kill($mysqli->thread_id);
?>

Результат выполнения данного примера:

proxy::killConnection(array (
  0 => NULL,
  1 => 27650,
))
proxy::killConnection returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_kill() - Запрос для сервера завершить выполнение процесса MySQL


List MySQL table fields

  • « MysqlndUhConnection::killConnection
  • MysqlndUhConnection::listMethod »
  • PHP Manual
  • MysqlndUhConnection
  • List MySQL table fields

MysqlndUhConnection::listFields

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::listFields — List MySQL table fields

Описание

public MysqlndUhConnection::listFields ( mysqlnd_connection $connection , string $table , string $achtung_wild ) : array

List MySQL table fields.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

table

The name of the table that's being queried.

pattern

Name pattern.

Возвращаемые значения

Примеры

Пример #1 MysqlndUhConnection::listFields() example

<?php
class proxy extends MysqlndUhConnection {
 public function listFields($res, $table, $pattern) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::listFields($res, $table, $pattern);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysql = mysql_connect("localhost", "root", "");
mysql_select_db("test", $mysql);
mysql_query("DROP TABLE IF EXISTS test_a", $mysql);
mysql_query("CREATE TABLE test_a(id INT, col1 VARCHAR(255))", $mysql);
$res = mysql_list_fields("test", "test_a", $mysql);
printf("num_rows = %d\n", mysql_num_rows($res));
while ($row = mysql_fetch_assoc($res))
 var_dump($row);
?>

Результат выполнения данного примера:

proxy::listFields(array (
  0 => NULL,
  1 => 'test_a',
  2 => '',
))
proxy::listFields returns NULL
num_rows = 0

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysql_list_fields() - Возвращает список колонок таблицы


Wrapper for assorted list commands

  • « MysqlndUhConnection::listFields
  • MysqlndUhConnection::moreResults »
  • PHP Manual
  • MysqlndUhConnection
  • Wrapper for assorted list commands

MysqlndUhConnection::listMethod

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::listMethod — Wrapper for assorted list commands

Описание

public MysqlndUhConnection::listMethod ( mysqlnd_connection $connection , string $query , string $achtung_wild , string $par1 ) : void

Wrapper for assorted list commands.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

query

SHOW command to be executed.

achtung_wild

par1

Возвращаемые значения

Возвращаемые значения

TODO

Примеры

Пример #1 MysqlndUhConnection::listMethod() example

<?php
class proxy extends MysqlndUhConnection {
 public function listMethod($res, $query, $pattern, $par1) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::listMethod($res, $query, $pattern, $par1);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysql = mysql_connect("localhost", "root", "");
$res = mysql_list_dbs($mysql);
printf("num_rows = %d\n", mysql_num_rows($res));
while ($row = mysql_fetch_assoc($res))
 var_dump($row);
?>

Результат выполнения данного примера:

proxy::listMethod(array (
  0 => NULL,
  1 => 'SHOW DATABASES',
  2 => '',
  3 => '',
))
proxy::listMethod returns NULL
num_rows = 6
array(1) {
  ["Database"]=>
  string(18) "information_schema"
}
array(1) {
  ["Database"]=>
  string(5) "mysql"
}
array(1) {
  ["Database"]=>
  string(8) "oxid_new"
}
array(1) {
  ["Database"]=>
  string(7) "phptest"
}
array(1) {
  ["Database"]=>
  string(7) "pushphp"
}
array(1) {
  ["Database"]=>
  string(4) "test"
}

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysql_list_dbs() - Возвращает список баз данных, доступных на сервере


Check if there are any more query results from a multi query

  • « MysqlndUhConnection::listMethod
  • MysqlndUhConnection::nextResult »
  • PHP Manual
  • MysqlndUhConnection
  • Check if there are any more query results from a multi query

MysqlndUhConnection::moreResults

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::moreResults — Check if there are any more query results from a multi query

Описание

public MysqlndUhConnection::moreResults ( mysqlnd_connection $connection ) : bool

Check if there are any more query results from a multi query.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::moreResults() example

<?php
class proxy extends MysqlndUhConnection {
 public function moreResults($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::moreResults($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->multi_query("SELECT 1 AS _one; SELECT 2 AS _two");
do {
  $res = $mysqli->store_result();
  var_dump($res->fetch_assoc());
  printf("%s\n", str_repeat("-", 40));
} while ($mysqli->more_results() && $mysqli->next_result());
?>

Результат выполнения данного примера:

array(1) {
  ["_one"]=>
  string(1) "1"
}
----------------------------------------
proxy::moreResults(array (
  0 => NULL,
))
proxy::moreResults returns true
proxy::moreResults(array (
  0 => NULL,
))
proxy::moreResults returns true
array(1) {
  ["_two"]=>
  string(1) "2"
}
----------------------------------------
proxy::moreResults(array (
  0 => NULL,
))
proxy::moreResults returns false

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_more_results() - Проверка, есть ли еще результаты в мультизапросе


Prepare next result from multi_query

  • « MysqlndUhConnection::moreResults
  • MysqlndUhConnection::ping »
  • PHP Manual
  • MysqlndUhConnection
  • Prepare next result from multi_query

MysqlndUhConnection::nextResult

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::nextResult — Prepare next result from multi_query

Описание

public MysqlndUhConnection::nextResult ( mysqlnd_connection $connection ) : bool

Prepare next result from multi_query.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::nextResult() example

<?php
class proxy extends MysqlndUhConnection {
 public function nextResult($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::nextResult($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->multi_query("SELECT 1 AS _one; SELECT 2 AS _two");
do {
  $res = $mysqli->store_result();
  var_dump($res->fetch_assoc());
  printf("%s\n", str_repeat("-", 40));
} while ($mysqli->more_results() && $mysqli->next_result());
?>

Результат выполнения данного примера:

array(1) {
  ["_one"]=>
  string(1) "1"
}
----------------------------------------
proxy::nextResult(array (
  0 => NULL,
))
proxy::nextResult returns true
array(1) {
  ["_two"]=>
  string(1) "2"
}
----------------------------------------

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_next_result() - Подготовка следующего доступного результирующего набора из multi_query


Pings a server connection, or tries to reconnect if the connection has gone down

  • « MysqlndUhConnection::nextResult
  • MysqlndUhConnection::query »
  • PHP Manual
  • MysqlndUhConnection
  • Pings a server connection, or tries to reconnect if the connection has gone down

MysqlndUhConnection::ping

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::ping — Pings a server connection, or tries to reconnect if the connection has gone down

Описание

public MysqlndUhConnection::ping ( mysqlnd_connection $connection ) : bool

Pings a server connection, or tries to reconnect if the connection has gone down.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::ping() example

<?php
class proxy extends MysqlndUhConnection {
 public function ping($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::ping($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->ping();
?>

Результат выполнения данного примера:

proxy::ping(array (
  0 => NULL,
))
proxy::ping returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_ping() - Проверяет работоспособность соединения или пытается переподключиться, если соединение разорвано
  • mysql_ping() - Проверяет соединение с сервером и пересоединяется при необходимости


Performs a query on the database

  • « MysqlndUhConnection::ping
  • MysqlndUhConnection::queryReadResultsetHeader »
  • PHP Manual
  • MysqlndUhConnection
  • Performs a query on the database

MysqlndUhConnection::query

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::query — Performs a query on the database

Описание

public MysqlndUhConnection::query ( mysqlnd_connection $connection , string $query ) : bool

Performs a query on the database (COM_QUERY).

Список параметров

connection

Mysqlnd connection handle. Do not modify!

query

The query string.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::query() example

<?php
class proxy extends MysqlndUhConnection {
 public function query($res, $query) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $query = "SELECT 'How about query rewriting?'";
  $ret = parent::query($res, $query);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$res = $mysqli->query("SELECT 'Welcome mysqlnd_uh!' FROM DUAL");
var_dump($res->fetch_assoc());
?>

Результат выполнения данного примера:

proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'Welcome mysqlnd_uh!\' FROM DUAL',
))
proxy::query returns true
array(1) {
  ["How about query rewriting?"]=>
  string(26) "How about query rewriting?"
}

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_query() - Выполняет запрос к базе данных
  • mysql_query() - Посылает запрос MySQL


Read a result set header

  • « MysqlndUhConnection::query
  • MysqlndUhConnection::reapQuery »
  • PHP Manual
  • MysqlndUhConnection
  • Read a result set header

MysqlndUhConnection::queryReadResultsetHeader

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::queryReadResultsetHeader — Read a result set header

Описание

public MysqlndUhConnection::queryReadResultsetHeader ( mysqlnd_connection $connection , mysqlnd_statement $mysqlnd_stmt ) : bool

Read a result set header.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

mysqlnd_stmt

Mysqlnd statement handle. Do not modify! Set to NULL, if function is not used in the context of a prepared statement.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::queryReadResultsetHeader() example

<?php
class proxy extends MysqlndUhConnection {
 public function queryReadResultsetHeader($res, $stmt) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::queryReadResultsetHeader($res, $stmt);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$res = $mysqli->query("SELECT 'Welcome mysqlnd_uh!' FROM DUAL");
var_dump($res->fetch_assoc());
?>

Результат выполнения данного примера:

proxy::queryReadResultsetHeader(array (
  0 => NULL,
  1 => NULL,
))
proxy::queryReadResultsetHeader returns true
array(1) {
  ["Welcome mysqlnd_uh!"]=>
  string(19) "Welcome mysqlnd_uh!"
}

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Get result from async query

  • « MysqlndUhConnection::queryReadResultsetHeader
  • MysqlndUhConnection::refreshServer »
  • PHP Manual
  • MysqlndUhConnection
  • Get result from async query

MysqlndUhConnection::reapQuery

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::reapQuery — Get result from async query

Описание

public MysqlndUhConnection::reapQuery ( mysqlnd_connection $connection ) : bool

Get result from async query.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::reapQuery() example

<?php
class proxy extends MysqlndUhConnection {
 public function reapQuery($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::reapQuery($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$conn1 = new mysqli("localhost", "root", "", "test");
$conn2 = new mysqli("localhost", "root", "", "test");

$conn1->query("SELECT 1 as 'one', SLEEP(1) AS _sleep FROM DUAL", MYSQLI_ASYNC |  MYSQLI_USE_RESULT);
$conn2->query("SELECT 1.1 as 'one dot one' FROM DUAL", MYSQLI_ASYNC |  MYSQLI_USE_RESULT);

$links = array(
 $conn1->thread_id => array('link' => $conn1, 'processed' => false),
 $conn2->thread_id => array('link' => $conn2, 'processed' => false)
);

$saved_errors = array();
do {
 $poll_links = $poll_errors = $poll_reject = array();
 foreach ($links as $thread_id => $link) {
  if (!$link['processed']) {
   $poll_links[] = $link['link'];
   $poll_errors[] = $link['link'];
   $poll_reject[] = $link['link'];
  }
 }
 if (0 == count($poll_links))
  break;

 if (0 == ($num_ready = mysqli_poll($poll_links, $poll_errors, $poll_reject, 0, 200000)))
  continue;

 if (!empty($poll_errors)) {
  die(var_dump($poll_errors));
 }

 foreach ($poll_links as $link) {
  $thread_id = mysqli_thread_id($link);
  $links[$thread_id]['processed'] = true;

  if (is_object($res = mysqli_reap_async_query($link))) {
   // result set object
   while ($row = mysqli_fetch_assoc($res)) {
    // eat up all results
    var_dump($row);
   }
   mysqli_free_result($res);
  } else {
   // either there is no result (no SELECT) or there is an error
   if (mysqli_errno($link) > 0) {
    $saved_errors[$thread_id] = mysqli_errno($link);
    printf("'%s' caused %d\n", $links[$thread_id]['query'],     mysqli_errno($link));
   }
  }
 }
} while (true);
?>

Результат выполнения данного примера:

proxy::reapQuery(array (
  0 => NULL,
))
proxy::reapQuery returns true
array(1) {
  ["one dot one"]=>
  string(3) "1.1"
}
proxy::reapQuery(array (
  0 => NULL,
))
proxy::reapQuery returns true
array(2) {
  ["one"]=>
  string(1) "1"
  ["_sleep"]=>
  string(1) "0"
}

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_real_async_query()


Flush or reset tables and caches

  • « MysqlndUhConnection::reapQuery
  • MysqlndUhConnection::restartPSession »
  • PHP Manual
  • MysqlndUhConnection
  • Flush or reset tables and caches

MysqlndUhConnection::refreshServer

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::refreshServer — Flush or reset tables and caches

Описание

public MysqlndUhConnection::refreshServer ( mysqlnd_connection $connection , int $options ) : bool

Flush or reset tables and caches.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

options

What to refresh.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::refreshServer() example

<?php
class proxy extends MysqlndUhConnection {
 public function refreshServer($res, $option) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::refreshServer($res, $option);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
mysqli_refresh($mysqli, 1);
?>

Результат выполнения данного примера:

proxy::refreshServer(array (
  0 => NULL,
  1 => 1,
))
proxy::refreshServer returns false

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Restart a persistent mysqlnd connection

  • « MysqlndUhConnection::refreshServer
  • MysqlndUhConnection::selectDb »
  • PHP Manual
  • MysqlndUhConnection
  • Restart a persistent mysqlnd connection

MysqlndUhConnection::restartPSession

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::restartPSession — Restart a persistent mysqlnd connection

Описание

public MysqlndUhConnection::restartPSession ( mysqlnd_connection $connection ) : bool

Restart a persistent mysqlnd connection.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::restartPSession() example

<?php
class proxy extends MysqlndUhConnection {
 public function ping($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::ping($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->ping();
?>

Результат выполнения данного примера:

proxy::restartPSession(array (
  0 => NULL,
))
proxy::restartPSession returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Selects the default database for database queries

  • « MysqlndUhConnection::restartPSession
  • MysqlndUhConnection::sendClose »
  • PHP Manual
  • MysqlndUhConnection
  • Selects the default database for database queries

MysqlndUhConnection::selectDb

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::selectDb — Selects the default database for database queries

Описание

public MysqlndUhConnection::selectDb ( mysqlnd_connection $connection , string $database ) : bool

Selects the default database for database queries.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

database

The database name.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::selectDb() example

<?php
class proxy extends MysqlndUhConnection {
 public function selectDb($res, $database) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::selectDb($res, $database);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->select_db("mysql");
?>

Результат выполнения данного примера:

proxy::selectDb(array (
  0 => NULL,
  1 => 'mysql',
))
proxy::selectDb returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_select_db() - Устанавливает базу данных для выполняемых запросов
  • mysql_select_db() - Выбирает базу данных MySQL


Sends a close command to MySQL

  • « MysqlndUhConnection::selectDb
  • MysqlndUhConnection::sendQuery »
  • PHP Manual
  • MysqlndUhConnection
  • Sends a close command to MySQL

MysqlndUhConnection::sendClose

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::sendClose — Sends a close command to MySQL

Описание

public MysqlndUhConnection::sendClose ( mysqlnd_connection $connection ) : bool

Sends a close command to MySQL.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::sendClose() example

<?php
class proxy extends MysqlndUhConnection {
 public function sendClose($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::sendClose($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->close();
?>

Результат выполнения данного примера:

proxy::sendClose(array (
  0 => NULL,
))
proxy::sendClose returns true
proxy::sendClose(array (
  0 => NULL,
))
proxy::sendClose returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Sends a query to MySQL

  • « MysqlndUhConnection::sendClose
  • MysqlndUhConnection::serverDumpDebugInformation »
  • PHP Manual
  • MysqlndUhConnection
  • Sends a query to MySQL

MysqlndUhConnection::sendQuery

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::sendQuery — Sends a query to MySQL

Описание

public MysqlndUhConnection::sendQuery ( mysqlnd_connection $connection , string $query ) : bool

Sends a query to MySQL.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

query

The query string.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::sendQuery() example

<?php
class proxy extends MysqlndUhConnection {
 public function sendQuery($res, $query) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::sendQuery($res, $query);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("SELECT 1");
?>

Результат выполнения данного примера:

proxy::sendQuery(array (
  0 => NULL,
  1 => 'SELECT 1',
))
proxy::sendQuery returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Dump debugging information into the log for the MySQL server

  • « MysqlndUhConnection::sendQuery
  • MysqlndUhConnection::setAutocommit »
  • PHP Manual
  • MysqlndUhConnection
  • Dump debugging information into the log for the MySQL server

MysqlndUhConnection::serverDumpDebugInformation

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::serverDumpDebugInformation — Dump debugging information into the log for the MySQL server

Описание

public MysqlndUhConnection::serverDumpDebugInformation ( mysqlnd_connection $connection ) : bool

Dump debugging information into the log for the MySQL server.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::serverDumpDebugInformation() example

<?php
class proxy extends MysqlndUhConnection {
 public function serverDumpDebugInformation($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::serverDumpDebugInformation($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->dump_debug_info();
?>

Результат выполнения данного примера:

proxy::serverDumpDebugInformation(array (
  0 => NULL,
))
proxy::serverDumpDebugInformation returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_dump_debug_info() - Журналирование отладочной информации


Turns on or off auto-committing database modifications

  • « MysqlndUhConnection::serverDumpDebugInformation
  • MysqlndUhConnection::setCharset »
  • PHP Manual
  • MysqlndUhConnection
  • Turns on or off auto-committing database modifications

MysqlndUhConnection::setAutocommit

(PECL mysqlnd-uh >= 1.0.1-alpha)

MysqlndUhConnection::setAutocommit — Turns on or off auto-committing database modifications

Описание

public MysqlndUhConnection::setAutocommit ( mysqlnd_connection $connection , int $mode ) : bool

Turns on or off auto-committing database modifications

Список параметров

connection

Mysqlnd connection handle. Do not modify!

mode

Whether to turn on auto-commit or not.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::setAutocommit() example

<?php
class proxy extends MysqlndUhConnection {
 public function setAutocommit($res, $mode) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::setAutocommit($res, $mode);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->autocommit(false);
$mysqli->autocommit(true);
?>

Результат выполнения данного примера:

proxy::setAutocommit(array (
  0 => NULL,
  1 => 0,
))
proxy::setAutocommit returns true
proxy::setAutocommit(array (
  0 => NULL,
  1 => 1,
))
proxy::setAutocommit returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_autocommit() - Включает или отключает автоматическую фиксацию изменений базы данных


Sets the default client character set

  • « MysqlndUhConnection::setAutocommit
  • MysqlndUhConnection::setClientOption »
  • PHP Manual
  • MysqlndUhConnection
  • Sets the default client character set

MysqlndUhConnection::setCharset

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::setCharset — Sets the default client character set

Описание

public MysqlndUhConnection::setCharset ( mysqlnd_connection $connection , string $charset ) : bool

Sets the default client character set.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

charset

The charset to be set as default.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::setCharset() example

<?php
class proxy extends MysqlndUhConnection {
 public function setCharset($res, $charset) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::setCharset($res, $charset);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->set_charset("latin1");
?>

Результат выполнения данного примера:

proxy::setCharset(array (
  0 => NULL,
  1 => 'latin1',
))
proxy::setCharset returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_set_charset() - Задает набор символов по умолчанию


Sets a client option

  • « MysqlndUhConnection::setCharset
  • MysqlndUhConnection::setServerOption »
  • PHP Manual
  • MysqlndUhConnection
  • Sets a client option

MysqlndUhConnection::setClientOption

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::setClientOption — Sets a client option

Описание

public MysqlndUhConnection::setClientOption ( mysqlnd_connection $connection , int $option , int $value ) : bool

Sets a client option.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

option

The option to be set.

value

Optional option value, if required.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::setClientOption() example

<?php
function client_option_to_string($option) {
 static $mapping = array(
  MYSQLND_UH_MYSQLND_OPTION_OPT_CONNECT_TIMEOUT => "MYSQLND_UH_MYSQLND_OPTION_OPT_CONNECT_TIMEOUT",
  MYSQLND_UH_MYSQLND_OPTION_OPT_COMPRESS => "MYSQLND_UH_MYSQLND_OPTION_OPT_COMPRESS",
  MYSQLND_UH_MYSQLND_OPTION_OPT_NAMED_PIPE => "MYSQLND_UH_MYSQLND_OPTION_OPT_NAMED_PIPE",
  MYSQLND_UH_MYSQLND_OPTION_INIT_COMMAND => "MYSQLND_UH_MYSQLND_OPTION_INIT_COMMAND",
  MYSQLND_UH_MYSQLND_READ_DEFAULT_FILE => "MYSQLND_UH_MYSQLND_READ_DEFAULT_FILE",
  MYSQLND_UH_MYSQLND_READ_DEFAULT_GROUP => "MYSQLND_UH_MYSQLND_READ_DEFAULT_GROUP",
  MYSQLND_UH_MYSQLND_SET_CHARSET_DIR => "MYSQLND_UH_MYSQLND_SET_CHARSET_DIR",
  MYSQLND_UH_MYSQLND_SET_CHARSET_NAME => "MYSQLND_UH_MYSQLND_SET_CHARSET_NAME",
  MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE => "MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE",
  MYSQLND_UH_MYSQLND_OPT_PROTOCOL => "MYSQLND_UH_MYSQLND_OPT_PROTOCOL",
  MYSQLND_UH_MYSQLND_SHARED_MEMORY_BASE_NAME => "MYSQLND_UH_MYSQLND_SHARED_MEMORY_BASE_NAME",
  MYSQLND_UH_MYSQLND_OPT_READ_TIMEOUT => "MYSQLND_UH_MYSQLND_OPT_READ_TIMEOUT",
  MYSQLND_UH_MYSQLND_OPT_WRITE_TIMEOUT => "MYSQLND_UH_MYSQLND_OPT_WRITE_TIMEOUT",
  MYSQLND_UH_MYSQLND_OPT_USE_RESULT => "MYSQLND_UH_MYSQLND_OPT_USE_RESULT",
  MYSQLND_UH_MYSQLND_OPT_USE_REMOTE_CONNECTION => "MYSQLND_UH_MYSQLND_OPT_USE_REMOTE_CONNECTION",
  MYSQLND_UH_MYSQLND_OPT_USE_EMBEDDED_CONNECTION => "MYSQLND_UH_MYSQLND_OPT_USE_EMBEDDED_CONNECTION",
  MYSQLND_UH_MYSQLND_OPT_GUESS_CONNECTION => "MYSQLND_UH_MYSQLND_OPT_GUESS_CONNECTION",
  MYSQLND_UH_MYSQLND_SET_CLIENT_IP => "MYSQLND_UH_MYSQLND_SET_CLIENT_IP",
  MYSQLND_UH_MYSQLND_SECURE_AUTH => "MYSQLND_UH_MYSQLND_SECURE_AUTH",
  MYSQLND_UH_MYSQLND_REPORT_DATA_TRUNCATION => "MYSQLND_UH_MYSQLND_REPORT_DATA_TRUNCATION",
  MYSQLND_UH_MYSQLND_OPT_RECONNECT => "MYSQLND_UH_MYSQLND_OPT_RECONNECT",
  MYSQLND_UH_MYSQLND_OPT_SSL_VERIFY_SERVER_CERT => "MYSQLND_UH_MYSQLND_OPT_SSL_VERIFY_SERVER_CERT",
  MYSQLND_UH_MYSQLND_OPT_NET_CMD_BUFFER_SIZE => "MYSQLND_UH_MYSQLND_OPT_NET_CMD_BUFFER_SIZE",
  MYSQLND_UH_MYSQLND_OPT_NET_READ_BUFFER_SIZE => "MYSQLND_UH_MYSQLND_OPT_NET_READ_BUFFER_SIZE",
  MYSQLND_UH_MYSQLND_OPT_SSL_KEY => "MYSQLND_UH_MYSQLND_OPT_SSL_KEY",
  MYSQLND_UH_MYSQLND_OPT_SSL_CERT => "MYSQLND_UH_MYSQLND_OPT_SSL_CERT",
  MYSQLND_UH_MYSQLND_OPT_SSL_CA => "MYSQLND_UH_MYSQLND_OPT_SSL_CA",
  MYSQLND_UH_MYSQLND_OPT_SSL_CAPATH => "MYSQLND_UH_MYSQLND_OPT_SSL_CAPATH",
  MYSQLND_UH_MYSQLND_OPT_SSL_CIPHER => "MYSQLND_UH_MYSQLND_OPT_SSL_CIPHER",
  MYSQLND_UH_MYSQLND_OPT_SSL_PASSPHRASE => "MYSQLND_UH_MYSQLND_OPT_SSL_PASSPHRASE",
  MYSQLND_UH_SERVER_OPTION_PLUGIN_DIR => "MYSQLND_UH_SERVER_OPTION_PLUGIN_DIR",
  MYSQLND_UH_SERVER_OPTION_DEFAULT_AUTH => "MYSQLND_UH_SERVER_OPTION_DEFAULT_AUTH",
  MYSQLND_UH_SERVER_OPTION_SET_CLIENT_IP => "MYSQLND_UH_SERVER_OPTION_SET_CLIENT_IP"
 );
 if (version_compare(PHP_VERSION, '5.3.99-dev', '>')) {
  $mapping[MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET] = "MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET";
  $mapping[MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL] = "MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL";
 }
 if (defined("MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE")) {
  /* special mysqlnd build */
  $mapping["MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE"] = "MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE";
 }
 return (isset($mapping[$option])) ? $mapping[$option] : 'unknown';
}

class proxy extends MysqlndUhConnection {
 public function setClientOption($res, $option, $value) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  printf("Option '%s' set to %s\n", client_option_to_string($option), var_export($value, true));
  $ret = parent::setClientOption($res, $option, $value);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
?>

Результат выполнения данного примера:

proxy::setClientOption(array (
  0 => NULL,
  1 => 210,
  2 => 3221225472,
))
Option 'MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET' set to 3221225472
proxy::setClientOption returns true
proxy::setClientOption(array (
  0 => NULL,
  1 => 211,
  2 => 'mysql_native_password',
))
Option 'MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL' set to 'mysql_native_password'
proxy::setClientOption returns true
proxy::setClientOption(array (
  0 => NULL,
  1 => 8,
  2 => 1,
))
Option 'MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE' set to 1
proxy::setClientOption returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_real_connect() - Устанавливает соединение с сервером mysql
  • mysqli_options() - Установка настроек


Sets a server option

  • « MysqlndUhConnection::setClientOption
  • MysqlndUhConnection::shutdownServer »
  • PHP Manual
  • MysqlndUhConnection
  • Sets a server option

MysqlndUhConnection::setServerOption

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::setServerOption — Sets a server option

Описание

public MysqlndUhConnection::setServerOption ( mysqlnd_connection $connection , int $option ) : void

Sets a server option.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

option

The option to be set.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::setServerOption() example

<?php
function server_option_to_string($option) {
 $ret = 'unknown';
 switch ($option) {
  case MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON:
   $ret = 'MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON';
   break;
  case MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_OFF:
   $ret = 'MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON';
   break;
 }
 return $ret;
}

class proxy extends MysqlndUhConnection {
 public function setServerOption($res, $option) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  printf("Option '%s' set\n", server_option_to_string($option));
  $ret = parent::setServerOption($res, $option);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->multi_query("SELECT 1; SELECT 2");
?>

Результат выполнения данного примера:

proxy::setServerOption(array (
  0 => NULL,
  1 => 0,
))
Option 'MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON' set
proxy::setServerOption returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_real_connect() - Устанавливает соединение с сервером mysql
  • mysqli_options() - Установка настроек
  • mysqli_multi_query() - Выполняет запрос к базе данных


The shutdownServer purpose

  • « MysqlndUhConnection::setServerOption
  • MysqlndUhConnection::simpleCommand »
  • PHP Manual
  • MysqlndUhConnection
  • The shutdownServer purpose

MysqlndUhConnection::shutdownServer

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::shutdownServer — The shutdownServer purpose

Описание

public MysqlndUhConnection::shutdownServer ( string $MYSQLND_UH_RES_MYSQLND_NAME , string $level ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

MYSQLND_UH_RES_MYSQLND_NAME

level

Возвращаемые значения


Sends a basic COM_* command

  • « MysqlndUhConnection::shutdownServer
  • MysqlndUhConnection::simpleCommandHandleResponse »
  • PHP Manual
  • MysqlndUhConnection
  • Sends a basic COM_* command

MysqlndUhConnection::simpleCommand

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::simpleCommand — Sends a basic COM_* command

Описание

public MysqlndUhConnection::simpleCommand ( mysqlnd_connection $connection , int $command , string $arg , int $ok_packet , bool $silent , bool $ignore_upsert_status ) : bool

Sends a basic COM_* command to MySQL.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

command

The COM command to be send.

arg

Optional COM command arguments.

ok_packet

The OK packet type.

silent

Whether mysqlnd may emit errors.

ignore_upsert_status

Whether to ignore UPDATE/INSERT status.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::simpleCommand() example

<?php
function server_cmd_2_string($command) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_COM_SLEEP => "MYSQLND_UH_MYSQLND_COM_SLEEP",
  MYSQLND_UH_MYSQLND_COM_QUIT => "MYSQLND_UH_MYSQLND_COM_QUIT",
  MYSQLND_UH_MYSQLND_COM_INIT_DB => "MYSQLND_UH_MYSQLND_COM_INIT_DB",
  MYSQLND_UH_MYSQLND_COM_QUERY => "MYSQLND_UH_MYSQLND_COM_QUERY",
  MYSQLND_UH_MYSQLND_COM_FIELD_LIST => "MYSQLND_UH_MYSQLND_COM_FIELD_LIST",
  MYSQLND_UH_MYSQLND_COM_CREATE_DB => "MYSQLND_UH_MYSQLND_COM_CREATE_DB",
  MYSQLND_UH_MYSQLND_COM_DROP_DB => "MYSQLND_UH_MYSQLND_COM_DROP_DB",
  MYSQLND_UH_MYSQLND_COM_REFRESH => "MYSQLND_UH_MYSQLND_COM_REFRESH",
  MYSQLND_UH_MYSQLND_COM_SHUTDOWN => "MYSQLND_UH_MYSQLND_COM_SHUTDOWN",
  MYSQLND_UH_MYSQLND_COM_STATISTICS => "MYSQLND_UH_MYSQLND_COM_STATISTICS",
  MYSQLND_UH_MYSQLND_COM_PROCESS_INFO => "MYSQLND_UH_MYSQLND_COM_PROCESS_INFO",
  MYSQLND_UH_MYSQLND_COM_CONNECT => "MYSQLND_UH_MYSQLND_COM_CONNECT",
  MYSQLND_UH_MYSQLND_COM_PROCESS_KILL => "MYSQLND_UH_MYSQLND_COM_PROCESS_KILL",
  MYSQLND_UH_MYSQLND_COM_DEBUG => "MYSQLND_UH_MYSQLND_COM_DEBUG",
  MYSQLND_UH_MYSQLND_COM_PING => "MYSQLND_UH_MYSQLND_COM_PING",
  MYSQLND_UH_MYSQLND_COM_TIME => "MYSQLND_UH_MYSQLND_COM_TIME",
  MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT => "MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT",
  MYSQLND_UH_MYSQLND_COM_CHANGE_USER => "MYSQLND_UH_MYSQLND_COM_CHANGE_USER",
  MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP => "MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP",
  MYSQLND_UH_MYSQLND_COM_TABLE_DUMP => "MYSQLND_UH_MYSQLND_COM_TABLE_DUMP",
  MYSQLND_UH_MYSQLND_COM_CONNECT_OUT => "MYSQLND_UH_MYSQLND_COM_CONNECT_OUT",
  MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED => "MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED",
  MYSQLND_UH_MYSQLND_COM_STMT_PREPARE => "MYSQLND_UH_MYSQLND_COM_STMT_PREPARE",
  MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE => "MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE",
  MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA => "MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA",
  MYSQLND_UH_MYSQLND_COM_STMT_CLOSE => "MYSQLND_UH_MYSQLND_COM_STMT_CLOSE",
  MYSQLND_UH_MYSQLND_COM_STMT_RESET => "MYSQLND_UH_MYSQLND_COM_STMT_RESET",
  MYSQLND_UH_MYSQLND_COM_SET_OPTION => "MYSQLND_UH_MYSQLND_COM_SET_OPTION",
  MYSQLND_UH_MYSQLND_COM_STMT_FETCH => "MYSQLND_UH_MYSQLND_COM_STMT_FETCH",
  MYSQLND_UH_MYSQLND_COM_DAEMON => "MYSQLND_UH_MYSQLND_COM_DAEMON",
  MYSQLND_UH_MYSQLND_COM_END => "MYSQLND_UH_MYSQLND_COM_END",
 );
 return (isset($mapping[$command])) ? $mapping[$command] : 'unknown';
}

function ok_packet_2_string($ok_packet) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_PROT_GREET_PACKET => "MYSQLND_UH_MYSQLND_PROT_GREET_PACKET",
  MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET => "MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET",
  MYSQLND_UH_MYSQLND_PROT_OK_PACKET => "MYSQLND_UH_MYSQLND_PROT_OK_PACKET",
  MYSQLND_UH_MYSQLND_PROT_EOF_PACKET => "MYSQLND_UH_MYSQLND_PROT_EOF_PACKET",
  MYSQLND_UH_MYSQLND_PROT_CMD_PACKET => "MYSQLND_UH_MYSQLND_PROT_CMD_PACKET",
  MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET => "MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET",
  MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET => "MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET",
  MYSQLND_UH_MYSQLND_PROT_ROW_PACKET => "MYSQLND_UH_MYSQLND_PROT_ROW_PACKET",
  MYSQLND_UH_MYSQLND_PROT_STATS_PACKET => "MYSQLND_UH_MYSQLND_PROT_STATS_PACKET",
  MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET => "MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET",
  MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET => "MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET",
  MYSQLND_UH_MYSQLND_PROT_LAST => "MYSQLND_UH_MYSQLND_PROT_LAST",
 );
 return (isset($mapping[$ok_packet])) ? $mapping[$ok_packet] : 'unknown';
}

class proxy extends MysqlndUhConnection {
 public function simpleCommand($conn, $command, $arg, $ok_packet, $silent, $ignore_upsert_status) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  printf("Command '%s'\n", server_cmd_2_string($command));
  printf("OK packet '%s'\n",  ok_packet_2_string($ok_packet));
  $ret = parent::simpleCommand($conn, $command, $arg, $ok_packet, $silent, $ignore_upsert_status);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("SELECT 1");
?>

Результат выполнения данного примера:

proxy::simpleCommand(array (
  0 => NULL,
  1 => 3,
  2 => 'SELECT 1',
  3 => 13,
  4 => false,
  5 => false,
))
Command 'MYSQLND_UH_MYSQLND_COM_QUERY'
OK packet 'MYSQLND_UH_MYSQLND_PROT_LAST'
proxy::simpleCommand returns true
:)proxy::simpleCommand(array (
  0 => NULL,
  1 => 1,
  2 => '',
  3 => 13,
  4 => true,
  5 => true,
))
Command 'MYSQLND_UH_MYSQLND_COM_QUIT'
OK packet 'MYSQLND_UH_MYSQLND_PROT_LAST'
proxy::simpleCommand returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Process a response for a basic COM_* command send to the client

  • « MysqlndUhConnection::simpleCommand
  • MysqlndUhConnection::sslSet »
  • PHP Manual
  • MysqlndUhConnection
  • Process a response for a basic COM_* command send to the client

MysqlndUhConnection::simpleCommandHandleResponse

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::simpleCommandHandleResponse — Process a response for a basic COM_* command send to the client

Описание

public MysqlndUhConnection::simpleCommandHandleResponse ( mysqlnd_connection $connection , int $ok_packet , bool $silent , int $command , bool $ignore_upsert_status ) : bool

Process a response for a basic COM_* command send to the client.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

ok_packet

The OK packet type.

silent

Whether mysqlnd may emit errors.

command

The COM command to process results from.

ignore_upsert_status

Whether to ignore UPDATE/INSERT status.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::simpleCommandHandleResponse() example

<?php
function server_cmd_2_string($command) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_COM_SLEEP => "MYSQLND_UH_MYSQLND_COM_SLEEP",
  MYSQLND_UH_MYSQLND_COM_QUIT => "MYSQLND_UH_MYSQLND_COM_QUIT",
  MYSQLND_UH_MYSQLND_COM_INIT_DB => "MYSQLND_UH_MYSQLND_COM_INIT_DB",
  MYSQLND_UH_MYSQLND_COM_QUERY => "MYSQLND_UH_MYSQLND_COM_QUERY",
  MYSQLND_UH_MYSQLND_COM_FIELD_LIST => "MYSQLND_UH_MYSQLND_COM_FIELD_LIST",
  MYSQLND_UH_MYSQLND_COM_CREATE_DB => "MYSQLND_UH_MYSQLND_COM_CREATE_DB",
  MYSQLND_UH_MYSQLND_COM_DROP_DB => "MYSQLND_UH_MYSQLND_COM_DROP_DB",
  MYSQLND_UH_MYSQLND_COM_REFRESH => "MYSQLND_UH_MYSQLND_COM_REFRESH",
  MYSQLND_UH_MYSQLND_COM_SHUTDOWN => "MYSQLND_UH_MYSQLND_COM_SHUTDOWN",
  MYSQLND_UH_MYSQLND_COM_STATISTICS => "MYSQLND_UH_MYSQLND_COM_STATISTICS",
  MYSQLND_UH_MYSQLND_COM_PROCESS_INFO => "MYSQLND_UH_MYSQLND_COM_PROCESS_INFO",
  MYSQLND_UH_MYSQLND_COM_CONNECT => "MYSQLND_UH_MYSQLND_COM_CONNECT",
  MYSQLND_UH_MYSQLND_COM_PROCESS_KILL => "MYSQLND_UH_MYSQLND_COM_PROCESS_KILL",
  MYSQLND_UH_MYSQLND_COM_DEBUG => "MYSQLND_UH_MYSQLND_COM_DEBUG",
  MYSQLND_UH_MYSQLND_COM_PING => "MYSQLND_UH_MYSQLND_COM_PING",
  MYSQLND_UH_MYSQLND_COM_TIME => "MYSQLND_UH_MYSQLND_COM_TIME",
  MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT => "MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT",
  MYSQLND_UH_MYSQLND_COM_CHANGE_USER => "MYSQLND_UH_MYSQLND_COM_CHANGE_USER",
  MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP => "MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP",
  MYSQLND_UH_MYSQLND_COM_TABLE_DUMP => "MYSQLND_UH_MYSQLND_COM_TABLE_DUMP",
  MYSQLND_UH_MYSQLND_COM_CONNECT_OUT => "MYSQLND_UH_MYSQLND_COM_CONNECT_OUT",
  MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED => "MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED",
  MYSQLND_UH_MYSQLND_COM_STMT_PREPARE => "MYSQLND_UH_MYSQLND_COM_STMT_PREPARE",
  MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE => "MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE",
  MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA => "MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA",
  MYSQLND_UH_MYSQLND_COM_STMT_CLOSE => "MYSQLND_UH_MYSQLND_COM_STMT_CLOSE",
  MYSQLND_UH_MYSQLND_COM_STMT_RESET => "MYSQLND_UH_MYSQLND_COM_STMT_RESET",
  MYSQLND_UH_MYSQLND_COM_SET_OPTION => "MYSQLND_UH_MYSQLND_COM_SET_OPTION",
  MYSQLND_UH_MYSQLND_COM_STMT_FETCH => "MYSQLND_UH_MYSQLND_COM_STMT_FETCH",
  MYSQLND_UH_MYSQLND_COM_DAEMON => "MYSQLND_UH_MYSQLND_COM_DAEMON",
  MYSQLND_UH_MYSQLND_COM_END => "MYSQLND_UH_MYSQLND_COM_END",
 );
 return (isset($mapping[$command])) ? $mapping[$command] : 'unknown';
}

function ok_packet_2_string($ok_packet) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_PROT_GREET_PACKET => "MYSQLND_UH_MYSQLND_PROT_GREET_PACKET",
  MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET => "MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET",
  MYSQLND_UH_MYSQLND_PROT_OK_PACKET => "MYSQLND_UH_MYSQLND_PROT_OK_PACKET",
  MYSQLND_UH_MYSQLND_PROT_EOF_PACKET => "MYSQLND_UH_MYSQLND_PROT_EOF_PACKET",
  MYSQLND_UH_MYSQLND_PROT_CMD_PACKET => "MYSQLND_UH_MYSQLND_PROT_CMD_PACKET",
  MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET => "MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET",
  MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET => "MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET",
  MYSQLND_UH_MYSQLND_PROT_ROW_PACKET => "MYSQLND_UH_MYSQLND_PROT_ROW_PACKET",
  MYSQLND_UH_MYSQLND_PROT_STATS_PACKET => "MYSQLND_UH_MYSQLND_PROT_STATS_PACKET",
  MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET => "MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET",
  MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET => "MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET",
  MYSQLND_UH_MYSQLND_PROT_LAST => "MYSQLND_UH_MYSQLND_PROT_LAST",
 );
 return (isset($mapping[$ok_packet])) ? $mapping[$ok_packet] : 'unknown';
}

class proxy extends MysqlndUhConnection {
 public function simpleCommandHandleResponse($conn, $ok_packet, $silent, $command, $ignore_upsert_status) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  printf("Command '%s'\n", server_cmd_2_string($command));
  printf("OK packet '%s'\n",  ok_packet_2_string($ok_packet));
  $ret = parent::simpleCommandHandleResponse($conn, $ok_packet, $silent, $command, $ignore_upsert_status);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysql = mysql_connect("localhost", "root", "");
mysql_query("SELECT 1 FROM DUAL", $mysql);
?>

Результат выполнения данного примера:

proxy::simpleCommandHandleResponse(array (
  0 => NULL,
  1 => 5,
  2 => false,
  3 => 27,
  4 => true,
))
Command 'MYSQLND_UH_MYSQLND_COM_SET_OPTION'
OK packet 'MYSQLND_UH_MYSQLND_PROT_EOF_PACKET'
proxy::simpleCommandHandleResponse returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Used for establishing secure connections using SSL

  • « MysqlndUhConnection::simpleCommandHandleResponse
  • MysqlndUhConnection::stmtInit »
  • PHP Manual
  • MysqlndUhConnection
  • Used for establishing secure connections using SSL

MysqlndUhConnection::sslSet

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::sslSet — Used for establishing secure connections using SSL

Описание

public MysqlndUhConnection::sslSet ( mysqlnd_connection $connection , string $key , string $cert , string $ca , string $capath , string $cipher ) : bool

Used for establishing secure connections using SSL.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

key

The path name to the key file.

cert

The path name to the certificate file.

ca

The path name to the certificate authority file.

capath

The pathname to a directory that contains trusted SSL CA certificates in PEM format.

cipher

A list of allowable ciphers to use for SSL encryption.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::sslSet() example

<?php
class proxy extends MysqlndUhConnection {
 public function sslSet($conn, $key, $cert, $ca, $capath, $cipher) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::sslSet($conn, $key, $cert, $ca, $capath, $cipher);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->ssl_set("key", "cert", "ca", "capath", "cipher");
?>

Результат выполнения данного примера:

proxy::sslSet(array (
  0 => NULL,
  1 => 'key',
  2 => 'cert',
  3 => 'ca',
  4 => 'capath',
  5 => 'cipher',
))
proxy::sslSet returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_ssl_set() - Используется для установления безопасных соединений, используя SSL


Initializes a statement and returns a resource for use with mysqli_statement::prepare

  • « MysqlndUhConnection::sslSet
  • MysqlndUhConnection::storeResult »
  • PHP Manual
  • MysqlndUhConnection
  • Initializes a statement and returns a resource for use with mysqli_statement::prepare

MysqlndUhConnection::stmtInit

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::stmtInit — Initializes a statement and returns a resource for use with mysqli_statement::prepare

Описание

public MysqlndUhConnection::stmtInit ( mysqlnd_connection $connection ) : resource

Initializes a statement and returns a resource for use with mysqli_statement::prepare.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Resource of type Mysqlnd Prepared Statement (internal only - you must not modify it!). The documentation may also refer to such resources using the alias name mysqlnd_prepared_statement.

Примеры

Пример #1 MysqlndUhConnection::stmtInit() example

<?php
class proxy extends MysqlndUhConnection {
 public function stmtInit($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  var_dump($res);
  $ret = parent::stmtInit($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$stmt = $mysqli->prepare("SELECT 1 AS _one FROM DUAL");
$stmt->execute();
$one = NULL;
$stmt->bind_result($one);
$stmt->fetch();
var_dump($one);
?>

Результат выполнения данного примера:

proxy::stmtInit(array (
  0 => NULL,
))
resource(19) of type (Mysqlnd Connection)
proxy::stmtInit returns NULL
resource(246) of type (Mysqlnd Prepared Statement (internal only - you must not modify it!))
int(1)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_stmt_init() - Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare


Transfers a result set from the last query

  • « MysqlndUhConnection::stmtInit
  • MysqlndUhConnection::txCommit »
  • PHP Manual
  • MysqlndUhConnection
  • Transfers a result set from the last query

MysqlndUhConnection::storeResult

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::storeResult — Transfers a result set from the last query

Описание

public MysqlndUhConnection::storeResult ( mysqlnd_connection $connection ) : resource

Transfers a result set from the last query.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Resource of type Mysqlnd Resultset (internal only - you must not modify it!). The documentation may also refer to such resources using the alias name mysqlnd_resultset.

Примеры

Пример #1 MysqlndUhConnection::storeResult() example

<?php
class proxy extends MysqlndUhConnection {
 public function storeResult($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::storeResult($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$res = $mysqli->query("SELECT 'Also called buffered result' AS _msg FROM DUAL");
var_dump($res->fetch_assoc());

$mysqli->real_query("SELECT 'Good morning!' AS _msg FROM DUAL");
$res = $mysqli->store_result();
var_dump($res->fetch_assoc());
?>

Результат выполнения данного примера:

proxy::storeResult(array (
  0 => NULL,
))
proxy::storeResult returns NULL
resource(475) of type (Mysqlnd Resultset (internal only - you must not modify it!))
array(1) {
  ["_msg"]=>
  string(27) "Also called buffered result"
}
proxy::storeResult(array (
  0 => NULL,
))
proxy::storeResult returns NULL
resource(730) of type (Mysqlnd Resultset (internal only - you must not modify it!))
array(1) {
  ["_msg"]=>
  string(13) "Good morning!"
}

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса
  • mysqli_real_query() - Выполнение SQL запроса


Commits the current transaction

  • « MysqlndUhConnection::storeResult
  • MysqlndUhConnection::txRollback »
  • PHP Manual
  • MysqlndUhConnection
  • Commits the current transaction

MysqlndUhConnection::txCommit

(PECL mysqlnd-uh >= 1.0.1-alpha)

MysqlndUhConnection::txCommit — Commits the current transaction

Описание

public MysqlndUhConnection::txCommit ( mysqlnd_connection $connection ) : bool

Commits the current transaction.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::txCommit() example

<?php
class proxy extends MysqlndUhConnection {
 public function txCommit($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::txCommit($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->commit();
?>

Результат выполнения данного примера:

proxy::txCommit(array (
  0 => NULL,
))
proxy::txCommit returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_commit() - Фиксирует текущую транзакцию


Rolls back current transaction

  • « MysqlndUhConnection::txCommit
  • MysqlndUhConnection::useResult »
  • PHP Manual
  • MysqlndUhConnection
  • Rolls back current transaction

MysqlndUhConnection::txRollback

(PECL mysqlnd-uh >= 1.0.1-alpha)

MysqlndUhConnection::txRollback — Rolls back current transaction

Описание

public MysqlndUhConnection::txRollback ( mysqlnd_connection $connection ) : bool

Rolls back current transaction.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::txRollback() example

<?php
class proxy extends MysqlndUhConnection {
 public function txRollback($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::txRollback($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->rollback();
?>

Результат выполнения данного примера:

proxy::txRollback(array (
  0 => NULL,
))
proxy::txRollback returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_commit() - Фиксирует текущую транзакцию


Initiate a result set retrieval

  • « MysqlndUhConnection::txRollback
  • MysqlndUhPreparedStatement »
  • PHP Manual
  • MysqlndUhConnection
  • Initiate a result set retrieval

MysqlndUhConnection::useResult

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::useResult — Initiate a result set retrieval

Описание

public MysqlndUhConnection::useResult ( mysqlnd_connection $connection ) : resource

Initiate a result set retrieval.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Resource of type Mysqlnd Resultset (internal only - you must not modify it!). The documentation may also refer to such resources using the alias name mysqlnd_resultset.

Примеры

Пример #1 MysqlndUhConnection::useResult() example

<?php
class proxy extends MysqlndUhConnection {
 public function useResult($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::useResult($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->real_query("SELECT 'Good morning!' AS _msg FROM DUAL");
$res = $mysqli->use_result();
var_dump($res->fetch_assoc());
?>

Результат выполнения данного примера:

proxy::useResult(array (
  0 => NULL,
))
proxy::useResult returns NULL
resource(425) of type (Mysqlnd Resultset (internal only - you must not modify it!))
array(1) {
  ["_msg"]=>
  string(13) "Good morning!"
}

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию
  • mysqli_real_query() - Выполнение SQL запроса


The MysqlndUhPreparedStatement class

(PECL mysqlnd-uh >= 1.0.0-alpha)

Введение

Обзор классов

MysqlndUhPreparedStatement {
/* Методы */
public __construct ( void )
public execute ( mysqlnd_prepared_statement $statement ) : bool
public prepare ( mysqlnd_prepared_statement $statement , string $query ) : bool
}

Содержание

  • MysqlndUhPreparedStatement::__construct — Результат __construct
  • MysqlndUhPreparedStatement::execute — Выполняет подготовленный запрос
  • MysqlndUhPreparedStatement::prepare — Подготавливает утверждение SQL для выполнения


Результат __construct

  • « MysqlndUhPreparedStatement
  • MysqlndUhPreparedStatement::execute »
  • PHP Manual
  • MysqlndUhPreparedStatement
  • Результат __construct

MysqlndUhPreparedStatement::__construct

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhPreparedStatement::__construct — Результат __construct

Описание

public MysqlndUhPreparedStatement::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Выполняет подготовленный запрос

  • « MysqlndUhPreparedStatement::__construct
  • MysqlndUhPreparedStatement::prepare »
  • PHP Manual
  • MysqlndUhPreparedStatement
  • Выполняет подготовленный запрос

MysqlndUhPreparedStatement::execute

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhPreparedStatement::execute — Выполняет подготовленный запрос

Описание

public MysqlndUhPreparedStatement::execute ( mysqlnd_prepared_statement $statement ) : bool

Выполняет подготовленный запрос.

Список параметров

statement

Подготовленный Mysqlnd оператор дескриптора. Не изменяйте его! Ресурс типа Mysqlnd Prepared Statement (internal only - you must not modify it!).

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения. В противном случае возвращает FALSE

Примеры

Пример #1 Пример использования MysqlndUhPreparedStatement::execute()

<?php
class stmt_proxy extends MysqlndUhPreparedStatement {
 public function execute($res) {
  printf("%s(", __METHOD__);
  var_dump($res);
  printf(")\n");
  $ret = parent::execute($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_statement_proxy(new stmt_proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$stmt = $mysqli->prepare("SELECT 'Labskaus' AS _msg FROM DUAL");
$stmt->execute();
$msg = NULL;
$stmt->bind_result($msg);
$stmt->fetch();
var_dump($msg);
?>

Результат выполнения данного примера:

stmt_proxy::execute(resource(256) of type (Mysqlnd Prepared Statement (internal only - you must not modify it!))
)
stmt_proxy::execute returns true
bool(true)
string(8) "Labskaus"

Смотрите также

  • mysqlnd_uh_set_statement_proxy() - Installs a proxy for mysqlnd statements
  • mysqli_stmt_execute() - Выполняет подготовленный запрос


Подготавливает утверждение SQL для выполнения

  • « MysqlndUhPreparedStatement::execute
  • Mysqlnd_uh Функции »
  • PHP Manual
  • MysqlndUhPreparedStatement
  • Подготавливает утверждение SQL для выполнения

MysqlndUhPreparedStatement::prepare

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhPreparedStatement::prepare — Подготавливает утверждение SQL для выполнения

Описание

public MysqlndUhPreparedStatement::prepare ( mysqlnd_prepared_statement $statement , string $query ) : bool

Подготавливает утверждение SQL для выполнения.

Список параметров

statement

Подготовленный Mysqlnd оператор дескриптора. Не изменяйте его! Ресурс типа Mysqlnd Prepared Statement (internal only - you must not modify it!).

query

Запрос, который должен быть подготовлен.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения. В противном случае возвращает FALSE

Примеры

Пример #1 Пример использования MysqlndUhPreparedStatement::prepare()

<?php
class stmt_proxy extends MysqlndUhPreparedStatement {
 public function prepare($res, $query) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $query = "SELECT 'No more you-know-what-I-mean for lunch, please' AS _msg FROM DUAL";
  $ret = parent::prepare($res, $query);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_statement_proxy(new stmt_proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$stmt = $mysqli->prepare("SELECT 'Labskaus' AS _msg FROM DUAL");
$stmt->execute();
$msg = NULL;
$stmt->bind_result($msg);
$stmt->fetch();
var_dump($msg);
?>

Результат выполнения данного примера:

stmt_proxy::prepare(array (
  0 => NULL,
  1 => 'SELECT \'Labskaus\' AS _msg FROM DUAL',
))
stmt_proxy::prepare returns true
bool(true)
string(46) "No more you-know-what-I-mean for lunch, please"

Смотрите также

  • mysqlnd_uh_set_statement_proxy() - Installs a proxy for mysqlnd statements
  • mysqli_stmt_prepare() - Подготовка SQL-запроса к выполнению
  • mysqli_prepare() - Подготавливает SQL выражение к выполнению


Mysqlnd_uh Функции

Содержание

  • mysqlnd_uh_convert_to_mysqlnd — Converts a MySQL connection handle into a mysqlnd connection handle
  • mysqlnd_uh_set_connection_proxy — Installs a proxy for mysqlnd connections
  • mysqlnd_uh_set_statement_proxy — Installs a proxy for mysqlnd statements


Converts a MySQL connection handle into a mysqlnd connection handle

  • « Mysqlnd_uh Функции
  • mysqlnd_uh_set_connection_proxy »
  • PHP Manual
  • Mysqlnd_uh Функции
  • Converts a MySQL connection handle into a mysqlnd connection handle

mysqlnd_uh_convert_to_mysqlnd

(PECL mysqlnd-uh >= 1.0.0-alpha)

mysqlnd_uh_convert_to_mysqlnd — Converts a MySQL connection handle into a mysqlnd connection handle

Описание

mysqlnd_uh_convert_to_mysqlnd ( mysqli &$mysql_connection ) : resource

Converts a MySQL connection handle into a mysqlnd connection handle. After conversion you can execute mysqlnd library calls on the connection handle. This can be used to access mysqlnd functionality not made available through user space API calls.

The function can be disabled with mysqlnd_uh.enable. If mysqlnd_uh.enable is set to FALSE the function will not install the proxy and always return TRUE. Additionally, an error of the type E_WARNING may be emitted. The error message may read like PHP Warning: mysqlnd_uh_convert_to_mysqlnd(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. You are not allowed to call this function [...].

Список параметров

MySQL connection handle

A MySQL connection handle of type mysql, mysqli or PDO_MySQL.

Возвращаемые значения

A mysqlnd connection handle.

Список изменений

Версия | Описание
5.4.0 | The mysql_connection parameter can now be of type mysql, PDO_MySQL, or mysqli. Before, only the mysqli type was allowed.

Примеры

Пример #1 mysqlnd_uh_convert_to_mysqlnd() example

<?php
/* PDO user API gives no access to connection thread id */
$mysql_connection = new PDO("mysql:host=localhost;dbname=test", "root", "");

/* Convert PDO MySQL handle to mysqlnd handle */
$mysqlnd = mysqlnd_uh_convert_to_mysqlnd($mysql_connection);

/* Create Proxy to call mysqlnd connection class methods */
$obj = new MySQLndUHConnection();
/* Call mysqlnd_conn::get_thread_id */
var_dump($obj->getThreadId($mysqlnd));

/* Use SQL to fetch connection thread id */
var_dump($mysql_connection->query("SELECT CONNECTION_ID()")->fetchAll());
?>

Результат выполнения данного примера:

int(27054)
array(1) {
  [0]=>
  array(2) {
    ["CONNECTION_ID()"]=>
    string(5) "27054"
    [0]=>
    string(5) "27054"
  }
}

Смотрите также

  • mysqlnd_uh.enable


Installs a proxy for mysqlnd connections

  • « mysqlnd_uh_convert_to_mysqlnd
  • mysqlnd_uh_set_statement_proxy »
  • PHP Manual
  • Mysqlnd_uh Функции
  • Installs a proxy for mysqlnd connections

mysqlnd_uh_set_connection_proxy

(PECL mysqlnd-uh >= 1.0.0-alpha)

mysqlnd_uh_set_connection_proxy — Installs a proxy for mysqlnd connections

Описание

mysqlnd_uh_set_connection_proxy ( MysqlndUhConnection &$connection_proxy [, mysqli &$mysqli_connection ] ) : bool

Installs a proxy object to hook mysqlnd's connection objects methods. Once installed, the proxy will be used for all MySQL connections opened with mysqli, mysql or PDO_MYSQL, assuming that the listed extensions are compiled to use the mysqlnd library.

The function can be disabled with mysqlnd_uh.enable. If mysqlnd_uh.enable is set to FALSE the function will not install the proxy and always return TRUE. Additionally, an error of the type E_WARNING may be emitted. The error message may read like PHP Warning: mysqlnd_uh_set_connection_proxy(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. The proxy has not been installed [...].

Список параметров

connection_proxy

A proxy object of type MysqlndUhConnection.

mysqli_connection

Object of type mysqli. If given, the proxy will be set for this particular connection only.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 mysqlnd_uh_set_connection_proxy() example

<?php
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("SELECT 'No proxy installed, yet'");

class proxy extends MysqlndUhConnection {
 public function query($res, $query) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::query($res, $query);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli->query("SELECT 'mysqlnd rocks!'");

$mysql = mysql_connect("localhost", "root", "", "test");
mysql_query("SELECT 'Ahoy Andrey!'", $mysql);

$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "");
$pdo->query("SELECT 'Moin Johannes!'");
?>

Результат выполнения данного примера:

proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'mysqlnd rocks!\'',
))
proxy::query returns true
proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'Ahoy Andrey!\'',
))
proxy::query returns true
proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'Moin Johannes!\'',
))
proxy::query returns true

Смотрите также

  • mysqlnd_uh_set_statement_proxy() - Installs a proxy for mysqlnd statements
  • mysqlnd_uh.enable


Installs a proxy for mysqlnd statements

  • « mysqlnd_uh_set_connection_proxy
  • Change History »
  • PHP Manual
  • Mysqlnd_uh Функции
  • Installs a proxy for mysqlnd statements

mysqlnd_uh_set_statement_proxy

(PECL mysqlnd-uh >= 1.0.0-alpha)

mysqlnd_uh_set_statement_proxy — Installs a proxy for mysqlnd statements

Описание

mysqlnd_uh_set_statement_proxy ( MysqlndUhStatement &$statement_proxy ) : bool

Installs a proxy for mysqlnd statements. The proxy object will be used for all mysqlnd prepared statement objects, regardless which PHP MySQL extension (mysqli, mysql, PDO_MYSQL) has created them as long as the extension is compiled to use the mysqlnd library.

The function can be disabled with mysqlnd_uh.enable. If mysqlnd_uh.enable is set to FALSE the function will not install the proxy and always return TRUE. Additionally, an error of the type E_WARNING may be emitted. The error message may read like PHP Warning: mysqlnd_uh_set_statement_proxy(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. The proxy has not been installed [...].

Список параметров

statement_proxy

The mysqlnd statement proxy object of type MysqlndUhStatement

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqlnd_uh.enable


Change History

Содержание

  • PECL/mysqlnd_uh 1.0 series

The Change History lists major changes users need to be aware if upgrading from one version to another. It is a high level summary of selected changes that may impact applications or might even break backwards compatibility. See also the CHANGES file contained in the source for additional changelog information. The commit history is also available.


PECL/mysqlnd_uh 1.0 series

1.0.1-alpha

  • Release date: TBD
  • Motto/theme: bug fix release

Feature changes

  • Support of PHP 5.4.0 or later.
  • BC break: MysqlndUhConnection::changeUser() requires additional passwd_len parameter.
  • BC break: MYSQLND_UH_VERSION_STR renamed to MYSQLND_UH_VERSION. MYSQLND_UH_VERSION renamed to MYSQLND_UH_VERSION_ID.
  • BC break: mysqlnd_uh.enabled configuration setting renamed to mysqlnd_uh.enable.

1.0.0-alpha

  • Release date: 08/2010
  • Motto/theme: Initial release


Mysqlnd connection multiplexing plugin

  • Введение
  • Concepts
    • Architecture
    • Connection pool
    • Sharing connections
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределенные константы
  • Change History
    • PECL/mysqlnd_mux 1.0 series


Введение

The mysqlnd multiplexing plugin (mysqlnd_mux) multiplexes MySQL connections established by all PHP MySQL extensions that use the MySQL native driver (mysqlnd) for PHP.

The MySQL native driver for PHP features an internal C API for plugins, such as the connection multiplexing plugin, which can extend the functionality of mysqlnd. See the mysqlnd for additional details about its benefits over the MySQL Client Library libmysqlclient.

Mysqlnd plugins like mysqlnd_mux operate, for the most part, transparently from a user perspective. The connection multiplexing plugin supports all PHP applications, and all MySQL PHP extensions. It does not change existing APIs. Therefore, it can easily be used with existing PHP applications.

Замечание:

This is a proof-of-concept. All features are at an early stage. Not all kinds of queries are handled by the plugin yet. Thus, it cannot be used in a drop-in fashion at the moment.

Please, do not use this version in production environments.

Key Features

The key features of mysqlnd_mux are as follows:

  • Transparent and therefore easy to use:

    • Supports all of the PHP MySQL extensions.

    • Little to no application changes are required, dependent on the required usage scenario.

  • Reduces server load and connection establishment latency:

    • Opens less connections to the MySQL server.

    • Less connections to MySQL mean less work for the MySQL server. In a client-server environment scaling the server is often more difficult than scaling the client. Multiplexing helps with horizontal scale-out (scale-by-client).

    • Pooling saves connection time.

    • Multiplexed connection: multiple user handles share the same network connection. Once opened, a network connection is cached and shared among multiple user handles. There is a 1:n relationship between internal network connection and user connection handles.

    • Persistent connection: a network connection is kept open at the end of the web request, if the PHP deployment model allows. Thus, subsequently web requests can reuse a previously opened connection. Like other resources, network connections are bound to the scope of a process. Thus, they can be reused for all web requests served by a process.

Limitations

The proof-of-concept does not support unbuffered queries, prepared statements, and asynchronous queries.

The connection pool is using a combination of the transport method and hostname as keys. As a consequence, two connections to the same host using the same transport method (TCP/IP, Unix socket, Windows named pipe) will be linked to the same pooled connection even if username and password differ. Be aware of the possible security implications.

The proof-of-concept is transaction agnostic. It does not know about SQL transactions.

Замечание:

Applications must be aware of the consequences of connection sharing connections.

About the name mysqlnd_mux

The shortcut mysqlnd_mux stands for mysqlnd connection multiplexing plugin.


Concepts

Содержание

  • Architecture
  • Connection pool
  • Sharing connections

This explains the architecture and related concepts for this plugin. Reading and understanding these concepts is required to successfully use this plugin.


Architecture

The mysqlnd connection multiplexing plugin is implemented as a PHP extension. It is written in C and operates under the hood of PHP. During the startup of the PHP interpreter, in the module initialization phase of the PHP engine, it gets registered as a mysqlnd plugin to replace specific mysqlnd C methods.

The mysqlnd library uses PHP streams to communicate with the MySQL server. PHP streams are accessed by the mysqlnd library through its net module. The mysqlnd connection multiplexing plugin proxies methods of the mysqlnd library net module to control opening and closing of network streams.

Upon opening a user connection to MySQL using the appropriate connection functions of either mysqli, PDO_MYSQL or ext/mysql, the plugin will search its connection pool for an open network connection. If the pool contains a network connection to the host specified by the connect function using the transport method requested (TCP/IP, Unix domain socket, Windows named pipe), the pooled connection is linked to the user handle. Otherwise, a new network connection is opened, put into the poolm and associated with the user connection handle. This way, multiple user handles can be linked to the same network connection.


Connection pool

The plugins connection pool is created when PHP initializes its modules (MINIT) and free'd when PHP shuts down the modules (MSHUTDOWN). This is the same as for persistent MySQL connections.

Depending on the deployment model, the pool is used for the duration of one or multiple web requests. Network connections are bound to the lifespan of an operating system level process. If the PHP process serves multiple web requests as it is the case for Fast-CGI or threaded web server deployments, then the pooled connections can be reused over multiple connections. Because multiplexing means sharing connections, it can even happen with a threaded deployment that two threads or two distinct web requests are linked to one pooled network connections.

A pooled connection is explicitly closed once the last reference to it is released. An implicit close happens when PHP shuts down its modules.


Sharing connections

The PHP mysqlnd connection multiplexing plugin changes the relationship between a users connection handle and the underlying MySQL connection. Without the plugin, every MySQL connection belongs to exactly one user connection at a time. The multiplexing plugin changes. A MySQL connection is shared among multiple user handles. There no one-to-one relation if using the plugin.

Sharing pooled connections has an impact on the connection state. State changing operations from multiple user handles pointing to one MySQL connection are not isolated from each other. If, for example, a session variable is set through one user connection handle, the session variable becomes visible to all other user handles that reference the same underlying MySQL connection.

This is similar in concept to connection state related phenomens described for the PHP mysqlnd replication and load balancing plugin. Please, check the PECL/mysqlnd_ms documentation for more details on the state of a connection.

The proof-of-concept takes no measures to isolate multiplexed connections from each other.


  • « Sharing connections
  • Требования »
  • PHP Manual
  • mysqlnd_mux
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения


Требования

PHP 5.5.0 or newer. Some advanced functionality requires PHP 5.5.0 or newer.

The mysqlnd_mux replication and load balancing plugin supports all PHP applications and all available PHP MySQL extensions (mysqli, mysql, PDO_MYSQL). The PHP MySQL extension must be configured to use mysqlnd in order to be able to use the mysqlnd_mux plugin for mysqlnd.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/mysqlnd_mux


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Mysqlnd_mux Опции настройки
Имя | По умолчанию | Место изменения | Список изменений
mysqlnd_mux.enable | 0 | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

mysqlnd_mux.enable integer

Enables or disables the plugin. If disabled, the extension will not plug into mysqlnd to proxy internal mysqlnd C API calls.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Other

The plugins version number can be obtained using MYSQLND_MUX_VERSION or MYSQLND_MUX_VERSION_ID. MYSQLND_MUX_VERSION is the string representation of the numerical version number MYSQLND_MUX_VERSION_ID, which is an integer such as 10000. Developers can calculate the version number as follows.

Version (part) | Example
Major*10000 | 1*10000 = 10000
Minor*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_MUX_VERSION_ID | 10000

MYSQLND_MUX_VERSION (string)
Plugin version string, for example, 1.0.0-prototype.
MYSQLND_MUX_VERSION_ID (integer)
Plugin version number, for example, 10000.


Change History

Содержание

  • PECL/mysqlnd_mux 1.0 series

This change history is a high level summary of selected changes that may impact applications and/or break backwards compatibility.

See also the CHANGES file in the source distribution for a complete list of changes.


PECL/mysqlnd_mux 1.0 series

1.0.0-pre-alpha

  • Release date: no package released, initial check-in 09/2012
  • Motto/theme: Proof of concept

Initial check-in. Essentially a demo of the mysqlnd plugin API.

Замечание:

This is the current development series. All features are at an early stage. Changes may happen at any time without prior notice. Please, do not use this version in production environments.

The documentation may not reflect all changes yet.


Плагин Mysqlnd Memcache

  • Введение
  • Быстрый старт и примеры
    • Настройка
    • Использование
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределенные константы
  • Функции mysqlnd_memcache
    • mysqlnd_memcache_get_config — Получить информацию о настройках плагина
    • mysqlnd_memcache_set — Связать соединение MySQL с соединением Memcache
  • История изменений
    • PECL/mysqlnd_memcache выпуск 1.0


Введение

Плагин mysqlnd memcache (mysqlnd_memcache) является модулем PHP для прозрачной трансляции SQL в запрос к MySQL InnoDB Memcached Daemon Plugin (серверный плагин). Он включает экспериментальную поддержку MySQL Cluster Memcached Daemon. Серверный плагин предоставляет доступ к данным в таблицах MySQL InnoDB (с оглядкой на MySQL Cluster NDB) по протоколу Memcache. Этот модуль, поддерживающий все модули PHP MySQL, использующие mysqlnd, будет определять таблицы, экспортированные таким оброазом и транслировать соответствующие SELECT-запросы в запросы Memcache.

mysqlnd_memcache data flow

Замечание:

Плагин требует наличия MySQL InnoDB Memcached Daemon Plugin. Он не может использоваться с отдельно установленным Memcached. Для общего кеша запросов с использованием Memcached смотрите плагин кеша запросов mysqlnd. Использование прямого доступа к Memcache описано в разделах, посвященных модулям memcache и memcached.

Родной драйвер MySQL для PHP является С-библиотекой, которая поставляется в составе PHP начиная с версии 5.3.0. Он служит заменой для MySQL Client Library (libmysqlclient). Использование mysqlnd имеет некоторые преимущества: не нужно загружать дополнительные библиотеки и модули, поскольку он поставляется в составе дистрибутива PHP, он распространяется под лицензией PHP, в большинстве случаев потребляет меньше памяти и имеет дополнительные возможности, такие как асинхронные запросы.

mysqlnd_mmemcache работает, по большей части, прозрачно для пользователя. Плагин mysqlnd memcache поддерживает все приложения PHP и все модули MySQL PHP. Он не меняет текущее API. Таким образом его достаточно просто использовать с существующими приложениями.

Плагин MySQL Memcache добавляет метод доступа в стиле ключ-значение к данным в InnoDB с поддержкой NDB (кластер MySQL) по протоколу Memcache protocol. Тип доступа ключ-значение зачастую быстрее, чем использование SQL-запросов.

Key Features

Ключевые особенности PECL/mysqlnd_memcache.

  • Возможное увеличение производительности

    • На стороне клиента: легковесный протокол.

    • На стороне сервера: отсутствие необходимости разбора SQL, прямой доступ к данным.

    • Пожалуйста, проведите свои собственные тесты! Фактические результаты работы сильно зависят от используемых настроек и аппаратного обеспечения.

Ограничения

Начальная версия не является бинарно-безопасной. Из-за того, каким образом работают плагины MySQL Memcache, существуют ограничения, связанные с разделителями.

Не поддерживаются подготовленные и асинхронные запросы. Мета-данные результирующего набора ограничены.

Информация о сопоставлении для таблиц, доступных через Memcache, не кешируется в плагине между запросами, а запрашивается с сервера MySQL каждый раз, когда соединение с MySQL связано с соединением Memcache. Более подробно читайте mysqlnd_memcache_set().

О названии

mysqlnd_memcache является сокращением от mysqlnd memcache plugin. Memcache является отсылкой к поддержке плагина MySQL Memcache для InnoDB и NDB (кластер MySQL). Плагин не связан с кеширующим сервером Memcached.


Быстрый старт и примеры

Содержание

  • Настройка
  • Использование

Плагин mysqlnd memcache очень легко использовать. В этом руководстве приведены примеры типичных сценариев использования и объясняются базовые принципы.

Крайне рекомендуется прочитать и остальные разделы руководства. В этом разделе даются только базовые принципы, позволяющие понять теоретические концепции и ограничения. Также будут даны отсылки к другим разделам руководства. В любом случае, перед использованием в промышленной эксплуатации необходимо досконально изучить все разделы руководства.


Настройка

Плагин реализован как модуль PHP. Обязательно посмотрите раздел инструкции по установке перед его установкой.

Компиляция и настройка модулей PHP MySQL (API) (mysqli, PDO_MYSQL, mysql). Модуль использует библиотеку mysqlnd. Более подробно читайте в разделе инструкция по установке mysqlnd_memcache.

После установки загрузите модуль и активируйте плагин в файле конфигурации PHP, используя директиву mysqlnd_memcache.enable.

Пример #1 Подключение плагина (php.ini)

; В Windows, имя файла будет php_mysqnd_memcache.dll
; Загрузка модуля
extension=mysqlnd_memcache.so
; Включение модуля
mysqlnd_memcache.enable=1

Следуйте инструкциям, приведенным в » Документации по установке плагина Memcache для MySQL для сервера MySQL. Активируйте плагин и настройте доступ Memcache к таблицам SQL.

Примеры в этом руководстве подразумевают, что указанная таблица уже существует и настроен доступ Memcache к ней.

Пример #2 Таблица, используемая в руководстве

CREATE TABLE test(
  id CHAR(16),
  f1 VARCHAR(255),
  f2 VARCHAR(255),
  f3 VARCHAR(255),
  flags INT NOT NULL,
  cas_column INT,
  expire_time_column INT,
  PRIMARY KEY(id)
  ) ENGINE=InnoDB;

INSERT INTO test (id, f1, f2, f3) VALUES (1, 'Hello', 'World', '!');
INSERT INTO test (id, f1, f2, f3) VALUES (2, 'Lady', 'and', 'the tramp');

INSERT INTO innodb_memcache.containers(
  name, db_schema, db_table, key_columns, value_columns,
  flags, cas_column, expire_time_column, unique_idx_name_on_key)
VALUES (
  'plugin_test', 'test', 'test', 'id', 'f1,f2,f3',
  'flags', 'cas_column', 'expire_time_column', 'PRIMARY KEY');


Использование

После связи соединения MySQL с соединением Memcache с использованием mysqnd_memcache_set(), плагин будет пытаться прозрачно подменить запросы SELECT запросами через memcache. С этой целью плагин отслеживает все выполняемые SQL-запросы и пытается распознать их с помощью MYSQLND_MEMCACHE_DEFAULT_REGEXP. В случае, если запрос распознался, плагин mysqlnd memcache plugin проверяет, использует ли SELECT только столбцы сопоставленной таблицы и условия WHERE ограничены поиском только одного ключа.

В случае с приведенной таблицей, плагин будет использовать интерфейс Memcache сервера MySQL для извлечения результатов для запросов типа SELECT f1, f2, f3 WHERE id = n.

Пример #1 Простой пример

<?php
$mysqli = new mysqli("host", "user", "passwd", "database");
$memc = new Memcached();
$memc->addServer("host", 11211);
mysqlnd_memcache_set($mysqli, $memc);

/*
   Этот запрос обращается к таблице test, используя id как ключ в условии
   WHERE и запрашивает поля f1, f2 и f3. Соответственно, mysqlnd_memcache
   перехватит его и перенаправит в memcache.
*/
$result = $mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");
while ($row = $result->fetch_row()) {
    print_r($row);
}

/*
   Этот запрос обращается к таблице test, но в условии WHERE использует поле f1.
   Соответственно, mysqlnd_memcache не будет его перехватывать. Так что
   этот запрос будет выполнен как обычный SQL-запрос по протоколу MySQL
*/
$mysqli->query("SELECT id FROM test WHERE f1 = 'Lady'");
while ($row = $result->fetch_row()) {
    print_r($row);
}
?>

Результат выполнения данного примера:

array(
    [f1] => Hello
    [f2] => World
    [f3] => !
)
array(
    [id] => 2
)


  • « Использование
  • Требования »
  • PHP Manual
  • mysqlnd_memcache
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения


Требования

Модулю требуется PHP версии 5.4.4 или выше. Также требуются модули PCRE (включено по умолчанию) и memcached версии 2.0.x.

mysqlnd_memcache поддерживает все приложения PHP и все существующие модули MySQL (mysqli, mysql, PDO_MYSQL). Модуль PHP MySQL должен быть сконфигурирован с поддержкой mysqlnd.

Для доступа к таблицам InnoDB, модулю требуется MySQL Server 5.6.6 или новее с включенным плагином InnoDB Memcache Daemon Plugin.

Для доступа к таблицам MySQL Cluster NDB, модулю требуется MySQL Cluster 7.2 или новее с разрешенными нодами NDB Memcache API.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/mysqlnd_memcache

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки mysqlnd_memcache
Имя | По умолчанию | Место изменения | Список изменений
mysqlnd_memcache.enable | 1 | PHP_INI_SYSTEM | Доступно с версии 1.0.0

Краткое разъяснение конфигурационных директив.

mysqlnd_memcache.enable integer

Включает или выключает плагин. Если отключено, то модуль не будет включен в mysqlnd для проксирования внутренних вызовов mysqlnd API.

Замечание:

Опция в основном полезна разработчикам для статической сборки модуля в PHP. Обычным пользователям рекомендуется собирать модуль как разделяемый, чтобы иметь возможность выгружать его, если он не нужен.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы плагина MySQL Memcache

MYSQLND_MEMCACHE_DEFAULT_REGEXP (string)
Для сопоставления запросов SELECT точкам доступа к MySQL Memcache Plugin, когда это возможно, используются стандартные регулярные выражения (PCRE). Также можно использовать mysqlnd_memcache_set(), но подход по умолчанию использует это регулярное выражение для сопоставления шаблонов.

Все подряд

Версию этого плагина можно получить из MYSQLND_MEMCACHE_VERSION или MYSQLND_MEMCACHE_VERSION_ID. В MYSQLND_MEMCACHE_VERSION содержится строковое представление номера версии, заданного в MYSQLND_MEMCACHE_VERSION_ID целым числом, которое соотносится со строковым представлением следующим образом:

Версия (часть) | Пример
Мажор*10000 | 1*10000 = 10000
Минор*100 | 0*100 = 0
Патч | 0 = 0
MYSQLND_MEMCACHE_VERSION_ID | 10000

MYSQLND_MEMCACHE_VERSION (string)
Строка с версией плагина, например, 1.0.0-alpha.
MYSQLND_MEMCACHE_VERSION_ID (integer)
Номер версии плагина, к примеру, 10000.


Функции mysqlnd_memcache

Содержание

  • mysqlnd_memcache_get_config — Получить информацию о настройках плагина
  • mysqlnd_memcache_set — Связать соединение MySQL с соединением Memcache


Получить информацию о настройках плагина

  • « Функции mysqlnd_memcache
  • mysqlnd_memcache_set »
  • PHP Manual
  • Функции mysqlnd_memcache
  • Получить информацию о настройках плагина

mysqlnd_memcache_get_config

(PECL mysqlnd_memcache >= 1.0.0)

mysqlnd_memcache_get_config — Получить информацию о настройках плагина

Описание

mysqlnd_memcache_get_config ( mixed $connection ) : array

Функция возвращает массив со всеми настройками mysqlnd_memcache, который связан с соединением MySQL. Включая MySQL, объект Memcache, предоставленный через mysqlnd_memcache_set() и информацию о настройках отображения таблиц, которая была автоматически собрана с сервера MySQL.

Список параметров

connection

Соединение MySQL с помощью одного из модулей MySQL API для PHP: PDO_MYSQL, mysqli или ext/mysql.

Возвращаемые значения

Массив настроек mysqlnd_memcache или FALSE.

Возвращенный массив имеет следующие элементы:

Структура массива mysqlnd_memcache_get_config()
Ключ | Описание
memcached | Экземпляр Memcached, связанный с соединением MySQL с помощью mysqlnd_memcache_set(). Можете использовать для изменения настроек соединения memcache или для прямых запросов к нему.
pattern | Регулярное выражение PCRE для разбора SQL-запроса, отправленного на сервер. Запросы, попадающие под этот шаблон будут проанализированы на предмет возможности их перехвата и запуска через интерфейс memcache, либо необходимости использования стандартного протокола MySQL. Это может быть шаблон по умолчанию (MYSQLND_MEMCACHE_DEFAULT_REGEXP) или же его можно определить с помощью mysqlnd_memcache_set().
mappings | Ассоциативный массив со списком всех настроенных контейнеров, как они были найдены плагинов. Ключами являются имена контейнеров в конфигурации MySQL. Значение описано ниже. Контент этого поля создается путем запроса к серверу MySQL в момент связи соединения MySQL с memcache функцией mysqlnd_memcache_set().
mapping_query | SQL-запрос, используемый mysqlnd_memcache_set() для идентификации доступных контейнеров и отображений. Результат этого запроса предоставлен в элементах mappings.
Структура элемента отображения
Ключ | Описание
prefix | Префикс, используемый при доступе к данным через memcache. С плагином MySQL InnoDB Memcache Deamon он обычно начинается с @@ и заканчивается настраиваемым разделителем. Этот префикс помещается перед значением ключа во время использования протокола memcache.
schema_name | Имя схемы (БД), содержащий необходимые таблицы.
table_name | Имя таблицы, к которой обращаются через протокол memcache.
id_field_name | Имя столбца таблицы, используемого в условии WHERE при запросе через memcache. Обычно это поле являющееся первичным ключем.
separator Разделитель, использующийся для разделения значений разных полей. Это нужно так как memcache предоставляет доступ только к одному значению, а MySQL может отображать несколько столбцов в это значение.

Замечание:

Разделитель, который может быть задан в конфигурации сервера MySQL, не должен встречаться в значениях, которые будут извлекаться через протокол memcache, так как это может поломать отображение.

fields | Массив с именами полей, доступных для данного отображения.

Примеры

Пример #1 Пример использования mysqlnd_memcache_get_config()

<?php
$mysqli = new mysqli("host", "user", "passwd", "database");
$memc = new Memcached();
$memc->addServer("host", 11211);
mysqlnd_memcache_set($mysqli, $memc);

var_dump(mysqlnd_memcache_get_config($mysqli));
?>

Результат выполнения данного примера:

array(4) {
  ["memcached"]=>
  object(Memcached)#2 (0) {
  }
  ["pattern"]=>
  string(125) "/^\s*SELECT\s*(.+?)\s*FROM\s*`?([a-z0-9_]+)`?\s*WHERE\s*`?([a-z0-9_]+)`?\s*=\s*(?(?=["'])["']([^"']*)["']|([0-9e\.]*))\s*$/is"
  ["mappings"]=>
  array(1) {
    ["mymem_test"]=>
    array(6) {
      ["prefix"]=>
      string(13) "@@mymem_test."
      ["schema_name"]=>
      string(4) "test"
      ["table_name"]=>
      string(10) "mymem_test"
      ["id_field_name"]=>
      string(2) "id"
      ["separator"]=>
      string(1) "|"
      ["fields"]=>
      array(3) {
        [0]=>
        string(2) "f1"
        [1]=>
        string(2) "f2"
        [2]=>
        string(2) "f3"
      }
    }
  }
  ["mapping_query"]=>
  string(209) "    SELECT c.name,
                          CONCAT('@@', c.name, (SELECT value FROM innodb_memcache.config_options WHERE name = 'table_map_delimiter')) AS key_prefix,
                          c.db_schema,
                          c.db_table,
                          c.key_columns,
                          c.value_columns,
                          (SELECT value FROM innodb_memcache.config_options WHERE name = 'separator') AS sep
                     FROM innodb_memcache.containers c"
}

Смотрите также

  • mysqlnd_memcache_set() - Связать соединение MySQL с соединением Memcache


Связать соединение MySQL с соединением Memcache

  • « mysqlnd_memcache_get_config
  • История изменений »
  • PHP Manual
  • Функции mysqlnd_memcache
  • Связать соединение MySQL с соединением Memcache

mysqlnd_memcache_set

(PECL mysqlnd_memcache >= 1.0.0)

mysqlnd_memcache_set — Связать соединение MySQL с соединением Memcache

Описание

mysqlnd_memcache_set ( mixed $mysql_connection [, Memcached $memcache_connection [, string $pattern [, callback $callback ]]] ) : bool

Связывает mysql_connection с memcache_connection, используя шаблон pattern как регулярное выражение PCRE и callback в качестве callback-функции для оповещения, или разрывает связь с mysql_connection.

Во время связывания соединения MySQL с соединением Memcache, эта функция запросит у сервера MySQL его конфигурацию. Это позволяет автоматически определить, сконфигурирован ли сервер с поддержкой плагина InnoDB Memcache Daemon или поддержкой MySQL Cluster NDB Memcache. Также сервер будет запрошен на предмет автоматической идентификации экспортированных таблиц и прочих настроек. Результаты автоматической настройки можно посмотреть с помощью mysqlnd_memcache_get_config().

Список параметров

mysql_connection

Соединение MySQL с помощью одного из модулей MySQL API для PHP: PDO_MYSQL, mysqli или ext/mysql.

memcache_connection

Экземпляр Memcached, соединенный с плагином MySQL Memcache Daemon. Если этот параметр пропущен, то mysql_connection будет отвязано от всех соединений с memcache. Если существовала предыдущая привязка, то она будет заменена.

pattern

Регулярное выражение PCRE (Perl Compatible Regular Expression) для идентификации потенциальных запросов к Memcache. Запрос должен иметь три подшаблона. Первый подшаблон содержит список запрошенных полей, второй содержит ID столбца из запроса, а третий - запрошенное значение. Если параметр опущен или установлен как NULL, то будет использован шаблон по умолчанию.

callback

Callback-функция, которая будет запущена при отправке запроса к MySQL. Эта функция принимает один параметр типа boolean, который определяет, был ли запрос отправлен с через Memcache.

Возвращаемые значения

TRUE, если связывание или разрыв связи прошли успешно. FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqlnd_memcache_set() с var_dump() в качестве отладочной callback-функции.

<?php
$mysqli = new mysqli("host", "user", "passwd", "database");
$memc = new Memcached();
$memc->addServer("host", 11211);
mysqlnd_memcache_set($mysqli, $memc, NULL, 'var_dump');

/* Этот запрос будет перехвачен и запущен через протокол Memcache */
echo "Запрос с полем id через Memcache: ";
$mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");

/* f1 не сконфигурирован как корректный ключ поля, так что послать это через Memcache нельзя */
echo "Запрос  с полем f1 через Memcache: ";
$mysqli->query("SELECT id FROM test WHERE f1 = 1");

mysqlnd_memcache_set($mysqli);

/* Теперь будет использован обычный протокол MySQL */
echo "var_dump не будет вызван: ";
$mysqli->query("SELECT f1, f2, f3 WHERE id = 1");

?>

Результат выполнения данного примера:

Запрос с полем id через Memcache: bool(true)
Запрос  с полем f1 через Memcache: bool(false)
var_dump не будет вызван:

Смотрите также

  • mysqlnd_memcache_get_config() - Получить информацию о настройках плагина


История изменений

Содержание

  • PECL/mysqlnd_memcache выпуск 1.0

История изменений представляет собой высокоуровневую сводку изменений, которые могут повлиять на приложения и/или обратную совместимость.

Полная история изменений содержится в файле CHANGES, поставляемым вместе с исходниками модуля.


PECL/mysqlnd_memcache выпуск 1.0

1.0.0-alpha

  • Дата релиза: будет определено позднее
  • Девиз/тема: Базовое сопоставление SQL SELECT с доступом к плагину MySQL Memcache.

Первоначальный релиз предоставляет сопоставление простых SQL-запросов типа SELECT в запросы к плагину MySQL Memcache. Он, потенциально, обеспечивает повышенную производительность, так как прямой доступ к хранилищу MySQL с использованием стиля ключ-значение по протоколу Memcache обычно быстрее, чем использование SQL-запросов.


Oracle OCI8

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Testing
    • Настройка во время выполнения
  • Предопределенные константы
  • Примеры
  • Работа с соединениями OCI8 и Connection Pooling
  • Поддержка OCI8 Fast Application Notification (FAN)
  • Поддержка прозрачного для приложений восстановления после отказа (Transparent Application Failover или TAF) для OCI8
  • OCI8 и динамическая трассировка DTrace
  • Поддерживаемые типы данных
  • OCI8 Функции
    • oci_bind_array_by_name — Связывает PHP массив с массивом Oracle PL/SQL
    • oci_bind_by_name — Прикрепляет переменную PHP к соответствующей метке в SQL-выражении
    • oci_cancel — Заканчивает процесс чтения из курсора
    • oci_client_version — Возвращает версию клиентской библиотеки
    • oci_close — Закрывает соединение с сервером Oracle
    • oci_commit — Подтверждает транзакцию базы данных
    • oci_connect — Устанавливает соединение с базой данных Oracle
    • oci_define_by_name — Сопоставляет переменную PHP столбцу результата запроса
    • oci_error — Возвращает последнюю ошибку
    • oci_execute — Выполняет подготовленное выражение
    • 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 — Возвращает исходный Oracle тип поля
    • oci_field_type — Возвращает имя типа поля
    • oci_free_descriptor — Освобождает дескриптор
    • oci_free_statement — Освобождает ресурсы, занимаемые курсором или SQL-выражением
    • oci_get_implicit_resultset — Возвращает следующий ресурс дочернего запроса из ресурса родительского запроса, имеющего неявные результирпующие наборы Oracle Database 12c
    • oci_internal_debug — Включает и выключает внутреннюю отладку
    • oci_lob_copy — Копирует объект LOB
    • oci_lob_is_equal — Сравнивает два объекта LOB/FILE
    • 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_register_taf_callback — Регистрирует пользовательскую функцию обратного вызова для Oracle Database TAF
    • oci_result — Возвращает значение поля из результата запроса
    • oci_rollback — Откатывает транзакции, ожидающие обработки
    • oci_server_version — Возвращает версию сервера Oracle
    • oci_set_action — Задает имя для действия
    • oci_set_call_timeout — Устанавливает время ожидания в миллисекундах для вызовов базы данных
    • oci_set_client_identifier — Задает идентификатор клиента
    • oci_set_client_info — Задает информацию о клиенте
    • oci_set_db_operation — Задает операцию базы данных
    • oci_set_edition — Задает выпуск (edition) базы данных
    • oci_set_module_name — Задает имя модулю
    • oci_set_prefetch — Устанавливает количество строк, которые будут автоматически выбраны в буфер
    • oci_statement_type — Возвращает тип выражения
    • oci_unregister_taf_callback — Удалить регистрацию пользовательской callback-функции для Oracle Database TAF
  • OCI-Collection — Класс OCI-Collection
    • 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-Lob — Класс OCI-Lob
    • OCI-Lob::append — Добавляет данные из объекта LOB в конец другого объекта
    • OCI-Lob::close — Закрывает дескриптор объекта LOB
    • OCI-Lob::eof — Проверяет, находится ли указатель LOB на конце объекта
    • OCI-Lob::erase — Очищает указанную часть объекта LOB
    • OCI-Lob::export — Сохраняет содержимое объекта LOB в файл
    • OCI-Lob::flush — Очищает и записывает буфер объекта LOB на сервер
    • OCI-Lob::free — Освобождает ресурсы, связанные с дескриптором LOB
    • OCI-Lob::getBuffering — Возвращает текущее состояние буферизации большого объекта (LOB)
    • OCI-Lob::import — Записывает содержимое файла в объект LOB
    • OCI-Lob::load — Возвращает содержимое объекта LOB
    • OCI-Lob::read — Возвращает часть объекта LOB
    • OCI-Lob::rewind — Переводит указатель объекта в начало большого объекта
    • OCI-Lob::save — Сохраняет данные в LOB
    • OCI-Lob::saveFile — Псевдоним OCI-Lob::import
    • OCI-Lob::seek — Устанавливает позицию внутреннего указателя LOB
    • OCI-Lob::setBuffering — Изменяет текущее состояние буферизации большого объекта (LOB)
    • OCI-Lob::size — Возвращает размер объекта LOB
    • OCI-Lob::tell — Возвращает текущую позицию внутреннего указателя объекта LOB
    • OCI-Lob::truncate — Обрезает большой объект
    • OCI-Lob::write — Записывает данные в объект LOB
    • OCI-Lob::writeTemporary — Записывает временный большой объект (LOB)
    • OCI-Lob::writeToFile — Псевдоним OCI-Lob::export
  • Устаревшие наименования и функции OCI8
    • ocibindbyname — Псевдоним oci_bind_by_name
    • ocicancel — Псевдоним oci_cancel
    • ocicloselob — Псевдоним OCI-Lob::close
    • ocicollappend — Псевдоним OCI-Collection::append
    • ocicollassign — Псевдоним OCI-Collection::assign
    • ocicollassignelem — Псевдоним OCI-Collection::assignElem
    • ocicollgetelem — Псевдоним OCI-Collection::getElem
    • ocicollmax — Псевдоним OCI-Collection::max
    • ocicollsize — Псевдоним OCI-Collection::size
    • ocicolltrim — Псевдоним OCI-Collection::trim
    • ocicolumnisnull — Псевдоним oci_field_is_null
    • ocicolumnname — Псевдоним oci_field_name
    • ocicolumnprecision — Псевдоним oci_field_precision
    • ocicolumnscale — Псевдоним oci_field_scale
    • ocicolumnsize — Псевдоним oci_field_size
    • ocicolumntype — Псевдоним oci_field_type
    • ocicolumntyperaw — Псевдоним oci_field_type_raw
    • ocicommit — Псевдоним oci_commit
    • ocidefinebyname — Псевдоним oci_define_by_name
    • ocierror — Псевдоним oci_error
    • ociexecute — Псевдоним oci_execute
    • ocifetch — Псевдоним oci_fetch
    • ocifetchinto — Устаревший вариант функций oci_fetch_array, oci_fetch_object, oci_fetch_assoc и oci_fetch_row
    • ocifetchstatement — Псевдоним oci_fetch_all
    • ocifreecollection — Псевдоним OCI-Collection::free
    • ocifreecursor — Псевдоним oci_free_statement
    • ocifreedesc — Псевдоним OCI-Lob::free
    • ocifreestatement — Псевдоним oci_free_statement
    • ociinternaldebug — Псевдоним oci_internal_debug
    • ociloadlob — Псевдоним OCI-Lob::load
    • ocilogoff — Псевдоним oci_close
    • ocilogon — Псевдоним oci_connect
    • ocinewcollection — Псевдоним oci_new_collection
    • ocinewcursor — Псевдоним oci_new_cursor
    • ocinewdescriptor — Псевдоним oci_new_descriptor
    • ocinlogon — Псевдоним oci_new_connect
    • ocinumcols — Псевдоним oci_num_fields
    • ociparse — Псевдоним oci_parse
    • ociplogon — Псевдоним oci_pconnect
    • ociresult — Псевдоним oci_result
    • ocirollback — Псевдоним oci_rollback
    • ocirowcount — Псевдоним oci_num_rows
    • ocisavelob — Псевдоним OCI-Lob::save
    • ocisavelobfile — Псевдоним OCI-Lob::import
    • ociserverversion — Псевдоним oci_server_version
    • ocisetprefetch — Псевдоним oci_set_prefetch
    • ocistatementtype — Псевдоним oci_statement_type
    • ociwritelobtofile — Псевдоним OCI-Lob::export
    • ociwritetemporarylob — Псевдоним OCI-Lob::writeTemporary


Введение

Эти функции позволяют работать с базой данных Oracle Database 19c, 18c, 12c, 11g, 10g, 9i и 8i. Поддерживаются SQL и PL/SQL-выражения. Основной функционал представляет собой поддержку транзакций, привязку переменных PHP к соответствующим плейсхолдерам Oracle, расширенную поддержку больших объектов (LOB) и коллекций. Также поддерживаются кэширование результатов и такие возможности масштабирования Oracle как пул постоянных соединений базы данных (Database Resident Connection Pooling, DRCP).


Установка и настройка

Содержание

  • Требования
  • Установка
  • Testing
  • Настройка во время выполнения


Требования

Модуль OCI8 1.4 входит в PHP 5.3, PHP 5.4 и PHP 5.5. Он также доступен с » PECL. Новая версия OCI8 2.0 доступна с » PECL. OCI8 1.4 требует клиентские библиотеки Oracle версий 12c, 11g, 10g или 9iR2 и устанавливается на PHP 4.3.9 и новее. OCI8 2.0 требует клиентские библиотеки Oracle версий 12c, 11g или 10g и устанавливается на PHP 5.2 и новее.

Если база данных Oracle находится на той же машине, что и PHP, то все необходимые библиотеки уже установлены. Если PHP установлен на другую машину, то используйте бесплатные библиотеки с » Oracle Instant Client.

Для использования Oracle Instant Client, установите basic или basiclite zip-архив Oracle Instant Client или RPM-пакет. При сборке PHP из исходного кода, также установите zip-архив sdk или devel RPM-пакет.

Необходимо использовать PHP с теми же или более свежими версиями библиотек Oracle, чем те, с которыми был собран модуль OCI8.

В Windows, DLL-библиотеке php_oci8 необходимы библиотеки из версии 10gR2 или выше. В версиях PHP от 5.3 и до 5.3.5 включительно, DLL-библиотеке необходимы клиентские библиотеки версии Oracle 11gR1 и выше. Начиная с версии PHP 5.3.6 DLL-библиотеке php_oci8_11g требуются клиентские библиотеки версии Oracle 11gR2 и выше. DLL файл php_oci8_12c DLL из PECL требует клиентские библиотеки версии Oracle 12сR1. В некоторых версиях Instant Client вам также могут дополнительно потребоваться библиотеки mfc71.dll и msvcr71.dll.

Замечание:

Если OCI8 использует клиентские библиотеки 9iR2, то PHP с может соединиться с базой данных Oracle 8i, 9iR2, 10g или 11g. Если OCI8 использует клиентские библиотеки 10g, то база данных может иметь версии 9iR2, 10g, 11g или 12c. Если OCI8 использует клиентские библиотеки 11g, то база данных может иметь версии 9iR2, 10g, 11g или 12c. Если OCI8 использует клиентские библиотеки 12с, то база данных может иметь версии 10g, 11g или 12c.

Замечание:

Полный набор возможностей OCI8 возможен только при использовании новейших версий клиентских библиотек Oracle и базы данных.


Установка

Сборка PHP совместно с OCI8

Перед сборкой OCI8 изучите предыдущий раздел "Требования".

Для работы расширения OCI8, укажите при настройке PHP опцию --with-oci8 .

Перед стартом веб-сервера, OCI8 обычно требуется несколько переменных окружения Oracle (см. ниже) для обнаружения библиотек, конфигурационных файлов и установки некоторых базовых свойств, таких как кодировка, используемая библиотеками Oracle. Эти переменные должны быть установлены перед запуском любого PHP-процесса.

Бинарный файл PHP должен использовать ту же, или более свежую основную версию библиотек Oracle, чем ту, с которой он был собран. Например, если вы собрали OCI8 с библиотеками Oracle 11.2, то PHP также должен работать с библиотеками Oracle 11.2. Приложения PHP могут подключаться к другим версиям Oracle Database, так как Oracle имеет клиент-серверную совместимость разных версий.

Установка OCI8 в виде подгружаемого (shared) расширения

Указание опции конфигурации shared позволяет собрать OCI8 в виде динамически подгружаемой библиотеки. Сборка в виде подгружаемого расширения позволяет легко обновлять OCI8 без пересборки всего PHP.

Соберите OCI8 с помощью одной из следующих опций.

  • При использовании бесплатных библиотек » Oracle Instant Client:

    ./configure --with-oci8=shared,instantclient,/путь/к/instant/client/lib

    Если Instant Client установлен из ZIP-архива, не забудьте в первую очередь создать символическую ссылку на библиотеку, например, так: ln -s libclntsh.so.11.1 libclntsh.so.

    Если Oracle Instant Client был установлен с помощью RPM, команда конфигурации будет выглядеть так:

    ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/<version>/client/lib

    Например, --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client/lib

    Учтите, что поддержка Oracle Instant Client появилась только начиная с версий PHP 4.3.11 и 5.0.4 и ранее использовалась с опцией --with-oci8-instant-client .

  • При использовании базы данных Oracle database или полной установке Oracle Client:

    ./configure --with-oci8=shared,$ORACLE_HOME

    Убедитесь, что пользователь, под которым запущен веб-сервер, (nobody, www) имеет доступ к библиотекам, файлам инициализации и tnsnames.ora (если используется) в папке $ORACLE_HOME. При использовании Oracle 10gR2, может понадобиться запуск утилиты $ORACLE_HOME/install/changePerm.sh для получения доступа к этой папке.

После настройки следуйте обычной процедуре сборки PHP, например, make install, после чего будет создано подгружаемая библиотека oci8.so. Возможно, вам потребуется вручную перенести ее в папку расширений PHP, указанную опцией extension_dir вашего php.ini.

Для завершения установки OCI8 добавьте следующую строку в php.ini:

extension=oci8.so

Установка OCI8 в виде статически скомпилированного расширения

Сборка PHP с подключением OCI8, используя одну из следующих конфигурационных опций.

  • При использовании Oracle Instant Client:

    ./configure --with-oci8=instantclient,/путь/к/instant/client/lib

  • При использовании базы данных Oracle или полной установке Oracle Client:

    ./configure --with-oci8=$ORACLE_HOME

После настройки следуйте обычной процедуре установки PHP, например, make install. После успешной сборки нет необходимости добавлять oci8.so в файл php.ini. Никаких дополнительных шагов сборки больше не требуется.

Установка OCI8 из PECL

Расширение OCI8 может быть включено в текущую установку PHP как автоматически, так и вручную с помощью » PECL.

Для автоматической установки следуйте данным инструкциям:

  • Если ваш компьютер находится за файрволлом, установите прокси для PEAR, например:

    pear config-set http_proxy http://my-proxy.example.com:80/

  • Запустите

    pecl install oci8

    При запросе введите либо значение $ORACLE_HOME, либо instantclient,/path/to/instant/client/lib.

    Обратите внимание: Не вводите переменную $ORACLE_HOME, т.к. она не будет развернута. Вместо этого, введите реальный путь к домашней папке Oracle.

Для установки вручную, если команда pecl недоступна, то скачайте пакет установки PECL OCI8, например, oci8-1.4.10.tgz.

  • Разархивируйте пакет:

    tar -zxf oci8-1.4.10.tgz
cd oci8-1.4.10

  • Подготовьте к установке:

    phpize

  • Настройте пакет, указав $ORACLE_HOME или Instant Client:

    ./configure -with-oci8=shared,$ORACLE_HOME

    или

    ./configure -with-oci8=shared,instantclient,/path/to/instant/client/lib

  • Установите пакет:

    make install

После автоматической или ручной установки отредактируйте ваш php.ini, добавив в него следующую строку:

extension=oci8.so

Убедитесь, что директива php.ini extension_dir установлена на ту самую папку, в которую была установлена библиотека oci8.so.

Установка OCI8 в Windows

При использовании клиентских библиотек Oracle 10gR2 в Windows, раскомментируйте в php.ini строку extension=php_oci8.dll. При использовании клиентских библиотек Oracle 11gR2 и новее, раскомментируйте extension=php_oci8_11g.dll или extension=php_oci8.dll. С библиотеками Oracle 12c используйте extension=php_oci8_12c.dll или extension=php_oci8_11g.dll или extension=php_oci8.dll. Одновременно можно включить только одну из этих библиотек. DLL файлы с более высокой версией могут содержать больше функций. Не все библиотеки доступны во всех версиях PHP. Убедитесь, что директива php.ini extension_dir установлена на папку с DLL файлами расширений PHP.

При использовании Instant Client, установите системную переменную окружения PATH на папку с библиотекой Oracle.

Установка окружения Oracle

Перед использованием данного расширения, убедитесь, что переменные окружения Oracle правильно настроены для пользователя, под которым работает веб-сервер. Если ваш веб-сервер автоматически стартует при загрузке, то убедитесь, что окружение при загрузке также настроено корректно.

Замечание:

Не устанавливайте переменные окружения Oracle через putenv() в PHP-скрипте, потому что библиотеки Oracle могут быть загружены и проинициализированы до запуска вашего скрипта. Переменные, установленные через putenv() могут затем вызывать конфликты, падения и прочее непредсказуемое поведение. Некоторые функции могут работать, в то время как другие давать мелкие ошибки. Необходимо устанавливать эти переменные до запуска веб-сервера.

В Red Hat Linux и его вариантах, экспортируйте переменные в конце файла /etc/sysconfig/httpd. Другие системы с Apache 2 могут использовать скрипт envvars из папки bin в дистрибутиве Apache. Третьим вариантом является директива Apache SetEnv в файле httpd.conf, на каких-то системах она может работать, однако, известно, что на некоторых ее недостаточно.

Чтобы удостовериться в корректной настройке переменных окружения, используйте функцию phpinfo() и проверьте, что раздел Environment (не Apache Environment) содержит ожидаемые переменные.

Следующая таблица содержит переменные, которые могут вам потребоваться. За подробностями обо всех доступных переменных обращайтесь к документации Oracle.

Общие переменные окружения Oracle
Название | Цель
ORACLE_HOME | Указывает на папку, с полностью установленной базой данных Oracle. Не устанавливайте эту переменную при использовании Oracle Instant Client, т.к. в этом нет необходимости и может вызвать проблемы при установке.
ORACLE_SID | Содержит имя базы данных на локальной машине, к которой идет подключение. Нет необходимости устанавливать эту переменную при использовании Oracle Instant Client, или всегда передавать в параметрах соединения в функцию oci_connect().
LD_LIBRARY_PATH | Установите эту переменную (или ее эквивалент на используемой платформе, например, DYLD_LIBRARY_PATH, LIBPATH или SHLIB_PATH) в местоположение библиотек Oracle, например, $ORACLE_HOME/lib или /usr/lib/oracle/11.1/client/lib. В этой переменной нет необходимости, если библиотеки указываются другим механизмом поиска, например, ldconfig или LD_PRELOAD.
NLS_LANG | Это основная переменная, используемая для указания кодировки и настроек глобализации в библиотеках Oracle.
ORA_SDTZ | Устанавливает временную зону сессии Oracle.
TNS_ADMIN | Содержит папку, в которой хранятся конфигурационные файлы Oracle Net Services, такие как tnsnames.ora и sqlnet.ora. В ней нет необходимости, если строка соединения в функции oci_connect() использует синтаксис Easy Connect, такой как, например, localhost/XE. В ней также нет необходимости, если сетевые конфигурационные файлы содержатся в местах хранения по умолчанию, таких как $ORACLE_HOME/network/admin или /etc.
Менее используемые переменные окружения Oracle включают в себя TWO_TASK, ORA_TZFILE, а также различные установки глобализации Oracle наподобие переменных NLS* и ORA_NLS_*.

Решение проблем

Самой частой проблемой при установке OCI8 является неправильная установка окружения Oracle. Обычно это выражается в проблеме при использовании функций oci_connect() или oci_pconnect(). Ошибка может проявляться в виде ошибок PHP, например, Call to undefined function oci_connect(), ошибок Oracle, таких как ORA-12705, или даже крушения Apache. Проверьте лог-файлы Apache на наличие ошибок запуска и вышеописанные разделы для разрешения этой проблемы.

Несмотря на то, что сетевые ошибки, наподобие ORA-12154 или ORA-12514 сигнализируют ошибку в именовании или конфигурации сети Oracle, реальной причиной может быть некорректно установленное окружение PHP, из-за чего библиотеки Oracle не могут найти конфигурационный файл tnsnames.ora.

В Windows, использование нескольких версий Oracle на одной машине может легко вызвать их конфликты, которых можно избежать при соблюдении особых мер предосторожности, предусматривающих, что PHP использует корректную версию Oracle.

Утилита, помогающая определить искомые и загруженные в итоге библиотеки, может помочь в случае проблем при отсутствующих или конфликтующих библиотеках, особенно в Windows.

Замечание: Если веб-сервер не стартует или падает при старте

Проверьте, что 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, libpthread называется libthread. Таким образом, PHP и Apache должны быть настроены с помощью EXTRA_LIBS=-lthread.


Testing

Набор тестов для OCI8 находится в директории ext/oci8/tests. После прогона этих тестов, в этой директории также окажутся файлы журналов произошедших событий и ошибок.

Перед запуском тестов необходимо отредактировать файл details.inc и задать значения переменным $user, $password и строке соединения $dbase. Набор тестов OCI8 разрабатывался с использованием учетной записи SYSTEM. Некоторые тесты не будут выполняться, если у тестирующего пользователя нет аналогичных прав доступа.

Для тестирования функции Oracle создания пулов соединений (Database Resident Connection Pooling) необходимо установить переменную $test_drcp в TRUE, а также убедитесь, что в строке соединения задан соответствующий адрес DRCP сервера.

В качестве альтернативы редактированию файла details.inc можно задать значения переменным окружения, например:

    $ export PHP_OCI8_TEST_USER=system
    $ export PHP_OCI8_TEST_PASS=oracle
    $ export PHP_OCI8_TEST_DB=localhost/XE
    $ export PHP_OCI8_TEST_DRCP=FALSE
Обратите внимание, что в некоторых оболочках эти переменные могут неправильно транслироваться в PHP процесс, и в тестах будут возникать ошибки подключения к базе данных. Будьте аккуратны при использовании этого метода настройки модуля.

Далее необходимо задать окружение базы данных Oracle. Для Oracle 10gR2 XE это:

    $ . /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh

Для Oracle 11gR2 XE:

    $ . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

Для других версий:

    $ . /usr/local/bin/oraenv

Некоторые оболочки требуют, чтобы в php.ini параметр variables_order содержал литеру E, например:

    variables_order = "EGPCS"

Запуск всех PHP тестов можно осуществить командой:

    $ cd your_php_src_directory
    $ make test
либо можно запустить только OCI8 тесты:
    $ cd your_php_src_directory
    $ make test TESTS=ext/oci8

По завершении тестирования, просмотрите журналы на наличие ошибок. На слабых машинах время выполнения некоторых тестов может превысить значение настройки таймаута в файле run-tests.php. Чтобы это исправить, задайте переменной окружения TEST_TIMEOUT значение побольше (значение в секундах).

На быстрых вычислительных системах с локальной базой данных, рассчитанных на небольшие нагрузки (например, Oracle 11gR2 XE), некоторые тесты могут вызывать ORA-12516 или ORA-12520 ошибки. Для их предотвращения необходимо увеличить значение параметра базы данных PROCESSES по инструкции ниже:

Подключиться к базе данных в роли суперпользователя:

    $ su - oracle

Задать необходимое окружение с помощью сценариев oracle_env.sh или oraenv, как описано выше.

Запустить утилиту командной строки SQL*Plus и увеличить значение PROCESSES

    $ sqlplus / as sysdba
    SQL> alter system set processes=100 scope=spfile

Перезапустить базу данных:

    SQL> startup force


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации OCI8
Имя | По умолчанию | Место изменения | Список изменений
oci8.connection_class | "" | PHP_INI_ALL | Доступна начиная с версии PHP 5.3 (PECL OCI8 1.3).
oci8.default_prefetch | "100" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.1.2 (PECL OCI8 1.1).
oci8.events | Off | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.3 (PECL OCI8 1.3).
oci8.max_persistent | "-1" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.1.2 (PECL OCI8 1.1).
oci8.old_oci_close_semantics | Off | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.1.2 (PECL OCI8 1.1).
oci8.persistent_timeout | "-1" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.1.2 (PECL OCI8 1.1).
oci8.ping_interval | "60" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.1.2 (PECL OCI8 1.1).
oci8.privileged_connect | Off | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.1.2 (PECL OCI8 1.1).
oci8.statement_cache_size | "20" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.1.2 (PECL OCI8 1.1).

Краткое разъяснение конфигурационных директив.

oci8.connection_class string

Этот определяемый пользователем текст используется соединениями Oracle 11g резидентного пула соединений базы данных (Database Resident Connection Pooling (DRCP)) для подразделения пула соединений. Это позволяет постоянным соединениям OCI8 из приложения заново использовать сессии базы данных от предыдущего PHP-скрипта, улучшая масштабируемость. Если приложение использует процесс из пула базы данных, ранее используемый с другим классом соединений, настройки сессии, такие как формат даты Oracle, будут сброшены. Это предотвращает случайное деление информации между различными приложениями.

Значение может быть установлено во время выполнения скрипта с помощью ini_set() до установки соединения.

Для использования DRCP, OCI8 должна быть слинкована с библиотеками Oracle 11g и база данных должна быть Oracle 11g. Пул соединений в базе данных должен быть включен, oci8.connection_class должно быть установлено в одно и то же строковое значение для всех веб-серверов, выполняющих одно и то же приложение, а строка соединения OCI8 должна указывать на сервер из пула.

oci8.default_prefetch int

Эта опция устанавливает значение по умолчанию для количества экстра рядов, которые будут возвращены и автоматически закэшированы при низкоуровневом запросе данных из базы данных. Установка значения в 0 выключает предварительную выборку (prefetching).

Значение предварительной выборки не меняет количество возвращаемых пользователю рядов такими функциями как oci_fetch_array(); OCI8 внутренне обрабатывает предварительную выборку и кэширование рядов.

Значение может быть установлено отдельно для каждого выражения (per-statement) с помощью oci_set_prefetch() до выполнения самого выражения.

В PHP 5.3 (PECL OCI8 1.3.4) значение по умолчанию было увеличено с 10 до 100.

В PHP 5.3.2 (PECL OCI8 1.4) минимально устанавливаемое значение было уменьшено с 1 до 0, разрешая таким образом выключение предварительной выборки.

При использовании Oracle Database 12c или новее, предварительное значение, заданное PHP, может быть переопределено клиентским конфигурационным файлом Oracle oraaccess.xml. Обратитесь к документации Oracle.

Замечание: Большая предварительная выборка может улучшить производительность за счет некоторого увеличенного использования памяти. Для запросов, возвращающих большие массивы данных, выгода в производительности будет значительной.

oci8.events boolean

Включение (On) позволяет уведомить PHP о событиях Быстрого Уведомления Приложений базы данных (Fast Application Notification (FAN)).

Без FAN, если экземпляр базы данных или узел машины неожиданно даст сбой, PHP приложения могут быть заблокированы, ожидая ответа от базы данных до истечения таймаута TCP. С помощью событий FAN PHP приложения быстро будут уведомлены о сбоях, которые влияют на установленные ими соединения к базе данных. Расширение OCI8 подчистит неиспользуемые соединения в кэше постоянных соединений.

При использовании директивы (On), база данных также должна быть настроена на отправку FAN событий.

Поддержка FAN доступна, если OCI8 была слинкована с библиотеками Oracle 10gR2 (или более поздними) и соединение было осуществлено к Oracle Database 10gR2 (или более поздней версии).

oci8.max_persistent int

Максимальное количество постоянных соединений OCI8 на один PHP процесс. Установка этой опции в -1 означает отсутствие лимита.

oci8.old_oci_close_semantics boolean

Эта опция контролирует поведение функции oci_close(). Ее включение означает, что oci_close() не делает ничего; соединение не будет закрыто, пока не закончится выполнение скрипта. Это сделано только в целях обратной совместимости. Если вы ощущаете потребность в этой настройке, строго рекомендуется настроить вызовы oci_close() в ваших скриптах вместо включения этой опции.

oci8.persistent_timeout int

Максимальное количество секунд, которое разрешается PHP-процессу держать неиспользуемое постоянное соединение открытым. Установка этой опции в -1 означает, что неиспользуемые соединения будут удержаны, пока PHP-процесс не завершит свое выполнение или соединение не будет принудительно закрыто с помощью функции oci_close().

Замечание: В PHP истечение срока действия неиспользуемых ресурсов не основано на уведомлениях. Оно случается когда PHP завершает обработку скрипта и проверяет отметку времени последних использованных ресурсов. Отсюда возникает следующий парадокс: неиспользуемые соединения могут быть закрыты только когда есть некоторая активность (хотя и не обязательно связанная с OCI8) в PHP-процессе. Если присутствует более одного PHP-процесса, то каждый из них в отдельности должен быть приведен в действие для того, чтобы инициировать истечение срока действия простаивающих ресурсов. Введение резидентного пула соединений базы данных (DRCP) в Oracle 11g разрешает проблемы с памятью и ресурсами, которые ранее пытались решить oci8.max_persistent и oci8.persistent_timeout.

Замечание: В PHP 5.3 (PECL OCI8 1.3), постоянные соединения могут быть закрыты с помощью oci_close().

oci8.ping_interval int

Количество секунд, которое должно пройти до совершения пинга в течение выполнения oci_pconnect(). Пинг обеспечивает корректность соединения базы данных. Если установлена в 0, постоянные соединения будут пинговаться при каждом вызове oci_pconnect(). Для полного отключения пингов установите эту опцию в -1.

Замечание: Отключение пингов позволяет oci_pconnect() действовать с максимальной эффективностью, но PHP может быть неспособен определить непригодные соединения, например, при обрыве сети или при отключении базы данных Oracle после того, как PHP установил соединение, пока соединение вновь не будет использовано в скрипте. Проконсультируйтесь с документацией функции oci_pconnect() для более подробной информации.

oci8.privileged_connect boolean

Эта опция позволяет соединениям использовать привилегированные внешние учетные записи OCI_SYSOPER или OCI_SYSDBA.

Замечание: Установка этой директивы в On позволит скриптам, запущенных с соответствующими пользовательскими привилегиями операционной системы, соединяться с базой данных в качестве привилегированных пользователей базы данных без требования пароля. Это может быть брешью системы безопасности.

oci8.statement_cache_size int

Эта опция включает кэширование выражений, а также указывает сколько выражений необходимо кэшировать. Для отключения кэширования выражений просто установите значение этой опции в 0.

Кэширование выражений убирает необходимость передавать текст выражения к базе данных, а также обратную передачу различных метаданных об этом выражении обратно к PHP. Это может значительно улучшить общую производительность системы в приложениях, повторно использующих выражения в течение жизни одного соединения. Некоторые дополнительные "курсоры" баз данных могут остаться открытыми, подразумевая, что данные выражения будут использованы повторно.

Установите это значение размером рабочего набора выражений, используемых вашим приложением. Установка слишком малого значения может повлечь выброс выражений из кэша до их повторного использования.

Эта опция чаще всего используется с постоянными соединениями.

При использовании Oracle Database 12c, предварительное значение, заданное PHP, может быть переопределено клиентским конфигурационным файлом Oracle oraaccess.xml. Обратитесь к документации Oracle.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

OCI8 Function and Method Modes
Константа | Описание
OCI_ASSOC | Используется функциями oci_fetch_all() и oci_fetch_array() для получения результатов в виде ассоциативного массива.
OCI_BOTH | Используется функциями oci_fetch_all() и oci_fetch_array() для получения результатов в виде массива с ассоциативными и числовыми индексами.
OCI_COMMIT_ON_SUCCESS | Режим выполнения выражений для oci_execute(). Автоматически завершает транзакцию оператором COMMIT при успешном выполнении выражения.
OCI_CRED_EXT | Используется функцией oci_connect() для внешней или системной аутентификации. Добавлена Introduced в PHP 5.3 и PECL OCI8 1.3.4.
OCI_DEFAULT | Смотри OCI_NO_AUTO_COMMIT.
OCI_DESCRIBE_ONLY | Режим выполнения выражений для oci_execute(). Используйте этот режим, если вы хотите получить данные о выполнении запроса, а не выполнить сам запрос.
OCI_EXACT_FETCH | Устарело. Режим получения результатов запроса. Используется в том случае, если приложению известно заранее сколько строк будет получено в результате. Oracle 8 и более поздние версии не используют выборку результатов с упреждением в этом режиме, а курсоры уничтожаются автоматически после выборки ожидаемого количества строк, что может уменьшить требования сервера к ресурсам.
OCI_FETCHSTATEMENT_BY_COLUMN | Режим oci_fetch_all() по умолчанию.
OCI_FETCHSTATEMENT_BY_ROW | Альтернативный режим oci_fetch_all().
OCI_LOB_BUFFER_FREE | Используется функцией OCI-Lob::flush для освобождения используемых буферов.
OCI_NO_AUTO_COMMIT | Режим выполнения выражений для oci_execute(). В этом режиме транзакция не завершается автоматически оператором COMMIT. Для повышения читаемости используйте в новом коде эту константу вместо старой равносильной константы OCI_DEFAULT. Добавлена в PHP 5.3.2 (PECL OCI8 1.4).
OCI_NUM | Используется с oci_fetch_all() и oci_fetch_array() для получения массива с числовыми индексами.
OCI_RETURN_LOBS | Используется oci_fetch_array() для получения содержания объекта LOB вместо дескриптора.
OCI_RETURN_NULLS | Используется с oci_fetch_array() для получения пустых элементов массива, если соответствующее поле в результате равно NULL.
OCI_SEEK_CUR | Используется OCI-Lob::seek для задания позиции смещения.
OCI_SEEK_END | Используется OCI-Lob::seek для задания позиции смещения.
OCI_SEEK_SET | Используется OCI-Lob::seek для задания позиции смещения.
OCI_SYSDATE | Больше не используется.
OCI_SYSDBA | Используется функцией oci_connect() для соединения с привилегиями SYSOPER. Опция php.ini oci8.privileged_connect должна быть включена.
OCI_SYSOPER | Используется функцией oci_connect() для соединения с привилегиями SYSOPER. Опция php.ini oci8.privileged_connect должна быть включена.
OCI_TEMP_BLOB | Используется функцией OCI-Lob::writeTemporary для создания временного BLOB.
OCI_TEMP_CLOB | Используется функцией OCI-Lob::writeTemporary для создания временного CLOB.
OCI8 привязка переменных и определение типов
Константа | Описание
OCI_B_BFILE | Используется функцией oci_bind_by_name() для привязки переменных типа BFILE.
OCI_B_BIN | Используется совместно с функцией oci_bind_by_name() для привязки необработанных (RAW) данных.
OCI_B_BLOB | Используется функцией oci_bind_by_name() для привязки переменных типа BLOB.
OCI_B_BOL | Используется функцией oci_bind_by_name() для привязки переменных типа PL/SQL BOOLEAN.
OCI_B_CFILEE | Используется функцией oci_bind_by_name() для привязки переменных типа CFILE.
OCI_B_CLOB | Используется функцией oci_bind_by_name() для привязки переменных типа CLOB.
OCI_B_CURSOR | Используется функцией oci_bind_by_name() для привязки курсоров, ранее полученных из oci_new_descriptor().
OCI_B_INT | Используется функцией oci_bind_array_by_name() для привязки массивов элементов типа INTEGER.
OCI_B_NTY | Используется функцией oci_bind_by_name() для привязки именованных типов данных. Обратите внимание: в PHP < 5.0 константа называлась OCI_B_SQLT_NTY.
OCI_B_NUM | Используется функцией oci_bind_array_by_name() для привязки массивов элементов типа NUMBER.
OCI_B_ROWID | Используется функцией oci_bind_by_name() для привязки переменных типа ROWID.
SQLT_AFC | Используется функцией oci_bind_array_by_name() для привязки массивов с элементами типа CHAR.
SQLT_AVC | Используется функцией oci_bind_array_by_name() для привязки массивов с элементами типа VARCHAR2.
SQLT_BDOUBLE | Не поддерживается.
SQLT_BFILEE | То же, что и OCI_B_BFILE.
SQLT_BFLOAT | Не поддерживается.
SQLT_BIN | То же, что и OCI_B_BIN.
SQLT_BLOB | То же, что и OCI_B_BLOB.
SQLT_BOL | То же, что и OCI_B_BOL.
SQLT_CFILEE | То же, что и OCI_B_CFILEE.
SQLT_CHR | Используется функцией oci_bind_array_by_name() для привязки массивов с элементами типа VARCHAR2. Также используется функцией oci_bind_by_name().
SQLT_CLOB | То же, что и OCI_B_CLOB.
SQLT_FLT | Используется функцией oci_bind_array_by_name() для привязки массивов с элементами типа FLOAT.
SQLT_INT | То же, что и OCI_B_INT.
SQLT_LBI | Используется функцией oci_bind_by_name() для привязки переменных типа LONG RAW.
SQLT_LNG | Используется функцией oci_bind_by_name() для привязки переменных типа LONG.
SQLT_LVC | Используется функцией oci_bind_array_by_name() для привязки массивов с элементами типа LONG VARCHAR.
SQLT_NTY | То же, что и OCI_B_NTY.
SQLT_NUM | То же, что и OCI_B_NUM.
SQLT_ODT | Используется функцией oci_bind_array_by_name() для привязки массивов с элементами типа LONG.
SQLT_RDD | То же, что и OCI_B_ROWID.
SQLT_RSET | То же, что и OCI_B_CURSOR.
SQLT_STR | Используется функцией oci_bind_array_by_name() для привязки массивов с элементами типа STRING.
SQLT_UIN | Не поддерживается.
SQLT_VCS | Используется совместно с oci_bind_array_by_name() для привязки массивов VARCHAR.
Типы дескрипторов OCI8
Константа | Описание
OCI_DTYPE_FILE | Флаг используется oci_new_descriptor() для инициализации дескриптора типа FILE.
OCI_DTYPE_LOB | Флаг используется oci_new_descriptor() для инициализации дескриптора типа LOB.
OCI_DTYPE_ROWID | Флаг используется oci_new_descriptor() для инициализации дескриптора типа ROWID.
OCI_D_FILE | То же, что и OCI_DTYPE_FILE.
OCI_D_LOB | То же, что и OCI_DTYPE_LOB.
OCI_D_ROWID | То же, что и OCI_DTYPE_ROWID.


Примеры

Эти примеры выполняются под пользователем HR, который является образцом из "Human Resources" схемы, поставляемой вместе с базой данных Oracle. Возможно потребуется разблокировать этот аккаунт и переустановить для него пароль, чтобы использовать его.

Примеры подключаются к базе данных XE на вашем компьютере. Вы можете заменить строки с подключением для использования своих баз данных.

Пример #1 Простой запрос

Данный пример показывает запрос и результат. Выражения в OCI8 используют последовательность из шагов подготовка-выполнение-выборка.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Подготовка выражения
$stid = oci_parse($conn, 'SELECT * FROM departments');
if (!$stid) {
    $e = oci_error($conn);
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Выполним логику запроса
$r = oci_execute($stid);
if (!$r) {
    $e = oci_error($stid);
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Получим результат запроса
print "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    print "<tr>\n";
    foreach ($row as $item) {
        print "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    print "</tr>\n";
}
print "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 Вставка с использованием привязанных переменных

Привязывание переменных повышают производительность за счет повторного использования контекста запроса и кеширования. Также они повышают безопасность блокируя некоторые типы SQL-инъекций.

<?php

// Создайте таблицу перед выполнением:
//   CREATE TABLE MYTABLE (mid NUMBER, myd VARCHAR2(20));

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'INSERT INTO MYTABLE (mid, myd) VALUES(:myid, :mydata)');

$id = 60;
$data = 'Some data';

oci_bind_by_name($stid, ':myid', $id);
oci_bind_by_name($stid, ':mydata', $data);

$r = oci_execute($stid);  // выполнение и фиксация

if ($r) {
    print "Была вставлена одна строка";
}

oci_free_statement($stid);
oci_close($conn);

?>

Пример #3 Привязка в WHERE выражении запроса

Пример единичной привязки скаляра.

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT last_name FROM employees WHERE department_id = :didbv ORDER BY last_name';
$stid = oci_parse($conn, $sql);
$didbv = 60;
oci_bind_by_name($stid, ':didbv', $didbv);
oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
    echo $row['LAST_NAME'] ."<br>\n";
}

// Выведет
//    Austin
//    Ernst
//    Hunold
//    Lorentz
//    Pataballa

oci_free_statement($stid);
oci_close($conn);

?>

Пример #4 Вставка данных в поле типа CLOB

Для больших данных используйте длинные двоичные объекты (BLOB) или длинные символьные объекты (CLOB). Данный пример использует тип данных CLOB.

<?php

// Создайте таблицу перед выполнением:
//     CREATE TABLE MYTABLE (mykey NUMBER, myclob CLOB);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$mykey = 12343;  // произвольный ключ для данного примера;

$sql = "INSERT INTO mytable (mykey, myclob)
        VALUES (:mykey, EMPTY_CLOB())
        RETURNING myclob INTO :myclob";

$stid = oci_parse($conn, $sql);
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_bind_by_name($stid, ":myclob", $clob, -1, OCI_B_CLOB);
oci_execute($stid, OCI_NO_AUTO_COMMIT); // используйте OCI_DEFAULT для PHP <= 5.3.1
$clob->save("A very long string");

oci_commit($conn);

// Получение CLOB данных

$query = 'SELECT myclob FROM mytable WHERE mykey = :mykey';

$stid = oci_parse ($conn, $query);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_execute($stid);

print '<table border="1">';
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) {
    print '<tr><td>'.$row['MYCLOB'].'</td></tr>';
    // В цикле, очищение больших переменных перед повторным получением данных, уменьшает пиковое потребление памяти PHP
    unset($row);
}
print '</table>';

?>

Пример #5 Использование PL/SQL хранимых процедур

Вы должны привязывать переменную для каждого возвращаемого значения и опционально для каждого аргумента функции.

<?php

/*
  До выполнения PHP скрипта сойздайте хранимую процедуру в
  SQL*Plus или SQL Developer:

  CREATE OR REPLACE FUNCTION myfunc(p IN NUMBER) RETURN NUMBER AS
  BEGIN
      RETURN p * 3;
  END;

*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p = 8;

$stid = oci_parse($conn, 'begin :r := myfunc(:p); end;');
oci_bind_by_name($stid, ':p', $p);
oci_bind_by_name($stid, ':r', $r, 40);

oci_execute($stid);

print "$r\n";   // выведет 24

oci_free_statement($stid);
oci_close($conn);

?>

Пример #6 Использование PL/SQL хранимых процедур

При использовании хранимых процедур желательно привязывать переменные к каждому аргументу.

<?php

/*
  До выполнения PHP скрипта сойздайте хранимую процедуру в
  SQL*Plus или SQL Developer:

  CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
  BEGIN
      p2 := p1 * 2;
  END;

*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p1 = 8;

$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);
oci_bind_by_name($stid, ':p2', $p2, 40);

oci_execute($stid);

print "$p2\n";   // выведет 16

oci_free_statement($stid);
oci_close($conn);

?>

Пример #7 Вызов PL/SQL процедур, возвращающих REF CURSOR

Каждое возвращаемое значение из запроса является REF CURSOR.

<?php
/*
  Создайте PL/SQL хранимую процедуру:

  CREATE OR REPLACE FUNCTION myfunc(p1 IN NUMBER) RETURN SYS_REFCURSOR AS
      rc SYS_REFCURSOR;
  BEGIN
      OPEN rc FOR SELECT city FROM locations WHERE ROWNUM < p1;
      RETURN rc;
  END;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT myfunc(5) AS mfrc FROM dual');
oci_execute($stid);

echo "<table border='1'>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC))) {
    echo "<tr>\n";
    $rc = $row['MFRC'];
    oci_execute($rc);  // возвращает значение поля из запроса в виде указателя
    while (($rc_row = oci_fetch_array($rc, OCI_ASSOC))) {
        echo "    <td>" . $rc_row['CITY'] . "</td>\n";
    }
    oci_free_statement($rc);
    echo "</tr>\n";
}
echo "</table>\n";

// Выведет:
//   Beijing
//   Bern
//   Bombay
//   Geneva

oci_free_statement($stid);
oci_close($conn);

?>


Работа с соединениями OCI8 и Connection Pooling

Функции подключения

Расширение OCI8 предоставляет три различных функции для подключения к серверу Oracle. Стандартная функция соединения - это oci_connect(). Она создает соединение к базе данных Oracle и возвращает ресурс, который используется при последующих обращениях к БД.

Подключение к серверу Oracle является достаточно дорогостоящей операцией с точки зрения времени, которое требуется для выполнения. Функция oci_pconnect() использует постоянный кэш соединений, которые могут быть повторно использованы различными запросами скриптов. Это означает, что затраты на установку соединения, как правило, происходят только единожды на один процесс PHP (или на потомка Apache).

Если приложение соединяется к серверу Oracle, используя особый набор данных для каждого веб-пользователя, то постоянный кэш соединений, используемый функцией oci_pconnect() будет менее полезным, т.к. количество одновременных пользователей вырастает до того уровня, где он может начать оказывать негативное влияние на общую производительность сервера Oracle из-за поддержания слишком большого количества простаивающих соединений. Если приложение настроено таким образом, то рекомендуется либо настроить его с помощью параметров конфигурации oci8.max_persistent и oci8.persistent_timeout (это даст возможность управления размером кэша постоянных соединений и их время жизни), либо использовать Oracle Database Resident Connection Pooling (в Oracle Database 11g и новее), либо использовать функцию oci_connect() вместо нее.

Вместе oci_connect() и oci_pconnect() используют кэш подключений; если множество вызовов oci_connect() использует одинаковые параметры в данном скрипте, второй и последующие вызовы вернут существующий дескриптор соединения. Кэш, используемый функцией oci_connect(), очищается по завершению выполнения скрипта, или когда соединение неявно закрывается. У функции oci_pconnect() похожее поведение, хотя ее кэш обрабатывается отдельно и остается действующим между запросами HTTP.

Эта возможность кеширования означает, что два дескриптора не изолированы транзакционно (они на самом деле являются одним и тем же дескриптором, поэтому здесь нет никакой изоляции). Если приложению необходимы два отдельных транзакционно изолированных соединения, то необходимо использовать функцию oci_new_connect().

Кеш функции oci_pconnect() очищается и закрываются все соединения к БД, когда завершается процесс PHP. Поэтому эффективное использование постоянных соединений требует, чтобы PHP был модулем Apache или использовался с FCGI или подобным. Постоянные соединения не будут иметь никаких преимуществ перед oci_connect(), когда PHP используется с CGI или через командную строку.

Функция oci_new_connect() всегда создает новое соединение с сервером Oracle, невзирая на то, что другие соединения могут уже существовать. Высоконагруженным веб-приложениям следует избегать использования oci_new_connect(), особенно в самых загруженных частях приложения.

Создание пула соединений DRCP

PHP начиная с 5.3 (PECL OCI8 1.3) поддерживает постоянный пул соединений Oracle 11g (DRCP). DRCP позволяет более эффективно использовать память СУБД и предоставляет высокую масштабируемость. Изменять код приложения для использования DRCP либо нет необходимости, либо требуются минимальные изменения.

DRCP подходит для приложений, которые подключаются используя несколько схем БД и сохраняют соединения к БД открытыми короткий промежуток времени. Другим приложениям следует использовать доступные по умолчанию Dedicated серверные процессы или использовать Shared сервера.

DRCP приносит пользу всем трем функциям подключения, однако предоставляет самую высокую масштабируемость, когда соединения создаются с помощью функции oci_pconnect().

Чтобы функционал DRCP был доступен в OCI8, клиентские библиотеки Oracle, используемые в PHP, и версия сервера баз данных должны быть 11g и новее.

Документация по DRCP находится в нескольких руководствах Oracle. К примеру, см. » Конфигурирование пула постоянных соединений базы данных в документации Oracle для информации по использованию. Документ » техническое описание DRCP содержит дополнительную информацию по DRCP.

Для использования DRCP, скомпилируйте PHP с расширением OCI8 1.3 (и новее)ы и библиотеками Oracle 11g (и новее) и затем выполните следующие действия:

  • Как привилегированный администратор БД воспользуйтесь программой наподобие SQL*Plus, чтобы запустить пул соединений в СУБД:

        SQL> execute dbms_connection_pool.start_pool;

  • Дополнительно можно использовать dbms_connection_pool.alter_param(), чтобы конфигурировать параметры DRPC. Текущие настройки пула могут быть получены из представления DBA_CPOOL_INFO.

  • Обновите используемую строку соединения. К примеру, для приложений PHP, которые сейчас соединяются, используя Network Connect Name MYDB:

        $c = oci_pconnect("myuser", "mypassword", "MYDB");

    измените файл tnsnames.ora и добавьте оператор (SERVER=POOLED), например:

        MYDB = (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=myhost.dom.com)
           (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales)
           (SERVER=POOLED)))

    В качестве альтернативы можно изменить синтаксис упрощенного соединения в PHP и добавить туда :POOLED после имени сервиса:

        $c = oci_pconnect("myuser", "mypassword", "myhost.dom.com:1521/sales:POOLED");

  • Отредактируйте php.ini и выберите имя класса соединения. Это имя устанавливает логическое разделение пула соединений и может использоваться, чтобы изолировать пул для отдельных приложений. Любое PHP-приложение с одинаковым именем пользователя и классом для соединения будет иметь возможность совместно использовать соединения в пуле, получая бОльшую масштабируемость.

        oci8.connection_class = "MY_APPLICATION_NAME"

  • Запустите приложение, соединяющееся с базой 11g и новее.

Замечание:

Приложения, использующие Oracle 10g, которые требуют производительности от постоянных соединений, могут уменьшить количество памяти сервера БД, которое используется Shared-серверами Oracle (ранее известные как многопоточные сервера). Обратитесь к документации Oracle для более подробной информации.

Рекомендации по DRCP и известные ограничения

При изменении пароля через DRCP-соединение будет выдаваться ошибка ORA-56609: Usage not supported with DRCP. Это документированное ограничение of Oracle Database 11g.

Начиная с расширения OCI8 версии 1.3 постоянные соединения теперь могут быть закрыты пользователем. Это позволяет получить больший контроль над использованием ресурсов соединений. Постоянные соединения теперь будут также закрываться автоматически, когда отсутствует указывающая на них переменная PHP, например, в таких случаях, как в конце области видимости пользовательской функции PHP. Это откатит любую незавершенную транзакцию. Эти изменения в постоянных соединениях делают их поведение похожим на поведение непостоянных соединений, упрощая интерфейс и позволяя приложениям быть более логичными и предсказуемыми. Для сохранения предыдущего поведения используйте директиву oci8.old_oci_close_semantics, принимающую значение On .

Если СУБД Oracle версии 11.1.0.6, то для использования DRCP должен быть применен патч для СУБД Oracle для устранения ошибки 6474441. Без этого патча могут происходить ошибки, такие как ORA-01000: maximum open cursors exceeded, ORA-01001 invalid cursor или ORA-01002 fetch out of sequence. Эти ошибки исправлены в Oracle версии 11.1.0.7 и более поздних.

Если патч для СУБД Oracle 11.1.0.6 не может быть применен, тогда вместо этого можно воспользоваться тремя методами:

  • Соединение используя Oracle Dedicated или Shared сервера вместо DRCP.
  • Установить директиву PHP oci8.statement_cache_size в 0.
  • Установить событие в файле параметров инициализации базы: event="56699 trace name context forever, level 128".

Патч 6474441 для БД Oracle версий 11.1.0.7 и 11.1.0.6 позволяет приложениям на PHP с DRCP-соединением использовать триггер базы LOGON для установки параметров сессии в момент ее создания. Примерами таких параметров являются язык NLS и формат даты.

Если патч к БД Oracle 11.1.0.6 не может быть установлен, то можно использовать несколько методов вместо использования триггеров LOGON:

  • После авторизации, явно установите свойства сессии используя код приложения PHP.
  • Соединитесь, используя Oracle Dedicated или Shared сервера вместо DRCP.

Автоматическое повторное установление постоянного соединения PHP после порождения нового процесса Apache или FCGI означает, что использование триггеров LOGON в PHP рекомендуется только для установки атрибутов сессии, а не для пользовательских запросов на соединение для каждого приложения. Это даже более проявляется с DRCP за счет автоматического изменения размера буфера соединений и со способом триггеров LOGON конфликтующим с DRCP аутентификацией.


Поддержка OCI8 Fast Application Notification (FAN)

Поддержка FAN обеспечивает быстрое переподключение в случае сбоев, что обеспечивает высокую доступность базы данных Oracle. Эта функциональность позволяет PHP OCI8 скрипту получать оповещения в случае если база данных или сервер, на котором она запущена, становятся недлоступны. Без FAN, OCI8 может подвиснуть, пока не будет исчерпан таймаут подключения и возвращена ошибка, что может занять несколько минут. Разрешение FAN в OCI8 позволяет приложениям определять такие ошибки и переподключаться к доступному экземпляру базы данных без ожидания ответа от недоступной базы.

Поддержка FAN доступна если клиентские библиотеки Oracle, с которыми собран PHP, и база данных Oracle имеют версию 10gR2 или более позднюю.

FAN дает приимущества пользователям кластерной технологии Oracle (RAC), так как подключение к доступной базе данных может быть произведено мнгновенно. Пользователи Oracle Data Guard с брокером могут наблюдать события FAN создаваемые при переходе резервной базы в режим основной. Отдельныо установленные экземпляры базы данных будут посылать события FAN при своем перезапуске.

Для активных соединений, когда сервер или экземпляр базы становятся недоступны, будет возвращена ошибка соединения для текущей запущенной функции расширения OCI8. При последующем переподключении PHP скрипта будет установлено соединение с работающим экземпляром базы данных. Также, расширение OCI8 прозрачно зачищает все ожидающие соединения, затронутые падением сервера или базы данных, так что новые соединения будут нормально устанавливаться, без оглядки на какие либо проблемы с сервисом.

Если oci8.events установлено как On, то предполагается, что oci8.ping_interval установлено в значение -1, так как включение событий FAN предоставляет проактивное управление ожидающими соединениями.

Для включения поддержки FAN в PHP OCI8, соберите PHP OCI8 с библиотеками Oracle 10gR2 или более поздними и выполните следующие шаги:

  • Под аккаунтом привилегированного администратора баз данных, с помощью программ типа SQL*Plus разрешите сервису базы отправлять оповещения FAN, к примеру:

        SQL> execute dbms_service.modify_service(
                   SERVICE_NAME        => 'sales',
                   AQ_HA_NOTIFICATIONS => TRUE);

  • Добавьте в php.ini

        oci8.events = On

  • Если приложение не обрабатывает ошибки соединения OCI8, модифицируйте его таким образом, чтобы обрабатывало и производило, например, переподключение и перезапуск запросов.
  • Запустите приложение соединяясь с базой данных Oracle версии 10gR2 или выше.


Поддержка прозрачного для приложений восстановления после отказа (Transparent Application Failover или TAF) для OCI8

TAF - это механизм базы данных Oracle обеспечивающий высокую доступность. Он позволяет приложениям PHP использующим OCI8 автоматически переподключаться к резервной базе данных в случае сбоя на основной или при сетевых проблемах..

В сконфигурированной системе базы данных Oracle, TAF происходит когда приложение PHP определяет, что инстанс базы данных недоступен. В этом случае происходит соединение с другим узлом в Oracle » RAC. Это может быть горячий резерв или тот же самый инстанс базы данных. Более подробно о OCI TAF читайте в » Oracle Call Interface Programmer's Guide.

Функцию обратного вызова для приложения можно зарегистрировать с помощью oci_register_taf_callback(). В процессе восстановления после отказа исполнение приложения будет приостановлено и будет вызвана зарегистрированная функция обратного вызова. Эта функция будет оповещать приложение о событиях процесса восстановления. Если восстановление завершилось успешно, управление будет возвращено приложению. Если восстановление завершилось неудачно, то все последующие обращения к базе данных будут завершаться с ошибкой, так как отсутствует подключение.

Когда соединение переходит к другой базе данных, обратный вызов может сбросить любое необходимое состояние соединения, к примеру перевыполнить любую необходимую команду ALTER SESSION если для сервиса базы данных не включен -failover_restore.

Регистрацию функции обратного вызова можно удалить с помощью oci_unregister_taf_callback().

настройка TAF

TAF можно настроить на стороне PHP OCI8 или в конфигурации базы данных. Если настроено и там и там, то предпочтение отдается настройкам на стороне базы данных.

Настроить TAF в PHP OCI8 (на стороне клиента) можно добавив параметр FAILOVER_MODE в часть CONNECT_DATA дескриптора соединения. Более подробно о настройке TAF на стороне клиента читайте в » Oracle Database Net Services Administrator's Guide.

Пример настройки TAF в tnsnames.ora для переподключения к той же самой БД:

    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = orcl)
          (FAILOVER_MODE =
            (TYPE = SELECT)
            (METHOD = BASIC)
            (RETRIES = 20)
            (DELAY = 15))))

Также можно настроить TAF на стороне базы данных путем модификации сервиса с помощью » srvctl (для RAC) или с помощью пакетной процедуры » DBMS_SERVICE.MODIFY_SERVICE (для одиночных инстансов баз данных).

Использование функций обратного вызова TAF в OCI8

Функция обратного вызова TAF являются функцией зарегистрированной из приложения для запуска в процессе восстановления после сбоя. При восстановлении соединения она вызывается несколько раз.

Первый раз она запускается в момент обнаружения проблем с соединением. Это позволяет приложению корректно подготориться к задержке выполнения на время восстановления после сбоя. Если восстановление завершилось удачно, функция будет вызвана сразу после восстановления подключения. Этот запуск приложение может использовать для пересинхронизации настроек сессии и оповещения пользователя о том, что произошло восстановление после сбоя. Если восстановление завершилось неудачно, функция запускается еще раз для оповещения приложения о том, что восстановление завершилось с ошибкой и соединение с БД недоступно.

Интерфейс функции обратного вызова TAF:

userCallbackFn ( resource $connection , int $event , int $type ) : int

connection

Идентификатор соединения Oracle для которого эта функция была зарегистрирована с помощью oci_register_taf_callback(). Соединение недоступно во время аварийного восстановления.

event

Событие восстановления означает текущий статус восстановления.

  • OCI_FO_BEGIN означает, что произошла потеря соединения и процесс восстановления начат.

  • OCI_FO_END означает удачное восстановление соединения.

  • OCI_FO_ABORT означает, что восстановление завершилось неудачно и попыток восстановления больше не будет.

  • OCI_FO_ERROR также означает, что восстановление завершилось с ошибкой, но приложению дается возможность обарботать ошибку и вернуть OCI_FO_RETRY для еще одной попытки восстановления.

  • OCI_FO_REAUTH означает, что пользователь Oracle был повторно аутентифицирован..

type

Тип восстановления после отказа. Это позволяет функции понять, какой тип восстановления запрошен приложением. Допустимы такие значения:

  • OCI_FO_SESSION означает, что пользователь запросил только восстановление сессии. К примеру, если соединение пропало, то будет создана новая сессия на резервном сервере. Этот тип восстановления не будет пытаться восстановить запросы типа SELECT.

  • OCI_FO_SELECT означает, что запрошено восстановление запросов SELECT. Это позволит использовать открытый курсор для извлечения значений после восстановления.

return value

  • 0 означает, что шаги восстановления после отказа должны продолжаться нормально.

  • OCI_FO_RETRY означает, что необходимо попробвать восстановиться еще раз. В случае ошибки при переходе на новое соединение TAF может повторить переход на другой ресурс. Обычно перед возвращением кода OCI_FO_RETRY рекомендуется некоторое время подождать.

Пример регистрации функции обартного вызова TAF

<?php

// Определяем функцию обратного вызова в пространстве пользователя
class MyClass {
    public static $retry_count;
    public static function TAFCallback($conn, $event, $type)
    {
        switch ($event) {
            case OCI_FO_BEGIN:
                printf(" Failing Over ... Please stand by");
                printf(" Failover type was found to be %s \n",
                       (($type==OCI_FO_SESSION) ? "SESSION"
                        :($type==OCI_FO_SELECT) ? "SELECT"
                        : "UNKNOWN!"));
                self::$retry_count = 0;
                break;
            case OCI_FO_ABORT:
                // Приложение больше не может использовать базу данных
                printf(" Восстановление невозможно.\n");
                break;
            case OCI_FO_END:
                // Восстановление завершилось успешно. Оповестим пользователей, что была проблема.
                printf(" Восстановление завершено ... восстанавливаю работу\n");
                break;
            case OCI_FO_REAUTH:
                printf(" Пользователь переавторизован ... восстанавливаю работу\n");
                // Заново выполняем все необходимые ALTER SESSION
                // т.е. oci_parse($conn, 'ALTER SESSION ...') ;
                break;
            case OCI_FO_ERROR:
                // Прекращаем попытки соединения, если их было более 20.
                if (self::$retry_count >= 20)
                    return 0;
                printf(" Ошибка восстановления. Повторная попытка через 10 секунд...\n");
                sleep(10);
                self::$retry_count++;
                return OCI_FO_RETRY; // retry failover
                break;
            default:
                printf("Неизвестное событие восстановления: %d.\n", $event);
                break;
        }
        return 0;
    }
}

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
$fn_name = 'MyClass::TAFCallback';

oci_register_taf_callback($conn, $fn_name); // Регистрируем TAFCallback для Oracle TAF

$sql = "SELECT col1 FROM mytab";
$stmt = oci_parse($conn, $sql);
oci_define_by_name($stmt, 'COL1', $col1);

// К примеру, если соединение было потеряно на этом шаге, oci_execute()
// определит это и запустит процедуру восстановления. В процессе восстановления
// oci_execute() будет вызовать зарегистрированную функцию обратного вызова
// несколько раз. Если восстановление пройдет успешно, то будет создано новое соединение
// и выполнение oci_execute() будет продолжено в нормальном режиме.
// Настройки сессии могут быть сброшены в функции обратного вызова.
// Если восстановление завершится неудачно, oci_execute() вернет ошибку, так как
// будет отсутствовать соединение.

$e = oci_execute($stmt);
if ($e == false)
{
    // обрабатываем ошибку. Если oci_execute() завершается с ошибкой то
    // var_dump(oci_error($stmt));
}
while (oci_fetch($stmt))
{
    echo "COL1 value is $col1<br>\n";
}

// выполняем другие SQL-запросы на новом подключении
// $stmt = oci_parse($conn,  . . .);

?>

Также смотрите

  • oci_register_taf_callback()
  • oci_unregister_taf_callback()


OCI8 и динамическая трассировка DTrace

OCI8 2.0 содержит статические зонды DTrace, которые можно использовать в операционных системах, поддерживающих DTrace. Более подробно взаимоотношения PHP и DTrace описаны в разделе Динамическая трассировка DTrace.

Установка OCI8 с поддержкой DTrace

для включения поддержки DTrace в PHP OCI8, соберите OCI8 как разделяемое расширение после установки переменной окружения PHP_DTRACE.

$ export PHP_DTRACE=yes
$ pecl install oci8

Отредактируйте php.ini задав extension_dir равным директории, в которой создался oci8.so и, также, разрешите расширение следующим образом:

extension=oci8.so

Если вы установили PHP OCI8 2.0 из PECL с использованием phpize и configure (вместо pecl), вам все еще будет необходимо установить PHP_DTRACE=yes. Это потому, что опция --enable-dtrace будет проигнорирована ограниченным скриптом configure модуля PECL.

Более подробно об установке PECL модулей читайте в разделе Установка расширений PECL.

Статические зонды DTrace в PHP OCI8

Следующие статические зонды доступны в PHP OCI8
Имя зонда | Описание зонда | Аргументы зонда
oci8-connect-entry | Инициируется oci_connect(), oci_pconnect() и oci_new_connect(). Срабатывает до того, как соединение было установлено. | char *username, char *dbname, char *charset, long session_mode, int persistent, int exclusive
oci8-connect-return | Срабатывает после установки соединения. | void *connection
oci8-check-connection | Срабатывает, если ошибка Oracleможет привести к порче соединения. | void *connection, char *client_id, int is_open, long errcode, unsigned long server_status
oci8-sqltext | Срабатывает при запуске oci_parse(). | void *connection, char *client_id, void *statement, char *sql
oci8-connection-close | Срабатывает, когда соединение окончательно уничтожено. | void *connection
oci8-error | Срабатывает, если произошла ошибка Oracle. | int status, long errcode
oci8-execute-mode | Срабатывает при oci_execute() для выявления режима запуска. | void *connection, char *client_id, void *statement, unsigned int mode

Эти зонды полезны при отладке скриптов OCI8.

Параметры connection и statement являются указателями на внутренние структуры, используемые для отслеживания соединений и запущенных запросов.

Параметр client_id устанавливается функцией oci_set_client_identifier().

Ядро PHP также содержит статические зонды. Смотрите раздел Статические зонды DTrace в ядре PHP.

Внутренние отладочные зонды DTrace в OCI8
Имя зонда
oci8-connect-expiry
oci8-connect-lookup
oci8-connect-p-dtor-close
oci8-connect-p-dtor-release
oci8-connect-type
oci8-sesspool-create
oci8-sesspool-stats
oci8-sesspool-type

Эти зонды полезны для разработчиков расширения OCI8. Для более детальной информации изуйчайте исходные коды OCI8.

Получение списка статиченских зондов DTrace в PHP OCI8

Для получения списка доступных зондов, запустите процесс PHP и, затем, запустите:

# dtrace -l

Вывод будет примерно следующим:

   ID   PROVIDER            MODULE                          FUNCTION NAME
   [ . . . ]
   17 phpoci22116           oci8.so   php_oci_dtrace_check_connection oci8-check-connection
   18 phpoci22116           oci8.so                php_oci_do_connect oci8-connect-entry
   19 phpoci22116           oci8.so         php_oci_persistent_helper oci8-connect-expiry
   20 phpoci22116           oci8.so             php_oci_do_connect_ex oci8-connect-lookup
   21 phpoci22116           oci8.so  php_oci_pconnection_list_np_dtor oci8-connect-p-dtor-close
   22 phpoci22116           oci8.so  php_oci_pconnection_list_np_dtor oci8-connect-p-dtor-release
   23 phpoci22116           oci8.so                php_oci_do_connect oci8-connect-return
   24 phpoci22116           oci8.so             php_oci_do_connect_ex oci8-connect-type
   25 phpoci22116           oci8.so          php_oci_connection_close oci8-connection-close
   26 phpoci22116           oci8.so                     php_oci_error oci8-error
   27 phpoci22116           oci8.so         php_oci_statement_execute oci8-execute-mode
   28 phpoci22116           oci8.so              php_oci_create_spool oci8-sesspool-create
   29 phpoci22116           oci8.so            php_oci_create_session oci8-sesspool-stats
   30 phpoci22116           oci8.so            php_oci_create_session oci8-sesspool-type
   31 phpoci22116           oci8.so          php_oci_statement_create oci8-sqltext

Столбец "Provider" состоит из phpoci и идентификатора запущенного процесса PHP.

Столбец "Function" содержит имена внутренних, написанных на C, функций PHP, в которых содержатся соответствующие провайдеры (Provider).

Если процесс PHP не запущен, то никаких зондов PHP показано не будет.

Пример использования DTrace с PHP OCI8

В этом примере продемонстрированы основы скриптового языка DTrace D.

Пример #1 user_oci8_probes.d для трассировки всех статических зондов PHP OCI8 с помощью DTrace на пользовательском уровне

#!/usr/sbin/dtrace -Zs

#pragma D option quiet

php*:::oci8-connect-entry
{
    printf("%lld: PHP connect-entry\n", walltimestamp);
    printf("  credentials=\"%s@%s\"\n", arg0 ? copyinstr(arg0) : "", arg1 ? copyinstr(arg1) : "");
    printf("  charset=\"%s\"\n", arg2 ? copyinstr(arg2) : "");
    printf("  session_mode=%ld\n", (long)arg3);
    printf("  persistent=%d\n", (int)arg4);
    printf("  exclusive=%d\n", (int)arg5);
}

php*:::oci8-connect-return
{
    printf("%lld: PHP oci8-connect-return\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
}

php*:::oci8-connection-close
{
    printf("%lld: PHP oci8-connect-close\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
}

php*:::oci8-error
{
    printf("%lld: PHP oci8-error\n", walltimestamp);
    printf("  status=%d\n", (int)arg0);
    printf("  errcode=%ld\n", (long)arg1);
}

php*:::oci8-check-connection
{
    printf("%lld: PHP oci8-check-connection\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
    printf("  client_id=\"%s\"\n", arg1 ? copyinstr(arg1) : "");
    printf("  is_open=%d\n", arg2);
    printf("  errcode=%ld\n", (long)arg3);
    printf("  server_status=%lu\n", (unsigned long)arg4);
}

php*:::oci8-sqltext
{
    printf("%lld: PHP oci8-sqltext\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
    printf("  client_id=\"%s\"\n", arg1 ? copyinstr(arg1) : "");
    printf("  statement=0x%p\n", (void *)arg2);
    printf("  sql=\"%s\"\n", arg3 ? copyinstr(arg3) : "");
}

php*:::oci8-execute-mode
{
    printf("%lld: PHP oci8-execute-mode\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
    printf("  client_id=\"%s\"\n", arg1 ? copyinstr(arg1) : "");
    printf("  statement=0x%p\n", (void *)arg2);
    printf("  mode=0x%x\n", arg3);
}

В этом скрипте с dtrace используется опция -Z, позволяющая ему запускаться даже если никаких процессов PHP не запущено. Если не задать данную опцию, то скрипт сразу же прекратит свою работу, так как отсутствуют зонды для отслеживания.

На многопроцессорных машинах порядок зондов может быть не последовательным. Это зависит от того, на каких ядрах работают зонды и каким образом потоки мегрируют между ядрами. В такой ситуации имеет смысл ориентироваться на временные метки зондов.

Скрипт отслеживает все сообщения статических зондов PHP OCI8 уровня пользователя на протяжении работы скрипта PHP. Запускаем скрипт D:

# ./user_oci8_probes.d

Запускаем скрипт PHP или свое приложение. D-скрипт будет выводить все аргументы зондов при их срабатывании. К примеру, простой скрипт PHP, выполняющий запрос к базе данных может создавать следующие сообщения:

1381794982092854582: PHP connect-entry
  credentials="hr@localhost/pdborcl"
  charset=""
  session_mode=0
  persistent=0
  exclusive=0
1381794982183158766: PHP oci8-connect-return
  connection=0x7f4a7907bfb8
1381794982183594576: PHP oci8-sqltext
  connection=0x7f4a7907bfb8
  client_id="Chris"
  statement=0x7f4a7907c2a0
  sql="select * from employees"
1381794982183783706: PHP oci8-execute-mode
  connection=0x7f4a7907bfb8
  client_id="Chris"
  statement=0x7f4a7907c2a0
  mode=0x20
1381794982444344390: PHP oci8-connect-close
  connection=0x7f4a7907bfb8

После завершения диагностики D-скрипт можно прервать с помощью нажатия ^C.

Смотрите также

  • Динамическая трассировка DTrace


Поддерживаемые типы данных

Данный драйвер поддерживает следующие типы данных при использовании функции oci_bind_by_name() для связки параметров:
Тип | Отображение
SQLT_NTY | Связывает оригинальный тип коллекции из объекта коллекции PHP, например, создаваемых функцией oci_new_collection().
SQLT_BFILEE | Связывает оригинальный дескриптор, например, полученный с помощью функции oci_new_descriptor().
SQLT_CFILEE | Связывает оригинальный дескриптор, например, полученный с помощью функции oci_new_descriptor().
SQLT_CLOB | Связывает оригинальный дескриптор, например, полученный с помощью функции oci_new_descriptor().
SQLT_BLOB | Связывает оригинальный дескриптор, например, полученный с помощью функции oci_new_descriptor().
SQLT_RDD | Связывает оригинальный дескриптор, например, полученный с помощью функции oci_new_descriptor().
SQLT_NUM | Конвертирует параметр PHP в тип long языка 'C', и привязывает к этому значению.
SQLT_RSET | Связывает оригинальный дескриптор выражения, например, полученный из функции oci_parse() или из других запросов OCI.
SQLT_BOL | Связывает PHP параметр с PL/SQL BOOLEAN
SQLT_CHR и любой другой тип | Преобразует параметр PHP к строковому типу и привязывает его в виде строки.
Поддерживаются следующие типы при извлечении столбцов из набора данных:
Тип | Отображение
SQLT_RSET | Создает ресурс выражения oci для представления курсора.
SQLT_RDD | Создает объект ROWID.
SQLT_BLOB | Создает объект LOB.
SQLT_CLOB | Создает объект LOB.
SQLT_BFILE | Создает объект LOB.
SQLT_LNG | Связывает в виде SQLT_CHR, возвращается в виде строки
SQLT_LBI | Связывает в виде SQLT_BIN, возвращается в виде строки
Любой другой тип | Связывает в виде SQLT_CHR, возвращается в виде строки


OCI8 Функции

Содержание

  • oci_bind_array_by_name — Связывает PHP массив с массивом Oracle PL/SQL
  • oci_bind_by_name — Прикрепляет переменную PHP к соответствующей метке в SQL-выражении
  • oci_cancel — Заканчивает процесс чтения из курсора
  • oci_client_version — Возвращает версию клиентской библиотеки
  • oci_close — Закрывает соединение с сервером Oracle
  • oci_commit — Подтверждает транзакцию базы данных
  • oci_connect — Устанавливает соединение с базой данных Oracle
  • oci_define_by_name — Сопоставляет переменную PHP столбцу результата запроса
  • oci_error — Возвращает последнюю ошибку
  • oci_execute — Выполняет подготовленное выражение
  • 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 — Возвращает исходный Oracle тип поля
  • oci_field_type — Возвращает имя типа поля
  • oci_free_descriptor — Освобождает дескриптор
  • oci_free_statement — Освобождает ресурсы, занимаемые курсором или SQL-выражением
  • oci_get_implicit_resultset — Возвращает следующий ресурс дочернего запроса из ресурса родительского запроса, имеющего неявные результирпующие наборы Oracle Database 12c
  • oci_internal_debug — Включает и выключает внутреннюю отладку
  • oci_lob_copy — Копирует объект LOB
  • oci_lob_is_equal — Сравнивает два объекта LOB/FILE
  • 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_register_taf_callback — Регистрирует пользовательскую функцию обратного вызова для Oracle Database TAF
  • oci_result — Возвращает значение поля из результата запроса
  • oci_rollback — Откатывает транзакции, ожидающие обработки
  • oci_server_version — Возвращает версию сервера Oracle
  • oci_set_action — Задает имя для действия
  • oci_set_call_timeout — Устанавливает время ожидания в миллисекундах для вызовов базы данных
  • oci_set_client_identifier — Задает идентификатор клиента
  • oci_set_client_info — Задает информацию о клиенте
  • oci_set_db_operation — Задает операцию базы данных
  • oci_set_edition — Задает выпуск (edition) базы данных
  • oci_set_module_name — Задает имя модулю
  • oci_set_prefetch — Устанавливает количество строк, которые будут автоматически выбраны в буфер
  • oci_statement_type — Возвращает тип выражения
  • oci_unregister_taf_callback — Удалить регистрацию пользовательской callback-функции для Oracle Database TAF


Связывает PHP массив с массивом Oracle PL/SQL

  • « OCI8 Функции
  • oci_bind_by_name »
  • PHP Manual
  • OCI8 Функции
  • Связывает PHP массив с массивом Oracle PL/SQL

oci_bind_array_by_name

(PHP 5 >= 5.1.2, PHP 7, PECL OCI8 >= 1.2.0)

oci_bind_array_by_name — Связывает PHP массив с массивом Oracle PL/SQL

Описание

oci_bind_array_by_name ( resource $statement , string $name , array &$var_array , int $max_table_length [, int $max_item_length = -1 [, int $type = SQLT_AFC ]] ) : bool

Связывает PHP массив var_array с указателем Oracle name на массив Oracle PL/SQL. Направление, ввод или вывод, для которого будет использоваться массив будет определяться во время выполнения.

Список параметров

statement

Идентификатор допустимого OCI выражения.

name

Указатель на массив Oracle.

var_array

Массив.

max_table_length

Задает максимальный размер для исходного и результирующего массивов.

max_item_length

Задает максимальный размер значений массива. Если не задано или равно -1, oci_bind_array_by_name() найдет самый большой элемент в исходном массиве и использует его размер в качестве этой настройки.

type

Используется для задания типа значений PL/SQL массива. См. список ниже:

  • SQLT_NUM - для массивов с элементами типа NUMBER.

  • SQLT_INT - для массивов с элементами типа INTEGER (Замечание: INTEGER - синоним для типа NUMBER(38), однако тип SQLT_NUM в этом случае не будет работать, даже несмотря на то, что они синонимичны).

  • SQLT_FLT - для массивов с элементами типа FLOAT.

  • SQLT_AFC - для массивов с элементами типа CHAR.

  • SQLT_CHR - для массивов с элементами типа VARCHAR2.

  • SQLT_VCS - для массивов с элементами типа VARCHAR.

  • SQLT_AVC - для массивов с элементами типа CHARZ.

  • SQLT_STR - для массивов с элементами типа STRING.

  • SQLT_LVC - для массивов с элементами типа LONG VARCHAR.

  • SQLT_ODT - для массивов с элементами типа DATE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования oci_bind_array_by_name()

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$create = "CREATE TABLE bind_example(name VARCHAR(20))";
$stid = oci_parse($conn, $create);
oci_execute($stid);

$create_pkg = "
CREATE OR REPLACE PACKAGE ARRAYBINDPKG1 AS
  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER;
  PROCEDURE iobind(c1 IN OUT ARRTYPE);
END ARRAYBINDPKG1;";
$stid = oci_parse($conn, $create_pkg);
oci_execute($stid);

$create_pkg_body = "
CREATE OR REPLACE PACKAGE BODY ARRAYBINDPKG1 AS
  CURSOR CUR IS SELECT name FROM bind_example;
  PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
    BEGIN
    -- Bulk Insert
    FORALL i IN INDICES OF c1
      INSERT INTO bind_example VALUES (c1(i));

    -- Fetch and reverse
    IF NOT CUR%ISOPEN THEN
      OPEN CUR;
    END IF;
    FOR i IN REVERSE 1..5 LOOP
      FETCH CUR INTO c1(i);
      IF CUR%NOTFOUND THEN
        CLOSE CUR;
        EXIT;
      END IF;
    END LOOP;
  END iobind;
END ARRAYBINDPKG1;";
$stid = oci_parse($conn, $create_pkg_body);
oci_execute($stid);

$stid = oci_parse($conn, "BEGIN arraybindpkg1.iobind(:c1); END;");
$array = array("one", "two", "three", "four", "five");
oci_bind_array_by_name($stid, ":c1", $array, 5, -1, SQLT_CHR);
oci_execute($stid);

var_dump($array);

?>


Прикрепляет переменную PHP к соответствующей метке в SQL-выражении

  • « oci_bind_array_by_name
  • oci_cancel »
  • PHP Manual
  • OCI8 Функции
  • Прикрепляет переменную PHP к соответствующей метке в SQL-выражении

oci_bind_by_name

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_bind_by_name — Прикрепляет переменную PHP к соответствующей метке в SQL-выражении

Описание

oci_bind_by_name ( resource $statement , string $bv_name , mixed &$variable [, int $maxlength = -1 [, int $type = SQLT_CHR ]] ) : bool

Прикрепляет переменную variable к метке bv_name. Такое прикрепление позволяет повысить производительность и избежать SQL-инъекций.

Прикрепление переменной позволяет базе данных повторно использовать кэшированные контекстные выражения от предыдущих запросов, даже если они первоначально были запущены другим пользователем или процессом. Это также снижает риск SQL-инъекций, поскольку данные в таком случае никогда не рассматриваются как инструкции SQL. Данные не требуется экранировать или заключать в кавычки.

Прикрепленные PHP-переменные могут быть изменены и снова выполнены без необходимости повторной обработки запроса или повторного прикрепления.

В Oracle, прикрепление переменных обычно разделяют на IN (прикрепляет значения, передаваемые в базу данных) и OUT (прикрепляет значения, возвращаемые PHP). Переменная может быть одновременно IN и OUT. Независимо от этого, характер прикрепленния переменных будет определен во время выполнения.

Необходимо указать maxlength при использовании OUT-привязки, что позволяет PHP зарезервировать больше памяти для хранения возвращаемого значения

Для IN-привязки рекомендуется также указать параметр maxlength, если выражение выполняется несколько раз с различными значениями PHP-переменной. В противном случае, Oracle может урезать размер данных до размера первоначального значения переменной PHP. Если максимальная длина значения неизвестна, рекомендуется вызывать oci_bind_by_name() перед каждым вызовом oci_execute(). Прикрепление неоправданно большой переменной повлияет на процесс сохранения базы данных.

Вид прикрепления указывает Oracle как работать с памятью при чтении данных. Для IN-прикрепления адрес в памяти должен содержать допустимые данные при вызове oci_execute(). Это значит, что значение переменной должно находиться в памяти во время исполнения. Если это не так, возможны некорректные результаты или ошибки наподобие "ORA-01460: unimplemented or unreasonable conversion requested" (запрошены невыполнимые или некорректные преобразования) Для OUT-прикрепления основным признаком является установка значения в переменную PHP.

Для многократно выполняемого выражения, привязка одних и тех же значений может уменьшить возможности оптимизатора Oracle по выработке наилучшего варианта выполнения инструкции. Длительное прикрепление выражений, которые редко исполняются, может также не принести пользы. Тем не менее, в обоих случаях, прикрепление является более безопасным, чем конкатенация строки запроса и непроверенных пользовательских данных.

Список параметров

statement

Допустимый идентификатор выражения OCI8.

bv_name

Метка с префиксом в виде двоеточия, используемая в выражении. Двоеточие опционально в bv_name. Oracle не использует знак вопроса для меток.

variable

Переменная PHP, ассоциированная с bv_name

maxlength

Устанавливает максимальный размер данных. Если указать -1, функция будет использовать текущий размер переменной variable в качестве максимального. При этом переменная variable должна существовать и содержать данные во время вызова oci_bind_by_name().

type

Тип данных, к которому Oracle будет приводить значения. По умолчанию type имеет значение SQLT_CHR. Oracle приводит данные от данного типа к типу поля (или типу переменной PL/SQL), если это возможно.

Если необходимо прикрепить переменную абстрактного типа (LOB/ROWID/BFILE), следует предварительно использовать oci_new_descriptor(). Параметр length не используется для абстрактных типов и должен быть установлен в -1.

Допустимые значения параметра type:

  • SQLT_BFILEE или OCI_B_BFILE - для BFILE-объектов;

  • SQLT_CFILEE или OCI_B_CFILEE - для CFILE-объектов;

  • SQLT_CLOB или OCI_B_CLOB - для CLOB-объектов;

  • SQLT_BLOB или OCI_B_BLOB - для BLOB-объектов;

  • SQLT_RDD или OCI_B_ROWID - для ROWID-объектов;

  • SQLT_NTY или OCI_B_NTY - для именованных типов даты;

  • SQLT_INT или OCI_B_INT - для целых чисел;

  • SQLT_CHR - для символов VARCHAR;

  • SQLT_BIN или OCI_B_BIN - для RAW-полей;

  • SQLT_LNG - для LONG-полей;

  • SQLT_LBI - для LONG RAW полей;

  • SQLT_RSET - для курсоров, созданных функцией oci_new_cursor();

  • SQLT_BOL или OCI_B_BOL - для PL/SQL BOOLEAN (Требуется OCI8 2.0.7 и Oracle Database 12c)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Добавление данных с использованием oci_bind_by_name()

<?php

// Создание таблицы:
//   CREATE TABLE mytab (id NUMBER, text VARCHAR2(40));

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn,"INSERT INTO mytab (id, text) VALUES(:id_bv, :text_bv)");

$id = 1;
$text = "Data to insert     ";
oci_bind_by_name($stid, ":id_bv", $id);
oci_bind_by_name($stid, ":text_bv", $text);
oci_execute($stid);

// В таблице содержится: 1, 'Data to insert     '

?>

Пример #2 Одна привязка для многократного использования

<?php

// Создание таблицы:
//   CREATE TABLE mytab (id NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$a = array(1,3,5,7,11);  // данные для вставки

$stid = oci_parse($conn, 'INSERT INTO mytab (id) VALUES (:bv)');
oci_bind_by_name($stid, ':bv', $v, 20);
foreach ($a as $v) {
    $r = oci_execute($stid, OCI_DEFAULT);  // не использовать автоматическое завершение транзакции
}
oci_commit($conn); // завершение транзакции

// Таблица содержит пять записей: 1, 3, 5, 7, 11

oci_free_statement($stid);
oci_close($conn);

?>

Пример #3 Прикрепление в цикле foreach()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT * FROM departments WHERE department_name = :dname AND location_id = :loc';
$stid = oci_parse($conn, $sql);

$ba = array(':dname' => 'IT Support', ':loc' => 1700);

foreach ($ba as $key => $val) {

    // oci_bind_by_name($stid, $key, $val) не работает,
    // потому что прикрепляет каждое значение в одно место: $val
    // Вместо этого следует указывать конкретное место: $ba[$key]
    oci_bind_by_name($stid, $key, $ba[$key]);
}

oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
foreach ($row as $item) {
    print $item."<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Пример #4 Прикрепление в выражение WHERE

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT last_name FROM employees WHERE department_id = :didbv ORDER BY last_name';
$stid = oci_parse($conn, $sql);
$didbv = 60;
oci_bind_by_name($stid, ':didbv', $didbv);
oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
    echo $row['LAST_NAME'] ."<br>\n";
}

// Выводом будет
//    Austin
//    Ernst
//    Hunold
//    Lorentz
//    Pataballa

oci_free_statement($stid);
oci_close($conn);

?>

Пример #5 Прикрепление в выражение LIKE

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

// Поиск всех городов, начинающихся на 'South'
$stid = oci_parse($conn, "SELECT city FROM locations WHERE city LIKE :bv");
$city = 'South%';  // '%' - это знак шаблона SQL
oci_bind_by_name($stid, ":bv", $city);
oci_execute($stid);
oci_fetch_all($stid, $res);

foreach ($res['CITY'] as $c) {
    print $c . "<br>\n";
}
// Выводом будет:
//   South Brunswick
//   South San Francisco
//   Southlake

oci_free_statement($stid);
oci_close($conn);

?>

Пример #6 Прикрепление в выражение REGEXP_LIKE

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

// Поиск названий городов, содержащих 'ing'
$stid = oci_parse($conn, "SELECT city FROM locations WHERE REGEXP_LIKE(city, :bv)");
$city = '.*ing.*';
oci_bind_by_name($stid, ":bv", $city);
oci_execute($stid);
oci_fetch_all($stid, $res);

foreach ($res['CITY'] as $c) {
    print $c . "<br>\n";
}
// Выводом будет:
//   Beijing
//   Singapore

oci_free_statement($stid);
oci_close($conn);

?>

Для небольшого, фиксированного количества условий в выражении IN, используются индивидуальные имена переменных. Неизвестные значения при исполнении могут быть установлены в NULL. Это позволяет использовать одно выражение нескольким пользователям, что повышает эффективность кэширования Oracle DB.

Пример #7 Прикрепление нескольких значений в выражение IN

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT last_name FROM employees WHERE employee_id in (:e1, :e2, :e3)';
$stid = oci_parse($conn, $sql);
$mye1 = 103;
$mye2 = 104;
$mye3 = NULL; // притворимся, что не получили это значение
oci_bind_by_name($stid, ':e1', $mye1);
oci_bind_by_name($stid, ':e2', $mye2);
oci_bind_by_name($stid, ':e3', $mye3);
oci_execute($stid);
oci_fetch_all($stid, $res);
foreach ($res['LAST_NAME'] as $name) {
    print $name ."<br>\n";
}

// Выводом будет:
//   Ernst
//   Hunold

oci_free_statement($stid);
oci_close($conn);

?>

Пример #8 Прикрепление ROWID, возвращаемое запросом

<?php

// Создадим и наполним таблицу:
//   CREATE TABLE mytab (id NUMBER, salary NUMBER, name VARCHAR2(40));
//   INSERT INTO mytab (id, salary, name) VALUES (1, 100, 'Chris');
//   COMMIT;

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT ROWID, name FROM mytab WHERE id = :id_bv FOR UPDATE');
$id = 1;
oci_bind_by_name($stid, ':id_bv', $id);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
$rid = $row['ROWID'];
$name = $row['NAME'];

// Переведем имя в верхний регистр и зафиксируем изменения
$name = strtoupper($name);
$stid = oci_parse($conn, 'UPDATE mytab SET name = :n_bv WHERE ROWID = :r_bv');
oci_bind_by_name($stid, ':n_bv', $name);
oci_bind_by_name($stid, ':r_bv', $rid, -1, OCI_B_ROWID);
oci_execute($stid);

// Теперь таблица содержит: 1, 100, CHRIS

oci_free_statement($stid);
oci_close($conn);

?>

Пример #9 OUT-прикрепление ROWID, возвращаемое при INSERT

<?php

// В данном примере добавляется запись с идентификатором и именем,
// после чего увеличивается заработная плата
// Создание таблицы:
//   CREATE TABLE mytab (id NUMBER, salary NUMBER, name VARCHAR2(40));
//
// На основе собственных ROWID на примере thies[at]thieso.net (980221)

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = "INSERT INTO mytab (id, name) VALUES(:id_bv, :name_bv)
        RETURNING ROWID INTO :rid";

$ins_stid = oci_parse($conn, $sql);

$rowid = oci_new_descriptor($conn, OCI_D_ROWID);
oci_bind_by_name($ins_stid, ":id_bv",   $id,    10);
oci_bind_by_name($ins_stid, ":name_bv", $name,  32);
oci_bind_by_name($ins_stid, ":rid",     $rowid, -1, OCI_B_ROWID);

$sql = "UPDATE mytab SET salary = :salary WHERE ROWID = :rid";
$upd_stid = oci_parse($conn, $sql);
oci_bind_by_name($upd_stid, ":rid", $rowid, -1, OCI_B_ROWID);
oci_bind_by_name($upd_stid, ":salary", $salary,   32);

// идентификаторы и имена для вставки
$data = array(1111 => "Larry",
              2222 => "Bill",
              3333 => "Jim");

// Заработная плата для каждого сотрудника
$salary = 10000;

// Вставка и немедленное обновление каждой строки
foreach ($data as $id => $name) {
    oci_execute($ins_stid);
    oci_execute($upd_stid);
}

$rowid->free();
oci_free_statement($upd_stid);
oci_free_statement($ins_stid);

// Показать новые записи
$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid);
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    var_dump($row);
}

oci_free_statement($stid);
oci_close($conn);

?>

Пример #10 Прикрепление для хранимой функции PL/SQL

<?php

//  Перед запуском PHP-сценария, создайте хранимую функцию в
//  SQL*Plus или SQL Developer:
//
//  CREATE OR REPLACE FUNCTION myfunc(p IN NUMBER) RETURN NUMBER AS
//  BEGIN
//      RETURN p * 3;
//  END;

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$p = 8;

$stid = oci_parse($conn, 'begin :r := myfunc(:p); end;');
oci_bind_by_name($stid, ':p', $p);

// Возвращаемое значение OUT-прикреплено. По умолчаннию типом данных будет строка.
// Прикрепление со значением 40 означает, что будет возвращено 40 символов.
oci_bind_by_name($stid, ':r', $r, 40);

oci_execute($stid);

print "$r\n";   // выведет 24

oci_free_statement($stid);
oci_close($conn);

?>

Пример #11 Прикрепление параметров для PL/SQL хранимой процедуры

<?php

//  Перед запуском PHP-сценария, создайте хранимую процедуру в
//  SQL*Plus или SQL Developer:
//
//  CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
//  BEGIN
//      p2 := p1 * 2;
//  END;

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$p1 = 8;

$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);

// Второй параметр процедуры OUT-прикреплен. По умолчаннию типом данных будет строка.
// Прикрепление со значением 40 означает, что будет возвращено 40 символов.
oci_bind_by_name($stid, ':p2', $p2, 40);

oci_execute($stid);

print "$p2\n";   // выведет 16

oci_free_statement($stid);
oci_close($conn);

?>

Пример #12 Прикрепление CLOB-объекта

<?php

// Перед запуском создаем таблицу:
//     CREATE TABLE mytab (mykey NUMBER, myclob CLOB);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$mykey = 12343;  // произвольный ключ для примера

$sql = "INSERT INTO mytab (mykey, myclob)
        VALUES (:mykey, EMPTY_CLOB())
        RETURNING myclob INTO :myclob";

$stid = oci_parse($conn, $sql);
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_bind_by_name($stid, ":myclob", $clob, -1, OCI_B_CLOB);
oci_execute($stid, OCI_DEFAULT);
$clob->save("A very long string");

oci_commit($conn);

// Получение CLOB-данных

$query = 'SELECT myclob FROM mytab WHERE mykey = :mykey';

$stid = oci_parse ($conn, $query);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_execute($stid);

print '<table border="1">';
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) {
    print '<tr><td>'.$row['MYCLOB'].'</td></tr>';
    // В цикле, очищение больших переменных перед повторным получением данных, уменьшает пиковое потребление памяти PHP
    unset($row);
}
print '</table>';

?>

Пример #13 Прикрепление PL/SQL BOOLEAN

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$plsql =
  "begin
    :output1 := true;
    :output2 := false;
   end;";

$s = oci_parse($c, $plsql);
oci_bind_by_name($s, ':output1', $output1, -1, OCI_B_BOL);
oci_bind_by_name($s, ':output2', $output2, -1, OCI_B_BOL);
oci_execute($s);
var_dump($output1);  // true
var_dump($output2);  // false

?>

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Внимание

Не используйте magic_quotes_gpc или addslashes() одновременно с oci_bind_by_name(), так как кавычек быть не должно. Все указанные кавычки будут записаны в базу данных, потому что oci_bind_by_name() вставляет данные дословно и не удаляет кавычки или символы экранирования.

Замечание:

Если прикрепляется строка к CHAR-полю в выражении WHERE, помните, что Oracle использует при сравнении значения CHAR, дополненные пробелами. Переменная PHP должна быть дополнена пробелами до того же размера, что и поле, чтобы выражение WHERE выполнялось верно.

Замечание:

Переменная PHP variable является ссылкой. Некоторые виды циклов могут работать не так, как ожидается:

<?php
foreach ($myarray as $key => $value)  {
    oci_bind_by_name($stid, $key, $value);
}
?>

В этом случае каждый ключ прикрепляется к $value, поэтому все прикрепленные переменные указывают на значение в последней итерации цикла. Вместо этого следует использовать:

<?php
foreach ($myarray as $key => $value) {
    oci_bind_by_name($stid, $key, $myarray[$key]);
}
?>

Смотрите также

  • oci_bind_array_by_name() - Связывает PHP массив с массивом Oracle PL/SQL
  • oci_parse() - Подготавливает запрос к выполнению


Заканчивает процесс чтения из курсора

  • « oci_bind_by_name
  • oci_client_version »
  • PHP Manual
  • OCI8 Функции
  • Заканчивает процесс чтения из курсора

oci_cancel

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_cancel — Заканчивает процесс чтения из курсора

Описание

oci_cancel ( resource $statement ) : bool

Сбрасывает курсор, освобождая все связанные ресурсы и отменяет возможность читать из него.

Список параметров

statement

Запрос OCI.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает версию клиентской библиотеки

  • « oci_cancel
  • oci_close »
  • PHP Manual
  • OCI8 Функции
  • Возвращает версию клиентской библиотеки

oci_client_version

(PHP 5 >= 5.3.7, PHP 7, PECL OCI8 >= 1.4.6)

oci_client_version — Возвращает версию клиентской библиотеки

Описание

oci_client_version ( void ) : string

Возвращает номер версии в виде строки клиентской C-библиотеки Oracle, с которой связан PHP.

Список параметров

Отсутствуют.

Возвращаемые значения

Возвращает номер версии в виде строки.

Примеры

Пример #1 Пример использования oci_client_version()

<?php
    echo "Версия клиента: " . oci_client_version(); // Версия клиента: 11.2.0.2
?>

Примечания

Замечание:

Библиотеки Oracle версий до 10gR2 не имеют необходимого функционала, чтобы выдать номер версии. В этих случаях функция вернет строку "Unknown".

Смотрите также

  • oci_server_version() - Возвращает версию сервера Oracle


Закрывает соединение с сервером Oracle

  • « oci_client_version
  • oci_commit »
  • PHP Manual
  • OCI8 Функции
  • Закрывает соединение с сервером Oracle

oci_close

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_close — Закрывает соединение с сервером Oracle

Описание

oci_close ( resource $connection ) : bool

Освобождает connection. Соответствующее ему соединение с базой данных будет закрыто при отсутствии использующих его ресурсов и если оно было получено из функции oci_connect() или oci_new_connect().

Рекомендуется закрывать неиспользуемые более соединения, т.к. это освобождает ресурсы базы данных для других пользователей.

Список параметров

connection

Идентификатор соединения Oracle, полученный из функций oci_connect(), oci_pconnect() или oci_new_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Закрытие соединения

Сопутствующие соединению ресурсы должны быть закрыты для обеспечения корректного завершения соединения с базой данных и освобождения ее ресурсов.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM departments');
$r = oci_execute($stid);
oci_fetch_all($stid, $res);
var_dump($res);

// Освобождаем идентификатор выражения при закрытии соединения
oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 Соединение базы данных не закрывается до тех пор, пока не будут закрыты все ссылки на него

Внутренний счетчик ссылок (refcount) идентификатора соединения должен равняться нулю перед непосредственным закрытием соединения к базе данных.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM departments');  // это увеличивает refcount на $conn
oci_execute($stid);
oci_fetch_all($stid, $res);
var_dump($res);

oci_close($conn);

// $conn больше не может использоваться в данном скрипте, но реальное
// соединение с базой данных будет открыто, пока не будет освобождена $stid.
var_dump($conn);  // выводит NULL

// Пока PHP спит, запрос к виду Oracle V$SESSION в окне терминала
// покажет, что пользователь базы данных все еще подключен.
sleep(10);

// Как только $stid освобождается, соединение к базе данных физически закрывается
oci_free_statement($stid);

// Пока PHP спит, запрос к виду Oracle V$SESSION в окне терминала
// покажет, что пользователь базы данных уже отключился.
sleep(10);

?>

Пример #3 Закрытие соединения, открытого несколько раз

При повторном использовании учетных данных пользователя, оба соединения должны быть закрыты перед непосредственным закрытием соединения к базе данных.

<?php

$conn1 = oci_connect('hr', 'welcome', 'localhost/XE');

// Использование тех же учетных данных повторно использует одно и то же
// соединение с базой данных. Любые незафиксированные изменения в
// $conn1 будут видны в $conn2
$conn2 = oci_connect('hr', 'welcome', 'localhost/XE');

// Пока PHP спит, запрос к виду Oracle V$SESSION в окне терминала
// покажет, что подключен только один пользователь базы данных.
sleep(10);

oci_close($conn1); // не закрывает реальное соединение с базой данных
var_dump($conn1);  // выводит NULL, т.к. $conn1 теперь бесполезна
var_dump($conn2);  // показывает, что $conn2 все еще является корректным ресурсом соединения

?>

Пример #4 Соединение закрывается при уходе переменных из области видимости

Когда все переменные, ссылающиеся на соединение, уходят из области видимости и освобождаются PHP, происходит откат транзакции (если необходимо) и соединение с базой закрывается.

<?php

function myfunc() {
    $conn = oci_connect('hr', 'hrpwd', 'localhost/XE');
    if (!$conn) {
        $e = oci_error();
        trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
    }

    $stid = oci_parse($conn, 'UPDATE mytab SET id = 100');
    oci_execute($stid, OCI_NO_AUTO_COMMIT);
    return "Закончили!";
}

$r = myfunc();
// В этой точке происходит откат транзакции и закрывается соответствующее
// соединение с базой данных

print $r;  // отображает возвращенное функцией значение "Закончили!"

?>

Примечания

Замечание:

Переменные, зависящие от идентификатора соединений, такие как идентификаторы выражений, полученные из oci_parse(), должны быть также освобождены до закрытия соединения с базой данных.

Замечание:

До версии PHP 5.1.2 (PECL OCI8 1.1) oci_close() не выполняла никаких действий. В более свежих версиях она уже корректно закрывает соединение. Используйте директиву oci8.old_oci_close_semantics для восстановления старого поведения этой функции.

Замечание:

Функция oci_close() не закрывает соединения с базой данных, созданные функцией oci_pconnect().

Смотрите также

  • oci_connect() - Устанавливает соединение с базой данных Oracle
  • oci_free_statement() - Освобождает ресурсы, занимаемые курсором или SQL-выражением


Подтверждает транзакцию базы данных

  • « oci_close
  • oci_connect »
  • PHP Manual
  • OCI8 Функции
  • Подтверждает транзакцию базы данных

oci_commit

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_commit — Подтверждает транзакцию базы данных

Описание

oci_commit ( resource $connection ) : bool

Подтверждает транзакцию соединения connection. Подтверждение завершает текущую транзакцию и делает все изменения постоянными. Она также освобождает все установленные блокировки.

Транзакция начинается при первом SQL-запросе, изменяющим данные, который был запущен с помощью функции oci_execute() и флага OCI_NO_AUTO_COMMIT. Последующие изменения данных от других запросов также становятся частью данной транзакции. Изменения, сделанные в транзакции, являются временными до тех пор, пока транзакция не будет зафиксирована или пока не будет произведен ее откат. Другие пользователи базы данных не смогут увидеть изменения до их подтверждения.

При вставке или обновлении данных рекомендуется использовать транзакции для сохранения целостности данных и увеличения производительности.

Список параметров

connection

Идентификатор соединения Oracle, полученный из функций oci_connect(), oci_pconnect() или oci_new_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования oci_commit()

<?php

// Вставка в несколько таблиц, откат изменений в случае ошибки

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, "INSERT INTO mysalary (id, name) VALUES (1, 'Chris')");

// Флаг OCI_NO_AUTO_COMMIT сообщает Oracle не фиксировать запрос INSERT при его поступлении
// Для PHP <= 5.3.1 используйте OCI_DEFAULT, эти два флага эквивалентны
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
    $e = oci_error($stid);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'INSERT INTO myschedule (startday) VALUES (12)');
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
    $e = oci_error($stid);
    oci_rollback($conn);  // откат изменений из обоих таблиц
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

// Фиксация изменений в обоих таблицах
$r = oci_commit($conn);
if (!$r) {
    $e = oci_error($conn);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

?>

Примечания

Замечание:

Транзакции будут автоматически откачены при закрытии соединения или окончании скрипта (в зависимости от того, что случится раньше). Для подтверждения транзакции необходимо явно вызвать функцию oci_commit().

Все вызовы oci_execute(), явно или по умолчанию использующие режим OCI_COMMIT_ON_SUCCESS зафиксируют любую предыдущую незафиксированную транзакцию.

Любой DDL-запрос Oracle, такой как CREATE или DROP автоматически подтверждает любую незавершенную транзакцию.

Смотрите также

  • oci_execute() - Выполняет подготовленное выражение
  • oci_rollback() - Откатывает транзакции, ожидающие обработки


Устанавливает соединение с базой данных Oracle

  • « oci_commit
  • oci_define_by_name »
  • PHP Manual
  • OCI8 Функции
  • Устанавливает соединение с базой данных Oracle

oci_connect

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_connect — Устанавливает соединение с базой данных Oracle

Описание

oci_connect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] ) : resource

Возвращает идентификатор соединения, который используется большинством функций данного модуля.

См. Управление соединением для более детальной информации по управлению соединениями.

Начиная с PHP 5.1.2 (PECL OCI8 1.1) функция oci_close() может использоваться для завершения соединения.

Второй и последующие вызовы функции oci_connect() с теми же параметрами вернут идентификатор уже открытого соединения. Это означает, что транзакции используют одно и то же базовое соединение с базой данных. При необходимости разделения транзакций рекомендуется использовать функцию oci_new_connect().

Список параметров

username

Имя пользователя Oracle.

password

Пароль username.

connection_string

Содержит экземпляр Oracle для подключения. Это может быть » Easy Connect string, или Connect Name из файла tnsnames.ora, или имя локального экземпляра Oracle.

Если не указано отдельно, PHP использует переменные окружения, такие как TWO_TASK (на Linux) или LOCAL (на Windows) и ORACLE_SID для определения экземпляра Oracle для соединения.

Для использования метода Easy Connect, PHP должен быть слинкован с клиентскими библиотеками версии Oracle 10g или старше. Easy Connect string для Oracle 10g принимает следующую форму: [//]host_name[:port][/service_name]. Начиная с Oracle 11g синтаксис таков: [//]host_name[:port][/service_name][:server_type][/instance_name]. Названия служб могут быть определены с помощью запуска Oracle утилиты lsnrctl status на сервере базы данных.

Файл tnsnames.ora может находиться в поисковом пути Oracle Net, который включает $ORACLE_HOME/network/admin и /etc. В качестве альтернативного варианта можно установить TNS_ADMIN таким образом, чтобы путь $TNS_ADMIN/tnsnames.ora был читаемым. Убедитесь, что веб-сервер имеет доступ к этому файлу.

character_set

Определяет кодировку, используемую клиентскими библиотеками Oracle. Данная кодировка не обязательно должна совпадать с кодировкой, используемой в самой базе данных. Если она не совпадает, Oracle сделает все возможное для конвертирования данных из- и в данную кодировку. В зависимости от используемых кодировок это может не всегда давать приемлемые результаты. Преобразование также создает некоторые дополнительные временные затраты.

Если кодировка не указана, клиентские библиотеки Oracle будут определять ее из переменной окружения NLS_LANG.

Передача этого параметра может уменьшить время затрачиваемое на соединение.

session_mode

Этот параметр доступен начиная с версии PHP 5 (PECL OCI8 1.1) и принимает следующие значения: OCI_DEFAULT, OCI_SYSOPER и OCI_SYSDBA. Если были указаны OCI_SYSOPER или OCI_SYSDBA, данная функция попытается установить привилегированное соединение, используя внешние данные авторизации. По умолчанию привилегированные соединения отключены. Чтобы их включить, необходимо установить oci8.privileged_connect в On.

В версии PHP 5.3 (PECL OCI8 1.3.4) появилось значение OCI_CRED_EXT. Оно указывает Oracle использовать внешнюю аутентификацию или аутентификацию с помощью операционной системы, что должно быть настроено в базе данных. Флаг OCI_CRED_EXT может быть использован только с именем пользователя "/" и пустым паролем. oci8.privileged_connect может принимать значение On или Off.

OCI_CRED_EXT может использоваться совместно с режимами OCI_SYSOPER и OCI_SYSDBA.

OCI_CRED_EXT не поддерживается в Windows по причинам безопасности.

Возвращаемые значения

Возвращает идентификатор соединения или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования oci_connect() с синтаксисом Easy Connect

<?php

// Подключается к XE сервису (т.е. к базе данных) на "localhost"
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Пример #2 Пример использования oci_connect() используя имя Network Connect

<?php

// Соединяется с базой данных MYDB описанной в файле tnsnames.ora,
// Пример записи в tnsnames.ora для MYDB:
//   MYDB =
//     (DESCRIPTION =
//       (ADDRESS = (PROTOCOL = TCP)(HOST = mymachine.oracle.com)(PORT = 1521))
//       (CONNECT_DATA =
//         (SERVER = DEDICATED)
//         (SERVICE_NAME = XE)
//       )
//     )

$conn = oci_connect('hr', 'welcome', 'MYDB');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Пример #3 Пример использования oci_connect() с использованием определенного набора символов

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE', 'AL32UTF8');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Пример #4 Пример использования многократных вызовов oci_connect()

<?php

$c1 = oci_connect("hr", "welcome", 'localhost/XE');
$c2 = oci_connect("hr", "welcome", 'localhost/XE');

// $c1 и $c2 содержат одинаковый PHP id ресурса, что означает, что
// они используют одинаковое базовое соединение
echo "c1 is $c1<br>\n";
echo "c2 is $c2<br>\n";

function create_table($conn)
{
    $stmt = oci_parse($conn, "create table hallo (test varchar2(64))");
    oci_execute($stmt);
    echo "Created table<br>\n";
}

function drop_table($conn)
{
    $stmt = oci_parse($conn, "drop table hallo");
    oci_execute($stmt);
    echo "Dropped table<br>\n";
}

function insert_data($connname, $conn)
{
    $stmt = oci_parse($conn, "insert into hallo
              values(to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
    oci_execute($stmt, OCI_DEFAULT);
    echo "$connname inserted row without committing<br>\n";
}

function rollback($connname, $conn)
{
    oci_rollback($conn);
    echo "$connname rollback<br>\n";
}

function select_data($connname, $conn)
{
    $stmt = oci_parse($conn, "select * from hallo");
    oci_execute($stmt, OCI_DEFAULT);
    echo "$connname ----selecting<br>\n";
    while (oci_fetch($stmt)) {
        echo "    " . oci_result($stmt, "TEST") . "<br>\n";
    }
    echo "$connname ----done<br>\n";
}

create_table($c1);

insert_data('c1', $c1);   // Вставить строку используя c1
sleep(2);                 // остановиться для записи другой временной метки для следующей строки
insert_data('c2', $c2);   // Вставить строку используя c2

select_data('c1', $c1);   // Возврат результата обоих вставок
select_data('c2', $c2);   // Возврат результата обоих вставок

rollback('c1', $c1);      // Откат используя c1

select_data('c1', $c1);   // Откат был произведен для обоих вставок
select_data('c2', $c2);

drop_table($c1);

// Закрытие одного из соединений делает переменную PHP недоступной, но
// другие могут быть использованы
oci_close($c1);
echo "c1 is $c1<br>\n";
echo "c2 is $c2<br>\n";

// Вывод is:
//    c1 is Resource id #5
//    c2 is Resource id #5
//    Created table
//    c1 inserted row without committing
//    c2 inserted row without committing
//    c1 ----selecting
//        09-DEC-09 12:14:43
//        09-DEC-09 12:14:45
//    c1 ----done
//    c2 ----selecting
//        09-DEC-09 12:14:43
//        09-DEC-09 12:14:45
//    c2 ----done
//    c1 rollback
//    c1 ----selecting
//    c1 ----done
//    c2 ----selecting
//    c2 ----done
//    Dropped table
//    c1 is
//    c2 is Resource id #5

?>

Примечания

Замечание:

Некорректно установленное или настроенное расширение OCI8 будет часто сообщать о проблемах соединения или ошибках. См. Установка/Настройка для решения проблем.

Смотрите также

  • oci_pconnect() - Устанавливает постоянное соединение с сервером Oracle
  • oci_new_connect() - Устанавливает новое соединение с сервером Oracle
  • oci_close() - Закрывает соединение с сервером Oracle


Сопоставляет переменную PHP столбцу результата запроса

  • « oci_connect
  • oci_error »
  • PHP Manual
  • OCI8 Функции
  • Сопоставляет переменную PHP столбцу результата запроса

oci_define_by_name

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_define_by_name — Сопоставляет переменную PHP столбцу результата запроса

Описание

oci_define_by_name ( resource $statement , string $column_name , mixed &$variable [, int $type = SQLT_CHR ] ) : bool

Сопоставляет переменную PHP столбцу результата запроса, полученного с помощью oci_fetch().

Вызов oci_define_by_name() должен производиться до запуска oci_execute().

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

column_name

Имя столбца использованного в запросе.

Используйте верхний регистр для стандартных регистронезависимых имен столбцов Oracle. Используйте точное написание имени столбца для регистрозависимых имен.

variable

Переменная PHP, предназначенная для хранения возвращенного значения.

type

Тип возвращаемых данных. Обычно не требуется. Имейте ввиду, что преобразования Oracle-данных не производятся. К примеру, SQLT_INT будет проигнорировано и возвращенные данные будут по прежнему в виде SQLT_CHR.

Если вам нужно назначить переменную абстрактного типа данных (LOB/ROWID/BFILE), то ее необходимо сначала создать с помощью oci_new_descriptor().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования oci_define_by_name()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);

// Переменные ДОЛЖНЫ быть определены перед запуском
oci_define_by_name($stid, 'LOCATION_ID', $locid);
oci_define_by_name($stid, 'CITY', $city);

oci_execute($stid);

//  Каждый результат запроса помещает в заранее определенную переменную следующую строку данных
while (oci_fetch($stid)) {
    echo "Location id $locid is $city<br>\n";
}

// Выведет:
//   Location id 1000 is Roma
//   Location id 1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 Пример использования oci_define_by_name() с регистрозависимыми именами столбцов

<?php

/*
  До запуска, создается таблица со столбцом, имеющим регистрозависимое имя
    CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30));
    INSERT INTO mytab (id, "MyDescription") values (1, 'Iced Coffee');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM mytab');

// Используется верхний регистр для регистронезависимых имен столбцов
oci_define_by_name($stid, 'ID', $id);

// Используется точное написание для регистрозависимых имен столбцов
oci_define_by_name($stid, 'MyDescription', $mydesc);

oci_execute($stid);

while (oci_fetch($stid)) {
    echo "id $id is $mydesc<br>\n";
}

// Выведет:
//   id 1 is Iced Coffee

oci_free_statement($stid);
oci_close($conn);

?>

Пример #3 Пример использования oci_define_by_name() со столбцами типа LOB

<?php

/*
  Перед запуском создаются таблицы:
    CREATE TABLE mytab (id NUMBER, fruit CLOB);
    INSERT INTO mytab (id, fruit) values (1, 'apple');
    INSERT INTO mytab (id, fruit) values (2, 'orange');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM mytab');

// Переменные ДОЛЖНЫ быть определены перед запуском
oci_define_by_name($stid, 'ID', $id);
oci_define_by_name($stid, 'FRUIT', $fruit);  // $fruit will become a LOB descriptor

oci_execute($stid);

while (oci_fetch($stid)) {
    echo $id . " is " . $fruit->load(100) . "<br>\n";
}

// Выведет:
//   1 is apple
//   2 is orange

$fruit->free();
oci_free_statement($stid);
oci_close($conn);

?>

Пример #4 Пример использования oci_define_by_name() с приведенными типами

<?php

/*
  Перед запуском создается таблица:
    CREATE TABLE mytab (id NUMBER, fruit CLOB);
    INSERT INTO mytab (id, fruit) values (1, 'apple');
    INSERT INTO mytab (id, fruit) values (2, 'orange');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM mytab');

// Переменные ДОЛЖНЫ быть определены перед запуском
oci_define_by_name($stid, 'ID', $id);

$fruit = oci_new_descriptor($conn, OCI_D_LOB);
oci_define_by_name($stid, 'FRUIT', $fruit, OCI_D_CLOB);

oci_execute($stid);

while (oci_fetch($stid)) {
    echo $id . " is " . $fruit->load(100) . "<br>\n";
}

// Выведет:
//   1 is apple
//   2 is orange

$fruit->free();
oci_free_statement($stid);
oci_close($conn);

?>

Смотрите также

  • oci_fetch() - Выбирает следующую строку из результата в буфер
  • oci_new_descriptor() - Инициализирует новый дескриптор объекта LOB или FILE


Возвращает последнюю ошибку

  • « oci_define_by_name
  • oci_execute »
  • PHP Manual
  • OCI8 Функции
  • Возвращает последнюю ошибку

oci_error

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_error — Возвращает последнюю ошибку

Описание

oci_error ([ resource $resource ] ) : array

Возвращает последнюю найденную ошибку.

Функция должна вызваться сразу же после появления ошибки. Ошибки очищаются при произведении правильного запроса.

Список параметров

resource

Для большинства ошибок параметром resource является соответствующий идентификатор соединения или выражения. Для ошибок во время выполнения функций oci_connect(), oci_new_connect() и oci_pconnect() параметр resource указывать не следует.

Возвращаемые значения

Если ошибок не найдено, то oci_error() возвращает FALSE. В противном случае, oci_error() возвращает информацию об ошибке в виде ассоциативного массива.

Описание массива вывода oci_error()
Ключ массива | Тип | Описание
code | integer | Номер ошибки Oracle.
message | string | Текст ошибки Oracle.
offset | integer | Позиция ошибки в запросе SQL. Если нет запроса, то равна 0
sqltext | string | Текст запроса SQL. Если нет запроса, то строка пуста.

Примеры

Пример #1 Вывод сообщения об ошибке Oracle после ошибки соединения

<?php
$conn = oci_connect("hr", "welcome", "localhost/XE");
if (!$conn) {
    $e = oci_error();   // Для обработки ошибок oci_connect
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Пример #2 Вывод сообщения об ошибке Oracle после ошибки разбора

<?php
$stid = oci_parse($conn, "select ' from dual");  // пропущенные кавычки
if (!$stid) {
    $e = oci_error($conn);  // Для обработки ошибок oci_parse
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Пример #3 Вывод сообщения об ошибке Oracle, ошибочного запроса и позиции ошибки запуска запроса

<?php
$stid = oci_parse($conn, "select does_not_exist from dual");
$r = oci_execute($stid);
if (!$r) {
    $e = oci_error($stid);  // Для обработки ошибок oci_execute
    print htmlentities($e['message']);
    print "\n<pre>\n";
    print htmlentities($e['sqltext']);
    printf("\n%".($e['offset']+1)."s", "^");
    print  "\n</pre>\n";
}
?>


Выполняет подготовленное выражение

  • « oci_error
  • oci_fetch_all »
  • PHP Manual
  • OCI8 Функции
  • Выполняет подготовленное выражение

oci_execute

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_execute — Выполняет подготовленное выражение

Описание

oci_execute ( resource $statement [, int $mode = OCI_COMMIT_ON_SUCCESS ] ) : bool

Выполняет подготовленное выражение statement, созданное с помощью функции oci_parse().

Сразу после выполнения выражения подобного INSERT, по умолчанию все данные сразу будут сохранены в базе данных. Для выражений подобных SELECT, выполняется только логика запроса. Результат же запроса можно получить позже в PHP с помощью функций подобных oci_fetch_array().

Каждое подготовленное выражение может быть выполнено несколько раз для экономии на издержках от повторной подготовки запроса. Это чаще всего применяется для выражений INSERT, когда к ним привязаны данные с помощью oci_bind_by_name().

Список параметров

statement

Правильное подготовленное выражение OCI.

mode

Необязательный второй параметр с одним из следующих значений:

Режим выполнения
Константа | Описание
OCI_COMMIT_ON_SUCCESS | Автоматически сохранять все несохраненные изменения, произведенные за текущую сессию при успешном выполнении выражения. Этот режим установлен по умолчанию.
OCI_DESCRIBE_ONLY | Делает доступными метаданные запроса для функций подобных oci_field_name(), но не создает результат выполнения выражения. Любое последующее получение данных, например с помощью oci_fetch_array() не будет произведено.
OCI_NO_AUTO_COMMIT | Не сохранять автоматически изменения. Для PHP 5.3.2 (PECL OCI8 1.4) используйте OCI_DEFAULT, которая является эквивалентом для OCI_NO_AUTO_COMMIT.

Использование режима OCI_NO_AUTO_COMMIT открывает или продолжает транзакцию. Эта транзакция автоматически откатывается при закрытии соединения или завершении скрипта. Используйте oci_commit() для завершения транзакции и oci_rollback() для ее отмены.

При вставке и обновлении данных рекомендуется использование транзакций для реляционной целостности данных и для улучшения производительности.

Если для какого-нибудь выражения используется режим OCI_NO_AUTO_COMMIT, и впоследствии не используются oci_commit() или oci_rollback(), то OCI8 будет выполнять откат при завершении скрипта даже если данные не были изменены. Для избежания ненужных откатов большинство скриптов не используют режим OCI_NO_AUTO_COMMIT для запросов или PL/SQL. Будьте внимательны, чтобы обеспечить надлежащую согласованность транзакций при использовании oci_execute() с различными режимами в одном скрипте.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 oci_execute() при выполнении запросов

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Пример #2 oci_execute() без указания определенного режима

<?php

// Перед выполнением создайте таблицу:
//   CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (123)');

oci_execute($stid); // Строка сохранена и становится видимой для других пользователей

?>

Пример #3 oci_execute() с OCI_NO_AUTO_COMMIT

<?php

// Перед выполнением создайте таблицу:
//   CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (:bv)');
oci_bind_by_name($stid, ':bv', $i, 10);
for ($i = 1; $i <= 5; ++$i) {
    oci_execute($stid, OCI_NO_AUTO_COMMIT);  // use OCI_DEFAULT for PHP <= 5.3.1
}
oci_commit($conn);  // сохранение все новых значений: 1, 2, 3, 4, 5

?>

Пример #4 oci_execute() с различными режимами

<?php

// Перед выполнением создайте таблицу:
//   CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (123)');
oci_execute($stid, OCI_NO_AUTO_COMMIT);  // data not committed

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (456)');
oci_execute($stid);  // commits both 123 and 456 values

?>

Пример #5 oci_execute() с OCI_DESCRIBE_ONLY

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT * FROM locations');
oci_execute($s, OCI_DESCRIBE_ONLY);
for ($i = 1; $i <= oci_num_fields($stid); ++$i) {
    echo oci_field_name($stid, $i) . "<br>\n";
}

?>

Примечания

Замечание:

Транзакции автоматически откатываются при закрытии соединения или завершении выполнения скрипта. Принудительно вызывайте oci_commit() для завершения транзакции.

Любой вызов oci_execute(), который принудительно использует OCI_COMMIT_ON_SUCCESS или по умолчанию будет завершать любую предыдущую незакрытую транзакцию.

Любое выражение Oracle DDL подобное CREATE или DROP будет автоматически завершать любую. незакрытую транзакцию.

Замечание:

Так как функция oci_execute() обычно отправляет выражения в базу данных, то oci_execute() может найти некоторые незначительные синтаксические ошибки, когда локальная oci_parse() их не находит.

Смотрите также

  • oci_parse() - Подготавливает запрос к выполнению


Выбирает все строки из результата запроса в двумерный массив

  • « oci_execute
  • oci_fetch_array »
  • PHP Manual
  • OCI8 Функции
  • Выбирает все строки из результата запроса в двумерный массив

oci_fetch_all

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch_all — Выбирает все строки из результата запроса в двумерный массив

Описание

oci_fetch_all ( resource $statement , array &$output [, int $skip = 0 [, int $maxrows = -1 [, int $flags = OCI_FETCHSTATEMENT_BY_COLUMN + OCI_ASSOC ]]] ) : int

Выбирает все строки из результата запроса в двумерный массив. По умолчанию возвращает все строки.

Эта функция может быть вызваться только один раз для каждого запроса запущенного с помощью oci_execute().

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

output

Переменная, содержащая возвращенные строки.

LOB столбцы возвращаются в виде строк, для которых поддерживается Oracle преобразования.

См. oci_fetch_array() для более детальной информации о том, как производится выборка данных и типов.

skip

Число строк, которых необходимо исключить из выборки. По умолчанию равно 0, выборка возвращается со следующего за первым ряда.

maxrows

Число возвращаемых строк. По умолчанию равно -1, что означает возврат всех строк, начиная с указанных в skip + 1 предыдущая строка.

flags

Параметр flags содержит структуру массива отражает необходимость использования ассоциативных массивов.

Структура массива oci_fetch_all()
Константа | Описание
OCI_FETCHSTATEMENT_BY_ROW | Массив будет содержать по одному под-массиву на каждую строку запроса.
OCI_FETCHSTATEMENT_BY_COLUMN | Массив будет содержать по одному под-массиву на каждый столбец. Используется по умолчанию.

Массивы могут быть проиндексированы или заголовками столбцов или пронумерованы. Будет возвращен только один режим индексации.

Индексация массива oci_fetch_all()
Константа | Описание
OCI_NUM | Для массива каждого столбца используются числовые индексы.
OCI_ASSOC | Для массива каждого столбца используется ассоциативные индексы. По умолчанию.

Используйте оператор сложения "+" для выбора определенной комбинации структуры и индексации массива.

Регистронезависимые (по умолчанию в Oracle) имена полей в результирующем массиве будут иметь ассоциативные индексы в верхнем регистре. Регистрозависимые имена полей будут иметь индексы с теми же регистрами символов, что и само поле. Используйте var_dump() на on output, чтобы проверить соответствие регистров символов для каждого запроса.

В запросах в которых имеется несколько столбцов с одинаковыми именами необходимо использовать псевдонимы. Иначе только один из столбцов появится в ассоциативном массиве.

Возвращаемые значения

Возвращает число столбцов в output, который может принимать значение 0 или более, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования oci_fetch_all()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows = oci_fetch_all($stid, $res);

echo "$nrows rows fetched<br>\n";
var_dump($res);

// Вывод var_dump:
//    2 rows fetched
//    array(2) {
//      ["POSTAL_CODE"]=>
//      array(2) {
//        [0]=>
//        string(6) "00989x"
//        [1]=>
//        string(6) "10934x"
//      }
//      ["CITY"]=>
//      array(2) {
//        [0]=>
//        string(4) "Roma"
//        [1]=>
//        string(6) "Venice"
//      }
//    }

// Форматирование результатов
echo "<table border='1'>\n";
foreach ($res as $col) {
    echo "<tr>\n";
    foreach ($col as $item) {
        echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 Пример использования oci_fetch_all() с OCI_FETCHSTATEMENT_BY_ROW

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows = oci_fetch_all($stid, $res, null, null, OCI_FETCHSTATEMENT_BY_ROW);

echo "$nrows rows fetched<br>\n";
var_dump($res);

// Выведет:
//    2 rows fetched
//    array(2) {
//      [0]=>
//      array(2) {
//        ["POSTAL_CODE"]=>
//        string(6) "00989x"
//        ["CITY"]=>
//        string(4) "Roma"
//      }
//      [1]=>
//      array(2) {
//        ["POSTAL_CODE"]=>
//        string(6) "10934x"
//        ["CITY"]=>
//        string(6) "Venice"
//      }
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Пример #3 Пример использования oci_fetch_all() с OCI_NUM

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows = oci_fetch_all($stid, $res, null, null, OCI_FETCHSTATEMENT_BY_ROW + OCI_NUM);

echo "$nrows rows fetched<br>\n";
var_dump($res);

// Выведет:
//    2 rows fetched
//    array(2) {
//      [0]=>
//      array(2) {
//        [0]=>
//        string(6) "00989x"
//        [1]=>
//        string(4) "Roma"
//      }
//      [1]=>
//      array(2) {
//        [0]=>
//        string(6) "10934x"
//        [1]=>
//        string(6) "Venice"
//      }
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

Использование skip неэффективно. Все пропускаемые ряды включаются в результат запроса возвращаемый базой данных к PHP. После этого они исключаются. Более эффективно использовать SQL для отступа и ограничения рядов в запросе. См. oci_fetch_array() для примеров.

Замечание:

Запросы, возвращающие большое число рядов, могут быть более эффективными если используется однорядная функция выборки, такая как oci_fetch_array().

Замечание:

Для запросов, возвращающих большое количество рядов, производительность может быть значительно увеличена с помощью увеличения значения опции oci8.default_prefetch или использования oci_set_prefetch().

Замечание:

Не возвращает ряды для неявных результирующих наборов в Oracle Database 12c. Используйте вместо данной функции функцию oci_fetch_array().

Смотрите также

  • oci_fetch() - Выбирает следующую строку из результата в буфер
  • oci_fetch_array() - Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива
  • oci_fetch_assoc() - Возвращает следующую строку из результата запроса в виде ассоциативного массива
  • oci_fetch_object() - Возвращает следующую строку из результата запроса в виде объекта
  • oci_fetch_row() - Возвращает следующую строку из результата запроса в виде нумерованного массива
  • oci_set_prefetch() - Устанавливает количество строк, которые будут автоматически выбраны в буфер


Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива

  • « oci_fetch_all
  • oci_fetch_assoc »
  • PHP Manual
  • OCI8 Функции
  • Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива

oci_fetch_array

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch_array — Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива

Описание

oci_fetch_array ( resource $statement [, int $mode ] ) : array

Возвращает массив, содержащий следующую строку результата запроса. Каждый элемент массива соответствует одному полю из строки. Эта функция обычно вызывается в цикле, пока она не вернет FALSE, который указывает на отсутствие последующих строк.

Если statement соответствует PL/SQL блоку, возвращаемому Oracle Database 12c Implicit Result Sets, тогда будут последовательно извлечены ряды из всех наборов. Если statement возвращается из oci_get_implicit_resultset(), тогда вернется только часть рядов для одного дочернего запроса.

За подробностями по операции отображения типов данных, осуществляемым расширением OCI8, обратитесь к типам данных, поддерживаемых драйвером

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

Также может быть идентификатором, возвращаемым функцией oci_get_implicit_resultset().

mode

Необязательный второй параметр может состоять из любой комбинации следующих констант:

oci_fetch_array() Modes
Константа | Описание
OCI_BOTH | Возвращает массив как с ассоциативными и числовыми индексами. Эта константа то же самое что и OCI_ASSOC + OCI_NUM, и она используется по умолчанию.
OCI_ASSOC | Возвращает ассоциативный массив.
OCI_NUM | Возвращает нумерованный массив.
OCI_RETURN_NULLS | Создает элементы для полей равных NULL. Значение элемента будет равно PHP NULL.
OCI_RETURN_LOBS | Возвращает содержимое полей типа LOB, вместо LOB указателя.

По умолчанию mode равен OCI_BOTH.

Используйте оператор сложения "+" для указания более одного режима.

Возвращаемые значения

Возвращает массив с ассоциативными и/или числовыми ключами. Если больше нет строк в statement, то возвращается FALSE.

По умолчанию, поля LOB возвращаются как указатели LOB.

Поля типа DATE возвращаются в формате строк, соответствующем текущему формату даты. Формат по умолчанию может быть изменен с помощью переменных окружения Oracle, таких как NLS_LANG, или предварительным выполнением команды ALTER SESSION SET NLS_DATE_FORMAT.

Регистронезависимые (по умолчанию в Oracle) имена полей будут иметь ассоциативные индексы в верхнем регистре в результирующем массиве. Регистрозависимые имена полей будут иметь индексы с теми же регистрами символов, что и само поле. Используйте var_dump() для результирующего массива, чтобы проверить соответствие регистров символов для каждого запроса.

Имя таблицы не входит в ассоциативны индекс. Если ваш запрос содержит два разных поля с одинаковым именем, используйте OCI_NUM или добавьте алиас для поля в запрос, так чтобы имена стали уникальными (смотрите пример #7). Иначе будет возвращено только одно поле.

Примеры

Пример #1 oci_fetch_array() с OCI_BOTH

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_BOTH))) {
    // Используйте название полей в верхнем регистре для ассоциативных индексов
    echo $row[0] . " и " . $row['DEPARTMENT_ID']   . " идентичны<br>\n";
    echo $row[1] . " и " . $row['DEPARTMENT_NAME'] . " идентичны<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 oci_fetch_array() с OCI_NUM

<?php

/*
  Перед выполнением создайте таблицу:
      CREATE TABLE mytab (id NUMBER, description CLOB);
      INSERT INTO mytab (id, description) values (1, 'A very long string');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_NUM)) != false) {
    echo $row[0] . "<br>\n";
    echo $row[1]->read(11) . "<br>\n"; // это выведет первые 11 байт DESCRIPTION
}

// Выведет:
//    1
//    A very long

oci_free_statement($stid);
oci_close($conn);

?>

Пример #3 oci_fetch_array() с OCI_ASSOC

<?php

/*
  Перед выполнением создайте таблицу:
      CREATE TABLE mytab (id NUMBER, description CLOB);
      INSERT INTO mytab (id, description) values (1, 'A very long string');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
    echo $row['ID'] . "<br>\n";
    echo $row['DESCRIPTION']->read(11) . "<br>\n"; // это выведет первые 11 байт DESCRIPTION
}

// Выведет:
//    1
//    A very long

oci_free_statement($stid);
oci_close($conn);

?>

Пример #4 oci_fetch_array() с OCI_RETURN_NULLS

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT 1, null FROM dual');
oci_execute($stid);
while (($row = oci_fetch_array ($stid, OCI_ASSOC)) != false) { // Игнорирует NULL значения
    var_dump($row);
}

/*
Вышеуказанный код выведет:
  array(1) {
    [1]=>
    string(1) "1"
  }
*/

$stid = oci_parse($conn, 'SELECT 1, null FROM dual');
oci_execute($stid);
while (($row = oci_fetch_array ($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) { // Получает NULL значения
    var_dump($row);
}

/*
Вышеуказанный код выведет:
  array(2) {
    [1]=>
    string(1) "1"
    ["NULL"]=>
    NULL
  }
*/

?>

Пример #5 oci_fetch_array() с OCI_RETURN_LOBS

<?php

/*
  Перед выполнением создайте таблицу:
      CREATE TABLE mytab (id NUMBER, description CLOB);
      INSERT INTO mytab (id, description) values (1, 'A very long string');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS))) {
    echo $row['ID'] . "<br>\n";
    echo $row['DESCRIPTION'] . "<br>\n"; // содержит весь DESCRIPTION
    // В цикле, очищение больших переменных перед повторным получением данных, уменьшает пиковое потребление памяти PHP
    unset($row);
}

// Выведет:
//    1
//    A very long string

oci_free_statement($stid);
oci_close($conn);

?>

Пример #6 oci_fetch_array() с регистрозависимыми названиями полей

<?php

/*
   Перед выполнением создайте таблицу:
      CREATE TABLE mytab ("Name" VARCHAR2(20), city VARCHAR2(20));
      INSERT INTO mytab ("Name", city) values ('Chris', 'Melbourne');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'select * from mytab');
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);

// Так как 'Name' было создан как регистрозависимое поле, то
// те же регисты символов используются для индексов массива.
// Тем не менее для 'CITY' должен использоваться индекс в верхнем регистре.
print $row['Name'] . "<br>\n";   //  выведет Chris
print $row['CITY'] . "<br>\n";   //  выведет Melbourne

oci_free_statement($stid);
oci_close($conn);

?>

Пример #7 oci_fetch_array() с полями с одинаковыми названиями

<?php

/*
  Перед выполнением создайте таблицу:
      CREATE TABLE mycity (id NUMBER, name VARCHAR2(20));
      INSERT INTO mycity (id, name) values (1, 'Melbourne');
      CREATE TABLE mycountry (id NUMBER, name VARCHAR2(20));
      INSERT INTO mycountry (id, name) values (1, 'Australia');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT mycity.name, mycountry.name
        FROM mycity, mycountry
        WHERE mycity.id = mycountry.id';
$stid = oci_parse($conn, $sql);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
var_dump($row);

// Выведет только одну записаь "NAME":
//    array(1) {
//      ["NAME"]=>
//      string(9) "Australia"
//    }

// Для получения полей с повторяющимся названием используйте SQL псевдонимы (alias) для полей. Например "AS ctnm":
$sql = 'SELECT mycity.name AS ctnm, mycountry.name
        FROM mycity, mycountry
        WHERE mycity.id = mycountry.id';
$stid = oci_parse($conn, $sql);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
var_dump($row);

// Выведет записи из обоих полей:
//    array(2) {
//      ["CTNM"]=>
//      string(9) "Melbourne"
//      ["NAME"]=>
//      string(9) "Australia"
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Пример #8 oci_fetch_array() с полями DATE

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Устанавливаем формат даты для данного соединения.
// Для повышения производительности вместо этого
// используйте изменение формата в триггере или переменной окружения.
$stid = oci_parse($conn, "ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD'");
oci_execute($stid);

$stid = oci_parse($conn, 'SELECT hire_date FROM employees WHERE employee_id = 188');
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
echo $row['HIRE_DATE'] . "<br>\n";  // выведет 1997-06-14

oci_free_statement($stid);
oci_close($conn);

?>

Пример #9 oci_fetch_array() с REF CURSOR

<?php
/*
  Создайте PL/SQL хранимую процедуру:

  CREATE OR REPLACE PROCEDURE myproc(p1 OUT SYS_REFCURSOR) AS
  BEGIN
    OPEN p1 FOR SELECT * FROM all_objects WHERE ROWNUM < 5000;
  END;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'BEGIN myproc(:rc); END;');
$refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

// Выполняет вовзращенный REF CURSOR и получает его в виде идентификатора выражения
oci_execute($refcur);
echo "<table border='1'>\n";
while (($row = oci_fetch_array($refcur, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($refcur);
oci_free_statement($stid);
oci_close($conn);

?>

Пример #10 Постраничный вывод с помощью oci_fetch_array() используя LIMIT-подобный запрос

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Определяем версию базы данных
preg_match('/Release ([0-9]+)\./', oci_server_version($conn), $matches);
$oracleversion = $matches[1];

// Запрос, который необходимо сделать "постраничным"
$sql = 'SELECT city, postal_code FROM locations ORDER BY city';

if ($oracleversion >= 12) {
    // Используем Oracle 12c OFFSET / FETCH NEXT синтаксис
    $sql = $sql . ' OFFSET :offset ROWS FETCH NEXT :numrows ROWS ONLY';
} else {
    // Cтарые версии Oracle нуждаются в выборке с помощью подзапроса в $sql.
    // Или, если SQL выражение известно на стадии разработки, то с помощью
    // функции row_number(). Будьте осторожны и избегайте возможности
    // SQL-инъекции при объединении строк в боевом окружении.
    $sql = "SELECT * FROM (SELECT a.*, ROWNUM AS my_rnum
                           FROM ($sql) a
                           WHERE ROWNUM <= :offset + :numrows)
            WHERE my_rnum > :offset";
}

$offset  = 0;  // skip this many rows
$numrows = 5;  // return 5 rows
$stid = oci_parse($conn, $sql);
oci_bind_by_name($stid, ':numrows', $numrows);
oci_bind_by_name($stid, ':offset', $offset);
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_ASSOC + OCI_RETURN_NULLS)) != false) {
    echo $row['CITY'] . " " . $row['POSTAL_CODE'] . "<br>\n";
}

// Выведет:
//    Beijing 190518
//    Bern 3095
//    Bombay 490231
//    Geneva 1730
//    Hiroshima 6823

oci_free_statement($stid);
oci_close($conn);

?>

Пример #11 oci_fetch_array() c Oracle Database 12c Implicit Result Sets

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Требует OCI8 2.0 и Oracle Database 12c
// также смотрите oci_get_implicit_resultset()
$sql = 'DECLARE
           c1 SYS_REFCURSOR;
        BEGIN
           OPEN c1 FOR SELECT city, postal_code FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
           OPEN c1 FOR SELECT country_id FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
        END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

// Обратите внимание: oci_fetch_all и oci_fetch() нельзя неприменимы здесь
echo "<table>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "  <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"&nbsp;")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

// Выведет:
//    Beijing 190518
//    Bern    3095
//    Bombay  490231
//    CN
//    CH
//    IN

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

Индексы ассоциативного массива необходимо приводить в верхний регистр для стандартных полей Oracle, созданных с регистронезависимыми названиями.

Замечание:

Для запросов, возвращающих большое количество рядов, производительность может быть значительно увеличена с помощью увеличения значения опции oci8.default_prefetch или использования oci_set_prefetch().

Замечание:

Функция oci_fetch_array() немного медленней oci_fetch_assoc() или oci_fetch_row(), но более гибкая.

Смотрите также

  • oci_fetch() - Выбирает следующую строку из результата в буфер
  • oci_fetch_all() - Выбирает все строки из результата запроса в двумерный массив
  • oci_fetch_assoc() - Возвращает следующую строку из результата запроса в виде ассоциативного массива
  • oci_fetch_object() - Возвращает следующую строку из результата запроса в виде объекта
  • oci_fetch_row() - Возвращает следующую строку из результата запроса в виде нумерованного массива
  • oci_set_prefetch() - Устанавливает количество строк, которые будут автоматически выбраны в буфер


Возвращает следующую строку из результата запроса в виде ассоциативного массива

  • « oci_fetch_array
  • oci_fetch_object »
  • PHP Manual
  • OCI8 Функции
  • Возвращает следующую строку из результата запроса в виде ассоциативного массива

oci_fetch_assoc

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch_assoc — Возвращает следующую строку из результата запроса в виде ассоциативного массива

Описание

oci_fetch_assoc ( resource $statement ) : array

Возвращает ассоциативный массив, содержащий следующую строку из результата выполнения запроса. Каждый элемент массива соответствует столбцу текущей строки. Эта функция обычно вызывается в цикле, пока не возвращает FALSE, если больше нет строк.

Результат выполнения oci_fetch_assoc() идентичен выполнению oci_fetch_array() с флагом OCI_ASSOC + OCI_RETURN_NULLS.

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

Возвращаемые значения

Возвращает ассоциативный массив. Если в результате запроса строк больше нет, возвращает FALSE.

Примеры

Пример #1 Пример использования oci_fetch_assoc()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while (($row = oci_fetch_assoc($stid)) != false) {
    echo $row['DEPARTMENT_ID'] . " " . $row['DEPARTMENT_NAME'] . "<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

Смотрите дополнительные примеры получения строк в oci_fetch_array().

Смотрите также

  • oci_fetch() - Выбирает следующую строку из результата в буфер
  • oci_fetch_all() - Выбирает все строки из результата запроса в двумерный массив
  • oci_fetch_array() - Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива
  • oci_fetch_object() - Возвращает следующую строку из результата запроса в виде объекта
  • oci_fetch_row() - Возвращает следующую строку из результата запроса в виде нумерованного массива


Возвращает следующую строку из результата запроса в виде объекта

  • « oci_fetch_assoc
  • oci_fetch_row »
  • PHP Manual
  • OCI8 Функции
  • Возвращает следующую строку из результата запроса в виде объекта

oci_fetch_object

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch_object — Возвращает следующую строку из результата запроса в виде объекта

Описание

oci_fetch_object ( resource $statement ) : object

Возвращает объект, содержащий следующую строку из результата запроса. Имена свойств объекта соответствуют именам столбцов в строке. Эта функция обычно вызывается в цикле пока не возвращает FALSE когда больше нет рядов.

За подробностями по операции отображения типов данных, осуществляемым расширением OCI8, обратитесь к типам данных, поддерживаемых драйвером

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

Возвращаемые значения

Возвращает объект. Каждое свойство объекта соответствуют именам столбцов в строке. Если в результате запроса больше нет рядов, то возвращает FALSE.

Любой столбец LOB возвращается как дескриптор LOB.

Столбцы DATE возвращаются в виде строк, форматированных в соответствии с текущим форматов даты. Стандартный формат может быть изменен с помощью переменных окружения Oracle, таких как NLS_LANG или с помощью предварительно запущенной ALTER SESSION SET NLS_DATE_FORMAT команды.

Вам не следует забывать о том, что Oracle возвращает имена полей в ВЕРХНЕМ регистре, поэтому имена атрибутов объекта будут также в ВЕРХНЕМ регистре. Используйте функцию var_dump() по отношению к полученному объекту для доступа к атрибутам.

Значения атрибутов соответствуют NULL для любых NULL полей.

Примеры

Пример #1 Пример использования oci_fetch_object()

<?php

/*
  Перед запуском создайте таблицу:
    CREATE TABLE mytab (id NUMBER, description VARCHAR2(30));
    INSERT INTO mytab (id, description) values (1, 'Fish and Chips');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_object($stid)) != false) {
    // Используйте имена атрибутов в верхнем регистре для каждого столбца Oracle
    echo $row->ID . "<br>\n";
    echo $row->DESCRIPTION . "<br>\n";
}

// Выведет:
//    1
//    Fish and Chips

oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 Пример использования oci_fetch_object() с названиями столбцов в различных регистрах

<?php

/*
Перед запуском создайте таблицу с именем столбца в различных регистрах:
    CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30));
    INSERT INTO mytab (id, "MyDescription") values (1, 'Iced Coffee');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, "MyDescription" FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_object($stid)) != false) {
    // Использование имён атрибутов в верхнем регистре для каждого столбца Oracle
    echo $row->ID . "<br>\n";
    // Использование точного написания для имени столбца с различными регистрами
    echo $row->MyDescription . "<br>\n";
}

// Выведет:
//    1
//    Iced Coffee

oci_free_statement($stid);
oci_close($conn);

?>

Пример #3 Пример использования oci_fetch_object() с LOB

<?php

/*
  Перед запуском создайте таблицу
    CREATE TABLE mytab (id NUMBER, description CLOB);
    INSERT INTO mytab (id, description) values (1, 'A very long string');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_object($stid)) != false) {
    echo $row->ID . "<br>\n";
    // Таким образом будет выведено первые 11 байт из DESCRIPTION
    echo $row->DESCRIPTION->read(11) . "<br>\n";
}

// Выведет:
//    1
//    A very long

oci_free_statement($stid);
oci_close($conn);

?>

Смотрите также

  • oci_fetch() - Выбирает следующую строку из результата в буфер
  • oci_fetch_all() - Выбирает все строки из результата запроса в двумерный массив
  • oci_fetch_assoc() - Возвращает следующую строку из результата запроса в виде ассоциативного массива
  • oci_fetch_array() - Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива
  • oci_fetch_row() - Возвращает следующую строку из результата запроса в виде нумерованного массива


Возвращает следующую строку из результата запроса в виде нумерованного массива

  • « oci_fetch_object
  • oci_fetch »
  • PHP Manual
  • OCI8 Функции
  • Возвращает следующую строку из результата запроса в виде нумерованного массива

oci_fetch_row

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch_row — Возвращает следующую строку из результата запроса в виде нумерованного массива

Описание

oci_fetch_row ( resource $statement ) : array

Возвращает нумерованный массив, содержащий следующую строку из результата запроса. Каждый массив соответствует столбцу строки. Эта функция обычно вызывается в цикле пока не возвращает FALSE, если в результате запроса больше нет строк.

Вызов oci_fetch_row() аналогичен вызову oci_fetch_array() с флагом OCI_NUM + OCI_RETURN_NULLS.

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

Возвращаемые значения

Возвращает нумерованный массив. Если в statement больше нет срок возвращает FALSE.

Примеры

Пример #1 Пример использования oci_fetch_row()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while (($row = oci_fetch_row($stid)) != false) {
    echo $row[0] . " " . $row[1] . "<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

Смотрите oci_fetch_array() для дополнительных примеров результатов запросов.

Смотрите также

  • oci_fetch() - Выбирает следующую строку из результата в буфер
  • oci_fetch_all() - Выбирает все строки из результата запроса в двумерный массив
  • oci_fetch_array() - Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива
  • oci_fetch_assoc() - Возвращает следующую строку из результата запроса в виде ассоциативного массива
  • oci_fetch_object() - Возвращает следующую строку из результата запроса в виде объекта


Выбирает следующую строку из результата в буфер

  • « oci_fetch_row
  • oci_field_is_null »
  • PHP Manual
  • OCI8 Функции
  • Выбирает следующую строку из результата в буфер

oci_fetch

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch — Выбирает следующую строку из результата в буфер

Описание

oci_fetch ( resource $statement ) : bool

Выбирает следующую строку из результата запроса во внутренний буфер, доступный с помощью oci_result() или через переменные, заранее определенные с помощью oci_define_by_name().

Смотрите oci_fetch_array() для более детальной информации о выборе данных.

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения или FALSE, если в результате statement больше нет рядов.

Примеры

Пример #1 Пример использования oci_fetch() с определенными переменными

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);

// Определение переменных ДОЛЖНО быть произведено до запуска
oci_define_by_name($stid, 'LOCATION_ID', $locid);
oci_define_by_name($stid, 'CITY', $city);

oci_execute($stid);

// С каждой выборкой переменные заполняются данными следующего ряда
while (oci_fetch($stid)) {
    echo "Идентификатор местоположения $city = $locid<br>\n";
}

// Выведет:
//   Идентификатор местоположения Roma = 1000
//   Идентификатор местоположения Venice = 1100

oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 Пример использования oci_fetch() с oci_result()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);
oci_execute($stid);

while (oci_fetch($stid)) {
    echo oci_result($stid, 'LOCATION_ID') . " = ";
    echo oci_result($stid, 'CITY') . "<br>\n";
}

// Выведет:
//   1000 = Roma
//   1100 = Venice

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

Не возвращает строки для неявных результирующих наборов в Oracle Database 12c. Используйте вместо данной функции функцию oci_fetch_array().

Смотрите также

  • oci_define_by_name() - Сопоставляет переменную PHP столбцу результата запроса
  • oci_fetch_all() - Выбирает все строки из результата запроса в двумерный массив
  • oci_fetch_array() - Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива
  • oci_fetch_assoc() - Возвращает следующую строку из результата запроса в виде ассоциативного массива
  • oci_fetch_object() - Возвращает следующую строку из результата запроса в виде объекта
  • oci_fetch_row() - Возвращает следующую строку из результата запроса в виде нумерованного массива
  • oci_result() - Возвращает значение поля из результата запроса


Проверяет, равняется ли поле в текущем полученном ряду равным NULL

  • « oci_fetch
  • oci_field_name »
  • PHP Manual
  • OCI8 Функции
  • Проверяет, равняется ли поле в текущем полученном ряду равным NULL

oci_field_is_null

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_is_null — Проверяет, равняется ли поле в текущем полученном ряду равным NULL

Описание

oci_field_is_null ( resource $statement , mixed $field ) : bool

Проверяет, является ли значение, переданное в поле field из текущего ряда statement равным NULL.

Список параметров

statement

Идентификатор допустимого OCI запроса.

field

Может быть порядковый номер поля (начиная с 1) или имя поля.

Возвращаемые значения

Возвращает TRUE, если field равен NULL, и FALSE если нет.

Примеры

Пример #1 Пример использования oci_field_name()

<?php

// Создайте таблицу:
//   CREATE TABLE mytab (c1 NUMBER);
//   INSERT INTO mytab VALUES (1);
//   INSERT INTO mytab VALUES (NULL);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) != false) {
    $ncols = oci_num_fields($stid);
    for ($col = 1; $col <= $ncols; $col++) {
        var_dump(oci_field_is_null($stid, $col));
    }
}

// Выведет:
//    bool(false)
//    bool(true)

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocicolumnisnull(). В PHP 5.0.0 и выше ocicolumnisnull() является алиасом oci_field_is_null(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.


Возвращает имя поля из результата запроса

  • « oci_field_is_null
  • oci_field_precision »
  • PHP Manual
  • OCI8 Функции
  • Возвращает имя поля из результата запроса

oci_field_name

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_name — Возвращает имя поля из результата запроса

Описание

oci_field_name ( resource $statement , mixed $field ) : string

Возвращает имя поля field из результата запроса.

Список параметров

statement

Идентификатор допустимого OCI запроса.

field

Может быть номером поля (нумерация начинается с 1) или именем.

Возвращаемые значения

Возвращает имя в виде строки, или FALSE при ошибках.

Примеры

Пример #1 Пример использования oci_field_name()

<?php

// Создайте таблицу:
//   CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
//                       clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // используйте OCI_DESCRIBE_ONLY, если не получаете данных

echo "<table border=\"1\">\n";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Type</th>";
echo "<th>Length</th>";
echo "</tr>\n";

$ncols = oci_num_fields($stid);

for ($i = 1; $i <= $ncols; $i++) {
    $column_name  = oci_field_name($stid, $i);
    $column_type  = oci_field_type($stid, $i);

    echo "<tr>";
    echo "<td>$column_name</td>";
    echo "<td>$column_type</td>";
    echo "</tr>\n";
}

echo "</table>\n";

// Выведет:
//    Name           Type
//    NUMBER_COL    NUMBER
//    VARCHAR2_COL  VARCHAR2
//    CLOB_COL      CLOB
//    DATE_COL      DATE

oci_free_statement($stid);
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_name
  • oci_field_scale »
  • PHP Manual
  • OCI8 Функции
  • Возвращает точность поля

oci_field_precision

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_precision — Возвращает точность поля

Описание

oci_field_precision ( resource $statement , mixed $field ) : int

Возвращает точность поля field.

Для полей типа FLOAT точность больше нуля, а масштаб равен -127. Если точность поля равна нулю, то тип поля - NUMBER. Иначе же, тип поля может быть описан как NUMBER(precision, scale).

Список параметров

statement

Идентификатор допустимого OCI запроса.

field

Может быть номером поля (нумерация начинается с 1) или именем.

Возвращаемые значения

Возвращает точность в виде числа, или FALSE при ошибках.

Примеры

Пример #1 Пример использования oci_field_precision()

<?php

// Создайте таблицу:
//   CREATE TABLE mytab (c1 NUMBER, c2 FLOAT, c3 NUMBER(4), c4 NUMBER(5,3));

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // используйте OCI_DESCRIBE_ONLY, если не получаете данных

$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
    echo oci_field_name($stid, $i) . " "
        . oci_field_precision($stid, $i) . " "
        . oci_field_scale($stid, $i) . "<br>\n";
}

// Выведет:
//   C1    0 -127
//   C2  126 -127
//   C3    4    0
//   C4    5    3

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocicolumnprecision(). В PHP 5.0.0 и выше ocicolumnprecision() является алиасом oci_field_scale(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Смотрите также

  • oci_field_scale() - Возвращает масштаб поля
  • oci_field_type() - Возвращает имя типа поля


Возвращает масштаб поля

  • « oci_field_precision
  • oci_field_size »
  • PHP Manual
  • OCI8 Функции
  • Возвращает масштаб поля

oci_field_scale

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_scale — Возвращает масштаб поля

Описание

oci_field_scale ( resource $statement , mixed $field ) : int

Возвращает масштаб поля под номером field.

Для полей типа FLOAT точность, получаемая с помощью oci_field_precision(), больше нуля, а масштаб равен -127. Если точность поля равна нулю, то тип поля - NUMBER. Иначе же, тип поля может быть описан как NUMBER(precision, scale).

Список параметров

statement

Идентификатор допустимого OCI запроса.

field

Может быть номером поля (нумерация начинается с 1) или именем.

Возвращаемые значения

Возвращает масштаб в виде числа, или FALSE при ошибке.

Примеры

Пример #1 oci_field_scale() Example

<?php

// Создайте таблицу:
//   CREATE TABLE mytab (c1 NUMBER, c2 FLOAT, c3 NUMBER(4), c4 NUMBER(5,3));

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // используйте OCI_DESCRIBE_ONLY, если не получаете данных

$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
    echo oci_field_name($stid, $i) . " "
        . oci_field_precision($stid, $i) . " "
        . oci_field_scale($stid, $i) . "<br>\n";
}

// Выведет:
//   C1    0 -127
//   C2  126 -127
//   C3    4    0
//   C4    5    3

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocicolumnscale(). В PHP 5.0.0 и выше ocicolumnscale() является алиасом oci_field_scale(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Смотрите также

  • oci_field_precision() - Возвращает точность поля
  • oci_field_type() - Возвращает имя типа поля


Возвращает размер поля

  • « oci_field_scale
  • oci_field_type_raw »
  • PHP Manual
  • OCI8 Функции
  • Возвращает размер поля

oci_field_size

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_size — Возвращает размер поля

Описание

oci_field_size ( resource $statement , mixed $field ) : int

Возвращает размер поля field.

Список параметров

statement

Идентификатор допустимого OCI запроса.

field

Может быть номером поля (нумерация начинается с 1) или именем.

Возвращаемые значения

Возвращает размер поля field в байтах, или FALSE при ошибках.

Примеры

Пример #1 Пример использования oci_field_size()

<?php

// Создайте таблицу:
//   CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
//                       clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // // используйте OCI_DESCRIBE_ONLY, если не получаете данных

echo "<table border=\"1\">\n";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Type</th>";
echo "<th>Length</th>";
echo "</tr>\n";

$ncols = oci_num_fields($stid);

for ($i = 1; $i <= $ncols; $i++) {
    $column_name  = oci_field_name($stid, $i);
    $column_type  = oci_field_type($stid, $i);
    $column_size  = oci_field_size($stid, $i);

    echo "<tr>";
    echo "<td>$column_name</td>";
    echo "<td>$column_type</td>";
    echo "<td>$column_size</td>";
    echo "</tr>\n";
}

echo "</table>\n";

// Выведет:
//    Name           Type       Length
//    NUMBER_COL    NUMBER        22
//    VARCHAR2_COL  VARCHAR2       1
//    CLOB_COL      CLOB        4000
//    DATE_COL      DATE           7

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocicolumnsize(). В PHP 5.0.0 и выше ocicolumnsize() является алиасом oci_field_size(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Смотрите также

  • oci_num_fields() - Возвращает количество полей в результате запроса
  • oci_field_name() - Возвращает имя поля из результата запроса


Возвращает исходный Oracle тип поля

  • « oci_field_size
  • oci_field_type »
  • PHP Manual
  • OCI8 Функции
  • Возвращает исходный Oracle тип поля

oci_field_type_raw

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_type_raw — Возвращает исходный Oracle тип поля

Описание

oci_field_type_raw ( resource $statement , mixed $field ) : int

Возвращает тип "SQLT" Oracle поля field.

Если вы хотите получить тип поля, то oci_field_type() подойдет вам больше.

Список параметров

statement

Идентификатор допустимого OCI запроса.

field

Может быть номером поля (нумерация начинается с 1) или именем.

Возвращаемые значения

Возвращает исходный Oracle тип в виде числа, или FALSE при ошибках.

Примеры

Пример #1 Пример использования oci_field_type_raw()

<?php

// Create the table with:
//   CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1), clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'select * from mytab');
oci_execute($stid, OCI_DESCRIBE_ONLY);  // используйте OCI_DESCRIBE_ONLY, если не получаете данных
$n = oci_num_fields($stid);
for ($i = 1; $i <= $n; ++$i) {
    echo oci_field_name($stid, $i) . " is raw type: " . oci_field_type_raw($stid, $i) . "<br>\n";
}

// Выведет:
//    NUMBER_COL is raw type: 2
//    VARCHAR2_COL is raw type: 1
//    CLOB_COL is raw type: 112
//    DATE_COL is raw type: 12

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocicolumntyperaw(). В PHP 5.0.0 и выше ocicolumntyperaw() является алиасом oci_field_type_raw(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.


Возвращает имя типа поля

  • « oci_field_type_raw
  • oci_free_descriptor »
  • PHP Manual
  • OCI8 Функции
  • Возвращает имя типа поля

oci_field_type

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_type — Возвращает имя типа поля

Описание

oci_field_type ( resource $statement , mixed $field ) : mixed

Возвращает имя типа поля.

Список параметров

statement

Допустимый идентификатор OCI-выражения.

field

Может быть задано индексом (начиная с 1) или по имени.

Возвращаемые значения

Возвращает тип поля как строку или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования oci_field_type()

<?php

// Создайте таблицу:
//   CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
//                       clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // используйте OCI_DESCRIBE_ONLY, если не получаете данных

echo "<table border=\"1\">\n";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Type</th>";
echo "<th>Length</th>";
echo "</tr>\n";

$ncols = oci_num_fields($stid);

for ($i = 1; $i <= $ncols; $i++) {
    $column_name  = oci_field_name($stid, $i);
    $column_type  = oci_field_type($stid, $i);
    $column_size  = oci_field_size($stid, $i);

    echo "<tr>";
    echo "<td>$column_name</td>";
    echo "<td>$column_type</td>";
    echo "<td>$column_size</td>";
    echo "</tr>\n";
}

echo "</table>\n";

// Выведет:
//    Name           Type       Length
//    NUMBER_COL    NUMBER        22
//    VARCHAR2_COL  VARCHAR2       1
//    CLOB_COL      CLOB        4000
//    DATE_COL      DATE           7

oci_free_statement($stid);
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
  • oci_free_statement »
  • PHP Manual
  • OCI8 Функции
  • Освобождает дескриптор

oci_free_descriptor

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_free_descriptor — Освобождает дескриптор

Описание

oci_free_descriptor ( resource $descriptor ) : bool

Освобождает дескриптор созданный с помощью oci_new_descriptor().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Эта функция обычно используется как метод OCI-LOB::free.

Смотрите также

  • OCI-LOB::free


Освобождает ресурсы, занимаемые курсором или SQL-выражением

  • « oci_free_descriptor
  • oci_get_implicit_resultset »
  • PHP Manual
  • OCI8 Функции
  • Освобождает ресурсы, занимаемые курсором или SQL-выражением

oci_free_statement

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_free_statement — Освобождает ресурсы, занимаемые курсором или SQL-выражением

Описание

oci_free_statement ( resource $statement ) : bool

Освобождает все ресурсы, занимаемые курсором или SQL-выражением, которое было возвращено функцией oci_parse() или получено от сервера Oracle.

Список параметров

statement

Допустимый идентификатор OCI-выражения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает следующий ресурс дочернего запроса из ресурса родительского запроса, имеющего неявные результирпующие наборы Oracle Database 12c

  • « oci_free_statement
  • oci_internal_debug »
  • PHP Manual
  • OCI8 Функции
  • Возвращает следующий ресурс дочернего запроса из ресурса родительского запроса, имеющего неявные результирпующие наборы Oracle Database 12c

oci_get_implicit_resultset

(PHP 5 >= 5.6.0, PHP 7, PECL OCI8 >= 2.0.0)

oci_get_implicit_resultset — Возвращает следующий ресурс дочернего запроса из ресурса родительского запроса, имеющего неявные результирпующие наборы Oracle Database 12c

Описание

oci_get_implicit_resultset ( resource $statement ) : resource

Используется для выборки последовательных наборов результатов запроса после выполнения хранимого или анонимного блока Oracle PL / SQL, когда этот блок возвращает результаты запроса с помощью PL/SQL функции DBMS_SQL.RETURN_RESULT. Это позволят блокам PL/SQL возвращать результаты запроса.

Дочерний запрос может быть использован с любой извлекающей
функцией OCI8: oci_fetch(), oci_fetch_all(),
oci_fetch_array(), oci_fetch_object(),
oci_fetch_assoc() или oci_fetch_row()

Дочерний запрос наследует родительское значение предвыборки, либо можно указать его явно с помощью oci_set_prefetch().

Список параметров

statement

Корректный идентификатор запроса OCI8, созданный с помощью oci_parse() и запущенный с помощью oci_execute(). Идентификатор запроса может быть, а может и не быть связан с SQL-запросом, который возвращает неявные результирующие наборы (Implicit Result Set).

Возвращаемые значения

Возвращает обработчик запроса для следующего доступного для statement дочернего запроса. Возвращает FALSE если такового нет или все дочерние запросы уже были возвращены предыдущими вызовами oci_get_implicit_resultset().

Примеры

Пример #1 Извлечение неявных результирующих наборов в цикле

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'DECLARE
            c1 SYS_REFCURSOR;
        BEGIN
           OPEN c1 FOR SELECT city, postal_code FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
           OPEN c1 FOR SELECT country_id FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
        END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

while (($stid_c = oci_get_implicit_resultset($stid))) {
    echo "<h2>Новый неявный результирующий набор:</h2>\n";
    echo "<table>\n";
    while (($row = oci_fetch_array($stid_c, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
        echo "<tr>\n";
        foreach ($row as $item) {
            echo "  <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"")."</td>\n";
        }
        echo "</tr>\n";
    }
    echo "</table>\n";
}

// Вывод:
//    Новый неявный результирующий набор:
//     Beijing 190518
//     Bern    3095
//     Bombay  490231
//    New Implicit Result Set:
//     CN
//     CH
//     IN

oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 Извлечение обработчиков дочерних запросов в индивидуальном порядке

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'DECLARE
            c1 SYS_REFCURSOR;
        BEGIN
           OPEN c1 FOR SELECT city, postal_code FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
           OPEN c1 FOR SELECT country_id FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
        END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

$stid_1 = oci_get_implicit_resultset($stid);
$stid_2 = oci_get_implicit_resultset($stid);

$row = oci_fetch_array($stid_1, OCI_ASSOC+OCI_RETURN_NULLS);
var_dump($row);
$row = oci_fetch_array($stid_2, OCI_ASSOC+OCI_RETURN_NULLS);
var_dump($row);
$row = oci_fetch_array($stid_1, OCI_ASSOC+OCI_RETURN_NULLS);
var_dump($row);
$row = oci_fetch_array($stid_2, OCI_ASSOC+OCI_RETURN_NULLS);
var_dump($row);

// Вывод:
//    array(2) {
//      ["CITY"]=>
//      string(7) "Beijing"
//      ["POSTAL_CODE"]=>
//      string(6) "190518"
//    }
//    array(1) {
//      ["COUNTRY_ID"]=>
//      string(2) "CN"
//    }
//    array(2) {
//      ["CITY"]=>
//      string(4) "Bern"
//      ["POSTAL_CODE"]=>
//      string(4) "3095"
//    }
//    array(1) {
//      ["COUNTRY_ID"]=>
//      string(2) "CH"
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Пример #3 Явное указание величины предвыборки

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'DECLARE
            c1 SYS_REFCURSOR;
        BEGIN
           OPEN c1 FOR SELECT city, postal_code FROM locations ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
        END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

$stid_c = oci_get_implicit_resultset($stid);
oci_set_prefetch($stid_c, 200);   // Устанавливаем величину предвыборки до того как начинаем извлекать пезультаты из дочернего запроса
echo "<table>\n";
while (($row = oci_fetch_array($stid_c, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "  <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Пример #4 Пример неявного результирующего набора без использования oci_get_implicit_resultset()

Все результаты всех запросов возвращаются последовательно.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'DECLARE
            c1 SYS_REFCURSOR;
        BEGIN
           OPEN c1 FOR SELECT city, postal_code FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
           OPEN c1 FOR SELECT country_id FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
        END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

// Обратите внимание: oci_fetch_all and oci_fetch() нельзя использовать таким образом
echo "<table>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "  <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

// Вывод:
//    Beijing 190518
//    Bern 3095
//    Bombay 490231
//    CN
//    CH
//    IN

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

Для запросов, возвращающих большое количество рядов, производительность может быть значительно увеличена с помощью увеличения значения опции oci8.default_prefetch или использования oci_set_prefetch().


Включает и выключает внутреннюю отладку

  • « oci_get_implicit_resultset
  • oci_lob_copy »
  • PHP Manual
  • OCI8 Функции
  • Включает и выключает внутреннюю отладку

oci_internal_debug

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_internal_debug — Включает и выключает внутреннюю отладку

Описание

oci_internal_debug ( bool $onoff ) : void

Включает и выключает внутреннюю отладку

Список параметров

onoff

Значение FALSE выключает отладку, а TRUE - включает.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ociinternaldebug(). В PHP 5.0.0 и выше ociinternaldebug() является алиасом oci_internal_debug(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.


Копирует объект LOB

  • « oci_internal_debug
  • oci_lob_is_equal »
  • PHP Manual
  • OCI8 Функции
  • Копирует объект LOB

oci_lob_copy

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_lob_copy — Копирует объект LOB

Описание

oci_lob_copy ( OCI-Lob $lob_to , OCI-Lob $lob_from [, int $length = 0 ] ) : bool

Копирует содержание или часть содержания объекта LOB в другой объект LOB. Содержимое объекта LOB, в который производится копирование, перезаписывается.

Если необходимо скопировать определенную часть объекта, то для этого можно использовать OCI-Lob::seek(), чтобы передвинуть внутренние указатели объектов на нужные позиции.

Список параметров

lob_to

LOB объект назначения.

lob_from

Копируемый объект LOB.

length

Длина участка содержимого для копирования.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Сравнивает два объекта LOB/FILE

  • « oci_lob_copy
  • oci_new_collection »
  • PHP Manual
  • OCI8 Функции
  • Сравнивает два объекта LOB/FILE

oci_lob_is_equal

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_lob_is_equal — Сравнивает два объекта LOB/FILE

Описание

oci_lob_is_equal ( OCI-Lob $lob1 , OCI-Lob $lob2 ) : bool

Сравнивает два объекта LOB/FILE.

Список параметров

lob1

Идентификатор LOB.

lob2

Идентификатор LOB.

Возвращаемые значения

Возвращает TRUE, если объекты идентичны, и FALSE в обратном случае или в случае ошибки.


Создает новый объект коллекции

  • « oci_lob_is_equal
  • oci_new_connect »
  • PHP Manual
  • OCI8 Функции
  • Создает новый объект коллекции

oci_new_collection

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_new_collection — Создает новый объект коллекции

Описание

oci_new_collection ( resource $connection , string $tdo [, string $schema = NULL ] ) : OCI-Collection

Создает новый объект коллекции.

Список параметров

connection

Идентификатор соединения с сервером Oracle, возвращаемый функцией oci_connect() или oci_pconnect().

tdo

Должен быть корректным именем типа (в верхнем регистре).

schema

Должна быть указана схема данных, где создан именованный тип. По умолчанию, указывается имя пользователя в качестве имени схемы.

Возвращаемые значения

Returns a new OCICollection object or FALSE on error.

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocinewcollection(). В PHP 5.0.0 и выше ocinewcollection() является алиасом oci_new_collection(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.


Устанавливает новое соединение с сервером Oracle

  • « oci_new_collection
  • oci_new_cursor »
  • PHP Manual
  • OCI8 Функции
  • Устанавливает новое соединение с сервером Oracle

oci_new_connect

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_new_connect — Устанавливает новое соединение с сервером Oracle

Описание

oci_new_connect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] ) : resource

Создает новое соединение с сервером Oracle и выполняет вход.

В отличие от oci_connect() и oci_pconnect(), функция oci_new_connect() не кэширует соединения и при каждом вызове устанавливает новое соединение. Это полезно, если приложению необходима транзакционная изоляция двух наборов запросов.

Список параметров

username

Имя пользователя Oracle.

password

Пароль пользователя username.

connection_string

Содержит экземпляр Oracle для подключения. Это может быть » Easy Connect string, или Connect Name из файла tnsnames.ora, или имя локального экземпляра Oracle.

Если не указано отдельно, PHP использует переменные окружения, такие как TWO_TASK (на Linux) или LOCAL (на Windows) и ORACLE_SID для определения экземпляра Oracle для соединения.

Для использования метода Easy Connect, PHP должен быть слинкован с клиентскими библиотеками версии Oracle 10g или старше. Easy Connect string для Oracle 10g принимает следующую форму: [//]host_name[:port][/service_name]. Начиная с Oracle 11g синтаксис таков: [//]host_name[:port][/service_name][:server_type][/instance_name]. Названия служб могут быть определены с помощью запуска Oracle утилиты lsnrctl status на сервере базы данных.

Файл tnsnames.ora может находиться в поисковом пути Oracle Net, который включает $ORACLE_HOME/network/admin и /etc. В качестве альтернативного варианта можно установить TNS_ADMIN таким образом, чтобы путь $TNS_ADMIN/tnsnames.ora был читаемым. Убедитесь, что веб-сервер имеет доступ к этому файлу.

character_set

Определяет кодировку, используемую клиентскими библиотеками Oracle. Данная кодировка не обязательно должна совпадать с кодировкой, используемой в самой базе данных. Если она не совпадает, Oracle сделает все возможное для конвертирования данных из- и в данную кодировку. В зависимости от используемых кодировок это может не всегда давать приемлемые результаты. Преобразование также создает некоторые дополнительные временные затраты.

Если кодировка не указана, клиентские библиотеки Oracle будут определять ее из переменной окружения NLS_LANG.

Передача этого параметра может уменьшить время затрачиваемое на соединение.

session_mode

Этот параметр доступен начиная с версии PHP 5 (PECL OCI8 1.1) и принимает следующие значения: OCI_DEFAULT, OCI_SYSOPER и OCI_SYSDBA. Если были указаны OCI_SYSOPER или OCI_SYSDBA, данная функция попытается установить привилегированное соединение, используя внешние данные авторизации. По умолчанию привилегированные соединения отключены. Чтобы их включить, необходимо установить oci8.privileged_connect в On.

В версии PHP 5.3 (PECL OCI8 1.3.4) появилось значение OCI_CRED_EXT. Оно указывает Oracle использовать внешнюю аутентификацию или аутентификацию с помощью операционной системы, что должно быть настроено в базе данных. Флаг OCI_CRED_EXT может быть использован только с именем пользователя "/" и пустым паролем. oci8.privileged_connect может принимать значение On или Off.

OCI_CRED_EXT может использоваться совместно с режимами OCI_SYSOPER и OCI_SYSDBA.

OCI_CRED_EXT не поддерживается в Windows по причинам безопасности.

Возвращаемые значения

Возвращает идентификатор соединения или FALSE в случае ошибки.

Примеры

Приведенный ниже пример иллюстрирует как использовать обособленные соединения.

Пример #1 Пример использованияoci_new_connect()

<?php

// создайте таблицу mytab (mycol number);

function query($name, $c)
{
    echo "Выполнение $name\n";
    $s = oci_parse($c, "select * from mytab");
    oci_execute($s, OCI_NO_AUTO_COMMIT);
    $row = oci_fetch_array($s, OCI_ASSOC);
    if (!$row) {
        echo "Нет данных\n";
    } else {
        do {
            foreach ($row as $item)
                echo $item . " ";
            echo "\n";
        } while (($row = oci_fetch_array($s, OCI_ASSOC)) != false);
    }
}

$c1 = oci_connect("hr", "welcome", "localhost/orcl");
$c2 = oci_new_connect("hr", "welcome", "localhost/orcl");

$s = oci_parse($c1, "insert into mytab values(1234)");
oci_execute($s, OCI_NO_AUTO_COMMIT);

query("основного соединения", $c1);
query("нового соединения", $c2);
oci_commit($c1);
query("нового соединения после commit", $c2);

// Выведет:
//   Выполнение основного соединения
//   1234
//   Выполнение нового соединения
//   Нет данных
//   Выполнение нового соединения после commit
//   1234

?>

Дополнительные примеры можно найти в описании функции oci_connect().

Смотрите также

  • oci_connect() - Устанавливает соединение с базой данных Oracle
  • oci_pconnect() - Устанавливает постоянное соединение с сервером Oracle


Возвращает идентификатор созданного курсора

  • « oci_new_connect
  • oci_new_descriptor »
  • PHP Manual
  • OCI8 Функции
  • Возвращает идентификатор созданного курсора

oci_new_cursor

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_new_cursor — Возвращает идентификатор созданного курсора

Описание

oci_new_cursor ( resource $connection ) : resource

Создает новый курсор для указанного соединения и возвращает его идентификатор.

Список параметров

connection

Идентификатор соединения с сервером Oracle, возвращаемый функцией oci_connect() или oci_pconnect().

Возвращаемые значения

Возвращает указатель на новое выражение или FALSE в случае ошибки.

Примеры

Пример #1 Привязка REF CURSOR в вызове хранимых процедур Oracle

<?php

// Предварительная подготовка:
//   создайте или замените процедуру myproc(myrc out sys_refcursor) как
//   begin
//     open myrc for select first_name from employees;
//   end;

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$curs = oci_new_cursor($conn);
$stid = oci_parse($conn, "begin myproc(:cursbv); end;");
oci_bind_by_name($stid, ":cursbv", $curs, -1, OCI_B_CURSOR);
oci_execute($stid);

oci_execute($curs);  // Выполняет REF CURSOR как обычный идентификатор выражения
while (($row = oci_fetch_array($curs, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo $row['FIRST_NAME'] . "<br />\n";
}

oci_free_statement($stid);
oci_free_statement($curs);
oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocinewcursor(). В PHP 5.0.0 и выше ocinewcursor() является алиасом oci_new_cursor(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.


Инициализирует новый дескриптор объекта LOB или FILE

  • « oci_new_cursor
  • oci_num_fields »
  • PHP Manual
  • OCI8 Функции
  • Инициализирует новый дескриптор объекта LOB или FILE

oci_new_descriptor

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_new_descriptor — Инициализирует новый дескриптор объекта LOB или FILE

Описание

oci_new_descriptor ( resource $connection [, int $type = OCI_DTYPE_LOB ] ) : OCI-Lob

Резервирует ресурсы, необходимые для хранения дескриптора объекта или LOB-локатора.

Список параметров

connection

Идентификатор соединения с сервером Oracle, возвращаемый функцией oci_connect() или oci_pconnect().

type

Допустимые значения параметра type: OCI_DTYPE_FILE, OCI_DTYPE_LOB и OCI_DTYPE_ROWID.

Возвращаемые значения

Возвращает новый LOB или дескриптор FILE в случае успеха или FALSE при ошибке.

Примеры

Пример #1 Пример использования oci_new_descriptor()

<?php
/* Приведенный скрипт разработан для использования с HTML формами.
 * Это подразумевает, что $user, $password, $table, $where, и $commitsize
 * получены из формы. Скрипт удаляет записи с использованием
 * ROWID и закрывает транзакцию после каждого
 * $commitsize записей. (Используйте осторожно, откат изменений невозможен)
 */
$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
    /* Данный скрипт реализует загрузку файлов в LOB-столбцы
     * HTML-форма для скрипта выглядит примерно так:
     * <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 содержит временное имя загруженного файла

     // см. также раздел особенностей загрузки файлов,
     // если необходимо реализовать безопасную загрузку

     $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_commit($conn);
        echo "Blob successfully uploaded\n";
     }else{
        echo "Couldn't upload Blob\n";
     }
     $lob->free();
     oci_free_statement($stmt);
     oci_close($conn);
  }
?>

Пример #2 Пример использования oci_new_descriptor()

<?php
/* Вызов хранимой процедуры PL/SQL, параметрами которой являются объекты CLOB
 * Пример PL/SQL процедуры:
 *
 * 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_bind_by_name() - Прикрепляет переменную PHP к соответствующей метке в SQL-выражении


Возвращает количество полей в результате запроса

  • « oci_new_descriptor
  • oci_num_rows »
  • PHP Manual
  • OCI8 Функции
  • Возвращает количество полей в результате запроса

oci_num_fields

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_num_fields — Возвращает количество полей в результате запроса

Описание

oci_num_fields ( resource $statement ) : int

Получает число столбцов в запросе, заданном в statement.

Список параметров

statement

Идентификатор допустимого OCI запроса.

Возвращаемые значения

Возвращает число затронутых строк в виде integer, либо FALSE при ошибке.

Примеры

Пример #1 Пример использования oci_num_fields()

<?php

// Создате таблицу:
//   CREATE TABLE mytab (id NUMBER, quantity NUMBER);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // используйте OCI_DESCRIBE_ONLY, если не получаете данных

$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
    echo oci_field_name($stid, $i) . " " . oci_field_type($stid, $i) . "<br>\n";
}

// Выведет:
//    ID NUMBER
//    QUANTITY NUMBER

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocinumcols(). В PHP 5.0.0 и выше ocinumcols() является алиасом oci_num_fields(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.


Возвращает количество строк, измененных в процессе выполнения запроса

  • « oci_num_fields
  • oci_parse »
  • PHP Manual
  • OCI8 Функции
  • Возвращает количество строк, измененных в процессе выполнения запроса

oci_num_rows

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_num_rows — Возвращает количество строк, измененных в процессе выполнения запроса

Описание

oci_num_rows ( resource $statement ) : int

Возвращает число строк, затронутых в процессе выполнения запроса.

Список параметров

statement

Идентификатор допустимого OCI запроса.

Возвращаемые значения

Возвращает число затронутых строк в виде integer, либо FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования oci_num_rows()

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "create table emp2 as select * from employees");
oci_execute($stid);
echo oci_num_rows($stid) . " строк вставлено.<br />\n";
oci_free_statement($stid);

$stid = oci_parse($conn, "delete from emp2");
oci_execute($stid, OCI_DEFAULT);
echo oci_num_rows($stid) . " строк удалено.<br />\n";
oci_commit($conn);
oci_free_statement($stid);

$stid = oci_parse($conn, "drop table emp2");
oci_execute($stid);
oci_free_statement($stid);

oci_close($conn);

?>

Примечания

Замечание:

Функция не возвращает количество строк в результате выражения SELECT! Для запросов SELECT oci_num_rows() вернет количество строк, которые были считаны в буфер с помощью функций oci_fetch*().

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocirowcount(). В PHP 5.0.0 и выше ocirowcount() является алиасом oci_num_rows(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.


Подготавливает запрос к выполнению

  • « oci_num_rows
  • oci_password_change »
  • PHP Manual
  • OCI8 Функции
  • Подготавливает запрос к выполнению

oci_parse

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_parse — Подготавливает запрос к выполнению

Описание

oci_parse ( resource $connection , string $sql_text ) : resource

Подготавливает sql_text к выполнению, используя соединение connection и возвращает идентификатор выражения, который может быть далее использован функциямиoci_bind_by_name(),oci_execute() и другими.

Идентификаторы выражений могут быть освобождены функцией oci_free_statement() или установкой переменной в NULL.

Список параметров

connection

Идентификатор соединения Oracle, полученный из функций oci_connect(), oci_pconnect() или oci_new_connect().

sql_text

Запрос SQL или PL/SQL.

SQL-запросы не должны заканчиваться точкой с запятой (";"). PL/SQL-запросы должны оканчиваться точкой с запятой (";").

Возвращаемые значения

Возвращает дескриптор выражения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования oci_parse() с SQL-запросами

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

// Парсинг запроса. Обратите внимание на отсутствие точки запятой в конце SQL-запроса
$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Пример #2 Пример использования oci_parse() с PL/SQL-запросами

<?php

/*
  Перед запуском PHP-скрипта, создайте хранимую процедуру в
  SQL*Plus или SQL Developer:

  CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
  BEGIN
      p2 := p1 * 2;
  END;

*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p1 = 8;

// При парсинге PL/SQL запросов необходимо наличие точки с запятой в конце строки
$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);
oci_bind_by_name($stid, ':p2', $p2, 40);

oci_execute($stid);

print "$p2\n";   // prints 16

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

Эта функция не проверяет синтаксис запроса sql_text. Единственный способ проверить правильность SQL или PL/SQL-запроса sql_text - это выполнить его.

Смотрите также

  • oci_execute() - Выполняет подготовленное выражение
  • oci_free_statement() - Освобождает ресурсы, занимаемые курсором или SQL-выражением


Изменяет пароль пользователя Oracle

  • « oci_parse
  • oci_pconnect »
  • PHP Manual
  • OCI8 Функции
  • Изменяет пароль пользователя Oracle

oci_password_change

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_password_change — Изменяет пароль пользователя Oracle

Описание

oci_password_change ( resource $connection , string $username , string $old_password , string $new_password ) : bool
oci_password_change ( string $dbname , string $username , string $old_password , string $new_password ) : resource

Изменяет пароль пользователя, указанного в username.

Функция oci_password_change() особенно полезна для скриптов PHP командной строки или при использовании непостоянных соединений во всем приложении PHP.

Список параметров

connection

Идентификатор соединения, возвращаемый функцией oci_connect() или oci_pconnect().

username

Имя пользователя Oracle.

old_password

Старый пароль.

new_password

Новый пароль.

dbname

Имя базы данных.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования oci_password_change() с изменением пароля уже подключенного пользователя

<?php

$dbase      = 'localhost/orcl';
$user       = 'cj';
$current_pw = 'welcome';
$new_pw     = 'geelong';

$c = oci_pconnect($user, $current_pw, $dbase);
oci_password_change($c, $user, $current_pw, $new_pw);
echo "Новый пароль : " . $new_pw . "\n";

?>

Пример #2 Пример использования oci_password_change() с подключением и изменением пароля одновременно

<?php

$dbase      = 'localhost/orcl';
$user       = 'cj';
$current_pw = 'welcome';
$new_pw     = 'geelong';

$c = oci_pconnect($user, $current_pw, $dbase);
if (!$c) {
    $m = oci_error();
    if ($m['code'] == 28001) { // "ORA-28001: the password has expired"
        // Подключение и сброс пароля одновременно
        $c = oci_password_change($dbase, $user, $current_pw, $new_pw);
        if ($c) {
            echo "Новый пароль : " . $new_pw . "\n";
        }
    }
}

if (!$c) {  // Ошибка не совпадала с 28001, или не получилось изменить пароль
    $m = oci_error();
    trigger_error('Не удалось подключиться к базе данных: '. $m['message'], E_USER_ERROR);
}

// Использование подключения $c
...

?>

Примечания

Замечание:

Изменение пароля с помощью этой функции или непосредственно в Oracle должно выполняться аккуратно, поскольку PHP-приложение может продолжать использовать в постоянных соединениях данные аутентификации последнего удачного подключения, которые уже устарели. Наилучшим решением может быть перезапуск всех веб-серверов после смены пароля.

Замечание:

При обновлении библиотеки клиента Oracle или базы данных от версии установки до версии 11.2.0.3 и выше функция oci_password_change() может вернуть ошибку "ORA-1017: invalid username/password" (Неверные имя пользователя/пароль), если версии и клиента и сервера обновлены в одно время.

Замечание:

Второй набор параметров функции oci_password_change() доступен начиная с версии OCI8 1.1.

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocipasswordchange(). В PHP 5.0.0 и выше ocipasswordchange() является алиасом oci_password_change() для обратной совместимости, вы можете продолжать использовать это имя, однако это не рекомендуется.


Устанавливает постоянное соединение с сервером Oracle

  • « oci_password_change
  • oci_register_taf_callback »
  • PHP Manual
  • OCI8 Функции
  • Устанавливает постоянное соединение с сервером Oracle

oci_pconnect

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_pconnect — Устанавливает постоянное соединение с сервером Oracle

Описание

oci_pconnect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] ) : resource

Создает постоянное соединение с сервером Oracle и выполняет аутентификацию.

Постоянные соединения кешируются и повторно используются при следующих запросах, в результате снижаются накладные расходы при каждой загрузке страницы; типичное приложение PHP имеет одно постоянное подключение к серверу PHP, реализованное дочерним процессом Apache (или PHP FastCGI/CGI). Для получения подробной информации смотрите раздел Постоянные соединения с БД.

Список параметров

username

Имя пользователя Oracle.

password

Пароль пользователя username.

connection_string

Содержит экземпляр Oracle для подключения. Это может быть » Easy Connect string, или Connect Name из файла tnsnames.ora, или имя локального экземпляра Oracle.

Если не указано отдельно, PHP использует переменные окружения, такие как TWO_TASK (на Linux) или LOCAL (на Windows) и ORACLE_SID для определения экземпляра Oracle для соединения.

Для использования метода Easy Connect, PHP должен быть слинкован с клиентскими библиотеками версии Oracle 10g или старше. Easy Connect string для Oracle 10g принимает следующую форму: [//]host_name[:port][/service_name]. Начиная с Oracle 11g синтаксис таков: [//]host_name[:port][/service_name][:server_type][/instance_name]. Названия служб могут быть определены с помощью запуска Oracle утилиты lsnrctl status на сервере базы данных.

Файл tnsnames.ora может находиться в поисковом пути Oracle Net, который включает $ORACLE_HOME/network/admin и /etc. В качестве альтернативного варианта можно установить TNS_ADMIN таким образом, чтобы путь $TNS_ADMIN/tnsnames.ora был читаемым. Убедитесь, что веб-сервер имеет доступ к этому файлу.

character_set

Определяет кодировку, используемую клиентскими библиотеками Oracle. Данная кодировка не обязательно должна совпадать с кодировкой, используемой в самой базе данных. Если она не совпадает, Oracle сделает все возможное для конвертирования данных из- и в данную кодировку. В зависимости от используемых кодировок это может не всегда давать приемлемые результаты. Преобразование также создает некоторые дополнительные временные затраты.

Если кодировка не указана, клиентские библиотеки Oracle будут определять ее из переменной окружения NLS_LANG.

Передача этого параметра может уменьшить время затрачиваемое на соединение.

session_mode

Этот параметр доступен начиная с версии PHP 5 (PECL OCI8 1.1) и принимает следующие значения: OCI_DEFAULT, OCI_SYSOPER и OCI_SYSDBA. Если были указаны OCI_SYSOPER или OCI_SYSDBA, данная функция попытается установить привилегированное соединение, используя внешние данные авторизации. По умолчанию привилегированные соединения отключены. Чтобы их включить, необходимо установить oci8.privileged_connect в On.

В версии PHP 5.3 (PECL OCI8 1.3.4) появилось значение OCI_CRED_EXT. Оно указывает Oracle использовать внешнюю аутентификацию или аутентификацию с помощью операционной системы, что должно быть настроено в базе данных. Флаг OCI_CRED_EXT может быть использован только с именем пользователя "/" и пустым паролем. oci8.privileged_connect может принимать значение On или Off.

OCI_CRED_EXT может использоваться совместно с режимами OCI_SYSOPER и OCI_SYSDBA.

OCI_CRED_EXT не поддерживается в Windows по причинам безопасности.

Возвращаемые значения

Возвращает идентификатор подключения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Простой пример для oci_pconnect() с использованием упрощенного синтаксиса подключения

<?php

// Подключение к XE сервису (т.е. базе данных) на локальной машине
$conn = oci_pconnect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Дополнительные примеры можно найти в описании функции oci_connect().

Примечания

Замечание: Начиная с версии PHP 5.1.2 и PECL OCI8 1.1, продолжительность и максимальное количество постоянных соединений к серверу Oracle на каждый процесс PHP может быть изменено в следующих директивах: oci8.persistent_timeout, oci8.ping_interval и oci8.max_persistent.

Смотрите также

  • oci_connect() - Устанавливает соединение с базой данных Oracle
  • oci_new_connect() - Устанавливает новое соединение с сервером Oracle


Регистрирует пользовательскую функцию обратного вызова для Oracle Database TAF

  • « oci_pconnect
  • oci_result »
  • PHP Manual
  • OCI8 Функции
  • Регистрирует пользовательскую функцию обратного вызова для Oracle Database TAF

oci_register_taf_callback

(PHP 7.0 >= 7.0.21, PHP 7 >= 7.1.7, PECL OCI8 >= 2.1.7)

oci_register_taf_callback — Регистрирует пользовательскую функцию обратного вызова для Oracle Database TAF

Описание

oci_register_taf_callback ( resource $connection [, mixed $callbackFn ] ) : bool

Регистрирует пользовательскую функцию обратного вызова для соединения connection. Если соединение connection оборвалось из-за проблем с БД или сетью, будет произведено несколько запусков зарегистрированной функции в процессе восстановления. Более подробно читайте OCI8 Transparent Application Failover (TAF) Support .

Каждый новый вызов oci_register_taf_callback() будет затирать предыдущие регистрации.

Для явного удаления регистрации используйте функцию oci_unregister_taf_callback().

Регистрация функции обратного вызова НЕ сохраняется для постоянных соединений, следовательно при каждом новом постоянном соединении ее необходимо перерегистрировать.

Список параметров

connection

Идентификатор соединения Oracle.

callbackFn

Пользовательская функция для регистрации для Oracle TAF. Может быть как строкой с именем функции, так и замыканием (анонимной функцией).

Интерфейс функции следующий:

userCallbackFn ( resource $connection , int $event , int $type ) : int

Описание параметров и примеры смотрите на странице OCI8 Transparent Application Failover (TAF) Support.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • oci_unregister_taf_callback() - Удалить регистрацию пользовательской callback-функции для Oracle Database TAF


Возвращает значение поля из результата запроса

  • « oci_register_taf_callback
  • oci_rollback »
  • PHP Manual
  • OCI8 Функции
  • Возвращает значение поля из результата запроса

oci_result

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_result — Возвращает значение поля из результата запроса

Описание

oci_result ( resource $statement , mixed $field ) : mixed

Возвращает данные поля field текущей строки, возвращаемой функцией oci_fetch().

За подробностями по операции отображения типов данных, осуществляемым расширением OCI8, обратитесь к типам данных, поддерживаемых драйвером

Список параметров

statement

field

Может быть задано номером поля (начиная с 1), либо по имени. Регистр имени поля должен быть таким же, как и у поля, описанного в метаданных Oracle, которое всегда в верхнем регистре для полей, созданных регистронезависимыми.

Возвращаемые значения

Возвращает все значения в виде строки за исключением абстрактных типов (ROWIDs, LOBs и FILEs). Возвращает FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования oci_fetch() с oci_result()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);
oci_execute($stid);

while (oci_fetch($stid)) {
    echo oci_result($stid, 'LOCATION_ID') . " - это ";
    echo oci_result($stid, 'CITY') . "<br>\n";
}

// Выведет:
//   1000 - это Roma
//   1100 - это Venice

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

В версиях 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_result
  • oci_server_version »
  • PHP Manual
  • OCI8 Функции
  • Откатывает транзакции, ожидающие обработки

oci_rollback

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_rollback — Откатывает транзакции, ожидающие обработки

Описание

oci_rollback ( resource $connection ) : bool

Данная функция откатывает все незафиксированные изменения соединения Oracle connection и завершает транзакцию. Она также освобождает все установленные блокировки. Удаляются все Oracle SAVEPOINTS.

Транзакция начинается при первом SQL-запросе, изменяющим данные, который был запущен с помощью функции oci_execute() и флага OCI_NO_AUTO_COMMIT. Последующие изменения данных от других запросов также становятся частью данной транзакции. Изменения, сделанные в транзакции, являются временными до тех пор, пока транзакция не будет зафиксирована или будет произведен ее откат. Другие пользователи базы данных не смогут увидеть изменения до их фиксации.

При вставке или обновлении данных рекомендуется использовать транзакции для сохранения целостности данных и увеличения производительности.

Список параметров

connection

Идентификатор соединения Oracle, полученный из функций oci_connect(), oci_pconnect() или oci_new_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования oci_rollback()

<?php

// Вставка в несколько таблиц, откат изменений в случае ошибки

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, "INSERT INTO mysalary (id, name) VALUES (1, 'Chris')");

// Флаг OCI_NO_AUTO_COMMIT сообщает Oracle не фиксировать запрос INSERT при его поступлении
// Для PHP <= 5.3.1 используйте OCI_DEFAULT, эти два флага эквивалентны
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
    $e = oci_error($stid);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'INSERT INTO myschedule (startday) VALUES (12)');
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
    $e = oci_error($stid);
    oci_rollback($conn);  // откат изменений из обоих таблиц
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

// Фиксация изменений в обоих таблицах
$r = oci_commit($conn);
if (!r) {
    $e = oci_error($conn);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

?>

Пример #2 Пример использования отката до SAVEPOINT

<?php
$stid = oci_parse($conn, 'UPDATE mytab SET id = 1111');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

// Создаем точку сохранения
$stid = oci_parse($conn, 'SAVEPOINT mysavepoint');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

$stid = oci_parse($conn, 'UPDATE mytab SET id = 2222');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

// Явно используем SQL-запрос для отката к точке сохранения
$stid = oci_parse($conn, 'ROLLBACK TO SAVEPOINT mysavepoint');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

oci_commit($conn);  // mytab теперь содержит id равные 1111
?>

Примечания

Замечание:

Транзакции будут автоматически откачены при закрытии соединения или окончании скрипта (в зависимости от того, что случится раньше). Для фиксации транзакции необходимо явно вызвать функцию oci_commit().

Все вызовы oci_execute(), явно или по умолчанию использующие режим OCI_COMMIT_ON_SUCCESS зафиксируют любую предыдущую незафиксированную транзакцию.

Любой DDL-запрос Oracle, такой как CREATE или DROP автоматически фиксирует любую незафиксированную транзакцию.

Смотрите также

  • oci_commit() - Подтверждает транзакцию базы данных
  • oci_execute() - Выполняет подготовленное выражение


Возвращает версию сервера Oracle

  • « oci_rollback
  • oci_set_action »
  • PHP Manual
  • OCI8 Функции
  • Возвращает версию сервера Oracle

oci_server_version

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_server_version — Возвращает версию сервера Oracle

Описание

oci_server_version ( resource $connection ) : string

Возвращает строку с информацией о версии сервера Oracle и доступных опциях

Список параметров

connection

Возвращаемые значения

Возвращает в виде строки информацию о версии или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования oci_server_version()

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
echo "Версия сервера: " . oci_server_version($conn);

// Выведет:
// Версия сервера: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
// With the Partitioning, OLAP, Data Mining and Real Application Testing option

oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ociserverversion(). В PHP 5.0.0 и выше ociserverversion() является алиасом oci_server_version(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Смотрите также

  • oci_client_version() - Возвращает версию клиентской библиотеки


Задает имя для действия

  • « oci_server_version
  • oci_set_call_timeout »
  • PHP Manual
  • OCI8 Функции
  • Задает имя для действия

oci_set_action

(PHP 5 >= 5.3.2, PHP 7, PECL OCI8 >= 1.4.0)

oci_set_action — Задает имя для действия

Описание

oci_set_action ( resource $connection , string $action_name ) : bool

Присваивает имя действию для трассировки Oracle.

Присвоенное имя регистрируется в базе данных во время очередного запроса от PHP, например, когда запускается SQL выражение.

Имя действия может быть извлечено из административных представлений (view) базы данных, таких как V$SESSION. Его можно использовать для трассировки и мониторинга, например, с помощью V$SQLAREA и DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE.

Значение можно устанавливать и через постоянные соединения.

Список параметров

connection

Идентификатор соединения Oracle, возвращаемый oci_connect(), oci_pconnect(), или oci_new_connect().

action_name

Задаваемая пользователем строка до 32 байт.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Установка действия

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Запись действия
oci_set_action($c, 'Friend Lookup');

// Код, осуществляющий запрос к БД, например выборка:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);

?>
// Пока скрипт выполняется, администратор может наблюдать выполнение действий:

sqlplus system/welcome
SQL> select action from v$session;

Примечания

Замечание: Требование к версии Oracle

Эта функция доступна, если PHP слинкован с библиотеками Oracle Database начиная с версии 10g и выше.

Подсказка

Производительность

В старых версиях OCI8 или базы данных Oracle было возможно установить информацию о клиенте с помощью пакета DBMS_APPLICATION_INFO. Для этой цели более эффективно использование функции oci_set_client_info().

Предостережение

Совет по полному сканированию таблицы (roundtrip)

Некоторые, но не все OCI8-функции вызывают полное сканирование таблицы (roundtrip). Полное сканирование таблиц не происходит для тех запросов, в которых включено кеширование результатов в базе данных.

Смотрите также

  • oci_set_module_name() - Задает имя модулю
  • oci_set_client_info() - Задает информацию о клиенте
  • oci_set_client_identifier() - Задает идентификатор клиента
  • oci_set_db_operation() - Задает операцию базы данных


Устанавливает время ожидания в миллисекундах для вызовов базы данных

  • « oci_set_action
  • oci_set_client_identifier »
  • PHP Manual
  • OCI8 Функции
  • Устанавливает время ожидания в миллисекундах для вызовов базы данных

oci_set_call_timeout

(PHP 7 >= 7.2.14, PHP 7.3.1 > 7.3 PECL OCI8 >= 2.2.0)

oci_set_call_timeout — Устанавливает время ожидания в миллисекундах для вызовов базы данных

Описание

oci_set_call_timeout ( resource $connection , int $time_out ) : bool

Устанавливает тайм-аут, ограничивающий максимальное время кругового пути (round-trip) базы данных при использовании этого подключения.

Каждая операция OCI8 может выполнять ноль или более вызовов к клиентской библиотеки Oracle. Затем эти внутренние вызовы могут привести к нулевому или большему количеству обращений к базе данных Oracle. Если какой-либо из этих циклических обходов занимает больше миллисекунд, чем указано в time_out, операция отменяется и приложению возвращается ошибка.

Значение time_out применяется к каждому циклу в отдельности, а не к сумме всех циклов в оба конца. Время, затраченное на обработку в PHP OCI8 до или после завершения каждого циклического пути, не учитывается.

При прерывании вызова Oracle попытается очистить соединение для повторного использования. Данная операция может быть запущена для другого периода time_out. В зависимости от результатов очистки подключение может использоваться повторно.

При использовании постоянных соединений значение тайм-аута сохраняется в запросах PHP.

Функция oci_set_call_timeout() доступна, когда OCI8 использует клиентские библиотеки Oracle 18 (или более поздней версии).

Список параметров

connection

Идентификатор соединения Oracle, возвращаемый oci_connect(), oci_pconnect(), или oci_new_connect().

time_out

Максимальное время в миллисекундах, которое может занять один циклический путь (roundtrip) между PHP и базой данных Oracle

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Установка тайм-аута

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
oci_set_call_timeout($conn, 5000);

?>


Задает идентификатор клиента

  • « oci_set_call_timeout
  • oci_set_client_info »
  • PHP Manual
  • OCI8 Функции
  • Задает идентификатор клиента

oci_set_client_identifier

(PHP 5 >= 5.3.2, PHP 7, PECL OCI8 >= 1.4.0)

oci_set_client_identifier — Задает идентификатор клиента

Описание

oci_set_client_identifier ( resource $connection , string $client_identifier ) : bool

Устанавливает идентификатор клиента, используемый различными компонентами базы данных для идентификации различных пользователей тонких клиентов, которые авторизуются в базе данных как один пользователь.

Идентификатор клиента регистрируется в базе данных во время очередного запроса от PHP, например, когда запускается SQL выражение.

Идентификатор может быть извлечен, например с помощью SELECT SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER') FROM DUAL. Административное представление базы данных, такое как V$SESSION, также содержит это значение. Его можно использовать совместно с DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE для трассировки и аудита.

Значение может сохраняться между запросами страниц, которые используют одно и то же постоянное соединение.

Список параметров

connection

Идентификатор соединения Oracle, возвращаемый oci_connect(), oci_pconnect(), или oci_new_connect().

client_identifier

Задаваемая пользователем строка до 64 байт.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Установка идентификатора клиента для пользователя

<?php

// Найдем логин пользователя
session_start();
$un = my_validate_session($_SESSION['username']);
$c = oci_connect('myschema', 'welcome', 'localhost/XE');

// Сообщим его базе данных
oci_set_client_identifier($c, $un);

// Следующий запрос к БД заодно установит идентификатор
$s = oci_parse($c, 'select mydata from mytable');
oci_execute($s);

// ...

?>

Примечания

Предостережение

Совет по полному сканированию таблицы (roundtrip)

Некоторые, но не все OCI8-функции вызывают полное сканирование таблицы (roundtrip). Полное сканирование таблиц не происходит для тех запросов, в которых включено кеширование результатов в базе данных.

Смотрите также

  • oci_set_module_name() - Задает имя модулю
  • oci_set_action() - Задает имя для действия
  • oci_set_client_info() - Задает информацию о клиенте
  • oci_set_db_operation() - Задает операцию базы данных


Задает информацию о клиенте

  • « oci_set_client_identifier
  • oci_set_db_operation »
  • PHP Manual
  • OCI8 Функции
  • Задает информацию о клиенте

oci_set_client_info

(PHP 5 >= 5.3.2, PHP 7, PECL OCI8 >= 1.4.0)

oci_set_client_info — Задает информацию о клиенте

Описание

oci_set_client_info ( resource $connection , string $client_info ) : bool

Задет информацию о клиенте для трассировки Oracle.

Информация о клиенте регистрируется в базе данных во время очередного запроса от PHP, например, когда запускается SQL выражение.

Клиентская информация может быть извлечена из административных представлений (view) базы данных, таких как V$SESSION.

Значение можно устанавливать и через постоянные соединения.

Список параметров

connection

Идентификатор соединения Oracle, возвращаемый oci_connect(), oci_pconnect(), или oci_new_connect().

client_info

Задаваемая пользователем строка до 64 байт.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Установка клиентской информации

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Запись информации о клиенте
oci_set_client_info($c, 'My Application Version 2');

// Код, осуществляющий запрос к БД, например выборка:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);

?>
// Пока скрипт выполняется, администратор может увидеть клиентскую
// информацию:

sqlplus system/welcome
SQL> select client_info from v$session;

Примечания

Замечание: Требование к версии Oracle

Эта функция доступна, если PHP слинкован с библиотеками Oracle Database начиная с версии 10g и выше.

Подсказка

Производительность

В старых версиях OCI8 или базы данных Oracle было возможно установить информацию о клиенте с помощью пакета DBMS_APPLICATION_INFO. Для этой цели более эффективно использование функции oci_set_client_info().

Предостережение

Совет по полному сканированию таблицы (roundtrip)

Некоторые, но не все OCI8-функции вызывают полное сканирование таблицы (roundtrip). Полное сканирование таблиц не происходит для тех запросов, в которых включено кеширование результатов в базе данных.

Смотрите также

  • oci_set_module_name() - Задает имя модулю
  • oci_set_action() - Задает имя для действия
  • oci_set_client_identifier() - Задает идентификатор клиента
  • oci_set_db_operation() - Задает операцию базы данных


Задает операцию базы данных

  • « oci_set_client_info
  • oci_set_edition »
  • PHP Manual
  • OCI8 Функции
  • Задает операцию базы данных

oci_set_db_operation

(PHP 7 >= 7.2.14, PHP 7.3.1 > 7.3 PECL OCI8 >= 2.2.0)

oci_set_db_operation — Задает операцию базы данных

Описание

oci_set_db_operation ( resource $connection , string $dbop ) : bool

Устанавливает DBOP для трассировки Oracle.

Имя операции базы данных регистрируется в базе данных при следующем "циклическом пути" (round-trip) из PHP в базу данных, как правило, при выполнении выражения SQL.

Операция базы данных может впоследствии запрашиваться из представлений администрирования базы данных, таких как V$SQL_MONITOR.

Функция oci_set_db_operation() доступна, если oci8 использует клиентские библиотеки Oracle версии 12 (или новее) и базу данных Oracle 12 (или новее).

Список параметров

connection

Идентификатор соединения Oracle, возвращаемый oci_connect(), oci_pconnect(), или oci_new_connect().

dbop

Пользовательская строка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Установка DBOP

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Записать операцию
oci_set_db_operation($c, 'main query');

// Код, вызывающий циклический путь, например запрос:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);

?>
// Во время выполнения скрипта администратор может видеть выполняемые операции
// с базой данных.

sqlplus system/welcome
SQL> select dbop_name from v$sql_monitor;

Примечания

Предостережение

Совет по полному сканированию таблицы (roundtrip)

Некоторые, но не все OCI8-функции вызывают полное сканирование таблицы (roundtrip). Полное сканирование таблиц не происходит для тех запросов, в которых включено кеширование результатов в базе данных.

Смотрите также

  • oci_set_action() - Задает имя для действия
  • oci_set_module_name() - Задает имя модулю
  • oci_set_client_info() - Задает информацию о клиенте
  • oci_set_client_identifier() - Задает идентификатор клиента


Задает выпуск (edition) базы данных

  • « oci_set_db_operation
  • oci_set_module_name »
  • PHP Manual
  • OCI8 Функции
  • Задает выпуск (edition) базы данных

oci_set_edition

(PHP 5 >= 5.3.2, PHP 7, PECL OCI8 >= 1.4.0)

oci_set_edition — Задает выпуск (edition) базы данных

Описание

oci_set_edition ( string $edition ) : bool

Задает "серию" объектов для использования на нижестоящих соединениях.

Подобные "выпуски" Oracle позволяют запускать приложения, использующие одинаковые схемы и имена объектов в конкурентном режиме. Это может быть полезным при модернизации работающих систем без их отключения.

Вызывайте oci_set_edition() до вызова
oci_connect(), oci_pconnect()
или oci_new_connect().

Если заданный выпуск является недопустимым в базе данных, соединение не будет устанавливаться, даже если функция oci_set_edition() успешно выполнится.

При использовании постоянных соединений, если соединение с данным значением серии уже существует, оно будет использовано повторно. В остальных случаях будет создаваться новое соединение.

Список параметров

edition

Имя "выпуска" базы данных Oracle, ранее созданное SQL командой "CREATE EDITION".

Примечания

Замечание: Требование к версии Oracle

Эта функция доступна, начиная с Oracle 11gR2.

Предостережение

Постоянные соединения

Во избежание несовместимости и случайных ошибок не используйте команду "ALTER SESSION SET EDITION" для изменения "серии" на постоянных соединениях.

Предостережение

DRCP объединение соединений в пул

Во избежание несовместимости и случайных ошибок при использовании серий и DRCP в Oracle 11.2.0.1 придерживайтесь однозначного соответствия между oci8.connection_class и именем "выпуска", которым пользуются приложения. Каждый сервер, входящий в состав пула с заданным классом соединений, должен использоваться только с одним "выпуском". Это ограничение устранено в версии Oracle 11.2.0.2.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Два скрипта могут использовать различные версии функции myfunc() одновременно

<?php

// Файл 1

echo "Версия приложения 1\n";

oci_set_edition('ORA$BASE');
$c = oci_connect('hr', 'welcome', 'localhost/XE');

$s = oci_parse($c, "begin :r := myfunc(); end;");
oci_bind_by_name($s, ":r", $r, 20);
oci_execute($s);
echo "Результат: $r\n";

?>
<?php

// Файл 2

echo "Версия приложения 2\n";

oci_set_edition('E1');
$c = oci_connect('hr', 'welcome', 'localhost/XE');

$s = oci_parse($c, "begin :r := myfunc(); end;");
oci_bind_by_name($s, ":r", $r, 20);
oci_execute($s);
echo "Результат: $r\n";

?>


Задает имя модулю

  • « oci_set_edition
  • oci_set_prefetch »
  • PHP Manual
  • OCI8 Функции
  • Задает имя модулю

oci_set_module_name

(PHP 5 >= 5.3.2, PHP 7, PECL OCI8 >= 1.4.0)

oci_set_module_name — Задает имя модулю

Описание

oci_set_module_name ( resource $connection , string $module_name ) : bool

Задает имя модуля для трассировки Oracle.

Имя модуля регистрируется в базе данных во время очередного запроса от PHP, например, когда запускается SQL выражение.

Имя может быть извлечено из административных представлений (view) базы данных, таких как V$SESSION. Оно может использоваться для трассировки и мониторинга также, как V$SQLAREA and DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE.

Значение можно устанавливать и через постоянные соединения.

Список параметров

connection

Идентификатор соединения Oracle, возвращаемый oci_connect(), oci_pconnect(), или oci_new_connect().

module_name

Задаваемая пользователем строка string длиной до 48 байт.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Требование к версии Oracle

Эта функция доступна, если PHP слинкован с библиотеками Oracle Database начиная с версии 10g и выше.

Подсказка

Производительность

В старых версиях OCI8 или базы данных Oracle было возможно установить информацию о клиенте с помощью пакета DBMS_APPLICATION_INFO. Для этой цели более эффективно использование функции oci_set_client_info().

Предостережение

Совет по полному сканированию таблицы (roundtrip)

Некоторые, но не все OCI8-функции вызывают полное сканирование таблицы (roundtrip). Полное сканирование таблиц не происходит для тех запросов, в которых включено кеширование результатов в базе данных.

Примеры

Пример #1 Установка имени модуля

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Запись модуля
oci_set_module_name($c, 'Home Page');

// Код, осуществляющий запрос к БД, например выборка:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);
?>
// Пока скрипт выполняется, администратор может увидеть, какие модули
// используются:

sqlplus system/welcome
SQL> select module from v$session;

Смотрите также

  • oci_set_action() - Задает имя для действия
  • oci_set_client_info() - Задает информацию о клиенте
  • oci_set_client_identifier() - Задает идентификатор клиента
  • oci_set_db_operation() - Задает операцию базы данных


Устанавливает количество строк, которые будут автоматически выбраны в буфер

  • « oci_set_module_name
  • oci_statement_type »
  • PHP Manual
  • OCI8 Функции
  • Устанавливает количество строк, которые будут автоматически выбраны в буфер

oci_set_prefetch

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_set_prefetch — Устанавливает количество строк, которые будут автоматически выбраны в буфер

Описание

oci_set_prefetch ( resource $statement , int $rows ) : bool

Устанавливает количество строк, которые будут выбраны в буфер клиентскими библиотеками Oracle сразу после удачного вызова oci_execute() и для каждого последующего внутреннего запроса данных к базе. Производительность может быть значительно увеличена для запросов, возвращающих большое количество строк, с помощью установки значения предварительной выборки больше значения по умолчанию oci8.default_prefetch.

Предварительная выборка - это эффективный механизм Oracle, позволяющий возвращать больше одной строки результата из базы данных за каждый сетевой запрос. Это дает более рациональное использование сети и процессора. Буферизация строк происходит внутри OCI8, поэтому поведение функций выборки OCI8 никак не зависит от размера предварительной выборки. Например, oci_fetch_row() всегда возвращает одну строку. Буфер предварительной выборки резервируется отдельно на каждый запрос и не используется второй раз в повторно запущенных запросах или в других соединениях.

Перед вызовом oci_execute() вызовите oci_set_prefetch().

Смысл настройки размера предварительной выборки состоит в подборе удобного значения для передачи в сети и обработки в базе данных. Для запросов, возвращающих очень большое количество строк, общая производительность системы может быть лучше, если строки будут возвращаться в несколько приемов (т.е. установить размер предварительной выборки меньше количества строк). Это позволит базе данных обрабатывать запросы других пользователей в течение обработки PHP-скриптом текущего результата запроса.

Предварительная выборка запросов появилась в Oracle 8i. Предварительная выборка REF CURSOR появилась в Oracle 11gR2 и может быть применена в случае, если PHP слинкован с клиентскими библиотеками Oracle 11gR2 и старше. Предварительная выборка вложенных курсоров была добавлена в Oracle 11gR2 и требует наличия версии 11gR2 и старше как для клиентских библиотек Oracle, так и для используемой базы данных.

Предварительная выборка не поддерживается, если запросы содержат LONG или LOB столбцы. Значение предварительной выборки игнорируется и, во всех ситуациях не поддерживающих предварительную выборку, будет использована построчная выборка.

При использовании Oracle Database 12c, предварительная выборка заданная PHP может быть изменена конфигурационным файлом oraaccess.xml клиента Oracle. Обратитесь к документации Oracle за дополнительной информацией.

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

rows

Количество строк предварительной выборки, >= 0

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.2 (PECL OCI8 1.4) | До этой версии rows должен был быть >= 1.
5.3.0 (PECL OCI8 1.3.4) | До этой версии предварительная выборка была ограничена к меньшему из значений rows строк и 1024 * rows байт. Теперь ограничение по размеру байт снято.

Примеры

Пример #1 Смена значения предварительной выборки по умолчанию для запроса

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT * FROM myverybigtable');
oci_set_prefetch($stid, 300);  // Устанавливаем перед вызовом oci_execute()
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 Смена значения предварительной выборки по умолчанию для выборки REF CURSOR

<?php
/*
  Создайте хранимую процедуру PL/SQL следующим образом:

  CREATE OR REPLACE PROCEDURE myproc(p1 OUT SYS_REFCURSOR) AS
  BEGIN
    OPEN p1 FOR SELECT * FROM all_objects WHERE ROWNUM < 5000;
  END;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'BEGIN myproc(:rc); END;');
$refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

// Меняем размер предварительной выборки перед запуском курсора.
// Предварительная выборка REF CURSOR работает в случае линковки PHP
// с клиентскими библиотеками Oracle 11gR2 и старше
oci_set_prefetch($refcur, 200);
oci_execute($refcur);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($refcur, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($refcur);
oci_free_statement($stid);
oci_close($conn);

?>

Если PHP OCI8 производит выборку из REF CURSOR, а затем передает REF CURSOR обратно в другую PL/SQL-процедуру для дальнейшей обработки, необходимо установить размер предварительной выборки REF CURSOR в 0, чтобы избежать "потери" рядов из результата. Значение предварительной выборки - это количество "лишних" рядов, полученных каждым внутренним запросом OCI8 к базе данных, поэтому установка его в 0 означает выборку только одного ряда за один раз.

Пример #3 Установка значения предварительной выборки при передаче REF CURSOR обратно в Oracle

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/orcl');

// получение REF CURSOR
$stid = oci_parse($conn, 'BEGIN myproc(:rc_out); END;');
$refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc_out', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

// Отображаем два ряда, но больше не предвыбираем других рядов, иначе
// эти ряды не будут переданы обратно в  myproc_use_rc().
// Нулевое значение предварительной выборки было разрешено в версии PHP 5.3.2 и PECL OCI8 1.4
oci_set_prefetch($refcur, 0);
oci_execute($refcur);
$row = oci_fetch_array($refcur);
var_dump($row);
$row = oci_fetch_array($refcur);
var_dump($row);

// передаем REF CURSOR в myproc_use_rc() для дальнейшей обработки результата
$stid = oci_parse($conn, 'begin myproc_use_rc(:rc_in); end;');
oci_bind_by_name($stid, ':rc_in', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

?>

Смотрите также

  • Директива oci8.default_prefetch


Возвращает тип выражения

  • « oci_set_prefetch
  • oci_unregister_taf_callback »
  • PHP Manual
  • OCI8 Функции
  • Возвращает тип выражения

oci_statement_type

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_statement_type — Возвращает тип выражения

Описание

oci_statement_type ( resource $statement ) : string

Возвращает выражение, соответствующее одному из типов параметра statement OCI8.

Список параметров

statement

Допустимый идентификатор оператора OCI8, возвращаемый oci_parse().

Возвращаемые значения

Возвращает тип параметра statement, который может быть одним из нижеследующих значений:

Тип оператора
Возвращаемое значение | Примечание
ALTER |
BEGIN |
CALL | Представлено в PHP 5.2.1 (PECL OCI8 1.2.3)
CREATE |
DECLARE |
DELETE |
DROP |
INSERT |
SELECT |
UPDATE |
UNKNOWN |

Возвращает FALSE в случае ошибки.

Примеры

Пример #1 Пример использования oci_statement_type()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'DELETE FROM departments WHERE department_id = 130;');
if (oci_statement_type($stid) == "DELETE") {
    trigger_error('Вы не имеете прав для удаления записей из таблицы', E_USER_ERROR);
}
else {
    oci_execute($stid);  // удалить запись
}

oci_free_statement($stid);
oci_close($conn);

?>


Удалить регистрацию пользовательской callback-функции для Oracle Database TAF

  • « oci_statement_type
  • OCI-Collection »
  • PHP Manual
  • OCI8 Функции
  • Удалить регистрацию пользовательской callback-функции для Oracle Database TAF

oci_unregister_taf_callback

(PHP 7.0 >= 7.0.23, PHP 7 >= 7.1.9, PHP 7.2, PECL OCI8 >= 2.1.7)

oci_unregister_taf_callback — Удалить регистрацию пользовательской callback-функции для Oracle Database TAF

Описание

oci_unregister_taf_callback ( resource $connection ) : bool

Удаляет регистрацию пользовательской callback-функции, зарегистрированную для соединения connection с помощью oci_register_taf_callback(). Более подробно читайте OCI8 Transparent Application Failover (TAF) Support .

Список параметров

connection

Идентификатор соединения Oracle.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • oci_register_taf_callback() - Регистрирует пользовательскую функцию обратного вызова для Oracle Database TAF


Класс OCI-Collection

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

Введение

Функционал коллекций OCI8.

Обзор классов

OCI-Collection {
/* Методы */
append ( mixed $value ) : bool
assign ( OCI-Collection $from ) : bool
assignElem ( int $index , mixed $value ) : bool
free ( void ) : bool
getElem ( int $index ) : mixed
max ( void ) : int
size ( void ) : int
trim ( int $num ) : bool
}

Содержание

  • 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-Collection
  • OCI-Collection::assign »
  • PHP Manual
  • OCI-Collection
  • Добавляет элемент в коллекцию

OCI-Collection::append

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::append — Добавляет элемент в коллекцию

Описание

OCI-Collection::append ( mixed $value ) : bool

Добавляет элемент в конец коллекции.

Список параметров

value

Значение, добавляемое в конец коллекции. Может быть строкой или числом.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Collection::assign


Присваивает коллекции значение другой, уже существующей коллекции

  • « OCI-Collection::append
  • OCI-Collection::assignElem »
  • PHP Manual
  • OCI-Collection
  • Присваивает коллекции значение другой, уже существующей коллекции

OCI-Collection::assign

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::assign — Присваивает коллекции значение другой, уже существующей коллекции

Описание

OCI-Collection::assign ( OCI-Collection $from ) : bool

Присваивает коллекции значение другой, ранее созданной коллекции. Обе коллекции должны быть созданы ранее с помощью oci_new_collection().

Список параметров

from

Экземпляр OCI-Collection.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Collection::append


Присваивает значение элементу коллекции

  • « OCI-Collection::assign
  • OCI-Collection::free »
  • PHP Manual
  • OCI-Collection
  • Присваивает значение элементу коллекции

OCI-Collection::assignElem

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::assignElem — Присваивает значение элементу коллекции

Описание

OCI-Collection::assignElem ( int $index , mixed $value ) : bool

Присваивает значение элементу коллекции с индексом index.

Список параметров

index

Индекс элемента. Первый индекс - ноль.

value

Может быть строкой или числом.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Collection::getElem


Освобождает ресурсы, занимаемые объектом коллекции

  • « OCI-Collection::assignElem
  • OCI-Collection::getElem »
  • PHP Manual
  • OCI-Collection
  • Освобождает ресурсы, занимаемые объектом коллекции

OCI-Collection::free

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::free — Освобождает ресурсы, занимаемые объектом коллекции

Описание

OCI-Collection::free ( void ) : bool

Освобождает ресурсы, занимаемые объектом коллекции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • oci_new_collection


Возвращает значение элемента

  • « OCI-Collection::free
  • OCI-Collection::max »
  • PHP Manual
  • OCI-Collection
  • Возвращает значение элемента

OCI-Collection::getElem

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::getElem — Возвращает значение элемента

Описание

OCI-Collection::getElem ( int $index ) : mixed

Возвращает значение элемента с индексом index (начиная с нуля).

Список параметров

index

Индекс элемента. Первый индекс - ноль.

Возвращаемые значения

Djpdhfoftn FALSE, если такого элемента нет; NULL, если элемент равен NULL; строку, если элемент относится к строковому столбцу, и число, если элемент является числовым полем.

Смотрите также

  • OCI-Collection::assignElem


Возвращает максимальное количество элементов в коллекции

  • « OCI-Collection::getElem
  • OCI-Collection::size »
  • PHP Manual
  • OCI-Collection
  • Возвращает максимальное количество элементов в коллекции

OCI-Collection::max

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::max — Возвращает максимальное количество элементов в коллекции

Описание

OCI-Collection::max ( void ) : int

Возвращает максимальное количество элементов в коллекции.

Возвращаемые значения

Возвращает максимальное количество как целое число или FALSE в случае возникновения ошибки.

Если будет возвращен 0, то количество элементов не ограничено.

Смотрите также

  • OCI-Collection::size


Возвращает количество элементов в коллекции

  • « OCI-Collection::max
  • OCI-Collection::trim »
  • PHP Manual
  • OCI-Collection
  • Возвращает количество элементов в коллекции

OCI-Collection::size

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::size — Возвращает количество элементов в коллекции

Описание

OCI-Collection::size ( void ) : int

Возвращает количество элементов в коллекции.

Возвращаемые значения

Возвращает количество элементов в коллекции или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Collection::max


Отсекает элементы с конца коллекции

  • « OCI-Collection::size
  • OCI-Lob »
  • PHP Manual
  • OCI-Collection
  • Отсекает элементы с конца коллекции

OCI-Collection::trim

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::trim — Отсекает элементы с конца коллекции

Описание

OCI-Collection::trim ( int $num ) : bool

Отсекает num элементов с конца коллекции.

Список параметров

num

Количество элементов для отсечения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Collection::size


Класс OCI-Lob

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

Введение

Функциональность OCI8 LOB для больших бинарных (BLOB) и символьных (CLOB) объектов.

Обзор классов

OCI-Lob {
/* Методы */
append ( OCI-Lob $lob_from ) : bool
close ( void ) : bool
eof ( void ) : bool
erase ([ int $offset [, int $length ]] ) : int
export ( string $filename [, int $start [, int $length ]] ) : bool
flush ([ int $flag ] ) : bool
free ( void ) : bool
getBuffering ( void ) : bool
import ( string $filename ) : bool
load ( void ) : string
read ( int $length ) : string
rewind ( void ) : bool
save ( string $data [, int $offset ] ) : bool
seek ( int $offset [, int $whence = OCI_SEEK_SET ] ) : bool
setBuffering ( bool $on_off ) : bool
size ( void ) : int
tell ( void ) : int
truncate ([ int $length = 0 ] ) : bool
write ( string $data [, int $length ] ) : int
writeTemporary ( string $data [, int $lob_type = OCI_TEMP_CLOB ] ) : bool
}

Содержание

  • OCI-Lob::append — Добавляет данные из объекта LOB в конец другого объекта
  • OCI-Lob::close — Закрывает дескриптор объекта LOB
  • OCI-Lob::eof — Проверяет, находится ли указатель LOB на конце объекта
  • OCI-Lob::erase — Очищает указанную часть объекта LOB
  • OCI-Lob::export — Сохраняет содержимое объекта LOB в файл
  • OCI-Lob::flush — Очищает и записывает буфер объекта LOB на сервер
  • OCI-Lob::free — Освобождает ресурсы, связанные с дескриптором LOB
  • OCI-Lob::getBuffering — Возвращает текущее состояние буферизации большого объекта (LOB)
  • OCI-Lob::import — Записывает содержимое файла в объект LOB
  • OCI-Lob::load — Возвращает содержимое объекта LOB
  • OCI-Lob::read — Возвращает часть объекта LOB
  • OCI-Lob::rewind — Переводит указатель объекта в начало большого объекта
  • OCI-Lob::save — Сохраняет данные в LOB
  • OCI-Lob::saveFile — Псевдоним OCI-Lob::import
  • OCI-Lob::seek — Устанавливает позицию внутреннего указателя LOB
  • OCI-Lob::setBuffering — Изменяет текущее состояние буферизации большого объекта (LOB)
  • OCI-Lob::size — Возвращает размер объекта LOB
  • OCI-Lob::tell — Возвращает текущую позицию внутреннего указателя объекта LOB
  • OCI-Lob::truncate — Обрезает большой объект
  • OCI-Lob::write — Записывает данные в объект LOB
  • OCI-Lob::writeTemporary — Записывает временный большой объект (LOB)
  • OCI-Lob::writeToFile — Псевдоним OCI-Lob::export


Добавляет данные из объекта LOB в конец другого объекта

  • « OCI-Lob
  • OCI-Lob::close »
  • PHP Manual
  • OCI-Lob
  • Добавляет данные из объекта LOB в конец другого объекта

OCI-Lob::append

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::append — Добавляет данные из объекта LOB в конец другого объекта

Описание

OCI-Lob::append ( OCI-Lob $lob_from ) : bool

Добавляет в конец объекта LOB данные из другого объекта LOB.

Запись в LOB с помощью этого метода вызовет ошибку, если у объекта ранее был включен режим буферизации. Поэтому вы должны выключить буферизацию перед ее применением. Перед выключением буферизации вам может понадобиться метод OCI-Lob::flush для очистки буфера.

Список параметров

lob_from

Копируемый LOB.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::flush
  • OCI-Lob::setBuffering
  • OCI-Lob::getBuffering


Закрывает дескриптор объекта LOB

  • « OCI-Lob::append
  • OCI-Lob::eof »
  • PHP Manual
  • OCI-Lob
  • Закрывает дескриптор объекта LOB

OCI-Lob::close

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::close — Закрывает дескриптор объекта LOB

Описание

OCI-Lob::close ( void ) : bool

Закрывает дескриптор объекта LOB или FILE. Функцию следует использовать только вместе с OCI-Lob::writeTemporary.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::writeTemporary


Проверяет, находится ли указатель LOB на конце объекта

  • « OCI-Lob::close
  • OCI-Lob::erase »
  • PHP Manual
  • OCI-Lob
  • Проверяет, находится ли указатель LOB на конце объекта

OCI-Lob::eof

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::eof — Проверяет, находится ли указатель LOB на конце объекта

Описание

OCI-Lob::eof ( void ) : bool

Сообщает о достижении внутренним указателем конца объекта LOB.

Возвращаемые значения

Возвращает TRUE, если внутренний указатель объекта находится на конце LOB. Иначе возвращает FALSE.

Примечания

Замечание:

Функция возвращает Oracle ошибку в случае, если OCI-Lob::setBuffering включена для LOB.

Смотрите также

  • OCI-Lob::size


Очищает указанную часть объекта LOB

  • « OCI-Lob::eof
  • OCI-Lob::export »
  • PHP Manual
  • OCI-Lob
  • Очищает указанную часть объекта LOB

OCI-Lob::erase

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::erase — Очищает указанную часть объекта LOB

Описание

OCI-Lob::erase ([ int $offset [, int $length ]] ) : int

Очищает конкретную часть объекта LOB, начиная с позиции, определенной в параметре offset. По умолчанию LOB очищается полностью.

Для объектов типа BLOB очищение означает заполнение нулевыми байтами. Объекты типа CLOB заполняются пробелами.

Список параметров

offset

length

Возвращаемые значения

Возвращает число очищенных символов/байт или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::truncate


Сохраняет содержимое объекта LOB в файл

  • « OCI-Lob::erase
  • OCI-Lob::flush »
  • PHP Manual
  • OCI-Lob
  • Сохраняет содержимое объекта LOB в файл

OCI-Lob::export

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::export — Сохраняет содержимое объекта LOB в файл

Описание

OCI-Lob::export ( string $filename [, int $start [, int $length ]] ) : bool

Сохраняет содержимое объекта LOB в файл.

Список параметров

filename

Путь к файлу.

start

Начальная позиция экспорта.

length

Длина экспортируемой части LOB.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::import


Очищает и записывает буфер объекта LOB на сервер

  • « OCI-Lob::export
  • OCI-Lob::free »
  • PHP Manual
  • OCI-Lob
  • Очищает и записывает буфер объекта LOB на сервер

OCI-Lob::flush

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::flush — Очищает и записывает буфер объекта LOB на сервер

Описание

OCI-Lob::flush ([ int $flag ] ) : bool

OCI-Lob::flush() непосредственно записывает данные на сервер.

Список параметров

flag

По умолчанию ресурсы не освобождаются, но используя флаг OCI_LOB_BUFFER_FREE вы можете сделать это принудительно. Однако, вы должны быть точно уверены в том, что вы делаете, так как следующее чтение из объекта будет более ресурсоемко, чем предыдущие из-за необходимости обращения к серверу. Поэтому использовать флаг OCI_LOB_BUFFER_FREE рекомендуется только после того, как работа с объектом уже закончена.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Возвращает FALSE в случае возникновения ошибки или если буферизация объекта не была включена.

Смотрите также

  • OCI-Lob::getBuffering
  • OCI-Lob::setBuffering


Освобождает ресурсы, связанные с дескриптором LOB

  • « OCI-Lob::flush
  • OCI-Lob::getBuffering »
  • PHP Manual
  • OCI-Lob
  • Освобождает ресурсы, связанные с дескриптором LOB

OCI-Lob::free

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::free — Освобождает ресурсы, связанные с дескриптором LOB

Описание

OCI-Lob::free ( void ) : bool

Освобождает ресурсы, связанные с дескриптором LOB, изначально выделенные функцией oci_new_descriptor().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает текущее состояние буферизации большого объекта (LOB)

  • « OCI-Lob::free
  • OCI-Lob::import »
  • PHP Manual
  • OCI-Lob
  • Возвращает текущее состояние буферизации большого объекта (LOB)

OCI-Lob::getBuffering

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::getBuffering — Возвращает текущее состояние буферизации большого объекта (LOB)

Описание

OCI-Lob::getBuffering ( void ) : bool

Сообщает, включена ли буферизация для большого объекта (LOB).

Возвращаемые значения

Возвращает FALSE, если буферизация отключена, и TRUE, если включена.

Смотрите также

  • OCI-Lob::setBuffering


Записывает содержимое файла в объект LOB

  • « OCI-Lob::getBuffering
  • OCI-Lob::load »
  • PHP Manual
  • OCI-Lob
  • Записывает содержимое файла в объект LOB

OCI-Lob::import

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::import — Записывает содержимое файла в объект LOB

Описание

OCI-Lob::import ( string $filename ) : bool

Записывает содержимое файла filename в текущую позицию объекта LOB.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::export
  • OCI-Lob::write


Возвращает содержимое объекта LOB

  • « OCI-Lob::import
  • OCI-Lob::read »
  • PHP Manual
  • OCI-Lob
  • Возвращает содержимое объекта LOB

OCI-Lob::load

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::load — Возвращает содержимое объекта LOB

Описание

OCI-Lob::load ( void ) : string

Возвращает содержимое объекта LOB. Так как выполнение скрипта прекратится при превышении memory_limit, необходимо убедиться, что LOB не превышает этого ограничения. Поэтому, в большинстве случаев этот метод рекомендуется заменять на OCI-Lob::read.

Возвращаемые значения

Возвращает содержимое объекта или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::read


Возвращает часть объекта LOB

  • « OCI-Lob::load
  • OCI-Lob::rewind »
  • PHP Manual
  • OCI-Lob
  • Возвращает часть объекта LOB

OCI-Lob::read

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::read — Возвращает часть объекта LOB

Описание

OCI-Lob::read ( int $length ) : string

Читает и возвращает length байт данных с текущей позиции объекта LOB.

Чтение останавливается, если длина прочтенных данных равна length или если достигнут конец объекта. Внутренний указатель перемещается на столько байт, сколько было прочитано.

Список параметров

length

Длина считываемых данных, в байтах. Большие значения округляются вниз до 1 MB.

Возвращаемые значения

Возвращает содержимое в виде строки, или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::load
  • OCI-Lob::write


Переводит указатель объекта в начало большого объекта

  • « OCI-Lob::read
  • OCI-Lob::save »
  • PHP Manual
  • OCI-Lob
  • Переводит указатель объекта в начало большого объекта

OCI-Lob::rewind

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::rewind — Переводит указатель объекта в начало большого объекта

Описание

OCI-Lob::rewind ( void ) : bool

Устанавливает внутренний указатель в начало объекта LOB.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::seek
  • OCI-Lob::tell


Сохраняет данные в LOB

  • « OCI-Lob::rewind
  • OCI-Lob::saveFile »
  • PHP Manual
  • OCI-Lob
  • Сохраняет данные в LOB

OCI-Lob::save

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::save — Сохраняет данные в LOB

Описание

OCI-Lob::save ( string $data [, int $offset ] ) : bool

Сохраняет данные из параметра data в объект LOB.

Список параметров

data

Данные для сохранения.

offset

Может использоваться для указания смещения от начала LOB.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::write
  • OCI-Lob::import


Псевдоним OCI-Lob::import

  • « OCI-Lob::save
  • OCI-Lob::seek »
  • PHP Manual
  • OCI-Lob
  • Псевдоним OCI-Lob::import

OCI-Lob::saveFile

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::saveFile — Псевдоним OCI-Lob::import()

Описание

Эта функция является псевдонимом: OCI-Lob::import().


Устанавливает позицию внутреннего указателя LOB

  • « OCI-Lob::saveFile
  • OCI-Lob::setBuffering »
  • PHP Manual
  • OCI-Lob
  • Устанавливает позицию внутреннего указателя LOB

OCI-Lob::seek

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::seek — Устанавливает позицию внутреннего указателя LOB

Описание

OCI-Lob::seek ( int $offset [, int $whence = OCI_SEEK_SET ] ) : bool

Устанавливает позицию внутреннего указателя объекта LOB.

Список параметров

offset

Указывает количество байтов, на которые следует переместиться от позиции, определяемой параметром whence:

whence

Может быть одним из значений:

  • OCI_SEEK_SET - установить позицию, равную offset
  • OCI_SEEK_CUR - прибавить к текущей позиции offset байт
  • OCI_SEEK_END - прибавить к концу файла offset байт (чтобы переместить указатель в начало - укажите отрицательный offset)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::rewind
  • OCI-Lob::tell
  • OCI-Lob::eof


Изменяет текущее состояние буферизации большого объекта (LOB)

  • « OCI-Lob::seek
  • OCI-Lob::size »
  • PHP Manual
  • OCI-Lob
  • Изменяет текущее состояние буферизации большого объекта (LOB)

OCI-Lob::setBuffering

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::setBuffering — Изменяет текущее состояние буферизации большого объекта (LOB)

Описание

OCI-Lob::setBuffering ( bool $on_off ) : bool

Устанавливает буферизацию для большого объекта исходя из значения параметра on_off.

Использование этой функции может привести к улучшению производительности путем буферизации мелких операций чтения и записи в LOB за счет уменьшения количества сетевых обращений и версий LOB. Необходимо обязательно использовать OCI-Lob::flush() после завершения всех работ с LOB.

Список параметров

on_off

TRUE для включения и FALSE для отключения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Повторные вызовы этого метода с тем же флагом будет возвращать TRUE.

Смотрите также

  • OCI-Lob::getBuffering


Возвращает размер объекта LOB

  • « OCI-Lob::setBuffering
  • OCI-Lob::tell »
  • PHP Manual
  • OCI-Lob
  • Возвращает размер объекта LOB

OCI-Lob::size

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::size — Возвращает размер объекта LOB

Описание

OCI-Lob::size ( void ) : int

Возвращает размер объекта LOB

Возвращаемые значения

Возвращает длину объекта LOB или FALSE в случае возникновения ошибки. Для пустых объектов длина равняется нулю.


Возвращает текущую позицию внутреннего указателя объекта LOB

  • « OCI-Lob::size
  • OCI-Lob::truncate »
  • PHP Manual
  • OCI-Lob
  • Возвращает текущую позицию внутреннего указателя объекта LOB

OCI-Lob::tell

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::tell — Возвращает текущую позицию внутреннего указателя объекта LOB

Описание

OCI-Lob::tell ( void ) : int

Возвращает текущую позицию внутреннего указателя объекта LOB.

Возвращаемые значения

Возвращает текущую позицию внутреннего указателя объекта LOB или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::rewind
  • OCI-Lob::size
  • OCI-Lob::eof


Обрезает большой объект

  • « OCI-Lob::tell
  • OCI-Lob::write »
  • PHP Manual
  • OCI-Lob
  • Обрезает большой объект

OCI-Lob::truncate

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::truncate — Обрезает большой объект

Описание

OCI-Lob::truncate ([ int $length = 0 ] ) : bool

Обрезает объект LOB.

Список параметров

length

Если указан, то LOB обрезается до указанной в length длины в байтах. Иначе LOB очищается полностью.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::erase


Записывает данные в объект LOB

  • « OCI-Lob::truncate
  • OCI-Lob::writeTemporary »
  • PHP Manual
  • OCI-Lob
  • Записывает данные в объект LOB

OCI-Lob::write

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::write — Записывает данные в объект LOB

Описание

OCI-Lob::write ( string $data [, int $length ] ) : int

Записывает данные из параметра data в текущую позицию внутреннего указателя объекта.

Список параметров

data

Записываемые в LOB данные.

length

Если указан этот параметр, то запись остановится после того, как length байт будет записано или закончатся данные из параметра data.

Возвращаемые значения

Возвращает количество записанных байт или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::read


Записывает временный большой объект (LOB)

  • « OCI-Lob::write
  • OCI-Lob::writeToFile »
  • PHP Manual
  • OCI-Lob
  • Записывает временный большой объект (LOB)

OCI-Lob::writeTemporary

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::writeTemporary — Записывает временный большой объект (LOB)

Описание

OCI-Lob::writeTemporary ( string $data [, int $lob_type = OCI_TEMP_CLOB ] ) : bool

Создает временный большой объект и записывает в него данные data.

После завершения работы с этим объектом его желательно закрыть функцией OCI-Lob::close.

Список параметров

data

Данные для записи.

lob_type

Один из следующих вариантов:

  • OCI_TEMP_BLOB для создания временных BLOBов
  • OCI_TEMP_CLOB для создания временных CLOBов

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::close


Псевдоним OCI-Lob::export

  • « OCI-Lob::writeTemporary
  • Устаревшие наименования и функции OCI8 »
  • PHP Manual
  • OCI-Lob
  • Псевдоним OCI-Lob::export

OCI-Lob::writeToFile

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::writeToFile — Псевдоним OCI-Lob::export()

Описание

Эта функция является псевдонимом: OCI-Lob::export().


Устаревшие наименования и функции OCI8

Содержание

  • ocibindbyname — Псевдоним oci_bind_by_name
  • ocicancel — Псевдоним oci_cancel
  • ocicloselob — Псевдоним OCI-Lob::close
  • ocicollappend — Псевдоним OCI-Collection::append
  • ocicollassign — Псевдоним OCI-Collection::assign
  • ocicollassignelem — Псевдоним OCI-Collection::assignElem
  • ocicollgetelem — Псевдоним OCI-Collection::getElem
  • ocicollmax — Псевдоним OCI-Collection::max
  • ocicollsize — Псевдоним OCI-Collection::size
  • ocicolltrim — Псевдоним OCI-Collection::trim
  • ocicolumnisnull — Псевдоним oci_field_is_null
  • ocicolumnname — Псевдоним oci_field_name
  • ocicolumnprecision — Псевдоним oci_field_precision
  • ocicolumnscale — Псевдоним oci_field_scale
  • ocicolumnsize — Псевдоним oci_field_size
  • ocicolumntype — Псевдоним oci_field_type
  • ocicolumntyperaw — Псевдоним oci_field_type_raw
  • ocicommit — Псевдоним oci_commit
  • ocidefinebyname — Псевдоним oci_define_by_name
  • ocierror — Псевдоним oci_error
  • ociexecute — Псевдоним oci_execute
  • ocifetch — Псевдоним oci_fetch
  • ocifetchinto — Устаревший вариант функций oci_fetch_array, oci_fetch_object, oci_fetch_assoc и oci_fetch_row
  • ocifetchstatement — Псевдоним oci_fetch_all
  • ocifreecollection — Псевдоним OCI-Collection::free
  • ocifreecursor — Псевдоним oci_free_statement
  • ocifreedesc — Псевдоним OCI-Lob::free
  • ocifreestatement — Псевдоним oci_free_statement
  • ociinternaldebug — Псевдоним oci_internal_debug
  • ociloadlob — Псевдоним OCI-Lob::load
  • ocilogoff — Псевдоним oci_close
  • ocilogon — Псевдоним oci_connect
  • ocinewcollection — Псевдоним oci_new_collection
  • ocinewcursor — Псевдоним oci_new_cursor
  • ocinewdescriptor — Псевдоним oci_new_descriptor
  • ocinlogon — Псевдоним oci_new_connect
  • ocinumcols — Псевдоним oci_num_fields
  • ociparse — Псевдоним oci_parse
  • ociplogon — Псевдоним oci_pconnect
  • ociresult — Псевдоним oci_result
  • ocirollback — Псевдоним oci_rollback
  • ocirowcount — Псевдоним oci_num_rows
  • ocisavelob — Псевдоним OCI-Lob::save
  • ocisavelobfile — Псевдоним OCI-Lob::import
  • ociserverversion — Псевдоним oci_server_version
  • ocisetprefetch — Псевдоним oci_set_prefetch
  • ocistatementtype — Псевдоним oci_statement_type
  • ociwritelobtofile — Псевдоним OCI-Lob::export
  • ociwritetemporarylob — Псевдоним OCI-Lob::writeTemporary


Псевдоним oci_bind_by_name

  • « Устаревшие наименования и функции OCI8
  • ocicancel »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_bind_by_name

ocibindbyname

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocibindbyname — Псевдоним oci_bind_by_name()

Описание

Псевдоним oci_bind_by_name()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_cancel

  • « ocibindbyname
  • ocicloselob »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_cancel

ocicancel

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicancel — Псевдоним oci_cancel()

Описание

Псевдоним oci_cancel()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Lob::close

  • « ocicancel
  • ocicollappend »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Lob::close

ocicloselob

(PHP 4 >= 4.0.6, PECL OCI8 1.0)

ocicloselob — Псевдоним OCI-Lob::close()

Описание

Псевдоним OCI-Lob::close()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Collection::append

  • « ocicloselob
  • ocicollassign »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Collection::append

ocicollappend

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollappend — Псевдоним OCI-Collection::append()

Описание

Псевдоним OCI-Collection::append()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Collection::assign

  • « ocicollappend
  • ocicollassignelem »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Collection::assign

ocicollassign

(PHP 4 >= 4.0.6, PECL OCI8 1.0)

ocicollassign — Псевдоним OCI-Collection::assign()

Описание

Псевдоним OCI-Collection::assign()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Collection::assignElem

  • « ocicollassign
  • ocicollgetelem »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Collection::assignElem

ocicollassignelem

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollassignelem — Псевдоним OCI-Collection::assignElem()

Описание

Псевдоним OCI-Collection::assignElem()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Collection::getElem

  • « ocicollassignelem
  • ocicollmax »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Collection::getElem

ocicollgetelem

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollgetelem — Псевдоним OCI-Collection::getElem()

Описание

Псевдоним OCI-Collection::getElem()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Collection::max

  • « ocicollgetelem
  • ocicollsize »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Collection::max

ocicollmax

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollmax — Псевдоним OCI-Collection::max()

Описание

Псевдоним OCI-Collection::max()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Collection::size

  • « ocicollmax
  • ocicolltrim »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Collection::size

ocicollsize

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollsize — Псевдоним OCI-Collection::size()

Описание

Псевдоним OCI-Collection::size()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Collection::trim

  • « ocicollsize
  • ocicolumnisnull »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Collection::trim

ocicolltrim

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolltrim — Псевдоним OCI-Collection::trim()

Описание

Псевдоним OCI-Collection::trim()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_field_is_null

  • « ocicolltrim
  • ocicolumnname »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_field_is_null

ocicolumnisnull

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumnisnull — Псевдоним oci_field_is_null()

Описание

Псевдоним oci_field_is_null()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_field_name

  • « ocicolumnisnull
  • ocicolumnprecision »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_field_name

ocicolumnname

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumnname — Псевдоним oci_field_name()

Описание

Псевдоним oci_field_name()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_field_precision

  • « ocicolumnname
  • ocicolumnscale »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_field_precision

ocicolumnprecision

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumnprecision — Псевдоним oci_field_precision()

Описание

Псевдоним oci_field_precision()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_field_scale

  • « ocicolumnprecision
  • ocicolumnsize »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_field_scale

ocicolumnscale

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumnscale — Псевдоним oci_field_scale()

Описание

Псевдоним oci_field_scale()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_field_size

  • « ocicolumnscale
  • ocicolumntype »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_field_size

ocicolumnsize

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumnsize — Псевдоним oci_field_size()

Описание

Псевдоним oci_field_size()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_field_type

  • « ocicolumnsize
  • ocicolumntyperaw »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_field_type

ocicolumntype

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumntype — Псевдоним oci_field_type()

Описание

Псевдоним oci_field_type()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_field_type_raw

  • « ocicolumntype
  • ocicommit »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_field_type_raw

ocicolumntyperaw

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumntyperaw — Псевдоним oci_field_type_raw()

Описание

Псевдоним oci_field_type_raw()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_commit

  • « ocicolumntyperaw
  • ocidefinebyname »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_commit

ocicommit

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicommit — Псевдоним oci_commit()

Описание

Псевдоним oci_commit()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_define_by_name

  • « ocicommit
  • ocierror »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_define_by_name

ocidefinebyname

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocidefinebyname — Псевдоним oci_define_by_name()

Описание

Псевдоним oci_define_by_name()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_error

  • « ocidefinebyname
  • ociexecute »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_error

ocierror

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocierror — Псевдоним oci_error()

Описание

Псевдоним oci_error()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_execute

  • « ocierror
  • ocifetch »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_execute

ociexecute

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociexecute — Псевдоним oci_execute()

Описание

Псевдоним oci_execute()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_fetch

  • « ociexecute
  • ocifetchinto »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_fetch

ocifetch

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifetch — Псевдоним oci_fetch()

Описание

Псевдоним oci_fetch()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Устаревший вариант функций oci_fetch_array, oci_fetch_object, oci_fetch_assoc и oci_fetch_row

  • « ocifetch
  • ocifetchstatement »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Устаревший вариант функций oci_fetch_array, oci_fetch_object, oci_fetch_assoc и oci_fetch_row

ocifetchinto

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifetchinto — Устаревший вариант функций oci_fetch_array(), oci_fetch_object(), oci_fetch_assoc() и oci_fetch_row()

Описание

Устаревший вариант функций oci_fetch_array(), oci_fetch_object(),
  oci_fetch_assoc() и
  oci_fetch_row()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_fetch_all

  • « ocifetchinto
  • ocifreecollection »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_fetch_all

ocifetchstatement

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifetchstatement — Псевдоним oci_fetch_all()

Описание

Псевдоним oci_fetch_all()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Collection::free

  • « ocifetchstatement
  • ocifreecursor »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Collection::free

ocifreecollection

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifreecollection — Псевдоним OCI-Collection::free()

Описание

Псевдоним OCI-Collection::free()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_free_statement

  • « ocifreecollection
  • ocifreedesc »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_free_statement

ocifreecursor

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifreecursor — Псевдоним oci_free_statement()

Описание

Псевдоним oci_free_statement()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Lob::free

  • « ocifreecursor
  • ocifreestatement »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Lob::free

ocifreedesc

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifreedesc — Псевдоним OCI-Lob::free()

Описание

Псевдоним OCI-Lob::free()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_free_statement

  • « ocifreedesc
  • ociinternaldebug »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_free_statement

ocifreestatement

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifreestatement — Псевдоним oci_free_statement()

Описание

Псевдоним oci_free_statement()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_internal_debug

  • « ocifreestatement
  • ociloadlob »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_internal_debug

ociinternaldebug

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociinternaldebug — Псевдоним oci_internal_debug()

Описание

Псевдоним oci_internal_debug()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Lob::load

  • « ociinternaldebug
  • ocilogoff »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Lob::load

ociloadlob

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociloadlob — Псевдоним OCI-Lob::load()

Описание

Псевдоним OCI-Lob::load()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_close

  • « ociloadlob
  • ocilogon »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_close

ocilogoff

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocilogoff — Псевдоним oci_close()

Описание

Псевдоним oci_close()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_connect

  • « ocilogoff
  • ocinewcollection »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_connect

ocilogon

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocilogon — Псевдоним oci_connect()

Описание

Псевдоним oci_connect()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_new_collection

  • « ocilogon
  • ocinewcursor »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_new_collection

ocinewcollection

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocinewcollection — Псевдоним oci_new_collection()

Описание

Псевдоним oci_new_collection()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_new_cursor

  • « ocinewcollection
  • ocinewdescriptor »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_new_cursor

ocinewcursor

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocinewcursor — Псевдоним oci_new_cursor()

Описание

Псевдоним oci_new_cursor()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_new_descriptor

  • « ocinewcursor
  • ocinlogon »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_new_descriptor

ocinewdescriptor

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocinewdescriptor — Псевдоним oci_new_descriptor()

Описание

Псевдоним oci_new_descriptor()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_new_connect

  • « ocinewdescriptor
  • ocinumcols »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_new_connect

ocinlogon

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocinlogon — Псевдоним oci_new_connect()

Описание

Псевдоним oci_new_connect()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_num_fields

  • « ocinlogon
  • ociparse »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_num_fields

ocinumcols

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocinumcols — Псевдоним oci_num_fields()

Описание

Псевдоним oci_num_fields()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_parse

  • « ocinumcols
  • ociplogon »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_parse

ociparse

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociparse — Псевдоним oci_parse()

Описание

Псевдоним oci_parse()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_pconnect

  • « ociparse
  • ociresult »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_pconnect

ociplogon

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociplogon — Псевдоним oci_pconnect()

Описание

Псевдоним oci_pconnect()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_result

  • « ociplogon
  • ocirollback »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_result

ociresult

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociresult — Псевдоним oci_result()

Описание

Псевдоним oci_result()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_rollback

  • « ociresult
  • ocirowcount »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_rollback

ocirollback

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocirollback — Псевдоним oci_rollback()

Описание

Псевдоним oci_rollback()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_num_rows

  • « ocirollback
  • ocisavelob »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_num_rows

ocirowcount

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocirowcount — Псевдоним oci_num_rows()

Описание

Псевдоним oci_num_rows()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Lob::save

  • « ocirowcount
  • ocisavelobfile »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Lob::save

ocisavelob

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocisavelob — Псевдоним OCI-Lob::save()

Описание

Псевдоним OCI-Lob::save()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Lob::import

  • « ocisavelob
  • ociserverversion »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Lob::import

ocisavelobfile

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocisavelobfile — Псевдоним OCI-Lob::import()

Описание

Псевдоним OCI-Lob::import()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_server_version

  • « ocisavelobfile
  • ocisetprefetch »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_server_version

ociserverversion

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociserverversion — Псевдоним oci_server_version()

Описание

Псевдоним oci_server_version()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_set_prefetch

  • « ociserverversion
  • ocistatementtype »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_set_prefetch

ocisetprefetch

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocisetprefetch — Псевдоним oci_set_prefetch()

Описание

Псевдоним oci_set_prefetch()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_statement_type

  • « ocisetprefetch
  • ociwritelobtofile »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_statement_type

ocistatementtype

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocistatementtype — Псевдоним oci_statement_type()

Описание

Псевдоним oci_statement_type()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Lob::export

  • « ocistatementtype
  • ociwritetemporarylob »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Lob::export

ociwritelobtofile

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociwritelobtofile — Псевдоним OCI-Lob::export()

Описание

Псевдоним OCI-Lob::export()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Lob::writeTemporary

  • « ociwritelobtofile
  • Paradox »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Lob::writeTemporary

ociwritetemporarylob

(PHP 4 >= 4.0.6, PECL OCI8 1.0)

ociwritetemporarylob — Псевдоним OCI-Lob::writeTemporary()

Описание

Псевдоним OCI-Lob::writeTemporary()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Доступ к файлам Paradox

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Paradox
    • px_close — Закрывает базу данных paradox
    • px_create_fp — Создать новую базу данных paradox
    • px_date2string — Конвертирует дату в строку
    • px_delete_record — Удаляет запись из базы данных paradox
    • px_delete — Удаляет ресурс базы данных paradox
    • px_get_field — Возвращает спецификацию одного поля
    • px_get_info — Возвращает много информации о файле paradox
    • px_get_parameter — Получает параметр
    • px_get_record — Возвращает запись базы данных paradox
    • px_get_schema — Возвращает схему базы данных
    • px_get_value — Получает значение
    • px_insert_record — Вставить запись в базу данных paradox
    • px_new — Создать новый объект paradox
    • px_numfields — Возврашает количество полей в базе данных
    • px_numrecords — Возвращает количество записей в базе данных
    • px_open_fp — Открыть базу данных paradox
    • px_put_record — Сохраняет запись в базе данных paradox
    • px_retrieve_record — Возвращает запись базы данных paradox
    • px_set_blob_file — Sets the file where blobs are read from
    • px_set_parameter — Устанавливает параметр
    • px_set_tablename — Устанавливает имя таблицы (устарело)
    • px_set_targetencoding — Sets the encoding for character fields (deprecated)
    • px_set_value — Устанавливает значение
    • px_timestamp2string — Конвертирует отметку времени в строку
    • px_update_record — Обновляет запись в базе данных paradox


Введение

Этот модуль позволяет читать и записывать базы данных Paradox, первичные индексные файлы и blob-файлы. Поддержка записи оказалась довольно надежной, хотя из-за отсутствия документации создаваемые файлы ни в коем случае не могут быть читаемыми другими приложениями. Зашифрованные базы данных можно читать без указания пароля, если используется pxlib >= 0.5.0.

Замечание:

Этот модуль также находится в разработке и может измениться, хотя существенных изменений в API не ожидается.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.


Требования

Для базового набора функций необходимы PHP 5.0.0 и pxlib >= 0.4.4. Некоторые новые функции доступны только с pxlib >= 0.6.0. Для чтения и записи зашифрованных баз данных требуется по крайней мере pxlib >= 0.5.0. Библиотека paradox (pxlib) доступна по адресу » http://pxlib.sourceforge.net.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/paradox

Убедитесь, что pxlib предварительно установлен. Если вы устанавливаете pxlib из rpm или debian-пакета, не забудьте также установить пакет для разработки.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Функция px_new() создает новый объект Paradox, требуемый всеми функциями Paradox.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

В следующих двух таблицах перечислены все константы, определенные модулем paradox.

Константы для типов полей
Имя | Описание
PX_FIELD_ALPHA | Символьные данные с фиксированной длиной
PX_FIELD_DATE | Дата, количество дней с 1.1.0000
PX_FIELD_SHORT | Короткое целое число (2 байта)
PX_FIELD_LONG | Длинное целое (4 байта)
PX_FIELD_CURRENCY | То же самое, что и PX_FIELD_NUMBER
PX_FIELD_NUMBER | Double
PX_FIELD_LOGICAL | Boolean
PX_FIELD_MEMOBLOB | Большой двоичный объект
PX_FIELD_BLOB | Большой двоичный объект (не поддерживается)
PX_FIELD_FMTMEMOBLOB | Большой двоичный объект
PX_FIELD_OLE | OLE-объект (в основном, blob-объект, не поддерживается)
PX_FIELD_GRAPHIC | Graphic (в основном, blob-объект, не поддерживается)
PX_FIELD_TIME | Время, количество миллисекунд с полуночи
PX_FIELD_TIMESTAMP | Отметка времени, количество миллисекунд с 1.1.0000
PX_FIELD_AUTOINC | Автоматически инкрементное целое число (как PX_FIELD_LONG)
PX_FIELD_BCD | Десятичное число, хранящееся в формате bcd (не поддерживается)
PX_FIELD_BYTES | Массив байтов с не более чем 255 байтами (не поддерживается)
PX_KEYTOLOWER | Превратить все имена полей в нижний регистр
PX_KEYTOUPPER | Превратить все имена полей в верхний регистр
Константы для типов файлов
Имя | Описание
PX_FILE_INDEX_DB | Индексированная база данных
PX_FILE_PRIM_INDEX | Первичный индекс
PX_FILE_NON_INDEX_DB | Неиндексированная база данных
PX_FILE_NON_INC_SEC_INDEX | Нет инкрементного вторичного индекса
PX_FILE_SEC_INDEX | Вторичный индекс
PX_FILE_INC_SEC_INDEX | Инкрементный вторичный индекс
PX_FILE_NON_INC_SEC_INDEX_G | Неинкрементный вторичный индекс
PX_FILE_SEC_INDEX_G | Вторичный индекс
PX_FILE_INC_SEC_INDEX_G | Неинкрементный вторичный индекс


Функции Paradox

Объектно-ориентированный API

Модуль paradox также предоставляет объектно-ориентированный API. Он состоит только из одного класса paradox_db. Его методы отличаются только от функций своим именем и, конечно, отсутствующим первым параметром. В следующей таблице перечислены все методы и их эквивалентные функции.

Методы класса paradox_db
Название метода | Эквивалентная функция
Конструктор | px_new()
Деструктор | 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()
retrieve_record() | px_retrieve_record()
delete_record() | px_delete_record()
insert_record() | px_insert_record()
update_record() | px_update_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()
date2string() | px_date2string()
timestamp2string() | px_timestamp2string()

Содержание

  • px_close — Закрывает базу данных paradox
  • px_create_fp — Создать новую базу данных paradox
  • px_date2string — Конвертирует дату в строку
  • px_delete_record — Удаляет запись из базы данных paradox
  • px_delete — Удаляет ресурс базы данных paradox
  • px_get_field — Возвращает спецификацию одного поля
  • px_get_info — Возвращает много информации о файле paradox
  • px_get_parameter — Получает параметр
  • px_get_record — Возвращает запись базы данных paradox
  • px_get_schema — Возвращает схему базы данных
  • px_get_value — Получает значение
  • px_insert_record — Вставить запись в базу данных paradox
  • px_new — Создать новый объект paradox
  • px_numfields — Возврашает количество полей в базе данных
  • px_numrecords — Возвращает количество записей в базе данных
  • px_open_fp — Открыть базу данных paradox
  • px_put_record — Сохраняет запись в базе данных paradox
  • px_retrieve_record — Возвращает запись базы данных paradox
  • px_set_blob_file — Sets the file where blobs are read from
  • px_set_parameter — Устанавливает параметр
  • px_set_tablename — Устанавливает имя таблицы (устарело)
  • px_set_targetencoding — Sets the encoding for character fields (deprecated)
  • px_set_value — Устанавливает значение
  • px_timestamp2string — Конвертирует отметку времени в строку
  • px_update_record — Обновляет запись в базе данных paradox


Закрывает базу данных paradox

  • « Функции Paradox
  • px_create_fp »
  • PHP Manual
  • Функции Paradox
  • Закрывает базу данных paradox

px_close

(PECL paradox >= 1.0.0)

px_close — Закрывает базу данных paradox

Описание

px_close ( resource $pxdoc ) : bool

Закрывает базу данных paradox. Данная функция не закроет файл. Вам нужно впоследствии вызвать fclose().

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращенный функцией px_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • px_open_fp() - Открыть базу данных paradox
  • Пример использования в описании функции px_new() - Создать новый объект paradox


Создать новую базу данных paradox

  • « px_close
  • px_date2string »
  • PHP Manual
  • Функции Paradox
  • Создать новую базу данных paradox

px_create_fp

(PECL paradox >= 1.0.0)

px_create_fp — Создать новую базу данных paradox

Описание

px_create_fp ( resource $pxdoc , resource $file , array $fielddesc ) : bool

Создать новый файл базы данных paradox. Перед вызовом данной функции фактический файл нужно открыть с помощью fopen(). Убедитесь, что этот файл доступен для записи.

Замечание:

Вызов этих функций вызывает предупреждение о пустом имени таблицы, которое можно безопасно игнорировать. Просто установите tablename после этого вызова с помощью px_set_parameter().

Замечание:

Эта функция очень экспериментальна из-за недостаточной документации формата файла paradox. Файлы базы данных, созданные с помощью данной функции, могут быть открыты с помощью px_open_fp(), а также могут быть открыты программным обеспечением Paradox, но ваш сценарий использования может отличаться.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

file

Дескриптор файла, возвращаемый функцией fopen().

fielddesc

fielddesc - это массив, содержащий один элемент для каждой спецификации поля. Спецификация поля - это массив с двумя или тремя элементами. Первый элемент всегда строковое значение, используемое как имя поля. Он не может быть длиной более десяти символов. Второй элемент содержит тип поля, который является одной из констант, перечисленных в таблице Константы типов полей. В случае поля символа или поля bcd вам нужно будет предоставить третий элемент, определяющий длину, соответственно, точности поля. Если спецификация поля содержит поля blob, вам нужно будет либо сделать поле достаточно большим для всех значений полей, либо указать blob-файл с помощью px_set_blob_file() для хранения blob-файлов. Если это не сделано, данные поля обрезаются.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Создание базы данных Paradox с помощью двух полей

<?php
if(!$pxdoc = px_new()) {
  /* Обработка ошибки */
}
$fp = fopen("test.db", "w+");
$fields = array(array("col1", "S"), array("col2", "I"));
if(!px_create_fp($pxdoc, $fp, $fields)) {
  /* Обработка ошибки */
}
px_set_parameter($pxdoc, "tablename", "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() - Создать новый объект paradox
  • px_put_record() - Сохраняет запись в базе данных paradox
  • fopen() - Открывает файл или URL


Конвертирует дату в строку

  • « px_create_fp
  • px_delete_record »
  • PHP Manual
  • Функции Paradox
  • Конвертирует дату в строку

px_date2string

(PECL paradox >= 1.4.0)

px_date2string — Конвертирует дату в строку

Описание

px_date2string ( resource $pxdoc , int $value , string $format ) : string

Превращает дату, хранящуюся в файле paradox, в человекочитаемый формат. Даты paradox - это количество дней, начиная с 1.1.0000. Эта функция просто для удобства. Ее легко можно заменить некоторыми математическими и календарными функциями, как показано в примере ниже.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

value

Значение, сохраненное в поле базы данных paradox типа PX_FIELD_DATE.

format

Формат в виде строки, похожий на формат используемой date(). Заполнители, поддерживаемые этой функцией, являются подмножеством тех, которые есть в функции date() (Y, y, m, n, d, j, L)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Превращение даты paradox в человекочитаемый формат

<?php
$px = px_new();

/* Составить дату, которая может быть сохранена */
/* в поле даты базы данных paradox. */
/* 700000 дней, начиная с 1.1.0000. */
$days = 700000;

/* Использовать функции календаря для вывода */
/* человекочитаемого формата даты */
echo jdtogregorian($days+1721425)."\n";
/* px_date2string() выведет то же самое */
echo px_date2string($px, $days, "n/d/Y")."\n";

px_delete($px);
?>

Результат выполнения данного примера:

7/15/1917
7/15/1917

Смотрите также

  • px_timestamp2string() - Конвертирует отметку времени в строку
  • jdtogregorian() - Переводит число дней в юлианском летоисчислении в дату по Григорианскому календарю


Удаляет запись из базы данных paradox

  • « px_date2string
  • px_delete »
  • PHP Manual
  • Функции Paradox
  • Удаляет запись из базы данных paradox

px_delete_record

(PECL paradox >= 1.4.0)

px_delete_record — Удаляет запись из базы данных paradox

Описание

px_delete_record ( resource $pxdoc , int $num ) : bool

Эта функция удаляет запись из базы данных. Она не освобождает место в файле базы данных, а просто помечает его как удаленное. После вставки новой записи пространство будет использовано повторно.

Замечание:

Данная функция доступна только в том случае, если используется библиотека pxlib >= 0.6.0.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

num

Номер записи - это искусственное число, подсчитывающее записи в том порядке, в котором они хранятся в базе данных. Первая запись имеет номер 0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Удаляет ресурс базы данных paradox

  • « px_delete_record
  • px_get_field »
  • PHP Manual
  • Функции Paradox
  • Удаляет ресурс базы данных paradox

px_delete

(PECL paradox >= 1.0.0)

px_delete — Удаляет ресурс базы данных paradox

Описание

px_delete ( resource $pxdoc ) : bool

Удаляет ресурс файла paradox и освобождает всю память.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает спецификацию одного поля

  • « px_delete
  • px_get_info »
  • PHP Manual
  • Функции Paradox
  • Возвращает спецификацию одного поля

px_get_field

(PECL paradox >= 1.0.0)

px_get_field — Возвращает спецификацию одного поля

Описание

px_get_field ( resource $pxdoc , int $fieldno ) : array

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

fieldno

Номер соответствующего поля. Первое поле имеет номер 0. Передача номера поля меньше 0 или больше или равно количеству полей вызовет ошибку.

Возвращаемые значения

Возвращает спефицикацию номера поля fieldno в базе данных в виде ассоциативного массива. Массив содержит три поля с именами name, type и size.


Возвращает много информации о файле paradox

  • « px_get_field
  • px_get_parameter »
  • PHP Manual
  • Функции Paradox
  • Возвращает много информации о файле paradox

px_get_info

(PECL paradox >= 1.0.0)

px_get_info — Возвращает много информации о файле paradox

Описание

px_get_info ( resource $pxdoc ) : array

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

Возвращаемые значения

Возвращает ассоциативный массив с множеством информации про файл paradox. Данный массив возможно будет расширен в будущем.

fileversion

Версия файла, умноженная на 10, например, 70.

tablename

Имя таблицы, хранящейся в файле. Если база данных была создана pxlib, то это будет имя файла, без расширения.

numrecords

Количество записей в данной таблице.

numfields

Количество полей в данной таблице.

headersize

Количество байтов, используемых заголовком. Обычно это 0x800.

recordsize

Количество байтов, используемых для каждой записи. Это сумма всех размеров полей (доступно, начиная с версии 1.4.2).

maxtablesize

Значение, умноженное на 0x400, это размер блока данных в байтов. Максимальное количество записей в блоке данных - это целая часть выражения (maxtablesize * 0x400 - 8) / recordsize.

numdatablocks

Количество блоков данных в файле. Каждый блок данных содержит определенное количество записей, которое зависит от размера записи и размера блока данных (maxtablesize). Блоки данных не обязательно должны быть полностью заполнены.

numindexfields

Количество полей, используемых для первичного индекса. Поля всегда начинаются с поля номером 1.

codepage

Кодовая страница DOS, которая использовалась для кодирования полей символьными данными. Если целевая кодировка не задана с помощью px_set_targetencoding(), это будет кодировка для символьных полей при доступе к записям с помощью px_get_record() или px_retrieve_record().

Смотрите также

  • px_numfields() - Возврашает количество полей в базе данных
  • px_numrecords() - Возвращает количество записей в базе данных


Получает параметр

  • « px_get_info
  • px_get_record »
  • PHP Manual
  • Функции Paradox
  • Получает параметр

px_get_parameter

(PECL paradox >= 1.1.0)

px_get_parameter — Получает параметр

Описание

px_get_parameter ( resource $pxdoc , string $name ) : string

Получает различные параметры.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

name

Параметр name может быть одним из следующих:

tablename

Имя таблицы, как оно будет сохранено в заголовке базы данных.

targetencoding

Кодировка для вывода. Данные, считываемые из символьных полей px_get_record() или px_retrieve_record() перекодируются в целевую кодировку (targetencoding). Если она не задана, то данные будут доставляться так, как они хранятся в файле базы данных.

inputencoding

Кодировка входных данных, которые будут храниться в базе данных. При хранении данных символьных полей в базе данных ожидается, что данные будут доставлены в этой кодировке.

Возвращаемые значения

Возвращает значение параметра или FALSE в случае возникновения ошибки.


Возвращает запись базы данных paradox

  • « px_get_parameter
  • px_get_schema »
  • PHP Manual
  • Функции Paradox
  • Возвращает запись базы данных paradox

px_get_record

(PECL paradox >= 1.0.0)

px_get_record — Возвращает запись базы данных paradox

Описание

px_get_record ( resource $pxdoc , int $num [, int $mode = 0 ] ) : array

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

num

Номер записи - это искусственное число, подсчитывающее записи в том порядке, в котором они хранятся в базе данных. Первая запись имеет номер 0.

mode

Необязательный параметр mode может быть PX_KEYTOLOWER или PX_KEYTOUPPER для преобразования ключей возвращаемого массива в нижний или верхний регистр. Если параметр mode не передан или равен 0, то ключ будет точно таким же, как имя поля. Значения элементов будут содержать значения полей. Значения NULL сохраняются и отличаются от значений 0.0, 0 или пустой строки. Поля типа PX_FIELD_TIME будут возвращены как целое число в миллисекундах, начиная с полуночи. Отметка времени (PX_FIELD_TIMESTAMP) и дата (PX_FIELD_DATE) - число с плавающей точкой и целое число, соответственно, хранящие значения в миллисекундах и дни, начиная с юлианского календаря, соответственно. Используйте функции px-timestamp2string() и px-date2string(), чтобы преобразовать их в символьное представление.

Возвращаемые значения

Возвращает запись под номером num из базы данных paradox. Запись возвращается в качестве ассоциативного массива, где ключи - названия полей.

Смотрите также

  • px_retrieve_record() - Возвращает запись базы данных paradox


Возвращает схему базы данных

  • « px_get_record
  • px_get_value »
  • PHP Manual
  • Функции Paradox
  • Возвращает схему базы данных

px_get_schema

(PECL paradox >= 1.0.0)

px_get_schema — Возвращает схему базы данных

Описание

px_get_schema ( resource $pxdoc [, int $mode = 0 ] ) : array

px_get_schema() возвращает схему базы данных.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

mode

Если необязательный параметр mode равен PX_KEYTOLOWER или PX_KEYTOUPPER, ключи возвращаемого массива будут преобразованы в нижний или верхний регистр, соответственно. Если параметр mode равен 0 или не передан вовсе, то имя ключа будет совпадать с названием поля.

Возвращаемые значения

Возвращает схему файла базы данных в виде ассоциативного массива. Имя ключа равно имени поля. Каждый элемент массива сам по себе является ассоциативным массивом, содержащим два поля type и size. Поле type - это одна из констант в таблице Константы типов полей . Поле size - количество байт, которое это поле использует в записи. Общее число всех размеров поля равно размеру записи, поскольку его можно получить с помощью px-get-info().


Получает значение

  • « px_get_schema
  • px_insert_record »
  • PHP Manual
  • Функции Paradox
  • Получает значение

px_get_value

(PECL paradox >= 1.1.0)

px_get_value — Получает значение

Описание

px_get_value ( resource $pxdoc , string $name ) : float

Получает различные значения.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

name

Параметр name может одним из следующих.

numprimkeys

Количество первичных ключей. Базы данных Paradox всегда используют первые поля numprimkeys для основного индекса.

Возвращаемые значения

Возвращает значение параметра или FALSE в случае возникновения ошибки.


Вставить запись в базу данных paradox

  • « px_get_value
  • px_new »
  • PHP Manual
  • Функции Paradox
  • Вставить запись в базу данных paradox

px_insert_record

(PECL paradox >= 1.4.0)

px_insert_record — Вставить запись в базу данных paradox

Описание

px_insert_record ( resource $pxdoc , array $data ) : int

Вставляет новую запись в базу данных. Запись не обязательно вставляется в конец базы данных, но может быть вставлена в любую позицию в зависимости от того, где находится первый свободный слот.

Данные записи передаются в виде массива значений полей. Элементы массива должны соответствовать полям в базе данных. Если массив содержит меньше элементов, чем в базе данных, остальные поля будут иметь значение null.

Большинство значений полей может быть передано как эквивалент типа в PHP, например, большое целое значение используется для полей типа PX_FIELD_LONG, PX_FIELD_SHORT и PX_FIELD_AUTOINC, значения с числами с плавающей точкой используется для полей типа PX_FIELD_CURRENCY и PX_FIELD_NUMBER. Значения полей для полей blob и альфа передаются в виде строк.

Поля типа PX_FIELD_TIME и PX_FIELD_DATE требуют большого значения. В первом случае это количество миллисекунд с полуночи. Во втором случае это количество дней с момента 1.1.0000. Ниже приведены два примера преобразования текущей даты или отметки времени в значение, подходящее для одного из полей даты/времени paradox.

Замечание:

Данная функция доступна только в том случае, если используется библиотека pxlib >= 0.6.0.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

data

Ассоциативный или индексированный массив, содержащий значения полей, например, возвращенные функцией px_retrieve_record().

Возвращаемые значения

Возвращает FALSE в случае возникновения ошибки или номер записи в случае успешного выполнения.

Примеры

Пример #1 Установка значений даты/времени в базе данных paradox на текущие дату и время

<?php
$px = px_new();
$fp = fopen("test.db", "w+");
px_create_fp($px, $fp, array(array("timestamp", "@"), array("time", "T"), array("date", "D")));

$curdate = getdate();
$jd = gregoriantojd($curdate["mon"], $curdate["mday"], $curdate["year"]);
$days = $jd - 1721425; /* Количество дней между 1.1.4714 г. до н.э. и 1.1.0000 */
$secs = $curdate["hours"]*3600 + $curdate["minutes"]*60 + $curdate["seconds"];
px_insert_record($px, array($days*86400000.0 + $secs*1000.0, $secs*1000.0, $days));

$curtimestamp = microtime(true);
$days = (int) ($curtimestamp/86400);
$secs = $curtimestamp - ($days * 86400.0);
$days += 2440588; /* Количество дней между 1.1.4714 г. до н.э. и 1.1.1970 */
$days -= 1721425; /* Количество дней между 1.1.4714 г. до н.э. и 1.1.0000 */
px_insert_record($px, array($days*86400000.0 + $secs*1000.0, $secs*1000.0, $days));
for($i=0; $i<2; $i++) {
    $rec = px_retrieve_record($px, $i);
    echo px_timestamp2string($px, $rec["timestamp"], "n/d/Y H:i:s")."\n";
    echo px_date2string($px, $rec["date"], "n/d/Y")."\n";
}
px_close($px);
px_delete($px);
?>

Результат выполнения данного примера:

2/21/2006 21:42:30
2/21/2006
2/21/2006 20:42:30
2/21/2006

Юлианский день, переданный в jdtogregorian(), имеет другую базу 1.1.4714, и поэтому должны быть рассчитаны путем добавления 1721425 к количеству дней, используемых в файле paradox. Превратить день в отметку времени легко сделать путем умножения на 86400000.0 для получения миллисекунд.

Смотрите также

px_update_record() - Обновляет запись в базе данных paradox


Создать новый объект paradox

  • « px_insert_record
  • px_numfields »
  • PHP Manual
  • Функции Paradox
  • Создать новый объект paradox

px_new

(PECL paradox >= 1.0.0)

px_new — Создать новый объект paradox

Описание

px_new ( void ) : resource

Создать новый объект paradox. Вам следует вызвать эту функцию перед любыми дополнительными функциями. Функция px_new() не создает файла на диске, а просто создаст экземпляр объекта paradox. Эта функция не должна вызываться, если используется объектно-ориентированный интерфейс. Вместо этого используйте new paradox_db().

Возвращаемые значения

Возвращает FALSE в случае возникновения ошибки.

Примеры

Пример #1 Открытие базы данных Paradox

<?php
if(!$pxdoc = px_new()) {
  /* Обработка ошибки */
}
$fp = fopen("test.db", "r");
if(!px_open_fp($pxdoc, $fp)) {
  /* Обработка ошибки */
}
// ...
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>

Если вы предпочитаете объектно-ориентированный интерфейс, то вышеприведенный пример будет выглядеть как показано ниже.

Пример #2 Открытие базы данных Paradox

<?php
$fp = fopen("test.db", "r");
$pxdoc = new paradox_db();
if(!$pxdoc->open_fp($fp)) {
  /* Обработка ошибки */
}
// ...
$pxdoc->close();
fclose($fp);
?>

Смотрите также

  • px_delete() - Удаляет ресурс базы данных paradox
  • px_open_fp() - Открыть базу данных paradox


Возврашает количество полей в базе данных

  • « px_new
  • px_numrecords »
  • PHP Manual
  • Функции Paradox
  • Возврашает количество полей в базе данных

px_numfields

(PECL paradox >= 1.0.0)

px_numfields — Возврашает количество полей в базе данных

Описание

px_numfields ( resource $pxdoc ) : int

Получить количество полей в файле базы данных.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

Возвращаемые значения

Возвращает количество полей в файле базы данных. Возвращаемое значение данной функции идентично элементу numfields в массиве, возвращаемом функцией px_get_info().


Возвращает количество записей в базе данных

  • « px_numfields
  • px_open_fp »
  • PHP Manual
  • Функции Paradox
  • Возвращает количество записей в базе данных

px_numrecords

(PECL paradox >= 1.0.0)

px_numrecords — Возвращает количество записей в базе данных

Описание

px_numrecords ( resource $pxdoc ) : int

Получить количество записей в файле базы данных.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

Возвращаемые значения

Возвращает количество записей в файле базы данных. Возвращаемое значение данной функции идентично элементу numrecords в массиве, возвращаемому функцией px_get_info().


Открыть базу данных paradox

  • « px_numrecords
  • px_put_record »
  • PHP Manual
  • Функции Paradox
  • Открыть базу данных paradox

px_open_fp

(PECL paradox >= 1.0.0)

px_open_fp — Открыть базу данных paradox

Описание

px_open_fp ( resource $pxdoc , resource $file ) : bool

Открыть существующий файл базы данных paradox. Фактический файл должен быть открыт с помощью функции fopen(). Эта функция также может быть использована для открытия первичных индексных файлов и обработки их как базы данных paradox. Это поддерживается для тех, кто хотел бы исследовать первичный индекс. Его нельзя использовать для ускорения доступа к файлу базы данных.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

file

Параметр file - возвращаемое значение от fopen() с фактическим файлом базы данных в качестве параметра. Если вы планируете обновлять или вставлять записи, убедитесь, что база данных доступна для записи.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fopen() - Открывает файл или URL
  • Пример на странице описания функции px_new() - Создать новый объект paradox


Сохраняет запись в базе данных paradox

  • « px_open_fp
  • px_retrieve_record »
  • PHP Manual
  • Функции Paradox
  • Сохраняет запись в базе данных paradox

px_put_record

(PECL paradox >= 1.0.0)

px_put_record — Сохраняет запись в базе данных paradox

Описание

px_put_record ( resource $pxdoc , array $record [, int $recpos = -1 ] ) : bool

Сохраняет запись в базе данных paradox. Запись всегда добавляется в конец базы данных, независимо от свободных слотов. Используйте px_insert_record(), чтобы добавить новую запись в первый свободный слот в базе данных.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

record

Ассоциативный или индексированный массив, содержащий значения полей, например, возвращаемые px_retrieve_record().

recpos

Этот необязательный параметр может использоваться для указания номера записи, превышающего текущее количество записей в базе данных. Функция добавит столько пустых записей, сколько необходимо. В этом параметре практически нет необходимости.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает запись базы данных paradox

  • « px_put_record
  • px_set_blob_file »
  • PHP Manual
  • Функции Paradox
  • Возвращает запись базы данных paradox

px_retrieve_record

(PECL paradox >= 1.4.0)

px_retrieve_record — Возвращает запись базы данных paradox

Описание

px_retrieve_record ( resource $pxdoc , int $num [, int $mode = 0 ] ) : array

Функция очень похожа на px_get_record(), но внутренне использует другой подход для получения данных. Он полагается на pxlib для чтения каждого значения поля, что обычно приводит к поддержке большего количества типов полей.

Замечание:

Функция доступна только если используется библиотека pxlib версии >= 0.6.0.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

num

Номер записи - это искусственное число, подсчитывающее записи в том порядке, в котором они хранятся в базе данных. Первая запись имеет номер 0.

mode

Необязательный параметр mode может быть PX_KEYTOLOWER или PX_KEYTOUPPER для преобразования ключей возвращаемого массива в нижний или верхний регистр. Если параметр mode не передан или равен 0, то ключ будет точно таким же, как имя поля. Значения элементов будут содержать значения полей. Значения NULL сохраняются и отличаются от значений 0.0, 0 или пустой строки. Поля типа PX_FIELD_TIME будут возвращены как целое число в миллисекундах, начиная с полуночи. Отметка времени - число с плавающей точкой, которое также отсчитывает миллисекунды, начиная с начала юлианского календаря.

Возвращаемые значения

Возвращает номер записи num из базы данных paradox. Запись возвращается в виде ассоциативного массива с ключами, являющимися именами полей.

Смотрите также

  • px_get_record() - Возвращает запись базы данных paradox


Sets the file where blobs are read from

  • « px_retrieve_record
  • px_set_parameter »
  • PHP Manual
  • Функции Paradox
  • Sets the file where blobs are read from

px_set_blob_file

(PECL paradox >= 1.3.0)

px_set_blob_file — Sets the file where blobs are read from

Описание

px_set_blob_file ( resource $pxdoc , string $filename ) : bool

Sets the name of the file where blobs are going to be read from or written into. Without calling this function, px_get_record() or px_retrieve_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 px_put_record(),
px_insert_record(), or
px_update_record() without calling
px_set_blob_file() will result in truncated blob fields
unless the data fits into the database file.

Calling this function twice will close the first blob file and open the new one.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

filename

The name of the file. Its extension should be .MB.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Устанавливает параметр

  • « px_set_blob_file
  • px_set_tablename »
  • PHP Manual
  • Функции Paradox
  • Устанавливает параметр

px_set_parameter

(PECL paradox >= 1.1.0)

px_set_parameter — Устанавливает параметр

Описание

px_set_parameter ( resource $pxdoc , string $name , string $value ) : bool

Устанавливает различные параметры.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

name

В зависимости от параметра, который вы хотите установить, name может быть одним из следующих.

tablename

Имя таблицы, как оно будет сохранено в заголовке базы данных.

targetencoding

Кодировка для вывода. Данные, считываемые из символьных полей, перекодируются в целевую кодировку (targetencoding).

inputencoding

Кодировка входных данных, которые должны быть сохранены в базе данных.

value

Устанавливаемое значение параметра. Для inputencoding и targetencoding это должно быть название кодировки, как это принимается iconv или recode, например iso-8859-1, utf-8, cp850.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • px_get_info() - Возвращает много информации о файле paradox для определения кодовой страницы DOS.


Устанавливает имя таблицы (устарело)

  • « px_set_parameter
  • px_set_targetencoding »
  • PHP Manual
  • Функции Paradox
  • Устанавливает имя таблицы (устарело)

px_set_tablename

(PECL paradox >= 1.0.0)

px_set_tablename — Устанавливает имя таблицы (устарело)

Описание

px_set_tablename ( resource $pxdoc , string $name ) : void

Устанавливает имя таблицы базы данных paradox, которая была создана с помощью px_create_fp(). Это устаревшая функция, поэтому используйте px_set_parameter() вместо нее.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

tablename

Имя таблицы. Если оно не задано явно, оно будет установлено, как имя файла базы данных.

Возвращаемые значения

Возвращает NULL в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

px_set_parameter() - Устанавливает параметр


Sets the encoding for character fields (deprecated)

  • « px_set_tablename
  • px_set_value »
  • PHP Manual
  • Функции Paradox
  • Sets the encoding for character fields (deprecated)

px_set_targetencoding

(PECL paradox >= 1.0.0)

px_set_targetencoding — Sets the encoding for character fields (deprecated)

Описание

px_set_targetencoding ( resource $pxdoc , string $encoding ) : bool

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 file. The encoding can be any string identifier known to iconv or recode. On Unix systems run iconv -l for a list of available encodings.

This function is deprecated and should be replaced by calling px_set_parameter().

See also px_get_info() to determine the DOS code page as stored in the database file.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

encoding

The encoding for the output. Data which is being read from character fields is recoded into the targetencoding.

Возвращаемые значения

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_parameter() - Устанавливает параметр


Устанавливает значение

  • « px_set_targetencoding
  • px_timestamp2string »
  • PHP Manual
  • Функции Paradox
  • Устанавливает значение

px_set_value

(PECL paradox >= 1.1.0)

px_set_value — Устанавливает значение

Описание

px_set_value ( resource $pxdoc , string $name , float $value ) : bool

Устанавливает различные значения.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

name

name может быть одним из следующих.

numprimkeys

Количество первичных ключей. Базы данных paradox всегда используют первые поля numprimkeys для первичного индекса.

value

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

px_set_parameter() - Устанавливает параметр


Конвертирует отметку времени в строку

  • « px_set_value
  • px_update_record »
  • PHP Manual
  • Функции Paradox
  • Конвертирует отметку времени в строку

px_timestamp2string

(PECL paradox >= 1.4.0)

px_timestamp2string — Конвертирует отметку времени в строку

Описание

px_timestamp2string ( resource $pxdoc , float $value , string $format ) : string

Превращает дату, хранящуюся в файле paradox, в удобочитаемый формат. Отметки времени paradox - это количество миллисекунд, начиная с 0001-01-02. Эта функция просто для удобства. Ее легко можно заменить некоторыми математическими и календарными функциями, как показано в примере ниже.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox.

value

Значение, сохраненное в поле базы данных paradox типа PX_FIELD_TIME или PX_FIELD_TIMESTAMP.

format

Формат в виде строки, похожий на формат используемой date(). Заполнители, поддерживаемые этой функцией, являются подмножеством тех, которые есть в функции date() (Y, y, m, n, d, j, H, h, G, g, i, s, A, a, L).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Превращение даты paradox в человекочитаемую форму

<?php
$px = px_new();

/* Составить дату, которая может быть сохранена */
/* в поле даты базы данных paradox. */
/* 700000 дней, начиная с 1.1.0000. */
$days = 700000;

/* Использовать функции календаря для вывода */
/* человекочитаемого формата даты */
echo jdtogregorian($days+1721425)."\n";

/* Превратить в отметку времени, хранящуюся в базе данных paradox */
/* Отметки времени хранятся в миллисекундах, начиная с 0001-01-02 */
$stamp = $days * 86400.0 * 1000.0;
/* Добавить один час */
$stamp += 3600000.0;
/* Вывод следующей строки будет '7/15/1917 01:00:00'. */
echo px_timestamp2string($px, $stamp, "n/d/Y H:i:s")."\n";

px_delete($px);
?>

Результат выполнения данного примера:

7/15/1917
7/15/1917 01:00:00

Юлианский день, переданный в jdtogregorian(), имеет другую базу 1.1.4714 b.c. и поэтому должнен быть рассчитан путем добавления 1721425 к количеству дней, используемому в файле paradox. Превратить день в отметку времени легко сделать путем умножения на 86400000.0 для получения милисекунд.

Смотрите также

  • px_date2string() - Конвертирует дату в строку
  • jdtogregorian() - Переводит число дней в юлианском летоисчислении в дату по Григорианскому календарю


Обновляет запись в базе данных paradox

  • « px_timestamp2string
  • PostgreSQL »
  • PHP Manual
  • Функции Paradox
  • Обновляет запись в базе данных paradox

px_update_record

(PECL paradox >= 1.4.0)

px_update_record — Обновляет запись в базе данных paradox

Описание

px_update_record ( resource $pxdoc , array $data , int $num ) : bool

Обновляет существующую запись в базе данных. Запись начинается с 0.

Данные записи передаются в виде массива значений полей. Элементы массива должны соответствовать полям в базе данных. Если в массиве меньше элементов, чем в базе данных, остальные поля будут иметь значение null.

Замечание:

Эта функция доступна только если используется библиотека pxlib версии >= 0.6.0.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

data

Ассоциативный или индексированный массив, содержащий значения полей, возвращаемые px_retrieve_record().

num

Номер записи - это искусственное число, подсчитывающее записи в том порядке, в котором они хранятся в базе данных. Первая запись имеет номер 0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

px_insert_record() - Вставить запись в базу данных paradox


PostgreSQL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Базовое использование
    • Базовое использование
  • Функции PostgreSQL
    • pg_affected_rows — Возвращает количество затронутых запросом записей (кортежей)
    • pg_cancel_query — Остановка асинхронного запроса.
    • pg_client_encoding — Получение кодировки клиента.
    • pg_close — Закрывает соединение с базой данных PostgreSQL
    • pg_connect_poll — Опросить статус попытки асихронного соединения PostgreSQL.
    • pg_connect — Открывает соединение с базой данных PostgreSQL
    • pg_connection_busy — Проверяет, занято ли соединение в данный момент.
    • pg_connection_reset — Сброс подключения (переподключение)
    • pg_connection_status — Определяет состояние подключения
    • pg_consume_input — Читает вводные данные на соединении
    • pg_convert — Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах
    • pg_copy_from — Вставляет записи из массива в таблицу
    • pg_copy_to — Копирует данные из таблицы в массив
    • pg_dbname — Определяет имя базы данных
    • pg_delete — Удаляет записи
    • pg_end_copy — Синхронизирует с бэкендом PostgreSQL
    • pg_escape_bytea — Экранирует спецсимволы в строке для вставки в поле типа bytea
    • pg_escape_identifier — Экранирует идентификатор для вставки в текстовое поле
    • pg_escape_literal — Экранировать литерал при вставке в текстовое поле
    • pg_escape_string — Экранирование спецсимволов в строке запроса
    • pg_execute — Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат
    • pg_fetch_all_columns — Выбирает все записи из одной колонки результата запроса и помещает их в массив
    • pg_fetch_all — Выбирает все данные из результата запроса и помещает их в массив
    • pg_fetch_array — Возвращает строку результата в виде массива
    • pg_fetch_assoc — Выбирает строку результата запроса и помещает данные в ассоциативный массив
    • pg_fetch_object — Выбирает строку результата запроса и возвращает данные в виде объекта
    • pg_fetch_result — Возвращает запись из результата запроса
    • pg_fetch_row — Выбирает строку результата запроса и помещает данные в массив
    • pg_field_is_null — Проверка поля на значение SQL NULL
    • pg_field_name — Возвращает наименование поля
    • pg_field_num — Возвращает порядковый номер именованного поля
    • pg_field_prtlen — Возвращает количество печатаемых символов
    • pg_field_size — Возвращает размер поля
    • pg_field_table — Возвращает наименование или идентификатор таблицы, содержащей заданное поле
    • pg_field_type_oid — Возвращает идентификатор типа заданного поля
    • pg_field_type — Возвращает имя типа заданного поля
    • pg_flush — Сбросить данные исходящего запроса на соединении
    • pg_free_result — Очистка результата запроса и освобождение памяти
    • pg_get_notify — Получение SQL NOTIFY сообщения
    • pg_get_pid — Получает ID процесса сервера БД
    • pg_get_result — Получение результата асинхронного запроса
    • pg_host — Возвращает имя хоста, соответствующего подключению
    • pg_insert — Заносит данные из массива в таблицу базы данных
    • pg_last_error — Получает сообщение о последней произошедшей ошибке на соединении с базой данных
    • pg_last_notice — Возвращает последнее уведомление от сервера PostgreSQL
    • pg_last_oid — Возвращает OID последней добавленной в базу строки
    • pg_lo_close — Закрывает большой объект
    • pg_lo_create — Создает большой объект
    • pg_lo_export — Вывод большого объекта в файл
    • pg_lo_import — Импорт большого объекта из файла
    • pg_lo_open — Открывает большой объект базы данных
    • pg_lo_read_all — Читает содержимое большого объекта и посылает напрямую в браузер
    • pg_lo_read — Читает данные большого объекта
    • pg_lo_seek — Перемещает внутренний указатель большого объекта
    • pg_lo_tell — Возвращает текущее положение внутреннего указателя большого объекта
    • pg_lo_truncate — Обрезает большой объект
    • pg_lo_unlink — Удаление большого объекта
    • pg_lo_write — Записывает данные в большой объект
    • pg_meta_data — Получение метаданных таблицы
    • pg_num_fields — Возвращает количество полей в выборке
    • pg_num_rows — Возвращает количество строк в выборке
    • pg_options — Получение параметров соединения с сервером баз данных
    • pg_parameter_status — Просмотр текущих значений параметров сервера
    • pg_pconnect — Открывает постоянное соединение с сервером PostgreSQL
    • pg_ping — Проверка соединения с базой данных
    • pg_port — Возвращает номер порта, соответствующий заданному соединению
    • pg_prepare — Посылает запрос на создание параметризованного SQL выражения и ждет его завершения
    • pg_put_line — Передает на PostgreSQL сервер строку с завершающим нулем
    • pg_query_params — Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса
    • pg_query — Выполняет запрос
    • pg_result_error_field — Возвращает конкретное поле из отчета об ошибках
    • pg_result_error — Возвращает сообщение об ошибке, связанное с запросом результата
    • pg_result_seek — Смещает указатель на строку выборки в ресурсе результата запроса
    • pg_result_status — Возвращает состояние результата запроса
    • pg_select — Выбирает записи из базы данных
    • pg_send_execute — Запускает предварительно подготовленный SQL-запрос и передает ему параметры; не ожидает возвращаемого результата
    • pg_send_prepare — Посылает запрос на создание параметризованного SQL-выражения, не дожидаясь его завершения
    • pg_send_query_params — Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата
    • pg_send_query — Отправляет асинхронный запрос
    • pg_set_client_encoding — Устанавливает клиентскую кодировку
    • pg_set_error_verbosity — Определяет объем текста сообщений, возвращаемых функциями pg_last_error и pg_result_error
    • pg_socket — Получить дескриптор только для чтения на сокет, лежащего в основе соединения PostgreSQL
    • pg_trace — Включает трассировку подключения PostgreSQL
    • pg_transaction_status — Возвращает текущее состояние транзакции на сервере
    • pg_tty — Возвращает имя терминала TTY, связанное с соединением
    • pg_unescape_bytea — Убирает экранирование двоичных данных типа bytea
    • pg_untrace — Отключает трассировку соединения с PostgreSQL
    • pg_update — Обновление данных в таблице
    • pg_version — Возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера (если доступно)


Введение

База данных PostgreSQL - это свободно доступный продукт с открытым исходным кодом. Изначально Postgres разрабатывался в Университете Компьютерных Наук Беркли и инициировал многие объектно-реляционные идеи, которые на данный момент доступны в некоторых коммерческих базах данных. В частности, это поддержка языка SQL92/SQL99, транзакции, ссылочная целостность, хранимые процедуры и расширение типов. PostgreSQL - это потомок своего первоисточника из Беркли с открытым исходным кодом.


Требования

Для использования PostgreSQL в PHP, у вас должен быть установлен PostgreSQL версии 6.5 или выше, либо PostgreSQL версии 8.0 для использования всех особенностей модуля PostgreSQL. В PostgreSQL есть поддержка различных кодировок символов, включая многобайтовую кодировку. Последняя версия и полная информация о PostgreSQL доступна на » http://www.postgresql.org/ и в » документации PostgreSQL.


Установка

Для того, чтобы включить поддержку PostgreSQL необходимо скомпилировать PHP с директивой --with-pgsql[=DIR] . Параметр DIR определяет путь к установочной директории PostgreSQL, по умолчанию это /usr/local/pgsql. Если доступен динамический модуль, то он может быть включен директивой extension в php.ini, либо функцией dl().


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации PostgreSQL
Имя | По умолчанию | Место изменения | Список изменений
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 | Доступно с версии 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.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

pgsql.allow_persistent boolean

Следует ли разрешить постоянное соединение с Postgres.

pgsql.max_persistent integer

Максимальное количество постоянных соединений на один процесс.

pgsql.max_links integer

Максимальное количество соединений Postgres на один процесс, включая постоянные соединения.

pgsql.auto_reset_persistent integer

Определять разорванные постоянные ссылки с pg_pconnect(). Требуются небольшие дополнительные ресурсы.

pgsql.ignore_notice integer

Игнорировать или нет уведомления от PostgreSQL.

pgsql.log_notice integer

Записывать ли в лог уведомления от PostgreSQL. Для записи в лог уведомлений также необходимо отключить PHP-директиву pgsql.ignore_notice.


Типы ресурсов

Существует два типа ресурсов используемых в модуле PostgreSQL. Первый из них представляет собой идентификатор соединения с базой данных, а второй - ресурс необходимый для хранения результата запроса.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

PGSQL_LIBPQ_VERSION (string)
Короткое обозначение версии libpq, содержащее только цифры и точки.
PGSQL_LIBPQ_VERSION_STR (string)
Длинное обозначение версии libpq, включая информацию компилятора.
PGSQL_ASSOC (integer)
Передается в функцию pg_fetch_array(). Возвращает ассоциативный массив 'имя поля' => 'значение поля'.
PGSQL_NUM (integer)
Передается в функцию pg_fetch_array(). Возвращает нумерованный массив 'номер поля' => 'значение поля'.
PGSQL_BOTH (integer)
Передается в функцию pg_fetch_array(). Возвращает массив значений поля, нумерованный (по номеру поля) и ассоциативный (по имени поля).
PGSQL_CONNECT_FORCE_NEW (integer)
Передается в функцию pg_connect() для принудительного создания нового подключения вместо использования идентичного существующего.
PGSQL_CONNECT_ASYNC (integer)
Передается в pg_connect() для создания асинхронного соединения. Добавлено в PHP 5.6.0.
PGSQL_CONNECTION_BAD (integer)
Возвращается функцией pg_connection_status(), указывает на неработоспособность соединения с базой данных.
PGSQL_CONNECTION_OK (integer)
Возвращается функцией pg_connection_status(), указывает на нормальное (рабочее) состояние соединения с базой данных.
PGSQL_SEEK_SET (integer)
Передается в функцию pg_lo_seek(). Операция поиска начнет работу с начала объекта.
PGSQL_SEEK_CUR (integer)
Передается в функцию pg_lo_seek(). Операция поиска начнет работу с текущей позиции.
PGSQL_SEEK_END (integer)
Передается в функцию pg_lo_seek(). Операция поиска начнет работу с конца объекта.
PGSQL_EMPTY_QUERY (integer)
Возвращается функцией pg_result_status(). Означает, что отправленная на сервер строка была пустой.
PGSQL_COMMAND_OK (integer)
Возвращается функцией pg_result_status(). Означает успешное завершение команды, не возвращающей данных.
PGSQL_TUPLES_OK (integer)
Возвращается функцией pg_result_status(). Означает успешное завершение команды, возвращающей какие-либо данные (например, SELECT или SHOW).
PGSQL_COPY_OUT (integer)
Возвращается функцией pg_result_status(). Сообщает, что было начато копирование данных с сервера.
PGSQL_COPY_IN (integer)
Возвращается функцией pg_result_status(). Сообщает, чтобыо начато копирование данных на сервер.
PGSQL_BAD_RESPONSE (integer)
Возвращается функцией pg_result_status(). Сообщает, что ответ от сервера не был распознан.
PGSQL_NONFATAL_ERROR (integer)
Возвращается функцией pg_result_status(). Сообщает, что произошла некритическая (уведомление или предупреждение) ошибка.
PGSQL_FATAL_ERROR (integer)
Возвращается функцией pg_result_status(). Сообщает, что произошла критическая ошибка.
PGSQL_TRANSACTION_IDLE (integer)
Возвращается функцией pg_transaction_status(). Означает, что соединение на данный момент бездействует и не находится в рамках транзакции.
PGSQL_TRANSACTION_ACTIVE (integer)
Возвращается функцией pg_transaction_status(). Означает состояние, когда команда находится в процессе выполнения. Запрос через соединение отправлен, но выполнение еще не завершено.
PGSQL_TRANSACTION_INTRANS (integer)
Возвращается функцией pg_transaction_status(). Означает, что соединение простаивает и находится в рамках транзакции.
PGSQL_TRANSACTION_INERROR (integer)
Возвращается функцией pg_transaction_status(). Означает, что соединение простаивает и находится в рамках транзакции потерпевшей неудачу при выполнении.
PGSQL_TRANSACTION_UNKNOWN (integer)
Возвращается функцией pg_transaction_status(). Означает, что соединение разорвано.
PGSQL_DIAG_SEVERITY (integer)
Передается в функцию pg_result_error_field(). Сообщает о затруднении. Возможны лишь перечисленные значения: ERROR, FATAL, или PANIC (в сообщении об ошибке), либо WARNING, NOTICE, DEBUG, INFO, или LOG (в уведомлении), либо перевод перечисленных значений в соответствии с используемой локализацией. Поле всегда определено.
PGSQL_DIAG_SQLSTATE (integer)
Передается в pg_result_error_field(). Код ошибки SQLSTATE. Код SQLSTATE определяет тип произошедшей ошибки; он может быть использован прикладной программой при выполнении специфических операций (таких как обработка ошибки) в ответ на ошибку базы данных. Это поле всегда определено и его значение не зависит от локализации.
PGSQL_DIAG_MESSAGE_PRIMARY (integer)
Передается в pg_result_error_field(). Основное удобочитаемое сообщение об ошибке (обычно одна строка). Поле всегда определено.
PGSQL_DIAG_MESSAGE_DETAIL (integer)
Передается в pg_result_error_field(). Детализация: дополнительное сообщение об ошибке, содержащее более подробную информацию о проблеме. Может содержать несколько строк.
PGSQL_DIAG_MESSAGE_HINT (integer)
Передается в pg_result_error_field(). Подсказка: указание на возможные пути устранения ошибки. Отличается от детализации ошибки тем, что это просто предложения (возможно ошибочные), а не точная информация. Может содержать несколько строк.
PGSQL_DIAG_STATEMENT_POSITION (integer)
Передается в pg_result_error_field(). Строка, содержащая десятичное целое число, указывающее на позицию курсора в исходном выражении, где произошла ошибка. Первый символ имеет индекс 1, позиции исчисляются в символах, а не в байтах.
PGSQL_DIAG_INTERNAL_POSITION (integer)
Передается в pg_result_error_field(). Определение тоже, что и для поля PG_DIAG_STATEMENT_POSITION, но используется в случаях, когда курсор указывает на команду, сгенерированную сервером БД. В таких случаях всегда появляется поле PG_DIAG_INTERNAL_QUERY.
PGSQL_DIAG_INTERNAL_QUERY (integer)
Передается в pg_result_error_field(). Текст ошибки, сгенерированной внутренней командой СУБД, в которой произошла ошибка. Это может быть, например, SQL-запрос, сформированный функцией PL/pgSQL.
PGSQL_DIAG_CONTEXT (integer)
Передается в pg_result_error_field(). Указание на контекст, где произошла ошибка. В основном содержит трассировку запрограммированных функций и автоматически сгенерированных запросов. Трассировка выводится построчно, начиная с последней строки.
PGSQL_DIAG_SOURCE_FILE (integer)
Передается в pg_result_error_field(). Имя файла исходного кода PostgreSQL, в котором отмечена ошибка.
PGSQL_DIAG_SOURCE_LINE (integer)
Передается в pg_result_error_field(). Номер строки файла исходного кода PostgreSQL, где отмечена ошибка.
PGSQL_DIAG_SOURCE_FUNCTION (integer)
Передается в pg_result_error_field(). Имя функции в исходном коде PostgreSQL, сообщающей об ошибке.
PGSQL_ERRORS_TERSE (integer)
Передается в pg_set_error_verbosity(). Дает предписание, что выдаваемые сообщения будут содержать только важность ошибки, основной текст и указатель на место, где она произошла; эта информация обычно умещается в одну строку.
PGSQL_ERRORS_DEFAULT (integer)
Передается в pg_set_error_verbosity(). В режиме по умолчанию сообщения об ошибках содержат описанную выше информацию, а также детализацию, подсказку или поля с контекстом ошибки (могут занимать несколько строк).
PGSQL_ERRORS_VERBOSE (integer)
Передается в pg_set_error_verbosity(). Задает режим, в котором в сообщения будут включены все возможные поля.
PGSQL_NOTICE_LAST (integer)
Используется pg_last_notice(). Доступно с PHP 7.1.0.
PGSQL_NOTICE_ALL (integer)
Используется pg_last_notice(). Доступно с PHP 7.1.0.
PGSQL_NOTICE_CLEAR (integer)
Используется pg_last_notice(). Доступно с PHP 7.1.0.
PGSQL_STATUS_LONG (integer)
Передается в pg_result_status(). Указывает на то, что в качестве возвращаемого значения ожидается числовой код.
PGSQL_STATUS_STRING (integer)
Передается в pg_result_status(). Указывает на то, что в качестве возвращаемого значения ожидается текстовое представление статуса.
PGSQL_CONV_IGNORE_DEFAULT (integer)
Передается в pg_convert(). Игнорировать значения по умолчанию в таблице в процессе преобразования.
PGSQL_CONV_FORCE_NULL (integer)
Передается в pg_convert(). Заменять пустые строки string на SQL NULL при преобразовании.
PGSQL_CONV_IGNORE_NOT_NULL (integer)
Передается в pg_convert(). Указывает, что не нужно конвертировать NULL в столбцы SQL NOT NULL.
PGSQL_DML_NO_CONV (integer)
Передается в pg_insert(), pg_select(), pg_update() и pg_delete(). Все параметры передаются в исходном виде. Ручное экранирование обязательно, если параметры содержат пользовательские данные. Используйте для этих целей pg_escape_string().
PGSQL_DML_EXEC (integer)
Передается в pg_insert(), pg_select(), pg_update() и pg_delete(). Выполнить запрос с помощью этих функций.
PGSQL_DML_ASYNC (integer)
Передается в pg_insert(), pg_select(), pg_update() и pg_delete(). Выполнить асинхронный запрос с помощью этих функций.
PGSQL_DML_STRING (integer)
Передается в pg_insert(), pg_select(), pg_update() и pg_delete(). Вернуть строку с выполненным запросом.
PGSQL_DML_ESCAPE (integer)
Передается в pg_insert(), pg_select(), pg_update() и pg_delete(). Применить экранирование ко всем параметрам вместо внутреннего вызова pg_convert(). Эта опция пропускает просмотр метаданных. Запрос может быть таким же быстрым, как и pg_query() и pg_send_query().
PGSQL_POLLING_FAILED (integer)
Возвращается функцией pg_connect_poll() и указывает на то, что попытка соединения провалилась.
PGSQL_POLLING_READING (integer)
Возвращается функцией pg_connect_poll() и указывает на то, что соединение ожидает, когда сокет PostgreSQL станет доступным для чтения.
PGSQL_POLLING_WRITING (integer)
Возвращается функцией pg_connect_poll() и указывает на то, что соединение ожидает, когда сокет PostgreSQL станет доступным для записи.
PGSQL_POLLING_OK (integer)
Возвращается функцией pg_connect_poll() и указывает на то, что соединение готово к использованию.
PGSQL_POLLING_ACTIVE (integer)
Возвращается функцией pg_connect_poll() и указывает на то, что соединение сейчас активно.
PGSQL_DIAG_SEVERITY_NONLOCALIZED (integer)
Важность; Возможны следующие значения: ERROR, FATAL или PANIC (в сообщении ошибке), либо WARNING, NOTICE, DEBUG, INFO или LOG (в сообщении предупреждении). Это идентично полю PG_DIAG_SEVERITY за исключением того, содержимое не локализовано. Доступно только в версии 9.6 или новее.


  • « Предопределенные константы
  • Базовое использование »
  • PHP Manual
  • PostgreSQL
  • Примеры

Примеры

Содержание

  • Базовое использование
  • Базовое использование


Базовое использование

Этот простой пример показывает как выполнить соединение с БД, отправить запрос, вывести его результат и закрыть соединение с PostgreSQL.

Пример #1 Пример работы с расширением PostgreSQL

<?php
// Соединение, выбор базы данных
$dbconn = pg_connect("host=localhost dbname=publishing user=www password=foo")
    or die('Не удалось соединиться: ' . pg_last_error());

// Выполнение SQL-запроса
$query = 'SELECT * FROM authors';
$result = pg_query($query) or die('Ошибка запроса: ' . pg_last_error());

// Вывод результатов в 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";

// Очистка результата
pg_free_result($result);

// Закрытие соединения
pg_close($dbconn);
?>


Базовое использование

Эти примеры содержат пользовательские функции, аналогичные устаревшим функциям MySQL.

Пример #1 Пример использования пользовательских функций PostgreSQL

<?php
// Эта функция необходима, так как соединение PostgreSQL связывает базу данных.
function pg_list_dbs($db)
{
    assert(is_resource($db));
    $query = '
SELECT
 d.datname as "Name",
 u.usename as "Owner",
 pg_encoding_to_char(d.encoding) as "Encoding"
FROM
 pg_database d LEFT JOIN pg_user u ON d.datdba = u.usesysid
ORDER BY 1;
';
    return pg_query($db, $query);
}

// Список таблиц.
function pg_list_tables($db)
{
    assert(is_resource($db));
    $query = "
SELECT
 c.relname as \"Name\",
 CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' END as \"Type\",
  u.usename as \"Owner\"
FROM
 pg_class c LEFT JOIN pg_user u ON c.relowner = u.usesysid
WHERE
 c.relkind IN ('r','v','S','')
 AND c.relname !~ '^pg_'
ORDER BY 1;
";
    return pg_query($db, $query);
}

// Смотрите также pg_meta_data(). Возвращает определение поля в виде массива.
function pg_list_fields($db, $table)
{
    assert(is_resource($db));
    $query = "
SELECT
 a.attname,
 format_type(a.atttypid, a.atttypmod),
 a.attnotnull,
 a.atthasdef,
 a.attnum
FROM
 pg_class c,
 pg_attribute a
WHERE
 c.relname = '".$table."'
 AND a.attnum > 0 AND a.attrelid = c.oid
ORDER BY a.attnum;
";
    return pg_query($db, $query);
}
?>


Функции PostgreSQL

Примечания

Замечание:

Не все функции могут поддерживаться в собранном модуле. Это зависит от версии вашей libpq (клиентская библиотека PostgreSQL) и как libpq была собрана. Если расширение PostgreSQL для PHP отсутствует, то это значит, что версия вашей libpq не поддерживается.

Замечание:

Большинство функций PostgreSQL принимают connection в качестве первого необязательного параметра. Если параметр отсутствует, то используется последнее открытое соединение. Если же такого не существует, то функция возвращает FALSE.

Замечание:

PostgreSQL автоматически переводит все идентификаторы (такие как имена таблиц/столбцов) в нижний регистр во время создания объекта и выполнения запроса. Для того, чтобы заставить использовать идентификаторы в обоих или только в верхнем регистрах, вы должны экранировать идентификатор с помощью двойных кавычек ("").

Замечание:

В PostgreSQL нет специальных команд для получения информации о схеме БД (к примеру, всех таблиц выбранной базы данных). Но вместо этого в версиях PostgreSQL 7.4 и выше существует стандартная схема, которая называется information_schema. Она содержит системные представления (view) со всей необходимой информацией в легкодоступной форме. Для дополнительной информации см. » документацию PostgreSQL

Содержание

  • pg_affected_rows — Возвращает количество затронутых запросом записей (кортежей)
  • pg_cancel_query — Остановка асинхронного запроса.
  • pg_client_encoding — Получение кодировки клиента.
  • pg_close — Закрывает соединение с базой данных PostgreSQL
  • pg_connect_poll — Опросить статус попытки асихронного соединения PostgreSQL.
  • pg_connect — Открывает соединение с базой данных PostgreSQL
  • pg_connection_busy — Проверяет, занято ли соединение в данный момент.
  • pg_connection_reset — Сброс подключения (переподключение)
  • pg_connection_status — Определяет состояние подключения
  • pg_consume_input — Читает вводные данные на соединении
  • pg_convert — Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах
  • pg_copy_from — Вставляет записи из массива в таблицу
  • pg_copy_to — Копирует данные из таблицы в массив
  • pg_dbname — Определяет имя базы данных
  • pg_delete — Удаляет записи
  • pg_end_copy — Синхронизирует с бэкендом PostgreSQL
  • pg_escape_bytea — Экранирует спецсимволы в строке для вставки в поле типа bytea
  • pg_escape_identifier — Экранирует идентификатор для вставки в текстовое поле
  • pg_escape_literal — Экранировать литерал при вставке в текстовое поле
  • pg_escape_string — Экранирование спецсимволов в строке запроса
  • pg_execute — Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат
  • pg_fetch_all_columns — Выбирает все записи из одной колонки результата запроса и помещает их в массив
  • pg_fetch_all — Выбирает все данные из результата запроса и помещает их в массив
  • pg_fetch_array — Возвращает строку результата в виде массива
  • pg_fetch_assoc — Выбирает строку результата запроса и помещает данные в ассоциативный массив
  • pg_fetch_object — Выбирает строку результата запроса и возвращает данные в виде объекта
  • pg_fetch_result — Возвращает запись из результата запроса
  • pg_fetch_row — Выбирает строку результата запроса и помещает данные в массив
  • pg_field_is_null — Проверка поля на значение SQL NULL
  • pg_field_name — Возвращает наименование поля
  • pg_field_num — Возвращает порядковый номер именованного поля
  • pg_field_prtlen — Возвращает количество печатаемых символов
  • pg_field_size — Возвращает размер поля
  • pg_field_table — Возвращает наименование или идентификатор таблицы, содержащей заданное поле
  • pg_field_type_oid — Возвращает идентификатор типа заданного поля
  • pg_field_type — Возвращает имя типа заданного поля
  • pg_flush — Сбросить данные исходящего запроса на соединении
  • pg_free_result — Очистка результата запроса и освобождение памяти
  • pg_get_notify — Получение SQL NOTIFY сообщения
  • pg_get_pid — Получает ID процесса сервера БД
  • pg_get_result — Получение результата асинхронного запроса
  • pg_host — Возвращает имя хоста, соответствующего подключению
  • pg_insert — Заносит данные из массива в таблицу базы данных
  • pg_last_error — Получает сообщение о последней произошедшей ошибке на соединении с базой данных
  • pg_last_notice — Возвращает последнее уведомление от сервера PostgreSQL
  • pg_last_oid — Возвращает OID последней добавленной в базу строки
  • pg_lo_close — Закрывает большой объект
  • pg_lo_create — Создает большой объект
  • pg_lo_export — Вывод большого объекта в файл
  • pg_lo_import — Импорт большого объекта из файла
  • pg_lo_open — Открывает большой объект базы данных
  • pg_lo_read_all — Читает содержимое большого объекта и посылает напрямую в браузер
  • pg_lo_read — Читает данные большого объекта
  • pg_lo_seek — Перемещает внутренний указатель большого объекта
  • pg_lo_tell — Возвращает текущее положение внутреннего указателя большого объекта
  • pg_lo_truncate — Обрезает большой объект
  • pg_lo_unlink — Удаление большого объекта
  • pg_lo_write — Записывает данные в большой объект
  • pg_meta_data — Получение метаданных таблицы
  • pg_num_fields — Возвращает количество полей в выборке
  • pg_num_rows — Возвращает количество строк в выборке
  • pg_options — Получение параметров соединения с сервером баз данных
  • pg_parameter_status — Просмотр текущих значений параметров сервера
  • pg_pconnect — Открывает постоянное соединение с сервером PostgreSQL
  • pg_ping — Проверка соединения с базой данных
  • pg_port — Возвращает номер порта, соответствующий заданному соединению
  • pg_prepare — Посылает запрос на создание параметризованного SQL выражения и ждет его завершения
  • pg_put_line — Передает на PostgreSQL сервер строку с завершающим нулем
  • pg_query_params — Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса
  • pg_query — Выполняет запрос
  • pg_result_error_field — Возвращает конкретное поле из отчета об ошибках
  • pg_result_error — Возвращает сообщение об ошибке, связанное с запросом результата
  • pg_result_seek — Смещает указатель на строку выборки в ресурсе результата запроса
  • pg_result_status — Возвращает состояние результата запроса
  • pg_select — Выбирает записи из базы данных
  • pg_send_execute — Запускает предварительно подготовленный SQL-запрос и передает ему параметры; не ожидает возвращаемого результата
  • pg_send_prepare — Посылает запрос на создание параметризованного SQL-выражения, не дожидаясь его завершения
  • pg_send_query_params — Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата
  • pg_send_query — Отправляет асинхронный запрос
  • pg_set_client_encoding — Устанавливает клиентскую кодировку
  • pg_set_error_verbosity — Определяет объем текста сообщений, возвращаемых функциями pg_last_error и pg_result_error
  • pg_socket — Получить дескриптор только для чтения на сокет, лежащего в основе соединения PostgreSQL
  • pg_trace — Включает трассировку подключения PostgreSQL
  • pg_transaction_status — Возвращает текущее состояние транзакции на сервере
  • pg_tty — Возвращает имя терминала TTY, связанное с соединением
  • pg_unescape_bytea — Убирает экранирование двоичных данных типа bytea
  • pg_untrace — Отключает трассировку соединения с PostgreSQL
  • pg_update — Обновление данных в таблице
  • pg_version — Возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера (если доступно)


Возвращает количество затронутых запросом записей (кортежей)

  • « Функции PostgreSQL
  • pg_cancel_query »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает количество затронутых запросом записей (кортежей)

pg_affected_rows

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_affected_rows — Возвращает количество затронутых запросом записей (кортежей)

Описание

pg_affected_rows ( resource $result ) : int

pg_affected_rows() возвращает количество кортежей (сущностей/записей/рядов) затронутых запросом INSERT, UPDATE, и DELETE queries.

С версии PostgreSQL 9.0 и новее, сервер возвращает число выбранных рядов для запроса SELECT. Более старые версии возвращают 0 для SELECT.

Замечание:

Ранее данная функция называлась pg_cmdtuples().

Список параметров

result

Результат запроса к PostgreSQL, значение типа "ресурс", возвращаемое функцией pg_query(), pg_query_params() или pg_execute() (среди прочих).

Возвращаемые значения

Количество записей, затронутых запросом. Если ни один кортеж не был затронут, функция вернет 0.

Примеры

Пример #1 Пример использования pg_affected_rows()

<?php
$result = pg_query($conn, "INSERT INTO authors VALUES ('Orwell', 2002, 'Animal Farm')");

$cmdtuples = pg_affected_rows($result);

echo $cmdtuples . " кортежей затронуто.\n";
?>

Результат выполнения данного примера:

1 кортежей затронуто.

Смотрите также

  • pg_query() - Выполняет запрос
  • pg_query_params() - Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса
  • pg_execute() - Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат
  • pg_num_rows() - Возвращает количество строк в выборке


Остановка асинхронного запроса.

  • « pg_affected_rows
  • pg_client_encoding »
  • PHP Manual
  • Функции PostgreSQL
  • Остановка асинхронного запроса.

pg_cancel_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_cancel_query — Остановка асинхронного запроса.

Описание

pg_cancel_query ( resource $connection ) : bool

pg_cancel_query() отменяет выполнение асинхронного запроса, отправленного функциями pg_send_query(), pg_send_query_params() или pg_send_execute(). Невозможно завершить выполнение запроса, запущенное функцией pg_query().

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_cancel_query()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Не удалось соединиться");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from authors; select count(*) from authors;");
  }

  $res1 = pg_get_result($dbconn);
  echo "Первый запрос к pg_get_result(): $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 получил $rows1 записей\n\n";

  // Остановка выполняющегося в данный момент запроса.
  // Последует второй запрос, если, конечно, он еще выполняется.
  pg_cancel_query($dbconn);
?>

Результат выполнения данного примера:

Первый запрос к pg_get_result(): Resource id #3
Resource id #3 получил 3 записей

Смотрите также

  • pg_send_query() - Отправляет асинхронный запрос
  • pg_connection_busy() - Проверяет, занято ли соединение в данный момент.


Получение кодировки клиента.

  • « pg_cancel_query
  • pg_close »
  • PHP Manual
  • Функции PostgreSQL
  • Получение кодировки клиента.

pg_client_encoding

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

pg_client_encoding — Получение кодировки клиента.

Описание

pg_client_encoding ([ resource $connection ] ) : string

PostgreSQL поддерживает автоматическое преобразование наборов символов между сервером и клиентом для некоторых кодировок. pg_client_encoding() возвращает клиентскую кодировку в виде строки, представляющей собой стандартный идентификатор кодировки PostgreSQL.

Замечание:

Функция поддерживается PHP версии 4.0.3 или выше и PostgreSQL версии 7.0 или выше. В случае, если libpg скомпилирована без поддержки многобайтовых кодировок, pg_client_encoding() всегда возвращает SQL_ASCII. Набор поддерживаемых кодировок зависит от версии сервера БД и описан в документации PostgreSQL.

Функция, используемая для вызова: pg_clientencoding().

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL. Если connection не задан, будет использовано соединение по умолчанию - последнее соединение созданное функциями pg_connect() или pg_pconnect().

Возвращаемые значения

Клиентская кодировка, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_client_encoding()

<?php
// Допустим, что $conn - соединение с базой данных, поддерживающей стандарт ISO-8859-1
$encoding = pg_client_encoding($conn);

echo "Кодировка клиента: ", $encoding, "\n";
?>

Результат выполнения данного примера:

Кодировка клиента: ISO-8859-1

Смотрите также

  • pg_set_client_encoding() - Устанавливает клиентскую кодировку


Закрывает соединение с базой данных PostgreSQL

  • « pg_client_encoding
  • pg_connect_poll »
  • PHP Manual
  • Функции PostgreSQL
  • Закрывает соединение с базой данных PostgreSQL

pg_close

(PHP 4, PHP 5, PHP 7)

pg_close — Закрывает соединение с базой данных PostgreSQL

Описание

pg_close ([ resource $connection ] ) : bool

pg_close() закрывает обычное (непостоянное) соединение с базой данных PostgreSQL, соответствующее ресурсу connection.

Замечание:

Использование pg_close(), как правило, необязательно, так как непостоянные соединения закрываются автоматически при завершении работы скрипта.

Если с соединением работают ресурсы "больших" объектов, то перед закрытием соединения необходимо закрыть эти ресурсы.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL. В случае, если connection не задан, будет закрыто последнее соединение открытое функциями pg_connect() или pg_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_close()

<?php
$dbconn = pg_connect("host=localhost port=5432 dbname=mary")
   or die("Невозможно подключиться к БД");
echo "Успешно подключено к БД";
pg_close($dbconn);
?>

Результат выполнения данного примера:

Успешно подключено к БД

Смотрите также

  • pg_connect() - Открывает соединение с базой данных PostgreSQL


Опросить статус попытки асихронного соединения PostgreSQL.

  • « pg_close
  • pg_connect »
  • PHP Manual
  • Функции PostgreSQL
  • Опросить статус попытки асихронного соединения PostgreSQL.

pg_connect_poll

(PHP 5 >= 5.6.0, PHP 7)

pg_connect_poll — Опросить статус попытки асихронного соединения PostgreSQL.

Описание

pg_connect_poll ( resource $connection ) : int

pg_connect_poll() опрашивает статус соединения PostgreSQL, созданного вызовом функции pg_connect() с параметром PGSQL_CONNECT_ASYNC.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

Возвращаемые значения

Возвращает PGSQL_POLLING_FAILED, PGSQL_POLLING_READING, PGSQL_POLLING_WRITING, PGSQL_POLLING_OK или PGSQL_POLLING_ACTIVE.


Открывает соединение с базой данных PostgreSQL

  • « pg_connect_poll
  • pg_connection_busy »
  • PHP Manual
  • Функции PostgreSQL
  • Открывает соединение с базой данных PostgreSQL

pg_connect

(PHP 4, PHP 5, PHP 7)

pg_connect — Открывает соединение с базой данных PostgreSQL

Описание

pg_connect ( string $connection_string [, int $connect_type ] ) : resource

pg_connect() открывает соединение с базой данных PostgreSQL, определенное строкой connection_string.

При повторном вызове функции pg_connect() с теми же значениями параметров в connection_string функция вернет существующее подключение. Чтобы принудительно создать новое соединение, необходимо передать строку подключения функции PGSQL_CONNECT_FORCE_NEW в качестве параметра connect_type.

Прежний синтаксис с множеством параметров $conn = pg_connect("host", "port", "options", "tty", "dbname") считается устаревшим.

Список параметров

connection_string

Строка connection_string может быть пустой строкой или содержать несколько параметров, разделенных пробелами. Каждый параметр указывается как keyword = value. Пробелы вокруг знака "равно" необязательны. Пустые строки в качестве значения или значения, содержащие пробелы отделяются одинарными кавычками, как например, keyword = 'a value'. Для записи одинарных кавычек и обратных слешей в качестве значений, их необходимо экранировать обратным слешем, то есть \' и \\.

Список основных ключевых слов: host, hostaddr, port, dbname (значение по умолчанию для параметра user), user, password, connect_timeout, options, tty (игнорируется), sslmode, requiressl (устарело в связи с использованием параметра sslmode), и service. Какие из этих аргументов будут обработаны, зависит от версии PostgreSQL.

Параметр options служит для установки параметров командной строки, которые обработаны сервером.

connect_type

Если в функцию передана константа PGSQL_CONNECT_FORCE_NEW, будет создаваться новое подключение, даже если connection_string идентична строке существующего подключения.

Если передана константа PGSQL_CONNECT_ASYNC, то соединение устанавливается асинхронным. Состояние соединения можно проверить с помощью функций pg_connect_poll() или pg_connection_status().

Возвращаемые значения

Ресурс соединения с базой данных PostgreSQL либо FALSE, если подключиться не удалось.

Список изменений

Версия | Описание
5.6.0 | Добавлена поддержка константы PGSQL_CONNECT_ASYNC для параметра connect_type.

Примеры

Пример #1 Использование функции pg_connect()

<?php
$dbconn = pg_connect("dbname=mary");
//подключиться к базе "mary"

$dbconn2 = pg_connect("host=localhost port=5432 dbname=mary");
//подключиться к базе "mary" на хосте "localhost", порт "5432"

$dbconn3 = pg_connect("host=sheep port=5432 dbname=mary user=lamb password=foo");
//подключиться к базе "mary" на хосте "sheep", используя имя пользователя и пароль

$conn_string = "host=sheep port=5432 dbname=test user=lamb password=bar";
$dbconn4 = pg_connect($conn_string);
//подключиться к базе "test" на хосте "sheep", используя имя пользователя и пароль

$dbconn5 = pg_connect("host=localhost options='--client_encoding=UTF8'");
//подключиться к базе на хосте "localhost" и передать параметр командной строки, задающий кодировку UTF-8
?>

Смотрите также

  • pg_pconnect() - Открывает постоянное соединение с сервером PostgreSQL
  • pg_close() - Закрывает соединение с базой данных PostgreSQL
  • pg_host() - Возвращает имя хоста, соответствующего подключению
  • pg_port() - Возвращает номер порта, соответствующий заданному соединению
  • pg_tty() - Возвращает имя терминала TTY, связанное с соединением
  • pg_options() - Получение параметров соединения с сервером баз данных
  • pg_dbname() - Определяет имя базы данных


Проверяет, занято ли соединение в данный момент.

  • « pg_connect
  • pg_connection_reset »
  • PHP Manual
  • Функции PostgreSQL
  • Проверяет, занято ли соединение в данный момент.

pg_connection_busy

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_connection_busy — Проверяет, занято ли соединение в данный момент.

Описание

pg_connection_busy ( resource $connection ) : bool

pg_connection_busy() определяет, занято соединение в данный момент или нет. Соединение занято, когда предыдущий запрос еще выполняется. Функция pg_get_result() также блокирует соединение на время своего выполнения.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

Возвращаемые значения

Возвращает TRUE, если соединение занято, в противном случае FALSE.

Примеры

Пример #1 Пример использования pg_connection_busy()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Не удалось соединится");
  $bs = pg_connection_busy($dbconn);
  if ($bs) {
      echo 'Соединение занято';
  } else {
     echo 'Соединение не занято';
  }
?>

Смотрите также

  • pg_connection_status() - Определяет состояние подключения
  • pg_get_result() - Получение результата асинхронного запроса


Сброс подключения (переподключение)

  • « pg_connection_busy
  • pg_connection_status »
  • PHP Manual
  • Функции PostgreSQL
  • Сброс подключения (переподключение)

pg_connection_reset

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_connection_reset — Сброс подключения (переподключение)

Описание

pg_connection_reset ( resource $connection ) : bool

pg_connection_reset() сбрасывает подключение. Может быть использована для устранения ошибок.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_connection_reset()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Не удалось соединиться");
  $dbconn2 = pg_connection_reset($dbconn);
  if ($dbconn2) {
      echo "Успешный сброс\n";
  } else {
      echo "Неудачный сброс\n";
  }
?>

Смотрите также

  • pg_connect() - Открывает соединение с базой данных PostgreSQL
  • pg_pconnect() - Открывает постоянное соединение с сервером PostgreSQL
  • pg_connection_status() - Определяет состояние подключения


Определяет состояние подключения

  • « pg_connection_reset
  • pg_consume_input »
  • PHP Manual
  • Функции PostgreSQL
  • Определяет состояние подключения

pg_connection_status

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_connection_status — Определяет состояние подключения

Описание

pg_connection_status ( resource $connection ) : int

pg_connection_status() возвращает состояние переданного в качестве аргумента соединения connection.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

Возвращаемые значения

PGSQL_CONNECTION_OK либо PGSQL_CONNECTION_BAD.

Примеры

Пример #1 Пример использования pg_connection_status()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Не удалось соединиться");
  $stat = pg_connection_status($dbconn);
  if ($stat === PGSQL_CONNECTION_OK) {
      echo 'Статус соединения: доступно';
  } else {
      echo 'Статус соединения: разорвано';
  }
?>

Смотрите также

  • pg_connection_busy() - Проверяет, занято ли соединение в данный момент.


Читает вводные данные на соединении

  • « pg_connection_status
  • pg_convert »
  • PHP Manual
  • Функции PostgreSQL
  • Читает вводные данные на соединении

pg_consume_input

(PHP 5 >= 5.6.0, PHP 7)

pg_consume_input — Читает вводные данные на соединении

Описание

pg_consume_input ( resource $connection ) : bool

pg_consume_input() принимает любые входные данные, ожидающие чтения с сервера базы данных.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

Возвращаемые значения

TRUE, если ошибки не возникло, или FALSE, если произошла ошибка. Обратите внимание, что TRUE не обязательно указывает, что входные данные ожидали чтения.


Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах

  • « pg_consume_input
  • pg_copy_from »
  • PHP Manual
  • Функции PostgreSQL
  • Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах

pg_convert

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_convert — Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах

Описание

pg_convert ( resource $connection , string $table_name , array $assoc_array [, int $options = 0 ] ) : array

pg_convert() проверяет и преобразовывает значения из assoc_array в приемлемые для SQL-сервера. Необходимо, чтобы существовала таблица table_name, а количество колонок в ней должно быть не меньше, чем значений в массиве assoc_array. Имена колонок в таблице table_name должны совпадать с ключами массива assoc_array, типы данных значений массива также должны совпадать с типами данных соответствующих колонок. В случае удачной конвертации функция возвращает массив преобразованных значений, иначе возвращает FALSE.

Замечание:

С версии PHP 5.6.0, допускаются булевы значения. Они преобразуются в булев тип PostgreSQL. Строковые представления булевого значения также поддерживаются. NULL преобразуется в PostgreSQL NULL.

До версии PHP 5.6.0, если таблица table_name содержит поля булева типа, не используйте константу TRUE в качестве значения массива table_name для этих полей. Она будет преобразована в строку 'TRUE', которая является недопустимым значением для булевых полей в PostgreSQL. Используйте значения "t", "true", "1", "y", "yes".

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

table_name

Имя таблицы базы данных.

assoc_array

Данные для преобразования.

options

Одна из констант PGSQL_CONV_IGNORE_DEFAULT, PGSQL_CONV_FORCE_NULL или PGSQL_CONV_IGNORE_NOT_NULL, либо их комбинация.

Возвращаемые значения

Массив (array), содержащий преобразованные данные, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_convert()

<?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);
?>

Список изменений

Версия | Описание
5.6.0 | Больше не является экспериментальной. Добавлена поддержка значений булевого типа/NULL. Неизвестные и неподдерживаемые типы данных экранируются без валидации. pg_convert() можно использовать с любыми типами данных.

Смотрите также

  • pg_meta_data() - Получение метаданных таблицы
  • pg_insert() - Заносит данные из массива в таблицу базы данных
  • pg_select() - Выбирает записи из базы данных
  • pg_update() - Обновление данных в таблице
  • pg_delete() - Удаляет записи


Вставляет записи из массива в таблицу

  • « pg_convert
  • pg_copy_to »
  • PHP Manual
  • Функции PostgreSQL
  • Вставляет записи из массива в таблицу

pg_copy_from

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_copy_from — Вставляет записи из массива в таблицу

Описание

pg_copy_from ( resource $connection , string $table_name , array $rows [, string $delimiter [, string $null_as ]] ) : bool

pg_copy_from() вставляет записи в таблицу из массива rows. В ходе выполнения вызывает SQL-команду COPY FROM для вставки записей.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

table_name

Имя таблицы, в которую копируются значения из rows.

rows

Массив (array) данных для копирования в table_name. Каждое значение в rows становится строкой в table_name. Каждое значение массива rows должно быть строкой с разделителем, содержащей значения для вставки в каждое поле таблицы. Значения должны заканчиваться символом перевода строки.

delimiter

Символ, отделяющий значения друг от друга в каждом элементе массива rows. По умолчанию TAB.

null_as

Определяет, каким образом значения SQL NULL представлены в массиве rows. По умолчанию \N ("\\N").

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_copy_from()

<?php
   $db = pg_connect("dbname=publisher") or die("Не удалось подключиться");

   $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_copy_from
  • pg_dbname »
  • PHP Manual
  • Функции PostgreSQL
  • Копирует данные из таблицы в массив

pg_copy_to

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_copy_to — Копирует данные из таблицы в массив

Описание

pg_copy_to ( resource $connection , string $table_name [, string $delimiter [, string $null_as ]] ) : array

pg_copy_to() копирует данные из таблицы в массив. Для получения записей посылает серверу команду SQL COPY TO.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

table_name

Имя таблицы, из которой данные копируются в массив rows.

delimiter

Символ-разделитель, отделяющий значения полей в элементах массива rows. По умолчанию TAB.

null_as

Этот параметр отвечает за то, как значения SQL NULL будут представлены в массиве rows. По умолчанию \N ("\\N").

Возвращаемые значения

Массив (array), в котором каждый элемент - строка, полученная с помощью COPY. В случае ошибки возвращает FALSE.

Примеры

Пример #1 Пример использования pg_copy_to()

<?php
   $db = pg_connect("dbname=publisher") or die("Невозможно подключиться");

   $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_to
  • pg_delete »
  • PHP Manual
  • Функции PostgreSQL
  • Определяет имя базы данных

pg_dbname

(PHP 4, PHP 5, PHP 7)

pg_dbname — Определяет имя базы данных

Описание

pg_dbname ([ resource $connection ] ) : string

pg_dbname() возвращает имя базы данных, соответствующей ресурсу PostgreSQL connection.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Строка, содержащая имя базы данных, соответствующей ресурсу connection, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_dbname()

<?php
  error_reporting(E_ALL);

  pg_connect("host=localhost port=5432 dbname=mary");
  echo pg_dbname(); // mary
?>


Удаляет записи

  • « pg_dbname
  • pg_end_copy »
  • PHP Manual
  • Функции PostgreSQL
  • Удаляет записи

pg_delete

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_delete — Удаляет записи

Описание

pg_delete ( resource $connection , string $table_name , array $assoc_array [, int $options = PGSQL_DML_EXEC ] ) : mixed

pg_delete() удаляет из таблицы записи, соответствующие ключам и значениям массива assoc_array. Если задан аргумент options, то массив assoc_array будет предварительно обработан функцией pg_convert(), вызванной с указанными параметрами.

Если options указан, pg_convert() применяется к assoc_array с указанными флагами.

По умолчанию pg_delete() передает необработаные значения. Значения должны быть экранированы или опция PGSQL_DML_ESCAPE должна быть указана. PGSQL_DML_ESCAPE заключает в кавычки и экранирует параметры/идентификаторы. Поэтому имена таблиц/столбцов становятся чувствительными к регистру.

Обратите внимание, что ни экранирование, ни подготовленный запрос не защитят запрос LIKE, JSON, массив, регулярные выражения и т.д.. Эти параметры должны обрабатываться в соответствии с их контекстами, т.е. следует экранировать/проверять значения.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

table_name

Имя таблицы, из которой удаляются записи.

assoc_array

Ассоциативный массив, ключи которого соответствуют именам полей таблицы table_name, а значения соответствуют удаляемым значениям в этих колонках.

options

Комбинация констант PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC или PGSQL_DML_STRING. Если константа PGSQL_DML_STRING присутствует в аргументе options, то функция вернет строку, содержащую запрос. Если установлены PGSQL_DML_NO_CONV или PGSQL_DML_ESCAPE, то функция pg_convert() внутренне не вызывается.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Возвращает строку, если в аргументе options передана константа PGSQL_DML_STRING.

Примеры

Пример #1 Пример использования pg_delete()

<?php
  $db = pg_connect('dbname=foo');
  // Это безопасно в некоторой степени, поскольку все значения экранируются.
  // Однако PostgreSQL поддерживает JSON/массив. Для этих значений это не безопасно
  // ни с через экранирование, ни с помощью подготовленного запроса.
  $res = pg_delete($db, 'post_log', $_POST);
  if ($res) {
      echo "Данные из POST удалены: $res\n";
  } else {
      echo "Пользователь отправил неверные входные данные\n";
  }
?>

Список изменений

Версия | Описание
5.6.0 | Больше не является экспериментальной. Добавлена константа PGSQL_DML_ESCAPE, TRUE/FALSE и NULL типы данных теперь поддерживаются.
5.5.3/5.4.19 | Исправлены прямые SQL-инъекции в table_name и непрямые SQL-инъекции в идентификаторах.

Смотрите также

  • pg_convert() - Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах


Синхронизирует с бэкендом PostgreSQL

  • « pg_delete
  • pg_escape_bytea »
  • PHP Manual
  • Функции PostgreSQL
  • Синхронизирует с бэкендом PostgreSQL

pg_end_copy

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

pg_end_copy — Синхронизирует с бэкендом PostgreSQL

Описание

pg_end_copy ([ resource $connection ] ) : bool

pg_end_copy() синхронизирует данные между фронтендом PostgreSQL (обычно процессом веб-сервера) и сервером PostgreSQL после завершения копирования данных, совершенных с помощью функции pg_put_line(). Использование pg_end_copy() необходимо, чтобы избежать рассинхронизации сервера PostgreSQL с фронтендом и сообщений об ошибках.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_end_copy()

<?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() - Передает на PostgreSQL сервер строку с завершающим нулем


Экранирует спецсимволы в строке для вставки в поле типа bytea

  • « pg_end_copy
  • pg_escape_identifier »
  • PHP Manual
  • Функции PostgreSQL
  • Экранирует спецсимволы в строке для вставки в поле типа bytea

pg_escape_bytea

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_escape_bytea — Экранирует спецсимволы в строке для вставки в поле типа bytea

Описание

pg_escape_bytea ([ resource $connection ], string $data ) : string

pg_escape_bytea() экранирует спецсимволы в строке с данными типа bytea. Возвращает экранированную строку.

Замечание:

При выборке SQL-функцией SELECT данных типа bytea PostgreSQL возвращает значения в восьмеричной системе счисления с префиксом '\' (такие как \032). Пользователю необходимо вручную преобразовывать их в двоичный формат.

Функция поддерживается PostgreSQL версии 7.2 и выше. Для версий 7.2.0 и 7.2.1 значения должны быть преобразованы к типу bytea, когда включена мультибайтовая поддержка. Тогда как INSERT INTO test_table (image)VALUES ('$image_escaped'::bytea); в PostgreSQL 7.2.2 и выше не требует каких-либо преобразований. Исключение составляет случай, когда клиентская (frontend) кодировка не соответствует серверной (backend). При этом возникает ошибка мультибайтового потока, и пользователь должен привести данные к типу bytea, чтобы ее избежать.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

data

Строка, содержащая двоичные данные в виде текста, которые требуется поместить в поле типа bytea.

Возвращаемые значения

Возвращает строку, в которой экранированы все необходимые символы.

Список изменений

Версия | Описание
5.2.0 | Добавлен аргумент connection

Примеры

Пример #1 Пример использования pg_escape_bytea()

<?php
  // Подключение к базе данных
  $dbconn = pg_connect('dbname=foo');

  // Чтение бинарного файла
  $data = file_get_contents('image1.jpg');

  // Экранирование спецсимволов в строке с двоичными данными
  $escaped = pg_escape_bytea($data);

  // Вставка в таблицу базы данных
  pg_query("INSERT INTO gallery (name, data) VALUES ('Pine trees', '{$escaped}')");
?>

Смотрите также

  • pg_unescape_bytea() - Убирает экранирование двоичных данных типа bytea
  • pg_escape_string() - Экранирование спецсимволов в строке запроса


Экранирует идентификатор для вставки в текстовое поле

  • « pg_escape_bytea
  • pg_escape_literal »
  • PHP Manual
  • Функции PostgreSQL
  • Экранирует идентификатор для вставки в текстовое поле

pg_escape_identifier

(PHP 5 >= 5.4.4, PHP 7)

pg_escape_identifier — Экранирует идентификатор для вставки в текстовое поле

Описание

pg_escape_identifier ([ resource $connection ], string $data ) : string

pg_escape_identifier() экранирует идентификатор (например, таблицу, имена полей) для выполнения запроса к базе. Возвращает экранированный идентификатор строки для сервера PostgreSQL. pg_escape_identifier() добавляет двойные кавычки до и после данных. Пользователи не должны добавлять двойные кавычки. Использование этой функции рекомендуется для параметров идентификаторов в запросах. Для SQL-литералов (то есть параметров, кроме bytea) необходимо использовать pg_escape_literal() или pg_escape_string(). Для типа поля bytea нужно использовать pg_escape_bytea().

Замечание:

Эта функция имеет внутренний код экранирования и может быть использована с PostgreSQL 8.4 и ниже.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL. Когда connection отсутствует, то используется соединение по умолчанию. Соединение по умолчанию - это последнее соединение, которое было создано функцией pg_connect() или pg_pconnect().

data

Строка (string), содержащая текст, который должен быть экранирован.

Возвращаемые значения

Строка (string), содержащая экранированные данные.

Примеры

Пример #1 Пример выполнения pg_escape_identifier()

<?php
  // Установить соединение с базой данных
  $dbconn = pg_connect('dbname=foo');

  // Экранировать данные имени таблицы
  $escaped = pg_escape_identifier($table_name);

  // Выбрать строки из $table_name
  pg_query("SELECT * FROM {$escaped};");
?>

Смотрите также

  • pg_escape_literal() - Экранировать литерал при вставке в текстовое поле
  • pg_escape_bytea() - Экранирует спецсимволы в строке для вставки в поле типа bytea
  • pg_escape_string() - Экранирование спецсимволов в строке запроса


Экранировать литерал при вставке в текстовое поле

  • « pg_escape_identifier
  • pg_escape_string »
  • PHP Manual
  • Функции PostgreSQL
  • Экранировать литерал при вставке в текстовое поле

pg_escape_literal

(PHP 5 >= 5.4.4, PHP 7)

pg_escape_literal — Экранировать литерал при вставке в текстовое поле

Описание

pg_escape_literal ([ resource $connection ], string $data ) : string

Функция pg_escape_literal() экранирует литерал для запроса базы данных PostgreSQL. Она возвращает экранированный литерал в формате PostgreSQL. pg_escape_literal() добавляет кавычки до и после данных. Пользователи не должны добавлять кавычки. Рекомендуется использовать эту функцию вместо pg_escape_string(). Если тип столбца - bytea, вместо него следует использовать pg_escape_bytea(). Для экранирования идентификаторов (например, таблицы, имен полей) необходимо использовать pg_escape_identifier().

Замечание:

Эта функция имеет внутренний код экранирования и может также использоваться с PostgreSQL 8.4 или младшей версии.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL. В случае, если connection не задан, используется соединение по умолчанию. Соединение по умолчанию - это последнее соединение, открытое функциями pg_connect() или pg_pconnect(). Если соединение по умолчанию отсутствует, вызывается ошибка уровня E_WARNING и возвращается FALSE.

data

Строка (string), содержащая текст для экранирования.

Возвращаемые значения

Строка (string), содержащая экранированный текст.

Примеры

Пример #1 Пример использования pg_escape_literal()

<?php
  // Подключение к базе данных
  $dbconn = pg_connect('dbname=foo');

  // Чтение из текстового файла (содержащий апострофы и обратные косые черты)
  $data = file_get_contents('letter.txt');

  // Экранирование текстовых данных
  $escaped = pg_escape_literal($data);

  // Вставка их в базу данных. Обратите внимание, что вокруг {$escaped} нет кавычек
  pg_query("INSERT INTO correspondence (name, data) VALUES ('My letter', {$escaped})");
?>

Смотрите также

  • pg_escape_identifier() - Экранирует идентификатор для вставки в текстовое поле
  • pg_escape_bytea() - Экранирует спецсимволы в строке для вставки в поле типа bytea
  • pg_escape_string() - Экранирование спецсимволов в строке запроса


Экранирование спецсимволов в строке запроса

  • « pg_escape_literal
  • pg_execute »
  • PHP Manual
  • Функции PostgreSQL
  • Экранирование спецсимволов в строке запроса

pg_escape_string

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_escape_string — Экранирование спецсимволов в строке запроса

Описание

pg_escape_string ([ resource $connection ], string $data ) : string

Функция pg_escape_string() экранирует спецсимволы в строке запроса для базы данных. Она возвращает экранированную строку в формате PostgreSQL. Функция pg_escape_string() является наиболее предпочтительным способом экранирования SQL параметров для PostgreSQL, в то время как addslashes() не должна использоваться с PostgreSQL. Если тип столбца bytea, то должна использоваться функция pg_escape_bytea() вместо pg_escape_string. Функция pg_escape_identifier() должна использоваться для экранирования идентификаторов (например, имена таблиц или полей).

Замечание:

Функция поддерживается PostgreSQL версии 7.2 и выше.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

data

Исходная экранируемая строка.

Возвращаемые значения

Возвращает строку, в которой экранированы все необходимые символы.

Список изменений

Версия | Описание
5.2.0 | Добавлен аргумент connection

Примеры

Пример #1 Пример использования pg_escape_string()

<?php
  // Подключение к базе данных
  $dbconn = pg_connect('dbname=foo');

  // Чтение текстового файла (содержащего апострофы и обратные слеши)
  $data = file_get_contents('letter.txt');

  // Экранирование спецсимволов в строке
  $escaped = pg_escape_string($data);

  // Вставка в таблицу базы данных
  pg_query("INSERT INTO correspondence (name, data) VALUES ('My letter', '{$escaped}')");
?>

Смотрите также

  • pg_escape_bytea() - Экранирует спецсимволы в строке для вставки в поле типа bytea


Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат

  • « pg_escape_string
  • pg_fetch_all_columns »
  • PHP Manual
  • Функции PostgreSQL
  • Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат

pg_execute

(PHP 5 >= 5.1.0, PHP 7)

pg_execute — Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат

Описание

pg_execute ([ resource $connection ], string $stmtname , array $params ) : resource

Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат.

pg_execute() аналог функции pg_query_params(), только вместо строки с запросом принимает имя предварительно подготовленного SQL-запроса. Это позволяет многократно выполнять единожды созданные запросы с различными параметрами. Сам запрос должен быть заранее подготовлен в текущей сессии. pg_execute() поддерживается PostgreSQL версии 7.4 и выше. Функция не будет работать на соединениях с сервером ранних версий.

Аргументы функции те же, что и у pg_query_params(), за исключением имени предварительно составленного запроса, который передается вместо строки с запросом.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

stmtname

Имя подготовленного к исполнению запроса. Если передана пустая строка "", будет выполнен безымянный запрос. Имя и содержимое запроса должны быть подготовлены функцией pg_prepare(), pg_send_prepare() либо с помощью SQL-команды PREPARE.

params

Массив значений параметров запроса для замены псевдопеременных $1, $2 и т.д. в исходной строке запроса. Количество элементов массива должно точно совпадать с количеством псевдопеременных.

Внимание

Элементы массива будут преобразованы в строки.

Возвращаемые значения

Ресурс результата выполнения запроса при успешном выполнении. или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_execute()

<?php
// Подключение к базе данных "mary"
$dbconn = pg_connect("dbname=mary");

// Подготовка запроса
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');

// Запуск запроса на выполнение. Стоит отметить, что нет необходимости экранировать
// спецсимволы в строке "Joe's Widgets"
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));

// Запуск на выполнение того же запроса, но с другим параметром
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));

?>

Смотрите также

  • pg_prepare() - Посылает запрос на создание параметризованного SQL выражения и ждет его завершения
  • pg_send_prepare() - Посылает запрос на создание параметризованного SQL-выражения, не дожидаясь его завершения
  • pg_query_params() - Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса


Выбирает все записи из одной колонки результата запроса и помещает их в массив

  • « pg_execute
  • pg_fetch_all »
  • PHP Manual
  • Функции PostgreSQL
  • Выбирает все записи из одной колонки результата запроса и помещает их в массив

pg_fetch_all_columns

(PHP 5 >= 5.1.0, PHP 7)

pg_fetch_all_columns — Выбирает все записи из одной колонки результата запроса и помещает их в массив

Описание

pg_fetch_all_columns ( resource $result [, int $column = 0 ] ) : array

pg_fetch_all_columns() возвращает массив, содержащий все записи одной колонки результата запроса.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

column

Номер колонки результата запроса, начиная с нуля, данные из которой будут помещены в массив. Если параметр не задан, будет обработана первая (нулевая) колонка.

Возвращаемые значения

Массив значений колонки результата запроса.

FALSE, если аргумент column больше количества колонок в результате запроса, а также при прочих ошибках.

Примеры

Пример #1 Пример использования pg_fetch_all_columns()

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

$result = pg_query($conn, "SELECT title, name, address FROM authors");
if (!$result) {
  echo "Произошла ошибка.\n";
  exit;
}

// Получить массив имен всех авторов
$arr = pg_fetch_all_columns($result, 1);

var_dump($arr);

?>

Смотрите также

  • pg_fetch_all() - Выбирает все данные из результата запроса и помещает их в массив


Выбирает все данные из результата запроса и помещает их в массив

  • « pg_fetch_all_columns
  • pg_fetch_array »
  • PHP Manual
  • Функции PostgreSQL
  • Выбирает все данные из результата запроса и помещает их в массив

pg_fetch_all

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_fetch_all — Выбирает все данные из результата запроса и помещает их в массив

Описание

pg_fetch_all ( resource $result [, int $result_type = PGSQL_ASSOC ] ) : array

pg_fetch_all() возвращает массив содержащий все записи из результата запроса.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

Возвращаемые значения

Многомерный массив данных результата запроса. Каждая строка результата представляется массивом значений полей, индексированным именами этих полей.

FALSE, когда в результате больше нет строк и при прочих ошибках.

Примеры

Пример #1 Пример использования

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "Произошла ошибка.\n";
    exit;
}

$result = pg_query($conn, "SELECT * FROM authors");
if (!$result) {
    echo "Произошла ошибка.\n";
    exit;
}

$arr = pg_fetch_all($result);

print_r($arr);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Fred
        )

    [1] => Array
        (
            [id] => 2
            [name] => Bob
        )

)

Список изменений

Версия | Описание
7.1.0 | Добавлен параметр result_type.

Смотрите также

  • pg_fetch_row() - Выбирает строку результата запроса и помещает данные в массив
  • pg_fetch_array() - Возвращает строку результата в виде массива
  • pg_fetch_object() - Выбирает строку результата запроса и возвращает данные в виде объекта
  • pg_fetch_result() - Возвращает запись из результата запроса


Возвращает строку результата в виде массива

  • « pg_fetch_all
  • pg_fetch_assoc »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает строку результата в виде массива

pg_fetch_array

(PHP 4, PHP 5, PHP 7)

pg_fetch_array — Возвращает строку результата в виде массива

Описание

pg_fetch_array ( resource $result [, int $row [, int $result_type = PGSQL_BOTH ]] ) : array

pg_fetch_array() возвращает массив, соответствующий выбранной строке (записи).

pg_fetch_array() расширенная версия функции pg_fetch_row(). Эта функция способна сохранить данные не только с цифровыми индексами, но и с ассоциативными (имя поля). По умолчанию хранит и те и другие.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

pg_fetch_array() выполняется незначительно медленнее чем pg_fetch_row(), но значительно проще в использовании.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращенный функцией pg_query(), pg_query_params() или pg_execute() (и прочих).

row

Номер строки в result для выборки. Строки пронумерованы с 0 по возрастанию. Если параметр опущен или передан NULL будет выбрана следующая строка.

result_type

Необязательный параметр для управления типом индексации возвращаемого массива (array). Параметр result_type обязателен и может принимать следующие значения: PGSQL_ASSOC, PGSQL_NUM и PGSQL_BOTH. При указании PGSQL_NUM, pg_fetch_array() вернет массив с числовыми индексами, в случае PGSQL_ASSOC вернет только ассоциативные индексы, а в случае PGSQL_BOTH (используется по умолчанию) - числовые и ассоциативные индексы.

Возвращаемые значения

Массив (array) с числовыми индексами (начиная с 0), либо ассоциативными (по имени поля), либо с обеими типами индексов. Каждое значение в массиве (array) представлено как строка (string). Значение NULL возвращается как NULL.

Функция возвращает FALSE, если row выходит за рамки количества строк в выборке, или отсутствия строк, или в случае любой другой ошибки.

Примеры

Пример #1 Пример использования pg_fetch_array()

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "Произошла ошибка.\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";

// Параметр row необязателен,
// для передечи result_type вместо row можно передать NULL.
// Успешные вызовы pg_fetch_array вернут следующий ряд.

$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_array
  • pg_fetch_object »
  • PHP Manual
  • Функции PostgreSQL
  • Выбирает строку результата запроса и помещает данные в ассоциативный массив

pg_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_fetch_assoc — Выбирает строку результата запроса и помещает данные в ассоциативный массив

Описание

pg_fetch_assoc ( resource $result [, int $row ] ) : array

pg_fetch_assoc() возвращает ассоциативный массив, содержащий записи из строки результата запроса.

Результат выполнения pg_fetch_assoc() тот же, что и у pg_fetch_array() с параметром PGSQL_ASSOC. Функция возвращает только ассоциативный массив. Если нужен численно-индексированный массив, используйте функцию pg_fetch_row().

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

pg_fetch_assoc() не намного медленней и значительно проще в использовании, чем pg_fetch_row().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

row

Номер выбираемой из результата запроса строки. Нумерация начинается с нуля. Если аргумент опущен или равен NULL, берется следующая по очереди строка.

Возвращаемые значения

Ассоциативный массив, индексированный именами полей выборки. Значения массива представляются в виде текстовых строк. Значения NULL базы данных преобразуются в PHP NULL.

FALSE, если row превышает число строк в результате запроса, когда строк в результате не осталось, и при прочих ошибках.

Примеры

Пример #1 Пример использования pg_fetch_assoc()

<?php
$conn = pg_connect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

$result = pg_query($conn, "SELECT id, author, email FROM authors");
if (!$result) {
  echo "Произошла ошибка.\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_assoc
  • pg_fetch_result »
  • PHP Manual
  • Функции PostgreSQL
  • Выбирает строку результата запроса и возвращает данные в виде объекта

pg_fetch_object

(PHP 4, PHP 5, PHP 7)

pg_fetch_object — Выбирает строку результата запроса и возвращает данные в виде объекта

Описание

pg_fetch_object ( resource $result [, int $row [, int $result_type = PGSQL_ASSOC ]] ) : object
pg_fetch_object ( resource $result [, int $row [, string $class_name [, array $params ]]] ) : object

pg_fetch_object() возвращает объект, свойства которого соответствуют именам полей выборки. Также функция может создать экземпляр конкретного класса и передать параметры его конструктору.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

По скорости функция идентична pg_fetch_array() и немного медленней pg_fetch_row() (разница незначительна).

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

row

Номер выбираемой из результата запроса строки. Нумерация начинается с нуля. Если аргумент опущен или равен NULL, берется следующая по очереди строка.

result_type

Устарел и не используется.

class_name

Имя класса создаваемого и возвращаемого объекта. Если не задано, функция создаст экземпляр класса stdClass.

params

Необязательный аргумент. Массив параметров для передачи в конструктор создаваемого объекта.

Возвращаемые значения

Объект (object), имена и значения свойств которого соответствуют именам и значениям полей результата запроса. Значения NULL базы данных преобразуются в PHP NULL.

FALSE, когда row превышает число строк в результате запроса, когда строк в результате не осталось, и при прочих ошибках.

Примеры

Пример #1 Пример использования pg_fetch_object()

<?php

$database = "store";

$db_conn = pg_connect("host=localhost port=5432 dbname=$database");
if (!$db_conn) {
  echo "Невозможно соединиться с базой postgres $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_object
  • pg_fetch_row »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает запись из результата запроса

pg_fetch_result

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_fetch_result — Возвращает запись из результата запроса

Описание

pg_fetch_result ( resource $result , int $row , mixed $field ) : string
pg_fetch_result ( resource $result , mixed $field ) : string

pg_fetch_result() возвращает значение ячейки таблицы результата запроса.

Замечание:

Прежнее наименование функции: pg_result().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

row

Номер выбираемой из результата запроса строки. Нумерация начинается с нуля. Если аргумент опущен, берется следующая по очереди строка.

field

Имя или номер поля выбираемого значения. Поля нумеруются с нуля.

Возвращаемые значения

Логические значения возвращаются как "t" или "f". Остальные типы, включая массивы, возвращаются в виде строк в стандартном формате PostgreSQL, аналогично выводу программы psql. Значения NULL базы данных преобразуются в PHP NULL.

FALSE, если row превышает число строк в результате запроса, и при прочих ошибках.

Примеры

Пример #1 Пример использования pg_fetch_result()

<?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 "Первое поле во второй строчке результата это: ", $val, "\n";
?>

Результат выполнения данного примера:

Первое поле во второй строчке результата это: 2

Смотрите также

  • pg_query() - Выполняет запрос
  • pg_fetch_array() - Возвращает строку результата в виде массива


Выбирает строку результата запроса и помещает данные в массив

  • « pg_fetch_result
  • pg_field_is_null »
  • PHP Manual
  • Функции PostgreSQL
  • Выбирает строку результата запроса и помещает данные в массив

pg_fetch_row

(PHP 4, PHP 5, PHP 7)

pg_fetch_row — Выбирает строку результата запроса и помещает данные в массив

Описание

pg_fetch_row ( resource $result [, int $row ] ) : array

pg_fetch_row() выбирает одну строку из результата запроса result.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

row

Номер выбираемой из результата запроса строки. Нумерация начинается с нуля. Если аргумент опущен или равен NULL, берется следующая по очереди строка.

Возвращаемые значения

Численно индексированный массив значений из строки результата запроса. Индексация начинается с нуля. Значения представляются в виде строк. Значения NULL базы данных преобразуются в PHP NULL.

FALSE, если row превышает число строк в результате запроса, когда строк в результате не осталось, и при прочих ошибках.

Примеры

Пример #1 Пример использования pg_fetch_row()

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "Произошла ошибка.\n";
  exit;
}

while ($row = pg_fetch_row($result)) {
  echo "Автор: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}

?>

Смотрите также

  • pg_query() - Выполняет запрос
  • pg_fetch_array() - Возвращает строку результата в виде массива
  • pg_fetch_object() - Выбирает строку результата запроса и возвращает данные в виде объекта
  • pg_fetch_result() - Возвращает запись из результата запроса


Проверка поля на значение SQL NULL

  • « pg_fetch_row
  • pg_field_name »
  • PHP Manual
  • Функции PostgreSQL
  • Проверка поля на значение SQL NULL

pg_field_is_null

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_is_null — Проверка поля на значение SQL NULL

Описание

pg_field_is_null ( resource $result , int $row , mixed $field ) : int
pg_field_is_null ( resource $result , mixed $field ) : int

pg_field_is_null() проверяет, содержит ли ячейка результата запроса значение SQL NULL.

Замечание:

Прежнее наименование функции: pg_fieldisnull().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

row

Номер строки результата запроса с нужным полем. Нумерация строк начинается с нуля. Если аргумент не задан, будет выбрана текущая строка.

field

Номер поля (начиная с нуля) как integer или имя поля как string.

Возвращаемые значения

Возвращает 1, если выбранное значение SQL NULL, 0 для других значений. Функция вернет FALSE, если номер строки будет вне допустимого диапазона и при прочих ошибках.

Примеры

Пример #1 Пример использования pg_field_is_null()

<?php
  $dbconn = pg_connect("dbname=publisher") or die ("Не удалось соединиться с базой");
  $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
  if ($res) {
      if (pg_field_is_null($res, 0, "year") == 1) {
          echo "Значение поля year null.\n";
      }
      if (pg_field_is_null($res, 0, "year") == 0) {
          echo "Значение поля year не null.\n";
    }
 }
?>


Возвращает наименование поля

  • « pg_field_is_null
  • pg_field_num »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает наименование поля

pg_field_name

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_name — Возвращает наименование поля

Описание

pg_field_name ( resource $result , int $field_number ) : string

pg_field_name() возвращает имя поля результата запроса result с порядковым номером field_number. Нумерация полей начинается с нуля.

Замечание:

Прежнее название функции: pg_fieldname().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

field_number

Номер поля, начиная с нуля.

Возвращаемые значения

Наименование поля, либо FALSE в случае ошибки.

Примеры

Пример #1 Получение информации о полях выборки

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Не удалось соединиться с базой");

  $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_name
  • pg_field_prtlen »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает порядковый номер именованного поля

pg_field_num

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_num — Возвращает порядковый номер именованного поля

Описание

pg_field_num ( resource $result , string $field_name ) : int

pg_field_num() вернет порядковый номер поля с именем field_name в результате запроса result.

Замечание:

Прежнее название функции: pg_fieldnum().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

field_name

Наименование поля.

Возвращаемые значения

Номер поля (начиная с нуля), либо -1 в случае ошибки.

Примеры

Пример #1 Получение информации о полях выборки

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Не удалось соединиться с базой");

  $res = pg_query($dbconn, "select author, year, title from authors where author = 'Orwell'");

  echo "Столбец 'title' - это поле с номером: ", pg_field_num($res, 'title');
?>

Результат выполнения данного примера:

Столбец 'title' - это поле с номером: 2

Смотрите также

  • pg_field_name() - Возвращает наименование поля


Возвращает количество печатаемых символов

  • « pg_field_num
  • pg_field_size »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает количество печатаемых символов

pg_field_prtlen

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_prtlen — Возвращает количество печатаемых символов

Описание

pg_field_prtlen ( resource $result , int $row_number , mixed $field_name_or_number ) : int
pg_field_prtlen ( resource $result , mixed $field_name_or_number ) : int

pg_field_prtlen() возвращает длину строки (количество символов) значения поля при выводе результата result. Строки нумеруются с нуля. Функция вернет FALSE в случае ошибки.

field_name_or_number Номер или имя выбранного поля. Может передаваться либо как integer, либо как string. Если передается значение типа integer, PHP распознает его как номер, в противном случае как наименование поля.

Ознакомьтесь с примерами на странице с описанием функции pg_field_name().

Замечание:

Прежнее название функции: pg_fieldprtlen().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

row

Номер строки результата запроса с нужным полем. Нумерация строк начинается с нуля. Если аргумент не задан, будет выбрана текущая строка.

Возвращаемые значения

Длина строки при выводе значения поля, либо FALSE в случае ошибки.

Примеры

Пример #1 Получение информации о полях выборки

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Не удалось соединиться с базой");

  $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_prtlen
  • pg_field_table »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает размер поля

pg_field_size

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_size — Возвращает размер поля

Описание

pg_field_size ( resource $result , int $field_number ) : int

pg_field_size() возвращает объем памяти (в байтах), занимаемый значением поля результата запроса PostgreSQL result.

Замечание:

Прежнее название функции: pg_fieldsize().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

field_number

Порядковый номер поля результата запроса, начиная с нуля.

Возвращаемые значения

Требуемый объем памяти (в байтах) для хранения значения поля. -1 указывает на переменный размер поля. FALSE в случае ошибки.

Примеры

Пример #1 Получение информации о полях выборки

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Невозможно соединиться с базой");

  $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_size
  • pg_field_type_oid »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает наименование или идентификатор таблицы, содержащей заданное поле

pg_field_table

(PHP 5 >= 5.2.0, PHP 7)

pg_field_table — Возвращает наименование или идентификатор таблицы, содержащей заданное поле

Описание

pg_field_table ( resource $result , int $field_number [, bool $oid_only = FALSE ] ) : mixed

pg_field_table() возвращает имя таблицы, которой принадлежит заданное поле. Если в качестве аргумента oid_only передается TRUE, функция вернет oid-идентификатор таблицы.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

field_number

Порядковый номер поля результата запроса, начиная с нуля.

oid_only

По умолчанию функция возвращает название таблицы, содержащей заданное поле. Если параметр oid_only равен TRUE, то функция вернет oid таблицы.

Возвращаемые значения

При успешном завершении название таблицы или ее oid. Либо FALSE при неудаче.

Примеры

Пример #1 Получение информации о поле выборки

<?php
$dbconn = pg_connect("dbname=publisher") or die("Не удалось соединиться с базой");

$res = pg_query($dbconn, "SELECT bar FROM foo");

echo pg_field_table($res, 0);
echo pg_field_table($res, 0, true);

$res = pg_query($dbconn, "SELECT version()");
var_dump(pg_field_table($res, 0));
?>

Результатом выполнения данного примера будет что-то подобное:

foo
14379580

bool(false)

Примечания

Замечание:

Возврат oid таблицы значительно быстрее, чем ее названия, потому как определение названия требует выполнения дополнительного запроса к системной таблице базы данных.

Смотрите также

  • pg_field_name() - Возвращает наименование поля
  • pg_field_type() - Возвращает имя типа заданного поля


Возвращает идентификатор типа заданного поля

  • « pg_field_table
  • pg_field_type »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает идентификатор типа заданного поля

pg_field_type_oid

(PHP 5 >= 5.1.0, PHP 7)

pg_field_type_oid — Возвращает идентификатор типа заданного поля

Описание

pg_field_type_oid ( resource $result , int $field_number ) : int

pg_field_type_oid() возвращает целочисленный идентификатор базового типа (OID) значений колонки результата запроса result с номером field_number.

Более подробную информацию о типе значений можно получить, отправив запрос с полученным OID к системной таблице PostgreSQL pg_type. Функция PostgreSQL format_type() преобразует OID в стандартное имя типа SQL.

Замечание:

Если в качестве типа значений используется PostgreSQL домен (вместо базового типа), функция вернет OID типа внутри домена, а не OID самого домена.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

field_number

Порядковый номер поля, начиная с нуля.

Возвращаемые значения

OID базового типа значений поля, либо FALSE в случае ошибки.

Примеры

Пример #1 Получение информации о полях выборки

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Невозможно соединиться с базой");

  // Допустим, 'title' имеет тип varchar
  $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_type_oid
  • pg_flush »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает имя типа заданного поля

pg_field_type

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_type — Возвращает имя типа заданного поля

Описание

pg_field_type ( resource $result , int $field_number ) : string

pg_field_type() возвращает строку, содержащую имя базового типа значений колонки результата запроса result с номером field_number.

Замечание:

Если в качестве типа значений используется PostgreSQL домен (вместо базового типа), функция вернет имя типа внутри домена, а не имя самого домена.

Замечание:

Прежнее название функции: pg_fieldtype().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

field_number

Порядковый номер поля, начиная с нуля.

Возвращаемые значения

Строка, содержащая имя базового типа значений поля, либо FALSE в случае ошибки.

Примеры

Пример #1 Получение информации о поле выборки

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Не удалось соединиться с базой");

  // Положим, 'title' имеет тип varchar
  $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
  • pg_free_result »
  • PHP Manual
  • Функции PostgreSQL
  • Сбросить данные исходящего запроса на соединении

pg_flush

(PHP 5 >= 5.6.0, PHP 7)

pg_flush — Сбросить данные исходящего запроса на соединении

Описание

pg_flush ( resource $connection ) : mixed

pg_flush() сбрасывает любые данные исходящего запроса, ожидающие отправки на соединении.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

Возвращаемые значения

Возвращает TRUE, если сброс был успешный или данные не ожидали сброса, либо 0, если часть ожидающих данных была сброшена, однако остались ещё, или FALSE в случае возникновения ошибки.


Очистка результата запроса и освобождение памяти

  • « pg_flush
  • pg_get_notify »
  • PHP Manual
  • Функции PostgreSQL
  • Очистка результата запроса и освобождение памяти

pg_free_result

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_free_result — Очистка результата запроса и освобождение памяти

Описание

pg_free_result ( resource $result ) : bool

pg_free_result() освобождает память, занятую результатом запроса PostgreSQL resource.

Вызывать эту функцию следует только в случае нехватки памяти при выполнении скрипта. В любом случае память будет освобождена автоматически по окончании работы скрипта.

Замечание:

Прежнее название функции: pg_freeresult().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_free_result()

<?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 "Первое поле во второй строчке: ", $val, "\n";

pg_free_result($res);
?>

Результат выполнения данного примера:

Первое поле во второй строчке: 2

Смотрите также

  • pg_query() - Выполняет запрос
  • pg_query_params() - Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса
  • pg_execute() - Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат


Получение SQL NOTIFY сообщения

  • « pg_free_result
  • pg_get_pid »
  • PHP Manual
  • Функции PostgreSQL
  • Получение SQL NOTIFY сообщения

pg_get_notify

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_get_notify — Получение SQL NOTIFY сообщения

Описание

pg_get_notify ( resource $connection [, int $result_type ] ) : array

pg_get_notify() получает уведомления, сгенерированные командой SQL NOTIFY. Для получения уведомлений используйте команду SQL LISTEN.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

result_type

Необязательный аргумент, указывающий, каким образом возвращаемый массив (array) будет проиндексирован.result_type - константа, и может принимать следующие значения: PGSQL_ASSOC, PGSQL_NUM или PGSQL_BOTH. При передаче PGSQL_ASSOC функция pg_get_notify() вернет ассоциативный массив, при передаче PGSQL_NUM - численно индексированный, в случае PGSQL_BOTH (по умолчанию) будут возвращены оба массива.

Возвращаемые значения

Массив (array), содержащий сообщение NOTIFY и PID сервера БД. С версии PHP 5.4.0 и если поддерживается сервером, массив также содержит версию сервера и полезную нагрузку. Если никаких уведомлений не ожидается, функция вернет FALSE.

Примеры

Пример #1 Сообщение PostgreSQL NOTIFY

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

// Слушаем сообщение 'author_updated' из другого процесса
pg_query($conn, 'LISTEN author_updated;');
$notify = pg_get_notify($conn);
if (!$notify) {
  echo "Нет сообщений\n";
} else {
  print_r($notify);
}
?>

Смотрите также

  • pg_get_pid() - Получает ID процесса сервера БД


Получает ID процесса сервера БД

  • « pg_get_notify
  • pg_get_result »
  • PHP Manual
  • Функции PostgreSQL
  • Получает ID процесса сервера БД

pg_get_pid

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_get_pid — Получает ID процесса сервера БД

Описание

pg_get_pid ( resource $connection ) : int

pg_get_pid() получает PID сервера базы данных. PID полезен, когда требуется определить, какой процесс отправил NOTIFY сообщение, принятое функцией pg_get_notify() (точнее узнать, сервер его отправил или какой-то другой процесс).

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

Возвращаемые значения

ID процесса сервера баз данных.

Примеры

Пример #1 PID сервера PostgreSQL

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

// PID сервера БД. Сравните его с PID возвращаемым pg_get_notify()
$pid = pg_get_pid($conn);
?>

Смотрите также

  • pg_get_notify() - Получение SQL NOTIFY сообщения


Получение результата асинхронного запроса

  • « pg_get_pid
  • pg_host »
  • PHP Manual
  • Функции PostgreSQL
  • Получение результата асинхронного запроса

pg_get_result

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_get_result — Получение результата асинхронного запроса

Описание

pg_get_result ([ resource $connection ] ) : resource

pg_get_result() получает ресурс результата асинхронного
запроса, запущенного функциями pg_send_query(),
pg_send_query_params() или pg_send_execute().

pg_send_query() и другие функции, посылающие асинхронные запросы, может посылать сразу несколько запросов на сервер. Функция pg_get_result() получит результаты всех запросов по очереди.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

Возвращаемые значения

Ресурс результата запроса, либо FALSE, когда доступных результатов больше нет.

Примеры

Пример #1 Пример использования pg_get_result()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Невозможно соединиться с сервером");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from authors; select count(*) from authors;");
  }

  $res1 = pg_get_result($dbconn);
  echo "Первый вызов pg_get_result(): $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 имеет $rows1 записей\n\n";

  $res2 = pg_get_result($dbconn);
  echo "Второй вызов pg_get_result(): $res2\n";
  $rows2 = pg_num_rows($res2);
  echo "$res2 имеет $rows2 записей\n";
?>

Результат выполнения данного примера:

Первый вызов pg_get_result(): Resource id #3
Resource id #3 имеет 3 записей

Второй вызов pg_get_result(): Resource id #4
Resource id #4 имеет 1 записей

Смотрите также

  • pg_send_query() - Отправляет асинхронный запрос


Возвращает имя хоста, соответствующего подключению

  • « pg_get_result
  • pg_insert »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает имя хоста, соответствующего подключению

pg_host

(PHP 4, PHP 5, PHP 7)

pg_host — Возвращает имя хоста, соответствующего подключению

Описание

pg_host ([ resource $connection ] ) : string

pg_host() возвращает имя хоста, с которым установлено заданное соединение PostgreSQL connection.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Строка, содержащая имя подключенного через connection хоста, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_host()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "Успешно подключились к : " . pg_host($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Смотрите также

  • pg_connect() - Открывает соединение с базой данных PostgreSQL
  • pg_pconnect() - Открывает постоянное соединение с сервером PostgreSQL


Заносит данные из массива в таблицу базы данных

  • « pg_host
  • pg_last_error »
  • PHP Manual
  • Функции PostgreSQL
  • Заносит данные из массива в таблицу базы данных

pg_insert

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_insert — Заносит данные из массива в таблицу базы данных

Описание

pg_insert ( resource $connection , string $table_name , array $assoc_array [, int $options = PGSQL_DML_EXEC ] ) : mixed

pg_insert() вставляет записи из массива assoc_array в таблицу table_name. Если задан аргумент options, значения массива будут преобразованы функцией pg_convert() соответствии с параметрами из этого аргумента.

Если options указан, pg_convert() применяется к assoc_array с указанными флагами.

По умолчанию pg_insert() передает необработаные значения. Значения должны быть экранированы или опция PGSQL_DML_ESCAPE должна быть указана. PGSQL_DML_ESCAPE заключает в кавычки и экранирует параметры/идентификаторы. Поэтому имена таблиц/столбцов становятся чувствительными к регистру.

Обратите внимание, что ни экранирование, ни подготовленный запрос не защитят запрос LIKE, JSON, массив, регулярные выражения и т.д.. Эти параметры должны обрабатываться в соответствии с их контекстами, т.е. следует экранировать/проверять значения.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

table_name

Имя таблицы для вставки данных. Количество колонок в таблице table_name должно быть не меньше, чем элементов в массиве assoc_array.

assoc_array

Ассоциативный массив(array), в котором ключи являются названиями колонок таблицы table_name, а значения - записи, которые необходимо вставить в эти колонки.

options

Комбинация констант PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC и PGSQL_DML_STRING. Если в числе прочих передается PGSQL_DML_STRING в параметре options, функция вернет строку запроса. Если установлены PGSQL_DML_NO_CONV или PGSQL_DML_ESCAPE, то функция pg_convert() внутренне не вызывается.

Возвращаемые значения

Возвращает ресурс соединения в случае успешного выполнения, или FALSE в случае возникновения ошибки. Возвращает строку(string), если PGSQL_DML_STRING включена в список параметров аргумента options.

Примеры

Пример #1 Пример использования pg_insert()

<?php
  $dbconn = pg_connect('dbname=foo');
  // Это безопасно в некоторой степени, поскольку все значения экранируются.
  // Однако PostgreSQL поддерживает JSON/массив. Для этих значений это не безопасно
  // ни с через экранирование, ни с помощью подготовленного запроса.
  $res = pg_insert($dbconn, 'post_log', $_POST);
  if ($res) {
      echo "Данные из POST успешно внесены в журнал\n";
  } else {
      echo "Пользователь прислал неверные данные\n";
  }
?>

Список изменений

Версия | Описание
5.6.0 | Если не передана константа PGSQL_DML_STRING, функция, в случае успешного завершения, возвращает ресурс соединения, а не TRUE.
5.6.0 | Больше не является экспериментальной. Добавлена константа PGSQL_DML_ESCAPE, TRUE/FALSE и NULL типы данных теперь поддерживаются.
5.5.3/5.4.19 | Исправлены прямые SQL-инъекции в table_name и непрямые SQL-инъекции в идентификаторах.

Смотрите также

  • pg_convert() - Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах


Получает сообщение о последней произошедшей ошибке на соединении с базой данных

  • « pg_insert
  • pg_last_notice »
  • PHP Manual
  • Функции PostgreSQL
  • Получает сообщение о последней произошедшей ошибке на соединении с базой данных

pg_last_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_last_error — Получает сообщение о последней произошедшей ошибке на соединении с базой данных

Описание

pg_last_error ([ resource $connection ] ) : string

pg_last_error() возвращает сообщение о последней ошибке на заданном соединении connection.

Сообщения об ошибках могут перезаписываться при внутренних вызовах функций PostgreSQL (libpq). Если внутри модуля PostgreSQL произойдет несколько ошибок, сообщение может оказаться неинформативным.

Для обработки ошибок лучше использовать функции pg_result_error(), pg_result_error_field(), pg_result_status() и pg_connection_status().

Замечание:

Прежнее название функции: pg_errormessage().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Строка, содержащая сообщение о последней ошибке, произошедшей на соединении connection, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_last_error()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Не удалось соединиться с сервером");

  // Неудачный запрос
  $res = pg_query($dbconn, "select * from doesnotexist");

  echo pg_last_error($dbconn);
?>

Смотрите также

  • pg_result_error() - Возвращает сообщение об ошибке, связанное с запросом результата
  • pg_result_error_field() - Возвращает конкретное поле из отчета об ошибках


Возвращает последнее уведомление от сервера PostgreSQL

  • « pg_last_error
  • pg_last_oid »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает последнее уведомление от сервера PostgreSQL

pg_last_notice

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

pg_last_notice — Возвращает последнее уведомление от сервера PostgreSQL

Описание

pg_last_notice ( resource $connection [, int $option = PGSQL_NOTICE_LAST ] ) : mixed

pg_last_notice() возвращает последнее уведомление, сгенерированное сервером PostgreSQL на заданном соединении connection. В некоторых случаях сервер посылает уведомления, например при создании в таблице колонки типа SERIAL.

Благодаря pg_last_notice() не требуется делать лишних запросов, чтобы узнать посылала ваша транзакция уведомления или нет.

Можно отключить отслеживание уведомлений установкой в значение 1 параметра pgsql.ignore_notice в файле php.ini.

Можно отключить журналирование уведомлений установкой в значение 0 параметра pgsql.log_notice в файле php.ini. Пока этот параметр установлен в значение 0, уведомления невозможно записать в журнал выполнения.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

option

Одна из констант PGSQL_NOTICE_LAST (для возврата последнего уведомления), PGSQL_NOTICE_ALL (для возврата всех уведомлений) или PGSQL_NOTICE_CLEAR (для очистки уведомлений).

Возвращаемые значения

Строка, содержащая последнее уведомление на заданном соединении, если задана опция PGSQL_NOTICE_LAST, массив (array), если опция PGSQL_NOTICE_ALL и значение типа boolean в случае опции PGSQL_NOTICE_CLEAR, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_last_notice()

<?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"

Список изменений

Версия | Описание
7.1.0 | Добавлен параметр option.

Смотрите также

  • pg_query() - Выполняет запрос
  • pg_last_error() - Получает сообщение о последней произошедшей ошибке на соединении с базой данных


Возвращает OID последней добавленной в базу строки

  • « pg_last_notice
  • pg_lo_close »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает OID последней добавленной в базу строки

pg_last_oid

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_last_oid — Возвращает OID последней добавленной в базу строки

Описание

pg_last_oid ( resource $result ) : string

pg_last_oid() используется для определения OID, соответствующего вставленной в таблицу строке.

Поле OID таблиц баз данных стало необязательным, начиная с версии PostgreSQL 7.2, а с версии 8.1 перестанет добавляться в таблицы по умолчанию. Если поле OID таблицы не задано, используйте функцию pg_result_status() для проверки успешности вставки записей в таблицу.

Чтобы получить значение SERIAL поля после вставки строки в таблицу, используйте функцию PostgreSQL CURRVAL, передав ей имя последовательности, значение которой нужно получить. Чтобы узнать имя последовательности, необходимо использовать функцию pg_get_serial_sequence (PostgreSQL 8.0).

В PostgreSQL 8.1 есть функция LASTVAL, возвращающая значение наиболее часто используемой за сессию последовательности. Так можно избежать необходимость задавать название последовательности, таблицы или колонки.

Замечание:

Прежнее название функции: pg_getlastoid().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

Возвращаемые значения

Строка, содержащая OID последней вставленной строки на соединении connection, либо FALSE, если произошла ошибка или поле OID недоступно.

Примеры

Пример #1 Пример использования pg_last_oid()

<?php
  // Подключение к базе данных
  pg_connect("dbname=mark host=localhost");

  // Создание тестовой таблицы
  pg_query("CREATE TABLE test (a INTEGER) WITH OIDS");

  // Вставка данных в таблицу
  $res = pg_query("INSERT INTO test VALUES (1)");

  $oid = pg_last_oid($res);
?>

Смотрите также

  • pg_query() - Выполняет запрос
  • pg_result_status() - Возвращает состояние результата запроса


Закрывает большой объект

  • « pg_last_oid
  • pg_lo_create »
  • PHP Manual
  • Функции PostgreSQL
  • Закрывает большой объект

pg_lo_close

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_close — Закрывает большой объект

Описание

pg_lo_close ( resource $large_object ) : bool

pg_lo_close() закрывает большой объект. large_object - ресурс большого объекта, созданный функцией pg_lo_open().

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_loclose().

Список параметров

result

Ресурс большого объекта PostgreSQL (large object, LOB) возвращаемый функцией pg_lo_open().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_lo_close()

<?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_lo_close
  • pg_lo_export »
  • PHP Manual
  • Функции PostgreSQL
  • Создает большой объект

pg_lo_create

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_create — Создает большой объект

Описание

pg_lo_create ([ resource $connection [, mixed $object_id ]] ) : int
pg_lo_create ( mixed $object_id ) : int

pg_lo_create() создает большой объект и возвращает его OID. Режимы доступа PostgreSQL INV_READ, INV_WRITE, и INV_ARCHIVE не поддерживаются, объект всегда создается с доступом на чтение и запись. Режим INV_ARCHIVE убран из PostgreSQL версий 6.3 и выше.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Вместо использования интерфейса больших объектов (который не имеет контроля доступа и весьма громоздкий сам по себе) пользуйтесь полями PostgreSQL типа bytea для хранения двоичных данных и функцией pg_escape_bytea() для их экранирования.

Замечание:

Прежнее название функции: pg_locreate().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

object_id

Если задан аргумент object_id, функция попытается создать объект с этим идентификатором, в противном случае будет использован свободный идентификатор, назначенный сервером. Этот аргумент появился в PHP 5.3 и основан на функционале, впервые реализованном в PostgreSQL 8.1.

Возвращаемые значения

OID большого объекта, либо FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.0 | Добавлен необязательный параметр object_id.

Примеры

Пример #1 Пример использования pg_lo_create()

<?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_create
  • pg_lo_import »
  • PHP Manual
  • Функции PostgreSQL
  • Вывод большого объекта в файл

pg_lo_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_export — Вывод большого объекта в файл

Описание

pg_lo_export ([ resource $connection ], int $oid , string $pathname ) : bool

pg_lo_export() выбирает большой объект из базы данных и сохраняет его данные локально в файловой системе.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_loexport().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

oid

OID большого объекта в базе данных.

pathname

Полный путь и имя файла в клиентской файловой системе для записи данных большого объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_lo_export()

<?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_export
  • pg_lo_open »
  • PHP Manual
  • Функции PostgreSQL
  • Импорт большого объекта из файла

pg_lo_import

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_import — Импорт большого объекта из файла

Описание

pg_lo_import ([ resource $connection ], string $pathname [, mixed $object_id ] ) : int

pg_lo_import() создает большой объект в базе данных, используя локальный файл в качестве источника данных.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Замечание:

Прежнее название функции: pg_loimport().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

pathname

Полный путь и имя файла в клиентской файловой системе для чтения данных большого объекта.

object_id

Если задан аргумент object_id, функция попытается создать объект с этим идентификатором, в противном случае будет использован свободный идентификатор, назначенный сервером. Этот аргумент появился в PHP 5.3 и основан на функционале, впервые реализованном в PostgreSQL 8.1.

Возвращаемые значения

OID созданного большого объекта, либо FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.0 | Добавлен необязательный аргумент object_id.

Примеры

Пример #1 Пример использования pg_lo_import()

<?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_import
  • pg_lo_read_all »
  • PHP Manual
  • Функции PostgreSQL
  • Открывает большой объект базы данных

pg_lo_open

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_open — Открывает большой объект базы данных

Описание

pg_lo_open ( resource $connection , int $oid , string $mode ) : resource

pg_lo_open() открывает большой объект базы данных и возвращает его ресурс.

Внимание

Не следует закрывать соединение с базой данных до того, как завершится работа с большим объектом.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_loopen().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

oid

OID большого объекта в базе данных.

mode

Режим доступа к объекту. Возможные значения: "r" - только для чтения, "w" - только для записи, "rw" - для чтения и записи.

Возвращаемые значения

Ресурс большого объекта, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_lo_open()

<?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_open
  • pg_lo_read »
  • PHP Manual
  • Функции PostgreSQL
  • Читает содержимое большого объекта и посылает напрямую в браузер

pg_lo_read_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_read_all — Читает содержимое большого объекта и посылает напрямую в браузер

Описание

pg_lo_read_all ( resource $large_object ) : int

pg_lo_read_all() читает большой объект и посылает данные напрямую в браузер после отправки всех необходимых заголовков. Используется в основном для пересылки двоичных данных, таких как изображения или звук.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_loreadall().

Список параметров

large_object

Ресурс большого объекта (LOB) PostgreSQL, возвращаемый функцией pg_lo_open().

Возвращаемые значения

Количество прочитанных байт, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_lo_read_all()

<?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_read_all
  • pg_lo_seek »
  • PHP Manual
  • Функции PostgreSQL
  • Читает данные большого объекта

pg_lo_read

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_read — Читает данные большого объекта

Описание

pg_lo_read ( resource $large_object [, int $len = 8192 ] ) : string

pg_lo_read() читает len байт большого объекта и возвращает их в виде строки.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_loread().

Список параметров

large_object

Ресурс большого объекта (LOB) PostgreSQL, возвращаемый функцией pg_lo_open().

len

Необязательный аргумент. Количество байт, которые необходимо прочитать.

Возвращаемые значения

Строка(string), содержащая len байт большого объекта, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_lo_read()

<?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
  • pg_lo_tell »
  • PHP Manual
  • Функции PostgreSQL
  • Перемещает внутренний указатель большого объекта

pg_lo_seek

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_seek — Перемещает внутренний указатель большого объекта

Описание

pg_lo_seek ( resource $large_object , int $offset [, int $whence = PGSQL_SEEK_CUR ] ) : bool

pg_lo_seek() перемещает внутренний указатель большого объекта.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Список параметров

large_object

Ресурс большого объекта (LOB) PostgreSQL, возвращаемый функцией pg_lo_open().

offset

Количество байт, на сколько требуется переместить указатель.

whence

Одна из констант: PGSQL_SEEK_SET (перемещать от начала объекта), PGSQL_SEEK_CUR (перемещать с текущей позиции) или PGSQL_SEEK_END (отступать от конца объекта).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_lo_seek()

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   // Пропустить первые 50000 байт
   pg_lo_seek($handle, 50000, PGSQL_SEEK_SET);
   // Прочитать следующие 10000 байт
   $data = pg_lo_read($handle, 10000);
   pg_query($database, "commit");
   echo $data;
?>

Список изменений

Версия | Описание
5.6.0 | Добавлена поддержка больших 64-битных объектов PostgreSQL 9.3. И клиент, и сервер должны поддерживать PostgreSQL 9.3, а PHP должен быть собран 64-битным и использовать 64-битные большие объекты.

Смотрите также

  • pg_lo_tell() - Возвращает текущее положение внутреннего указателя большого объекта


Возвращает текущее положение внутреннего указателя большого объекта

  • « pg_lo_seek
  • pg_lo_truncate »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает текущее положение внутреннего указателя большого объекта

pg_lo_tell

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_tell — Возвращает текущее положение внутреннего указателя большого объекта

Описание

pg_lo_tell ( resource $large_object ) : int

pg_lo_tell() возвращает текущую позицию (отступ от начала) внутреннего указателя большого объекта.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Список параметров

large_object

Ресурс большого объекта (LOB) PostgreSQL, возвращаемый функцией pg_lo_open().

Возвращаемые значения

Текущая позиция внутреннего указателя (количество байт от начала) большого объекта. В случае ошибки функция вернет отрицательное значение.

Примеры

Пример #1 Пример использования pg_lo_tell()

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   // Пропустить первые 50000 байт
   pg_lo_seek($handle, 50000, PGSQL_SEEK_SET);
   // Проверим, на сколько мы отступили
   $offset = pg_lo_tell($handle);
   echo "Текущее положение внутреннего указателя: $offset";
   pg_query($database, "commit");
?>

Результат выполнения данного примера:

Текущее положение внутреннего указателя: 50000

Список изменений

Версия | Описание
5.6.0 | Добавлена поддержка больших 64-битных объектов PostgreSQL 9.3. И клиент, и сервер должны поддерживать PostgreSQL 9.3, а PHP должен быть собран 64-битным и использовать 64-битные большие объекты.

Смотрите также

  • pg_lo_seek() - Перемещает внутренний указатель большого объекта


Обрезает большой объект

  • « pg_lo_tell
  • pg_lo_unlink »
  • PHP Manual
  • Функции PostgreSQL
  • Обрезает большой объект

pg_lo_truncate

(PHP 5 >= 5.6.0, PHP 7)

pg_lo_truncate — Обрезает большой объект

Описание

pg_lo_truncate ( resource $large_object , int $size ) : bool

pg_lo_truncate() обрезает ресурс большого объекта.

Для использования интерфейса большого объекта, необходимо заключить его в блок транзакций.

Список параметров

large_object

Ресурс большого объекта (LOB) PostgreSQL, возвращенный функцией pg_lo_open().

size

Количество байтов для обрезания.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_lo_truncate()

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   // Обрезать до 0
   pg_lo_truncate($handle, 0);
   pg_query($database, "commit");
   echo $data;
?>

Список изменений

Версия | Описание
5.6.0 | Добавлена функция обрезания. Она поддерживает 64-битный большой объект PostgreSQL из версии 9.3. Как клиент, так и сервер должны поддерживать PostgreSQL версии 9.3, а PHP должен быть собран на 64-битной машине для использования большого 64-битного объекта.

Смотрите также

  • pg_lo_tell() - Возвращает текущее положение внутреннего указателя большого объекта


Удаление большого объекта

  • « pg_lo_truncate
  • pg_lo_write »
  • PHP Manual
  • Функции PostgreSQL
  • Удаление большого объекта

pg_lo_unlink

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_unlink — Удаление большого объекта

Описание

pg_lo_unlink ( resource $connection , int $oid ) : bool

pg_lo_unlink() удаляет большой объект с идентификатором oid.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_lounlink().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

oid

OID большого объекта в базе данных.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_lo_unlink()

<?php
   // OID удаляемого объекта
   $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_unlink
  • pg_meta_data »
  • PHP Manual
  • Функции PostgreSQL
  • Записывает данные в большой объект

pg_lo_write

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_write — Записывает данные в большой объект

Описание

pg_lo_write ( resource $large_object , string $data [, int $len ] ) : int

pg_lo_write() записывает данные в большой объект, начиная с текущей позиции внутреннего указателя.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_lowrite().

Список параметров

large_object

Ресурс большого объекта (LOB) PostgreSQL, возвращаемый функцией pg_lo_open().

data

Данные для записи в большой объект. Если аргумент len задан и меньше размера data, то записаны будут только len байт.

len

Необязательный аргумент. Максимальное количество записываемых байт. Должен быть больше нуля и не превышать размер data. По умолчанию принимается равным размеру data.

Возвращаемые значения

Количество записанных в большой объект байт, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_lo_write()

<?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_write
  • pg_num_fields »
  • PHP Manual
  • Функции PostgreSQL
  • Получение метаданных таблицы

pg_meta_data

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_meta_data — Получение метаданных таблицы

Описание

pg_meta_data ( resource $connection , string $table_name [, bool $extended = FALSE ] ) : array

pg_meta_data() возвращает определение таблицы table_name в виде массива.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

table_name

Название таблицы.

extended

Флаг, указывающий, что нужно вернуть расширенные мета-данные. По умолчанию FALSE.

Возвращаемые значения

Массив, содержащий определение таблицы, либо FALSE в случае ошибки.

Примеры

Пример #1 Получение метаданных таблицы

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Не удалось соединиться с сервером");

  $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)
}
}

Список изменений

Версия | Описание
5.6.0 | Больше не является экспериментальной. Добавлено "is enum" атрибутом по умолчанию. Добавлен флаг extended.

Смотрите также

  • pg_convert() - Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах


Возвращает количество полей в выборке

  • « pg_meta_data
  • pg_num_rows »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает количество полей в выборке

pg_num_fields

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_num_fields — Возвращает количество полей в выборке

Описание

pg_num_fields ( resource $result ) : int

pg_num_fields() возвращает количество полей (столбцов) в результате запроса PostgreSQL.

Замечание:

Ранее функция называлась pg_numfields().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (и прочих).

Возвращаемые значения

Количество полей (столбцов) в выборке. В случае ошибки возвращает -1.

Примеры

Пример #1 Пример использования pg_num_fields()

<?php
$result = pg_query($conn, "SELECT 1, 2");

$num = pg_num_fields($result);

echo "Возвращено полей: " . $num . ".\n";
?>

Результат выполнения данного примера:

Возвращено полей: 2.

Смотрите также

  • pg_num_rows() - Возвращает количество строк в выборке
  • pg_affected_rows() - Возвращает количество затронутых запросом записей (кортежей)


Возвращает количество строк в выборке

  • « pg_num_fields
  • pg_options »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает количество строк в выборке

pg_num_rows

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_num_rows — Возвращает количество строк в выборке

Описание

pg_num_rows ( resource $result ) : int

pg_num_rows() возвращает количество строк в результате запроса PostgreSQL.

Замечание:

Ранее функция называлась pg_numrows().

Список параметров

result

Результат запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (и прочими).

Возвращаемые значения

Количество строк в выборке. В случае ошибки возвращает -1.

Примеры

Пример #1 Пример использования pg_num_rows()

<?php
$result = pg_query($conn, "SELECT 1");

$rows = pg_num_rows($result);

echo "Возвращено строк: " . $rows . ".\n";
?>

Результат выполнения данного примера:

Возвращено строк: 1.

Смотрите также

  • pg_num_fields() - Возвращает количество полей в выборке
  • pg_affected_rows() - Возвращает количество затронутых запросом записей (кортежей)


Получение параметров соединения с сервером баз данных

  • « pg_num_rows
  • pg_parameter_status »
  • PHP Manual
  • Функции PostgreSQL
  • Получение параметров соединения с сервером баз данных

pg_options

(PHP 4, PHP 5, PHP 7)

pg_options — Получение параметров соединения с сервером баз данных

Описание

pg_options ([ resource $connection ] ) : string

pg_options() возвращает строку, содержащую параметры соединения PostgreSQL connection.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Строка, содержащая параметры соединения connection, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_options()

<?php
   $pgsql_conn = pg_connect("dbname=mark host=localhost");
   echo pg_options($pgsql_conn);
?>

Смотрите также

  • pg_connect() - Открывает соединение с базой данных PostgreSQL


Просмотр текущих значений параметров сервера

  • « pg_options
  • pg_pconnect »
  • PHP Manual
  • Функции PostgreSQL
  • Просмотр текущих значений параметров сервера

pg_parameter_status

(PHP 5, PHP 7)

pg_parameter_status — Просмотр текущих значений параметров сервера

Описание

pg_parameter_status ([ resource $connection ], string $param_name ) : string

Получает текущее значение заданного параметра сервера.

Значения некоторых параметров сервер сообщает автоматически при установлении подключения или при изменении данных значений. Функция pg_parameter_status() может запрашивать подобные значения. Она возвращает значение параметра, если оно определено, либо FALSE в случае ошибки.

Список параметров серверов PostgreSQL версий 8.0 и выше: server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone, и integer_datetimes. (server_encoding, TimeZone, и integer_datetimes не определяются для версий ниже 8.0.) Стоит отметить, что значения server_version, server_encoding и integer_datetimes нельзя изменить после запуска PostgreSQL.

Несмотря на то, что PostgreSQL версий 7.3 и ниже не сообщают значений своих параметров, pg_parameter_status() позволяет определить значения параметров server_version и client_encoding. Для определения значений этих параметров предпочтительней использовать pg_parameter_status(), нежели специально разрабатывать другие функции.

Предостережение

Если при использовании сервера PostgreSQL версий 7.4 и ниже изменить параметр client_encoding посредством команды сервера SET уже после установки соединения, функция pg_parameter_status() не сможет отразить этот факт.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

param_name

Допустимые значения аргумента: server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone и integer_datetimes.

Возвращаемые значения

Значение запрашиваемого параметра в виде строки, либо FALSE, если передан недопустимый параметр.

Примеры

Пример #1 Пример использования pg_parameter_status()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Невозможно соединиться с сервером");

  echo "Кодировка сервера: ", pg_parameter_status($dbconn, "server_encoding");
?>

Результат выполнения данного примера:

Кодировка сервера: SQL_ASCII


Открывает постоянное соединение с сервером PostgreSQL

  • « pg_parameter_status
  • pg_ping »
  • PHP Manual
  • Функции PostgreSQL
  • Открывает постоянное соединение с сервером PostgreSQL

pg_pconnect

(PHP 4, PHP 5, PHP 7)

pg_pconnect — Открывает постоянное соединение с сервером PostgreSQL

Описание

pg_pconnect ( string $connection_string [, int $connect_type ] ) : resource

pg_pconnect() устанавливает соединение с базой данных PostgreSQL. Возвращает ресурс соединения необходимый для работы большинства функций PostgreSQL.

При повторном вызове функции pg_pconnect() с теми же значениями параметров в connection_string функция вернет существующее подключение. Чтобы принудительно создать новое соединение, необходимо передать строку подключения функции PGSQL_CONNECT_FORCE_NEW в качестве параметра connect_type.

Возможность создавать постоянные подключения регулируется директивой pgsql.allow_persistent файла php.ini. Для включения, установите значение в "On" (является значением по умолчанию). Максимальное количество постоянных соединений задается директивой pgsql.max_persistent файла php.ini (по умолчанию -1, не ограничено). Количество любых возможных подключений устанавливается директивой pgsql.max_links файла php.ini.

pg_close() не закрывает соединения, открытые функцией pg_pconnect().

Список параметров

connection_string

Строка connection_string может быть пустой строкой или содержать несколько параметров разделенных пробелами. Каждый параметр указывается как keyword = value. Пробелы вокруг знака равно необязательны. Пустые строки в качестве значения или значения, содержащие пробелы отделяются одинарными кавычками, как например, keyword = 'a value'. Для задания одинарных кавычек и обратных слешей в качестве значений их необходимо экранировать обратным слешем, то есть \' и \\.

Список основных ключевых слов: host, hostaddr, port, dbname (значение по умолчанию для параметра user), user, password, connect_timeout, options, tty (игнорируется), sslmode, requiressl (устарело в связи с использованием параметра sslmode), и service. Какие из этих аргументов будут обработаны, зависит от версии PostgreSQL.

connect_type

Если в функцию передана константа PGSQL_CONNECT_FORCE_NEW, будет создаваться новое подключение, даже если connection_string идентична строке существующего подключения.

Возвращаемые значения

Ресурс соединения с базой данных PostgreSQL либо FALSE, если подключиться не удалось.

Примеры

Пример #1 Пример использования pg_pconnect()

<?php
$dbconn = pg_pconnect("dbname=mary");
//подключиться к базе "mary"

$dbconn2 = pg_pconnect("host=localhost port=5432 dbname=mary");
// подключиться к базе "mary" на хосте "localhost", порт "5432"

$dbconn3 = pg_pconnect("host=sheep port=5432 dbname=mary user=lamb password=foo");
//подключиться к базе "mary" на хосте "sheep", используя имя пользователя и пароль

$conn_string = "host=sheep port=5432 dbname=test user=lamb password=bar";
$dbconn4 = pg_pconnect($conn_string);
//подключиться к базе "test" на хосте "sheep", используя имя пользователя и пароль
?>

Смотрите также

  • pg_connect() - Открывает соединение с базой данных PostgreSQL
  • Постоянные соединения с базой данных


Проверка соединения с базой данных

  • « pg_pconnect
  • pg_port »
  • PHP Manual
  • Функции PostgreSQL
  • Проверка соединения с базой данных

pg_ping

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_ping — Проверка соединения с базой данных

Описание

pg_ping ([ resource $connection ] ) : bool

pg_ping() проверяет соединение с базой данных и переподключается, если оно нарушено.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_ping()

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

if (!pg_ping($conn))
  die("Соединение нарушено\n");
?>

Смотрите также

  • pg_connection_status() - Определяет состояние подключения
  • pg_connection_reset() - Сброс подключения (переподключение)


Возвращает номер порта, соответствующий заданному соединению

  • « pg_ping
  • pg_prepare »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает номер порта, соответствующий заданному соединению

pg_port

(PHP 4, PHP 5, PHP 7)

pg_port — Возвращает номер порта, соответствующий заданному соединению

Описание

pg_port ([ resource $connection ] ) : int

pg_port() возвращает номер порта, соответствующего заданному соединению PostgreSQL connection.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Число типа int, соответствующее номеру порта, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_port()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "Успешно соединено с портом : " . pg_port($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>


Посылает запрос на создание параметризованного SQL выражения и ждет его завершения

  • « pg_port
  • pg_put_line »
  • PHP Manual
  • Функции PostgreSQL
  • Посылает запрос на создание параметризованного SQL выражения и ждет его завершения

pg_prepare

(PHP 5 >= 5.1.0, PHP 7)

pg_prepare — Посылает запрос на создание параметризованного SQL выражения и ждет его завершения

Описание

pg_prepare ([ resource $connection ], string $stmtname , string $query ) : resource

pg_prepare() создает заготовку SQL выражения на сервере для последующего запуска функциями pg_execute() или pg_send_execute(). Это позволяет многократно выполнять единожды созданные запросы с различными параметрами. pg_prepare() поддерживается PostgreSQL версии 7.4 и выше. Функция не будет работать c серверами ранних версий.

Функция создает заготовку SQL запроса с названием stmtname и телом query, которое должно содержать одно SQL выражение. stmtname может быть пустой строкой, тогда будет создана безымянная заготовка. Если какая-либо безымянная заготовка уже определена, она будет заменена на новую автоматически. В остальных случаях совпадение имен новой и существующей в данной сессии заготовок приведет к ошибке. Если в query будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т.д. при передаче запроса.

Подобные заготовки запросов также можно делать с помощью SQL-команды PREPARE (но pg_prepare() более гибкая, так как не требует строгой типизации своих параметров). Важно отметить, что в PHP нет функций для удаления подготовленных SQL-выражений, для этого используйте команду SQL DEALLOCATE.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

stmtname

Имя создаваемой заготовки. Должно быть уникальным в пределах сессии. Если задана пустая строка, будет создано безымянное SQL выражение. При этом оно перезапишет уже существующее безымянное выражение, определенное ранее.

query

Параметризованный SQL-запрос. Должен содержать только одно выражение (несколько выражений разделенных точкой с запятой не поддерживаются). Если в запрос будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т.д.

Возвращаемые значения

Ресурс результата запроса или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_prepare()

<?php
// Подключение к базе данных "mary"
$dbconn = pg_connect("dbname=mary");

// Подготовка запроса
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');

// Запуск запроса на выполнение. Стоит отметить, что нет необходимости экранировать
// спецсимволы в строке "Joe's Widgets"
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));

// Запуск на выполнение того же запроса, но с другим параметром
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));

?>

Смотрите также

  • pg_execute() - Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат
  • pg_send_execute() - Запускает предварительно подготовленный SQL-запрос и передает ему параметры; не ожидает возвращаемого результата


Передает на PostgreSQL сервер строку с завершающим нулем

  • « pg_prepare
  • pg_query_params »
  • PHP Manual
  • Функции PostgreSQL
  • Передает на PostgreSQL сервер строку с завершающим нулем

pg_put_line

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

pg_put_line — Передает на PostgreSQL сервер строку с завершающим нулем

Описание

pg_put_line ([ resource $connection ], string $data ) : bool

pg_put_line() передает на PostgreSQL сервер строку с завершающим нулем. Завершение строки значением NULL необходимо при ее объединении с командой PostgreSQL COPY FROM.

COPY является высокоскоростным интерфейсом передачи данных, поддерживаемым PostgreSQL. Данные передаются одной транзакцией и не разбираются парсером.

В качестве альтернативы можно использовать функцию pg_copy_from(). Она значительно проще в использовании.

Замечание:

Перед запуском функции pg_end_copy() приложение должно сообщить о серверу о завершении передачи данных, добавив в конец последней строки символы "\.".

Внимание

Использование pg_put_line() может привести к
отказу операций с большими объектами, включающих функции
pg_lo_read() и pg_lo_tell().
Для этих целей используйте функции pg_copy_from()
и pg_copy_to().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

data

Текстовая строка для прямой пересылки на сервер. Завершающий NULL добавляется автоматически.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_put_line()

<?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() - Синхронизирует с бэкендом PostgreSQL


Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса

  • « pg_put_line
  • pg_query »
  • PHP Manual
  • Функции PostgreSQL
  • Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса

pg_query_params

(PHP 5 >= 5.1.0, PHP 7)

pg_query_params — Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса

Описание

pg_query_params ([ resource $connection ], string $query , array $params ) : resource

Посылает параметризованный запрос на сервер и ждет результат. Параметры передаются отдельно от строки запроса.

pg_query_params() подобна функции pg_query(), но предоставляет дополнительный функционал: параметры запроса можно передавать отдельно от строки запроса. pg_query_params() поддерживается на соединениях с серверами PostgreSQL версий 7.4 и выше. Функция не будет работать с серверами ранних версий.

Если используются параметры params, они заменяют псевдопеременные $1, $2 и т.д. в строке запроса query. Один и тот же параметр может быть указан больше одного раза в query; в этом случае будут использованы одинаковые значения. params определяют текущие значения параметров. Значение NULL в массиве параметров будет означать SQL NULL в запросе.

Главное преимущество pg_query_params() перед pg_query() заключается в том, что значения параметров могут передаваться отдельно от строки запроса query. Это дает возможность избежать утомительную и подверженную ошибкам процедуру экранирования спецсимволов и заключения значений в кавычки. Однако, в отличие от pg_query(), эта функция поддерживает только один SQL запрос в передаваемой строке. (Он может содержать точку с запятой, но не более одной непустой SQL-команды.)

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

query

Параметризованный SQL запрос. Должен содержать только одно выражение (несколько выражений разделенных точкой с запятой не поддерживаются). Если в запрос будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т.д.

Пользовательские данные всегда должны передаваться как параметры, и не передаваться в строку запроса напрямую, где они могут привести к возможным атакам через SQL-инъекции и приводит к ошибкам, если данные содержат кавычки. Если по каким-то причинам вы не можете использовать параметр, убедитесь, что пользовательские данные правильно экранированы.

params

Массив значений параметров запроса для замены псевдопеременных $1, $2 и т.д. в исходной строке запроса. Количество элементов массива должно точно совпадать с количеством псевдопеременных.

Значения предназначенные для bytea полей нельзя передавать в параметрах. Используйте функцию pg_escape_bytea() или функции для больших объектов.

Возвращаемые значения

Ресурс результата запроса или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_query_params()

<?php
// Подключение к базе данных "mary"
$dbconn = pg_connect("dbname=mary");

// Найдем все магазины с названием "Joe's Widgets". Стоит отметить, что нет необходимости экранировать
// спецсимволы в строке "Joe's Widgets"
$result = pg_query_params($dbconn, 'SELECT * FROM shops WHERE name = $1', array("Joe's Widgets"));

// Для сравнения то же самое, используя функцию pg_query
$str = pg_escape_string("Joe's Widgets");
$result = pg_query($dbconn, "SELECT * FROM shops WHERE name = '{$str}'");

?>

Смотрите также

  • pg_query() - Выполняет запрос


Выполняет запрос

  • « pg_query_params
  • pg_result_error_field »
  • PHP Manual
  • Функции PostgreSQL
  • Выполняет запрос

pg_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_query — Выполняет запрос

Описание

pg_query ([ resource $connection ], string $query ) : resource

pg_query() выполняет query к указанной в connection базе данных. pg_query_params() должна быть предпочтительнее в большинстве случаев.

В случае ошибки функция возвращает FALSE, детали ошибки можно получить с помощью функции pg_last_error(), если соединение с БД не нарушено.

Замечание: Несмотря на то, что параметр connection может быть опущен, делать так не рекомендуется, так как это может привести к трудно находимым ошибкам в скриптах.

Замечание:

Ранее данная функция называлась pg_exec(). pg_exec() все еще доступна в целях обеспечения совместимости, но лучше использовать новое имя.

Список параметров

connection

Ресурс соединения с БД PostgreSQL. Если не передать параметр connection используется соединение по умолчанию. Соединение по умолчанию - это последнее соединение, созданное функцией pg_connect() или pg_pconnect().

query

Выражение или выражения SQL для выполнения. Если передано несколько выражений они автоматически выполняются, как одна транзакция если явно не указаны команды BEGIN/COMMIT внутри выражения. Тем не менее, использовать несколько транзакций в одном вызове функции не рекомендуется.

Внимание

Строковое представление пользовательских данных очень опасно и часто приводит к возможности SQL инъекции. В большинстве случаев лучше передавать пользовательские данные параметром в pg_query_params(), а не подставлять их в строку запроса.

Любые данные передаваемые от пользователя непосредственно в строку запроса должны быть хорошо экранированы.

Возвращаемые значения

Ресурс результата запроса в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_query()

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "Произошла ошибка.\n";
  exit;
}

while ($row = pg_fetch_row($result)) {
  echo "Автор: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}

?>

Пример #2 Использование нескольких выражений в pg_query()

<?php

$conn = pg_pconnect("dbname=publisher");

// эти выражения будут исполнены в одной транзакции

$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() - Открывает соединение с базой данных PostgreSQL
  • pg_pconnect() - Открывает постоянное соединение с сервером PostgreSQL
  • pg_fetch_array() - Возвращает строку результата в виде массива
  • pg_fetch_object() - Выбирает строку результата запроса и возвращает данные в виде объекта
  • pg_num_rows() - Возвращает количество строк в выборке
  • pg_affected_rows() - Возвращает количество затронутых запросом записей (кортежей)


Возвращает конкретное поле из отчета об ошибках

  • « pg_query
  • pg_result_error »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает конкретное поле из отчета об ошибках

pg_result_error_field

(PHP 5 >= 5.1.0, PHP 7)

pg_result_error_field — Возвращает конкретное поле из отчета об ошибках

Описание

pg_result_error_field ( resource $result , int $fieldcode ) : string

pg_result_error_field() возвращает одно из полей отчета об ошибках, связанного с ресурсом result. Функция поддерживается серверами PostgreSQL версий 7.4 и выше. Нужное поле задается аргументом fieldcode.

Функции pg_query() и pg_query_params() в случае ошибок возвращают FALSE вместо ресурса. Чтобы иметь возможность обрабатывать ошибки, пользуйтесь функциями pg_send_query() и pg_get_result().

Для получения дополнительной информации о ходе выполнения отказавшей
функции pg_query() используйте функции
pg_set_error_verbosity() и
pg_last_error() и обрабатывайте результат
их выполнения.

Список параметров

result

Ресурс результата предыдущего запроса PostgreSQL.

fieldcode

Возможные значения аргумента fieldcode: 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 и выше), PGSQL_DIAG_INTERNAL_QUERY (для версий PostgreSQL 8.0 и выше), PGSQL_DIAG_CONTEXT, PGSQL_DIAG_SOURCE_FILE, PGSQL_DIAG_SOURCE_LINE, PGSQL_DIAG_SOURCE_FUNCTION.

Возвращаемые значения

Сообщение об ошибке из заданного поля в виде строки (string); NULL, если заданное поле не существует; FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_result_error_field()

<?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_result_error_field
  • pg_result_seek »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает сообщение об ошибке, связанное с запросом результата

pg_result_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_result_error — Возвращает сообщение об ошибке, связанное с запросом результата

Описание

pg_result_error ( resource $result ) : string

pg_result_error() возвращает сообщение о любой ошибке, связанное с ресурсом result. Таким образом, возможно получить более верное сообщение об ошибке, чем при использовании pg_last_error().

Функция pg_result_error_field() может дать гораздо более подробную информацию об ошибке, чем pg_result_error().

Так как pg_query() возвращает FALSE в случае ошибки запроса, необходимо использовать pg_send_query() и pg_get_result() для получения дескриптора результата.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращенный pg_query(), pg_query_params() или pg_execute() (и прочими).

Возвращаемые значения

Возвращает строку (string). Возвращает пустую строку, если нет ошибки. Если же есть ошибка, не связанная с параметром result, то возвращается FALSE.

Примеры

Пример #1 Пример использования pg_result_error()

<?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($res1);
?>

Смотрите также

  • pg_result_error_field() - Возвращает конкретное поле из отчета об ошибках
  • pg_query() - Выполняет запрос
  • pg_send_query() - Отправляет асинхронный запрос
  • pg_get_result() - Получение результата асинхронного запроса
  • pg_last_error() - Получает сообщение о последней произошедшей ошибке на соединении с базой данных
  • pg_last_notice() - Возвращает последнее уведомление от сервера PostgreSQL


Смещает указатель на строку выборки в ресурсе результата запроса

  • « pg_result_error
  • pg_result_status »
  • PHP Manual
  • Функции PostgreSQL
  • Смещает указатель на строку выборки в ресурсе результата запроса

pg_result_seek

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_result_seek — Смещает указатель на строку выборки в ресурсе результата запроса

Описание

pg_result_seek ( resource $result , int $offset ) : bool

pg_result_seek() устанавливает смещение внутреннего указателя на строку результата запроса.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

offset

Количество строк, на которое требуется сместить внутренний указатель ресурса result. Строки нумеруются с нуля.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_result_seek()

<?php

// Подключение к базе данных
$conn = pg_pconnect("dbname=publisher");

// Выполнение запроса
$result = pg_query($conn, "SELECT author, email FROM authors");

// Перемещаемся сразу на третью строку
// (допускаем, что в результате есть хотя бы три строки)
pg_result_seek($result, 2);

// Выбираем третью строку из результата
$row = pg_fetch_row($result);

?>

Смотрите также

  • pg_fetch_row() - Выбирает строку результата запроса и помещает данные в массив
  • pg_fetch_assoc() - Выбирает строку результата запроса и помещает данные в ассоциативный массив
  • pg_fetch_array() - Возвращает строку результата в виде массива
  • pg_fetch_object() - Выбирает строку результата запроса и возвращает данные в виде объекта
  • pg_fetch_result() - Возвращает запись из результата запроса


Возвращает состояние результата запроса

  • « pg_result_seek
  • pg_select »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает состояние результата запроса

pg_result_status

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_result_status — Возвращает состояние результата запроса

Описание

pg_result_status ( resource $result [, int $type = PGSQL_STATUS_LONG ] ) : mixed

pg_result_status() возвращает текущее состояние ресурса результата запроса, либо тэг завершения сервером работы с с этим ресурсом.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

type

Принимает одно из двух значений: PGSQL_STATUS_LONG для получения числового обозначения состояния result, либо PGSQL_STATUS_STRING для получения тэга состояния в виде строки. По умолчанию используется PGSQL_STATUS_LONG.

Возвращаемые значения

Если в качестве аргумента передается PGSQL_STATUS_LONG, то возвращается одна из перечисленных констант: PGSQL_EMPTY_QUERY, PGSQL_COMMAND_OK, PGSQL_TUPLES_OK, PGSQL_COPY_OUT, PGSQL_COPY_IN, PGSQL_BAD_RESPONSE, PGSQL_NONFATAL_ERROR, PGSQL_FATAL_ERROR. В противном случае функция вернет строковое представление состояния результата запроса.

Примеры

Пример #1 Пример использования pg_result_status()

<?php

// Подключаемся к базе данных
$conn = pg_pconnect("dbname=publisher");

// Выполняем команду COPY
$result = pg_query($conn, "COPY authors FROM STDIN;");

// Получаем состояние результата запроса
$status = pg_result_status($result);

// Разбираем полученные данные
if ($status == PGSQL_COPY_IN)
   echo "Copy began.";
else
   echo "Copy failed.";

?>

Результат выполнения данного примера:

Copy began.

Смотрите также

  • pg_connection_status() - Определяет состояние подключения


Выбирает записи из базы данных

  • « pg_result_status
  • pg_send_execute »
  • PHP Manual
  • Функции PostgreSQL
  • Выбирает записи из базы данных

pg_select

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_select — Выбирает записи из базы данных

Описание

pg_select ( resource $connection , string $table_name , array $assoc_array [, int $options = PGSQL_DML_EXEC [, int $result_type = PGSQL_ASSOC ]] ) : mixed

pg_select() выбирает записи из базы данных, удовлетворяющие условиям field=>value, заданным в массиве assoc_array.

Если задан аргумент options, то к массиву assoc_array будет применена функция pg_convert() с параметрами, заданными в качестве аргумента.

По умолчанию pg_insert() передает необработаные значения. Значения должны быть экранированы или опция PGSQL_DML_ESCAPE должна быть указана. PGSQL_DML_ESCAPE заключает в кавычки и экранирует параметры/идентификаторы. Поэтому имена таблиц/столбцов становятся чувствительными к регистру.

Обратите внимание, что ни экранирование, ни подготовленный запрос не защитят запрос LIKE, JSON, массив, регулярные выражения и т.д.. Эти параметры должны обрабатываться в соответствии с их контекстами, т.е. следует экранировать/проверять значения.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

table_name

Название таблицы, из которой выбираются данные.

assoc_array

Массив (array), ключи которого соответствуют именам колонок таблицы table_name. Будут выбраны только те строки, значения полей которых совпадут со значениями массива.

options

Одна из констант PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC, PGSQL_DML_STRING или их комбинация. Если options содержит PGSQL_DML_STRING, функция вернет строку. Если установлены PGSQL_DML_NO_CONV или PGSQL_DML_ESCAPE, то функция pg_convert() внутренне не вызывается.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Функция вернет строку, если options содержит PGSQL_DML_STRING.

Примеры

Пример #1 Пример использования pg_select()

<?php
  $db = pg_connect('dbname=foo');
  // Это безопасно в некоторой степени, поскольку все значения экранируются.
  // Однако PostgreSQL поддерживает JSON/массив. Для этих значений это не безопасно
  // ни с через экранирование, ни с помощью подготовленного запроса.
  $rec = pg_select($db, 'post_log', $_POST);
  if ($rec) {
      echo "Records selected\n";
      var_dump($rec);
  } else {
      echo "Должно быть переданы неверные данные\n";
  }
?>

Список изменений

Версия | Описание
7.1.0 | Добавлен параметр result_type.
5.6.0 | Больше не является экспериментальной. Добавлена константа PGSQL_DML_ESCAPE, TRUE/FALSE и NULL типы данных теперь поддерживаются.
5.5.3/5.4.19 | Исправлены прямые SQL-инъекции в table_name и непрямые SQL-инъекции в идентификаторах.

Смотрите также

  • pg_convert() - Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах


Запускает предварительно подготовленный SQL-запрос и передает ему параметры; не ожидает возвращаемого результата

  • « pg_select
  • pg_send_prepare »
  • PHP Manual
  • Функции PostgreSQL
  • Запускает предварительно подготовленный SQL-запрос и передает ему параметры; не ожидает возвращаемого результата

pg_send_execute

(PHP 5 >= 5.1.0, PHP 7)

pg_send_execute — Запускает предварительно подготовленный SQL-запрос и передает ему параметры; не ожидает возвращаемого результата

Описание

pg_send_execute ( resource $connection , string $stmtname , array $params ) : bool

Запускает предварительно подготовленный SQL-запрос и передает ему параметры; не ожидает возвращаемого результата.

Работает аналогично функции pg_send_query_params(), только вместо строки с запросом принимает имя предварительно подготовленного SQL-запроса. Аргументы функции обрабатываются так же, как и в функции pg_execute(). Как и pg_execute() эта функция не будет работать на соединениях с серверами PostgreSQL версий ниже 7.4.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

stmtname

Имя подготовленного к исполнению запроса. Если передана пустая строка "", будет выполнен безымянный запрос. Имя и содержимое запроса должны быть подготовлены функцией pg_prepare(), pg_send_prepare() либо с помощью SQL-команды PREPARE.

params

Массив значений параметров запроса для замены псевдопеременных $1, $2 и т.д. в исходной строке запроса. Количество элементов массива должно точно совпадать с количеством псевдопеременных.

Возвращаемые значения

Возвращает TRUE в случае успешной передачи запроса, FALSE в случае ошибки. Для получения результата запроса используйте функцию pg_get_result().

Примеры

Пример #1 Пример использования pg_send_execute()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  // Подготовка запроса
  if (!pg_connection_busy($dbconn)) {
    pg_send_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
    $res1 = pg_get_result($dbconn);
  }

  // Запуск запроса на выполнение. Стоит отметить, что нет необходимости экранировать
  // спецсимволы в строке "Joe's Widgets"
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
    $res2 = pg_get_result($dbconn);
  }

  // Запуск на выполнение того же запроса, но с другим параметром
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
    $res3 = pg_get_result($dbconn);
  }

?>

Смотрите также

  • pg_prepare() - Посылает запрос на создание параметризованного SQL выражения и ждет его завершения
  • pg_send_prepare() - Посылает запрос на создание параметризованного SQL-выражения, не дожидаясь его завершения
  • pg_execute() - Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат


Посылает запрос на создание параметризованного SQL-выражения, не дожидаясь его завершения

  • « pg_send_execute
  • pg_send_query_params »
  • PHP Manual
  • Функции PostgreSQL
  • Посылает запрос на создание параметризованного SQL-выражения, не дожидаясь его завершения

pg_send_prepare

(PHP 5 >= 5.1.0, PHP 7)

pg_send_prepare — Посылает запрос на создание параметризованного SQL-выражения, не дожидаясь его завершения

Описание

pg_send_prepare ( resource $connection , string $stmtname , string $query ) : bool

Посылает запрос на создание параметризованного SQL выражения и не ждет его завершения.

Это асинхронная версия функции pg_prepare(): она возвращает TRUE, если удалось отправить запрос, FALSE в противном случае. После успешной отправки, воспользуйтесь функцией pg_get_result(), чтобы узнать, создалось ли требуемое SQL выражение. Аргументы функции обрабатываются так же, как в pg_prepare(). Функция не будет работать с серверами PostgreSQL версий ниже 7.4.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

stmtname

Имя создаваемой заготовки. Должно быть уникальным в пределах сессии. Если задана пустая строка, будет создано безымянное SQL выражение. При этом оно перезапишет уже существующее безымянное выражение, определенное ранее.

query

Параметризованный SQL запрос. Должен содержать только одно выражение (несколько выражений разделенных точкой с запятой не поддерживаются). Если в запрос будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т.д.

Возвращаемые значения

TRUE, если удалось отправить запрос, FALSE в противном случае. После успешной отправки, воспользуйтесь функцией pg_get_result(), чтобы узнать, создалось ли требуемое SQL-выражение.

Примеры

Пример #1 Пример использования pg_send_prepare()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  // Подготовка запроса
  if (!pg_connection_busy($dbconn)) {
    pg_send_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
    $res1 = pg_get_result($dbconn);
  }

  // Запуск запроса на выполнение. Стоит отметить, что нет необходимости экранировать
  // спецсимволы в строке "Joe's Widgets"
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
    $res2 = pg_get_result($dbconn);
  }

  // Запуск на выполнение того же запроса, но с другим параметром
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
    $res3 = pg_get_result($dbconn);
  }

?>

Смотрите также

  • pg_connect() - Открывает соединение с базой данных PostgreSQL
  • pg_pconnect() - Открывает постоянное соединение с сервером PostgreSQL
  • pg_execute() - Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат
  • pg_send_execute() - Запускает предварительно подготовленный SQL-запрос и передает ему параметры; не ожидает возвращаемого результата
  • pg_send_query_params() - Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата


Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата

  • « pg_send_prepare
  • pg_send_query »
  • PHP Manual
  • Функции PostgreSQL
  • Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата

pg_send_query_params

(PHP 5 >= 5.1.0, PHP 7)

pg_send_query_params — Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата

Описание

pg_send_query_params ( resource $connection , string $query , array $params ) : bool

Отправляет параметризованный запрос на выполнение и не ждет его завершения. Параметры передаются отдельно от текста SQL запроса.

Функция является аналогом pg_send_query() за одним исключением: параметры запроса можно передавать отдельно от строки запроса. Аргументы функции обрабатываются так же, как и в pg_query_params(). pg_send_query() поддерживается на соединениях с серверами PostgreSQL версий 7.4 и выше. Функция не будет работать с серверами ранних версий. Также она поддерживает только одну SQL-команду в выражении.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

query

Параметризованный SQL запрос. Должен содержать только одно выражение (несколько выражений разделенных точкой с запятой не поддерживаются). Если в запрос будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т.д.

params

Массив значений параметров запроса для замены псевдопеременных $1, $2 и т.д. в исходной строке запроса. Количество элементов массива должно точно совпадать с количеством псевдопеременных.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пользуйтесь функцией pg_get_result() для получения результата запроса.

Примеры

Пример #1 Пример использования pg_send_query_params()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Не удалось подключиться");

  // Использование параметров. Стоит заметить, что нет необходимости
  // заключать в кавычки и экранировать параметр.
  pg_send_query_params($dbconn, 'select count(*) from authors where city = $1', array('Perth'));

  // В сравнении с pg_send_query
  $str = pg_escape_string('Perth');
  pg_send_query($dbconn, "select count(*) from authors where city = '${str}'");
?>

Смотрите также

  • pg_send_query() - Отправляет асинхронный запрос


Отправляет асинхронный запрос

  • « pg_send_query_params
  • pg_set_client_encoding »
  • PHP Manual
  • Функции PostgreSQL
  • Отправляет асинхронный запрос

pg_send_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_send_query — Отправляет асинхронный запрос

Описание

pg_send_query ( resource $connection , string $query ) : bool

pg_send_query() отправляет на выполнение асинхронный запрос. В отличие от pg_query() запрос может содержать несколько SQL-выражений, разделенных точкой с запятой. Для получения результата запроса используйте функцию pg_get_result().

Выполнение запроса не прерывает работу скрипта. Для определения занятости соединения (когда запрос еще выполняется) используйте функцию pg_connection_busy(). Выполнение запроса можно прервать функцией pg_cancel_query().

Несмотря на то, что можно отправить несколько запросов за раз, их нельзя посылать, пока соединение занято. В противном случае, посланный запрос дождется завершения предыдущего, сотрет его результат и запустится сам. Таким образом вы потеряете данные результата предыдущего запроса.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

query

Одно или несколько SQL-выражений, разделенных точкой с запятой.

Спецсимволы в строке запроса должны быть экранированы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Для получения результата запроса используйте функцию pg_get_result().

Примеры

Пример #1 Пример использования pg_send_query()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Не удалось подключиться");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from authors; select count(*) from authors;");
  }

  $res1 = pg_get_result($dbconn);
  echo "Первый вызов pg_get_result(): $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 содержит $rows1 записей\n\n";

  $res2 = pg_get_result($dbconn);
  echo "Второй вызов pg_get_result(): $res2\n";
  $rows2 = pg_num_rows($res2);
  echo "$res2 содержит $rows2 записей\n";
?>

Результат выполнения данного примера:

Первый вызов pg_get_result(): Resource id #3
Resource id #3 содержит 3 записей

Второй вызов pg_get_result(): Resource id #4
Resource id #4 содержит 1 записей

Смотрите также

  • pg_query() - Выполняет запрос
  • pg_cancel_query() - Остановка асинхронного запроса.
  • pg_get_result() - Получение результата асинхронного запроса
  • pg_connection_busy() - Проверяет, занято ли соединение в данный момент.


Устанавливает клиентскую кодировку

  • « pg_send_query
  • pg_set_error_verbosity »
  • PHP Manual
  • Функции PostgreSQL
  • Устанавливает клиентскую кодировку

pg_set_client_encoding

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

pg_set_client_encoding — Устанавливает клиентскую кодировку

Описание

pg_set_client_encoding ([ resource $connection ], string $encoding ) : int

pg_set_client_encoding() устанавливает клиентскую кодировку и возвращает 0 при успехе, -1 в случае ошибки.

PostgreSQL автоматически конвертирует данные из кодировки базы данных в кодировку клиентского приложения.

Замечание:

Прежнее название функции: pg_setclientencoding().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

encoding

Требуемая клиентская кодировка. Список возможных значений: SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5 or WIN1250.

Список доступных кодировок зависит от версии PostgreSQL. Смотрите документацию к вашей версии сервера.

Возвращаемые значения

Возвращает 0 в случае успеха, либо -1 в случае ошибки.

Примеры

Пример #1 Пример использования pg_set_client_encoding()

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

// Установка кодировки в UNICODE. Данные будут автоматически
// преобразованы из кодировки в базе данных к клиентской.
pg_set_client_encoding($conn, "UNICODE");

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "Произошла ошибка.\n";
  exit;
}

// Выводим UTF-8 данные
while ($row = pg_fetch_row($result)) {
  echo "Author: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}

?>

Смотрите также

  • pg_client_encoding() - Получение кодировки клиента.


Определяет объем текста сообщений, возвращаемых функциями pg_last_error и pg_result_error

  • « pg_set_client_encoding
  • pg_socket »
  • PHP Manual
  • Функции PostgreSQL
  • Определяет объем текста сообщений, возвращаемых функциями pg_last_error и pg_result_error

pg_set_error_verbosity

(PHP 5 >= 5.1.0, PHP 7)

pg_set_error_verbosity — Определяет объем текста сообщений, возвращаемых функциями pg_last_error() и pg_result_error()

Описание

pg_set_error_verbosity ([ resource $connection ], int $verbosity ) : int

Определяет объем текста сообщений, возвращаемых функциями pg_last_error() и pg_result_error().

pg_set_error_verbosity() устанавливает режим, отвечающий за полноту сообщений об ошибках. В режиме PGSQL_ERRORS_TERSE сообщения будут содержать только важность ошибки, основной текст и место возникновения; эта информация обычно умещается в одну строку. В режиме по умолчанию PGSQL_ERRORS_DEFAULT в сообщения будут добавлены детали ошибки, подсказка или поля контекста (это может занять несколько строк). В режиме PGSQL_ERRORS_VERBOSE сообщения будут содержать все возможные поля. Изменение режима не затронет сообщения уже существующих ресурсов. Новый режим будет применяться только к вновь создаваемым.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

verbosity

Требуемый режим: PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT или PGSQL_ERRORS_VERBOSE.

Возвращаемые значения

Предыдущий режим действовавший до запуска функции: PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT или PGSQL_ERRORS_VERBOSE.

Примеры

Пример #1 Пример использования pg_set_error_verbosity()

<?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() - Возвращает сообщение об ошибке, связанное с запросом результата


Получить дескриптор только для чтения на сокет, лежащего в основе соединения PostgreSQL

  • « pg_set_error_verbosity
  • pg_trace »
  • PHP Manual
  • Функции PostgreSQL
  • Получить дескриптор только для чтения на сокет, лежащего в основе соединения PostgreSQL

pg_socket

(PHP 5 >= 5.6.0, PHP 7)

pg_socket — Получить дескриптор только для чтения на сокет, лежащего в основе соединения PostgreSQL

Описание

pg_socket ( resource $connection ) : resource

pg_socket() возвращает ресурс (resource) только для чтения, соответствующий сокету, лежащему в основе данного соединения PostgreSQL.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

connection

Добавлена функция обрезания. Она поддерживает 64-битный большой объект PostgreSQL из версии 9.3. Как клиент, так и сервер должны поддерживать PostgreSQL версии 9.3, а PHP должен быть собран на 64-битной машине для использования большого 64-битного объекта.

Возвращаемые значения

Ресурс сокета в случае успешного выполнения или FALSE в случае возникновения ошибки.


Включает трассировку подключения PostgreSQL

  • « pg_socket
  • pg_transaction_status »
  • PHP Manual
  • Функции PostgreSQL
  • Включает трассировку подключения PostgreSQL

pg_trace

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

pg_trace — Включает трассировку подключения PostgreSQL

Описание

pg_trace ( string $pathname [, string $mode = "w" [, resource $connection ]] ) : bool

pg_trace() включает трассировку соединения с PostgreSQL сервером во внешний файл. Чтобы понимать содержимое таких файлов, необходимо хорошо разбираться во внутреннем устройстве клиент-серверного взаимодействия.

Для тех, кто не обладает подобными навыками, трассировка все же может оказаться полезной для поиска ошибок при отправке запросов на сервер. Например, можно выполнить команду grep '^To backend' trace.log и посмотреть, какие запросы реально отправлены на сервер. Дополнительную информацию можно почерпнуть из » документации PostgreSQL.

Список параметров

pathname

Полный путь и имя файла для записи журнала трассировки. Аналогично fopen().

mode

Необязательный аргумент. Режим доступа к файлу. Аналогично fopen().

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_trace()

<?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);
   // Теперь /tmp/trace.log будет хранить информацию о взаимодействии с сервером
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Смотрите также

  • fopen() - Открывает файл или URL
  • pg_untrace() - Отключает трассировку соединения с PostgreSQL


Возвращает текущее состояние транзакции на сервере

  • « pg_trace
  • pg_tty »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает текущее состояние транзакции на сервере

pg_transaction_status

(PHP 5 >= 5.1.0, PHP 7)

pg_transaction_status — Возвращает текущее состояние транзакции на сервере

Описание

pg_transaction_status ( resource $connection ) : int

Возвращает текущее состояние транзакции на сервере.

Предостережение

pg_transaction_status() выдает некорректный результат при работе с сервером PostgreSQL 7.3, на котором выключена опция autocommit. Автоматическое завершение транзакций на стороне сервера устарело и не используется в более поздних версиях.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

Возвращаемые значения

Список возможных состояний: PGSQL_TRANSACTION_IDLE (сервер бездействует), PGSQL_TRANSACTION_ACTIVE (выполняется запрос), PGSQL_TRANSACTION_INTRANS (сервер бездействует, работа в режиме транзакции), или PGSQL_TRANSACTION_INERROR (сервер бездействует, транзакция потерпела неудачу). PGSQL_TRANSACTION_UNKNOWN - ошибка подключения. PGSQL_TRANSACTION_ACTIVE возвращается только когда запрос уже отправлен на сервер, но еще не обработан.

Примеры

Пример #1 Пример использования pg_transaction_status()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Подключиться не удалось");
  $stat = pg_transaction_status($dbconn);
  if ($stat === PGSQL_TRANSACTION_UNKNOWN) {
      echo 'Соединение не удалось';
  } else if ($stat === PGSQL_TRANSACTION_IDLE) {
      echo 'Соединение свободно и простаивает';
  } else {
      echo 'Соединение в режиме транзакции';
  }
?>


Возвращает имя терминала TTY, связанное с соединением

  • « pg_transaction_status
  • pg_unescape_bytea »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает имя терминала TTY, связанное с соединением

pg_tty

(PHP 4, PHP 5, PHP 7)

pg_tty — Возвращает имя терминала TTY, связанное с соединением

Описание

pg_tty ([ resource $connection ] ) : string

pg_tty() возвращает имя терминала, связанного с подключением PostgreSQL connection, на который выводится отладочная информация.

Замечание:

pg_tty() устарела, но оставлена для обратной совместимости.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Имя TTY для подключения connection в виде строки (string) либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_tty()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "TTY отладки сервера: " . pg_tty($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>


Убирает экранирование двоичных данных типа bytea

  • « pg_tty
  • pg_untrace »
  • PHP Manual
  • Функции PostgreSQL
  • Убирает экранирование двоичных данных типа bytea

pg_unescape_bytea

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_unescape_bytea — Убирает экранирование двоичных данных типа bytea

Описание

pg_unescape_bytea ( string $data ) : string

pg_unescape_bytea() убирает экранирование спецсимволов в значениях типа PostgreSQL bytea. Возвращает неэкранированную строку, содержащую двоичные данные.

Замечание:

При выборке SQL функцией SELECT данных типа bytea PostgreSQL возвращает значения в восьмеричной системе счисления с префиксом '\' (такие как \032). Пользователю необходимо вручную преобразовывать их в двоичный формат.

Функция поддерживается PostgreSQL версии 7.2 и выше. Для версий 7.2.0 и 7.2.1 значения должны быть преобразованы к типу bytea, когда включена мультибайтовая поддержка. Тогда как INSERT INTO test_table (image)VALUES ('$image_escaped'::bytea); в PostgreSQL 7.2.2 и выше не требует каких-либо преобразований. Исключение составляет случай, когда клиентская (frontend) кодировка не соответствует серверной (backend). При этом возникает ошибка мультибайтового потока, и пользователь должен привести данные к типу bytea, чтобы ее избежать.

Список параметров

data

Строка (string), содержащая данные типа PostgreSQL bytea и подлежащая преобразованию в двоичную строку PHP.

Возвращаемые значения

Строка (string) с неэкранированными спецсимволами.

Примеры

Пример #1 Пример использования pg_unescape_bytea()

<?php
  // Подключение к базе данных
  $dbconn = pg_connect('dbname=foo');

  // Получение bytea данных
  $res = pg_query("SELECT data FROM gallery WHERE name='Pine trees'");
  $raw = pg_fetch_result($res, 'data');

  // Преобразование в двоичный формат и отправка в броузер
  header('Content-type: image/jpeg');
  echo pg_unescape_bytea($raw);
?>

Список изменений

Версия | Описание
5.5.1 | Если входная строка не валидна, то бросается предупреждение.

Смотрите также

  • pg_escape_bytea() - Экранирует спецсимволы в строке для вставки в поле типа bytea
  • pg_escape_string() - Экранирование спецсимволов в строке запроса


Отключает трассировку соединения с PostgreSQL

  • « pg_unescape_bytea
  • pg_update »
  • PHP Manual
  • Функции PostgreSQL
  • Отключает трассировку соединения с PostgreSQL

pg_untrace

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

pg_untrace — Отключает трассировку соединения с PostgreSQL

Описание

pg_untrace ([ resource $connection ] ) : bool

Останавливает трассировку, запущенную функцией pg_trace().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Всегда возвращает TRUE.

Примеры

Пример #1 Пример использования pg_untrace()

<?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);
   // Теперь трассировка взаимодействия с сервером отключена
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Смотрите также

  • pg_trace() - Включает трассировку подключения PostgreSQL


Обновление данных в таблице

  • « pg_untrace
  • pg_version »
  • PHP Manual
  • Функции PostgreSQL
  • Обновление данных в таблице

pg_update

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_update — Обновление данных в таблице

Описание

pg_update ( resource $connection , string $table_name , array $data , array $condition [, int $options = PGSQL_DML_EXEC ] ) : mixed

pg_update() заменяет записи в таблице, удовлетворяющие условиям condition данными data. Если задан аргумент options, данные будут преобразованы функцией pg_convert(), которой будут переданы параметры из этого аргумента.

pg_update() обновляет записи, указанные assoc_array в формате field=>value.

Если options указан, pg_convert() применяется к assoc_array с указанными флагами.

По умолчанию pg_update() передает необработаные значения. Значения должны быть экранированы или опция PGSQL_DML_ESCAPE должна быть указана. PGSQL_DML_ESCAPE заключает в кавычки и экранирует параметры/идентификаторы. Поэтому имена таблиц/столбцов становятся чувствительными к регистру.

Обратите внимание, что ни экранирование, ни подготовленный запрос не защитят запрос LIKE, JSON, массив, регулярные выражения и т.д.. Эти параметры должны обрабатываться в соответствии с их контекстами, т.е. следует экранировать/проверять значения.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

table_name

Имя таблицы, в которой обновляются записи.

data

Массив (array), ключи которого соответствуют именам колонок таблицы table_name, а значения заменят данные в этих колонках.

condition

Массив (array), ключи которого соответствуют именам колонок таблицы table_name. Будут обновлены только те строки, значения полей которых совпадут со значениями массива.

options

Одна из констант PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC или PGSQL_DML_STRING, либо их комбинация. Если options содержит PGSQL_DML_STRING, функция вернет строку. Если установлены PGSQL_DML_NO_CONV или PGSQL_DML_ESCAPE, то функция pg_convert() внутренне не вызывается.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Функция вернет строку (string), если константа PGSQL_DML_STRING содержится в options.

Примеры

Пример #1 Пример использования pg_update()

<?php
  $db = pg_connect('dbname=foo');
  $data = array('field1'=>'AA', 'field2'=>'BB');

  // Это безопасно в некоторой степени, поскольку все значения экранируются.
  // Однако PostgreSQL поддерживает JSON/массив. Для этих значений это не безопасно
  // ни с через экранирование, ни с помощью подготовленного запроса.
  $res = pg_update($db, 'post_log', $_POST, $data);
  if ($res) {
      echo "Данные обновлены: $res\n";
  } else {
      echo "Должно быть переданы неверные данные\n";
  }
?>

Список изменений

Версия | Описание
5.6.0 | Больше не является экспериментальной. Добавлена константа PGSQL_DML_ESCAPE, TRUE/FALSE и NULL типы данных теперь поддерживаются.
5.5.3/5.4.19 | Исправлены прямые SQL-инъекции в table_name и непрямые SQL-инъекции в идентификаторах.

Смотрите также

  • pg_convert() - Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах


Возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера (если доступно)

  • « pg_update
  • SQLite »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера (если доступно)

pg_version

(PHP 5, PHP 7)

pg_version — Возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера (если доступно)

Описание

pg_version ([ resource $connection ] ) : array

pg_version() возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера. Версии протокола и сервера доступны, только если PHP-расширение скомпилировано для PostgreSQL версии 7.4 или выше.

Для получения детальной информации о сервере используйте функцию pg_parameter_status().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Возвращает массив с ключами client, protocol и server и соответствующими значениями версий, либо FALSE в случае ошибки или некорректно работающего соединения.

Примеры

Пример #1 Пример использования pg_version()

<?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() - Просмотр текущих значений параметров сервера


SQLite

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • SQLite
    • sqlite_array_query — Выполняет запрос к базе данных и возвращает результат в виде массива
    • sqlite_busy_timeout — Устанавливает или полностью отключает время ожидания
    • sqlite_changes — Возвращает количество записей, которые были изменены последним SQL-запросом
    • sqlite_close — Закрывает открытую базу данных SQLite
    • sqlite_column — Выбирает столбец из текущей записи результата запроса
    • sqlite_create_aggregate — Регистрирует агрегирующую функцию для использования в SQL-запросах
    • sqlite_create_function — Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах
    • sqlite_current — Возвращает текущую запись из результирующего набора в виде массива
    • sqlite_error_string — Возвращает строку с описанием ошибки
    • sqlite_escape_string — Экранирует спецсимволы в строке для использования в запросе
    • sqlite_exec — Выполняет запрос, не возвращающий записей
    • sqlite_factory — Открывает базу данных SQLite и возвращает объект SQLiteDatabase
    • 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 — Возвращает текущую позицию указателя
    • 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 — Выполняет запрос и возвращает массив со значениями одного поля или первую запись
    • sqlite_udf_decode_binary — Декодирует бинарные данные, переданные в качестве параметров в UDF
    • sqlite_udf_encode_binary — Кодирует бинарные данные перед тем как вернуть их из UDF
    • sqlite_unbuffered_query — Выполняет запрос без буферизации результатов
    • sqlite_valid — Проверяет, есть ли еще доступные записи


Введение

Этот модуль обеспечивает доступ к встраиваемой системе управления базами данных SQLite. SQLite - это библиотека на языке C, реализующая встраиваемый движок SQL базы данных. Программы, использующие библиотеку SQLite, могут использовать SQL базы данных без использования внешнего процесса реляционной системы управления базами данных (RDBMS).

SQLite не является клиентской библиотекой, подключающейся к большому серверу базы данных, SQLite сама является сервером и напрямую оперирует файлами базы данных на диске.

Замечание:

Более подробную информацию можно получить на сайте SQLite (» http://sqlite.org/).

Замечание: Это расширение предоставляет поддержку SQLite 2.x. Sqlite 3.x поддерживается расширением SQLite3.


Требования

Начиная с версии PHP 5.0, расширение SQLite доступно по умолчанию. Начиная с версии PHP 5.4, расширение SQLite доступно только через PECL.


Установка

Начиная с версии PHP 5.0, это расширение доступно по умолчанию. Начиная с версии PHP 5.4, расширение SQLite доступно только через PECL.

Для использования этих функций пользователи Windows должны включить php_sqlite.dll в php.ini DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

В сборках Windows необходимо также включить PDO, так как начиная с версии PHP 5.1.0 модуль SQLite также зависит от него. В итоге php.ini будет выглядеть примерно так:

extension=php_pdo.dll
extension=php_sqlite.dll
Если вы собираете PDO в качестве подгружаемого модуля в операционных системах Unix или Linux, для SQLite необходимо использовать конфигурационную опцию --with-sqlite=shared.

Серия Windows сборок версии PHP 5.0.x включала это расширение по умолчанию, без необходимости подключать какие-либо DLL-файлы.

SQLite 3 поддерживается с помощью модуля PDO SQLite.

Замечание: Установка в Windows для непривилегированных аккаунтов

В операционной системе Windows в непривилегированных аккаунтах не переменная окружения TMP по умолчанию не устанавливается. Это вынуждает sqlite создавать временные файлы в папке windows, что не очень хорошо. Для решения этой проблемы необходимо установить переменную окружения TMP для веб-сервера или для того пользовательского аккаунта, под которым он запущен. Если вы используете Apache, то этого можно достигнуть установкой директивы SetEnv в файле httpd.conf. Например:

SetEnv TMP c:/temp
Если вы не можете установить эту переменную на серверном уровне, можно реализовать эту установку с помощью скрипта:
<?php
putenv('TMP=C:/temp');
?>
Опция должна указывать на директорию, в которой веб-сервер может создавать файлы, последовательно писать в них и, соответственно, удалять. Иначе, вы получите следующее сообщение об ошибке: malformed database schema - unable to open a temporary database file for storing temporary tables (поврежденная схема базы данных - невозможно открыть временный файл с базой данных для хранения временных таблиц)


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

SQLite Опции настройки
Имя | По умолчанию | Место изменения | История изменений
sqlite.assoc_case | "0" | PHP_INI_ALL | Доступна, начиная с версии PHP 5.0.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

sqlite.assoc_case int

Использовать смешанный регистр (0), верхний регистр (1) или нижний регистр (2) в индексах ключей.

Эта опция обычно полезна, если вам нужна совместимость с другими базами данных, в которых имена полей всегда возвращаются в верхнем или нижнем регистре, вне зависимости от реально используемого имени в схеме базы данных.

Библиотека SQLite возвращает имена полей в натуральном регистре (т.е. так, как они были определены в схеме вашей базы данных). Если параметр sqlite.assoc_case установлен в 0, то натуральный регистр будет сохранен. При установке параметра в 1 или 2, PHP преобразует индексы ключей в верхний или нижний регистр, соответственно.

Использование этой опции привносит небольшое уменьшение производительности, но является НАМНОГО более быстрым решением, чем осуществление смены регистра вручную в PHP-скрипте.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Модуль SQLite определяет два типа ресурсов: соединение с базой данных и результат запроса.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Функции sqlite_fetch_array() и sqlite_current() могут принимать аргумент, задающий вид возвращаемого массива. В качестве значения этого аргумента используются следующие константы:

Константы выборки SQLite
SQLITE_ASSOC (int)
Индексами массива являются имена полей.
SQLITE_BOTH (int)
Каждому полю соответствуют два элемента массива: с числовым индексом, являющимся порядковым номером поля, и строковым индексом - именем поля.
SQLITE_NUM (int)
Индексами массива являются порядковые номера полей, начиная с 0.

Некоторые функции возвращают коды статусов. Ими являются следующие константы:

Константы статус-кодов SQLite
SQLITE_OK (int)
Успешный результат.
SQLITE_ERROR (int)
Ошибка SQL или отсутствующая база данных.
SQLITE_INTERNAL (int)
Внутренняя логическая ошибка SQLite.
SQLITE_PERM (int)
Доступ запрещен.
SQLITE_ABORT (int)
Callback-процедура запросила прерывание операции.
SQLITE_BUSY (int)
Файл с базой данных заблокирован.
SQLITE_LOCKED (int)
Таблица в базе данных заблокирована.
SQLITE_NOMEM (int)
Не удалось выделить память.
SQLITE_READONLY (int)
Попытка записи в базу данных, доступную только для чтения.
SQLITE_INTERRUPT (int)
Операция была прервана изнутри.
SQLITE_IOERR (int)
На диске произошла ошибка ввода/вывода.
SQLITE_NOTADB (int)
Открытый файл не является файлом базы данных.
SQLITE_CORRUPT (int)
Образ файла базы данных на диске поврежден.
SQLITE_FORMAT (int)
Ошибка вспомогательного форматирования базы данных.
SQLITE_NOTFOUND (int)
(Внутренняя) Таблица или запись не найдена.
SQLITE_FULL (int)
Вставка не удалась из-за переполнения базы данных.
SQLITE_CANTOPEN (int)
Не удалось открыть файл базы данных.
SQLITE_PROTOCOL (int)
Ошибка протокола блокирования базы данных.
SQLITE_EMPTY (int)
(Внутренняя) Таблица базы данных пуста.
SQLITE_SCHEMA (int)
Схема базы данных изменилась.
SQLITE_TOOBIG (int)
Слишком много данных для одного ряда таблицы.
SQLITE_CONSTRAINT (int)
Прерывание в связи с нарушением ограничения.
SQLITE_MISMATCH (int)
Несовпадение типа данных.
SQLITE_MISUSE (int)
Библиотека была использована некорректно.
SQLITE_NOLFS (int)
Использование возможностей ОС не поддерживается хостом.
SQLITE_AUTH (int)
Авторизация не удалась.
SQLITE_ROW (int)
Внутренний процесс получил еще один готовый ряд.
SQLITE_DONE (int)
Внутренний процесс закончил выполнение.


SQLite

Предопределенные классы

SQLiteDatabase

Представляет собой открытую базу данных SQLite.

Конструктор

  • __construct - Создает новый объект SQLiteDatabase

Методы

  • query - Выполняет запрос
  • queryExec - Выполняет запрос без возврата результата
  • arrayQuery - Выполняет запрос и возвращает результат в виде массива
  • singleQuery - Выполняет запрос и возвращает либо массив значений для одного столбца либо значение первого ряда
  • unbufferedQuery - Выполняет небуферизованный запрос
  • lastInsertRowid - Возвращает идентификатор последнего вставленного ряда
  • changes - Возвращает количество рядов, измененных последним запросом
  • createAggregate - Регистрирует агрегирующую UDF для использования в SQL-выражениях
  • createFunction - Регистрирует UDF для использования в SQL-выражениях
  • busyTimeout - Устанавливает или отключает таймаут при ожидании разблокировки
  • lastError - Возвращает код последней ошибки
  • fetchColumnTypes - Возвращает массив типов столбцов из определенной таблицы

SQLiteResult

Представляет собой буферизованный результирующий набор SQLite.

Методы

  • fetch - Возвращает следующий ряд из результирующего набора в виде массива
  • fetchObject - Возвращает следующий ряд из результирующего набора в виде объекта
  • fetchSingle - Возвращает первый столбец из результирующего набора в виде строки
  • fetchAll - Возвращает все ряды из результирующего набора в виде многомерного массива
  • column - Возвращает столбец из текущего ряда результирующего набора
  • numFields - Возвращает количество полей в результирующем наборе
  • fieldName - Возвращает имя определенного поля в результирующем наборе
  • current - Возвращает текущий ряд из результирующего набора в виде массива
  • key - Возвращает индекс текущего ряда
  • next - Передвигает указатель к следующему ряду
  • valid - Проверяет, есть ли еще ряды в результирующем наборе
  • rewind - Сбрасывает указатель к первому ряду результирующего набора
  • prev - Передвигает указатель к предыдущему ряду результирующего набора
  • hasPrev - Проверяет, доступен ли предыдущий ряд
  • numRows - Возвращает количество рядов в результирующем наборе
  • seek - Передвигает указатель на определенный ряд

SQLiteUnbuffered

Представляет собой небуферизованный результирующий набор SQLite. Небуферизованные результаты являются последовательными и разрешают передвигать указатель только вперед.

Методы

  • fetch - Возвращает следующий ряд из результирующего набора в виде массива
  • fetchObject - Возвращает следующий ряд из результирующего набора в виде массива
  • fetchSingle - Возвращает первый столбец из результирующего набора в виде строки
  • fetchAll - Возвращает все ряды из результирующего набора в виде многомерного массива
  • column - Возвращает столбец из текущего ряда результирующего набора
  • numFields - Возвращает количество полей в результирующем наборе
  • fieldName - Возвращает имя определенного поля в результирующем наборе
  • current - Возвращает текущий ряд из результирующего набора в виде массива
  • next - Передвигает указатель к следующему ряду
  • valid - Проверяет, есть ли еще ряды в результирующем наборе

Содержание

  • sqlite_array_query — Выполняет запрос к базе данных и возвращает результат в виде массива
  • sqlite_busy_timeout — Устанавливает или полностью отключает время ожидания
  • sqlite_changes — Возвращает количество записей, которые были изменены последним SQL-запросом
  • sqlite_close — Закрывает открытую базу данных SQLite
  • sqlite_column — Выбирает столбец из текущей записи результата запроса
  • sqlite_create_aggregate — Регистрирует агрегирующую функцию для использования в SQL-запросах
  • sqlite_create_function — Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах
  • sqlite_current — Возвращает текущую запись из результирующего набора в виде массива
  • sqlite_error_string — Возвращает строку с описанием ошибки
  • sqlite_escape_string — Экранирует спецсимволы в строке для использования в запросе
  • sqlite_exec — Выполняет запрос, не возвращающий записей
  • sqlite_factory — Открывает базу данных SQLite и возвращает объект SQLiteDatabase
  • 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 — Возвращает текущую позицию указателя
  • 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 — Выполняет запрос и возвращает массив со значениями одного поля или первую запись
  • sqlite_udf_decode_binary — Декодирует бинарные данные, переданные в качестве параметров в UDF
  • sqlite_udf_encode_binary — Кодирует бинарные данные перед тем как вернуть их из UDF
  • sqlite_unbuffered_query — Выполняет запрос без буферизации результатов
  • sqlite_valid — Проверяет, есть ли еще доступные записи


Выполняет запрос к базе данных и возвращает результат в виде массива

  • « SQLite
  • sqlite_busy_timeout »
  • PHP Manual
  • SQLite
  • Выполняет запрос к базе данных и возвращает результат в виде массива

sqlite_array_query

SQLiteDatabase::arrayQuery

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_array_query -- SQLiteDatabase::arrayQuery — Выполняет запрос к базе данных и возвращает результат в виде массива

Описание

sqlite_array_query ( resource $dbhandle , string $query [, int $result_type = SQLITE_BOTH [, bool $decode_binary = TRUE ]] ) : array
sqlite_array_query ( string $query , resource $dbhandle [, int $result_type = SQLITE_BOTH [, bool $decode_binary = TRUE ]] ) : array

Объектно-ориентированный стиль (метод):

public SQLiteDatabase::arrayQuery ( string $query [, int $result_type = SQLITE_BOTH [, bool $decode_binary = TRUE ]] ) : array

sqlite_array_query() выполняет указанный запрос
и возвращает массив с полным результирующим набором. Использование
sqlite_array_query() идентично
использованию sqlite_query() с последующим вызовом
sqlite_fetch_array() для каждой записи результата
запроса с сохранением записей в массиве, как показано в приведенном ниже
примере. sqlite_array_query() выполняется значительно
быстрее, чем вышеупомянутая последовательность.

Подсказка

sqlite_array_query() наилучшим образом подходит для запросов, возвращающих до 45 записей. Для запросов, возвращающих большие наборы записей, оптимальным с точки зрения быстродействия является использование функции sqlite_unbuffered_query().

Список параметров

query

Выполняемый запрос.

Данные, используемые в запросе, должны быть корректно экранированы.

dbhandle

Ресурс базы данных SQLite, возвращенный из sqlite_open() в случае использования процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

result_type

Необязательный параметр result_type принимает константу, определяющую, как будет индексирован возвращаемый массив. При использовании SQLITE_ASSOC будет возвращен ассоциативный массив, а при использовании SQLITE_NUM - числовой. SQLITE_BOTH вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции является SQLITE_BOTH.

decode_binary

Когда параметр decode_binary установлен в TRUE (по умолчанию), PHP будет декодировать бинарный код, примененный к данным, как если бы они были закодированы функцией sqlite_escape_string(). Обычно вам следует оставлять это значение по умолчанию, если только вы не работаете с базой данных sqlite, которая была создана в ином приложении.

Замечание: Поддерживаются два альтернативных синтаксиса для совместимости с другими расширениями баз данных (например, MySQL). Предпочитаемая форма - первая, в которой параметр dbhandle является первым параметром функции.

Возвращаемые значения

Возвращает массив с полным результирующим набором, в противном случае возвращает FALSE.

Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH, будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.

Примеры

Пример #1 Процедурный стиль

<?php
$dbhandle = sqlite_open('sqlitedb');
$result = sqlite_array_query($dbhandle, 'SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Имя: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Пример #2 Объектно-ориентированный стиль

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');
$result = $dbhandle->arrayQuery('SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Имя: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Смотрите также

  • sqlite_query() - Выполняет запрос к базе данных и возвращает идентификатор результата
  • sqlite_fetch_array() - Выбирает следующую запись из результата запроса и возвращает массив
  • sqlite_fetch_string() - Псевдоним sqlite_fetch_single


Устанавливает или полностью отключает время ожидания

  • « sqlite_array_query
  • sqlite_changes »
  • PHP Manual
  • SQLite
  • Устанавливает или полностью отключает время ожидания

sqlite_busy_timeout

SQLiteDatabase::busyTimeout

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_busy_timeout -- SQLiteDatabase::busyTimeout — Устанавливает или полностью отключает время ожидания

Описание

sqlite_busy_timeout ( resource $dbhandle , int $milliseconds ) : void

Объектно-ориентированный стиль (метод):

public SQLiteDatabase::busyTimeout ( int $milliseconds ) : void

Устанавливает максимальное время, в миллисекундах, в течение которого SQLite ожидает готовности базы данных, заданной аргументом dbhandle.

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

milliseconds

Количество миллисекунд. Если равен 0, то функции-обработчики, вызываемые при блокировке базы данных, будут отключены и SQLITE немедленно вернет статус-код SQLITE_BUSY, если другой процесс/нить заблокировал базу данных для обновления.

По умолчанию, при открытии базы данных, PHP устанавливает время ожидания в 60 секунд.

Замечание:

В одной секунде содержится одна тысяча (1000) миллисекунд.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Процедурный стиль

<?php
$dbhandle = sqlite_open('sqlitedb');
sqlite_busy_timeout($dbhandle, 10000); // установка таймаута в 10 секунд
sqlite_busy_timeout($dbhandle, 0); // отключение функции-обработчика
?>

Пример #2 Объектно-ориентированный стиль

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');
$dbhandle->busyTimeout(10000); // 10 секунд
$dbhandle->busyTimeout(0); // отключение
?>

Смотрите также

  • sqlite_open() - Открывает базу данных SQLite или создает ее, если она не существует


Возвращает количество записей, которые были изменены последним SQL-запросом

  • « sqlite_busy_timeout
  • sqlite_close »
  • PHP Manual
  • SQLite
  • Возвращает количество записей, которые были изменены последним SQL-запросом

sqlite_changes

SQLiteDatabase::changes

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_changes -- SQLiteDatabase::changes — Возвращает количество записей, которые были изменены последним SQL-запросом

Описание

sqlite_changes ( resource $dbhandle ) : int

Объектно-ориентированный стиль (метод):

public SQLiteDatabase::changes ( void ) : int

Возвращает количество записей, которые были изменены последним SQL-запросом к базе данных dbhandle.

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

Возвращаемые значения

Возвращает количество измененных записей.

Примеры

Пример #1 Процедурный стиль

<?php
$dbhandle = sqlite_open('mysqlitedb');
$query = sqlite_query($dbhandle, "UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'");
if (!$query) {
    exit('Ошибка в запросе.');
} else {
    echo 'Количество измененных записей: ', sqlite_changes($dbhandle);
}
?>

Пример #2 Объектно-ориентированный стиль

<?php
$dbhandle = new SQLiteDatabase('mysqlitedb');
$query = $dbhandle->query("UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'");
if (!$query) {
    exit('Ошибка в запросе.');
} else {
    echo 'Количество измененных записей: ', $dbhandle->changes();
}
?>

Смотрите также

  • sqlite_open() - Открывает базу данных SQLite или создает ее, если она не существует


Закрывает открытую базу данных SQLite

  • « sqlite_changes
  • sqlite_column »
  • PHP Manual
  • SQLite
  • Закрывает открытую базу данных SQLite

sqlite_close

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_close — Закрывает открытую базу данных SQLite

Описание

sqlite_close ( resource $dbhandle ) : void

Закрывает базу данных, идентификатор соединения с которой передан через аргумент dbhandle. Если соединение с базой данных было постоянным, также удаляет это соединение из списка постоянных.

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования sqlite_close()

<?php
$dbhandle = sqlite_open('sqlitedb');
sqlite_close($dbhandle);
?>

Смотрите также

  • sqlite_open() - Открывает базу данных SQLite или создает ее, если она не существует
  • sqlite_popen() - Открывает постоянное подключение к базе данных SQLite или создает ее, если она не существует


Выбирает столбец из текущей записи результата запроса

  • « sqlite_close
  • sqlite_create_aggregate »
  • PHP Manual
  • SQLite
  • Выбирает столбец из текущей записи результата запроса

sqlite_column

SQLiteResult::column

SQLiteUnbuffered::column

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_column -- SQLiteResult::column -- SQLiteUnbuffered::column — Выбирает столбец из текущей записи результата запроса

Описание

sqlite_column ( resource $result , mixed $index_or_name [, bool $decode_binary = TRUE ] ) : mixed
SQLiteResult::column ( mixed $index_or_name [, bool $decode_binary = TRUE ] ) : mixed
SQLiteUnbuffered::column ( mixed $index_or_name [, bool $decode_binary = TRUE ] ) : mixed

Выбирает значение столбца с именем index_or_name (если это строка) или его порядковый номер index_or_name (если это целое число) из текущей записи результата запроса result.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

index_or_name

Индекс или имя возвращаемого столбца.

decode_binary

Когда параметр decode_binary установлен в TRUE (по умолчанию), PHP будет декодировать бинарный код, примененный к данным, как если бы они были закодированы функцией sqlite_escape_string(). Обычно вам следует оставлять это значение по умолчанию, если только вы не работаете с базой данных sqlite, которая была создана в ином приложении.

Возвращаемые значения

Возвращает значение столбца.

Примечания

Замечание:

Используйте эту функцию с запросами, возвращающими большие наборы данных с большим количеством полей, либо если поля содержат большие объемы данных.

Смотрите также

  • sqlite_fetch_string() - Псевдоним sqlite_fetch_single


Регистрирует агрегирующую функцию для использования в SQL-запросах

  • « sqlite_column
  • sqlite_create_function »
  • PHP Manual
  • SQLite
  • Регистрирует агрегирующую функцию для использования в SQL-запросах

sqlite_create_aggregate

SQLiteDatabase::createAggregate

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_create_aggregate -- SQLiteDatabase::createAggregate — Регистрирует агрегирующую функцию для использования в SQL-запросах

Описание

sqlite_create_aggregate ( resource $dbhandle , string $function_name , callable $step_func , callable $finalize_func [, int $num_args = -1 ] ) : void

Объектно-ориентированный стиль (метод):

public SQLiteDatabase::createAggregate ( string $function_name , callable $step_func , callable $finalize_func [, int $num_args = -1 ] ) : void

sqlite_create_aggregate() похожа на sqlite_create_function(), за исключением того, что регистрирует функцию, которая может быть использована для вычисления результата на основе всех записей результата запроса.

Главное отличие этой функции от sqlite_create_function() состоит в том, что для работы агрегирующей функции необходимы 2 функции; step_func вызывается для каждой записи из результата запроса. Эта функция должна аккумулировать результат и сохранять его в контекстной переменной. После обработки всех записей, вызывается finalize_func, которая должна обработать данные из контекстной переменной и вернуть результат. Callback-функции должны возвращать тип, который сможет понять SQLite (т.е. скалярный).

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

function_name

Имя функции, используемой в SQL-запросах.

step_func

Callback-функция, вызываемая для каждого ряда результирующего набора. Функция принимает параметры &$context, $value, ....

finalize_func

Callback-функция для агрегации собранных данных из каждого ряда. Функция принимает параметр &$context и должна вернуть итоговый результат агрегации.

num_args

Подсказка парсеру SQLite, если callback-функция принимает известное количество параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #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() - Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах
  • sqlite_udf_encode_binary() - Кодирует бинарные данные перед тем как вернуть их из UDF
  • sqlite_udf_decode_binary() - Декодирует бинарные данные, переданные в качестве параметров в UDF


Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах

  • « sqlite_create_aggregate
  • sqlite_current »
  • PHP Manual
  • SQLite
  • Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах

sqlite_create_function

SQLiteDatabase::createFunction

(PHP 5 < 5.4.0, sqlite >= 1.0.0)

sqlite_create_function -- SQLiteDatabase::createFunction — Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах

Описание

sqlite_create_function ( resource $dbhandle , string $function_name , callable $callback [, int $num_args = -1 ] ) : void

Объектно-ориентированный стиль (метод):

public SQLiteDatabase::createFunction ( string $function_name , callable $callback [, int $num_args = -1 ] ) : void

sqlite_create_function() позволяет зарегистрировать PHP функцию для использования в SQLite в качестве UDF (User Defined Function - функция, определенная пользователем), что позволяет использовать эту функцию в SQL-запросах.

Определенная таким образом функция может быть использована в любом SQL-запросе, допускающем использование функций, например, SELECT и UPDATE, а также в триггерах.

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

function_name

Имя функции, используемой в SQL-запросах.

callback

Callback-функция, обрабатывающая указанную SQL-функцию.

Замечание: Callback-функции должны возвращать тип, понятный SQLite (т.е. скалярный).

num_args

Подсказка парсеру SQLite, если callback-функция принимает известное количество аргументов.

Замечание: Поддерживаются два альтернативных синтаксиса для совместимости с другими расширениями баз данных (например, MySQL). Предпочитаемая форма - первая, в которой параметр dbhandle является первым параметром функции.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #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 'Ошибка открытия базы sqlite: ' . $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.

Смотрите также

  • sqlite_create_aggregate() - Регистрирует агрегирующую функцию для использования в SQL-запросах


Возвращает текущую запись из результирующего набора в виде массива

  • « sqlite_create_function
  • sqlite_error_string »
  • PHP Manual
  • SQLite
  • Возвращает текущую запись из результирующего набора в виде массива

sqlite_current

SQLiteResult::current

SQLiteUnbuffered::current

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_current -- SQLiteResult::current -- SQLiteUnbuffered::current — Возвращает текущую запись из результирующего набора в виде массива

Описание

sqlite_current ( resource $result [, int $result_type = SQLITE_BOTH [, bool $decode_binary = TRUE ]] ) : array

Объектно-ориентированный стиль (метод):

SQLiteResult::current ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = TRUE ]] ) : array
SQLiteUnbuffered::current ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = TRUE ]] ) : array

sqlite_current() аналогична sqlite_fetch_array() за исключением того, что она не переходит к следующей записи до выборки данных, а просто возвращает данные из текущий позиции.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

result_type

Необязательный параметр result_type принимает константу, определяющую, как будет индексирован возвращаемый массив. При использовании SQLITE_ASSOC будет возвращен ассоциативный массив, а при использовании SQLITE_NUM - числовой. SQLITE_BOTH вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции является SQLITE_BOTH.

decode_binary

Когда параметр decode_binary установлен в TRUE (по умолчанию), PHP будет декодировать бинарный код, примененный к данным, как если бы они были закодированы функцией sqlite_escape_string(). Обычно вам следует оставлять это значение по умолчанию, если только вы не работаете с базой данных sqlite, которая была создана в ином приложении.

Возвращаемые значения

Возвращает текущую запись из результирующего набора в виде массива. Если текущая позиция в результате запроса находится за последней записью, функция возвращает FALSE.

Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH, будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.

Смотрите также

  • sqlite_seek() - Переходит к определенному номеру записи в буферизованном результирующем наборе
  • sqlite_next() - Переходит на следующую запись
  • sqlite_fetch_array() - Выбирает следующую запись из результата запроса и возвращает массив


Возвращает строку с описанием ошибки

  • « sqlite_current
  • sqlite_escape_string »
  • PHP Manual
  • SQLite
  • Возвращает строку с описанием ошибки

sqlite_error_string

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_error_string — Возвращает строку с описанием ошибки

Описание

sqlite_error_string ( int $error_code ) : string

Возвращает читабельное описание ошибки с кодом error_code, полученного из функции sqlite_last_error().

Список параметров

error_code

Код ошибки, полученный из sqlite_last_error().

Возвращаемые значения

Возвращает читабельное описание ошибки с кодом error_code в виде string.

Смотрите также

  • sqlite_last_error() - Возвращает код ошибки последней операции с SQLite


Экранирует спецсимволы в строке для использования в запросе

  • « sqlite_error_string
  • sqlite_exec »
  • PHP Manual
  • SQLite
  • Экранирует спецсимволы в строке для использования в запросе

sqlite_escape_string

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_escape_string — Экранирует спецсимволы в строке для использования в запросе

Описание

sqlite_escape_string ( string $item ) : string

sqlite_escape_string() экранирует спецсимволы в строке item для использования в запросе SQLite. Одиночные кавычки (') будут удвоены, а также будет произведена проверка на наличие небезопасных бинарных данных в строке.

Хотя кодирование и позволяет вставлять бинарные данные, операторы сравнения и LIKE для полей, содержащих такие данные, будут работать некорректно. На практике, однако, это не создает проблем, так как база данных должна быть спроектирована таким образом, чтобы не было необходимости использовать операции сравнения с бинарными данными. Фактически, для хранения таких данных лучше подходят другие способы, например, файлы.

Список параметров

item

Экранируемая строка (string).

Если item содержит символ NUL или начинается с символа с кодом 0x01, будет применена специальная схема кодирования, позволяющая безопасно хранить бинарные данные.

Возвращаемые значения

Возвращает экранируемую строку (string) пригодную для использования в SQL-запросе SQLite.

Примечания

Замечание:

    Не применяйте эту функцию к значениям, возвращаемым UDF, созданных с
    использованием sqlite_create_function() или
    sqlite_create_aggregate() - используйте
    вместо этого sqlite_udf_encode_binary().

Внимание

Функцию addslashes() НЕЛЬЗЯ использовать для экранирования строк для запросов к SQLite. Это приведет к неожиданным результатам при выборке данных.

Смотрите также

  • sqlite_udf_encode_binary() - Кодирует бинарные данные перед тем как вернуть их из UDF


Выполняет запрос, не возвращающий записей

  • « sqlite_escape_string
  • sqlite_factory »
  • PHP Manual
  • SQLite
  • Выполняет запрос, не возвращающий записей

sqlite_exec

SQLiteDatabase::exec

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.3)

sqlite_exec -- SQLiteDatabase::exec — Выполняет запрос, не возвращающий записей

Описание

sqlite_exec ( resource $dbhandle , string $query [, string &$error_msg ] ) : bool
sqlite_exec ( string $query , resource $dbhandle ) : bool

Объектно-ориентированный стиль (метод):

public SQLiteDatabase::queryExec ( string $query [, string &$error_msg ] ) : bool

Выполняет запрос query к базе данных, идентификатор которой задан аргументом dbhandle.

Внимание

SQLite выполнит несколько запросов, разделенных точкой с запятой, за один вызов функции. Это можно использовать, например, для выполнения запросов, прочитанных из файла.

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

query

Выполняемый запрос.

Данные в запросе должны быть корректно экранированы.

error_msg

Данная переменная будет заполнена текстом ошибки, если таковая произойдет. Это особенно важно, потому что синтаксические ошибки SQL не могут быть получены из функции sqlite_last_error().

Замечание: Поддерживаются два альтернативных синтаксиса для совместимости с другими расширениями баз данных (например, MySQL). Предпочитаемая форма - первая, в которой параметр dbhandle является первым параметром функции.

Возвращаемые значения

Функция возвращает булевый результат: TRUE в случае успешного выполнения и FALSE в случае возникновения ошибки. Если вам необходимо запустить запрос, возвращающий результат, используйте функцию sqlite_query().

Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH, будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр error_msg

Примеры

Пример #1 Пример с использованием процедурного стиля

<?php
$dbhandle = sqlite_open('mysqlitedb');
$query = sqlite_exec($dbhandle, "UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'", $error);
if (!$query) {
    exit("Ошибка в запросе: '$error'");
} else {
    echo 'Количество затронутых рядов: ', sqlite_changes($dbhandle);
}
?>

Пример #2 Объектно-ориентированный стиль

<?php
$dbhandle = new SQLiteDatabase('mysqlitedb');
$query = $dbhandle->queryExec("UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'", $error);
if (!$query) {
    exit("Ошибка в запросе: '$error'");
} else {
    echo 'Количество затронутых рядов: ', $dbhandle->changes();
}
?>

Смотрите также

  • sqlite_query() - Выполняет запрос к базе данных и возвращает идентификатор результата
  • sqlite_unbuffered_query() - Выполняет запрос без буферизации результатов
  • sqlite_array_query() - Выполняет запрос к базе данных и возвращает результат в виде массива


Открывает базу данных SQLite и возвращает объект SQLiteDatabase

  • « sqlite_exec
  • sqlite_fetch_all »
  • PHP Manual
  • SQLite
  • Открывает базу данных SQLite и возвращает объект SQLiteDatabase

sqlite_factory

(PHP 5 < 5.4.0)

sqlite_factory — Открывает базу данных SQLite и возвращает объект SQLiteDatabase

Описание

sqlite_factory ( string $filename [, int $mode = 0666 [, string &$error_message ]] ) : SQLiteDatabase

sqlite_factory() похожа на sqlite_open() в том, что она открывает базу данных SQLite или пытается создать ее, если она не существует. Однако, в качестве результата возвращается объект SQLiteDatabase, а не ресурс. Для дальнейшего использования и замечаний смотрите страницу sqlite_open().

Список параметров

filename

Путь к базе данных SQLite.

mode

Режим файла. Предназначается для открытия базы данных в режиме только для чтения. На данный момент этот параметр игнорируется библиотекой sqlite. Значением по умолчанию является 0666, рекомендуется использовать именно это значение.

error_message

Передается по ссылке и устанавливается в понятное сообщение об ошибке, разъясняющее, почему база данных не может быть открыта, в случае возникновения ошибки.

Возвращаемые значения

Возвращает объект SQLiteDatabase в случае успешного выполнения, или NULL в случае возникновения ошибки.

Примеры

Пример #1 Пример использования sqlite_factory()

<?php
$dbhandle = sqlite_factory('sqlitedb');
$dbhandle->query('SELECT user_id, username FROM users');

/* процедурный эквивалент: */

$dbhandle = new SQLiteDatabase('sqlitedb');
$dbhandle->query('SELECT user_id, username FROM users');

?>

Смотрите также

  • sqlite_open() - Открывает базу данных SQLite или создает ее, если она не существует
  • sqlite_popen() - Открывает постоянное подключение к базе данных SQLite или создает ее, если она не существует


Выбирает все записи из результата запроса и возвращает многомерный массив

  • « sqlite_factory
  • sqlite_fetch_array »
  • PHP Manual
  • SQLite
  • Выбирает все записи из результата запроса и возвращает многомерный массив

sqlite_fetch_all

SQLiteResult::fetchAll

SQLiteUnbuffered::fetchAll

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_fetch_all -- SQLiteResult::fetchAll -- SQLiteUnbuffered::fetchAll — Выбирает все записи из результата запроса и возвращает многомерный массив

Описание

sqlite_fetch_all ( resource $result [, int $result_type = SQLITE_BOTH [, bool $decode_binary = TRUE ]] ) : array

Объектно-ориентированный стиль (метод):

SQLiteResult::fetchAll ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = TRUE ]] ) : array
SQLiteUnbuffered::fetchAll ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = TRUE ]] ) : array

sqlite_fetch_all() возвращает массив с полным результирующим набором из ресурса result. Она похожа на вызов функци sqlite_query() (или sqlite_unbuffered_query()), а затем sqlite_fetch_array() для каждого ряда результирующего набора.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

result_type

Необязательный параметр result_type принимает константу, определяющую, как будет индексирован возвращаемый массив. При использовании SQLITE_ASSOC будет возвращен ассоциативный массив, а при использовании SQLITE_NUM - числовой. SQLITE_BOTH вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции является SQLITE_BOTH.

decode_binary

Когда параметр decode_binary установлен в TRUE (по умолчанию), PHP будет декодировать бинарный код, примененный к данным, как если бы они были закодированы функцией sqlite_escape_string(). Обычно вам следует оставлять это значение по умолчанию, если только вы не работаете с базой данных sqlite, которая была создана в ином приложении.

Возвращаемые значения

Возвращает массив с оставшимися рядами в результирующем наборе. Возвращает все ряды при вызове сразу после sqlite_query(). При вызове после sqlite_fetch_array(), функция вернет оставшиеся ряды. Если в результирующем наборе больше нет рядов, то будет возвращен пустой массив.

Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH, будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.

Примеры

Пример #1 Процедурный стиль

<?php
$dbhandle = sqlite_open('sqlitedb');
$query = sqlite_query($dbhandle, 'SELECT name, email FROM users LIMIT 25');
$result = sqlite_fetch_all($query, SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Имя: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Пример #2 Объектно-ориентированный стиль

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');

$query = $dbhandle->query('SELECT name, email FROM users LIMIT 25'); // буферизованный результирующий набор
$query = $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // небуферизованный результирующий набор

$result = $query->fetchAll(SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Имя: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Смотрите также

  • sqlite_fetch_array() - Выбирает следующую запись из результата запроса и возвращает массив


Выбирает следующую запись из результата запроса и возвращает массив

  • « sqlite_fetch_all
  • sqlite_fetch_column_types »
  • PHP Manual
  • SQLite
  • Выбирает следующую запись из результата запроса и возвращает массив

sqlite_fetch_array

SQLiteResult::fetch

SQLiteUnbuffered::fetch

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_fetch_array -- SQLiteResult::fetch -- SQLiteUnbuffered::fetch — Выбирает следующую запись из результата запроса и возвращает массив

Описание

sqlite_fetch_array ( resource $result [, int $result_type = SQLITE_BOTH [, bool $decode_binary = TRUE ]] ) : array

Объектно-ориентированный стиль (метод):

SQLiteResult::fetch ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = TRUE ]] ) : array
SQLiteUnbuffered::fetch ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = TRUE ]] ) : array

Выбирает следующую запись из результата запроса, заданного аргументом result. Если результат больше не содержит данных, возвращает FALSE, иначе возвращает массив, содержащий данные.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

result_type

Необязательный параметр result_type принимает константу, определяющую, как будет индексирован возвращаемый массив. При использовании SQLITE_ASSOC будет возвращен ассоциативный массив, а при использовании SQLITE_NUM - числовой. SQLITE_BOTH вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции является SQLITE_BOTH.

decode_binary

Когда параметр decode_binary установлен в TRUE (по умолчанию), PHP будет декодировать бинарный код, примененный к данным, как если бы они были закодированы функцией sqlite_escape_string(). Обычно вам следует оставлять это значение по умолчанию, если только вы не работаете с базой данных sqlite, которая была создана в ином приложении.

Возвращаемые значения

Возвращает массив со следующей записью в результирующем наборе, или FALSE, если следующая позиция находится за последней записью.

Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH, будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.

Примеры

Пример #1 Процедурный стиль

<?php
$dbhandle = sqlite_open('sqlitedb');
$query = sqlite_query($dbhandle, 'SELECT name, email FROM users LIMIT 25');
while ($entry = sqlite_fetch_array($query, SQLITE_ASSOC)) {
    echo 'Имя: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Пример #2 Объектно-ориентированный стиль

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');

$query = $dbhandle->query('SELECT name, email FROM users LIMIT 25'); // буферизованный результирующий набор
$query = $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // небуферизованный результирующий набор

while ($entry = $query->fetch(SQLITE_ASSOC)) {
    echo 'Имя: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Смотрите также

  • sqlite_array_query() - Выполняет запрос к базе данных и возвращает результат в виде массива
  • sqlite_fetch_string() - Псевдоним sqlite_fetch_single


Возвращает массив, содержащий информацию о типах полей в таблице

  • « sqlite_fetch_array
  • sqlite_fetch_object »
  • PHP Manual
  • SQLite
  • Возвращает массив, содержащий информацию о типах полей в таблице

sqlite_fetch_column_types

SQLiteDatabase::fetchColumnTypes

(PHP 5 < 5.4.0)

sqlite_fetch_column_types -- SQLiteDatabase::fetchColumnTypes — Возвращает массив, содержащий информацию о типах полей в таблице

Описание

sqlite_fetch_column_types ( string $table_name , resource $dbhandle [, int $result_type = SQLITE_ASSOC ] ) : array

Объектно-ориентированный стиль (метод):

public SQLiteDatabase::fetchColumnTypes ( string $table_name [, int $result_type = SQLITE_ASSOC ] ) : array

sqlite_fetch_column_types() возвращает массив, содержащий информацию о типах полей в указанной таблице table_name.

Список параметров

table_name

Название опрашиваемой таблицы.

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() при использовании процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

result_type

Необязательный параметр result_type принимает константу в качестве значения и определяет способ индексации возвращаемого массива. Использование константы SQLITE_ASSOC вернет только ассоциативные индексы (именованные поля), тогда как использование SQLITE_NUM вернет только числовые индексы (порядковые номера полей). По умолчанию используется SQLITE_ASSOC.

Возвращаемые значения

Возвращает массив с типами полей, или FALSE в случае ошибки.

Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH, будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр result_type

Примеры

Пример #1 Процедурный стиль

<?php
$db = sqlite_open('mysqlitedb');
sqlite_query($db, 'CREATE TABLE foo (bar varchar(10), arf text)');
$cols = sqlite_fetch_column_types('foo', $db, SQLITE_ASSOC);

foreach ($cols as $column => $type) {
    echo "Поле: $column  Тип: $type\n";
}
?>

Пример #2 Объектно-ориентированный стиль

<?php
$db = new SQLiteDatabase('mysqlitedb');
$db->query('CREATE TABLE foo (bar varchar(10), arf text)');
$cols = $db->fetchColumnTypes('foo', SQLITE_ASSOC);

foreach ($cols as $column => $type) {
    echo "Поле: $column  Тип: $type\n";
}
?>

Результат выполнения данного примера:

Поле: bar  Тип: VARCHAR
Поле: arf  Тип: TEXT


Выбирает следующую запись из результата запроса и возвращает объект

  • « sqlite_fetch_column_types
  • sqlite_fetch_single »
  • PHP Manual
  • SQLite
  • Выбирает следующую запись из результата запроса и возвращает объект

sqlite_fetch_object

SQLiteResult::fetchObject

SQLiteUnbuffered::fetchObject

(PHP 5 < 5.4.0)

sqlite_fetch_object -- SQLiteResult::fetchObject -- SQLiteUnbuffered::fetchObject — Выбирает следующую запись из результата запроса и возвращает объект

Описание

sqlite_fetch_object ( resource $result [, string $class_name [, array $ctor_params [, bool $decode_binary = TRUE ]]] ) : object

Объектно-ориентированный стиль (метод):

SQLiteResult::fetchObject ([ string $class_name [, array $ctor_params [, bool $decode_binary = TRUE ]]] ) : object
SQLiteUnbuffered::fetchObject ([ string $class_name [, array $ctor_params [, bool $decode_binary = TRUE ]]] ) : object
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Выбирает значение первого поля из результата запроса и возвращает в виде строки

  • « sqlite_fetch_object
  • sqlite_fetch_string »
  • PHP Manual
  • SQLite
  • Выбирает значение первого поля из результата запроса и возвращает в виде строки

sqlite_fetch_single

SQLiteResult::fetchSingle

SQLiteUnbuffered::fetchSingle

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.1)

sqlite_fetch_single -- SQLiteResult::fetchSingle -- SQLiteUnbuffered::fetchSingle — Выбирает значение первого поля из результата запроса и возвращает в виде строки

Описание

sqlite_fetch_single ( resource $result [, bool $decode_binary = TRUE ] ) : string

Объектно-ориентированный стиль (метод):

SQLiteResult::fetchSingle ([ bool $decode_binary = TRUE ] ) : string
SQLiteUnbuffered::fetchSingle ([ bool $decode_binary = TRUE ] ) : string

sqlite_fetch_single() идентична sqlite_fetch_array() за исключением того, что возвращается значение только первого поля.

Использование этой функции является оптимальным способом получения данных, когда нужно получить значение только одного поля.

Список параметров

result

Ресурс результата SQLite. Параметр не требуется при использовании объектно-ориентированного метода.

decode_binary

Когда параметр decode_binary установлен в TRUE (по умолчанию), PHP будет декодировать бинарный код, примененный к данным, как если бы они были закодированы функцией sqlite_escape_string(). Обычно вам следует оставлять это значение по умолчанию, если только вы не работаете с базой данных sqlite, которая была создана в ином приложении.

Возвращаемые значения

Возвращает значение первого поля в виде строки.

Примеры

Пример #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_single

  • « sqlite_fetch_single
  • sqlite_field_name »
  • PHP Manual
  • SQLite
  • Псевдоним sqlite_fetch_single

sqlite_fetch_string

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_fetch_string — Псевдоним sqlite_fetch_single()

Описание

Эта функция является псевдонимом: sqlite_fetch_single().


Возвращает имя указанного поля

  • « sqlite_fetch_string
  • sqlite_has_more »
  • PHP Manual
  • SQLite
  • Возвращает имя указанного поля

sqlite_field_name

SQLiteResult::fieldName

SQLiteUnbuffered::fieldName

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_field_name -- SQLiteResult::fieldName -- SQLiteUnbuffered::fieldName — Возвращает имя указанного поля

Описание

sqlite_field_name ( resource $result , int $field_index ) : string

Объектно-ориентированный стиль (метод):

SQLiteResult::fieldName ( int $field_index ) : string
SQLiteUnbuffered::fieldName ( int $field_index ) : string

При передаче номера поля field_index функция sqlite_field_name() возвращает имя этого поля из результата запроса result.

Список параметров

result

Ресурс результата SQLite. Параметр не требуется при использовании объектно-ориентированного метода.

field_index

Порядковый номер поля в результирующем наборе.

Возвращаемые значения

Возвращает имя поля в результирующем наборе SQLite по указанному порядковому номеру поля или FALSE в случае возникновения ошибки.

Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH, будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.


Определяет, есть ли еще записи в результате запроса

  • « sqlite_field_name
  • sqlite_has_prev »
  • PHP Manual
  • SQLite
  • Определяет, есть ли еще записи в результате запроса

sqlite_has_more

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_has_more — Определяет, есть ли еще записи в результате запроса

Описание

sqlite_has_more ( resource $result ) : bool

Определяет, есть ли еще записи в результате запроса.

Список параметров

result

Ресурс результата SQLite.

Возвращаемые значения

sqlite_has_more() возвращает TRUE, если результат запроса result содержит записи, доступные для выборки, иначе возвращает FALSE.

Смотрите также

  • sqlite_num_rows() - Возвращает количество записей в результате запроса
  • sqlite_changes() - Возвращает количество записей, которые были изменены последним SQL-запросом


Определяет, доступна ли предыдущая запись

  • « sqlite_has_more
  • sqlite_key »
  • PHP Manual
  • SQLite
  • Определяет, доступна ли предыдущая запись

sqlite_has_prev

SQLiteResult::hasPrev

(PHP 5 < 5.4.0)

sqlite_has_prev -- SQLiteResult::hasPrev — Определяет, доступна ли предыдущая запись

Описание

sqlite_has_prev ( resource $result ) : bool

Объектно-ориентированный стиль (метод):

SQLiteResult::hasPrev ( void ) : bool

Определяет, доступны ли предыдущие записи в указанном результате.

Список параметров

result

Ресурс результата SQLite. Параметр не требуется при использовании объектно-ориентированного метода.

Замечание:

Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Возвращаемые значения

Возвращает TRUE, если предыдущая запись результата запроса result доступна, иначе возвращает FALSE.

Смотрите также

  • sqlite_prev() - Переходит на предыдущую запись
  • sqlite_has_more() - Определяет, есть ли еще записи в результате запроса
  • sqlite_num_rows() - Возвращает количество записей в результате запроса


Возвращает текущую позицию указателя

  • « sqlite_has_prev
  • sqlite_last_error »
  • PHP Manual
  • SQLite
  • Возвращает текущую позицию указателя

sqlite_key

SQLiteResult::key

(PHP 5 >= 5.1.0 < 5.4.0)

sqlite_key -- SQLiteResult::key — Возвращает текущую позицию указателя

Описание

Объектно-ориентированный стиль (метод):

SQLiteResult::key ( void ) : int

SQLiteResult::key() возвращает текущую позицию указателя в буферизованном результирующем наборе result.

В отличие от остальных функций SQLite, функция не имеет процедурной версии и может вызываться только как метод объекта SQLiteResult.

Возвращаемые значения

Возвращает текущую позицию указателя в буферизованном результирующем наборе result.

Смотрите также

  • sqlite_next() - Переходит на следующую запись
  • sqlite_current() - Возвращает текущую запись из результирующего набора в виде массива
  • sqlite_rewind() - Переходит к первой записи


Возвращает код ошибки последней операции с SQLite

  • « sqlite_key
  • sqlite_last_insert_rowid »
  • PHP Manual
  • SQLite
  • Возвращает код ошибки последней операции с SQLite

sqlite_last_error

SQLiteDatabase::lastError

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_last_error -- SQLiteDatabase::lastError — Возвращает код ошибки последней операции с SQLite

Описание

sqlite_last_error ( resource $dbhandle ) : int

Объектно-ориентированный стиль (метод):

public SQLiteDatabase::lastError ( void ) : int

Возвращает код ошибки последней операции с базой данных с идентификатором dbhandle, или 0 в случае отсутствия ошибок. Описание ошибки можно получить с помощью функции sqlite_error_string().

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Параметр не требуется при использовании объектно-ориентированного подхода.

Возвращаемые значения

Возвращает код ошибки, или 0 в случае ее отсутствия.

Смотрите также

  • sqlite_error_string() - Возвращает строку с описанием ошибки


Возвращает идентификатор последней вставленной записи

  • « sqlite_last_error
  • sqlite_libencoding »
  • PHP Manual
  • SQLite
  • Возвращает идентификатор последней вставленной записи

sqlite_last_insert_rowid

SQLiteDatabase::lastInsertRowid

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_last_insert_rowid -- SQLiteDatabase::lastInsertRowid — Возвращает идентификатор последней вставленной записи

Описание

sqlite_last_insert_rowid ( resource $dbhandle ) : int

Объектно-ориентированный стиль (метод):

public SQLiteDatabase::lastInsertRowid ( void ) : int

Возвращает идентификатор последней записи, вставленной в базу данных dbhandle, если таблица, в которую была вставлена запись, содержит поле с автоинкрементом.

Подсказка

Поля с автоинкрементом в SQLite объявляются как INTEGER PRIMARY KEY.

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Параметр не требуется при использовании объектно-ориентированного подхода.

Возвращаемые значения

Возвращает идентификатор записи в виде целого числа.


Возвращает кодировку, используемую подключенной библиотекой SQLite

  • « sqlite_last_insert_rowid
  • sqlite_libversion »
  • PHP Manual
  • SQLite
  • Возвращает кодировку, используемую подключенной библиотекой SQLite

sqlite_libencoding

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_libencoding — Возвращает кодировку, используемую подключенной библиотекой SQLite

Описание

sqlite_libencoding ( void ) : string

SQLite может быть скомпилирована либо в режиме совместимости ISO-8859-1, либо UTF-8. Функция позволяет определить, какую кодировку использует подключенная библиотека.

Внимание

По умолчанию, PHP компилирует libsqlite в режиме совместимости с кодировкой ISO-8859-1. Однако, это неправильно; вместо использования ISO-8859-1, библиотека работает в соответствии с установками текущей локали для сравнения и сортировки строк. Поэтому следует считать, что используется не ISO-8859-1, а кодировка '8-bit'.

При компиляции с поддержкой UTF-8 sqlite корректно распознает многобайтные символы UTF-8, однако поддержка этой кодировки все же неполная (например, не производится нормализация); кроме того, некоторые операции сравнения все еще выполняются некорректно.

Внимание

В веб-окружении не рекомендуется использовать PHP и SQLite с поддержкой UTF-8, так как libsqlite завершает процесс при обнаружении проблем с кодировкой UTF-8.

Возвращаемые значения

Возвращает кодировку, используемую библиотекой.

Смотрите также

  • sqlite_libversion() - Возвращает версию подключенной библиотеки SQLite


Возвращает версию подключенной библиотеки SQLite

  • « sqlite_libencoding
  • sqlite_next »
  • PHP Manual
  • SQLite
  • Возвращает версию подключенной библиотеки SQLite

sqlite_libversion

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_libversion — Возвращает версию подключенной библиотеки SQLite

Описание

sqlite_libversion ( void ) : string

Возвращает версию подключенной библиотеки SQLite.

Возвращаемые значения

Возвращает версию библиотеки в виде строки.

Смотрите также

  • sqlite_libencoding() - Возвращает кодировку, используемую подключенной библиотекой SQLite


Переходит на следующую запись

  • « sqlite_libversion
  • sqlite_num_fields »
  • PHP Manual
  • SQLite
  • Переходит на следующую запись

sqlite_next

SQLiteResult::next

SQLiteUnbuffered::next

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_next -- SQLiteResult::next -- SQLiteUnbuffered::next — Переходит на следующую запись

Описание

sqlite_next ( resource $result ) : bool

Объектно-ориентированный стиль (метод):

SQLiteResult::next ( void ) : bool
SQLiteUnbuffered::next ( void ) : bool

sqlite_next() перемещает внутренний указатель результата запроса result на следующую запись.

Список параметров

result

Ресурс результата SQLite. Параметр не требуется при использовании объектно-ориентированного метода.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения или FALSE, если записей больше нет.

Смотрите также

  • sqlite_seek() - Переходит к определенному номеру записи в буферизованном результирующем наборе
  • sqlite_current() - Возвращает текущую запись из результирующего набора в виде массива
  • sqlite_rewind() - Переходит к первой записи


Возвращает количество полей в результате запроса

  • « sqlite_next
  • sqlite_num_rows »
  • PHP Manual
  • SQLite
  • Возвращает количество полей в результате запроса

sqlite_num_fields

SQLiteResult::numFields

SQLiteUnbuffered::numFields

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_num_fields -- SQLiteResult::numFields -- SQLiteUnbuffered::numFields — Возвращает количество полей в результате запроса

Описание

sqlite_num_fields ( resource $result ) : int

Объектно-ориентированный стиль (метод):

SQLiteResult::numFields ( void ) : int
SQLiteUnbuffered::numFields ( void ) : int

Возвращает количество полей в результате запроса result.

Список параметров

result

Ресурс результата SQLite. Параметр не требуется при использовании объектно-ориентированного метода.

Возвращаемые значения

Возвращает количество полей в виде целого числа.

Смотрите также

  • sqlite_changes() - Возвращает количество записей, которые были изменены последним SQL-запросом
  • sqlite_num_rows() - Возвращает количество записей в результате запроса


Возвращает количество записей в результате запроса

  • « sqlite_num_fields
  • sqlite_open »
  • PHP Manual
  • SQLite
  • Возвращает количество записей в результате запроса

sqlite_num_rows

SQLiteResult::numRows

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_num_rows -- SQLiteResult::numRows — Возвращает количество записей в результате запроса

Описание

sqlite_num_rows ( resource $result ) : int

Объектно-ориентированный стиль (метод):

SQLiteResult::numRows ( void ) : int

Возвращает количество записей в буферизованном результирующем наборе result.

Список параметров

result

Ресурс результата SQLite. Параметр не требуется при использовании объектно-ориентированного метода.

Замечание:

Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Возвращаемые значения

Возвращает количество записей в виде целого числа.

Примеры

Пример #1 Процедурный стиль

<?php
$db = sqlite_open('mysqlitedb');
$result = sqlite_query($db, "SELECT * FROM mytable WHERE name='John Doe'");
$rows = sqlite_num_rows($result);

echo "Количество записей: $rows";
?>

Пример #2 Объектно-ориентированный стиль

<?php
$db = new SQLiteDatabase('mysqlitedb');
$result = $db->query("SELECT * FROM mytable WHERE name='John Doe'");
$rows = $result->numRows();

echo "Количество записей: $rows";
?>

Смотрите также

  • sqlite_changes() - Возвращает количество записей, которые были изменены последним SQL-запросом
  • sqlite_query() - Выполняет запрос к базе данных и возвращает идентификатор результата
  • sqlite_num_fields() - Возвращает количество полей в результате запроса


Открывает базу данных SQLite или создает ее, если она не существует

  • « sqlite_num_rows
  • sqlite_popen »
  • PHP Manual
  • SQLite
  • Открывает базу данных SQLite или создает ее, если она не существует

sqlite_open

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_open — Открывает базу данных SQLite или создает ее, если она не существует

Описание

sqlite_open ( string $filename [, int $mode = 0666 [, string &$error_message ]] ) : resource

Объектно-ориентированный стиль (конструктор):

final public SQLiteDatabase::__construct ( string $filename [, int $mode = 0666 [, string &$error_message ]] )

Открывает базу данных SQLite или создает ее, если она не существует.

Список параметров

filename

Имя файла базы данных SQLite. Если файл не существует, SQLite попытается создать его. PHP должен владеть правами записи на файл в случае вставки данных, изменения схемы базы данных или создания файла с базой данных, если он не существует.

mode

Режим прав доступа на файл. Предназначается для открытия базы данных в режиме только для чтения, однако в настоящее время этот аргумент не используется библиотекой sqlite. Значением по умолчанию (и рекомендуемым к использованию) является восьмеричное 0666.

error_message

Передается по ссылке и устанавливается в читабельное сообщение об ошибке, объясняющее почему не удалось открыть базу данных, в случае возникновения таковой ошибки.

Возвращаемые значения

Возвращает ресурс (идентификатор базы данных) при успешном завершении, FALSE при возникновении ошибки.

Примеры

Пример #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 разделах. Общеизвестна плохая реализация блокировок в NFS, поэтому вам может даже не удастся открыть базу данных вообще, а если все-таки это произойдет, то поведение данной блокировки будет неопределенным.

Замечание: Начиная с SQLite версии 2.8.2, можно указывать :memory: в качестве значения аргумента filename для создания базы данных в памяти. Это может быть полезно в тех случаях, когда необходимо создание временной базы данных, которая должна быть уничтожена при завершении процесса. Также это может использоваться совместно с командой ATTACH DATABASE для загрузки других баз данных и выполнения операций с ними.

Замечание: Модуль SQLite учитывает опции безопасный режим и open_basedir.

Смотрите также

  • sqlite_popen() - Открывает постоянное подключение к базе данных SQLite или создает ее, если она не существует
  • sqlite_close() - Закрывает открытую базу данных SQLite
  • sqlite_factory() - Открывает базу данных SQLite и возвращает объект SQLiteDatabase


Открывает постоянное подключение к базе данных SQLite или создает ее, если она не существует

  • « sqlite_open
  • sqlite_prev »
  • PHP Manual
  • SQLite
  • Открывает постоянное подключение к базе данных SQLite или создает ее, если она не существует

sqlite_popen

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_popen — Открывает постоянное подключение к базе данных SQLite или создает ее, если она не существует

Описание

sqlite_popen ( string $filename [, int $mode = 0666 [, string &$error_message ]] ) : resource

Эта функция идентична sqlite_open(), за исключением того, что она использует механизм постоянных соединений PHP. Описание аргументов находится в описании функции sqlite_open().

sqlite_popen() пытается найти уже открытый дескриптор постоянного подключения к файлу filename. Если такой дескриптор уже есть, функция возвращает его, иначе он открывается заново.

Выгода от использования постоянного подключения заключается в том, что не тратится время на открытие файла и чтение структуры данных при каждом запросе. Это справедливо только в случае использования PHP в качестве SAPI веб-сервера (любой SAPI, кроме CGI и CLI).

Замечание: При использовании постоянных подключений необходимо следить за тем, чтобы файл базы данных не перезаписывался внешними процессами (например, программой, запущенной с помощью crontab), которые пересоздают файл с базой данных (например, с помощью удаления и создания заново или при замене старой версии обновленной версией из другого файла), так как это вызовет непредсказуемые последствия при удалении старой версии базы данных. Для избежания этой ситуации, убедитесь что ваши фоновые процессы открывают нужный файл с базой данных и выполняют обновления с помощью транзакций.

Список параметров

filename

Имя файла базы данных SQLite. Если файл не существует, SQLite попытается создать его. PHP должен владеть правами записи на файл в случае вставки данных, изменения схемы базы данных или создания файла с базой данных, если он не существует.

mode

Режим прав доступа на файл. Предназначется для открытия базы данных в режиме только для чтения, однако в настоящее время этот аргумент не используется библиотекой sqlite. Значением по умолчанию (и рекомендуемым к использованию) является восьмеричное 0666.

error_message

Передается по ссылке и устанавливается в читабельное сообщение об ошибке, объясняющее почему не удалось открыть базу данных в случае возникновения такой ошибки.

Возвращаемые значения

Возвращает ресурс (дескриптор базы данных) в случае успеха, или FALSE в случае ошибки.

Смотрите также

  • sqlite_open() - Открывает базу данных SQLite или создает ее, если она не существует
  • sqlite_close() - Закрывает открытую базу данных SQLite
  • sqlite_factory() - Открывает базу данных SQLite и возвращает объект SQLiteDatabase


Переходит на предыдущую запись

  • « sqlite_popen
  • sqlite_query »
  • PHP Manual
  • SQLite
  • Переходит на предыдущую запись

sqlite_prev

SQLiteResult::prev

(PHP 5 < 5.4.0)

sqlite_prev -- SQLiteResult::prev — Переходит на предыдущую запись

Описание

sqlite_prev ( resource $result ) : bool

Объектно-ориентированный стиль (метод):

SQLiteResult::prev ( void ) : bool

sqlite_prev() перемещает внутренний указатель в дескрипторе результирующего набора result на предыдущую запись.

Список параметров

result

Ресурс результата SQLite. Параметр не требуется при использовании объектно-ориентированного метода.

Замечание:

Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения или FALSE, если предыдущих записей больше нет.

Смотрите также

  • sqlite_has_prev() - Определяет, доступна ли предыдущая запись
  • sqlite_rewind() - Переходит к первой записи
  • sqlite_next() - Переходит на следующую запись


Выполняет запрос к базе данных и возвращает идентификатор результата

  • « sqlite_prev
  • sqlite_rewind »
  • PHP Manual
  • SQLite
  • Выполняет запрос к базе данных и возвращает идентификатор результата

sqlite_query

SQLiteDatabase::query

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_query -- SQLiteDatabase::query — Выполняет запрос к базе данных и возвращает идентификатор результата

Описание

sqlite_query ( resource $dbhandle , string $query [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] ) : resource
sqlite_query ( string $query , resource $dbhandle [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] ) : resource

Объектно-ориентированный стиль (метод):

public SQLiteDatabase::query ( string $query [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] ) : SQLiteResult

Выполняет SQL-запрос query к указанному дескриптору базы данных.

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Параметр не требуется при использовании объектно-ориентированного подхода.

query

Выполняемый запрос.

Данные в запросе должны быть корректно экранированы.

result_type

Необязательный параметр result_type принимает константу, определяющую, как будет индексирован возвращаемый массив. При использовании SQLITE_ASSOC будет возвращен ассоциативный массив, а при использовании SQLITE_NUM - числовой. SQLITE_BOTH вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции является SQLITE_BOTH.

error_msg

Указанная переменная будет заполнена в случае возникновения ошибки. Это особенно важно, так как ошибки синтаксиса SQL не возвращаются функцией sqlite_last_error().

Замечание: Поддерживаются два альтернативных синтаксиса для совместимости с другими расширениями баз данных (например, MySQL). Предпочитаемая форма - первая, в которой параметр dbhandle является первым параметром функции.

Возвращаемые значения

Функция возвращает идентификатор результата запроса или FALSE в случае возникновения ошибки. Для запросов, возвращающих данные, этот идентификатор может использоваться в качестве аргумента таких функций как sqlite_fetch_array() и sqlite_seek().

Независимо от типа запроса, в случае возникновения ошибки функция возвращает FALSE.

sqlite_query() возвращает буферизованный результирующий набор, по которому также можно перемещаться в различных направлениях. Её следует использовать для запросов, возвращающих относительно небольшое количество записей, если вам необходим случайный доступ к записям. Дескриптор буферизованного результата выделит память для всего возвращаемого результата и не возвратит ее, пока весь результат не будет полностью получен. Если вам необходим только последовательный доступ к записям, рекомендуется использовать намного более производительную функцию sqlite_unbuffered_query().

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр error_msg

Примечания

Внимание

SQLite выполнит несколько запросов, разделенных точкой с запятой, что можно использовать, например, для выполнения запросов, прочитанных из файла. Однако, это работает только в случае, если результат функции не используется - если он используется, то будет выполнен только первый запрос. Функция sqlite_exec() всегда выполняет все запросы.

При выполнении нескольких запросов, функция возвращает FALSE в случае возникновения ошибки, иначе возвращаемое значение будет неопределенным (оно может быть как TRUE, так и идентификатором результата запроса).

Смотрите также

  • sqlite_unbuffered_query() - Выполняет запрос без буферизации результатов
  • sqlite_array_query() - Выполняет запрос к базе данных и возвращает результат в виде массива


Переходит к первой записи

  • « sqlite_query
  • sqlite_seek »
  • PHP Manual
  • SQLite
  • Переходит к первой записи

sqlite_rewind

SQLiteResult::rewind

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_rewind -- SQLiteResult::rewind — Переходит к первой записи

Описание

sqlite_rewind ( resource $result ) : bool

Объектно-ориентированный стиль (метод):

SQLiteResult::rewind ( void ) : bool

sqlite_rewind() перемещает внутренний указатель в результирующем наборе на первую запись.

Список параметров

result

Ресурс результата SQLite. Параметр не требуется при использовании объектно-ориентированного метода.

Замечание:

Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Возвращаемые значения

Возвращает FALSE, если результат запроса не содержит записей, иначе возвращается TRUE.

Смотрите также

  • sqlite_next() - Переходит на следующую запись
  • sqlite_current() - Возвращает текущую запись из результирующего набора в виде массива
  • sqlite_seek() - Переходит к определенному номеру записи в буферизованном результирующем наборе


Переходит к определенному номеру записи в буферизованном результирующем наборе

  • « sqlite_rewind
  • sqlite_single_query »
  • PHP Manual
  • SQLite
  • Переходит к определенному номеру записи в буферизованном результирующем наборе

sqlite_seek

SQLiteResult::seek

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_seek -- SQLiteResult::seek — Переходит к определенному номеру записи в буферизованном результирующем наборе

Описание

sqlite_seek ( resource $result , int $rownum ) : bool

Объектно-ориентированный стиль (метод):

SQLiteResult::seek ( int $rownum ) : bool

sqlite_seek() перемещает внутренний указатель к записи с порядковым номером, заданным аргументом rownum.

Список параметров

result

Ресурс результата SQLite. Параметр не требуется при использовании объектно-ориентированного метода.

Замечание:

Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

rownum

Порядковый номер записи к которой производится перемещение. Нумерация начинается с нуля (0 указывает на первую запись).

Замечание:

Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Возвращаемые значения

Возвращает FALSE, если запись не существует, иначе возвращается TRUE.

Смотрите также

  • sqlite_next() - Переходит на следующую запись
  • sqlite_current() - Возвращает текущую запись из результирующего набора в виде массива
  • sqlite_rewind() - Переходит к первой записи


Выполняет запрос и возвращает массив со значениями одного поля или первую запись

  • « sqlite_seek
  • sqlite_udf_decode_binary »
  • PHP Manual
  • SQLite
  • Выполняет запрос и возвращает массив со значениями одного поля или первую запись

sqlite_single_query

SQLiteDatabase::singleQuery

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.1)

sqlite_single_query -- SQLiteDatabase::singleQuery — Выполняет запрос и возвращает массив со значениями одного поля или первую запись

Описание

sqlite_single_query ( resource $db , string $query [, bool $first_row_only [, bool $decode_binary ]] ) : array

Объектно-ориентированный стиль (метод):

public SQLiteDatabase::singleQuery ( string $query [, bool $first_row_only [, bool $decode_binary ]] ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Декодирует бинарные данные, переданные в качестве параметров в UDF

  • « sqlite_single_query
  • sqlite_udf_encode_binary »
  • PHP Manual
  • SQLite
  • Декодирует бинарные данные, переданные в качестве параметров в UDF

sqlite_udf_decode_binary

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_udf_decode_binary — Декодирует бинарные данные, переданные в качестве параметров в UDF

Описание

sqlite_udf_decode_binary ( string $data ) : string

Декодирует бинарные данные, переданные в качестве параметров в UDF.

Функцию следует применять к аргументам, переданным в UDF, если в этих аргументах могут содержаться бинарные данные.

PHP не осуществляет данные операции кодирования и декодирования автоматически, так как это негативно сказывается на производительности.

Список параметров

data

Закодированные данные, которые будут раскодированы. Кодирование должно было быть осуществлено с помощью функций sqlite_udf_encode_binary() или sqlite_escape_string().

Возвращаемые значения

Декодированная строка (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() - Кодирует бинарные данные перед тем как вернуть их из UDF
  • sqlite_create_function() - Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах
  • sqlite_create_aggregate() - Регистрирует агрегирующую функцию для использования в SQL-запросах


Кодирует бинарные данные перед тем как вернуть их из UDF

  • « sqlite_udf_decode_binary
  • sqlite_unbuffered_query »
  • PHP Manual
  • SQLite
  • Кодирует бинарные данные перед тем как вернуть их из UDF

sqlite_udf_encode_binary

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_udf_encode_binary — Кодирует бинарные данные перед тем как вернуть их из UDF

Описание

sqlite_udf_encode_binary ( string $data ) : string

sqlite_udf_encode_binary() кодирует бинарные данные data таким образом, что они могут быть возвращены в качестве результата запроса (так как библиотека libsqlite небезопасна для обработки бинарных данных).

Если данные могут быть бинарно-небезопасными (например, содержать NUL в середине строки или байт 0x01 в начале строки), то такие данные следует закодировать этой функцией перед тем, как возвращать их из вашей UDF.

PHP не осуществляет данные операции кодирования и декодирования автоматически, так как это негативно сказывается на производительности.

Замечание:

Не используйте функцию sqlite_escape_string() для экранирования строк, возвращаемых из UDF, так как это приведет к двойному экранированию. Используйте вместо этого sqlite_udf_encode_binary()!

Список параметров

data

Кодируемая строка (string).

Возвращаемые значения

Закодированная строка (string).

Смотрите также

  • sqlite_udf_decode_binary() - Декодирует бинарные данные, переданные в качестве параметров в UDF
  • sqlite_escape_string() - Экранирует спецсимволы в строке для использования в запросе
  • sqlite_create_function() - Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах
  • sqlite_create_aggregate() - Регистрирует агрегирующую функцию для использования в SQL-запросах


Выполняет запрос без буферизации результатов

  • « sqlite_udf_encode_binary
  • sqlite_valid »
  • PHP Manual
  • SQLite
  • Выполняет запрос без буферизации результатов

sqlite_unbuffered_query

SQLiteDatabase::unbufferedQuery

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_unbuffered_query -- SQLiteDatabase::unbufferedQuery — Выполняет запрос без буферизации результатов

Описание

sqlite_unbuffered_query ( resource $dbhandle , string $query [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] ) : resource
sqlite_unbuffered_query ( string $query , resource $dbhandle [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] ) : resource

Объектно-ориентированный стиль (метод):

public SQLiteDatabase::unbufferedQuery ( string $query [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] ) : SQLiteUnbuffered

sqlite_unbuffered_query() идентична функции sqlite_query() за исключением того, что записи из возвращаемого результата можно получать только последовательно, одну за другой.

Функция идеально подходит для тех случаев, когда нужно последовательно обработать записи из результата запроса и нет необходимости в доступе к произвольной записи результата запроса, например, при выводе данных из базы данных в виде HTML таблицы.

Замечание:

Функции  sqlite_seek(),
sqlite_rewind(), sqlite_next(),
sqlite_current() и
sqlite_num_rows() не работают с результатами,
возвращаемыми функцией sqlite_unbuffered_query().

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Параметр не требуется при использовании объектно-ориентированного подхода.

query

Выполняемый запрос.

Данные в запросе должны быть корректно экранированы.

result_type

Необязательный параметр result_type принимает константу, определяющую, как будет индексирован возвращаемый массив. При использовании SQLITE_ASSOC будет возвращен ассоциативный массив, а при использовании SQLITE_NUM - числовой. SQLITE_BOTH вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции является SQLITE_BOTH.

error_msg

Указанная переменная будет заполнена в случае возникновения ошибки. Это особенно важно, так как ошибки синтаксиса SQL не возвращаются функцией sqlite_last_error().

Замечание: Поддерживаются два альтернативных синтаксиса для совместимости с другими расширениями баз данных (например, MySQL). Предпочитаемая форма - первая, в которой параметр dbhandle является первым параметром функции.

Возвращаемые значения

Возвращает дескриптор результата или FALSE в случае возникновения ошибки.

sqlite_unbuffered_query() возвращает последовательный результирующий набор, записи из которого можно читать только вперед, одну за другой.

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр error_msg

Смотрите также

  • sqlite_query() - Выполняет запрос к базе данных и возвращает идентификатор результата


Проверяет, есть ли еще доступные записи

  • « sqlite_unbuffered_query
  • SQLite3 »
  • PHP Manual
  • SQLite
  • Проверяет, есть ли еще доступные записи

sqlite_valid

SQLiteResult::valid

SQLiteUnbuffered::valid

(PHP 5 < 5.4.0)

sqlite_valid -- SQLiteResult::valid -- SQLiteUnbuffered::valid — Проверяет, есть ли еще доступные записи

Описание

sqlite_valid ( resource $result ) : bool

Объектно-ориентированный стиль (метод):

SQLiteResult::valid ( void ) : bool
SQLiteUnbuffered::valid ( void ) : bool

Проверяет, есть ли еще доступные записи в указанном результирующем наборе.

Список параметров

result

Ресурс результата SQLite. Параметр не требуется при использовании объектно-ориентированного метода.

Замечание:

Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Возвращаемые значения

Возвращает TRUE, если в результирующем наборе result еще есть доступные записи, иначе возвращается FALSE.

Смотрите также

  • sqlite_num_rows() - Возвращает количество записей в результате запроса
  • sqlite_changes() - Возвращает количество записей, которые были изменены последним SQL-запросом


SQLite3

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • SQLite3 — Класс SQLite3
    • SQLite3::busyTimeout — Установить обработчик "занято" на соединение
    • SQLite3::changes — Получить количество строк, которые были изменены/удалены/вставлены последним запросом
    • SQLite3::close — Закрыть соединение с базой данных
    • SQLite3::__construct — Создает экземпляр объекта SQLite3 и открывает соеденение с базой
    • SQLite3::createAggregate — Зарегистрировать функцию PHP в качестве агрегирующей функции SQL
    • SQLite3::createCollation — Регистрирует функцию PHP для использования в качестве функции сортировки SQL
    • SQLite3::createFunction — Регистрирует функцию PHP для использования в качестве скалярной функции SQL
    • SQLite3::enableExceptions — Включить выброс исключений
    • SQLite3::escapeString — Возвращает правильно экранированную строку
    • SQLite3::exec — Выполняет запрос без результата к текущей базе данных
    • SQLite3::lastErrorCode — Возвращает числовой код результата последнего неудачного запроса SQLite
    • SQLite3::lastErrorMsg — Возвращает текст на английском, описывающий последний неудачный запрос SQLite
    • SQLite3::lastInsertRowID — Возвращает идентификатор строки последней вставки (INSERT) в базу данных
    • SQLite3::loadExtension — Попытаться загрузить библиотеку модуля SQLite
    • SQLite3::open — Открыть базу данных SQLite
    • SQLite3::openBlob — Открывает ресурс потока для чтения BLOB
    • SQLite3::prepare — Подготавливает SQL-запрос для выполнения
    • SQLite3::query — Выполняет SQL-запрос
    • SQLite3::querySingle — Выполняет запрос и возвращает одиночный результат
    • SQLite3::version — Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую
  • SQLite3Stmt — Класс SQLite3Stmt
    • SQLite3Stmt::bindParam — Связывает параметр с переменной подготовленного запроса
    • SQLite3Stmt::bindValue — Связывает значение параметра с переменной подготовленного запроса
    • SQLite3Stmt::clear — Удаляет все текущие привязанные параметры
    • SQLite3Stmt::close — Закрывает подготовленный запрос
    • SQLite3Stmt::execute — Выполняет подготовленный запрос и возвращает объект с результирующим набором
    • SQLite3Stmt::getSQL — Получить SQL-запрос в виде строки из запроса
    • SQLite3Stmt::paramCount — Возвращает количество параметров в подготовленном запросе
    • SQLite3Stmt::readOnly — Проверяет, является ли подготовленный запрос только для чтения
    • SQLite3Stmt::reset — Сбрасывает подготовленный запрос
  • SQLite3Result — Класс SQLite3Result
    • SQLite3Result::columnName — >Возвращает имя n-ного столбца
    • SQLite3Result::columnType — Возвращает тип n-ного столбца
    • SQLite3Result::fetchArray — Выбирает одну строку из результирующего набора и помещает ее в ассоциативный или нумерованный массив, или в оба сразу
    • SQLite3Result::finalize — Закрывает результирующий набор
    • SQLite3Result::numColumns — Возвращает количество столбцов в результирующем наборе
    • SQLite3Result::reset — Сбрасывает указатель результирующего набора на первую строку


  • « SQLite3
  • Установка и настройка »
  • PHP Manual
  • SQLite3
  • Введение

Введение

Обеспечение поддержки баз данных SQLite версии 3.


Требования

Начиная с PHP 7.4.0 требуется библиотека » libsqlite версии 3.7.4 или новее. Ранее встроенный из коробки libsqlite мог использовался вместо этого.


Установка

Расширение SQLite3 доступно по умолчанию, начиная с версии PHP 5.3.0. Расширение можно отключить помощью --without-sqlite3 во время компиляции.

Пользователи Windows должны включить поддержку php_sqlite3.dll для того, чтобы использовать это расширение. Эта DLL входит в состав Windows-дистрибутивов PHP начиная с версии PHP 5.3.0.

Замечание: Дополнительная настройка на Windows с PHP 7.4.0

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: libsqlite3.dll.

Замечание:

Некоторое время данное расширение было так называемым PECL-расширением, версии которого рекомендуется использовать только в целях эксперимента.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки SQLite3
Имя | По умолчанию | Место изменения | Список изменений
sqlite3.extension_dir | "" | PHP_INI_SYSTEM | Доступно с PHP 5.3.11
sqlite3.defensive | 1 | PHP_INI_SYSTEM | Доступно с PHP 7.2.17 и 7.3.4 для libsqlite ? 3.26.0.

Краткое разъяснение конфигурационных директив.

sqlite3.extension_dir string

Путь к каталогу, в котором находятся файлы расширения SQLite.

sqlite3.defensive bool

Если установлен флаг defensive, языковые конструкции, которые позволяют обычному SQL-запросу преднамеренно повреждать файл базы данных, отключены. Запрещается запись непосредственно в схему, в теневые таблицы (т.е. таблицы данных FTS) или виртуальную таблицу sqlite_dbpage. Эта настройка php.ini работает только с libsqlite ? 3.26.0.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SQLITE3_ASSOC (integer)
Указывает на то, что Sqlite3Result::fetchArray() метод должен вернуть массив, индексированный по имени столбца в соответствующий набор результатов.
SQLITE3_NUM (integer)
Указывает на то, что Sqlite3Result::fetchArray() метод должен вернуть массив, индексированный по номеру столбца в соответствующий набор результатов, начиная со столбца 0.
SQLITE3_BOTH (integer)
Указывает на то, что Sqlite3Result::fetchArray() метод должен вернуть массив, индексированный по имени столбца и его номеру в соответствующий набор результатов, начиная со столбца 0.
SQLITE3_INTEGER (integer)
Представляет класс хранения типа SQLite3 INTEGER.
SQLITE3_FLOAT (integer)
Представляет класс хранения типа SQLite3 REAL (FLOAT).
SQLITE3_TEXT (integer)
Представляет класс хранения типа SQLite3 TEXT.
SQLITE3_BLOB (integer)
Представляет класс хранения типа SQLite3 BLOB.
SQLITE3_NULL (integer)
Представляет класс хранения типа SQLite3 NULL.
SQLITE3_OPEN_READONLY (integer)
Указывает на то, что база данных SQLite3 доступна только для чтения.
SQLITE3_OPEN_READWRITE (integer)
Указывает на то, что база данных SQLite3 доступна как для чтения, так и для записи.
SQLITE3_OPEN_CREATE (integer)
Указывает на то, что файл базы данных SQLite3 будет создан в том случае, если он еще не существует.
SQLITE3_DETERMINISTIC (integer)
Указывает, что функция созданная SQLite3::sqliteCreateFunction() детерминированна. Т.е. она всегда возвращает одинаковый результат для для одинаковых входных данных в одном выражении SQL. (Доступно с PHP 7.1.4.)


Класс SQLite3

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс, предоставляющий доступ к API SQLite 3 базе данных.

Обзор классов

SQLite3 {
/* Методы */
public busyTimeout ( int $msecs ) : bool
public changes ( void ) : int
public close ( void ) : bool
public __construct ( string $filename [, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key = "" ]] )
public createAggregate ( string $name , mixed $step_callback , mixed $final_callback [, int $argument_count = -1 ] ) : bool
public createCollation ( string $name , callable $callback ) : bool
public createFunction ( string $name , mixed $callback [, int $argument_count = -1 [, int $flags = 0 ]] ) : bool
enableExceptions ([ bool $enableExceptions = FALSE ] ) : bool
public static escapeString ( string $value ) : string
public exec ( string $query ) : bool
public lastErrorCode ( void ) : int
public lastErrorMsg ( void ) : string
public lastInsertRowID ( void ) : int
public loadExtension ( string $shared_library ) : bool
public open ( string $filename [, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key = "" ]] ) : void
public openBlob ( string $table , string $column , int $rowid [, string $dbname = "main" [, int $flags = SQLITE3_OPEN_READONLY ]] ) : resource
public prepare ( string $query ) : SQLite3Stmt
public query ( string $query ) : SQLite3Result
public querySingle ( string $query [, bool $entire_row = FALSE ] ) : mixed
public static version ( void ) : array
}

Содержание

  • SQLite3::busyTimeout — Установить обработчик "занято" на соединение
  • SQLite3::changes — Получить количество строк, которые были изменены/удалены/вставлены последним запросом
  • SQLite3::close — Закрыть соединение с базой данных
  • SQLite3::__construct — Создает экземпляр объекта SQLite3 и открывает соеденение с базой
  • SQLite3::createAggregate — Зарегистрировать функцию PHP в качестве агрегирующей функции SQL
  • SQLite3::createCollation — Регистрирует функцию PHP для использования в качестве функции сортировки SQL
  • SQLite3::createFunction — Регистрирует функцию PHP для использования в качестве скалярной функции SQL
  • SQLite3::enableExceptions — Включить выброс исключений
  • SQLite3::escapeString — Возвращает правильно экранированную строку
  • SQLite3::exec — Выполняет запрос без результата к текущей базе данных
  • SQLite3::lastErrorCode — Возвращает числовой код результата последнего неудачного запроса SQLite
  • SQLite3::lastErrorMsg — Возвращает текст на английском, описывающий последний неудачный запрос SQLite
  • SQLite3::lastInsertRowID — Возвращает идентификатор строки последней вставки (INSERT) в базу данных
  • SQLite3::loadExtension — Попытаться загрузить библиотеку модуля SQLite
  • SQLite3::open — Открыть базу данных SQLite
  • SQLite3::openBlob — Открывает ресурс потока для чтения BLOB
  • SQLite3::prepare — Подготавливает SQL-запрос для выполнения
  • SQLite3::query — Выполняет SQL-запрос
  • SQLite3::querySingle — Выполняет запрос и возвращает одиночный результат
  • SQLite3::version — Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую


Установить обработчик "занято" на соединение

  • « SQLite3
  • SQLite3::changes »
  • PHP Manual
  • SQLite3
  • Установить обработчик "занято" на соединение

SQLite3::busyTimeout

(PHP 5 >= 5.3.3, PHP 7)

SQLite3::busyTimeout — Установить обработчик "занято" на соединение

Описание

public SQLite3::busyTimeout ( int $msecs ) : bool

Устанавливает обработчик, который будет спать до тех пор, пока БД не заблокируется либо пока не истечет время ожидания.

Список параметров

msecs

Миллисекунды. Установка равным 0 или отрицательному значению приведет к отключению уже установленного обработчика.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в случае возникновения ошибки.


Получить количество строк, которые были изменены/удалены/вставлены последним запросом

  • « SQLite3::busyTimeout
  • SQLite3::close »
  • PHP Manual
  • SQLite3
  • Получить количество строк, которые были изменены/удалены/вставлены последним запросом

SQLite3::changes

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::changes — Получить количество строк, которые были изменены/удалены/вставлены последним запросом

Описание

public SQLite3::changes ( void ) : int

Возвращает количество строк, которые были изменены/удалены/вставлены последним SQL-запросом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество строк, которые были изменены/удалены/вставлены последним SQL-запросом.

Примеры

Пример #1 Пример использования SQLite3::changes()

<?php
$db = new SQLite3('mysqlitedb.db');

$query = $db->exec('UPDATE counter SET views=0 WHERE page="test"');
if ($query) {
    echo 'Количество измененных строк: ', $db->changes();
}
?>


Закрыть соединение с базой данных

  • « SQLite3::changes
  • SQLite3::__construct »
  • PHP Manual
  • SQLite3
  • Закрыть соединение с базой данных

SQLite3::close

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::close — Закрыть соединение с базой данных

Описание

public SQLite3::close ( void ) : bool

Закрывает соединение с БД.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SQLite3::close()

<?php
$db = new SQLite3('mysqlitedb.db');
$db->close();
?>


Создает экземпляр объекта SQLite3 и открывает соеденение с базой

  • « SQLite3::close
  • SQLite3::createAggregate »
  • PHP Manual
  • SQLite3
  • Создает экземпляр объекта SQLite3 и открывает соеденение с базой

SQLite3::__construct

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::__construct — Создает экземпляр объекта SQLite3 и открывает соеденение с базой

Описание

public SQLite3::__construct ( string $filename [, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key = "" ]] )

Создает экземпляр объекта SQLite3 и открывает соедненение с базой. Если включено шифрование, то появляется возможность использования ключа.

Список параметров

filename

Путь к SQLite базе или :memory:, для использования базы в оперативной памяти. Если filename задать как пустую строку, то будет создана приватная, временная база данных на диске. Эта база данных будет удалена сразу после закрытия соединения с ней.

flags

Необязательные флаги, для определения типа открытия базы данных. По умолчанию, используется SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

  • SQLITE3_OPEN_READONLY: Открыть только для чтения.

  • SQLITE3_OPEN_READWRITE: Открыть для чтения и записи.

  • SQLITE3_OPEN_CREATE: Создать новый файл базы данных, если он отсутсвует

encryption_key

Необязательный ключ для шифрования/расшифровки базы данных. Если модуль шифравания не установлен, то данный параметр будет проигнорирован.

Возвращаемые значения

Возвращает объект SQLite3, в случае успешного выполнения.

Ошибки

Выбрасывает исключение Exception в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.10 | Параметр filename можно задавать пустой строкой для создания на диске приватной, временной базы данных.

Примеры

Пример #1 Пример использования SQLite3::__construct()

<?php
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (bar STRING)');
$db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");

$result = $db->query('SELECT bar FROM foo');
var_dump($result->fetchArray());
?>


Зарегистрировать функцию PHP в качестве агрегирующей функции SQL

  • « SQLite3::__construct
  • SQLite3::createCollation »
  • PHP Manual
  • SQLite3
  • Зарегистрировать функцию PHP в качестве агрегирующей функции SQL

SQLite3::createAggregate

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::createAggregate — Зарегистрировать функцию PHP в качестве агрегирующей функции SQL

Описание

public SQLite3::createAggregate ( string $name , mixed $step_callback , mixed $final_callback [, int $argument_count = -1 ] ) : bool

Регистрирует функцию PHP или пользовательскую функцию в качестве агрегирующей функции SQL для использования в запросах.

Список параметров

name

Имя агрегирующей функции SQL, которая должна быть создана или переопределена.

step_callback

Функция обратного вызова, которая будет вызвана для каждой строки результирующего набора. Ваша PHP-функция должна аккумулировать результат и хранить его в контексте агрегации.

Эта функция должна быть определена следующим образом:

step ( mixed $context , int $rownumber , mixed $value1 [, mixed $... ] ) : mixed
context

Для первой строки должено равняться NULL; Для всех последующих строк его значение должно быть равно значению, возвращенному на предыдущем шаге; вы должны использовать его для сохранения состояния агрегации.

rownumber

Номер текущей строки.

value1

Первый аргумент переданный агрегатору.

...

Последующие аргументы.

Возвращаемое значение функции будет использовано как параметр context при следующем запуске функции, либо как значение передаваемое финализирующей функции.

final_callback

Функция обратного вызова для вычисление итогового агрегированного значения. Она будет вызвана как только все строки результирующего набора будут обработаны, ей будет передан агрегирующий контекст и она вернет финальное значение. Данная функция должна вернуть значение типа понятного SQLite (т.е. скалярный тип).

Эта функция должна быть определена следующим образом:

fini ( mixed $context , int $rownumber ) : mixed
context

Содержит результат самого последнего вызова агрегирующей функции.

rownumber

Всегда 0.

Возвращаемое значение этой функции будет использовано как возвращаемое значение всего агрегатора.

argument_count

Количество аргументов, которое принимает функция агрегированиия SQL. Если значение отрицательное, то функция может использовать любое количество аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример агрегирующей функции max_length

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$db = new SQLite3(':memory:');
$db->exec("CREATE TABLE strings(a)");
$insert = $db->prepare('INSERT INTO strings VALUES (?)');
foreach ($data as $str) {
    $insert->bindValue(1, $str);
    $insert->execute();
}
$insert = null;

function max_len_step($context, $rownumber, $string)
{
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
    return $context;
}

function max_len_finalize($context, $rownumber)
{
    return $context === null ? 0 : $context;
}

$db->createAggregate('max_len', 'max_len_step', 'max_len_finalize');

var_dump($db->querySingle('SELECT max_len(a) from strings'));
?>

Результат выполнения данного примера:

int(5)

В этом примере мы написали агрегирующую функцию, которая вычисляет самой длинной строки в одной колонке таблицы. Для каждой строки вызывается функция max_len_step и ей передается параметр $context. Этот параметр ничем не отличается от обычной переменной PHP и спокойно может содержать массив или объект. В этом примере мы используем ее для хранения максимальной найденной длины строки. Если $string будет иметь длину больше, чем текущая сохраненная, то значение контекста будет обновлено.

После того, как все строки обработаны, SQLite вызовет функцию max_len_finalize, для окончательной подготовки результата. Тут мы можем произвести необходимые расчеты на основе данных из $context. В нашем простом примере никакая постобрпботке не нужна и мы просто возвращаем полученное значение.

Подсказка

НЕ рекомендуется хранить копию значений в контексте, а обработку производить в финализирующей функции, так как это может привести к большому потреблению памяти при обработке запроса. Просто представьте, сколько памяти вам понадобится для хранения миллиона строк, по 32 байта каждая, в памяти.

Подсказка

Для переопределения встроенных в SQLite агрегирующих функций вы можете использовать SQLite3::createAggregate().


Регистрирует функцию PHP для использования в качестве функции сортировки SQL

  • « SQLite3::createAggregate
  • SQLite3::createFunction »
  • PHP Manual
  • SQLite3
  • Регистрирует функцию PHP для использования в качестве функции сортировки SQL

SQLite3::createCollation

(PHP 5 >= 5.3.11, PHP 7)

SQLite3::createCollation — Регистрирует функцию PHP для использования в качестве функции сортировки SQL

Описание

public SQLite3::createCollation ( string $name , callable $callback ) : bool

Регистрирует функцию PHP или пользовательскую функцию для использования в качестве функции сортировки в SQL-запросах.

Список параметров

name

Имя создаваемой или переопределяемой функции сортировки SQL

callback

Имя PHP-функции или определяемой пользователем функции для применения в качестве callback, определяющей поведение параметров сортировки. Она должна принимать два значения и возвращаемый результат должен быть такой же, как у strcmp(), т.е. он должен возвращать -1, 1 или 0, если первая строка сортируется до, после или равной второй.

Функция должна быть определена как:

collation ( mixed $value1 , mixed $value2 ) : int

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SQLite3::createCollation()

Регистрирует PHP-функцию strnatcmp() как последовательность сортировки в базе данных SQLite3.

<?php

$db = new SQLite3(":memory:");
$db->exec("CREATE TABLE test (col1 string)");
$db->exec("INSERT INTO test VALUES ('a1')");
$db->exec("INSERT INTO test VALUES ('a10')");
$db->exec("INSERT INTO test VALUES ('a2')");

$db->createCollation('NATURAL_CMP', 'strnatcmp');

$defaultSort = $db->query("SELECT col1 FROM test ORDER BY col1");
$naturalSort = $db->query("SELECT col1 FROM test ORDER BY col1 COLLATE NATURAL_CMP");

echo "сортировка по умолчанию:\n";
while ($row = $defaultSort->fetchArray()){
    echo $row['col1'], "\n";
}

echo "\nсортировка natural order:\n";
while ($row = $naturalSort->fetchArray()){
    echo $row['col1'], "\n";
}

$db->close();

?>

Результат выполнения данного примера:

default:
a1
a10
a2

natural:
a1
a2
a10

Смотрите также

  • Документация по сопоставлению SQLite: » http://sqlite.org/datatype3.html#collation


Регистрирует функцию PHP для использования в качестве скалярной функции SQL

  • « SQLite3::createCollation
  • SQLite3::enableExceptions »
  • PHP Manual
  • SQLite3
  • Регистрирует функцию PHP для использования в качестве скалярной функции SQL

SQLite3::createFunction

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::createFunction — Регистрирует функцию PHP для использования в качестве скалярной функции SQL

Описание

public SQLite3::createFunction ( string $name , mixed $callback [, int $argument_count = -1 [, int $flags = 0 ]] ) : bool

Регистрирует функцию PHP или пользовательскую функцию для использования в качестве скалярной функции SQL для использования в SQL-выражениях.

Список параметров

name

Имя создаваемой или переопределяемой функции SQL.

callback

Имя функции PHP или пользовательской функции, применяемой в качестве callback, определяющей поведение функции SQL.

Функция должна быть определена как:

callback ( mixed $value1 [, mixed $... ] ) : mixed
value1

Первый аргумент, передаваемый функции SQL.

...

Дополнительные аргументы, передаваемые функции SQL.

argument_count

Число аргументов, принимаемых функцией SQL. Если этот параметр равен -1, то функция SQL может принимать любое количество аргументов.

flags

Побитовое объединение флагов. В настоящее время поддерживается только SQLITE3_DETERMINISTIC, который указывает, что функция всегда возвращает один и тот же результат, учитывая одни и те же входные данные внутри одного SQL-выражения.

Возвращаемые значения

Возвращает TRUE в случае успешного создания функции или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.4 | Добавлен параметр flags.

Примеры

Пример #1 Пример использования SQLite3::createFunction()

<?php
function my_udf_md5($string) {
    return md5($string);
}

$db = new SQLite3('mysqlitedb.db');
$db->createFunction('my_udf_md5', 'my_udf_md5');

var_dump($db->querySingle('SELECT my_udf_md5("test")'));
?>

Результатом выполнения данного примера будет что-то подобное:

string(32) "098f6bcd4621d373cade4e832627b4f6"


Включить выброс исключений

  • « SQLite3::createFunction
  • SQLite3::escapeString »
  • PHP Manual
  • SQLite3
  • Включить выброс исключений

SQLite3::enableExceptions

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::enableExceptions — Включить выброс исключений

Описание

SQLite3::enableExceptions ([ bool $enableExceptions = FALSE ] ) : bool

Определяет, будет ли экземпляр SQLite3 выбрасывать исключения или предупреждения об ошибке.

Список параметров

enable

Когда передано значение TRUE, экземпляр SQLite3 и экземпляры SQLite3Stmt и SQLite3Result, производные от него, будут выбрасывать исключения при ошибке.

Когда передано значение FALSE, экземпляр SQLite3 и экземпляры SQLite3Stmt и SQLite3Result, производные от него, будут генерировать предупреждения при ошибке.

В любом случае, код ошибки и сообщение, если они есть, будут доступны через SQLite3::lastErrorCode() и SQLite3::lastErrorMsg() соответственно.

Возвращаемые значения

Возвращает старое значение; TRUE, если исключения включены, FALSE в противном случае.

Примеры

Пример #1 Пример использования SQLite3::enableExceptions()

<?php
$sqlite = new SQLite3(':memory:');
try {
    $sqlite->exec('create table foo');
    $sqlite->enableExceptions(true);
    $sqlite->exec('create table bar');
} catch (Exception $e) {
    echo 'Поймано исключение: ' . $e->getMessage();
}
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: SQLite3::exec(): near "foo": syntax error in example.php on line 4
Поймано исключение: near "bar": syntax error


Возвращает правильно экранированную строку

  • « SQLite3::enableExceptions
  • SQLite3::exec »
  • PHP Manual
  • SQLite3
  • Возвращает правильно экранированную строку

SQLite3::escapeString

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::escapeString — Возвращает правильно экранированную строку

Описание

public static SQLite3::escapeString ( string $value ) : string

Возвращает правильно экранированную сроку для безопасного включения в SQL-инструкцию.

Внимание

Эта функция (пока) небезопасна для обработки данных в двоичной форме!

Для обработки полей типа BLOB, которые могут содержать символ NUL, вместо этой функции используйте SQLite3Stmt::bindParam().

Список параметров

value

Строка для обработки

Возвращаемые значения

Возвращает правильно экранированную сроку, которая может быть безопасно использована в SQL-инструкции.

Примечания

Внимание

addslashes() НЕ должен использоваться для экранирования ваших строк в запросах SQLite; это будет приводить к неожиданным результатам при извлечении ваших данных.


Выполняет запрос без результата к текущей базе данных

  • « SQLite3::escapeString
  • SQLite3::lastErrorCode »
  • PHP Manual
  • SQLite3
  • Выполняет запрос без результата к текущей базе данных

SQLite3::exec

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::exec — Выполняет запрос без результата к текущей базе данных

Описание

public SQLite3::exec ( string $query ) : bool

Выполняет запрос без результата к текущей базе данных.

Замечание: SQLite3, возможно, потребуется создать » временные файлы во время выполнения запросов, так что соответствующие директории должны быть доступны для записи.

Список параметров

query

Выполняемый запрос SQL (обычно запрос INSERT, UPDATE или DELETE).

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения запроса или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SQLite3::exec()

<?php
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE bar (bar STRING)');
?>


Возвращает числовой код результата последнего неудачного запроса SQLite

  • « SQLite3::exec
  • SQLite3::lastErrorMsg »
  • PHP Manual
  • SQLite3
  • Возвращает числовой код результата последнего неудачного запроса SQLite

SQLite3::lastErrorCode

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::lastErrorCode — Возвращает числовой код результата последнего неудачного запроса SQLite

Описание

public SQLite3::lastErrorCode ( void ) : int

Возвращает числовой код результата последнего неудачного запроса SQLite.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленное значение, представляющее числовой код результата последнего неудачного запроса SQLite.


Возвращает текст на английском, описывающий последний неудачный запрос SQLite

  • « SQLite3::lastErrorCode
  • SQLite3::lastInsertRowID »
  • PHP Manual
  • SQLite3
  • Возвращает текст на английском, описывающий последний неудачный запрос SQLite

SQLite3::lastErrorMsg

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::lastErrorMsg — Возвращает текст на английском, описывающий последний неудачный запрос SQLite

Описание

public SQLite3::lastErrorMsg ( void ) : string

Возвращает текст на английском, описывающий последний неудачный запрос SQLite.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку на английском, описывающую самый последний неудачный запрос SQLite.


Возвращает идентификатор строки последней вставки (INSERT) в базу данных

  • « SQLite3::lastErrorMsg
  • SQLite3::loadExtension »
  • PHP Manual
  • SQLite3
  • Возвращает идентификатор строки последней вставки (INSERT) в базу данных

SQLite3::lastInsertRowID

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::lastInsertRowID — Возвращает идентификатор строки последней вставки (INSERT) в базу данных

Описание

public SQLite3::lastInsertRowID ( void ) : int

Возвращает идентификатор строки последней вставки (INSERT) в базу данных.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор строки последней вставки (INSERT) в базу данных


Попытаться загрузить библиотеку модуля SQLite

  • « SQLite3::lastInsertRowID
  • SQLite3::open »
  • PHP Manual
  • SQLite3
  • Попытаться загрузить библиотеку модуля SQLite

SQLite3::loadExtension

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::loadExtension — Попытаться загрузить библиотеку модуля SQLite

Описание

public SQLite3::loadExtension ( string $shared_library ) : bool

Попытаться загрузить библиотеку модуля SQLite.

Список параметров

shared_library

Имя загружаемой библиотеки. Библиотека должна находиться в каталоге, указанном в конфигурационной опции sqlite3.extension_dir.

Возвращаемые значения

Возвращает TRUE в случае, если модуль успешно загружен или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SQLite3::loadExtension()

<?php
$db = new SQLite3('mysqlitedb.db');
$db->loadExtension('libagg.so');
?>


Открыть базу данных SQLite

  • « SQLite3::loadExtension
  • SQLite3::openBlob »
  • PHP Manual
  • SQLite3
  • Открыть базу данных SQLite

SQLite3::open

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::open — Открыть базу данных SQLite

Описание

public SQLite3::open ( string $filename [, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key = "" ]] ) : void

Открывает базу данных SQLite 3. Если сборка включает шифрование, то она будет пробовать использовать ключ.

Список параметров

filename

Путь к БД SQLite или :memory: для использования БД в памяти.

flags

Опциональные флаги используемые для определения, как открывать БД. По умолчанию SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

  • SQLITE3_OPEN_READONLY: Открыть БД только для чтения.

  • SQLITE3_OPEN_READWRITE: Открыть БД для чтения и записи.

  • SQLITE3_OPEN_CREATE: Создать БД, если ее нет.

encryption_key

Опциональный ключ, для использования шифрования при работе с БД. Если модуль шифрования не установлен, то данная опция не будет использована.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SQLite3::open()

<?php
/**
 * Простой пример расширения класса SQLite3 и изменения параметров конструктора.
 * После чего использование метода open для инициализации БД.
 */
class MyDB extends SQLite3
{
    function __construct()
    {
        $this->open('mysqlitedb.db');
    }
}

$db = new MyDB();

$db->exec('CREATE TABLE foo (bar STRING)');
$db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");

$result = $db->query('SELECT bar FROM foo');
var_dump($result->fetchArray());
?>


Открывает ресурс потока для чтения BLOB

  • « SQLite3::open
  • SQLite3::prepare »
  • PHP Manual
  • SQLite3
  • Открывает ресурс потока для чтения BLOB

SQLite3::openBlob

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::openBlob — Открывает ресурс потока для чтения BLOB

Описание

public SQLite3::openBlob ( string $table , string $column , int $rowid [, string $dbname = "main" [, int $flags = SQLITE3_OPEN_READONLY ]] ) : resource

Открывает ресурс потока для чтения или записи BLOB, который будет выбран:

SELECT column FROM dbname.table WHERE rowid = rowid

Замечание: Невозможно изменить размер BLOB путем записи в поток. Вместо этого необходимо выполнить запрос UPDATE, возможно, используя SQLite-функцию zeroblob(), чтобы задать желаемый размер BLOB.

Список параметров

table

Название таблицы.

column

Название столбца.

rowid

Идентификатор строки.

dbname

Символическое название базы данных

flags

Либо SQLITE3_OPEN_READONLY, либо SQLITE3_OPEN_READWRITE, чтобы открыть поток только для чтения или для чтения и записи, соответственно.

Возвращаемые значения

Возвращает ресурс потока, или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.2.0 | Добавлен параметр flags, позволяющий записать BLOB; ранее поддерживалось только чтение.

Примеры

Пример #1 Пример использования SQLite3::openBlob()

<?php
$conn = new SQLite3(':memory:');
$conn->exec('CREATE TABLE test (text text)');
$conn->exec("INSERT INTO test VALUES ('Lorem ipsum')");
$stream = $conn->openBlob('test', 'text', 1);
echo stream_get_contents($stream);
fclose($stream); // обязательно, иначе на следующей строке произойдет ошибка
$conn->close();
?>

Результат выполнения данного примера:

Lorem ipsum

Пример #2 Пошаговая запись BLOB

<?php
$conn = new SQLite3(':memory:');
$conn->exec('CREATE TABLE test (text text)');
$conn->exec("INSERT INTO test VALUES (zeroblob(36))");
$stream = $conn->openBlob('test', 'text', 1, 'main', SQLITE3_OPEN_READWRITE);
for ($i = 0; $i < 3; $i++) {
    fwrite($stream,  "Lorem ipsum\n");
}
fclose($stream);
echo $conn->querySingle("SELECT text FROM test");
$conn->close();
?>

Результат выполнения данного примера:

Lorem ipsum
Lorem ipsum
Lorem ipsum


Подготавливает SQL-запрос для выполнения

  • « SQLite3::openBlob
  • SQLite3::query »
  • PHP Manual
  • SQLite3
  • Подготавливает SQL-запрос для выполнения

SQLite3::prepare

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::prepare — Подготавливает SQL-запрос для выполнения

Описание

public SQLite3::prepare ( string $query ) : SQLite3Stmt

Подготавливает SQL-запрос для выполнения и возвращает объект SQLite3Stmt.

Список параметров

query

SQL-запрос на подготовку.

Возвращаемые значения

Возвращает объект SQLite3Stmt в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SQLite3::prepare()

<?php
unlink('mysqlitedb.db');
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (id INTEGER, bar STRING)');
$db->exec("INSERT INTO foo (id, bar) VALUES (1, 'Тестовое значение')");

$stmt = $db->prepare('SELECT bar FROM foo WHERE id=:id');
$stmt->bindValue(':id', 1, SQLITE3_INTEGER);

$result = $stmt->execute();
var_dump($result->fetchArray());
?>

Смотрите также

  • SQLite3Stmt::paramCount() - Возвращает количество параметров в подготовленном запросе
  • SQLite3Stmt::bindValue() - Связывает значение параметра с переменной подготовленного запроса
  • SQLite3Stmt::bindParam() - Связывает параметр с переменной подготовленного запроса


Выполняет SQL-запрос

  • « SQLite3::prepare
  • SQLite3::querySingle »
  • PHP Manual
  • SQLite3
  • Выполняет SQL-запрос

SQLite3::query

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::query — Выполняет SQL-запрос

Описание

public SQLite3::query ( string $query ) : SQLite3Result

Выполняет SQL-запрос и возвращает объект SQLite3Result. Если запрос не возвращает результат (например, запрос типа DLM), то возвращенный объект SQLite3Result бесполезен. Для подобных запросов используйте метод SQLite3::exec().

Список параметров

query

SQL-запрос для выполнения.

Возвращаемые значения

Возвращает объект SQLite3Result, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SQLite3::query()

<?php
$db = new SQLite3('mysqlitedb.db');

$results = $db->query('SELECT bar FROM foo');
while ($row = $results->fetchArray()) {
    var_dump($row);
}
?>


Выполняет запрос и возвращает одиночный результат

  • « SQLite3::query
  • SQLite3::version »
  • PHP Manual
  • SQLite3
  • Выполняет запрос и возвращает одиночный результат

SQLite3::querySingle

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::querySingle — Выполняет запрос и возвращает одиночный результат

Описание

public SQLite3::querySingle ( string $query [, bool $entire_row = FALSE ] ) : mixed

Выполняет запрос и возвращает одиночный результат.

Список параметров

query

SQL запрос для выполнения.

entire_row

По умолчанию, функция querySingle() возвращает значение первого столбца, возвращаемого запросом. Если параметр entire_row является TRUE, то запрос возвращает массив всего первого ряда.

Возвращаемые значения

Возвращает значение первого столбца результатов или массив всей первой строки (если параметр entire_row является TRUE).

Если запрос корректный, но результат пуст, то вернётся NULL, если параметр entire_row является FALSE, в противном случае возвращается пустой массив.

Неверный или отсутствующий запрос возвращает FALSE.

Примеры

Пример #1 Пример использования SQLite3::querySingle()

<?php
$db = new SQLite3('mysqlitedb.db');

var_dump($db->querySingle('SELECT username FROM user WHERE userid=1'));
print_r($db->querySingle('SELECT username, email FROM user WHERE userid=1', true));
?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "Scott"
Array
(
    [username] => Scott
    [email] => scott@example.com
)


Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую

  • « SQLite3::querySingle
  • SQLite3Stmt »
  • PHP Manual
  • SQLite3
  • Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую

SQLite3::version

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::version — Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую

Описание

public static SQLite3::version ( void ) : array

Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив с ключами "versionString" и "versionNumber".

Примеры

Пример #1 Пример использования SQLite3::version()

<?php
print_r(SQLite3::version());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [versionString] => 3.5.9
    [versionNumber] => 3005009
)


Класс SQLite3Stmt

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс, предоставляющий доступ к подготовленным запросам в SQLite 3 расширении.

Обзор классов

SQLite3Stmt {
/* Методы */
public bindParam ( mixed $sql_param , mixed &$param [, int $type ] ) : bool
public bindValue ( mixed $sql_param , mixed $value [, int $type ] ) : bool
public clear ( void ) : bool
public close ( void ) : bool
public execute ( void ) : SQLite3Result
public getSQL ([ bool $expanded = FALSE ] ) : string
public paramCount ( void ) : int
public readOnly ( void ) : bool
public reset ( void ) : bool
}

Содержание

  • SQLite3Stmt::bindParam — Связывает параметр с переменной подготовленного запроса
  • SQLite3Stmt::bindValue — Связывает значение параметра с переменной подготовленного запроса
  • SQLite3Stmt::clear — Удаляет все текущие привязанные параметры
  • SQLite3Stmt::close — Закрывает подготовленный запрос
  • SQLite3Stmt::execute — Выполняет подготовленный запрос и возвращает объект с результирующим набором
  • SQLite3Stmt::getSQL — Получить SQL-запрос в виде строки из запроса
  • SQLite3Stmt::paramCount — Возвращает количество параметров в подготовленном запросе
  • SQLite3Stmt::readOnly — Проверяет, является ли подготовленный запрос только для чтения
  • SQLite3Stmt::reset — Сбрасывает подготовленный запрос


Связывает параметр с переменной подготовленного запроса

  • « SQLite3Stmt
  • SQLite3Stmt::bindValue »
  • PHP Manual
  • SQLite3Stmt
  • Связывает параметр с переменной подготовленного запроса

SQLite3Stmt::bindParam

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::bindParam — Связывает параметр с переменной подготовленного запроса

Описание

public SQLite3Stmt::bindParam ( mixed $sql_param , mixed &$param [, int $type ] ) : bool

Связывает параметр с переменной подготовленного запроса.

Предостережение

До PHP 7.2.14 и 7.3.0, SQLite3Stmt::reset() должен вызываться до первого вызова SQLite3Stmt::execute(), если надо, чтобы связанное значение корректно обновлялось при последующих вызовах SQLite3Stmt::execute(). Если метод SQLite3Stmt::reset() не вызывался, то связанное значение не будет изменяться, даже если значение, присвоенное переменной, переданной SQLite3Stmt::bindParam(), изменилось или снова был вызван метод SQLite3Stmt::bindParam().

Список параметров

sql_param

Либо строка (string) (для именованных параметров), либо целое число (int) (для положительных параметров), идентифицирующая переменную подготовленного запроса, к которому должно быть привязано значение. Если именованный параметр не начинается с двоеточия ((:)) или знака @, автоматически добавляется двоеточие (:). Положительные параметры начинаются с 1.

param

Параметр для привязки к переменной подготовленного запроса.

type

Тип данных параметра для привязки.

  • SQLITE3_INTEGER: Значение является целым числом со знаком, которое хранится в 1, 2, 3, 4, 6 или 8 байт в зависимости от величины значения.

  • SQLITE3_FLOAT: Значение является числом с плавающей запятой, которое хранится в виде 8-байтного числа IEEE с плавающей запятой.

  • SQLITE3_TEXT: Значение является текстовой строкой, которое хранится в кодировке базы данных (UTF-8, UTF-16BE или UTF-16-LE).

  • SQLITE3_BLOB: Значение является большим двоичным объектом (blob) данных, который хранится точно так же, как и входные данные.

  • SQLITE3_NULL: Значение является NULL-значением.

В PHP 7.0.7, если type опущен, то он автоматически определяется из типа param: boolean и integer рассматриваются как SQLITE3_INTEGER, float как SQLITE3_FLOAT, null как SQLITE3_NULL и все остальные как SQLITE3_TEXT. Раньше, если тип опущен, то по умолчанию использовался SQLITE3_TEXT.

Замечание:

Если param равен NULL, он всегда обрабатывается как SQLITE3_NULL, независимо от заданного type.

Возвращаемые значения

Возвращает TRUE, если параметр привязан к переменной подготовленного запроса, FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.4.0 | Параметр sql_param теперь поддерживает нотацию @param.

Примеры

Пример #1 Пример использования SQLite3Stmt::bindParam()

В примере показано, как один подготовленный запрос с привязкой одного параметра может использоваться для вставки нескольких строк с различными значениями.

<?php
$db = new SQLite3(':memory:');
$db->exec("CREATE TABLE foo (bar TEXT)");

$stmt = $db->prepare("INSERT INTO foo VALUES (:bar)");
$stmt->bindParam(':bar', $bar, SQLITE3_TEXT);

$bar = 'baz';
$stmt->execute();

$bar = 42;
$stmt->execute();

$res = $db->query("SELECT * FROM foo");
while (($row = $res->fetchArray(SQLITE3_ASSOC))) {
    var_dump($row);
}
?>

Результат выполнения данного примера:

array(1) {
  ["bar"]=>
  string(3) "baz"
}
array(1) {
  ["bar"]=>
  string(2) "42"
}

Смотрите также

  • SQLite3Stmt::bindValue() - Связывает значение параметра с переменной подготовленного запроса
  • SQLite3::prepare() - Подготавливает SQL-запрос для выполнения


Связывает значение параметра с переменной подготовленного запроса

  • « SQLite3Stmt::bindParam
  • SQLite3Stmt::clear »
  • PHP Manual
  • SQLite3Stmt
  • Связывает значение параметра с переменной подготовленного запроса

SQLite3Stmt::bindValue

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::bindValue — Связывает значение параметра с переменной подготовленного запроса

Описание

public SQLite3Stmt::bindValue ( mixed $sql_param , mixed $value [, int $type ] ) : bool

Связывает значение параметра с переменной подготовленного запроса.

Предостережение

До PHP 7.2.14 и 7.3.0, если выполнен запрос, необходимо вызвать метод SQLite3Stmt::reset() для того, чтобы можно было поменять значения связанных параметров.

Список параметров

sql_param

Либо строка (string) (для именованных параметров), либо целое число (int) (для положительных параметров), идентифицирующая переменную подготовленного запроса, к которому должно быть привязано значение. Если именованный параметр не начинается с двоеточия ((:)) или знака @, автоматически добавляется двоеточие (:). Положительные параметры начинаются с 1.

value

Значение для привязки к переменной подготовленного запроса.

type

Тип данных значения для привязки.

  • SQLITE3_INTEGER: Значение является целым числом со знаком, которое хранится в 1, 2, 3, 4, 6 или 8 байт в зависимости от величины значения.

  • SQLITE3_FLOAT: Значение является числом с плавающей запятой, которое хранится в виде 8-байтного числа IEEE с плавающей запятой.

  • SQLITE3_TEXT: Значение является текстовой строкой, которое хранится в кодировке базы данных (UTF-8, UTF-16BE или UTF-16-LE).

  • SQLITE3_BLOB: Значение является большим двоичным объектом (blob) данных, который хранится точно так же, как и входные данные.

  • SQLITE3_NULL: Значение является NULL-значением.

В PHP 7.0.7, если type опущен, то он автоматически определяется из типа param: boolean и integer рассматриваются как SQLITE3_INTEGER, float как SQLITE3_FLOAT, null как SQLITE3_NULL и всех остальных как SQLITE3_TEXT. Раньше, если тип опущен, он по умолчанию использовался SQLITE3_TEXT.

Замечание:

Если param равен NULL, он всегда обрабатывается как SQLITE3_NULL, независимо от заданного type.

Возвращаемые значения

Возвращает TRUE, если параметр привязан к переменной подготовленного запроса, или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.4.0 | Параметр sql_param теперь поддерживает нотацию @param.

Примеры

Пример #1 Пример использования SQLite3Stmt::bindValue()

<?php
$db = new SQLite3(':memory:');

$db->exec('CREATE TABLE foo (id INTEGER, bar STRING)');
$db->exec("INSERT INTO foo (id, bar) VALUES (1, 'This is a test')");

$stmt = $db->prepare('SELECT bar FROM foo WHERE id=:id');
$stmt->bindValue(':id', 1, SQLITE3_INTEGER);

$result = $stmt->execute();
var_dump($result->fetchArray(SQLITE3_ASSOC));
?>

Результат выполнения данного примера:

array(1) {
  ["bar"]=>
  string(14) "This is a test"
}

Смотрите также

  • SQLite3Stmt::bindParam() - Связывает параметр с переменной подготовленного запроса
  • SQLite3::prepare() - Подготавливает SQL-запрос для выполнения


Удаляет все текущие привязанные параметры

  • « SQLite3Stmt::bindValue
  • SQLite3Stmt::close »
  • PHP Manual
  • SQLite3Stmt
  • Удаляет все текущие привязанные параметры

SQLite3Stmt::clear

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::clear — Удаляет все текущие привязанные параметры

Описание

public SQLite3Stmt::clear ( void ) : bool

Удаляет все текущие привязанные параметры (устанавливает их на значение NULL).

Предостережение

Метод необходимо использовать с SQLite3Stmt::reset(). Если используется один, любой вызов SQLite3Stmt::bindValue() или SQLite3Stmt::bindParam() не будет иметь никакого эффекта, и все привязанные параметры будут иметь значение NULL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешной очистки привязанных параметров и FALSE в случае возникновения ошибки.


Закрывает подготовленный запрос

  • « SQLite3Stmt::clear
  • SQLite3Stmt::execute »
  • PHP Manual
  • SQLite3Stmt
  • Закрывает подготовленный запрос

SQLite3Stmt::close

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::close — Закрывает подготовленный запрос

Описание

public SQLite3Stmt::close ( void ) : bool

Закрывает подготовленный запрос.

Замечание: Обратите внимание, что все объекты SQLite3Result, полученные при выполнении этого подготовленного запроса будут признаны недействительными при закрытии этого запроса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE


Выполняет подготовленный запрос и возвращает объект с результирующим набором

  • « SQLite3Stmt::close
  • SQLite3Stmt::getSQL »
  • PHP Manual
  • SQLite3Stmt
  • Выполняет подготовленный запрос и возвращает объект с результирующим набором

SQLite3Stmt::execute

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::execute — Выполняет подготовленный запрос и возвращает объект с результирующим набором

Описание

public SQLite3Stmt::execute ( void ) : SQLite3Result

Выполняет подготовленный запрос и возвращает объект с результирующим набором.

Предостережение

Объекты результирующего набора, полученные при вызове этого метода для одного и того же объекта подготовленного запроса, не являются независимыми, а используют одну и ту же базовую структуру. Поэтому рекомендуется вызвать SQLite3Result::finalize(), прежде чем вызывать SQLite3Stmt::execute() на том же объекте подготовленного запроса снова.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект SQLite3Result в случае успешного выполнения подготовленного запроса и FALSE в случае возникновения ошибки.

Смотрите также

  • SQLite3::prepare() - Подготавливает SQL-запрос для выполнения
  • SQLite3Stmt::bindValue() - Связывает значение параметра с переменной подготовленного запроса
  • SQLite3Stmt::bindParam() - Связывает параметр с переменной подготовленного запроса


Получить SQL-запрос в виде строки из запроса

  • « SQLite3Stmt::execute
  • SQLite3Stmt::paramCount »
  • PHP Manual
  • SQLite3Stmt
  • Получить SQL-запрос в виде строки из запроса

SQLite3Stmt::getSQL

(PHP 7 >= 7.4.0)

SQLite3Stmt::getSQL — Получить SQL-запрос в виде строки из запроса

Описание

public SQLite3Stmt::getSQL ([ bool $expanded = FALSE ] ) : string

Возвращает строковое представление SQL-запроса для подготовленного запроса. Если параметр expanded задан как FALSE, будет возвращен не модифицированный SQL. Если же expanded задан как TRUE, все подставляемые параметры запроса будут заменены на конкретные значения, либо на NULL, если значения еще не были привязаны.

Список параметров

expanded

Заменять ли в возвращаемом SQL-запросе параметры на конкретные значения. TRUE поддерживается только с libsqlite 3.14.

Возвращаемые значения

Возвращает SQL-запрос из подготовленного запроса, или FALSE в случае возникновения ошибки.

Ошибки

Если expanded задан как TRUE, но версия libsqlite ниже 3.14, будет вызвана ошибка уровня E_WARNING либо выброшено исключение Exception, в зависимости от настроек SQLite3::enableExceptions().

Примеры

Пример #1 Получение расширенного SQL-запроса

<?php
$db = new SQLite3(':memory:');
$stmt = $db->prepare("SELECT :a, ?, :c");
$stmt->bindValue(':a', 'foo');
$answer = 42;
$stmt->bindParam(2, $answer);
var_dump($stmt->getSQL(true));
?>

Результатом выполнения данного примера будет что-то подобное:

string(24) "SELECT 'foo', '42', NULL"


Возвращает количество параметров в подготовленном запросе

  • « SQLite3Stmt::getSQL
  • SQLite3Stmt::readOnly »
  • PHP Manual
  • SQLite3Stmt
  • Возвращает количество параметров в подготовленном запросе

SQLite3Stmt::paramCount

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::paramCount — Возвращает количество параметров в подготовленном запросе

Описание

public SQLite3Stmt::paramCount ( void ) : int

Возвращает количество параметров в подготовленном запросе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество параметров в подготовленном запросе.

Смотрите также

  • SQLite3::prepare() - Подготавливает SQL-запрос для выполнения


Проверяет, является ли подготовленный запрос только для чтения

  • « SQLite3Stmt::paramCount
  • SQLite3Stmt::reset »
  • PHP Manual
  • SQLite3Stmt
  • Проверяет, является ли подготовленный запрос только для чтения

SQLite3Stmt::readOnly

(PHP 5 >= 5.3.6, PHP 7)

SQLite3Stmt::readOnly — Проверяет, является ли подготовленный запрос только для чтения

Описание

public SQLite3Stmt::readOnly ( void ) : bool

Возвращает, является ли подготовленный запрос определенно только для чтения. Запрос считается только для чтения, если он не вносит непосредственных изменений в содержимое файла базы данных. Обратите внимание, что пользовательские SQL-функции могут косвенно изменять базу данных в качестве побочного эффекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если запрос только для чтения, FALSE в противном случае.


Сбрасывает подготовленный запрос

  • « SQLite3Stmt::readOnly
  • SQLite3Result »
  • PHP Manual
  • SQLite3Stmt
  • Сбрасывает подготовленный запрос

SQLite3Stmt::reset

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::reset — Сбрасывает подготовленный запрос

Описание

public SQLite3Stmt::reset ( void ) : bool

Сбрасывает подготовленный запрос в состояние до его выполнения. После сброса все привязки остаются неизменными.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае, если подготовленный запрос был успешно сброшен, или FALSE в случае возникновения ошибки.


Класс SQLite3Result

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс, предоставляющий доступ к результирующему набору расширения SQLite 3.

Обзор классов

SQLite3Result {
/* Методы */
public columnName ( int $column_number ) : string
public columnType ( int $column_number ) : int
public fetchArray ([ int $mode = SQLITE3_BOTH ] ) : array
public finalize ( void ) : bool
public numColumns ( void ) : int
public reset ( void ) : bool
}

Содержание

  • SQLite3Result::columnName — >Возвращает имя n-ного столбца
  • SQLite3Result::columnType — Возвращает тип n-ного столбца
  • SQLite3Result::fetchArray — Выбирает одну строку из результирующего набора и помещает ее в ассоциативный или нумерованный массив, или в оба сразу
  • SQLite3Result::finalize — Закрывает результирующий набор
  • SQLite3Result::numColumns — Возвращает количество столбцов в результирующем наборе
  • SQLite3Result::reset — Сбрасывает указатель результирующего набора на первую строку


>Возвращает имя n-ного столбца

  • « SQLite3Result
  • SQLite3Result::columnType »
  • PHP Manual
  • SQLite3Result
  • >Возвращает имя n-ного столбца

SQLite3Result::columnName

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::columnName — >Возвращает имя n-ного столбца

Описание

public SQLite3Result::columnName ( int $column_number ) : string

Возвращает имя столбца, указанного в column_number.

Список параметров

column_number

Номер столбца, начиная с нуля.

Возвращаемые значения

Возвращает имя (string) столбца, указанного в column_number.


Возвращает тип n-ного столбца

  • « SQLite3Result::columnName
  • SQLite3Result::fetchArray »
  • PHP Manual
  • SQLite3Result
  • Возвращает тип n-ного столбца

SQLite3Result::columnType

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::columnType — Возвращает тип n-ного столбца

Описание

public SQLite3Result::columnType ( int $column_number ) : int

Возвращает тип столбца, указанного в column_number.

Список параметров

column_number

Номер столбца, начиная с нуля.

Возвращаемые значения

Возвращает тип столбца, указанного в column_number. Возвращает значение SQLITE3_INTEGER, SQLITE3_FLOAT, SQLITE3_TEXT, SQLITE3_BLOB или SQLITE3_NULL).


Выбирает одну строку из результирующего набора и помещает ее в ассоциативный или нумерованный массив, или в оба сразу

  • « SQLite3Result::columnType
  • SQLite3Result::finalize »
  • PHP Manual
  • SQLite3Result
  • Выбирает одну строку из результирующего набора и помещает ее в ассоциативный или нумерованный массив, или в оба сразу

SQLite3Result::fetchArray

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::fetchArray — Выбирает одну строку из результирующего набора и помещает ее в ассоциативный или нумерованный массив, или в оба сразу

Описание

public SQLite3Result::fetchArray ([ int $mode = SQLITE3_BOTH ] ) : array

Выбирает одну строку из результирующего набора и помещает ее в ассоциативный или нумерованный массив, или в оба сразу. По умлчанию создаёт массивы обоих видов.

Список параметров

mode

Этот необязательный параметр принимает значение константы, которая указывает на тип массива, в который требуется поместить данные. Возможные значения параметра: SQLITE3_ASSOC, SQLITE3_NUM или SQLITE3_BOTH.

  • SQLITE3_ASSOC: возвращает ассоциативный массив, в котором индекс соотетствует имени столбца в результирующем наборе.

  • SQLITE3_NUM: возвращает индексированный массив, в котором индекс соотетствует номеру столбца в результирующем наборе, начиная с 0.

  • SQLITE3_BOTH: возвращает индексированный массив, в котором индекс соотетствует имени и номеру столбца в результирующем наборе, начиная с 0.

Возвращаемые значения

Возвращает стоку из результирующего набора в виде ассоциатированного или нумерованного массива, или обоих. Если строк больше нет, возвращает FALSE.

Типы значений возвращаемого массива преобразуются из типов SQLite3 по следующим правилам: целые числа преобразуются в integer если помещаются в диапазон PHP_INT_MIN..PHP_INT_MAX, иначе в строки. Рациональные числа преобразуются в float, NULL в null, строки и BLOB в строки.


Закрывает результирующий набор

  • « SQLite3Result::fetchArray
  • SQLite3Result::numColumns »
  • PHP Manual
  • SQLite3Result
  • Закрывает результирующий набор

SQLite3Result::finalize

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::finalize — Закрывает результирующий набор

Описание

public SQLite3Result::finalize ( void ) : bool

Закрывает результирующий набор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE.


Возвращает количество столбцов в результирующем наборе

  • « SQLite3Result::finalize
  • SQLite3Result::reset »
  • PHP Manual
  • SQLite3Result
  • Возвращает количество столбцов в результирующем наборе

SQLite3Result::numColumns

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::numColumns — Возвращает количество столбцов в результирующем наборе

Описание

public SQLite3Result::numColumns ( void ) : int

Возвращает количество столбцов в результирующем наборе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество столбцов в результирующем наборе.


Сбрасывает указатель результирующего набора на первую строку

  • « SQLite3Result::numColumns
  • SQLSRV »
  • PHP Manual
  • SQLite3Result
  • Сбрасывает указатель результирующего набора на первую строку

SQLite3Result::reset

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::reset — Сбрасывает указатель результирующего набора на первую строку

Описание

public SQLite3Result::reset ( void ) : bool

Сбрасывает указатель результирующего набора на первую строку.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если результирующий набор успешно сброшен на первую строку, или FALSE в случае ошибки.


Драйвер СУБД Microsoft SQL Server для PHP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции SQLSRV
    • sqlsrv_begin_transaction — Begins a database transaction
    • sqlsrv_cancel — Cancels a statement
    • sqlsrv_client_info — Returns information about the client and specified connection
    • sqlsrv_close — Closes an open connection and releases resourses associated with the connection
    • sqlsrv_commit — Commits a transaction that was begun with sqlsrv_begin_transaction
    • sqlsrv_configure — Changes the driver error handling and logging configurations
    • sqlsrv_connect — Opens a connection to a Microsoft SQL Server database
    • sqlsrv_errors — Returns error and warning information about the last SQLSRV operation performed
    • sqlsrv_execute — Executes a statement prepared with sqlsrv_prepare
    • sqlsrv_fetch_array — Returns a row as an array
    • sqlsrv_fetch_object — Retrieves the next row of data in a result set as an object
    • sqlsrv_fetch — Makes the next row in a result set available for reading
    • sqlsrv_field_metadata — Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query
    • sqlsrv_free_stmt — Frees all resources for the specified statement
    • sqlsrv_get_config — Returns the value of the specified configuration setting
    • sqlsrv_get_field — Gets field data from the currently selected row
    • sqlsrv_has_rows — Indicates whether the specified statement has rows
    • sqlsrv_next_result — Makes the next result of the specified statement active
    • sqlsrv_num_fields — Retrieves the number of fields (columns) on a statement
    • sqlsrv_num_rows — Retrieves the number of rows in a result set
    • sqlsrv_prepare — Prepares a query for execution
    • sqlsrv_query — Prepares and executes a query
    • sqlsrv_rollback — Rolls back a transaction that was begun with sqlsrv_begin_transaction
    • sqlsrv_rows_affected — Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed
    • sqlsrv_send_stream_data — Sends data from parameter streams to the server
    • sqlsrv_server_info — Returns information about the server


Введение

Модуль SQLSRV позволяет подключиться к базам данных Microsoft SQL Server или SQL Azure при запуске PHP на Windows. Релиз драйвера версии 3.0 поддерживает SQL Server начиная с версии SQL Server 2005, включая Server 2012 и SQL Server 2012 LocalDB. Подробное описание LocalDB можно прочитать по тут: » Драйвер PHP Driver для SQL Server, поддержка LocalDB и » SQL Server 2012 Express LocalDB.

Модуль SQLSRV поддерживается компанией Microsoft и доступен по ссылке - » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx. SQL Server 2012 LocalDB можно загрузить отсюда - » http://go.microsoft.com/fwlink/?LinkID=237665.


Требования

Модуль SQLSRV может использоваться в следующих операционных системах:

  • Windows Vista Service Pack 2 или позже
  • Windows Server 2008 Service Pack 2 или позже
  • Windows Server 2008 R2
  • Windows 7

Модуль SQLSRV требует, чтобы на компьютере, на котором установлен PHP, была установлена библиотека Microsoft SQL Server 2008 R2 Native Client. Если Microsoft SQL Server 2008 R2 еще не уставнолен, вы можете скачать требуемый дистрибутив по ссылкам ниже:

  • » Скачать версию x86
  • » Скачать версию x64

Загружаемая копия модуля PDO_SQLSRV включает в себя восемь файлов драйверов, четыре из них для поддержки PDO. Если вы используете потоконебезопасную сборку PHP (PHP 5.3), используйте php_sqlsrv_53_nts.dll (вы должны использовать потоконебезопасную версию, если в качестве веб-сервера у вас установлен IIS). Если же вы используете потокобезопасную сборку, то должны использовать php_sqlsrv_52_ts_vc6.dll. Аналогично, для PHP 5.4, используйте php_sqlsrv_54_nts.dll или php_sqlsrv_54_ts.dll.

Наиболее часто используемая версия драйвера доступна здесь: » Загрузка SQLSRV 4.0. Если вам нужна поддержка PHP 5.2 и/или PHP скомпилирован с использованием VC6, используйте релиз драйвера 2.0: » Загрузка SQLSRV 2.0.

За подробностями о системных требованиях обратитесь к разделу » Системные требования SQLSRV.


Установка

Модуль SQLSRV включается добавлением соответствующего файла DLL в директорию модулей вашей установленной копии PHP и соответствующей записи в файл php.ini. Загружаемая копия модуля PDO_SQLSRV включает в себя восемь файлов драйверов, четыре из них для поддержки PDO. Если вы используете потоконебезопасную сборку PHP (PHP 5.3), используйте php_sqlsrv_53_nts.dll (вы должны использовать потоконебезопасную версию, если в качестве веб-сервера у вас установлен IIS). Если же вы используете потокобезопасную сборку, то должны использовать php_sqlsrv_52_ts_vc6.dll. Аналогично, для PHP 5.4, используйте php_sqlsrv_54_nts.dll или php_sqlsrv_54_ts.dll.

Наиболее часто используемая версия драйвера доступны здесь: » Загрузка SQLSRV 4.0. Если вам нужна поддержка PHP 5.2 и/или PHP скомпилирован с использованием VC6, используйте релиз драйвера 2.0: » Загрузка SQLSRV 2.0.

За подробностями о системных требованиях обратитесь к разделу » Системные требования SQLSRV.

Модуль SQLSRV может использоваться с PHP 5 в ОС Windows. Начиная с версии 4.0, модуль SQLSRV работает только с PHP 7.0 под Linux и Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Следующая таблица отображает список настроек, доступных в модуле SQLSRV. Для получения дополнительной информации о данных настройках, обратитесь к соответствующему разделу документации - » обработка ошибок и предупреждений в SQLSRV.

SQLSRV Опции настройки
Имя | По умолчанию | Место изменения | Изменения
sqlsrv.WarningsReturnAsErrors | 1 (TRUE) | PHP_INI_ALL | Доступно с версии SQLSRV 1.0
sqlsrv.LogSubsystems | 0 | PHP_INI_ALL | Доступно с версии SQLSRV 1.0
sqlsrv.LogSeverity | 1 | PHP_INI_ALL | Доступно с версии SQLSRV 1.0


Типы ресурсов

Дескриптор соединения

Дескриптор соединения возвращается функцией sqlsrv_connect().

Дескриптор выражения

Дескриптор выражения (statement resource) возвращается функциями sqlsrv_query() или sqlsrv_prepare().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SQLSRV_FETCH_ASSOC (integer)
Переданный в качестве параметра, заставляет функцию sqlsrv_fetch_array() возвращать ассоциативный массив.
SQLSRV_FETCH_NUMERIC (integer)
Переданный в качестве параметра, заставляет функцию sqlsrv_fetch_array() возвращать массив с числовыми ключами.
SQLSRV_FETCH_BOTH (integer)
Переданный в качестве параметра, заставляет функцию sqlsrv_fetch_array() возвращать массив с ключами и числовыми и ассоциативными (поведение по умолчанию).
SQLSRV_ERR_ALL (integer)
Переданный в качестве параметра, заставляет функцию sqlsrv_errors() возвращать и ошибки и предупреждения (поведение по умолчанию).
SQLSRV_ERR_ERRORS (integer)
Переданный в качестве параметра, заставляет функцию sqlsrv_errors() возвращать только ошибки (без предупреждений).
SQLSRV_ERR_WARNINGS (integer)
Переданный в качестве параметра, заставляет функцию sqlsrv_errors() возвращать только предупреждения (без ошибок).
SQLSRV_LOG_SYSTEM_ALL (integer)
Переданный в качестве параметра функции sqlsrv_configure(), включает журналирование всех подсистем.
SQLSRV_LOG_SYSTEM_CONN (integer)
Переданный в качестве параметра функции sqlsrv_configure(), включает журналирование активности соединения.
SQLSRV_LOG_SYSTEM_INIT (integer)
Переданный в качестве параметра функции sqlsrv_configure(), включает журналирование активности инициализации.
SQLSRV_LOG_SYSTEM_OFF (integer)
Переданный в качестве параметра функции sqlsrv_configure(), отключает журналирование всех подсистем.
SQLSRV_LOG_SYSTEM_STMT (integer)
Переданный в качестве параметра функции sqlsrv_configure(), включает журналирование активности выполнения выражений (statement activity).
SQLSRV_LOG_SYSTEM_UTIL (integer)
Переданный в качестве параметра функции sqlsrv_configure(), включает журналирование активности функций ошибок.
SQLSRV_LOG_SEVERITY_ALL (integer)
Переданный в качестве параметра функции sqlsrv_configure(), определеяет, что ошибки, предупреждения и замечания будут журналироваться.
SQLSRV_LOG_SEVERITY_ERROR (integer)
Переданный в качестве параметра функции sqlsrv_configure(), определеяет, что ошибки будут журналироваться.
SQLSRV_LOG_SEVERITY_NOTICE (integer)
Переданный в качестве параметра функции sqlsrv_configure(), определеяет, что замечания будут журналироваться.
SQLSRV_LOG_SEVERITY_WARNING (integer)
Переданный в качестве параметра функции sqlsrv_configure(), определеяет, что предупреждения будут журналироваться.
SQLSRV_NULLABLE_YES (integer)
Показывает, что значение столбца может быть NULL.
SQLSRV_NULLABLE_NO (integer)
Показывает, что значение столбца не может быть NULL.
SQLSRV_NULLABLE_UNKNOWN (integer)
Показывает, что неизвестно, может ли значение столбца быть NULL.
SQLSRV_PARAM_IN (integer)
При передаче в качестве параметра в функции sqlsrv_query() или sqlsrv_prepare() показывает, что параметр является входным.
SQLSRV_PARAM_INOUT (integer)
При передаче в качестве параметра в функции sqlsrv_query() или sqlsrv_prepare() показывает, что параметр является и входным и выходным.
SQLSRV_PARAM_OUT (integer)
При передаче в качестве параметра в функции sqlsrv_query() или sqlsrv_prepare() показывает, что параметр является выходным.
SQLSRV_PHPTYPE_INT (integer)
Определяет целочисленный тип данных PHP (integer). За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_PHPTYPE_DATETIME (integer)
Определяет временной тип данных PHP (datetime). За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_PHPTYPE_FLOAT (integer)
Определяет тип данных PHP с плавающей точкой (float). За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_PHPTYPE_STREAM (integer)
Определяет поток данных PHP (stream). Данная константа работает как функция и принимает константы кодировок. Смотрите константы вида SQLSRV_ENC_*. За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_PHPTYPE_STRING (integer)
Определяет строковый тип данных PHP (string). Данная константа работает как функция и принимает константы кодировок. Смотрите константы вида SQLSRV_ENC_*. За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_ENC_BINARY (integer)
Определяет, что данные от сервера возвращаются в виде потока байтов без выполнения кодирования или преобразования. За информацией об использовании обратитесь к разделу » Определение типов PHP.
SQLSRV_ENC_CHAR (integer)
Данные возвращаются в формате восьмибитных символов как определено кодовой странице локали Windows, установленной в системе. Любые мультибайтовые символы или символы, не преобразуемые в данную кодовую страницу, заменяются однобайтовым символом вопроса (?). Данная кодировка является кодировкой по умолчанию. За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
UTF-8 (integer)
Определяет, что данные возвращаются в кодировке UTF-8. За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_SQLTYPE_BIGINT (integer)
Описывает SQL-тип BIGINT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_BINARY (integer)
Описывает SQL-тип BINARY. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_BIT (integer)
Описывает SQL-тип BIT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_CHAR (integer)
Описывает SQL-тип CHAR. Эта константа работает как функция и принимает один параметр, задающий количество символов. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_DATE (integer)
Описывает SQL-тип DATE. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_DATETIME (integer)
Описывает SQL-тип DATETIME. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_DATETIME2 (integer)
Описывает SQL-тип DATETIME2. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_DATETIMEOFFSET (integer)
Описывает SQL-тип DATETIMEOFFSET. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_DECIMAL (integer)
Описывает SQL-тип DECIMAL. Эта константа работает как функция и принимает два параметра, задающий точность и разрядность. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_FLOAT (integer)
Описывает SQL-тип FLOAT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_IMAGE (integer)
Описывает SQL-тип IMAGE. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_INT (integer)
Описывает SQL-тип INT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_MONEY (integer)
Описывает SQL-тип MONEY. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_NCHAR (integer)
Описывает SQL-тип NCHAR. Эта константа работает как функция и принимает один параметр, задающий количество символов. За информацией об использовании обратитесь к разделу документации » Определение типов SQL.
SQLSRV_SQLTYPE_NUMERIC (integer)
Описывает SQL-тип NUMERIC. Эта константа работает как функция и принимает два параметра, задающий точность и разрядность. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_NVARCHAR (integer)
Описывает SQL-тип NVARCHAR. Эта константа работает как функция и принимает один параметр, задающий количество символов. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_NVARCHAR('max') (integer)
Описывает SQL-тип NVARCHAR(MAX). За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_NTEXT (integer)
Описывает SQL-тип NTEXT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_REAL (integer)
Описывает SQL-тип REAL. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_SMALLDATETIME (integer)
Описывает SQL-тип SMALLDATETIME. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_SMALLINT (integer)
Описывает SQL-тип SMALLINT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_SMALLMONEY (integer)
Описывает SQL-тип SMALLMONEY. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_TEXT (integer)
Описывает SQL-тип TEXT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_TIME (integer)
Описывает SQL-тип TIME. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_TIMESTAMP (integer)
Описывает SQL-тип TIMESTAMP. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_TINYINT (integer)
Описывает SQL-тип TINYINT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_UNIQUEIDENTIFIER (integer)
Описывает SQL-тип UNIQUEIDENTIFIER. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_UDT (integer)
Описывает SQL-тип UDT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_VARBINARY (integer)
Описывает SQL-тип VARBINARY. Эта константа работает как функция и принимает один параметр, задающий количество байт. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_VARBINARY('max') (integer)
Описывает SQL-тип VARBINARY(MAX). За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_VARCHAR (integer)
Описывает SQL-тип VARCHAR. Эта константа работает как функция и принимает один параметр, задающий количество символов. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_VARCHAR('max') (integer)
Описывает SQL-тип VARCHAR(MAX). За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_XML (integer)
Описывает SQL-тип XML. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_TXN_READ_UNCOMMITTED (integer)
Задает уровень изоляции транзакции равным READ UNCOMMITTED. Это значение используется для установки уровня TransactionIsolation в массиве $connectionOptions, переданном аргументом в функцию sqlsrv_connect().
SQLSRV_TXN_READ_COMMITTED (integer)
Задает уровень изоляции транзакции равным READ COMMITTED. Это значение используется для установки уровня TransactionIsolation в массиве $connectionOptions, переданном аргументом в функцию sqlsrv_connect().
SQLSRV_TXN_REPEATABLE_READ (integer)
Задает уровень изоляции транзакции равным REPEATABLE READ. Это значение используется для установки уровня TransactionIsolation в массиве $connectionOptions, переданном аргументом в функцию sqlsrv_connect().
SQLSRV_TXN_SNAPSHOT (integer)
Задает уровень изоляции транзакции равным SNAPSHOT. Это значение используется для установки уровня TransactionIsolation в массиве $connectionOptions, переданном аргументом в функцию sqlsrv_connect().
SQLSRV_TXN_READ_SERIALIZABLE (integer)
Задает уровень изоляции транзакции равным SERIALIZABLE. Это значение используется для установки уровня TransactionIsolation в массиве $connectionOptions, переданном аргументом в функцию sqlsrv_connect().
SQLSRV_CURSOR_FORWARD (integer)
Задает тип курсора как forward-only. За информацией об использовании обратитесь к разделу » Определение типов курсоров.
SQLSRV_CURSOR_STATIC (integer)
Задает тип курсора как static. За информацией об использовании обратитесь к разделу » Определение типов курсоров.
SQLSRV_DYNAMIC (integer)
Задает тип курсора как dynamic. За информацией об использовании обратитесь к разделу » Определение типов курсоров.
SQLSRV_CURSOR_KEYSET (integer)
Задает тип курсора как keyset. За информацией об использовании обратитесь к разделу » Определение типов курсоров.
SQLSRV_CURSOR_BUFFERED (integer)
Создает запрос с курсором на стороне клиента. Позволяет получать строки в любом порядке. За информацией об использовании обратитесь к разделу » Определение типов курсоров.
SQLSRV_SCROLL_NEXT (integer)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.
SQLSRV_SCROLL_PRIOR (integer)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.
SQLSRV_SCROLL_FIRST (integer)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.
SQLSRV_SCROLL_LAST (integer)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.
SQLSRV_SCROLL_ABSOLUTE (integer)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.
SQLSRV_SCROLL_RELATIVE (integer)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.


Функции SQLSRV

Содержание

  • sqlsrv_begin_transaction — Begins a database transaction
  • sqlsrv_cancel — Cancels a statement
  • sqlsrv_client_info — Returns information about the client and specified connection
  • sqlsrv_close — Closes an open connection and releases resourses associated with the connection
  • sqlsrv_commit — Commits a transaction that was begun with sqlsrv_begin_transaction
  • sqlsrv_configure — Changes the driver error handling and logging configurations
  • sqlsrv_connect — Opens a connection to a Microsoft SQL Server database
  • sqlsrv_errors — Returns error and warning information about the last SQLSRV operation performed
  • sqlsrv_execute — Executes a statement prepared with sqlsrv_prepare
  • sqlsrv_fetch_array — Returns a row as an array
  • sqlsrv_fetch_object — Retrieves the next row of data in a result set as an object
  • sqlsrv_fetch — Makes the next row in a result set available for reading
  • sqlsrv_field_metadata — Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query
  • sqlsrv_free_stmt — Frees all resources for the specified statement
  • sqlsrv_get_config — Returns the value of the specified configuration setting
  • sqlsrv_get_field — Gets field data from the currently selected row
  • sqlsrv_has_rows — Indicates whether the specified statement has rows
  • sqlsrv_next_result — Makes the next result of the specified statement active
  • sqlsrv_num_fields — Retrieves the number of fields (columns) on a statement
  • sqlsrv_num_rows — Retrieves the number of rows in a result set
  • sqlsrv_prepare — Prepares a query for execution
  • sqlsrv_query — Prepares and executes a query
  • sqlsrv_rollback — Rolls back a transaction that was begun with sqlsrv_begin_transaction
  • sqlsrv_rows_affected — Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed
  • sqlsrv_send_stream_data — Sends data from parameter streams to the server
  • sqlsrv_server_info — Returns information about the server


Begins a database transaction

  • « Функции SQLSRV
  • sqlsrv_cancel »
  • PHP Manual
  • Функции SQLSRV
  • Begins a database transaction

sqlsrv_begin_transaction

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_begin_transaction — Begins a database transaction

Описание

sqlsrv_begin_transaction ( resource $conn ) : bool

The transaction begun by sqlsrv_begin_transaction() includes all statements that were executed after the call to sqlsrv_begin_transaction() and before calls to sqlsrv_rollback() or sqlsrv_commit(). Explicit transactions should be started and committed or rolled back using these functions instead of executing SQL statements that begin and commit/roll back transactions. For more information, see » SQLSRV Transactions.

Список параметров

conn

The connection resource returned by a call to sqlsrv_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 sqlsrv_begin_transaction() example

The following example demonstrates how to use sqlsrv_begin_transaction() together with sqlsrv_commit() and sqlsrv_rollback().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true ));
}

/* Begin the transaction. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
     die( print_r( sqlsrv_errors(), true ));
}

/* Initialize parameter values. */
$orderId = 1; $qty = 10; $productId = 100;

/* Set up and execute the first query. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
          VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Set up and execute the second query. */
$sql2 = "UPDATE InventoryTable
          SET Quantity = (Quantity - ?)
          WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* If both queries were successful, commit the transaction. */
/* Otherwise, rollback the transaction. */
if( $stmt1 && $stmt2 ) {
     sqlsrv_commit( $conn );
     echo "Transaction committed.<br />";
} else {
     sqlsrv_rollback( $conn );
     echo "Transaction rolled back.<br />";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • sqlsrv_commit() - Commits a transaction that was begun with sqlsrv_begin_transaction
  • sqlsrv_rollback() - Rolls back a transaction that was begun with sqlsrv_begin_transaction


Cancels a statement

  • « sqlsrv_begin_transaction
  • sqlsrv_client_info »
  • PHP Manual
  • Функции SQLSRV
  • Cancels a statement

sqlsrv_cancel

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_cancel — Cancels a statement

Описание

sqlsrv_cancel ( resource $stmt ) : bool

Cancels a statement. Any results associated with the statement that have not been consumed are deleted. After sqlsrv_cancel() has been called, the specified statement can be re-executed if it was created with sqlsrv_prepare(). Calling sqlsrv_cancel() is not necessary if all the results associated with the statement have been consumed.

Список параметров

stmt

The statement resource to be cancelled.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 sqlsrv_cancel() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT Sales FROM Table_1";

$stmt = sqlsrv_prepare( $conn, $sql);

if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

if( sqlsrv_execute( $stmt ) === false) {
     die( print_r( sqlsrv_errors(), true));
}

$salesTotal = 0;
$count = 0;

while( ($row = sqlsrv_fetch_array( $stmt)) && $salesTotal <=100000)
{
     $qty = $row[0];
     $price = $row[1];
     $salesTotal += ( $price * $qty);
     $count++;
}

echo "$count sales accounted for the first $$salesTotal in revenue.<br />";

// Cancel the pending results. The statement can be reused.
sqlsrv_cancel( $stmt);
?>

Примечания

The main difference between sqlsrv_cancel() and sqlsrv_free_stmt() is that a statement resource cancelled with sqlsrv_cancel() can be re-executed if it was created with sqlsrv_prepare(). A statement resource cancelled with sqlsrv_free_statement() cannot be re-executed.

Смотрите также

  • sqlsrv_free_stmt() - Frees all resources for the specified statement
  • sqlsrv_prepare() - Prepares a query for execution


Returns information about the client and specified connection

  • « sqlsrv_cancel
  • sqlsrv_close »
  • PHP Manual
  • Функции SQLSRV
  • Returns information about the client and specified connection

sqlsrv_client_info

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_client_info — Returns information about the client and specified connection

Описание

sqlsrv_client_info ( resource $conn ) : array

Returns information about the client and specified connection

Список параметров

conn

The connection about which information is returned.

Возвращаемые значения

Returns an associative array with keys described in the table below. Returns FALSE otherwise.

Array returned by sqlsrv_client_info
Key | Description
DriverDllName | SQLNCLI10.DLL
DriverODBCVer | ODBC version (xx.yy)
DriverVer | SQL Server Native Client DLL version (10.5.xxx)
ExtensionVer | php_sqlsrv.dll version (2.0.xxx.x)

Примеры

Пример #1 sqlsrv_client_info() example

<?php
$serverName = "serverName\sqlexpress";
$connOptions = array("UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connOptions );

if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}

if( $client_info = sqlsrv_client_info( $conn)) {
    foreach( $client_info as $key => $value) {
        echo $key.": ".$value."<br />";
    }
} else {
    echo "Error in retrieving client info.<br />";
}
?>

Смотрите также

  • sqlsrv_server_info() - Returns information about the server


Closes an open connection and releases resourses associated with the connection

  • « sqlsrv_client_info
  • sqlsrv_commit »
  • PHP Manual
  • Функции SQLSRV
  • Closes an open connection and releases resourses associated with the connection

sqlsrv_close

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_close — Closes an open connection and releases resourses associated with the connection

Описание

sqlsrv_close ( resource $conn ) : bool

Closes an open connection and releases resourses associated with the connection.

Список параметров

conn

The connection to be closed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 sqlsrv_close() example

<?php
$serverName = "serverName\sqlexpres";
$connOptions = array("UID"=>"username", "PWD"=>"password", "Database"=>"dbname");
$conn = sqlsrv_connect( $serverName, $connOptions );
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

//-------------------------------------
// Perform database operations here.
//-------------------------------------

// Close the connection.
sqlsrv_close( $conn );
?>

Смотрите также

  • sqlsrv_connect() - Opens a connection to a Microsoft SQL Server database


Commits a transaction that was begun with sqlsrv_begin_transaction

  • « sqlsrv_close
  • sqlsrv_configure »
  • PHP Manual
  • Функции SQLSRV
  • Commits a transaction that was begun with sqlsrv_begin_transaction

sqlsrv_commit

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_commit — Commits a transaction that was begun with sqlsrv_begin_transaction()

Описание

sqlsrv_commit ( resource $conn ) : bool

Commits a transaction that was begun with sqlsrv_begin_transaction(). The connection is returned to auto-commit mode after sqlsrv_commit() is called. The transaction that is committed includes all statements that were executed after the call to sqlsrv_begin_transaction(). Explicit transactions should be started and committed or rolled back using these functions instead of executing SQL statements that begin and commit/roll back transactions. For more information, see » SQLSRV Transactions.

Список параметров

conn

The connection on which the transaction is to be committed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 sqlsrv_commit() example

The following example demonstrates how to use sqlsrv_commit() together with sqlsrv_begin_transaction() and sqlsrv_rollback().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true ));
}

/* Begin the transaction. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
     die( print_r( sqlsrv_errors(), true ));
}

/* Initialize parameter values. */
$orderId = 1; $qty = 10; $productId = 100;

/* Set up and execute the first query. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
         VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Set up and execute the second query. */
$sql2 = "UPDATE InventoryTable
         SET Quantity = (Quantity - ?)
         WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* If both queries were successful, commit the transaction. */
/* Otherwise, rollback the transaction. */
if( $stmt1 && $stmt2 ) {
     sqlsrv_commit( $conn );
     echo "Transaction committed.<br />";
} else {
     sqlsrv_rollback( $conn );
     echo "Transaction rolled back.<br />";
}
?>

Смотрите также

  • sqlsrv_begin_transaction() - Begins a database transaction
  • sqlsrv_rollback() - Rolls back a transaction that was begun with sqlsrv_begin_transaction


Changes the driver error handling and logging configurations

  • « sqlsrv_commit
  • sqlsrv_connect »
  • PHP Manual
  • Функции SQLSRV
  • Changes the driver error handling and logging configurations

sqlsrv_configure

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_configure — Changes the driver error handling and logging configurations

Описание

sqlsrv_configure ( string $setting , mixed $value ) : bool

Changes the driver error handling and logging configurations.

Список параметров

setting

The name of the setting to set. The possible values are "WarningsReturnAsErrors", "LogSubsystems", and "LogSeverity".

value

The value of the specified setting. The following table shows possible values:

Error and Logging Setting Options
Setting | Options
WarningsReturnAsErrors | 1 (TRUE) or 0 (FALSE)
LogSubsystems | SQLSRV_LOG_SYSTEM_ALL (-1) SQLSRV_LOG_SYSTEM_CONN (2) SQLSRV_LOG_SYSTEM_INIT (1) SQLSRV_LOG_SYSTEM_OFF (0) SQLSRV_LOG_SYSTEM_STMT (4) SQLSRV_LOG_SYSTEM_UTIL (8)
LogSeverity | SQLSRV_LOG_SEVERITY_ALL (-1) SQLSRV_LOG_SEVERITY_ERROR (1) SQLSRV_LOG_SEVERITY_NOTICE (4) SQLSRV_LOG_SEVERITY_WARNING (2)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • » SQLSRV Error Handling.
  • » Logging SQLSRV Activity.


Opens a connection to a Microsoft SQL Server database

  • « sqlsrv_configure
  • sqlsrv_errors »
  • PHP Manual
  • Функции SQLSRV
  • Opens a connection to a Microsoft SQL Server database

sqlsrv_connect

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_connect — Opens a connection to a Microsoft SQL Server database

Описание

sqlsrv_connect ( string $serverName [, array $connectionInfo ] ) : resource

Opens a connection to a Microsoft SQL Server database. By default, the connection is attempted using Windows Authentication. To connect using SQL Server Authentication, include "UID" and "PWD" in the connection options array.

Список параметров

serverName

The name of the server to which a connection is established. To connect to a specific instance, follow the server name with a backward slash and the instance name (e.g. serverName\sqlexpress).

connectionInfo

An associative array that specifies options for connecting to the server. If values for the UID and PWD keys are not specified, the connection will be attempted using Windows Authentication. For a complete list of supported keys, see » SQLSRV Connection Options.

Возвращаемые значения

A connection resource. If a connection cannot be successfully opened, FALSE is returned.

Примеры

Пример #1 Connect using Windows Authentication.

<?php
$serverName = "serverName\\sqlexpress"; //serverName\instanceName

// Since UID and PWD are not specified in the $connectionInfo array,
// The connection will be attempted using Windows Authentication.
$connectionInfo = array( "Database"=>"dbName");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>

Пример #2 Connect by specifying a user name and password.

<?php
$serverName = "serverName\\sqlexpress"; //serverName\instanceName
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>

Пример #3 Connect on a specified port.

<?php
$serverName = "serverName\\sqlexpress, 1542"; //serverName\instanceName, portNumber (default is 1433)
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>

Примечания

By default, the sqlsrv_connect() uses connection pooling to improve connection performance. To turn off connection pooling (i.e. force a new connection on each call), set the "ConnectionPooling" option in the $connectionOptions array to 0 (or FALSE). For more information, see » SQLSRV Connection Pooling.

The SQLSRV extension does not have a dedicated function for changing which database is connected to. The target database is specified in the $connectionOptions array that is passed to sqlsrv_connect. To change the database on an open connection, execute the following query "USE dbName" (e.g. sqlsrv_query($conn, "USE dbName")).

Смотрите также

  • sqlsrv_close() - Closes an open connection and releases resourses associated with the connection
  • sqlsrv_errors() - Returns error and warning information about the last SQLSRV operation performed
  • sqlsrv_query() - Prepares and executes a query


Returns error and warning information about the last SQLSRV operation performed

  • « sqlsrv_connect
  • sqlsrv_execute »
  • PHP Manual
  • Функции SQLSRV
  • Returns error and warning information about the last SQLSRV operation performed

sqlsrv_errors

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_errors — Returns error and warning information about the last SQLSRV operation performed

Описание

sqlsrv_errors ([ int $errorsOrWarnings ] ) : mixed

Returns error and warning information about the last SQLSRV operation performed.

Список параметров

errorsOrWarnings

Determines whether error information, warning information, or both are returned. If this parameter is not supplied, both error information and warning information are returned. The following are the supported values for this parameter: SQLSRV_ERR_ALL, SQLSRV_ERR_ERRORS, SQLSRV_ERR_WARNINGS.

Возвращаемые значения

If errors and/or warnings occurred on the last sqlsrv operation, an array of arrays containing error information is returned. If no errors and/or warnings occurred on the last sqlsrv operation, NULL is returned. The following table describes the structure of the returned arrays:

Array returned by sqlsrv_errors
Key | Description
SQLSTATE | For errors that originate from the ODBC driver, the SQLSTATE returned by ODBC. For errors that originate from the Microsoft Drivers for PHP for SQL Server, a SQLSTATE of IMSSP. For warnings that originate from the Microsoft Drivers for PHP for SQL Server, a SQLSTATE of 01SSP.
code | For errors that originate from SQL Server, the native SQL Server error code. For errors that originate from the ODBC driver, the error code returned by ODBC. For errors that originate from the Microsoft Drivers for PHP for SQL Server, the Microsoft Drivers for PHP for SQL Server error code.
message | A description of the error.

Примеры

Пример #1 functionname() example

<?php
$serverName = "serverName/sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

/* Set up a query to select an invalid column name. */
$sql = "SELECT BadColumnName FROM Table_1";

/* Execution of the query will fail because of the bad column name. */
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false ) {
    if( ($errors = sqlsrv_errors() ) != null) {
        foreach( $errors as $error ) {
            echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
            echo "code: ".$error[ 'code']."<br />";
            echo "message: ".$error[ 'message']."<br />";
        }
    }
}
?>

Примечания

By default, warnings generated on a call to any SQLSRV function are treated as errors. This means that if a warning occurs on a call to a SQLSRV function, the function returns FALSE. However, warnings that correspond to SQLSTATE values 01000, 01001, 01003, and 01S02 are never treated as errors. For information about changing this behavior, see sqlsrv_configure() and the WarningsReturnAsErrors setting.

Смотрите также

  • sqlsrv_configure() - Changes the driver error handling and logging configurations


Executes a statement prepared with sqlsrv_prepare

  • « sqlsrv_errors
  • sqlsrv_fetch_array »
  • PHP Manual
  • Функции SQLSRV
  • Executes a statement prepared with sqlsrv_prepare

sqlsrv_execute

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_execute — Executes a statement prepared with sqlsrv_prepare()

Описание

sqlsrv_execute ( resource $stmt ) : bool

Executes a statement prepared with sqlsrv_prepare(). This function is ideal for executing a prepared statement multiple times with different parameter values.

Список параметров

stmt

A statement resource returned by sqlsrv_prepare().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 sqlsrv_execute() example

This example demonstrates how to prepare a statement with sqlsrv_prepare() and re-execute it multiple times (with different parameter values) using sqlsrv_execute().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false) {
    die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1
        SET OrderQty = ?
        WHERE SalesOrderID = ?";

// Initialize parameters and prepare the statement.
// Variables $qty and $id are bound to the statement, $stmt.
$qty = 0; $id = 0;
$stmt = sqlsrv_prepare( $conn, $sql, array( &$qty, &$id));
if( !$stmt ) {
    die( print_r( sqlsrv_errors(), true));
}

// Set up the SalesOrderDetailID and OrderQty information.
// This array maps the order ID to order quantity in key=>value pairs.
$orders = array( 1=>10, 2=>20, 3=>30);

// Execute the statement for each order.
foreach( $orders as $id => $qty) {
    // Because $id and $qty are bound to $stmt1, their updated
    // values are used with each execution of the statement.
    if( sqlsrv_execute( $stmt ) === false ) {
          die( print_r( sqlsrv_errors(), true));
    }
}
?>

Примечания

When you prepare a statement that uses variables as parameters, the variables are bound to the statement. This means that if you update the values of the variables, the next time you execute the statement it will run with updated parameter values. For statements that you plan to execute only once, use sqlsrv_query().

Смотрите также

  • sqlsrv_prepare() - Prepares a query for execution
  • sqlsrv_query() - Prepares and executes a query


Returns a row as an array

  • « sqlsrv_execute
  • sqlsrv_fetch_object »
  • PHP Manual
  • Функции SQLSRV
  • Returns a row as an array

sqlsrv_fetch_array

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_fetch_array — Returns a row as an array

Описание

sqlsrv_fetch_array ( resource $stmt [, int $fetchType [, int $row [, int $offset ]]] ) : array

Returns the next available row of data as an associative array, a numeric array, or both (the default).

Список параметров

stmt

A statement resource returned by sqlsrv_query or sqlsrv_prepare.

fetchType

A predefined constant specifying the type of array to return. Possible values are SQLSRV_FETCH_ASSOC, SQLSRV_FETCH_NUMERIC, and SQLSRV_FETCH_BOTH (the default).

A fetch type of SQLSRV_FETCH_ASSOC should not be used when consuming a result set with multiple columns of the same name.

row

Specifies the row to access in a result set that uses a scrollable cursor. Possible values are SQLSRV_SCROLL_NEXT, SQLSRV_SCROLL_PRIOR, SQLSRV_SCROLL_FIRST, SQLSRV_SCROLL_LAST, SQLSRV_SCROLL_ABSOLUTE and, SQLSRV_SCROLL_RELATIVE (the default). When this parameter is specified, the fetchType must be explicitly defined.

offset

Specifies the row to be accessed if the row parameter is set to SQLSRV_SCROLL_ABSOLUTE or SQLSRV_SCROLL_RELATIVE. Note that the first row in a result set has index 0.

Возвращаемые значения

Returns an array on success, NULL if there are no more rows to return, and FALSE if an error occurs.

Примеры

Пример #1 Retrieving an associative array.

<?php
$serverName = "serverName\instanceName";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT FirstName, LastName FROM SomeTable";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
    die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
      echo $row['LastName'].", ".$row['FirstName']."<br />";
}

sqlsrv_free_stmt( $stmt);
?>

Пример #2 Retrieving a numeric array.

<?php
$serverName = "serverName\instanceName";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT FirstName, LastName FROM SomeTable";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
    die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) {
      echo $row[0].", ".$row[1]."<br />";
}

sqlsrv_free_stmt( $stmt);
?>

Примечания

Not specifying the fetchType or explicitly using the SQLSRV_FETCH_TYPE constant in the examples above will return an array that has both associative and numeric keys.

If more than one column is returned with the same name, the last column will take precedence. To avoid field name collisions, use aliases.

If a column with no name is returned, the associative key for the array element will be an empty string ("").

Смотрите также

  • sqlsrv_connect() - Opens a connection to a Microsoft SQL Server database
  • sqlsrv_query() - Prepares and executes a query
  • sqlsrv_errors() - Returns error and warning information about the last SQLSRV operation performed
  • sqlsrv_fetch() - Makes the next row in a result set available for reading


Retrieves the next row of data in a result set as an object

  • « sqlsrv_fetch_array
  • sqlsrv_fetch »
  • PHP Manual
  • Функции SQLSRV
  • Retrieves the next row of data in a result set as an object

sqlsrv_fetch_object

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_fetch_object — Retrieves the next row of data in a result set as an object

Описание

sqlsrv_fetch_object ( resource $stmt [, string $className [, array $ctorParams [, int $row [, int $offset ]]]] ) : mixed

Retrieves the next row of data in a result set as an instance of the specified class with properties that match the row field names and values that correspond to the row field values.

Список параметров

stmt

A statement resource created by sqlsrv_query() or sqlsrv_execute().

className

The name of the class to instantiate. If no class name is specified, stdClass is instantiated.

ctorParams

Values passed to the constructor of the specified class. If the constructor of the specified class takes parameters, the ctorParams array must be supplied.

row

The row to be accessed. This parameter can only be used if the specified statement was prepared with a scrollable cursor. In that case, this parameter can take on one of the following values:

  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE

offset

Specifies the row to be accessed if the row parameter is set to SQLSRV_SCROLL_ABSOLUTE or SQLSRV_SCROLL_RELATIVE. Note that the first row in a result set has index 0.

Возвращаемые значения

Returns an object on success, NULL if there are no more rows to return, and FALSE if an error occurs or if the specified class does not exist.

Примеры

Пример #1 sqlsrv_fetch_object() example

The following example demonstrates how to retrieve a row as a stdClass object.

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT fName, lName FROM Table_1";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

// Retrieve each row as an object.
// Because no class is specified, each row will be retrieved as a stdClass object.
// Property names correspond to field names.
while( $obj = sqlsrv_fetch_object( $stmt)) {
      echo $obj->fName.", ".$obj->lName."<br />";
}
?>

Примечания

If a class name is specified with the optional $className parameter and the class has properties whose names match the result set field names, the corresponding result set values are applied to the properties. If a result set field name does not match a class property, a property with the result set field name is added to the object and the result set value is applied to the property. The following rules apply when using the $className parameter:

  • Field-property name matching is case-sensitive.
  • Field-property matching occurs regardless of access modifiers.
  • Class property data types are ignored when applying a field value to a property.
  • If the class does not exist, the function returns FALSE and adds an error to the error collection.
Regardless of whether the $className parameter is supplied, if a field with no name is returned, the field value will be ignored and a warning will be added to the error collection.

When consuming a result set that has multiple columns with the same name, it may be better to use sqlsrv_fetch_array() or the combination of sqlsrv_fetch() and sqlsrv_get_field().

Смотрите также

  • sqlsrv_fetch() - Makes the next row in a result set available for reading
  • sqlsrv_fetch_array() - Returns a row as an array


Makes the next row in a result set available for reading

  • « sqlsrv_fetch_object
  • sqlsrv_field_metadata »
  • PHP Manual
  • Функции SQLSRV
  • Makes the next row in a result set available for reading

sqlsrv_fetch

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_fetch — Makes the next row in a result set available for reading

Описание

sqlsrv_fetch ( resource $stmt [, int $row [, int $offset ]] ) : mixed

Makes the next row in a result set available for reading. Use sqlsrv_get_field() to read the fields of the row.

Список параметров

stmt

A statement resource created by executing sqlsrv_query() or sqlsrv_execute().

row

The row to be accessed. This parameter can only be used if the specified statement was prepared with a scrollable cursor. In that case, this parameter can take on one of the following values:

  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE

offset

Specifies the row to be accessed if the row parameter is set to SQLSRV_SCROLL_ABSOLUTE or SQLSRV_SCROLL_RELATIVE. Note that the first row in a result set has index 0.

Возвращаемые значения

Returns TRUE if the next row of a result set was successfully retrieved, FALSE if an error occurs, and NULL if there are no more rows in the result set.

Примеры

Пример #1 sqlsrv_fetch() example

The following example demonstrates how to retrieve a row with sqlsrv_fetch() and get the row fields with sqlsrv_get_field().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT Name, Comment
        FROM Table_1
        WHERE ReviewID=1";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

// Make the first (and in this case, only) row of the result set available for reading.
if( sqlsrv_fetch( $stmt ) === false) {
     die( print_r( sqlsrv_errors(), true));
}

// Get the row fields. Field indices start at 0 and must be retrieved in order.
// Retrieving row fields by name is not supported by sqlsrv_get_field.
$name = sqlsrv_get_field( $stmt, 0);
echo "$name: ";

$comment = sqlsrv_get_field( $stmt, 1);
echo $comment;
?>

Смотрите также

  • sqlsrv_get_field() - Gets field data from the currently selected row
  • sqlsrv_fetch_array() - Returns a row as an array
  • sqlsrv_fetch_object() - Retrieves the next row of data in a result set as an object


Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query

  • « sqlsrv_fetch
  • sqlsrv_free_stmt »
  • PHP Manual
  • Функции SQLSRV
  • Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query

sqlsrv_field_metadata

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_field_metadata — Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare() or sqlsrv_query()

Описание

sqlsrv_field_metadata ( resource $stmt ) : mixed

Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare() or sqlsrv_query(). sqlsrv_field_metadata() can be called on a statement before or after statement execution.

Список параметров

stmt

The statement resource for which metadata is returned.

Возвращаемые значения

Returns an array of arrays on success. Otherwise, FALSE is returned. Each returned array is described by the following table:

Array returned by sqlsrv_field_metadata
Key | Description
Name | The name of the field.
Type | The numeric value for the SQL type.
Size | The number of characters for fields of character type, the number of bytes for fields of binary type, or NULL for other types.
Precision | The precision for types of variable precision, NULL for other types.
Scale | The scale for types of variable scale, NULL for other types.
Nullable | An enumeration indicating whether the column is nullable, not nullable, or if it is not known.
For more information, see » sqlsrv_field_metadata in the Microsoft SQLSRV documentation.

Примеры

Пример #1 sqlsrv_field_metadata() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"AdventureWorks", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
   die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT * FROM Table_1";
$stmt = sqlsrv_prepare( $conn, $sql );

foreach( sqlsrv_field_metadata( $stmt ) as $fieldMetadata ) {
    foreach( $fieldMetadata as $name => $value) {
       echo "$name: $value<br />";
    }
      echo "<br />";
}
?>

Смотрите также

  • sqlsrv_client_info() - Returns information about the client and specified connection


Frees all resources for the specified statement

  • « sqlsrv_field_metadata
  • sqlsrv_get_config »
  • PHP Manual
  • Функции SQLSRV
  • Frees all resources for the specified statement

sqlsrv_free_stmt

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_free_stmt — Frees all resources for the specified statement

Описание

sqlsrv_free_stmt ( resource $stmt ) : bool

Frees all resources for the specified statement. The statement cannot be used after sqlsrv_free_stmt() has been called on it. If sqlsrv_free_stmt() is called on an in-progress statement that alters server state, statement execution is terminated and the statement is rolled back.

Список параметров

stmt

The statement for which resources are freed. Note that NULL is a valid parameter value. This allows the function to be called multiple times in a script.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 sqlsrv_free_stmt() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$stmt = sqlsrv_query( $conn, "SELECT * FROM Table_1");
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

/*-------------------------------
     Process query results here.
-------------------------------*/

/* Free the statement resources. */
sqlsrv_free_stmt( $stmt);

?>

Примечания

The main difference between sqlsrv_free_stmt() and sqlsrv_cancel() is that a statement resource cancelled with sqlsrv_cancel() can be re-executed if it was created with sqlsrv_prepare(). A statement resource cancelled with sqlsrv_free_statement() cannot be re-executed.

Смотрите также

  • sqlsrv_cancel() - Cancels a statement


Returns the value of the specified configuration setting

  • « sqlsrv_free_stmt
  • sqlsrv_get_field »
  • PHP Manual
  • Функции SQLSRV
  • Returns the value of the specified configuration setting

sqlsrv_get_config

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_get_config — Returns the value of the specified configuration setting

Описание

sqlsrv_get_config ( string $setting ) : mixed

Returns the value of the specified configuration setting.

Список параметров

setting

The name of the setting for which the value is returned. For a list of configurable settings, see sqlsrv_configure().

Возвращаемые значения

Returns the value of the specified setting. If an invalid setting is specified, FALSE is returned.

Смотрите также

  • sqlsrv_configure() - Changes the driver error handling and logging configurations


Gets field data from the currently selected row

  • « sqlsrv_get_config
  • sqlsrv_has_rows »
  • PHP Manual
  • Функции SQLSRV
  • Gets field data from the currently selected row

sqlsrv_get_field

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_get_field — Gets field data from the currently selected row

Описание

sqlsrv_get_field ( resource $stmt , int $fieldIndex [, int $getAsType ] ) : mixed

Gets field data from the currently selected row. Fields must be accessed in order. Field indices start at 0.

Список параметров

stmt

A statement resource returned by sqlsrv_query() or sqlsrv_execute().

fieldIndex

The index of the field to be retrieved. Field indices start at 0. Fields must be accessed in order. i.e. If you access field index 1, then field index 0 will not be available.

getAsType

The PHP data type for the returned field data. If this parameter is not set, the field data will be returned as its default PHP data type. For information about default PHP data types, see » Default PHP Data Types in the Microsoft SQLSRV documentation.

Возвращаемые значения

Returns data from the specified field on success. Returns FALSE otherwise.

Примеры

Пример #1 sqlsrv_get_field() example

The following example demonstrates how to retrieve a row with sqlsrv_fetch() and get the row fields with sqlsrv_get_field().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT Name, Comment
        FROM Table_1
        WHERE ReviewID=1";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

// Make the first (and in this case, only) row of the result set available for reading.
if( sqlsrv_fetch( $stmt ) === false) {
     die( print_r( sqlsrv_errors(), true));
}

// Get the row fields. Field indices start at 0 and must be retrieved in order.
// Retrieving row fields by name is not supported by sqlsrv_get_field.
$name = sqlsrv_get_field( $stmt, 0);
echo "$name: ";

$comment = sqlsrv_get_field( $stmt, 1);
echo $comment;
?>

Смотрите также

  • sqlsrv_fetch() - Makes the next row in a result set available for reading
  • sqlsrv_fetch_array() - Returns a row as an array
  • sqlsrv_fetch_object() - Retrieves the next row of data in a result set as an object


Indicates whether the specified statement has rows

  • « sqlsrv_get_field
  • sqlsrv_next_result »
  • PHP Manual
  • Функции SQLSRV
  • Indicates whether the specified statement has rows

sqlsrv_has_rows

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_has_rows — Indicates whether the specified statement has rows

Описание

sqlsrv_has_rows ( resource $stmt ) : bool

Indicates whether the specified statement has rows.

Список параметров

stmt

A statement resource returned by sqlsrv_query() or sqlsrv_execute().

Возвращаемые значения

Returns TRUE if the specified statement has rows and FALSE if the statement does not have rows or if an error occurred.

Примеры

Пример #1 sqlsrv_has_rows() example

<?php
$server = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" )
$conn = sqlsrv_connect( $server, $connectionInfo );

$stmt = sqlsrv_query( $conn, "SELECT * FROM Table_1");

if ($stmt) {
   $rows = sqlsrv_has_rows( $stmt );
   if ($rows === true)
      echo "There are rows. <br />";
   else
      echo "There are no rows. <br />";
}
?>

Смотрите также

  • sqlsrv_num_rows() - Retrieves the number of rows in a result set
  • sqlsrv_query() - Prepares and executes a query


Makes the next result of the specified statement active

  • « sqlsrv_has_rows
  • sqlsrv_num_fields »
  • PHP Manual
  • Функции SQLSRV
  • Makes the next result of the specified statement active

sqlsrv_next_result

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_next_result — Makes the next result of the specified statement active

Описание

sqlsrv_next_result ( resource $stmt ) : mixed

Makes the next result of the specified statement active. Results include result sets, row counts, and output parameters.

Список параметров

stmt

The statement on which the next result is being called.

Возвращаемые значения

Returns TRUE if the next result was successfully retrieved, FALSE if an error occurred, and NULL if there are no more results to retrieve.

Примеры

Пример #1 sqlsrv_next_result() example

The following example executes a batch query that inserts into a table and then selects from the table. This produces two results on the statement: one for the rows affected by the INSERT and one for the rows returned by the SELECT. To get to the rows returned by the SELECT, sqlsrv_next_result() must be called to move past the first result.

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array("Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

$query = "INSERT INTO Table_1 (id, data) VALUES (?,?); SELECT * FROM TABLE_1;";
$params = array(1, "some data");
$stmt = sqlsrv_query($conn, $query, $params);

// Consume the first result (rows affected by INSERT) without calling sqlsrv_next_result.
echo "Rows affected: ".sqlsrv_rows_affected($stmt)."<br />";

// Move to the next result and display results.
$next_result = sqlsrv_next_result($stmt);
if( $next_result ) {
   while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)){
      echo $row['id'].": ".$row['data']."<br />";
   }
} elseif( is_null($next_result)) {
     echo "No more results.<br />";
} else {
     die(print_r(sqlsrv_errors(), true));
}
?>

Смотрите также

  • sqlsrv_query() - Prepares and executes a query
  • sqlsrv_fetch_array() - Returns a row as an array
  • sqlsrv_rows_affected() - Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed


Retrieves the number of fields (columns) on a statement

  • « sqlsrv_next_result
  • sqlsrv_num_rows »
  • PHP Manual
  • Функции SQLSRV
  • Retrieves the number of fields (columns) on a statement

sqlsrv_num_fields

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_num_fields — Retrieves the number of fields (columns) on a statement

Описание

sqlsrv_num_fields ( resource $stmt ) : mixed

Retrieves the number of fields (columns) on a statement.

Список параметров

stmt

The statement for which the number of fields is returned. sqlsrv_num_fields() can be called on a statement before or after statement execution.

Возвращаемые значения

Returns the number of fields on success. Returns FALSE otherwise.

Примеры

Пример #1 sqlsrv_num_fields() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
   die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT * FROM Table_1";
$stmt = sqlsrv_query($conn, $sql);
if( $stmt === false) {
   die( print_r( sqlsrv_errors(), true));
}

$numFields = sqlsrv_num_fields( $stmt );

while( sqlsrv_fetch( $stmt )) {
   // Iterate through the fields of each row.
   for($i = 0; $i < $numFields; $i++) {
      echo sqlsrv_get_field($stmt, $i)." ";
   }
   echo "<br />";
}
?>

Смотрите также

  • sqlsrv_field_metadata() - Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query
  • sqlsrv_fetch() - Makes the next row in a result set available for reading
  • sqlsrv_get_field() - Gets field data from the currently selected row


Retrieves the number of rows in a result set

  • « sqlsrv_num_fields
  • sqlsrv_prepare »
  • PHP Manual
  • Функции SQLSRV
  • Retrieves the number of rows in a result set

sqlsrv_num_rows

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_num_rows — Retrieves the number of rows in a result set

Описание

sqlsrv_num_rows ( resource $stmt ) : mixed

Retrieves the number of rows in a result set. This function requires that the statement resource be created with a static or keyset cursor. For more information, see sqlsrv_query(), sqlsrv_prepare(), or » Specifying a Cursor Type and Selecting Rows in the Microsoft SQLSRV documentation.

Список параметров

stmt

The statement for which the row count is returned. The statement resource must be created with a static or keyset cursor. For more information, see sqlsrv_query(), sqlsrv_prepare(), or » Specifying a Cursor Type and Selecting Rows in the Microsoft SQLSRV documentation.

Возвращаемые значения

Returns the number of rows retrieved on success and FALSE if an error occurred. If a forward cursor (the default) or dynamic cursor is used, FALSE is returned.

Примеры

Пример #1 sqlsrv_num_rows() example

<?php
$server = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $server, $connectionInfo );

$sql = "SELECT * FROM Table_1";
$params = array();
$options =  array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$stmt = sqlsrv_query( $conn, $sql , $params, $options );

$row_count = sqlsrv_num_rows( $stmt );

if ($row_count === false)
   echo "Error in retrieveing row count.";
else
   echo $row_count;
?>

Смотрите также

  • sqlsrv_has_rows() - Indicates whether the specified statement has rows
  • sqlsrv_rows_affected() - Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed


Prepares a query for execution

  • « sqlsrv_num_rows
  • sqlsrv_query »
  • PHP Manual
  • Функции SQLSRV
  • Prepares a query for execution

sqlsrv_prepare

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_prepare — Prepares a query for execution

Описание

sqlsrv_prepare ( resource $conn , string $sql [, array $params [, array $options ]] ) : mixed

Prepares a query for execution. This function is ideal for preparing a query that will be executed multiple times with different parameter values.

Список параметров

conn

A connection resource returned by sqlsrv_connect().

sql

The string that defines the query to be prepared and executed.

params

An array specifying parameter information when executing a parameterized query. Array elements can be any of the following:

  • A literal value
  • A PHP variable
  • An array with this structure: array($value [, $direction [, $phpType [, $sqlType]]])
The following table describes the elements in the array structure above:

Array structure
Element | Description
$value | A literal value, a PHP variable, or a PHP by-reference variable.
$direction (optional) | One of the following SQLSRV constants used to indicate the parameter direction: SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. The default value is SQLSRV_PARAM_IN.
$phpType (optional) | A SQLSRV_PHPTYPE_* constant that specifies PHP data type of the returned value.
$sqlType (optional) | A SQLSRV_SQLTYPE_* constant that specifies the SQL Server data type of the input value.
options

An array specifying query property options. The supported keys are described in the following table:

Query Options
Key | Values | Description
QueryTimeout | A positive integer value. | Sets the query timeout in seconds. By default, the driver will wait indefinitely for results.
SendStreamParamsAtExec | TRUE or FALSE (the default is TRUE) | Configures the driver to send all stream data at execution (TRUE), or to send stream data in chunks (FALSE). By default, the value is set to TRUE. For more information, see sqlsrv_send_stream_data().
Scrollable | SQLSRV_CURSOR_FORWARD, SQLSRV_CURSOR_STATIC, SQLSRV_CURSOR_DYNAMIC, or SQLSRV_CURSOR_KEYSET | See » Specifying a Cursor Type and Selecting Rows in the Microsoft SQLSRV documentation.

Возвращаемые значения

Returns a statement resource on success and FALSE if an error occurred.

Примеры

Пример #1 sqlsrv_prepare() example

This example demonstrates how to prepare a statement with sqlsrv_prepare() and re-execute it multiple times (with different parameter values) using sqlsrv_execute().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false) {
    die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1
        SET OrderQty = ?
        WHERE SalesOrderID = ?";

// Initialize parameters and prepare the statement.
// Variables $qty and $id are bound to the statement, $stmt.
$qty = 0; $id = 0;
$stmt = sqlsrv_prepare( $conn, $sql, array( &$qty, &$id));
if( !$stmt ) {
    die( print_r( sqlsrv_errors(), true));
}

// Set up the SalesOrderDetailID and OrderQty information.
// This array maps the order ID to order quantity in key=>value pairs.
$orders = array( 1=>10, 2=>20, 3=>30);

// Execute the statement for each order.
foreach( $orders as $id => $qty) {
    // Because $id and $qty are bound to $stmt1, their updated
    // values are used with each execution of the statement.
    if( sqlsrv_execute( $stmt ) === false ) {
          die( print_r( sqlsrv_errors(), true));
    }
}
?>

Примечания

When you prepare a statement that uses variables as parameters, the variables are bound to the statement. This means that if you update the values of the variables, the next time you execute the statement it will run with updated parameter values. For statements that you plan to execute only once, use sqlsrv_query().

Смотрите также

  • sqlsrv_execute() - Executes a statement prepared with sqlsrv_prepare
  • sqlsrv_query() - Prepares and executes a query


Prepares and executes a query

  • « sqlsrv_prepare
  • sqlsrv_rollback »
  • PHP Manual
  • Функции SQLSRV
  • Prepares and executes a query

sqlsrv_query

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_query — Prepares and executes a query

Описание

sqlsrv_query ( resource $conn , string $sql [, array $params [, array $options ]] ) : mixed

Prepares and executes a query.

Список параметров

conn

A connection resource returned by sqlsrv_connect().

sql

The string that defines the query to be prepared and executed.

params

An array specifying parameter information when executing a parameterized query. Array elements can be any of the following:

  • A literal value
  • A PHP variable
  • An array with this structure: array($value [, $direction [, $phpType [, $sqlType]]])
The following table describes the elements in the array structure above:

Array structure
Element | Description
$value | A literal value, a PHP variable, or a PHP by-reference variable.
$direction (optional) | One of the following SQLSRV constants used to indicate the parameter direction: SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. The default value is SQLSRV_PARAM_IN.
$phpType (optional) | A SQLSRV_PHPTYPE_* constant that specifies PHP data type of the returned value.
$sqlType (optional) | A SQLSRV_SQLTYPE_* constant that specifies the SQL Server data type of the input value.
options

An array specifying query property options. The supported keys are described in the following table:

Query Options
Key | Values | Description
QueryTimeout | A positive integer value. | Sets the query timeout in seconds. By default, the driver will wait indefinitely for results.
SendStreamParamsAtExec | TRUE or FALSE (the default is TRUE) | Configures the driver to send all stream data at execution (TRUE), or to send stream data in chunks (FALSE). By default, the value is set to TRUE. For more information, see sqlsrv_send_stream_data().
Scrollable | SQLSRV_CURSOR_FORWARD, SQLSRV_CURSOR_STATIC, SQLSRV_CURSOR_DYNAMIC, or SQLSRV_CURSOR_KEYSET | See » Specifying a Cursor Type and Selecting Rows in the Microsoft SQLSRV documentation.

Возвращаемые значения

Returns a statement resource on success and FALSE if an error occurred.

Примеры

Пример #1 sqlsrv_query() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "INSERT INTO Table_1 (id, data) VALUES (?, ?)";
$params = array(1, "some data");

$stmt = sqlsrv_query( $conn, $sql, $params);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}
?>

Примечания

For statements that you plan to execute only once, use sqlsrv_query(). If you intend to re-execute a statement with different parameter values, use the combination of sqlsrv_prepare() and sqlsrv_execute().

Смотрите также

  • sqlsrv_prepare() - Prepares a query for execution
  • sqlsrv_execute() - Executes a statement prepared with sqlsrv_prepare


Rolls back a transaction that was begun with sqlsrv_begin_transaction

  • « sqlsrv_query
  • sqlsrv_rows_affected »
  • PHP Manual
  • Функции SQLSRV
  • Rolls back a transaction that was begun with sqlsrv_begin_transaction

sqlsrv_rollback

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_rollback — Rolls back a transaction that was begun with sqlsrv_begin_transaction()

Описание

sqlsrv_rollback ( resource $conn ) : bool

Rolls back a transaction that was begun with sqlsrv_begin_transaction() and returns the connection to auto-commit mode.

Список параметров

conn

The connection resource returned by a call to sqlsrv_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 sqlsrv_rollback() example

The following example demonstrates how to use sqlsrv_begin_transaction() together with sqlsrv_commit() and sqlsrv_rollback().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true ));
}

/* Begin the transaction. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
     die( print_r( sqlsrv_errors(), true ));
}

/* Initialize parameter values. */
$orderId = 1; $qty = 10; $productId = 100;

/* Set up and execute the first query. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
         VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Set up and execute the second query. */
$sql2 = "UPDATE InventoryTable
         SET Quantity = (Quantity - ?)
         WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* If both queries were successful, commit the transaction. */
/* Otherwise, rollback the transaction. */
if( $stmt1 && $stmt2 ) {
     sqlsrv_commit( $conn );
     echo "Transaction committed.<br />";
} else {
     sqlsrv_rollback( $conn );
     echo "Transaction rolled back.<br />";
}
?>

Смотрите также

  • sqlsrv_begin_transaction() - Begins a database transaction
  • sqlsrv_commit() - Commits a transaction that was begun with sqlsrv_begin_transaction


Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed

  • « sqlsrv_rollback
  • sqlsrv_send_stream_data »
  • PHP Manual
  • Функции SQLSRV
  • Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed

sqlsrv_rows_affected

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_rows_affected — Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed

Описание

sqlsrv_rows_affected ( resource $stmt ) : int

Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed. For information about the number of rows returned by a SELECT query, see sqlsrv_num_rows().

Список параметров

stmt

The executed statement resource for which the number of affected rows is returned.

Возвращаемые значения

Returns the number of rows affected by the last INSERT, UPDATE, or DELETE query. If no rows were affected, 0 is returned. If the number of affected rows cannot be determined, -1 is returned. If an error occurred, FALSE is returned.

Примеры

Пример #1 sqlsrv_rows_affected() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1 SET data = ? WHERE id = ?";

$params = array("updated data", 1);

$stmt = sqlsrv_query( $conn, $sql, $params);

$rows_affected = sqlsrv_rows_affected( $stmt);
if( $rows_affected === false) {
     die( print_r( sqlsrv_errors(), true));
} elseif( $rows_affected == -1) {
      echo "No information available.<br />";
} else {
      echo $rows_affected." rows were updated.<br />";
}
?>

Смотрите также

  • sqlsrv_num_rows() - Retrieves the number of rows in a result set


Sends data from parameter streams to the server

  • « sqlsrv_rows_affected
  • sqlsrv_server_info »
  • PHP Manual
  • Функции SQLSRV
  • Sends data from parameter streams to the server

sqlsrv_send_stream_data

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_send_stream_data — Sends data from parameter streams to the server

Описание

sqlsrv_send_stream_data ( resource $stmt ) : bool

Send data from parameter streams to the server. Up to 8 KB of data is sent with each call.

Список параметров

stmt

A statement resource returned by sqlsrv_query() or sqlsrv_execute().

Возвращаемые значения

Returns TRUE if there is more data to send and FALSE if there is not.

Примеры

Пример #1 sqlsrv_send_stream_data() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1 SET data = ( ?) WHERE id = 100";

// Open parameter data as a stream and put it in the $params array.
$data = fopen( "data://text/plain,[ Lengthy content here. ]", "r");
$params = array( &$data);

// Prepare the statement. Use the $options array to turn off the
// default behavior, which is to send all stream data at the time of query
// execution.
$options = array("SendStreamParamsAtExec"=>0);
$stmt = sqlsrv_prepare( $conn, $sql, $params, $options);

sqlsrv_execute( $stmt);

// Send up to 8K of parameter data to the server
// with each call to sqlsrv_send_stream_data.
$i = 1;
while( sqlsrv_send_stream_data( $stmt)) {
      $i++;
}
echo "$i calls were made.";
?>

Смотрите также

  • sqlsrv_prepare() - Prepares a query for execution
  • sqlsrv_query() - Prepares and executes a query


Returns information about the server

  • « sqlsrv_send_stream_data
  • Sybase »
  • PHP Manual
  • Функции SQLSRV
  • Returns information about the server

sqlsrv_server_info

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_server_info — Returns information about the server

Описание

sqlsrv_server_info ( resource $conn ) : array

Returns information about the server.

Список параметров

conn

The connection resource that connects the client and the server.

Возвращаемые значения

Returns an array as described in the following table:

Returned Array
CurrentDatabase | The connected-to database.
SQLServerVersion | The SQL Server version.
SQLServerName | The name of the server.

Примеры

Пример #1 sqlsrv_server_info() example

<?php
$serverName = "serverName\sqlexpress";
$conn = sqlsrv_connect( $serverName);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$server_info = sqlsrv_server_info( $conn);
if( $server_info )
{
    foreach( $server_info as $key => $value) {
       echo $key.": ".$value."<br />";
    }
} else {
      die( print_r( sqlsrv_errors(), true));
}
?>

Смотрите также

  • sqlsrv_client_info() - Returns information about the client and specified connection


Sybase

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Sybase
    • 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


  • « Sybase
  • Установка и настройка »
  • PHP Manual
  • Sybase
  • Введение

Введение

Внимание

Начиная с PHP 7.0.0, расширение sybase_ct удалено.


Установка

Для включения поддержки Sybase-DB сконфигурируйте PHP с ключем --with-sybase[=DIR] . Где DIR указывает на домашний каталог Sybase - /home/sybase по умолчанию. Для включения поддержки Sybase-CT сконфигурируйте PHP с ключем --with-sybase-ct[=DIR] . Где DIR указывает на домашний каталог Sybase - /home/sybase по умолчанию.

Замечание:

Начиная с PHP 5.3.0, расширение Sybase заменено расширением sybase_ct и больше не поддерживается. Для дальнейшей работы с sybase используйте расширение sybase_ct.

Начиная с PHP 7.0.0, расширение sybase_ct удалено.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции конфигурации Sybase
Имя | По умолчанию | Место изменения | Список изменений
sybase.allow_persistent | "1" | PHP_INI_ALL | PHP_INI_ALL в PHP <= 4.0.2. PHP_INI_SYSTEM в PHP <= 4.0.3.
sybase.max_persistent | "-1" | PHP_INI_ALL | PHP_INI_ALL в PHP <= 4.0.2. PHP_INI_SYSTEM в PHP <= 4.0.3.
sybase.max_links | "-1" | PHP_INI_ALL | PHP_INI_ALL в PHP <= 4.0.2. PHP_INI_SYSTEM в 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 | Устарело с PHP 5.3.0. Удалено в PHP 5.4.0.

Краткое разъяснение конфигурационных директив.

sybase.allow_persistent boolean

Разрешать ли постоянные соединения Sybase.

sybase.max_persistent integer

Максимальное количество постоянных соединений Sybase на процесс. -1 для неограниченного числа.

sybase.max_links integer

Максимальное количество соединений Sybase на процесс, включая постоянные. -1 для неограниченного числа.

sybase.min_error_severity integer

Минимальная критичность отображаемых ошибок.

sybase.min_message_severity integer

Минимальная критичность отображаемых сообщений.

magic_quotes_sybase boolean

Если параметр magic_quotes_sybase включен, то одиночные кавычки экранируются одиночными кавычками, а не обратным слешем, если разрешены magic_quotes_gpc или magic_quotes_runtime. Эта опция принимается во внимание функциями addslashes() и stripslashes().

Замечание:

Обратите внимание, что включение magic_quotes_sybase iполностью переопределяет поведение magic_quotes_gpc . В этом случае при включении magic_quotes_gpc ни двойные кавычки, ни обратные слеши, ни NUL не будут экранированы.

Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Опции конфигурации Sybase-CT
Имя | По умолчанию | Место изменения | Список изменений
sybct.deadlock_retry_count | "0" | PHP_INI_ALL | Доступно с PHP 4.3.0.

Краткое разъяснение конфигурационных директив.

sybct.login_timeout integer

Максимальное количество секунд ожидания при соединении, прежде чем оно будет признано неудачным. Обратите внимание, что если max_execution_time будет превышено при ожидании соединения, то ваш скрипт завершится до того, как сможет обработать ошибку неудачного соединения. По умолчанию равно одной минуте.

sybct.timeout integer

Максимальное количество секунд ожидания select_db или при выполнении запроса, прежде чем операция будет признано неудачной. Обратите внимание, что если при ожидании будет превышено max_execution_time, то ваш скрипт завершится до того, как сможет обработать ошибку неудачной операции с БД. По умолчанию - бесконечно.

sybct.deadlock_retry_count int

Позволяет задать количество повторов при взаимных блокировках (deadlocks). По умолчанию 0. -1 означает "вечно".

Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.


  • « Типы ресурсов
  • Функции Sybase »
  • PHP Manual
  • Sybase
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции Sybase

Содержание

  • 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


Gets number of affected rows in last query

  • « Функции Sybase
  • sybase_close »
  • PHP Manual
  • Функции Sybase
  • Gets number of affected rows in last query

sybase_affected_rows

(PHP 4, PHP 5)

sybase_affected_rows — Gets number of affected rows in last query

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_affected_rows ([ resource $link_identifier ] ) : int

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.

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().

Список параметров

link_identifier

If the link identifier isn't specified, the last opened link is assumed.

Возвращаемые значения

Returns the number of affected rows, as an integer.

Примеры

Пример #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

Смотрите также

  • sybase_num_rows() - Get number of rows in a result set


Closes a Sybase connection

  • « sybase_affected_rows
  • sybase_connect »
  • PHP Manual
  • Функции Sybase
  • Closes a Sybase connection

sybase_close

(PHP 4, PHP 5)

sybase_close — Closes a Sybase connection

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_close ([ resource $link_identifier ] ) : bool

sybase_close() closes the link to a Sybase database that's associated with the specified link link_identifier.

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().

Список параметров

link_identifier

If the link identifier isn't specified, the last opened link is assumed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • sybase_connect() - Opens a Sybase server connection
  • sybase_pconnect() - Open persistent Sybase connection


Opens a Sybase server connection

  • « sybase_close
  • sybase_data_seek »
  • PHP Manual
  • Функции Sybase
  • Opens a Sybase server connection

sybase_connect

(PHP 4, PHP 5)

sybase_connect — Opens a Sybase server connection

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_connect ([ string $servername [, string $username [, string $password [, string $charset [, string $appname [, bool $new = FALSE ]]]]]] ) : resource

sybase_connect() establishes a connection to a Sybase server.

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().

Список параметров

servername

The servername argument has to be a valid servername that is defined in the 'interfaces' file.

username

Sybase user name

password

Password associated with username.

charset

Specifies the charset for the connection

appname

Specifies an appname for the Sybase connection. This allow you to make separate connections in the same script to the same database. This may come handy when you have started a transaction in your current connection, and you need to be able to do a separate query which cannot be performed inside this transaction.

new

Whether to open a new connection or use the existing one.

Возвращаемые значения

Returns a positive Sybase link identifier on success, or FALSE on failure.

Список изменений

Версия | Описание
5.3.0 | The new parameter was added.

Примеры

Пример #1 sybase_connect() example

<?php
$link = sybase_connect('SYBASE', '', '')
        or die("Could not connect !");
echo "Connected successfully";
sybase_close($link);
?>

Смотрите также

  • sybase_pconnect() - Open persistent Sybase connection
  • sybase_close() - Closes a Sybase connection


Moves internal row pointer

  • « sybase_connect
  • sybase_deadlock_retry_count »
  • PHP Manual
  • Функции Sybase
  • Moves internal row pointer

sybase_data_seek

(PHP 4, PHP 5)

sybase_data_seek — Moves internal row pointer

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_data_seek ( resource $result_identifier , int $row_number ) : bool

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.

Список параметров

result_identifier

row_number

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • sybase_fetch_row() - Get a result row as an enumerated array


Sets the deadlock retry count

  • « sybase_data_seek
  • sybase_fetch_array »
  • PHP Manual
  • Функции Sybase
  • Sets the deadlock retry count

sybase_deadlock_retry_count

(PHP 4 >= 4.3.0, PHP 5)

sybase_deadlock_retry_count — Sets the deadlock retry count

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_deadlock_retry_count ( int $retry_count ) : void

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.

Список параметров

retry_count

Values for retry_count
-1 | Retry forever (default)
0 | Do not retry
n | Retry n times

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.


Fetch row as array

  • « sybase_deadlock_retry_count
  • sybase_fetch_assoc »
  • PHP Manual
  • Функции Sybase
  • Fetch row as array

sybase_fetch_array

(PHP 4, PHP 5)

sybase_fetch_array — Fetch row as array

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_fetch_array ( resource $result ) : array

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.

Список параметров

result

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Замечание:

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)
}

Смотрите также

  • sybase_fetch_row() - Get a result row as an enumerated array
  • sybase_fetch_assoc() - Fetch a result row as an associative array
  • sybase_fetch_object() - Fetch a row as an object


Fetch a result row as an associative array

  • « sybase_fetch_array
  • sybase_fetch_field »
  • PHP Manual
  • Функции Sybase
  • Fetch a result row as an associative array

sybase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

sybase_fetch_assoc — Fetch a result row as an associative array

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_fetch_assoc ( resource $result ) : array

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.

Список параметров

result

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Примечания

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.

Смотрите также

  • sybase_fetch_row() - Get a result row as an enumerated array
  • sybase_fetch_array() - Fetch row as array
  • sybase_fetch_object() - Fetch a row as an object


Get field information from a result

  • « sybase_fetch_assoc
  • sybase_fetch_object »
  • PHP Manual
  • Функции Sybase
  • Get field information from a result

sybase_fetch_field

(PHP 4, PHP 5)

sybase_fetch_field — Get field information from a result

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_fetch_field ( resource $result [, int $field_offset = -1 ] ) : object

sybase_fetch_field() can be used in order to obtain information about fields in a certain query result.

Список параметров

result

field_offset

If the field offset isn't specified, the next field that wasn't yet retrieved by sybase_fetch_field() is retrieved.

Возвращаемые значения

Returns an object containing field information.

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

Смотрите также

  • sybase_field_seek() - Sets field offset


Fetch a row as an object

  • « sybase_fetch_field
  • sybase_fetch_row »
  • PHP Manual
  • Функции Sybase
  • Fetch a row as an object

sybase_fetch_object

(PHP 4, PHP 5)

sybase_fetch_object — Fetch a row as an object

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_fetch_object ( resource $result [, mixed $object ] ) : object

sybase_fetch_object() is similar to sybase_fetch_assoc(), with one difference - an object is returned, instead of an array.

Speed-wise, the function is identical to sybase_fetch_array(), and almost as quick as sybase_fetch_row() (the difference is insignificant).

Список параметров

result

object

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.

Возвращаемые значения

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

Примеры

Пример #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());
    // {...]
?>

Смотрите также

  • sybase_fetch_array() - Fetch row as array
  • sybase_fetch_row() - Get a result row as an enumerated array


Get a result row as an enumerated array

  • « sybase_fetch_object
  • sybase_field_seek »
  • PHP Manual
  • Функции Sybase
  • Get a result row as an enumerated array

sybase_fetch_row

(PHP 4, PHP 5)

sybase_fetch_row — Get a result row as an enumerated array

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_fetch_row ( resource $result ) : array

sybase_fetch_row() fetches one row of data from the result associated with the specified result identifier.

Subsequent call to sybase_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Список параметров

result

Возвращаемые значения

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 0.

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

Смотрите также

  • sybase_fetch_array() - Fetch row as array
  • sybase_fetch_assoc() - Fetch a result row as an associative array
  • sybase_fetch_object() - Fetch a row as an object
  • sybase_data_seek() - Moves internal row pointer
  • sybase_result() - Get result data


Sets field offset

  • « sybase_fetch_row
  • sybase_free_result »
  • PHP Manual
  • Функции Sybase
  • Sets field offset

sybase_field_seek

(PHP 4, PHP 5)

sybase_field_seek — Sets field offset

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_field_seek ( resource $result , int $field_offset ) : bool

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.

Список параметров

result

field_offset

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • sybase_fetch_field() - Get field information from a result


Frees result memory

  • « sybase_field_seek
  • sybase_get_last_message »
  • PHP Manual
  • Функции Sybase
  • Frees result memory

sybase_free_result

(PHP 4, PHP 5)

sybase_free_result — Frees result memory

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_free_result ( resource $result ) : bool

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.

Список параметров

result

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Returns the last message from the server

  • « sybase_free_result
  • sybase_min_client_severity »
  • PHP Manual
  • Функции Sybase
  • Returns the last message from the server

sybase_get_last_message

(PHP 4, PHP 5)

sybase_get_last_message — Returns the last message from the server

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_get_last_message ( void ) : string

sybase_get_last_message() returns the last message reported by the server.

Возвращаемые значения

Returns the message as a string.

Смотрите также

  • sybase_min_message_severity() - Sets minimum message severity


Sets minimum client severity

  • « sybase_get_last_message
  • sybase_min_error_severity »
  • PHP Manual
  • Функции Sybase
  • Sets minimum client severity

sybase_min_client_severity

(PHP 4, PHP 5)

sybase_min_client_severity — Sets minimum client severity

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_min_client_severity ( int $severity ) : void

sybase_min_client_severity() sets the minimum client severity level.

Список параметров

severity

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.

Смотрите также

  • sybase_min_server_severity() - Sets minimum server severity


Sets minimum error severity

  • « sybase_min_client_severity
  • sybase_min_message_severity »
  • PHP Manual
  • Функции Sybase
  • Sets minimum error severity

sybase_min_error_severity

(PHP 4, PHP 5)

sybase_min_error_severity — Sets minimum error severity

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_min_error_severity ( int $severity ) : void

sybase_min_error_severity() sets the minimum error severity level.

Список параметров

severity

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.

Смотрите также

  • sybase_min_message_severity() - Sets minimum message severity


Sets minimum message severity

  • « sybase_min_error_severity
  • sybase_min_server_severity »
  • PHP Manual
  • Функции Sybase
  • Sets minimum message severity

sybase_min_message_severity

(PHP 4, PHP 5)

sybase_min_message_severity — Sets minimum message severity

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_min_message_severity ( int $severity ) : void

sybase_min_message_severity() sets the minimum message severity level.

Список параметров

severity

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки DB, но не библиотеки CT.

Смотрите также

  • sybase_min_error_severity() - Sets minimum error severity


Sets minimum server severity

  • « sybase_min_message_severity
  • sybase_num_fields »
  • PHP Manual
  • Функции Sybase
  • Sets minimum server severity

sybase_min_server_severity

(PHP 4, PHP 5)

sybase_min_server_severity — Sets minimum server severity

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_min_server_severity ( int $severity ) : void

sybase_min_server_severity() sets the minimum server severity level.

Список параметров

severity

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.

Смотрите также

  • sybase_min_client_severity() - Sets minimum client severity


Gets the number of fields in a result set

  • « sybase_min_server_severity
  • sybase_num_rows »
  • PHP Manual
  • Функции Sybase
  • Gets the number of fields in a result set

sybase_num_fields

(PHP 4, PHP 5)

sybase_num_fields — Gets the number of fields in a result set

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_num_fields ( resource $result ) : int

sybase_num_fields() returns the number of fields in a result set.

Список параметров

result

Возвращаемые значения

Returns the number of fields as an integer.

Смотрите также

  • sybase_query() - Sends a Sybase query
  • sybase_fetch_field() - Get field information from a result
  • sybase_num_rows() - Get number of rows in a result set


Get number of rows in a result set

  • « sybase_num_fields
  • sybase_pconnect »
  • PHP Manual
  • Функции Sybase
  • Get number of rows in a result set

sybase_num_rows

(PHP 4, PHP 5)

sybase_num_rows — Get number of rows in a result set

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_num_rows ( resource $result ) : int

sybase_num_rows() returns the number of rows in a result set.

Список параметров

result

Возвращаемые значения

Returns the number of rows as an integer.

Смотрите также

  • sybase_num_fields() - Gets the number of fields in a result set
  • sybase_query() - Sends a Sybase query
  • sybase_fetch_row() - Get a result row as an enumerated array


Open persistent Sybase connection

  • « sybase_num_rows
  • sybase_query »
  • PHP Manual
  • Функции Sybase
  • Open persistent Sybase connection

sybase_pconnect

(PHP 4, PHP 5)

sybase_pconnect — Open persistent Sybase connection

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_pconnect ([ string $servername [, string $username [, string $password [, string $charset [, string $appname ]]]]] ) : resource

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'.

Список параметров

servername

The servername argument has to be a valid servername that is defined in the 'interfaces' file.

username

Sybase user name

password

Password associated with username.

charset

Specifies the charset for the connection

appname

Specifies an appname for the Sybase connection. This allow you to make separate connections in the same script to the same database. This may come handy when you have started a transaction in your current connection, and you need to be able to do a separate query which cannot be performed inside this transaction.

Возвращаемые значения

Returns a positive Sybase persistent link identifier on success, or FALSE on error.

Смотрите также

  • sybase_connect() - Opens a Sybase server connection


Sends a Sybase query

  • « sybase_pconnect
  • sybase_result »
  • PHP Manual
  • Функции Sybase
  • Sends a Sybase query

sybase_query

(PHP 4, PHP 5)

sybase_query — Sends a Sybase query

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_query ( string $query [, resource $link_identifier ] ) : mixed

sybase_query() sends a query to the currently active database on the server that's associated with the specified link identifier.

Список параметров

query

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.

Возвращаемые значения

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_select_db() - Selects a Sybase database
  • sybase_connect() - Opens a Sybase server connection


Get result data

  • « sybase_query
  • sybase_select_db »
  • PHP Manual
  • Функции Sybase
  • Get result data

sybase_result

(PHP 4, PHP 5)

sybase_result — Get result data

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_result ( resource $result , int $row , mixed $field ) : string

Returns the contents of the cell at the row and offset in the specified Sybase 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'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().

Список параметров

result

row

field

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.

Возвращаемые значения

sybase_result() returns the contents of one cell from a Sybase result set.


Selects a Sybase database

  • « sybase_result
  • sybase_set_message_handler »
  • PHP Manual
  • Функции Sybase
  • Selects a Sybase database

sybase_select_db

(PHP 4, PHP 5)

sybase_select_db — Selects a Sybase database

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_select_db ( string $database_name [, resource $link_identifier ] ) : bool

sybase_select_db() sets the current active database on the server that's associated with the specified link identifier.

Every subsequent call to sybase_query() will be made on the active database.

Список параметров

database_name

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 в случае возникновения ошибки.

Смотрите также

  • sybase_connect() - Opens a Sybase server connection
  • sybase_pconnect() - Open persistent Sybase connection
  • sybase_query() - Sends a Sybase query


Sets the handler called when a server message is raised

  • « sybase_select_db
  • sybase_unbuffered_query »
  • PHP Manual
  • Функции Sybase
  • Sets the handler called when a server message is raised

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

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_set_message_handler ( callable $handler [, resource $link_identifier ] ) : bool

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.

Список параметров

handler

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.

link_identifier

If the link identifier isn't specified, the last opened link is assumed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #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 библиотеки CT, но не библиотеки DB.


Send a Sybase query and do not block

  • « sybase_set_message_handler
  • tokyo_tyrant »
  • PHP Manual
  • Функции Sybase
  • Send a Sybase query and do not block

sybase_unbuffered_query

(PHP 4 >= 4.3.0, PHP 5)

sybase_unbuffered_query — Send a Sybase query and do not block

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

sybase_unbuffered_query ( string $query , resource $link_identifier [, bool $store_result ] ) : resource

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.

Список параметров

query

link_identifier

store_result

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.

Возвращаемые значения

Returns a positive Sybase result identifier on success, or FALSE on error.

Примеры

Пример #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);

?>

Примечания

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.

Смотрите также

  • sybase_query() - Sends a Sybase query


tokyo_tyrant

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • TokyoTyrant — The TokyoTyrant class
    • TokyoTyrant::add — Adds to a numeric key
    • TokyoTyrant::connect — Connect to a database
    • TokyoTyrant::connectUri — Connects to a database
    • TokyoTyrant::__construct — Construct a new TokyoTyrant object
    • TokyoTyrant::copy — Copies the database
    • TokyoTyrant::ext — Execute a remote script
    • TokyoTyrant::fwmKeys — Returns the forward matching keys
    • TokyoTyrant::get — The get purpose
    • TokyoTyrant::getIterator — Get an iterator
    • TokyoTyrant::num — Number of records in the database
    • TokyoTyrant::out — Removes records
    • TokyoTyrant::put — Puts values
    • TokyoTyrant::putCat — Concatenates to a record
    • TokyoTyrant::putKeep — Puts a record
    • TokyoTyrant::putNr — Puts value
    • TokyoTyrant::putShl — Concatenates to a record
    • TokyoTyrant::restore — Restore the database
    • TokyoTyrant::setMaster — Set the replication master
    • TokyoTyrant::size — Returns the size of the value
    • TokyoTyrant::stat — Get statistics
    • TokyoTyrant::sync — Synchronize the database
    • TokyoTyrant::tune — Tunes connection values
    • TokyoTyrant::vanish — Empties the database
  • TokyoTyrantTable — The TokyoTyrantTable class
    • TokyoTyrantTable::add — Adds a record
    • TokyoTyrantTable::genUid — Generate unique id
    • TokyoTyrantTable::get — Get a row
    • TokyoTyrantTable::getIterator — Get an iterator
    • TokyoTyrantTable::getQuery — Get a query object
    • TokyoTyrantTable::out — Remove records
    • TokyoTyrantTable::put — Store a row
    • TokyoTyrantTable::putCat — Concatenates to a row
    • TokyoTyrantTable::putKeep — Put a new record
    • TokyoTyrantTable::putNr — Puts value
    • TokyoTyrantTable::putShl — Concatenates to a record
    • TokyoTyrantTable::setIndex — Sets index
  • TokyoTyrantQuery — The TokyoTyrantQuery class
    • TokyoTyrantQuery::addCond — Adds a condition to the query
    • TokyoTyrantQuery::__construct — Construct a new query
    • TokyoTyrantQuery::count — Counts records
    • TokyoTyrantQuery::current — Returns the current element
    • TokyoTyrantQuery::hint — Get the hint string of the query
    • TokyoTyrantQuery::key — Returns the current key
    • TokyoTyrantQuery::metaSearch — Retrieve records with multiple queries
    • TokyoTyrantQuery::next — Moves the iterator to next entry
    • TokyoTyrantQuery::out — Removes records based on query
    • TokyoTyrantQuery::rewind — Rewinds the iterator
    • TokyoTyrantQuery::search — Searches records
    • TokyoTyrantQuery::setLimit — Limit results
    • TokyoTyrantQuery::setOrder — Orders results
    • TokyoTyrantQuery::valid — Checks the validity of current item
  • TokyoTyrantIterator — The TokyoTyrantIterator class
    • TokyoTyrantIterator::__construct — Construct an iterator
    • TokyoTyrantIterator::current — Get the current value
    • TokyoTyrantIterator::key — Returns the current key
    • TokyoTyrantIterator::next — Move to next key
    • TokyoTyrantIterator::rewind — Rewinds the iterator
    • TokyoTyrantIterator::valid — Rewinds the iterator
  • TokyoTyrantException — The TokyoTyrantException class


Введение

tokyo_tyrant extension provides a wrapper for Tokyo Tyrant client libraries. The extension contains the normal key-value API and the table API.

"Tokyo Tyrant is a package of network interface to the DBM called Tokyo Cabinet. Though the DBM has high performance, you might bother in case that multiple processes share the same database, or remote processes access the database. Thus, Tokyo Tyrant is provided for concurrent and remote connections to Tokyo Cabinet. It is composed of the server process managing a database and its access library for client applications." --Tokyo Tyrant documentation

Tokyo Tyrant is written by Mikio Hirabayashi and is licensed under GNU Lesser General Public License.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Before using this extension Tokyo Cabinet and Tokyo Tyrant must be installed.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/tokyo_tyrant

Configure options

  • --with-tokyo-tyrant[=DIR] DIR is the prefix to the Tokyo Tyrant installation
  • --with-tokyo-cabinet-dir[=DIR] DIR is the prefix to the Tokyo Cabinet installation
  • --disable-tokyo-tyrant-session Disable Tokyo Tyrant session handler support

Enabling the extension

The extension can be enabled by adding extension=tokyo_tyrant.so to the INI-configuration

Running Tokyo Tyrant for the session handler

ttserver -port 2000 -ext /path/to/expire.lua -extpc expire 30.0 '/tmp/sessions.tct#idx=ts:dec'

Замечание: expire.lua is included in the tokyo_tyrant extension source distribution

Configuring session handler

  • tokyo_tyrant.session_salt="randomlongstring"
  • session.save_handler=tokyo_tyrant
  • session.save_path="tcp://hostname1:2000,tcp://hostname2:2000"

Замечание: It is important to make sure that tokyo_tyrant.session_salt matches on all servers.

How it works?

The session handler creates a session id like the following: 8b0e27a823fa4a6cf7246945b82c1d51-a5eadbbed1f2075952900628456bfd6830541629-0-5460

The parts from left to right:

  • Session id - Generated session id
  • Checksum - Checksum of session salt, session id, node id and primary key
  • Node id - The id of the node where the session maps to
  • Primary key - The primary key of the row where the session is stored

The checksum contains SHA1 sum of the node id, primary key, session id and the salt which is known only on the server side. This allows quick mapping of session id to node and primary key since there is no need to do an additional search. During session id regeneration only the parts 1 and 2 change but the mapping to the node and primary key stays constant.

In case some of the nodes fail tokyo_tyrant.allow_failover, tokyo_tyrant.fail_threshold and tokyo_tyrant.health_check_divisor INI-settings control the behavior during failover. If failover is allowed the session handler will map the session to a healthy node and creates a new empty session.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

tokyo_tyrant Опции настройки
Имя | По умолчанию | Место изменения | Список изменений
tokyo_tyrant.default_timeout | 2.0 | PHP_INI_ALL |
tokyo_tyrant.session_salt | NULL | PHP_INI_ALL |
tokyo_tyrant.key_prefix | NULL | PHP_INI_ALL |
tokyo_tyrant.allow_failover | 1 | PHP_INI_ALL |
tokyo_tyrant.fail_threshold | 5 | PHP_INI_ALL |
tokyo_tyrant.health_check_divisor | 1000 | PHP_INI_ALL |
tokyo_tyrant.php_expiration | 0 | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

tokyo_tyrant.default_timeout integer

Default timeout when connecting to databases

tokyo_tyrant.session_salt string

The secret that is used to salt session id

tokyo_tyrant.key_prefix string

Prefix all keys with this string. The prefix is transparent to the developer but helps making sure that keys won't collide if multiple applications are using the same database.

tokyo_tyrant.allow_failover integer

Whether to allow session failover in case a server dies.

tokyo_tyrant.fail_threshold integer

How many read/write or connection failures is allowed before server is marked as failed.

tokyo_tyrant.health_check_divisor integer

Defines the divisor for the health check probability. If there are failed servers and the probability matches, the servers are health checked and in case the server seems healthy, it will be added back to the pool.

tokyo_tyrant.php_expiration integer

Whether to use built in session expiration mechanism or delegate the expiration to a lua-script on the server-side.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • tokyo_tyrant
  • Предопределенные константы

Предопределенные константы

TokyoTyrant constants


Примеры

Basic usage

Пример #1 Putting and getting a key-value pair

<?php
$tt = new TokyoTyrant("localhost");
$tt->put("key", "value");
echo $tt->get("key");
?>

Результат выполнения данного примера:

value


The TokyoTyrant class

(PECL tokyo_tyrant >= 0.1.0)

Введение

The main Tokyo Tyrant class

Обзор классов

TokyoTyrant {
/* Константы */
const integer RDBDEF_PORT = 1978 ;
const integer RDBQC_STREQ = 0 ;
const integer RDBQC_STRINC = 1 ;
const integer RDBQC_STRBW = 2 ;
const integer RDBQC_STREW = 3 ;
const integer RDBQC_STRAND = 4 ;
const integer RDBQC_STROR = 5 ;
const integer RDBQC_STROREQ = 6 ;
const integer RDBQC_STRRX = 7 ;
const integer RDBQC_NUMEQ = 8 ;
const integer RDBQC_NUMGT = 9 ;
const integer RDBQC_NUMGE = 10 ;
const integer RDBQC_NUMLT = 11 ;
const integer RDBQC_NUMLE = 12 ;
const integer RDBQC_NUMBT = 13 ;
const integer RDBQC_NUMOREQ = 14 ;
const integer RDBQC_NEGATE = 16777216 ;
const integer RDBQC_NOIDX = 33554432 ;
const integer RDBQO_STRASC = 0 ;
const integer RDBQO_STRDESC = 1 ;
const integer RDBQO_NUMASC = 2 ;
const integer RDBQO_NUMDESC = 3 ;
const integer RDBIT_LEXICAL = 0 ;
const integer RDBIT_DECIMAL = 1 ;
const integer RDBIT_TOKEN = 2 ;
const integer RDBIT_QGRAM = 3 ;
const integer RDBIT_OPT = 9998 ;
const integer RDBIT_VOID = 9999 ;
const integer RDBIT_KEEP = 16777216 ;
const integer RDBQCFTS_PH = 15 ;
const integer RDBQCFTS_AND = 16 ;
const integer RDBQCFTS_OR = 17 ;
const integer RDBQCFTS_EX = 18 ;
const integer RDBXO_LCKREC = 1 ;
const integer RDBXOLCK_GLB = 2 ;
const integer RDBREC_INT = 1 ;
const integer RDBREC_DBL = 2 ;
const integer RDBMS_UNION = 0 ;
const integer RDBMS_ISECT = 1 ;
const integer RDBMS_DIFF = 2 ;
const integer RDBT_RECON = 1 ;
/* Методы */
public add ( string $key , number $increment [, int $type = 0 ] ) : number
public connect ( string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]] ) : TokyoTyrant
public connectUri ( string $uri ) : TokyoTyrant
public __construct ([ string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]]] )
public copy ( string $path ) : TokyoTyrant
public ext ( string $name , int $options , string $key , string $value ) : string
public fwmKeys ( string $prefix , int $max_recs ) : array
public get ( mixed $keys ) : mixed
public getIterator ( void ) : TokyoTyrantIterator
public num ( void ) : int
public out ( mixed $keys ) : TokyoTyrant
public put ( mixed $keys [, string $value = NULL ] ) : TokyoTyrant
public putCat ( mixed $keys [, string $value ] ) : TokyoTyrant
public putKeep ( mixed $keys [, string $value ] ) : TokyoTyrant
public putNr ( mixed $keys [, string $value = NULL ] ) : TokyoTyrant
public putShl ( string $key , string $value , int $width ) : mixed
public restore ( string $log_dir , int $timestamp [, bool $check_consistency = TRUE ] ) : mixed
public setMaster ( string $host , int $port , int $timestamp [, bool $check_consistency = TRUE ] ) : mixed
public size ( string $key ) : int
public stat ( void ) : array
public sync ( void ) : mixed
public tune ( float $timeout [, int $options = TokyoTyrant::RDBT_RECON ] ) : TokyoTyrant
public vanish ( void ) : mixed
}

Предопределенные константы

TokyoTyrant Constants

TokyoTyrant::RDBDEF_PORT

The default port of the Tokyo Tyrant database

TokyoTyrant::RDBQC_STREQ

string is equal to

TokyoTyrant::RDBQC_STRINC

string is included in

TokyoTyrant::RDBQC_STRBW

string begins with

TokyoTyrant::RDBQC_STREW

string ends with

TokyoTyrant::RDBQC_STRAND

string includes all tokens in

TokyoTyrant::RDBQC_STROR

string includes at least one token in

TokyoTyrant::RDBQC_STROREQ

string is equal to at least one token in

TokyoTyrant::RDBQC_STRRX

string matches regular expressions of

TokyoTyrant::RDBQC_NUMEQ

number is equal to

TokyoTyrant::RDBQC_NUMGT

number is greater than

TokyoTyrant::RDBQC_NUMGE

number is greater than or equal to

TokyoTyrant::RDBQC_NUMLT

number is less than

TokyoTyrant::RDBQC_NUMLE

number is less than or equal to

TokyoTyrant::RDBQC_NUMBT

number is between two tokens of

TokyoTyrant::RDBQC_NUMOREQ

number is equal to at least one token in

TokyoTyrant::RDBQC_NEGATE

negation flag

TokyoTyrant::RDBQC_NOIDX

no index flag

TokyoTyrant::RDBQO_STRASC

string ascending

TokyoTyrant::RDBQO_STRDESC

string descending

TokyoTyrant::RDBQO_NUMASC

number ascending

TokyoTyrant::RDBQO_NUMDESC

number descending

TokyoTyrant::RDBIT_LEXICAL

lexical string

TokyoTyrant::RDBIT_DECIMAL

decimal string

TokyoTyrant::RDBIT_TOKEN

token inverted index (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBIT_QGRAM

QGRAM inverted index (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBIT_OPT

optimize

TokyoTyrant::RDBIT_VOID

void

TokyoTyrant::RDBIT_KEEP

keep existing index

TokyoTyrant::RDBQCFTS_PH

full-text search with the phrase of (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_AND

full-text search with all tokens in (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_OR

full-text search with at least one token in (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_EX

full-text search with the compound expression of (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_AND

Metasearch union between records (Tokyo Tyrant >= 1.1.33)

TokyoTyrant::RDBQCFTS_OR

Metasearch intersection between records (Tokyo Tyrant >= 1.1.33)

TokyoTyrant::RDBQCFTS_EX

Metasearch difference between records (Tokyo Tyrant >= 1.1.33)

TokyoTyrant::RDBT_RECON

Whether to reconnect on connection failure. It is recommended to have this parameter on for persistent connections

TokyoTyrant::RDBXOLCK_REC

record locking

TokyoTyrant::RDBXOLCK_GLB

global locking

TokyoTyrant::RDBREC_INT

record type int

TokyoTyrant::RDBREC_DBL

record type float (double)

TokyoTyrant::TTE_SUCCESS

success

TokyoTyrant::TTE_INVALID

invalid operation

TokyoTyrant::TTE_NOHOST

host not found

TokyoTyrant::TTE_REFUSED

connection refused

TokyoTyrant::TTE_SEND

send error

TokyoTyrant::TTE_RECV

recv error

TokyoTyrant::TTE_KEEP

record exist

TokyoTyrant::TTE_NOREC

no record found

TokyoTyrant::TTE_MISC

miscellaneous error

Содержание

  • TokyoTyrant::add — Adds to a numeric key
  • TokyoTyrant::connect — Connect to a database
  • TokyoTyrant::connectUri — Connects to a database
  • TokyoTyrant::__construct — Construct a new TokyoTyrant object
  • TokyoTyrant::copy — Copies the database
  • TokyoTyrant::ext — Execute a remote script
  • TokyoTyrant::fwmKeys — Returns the forward matching keys
  • TokyoTyrant::get — The get purpose
  • TokyoTyrant::getIterator — Get an iterator
  • TokyoTyrant::num — Number of records in the database
  • TokyoTyrant::out — Removes records
  • TokyoTyrant::put — Puts values
  • TokyoTyrant::putCat — Concatenates to a record
  • TokyoTyrant::putKeep — Puts a record
  • TokyoTyrant::putNr — Puts value
  • TokyoTyrant::putShl — Concatenates to a record
  • TokyoTyrant::restore — Restore the database
  • TokyoTyrant::setMaster — Set the replication master
  • TokyoTyrant::size — Returns the size of the value
  • TokyoTyrant::stat — Get statistics
  • TokyoTyrant::sync — Synchronize the database
  • TokyoTyrant::tune — Tunes connection values
  • TokyoTyrant::vanish — Empties the database


Adds to a numeric key

  • « TokyoTyrant
  • TokyoTyrant::connect »
  • PHP Manual
  • TokyoTyrant
  • Adds to a numeric key

TokyoTyrant::add

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::add — Adds to a numeric key

Описание

public TokyoTyrant::add ( string $key , number $increment [, int $type = 0 ] ) : number

Adds to an int or double value. This increments the value by the given amount and returns the new value. If the key does not exist a new key is created with initial value of the increment parameter.

Список параметров

key

The string key

increment

The amount to increment

type

TokyoTyrant::RDBREC_INT or TokyoTyrant::RDBREC_DBL constant. If this parameter is omitted the type is guessed from the increment parameters type.

Возвращаемые значения

Returns the new value on success

Примеры

Пример #1 TokyoTyrant::add() example

<?php
$tt = new TokyoTyrant("localhost", TokyoTyrant::RDBDEF_PORT);
/* Adds integer 3 to key and creates a new key */
$tt->add("test", 3);

/* String value is converted to double */
echo $tt->add("test", "3.5", TokyoTyrant::RDBREC_DBL);
?>

Результатом выполнения данного примера будет что-то подобное:

6.5

Смотрите также

  • TokyoTyrant::put() - Puts values
  • TokyoTyrant::putcat() - Concatenates to a record
  • TokyoTyrant::putkeep() - Puts a record


Connect to a database

  • « TokyoTyrant::add
  • TokyoTyrant::connectUri »
  • PHP Manual
  • TokyoTyrant
  • Connect to a database

TokyoTyrant::connect

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::connect — Connect to a database

Описание

public TokyoTyrant::connect ( string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]] ) : TokyoTyrant

Connects to a remote database

Список параметров

host

The hostname

port

The port. Default: 1978

options

Connection options: timeout (default: 5.0), reconnect (default: TRUE) and persistent (default: TRUE)

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::connect() example

<?php
$tt = new TokyoTyrant();
$tt->connect("localhost", TokyoTyrant::RDBDEF_PORT)->put("test", "value");
?>

Смотрите также

  • TokyoTyrant::connectUri() - Connects to a database


Connects to a database

  • « TokyoTyrant::connect
  • TokyoTyrant::__construct »
  • PHP Manual
  • TokyoTyrant
  • Connects to a database

TokyoTyrant::connectUri

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::connectUri — Connects to a database

Описание

public TokyoTyrant::connectUri ( string $uri ) : TokyoTyrant

Connects to a database using an uri

Список параметров

uri

An URI to the database. For example tcp://localhost:1979/

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::connectUri() example

<?php
$tt = new TokyoTyrant();
$tt->connectUri("tcp://localhost:1978/")->put("test", "hi");
?>

Смотрите также

  • TokyoTyrant::connect() - Connect to a database


Construct a new TokyoTyrant object

  • « TokyoTyrant::connectUri
  • TokyoTyrant::copy »
  • PHP Manual
  • TokyoTyrant
  • Construct a new TokyoTyrant object

TokyoTyrant::__construct

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::__construct — Construct a new TokyoTyrant object

Описание

public TokyoTyrant::__construct ([ string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]]] )

Constructs a new TokyoTyrant object and optionally connects to the database

Список параметров

host

The hostname. Default: NULL

port

port number. Default: 1978

options

Connection options: timeout (default: 5.0), reconnect (default: TRUE) and persistent (default: TRUE)

Возвращаемые значения

Throws TokyoTyrantException if connection to database fails

Смотрите также

  • TokyoTyrant::connect() - Connect to a database
  • TokyoTyrant::connectUri() - Connects to a database


Copies the database

  • « TokyoTyrant::__construct
  • TokyoTyrant::ext »
  • PHP Manual
  • TokyoTyrant
  • Copies the database

TokyoTyrant::copy

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::copy — Copies the database

Описание

public TokyoTyrant::copy ( string $path ) : TokyoTyrant

Makes a copy of the current database

Список параметров

path

Path to where to copy the database. The user running the remote database must have a write access to the directory.

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::copy() example

<?php
$tt = new TokyoTyrant("localhost", 1978);
$tt->copy("/tmp/foobar.tct");
?>

Смотрите также

  • TokyoTyrant::restore() - Restore the database


Execute a remote script

  • « TokyoTyrant::copy
  • TokyoTyrant::fwmKeys »
  • PHP Manual
  • TokyoTyrant
  • Execute a remote script

TokyoTyrant::ext

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::ext — Execute a remote script

Описание

public TokyoTyrant::ext ( string $name , int $options , string $key , string $value ) : string

Executes a remote script extension.

Список параметров

name

Name of the function to execute

options

Either TokyoTyrant::RDBXO_LCKREC for record locking and TokyoTyrant::RDBXO_LCKGLB for global locking.

key

The key to pass to the function

value

The value to pass to the function

Возвращаемые значения

Returns the result of the script function

Примеры

Пример #1 TokyoTyrant::ext() example

<?php
$tt = new TokyoTyrant("localhost", 1978);
echo $tt->ext("somefunc", TokyoTyrant::RDBXO_LCKREC, "some_key", "some_value");
?>


Returns the forward matching keys

  • « TokyoTyrant::ext
  • TokyoTyrant::get »
  • PHP Manual
  • TokyoTyrant
  • Returns the forward matching keys

TokyoTyrant::fwmKeys

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::fwmKeys — Returns the forward matching keys

Описание

public TokyoTyrant::fwmKeys ( string $prefix , int $max_recs ) : array

Returns the forward matching keys from the database

Список параметров

prefix

Prefix of the keys

max_recs

Maximum records to return

Возвращаемые значения

Returns an array of matching keys. The values are not returned

Примеры

Пример #1 TokyoTyrant::fwmKeys() example

<?php

$tt = new TokyoTyrant("localhost");

/* Create 20 macthing keys */
for ($i = 0; $i < 20; $i++) {
    $tt->put("key_" . $i, "value_" . $i);
}

/* Create 20 non-macthing keys */
for ($i = 0; $i < 20; $i++) {
    $tt->put("something_" . $i, "data_" . $i);
}

/* Get five matching keys */
var_dump($tt->fwmKeys("key_", 5));
?>

Результатом выполнения данного примера будет что-то подобное:

array(5) {
  [0]=>
  string(5) "key_5"
  [1]=>
  string(6) "key_14"
  [2]=>
  string(5) "key_6"
  [3]=>
  string(6) "key_15"
  [4]=>
  string(5) "key_7"
}


The get purpose

  • « TokyoTyrant::fwmKeys
  • TokyoTyrant::getIterator »
  • PHP Manual
  • TokyoTyrant
  • The get purpose

TokyoTyrant::get

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::get — The get purpose

Описание

public TokyoTyrant::get ( mixed $keys ) : mixed

This method is used to return a value or multiple values. This method accepts a string or an array as a value.

Список параметров

keys

A string key or an array of string keys

Возвращаемые значения

Returns a string or an array based on the given parameters. Throws a TokyoTyrantException on error. If string is passed null is returned if the key is not found. In case an array is given as an parameter only existing keys will be returned. It is not an error to pass a key that does not exist.

Примеры

Пример #1 TokyoTyrant::get() example

<?php
$tt = new TokyoTyrant("localhost", 1978);
$tt->put("key1", "value1");
$tt->put("key2", "value2");
var_dump($tt->get(array("key1", "key2")));
var_dump($tt->get("key1"));
?>

Результат выполнения данного примера:

array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key2"]=>
  string(6) "value2"
}
string(6) "value1"

Смотрите также

  • TokyoTyrant::put() - Puts values


Get an iterator

  • « TokyoTyrant::get
  • TokyoTyrant::num »
  • PHP Manual
  • TokyoTyrant
  • Get an iterator

TokyoTyrant::getIterator

(Информация о версии неизвестна, возможно, только в Git)

TokyoTyrant::getIterator — Get an iterator

Описание

public TokyoTyrant::getIterator ( void ) : TokyoTyrantIterator

Gets an iterator for iterating all keys / values in the database.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This method returns TokyoTyrantIterator object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::getIterator() example

<?php
$tt = new TokyoTyrant("localhost");
$it = $tt->getIterator();

foreach ($it as $k => $v) {

}
?>

Смотрите также

  • TokyoTyrantTable::getQuery() - Get a query object
  • TokyoTyrantTable::getIterator() - Get an iterator


Number of records in the database

  • « TokyoTyrant::getIterator
  • TokyoTyrant::out »
  • PHP Manual
  • TokyoTyrant
  • Number of records in the database

TokyoTyrant::num

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::num — Number of records in the database

Описание

public TokyoTyrant::num ( void ) : int

Returns the number of records in the database

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns number of records in the database

Примеры

Пример #1 TokyoTyrant::num() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Echo the number of records */
echo $tt->num();
?>

Результатом выполнения данного примера будет что-то подобное:

1234

Смотрите также

  • TokyoTyrant::stat() - Get statistics


Removes records

  • « TokyoTyrant::num
  • TokyoTyrant::put »
  • PHP Manual
  • TokyoTyrant
  • Removes records

TokyoTyrant::out

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::out — Removes records

Описание

public TokyoTyrant::out ( mixed $keys ) : TokyoTyrant

Removes a record or multiple records. This method accepts a string for a single key or an array of keys for multiple records.

Список параметров

keys

A string key or an array of string keys

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::out() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

$tt->put("test1", "value1");
$tt->put("test2", "value2");

$tt->out(array("test1", "test2"));
?>

Смотрите также

  • TokyoTyrant::put() - Puts values


Puts values

  • « TokyoTyrant::out
  • TokyoTyrant::putCat »
  • PHP Manual
  • TokyoTyrant
  • Puts values

TokyoTyrant::put

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::put — Puts values

Описание

public TokyoTyrant::put ( mixed $keys [, string $value = NULL ] ) : TokyoTyrant

Puts a key-value pair into the database or multiple key-value pairs. If keys is string then the second parameter value defines the value. The second parameter is mandatory if keys is a string. If the key exists the value will be replaced with new value.

Список параметров

keys

A string key or an array of key-value pairs

value

The value in case a string key is used

Возвращаемые значения

This method returns a reference to the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::put() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Put single key-value pair */
$tt->put("key", "value");

/* Put key-value pairs, new value overwrites the old */
$tt->put(array("key1" => "value1", "key" => "value2"));

/* Get back one key */
echo $tt->get("key");
?>

Результат выполнения данного примера:

value2

Смотрите также

  • TokyoTyrant::putKeep() - Puts a record
  • TokyoTyrant::putCat() - Concatenates to a record


Concatenates to a record

  • « TokyoTyrant::put
  • TokyoTyrant::putKeep »
  • PHP Manual
  • TokyoTyrant
  • Concatenates to a record

TokyoTyrant::putCat

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putCat — Concatenates to a record

Описание

public TokyoTyrant::putCat ( mixed $keys [, string $value ] ) : TokyoTyrant

Appends a value into existing key or multiple values if keys is an array. The second parameter is mandatory if keys is a string. If the record does not exist a new record is created.

Список параметров

keys

A string key or an array of key-value pairs

value

The value in case a string key is used

Возвращаемые значения

This method returns a reference to the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::putCat() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Create a new key */
$tt->put("key", "value");

/* Concatenate single key-value pair */
$tt->putCat("key", " has more data");

/* Echo the key */
echo $tt->get("key");
?>

Результат выполнения данного примера:

value has more data

Смотрите также

  • TokyoTyrant::put() - Puts values
  • TokyoTyrant::putKeep() - Puts a record


Puts a record

  • « TokyoTyrant::putCat
  • TokyoTyrant::putNr »
  • PHP Manual
  • TokyoTyrant
  • Puts a record

TokyoTyrant::putKeep

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putKeep — Puts a record

Описание

public TokyoTyrant::putKeep ( mixed $keys [, string $value ] ) : TokyoTyrant

Puts a key-value pair into the database or multiple key-value pairs. If keys is string then the second parameter value defines the value. The second parameter is mandatory if keys is a string. If the key already exists this method throws an exception indicating that the records exists.

Список параметров

keys

A string key or an array of key-value pairs

value

The string value

Возвращаемые значения

This method returns a reference to the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 tokyotyrant::putKeep() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Create a new key */
$tt->put("key", "value");

try {
    $tt->putKeep("key", "new value");
} catch (TokyoTyrantException $e) {
    if ($e->getCode() === TokyoTyrant::TTE_KEEP) {
        echo "Existing record! Not modified\n";
    } else {
        echo "Error: " , $e->getMessage() , "\n";
    }
}
echo $tt->get("key");
?>

Результат выполнения данного примера:

Existing record! Not modified
value

Смотрите также

  • TokyoTyrant::put() - Puts values
  • TokyoTyrant::putCat() - Concatenates to a record


Puts value

  • « TokyoTyrant::putKeep
  • TokyoTyrant::putShl »
  • PHP Manual
  • TokyoTyrant
  • Puts value

TokyoTyrant::putNr

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putNr — Puts value

Описание

public TokyoTyrant::putNr ( mixed $keys [, string $value = NULL ] ) : TokyoTyrant

Puts a key-value pair into the database or multiple key-value pairs. If keys is string then the second parameter value defines the value. The second parameter is mandatory if keys is a string. This method does not wait for the response from the server.

Список параметров

keys

A string key or an array of key-value pairs

value

The value in case a string key is used

Возвращаемые значения

This method returns a reference to the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::putNr() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Put single key-value pair */
$tt->putNr("key", "value");

/* Put key-value pairs */
$tt->putNr(array("key1" => "value1", "key2" => "value2"));

/* Get back one key */
echo $tt->get("key1");
?>

Результат выполнения данного примера:

value1

Смотрите также

  • TokyoTyrant::putNr()
  • TokyoTyrant::putKeep() - Puts a record
  • TokyoTyrant::putCat() - Concatenates to a record


Concatenates to a record

  • « TokyoTyrant::putNr
  • TokyoTyrant::restore »
  • PHP Manual
  • TokyoTyrant
  • Concatenates to a record

TokyoTyrant::putShl

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putShl — Concatenates to a record

Описание

public TokyoTyrant::putShl ( string $key , string $value , int $width ) : mixed

Concatenate to a record and shift to left.

Список параметров

key

A string key

value

The value to concatenate

width

The width of the record

Возвращаемые значения

This method returns a reference to the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::putShl() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Create a new key */
$tt->put("key", "just a long piece of data");

/* Concatenate and shift to left */
$tt->putShl("key", " and string", 15);

/* Echo the key */
echo $tt->get("key");
?>

Результат выполнения данного примера:

data and string

Смотрите также

  • TokyoTyrant::put() - Puts values
  • TokyoTyrant::putKeep() - Puts a record
  • TokyoTyrant::putCat() - Concatenates to a record


Restore the database

  • « TokyoTyrant::putShl
  • TokyoTyrant::setMaster »
  • PHP Manual
  • TokyoTyrant
  • Restore the database

TokyoTyrant::restore

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::restore — Restore the database

Описание

public TokyoTyrant::restore ( string $log_dir , int $timestamp [, bool $check_consistency = TRUE ] ) : mixed

Restore the database from the update log.

Внимание

This method is not supported on 32bit platforms.

Список параметров

log_dir

Directory where the log is

timestamp

Beginning timestamp with microseconds

check_consistency

Whether to check consistency: Default: TRUE

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.


Set the replication master

  • « TokyoTyrant::restore
  • TokyoTyrant::size »
  • PHP Manual
  • TokyoTyrant
  • Set the replication master

TokyoTyrant::setMaster

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::setMaster — Set the replication master

Описание

public TokyoTyrant::setMaster ( string $host , int $port , int $timestamp [, bool $check_consistency = TRUE ] ) : mixed

Sets the replication master of the database

Внимание

This method is not supported on 32bit platforms.

Список параметров

host

Hostname of the replication master. If NULL the replication is disabled.

port

Port of the replication master

timestamp

Beginning timestamp with microseconds

check_consistency

Whether to check consistency.

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::setMaster() example

<?php
/* Connect to a database */
$tt = new TokyoTyrant("tokyotyrant.example.com");

/* Disable the replication */
$tt->setMaster(NULL, 0, 0);
?>

Смотрите также

  • Classname::Method()


Returns the size of the value

  • « TokyoTyrant::setMaster
  • TokyoTyrant::stat »
  • PHP Manual
  • TokyoTyrant
  • Returns the size of the value

TokyoTyrant::size

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::size — Returns the size of the value

Описание

public TokyoTyrant::size ( string $key ) : int

Returns the size of a value by key

Список параметров

key

The key of which size to fetch

Возвращаемые значения

Returns the size of the key or throw TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrant::size() example

<?php
$tt = new TokyoTyrant("localhost");

$tt->put("test_key", "12345");

echo $tt->size("test_key");
?>

Результат выполнения данного примера:

5


Get statistics

  • « TokyoTyrant::size
  • TokyoTyrant::sync »
  • PHP Manual
  • TokyoTyrant
  • Get statistics

TokyoTyrant::stat

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::stat — Get statistics

Описание

public TokyoTyrant::stat ( void ) : array

Returns statistics of the remote database

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array of key value pairs describing the statistics

Примеры

Пример #1 TokyoTyrant::stat() example

<?php
$tt = new TokyoTyrant("localhost");

var_dump($tt->stat());
?>

Результатом выполнения данного примера будет что-то подобное:

array(19) {
  ["version"]=>
  string(6) "1.1.28"
  ["libver"]=>
  string(3) "311"
  ["protver"]=>
  string(4) "0.91"
  ["os"]=>
  string(5) "Linux"
  ["time"]=>
  string(17) "1247358357.665630"
  ["pid"]=>
  string(5) "14348"
  ["sid"]=>
  string(8) "59025947"
  ["type"]=>
  string(9) "on-memory"
  ["path"]=>
  string(1) "*"
  ["rnum"]=>
  string(1) "4"
  ["size"]=>
  string(6) "262856"
  ["bigend"]=>
  string(1) "0"
  ["fd"]=>
  string(1) "5"
  ["loadavg"]=>
  string(8) "0.000000"
  ["memsize"]=>
  string(8) "77328384"
  ["memrss"]=>
  string(7) "1183744"
  ["ru_real"]=>
  string(13) "162776.042152"
  ["ru_user"]=>
  string(8) "0.476029"
  ["ru_sys"]=>
  string(8) "8.652540"
}

Смотрите также

  • Classname::Method()


Synchronize the database

  • « TokyoTyrant::stat
  • TokyoTyrant::tune »
  • PHP Manual
  • TokyoTyrant
  • Synchronize the database

TokyoTyrant::sync

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::sync — Synchronize the database

Описание

public TokyoTyrant::sync ( void ) : mixed

Synchronizes the database on to the physical device

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.


Tunes connection values

  • « TokyoTyrant::sync
  • TokyoTyrant::vanish »
  • PHP Manual
  • TokyoTyrant
  • Tunes connection values

TokyoTyrant::tune

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrant::tune — Tunes connection values

Описание

public TokyoTyrant::tune ( float $timeout [, int $options = TokyoTyrant::RDBT_RECON ] ) : TokyoTyrant

Tunes database connection options.

Список параметров

timeout

The objects timeout value (default: 5.0)

options

Bitmask of options to tune. This can be either 0 or TokyoTyrant::RDBT_RECON. It is recommended not to change the second parameter.

Возвращаемые значения

This method returns a reference to the current object and throws TokyoTyrantException on failure.


Empties the database

  • « TokyoTyrant::tune
  • TokyoTyrantTable »
  • PHP Manual
  • TokyoTyrant
  • Empties the database

TokyoTyrant::vanish

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::vanish — Empties the database

Описание

public TokyoTyrant::vanish ( void ) : mixed

Empties a remote database

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::vanish() example

<?php
$tt = new TokyoTyrant("localhost");
$tt->vanish();
?>

Смотрите также

  • TokyoTyrant::out() - Removes records


The TokyoTyrantTable class

(PECL tokyo_tyrant >= 0.1.0)

Введение

Provides an API to the table databases. A table database can be create using the following command: ttserver -port 1979 /tmp/tt_table.tct. In Tokyo Tyrant the table API is a schemaless database which can store arbitrary amount of key-value pairs under a single primary key.

Обзор классов

TokyoTyrantTable extends TokyoTyrant {
/* Методы */
public add ( string $key , mixed $increment [, string $type ] ) : void
public genUid ( void ) : int
public get ( mixed $keys ) : array
public getIterator ( void ) : TokyoTyrantIterator
public getQuery ( void ) : TokyoTyrantQuery
public out ( mixed $keys ) : void
public put ( string $key , array $columns ) : int
public putCat ( string $key , array $columns ) : void
public putKeep ( string $key , array $columns ) : void
public putNr ( mixed $keys [, string $value ] ) : void
public putShl ( string $key , string $value , int $width ) : void
public setIndex ( string $column , int $type ) : mixed
/* Наследуемые методы */
public TokyoTyrant::add ( string $key , number $increment [, int $type = 0 ] ) : number
public TokyoTyrant::connect ( string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]] ) : TokyoTyrant
public TokyoTyrant::connectUri ( string $uri ) : TokyoTyrant
public TokyoTyrant::__construct ([ string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]]] )
public TokyoTyrant::copy ( string $path ) : TokyoTyrant
public TokyoTyrant::ext ( string $name , int $options , string $key , string $value ) : string
public TokyoTyrant::fwmKeys ( string $prefix , int $max_recs ) : array
public TokyoTyrant::get ( mixed $keys ) : mixed
public TokyoTyrant::getIterator ( void ) : TokyoTyrantIterator
public TokyoTyrant::num ( void ) : int
public TokyoTyrant::out ( mixed $keys ) : TokyoTyrant
public TokyoTyrant::put ( mixed $keys [, string $value = NULL ] ) : TokyoTyrant
public TokyoTyrant::putCat ( mixed $keys [, string $value ] ) : TokyoTyrant
public TokyoTyrant::putKeep ( mixed $keys [, string $value ] ) : TokyoTyrant
public TokyoTyrant::putNr ( mixed $keys [, string $value = NULL ] ) : TokyoTyrant
public TokyoTyrant::putShl ( string $key , string $value , int $width ) : mixed
public TokyoTyrant::restore ( string $log_dir , int $timestamp [, bool $check_consistency = TRUE ] ) : mixed
public TokyoTyrant::setMaster ( string $host , int $port , int $timestamp [, bool $check_consistency = TRUE ] ) : mixed
public TokyoTyrant::size ( string $key ) : int
public TokyoTyrant::stat ( void ) : array
public TokyoTyrant::sync ( void ) : mixed
public TokyoTyrant::tune ( float $timeout [, int $options = TokyoTyrant::RDBT_RECON ] ) : TokyoTyrant
public TokyoTyrant::vanish ( void ) : mixed
}

Содержание

  • TokyoTyrantTable::add — Adds a record
  • TokyoTyrantTable::genUid — Generate unique id
  • TokyoTyrantTable::get — Get a row
  • TokyoTyrantTable::getIterator — Get an iterator
  • TokyoTyrantTable::getQuery — Get a query object
  • TokyoTyrantTable::out — Remove records
  • TokyoTyrantTable::put — Store a row
  • TokyoTyrantTable::putCat — Concatenates to a row
  • TokyoTyrantTable::putKeep — Put a new record
  • TokyoTyrantTable::putNr — Puts value
  • TokyoTyrantTable::putShl — Concatenates to a record
  • TokyoTyrantTable::setIndex — Sets index


Adds a record

  • « TokyoTyrantTable
  • TokyoTyrantTable::genUid »
  • PHP Manual
  • TokyoTyrantTable
  • Adds a record

TokyoTyrantTable::add

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::add — Adds a record

Описание

public TokyoTyrantTable::add ( string $key , mixed $increment [, string $type ] ) : void

This method is not supported with table databases.

Список параметров

key

The string key

increment

The amount to increment

type

TokyoTyrant::RDB_RECINT or TokyoTyrant::RDB_RECDBL constant. If this parameter is omitted the type is guessed from the increment parameters type.

Возвращаемые значения

This method throws an TokyoTyrantException if used through this class.

Смотрите также

  • TokyoTyrant::add() - Adds to a numeric key


Generate unique id

  • « TokyoTyrantTable::add
  • TokyoTyrantTable::get »
  • PHP Manual
  • TokyoTyrantTable
  • Generate unique id

TokyoTyrantTable::genUid

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::genUid — Generate unique id

Описание

public TokyoTyrantTable::genUid ( void ) : int

Generates an unique id inside the table database. In table databases rows are referenced using a numeric primary key.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an unique id or throws TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrantTable::genUid() example

<?php
$tt = new TokyoTyrantTable("localhost", 1122);

echo $tt->genUid();
?>

Результатом выполнения данного примера будет что-то подобное:

4

Смотрите также

  • TokyoTyrantTable::put() - Store a row


Get a row

  • « TokyoTyrantTable::genUid
  • TokyoTyrantTable::getIterator »
  • PHP Manual
  • TokyoTyrantTable
  • Get a row

TokyoTyrantTable::get

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::get — Get a row

Описание

public TokyoTyrantTable::get ( mixed $keys ) : array

Gets a row from table database. keys is a single integer for the primary key of the row or an array of integers for multiple rows.

Список параметров

keys

The primary key, can be a string or an integer

Возвращаемые значения

Returns the row as an array

Примеры

Пример #1 TokyoTyrantTable::get() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Get the row back */
var_dump($tt->get($index));
?>

Результат выполнения данного примера:

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}

Примечания

Замечание:

Starting from version 0.3.0 this method accepts array as parameter. Please note that multi-get on tables is not binary-safe.

Смотрите также

  • TokyoTyrantTable::put() - Store a row


Get an iterator

  • « TokyoTyrantTable::get
  • TokyoTyrantTable::getQuery »
  • PHP Manual
  • TokyoTyrantTable
  • Get an iterator

TokyoTyrantTable::getIterator

(Информация о версии неизвестна, возможно, только в Git)

TokyoTyrantTable::getIterator — Get an iterator

Описание

public TokyoTyrantTable::getIterator ( void ) : TokyoTyrantIterator

Gets an iterator for iterating all keys / values in the database.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This method returns TokyoTyrantIterator object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrantTable::getIterator() example

<?php
$tt = new TokyoTyrantTable("localhost");
$it = $tt->getIterator();

foreach ($it as $k => $v) {
  var_dump($k, $v);
}
?>

Смотрите также

  • TokyoTyrantTable::getQuery() - Get a query object
  • TokyoTyrant::getIterator() - Get an iterator


Get a query object

  • « TokyoTyrantTable::getIterator
  • TokyoTyrantTable::out »
  • PHP Manual
  • TokyoTyrantTable
  • Get a query object

TokyoTyrantTable::getQuery

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::getQuery — Get a query object

Описание

public TokyoTyrantTable::getQuery ( void ) : TokyoTyrantQuery

Get a query object to execute searches on the database

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TokyoTyrantQuery on success and throws TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrantTable::getQuery() example

<?php
/* Connect to a table database */
$table = new TokyoTyrantTable("localhost", 1979);

/* Put a few rows */
$table->put(null, array("column1" => "some data", "column2" => "more data"));
$table->put(null, array("something" => "value", "data" => "good data"));

/* Get query object */
$query = $table->getQuery();

/* Add condition to query */
$query->addCond('data', TokyoTyrant::RDBQC_STREQ, 'good data');

/* Get matching rows */
var_dump($query->search());
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [11]=>
  array(2) {
    ["something"]=>
    string(5) "value"
    ["data"]=>
    string(9) "good data"
  }
}

Смотрите также

  • TokyoTyrantQuery::search() - Searches records
  • TokyoTyrantQuery::out() - Removes records based on query


Remove records

  • « TokyoTyrantTable::getQuery
  • TokyoTyrantTable::put »
  • PHP Manual
  • TokyoTyrantTable
  • Remove records

TokyoTyrantTable::out

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::out — Remove records

Описание

public TokyoTyrantTable::out ( mixed $keys ) : void

Removes records from a table database.

Список параметров

keys

A single integer key or an array of integers

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrantTable::out() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Delete the row */
$tt->out($index);
?>

Смотрите также

  • TokyoTyrantTable::put() - Store a row


Store a row

  • « TokyoTyrantTable::out
  • TokyoTyrantTable::putCat »
  • PHP Manual
  • TokyoTyrantTable
  • Store a row

TokyoTyrantTable::put

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::put — Store a row

Описание

public TokyoTyrantTable::put ( string $key , array $columns ) : int

Puts a new row into the database. This method parameters are key which is the primary key of the row, passing NULL will generate a new unique id. value is an array containing the row contents which is usually key value pairs.

Список параметров

key

The primary key of the row

columns

The row contents

Возвращаемые значения

Returns the primary key on success and throws TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrantTable::put() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Get the row back */
var_dump($tt->get($index));

/* Modify an existing row */
$tt->put($index, array("column1" => "other data", "column2" => "better data"));

/* Get the row back */
var_dump($tt->get($index));
?>

Результат выполнения данного примера:

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}
array(2) {
  ["column1"]=>
  string(10) "other data"
  ["column2"]=>
  string(11) "better data"
}

Смотрите также

  • TokyoTyrantTable::get() - Get a row


Concatenates to a row

  • « TokyoTyrantTable::put
  • TokyoTyrantTable::putKeep »
  • PHP Manual
  • TokyoTyrantTable
  • Concatenates to a row

TokyoTyrantTable::putCat

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putCat — Concatenates to a row

Описание

public TokyoTyrantTable::putCat ( string $key , array $columns ) : void

This method can be used to add new columns to existing records. Existing keys will be left unmodified but any new columns will be appended to the row. Passing null as key will generate a new row.

Список параметров

key

The primary key of the row or NULL

columns

Array of row contents

Возвращаемые значения

Returns the primary key and throws TokyoTyrantException on error.

Примеры

Пример #1 TokyoTyrantTable::putCat() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Get the row back */
var_dump($tt->get($index));

/* Modify an existing row */
$tt->putcat($index, array("column1" => "something new", "new_column" => "other data"));

/* Get the row back */
var_dump($tt->get($index));
?>

Результат выполнения данного примера:

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}
array(3) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
  ["new_column"]=>
  string(10) "other data"
}

Смотрите также

  • TokyoTyrantTable::put() - Store a row


Put a new record

  • « TokyoTyrantTable::putCat
  • TokyoTyrantTable::putNr »
  • PHP Manual
  • TokyoTyrantTable
  • Put a new record

TokyoTyrantTable::putKeep

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putKeep — Put a new record

Описание

public TokyoTyrantTable::putKeep ( string $key , array $columns ) : void

Puts a new record into the database. If the key already exists this method throws an exception indicating that the records exists.

Список параметров

key

The primary key of the row or NULL

columns

Array of the row contents

Возвращаемые значения

Returns the primary key and throws TokyoTyrantException on error.

Примеры

Пример #1 TokyoTyrantTable::putKeep() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Get the row back */
var_dump($tt->get($index));

try {
    $tt->putKeep($index, array("column1" => "something new", "new_column" => "other data"));
} catch (TokyoTyrantException $e) {
    if ($e->getCode() === TokyoTyrant::TTE_KEEP) {
        echo "Existing record! Not modified\n";
    } else {
        echo "Error: " , $e->getMessage() , "\n";
    }
}

/* Get the row back */
var_dump($tt->get($index));
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}
Existing record! Not modified
array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}

Смотрите также

  • TokyoTyrantTable::put() - Store a row


Puts value

  • « TokyoTyrantTable::putKeep
  • TokyoTyrantTable::putShl »
  • PHP Manual
  • TokyoTyrantTable
  • Puts value

TokyoTyrantTable::putNr

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putNr — Puts value

Описание

public TokyoTyrantTable::putNr ( mixed $keys [, string $value ] ) : void

This method is not supported on table databases. Calling this method through TokyoTyrantTable is considered an error and an TokyoTyrantException will be thrown.

Список параметров

keys

A string key or an array of key-value pairs

value

The value in case a string key is used

Возвращаемые значения

This method is not supported on table databases. Calling this method through TokyoTyrantTable is considered an error and an TokyoTyrantException will be thrown.

Смотрите также

  • TokyoTyrant::putNr() - Puts value
  • TokyoTyrant::putKeep() - Puts a record
  • TokyoTyrant::putCat() - Concatenates to a record


Concatenates to a record

  • « TokyoTyrantTable::putNr
  • TokyoTyrantTable::setIndex »
  • PHP Manual
  • TokyoTyrantTable
  • Concatenates to a record

TokyoTyrantTable::putShl

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putShl — Concatenates to a record

Описание

public TokyoTyrantTable::putShl ( string $key , string $value , int $width ) : void

This method is not supported on table databases. Calling this method through TokyoTyrantTable is considered an error and an TokyoTyrantException will be thrown.

Список параметров

key

A string key

value

The value to concatenate

width

The width of the record

Возвращаемые значения

This method is not supported on table databases.

Смотрите также

  • TokyoTyrant::put() - Puts values
  • TokyoTyrant::putKeep() - Puts a record
  • TokyoTyrant::putCat() - Concatenates to a record
  • TokyoTyrantTable::put() - Store a row
  • TokyoTyrantTable::putKeep() - Put a new record
  • TokyoTyrantTable::putCat() - Concatenates to a row


Sets index

  • « TokyoTyrantTable::putShl
  • TokyoTyrantQuery »
  • PHP Manual
  • TokyoTyrantTable
  • Sets index

TokyoTyrantTable::setIndex

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::setIndex — Sets index

Описание

public TokyoTyrantTable::setIndex ( string $column , int $type ) : mixed

Sets an index on a specified column. The index type is one of the TokyoTyrant::RDBIT_* constants. Passing TokyoTyrant::RDBIT_VOID removes the index.

Список параметров

column

The name of the column

type

The index type

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.


The TokyoTyrantQuery class

(PECL tokyo_tyrant >= 0.1.0)

Введение

This class is used to query the table databases

Обзор классов

TokyoTyrantQuery implements Iterator {
/* Методы */
public addCond ( string $name , int $op , string $expr ) : mixed
public __construct ( TokyoTyrantTable $table )
public count ( void ) : int
public current ( void ) : array
public hint ( void ) : string
public key ( void ) : string
public metaSearch ( array $queries , int $type ) : array
public next ( void ) : array
public out ( void ) : TokyoTyrantQuery
public rewind ( void ) : bool
public search ( void ) : array
public setLimit ([ int $max [, int $skip ]] ) : mixed
public setOrder ( string $name , int $type ) : mixed
public valid ( void ) : bool
}

Содержание

  • TokyoTyrantQuery::addCond — Adds a condition to the query
  • TokyoTyrantQuery::__construct — Construct a new query
  • TokyoTyrantQuery::count — Counts records
  • TokyoTyrantQuery::current — Returns the current element
  • TokyoTyrantQuery::hint — Get the hint string of the query
  • TokyoTyrantQuery::key — Returns the current key
  • TokyoTyrantQuery::metaSearch — Retrieve records with multiple queries
  • TokyoTyrantQuery::next — Moves the iterator to next entry
  • TokyoTyrantQuery::out — Removes records based on query
  • TokyoTyrantQuery::rewind — Rewinds the iterator
  • TokyoTyrantQuery::search — Searches records
  • TokyoTyrantQuery::setLimit — Limit results
  • TokyoTyrantQuery::setOrder — Orders results
  • TokyoTyrantQuery::valid — Checks the validity of current item


Adds a condition to the query

  • « TokyoTyrantQuery
  • TokyoTyrantQuery::__construct »
  • PHP Manual
  • TokyoTyrantQuery
  • Adds a condition to the query

TokyoTyrantQuery::addCond

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::addCond — Adds a condition to the query

Описание

public TokyoTyrantQuery::addCond ( string $name , int $op , string $expr ) : mixed

Adds a condition to the query. Condition can be something like: get all keys which value matches expr.

Список параметров

name

Name of the column in the condition

op

The operator. One of the TokyoTyrant::RDBQC_* constants

expr

The expression

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrantQuery::addCond() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "not here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Dump the search results */
var_dump($query->search());
?>

Результат выполнения данного примера:

array(2) {
  [1]=>
  array(2) {
    ["column1"]=>
    string(9) "some data"
    ["column2"]=>
    string(14) "something here"
  }
  [4]=>
  array(2) {
    ["column45"]=>
    string(11) "random data"
    ["column2"]=>
    string(25) "something along the lines"
  }
}

Смотрите также

  • Classname::Method()


Construct a new query

  • « TokyoTyrantQuery::addCond
  • TokyoTyrantQuery::count »
  • PHP Manual
  • TokyoTyrantQuery
  • Construct a new query

TokyoTyrantQuery::__construct

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::__construct — Construct a new query

Описание

public TokyoTyrantQuery::__construct ( TokyoTyrantTable $table )

Construct a new query object

Список параметров

table

TokyoTyrantTable object with active database connection

Возвращаемые значения

Returns a new TokyoTyrantQuery object and throws TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrantQuery::__construct() example

<?php
$tt = new TokyoTyrantTable("localhost", 1979);

$query = new TokyoTyrantQuery($tt);

/* Work with $query */
?>

Смотрите также

  • TokyoTyrantTable::getQuery() - Get a query object


Counts records

  • « TokyoTyrantQuery::__construct
  • TokyoTyrantQuery::current »
  • PHP Manual
  • TokyoTyrantQuery
  • Counts records

TokyoTyrantQuery::count

(Информация о версии неизвестна, возможно, только в Git)

TokyoTyrantQuery::count — Counts records

Описание

public TokyoTyrantQuery::count ( void ) : int

Returns a count of how many records a query returns.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a count of matching rows and throws TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrantQuery::count() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "not here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Count the results */
var_dump($query->count());
?>

Результат выполнения данного примера:

int(2)

Смотрите также

  • TokyoTyrantQuery::out() - Removes records based on query
  • TokyoTyrantQuery::search() - Searches records
  • TokyoTyrantQuery::metaSearch() - Retrieve records with multiple queries


Returns the current element

  • « TokyoTyrantQuery::count
  • TokyoTyrantQuery::hint »
  • PHP Manual
  • TokyoTyrantQuery
  • Returns the current element

TokyoTyrantQuery::current

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::current — Returns the current element

Описание

public TokyoTyrantQuery::current ( void ) : array

Returns the current element. Part of Iterator interface

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current row

Примеры

Пример #1 TokyoTyrantQuery iterator example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Iterate the results */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

pk: 1, columns: 2
pk: 4, columns: 2

Смотрите также

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Get the hint string of the query

  • « TokyoTyrantQuery::current
  • TokyoTyrantQuery::key »
  • PHP Manual
  • TokyoTyrantQuery
  • Get the hint string of the query

TokyoTyrantQuery::hint

(Информация о версии неизвестна, возможно, только в Git)

TokyoTyrantQuery::hint — Get the hint string of the query

Описание

public TokyoTyrantQuery::hint ( void ) : string

Get the hint string of the query. The hint string contains information about an executed query and it could be compared to for example MySQL EXPLAIN statement.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This method always returns a string

Примеры

Пример #1 TokyoTyrantQuery::hint example

<?php
$tt = new TokyoTyrantTable("localhost", 1979);
$tt->vanish();

for ($i = 0; $i < 11; $i++) {
     $tt->put(null, array('a_col' => 'a' . $i, 'b_col' => 'b' . $i));
}

$query = $tt->getQuery();
$query->addCond('a_col', TokyoTyrant::RDBQC_STRBW, 'a');

$query->search();
var_dump($query->hint());
?>

Результатом выполнения данного примера будет что-то подобное:

string(72) "
scanning the whole table
result set size: 11
leaving the natural order
"

Смотрите также

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Returns the current key

  • « TokyoTyrantQuery::hint
  • TokyoTyrantQuery::metaSearch »
  • PHP Manual
  • TokyoTyrantQuery
  • Returns the current key

TokyoTyrantQuery::key

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::key — Returns the current key

Описание

public TokyoTyrantQuery::key ( void ) : string

Returns the current key. Part of the Iterator interface

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current key and throws TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrantQuery iterator example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Iterate the results */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

pk: 1, columns: 2
pk: 4, columns: 2

Смотрите также

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Retrieve records with multiple queries

  • « TokyoTyrantQuery::key
  • TokyoTyrantQuery::next »
  • PHP Manual
  • TokyoTyrantQuery
  • Retrieve records with multiple queries

TokyoTyrantQuery::metaSearch

(Информация о версии неизвестна, возможно, только в Git)

TokyoTyrantQuery::metaSearch — Retrieve records with multiple queries

Описание

public TokyoTyrantQuery::metaSearch ( array $queries , int $type ) : array

Executes multiple queries on a database and returns matching records. The current object is always the left most object in the search.

Список параметров

queries

Array of TokyoTyrantQuery objects

type

One of the TokyoTyrant::RDBMS_* constants

Возвращаемые значения

Returns the matching rows and throws TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrantQuery::metaSearch() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add test data */
$tt->put('cherry',     array('color' => 'red'));
$tt->put('strawberry', array('color' => 'red'));
$tt->put('apple',      array('color' => 'green'));
$tt->put('lemon',      array('color' => 'yellow'));

/* First query */
$query = $tt->getQuery();
$query->addCond('color', TokyoTyrant::RDBQC_STREQ, 'red')->setOrder('color', TokyoTyrant::RDBQO_STRASC);

/* Second query */
$query1 = $tt->getQuery();
$query1->addCond('color', TokyoTyrant::RDBQC_STREQ, 'yellow');

/* Get union between the queries */
var_dump($query->metaSearch(array($query1), TokyoTyrant::RDBMS_UNION));
?>

Результат выполнения данного примера:

array(3) {
  ["cherry"]=>
  array(1) {
    ["color"]=>
    string(3) "red"
  }
  ["strawberry"]=>
  array(1) {
    ["color"]=>
    string(3) "red"
  }
  ["lemon"]=>
  array(1) {
    ["color"]=>
    string(6) "yellow"
  }
}

Смотрите также

  • TokyoTyrantQuery::search() - Searches records


Moves the iterator to next entry

  • « TokyoTyrantQuery::metaSearch
  • TokyoTyrantQuery::out »
  • PHP Manual
  • TokyoTyrantQuery
  • Moves the iterator to next entry

TokyoTyrantQuery::next

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::next — Moves the iterator to next entry

Описание

public TokyoTyrantQuery::next ( void ) : array

Returns the next result in the resultset. Part of the Iterator interface.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the next row and throws TokyoTyrantException on error.

Примеры

Пример #1 TokyoTyrantQuery iterator example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Iterate the results */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

pk: 1, columns: 2
pk: 4, columns: 2

Смотрите также

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Removes records based on query

  • « TokyoTyrantQuery::next
  • TokyoTyrantQuery::rewind »
  • PHP Manual
  • TokyoTyrantQuery
  • Removes records based on query

TokyoTyrantQuery::out

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::out — Removes records based on query

Описание

public TokyoTyrantQuery::out ( void ) : TokyoTyrantQuery

Removes all records that match the query. Works exactly like search but removes the records instead of returning them.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrantQuery::out() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Remove matching records */
$query->out();
?>

Смотрите также

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Rewinds the iterator

  • « TokyoTyrantQuery::out
  • TokyoTyrantQuery::search »
  • PHP Manual
  • TokyoTyrantQuery
  • Rewinds the iterator

TokyoTyrantQuery::rewind

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::rewind — Rewinds the iterator

Описание

public TokyoTyrantQuery::rewind ( void ) : bool

Rewind the resultset and executes the query if it has not been executed. Part of the Iterator interface.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE

Примеры

Пример #1 TokyoTyrantQuery iterator example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Iterate the results */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

pk: 1, columns: 2
pk: 4, columns: 2

Смотрите также

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Searches records

  • « TokyoTyrantQuery::rewind
  • TokyoTyrantQuery::setLimit »
  • PHP Manual
  • TokyoTyrantQuery
  • Searches records

TokyoTyrantQuery::search

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::search — Searches records

Описание

public TokyoTyrantQuery::search ( void ) : array

Executes a search on the table database. Returns an array of arrays containing the matching records. In the returned array the first level is the primary key of the data and the second level is the row data.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the matching rows and throws TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrantQuery::search() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "not here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Dump the search results */
var_dump($query->search());
?>

Результат выполнения данного примера:

array(2) {
  [1]=>
  array(2) {
    ["column1"]=>
    string(9) "some data"
    ["column2"]=>
    string(14) "something here"
  }
  [4]=>
  array(2) {
    ["column45"]=>
    string(11) "random data"
    ["column2"]=>
    string(25) "something along the lines"
  }
}

Смотрите также

  • TokyoTyrantQuery::out() - Removes records based on query
  • TokyoTyrantQuery::metaSearch() - Retrieve records with multiple queries


Limit results

  • « TokyoTyrantQuery::search
  • TokyoTyrantQuery::setOrder »
  • PHP Manual
  • TokyoTyrantQuery
  • Limit results

TokyoTyrantQuery::setLimit

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::setLimit — Limit results

Описание

public TokyoTyrantQuery::setLimit ([ int $max [, int $skip ]] ) : mixed

Set the maximum amount of records to return on a query.

Список параметров

max

Maximum amount of records. Default: -1

skip

How many records to skip from the start. Default: -1

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.


Orders results

  • « TokyoTyrantQuery::setLimit
  • TokyoTyrantQuery::valid »
  • PHP Manual
  • TokyoTyrantQuery
  • Orders results

TokyoTyrantQuery::setOrder

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::setOrder — Orders results

Описание

public TokyoTyrantQuery::setOrder ( string $name , int $type ) : mixed

Sets the order of a query

Список параметров

name

The column name to apply the ordering on.

type

The type can be one of the following constants:

  • TokyoTyrant::RDBQO_STRASC - String ascending
  • TokyoTyrant::RDBQO_STRDESC - String descending
  • TokyoTyrant::RDBQO_NUMASC - Numberic ascending
  • TokyoTyrant::RDBQO_NUMDESC - String descending

Возвращаемые значения

This method returns the current object.


Checks the validity of current item

  • « TokyoTyrantQuery::setOrder
  • TokyoTyrantIterator »
  • PHP Manual
  • TokyoTyrantQuery
  • Checks the validity of current item

TokyoTyrantQuery::valid

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::valid — Checks the validity of current item

Описание

public TokyoTyrantQuery::valid ( void ) : bool

Checks if the current item is valid. Part of the Iterator interface

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the current item is valid and FALSE if not.

Примеры

Пример #1 TokyoTyrantQuery iterator example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Iterate the results */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

pk: 1, columns: 2
pk: 4, columns: 2

Смотрите также

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


The TokyoTyrantIterator class

(PECL tokyo_tyrant >= 0.2.0)

Введение

Provides an iterator for TokyoTyrant and TokyoTyrantTable objects. The iterator iterates over all keys and values in the database. TokyoTyrantIterator was added in version 0.2.0.

Обзор классов

TokyoTyrantIterator implements Iterator {
/* Methods */
public __construct ( mixed $object )
public current ( void ) : mixed
public key ( void ) : mixed
public next ( void ) : mixed
public rewind ( void ) : void
public valid ( void ) : bool
/* Inherited methods */
public TokyoTyrant::add ( string $key , number $increment [, int $type = 0 ] ) : number
public TokyoTyrant::connect ( string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]] ) : TokyoTyrant
public TokyoTyrant::connectUri ( string $uri ) : TokyoTyrant
public TokyoTyrant::__construct ([ string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]]] )
public TokyoTyrant::copy ( string $path ) : TokyoTyrant
public TokyoTyrant::ext ( string $name , int $options , string $key , string $value ) : string
public TokyoTyrant::fwmKeys ( string $prefix , int $max_recs ) : array
public TokyoTyrant::get ( mixed $keys ) : mixed
public TokyoTyrant::getIterator ( void ) : TokyoTyrantIterator
public TokyoTyrant::num ( void ) : int
public TokyoTyrant::out ( mixed $keys ) : TokyoTyrant
public TokyoTyrant::put ( mixed $keys [, string $value = NULL ] ) : TokyoTyrant
public TokyoTyrant::putCat ( mixed $keys [, string $value ] ) : TokyoTyrant
public TokyoTyrant::putKeep ( mixed $keys [, string $value ] ) : TokyoTyrant
public TokyoTyrant::putNr ( mixed $keys [, string $value = NULL ] ) : TokyoTyrant
public TokyoTyrant::putShl ( string $key , string $value , int $width ) : mixed
public TokyoTyrant::restore ( string $log_dir , int $timestamp [, bool $check_consistency = TRUE ] ) : mixed
public TokyoTyrant::setMaster ( string $host , int $port , int $timestamp [, bool $check_consistency = TRUE ] ) : mixed
public TokyoTyrant::size ( string $key ) : int
public TokyoTyrant::stat ( void ) : array
public TokyoTyrant::sync ( void ) : mixed
public TokyoTyrant::tune ( float $timeout [, int $options = TokyoTyrant::RDBT_RECON ] ) : TokyoTyrant
public TokyoTyrant::vanish ( void ) : mixed
}

Содержание

  • TokyoTyrantIterator::__construct — Construct an iterator
  • TokyoTyrantIterator::current — Get the current value
  • TokyoTyrantIterator::key — Returns the current key
  • TokyoTyrantIterator::next — Move to next key
  • TokyoTyrantIterator::rewind — Rewinds the iterator
  • TokyoTyrantIterator::valid — Rewinds the iterator


Construct an iterator

  • « TokyoTyrantIterator
  • TokyoTyrantIterator::current »
  • PHP Manual
  • TokyoTyrantIterator
  • Construct an iterator

TokyoTyrantIterator::__construct

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::__construct — Construct an iterator

Описание

public TokyoTyrantIterator::__construct ( mixed $object )

Construct a new TokyoTyrantIterator object. One connection can have multiple iterators but it is not quaranteed that all items are traversed in that case. object parameter can be either an of instance TokyoTyrant or TokyoTyrantTable.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Throws an exception if iterator initialization fails.

Примеры

Пример #1 TokyoTyrantIterator::__construct() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Construct an iterator */
$it = new TokyoTyrantIterator($tt);

foreach ($it as $value) {
    var_dump($value);
}
?>

Результат выполнения данного примера:

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}

Смотрите также

  • TokyoTyrantIterator::key() - Returns the current key
  • TokyoTyrantIterator::current() - Get the current value
  • TokyoTyrantIterator::next() - Move to next key
  • TokyoTyrantIterator::rewind() - Rewinds the iterator
  • TokyoTyrantIterator::key() - Returns the current key


Get the current value

  • « TokyoTyrantIterator::__construct
  • TokyoTyrantIterator::key »
  • PHP Manual
  • TokyoTyrantIterator
  • Get the current value

TokyoTyrantIterator::current

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::current — Get the current value

Описание

public TokyoTyrantIterator::current ( void ) : mixed

Returns the current value during iteration.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current value on success and false on failure.

Смотрите также

  • TokyoTyrantIterator::valid() - Rewinds the iterator
  • TokyoTyrantIterator::key() - Returns the current key
  • TokyoTyrantIterator::next() - Move to next key
  • TokyoTyrantIterator::rewind() - Rewinds the iterator


Returns the current key

  • « TokyoTyrantIterator::current
  • TokyoTyrantIterator::next »
  • PHP Manual
  • TokyoTyrantIterator
  • Returns the current key

TokyoTyrantIterator::key

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::key — Returns the current key

Описание

public TokyoTyrantIterator::key ( void ) : mixed

Returns the current key.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current key on success and false on failure.

Смотрите также

  • TokyoTyrantIterator::valid() - Rewinds the iterator
  • TokyoTyrantIterator::current() - Get the current value
  • TokyoTyrantIterator::next() - Move to next key
  • TokyoTyrantIterator::rewind() - Rewinds the iterator


Move to next key

  • « TokyoTyrantIterator::key
  • TokyoTyrantIterator::rewind »
  • PHP Manual
  • TokyoTyrantIterator
  • Move to next key

TokyoTyrantIterator::next

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::next — Move to next key

Описание

public TokyoTyrantIterator::next ( void ) : mixed

Move to next key during iteration and return it's value.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the next value on success and false on failure.

Смотрите также

  • TokyoTyrantIterator::valid() - Rewinds the iterator
  • TokyoTyrantIterator::key() - Returns the current key
  • TokyoTyrantIterator::current() - Get the current value
  • TokyoTyrantIterator::rewind() - Rewinds the iterator


Rewinds the iterator

  • « TokyoTyrantIterator::next
  • TokyoTyrantIterator::valid »
  • PHP Manual
  • TokyoTyrantIterator
  • Rewinds the iterator

TokyoTyrantIterator::rewind

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::rewind — Rewinds the iterator

Описание

public TokyoTyrantIterator::rewind ( void ) : void

Rewinds the iterator for new iteration. Called automatically at the beginning of foreach.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Throws TokyoTyrantException if iterator initialization fails.

Смотрите также

  • TokyoTyrantIterator::valid() - Rewinds the iterator
  • TokyoTyrantIterator::current() - Get the current value
  • TokyoTyrantIterator::next() - Move to next key
  • TokyoTyrantIterator::rewind()


Rewinds the iterator

  • « TokyoTyrantIterator::rewind
  • TokyoTyrantException »
  • PHP Manual
  • TokyoTyrantIterator
  • Rewinds the iterator

TokyoTyrantIterator::valid

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::valid — Rewinds the iterator

Описание

public TokyoTyrantIterator::valid ( void ) : bool

Checks whether the internal pointer points to valid element.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the current item is valid and FALSE if not.

Смотрите также

  • TokyoTyrantIterator::key() - Returns the current key
  • TokyoTyrantIterator::current() - Get the current value
  • TokyoTyrantIterator::next() - Move to next key
  • TokyoTyrantIterator::rewind() - Rewinds the iterator


The TokyoTyrantException class

(PECL tokyo_tyrant >= 0.1.0)

Введение

TokyoTyrantException

Обзор классов

tokyotyrantexception extends Exception {
/* Свойства */
protected int $code ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Свойства

code

The exception code. This can be compared to TokyoTyrant::TTE_* constants


Расширения для работы с датой и временем

  • Календарь
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Календарь
  • Дата/время — Дата и время
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • DateTime — Класс DateTime
    • DateTimeImmutable — Класс DateTimeImmutable
    • DateTimeInterface — Интерфейс DateTimeInterface
    • DateTimeZone — Класс DateTimeZone
    • DateInterval — Класс DateInterval
    • DatePeriod — Класс DatePeriod
    • Функции даты и времени
    • Допустимые форматы даты/времени
    • Список поддерживаемых временных зон
  • HRTime — Время высокого разрешения
    • Введение
    • Установка и настройка
    • Примеры
    • HRTime\PerformanceCounter — Класс HRTime\PerformanceCounter
    • HRTime\StopWatch — Класс HRTime\StopWatch
    • HRTime\Unit — Класс HRTime\Unit


Календарь

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Календарь
    • cal_days_in_month — Возвращает количество дней в месяце для заданного года и календаря
    • cal_from_jd — Преобразует дату, заданную в юлианском календаре, в дату указанного календаря
    • cal_info — Возвращает информацию о заданном календаре
    • cal_to_jd — Преобразует заданную дату в юлианскую
    • easter_date — Получить метку времени Unix, соответствующую полуночи на Пасху в заданном году
    • easter_days — Получить количество дней между 21 марта и Пасхой в заданном году
    • frenchtojd — Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении
    • gregoriantojd — Преобразует дату по григорианскому календарю в количество дней в юлианском летоисчислении
    • jddayofweek — Возвращает день недели
    • jdmonthname — Возвращает название месяца
    • jdtofrench — Переводит число дней в юлианском летоисчислении в дату по французскому республиканскому календарю
    • jdtogregorian — Переводит число дней в юлианском летоисчислении в дату по Григорианскому календарю
    • jdtojewish — Переводит количество дней из юлианского календаря в дату по еврейскому календарю
    • jdtojulian — Переводит число дней в юлианском летоисчислении в дату по юлианскому календарю
    • jdtounix — Переводит число дней в юлианском летоисчислении в метку времени Unix
    • jewishtojd — Переводит дату по еврейскому календарю в число дней в юлианском летоисчислении
    • juliantojd — Переводит дату по юлианскому календарю в число дней в юлианском летоисчислении
    • unixtojd — Переводит метку времени Unix в юлианский день


Введение

Расширение календарь предоставляет ряд функций для упрощения перевода дат из одного формата в другой. Промежуточной датой или стандартом является исчисление с Юлианского дня. Исчисление с Юлианского дня - это исчисление, начинающееся с 1 января 4713г. до н.э. Для конвертации между календарными форматами сначала нужно перевести дату в Юлианское исчисление, а затем в любой другой календарный формат на ваш выбор. Юлианское исчисление сильно отличается от Юлианского календаря! Для более подробной информации посетите страницу » http://www.hermetic.ch/cal_stud/jdn.htm. Подробная информации по календарным форматам: » http://www.fourmilab.ch/documents/calendar/. Выдержки из этой страницы включены в инструкцию и заключены в кавычки.


Установка

Для работы с данными функциями нужно скомпилировать PHP c --enable-calendar .

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

CAL_EASTER_DEFAULT (integer)
Для easter_days(): вычислять Пасху для лет до 1753 года по юлианскому календарю, а в последующие годы по григорианскому календарю.
CAL_EASTER_ROMAN (integer)
Для easter_days(): вычислять Пасху для лет до 1583 года по юлианскому календарю, а в последующие годы по григорианскому календарю.
CAL_EASTER_ALWAYS_GREGORIAN (integer)
Для easter_days(): вычислять Пасху в соответствии с пролептическим григорианским календарем.
CAL_EASTER_ALWAYS_JULIAN (integer)
Для easter_days(): вычислять Пасху в соответствии с юлианским календарем.
CAL_GREGORIAN (integer)
Для cal_days_in_month(),
cal_from_jd(), cal_info() и
cal_to_jd(): использовать пролептический григорианский календарь.
CAL_JULIAN (integer)
Для cal_days_in_month(),
cal_from_jd(), cal_info() и
cal_to_jd(): использовать юлианский календарь.
CAL_JEWISH (integer)
Для cal_days_in_month(),
cal_from_jd(), cal_info() и
cal_to_jd(): использовать еврейский календарь.
CAL_FRENCH (integer)
Для cal_days_in_month(),
cal_from_jd(), cal_info() и
cal_to_jd(): использовать французский республиканский календарь.
CAL_NUM_CALS (integer)
Количество доступных календарей.
CAL_JEWISH_ADD_ALAFIM_GERESH (integer)
Для jdtojewish(): добавляет знак гореш (geresh), напоминающий одинарную кавычку в качестве разделителя тысяч для количества лет.
CAL_JEWISH_ADD_ALAFIM (integer)
Для jdtojewish(): добавляет слово alafim в качестве разделителя тысяч для количества лет.
CAL_JEWISH_ADD_GERESHAYIM (integer)
For jdtojewish(): добавить символ гершаим (gershayim), напоминающий двойную кавычку перед последней буквой дня и числом лет
CAL_DOW_DAYNO (integer)
Для jddayofweek(): день недели в виде целого числа (integer), где 0 означает воскресенье, а 6 означает субботу.
CAL_DOW_SHORT (integer)
Для jddayofweek(): сокращенное английское название дня недели.
CAL_DOW_LONG (integer)
Для jddayofweek(): английское название дня недели.
CAL_MONTH_GREGORIAN_SHORT (integer)
Для jdmonthname(): сокращенное григорианское название месяца.
CAL_MONTH_GREGORIAN_LONG (integer)
Для jdmonthname(): григорианское название месяца.
CAL_MONTH_JULIAN_SHORT (integer)
Для jdmonthname(): сокращенное юлианское название месяца.
CAL_MONTH_JULIAN_LONG (integer)
Для jdmonthname(): юлианское название месяцаe.
CAL_MONTH_JEWISH (integer)
Для jdmonthname(): еврейское название месяца.
CAL_MONTH_FRENCH (integer)
Для jdmonthname(): французское республиканское название месяца.


Календарь

Содержание

  • cal_days_in_month — Возвращает количество дней в месяце для заданного года и календаря
  • cal_from_jd — Преобразует дату, заданную в юлианском календаре, в дату указанного календаря
  • cal_info — Возвращает информацию о заданном календаре
  • cal_to_jd — Преобразует заданную дату в юлианскую
  • easter_date — Получить метку времени Unix, соответствующую полуночи на Пасху в заданном году
  • easter_days — Получить количество дней между 21 марта и Пасхой в заданном году
  • frenchtojd — Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении
  • gregoriantojd — Преобразует дату по григорианскому календарю в количество дней в юлианском летоисчислении
  • jddayofweek — Возвращает день недели
  • jdmonthname — Возвращает название месяца
  • jdtofrench — Переводит число дней в юлианском летоисчислении в дату по французскому республиканскому календарю
  • jdtogregorian — Переводит число дней в юлианском летоисчислении в дату по Григорианскому календарю
  • jdtojewish — Переводит количество дней из юлианского календаря в дату по еврейскому календарю
  • jdtojulian — Переводит число дней в юлианском летоисчислении в дату по юлианскому календарю
  • jdtounix — Переводит число дней в юлианском летоисчислении в метку времени Unix
  • jewishtojd — Переводит дату по еврейскому календарю в число дней в юлианском летоисчислении
  • juliantojd — Переводит дату по юлианскому календарю в число дней в юлианском летоисчислении
  • unixtojd — Переводит метку времени Unix в юлианский день


Возвращает количество дней в месяце для заданного года и календаря

  • « Календарь
  • cal_from_jd »
  • PHP Manual
  • Календарь
  • Возвращает количество дней в месяце для заданного года и календаря

cal_days_in_month

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

cal_days_in_month — Возвращает количество дней в месяце для заданного года и календаря

Описание

cal_days_in_month ( int $calendar , int $month , int $year ) : int

Эта функция возвращает количество дней в месяце month года year для заданного календаря calendar.

Список параметров

calendar

Календарь, используемый для вычисления

month

Месяц в выбранном календаре

year

Год в выбранном календаре

Возвращаемые значения

Количество дней в конкретном месяце выбранного календаря

Примеры

Пример #1 Пример использования cal_days_in_month()

<?php
$number = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "Всего {$number} дней в Августе 2003 года";
?>


Преобразует дату, заданную в юлианском календаре, в дату указанного календаря

  • « cal_days_in_month
  • cal_info »
  • PHP Manual
  • Календарь
  • Преобразует дату, заданную в юлианском календаре, в дату указанного календаря

cal_from_jd

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

cal_from_jd — Преобразует дату, заданную в юлианском календаре, в дату указанного календаря

Описание

cal_from_jd ( int $jd , int $calendar ) : array

cal_from_jd() преобразует дату юлианского календаря, заданную в jd, в дату указанного календаря calendar. Поддерживаемые значения calendar: CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH и CAL_FRENCH.

Список параметров

jd

День юлианского календаря как целое число

calendar

Календарь, в который нужно преобразовать дату

Возвращаемые значения

Возвращает массив, содержащий информацию о дате, такую как месяц, день, год, день недели (dow), сокращенное и полное название дня недели, месяца и дату в форме "месяц/день/год". День недели варьируется от 0 (воскресенье) to 6 (суббота).

Примеры

Пример #1 Пример использования cal_from_jd()

<?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
)

Смотрите также

  • cal_to_jd() - Преобразует заданную дату в юлианскую
  • jdtofrench() - Переводит число дней в юлианском летоисчислении в дату по французскому республиканскому календарю
  • jdtogregorian() - Переводит число дней в юлианском летоисчислении в дату по Григорианскому календарю
  • jdtojewish() - Переводит количество дней из юлианского календаря в дату по еврейскому календарю
  • jdtojulian() - Переводит число дней в юлианском летоисчислении в дату по юлианскому календарю
  • jdtounix() - Переводит число дней в юлианском летоисчислении в метку времени Unix


Возвращает информацию о заданном календаре

  • « cal_from_jd
  • cal_to_jd »
  • PHP Manual
  • Календарь
  • Возвращает информацию о заданном календаре

cal_info

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

cal_info — Возвращает информацию о заданном календаре

Описание

cal_info ([ int $calendar = -1 ] ) : array

cal_info() возвращает информацию о заданном календаре calendar.

Информация о календаре возвращается в виде массива с элементами calname, calsymbol, month, abbrevmonth и maxdaysinmonth В качестве calendar могут быть использованы следующие названия календарей:

  • 0 or CAL_GREGORIAN - Григорианский календарь
  • 1 or CAL_JULIAN - Юлианский календарь
  • 2 or CAL_JEWISH - Еврейский календарь
  • 3 or CAL_FRENCH - Календарь со дня Французской революции

Если параметр calendar не задан, возвращается информация о всех поддерживаемых календарях в виде массива.

Список параметров

calendar

Календарь, о котором будет возвращена информация. Если параметр не задан, возвращается информация обо всех календарях.

Возвращаемые значения

Примеры

Пример #1 Пример cal_info()

<?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_info
  • easter_date »
  • PHP Manual
  • Календарь
  • Преобразует заданную дату в юлианскую

cal_to_jd

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

cal_to_jd — Преобразует заданную дату в юлианскую

Описание

cal_to_jd ( int $calendar , int $month , int $day , int $year ) : int

cal_to_jd() рассчитывает количество дней в юлианском календаре для даты в указанном календаре calendar. Список поддерживаемых календарей calendar: CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH и CAL_FRENCH.

Список параметров

calendar

Календарь, из которого будет произведена конвертация, одна из констант: CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH или CAL_FRENCH.

month

Месяц в виде числа, разрешенный диапазон зависит от календаря calendar.

day

День в виде числа, разрешенный диапазон зависит от календаря calendar.

year

Год в виде числа, разрешенный диапазон зависит от календаря calendar.

Возвращаемые значения

Количество дней в юлианском календаре.

Смотрите также

  • cal_from_jd() - Преобразует дату, заданную в юлианском календаре, в дату указанного календаря
  • frenchtojd() - Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении
  • gregoriantojd() - Преобразует дату по григорианскому календарю в количество дней в юлианском летоисчислении
  • jewishtojd() - Переводит дату по еврейскому календарю в число дней в юлианском летоисчислении
  • juliantojd() - Переводит дату по юлианскому календарю в число дней в юлианском летоисчислении
  • unixtojd() - Переводит метку времени Unix в юлианский день


Получить метку времени Unix, соответствующую полуночи на Пасху в заданном году

  • « cal_to_jd
  • easter_days »
  • PHP Manual
  • Календарь
  • Получить метку времени Unix, соответствующую полуночи на Пасху в заданном году

easter_date

(PHP 4, PHP 5, PHP 7)

easter_date — Получить метку времени Unix, соответствующую полуночи на Пасху в заданном году

Описание

easter_date ([ int $year = date("Y") [, int $method = CAL_EASTER_DEFAULT ]] ) : int

Возвращает метку времени Unix, соответствующую полуночи на Пасху в заданном году.

Внимание

Функция выдаст предупреждение, если заданный год будет выходить за пределы диапазона меток времени Unix (меньше 1970, либо больше 2037 для 32-битных систем).

Дата Пасхального дня была введена Консулом Никеи в 325 году до н.э. Это первое воскресенье, следующее за первым полнолунием после весеннего равноденствия. Днем весеннего равноденствия принято считать 21 марта, так что расчет дня Пасхи сводится к определению даты полнолуния и следующего за ней воскресенья. Используемый здесь алгоритм введен Дионисием Малым в 532 году. В юлианском летоисчислении (до 1753 года) для отслеживания фаз луны использовался простой 19-летний цикл. В григорианском календаре (годы после 1753 - разработан Христофором Клавиусом и Алоизием Лилиусом и введен Папой Григорием XIII в октябре 1582 г., а в Великобритании и ее колониях в сентябре 1752 г.) было добавлено 2 поправочных коэффициента, увеличивающих точность расчета дат.

Список параметров

year

Год - число между 1970 и 2037. Если не указан, то по умолчанию равен текущему года, согласно местному времени.

method

Позволяет рассчитывать даты Пасхи на основе юлианского календаря, если установлено значение CAL_EASTER_ALWAYS_JULIAN. Смотрите также константы календаря.

Возвращаемые значения

Дата Пасхи в виде метки времени Unix.

Примеры

Пример #1 Пример использования easter_date()

<?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

?>

Примечания

Замечание:

Функция easter_date() зависит от вашей системной библиотеки C функций работы со временем, а не от внутренних функций PHP. Как следствие, функция easter_date() использует переменную окружения TZ для определения временной зоны, а не заданную в PHP временную зону по умолчанию. Это может привести к неожиданному поведению при использовании этой функции совместно с другими функциями для работы с датами в PHP.

В качестве обходного решения может быть использование функции easter_days() с объектами DateTime и DateInterval для подсчета начала Пасхи в вашей временной зоне, как в этом примере:

<?php
function get_easter_datetime($year) {
    $base = new DateTime("$year-03-21");
    $days = easter_days($year);

    return $base->add(new DateInterval("P{$days}D"));
}

foreach (range(2012, 2015) as $year) {
    printf("Пасха в %d году приходится на %s\n",
           $year,
           get_easter_datetime($year)->format('F j'));
}
?>

Результат выполнения данного примера:

Пасха в 2012 году приходится на April 8
Пасха в 2013 году приходится на March 31
Пасха в 2014 году приходится на April 20
Пасха в 2015 году приходится на April 5

Смотрите также

  • Функция easter_days() - Получить количество дней между 21 марта и Пасхой в заданном году длч расчета дня Пасхи до 1970 или после 2037


Получить количество дней между 21 марта и Пасхой в заданном году

  • « easter_date
  • frenchtojd »
  • PHP Manual
  • Календарь
  • Получить количество дней между 21 марта и Пасхой в заданном году

easter_days

(PHP 4, PHP 5, PHP 7)

easter_days — Получить количество дней между 21 марта и Пасхой в заданном году

Описание

easter_days ([ int $year = date("Y") [, int $method = CAL_EASTER_DEFAULT ]] ) : int

Возвращает количество дней между 21 марта и Пасхой в заданном году. Если год не указан, расчет будет произведен для текущего года.

Эту функцию можно использовать вместо easter_date() для расчета даты Пасхи для дат, выходящих за рамки диапазона временных меток Unix (с 1970 по 2037 годы).

Дата Пасхального дня была введена Консулом Никеи в 325 году до н.э. Это первое воскресенье, следующее за первым полнолунием после весеннего равноденствия. Днем весеннего равноденствия принято считать 21 марта, так что расчет дня Пасхи сводится к определению даты полнолуния и следующего за ней воскресенья. Используемый здесь алгоритм введен Дионисием Малым в 532 году. В юлианском летоисчислении (до 1753 года) для отслеживания фаз луны использовался простой 19-летний цикл. В григорианском календаре (годы после 1753 - разработан Христофором Клавиусом и Алоизием Лилиусом и введен Папой Григорием XIII в октябре 1582г., а в Великобритании и ее колониях в сентябре 1752г.) было добавлено 2 поправочных коэффициента увеличивающих точность расчета дат.

Список параметров

year

Год, положительное число. Если не задан, используется текущий год в соответствии с локальным временем сервера.

method

Позволяет расcчитать Пасхальные даты, основываясь на григорианском календаре для 1582 - 1752 годов, если установить CAL_EASTER_ROMAN. См. список констант календаря, чтобы узнать о всех допустимых константах.

Возвращаемые значения

Количество дней между 21 марта и Пасхальным воскресеньем в заданном году year.

Примеры

Пример #1 Пример использования easter_days()

<?php

echo easter_days(1999);        // 14, т.e. April 4
echo easter_days(1492);        // 32, т.e. April 22
echo easter_days(1913);        //  2, т.e. March 23

?>

Смотрите также

  • easter_date() - Получить метку времени Unix, соответствующую полуночи на Пасху в заданном году


Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении

  • « easter_days
  • gregoriantojd »
  • PHP Manual
  • Календарь
  • Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении

frenchtojd

(PHP 4, PHP 5, PHP 7)

frenchtojd — Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении

Описание

frenchtojd ( int $month , int $day , int $year ) : int

Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении.

Функция преобразует даты только с 1 по 14 годов (григорианские даты с 22 сентября 1792 г. по 22 сентября 1806 г.) Это более чем охватывает период, когда этот календарь использовался.

Список параметров

month

Месяц в виде числа от 1 (для месяца Vendemiaire) до 13 (для периода 5-6 дней в конце каждого года)

day

День в виде числа от 1 до 30

year

Год в виде числа между 1 и 14

Возвращаемые значения

Количество дней в юлианском летоисчислении для заданной даты по французскому республиканскому календарю.

Смотрите также

  • jdtofrench() - Переводит число дней в юлианском летоисчислении в дату по французскому республиканскому календарю
  • cal_to_jd() - Преобразует заданную дату в юлианскую


Преобразует дату по григорианскому календарю в количество дней в юлианском летоисчислении

  • « frenchtojd
  • jddayofweek »
  • PHP Manual
  • Календарь
  • Преобразует дату по григорианскому календарю в количество дней в юлианском летоисчислении

gregoriantojd

(PHP 4, PHP 5, PHP 7)

gregoriantojd — Преобразует дату по григорианскому календарю в количество дней в юлианском летоисчислении

Описание

gregoriantojd ( int $month , int $day , int $year ) : int

Разрешенный диапазон дат для григорианского календаря с 25 ноября 4714 года до н.э. по 31 декабря 9999 год н.э.

Несмотря на возможность обработки дат вплоть до 4714 года до н.э., такое использование имеет мало смысла. Григорианский календарь не существовал до 15 октября 1582 года (или 5 октября 1582 в юлианском календаре). Некоторые страны не переходили на этот календарь очень долгое время. Например, Великобритания совершила переход в 1752 году, СССР в 1918 г., Греция в 1923 г. Большинство стран Европы предпочитали юлианский календарь григорианскому.

Список параметров

month

Месяц в виде числа от 1 (январь) до 12 (декабрь)

day

День в виде числа от 1 до 31. Если в месяце меньше дней, чем передано, то произойдет переполнение; см. пример ниже.

year

Года в виде числа от -4714 до 9999. Отрицательные числа означают года до н.э., положительные - н.э. Обратите внимание, что не существует года 0; 31 декабря 1 года до н.э. следует сразу после 1 января 1 года н.э.

Возвращаемые значения

Количество дней в юлианском летоисчислении для даты по григорианскому календарю. Даты за пределами допустимого диапазона возвратят 0.

Примеры

Пример #1 Календарные функции

<?php
$jd = gregoriantojd(10, 11, 1970);
echo "$jd\n";
$gregorian = jdtogregorian($jd);
echo "$gregorian\n";
?>

Результат выполнения данного примера:

2440871
10/11/1970

Пример #2 Поведение при переполнении

<?php
echo gregoriantojd(2, 31, 2018), PHP_EOL,
     gregoriantojd(3,  3, 2018), PHP_EOL;
?>

Результат выполнения данного примера:

2458181
2458181

Смотрите также

  • jdtogregorian() - Переводит число дней в юлианском летоисчислении в дату по Григорианскому календарю
  • cal_to_jd() - Преобразует заданную дату в юлианскую


Возвращает день недели

  • « gregoriantojd
  • jdmonthname »
  • PHP Manual
  • Календарь
  • Возвращает день недели

jddayofweek

(PHP 4, PHP 5, PHP 7)

jddayofweek — Возвращает день недели

Описание

jddayofweek ( int $julianday [, int $mode = CAL_DOW_DAYNO ] ) : mixed

Возвращает день недели. Может возвращать строку или число в зависимости от режима работы.

Список параметров

julianday

День в виде числа в юлианском летоисчислении

mode
Режимы отображения дней недели
Режим | Значение
0 (По умолчанию) | День недели возвращается в виде числа (0=Воскресенье, 1=Понедельник и т.д.)
1 | Возвращается строка, содержащая день недели (Английский-Григорианский)
2 | Возвращается строка, содержащая аббревиатуру дня недели (Английскую-Григорианскую)

Возвращаемые значения

День недели по григорианскому календарю в виде строки или числа.


Возвращает название месяца

  • « jddayofweek
  • jdtofrench »
  • PHP Manual
  • Календарь
  • Возвращает название месяца

jdmonthname

(PHP 4, PHP 5, PHP 7)

jdmonthname — Возвращает название месяца

Описание

jdmonthname ( int $julianday , int $mode ) : string

Возвращает строку, содержащую название месяца. mode задает режим работы функции преобразования из числа дней в юлианском летоисчислении, а также определяет тип возвращаемого значения названия месяца.

Режимы работы
Режим | Название месяца | Значения
CAL_MONTH_GREGORIAN_SHORT | Григорианское - сокращенное | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
CAL_MONTH_GREGORIAN_LONG | Григорианское | January, February, March, April, May, June, July, August, September, October, November, December
CAL_MONTH_JULIAN_SHORT | Юлианское - сокращенное | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
CAL_MONTH_JULIAN_LONG | Юлианское | January, February, March, April, May, June, July, August, September, October, November, December
CAL_MONTH_JEWISH | Еврейское | Tishri, Heshvan, Kislev, Tevet, Shevat, AdarI, AdarII, Nisan, Iyyar, Sivan, Tammuz, Av, Elul
CAL_MONTH_FRENCH | Французское республиканское | Vendemiaire, Brumaire, Frimaire, Nivose, Pluviose, Ventose, Germinal, Floreal, Prairial, Messidor, Thermidor, Fructidor, Extra

Список параметров

jday

Число дней в юлианском летоисчислении, которое требуется преобразовать

mode

Режим календаря (см. таблицу выше)

Возвращаемые значения

Название месяца для заданного Юлианского Дня, соответствующее календарю mode.


Переводит число дней в юлианском летоисчислении в дату по французскому республиканскому календарю

  • « jdmonthname
  • jdtogregorian »
  • PHP Manual
  • Календарь
  • Переводит число дней в юлианском летоисчислении в дату по французскому республиканскому календарю

jdtofrench

(PHP 4, PHP 5, PHP 7)

jdtofrench — Переводит число дней в юлианском летоисчислении в дату по французскому республиканскому календарю

Описание

jdtofrench ( int $juliandaycount ) : string

Переводит число дней в юлианском летоисчислении в дату по французскому республиканскому календарю

Список параметров

julianday

Номер дня в юлианском летоисчислении

Возвращаемые значения

Дата со дня французской революции в виде строки формата "месяц/день/год"

Смотрите также

  • frenchtojd() - Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении
  • cal_from_jd() - Преобразует дату, заданную в юлианском календаре, в дату указанного календаря


Переводит число дней в юлианском летоисчислении в дату по Григорианскому календарю

  • « jdtofrench
  • jdtojewish »
  • PHP Manual
  • Календарь
  • Переводит число дней в юлианском летоисчислении в дату по Григорианскому календарю

jdtogregorian

(PHP 4, PHP 5, PHP 7)

jdtogregorian — Переводит число дней в юлианском летоисчислении в дату по Григорианскому календарю

Описание

jdtogregorian ( int $julianday ) : string

Переводит число дней в юлианском летоисчислении в строку, содержащую григорианскую дату в формате "месяц/день/год".

Список параметров

julianday

Номер дня в юлианском летоисчислении в виде целого числа

Возвращаемые значения

Дата по григорианскому календарю в виде строки формата "месяц/день/год"

Смотрите также

  • gregoriantojd() - Преобразует дату по григорианскому календарю в количество дней в юлианском летоисчислении
  • cal_from_jd() - Преобразует дату, заданную в юлианском календаре, в дату указанного календаря


Переводит количество дней из юлианского календаря в дату по еврейскому календарю

  • « jdtogregorian
  • jdtojulian »
  • PHP Manual
  • Календарь
  • Переводит количество дней из юлианского календаря в дату по еврейскому календарю

jdtojewish

(PHP 4, PHP 5, PHP 7)

jdtojewish — Переводит количество дней из юлианского календаря в дату по еврейскому календарю

Описание

jdtojewish ( int $juliandaycount [, bool $hebrew = FALSE [, int $fl = 0 ]] ) : string

Переводит количество дней из юлианского календаря в дату по еврейскому календарю.

Список параметров

julianday

Номер дня в юлианском летоисчислении в виде целого числа

hebrew

Если аргумент hebrew установлен в TRUE, дата будет возвращена в виде закодированной строки ISO-8859-8 в еврейском формате, заданном аргументом fl.

fl

Битовая маска может состоять из: CAL_JEWISH_ADD_ALAFIM_GERESH, CAL_JEWISH_ADD_ALAFIM и CAL_JEWISH_ADD_GERESHAYIM.

Возвращаемые значения

Еврейская дата в виде строки формата "месяц/день/год" или закодированная строка ISO-8859-8 даты на иврите в соответствии с параметром hebrew.

Примеры

Пример #1 Пример использования jdtojewish()

<?php
$jd = gregoriantojd(10, 8, 2002);
echo jdtojewish($jd, true), PHP_EOL,
     jdtojewish($jd, true, CAL_JEWISH_ADD_GERESHAYIM), PHP_EOL,
     jdtojewish($jd, true, CAL_JEWISH_ADD_ALAFIM), PHP_EOL,
     jdtojewish($jd, true,CAL_JEWISH_ADD_ALAFIM_GERESH), PHP_EOL;
?>

Результат выполнения данного примера:

? ???? ?????
?' ???? ????"?
? ???? ? ????? ????
? ???? ?'????

Смотрите также

  • jewishtojd() - Переводит дату по еврейскому календарю в число дней в юлианском летоисчислении
  • cal_from_jd() - Преобразует дату, заданную в юлианском календаре, в дату указанного календаря


Переводит число дней в юлианском летоисчислении в дату по юлианскому календарю

  • « jdtojewish
  • jdtounix »
  • PHP Manual
  • Календарь
  • Переводит число дней в юлианском летоисчислении в дату по юлианскому календарю

jdtojulian

(PHP 4, PHP 5, PHP 7)

jdtojulian — Переводит число дней в юлианском летоисчислении в дату по юлианскому календарю

Описание

jdtojulian ( int $julianday ) : string

Переводит число дней в юлианском летоисчислении в строку, содержащую дату по юлианскому календарю в формате "месяц/день/год".

Список параметров

julianday

Номер дня в юлианском летоисчислении

Возвращаемые значения

Дата по юлианскому календарю в виде строки формата "месяц/день/год"

Смотрите также

  • juliantojd() - Переводит дату по юлианскому календарю в число дней в юлианском летоисчислении
  • cal_from_jd() - Преобразует дату, заданную в юлианском календаре, в дату указанного календаря


Переводит число дней в юлианском летоисчислении в метку времени Unix

  • « jdtojulian
  • jewishtojd »
  • PHP Manual
  • Календарь
  • Переводит число дней в юлианском летоисчислении в метку времени Unix

jdtounix

(PHP 4, PHP 5, PHP 7)

jdtounix — Переводит число дней в юлианском летоисчислении в метку времени Unix

Описание

jdtounix ( int $jday ) : int

Эта функция вернет метку времени Unix, соответствующую номеру дня в юлианском летоисчислении, заданному в jday либо FALSE, если jday лежит за пределами эпохи Unix (годы по григорианскому календарю между 1970 и 2037 или 2440588 <= jday <= 2465342 ). Будет возвращено UTC.

Список параметров

jday

Номер дня в юлианском летоисчислении между 2440588 и 2465342.

Возвращаемые значения

Метка времени Unix на момент начала (полночь) юлианского дня.

Смотрите также

  • unixtojd() - Переводит метку времени Unix в юлианский день


Переводит дату по еврейскому календарю в число дней в юлианском летоисчислении

  • « jdtounix
  • juliantojd »
  • PHP Manual
  • Календарь
  • Переводит дату по еврейскому календарю в число дней в юлианском летоисчислении

jewishtojd

(PHP 4, PHP 5, PHP 7)

jewishtojd — Переводит дату по еврейскому календарю в число дней в юлианском летоисчислении

Описание

jewishtojd ( int $month , int $day , int $year ) : int

Несмотря на то, что функция может обрабатывать даты вплоть до 1-го года (3761 до н.э.), практически преобразование для таких ранних дат не имеет смысла. Еврейский календарь использовался несколько тысяч лет, но давние времена не было формулы для расчета начала месяца. Новый месяц начинался с того момента как впервые можно было наблюдать новую луну.

Список параметров

month

Номер месяца в виде числа от 1 до 13, где 1 означает Тишрей, 13 означает Элул, и 6 и 7 означает Адар в обычном году, но Адар I и Адар II, соответственно, в високосном.

day

Номер дня в виде числа от 1 до 30. Если в месяце всего 29 дней, то будет подразумеваться первый день следующего месяца.

year

Год в виде числа от 1 до 9999

Возвращаемые значения

Номер дня в юлианском летоисчислении в виде числа для заданной еврейской даты.

Смотрите также

  • jdtojewish() - Переводит количество дней из юлианского календаря в дату по еврейскому календарю
  • cal_to_jd() - Преобразует заданную дату в юлианскую


Переводит дату по юлианскому календарю в число дней в юлианском летоисчислении

  • « jewishtojd
  • unixtojd »
  • PHP Manual
  • Календарь
  • Переводит дату по юлианскому календарю в число дней в юлианском летоисчислении

juliantojd

(PHP 4, PHP 5, PHP 7)

juliantojd — Переводит дату по юлианскому календарю в число дней в юлианском летоисчислении

Описание

juliantojd ( int $month , int $day , int $year ) : int

Диапазон возможных дат для юлианского календаря: с 4713 года до н.э. по 9999 год н.э.

Несмотря на то, что функция может обрабатывать даты вплоть до 4713 года до н.э., практически преобразование для таких ранних дат не имеет смысла. Календарь был создан в 46 году до н.э., но некоторые детали еще дорабатывались по крайней мере до 8 года н.э., а по некоторым данным до 4 века. Также, начало года различалось от одной культуры к другой - не везде Январь был первым месяцем года.

Предостережение

Помните, что на данный момент общепринятым в мире считается григорианский календарь. Функция gregoriantojd() может преобразовывать даты по этому календарю в число дней в юлианском летоисчислении.

Список параметров

month

Месяц в виде числа от 1 (январь) до 12 (декабрь)

day

День в виде числа от 1 до 31

year

Год в виде числа между -4713 и 9999

Возвращаемые значения

Юлианский день в виде числа для заданной даты по юлианскому календарю.

Смотрите также

  • jdtojulian() - Переводит число дней в юлианском летоисчислении в дату по юлианскому календарю
  • cal_to_jd() - Преобразует заданную дату в юлианскую


Переводит метку времени Unix в юлианский день

  • « juliantojd
  • Дата/время »
  • PHP Manual
  • Календарь
  • Переводит метку времени Unix в юлианский день

unixtojd

(PHP 4, PHP 5, PHP 7)

unixtojd — Переводит метку времени Unix в юлианский день

Описание

unixtojd ([ int $timestamp = time() ] ) : int

Возвращает юлианский день для заданной метки времени Unix timestamp (количество секунд с 1.1.1970) либо для текущего времени, если аргумент timestamp не задан. В любом случае, время рассматривается как местное время (не UTC).

Список параметров

timestamp

Метка времени Unix для преобразования.

Возвращаемые значения

Число дней в юлианском летоисчислении.

Смотрите также

  • jdtounix() - Переводит число дней в юлианском летоисчислении в метку времени Unix


Дата и время

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Арифметика DateTime
  • DateTime — Класс DateTime
    • DateTime::add — Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime
    • DateTime::__construct — Конструктор класса DateTime
    • DateTime::createFromFormat — Разбирает строку с датой согласно указанному формату
    • DateTime::createFromImmutable — Возвращает объект DateTime инкапсулирующий заданный объект DateTimeImmutable
    • DateTime::getLastErrors — Возвращает предупреждения и ошибки
    • DateTime::modify — Изменение временной метки
    • DateTime::__set_state — Обработчик __set_state
    • DateTime::setDate — Устанавливает дату
    • DateTime::setISODate — Устанавливает дату в формате ISO
    • DateTime::setTime — Устанавливает время
    • DateTime::setTimestamp — Устанавливает дату и время на основе метки времени Unix
    • DateTime::setTimezone — Устанавливает временную зоны для объекта класса DateTime
    • DateTime::sub — Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime
  • DateTimeImmutable — Класс DateTimeImmutable
    • DateTimeImmutable::add — Добавляет указанное количество дней, месяцев, лет, часов, минут и секунд
    • DateTimeImmutable::__construct — Возвращает новый объект DateTimeImmutable
    • DateTimeImmutable::createFromFormat — Разбирает строку с датой согласно указанному формату
    • DateTimeImmutable::createFromMutable — Возвращает новый объект DateTimeImmutable, содержащий заданный объект DateTime
    • DateTimeImmutable::getLastErrors — Возвращает предупреждения и ошибки
    • DateTimeImmutable::modify — Создает новый объект с измененной временной меткой
    • DateTimeImmutable::__set_state — Обработчик __set_state
    • DateTimeImmutable::setDate — Устанавливает дату
    • DateTimeImmutable::setISODate — Устанавливает дату в формате ISO
    • DateTimeImmutable::setTime — Устанавливает время
    • DateTimeImmutable::setTimestamp — Устанавливает дату и время на основе метки времени Unix
    • DateTimeImmutable::setTimezone — Устанавливает временную зону
    • DateTimeImmutable::sub — Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд
  • DateTimeInterface — Интерфейс DateTimeInterface
    • DateTime::diff — Возвращает разницу между двумя объектами DateTime
    • DateTime::format — Возвращает дату, отформатированную согласно переданному формату
    • DateTime::getOffset — Возвращает смещение временной зоны
    • DateTime::getTimestamp — Возвращает временную метку Unix
    • DateTime::getTimezone — Возвращает временному зону относительно текущему значению DateTime
    • DateTime::__wakeup — Обработчик __wakeup
  • DateTimeZone — Класс DateTimeZone
    • DateTimeZone::__construct — Создает новый объект DateTimeZone
    • DateTimeZone::getLocation — Возвращает информацию о местоположении для временной зоны
    • DateTimeZone::getName — Возвращает имя временной зоны
    • DateTimeZone::getOffset — Возвращает смещение временной зоны от UTC (GMT)
    • DateTimeZone::getTransitions — Возвращает все переходы для временной зоны
    • DateTimeZone::listAbbreviations — Возвращает ассоциативный массив, содержащий флаг перехода на летнее время, смещение и имя временной зоны
    • DateTimeZone::listIdentifiers — Возвращает численно-индексированный массив со всеми идентификаторами временных зон
  • DateInterval — Класс DateInterval
    • DateInterval::__construct — Создает новый объект DateInterval
    • DateInterval::createFromDateString — Создает объект класса DateInterval из даты в относительном формате
    • DateInterval::format — Форматирует интервал
  • DatePeriod — Класс DatePeriod
    • DatePeriod::__construct — Создает новый объект DatePeriod
    • DatePeriod::getDateInterval — Возвращает интервал
    • DatePeriod::getEndDate — Возвращает конечную дату периода
    • DatePeriod::getRecurrences — Получает количество повторов
    • DatePeriod::getStartDate — Возвращает начальную дату периода
  • Функции даты и времени
    • checkdate — Проверяет корректность даты по григорианскому календарю
    • date_add — Псевдоним DateTime::add
    • date_create_from_format — Псевдоним DateTime::createFromFormat
    • date_create_immutable_from_format — Псевдоним DateTimeImmutable::createFromFormat
    • date_create_immutable — Псевдоним DateTimeImmutable::__construct
    • date_create — Псевдоним DateTime::__construct
    • date_date_set — Псевдоним DateTime::setDate
    • date_default_timezone_get — Возвращает временную зону, используемой по умолчанию всеми функциями даты/времени в скрипте
    • date_default_timezone_set — Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте
    • date_diff — Псевдоним DateTime::diff
    • date_format — Псевдоним DateTime::format
    • date_get_last_errors — Псевдоним DateTime::getLastErrors
    • date_interval_create_from_date_string — Псевдоним DateInterval::createFromDateString
    • date_interval_format — Псевдоним DateInterval::format
    • date_isodate_set — Псевдоним DateTime::setISODate
    • date_modify — Псевдоним DateTime::modify
    • date_offset_get — Псевдоним DateTime::getOffset
    • date_parse_from_format — Получение информации о заданной в определенном формате дате
    • date_parse — Возвращает ассоциативный массив с подробной информацией о заданной дате
    • date_sub — Псевдоним DateTime::sub
    • date_sun_info — Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек
    • date_sunrise — Возвращает время рассвета для заданных дня и местоположения
    • date_sunset — Возвращает время захода солнца для заданных дня и местоположения
    • date_time_set — Псевдоним DateTime::setTime
    • date_timestamp_get — Псевдоним DateTime::getTimestamp
    • date_timestamp_set — Псевдоним DateTime::setTimestamp
    • date_timezone_get — Псевдоним DateTime::getTimezone
    • date_timezone_set — Псевдоним DateTime::setTimezone
    • date — Форматирует вывод системной даты/времени
    • getdate — Возвращает информацию о дате/времени
    • gettimeofday — Возвращает текущее время
    • gmdate — Форматирует дату/время по Гринвичу
    • gmmktime — Возвращает локальную метку времени Unix для времени по Гринвичу
    • gmstrftime — Форматирует дату/время по Гринвичу с учетом текущей локали
    • idate — Преобразует локальное время/дату в целое число
    • localtime — Возвращает локальное время
    • microtime — Возвращает текущую метку времени Unix с микросекундами
    • mktime — Возвращает метку времени Unix для заданной даты
    • strftime — Форматирует текущую дату/время с учетом текущих настроек локали
    • strptime — Разбирает строку даты/времени, сгенерированную функцией strftime
    • strtotime — Преобразует текстовое представление даты на английском языке в метку времени Unix
    • time — Возвращает текущую метку системного времени Unix
    • timezone_abbreviations_list — Псевдоним DateTimeZone::listAbbreviations
    • timezone_identifiers_list — Псевдоним DateTimeZone::listIdentifiers
    • timezone_location_get — Псевдоним DateTimeZone::getLocation
    • timezone_name_from_abbr — Возвращает временную зону в соответствии с аббревиатурой
    • timezone_name_get — Псевдоним DateTimeZone::getName
    • timezone_offset_get — Псевдоним DateTimeZone::getOffset
    • timezone_open — Псевдоним DateTimeZone::__construct
    • timezone_transitions_get — Псевдоним DateTimeZone::getTransitions
    • timezone_version_get — Получение номера версии базы данных временных зон
  • Допустимые форматы даты/времени
    • Форматы времени
    • Форматы даты
    • Составные форматов
    • Относительные форматы
  • Список поддерживаемых временных зон
    • Африка
    • Америка
    • Антарктика
    • Арктика
    • Азия
    • Атлантика
    • Австралия
    • Европа
    • Индийский
    • Тихоокеанский
    • Другие


Введение

Эти функции позволяют получить дату и время с сервера, на котором запущен скрипт PHP. Их можно использовать для форматирования даты и времени различными способами.

Информация о дате и времени хранится в памяти в виде 64-разрядных чисел. Таким образом, поддерживаются все пригодные представления даты (включая отрицательные года). Диапазон составляет примерно 292 миллиарда лет в прошлое и будущее.

Замечание: Убедительная просьба принимать во внимание, что эти функции зависят от региональных настроек сервера. При работе с этими функциями следует обращать внимание на високосные года и переход на летнее время (Например, следует использовать $date = strtotime('+7 days', $date), но не $date += 7*24*60*60).

Замечание: Временные зоны, описанные в данном разделе, можно найти по ссылке Список поддерживаемых временных зон.


Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Замечание: Получение последней базы временных зон

Последнюю версию временных зон можно установить с помощью PECL » timezonedb.

Замечание: Экспериментальная поддержка DateTime в PHP 5.1.x

Хотя класс DateTime (и связанные с ним функции) включены по умолчанию в PHP 5.2.0, существует возможность добавить экспериментальную поддержку в PHP 5.1.x, используя следующий флаг перед настройкой/компиляцией: CFLAGS=-DEXPERIMENTAL_DATE_SUPPORT=1


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Настройки конфигурации даты/времени
Имя | По умолчанию | Место изменения | Список изменений
date.default_latitude | "31.7667" | PHP_INI_ALL |
date.default_longitude | "35.2333" | PHP_INI_ALL |
date.sunrise_zenith | "90.583333" | PHP_INI_ALL |
date.sunset_zenith | "90.583333" | PHP_INI_ALL |
date.timezone | "" | PHP_INI_ALL | Доступно с версии PHP 5.1.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

date.default_latitude float

Широта по умолчанию.

date.default_longitude float

Долгота по умолчанию.

date.sunrise_zenith float

Угол, под которым солнце светит во время восхода.

date.sunset_zenith float

Угол, под которым солнце светит во время заката.

date.timezone string

Временная зона, используемая по умолчанию всеми функциями даты/времени. До версии PHP 5.4.0 эта директива работала только при неустановленной переменной TZ. Порядок приоритета используемых временных зон описан на странице date_default_timezone_get(). Смотрите также Список поддерживаемых временных зон.

Замечание: Первые четыре опции настройки в настоящее время используются только в функциях date_sunrise() и date_sunset().


Предопределенные константы

Константы DATE_ определены начиная с версии PHP 5.1.1 и они предлагают стандартные представления даты, которые могут быть использованы вместе с функциями форматирования даты (например date()).

Следующие константы существуют начиная с версии PHP 5.1.2 и определяют формат возвращаемый функциями date_sunrise() и date_sunset().

SUNFUNCS_RET_TIMESTAMP (integer)
Время в секундах с начала эпохи Unix
SUNFUNCS_RET_STRING (integer)
Часы:минуты (например: 08:02)
SUNFUNCS_RET_DOUBLE (integer)
Часы как число с плавающей точкой (например: 8.75)


  • « Предопределенные константы
  • Арифметика DateTime »
  • PHP Manual
  • Дата/время
  • Примеры

Примеры

Содержание

  • Арифметика DateTime


Арифметика DateTime

В следующих примерах показываются некоторые подводные камни вычислений DateTime, относительно переходов на летнее и зимнее время (DST), и месяцев, имеющих разное количество дней.

Пример #1 DateTime::add/sub добавляет интервалы, охватывающие прошедшее время

Добавление PT24H через переход DST приведет к добавлению 23/25 часов (для большинства временных зон).

<?php
$dt = new DateTime("2015-11-01 00:00:00", new DateTimeZone("America/New_York"));
echo "Начало: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt->add(new DateInterval("PT3H"));
echo "Конец:  ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

Результат выполнения данного примера:

Начало: 2015-11-01 00:00:00 -04:00
Конец:  2015-11-01 02:00:00 -05:00

Пример #2 DateTime::modify и strtotime увеличит или уменьшит значения индивидуальных компонентов

Добавление +24 часов через переход DST добавит точно 24 часов (вместо учета перехода на зимнее или летнее время).

<?php
$dt = new DateTime("2015-11-01 00:00:00", new DateTimeZone("America/New_York"));
echo "Начало: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt->modify("+24 hours");
echo "Конец:  ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

Результат выполнения данного примера:

Начало:  2015-11-01 00:00:00 -04:00
Конец:   2015-11-02 00:00:00 -05:00

Пример #3 Добавление или вычитание времени может уменьшить или увеличить дату

Например, 31 января + 1 месяц вернет 2 марта (високосный год) или 3 марта (обычный год).

<?php
echo "Обычный год:\n"; // В феврале 28 дней
$dt = new DateTime("2015-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Начало: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt->modify("+1 month");
echo "Конец:  ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;

echo "Високосный год:\n"; // В феврале 29 дней
$dt = new DateTime("2016-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Начало: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt->modify("+1 month");
echo "Конец:  ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

Результат выполнения данного примера:

Обычный год:
Начало: 2015-01-31 00:00:00 -05:00
Конец:  2015-03-03 00:00:00 -05:00
Високосный год:
Начало: 2016-01-31 00:00:00 -05:00
Конец:  2016-03-02 00:00:00 -05:00

Для получения последнего дня следующего месяца (то есть чтобы предотвратить переполнение), с PHP 5.3.0 существует директива last day of.

<?php
echo "Обычный год:\n"; // Февраль содержит 28 дней
$dt = new DateTime("2015-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Начало: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt->modify("last day of next month");
echo "Конец:  ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;

echo "Високосный год:\n"; // Февраль содержит 29 дней
$dt = new DateTime("2016-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Начало: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt->modify("last day of next month");
echo "Конец:  ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

Результат выполнения данного примера:

Обычный год:
Начало: 2015-01-31 00:00:00 -05:00
Конец:  2015-02-28 00:00:00 -05:00
Високосный год:
Начало: 2016-01-31 00:00:00 -05:00
Конец:  2016-02-29 00:00:00 -05:00


Класс DateTime

(PHP 5 >= 5.2.0, PHP 7)

Введение

Представление даты и времени.

Обзор классов

/* Методы */
public __construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )
public add ( DateInterval $interval ) : DateTime
public static createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] ) : DateTime
public static createFromImmutable ( DateTimeImmutable $datetime ) : DateTime
public static getLastErrors ( void ) : array
public modify ( string $modify ) : DateTime
public static __set_state ( array $array ) : DateTime
public setDate ( int $year , int $month , int $day ) : DateTime
public setISODate ( int $year , int $week [, int $day = 1 ] ) : DateTime
public setTime ( int $hour , int $minute [, int $second = 0 [, int $microseconds = 0 ]] ) : DateTime
public setTimestamp ( int $unixtimestamp ) : DateTime
public setTimezone ( DateTimeZone $timezone ) : DateTime
public sub ( DateInterval $interval ) : DateTime
public diff ( DateTimeInterface $datetime2 [, bool $absolute = FALSE ] ) : DateInterval
public format ( string $format ) : string
public getOffset ( void ) : int
public getTimestamp ( void ) : int
public getTimezone ( void ) : DateTimeZone
public __wakeup ( void )

Список изменений

Версия | Описание
7.2.0 | Константы класса теперь DateTime определены в DateTimeInterface.
7.0.0 | Добавлены константы: DATE_RFC3339_EXTENDED и DateTime::RFC3339_EXTENDED.
5.5.0 | Класс теперь реализует DateTimeInterface.
5.4.24 | Константа COOKIE изменена, чтобы соответствовать RFC 1036, где используются 4 цифры года вместо двух (RFC 850), как было в предыдущих версиях.
5.2.2 | Результаты сравнения DateTime объектов при использовании операторов сравнения теперь соответствуют смыслу этих операторов. Ранее все объекты DateTime считались равными (==).

Содержание

  • DateTime::add — Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime
  • DateTime::__construct — Конструктор класса DateTime
  • DateTime::createFromFormat — Разбирает строку с датой согласно указанному формату
  • DateTime::createFromImmutable — Возвращает объект DateTime инкапсулирующий заданный объект DateTimeImmutable
  • DateTime::getLastErrors — Возвращает предупреждения и ошибки
  • DateTime::modify — Изменение временной метки
  • DateTime::__set_state — Обработчик __set_state
  • DateTime::setDate — Устанавливает дату
  • DateTime::setISODate — Устанавливает дату в формате ISO
  • DateTime::setTime — Устанавливает время
  • DateTime::setTimestamp — Устанавливает дату и время на основе метки времени Unix
  • DateTime::setTimezone — Устанавливает временную зоны для объекта класса DateTime
  • DateTime::sub — Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime


Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime

  • « DateTime
  • DateTime::__construct »
  • PHP Manual
  • DateTime
  • Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime

DateTime::add

date_add

(PHP 5 >= 5.3.0, PHP 7)

DateTime::add -- date_add — Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime

Описание

Объектно-ориентированный стиль

public DateTime::add ( DateInterval $interval ) : DateTime

Процедурный стиль

date_add ( DateTime $object , DateInterval $interval ) : DateTime

Прибавляет заданный объект DateInterval к объекту DateTime.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

interval

Объект класса DateInterval

Возвращаемые значения

Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTime::add()

Объектно-ориентированный стиль

<?php
$date = new DateTime('2000-01-01');
$date->add(new DateInterval('P10D'));
echo $date->format('Y-m-d') . "\n";
?>

Процедурный стиль

<?php
$date = date_create('2000-01-01');
date_add($date, date_interval_create_from_date_string('10 days'));
echo date_format($date, 'Y-m-d');
?>

Результат выполнения данных примеров:

2000-01-11

Пример #2 Другие примеры с DateTime::add()

<?php
$date = new DateTime('2000-01-01');
$date->add(new DateInterval('PT10H30S'));
echo $date->format('Y-m-d H:i:s') . "\n";

$date = new DateTime('2000-01-01');
$date->add(new DateInterval('P7Y5M4DT4H3M2S'));
echo $date->format('Y-m-d H:i:s') . "\n";
?>

Результат выполнения данного примера:

2000-01-01 10:00:30
2007-06-05 04:03:02

Пример #3 Будьте внимательны при добавлении месяцев

<?php
$date = new DateTime('2000-12-31');
$interval = new DateInterval('P1M');

$date->add($interval);
echo $date->format('Y-m-d') . "\n";

$date->add($interval);
echo $date->format('Y-m-d') . "\n";
?>

Результат выполнения данного примера:

2001-01-31
2001-03-03

Примечания

При работе с PHP 5.2 в качестве альтернативы можно воспользоваться функцией DateTime::modify().

Смотрите также

  • DateTime::sub() - Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime
  • DateTime::diff() - Возвращает разницу между двумя объектами DateTime
  • DateTime::modify() - Изменение временной метки


Конструктор класса DateTime

  • « DateTime::add
  • DateTime::createFromFormat »
  • PHP Manual
  • DateTime
  • Конструктор класса DateTime

DateTime::__construct

date_create

(PHP 5 >= 5.2.0, PHP 7)

DateTime::__construct -- date_create — Конструктор класса DateTime

Описание

Объектно-ориентированный стиль

public DateTime::__construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

Процедурный стиль

date_create ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] ) : DateTime

Создает и возвращает новый экземпляр класса DateTime.

Список параметров

time

Строка даты/времени. Объяснение корректных форматов дано в разделе Форматы даты и времени.

Если используется аргумент $timezone, то для получения текущего времени в новом объекте достаточно передать "now" в качестве этого аргумента.

timezone

Объект класса DateTimeZone, представляющий временную зону параметра $time.

Если аргумент $timezone не задан, будет использована текущая временная зона.

Замечание:

Значение аргумента $timezone равно как и текущая временная зона не будут учитываться, если в качестве аргумента $time передается метка времени UNIX (например @946684800) или время, в котором временная зона уже содержится (например 2010-01-28T15:00:00+02:00).

Возвращаемые значения

Возвращает созданный объект класса DateTime. Процедурный стиль возвращает FALSE в случае возникновения ошибки.

Ошибки

В случае ошибки выбрасывает исключение Exception.

Список изменений

Версия | Описание
7.1 | Теперь микросекунды будут заполняться корректным значением, а не '00000'.
5.3.0 | В случае задания параметру time неверного формата даты/времени выбрасывается исключение. Раньше скрипт выдавал ошибку.

Примеры

Пример #1 Пример использования DateTime::__construct()

Объектно-ориентированный стиль

<?php
try {
    $date = new DateTime('2000-01-01');
} catch (Exception $e) {
    echo $e->getMessage();
    exit(1);
}

echo $date->format('Y-m-d');
?>

Процедурный стиль

<?php
$date = date_create('2000-01-01');
if (!$date) {
    $e = date_get_last_errors();
    foreach ($e['errors'] as $error) {
        echo "$error\n";
    }
    exit(1);
}

echo date_format($date, 'Y-m-d');
?>

Результат выполнения данных примеров:

2000-01-01

Пример #2 Хитрости при использовании DateTime::__construct()

<?php
// Дата/время во временной зоне Вашего компьютера.
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Дата/время в заданной временной зоне.
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Текущие дата и время во временной зоне Вашего компьютера.
$date = new DateTime();
echo $date->format('Y-m-d H:i:sP') . "\n";

// Текущие дата и время в заданной временной зоне.
$date = new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Использование метки времени UNIX.
// Обратите внимание: результат во временной зоне UTC.
$date = new DateTime('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Несуществующие значения все равно обрабатываются.
$date = new DateTime('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

2000-01-01 00:00:00-05:00
2000-01-01 00:00:00+12:00
2010-04-24 10:24:16-04:00
2010-04-25 02:24:16+12:00
2000-01-01 00:00:00+00:00
2000-03-01 00:00:00-05:00

Смотрите также

  • DateTime::createFromFormat() - Разбирает строку с датой согласно указанному формату
  • DateTimeZone::__construct() - Создает новый объект DateTimeZone
  • Форматы даты и времени
  • date.timezone ini настройка
  • date_default_timezone_set() - Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте
  • DateTime::getLastErrors() - Возвращает предупреждения и ошибки
  • checkdate() - Проверяет корректность даты по григорианскому календарю


Разбирает строку с датой согласно указанному формату

  • « DateTime::__construct
  • DateTime::createFromImmutable »
  • PHP Manual
  • DateTime
  • Разбирает строку с датой согласно указанному формату

DateTime::createFromFormat

date_create_from_format

(PHP 5 >= 5.3.0, PHP 7)

DateTime::createFromFormat -- date_create_from_format — Разбирает строку с датой согласно указанному формату

Описание

Объектно-ориентированный стиль

public static DateTime::createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] ) : DateTime

Процедурный стиль

date_create_from_format ( string $format , string $time [, DateTimeZone $timezone ] ) : DateTime

Создает и возвращает экземпляр класса DateTime, соответствующий заданному формату.

Список параметров

format

Формат даты и времени в виде строки (string), которому соответствует значение второго аргумента функции. Список вариантов форматирования представлен ниже. В большинстве случаев, при форматировании используются те же символы, что и в функции date().

Список возможных символов для составления строки format
Символ в строке format | Описание | Возможные значения
День --- ---
d и j | День месяца, 2 цифры с нулем в начале или без него | От 01 до 31 либо от 1 до 31
D и l | Текстовое представление дня месяца | От Mon до Sun либо от Sunday до Saturday
S | Суффикс для числа в английской нумерации, 2 буквы. Эти буквы будут пропущены при разборе строки. | st, nd, rd или th.
z | Номер дня с начала года (начиная с нуля) | C 0 по 365
Месяц --- ---
F и M | Текстовое представление месяца, например January или Sept | С January по December либо с Jan по Dec
m и n | Числовое представление месяца с первым нулем или без него | С 01 по 12 либо с 1 по 12
Год --- ---
Y | Полное числовое представление года, 4 цифры | Примеры: 1999 или 2003
y | 2 цифры в представлении года (в диапазоне 1970-2069 включительно) | Примеры: 99 или 03 (будет расшифровано как 1999 и 2003 соответственно)
Время --- ---
a и A | До полудня и После полудня | am или pm
g и h | 12-ти часовой формат времени с первым нулем или без него | С 1 по 12 либо с 01 по 12
G и H | 24-х часовой формат времени с нулем в начале или без него | С 0 по 23 или с 00 по 23
i | Минуты с нулем в начале | С 00 по 59
s | Секунды с нулем в начале | От 00 до 59
v | Миллисекунды (до 3 цифр) | Примеры: 12, 345
u | Микросекунды (до 6 цифр) | Примеры: 45, 654321
Временная зона --- ---
e, O, P и T | Идентификатор временной зоны, либо разница в часах относительно UTC, либо разница относительно UTC с двоеточием между часами и минутами, либо аббревиатура временной зоны | Примеры: UTC, GMT, Atlantic/Azores или +0200 или +02:00 или EST, MDT
Дата/Время полностью --- ---
U | Количество секунд с начала Эпохи Unix (January 1 1970 00:00:00 GMT) | Пример: 1292177455
Пробел и Разделители --- ---
(пробел) | Один пробел или один отступ табуляции | Пример:
# Один из следующих символов: ;, :, /, ., ,, -, ( или ) Пример: /
;, :, /, ., ,, -, ( или ) | Символ разделитель. | Пример: -
? Один случайный (любой) символ Пример: ^ (Будьте внимательны: в UTF-8 кодировке вам может потребоваться более одного ?, так как там один символ может занимать более одного байта. В таких случаях может помочь использование *.
* Любое количество любых символов до следующего разделителя Пример: * в Y-*-d для строки 2009-aWord-08 будет соответствовать aWord
! Приводит значения всех полей (год, месяц, день, час, минута, секунда, временная зона) ко времени начала Эпохи Unix. Без ! все поля будут соответствовать текущему времени.
| Приводит значения незаданных полей (год, месяц, день, час, минута, секунда, временная зона) ко времени начала Эпохи Unix. Y-m-d| установит год, месяц и день в соответствии с данными в строке, а часы, минуты и секунды установит в 0.
+ Если задан этот спецификатор, данные, завершающие строку (нуль байт например) не будут вызывать ошибку, только предупреждение Используйте DateTime::getLastErrors() для определения, были ли в строке завершающие символы.

Наличие в строке формата нераспознаваемых символов, отсутствующих в списке выше, приведет к ошибке разбора строки. В этом случае сообщение об ошибке будет добавлено в возвращаемую структуру. Получить это сообщение можно с помощью функции DateTime::getLastErrors().

Для вставки в format буквенного символа, вы должны экранировать его с помощью обратного слеша(\).

Если format не содержит символ !, то значения полей, не заданных в строке формата, будут установлены в соответствии с текущим временем.

Если format содержит символ !, то значения полей, не заданных в строке формата (равно как и значения полей слева от !) будут установлены в соответствии со значениями полей начала Эпохи Unix.

Начало эпохи Unix 1970-01-01 00:00:00 UTC.

time

Строка, представляющая время.

timezone

Объект класса DateTimeZone, представляющий ожидаемую временную зону.

Если timezone не указан и time не содержит временную зону, то будет использована текущая временная зона.

Замечание:

Параметр timezone и текущая временная зона будут проигнорированы, если параметр time также содержит метку времени UNIX (то есть timestamp вида 946684800) или же указанную временную зону (то есть 2010-01-28T15:00:00+02:00).

Возвращаемые значения

Возвращает созданный экземпляр класса DateTime или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3.0 | Для format добавлен спецификатор v.
5.3.9 | Для format добавлен спецификатор +.

Примеры

Пример #1 Пример использования DateTime::createFromFormat()

Объектно-ориентированный стиль

<?php
$date = DateTime::createFromFormat('j-M-Y', '15-Feb-2009');
echo $date->format('Y-m-d');
?>

Процедурный стиль

<?php
$date = date_create_from_format('j-M-Y', '15-Feb-2009');
echo date_format($date, 'Y-m-d');
?>

Результат выполнения данных примеров:

2009-02-15

Пример #2 Хитрости при использовании DateTime::createFromFormat()

<?php
echo 'Текущее время: ' . date('Y-m-d H:i:s') . "\n";

$format = 'Y-m-d';
$date = DateTime::createFromFormat($format, '2009-02-15');
echo "Формат: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = 'Y-m-d H:i:s';
$date = DateTime::createFromFormat($format, '2009-02-15 15:16:17');
echo "Формат: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = 'Y-m-!d H:i:s';
$date = DateTime::createFromFormat($format, '2009-02-15 15:16:17');
echo "Формат: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = '!d';
$date = DateTime::createFromFormat($format, '15');
echo "Формат: $format; " . $date->format('Y-m-d H:i:s') . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Текущее время: 2010-04-23 10:29:35
Формат: Y-m-d; 2009-02-15 10:29:35
Формат: Y-m-d H:i:s; 2009-02-15 15:16:17
Формат: Y-m-!d H:i:s; 1970-01-15 15:16:17
Формат: !d; 1970-01-15 00:00:00

Пример #3 Формат строки с буквенными символами

<?php
echo DateTime::createFromFormat('H\h i\m s\s','23h 15m 03s')->format('H:i:s');
?>

Результатом выполнения данного примера будет что-то подобное:

23:15:03

Смотрите также

  • DateTime::__construct() - Конструктор класса DateTime
  • DateTime::getLastErrors() - Возвращает предупреждения и ошибки
  • checkdate() - Проверяет корректность даты по григорианскому календарю
  • strptime() - Разбирает строку даты/времени, сгенерированную функцией strftime


Возвращает объект DateTime инкапсулирующий заданный объект DateTimeImmutable

  • « DateTime::createFromFormat
  • DateTime::getLastErrors »
  • PHP Manual
  • DateTime
  • Возвращает объект DateTime инкапсулирующий заданный объект DateTimeImmutable

DateTime::createFromImmutable

(PHP 7 >= 7.3.0)

DateTime::createFromImmutable — Возвращает объект DateTime инкапсулирующий заданный объект DateTimeImmutable

Описание

public static DateTime::createFromImmutable ( DateTimeImmutable $datetime ) : DateTime

Список параметров

datetime

Неизменяемый объект DateTimeImmutable, который нуждается в преобразовании в изменяемую форму. Сам объект не изменяется, а вместо этого создается новый объект класса DateTime, содержащий те же данные: дату, время и временную зону.

Примеры

Пример #1 Создание изменяемого объекта

<?php
$date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");

$mutable = DateTime::createFromImmutable( $date );
?>

Возвращаемые значения

Возвращает новый объект класса DateTime.


Возвращает предупреждения и ошибки

  • « DateTime::createFromImmutable
  • DateTime::modify »
  • PHP Manual
  • DateTime
  • Возвращает предупреждения и ошибки

DateTime::getLastErrors

date_get_last_errors

(PHP 5 >= 5.3.0, PHP 7)

DateTime::getLastErrors -- date_get_last_errors — Возвращает предупреждения и ошибки

Описание

Объектно-ориентированный стиль

public static DateTime::getLastErrors ( void ) : array

Процедурный стиль

date_get_last_errors ( void ) : array

Возвращает массив содержащий сообщения об ошибках и предупреждения, обнаруженные при разборе строки даты/времени.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив содержащий информацию об ошибках и предупреждениях.

Примеры

Пример #1 Пример использования DateTime::getLastErrors()

Объектно-ориентированный стиль

<?php
try {
    $date = new DateTime('asdfasdf');
} catch (Exception $e) {
    // Только в целях демонстрации...
    print_r(DateTime::getLastErrors());

    // делать это в объектно-ориентированном стиле лучше так:
    // echo $e->getMessage();
}
?>

Процедурный стиль

<?php
$date = date_create('asdfasdf');
print_r(date_get_last_errors());
?>

Результат выполнения данных примеров:

Array
(
   [warning_count] => 1
   [warnings] => Array
       (
           [6] => Double timezone specification
       )

   [error_count] => 1
   [errors] => Array
       (
           [0] => The timezone could not be found in the database
       )

)

Индексы 6 и 0 указывают на символьные позиции в строке, где произошла ошибка.


Изменение временной метки

  • « DateTime::getLastErrors
  • DateTime::__set_state »
  • PHP Manual
  • DateTime
  • Изменение временной метки

DateTime::modify

date_modify

(PHP 5 >= 5.2.0, PHP 7)

DateTime::modify -- date_modify — Изменение временной метки

Описание

Объектно-ориентированный стиль

public DateTime::modify ( string $modify ) : DateTime

Процедурный стиль

date_modify ( DateTime $object , string $modify ) : DateTime

Изменяет метку времени объекта DateTime путем добавления или вычитания времени в формате, принятом для функции strtotime().

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

modify

Строка даты/времени. Объяснение корректных форматов дано в разделе Форматы даты и времени.

Возвращаемые значения

Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.6 | Стало возможным применять абсолютные значения объектов даты/времени. Раньше использовались только относительные значения полей даты/времени.
5.3.0 | Изменено значение успешной работы функции с NULL на DateTime.

Примеры

Пример #1 Пример использования DateTime::modify()

Объектно-ориентированный стиль

<?php
$date = new DateTime('2006-12-12');
$date->modify('+1 day');
echo $date->format('Y-m-d');
?>

Процедурный стиль

<?php
$date = date_create('2006-12-12');
date_modify($date, '+1 day');
echo date_format($date, 'Y-m-d');
?>

Результат выполнения данных примеров:

2006-12-13

Пример #2 Будьте осторожны при добавлении и вычитании месяцев

<?php
$date = new DateTime('2000-12-31');

$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";

$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";
?>

Результат выполнения данного примера:

2001-01-31
2001-03-03

Смотрите также

  • strtotime() - Преобразует текстовое представление даты на английском языке в метку времени Unix
  • DateTime::add() - Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime
  • DateTime::sub() - Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime
  • DateTime::setDate() - Устанавливает дату
  • DateTime::setISODate() - Устанавливает дату в формате ISO
  • DateTime::setTime() - Устанавливает время
  • DateTime::setTimestamp() - Устанавливает дату и время на основе метки времени Unix


Обработчик __set_state

  • « DateTime::modify
  • DateTime::setDate »
  • PHP Manual
  • DateTime
  • Обработчик __set_state

DateTime::__set_state

(PHP 5 >= 5.3.0, PHP 7)

DateTime::__set_state — Обработчик __set_state

Описание

public static DateTime::__set_state ( array $array ) : DateTime

Обработчик __set_state().

Список параметров

array

Массив для инициализации.

Возвращаемые значения

Возвращает новый экземпляр класса DateTime.


Устанавливает дату

  • « DateTime::__set_state
  • DateTime::setISODate »
  • PHP Manual
  • DateTime
  • Устанавливает дату

DateTime::setDate

date_date_set

(PHP 5 >= 5.2.0, PHP 7)

DateTime::setDate -- date_date_set — Устанавливает дату

Описание

Объектно-ориентированный стиль

public DateTime::setDate ( int $year , int $month , int $day ) : DateTime

Процедурный стиль

date_date_set ( DateTime $object , int $year , int $month , int $day ) : DateTime

Переустанавливает текущее значение даты объекта DateTime в новое значение.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

year

Год новой даты.

month

Месяц новой даты.

day

День новой даты.

Возвращаемые значения

Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Изменено значение успешной работы функции с NULL на DateTime.

Примеры

Пример #1 Пример использования DateTime::setDate()

Объектно-ориентированный стиль

<?php
$date = new DateTime();
$date->setDate(2001, 2, 3);
echo $date->format('Y-m-d');
?>

Процедурный стиль

<?php
$date = date_create();
date_date_set($date, 2001, 2, 3);
echo date_format($date, 'Y-m-d');
?>

Результат выполнения данных примеров:

2001-02-03

Пример #2 Значения, превышающие диапазон своего поля, добавляются к старшим полям

<?php
$date = new DateTime();

$date->setDate(2001, 2, 28);
echo $date->format('Y-m-d') . "\n";

$date->setDate(2001, 2, 29);
echo $date->format('Y-m-d') . "\n";

$date->setDate(2001, 14, 3);
echo $date->format('Y-m-d') . "\n";
?>

Результат выполнения данного примера:

2001-02-28
2001-03-01
2002-02-03

Смотрите также

  • DateTime::setISODate() - Устанавливает дату в формате ISO
  • DateTime::setTime() - Устанавливает время


Устанавливает дату в формате ISO

  • « DateTime::setDate
  • DateTime::setTime »
  • PHP Manual
  • DateTime
  • Устанавливает дату в формате ISO

DateTime::setISODate

date_isodate_set

(PHP 5 >= 5.2.0, PHP 7)

DateTime::setISODate -- date_isodate_set — Устанавливает дату в формате ISO

Описание

Объектно-ориентированный стиль

public DateTime::setISODate ( int $year , int $week [, int $day = 1 ] ) : DateTime

Процедурный стиль

date_isodate_set ( DateTime $object , int $year , int $week [, int $day = 1 ] ) : DateTime

Установка даты в соответствии со стандартом ISO 8601, в котором использование недель и смещения в днях предпочтительней указания даты.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

year

Год новой даты.

week

Неделя новой даты.

day

Смещение относительно начала недели.

Возвращаемые значения

Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Изменено значение успешной работы функции с NULL на DateTime.

Примеры

Пример #1 Пример использования DateTime::setISODate()

Объектно-ориентированный стиль

<?php
$date = new DateTime();

$date->setISODate(2008, 2);
echo $date->format('Y-m-d') . "\n";

$date->setISODate(2008, 2, 7);
echo $date->format('Y-m-d') . "\n";
?>

Процедурный стиль

<?php
$date = date_create();

date_isodate_set($date, 2008, 2);
echo date_format($date, 'Y-m-d') . "\n";

date_isodate_set($date, 2008, 2, 7);
echo date_format($date, 'Y-m-d') . "\n";
?>

Результат выполнения данных примеров:

2008-01-07
2008-01-13

Пример #2 Значения, превышающие допустимые пределы, добавляются к старшим полям

<?php
$date = new DateTime();

$date->setISODate(2008, 2, 7);
echo $date->format('Y-m-d') . "\n";

$date->setISODate(2008, 2, 8);
echo $date->format('Y-m-d') . "\n";

$date->setISODate(2008, 53, 7);
echo $date->format('Y-m-d') . "\n";
?>

Результат выполнения данного примера:

2008-01-13
2008-01-14
2009-01-04

Пример #3 Поиск месяца по номеру недели

<?php
$date = new DateTime();
$date->setISODate(2008, 14);
echo $date->format('n');
?>

Результат выполнения данных примеров:

3

Смотрите также

  • DateTime::setDate() - Устанавливает дату
  • DateTime::setTime() - Устанавливает время


Устанавливает время

  • « DateTime::setISODate
  • DateTime::setTimestamp »
  • PHP Manual
  • DateTime
  • Устанавливает время

DateTime::setTime

date_time_set

(PHP 5 >= 5.2.0, PHP 7)

DateTime::setTime -- date_time_set — Устанавливает время

Описание

Объектно-ориентированный стиль

public DateTime::setTime ( int $hour , int $minute [, int $second = 0 [, int $microseconds = 0 ]] ) : DateTime

Процедурный стиль

date_time_set ( DateTime $object , int $hour , int $minute [, int $second = 0 [, int $microseconds = 0 ]] ) : DateTime

Переустанавливает текущее значение времени объекта DateTime в новое значение.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

hour

Час нового времени.

minute

Минуты нового времени.

second

Секунды нового времени.

microseconds

Микросекунды.

Возвращаемые значения

Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.0 | Добавлен параметр microseconds.
5.3.0 | Изменено значение успешной работы функции с NULL на DateTime.

Примеры

Пример #1 Пример использования DateTime::setTime()

Объектно-ориентированный стиль

<?php
$date = new DateTime('2001-01-01');

$date->setTime(14, 55);
echo $date->format('Y-m-d H:i:s') . "\n";

$date->setTime(14, 55, 24);
echo $date->format('Y-m-d H:i:s') . "\n";
?>

Процедурный стиль

<?php
$date = date_create('2001-01-01');

date_time_set($date, 14, 55);
echo date_format($date, 'Y-m-d H:i:s') . "\n";

date_time_set($date, 14, 55, 24);
echo date_format($date, 'Y-m-d H:i:s') . "\n";
?>

Результатом выполнения данных примеров будет что-то подобное:

2001-01-01 14:55:00
2001-01-01 14:55:24

Пример #2 Значения, превышающие диапазон своего поля, добавляются к старшим полям

<?php
$date = new DateTime('2001-01-01');

$date->setTime(14, 55, 24);
echo $date->format('Y-m-d H:i:s') . "\n";

$date->setTime(14, 55, 65);
echo $date->format('Y-m-d H:i:s') . "\n";

$date->setTime(14, 65, 24);
echo $date->format('Y-m-d H:i:s') . "\n";

$date->setTime(25, 55, 24);
echo $date->format('Y-m-d H:i:s') . "\n";
?>

Результат выполнения данного примера:

2001-01-01 14:55:24
2001-01-01 14:56:05
2001-01-01 15:05:24
2001-01-02 01:55:24

Смотрите также

  • DateTime::setDate() - Устанавливает дату
  • DateTime::setISODate() - Устанавливает дату в формате ISO


Устанавливает дату и время на основе метки времени Unix

  • « DateTime::setTime
  • DateTime::setTimezone »
  • PHP Manual
  • DateTime
  • Устанавливает дату и время на основе метки времени Unix

DateTime::setTimestamp

date_timestamp_set

(PHP 5 >= 5.3.0, PHP 7)

DateTime::setTimestamp -- date_timestamp_set — Устанавливает дату и время на основе метки времени Unix

Описание

Объектно-ориентированный стиль

public DateTime::setTimestamp ( int $unixtimestamp ) : DateTime

Процедурный стиль

date_timestamp_set ( DateTime $object , int $unixtimestamp ) : DateTime

Устанавливает дату и время, основываясь на метке времени Unix.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

unixtimestamp

Метка времени Unix, представляющая дату.

Возвращаемые значения

Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTime::setTimestamp()

Объектно-ориентированный стиль

<?php
$date = new DateTime();
echo $date->format('U = Y-m-d H:i:s') . "\n";

$date->setTimestamp(1171502725);
echo $date->format('U = Y-m-d H:i:s') . "\n";
?>

Процедурный стиль

<?php
$date = date_create();
echo date_format($date, 'U = Y-m-d H:i:s') . "\n";

date_timestamp_set($date, 1171502725);
echo date_format($date, 'U = Y-m-d H:i:s') . "\n";
?>

Результатом выполнения данных примеров будет что-то подобное:

1272508903 = 2010-04-28 22:41:43
1171502725 = 2007-02-14 20:25:25

Примечания

Использование меток времени Unix для создания экземпляров DateTime является альтернативным при работе с PHP 5.2. См. пример ниже.

Пример #2 Использование DateTime::setTimestamp() в качестве альтернативы в PHP 5.2

<?php
$ts = 1171502725;
$date = new DateTime("@$ts");
echo $date->format('U = Y-m-d H:i:s') . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

1171502725 = 2007-02-14 20:25:25

Смотрите также

  • DateTime::getTimestamp() - Возвращает временную метку Unix


Устанавливает временную зоны для объекта класса DateTime

  • « DateTime::setTimestamp
  • DateTime::sub »
  • PHP Manual
  • DateTime
  • Устанавливает временную зоны для объекта класса DateTime

DateTime::setTimezone

date_timezone_set

(PHP 5 >= 5.2.0, PHP 7)

DateTime::setTimezone -- date_timezone_set — Устанавливает временную зоны для объекта класса DateTime

Описание

Объектно-ориентированный стиль

public DateTime::setTimezone ( DateTimeZone $timezone ) : DateTime

Процедурный стиль

date_timezone_set ( DateTime $object , DateTimeZone $timezone ) : DateTime

Устанавливает новую временную зону для DateTime object.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

timezone

Объект класса DateTimeZone, представляющий требуемую временную зону.

Возвращаемые значения

Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Изменено значение успешной работы функции с NULL на DateTime.

Примеры

Пример #1 Пример использования DateTime::setTimeZone()

Объектно-ориентированный стиль

<?php
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . "\n";
?>

Процедурный стиль

<?php
$date = date_create('2000-01-01', timezone_open('Pacific/Nauru'));
echo date_format($date, 'Y-m-d H:i:sP') . "\n";

date_timezone_set($date, timezone_open('Pacific/Chatham'));
echo date_format($date, 'Y-m-d H:i:sP') . "\n";
?>

Результат выполнения данных примеров:

2000-01-01 00:00:00+12:00
2000-01-01 01:45:00+13:45

Смотрите также

  • DateTime::getTimezone() - Возвращает временному зону относительно текущему значению DateTime
  • DateTimeZone::__construct() - Создает новый объект DateTimeZone


Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime

  • « DateTime::setTimezone
  • DateTimeImmutable »
  • PHP Manual
  • DateTime
  • Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime

DateTime::sub

date_sub

(PHP 5 >= 5.3.0, PHP 7)

DateTime::sub -- date_sub — Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime

Описание

Объектно-ориентированный стиль

public DateTime::sub ( DateInterval $interval ) : DateTime

Процедурный стиль

date_sub ( DateTime $object , DateInterval $interval ) : DateTime

Вычитает из времени объекта DateTime заданный интервал DateInterval.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

interval

Объект класса DateInterval

Возвращаемые значения

Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTime::sub()

Объектно-ориентированный стиль

<?php
$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('P10D'));
echo $date->format('Y-m-d') . "\n";
?>

Процедурный стиль

<?php
$date = date_create('2000-01-20');
date_sub($date, date_interval_create_from_date_string('10 days'));
echo date_format($date, 'Y-m-d');
?>

Результат выполнения данных примеров:

2000-01-10

Пример #2 Другие примеры DateTime::sub()

<?php
$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('PT10H30S'));
echo $date->format('Y-m-d H:i:s') . "\n";

$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('P7Y5M4DT4H3M2S'));
echo $date->format('Y-m-d H:i:s') . "\n";
?>

Результат выполнения данного примера:

2000-01-19 13:59:30
1992-08-15 19:56:58

Пример #3 Будьте внимательны при вычитании месяцев

<?php
$date = new DateTime('2001-04-30');
$interval = new DateInterval('P1M');

$date->sub($interval);
echo $date->format('Y-m-d') . "\n";

$date->sub($interval);
echo $date->format('Y-m-d') . "\n";
?>

Результат выполнения данного примера:

2001-03-30
2001-03-02

Примечания

При работе с PHP 5.2 в качестве альтернативы можно использовать функцию DateTime::modify().

Смотрите также

  • DateTime::add() - Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime
  • DateTime::diff() - Возвращает разницу между двумя объектами DateTime
  • DateTime::modify() - Изменение временной метки


Класс DateTimeImmutable

(PHP 5 >= 5.5.0, PHP 7)

Введение

Данный класс ведет себя аналогично классу DateTime, за исключением того, что он никогда не изменяет себя, а вместо этого возвращает новый объект.

Обзор классов

DateTimeImmutable implements DateTimeInterface {
/* Наследуемые константы */
const string DateTimeInterface::ATOM = "Y-m-d\TH:i:sP" ;
const string DateTimeInterface::COOKIE = "l, d-M-Y H:i:s T" ;
const string DateTimeInterface::ISO8601 = "Y-m-d\TH:i:sO" ;
const string DateTimeInterface::RFC822 = "D, d M y H:i:s O" ;
const string DateTimeInterface::RFC850 = "l, d-M-y H:i:s T" ;
const string DateTimeInterface::RFC1036 = "D, d M y H:i:s O" ;
const string DateTimeInterface::RFC1123 = "D, d M Y H:i:s O" ;
const string DateTimeInterface::RFC2822 = "D, d M Y H:i:s O" ;
const string DateTimeInterface::RFC3339 = "Y-m-d\TH:i:sP" ;
const string DateTimeInterface::RFC3339_EXTENDED = "Y-m-d\TH:i:s.vP" ;
const string DateTimeInterface::RSS = "D, d M Y H:i:s O" ;
const string DateTimeInterface::W3C = "Y-m-d\TH:i:sP" ;
/* Методы */
public __construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )
public add ( DateInterval $interval ) : DateTimeImmutable
public static createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] ) : DateTimeImmutable
public static createFromMutable ( DateTime $datetime ) : DateTimeImmutable
public static getLastErrors ( void ) : array
public modify ( string $modify ) : DateTimeImmutable
public static __set_state ( array $array ) : DateTimeImmutable
public setDate ( int $year , int $month , int $day ) : DateTimeImmutable
public setISODate ( int $year , int $week [, int $day = 1 ] ) : DateTimeImmutable
public setTime ( int $hour , int $minute [, int $second = 0 [, int $microseconds = 0 ]] ) : DateTimeImmutable
public setTimestamp ( int $unixtimestamp ) : DateTimeImmutable
public setTimezone ( DateTimeZone $timezone ) : DateTimeImmutable
public sub ( DateInterval $interval ) : DateTimeImmutable
public diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] ) : DateInterval
public format ( string $format ) : string
public getOffset ( void ) : int
public getTimestamp ( void ) : int
public getTimezone ( void ) : DateTimeZone
public __wakeup ( void )
}

Содержание

  • DateTimeImmutable::add — Добавляет указанное количество дней, месяцев, лет, часов, минут и секунд
  • DateTimeImmutable::__construct — Возвращает новый объект DateTimeImmutable
  • DateTimeImmutable::createFromFormat — Разбирает строку с датой согласно указанному формату
  • DateTimeImmutable::createFromMutable — Возвращает новый объект DateTimeImmutable, содержащий заданный объект DateTime
  • DateTimeImmutable::getLastErrors — Возвращает предупреждения и ошибки
  • DateTimeImmutable::modify — Создает новый объект с измененной временной меткой
  • DateTimeImmutable::__set_state — Обработчик __set_state
  • DateTimeImmutable::setDate — Устанавливает дату
  • DateTimeImmutable::setISODate — Устанавливает дату в формате ISO
  • DateTimeImmutable::setTime — Устанавливает время
  • DateTimeImmutable::setTimestamp — Устанавливает дату и время на основе метки времени Unix
  • DateTimeImmutable::setTimezone — Устанавливает временную зону
  • DateTimeImmutable::sub — Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд


Добавляет указанное количество дней, месяцев, лет, часов, минут и секунд

  • « DateTimeImmutable
  • DateTimeImmutable::__construct »
  • PHP Manual
  • DateTimeImmutable
  • Добавляет указанное количество дней, месяцев, лет, часов, минут и секунд

DateTimeImmutable::add

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::add — Добавляет указанное количество дней, месяцев, лет, часов, минут и секунд

Описание

public DateTimeImmutable::add ( DateInterval $interval ) : DateTimeImmutable

Данный метод похож на DateTime::add(), но работает с DateTimeImmutable.


Возвращает новый объект DateTimeImmutable

  • « DateTimeImmutable::add
  • DateTimeImmutable::createFromFormat »
  • PHP Manual
  • DateTimeImmutable
  • Возвращает новый объект DateTimeImmutable

DateTimeImmutable::__construct

date_create_immutable

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::__construct -- date_create_immutable — Возвращает новый объект DateTimeImmutable

Описание

Объектно-ориентированный стиль

public DateTimeImmutable::__construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

Процедурный стиль

date_create_immutable ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] ) : DateTimeImmutable

Данный конструктор похож на DateTime::__construct(), но работает с DateTimeImmutable.


Разбирает строку с датой согласно указанному формату

  • « DateTimeImmutable::__construct
  • DateTimeImmutable::createFromMutable »
  • PHP Manual
  • DateTimeImmutable
  • Разбирает строку с датой согласно указанному формату

DateTimeImmutable::createFromFormat

date_create_immutable_from_format

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::createFromFormat -- date_create_immutable_from_format — Разбирает строку с датой согласно указанному формату

Описание

Объектно-ориентированный стиль

public static DateTimeImmutable::createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] ) : DateTimeImmutable

Процедурный стиль

date_create_immutable_from_format ( string $format , string $time [, DateTimeZone $timezone ] ) : DateTimeImmutable

Данный метод похож на DateTime::createFromFormat(), но работает с DateTimeImmutable.


Возвращает новый объект DateTimeImmutable, содержащий заданный объект DateTime

  • « DateTimeImmutable::createFromFormat
  • DateTimeImmutable::getLastErrors »
  • PHP Manual
  • DateTimeImmutable
  • Возвращает новый объект DateTimeImmutable, содержащий заданный объект DateTime

DateTimeImmutable::createFromMutable

(PHP 5 >= 5.6.0, PHP 7)

DateTimeImmutable::createFromMutable — Возвращает новый объект DateTimeImmutable, содержащий заданный объект DateTime

Описание

public static DateTimeImmutable::createFromMutable ( DateTime $datetime ) : DateTimeImmutable

Список параметров

datetime

Изменяемый объект DateTime, который вы хотите преобразовать в неизменяемую версию. Этот объект не изменяется, но вместо этого создается новый объект DateTimeImmutable, содержащий ту же самую информацию.

Примеры

Пример #1 Создание неизменяемого объекта даты/времени

<?php
$date = new DateTime("2014-06-20 11:45 Europe/London");

$immutable = DateTimeImmutable::createFromMutable( $date );
?>

Возвращаемые значения

Возвращает новый экземпляр DateTimeImmutable.


Возвращает предупреждения и ошибки

  • « DateTimeImmutable::createFromMutable
  • DateTimeImmutable::modify »
  • PHP Manual
  • DateTimeImmutable
  • Возвращает предупреждения и ошибки

DateTimeImmutable::getLastErrors

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::getLastErrors — Возвращает предупреждения и ошибки

Описание

public static DateTimeImmutable::getLastErrors ( void ) : array

Данный метод похож на DateTime::getLastErrors(), но работает с DateTimeImmutable.


Создает новый объект с измененной временной меткой

  • « DateTimeImmutable::getLastErrors
  • DateTimeImmutable::__set_state »
  • PHP Manual
  • DateTimeImmutable
  • Создает новый объект с измененной временной меткой

DateTimeImmutable::modify

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::modify — Создает новый объект с измененной временной меткой

Описание

public DateTimeImmutable::modify ( string $modify ) : DateTimeImmutable

Создает новый объект DateTimeImmutable с измененной временной меткой. Первоначальный объект не изменяется.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

modify

Строка даты/времени. Объяснение корректных форматов дано в разделе Форматы даты и времени.

Возвращаемые значения

Возвращает новый объект или FALSE в случае возникновения ошибки.


Обработчик __set_state

  • « DateTimeImmutable::modify
  • DateTimeImmutable::setDate »
  • PHP Manual
  • DateTimeImmutable
  • Обработчик __set_state

DateTimeImmutable::__set_state

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::__set_state — Обработчик __set_state

Описание

public static DateTimeImmutable::__set_state ( array $array ) : DateTimeImmutable

Данный метод похож на DateTime::__set_state(), но работает с DateTimeImmutable.


Устанавливает дату

  • « DateTimeImmutable::__set_state
  • DateTimeImmutable::setISODate »
  • PHP Manual
  • DateTimeImmutable
  • Устанавливает дату

DateTimeImmutable::setDate

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::setDate — Устанавливает дату

Описание

public DateTimeImmutable::setDate ( int $year , int $month , int $day ) : DateTimeImmutable

Данный метод похож на DateTime::setDate(), но работает с DateTimeImmutable.


Устанавливает дату в формате ISO

  • « DateTimeImmutable::setDate
  • DateTimeImmutable::setTime »
  • PHP Manual
  • DateTimeImmutable
  • Устанавливает дату в формате ISO

DateTimeImmutable::setISODate

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::setISODate — Устанавливает дату в формате ISO

Описание

public DateTimeImmutable::setISODate ( int $year , int $week [, int $day = 1 ] ) : DateTimeImmutable

Данный метод похож на DateTime::setISODate(), но работает с DateTimeImmutable.


Устанавливает время

  • « DateTimeImmutable::setISODate
  • DateTimeImmutable::setTimestamp »
  • PHP Manual
  • DateTimeImmutable
  • Устанавливает время

DateTimeImmutable::setTime

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::setTime — Устанавливает время

Описание

public DateTimeImmutable::setTime ( int $hour , int $minute [, int $second = 0 [, int $microseconds = 0 ]] ) : DateTimeImmutable

Данный метод похож на DateTime::setTime(), но работает с DateTimeImmutable.


Устанавливает дату и время на основе метки времени Unix

  • « DateTimeImmutable::setTime
  • DateTimeImmutable::setTimezone »
  • PHP Manual
  • DateTimeImmutable
  • Устанавливает дату и время на основе метки времени Unix

DateTimeImmutable::setTimestamp

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::setTimestamp — Устанавливает дату и время на основе метки времени Unix

Описание

public DateTimeImmutable::setTimestamp ( int $unixtimestamp ) : DateTimeImmutable

Данный метод похож на DateTime::setTimestamp(), но работает с DateTimeImmutable.


Устанавливает временную зону

  • « DateTimeImmutable::setTimestamp
  • DateTimeImmutable::sub »
  • PHP Manual
  • DateTimeImmutable
  • Устанавливает временную зону

DateTimeImmutable::setTimezone

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::setTimezone — Устанавливает временную зону

Описание

public DateTimeImmutable::setTimezone ( DateTimeZone $timezone ) : DateTimeImmutable

Данный метод похож на DateTime::setTimezone(), но работает с DateTimeImmutable.


Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд

  • « DateTimeImmutable::setTimezone
  • DateTimeInterface »
  • PHP Manual
  • DateTimeImmutable
  • Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд

DateTimeImmutable::sub

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::sub — Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд

Описание

public DateTimeImmutable::sub ( DateInterval $interval ) : DateTimeImmutable

Данный метод похож на DateTime::sub(), но работает с DateTimeImmutable.


Интерфейс DateTimeInterface

(PHP 5 >= 5.5.0, PHP 7)

Введение

Интерфейс DateTimeInterface обобщает работу DateTime и DateTimeImutable. Невозможно реализовать этот интерфейс с пользовательским классом.

Обзор классов

DateTimeInterface {
/* Константы */
const string ATOM = "Y-m-d\TH:i:sP" ;
const string COOKIE = "l, d-M-Y H:i:s T" ;
const string ISO8601 = "Y-m-d\TH:i:sO" ;
const string RFC822 = "D, d M y H:i:s O" ;
const string RFC850 = "l, d-M-y H:i:s T" ;
const string RFC1036 = "D, d M y H:i:s O" ;
const string RFC1123 = "D, d M Y H:i:s O" ;
const string RFC2822 = "D, d M Y H:i:s O" ;
const string RFC3339 = "Y-m-d\TH:i:sP" ;
const string RFC3339_EXTENDED = "Y-m-d\TH:i:s.vP" ;
const string RSS = "D, d M Y H:i:s O" ;
const string W3C = "Y-m-d\TH:i:sP" ;
/* Методы */
public diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] ) : DateInterval
public format ( string $format ) : string
public getOffset ( void ) : int
public getTimestamp ( void ) : int
public getTimezone ( void ) : DateTimeZone
public __wakeup ( void )
}

Предопределенные константы

DateTime::ATOM
DATE_ATOM
Atom (пример: 2005-08-15T15:52:01+00:00)
DateTime::COOKIE
DATE_COOKIE
HTTP Cookies (пример: Monday, 15-Aug-05 15:52:01 UTC)
DateTime::ISO8601
DATE_ISO8601
ISO-8601 (пример: 2005-08-15T15:52:01+0000)

Замечание: Этот формат не совместим с ISO-8601, но остается для обратной совместимости. Вместо него используйте DateTime::ATOM или DATE_ATOM для совместимости с ISO-8601.

DateTime::RFC822
DATE_RFC822
RFC 822 (пример: Mon, 15 Aug 05 15:52:01 +0000)
DateTime::RFC850
DATE_RFC850
RFC 850 (пример: Monday, 15-Aug-05 15:52:01 UTC)
DateTime::RFC1036
DATE_RFC1036
RFC 1036 (пример: Mon, 15 Aug 05 15:52:01 +0000)
DateTime::RFC1123
DATE_RFC1123
RFC 1123 (пример: Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::RFC2822
DATE_RFC2822
RFC 2822 (пример: Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::RFC3339
DATE_RFC3339
Тоже, что и DATE_ATOM (начиная с версии PHP 5.1.3)
DateTime::RFC3339_EXTENDED
DATE_RFC3339_EXTENDED
Формат RFC 3339 EXTENDED (начиная с PHP 7.0.0) (пример: 2005-08-15T15:52:01.000+00:00)
DateTime::RSS
DATE_RSS
RSS (пример: Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::W3C
DATE_W3C
World Wide Web Consortium (пример: 2005-08-15T15:52:01+00:00)

Список изменений

Версия | Описание
7.2.0 | Константы класса теперь DateTime определены в DateTimeInterface.
5.5.8 | Попытка реализовать интерфейс DateTimeInterface вызывает фатальную ошибку. Ранее реализация этого интерфейса ошибку не вызывало, но поведение было некорректным.

Содержание

  • DateTime::diff — Возвращает разницу между двумя объектами DateTime
  • DateTime::format — Возвращает дату, отформатированную согласно переданному формату
  • DateTime::getOffset — Возвращает смещение временной зоны
  • DateTime::getTimestamp — Возвращает временную метку Unix
  • DateTime::getTimezone — Возвращает временному зону относительно текущему значению DateTime
  • DateTime::__wakeup — Обработчик __wakeup


Возвращает разницу между двумя объектами DateTime

  • « DateTimeInterface
  • DateTime::format »
  • PHP Manual
  • DateTimeInterface
  • Возвращает разницу между двумя объектами DateTime

DateTime::diff

DateTimeImmutable::diff

DateTimeInterface::diff

date_diff

(PHP 5 >= 5.3.0, PHP 7)

DateTime::diff -- DateTimeImmutable::diff -- DateTimeInterface::diff -- date_diff — Возвращает разницу между двумя объектами DateTime

Описание

Объектно-ориентированный стиль

public DateTime::diff ( DateTimeInterface $datetime2 [, bool $absolute = FALSE ] ) : DateInterval
public DateTimeImmutable::diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] ) : DateInterval
public DateTimeInterface::diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] ) : DateInterval

Процедурный стиль

date_diff ( DateTimeInterface $datetime1 , DateTimeInterface $datetime2 [, bool $absolute = false ] ) : DateInterval

Возвращает разницу между двумя объектами DateTimeInterface.

Список параметров

datetime

Дата и время для сравнения.

absolute

Используется, чтобы вернуть абсолютную разницу.

Возвращаемые значения

DateInterval объект представляет разницу между двумя датами или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTime::diff()

Объектно-ориентированный стиль

<?php
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a дней');
?>

Процедурный стиль

<?php
$datetime1 = date_create('2009-10-11');
$datetime2 = date_create('2009-10-13');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a дней');
?>

Результат выполнения данных примеров:

+2 days

Пример #2 Сравнение объектов DateTime

Замечание:

С версии PHP 5.2.2 объекты DateTime могут сравниваться при помощи операторов сравнения.

<?php
$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");

var_dump($date1 == $date2);
var_dump($date1 < $date2);
var_dump($date1 > $date2);
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)

Смотрите также

  • DateInterval::format() - Форматирует интервал
  • DateTime::add() - Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime
  • DateTime::sub() - Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime


Возвращает дату, отформатированную согласно переданному формату

  • « DateTime::diff
  • DateTime::getOffset »
  • PHP Manual
  • DateTimeInterface
  • Возвращает дату, отформатированную согласно переданному формату

DateTime::format

DateTimeImmutable::format

DateTimeInterface::format

date_format

(PHP 5 >= 5.2.1, PHP 7)

DateTime::format -- DateTimeImmutable::format -- DateTimeInterface::format -- date_format — Возвращает дату, отформатированную согласно переданному формату

Описание

Объектно-ориентированный стиль

public DateTime::format ( string $format ) : string
public DateTimeImmutable::format ( string $format ) : string
public DateTimeInterface::format ( string $format ) : string

Процедурный стиль

date_format ( DateTimeInterface $object , string $format ) : string

Возвращает строку даты, преобразованной согласно переданному формату.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create()

format

Формат, принимаемый функцией date().

Возвращаемые значения

Возвращает строку с отформатированной датой в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTime::format()

Объектно-ориентированный стиль

<?php
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:s');
?>

Процедурный стиль

<?php
$date = date_create('2000-01-01');
echo date_format($date, 'Y-m-d H:i:s');
?>

Результат выполнения данного примера:

2000-01-01 00:00:00

Примечания

Данный метод не использует настройки локали. Вывод производится на английском языке.

Смотрите также

  • date() - Форматирует вывод системной даты/времени


Возвращает смещение временной зоны

  • « DateTime::format
  • DateTime::getTimestamp »
  • PHP Manual
  • DateTimeInterface
  • Возвращает смещение временной зоны

DateTime::getOffset

DateTimeImmutable::getOffset

DateTimeInterface::getOffset

date_offset_get

(PHP 5 >= 5.2.1, PHP 7)

DateTime::getOffset -- DateTimeImmutable::getOffset -- DateTimeInterface::getOffset -- date_offset_get — Возвращает смещение временной зоны

Описание

Объектно-ориентированный стиль

public DateTime::getOffset ( void ) : int
public DateTimeImmutable::getOffset ( void ) : int
public DateTimeInterface::getOffset ( void ) : int

Процедурный стиль

date_offset_get ( DateTimeInterface $object ) : int

Возвращает смещение временной зоны.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create()

Возвращаемые значения

В случае успеха возвращает смещение часовой зоны относительно UTC в секундах или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTime::getOffset()

Объектно-ориентированный стиль

<?php
$winter = new DateTime('2010-12-21', new DateTimeZone('America/New_York'));
$summer = new DateTime('2008-06-21', new DateTimeZone('America/New_York'));

echo $winter->getOffset() . "\n";
echo $summer->getOffset() . "\n";
?>

Процедурный стиль

<?php
$winter = date_create('2010-12-21', timezone_open('America/New_York'));
$summer = date_create('2008-06-21', timezone_open('America/New_York'));

echo date_offset_get($winter) . "\n";
echo date_offset_get($summer) . "\n";
?>

Результат выполнения данных примеров:

-18000
-14400

Замечание: -18000 = -5 часов, -14400 = -4 часа.


Возвращает временную метку Unix

  • « DateTime::getOffset
  • DateTime::getTimezone »
  • PHP Manual
  • DateTimeInterface
  • Возвращает временную метку Unix

DateTime::getTimestamp

DateTimeImmutable::getTimestamp

DateTimeInterface::getTimestamp

date_timestamp_get

(PHP 5 >= 5.3.0, PHP 7)

DateTime::getTimestamp -- DateTimeImmutable::getTimestamp -- DateTimeInterface::getTimestamp -- date_timestamp_get — Возвращает временную метку Unix

Описание

Объектно-ориентированный стиль

public DateTime::getTimestamp ( void ) : int
public DateTimeImmutable::getTimestamp ( void ) : int
public DateTimeInterface::getTimestamp ( void ) : int

Процедурный стиль

date_timestamp_get ( DateTimeInterface $object ) : int

Возвращает временную метку Unix.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает временную метку Unix для указанной даты.

Примеры

Пример #1 Пример использования DateTime::getTimestamp()

Объектно-ориентированный стиль

<?php
$date = new DateTime();
echo $date->getTimestamp();
?>

Процедурный стиль

<?php
$date = date_create();
echo date_timestamp_get($date);
?>

Результатом выполнения данных примеров будет что-то подобное:

1272509157

Примечания

Альтернативой данному методу в PHP 5.2 является использование модификатора U в качестве параметра к методу DateTime::format().

Смотрите также

  • DateTime::setTimestamp() - Устанавливает дату и время на основе метки времени Unix
  • DateTime::format() - Возвращает дату, отформатированную согласно переданному формату


Возвращает временному зону относительно текущему значению DateTime

  • « DateTime::getTimestamp
  • DateTime::__wakeup »
  • PHP Manual
  • DateTimeInterface
  • Возвращает временному зону относительно текущему значению DateTime

DateTime::getTimezone

DateTimeImmutable::getTimezone

DateTimeInterface::getTimezone

date_timezone_get

(PHP 5 >= 5.2.1, PHP 7)

DateTime::getTimezone -- DateTimeImmutable::getTimezone -- DateTimeInterface::getTimezone -- date_timezone_get — Возвращает временному зону относительно текущему значению DateTime

Описание

Объектно-ориентированный стиль

public DateTime::getTimezone ( void ) : DateTimeZone
public DateTimeImmutable::getTimezone ( void ) : DateTimeZone
public DateTimeInterface::getTimezone ( void ) : DateTimeZone

Процедурный стиль

date_timezone_get ( DateTimeInterface $object ) : DateTimeZone

Возвращает временную зону относительно текущему значению DateTime.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create()

Возвращаемые значения

Возвращает объект DateTimeZone в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTime::getTimezone()

Объектно-ориентированный стиль

<?php
$date = new DateTime(null, new DateTimeZone('Europe/London'));
$tz = $date->getTimezone();
echo $tz->getName();
?>

Процедурный стиль

<?php
$date = date_create(null, timezone_open('Europe/London'));
$tz = date_timezone_get($date);
echo timezone_name_get($tz);
?>

Результат выполнения данных примеров:

Europe/London

Смотрите также

  • DateTime::setTimezone() - Устанавливает временную зоны для объекта класса DateTime


Обработчик __wakeup

  • « DateTime::getTimezone
  • DateTimeZone »
  • PHP Manual
  • DateTimeInterface
  • Обработчик __wakeup

DateTime::__wakeup

DateTimeImmutable::__wakeup

DateTimeInterface::__wakeup

(PHP 5 >= 5.3.0, PHP 7)

DateTime::__wakeup -- DateTimeImmutable::__wakeup -- DateTimeInterface::__wakeup — Обработчик __wakeup

Описание

public DateTime::__wakeup ( void )
public DateTimeImmutable::__wakeup ( void )
public DateTimeInterface::__wakeup ( void )

Обработчик __wakeup().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Инициализирует объект DateTime.


Класс DateTimeZone

(PHP 5 >= 5.2.0, PHP 7)

Введение

Представление временной зоны.

Обзор классов

DateTimeZone {
/* Константы */
const integer AFRICA = 1 ;
const integer AMERICA = 2 ;
const integer ANTARCTICA = 4 ;
const integer ARCTIC = 8 ;
const integer ASIA = 16 ;
const integer ATLANTIC = 32 ;
const integer AUSTRALIA = 64 ;
const integer EUROPE = 128 ;
const integer INDIAN = 256 ;
const integer PACIFIC = 512 ;
const integer UTC = 1024 ;
const integer ALL = 2047 ;
const integer ALL_WITH_BC = 4095 ;
const integer PER_COUNTRY = 4096 ;
/* Методы */
public __construct ( string $timezone )
public getLocation ( void ) : array
public getName ( void ) : string
public getOffset ( DateTimeInterface $datetime ) : int
public getTransitions ([ int $timestamp_begin = PHP_INT_MIN [, int $timestamp_end = PHP_INT_MAX ]] ) : array
public static listAbbreviations ( void ) : array
public static listIdentifiers ([ int $what = DateTimeZone::ALL [, string $country = NULL ]] ) : array
}

Предопределенные константы

DateTimeZone::AFRICA

Временные зоны Африки.

DateTimeZone::AMERICA

Временные зоны Америки.

DateTimeZone::ANTARCTICA

Временные зоны Антарктики.

DateTimeZone::ARCTIC

Временные зоны Арктики.

DateTimeZone::ASIA

Временные зоны Азии.

DateTimeZone::ATLANTIC

Временные зоны Атлантики.

DateTimeZone::AUSTRALIA

Временные зоны Австралии.

DateTimeZone::EUROPE

Временные зоны Европы.

DateTimeZone::INDIAN

Временные зоны Индии.

DateTimeZone::PACIFIC

Временные зоны Тихого океана.

DateTimeZone::UTC

Временная зона UTC.

DateTimeZone::ALL

Все временные зоны.

DateTimeZone::ALL_WITH_BC

Все временные зоны, включая обратно совместимые.

DateTimeZone::PER_COUNTRY

Временных зон на страну.

Содержание

  • DateTimeZone::__construct — Создает новый объект DateTimeZone
  • DateTimeZone::getLocation — Возвращает информацию о местоположении для временной зоны
  • DateTimeZone::getName — Возвращает имя временной зоны
  • DateTimeZone::getOffset — Возвращает смещение временной зоны от UTC (GMT)
  • DateTimeZone::getTransitions — Возвращает все переходы для временной зоны
  • DateTimeZone::listAbbreviations — Возвращает ассоциативный массив, содержащий флаг перехода на летнее время, смещение и имя временной зоны
  • DateTimeZone::listIdentifiers — Возвращает численно-индексированный массив со всеми идентификаторами временных зон


Создает новый объект DateTimeZone

  • « DateTimeZone
  • DateTimeZone::getLocation »
  • PHP Manual
  • DateTimeZone
  • Создает новый объект DateTimeZone

DateTimeZone::__construct

timezone_open

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::__construct -- timezone_open — Создает новый объект DateTimeZone

Описание

Объектно-ориентированный стиль

public DateTimeZone::__construct ( string $timezone )

Процедурный стиль

timezone_open ( string $timezone ) : DateTimeZone

Создает новый объект DateTimeZone.

Список параметров

timezone

Одно из поддерживаемых имен временных зон или значение смещения (+0200).

Возвращаемые значения

В случае успеха возвращает DateTimeZone. Процедурный стиль возвращает FALSE в случае возникновения ошибки.

Ошибки

Этот метод вызывает Exception, если указанная временная зона не распознана как допустимая.

Список изменений

Версия | Описание
5.5.10 | Параметр timezone принимает значения смещения.

Примеры

Пример #1 Перехват ошибок при создании экземпляра DateTimeZone

<?php
// Обработка ошибок с помощью перехвата исключений
$timezones = array('Europe/London', 'Mars/Phobos', 'Jupiter/Europa');

foreach ($timezones as $tz) {
    try {
        $mars = new DateTimeZone($tz);
    } catch(Exception $e) {
        echo $e->getMessage() . '<br />';
    }
}
?>

Результат выполнения данного примера:

DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Mars/Phobos)
DateTimeZone::__construct() [datetimezone.--construct]:  Unknown or bad timezone (Jupiter/Europa)


Возвращает информацию о местоположении для временной зоны

  • « DateTimeZone::__construct
  • DateTimeZone::getName »
  • PHP Manual
  • DateTimeZone
  • Возвращает информацию о местоположении для временной зоны

DateTimeZone::getLocation

timezone_location_get

(PHP 5 >= 5.3.0, PHP 7)

DateTimeZone::getLocation -- timezone_location_get — Возвращает информацию о местоположении для временной зоны

Описание

Объектно-ориентированный стиль

public DateTimeZone::getLocation ( void ) : array

Процедурный стиль

timezone_location_get ( DateTimeZone $object ) : array

Возвращает информацию о местоположении временной зоны, включая код страны, широту/долготу и комментарии.

Список параметров

object

Только для процедурного стиля: Объект DateTimeZone, возвращаемый timezone_open()

Возвращаемые значения

Массив, содержащий информацию о местоположении временной зоны или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTimeZone::getLocation()

<?php
$tz = new DateTimeZone("Europe/Prague");
print_r($tz->getLocation());
print_r(timezone_location_get($tz));
?>

Результат выполнения данного примера:

Array
(
    [country_code] => CZ
    [latitude] => 50.08333
    [longitude] => 14.43333
    [comments] =>
)
Array
(
    [country_code] => CZ
    [latitude] => 50.08333
    [longitude] => 14.43333
    [comments] =>
)


Возвращает имя временной зоны

  • « DateTimeZone::getLocation
  • DateTimeZone::getOffset »
  • PHP Manual
  • DateTimeZone
  • Возвращает имя временной зоны

DateTimeZone::getName

timezone_name_get

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::getName -- timezone_name_get — Возвращает имя временной зоны

Описание

Объектно-ориентированный стиль

public DateTimeZone::getName ( void ) : string

Процедурный стиль

timezone_name_get ( DateTimeZone $object ) : string

Возвращает имя временной зоны.

Список параметров

object

Объект класса DateTimeZone, для которого нужно получить имя.

Возвращаемые значения

Одно из имен временной зоны в списке временных зон.


Возвращает смещение временной зоны от UTC (GMT)

  • « DateTimeZone::getName
  • DateTimeZone::getTransitions »
  • PHP Manual
  • DateTimeZone
  • Возвращает смещение временной зоны от UTC (GMT)

DateTimeZone::getOffset

timezone_offset_get

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::getOffset -- timezone_offset_get — Возвращает смещение временной зоны от UTC (GMT)

Описание

Объектно-ориентированный стиль

public DateTimeZone::getOffset ( DateTimeInterface $datetime ) : int

Процедурный стиль

timezone_offset_get ( DateTimeZone $object , DateTime $datetime ) : int

Эта функция возвращает смещение от GMT для даты/времени, указанных в параметре datetime. GMT-смещение рассчитывается с помощью информации о временной зоне, содержащейся в используемом объекте DateTimeZone.

Список параметров

object

Только для процедурного стиля: Объект DateTimeZone, возвращаемый timezone_open()

datetime

DateTime, содержащий дату/время, относительно которых вычисляется смещение.

Возвращаемые значения

В случае успеха возвращает смещение временной зоны в секундах или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.19, 5.6.3 | Тип параметра datetime был изменен на интерфейс DateTimeInterface. Ранее был класс DateTime.

Примеры

Пример #1 Пример использования DateTimeZone::getOffset()

<?php
// Создание двух объектов timezone, один для Тайбэй (Тайвань) и один для
// Токио (Япония)
$dateTimeZoneTaipei = new DateTimeZone("Asia/Taipei");
$dateTimeZoneJapan = new DateTimeZone("Asia/Tokyo");

// Создание двух объектов DateTime, которые будут содержать одинаковые метки времени Unix, но
// имеющие различные временные зоны.
$dateTimeTaipei = new DateTime("now", $dateTimeZoneTaipei);
$dateTimeJapan = new DateTime("now", $dateTimeZoneJapan);

// Вычисление смещения от GMT для даты/времени, содержащихся в объекте $dateTimeTaipei,
// но с использованием правил временной зоны, определенных для Токио
// ($dateTimeZoneJapan).
$timeOffset = $dateTimeZoneJapan->getOffset($dateTimeTaipei);

// Должен показать int(32400) (для дат после Sat Sep 8 01:00:00 1951 JST).
var_dump($timeOffset);
?>


Возвращает все переходы для временной зоны

  • « DateTimeZone::getOffset
  • DateTimeZone::listAbbreviations »
  • PHP Manual
  • DateTimeZone
  • Возвращает все переходы для временной зоны

DateTimeZone::getTransitions

timezone_transitions_get

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::getTransitions -- timezone_transitions_get — Возвращает все переходы для временной зоны

Описание

Объектно-ориентированный стиль

public DateTimeZone::getTransitions ([ int $timestamp_begin = PHP_INT_MIN [, int $timestamp_end = PHP_INT_MAX ]] ) : array

Процедурный стиль

timezone_transitions_get ( DateTimeZone $object [, int $timestamp_begin = PHP_INT_MIN [, int $timestamp_end = PHP_INT_MAX ]] ) : array

Список параметров

object

Только для процедурного стиля: Объект DateTimeZone, возвращаемый timezone_open()

timestamp_begin

Начальная метка времени.

timestamp_end

Конечная метка времени.

Возвращаемые значения

В случае успеха возвращает численно индексированный массив, содержащий ассоциативные массивы со всеми переходами или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Были добавлены необязательные параметры timestamp_begin и timestamp_end.

Примеры

Пример #1 Пример использования timezone_transitions_get()

<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions();
print_r(array_slice($transitions, 0, 3));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [ts] => -9223372036854775808
            [time] => -292277022657-01-27T08:29:52+0000
            [offset] => 3600
            [isdst] => 1
            [abbr] => BST
        )

    [1] => Array
        (
            [ts] => -1691964000
            [time] => 1916-05-21T02:00:00+0000
            [offset] => 3600
            [isdst] => 1
            [abbr] => BST
        )

    [2] => Array
        (
            [ts] => -1680472800
            [time] => 1916-10-01T02:00:00+0000
            [offset] => 0
            [isdst] =>
            [abbr] => GMT
        )

)


Возвращает ассоциативный массив, содержащий флаг перехода на летнее время, смещение и имя временной зоны

  • « DateTimeZone::getTransitions
  • DateTimeZone::listIdentifiers »
  • PHP Manual
  • DateTimeZone
  • Возвращает ассоциативный массив, содержащий флаг перехода на летнее время, смещение и имя временной зоны

DateTimeZone::listAbbreviations

timezone_abbreviations_list

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::listAbbreviations -- timezone_abbreviations_list — Возвращает ассоциативный массив, содержащий флаг перехода на летнее время, смещение и имя временной зоны

Описание

Объектно-ориентированный стиль

public static DateTimeZone::listAbbreviations ( void ) : array

Процедурный стиль

timezone_abbreviations_list ( void ) : array

Замечание:

Данные для функции предварительно компилируются из соображений производительности и не обновляются при использовании более новой версии » timezonedb.

Возвращаемые значения

В случае успешного выполнения возвращает массив или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования timezone_abbreviations_list()

<?php
$timezone_abbreviations = DateTimeZone::listAbbreviations();
print_r($timezone_abbreviations["acst"]);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Porto_Acre
        )

    [1] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Eirunepe
        )

    [2] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Rio_Branco
        )

    [3] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => Brazil/Acre
        )

)

Смотрите также

  • timezone_identifiers_list() - Псевдоним DateTimeZone::listIdentifiers


Возвращает численно-индексированный массив со всеми идентификаторами временных зон

  • « DateTimeZone::listAbbreviations
  • DateInterval »
  • PHP Manual
  • DateTimeZone
  • Возвращает численно-индексированный массив со всеми идентификаторами временных зон

DateTimeZone::listIdentifiers

timezone_identifiers_list

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::listIdentifiers -- timezone_identifiers_list — Возвращает численно-индексированный массив со всеми идентификаторами временных зон

Описание

Объектно-ориентированный стиль

public static DateTimeZone::listIdentifiers ([ int $what = DateTimeZone::ALL [, string $country = NULL ]] ) : array

Процедурный стиль

timezone_identifiers_list ([ int $what = DateTimeZone::ALL [, string $country = NULL ]] ) : array

Список параметров

what

Одна из констант класса DateTimeZone (или комбинация из них).

country

Двухбуквенный код страны, совместимый с ISO 3166-1.

Замечание: Эта опция используется только тогда, когда параметр what установлен в DateTimeZone::PER_COUNTRY.

Возвращаемые значения

В случае успеха возвращает массив или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Добавлены необязательные параметры what и country.

Примеры

Пример #1 Пример использования timezone_identifiers_list()

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers();
for ($i=0; $i < 5; $i++) {
    echo "$timezone_identifiers[$i]\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara

Смотрите также

  • timezone_abbreviations_list() - Псевдоним DateTimeZone::listAbbreviations


Класс DateInterval

(PHP 5 >= 5.3.0, PHP 7)

Введение

Представляет интервалы дат.

Интервал дат хранит либо определенное фиксированное время (в годах, месяцах, днях, часах и т.д.) или относительную строку времени в формате, поддерживаемом конструктором DateTime.

Обзор классов

DateInterval {
/* Свойства */
public integer $y ;
public integer $m ;
public integer $d ;
public integer $h ;
public integer $i ;
public integer $s ;
public float $f ;
public integer $invert ;
public mixed $days ;
/* Методы */
public __construct ( string $interval_spec )
public static createFromDateString ( string $time ) : DateInterval
public format ( string $format ) : string
}

Свойства

y

Количество лет.

m

Количество месяцев.

d

Количество дней.

h

Количество часов.

i

Количество минут.

s

Количество секунд.

f

Количество микросекунд в виде долей секунды.

invert

Принимает 1, если интервал представляет отрицательный период времени и 0 в противном случае. См. DateInterval::format().

days

Если объект DateInterval создан методом DateTime::diff(), то это суммарное число дней между начальной и конечной датами. В противном случае days примет значение FALSE.

В версиях PHP до 5.4.20/5.5.4 при доступе к этому свойству вы будете получать -99999 вместо FALSE.

Список изменений

Версия | Описание
7.1.0 | Добавлено свойство f.

Содержание

  • DateInterval::__construct — Создает новый объект DateInterval
  • DateInterval::createFromDateString — Создает объект класса DateInterval из даты в относительном формате
  • DateInterval::format — Форматирует интервал


Создает новый объект DateInterval

  • « DateInterval
  • DateInterval::createFromDateString »
  • PHP Manual
  • DateInterval
  • Создает новый объект DateInterval

DateInterval::__construct

(PHP 5 >= 5.3.0, PHP 7)

DateInterval::__construct — Создает новый объект DateInterval

Описание

public DateInterval::__construct ( string $interval_spec )

Создает новый объект DateInterval.

Список параметров

interval_spec

Описание интервала.

Формат описания интервала начинается с буквы P. Каждый период интервала представлен целым числом, за которым следует указатель его типа. Возможные типы приведены в таблице. Если интервал содержит периоды, обозначающие время, то их описанию должна предшествовать буква T.

Указатели периодов interval_spec
Указатель периода | Описание
Y | года
M | месяцы
D | дни
W | недели. Преобразуется в дни, поэтому не может быть использован совместно с D.
H | часы
M | минуты
S | секунды

Вот несколько простых примеров. Два дня - P2D. Две секунды - PT2S. Шесть лет и пять минут - P6YT5M.

Замечание:

Указатели должны записываться от большей величины (слева) к меньшей величине (направо). То есть года должны быть до месяцев, месяцы до дней, дни до минут и так далее. Таким образом, один год и четыре дня должны быть представлены как P1Y4D, но не P4D1Y.

Задать период также можно в виде даты и времени. Пример одного года и четырех дней может описываться как P0001-00-04T00:00:00. Но значения в этом формате не должны выходить за рамки допустимых значений даты и времени (например, 25 часов недопустимо)

Эти форматы основаны на » спецификации ISO 8601.

Ошибки

Выбрасывает Exception, если interval_spec не может быть распознан в качестве интервала.

Примеры

Пример #1 Пример использования DateInterval

<?php

$interval = new DateInterval('P2Y4DT6H8M');
var_dump($interval);

?>

Результат выполнения данного примера:

object(DateInterval)#1 (8) {
  ["y"]=>
  int(2)
  ["m"]=>
  int(0)
  ["d"]=>
  int(4)
  ["h"]=>
  int(6)
  ["i"]=>
  int(8)
  ["s"]=>
  int(0)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
}

Смотрите также

  • DateInterval::format() - Форматирует интервал
  • DateTime::add() - Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime
  • DateTime::sub() - Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime
  • DateTime::diff() - Возвращает разницу между двумя объектами DateTime


Создает объект класса DateInterval из даты в относительном формате

  • « DateInterval::__construct
  • DateInterval::format »
  • PHP Manual
  • DateInterval
  • Создает объект класса DateInterval из даты в относительном формате

DateInterval::createFromDateString

(PHP 5 >= 5.3.0, PHP 7)

DateInterval::createFromDateString — Создает объект класса DateInterval из даты в относительном формате

Описание

public static DateInterval::createFromDateString ( string $time ) : DateInterval

Разбирает строку, содержащую временной интервал в обычном (удобочитаемом) виде и создает на его основе объект класса DateInterval.

Список параметров

time

Дата, состоящая из относительных временных фрагментов. В частности, для создания объекта DateInterval из частей, записанных в относительном формате, который поддерживается парсером в функциях strtotime() и DateTime.

Примеры

Пример #1 Анализ и разбор временных интервалов

<?php
// Интервалы в каждом примере эквивалентны.
$i = new DateInterval('P1D');
$i = DateInterval::createFromDateString('1 day');

$i = new DateInterval('P2W');
$i = DateInterval::createFromDateString('2 weeks');

$i = new DateInterval('P3M');
$i = DateInterval::createFromDateString('3 months');

$i = new DateInterval('P4Y');
$i = DateInterval::createFromDateString('4 years');

$i = new DateInterval('P1Y1D');
$i = DateInterval::createFromDateString('1 year + 1 day');

$i = new DateInterval('P1DT12H');
$i = DateInterval::createFromDateString('1 day + 12 hours');

$i = new DateInterval('PT3600S');
$i = DateInterval::createFromDateString('3600 seconds');
?>

Возвращаемые значения

Возвращает новый объект класса DateInterval.


Форматирует интервал

  • « DateInterval::createFromDateString
  • DatePeriod »
  • PHP Manual
  • DateInterval
  • Форматирует интервал

DateInterval::format

(PHP 5 >= 5.3.0, PHP 7)

DateInterval::format — Форматирует интервал

Описание

public DateInterval::format ( string $format ) : string

Форматирует интервал.

Список параметров

format

В строке format распознаются следующие символы. Каждому такому символу должен предшествовать знак процента (%).
Символ в строкеformat | Описание | Пример значения
% Символ % %
Y | Годы, число, минимум две цифры с ведущими нулями | 01, 03
y | Годы, число | 1, 3
M | Месяцы, число, минимум две цифры с ведущими нулями | 01, 03, 12
m | Месяцы, число | 1, 3, 12
D | Дни, число, минимум две цифры с ведущими нулями | 01, 03, 31
d | Дни, число | 1, 3, 31
a | Общее количество дней в качестве результата выполнения DateTime::diff(), либо unknown | 4, 18, 8123
H | Часы, число, минимум две цифры с ведущими нулями | 01, 03, 23
h | Часы, число | 1, 3, 23
I | Минуты, число, минимум две цифры с ведущими нулями | 01, 03, 59
i | Минуты, число | 1, 3, 59
S | Секунды, число, минимум две цифры с ведущими нулями | 01, 03, 57
s | Секунды, число | 1, 3, 57
F | Микросекунды, число, какминимум 6 цифр с ведущим 0 | 007701, 052738, 428291
f | Микросекунды, число | 7701, 52738, 428291
R Знак "-" при отрицательном числе, "+" при положительном -, +
r Знак "-" при отрицательном числе, пусто при положительном -,

Возвращаемые значения

Возвращает отформатированный интервал.

Примечания

Замечание:

Метод DateInterval::format() не делает пересчета и переноса единиц времени при переполнении значений дат. Это ожидаемое поведение, поскольку невозможно реализовать перенос при значениях, например, "32 дня", которые могут интерпретироваться по-разному, начиная "1 месяц и 4 дня" и заканчивая "1 месяц и 1 день".

Список изменений

Версия | Описание
7.1.0 | Добавлены форматирующие символы F и f.

Примеры

Пример #1 Пример использования DateInterval

<?php

$interval = new DateInterval('P2Y4DT6H8M');
echo $interval->format('%d days');

?>

Результат выполнения данного примера:

4 days

Пример #2 DateInterval и перенос единиц

<?php

$interval = new DateInterval('P32D');
echo $interval->format('%d days');

?>

Результат выполнения данного примера:

32 days

Пример #3 DateInterval и DateTime::diff() с модификаторами %a и %d

<?php

$january = new DateTime('2010-01-01');
$february = new DateTime('2010-02-01');
$interval = $february->diff($january);

// %a выведет общее количество дней.
echo $interval->format('%a total days')."\n";

// В то время как %d выведет только число дней, не покрытых месяцем
echo $interval->format('%m month, %d days');

?>

Результат выполнения данного примера:

31 total days
1 month, 0 days

Смотрите также

  • DateTime::diff() - Возвращает разницу между двумя объектами DateTime


Класс DatePeriod

(PHP 5 >= 5.3.0, PHP 7)

Введение

Представляет временной период.

Позволяет перемещаться в заданном временном интервале на равные промежутки времени.

Обзор классов

DatePeriod implements Traversable {
/* Константы */
const integer EXCLUDE_START_DATE = 1 ;
/* Свойства */
public integer $recurrences ;
public boolean $include_start_date ;
public DateTimeInterface $start ;
public DateTimeInterface $current ;
public DateTimeInterface $end ;
public DateInterval $interval ;
/* Методы */
public __construct ( DateTimeInterface $start , DateInterval $interval , int $recurrences [, int $options ] )
public __construct ( DateTimeInterface $start , DateInterval $interval , DateTimeInterface $end [, int $options ] )
public __construct ( string $isostr [, int $options ] )
public getDateInterval ( void ) : DateInterval
public getEndDate ( void ) : DateTimeInterface
getRecurrences ( void ) : int
public getStartDate ( void ) : DateTimeInterface
}

Предопределенные константы

DatePeriod::EXCLUDE_START_DATE

Исключает начальную дату, используется в DatePeriod::__construct().

Свойства

recurrences

Число повторов, если объект DatePeriod создавался с явным указанием $recurrences. См. DatePeriod::getRecurrences().

include_start_date

Включать ли начальную дату в набор дат или нет.

start

Дата начала периода.

current

В процессе итерации будет содержать текущую дату периода.

end

Конечная дата периода.

interval

Спецификация повторяющегося интервала согласно ISO 8601.

Список изменений

Версия | Описание
5.3.27, 5.4.17 | Добавлены общедоступные свойства recurrences, include_start_date, start, current, end и interval.

Содержание

  • DatePeriod::__construct — Создает новый объект DatePeriod
  • DatePeriod::getDateInterval — Возвращает интервал
  • DatePeriod::getEndDate — Возвращает конечную дату периода
  • DatePeriod::getRecurrences — Получает количество повторов
  • DatePeriod::getStartDate — Возвращает начальную дату периода


Создает новый объект DatePeriod

  • « DatePeriod
  • DatePeriod::getDateInterval »
  • PHP Manual
  • DatePeriod
  • Создает новый объект DatePeriod

DatePeriod::__construct

(PHP 5 >= 5.3.0, PHP 7)

DatePeriod::__construct — Создает новый объект DatePeriod

Описание

public DatePeriod::__construct ( DateTimeInterface $start , DateInterval $interval , int $recurrences [, int $options ] )
public DatePeriod::__construct ( DateTimeInterface $start , DateInterval $interval , DateTimeInterface $end [, int $options ] )
public DatePeriod::__construct ( string $isostr [, int $options ] )

Создает новый объект DatePeriod.

Список параметров

start

Начальная дата.

interval

Интервал.

recurrences

Количество повторений.

end

Конечная дата.

isostr

Строка, содержащая интервал согласно спецификации ISO 8601.

options

Может быть установлено значение DatePeriod::EXCLUDE_START_DATE для исключения начальной даты из периода.

Список изменений

Версия | Описание
5.5.8 | Тип параметра end изменен на DateTimeInterface. Ранее использовался DateTime.
5.5.0 | Тип параметра start изменен на DateTimeInterface. Ранее использовался DateTime.

Примеры

Пример #1 Пример использования DatePeriod

<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');
$recurrences = 4;
$iso = 'R4/2012-07-01T00:00:00Z/P7D';

// Эти периоды эквивалентны.
$period = new DatePeriod($start, $interval, $recurrences);
$period = new DatePeriod($start, $interval, $end);
$period = new DatePeriod($iso);

// При переборе экземпляра DatePeriod в цикле будут отображены все отобранные даты
// периода.
foreach ($period as $date) {
    echo $date->format('Y-m-d')."\n";
}
?>

Результат выполнения данного примера:

2012-07-01
2012-07-08
2012-07-15
2012-07-22
2012-07-29

Пример #2 Пример использования DatePeriod с DatePeriod::EXCLUDE_START_DATE

<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');

$period = new DatePeriod($start, $interval, $end,
                         DatePeriod::EXCLUDE_START_DATE);

// При переборе экземпляра DatePeriod в цикле будут отображены все отобранные даты
// периода.
// Однако в этом случае 2012-07-01 не будет отображена.
foreach ($period as $date) {
    echo $date->format('Y-m-d')."\n";
}
?>

Результат выполнения данного примера:

2012-07-08
2012-07-15
2012-07-22
2012-07-29

Примечания

Несвязное количество повторений, определенные в секции 4.5 ISO 8601 "Recurring time interval", не поддерживается, то есть ни передача "R/..." в isostr, ни NULL в end, не будут работать.


Возвращает интервал

  • « DatePeriod::__construct
  • DatePeriod::getEndDate »
  • PHP Manual
  • DatePeriod
  • Возвращает интервал

DatePeriod::getDateInterval

(PHP 5 >= 5.6.5, PHP 7)

DatePeriod::getDateInterval — Возвращает интервал

Описание

Объектно-ориентированный стиль

public DatePeriod::getDateInterval ( void ) : DateInterval

Возвращает объект DateInterval, представляющий интервал, использованный для создания периода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект DateInterval

Примеры

Пример #1 Пример использования DatePeriod::getDateInterval()

<?php
$period = new DatePeriod('R7/2016-05-16T00:00:00Z/P1D');
$interval = $period->getDateInterval();
echo $interval->format('%d day');
?>

Результат выполнения данного примера:

1 day

Смотрите также

  • DatePeriod::getStartDate() - Возвращает начальную дату периода
  • DatePeriod::getEndDate() - Возвращает конечную дату периода


Возвращает конечную дату периода

  • « DatePeriod::getDateInterval
  • DatePeriod::getRecurrences »
  • PHP Manual
  • DatePeriod
  • Возвращает конечную дату периода

DatePeriod::getEndDate

(PHP 5 >= 5.6.5, PHP 7)

DatePeriod::getEndDate — Возвращает конечную дату периода

Описание

Объектно-ориентированный стиль

public DatePeriod::getEndDate ( void ) : DateTimeInterface

Возвращает конечную дату периода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает NULL, если DatePeriod не содержит конечной даты. Например, при инициализации с параметром recurrences или isostr без указания конечной даты.

Возвращает объект DateTimeImmutable, когда DatePeriod инициализирован с объектом DateTimeImmutable в качестве параметра end.

Иначе возвращает объект DateTime.

Примеры

Пример #1 Пример использования DatePeriod::getEndDate()

<?php
$period = new DatePeriod(
    new DateTime('2016-05-16T00:00:00Z'),
    new DateInterval('P1D'),
    new DateTime('2016-05-20T00:00:00Z')
);
$start = $period->getEndDate();
echo $start->format(DateTime::ISO8601);
?>

Результат выполнения данных примеров:

2016-05-20T00:00:00+0000

Пример #2 Пример использования DatePeriod::getEndDate() без даты окончания

<?php
$period = new DatePeriod(
    new DateTime('2016-05-16T00:00:00Z'),
    new DateInterval('P1D'),
    7
);
var_dump($period->getEndDate());
?>

Результат выполнения данного примера:

NULL

Смотрите также

  • DatePeriod::getStartDate() - Возвращает начальную дату периода
  • DatePeriod::getDateInterval() - Возвращает интервал


Получает количество повторов

  • « DatePeriod::getEndDate
  • DatePeriod::getStartDate »
  • PHP Manual
  • DatePeriod
  • Получает количество повторов

DatePeriod::getRecurrences

(PHP 7 >= 7.2.17/7.3.4)

DatePeriod::getRecurrences — Получает количество повторов

Описание

Объектно-ориентированный стиль

DatePeriod::getRecurrences ( void ) : int

Получает количество повторов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Получает количество повторов.

Смотрите также

  • DatePeriod::$recurrences


Возвращает начальную дату периода

  • « DatePeriod::getRecurrences
  • Функции даты и времени »
  • PHP Manual
  • DatePeriod
  • Возвращает начальную дату периода

DatePeriod::getStartDate

(PHP 5 >= 5.6.5, PHP 7)

DatePeriod::getStartDate — Возвращает начальную дату периода

Описание

Объектно-ориентированный стиль

public DatePeriod::getStartDate ( void ) : DateTimeInterface

Возвращает начальную дату периода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект DateTimeImmutable, когда DatePeriod инициализирован объектом DateTimeImmutable в качестве параметра start.

Иначе возвращает объект DateTime.

Примеры

Пример #1 Пример использования DatePeriod::getStartDate()

<?php
$period = new DatePeriod('R7/2016-05-16T00:00:00Z/P1D');
$start = $period->getStartDate();
echo $start->format(DateTime::ISO8601);
?>

Результат выполнения данного примера:

2016-05-16T00:00:00+0000

Смотрите также

  • DatePeriod::getEndDate() - Возвращает конечную дату периода
  • DatePeriod::getDateInterval() - Возвращает интервал


Функции даты и времени

Содержание

  • checkdate — Проверяет корректность даты по григорианскому календарю
  • date_add — Псевдоним DateTime::add
  • date_create_from_format — Псевдоним DateTime::createFromFormat
  • date_create_immutable_from_format — Псевдоним DateTimeImmutable::createFromFormat
  • date_create_immutable — Псевдоним DateTimeImmutable::__construct
  • date_create — Псевдоним DateTime::__construct
  • date_date_set — Псевдоним DateTime::setDate
  • date_default_timezone_get — Возвращает временную зону, используемой по умолчанию всеми функциями даты/времени в скрипте
  • date_default_timezone_set — Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте
  • date_diff — Псевдоним DateTime::diff
  • date_format — Псевдоним DateTime::format
  • date_get_last_errors — Псевдоним DateTime::getLastErrors
  • date_interval_create_from_date_string — Псевдоним DateInterval::createFromDateString
  • date_interval_format — Псевдоним DateInterval::format
  • date_isodate_set — Псевдоним DateTime::setISODate
  • date_modify — Псевдоним DateTime::modify
  • date_offset_get — Псевдоним DateTime::getOffset
  • date_parse_from_format — Получение информации о заданной в определенном формате дате
  • date_parse — Возвращает ассоциативный массив с подробной информацией о заданной дате
  • date_sub — Псевдоним DateTime::sub
  • date_sun_info — Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек
  • date_sunrise — Возвращает время рассвета для заданных дня и местоположения
  • date_sunset — Возвращает время захода солнца для заданных дня и местоположения
  • date_time_set — Псевдоним DateTime::setTime
  • date_timestamp_get — Псевдоним DateTime::getTimestamp
  • date_timestamp_set — Псевдоним DateTime::setTimestamp
  • date_timezone_get — Псевдоним DateTime::getTimezone
  • date_timezone_set — Псевдоним DateTime::setTimezone
  • date — Форматирует вывод системной даты/времени
  • getdate — Возвращает информацию о дате/времени
  • gettimeofday — Возвращает текущее время
  • gmdate — Форматирует дату/время по Гринвичу
  • gmmktime — Возвращает локальную метку времени Unix для времени по Гринвичу
  • gmstrftime — Форматирует дату/время по Гринвичу с учетом текущей локали
  • idate — Преобразует локальное время/дату в целое число
  • localtime — Возвращает локальное время
  • microtime — Возвращает текущую метку времени Unix с микросекундами
  • mktime — Возвращает метку времени Unix для заданной даты
  • strftime — Форматирует текущую дату/время с учетом текущих настроек локали
  • strptime — Разбирает строку даты/времени, сгенерированную функцией strftime
  • strtotime — Преобразует текстовое представление даты на английском языке в метку времени Unix
  • time — Возвращает текущую метку системного времени Unix
  • timezone_abbreviations_list — Псевдоним DateTimeZone::listAbbreviations
  • timezone_identifiers_list — Псевдоним DateTimeZone::listIdentifiers
  • timezone_location_get — Псевдоним DateTimeZone::getLocation
  • timezone_name_from_abbr — Возвращает временную зону в соответствии с аббревиатурой
  • timezone_name_get — Псевдоним DateTimeZone::getName
  • timezone_offset_get — Псевдоним DateTimeZone::getOffset
  • timezone_open — Псевдоним DateTimeZone::__construct
  • timezone_transitions_get — Псевдоним DateTimeZone::getTransitions
  • timezone_version_get — Получение номера версии базы данных временных зон


Проверяет корректность даты по григорианскому календарю

  • « Функции даты и времени
  • date_add »
  • PHP Manual
  • Функции даты и времени
  • Проверяет корректность даты по григорианскому календарю

checkdate

(PHP 4, PHP 5, PHP 7)

checkdate — Проверяет корректность даты по григорианскому календарю

Описание

checkdate ( int $month , int $day , int $year ) : bool

Проверяет корректность даты по переданным аргументам. Дата считается корректной, если все параметры принимают допустимые значения.

Список параметров

month

Месяц. Принимает значения от 1 до 12 включительно.

day

День. Принимает значения, допустимые для указанного месяца month. При этом учитывается, является ли год year високосным.

year

Год. Принимает значения от 1 до 32767 включительно.

Возвращаемые значения

Возвращает TRUE, если проверяемая дата является корректной, или FALSE в противном случае.

Примеры

Пример #1 Пример использования функции checkdate()

<?php
var_dump(checkdate(12, 31, 2000));
var_dump(checkdate(2, 29, 2001));
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Смотрите также

  • mktime() - Возвращает метку времени Unix для заданной даты
  • strtotime() - Преобразует текстовое представление даты на английском языке в метку времени Unix


Псевдоним DateTime::add

  • « checkdate
  • date_create_from_format »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::add

date_add

(PHP 5 >= 5.3.0, PHP 7)

date_add — Псевдоним DateTime::add()

Описание

Эта функция является псевдонимом: DateTime::add()


Псевдоним DateTime::createFromFormat

  • « date_add
  • date_create_immutable_from_format »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::createFromFormat

date_create_from_format

(PHP 5 >= 5.3.0, PHP 7)

date_create_from_format — Псевдоним DateTime::createFromFormat()

Описание

Эта функция является псевдонимом: DateTime::createFromFormat()


Псевдоним DateTimeImmutable::createFromFormat

  • « date_create_from_format
  • date_create_immutable »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeImmutable::createFromFormat

date_create_immutable_from_format

(PHP 5 >= 5.5.0, PHP 7)

date_create_immutable_from_format — Псевдоним DateTimeImmutable::createFromFormat()

Описание

Эта функция является псевдонимом: DateTimeImmutable::createFromFormat()


Псевдоним DateTimeImmutable::__construct

  • « date_create_immutable_from_format
  • date_create »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeImmutable::__construct

date_create_immutable

(PHP 5 >= 5.5.0, PHP 7)

date_create_immutable — Псевдоним DateTimeImmutable::__construct()

Описание

Эта функция является псевдонимом: DateTimeImmutable::__construct()


Псевдоним DateTime::__construct

  • « date_create_immutable
  • date_date_set »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::__construct

date_create

(PHP 5 >= 5.2.0, PHP 7)

date_create — Псевдоним DateTime::__construct()

Описание

Эта функция является псевдонимом: DateTime::__construct()


Псевдоним DateTime::setDate

  • « date_create
  • date_default_timezone_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::setDate

date_date_set

(PHP 5 >= 5.2.0, PHP 7)

date_date_set — Псевдоним DateTime::setDate()

Описание

Эта функция является псевдонимом: DateTime::setDate()


Возвращает временную зону, используемой по умолчанию всеми функциями даты/времени в скрипте

  • « date_date_set
  • date_default_timezone_set »
  • PHP Manual
  • Функции даты и времени
  • Возвращает временную зону, используемой по умолчанию всеми функциями даты/времени в скрипте

date_default_timezone_get

(PHP 5 >= 5.1.0, PHP 7)

date_default_timezone_get — Возвращает временную зону, используемой по умолчанию всеми функциями даты/времени в скрипте

Описание

date_default_timezone_get ( void ) : string

Функция пытается получить временную зону по умолчанию по порядку следующими способами:

  • Чтение настройки временной зоны с помощью функции date_default_timezone_set() (если применимо)

  • Только до версии PHP 5.4.0: чтение переменной окружения TZ (если она не пуста)

  • Чтение значения ini-настройки date.timezone (если задана)

  • Только до версии PHP 5.4.0: опрос операционной системы (если поддерживается и разрешено ОС). При этом используется механизм угадывания временной зоны. Этот механизм не всегда корректно работает. Если используется этот метод (все предыдущие не дали результата), будет выдано предупреждение. Не стоит полагаться на результат, полученный этим способом, вместо этого лучше задать в параметрах временной зоны date.timezone правильное значение.

Если ни один из способов не принес результата, date_default_timezone_get() вернет временную зону UTC.

Возвращаемые значения

Возвращает строку (string).

Список изменений

Версия | Описание
5.4.0 | Переменная окружения TZ больше не используется при угадывании временной зоны.
5.4.0 | Временная зона больше не угадывается с помощью информации, полученной из операционной системы, так как данный метод нестабилен и на него нельзя полагаться.

Примеры

Пример #1 Получение временной зоны по умолчанию

<?php
date_default_timezone_set('Europe/London');

if (date_default_timezone_get()) {
    echo 'date_default_timezone_set: ' . date_default_timezone_get() . '<br />';
}

if (ini_get('date.timezone')) {
    echo 'date.timezone: ' . ini_get('date.timezone');
}

?>

Результатом выполнения данного примера будет что-то подобное:

date_default_timezone_set: Europe/London
date.timezone: Europe/London

Пример #2 Получение аббревиатуры временной зоны

<?php
date_default_timezone_set('America/Los_Angeles');
echo date_default_timezone_get() . ' => ' . date('e') . ' => ' . date('T');
?>

Результат выполнения данного примера:

America/Los_Angeles => America/Los_Angeles => PST

Смотрите также

  • date_default_timezone_set() - Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте
  • Список поддерживаемых временных зон


Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте

  • « date_default_timezone_get
  • date_diff »
  • PHP Manual
  • Функции даты и времени
  • Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте

date_default_timezone_set

(PHP 5 >= 5.1.0, PHP 7)

date_default_timezone_set — Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте

Описание

date_default_timezone_set ( string $timezone_identifier ) : bool

date_default_timezone_set() устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте.

Замечание:

Начиная с версии PHP 5.1.0 (когда функции даты/времени были переписаны), вызов любой функции даты/времени генерирует E_NOTICE, если временная зона имеет неверное значение, и/или E_WARNING, если используются системные параметры или переменная окружения TZ.

Вместо использования этой функции, вы можете воспользоваться INI-настройкой date.timezone для установки временной зоны по умолчанию.

Список параметров

timezone_identifier

Идентификатор временной зоны, как например UTC или Europe/Lisbon. Список допустимых идентификаторов временной зоны можно найти в разделе Список поддерживаемых временных зон.

Возвращаемые значения

Функция возвращает FALSE, если timezone_identifier имеет неверное значение, в остальных случаях TRUE.

Примеры

Пример #1 Получение временной зоны по умолчанию

<?php
date_default_timezone_set('America/Los_Angeles');

$script_tz = date_default_timezone_get();

if (strcmp($script_tz, ini_get('date.timezone'))){
    echo 'Временная зона скрипта отличается от заданной в INI-файле.';
} else {
    echo 'Временные зоны скрипта и настройки INI-файла совпадают.';
}
?>

Список изменений

Версия | Описание
5.3.0 | Теперь выбрасывает E_WARNING вместо E_STRICT.
5.1.2 | Функция начала проверять timezone_identifier.

Смотрите также

  • date_default_timezone_get() - Возвращает временную зону, используемой по умолчанию всеми функциями даты/времени в скрипте
  • Список поддерживаемых временных зон


Псевдоним DateTime::diff

  • « date_default_timezone_set
  • date_format »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::diff

date_diff

(PHP 5 >= 5.3.0, PHP 7)

date_diff — Псевдоним DateTime::diff()

Описание

Эта функция является псевдонимом: DateTime::diff()


Псевдоним DateTime::format

  • « date_diff
  • date_get_last_errors »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::format

date_format

(PHP 5 >= 5.2.0, PHP 7)

date_format — Псевдоним DateTime::format()

Описание

Эта функция является псевдонимом: DateTime::format()


Псевдоним DateTime::getLastErrors

  • « date_format
  • date_interval_create_from_date_string »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::getLastErrors

date_get_last_errors

(PHP 5 >= 5.3.0, PHP 7)

date_get_last_errors — Псевдоним DateTime::getLastErrors()

Описание

Эта функция является псевдонимом: DateTime::getLastErrors()


Псевдоним DateInterval::createFromDateString

  • « date_get_last_errors
  • date_interval_format »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateInterval::createFromDateString

date_interval_create_from_date_string

(PHP 5 >= 5.3.0, PHP 7)

date_interval_create_from_date_string — Псевдоним DateInterval::createFromDateString()

Описание

Эта функция является псевдонимом: DateInterval::createFromDateString()


Псевдоним DateInterval::format

  • « date_interval_create_from_date_string
  • date_isodate_set »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateInterval::format

date_interval_format

(PHP 5 >= 5.3.0, PHP 7)

date_interval_format — Псевдоним DateInterval::format()

Описание

Эта функция является псевдонимом: DateInterval::format()


Псевдоним DateTime::setISODate

  • « date_interval_format
  • date_modify »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::setISODate

date_isodate_set

(PHP 5 >= 5.2.0, PHP 7)

date_isodate_set — Псевдоним DateTime::setISODate()

Описание

Эта функция является псевдонимом: DateTime::setISODate()


Псевдоним DateTime::modify

  • « date_isodate_set
  • date_offset_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::modify

date_modify

(PHP 5 >= 5.2.0, PHP 7)

date_modify — Псевдоним DateTime::modify()

Описание

Эта функция является псевдонимом: DateTime::modify()


Псевдоним DateTime::getOffset

  • « date_modify
  • date_parse_from_format »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::getOffset

date_offset_get

(PHP 5 >= 5.2.0, PHP 7)

date_offset_get — Псевдоним DateTime::getOffset()

Описание

Эта функция является псевдонимом: DateTime::getOffset()


Получение информации о заданной в определенном формате дате

  • « date_offset_get
  • date_parse »
  • PHP Manual
  • Функции даты и времени
  • Получение информации о заданной в определенном формате дате

date_parse_from_format

(PHP 5 >= 5.3.0, PHP 7)

date_parse_from_format — Получение информации о заданной в определенном формате дате

Описание

date_parse_from_format ( string $format , string $date ) : array

Возвращает ассоциативный массив с подробной информацией о заданной дате.

Список параметров

format

Формат, распознаваемый функцией DateTime::createFromFormat().

date

Строка, представляющая дату.

Возвращаемые значения

Возвращает ассоциативный массив с подробной информацией о заданной дате.

Список изменений

Версия | Описание
7.2.0 | Элемент zone возвращаемого массива отображает теперь секунды вместо минут, а его знак инвертируется. Например, -120 теперь будет 7200.

Примеры

Пример #1 Пример использования date_parse_from_format()

<?php
$date = "6.1.2009 13:00+01:00";
print_r(date_parse_from_format("j.n.Y H:iP", $date));
?>

Результат выполнения данного примера:

Array
(
    [year] => 2009
    [month] => 1
    [day] => 6
    [hour] => 13
    [minute] => 0
    [second] => 0
    [fraction] =>
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 0
    [errors] => Array
        (
        )

    [is_localtime] => 1
    [zone_type] => 1
    [zone] => -60
    [is_dst] =>
)

Смотрите также

  • DateTime::createFromFormat() - Разбирает строку с датой согласно указанному формату
  • checkdate() - Проверяет корректность даты по григорианскому календарю


Возвращает ассоциативный массив с подробной информацией о заданной дате

  • « date_parse_from_format
  • date_sub »
  • PHP Manual
  • Функции даты и времени
  • Возвращает ассоциативный массив с подробной информацией о заданной дате

date_parse

(PHP 5 >= 5.2.0, PHP 7)

date_parse — Возвращает ассоциативный массив с подробной информацией о заданной дате

Описание

date_parse ( string $date ) : array

Список параметров

date

Дата в формате, распознаваемом функцией strtotime().

Возвращаемые значения

Возвращает массив (array), содержащий информацию о дате в случае успеха или FALSE в случае возникновения ошибки.

Ошибки

В случае ошибок форматирования даты, элемент массива 'errors' будет содержать сообщения об этих ошибках.

Список изменений

Версия | Описание
7.2.0 | Элемент возращаемого массива с ключем zone теперь содержит секунды, а не минуты. Кроме того, знак инвертирован. Т.е. раньше был -120, а теперь 7200.

Примеры

Пример #1 Пример использования date_parse()

<?php
print_r(date_parse("2006-12-12 10:00:00.5"));
?>

Результат выполнения данного примера:

Array
(
    [year] => 2006
    [month] => 12
    [day] => 12
    [hour] => 10
    [minute] => 0
    [second] => 0
    [fraction] => 0.5
    [warning_count] => 0
    [warnings] => Array()
    [error_count] => 0
    [errors] => Array()
    [is_localtime] =>
)

Относительные форматы не влияют на значения, разобранные из абсолютных форматов, но будут доступны в элементе массива с ключом "relative".

Пример #2 date_parse() с относительным форматом

<?php
print_r(date_parse("2006-12-12 10:00:00.5 +1 week +1 hour"));
?>

Результат выполнения данного примера:

Array
(
    [year] => 2006
    [month] => 12
    [day] => 12
    [hour] => 10
    [minute] => 0
    [second] => 0
    [fraction] => 0.5
    [warning_count] => 0
    [warnings] => Array()
    [error_count] => 0
    [errors] => Array ()

    [is_localtime] =>
    [relative] => Array
        (
            [year] => 0
            [month] => 0
            [day] => 7
            [hour] => 1
            [minute] => 0
            [second] => 0
        )

)

Смотрите также

  • checkdate() - Проверяет корректность даты по григорианскому календарю
  • getdate() - Возвращает информацию о дате/времени


Псевдоним DateTime::sub

  • « date_parse
  • date_sun_info »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::sub

date_sub

(PHP 5 >= 5.3.0, PHP 7)

date_sub — Псевдоним DateTime::sub()

Описание

Эта функция является псевдонимом: DateTime::sub()


Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек

  • « date_sub
  • date_sunrise »
  • PHP Manual
  • Функции даты и времени
  • Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек

date_sun_info

(PHP 5 >= 5.1.2, PHP 7)

date_sun_info — Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек

Описание

date_sun_info ( int $time , float $latitude , float $longitude ) : array

Список параметров

time

Временная метка.

latitude

Широта в градусах.

longitude

Долгота в градусах.

Возвращаемые значения

Возвращает массив при успешном завершении или FALSE в случае возникновения ошибки. Структура массива подробно описана в следующем списке:

sunrise
Время восхода солнца (зенитный угол = 90°35').
sunset
Время заката солнца (зенитный угол = 90°35').
transit
Время, когда солнце находится в своем зените, то есть достигло самой верхней точки.
civil_twilight_begin
Начало гражданского рассвета (зенитный угол = 96°). Оно заканчивается на sunrise.
civil_twilight_end
Конец гражданского заката (зенитный угол = 96°). Оно начинается на sunset.
nautical_twilight_begin
Начало навигационного рассвета (зенитный угол = 102°). Оно заканчивается civil_twilight_begin.
nautical_twilight_end
Конец навигационного заката (зенитный угол = 102°). Оно начинается на civil_twilight_end.
astronomical_twilight_begin
Начало астрономического рассвета (зенитный угол = 108°). Оно заканчивается на nautical_twilight_begin.
astronomical_twilight_end
Конец астрономического заката (зенитный угол = 108°). Оно начинается на nautical_twilight_end.

Значения элементов массива - лбо временная метка UNIX, FALSE, если солнце находится ниже соответствующего зенита в течение всего дня, или TRUE, если солнце находится выше соответствующего зенита в течение всего дня.

Список изменений

Версия | Описание
5.2.2 | Порядок latitude и longitude были поменяны местами.

Примеры

Пример #1 Пример использования date_sun_info()

<?php
$sun_info = date_sun_info(strtotime("2006-12-12"), 31.7667, 35.2333);
foreach ($sun_info as $key => $val) {
    echo "$key: " . date("H:i:s", $val) . "\n";
}
?>

Результат выполнения данного примера:

sunrise: 05:52:11
sunset: 15:41:21
transit: 10:46:46
civil_twilight_begin: 05:24:08
civil_twilight_end: 16:09:24
nautical_twilight_begin: 04:52:25
nautical_twilight_end: 16:41:06
astronomical_twilight_begin: 04:21:32
astronomical_twilight_end: 17:12:00

Пример #2 Полярная ночь

<?php
var_dump(date_sun_info(strtotime("2017-12-21"), 90, 0));
?>

Результат выполнения данного примера:

array(9) {
  ["sunrise"]=>
  bool(false)
  ["sunset"]=>
  bool(false)
  ["transit"]=>
  int(1513857490)
  ["civil_twilight_begin"]=>
  bool(false)
  ["civil_twilight_end"]=>
  bool(false)
  ["nautical_twilight_begin"]=>
  bool(false)
  ["nautical_twilight_end"]=>
  bool(false)
  ["astronomical_twilight_begin"]=>
  bool(false)
  ["astronomical_twilight_end"]=>
  bool(false)
}

Пример #3 Полуночное солнце

<?php
var_dump(date_sun_info(strtotime("2017-06-21"), 90, 0));
?>

Результат выполнения данного примера:

array(9) {
  ["sunrise"]=>
  bool(true)
  ["sunset"]=>
  bool(true)
  ["transit"]=>
  int(1498046510)
  ["civil_twilight_begin"]=>
  bool(true)
  ["civil_twilight_end"]=>
  bool(true)
  ["nautical_twilight_begin"]=>
  bool(true)
  ["nautical_twilight_end"]=>
  bool(true)
  ["astronomical_twilight_begin"]=>
  bool(true)
  ["astronomical_twilight_end"]=>
  bool(true)
}

Смотрите также

  • date_sunrise() - Возвращает время рассвета для заданных дня и местоположения
  • date_sunset() - Возвращает время захода солнца для заданных дня и местоположения


Возвращает время рассвета для заданных дня и местоположения

  • « date_sun_info
  • date_sunset »
  • PHP Manual
  • Функции даты и времени
  • Возвращает время рассвета для заданных дня и местоположения

date_sunrise

(PHP 5, PHP 7)

date_sunrise — Возвращает время рассвета для заданных дня и местоположения

Описание

date_sunrise ( int $timestamp [, int $format = SUNFUNCS_RET_STRING [, float $latitude = ini_get("date.default_latitude") [, float $longitude = ini_get("date.default_longitude") [, float $zenith = ini_get("date.sunrise_zenith") [, float $gmt_offset = 0 ]]]]] ) : mixed

date_sunrise() возвращает время рассвета для определенных дня (заданного аргументом timestamp) и местоположения.

Список параметров

timestamp

Временная метка (timestamp) дня, для которого определяется время рассвета.

format

Константы format
константа | описание | пример
SUNFUNCS_RET_STRING | тип возвращаемого результата string | 16:46
SUNFUNCS_RET_DOUBLE | тип возвращаемого результата float | 16.78243132
SUNFUNCS_RET_TIMESTAMP | тип возвращаемого результата integer (временная метка) | 1095034606

latitude

По умолчанию в Северном полушарии, для Южного передается отрицательная величина. См. также date.default_latitude.

longitude

По умолчанию восточная, для указания западной долготы передается отрицательная величина. См. также date.default_longitude.

zenith

zenith - это угол между центром Солнца и линией, перпендикулярной поверхности Земли. По умолчанию date.sunrise_zenith

Распространенные углы zenith angles
Угол | Опиание
90°50' | Восход солнца: точка, где Солнце становится видимым.
96° | Гражданские сумерки: обычно используются для обозначения начала рассвета.
102° | Навигационные сумерки: точка, в которой горизонт становится видимым с моря.
108° | Астрономические сумерки: точка, в которой Солнце начинает быть источником любого освещения.

gmtoffset

Задается в часах. gmtoffset игнорируется, если format - SUNFUNCS_RET_TIMESTAMP

Возвращаемые значения

Возвращает время восхода солнца в заданном формате format или FALSE в случае возникновения ошибки. Одна из возможных причин неудачного выполнения - солнце не поднимается над горизонтом вообще, что происходит внутри полярных кругов в течение части года.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE, и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
5.1.0 | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.

Примеры

Пример #1 Пример использования date_sunrise()

<?php

/* расчет времени восхода солнца в Лиссабоне, Португалия
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', время восхода солнца : ' .date_sunrise(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

Результатом выполнения данного примера будет что-то подобное:

Mon Dec 20 2004, время восхода солнца : 08:54

Пример #2 Нет восхода солнца

<?php
$solstice = strtotime('2017-12-21');
var_dump(date_sunrise($solstice, SUNFUNCS_RET_STRING, 69.245833, -53.537222));
?>

Результат выполнения данного примера:

bool(false)

Смотрите также

  • date_sunset() - Возвращает время захода солнца для заданных дня и местоположения
  • date_sun_info() - Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек


Возвращает время захода солнца для заданных дня и местоположения

  • « date_sunrise
  • date_time_set »
  • PHP Manual
  • Функции даты и времени
  • Возвращает время захода солнца для заданных дня и местоположения

date_sunset

(PHP 5, PHP 7)

date_sunset — Возвращает время захода солнца для заданных дня и местоположения

Описание

date_sunset ( int $timestamp [, int $format = SUNFUNCS_RET_STRING [, float $latitude = ini_get("date.default_latitude") [, float $longitude = ini_get("date.default_longitude") [, float $zenith = ini_get("date.sunset_zenith") [, float $gmt_offset = 0 ]]]]] ) : mixed

date_sunset() возвращает время захода солнца для определенных дня (заданного аргументом timestamp) и местоположения.

Список параметров

timestamp

Временная метка (timestamp) дня, для которого определяется время захода солнца.

format

format constants
константа | описание | пример
SUNFUNCS_RET_STRING | тип возвращаемого результата string | 16:46
SUNFUNCS_RET_DOUBLE | тип возвращаемого результата float | 16.78243132
SUNFUNCS_RET_TIMESTAMP | тип возвращаемого результата integer (временная метка) | 1095034606

latitude

По умолчанию в Северном полушарии, для Южного передается отрицательная величина. См. также date.default_latitude.

longitude

По умолчанию восточная, для указания западной долготы передается отрицательная величина. См. также date.default_longitude.

zenith

zenith - это угол между центром Солнца и линией, перпендикулярной поверхности Земли. По умолчанию date.sunset_zenith

Распространенные углы zenith
Угол | Опиание
90°50' | Восход солнца: точка, где Солнце становится невидимым.
96° | Гражданские сумерки: обычно используются для обозначения конца заката.
102° | Навигационные сумерки: точка, в которой горизонт становится невидимым с моря.
108° | Астрономические сумерки: точка, в которой Солнце заканчивает быть источником любого освещения.

gmtoffset

Задается в часах. gmtoffset игнорируется, если format - SUNFUNCS_RET_TIMESTAMP.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE, и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
5.1.0 | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.

Возвращаемые значения

Возвращает время захода солнца в заданном формате format или FALSE в случае возникновения ошибки. Одна из возможных причин неудачного выполнения - солнце не поднимается над горизонтом вообще, что происходит внутри полярных кругов в течение части года.

Примеры

Пример #1 Пример использования date_sunset()

<?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"). ', время захода солнца : ' .date_sunset(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

Результатом выполнения данного примера будет что-то подобное:

Mon Dec 20 2004, время захода солнца : 18:13

Пример #2 Нет заката

<?php
$solstice = strtotime('2017-12-21');
var_dump(date_sunset($solstice, SUNFUNCS_RET_STRING, 69.245833, -53.537222));
?>

Результат выполнения данного примера:

bool(false)

Смотрите также

  • date_sunrise() - Возвращает время рассвета для заданных дня и местоположения
  • date_sun_info() - Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек


Псевдоним DateTime::setTime

  • « date_sunset
  • date_timestamp_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::setTime

date_time_set

(PHP 5 >= 5.2.0, PHP 7)

date_time_set — Псевдоним DateTime::setTime()

Описание

Эта функция является псевдонимом: DateTime::setTime()


Псевдоним DateTime::getTimestamp

  • « date_time_set
  • date_timestamp_set »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::getTimestamp

date_timestamp_get

(PHP 5 >= 5.3.0, PHP 7)

date_timestamp_get — Псевдоним DateTime::getTimestamp()

Описание

Эта функция является псевдонимом: DateTime::getTimestamp()


Псевдоним DateTime::setTimestamp

  • « date_timestamp_get
  • date_timezone_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::setTimestamp

date_timestamp_set

(PHP 5 >= 5.3.0, PHP 7)

date_timestamp_set — Псевдоним DateTime::setTimestamp()

Описание

Эта функция является псевдонимом: DateTime::setTimestamp()


Псевдоним DateTime::getTimezone

  • « date_timestamp_set
  • date_timezone_set »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::getTimezone

date_timezone_get

(PHP 5 >= 5.2.0, PHP 7)

date_timezone_get — Псевдоним DateTime::getTimezone()

Описание

Эта функция является псевдонимом: DateTime::getTimezone()


Псевдоним DateTime::setTimezone

  • « date_timezone_get
  • date »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::setTimezone

date_timezone_set

(PHP 5 >= 5.2.0, PHP 7)

date_timezone_set — Псевдоним DateTime::setTimezone()

Описание

Эта функция является псевдонимом: DateTime::setTimezone()


Форматирует вывод системной даты/времени

  • « date_timezone_set
  • getdate »
  • PHP Manual
  • Функции даты и времени
  • Форматирует вывод системной даты/времени

date

(PHP 4, PHP 5, PHP 7)

date — Форматирует вывод системной даты/времени

Описание

date ( string $format [, int $timestamp = time() ] ) : string

Возвращает строку, отформатированную в соответствии с указанным шаблоном format. Используется метка времени, заданная аргументом timestamp, или текущее системное время, если timestamp не задан. Таким образом, timestamp является необязательным и по умолчанию равен значению, возвращаемому функцией time().

Список параметров

format

Шаблон результирующей строки (string) с датой. См. параметры форматирования ниже. Также существует несколько предопределенных констант даты/времени, которые могут быть использованы вместо этих параметров. Например: DATE_RSS заменяет шаблон 'D, d M Y H:i:s'.

В параметре format распознаются следующие символы
Символ в строке format | Описание | Пример возвращаемого значения
День --- ---
d | День месяца, 2 цифры с ведущим нулём | от 01 до 31
D | Текстовое представление дня недели, 3 символа | от Mon до Sun
j | День месяца без ведущего нуля | от 1 до 31
l (строчная 'L') | Полное наименование дня недели | от Sunday до Saturday
N | Порядковый номер дня недели в соответствии со стандартом ISO-8601 (добавлено в PHP 5.1.0) | от 1 (понедельник) до 7 (воскресенье)
S | Английский суффикс порядкового числительного дня месяца, 2 символа | st, nd, rd или th. Применяется совместно с j
w | Порядковый номер дня недели | от 0 (воскресенье) до 6 (суббота)
z | Порядковый номер дня в году (начиная с 0) | От 0 до 365
Неделя --- ---
W | Порядковый номер недели года в соответствии со стандартом ISO-8601; недели начинаются с понедельника | Например: 42 (42-я неделя года)
Месяц --- ---
F | Полное наименование месяца, например, January или March | от January до December
m | Порядковый номер месяца с ведущим нулём | от 01 до 12
M | Сокращенное наименование месяца, 3 символа | от Jan до Dec
n | Порядковый номер месяца без ведущего нуля | от 1 до 12
t | Количество дней в указанном месяце | от 28 до 31
Год --- ---
L | Признак високосного года | 1, если год високосный, иначе 0.
o | Номер года в соответствии со стандартом ISO-8601. Имеет то же значение, что и Y, кроме случая, когда номер недели ISO (W) принадлежит предыдущему или следующему году; тогда будет использован год этой недели. (добавлено в PHP 5.1.0) | Примеры: 1999 или 2003
Y | Порядковый номер года, 4 цифры | Примеры: 1999, 2003
y | Номер года, 2 цифры | Примеры: 99, 03
Время --- ---
a | Ante meridiem (лат. "до полудня") или Post meridiem (лат. "после полудня") в нижнем регистре | am или pm
A | Ante meridiem или Post meridiem в верхнем регистре | AM или PM
B | Время в формате Интернет-времени (альтернативной системы отсчета времени суток) | от 000 до 999
g | Часы в 12-часовом формате без ведущего нуля | от 1 до 12
G | Часы в 24-часовом формате без ведущего нуля | от 0 до 23
h | Часы в 12-часовом формате с ведущим нулём | от 01 до 12
H | Часы в 24-часовом формате с ведущим нулём | от 00 до 23
i | Минуты с ведущим нулём | от 00 до 59
s | Секунды с ведущим нулём | от 00 до 59
u | Микросекунды (добавлено в PHP 5.2.2). Учтите, что date() всегда будет возвращать 000000, т.к. она принимает целочисленный параметр, тогда как DateTime::format() поддерживает микросекунды, если DateTime создан с ними. | Например: 654321
v | Миллисекунды (добавлено в PHP 7.0.0). Замечание такое же как и для u. | Пример: 654
Временная зона --- ---
e | Идентификатор временной зоны (добавлено в PHP 5.1.0) | Примеры: UTC, GMT, Atlantic/Azores
I (заглавная i) | Признак летнего времени | 1, если дата соответствует летнему времени, 0 в противном случае.
O | Разница с временем по Гринвичу без двоеточия между часами и минутами | Например: +0200
P | Разница с временем по Гринвичу с двоеточием между часами и минутами (добавлено в PHP 5.1.3) | Например: +02:00
T | Аббревиатура временной зоны | Примеры: EST, MDT ...
Z | Смещение временной зоны в секундах. Для временных зон, расположенных западнее UTC возвращаются отрицательные числа, а расположенных восточнее UTC - положительные. | от -43200 до 50400
Полная дата/время --- ---
c | Дата в формате стандарта ISO 8601 (добавлено в PHP 5) | 2004-02-12T15:19:21+00:00
r | Дата в формате » RFC 2822 | Например: Thu, 21 Dec 2000 16:01:07 +0200
U | Количество секунд, прошедших с начала Эпохи Unix (1 января 1970 00:00:00 GMT) | См. также time()

Любые другие символы, встреченные в строке-шаблоне, будут выведены в результирующую строку без изменений. Z всегда возвращает 0 при использовании gmdate().

Замечание:

Поскольку рассматриваемая функция принимает в качестве параметра временные метки типа integer, форматирующий символ u будет полезен только при использовании функции date_format() и пользовательских меток времени, созданных с помощью функции date_create().

timestamp

Необязательный параметр timestamp представляет собой метку времени типа integer, по умолчанию равную текущему локальному времени, если timestamp не указан. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает отформатированную строку с датой. При передаче нечислового значения в качестве параметра timestamp будет возвращено FALSE и вызвана ошибка уровня E_WARNING.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE, и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
5.1.1 | Для стандартных форматов даты/времени существуют специальные константы, которые могут быть указаны в качестве параметра format.
5.1.0 | Допустимым диапазоном дат для временных меток обычно являются даты с 13 декабря 1901, 20:45:54 GMT по 19 января 2038, 03:14:07 GMT. (Они соответствуют минимальному и максимальному значению 32-битного целого числа со знаком). Однако для PHP версии ниже 5.1.0 в некоторых операционных системах (например, Windows) этот диапазон был ограничен датами 01-01-1970 до 19-01-2038.
5.1.0 | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.

Примеры

Пример #1 Примеры использования функции date()

<?php
// установка временной зоны по умолчанию. Доступно с PHP 5.1
date_default_timezone_set('UTC');

// выведет примерно следующее: Monday
echo date("l");

// выведет примерно следующее: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \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));

/* пример использования константы в качестве форматирующего параметра */
// выведет примерно следующее: Mon, 15 Aug 2005 15:12:46 UTC
echo date(DATE_RFC822);

// выведет примерно следующее: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
?>

Чтобы запретить распознавание символа как форматирующего, следует экранировать его с помощью обратного слэша. Если экранированный символ также является форматирующей последовательностью, то следует экранировать его повторно.

Пример #2 Экранирование символов в функции date()

<?php
// выведет примерно следующее: Wednesday the 15th
echo date('l \t\h\e jS');
?>

Для вывода прошедших и будущих дат удобно использовать функции date() и mktime().

Пример #3 Пример совместного использования функций date() и mktime()

<?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);
?>

Замечание:

Данный способ более надежен, чем простое вычитание и прибавление секунд к метке времени, поскольку позволяет при необходимости гибко осуществить переход на летнее/зимнее время.

Ещё несколько примеров использования функции date(). Важно отметить, что следует экранировать все символы, которые необходимо оставить без изменений. Это справедливо и для тех символов, которые в текущей версии PHP не распознаются как форматирующие, поскольку это может быть введено в следующих версиях. Для экранировании управляющих последовательностей (например, \n) следует использовать одинарные кавычки.

Пример #4 Форматирование с использованием date()

<?php
// Предположим, что текущей датой является 10 марта 2001, 5:16:18 вечера,
// и мы находимся во временной зоне Mountain Standard Time (MST)

$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');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$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 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
$today = date("H:i:s");                         // 17:16:18
$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (формат MySQL DATETIME)
?>

Для форматирования дат на других языках используйте вместо date() функции setlocale() и strftime().

Примечания

Замечание:

Для получения метки времени из строкового представления даты можно воспользоваться функцией strtotime(). Кроме того, некоторые базы данных имеют собственные функции для преобразования внутреннего представления даты в метку времени (например, функция MySQL » UNIX_TIMESTAMP).

Подсказка

Начиная с PHP 5.1, временную метку начала запроса можно получить из поля $_SERVER['REQUEST_TIME'].

Смотрите также

  • gmdate() - Форматирует дату/время по Гринвичу
  • idate() - Преобразует локальное время/дату в целое число
  • getdate() - Возвращает информацию о дате/времени
  • getlastmod() - Получает время последней модификации страницы
  • mktime() - Возвращает метку времени Unix для заданной даты
  • strftime() - Форматирует текущую дату/время с учетом текущих настроек локали
  • time() - Возвращает текущую метку системного времени Unix
  • strtotime() - Преобразует текстовое представление даты на английском языке в метку времени Unix
  • Предопределенные константы даты и времени


Возвращает информацию о дате/времени

  • « date
  • gettimeofday »
  • PHP Manual
  • Функции даты и времени
  • Возвращает информацию о дате/времени

getdate

(PHP 4, PHP 5, PHP 7)

getdate — Возвращает информацию о дате/времени

Описание

getdate ([ int $timestamp = time() ] ) : array

Возвращает ассоциативный массив (array), содержащий информацию о дате, представленной меткой времени timestamp или текущим системным временем, если timestamp не был передан.

Список параметров

timestamp

Необязательный параметр timestamp представляет собой метку времени типа integer, по умолчанию равную текущему локальному времени, если timestamp не указан. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает ассоциативный массив (array) с информацией о параметре timestamp, который содержит следующие элементы:

Индексы возвращаемого ассоциативного массива
Индекс | Описание | Пример значения
"seconds" | Числовое представление секунд | от 0 до 59
"minutes" | Числовое представление минут | от 0 до 59
"hours" | Числовое представление часов | от 0 до 23
"mday" | Порядковый номер дня месяца | от 1 до 31
"wday" | Порядковый номер дня недели | от 0 (воскресенье) до 6 (суббота)
"mon" | Порядковый номер месяца | от 1 до 12
"year" | Номер года, 4 цифры | Примеры: 1999, 2003
"yday" | Порядковый номер дня в году | от 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
)

Смотрите также

  • date() - Форматирует вывод системной даты/времени
  • idate() - Преобразует локальное время/дату в целое число
  • localtime() - Возвращает локальное время
  • time() - Возвращает текущую метку системного времени Unix
  • setlocale() - Устанавливает настройки локали


Возвращает текущее время

  • « getdate
  • gmdate »
  • PHP Manual
  • Функции даты и времени
  • Возвращает текущее время

gettimeofday

(PHP 4, PHP 5, PHP 7)

gettimeofday — Возвращает текущее время

Описание

gettimeofday ([ bool $return_float = FALSE ] ) : mixed

Функция является интерфейсом к системному вызову gettimeofday(2). Она возвращает ассоциативный массив, содержащий информацию, полученную от системного вызова.

Список параметров

return_float

Если установлено в TRUE, вместо массива возвращается число с плавающей точкой.

Возвращаемые значения

По умолчанию возвращается массив (array). Если установлен параметр return_float, то возвращается число с плавающей точкой (float).

Ключи массива:

  • "sec" - количество секунд, прошедших с эпохи Unix
  • "usec" - микросекунды
  • "minuteswest" - смещение к западу от Гринвича, в минутах
  • "dsttime" - тип коррекции летнего времени

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр return_float.

Примеры

Пример #1 Пример использования функции gettimeofday()

<?php
print_r(gettimeofday());

echo gettimeofday(true);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [sec] => 1073504408
    [usec] => 238215
    [minuteswest] => 0
    [dsttime] => 1
)

1073504408.23910


Форматирует дату/время по Гринвичу

  • « gettimeofday
  • gmmktime »
  • PHP Manual
  • Функции даты и времени
  • Форматирует дату/время по Гринвичу

gmdate

(PHP 4, PHP 5, PHP 7)

gmdate — Форматирует дату/время по Гринвичу

Описание

gmdate ( string $format [, int $timestamp = time() ] ) : string

Эта функция идентична функции date() за исключением того, что возвращает время по Гринвичу (GMT).

Список параметров

format

Формат выводимой даты типа строка (string). Смотрите параметры форматирования для функции date().

timestamp

Необязательный параметр timestamp представляет собой метку времени типа integer, по умолчанию равную текущему локальному времени, если timestamp не указан. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает строку с форматированной датой. Если для параметра timestamp указано нечисловое значение, то будет возращено FALSE и вызвана ошибка уровня E_WARNING.

Список изменений

Версия | Описание
5.1.1 | Существуют также полезные константы стандартных форматов даты/времени, которые могут быть использованы в качестве параметра format.
5.1.0 | Корректным диапазоном временных меток обычно является диапазон дат с 13 декабря 1901 20:45:54 GMT до 19 января 2038 03:14:07 GMT. (Эти даты соответствуют минимальному и максимальному значению 32-битному целому числу со знаком). Однако, до PHP 5.1.0 на некоторых системах (например, Windows) этот диапазон был ограничен датами от 01-01-1970 до 19-01-2038.

Примеры

Пример #1 Пример использования gmdate()

Например, в Финляндии (GMT +0200), первая строка в следующем примере выведет "Jan 01 1998 00:00:00", а вторая - "Dec 31 1997 22:00:00".

<?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));
?>

Смотрите также

  • date() - Форматирует вывод системной даты/времени
  • mktime() - Возвращает метку времени Unix для заданной даты
  • gmmktime() - Возвращает локальную метку времени Unix для времени по Гринвичу
  • strftime() - Форматирует текущую дату/время с учетом текущих настроек локали


Возвращает локальную метку времени Unix для времени по Гринвичу

  • « gmdate
  • gmstrftime »
  • PHP Manual
  • Функции даты и времени
  • Возвращает локальную метку времени Unix для времени по Гринвичу

gmmktime

(PHP 4, PHP 5, PHP 7)

gmmktime — Возвращает локальную метку времени Unix для времени по Гринвичу

Описание

 gmmktime
  ([ int $hour = gmdate("H")
 [, int $minute = gmdate("i")
 [, int $second = gmdate("s")
 [, int $month = gmdate("n")
 [, int $day = gmdate("j")
 [, int $year = gmdate("Y")
 [, int $is_dst = -1
]]]]]]] ) : int

Эта функция идентична функции mktime(), за исключением того, что аргументы являются временем по Гринвичу (GMT). gmmktime() внутри использует mktime(), поэтому могут быть использованы только те даты местного времени, которые корректно представляются в этой зоне.

Подобно функции mktime(), аргументы могут быть опущены в порядке справа налево, в этом случае они предполагаются равными соответствующим компонентам текущего времени по Гринвичу.

Список параметров

hour

Количество часов, прошедших с начала дня, указанного параметрами month, day и year. Отрицательные значения определяют часы до полуночи указанного дня. Значения, большие 23 определяют соответствующий час следующего дня (или дней).

minute

Количество минут, прошедших от начала часа, указанного параметром hour. Отрицательные значения определяют минуты предыдущего часа. Значения, большие 59 определяют соответствующие минуты следующего часа (или часов).

second

Количество секунд, прошедших от начала минуты, указанной параметром minute. Отрицательные значения определяют секунды из предыдущей минуты. Значения, большие 59 определяют соответствующие секунды следующей минуты (или минут).

month

Количество месяцев, прошедших с конца предыдущего года. Значения от 1 до 12 определяют нормальные обычные календарные месяцы года. Значения, меньшие 1 (включая отрицательные значения) определяют месяца предыдущего года в обратном порядке, то есть 0 будет декабрем, -1 - ноябрем и т.д. Значения больше 12 определяют соответствующий месяц в следующем году (или годах).

day

Количество дней, прошедших с конца предыдущего месяца. Значения от 1 до 28, 29, 30 или 31 (в зависимости от месяца) определяют нормальные дни соответствующего месяца. Значения, меньшие 1 (включая отрицательные значения) определяют дни предыдущего месяца, таким образом, 0 является последним днем предыдущего месяца, -1 - предпоследним днем предыдущего месяца и т.д. Значения, большие количества дней соответствующего месяца определяют соответствующий день следующего месяца (или месяцев).

year

Год

is_dst

Параметры всегда представляют собой дату по Гринвичу, поэтому параметр is_dst не влияет на результат.

Замечание:

Этот параметр был удален в PHP 7.0.0.

Возвращаемые значения

Возвращает временную метку Unix (тип integer).

Список изменений

Версия | Описание
7.0.0 | Параметр is_dst был удален.
5.1.0 | Начиная с версии PHP 5.1.0, параметр is_dst считается устаревшим. В результате должны быть использованы новые возможности обработки временных зон.

Примеры

Пример #1 Базовый пример использования gmmktime()

<?php
// Выводит: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", gmmktime(0, 0, 0, 7, 1, 2000));
?>

Смотрите также

  • mktime() - Возвращает метку времени Unix для заданной даты
  • date() - Форматирует вывод системной даты/времени
  • time() - Возвращает текущую метку системного времени Unix


Форматирует дату/время по Гринвичу с учетом текущей локали

  • « gmmktime
  • idate »
  • PHP Manual
  • Функции даты и времени
  • Форматирует дату/время по Гринвичу с учетом текущей локали

gmstrftime

(PHP 4, PHP 5, PHP 7)

gmstrftime — Форматирует дату/время по Гринвичу с учетом текущей локали

Описание

gmstrftime ( string $format [, int $timestamp = time() ] ) : string

Эта функция идентична функции strftime() за исключением того, что возвращает время по Гринвичу (GMT). Например, при запуске на системе, где установлено Eastern Standard Time (GMT-0500), первая строка из примера ниже выведет "Dec 31 1998 20:00:00", тогда как вторая - "Jan 01 1999 01:00:00".

Список параметров

format

Смотрите описание функции strftime().

timestamp

Необязательный параметр timestamp представляет собой метку времени типа integer, по умолчанию равную текущему локальному времени, если timestamp не указан. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает строку, отформатированную согласно указанному формату и с использованием временной метки из параметра timestamp или текущего локального времени, если временная метка не была указана. Названия месяцев, дней недели и других языкозависимых строк будут показаны с учетом настроек текущей локали, установленных с помощью функции setlocale().

Примеры

Пример #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() - Форматирует текущую дату/время с учетом текущих настроек локали


Преобразует локальное время/дату в целое число

  • « gmstrftime
  • localtime »
  • PHP Manual
  • Функции даты и времени
  • Преобразует локальное время/дату в целое число

idate

(PHP 5, PHP 7)

idate — Преобразует локальное время/дату в целое число

Описание

idate ( string $format [, int $timestamp = time() ] ) : int

Преобразует текущую дату и время в целое число в соответствии со строкой форматирования format. Если аргумент timestamp задан, расчет будет произведен для этой временной метки, если нет - будет использовано локальное время. Другими словами, timestamp - необязательный аргумент и по умолчанию равен значению time().

В отличие от функции date(), idate() принимает только один символ в аргументе format.

Список параметров

format

Допустимые символы в строке аргумента format
символ в format | Описание
B | Эталонное время/Время Интернета
d | День месяца
h | Час (12 часовой формат)
H | Час (24 часовой формат)
i | Минуты
I (i в верхнем регистре) | возвращает 1, если активировано DST, или 0 в противном случае
L (l в верхнем регистре) | возвращает 1 для високосного года, 0 в противном случае
m | Номер месяца
s | Секунды
t | Количество дней в текущем месяце
U | Время в секундах, от начала эпохи UNIX - 1 января 1970 00:00:00 UTC - то же, что time()
w | День недели (0 - Воскресенье)
W | ISO-8601 - Номер недели года, неделя начинается с понедельника
y | Год (1 или 2 цифры - см. примечание ниже)
Y | Год (4 цифры)
z | День года
Z | Временная зона - смещение в секундах

timestamp

Необязательный параметр timestamp представляет собой метку времени типа integer, по умолчанию равную текущему локальному времени, если timestamp не указан. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает целое число (integer).

idate() всегда возвращает тип integer и не может начинаться с нуля, поэтому idate() может вернуть меньше цифр, чем вы ожидаете. См. примеры ниже.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE, и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
5.1.0 | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.

Примеры

Пример #1 Пример использования idate()

<?php
$timestamp = strtotime('1st January 2004'); //1072915200

// это выведет год в 2-х знаковом представлении
// поскольку первая цифра "0", будет выведено
// только "4"
echo idate('y', $timestamp);
?>

Смотрите также

  • date() - Форматирует вывод системной даты/времени
  • getdate() - Возвращает информацию о дате/времени
  • time() - Возвращает текущую метку системного времени Unix


Возвращает локальное время

  • « idate
  • microtime »
  • PHP Manual
  • Функции даты и времени
  • Возвращает локальное время

localtime

(PHP 4, PHP 5, PHP 7)

localtime — Возвращает локальное время

Описание

localtime ([ int $timestamp = time() [, bool $is_associative = FALSE ]] ) : array

Функция localtime() возвращает массив, аналогичный по структуре, возвращаемой соответствующей функцией C.

Список параметров

timestamp

Необязательный параметр timestamp представляет собой метку времени типа integer, по умолчанию равную текущему локальному времени, если timestamp не указан. Другими словами, значение по умолчанию равно результату функции time().

is_associative

Если установлен в FALSE или не передан, то возвращается обычный массив с числовыми индексами. Если установлен в TRUE, то функция localtime() вернет ассоциативный массив, содержащий все различные элементы структуры, возвращаемой вызовом C-функции localtime. Названия этих ключей соответствуют следующим значениям:

  • "tm_sec" - секунды, с 0 до 59
  • "tm_min" - минуты, с 0 до 59
  • "tm_hour" - часы, с 0 до 23
  • "tm_mday" - день месяца, с 1 до 31
  • "tm_mon" - месяц года, с 0 (январь) до 11 (декабрь)
  • "tm_year" - количество лет, прошедших с 1900 г.
  • "tm_wday" - день недели, с 0 (воскресенье) до 6 (суббота)
  • "tm_yday" - порядковый номер дня в году, с 0 до 365
  • "tm_isdst" - действует ли летнее время? Положительное значение, если учитывается, 0, если не учитывается, отрицателен, если неизвестно.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE, и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
5.1.0 | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.

Примеры

Пример #1 Пример использования localtime()

<?php
$localtime = localtime();
$localtime_assoc = localtime(time(), true);
print_r($localtime);
print_r($localtime_assoc);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 24
    [1] => 3
    [2] => 19
    [3] => 3
    [4] => 3
    [5] => 105
    [6] => 0
    [7] => 92
    [8] => 1
)

Array
(
    [tm_sec] => 24
    [tm_min] => 3
    [tm_hour] => 19
    [tm_mday] => 3
    [tm_mon] => 3
    [tm_year] => 105
    [tm_wday] => 0
    [tm_yday] => 92
    [tm_isdst] => 1
)

Смотрите также

  • getdate() - Возвращает информацию о дате/времени


Возвращает текущую метку времени Unix с микросекундами

  • « localtime
  • mktime »
  • PHP Manual
  • Функции даты и времени
  • Возвращает текущую метку времени Unix с микросекундами

microtime

(PHP 4, PHP 5, PHP 7)

microtime — Возвращает текущую метку времени Unix с микросекундами

Описание

microtime ([ bool $get_as_float = FALSE ] ) : mixed

Функция microtime() возвращает текущую метку времени Unix с микросекундами. Эта функция доступна только на операционных системах, в которых есть системный вызов gettimeofday().

Список параметров

get_as_float

Если указано и установлено в TRUE, microtime() возвратит число с плавающей точкой (float) вместо строки (string), как описано в разделе возвращаемых значений ниже.

Возвращаемые значения

По умолчанию microtime() возвращает строку (string) в формате "msec sec", где sec представляет собой количество секунд с начала эпохи Unix (1 января 1970 0:00:00 GMT), а msec - это количество микросекунд, прошедших после sec.

Если параметр get_as_float установлен в TRUE, то microtime() возвратит результат в вещественном виде (float), представляющий собой текущее время в секундах, прошедших с начала эпохи Unix с точностью до микросекунд.

Примеры

Пример #1 Замер времени выполнения скрипта с помощью функции microtime()

<?php
/**
 * Простая функция для реализации поведения из PHP 5
 */
function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

$time_start = microtime_float();

// Спим некоторое время
usleep(100);

$time_end = microtime_float();
$time = $time_end - $time_start;

echo "Ничего не делал $time секунд\n";
?>

Пример #2 Замер времени выполнения скрипта в PHP 5

<?php
$time_start = microtime(true);

// Спим некоторое время
usleep(100);

$time_end = microtime(true);
$time = $time_end - $time_start;

echo "Ничего не делал $time секунд\n";
?>

Пример #3 Пример использования microtime() и REQUEST_TIME_FLOAT (начиная с PHP 5.4.0)

<?php
// Выбираем время сна случайным образом
usleep(mt_rand(100, 10000));

// Начиная с PHP 5.4.0 в суперглобальном массиве $_SERVER доступно значение REQUEST_TIME_FLOAT.
// Оно содержит временную метку начала запроса с точностью до микросекунд.
$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];

echo "Ничего не делал $time секунд\n";
?>

Смотрите также

  • time() - Возвращает текущую метку системного времени Unix


Возвращает метку времени Unix для заданной даты

  • « microtime
  • strftime »
  • PHP Manual
  • Функции даты и времени
  • Возвращает метку времени Unix для заданной даты

mktime

(PHP 4, PHP 5, PHP 7)

mktime — Возвращает метку времени Unix для заданной даты

Описание

 mktime
  ([ int $hour = date("H")
 [, int $minute = date("i")
 [, int $second = date("s")
 [, int $month = date("n")
 [, int $day = date("j")
 [, int $year = date("Y")
 [, int $is_dst = -1
]]]]]]] ) : int

Функция возвращает метку времени Unix, соответствующую дате и времени, переданных в качестве аргументов. Метка времени - это целое число, равное разнице в секундах между заданной датой/временем и началом эпохи Unix (1 января 1970 00:00:00 GMT).

Аргументы могут быть опущены в порядке справа налево. В этом случае их значения по умолчанию равны соответствующим компонентам локальной даты/времени.

Примечания

Замечание:

Начиная с версии PHP 5.1, если mktime() вызывается без аргументов, то будет сгенерировано замечание уровня E_STRICT. Используйте вместо этого функцию time().

Список параметров

hour

Количество часов, прошедших с начала дня, указанного параметрами month, day и year. Отрицательные значения определяют часы до полуночи указанного дня. Значения больше 23 определяют соответствующий час следующего дня (или дней).

minute

Количество минут, прошедших от начала часа, указанного параметром hour. Отрицательные значения определяют минуты предыдущего часа. Значения больше 59 определяют соответствующие минуты следующего часа (или часов).

second

Количество секунд, прошедших от начала минуты, указанной параметром minute. Отрицательные значения определяют секунды из предыдущей минуты. Значения больше 59 определяют соответствующие секунды следующей минуты (или минут).

month

Количество месяцев, прошедших с конца предыдущего года. Значения от 1 до 12 определяют нормальные обычные календарные месяцы года. Значения меньше 1 (включая отрицательные значения) определяют месяца предыдущего года в обратном порядке, то есть 0 будет декабрем, -1 - ноябрем и т.д. Значения больше 12 определяют соответствующий месяц в следующем году (или годах).

day

Количество дней, прошедших с конца предыдущего месяца. Значения от 1 до 28, 29, 30 или 31 (в зависимости от месяца) определяют нормальные дни соответствующего месяца. Значения меньше 1 (включая отрицательные значения) определяют дни предыдущего месяца, таким образом, 0 является последним днем предыдущего месяца, -1 - предпоследним днем предыдущего месяца и т.д. Значения больше количества дней соответствующего месяца определяют соответствующий день следующего месяца (или месяцев).

year

Номер года, может быть указан двумя или четырьмя цифрами, причем значения между 0-69 будут трактованы как 2000-2069, а между 70-100 - как 1970-2000. На тех системах, где time_t является 32-битным знаковым целым (наиболее распространенный вариант на сегодня), корректный диапазон для параметра year содержит даты где-то между 1901 и 2038. Однако, до версии PHP 5.1.0, на некоторых системах этот диапазон был ограничен датами между 1970 и 2038 (например, Windows).

is_dst

Данный параметр может быть установлен в 1, если заданной дате соответствует летнее время (DST), 0 - в противном случае, или -1 (значение по умолчанию), если неизвестно, действует ли летнее время на заданную дату. В последнем случае PHP пытается определить это самостоятельно. Это может привести к неожиданному результату (который, тем не менее, не будет неверным). Некоторые даты могут быть неверными, если летнее время применимо к системе, на которой запущен PHP, или параметр is_dst установлен в 1. Если переход на летнее время происходит, например, в 2:00, все даты между 2:00 и 3:00 станут некорректными и mktime() вернет неопределенное (обычно отрицательное) значение. Некоторые системы (например, Solaris 8) осуществляют переход на летнее время в полночь, так что время 0:30 дня, когда был осуществлен переход на летнее время будет обрабатываться как 23:30 предыдущего дня.

Замечание:

Начиная с версии PHP 5.1.0, этот параметр более не рекомендуется к использованию. Вместо этого рекомендуется устанавливать соответствующую временную зону.

Замечание:

Этот параметр был удален в PHP 7.0.0.

Возвращаемые значения

mktime() возвращает временную метку Unix в соответствии с переданными аргументами. Если были переданы некорректными аргументы, функция вернет FALSE (до PHP 5.1 возвращалась -1).

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE, и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
7.0.0 | Параметр is_dst был удален.
5.3.0 | mktime() теперь выбрасывает ошибку уровня E_DEPRECATED при использовании параметра is_dst.
5.1.0 | Параметр is_dst теперь считается устаревшим. Функция теперь возвращает FALSE при ошибке, тогда как раньше возвращалась -1. Теперь функция принимает дату с одновременно установленными в ноль годом, месяцем и днем.
5.1.0 | Если mktime() была вызвана без аргументов, то будет сгенерировано замечание уровня E_STRICT. Используйте вместо этого функцию time().
5.1.0 | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.

Примеры

Пример #1 Пример использования функции mktime()

<?php
// Устанавливаем используемую по умолчанию временную зону. Доступно с PHP 5.1
date_default_timezone_set('UTC');

// Выводит: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

// Выводит что-то вроде: 2006-04-05T01:02:03+00:00
echo date('c', mktime(1, 2, 3, 4, 5, 2006));
?>

Пример #2 Пример использования mktime()

Функцию mktime() удобно использовать для выполнения арифметических операций с датами, так как она вычисляет верные значения при некорректных аргументах. Например, в следующем примере каждая строка выведет "Jan-01-1998".

<?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));
?>

Пример #3 Последний день месяца

Последний день любого месяца можно вычислить как "нулевой" день следующего месяца, не -1 день. Оба приведенных ниже примера выведут "Последний день февраля 2000 г.: 29".

<?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);
?>

Примечания

Предостережение

До версии PHP 5.1.0, отрицательные временные метки не поддерживались ни под одной известной версией Windows, а также и некоторыми другими системами. Таким образом, диапазон корректных лет был ограничен датами от 1970 до 2038 г.

Смотрите также

  • checkdate() - Проверяет корректность даты по григорианскому календарю
  • gmmktime() - Возвращает локальную метку времени Unix для времени по Гринвичу
  • date() - Форматирует вывод системной даты/времени
  • time() - Возвращает текущую метку системного времени Unix


Форматирует текущую дату/время с учетом текущих настроек локали

  • « mktime
  • strptime »
  • PHP Manual
  • Функции даты и времени
  • Форматирует текущую дату/время с учетом текущих настроек локали

strftime

(PHP 4, PHP 5, PHP 7)

strftime — Форматирует текущую дату/время с учетом текущих настроек локали

Описание

strftime ( string $format [, int $timestamp = time() ] ) : string

Форматирует дату/время с учетом текущих настроек локали. Названия месяцев, дней недели и других языкозависимых строк будут взяты в соответствии с текущими настройками локали, установленной с помощью функции setlocale().

Ваша C-библиотека может не поддерживать все форматирующие параметры, в этом случае они будут недоступны функции strftime(). Кроме того, не все платформы поддерживают отрицательные метки времени, так что поддерживаемый диапазон дат на этих платформах будет ограничен эпохой Unix. Это значит, что %e, %T, %R и %D (а возможно и другие параметры), как и даты до Jan 1, 1970, не поддерживаются Windows, некоторыми версиями Linux и некоторыми другими операционными системами. Список форматирующих символов, поддерживаемых Windows, можно найти на » сайте MSDN.

Список параметров

format

Распознаются следующие символы в строке format
format | Описание | Пример возвращаемых значений
День --- ---
%a | Сокращенное название дня недели | От Sun до Sat
%A | Полное название дня недели | От Sunday до Saturday
%d | Двухзначное представление дня месяца (с ведущими нулями) | От 01 до 31
%e | День месяца, с ведущим пробелом, если он состоит из одной цифры. На Windows реализован не так, как описано. Подробнее смотрите ниже. | От 1 до 31
%j | Порядковый номер в году, 3 цифры с ведущими нулями | От 001 до 366
%u | Порядковый номер дня недели согласно стандарту ISO-8601 | От 1 (понедельник) до 7 (воскресенье)
%w | Порядковый номер дня недели | От 0 (воскресенье) до 6 (суббота)
Неделя --- ---
%U | Порядковый номер недели в указанном году, начиная с первого воскресенья в качестве первой недели | 13 (для полной 13-й недели года)
%V | Порядковый номер недели в указанном году в соответствии со стандартом ISO-8601:1988, счет начинается с той недели, которая содержит минимум 4 дня, неделя начинается с понедельника | От 01 до 53 (где 53 указывает на перекрывающуюся неделю)
%W | Порядковый номер недели в указанном году, начиная с первого понедельника в качестве первой недели | 46 (для 46-й недели года, начинающейся с понедельника)
Месяц --- ---
%b | Аббревиатура названия месяца, в соответствии с настройками локали | От Jan до Dec
%B | Полное название месяца, в соответствии с настройками локали | От January до December
%h | Аббревиатура названия месяца, в соответствии с настройками локали (псевдоним %b) | От Jan до Dec
%m | Двухзначный порядковый номер месяца | От 01 (январь) до 12 (декабрь)
Год --- ---
%C | Двухзначный порядковый номер столетия (год, деленный на 100, усеченный до целого) | 19 для 20-го века
%g | Двухзначный номер года в соответствии со стандартом ISO-8601:1988 (см. %V) | Пример: 09 для недели 6 января 2009
%G | Полная четырехзначная версия %g | Пример: 2009 для недели 3 января 2009
%y | Двухзначный порядковый номер года | Пример: 09 для 2009, 79 для 1979
%Y | Четырехзначный номер года | Пример: 2038
Время --- ---
%H | Двухзначный номер часа в 24-часовом формате | От 00 до 23
%k | Часы в 24-часовом формате, с пробелом перед одиночной цифрой | От 0 до 23
%I | Двухзначный номер часа в 12-часовом формате | От 01 до 12
%l (строчная 'L') | Час в 12-часовом формате, с пробелом перед одиночной цифрой | От 1 до 12
%M | Двухзначный номер минуты | От 00 до 59
%p | 'AM' или 'PM' в верхнем регистре, в зависимости от указанного времени | Пример: AM для 00:31, PM для 22:23
%P | 'am' или 'pm' в зависимости от указанного времени | Пример: am для 00:31, pm для 22:23
%r | То же что и "%I:%M:%S %p" | Пример: 09:34:17 PM для 21:34:17
%R | То же что и "%H:%M" | Пример: 00:35 для 12:35 AM, 16:44 для 4:44 PM
%S | Двухзначный номер секунды | От 00 до 59
%T | То же что и "%H:%M:%S" | Пример: 21:34:17 для 09:34:17 PM
%X | Предпочитаемое отображение времени в зависимости от локали, без даты | Пример: 03:59:16 или 15:59:16
%z | Смещение временной зоны относительно UTC. Не реализовано в Windows, подробности см. ниже. | Пример: -0500 для US Eastern Time
%Z | Аббревиатура временной зоны. Не реализовано в Windows, подробности см. ниже. | Пример: EST для Eastern Time
Метки даты и времени --- ---
%c | Предпочитаемое отображение даты и времени, в зависимости от текущей локали | Пример: Tue Feb 5 00:45:10 2009 для 5 февраля 2009 00:45:10
%D | То же что и "%m/%d/%y" | Пример: 02/05/09 для 5 февраля 2009
%F | То же что и "%Y-%m-%d" (обычно используется в метках времени баз данных) | Пример: 2009-02-05 для 5 февраля 2009
%s | Метка времени Эпохи Unix (то же что и функция time()) | Пример: 305815200 для 10 сентября 1979 08:40:00
%x | Предпочитаемое отображение даты, без времени | Пример: 02/05/09 для 5 февраля 2009
Различное --- ---
%n Символ перевода строки ("\n") ---
%t Символ табуляции ("\t") ---
%% Символ процента ("%") ---

Максимальной длиной данного параметра является 1023 символа.

Внимание

В отличие от ISO-9899:1999, в Sun Solaris воскресенью присваивается номер 1. Как результат, %u может работать не так, как описано в этом руководстве.

Внимание

Только для Windows:

Модификатор %e не поддерживается в реализации этой функции в Windows. Для использования этого значения необходимо вместо него использовать модификатор %#d. Пример ниже иллюстрирует кроссплатформенно совместимую функцию.

Модификаторы %z и %Z возвращают название временной зоны вместо смещения или аббревиатуры.

Внимание

Только для macOS: модификатор %P не поддерживается в реализации этой функции в macOS.

timestamp

Необязательный параметр timestamp представляет собой метку времени типа integer, по умолчанию равную текущему локальному времени, если timestamp не указан. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает строку, отформатированную в соответствии с параметром format, используя указанную временную метку timestamp или текущее время, если метка не была указана. Названия месяцев, дней недели и других языкозависимых строк будут взяты в соответствии с текущими настройками локали, установленной с помощью функции setlocale().

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE, и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()

Из-за того, что результат данной функции зависит от используемой в операционной системе C-библиотеки, некоторые модификаторы могут не поддерживаться. Передача неизвестного модификатора в функцию в Windows выдаст 5 предупреждений E_WARNING и вернет FALSE. На других операционных системах вы можете не получить никаких предупреждений E_WARNING, а вывод может содержать модификаторы без преобразований.

Список изменений

Версия | Описание
5.1.0 | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.

Примеры

Этот пример будет работать, если на вашей системе установлены соответствующие локали.

Пример #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");
?>

Пример #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";

?>

Пример #3 Кроссплатформенный пример использования модификатора %e

<?php

// 1 января: выдает результат: '%e%1%' (%%, e, %%, %e, %%)
$format = '%%e%%%e%%';

// Проверяем наличие Windows и соответственно заменяем модификатор %e
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
    $format = preg_replace('#(?<!%)((?:%%)*)%e#', '\1%#d', $format);
}

echo strftime($format);
?>

Пример #4 Показываем все известные и неизвестные форматы.

<?php
// Описание форматов.
$strftimeFormats = array(
    'A' => 'Полное название дня',
    'B' => 'Полное имя месяца, в зависимости от локали',
    'C' => 'Двухзначный номер столетия (год, деленный на 100, усеченный до целого)',
    'D' => 'Тоже что и "%m/%d/%y"',
    'E' => '',
    'F' => 'Тоже что и "%Y-%m-%d"',
    'G' => 'Четырехзначная версия %g',
    'H' => 'Двухзначный номер часа в 24-часовом формате',
    'I' => 'Двухзначный номер часа в 12-часовом формате',
    'J' => '',
    'K' => '',
    'L' => '',
    'M' => 'Двухзначный номер минуты',
    'N' => '',
    'O' => '',
    'P' => '"am" или "pm" в зависимости от текущего времени, в нижнем регистре',
    'Q' => '',
    'R' => 'Тоже что и "%H:%M"',
    'S' => 'Двухзначный номер секунды',
    'T' => 'Тоже что и "%H:%M:%S"',
    'U' => 'Номер недели указанного года, начиная с первого воскресенья в качестве первой недели',
    'V' => 'Порядковый номер недели в указанном году в соответствии со стандартом ISO-8601:1988, счет начинается с той недели, которая содержит минимум 4 дня, неделя начинается с понедельника',
    'W' => 'Номер недели указанного года, начиная с первого понедельника в качестве первой недели',
    'X' => 'Предпочитаемое отображение времени в зависимости от локали, без даты',
    'Y' => 'Четырехзначный номер года',
    'Z' => 'Смещение временной зоны/аббревиатура, НЕ выдаваемая %z (зависит от операционной системы)',
    'a' => 'Сокращенное название дня недели',
    'b' => 'Сокращенное название месяца в зависимости от локали',
    'c' => 'Предпочитаемое отображение даты и времени в зависимости от локали',
    'd' => 'Двухзначный номер дня месяца (с ведущими нулями)',
    'e' => 'День месяца, с ведущим пробелом, если он состоит из одной цифры',
    'f' => '',
    'g' => 'Двухзначный номер года в соответствии со стандартом ISO-8601:1988 (см. %V)',
    'h' => 'Сокращенное название месяца в зависимости от локали (псевдоним %b)',
    'i' => '',
    'j' => 'Номер дня в году, 3 цифры с ведущими нулями',
    'k' => 'Час в 24-часовом формате, с ведущим пробелом перед одиночной цифрой',
    'l' => 'Номер часа в 12-часовом формате, с ведущим пробелом, если он состоит из одной цифры',
    'm' => 'Двухзначный номер месяца',
    'n' => 'Символ новой строки ("\n")',
    'o' => '',
    'p' => '"AM" или "PM" в зависимости от указанного времени, в верхнем регистре',
    'q' => '',
    'r' => 'Тоже что и "%I:%M:%S %p"',
    's' => 'Временная метка Эпохи Unix',
    't' => 'Символ табуляции ("\t")',
    'u' => 'Номер дня недели в соответствии со стандартом ISO-8601',
    'v' => '',
    'w' => 'Номер дня недели',
    'x' => 'Предпочитаемое отображение даты в зависимости от локали, без времени',
    'y' => 'Двухзначный номер года',
    'z' => 'Смещение временной зоны относительно UTC или аббревиатура (зависит от операционной системы)',
    '%' => 'Символ процента ("%")',
);

// Результаты.
$strftimeValues = array();

// Обрабатываем форматы и подавляем любые ошибки.
foreach($strftimeFormats as $format => $description){
    if (False !== ($value = @strftime("%{$format}"))){
        $strftimeValues[$format] = $value;
    }
}

// Находим самое длинное значение
$maxValueLength = 2 + max(array_map('strlen', $strftimeValues));

// Отображаем известные форматы.
foreach($strftimeValues as $format => $value){
    echo "Известный формат   : '{$format}' = ", str_pad("'{$value}'", $maxValueLength), " ( {$strftimeFormats[$format]} )\n";
}

// Отображаем неизвестные форматы.
foreach(array_diff_key($strftimeFormats, $strftimeValues) as $format => $description){
    echo "Неизвестный формат : '{$format}'   ", str_pad(' ', $maxValueLength), ($description ? " ( {$description} )" : ''), "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Известный формат   : 'A' = 'Friday'            ( Полное название дня )
Известный формат   : 'B' = 'December'          ( Полное имя месяца, в зависимости от локали )
Известный формат   : 'H' = '11'                ( Двухзначный номер часа в 24-часовом формате )
Известный формат   : 'I' = '11'                ( Двухзначный номер часа в 12-часовом формате )
Известный формат   : 'M' = '24'                ( Двухзначный номер минуты )
Известный формат   : 'S' = '44'                ( Двухзначный номер секунды )
Известный формат   : 'U' = '48'                ( Номер недели указанного года, начиная с первого воскресенья в качестве первой недели )
Известный формат   : 'W' = '48'                ( Номер недели указанного года, начиная с первого понедельника в качестве первой недели )
Известный формат   : 'X' = '11:24:44'          ( Предпочитаемое отображение времени в зависимости от локали, без даты )
Известный формат   : 'Y' = '2010'              ( Четырехзначный номер года )
Известный формат   : 'Z' = 'GMT Standard Time' ( Смещение временной зоны/аббревиатура, НЕ выдаваемая %z (зависит от операционной системы) )
Известный формат   : 'a' = 'Fri'               ( Сокращенное название дня недели )
Известный формат   : 'b' = 'Dec'               ( Сокращенное название месяца в зависимости от локали )
Известный формат   : 'c' = '12/03/10 11:24:44' ( Предпочитаемое отображение даты и времени в зависимости от локали )
Известный формат   : 'd' = '03'                ( Двухзначный номер дня месяца (с ведущими нулями) )
Известный формат   : 'j' = '337'               ( Номер дня в году, 3 цифры с ведущими нулями )
Известный формат   : 'm' = '12'                ( Двухзначный номер месяца )
Известный формат   : 'p' = 'AM'                ( "AM" или "PM" в зависимости от указанного времени, в верхнем регистре )
Известный формат   : 'w' = '5'                 ( Номер дня недели )
Известный формат   : 'x' = '12/03/10'          ( Предпочитаемое отображение даты в зависимости от локали, без времени )
Известный формат   : 'y' = '10'                ( Двухзначный номер года )
Известный формат   : 'z' = 'GMT Standard Time' ( Смещение временной зоны относительно UTC или аббревиатура (зависит от операционной системы) )
Известный формат   : '%' = '%'                 ( Символ процента ("%") )
Неизвестный формат : 'C'                       ( Двухзначный номер столетия (год, деленный на 100, усеченный до целого) )
Неизвестный формат : 'D'                       ( Тоже что и "%m/%d/%y" )
Неизвестный формат : 'E'
Неизвестный формат : 'F'                       ( Тоже что и "%Y-%m-%d" )
Неизвестный формат : 'G'                       ( Четырехзначная версия %g )
Неизвестный формат : 'J'
Неизвестный формат : 'K'
Неизвестный формат : 'L'
Неизвестный формат : 'N'
Неизвестный формат : 'O'
Неизвестный формат : 'P'                       ( "am" или "pm" в зависимости от текущего времени, в нижнем регистре )
Неизвестный формат : 'Q'
Неизвестный формат : 'R'                       ( Тоже что и "%H:%M" )
Неизвестный формат : 'T'                       ( Тоже что и "%H:%M:%S" )
Неизвестный формат : 'V'                       ( Порядковый номер недели в указанном году в соответствии со стандартом ISO-8601:1988, счет начинается с той недели, которая содержит минимум 4 дня, неделя начинается с понедельника )
Неизвестный формат : 'e'                       ( День месяца, с ведущим пробелом, если он состоит из одной цифры )
Неизвестный формат : 'f'
Неизвестный формат : 'g'                       ( Двухзначный номер года в соответствии со стандартом ISO-8601:1988 (см. %V) )
Неизвестный формат : 'h'                       ( Сокращенное название месяца в зависимости от локали (псевдоним %b) )
Неизвестный формат : 'i'
Неизвестный формат : 'k'                       ( Номер часа в 24-часовом формате, с ведущим пробелом, если он состоит из одной цифры )
Неизвестный формат : 'l'                       ( Номер часа в 12-часовом формате, с ведущим пробелом, если он состоит из одной цифры )
Неизвестный формат : 'n'                       ( Символ новой строки ("\n") )
Неизвестный формат : 'o'
Неизвестный формат : 'q'
Неизвестный формат : 'r'                       ( Тоже что и "%I:%M:%S %p" )
Неизвестный формат : 's'                       ( Временная метка Эпохи Unix )
Неизвестный формат : 't'                       ( Символ табуляции ("\t") )
Неизвестный формат : 'u'                       ( Номер дня недели в соответствии со стандартом ISO-8601 )
Неизвестный формат : 'v'

Примечания

Замечание: Использование параметров %G и %V, основанных на днях недели формата ISO 8601:1988, могут давать неожиданные (хотя и корректные) результаты при неполном понимании данной системы нумерации. Смотрите примеры параметра %V на данной странице.

Смотрите также

  • » Онлайн-утилита составления времени в формате strftime()
  • setlocale() - Устанавливает настройки локали
  • mktime() - Возвращает метку времени Unix для заданной даты
  • strptime() - Разбирает строку даты/времени, сгенерированную функцией strftime
  • gmstrftime() - Форматирует дату/время по Гринвичу с учетом текущей локали
  • » Спецификация Open Group функции strftime()


Разбирает строку даты/времени, сгенерированную функцией strftime

  • « strftime
  • strtotime »
  • PHP Manual
  • Функции даты и времени
  • Разбирает строку даты/времени, сгенерированную функцией strftime

strptime

(PHP 5 >= 5.1.0, PHP 7)

strptime — Разбирает строку даты/времени, сгенерированную функцией strftime()

Описание

strptime ( string $date , string $format ) : array

strptime() возвращает массив с данными разбора строки date, либо FALSE в случае ошибки.

Названия месяцев и недель, а также другие названия, зависящие от языка, соответствуют текущим настройкам местоположения, установленным посредством setlocale() (LC_TIME).

Список параметров

date (string)

Строка для разбора (например, строковый результат выполнения функции strftime()).

format (string)

Формат строки date (например, формат, используемый в функции strftime()). Следует обратить внимание на тот факт, что не все возможности форматирования используемые в strftime() будут обрабатываться в strptime(); набор поддерживаемых символов форматирования зависит от ОС и используемой С-библиотеки.

За дополнительной информацией о возможностях форматирования обращайтесь на страницу описания функции strftime().

Возвращаемые значения

Возвращает массив или FALSE в случае возникновения ошибки.

Список элементов возвращаемого массива
параметры | Описание
"tm_sec" | Секунды после минут (0-61)
"tm_min" | Минуты после часов (0-59)
"tm_hour" | Часы после полуночи (0-23)
"tm_mday" | День месяца (1-31)
"tm_mon" | Месяцы после января (0-11)
"tm_year" | Годы после 1900
"tm_wday" | Дни после воскресенья (0-6)
"tm_yday" | Дни после 1-го января (0-365)
"unparsed" | Часть date, которую не удалось распознать в соответствии с format

Примеры

Пример #1 Пример использования strptime()

<?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] =>
)

Примечания

Замечание: Для Windows-платформ эта функция не реализована.

Замечание:

В действительности эта функция вызывает библиотечную функцию strptime(). В различных ОС поведение функции может сильно различаться. Функция date_parse_from_format() лишена этого недостатка и рекомендована к использованию в PHP версий 5.3.0 и выше.

Замечание:

"tm_sec" включает несколько секунд високосного года (на данный момент до 2-х в год). Для получения дополнительной информации о високосных секундах читайте » статью на википедии.

Замечание:

До PHP 5.2.0 эта функция может работать непредсказуемо. В особенности элементы "tm_sec", "tm_min" и "tm_hour" могут содержать неопределенные значения.

Смотрите также

  • checkdate() - Проверяет корректность даты по григорианскому календарю
  • strftime() - Форматирует текущую дату/время с учетом текущих настроек локали
  • date_parse_from_format() - Получение информации о заданной в определенном формате дате
  • DateTime::createFromFormat() - Разбирает строку с датой согласно указанному формату


Преобразует текстовое представление даты на английском языке в метку времени Unix

  • « strptime
  • time »
  • PHP Manual
  • Функции даты и времени
  • Преобразует текстовое представление даты на английском языке в метку времени Unix

strtotime

(PHP 4, PHP 5, PHP 7)

strtotime — Преобразует текстовое представление даты на английском языке в метку времени Unix

Описание

strtotime ( string $time [, int $now = time() ] ) : int

Первым параметром функции должна быть строка с датой на английском языке, которая будет преобразована в метку времени Unix (количество секунд, прошедших с 1 января 1970 года 00:00:00 UTC) относительно метки времени, переданной в now, или текущего времени, если аргумент now опущен.

Каждый параметр функции использует временную метку по умолчанию, пока она не указана в этом параметре напрямую. Будьте внимательны и не используйте различные временные метки в параметрах, если на то нет прямой необходимости. Обратите внимание на date_default_timezone_get() для задания временной зоны различными способами.

Список параметров

time

Строка даты/времени. Объяснение корректных форматов дано в разделе Форматы даты и времени.

now

Временная метка, используемая в качестве базы для вычисления относительных дат.

Возвращаемые значения

Возвращает временную метку в случае успеха, иначе возвращается FALSE. До версии PHP 5.1.0 в случае ошибки эта функция возвращала -1.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE, и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
5.3.0 | До PHP 5.3.0 относительные форматы времени, заданные в аргументе time функции strtotime(), такие как this week, previous week, last week и next week, интерпретировались как 7-ми дневный период относительно текущего значения даты/времени, а не как период с Понедельника по Воскресенье.
5.3.0 | До PHP 5.3.0 24:00 не являлся корректным форматом, и при его использовании strtotime() возвращала FALSE.
5.2.7 | В версиях PHP 5 до 5.2.7 при запросе временной метки дня недели, являвшегося первым днем месяца, ошибочно прибавлялась одна неделя. Эта ошибка была исправлена в версии 5.2.7 и следующих за ней версиях.
5.1.0 | Теперь в случае ошибки возвращается FALSE вместо -1.
5.1.0 | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.
5.0.2 | В PHP до версии 5.0.2 "now" и другие относительные времена вычислялись неверно относительно полуночи текущего дня. Это отличается от поведения текущих версий, где вычисление производится корректно относительно текущего времени.
5.0.0 | Стало возможным указывать микросекунды, но они не принимаются во внимание и будут проигнорированы.

Примеры

Пример #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';

// до PHP 5.1.0 вместо false необходимо было сравнивать со значением -1
if (($timestamp = strtotime($str)) === false) {
    echo "Строка ($str) недопустима";
} else {
    echo "$str == " . date('l dS \o\f F Y h:i:s A', $timestamp);
}
?>

Примечания

Замечание:

Если количество лет указано двумя цифрами, то значения 00-69 будут считаться 2000-2069, а 70-99 - 1970-1999. Смотрите также замечания ниже о возможных различиях на 32-битных системах (допустимые даты заканчиваются 2038-01-19 03:14:07).

Замечание:

Корректным диапазоном временных меток обычно являются даты с 13 декабря 1901 20:45:54 UTC по 19 января 2038 03:14:07 UTC. (Эти даты соответствуют минимальному и максимальному значению 32-битового знакового целого).

Кроме того, до PHP 5.1.0, не все платформы поддерживают отрицательные метки времени, поэтому поддерживаемый диапазон дат может быть ограничен эпохой Unix. Это означает, что даты ранее 1 января 1970 г. не будут работать в Windows, некоторых дистрибутивах Linux и нескольких других операционных системах.

В 64-битных версиях PHP корректный диапазон временных меток фактически бесконечен, так как 64 битов хватит для представления приблизительно 293 миллиарда лет в обоих направлениях.

Замечание:

Даты в формате m/d/y или d-m-y разрешают неоднозначность с помощью анализа разделителей их элементов: если разделителем является слеш (/), то дата интерпретируется в американском формате m/d/y, если же разделителем является дефис (-) или точка (.), то подразумевается использование европейского формата d-m-y. Однако, если, год указан в двухзначном формате, а разделителем является дефис (-), строка даты интерпретируется как y-m-d.

Чтобы избежать потенциальной неоднозначности, рекомендуется использовать даты в формате стандарта ISO 8601 (YYYY-MM-DD), либо пользоваться функцией DateTime::createFromFormat() там, где это возможно.

Замечание:

Не рекомендуется использовать эту функцию для математических операций.
Целесообразно использовать DateTime::add() и
DateTime::sub() начиная с PHP 5.3, или
DateTime::modify() в PHP 5.2.

Смотрите также

  • Форматы даты и времени
  • DateTime::createFromFormat() - Разбирает строку с датой согласно указанному формату
  • checkdate() - Проверяет корректность даты по григорианскому календарю
  • strptime() - Разбирает строку даты/времени, сгенерированную функцией strftime


Возвращает текущую метку системного времени Unix

  • « strtotime
  • timezone_abbreviations_list »
  • PHP Manual
  • Функции даты и времени
  • Возвращает текущую метку системного времени Unix

time

(PHP 4, PHP 5, PHP 7)

time — Возвращает текущую метку системного времени Unix

Описание

time ( void ) : int

Возвращает количество секунд, прошедших с начала эпохи Unix (1 января 1970 00:00:00 GMT) до текущего времени.

Примеры

Пример #1 Пример использования time()

<?php
$nextWeek = time() + (7 * 24 * 60 * 60);
                   // 7 дней; 24 часа; 60 минут; 60 секунд
echo 'Сейчас:           '. date('Y-m-d') ."\n";
echo 'Следующая неделя: '. date('Y-m-d', $nextWeek) ."\n";
// или с помощью strtotime():
echo 'Следующая неделя: '. date('Y-m-d', strtotime('+1 week')) ."\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Сейчас:           2005-03-30
Следующая неделя: 2005-04-06
Следующая неделя: 2005-04-06

Примечания

Подсказка

Начиная с версии PHP 5.1, время начала запроса доступно в глобальной переменной $_SERVER['REQUEST_TIME'].

Смотрите также

  • date() - Форматирует вывод системной даты/времени
  • microtime() - Возвращает текущую метку времени Unix с микросекундами


Псевдоним DateTimeZone::listAbbreviations

  • « time
  • timezone_identifiers_list »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeZone::listAbbreviations

timezone_abbreviations_list

(PHP 5 >= 5.2.0, PHP 7)

timezone_abbreviations_list — Псевдоним DateTimeZone::listAbbreviations()

Описание

Эта функция является псевдонимом: DateTimeZone::listAbbreviations()


Псевдоним DateTimeZone::listIdentifiers

  • « timezone_abbreviations_list
  • timezone_location_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeZone::listIdentifiers

timezone_identifiers_list

(PHP 5 >= 5.2.0, PHP 7)

timezone_identifiers_list — Псевдоним DateTimeZone::listIdentifiers()

Описание

Эта функция является псевдонимом: DateTimeZone::listIdentifiers()


Псевдоним DateTimeZone::getLocation

  • « timezone_identifiers_list
  • timezone_name_from_abbr »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeZone::getLocation

timezone_location_get

(PHP 5 >= 5.3.0, PHP 7)

timezone_location_get — Псевдоним DateTimeZone::getLocation()

Описание

Эта функция является псевдонимом: DateTimeZone::getLocation()


Возвращает временную зону в соответствии с аббревиатурой

  • « timezone_location_get
  • timezone_name_get »
  • PHP Manual
  • Функции даты и времени
  • Возвращает временную зону в соответствии с аббревиатурой

timezone_name_from_abbr

(PHP 5 >= 5.1.3, PHP 7)

timezone_name_from_abbr — Возвращает временную зону в соответствии с аббревиатурой

Описание

timezone_name_from_abbr ( string $abbr [, int $gmtOffset = -1 [, int $isdst = -1 ]] ) : string

Список параметров

abbr

Аббревиатура временной зоны.

gmtOffset

Смещение относительно GMT в секундах. По умолчанию -1, что означает возврат первой найденной временной зоны, отвечающей аббревиатуре abbr. В противном случае будет произведен поиск временной зоны с заданным смещением. Если поиск завершится неудачей, будет возвращена временная зона наиболее близкая к смещению.

isdst

Поправка на летнее время. По умолчанию -1, в этом случае поправка на летнее время не учитывается. Если передана 1, смещение gmtOffset учитывает действующее летнее время. Если задан 0, gmtOffset рассчитывается с учетом зимнего времени. Если abbr не существует, определение временной зоны опирается только на gmtOffset и isdst.

Возвращаемые значения

Возвращает имя временной зоны или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования timezone_name_from_abbr()

<?php
echo timezone_name_from_abbr("CET") . "\n";
echo timezone_name_from_abbr("", 3600, 0) . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Europe/Berlin
Europe/Paris

Смотрите также

  • timezone_abbreviations_list() - Псевдоним DateTimeZone::listAbbreviations


Псевдоним DateTimeZone::getName

  • « timezone_name_from_abbr
  • timezone_offset_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeZone::getName

timezone_name_get

(PHP 5 >= 5.2.0, PHP 7)

timezone_name_get — Псевдоним DateTimeZone::getName()

Описание

Эта функция является псевдонимом: DateTimeZone::getName()


Псевдоним DateTimeZone::getOffset

  • « timezone_name_get
  • timezone_open »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeZone::getOffset

timezone_offset_get

(PHP 5 >= 5.2.0, PHP 7)

timezone_offset_get — Псевдоним DateTimeZone::getOffset()

Описание

Эта функция является псевдонимом: DateTimeZone::getOffset()


Псевдоним DateTimeZone::__construct

  • « timezone_offset_get
  • timezone_transitions_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeZone::__construct

timezone_open

(PHP 5 >= 5.2.0, PHP 7)

timezone_open — Псевдоним DateTimeZone::__construct()

Описание

Эта функция является псевдонимом: DateTimeZone::__construct()


Псевдоним DateTimeZone::getTransitions

  • « timezone_open
  • timezone_version_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeZone::getTransitions

timezone_transitions_get

(PHP 5 >= 5.2.0, PHP 7)

timezone_transitions_get — Псевдоним DateTimeZone::getTransitions()

Описание

Эта функция является псевдонимом: DateTimeZone::getTransitions()


Получение номера версии базы данных временных зон

  • « timezone_transitions_get
  • Допустимые форматы даты/времени »
  • PHP Manual
  • Функции даты и времени
  • Получение номера версии базы данных временных зон

timezone_version_get

(PHP 5 >= 5.3.0, PHP 7)

timezone_version_get — Получение номера версии базы данных временных зон

Описание

timezone_version_get ( void ) : string

Возвращает номер версии базы данных временных зон.

Возвращаемые значения

Возвращает строку (string).

Примеры

Пример #1 Определение версии базы данных временных зон

<?php
echo timezone_version_get();
?>

Результатом выполнения данного примера будет что-то подобное:

2009.7

Смотрите также

  • Список поддерживаемых временных зон


Допустимые форматы даты/времени

Содержание

  • Форматы времени
  • Форматы даты
  • Составные форматов
  • Относительные форматы

В этом разделе описываются все форматы, которые принимает парсер strtotime(), DateTime и date_create(). Форматы сгруппированы по секциям. Большинство форматов, разделенных пробелом, запятой или точкой, допускается использовать в пределах одной и той же строки даты/времени. Для каждого формата предусмотрено описание и даны один или более пример. Символы в одинарных кавычках нечувствительны к регистру ('t' эквивалентно как t, так и T), символы в двойных кавычках чувствительны к регистру ("T" означает только T).


Форматы времени

На этой странице описаны форматы времени, которые понимает парсер функций strtotime(), DateTime и date_create().

Используемые символы
Описание | Формат | Примеры
frac (дробная часть) | . [0-9]+ | ".21342", ".85"
hh (часы в 12-часовом формате) | "0"?[1-9] | "1"[0-2] | "04", "7", "12"
HH (часы в 24-часовом формате) | [01][0-9] | "2"[0-4] | "04", "07", "19"
meridian (Ante meridiem или Post meridiem) | [AaPp] .? [Mm] .? [\0\t ] | "A.m.", "pM", "am."
MM (минуты) | [0-5][0-9] | "00", "12", "59"
II (секунды) | [0-5][0-9] | "00", "12", "59"
space (символ пробела или табуляции) | [ \t] |
tz (временная зона) | "("? [A-Za-z]{1,6} ")"? | [A-Z][a-z]+([_/][A-Z][a-z]+)+ | "CEST", "Europe/Amsterdam", "America/Indiana/Knox"
tzcorrection (числовое значение смещения временной зоны) | "GMT"? [+-] hh ":"? MM? | "+0400", "GMT-07:00", "-07:00"
12-часовой формат
Описание | Формат | Примеры
Только часы (с Ante meridiem или Post meridiem) | hh space? meridian | "4 am", "5PM"
Часы и минуты (с Ante meridiem или Post meridiem) | hh [.:] MM space? meridian | "4:08 am", "7:19P.M."
Часы, минуты и секунды (с Ante meridiem или Post meridiem) | hh [.:] MM [.:] II space? meridian | "4:08:37 am", "7:19:19P.M."
MS SQL (Часы, минуты, секунды и дробная часть с Ante meridiem или Post meridiem), в версии не ниже PHP 5.3 | hh ":" MM ":" II [.:] [0-9]+ meridian | "4:08:39:12313am"
24-часовой формат
Описание | Формат | Примеры
Часы и минуты | 't'? HH [.:] MM | "04:08", "19.19", "T23:43"
Часы и минуты (без двоеточия-разделителя) | 't'? HH MM | "0408", "t1919", "T2343"
Часы, минуты и секунды | 't'? HH [.:] MM [.:] II | "04.08.37", "t19:19:19"
Часы, минуты и секунды (без двоеточия-разделителя) | 't'? HH MM II | "040837", "T191919"
Часы, минуты, секунды и временная зона | 't'? HH [.:] MM [.:] II space? ( tzcorrection | tz ) | "040837CEST", "T191919-0700"
Часы, минуты, секунды и дробная часть | 't'? HH [.:] MM [.:] II frac | "04.08.37.81412", "19:19:19.532453"
Сведения о временной зоне | tz | tzcorrection | "CEST", "Europe/Amsterdam", "+0430", "GMT-06:00"


Форматы даты

На этой странице описаны форматы даты, которые понимает парсер функций strtotime(), DateTime и date_create().

Используемые символы
Описание | Формат | Примеры
daysuf (суффикс порядкового числительного дня месяца) | "st" | "nd" | "rd" | "th" |
dd (день месяца без ведущих нулей) | ([0-2]?[0-9] | "3"[01]) daysuf? | "7th", "22nd", "31"
DD (день месяца, 2 цифры с ведущим нулем) | "0" [0-9] | [1-2][0-9] | "3" [01] | "07", "31"
m (полное или сокращенное название месяца) | 'january' | 'february' | 'march' | 'april' | 'may' | 'june' | 'july' | 'august' | 'september' | 'october' | 'november' | 'december' | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' | "I" | "II" | "III" | "IV" | "V" | "VI" | "VII" | "VIII" | "IX" | "X" | "XI" | "XII" |
M (сокращенное название месяца) | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' |
mm (порядковый номер месяца) | "0"? [0-9] | "1"[0-2] | "0", "04", "7", "12"
MM (порядковый номер месяца, 2 цифры с ведущим нулем) | "0" [0-9] | "1"[0-2] | "00", "04", "07", "12"
y (порядковый номер года) | [0-9]{1,4} | "00", "78", "08", "8", "2008"
yy (порядковый номер года, 2 цифры) | [0-9]{2} | "00", "08", "78"
YY (порядковый номер года, 4 цифры) | [0-9]{4} | "2000", "2008", "1978"
Региональные нотации
Описание | Формат | Примеры
Месяц и день в американской нотации | mm "/" dd | "5/12", "10/27"
Месяц, день и год в американской нотации | mm "/" dd "/" y | "12/22/78", "1/17/2006", "1/17/6"
4 цифры года, месяц и день со слешем-разделителем | YY "/" mm "/" dd | "2008/6/30", "1978/12/22"
4 цифры года и месяц (GNU) | YY "-" mm | "2008-6", "2008-06", "1978-12"
Год, месяц и день с дефисом-разделителем | y "-" mm "-" dd | "2008-6-30", "78-12-22", "8-6-21"
День, месяц и 4 цифры года с разделителем в виде точки, символа табуляции или дефиса | dd [.\t-] mm [.-] YY | "30-6-2008", "22.12.1978"
День, месяц и 2 цифры года с разделителем в виде точки или символа табуляции | dd [.\t] mm "." yy | "30.6.08", "22.12.78"
День, название месяца и год | dd ([ \t.-])* m ([ \t.-])* y | "30-June 2008", "22DEC78", "14 III 1879"
Название месяца и 4 цифры года (день месяца сбрасывается на 1) | m ([ \t.-])* YY | "June 2008", "DEC1978", "March 1879"
4 цифры года и название месяца (день месяца сбрасывается на 1) | YY ([ \t.-])* m | "2008 June", "1978-XII", "1879.MArCH"
Название месяца, день и год | m ([ .\t-])* dd [,.stndrh\t ]+ y | "July 1st, 2008", "April 17, 1790", "May.9,78"
Название месяца и день | m ([ .\t-])* dd [,.stndrh\t ]* | "July 1st,", "Apr 17", "May.9"
День и название месяца | d ([ .\t-])* m | "1 July", "17 Apr", "9.May"
Сокращенное название месяца, день и год | M "-" DD "-" y | "May-09-78", "Apr-17-1790"
Год, сокращенное название месяца и день | y "-" M "-" DD | "78-Dec-22", "1814-MAY-17"
Только год | YY | "1978", "2008"
Только название месяца | m | "March", "jun", "DEC"
Нотации ISO8601
Описание | Формат | Примеры
8 цифр (год, месяц и день) | YY MM DD | "15810726", "19780417", "18140517"
8 цифр (год, месяц и день) со слешем-разделителем | YY "/" MM "/" DD | "2008/06/30", "1978/12/22"
2 цифры года, месяц и день с дефисом-разделителем | yy "-" MM "-" DD | "08-06-30", "78-12-22"
4 цифры года с необязательным знаком, месяц и день | [+-]? YY "-" MM "-" DD | "-0002-07-26", "+1978-04-17", "1814-05-17"

Замечание:

Форматы y и yy для годов меньше 100 обрабатываются в исключительных случаях при использовании символов y или yy. Если год попадает в диапазон 0-69 (включительно), то к нему добавляется 2000. Если же год принадлежит диапазону 70-99 (включительно), то к нему добавляется 1900. Это означает, что дата "00-01-01" интерпретируется как "2000-01-01".

Замечание:

Формат "День, месяц и 2 цифры года с разделителем в виде точки или символа табуляции" (dd [.\t] mm "." yy) работает только для годов из диапазона 61-99 (включительно). За пределами этого диапазона отдается предпочтение формату времени "HH [.:] MM [.:] SS".

Замечание:

Формат "Только год" задействуется только в случае, если строка времени была найдена. В противном случае отдается предпочтению формату HH MM.

Замечание:

Возможен выход за границы диапазона форматов dd и DD. День месяца с порядковым номером 0 подразумевает последний день предыдущего месяца в результате выхода за границы диапазона. Согласно написанному "2008-08-00" равносильно "2008-07-31", а "2008-06-31" соответствует "2008-07-01" (в июне всего 30 дней).

Обратите внимание, что с PHP 5.1.0 диапазон дней ограничен 0-31, как указано выше регулярным выражением. Так что, например, "2008-06-32" - некорректная дата.

Также допускается выход за границы диапазона для форматов mm и MM со значением 0. Значение месяца 0 соответствует декабрю предыдущего года. Например дата "2008-00-22" равносильна "2007-12-22".

Если учесть два предыдущих замечания и выход за границы диапазона дней и месяцев, получим следующее: дата "2008-00-00" в первую очередь преобразуется в "2007-12-00", которая будет преобразована в "2007-11-30". То же случится с датой "0000-00-00", которая будет преобразована к "-0001-11-30" (-1-й год в календаре ISO 8601 и 2 год до н.э. по григорианскому календарю).


Составные форматов

На этой странице описаны различные составные форматы даты/времени, которые понимает парсер функций strtotime(), DateTime и date_create().

Используемые символы
Описание | Форматы | Примеры
DD (день месяца с ведущим нулем) | "0" [0-9] | [1-2][0-9] | "3" [01] | "02", "12", "31"
doy (день в году) | "00"[1-9] | "0"[1-9][0-9] | [1-2][0-9][0-9] | "3"[0-5][0-9] | "36"[0-6] | "001", "012", "180", "350", "366"
frac (дробная часть) | . [0-9]+ | ".21342", ".85"
hh (часы) | "0"?[1-9] | "1"[0-2] | "04", "7", "12"
HH (часы с ведущим нулем) | [01][0-9] | "2"[0-4] | "04", "07", "19"
meridian (Ante meridiem или Post meridiem) | [AaPp] .? [Mm] .? [\0\t ] | "A.m.", "pM", "am."
ii (минуты) | [0-5][0-9] | "04", "8", "59"
II (минуты с ведущим нулем) | [0-5][0-9] | "04", "08", "59"
M (сокращенное наименование месяца) | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' |
MM (месяц с ведущим нулем) | [0-1][0-9] | "00", "12"
space (символ пробела или табуляции) | [ \t] |
ss (секунды) | [0-5][0-9] | "04", "8", "59"
SS (секунды с ведущим нулем) | [0-5][0-9] | "04", "08", "59"
W (неделя в году) | "0"[1-9] | [1-4][0-9] | "5"[0-3] | "05", "17", "53"
tzcorrection (смещение временной зоны) | "GMT"? [+-] hh ":"? II? | "+0400", "GMT-07:00", "-07:00"
YY (4 цифры года) | [0-9]{4} | "2000", "2008", "1978"
Региональные нотации
Описание | Формат | Примеры
Общий формат log-записей | dd "/" M "/" YY : HH ":" II ":" SS space tzcorrection | "10/Oct/2000:13:55:36 -0700"
EXIF | YY ":" MM ":" DD " " HH ":" II ":" SS | "2008:08:07 18:11:31"
Год и неделя в формате ISO | YY "-"? "W" W | "2008W27", "2008-W28"
Год, неделя в формате ISO и день недели | YY "-"? "W" W "-"? [0-7] | "2008W273", "2008-W28-3"
MySQL | YY "-" MM "-" DD " " HH ":" II ":" SS | "2008-08-07 18:11:31"
PostgreSQL: год и день в году | YY "."? doy | "2008.197", "2008197"
SOAP | YY "-" MM "-" DD "T" HH ":" II ":" SS frac tzcorrection? | "2008-07-01T22:35:17.02", "2008-07-01T22:35:17.03+08:00"
Unix Timestamp | "@" "-"? [0-9]+ | "@1215282385"
XMLRPC | YY MM DD "T" hh ":" II ":" SS | "20080701T22:38:07", "20080701T9:38:07"
XMLRPC (Compact) | YY MM DD 't' hh II SS | "20080701t223807", "20080701T093807"
WDDX | YY "-" mm "-" dd "T" hh ":" ii ":" ss | "2008-7-1T9:3:37"

Замечание:

Символ "W" в форматах "Год и неделя в формате ISO" и "Год, неделя в формате ISO и день недели" чувствителен к регистру, допускается использование символа "W" только в верхнем регистре.

Символ "T" в форматах SOAP, XMRPC и WDDX также чувствителен к регистру, допускается использование символа "T" только в верхнем регистре.

Формат "Unix Timestamp" устанавливает временную зону в UTC.


Относительные форматы

На этой странице описаны относительные форматы даты/времени, которые понимает парсер функций strtotime(), DateTime и date_create().

Используемые символы
Описание | Формат
dayname (наименование дня недели) | 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat'
daytext (интервалы в неделях) | 'weekday' | 'weekdays'
number | [+-]?[0-9]+
ordinal (порядковые числительные и указатели) | 'first' | 'second' | 'third' | 'fourth' | 'fifth' | 'sixth' | 'seventh' | 'eighth' | 'ninth' | 'tenth' | 'eleventh' | 'twelfth' | 'next' | 'last' | 'previous' | 'this'
reltext (указатели) | 'next' | 'last' | 'previous' | 'this'
space (символы пробела и табуляции) | [ \t]+
unit (интервалы) | (('sec' | 'second' | 'min' | 'minute' | 'hour' | 'day' | 'fortnight' | 'forthnight' | 'month' | 'year') 's'?) | 'weeks' | daytext
Нотации, основанные на днях
Формат | Описание | Примеры
'yesterday' | Полночь вчера | "yesterday 14:00"
'midnight' | Время устанавливается в 00:00:00 |
'today' | Время устанавливается в 00:00:00 |
'now' | Текущее время |
'noon' | Время устанавливается в 12:00:00 | "yesterday noon"
'tomorrow' | Полночь завтра |
'back of' hour | Без 15 минут заданный час | "back of 7pm", "back of 15"
'front of' hour | 15 минут заданного часа | "front of 5am", "front of 23"
'first day' ' of'? | Устанавливает первый день текущего месяца. При использовании с указанием на месяц - устанавливает первый день заданного месяца. | "first day of January 2008"
'last day' ' of'? | Устанавливает последний день текущего месяца. При использовании с указанием на месяц - устанавливает последний день заданного месяца. | "last day of next month"
ordinal space dayname space 'of' | Вычисляет x-й день недели текущего или заданного месяца. | "first sat of July 2008"
'last' space dayname space 'of' | Вычисляет последний день недели текущего или заданного месяца. | "last sat of July 2008"
number space? (unit | 'week') | Вычисляет относительное время при использовании числовых значений периода. | "+5 weeks", "12 day", "-7 weekdays"
ordinal space unit | Вычисляет относительное время при использовании строковых значений периода. | "fifth day", "second month"
'ago' | Вычитает все значения из последнего полученного момента времени. | "2 days ago", "8 days ago 14:00", "2 months 5 days ago", "2 months ago 5 days", "2 days ago ago"
dayname | Перемещается на следующий день указанного дня недели. | "Monday"
reltext space 'week' | Разбирает специфичный формат "weekday + last/this/next week". | "Monday next week"

Замечание:

Относительные выражения всегда обрабатываются после не являющихся относительными. Например, "+1 week july 2008" эквивалентно "july 2008 +1 week".

Исключением этого правила являются: "yesterday", "midnight", "today", "noon" и "tomorrow". Записи "tomorrow 11:00" и "11:00 tomorrow" отличаются. Если принять сегодняшнюю дату за "July 23rd, 2008", то первая запись возвращает "2008-07-24 11:00", а вторая "2008-07-24 00:00". Причина такого поведения в том, что эти пять выражений влияют непосредственно на время.

Замечание:

Следует обратить внимание на приведенные ниже замечания относительно текущего дня недели и дня недели, указанного в строке даты/времени. Текущий день недели может быть вычислен из независимой части строки даты/времени.

  1. "dayname" не сдвигает дату на другой день. (Например: "Wed July 23rd, 2008" означает "2008-07-23").
  2. "number dayname" не сдвигает дату на другой день. (Например: "1 wednesday july 23rd, 2008" означает "2008-07-23").
  3. "number week dayname" добавляет соответствующее число недель, но не сдвигает дату на другой день. В этом случае имеют место два различных блока "number week" и "dayname". (Например: "+1 week wednesday july 23rd, 2008" означает "2008-07-30").
  4. "ordinal dayname" сдвигает дату на другой день. (Например: "last wednesday july 23rd, 2008" означает "2008-07-30").
  5. "number week ordinal dayname" добавляет соответствующее число недель, а после сдвигает дату на другой день. В этом случае имеют место два различных блока "number week" и "ordinal dayname". (Например: "+1 week first wednesday july 23rd, 2008" означает "2008-08-06").
  6. "ordinal dayname 'of' " не сдвигает дату на другой день. (Например: "first wednesday of july 23rd, 2008" означает "2008-07-02", потому как определенные фразы с 'of' сбрасывают день месяца на '1' и в этом случае игнорируется '23rd').

Также следует обратить внимание, что "of" в "ordinal space dayname space 'of' " и "'last' space dayname space 'of' " имеет особый смысл.

  1. Устанавливает день месяца в 1.
  2. "ordinal dayname 'of' "не сдвигает дату на другой день. (Например: "first tuesday of july 2008" означает "2008-07-01").
  3. "ordinal dayname" сдвигает дату на другой день. (Например: "first tuesday july 2008" означает "2008-07-08", см. также 4-й пункт предыдущего замечания).
  4. "'last' dayname 'of' " получает последний в месяце dayname. (Например: "last wed of july 2008" означает "2008-07-30")
  5. "'last' dayname" получает последний dayname перед текущим днем. (Например: "last wed july 2008" означает "2008-06-25"; "july 2008" устанавливает дату в "2008-07-01", а после "last wed" смещает дату к предыдущей среде, а именно к "2008-06-25").

Замечание:

Относительные значения в месяцах рассчитываются исходя из их продолжительности. Например, из "+2 month 2011-11-30" получится "2012-01-30". Это связано с тем, что ноябрь состоит из 30 дней, а декабрь из 31 дня, что составляет 61 дней.

Замечание:

Под числом (number) подразумевается целое число (integer); Если будет указано десятичное число, то десятичная точка (или запятая) будет рассматриваться как разделитель. К примеру, '+1.5 hours' будет считаться как '+1 5 hours', а не '+1 hour +30 minutes'.

Список изменений

Версия | Описание
5.6.23, 7.0.8 | Недели всегда начинаются с понедельника. Ранее можно было определять начало недели с воскресенья.
5.3.3 | Поведение "first day" и "last day" изменено на "+1 day" and "-1 day", соответственно. Ранее поведение было равносильно "first day of" и "last day of".


Список поддерживаемых временных зон

Содержание

  • Африка
  • Америка
  • Антарктика
  • Арктика
  • Азия
  • Атлантика
  • Австралия
  • Европа
  • Индийский
  • Тихоокеанский
  • Другие

Здесь вы найдете полный список временных зон, поддерживаемых PHP, которые могут быть использованы, например, в date_default_timezone_set().

Предостережение

Поведение временных зон, отсутствующих в списке, не определено.

Замечание: Последняя версия базы данных временных зон может быть установлена с помощью PECL-пакета » timezonedb.

Замечание: Этот список основан на версии базы данных временных зон 2019.3.


Африка

Африка
Africa/Abidjan | Africa/Accra | Africa/Addis_Ababa | Africa/Algiers
Africa/Asmara | 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/Juba | 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/Tripoli | Africa/Tunis | Africa/Windhoek


Америка

Америка
America/Adak | America/Anchorage | America/Anguilla | America/Antigua
America/Araguaina | America/Argentina/Buenos_Aires | America/Argentina/Catamarca | America/Argentina/Cordoba
America/Argentina/Jujuy | America/Argentina/La_Rioja | America/Argentina/Mendoza | America/Argentina/Rio_Gallegos
America/Argentina/Salta | America/Argentina/San_Juan | America/Argentina/San_Luis | America/Argentina/Tucuman
America/Argentina/Ushuaia | America/Aruba | America/Asuncion | America/Atikokan
America/Bahia | America/Bahia_Banderas | America/Barbados | America/Belem
America/Belize | America/Blanc-Sablon | America/Boa_Vista | America/Bogota
America/Boise | America/Cambridge_Bay | America/Campo_Grande | America/Cancun
America/Caracas | America/Cayenne | America/Cayman | America/Chicago
America/Chihuahua | America/Costa_Rica | America/Creston | 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/Fort_Nelson | 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/Petersburg
America/Indiana/Tell_City | America/Indiana/Vevay | America/Indiana/Vincennes | America/Indiana/Winamac
America/Inuvik | America/Iqaluit | America/Jamaica | America/Juneau
America/Kentucky/Louisville | America/Kentucky/Monticello | America/Kralendijk | America/La_Paz
America/Lima | America/Los_Angeles | America/Lower_Princes | America/Maceio
America/Managua | America/Manaus | America/Marigot | America/Martinique
America/Matamoros | America/Mazatlan | America/Menominee | America/Merida
America/Metlakatla | America/Mexico_City | America/Miquelon | America/Moncton
America/Monterrey | America/Montevideo | America/Montserrat | America/Nassau
America/New_York | America/Nipigon | America/Nome | America/Noronha
America/North_Dakota/Beulah | America/North_Dakota/Center | America/North_Dakota/New_Salem | America/Ojinaga
America/Panama | America/Pangnirtung | America/Paramaribo | America/Phoenix
America/Port-au-Prince | America/Port_of_Spain | America/Porto_Velho | America/Puerto_Rico
America/Punta_Arenas | America/Rainy_River | America/Rankin_Inlet | America/Recife
America/Regina | America/Resolute | America/Rio_Branco | America/Santarem
America/Santiago | America/Santo_Domingo | America/Sao_Paulo | America/Scoresbysund
America/Sitka | America/St_Barthelemy | 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/Whitehorse
America/Winnipeg | America/Yakutat | America/Yellowknife |


Антарктика

Антарктика
Antarctica/Casey | Antarctica/Davis | Antarctica/DumontDUrville | Antarctica/Macquarie
Antarctica/Mawson | Antarctica/McMurdo | Antarctica/Palmer | Antarctica/Rothera
Antarctica/Syowa | Antarctica/Troll | Antarctica/Vostok |


  • « Антарктика
  • Азия »
  • PHP Manual
  • Список поддерживаемых временных зон
  • Арктика

Арктика

Арктика
Arctic/Longyearbyen


Азия

Азия
Asia/Aden | Asia/Almaty | Asia/Amman | Asia/Anadyr
Asia/Aqtau | Asia/Aqtobe | Asia/Ashgabat | Asia/Atyrau
Asia/Baghdad | Asia/Bahrain | Asia/Baku | Asia/Bangkok
Asia/Barnaul | Asia/Beirut | Asia/Bishkek | Asia/Brunei
Asia/Chita | Asia/Choibalsan | Asia/Colombo | Asia/Damascus
Asia/Dhaka | Asia/Dili | Asia/Dubai | Asia/Dushanbe
Asia/Famagusta | Asia/Gaza | Asia/Hebron | Asia/Ho_Chi_Minh
Asia/Hong_Kong | Asia/Hovd | Asia/Irkutsk | Asia/Jakarta
Asia/Jayapura | Asia/Jerusalem | Asia/Kabul | Asia/Kamchatka
Asia/Karachi | Asia/Kathmandu | Asia/Khandyga | Asia/Kolkata
Asia/Krasnoyarsk | Asia/Kuala_Lumpur | Asia/Kuching | Asia/Kuwait
Asia/Macau | Asia/Magadan | Asia/Makassar | Asia/Manila
Asia/Muscat | Asia/Nicosia | Asia/Novokuznetsk | Asia/Novosibirsk
Asia/Omsk | Asia/Oral | Asia/Phnom_Penh | Asia/Pontianak
Asia/Pyongyang | Asia/Qatar | Asia/Qostanay | Asia/Qyzylorda
Asia/Riyadh | Asia/Sakhalin | Asia/Samarkand | Asia/Seoul
Asia/Shanghai | Asia/Singapore | Asia/Srednekolymsk | Asia/Taipei
Asia/Tashkent | Asia/Tbilisi | Asia/Tehran | Asia/Thimphu
Asia/Tokyo | Asia/Tomsk | Asia/Ulaanbaatar | Asia/Urumqi
Asia/Ust-Nera | Asia/Vientiane | Asia/Vladivostok | Asia/Yakutsk
Asia/Yangon | Asia/Yekaterinburg | Asia/Yerevan |


Атлантика

Атлантика
Atlantic/Azores | Atlantic/Bermuda | Atlantic/Canary | Atlantic/Cape_Verde
Atlantic/Faroe | Atlantic/Madeira | Atlantic/Reykjavik | Atlantic/South_Georgia
Atlantic/St_Helena | Atlantic/Stanley |  |


Австралия

Австралия
Australia/Adelaide | Australia/Brisbane | Australia/Broken_Hill | Australia/Currie
Australia/Darwin | Australia/Eucla | Australia/Hobart | Australia/Lindeman
Australia/Lord_Howe | Australia/Melbourne | Australia/Perth | Australia/Sydney


Европа

Европа
Europe/Amsterdam | Europe/Andorra | Europe/Astrakhan | Europe/Athens
Europe/Belgrade | Europe/Berlin | Europe/Bratislava | Europe/Brussels
Europe/Bucharest | Europe/Budapest | Europe/Busingen | Europe/Chisinau
Europe/Copenhagen | Europe/Dublin | Europe/Gibraltar | Europe/Guernsey
Europe/Helsinki | Europe/Isle_of_Man | Europe/Istanbul | Europe/Jersey
Europe/Kaliningrad | Europe/Kiev | Europe/Kirov | Europe/Lisbon
Europe/Ljubljana | Europe/London | Europe/Luxembourg | Europe/Madrid
Europe/Malta | Europe/Mariehamn | Europe/Minsk | Europe/Monaco
Europe/Moscow | Europe/Oslo | Europe/Paris | Europe/Podgorica
Europe/Prague | Europe/Riga | Europe/Rome | Europe/Samara
Europe/San_Marino | Europe/Sarajevo | Europe/Saratov | Europe/Simferopol
Europe/Skopje | Europe/Sofia | Europe/Stockholm | Europe/Tallinn
Europe/Tirane | Europe/Ulyanovsk | Europe/Uzhgorod | Europe/Vaduz
Europe/Vatican | Europe/Vienna | Europe/Vilnius | Europe/Volgograd
Europe/Warsaw | Europe/Zagreb | Europe/Zaporozhye | Europe/Zurich


Индийский

Индийский
Indian/Antananarivo | Indian/Chagos | Indian/Christmas | Indian/Cocos
Indian/Comoro | Indian/Kerguelen | Indian/Mahe | Indian/Maldives
Indian/Mauritius | Indian/Mayotte | Indian/Reunion |


Тихоокеанский

Тихоокеанский
Pacific/Apia | Pacific/Auckland | Pacific/Bougainville | Pacific/Chatham
Pacific/Chuuk | Pacific/Easter | Pacific/Efate | Pacific/Enderbury
Pacific/Fakaofo | Pacific/Fiji | Pacific/Funafuti | Pacific/Galapagos
Pacific/Gambier | Pacific/Guadalcanal | Pacific/Guam | Pacific/Honolulu
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/Pohnpei | Pacific/Port_Moresby | Pacific/Rarotonga
Pacific/Saipan | Pacific/Tahiti | Pacific/Tarawa | Pacific/Tongatapu
Pacific/Wake | Pacific/Wallis |  |


Другие

Внимание

Пожалуйста, не используйте описанные здесь временные зоны (кроме UTC), они существуют только по причинам обратной совместимости и могут привести к неправильной работе.

Внимание

Если вы игнорируете вышестоящее предупреждение, то учтите, что база данных временных зон IANA, которая используется для временных зон PHP, поддерживает использование POSIX-стиля знаков, поэтому обозначения временных зон Etc/GMT+n и Etc/GMT-n обратны общепринятым.

Например, временная зона на 8 часов вперед от GMT, используемая в Китае, Западной Австралии и других местах, в действительности записана в базе данных как Etc/GMT-8, а не как Etc/GMT+8, который вы могли ожидать.

Настоятельно рекомендуется использовать правильные временные зоны, такие как Asia/Shanghai или Australia/Perth для вышеприведенного примера.

Другие
Africa/Asmera | Africa/Timbuktu | America/Argentina/ComodRivadavia | America/Atka
America/Buenos_Aires | America/Catamarca | America/Coral_Harbour | America/Cordoba
America/Ensenada | America/Fort_Wayne | America/Indianapolis | America/Jujuy
America/Knox_IN | America/Louisville | America/Mendoza | America/Montreal
America/Porto_Acre | America/Rosario | America/Santa_Isabel | America/Shiprock
America/Virgin | Antarctica/South_Pole | Asia/Ashkhabad | Asia/Calcutta
Asia/Chongqing | Asia/Chungking | Asia/Dacca | Asia/Harbin
Asia/Istanbul | Asia/Kashgar | Asia/Katmandu | Asia/Macao
Asia/Rangoon | Asia/Saigon | Asia/Tel_Aviv | Asia/Thimbu
Asia/Ujung_Pandang | Asia/Ulan_Bator | Atlantic/Faeroe | Atlantic/Jan_Mayen
Australia/ACT | Australia/Canberra | Australia/LHI | Australia/North
Australia/NSW | Australia/Queensland | Australia/South | Australia/Tasmania
Australia/Victoria | Australia/West | Australia/Yancowinna | Brazil/Acre
Brazil/DeNoronha | Brazil/East | Brazil/West | Canada/Atlantic
Canada/Central | Canada/Eastern | Canada/Mountain | Canada/Newfoundland
Canada/Pacific | Canada/Saskatchewan | Canada/Yukon | CET
Chile/Continental | Chile/EasterIsland | 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
Europe/Belfast | Europe/Nicosia | Europe/Tiraspol | Factory
GB | GB-Eire | GMT | GMT+0
GMT-0 | GMT0 | Greenwich | Hongkong
HST | Iceland | Iran | Israel
Jamaica | Japan | Kwajalein | Libya
MET | Mexico/BajaNorte | Mexico/BajaSur | Mexico/General
MST | MST7MDT | Navajo | NZ
NZ-CHAT | Pacific/Johnston | Pacific/Ponape | Pacific/Samoa
Pacific/Truk | Pacific/Yap | Poland | Portugal
PRC | PST8PDT | ROC | ROK
Singapore | Turkey | UCT | Universal
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 | UTC | W-SU | WET
Zulu |  |  |


Время высокого разрешения

  • Введение
  • Установка и настройка
    • Установка
  • Примеры
    • Основы использования
  • HRTime\PerformanceCounter — Класс HRTime\PerformanceCounter
    • HRTime\PerformanceCounter::getFrequency — Частота таймера в тиках в секунду
    • HRTime\PerformanceCounter::getTicks — Текущее значение тиков системы
    • HRTime\PerformanceCounter::getTicksSince — Количество тиков, прошедших с заданного значения
  • HRTime\StopWatch — Класс HRTime\StopWatch
    • HRTime\StopWatch::getElapsedTicks — Получить количество прошедших тиков для всех интервалов
    • HRTime\StopWatch::getElapsedTime — Получить суммарное прошедшее время всех интервалов
    • HRTime\StopWatch::getLastElapsedTicks — Получить количество прошедших тиков за последний интервал
    • HRTime\StopWatch::getLastElapsedTime — Получить прошедшее время для последнего интервала
    • HRTime\StopWatch::isRunning — Проверить, выполняется ли измерение
    • HRTime\StopWatch::start — Запустить измерение времени
    • HRTime\StopWatch::stop — Остановить измерение
  • HRTime\Unit — Класс HRTime\Unit


Введение

Расширение HRTime реализует класс высокого разрешения StopWatch. Оно использует наилучшее доступное API на различных платформах, позволяющее оперировать временем с точностью до наносекунд. Оно также позволяет реализовывать пользовательские секундомер, используя низкоуровневые тики, предоставляемые нижележащим API.

Замечание: Начиная с PHP 7.3.0, связанная функция hrtime() является частью ядра.


  • « Введение
  • Установка »
  • PHP Manual
  • HRTime
  • Установка и настройка

Установка и настройка

Содержание

  • Установка


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/hrtime.

DLL для этого расширения PECL доступно по ссылке » http://windows.php.net/downloads/pecl/releases/hrtime/.


  • « Установка
  • Основы использования »
  • PHP Manual
  • HRTime
  • Примеры

Примеры

Содержание

  • Основы использования


Основы использования

Этот пример демонстрирует базовое использование класса StopWatch

Пример #1 Замеряем время исполнения нескольких блоков кода

<?php

$c = new HRTime\StopWatch;

$c->start();
/* Замеряем время выполнения этого блока кода */
for ($i = 0; $i < 1024*1024; $i++);
$c->stop();
$elapsed0 = $c->getLastElapsedTime(HRTime\Unit::NANOSECOND);

/* Тут не замеряем*/
for ($i = 0; $i < 1024*1024; $i++);

$c->start();
/* А тут снова замеряем время выполнения этого блока кода */
for ($i = 0; $i < 1024*1024; $i++);
$c->stop();
$elapsed1 = $c->getLastElapsedTime(HRTime\Unit::NANOSECOND);

$elapsed_total = $c->getElapsedTime(HRTime\Unit::NANOSECOND);

?>


Класс HRTime\PerformanceCounter

(PECL hrtime >= 0.4.3)

Введение

Обзор классов

HRTime\PerformanceCounter {
/* Методы */
public static getFrequency ( void ) : int
public static getTicks ( void ) : int
public static getTicksSince ( int $start ) : int
}

Содержание

  • HRTime\PerformanceCounter::getFrequency — Частота таймера в тиках в секунду
  • HRTime\PerformanceCounter::getTicks — Текущее значение тиков системы
  • HRTime\PerformanceCounter::getTicksSince — Количество тиков, прошедших с заданного значения


Частота таймера в тиках в секунду

  • « HRTime\PerformanceCounter
  • HRTime\PerformanceCounter::getTicks »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Частота таймера в тиках в секунду

HRTime\PerformanceCounter::getFrequency

(PECL hrtime >= 0.4.3)

HRTime\PerformanceCounter::getFrequency — Частота таймера в тиках в секунду

Описание

public static HRTime\PerformanceCounter::getFrequency ( void ) : int

Возвращает частоту таймера в тиках в секунду. Это будет постоянным значением после старта системы для большинства операционных систем.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число (integer), равное частоте таймера.


Текущее значение тиков системы

  • « HRTime\PerformanceCounter::getFrequency
  • HRTime\PerformanceCounter::getTicksSince »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Текущее значение тиков системы

HRTime\PerformanceCounter::getTicks

(PECL hrtime >= 0.6.0)

HRTime\PerformanceCounter::getTicks — Текущее значение тиков системы

Описание

public static HRTime\PerformanceCounter::getTicks ( void ) : int

Возвращает количество тиков.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число (integer), равное количеству тиков.


Количество тиков, прошедших с заданного значения

  • « HRTime\PerformanceCounter::getTicks
  • HRTime\StopWatch »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Количество тиков, прошедших с заданного значения

HRTime\PerformanceCounter::getTicksSince

(PECL hrtime >= 0.6.0)

HRTime\PerformanceCounter::getTicksSince — Количество тиков, прошедших с заданного значения

Описание

public static HRTime\PerformanceCounter::getTicksSince ( int $start ) : int

Возвращает тиков, прошедших с заданного начального значения.

Список параметров

start

Начальное значение.

Возвращаемые значения

Возвращает целое число (integer), равное количеству тиков.


Класс HRTime\StopWatch

(PECL hrtime >= 0.4.3)

Введение

Обзор классов

HRTime\StopWatch extends HRTime\PerformanceCounter {
/* Методы */
public getElapsedTicks ( void ) : int
public getElapsedTime ([ int $unit ] ) : float
public getLastElapsedTicks ( void ) : int
public getLastElapsedTime ([ int $unit ] ) : float
public isRunning ( void ) : bool
public start ( void ) : void
public stop ( void ) : void
/* Наследуемые методы */
public static HRTime\PerformanceCounter::getFrequency ( void ) : int
public static HRTime\PerformanceCounter::getTicks ( void ) : int
public static HRTime\PerformanceCounter::getTicksSince ( int $start ) : int
}

Содержание

  • HRTime\StopWatch::getElapsedTicks — Получить количество прошедших тиков для всех интервалов
  • HRTime\StopWatch::getElapsedTime — Получить суммарное прошедшее время всех интервалов
  • HRTime\StopWatch::getLastElapsedTicks — Получить количество прошедших тиков за последний интервал
  • HRTime\StopWatch::getLastElapsedTime — Получить прошедшее время для последнего интервала
  • HRTime\StopWatch::isRunning — Проверить, выполняется ли измерение
  • HRTime\StopWatch::start — Запустить измерение времени
  • HRTime\StopWatch::stop — Остановить измерение


Получить количество прошедших тиков для всех интервалов

  • « HRTime\StopWatch
  • HRTime\StopWatch::getElapsedTime »
  • PHP Manual
  • HRTime\StopWatch
  • Получить количество прошедших тиков для всех интервалов

HRTime\StopWatch::getElapsedTicks

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getElapsedTicks — Получить количество прошедших тиков для всех интервалов

Описание

public HRTime\StopWatch::getElapsedTicks ( void ) : int

Возвращает количество прошедших тиков всех ранее закрытых интервалов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число (integer), указывающее прошедшие тики.


Получить суммарное прошедшее время всех интервалов

  • « HRTime\StopWatch::getElapsedTicks
  • HRTime\StopWatch::getLastElapsedTicks »
  • PHP Manual
  • HRTime\StopWatch
  • Получить суммарное прошедшее время всех интервалов

HRTime\StopWatch::getElapsedTime

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getElapsedTime — Получить суммарное прошедшее время всех интервалов

Описание

public HRTime\StopWatch::getElapsedTime ([ int $unit ] ) : float

Возвращает суммарное прошедшее время всех интервалов.

Список параметров

unit

Единица времени, заданная одной из констант HRTime\Unit. По умолчанию HRTime\Unit::SECOND.

Возвращаемые значения

Возвращает значение типа float, равное прошедшему времени.


Получить количество прошедших тиков за последний интервал

  • « HRTime\StopWatch::getElapsedTime
  • HRTime\StopWatch::getLastElapsedTime »
  • PHP Manual
  • HRTime\StopWatch
  • Получить количество прошедших тиков за последний интервал

HRTime\StopWatch::getLastElapsedTicks

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getLastElapsedTicks — Получить количество прошедших тиков за последний интервал

Описание

public HRTime\StopWatch::getLastElapsedTicks ( void ) : int

Возвращает количество прошедших тиков за последний закрытый интервал.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число, указывающее прошедшие тики.


Получить прошедшее время для последнего интервала

  • « HRTime\StopWatch::getLastElapsedTicks
  • HRTime\StopWatch::isRunning »
  • PHP Manual
  • HRTime\StopWatch
  • Получить прошедшее время для последнего интервала

HRTime\StopWatch::getLastElapsedTime

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getLastElapsedTime — Получить прошедшее время для последнего интервала

Описание

public HRTime\StopWatch::getLastElapsedTime ([ int $unit ] ) : float

Возвращает прошедшее время для ранее закрытого интервала.

Список параметров

unit

Единица времени, заданная одной из констант HRTime\Unit. По умолчанию HRTime\Unit::SECOND.

Возвращаемые значения

Возвращает значение типа float, равное прошедшему времени.


Проверить, выполняется ли измерение

  • « HRTime\StopWatch::getLastElapsedTime
  • HRTime\StopWatch::start »
  • PHP Manual
  • HRTime\StopWatch
  • Проверить, выполняется ли измерение

HRTime\StopWatch::isRunning

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::isRunning — Проверить, выполняется ли измерение

Описание

public HRTime\StopWatch::isRunning ( void ) : bool

Проверяет, было ли начато измерение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE или FALSE, в зависимости от того, запущено ли измерение в текущий момент.


Запустить измерение времени

  • « HRTime\StopWatch::isRunning
  • HRTime\StopWatch::stop »
  • PHP Manual
  • HRTime\StopWatch
  • Запустить измерение времени

HRTime\StopWatch::start

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::start — Запустить измерение времени

Описание

public HRTime\StopWatch::start ( void ) : void

Запускает измерение времени. Если оно уже было запущено ранее, то ничего не произойдет. Измерение будет продолжено, если оно ранее было остановлено.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ничего не возвращает.


Остановить измерение

  • « HRTime\StopWatch::start
  • HRTime\Unit »
  • PHP Manual
  • HRTime\StopWatch
  • Остановить измерение

HRTime\StopWatch::stop

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::stop — Остановить измерение

Описание

public HRTime\StopWatch::stop ( void ) : void

Останавливает измерение для ранее запущенного интервала.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ничего не возвращает.


Класс HRTime\Unit

(PECL hrtime >= 0.4.3)

Введение

Обзор классов

HRTime\Unit {
/* Константы */
const integer SECOND = 0 ;
const integer MILLISECOND = 1 ;
const integer MICROSECOND = 2 ;
const integer NANOSECOND = 3 ;
/* Методы */
}

Предопределенные константы

HRTime\Unit::SECOND

HRTime\Unit::MILLISECOND

HRTime\Unit::MICROSECOND

HRTime\Unit::NANOSECOND


Расширения для работы с файловой системой

  • Прямой ввод/вывод (Direct IO)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции прямого ввода/вывода
  • Каталоги
    • Установка и настройка
    • Предопределенные константы
    • Directory — Класс Directory
    • Функции для работы с каталогами
  • FileInfo — Информация о файле
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции расширения Fileinfo
    • finfo — Класс finfo
  • Файловая система
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции файловой системы
  • Inotify
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Inotify
  • Mimetype
    • Введение
    • Установка и настройка
    • Предопределенные константы
  • Phdfs
    • Установка и настройка
    • Предопределенные константы
    • phdfs — Класс phdfs
  • Proctitle
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Proctitle
  • xattr
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • xattr Функции
  • xdiff
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции xdiff


Прямой ввод/вывод (Direct IO)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции прямого ввода/вывода
    • dio_close — Закрыть файловый дескриптор
    • dio_fcntl — Вызывает функцию библиотеки C fcntl для файлового дескриптора
    • dio_open — Открывает файл (по необходимости создает) на более низком уровне нежели потоковые функции ввода/вывода языка C
    • dio_read — Прочитай байты из файлового дескриптора
    • dio_seek — Переместить указатель в файловом дескрипторе
    • dio_stat — Получить информацию о файловом дескрипторе
    • dio_tcsetattr — Устанавливает атрибуты терминала и скорость передачи данных для последовательного порта
    • dio_truncate — Обрезает файл до заданного количества байт
    • dio_write — Записывает байты в файл, опционально обрезая до указанной длины


Введение

PHP поддерживает функции прямого ввода/вывода, как описано в стандарте Posix (секция 6), для вызова функций ввода/вывода на более низком уровне нежели потоковые функции языка C (fopen(), fread(),..). Эти функции могут быть задействованы только если необходим прямой контроль устройств. Во всех остальных случаях более адекватно будет использовать стандартные функции файловой системы.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/dio.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Для данного модуля зарегистрирован один тип ресурса: дескриптор файла, возвращенный dio_open().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

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)


Функции прямого ввода/вывода

Содержание

  • dio_close — Закрыть файловый дескриптор
  • dio_fcntl — Вызывает функцию библиотеки C fcntl для файлового дескриптора
  • dio_open — Открывает файл (по необходимости создает) на более низком уровне нежели потоковые функции ввода/вывода языка C
  • dio_read — Прочитай байты из файлового дескриптора
  • dio_seek — Переместить указатель в файловом дескрипторе
  • dio_stat — Получить информацию о файловом дескрипторе
  • dio_tcsetattr — Устанавливает атрибуты терминала и скорость передачи данных для последовательного порта
  • dio_truncate — Обрезает файл до заданного количества байт
  • dio_write — Записывает байты в файл, опционально обрезая до указанной длины


Закрыть файловый дескриптор

  • « Функции прямого ввода/вывода
  • dio_fcntl »
  • PHP Manual
  • Функции прямого ввода/вывода
  • Закрыть файловый дескриптор

dio_close

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_close — Закрыть файловый дескриптор

Описание

dio_close ( resource $fd ) : void

Функция dio_close() закрывает файловый дескриптор fd.

Список параметров

fd

Файловый дескриптор, полученный из dio_open().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Закрытие файлового дескриптора

<?php
$fd = dio_open('/dev/ttyS0', O_RDWR);

dio_close($fd);
?>

Смотрите также

  • dio_open() - Открывает файл (по необходимости создает) на более низком уровне нежели потоковые функции ввода/вывода языка C


Вызывает функцию библиотеки C fcntl для файлового дескриптора

  • « dio_close
  • dio_open »
  • PHP Manual
  • Функции прямого ввода/вывода
  • Вызывает функцию библиотеки C fcntl для файлового дескриптора

dio_fcntl

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_fcntl — Вызывает функцию библиотеки C fcntl для файлового дескриптора

Описание

dio_fcntl ( resource $fd , int $cmd [, mixed $args ] ) : mixed

Функция dio_fcntl() вызывает указанную в cmd команду для fd. Если команда требует дополнительных аргументов, то они задаются в args.

Список параметров

fd

Файловый дескриптор, полученный из dio_open().

cmd

Может быть одной из следующих операций:

  • F_SETLK - Установка или сброс блокировки. Если блокировка кем-либо удерживается, dio_fcntl() вернет -1.

  • F_SETLKW - похожа на F_SETLK, но если блокировка кем-либо удерживается, dio_fcntl() будет ждать ее освобождения.

  • F_GETLK - dio_fcntl() вернет ассоциативный массив (как описано ниже) если кто-либо мешает получить блокировку. Если никто не мешает, то ключ "type" будет содержать F_UNLCK.

  • F_DUPFD - ищет наименьший доступный файловый дескриптор, больший или равный args и возвращает его.

  • F_SETFL - устанавливает файловому дескриптору флаги, заданные в args, такие как O_APPEND, O_NONBLOCK или O_ASYNC. Для использования O_ASYNC вам необходимо воспользоваться модулем PCNTL.

args

args - это ассоциативный массив, если cmd установлен в F_SETLK или F_SETLLW, со следующими ключами:

  • start - смещение на начало блокировки

  • length - размер заблокированной зоны. 0 означает конец файла

  • whence - зависит от l_start: может быть SEEK_SET, SEEK_END и SEEK_CUR

  • type - тип блокировки: может быть F_RDLCK (чтение), F_WRLCK (запись) или F_UNLCK (блокировки нет)

Возвращаемые значения

Возвращает результат вызова C-функции.

Примеры

Пример #1 Установка и снятие блокировки

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR);

if (dio_fcntl($fd, F_SETLK, Array("type"=>F_WRLCK)) == -1) {
   // дескриптор файла заблокирован
   echo "Нельзя снять блокировку, она удерживается другим процессом.";
} else {
   echo "Блокировка успешно установлена/снята";
}

dio_close($fd);
?>

Примечания

Замечание: Для Windows-платформ эта функция не реализована.


Открывает файл (по необходимости создает) на более низком уровне нежели потоковые функции ввода/вывода языка C

  • « dio_fcntl
  • dio_read »
  • PHP Manual
  • Функции прямого ввода/вывода
  • Открывает файл (по необходимости создает) на более низком уровне нежели потоковые функции ввода/вывода языка C

dio_open

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_open — Открывает файл (по необходимости создает) на более низком уровне нежели потоковые функции ввода/вывода языка C

Описание

dio_open ( string $filename , int $flags [, int $mode = 0 ] ) : resource

dio_open() открывает файл и возвращает его дескриптор.

Список параметров

filename

Путь открываемого файла.

flags

Параметр flags задается побитовой комбинацией констант. Он должен включать одну из констант O_RDONLY, O_WRONLY или O_RDWR. Дополнительно он может содержать другие константы.

  • O_RDONLY - открыть файл на чтение.

  • O_WRONLY - открыть файл на запись.

  • O_RDWR - открыть файл на чтение и запись.

  • O_CREAT - создать файл, если его не существует.

  • O_EXCL - если заданы и O_CREAT и O_EXCL и файл существует, то dio_open() завершится с ошибкой.

  • O_TRUNC - если файл существует и был открыт на запись, то он будет обрезан до нулевой длины.

  • O_APPEND - операции записи будут происходить в конец файла.

  • O_NONBLOCK - установить неблокирующий режим.

  • O_NOCTTY - запрещает операционной системе считать открытый файл за терминал контроля процесса, если был открыт файл устройства TTY.

mode

Если flags содержит O_CREAT, mode установит разрешения для файла (creation permissions). mode требуется для корректной работы в случае указания O_CREAT в flags и в других случаях будет проигнорирован.

Актуальные разрешения, которые будут присвоены созданному файлу, будут зависеть от настройки umask процесса, как обычно.

Возвращаемые значения

Файловый дескриптор или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Открытие файлового дескриптора

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY | O_NONBLOCK);

dio_close($fd);
?>

Смотрите также

  • dio_close() - Закрыть файловый дескриптор


Прочитай байты из файлового дескриптора

  • « dio_open
  • dio_seek »
  • PHP Manual
  • Функции прямого ввода/вывода
  • Прочитай байты из файлового дескриптора

dio_read

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_read — Прочитай байты из файлового дескриптора

Описание

dio_read ( resource $fd [, int $len = 1024 ] ) : string

Функция dio_read() читает и возвращает len байт из дескриптора fd.

Список параметров

fd

Файловый дескриптор, полученный из dio_open().

len

Количество байт для чтения. Если не задано, то dio_read() прочитает блок в 1 килобайт.

Возвращаемые значения

Байты будут читаться из fd.

Смотрите также

  • dio_write() - Записывает байты в файл, опционально обрезая до указанной длины


Переместить указатель в файловом дескрипторе

  • « dio_read
  • dio_stat »
  • PHP Manual
  • Функции прямого ввода/вывода
  • Переместить указатель в файловом дескрипторе

dio_seek

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_seek — Переместить указатель в файловом дескрипторе

Описание

dio_seek ( resource $fd , int $pos [, int $whence = SEEK_SET ] ) : int

Функция dio_seek() используется для изменения указателя внутри файла.

Список параметров

fd

Файловый дескриптор, полученный из dio_open().

pos

Новая позиция.

whence

Указывает, как надо интерпретировать pos:

  • SEEK_SET (по умолчанию) - указывает, что pos отсчитывается от начала файла.

  • SEEK_CUR - указывает, что pos отсчитывается от текущей позиции. Может быть отрицательным.

  • SEEK_END - указывает, что pos отсчитывается от конца файла. Отрицательное число определяет позицию внутри текущего файла; положительное число определяет позицию после текущего конца. Если вы укажете позицию за пределами текущего конца файла и начнете запись, то недостающий кусок файла будет заполнен нулями.

Возвращаемые значения

Примеры

Пример #1 Позиционирование внутри файла

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR);

dio_seek($fd, 10, SEEK_SET);
// Текущая позиция - 10 байт от начала

dio_seek($fd, -2, SEEK_CUR);
// Текущая позиция - 8 байт от начала

dio_seek($fd, -5, SEEK_END);
// Текущая позиция - 5 байт от конца

dio_seek($fd, 10, SEEK_END);
// Текущая позиция - 10 байт дальше конца файла
// 10 байт от конца файла до текущей позиции заполнены нулями

dio_close($fd);
?>


Получить информацию о файловом дескрипторе

  • « dio_seek
  • dio_tcsetattr »
  • PHP Manual
  • Функции прямого ввода/вывода
  • Получить информацию о файловом дескрипторе

dio_stat

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_stat — Получить информацию о файловом дескрипторе

Описание

dio_stat ( resource $fd ) : array

dio_stat() возвращает информацио о заданном дескрипторе.

Список параметров

fd

Файловый дескриптор, полученный из dio_open().

Возвращаемые значения

Возвращает ассоциативный массив с такими ключами:

  • "device" - устройство

  • "inode" - inode

  • "mode" - права доступа

  • "nlink" - количество жестких ссылок

  • "uid" - идентификатор пользователя

  • "gid" - идентификатор группы

  • "device_type" - тип устройства (если оно inode)

  • "size" - размер в байтах

  • "blocksize" - размер блока

  • "blocks" - число выделенных блоков

  • "atime" - время последнего доступа

  • "mtime" - время последней модификации

  • "ctime" - время последнего изменения

В случае возникновения ошибки dio_stat() вернет NULL.


Устанавливает атрибуты терминала и скорость передачи данных для последовательного порта

  • « dio_stat
  • dio_truncate »
  • PHP Manual
  • Функции прямого ввода/вывода
  • Устанавливает атрибуты терминала и скорость передачи данных для последовательного порта

dio_tcsetattr

(PHP 4 >= 4.3.0, PHP 5 < 5.1.0)

dio_tcsetattr — Устанавливает атрибуты терминала и скорость передачи данных для последовательного порта

Описание

dio_tcsetattr ( resource $fd , array $options ) : bool

dio_tcsetattr() устанавливает атрибуты терминала и скорость передачи данных последовательного порта для дескриптора fd.

Список параметров

fd

Файловый дескриптор, полученный из dio_open().

options

Доступные опции:

  • 'baud' - скорость передачи для последовательного порта: 38400, 19200, 9600, 4800, 2400, 1800, 1200, 600, 300, 200, 150, 134, 110, 75 или 50. По умолчанию 9600.

  • 'bits' - биты данных: 8,7,6 или 5. По умолчанию 8.

  • 'stop' - стоп биты: 1 или 2. По умолчанию 1.

  • 'parity' - парность: 0, 1 или 2. По умолчанию 0.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Установка скорости передачи для последовательного порта

<?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;
  }
}

?>

Примечания

Замечание: Для Windows-платформ эта функция не реализована.


Обрезает файл до заданного количества байт

  • « dio_tcsetattr
  • dio_write »
  • PHP Manual
  • Функции прямого ввода/вывода
  • Обрезает файл до заданного количества байт

dio_truncate

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_truncate — Обрезает файл до заданного количества байт

Описание

dio_truncate ( resource $fd , int $offset ) : bool

dio_truncate() обрезает файл до offset байт.

Если файл был больше указанного значения, то лишние данные потеряются. Если файл был короче, то он либо останется неизменным, либо увеличится - данное поведение не определено. Если файл увеличится, то недостающие байты будут заполнены нулями.

Список параметров

fd

Файловый дескриптор, полученный из dio_open().

offset

Смещение в байтах.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Для Windows-платформ эта функция не реализована.


Записывает байты в файл, опционально обрезая до указанной длины

  • « dio_truncate
  • Каталоги »
  • PHP Manual
  • Функции прямого ввода/вывода
  • Записывает байты в файл, опционально обрезая до указанной длины

dio_write

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_write — Записывает байты в файл, опционально обрезая до указанной длины

Описание

dio_write ( resource $fd , string $data [, int $len = 0 ] ) : int

dio_write() записывает максимум len байт из data в файл fd.

Список параметров

fd

Файловый дескриптор, полученный из dio_open().

data

Записываемые данные.

len

Длина записываемых данных в байтах. Если не задано, то будут записаны все переданные данные.

Возвращаемые значения

Возвращает количество байт, записанных в fd.

Смотрите также

  • dio_read() - Прочитай байты из файлового дескриптора


Каталоги

  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Directory — Класс Directory
    • Directory::close — Закрывает дескриптор каталога
    • Directory::read — Получает элемент из дескриптора каталога
    • Directory::rewind — Перемещает дескриптор каталога в начало каталога
  • Функции для работы с каталогами
    • chdir — Изменяет каталог
    • chroot — Изменяет корневой каталог
    • closedir — Закрывает дескриптор каталога
    • dir — Возвращает экземпляр класса Directory
    • getcwd — Получает имя текущего рабочего каталога
    • opendir — Открывает дескриптор каталога
    • readdir — Получает элемент каталога по его дескриптору
    • rewinddir — Сбросить дескриптор каталога
    • scandir — Получает список файлов и каталогов, расположенных по указанному пути


Предопределенные константы

DIRECTORY_SEPARATOR (string)
PATH_SEPARATOR (string)
Точка с запятой в Windows, двоеточие в других системах.
SCANDIR_SORT_ASCENDING (integer)
Доступна с PHP 5.4.0.
SCANDIR_SORT_DESCENDING (integer)
Доступна с PHP 5.4.0.
SCANDIR_SORT_NONE (integer)
Доступна с PHP 5.4.0.


Класс Directory

(PHP 4, PHP 5, PHP 7)

Введение

Экземпляры класса Directory создаются при помощи вызова функции dir(), а не при помощи оператора new.

Обзор классов

Directory {
/* Свойства */
public string $path ;
public resource $handle ;
/* Методы */
public close ([ resource $dir_handle ] ) : void
public read ([ resource $dir_handle ] ) : string
public rewind ([ resource $dir_handle ] ) : void
}

Свойства

path

Каталог, который был открыт.

handle

Может быть использовано с другими функциями каталогов, такими, как readdir(), rewinddir() и closedir().

Содержание

  • Directory::close — Закрывает дескриптор каталога
  • Directory::read — Получает элемент из дескриптора каталога
  • Directory::rewind — Перемещает дескриптор каталога в начало каталога


Закрывает дескриптор каталога

  • « Directory
  • Directory::read »
  • PHP Manual
  • Directory
  • Закрывает дескриптор каталога

Directory::close

(PHP 4, PHP 5, PHP 7)

Directory::close — Закрывает дескриптор каталога

Описание

public Directory::close ([ resource $dir_handle ] ) : void

Аналогично функции closedir(), но параметр dir_handle по умолчанию $this->handle.


Получает элемент из дескриптора каталога

  • « Directory::close
  • Directory::rewind »
  • PHP Manual
  • Directory
  • Получает элемент из дескриптора каталога

Directory::read

(PHP 4, PHP 5, PHP 7)

Directory::read — Получает элемент из дескриптора каталога

Описание

public Directory::read ([ resource $dir_handle ] ) : string

Аналогично функции readdir(), но параметр dir_handle по умолчанию $this->handle.


Перемещает дескриптор каталога в начало каталога

  • « Directory::read
  • Функции для работы с каталогами »
  • PHP Manual
  • Directory
  • Перемещает дескриптор каталога в начало каталога

Directory::rewind

(PHP 4, PHP 5, PHP 7)

Directory::rewind — Перемещает дескриптор каталога в начало каталога

Описание

public Directory::rewind ([ resource $dir_handle ] ) : void

Аналогично функции rewinddir(), но параметр dir_handle по умолчанию $this->handle.


Функции для работы с каталогами

Смотрите также

За описанием сопутствующих функций, таких как dirname(), is_dir(), mkdir() и rmdir(), обратитесь к главе Файловая система.

Содержание

  • chdir — Изменяет каталог
  • chroot — Изменяет корневой каталог
  • closedir — Закрывает дескриптор каталога
  • dir — Возвращает экземпляр класса Directory
  • getcwd — Получает имя текущего рабочего каталога
  • opendir — Открывает дескриптор каталога
  • readdir — Получает элемент каталога по его дескриптору
  • rewinddir — Сбросить дескриптор каталога
  • scandir — Получает список файлов и каталогов, расположенных по указанному пути


Изменяет каталог

  • « Функции для работы с каталогами
  • chroot »
  • PHP Manual
  • Функции для работы с каталогами
  • Изменяет каталог

chdir

(PHP 4, PHP 5, PHP 7)

chdir — Изменяет каталог

Описание

chdir ( string $directory ) : bool

Изменяет текущий каталог PHP на указанный в качестве параметра directory.

Список параметров

directory

Новый текущий каталог

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

В случае неудачного выполнения выдает ошибку уровня E_WARNING.

Примеры

Пример #1 Пример использования chdir()

<?php

// текущий каталог
echo getcwd() . "\n";

chdir('public_html');

// текущий каталог
echo getcwd() . "\n";

?>

Результатом выполнения данного примера будет что-то подобное:

/home/vincent
/home/vincent/public_html

Примечания

Замечание: Когда опция safe mode включена, PHP проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Смотрите также

  • getcwd() - Получает имя текущего рабочего каталога


Изменяет корневой каталог

  • « chdir
  • closedir »
  • PHP Manual
  • Функции для работы с каталогами
  • Изменяет корневой каталог

chroot

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

chroot — Изменяет корневой каталог

Описание

chroot ( string $directory ) : bool

Изменяет корневой каталог текущего процесса на переданный в качестве параметра directory и меняет текущий каталог на "/".

Данная функция доступна только на системах GNU и BSD, а также только при использовании CLI, CGI или Embed SAPI. Кроме того, данная функция требует прав суперпользователя.

Список параметров

directory

Путь для смены корневой директории.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования chroot()

<?php
chroot("/path/to/your/chroot/");
echo getcwd();
?>

Результат выполнения данного примера:

/

Примечания

Замечание: Для Windows-платформ эта функция не реализована.


Закрывает дескриптор каталога

  • « chroot
  • dir »
  • PHP Manual
  • Функции для работы с каталогами
  • Закрывает дескриптор каталога

closedir

(PHP 4, PHP 5, PHP 7)

closedir — Закрывает дескриптор каталога

Описание

closedir ([ resource $dir_handle ] ) : void

Закрывает поток, связанный с каталогом и переданный в качестве параметра dir_handle. Перед использованием данной функции, поток должен быть открыт с помощью функции opendir().

Список параметров

dir_handle

Дескриптор каталога (resource), ранее открытый с помощью opendir(). Если дескриптор каталога не указан, используется последний дескриптор, открытый функцией opendir().

Примеры

Пример #1 Пример использования closedir()

<?php
$dir = "/etc/php5/";

// Открываем известную директорию, читаем ее в переменную и закрываем
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        $directory = readdir($dh);
        closedir($dh);
    }
}
?>


Возвращает экземпляр класса Directory

  • « closedir
  • getcwd »
  • PHP Manual
  • Функции для работы с каталогами
  • Возвращает экземпляр класса Directory

dir

(PHP 4, PHP 5, PHP 7)

dir — Возвращает экземпляр класса Directory

Описание

dir ( string $directory [, resource $context ] ) : Directory

Псевдо-объектно-ориентированный механизм для чтения каталога. Открывается переданный в параметре directory каталог.

Список параметров

directory

Каталог для открытия

context

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Возвращаемые значения

Возвращает экземпляр класса Directory, NULL при неверных параметрах, и FALSE в случае другой ошибки.

Примеры

Пример #1 Пример использования dir()

Обратите внимание на способ, которым осуществляется проверка значения, возвращаемого Directory::read() в примере, приведенном ниже. В этом примере явно проводится проверка значения на идентичность (выражения идентичны, когда они равны и являются одного типа - за более подробной информацией обратитесь к главе Операторы сравнения) значению FALSE, поскольку в ином случае, любой элемент каталога, чье имя может быть выражено как FALSE, остановит цикл.

<?php
$d = dir("/etc/php5");
echo "Дескриптор: " . $d->handle . "\n";
echo "Путь: " . $d->path . "\n";
while (false !== ($entry = $d->read())) {
   echo $entry."\n";
}
$d->close();
?>

Результатом выполнения данного примера будет что-то подобное:

Дескриптор: Resource id #2
Путь: /etc/php5
.
..
apache
cgi
cli

Примечания

Замечание:

Порядок, в котором метод "read" возвращает элементы каталога, зависит от операционной системы.


Получает имя текущего рабочего каталога

  • « dir
  • opendir »
  • PHP Manual
  • Функции для работы с каталогами
  • Получает имя текущего рабочего каталога

getcwd

(PHP 4, PHP 5, PHP 7)

getcwd — Получает имя текущего рабочего каталога

Описание

getcwd ( void ) : string

Возвращает имя текущего рабочего каталога.

Возвращаемые значения

Возвращает текущий рабочий каталог в случае успешного выполнения или FALSE в случае ошибки.

На некоторых вариантах Unix getcwd() вернет FALSE, если на каком-либо из родительских каталогов не установлен режим чтения или поиска, даже если он установлен на текущем каталоге. Больше информации о режимах доступа смотрите в документации функции chmod().

Примеры

Пример #1 Пример использования getcwd()

<?php

// текущий каталог
echo getcwd() . "\n";

chdir('cvs');

// текущий каталог
echo getcwd() . "\n";

?>

Результатом выполнения данного примера будет что-то подобное:

/home/didou
/home/didou/cvs

Смотрите также

  • chdir() - Изменяет каталог
  • chmod() - Изменяет режим доступа к файлу


Открывает дескриптор каталога

  • « getcwd
  • readdir »
  • PHP Manual
  • Функции для работы с каталогами
  • Открывает дескриптор каталога

opendir

(PHP 4, PHP 5, PHP 7)

opendir — Открывает дескриптор каталога

Описание

opendir ( string $path [, resource $context ] ) : resource

Открывает дескриптор каталога для последующего использования с функциями closedir(), readdir() и rewinddir().

Список параметров

path

Путь к открываемому каталогу

context

Для описания параметра context обратитесь к разделу Потоки.

Возвращаемые значения

Возвращает дескриптор каталога (resource) в случае успеха, или FALSE в случае возникновения ошибки

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Может произойти, если path не является директорией, директория не может быть открыта из-за недостаточных разрешений или из-за ошибок файловой системы.

Примеры

Пример #1 Пример использования функции opendir()

<?php
$dir = "/etc/php5/";

// Открыть известный каталог и начать считывать его содержимое
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            echo "файл: $file : тип: " . filetype($dir . $file) . "\n";
        }
        closedir($dh);
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

файл: . : тип: dir
файл: .. : тип: dir
файл: apache : тип: dir
файл: cgi : тип: dir
файл: cli : тип: dir

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • readdir() - Получает элемент каталога по его дескриптору
  • dir() - Возвращает экземпляр класса Directory


Получает элемент каталога по его дескриптору

  • « opendir
  • rewinddir »
  • PHP Manual
  • Функции для работы с каталогами
  • Получает элемент каталога по его дескриптору

readdir

(PHP 4, PHP 5, PHP 7)

readdir — Получает элемент каталога по его дескриптору

Описание

readdir ([ resource $dir_handle ] ) : string

Возвращает имя следующего по порядку элемента каталога. Элементы возвращаются в том порядке, в котором они хранятся в файловой системе.

Список параметров

dir_handle

Дескриптор каталога (resource), ранее открытый функцией opendir(). Если дескриптор каталога не указан, используется последний дескриптор, открытый функцией opendir().

Возвращаемые значения

Возвращает имя элемента каталога в случае успеха или FALSE в случае возникновения ошибки.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Вывести список всех элементов каталога

Обратите внимание на способ проверки значения, возвращаемого функцией readdir() в приведенном ниже примере. В этом примере осуществляется явная проверка значения на идентичность (выражения идентичны, когда они равны и являются значениями одного типа - за более подробной информацией обратитесь к главе " Операторы сравнения") значению FALSE, поскольку в ином случае любой элемент каталога, чье имя может быть преобразовано к FALSE, остановит цикл (например, элемент с именем "0").

<?php

if ($handle = opendir('/path/to/files')) {
    echo "Дескриптор каталога: $handle\n";
    echo "Элементы:\n";

    /* Именно такой способ чтения элементов каталога является правильным. */
    while (false !== ($entry = readdir($handle))) {
        echo "$entry\n";
    }

    /* Это НЕВЕРНЫЙ способ обхода каталога. */
    while ($entry = readdir($handle)) {
        echo "$entry\n";
    }

    closedir($handle);
}
?>

Пример #2 Получить список элементов в текущем каталоге и отбросить элементы с именами . и ..

<?php
if ($handle = opendir('.')) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..") {
            echo "$entry\n";
        }
    }
    closedir($handle);
}
?>

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • glob() - Находит файловые пути, совпадающие с шаблоном
  • opendir() - Открывает дескриптор каталога
  • scandir() - Получает список файлов и каталогов, расположенных по указанному пути


Сбросить дескриптор каталога

  • « readdir
  • scandir »
  • PHP Manual
  • Функции для работы с каталогами
  • Сбросить дескриптор каталога

rewinddir

(PHP 4, PHP 5, PHP 7)

rewinddir — Сбросить дескриптор каталога

Описание

rewinddir ([ resource $dir_handle ] ) : void

Сбрасывает поток каталога, переданный в параметре dir_handle таким образом, чтобы тот указывал на начало каталога.

Список параметров

dir_handle

Ресурс (resource) дескриптора каталога, ранее открытый с помощью функции opendir(). Если дескриптор каталога не указан, подразумевается последний дескриптор, который был открыт с помощью opendir().

Возвращаемые значения

Возвращает NULL в случае успешного завершения или FALSE в случае возникновения ошибки.


Получает список файлов и каталогов, расположенных по указанному пути

  • « rewinddir
  • FileInfo »
  • PHP Manual
  • Функции для работы с каталогами
  • Получает список файлов и каталогов, расположенных по указанному пути

scandir

(PHP 5, PHP 7)

scandir — Получает список файлов и каталогов, расположенных по указанному пути

Описание

scandir ( string $directory [, int $sorting_order = SCANDIR_SORT_ASCENDING [, resource $context ]] ) : array

Возвращает массив (array), содержащий имена файлов и каталогов, расположенных по пути, переданном в параметре directory.

Список параметров

directory

Сканируемый каталог.

sorting_order

По умолчанию сортировка производится в алфавитном порядке по возрастанию. Если необязательный параметр sorting_order установлен в значение SCANDIR_SORT_DESCENDING, сортировка производится в алфавитном порядке по убыванию. Если же он установлен в значение SCANDIR_SORT_NONE, то сортировка не производится.

context

За описанием параметра context обратитесь к разделу Потоки данного руководства.

Возвращаемые значения

Возвращает массив (array) имен файлов в случае успеха или FALSE в случае ошибки. Если directory не является каталогом, возвращается FALSE и генерируется сообщение об ошибке уровня E_WARNING.

Список изменений

Версия | Описание
5.4.0 | Добавлены константы для sorting_order. Любое ненулевое значение задавало сортировку по убыванию в предыдущих версиях. Поэтому для всех версий PHP нужно использовать 0 для сортировки по возрастанию и 1 для сортировки по убыванию. Опции для режима SCANDIR_SORT_NONE не существовало до PHP 5.4.0.

Примеры

Пример #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] => .
)

Примечания

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • opendir() - Открывает дескриптор каталога
  • readdir() - Получает элемент каталога по его дескриптору
  • glob() - Находит файловые пути, совпадающие с шаблоном
  • is_dir() - Определяет, является ли имя файла директорией
  • sort() - Сортирует массив


Информация о файле

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции расширения Fileinfo
    • finfo_buffer — Возвращает информацию о строке буфера
    • finfo_close — Закрывает ресурс Fileinfo
    • finfo_file — Возвращает информацию о файле
    • finfo_open — Создает ресурс Fileinfo
    • finfo_set_flags — Установить параметры конфигурации libmagic
    • mime_content_type — Определяет MIME-тип содержимого файла
  • finfo — Класс finfo
    • finfo::buffer — Псевдоним finfo_buffer()
    • finfo::__construct — Псевдоним finfo_open
    • finfo::file — Псевдоним finfo_file()
    • finfo::set_flags — Псевдоним finfo_set_flags()


Введение

Функции в этом модуле пытаются определить тип содержимого и кодировку файла, основываясь на некоторых магических последовательностях байт на определенных позициях в файле. Пока данный подход не является абсолютно надежным, однако эвристика неплохо справляется со своей работой.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

До версии PHP 5.3.0, для работы этого расширения требовалась библиотека magic_open.


Установка

Этот модуль включен по умолчанию начиная с PHP 5.3.0. До этого fileinfo являлся PECL-модулем, но работа над ним больше не ведется. Тем не менее, версии до 5.3+ могут использовать » данный PECL модуль.

Windows-пользователи должны подключить идущий в комплекте поставки php_fileinfo.dll DLL файл в php.ini для включения данного модуля.

Библиотека libmagic поставляется в комплекте с PHP, но может содержать специфичные для PHP изменения, которые можно добавлять с помощью патча libmagic.patch. Этот патч поддерживается в актуальном состоянии, его можно найти там же, где находятся файлы расширений fileinfo.

История обновлений библиотеки libmagic, идущей в комплекте
PHP Версия | Обновление libmagic Версия | Примечания
5.3.2 | 5.03 |
5.3.0 | 5.02 |


Типы ресурсов

Расширение Fileinfo использует один ресурс: "магический" указатель базы данных, возвращаемый функцией finfo_open().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

FILEINFO_NONE (integer)
Нет специальной обработки.
FILEINFO_SYMLINK (integer)
Следовать по символическим ссылкам.
FILEINFO_MIME_TYPE (integer)
Возвращать mime-тип. Доступно с PHP 5.3.0.
FILEINFO_MIME_ENCODING (integer)
Возвращать mime-кодировку файла. Доступно с PHP 5.3.0.
FILEINFO_MIME (integer)
Возвращать mime-тип и mime-кодировку по стандарту RFC 2045.
FILEINFO_COMPRESS (integer)
Распаковывать запакованные файлы. Отключено с PHP 5.3.0 по соображениям безопасности.
FILEINFO_DEVICES (integer)
Смотреть содержимое блочных и символьных устройств.
FILEINFO_CONTINUE (integer)
Возвращать все совпадения, а не только первое.
FILEINFO_PRESERVE_ATIME (integer)
По возможности сохранять исходное время доступа.
FILEINFO_RAW (integer)
Не переводить непечатные символы в \ooo восьмеричное представление.
FILEINFO_EXTENSION (integer)
Возвращает расширение файла, соответствующее для MIME-типа этого файла. Для типов, которые имеют несколько расширений файлов, таких как JPEG-изображений, возвращаемое значение будет состоять из нескольких расширений, разделенных слешом, например "jpeg/jpg/jpe/jfif". Для неизвестных типов, недоступных в базе данных magic.mime, возвращаемое значение будет "???". Доступно с PHP 7.2.0.


Функции расширения Fileinfo

Содержание

  • finfo_buffer — Возвращает информацию о строке буфера
  • finfo_close — Закрывает ресурс Fileinfo
  • finfo_file — Возвращает информацию о файле
  • finfo_open — Создает ресурс Fileinfo
  • finfo_set_flags — Установить параметры конфигурации libmagic
  • mime_content_type — Определяет MIME-тип содержимого файла


Возвращает информацию о строке буфера

  • « Функции расширения Fileinfo
  • finfo_close »
  • PHP Manual
  • Функции расширения Fileinfo
  • Возвращает информацию о строке буфера

finfo_buffer

finfo::buffer

(PHP 5 >= 5.3.0, PHP 7, PECL fileinfo >= 0.1.0)

finfo_buffer -- finfo::buffer — Возвращает информацию о строке буфера

Описание

Процедурный стиль

finfo_buffer ( resource $finfo , string $string [, int $options = FILEINFO_NONE [, resource $context ]] ) : string

Объектно-ориентированный стиль

public finfo::buffer ( string $string [, int $options = FILEINFO_NONE [, resource $context ]] ) : string

Эта функция используется для получения информации о бинарных данных в строке.

Список параметров

finfo

Ресурс Fileinfo, полученный функцией finfo_open().

string

Содержимое проверяемого файла.

options

Одна или несколько объединенных через бинарное ИЛИ констант Fileinfo.

context

Возвращаемые значения

Возвращает текстовое описание для аргумента string или FALSE в случае ошибки.

Примеры

Пример #1 Пример finfo_buffer()

<?php
$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($_POST["script"]) . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

application/x-sh; charset=us-ascii

Смотрите также

  • finfo_file() - Псевдоним finfo_file()


Закрывает ресурс Fileinfo

  • « finfo_buffer
  • finfo_file »
  • PHP Manual
  • Функции расширения Fileinfo
  • Закрывает ресурс Fileinfo

finfo_close

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_close — Закрывает ресурс Fileinfo

Описание

finfo_close ( resource $finfo ) : bool

Эта функция закрывает ресурс, который был открыт функцией finfo_open().

Список параметров

finfo

Ресурс Fileinfo, открытый функцией finfo_open().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает информацию о файле

  • « finfo_close
  • finfo_open »
  • PHP Manual
  • Функции расширения Fileinfo
  • Возвращает информацию о файле

finfo_file

finfo::file

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_file -- finfo::file — Возвращает информацию о файле

Описание

Процедурный стиль

finfo_file ( resource $finfo , string $file_name [, int $options = FILEINFO_NONE [, resource $context ]] ) : string

Объектно-ориентированный стиль

public finfo::file ( string $file_name [, int $options = FILEINFO_NONE [, resource $context ]] ) : string

Эта функция используется для получения информации о файле.

Список параметров

finfo

Ресурс Fileinfo, полученный функцией finfo_open().

file_name

Название проверяемого файла.

options

Одна или несколько объединенных через бинарное ИЛИ констант Fileinfo.

context

Для описания contexts, смотрите Функции для работы с потоками.

Возвращаемые значения

Возвращает текстовое описание содержимого файла file_name или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования finfo_file()

<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // возвращает mime-тип
foreach (glob("*") as $filename) {
    echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);
?>

Результатом выполнения данного примера будет что-то подобное:

text/html
image/gif
application/vnd.ms-excel

Смотрите также

  • finfo_buffer() - Псевдоним finfo_buffer()


Создает ресурс Fileinfo

  • « finfo_file
  • finfo_set_flags »
  • PHP Manual
  • Функции расширения Fileinfo
  • Создает ресурс Fileinfo

finfo_open

finfo::__construct

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_open -- finfo::__construct — Создает ресурс Fileinfo

Описание

Процедурный стиль

finfo_open ([ int $options = FILEINFO_NONE [, string $magic_file ]] ) : resource

Объектно-ориентированный стиль (конструктор):

public finfo::__construct ([ int $options = FILEINFO_NONE [, string $magic_file ]] )

Данная функция открывает магическую базу данных и возвращает ресурс на нее.

Список параметров

options

Одна или несколько объединенных через бинарное ИЛИ констант Fileinfo.

magic_file

Имя файла магической базы данных, обычно что-то наподобие этого: /path/to/magic.mime. Если не указан полный путь, будет использована переменная окружения MAGIC. Если переменная окружения не указана, то будет использоваться встроенная в PHP магическая база данных.

Передача NULL или пустой строки эквивалентно значению по умолчанию.

Возвращаемые значения

(Только процедурный стиль) Возвращает ресурс магической базы данных в случае успеха или FALSE в случае возникновения ошибки.

Примечания

Внимание

Начиная с PHP >= 5.3.11 и >= 5.4.1 формат магической базы данных изменен. Вследствие этого внутренняя база данных mime была также обновлена. Особенно это влияет на код, где читается внешняя база magic. Чтение magic-файлов старых форматов работать не будет. Также изменены некоторые текстовые представления mime-типов, например, для PHP будет возвращено "PHP script, ASCII text" вместо "PHP script text".

Замечание:

Обычно использование встроенной магической базы данных (при неустановленных magic_file и MAGIC) лучший выбор, если вам не нужна определенная версия магической базы данных.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic"); // возвращает mime-тип а-ля mimetype расширения

/* получить mime-type для указанного файла */
$filename = "/usr/local/something.txt";
echo $finfo->file($filename);

?>

Пример #2 Процедурный стиль

<?php
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic"); // возвращает mime-тип а-ля mimetype расширения

if (!$finfo) {
    echo "Открытие базы данных fileinfo не удалось";
    exit();
}

/* получить mime-type для указанного файла */
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);

/* закрыть соединение */
finfo_close($finfo);
?>

Результат выполнения данного примера:

text/plain; charset=us-ascii

Смотрите также

  • finfo_close() - Закрывает ресурс Fileinfo


Установить параметры конфигурации libmagic

  • « finfo_open
  • mime_content_type »
  • PHP Manual
  • Функции расширения Fileinfo
  • Установить параметры конфигурации libmagic

finfo_set_flags

finfo::set_flags

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_set_flags -- finfo::set_flags — Установить параметры конфигурации libmagic

Описание

Процедурный стиль

finfo_set_flags ( resource $finfo , int $options ) : bool

Объектно-ориентированный стиль

public finfo::set_flags ( int $options ) : bool

Эта функция устанавливает различные параметры Fileinfo. Опции также могут быть установлены напрямую в finfo_open() или других функциях Fileinfo.

Список параметров

finfo

Ресурс Fileinfo, полученный функцией finfo_open().

options

Одна или несколько объединенных через бинарное ИЛИ констант Fileinfo.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Определяет MIME-тип содержимого файла

  • « finfo_set_flags
  • finfo »
  • PHP Manual
  • Функции расширения Fileinfo
  • Определяет MIME-тип содержимого файла

mime_content_type

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mime_content_type — Определяет MIME-тип содержимого файла

Описание

mime_content_type ( string $filename ) : string

Возвращает MIME-тип содержимого файла, используя для определения информацию из файла magic.mime.

Список параметров

filename

Путь к проверяемому файлу.

Возвращаемые значения

Возвращает тип содержимого в формате MIME, например text/plain или application/octet-stream, или FALSE в случае возникновения ошибки.

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 Пример mime_content_type()

<?php
echo mime_content_type('php.gif') . "\n";
echo mime_content_type('test.php');
?>

Результат выполнения данного примера:

image/gif
text/plain

Смотрите также

  • finfo_file() - Псевдоним finfo_file()
  • finfo_buffer() - Псевдоним finfo_buffer()


Класс finfo

(PHP 5 >= 5.3.0, PHP 7, PECL fileinfo >= 0.1.0)

Введение

Этот класс предоставляет объектно ориентированный интерфейс к функциям fileinfo.

Обзор классов

finfo {
public __construct ([ int $options = FILEINFO_NONE [, string $magic_file = "" ]] )
public buffer ( string $string [, int $options = FILEINFO_NONE [, resource $context ]] ) : string
public file ( string $file_name [, int $options = FILEINFO_NONE [, resource $context ]] ) : string
public set_flags ( int $options ) : bool
}

Содержание

  • finfo::buffer — Псевдоним finfo_buffer()
  • finfo::__construct — Псевдоним finfo_open
  • finfo::file — Псевдоним finfo_file()
  • finfo::set_flags — Псевдоним finfo_set_flags()


Псевдоним finfo_buffer()

  • « finfo
  • finfo::__construct »
  • PHP Manual
  • finfo
  • Псевдоним finfo_buffer()

finfo::buffer

(PHP 5 >= 5.3.0, PHP 7, PECL fileinfo >= 0.1.0)

finfo::buffer — Псевдоним finfo_buffer()

Описание

public finfo::buffer ( string $string [, int $options = FILEINFO_NONE [, resource $context ]] ) : string

Эта функция является псевдонимом: finfo_buffer()


Псевдоним finfo_open

  • « finfo::buffer
  • finfo::file »
  • PHP Manual
  • finfo
  • Псевдоним finfo_open

finfo::__construct

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo::__construct — Псевдоним finfo_open()

Описание

public finfo::__construct ([ int $options = FILEINFO_NONE [, string $magic_file = "" ]] )

Эта функция является псевдонимом: finfo_open()


Псевдоним finfo_file()

  • « finfo::__construct
  • finfo::set_flags »
  • PHP Manual
  • finfo
  • Псевдоним finfo_file()

finfo::file

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo::file — Псевдоним finfo_file()

Описание

public finfo::file ( string $file_name [, int $options = FILEINFO_NONE [, resource $context ]] ) : string

Эта функция является псевдонимом: finfo_file()


Псевдоним finfo_set_flags()

  • « finfo::file
  • Файловая система »
  • PHP Manual
  • finfo
  • Псевдоним finfo_set_flags()

finfo::set_flags

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo::set_flags — Псевдоним finfo_set_flags()

Описание

public finfo::set_flags ( int $options ) : bool

Эта функция является псевдонимом: finfo_set_flags()


Файловая система

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции файловой системы
    • 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 — Возвращает время изменения индексного дескриптора файла
    • filegroup — Получает идентификатор группы файла
    • fileinode — Возвращает индексный дескриптор файла
    • 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
    • lchgrp — Изменяет группу, которой принадлежит символическая ссылка
    • lchown — Изменяет владельца символической ссылки
    • link — Создаёт жёсткую ссылку
    • linkinfo — Возвращает информацию о ссылке
    • lstat — Возвращает информацию о файле или символической ссылке
    • mkdir — Создаёт директорию
    • move_uploaded_file — Перемещает загруженный файл в новое место
    • parse_ini_file — Обрабатывает конфигурационный файл
    • parse_ini_string — Разбирает строку конфигурации
    • pathinfo — Возвращает информацию о пути к файлу
    • pclose — Закрывает файловый указатель процесса
    • popen — Открывает файловый указатель процесса
    • readfile — Выводит файл
    • readlink — Возвращает файл, на который указывает символическая ссылка
    • realpath_cache_get — Получает записи из кеша realpath
    • realpath_cache_size — Получает размер кеша realpath
    • realpath — Возвращает канонизированный абсолютный путь к файлу
    • rename — Переименовывает файл или директорию
    • rewind — Сбрасывает курсор файлового указателя
    • rmdir — Удаляет директорию
    • set_file_buffer — Псевдоним stream_set_write_buffer
    • stat — Возвращает информацию о файле
    • symlink — Создаёт символическую ссылку
    • tempnam — Создаёт файл с уникальным именем
    • tmpfile — Создаёт временный файл
    • touch — Устанавливает время доступа и модификации файла
    • umask — Изменяет текущую umask
    • unlink — Удаляет файл


Введение

Этот модуль не требует установки никаких внешних библиотек, но если вам нужна поддержка LFS (больших файлов) в Linux, то вам потребуется современная версия glibc и вам следует собирать PHP с включением следующих флагов в CFLAGS: -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Директивы конфигурации файловой системы и потоков
Имя | По умолчанию | Место изменения | Список изменений
allow_url_fopen | "1" | PHP_INI_SYSTEM |
allow_url_include | "0" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.2.0. Объявлена устаревшей с версии PHP 7.4.0.
user_agent | NULL | PHP_INI_ALL |
default_socket_timeout | "60" | PHP_INI_ALL |
from | "" | PHP_INI_ALL |
auto_detect_line_endings | "0" | PHP_INI_ALL |
sys_temp_dir | "" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.5.0.

Краткое разъяснение конфигурационных директив.

allow_url_fopen boolean

Данная директива включает поддержку оберток URL (URL wrappers), которые позволяют работать с объектами URL как с обычными файлами. Обертки, доступные по умолчанию, служат для работы с удаленными файлами с использованием ftp или http протокола. Некоторые расширения, например, zlib, могут регистрировать собственные обертки.

allow_url_include boolean

Эта опция позволяет использование оберток fopen, которые поддерживают работу с URL, в функциях include, include_once, require, require_once.

Замечание:

Эта опция требует включения опции allow_url_fopen.

user_agent string

Устанавливает отсылаемую PHP строку "User-Agent".

default_socket_timeout integer

Значение тайм-аута по умолчанию (в секундах) для потоков, использующих сокеты.

from string

Адрес email, используемый в соединениях FTP без авторизации, а также в качестве значения заголовка From в HTTP соединениях при использовании ftp и http оберток, соответственно.

auto_detect_line_endings boolean

Когда данная директива включена, PHP проверяет данные, получаемые функциями fgets() и file() с тем, чтобы определить способ завершения строк (Unix, MS-Dos или Macintosh).

Данная директива позволяет PHP взаимодействовать с системами Macintosh, однако, по умолчанию эта директива выключена, поскольку при ее использовании возникает (несущественная) потребность в дополнительных ресурсах для определения символа окончания первой строки, а также потому, что программисты, использующие в системах Unix символы возврата каретки в качестве разделителей, столкнутся с обратно-несовместимым поведением PHP.

sys_temp_dir string


Типы ресурсов

Файловая система использует потоки (streams) в качестве собственного типа ресурсов. Документация по потокам доступна в своей собственной главе: "Потоки".


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SEEK_SET (integer)
SEEK_CUR (integer)
SEEK_END (integer)
LOCK_SH (integer)
LOCK_EX (integer)
LOCK_UN (integer)
LOCK_NB (integer)
GLOB_BRACE (integer)
GLOB_ONLYDIR (integer)
GLOB_MARK (integer)
GLOB_NOSORT (integer)
GLOB_NOCHECK (integer)
GLOB_NOESCAPE (integer)
GLOB_AVAILABLE_FLAGS (integer)
PATHINFO_DIRNAME (integer)
PATHINFO_BASENAME (integer)
PATHINFO_EXTENSION (integer)
PATHINFO_FILENAME (integer)
Начиная с версии PHP 5.2.0.
FILE_USE_INCLUDE_PATH (integer)
Ищет filename в include_path.
FILE_NO_DEFAULT_CONTEXT (integer)
FILE_APPEND (integer)
Добавляет данные к существующему файлу.
FILE_IGNORE_NEW_LINES (integer)
Вырезаются концы строк (EOL).
FILE_SKIP_EMPTY_LINES (integer)
Пропускаются пустые строки.
FILE_BINARY (integer)

Бинарный режим (начиная с версии PHP 5.2.7).

Замечание:

Данная константа ни на что не влияет и доступна только для последующей совместимости (forward compatibility).

FILE_TEXT (integer)

Текстовый режим (начиная с версии PHP 5.2.7).

Замечание:

Данная константа ни на что не влияет и доступна только для последующей совместимости (forward compatibility).

INI_SCANNER_NORMAL (integer)
Обычный режим сканирования INI (начиная с версии PHP 5.3).
INI_SCANNER_RAW (integer)
Режим необработанного(raw) сканирования INI (начиная с версии PHP 5.3).
INI_SCANNER_TYPED (integer)
Режим типизированного сканирования INI (начиная с версии PHP 5.6.1).
FNM_NOESCAPE (integer)
Отключает экранирование обратных слешей.
FNM_PATHNAME (integer)
Слеши в строках совпадают только со слешами в указанном шаблоне.
FNM_PERIOD (integer)
Ведущая точка в строке должна точно совпадать с точкой в указанном шаблоне.
FNM_CASEFOLD (integer)
Совпадение без учета регистра. Часть расширения GNU.


Функции файловой системы

Смотрите также

Описание родственных функций вы сможете найти в разделах Каталоги и Выполнение программ.

За списком оберток URL для работы с удаленными файлами и пояснениями обращайтесь к главе Поддерживаемые протоколы и обертки.

Содержание

  • 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 — Возвращает время изменения индексного дескриптора файла
  • filegroup — Получает идентификатор группы файла
  • fileinode — Возвращает индексный дескриптор файла
  • 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
  • lchgrp — Изменяет группу, которой принадлежит символическая ссылка
  • lchown — Изменяет владельца символической ссылки
  • link — Создаёт жёсткую ссылку
  • linkinfo — Возвращает информацию о ссылке
  • lstat — Возвращает информацию о файле или символической ссылке
  • mkdir — Создаёт директорию
  • move_uploaded_file — Перемещает загруженный файл в новое место
  • parse_ini_file — Обрабатывает конфигурационный файл
  • parse_ini_string — Разбирает строку конфигурации
  • pathinfo — Возвращает информацию о пути к файлу
  • pclose — Закрывает файловый указатель процесса
  • popen — Открывает файловый указатель процесса
  • readfile — Выводит файл
  • readlink — Возвращает файл, на который указывает символическая ссылка
  • realpath_cache_get — Получает записи из кеша realpath
  • realpath_cache_size — Получает размер кеша realpath
  • realpath — Возвращает канонизированный абсолютный путь к файлу
  • rename — Переименовывает файл или директорию
  • rewind — Сбрасывает курсор файлового указателя
  • rmdir — Удаляет директорию
  • set_file_buffer — Псевдоним stream_set_write_buffer
  • stat — Возвращает информацию о файле
  • symlink — Создаёт символическую ссылку
  • tempnam — Создаёт файл с уникальным именем
  • tmpfile — Создаёт временный файл
  • touch — Устанавливает время доступа и модификации файла
  • umask — Изменяет текущую umask
  • unlink — Удаляет файл


Возвращает последний компонент имени из указанного пути

  • « Функции файловой системы
  • chgrp »
  • PHP Manual
  • Функции файловой системы
  • Возвращает последний компонент имени из указанного пути

basename

(PHP 4, PHP 5, PHP 7)

basename — Возвращает последний компонент имени из указанного пути

Описание

basename ( string $path [, string $suffix ] ) : string

При передаче строки с путем к файлу или каталогу, данная функция вернет последний компонент имени из данного пути.

Замечание:

basename() наивно оперирует исключительно исходной строкой и не учитывает реальную файловую систему или компоненты пути типа "..".

Предостережение

basename() учитывает настройки локали, поэтому для корректной обработки пути с многобайтными символами должна быть установлена соответствующая локаль с помощью функции setlocale().

Список параметров

path

Путь.

На платформах Windows в качестве разделителей имен директорий используются оба слеша (прямой / и обратный \). В других операционных системах разделителем служит прямой слеш (/).

suffix

Если компонент имени заканчивается на suffix, то он также будет отброшен.

Возвращаемые значения

Возвращает базовое имя указанного пути path.

Примеры

Пример #1 Пример использования функции basename()

<?php
echo "1) ".basename("/etc/sudoers.d", ".d").PHP_EOL;
echo "2) ".basename("/etc/sudoers.d").PHP_EOL;
echo "3) ".basename("/etc/passwd").PHP_EOL;
echo "4) ".basename("/etc/").PHP_EOL;
echo "5) ".basename(".").PHP_EOL;
echo "6) ".basename("/");
?>

Результат выполнения данного примера:

1) sudoers
2) sudoers.d
3) passwd
4) etc
5) .
6)

Смотрите также

  • dirname() - Возвращает имя родительского каталога из указанного пути
  • pathinfo() - Возвращает информацию о пути к файлу


Изменяет группу файла

  • « basename
  • chmod »
  • PHP Manual
  • Функции файловой системы
  • Изменяет группу файла

chgrp

(PHP 4, PHP 5, PHP 7)

chgrp — Изменяет группу файла

Описание

chgrp ( string $filename , mixed $group ) : bool

Осуществляет попытку смены группы файла filename на группу group.

Только суперпользователь может произвольно менять группу файла; остальные пользователи могут менять группу файла только на те группы, членами которых они являются.

Список параметров

filename

Путь к файлу.

group

Название или номер группы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Изменение группы файла

<?php
$filename = 'shared_file.txt';
$format = "Идентификатор группы файла %s @ %s: %d\n";
printf($format, $filename, date('r'), filegroup($filename));
chgrp($filename, 8);
clearstatcache(); // сбрасываем кеш filegroup()
printf($format, $filename, date('r'), filegroup($filename));
?>

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Смотрите также

  • chown() - Изменяет владельца файла
  • chmod() - Изменяет режим доступа к файлу


Изменяет режим доступа к файлу

  • « chgrp
  • chown »
  • PHP Manual
  • Функции файловой системы
  • Изменяет режим доступа к файлу

chmod

(PHP 4, PHP 5, PHP 7)

chmod — Изменяет режим доступа к файлу

Описание

chmod ( string $filename , int $mode ) : bool

Осуществляет попытку изменения режима доступа указанного файла на режим, переданный в параметре mode.

Список параметров

filename

Путь к файлу.

mode

Обратите внимание, что значение параметра mode не переводится автоматически в восьмеричную систему счисления, поэтому, чтобы удостовериться в том, что режим был установлен верно, предваряйте нулем (0) значение передаваемое в параметре mode. Строки, такие как "g+w", не будут работать должным образом.

<?php
chmod("/somedir/somefile", 755);   // десятичное, скорее всего, указано неверно
chmod("/somedir/somefile", "u+rwx,go+rx"); // строка, неверный способ
chmod("/somedir/somefile", 0755);  // восьмеричное, верный способ
?>

Значение параметра mode состоит из трех восьмеричных чисел, определяющих уровень доступа для владельца файла, для группы, в которую входит владелец, и для других пользователей, соответственно. Число, определяющее уровень пользователя, может быть вычислено путем суммирования значений, определяющих права: 1 - доступ на выполнение, 2 - доступ на запись, 4 - доступ на чтение. Сложите эти числа для указания нужного права доступа. Более подробно о системе прав в системах Unix вы можете узнать с помощью команд 'man 1 chmod' и '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 (id владельца), как и выполняемый скрипт. Кроме того, вы не можете устанавливать SUID, SGID и "липкие" (sticky) биты.

Смотрите также

  • chown() - Изменяет владельца файла
  • chgrp() - Изменяет группу файла
  • fileperms() - Возвращает информацию о правах на файл
  • stat() - Возвращает информацию о файле


Изменяет владельца файла

  • « chmod
  • clearstatcache »
  • PHP Manual
  • Функции файловой системы
  • Изменяет владельца файла

chown

(PHP 4, PHP 5, PHP 7)

chown — Изменяет владельца файла

Описание

chown ( string $filename , mixed $user ) : bool

Осуществляет попытку изменения владельца файла с именем filename на владельца, чье имя передано в параметре user (в виде числа или строки). Только суперпользователь может изменять владельца файла.

Список параметров

filename

Путь к файлу.

user

Имя пользователя или число.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример простого использования chown()

<?php

// Используемое имя файла и имя пользователя
$file_name= "foo.php";
$path = "/home/sites/php.net/public_html/sandbox/" . $file_name ;
$user_name = "root";

// Устанавливаем пользователя
chown($path, $user_name);

// Проверяем результат
$stat = stat($path);
print_r(posix_getpwuid($stat['uid']));

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name] => root
    [passwd] => x
    [uid] => 0
    [gid] => 0
    [gecos] => root
    [dir] => /root
    [shell] => /bin/bash
)

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Смотрите также

  • chmod() - Изменяет режим доступа к файлу
  • chgrp() - Изменяет группу файла


Очищает кеш состояния файлов

  • « chown
  • copy »
  • PHP Manual
  • Функции файловой системы
  • Очищает кеш состояния файлов

clearstatcache

(PHP 4, PHP 5, PHP 7)

clearstatcache — Очищает кеш состояния файлов

Описание

clearstatcache ([ bool $clear_realpath_cache = FALSE [, string $filename ]] ) : void

Для обеспечения большей производительности при использовании функций stat(), lstat() или любой другой функции, перечисленных в приведенном ниже списке, PHP кеширует результаты их выполнения. Однако, в некоторых случаях вам может потребоваться очистка этого кеша. Например, когда ваш скрипт несколько раз проверяет состояние одного и того же файла, который может быть изменен или удален во время выполнения скрипта, вы можете захотеть очистить кеш состояния. В этом случае необходимо использовать функцию clearstatcache() для очистки в PHP кешированной информации об указанном файле.

Обратите внимание, что PHP не кеширует информацию о несуществующих файлах. Так что, если вы вызовете file_exists() на несуществующем файле, она будет возвращать FALSE до тех пор, пока вы не создадите этот файл. Если же вы создадите файл, она будет возвращать TRUE, даже если затем вы его удалите. Однако, функция unlink() очистит данный кеш автоматически.

Замечание:

Данная функция кеширует информацию об определенных файлах, поэтому имеет смысл вызывать 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().

Список параметров

clear_realpath_cache

Очищать кеш realpath или нет.

filename

Очистить кеш realpath и stat только для определенного файла, используется только если параметр clear_realpath_cache установлен в TRUE.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
5.3.0 | Добавлены необязательные параметры clear_realpath_cache и filename.

Примеры

Пример #1 Пример использования clearstatcache()

<?php
$file = 'output_log.txt';

function get_owner($file)
{
    $stat = stat($file);
    $user = posix_getpwuid($stat['uid']);
    return $user['name'];
}

$format = "UID @ %s: %s\n";

printf($format, date('r'), get_owner($file));

chown($file, 'ross');
printf($format, date('r'), get_owner($file));

clearstatcache();
printf($format, date('r'), get_owner($file));
?>

Результатом выполнения данного примера будет что-то подобное:

UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: ross


Копирует файл

  • « clearstatcache
  • delete »
  • PHP Manual
  • Функции файловой системы
  • Копирует файл

copy

(PHP 4, PHP 5, PHP 7)

copy — Копирует файл

Описание

copy ( string $source , string $dest [, resource $context ] ) : bool

Копирует файл source в файл с именем dest.

Если вы хотите переименовать файл, используйте функцию rename().

Список параметров

source

Путь к исходному файлу.

dest

Путь к целевому файлу. Если dest является URL, то операция копирования может завершиться ошибкой, если обертка URL не поддерживает перезаписывание существующих файлов.

Внимание

Если целевой файл уже существует, то он будет перезаписан.

context

Корректный ресурс контекста, созданный функцией stream_context_create().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.4 | Изменён параметр context для достижения результата. Ранее любые параметры context игнорировались.
5.3.0 | Добавлена поддержка контекста.

Примеры

Пример #1 Пример использования функции copy()

<?php
$file = 'example.txt';
$newfile = 'example.txt.bak';

if (!copy($file, $newfile)) {
    echo "не удалось скопировать $file...\n";
}
?>

Смотрите также

  • move_uploaded_file() - Перемещает загруженный файл в новое место
  • rename() - Переименовывает файл или директорию
  • Раздел руководства "Загрузка файлов"


См. описание функции unlink или unset

  • « copy
  • dirname »
  • PHP Manual
  • Функции файловой системы
  • См. описание функции unlink или unset

delete

delete — См. описание функции unlink() или unset()

Описание

В PHP отсутствует функция с именем delete. Если вы попали на эту страницу в поисках функции удаления файла, то вам стоит воспользоваться функцией unlink(). Если же вам надо удалить переменную в локальной области видимости, то вам нужна функция unset().

Смотрите также

  • unlink() - Удаляет файл
  • unset() - Удаляет переменную


Возвращает имя родительского каталога из указанного пути

  • « delete
  • disk_free_space »
  • PHP Manual
  • Функции файловой системы
  • Возвращает имя родительского каталога из указанного пути

dirname

(PHP 4, PHP 5, PHP 7)

dirname — Возвращает имя родительского каталога из указанного пути

Описание

dirname ( string $path [, int $levels = 1 ] ) : string

Получив строку, содержащую путь к файлу или каталогу, данная функция возвратит родительский каталог данного пути на levels уровней вверх.

Замечание:

Функция dirname() наивно оперирует исключительно исходной строкой и не учитывает реальную файловую систему или компоненты пути типа "..".

Предостережение

dirname() учитывает настройки локали, поэтому для корректной обработки пути с многобайтовыми символами должна быть установлена соответствующая локаль с помощью функции setlocale().

Список параметров

path

Путь.

На платформах Windows в качестве разделителей имен директорий используются оба слеша (прямой / и обратный \). В других операционных системах разделителем служит прямой слеш (/).

levels

На сколько уровней вложенности вверх необходимо пройти.

Должно быть целым числом больше 0.

Возвращаемые значения

Возвращает путь к родительской директории. Если в параметре path не содержится слешей, будет возвращена точка ('.'), обозначающая текущую директорию. В другом случае будет возвращен path без последнего компонента /component.

Список изменений

Версия | Описание
7.0.0 | Добавлен необязательный параметр levels.

Примеры

Пример #1 Пример использования функции dirname()

<?php
echo dirname("/etc/passwd") . PHP_EOL;
echo dirname("/etc/") . PHP_EOL;
echo dirname(".") . PHP_EOL;
echo dirname("C:\\") . PHP_EOL;
echo dirname("/usr/local/lib", 2);.

Результатом выполнения данного примера будет что-то подобное:

/etc
/ (или \ в Windows)
.
C:\
/usr

Смотрите также

  • basename() - Возвращает последний компонент имени из указанного пути
  • pathinfo() - Возвращает информацию о пути к файлу
  • realpath() - Возвращает канонизированный абсолютный путь к файлу


Возвращает размер доступного пространства в каталоге или файловой системе

  • « dirname
  • disk_total_space »
  • PHP Manual
  • Функции файловой системы
  • Возвращает размер доступного пространства в каталоге или файловой системе

disk_free_space

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

disk_free_space — Возвращает размер доступного пространства в каталоге или файловой системе

Описание

disk_free_space ( string $directory ) : float

Функция возвращает размер свободного пространства в байтах, доступного для использования в указанном каталоге или файловой системе.

Список параметров

directory

Директория или раздел диска.

Замечание:

Если вместо директории будет передано имя файла, то поведение данной функции неизвестно и может отличаться на разных операционных системах и версиях PHP.

Возвращаемые значения

Возвращает количество свободных байт в виде числа с плавающей точкой или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования функции disk_free_space()

<?php
// $df содержит размер свободного места в каталоге "/"
$df = disk_free_space("/");

// В Windows:
$df_c = disk_free_space("C:");
$df_d = disk_free_space("D:");
?>

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Смотрите также

  • disk_total_space() - Возвращает общий размер файловой системы или раздела диска


Возвращает общий размер файловой системы или раздела диска

  • « disk_free_space
  • diskfreespace »
  • PHP Manual
  • Функции файловой системы
  • Возвращает общий размер файловой системы или раздела диска

disk_total_space

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

disk_total_space — Возвращает общий размер файловой системы или раздела диска

Описание

disk_total_space ( string $directory ) : float

Функция возвращает общий размер в байтах указанного раздела диска или каталога.

Список параметров

directory

Директория файловой системы или раздел диска.

Возвращаемые значения

Возвращает общий размер в байтах в виде числа с плавающей точкой или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования disk_total_space()

<?php
// $df содержит общий размер диска "/" в байтах
$ds = disk_total_space("/");

// В Windows:
$ds = disk_total_space("C:");
$ds = disk_total_space("D:");
?>

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Смотрите также

  • disk_free_space() - Возвращает размер доступного пространства в каталоге или файловой системе


Псевдоним disk_free_space

  • « disk_total_space
  • fclose »
  • PHP Manual
  • Функции файловой системы
  • Псевдоним disk_free_space

diskfreespace

(PHP 4, PHP 5, PHP 7)

diskfreespace — Псевдоним disk_free_space()

Описание

Эта функция является псевдонимом: disk_free_space().


Закрывает открытый дескриптор файла

  • « diskfreespace
  • feof »
  • PHP Manual
  • Функции файловой системы
  • Закрывает открытый дескриптор файла

fclose

(PHP 4, PHP 5, PHP 7)

fclose — Закрывает открытый дескриптор файла

Описание

fclose ( resource $handle ) : bool

Функция закрывает файл, на который указывает дескриптор handle.

Список параметров

handle

Дескриптор должен быть корректным и указывать на файл, открытый ранее с помощью функции fopen() или fsockopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Простой пример использования функции fclose()

<?php

$handle = fopen('somefile.txt', 'r');

fclose($handle);

?>

Смотрите также

  • fopen() - Открывает файл или URL
  • fsockopen() - Открывает соединение с интернет-сокетом или доменным сокетом Unix


Проверяет, достигнут ли конец файла

  • « fclose
  • fflush »
  • PHP Manual
  • Функции файловой системы
  • Проверяет, достигнут ли конец файла

feof

(PHP 4, PHP 5, PHP 7)

feof — Проверяет, достигнут ли конец файла

Описание

feof ( resource $handle ) : bool

Проверяет, достигнут ли конец файла.

Список параметров

handle

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и все еще не закрытый функцией fclose()).

Возвращаемые значения

Возвращает TRUE, если указатель файла указывает на EOF или произошла ошибка (в том числе тайм-аут сокета), иначе возвращает FALSE.

Примечания

Внимание

Если подключение, открытое при помощи fsockopen(), не было закрыто сервером, feof() повиснет. Для варианта обхода этого поведения смотрите следующий пример:

Пример #1 Обработка тайм-аутов с функцией feof()

<?php
function safe_feof($fp, &$start = NULL) {
 $start = microtime(true);

 return feof($fp);
}

/* Предположим, что $fp был ранее открыт с помощью fsockopen() */

$start = NULL;
$timeout = ini_get('default_socket_timeout');

while(!safe_feof($fp, $start) && (microtime(true) - $start) < $timeout)
{
 /* Обработка */
}
?>

Внимание

Если передан неверный файловый указатель, то вы можете получить бесконечный цикл, так как feof() не сможет вернуть TRUE.

Пример #2 Пример feof() с неверным файловым указателем

<?php
// если файл не может быть прочтен или не существует, fopen вернет FALSE
$file = @fopen("no_such_file", "r");

// FALSE от fopen вызовет предупреждение и следующий цикл станет бесконечным
while (!feof($file)) {
}

fclose($file);
?>


Сбрасывает буфер вывода в файл

  • « feof
  • fgetc »
  • PHP Manual
  • Функции файловой системы
  • Сбрасывает буфер вывода в файл

fflush

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

fflush — Сбрасывает буфер вывода в файл

Описание

fflush ( resource $handle ) : bool

Данная функция осуществляет сброс буферизованных данных в файл, на который указывает handle.

Список параметров

handle

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и все еще не закрытый функцией fclose()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример записи файла с помощью fflush()

<?php
$filename = 'bar.txt';

$file = fopen($filename, 'r+');
rewind($file);
fwrite($file, 'Foo');
fflush($file);
ftruncate($file, ftell($file));
fclose($file);
?>

Смотрите также

  • clearstatcache() - Очищает кеш состояния файлов
  • fwrite() - Бинарно-безопасная запись в файл


Считывает символ из файла

  • « fflush
  • fgetcsv »
  • PHP Manual
  • Функции файловой системы
  • Считывает символ из файла

fgetc

(PHP 4, PHP 5, PHP 7)

fgetc — Считывает символ из файла

Описание

fgetc ( resource $handle ) : string

Считывает символ из переданного указателя на файл.

Список параметров

handle

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и все еще не закрытый функцией fclose()).

Возвращаемые значения

Возвращает строку с одним символом, прочтенным из файла, на который указывает handle. Возвращает FALSE при достижении EOF.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Пример использования функции fgetc()

<?php
$fp = fopen('somefile.txt', 'r');
if (!$fp) {
    echo 'Ошибка при открытии файла somefile.txt';
}
while (false !== ($char = fgetc($fp))) {
    echo "$char\n";
}
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • fread() - Бинарно-безопасное чтение файла
  • fopen() - Открывает файл или URL
  • popen() - Открывает файловый указатель процесса
  • fsockopen() - Открывает соединение с интернет-сокетом или доменным сокетом Unix
  • fgets() - Читает строку из файла


Читает строку из файла и производит разбор данных CSV

  • « fgetc
  • fgets »
  • PHP Manual
  • Функции файловой системы
  • Читает строку из файла и производит разбор данных CSV

fgetcsv

(PHP 4, PHP 5, PHP 7)

fgetcsv — Читает строку из файла и производит разбор данных CSV

Описание

fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\\" ]]]] ) : array

Данная функция похожа на функцию fgets(), с той разницей, что она производит анализ строки на наличие записей в формате CSV и возвращает найденные поля в качестве массива.

Замечание:

Эта функция принимает во внимание настройки локали. К примеру, если LANG установлена в en_US.UTF-8, то файлы в однобайтовой кодировке будут неправильно прочитаны этой функцией.

Список параметров

handle

Корректный файловый указатель на файл, успешно открытый при помощи fopen(), popen() или fsockopen().

length

Должен быть больше самой длинной строки (в символах), найденной в CSV-файле (включая завершающий символ конца строки). В противном случае, строка будет разбита на куски длиной в length символов, если только место разрыва не будет внутри ограничителей полей (enclosure).

Отсутствие этого параметра (или установка его в 0 в PHP 5.1.0 и выше) приведет к тому, что длина строки будет неограничена. Это может сказаться на скорости выполнения.

delimiter

Необязательный параметр delimiter устанавливает разделитель поля (только один символ).

enclosure

Необязательный параметр enclosure устанавливает символ ограничителя поля (только один символ).

escape

Необязательный параметр escape устанавливает экранирующий символ (минимум один символ). Пустая строка ("") отключает проприетарный механизм экранирования.

Замечание: Обычно символ enclosure экранируется внутри поля путем его удваивания; однако, символ escape в качестве альтернативы. Поэтому значения по умолчанию этих параметров "" и \" имеют одинаковое значение. Помимо разрешения экранировать символ enclosure символ escape не имеет особого смысла; он даже не предназначен для самого экранирования.

Возвращаемые значения

Возвращает индексированный массив с прочтенными полями.

Замечание:

Пустая строка CSV-файла будет возвращена в качестве массива, содержащего единственный элемент null, ошибки в данном случае не возникнет.

Замечание: Если у вас возникают проблемы с распознаванием PHP концов строк при чтении или создании файлов на Macintosh-совместимом компьютере, включение опции auto_detect_line_endings может помочь решить проблему.

fgetcsv() возвращает NULL, если передаётся неверный параметр handle или FALSE при других ошибках, в том числе и при достижении конца файла.

Список изменений

Версия | Описание
7.4.0 | Теперь параметр escape может принимать пустую строку для отключения проприетарного механизма экранирования.
5.3.0 | Добавлен параметр escape
5.1.0 | Параметр length стал необязательным. По умолчанию равен 0, что означает отсутствие ограничения длины.

Примеры

Пример #1 Чтение и вывод на экран содержимого CSV-файла

<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    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);
}
?>

Смотрите также

  • str_getcsv() - Выполняет разбор CSV-строки в массив
  • explode() - Разбивает строку с помощью разделителя
  • file() - Читает содержимое файла и помещает его в массив
  • pack() - Упаковать данные в бинарную строку
  • fputcsv() - Форматирует строку в виде CSV и записывает её в файловый указатель


Читает строку из файла

  • « fgetcsv
  • fgetss »
  • PHP Manual
  • Функции файловой системы
  • Читает строку из файла

fgets

(PHP 4, PHP 5, PHP 7)

fgets — Читает строку из файла

Описание

fgets ( resource $handle [, int $length ] ) : string

Читает строку из файлового указателя.

Список параметров

handle

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и все еще не закрытый функцией fclose()).

length

Чтение заканчивается при достижении length - 1 байт, либо если встретилась новая строка (которая включается в возвращаемый результат) или конец файла (в зависимости от того, что наступит раньше). Если длина не указана, чтение из потока будет продолжаться до тех пор, пока не достигнет конца строки.

Возвращаемые значения

Возвращает строку размером в length - 1 байт, прочитанную из дескриптора файла, на который указывает параметр handle. Если данных для чтения больше нет, то возвращает FALSE.

В случае возникновения ошибки возвращает FALSE.

Примеры

Пример #1 Построчное чтение файла

<?php
$handle = @fopen("/tmp/inputfile.txt", "r");
if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {
        echo $buffer;
    }
    if (!feof($handle)) {
        echo "Ошибка: fgets() неожиданно потерпел неудачу\n";
    }
    fclose($handle);
}
?>

Примечания

Замечание: Если у вас возникают проблемы с распознаванием PHP концов строк при чтении или создании файлов на Macintosh-совместимом компьютере, включение опции auto_detect_line_endings может помочь решить проблему.

Замечание:

Программисты, привыкшие к семантике 'C' функции fgets(), должны принимать во внимание разницу в том, каким образом возвращается признак достижения конца файла (EOF).

Смотрите также

  • fgetss() - Читает строку из файла и удаляет HTML-теги
  • fread() - Бинарно-безопасное чтение файла
  • fgetc() - Считывает символ из файла
  • stream_get_line() - Получает строку из потокового ресурса до указанного разделителя
  • fopen() - Открывает файл или URL
  • popen() - Открывает файловый указатель процесса
  • fsockopen() - Открывает соединение с интернет-сокетом или доменным сокетом Unix
  • stream_set_timeout() - Установить значение тайм-аута для потока


Читает строку из файла и удаляет HTML-теги

  • « fgets
  • file_exists »
  • PHP Manual
  • Функции файловой системы
  • Читает строку из файла и удаляет HTML-теги

fgetss

(PHP 4, PHP 5, PHP 7)

fgetss — Читает строку из файла и удаляет HTML-теги

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.3.0 и ее использование крайне не рекомендовано.

Описание

fgetss ( resource $handle [, int $length [, string $allowable_tags ]] ) : string

Функция идентична функции fgets(), за исключением того, что fgetss() удаляет любые NULL-байты, HTML- и PHP-теги из прочитанной строки. Функция сохраняет состояние синтаксического анализа от вызова к вызову и поэтому не эквивалентна вызову strip_tags() для возвращаемого значения fgets().

Список параметров

handle

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и все еще не закрытый функцией fclose()).

length

Длина получаемых данных.

allowable_tags

Можно использовать третий необязательный параметр для указания тегов, которые не нужно вырезать. Смотрите описание strip_tags() для более подробной информации о allowable_tags.

Возвращаемые значения

Возвращает строку длиной до length - 1 байт, прочтенных из файла, на который указывает дескриптор handle, с вырезанными тегами HTML и PHP.

В случае возникновения ошибки возвращает FALSE.

Примеры

Пример #1 Построчное чтение PHP-файла

<?php
$str = <<<EOD
<html><body>
 <p>Добро пожаловать! Сегодня <?php echo(date('jS F')); ?>.</p>
</body></html>
Текст вне HTML-блока.
EOD;
file_put_contents('sample.php', $str);

$handle = @fopen("sample.php", "r");
if ($handle) {
    while (!feof($handle)) {
        $buffer = fgetss($handle, 4096);
        echo $buffer;
    }
    fclose($handle);
}
?>

Результатом выполнения данного примера будет что-то подобное:

 Добро пожаловать! Сегодня .

Текст вне HTML-блока.

Примечания

Замечание: Если у вас возникают проблемы с распознаванием PHP концов строк при чтении или создании файлов на Macintosh-совместимом компьютере, включение опции auto_detect_line_endings может помочь решить проблему.

Смотрите также

  • fgets() - Читает строку из файла
  • fopen() - Открывает файл или URL
  • popen() - Открывает файловый указатель процесса
  • fsockopen() - Открывает соединение с интернет-сокетом или доменным сокетом Unix
  • strip_tags() - Удаляет теги HTML и PHP из строки
  • SplFileObject::fgetss() - Получить строку из файла и удалить теги HTML
  • Фильтр string.strip_tags


Проверяет существование указанного файла или каталога

  • « fgetss
  • file_get_contents »
  • PHP Manual
  • Функции файловой системы
  • Проверяет существование указанного файла или каталога

file_exists

(PHP 4, PHP 5, PHP 7)

file_exists — Проверяет существование указанного файла или каталога

Описание

file_exists ( string $filename ) : bool

Проверяет наличие указанного файла или каталога.

Список параметров

filename

Путь к файлу или каталогу.

На платформах Windows, для проверки наличия файлов на сетевых ресурсах, используйте имена, подобные //computername/share/filename или \\computername\share\filename.

Возвращаемые значения

Возвращает TRUE, если файл или каталог, указанный параметром filename, существует, иначе возвращает FALSE.

Замечание:

Данная функция возвращает FALSE для символических ссылок, указывающих на несуществующие файлы.

Внимание

Если файлы недоступны из-за ограничений, налагаемых безопасным режимом, то данная функция вернет FALSE. Однако, эти файлы все еще могут быть подключены, если они располагаются в каталоге safe_mode_include_dir.

Замечание:

Проверка происходит с помощью реальных UID/GID, а не эффективных идентификаторов.

Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2 Гб.

Примеры

Пример #1 Проверка существования файла

<?php
$filename = '/path/to/foo.txt';

if (file_exists($filename)) {
    echo "Файл $filename существует";
} else {
    echo "Файл $filename не существует";
}
?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • is_readable() - Определяет существование файла и доступен ли он для чтения
  • is_writable() - Определяет, доступен ли файл для записи
  • is_file() - Определяет, является ли файл обычным файлом
  • file() - Читает содержимое файла и помещает его в массив


Читает содержимое файла в строку

  • « file_exists
  • file_put_contents »
  • PHP Manual
  • Функции файловой системы
  • Читает содержимое файла в строку

file_get_contents

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

file_get_contents — Читает содержимое файла в строку

Описание

file_get_contents ( string $filename [, bool $use_include_path = FALSE [, resource $context [, int $offset = 0 [, int $maxlen ]]]] ) : string

Данная функция похожа на функцию file() с той лишь разницей, что file_get_contents() возвращает содержимое файла в строке, начиная с указанного смещения offset и до maxlen байт. В случае неудачи, file_get_contents() вернёт FALSE.

Использование функции file_get_contents() наиболее предпочтительно в случае необходимости получить содержимое файла целиком, поскольку для улучшения производительности функция использует технику отображения файла в память (memory mapping), если она поддерживается вашей операционной системой.

Замечание:

Если вы открываете URI, содержащий спецсимволы, такие как пробел, вам нужно закодировать URI при помощи urlencode().

Список параметров

filename

Имя читаемого файла.

use_include_path

Замечание:

Можно использовать константу FILE_USE_INCLUDE_PATH для поиска файла в include path. Только помните, что если вы используете строгую типизацию, то так сделать не получится, поскольку FILE_USE_INCLUDE_PATH имеет тип int. В таком случае используйте TRUE.

context

Корректный ресурс контекста, созданный с помощью функции stream_context_create(). Если в использовании особого контекста нет необходимости, можно пропустить этот параметр передав в него значение NULL.

offset

Смещение, с которого начнется чтение оригинального потока. Отрицательное значение смещения будет отсчитываться с конца потока.

Поиск смещения (offset) не поддерживается при работе с удаленными файлами. Попытка поиска смещения на нелокальных файлах может работать при небольших смещениях, но результат будет непредсказуемым, так как функция работает на буферизованном потоке.

maxlen

Максимальный размер читаемых данных. По умолчанию чтение осуществляется пока не будет достигнут конец файла. Учтите, что этот параметр применяется и к потоку с фильтрами.

Возвращаемые значения

Функция возвращает прочтенные данные или FALSE в случае возникновения ошибки.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Ошибки

Будет сгенерирована ошибка уровня E_WARNING в случаях, если не удастся найти filename, задан maxlength меньше нуля, или поиск по смещению offset в потоке завершится неудачно.

Примеры

Пример #1 Получить и вывести исходный код домашней страницы вебсайта

<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>

Пример #2 Поиск файлов в include_path

<?php
// Если включены строгие типы, то есть объявлено (strict_types=1);
$file = file_get_contents('./people.txt', true);
// Иначе
$file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH);
?>

Пример #3 Чтение секции файла

<?php
// Читаем 14 символов, начиная с 21 символа
$section = file_get_contents('./people.txt', FALSE, NULL, 20, 14);
var_dump($section);
?>

Результатом выполнения данного примера будет что-то подобное:

string(14) "lle Bjori Ro"

Пример #4 Использование потоковых контекстов

<?php
// Создаем поток
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

// Открываем файл с помощью установленных выше HTTP-заголовков
$file = file_get_contents('http://www.example.com/', false, $context);
?>

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений offset.
5.1.0 | Добавлены аргументы offset и maxlen.

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.

Внимание

При использовании SSL, Microsoft IIS нарушает протокол, закрывая соединение без отправки индикатора close_notify. PHP сообщит об этом как "SSL: Fatal Protocol Error" в тот момент, когда вы достигнете конца данных. Чтобы обойти это, вы должны установить error_reporting на уровень, исключающий E_WARNING. PHP умеет определять, что на стороне сервера находится проблемный IIS при открытии потока с помощью обертки https:// и не выводит предупреждение. Если вы используете fsockopen() для создания ssl:// сокета, вы сами отвечаете за определение и подавление этого предупреждения.

Смотрите также

  • file() - Читает содержимое файла и помещает его в массив
  • fgets() - Читает строку из файла
  • fread() - Бинарно-безопасное чтение файла
  • readfile() - Выводит файл
  • file_put_contents() - Пишет данные в файл
  • stream_get_contents() - Читает оставшуюся часть потока в строку
  • stream_context_create() - Создаёт контекст потока
  • $http_response_header


Пишет данные в файл

  • « file_get_contents
  • file »
  • PHP Manual
  • Функции файловой системы
  • Пишет данные в файл

file_put_contents

(PHP 5, PHP 7)

file_put_contents — Пишет данные в файл

Описание

file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] ) : int

Функция идентична последовательным успешным вызовам функций fopen(), fwrite() и fclose().

Если filename не существует, файл будет создан. Иначе, существующий файл будет перезаписан, за исключением случая, если указан флаг FILE_APPEND.

Список параметров

filename

Путь к записываемому файлу.

data

Записываемые данные. Может быть типа string, array или ресурсом потока.

Если data является потоковым ресурсом (stream), оставшийся буфер этого потока будет скопирован в указанный файл. Это похоже на использование функции stream_copy_to_stream().

Также вы можете передать одномерный массив в качестве параметра data. Это будет эквивалентно вызову file_put_contents($filename, implode('', $array)).

flags

Значением параметра flags может быть любая комбинация следующих флагов, соединенных бинарным оператором ИЛИ (|).

Доступные флаги
Флаг | Описание
FILE_USE_INCLUDE_PATH | Ищет filename в подключаемых директориях. Подробнее смотрите директиву include_path.
FILE_APPEND | Если файл filename уже существует, данные будут дописаны в конец файла вместо того, чтобы его перезаписать.
LOCK_EX | Получить эксклюзивную блокировку на файл на время записи. Другими словами, между вызовами fopen() и fwrite() произойдет вызов функции flock(). Это не одно и то же, что вызов fopen() с флагом "x".

context

Корректный ресурс контекста, созданный с помощью функции stream_context_create().

Возвращаемые значения

Функция возвращает количество записанных байт в файл, или FALSE в случае ошибки.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Пример простого использования

<?php
$file = 'people.txt';
// Открываем файл для получения существующего содержимого
$current = file_get_contents($file);
// Добавляем нового человека в файл
$current .= "John Smith\n";
// Пишем содержимое обратно в файл
file_put_contents($file, $current);
?>

Пример #2 Использование флагов

<?php
$file = 'people.txt';
// Новый человек, которого нужно добавить в файл
$person = "John Smith\n";
// Пишем содержимое в файл,
// используя флаг FILE_APPEND для дописывания содержимого в конец файла
// и флаг LOCK_EX для предотвращения записи данного файла кем-нибудь другим в данное время
file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
?>

Список изменений

Версия | Описание
5.1.0 | Добавлена поддержка LOCK_EX и возможность передачи потокового ресурса в параметр data

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • fopen() - Открывает файл или URL
  • fwrite() - Бинарно-безопасная запись в файл
  • file_get_contents() - Читает содержимое файла в строку
  • stream_context_create() - Создаёт контекст потока


Читает содержимое файла и помещает его в массив

  • « file_put_contents
  • fileatime »
  • PHP Manual
  • Функции файловой системы
  • Читает содержимое файла и помещает его в массив

file

(PHP 4, PHP 5, PHP 7)

file — Читает содержимое файла и помещает его в массив

Описание

file ( string $filename [, int $flags = 0 [, resource $context ]] ) : array

Читает содержимое файла и помещает его в массив.

Замечание:

Можно также использовать функцию file_get_contents() для получения файла в виде строки.

Список параметров

filename

Путь к файлу.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.

flags

В качестве необязательного параметра flags может можно указать одну или более следующих констант:

FILE_USE_INCLUDE_PATH
Ищет файл в include_path.
FILE_IGNORE_NEW_LINES
Пропускать новую строку в конце каждого элемента массива
FILE_SKIP_EMPTY_LINES
Пропускать пустые строки

context

Ресурс контекста, созданный функцией stream_context_create().

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Возвращаемые значения

Возвращает файл в виде массива. Каждый элемент массива соответствует строке файла, с символами новой строки включительно. В случае ошибки file() возвращает FALSE.

Замечание:

Каждая строка в полученном массиве будет завершаться символами конца строки, если только не используется FILE_IGNORE_NEW_LINES).

Замечание: Если у вас возникают проблемы с распознаванием PHP концов строк при чтении или создании файлов на Macintosh-совместимом компьютере, включение опции auto_detect_line_endings может помочь решить проблему.

Ошибки

Вызывает ошибку уровня E_WARNING, если файл не существует.

Примеры

Пример #1 Пример использования file()

<?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";
}

// Второй пример. Получим содержание веб-страницы в виде одной строки.
// См. также описание функции file_get_contents().
$html = implode('', file('http://www.example.com/'));

// Используем необязательный параметр flags (начиная с PHP 5)
$trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
?>

Примечания

Внимание

При использовании SSL, Microsoft IIS нарушает протокол, закрывая соединение без отправки индикатора close_notify. PHP сообщит об этом как "SSL: Fatal Protocol Error" в тот момент, когда вы достигнете конца данных. Чтобы обойти это, вы должны установить error_reporting на уровень, исключающий E_WARNING. PHP умеет определять, что на стороне сервера находится проблемный IIS при открытии потока с помощью обертки https:// и не выводит предупреждение. Если вы используете fsockopen() для создания ssl:// сокета, вы сами отвечаете за определение и подавление этого предупреждения.

Смотрите также

  • readfile() - Выводит файл
  • fopen() - Открывает файл или URL
  • fsockopen() - Открывает соединение с интернет-сокетом или доменным сокетом Unix
  • popen() - Открывает файловый указатель процесса
  • file_get_contents() - Читает содержимое файла в строку
  • include - include
  • stream_context_create() - Создаёт контекст потока


Возвращает время последнего доступа к файлу

  • « file
  • filectime »
  • PHP Manual
  • Функции файловой системы
  • Возвращает время последнего доступа к файлу

fileatime

(PHP 4, PHP 5, PHP 7)

fileatime — Возвращает время последнего доступа к файлу

Описание

fileatime ( string $filename ) : int

Возвращает время последнего доступа к файлу.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает время, когда в последний раз был осуществлен доступ к указанному файлу, или FALSE в случае возникновения ошибки. Время возвращается в виде временной метки Unix.

Примеры

Пример #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));
}

?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание:

Предполагается, что время последнего доступа файла изменяется во время чтения блоков файла. Это может потребовать значительного количества системных ресурсов, особенно когда приложение обращается к большому числу файлов или каталогов.

С целью увеличения производительности некоторые файловые системы на платформах Unix могут быть примонтированы с отключенной возможностью обновления времени последнего доступа к файлам, примером этого могут служить каталоги для хранения сообщений USENET. В подобных случаях использование данной функции бессмысленно.

Замечание:

Учтите, что обработка времени может отличаться в различных файловых системах.

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • filemtime() - Возвращает время последнего изменения файла
  • fileinode() - Возвращает индексный дескриптор файла
  • date() - Форматирует вывод системной даты/времени


Возвращает время изменения индексного дескриптора файла

  • « fileatime
  • filegroup »
  • PHP Manual
  • Функции файловой системы
  • Возвращает время изменения индексного дескриптора файла

filectime

(PHP 4, PHP 5, PHP 7)

filectime — Возвращает время изменения индексного дескриптора файла

Описание

filectime ( string $filename ) : int

Возвращает время изменения индексного дескриптора (inode) файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает время последнего изменения файла, или FALSE в случае возникновения ошибки. Время возвращается в формате временной метки Unix.

Примеры

Пример #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));
}

?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание:

Примечание. На большинстве платформ Unix, файл считается измененным, если изменены данные его индексного дескриптора, что включает информацию о правах на файл, о его владельце, группе и другие метаданные, содержащиеся в индексном дескрипторе. Обратитесь также к описаниям функций filemtime() (данная функция полезна для создания сообщений типа: "Последнее обновление от ..." на веб-страницах) и fileatime().

Замечание:

Учтите также, что в некоторых описаниях работы Unix ctime представляется как время создания файла. Это неверно. В большинстве файловых систем Unix понятие времени создания файла отсутствует.

Замечание:

Учтите, что обработка времени может отличаться в различных файловых системах.

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • filemtime() - Возвращает время последнего изменения файла


Получает идентификатор группы файла

  • « filectime
  • fileinode »
  • PHP Manual
  • Функции файловой системы
  • Получает идентификатор группы файла

filegroup

(PHP 4, PHP 5, PHP 7)

filegroup — Получает идентификатор группы файла

Описание

filegroup ( string $filename ) : int

Возвращает идентификатор группы файла в виде числа. Для получения имени группы в виде строки используйте функцию posix_getgrgid().

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает идентификатор группы файла или FALSE в случае ошибки. Идентификатор группы возвращается в виде числа, для получения имени группы в виде строки используйте функцию posix_getgrgid(). В случае возникновения ошибки возвращается FALSE.

Примеры

Пример #1 Поиск группы файла

<?php
$filename = 'index.php';
print_r(posix_getgrgid(filegroup($filename)));
?>

Ошибки

В случае возникновения ошибки будет сгенерирована ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • fileowner() - Возвращает идентификатор владельца файла
  • posix_getgrgid() - Возвращает информацию о группе по её ID
  • safe_mode_gid


Возвращает индексный дескриптор файла

  • « filegroup
  • filemtime »
  • PHP Manual
  • Функции файловой системы
  • Возвращает индексный дескриптор файла

fileinode

(PHP 4, PHP 5, PHP 7)

fileinode — Возвращает индексный дескриптор файла

Описание

fileinode ( string $filename ) : int

Возвращает индексный дескриптор файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает номер индексного дескриптора файла, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Сравнение индексного дескриптора файла с текущим файлом

<?php
$filename = 'index.php';
if (getmyinode() == fileinode($filename)) {
    echo 'Вы проверяете текущий файл.';
}
?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • getmyinode() - Получает значение inode текущего скрипта
  • stat() - Возвращает информацию о файле


Возвращает время последнего изменения файла

  • « fileinode
  • fileowner »
  • PHP Manual
  • Функции файловой системы
  • Возвращает время последнего изменения файла

filemtime

(PHP 4, PHP 5, PHP 7)

filemtime — Возвращает время последнего изменения файла

Описание

filemtime ( string $filename ) : int

Данная функция возвращает время последней записи блоков файла, иначе говоря, изменения содержания файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает время последнего изменения указанного файла, или FALSE в случае возникновения ошибки. Время возвращается в формате временной метки Unix, который подходит для передачи в качестве аргумента функции date().

Примеры

Пример #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));
}
?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание:

Учтите, что обработка времени может отличаться в различных файловых системах.

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • filectime() - Возвращает время изменения индексного дескриптора файла
  • stat() - Возвращает информацию о файле
  • touch() - Устанавливает время доступа и модификации файла
  • getlastmod() - Получает время последней модификации страницы


Возвращает идентификатор владельца файла

  • « filemtime
  • fileperms »
  • PHP Manual
  • Функции файловой системы
  • Возвращает идентификатор владельца файла

fileowner

(PHP 4, PHP 5, PHP 7)

fileowner — Возвращает идентификатор владельца файла

Описание

fileowner ( string $filename ) : int

Возвращает идентификатор владельца файла

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает числовой идентификатор владельца указанного файла, или FALSE в случае возникновения ошибки. Чтобы получить имя владельца в виде строки, используйте функцию posix_getpwuid().

Примеры

Пример #1 Находим владельца файла

<?php
$filename = 'index.php';
print_r(posix_getpwuid(fileowner($filename)));
?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • filegroup() - Получает идентификатор группы файла
  • stat() - Возвращает информацию о файле
  • posix_getpwuid() - Возвращает информацию о пользователе, используя его ID


Возвращает информацию о правах на файл

  • « fileowner
  • filesize »
  • PHP Manual
  • Функции файловой системы
  • Возвращает информацию о правах на файл

fileperms

(PHP 4, PHP 5, PHP 7)

fileperms — Возвращает информацию о правах на файл

Описание

fileperms ( string $filename ) : int

Возвращает информацию о правах доступа на файл.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает права доступа на указанный файл в числовом виде. Младшие биты этого значения такие же, как и биты прав доступа для использования в функции chmod(), однако, на большинстве платформ, возвращаемое значение будет также включать информацию о типе файла, который передан в качестве параметра filename. Примеры ниже демонстрируют как проверить возвращаемое значение на наличие определенных прав и типа файла на POSIX-системах, включая Linux и macOS.

Для локальных файлов, возвращаемое значение является частью структуры st_mode, которая возвращается функцией С-библиотеки stat(). Какие в точности биты установлены может варьироваться от платформы к платформе. Рекомендуется поискать документацию к вашей платформе, если требуется обработка битов возвращаемого значения, не относящихся к правам доступа.

Примеры

Пример #1 Отображение прав доступа в виде восьмеричного числа

<?php
echo substr(sprintf('%o', fileperms('/tmp')), -4);
echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
?>

Результат выполнения данного примера:

1777
0644

Пример #2 Отображение полных прав доступа

<?php
$perms = fileperms('/etc/passwd');

switch ($perms & 0xF000) {
    case 0xC000: // сокет
        $info = 's';
        break;
    case 0xA000: // символическая ссылка
        $info = 'l';
        break;
    case 0x8000: // обычный
        $info = 'r';
        break;
    case 0x6000: // файл блочного устройства
        $info = 'b';
        break;
    case 0x4000: // каталог
        $info = 'd';
        break;
    case 0x2000: // файл символьного устройства
        $info = 'c';
        break;
    case 0x1000: // FIFO канал
        $info = 'p';
        break;
    default: // неизвестный
        $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;
?>

Результат выполнения данного примера:

-rw-r--r--

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • chmod() - Изменяет режим доступа к файлу
  • is_readable() - Определяет существование файла и доступен ли он для чтения
  • stat() - Возвращает информацию о файле


Возвращает размер файла

  • « fileperms
  • filetype »
  • PHP Manual
  • Функции файловой системы
  • Возвращает размер файла

filesize

(PHP 4, PHP 5, PHP 7)

filesize — Возвращает размер файла

Описание

filesize ( string $filename ) : int

Возвращает размер указанного файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает размер указанного файла в байтах или FALSE (и генерирует ошибку уровня E_WARNING) в случае возникновения ошибки.

Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2 Гб.

Примеры

Пример #1 Пример использования функции filesize()

<?php

// Пример вывода: Размер файла somefile.txt: 1024 байтов

$filename = 'somefile.txt';
echo 'Размер файла ' . $filename . ': ' . filesize($filename) . ' байтов';

?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • file_exists() - Проверяет существование указанного файла или каталога


Возвращает тип файла

  • « filesize
  • flock »
  • PHP Manual
  • Функции файловой системы
  • Возвращает тип файла

filetype

(PHP 4, PHP 5, PHP 7)

filetype — Возвращает тип файла

Описание

filetype ( string $filename ) : string

Возвращает тип указанного файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает тип файла. Возможными значениями являются fifo, char, dir, block, link, file, socket и unknown.

Возвращает FALSE в случае ошибки. filetype() также вызовет ошибку уровня E_NOTICE, если системный вызов stat завершится ошибкой или тип файла неизвестен.

Примеры

Пример #1 Пример использования функции filetype()

<?php

echo filetype('/etc/passwd');  // file
echo filetype('/etc/');        // dir

?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • is_file() - Определяет, является ли файл обычным файлом
  • is_link() - Определяет, является ли файл символической ссылкой
  • file_exists() - Проверяет существование указанного файла или каталога
  • mime_content_type() - Определяет MIME-тип содержимого файла
  • pathinfo() - Возвращает информацию о пути к файлу
  • stat() - Возвращает информацию о файле


Портируемая консультативная блокировка файлов

  • « filetype
  • fnmatch »
  • PHP Manual
  • Функции файловой системы
  • Портируемая консультативная блокировка файлов

flock

(PHP 4, PHP 5, PHP 7)

flock — Портируемая консультативная блокировка файлов

Описание

flock ( resource $handle , int $operation [, int &$wouldblock ] ) : bool

flock() позволяет осуществить простую модель чтения/записи, которая может быть использована практически на любой платформе (включая большинство вариантов Unix и даже Windows).

В версиях PHP до 5.3.2 блокировка освобождалась также вызовом функции fclose() (которая также вызывается автоматически по завершении скрипта).

PHP поддерживает портируемый способ консультативной блокировки (advisory locking) полностью всего файла (что означает, что все программы, осуществляющие доступ к файлу, должны использовать один и тот же способ блокировки, иначе блокировка не будет работать). По умолчанию данная функция будет ждать получения блокировки; это поведение можно изменить с помощью описанного ниже параметра LOCK_NB.

Список параметров

handle

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

operation

operation может принимать следующие значения:

  • LOCK_SH для получения разделяемой блокировки (чтение).
  • LOCK_EX для получения эксклюзивной блокировки (запись).
  • LOCK_UN для снятия блокировки (разделяемой или эксклюзивной).

Также возможно добавить константу LOCK_NB в качестве битовой маски к любой из вышеуказанных операций, если вы не хотите ждать, пока flock() получит блокировку.

wouldblock

Необязательный третий параметр будет установлен в 1, если блокировка будет блокирующей (код ошибки EWOULDBLOCK).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.22, 5.6.6 | Добавлена поддержка параметра wouldblock в Windows.
5.3.2 | Автоматическое снятие блокировки при закрытии было удалено. Снятие блокировки теперь всегда должно осуществляться вручную.

Примеры

Пример #1 Пример использования функции flock()

<?php

$fp = fopen("/tmp/lock.txt", "r+");

if (flock($fp, LOCK_EX)) { // выполняем эксклюзивную блокировку
    ftruncate($fp, 0); // очищаем файл
    fwrite($fp, "Что-нибудь пишем сюда\n");
    fflush($fp);        // очищаем вывод перед отменой блокировки
    flock($fp, LOCK_UN); // снимаем блокировку
} else {
    echo "Не удалось получить блокировку!";
}

fclose($fp);

?>

Пример #2 Использование flock() с параметром LOCK_NB

<?php
$fp = fopen('/tmp/lock.txt', 'r+');

/* Включаем параметр LOCK_NB в операции LOCK_EX */
if(!flock($fp, LOCK_EX | LOCK_NB)) {
    echo 'Не удалось получить блокировку';
    exit(-1);
}

/* ... */

fclose($fp);
?>

Примечания

Замечание:

В Windows flock() использует обязательную (mandatory) блокировку вместо консультативной. Обязательная блокировка также поддерживается на Linux и операционных системах, основанных на System V с помощью стандартного механизма, который предоставляет системный вызов fcntl(): то есть искомый файл должен иметь установленный бит доступа setgid и неустановленный бит группового выполнения. Для корректной работы этой схемы в Linux, файловая система также должна быть смонтирована с опцией mand.

Замечание:

Из-за того, что функции flock() необходим указатель на файл, вам может понадобиться воспользоваться специальным запирающим файлом для того, чтобы ограничить доступ к файлу, который вы намерены очищать, путём его открытия в режиме записи (используя "w" или "w+" в качестве аргумента функции fopen()).

Замечание:

Может быть использована только на дескрипторах локальных файлов, возвращенных функцией fopen(), или файловых дескрипторах пользовательских потоков, реализующих метод streamWrapper::stream_lock().

Внимание

Присвоение другого значения аргументу handle в последующем коде отменит существующую блокировку.

Внимание

В некоторых операционных системах flock() реализован на уровне процессов. При использовании многопоточных серверных API, таких как ISAPI, вы не можете полагаться на flock() для защиты ваших файлов от других PHP-скриптов, которые работают в параллельном потоке на том же сервере!

flock() не поддерживается на старых файловых системах вроде FAT и ее производных, так что всегда будет возвращать FALSE в этих окружениях.


Проверяет совпадение имени файла с шаблоном

  • « flock
  • fopen »
  • PHP Manual
  • Функции файловой системы
  • Проверяет совпадение имени файла с шаблоном

fnmatch

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fnmatch — Проверяет совпадение имени файла с шаблоном

Описание

fnmatch ( string $pattern , string $string [, int $flags = 0 ] ) : bool

fnmatch() проверяет, совпадает ли переданный параметр string с указанным шаблоном подстановок оболочки pattern.

Список параметров

pattern

Шаблон подстановки оболочки операционной системы.

string

Проверяемая строка. Данная функция особенно полезна для имен файлов, но также может быть использована с обычными строками.

Среднестатистический пользователь знаком с подстановками оболочки, как минимум с самыми простыми из них - '?' и '*', так что использование fnmatch() вместо preg_match() для поиска в пользовательской части сайта может быть намного удобнее для пользователей, не являющихся программистами.

flags

Значением параметра flags может быть любая комбинация следующих флагов, объединенных с помощью бинарного оператора ИЛИ (|).

Перечень возможных флагов для функции fnmatch()
Флаг | Описание
FNM_NOESCAPE | Отключить экранирование обратных слешей.
FNM_PATHNAME | Слеш в строке совпадает только со слешем в указанном шаблоне.
FNM_PERIOD | Ведущая точка в строке должна точно совпадать с точкой в указанном шаблоне.
FNM_CASEFOLD | Совпадение без учета регистра. Является частью расширения GNU.

Возвращаемые значения

При совпадении возвращает TRUE, иначе возвращает FALSE.

Список изменений

Версия | Описание
5.3.0 | Данная функция стала доступной на платформе Windows.

Примеры

Пример #1 Проверяет соответствие цвета шаблону подстановки

<?php
if (fnmatch("*gr[ae]y", $color)) {
  echo "какая-то форма серого цвета ...";
}
?>

Примечания

Внимание

На данный момент эта функция недоступна на POSIX-несовместимых системах, исключая Windows.

Смотрите также

  • glob() - Находит файловые пути, совпадающие с шаблоном
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • printf() - Выводит отформатированную строку
  • sprintf() - Возвращает отформатированную строку


Открывает файл или URL

  • « fnmatch
  • fpassthru »
  • PHP Manual
  • Функции файловой системы
  • Открывает файл или URL

fopen

(PHP 4, PHP 5, PHP 7)

fopen — Открывает файл или URL

Описание

fopen ( string $filename , string $mode [, bool $use_include_path = FALSE [, resource $context ]] ) : resource

fopen() закрепляет именованный ресурс, указанный в аргументе filename, за потоком.

Список параметров

filename

Если filename передан в форме "scheme://...", он считается URL'ом и PHP проведёт поиск обработчика протокола (также известного как "обертка") для этой схемы. Если ни одна обёртка не закреплена за протоколом, PHP выдаст замечание, чтобы помочь вам отследить потенциальную проблему в вашем скрипте и затем продолжит выполнение, как если бы filename указывал на обыкновенный файл.

Если PHP установлено, что filename указывает на локальный файл, тогда выполняется попытка открыть поток к этому файлу. Файл должен быть доступен PHP, так что вам следует убедиться, что права доступа на файл это разрешают. Если вы включили безопасный режим или open_basedir, то накладываются дальнейшие ограничения.

Если PHP установил, что filename указывает на зарегистрированный протокол и этот протокол зарегистрирован как сетевой URL, PHP выполняет проверку состояния директивы allow_url_fopen. Если она выключена, PHP выдаст предупреждение и вызов fopen закончится неудачей.

Замечание:

Список поддерживаемых протоколов доступен в разделе Поддерживаемые протоколы и обертки. Некоторые протоколы (обертки) поддерживают контекст и/или опции php.ini. Обратитесь к соответствующей странице с описанием используемого протокола для получения списка опций, которые могут быть установлены. (например, значение php.ini user_agent используется оберткой http).

На платформе Windows, необходимо экранировать все обратные слеши в пути к файлу или использовать прямые слеши.

<?php
$handle = fopen("c:\\folder\\resource.txt", "r");
?>

mode

Параметр mode указывает тип доступа, который вы запрашиваете у потока. Он может быть одним из следующих вариантов:

Список возможных режимов для fopen(), используя mode
mode | Описание
'r' | Открывает файл только для чтения; помещает указатель в начало файла.
'r+' | Открывает файл для чтения и записи; помещает указатель в начало файла.
'w' | Открывает файл только для записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует - пробует его создать.
'w+' | Открывает файл для чтения и записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует - пытается его создать.
'a' | Открывает файл только для записи; помещает указатель в конец файла. Если файл не существует - пытается его создать. В данном режиме функция fseek() не применима, записи всегда добавляются в конец.
'a+' | Открывает файл для чтения и записи; помещает указатель в конец файла. Если файл не существует - пытается его создать. В данном режиме функция fseek() влияет только на позицию чтения, записи всегда добавляются в конец.
'x' | Создаёт и открывает только для записи; помещает указатель в начало файла. Если файл уже существует, вызов fopen() закончится неудачей, вернёт FALSE и выдаст ошибку уровня E_WARNING. Если файл не существует, попытается его создать. Это эквивалентно указанию флагов O_EXCL|O_CREAT для внутреннего системного вызова open(2).
'x+' | Создаёт и открывает для чтения и записи; в остальном имеет то же поведение, что и'x'.
'c' | Открывает файл только для записи. Если файл не существует, то он создается. Если же файл существует, то он не обрезается (в отличие от 'w'), и вызов к этой функции не вызывает ошибку (также как и в случае с 'x'). Указатель на файл будет установлен на начало файла. Это может быть полезно при желании заблокировать файл (см. flock()) перед изменением, так как использование 'w' может обрезать файл еще до того как была получена блокировка (если вы желаете обрезать файл, можно использовать функцию ftruncate() после запроса на блокировку).
'c+' | Открывает файл для чтения и записи; в остальном имеет то же поведение, что и 'c'.
'e' | Установить флаг close-on-exec (закрыть при запуске) на открытый файловый дескриптор. Доступно только в PHP скомпилированном на системах поддерживающих POSIX.1-2008.

Замечание:

Разные семейства операционных систем имеют разные соглашения относительно окончания строк. Когда вы пишете текст и хотите вставить разрыв строки, вы должны использовать правильные символы (или символ) для вашей операционной системы. Системы семейства Unix используют \n в качестве символа конца строки, системы семейства Windows используют \r\n в качестве символов окончания строки и системы семейства Macintosh используют \r в качестве символа конца строки.

Если вы используете неверный символ конца строки при редактировании файлов, вы можете обнаружить, что при открытии эти файлы "странно выглядят".

Windows предлагает флаг режима текстовой трансляции ('t'), который автоматически переведёт \n в \r\n во время работы с файлом. И наоборот - вы также можете использовать 'b', чтобы принудительно включить бинарный режим, в котором ваши данные не будут преобразовываться. Чтобы использовать эти режимы, укажите 'b' или 't' последней буквой параметра mode.

Так как установка флага трансляции по умолчанию зависит от SAPI и используемой версии PHP, рекомендуем явно задавать указанный флаг из соображений портируемости. Вы должны использовать режим 't', если вы работаете с текстовыми файлами и используете \n для обозначения конца строки в вашем скрипте, но при этом предполагаете, что ваши файлы будут использоваться в таких приложениях, как "Блокнот". Во всех остальных случаях используйте флаг 'b'.

Если вы явно не укажете флаг 'b' во время работы с бинарными файлами, вы можете столкнуться со странными проблемами с вашими данными, включая поврежденные файлы изображений и проблемы с символами \r\n.

Замечание:

Из соображений портируемости, настоятельно рекомендуется всегда использовать флаг 'b' при открытии файлов с помощью fopen().

Замечание:

Кроме того, из соображений портируемости, также настойчиво рекомендуется переписать старый код, который полагается на режим 't', чтобы вместо этого он использовал правильные концы строк и режим 'b'.

use_include_path

Необязательный третий параметр use_include_path может быть установлен в '1' или TRUE, если вы также хотите провести поиск файла в include_path.

context

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Возвращаемые значения

Возвращает указатель на файл в случае успешной работы, или FALSE в случае возникновения ошибки

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Список изменений

Версия | Описание
7.0.16, 7.1.2 | Добавлена опция 'e'.
5.2.6 | Добавлены опции 'c' и 'c+'

Примеры

Пример #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");
?>

Примечания

Внимание

При использовании SSL, Microsoft IIS нарушает протокол, закрывая соединение без отправки индикатора close_notify. PHP сообщит об этом как "SSL: Fatal Protocol Error" в тот момент, когда вы достигнете конца данных. Чтобы обойти это, вы должны установить error_reporting на уровень, исключающий E_WARNING. PHP умеет определять, что на стороне сервера находится проблемный IIS при открытии потока с помощью обертки https:// и не выводит предупреждение. Если вы используете fsockopen() для создания ssl:// сокета, вы сами отвечаете за определение и подавление этого предупреждения.

Замечание: Когда опция safe mode включена, PHP проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Замечание:

Если вы сталкиваетесь с проблемами во время чтения или записи файлов, и вы используете PHP в виде серверного модуля, убедитесь в том, что процесс сервера имеет доступ к используемым вами файлам и директориям.

Замечание:

Данная функция также может принимать директории в качестве параметра filename. Если вы не знаете, является ли filename файлом или директорией, то вам может понадобиться использовать функцию is_dir() до вызова функции fopen().

Смотрите также

  • Поддерживаемые протоколы и обертки
  • fclose() - Закрывает открытый дескриптор файла
  • fgets() - Читает строку из файла
  • fread() - Бинарно-безопасное чтение файла
  • fwrite() - Бинарно-безопасная запись в файл
  • fsockopen() - Открывает соединение с интернет-сокетом или доменным сокетом Unix
  • file() - Читает содержимое файла и помещает его в массив
  • file_exists() - Проверяет существование указанного файла или каталога
  • is_readable() - Определяет существование файла и доступен ли он для чтения
  • stream_set_timeout() - Установить значение тайм-аута для потока
  • popen() - Открывает файловый указатель процесса
  • stream_context_create() - Создаёт контекст потока
  • umask() - Изменяет текущую umask
  • SplFileObject


Выводит все оставшиеся данные из файлового указателя

  • « fopen
  • fputcsv »
  • PHP Manual
  • Функции файловой системы
  • Выводит все оставшиеся данные из файлового указателя

fpassthru

(PHP 4, PHP 5, PHP 7)

fpassthru — Выводит все оставшиеся данные из файлового указателя

Описание

fpassthru ( resource $handle ) : int

Читает указанный файловый указатель с текущей позиции до EOF (конца файла) и записывает результат в буфер вывода.

Вам может понадобиться вызвать rewind(), чтобы сбросить файловый указатель на начало файла, если вы уже записывали данные в файл.

Если вы хотите просто сбросить содержимое файла в буфер вывода, предварительно не модифицируя его и не начиная с определённого смещения, вы можете воспользоваться readfile(), которая избавит вас от лишнего вызова fopen().

Список параметров

handle

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и все еще не закрытый функцией fclose()).

Возвращаемые значения

В случае возникновения ошибки fpassthru() возвращает FALSE. Иначе fpassthru() возвращает количество символов, прочтенных из handle и переданных на вывод.

Примеры

Пример #1 Использование fpassthru() с бинарными файлами

<?php

// открываем файл в бинарном режиме
$name = './img/ok.png';
$fp = fopen($name, 'rb');

// отправляем нужные заголовки
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

// сбрасываем картинку и останавливаем выполнение скрипта
fpassthru($fp);
exit;

?>

Примечания

Замечание:

При использовании fpassthru() на бинарном файле в Windows, вы должны убедиться в том, что открыли файл в бинарном режиме при помощи добавления b к режиму открытия файла, использованному в fopen().

Рекомендуется использовать флаг b при работе с бинарными файлами, даже если ваша система этого не требует, чтобы обеспечить более высокую портируемость скриптов.

Смотрите также

  • readfile() - Выводит файл
  • fopen() - Открывает файл или URL
  • popen() - Открывает файловый указатель процесса
  • fsockopen() - Открывает соединение с интернет-сокетом или доменным сокетом Unix


Форматирует строку в виде CSV и записывает её в файловый указатель

  • « fpassthru
  • fputs »
  • PHP Manual
  • Функции файловой системы
  • Форматирует строку в виде CSV и записывает её в файловый указатель

fputcsv

(PHP 5 >= 5.1.0, PHP 7)

fputcsv — Форматирует строку в виде CSV и записывает её в файловый указатель

Описание

fputcsv ( resource $handle , array $fields [, string $delimiter = "," [, string $enclosure = '"' [, string $escape_char = "\\" ]]] ) : int

fputcsv() форматирует строку (переданную в виде массива fields) в виде CSV и записывает её (заканчивая переводом строки) в указанный файл handle.

Список параметров

handle

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и все еще не закрытый функцией fclose()).

fields

Массив строк (string).

delimiter

Дополнительный параметр delimiter устанавливает разделитель полей (только один символ).

enclosure

Дополнительный параметр enclosure устанавливает ограничитель полей (только один символ).

escape_char

Необязательный параметр escape_char задает экранирующий символ (максимум один символ). Пустая строка ("") отключает проприетарный механизм экранирования.

Замечание:

Если символ enclosure содержится в поле, он будет экранирован путем его удвоения, если ему не предшествует escape_char.

Возвращаемые значения

Возвращает длину записанной строки или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.4.0 | Теперь параметр escape может принимать пустую строку для отключения проприетарного механизма экранирования.
5.5.4 | Добавлен параметр escape_char

Примеры

Пример #1 Пример использования fputcsv()

<?php

$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'),
    array('123', '456', '789'),
    array('"aaa"', '"bbb"')
);

$fp = fopen('file.csv', 'w');

foreach ($list as $fields) {
    fputcsv($fp, $fields);
}

fclose($fp);
?>

Вышеуказанный пример запишет в файл file.csv следующее:

aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""

Примечания

Замечание: Если у вас возникают проблемы с распознаванием PHP концов строк при чтении или создании файлов на Macintosh-совместимом компьютере, включение опции auto_detect_line_endings может помочь решить проблему.

Смотрите также

  • fgetcsv() - Читает строку из файла и производит разбор данных CSV


Псевдоним fwrite

  • « fputcsv
  • fread »
  • PHP Manual
  • Функции файловой системы
  • Псевдоним fwrite

fputs

(PHP 4, PHP 5, PHP 7)

fputs — Псевдоним fwrite()

Описание

Эта функция является псевдонимом: fwrite().


Бинарно-безопасное чтение файла

  • « fputs
  • fscanf »
  • PHP Manual
  • Функции файловой системы
  • Бинарно-безопасное чтение файла

fread

(PHP 4, PHP 5, PHP 7)

fread — Бинарно-безопасное чтение файла

Описание

fread ( resource $handle , int $length ) : string

fread() читает до length байт из файлового указателя handle и смещает указатель. Чтение останавливается как только было достигнуто одно из следующих условий:

  • было прочитано length байт
  • достигнут EOF (конец файла)
  • стал доступен пакет или произошел тайм-аут сокета (для сетевых потоков)
  • если читаемый поток является буферизованным и не представляет собой обычный файл, то за один раз максимум читается количество байт, равное размеру одной порции данных (обычно это 8192), однако, в зависимости от ранее буферизованных данных размер возвращаемых данных может быть больше размера одной порции данных.

Список параметров

handle

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

length

length указывает размер прочитанных данных в байтах.

Возвращаемые значения

Возвращает прочтенную строку или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Простой пример использования fread()

<?php
// получает содержимое файла в строку
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>

Пример #2 Пример бинарного чтения с помощью fread()

Внимание

На системах, которые различают бинарные и текстовые файлы (к примеру, Windows), файл должен быть открыт с использованием флага 'b' в параметре mode функции fopen().

<?php
$filename = "c:\\files\\somepic.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>

Пример #3 Примеры удаленного чтения с помощью fread()

Внимание

При чтении чего-либо отличного от локальных файлов, например потоков, возвращаемых при чтении удаленных файлов или из popen() и fsockopen(), чтение остановится после того, как пакет станет доступным. Это означает, что вы должны собирать данные вместе по кусочкам, как показано на примере ниже.

<?php
// Для PHP 5 и выше
$handle = fopen("http://www.example.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
?>
<?php
$handle = fopen("http://www.example.com/", "rb");
if (FALSE === $handle) {
    exit("Не удалось открыть поток по url адресу");
}

$contents = '';

while (!feof($handle)) {
    $contents .= fread($handle, 8192);
}
fclose($handle);
?>

Примечания

Замечание:

Если вы просто хотите получить содержимое файла в виде строки, используйте file_get_contents(), так как эта функция намного производительнее, чем код описанный выше.

Замечание:

Учтите, что fread() читает, начиная с текущей позиции файлового указателя. Используйте функцию ftell() для нахождения текущей позиции указателя и функцию rewind() для перемотки позиции указателя в начало.

Смотрите также

  • fwrite() - Бинарно-безопасная запись в файл
  • fopen() - Открывает файл или URL
  • fsockopen() - Открывает соединение с интернет-сокетом или доменным сокетом Unix
  • popen() - Открывает файловый указатель процесса
  • fgets() - Читает строку из файла
  • fgetss() - Читает строку из файла и удаляет HTML-теги
  • fscanf() - Обрабатывает данные из файла в соответствии с форматом
  • file() - Читает содержимое файла и помещает его в массив
  • fpassthru() - Выводит все оставшиеся данные из файлового указателя
  • ftell() - Возвращает текущую позицию указателя чтения/записи файла
  • rewind() - Сбрасывает курсор файлового указателя
  • unpack() - Распаковать данные из бинарной строки


Обрабатывает данные из файла в соответствии с форматом

  • « fread
  • fseek »
  • PHP Manual
  • Функции файловой системы
  • Обрабатывает данные из файла в соответствии с форматом

fscanf

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

fscanf — Обрабатывает данные из файла в соответствии с форматом

Описание

fscanf ( resource $handle , string $format [, mixed &$... ] ) : mixed

Функция fscanf() похожа на sscanf(), но берёт данные для обработки из файла, связанного с handle, и интерпретирует их согласно формату format, который описан в документации функции sprintf().

Любой пробельный символ в строке формата эквивалентен любому пробельному символу во входящем потоке. Это означает, что даже табуляция \t в строке формата может быть сопоставлена одному символу пробела во входящем потоке данных.

Каждый вызов fscanf() читает одну строку из файла.

Список параметров

handle

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

format

Строка формата состоит из нуля или более директив: обычные символы (за исключением %), которые просто выводятся без изменения и спецификаторы преобразования, каждый из которых требует передачи своего параметра.

Спецификаторы преобразования имеют следующий формат: %[argnum$][flags][width][.precision]specifier.

Argnum

Целое число, за которым следует знак доллара $, чтобы указать, какой числовой аргумент обрабатывать при преобразовании.

Флаги
Флаг | Описание
- Выравнивание по левому краю в пределах заданной ширины поля; По умолчанию выравнивание происходит по правому краю.
+ Печатает плюс + у не отрицательных чисел; По умолчанию знак печатается только у отрицательных чисел.
(space) | Дополняет результат пробелами. Это поведение по умолчанию.
0 | Дополняет числа нулями (только слева). Со спецификатором s также может дополнять нулями справа.
'(char) | Дополняет результат символом (char).

Ширина

Целое число, определяющее минимальное количество символов, которое будет напечатано.

Точность

Точка . с последующим целым числом, работающая по разному для разных спецификаторов:

  • Для спецификаторов e, E, f и F: задает количество цифр после десятичной запятой (по умолчанию 6).
  • Для спецификаторов g и G: задает максимальное значение печатаемых значащих цифр.
  • Для спецификатора s: задает ограничение максимального количества символов в строке, которые будут выведены.

Замечание: Если указана точка без последующего значения точности, то точность будет считаться за 0.

Замечание: Попытка использовать спецификатор позиции со значением больше, чем PHP_INT_MAX приведет к выводу предупреждения.

Спецификаторы
Спецификатор | Описание
% Символ процента. Аргументы не требуются.
b | Аргумент рассматривается как целое число и печатается в бинарном представлении.
c | Аргумент рассматривается как целое число и печатается как символ из таблицы ASCII с соответствующим кодом.
d | Аргумент рассматривается как целое число и печатается как целое число со знаком.
e | Аргумент считается за число в научной нотации (т.е. 1.2e+2). Начиная с PHP 5.2.1, спецификатор точности задает количество цифр после десятичной запятой. В более ранних версиях он задавал общее количество значащих цифр (т.е. после запятой выводилось на 1 символ меньше).
E | Аналогично спецификатору e, но использует заглавные символы (т.е. 1.2E+2).
f | Аргумент считается за число с плавающей точкой (с учетом локали).
F | Аргумент считается за число с плавающей точкой (без учета локали). Доступно с PHP 5.0.3.
g

Общий формат.

Пусть P равно точности, если она не равно нулю, 6 - если точность не задана и 1, если точность задана как 0. Тогда, если преобразование со стилем "E" будет иметь показатель степени X:

Если P > X ? ?4, преобразование будет в стиле "f" и точность будет P ? (X + 1). В обратном случае, преобразование будет в стиле "e" и точность будет P ? 1.

G | Аналогично спецификатору g, но использует E и F.
o | Аргумент рассматривается как целое число и печатается в восмеричном представлении.
s | Аргумент рассматривается и печатается как строка.
u | Аргумент рассматривается как целое число и печатается как беззаковое целое число.
x | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в нижнем регистре).
X | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в верхнем регистре).

Внимание

Спецификатор c игнорирует значения ширины и дополнения

Внимание

Попытка использовать спецификаторы с указанием ширины для строки в многобайтовой кодировке может привести к неожиданным результатам.

Переменные будут приведены к подходящему для спецификатора типу:

Обработка типов
Тип | Спецификатор
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

...

Необязательные присваиваемые значения.

Возвращаемые значения

Если в функцию переданы только два аргумента, обработанные значения будут возвращены в виде массива. В ином случае, если были переданы необязательные аргументы, функция вернёт количество присвоенных значений. Необязательные аргументы должны быть переданы по ссылке.

Примеры

Пример #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

Смотрите также

  • fread() - Бинарно-безопасное чтение файла
  • fgets() - Читает строку из файла
  • fgetss() - Читает строку из файла и удаляет HTML-теги
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • printf() - Выводит отформатированную строку
  • sprintf() - Возвращает отформатированную строку


Устанавливает смещение в файловом указателе

  • « fscanf
  • fstat »
  • PHP Manual
  • Функции файловой системы
  • Устанавливает смещение в файловом указателе

fseek

(PHP 4, PHP 5, PHP 7)

fseek — Устанавливает смещение в файловом указателе

Описание

fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] ) : int

Устанавливает смещение в файле, на который ссылается handle. Новое смещение, измеряемое в байтах от начала файла, получается путём прибавления параметра offset к позиции, указанной в параметре whence.

В общей сложности разрешается указывать смещение за пределами конца файла, если данные потом будут записаны в этой позиции, чтение любой незаписанной области между концом файла и указанной позицией возвратит нулевые байты. Однако, определенные потоки могут не поддерживать это поведение, особенно если у них есть основное хранилище фиксированного размера.

Список параметров

handle

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

offset

Смещение.

Для смещения позиции перед концом файла необходимо передать отрицательное значение offset и установить параметр whence в SEEK_END.

whence

Значениями whence являются:

  • SEEK_SET - Установить смещение в offset байт.
  • SEEK_CUR - Установить смещение в текущее положение плюс offset.
  • SEEK_END - Установить смещение в конец файла плюс offset.

Возвращаемые значения

В случае успеха возвращает 0; в противном случае возвращает -1.

Примеры

Пример #1 Пример использования функции fseek()

<?php

$fp = fopen('somefile.txt', 'r');

// читаем немного данных
$data = fgets($fp, 4096);

// перемещаемся назад к началу файла
// то же самое, что и rewind($fp);
fseek($fp, 0);

?>

Примечания

Замечание:

Если файл открыт в режиме "записи в конец" (a или a+), любые записываемые в файл данные будут записываться в конец, вне зависимости от позиции файла, а результат вызова fseek() будет не определен.

Замечание:

Не все потоки поддерживают смещение указателя. Для потоков, не поддерживающих эту операцию, смещение вперед осуществляется чтением и отбрасыванием данных, другие формы смещения закончатся ошибкой.

Смотрите также

  • ftell() - Возвращает текущую позицию указателя чтения/записи файла
  • rewind() - Сбрасывает курсор файлового указателя


Получает информацию о файле, используя открытый файловый указатель

  • « fseek
  • ftell »
  • PHP Manual
  • Функции файловой системы
  • Получает информацию о файле, используя открытый файловый указатель

fstat

(PHP 4, PHP 5, PHP 7)

fstat — Получает информацию о файле, используя открытый файловый указатель

Описание

fstat ( resource $handle ) : array

Собирает статистическую информацию об открытом файле по файловому указателю handle. Эта функция похожа на stat(), за исключением того, что она работает с открытым файловым указателем, а не именем файла.

Список параметров

handle

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

Возвращаемые значения

Возвращает массив со статистической информацией файла; формат массива подробно описан на странице описания функции 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
)

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.


Возвращает текущую позицию указателя чтения/записи файла

  • « fstat
  • ftruncate »
  • PHP Manual
  • Функции файловой системы
  • Возвращает текущую позицию указателя чтения/записи файла

ftell

(PHP 4, PHP 5, PHP 7)

ftell — Возвращает текущую позицию указателя чтения/записи файла

Описание

ftell ( resource $handle ) : int

Возвращает позицию файлового указателя handle.

Список параметров

handle

Файловый указатель должен быть действующим указателем на поток, открытый функциями fopen() или popen(). ftell() возвращает неопределённые результаты для потоков, разрешающих только запись в конец (открытых с флагом "a").

Возвращаемые значения

Возвращает позицию файлового указателя handle в виде целого числа, то есть его смещение в файловом потоке.

При возникновении ошибки возвращает FALSE.

Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2 Гб.

Примеры

Пример #1 Пример использования функции ftell()

<?php

// открываем файл и читаем немного данных
$fp = fopen("/etc/passwd", "r");
$data = fgets($fp, 12);

// где же мы ?
echo ftell($fp); // 11

fclose($fp);

?>

Смотрите также

  • fopen() - Открывает файл или URL
  • popen() - Открывает файловый указатель процесса
  • fseek() - Устанавливает смещение в файловом указателе
  • rewind() - Сбрасывает курсор файлового указателя


Урезает файл до указанной длины

  • « ftell
  • fwrite »
  • PHP Manual
  • Функции файловой системы
  • Урезает файл до указанной длины

ftruncate

(PHP 4, PHP 5, PHP 7)

ftruncate — Урезает файл до указанной длины

Описание

ftruncate ( resource $handle , int $size ) : bool

Принимает файловый указатель handle и урезает соответствующий файл до размера size.

Список параметров

handle

Файловый указатель.

Замечание:

handle должен быть открыт для записи.

size

Размер файла, до которого он будет обрезан.

Замечание:

Если size больше текущего размера файла, то файл будет дополнен нулевыми байтами.

Если size меньше текущего размера файла, то файл будет обрезан до этого размера.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример обрезания файла

<?php
$filename = 'lorem_ipsum.txt';

$handle = fopen($filename, 'r+');
ftruncate($handle, rand(1, filesize($filename)));
rewind($handle);
echo fread($handle, filesize($filename));
fclose($handle);
?>

Примечания

Замечание:

Файловый указатель не меняется.

Смотрите также

  • fopen() - Открывает файл или URL
  • fseek() - Устанавливает смещение в файловом указателе


Бинарно-безопасная запись в файл

  • « ftruncate
  • glob »
  • PHP Manual
  • Функции файловой системы
  • Бинарно-безопасная запись в файл

fwrite

(PHP 4, PHP 5, PHP 7)

fwrite — Бинарно-безопасная запись в файл

Описание

fwrite ( resource $handle , string $string [, int $length ] ) : int

fwrite() записывает содержимое string в файловый поток handle.

Список параметров

handle

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

string

Записываемая строка.

length

Если передан аргумент length, запись остановится после того, как length байтов будут записаны или будет достигнут конец строки string, смотря что произойдёт раньше.

Учтите, что если указан аргумент length, то директива magic_quotes_runtime будет проигнорирована, и строка string не будет очищена от слешей.

Возвращаемые значения

fwrite() возвращает количество записанных байт или FALSE в случае ошибки.

Примечания

Замечание:

Запись в сетевой поток может прекратиться до того, как будут записаны все данные. Это можно контролировать с помощью проверки возвращаемого значения функции fwrite():

<?php
function fwrite_stream($fp, $string) {
    for ($written = 0; $written < strlen($string); $written += $fwrite) {
        $fwrite = fwrite($fp, substr($string, $written));
        if ($fwrite === false) {
            return $written;
        }
    }
    return $written;
}
?>

Замечание:

В системах, различающих двоичные и текстовые файлы (к примеру, Windows), файл должен быть открыт используя флаг 'b' в конце аргумента mode функции fopen().

Замечание:

Если дескриптор handle был открыт функцией fopen() в режиме "добавление в конец", то вызовы fwrite() будут атомарными (за исключением случая, если размер string превысит размер блока файловой системы, на некоторых платформах, и пока файл хранится на локальной файловой системе). То есть нет необходимости блокировать ресурс с помощью flock() перед вызовом fwrite(), и все данные будут записаны без прерываний.

Замечание:

При повторной записи в файловый указатель, данные будут добавлены в конец содержимого файла:

<?php
$fp = fopen('data.txt', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);

// содержимое 'data.txt' теперь 123, а не 23!
?>

Примеры

Пример #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() - Открывает файл или URL
  • fsockopen() - Открывает соединение с интернет-сокетом или доменным сокетом Unix
  • popen() - Открывает файловый указатель процесса
  • file_get_contents() - Читает содержимое файла в строку
  • pack() - Упаковать данные в бинарную строку


Находит файловые пути, совпадающие с шаблоном

  • « fwrite
  • is_dir »
  • PHP Manual
  • Функции файловой системы
  • Находит файловые пути, совпадающие с шаблоном

glob

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

glob — Находит файловые пути, совпадающие с шаблоном

Описание

glob ( string $pattern [, int $flags = 0 ] ) : array

Функция glob() ищет все пути, совпадающие с шаблоном pattern согласно правилам, используемым в функции glob() библиотеки libc, которые похожи на правила, используемые большинством распространённых оболочек.

Список параметров

pattern

Шаблон. Не происходит раскрытие тильды и подстановка параметров.

Специальные символы:

  • * - Соответствует нулю или большему количеству символов.
  • ? - Соответствует ровно одному символу (любому символу).
  • [...] - Соответствует одному символу из группы. Если первый символ !, то соответствует любому символу, не входящему в группу
  • \ - Экранирует следующий символ, кроме случаев, когда используется флаг GLOB_NOESCAPE.

flags

Допустимые флаги:

  • GLOB_MARK - Добавляет слеш к каждой возвращаемой директории.
  • GLOB_NOSORT - Возвращает файлы в том виде, в котором они содержатся в директории (без сортировки). Если этот флаг не указан, то имена сортируются по алфавиту.
  • GLOB_NOCHECK - Возвращает шаблон поиска, если с его помощью не был найден ни один файл.
  • GLOB_NOESCAPE - Обратные слеши не экранируют метасимволы.
  • GLOB_BRACE - Раскрывает {a,b,c} для совпадения с 'a', 'b' или 'c'.
  • GLOB_ONLYDIR - Возвращает только директории, совпадающие с шаблоном.
  • GLOB_ERR - Останавливается при ошибках чтения (например, директории без права чтения), по умолчанию ошибки игнорируются.

Возвращаемые значения

Возвращает массив, который содержит совпадающие файлы/директории, пустой массив в случае отсутствия совпадения или FALSE в случае ошибки.

Замечание:

На некоторых системах невозможно отличить отсутствие совпадения и ошибку.

Список изменений

Версия | Описание
5.1.0 | Добавлена константа GLOB_ERR

Примеры

Пример #1 Удобный способ, как при помощи glob() можно заменить opendir() и её аналоги.

<?php
foreach (glob("*.txt") as $filename) {
    echo "$filename размер " . filesize($filename) . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

funclist.txt размер 44686
funcsummary.txt размер 267625
quickref.txt размер 137820

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Эта функция недоступна на некоторых системах (например, старой Sun OS).

Замечание: Флаг GLOB_BRACE недоступен на некоторых не GNU-системах, например, Solaris.

Смотрите также

  • opendir() - Открывает дескриптор каталога
  • readdir() - Получает элемент каталога по его дескриптору
  • closedir() - Закрывает дескриптор каталога
  • fnmatch() - Проверяет совпадение имени файла с шаблоном


Определяет, является ли имя файла директорией

  • « glob
  • is_executable »
  • PHP Manual
  • Функции файловой системы
  • Определяет, является ли имя файла директорией

is_dir

(PHP 4, PHP 5, PHP 7)

is_dir — Определяет, является ли имя файла директорией

Описание

is_dir ( string $filename ) : bool

Определяет, является ли имя файла директорией.

Список параметров

filename

Путь к файлу. Если filename является относительным именем, он будет проверяться относительно текущей рабочей директории. Если filename является символической или жесткой ссылкой, то ссылка будет раскрыта и проверена. При включенном безопасном режиме или open_basedir могут применяться дальнейшие ограничения.

Возвращаемые значения

Возвращает TRUE, если файл существует и является директорией, иначе возвращается FALSE.

Примеры

Пример #1 Пример использования функции is_dir()

<?php
var_dump(is_dir('a_file.txt'));
var_dump(is_dir('bogus_dir/abc'));

var_dump(is_dir('..')); // на одну директорию выше
?>

Результат выполнения данного примера:

bool(false)
bool(false)
bool(true)

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • chdir() - Изменяет каталог
  • dir() - Возвращает экземпляр класса Directory
  • opendir() - Открывает дескриптор каталога
  • is_file() - Определяет, является ли файл обычным файлом
  • is_link() - Определяет, является ли файл символической ссылкой


Определяет, является ли файл исполняемым

  • « is_dir
  • is_file »
  • PHP Manual
  • Функции файловой системы
  • Определяет, является ли файл исполняемым

is_executable

(PHP 4, PHP 5, PHP 7)

is_executable — Определяет, является ли файл исполняемым

Описание

is_executable ( string $filename ) : bool

Определяет, является ли файл исполняемым.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает TRUE, если файл существует и является исполняемым, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования функции is_executable()

<?php

$file = '/home/vincent/somefile.sh';

if (is_executable($file)) {
    echo $file.' является исполняемым';
} else {
    echo $file.' не является исполняемым';
}

?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • is_file() - Определяет, является ли файл обычным файлом
  • is_link() - Определяет, является ли файл символической ссылкой


Определяет, является ли файл обычным файлом

  • « is_executable
  • is_link »
  • PHP Manual
  • Функции файловой системы
  • Определяет, является ли файл обычным файлом

is_file

(PHP 4, PHP 5, PHP 7)

is_file — Определяет, является ли файл обычным файлом

Описание

is_file ( string $filename ) : bool

Определяет, является ли файл обычным файлом.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает TRUE, если файл существует и является обычным файлом, иначе возвращает FALSE.

Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2 Гб.

Примеры

Пример #1 Пример использования is_file()

<?php
var_dump(is_file('a_file.txt')) . "\n";
var_dump(is_file('/usr/bin/')) . "\n";
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • is_link() - Определяет, является ли файл символической ссылкой


Определяет, является ли файл символической ссылкой

  • « is_file
  • is_readable »
  • PHP Manual
  • Функции файловой системы
  • Определяет, является ли файл символической ссылкой

is_link

(PHP 4, PHP 5, PHP 7)

is_link — Определяет, является ли файл символической ссылкой

Описание

is_link ( string $filename ) : bool

Определяет, является ли файл символической ссылкой.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает TRUE, если файл существует и является символической ссылкой, иначе возвращает FALSE.

Примеры

Пример #1 Создаем файл и подтверждаем, что он является символической ссылкой

<?php
$link = 'uploads';

if (is_link($link)) {
    echo(readlink($link));
} else {
    symlink('uploads.php', $link);
}
?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • is_file() - Определяет, является ли файл обычным файлом
  • readlink() - Возвращает файл, на который указывает символическая ссылка


Определяет существование файла и доступен ли он для чтения

  • « is_link
  • is_uploaded_file »
  • PHP Manual
  • Функции файловой системы
  • Определяет существование файла и доступен ли он для чтения

is_readable

(PHP 4, PHP 5, PHP 7)

is_readable — Определяет существование файла и доступен ли он для чтения

Описание

is_readable ( string $filename ) : bool

Возвращает TRUE, если файл существует и доступен для чтения.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает TRUE, если файл или директория, указанная в filename существует и доступна для чтения, иначе возвращает FALSE.

Примеры

Пример #1 is_readable() example

<?php
$filename = 'test.txt';
if (is_readable($filename)) {
    echo 'Файл доступен для чтения';
} else {
    echo 'Файл недоступен для чтения';
}
?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Не забывайте, что PHP может обращаться к файлам от имени пользователя, от которого запущен веб-сервер (часто 'nobody'). До версии PHP 5.1.5 ограничения безопасного режима не принимались во внимание.

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Замечание:

Проверка производится с использованием реальных UID/GID вместо эффективных.

Эта функция может возвращать TRUE для директорий. Чтобы отличить файл от директории можно воспользоваться функцией is_dir().

Смотрите также

  • is_writable() - Определяет, доступен ли файл для записи
  • file_exists() - Проверяет существование указанного файла или каталога
  • fgets() - Читает строку из файла


Определяет, был ли файл загружен при помощи HTTP POST

  • « is_readable
  • is_writable »
  • PHP Manual
  • Функции файловой системы
  • Определяет, был ли файл загружен при помощи HTTP POST

is_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

is_uploaded_file — Определяет, был ли файл загружен при помощи HTTP POST

Описание

is_uploaded_file ( string $filename ) : bool

Возвращает TRUE, если файл filename был загружен при помощи HTTP POST. Это полезно для удостоверения того, что злонамеренный пользователь не пытается обмануть скрипт так, чтобы он работал с файлами, с которыми работать не должен - к примеру, /etc/passwd.

Такие проверки особенно полезны, если существует вероятность того, что операции над файлом могут показать его содержимое пользователю или даже другим пользователям той же системы.

Для правильной работы функции is_uploaded_file() нужен аргумент вида $_FILES['userfile']['tmp_name'], - имя загруженного файла на клиентской машине $_FILES['userfile']['name'] не подходит.

Список параметров

filename

Имя проверяемого файла.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования функции is_uploaded_file()

<?php

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
   echo "Файл ". $_FILES['userfile']['name'] ." успешно загружен.\n";
   echo "Отображаем содержимое\n";
   readfile($_FILES['userfile']['tmp_name']);
} else {
   echo "Возможная атака с участием загрузки файла: ";
   echo "файл '". $_FILES['userfile']['tmp_name'] . "'.";
}

?>

Смотрите также

  • move_uploaded_file() - Перемещает загруженный файл в новое место
  • $_FILES
  • Простой пример использования можно найти в разделе "Загрузка файлов на сервер".


Определяет, доступен ли файл для записи

  • « is_uploaded_file
  • is_writeable »
  • PHP Manual
  • Функции файловой системы
  • Определяет, доступен ли файл для записи

is_writable

(PHP 4, PHP 5, PHP 7)

is_writable — Определяет, доступен ли файл для записи

Описание

is_writable ( string $filename ) : bool

Возвращает TRUE, если файл filename существует и доступен для записи. Аргумент filename может быть именем директории, что позволяет вам проверять директории на доступность для записи.

Не забывайте, что PHP может обращаться к файлу от имени того пользователя, от которого запущен веб-сервер (обычно 'nobody'). Ограничения безопасного режима не принимаются во внимание.

Список параметров

filename

Проверяемый файл.

Возвращаемые значения

Возвращает TRUE, если filename существует и доступен для записи.

Примеры

Пример #1 Пример использования is_writable()

<?php
$filename = 'test.txt';
if (is_writable($filename)) {
    echo 'Файл доступен для записи';
} else {
    echo 'Файл недоступен для записи';
}
?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • is_readable() - Определяет существование файла и доступен ли он для чтения
  • file_exists() - Проверяет существование указанного файла или каталога
  • fwrite() - Бинарно-безопасная запись в файл


Псевдоним is_writable

  • « is_writable
  • lchgrp »
  • PHP Manual
  • Функции файловой системы
  • Псевдоним is_writable

is_writeable

(PHP 4, PHP 5, PHP 7)

is_writeable — Псевдоним is_writable()

Описание

Эта функция является псевдонимом: is_writable().


Изменяет группу, которой принадлежит символическая ссылка

  • « is_writeable
  • lchown »
  • PHP Manual
  • Функции файловой системы
  • Изменяет группу, которой принадлежит символическая ссылка

lchgrp

(PHP 5 >= 5.1.3, PHP 7)

lchgrp — Изменяет группу, которой принадлежит символическая ссылка

Описание

lchgrp ( string $filename , mixed $group ) : bool

Пытается изменить группу, которой принадлежит символическая ссылка filename на указанную в group.

Только суперпользователь может изменять группу символической ссылки произвольно, другие пользователи могут изменять группу символической ссылки на какую-либо, в которой пользователь является членом.

Список параметров

filename

Путь к ссылке.

group

Группа, указанная по имени или номеру.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример изменения группы символической ссылки

<?php
$target = 'output.php';
$link = 'output.html';
symlink($target, $link);

lchgrp($link, 8);
?>

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Замечание: Для Windows-платформ эта функция не реализована.

Смотрите также

  • chgrp() - Изменяет группу файла
  • lchown() - Изменяет владельца символической ссылки
  • chown() - Изменяет владельца файла
  • chmod() - Изменяет режим доступа к файлу


Изменяет владельца символической ссылки

  • « lchgrp
  • link »
  • PHP Manual
  • Функции файловой системы
  • Изменяет владельца символической ссылки

lchown

(PHP 5 >= 5.1.3, PHP 7)

lchown — Изменяет владельца символической ссылки

Описание

lchown ( string $filename , mixed $user ) : bool

Пытается изменить владельца символической ссылки filename на указанного в user пользователя.

Только суперпользователь может изменять владельца символической ссылки.

Список параметров

filename

Путь к файлу.

user

Имя пользователя или номер.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Изменение владельца символической ссылки

<?php
$target = 'output.php';
$link = 'output.html';
symlink($target, $link);

lchown($link, 8);
?>

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Замечание: Для Windows-платформ эта функция не реализована.

Смотрите также

  • chown() - Изменяет владельца файла
  • lchgrp() - Изменяет группу, которой принадлежит символическая ссылка
  • chgrp() - Изменяет группу файла
  • chmod() - Изменяет режим доступа к файлу


Создаёт жёсткую ссылку

  • « lchown
  • linkinfo »
  • PHP Manual
  • Функции файловой системы
  • Создаёт жёсткую ссылку

link

(PHP 4, PHP 5, PHP 7)

link — Создаёт жёсткую ссылку

Описание

link ( string $target , string $link ) : bool

link() создаёт жесткую ссылку.

Список параметров

target

Цель ссылки.

link

Имя ссылки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Эта функция стала доступна на Windows системах (Vista, Server 2008 и выше).

Примеры

Пример #1 Создание простой жёсткой ссылки

<?php
$target = 'source.ext'; // Это уже существующий файл
$link = 'newfile.ext'; // Это файл, который вы хотите привязать к первому

link($target, $link);
?>

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Только для Windows: Для данной функции необходимо, чтобы PHP был запущен в привилегированном режиме или с отключенным UAC.

Смотрите также

  • symlink() - Создаёт символическую ссылку
  • readlink() - Возвращает файл, на который указывает символическая ссылка
  • linkinfo() - Возвращает информацию о ссылке


Возвращает информацию о ссылке

  • « link
  • lstat »
  • PHP Manual
  • Функции файловой системы
  • Возвращает информацию о ссылке

linkinfo

(PHP 4, PHP 5, PHP 7)

linkinfo — Возвращает информацию о ссылке

Описание

linkinfo ( string $path ) : int

Возвращает информацию о ссылке.

Эта функция используется для определения, существует ли ссылка (на которую указывает path) на самом деле (используя тот же метод, что и макрос S_ISLNK, определённый в stat.h).

Список параметров

path

Путь к ссылке.

Возвращаемые значения

linkinfo() возвращает поле st_dev структуры stat из Unix C, которую возвращает системный вызов lstat. Возвращает 0 или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.0 | Эта функция теперь доступна и на Windows платформах (Vista, Server 2008 и выше).

Примеры

Пример #1 Пример использования функции linkinfo()

<?php

echo linkinfo('/vmlinuz'); // 835

?>

Смотрите также

  • symlink() - Создаёт символическую ссылку
  • link() - Создаёт жёсткую ссылку
  • readlink() - Возвращает файл, на который указывает символическая ссылка


Возвращает информацию о файле или символической ссылке

  • « linkinfo
  • mkdir »
  • PHP Manual
  • Функции файловой системы
  • Возвращает информацию о файле или символической ссылке

lstat

(PHP 4, PHP 5, PHP 7)

lstat — Возвращает информацию о файле или символической ссылке

Описание

lstat ( string $filename ) : array

Собирает статистику на файл или символическую ссылку с именем filename.

Список параметров

filename

Путь к файлу или символической ссылке.

Возвращаемые значения

Обратитесь к странице руководства функции stat() для получения информации о структуре массива, который возвращает lstat(). Эта функция идентична функции stat(), за исключением того, что если filename является символической ссылкой, возвращается статус символической ссылки, а не того файла, на который она указывает.

Примеры

Пример #1 Сравнение функций stat() и lstat()

<?php
symlink('uploads.php', 'uploads');

// Отличия между uploads.php и uploads
array_diff(stat('uploads'), lstat('uploads'));
?>

Результатом выполнения данного примера будет что-то подобное:

Отличия в возвращаемых результатах между этими файлами.

Array
(
    [ino] => 97236376
    [mode] => 33188
    [size] => 34
    [atime] => 1223580003
    [mtime] => 1223581848
    [ctime] => 1223581848
    [blocks] => 8
)

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • stat() - Возвращает информацию о файле


Создаёт директорию

  • « lstat
  • move_uploaded_file »
  • PHP Manual
  • Функции файловой системы
  • Создаёт директорию

mkdir

(PHP 4, PHP 5, PHP 7)

mkdir — Создаёт директорию

Описание

mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = FALSE [, resource $context ]]] ) : bool

Пытается создать директорию, заданную в pathname.

Список параметров

pathname

Путь к директории.

mode

По умолчанию принимает значение 0777, что означает самые широкие права. Больше информации о режимах доступа можно узнать на странице руководства функции chmod().

Замечание:

Аргумент mode игнорируется в Windows.

Обратите внимание, что аргумент mode необходимо задавать в виде восьмеричного числа (первой цифрой должен быть ноль). На аргумент mode также влияет текущее значение umask, которое можно изменить при помощи umask().

recursive

Разрешает создание вложенных директорий, указанных в pathname.

context

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования функции mkdir()

<?php
mkdir("/path/to/my/dir", 0700);
?>

Пример #2 Использование mkdir() с параметром recursive

<?php
// Желаемая структура папок
$structure = './depth1/depth2/depth3/';

// Для создания вложенной структуры необходимо указать параметр
// $recursive в mkdir().

if (!mkdir($structure, 0777, true)) {
    die('Не удалось создать директории...');
}

// ...
?>

Ошибки

Выдает ошибку уровня E_WARNING, если директория уже существует.

Выдает ошибку уровня E_WARNING, если соответствующие права доступа блокируют создание директории.

Примечания

Замечание: Когда опция safe mode включена, PHP проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • rmdir() - Удаляет директорию


Перемещает загруженный файл в новое место

  • « mkdir
  • parse_ini_file »
  • PHP Manual
  • Функции файловой системы
  • Перемещает загруженный файл в новое место

move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

move_uploaded_file — Перемещает загруженный файл в новое место

Описание

move_uploaded_file ( string $filename , string $destination ) : bool

Эта функция проверяет, является ли файл filename загруженным на сервер (переданным по протоколу HTTP POST). Если файл действительно загружен на сервер, он будет перемещён в место, указанное в аргументе destination.

Такая проверка особенно важна в том случае, если существует шанс того, что какие-либо действия, производимые над загруженным файлом, могут открыть его содержимое пользователю или даже другим пользователям системы.

Список параметров

filename

Путь к загруженному файлу.

destination

Путь, по которому необходимо переместить файл.

Возвращаемые значения

В случае успеха возвращает TRUE.

Если filename не является загруженным файлом, никаких действий не предпринимается и move_uploaded_file() возвращает FALSE.

Если filename является загруженным файлом, но не может быть перемещён по каким-либо причинам, никаких действий не предпринимается и move_uploaded_file() возвращает FALSE. Кроме того, отображается предупреждение.

Примеры

Пример #1 Загрузка нескольких файлов

<?php
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
        // basename() может предотвратить атаку на файловую систему;
        // может быть целесообразным дополнительно проверить имя файла
        $name = basename($_FILES["pictures"]["name"][$key]);
        move_uploaded_file($tmp_name, "$uploads_dir/$name");
    }
}
?>

Примечания

Замечание:

Функция move_uploaded_file() принимает во внимание как безопасный режим, так и open_basedir. Тем не менее, ограничения накладываются лишь на параметр destination, чтобы разрешить перемещение загруженных файлов, так как параметр filename может конфликтовать с этими ограничениями. move_uploaded_file() гарантирует безопасность этой операции, работая лишь с теми файлами, которые были загружены через PHP.

Внимание

Если результирующий файл уже существует, он будет перезаписан.

Смотрите также

  • is_uploaded_file() - Определяет, был ли файл загружен при помощи HTTP POST
  • rename() - Переименовывает файл или директорию
  • Простой пример использования этой функции можно найти в разделе "Загрузка файлов на сервер"


Обрабатывает конфигурационный файл

  • « move_uploaded_file
  • parse_ini_string »
  • PHP Manual
  • Функции файловой системы
  • Обрабатывает конфигурационный файл

parse_ini_file

(PHP 4, PHP 5, PHP 7)

parse_ini_file — Обрабатывает конфигурационный файл

Описание

parse_ini_file ( string $filename [, bool $process_sections = FALSE [, int $scanner_mode = INI_SCANNER_NORMAL ]] ) : array

parse_ini_file() загружает ini-файл, указанный в аргументе filename, и возвращает его настройки в виде ассоциативного массива.

Структура ini-файла похожа на структуру php.ini.

Список параметров

filename

Имя обрабатываемого ini-файла.

process_sections

Установив параметр process_sections в TRUE, вы получаете многомерный массив, который включает как название отдельных настроек, так и секции. По умолчанию process_sections равен FALSE

scanner_mode

Может принимать следующие значения: INI_SCANNER_NORMAL (по умолчанию) или INI_SCANNER_RAW. Если указано значение INI_SCANNER_RAW, то значения опций не будут обрабатываться.

С версии PHP 5.6.1 также можно задать INI_SCANNER_TYPED. В этом режиме типы boolean, null и integer будут, по возможности, сохраняться. Строковые значения "true", "on" и "yes" будут преобразованы в TRUE. "false", "off", "no" и "none" в FALSE. "null" преобразуется в NULL. Кроме этого, все числовые строки будут, по возможности, преобразованы к целым числам.

Возвращаемые значения

В случае успеха, настройки возвращаются в виде ассоциативного массива (array). В случае ошибки возвращается FALSE.

Список изменений

Версия | Описание
7.0.0 | Символ решетки (#) больше не используется для комментариев.
5.6.1 | Добавлен новый режим INI_SCANNER_TYPED.
5.3.0 | Добавлен необязательный параметр scanner_mode. Одинарные кавычки теперь также могут быть использованы в присвоениях переменных. Символ решетки (#) теперь больше не может быть использован в качестве комментария и будет выбрасывать предупреждение о том, что данная возможность считается устаревшей.
5.2.7 | В случае ошибки синтаксиса, данная функция вернет FALSE, а не пустой массив.
5.2.4 | Ключи и имена секций, состоящие из цифр, будут обработаны в PHP как целые числа. Поэтому числа, начинающиеся с 0 будут считаться восьмеричными, а начинающиеся с 0x - шестнадцатеричными.

Примеры

Пример #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"

[third_section]
phpversion[] = "5.0"
phpversion[] = "5.1"
phpversion[] = "5.2"
phpversion[] = "5.3"

urls[svn] = "http://svn.php.net"
urls[git] = "http://git.php.net"

Пример #2 Пример использования функции parse_ini_file()

Константы также могут обрабатываться в ini-файлах, так что если вы объявите константу в виде значения для ini-файла до вызова parse_ini_file(), то константа будет корректно обработана. Только значения опций будут обрабатываться. Например:

<?php

define('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] => Птица додо
    [path] => /usr/local/bin
    [URL] => http://www.example.com/~username
    [phpversion] => Array
        (
            [0] => 5.0
            [1] => 5.1
            [2] => 5.2
            [3] => 5.3
        )

    [urls] => Array
        (
            [svn] => http://svn.php.net
            [git] => http://git.php.net
        )

)
Array
(
    [first_section] => Array
        (
            [one] => 1
            [five] => 5
            [animal] => Птица додо
        )

    [second_section] => Array
        (
            [path] => /usr/local/bin
            [URL] => http://www.example.com/~username
        )

    [third_section] => Array
        (
            [phpversion] => Array
                (
                    [0] => 5.0
                    [1] => 5.1
                    [2] => 5.2
                    [3] => 5.3
                )

            [urls] => Array
                (
                    [svn] => http://svn.php.net
                    [git] => http://git.php.net
                )

        )

)

Пример #3 Обработка файла php.ini функцией parse_ini_file()

<?php
// Простая функция для сравнения результатов
function yesno($expression)
{
    return($expression ? 'Да' : 'Нет');
}

// Получаем путь к php.ini с помощью функции php_ini_loaded_file(),
// которая доступна с PHP 5.2.4
$ini_path = php_ini_loaded_file();

// Обрабатываем php.ini
$ini = parse_ini_file($ini_path);

// Выводим и сравниваем значения, учтите, что использование get_cfg_var()
// даст одинаковые результаты для используемых здесь значений parsed (загруженное из файла) и loaded (используемое в данный момент)
echo '(parsed) magic_quotes_gpc = ' . yesno($ini['magic_quotes_gpc']) . PHP_EOL;
echo '(loaded) magic_quotes_gpc = ' . yesno(get_cfg_var('magic_quotes_gpc')) . PHP_EOL;
?>

Результатом выполнения данного примера будет что-то подобное:

(parsed) magic_quotes_gpc = Да
(loaded) magic_quotes_gpc = Да

Примечания

Замечание:

Эта функция не имеет никакого отношения к файлу php.ini. К моменту выполнения вашего скрипта, он уже обработан. Эта функция может быть использована для загрузки настроек вашего собственного приложения.

Замечание:

Если значение в ini-файле содержит прочие символы, кроме букв и цифр, оно должно заключаться в двойные кавычки (").

Замечание: Существует зарезервированные слова, которые нельзя использовать в качестве ключей в ini-файлах. Такими словами являются: null, yes, no, true, false, on, off, none. Значения null, off, no и false преобразуются в "", а значения on, yes и true в "1" , но только если не используется режим INI_SCANNER_TYPED (доступен с PHP 5.6.1). Символы ?{}|&~!()^" не должны использоваться в ключах и иметь какой-либо особый смысл в значениях.

Замечание:

Записи без знака равенства игнорируются. Например, "foo" игнорируется, тогда как "bar =" обрабатывается и добавляется с пустым значением. Например, в MySQL есть опция "no-auto-rehash", устанавливаемая в my.cnf, которая не имеет значения и игнорируется.

Смотрите также

  • parse_ini_string() - Разбирает строку конфигурации


Разбирает строку конфигурации

  • « parse_ini_file
  • pathinfo »
  • PHP Manual
  • Функции файловой системы
  • Разбирает строку конфигурации

parse_ini_string

(PHP 5 >= 5.3.0, PHP 7)

parse_ini_string — Разбирает строку конфигурации

Описание

parse_ini_string ( string $ini [, bool $process_sections = FALSE [, int $scanner_mode = INI_SCANNER_NORMAL ]] ) : array

parse_ini_string() возвращает настройки из строки ini в виде ассоциативного массива.

Структура INI-строки такая же, как и в php.ini.

Список параметров

ini

Содержимое разбираемого INI-файла.

process_sections

Установив в параметр process_sections TRUE, можно получить многомерный массив, который включает названия секций и настроек. По умолчанию process_sections равен FALSE

scanner_mode

Может принимать следующие значения: INI_SCANNER_NORMAL (по умолчанию) или INI_SCANNER_RAW. Если указано значение INI_SCANNER_RAW, то значения опций не будут обрабатываться.

С версии PHP 5.6.1 также можно задать INI_SCANNER_TYPED. В этом режиме типы boolean, null и integer будут, по возможности, сохраняться. Строковые значения "true", "on" и "yes" будут преобразованы в TRUE. "false", "off", "no" и "none" в FALSE. "null" преобразуется в NULL. Кроме этого, все числовые строки будут, по возможности, преобразованы к целым числам.

Возвращаемые значения

В случае успеха, настройки возвращаются в виде ассоциативного массива (array). В случае ошибки, возвращается FALSE.

Примечания

Замечание: Существует зарезервированные слова, которые нельзя использовать в качестве ключей в ini-файлах. Такими словами являются: null, yes, no, true, false, on, off, none. Значения null, off, no и false преобразуются в "", а значения on, yes и true в "1" , но только если не используется режим INI_SCANNER_TYPED (доступен с PHP 5.6.1). Символы ?{}|&~!()^" не должны использоваться в ключах и иметь какой-либо особый смысл в значениях.

Смотрите также

  • parse_ini_file() - Обрабатывает конфигурационный файл


Возвращает информацию о пути к файлу

  • « parse_ini_string
  • pclose »
  • PHP Manual
  • Функции файловой системы
  • Возвращает информацию о пути к файлу

pathinfo

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

pathinfo — Возвращает информацию о пути к файлу

Описание

pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] ) : mixed

pathinfo() возвращает информацию о path в виде ассоциативного массива или строки, в зависимости от options.

Замечание:

Подробнее о получении информации о текущем пути, можно почитать в разделе Предопределенные зарезервированные переменные.

Предостережение

pathinfo() учитывает настройки локали, поэтому для корректной обработки пути с многобайтными символами должна быть установлена соответствующая локаль с помощью функции setlocale().

Список параметров

path

Анализируемый путь.

options

Если указан, то задает, какой из элементов пути будет возвращен: PATHINFO_DIRNAME, PATHINFO_BASENAME, PATHINFO_EXTENSION и PATHINFO_FILENAME.

Если options не указан, то возвращаются все доступные элементы.

Возвращаемые значения

Если параметр options не передан, то возвращаемый ассоциативный массив (array) будет содержать следующие элементы: dirname, basename, extension (если есть) и filename.

Замечание:

Если path содержит больше одного расширения, то PATHINFO_EXTENSION возвращает только последний и PATHINFO_FILENAME удаляет только последнее расширение. (см. пример ниже).

Замечание:

Если path не содержит расширения, то не будет возвращен элемент extension (см. ниже второй пример).

Замечание:

Если basename параметра path начинается с точки, то все последующие символы интерпретируются как расширение файла (extension) и имя файла filename будет пустым (см. третий пример).

Если указан параметр options, будет возвращена строка (string), содержащая указанный элемент.

Список изменений

Версия | Описание
5.2.0 | Добавлена константа PATHINFO_FILENAME.

Примеры

Пример #1 Пример использования функции pathinfo()

<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');

echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // начиная с PHP 5.2.0
?>

Результат выполнения данного примера:

/www/htdocs/inc
lib.inc.php
php
lib.inc

Пример #2 Пример с pathinfo(), показывающий разницу между null и отсутствием расширения

<?php
$path_parts = pathinfo('/path/emptyextension.');
var_dump($path_parts['extension']);

$path_parts = pathinfo('/path/noextension');
var_dump($path_parts['extension']);
?>

Результатом выполнения данного примера будет что-то подобное:

string(0) ""

Notice: Undefined index: extension in test.php on line 6
NULL

Пример #3 Пример pathinfo() для файла, начинающегося с точки

<?php
print_r(pathinfo('/some/path/.test'));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [dirname] => /some/path
    [basename] => .test
    [extension] => test
    [filename] =>
)

Смотрите также

  • dirname() - Возвращает имя родительского каталога из указанного пути
  • basename() - Возвращает последний компонент имени из указанного пути
  • parse_url() - Разбирает URL и возвращает его компоненты
  • realpath() - Возвращает канонизированный абсолютный путь к файлу


Закрывает файловый указатель процесса

  • « pathinfo
  • popen »
  • PHP Manual
  • Функции файловой системы
  • Закрывает файловый указатель процесса

pclose

(PHP 4, PHP 5, PHP 7)

pclose — Закрывает файловый указатель процесса

Описание

pclose ( resource $handle ) : int

Закрывает файловый указатель на поток, открытый при помощи popen().

Список параметров

handle

Файловый указатель должен быть действующим и должен быть получен успешным вызовом функции popen().

Возвращаемые значения

Возвращает статус выхода завершающегося процесса. В случае ошибки возвращается -1.

Замечание:

Если PHP собран с опцией --enable-sigchild, возвращаемое значение этой функции не определено.

Примеры

Пример #1 Пример использования pclose()

<?php
$handle = popen('/bin/ls', 'r');
pclose($handle);
?>

Примечания

Замечание: Только для Unix:

pclose() внутренне реализована с помощью системного вызова waitpid(3). Для получения реального кода выхода используйте вместо этого функцию pcntl_wexitstatus().

Смотрите также

  • popen() - Открывает файловый указатель процесса


Открывает файловый указатель процесса

  • « pclose
  • readfile »
  • PHP Manual
  • Функции файловой системы
  • Открывает файловый указатель процесса

popen

(PHP 4, PHP 5, PHP 7)

popen — Открывает файловый указатель процесса

Описание

popen ( string $command , string $mode ) : resource

Открывает поток к процессу, выполняемый при помощи форка команды, заданной в параметре command.

Список параметров

command

Команда

mode

Режим

Возвращаемые значения

Возвращает файловый указатель, идентичный возвращаемому функцией fopen(), за исключением того, что он односторонний (может быть использован только для чтения или записи) и должен быть закрыт при помощи pclose(). Этот указатель может быть использован с fgets(), fgetss() и fwrite(). Если в качестве режима указано 'r', файловый указатель аналогичен потоку вывода (STDOUT) команды, если же указано 'w', то файловый указатель аналогичен потоку ввода (STDIN) команды.

В случае возникновения ошибки возвращает FALSE.

Примеры

Пример #1 Пример использования функции popen()

<?php
$handle = popen("/bin/ls", "r");
?>

Если команда для выполнения не может быть найдена, будет возвращён корректный ресурс. Это может выглядеть странно, но имеет смысл; это даёт вам возможность получить доступ к любому сообщению об ошибке, которое вернёт оболочка:

Пример #2 Пример использования функции popen()

<?php
error_reporting(E_ALL);

/* Добавляем перенаправление, чтобы прочитать stderr. */
$handle = popen('/path/to/executable 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>

Примечания

Замечание:

Если вам нужна двухсторонняя передача (в обе стороны одновременно), используйте proc_open().

Замечание: В случае работы в безопасном режиме, вы можете запускать что-либо только в пределах safe_mode_exec_dir. В настоящее время по практическим причинам запрещено использование .. в качестве компонента пути к исполняемому файлу.

Внимание

В случае работы в безопасном режиме, строка с командой экранируется с помощью escapeshellcmd(). Таким образом echo y | echo x становится echo y \| echo x.

Смотрите также

  • pclose() - Закрывает файловый указатель процесса
  • fopen() - Открывает файл или URL
  • proc_open() - Выполнить команду и открыть указатель на файл для ввода/вывода


Выводит файл

  • « popen
  • readlink »
  • PHP Manual
  • Функции файловой системы
  • Выводит файл

readfile

(PHP 4, PHP 5, PHP 7)

readfile — Выводит файл

Описание

readfile ( string $filename [, bool $use_include_path = FALSE [, resource $context ]] ) : int

Читает файл и записывает его в буфер вывода.

Список параметров

filename

Имя читаемого файла.

use_include_path

Если вы хотите, чтобы использовался поиск файла в include_path, установите этот параметр в TRUE.

context

Ресурс (resource) с контекстом потока.

Возвращаемые значения

Возвращает количество прочитанных из файла байт в случае успешного выполнения, или FALSE в случае возникновения ошибки

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 Принудительная загрузка с помощью readfile()

<?php
$file = 'monkey.gif';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="'.basename($file).'"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
}
?>

Результатом выполнения данного примера будет что-то подобное:

Диалог открытия / сохранения файла

Примечания

Замечание:

readfile() сама по себе не приводит к каким-либо проблемам с памятью, даже при отправке больших файлов. При возникновении ошибки превышения памяти убедитесь, что буферизация вывода отключена с помощью ob_get_level().

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Смотрите также

  • fpassthru() - Выводит все оставшиеся данные из файлового указателя
  • file() - Читает содержимое файла и помещает его в массив
  • fopen() - Открывает файл или URL
  • include - include
  • require - require
  • virtual() - Выполняет подзапрос Apache
  • file_get_contents() - Читает содержимое файла в строку
  • Поддерживаемые протоколы и обертки


Возвращает файл, на который указывает символическая ссылка

  • « readfile
  • realpath_cache_get »
  • PHP Manual
  • Функции файловой системы
  • Возвращает файл, на который указывает символическая ссылка

readlink

(PHP 4, PHP 5, PHP 7)

readlink — Возвращает файл, на который указывает символическая ссылка

Описание

readlink ( string $path ) : string

readlink() делает то же самое, что и функция C readlink.

Список параметров

path

Путь к символической ссылке.

Список изменений

Версия | Описание
5.3.0 | Данная функция теперь доступна на платформах Windows (Vista, Server 2008 и выше).

Возвращаемые значения

Возвращает содержимое пути символической ссылки или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования функции readlink()

<?php

// выведет что-то вроде /boot/vmlinux-2.4.20-xfs
echo readlink('/vmlinuz');

?>

Смотрите также

  • is_link() - Определяет, является ли файл символической ссылкой
  • symlink() - Создаёт символическую ссылку
  • linkinfo() - Возвращает информацию о ссылке


Получает записи из кеша realpath

  • « readlink
  • realpath_cache_size »
  • PHP Manual
  • Функции файловой системы
  • Получает записи из кеша realpath

realpath_cache_get

(PHP 5 >= 5.3.2, PHP 7)

realpath_cache_get — Получает записи из кеша realpath

Описание

realpath_cache_get ( void ) : array

Получает содержимое кеша реального пути.

Возвращаемые значения

Возвращает массив записей из кеша realpath. Ключи являются записями realpath, а значения являются массивами данных, содержащих вычисленный путь, время жизни кеша и других данных, хранящихся в кеше.

Примеры

Пример #1 Пример использования realpath_cache_get()

<?php
var_dump(realpath_cache_get());
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["/test"] => array(4) {
    ["key"] => int(123456789)
    ["is_dir"] => bool(true)
    ["realpath"] => string(5) "/test"
    ["expires"] => int(1260318939)
  }
  ["/test/test.php"] => array(4) {
    ["key"] => int(987654321)
    ["is_dir"] => bool(false)
    ["realpath"] => string(12) "/root/test.php"
    ["expires"] => int(1260318939)
  }
}

Смотрите также

  • realpath_cache_size() - Получает размер кеша realpath


Получает размер кеша realpath

  • « realpath_cache_get
  • realpath »
  • PHP Manual
  • Функции файловой системы
  • Получает размер кеша realpath

realpath_cache_size

(PHP 5 >= 5.3.2, PHP 7)

realpath_cache_size — Получает размер кеша realpath

Описание

realpath_cache_size ( void ) : int

Получает объем памяти, используемый кешем realpath.

Возвращаемые значения

Возвращает, сколько используется кеш-памяти realpath.

Примеры

Пример #1 Пример использования realpath_cache_size()

<?php
var_dump(realpath_cache_size());
?>

Результатом выполнения данного примера будет что-то подобное:

int(412)

Смотрите также

  • realpath_cache_get() - Получает записи из кеша realpath
  • Конфигурационная опция realpath_cache_size


Возвращает канонизированный абсолютный путь к файлу

  • « realpath_cache_size
  • rename »
  • PHP Manual
  • Функции файловой системы
  • Возвращает канонизированный абсолютный путь к файлу

realpath

(PHP 4, PHP 5, PHP 7)

realpath — Возвращает канонизированный абсолютный путь к файлу

Описание

realpath ( string $path ) : string

realpath() раскрывает все символические ссылки, переходы типа /./, /../ и лишние символы / в пути path, возвращая канонизированный абсолютный путь к файлу.

Список параметров

path

Проверяемый путь.

Замечание:

Несмотря на то, что путь должен быть указан, переданное значение может быть пустой строкой. В этих случаях значение интерпретируется как текущая рабочая директория.

Возвращаемые значения

В случае успеха возвращает канонизированный абсолютный путь. Результирующий путь не содержит символических ссылок и компонентов наподобие /./ или '/../. Разделители \ и / в конце пути также удаляются.

realpath() возвращает FALSE при неудаче, например, если файл не существует.

Замечание:

Запускаемый скрипт должен иметь права запуска на всех директориях в проверяемой иерархии, иначе realpath() вернет FALSE.

Замечание:

Для регистронезависимых файловых систем, realpath() может нормализовать или не нормализовать регистр символов.

Замечание:

Функция realpath() не будет работать с файлом внутри архива Phar, так как путь может быть не реальным, а виртуальным.

Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2 Гб.

Список изменений

Версия | Описание
5.3.0 | До этого релиза realpath() не терпела неудачу на системах *BSD в случае отсутствия лишь последнего компонента пути path. Теперь realpath() не срабатывает также и в этом случае.
5.2.1 | До этой версии realpath() возвращает FALSE, если path является пустой строкой или NULL.

Примеры

Пример #1 Пример использования функции realpath()

<?php
chdir('/var/www/');
echo realpath('./../../etc/passwd') . PHP_EOL;

echo realpath('/tmp/') . PHP_EOL;
?>

Результат выполнения данного примера:

/etc/passwd
/tmp

Пример #2 realpath() на Windows

На Windows realpath() изменит пути стиля Unix на стиль Windows.

<?php
echo realpath('/windows/system32'), PHP_EOL;

echo realpath('C:\Program Files\\'), PHP_EOL;
?>

Результат выполнения данного примера:

C:\WINDOWS\System32
C:\Program Files

Смотрите также

  • basename() - Возвращает последний компонент имени из указанного пути
  • dirname() - Возвращает имя родительского каталога из указанного пути
  • pathinfo() - Возвращает информацию о пути к файлу


Переименовывает файл или директорию

  • « realpath
  • rewind »
  • PHP Manual
  • Функции файловой системы
  • Переименовывает файл или директорию

rename

(PHP 4, PHP 5, PHP 7)

rename — Переименовывает файл или директорию

Описание

rename ( string $oldname , string $newname [, resource $context ] ) : bool

Пытается переименовать oldname в newname, перенося файл между директориями, если необходимо. Если newname существует, то он будет перезаписан. При переименовании директории с существующим newname будет выведено предупреждение.

Список параметров

oldname

Старое имя.

Замечание:

Обёртка, используемая в oldname должна совпадать с обёрткой, используемой в newname.

newname

Новое имя.

context

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.1 | rename() теперь может переименовывать файлы между дисками в Windows.

Примеры

Пример #1 Пример использования функции rename()

<?php
rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
?>

Смотрите также

  • copy() - Копирует файл
  • unlink() - Удаляет файл
  • move_uploaded_file() - Перемещает загруженный файл в новое место


Сбрасывает курсор файлового указателя

  • « rename
  • rmdir »
  • PHP Manual
  • Функции файловой системы
  • Сбрасывает курсор файлового указателя

rewind

(PHP 4, PHP 5, PHP 7)

rewind — Сбрасывает курсор файлового указателя

Описание

rewind ( resource $handle ) : bool

Устанавливает курсор файлового указателя handle в начало файлового потока.

Замечание:

Если вы открыли файл в режиме "записи в конец" ("a" или "a+"), любые данные, которые вы записываете, будут дописаны в конец файла, независимо от положения курсора.

Список параметров

handle

Файловый указатель должен быть доступным и ссылаться на файл, успешно открытый при помощи fopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример перезаписи rewind()

<?php
$handle = fopen('output.txt', 'r+');

fwrite($handle, 'Ужасно длинное предложение.');
rewind($handle);
fwrite($handle, 'Оп');
rewind($handle);

echo fread($handle, filesize('output.txt'));

fclose($handle);
?>

Результатом выполнения данного примера будет что-то подобное:

Опасно длинное предложение.

Смотрите также

  • fread() - Бинарно-безопасное чтение файла
  • fseek() - Устанавливает смещение в файловом указателе
  • ftell() - Возвращает текущую позицию указателя чтения/записи файла
  • fwrite() - Бинарно-безопасная запись в файл


Удаляет директорию

  • « rewind
  • set_file_buffer »
  • PHP Manual
  • Функции файловой системы
  • Удаляет директорию

rmdir

(PHP 4, PHP 5, PHP 7)

rmdir — Удаляет директорию

Описание

rmdir ( string $dirname [, resource $context ] ) : bool

Пытается удалить директорию с именем dirname. Директория должна быть пустой и должны иметься необходимые для этого права. При неудачном выполнении будет сгенерирована ошибка уровня E_WARNING.

Список параметров

dirname

Путь к директории.

context

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования rmdir()

<?php
if (!is_dir('examples')) {
    mkdir('examples');
}

rmdir('examples');
?>

Примечания

Замечание: Когда опция safe mode включена, PHP проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • mkdir() - Создаёт директорию
  • unlink() - Удаляет файл


Псевдоним stream_set_write_buffer

  • « rmdir
  • stat »
  • PHP Manual
  • Функции файловой системы
  • Псевдоним stream_set_write_buffer

set_file_buffer

(PHP 4, PHP 5, PHP 7)

set_file_buffer — Псевдоним stream_set_write_buffer()

Описание

Эта функция является псевдонимом: stream_set_write_buffer().


Возвращает информацию о файле

  • « set_file_buffer
  • symlink »
  • PHP Manual
  • Функции файловой системы
  • Возвращает информацию о файле

stat

(PHP 4, PHP 5, PHP 7)

stat — Возвращает информацию о файле

Описание

stat ( string $filename ) : array

Собирает статистическую информацию о файле filename. Если filename является символической ссылкой, информация собирается о самом файле, а не ссылке.

Функция lstat() идентична функции stat() за исключением того, что в данном случае она вернёт информацию о самой символической ссылке.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Формат результата работы функций stat() и fstat()
Числовой | Ассоциативный | Описание
0 | dev | номер устройства
1 | ino | номер inode *
2 | mode | режим защиты inode
3 | nlink | количество ссылок
4 | uid | userid владельца *
5 | gid | groupid владельца *
6 | rdev | тип устройства, если устройство inode
7 | size | размер в байтах
8 | atime | время последнего доступа (временная метка Unix)
9 | mtime | время последней модификации (временная метка Unix)
10 | ctime | время последнего изменения inode (временная метка Unix)
11 | blksize | размер блока ввода-вывода файловой системы **
12 | blocks | количество используемых 512-байтных блоков **
* В Windows это всегда будет 0.

** Доступен только на системах, поддерживающих тип st_blksize - другие системы (например, Windows) вернут -1.

Значение mode содержит информацию, читаемую несколькими функциями. При записи в восьмеричном виде, начиная справа, первые три цифры возвращаются функцией chmod(). Следующая цифра игнорируется PHP. Следующие две цифры указывают тип файла:

mode типов файлов
mode в восьмеричном виде | Значение
0120000 | символическая ссылка
0100000 | обычный файл
0060000 | блочное устройство
0040000 | директория
0010000 | fifo
Так, например, обычный файл может быть 0100644, а директория может быть 0040755.

В случае ошибки stat() возвращает FALSE.

Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2 Гб.

Ошибки

При неудачном выполении будет сгенерирована ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использования stat()

<?php
/* Получаем статистику файла */
$stat = stat('C:\php\php.exe');

/*
 * Выводим последнее время доступа к файлу, это то же самое, что и
 * вызов fileatime()
 */
echo 'Последнее время доступа: ' . $stat['atime'];

/*
 * Выводим время изменения файла, это то же самое, что и
 * вызов filemtime()
 */
echo 'Время изменения: ' . $stat['mtime'];

/* Выводим номер устройства */
echo 'Номер устройства: ' . $stat['dev'];
?>

Пример #2 Использование информации из stat() вместе с touch()

<?php
/* Получаем статистику файла */
$stat = stat('C:\php\php.exe');

/* Удалось получить эту статистику? */
if (!$stat) {
    echo 'вызов stat() не удался...';
} else {
    /*
     * Мы хотим увеличить время последнего доступа к файлу
     * на 1 неделю вперед.
     */
    $atime = $stat['atime'] + 604800;

    /* Касаемся файла */
    if (!touch('some_file.txt', time(), $atime)) {
        echo 'Не удалось коснуться файла...';
    } else {
        echo 'touch() выполнился успешно...';
    }
}
?>

Примечания

Замечание:

Учтите, что обработка времени может отличаться в различных файловых системах.

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • lstat() - Возвращает информацию о файле или символической ссылке
  • fstat() - Получает информацию о файле, используя открытый файловый указатель
  • filemtime() - Возвращает время последнего изменения файла
  • filegroup() - Получает идентификатор группы файла


Создаёт символическую ссылку

  • « stat
  • tempnam »
  • PHP Manual
  • Функции файловой системы
  • Создаёт символическую ссылку

symlink

(PHP 4, PHP 5, PHP 7)

symlink — Создаёт символическую ссылку

Описание

symlink ( string $target , string $link ) : bool

symlink() создаёт символическую ссылку на существующий файл target с именем link.

Список параметров

target

Цель ссылки.

link

Имя ссылки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Эта функция теперь доступна на Windows платформах (Vista, Server 2008 и выше).

Примеры

Пример #1 Создание символической ссылки

<?php
$target = 'uploads.php';
$link = 'uploads';
symlink($target, $link);

echo readlink($link);
?>

Примечания

Замечание: Пользователи Windows должны учитывать, что эта функция будет работать только на Windows Vista/Windows Server 2008 и новее. Более ранние версии Windows не поддерживают символические ссылки.

Смотрите также

  • link() - Создаёт жёсткую ссылку
  • readlink() - Возвращает файл, на который указывает символическая ссылка
  • linkinfo() - Возвращает информацию о ссылке


Создаёт файл с уникальным именем

  • « symlink
  • tmpfile »
  • PHP Manual
  • Функции файловой системы
  • Создаёт файл с уникальным именем

tempnam

(PHP 4, PHP 5, PHP 7)

tempnam — Создаёт файл с уникальным именем

Описание

tempnam ( string $dir , string $prefix ) : string

Создаёт файл с уникальным именем в определённой директории с правами 0600. Если эта директория не существует или недоступна для записи, tempnam() может создать файл во временной директории системы и вернуть полный путь к этому файлу, включая его имя.

Список параметров

dir

Директория, где будет создан временный файл.

prefix

Префикс имени генерируемого файла.

Замечание: Используются только первые 63 символа префикса. Windows по-прежнему использует только первые три символа префикса.

Возвращаемые значения

Возвращает имя нового временного файла (вместе с путем) или FALSE в случае неудачи.

Примеры

Пример #1 Пример использования функции tempnam()

<?php
$tmpfname = tempnam("/tmp", "FOO");

$handle = fopen($tmpfname, "w");
fwrite($handle, "записываем в во временный файл");
fclose($handle);

// здесь мы чего-нибудь делаем

unlink($tmpfname);
?>

Примечания

Замечание: Если PHP не может создать файл в указанной директории dir, он возвращается к директории по умолчанию вашей системы. На NTFS это также происходит в случае, если указанная директория dir содержит более 65534 файлов.

Смотрите также

  • tmpfile() - Создаёт временный файл
  • sys_get_temp_dir() - Возвращает путь к директории временных файлов
  • unlink() - Удаляет файл


Создаёт временный файл

  • « tempnam
  • touch »
  • PHP Manual
  • Функции файловой системы
  • Создаёт временный файл

tmpfile

(PHP 4, PHP 5, PHP 7)

tmpfile — Создаёт временный файл

Описание

tmpfile ( void ) : resource

Создаёт временный файл с уникальным именем, открывая его в режиме чтения и записи (w+) и возвращает файловый указатель.

Этот файл автоматически удаляется после закрытия (например, путем вызова функции fclose() или если не осталось ни одной ссылки на указатель файла, возвращаемый tmpfile()), или при завершении работы скрипта.

Предостережение

Если скрипт неожиданно завершится, временный файл не может быть удален.

Возвращаемые значения

Возвращает дескриптор файла, аналогичный тому, который возвращает функция fopen() для новых файлов или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования функции tmpfile()

<?php
$temp = tmpfile();
fwrite($temp, "записываем во временный файл");
fseek($temp, 0);
echo fread($temp, 1024);
fclose($temp); // происходит удаление файла
?>

Результат выполнения данного примера:

записываем во временный файл

Смотрите также

  • tempnam() - Создаёт файл с уникальным именем
  • sys_get_temp_dir() - Возвращает путь к директории временных файлов


Устанавливает время доступа и модификации файла

  • « tmpfile
  • umask »
  • PHP Manual
  • Функции файловой системы
  • Устанавливает время доступа и модификации файла

touch

(PHP 4, PHP 5, PHP 7)

touch — Устанавливает время доступа и модификации файла

Описание

touch ( string $filename [, int $time = time() [, int $atime ]] ) : bool

Пытается установить время доступа и модификации файла с именем filename в значение time. Обратите внимание, что время доступа изменяется всегда, независимо от количества аргументов.

Если файл не существует, он будет создан.

Список параметров

filename

Имя изменяемого файла.

time

Время изменения. Если аргумент time не указан, используется текущее время.

atime

Если передан, время доступа указанного файла будет установлено в значение atime. В обратном случае оно будет установлено в значение параметра time. Если же ни один из этих параметров не был указан, то будет использовано текущее системное время.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Стало возможным изменять время модификации директории в Windows.

Примеры

Пример #1 Пример использования функции touch()

<?php
if (touch($filename)) {
    echo "Время модификации файла $filename было изменено на текущее";
} else {
    echo "Простите, не удалось изменить время модификации файла ' . $filename;
}
?>

Пример #2 Использование touch() с параметром time

<?php
// Это время касания, установим его на час назад.
$time = time() - 3600;

// Изменяем файл
if (!touch('some_file.txt', $time)) {
    echo 'Упс, что-то пошло не так...';
} else {
    echo 'Изменение модификации файла прошло успешно';
}
?>

Примечания

Замечание:

Учтите, что обработка времени может отличаться в различных файловых системах.

Внимание

До версии PHP 5.3.0 было невозможно менять время модификации директории под Windows с помощью этой функции.


Изменяет текущую umask

  • « touch
  • unlink »
  • PHP Manual
  • Функции файловой системы
  • Изменяет текущую umask

umask

(PHP 4, PHP 5, PHP 7)

umask — Изменяет текущую umask

Описание

umask ([ int $mask ] ) : int

umask() устанавливает PHP umask в значение mask & 0777 и возвращает старую umask. Если PHP используется в качестве серверного модуля, umask будет восстанавливаться после окончания каждого запроса.

Список параметров

mask

Новая umask.

Возвращаемые значения

Вызов umask() без аргументов вернёт текущую umask, иначе будет возвращена старая umask.

Примеры

Пример #1 Пример использования umask()

<?php
$old = umask(0);
chmod("/path/some_dir/some_file.txt", 0755);
umask($old);

// Проверка
if ($old != umask()) {
    die('При восстановлении umask произошла ошибка');
}
?>

Примечания

Замечание:

Избегайте использования этой функции в многопоточных веб-серверах. Лучше изменить права файла с помощью функции chmod() после его создания. Использование umask() может привести к неожиданному поведению одновременно работающих скриптов и самого веб-сервера, т.к. они все будут использовать одну и ту же umask.


Удаляет файл

  • « umask
  • Inotify »
  • PHP Manual
  • Функции файловой системы
  • Удаляет файл

unlink

(PHP 4, PHP 5, PHP 7)

unlink — Удаляет файл

Описание

unlink ( string $filename [, resource $context ] ) : bool

Удаляет файл filename. Функция похожа на функцию unlink() Unix в C. При неудачном выполнении будет вызвана ошибка уровня E_WARNING.

Список параметров

filename

Путь к файлу.

context

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3.0 | В Windows теперь можно удалить файлы функцией unlink() с использованием дескрипторов, хотя раньше это не удавалось. Тем не менее, все еще невозможно повторно создать удаленный файл, пока все дескрипторы к нему не будут закрыты.

Примеры

Пример #1 Пример простого использования unlink()

<?php
$fh = fopen('test.html', 'a');
fwrite($fh, '<h1>Привет, мир!</h1>');
fclose($fh);

unlink('test.html');
?>

Смотрите также

  • rmdir() - Удаляет директорию


Inotify

  • Введение
  • Установка и настройка
    • Требования
    • Установка и настройка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Inotify
    • inotify_add_watch — Добавить наблюдателя для экземпляра inotify
    • inotify_init — Инициализирует экземпляр inotify
    • inotify_queue_len — Возвращает число ожидающих событий в очереди
    • inotify_read — Читает ожидающие сообщения из очереди
    • inotify_rm_watch — Удалить наблюдателя


Введение

Модуль inotify предоставляет функции inotify_init(), inotify_add_watch() и inotify_rm_watch().

В то время как функция языка C inotify_init() возвращает дескриптор файла, функция inotify_init() в PHP возвращает потоковый ресурс, который можно использовать в стандартных функциях типа stream_select(), stream_set_blocking() и fclose(). inotify_read() замещает способ чтения событий inotify в C.


Установка и настройка

Содержание

  • Требования
  • Установка и настройка
  • Настройка во время выполнения
  • Типы ресурсов


  • « Установка и настройка
  • Установка и настройка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Модуль требует для работы Linux 2.6.13 или новее и соответствующую библиотеку libC.


Установка и настройка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/inotify.


  • « Установка и настройка
  • Типы ресурсов »
  • PHP Manual
  • Установка и настройка
  • Настройка во время выполнения

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Модуль определяет потоковый ресурс, возвращаемый inotify_init().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы Inotify используются с функцией inotify_add_watch() и/или возвращаются inotify_read()
IN_ACCESS (integer)
К файлу произведен доступ (чтение) (*)
IN_MODIFY (integer)
Файл был изменен (*)
IN_ATTRIB (integer)
Изменены метаданные (такие как permissions, mtime, и т.д.) (*)
IN_CLOSE_WRITE (integer)
Файл, открытый для записи, был закрыт (*)
IN_CLOSE_NOWRITE (integer)
Файл, недоступный для записи, был закрыт (*)
IN_OPEN (integer)
Файл был открыт (*)
IN_MOVED_TO (integer)
Файл перемещен в указанную директорию (*)
IN_MOVED_FROM (integer)
Файл перемещен из указанной директории (*)
IN_CREATE (integer)
Файл или директория созданы в указанной директории (*)
IN_DELETE (integer)
Файл или директория удалена из указанной директории (*)
IN_DELETE_SELF (integer)
Указанный файл или директория удалены
IN_MOVE_SELF (integer)
Указанный файл или директория перемещены
IN_CLOSE (integer)
Эквивалентно IN_CLOSE_WRITE | IN_CLOSE_NOWRITE
IN_MOVE (integer)
Эквивалентно IN_MOVED_FROM | IN_MOVED_TO
IN_ALL_EVENTS (integer)
Битовая маска указанных выше констант
IN_UNMOUNT (integer)
Файловая система, содержащая файл была размонтирована
IN_Q_OVERFLOW (integer)
Очередь событий переполнена (wd(дескриптор наблюдения) равно -1 для этого события)
IN_IGNORED (integer)
Наблюдение было отключено вручную (поясняется inotify_rm_watch()) либо из-за отсутствия файла либо из-за размонтирования файловой системы.
IN_ISDIR (integer)
Объектом события является директория
IN_ONLYDIR (integer)
Использовать только указанную директорию в качестве конечного пути (Начиная с Linux 2.6.15)
IN_DONT_FOLLOW (integer)
Не разыменовывать путь, если это символическая ссылка (Начиная с Linux 2.6.15)
IN_MASK_ADD (integer)
Добавить события в маску событий для этого пути, если она уже существует (вместо замещения маски).
IN_ONESHOT (integer)
Отслеживать путь для одного события, затем удалить его из списка наблюдения.

Замечание: События, помеченные звездочкой (*), могут происходить с файлами в наблюдаемых директориях.


Функции Inotify

Содержание

  • inotify_add_watch — Добавить наблюдателя для экземпляра inotify
  • inotify_init — Инициализирует экземпляр inotify
  • inotify_queue_len — Возвращает число ожидающих событий в очереди
  • inotify_read — Читает ожидающие сообщения из очереди
  • inotify_rm_watch — Удалить наблюдателя


Добавить наблюдателя для экземпляра inotify

  • « Функции Inotify
  • inotify_init »
  • PHP Manual
  • Функции Inotify
  • Добавить наблюдателя для экземпляра inotify

inotify_add_watch

(PECL inotify >= 0.1.2)

inotify_add_watch — Добавить наблюдателя для экземпляра inotify

Описание

inotify_add_watch ( resource $inotify_instance , string $pathname , int $mask ) : int

inotify_add_watch() добавляет нового наблюдателя или изменяет существующего для файла или директории, заданных в pathname.

Использование inotify_add_watch() на уже отслеживаемом объекте заменит текущего наблюдателя. использование константы IN_MASK_ADD добавит (OR) события существующему наблюдателю.

Список параметров

inotify_instance

Ресурс, возвращаемый inotify_init()

pathname

Файл или директория для отслеживания

mask

События, которые надо отслеживать. Смотрите Предопределенные константы.

Возвращаемые значения

Возвращает уникальный (в контексте экземпляра inotify) дескриптор наблюдателя.

Смотрите также

  • inotify_init() - Инициализирует экземпляр inotify


Инициализирует экземпляр inotify

  • « inotify_add_watch
  • inotify_queue_len »
  • PHP Manual
  • Функции Inotify
  • Инициализирует экземпляр inotify

inotify_init

(PECL inotify >= 0.1.2)

inotify_init — Инициализирует экземпляр inotify

Описание

inotify_init ( void ) : resource

Инициализирует экземпляр inotify для использования в inotify_add_watch()

Возвращаемые значения

Потоковый ресурс или FALSE.

Примеры

Пример #1 Пример использования inotify

<?php
// Создаем экземпляр inotify
$fd = inotify_init();

// Отслеживаем __FILE__ на предмет изменения метаданных (например mtime)
$watch_descriptor = inotify_add_watch($fd, __FILE__, IN_ATTRIB);

// создаем событие
touch(__FILE__);

// Читаем события
$events = inotify_read($fd);
print_r($events);

// Следующие функции позволяют использовать функции inotify без блокировки на inotify_read():

// - Используем stream_select() для $fd:
$read = array($fd);
$write = null;
$except = null;
stream_select($read,$write,$except,0);

// - Используем stream_set_blocking() для $fd
stream_set_blocking($fd, 0);
inotify_read($fd); // Не блокируем и возвращаем false если нет ожидающих событий

// - Используем inotify_queue_len() для проверки, что очередь событий не пуста
$queue_len = inotify_queue_len($fd); // Если > 0, inotify_read() то не блокируем

// Заканчиваем наблюдать за __FILE__
inotify_rm_watch($fd, $watch_descriptor);

// Закрываем экземпляр inotify
// Все не закрытые наблюдатели будут закрыты
fclose($fd);

?>

Результатом выполнения данного примера будет что-то подобное:

array(
  array(
    'wd' => 1,     // Equals $watch_descriptor
    'mask' => 4,   // IN_ATTRIB bit is set
    'cookie' => 0, // unique id to connect related events (e.g.
                   // IN_MOVE_FROM and IN_MOVE_TO events)
    'name' => '',  // the name of a file (e.g. if we monitored changes
                   // in a directory)
  ),
);

Смотрите также

  • inotify_add_watch() - Добавить наблюдателя для экземпляра inotify
  • inotify_rm_watch() - Удалить наблюдателя
  • inotify_queue_len() - Возвращает число ожидающих событий в очереди
  • inotify_read() - Читает ожидающие сообщения из очереди
  • fclose() - Закрывает открытый дескриптор файла


Возвращает число ожидающих событий в очереди

  • « inotify_init
  • inotify_read »
  • PHP Manual
  • Функции Inotify
  • Возвращает число ожидающих событий в очереди

inotify_queue_len

(PECL inotify >= 0.1.2)

inotify_queue_len — Возвращает число ожидающих событий в очереди

Описание

inotify_queue_len ( resource $inotify_instance ) : int

Функция позволяет понять, заблокирует ли inotify_read() выполнение или нет. Если возвращенное число больше нуля, значит в очереди есть сообщения и inotify_read() не заблокирует выполнение скрипта.

Список параметров

inotify_instance

Ресурс, возвращаемый inotify_init()

Возвращаемые значения

Возвращает число ожидающих сообщений в очереди.

Смотрите также

  • inotify_init() - Инициализирует экземпляр inotify
  • stream_select() - Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec
  • stream_set_blocking() - Установить блокирующий/неблокирующий режим в потоке


Читает ожидающие сообщения из очереди

  • « inotify_queue_len
  • inotify_rm_watch »
  • PHP Manual
  • Функции Inotify
  • Читает ожидающие сообщения из очереди

inotify_read

(PECL inotify >= 0.1.2)

inotify_read — Читает ожидающие сообщения из очереди

Описание

inotify_read ( resource $inotify_instance ) : array

Читает ожидающие сообщения из очереди.

Список параметров

inotify_instance

Ресурс, возвращаемый inotify_init()

Возвращаемые значения

Массив событий inotify или FALSE, если событий в очереди нет и inotify_instance не блокирующий. Каждый элемент массива состоит из:

  • wd - дескриптор наблюдателя, возвращенный inotify_add_watch()
  • mask - битовая маска событий
  • cookie - уникальный идентификатор для объединения связанных событий (например IN_MOVE_FROM и IN_MOVE_TO)
  • name - имя файла (например если в наблюдаемой директории изменился файл)

Смотрите также

  • inotify_init() - Инициализирует экземпляр inotify
  • stream_select() - Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec
  • stream_set_blocking() - Установить блокирующий/неблокирующий режим в потоке
  • inotify_queue_len() - Возвращает число ожидающих событий в очереди


Удалить наблюдателя

  • « inotify_read
  • Mimetype »
  • PHP Manual
  • Функции Inotify
  • Удалить наблюдателя

inotify_rm_watch

(PECL inotify >= 0.1.2)

inotify_rm_watch — Удалить наблюдателя

Описание

inotify_rm_watch ( resource $inotify_instance , int $watch_descriptor ) : bool

inotify_rm_watch() удаляет наблюдателя watch_descriptor из экземпляра inotify inotify_instance.

Список параметров

inotify_instance

Ресурс, возвращаемый inotify_init()

watch_descriptor

Наблюдатель для удаления

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • inotify_init() - Инициализирует экземпляр inotify


Mimetype

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы


Введение

Внимание

Этот модуль был объявлен устаревшим так как модуль PECL Fileinfo предоставляет более широкую функциональность более правильным образом.

Функции этого модуля пытаются определить тип содержимого файла и его кодировку путем анализа определенных, магических, последовательностей байт в определенных местах файла. Хотя результат не 100% гарантирован, но эвристика довольно неплоха.

Этот модуль основан на Apache mod_mime_magic, который, в свою очередь, базируется на команде file, поддерживаемой Яном Ф. Дарвином. Смотрите ее исходные коды для более подробной информации.


Установка

Внимание

Модуль Mimetype был удален из PHP 5.3.0 в пользу модуля Fileinfo.

Для его включения необходимо собрать PHP с опцией --with-mime-magic . Модулю требуется копия упрощенного файла magic, поставляемого в составе Apache httpd.

Замечание:

Модуль не умеет обрабатывать стандартный файл magic, поставляемый в составе Linux и работает с последними версиями командлы file.

Замечание: Примечание для пользователей Win32

Для использования этого модуля в среде Windows вы должны указать путь к magic.mime в php.ini.

Пример #1 Установка пути до magic.mime

mime_magic.magicfile = "$PHP_INSTALL_DIR\magic.mime"

Не забудьте заменить $PHP_INSTALL_DIR на путь, по которому у вас установлен PHP. Например c:\php.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Mimetype
Имя | По умолчанию | Место изменения | Список изменений
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.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

mime_magic.debug bool

Включить/отключить отладку.

mime_magic.magicfile string

Путь до файла magic.mime.


  • « Типы ресурсов
  • Phdfs »
  • PHP Manual
  • Mimetype
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Phdfs

  • Установка и настройка
    • Требования
    • Установка
    • Типы ресурсов
  • Предопределенные константы
  • phdfs — Класс phdfs
    • phdfs::connect — Описание
    • phdfs::__construct — Описание
    • phdfs::copy — Описание
    • phdfs::create_directory — Описание
    • phdfs::delete — Описание
    • phdfs::__destruct — Описание
    • phdfs::disconnect — Описание
    • phdfs::exists — Описание
    • phdfs::file_info — Описание
    • phdfs::list_directory — Описание
    • phdfs::read — Описание
    • phdfs::rename — Описание
    • phdfs::tell — Описание
    • phdfs::write — Описание


  • « Phdfs
  • Установка и настройка »
  • PHP Manual
  • Phdfs

Модуль phdfs используется для работы с Hadoop HDFS Для работы phdfs требуется PHP версии 5.3 или выше. В более ранних версиях работа не гарантирована.


Установка и настройка

Содержание

  • Требования
  • Установка
  • Типы ресурсов


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Версии PHP: PHP 5.3+

Включенный ZTS (Потокобезопасность)

Необходим установленный hadoop


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/phdfs.


  • « Установка
  • Типы ресурсов »
  • PHP Manual
  • Установка и настройка

Данное расширение не определяет никакие директивы конфигурации в php.ini.


  • «
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

O_WRONLY (integer)
O_CREAT (integer)
O_APPEND (integer)


Класс phdfs

(phdfs >= 0.1.0)

Введение

Обзор классов

phdfs {
/* Свойства */
static $host ;
static $port ;
/* Методы */
public connect ( void ) : bool
public __construct ( string $ip , string $port )
public copy ( string $source_file , string $destination_file ) : bool
public create_directory ( string $path ) : bool
public delete ( string $path ) : bool
public __destruct ( void ) : void
public disconnect ( void ) : bool
public exists ( string $path ) : bool
public file_info ( string $path ) : array
public list_directory ( string $path [, int $level = 0 ] ) : array
public read ( string $path [, int $length = 0 ] ) : string
public rename ( string $old_path , string $new_path ) : bool
public tell ( string $path [, int $read_length = 1024 ] ) : int
public write ( string $path , string $buffer [, int $mode = 0 ] ) : bool
}

Свойства

host

port

Содержание

  • phdfs::connect — Описание
  • phdfs::__construct — Описание
  • phdfs::copy — Описание
  • phdfs::create_directory — Описание
  • phdfs::delete — Описание
  • phdfs::__destruct — Описание
  • phdfs::disconnect — Описание
  • phdfs::exists — Описание
  • phdfs::file_info — Описание
  • phdfs::list_directory — Описание
  • phdfs::read — Описание
  • phdfs::rename — Описание
  • phdfs::tell — Описание
  • phdfs::write — Описание


Описание

  • « phdfs
  • phdfs::__construct »
  • PHP Manual
  • phdfs
  • Описание

phdfs::connect

(phdfs >= 0.1.0)

phdfs::connect — Описание

Описание

public phdfs::connect ( void ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Описание

  • « phdfs::connect
  • phdfs::copy »
  • PHP Manual
  • phdfs
  • Описание

phdfs::__construct

(phdfs >= 0.1.0)

phdfs::__construct — Описание

Описание

public phdfs::__construct ( string $ip , string $port )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ip

port

Возвращаемые значения


Описание

  • « phdfs::__construct
  • phdfs::create_directory »
  • PHP Manual
  • phdfs
  • Описание

phdfs::copy

(phdfs >= 0.1.0)

phdfs::copy — Описание

Описание

public phdfs::copy ( string $source_file , string $destination_file ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

source_file

destination_file

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Описание

  • « phdfs::copy
  • phdfs::delete »
  • PHP Manual
  • phdfs
  • Описание

phdfs::create_directory

(phdfs >= 0.1.0)

phdfs::create_directory — Описание

Описание

public phdfs::create_directory ( string $path ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

path

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Описание

  • « phdfs::create_directory
  • phdfs::__destruct »
  • PHP Manual
  • phdfs
  • Описание

phdfs::delete

(phdfs >= 0.1.0)

phdfs::delete — Описание

Описание

public phdfs::delete ( string $path ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

path

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Описание

  • « phdfs::delete
  • phdfs::disconnect »
  • PHP Manual
  • phdfs
  • Описание

phdfs::__destruct

(phdfs >= 0.1.0)

phdfs::__destruct — Описание

Описание

public phdfs::__destruct ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « phdfs::__destruct
  • phdfs::exists »
  • PHP Manual
  • phdfs
  • Описание

phdfs::disconnect

(phdfs >= 0.1.0)

phdfs::disconnect — Описание

Описание

public phdfs::disconnect ( void ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Описание

  • « phdfs::disconnect
  • phdfs::file_info »
  • PHP Manual
  • phdfs
  • Описание

phdfs::exists

(phdfs>= 0.1.0)

phdfs::exists — Описание

Описание

public phdfs::exists ( string $path ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

path

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Описание

  • « phdfs::exists
  • phdfs::list_directory »
  • PHP Manual
  • phdfs
  • Описание

phdfs::file_info

(phdfs >= 0.1.0)

phdfs::file_info — Описание

Описание

public phdfs::file_info ( string $path ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

path

Возвращаемые значения

Возвращает массив в случае успешного выполнения или FALSE в случае возникновения ошибки.


Описание

  • « phdfs::file_info
  • phdfs::read »
  • PHP Manual
  • phdfs
  • Описание

phdfs::list_directory

(phdfs >= 0.1.0)

phdfs::list_directory — Описание

Описание

public phdfs::list_directory ( string $path [, int $level = 0 ] ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

path

level

Возвращаемые значения

Возвращает массив в случае успешного выполнения или FALSE в случае возникновения ошибки.


Описание

  • « phdfs::list_directory
  • phdfs::rename »
  • PHP Manual
  • phdfs
  • Описание

phdfs::read

(phdfs >= 0.1.0)

phdfs::read — Описание

Описание

public phdfs::read ( string $path [, int $length = 0 ] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

path

length

Возвращаемые значения


Описание

  • « phdfs::read
  • phdfs::tell »
  • PHP Manual
  • phdfs
  • Описание

phdfs::rename

(phdfs >= 0.1.0)

phdfs::rename — Описание

Описание

public phdfs::rename ( string $old_path , string $new_path ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

old_path

new_path

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Описание

  • « phdfs::rename
  • phdfs::write »
  • PHP Manual
  • phdfs
  • Описание

phdfs::tell

(phdfs >= 0.1.0)

phdfs::tell — Описание

Описание

public phdfs::tell ( string $path [, int $read_length = 1024 ] ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

path

read_length

Возвращаемые значения


Описание

  • « phdfs::tell
  • Proctitle »
  • PHP Manual
  • phdfs
  • Описание

phdfs::write

(phdfs >= 0.1.0)

phdfs::write — Описание

Описание

public phdfs::write ( string $path , string $buffer [, int $mode = 0 ] ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

path

buffer

mode

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Proctitle

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Proctitle
    • setproctitle — Установить название процесса
    • setthreadtitle — Установить название потока


Введение

Данное расширение позволяет изменить имя текущего процесса/потока на системах Linux и *BSD. Это полезно при использовании pcntl_fork() для идентификации запущеных процессов с списке процессов.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Ничего специального.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/proctitle.


  • « Типы ресурсов
  • Функции Proctitle »
  • PHP Manual
  • Proctitle
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции Proctitle

Содержание

  • setproctitle — Установить название процесса
  • setthreadtitle — Установить название потока


Установить название процесса

  • « Функции Proctitle
  • setthreadtitle »
  • PHP Manual
  • Функции Proctitle
  • Установить название процесса

setproctitle

(PECL proctitle >= 0.1.0)

setproctitle — Установить название процесса

Описание

setproctitle ( string $title ) : void

Установить название текущего процесса.

Список параметров

title

Имя.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования setproctitle()

Запуск следующего кода изменит название процесса (видимое, например, при помощи ps a).

<?php
setproctitle("myscript");
?>

Результатом выполнения данного примера будет что-то подобное:

$ ps a
  PID TTY      STAT   TIME COMMAND
 1168 pts/3    S      0:00 myscript

Смотрите также

  • cli_set_process_title() - Устанавливает заголовок процесса
  • pcntl_fork() - Разветвить (fork) текущий запущенный процесс
  • setthreadtitle() - Установить название потока


Установить название потока

  • « setproctitle
  • xattr »
  • PHP Manual
  • Функции Proctitle
  • Установить название потока

setthreadtitle

(PECL proctitle >= 0.1.2)

setthreadtitle — Установить название потока

Описание

setthreadtitle ( string $title ) : bool

Установить название потока.

Список параметров

title

Имя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования setthreadtitle()

Запуск следующего кода изменит название потока (видимое, например, при помощи ps c).

<?php
setthreadtitle("myscript");
?>

Результатом выполнения данного примера будет что-то подобное:

$ ps c
  PID TTY      STAT   TIME COMMAND
 1178 pts/3    S      0:00 myscript

Смотрите также

  • pcntl_fork() - Разветвить (fork) текущий запущенный процесс
  • setproctitle() - Установить название процесса


xattr

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • xattr Функции
    • xattr_get — Получение расширенных атрибутов файла
    • xattr_list — Просмотр списка расширенных атрибутов файла
    • xattr_remove — Удаление расширенных атрибутов файла
    • xattr_set — Установка расширенных атрибутов файла
    • xattr_supported — Проверка поддержки расширенных атрибутов


Введение

Расширение xattr позволяет производить манипуляции с расширенными атрибутами в файловой системе.


Требования

Для использования xattr должна быть установлена библиотека libattr. Она доступна здесь » http://savannah.nongnu.org/projects/attr/.

Замечание:

Эти функции работают только с файловыми системами, поддерживающими расширенные атрибуты, и смонтированными в текущий момент. Вот некоторые файловые системы, которые поддерживают расширенные атрибуты: ext2, ext3, reiserfs, jfs и xfs.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/xattr.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

XATTR_ROOT (integer)
Установить атрибут в корневом (доверенном) пространстве имён. Требует привилегий суперпользователя.
XATTR_DONTFOLLOW (integer)
Не разыменовывать символические ссылки, работать с самими ссылками.
XATTR_CREATE (integer)
Функция завершится ошибкой, если расширенный атрибут уже существует.
XATTR_REPLACE (integer)
Функция завершится ошибкой, если расширенный атрибут отсутствует.


xattr Функции

Содержание

  • xattr_get — Получение расширенных атрибутов файла
  • xattr_list — Просмотр списка расширенных атрибутов файла
  • xattr_remove — Удаление расширенных атрибутов файла
  • xattr_set — Установка расширенных атрибутов файла
  • xattr_supported — Проверка поддержки расширенных атрибутов


Получение расширенных атрибутов файла

  • « xattr Функции
  • xattr_list »
  • PHP Manual
  • xattr Функции
  • Получение расширенных атрибутов файла

xattr_get

(PECL xattr >= 0.9.0)

xattr_get — Получение расширенных атрибутов файла

Описание

xattr_get ( string $filename , string $name [, int $flags = 0 ] ) : string

Эта функция возвращает значение расширенного атрибута файла.

Расширенные атрибуты имеют два различных пространства имен: пользовательское и корневое (root). Пользовательское пространство имен доступно для всех пользователей, в то время как корневое - только для пользователей с root-привилегиями. По умолчанию xattr оперирует в пользовательском пространстве имен, но вы можете изменить это поведение при помощи аргумента flags.

Список параметров

filename

Файл, атрибут которого нужно прочитать.

name

Имя атрибута.

flags

Поддерживаемые xattr-флаги
XATTR_DONTFOLLOW | Не разыменовывать символические ссылки, работать с самой ссылкой.
XATTR_ROOT | Установить атрибут в корневом пространстве имён. Требуются права суперпользователя.

Возвращаемые значения

Функция возвращает строку, содержащую значение FALSE, если атрибут не существует.

Примеры

Пример #1 Проверить, подписан ли файл системным администратором

<?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_get
  • xattr_remove »
  • PHP Manual
  • xattr Функции
  • Просмотр списка расширенных атрибутов файла

xattr_list

(PECL xattr >= 0.9.0)

xattr_list — Просмотр списка расширенных атрибутов файла

Описание

xattr_list ( string $filename [, int $flags = 0 ] ) : array

Эта функция возвращает список имён расширенных атрибутов файла.

Расширенные атрибуты имеют два различных пространства имен: пользовательское и корневое (root). Пользовательское пространство имен доступно для всех пользователей, в то время как корневое - только для пользователей с root-привилегиями. По умолчанию xattr оперирует в пользовательском пространстве имен, но вы можете изменить это поведение при помощи аргумента flags.

Список параметров

filename

Файл, список атрибутов которого нужно прочитать.

flags

Поддерживаемые xattr-флаги
XATTR_DONTFOLLOW | Не разыменовывать символические ссылки, работать с самой ссылкой.
XATTR_ROOT | Установить атрибут в корневом пространстве имён. Требуются права суперпользователя.

Возвращаемые значения

Функция возвращает массив, содержащий имена расширенных атрибутов.

Примеры

Пример #1 Вывести имена всех расширенных атрибутов файла

<?php
$file = 'some_file';
$root_attributes = xattr_list($file, XATTR_ROOT);
$user_attributes = xattr_list($file);

echo "Root-атрибуты: \n";
foreach ($root_attributes as $attr_name) {
    printf("%s\n", $attr_name);
}

echo "\n Пользовательские атрибуты: \n";
foreach ($attributes as $attr_name) {
    printf("%s\n", $attr_name);
}

?>

Смотрите также

  • xattr_get() - Получение расширенных атрибутов файла


Удаление расширенных атрибутов файла

  • « xattr_list
  • xattr_set »
  • PHP Manual
  • xattr Функции
  • Удаление расширенных атрибутов файла

xattr_remove

(PECL xattr >= 0.9.0)

xattr_remove — Удаление расширенных атрибутов файла

Описание

xattr_remove ( string $filename , string $name [, int $flags = 0 ] ) : bool

Эта функция удаляет расширенный атрибут файла.

Расширенные атрибуты имеют два различных пространства имен: пользовательское и корневое (root). Пользовательское пространство имен доступно для всех пользователей, в то время как корневое - только для пользователей с root-привилегиями. По умолчанию xattr оперирует в пользовательском пространстве имен, но вы можете изменить это поведение при помощи аргумента flags.

Список параметров

filename

Файл, атрибут которого нужно удалить.

name

Имя удаляемого атрибута.

flags

Поддерживаемые xattr-флаги
XATTR_DONTFOLLOW | Не разыменовывать символические ссылки, работать с самой ссылкой.
XATTR_ROOT | Установить атрибут в корневом пространстве имён. Требуются права суперпользователя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Удалить все расширенные атрибуты файла

<?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_remove
  • xattr_supported »
  • PHP Manual
  • xattr Функции
  • Установка расширенных атрибутов файла

xattr_set

(PECL xattr >= 0.9.0)

xattr_set — Установка расширенных атрибутов файла

Описание

xattr_set ( string $filename , string $name , string $value [, int $flags = 0 ] ) : bool

Эта функция устанавливает расширенный атрибут файла.

Расширенные атрибуты имеют два различных пространства имен: пользовательское и корневое (root). Пользовательское пространство имен доступно для всех пользователей, в то время как корневое - только для пользователей с root-привилегиями. По умолчанию xattr оперирует в пользовательском пространстве имен, но вы можете изменить это поведение при помощи аргумента flags.

Список параметров

filename

Имя файла, атрибут которого нужно установить.

name

Имя расширенного атрибута. При его отсутствии атрибут создаётся, в противном случае - перезаписывается. Вы можете изменить поведение, используя флаги (flags).

value

Значение атрибута.

flags

Поддерживаемые xattr-флаги
XATTR_CREATE | Функция вернёт ошибку, если атрибут существует.
XATTR_REPLACE | Функция вернёт ошибку, если атрибут не существует.
XATTR_DONTFOLLOW | Не разыменовывать символические ссылки, работать с самой ссылкой.
XATTR_ROOT | Установить атрибут в корневом пространстве имён. Требуются права суперпользователя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Установить расширенные атрибуты .wav файла

<?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_set
  • xdiff »
  • PHP Manual
  • xattr Функции
  • Проверка поддержки расширенных атрибутов

xattr_supported

(PECL xattr >= 1.0.0)

xattr_supported — Проверка поддержки расширенных атрибутов

Описание

xattr_supported ( string $filename [, int $flags = 0 ] ) : bool

Эта функция проверяет поддерживает ли файловая система, содержащая файл, расширенные атрибуты. Требуется право на чтение файла.

Список параметров

filename

Путь к проверяемому файлу.

flags

Поддерживаемые xattr-флаги
XATTR_DONTFOLLOW Не разыменовывать символические ссылки, работать с самой ссылкой.

Возвращаемые значения

Функция возвращает TRUE, если файловая система поддерживает расширенные атрибуты, FALSE, если это не так и NULL, если невозможно определить (на пример неверный путь к файлу, или нет разрешения на чтение файла).

Примеры

Пример #1 xattr_supported() example

Проверить, можно ли использовать расширенные атрибуты.

<?php
$file = 'some_file';

if (xattr_supported($file)) {
    /* ... make use of some xattr_* functions ... */
}

?>

Смотрите также

  • xattr_get() - Получение расширенных атрибутов файла
  • xattr_list() - Просмотр списка расширенных атрибутов файла


xdiff

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции xdiff
    • xdiff_file_bdiff_size — Получить размер файла после применения бинарного патча
    • xdiff_file_bdiff — Создать бинарный патч сравнивая два файла
    • xdiff_file_bpatch — Применить бинарный патч к файлу
    • xdiff_file_diff_binary — Псевдоним для xdiff_file_bdiff
    • xdiff_file_diff — Создать унифицированный патч из сравнения двух файлов
    • xdiff_file_merge3 — Объединение трех файлов в один
    • xdiff_file_patch_binary — Псевдоним для xdiff_file_bpatch
    • xdiff_file_patch — Применение унифицированного патча к файлу
    • xdiff_file_rabdiff — Создать бинарный патч сравнивая два файла с помощью полиноминального алгоритма Rabin fingerprinting
    • xdiff_string_bdiff_size — Получить размер файла созданного после применения бинарного патча
    • xdiff_string_bdiff — Создать бинарный патч для двух строк
    • xdiff_string_bpatch — Применение бинарного патча к строке
    • xdiff_string_diff_binary — Псевдоним для xdiff_string_bdiff
    • xdiff_string_diff — Создать обычный патч для двух строк
    • xdiff_string_merge3 — Объединить три строки в одну
    • xdiff_string_patch_binary — Псевдоним для xdiff_string_bpatch
    • xdiff_string_patch — Применить обычный патч к строке
    • xdiff_string_rabdiff — Сравнить две строки и создать бинарный патч используя полиноминальный алгоритм Rabin fingerprint


Введение

Модуль xdiff позволяет создавать и применять файлы исправлений, содержащие различия между различными версиями файлов.

Модуль поддерживает два режима работы: со строками и с файлами, также, два разных формата патчей - унифицированный и бинарный. Унифицированные патчи хороши для текстовых файлов и удобны для чтения человеком. Для бинарных файлов, таких как архивы или изображения, следует использовать бинарный формат, так как он корректно обрабатывает непечатные символы.

Начиная с версии 1.5.0 существуют два различных набора функций для создания бинарных патчей. Новые функции - xdiff_string_rabdiff() и xdiff_file_rabdiff() создают поддерживаемый старыми функциями вывод, но работают быстрее и результат занимает меньше места. Более подробно о методах создания бинарных патчей и разнице между ними читайте на сайте » libxdiff.

Модуль использует libxdiff. Более подробно читайте на сайте » http://www.xmailserver.org/xdiff-lib.html.


Требования

Для использования модуля xdiff, у вас должна быть установлена libxdiff, доступная на домашней странице libxdiff » http://www.xmailserver.org/xdiff-lib.html.

Замечание:

Вам будет необходима версия libxdiff не ниже 0.7 для того, чтобы данные функции были осведомлены о memory_limit.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/xdiff.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

XDIFF_PATCH_NORMAL (integer)
Этот флаг обозначает, что функции xdiff_string_patch() и xdiff_file_patch() должны создавать результат путем применения патча к оригинальному контенту, таким образом, создавая новую версию файла. Это является поведением по умолчанию.
XDIFF_PATCH_REVERSE (integer)
Этот флаг обозначает, что функции xdiff_string_patch() и xdiff_file_patch() должны создавать результат путем отката патча с полученного нового контента, таким образом, восстанавливая оригинальный контент.


Функции xdiff

Содержание

  • xdiff_file_bdiff_size — Получить размер файла после применения бинарного патча
  • xdiff_file_bdiff — Создать бинарный патч сравнивая два файла
  • xdiff_file_bpatch — Применить бинарный патч к файлу
  • xdiff_file_diff_binary — Псевдоним для xdiff_file_bdiff
  • xdiff_file_diff — Создать унифицированный патч из сравнения двух файлов
  • xdiff_file_merge3 — Объединение трех файлов в один
  • xdiff_file_patch_binary — Псевдоним для xdiff_file_bpatch
  • xdiff_file_patch — Применение унифицированного патча к файлу
  • xdiff_file_rabdiff — Создать бинарный патч сравнивая два файла с помощью полиноминального алгоритма Rabin fingerprinting
  • xdiff_string_bdiff_size — Получить размер файла созданного после применения бинарного патча
  • xdiff_string_bdiff — Создать бинарный патч для двух строк
  • xdiff_string_bpatch — Применение бинарного патча к строке
  • xdiff_string_diff_binary — Псевдоним для xdiff_string_bdiff
  • xdiff_string_diff — Создать обычный патч для двух строк
  • xdiff_string_merge3 — Объединить три строки в одну
  • xdiff_string_patch_binary — Псевдоним для xdiff_string_bpatch
  • xdiff_string_patch — Применить обычный патч к строке
  • xdiff_string_rabdiff — Сравнить две строки и создать бинарный патч используя полиноминальный алгоритм Rabin fingerprint


Получить размер файла после применения бинарного патча

  • « Функции xdiff
  • xdiff_file_bdiff »
  • PHP Manual
  • Функции xdiff
  • Получить размер файла после применения бинарного патча

xdiff_file_bdiff_size

(PECL xdiff >= 1.5.0)

xdiff_file_bdiff_size — Получить размер файла после применения бинарного патча

Описание

xdiff_file_bdiff_size ( string $file ) : int

Возвращает размер файла, который будет создан после применения бинарного патча из файла file.

Список параметров

file

Путь к бинарному патчу, созданному функциями xdiff_string_bdiff() или xdiff_string_rabdiff().

Возвращаемые значения

Возвращает размер файла, который будет создан.

Примеры

Пример #1 Пример использования xdiff_file_bdiff_size()

Следующий код получает размер файла, который будет создан после применения патча.

<?php
$length = xdiff_string_bdiff_size('file.bdiff');
echo "Размер результирующего файла будет $length байт";
?>

Смотрите также

  • xdiff_file_bdiff() - Создать бинарный патч сравнивая два файла
  • xdiff_file_rabdiff() - Создать бинарный патч сравнивая два файла с помощью полиноминального алгоритма Rabin fingerprinting
  • xdiff_file_bpatch() - Применить бинарный патч к файлу


Создать бинарный патч сравнивая два файла

  • « xdiff_file_bdiff_size
  • xdiff_file_bpatch »
  • PHP Manual
  • Функции xdiff
  • Создать бинарный патч сравнивая два файла

xdiff_file_bdiff

(PECL xdiff >= 1.5.0)

xdiff_file_bdiff — Создать бинарный патч сравнивая два файла

Описание

xdiff_file_bdiff ( string $old_file , string $new_file , string $dest ) : bool

Создает файл бинарного патча сравнивая два файла. Эта функция работает как с бинарными, так и с текстовыми файлами. В дальнейшем, полученный патч можно применить с помощью функций xdiff_file_bpatch()/xdiff_string_bpatch().

Список параметров

old_file

Путь к первому, "старому" файлу.

new_file

Путь ко второму, "новому" файлу.

dest

Путь результирующего файла патча. Он будет содержать различия между старым и новым файлом в бинарном, человеконечитаемом формате.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования xdiff_file_bdiff()

Следующий код создает бинарный патч.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_bdiff($old_version, $new_version, 'my_script.bdiff');
?>

Примечания

Замечание:

Оба файла будут загружены в память, так что убедитесь, что параметр memory_limit настроен корректно.

Смотрите также

  • xdiff_file_bpatch() - Применить бинарный патч к файлу


Применить бинарный патч к файлу

  • « xdiff_file_bdiff
  • xdiff_file_diff_binary »
  • PHP Manual
  • Функции xdiff
  • Применить бинарный патч к файлу

xdiff_file_bpatch

(PECL xdiff >= 1.5.0)

xdiff_file_bpatch — Применить бинарный патч к файлу

Описание

xdiff_file_bpatch ( string $file , string $patch , string $dest ) : bool

Применить к файлу file патч patch и записать результат в в файл dest. Эта функция принимает патчи, созданные как xdiff_file_bdiff() так и xdiff_file_rabdiff() или же их копии.

Список параметров

file

Оригинальный файл.

patch

Файл бинарного патча.

dest

Итоговый файл.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования xdiff_file_bpatch()

В следующем коде показано применение бинарного патча к файлу.

<?php
$old_version = 'archive-1.0.tgz';
$patch = 'archive.bpatch';

$result = xdiff_file_bpatch($old_version, $patch, 'archive-1.1.tgz');
if ($result) {
   echo "Файл пропатчен";
} else {
   echo "Файл не может быть пропатчен";
}

?>

Примечания

Замечание:

Оба файла (file и patch) будут загружены в память, так что убедитесь, что параметр memory_limit настроен корректно.

Смотрите также

  • xdiff_file_bdiff() - Создать бинарный патч сравнивая два файла
  • xdiff_file_rabdiff() - Создать бинарный патч сравнивая два файла с помощью полиноминального алгоритма Rabin fingerprinting


Псевдоним для xdiff_file_bdiff

  • « xdiff_file_bpatch
  • xdiff_file_diff »
  • PHP Manual
  • Функции xdiff
  • Псевдоним для xdiff_file_bdiff

xdiff_file_diff_binary

(PECL xdiff >= 0.2.0)

xdiff_file_diff_binary — Псевдоним для xdiff_file_bdiff

Описание

xdiff_file_diff_binary ( string $old_file , string $new_file , string $dest ) : bool

Создает файл бинарного патча сравнивая два файла. Эта функция работает, как с бинарными, так и с текстовыми файлами. В дальнейшем, полученный патч можно применить с помощью функций xdiff_file_bpatch().

Начиная с версии 1.5.0, эта функция является псевдонимом xdiff_file_bdiff().

Список параметров

old_file

Путь к первому, "старому" файлу.

new_file

Путь ко второму, "новому" файлу.

dest

Путь результирующего файла патча. Он будет содержать различия между старым и новым файлом в бинарном, человеконечитаемом.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Апмсер использования xdiff_file_diff_binary()

Следующий код создает бинарный патч сравнивая два архива.

<?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');
?>

Примечания

Замечание:

Оба файла будут загружены в память, так что убедитесь, что параметр memory_limit настроен корректно.

Смотрите также

  • xdiff_file_bdiff() - Создать бинарный патч сравнивая два файла
  • xdiff_file_bpatch() - Применить бинарный патч к файлу


Создать унифицированный патч из сравнения двух файлов

  • « xdiff_file_diff_binary
  • xdiff_file_merge3 »
  • PHP Manual
  • Функции xdiff
  • Создать унифицированный патч из сравнения двух файлов

xdiff_file_diff

(PECL xdiff >= 0.2.0)

xdiff_file_diff — Создать унифицированный патч из сравнения двух файлов

Описание

xdiff_file_diff ( string $old_file , string $new_file , string $dest [, int $context = 3 [, bool $minimal = FALSE ]] ) : bool

Создает унифицированный патч, содержащий различия двух файлов old_file и new_file и сохраняет его в файл dest. Результат человекочитаемый. Необязательный параметр context указывает, сколько строк контекста должно быть добавлено вокруг каждой измененной строки. Задание параметра minimal равным TRUE приведет к созданию максимально короткого патча, что может занять много времени.

Список параметров

old_file

Путь к первому, "старому" файлу.

new_file

Путь ко второму, "новому" файлу.

dest

Путь к файлу патча.

context

Указывает, сколько строк контекста необходимо включить в патч.

minimal

Установите равным TRUE, чтобы минимизировать размер патча. Может занять продолжительное время.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования xdiff_file_diff()

В следующем примере создается унифицированный патч двух скриптов php с величиной контекста 2.

<?php
$old_version = 'my_script.php';
$new_version = 'my_new_script.php';

xdiff_file_diff($old_version, $new_version, 'my_script.diff', 2);
?>

Примечания

Замечание:

С бинарными данными эта функция работает плохо. Для бинарных патчей используйте xdiff_file_bdiff()/xdiff_file_rabdiff().

Смотрите также

  • xdiff_file_patch() - Применение унифицированного патча к файлу


Объединение трех файлов в один

  • « xdiff_file_diff
  • xdiff_file_patch_binary »
  • PHP Manual
  • Функции xdiff
  • Объединение трех файлов в один

xdiff_file_merge3

(PECL xdiff >= 0.2.0)

xdiff_file_merge3 — Объединение трех файлов в один

Описание

xdiff_file_merge3 ( string $old_file , string $new_file1 , string $new_file2 , string $dest ) : mixed

Объединяет три файла в один и сохраняет результат в dest. Файл old_file является оригинальным файлом, тогда как new_file1 и new_file2 его модифицированными версиями.

Список параметров

old_file

Путь к первому, "старому" файлу.

new_file1

Путь ко второму файлу. Модифицированной версии old_file.

new_file2

Путь к третьему файлу. Модифицированной версии old_file.

dest

Путь к результирующему файлу, который будет содержать объединенные изменения из new_file1 и new_file2.

Возвращаемые значения

Возвращает TRUE, если объединение прошло успешно, строку с отклоненными данными, если нет, и FALSE в случае внутренней ошибки.

Примеры

Пример #1 Пример использования xdiff_file_merge3()

Следующий код объединяет три файла.

<?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 "Отклонены:\n";
    echo $errors;
}
?>

Смотрите также

  • xdiff_string_merge3() - Объединить три строки в одну


Псевдоним для xdiff_file_bpatch

  • « xdiff_file_merge3
  • xdiff_file_patch »
  • PHP Manual
  • Функции xdiff
  • Псевдоним для xdiff_file_bpatch

xdiff_file_patch_binary

(PECL xdiff >= 0.2.0)

xdiff_file_patch_binary — Псевдоним для xdiff_file_bpatch

Описание

xdiff_file_patch_binary ( string $file , string $patch , string $dest ) : bool

Применить к файлу file патч patch и записать результат в в файл dest. Эта функция принимает патчи созданные как xdiff_file_bdiff() так и xdiff_file_rabdiff() или же их копии.

Начиная с версии 1.5.0, эта функция является псевдонимом xdiff_file_bpatch().

Список параметров

file

Оригинальный файл.

patch

Файл бинарного патча.

dest

Итоговый файл.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования xdiff_file_patch_binary()

В следующем коде показано применение бинарного патча к файлу.

<?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 "Файл пропатчен";
} else {
   echo "Файл не может быть пропатчен";
}

?>

Примечания

Замечание:

Оба файла (file и patch) будут загружены в память, так что убедитесь, что параметр memory_limit настроен корректно.

Смотрите также

  • xdiff_string_patch_binary() - Псевдоним для xdiff_string_bpatch


Применение унифицированного патча к файлу

  • « xdiff_file_patch_binary
  • xdiff_file_rabdiff »
  • PHP Manual
  • Функции xdiff
  • Применение унифицированного патча к файлу

xdiff_file_patch

(PECL xdiff >= 0.2.0)

xdiff_file_patch — Применение унифицированного патча к файлу

Описание

xdiff_file_patch ( string $file , string $patch , string $dest [, int $flags = DIFF_PATCH_NORMAL ] ) : mixed

Применяет к файлу file патча patch и сохраняет результат в файл. patch должен быть унифицированным патчем, созданным функциями xdiff_file_diff()/xdiff_string_diff(). Необязательный параметр flags задает режим операции.

Список параметров

file

Оригинальный файл.

patch

Унифицированный патч. Его можно создать функциями xdiff_string_diff() и xdiff_file_diff(), либо другими совместимыми инструментами.

dest

Путь к результирующему файлу.

flags

Может быть XDIFF_PATCH_NORMAL (режим по умолчанию, нормальное создание патча) или XDIFF_PATCH_REVERSE (откат патча).

Начиная с версии 1.5.0 вы можете использовать побитовое ИЛИ для подключения флага XDIFF_PATCH_IGNORESPACE.

Возвращаемые значения

Возвращает TRUE, если создание патча прошло успешно, строку с отклоненными данными, если нет, и FALSE в случае внутренней ошибки.

Примеры

Пример #1 Пример использования xdiff_file_patch()

Следующий код применяет унифицированный патч к файлу.

<?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 "Отклонены:\n";
   echo $errors;
}

?>

Пример #2 Patch reversing example

Следующий код применяет откат патча к файлу.

<?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 "Отклонены:\n";
   echo $errors;
}

?>

Смотрите также

  • xdiff_file_diff() - Создать унифицированный патч из сравнения двух файлов


Создать бинарный патч сравнивая два файла с помощью полиноминального алгоритма Rabin fingerprinting

  • « xdiff_file_patch
  • xdiff_string_bdiff_size »
  • PHP Manual
  • Функции xdiff
  • Создать бинарный патч сравнивая два файла с помощью полиноминального алгоритма Rabin fingerprinting

xdiff_file_rabdiff

(PECL xdiff >= 1.5.0)

xdiff_file_rabdiff — Создать бинарный патч сравнивая два файла с помощью полиноминального алгоритма Rabin fingerprinting

Описание

xdiff_file_rabdiff ( string $old_file , string $new_file , string $dest ) : bool

Создает бинарный патч сравнивая два файла и сохраняет результат в файл. Эта функция отличается от xdiff_file_bdiff() используемым алгоритмом, который работает быстрее и производит патчи меньшего размера. Эта функция работает как с текстом, так и с бинарными данными. Патч впоследствии можно применить с помощью функций xdiff_file_bpatch()/xdiff_string_bpatch().

Более подробно разница алгоритмов объяснена на сайте » libxdiff.

Список параметров

old_file

Путь к первому, "старому" файлу.

new_file

Путь ко второму, "новому" файлу.

dest

Путь результирующего файла патча. Он будет содержать различия между старым и новым файлом в бинарном, человеконечитаемом формате.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования xdiff_file_rabdiff()

Следующий код сравнивает два архива и создает патч.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_rabdiff($old_version, $new_version, 'my_script.bdiff');
?>

Примечания

Замечание:

Оба файла будут загружены в память, так что убедитесь, что параметр memory_limit настроен корректно.

Смотрите также

  • xdiff_file_bpatch() - Применить бинарный патч к файлу


Получить размер файла созданного после применения бинарного патча

  • « xdiff_file_rabdiff
  • xdiff_string_bdiff »
  • PHP Manual
  • Функции xdiff
  • Получить размер файла созданного после применения бинарного патча

xdiff_string_bdiff_size

(PECL xdiff >= 1.5.0)

xdiff_string_bdiff_size — Получить размер файла созданного после применения бинарного патча

Описание

xdiff_string_bdiff_size ( string $patch ) : int

Возвращает размер файла, который будет создан после применения бинарного патча (patch) к оригинальному файлу.

Список параметров

patch

Бинарный патч, созданный функциями xdiff_string_bdiff() или xdiff_string_rabdiff().

Возвращаемые значения

Возвращает расчитанный размер файла в байтах.

Примеры

Пример #1 Пример использования xdiff_string_bdiff_size()

В следующем коде производится подсчет результирующего размера файла после применения бинарного патча.

<?php
$binary_patch = file_get_contents('file.bdiff');
$length = xdiff_string_bdiff_size($binary_patch);
echo "Результирующий файл будет занимать $length байт";
?>

Смотрите также

  • xdiff_string_bdiff() - Создать бинарный патч для двух строк
  • xdiff_string_rabdiff() - Сравнить две строки и создать бинарный патч используя полиноминальный алгоритм Rabin fingerprint
  • xdiff_string_bpatch() - Применение бинарного патча к строке


Создать бинарный патч для двух строк

  • « xdiff_string_bdiff_size
  • xdiff_string_bpatch »
  • PHP Manual
  • Функции xdiff
  • Создать бинарный патч для двух строк

xdiff_string_bdiff

(PECL xdiff >= 1.5.0)

xdiff_string_bdiff — Создать бинарный патч для двух строк

Описание

xdiff_string_bdiff ( string $old_data , string $new_data ) : string

Производит бинарное сравнение двух строк и возвращает патч. Эта функция работает как с текстом, там и с бинарными данными. Полученный патч впоследствии можно применить с помощью функций xdiff_string_bpatch() и xdiff_file_bpatch().

Список параметров

old_data

Первая строка с бинарными данными. Это будут "старые" данные.

new_data

Вторая строка с бинарными данными. Это будут "новые" данные.

Возвращаемые значения

Возвращает строку с бинарным патчем, содержащим разницу между "старыми" и "новыми" данными, либо FALSE в случае возникновения ошибки.

Смотрите также

  • xdiff_string_bpatch() - Применение бинарного патча к строке


Применение бинарного патча к строке

  • « xdiff_string_bdiff
  • xdiff_string_diff_binary »
  • PHP Manual
  • Функции xdiff
  • Применение бинарного патча к строке

xdiff_string_bpatch

(PECL xdiff >= 1.5.0)

xdiff_string_bpatch — Применение бинарного патча к строке

Описание

xdiff_string_bpatch ( string $str , string $patch ) : string

Применяет к строке str бинарный патч patch. Эта функция принимает патчи созданные как xdiff_string_bdiff(), так и xdiff_string_rabdiff().

Список параметров

str

Оригинальная бинарная строка.

patch

Строка с бинарным патчем.

Возвращаемые значения

Возвращает измененную строку, либо FALSE в случае возникновения ошибки.

Смотрите также

  • xdiff_string_bdiff() - Создать бинарный патч для двух строк
  • xdiff_string_rabdiff() - Сравнить две строки и создать бинарный патч используя полиноминальный алгоритм Rabin fingerprint


Псевдоним для xdiff_string_bdiff

  • « xdiff_string_bpatch
  • xdiff_string_diff »
  • PHP Manual
  • Функции xdiff
  • Псевдоним для xdiff_string_bdiff

xdiff_string_diff_binary

(PECL xdiff >= 0.2.0)

xdiff_string_diff_binary — Псевдоним для xdiff_string_bdiff

Описание

xdiff_string_bdiff ( string $old_data , string $new_data ) : string

Производит бинарное сравнение двух строк и возвращает патч. Эта функция работает как с текстом, там и с бинарными данными. Полученный патч впоследствии можно применить с помощью функций xdiff_string_bpatch() и xdiff_file_bpatch().

Начиная с версии 1.5.0 является псевдонимом для xdiff_string_bdiff().

Список параметров

old_data

Первая строка с бинарными данными. Это будут "старые" данные.

new_data

Вторая строка с бинарными данными. Это будут "новые" данные.

Возвращаемые значения

Возвращает строку с бинарным патчем, содержащим разницу между "старыми" и "новыми" данными, либо FALSE в случае возникновения ошибки.

Смотрите также

  • xdiff_string_bdiff() - Создать бинарный патч для двух строк
  • xdiff_string_bpatch() - Применение бинарного патча к строке


Создать обычный патч для двух строк

  • « xdiff_string_diff_binary
  • xdiff_string_merge3 »
  • PHP Manual
  • Функции xdiff
  • Создать обычный патч для двух строк

xdiff_string_diff

(PECL xdiff >= 0.2.0)

xdiff_string_diff — Создать обычный патч для двух строк

Описание

xdiff_string_diff ( string $old_data , string $new_data [, int $context = 3 [, bool $minimal = FALSE ]] ) : string

Создает патч для строк old_data и new_data. Итоговый патч человекочитаем. Опциональный параметр context указывает, сколько строк контекста должно быть добавлено в патч вокруг каждого различия. Установка параметра minimal в значение TRUE позволит получить максимально короткий патч (может занять много времени).

Список параметров

old_data

Первая строка с данными. Это будут "старые" данные.

new_data

Вторая строка с данными. Это будут "новые" данные.

context

Количество строк контекста вокруг каждого изменения.

minimal

Если TRUE, то будет создан максимально короткий патч (может занять много времени).

Возвращаемые значения

Возвращает строку с патчем, либо FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования xdiff_string_diff()

Следующий код выведет различия двух статей.

<?php
$old_article = file_get_contents('./old_article.txt');
$new_article = $_REQUEST['article']; /* Допустим кто-то отправил новую статью через html-форму */

$diff = xdiff_string_diff($old_article, $new_article, 1);
if (is_string($diff)) {
    echo "Различия в двух статьях:\n";
    echo $diff;
}

?>

Примечания

Замечание:

Эта функция не предназначена для работы с бинарными данными. Для бинарного сравнения используйте xdiff_string_bdiff() и xdiff_string_rabdiff().

Смотрите также

  • xdiff_string_patch() - Применить обычный патч к строке


Объединить три строки в одну

  • « xdiff_string_diff
  • xdiff_string_patch_binary »
  • PHP Manual
  • Функции xdiff
  • Объединить три строки в одну

xdiff_string_merge3

(PECL xdiff >= 0.2.0)

xdiff_string_merge3 — Объединить три строки в одну

Описание

xdiff_string_merge3 ( string $old_data , string $new_data1 , string $new_data2 [, string &$error ] ) : mixed

Объединяет три строки в одну и возвращает результат. В параметре old_data задается оригинальная строка, а в в new_data1 и new_data2 - ее модифицированные версии. Опциональный параметр error используется для сохранения ошибок в процессе объединения.

Список параметров

old_data

Первая строка с данными. Это будут "старые" данные.

new_data1

Вторая строка с данными. Модифицированная версия old_data.

new_data2

Третья строка с данными. Модифицированная версия old_data.

error

Если задан, то сюда будут записываться возникшие ошибки.

Возвращаемые значения

Возвращает полученную строку, FALSE в случае возникновения ошибки или TRUE, если полученная строка пуста.

Смотрите также

  • xdiff_file_merge3() - Объединение трех файлов в один


Псевдоним для xdiff_string_bpatch

  • « xdiff_string_merge3
  • xdiff_string_patch »
  • PHP Manual
  • Функции xdiff
  • Псевдоним для xdiff_string_bpatch

xdiff_string_patch_binary

(PECL xdiff >= 0.2.0)

xdiff_string_patch_binary — Псевдоним для xdiff_string_bpatch

Описание

xdiff_string_patch_binary ( string $str , string $patch ) : string

Применяет к строке str бинарный патч patch. Эта функция принимает патчи созданные как xdiff_string_bdiff(), так и xdiff_string_rabdiff().

Начиная с версии 1.5.0 является псевдонимом для xdiff_string_bpatch().

Список параметров

str

Оригинальная бинарная строка.

patch

Строка с бинарным патчем.

Возвращаемые значения

Возвращает измененную строку, либо FALSE в случае возникновения ошибки.

Смотрите также

  • xdiff_string_bpatch() - Применение бинарного патча к строке
  • xdiff_string_bdiff() - Создать бинарный патч для двух строк
  • xdiff_string_rabdiff() - Сравнить две строки и создать бинарный патч используя полиноминальный алгоритм Rabin fingerprint


Применить обычный патч к строке

  • « xdiff_string_patch_binary
  • xdiff_string_rabdiff »
  • PHP Manual
  • Функции xdiff
  • Применить обычный патч к строке

xdiff_string_patch

(PECL xdiff >= 0.2.0)

xdiff_string_patch — Применить обычный патч к строке

Описание

xdiff_string_patch ( string $str , string $patch [, int $flags [, string &$error ]] ) : string

Применяет к строке str обычный патч patch и возвращает результат. patch должен быть обычным патчем, созданным с помощью функций xdiff_file_diff() или xdiff_string_diff(). Опциональный параметр flags задает режим операции. Все отвергнутые части патча будут записаны в переменную error.

Список параметров

str

Оригинальная строка.

patch

Стандартный патч. Должен быть создан функциями xdiff_string_diff(), или xdiff_file_diff(), либо с помощью инструментов, создающих совместимые патчи.

flags

flags может быть XDIFF_PATCH_NORMAL (режим по умолчанию, нормальный патч) или XDIFF_PATCH_REVERSE (реверсивный патч).

Начиная с версии 1.5.0 можно использовать бинарное ИЛИ для добавления флага XDIFF_PATCH_IGNORESPACE.

error

Если задан, то в эту переменную будут записаны все отвергнутые части патча.

Возвращаемые значения

Возвращает строку, либо FALSE в случае возникновения ошибке.

Примеры

Пример #1 Пример использования xdiff_string_patch()

Следующий код применяет патч к статье.

<?php
$old_article = file_get_contents('./old_article.txt');
$diff = $_SERVER['patch']; /* Допустим кто-то отправил патч через html-форму */

$errors = '';

$new_article = xdiff_string_patch($old_article, $diff, XDIFF_PATCH_NORMAL, $errors);
if (is_string($new_article)) {
    echo "Новая статья:\n";
    echo $new_article;
}

if (strlen($errors)) {
    echo "Отклонены: \n";
    echo $errors;
}

?>

Смотрите также

  • xdiff_string_diff() - Создать обычный патч для двух строк


Сравнить две строки и создать бинарный патч используя полиноминальный алгоритм Rabin fingerprint

  • « xdiff_string_patch
  • Поддержка языков и кодировок »
  • PHP Manual
  • Функции xdiff
  • Сравнить две строки и создать бинарный патч используя полиноминальный алгоритм Rabin fingerprint

xdiff_string_rabdiff

(PECL xdiff >= 1.5.0)

xdiff_string_rabdiff — Сравнить две строки и создать бинарный патч используя полиноминальный алгоритм Rabin fingerprint

Описание

xdiff_string_bdiff ( string $old_data , string $new_data ) : string

Создает бинарный патч для двух строк и возвращает результат. Разница между этой функцией и xdiff_string_bdiff() в используемом алгоритме, который работает быстрее и создает более короткий патч. Эта функция работает как с текстовыми, так и с бинарными данными. Полученный патч впоследствии можно применить с помощью функций xdiff_string_bpatch() и xdiff_file_bpatch().

Более подробно о различиях в алгоритмах читайте на сайте » libxdiff.

Список параметров

old_data

Первая строка с бинарными данными. Это будут "старые" данные.

new_data

Вторая строка с бинарными данными. Это будут "новые" данные.

Возвращаемые значения

Возвращает строку с бинарным патчем, содержащим разницу между "старыми" и "новыми" данными, либо FALSE в случае возникновения ошибки.

Смотрите также

  • xdiff_string_bpatch() - Применение бинарного патча к строке


Поддержка языков и кодировок

  • Enchant — Библиотека проверки правописания Enchant
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции Enchant
  • FriBiDi
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции FriBiDi
  • Gender — Определение пола по имени
    • Введение
    • Установка и настройка
    • Примеры
    • Gender\Gender — Класс Gender\Gender
  • Gettext
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции gettext
  • iconv
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции iconv
  • intl — Функции интернационализации
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Collator — Класс Collator
    • NumberFormatter — The NumberFormatter class
    • Locale — Класс Locale
    • Normalizer — Класс Normalizer
    • MessageFormatter — The MessageFormatter class
    • IntlCalendar — Класс IntlCalendar
    • IntlGregorianCalendar — Класс IntlGregorianCalendar
    • IntlTimeZone — Класс IntlTimeZone
    • IntlDateFormatter — Класс IntlDateFormatter
    • ResourceBundle — Класс ResourceBundle
    • Spoofchecker — Класс Spoofchecker
    • Transliterator — Класс Transliterator
    • IntlBreakIterator — Класс IntlBreakIterator
    • IntlRuleBasedBreakIterator — Класс IntlRuleBasedBreakIterator
    • IntlCodePointBreakIterator — Класс IntlCodePointBreakIterator
    • IntlPartsIterator — Класс IntlPartsIterator
    • UConverter — Класс UConverter
    • Функции Grapheme
    • Функции IDN
    • IntlChar
    • IntlException — Класс исключений для ошибок intl
    • IntlIterator — Класс IntlIterator
    • Функции intl
  • Многобайтовые строки
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Краткий обзор поддерживаемых кодировок
    • Основы японских многобайтных кодировок
    • Ввод и вывод HTTP
    • Поддерживаемые кодировки символов
    • Механизм перегрузки функций
    • Требования, предъявляемые к кодировкам символов в PHP
    • Функции для работы с многобайтовыми строками
  • Pspell
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Pspell
  • Recode — GNU Recode
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Recode


Библиотека проверки правописания Enchant

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции Enchant
    • enchant_broker_describe — Перечисляет провайдеров Enchant
    • enchant_broker_dict_exists — Проверяет, присутствует ли словарь или нет. Используется не пустой тег
    • enchant_broker_free_dict — Освобождает ресурс словаря
    • enchant_broker_free — Освобождает ресурс брокера и его словари
    • enchant_broker_get_dict_path — Возвращает путь словаря для заданного бэкенда
    • enchant_broker_get_error — Возвращает последнюю ошибку брокера
    • enchant_broker_init — Создать новый объект брокера
    • enchant_broker_list_dicts — Возвращает список доступных словарей
    • enchant_broker_request_dict — Создать новый словарь используя тег
    • enchant_broker_request_pwl_dict — Создать словарь используя файл PWL
    • enchant_broker_set_dict_path — Установить путь для заданного бэкенда
    • enchant_broker_set_ordering — Задать предпочтения по выбору словарей для языка
    • enchant_dict_add_to_personal — Добавить слово в список персональных слов
    • enchant_dict_add_to_session — Добавить слово в текущую сессию проверки
    • enchant_dict_check — Проверяет, корректно ли задано слово
    • enchant_dict_describe — Возвращает информацию о словаре
    • enchant_dict_get_error — Возвращает последнюю ошибку текущей сессии проверки
    • enchant_dict_is_in_session — Присутствует ли слово 'word' в сессии проверки
    • enchant_dict_quick_check — Проверить, правильно ли написано слово и предложить варианты замены
    • enchant_dict_store_replacement — Добавить исправление для слова
    • enchant_dict_suggest — Вернет список возможных вариантов для слова с ошибкой


Введение

Модуль Enchant является представлением в » библиотеке Enchant. Enchant позволяет обеспечить единообразие и согласованность всех библиотек орфографии и реализовать определенные функции, которые могут отсутствовать в какой-либо отдельной библиотеке. Все и везде должно "просто работать", при любом определении "просто работающего".

Enchant поддерживает следующие бекэнды:

  • Aspell/Pspell (со временем заменят Ispell)

  • Ispell (древний, как помет мамонта, но, по факту, является стандартом)

  • MySpell/Hunspell (проект OpenOffice.org, также используется Mozilla)

  • Uspell (В основном, идиш, иврит и восточноевропейские языки - размещается в CVS AbiWord в модуле "uspell")

  • Hspell (Иврит)

  • AppleSpell (Mac OSX)


Требования

Эта версия использует функции » библиотеки Enchant library, написанной Dom Lachowicz. Вам необходим Enchant версии 1.2.4 или выше. Enchant 2.0.0 и выше пока не поддерживается.

Также требуется » Glib 2.6 или выше. Скомпилированые библиотеки для Windows доступны по ссылке » http://ftp.gnome.org/pub/gnome/binaries/win32/glib/.


Установка

Этот модуль входит в поставку PHP начиная с PHP 5.3.0. Для более ранних версий этот модуль доступен, как » модуль PECL.

Если установлены необходимые библиотеки, то модуль можно установить с помощью опции --with-enchant[=dir] при компиляции PHP.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

В этом модуле используются два типа ресурсов. Первый для брокера (менеджер бекэндов). Второй для словаря.


Предопределенные константы

ENCHANT_MYSPELL (integer)
Тип словаря MySpell. Используется с enchant_broker_get_dict_path() и enchant_broker_set_dict_path().
ENCHANT_ISPELL (integer)
Тип словаря Ispell. Используется с enchant_broker_get_dict_path() и enchant_broker_set_dict_path().


Примеры

Пример #1 Пример использования Enchant

<?php
$tag = 'en_US';
$r = enchant_broker_init();
$bprovides = enchant_broker_describe($r);
echo "Доступны следующие бекэнды:\n";
print_r($bprovides);

$dicts = enchant_broker_list_dicts($r);
print_r($dicts);
if (enchant_broker_dict_exists($r,$tag)) {
    $d = enchant_broker_request_dict($r, $tag);
    $dprovides = enchant_dict_describe($d);
    echo "словарь $tag:\n";
    $wordcorrect = enchant_dict_check($d, "soong");
    print_r($dprovides);
    if (!$wordcorrect) {
        $suggs = enchant_dict_suggest($d, "soong");
        echo "Предложения для 'soong':";
        print_r($suggs);
    }
    enchant_broker_free_dict($d);
} else {
}
enchant_broker_free($r);
?>


Функции Enchant

Содержание

  • enchant_broker_describe — Перечисляет провайдеров Enchant
  • enchant_broker_dict_exists — Проверяет, присутствует ли словарь или нет. Используется не пустой тег
  • enchant_broker_free_dict — Освобождает ресурс словаря
  • enchant_broker_free — Освобождает ресурс брокера и его словари
  • enchant_broker_get_dict_path — Возвращает путь словаря для заданного бэкенда
  • enchant_broker_get_error — Возвращает последнюю ошибку брокера
  • enchant_broker_init — Создать новый объект брокера
  • enchant_broker_list_dicts — Возвращает список доступных словарей
  • enchant_broker_request_dict — Создать новый словарь используя тег
  • enchant_broker_request_pwl_dict — Создать словарь используя файл PWL
  • enchant_broker_set_dict_path — Установить путь для заданного бэкенда
  • enchant_broker_set_ordering — Задать предпочтения по выбору словарей для языка
  • enchant_dict_add_to_personal — Добавить слово в список персональных слов
  • enchant_dict_add_to_session — Добавить слово в текущую сессию проверки
  • enchant_dict_check — Проверяет, корректно ли задано слово
  • enchant_dict_describe — Возвращает информацию о словаре
  • enchant_dict_get_error — Возвращает последнюю ошибку текущей сессии проверки
  • enchant_dict_is_in_session — Присутствует ли слово 'word' в сессии проверки
  • enchant_dict_quick_check — Проверить, правильно ли написано слово и предложить варианты замены
  • enchant_dict_store_replacement — Добавить исправление для слова
  • enchant_dict_suggest — Вернет список возможных вариантов для слова с ошибкой


Перечисляет провайдеров Enchant

  • « Функции Enchant
  • enchant_broker_dict_exists »
  • PHP Manual
  • Функции Enchant
  • Перечисляет провайдеров Enchant

enchant_broker_describe

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0)

enchant_broker_describe — Перечисляет провайдеров Enchant

Описание

enchant_broker_describe ( resource $broker ) : array

Перечисляет провайдеров Enchant и возвращает минимальную информацию о них. Та же информация может быть получена через phpinfo().

Список параметров

broker

Ресурс брокера

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Список бэкендов предоставляемых конкретным брокером

<?php
$r = enchant_broker_init();
$bprovides = enchant_broker_describe($r);
echo "Брокер предоставляет следующие бэкэнды:\n";
print_r($bprovides);

?>

Результатом выполнения данного примера будет что-то подобное:

Брокер предоставляет следующие бэкэнды:
Array
(
    [0] => Array
        (
            [name] => aspell
            [desc] => Aspell Provider
            [file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [1] => Array
        (
            [name] => hspell
            [desc] => Hspell Provider
            [file] => /usr/lib/enchant/libenchant_hspell.so
        )

    [2] => Array
        (
            [name] => ispell
            [desc] => Ispell Provider
            [file] => /usr/lib/enchant/libenchant_ispell.so
        )

    [3] => Array
        (
            [name] => myspell
            [desc] => Myspell Provider
            [file] => /usr/lib/enchant/libenchant_myspell.so
        )

)


Проверяет, присутствует ли словарь или нет. Используется не пустой тег

  • « enchant_broker_describe
  • enchant_broker_free_dict »
  • PHP Manual
  • Функции Enchant
  • Проверяет, присутствует ли словарь или нет. Используется не пустой тег

enchant_broker_dict_exists

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_dict_exists — Проверяет, присутствует ли словарь или нет. Используется не пустой тег

Описание

enchant_broker_dict_exists ( resource $broker , string $tag ) : bool

Проверяет, присутствует ли словарь или нет используя не пустой тег

Список параметров

broker

Ресурс брокера

tag

Не пустой тег в формате LOCALE, т.е.: us_US, ch_DE и т.д.

Возвращаемые значения

Возвращает TRUE или FALSE.

Примеры

Пример #1 Пример использования enchant_broker_dict_exists()

<?php
$tag = 'en_US';
$r = enchant_broker_init();
if (enchant_broker_dict_exists($r,$tag)) {
    echo $tag . " словарь найден.\n";
}
?>

Смотрите также

  • enchant_broker_describe() - Перечисляет провайдеров Enchant


Освобождает ресурс словаря

  • « enchant_broker_dict_exists
  • enchant_broker_free »
  • PHP Manual
  • Функции Enchant
  • Освобождает ресурс словаря

enchant_broker_free_dict

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_free_dict — Освобождает ресурс словаря

Описание

enchant_broker_free_dict ( resource $dict ) : bool

Освобождает ресурс словаря.

Список параметров

dict

Ресурс словаря.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • enchant_broker_request_dict() - Создать новый словарь используя тег
  • enchant_broker_request_pwl_dict() - Создать словарь используя файл PWL


Освобождает ресурс брокера и его словари

  • « enchant_broker_free_dict
  • enchant_broker_get_dict_path »
  • PHP Manual
  • Функции Enchant
  • Освобождает ресурс брокера и его словари

enchant_broker_free

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_free — Освобождает ресурс брокера и его словари

Описание

enchant_broker_free ( resource $broker ) : bool

Освобождает ресурс брокера и его словари.

Список параметров

broker

Ресурс брокера

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • enchant_broker_init() - Создать новый объект брокера


Возвращает путь словаря для заданного бэкенда

  • « enchant_broker_free
  • enchant_broker_get_error »
  • PHP Manual
  • Функции Enchant
  • Возвращает путь словаря для заданного бэкенда

enchant_broker_get_dict_path

(PHP 5 >= 5.3.1, PHP 7, PECL enchant >= 1.0.1)

enchant_broker_get_dict_path — Возвращает путь словаря для заданного бэкенда

Описание

enchant_broker_get_dict_path ( resource $broker , int $dict_type ) : bool

Возвращает путь словаря для заданного бэкенда.

Список параметров

broker

Ресурс брокера

dict_type

Тип словарей, т.е. ENCHANT_MYSPELL или ENCHANT_ISPELL.

Возвращаемые значения

Возвращает путь к директории словаря в лучае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • enchant_broker_set_dict_path() - Установить путь для заданного бэкенда


Возвращает последнюю ошибку брокера

  • « enchant_broker_get_dict_path
  • enchant_broker_init »
  • PHP Manual
  • Функции Enchant
  • Возвращает последнюю ошибку брокера

enchant_broker_get_error

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_get_error — Возвращает последнюю ошибку брокера

Описание

enchant_broker_get_error ( resource $broker ) : string

Возвращает последнюю ошибку, возникшую на брокере.

Список параметров

broker

Ресурс брокера

Возвращаемые значения

Возвращает строку с ошибкой, если таковая была, или FALSE


Создать новый объект брокера

  • « enchant_broker_get_error
  • enchant_broker_list_dicts »
  • PHP Manual
  • Функции Enchant
  • Создать новый объект брокера

enchant_broker_init

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_init — Создать новый объект брокера

Описание

enchant_broker_init ( void ) : resource

Список параметров

Возвращаемые значения

Возвращает ресурс брокера или FALSE, если возникла ошибка.

Смотрите также

  • enchant_broker_free() - Освобождает ресурс брокера и его словари


Возвращает список доступных словарей

  • « enchant_broker_init
  • enchant_broker_request_dict »
  • PHP Manual
  • Функции Enchant
  • Возвращает список доступных словарей

enchant_broker_list_dicts

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 1.0.1)

enchant_broker_list_dicts — Возвращает список доступных словарей

Описание

enchant_broker_list_dicts ( resource $broker ) : mixed

Возвращает список доступных словарей.

Список параметров

broker

Ресурс брокера

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Список всех доступных на брокере словарей

<?php
$r = enchant_broker_init();
$dicts = enchant_broker_list_dicts($r);
print_r($dicts);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [lang_tag] => de
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [1] => Array
        (
            [lang_tag] => de_DE
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [3] => Array
        (
            [lang_tag] => en
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [4] => Array
        (
            [lang_tag] => en_GB
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [5] => Array
        (
            [lang_tag] => en_US
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [6] => Array
        (
            [lang_tag] => hi_IN
            [provider_name] => myspell
            [provider_desc] => Myspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_myspell.so
        )

)

Смотрите также

  • enchant_broker_describe() - Перечисляет провайдеров Enchant


Создать новый словарь используя тег

  • « enchant_broker_list_dicts
  • enchant_broker_request_pwl_dict »
  • PHP Manual
  • Функции Enchant
  • Создать новый словарь используя тег

enchant_broker_request_dict

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_request_dict — Создать новый словарь используя тег

Описание

enchant_broker_request_dict ( resource $broker , string $tag ) : resource

Создает новый словарь используя не пустой языковой тег ("en_US", "ru_RU", ...)

Список параметров

broker

Ресурс брокера

tag

Тег описания локали, к примеру en_US, ru_RU

Возвращаемые значения

Возвращает ресурс словаря в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования enchant_broker_request_dict()

Проверяем, существует ли словарь с помощью enchant_broker_dict_exists() и, затем, запрашиваем его.

<?php
$tag = 'en_US';
$broker = enchant_broker_init();
if (enchant_broker_dict_exists($broker,$tag)) {
    $dict = enchant_broker_request_dict($r, $tag);
}
?>

Смотрите также

  • enchant_dict_describe() - Возвращает информацию о словаре
  • enchant_broker_dict_exists() - Проверяет, присутствует ли словарь или нет. Используется не пустой тег
  • enchant_broker_free_dict() - Освобождает ресурс словаря


Создать словарь используя файл PWL

  • « enchant_broker_request_dict
  • enchant_broker_set_dict_path »
  • PHP Manual
  • Функции Enchant
  • Создать словарь используя файл PWL

enchant_broker_request_pwl_dict

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_request_pwl_dict — Создать словарь используя файл PWL

Описание

enchant_broker_request_pwl_dict ( resource $broker , string $filename ) : resource

Создает словарь используя файл PWL. Файл PWL - это пользовательский файл со словами, по одному слову на строку.

Список параметров

broker

Ресурс брокера

filename

Путь к файлу PWL. Если файл отсутствует, то будет создан новый с таким именем, если возможно.

Возвращаемые значения

Возвращает ресурс словаря в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • enchant_dict_describe() - Возвращает информацию о словаре
  • enchant_broker_dict_exists() - Проверяет, присутствует ли словарь или нет. Используется не пустой тег
  • enchant_broker_free_dict() - Освобождает ресурс словаря


Установить путь для заданного бэкенда

  • « enchant_broker_request_pwl_dict
  • enchant_broker_set_ordering »
  • PHP Manual
  • Функции Enchant
  • Установить путь для заданного бэкенда

enchant_broker_set_dict_path

(PHP 5 >= 5.3.1, PHP 7, PECL enchant >= 1.0.1)

enchant_broker_set_dict_path — Установить путь для заданного бэкенда

Описание

enchant_broker_set_dict_path ( resource $broker , int $dict_type , string $value ) : bool

Установить путь для заданного бэкенда.

Список параметров

broker

Ресурс брокера

dict_type

Тип словарей, т.е. ENCHANT_MYSPELL или ENCHANT_ISPELL.

value

Путь к директории со словарями.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • enchant_broker_get_dict_path() - Возвращает путь словаря для заданного бэкенда


Задать предпочтения по выбору словарей для языка

  • « enchant_broker_set_dict_path
  • enchant_dict_add_to_personal »
  • PHP Manual
  • Функции Enchant
  • Задать предпочтения по выбору словарей для языка

enchant_broker_set_ordering

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_set_ordering — Задать предпочтения по выбору словарей для языка

Описание

enchant_broker_set_ordering ( resource $broker , string $tag , string $ordering ) : bool

Задает предпочтения по выбору словарей для языка, описанный с помощью тега 'tag'. Порядок задается с помощью списка имен провайдеров, разделенных запятыми. В особых случаях можно использовать тег "*" для определения порядка для всех языков, для которых этот порядок не задается явно.

Список параметров

broker

Ресурс брокера

tag

Языковой тег. В особых случаях можно использовать тег "*" для определения порядка для всех языков, для которых этот порядок не задается явно.

ordering

Список имен провайдеров, разделенных запятыми

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Добавить слово в список персональных слов

  • « enchant_broker_set_ordering
  • enchant_dict_add_to_session »
  • PHP Manual
  • Функции Enchant
  • Добавить слово в список персональных слов

enchant_dict_add_to_personal

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_add_to_personal — Добавить слово в список персональных слов

Описание

enchant_dict_add_to_personal ( resource $dict , string $word ) : void

Добавить слово в список персональных слов заданного словаря.

Список параметров

dict

Ресурс словаря

word

Слово для добавления

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример #1 Добавить слово в PWL

<?php

$filename = './my_word_list.pwl';
$word = 'Supercalifragilisticexpialidocious';

$broker = enchant_broker_init();
$dict = enchant_broker_request_pwl_dict($broker, $filename);

enchant_dict_add_to_personal($dict, $word);

enchant_broker_free($broker);

?>

Смотрите также

  • enchant_broker_request_pwl_dict() - Создать словарь используя файл PWL
  • enchant_broker_request_dict() - Создать новый словарь используя тег


Добавить слово в текущую сессию проверки

  • « enchant_dict_add_to_personal
  • enchant_dict_check »
  • PHP Manual
  • Функции Enchant
  • Добавить слово в текущую сессию проверки

enchant_dict_add_to_session

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_add_to_session — Добавить слово в текущую сессию проверки

Описание

enchant_dict_add_to_session ( resource $dict , string $word ) : void

Добавляет слово в заданный словарь. Слово будет присутствовать только в текущей сессии проверки.

Список параметров

dict

Ресурс словаря

word

Слово для добавления

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • enchant_broker_request_dict() - Создать новый словарь используя тег


Проверяет, корректно ли задано слово

  • « enchant_dict_add_to_session
  • enchant_dict_describe »
  • PHP Manual
  • Функции Enchant
  • Проверяет, корректно ли задано слово

enchant_dict_check

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_check — Проверяет, корректно ли задано слово

Описание

enchant_dict_check ( resource $dict , string $word ) : bool

Возвращает TRUE, если слово написано без ошибок или FALSE, если с ошибками.

Список параметров

dict

Ресурс словаря

word

Слово для проверки

Возвращаемые значения

Возвращает TRUE, если слово написано без ошибок или FALSE, если с ошибками.


Возвращает информацию о словаре

  • « enchant_dict_check
  • enchant_dict_get_error »
  • PHP Manual
  • Функции Enchant
  • Возвращает информацию о словаре

enchant_dict_describe

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_describe — Возвращает информацию о словаре

Описание

enchant_dict_describe ( resource $dict ) : mixed

Возвращает информацию о словаре.

Список параметров

dict

Ресурс словаря

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования enchant_dict_describe()

Проверим, что словарь есть с помощью enchant_broker_dict_exists() и получим информацию о нем.

<?php
$tag = 'en_US';
$broker = enchant_broker_init();
if (enchant_broker_dict_exists($broker,$tag)) {
    $dict = enchant_broker_request_dict($r, $tag);
    $dict_details = enchant_dict_describe($dict);
    print_r($dict_details);
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [lang] => en_US
    [name] => aspell
    [desc] => Aspell Provider
    [file] => /usr/lib/enchant/libenchant_aspell.so
)


Возвращает последнюю ошибку текущей сессии проверки

  • « enchant_dict_describe
  • enchant_dict_is_in_session »
  • PHP Manual
  • Функции Enchant
  • Возвращает последнюю ошибку текущей сессии проверки

enchant_dict_get_error

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_get_error — Возвращает последнюю ошибку текущей сессии проверки

Описание

enchant_dict_get_error ( resource $dict ) : string

Возвращает последнюю ошибку текущей сессии проверки.

Список параметров

dict

Ресурс словаря

Возвращаемые значения

Возвращает строку с ошибкой или FALSE, если таковой нет.


Присутствует ли слово 'word' в сессии проверки

  • « enchant_dict_get_error
  • enchant_dict_quick_check »
  • PHP Manual
  • Функции Enchant
  • Присутствует ли слово 'word' в сессии проверки

enchant_dict_is_in_session

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_is_in_session — Присутствует ли слово 'word' в сессии проверки

Описание

enchant_dict_is_in_session ( resource $dict , string $word ) : bool

Проверяет, присутствует ли заданное слово в текущей сессии.

Список параметров

dict

Ресурс словаря

word

Слово для поиска

Возвращаемые значения

Возвращает TRUE или FALSE

Смотрите также

  • enchant_dict_add_to_session() - Добавить слово в текущую сессию проверки


Проверить, правильно ли написано слово и предложить варианты замены

  • « enchant_dict_is_in_session
  • enchant_dict_store_replacement »
  • PHP Manual
  • Функции Enchant
  • Проверить, правильно ли написано слово и предложить варианты замены

enchant_dict_quick_check

(PHP 5 >= 5.3.0, PHP 7, PECL enchant:0.2.0-1.0.1)

enchant_dict_quick_check — Проверить, правильно ли написано слово и предложить варианты замены

Описание

enchant_dict_quick_check ( resource $dict , string $word [, array &$suggestions ] ) : bool

Если слово корректно, то вернет TRUE, в ином случае вернет FALSE. Если задан параметр suggestions, то он будет заполнен вариантами замены.

Список параметров

dict

Ресурс словаря

word

Слово для проверки

suggestions

Если проверка провалилась, то эта переменная будет содержать массив с вариантами замены

Возвращаемые значения

Возвращает TRUE, если слово написано правильно или FALSE, если нет

Примеры

Пример #1 Пример использования enchant_dict_quick_check()

<?php
$tag = 'en_US';
$r = enchant_broker_init();

if (enchant_broker_dict_exists($r,$tag)) {
    $d = enchant_broker_request_dict($r, $tag);
    enchant_dict_quick_check($d, 'soong', $suggs);
    print_r($suggs);
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => song
    [1] => snog
    [2] => soon
    [3] => Sang
    [4] => Sung
    [5] => sang
    [6] => sung
    [7] => sponge
    [8] => spongy
    [9] => snag
    [10] => snug
    [11] => sonic
    [12] => sing
    [13] => songs
    [14] => Son
    [15] => Sonja
    [16] => Synge
    [17] => son
    [18] => Sejong
    [19] => sarong
    [20] => sooner
    [21] => Sony
    [22] => sown
    [23] => scone
    [24] => song's
)

Смотрите также

  • enchant_dict_check() - Проверяет, корректно ли задано слово
  • enchant_dict_suggest() - Вернет список возможных вариантов для слова с ошибкой


Добавить исправление для слова

  • « enchant_dict_quick_check
  • enchant_dict_suggest »
  • PHP Manual
  • Функции Enchant
  • Добавить исправление для слова

enchant_dict_store_replacement

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_store_replacement — Добавить исправление для слова

Описание

enchant_dict_store_replacement ( resource $dict , string $mis , string $cor ) : void

Добавить исправление 'cor' для 'mis'. Обратите внимание, что если вы замените @mis на @cor, то в будущем вхождения @mis будут заменяться на @cor. Соответственно это может поднять @cor вверх в списке возможных замен.

Список параметров

dict

Ресурс словаря

mis

Слово для исправления

cor

Корректное слово

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Вернет список возможных вариантов для слова с ошибкой

  • « enchant_dict_store_replacement
  • FriBiDi »
  • PHP Manual
  • Функции Enchant
  • Вернет список возможных вариантов для слова с ошибкой

enchant_dict_suggest

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_suggest — Вернет список возможных вариантов для слова с ошибкой

Описание

enchant_dict_suggest ( resource $dict , string $word ) : array

Список параметров

dict

Ресурс словаря

word

Слово для проверки.

Возвращаемые значения

Вернет массив предположений для заданного с ошибкой слова.

Примеры

Пример #1 Пример использования enchant_dict_suggest()

<?php
$tag = 'en_US';
$r = enchant_broker_init();
if (enchant_broker_dict_exists($r,$tag)) {
    $d = enchant_broker_request_dict($r, $tag);

    $wordcorrect = enchant_dict_check($d, "soong");
    if (!$wordcorrect) {
        $suggs = enchant_dict_suggest($d, "soong");
        echo "Подсказки для 'soong':";
        print_r($suggs);
    }
    enchant_broker_free_dict($d);
}
enchant_broker_free($r);
?>

Смотрите также

  • enchant_dict_check() - Проверяет, корректно ли задано слово
  • enchant_dict_quick_check() - Проверить, правильно ли написано слово и предложить варианты замены


FriBiDi

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции FriBiDi
    • fribidi_log2vis — Преобразование логической строки в отображаемую


Введение

FriBiDi - это свободная реализация » двунаправленного алгоритма Unicode.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Необходимо загрузить и установить » пакет FriBiDi.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/fribidi.

Для использования данного расширения необходимо скомпилировать PHP с поддержкой Fribidi используя ключ конфигурации --with-fribidi[=DIR] .

Пользователям Windows необходимо разрешить php_fribidi.dll в php.ini. DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

FRIBIDI_CHARSET_UTF8 (integer)
Unicode
FRIBIDI_CHARSET_8859_6 (integer)
Арабский
FRIBIDI_CHARSET_8859_8 (integer)
Иврит
FRIBIDI_CHARSET_CP1255 (integer)
Иврит/Идиш
FRIBIDI_CHARSET_CP1256 (integer)
Арабский
FRIBIDI_CHARSET_ISIRI_3342 (integer)
Персидский
FRIBIDI_CHARSET_CAP_RTL (integer)
Используется в тестовых целях, заглавные символы будут считаться за неанглийские.
FRIBIDI_RTL (integer)
Справа налево
FRIBIDI_LTR (integer)
Слева направо
FRIBIDI_AUTO (integer)
Автоопределение базового направления


  • « Предопределенные константы
  • fribidi_log2vis »
  • PHP Manual
  • FriBiDi
  • Функции FriBiDi

Функции FriBiDi

Содержание

  • fribidi_log2vis — Преобразование логической строки в отображаемую


Преобразование логической строки в отображаемую

  • « Функции FriBiDi
  • Gender »
  • PHP Manual
  • Функции FriBiDi
  • Преобразование логической строки в отображаемую

fribidi_log2vis

(PHP 4 >= 4.0.4 and PHP 4 <= 4.1.0, PECL fribidi >= 1.0)

fribidi_log2vis — Преобразование логической строки в отображаемую

Описание

fribidi_log2vis ( string $str , string $direction , int $charset ) : string

Преобразование логической строки в отображаемую.

Список параметров

str

Логическая строка.

direction

Одна из констант: FRIBIDI_RTL, FRIBIDI_LTR или FRIBIDI_AUTO.

charset

Одна из констант FRIBIDI_CHARSET_XXX.

Возвращаемые значения

Возвращает отображаемую строку или FALSE в случае возникновения ошибки.


Определение пола по имени

  • Введение
  • Установка и настройка
    • Установка
  • Примеры
    • Пример использования
  • Gender\Gender — Класс Gender\Gender
    • Gender\Gender::connect — Соединение с внешней базой имен
    • Gender\Gender::__construct — Конструктор объекта класса Gender
    • Gender\Gender::country — Получить текстовое представление страны
    • Gender\Gender::get — Получить пол по имени
    • Gender\Gender::isNick — Проверяет, является ли name0 псевдонимом для name1
    • Gender\Gender::similarNames — Получить похожие имена


Введение

Расширение PHP Gender - это порт программы gender.c, написанной Михаэлем Йоргом. Главное назначение этой программы - определение пола человека по его имени. Текущая база данных содержит более 40000 имен из 54 стран.


  • « Введение
  • Установка »
  • PHP Manual
  • Gender
  • Установка и настройка

Установка и настройка

Содержание

  • Установка


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/gender.

Библиотека DLL для этого PECL-расширения доступно на » http://windows.php.net/downloads/pecl/releases/gender/.


  • « Установка
  • Пример использования »
  • PHP Manual
  • Gender
  • Примеры

Примеры

Содержание

  • Пример использования


Пример использования

Пример использования класса Gender.

Пример #1 Пример использования.

<?php

namespace Gender;

$gender = new Gender;

$name = "Milene";
$country = Gender::FRANCE;

$result = $gender->get($name, $country);

$data = $gender->country($country);

switch($result) {
    case Gender::IS_FEMALE:
        printf("%s - это женское имя в стране %s\n", $name, $data['country']);
    break;

    case Gender::IS_MOSTLY_FEMALE:
        printf("%s  - это скорее всего женское имя в стране %s\n", $name, $data['country']);
    break;

    case Gender::IS_MALE:
        printf("%s - это мужское имя в стране %s\n", $name, $data['country']);
    break;

    case Gender::IS_MOSTLY_MALE:
        printf("%s  - это скорее всего женское имя в стране %s\n", $name, $data['country']);
    break;

    case Gender::IS_UNISEX_NAME:
        printf("Имя %s годится и для женщин, и для мужчин в стране %s\n", $name, $data['country']);
    break;

    case Gender::IS_A_COUPLE:
        printf("Имя %s может быть и женским, и мужским в стране %s\n", $name, $data['country']);
    break;

    case Gender::NAME_NOT_FOUND:
        printf("Имя %s не найдено для страны %s\n", $name, $data['country']);
    break;

    case Gender::ERROR_IN_NAME:
        echo "В заданном имени ошибка!\n";
    break;

    default:
        echo "Произошла ошибка!\n";
    break;

}


Класс Gender\Gender

(PECL gender >= 0.6.0)

Введение

Обзор классов

Gender\Gender {
/* Константы */
const integer IS_FEMALE = 70 ;
const integer IS_MOSTLY_FEMALE = 102 ;
const integer IS_MALE = 77 ;
const integer IS_MOSTLY_MALE = 109 ;
const integer IS_UNISEX_NAME = 63 ;
const integer IS_A_COUPLE = 67 ;
const integer NAME_NOT_FOUND = 32 ;
const integer ERROR_IN_NAME = 69 ;
const integer ANY_COUNTRY = 0 ;
const integer BRITAIN = 1 ;
const integer IRELAND = 2 ;
const integer USA = 3 ;
const integer SPAIN = 4 ;
const integer PORTUGAL = 5 ;
const integer ITALY = 6 ;
const integer MALTA = 7 ;
const integer FRANCE = 8 ;
const integer BELGIUM = 9 ;
const integer LUXEMBOURG = 10 ;
const integer NETHERLANDS = 11 ;
const integer GERMANY = 12 ;
const integer EAST_FRISIA = 13 ;
const integer AUSTRIA = 14 ;
const integer SWISS = 15 ;
const integer ICELAND = 16 ;
const integer DENMARK = 17 ;
const integer NORWAY = 18 ;
const integer SWEDEN = 19 ;
const integer FINLAND = 20 ;
const integer ESTONIA = 21 ;
const integer LATVIA = 22 ;
const integer LITHUANIA = 23 ;
const integer POLAND = 24 ;
const integer CZECH_REP = 25 ;
const integer SLOVAKIA = 26 ;
const integer HUNGARY = 27 ;
const integer ROMANIA = 28 ;
const integer BULGARIA = 29 ;
const integer BOSNIA = 30 ;
const integer CROATIA = 31 ;
const integer KOSOVO = 32 ;
const integer MACEDONIA = 33 ;
const integer MONTENEGRO = 34 ;
const integer SERBIA = 35 ;
const integer SLOVENIA = 36 ;
const integer ALBANIA = 37 ;
const integer GREECE = 38 ;
const integer RUSSIA = 39 ;
const integer BELARUS = 40 ;
const integer MOLDOVA = 41 ;
const integer UKRAINE = 42 ;
const integer ARMENIA = 43 ;
const integer AZERBAIJAN = 44 ;
const integer GEORGIA = 45 ;
const integer KAZAKH_UZBEK = 46 ;
const integer TURKEY = 47 ;
const integer ARABIA = 48 ;
const integer ISRAEL = 49 ;
const integer CHINA = 50 ;
const integer INDIA = 51 ;
const integer JAPAN = 52 ;
const integer KOREA = 53 ;
/* Методы */
public connect ( string $dsn ) : bool
public __construct ([ string $dsn ] )
public country ( int $country ) : array
public get ( string $name [, int $country ] ) : int
public isNick ( string $name0 , string $name1 [, int $country ] ) : array
public similarNames ( string $name [, int $country ] ) : array
}

Предопределенные константы

Gender\Gender::IS_FEMALE

Gender\Gender::IS_MOSTLY_FEMALE

Gender\Gender::IS_MALE

Gender\Gender::IS_MOSTLY_MALE

Gender\Gender::IS_UNISEX_NAME

Gender\Gender::IS_A_COUPLE

Gender\Gender::NAME_NOT_FOUND

Gender\Gender::ERROR_IN_NAME

Gender\Gender::ANY_COUNTRY

Gender\Gender::BRITAIN

Gender\Gender::IRELAND

Gender\Gender::USA

Gender\Gender::SPAIN

Gender\Gender::PORTUGAL

Gender\Gender::ITALY

Gender\Gender::MALTA

Gender\Gender::FRANCE

Gender\Gender::BELGIUM

Gender\Gender::LUXEMBOURG

Gender\Gender::NETHERLANDS

Gender\Gender::GERMANY

Gender\Gender::EAST_FRISIA

Gender\Gender::AUSTRIA

Gender\Gender::SWISS

Gender\Gender::ICELAND

Gender\Gender::DENMARK

Gender\Gender::NORWAY

Gender\Gender::SWEDEN

Gender\Gender::FINLAND

Gender\Gender::ESTONIA

Gender\Gender::LATVIA

Gender\Gender::LITHUANIA

Gender\Gender::POLAND

Gender\Gender::CZECH_REP

Gender\Gender::SLOVAKIA

Gender\Gender::HUNGARY

Gender\Gender::ROMANIA

Gender\Gender::BULGARIA

Gender\Gender::BOSNIA

Gender\Gender::CROATIA

Gender\Gender::KOSOVO

Gender\Gender::MACEDONIA

Gender\Gender::MONTENEGRO

Gender\Gender::SERBIA

Gender\Gender::SLOVENIA

Gender\Gender::ALBANIA

Gender\Gender::GREECE

Gender\Gender::RUSSIA

Gender\Gender::BELARUS

Gender\Gender::MOLDOVA

Gender\Gender::UKRAINE

Gender\Gender::ARMENIA

Gender\Gender::AZERBAIJAN

Gender\Gender::GEORGIA

Gender\Gender::KAZAKH_UZBEK

Gender\Gender::TURKEY

Gender\Gender::ARABIA

Gender\Gender::ISRAEL

Gender\Gender::CHINA

Gender\Gender::INDIA

Gender\Gender::JAPAN

Gender\Gender::KOREA

Содержание

  • Gender\Gender::connect — Соединение с внешней базой имен
  • Gender\Gender::__construct — Конструктор объекта класса Gender
  • Gender\Gender::country — Получить текстовое представление страны
  • Gender\Gender::get — Получить пол по имени
  • Gender\Gender::isNick — Проверяет, является ли name0 псевдонимом для name1
  • Gender\Gender::similarNames — Получить похожие имена


Соединение с внешней базой имен

  • « Gender\Gender
  • Gender\Gender::__construct »
  • PHP Manual
  • Gender\Gender
  • Соединение с внешней базой имен

Gender\Gender::connect

(PECL gender >= 0.6.0)

Gender\Gender::connect — Соединение с внешней базой имен

Описание

public Gender\Gender::connect ( string $dsn ) : bool

Подключение к внешнему словарю имен. В данный момент поддерживаются только потоковые ресурсы.

Список параметров

dsn

DSN для открытия.

Возвращаемые значения

TRUE либо FALSE в зависимости от успешности.


Конструктор объекта класса Gender

  • « Gender\Gender::connect
  • Gender\Gender::country »
  • PHP Manual
  • Gender\Gender
  • Конструктор объекта класса Gender

Gender\Gender::__construct

(PECL gender >= 0.6.0)

Gender\Gender::__construct — Конструктор объекта класса Gender

Описание

public Gender\Gender::__construct ([ string $dsn ] )

Создает объект класса Gender, который необязательно может быть подключен к внешнему словарю имен. Если внешняя база данных не задана, то будут использоваться внутренние скомпилированные данные.

Список параметров

dsn

DSN для открытия.

Возвращаемые значения


Получить текстовое представление страны

  • « Gender\Gender::__construct
  • Gender\Gender::get »
  • PHP Manual
  • Gender\Gender
  • Получить текстовое представление страны

Gender\Gender::country

(PECL gender >= 0.8.0)

Gender\Gender::country — Получить текстовое представление страны

Описание

public Gender\Gender::country ( int $country ) : array

Возвращает текстовое представление страны из констант класса Gender.

Список параметров

country

Идентификатор страны, заданный константой класса Gender\Gender.

Возвращаемые значения

Возвращает массив с коротким и полным имени страны в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Gender\Gender::country()

$gender = new Gender\Gender;
var_dump($gender->country(Gender\Gender::BRITAIN));

Результат выполнения данного примера:

array(2) {
  'country_short' =>
  string(2) "UK"
  'country' =>
  string(13) "Great Britain"
}


Получить пол по имени

  • « Gender\Gender::country
  • Gender\Gender::isNick »
  • PHP Manual
  • Gender\Gender
  • Получить пол по имени

Gender\Gender::get

(PECL gender >= 0.6.0)

Gender\Gender::get — Получить пол по имени

Описание

public Gender\Gender::get ( string $name [, int $country ] ) : int

Получить пол по имени в заданной стране.

Список параметров

name

Имя для проверки.

country

Идентификатор страны, заданный константой класса Gender.

Возвращаемые значения

Возвращает пол по имени.


Проверяет, является ли name0 псевдонимом для name1

  • « Gender\Gender::get
  • Gender\Gender::similarNames »
  • PHP Manual
  • Gender\Gender
  • Проверяет, является ли name0 псевдонимом для name1

Gender\Gender::isNick

(PECL gender >= 0.9.0)

Gender\Gender::isNick — Проверяет, является ли name0 псевдонимом для name1

Описание

public Gender\Gender::isNick ( string $name0 , string $name1 [, int $country ] ) : array

Проверяет, является ли name0 псевдонимом для name1.

Список параметров

name0

Имя для проверки.

name1

Имя для проверки.

country

Идентификатор страны, определяемой константой класса Gender. Если опущен, то используется ANY_COUNTRY.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Получить похожие имена

  • « Gender\Gender::isNick
  • Gettext »
  • PHP Manual
  • Gender\Gender
  • Получить похожие имена

Gender\Gender::similarNames

(PECL gender >= 0.9.0)

Gender\Gender::similarNames — Получить похожие имена

Описание

public Gender\Gender::similarNames ( string $name [, int $country ] ) : array

Получить похожие имена для заданных имени и страны.

Список параметров

name

Имя для проверки.

country

Идентификатор страны заданный константой класса. Если опущен, то используется ANY_COUNTRY.

Возвращаемые значения

Возвращает массив с найдеными похожими именами.


Gettext

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции gettext
    • bind_textdomain_codeset — Устанавливает кодировку, в которой будут возвращаться сообщения из каталога сообщений домена
    • bindtextdomain — Устанавливает путь для домена
    • dcgettext — Переопределяет одно сообщение в домене
    • dcngettext — Версия dcgettext для множественного числа
    • dgettext — Переопределяет текущий домен для одного сообщения
    • dngettext — Версия dgettext для множественного числа
    • gettext — Ищет сообщение в текущем домене
    • ngettext — Версия gettext для сообщений во множественном числе
    • textdomain — Устанавливает домен по умолчанию


Введение

Функции 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/local.


  • « Типы ресурсов
  • Функции gettext »
  • PHP Manual
  • Gettext
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции gettext

Содержание

  • bind_textdomain_codeset — Устанавливает кодировку, в которой будут возвращаться сообщения из каталога сообщений домена
  • bindtextdomain — Устанавливает путь для домена
  • dcgettext — Переопределяет одно сообщение в домене
  • dcngettext — Версия dcgettext для множественного числа
  • dgettext — Переопределяет текущий домен для одного сообщения
  • dngettext — Версия dgettext для множественного числа
  • gettext — Ищет сообщение в текущем домене
  • ngettext — Версия gettext для сообщений во множественном числе
  • textdomain — Устанавливает домен по умолчанию


Устанавливает кодировку, в которой будут возвращаться сообщения из каталога сообщений домена

  • « Функции gettext
  • bindtextdomain »
  • PHP Manual
  • Функции gettext
  • Устанавливает кодировку, в которой будут возвращаться сообщения из каталога сообщений домена

bind_textdomain_codeset

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

bind_textdomain_codeset — Устанавливает кодировку, в которой будут возвращаться сообщения из каталога сообщений домена

Описание

bind_textdomain_codeset ( string $domain , string $codeset ) : string

Функция bind_textdomain_codeset() устанавливает кодировку, в которой будут возвращаться сообщения из domain, такими функциями как gettext().

Список параметров

domain

Домен.

codeset

Кодировка.

Возвращаемые значения

Строка в случае успеха.


Устанавливает путь для домена

  • « bind_textdomain_codeset
  • dcgettext »
  • PHP Manual
  • Функции gettext
  • Устанавливает путь для домена

bindtextdomain

(PHP 4, PHP 5, PHP 7)

bindtextdomain — Устанавливает путь для домена

Описание

bindtextdomain ( string $domain , string $directory ) : string

Функция bindtextdomain() устанавливает путь для домена.

Список параметров

domain

Домен

directory

Путь к директории

Возвращаемые значения

Полный путь для домена, установленного параметром domain.

Примеры

Пример #1 Пример использования bindtextdomain()

<?php

$domain = 'myapp';
echo bindtextdomain($domain, '/usr/share/myapp/locale');

?>

Результат выполнения данного примера:

/usr/share/myapp/locale


Переопределяет одно сообщение в домене

  • « bindtextdomain
  • dcngettext »
  • PHP Manual
  • Функции gettext
  • Переопределяет одно сообщение в домене

dcgettext

(PHP 4, PHP 5, PHP 7)

dcgettext — Переопределяет одно сообщение в домене

Описание

dcgettext ( string $domain , string $message , int $category ) : string

Данная функция позволяет переопределить текущий домен для одного сообщения.

Список параметров

domain

Домен

message

Сообщение

category

Категория

Возвращаемые значения

В случае успеха возвращает значение типа string.

Смотрите также

  • gettext() - Ищет сообщение в текущем домене


Версия dcgettext для множественного числа

  • « dcgettext
  • dgettext »
  • PHP Manual
  • Функции gettext
  • Версия dcgettext для множественного числа

dcngettext

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

dcngettext — Версия dcgettext для множественного числа

Описание

dcngettext ( string $domain , string $msgid1 , string $msgid2 , int $n , int $category ) : string

Данная функция позволяет переопределить одно сообщение с использованием множественного числа в текущем домене.

Список параметров

domain

Домен.

msgid1

msgid2

n

category

Возвращаемые значения

В случае успеха возвращает значение типа string.

Смотрите также

  • ngettext() - Версия gettext для сообщений во множественном числе


Переопределяет текущий домен для одного сообщения

  • « dcngettext
  • dngettext »
  • PHP Manual
  • Функции gettext
  • Переопределяет текущий домен для одного сообщения

dgettext

(PHP 4, PHP 5, PHP 7)

dgettext — Переопределяет текущий домен для одного сообщения

Описание

dgettext ( string $domain , string $message ) : string

Функция dgettext() позволяет переопределить текущий домен domain для одного сообщения.

Список параметров

domain

Домен.

message

Сообщение.

Возвращаемые значения

В случае успеха возвращает значение типа string.

Смотрите также

  • gettext() - Ищет сообщение в текущем домене


Версия dgettext для множественного числа

  • « dgettext
  • gettext »
  • PHP Manual
  • Функции gettext
  • Версия dgettext для множественного числа

dngettext

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

dngettext — Версия dgettext для множественного числа

Описание

dngettext ( string $domain , string $msgid1 , string $msgid2 , int $n ) : string

Функция dngettext() позволяет переопределить текущий домен domain для одного сообщения во множественном числе.

Список параметров

domain

Домен.

msgid1

msgid2

n

Возвращаемые значения

В случае успеха возвращает значение типа string.

Смотрите также

  • ngettext() - Версия gettext для сообщений во множественном числе


Ищет сообщение в текущем домене

  • « dngettext
  • ngettext »
  • PHP Manual
  • Функции gettext
  • Ищет сообщение в текущем домене

gettext

(PHP 4, PHP 5, PHP 7)

gettext — Ищет сообщение в текущем домене

Описание

gettext ( string $message ) : string

Ищет сообщение в текущем домене.

Список параметров

message

Переводимое сообщение.

Возвращаемые значения

Возвращает переведённую строку (string), если она найдена в таблице перевода, иначе - переданное сообщение.

Примеры

Пример #1 gettext()-check

<?php
// Устанавливаем русский язык
putenv('LC_ALL=ru_RU');
setlocale(LC_ALL, 'ru_RU');

// Указываем путь к таблицам переводов
bindtextdomain("myPHPApp", "./locale");

// Выбираем домен
textdomain("myPHPApp");

// Теперь поиск переводов будет идти в ./locale/ru_RU/LC_MESSAGES/myPHPApp.mo

// Выводим тестовое сообщение
echo gettext("Welcome to My PHP Application");

// Или с использованием псевдонима _()
echo _("Have a nice day");
?>

Примечания

Замечание:

Можно использовать символ подчёркивания '_' в качестве псевдонима этой функции.

Замечание:

На некоторых системах может быть недостаточно указания языка, в таких случаях используйте putenv() для указания текущей локали.

Смотрите также

  • setlocale() - Устанавливает настройки локали


Версия gettext для сообщений во множественном числе

  • « gettext
  • textdomain »
  • PHP Manual
  • Функции gettext
  • Версия gettext для сообщений во множественном числе

ngettext

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ngettext — Версия gettext для сообщений во множественном числе

Описание

ngettext ( string $msgid1 , string $msgid2 , int $n ) : string

Версия gettext() для сообщений во множественном числе. Некоторые языки имеют больше одной формы сообщения для разных значений количества.

Список параметров

msgid1

Идентификатор сообщения в единственном числе.

msgid2

Идентификатор сообщения во множественном числе.

n

Число (например количество элементов) для определения, какую грамматическую форму использовать.

Возвращаемые значения

Возвращает корректную форму сообщения во множественном числе, идентифицируемых по параметрам msgid1 и msgid2 для количества n.

Примеры

Пример #1 Пример использования ngettext()

<?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 окон

?>


Устанавливает домен по умолчанию

  • « ngettext
  • iconv »
  • PHP Manual
  • Функции gettext
  • Устанавливает домен по умолчанию

textdomain

(PHP 4, PHP 5, PHP 7)

textdomain — Устанавливает домен по умолчанию

Описание

textdomain ( string $text_domain = NULL ) : string

Данная функция устанавливает домен, в котором будет производиться поиск при вызове функции gettext(), обычно называется именем приложения.

Список параметров

text_domain

Новый домен сообщений, или NULL для получения текущего значения без его изменения.

Возвращаемые значения

В случае успеха данная функция возвращает текущее домен сообщений, после возможного его изменения.


iconv

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции iconv
    • iconv_get_encoding — Получает текущее значение настроек преобразования кодировок
    • iconv_mime_decode_headers — Декодирует несколько полей заголовка MIME
    • iconv_mime_decode — Декодирует поле MIME-заголовка
    • iconv_mime_encode — Создает поле MIME-заголовка
    • iconv_set_encoding — Устанавливает текущей настройки для преобразования символов кодировки
    • iconv_strlen — Возвращает количество символов в строке
    • iconv_strpos — Возвращает позицию первого вхождения подстроки
    • iconv_strrpos — Возвращает позицию последнего вхождения подстроки
    • iconv_substr — Получение части строки
    • iconv — Преобразование строки в требуемую кодировку
    • ob_iconv_handler — Преобразует символы из текущей кодировки в кодировку выходного буфера


Введение

Это расширение предоставляет интерфейс к библиотеке преобразования кодировок iconv. При помощи данного модуля возможно изменение кодировки строки на другую поддерживаемую. Набор поддерживаемых кодировок зависит от реализации iconv в вашей системе. На некоторых платформах iconv может работать неправильно, в таких случаях рекомендуется установить библиотеку » GNU libiconv, т.к. она лучше преобразует строки.

В это расширение добавлены некоторые вспомогательные функции, удобные при работе с несколькими языками. Обратите внимание на следующие разделы для изучения новых особенностей.


Требования

Операционные системы, отвечающие стандартам POSIX, поставляются с C-библиотеками, предоставляющими функциональность iconv. Если ваша система в этот список не входит, вам нужно установить библиотеку » libiconv.


Установка

Это расширение по умолчанию включено, чтобы его отключить используйте опцию --without-iconv .

Также может быть задана необязательная директива --with-iconv[=DIR] для указания альтернативного расположения iconv в системе, в которой компилируется PHP, иначе будет использовано расположение по умолчанию.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Iconv
Имя | По умолчанию | Место изменения | Список изменений
iconv.input_encoding | "" | PHP_INI_ALL | Устарело с PHP 5.6.0.
iconv.output_encoding | "" | PHP_INI_ALL | Устарело с PHP 5.6.0.
iconv.internal_encoding | "" | PHP_INI_ALL | Устарело с PHP 5.6.0.

Краткое разъяснение конфигурационных директив.

Внимание

Некоторые системы (например IBM AIX) используют "ISO8859-1" вместо "ISO-8859-1", поэтому это значение должно быть указано в настройках и параметрах функции.

iconv.input_encoding string
Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.6.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

В PHP 5.6 и новее нужно оставлять эту опцию пустой и использовать вместо нее default_charset.

iconv.output_encoding string
Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.6.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

В PHP 5.6 и новее нужно оставлять эту опцию пустой и использовать вместо нее default_charset.

iconv.internal_encoding string
Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.6.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

В PHP 5.6 и новее нужно оставлять эту опцию пустой и использовать вместо нее default_charset.


Предопределенные константы

Возможно узнать во время выполнения, какая реализация iconv используется расширением.

Константы реализации iconv
Имя | Тип | Описание
ICONV_IMPL | string | Реализация
ICONV_VERSION | string | Версия реализации

Замечание:

Используйте эти константы для написания сценариев, независимых от реализации.

Доступны также следующие константы:

Другие константы iconv
Имя | Тип | Описание
ICONV_MIME_DECODE_STRICT | integer | Битовая маска, используемая в iconv_mime_decode()
ICONV_MIME_DECODE_CONTINUE_ON_ERROR | integer | Битовая маска, используемая в iconv_mime_decode()


Функции iconv

Смотрите также

См. также Функции GNU Recode.

Содержание

  • iconv_get_encoding — Получает текущее значение настроек преобразования кодировок
  • iconv_mime_decode_headers — Декодирует несколько полей заголовка MIME
  • iconv_mime_decode — Декодирует поле MIME-заголовка
  • iconv_mime_encode — Создает поле MIME-заголовка
  • iconv_set_encoding — Устанавливает текущей настройки для преобразования символов кодировки
  • iconv_strlen — Возвращает количество символов в строке
  • iconv_strpos — Возвращает позицию первого вхождения подстроки
  • iconv_strrpos — Возвращает позицию последнего вхождения подстроки
  • iconv_substr — Получение части строки
  • iconv — Преобразование строки в требуемую кодировку
  • ob_iconv_handler — Преобразует символы из текущей кодировки в кодировку выходного буфера


Получает текущее значение настроек преобразования кодировок

  • « Функции iconv
  • iconv_mime_decode_headers »
  • PHP Manual
  • Функции iconv
  • Получает текущее значение настроек преобразования кодировок

iconv_get_encoding

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

iconv_get_encoding — Получает текущее значение настроек преобразования кодировок

Описание

iconv_get_encoding ([ string $type = "all" ] ) : mixed

Возвращает внутренние параметры конфигурации расширения iconv.

Список параметров

type

Возможные значения необязательного параметра type:

  • all
  • input_encoding
  • output_encoding
  • internal_encoding

Возвращаемые значения

Возвращает текущее значение указанной переменной и FALSE в случае ошибки.

Если 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() - Преобразует символы из текущей кодировки в кодировку выходного буфера


Декодирует несколько полей заголовка MIME

  • « iconv_get_encoding
  • iconv_mime_decode »
  • PHP Manual
  • Функции iconv
  • Декодирует несколько полей заголовка MIME

iconv_mime_decode_headers

(PHP 5, PHP 7)

iconv_mime_decode_headers — Декодирует несколько полей заголовка MIME

Описание

iconv_mime_decode_headers ( string $encoded_headers [, int $mode = 0 [, string $charset = ini_get("iconv.internal_encoding") ]] ) : array

Декодирует несколько полей заголовка MIME за один раз.

Список параметров

encoded_headers

Закодированные заголовки в виде строки.

mode

Параметр mode определяет поведение, если iconv_mime_decode_headers() обнаружит неправильное поле заголовка MIME. Можно указать любую комбинацию следующих битовых масок.

Битовые маски iconv_mime_decode_headers()
Значение | Константа | Описание
1 | ICONV_MIME_DECODE_STRICT | Строго следовать стандартам, определённым в » RFC2047. Эта опция по умолчанию отключена, так как много проприетарных программ электронной почты не следуют стандартам и создают некорректные заголовки MIME.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | Если установлена, iconv_mime_decode_headers() будет пытаться игнорировать любые ошибки и продолжать обработку текущего заголовка.

charset

Необязательный параметр charset указывает кодировку, в которой будет представлен результат. Если опущен, будет использовано значение директивы iconv.internal_encoding.

Возвращаемые значения

В случае успеха возвращает ассоциативный массив с полями MIME-заголовков, указанных параметром encoded_headers, или FALSE в случае ошибки.

Каждый ключ элемента возвращаемого массива представляет собой отдельное имя поля, а сам элемент - его значение. Если в заголовке существует несколько полей с одинаковым именем, iconv_mime_decode_headers() автоматически помещает их в подмассив с числовыми индексами в порядке их обработки.

Примеры

Пример #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] => Prufung Prufung
    [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() - Декодирует поле MIME-заголовка
  • mb_decode_mimeheader() - Декодирует строку в MIME-заголовке
  • imap_mime_header_decode() - Декодировать элементы заголовка
  • imap_base64() - Декодировать текст закодированный BASE64
  • imap_qprint() - Преобразовать строку из формата "quoted-printable" в 8-битную строку


Декодирует поле MIME-заголовка

  • « iconv_mime_decode_headers
  • iconv_mime_encode »
  • PHP Manual
  • Функции iconv
  • Декодирует поле MIME-заголовка

iconv_mime_decode

(PHP 5, PHP 7)

iconv_mime_decode — Декодирует поле MIME-заголовка

Описание

iconv_mime_decode ( string $encoded_header [, int $mode = 0 [, string $charset = ini_get("iconv.internal_encoding") ]] ) : string

Декодирует поле MIME-заголовка.

Список параметров

encoded_header

Закодированный заголовок в виде строки.

mode

mode задает режим поведения функции в случае, когда iconv_mime_decode() определит, что MIME-заголовок имеет недопустимую структуру. Режим задается комбинацией следующих битовых масок.

Битовые маски, применяемые в iconv_mime_decode()
Значение | Константа | Описание
1 | ICONV_MIME_DECODE_STRICT | Если задано, заголовок декодируется в полном соответствии со стандартом » RFC2047. Эта опция отключена по умолчанию, так как существует множество почтовых программ, которые не следуют спецификации и формируют некорректные с точки зрения стандарта MIME-заголовки.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | Если задано, iconv_mime_decode_headers() будет пытаться пропускать грамматические ошибки и продолжать обработку заголовка.

charset

Необязательный аргумент charset задает набор символов, в котором будет представлен результат. Если аргумент опущен, будет использоваться iconv.internal_encoding.

Возвращаемые значения

Возвращает декодированный MIME-заголовок в случае успеха или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования iconv_mime_decode()

<?php
// Выдаст в результате "Subject: Prufung Prufung"
echo iconv_mime_decode("Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=",
                       0, "ISO-8859-1");
?>

Смотрите также

  • iconv_mime_decode_headers() - Декодирует несколько полей заголовка MIME
  • mb_decode_mimeheader() - Декодирует строку в MIME-заголовке
  • imap_mime_header_decode() - Декодировать элементы заголовка
  • imap_base64() - Декодировать текст закодированный BASE64
  • imap_qprint() - Преобразовать строку из формата "quoted-printable" в 8-битную строку


Создает поле MIME-заголовка

  • « iconv_mime_decode
  • iconv_set_encoding »
  • PHP Manual
  • Функции iconv
  • Создает поле MIME-заголовка

iconv_mime_encode

(PHP 5, PHP 7)

iconv_mime_encode — Создает поле MIME-заголовка

Описание

iconv_mime_encode ( string $field_name , string $field_value [, array $preferences = NULL ] ) : string

Создает и возвращает корректное поле MIME-заголовка в виде строки вида:

Subject: =?ISO-8859-1?Q?Pr=FCfung_f=FCr?= Entwerfen von einer MIME kopfzeile
В примере выше "Subject" является именем поля, а часть строки, начиная с "=?ISO-8859-1?..." - его значение.

Список параметров

field_name

Имя поля.

field_value

Значение поля.

preferences

Есть возможность контролировать поведение функции iconv_mime_encode() посредством передачи массива с настройками в качестве третьего аргумента preferences. Возможные значения этого массива, поддерживаемые функцией iconv_mime_encode(), перечислены ниже. Обратите внимание, что имена элементов чувствительны к регистру символов.

Настройки, поддерживаемые в iconv_mime_encode()
Элемент | Тип | Описание | Значение по умолчанию | Пример
scheme | string | Задает, каким образом закодировать значение поля. Значением этого элемента может быть либо "B", либо "Q". "B" означает схему кодирования base64, а "Q" - quoted-printable. | B | B
input-charset | string | Задает, в какой кодировке представлены аргументы field_name и field_value. Если не задан, iconv_mime_encode() предполагает, что набор символов указан в ini-настройке iconv.internal_encoding. | iconv.internal_encoding | ISO-8859-1
output-charset | string | Задает набор символов, в котором будет представлен результирующий MIME-заголовок. | iconv.internal_encoding | UTF-8
line-length | integer | Устанавливает максимальную длину строк заголовка. Если результирующий заголовок окажется длиннее этой величины, функция его разрежет на несколько строк в соответствии с » Форматом интернет сообщений - RFC2822. Если не задан, эта длина будет установлена 76 символов. | 76 | 996
line-break-chars | string | Задает последовательность символов, которые будут использоваться для завершения "разрезанных" строк заголовка, если заголовок окажется длиннее одной строки. Если не задан, будут использоваться символы "\r\n" (CR LF). Обратите внимание, что этот аргумент всегда обрабатывается как строка ASCII вне зависимости от значения input-charset. | \r\n | \n

Возвращаемые значения

Возвращает закодированное MIME-поле в случае успеха или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования iconv_mime_encode()

<?php
$preferences = array(
    "input-charset" => "ISO-8859-1",
    "output-charset" => "UTF-8",
    "line-length" => 76,
    "line-break-chars" => "\n"
);
$preferences["scheme"] = "Q";
// Результат "Subject: =?UTF-8?Q?Pr=C3=BCfung=20Pr=C3=BCfung?="
echo iconv_mime_encode("Subject", "Prufung Prufung", $preferences);

$preferences["scheme"] = "B";
// Результат "Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?="
echo iconv_mime_encode("Subject", "Prufung Prufung", $preferences);
?>

Смотрите также

  • imap_binary() - Конвертирует 8-битную строку в строку base64
  • mb_encode_mimeheader() - Кодирует строку для MIME-заголовка
  • imap_8bit() - Конвертирует 8-битную строку в строку в формате quoted-printable
  • quoted_printable_encode() - Преобразует 8-битную строку с помощью метода quoted-printable


Устанавливает текущей настройки для преобразования символов кодировки

  • « iconv_mime_encode
  • iconv_strlen »
  • PHP Manual
  • Функции iconv
  • Устанавливает текущей настройки для преобразования символов кодировки

iconv_set_encoding

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

iconv_set_encoding — Устанавливает текущей настройки для преобразования символов кодировки

Описание

iconv_set_encoding ( string $type , string $charset ) : bool

Изменяет значение указанной параметром type внутренней переменной конфигурации на charset.

Список параметров

type

Значение type может быть одним из приведенных ниже:

  • input_encoding
  • output_encoding
  • internal_encoding

charset

Набор символов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования iconv_set_encoding()

<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
?>

Смотрите также

  • iconv_get_encoding() - Получает текущее значение настроек преобразования кодировок
  • ob_iconv_handler() - Преобразует символы из текущей кодировки в кодировку выходного буфера


Возвращает количество символов в строке

  • « iconv_set_encoding
  • iconv_strpos »
  • PHP Manual
  • Функции iconv
  • Возвращает количество символов в строке

iconv_strlen

(PHP 5, PHP 7)

iconv_strlen — Возвращает количество символов в строке

Описание

iconv_strlen ( string $str [, string $charset = ini_get("iconv.internal_encoding") ] ) : int

В отличие от strlen(), iconv_strlen() учитывает кодировку строки. Длина строки не обязательно будет соответствовать количеству байт в ней, так как в различных кодировках различные символы кодируются различным количеством байт, например, юникод может быть и двух-, и четырёхбайтным.

Список параметров

str

Строка.

charset

Если параметр charset опущен, предполагается, что кодировка строки str эквивалентна значению iconv.internal_encoding.

Возвращаемые значения

Возвращает количество символов в str как целое число.

Смотрите также

  • grapheme_strlen() - Get string length in grapheme units
  • mb_strlen() - Получает длину строки
  • strlen() - Возвращает длину строки


Возвращает позицию первого вхождения подстроки

  • « iconv_strlen
  • iconv_strrpos »
  • PHP Manual
  • Функции iconv
  • Возвращает позицию первого вхождения подстроки

iconv_strpos

(PHP 5, PHP 7)

iconv_strpos — Возвращает позицию первого вхождения подстроки

Описание

iconv_strpos ( string $haystack , string $needle [, int $offset = 0 [, string $charset = ini_get("iconv.internal_encoding") ]] ) : int

Возвращает позицию первого вхождения подстроки needle в строке haystack.

В отличие от strpos(), iconv_strpos() возвращает смещение перед искомой строкой в символах, а не в байтах. Количество символов трактуется в зависимости от указанной параметром charset кодировки.

Список параметров

haystack

Строка, в которой производится поиск.

needle

Искомая подстрока.

offset

Необязательный параметр offset позволяет указать, с какого по счёту символа строки начинать поиск. Если указано отрицательное значение, то смещение будет отсчитываться с конца строки.

charset

Если параметр charset не указан, то подразумевается, что string имеет кодировку iconv.internal_encoding.

Если haystack или needle не являются строками, они будут преобразованы в строку и применены как код символа.

Возвращаемые значения

Возвращает номер позиции первого вхождения строки needle в haystack.

Если строка needle не найдена, iconv_strpos() возвращает FALSE.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
7.1.0 | Поддержка отрицательных значений offset.

Смотрите также

  • strpos() - Возвращает позицию первого вхождения подстроки
  • iconv_strrpos() - Возвращает позицию последнего вхождения подстроки
  • mb_strpos() - Поиск позиции первого вхождения одной строки в другую


Возвращает позицию последнего вхождения подстроки

  • « iconv_strpos
  • iconv_substr »
  • PHP Manual
  • Функции iconv
  • Возвращает позицию последнего вхождения подстроки

iconv_strrpos

(PHP 5, PHP 7)

iconv_strrpos — Возвращает позицию последнего вхождения подстроки

Описание

iconv_strrpos ( string $haystack , string $needle [, string $charset = ini_get("iconv.internal_encoding") ] ) : int

Находит последнюю позицию подстроки needle в строке haystack.

В отличие от strrpos(), iconv_strrpos() возвращает смещение перед искомой строкой в символах, а не в байтах. Количество символов трактуется в зависимости от указанной параметром charset кодировки.

Список параметров

haystack

Строка, в которой производится поиск.

needle

Искомая подстрока.

charset

Если параметр charset не указан, то подразумевается, что string имеет кодировку iconv.internal_encoding.

Если haystack или needle не являются строками, они будут преобразованы в строку и применены как код символа.

Возвращаемые значения

Возвращает номер позиции последнего вхождения строки needle в haystack.

Если строка needle не найдена, iconv_strrpos() возвращает FALSE.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Смотрите также

  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • iconv_strpos() - Возвращает позицию первого вхождения подстроки
  • mb_strrpos() - Поиск позиции последнего вхождения одной строки в другую


Получение части строки

  • « iconv_strrpos
  • iconv »
  • PHP Manual
  • Функции iconv
  • Получение части строки

iconv_substr

(PHP 5, PHP 7)

iconv_substr — Получение части строки

Описание

iconv_substr ( string $str , int $offset [, int $length = iconv_strlen($str, $charset) [, string $charset = ini_get("iconv.internal_encoding") ]] ) : string

Получает часть строки str, определенную параметрами offset и length.

Список параметров

str

Изначальная строка.

offset

Если offset неотрицателен, iconv_substr() получает часть строки str начиная с символа с порядковым номером offset (нумерация начинается с нуля).

Если offset отрицателен, iconv_substr() получает часть строки начиная с позиции, отстоящую от конца строки str на offset символов.

length

Если length задан и положителен, возвращаемое значение содержит не более length символов, начиная с offset (зависит от длины строки string).

Если указан отрицательный length, iconv_substr() получает часть строки str, начиная с offset символа и до символа, отстоящего от конца строки на length символов. В случае, если offset также отрицателен, стартовая позиция вычисляется заранее в соответствии с вышеописанным правилом.

charset

Если параметр charset не указан, предполагается, что строка string имеет кодировку iconv.internal_encoding.

Обратите внимание, что и offset, и length основываются на размере символа, рассчитанного исходя из кодировки текста, в то время как схожая функция substr() всегда рассматривает их побайтовое смещение.

Возвращаемые значения

Возвращает часть строки str, определенную параметрами offset и length.

Если строка str имеет меньшую длину, чем параметр offset, будет возвращено FALSE. Если str имеет длину равную offset, будет возвращена пустая строка.

Список изменений

Версия | Описание
7.0.11 | Если str имеет длину равную offset, будет возвращена пустая строка. Ранее в подобных случаех возвращалось FALSE.

Смотрите также

  • substr() - Возвращает подстроку
  • mb_substr() - Возвращает часть строки
  • mb_strcut() - Получение части строки


Преобразование строки в требуемую кодировку

  • « iconv_substr
  • ob_iconv_handler »
  • PHP Manual
  • Функции iconv
  • Преобразование строки в требуемую кодировку

iconv

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

iconv — Преобразование строки в требуемую кодировку

Описание

iconv ( string $in_charset , string $out_charset , string $str ) : string

Преобразует набор символов строки str из кодировки in_charset в out_charset.

Список параметров

in_charset

Кодировка входной строки.

out_charset

Требуемая на выходе кодировка.

Если добавить к out_charset строку //TRANSLIT, включается режим транслитерации. Это значит, что в случае, если символ не может быть представлен в требуемой кодировке, он будет заменен на один или несколько наиболее близких по внешнему виду символов. Если добавить строку //IGNORE, то символы, которые не могут быть представлены в требуемой кодировке, будут удалены. В случае отсутствия вышеуказанных параметров будет сгенерирована ошибка уровня E_NOTICE, а функция вернет FALSE.

Предостережение

Как будет работат //TRANSLIT и будет ли вообще, зависит от системной реализации iconv() (ICONV_IMPL). Известны некоторые реализации, которые просто игнорируют //TRANSLIT, так что конвертация для символов некорректных для out_charset скорее всего закончится ошибкой.

str

Строка, которую необходимо преобразовать.

Возвращаемые значения

Возвращает преобразованную строку или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.4.0 | Начиная с этой версии, функция возвращает FALSE на некорректных символах, только если в выходной кодировке не указан //IGNORE. До этого функция возвращала часть строки.

Примеры

Пример #1 Пример использования iconv()

<?php
$text = "Это символ евро - '€'.";

echo 'Исходная строка        : ', $text, PHP_EOL;
echo 'С добавлением TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
echo 'С добавлением IGNORE   : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL;
echo 'Обычное преобразование : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

Исходная строка        : Это символ евро - '€'.
С добавлением TRANSLIT : Это символ евро - 'EUR'.
С добавлением IGNORE   :Это символ евро - ''.
Обычное преобразование :
Notice: iconv(): Detected an illegal character in input string in .\iconv-example.php on line 7


Преобразует символы из текущей кодировки в кодировку выходного буфера

  • « iconv
  • intl »
  • PHP Manual
  • Функции iconv
  • Преобразует символы из текущей кодировки в кодировку выходного буфера

ob_iconv_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ob_iconv_handler — Преобразует символы из текущей кодировки в кодировку выходного буфера

Описание

ob_iconv_handler ( string $contents , int $status ) : string

Преобразует строку, закодированную в internal_encoding, в строку, закодированную в output_encoding.

internal_encoding и output_encoding должны быть определены в php.ini или функцией iconv_set_encoding().

Список параметров

Информацию об аргументах этого обработчика можно посмотреть в описании к функции ob_start().

Возвращаемые значения

Информацию о возвращаемых значениях этого обработчика можно посмотреть в описании к функции ob_start().

Примеры

Пример #1 Пример использования ob_iconv_handler()

<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
ob_start("ob_iconv_handler"); // запуск буферизации вывода
?>

Смотрите также

  • iconv_get_encoding() - Получает текущее значение настроек преобразования кодировок
  • iconv_set_encoding() - Устанавливает текущей настройки для преобразования символов кодировки
  • Функции контроля вывода


Функции интернационализации

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Основы использования расширения
  • Collator — Класс Collator
    • Collator::asort — Sort array maintaining index association
    • Collator::compare — Compare two Unicode strings
    • Collator::__construct — Create a collator
    • Collator::create — Create a collator
    • Collator::getAttribute — Get collation attribute value
    • Collator::getErrorCode — Get collator's last error code
    • Collator::getErrorMessage — Get text for collator's last error code
    • Collator::getLocale — Get the locale name of the collator
    • Collator::getSortKey — Get sorting key for a string
    • Collator::getStrength — Get current collation strength
    • Collator::setAttribute — Set collation attribute
    • Collator::setStrength — Set collation strength
    • Collator::sortWithSortKeys — Sort array using specified collator and sort keys
    • Collator::sort — Sort array using specified collator
  • NumberFormatter — The NumberFormatter class
    • NumberFormatter::create — Create a number formatter
    • NumberFormatter::formatCurrency — Format a currency value
    • NumberFormatter::format — Format a number
    • NumberFormatter::getAttribute — Get an attribute
    • NumberFormatter::getErrorCode — Get formatter's last error code
    • NumberFormatter::getErrorMessage — Get formatter's last error message
    • NumberFormatter::getLocale — Get formatter locale
    • NumberFormatter::getPattern — Get formatter pattern
    • NumberFormatter::getSymbol — Get a symbol value
    • NumberFormatter::getTextAttribute — Get a text attribute
    • NumberFormatter::parseCurrency — Parse a currency number
    • NumberFormatter::parse — Parse a number
    • NumberFormatter::setAttribute — Set an attribute
    • NumberFormatter::setPattern — Set formatter pattern
    • NumberFormatter::setSymbol — Set a symbol value
    • NumberFormatter::setTextAttribute — Set a text attribute
  • Locale — Класс Locale
    • Locale::acceptFromHttp — Попытаться определить наилучшую локаль основываясь на заголовке HTTP "Accept-Language"
    • Locale::canonicalize — Канонизировать строку локали
    • Locale::composeLocale — Возвращает корректно отсортированные и разделенные идентификаторы локали
    • Locale::filterMatches — Проверить, соответствует ли тег фильтра языка локали
    • Locale::getAllVariants — Получение вариантов из переданной локали
    • Locale::getDefault — Получение значения локали INTL по умолчанию из опции 'default_locale'
    • Locale::getDisplayLanguage — Возвращает соответствующим образом локализованное имя языка для заданной локали
    • Locale::getDisplayName — Возвращает соответствующим образом локализованное имя локали
    • Locale::getDisplayRegion — Возвращает соответствующим образом локализованное название региона для заданной локали
    • Locale::getDisplayScript — Возвращает соответствующим образом локализованное название алфавита для заданной локали
    • Locale::getDisplayVariant — Возвращает соответствующим образом локализованное название варианта для заданной локали
    • Locale::getKeywords — Получить ключевые слова для локали
    • Locale::getPrimaryLanguage — Получить первичный язык для локали
    • Locale::getRegion — Получить регион для локали
    • Locale::getScript — Получить алфавит для локали
    • Locale::lookup — Поиск языковых меток наиболее подходящих заданной локали
    • Locale::parseLocale — Получить ассоциативный массив всех подтегов локали
    • Locale::setDefault — Установить локаль по умолчанию во время исполнения
  • Normalizer — Класс Normalizer
    • Normalizer::getRawDecomposition — Извлекает свойство Decomposition_Mapping для заданного символа UTF-8
    • Normalizer::isNormalized — Проверить, соответствует ли переданная строка заданной форме нормализации
    • Normalizer::normalize — Нормализация строки
  • MessageFormatter — The MessageFormatter class
    • MessageFormatter::create — Constructs a new Message Formatter
    • MessageFormatter::formatMessage — Quick format message
    • MessageFormatter::format — Format the message
    • MessageFormatter::getErrorCode — Get the error code from last operation
    • MessageFormatter::getErrorMessage — Get the error text from the last operation
    • MessageFormatter::getLocale — Get the locale for which the formatter was created
    • MessageFormatter::getPattern — Get the pattern used by the formatter
    • MessageFormatter::parseMessage — Quick parse input string
    • MessageFormatter::parse — Parse input string according to pattern
    • MessageFormatter::setPattern — Set the pattern used by the formatter
  • IntlCalendar — Класс IntlCalendar
    • IntlCalendar::add — Add a (signed) amount of time to a field
    • IntlCalendar::after — Whether this object?s time is after that of the passed object
    • IntlCalendar::before — Whether this object?s time is before that of the passed object
    • IntlCalendar::clear — Clear a field or all fields
    • IntlCalendar::__construct — Private constructor for disallowing instantiation
    • IntlCalendar::createInstance — Create a new IntlCalendar
    • IntlCalendar::equals — Compare time of two IntlCalendar objects for equality
    • IntlCalendar::fieldDifference — Calculate difference between given time and this object?s time
    • IntlCalendar::fromDateTime — Create an IntlCalendar from a DateTime object or string
    • IntlCalendar::get — Get the value for a field
    • IntlCalendar::getActualMaximum — The maximum value for a field, considering the object?s current time
    • IntlCalendar::getActualMinimum — The minimum value for a field, considering the object?s current time
    • IntlCalendar::getAvailableLocales — Get array of locales for which there is data
    • IntlCalendar::getDayOfWeekType — Tell whether a day is a weekday, weekend or a day that has a transition between the two
    • IntlCalendar::getErrorCode — Get last error code on the object
    • IntlCalendar::getErrorMessage — Get last error message on the object
    • IntlCalendar::getFirstDayOfWeek — Get the first day of the week for the calendar?s locale
    • IntlCalendar::getGreatestMinimum — Get the largest local minimum value for a field
    • IntlCalendar::getKeywordValuesForLocale — Get set of locale keyword values
    • IntlCalendar::getLeastMaximum — Get the smallest local maximum for a field
    • IntlCalendar::getLocale — Get the locale associated with the object
    • IntlCalendar::getMaximum — Get the global maximum value for a field
    • IntlCalendar::getMinimalDaysInFirstWeek — Get minimal number of days the first week in a year or month can have
    • IntlCalendar::getMinimum — Get the global minimum value for a field
    • IntlCalendar::getNow — Get number representing the current time
    • IntlCalendar::getRepeatedWallTimeOption — Get behavior for handling repeating wall time
    • IntlCalendar::getSkippedWallTimeOption — Get behavior for handling skipped wall time
    • IntlCalendar::getTime — Get time currently represented by the object
    • IntlCalendar::getTimeZone — Get the object?s timezone
    • IntlCalendar::getType — Get the calendar type
    • IntlCalendar::getWeekendTransition — Get time of the day at which weekend begins or ends
    • IntlCalendar::inDaylightTime — Whether the object?s time is in Daylight Savings Time
    • IntlCalendar::isEquivalentTo — Whether another calendar is equal but for a different time
    • IntlCalendar::isLenient — Whether date/time interpretation is in lenient mode
    • IntlCalendar::isSet — Whether a field is set
    • IntlCalendar::isWeekend — Whether a certain date/time is in the weekend
    • IntlCalendar::roll — Add value to field without carrying into more significant fields
    • IntlCalendar::set — Set a time field or several common fields at once
    • IntlCalendar::setFirstDayOfWeek — Set the day on which the week is deemed to start
    • IntlCalendar::setLenient — Set whether date/time interpretation is to be lenient
    • IntlCalendar::setMinimalDaysInFirstWeek — Set minimal number of days the first week in a year or month can have
    • IntlCalendar::setRepeatedWallTimeOption — Set behavior for handling repeating wall times at negative timezone offset transitions
    • IntlCalendar::setSkippedWallTimeOption — Set behavior for handling skipped wall times at positive timezone offset transitions
    • IntlCalendar::setTime — Set the calendar time in milliseconds since the epoch
    • IntlCalendar::setTimeZone — Set the timezone used by this calendar
    • IntlCalendar::toDateTime — Convert an IntlCalendar into a DateTime object
  • IntlGregorianCalendar — Класс IntlGregorianCalendar
    • IntlGregorianCalendar::__construct — Create the Gregorian Calendar class
    • IntlGregorianCalendar::getGregorianChange — Get the Gregorian Calendar change date
    • IntlGregorianCalendar::isLeapYear — Determine if the given year is a leap year
    • IntlGregorianCalendar::setGregorianChange — Set the Gregorian Calendar the change date
  • IntlTimeZone — Класс IntlTimeZone
    • IntlTimeZone::countEquivalentIDs — Get the number of IDs in the equivalency group that includes the given ID
    • IntlTimeZone::createDefault — Create a new copy of the default timezone for this host
    • IntlTimeZone::createEnumeration — Get an enumeration over time zone IDs associated with the given country or offset
    • IntlTimeZone::createTimeZone — Create a timezone object for the given ID
    • IntlTimeZone::createTimeZoneIDEnumeration — Get an enumeration over system time zone IDs with the given filter conditions
    • IntlTimeZone::fromDateTimeZone — Create a timezone object from DateTimeZone
    • IntlTimeZone::getCanonicalID — Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID
    • IntlTimeZone::getDisplayName — Get a name of this time zone suitable for presentation to the user
    • IntlTimeZone::getDSTSavings — Get the amount of time to be added to local standard time to get local wall clock time
    • IntlTimeZone::getEquivalentID — Get an ID in the equivalency group that includes the given ID
    • IntlTimeZone::getErrorCode — Get last error code on the object
    • IntlTimeZone::getErrorMessage — Get last error message on the object
    • IntlTimeZone::getGMT — Create GMT (UTC) timezone
    • IntlTimeZone::getID — Get timezone ID
    • IntlTimeZone::getIDForWindowsID — Translate a Windows timezone into a system timezone
    • IntlTimeZone::getOffset — Get the time zone raw and GMT offset for the given moment in time
    • IntlTimeZone::getRawOffset — Get the raw GMT offset (before taking daylight savings time into account
    • IntlTimeZone::getRegion — Get the region code associated with the given system time zone ID
    • IntlTimeZone::getTZDataVersion — Get the timezone data version currently used by ICU
    • IntlTimeZone::getUnknown — Get the "unknown" time zone
    • IntlTimeZone::getWindowsID — Translate a system timezone into a Windows timezone
    • IntlTimeZone::hasSameRules — Check if this zone has the same rules and offset as another zone
    • IntlTimeZone::toDateTimeZone — Convert to DateTimeZone object
    • IntlTimeZone::useDaylightTime — Check if this time zone uses daylight savings time
  • IntlDateFormatter — Класс IntlDateFormatter
    • IntlDateFormatter::create — Create a date formatter
    • IntlDateFormatter::format — Format the date/time value as a string
    • IntlDateFormatter::formatObject — Formats an object
    • IntlDateFormatter::getCalendar — Get the calendar type used for the IntlDateFormatter
    • IntlDateFormatter::getDateType — Get the datetype used for the IntlDateFormatter
    • IntlDateFormatter::getErrorCode — Get the error code from last operation
    • IntlDateFormatter::getErrorMessage — Get the error text from the last operation
    • IntlDateFormatter::getLocale — Get the locale used by formatter
    • IntlDateFormatter::getPattern — Get the pattern used for the IntlDateFormatter
    • IntlDateFormatter::getTimeType — Get the timetype used for the IntlDateFormatter
    • IntlDateFormatter::getTimeZoneId — Get the timezone-id used for the IntlDateFormatter
    • IntlDateFormatter::getCalendarObject — Get copy of formatter?s calendar object
    • IntlDateFormatter::getTimeZone — Get formatter?s timezone
    • IntlDateFormatter::isLenient — Get the lenient used for the IntlDateFormatter
    • IntlDateFormatter::localtime — Parse string to a field-based time value
    • IntlDateFormatter::parse — Parse string to a timestamp value
    • IntlDateFormatter::setCalendar — Sets the calendar type used by the formatter
    • IntlDateFormatter::setLenient — Set the leniency of the parser
    • IntlDateFormatter::setPattern — Set the pattern used for the IntlDateFormatter
    • IntlDateFormatter::setTimeZoneId — Sets the time zone to use
    • IntlDateFormatter::setTimeZone — Sets formatter?s timezone
  • ResourceBundle — Класс ResourceBundle
    • ResourceBundle::count — Получить количество элементов в пакете
    • ResourceBundle::create — Создать пакет ресурсов
    • ResourceBundle::getErrorCode — Получить последний код ошибки пакета
    • ResourceBundle::getErrorMessage — Получить последнее сообщение об ошибке пакета
    • ResourceBundle::get — Получить данные из пакета
    • ResourceBundle::getLocales — Получить поддерживаемые локали
  • Spoofchecker — Класс Spoofchecker
    • Spoofchecker::areConfusable — Проверить, являются ли строки подозрительными
    • Spoofchecker::__construct — Конструктор класса
    • Spoofchecker::isSuspicious — Проверяет, содержит ли текст подозрительные символы
    • Spoofchecker::setAllowedLocales — Локаль для использования в проверках
    • Spoofchecker::setChecks — Установить набор проверок
  • Transliterator — Класс Transliterator
    • Transliterator::__construct — Приватный конструктор
    • Transliterator::create — Создать транслитератор
    • Transliterator::createFromRules — Создать транслитератор на основе правил
    • Transliterator::createInverse — Создать инвертированный транслитератор
    • Transliterator::getErrorCode — Получить код последней ошибки
    • Transliterator::getErrorMessage — Получить последнее сообщение об ошибке
    • Transliterator::listIDs — Получить идентификаторы транслитератора
    • Transliterator::transliterate — Транслитерировать строку
  • IntlBreakIterator — Класс IntlBreakIterator
    • IntlBreakIterator::__construct — Private constructor for disallowing instantiation
    • IntlBreakIterator::createCharacterInstance — Create break iterator for boundaries of combining character sequences
    • IntlBreakIterator::createCodePointInstance — Create break iterator for boundaries of code points
    • IntlBreakIterator::createLineInstance — Create break iterator for logically possible line breaks
    • IntlBreakIterator::createSentenceInstance — Create break iterator for sentence breaks
    • IntlBreakIterator::createTitleInstance — Create break iterator for title-casing breaks
    • IntlBreakIterator::createWordInstance — Create break iterator for word breaks
    • IntlBreakIterator::current — Get index of current position
    • IntlBreakIterator::first — Set position to the first character in the text
    • IntlBreakIterator::following — Advance the iterator to the first boundary following specified offset
    • IntlBreakIterator::getErrorCode — Get last error code on the object
    • IntlBreakIterator::getErrorMessage — Get last error message on the object
    • IntlBreakIterator::getLocale — Get the locale associated with the object
    • IntlBreakIterator::getPartsIterator — Create iterator for navigating fragments between boundaries
    • IntlBreakIterator::getText — Get the text being scanned
    • IntlBreakIterator::isBoundary — Tell whether an offset is a boundary?s offset
    • IntlBreakIterator::last — Set the iterator position to index beyond the last character
    • IntlBreakIterator::next — Advance the iterator the next boundary
    • IntlBreakIterator::preceding — Set the iterator position to the first boundary before an offset
    • IntlBreakIterator::previous — Set the iterator position to the boundary immediately before the current
    • IntlBreakIterator::setText — Set the text being scanned
  • IntlRuleBasedBreakIterator — Класс IntlRuleBasedBreakIterator
    • IntlRuleBasedBreakIterator::__construct — Создает итератор на основе набора правил
    • IntlRuleBasedBreakIterator::getBinaryRules — Получить бинарные данные из скомпилированных правил
    • IntlRuleBasedBreakIterator::getRules — Получить набор правил, использовавшихся при создании этого объекта
    • IntlRuleBasedBreakIterator::getRuleStatus — Получить наибольшее значение статуса правил останова, определившее текущую позицию остановки
    • IntlRuleBasedBreakIterator::getRuleStatusVec — получить значения статусов из правил останова, определивших текущую позицию остановки
  • IntlCodePointBreakIterator — Класс IntlCodePointBreakIterator
    • IntlCodePointBreakIterator::getLastCodePoint — Получить последний код символа, выданный при перемещении итератора вперед или назад
  • IntlPartsIterator — Класс IntlPartsIterator
    • IntlPartsIterator::getBreakIterator — Получить IntlBreakIterator сохраняя итератор этой части
  • UConverter — Класс UConverter
    • UConverter::__construct — Создать объект UConverter
    • UConverter::convert — Конвертировать строку из одной кодировки в другую
    • UConverter::fromUCallback — Callback-функция по умолчанию для "from"
    • UConverter::getAliases — Получить псевдонимы для заданного имени
    • UConverter::getAvailable — Получить доступные имена канонических конверторов
    • UConverter::getDestinationEncoding — Получить кодировку назначения
    • UConverter::getDestinationType — Получить тип конвертера назначения
    • UConverter::getErrorCode — Получить код последней ошибки объекта
    • UConverter::getErrorMessage — Получить последнее сообщение об ошибке в объекте
    • UConverter::getSourceEncoding — Получить исходную кодировку
    • UConverter::getSourceType — Получить тип конвертора источника
    • UConverter::getStandards — Получить стандарты, связанные с именами конвертеров
    • UConverter::getSubstChars — Получить замену символов
    • UConverter::reasonText — Получить строковое представление причины обратного вызова
    • UConverter::setDestinationEncoding — Установить кодировку назначения
    • UConverter::setSourceEncoding — Установить исходную кодировку
    • UConverter::setSubstChars — Установка символов подстановки
    • UConverter::toUCallback — Callback-функция по умолчанию для "to"
    • UConverter::transcode — Конвертировать строку из одной кодировки в другую
  • Функции Grapheme
    • grapheme_extract — Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8
    • grapheme_stripos — Find position (in grapheme units) of first occurrence of a case-insensitive string
    • grapheme_stristr — Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
    • grapheme_strlen — Get string length in grapheme units
    • grapheme_strpos — Find position (in grapheme units) of first occurrence of a string
    • grapheme_strripos — Find position (in grapheme units) of last occurrence of a case-insensitive string
    • grapheme_strrpos — Find position (in grapheme units) of last occurrence of a string
    • grapheme_strstr — Returns part of haystack string from the first occurrence of needle to the end of haystack
    • grapheme_substr — Return part of a string
  • Функции IDN
    • idn_to_ascii — Преобразовать доменное имя в формат IDNA ASCII
    • idn_to_utf8 — Преобразование доменного имени из IDNA ASCII в Unicode
  • IntlChar
    • IntlChar::charAge — Получить "возраст" символьного кода
    • IntlChar::charDigitValue — Получить десятичную цифру из символа десятичной цифры
    • IntlChar::charDirection — Получить категорию направления письма для символа
    • IntlChar::charFromName — Найти символ Unicode по его имени и вернуть его код
    • IntlChar::charMirror — Получить "зеркальный" символ по коду
    • IntlChar::charName — Получить имя символа Unicode
    • IntlChar::charType — Получить главную категорию, в которую входит символ
    • IntlChar::chr — Получить символ Unicode по его коду
    • IntlChar::digit — Получить десятичное число из символа Unicode с заданным основанием
    • IntlChar::enumCharNames — Перечисляет все присвоенные символы Unicode в заданном диапазоне
    • IntlChar::enumCharTypes — Перечисление последовательностей символов Unicode сгруппированых по им категориям
    • IntlChar::foldCase — Производит преобразование регистра заданного символа
    • IntlChar::forDigit — Получить символ представляющий заданное число в заданном основании
    • IntlChar::getBidiPairedBracket — Получить парную скобку для символа
    • IntlChar::getBlockCode — Получить блок размещения символа Unicode
    • IntlChar::getCombiningClass — Получить комбинирующий класс для символа
    • IntlChar::getFC_NFKC_Closure — Получить свойство FC_NFKC_Closure для символа
    • IntlChar::getIntPropertyMaxValue — Получить минимальное значение для свойства Unicode
    • IntlChar::getIntPropertyMinValue — Получить минимальное значение для свойства Unicode
    • IntlChar::getIntPropertyValue — Получить значение свойства Unicode для символа
    • IntlChar::getNumericValue — Получить числовое предствление для символа Unicode
    • IntlChar::getPropertyEnum — Получить значение константы свойства по его имени
    • IntlChar::getPropertyName — Получить Unicode имя свойства
    • IntlChar::getPropertyValueEnum — Вернуть числовой идентификатор свойства по его имени
    • IntlChar::getPropertyValueName — Получить имя Unicode для значения свойства
    • IntlChar::getUnicodeVersion — Получить версию Unicode
    • IntlChar::hasBinaryProperty — Проверить бинарное свойство Unicode для символа
    • IntlChar::isalnum — Проверить, является ли символ буквой либо цифрой
    • IntlChar::isalpha — Проверить, является ли символ буквой
    • IntlChar::isbase — Проверить, является ли символ базовым
    • IntlChar::isblank — Проверить, является ли символ "пустым" либо "горизонтальным пробелом"
    • IntlChar::iscntrl — Проверить, является ли символ управляющим
    • IntlChar::isdefined — Проверить, определен ли символ
    • IntlChar::isdigit — Проверить, является ли символ цифрой
    • IntlChar::isgraph — Проверить, является ли символ графическим символом
    • IntlChar::isIDIgnorable — Проверить, является ли символ игнорируемым
    • IntlChar::isIDPart — Проверить, допустимо ли использовать символ в идентификаторе
    • IntlChar::isIDStart — Проверить, допустимо ли использовать символ в начале идентификатора
    • IntlChar::isISOControl — Проверить, является ли символ управляющим согласно ISO
    • IntlChar::isJavaIDPart — Проверить, является ли символ допустимым в идентификаторе Java
    • IntlChar::isJavaIDStart — Проверить, может ли символ быть первым в идентификаторе Java
    • IntlChar::isJavaSpaceChar — Проверить, является ли символ пробельным с точки зрения языка Java
    • IntlChar::islower — Проверить, в нижнем ли регистре символ
    • IntlChar::isMirrored — Проверить, если у символа свойство Bidi_Mirrored
    • IntlChar::isprint — Проверяет, является ли симвом отображаемым
    • IntlChar::ispunct — Проверяет, является ли символ символом пунктуации
    • IntlChar::isspace — Проверяет, является ли символ пробельным
    • IntlChar::istitle — Проверить, является ли символ титульным (Titlecase)
    • IntlChar::isUAlphabetic — Проверить, установлено ли у символа свойство Alphabetic
    • IntlChar::isULowercase — Проверить, является ли символ символом в нижнем регистре
    • IntlChar::isupper — Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)
    • IntlChar::isUUppercase — Проверить, является ли символ символом в верхнем регистре
    • IntlChar::isUWhiteSpace — Проверить, имеет ли символ свойство White_Space (пробельный символ)
    • IntlChar::isWhitespace — Проверить, является ли символ пробельным с точки зрения ICU
    • IntlChar::isxdigit — Проверить, является ли символ шестнадцатеричной цифрой
    • IntlChar::ord — Получить код символ Unicode
    • IntlChar::tolower — Преобразование символа Unicode в нижний регистр
    • IntlChar::totitle — Преобразует символ Unicode в titlecase
    • IntlChar::toupper — Преобразование символа Unicode в верхний регистр
  • IntlException — Класс исключений для ошибок intl
  • IntlIterator — Класс IntlIterator
    • IntlIterator::current — Получить текущий элемент
    • IntlIterator::key — Получить ключ текущего элемента
    • IntlIterator::next — Перейти к следующему элементу
    • IntlIterator::rewind — Перейти к первому элементу
    • IntlIterator::valid — Проверить, корректна ли текущая позиция
  • Функции intl
    • intl_error_name — Получить имя ошибки по ее коду
    • intl_get_error_code — Получить код последней ошибки
    • intl_get_error_message — Получить описание ошибки
    • intl_is_failure — Проверить, является ли код ошибки признаком сбоя


Введение

Модуль интернационализации (далее Intl) - это обёртка для библиотеки » ICU, позволяющая программистам на PHP производить различные операции, каторые зависят от локали, например, форматирование, транслитерация, преобразование кодировок, операции с календарем, совместимое с » UCA сравнение, определение границ текста и работать с идентификаторами локалей, временными зонами и графемами.

Программный интерфейс модуля разрабатывается так, чтобы как можно точнее повторять API ICU, чтобы люди, работавшие с ICE в C/C++ или Java, могли легко использовать API PHP. Также благодоря этому документация ICE может быть полезной чтобы понять различие функции ICU.

Intl состоит из нескольких модулей, каждый из которых предоставляет соответствующий API ICU:

  • Модуль сравнения: предоставляет инструменты для сравнения строк с поддержкой соответствующего локали порядка сортировки.
  • Модуль форматирования чисел: позволяет отображать числа в соответствии с правилами локали, или заданным шаблоном или с набором правил. Также позволяет правильно разбирать строки в числа.
  • Модуль форматирования сообщений: позволяет создавать сообщения, включающие данные (такие как числа и даты), отформатированные в соответствии с заданными шаблоном и локальными правилами, и, также, разбирать сообщения, извлекая из них данные.
  • Модуль нормализации: предоставляет функции для преобразования текста в одну из нормализованных форм Unicode. Также предоставляет возможность проверить, является ли предоставленный текст уже нормализованным.
  • Модуль локали: предоставляет взаимодействие с идентификаторами локали как к функциями, позволяя получить вложенные теги локали; разбор, композиция, сравнение (поиск и фильтрация) идентификаторов локали.
  • Модуль календаря: предоставляет класс, полезный для проведения зависимых от локали операций с календарем, получения различной информации, такой как временные зоны для выбранной локали, первый день недели или режим текущего зимнего/летнего времени.
  • Модуль временной зоны: предоставляет обертку над » базой данных временных зон, в которой содержится исчерпывающая информация о всех мировых временных зонах.
  • Модуль форматирования даты: позволяет отображать дату в соответствии с принятым для данной локали форматом либо заданным шаблоном или набором правил. Также нужен для разбора строк, содержащих описание даты и времени.
  • Модуль транслитерации: позволяет получить представление строки на различных языках в латинице.

Ссылки

  • » Различная документация ICU

  • » Руководство пользователя ICU

  • » Алгоритм сопоставления Unicode


Требования

Для установки данного модуля необходимо предварительно установить библиотеку » ICU версии 4.0.0 или выше. Начиная с PHP 7.4.0 требуется ICU 50.1 или новее.

Модуль входит в состав PHP начиная с версии 5.3.0. Для версий начиная с PHP 5.2.0 (рекомендуется 5.2.4+) существует пакет PECL.


Установка

Модуль входит в стандартную поставку начиная с PHP 5.3.0. С PHP 5.2.0 можно использовать модуль PECL. Другими словами - есть два пути установки модуля.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/intl.

Для установки встроенной версии модуля используйте --enable-intl при компиляции PHP.

Если ICU установлен в нестандартную директорию, то ее необходимо указать в переменной окружения LD_LIBRARY_PATH, чтобы динамический линковщик смог его найти:

$ export LD_LIBRARY_PATH=/opt/icu/lib

В противном случае, если ICU установлен в стандартную директорию, то никаких дополнительных действий не требуется.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Intl
Имя | По умолчанию | Место изменения | Список изменений
intl.default_locale |  | PHP_INI_ALL |
intl.error_level | 0 | PHP_INI_ALL |
intl.use_exceptions | 0 | PHP_INI_ALL | Доступно с PHP 5.5 и PECL 3.0.0a1

Краткое разъяснение конфигурационных директив.

intl.default_locale string

Локаль по умолчанию для использования в функциях в случаях если соответствующие параметры будут опущены, либо заданы как NULL. Это локаль ICU, а не системная. Встроенные локали ICU и их данные можно посмотреть по ссылке » http://demo.icu-project.org/icu-bin/locexp.

По умолчанию значение пусто, что ведет к принудительному использованию локали ICU по умолчанию. Единожды задав это значение его уже нельзя будет сбросить на начальное. Не рекомендуется использовать локаль ICU по умолчанию, поскольку она зависит от локали окружения сервера.

intl.error_level integer

Уровень сообщений об ошибках, генерируемых при их возникновении в функциях ICU. Задается как уровень ошибок PHP, таких как E_WARNING. Можно установить равным 0, если вообще не хотите видеть сообщения об ошибках. Данная настройка не влияет на возвращаемые значения функций в случае ошибок и результат выполнения intl_get_error_code() и специфичных для классов методов, возвращающих информацию об ошибках. Если выбран уровень E_ERROR, то выполнение скрипта будет прерываться в случае возникновения ошибки.

По умолчанию равно 0.

intl.use_exceptions integer

Если установлено как TRUE, то вместо ошибок будут выбрасываться исключения класса IntlException. Можно использовать в дополнение к intl.error_level.

по умолчанию равно FALSE.


Предопределенные константы

INTL_MAX_LOCALE_LEN (integer)
Задает длину имени локали. Для PHP установлено равным 80. Имена локалей больше этого значения не принимаются.
IDNA_DEFAULT (integer)
Запретить передачу неопределенных кодов символов в функции IDN и не проверять ввод на соответствие правилам доменных имен ASCII.
IDNA_ALLOW_UNASSIGNED (integer)
Разрешить передачу неопределенных кодов символов в функции IDN
IDNA_USE_STD3_RULES (integer)
Проверять ввод для функций IDN на соответствие правилам доменных имен ASCII.
IDNA_CHECK_BIDI (integer)
Проверять, соответствует ли ввод правилам BiDi. Игнорируется в реализации IDNA2003, которая всегда производит эту проверку.
IDNA_CHECK_CONTEXTJ (integer)
Проверять, соответствует ли ввод правилам CONTEXTJ. Игнорируется в реализации IDNA2003, так как эта проверка введена в IDNA2008.
IDNA_NONTRANSITIONAL_TO_ASCII (integer)
Опция для несквозной обработки в idn_to_ascii(). Сквозная обработка активирована по умолчанию. Игнорируется в реализации IDNA2003.
IDNA_NONTRANSITIONAL_TO_UNICODE (integer)
Опция для несквозной обработки в idn_to_utf8(). Сквозная обработка активирована по умолчанию. Игнорируется в реализации IDNA2003.
INTL_IDNA_VARIANT_2003 (integer)
Использовать алгоритм IDNA 2003 в idn_to_utf8() и idn_to_ascii(). Задано по умолчанию. Эта константа и то, что она используется по умолчанию, объявлено устаревшим в PHP 7.2.0.
INTL_IDNA_VARIANT_UTS46 (integer)
Использовать алгоритм UTS #46 в idn_to_utf8() и idn_to_ascii(). Доступно с ICU 4.6.
IDNA_ERROR_EMPTY_LABEL (integer)
IDNA_ERROR_LABEL_TOO_LONG (integer)
IDNA_ERROR_DOMAIN_NAME_TOO_LONG (integer)
IDNA_ERROR_LEADING_HYPHEN (integer)
IDNA_ERROR_TRAILING_HYPHEN (integer)
IDNA_ERROR_HYPHEN_3_4 (integer)
IDNA_ERROR_LEADING_COMBINING_MARK (integer)
IDNA_ERROR_DISALLOWED (integer)
IDNA_ERROR_PUNYCODE (integer)
IDNA_ERROR_LABEL_HAS_DOT (integer)
IDNA_ERROR_INVALID_ACE_LABEL (integer)
IDNA_ERROR_BIDI (integer)
IDNA_ERROR_CONTEXTJ (integer)
При использовании алгоритма UTS #46 в idn_to_utf8() и idn_to_ascii(), ошибки возвращаются в виде побитовой маски.


  • « Предопределенные константы
  • Основы использования расширения »
  • PHP Manual
  • intl
  • Примеры

Примеры

Содержание

  • Основы использования расширения


Основы использования расширения

Каждый модуль предоставляет два типа API: процедурный и объектно-ориентированный. Они идентичны и описываются в соответствующих разделах руководства.

Замечание:

Все входные данные должны быть в кодировке UTF-8. Все выходные данные также.

Пример #1 Пример использования процедурного API

<?php
$coll  = collator_create('en_US');
$result = collator_compare($coll, "string#1", "string#2");
?>

Пример #2 Пример использования объектно-ориентированного API

<?php
$coll = new Collator('en_US');
$al   = $coll->getLocale(Locale::ACTUAL_LOCALE);
echo "Текущая локаль: $al\n";

$formatter = new NumberFormatter('en_US', NumberFormatter::DECIMAL);
echo $formatter->format(1234567);
?>


Класс Collator

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Введение

Производит сравнение строк с поддержкой порядка сортировки специфичного для локали.

Обзор классов

Collator {
/* Методы */
public __construct ( string $locale )
public asort ( array &$arr [, int $sort_flag ] ) : bool
public compare ( string $str1 , string $str2 ) : int
public static create ( string $locale ) : Collator
public getAttribute ( int $attr ) : int
public getErrorCode ( void ) : int
public getErrorMessage ( void ) : string
public getLocale ( int $type ) : string
public getSortKey ( string $str ) : string
public getStrength ( void ) : int
public setAttribute ( int $attr , int $val ) : bool
public setStrength ( int $strength ) : bool
public sortWithSortKeys ( array &$arr ) : bool
public sort ( array &$arr [, int $sort_flag ] ) : bool
}

Предопределенные константы

Collator::FRENCH_COLLATION (integer)

Сортировка строк с акцентами с конца строки. Этот аттрибут автоматически проставляется в On для французской и некоторых других локалей. Обычно пользователям нет необходимости специально задавать этот параметр. Есть некоторая просадка производительности если этот параметр установлен как On, но никак не влияет на длину ключа сортировки. Возможные значения:

  • Collator::ON
  • Collator::OFF(по умолчанию)
  • Collator::DEFAULT_VALUE

Пример #1 Правила FRENCH_COLLATION

  • F=OFF cote < cote < cote < cote
  • F=ON cote < cote < cote < cote

Collator::ALTERNATE_HANDLING (integer)

Аттрибут "Alternate" используется для контроля обработки так называемых "переменных символов" в UCA: пробельные символы, знаки пунктуации и символы. Если "Alternate" установлен как NonIgnorable (N), то различия в этих символах будут считаться такими же значимыми, как и различия между буквами. Если "Alternate" установлен как Shifted (S), то эти символы будут иметь низкую значимость. Значение Shifted зачастую используется в комбинации с Strength установленным в "Quaternary". В таких случаях подобные символы будут учитываться при сортировке, но только если все остальные аспекты строк (буквы, акценты, регист) идентичны. Если "Alternate" не установлен как "Shifted", то разницы между "Strength" равным 3 и 4 не будет. Более подробно и с примерами читайте в разделе "Variable_Weighting" на сайте » UCA. Причина, по которой значения для "Alternate" не используются просто On в Off в том, что в будущем могут быть добавлены дополнительные варианты. Опция UCA "Blanked" выражается с помощью "Strength" установленного в и "Alternate" установленного в "Shifted". Для большинства локалей этот параметр по умолчанию равен "NonIgnorable". Если задано "Shifted", то обработка может быть медленнее в случае если у вас много строк, отличающихся только пунктуацией. Длина ключа сортировки не затрагивается только если также не увеличивался уровень "Strength".

Возможные значения:

  • Collator::NON_IGNORABLE(по умолчанию)
  • Collator::SHIFTED
  • Collator::DEFAULT_VALUE

Пример #2 ALTERNATE_HANDLING rules

  • S=3, A=N di Silva < Di Silva < diSilva < U.S.A. < USA
  • S=3, A=S di Silva = diSilva < Di Silva < U.S.A. = USA
  • S=4, A=S di Silva < diSilva < Di Silva < U.S.A. < USA

Collator::CASE_FIRST (integer)

Аттрибут "Case_First" используется для определения порядка сортировки в зависимости от регистра символов при отсутствии других различий в строках. Возможные значения: Uppercase_First(U), Lowercase_First (L), Default и Off. Между "Off" и "Lowercase_First" практически нет разницы, так что пользователи обычно не используют "Lowercase_First", а только Off или Uppercase_First. (Те, кому действительно интересна разница между X и L могут обратиться к Настройке Collation). Задание L или U не сказывается на скорости сравнения, но влияет на длину ключа сортировки.

Возможные значения:

  • Collator::OFF(по умолчанию)
  • Collator::LOWER_FIRST
  • Collator::UPPER_FIRST
  • Collator:DEFAULT

Пример #3 Правила CASE_FIRST

  • C=X or C=L "china" < "China" < "denmark" < "Denmark"
  • C=U "China" < "china" < "Denmark" < "denmark"

Collator::CASE_LEVEL (integer)

Аттрибут "Case_Level" используется, когда акценты не важны, а регист важен. В таких случаях установите "Strength" в значение Primary, и "Case_Level" в On. В большинстве локалей по умолчанию задано значение "Off". Оказывает незначительное влияние на скорость сравнения и длину ключа сортировки если установлено как On.

Возможные значения:

  • Collator::OFF(по умолчанию)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Пример #4 CASE_LEVEL rules

  • S=1, E=X role = Role = role
  • S=1, E=O role = role < Role

Collator::NORMALIZATION_MODE (integer)

Настройка "Normalization" определяет, будет ли текст тщательно нормализован в сравнении или нет. Даже если данная настройка отключена (по умолчанию для многих локалей), текст в общем случае будет сравниваться корректно (подробности в UTN #5). Проблемы могут быть только с отметками акцентов расположенными в неканоничном порядке. Если установлено как On, то будет гарантирован наилучший результат для всех возможных вариантов текста. Однако, если установлено как On - это скажется на скорости сравнения, в зависимости от количества последовательностей, который необходимо нормализовать. Какого-либо заметного влияния на длину ключа сортировки оказано не будет. Если заранее известно, что текст уже нормализован как NFD или NFKD, необходимости в использовании этой настройки нет.

Возможные значения:

  • Collator::OFF(по умолчанию)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::STRENGTH (integer)

ICU Collation Service поддерживает множество уровней сравнения (они называются "Levels", но также известны как "Strengths"). Использование этих настроек позволяет ICU сортировать строки точно в соответствии с правилами локали. Однако, разрешая выборочное использование этих уровней, поиск строки в тексте можно производить с использованием различных условий. Больше информации описано в главе посвященной collator_set_strength().

Возможные значения:

  • Collator::PRIMARY
  • Collator::SECONDARY
  • Collator::TERTIARY(по умолчанию)
  • Collator::QUATERNARY
  • Collator::IDENTICAL
  • Collator::DEFAULT_VALUE

Collator::HIRAGANA_QUATERNARY_MODE (integer)

Совместимость с JIS x 4061 требует введения дополнительного уровня для выделения символов Hiragana и Katakana. Если требуется совместимость со стандартом, то данный аттрибут необходимо задать как On, а "Strength" как "Quaternary". Это скажется на длине ключа сортировки и скорости сравнения.

Возможные значения:

  • Collator::OFF(по умолчанию)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::NUMERIC_COLLATION (integer)

Если включен, этот аттрибут генерирует ключ сравнения для числового значения подстроки состоящей из цифр. Это позволяет при сортировке помещать '100' после '2'.

Возможные значения:

  • Collator::OFF(по умолчанию)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::DEFAULT_VALUE (integer)
Collator::PRIMARY (integer)
Collator::SECONDARY (integer)
Collator::TERTIARY (integer)
Collator::DEFAULT_STRENGTH (integer)
Collator::QUATERNARY (integer)
Collator::IDENTICAL (integer)
Collator::OFF (integer)
Collator::ON (integer)
Collator::SHIFTED (integer)
Collator::NON_IGNORABLE (integer)
Collator::LOWER_FIRST (integer)
Collator::UPPER_FIRST (integer)

Содержание

  • Collator::asort — Sort array maintaining index association
  • Collator::compare — Compare two Unicode strings
  • Collator::__construct — Create a collator
  • Collator::create — Create a collator
  • Collator::getAttribute — Get collation attribute value
  • Collator::getErrorCode — Get collator's last error code
  • Collator::getErrorMessage — Get text for collator's last error code
  • Collator::getLocale — Get the locale name of the collator
  • Collator::getSortKey — Get sorting key for a string
  • Collator::getStrength — Get current collation strength
  • Collator::setAttribute — Set collation attribute
  • Collator::setStrength — Set collation strength
  • Collator::sortWithSortKeys — Sort array using specified collator and sort keys
  • Collator::sort — Sort array using specified collator


Sort array maintaining index association

  • « Collator
  • Collator::compare »
  • PHP Manual
  • Collator
  • Sort array maintaining index association

Collator::asort

collator_asort

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::asort -- collator_asort — Sort array maintaining index association

Описание

Объектно-ориентированный стиль

public Collator::asort ( array &$arr [, int $sort_flag ] ) : bool

Процедурный стиль

collator_asort ( Collator $coll , array &$arr [, int $sort_flag ] ) : bool

This function sorts an array such that array indices maintain their correlation with the array elements they are associated with. This is used mainly when sorting associative arrays where the actual element order is significant. Array elements will have sort order according to current locale rules.

Equivalent to standard PHP asort().

Список параметров

coll

Collator object.

arr

Array of strings to sort.

sort_flag

Optional sorting type, one of the following:

  • Collator::SORT_REGULAR - compare items normally (don't change types)

  • Collator::SORT_NUMERIC - compare items numerically

  • Collator::SORT_STRING - compare items as strings

Default $sort_flag value is Collator::SORT_REGULAR. It is also used if an invalid $sort_flag value has been specified.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 collator_asort()example

<?php
$coll = collator_create( 'en_US' );
$arr = array(
     'a' => '100',
     'b' => '50',
     'c' => '7'
);
collator_asort( $coll, $arr, Collator::SORT_NUMERIC );
var_export( $arr );

collator_asort( $coll, $arr, Collator::SORT_STRING );
var_export( $arr );
?>

Результат выполнения данного примера:

array (
  'c' => '7',
  'b' => '50',
  'a' => '100',
)array (
  'a' => '100',
  'b' => '50',
  'c' => '7',
)

Смотрите также

  • Collator constants
  • collator_sort() - Sort array using specified collator
  • collator_sort_with_sort_keys() - Sort array using specified collator and sort keys


Compare two Unicode strings

  • « Collator::asort
  • Collator::__construct »
  • PHP Manual
  • Collator
  • Compare two Unicode strings

Collator::compare

collator_compare

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::compare -- collator_compare — Compare two Unicode strings

Описание

Объектно-ориентированный стиль

public Collator::compare ( string $str1 , string $str2 ) : int

Процедурный стиль

collator_compare ( Collator $coll , string $str1 , string $str2 ) : int

Compare two Unicode strings according to collation rules.

Список параметров

coll

Collator object.

str1

The first string to compare.

str2

The second string to compare.

Возвращаемые значения

Return comparison result:

  • 1 if str1 is greater than str2 ;

  • 0 if str1 is equal to str2;

  • -1 if str1 is less than str2 .

On error boolean FALSE is returned.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 collator_compare()example

<?php
$s1 = 'Hello';
$s2 = 'hello';

$coll = collator_create( 'en_US' );
$res  = collator_compare( $coll, $s1, $s2 );

if ($res === false) {
    echo collator_get_error_message( $coll );
} else if( $res > 0 ) {
    echo "s1 is greater than s2\n";
} else if( $res < 0 ) {
    echo "s1 is less than s2\n";
} else {
    echo "s1 is equal to s2\n";
}
?>

Результат выполнения данного примера:

s1 is greater than s2

Смотрите также

  • collator_sort() - Sort array using specified collator


Create a collator

  • « Collator::compare
  • Collator::create »
  • PHP Manual
  • Collator
  • Create a collator

Collator::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::__construct — Create a collator

Описание

public Collator::__construct ( string $locale )

Creates a new instance of Collator.

Список параметров

locale

The locale whose collation rules should be used. Special values for locales can be passed in - if null is passed for the locale, the default locale's collation rules will be used. If "root" is passed, UCA rules will be used.

The Locale attribute is typically the most important attribute for correct sorting and matching, according to the user expectations in different countries and regions. The default » UCA ordering will only sort a few languages such as Dutch and Portuguese correctly ("correctly" meaning according to the normal expectations for users of the languages). Otherwise, you need to supply the locale to UCA in order to properly collate text for a given language. Thus a locale needs to be supplied so as to choose a collator that is correctly tailored for that locale. The choice of a locale will automatically preset the values for all of the attributes to something that is reasonable for that locale. Thus most of the time the other attributes do not need to be explicitly set. In some cases, the choice of locale will make a difference in string comparison performance and/or sort key length.

Возвращаемые значения

Returns Collator instance.

Ошибки

Returns an "empty" object on error. You can use intl_get_error_code() and/or intl_get_error_message() to know what happened.

Примеры

Пример #1 Collator::__construct() example

<?php
$coll = new Collator( 'en_CA' );
?>

Смотрите также

  • Collator::create() - Create a collator
  • collator_create() - Create a collator


Create a collator

  • « Collator::__construct
  • Collator::getAttribute »
  • PHP Manual
  • Collator
  • Create a collator

Collator::create

collator_create

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::create -- collator_create — Create a collator

Описание

Объектно-ориентированный стиль

public static Collator::create ( string $locale ) : Collator

Процедурный стиль

collator_create ( string $locale ) : Collator

The strings will be compared using the options already specified.

Список параметров

locale

The locale containing the required collation rules. Special values for locales can be passed in - if null is passed for the locale, the default locale collation rules will be used. If empty string ("") or "root" are passed, » UCA rules will be used.

Возвращаемые значения

Return new instance of Collator object, or NULL on error.

Примеры

Пример #1 collator_create() example

<?php
$coll = collator_create( 'en_US' );

if( !isset( $coll ) ) {
    printf( "Collator creation failed: %s\n", intl_get_error_message() );
    exit( 1 );
}
?>

Смотрите также

  • Collator::__construct() - Create a collator


Get collation attribute value

  • « Collator::create
  • Collator::getErrorCode »
  • PHP Manual
  • Collator
  • Get collation attribute value

Collator::getAttribute

collator_get_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getAttribute -- collator_get_attribute — Get collation attribute value

Описание

Объектно-ориентированный стиль

public Collator::getAttribute ( int $attr ) : int

Процедурный стиль

collator_get_attribute ( Collator $coll , int $attr ) : int

Get a value of an integer collator attribute.

Список параметров

coll

Collator object.

attr

Attribute to get value for.

Возвращаемые значения

Attribute value, or boolean FALSE on error.

Примеры

Пример #1 collator_get_attribute() example

<?php
$coll = collator_create( 'en_CA' );
$val = collator_get_attribute( $coll, Collator::NUMERIC_COLLATION );
if( $val === false )
{
    // Handle error.
}
?>

Смотрите также

  • Collator constants
  • collator_set_attribute() - Set collation attribute
  • collator_get_strength() - Get current collation strength


Get collator's last error code

  • « Collator::getAttribute
  • Collator::getErrorMessage »
  • PHP Manual
  • Collator
  • Get collator's last error code

Collator::getErrorCode

collator_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getErrorCode -- collator_get_error_code — Get collator's last error code

Описание

Объектно-ориентированный стиль

public Collator::getErrorCode ( void ) : int

Процедурный стиль

collator_get_error_code ( Collator $coll ) : int

Список параметров

coll

Collator object.

Возвращаемые значения

Error code returned by the last Collator API function call.

Примеры

Пример #1 collator_get_error_code() example

<?php
$coll = collator_create( 'en_US' );
if( collator_get_attribute( $coll, Collator::FRENCH_COLLATION ) === false )
        handle_error( collator_get_error_code() );
?>

Смотрите также

  • collator_get_error_message() - Get text for collator's last error code


Get text for collator's last error code

  • « Collator::getErrorCode
  • Collator::getLocale »
  • PHP Manual
  • Collator
  • Get text for collator's last error code

Collator::getErrorMessage

collator_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getErrorMessage -- collator_get_error_message — Get text for collator's last error code

Описание

Объектно-ориентированный стиль

public Collator::getErrorMessage ( void ) : string

Процедурный стиль

collator_get_error_message ( Collator $coll ) : string

Retrieves the message for the last error.

Список параметров

coll

Collator object.

Возвращаемые значения

Description of an error occurred in the last Collator API function call.

Примеры

Пример #1 collator_get_error_message() example

<?php
$coll = collator_create( 'lt' );
if( collator_compare( $coll, 'y', 'k' ) === false ) {
    echo collator_get_error_message( $coll );
}
?>

Смотрите также

  • collator_get_error_code() - Get collator's last error code


Get the locale name of the collator

  • « Collator::getErrorMessage
  • Collator::getSortKey »
  • PHP Manual
  • Collator
  • Get the locale name of the collator

Collator::getLocale

collator_get_locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getLocale -- collator_get_locale — Get the locale name of the collator

Описание

Объектно-ориентированный стиль

public Collator::getLocale ( int $type ) : string

Процедурный стиль

collator_get_locale ( Collator $coll , int $type ) : string

Get collector locale name.

Список параметров

coll

Collator object.

type

You can choose between valid and actual locale ( Locale::VALID_LOCALE and Locale::ACTUAL_LOCALE, respectively).

Возвращаемые значения

Real locale name from which the collation data comes. If the collator was instantiated from rules or an error occurred, returns boolean FALSE.

Примеры

Пример #1 collator_get_locale() example

<?php
$coll    = collator_create( 'en_US_California' );
$res_val = collator_get_locale( $coll, Locale::VALID_LOCALE );
$res_act = collator_get_locale( $coll, Locale::ACTUAL_LOCALE );
printf( "Valid locale name: %s\nActual locale name: %s\n",
         $res_val, $res_act );
?>

Результат выполнения данного примера:

Requested locale name: en_US_California
Valid locale name: en_US
Actual locale name: en

Смотрите также

  • collator_create() - Create a collator


Get sorting key for a string

  • « Collator::getLocale
  • Collator::getStrength »
  • PHP Manual
  • Collator
  • Get sorting key for a string

Collator::getSortKey

collator_get_sort_key

(PHP 5 >= 5.3.11, PHP 7, PECL intl >= 1.0.3)

Collator::getSortKey -- collator_get_sort_key — Get sorting key for a string

Описание

Объектно-ориентированный стиль

public Collator::getSortKey ( string $str ) : string

Процедурный стиль

collator_get_sort_key ( Collator $coll , string $str ) : string

Return collation key for a string.

Список параметров

coll

Collator object.

str

The string to produce the key from.

Возвращаемые значения

Returns the collation key for the string. Collation keys can be compared directly instead of strings.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 collator_get_sort_key()example

<?php
$s1 = 'Hello';

$coll = collator_create( 'en_US' );
$res  = collator_get_sort_key( $coll, $s1);

echo urlencode($res);
?>

Результат выполнения данного примера:

71%3F%3FE%01%09%01%8F%08%00

Смотрите также

  • collator_sort() - Sort array using specified collator
  • collator_sort_with_sort_keys() - Sort array using specified collator and sort keys


Get current collation strength

  • « Collator::getSortKey
  • Collator::setAttribute »
  • PHP Manual
  • Collator
  • Get current collation strength

Collator::getStrength

collator_get_strength

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getStrength -- collator_get_strength — Get current collation strength

Описание

Объектно-ориентированный стиль

public Collator::getStrength ( void ) : int

Процедурный стиль

collator_get_strength ( Collator $coll ) : int

Список параметров

coll

Collator object.

Возвращаемые значения

Returns current collation strength, or boolean FALSE on error.

Примеры

Пример #1 collator_get_strength() example

<?php
$coll     = collator_create( 'en_US' );
$strength = collator_get_strength( $coll );
?>

Смотрите также

  • Collator constants
  • collator_set_strength() - Set collation strength
  • collator_get_attribute() - Get collation attribute value


Set collation attribute

  • « Collator::getStrength
  • Collator::setStrength »
  • PHP Manual
  • Collator
  • Set collation attribute

Collator::setAttribute

collator_set_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::setAttribute -- collator_set_attribute — Set collation attribute

Описание

Объектно-ориентированный стиль

public Collator::setAttribute ( int $attr , int $val ) : bool

Процедурный стиль

collator_set_attribute ( Collator $coll , int $attr , int $val ) : bool

Список параметров

coll

Collator object.

attr

Attribute.

val

Attribute value.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 collator_set_attribute() example

<?php
$coll = collator_create( 'en_CA' );
$val  = collator_get_attribute( $coll, Collator::NUMERIC_COLLATION );
if ($val === false) {
    // Handle error.
} elseif ($val === Collator::ON) {
    // Do something useful.
}
?>

Смотрите также

  • Collator constants
  • collator_get_attribute() - Get collation attribute value
  • collator_set_strength() - Set collation strength


Set collation strength

  • « Collator::setAttribute
  • Collator::sortWithSortKeys »
  • PHP Manual
  • Collator
  • Set collation strength

Collator::setStrength

collator_set_strength

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::setStrength -- collator_set_strength — Set collation strength

Описание

Объектно-ориентированный стиль

public Collator::setStrength ( int $strength ) : bool

Процедурный стиль

collator_set_strength ( Collator $coll , int $strength ) : bool

The » ICU Collation Service supports many levels of comparison (named "Levels", but also known as "Strengths"). Having these categories enables ICU to sort strings precisely according to local conventions. However, by allowing the levels to be selectively employed, searching for a string in text can be performed with various matching conditions.

  1. Primary Level: Typically, this is used to denote differences between base characters (for example, "a" < "b"). It is the strongest difference. For example, dictionaries are divided into different sections by base character. This is also called the level1 strength.

  2. Secondary Level: Accents in the characters are considered secondary differences (for example, "as" < "as" < "at"). Other differences between letters can also be considered secondary differences, depending on the language. A secondary difference is ignored when there is a primary difference anywhere in the strings. This is also called the level2 strength.

    Замечание:

    Note: In some languages (such as Danish), certain accented letters are considered to be separate base characters. In most languages, however, an accented letter only has a secondary difference from the unaccented version of that letter.

  3. Tertiary Level: Upper and lower case differences in characters are distinguished at the tertiary level (for example, "ao" < "Ao" < "ao"). In addition, a variant of a letter differs from the base form on the tertiary level (such as "A" and " "). Another example is the difference between large and small Kana. A tertiary difference is ignored when there is a primary or secondary difference anywhere in the strings. This is also called the level3 strength.

  4. Quaternary Level: When punctuation is ignored (see Ignoring Punctuations ) at level 13, an additional level can be used to distinguish words with and without punctuation (for example, "ab" < "a-b" < "aB"). This difference is ignored when there is a primary, secondary or tertiary difference. This is also known as the level4 strength. The quaternary level should only be used if ignoring punctuation is required or when processing Japanese text (see Hiragana processing).

  5. Identical Level: When all other levels are equal, the identical level is used as a tiebreaker. The Unicode code point values of the NFD form of each string are compared at this level, just in case there is no difference at levels 14. For example, Hebrew cantillation marks are only distinguished at this level. This level should be used sparingly, as only code point values differences between two strings is an extremely rare occurrence. Using this level substantially decreases the performance for both incremental comparison and sort key generation (as well as increasing the sort key length). It is also known as level 5 strength.

For example, people may choose to ignore accents or ignore accents and case when searching for text. Almost all characters are distinguished by the first three levels, and in most locales the default value is thus Tertiary. However, if Alternate is set to be Shifted, then the Quaternary strength can be used to break ties among whitespace, punctuation, and symbols that would otherwise be ignored. If very fine distinctions among characters are required, then the Identical strength can be used (for example, Identical Strength distinguishes between the Mathematical Bold Small A and the Mathematical Italic Small A.). However, using levels higher than Tertiary the Identical strength result in significantly longer sort keys, and slower string comparison performance for equal strings.

Список параметров

coll

Collator object.

strength

Strength to set.

Possible values are:

  • Collator::PRIMARY

  • Collator::SECONDARY

  • Collator::TERTIARY

  • Collator::QUATERNARY

  • Collator::IDENTICAL

  • Collator::DEFAULT_STRENGTH

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 collator_set_strength() example

<?php
$arr  = array( 'ao', 'Ao', 'ao' );
$coll = collator_create( 'en_US' );

// Sort array using default strength.
collator_sort( $coll, $arr );
var_export( $arr );

// Sort array using primary strength.
collator_set_strength( $coll, Collator::PRIMARY );
collator_sort( $coll, $arr );
var_export( $arr );
?>

Результат выполнения данного примера:

array (
  0 => 'ao',
  1 => 'Ao',
  2 => 'ao',
)
array (
  0 => 'ao',
  1 => 'Ao',
  2 => 'ao',
)

Смотрите также

  • Collator constants
  • collator_get_strength() - Get current collation strength


Sort array using specified collator and sort keys

  • « Collator::setStrength
  • Collator::sort »
  • PHP Manual
  • Collator
  • Sort array using specified collator and sort keys

Collator::sortWithSortKeys

collator_sort_with_sort_keys

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::sortWithSortKeys -- collator_sort_with_sort_keys — Sort array using specified collator and sort keys

Описание

Объектно-ориентированный стиль

public Collator::sortWithSortKeys ( array &$arr ) : bool

Процедурный стиль

collator_sort_with_sort_keys ( Collator $coll , array &$arr ) : bool

Similar to collator_sort() but uses ICU sorting keys produced by ucol_getSortKey() to gain more speed on large arrays.

Список параметров

coll

Collator object.

arr

Array of strings to sort

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 collator_sort_with_sort_keys() example

<?php
$arr  = array( 'Kopfe', 'Kypper', 'Kopfe' );
$coll = collator_create( 'sv' );

collator_sort_with_sort_keys( $coll, $arr );
var_export( $arr );
?>

Результат выполнения данного примера:

array (
  0 => 'Kopfe',
  1 => 'Kypper',
  2 => 'Kopfe',
)

Смотрите также

  • Collator constants
  • collator_sort() - Sort array using specified collator
  • collator_asort() - Sort array maintaining index association


Sort array using specified collator

  • « Collator::sortWithSortKeys
  • NumberFormatter »
  • PHP Manual
  • Collator
  • Sort array using specified collator

Collator::sort

collator_sort

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::sort -- collator_sort — Sort array using specified collator

Описание

Объектно-ориентированный стиль

public Collator::sort ( array &$arr [, int $sort_flag ] ) : bool

Процедурный стиль

collator_sort ( Collator $coll , array &$arr [, int $sort_flag ] ) : bool

This function sorts an array according to current locale rules.

Equivalent to standard PHP sort() .

Список параметров

coll

Collator object.

arr

Array of strings to sort.

sort_flag

Optional sorting type, one of the following:

  • Collator::SORT_REGULAR - compare items normally (don't change types)

  • Collator::SORT_NUMERIC - compare items numerically

  • Collator::SORT_STRING - compare items as strings

Default sorting type is Collator::SORT_REGULAR. It is also used if an invalid sort_flag value has been specified.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 collator_sort() example

<?php
$coll = collator_create( 'en_US' );
$arr  = array( 'at', 'as', 'as' );

var_export( $arr );
collator_sort( $coll, $arr );
var_export( $arr );
?>

Результат выполнения данного примера:

array (
  0 => 'at',
  1 => 'as',
  2 => 'as',
)array (
  0 => 'as',
  1 => 'as',
  2 => 'at',
)

Смотрите также

  • Collator constants
  • collator_asort() - Sort array maintaining index association
  • collator_sort_with_sort_keys() - Sort array using specified collator and sort keys


The NumberFormatter class

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Введение

Программы хранят и оперируют числами используя, не зависящее от локали, бинарное представление. Когда же они выводятся на экран или печатаются, они конвертируются в строки в соответствии с требованиями локали. К примеру, число 12345.67 выведется как "12,345.67" в локали US, как "12 345,67" во французской локали и как "12.345,67" в немецкой.

Вызывая методы этого класса, вы можете форматировать числа, денежные единицы и процентные величины в представлении нужной локали. Класс NumberFormatter чуствителен к локали, следовательно вам необходимо будет создавать новый экземпляр класса для каждой локали. Методы NumberFormatter форматируют примитивные типы чисел, такие как "double", и выводят их в специфичном для локали представлении.

Для денежных единиц вы можете использовать тип форматирования денежных единиц, который возвращает строку с отформатированным числом и символом денежной единицы. Естественно NumberFormatter не знает о курсах обмена, так что для всех денежных единиц будет возвращено одно и то же число. К примеру, для числа 9988776.65 результат будет такой:

  • 9 988 776,65 € для Франции
  • 9.988.776,65 € для Германии
  • $9,988,776.65 для США

Для форматирования процентных величин используется свой тип форматирования. При таком форматировании число 0.75 будет выведено как 75%.

Для более сложного форматирования, например для разбора числа, используется форматирование основанное на наборе правил.

Обзор классов

NumberFormatter {
/* Методы */
public __construct ( string $locale , int $style [, string $pattern ] )
public static create ( string $locale , int $style [, string $pattern ] ) : NumberFormatter
public formatCurrency ( float $value , string $currency ) : string
public format ( number $value [, int $type ] ) : string
public getAttribute ( int $attr ) : int
public getErrorCode ( void ) : int
public getErrorMessage ( void ) : string
public getLocale ([ int $type ] ) : string
public getPattern ( void ) : string
public getSymbol ( int $attr ) : string
public getTextAttribute ( int $attr ) : string
public parseCurrency ( string $value , string &$currency [, int &$position ] ) : float
public parse ( string $value [, int $type [, int &$position ]] ) : mixed
public setAttribute ( int $attr , int $value ) : bool
public setPattern ( string $pattern ) : bool
public setSymbol ( int $attr , string $value ) : bool
public setTextAttribute ( int $attr , string $value ) : bool
}

Предопределенные константы

Данные стили используются функцией numfmt_create() для определения типа форматирования.

NumberFormatter::PATTERN_DECIMAL (integer)
Формат с десятичной точкой заданный шаблоном
NumberFormatter::DECIMAL (integer)
Формат с десятичной точкой
NumberFormatter::CURRENCY (integer)
денежный формат
NumberFormatter::PERCENT (integer)
Процентный формат
NumberFormatter::SCIENTIFIC (integer)
Научный формат
NumberFormatter::SPELLOUT (integer)
Разобранный формат на основе правил
NumberFormatter::ORDINAL (integer)
Числительный формат на основе правил
NumberFormatter::DURATION (integer)
Формат длительности на основе правил
NumberFormatter::PATTERN_RULEBASED (integer)
Формат на основе правил по шаблону
NumberFormatter::CURRENCY_ACCOUNTING (integer)
Формат валюты для учета, например, ($3.00) для отрицательной суммы в валюте вместо -$3.00. Доступно с PHP 7.4.1 и ICU 53.
NumberFormatter::DEFAULT_STYLE (integer)
Формат по умолчанию для локали
NumberFormatter::IGNORE (integer)
Псевдоним для PATTERN_DECIMAL

Данные константы определяют как будут разобраны или отформатированы числа. Их необходимо передавать функциям numfmt_format() и numfmt_parse().

NumberFormatter::TYPE_DEFAULT (integer)
Тип определяется типом переменной
NumberFormatter::TYPE_INT32 (integer)
Форматирование/разбор как 32-битного целого
NumberFormatter::TYPE_INT64 (integer)
Форматирование/разбор как 64-битного целого
NumberFormatter::TYPE_DOUBLE (integer)
Форматирование/разбор как рационального (float)
NumberFormatter::TYPE_CURRENCY (integer)
Форматирование/разбор как денежной единицы

Аттрибут формата чисел для numfmt_get_attribute() и numfmt_set_attribute().

NumberFormatter::PARSE_INT_ONLY (integer)
Разбирать только целые.
NumberFormatter::GROUPING_USED (integer)
Использовать группирующий разделитель.
NumberFormatter::DECIMAL_ALWAYS_SHOWN (integer)
Всегда показывать десятичную точку.
NumberFormatter::MAX_INTEGER_DIGITS (integer)
Максимальное число целых цифр.
NumberFormatter::MIN_INTEGER_DIGITS (integer)
Минимальное число целых цифр.
NumberFormatter::INTEGER_DIGITS (integer)
Целых цифр.
NumberFormatter::MAX_FRACTION_DIGITS (integer)
Максимальное число цифр после запятой.
NumberFormatter::MIN_FRACTION_DIGITS (integer)
Минимальное число цифр после запятой.
NumberFormatter::FRACTION_DIGITS (integer)
Число цифр после запятой.
NumberFormatter::MULTIPLIER (integer)
Множитель.
NumberFormatter::GROUPING_SIZE (integer)
Размер группировки.
NumberFormatter::ROUNDING_MODE (integer)
Режим округления.
NumberFormatter::ROUNDING_INCREMENT (integer)
Приращение округления.
NumberFormatter::FORMAT_WIDTH (integer)
Ширина на которую будет дополнен вывод format().
NumberFormatter::PADDING_POSITION (integer)
Позиция с которой дополнение будет иметь место. Смотрите описание констант дополнения.
NumberFormatter::SECONDARY_GROUPING_SIZE (integer)
Вторичный размер группировки.
NumberFormatter::SIGNIFICANT_DIGITS_USED (integer)
Использовать значащие цифры.
NumberFormatter::MIN_SIGNIFICANT_DIGITS (integer)
Минимальное количество значащих цифр.
NumberFormatter::MAX_SIGNIFICANT_DIGITS (integer)
Максимальное количество значащих цифр.
NumberFormatter::LENIENT_PARSE (integer)
Режим снисходительны синтаксического анализа для основанных на правилах форматов.

Аттрибуты текста форматирования чисел, используются в numfmt_get_text_attribute() и numfmt_set_text_attribute().

NumberFormatter::POSITIVE_PREFIX (integer)
Положительный префикс.
NumberFormatter::POSITIVE_SUFFIX (integer)
Положительный суффикс.
NumberFormatter::NEGATIVE_PREFIX (integer)
Отрицательный префикс.
NumberFormatter::NEGATIVE_SUFFIX (integer)
Отрицательный суффикс.
NumberFormatter::PADDING_CHARACTER (integer)
Символ для дополнения строки.
NumberFormatter::CURRENCY_CODE (integer)
Код денежной единицы ISO.
NumberFormatter::DEFAULT_RULESET (integer)
Набор правил по умолчанию. Доступно только для форматирования на основе правил.
NumberFormatter::PUBLIC_RULESETS (integer)
Публичный набор правил. Доступно только для форматирования на основе правил. Этот аттрибут доступен только на чтение. Публичный набор правил возвращается в виде строки, в которой каждый набор правил отделен точкой с запятой (;).

Символы форматирования чисел для numfmt_get_symbol() и numfmt_set_symbol().

NumberFormatter::DECIMAL_SEPARATOR_SYMBOL (integer)
Десятичный разделитель.
NumberFormatter::GROUPING_SEPARATOR_SYMBOL (integer)
Разделитель групп.
NumberFormatter::PATTERN_SEPARATOR_SYMBOL (integer)
Символ разделителя в шаблона.
NumberFormatter::PERCENT_SYMBOL (integer)
Символ процента.
NumberFormatter::ZERO_DIGIT_SYMBOL (integer)
Ноль.
NumberFormatter::DIGIT_SYMBOL (integer)
Символ представляющий цифру в шаблоне.
NumberFormatter::MINUS_SIGN_SYMBOL (integer)
Знак минус.
NumberFormatter::PLUS_SIGN_SYMBOL (integer)
Знак плюс.
NumberFormatter::CURRENCY_SYMBOL (integer)
Символ обозначения денежной единицы.
NumberFormatter::INTL_CURRENCY_SYMBOL (integer)
The international currency symbol.
NumberFormatter::MONETARY_SEPARATOR_SYMBOL (integer)
Денежный разделитель.
NumberFormatter::EXPONENTIAL_SYMBOL (integer)
Символ степени десяти.
NumberFormatter::PERMILL_SYMBOL (integer)
Символ промиле.
NumberFormatter::PAD_ESCAPE_SYMBOL (integer)
Экранирование символа заполнителя.
NumberFormatter::INFINITY_SYMBOL (integer)
Символ бесконечности.
NumberFormatter::NAN_SYMBOL (integer)
Символ NAN (Not-a-number, не-число).
NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL (integer)
Символ значащей цифры.
NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL (integer)
Разделитель групп для денежного формата.

Режимы округления для numfmt_get_attribute()
и numfmt_set_attribute() с аттрибутом
NumberFormatter::ROUNDING_MODE.

NumberFormatter::ROUND_CEILING (integer)
Округление в сторону положительной бесконечности.
NumberFormatter::ROUND_DOWN (integer)
Округление вниз.
NumberFormatter::ROUND_FLOOR (integer)
Округление в сторону отрицательной бесконечности.
NumberFormatter::ROUND_HALFDOWN (integer)
Округление в сторону "ближайшего соседа" кроме случаев, когда они на одинаковом расстоянии. В этом случае округление вниз.
NumberFormatter::ROUND_HALFEVEN (integer)
Округление в сторону "ближайшего соседа" кроме случаев, когда они на одинаковом расстоянии. В этом случае округление к четному значению.
NumberFormatter::ROUND_HALFUP (integer)
Округление в сторону "ближайшего соседа" кроме случаев, когда они на одинаковом расстоянии. В этом случае округление вверх.
NumberFormatter::ROUND_UP (integer)
Округление вверх.

Значения позиции дополнения для numfmt_get_attribute()
и numfmt_set_attribute() с аттрибутом
NumberFormatter::PADDING_POSITION.

NumberFormatter::PAD_AFTER_PREFIX (integer)
Символы дополнения вставляются после префикса.
NumberFormatter::PAD_AFTER_SUFFIX (integer)
Символы дополнения вставляются после суффикса.
NumberFormatter::PAD_BEFORE_PREFIX (integer)
Символы дополнения вставляются до префикса.
NumberFormatter::PAD_BEFORE_SUFFIX (integer)
Символы дополнения вставляются до суффикса.

Смотрите также

  • » ICU formatting documentation
  • » ICU. Форматирование чисел
  • » ICU. Форматирование десятичных дробей
  • » ICU. Форматирование на основе правил

Содержание

  • NumberFormatter::create — Create a number formatter
  • NumberFormatter::formatCurrency — Format a currency value
  • NumberFormatter::format — Format a number
  • NumberFormatter::getAttribute — Get an attribute
  • NumberFormatter::getErrorCode — Get formatter's last error code
  • NumberFormatter::getErrorMessage — Get formatter's last error message
  • NumberFormatter::getLocale — Get formatter locale
  • NumberFormatter::getPattern — Get formatter pattern
  • NumberFormatter::getSymbol — Get a symbol value
  • NumberFormatter::getTextAttribute — Get a text attribute
  • NumberFormatter::parseCurrency — Parse a currency number
  • NumberFormatter::parse — Parse a number
  • NumberFormatter::setAttribute — Set an attribute
  • NumberFormatter::setPattern — Set formatter pattern
  • NumberFormatter::setSymbol — Set a symbol value
  • NumberFormatter::setTextAttribute — Set a text attribute


Create a number formatter

  • « NumberFormatter
  • NumberFormatter::formatCurrency »
  • PHP Manual
  • NumberFormatter
  • Create a number formatter

NumberFormatter::create

numfmt_create

NumberFormatter::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::create -- numfmt_create -- NumberFormatter::__construct — Create a number formatter

Описание

Объектно-ориентированный стиль (method)

public static NumberFormatter::create ( string $locale , int $style [, string $pattern ] ) : NumberFormatter

Процедурный стиль

numfmt_create ( string $locale , int $style [, string $pattern ] ) : NumberFormatter

Объектно-ориентированный стиль (constructor):

public NumberFormatter::__construct ( string $locale , int $style [, string $pattern ] )

Creates a number formatter.

Список параметров

locale

Locale in which the number would be formatted (locale name, e.g. en_CA).

style

Style of the formatting, one of the format style constants. If NumberFormatter::PATTERN_DECIMAL or NumberFormatter::PATTERN_RULEBASED is passed then the number format is opened using the given pattern, which must conform to the syntax described in » ICU DecimalFormat documentation or » ICU RuleBasedNumberFormat documentation, respectively.

pattern

Pattern string if the chosen style requires a pattern.

Возвращаемые значения

Returns NumberFormatter object or FALSE on error.

Примеры

Пример #1 numfmt_create() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
$fmt = numfmt_create( 'it', NumberFormatter::SPELLOUT );
echo numfmt_format($fmt, 1142)."\n";
?>

Пример #2 NumberFormatter::create() example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo $fmt->format(1234567.891234567890000)."\n";
$fmt = new NumberFormatter( 'it', NumberFormatter::SPELLOUT );
echo $fmt->format(1142)."\n";
?>

Результат выполнения данного примера:

1.234.567,891
millicentoquarantadue

Смотрите также

  • numfmt_format() - Format a number
  • numfmt_parse() - Parse a number


Format a currency value

  • « NumberFormatter::create
  • NumberFormatter::format »
  • PHP Manual
  • NumberFormatter
  • Format a currency value

NumberFormatter::formatCurrency

numfmt_format_currency

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::formatCurrency -- numfmt_format_currency — Format a currency value

Описание

Объектно-ориентированный стиль

public NumberFormatter::formatCurrency ( float $value , string $currency ) : string

Процедурный стиль

numfmt_format_currency ( NumberFormatter $fmt , float $value , string $currency ) : string

Format the currency value according to the formatter rules.

Список параметров

fmt

NumberFormatter object.

value

The numeric currency value.

currency

The 3-letter ISO 4217 currency code indicating the currency to use.

Возвращаемые значения

String representing the formatted currency value, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 numfmt_format_currency() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
$fmt = new NumberFormatter( 'ru_RU', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
?>

Результат выполнения данного примера:

1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89р.

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_format() - Format a number
  • numfmt_parse_currency() - Parse a currency number


Format a number

  • « NumberFormatter::formatCurrency
  • NumberFormatter::getAttribute »
  • PHP Manual
  • NumberFormatter
  • Format a number

NumberFormatter::format

numfmt_format

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::format -- numfmt_format — Format a number

Описание

Объектно-ориентированный стиль

public NumberFormatter::format ( number $value [, int $type ] ) : string

Процедурный стиль

numfmt_format ( NumberFormatter $fmt , number $value [, int $type ] ) : string

Format a numeric value according to the formatter rules.

Список параметров

fmt

NumberFormatter object.

value

The value to format. Can be integer or float, other values will be converted to a numeric value.

type

The formatting type to use.

Возвращаемые значения

Returns the string containing formatted value, or FALSE on error.

Примеры

Пример #1 numfmt_format() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
if(intl_is_failure(numfmt_format($fmt))) {
    report_error("Formatter error");
}
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(intl_is_failure($fmt->getErrorCode())) {
    report_error("Formatter error");
}
?>

Результат выполнения данного примера:

1.234.567,891

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_format_currency() - Format a currency value
  • numfmt_parse() - Parse a number


Get an attribute

  • « NumberFormatter::format
  • NumberFormatter::getErrorCode »
  • PHP Manual
  • NumberFormatter
  • Get an attribute

NumberFormatter::getAttribute

numfmt_get_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getAttribute -- numfmt_get_attribute — Get an attribute

Описание

Объектно-ориентированный стиль

public NumberFormatter::getAttribute ( int $attr ) : int

Процедурный стиль

numfmt_get_attribute ( NumberFormatter $fmt , int $attr ) : int

Get a numeric attribute associated with the formatter. An example of a numeric attribute is the number of integer digits the formatter will produce.

Список параметров

fmt

NumberFormatter object.

attr

Attribute specifier - one of the numeric attribute constants.

Возвращаемые значения

Return attribute value on success, or FALSE on error.

Примеры

Пример #1 numfmt_get_attribute() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Digits: 3
1.234.567,891
Digits: 2
1.234.567,89

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_get_text_attribute() - Get a text attribute
  • numfmt_set_attribute() - Set an attribute


Get formatter's last error code

  • « NumberFormatter::getAttribute
  • NumberFormatter::getErrorMessage »
  • PHP Manual
  • NumberFormatter
  • Get formatter's last error code

NumberFormatter::getErrorCode

numfmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getErrorCode -- numfmt_get_error_code — Get formatter's last error code

Описание

Объектно-ориентированный стиль

public NumberFormatter::getErrorCode ( void ) : int

Процедурный стиль

numfmt_get_error_code ( NumberFormatter $fmt ) : int

Get error code from the last function performed by the formatter.

Список параметров

fmt

NumberFormatter object.

Возвращаемые значения

Returns error code from last formatter call.

Примеры

Пример #1 numfmt_get_error_code() example

<?php
$fmt  = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
if(intl_is_failure(numfmt_get_error_code($fmt))) {
    report_error("Formatter error");
}
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(intl_is_failure($fmt->getErrorCode())) {
    report_error("Formatter error");
}
?>

Смотрите также

  • numfmt_get_error_message() - Get formatter's last error message
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Get formatter's last error message

  • « NumberFormatter::getErrorCode
  • NumberFormatter::getLocale »
  • PHP Manual
  • NumberFormatter
  • Get formatter's last error message

NumberFormatter::getErrorMessage

numfmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getErrorMessage -- numfmt_get_error_message — Get formatter's last error message

Описание

Объектно-ориентированный стиль

public NumberFormatter::getErrorMessage ( void ) : string

Процедурный стиль

numfmt_get_error_message ( NumberFormatter $fmt ) : string

Get error message from the last function performed by the formatter.

Список параметров

fmt

NumberFormatter object.

Возвращаемые значения

Returns error message from last formatter call.

Примеры

Пример #1 numfmt_get_error_message() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
var_dump(numfmt_get_error_message($fmt));
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
var_dump(numfmt_get_error_message($fmt));
?>

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Get formatter locale

  • « NumberFormatter::getErrorMessage
  • NumberFormatter::getPattern »
  • PHP Manual
  • NumberFormatter
  • Get formatter locale

NumberFormatter::getLocale

numfmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getLocale -- numfmt_get_locale — Get formatter locale

Описание

Объектно-ориентированный стиль

public NumberFormatter::getLocale ([ int $type ] ) : string

Процедурный стиль

numfmt_get_locale ( NumberFormatter $fmt [, int $type ] ) : string

Get formatter locale name.

Список параметров

fmt

NumberFormatter object.

type

You can choose between valid and actual locale ( Locale::VALID_LOCALE, Locale::ACTUAL_LOCALE, respectively). The default is the actual locale.

Возвращаемые значения

The locale name used to create the formatter.

Примеры

Пример #1 numfmt_get_locale() example

<?php
$req     = 'fr_FR_PARIS';
$fmt     = numfmt_create( $req,  NumberFormatter::DECIMAL);
$res_val = numfmt_get_locale( $fmt, Locale::VALID_LOCALE );
$res_act = numfmt_get_locale( $fmt, Locale::ACTUAL_LOCALE );
printf( "Requested locale name: %s\nValid locale name: %s\nActual locale name: %s\n",
         $req, $res_val, $res_act );
?>

Результат выполнения данного примера:

Requested locale name: fr_FR_PARIS
Valid locale name: fr_FR
Actual locale name: fr

Смотрите также

  • numfmt_create() - Create a number formatter
  • numfmt_get_error_code() - Get formatter's last error code


Get formatter pattern

  • « NumberFormatter::getLocale
  • NumberFormatter::getSymbol »
  • PHP Manual
  • NumberFormatter
  • Get formatter pattern

NumberFormatter::getPattern

numfmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getPattern -- numfmt_get_pattern — Get formatter pattern

Описание

Объектно-ориентированный стиль

public NumberFormatter::getPattern ( void ) : string

Процедурный стиль

numfmt_get_pattern ( NumberFormatter $fmt ) : string

Extract pattern used by the formatter.

Список параметров

fmt

NumberFormatter object.

Возвращаемые значения

Pattern string that is used by the formatter, or FALSE if an error happens.

Примеры

Пример #1 numfmt_get_pattern() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_pattern($fmt, "#0.# kg");
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Pattern: #,##0.###
1.234.567,891
Pattern: #0.# kg
1234567,9 kg

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_set_pattern() - Set formatter pattern
  • numfmt_create() - Create a number formatter


Get a symbol value

  • « NumberFormatter::getPattern
  • NumberFormatter::getTextAttribute »
  • PHP Manual
  • NumberFormatter
  • Get a symbol value

NumberFormatter::getSymbol

numfmt_get_symbol

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getSymbol -- numfmt_get_symbol — Get a symbol value

Описание

Объектно-ориентированный стиль

public NumberFormatter::getSymbol ( int $attr ) : string

Процедурный стиль

numfmt_get_symbol ( NumberFormatter $fmt , int $attr ) : string

Get a symbol associated with the formatter. The formatter uses symbols to represent the special locale-dependent characters in a number, for example the percent sign. This API is not supported for rule-based formatters.

Список параметров

fmt

NumberFormatter object.

attr

Symbol specifier, one of the format symbol constants.

Возвращаемые значения

The symbol string or FALSE on error.

Примеры

Пример #1 numfmt_get_symbol() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Sep: .
1.234.567,891
Sep: *
1*234*567,891

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_set_symbol() - Set a symbol value


Get a text attribute

  • « NumberFormatter::getSymbol
  • NumberFormatter::parseCurrency »
  • PHP Manual
  • NumberFormatter
  • Get a text attribute

NumberFormatter::getTextAttribute

numfmt_get_text_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getTextAttribute -- numfmt_get_text_attribute — Get a text attribute

Описание

Объектно-ориентированный стиль

public NumberFormatter::getTextAttribute ( int $attr ) : string

Процедурный стиль

numfmt_get_text_attribute ( NumberFormatter $fmt , int $attr ) : string

Get a text attribute associated with the formatter. An example of a text attribute is the suffix for positive numbers. If the formatter does not understand the attribute, U_UNSUPPORTED_ERROR error is produced. Rule-based formatters only understand NumberFormatter::DEFAULT_RULESET and NumberFormatter::PUBLIC_RULESETS.

Список параметров

fmt

NumberFormatter object.

attr

Attribute specifier - one of the text attribute constants.

Возвращаемые значения

Return attribute value on success, or FALSE on error.

Примеры

Пример #1 numfmt_get_text_attribute() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
numfmt_set_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
$fmt->setTextAttribute(NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Prefix: -
-1.234.567,891
Prefix: MINUS
MINUS1.234.567,891

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_get_attribute() - Get an attribute
  • numfmt_set_text_attribute() - Set a text attribute


Parse a currency number

  • « NumberFormatter::getTextAttribute
  • NumberFormatter::parse »
  • PHP Manual
  • NumberFormatter
  • Parse a currency number

NumberFormatter::parseCurrency

numfmt_parse_currency

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::parseCurrency -- numfmt_parse_currency — Parse a currency number

Описание

Объектно-ориентированный стиль

public NumberFormatter::parseCurrency ( string $value , string &$currency [, int &$position ] ) : float

Процедурный стиль

numfmt_parse_currency ( NumberFormatter $fmt , string $value , string &$currency [, int &$position ] ) : float

Parse a string into a double and a currency using the current formatter.

Список параметров

fmt

NumberFormatter object.

currency

Parameter to receive the currency name (3-letter ISO 4217 currency code).

position

Offset in the string at which to begin parsing. On return, this value will hold the offset at which parsing ended.

Возвращаемые значения

The parsed numeric value or FALSE on error.

Примеры

Пример #1 numfmt_parse_currency() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
$num = "1.234.567,89\xc2\xa0$";
echo "We have ".numfmt_parse_currency($fmt, $num, $curr)." in $curr\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
$num = "1.234.567,89\xc2\xa0$";
echo "We have ".$fmt->parseCurrency($num, $curr)." in $curr\n";
?>

Результат выполнения данного примера:

We have 1234567.89 in USD

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_parse() - Parse a number
  • numfmt_format_currency() - Format a currency value


Parse a number

  • « NumberFormatter::parseCurrency
  • NumberFormatter::setAttribute »
  • PHP Manual
  • NumberFormatter
  • Parse a number

NumberFormatter::parse

numfmt_parse

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::parse -- numfmt_parse — Parse a number

Описание

Объектно-ориентированный стиль

public NumberFormatter::parse ( string $value [, int $type [, int &$position ]] ) : mixed

Процедурный стиль

numfmt_parse ( NumberFormatter $fmt , string $value [, int $type [, int &$position ]] ) : mixed

Parse a string into a number using the current formatter rules.

Список параметров

fmt

NumberFormatter object.

type

The formatting type to use. By default, NumberFormatter::TYPE_DOUBLE is used.

position

Offset in the string at which to begin parsing. On return, this value will hold the offset at which parsing ended.

Возвращаемые значения

The value of the parsed number or FALSE on error.

Примеры

Пример #1 numfmt_parse() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo numfmt_parse($fmt, $num)."\n";
echo numfmt_parse($fmt, $num, NumberFormatter::TYPE_INT32)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo $fmt->parse($num)."\n";
echo $fmt->parse($num, NumberFormatter::TYPE_INT32)."\n";
?>

Результат выполнения данного примера:

1234567.891
1234567

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_format() - Format a number
  • numfmt_parse_currency() - Parse a currency number


Set an attribute

  • « NumberFormatter::parse
  • NumberFormatter::setPattern »
  • PHP Manual
  • NumberFormatter
  • Set an attribute

NumberFormatter::setAttribute

numfmt_set_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::setAttribute -- numfmt_set_attribute — Set an attribute

Описание

Объектно-ориентированный стиль

public NumberFormatter::setAttribute ( int $attr , int $value ) : bool

Процедурный стиль

numfmt_set_attribute ( NumberFormatter $fmt , int $attr , int $value ) : bool

Set a numeric attribute associated with the formatter. An example of a numeric attribute is the number of integer digits the formatter will produce.

Список параметров

fmt

NumberFormatter object.

attr

Attribute specifier - one of the numeric attribute constants.

value

The attribute value.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 numfmt_set_attribute() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Digits: 3
1.234.567,891
Digits: 2
1.234.567,89

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_get_attribute() - Get an attribute
  • numfmt_set_text_attribute() - Set a text attribute


Set formatter pattern

  • « NumberFormatter::setAttribute
  • NumberFormatter::setSymbol »
  • PHP Manual
  • NumberFormatter
  • Set formatter pattern

NumberFormatter::setPattern

numfmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::setPattern -- numfmt_set_pattern — Set formatter pattern

Описание

Объектно-ориентированный стиль

public NumberFormatter::setPattern ( string $pattern ) : bool

Процедурный стиль

numfmt_set_pattern ( NumberFormatter $fmt , string $pattern ) : bool

Set the pattern used by the formatter. Can not be used on a rule-based formatter.

Список параметров

fmt

NumberFormatter object.

pattern

Pattern in syntax described in » ICU DecimalFormat documentation.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 numfmt_set_pattern() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_pattern($fmt, "#0.# kg");
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Pattern: #,##0.###
1.234.567,891
Pattern: #0.# kg
1234567,9 kg

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_create() - Create a number formatter
  • numfmt_get_pattern() - Get formatter pattern


Set a symbol value

  • « NumberFormatter::setPattern
  • NumberFormatter::setTextAttribute »
  • PHP Manual
  • NumberFormatter
  • Set a symbol value

NumberFormatter::setSymbol

numfmt_set_symbol

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::setSymbol -- numfmt_set_symbol — Set a symbol value

Описание

Объектно-ориентированный стиль

public NumberFormatter::setSymbol ( int $attr , string $value ) : bool

Процедурный стиль

numfmt_set_symbol ( NumberFormatter $fmt , int $attr , string $value ) : bool

Set a symbol associated with the formatter. The formatter uses symbols to represent the special locale-dependent characters in a number, for example the percent sign. This API is not supported for rule-based formatters.

Список параметров

fmt

NumberFormatter object.

attr

Symbol specifier, one of the format symbol constants.

value

Text for the symbol.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 numfmt_set_symbol() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Sep: .
1.234.567,891
Sep: *
1*234*567,891

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_get_symbol() - Get a symbol value


Set a text attribute

  • « NumberFormatter::setSymbol
  • Locale »
  • PHP Manual
  • NumberFormatter
  • Set a text attribute

NumberFormatter::setTextAttribute

numfmt_set_text_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::setTextAttribute -- numfmt_set_text_attribute — Set a text attribute

Описание

Объектно-ориентированный стиль

public NumberFormatter::setTextAttribute ( int $attr , string $value ) : bool

Процедурный стиль

numfmt_set_text_attribute ( NumberFormatter $fmt , int $attr , string $value ) : bool

Set a text attribute associated with the formatter. An example of a text attribute is the suffix for positive numbers. If the formatter does not understand the attribute, U_UNSUPPORTED_ERROR error is produced. Rule-based formatters only understand NumberFormatter::DEFAULT_RULESET and NumberFormatter::PUBLIC_RULESETS.

Список параметров

fmt

NumberFormatter object.

attr

Attribute specifier - one of the text attribute constants.

value

Text for the attribute value.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 numfmt_set_text_attribute() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
numfmt_set_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
$fmt->setTextAttribute(NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Prefix: -
-1.234.567,891
Prefix: MINUS
MINUS1.234.567,891

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_get_text_attribute() - Get a text attribute
  • numfmt_set_attribute() - Set an attribute


Класс Locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Введение

"Locale" - это идентификатор, используемый для распознавания языка, культуры или региональные особенности поведения API. Локали PHP организованы и обозначены так же как и локали CLDR, используемые ICU и многими производителями систем Unix, Linux и Mac, Java и т.д. Локали обозначаются согласно языковым меткам стандарта RFC 4646 (который использует тире, а не подчеркивание) в дополнение к традиционным обозначением с использованием символа подчеркивания. Функции данного класса понимают оба написания, если явно не указано иное.

Примеры идентификаторов:

  • en-US (Английский, США)
  • zh-Hant-TW (Китайский, Традиционное начертание, Тайвань)
  • fr-CA, fr-FR (Канадский Французский и Французский соответственно)

Класс Locale (и соответствующие процедурные функции) используется для взаимодействия с идентификаторами локалей, для проверки правильного составления идентификатора, его корректности и т.д. Модули используются CLDR в UAX #35 (и наследуется ICU), являются корректными и используйются везде они были бы в ICU.

Данный класс нельзя инстанциировать как объект. Все методы/функции объявлены статическими.

NULL или пустая строка будут считаться за "базовую" локаль. "Базовая" локаль - это "en_US_POSIX" в CLDR. Языковые метки (и идентификаторы локали) регистронезависимы. В данном классе присутствует метод, преобразующий их к каноничному виду.

Обзор классов

Locale {
/* Методы */
public static acceptFromHttp ( string $header ) : string
public static canonicalize ( string $locale ) : string
public static composeLocale ( array $subtags ) : string
public static filterMatches ( string $langtag , string $locale [, bool $canonicalize = FALSE ] ) : bool
public static getAllVariants ( string $locale ) : array
public static getDefault ( void ) : string
public static getDisplayLanguage ( string $locale [, string $in_locale ] ) : string
public static getDisplayName ( string $locale [, string $in_locale ] ) : string
public static getDisplayRegion ( string $locale [, string $in_locale ] ) : string
public static getDisplayScript ( string $locale [, string $in_locale ] ) : string
public static getDisplayVariant ( string $locale [, string $in_locale ] ) : string
public static getKeywords ( string $locale ) : array
public static getPrimaryLanguage ( string $locale ) : string
public static getRegion ( string $locale ) : string
public static getScript ( string $locale ) : string
public static lookup ( array $langtag , string $locale [, bool $canonicalize = FALSE [, string $default ]] ) : string
public static parseLocale ( string $locale ) : array
public static setDefault ( string $locale ) : bool
}

Предопределенные константы

Locale::DEFAULT_LOCALE (null)
Используется в качестве параметра, задающего локаль в функциях где это необходимо, таких как NumberFormatter. Эта константа вынуждает использовать локаль по умолчанию.

Эти константы описывают выбор локали для метода getLocale различных классов.

Locale::ACTUAL_LOCALE (string)
Описывает текущую локаль.
Locale::VALID_LOCALE (string)
Это самая специфичная локаль, поддерживаемая ICU.

Эти константы описывают как разбираются или из чего состоят локали. Они используются как ключи массива аргументов для locale_compose() и как возвращаемые значения locale_parse() в виде ключей возвращаемого ассоциативного массива.

Locale::LANG_TAG (string)
Метка для языка
Locale::EXTLANG_TAG (string)
Расширенная метка языка
Locale::SCRIPT_TAG (string)
Метка начертания
Locale::REGION_TAG (string)
Метка региона
Locale::VARIANT_TAG (string)
Метка варианта
Locale::GRANDFATHERED_LANG_TAG (string)
Метка языка в старом синтаксисе (grandfathered)
Locale::PRIVATE_TAG (string)
Приватная метка

Смотрите также

  • » RFC 4646 - метки для идентификаторов языков
  • » RFC 4647 - проверка языковых меток
  • » Проект Unicode CLDR:Стандартный репозиторий данных локалей
  • » Регистр языковых меток IANA
  • » Руководство пользователя ICU - Локаль
  • » ICU api локали

Содержание

  • Locale::acceptFromHttp — Попытаться определить наилучшую локаль основываясь на заголовке HTTP "Accept-Language"
  • Locale::canonicalize — Канонизировать строку локали
  • Locale::composeLocale — Возвращает корректно отсортированные и разделенные идентификаторы локали
  • Locale::filterMatches — Проверить, соответствует ли тег фильтра языка локали
  • Locale::getAllVariants — Получение вариантов из переданной локали
  • Locale::getDefault — Получение значения локали INTL по умолчанию из опции 'default_locale'
  • Locale::getDisplayLanguage — Возвращает соответствующим образом локализованное имя языка для заданной локали
  • Locale::getDisplayName — Возвращает соответствующим образом локализованное имя локали
  • Locale::getDisplayRegion — Возвращает соответствующим образом локализованное название региона для заданной локали
  • Locale::getDisplayScript — Возвращает соответствующим образом локализованное название алфавита для заданной локали
  • Locale::getDisplayVariant — Возвращает соответствующим образом локализованное название варианта для заданной локали
  • Locale::getKeywords — Получить ключевые слова для локали
  • Locale::getPrimaryLanguage — Получить первичный язык для локали
  • Locale::getRegion — Получить регион для локали
  • Locale::getScript — Получить алфавит для локали
  • Locale::lookup — Поиск языковых меток наиболее подходящих заданной локали
  • Locale::parseLocale — Получить ассоциативный массив всех подтегов локали
  • Locale::setDefault — Установить локаль по умолчанию во время исполнения


Попытаться определить наилучшую локаль основываясь на заголовке HTTP "Accept-Language"

  • « Locale
  • Locale::canonicalize »
  • PHP Manual
  • Locale
  • Попытаться определить наилучшую локаль основываясь на заголовке HTTP "Accept-Language"

Locale::acceptFromHttp

locale_accept_from_http

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::acceptFromHttp -- locale_accept_from_http — Попытаться определить наилучшую локаль основываясь на заголовке HTTP "Accept-Language"

Описание

Объектно-ориентированный стиль

public static Locale::acceptFromHttp ( string $header ) : string

Процедурный стиль

locale_accept_from_http ( string $header ) : string

Пытается определить локаль, удовлетворяющую списку языков, запрошенному в HTTP-заголовке "Accept-Language".

Список параметров

header

Строка, содержащая заголовок "Accept-Language" в соответствии с форматом RFC 2616.

Возвращаемые значения

Соответствующий идентификатор локали.

Примеры

Пример #1 Пример использования locale_accept_from_http()

<?php
$locale = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo $locale;
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$locale = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo $locale;
?>

Результат выполнения данного примера:

en_US

Смотрите также

  • locale_lookup() - Поиск языковых меток наиболее подходящих заданной локали


Канонизировать строку локали

  • « Locale::acceptFromHttp
  • Locale::composeLocale »
  • PHP Manual
  • Locale
  • Канонизировать строку локали

Locale::canonicalize

locale_canonicalize

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::canonicalize -- locale_canonicalize — Канонизировать строку локали

Описание

public static Locale::canonicalize ( string $locale ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

locale

Возвращаемые значения


Возвращает корректно отсортированные и разделенные идентификаторы локали

  • « Locale::canonicalize
  • Locale::filterMatches »
  • PHP Manual
  • Locale
  • Возвращает корректно отсортированные и разделенные идентификаторы локали

Locale::composeLocale

locale_compose

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::composeLocale -- locale_compose — Возвращает корректно отсортированные и разделенные идентификаторы локали

Описание

Объектно-ориентированный стиль

public static Locale::composeLocale ( array $subtags ) : string

Процедурный стиль

locale_compose ( array $subtags ) : string

Возвращает строку, состоящую из корректно отсортированных и разделенных идентификаторов локали, собранную из массива, ключи которого обозначают подтеги идентификатора, а значения соответствующие значения этих подтегов.

Список параметров

subtags

Массив, содержащий список пар ключ-значение, где ключи являются именами подтегов идентификатора локали, а значения, соответственно, значениями этих подтегов.

Замечание:

Подтегов 'variant' и 'private' может быть не более 15, подтегов 'extlang' не более 3 и т.д. Варианты допустимы с суффиксами от 0 до 14. Ключи для этого подтега должны называться так: variant0, variant1, ...,variant14. В возвращаемом идентификаторе локали, подтеги будут отсортированы по этому суффиксу.

Множественные подтеги 'variant', 'private' и 'extlang' можно задать в виде массива под соответствующим ключем (например 'variant') или как несколько ключей с числовыми суффиксами ('variant0', 'variant1', и т.д.).

Возвращаемые значения

Соответствующий идентификатор локали.

Примеры

Пример #1 Пример использования locale_compose()

<?php
$arr = array(
    'language'=>'en' ,
    'script'  =>'Hans' ,
    'region'  =>'CN',
    'variant2'=>'rozaj' ,
    'variant1'=>'nedis' ,
    'private1'=>'prv1' ,
    'private2'=>'prv2'
);
echo locale_compose( $arr );
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$arr = array(
    'language'=>'en' ,
    'script'  =>'Hans' ,
    'region'  =>'CN',
    'variant2'=>'rozaj' ,
    'variant1'=>'nedis' ,
    'private1'=>'prv1' ,
    'private2'=>'prv2'
);
echo Locale::composeLocale( $arr );
?>

Результат выполнения данного примера:

Locale: en_Hans_CN_nedis_rozaj_x_prv1_prv2

Смотрите также

  • locale_parse() - Получить ассоциативный массив всех подтегов локали


Проверить, соответствует ли тег фильтра языка локали

  • « Locale::composeLocale
  • Locale::getAllVariants »
  • PHP Manual
  • Locale
  • Проверить, соответствует ли тег фильтра языка локали

Locale::filterMatches

locale_filter_matches

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::filterMatches -- locale_filter_matches — Проверить, соответствует ли тег фильтра языка локали

Описание

Объектно-ориентированный стиль

public static Locale::filterMatches ( string $langtag , string $locale [, bool $canonicalize = FALSE ] ) : bool

Процедурный стиль

locale_filter_matches ( string $langtag , string $locale [, bool $canonicalize = FALSE ] ) : bool

Проверить, соответствует ли фильтр $langtag локали $locale руководствуясь базовыми фильтрующими алгоритмами RFC 4647

Список параметров

langtag

Языковой тег

locale

Локаль

canonicalize

Если TRUE, аргумент будет преобразован к каноничной форме перед проверкой.

Возвращаемые значения

TRUE если $locale подходит для $langtag, или FALSE, если нет.

Примеры

Пример #1 Пример использования locale_filter_matches()

<?php
echo (locale_filter_matches('de-DEVA','de-DE', false)) ? "Подходит" : "Не подходит";
echo '; ';
echo (locale_filter_matches('de-DE_1996','de-DE', false)) ? "Подходит" : "Не подходит";
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
echo (Locale::filterMatches('de-DEVA','de-DE', false)) ? "Подходит" : "Не подходит";
echo '; ';
echo (Locale::filterMatches('de-DE-1996','de-DE', false)) ? "Подходит" : "Не подходит";
?>

Результат выполнения данного примера:

Не подходит; Подходит

Смотрите также

  • locale_lookup() - Поиск языковых меток наиболее подходящих заданной локали


Получение вариантов из переданной локали

  • « Locale::filterMatches
  • Locale::getDefault »
  • PHP Manual
  • Locale
  • Получение вариантов из переданной локали

Locale::getAllVariants

locale_get_all_variants

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getAllVariants -- locale_get_all_variants — Получение вариантов из переданной локали

Описание

Объектно-ориентированный стиль

public static Locale::getAllVariants ( string $locale ) : array

Процедурный стиль

locale_get_all_variants ( string $locale ) : array

Получение вариантов из переданной локали

Список параметров

locale

Локаль из которой будут извлечены вараинты

Возвращаемые значения

Массив, содержащий список вариантов заданной локали, или NULL, если таковых нет

Примеры

Пример #1 Пример использования locale_get_all_variants()

<?php
$arr = locale_get_all_variants('sl_IT_NEDIS_ROJAZ_1901');
var_export( $arr );
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
 $arr = Locale::getAllVariants('sl_IT_NEDIS_ROJAZ_1901');
 var_export( $arr );
?>

Результат выполнения данного примера:

array (
    0 => 'NEDIS',
    1 => 'ROJAZ',
    2 => '1901',
)

Смотрите также

  • locale_get_primary_language() - Получить первичный язык для локали
  • locale_get_script() - Получить алфавит для локали
  • locale_get_region() - Получить регион для локали


Получение значения локали INTL по умолчанию из опции 'default_locale'

  • « Locale::getAllVariants
  • Locale::getDisplayLanguage »
  • PHP Manual
  • Locale
  • Получение значения локали INTL по умолчанию из опции 'default_locale'

Locale::getDefault

locale_get_default

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDefault -- locale_get_default — Получение значения локали INTL по умолчанию из опции 'default_locale'

Описание

Объектно-ориентированный стиль

public static Locale::getDefault ( void ) : string

Процедурный стиль

locale_get_default ( void ) : string

Получение значения локали по умолчанию. при инициализации PHP, это значение устанавливается в значение 'intl.default_locale' из php.ini, если оно там есть, или в значение функции ICU uloc_getDefault().

Список параметров

Возвращаемые значения

Текущая локаль времени исполнения

Примеры

Пример #1 Пример использования locale_get_default()

<?php
ini_set('intl.default_locale', 'de-DE');
echo locale_get_default();
echo '; ';
locale_set_default('fr');
echo locale_get_default();
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
ini_set('intl.default_locale', 'de-DE');
echo Locale::getDefault();
echo '; ';
Locale::setDefault('fr');
echo Locale::getDefault();
?>

Результат выполнения данного примера:

de-DE; fr

Смотрите также

  • locale_set_default() - Установить локаль по умолчанию во время исполнения


Возвращает соответствующим образом локализованное имя языка для заданной локали

  • « Locale::getDefault
  • Locale::getDisplayName »
  • PHP Manual
  • Locale
  • Возвращает соответствующим образом локализованное имя языка для заданной локали

Locale::getDisplayLanguage

locale_get_display_language

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayLanguage -- locale_get_display_language — Возвращает соответствующим образом локализованное имя языка для заданной локали

Описание

Объектно-ориентированный стиль

public static Locale::getDisplayLanguage ( string $locale [, string $in_locale ] ) : string

Процедурный стиль

locale_get_display_language ( string $locale [, string $in_locale ] ) : string

Возвращает соответствующим образом локализованное имя языка для заданной локали. Если NULL, то будет использована локаль по умолчанию.

Список параметров

locale

Локаль, для которой будет возвращено название языка

in_locale

Необязательный параметр, задающий локаль, в которой надо будет отобразить название

Возвращаемые значения

Название языка для локали $locale в формате, соответствующем локали $in_locale.

Примеры

Пример #1 Пример использования locale_get_display_language()

<?php
echo locale_get_display_language('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_language('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_language('sl-Latn-IT-nedis', 'de');
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
echo Locale::getDisplayLanguage('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayLanguage('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayLanguage('sl-Latn-IT-nedis', 'de');
?>

Результат выполнения данного примера:

Slovenian;
slov\xc3\xa8ne;
Slowenisch

Смотрите также

  • locale_get_display_name() - Возвращает соответствующим образом локализованное имя локали
  • locale_get_display_script() - Возвращает соответствующим образом локализованное название алфавита для заданной локали
  • locale_get_display_region() - Возвращает соответствующим образом локализованное название региона для заданной локали
  • locale_get_display_variant() - Возвращает соответствующим образом локализованное название варианта для заданной локали


Возвращает соответствующим образом локализованное имя локали

  • « Locale::getDisplayLanguage
  • Locale::getDisplayRegion »
  • PHP Manual
  • Locale
  • Возвращает соответствующим образом локализованное имя локали

Locale::getDisplayName

locale_get_display_name

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayName -- locale_get_display_name — Возвращает соответствующим образом локализованное имя локали

Описание

Объектно-ориентированный стиль

public static Locale::getDisplayName ( string $locale [, string $in_locale ] ) : string

Процедурный стиль

locale_get_display_name ( string $locale [, string $in_locale ] ) : string

Возвращает соответствующим образом локализованное имя локали. Если $locale равно NULL, то будет использована локаль по умолчанию.

Список параметров

locale

Локаль.

in_locale

Необязательная локаль для форматирования

Возвращаемые значения

Имя локали в формате локали $in_locale.

Примеры

Пример #1 Пример использования locale_get_display_name()

<?php
echo locale_get_display_name('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_name('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_name('sl-Latn-IT-nedis', 'de');
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
echo Locale::getDisplayName('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayName('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayName('sl-Latn-IT-nedis', 'de');
?>

Результат выполнения данного примера:

Slovenian (Latin, Italy, Natisone dialect);
slov\xc3\xa8ne (latin, Italie, dialecte de Natisone;
Slowenisch (Lateinisch, Italien, NEDIS)

Смотрите также

  • locale_get_display_language() - Возвращает соответствующим образом локализованное имя языка для заданной локали
  • locale_get_display_script() - Возвращает соответствующим образом локализованное название алфавита для заданной локали
  • locale_get_display_region() - Возвращает соответствующим образом локализованное название региона для заданной локали
  • locale_get_display_variant() - Возвращает соответствующим образом локализованное название варианта для заданной локали


Возвращает соответствующим образом локализованное название региона для заданной локали

  • « Locale::getDisplayName
  • Locale::getDisplayScript »
  • PHP Manual
  • Locale
  • Возвращает соответствующим образом локализованное название региона для заданной локали

Locale::getDisplayRegion

locale_get_display_region

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayRegion -- locale_get_display_region — Возвращает соответствующим образом локализованное название региона для заданной локали

Описание

Объектно-ориентированный стиль

public static Locale::getDisplayRegion ( string $locale [, string $in_locale ] ) : string

Процедурный стиль

locale_get_display_region ( string $locale [, string $in_locale ] ) : string

Возвращает соответствующим образом локализованное название региона для заданной локали. Если NULL, то будет использована локаль по умолчанию.

Список параметров

locale

Локаль.

in_locale

Необязательная локаль для форматирования

Возвращаемые значения

Название региона для $locale в формате локали $in_locale.

Примеры

Пример #1 Пример использования locale_get_display_region()

<?php
echo locale_get_display_region('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_region('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_region('sl-Latn-IT-nedis', 'de');
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'de');
?>

Результат выполнения данного примера:

Italy;
Italie;
Italien

Смотрите также

  • locale_get_display_name() - Возвращает соответствующим образом локализованное имя локали
  • locale_get_display_language() - Возвращает соответствующим образом локализованное имя языка для заданной локали
  • locale_get_display_script() - Возвращает соответствующим образом локализованное название алфавита для заданной локали
  • locale_get_display_variant() - Возвращает соответствующим образом локализованное название варианта для заданной локали


Возвращает соответствующим образом локализованное название алфавита для заданной локали

  • « Locale::getDisplayRegion
  • Locale::getDisplayVariant »
  • PHP Manual
  • Locale
  • Возвращает соответствующим образом локализованное название алфавита для заданной локали

Locale::getDisplayScript

locale_get_display_script

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayScript -- locale_get_display_script — Возвращает соответствующим образом локализованное название алфавита для заданной локали

Описание

Объектно-ориентированный стиль

public static Locale::getDisplayScript ( string $locale [, string $in_locale ] ) : string

Процедурный стиль

locale_get_display_script ( string $locale [, string $in_locale ] ) : string

Возвращает соответствующим образом локализованное название алфавита для заданной локали. Если NULL, то будет использована локаль по умолчанию.

Список параметров

locale

Локаль.

in_locale

Необязательная локаль для форматирования

Возвращаемые значения

Название алфавита для $locale в формате локали $in_locale.

Примеры

Пример #1 Пример использования locale_get_display_script()

<?php
echo locale_get_display_script('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_script('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_script('sl-Latn-IT-nedis', 'de');
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
echo Locale::getDisplayScript('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayScript('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayScript('sl-Latn-IT-nedis', 'de');
?>

Результат выполнения данного примера:

Latin;
latin;
Lateinisch

Смотрите также

  • locale_get_display_name() - Возвращает соответствующим образом локализованное имя локали
  • locale_get_display_language() - Возвращает соответствующим образом локализованное имя языка для заданной локали
  • locale_get_display_region() - Возвращает соответствующим образом локализованное название региона для заданной локали
  • locale_get_display_variant() - Возвращает соответствующим образом локализованное название варианта для заданной локали


Возвращает соответствующим образом локализованное название варианта для заданной локали

  • « Locale::getDisplayScript
  • Locale::getKeywords »
  • PHP Manual
  • Locale
  • Возвращает соответствующим образом локализованное название варианта для заданной локали

Locale::getDisplayVariant

locale_get_display_variant

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayVariant -- locale_get_display_variant — Возвращает соответствующим образом локализованное название варианта для заданной локали

Описание

Объектно-ориентированный стиль

public static Locale::getDisplayVariant ( string $locale [, string $in_locale ] ) : string

Процедурный стиль

locale_get_display_variant ( string $locale [, string $in_locale ] ) : string

Возвращает соответствующим образом локализованное название варианта для заданной локали. Если NULL, то будет использована локаль по умолчанию.

Список параметров

locale

Локаль.

in_locale

Необязательная локаль для форматирования

Возвращаемые значения

Название варианта для $locale в формате локали $in_locale.

Примеры

Пример #1 Пример использования locale_get_display_variant()

<?php
echo locale_get_display_variant('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_variant('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_variant('sl-Latn-IT-nedis', 'de');
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
echo Locale::getDisplayVariant('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayVariant('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayVariant('sl-Latn-IT-nedis', 'de');
?>

Результат выполнения данного примера:

Natisone dialect;
dialecte de Natisone;
NEDIS

Смотрите также

  • locale_get_display_name() - Возвращает соответствующим образом локализованное имя локали
  • locale_get_display_language() - Возвращает соответствующим образом локализованное имя языка для заданной локали
  • locale_get_display_script() - Возвращает соответствующим образом локализованное название алфавита для заданной локали
  • locale_get_display_region() - Возвращает соответствующим образом локализованное название региона для заданной локали


Получить ключевые слова для локали

  • « Locale::getDisplayVariant
  • Locale::getPrimaryLanguage »
  • PHP Manual
  • Locale
  • Получить ключевые слова для локали

Locale::getKeywords

locale_get_keywords

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getKeywords -- locale_get_keywords — Получить ключевые слова для локали

Описание

Объектно-ориентированный стиль

public static Locale::getKeywords ( string $locale ) : array

Процедурный стиль

locale_get_keywords ( string $locale ) : array

Получает ключевые слова для локали.

Список параметров

locale

Локаль для извлечения ключевых слов

Возвращаемые значения

Ассоциативный массив (array) с парами ключ-значение для заданной локали

Примеры

Пример #1 Пример использования locale_get_keywords()

<?php
$keywords_arr = locale_get_keywords( 'de_DE@currency=EUR;collation=PHONEBOOK' );
if ($keywords_arr) {
    foreach ($keywords_arr as $key => $value) {
        echo "$key = $value\n";
    }
}
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$keywords_arr = Locale::getKeywords( 'de_DE@currency=EUR;collation=PHONEBOOK' );
if ($keywords_arr) {
    foreach( $keywords_arr as $key => $value){
        echo "$key = $value\n";
    }
}
?>

Результат выполнения данного примера:

collation = PHONEBOOK
currency = EUR

Смотрите также

  • locale_get_all_variants() - Получение вариантов из переданной локали


Получить первичный язык для локали

  • « Locale::getKeywords
  • Locale::getRegion »
  • PHP Manual
  • Locale
  • Получить первичный язык для локали

Locale::getPrimaryLanguage

locale_get_primary_language

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getPrimaryLanguage -- locale_get_primary_language — Получить первичный язык для локали

Описание

Объектно-ориентированный стиль

public static Locale::getPrimaryLanguage ( string $locale ) : string

Процедурный стиль

locale_get_primary_language ( string $locale ) : string

Получает первичный язык для локали.

Список параметров

locale

Локаль для извлечения первичного языка

Возвращаемые значения

Код языка, связанный с локалью или NULL в случае ошибки.

Примеры

Пример #1 Пример использования locale_get_primary_language()

<?php
echo locale_get_primary_language('zh-Hant');
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
echo Locale::getPrimaryLanguage('zh-Hant');
?>

Результат выполнения данного примера:

zh

Смотрите также

  • locale_get_script() - Получить алфавит для локали
  • locale_get_region() - Получить регион для локали
  • locale_get_all_variants() - Получение вариантов из переданной локали


Получить регион для локали

  • « Locale::getPrimaryLanguage
  • Locale::getScript »
  • PHP Manual
  • Locale
  • Получить регион для локали

Locale::getRegion

locale_get_region

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getRegion -- locale_get_region — Получить регион для локали

Описание

Объектно-ориентированный стиль

public static Locale::getRegion ( string $locale ) : string

Процедурный стиль

locale_get_region ( string $locale ) : string

Получает регион для локали.

Список параметров

locale

Локаль для извлечения кода региона

Возвращаемые значения

Код региона, связанный с локалью или NULL, если отсутствует.

Примеры

Пример #1 Пример использования locale_get_region()

<?php
echo locale_get_region('de-CH-1901');
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
echo Locale::getRegion('de-CH-1901');
?>

Результат выполнения данного примера:

CH

Смотрите также

  • locale_get_primary_language() - Получить первичный язык для локали
  • locale_get_script() - Получить алфавит для локали
  • locale_get_all_variants() - Получение вариантов из переданной локали


Получить алфавит для локали

  • « Locale::getRegion
  • Locale::lookup »
  • PHP Manual
  • Locale
  • Получить алфавит для локали

Locale::getScript

locale_get_script

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getScript -- locale_get_script — Получить алфавит для локали

Описание

Объектно-ориентированный стиль

public static Locale::getScript ( string $locale ) : string

Процедурный стиль

locale_get_script ( string $locale ) : string

Получает алфавит для локали.

Список параметров

locale

Локаль для извлечения алфавита

Возвращаемые значения

Алфавит, связанный с локалью или NULL, если отсутствует.

Примеры

Пример #1 Пример использования locale_get_script()

<?php
echo locale_get_script('sr-Cyrl');
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
echo Locale::getScript('sr-Cyrl');
?>

Результат выполнения данного примера:

Cyrl

Смотрите также

  • locale_get_primary_language() - Получить первичный язык для локали
  • locale_get_region() - Получить регион для локали
  • locale_get_all_variants() - Получение вариантов из переданной локали


Поиск языковых меток наиболее подходящих заданной локали

  • « Locale::getScript
  • Locale::parseLocale »
  • PHP Manual
  • Locale
  • Поиск языковых меток наиболее подходящих заданной локали

Locale::lookup

locale_lookup

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::lookup -- locale_lookup — Поиск языковых меток наиболее подходящих заданной локали

Описание

Объектно-ориентированный стиль

public static Locale::lookup ( array $langtag , string $locale [, bool $canonicalize = FALSE [, string $default ]] ) : string

Процедурный стиль

locale_lookup ( array $langtag , string $locale [, bool $canonicalize = FALSE [, string $default ]] ) : string

Ищет элементы langtag, наилучшим образом подходящие для диапазона языков, указанного в locale, в соответствии с алгоритмом поиска RFC 4647.

Список параметров

langtag

Массив (array), содержащий список меток языков для сравнения с locale. Не более 100 элементов.

locale

Локаль.

canonicalize

Если TRUE, то аргументы сперва будут приведены к каноническому виду.

default

Локаль по умолчанию, если совпадений не будет найдено.

Возвращаемые значения

Наиболее подходящая данной локали метка языка.

Примеры

Пример #1 Пример использования locale_lookup()

<?php
$arr = array(
    'de-DEVA',
    'de-DE-1996',
    'de',
    'de-De'
);
echo locale_lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$arr = array(
    'de-DEVA',
    'de-DE-1996',
    'de',
    'de-De'
);
echo Locale::lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>

Результат выполнения данного примера:

de_de_1996

Смотрите также

  • locale_filter_matches() - Проверить, соответствует ли тег фильтра языка локали


Получить ассоциативный массив всех подтегов локали

  • « Locale::lookup
  • Locale::setDefault »
  • PHP Manual
  • Locale
  • Получить ассоциативный массив всех подтегов локали

Locale::parseLocale

locale_parse

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::parseLocale -- locale_parse — Получить ассоциативный массив всех подтегов локали

Описание

Объектно-ориентированный стиль

public static Locale::parseLocale ( string $locale ) : array

Процедурный стиль

locale_parse ( string $locale ) : array

Возвращает ассоциативный массив, содержащий все подтеги заданной локали.

Список параметров

locale

Локаль из которой будут извлекаться подтеги. Обратите внимание: подтегов 'variant' и 'private' может быть не более 15, а подтегов 'extlang' не более 3.

Возвращаемые значения

Возвращает ассоциативный массив, в котором ключами выступают имена подтегов, а значениями, соответственно, их значения. Подтеги будут отсортированы как подтеги идентификатора локали, т.е. если идентификатор содержит несколько вариантов '-varX-varY-varZ', то в массиве они будут располагаться так: variant0=>varX, variant1=>varY, variant2=>varZ

Возвращает NULL если длина параметра locale превышает INTL_MAX_LOCALE_LEN.

Примеры

Пример #1 Пример использования locale_parse()

<?php
$arr = locale_parse('sl-Latn-IT-nedis');
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$arr = Locale::parseLocale('sl-Latn-IT-nedis');
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}
?>

Результат выполнения данного примера:

language : sl , script : Latn , region : IT , variant0 : NEDIS ,

Смотрите также

  • locale_compose() - Возвращает корректно отсортированные и разделенные идентификаторы локали


Установить локаль по умолчанию во время исполнения

  • « Locale::parseLocale
  • Normalizer »
  • PHP Manual
  • Locale
  • Установить локаль по умолчанию во время исполнения

Locale::setDefault

locale_set_default

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::setDefault -- locale_set_default — Установить локаль по умолчанию во время исполнения

Описание

Объектно-ориентированный стиль

public static Locale::setDefault ( string $locale ) : bool

Процедурный стиль

locale_set_default ( string $locale ) : bool

Устанавливает локаль по умолчанию во время исполнения согласно аргументу $locale. Эта функция изменяет значение глобальной опции 'default_locale'. Допускаются расширения UAX #35.

Список параметров

locale

Совместимая с BCP 47 метка языка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования locale_set_default()

<?php
locale_set_default('de-DE');
echo locale_get_default();
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
Locale::setDefault('de-DE');
echo Locale::getDefault();
?>

Результат выполнения данного примера:

de-DE

Смотрите также

  • locale_get_default() - Получение значения локали INTL по умолчанию из опции 'default_locale'


Класс Normalizer

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Введение

Нормализация - это процесс преобразования символов и их последовательностей в формальное представление более низкого уровня. Данный процесс крайне важен при сравнении строк при сортировке или при поиске, но также используется при сохранении текста, чтобы быть уверенным в том, что он сохранился корректно.

Консорциум Unicode определил несколько форм нормализации, отражающих разные потребности приложений:

  • Normalization Form D (NFD) - Каноническое разложение
  • Normalization Form C (NFC) - Каноническое разложение с последующей канонической сборкой
  • Normalization Form KD (NFKD) - Совместимое разложение
  • Normalization Form KC (NFKC) - Совместимое разложение с последующей канонической сборкой
Различные формы задаются в требованиях наборов преобразований текста. Преобразования вычисляются с алгоритма и набора файлов данных.

Обзор классов

Normalizer {
/* Методы */
public static getRawDecomposition ( string $input ) : string
public static isNormalized ( string $input [, int $form = Normalizer::FORM_C ] ) : bool
public static normalize ( string $input [, int $form = Normalizer::FORM_C ] ) : string
}

Предопределенные константы

Данные константы задают форму нормализации, используемую нормализатором:

Normalizer::FORM_C (integer)
Форма нормализации C (NFC) - Каноническое разложение, после которого каноническая сборка
Normalizer::FORM_D (integer)
Форма нормализации D (NFD) - Каноническое разложение
Normalizer::FORM_KC (integer)
Форма нормализации KC (NFKC) - Совместимое разложение, после которого каноническая сборка
Normalizer::FORM_KD (integer)
Форма нормализации KD (NFKD) - Совместимое разложение
Normalizer::NONE (integer)
Без разложения/сборки
Normalizer::OPTION_DEFAULT (integer)
Обычные настройки нормализации

Смотрите также

  • » Нормализация Unicode
  • » Нормализация Unicode. FAQ
  • » ICU Руководство пользователя - нормализация
  • » ICU Описание API - нормализация

Содержание

  • Normalizer::getRawDecomposition — Извлекает свойство Decomposition_Mapping для заданного символа UTF-8
  • Normalizer::isNormalized — Проверить, соответствует ли переданная строка заданной форме нормализации
  • Normalizer::normalize — Нормализация строки


Извлекает свойство Decomposition_Mapping для заданного символа UTF-8

  • « Normalizer
  • Normalizer::isNormalized »
  • PHP Manual
  • Normalizer
  • Извлекает свойство Decomposition_Mapping для заданного символа UTF-8

Normalizer::getRawDecomposition

normalizer_get_raw_decomposition

(PHP 7 >= 7.3)

Normalizer::getRawDecomposition -- normalizer_get_raw_decomposition — Извлекает свойство Decomposition_Mapping для заданного символа UTF-8

Описание

Объектно-ориентированный стиль

public static Normalizer::getRawDecomposition ( string $input ) : string

Процедурный стиль

normalizer_get_raw_decomposition ( string $input ) : string

Извлекает свойство Decomposition_Mapping, как определено в Unicode Character Database (UCD), для заданного символа UTF-8.

Список параметров

input

Строка, которая должна представлять из себя единичный символ в кодировке UTF-8.

Возвращаемые значения

Возвращает строку (string), содержащую свойство Decomposition_Mapping, если оно присутствует в UCD.

Возвращает NULL если для символа отсутствует свойство Decomposition_Mapping.

Примеры

Пример #1 Пример использования Normalizer::getRawDecomposition()

<?php

$result = "";
$strings = [
    "a",
    "\u{FFDA}",
    "\u{FDFA}",
    "",
    "aa",
    "\xF5",
];

foreach ($strings as $string) {
    $decomposition = Normalizer::getRawDecomposition($string);
    // $decomposition = normalizer_get_raw_decomposition($string); Процедурный стиль

    $error_code = intl_get_error_code();
    $error_message = intl_get_error_message();

    $string_hex = bin2hex($string);
    $result .= "---------------------\n";

    if ($decomposition === null) {
        $result .= "'$string_hex' не имеет соответствия декомпозиции\n" ;
    } else {
        $result .= "'$string_hex' имеет соответствие декомпозиции '" . bin2hex($decomposition) . "'\n" ;
    }

    $result .= "error info: '$error_message' ($error_code)\n";
}

echo $result;
?>

Результат выполнения данного примера:

---------------------
'61' не имеет соответствия декомпозиции
error info: 'U_ZERO_ERROR' (0)
---------------------
'efbf9a' имеет соответствие декомпозиции 'e385a1'
error info: 'U_ZERO_ERROR' (0)
---------------------
'efb7ba' имеет соответствие декомпозиции 'd8b5d984d98920d8a7d984d984d98720d8b9d984d98ad98720d988d8b3d984d985'
error info: 'U_ZERO_ERROR' (0)
---------------------
'' не имеет соответствия декомпозиции
error info: 'Input string must be exactly one UTF-8 encoded code point long.: U_ILLEGAL_ARGUMENT_ERROR' (1)
---------------------
'6161' не имеет соответствия декомпозиции
error info: 'Input string must be exactly one UTF-8 encoded code point long.: U_ILLEGAL_ARGUMENT_ERROR' (1)
---------------------
'f5' не имеет соответствия декомпозиции
error info: 'Code point out of range: U_ILLEGAL_ARGUMENT_ERROR' (1)

Смотрите также

  • Normalizer::normalize() - Нормализация строки
  • Normalizer::isNormalized() - Проверить, соответствует ли переданная строка заданной форме нормализации


Проверить, соответствует ли переданная строка заданной форме нормализации

  • « Normalizer::getRawDecomposition
  • Normalizer::normalize »
  • PHP Manual
  • Normalizer
  • Проверить, соответствует ли переданная строка заданной форме нормализации

Normalizer::isNormalized

normalizer_is_normalized

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Normalizer::isNormalized -- normalizer_is_normalized — Проверить, соответствует ли переданная строка заданной форме нормализации

Описание

Объектно-ориентированный стиль

public static Normalizer::isNormalized ( string $input [, int $form = Normalizer::FORM_C ] ) : bool

Процедурный стиль

normalizer_is_normalized ( string $input [, int $form = Normalizer::FORM_C ] ) : bool

Проверить, соответствует ли переданная строка заданной форме нормализации.

Список параметров

input

Проверяемая строка

form

Одна из форм нормализации.

Возвращаемые значения

TRUE если нормализована и FALSE, если нет или если произошла ошибка

Примеры

Пример #1 Пример использования normalizer_is_normalized()

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_orig = 'A' . $char_combining_ring_above;
$char_norm = normalizer_normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo ( normalizer_is_normalized($char_orig, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
echo '; ';
echo ( normalizer_is_normalized($char_norm, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
?>

Пример #2 Пример в объектно-ориентированном стиле

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_orig = 'A' . $char_combining_ring_above;
$char_norm = Normalizer::normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo ( Normalizer::isNormalized($char_orig, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
echo '; ';
echo ( Normalizer::isNormalized($char_norm, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
?>

Результат выполнения данного примера:

not normalized; normalized

Смотрите также

  • normalizer_normalize() - Нормализация строки


Нормализация строки

  • « Normalizer::isNormalized
  • MessageFormatter »
  • PHP Manual
  • Normalizer
  • Нормализация строки

Normalizer::normalize

normalizer_normalize

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Normalizer::normalize -- normalizer_normalize — Нормализация строки

Описание

Объектно-ориентированный стиль

public static Normalizer::normalize ( string $input [, int $form = Normalizer::FORM_C ] ) : string

Процедурный стиль

normalizer_normalize ( string $input [, int $form = Normalizer::FORM_C ] ) : string

Нормализует переданную строку

Список параметров

input

Строка для нормализации

form

Одна из форм нормализации

Возвращаемые значения

Нормализованная строка или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования normalizer_normalize()

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_1 = normalizer_normalize( $char_A_ring, Normalizer::FORM_C );
$char_2 = normalizer_normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo urlencode($char_1);
echo ' ';
echo urlencode($char_2);
?>

Пример #2 Пример в объектно-ориентированном стиле

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_1 = Normalizer::normalize( $char_A_ring, Normalizer::FORM_C );
$char_2 = Normalizer::normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo urlencode($char_1);
echo ' ';
echo urlencode($char_2);
?>

Результат выполнения данного примера:

%C3%85 %C3%85

Смотрите также

  • normalizer_is_normalized() - Проверить, соответствует ли переданная строка заданной форме нормализации


The MessageFormatter class

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Введение

MessageFormatter - это класс позволяющий создавать склеиваемые, не зависимые от языка сообщения. Методы этого класса используются для создания всех сообщений показываемых пользователю.

Класс MessageFormatter собирает сообщение из разных фрагментов (таких как текст, числа и даты) поставляемых программой. Данный класс позволяет программе не задумываться о порядке, в каком эти фрагменты надо склеивать. Класс использует спецификации форматирования для сборки этих фрагментов в сообщение, хранящееся в виде одной строки в хранилище ресурсов. К примеру, MessageFormatter позволит напечатать фразу "Finished printing x out of y files..." таким образом, чтобы обеспечить гибкость перевода.

Ранее сообщение для конечного пользователя создавалось как законченая фраза и обрабатывалась как строка. Такая процедура приводила к проблемам локализации, поскольку структура фразы, порядок слов, формат чисел и прочее сильно отличались в разных языках. Нейтральная к языку процедура создания сообщений держит каждую часть сообщения отдельно и предоставляет ключи к данным. Используя эти ключи, класс MessageFormatter может склеивать части сообщения, преобразовывать их в соответствии с локалью и отображать в виде грамотного сообщения конечному пользователю.

MessageFormatter берет набор объектов, форматирует их и вставляет в шаблон в нужных местах. Совместно с MessageFormatter полезно использовать средства форматирования выбора (choice formatter) для обработки множественного/единственного числа, сравнения чисел и выбора из массива элементов. Обычно формат сообщения берется из ресурсов, а аргументы передаются во время выполнения.

Обзор классов

MessageFormatter {
/* Методы */
public __construct ( string $locale , string $pattern )
public static create ( string $locale , string $pattern ) : MessageFormatter
public static formatMessage ( string $locale , string $pattern , array $args ) : string
public format ( array $args ) : string
public getErrorCode ( void ) : int
public getErrorMessage ( void ) : string
public getLocale ( void ) : string
public getPattern ( void ) : string
public static parseMessage ( string $locale , string $pattern , string $source ) : array
public parse ( string $value ) : array
public setPattern ( string $pattern ) : bool
}

Смотрите также

  • » ICU. Документация по форматированию.
  • » ICU. Описание форматирования сообщений.
  • » ICU. Средства форматирования сообщений
  • » ICU. Средства форматирования выбора

Содержание

  • MessageFormatter::create — Constructs a new Message Formatter
  • MessageFormatter::formatMessage — Quick format message
  • MessageFormatter::format — Format the message
  • MessageFormatter::getErrorCode — Get the error code from last operation
  • MessageFormatter::getErrorMessage — Get the error text from the last operation
  • MessageFormatter::getLocale — Get the locale for which the formatter was created
  • MessageFormatter::getPattern — Get the pattern used by the formatter
  • MessageFormatter::parseMessage — Quick parse input string
  • MessageFormatter::parse — Parse input string according to pattern
  • MessageFormatter::setPattern — Set the pattern used by the formatter


Constructs a new Message Formatter

  • « MessageFormatter
  • MessageFormatter::formatMessage »
  • PHP Manual
  • MessageFormatter
  • Constructs a new Message Formatter

MessageFormatter::create

MessageFormatter::__construct

msgfmt_create

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::create -- MessageFormatter::__construct -- msgfmt_create — Constructs a new Message Formatter

Описание

Объектно-ориентированный стиль (method)

public static MessageFormatter::create ( string $locale , string $pattern ) : MessageFormatter

Объектно-ориентированный стиль (constructor):

public MessageFormatter::__construct ( string $locale , string $pattern )

Процедурный стиль

msgfmt_create ( string $locale , string $pattern ) : MessageFormatter

Constructs a new Message Formatter

Список параметров

locale

The locale to use when formatting arguments

pattern

The pattern string to stick arguments into. The pattern uses an 'apostrophe-friendly' syntax; it is run through » umsg_autoQuoteApostrophe before being interpreted.

Возвращаемые значения

The formatter object

Ошибки

When invoked as constructor, on failure an IntlException is thrown.

Примеры

Пример #1 msgfmt_create() example

<?php
$fmt = msgfmt_create("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
$fmt = msgfmt_create("de", "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
?>

Пример #2 OO example

<?php
$fmt = new MessageFormatter("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo $fmt->format(array(4560, 123, 4560/123));
$fmt = new MessageFormatter("de", "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum");
echo $fmt->format(array(4560, 123, 4560/123));
?>

Результат выполнения данного примера:

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen auf 123 Baumen sind 37,073 Affen pro Baum

Смотрите также

  • msgfmt_format() - Format the message
  • msgfmt_parse() - Parse input string according to pattern
  • msgfmt_get_error_code() - Get the error code from last operation
  • msgfmt_get_error_message() - Get the error text from the last operation


Quick format message

  • « MessageFormatter::create
  • MessageFormatter::format »
  • PHP Manual
  • MessageFormatter
  • Quick format message

MessageFormatter::formatMessage

msgfmt_format_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::formatMessage -- msgfmt_format_message — Quick format message

Описание

Объектно-ориентированный стиль

public static MessageFormatter::formatMessage ( string $locale , string $pattern , array $args ) : string

Процедурный стиль

msgfmt_format_message ( string $locale , string $pattern , array $args ) : string

Quick formatting function that formats the string without having to explicitly create the formatter object. Use this function when the format operation is done only once and does not need and parameters or state to be kept.

Список параметров

locale

The locale to use for formatting locale-dependent parts

pattern

The pattern string to insert things into. The pattern uses an 'apostrophe-friendly' syntax; it is run through » umsg_autoQuoteApostrophe before being interpreted.

args

The array of values to insert into the format string

Возвращаемые значения

The formatted pattern string or FALSE if an error occurred

Примеры

Пример #1 msgfmt_format_message() example

<?php
echo msgfmt_format_message("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree\n", array(4560, 123, 4560/123));
echo msgfmt_format_message("de", "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum\n", array(4560, 123, 4560/123));
?>

Пример #2 OO example

<?php
echo MessageFormatter::formatMessage("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree\n", array(4560, 123, 4560/123));
echo MessageFormatter::formatMessage("de", "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum\n", array(4560, 123, 4560/123));
?>

Результат выполнения данного примера:

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen auf 123 Baumen sind 37,073 Affen pro Baum

Смотрите также

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_parse() - Parse input string according to pattern
  • msgfmt_get_error_code() - Get the error code from last operation
  • msgfmt_get_error_message() - Get the error text from the last operation


Format the message

  • « MessageFormatter::formatMessage
  • MessageFormatter::getErrorCode »
  • PHP Manual
  • MessageFormatter
  • Format the message

MessageFormatter::format

msgfmt_format

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::format -- msgfmt_format — Format the message

Описание

Объектно-ориентированный стиль

public MessageFormatter::format ( array $args ) : string

Процедурный стиль

msgfmt_format ( MessageFormatter $fmt , array $args ) : string

Format the message by substituting the data into the format string according to the locale rules

Список параметров

fmt

The message formatter

args

Arguments to insert into the format string

Возвращаемые значения

The formatted string, or FALSE if an error occurred

Примеры

Пример #1 msgfmt_format() example

<?php
$fmt = msgfmt_create("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
$fmt = msgfmt_create("de", "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
?>

Пример #2 OO example

<?php
$fmt = new MessageFormatter("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo $fmt->format(array(4560, 123, 4560/123));
$fmt = new MessageFormatter("de", "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum");
echo $fmt->format(array(4560, 123, 4560/123));
?>

Результат выполнения данного примера:

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen auf 123 Baumen sind 37,073 Affen pro Baum

Смотрите также

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_parse() - Parse input string according to pattern
  • msgfmt_format_message() - Quick format message
  • msgfmt_get_error_code() - Get the error code from last operation
  • msgfmt_get_error_message() - Get the error text from the last operation


Get the error code from last operation

  • « MessageFormatter::format
  • MessageFormatter::getErrorMessage »
  • PHP Manual
  • MessageFormatter
  • Get the error code from last operation

MessageFormatter::getErrorCode

msgfmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::getErrorCode -- msgfmt_get_error_code — Get the error code from last operation

Описание

Объектно-ориентированный стиль

public MessageFormatter::getErrorCode ( void ) : int

Процедурный стиль

msgfmt_get_error_code ( MessageFormatter $fmt ) : int

Get the error code from last operation.

Список параметров

fmt

The message formatter

Возвращаемые значения

The error code, one of UErrorCode values. Initial value is U_ZERO_ERROR.

Смотрите также

  • msgfmt_get_error_message() - Get the error text from the last operation
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Get the error text from the last operation

  • « MessageFormatter::getErrorCode
  • MessageFormatter::getLocale »
  • PHP Manual
  • MessageFormatter
  • Get the error text from the last operation

MessageFormatter::getErrorMessage

msgfmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::getErrorMessage -- msgfmt_get_error_message — Get the error text from the last operation

Описание

Объектно-ориентированный стиль

public MessageFormatter::getErrorMessage ( void ) : string

Процедурный стиль

msgfmt_get_error_message ( MessageFormatter $fmt ) : string

Get the error text from the last operation.

Список параметров

fmt

The message formatter

Возвращаемые значения

Description of the last error.

Примеры

Пример #1 msgfmt_get_error_message() example

<?php
$fmt = msgfmt_create("en_US", "{0, number} monkeys on {1, number} trees");
$str = msgfmt_format($fmt, array());
if(!$str) {
    echo "ERROR: ".msgfmt_get_error_message($fmt) . " (" . msgfmt_get_error_code($fmt) . ")\n";
}
?>

Пример #2 OO example

<?php
$fmt = new MessageFormatter("en_US", "{0, number} monkeys on {1, number} trees");
$str = $fmt->format(array());
if(!$str) {
    echo "ERROR: ".$fmt->getErrorMessage() . " (" . $fmt->getErrorCode() . ")\n";
}
?>

Результат выполнения данного примера:

ERROR: msgfmt_format: not enough parameters: U_ILLEGAL_ARGUMENT_ERROR (1)

Смотрите также

  • msgfmt_get_error_code() - Get the error code from last operation
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Get the locale for which the formatter was created

  • « MessageFormatter::getErrorMessage
  • MessageFormatter::getPattern »
  • PHP Manual
  • MessageFormatter
  • Get the locale for which the formatter was created

MessageFormatter::getLocale

msgfmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::getLocale -- msgfmt_get_locale — Get the locale for which the formatter was created

Описание

Объектно-ориентированный стиль

public MessageFormatter::getLocale ( void ) : string

Процедурный стиль

msgfmt_get_locale ( NumberFormatter $formatter ) : string

Get the locale for which the formatter was created.

Список параметров

formatter

The formatter resource

Возвращаемые значения

The locale name

Примеры

Пример #1 msgfmt_get_locale() example

<?php
$fmt = msgfmt_create('en_US', "Number {0,number}");
echo msgfmt_get_locale($fmt);
?>

Пример #2 OO example

<?php
$fmt = new MessageFormatter('en_US', "Number {0,number}");
echo $fmt->getLocale();
?>

Результат выполнения данного примера:

en_US

Смотрите также

  • msgfmt_create() - Constructs a new Message Formatter


Get the pattern used by the formatter

  • « MessageFormatter::getLocale
  • MessageFormatter::parseMessage »
  • PHP Manual
  • MessageFormatter
  • Get the pattern used by the formatter

MessageFormatter::getPattern

msgfmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::getPattern -- msgfmt_get_pattern — Get the pattern used by the formatter

Описание

Объектно-ориентированный стиль

public MessageFormatter::getPattern ( void ) : string

Процедурный стиль

msgfmt_get_pattern ( MessageFormatter $fmt ) : string

Get the pattern used by the formatter

Список параметров

fmt

The message formatter

Возвращаемые значения

The pattern string for this message formatter

Примеры

Пример #1 msgfmt_get_pattern() example

<?php
$fmt = msgfmt_create( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Default pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Formatting result: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";

msgfmt_set_pattern( $fmt, "{0, number} trees hosting {1, number} monkeys" );
echo "New pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Formatted number: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";
?>

Пример #2 OO example

<?php
$fmt = new MessageFormatter( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Default pattern: '" . $fmt->getPattern() . "'\n";
echo "Formatting result: " . $fmt->format(array(123, 456)) . "\n";

$fmt->setPattern("{0, number} trees hosting {1, number} monkeys" );
echo "New pattern: '" . $fmt->getPattern() . "'\n";
echo "Formatted number: " . $fmt->format(array(123, 456)) . "\n";
?>

Результат выполнения данного примера:

Default pattern: '{0,number} monkeys on {1,number} trees'
Formatting result: 123 monkeys on 456 trees
New pattern: '{0,number} trees hosting {1,number} monkeys'
Formatted number: 123 trees hosting 456 monkeys

Смотрите также

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_set_pattern() - Set the pattern used by the formatter


Quick parse input string

  • « MessageFormatter::getPattern
  • MessageFormatter::parse »
  • PHP Manual
  • MessageFormatter
  • Quick parse input string

MessageFormatter::parseMessage

msgfmt_parse_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::parseMessage -- msgfmt_parse_message — Quick parse input string

Описание

Объектно-ориентированный стиль

public static MessageFormatter::parseMessage ( string $locale , string $pattern , string $source ) : array

Процедурный стиль

msgfmt_parse_message ( string $locale , string $pattern , string $value ) : array

Parses input string without explicitly creating the formatter object. Use this function when the format operation is done only once and does not need and parameters or state to be kept.

Список параметров

locale

The locale to use for parsing locale-dependent parts

pattern

The pattern with which to parse the value.

source

The string to parse, conforming to the pattern.

Возвращаемые значения

An array containing items extracted, or FALSE on error

Примеры

Пример #1 msgfmt_parse_message() example

<?php
$fmt = msgfmt_parse_message('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree",
                            "4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($fmt);

$fmt = msgfmt_parse_message('de', "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum",
                            "4.560 Affen auf 123 Baumen sind 37,073 Affen pro Baum");
var_export($fmt);
?>

Пример #2 OO example

<?php
$fmt = MessageFormatter::parseMessage('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree",
                            "4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($fmt);

$fmt = MessageFormatter::parseMessage('de', "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum",
                            "4.560 Affen auf 123 Baumen sind 37,073 Affen pro Baum");
var_export($fmt);
?>

Результат выполнения данного примера:

array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)
array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)

Смотрите также

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_format_message() - Quick format message
  • msgfmt_parse() - Parse input string according to pattern


Parse input string according to pattern

  • « MessageFormatter::parseMessage
  • MessageFormatter::setPattern »
  • PHP Manual
  • MessageFormatter
  • Parse input string according to pattern

MessageFormatter::parse

msgfmt_parse

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::parse -- msgfmt_parse — Parse input string according to pattern

Описание

Объектно-ориентированный стиль

public MessageFormatter::parse ( string $value ) : array

Процедурный стиль

msgfmt_parse ( MessageFormatter $fmt , string $value ) : array

Parses input string and return any extracted items as an array.

Список параметров

fmt

The message formatter

value

The string to parse

Возвращаемые значения

An array containing the items extracted, or FALSE on error

Примеры

Пример #1 msgfmt_parse() example

<?php
$fmt = msgfmt_create('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
$res = msgfmt_parse($fmt, "4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($res);

$fmt = msgfmt_create('de', "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum");
$res = msgfmt_parse($fmt, "4.560 Affen auf 123 Baumen sind 37,073 Affen pro Baum");
var_export($res);
?>

Пример #2 OO example

<?php
$fmt = new MessageFormatter('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
$res = $fmt->parse("4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($res);

$fmt = new MessageFormatter('de', "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum");
$res = $fmt->parse("4.560 Affen auf 123 Baumen sind 37,073 Affen pro Baum");
var_export($res);
?>

Результат выполнения данного примера:

array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)
array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)

Смотрите также

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_format() - Format the message
  • msgfmt_parse_message() - Quick parse input string


Set the pattern used by the formatter

  • « MessageFormatter::parse
  • IntlCalendar »
  • PHP Manual
  • MessageFormatter
  • Set the pattern used by the formatter

MessageFormatter::setPattern

msgfmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::setPattern -- msgfmt_set_pattern — Set the pattern used by the formatter

Описание

Объектно-ориентированный стиль

public MessageFormatter::setPattern ( string $pattern ) : bool

Процедурный стиль

msgfmt_set_pattern ( MessageFormatter $fmt , string $pattern ) : bool

Set the pattern used by the formatter

Список параметров

fmt

The message formatter

pattern

The pattern string to use in this message formatter. The pattern uses an 'apostrophe-friendly' syntax; it is run through » umsg_autoQuoteApostrophe before being interpreted.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 msgfmt_set_pattern() example

<?php
$fmt = msgfmt_create( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Default pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Formatting result: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";

msgfmt_set_pattern( $fmt, "{0, number} trees hosting {1, number} monkeys" );
echo "New pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Formatted number: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";
?>

Пример #2 OO example

<?php
$fmt = new MessageFormatter( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Default pattern: '" . $fmt->getPattern() . "'\n";
echo "Formatting result: " . $fmt->format(array(123, 456)) . "\n";

$fmt->setPattern("{0, number} trees hosting {1, number} monkeys" );
echo "New pattern: '" . $fmt->getPattern() . "'\n";
echo "Formatted number: " . $fmt->format(array(123, 456)) . "\n";
?>

Результат выполнения данного примера:

Default pattern: '{0,number} monkeys on {1,number} trees'
Formatting result: 123 monkeys on 456 trees
New pattern: '{0,number} trees hosting {1,number} monkeys'
Formatted number: 123 trees hosting 456 monkeys

Смотрите также

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_get_pattern() - Get the pattern used by the formatter


Класс IntlCalendar

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

Введение

Обзор классов

IntlCalendar {
/* Константы */
const integer FIELD_ERA = 0 ;
const integer FIELD_YEAR = 1 ;
const integer FIELD_MONTH = 2 ;
const integer FIELD_WEEK_OF_YEAR = 3 ;
const integer FIELD_WEEK_OF_MONTH = 4 ;
const integer FIELD_DATE = 5 ;
const integer FIELD_DAY_OF_YEAR = 6 ;
const integer FIELD_DAY_OF_WEEK = 7 ;
const integer FIELD_DAY_OF_WEEK_IN_MONTH = 8 ;
const integer FIELD_AM_PM = 9 ;
const integer FIELD_HOUR = 10 ;
const integer FIELD_HOUR_OF_DAY = 11 ;
const integer FIELD_MINUTE = 12 ;
const integer FIELD_SECOND = 13 ;
const integer FIELD_MILLISECOND = 14 ;
const integer FIELD_ZONE_OFFSET = 15 ;
const integer FIELD_DST_OFFSET = 16 ;
const integer FIELD_YEAR_WOY = 17 ;
const integer FIELD_DOW_LOCAL = 18 ;
const integer FIELD_EXTENDED_YEAR = 19 ;
const integer FIELD_JULIAN_DAY = 20 ;
const integer FIELD_MILLISECONDS_IN_DAY = 21 ;
const integer FIELD_IS_LEAP_MONTH = 22 ;
const integer FIELD_FIELD_COUNT = 23 ;
const integer FIELD_DAY_OF_MONTH = 5 ;
const integer DOW_SUNDAY = 1 ;
const integer DOW_MONDAY = 2 ;
const integer DOW_TUESDAY = 3 ;
const integer DOW_WEDNESDAY = 4 ;
const integer DOW_THURSDAY = 5 ;
const integer DOW_FRIDAY = 6 ;
const integer DOW_SATURDAY = 7 ;
const integer DOW_TYPE_WEEKDAY = 0 ;
const integer DOW_TYPE_WEEKEND = 1 ;
const integer DOW_TYPE_WEEKEND_OFFSET = 2 ;
const integer DOW_TYPE_WEEKEND_CEASE = 3 ;
const integer WALLTIME_FIRST = 1 ;
const integer WALLTIME_LAST = 0 ;
const integer WALLTIME_NEXT_VALID = 2 ;
/* Методы */
public add ( int $field , int $amount ) : bool
intlcal_add ( IntlCalendar $cal , int $field , int $amount ) : bool
public after ( IntlCalendar $other ) : bool
intlcal_after ( IntlCalendar $cal , IntlCalendar $other ) : bool
public before ( IntlCalendar $other ) : bool
intlcal_before ( IntlCalendar $cal , IntlCalendar $other ) : bool
public clear ([ int $field = NULL ] ) : bool
intlcal_clear ( IntlCalendar $cal [, int $field = NULL ] ) : bool
private __construct ( void )
public static createInstance ([ mixed $timeZone = NULL [, string $locale = "" ]] ) : IntlCalendar
intlcal_create_instance ([ mixed $timeZone = NULL [, string $locale = "" ]] ) : IntlCalendar
public equals ( IntlCalendar $other ) : bool
intlcal_equals ( IntlCalendar $cal , IntlCalendar $other ) : bool
public fieldDifference ( float $when , int $field ) : int
intlcal_field_difference ( IntlCalendar $cal , float $when , int $field ) : int
public static fromDateTime ( mixed $dateTime ) : IntlCalendar
intlcal_from_date_time ( mixed $dateTime ) : IntlCalendar
public get ( int $field ) : int
intlcal_get ( IntlCalendar $cal , int $field ) : int
public getActualMaximum ( int $field ) : int
intlcal_get_actual_maximum ( IntlCalendar $cal , int $field ) : int
public getActualMinimum ( int $field ) : int
intlcal_get_actual_minimum ( IntlCalendar $cal , int $field ) : int
public static getAvailableLocales ( void ) : array
intlcal_get_available_locales ( void ) : array
public getDayOfWeekType ( int $dayOfWeek ) : int
intlcal_get_day_of_week_type ( IntlCalendar $cal , int $dayOfWeek ) : int
public getErrorCode ( void ) : int
public getErrorMessage ( void ) : string
public getFirstDayOfWeek ( void ) : int
intlcal_get_first_day_of_week ( IntlCalendar $cal ) : int
public getGreatestMinimum ( int $field ) : int
intlcal_get_greatest_minimum ( IntlCalendar $cal , int $field ) : int
public static getKeywordValuesForLocale ( string $key , string $locale , bool $commonlyUsed ) : Iterator
intlcal_get_keyword_values_for_locale ( string $key , string $locale , bool $commonlyUsed ) : Iterator
public getLeastMaximum ( int $field ) : int
intlcal_get_least_maximum ( IntlCalendar $cal , int $field ) : int
public getLocale ( int $localeType ) : string
intlcal_get_locale ( IntlCalendar $cal , int $localeType ) : string
public getMaximum ( int $field ) : int
intlcal_get_maximum ( IntlCalendar $cal , int $field ) : int
public getMinimalDaysInFirstWeek ( void ) : int
intlcal_get_minimal_days_in_first_week ( IntlCalendar $cal ) : int
public getMinimum ( int $field ) : int
intlcal_get_minimum ( IntlCalendar $cal , int $field ) : int
public static getNow ( void ) : float
intlcal_get_now ( void ) : float
public getRepeatedWallTimeOption ( void ) : int
intlcal_get_repeated_wall_time_option ( IntlCalendar $cal ) : int
public getSkippedWallTimeOption ( void ) : int
intlcal_get_skipped_wall_time_option ( IntlCalendar $cal ) : int
public getTime ( void ) : float
intlcal_get_time ( IntlCalendar $cal ) : float
public getTimeZone ( void ) : IntlTimeZone
intlcal_get_time_zone ( IntlCalendar $cal ) : IntlTimeZone
public getType ( void ) : string
intlcal_get_type ( IntlCalendar $cal ) : string
public getWeekendTransition ( string $dayOfWeek ) : int
intlcal_get_weekend_transition ( IntlCalendar $cal , string $dayOfWeek ) : int
public inDaylightTime ( void ) : bool
intlcal_in_daylight_time ( IntlCalendar $cal ) : bool
public isEquivalentTo ( IntlCalendar $other ) : bool
intlcal_is_equivalent_to ( IntlCalendar $cal , IntlCalendar $other ) : bool
public isLenient ( void ) : bool
intlcal_is_lenient ( IntlCalendar $cal ) : bool
public isSet ( int $field ) : bool
intlcal_is_set ( IntlCalendar $cal , int $field ) : bool
public isWeekend ([ float $date = NULL ] ) : bool
intlcal_is_weekend ( IntlCalendar $cal [, float $date = NULL ] ) : bool
public roll ( int $field , mixed $amountOrUpOrDown ) : bool
intlcal_roll ( IntlCalendar $cal , int $field , mixed $amountOrUpOrDown ) : bool
public set ( int $field , int $value ) : bool
public set ( int $year , int $month [, int $dayOfMonth = NULL [, int $hour = NULL [, int $minute = NULL [, int $second = NULL ]]]] ) : bool
intlcal_set ( IntlCalendar $cal , int $field , int $value ) : bool
intlcal_set ( IntlCalendar $cal , int $year , int $month [, int $dayOfMonth = NULL [, int $hour = NULL [, int $minute = NULL [, int $second = NULL ]]]] ) : bool
public setFirstDayOfWeek ( int $dayOfWeek ) : bool
intlcal_set_first_day_of_week ( IntlCalendar $cal , int $dayOfWeek ) : bool
public setLenient ( bool $isLenient ) : bool
intlcal_set_lenient ( IntlCalendar $cal , bool $isLenient ) : bool
public setMinimalDaysInFirstWeek ( int $minimalDays ) : bool
intlcal_get_minimal_days_in_first_week ( IntlCalendar $cal , int $minimalDays ) : bool
public setRepeatedWallTimeOption ( int $wallTimeOption ) : bool
intlcal_set_repeated_wall_time_option ( IntlCalendar $cal , int $wallTimeOption ) : bool
public setSkippedWallTimeOption ( int $wallTimeOption ) : bool
intlcal_set_skipped_wall_time_option ( IntlCalendar $cal , int $wallTimeOption ) : bool
public setTime ( float $date ) : bool
intlcal_set_time ( IntlCalendar $cal , float $date ) : bool
public setTimeZone ( mixed $timeZone ) : bool
intlcal_set_time_zone ( IntlCalendar $cal , mixed $timeZone ) : bool
public toDateTime ( void ) : DateTime
intlcal_to_date_time ( IntlCalendar $cal ) : DateTime
}

Предопределенные константы

IntlCalendar::FIELD_ERA

Поле календаря численно представляет эпоху, например 1 для "от рождества Христова" и 0 для "до рождества Христова" в Грирогианском и Юлианском календарях и 235 для периода Хэйсэй (??) в Японском календаре. Не все календари имеют больше одной эпохи.

IntlCalendar::FIELD_YEAR

Поле календаря для года. Не уникально в контексте нескольких эпох. Если календарь содержит более одной эры, то, обычно, минимальное значение этого поля равно 1.

IntlCalendar::FIELD_MONTH

Поле календаря для месяца. Последовательность месяцев начинается с нуля, следовательно Janurary (Январь) (здесь используется для обозначения первого месяца года, но по факту может быть совсем другое имя, например Muharram для Исламского календаря) будет представлен числом 0, February (Февраль) числом 1, ..., December (Декабрь) числом 11 и, для некоторых календарей, 13й или високосный месяц, значение будет равно 12.

IntlCalendar::FIELD_WEEK_OF_YEAR

Поле календаря для номера недели в году. Зависит от того, с какого дня начинается неделя и минимального количества дней в неделе.

IntlCalendar::FIELD_WEEK_OF_MONTH

Поле календаря для номера недели в месяце. Зависит от того, с какого дня начинается неделя и минимального количества дней в неделе.

IntlCalendar::FIELD_DATE

Поле календаря для номера дня в месяце. То же самое, что и IntlCalendar::FIELD_DAY_OF_MONTH.

IntlCalendar::FIELD_DAY_OF_YEAR

Поле календаря для номера дня в году. Для Грегорианского календаря находится в диапазоне от 1 до 365 или 366.

IntlCalendar::FIELD_DAY_OF_WEEK

Поле календаря для номера дня в неделе. Начинается с 1 (Воскресенье, смотри IntlCalendar::DOW_SUNDAY и связанные константы) и заканчивается 7 (Суббота).

IntlCalendar::FIELD_DAY_OF_WEEK_IN_MONTH

Номер дня недели (Воскресенье, Понедельник, ...) в месяце. Допустим это значение равно 1, а значение дня недели равно 2 (Понедельник), следовательно это первый понедельник месяца. Максимальное значение равно 5.

Также допустимы значения 0 и ниже (отрицательные). Значение 0 охватывает 7 дней непосредственно перед началом месяца (первый подходящий день в месяце имеет значение 1). Отрицательные значения отсчитываются от конца месяца. Так, значение -1 указывает на последний подходящий день месяца, -2 на второй с конца и т.д.

В отличие от IntlCalendar::FIELD_WEEK_OF_MONTH и IntlCalendar::FIELD_WEEK_OF_YEAR, это значение не зависит от IntlCalendar::getFirstDayOfWeek() и IntlCalendar::getMinimalDaysInFirstWeek(). Первая среда - это первая среда, даже если неделя началась в предыдущем месяце.

IntlCalendar::FIELD_AM_PM

Поле календаря определяющее время до/после полудня. Соответственно 0 - до полудня, (1) - после. Полночь считается как "до полудня", полдень как "после полудня".

IntlCalendar::FIELD_HOUR

Поле календаря для часов, без указания до или после полудня. Допустимы значения в интервале от 0 до 11.

IntlCalendar::FIELD_HOUR_OF_DAY

Поле календаня для полных (24-часовой формат) часов. Допустимы значения от 0 до 23.

IntlCalendar::FIELD_MINUTE

Поле календаря для минут.

IntlCalendar::FIELD_SECOND

Поле календаря для секунд.

IntlCalendar::FIELD_MILLISECOND

Поле календаря для миллисекунд.

IntlCalendar::FIELD_ZONE_OFFSET

Поле календаря для "сырого" смещения временной зона, в миллисекундах. "Сырое" смещение не учитывает переходы на летнее/зимнее время.

IntlCalendar::FIELD_DST_OFFSET

Поле календаря для смещения временной зоны в миллисекундах в зависимости от летнего/зимнего времени, если применимо к данной временной зоне.

IntlCalendar::FIELD_YEAR_WOY

Поле календаря представляющее год для недели года.

IntlCalendar::FIELD_DOW_LOCAL

Поле календаря для локализованного дня недели. Принимает значения в диапазоне от 1 до 7. 1 используется для дня недели соответствующего значению возвращаемому функцией IntlCalendar::getFirstDayOfWeek().

IntlCalendar::FIELD_EXTENDED_YEAR

Поле календаря для представления номера года в контексте обеспечения непрерывности между эпохами. Например, для Грегорианского календаря, это значение для эпохи "после рождества Христова" будет соответствовать IntlCalendar::FIELD_YEAR, а для эпохи "до рождества Христова", год y будет представлен как -y + 1.

IntlCalendar::FIELD_JULIAN_DAY

Поле календаря для модифицированых номеров дней Юлианского календаря. В отличие от стандартного Юлианского календаря, в нем переход происходит в полночь по локальному времени, а не в полдень по UTC. Он однозначно идентифицирует дату.

IntlCalendar::FIELD_MILLISECONDS_IN_DAY

Поле календаря, охватывающее IntlCalendar::FIELD_HOUR_OF_DAY, IntlCalendar::FIELD_MINUTE, IntlCalendar::FIELD_SECOND и IntlCalendar::FIELD_MILLISECOND. Находится в диапазоне от 0 до 24 * 3600 * 1000 - 1. Это не количество миллисекунд, прошедшее с полуночи, так как в моменты перехода на летнее/зимнее время будет иметь разрывы.

IntlCalendar::FIELD_IS_LEAP_MONTH

Поле календаря принимающее значение 1 для високосного месяца и 0 для обычного.

IntlCalendar::FIELD_FIELD_COUNT

Общее количество полей.

IntlCalendar::FIELD_DAY_OF_MONTH

Псевдоним для IntlCalendar::FIELD_DATE.

IntlCalendar::DOW_SUNDAY

Воскресенье.

IntlCalendar::DOW_MONDAY

Понедельник.

IntlCalendar::DOW_TUESDAY

Вторник.

IntlCalendar::DOW_WEDNESDAY

Среда.

IntlCalendar::DOW_THURSDAY

Четверг.

IntlCalendar::DOW_FRIDAY

Пятница.

IntlCalendar::DOW_SATURDAY

Суббота.

IntlCalendar::DOW_TYPE_WEEKDAY

Вывод IntlCalendar::getDayOfWeekType() означает, что день будний.

IntlCalendar::DOW_TYPE_WEEKEND

Вывод IntlCalendar::getDayOfWeekType() означает, что день выходной.

IntlCalendar::DOW_TYPE_WEEKEND_OFFSET

Вывод IntlCalendar::getDayOfWeekType() означает, что выходные начинаются в этот день.

IntlCalendar::DOW_TYPE_WEEKEND_CEASE

Вывод IntlCalendar::getDayOfWeekType() означает, что выходные заканчиваются в этот день.

IntlCalendar::WALLTIME_FIRST

Вывод IntlCalendar::getSkippedWallTimeOption() означает, что время в пропущеном диапазоне должно ссылаться на момент времени меньший на один час и вывод IntlCalendar::getRepeatedWallTimeOption() означает, что время в повторяемом диапазоне должно относиться к моменту первого появления такого времени.

IntlCalendar::WALLTIME_LAST

Вывод IntlCalendar::getSkippedWallTimeOption() означает, что время в пропущеном диапазоне должно ссылаться на момент времени больший на один час и вывод IntlCalendar::getRepeatedWallTimeOption() означает, что время в повторяемом диапазоне должно относиться к моменту второго появления такого времени.

IntlCalendar::WALLTIME_NEXT_VALID

Вывод IntlCalendar::getSkippedWallTimeOption() означает, что время в пропущеном диапазоне относится к моменту, когда случился переход на зимнее/летнее время.

Содержание

  • IntlCalendar::add — Add a (signed) amount of time to a field
  • IntlCalendar::after — Whether this object?s time is after that of the passed object
  • IntlCalendar::before — Whether this object?s time is before that of the passed object
  • IntlCalendar::clear — Clear a field or all fields
  • IntlCalendar::__construct — Private constructor for disallowing instantiation
  • IntlCalendar::createInstance — Create a new IntlCalendar
  • IntlCalendar::equals — Compare time of two IntlCalendar objects for equality
  • IntlCalendar::fieldDifference — Calculate difference between given time and this object?s time
  • IntlCalendar::fromDateTime — Create an IntlCalendar from a DateTime object or string
  • IntlCalendar::get — Get the value for a field
  • IntlCalendar::getActualMaximum — The maximum value for a field, considering the object?s current time
  • IntlCalendar::getActualMinimum — The minimum value for a field, considering the object?s current time
  • IntlCalendar::getAvailableLocales — Get array of locales for which there is data
  • IntlCalendar::getDayOfWeekType — Tell whether a day is a weekday, weekend or a day that has a transition between the two
  • IntlCalendar::getErrorCode — Get last error code on the object
  • IntlCalendar::getErrorMessage — Get last error message on the object
  • IntlCalendar::getFirstDayOfWeek — Get the first day of the week for the calendar?s locale
  • IntlCalendar::getGreatestMinimum — Get the largest local minimum value for a field
  • IntlCalendar::getKeywordValuesForLocale — Get set of locale keyword values
  • IntlCalendar::getLeastMaximum — Get the smallest local maximum for a field
  • IntlCalendar::getLocale — Get the locale associated with the object
  • IntlCalendar::getMaximum — Get the global maximum value for a field
  • IntlCalendar::getMinimalDaysInFirstWeek — Get minimal number of days the first week in a year or month can have
  • IntlCalendar::getMinimum — Get the global minimum value for a field
  • IntlCalendar::getNow — Get number representing the current time
  • IntlCalendar::getRepeatedWallTimeOption — Get behavior for handling repeating wall time
  • IntlCalendar::getSkippedWallTimeOption — Get behavior for handling skipped wall time
  • IntlCalendar::getTime — Get time currently represented by the object
  • IntlCalendar::getTimeZone — Get the object?s timezone
  • IntlCalendar::getType — Get the calendar type
  • IntlCalendar::getWeekendTransition — Get time of the day at which weekend begins or ends
  • IntlCalendar::inDaylightTime — Whether the object?s time is in Daylight Savings Time
  • IntlCalendar::isEquivalentTo — Whether another calendar is equal but for a different time
  • IntlCalendar::isLenient — Whether date/time interpretation is in lenient mode
  • IntlCalendar::isSet — Whether a field is set
  • IntlCalendar::isWeekend — Whether a certain date/time is in the weekend
  • IntlCalendar::roll — Add value to field without carrying into more significant fields
  • IntlCalendar::set — Set a time field or several common fields at once
  • IntlCalendar::setFirstDayOfWeek — Set the day on which the week is deemed to start
  • IntlCalendar::setLenient — Set whether date/time interpretation is to be lenient
  • IntlCalendar::setMinimalDaysInFirstWeek — Set minimal number of days the first week in a year or month can have
  • IntlCalendar::setRepeatedWallTimeOption — Set behavior for handling repeating wall times at negative timezone offset transitions
  • IntlCalendar::setSkippedWallTimeOption — Set behavior for handling skipped wall times at positive timezone offset transitions
  • IntlCalendar::setTime — Set the calendar time in milliseconds since the epoch
  • IntlCalendar::setTimeZone — Set the timezone used by this calendar
  • IntlCalendar::toDateTime — Convert an IntlCalendar into a DateTime object


Add a (signed) amount of time to a field

  • « IntlCalendar
  • IntlCalendar::after »
  • PHP Manual
  • IntlCalendar
  • Add a (signed) amount of time to a field

IntlCalendar::add

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::add — Add a (signed) amount of time to a field

Описание

Объектно-ориентированный стиль

public IntlCalendar::add ( int $field , int $amount ) : bool

Процедурный стиль

intlcal_add ( IntlCalendar $cal , int $field , int $amount ) : bool

Add a signed amount to a field. Adding a positive amount allows advances in time, even if the numeric value of the field decreases (e.g. when working with years in BC dates).

Other fields may need to adjusted - for instance, adding a month to the 31st of January will result in the 28th (or 29th) of February. Contrary to IntlCalendar::roll(), when a value wraps around, more significant fields may change. For instance, adding a day to the 31st of January will result in the 1st of February, not the 1st of Janurary.

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

amount

The signed amount to add to the current field. If the amount is positive, the instant will be moved forward; if it is negative, the instant wil be moved into the past. The unit is implicit to the field type. For instance, hours for IntlCalendar::FIELD_HOUR_OF_DAY.

Возвращаемые значения

Returns TRUE on success или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlCalendar::add()

<?php
ini_set('intl.default_locale', 'fr_FR');
ini_set('date.timezone', 'UTC');

$cal = new IntlGregorianCalendar(2012, 0 /* January */, 31);
echo IntlDateFormatter::formatObject($cal), "\n";

$cal->add(IntlCalendar::FIELD_MONTH, 1);
echo IntlDateFormatter::formatObject($cal), "\n";

$cal->add(IntlCalendar::FIELD_DAY_OF_MONTH, 1);
echo IntlDateFormatter::formatObject($cal), "\n";

Результат выполнения данного примера:

31 janv. 2012 00:00:00
29 fevr. 2012 00:00:00
1 mars 2012 00:00:00


Whether this object?s time is after that of the passed object

  • « IntlCalendar::add
  • IntlCalendar::before »
  • PHP Manual
  • IntlCalendar
  • Whether this object?s time is after that of the passed object

IntlCalendar::after

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::after — Whether this object?s time is after that of the passed object

Описание

Объектно-ориентированный стиль

public IntlCalendar::after ( IntlCalendar $other ) : bool

Процедурный стиль

intlcal_after ( IntlCalendar $cal , IntlCalendar $other ) : bool

Returns whether this object?s time succeeds the argument?s time.

Список параметров

cal

The IntlCalendar resource.

other

The calendar whose time will be checked against the primary object?s time.

Возвращаемые значения

Returns TRUE if this object?s current time is after that of the calendar argument?s time. Returns FALSE otherwise. Also returns FALSE on failure. You can use exceptions or intl_get_error_code() to detect error conditions.

Примеры

Пример #1 IntlCalendar::after()

<?php
$cal1 = IntlCalendar::createInstance();
$cal2 = clone $cal1;

var_dump($cal1->after($cal2), //false
        $cal2->after($cal1)); //false

$cal1->roll(IntlCalendar::FIELD_MILLISECOND, true);

var_dump($cal1->after($cal2), //true
        $cal2->after($cal1)); //false


Whether this object?s time is before that of the passed object

  • « IntlCalendar::after
  • IntlCalendar::clear »
  • PHP Manual
  • IntlCalendar
  • Whether this object?s time is before that of the passed object

IntlCalendar::before

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::before — Whether this object?s time is before that of the passed object

Описание

Объектно-ориентированный стиль

public IntlCalendar::before ( IntlCalendar $other ) : bool

Процедурный стиль

intlcal_before ( IntlCalendar $cal , IntlCalendar $other ) : bool

Returns whether this object?s time precedes the argument?s time.

Список параметров

cal

The IntlCalendar resource.

other

The calendar whose time will be checked against the primary object?s time.

Возвращаемые значения

Returns TRUE if this object?s current time is before that of the calendar argument?s time. Returns FALSE otherwise. Also returns FALSE on failure. You can use exceptions or intl_get_error_code() to detect error conditions.


Clear a field or all fields

  • « IntlCalendar::before
  • IntlCalendar::__construct »
  • PHP Manual
  • IntlCalendar
  • Clear a field or all fields

IntlCalendar::clear

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::clear — Clear a field or all fields

Описание

Объектно-ориентированный стиль

public IntlCalendar::clear ([ int $field = NULL ] ) : bool

Процедурный стиль

intlcal_clear ( IntlCalendar $cal [, int $field = NULL ] ) : bool

Clears either all of the fields or a specific field. A cleared field is marked as unset, giving it the lowest priority against overlapping fields or even default values when calculating the time. Additionally, its value is set to 0, though given the field?s low priority, its value may have been internally set to another value by the time the field has finished been queried.

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

Returns TRUE on success или FALSE в случае возникновения ошибки. Failure can only occur is invalid arguments are provided.

Примеры

Пример #1 IntlCalendar::clear() examples

<?php
ini_set('intl.default_locale', 'es_ES');
ini_set('date.timezone', 'UTC');

$fields = array(
    'FIELD_ERA'                  => 0,
    'FIELD_YEAR'                 => 1,
    'FIELD_MONTH'                => 2,
    'FIELD_WEEK_OF_YEAR'         => 3,
    'FIELD_WEEK_OF_MONTH'        => 4,
    'FIELD_DATE'                 => 5,
    'FIELD_DAY_OF_YEAR'          => 6,
    'FIELD_DAY_OF_WEEK'          => 7,
    'FIELD_DAY_OF_WEEK_IN_MONTH' => 8,
    'FIELD_AM_PM'                => 9,
    'FIELD_HOUR'                 => 10,
    'FIELD_HOUR_OF_DAY'          => 11,
    'FIELD_MINUTE'               => 12,
    'FIELD_SECOND'               => 13,
    'FIELD_MILLISECOND'          => 14,
    'FIELD_ZONE_OFFSET'          => 15,
    'FIELD_DST_OFFSET'           => 16,
    'FIELD_YEAR_WOY'             => 17,
    'FIELD_DOW_LOCAL'            => 18,
    'FIELD_EXTENDED_YEAR'        => 19,
    'FIELD_JULIAN_DAY'           => 20,
    'FIELD_MILLISECONDS_IN_DAY'  => 21,
    'FIELD_IS_LEAP_MONTH'        => 22,
    'FIELD_FIELD_COUNT'          => 23,
);
function getSetFields(IntlCalendar $cal) {
    global $fields;
    $ret = array();
    foreach ($fields as $name => $value) {
        if ($cal->isSet($value)) {
            $ret[] = $name;
        }
    }
    return $ret;
}

$cal = new IntlGregorianCalendar(2013, 2 /* March */, 15);
echo "After GregorianCalendar creation\n";
print_r(getSetFields($cal));
echo "\n";

echo IntlDateFormatter::formatObject($cal), "\n";
echo "After the formatter requested the extended year\n";
print_r(getSetFields($cal));
echo "\n";

$cal->clear(IntlCalendar::FIELD_YEAR);
echo "After the year has been cleared, the date stays the same\n";
echo IntlDateFormatter::formatObject($cal), "\n";
echo "because FIELD_EXTENDED_YEAR is still set\n";
print_r(getSetFields($cal));
echo "\n";

var_dump($cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR));
echo "After the extended year has been cleared\n";
print_r(getSetFields($cal));
echo IntlDateFormatter::formatObject($cal), "\n";
echo "\n";

echo "After the fields are recalculated,\n"
        . " extended year is set again (to 1970)\n";
print_r(getSetFields($cal));
echo "\n";

$cal->clear();
echo "After calling variant with no arguments\n";
print_r(getSetFields($cal));
echo IntlDateFormatter::formatObject($cal), "\n";

Результат выполнения данного примера:

After GregorianCalendar creation
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_YEAR
    [2] => FIELD_MONTH
    [3] => FIELD_DATE
)

15/03/2013 00:00:00
After the formatter requested the extended year
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_YEAR
    [2] => FIELD_MONTH
    [3] => FIELD_DATE
    [4] => FIELD_EXTENDED_YEAR
)

After the year has been cleared, the date stays the same
15/03/2013 00:00:00
because FIELD_EXTENDED_YEAR is still set
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
    [3] => FIELD_EXTENDED_YEAR
)

bool(true)
After the extended year has been cleared
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
)
15/03/1970 00:00:00

After the fields are recalculated,
 extended year is set again (to 1970)
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
    [3] => FIELD_EXTENDED_YEAR
)

After calling variant with no arguments
Array
(
)
01/01/1970 00:00:00


Private constructor for disallowing instantiation

  • « IntlCalendar::clear
  • IntlCalendar::createInstance »
  • PHP Manual
  • IntlCalendar
  • Private constructor for disallowing instantiation

IntlCalendar::__construct

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::__construct — Private constructor for disallowing instantiation

Описание

private IntlCalendar::__construct ( void )

A private constructor for disallowing instantiation with the new operator.

Call IntlCalendar::createInstance() instead.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Create a new IntlCalendar

  • « IntlCalendar::__construct
  • IntlCalendar::equals »
  • PHP Manual
  • IntlCalendar
  • Create a new IntlCalendar

IntlCalendar::createInstance

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::createInstance — Create a new IntlCalendar

Описание

Объектно-ориентированный стиль

public static IntlCalendar::createInstance ([ mixed $timeZone = NULL [, string $locale = "" ]] ) : IntlCalendar

Процедурный стиль

intlcal_create_instance ([ mixed $timeZone = NULL [, string $locale = "" ]] ) : IntlCalendar

Given a timezone and locale, this method creates an IntlCalendar object. This factory method may return a subclass of IntlCalendar.

The calendar created will represent the time instance at which it was created, based on the system time. The fields can all be cleared by calling IntCalendar::clear() with no arguments. See also IntlGregorianCalendar::__construct().

Список параметров

timeZone

The timezone to use.

  • Если NULL, то будет использована временная зона по умолчанию, заданная в ini-настроке date.timezone либо с помощью функции date_default_timezone_set() и возвращенная функцией date_default_timezone_get().

  • Объект класса IntlTimeZone.

  • Объект класса DateTimeZone. Его идентификатор будет извлечен и на его основе будет создан объект временной зоны ICU; временная зона будет сохранена в базе данных ICU, а не PHP.

  • Строка, являющаяся корректным идентификатором временной зоны ICU. Смотрите IntlTimeZone::createTimeZoneIDEnumeration(). "Сырые" смещения, типа "GMT+08:30", также поддерживаются.

locale

A locale to use or NULL to use the default locale.

Возвращаемые значения

The created IntlCalendar instance or NULL on failure.

Примеры

Пример #1 IntlCalendar::createInstance()

<?php
ini_set('intl.default_locale', 'es_ES');
ini_set('date.timezone', 'Europe/Madrid');

$cal = IntlCalendar::createInstance();
echo "No arguments\n";
var_dump(get_class($cal),
        IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));
echo "\n";

echo "Explicit timezone\n";
$cal = IntlCalendar::createInstance(IntlTimeZone::getGMT());
var_dump(get_class($cal),
        IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));
echo "\n";

echo "Explicit locale (with calendar)\n";
$cal = IntlCalendar::createInstance(NULL, 'es_ES@calendar=persian');
var_dump(get_class($cal),
        IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));

Результат выполнения данного примера:

No arguments
string(21) "IntlGregorianCalendar"
string(68) "martes 18 de junio de 2013 14:11:02 Hora de verano de Europa Central"

Explicit timezone
string(21) "IntlGregorianCalendar"
string(45) "martes 18 de junio de 2013 12:11:02 GMT+00:00"

Explicit locale (with calendar)
string(12) "IntlCalendar"
string(70) "martes 28 de Khordad de 1392 14:11:02 Hora de verano de Europa Central"

Смотрите также

  • IntlGregorianCalendar::__construct() - Create the Gregorian Calendar class


Compare time of two IntlCalendar objects for equality

  • « IntlCalendar::createInstance
  • IntlCalendar::fieldDifference »
  • PHP Manual
  • IntlCalendar
  • Compare time of two IntlCalendar objects for equality

IntlCalendar::equals

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::equals — Compare time of two IntlCalendar objects for equality

Описание

Объектно-ориентированный стиль

public IntlCalendar::equals ( IntlCalendar $other ) : bool

Процедурный стиль

intlcal_equals ( IntlCalendar $cal , IntlCalendar $other ) : bool

Returns true if this calendar and the given calendar have the same time. The settings, calendar types and field states do not have to be the same.

Список параметров

cal

The IntlCalendar resource.

other

The calendar to compare with the primary object.

Возвращаемые значения

Returns TRUE if the current time of both this and the passed in IntlCalendar object are the same, or FALSE otherwise. The value FALSE can also be returned on failure. This can only happen if bad arguments are passed in. In any case, the two cases can be distinguished by calling intl_get_error_code().

Примеры

Пример #1 IntlCalendar::equals()

<?php
ini_set('date.timezone', 'UTC');

$cal1 = IntlCalendar::createInstance(NULL, 'es_ES');
$cal2 = clone $cal1;

var_dump($cal1->equals($cal2)); //TRUE

//The locale is not included in the comparison
$cal2 = IntlCalendar::createInstance(NULL, 'pt_PT');
$cal2->setTime($cal1->getTime());
var_dump($cal1->equals($cal2)); //TRUE

//And set fields state is not included as well
$cal2->clear(IntlCalendar::FIELD_YEAR);
var_dump($cal1->isSet(IntlCalendar::FIELD_YEAR) ==
        $cal2->isSet(IntlCalendar::FIELD_YEAR)); //FALSE
var_dump($cal1->equals($cal2)); //TRUE

//Neither is the calendar type
$cal2 = IntlCalendar::createInstance(NULL, 'es_ES@calendar=islamic');
$cal2->setTime($cal1->getTime());
var_dump($cal1->equals($cal2)); //TRUE

//Only the time is
$cal2 = clone $cal1;
$cal2->setTime($cal1->getTime() + 1.);
var_dump($cal1->equals($cal2)); //FALSE


Calculate difference between given time and this object?s time

  • « IntlCalendar::equals
  • IntlCalendar::fromDateTime »
  • PHP Manual
  • IntlCalendar
  • Calculate difference between given time and this object?s time

IntlCalendar::fieldDifference

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::fieldDifference — Calculate difference between given time and this object?s time

Описание

Объектно-ориентированный стиль

public IntlCalendar::fieldDifference ( float $when , int $field ) : int

Процедурный стиль

intlcal_field_difference ( IntlCalendar $cal , float $when , int $field ) : int

Return the difference between the given time and the time this object is set to, with respect to the quantity specified the field parameter.

This method is meant to be called successively, first with the most significant field of interest down to the least significant field. To this end, as a side effect, this calendar?s value for the field specified is advanced by the amount returned.

Список параметров

cal

The IntlCalendar resource.

when

The time against which to compare the quantity represented by the field. For the result to be positive, the time given for this parameter must be ahead of the time of the object the method is being invoked on.

field

The field that represents the quantity being compared.

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

Returns a (signed) difference of time in the unit associated with the specified field или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlCalendar::fieldDifference()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'fr_FR');

$cal1 = IntlCalendar::fromDateTime('2012-02-29 09:00:11');
$cal2 = IntlCalendar::fromDateTime('2013-03-01 09:19:29');
$time = $cal2->getTime();

echo "Time before: ", IntlDateFormatter::formatObject($cal1), "\n";

printf(
    "The difference in time is %d year(s), %d month(s), "
  . "%d day(s), %d hour(s) and %d minute(s)\n",
    $cal1->fieldDifference($time, IntlCalendar::FIELD_YEAR),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_MONTH),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_DAY_OF_MONTH),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_HOUR_OF_DAY),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_MINUTE)
);

//now it was advanced to the target time, exception for the seconds,
//for which we did not measure the difference
echo "Time after: ", IntlDateFormatter::formatObject($cal1), "\n";

Результат выполнения данного примера:

Time before: 29 fevr. 2012 09:00:11
The difference in time is 1 year(s), 0 month(s), 1 day(s), 0 hour(s) and 19 minute(s)
Time after: 1 mars 2013 09:19:11


Create an IntlCalendar from a DateTime object or string

  • « IntlCalendar::fieldDifference
  • IntlCalendar::get »
  • PHP Manual
  • IntlCalendar
  • Create an IntlCalendar from a DateTime object or string

IntlCalendar::fromDateTime

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a2)

IntlCalendar::fromDateTime — Create an IntlCalendar from a DateTime object or string

Описание

Объектно-ориентированный стиль

public static IntlCalendar::fromDateTime ( mixed $dateTime ) : IntlCalendar

Процедурный стиль

intlcal_from_date_time ( mixed $dateTime ) : IntlCalendar

Creates an IntlCalendar object either from a DateTime object or from a string from which a DateTime object can be built.

The new calendar will represent not only the same instant as the given DateTime (subject to precision loss for dates very far into the past or future), but also the same timezone (subject to the caveat that different timezone databases will be used, and therefore the results may differ).

Список параметров

dateTime

A DateTime object or a string that can be passed to DateTime::__construct().

Возвращаемые значения

The created IntlCalendar object or NULL in case of failure. If a string is passed, any exception that occurs inside the DateTime constructor is propagated.

Примеры

Пример #1 IntlCalendar::fromDateTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');

//same as IntlCalendar::fromDateTime(new DateTime(...))
$cal1 = IntlCalendar::fromDateTime('2013-02-28 00:01:02 Europe/Berlin');

//Note the timezone is Europe/Berlin, not the default Europe/Lisbon
echo IntlDateFormatter::formatObject($cal1, 'yyyy MMMM d HH:mm:ss VVVV', 'de_DE'), "\n";

Результат выполнения данного примера:

2013 Februar 28 00:01:02 Deutschland Zeit


Get the value for a field

  • « IntlCalendar::fromDateTime
  • IntlCalendar::getActualMaximum »
  • PHP Manual
  • IntlCalendar
  • Get the value for a field

IntlCalendar::get

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::get — Get the value for a field

Описание

Объектно-ориентированный стиль

public IntlCalendar::get ( int $field ) : int

Процедурный стиль

intlcal_get ( IntlCalendar $cal , int $field ) : int

Gets the value for a specific field.

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

An integer with the value of the time field.

Примеры

Пример #1 IntlCalendar::get()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$class = new ReflectionClass('IntlCalendar');
$fields = array();
foreach ($class->getConstants() as $name => $val) {
    if (strpos($name, 'FIELD_') !== 0 || $val > 22)
        continue;
    $fields[$val] = $name;
}

$cal = IntlCalendar::createInstance(); // current time
var_dump(IntlDateFormatter::formatObject($cal));
foreach ($fields as $val => $name) {
    echo "$val ($name)", "\n    ", $cal->get($val), "\n";
}

Результат выполнения данного примера:

string(23) "Jul 1, 2013, 4:44:44 AM"
0 (FIELD_ERA)
    1
1 (FIELD_YEAR)
    2013
2 (FIELD_MONTH)
    6
3 (FIELD_WEEK_OF_YEAR)
    27
4 (FIELD_WEEK_OF_MONTH)
    1
5 (FIELD_DAY_OF_MONTH)
    1
6 (FIELD_DAY_OF_YEAR)
    182
7 (FIELD_DAY_OF_WEEK)
    2
8 (FIELD_DAY_OF_WEEK_IN_MONTH)
    1
9 (FIELD_AM_PM)
    0
10 (FIELD_HOUR)
    4
11 (FIELD_HOUR_OF_DAY)
    4
12 (FIELD_MINUTE)
    44
13 (FIELD_SECOND)
    44
14 (FIELD_MILLISECOND)
    551
15 (FIELD_ZONE_OFFSET)
    0
16 (FIELD_DST_OFFSET)
    3600000
17 (FIELD_YEAR_WOY)
    2013
18 (FIELD_DOW_LOCAL)
    2
19 (FIELD_EXTENDED_YEAR)
    2013
20 (FIELD_JULIAN_DAY)
    2456475
21 (FIELD_MILLISECONDS_IN_DAY)
    17084551
22 (FIELD_IS_LEAP_MONTH)
    0


The maximum value for a field, considering the object?s current time

  • « IntlCalendar::get
  • IntlCalendar::getActualMinimum »
  • PHP Manual
  • IntlCalendar
  • The maximum value for a field, considering the object?s current time

IntlCalendar::getActualMaximum

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getActualMaximum — The maximum value for a field, considering the object?s current time

Описание

Объектно-ориентированный стиль

public IntlCalendar::getActualMaximum ( int $field ) : int

Процедурный стиль

intlcal_get_actual_maximum ( IntlCalendar $cal , int $field ) : int

Returns a field?s relative maximum value around the current time. The exact semantics vary by field, but in the general case this is the value that would be obtained if one would set the field value into the smallest relative maximum for the field and would increment it until reaching the global maximum or the field value wraps around, in which the value returned would be the global maximum or the value before the wrapping, respectively.

For instance, in the gregorian calendar, the actual maximum value for the day of month would vary between 28 and 31, depending on the month and year of the current time.

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

An int representing the maximum value in the units associated with the given field или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlCalendar::getActualMaximum()

<?php
ini_set('date.timezone', 'Europe/Lisbon');

$cal = IntlCalendar::fromDateTime('2013-02-15');
var_dump($cal->getActualMaximum(IntlCalendar::FIELD_DAY_OF_MONTH)); //28

$cal->add(IntlCalendar::FIELD_EXTENDED_YEAR, -1);
var_dump($cal->getActualMaximum(IntlCalendar::FIELD_DAY_OF_MONTH)); //29

Результат выполнения данного примера:

int(28)
int(29)

Смотрите также

  • IntlCalendar::getMaximum() - Get the global maximum value for a field
  • IntlCalendar::getLeastMaximum() - Get the smallest local maximum for a field
  • IntlCalendar::getActualMinimum() - The minimum value for a field, considering the object?s current time


The minimum value for a field, considering the object?s current time

  • « IntlCalendar::getActualMaximum
  • IntlCalendar::getAvailableLocales »
  • PHP Manual
  • IntlCalendar
  • The minimum value for a field, considering the object?s current time

IntlCalendar::getActualMinimum

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getActualMinimum — The minimum value for a field, considering the object?s current time

Описание

Объектно-ориентированный стиль

public IntlCalendar::getActualMinimum ( int $field ) : int

Процедурный стиль

intlcal_get_actual_minimum ( IntlCalendar $cal , int $field ) : int

Returns a field?s relative minimum value around the current time. The exact semantics vary by field, but in the general case this is the value that would be obtained if one would set the field value into the greatest relative minimum for the field and would decrement it until reaching the global minimum or the field value wraps around, in which the value returned would be the global minimum or the value before the wrapping, respectively.

For the Gregorian calendar, this is always the same as IntlCalendar::getMinimum().

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

An int representing the minimum value in the field?s unit или FALSE в случае возникновения ошибки.

Смотрите также

  • IntlCalendar::getMinimum() - Get the global minimum value for a field
  • IntlCalendar::getGreatestMinimum() - Get the largest local minimum value for a field
  • IntlCalendar::getActualMaximum() - The maximum value for a field, considering the object?s current time


Get array of locales for which there is data

  • « IntlCalendar::getActualMinimum
  • IntlCalendar::getDayOfWeekType »
  • PHP Manual
  • IntlCalendar
  • Get array of locales for which there is data

IntlCalendar::getAvailableLocales

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getAvailableLocales — Get array of locales for which there is data

Описание

Объектно-ориентированный стиль

public static IntlCalendar::getAvailableLocales ( void ) : array

Процедурный стиль

intlcal_get_available_locales ( void ) : array

Gives the list of locales for which calendars are installed. As of ICU 51, this is the list of all installed ICU locales.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An array of strings, one for which locale.

Примеры

Пример #1 IntlCalendar::getAvailableLocales()

<?php
print_r(IntlCalendar::getAvailableLocales());

Результат выполнения данного примера:

Array
(
    [0] => af
    [1] => af_NA
    [2] => af_ZA
    [3] => agq
    [4] => agq_CM
    [5] => ak
    [6] => ak_GH
    [7] => am
    [8] => am_ET
    [9] => ar
    [10] => ar_001
    [11] => ar_AE
    [12] => ar_BH
    [13] => ar_DJ
    ... output abbreviated ...
    [595] => zh_Hant_HK
    [596] => zh_Hant_MO
    [597] => zh_Hant_TW
    [598] => zu
    [599] => zu_ZA
)


Tell whether a day is a weekday, weekend or a day that has a transition between the two

  • « IntlCalendar::getAvailableLocales
  • IntlCalendar::getErrorCode »
  • PHP Manual
  • IntlCalendar
  • Tell whether a day is a weekday, weekend or a day that has a transition between the two

IntlCalendar::getDayOfWeekType

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getDayOfWeekType — Tell whether a day is a weekday, weekend or a day that has a transition between the two

Описание

Объектно-ориентированный стиль

public IntlCalendar::getDayOfWeekType ( int $dayOfWeek ) : int

Процедурный стиль

intlcal_get_day_of_week_type ( IntlCalendar $cal , int $dayOfWeek ) : int

Returns whether the passed day is a weekday (IntlCalendar::DOW_TYPE_WEEKDAY), a weekend day (IntlCalendar::DOW_TYPE_WEEKEND), a day during which a transition occurs into the weekend (IntlCalendar::DOW_TYPE_WEEKEND_OFFSET) or a day during which the weekend ceases (IntlCalendar::DOW_TYPE_WEEKEND_CEASE).

If the return is either
IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or
IntlCalendar::DOW_TYPE_WEEKEND_CEASE, then
IntlCalendar::getWeekendTransition() can be called to
obtain the time of the transition.

This function requires ICU 4.4 or later.

Список параметров

cal

The IntlCalendar resource.

dayOfWeek

One of the constants IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, ...,
IntlCalendar::DOW_SATURDAY.

Возвращаемые значения

Returns one of the constants
IntlCalendar::DOW_TYPE_WEEKDAY,
IntlCalendar::DOW_TYPE_WEEKEND,
IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or
IntlCalendar::DOW_TYPE_WEEKEND_CEASE или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlCalendar::getDayOfWeekType()

<?php

foreach (array('en_US', 'ar_SA') as $locale) {
    echo "Locale: ", Locale::getDisplayName($locale, "en_US"), "\n";

    $cal = IntlCalendar::createInstance('UTC', $locale);

    for ($i = IntlCalendar::DOW_SUNDAY; $i <= IntlCalendar::DOW_SATURDAY; $i++) {
        echo $i, " ", $cal->getDayOfWeekType($i), " ",
                $cal->getDayOfWeekType($i) >= IntlCalendar::DOW_TYPE_WEEKEND_OFFSET
                        ? $cal->getWeekendTransition($i)
                        : '',
                "\n";
    }
    echo "\n";
}

Результат выполнения данного примера:

Locale: English (United States)
1 3 86400000
2 0
3 0
4 0
5 0
6 0
7 1

Locale: Arabic (Saudi Arabia)
1 0
2 0
3 0
4 0
5 1
6 3 86400000
7 0


Get last error code on the object

  • « IntlCalendar::getDayOfWeekType
  • IntlCalendar::getErrorMessage »
  • PHP Manual
  • IntlCalendar
  • Get last error code on the object

IntlCalendar::getErrorCode

intlcal_get_error_code

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getErrorCode -- intlcal_get_error_code — Get last error code on the object

Описание

Объектно-ориентированный стиль (method):

public IntlCalendar::getErrorCode ( void ) : int

Процедурный стиль:

intlcal_get_error_code ( IntlCalendar $calendar ) : int

Returns the numeric ICU error code for the last call on this object (including cloning) or the IntlCalendar given for the calendar parameter (in the procedural?style version). This may indicate only a warning (negative error code) or no error at all (U_ZERO_ERROR). The actual presence of an error can be tested with intl_is_failure().

Invalid arguments detected on the PHP side (before invoking functions of the ICU library) are not recorded for the purposes of this function.

The last error that occurred in any call to a function of the intl extension, including early argument errors, can be obtained with intl_get_error_code(). This function resets the global error code, but not the object?s error code.

Список параметров

calendar

The calendar object, on the procedural style interface.

Возвращаемые значения

An ICU error code indicating either success, failure or a warning.

Примеры

Пример #1 IntlCalendar::getErrorCode() and IntlCalendar::getErrorMessage()

<?php
ini_set("intl.error_level", E_WARNING);
ini_set("intl.default_locale", "nl");

$intlcal = new IntlGregorianCalendar(2012, 1, 29);
var_dump(
    $intlcal->getErrorCode(),
    $intlcal->getErrorMessage()
);
$intlcal->fieldDifference(-1e100, IntlCalendar::FIELD_SECOND);

var_dump(
    $intlcal->getErrorCode(),
    $intlcal->getErrorMessage()
);

Результат выполнения данного примера:

int(0)
string(12) "U_ZERO_ERROR"

Warning: IntlCalendar::fieldDifference(): intlcal_field_difference: Call to ICU method has failed in /home/glopes/php/ws/example.php on line 10
int(1)
string(81) "intlcal_field_difference: Call to ICU method has failed: U_ILLEGAL_ARGUMENT_ERROR"

Смотрите также

  • IntlCalendar::getErrorMessage() - Get last error message on the object
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя
  • intl_error_name() - Получить имя ошибки по ее коду
  • intl_get_error_code() - Получить код последней ошибки
  • intl_get_error_message() - Получить описание ошибки


Get last error message on the object

  • « IntlCalendar::getErrorCode
  • IntlCalendar::getFirstDayOfWeek »
  • PHP Manual
  • IntlCalendar
  • Get last error message on the object

IntlCalendar::getErrorMessage

intlcal_get_error_message

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getErrorMessage -- intlcal_get_error_message — Get last error message on the object

Описание

Объектно-ориентированный стиль (method):

public IntlCalendar::getErrorMessage ( void ) : string

Процедурный стиль:

intlcal_get_error_message ( IntlCalendar $calendar ) : string

Returns the error message (if any) associated with the error reported by IntlCalendar::getErrorCode() or intlcal_get_error_code(). If there is no associated error message, only the string representation of the name of the error constant will be returned. Otherwise, the message also includes a message set on the side of the PHP binding.

Список параметров

calendar

The calendar object, on the procedural style interface.

Возвращаемые значения

The error message associated with last error that occurred in a function call on this object, or a string indicating the non-existance of an error.

Примеры

Пример #1 IntlCalendar::getErrorMessage()

<?php
$cal = IntlCalendar::createInstance('UTC', 'en_US');
var_dump($cal->getErrorMessage());

$cal->getWeekendTransition(IntlCalendar::DOW_WEDNESDAY);
var_dump($cal->getErrorMessage());

Результат выполнения данного примера:

string(12) "U_ZERO_ERROR"
string(82) "intlcal_get_weekend_transition: Error calling ICU method: U_ILLEGAL_ARGUMENT_ERROR"


Get the first day of the week for the calendar?s locale

  • « IntlCalendar::getErrorMessage
  • IntlCalendar::getGreatestMinimum »
  • PHP Manual
  • IntlCalendar
  • Get the first day of the week for the calendar?s locale

IntlCalendar::getFirstDayOfWeek

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getFirstDayOfWeek — Get the first day of the week for the calendar?s locale

Описание

Объектно-ориентированный стиль

public IntlCalendar::getFirstDayOfWeek ( void ) : int

Процедурный стиль

intlcal_get_first_day_of_week ( IntlCalendar $cal ) : int

The week day deemed to start a week, either the default value for this locale or the value set with IntlCalendar::setFirstDayOfWeek().

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

One of the constants IntlCalendar::DOW_SUNDAY, IntlCalendar::DOW_MONDAY, ..., IntlCalendar::DOW_SATURDAY или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlCalendar::getFirstDayOfWeek()

<?php
ini_set('date.timezone', 'UTC');

$cal1 = IntlCalendar::createInstance(NULL, 'es_ES');
var_dump($cal1->getFirstDayOfWeek()); // Monday
$cal1->set(2013, 1 /* February */, 3); // a Sunday
var_dump($cal1->get(IntlCalendar::FIELD_WEEK_OF_YEAR)); // 5

$cal2 = IntlCalendar::createInstance(NULL, 'en_US');
var_dump($cal2->getFirstDayOfWeek()); // Sunday
$cal2->set(2013, 1 /* February */, 3); // a Sunday
var_dump($cal2->get(IntlCalendar::FIELD_WEEK_OF_YEAR)); // 6

Результат выполнения данного примера:

int(2)
int(5)
int(1)
int(6)

Смотрите также

  • IntlCalendar::setFirstDayOfWeek() - Set the day on which the week is deemed to start


Get the largest local minimum value for a field

  • « IntlCalendar::getFirstDayOfWeek
  • IntlCalendar::getKeywordValuesForLocale »
  • PHP Manual
  • IntlCalendar
  • Get the largest local minimum value for a field

IntlCalendar::getGreatestMinimum

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getGreatestMinimum — Get the largest local minimum value for a field

Описание

Объектно-ориентированный стиль

public IntlCalendar::getGreatestMinimum ( int $field ) : int

Процедурный стиль

intlcal_get_greatest_minimum ( IntlCalendar $cal , int $field ) : int

Returns the largest local minimum for a field. This should be a value larger or equal to that returned by IntlCalendar::getActualMinimum(), which is in its turn larger or equal to that returned by IntlCalendar::getMinimum(). All these three functions return the same value for the Gregorian calendar.

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

An int representing a field value, in the field?s unit, или FALSE в случае возникновения ошибки.


Get set of locale keyword values

  • « IntlCalendar::getGreatestMinimum
  • IntlCalendar::getLeastMaximum »
  • PHP Manual
  • IntlCalendar
  • Get set of locale keyword values

IntlCalendar::getKeywordValuesForLocale

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getKeywordValuesForLocale — Get set of locale keyword values

Описание

Объектно-ориентированный стиль

public static IntlCalendar::getKeywordValuesForLocale ( string $key , string $locale , bool $commonlyUsed ) : Iterator

Процедурный стиль

intlcal_get_keyword_values_for_locale ( string $key , string $locale , bool $commonlyUsed ) : Iterator

For a given locale key, get the set of values for that key that would result in a different behavior. For now, only the 'calendar' keyword is supported.

This function requires ICU 4.2 or later.

Список параметров

key

The locale keyword for which relevant values are to be queried. Only 'calendar' is supported.

locale

The locale onto which the keyword/value pair are to be appended.

commonlyUsed

Whether to show only the values commonly used for the specified locale.

Возвращаемые значения

An iterator that yields strings with the locale keyword values или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlCalendar::getKeyworkValuesForLocale()

<?php
print_r(
        iterator_to_array(
                IntlCalendar::getKeywordValuesForLocale(
                        'calendar', 'fa_IR', true)));
print_r(
        iterator_to_array(
                IntlCalendar::getKeywordValuesForLocale(
                        'calendar', 'fa_IR', false)));

Результат выполнения данного примера:

Array
(
    [0] => persian
    [1] => gregorian
    [2] => islamic
    [3] => islamic-civil
)
Array
(
    [0] => persian
    [1] => gregorian
    [2] => islamic
    [3] => islamic-civil
    [4] => japanese
    [5] => buddhist
    [6] => roc
    [7] => hebrew
    [8] => chinese
    [9] => indian
    [10] => coptic
    [11] => ethiopic
    [12] => ethiopic-amete-alem
)


Get the smallest local maximum for a field

  • « IntlCalendar::getKeywordValuesForLocale
  • IntlCalendar::getLocale »
  • PHP Manual
  • IntlCalendar
  • Get the smallest local maximum for a field

IntlCalendar::getLeastMaximum

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getLeastMaximum — Get the smallest local maximum for a field

Описание

Объектно-ориентированный стиль

public IntlCalendar::getLeastMaximum ( int $field ) : int

Процедурный стиль

intlcal_get_least_maximum ( IntlCalendar $cal , int $field ) : int

Returns the smallest local maximumw for a field. This should be a value smaller or equal to that returned by IntlCalendar::getActualMaxmimum(), which is in its turn smaller or equal to that returned by IntlCalendar::getMaximum().

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

An int representing a field value in the field?s unit или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Maxima examples

<?php
ini_set('date.timezone', 'UTC');
ini_set('intl.default_locale', 'it_IT');

$cal = new IntlGregorianCalendar(2013, 3 /* April */, 6);
var_dump(
    $cal->getLeastMaximum(IntlCalendar::FIELD_DAY_OF_MONTH),  // 28
    $cal->getActualMaximum(IntlCalendar::FIELD_DAY_OF_MONTH), // 30
    $cal->getMaximum(IntlCalendar::FIELD_DAY_OF_MONTH)        // 31
);

Результат выполнения данного примера:

int(28)
int(30)
int(31)

Смотрите также

  • IntlCalendar::getActualMaximum() - The maximum value for a field, considering the object?s current time
  • IntlCalendar::getMaximum() - Get the global maximum value for a field
  • IntlCalendar::getGreatestMinimum() - Get the largest local minimum value for a field


Get the locale associated with the object

  • « IntlCalendar::getLeastMaximum
  • IntlCalendar::getMaximum »
  • PHP Manual
  • IntlCalendar
  • Get the locale associated with the object

IntlCalendar::getLocale

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getLocale — Get the locale associated with the object

Описание

Объектно-ориентированный стиль

public IntlCalendar::getLocale ( int $localeType ) : string

Процедурный стиль

intlcal_get_locale ( IntlCalendar $cal , int $localeType ) : string

Returns the locale used by this calendar object.

Список параметров

cal

The IntlCalendar resource.

localeType

Whether to fetch the actual locale (the locale from which the calendar data originates, with Locale::ACTUAL_LOCALE) or the valid locale, i.e., the most specific locale supported by ICU relatively to the requested locale - see Locale::VALID_LOCALE. From the most general to the most specific, the locales are ordered in this fashion - actual locale, valid locale, requested locale.

Возвращаемые значения

A locale string или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlCalendar::getLocale()

<?php
$cal = IntlCalendar::createInstance(IntlTimeZone::getGMT(), 'en_US_CALIFORNIA');
var_dump(
    $cal->getLocale(Locale::ACTUAL_LOCALE),
    $cal->getLocale(Locale::VALID_LOCALE)
);

Результат выполнения данного примера:

string(2) "en"
string(5) "en_US"


Get the global maximum value for a field

  • « IntlCalendar::getLocale
  • IntlCalendar::getMinimalDaysInFirstWeek »
  • PHP Manual
  • IntlCalendar
  • Get the global maximum value for a field

IntlCalendar::getMaximum

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getMaximum — Get the global maximum value for a field

Описание

Объектно-ориентированный стиль

public IntlCalendar::getMaximum ( int $field ) : int

Процедурный стиль

intlcal_get_maximum ( IntlCalendar $cal , int $field ) : int

Gets the global maximum for a field, in this specific calendar. This value is larger or equal to that returned by IntlCalendar::getActualMaximum(), which is in its turn larger or equal to that returned by IntlCalendar::getLeastMaximum().

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

An int representing a field value in the field?s unit или FALSE в случае возникновения ошибки.

Смотрите также

  • IntlCalendar::getActualMaximum() - The maximum value for a field, considering the object?s current time
  • IntlCalendar::getLeastMaximum() - Get the smallest local maximum for a field
  • IntlCalendar::getMinimum() - Get the global minimum value for a field


Get minimal number of days the first week in a year or month can have

  • « IntlCalendar::getMaximum
  • IntlCalendar::getMinimum »
  • PHP Manual
  • IntlCalendar
  • Get minimal number of days the first week in a year or month can have

IntlCalendar::getMinimalDaysInFirstWeek

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getMinimalDaysInFirstWeek — Get minimal number of days the first week in a year or month can have

Описание

Объектно-ориентированный стиль

public IntlCalendar::getMinimalDaysInFirstWeek ( void ) : int

Процедурный стиль

intlcal_get_minimal_days_in_first_week ( IntlCalendar $cal ) : int

Returns the smallest number of days the first week of a year or month must have in the new year or month. For instance, in the Gregorian calendar, if this value is 1, then the first week of the year will necessarily include January 1st, while if this value is 7, then the week with January 1st will be the first week of the year only if the day of the week for January 1st matches the day of the week returned by IntlCalendar::getFirstDayOfWeek(); otherwise it will be the previous year?s last week.

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

An int representing a number of days или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlCalendar::getMinimalDaysInFirstWeek()

<?php
ini_set('date.timezone', 'UTC');
ini_set('intl.default_locale', 'en_US');

$cal = new IntlGregorianCalendar(2013, 0 /* January */, 2);
var_dump(IntlDateFormatter::formatObject($cal, 'cccc')); // Wednesday

var_dump($cal->getMinimalDaysInFirstWeek(), // 1
$cal->getFirstDayofWeek()); // 1 (Sunday)

// Week 1 of 2013
var_dump(IntlDateFormatter::formatObject($cal, "'Week 'w' of 'Y"));

$cal->setMinimalDaysInFirstWeek(4);
// Still Week 1 of 2013 (1st week has 5 days in the new year)
var_dump(IntlDateFormatter::formatObject($cal, "'Week 'w' of 'Y"));

$cal->setMinimalDaysInFirstWeek(6);
// Week 53 of 2012
var_dump(IntlDateFormatter::formatObject($cal, "'Week 'w' of 'Y"));

Результат выполнения данного примера:

string(9) "Wednesday"
int(1)
int(1)
string(14) "Week 1 of 2013"
string(14) "Week 1 of 2013"
string(15) "Week 53 of 2012"


Get the global minimum value for a field

  • « IntlCalendar::getMinimalDaysInFirstWeek
  • IntlCalendar::getNow »
  • PHP Manual
  • IntlCalendar
  • Get the global minimum value for a field

IntlCalendar::getMinimum

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getMinimum — Get the global minimum value for a field

Описание

Объектно-ориентированный стиль

public IntlCalendar::getMinimum ( int $field ) : int

Процедурный стиль

intlcal_get_minimum ( IntlCalendar $cal , int $field ) : int

Gets the global minimum for a field, in this specific calendar. This value is smaller or equal to that returned by IntlCalendar::getActualMinimum(), which is in its turn smaller or equal to that returned by IntlCalendar::getGreatestMinimum(). For the Gregorian calendar, these three functions always return the same value (for each field).

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

An int representing a value for the given field in the field?s unit или FALSE в случае возникновения ошибки.


Get number representing the current time

  • « IntlCalendar::getMinimum
  • IntlCalendar::getRepeatedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Get number representing the current time

IntlCalendar::getNow

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getNow — Get number representing the current time

Описание

Объектно-ориентированный стиль

public static IntlCalendar::getNow ( void ) : float

Процедурный стиль

intlcal_get_now ( void ) : float

The number of milliseconds that have passed since the reference date. This number is derived from the system time.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A float representing a number of milliseconds since the epoch, not counting leap seconds.

Примеры

Пример #1 IntlCalendar::getNow()

<?php
$formatter = IntlDateFormatter::create('es_ES',
        IntlDateFormatter::FULL,
        IntlDateFormatter::FULL,
        'Europe/Madrid');

$val = IntlCalendar::getNow();

var_dump($val);
echo $formatter->format(IntlCalendar::getNow() / 1000.), "\n";

Результат выполнения данного примера:

float(1371425814666)
lunes, 17 de junio de 2013 01:36:54 Hora de verano de Europa central


Get behavior for handling repeating wall time

  • « IntlCalendar::getNow
  • IntlCalendar::getSkippedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Get behavior for handling repeating wall time

IntlCalendar::getRepeatedWallTimeOption

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getRepeatedWallTimeOption — Get behavior for handling repeating wall time

Описание

Объектно-ориентированный стиль

public IntlCalendar::getRepeatedWallTimeOption ( void ) : int

Процедурный стиль

intlcal_get_repeated_wall_time_option ( IntlCalendar $cal ) : int

Gets the current strategy for dealing with wall times that are repeated whenever the clock is set back during dailight saving time end transitions. The default value is IntlCalendar::WALLTIME_LAST.

This function requires ICU 4.9 or later.

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

One of the constants IntlCalendar::WALLTIME_FIRST or IntlCalendar::WALLTIME_LAST.

Примеры

Пример #1 IntlCalendar::getRepeatedWallTimeOption()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');
ini_set('intl.error_level', E_WARNING);

//On October 27th at 0200, the clock goes back 1 hour and from GMT+01 to GMT+00
$cal = new IntlGregorianCalendar(2013, 9 /* October */, 27, 1, 30);

var_dump($cal->getRepeatedWalltimeOption()); // 0 WALLTIME_LAST

$formatter = IntlDateFormatter::create(
    NULL,
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'UTC'
);
var_dump($formatter->format($cal->getTime() / 1000.));

$cal->setRepeatedWalltimeOption(IntlCalendar::WALLTIME_FIRST);
var_dump($cal->getRepeatedWalltimeOption()); // 1 WALLTIME_FIRST
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);

var_dump($formatter->format($cal->getTime() / 1000.));

Результат выполнения данного примера:

int(0)
string(42) "Sunday, October 27, 2013 at 1:30:00 AM GMT"
int(1)
string(43) "Sunday, October 27, 2013 at 12:30:00 AM GMT"

Смотрите также

  • IntlCalendar::getSkippedWallTimeOption() - Get behavior for handling skipped wall time
  • IntlCalendar::setSkippedWallTimeOption() - Set behavior for handling skipped wall times at positive timezone offset transitions
  • IntlCalendar::setRepeatedWallTimeOption() - Set behavior for handling repeating wall times at negative timezone offset transitions


Get behavior for handling skipped wall time

  • « IntlCalendar::getRepeatedWallTimeOption
  • IntlCalendar::getTime »
  • PHP Manual
  • IntlCalendar
  • Get behavior for handling skipped wall time

IntlCalendar::getSkippedWallTimeOption

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getSkippedWallTimeOption — Get behavior for handling skipped wall time

Описание

Объектно-ориентированный стиль

public IntlCalendar::getSkippedWallTimeOption ( void ) : int

Процедурный стиль

intlcal_get_skipped_wall_time_option ( IntlCalendar $cal ) : int

Gets the current strategy for dealing with wall times that are skipped whenever the clock is forwarded during dailight saving time start transitions. The default value is IntlCalendar::WALLTIME_LAST.

The calendar must be lenient for this option to have any effect, otherwise attempting to set a non-existing time will cause an error.

This function requires ICU 4.9 or later.

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

One of the constants IntlCalendar::WALLTIME_FIRST,
IntlCalendar::WALLTIME_LAST or
IntlCalendar::WALLTIME_NEXT_VALID.

Примеры

Пример #1 IntlCalendar::getSkippedWallTimeOption()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');
ini_set('intl.error_level', E_WARNING);

//On March 31st at 0100, the clock goes forward 1 hour and from GMT+00 to GMT+01
$cal = new IntlGregorianCalendar(2013, 2 /* March */, 31, 1, 30);

var_dump(
    $cal->isLenient(),               // true
    $cal->getSkippedWalltimeOption() // 0 WALLTIME_LAST
);

$formatter = IntlDateFormatter::create(
    NULL,
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'UTC'
);
var_dump($formatter->format($cal->getTime() / 1000));

$cal->setSkippedWallTimeOption(IntlCalendar::WALLTIME_FIRST);
var_dump($cal->getSkippedWalltimeOption()); // 1 WALLTIME_FIRST
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);

var_dump($formatter->format($cal->getTime() / 1000));

$cal->setSkippedWallTimeOption(IntlCalendar::WALLTIME_NEXT_VALID);
var_dump($cal->getSkippedWalltimeOption()); // 2 WALLTIME_NEXT_VALID
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);

var_dump($formatter->format($cal->getTime() / 1000));

Результат выполнения данного примера:

bool(true)
int(0)
string(40) "Sunday, March 31, 2013 at 1:30:00 AM GMT"
int(1)
string(41) "Sunday, March 31, 2013 at 12:30:00 AM GMT"
int(2)
string(40) "Sunday, March 31, 2013 at 1:00:00 AM GMT"

Смотрите также

  • IntlCalendar::getRepeatedWallTimeOption() - Get behavior for handling repeating wall time
  • IntlCalendar::setSkippedWallTimeOption() - Set behavior for handling skipped wall times at positive timezone offset transitions
  • IntlCalendar::setRepeatedWallTimeOption() - Set behavior for handling repeating wall times at negative timezone offset transitions


Get time currently represented by the object

  • « IntlCalendar::getSkippedWallTimeOption
  • IntlCalendar::getTimeZone »
  • PHP Manual
  • IntlCalendar
  • Get time currently represented by the object

IntlCalendar::getTime

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getTime — Get time currently represented by the object

Описание

Объектно-ориентированный стиль

public IntlCalendar::getTime ( void ) : float

Процедурный стиль

intlcal_get_time ( IntlCalendar $cal ) : float

Returns the time associated with this object, expressed as the number of milliseconds since the epoch.

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

A float representing the number of milliseconds elapsed since the reference time (1 Jan 1970 00:00:00 UTC).

Примеры

Пример #1 IntlCalendar::getTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$cal = new IntlGregorianCalendar(2013, 4 /* May */, 1, 0, 0, 0);
$time = $cal->getTime();
var_dump($time, $time / 1000 == strtotime('2013-05-01 00:00:00')); //true

Результат выполнения данного примера:

float(1367362800000)
bool(true)

Смотрите также

  • IntlCalendar::getNow() - Get number representing the current time


Get the object?s timezone

  • « IntlCalendar::getTime
  • IntlCalendar::getType »
  • PHP Manual
  • IntlCalendar
  • Get the object?s timezone

IntlCalendar::getTimeZone

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getTimeZone — Get the object?s timezone

Описание

Объектно-ориентированный стиль

public IntlCalendar::getTimeZone ( void ) : IntlTimeZone

Процедурный стиль

intlcal_get_time_zone ( IntlCalendar $cal ) : IntlTimeZone

Returns the IntlTimeZone object associated with this calendar.

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

An IntlTimeZone object corresponding to the one used internally in this object.

Примеры

Пример #1 IntlCalendar::getTimeZone()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$cal = IntlCalendar::createInstance();
print_r($cal->getTimeZone());

$cal->setTimeZone('UTC');
print_r($cal->getTimeZone());

$cal = IntlCalendar::fromDateTime('2012-01-01 00:00:00 GMT+03:33');
print_r($cal->getTimeZone());

Результат выполнения данного примера:

IntlTimeZone Object
(
    [valid] => 1
    [id] => Europe/Lisbon
    [rawOffset] => 0
    [currentOffset] => 3600000
)
IntlTimeZone Object
(
    [valid] => 1
    [id] => UTC
    [rawOffset] => 0
    [currentOffset] => 0
)
IntlTimeZone Object
(
    [valid] => 1
    [id] => GMT+03:33
    [rawOffset] => 12780000
    [currentOffset] => 12780000
)

Смотрите также

  • IntlCalendar::setTimeZone() - Set the timezone used by this calendar
  • IntlCalendar::createInstance() - Create a new IntlCalendar
  • IntlGregorianCalendar::__construct() - Create the Gregorian Calendar class


Get the calendar type

  • « IntlCalendar::getTimeZone
  • IntlCalendar::getWeekendTransition »
  • PHP Manual
  • IntlCalendar
  • Get the calendar type

IntlCalendar::getType

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getType — Get the calendar type

Описание

Объектно-ориентированный стиль

public IntlCalendar::getType ( void ) : string

Процедурный стиль

intlcal_get_type ( IntlCalendar $cal ) : string

A string describing the type of this calendar. This is one of the valid values for the calendar keyword value 'calendar'.

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

A string representing the calendar type, such as 'gregorian', 'islamic', etc.

Примеры

Пример #1 IntlCalendar::getType()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$cal = IntlCalendar::createInstance(NULL, '@calendar=ethiopic-amete-alem');
var_dump($cal->getType());

$cal = new IntlGregorianCalendar();
var_dump($cal->getType());

Результат выполнения данного примера:

string(19) "ethiopic-amete-alem"
string(9) "gregorian"


Get time of the day at which weekend begins or ends

  • « IntlCalendar::getType
  • IntlCalendar::inDaylightTime »
  • PHP Manual
  • IntlCalendar
  • Get time of the day at which weekend begins or ends

IntlCalendar::getWeekendTransition

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getWeekendTransition — Get time of the day at which weekend begins or ends

Описание

Объектно-ориентированный стиль

public IntlCalendar::getWeekendTransition ( string $dayOfWeek ) : int

Процедурный стиль

intlcal_get_weekend_transition ( IntlCalendar $cal , string $dayOfWeek ) : int

Returns the number of milliseconds after midnight at which the weekend begins or ends.

This is only applicable for days of the week for which
IntlCalendar::getDayOfWeekType() returns either
IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or
IntlCalendar::DOW_TYPE_WEEKEND_CEASE. Calling this
function for other days of the week is an error condition.

This function requires ICU 4.4 or later.

Список параметров

cal

The IntlCalendar resource.

dayOfWeek

One of the constants IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, ...,
IntlCalendar::DOW_SATURDAY.

Возвращаемые значения

The number of milliseconds into the day at which the weekend begins or ends или FALSE в случае возникновения ошибки.

Примеры

See example on IntlCalendar::getDayOfWeekType().


Whether the object?s time is in Daylight Savings Time

  • « IntlCalendar::getWeekendTransition
  • IntlCalendar::isEquivalentTo »
  • PHP Manual
  • IntlCalendar
  • Whether the object?s time is in Daylight Savings Time

IntlCalendar::inDaylightTime

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::inDaylightTime — Whether the object?s time is in Daylight Savings Time

Описание

Объектно-ориентированный стиль

public IntlCalendar::inDaylightTime ( void ) : bool

Процедурный стиль

intlcal_in_daylight_time ( IntlCalendar $cal ) : bool

Whether, for the instant represented by this object and for this object?s timezone, daylight saving time is in place.

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

Returns TRUE if the date is in Daylight Savings Time, FALSE otherwise. The value FALSE may also be returned on failure, for instance after specifying invalid field values on non-lenient mode; use exceptions or query intl_get_error_code() to disambiguate.

Примеры

Пример #1 IntlCalendar::inDaylightTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1, 4, 56, 31);
var_dump($cal->inDaylightTime()); // true
$cal->set(IntlCalendar::FIELD_MONTH, 11 /* December */);
var_dump($cal->inDaylightTime()); // false

//DST end transition on 2013-10-27 at 0200 (wall time back 1 hour)
$cal = new IntlGregorianCalendar(2013, 9 /* October */, 27, 1, 30, 0);

var_dump($cal->inDaylightTime()); // false (default WALLTIME_LAST)

$cal->setRepeatedWallTimeOption(IntlCalendar::WALLTIME_FIRST);
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1); // force time recalculation
var_dump($cal->inDaylightTime()); // true


Whether another calendar is equal but for a different time

  • « IntlCalendar::inDaylightTime
  • IntlCalendar::isLenient »
  • PHP Manual
  • IntlCalendar
  • Whether another calendar is equal but for a different time

IntlCalendar::isEquivalentTo

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::isEquivalentTo — Whether another calendar is equal but for a different time

Описание

Объектно-ориентированный стиль

public IntlCalendar::isEquivalentTo ( IntlCalendar $other ) : bool

Процедурный стиль

intlcal_is_equivalent_to ( IntlCalendar $cal , IntlCalendar $other ) : bool

Returns whether this and the given object are equivalent for all purposes except as to the time they have set. The locales do not have to match, as long as no change in behavior results from such mismatch. This includes the timezone, whether the lenient mode is set, the repeated and skipped wall time settings, the days of the week when the weekend starts and ceases and the times where such transitions occur. It may also include other calendar specific settings, such as the Gregorian/Julian transition instant.

Список параметров

cal

The IntlCalendar resource.

other

The other calendar against which the comparison is to be made.

Возвращаемые значения

Assuming there are no argument errors, returns TRUE iif the calendars are equivalent except possibly for their set time.

Примеры

Пример #1 IntlCalendar::isEquivalentTo()

<?php
$cal1 = IntlCalendar::createInstance('Europe/Lisbon', 'pt_PT');
$cal2 = IntlCalendar::createInstance('Europe/Lisbon', 'es_ES');
$cal2->clear();

var_dump($cal1->isEquivalentTo($cal2)); // true

$cal3 = IntlCalendar::createInstance('Europe/Lisbon', 'en_US');
var_dump($cal1->isEquivalentTo($cal3)); // false
var_dump($cal1->getFirstDayOfWeek(),    // 2 (Monday)
$cal3->getFirstDayOfWeek());            // 1 (Sunday)

Результат выполнения данного примера:

bool(true)
bool(false)
int(2)
int(1)

Смотрите также

  • IntlCalendar::equals() - Compare time of two IntlCalendar objects for equality


Whether date/time interpretation is in lenient mode

  • « IntlCalendar::isEquivalentTo
  • IntlCalendar::isSet »
  • PHP Manual
  • IntlCalendar
  • Whether date/time interpretation is in lenient mode

IntlCalendar::isLenient

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::isLenient — Whether date/time interpretation is in lenient mode

Описание

Объектно-ориентированный стиль

public IntlCalendar::isLenient ( void ) : bool

Процедурный стиль

intlcal_is_lenient ( IntlCalendar $cal ) : bool

Returns whether the current date/time interpretations is lenient (the default). If that is case, some out of range values for fields will be accepted instead of raising an error.

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

A bool representing whether the calendar is set to lenient mode.

Примеры

Пример #1 IntlCalendar::isLenient()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');
ini_set('intl.use_exceptions', '1');

$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
var_dump(IntlDateFormatter::formatObject($cal), // 01/07/2013, 00:00:00
$cal->isLenient()); // true

$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 33);
var_dump(IntlDateFormatter::formatObject($cal)); // 02/08/2013, 00:00:00

$cal->setLenient(false);
var_dump($cal->isLenient()); // false
$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 33);
var_dump(IntlDateFormatter::formatObject($cal)); // error

Результат выполнения данного примера:

string(20) "01/07/2013, 00:00:00"
bool(true)
string(20) "02/08/2013, 00:00:00"
bool(false)

Fatal error: Uncaught exception 'IntlException' with message 'datefmt_format_object: error obtaining instant from IntlCalendar' in /home/foobar/example.php:16
Stack trace:
#0 /home/foobar/example.php(16): IntlDateFormatter::formatObject(Object(IntlGregorianCalendar))
#1 {main}
  thrown in /home/foobar/example.php on line 16


Whether a field is set

  • « IntlCalendar::isLenient
  • IntlCalendar::isWeekend »
  • PHP Manual
  • IntlCalendar
  • Whether a field is set

IntlCalendar::isSet

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::isSet — Whether a field is set

Описание

Объектно-ориентированный стиль

public IntlCalendar::isSet ( int $field ) : bool

Процедурный стиль

intlcal_is_set ( IntlCalendar $cal , int $field ) : bool

Returns whether a field is set (as opposed to clear). Set fields take priority over unset fields and their default values when the date/time is being calculated. Fields set later take priority over fields set earlier.

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

Assuming there are no argument errors, returns TRUE iif the field is set.

Примеры

See the example on IntlCalendar::clear().

Смотрите также

  • IntlCalendar::clear() - Clear a field or all fields
  • IntlCalendar::set() - Set a time field or several common fields at once


Whether a certain date/time is in the weekend

  • « IntlCalendar::isSet
  • IntlCalendar::roll »
  • PHP Manual
  • IntlCalendar
  • Whether a certain date/time is in the weekend

IntlCalendar::isWeekend

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::isWeekend — Whether a certain date/time is in the weekend

Описание

Объектно-ориентированный стиль

public IntlCalendar::isWeekend ([ float $date = NULL ] ) : bool

Процедурный стиль

intlcal_is_weekend ( IntlCalendar $cal [, float $date = NULL ] ) : bool

Returns whether either the obejct?s current time or the provided timestamp occur during a weekend in this object?s calendar system.

This function requires ICU 4.4 or later.

Список параметров

cal

The IntlCalendar resource.

date

An optional timestamp representing the number of milliseconds since the epoch, excluding leap seconds. If NULL, this object?s current time is used instead.

Возвращаемые значения

A bool indicating whether the given or this object?s time occurs in a weekend.

The value FALSE may also be returned on failure, for instance after giving a date out of bounds on non-lenient mode; use exceptions or query intl_get_error_code() to disambiguate.

Примеры

Пример #1 IntlCalendar::isWeekend()

<?php
ini_set('date.timezone', 'Europe/Lisbon');

$cal = new IntlGregorianCalendar(NULL, 'en_US');
$cal->set(2013, 6 /* July */, 7); // a Sunday

var_dump($cal->isWeekend()); // true
var_dump($cal->isWeekend(strtotime('2013-07-01 00:00:00'))); // false, Monday

$cal = new IntlGregorianCalendar(NULL, 'ar_SA');
$cal->set(2013, 6 /* July */, 7); // a Sunday
var_dump($cal->isWeekend()); // false, Sunday not in weekend in this calendar

Смотрите также

  • IntlCalendar::getDayOfWeekType() - Tell whether a day is a weekday, weekend or a day that has a transition between the two
  • IntlCalendar::getWeekendTransition() - Get time of the day at which weekend begins or ends


Add value to field without carrying into more significant fields

  • « IntlCalendar::isWeekend
  • IntlCalendar::set »
  • PHP Manual
  • IntlCalendar
  • Add value to field without carrying into more significant fields

IntlCalendar::roll

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::roll — Add value to field without carrying into more significant fields

Описание

Объектно-ориентированный стиль

public IntlCalendar::roll ( int $field , mixed $amountOrUpOrDown ) : bool

Процедурный стиль

intlcal_roll ( IntlCalendar $cal , int $field , mixed $amountOrUpOrDown ) : bool

Adds a (signed) amount to a field. The difference with respect to IntlCalendar::add() is that when the field value overflows, it does not carry into more significant fields.

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

amountOrUpOrDown

The (signed) amount to add to the field, TRUE for rolling up (adding 1), or FALSE for rolling down (subtracting 1).

Возвращаемые значения

Returns TRUE on success or FALSE on failure.

Примеры

Пример #1 IntlCalendar::roll()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

$cal = new IntlGregorianCalendar(2013, 5 /* June */, 30);

$cal->add(IntlCalendar::FIELD_DAY_OF_MONTH, 1);
var_dump(IntlDateFormatter::formatObject($cal)); // "01/07/2013, 00:00:00"

$cal->set(2013, 5 /* June */, 30);
$cal->roll(IntlCalendar::FIELD_DAY_OF_MONTH, true); // roll up, same as rolling +1
var_dump(IntlDateFormatter::formatObject($cal)); // "01/06/2013, 00:00:00"

Результат выполнения данного примера:

string(20) "01/07/2013, 00:00:00"
string(20) "01/06/2013, 00:00:00"

Смотрите также

  • IntlCalendar::add() - Add a (signed) amount of time to a field
  • IntlCalendar::set() - Set a time field or several common fields at once


Set a time field or several common fields at once

  • « IntlCalendar::roll
  • IntlCalendar::setFirstDayOfWeek »
  • PHP Manual
  • IntlCalendar
  • Set a time field or several common fields at once

IntlCalendar::set

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::set — Set a time field or several common fields at once

Описание

Объектно-ориентированный стиль

public IntlCalendar::set ( int $field , int $value ) : bool
public IntlCalendar::set ( int $year , int $month [, int $dayOfMonth = NULL [, int $hour = NULL [, int $minute = NULL [, int $second = NULL ]]]] ) : bool

Процедурный стиль

intlcal_set ( IntlCalendar $cal , int $field , int $value ) : bool
intlcal_set ( IntlCalendar $cal , int $year , int $month [, int $dayOfMonth = NULL [, int $hour = NULL [, int $minute = NULL [, int $second = NULL ]]]] ) : bool

Sets either a specific field to the given value, or sets at once several common fields. The range of values that are accepted depend on whether the calendar is using the lenient mode.

For fields that conflict, the fields that are set later have priority.

This method cannot be called with exactly four arguments.

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

value

The new value of the given field.

year

The new value for IntlCalendar::FIELD_YEAR.

month

The new value for IntlCalendar::FIELD_MONTH.

dayOfMonth

The new value for IntlCalendar::FIELD_DAY_OF_MONTH. The month sequence is zero-based, i.e., January is represented by 0, February by 1, ..., December is 11 and Undecember (if the calendar has it) is 12.

hour

The new value for IntlCalendar::FIELD_HOUR_OF_DAY.

minute

The new value for IntlCalendar::FIELD_MINUTE.

second

The new value for IntlCalendar::FIELD_SECOND.

Возвращаемые значения

Returns TRUE on success and FALSE on failure.

Примеры

Пример #1 IntlCalendar::set()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

//Calls made later have priority
$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
var_dump(IntlDateFormatter::formatObject($cal));

$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
//the time has not been recalculated yet. If we clear the extended year,
//the year set before will be used
$cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR);
var_dump(IntlDateFormatter::formatObject($cal));

Результат выполнения данного примера:

string(20) "01/07/2011, 00:00:00"
string(20) "01/07/2012, 00:00:00"

Смотрите также

  • IntlCalendar::get() - Get the value for a field
  • IntlCalendar::add() - Add a (signed) amount of time to a field
  • IntlCalendar::roll() - Add value to field without carrying into more significant fields


Set the day on which the week is deemed to start

  • « IntlCalendar::set
  • IntlCalendar::setLenient »
  • PHP Manual
  • IntlCalendar
  • Set the day on which the week is deemed to start

IntlCalendar::setFirstDayOfWeek

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setFirstDayOfWeek — Set the day on which the week is deemed to start

Описание

Объектно-ориентированный стиль

public IntlCalendar::setFirstDayOfWeek ( int $dayOfWeek ) : bool

Процедурный стиль

intlcal_set_first_day_of_week ( IntlCalendar $cal , int $dayOfWeek ) : bool

Defines the day of week deemed to start the week. This affects the behavior of fields that depend on the concept of week start and end such as IntlCalendar::FIELD_WEEK_OF_YEAR and IntlCalendar::FIELD_YEAR_WOY.

Список параметров

cal

The IntlCalendar resource.

dayOfWeek

One of the constants IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, ...,
IntlCalendar::DOW_SATURDAY.

Возвращаемые значения

Returns TRUE on success. Failure can only happen due to invalid parameters.

Примеры

Пример #1 IntlCalendar::setFirstDayOfWeek()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'es_ES');

$cal = IntlCalendar::createInstance();
$cal->set(2013, 5 /* June */, 30); // A Sunday

var_dump($cal->getFirstDayOfWeek()); // 2 (Monday)

echo IntlDateFormatter::formatObject($cal, <<<EOD
'local day of week: 'cc'
week of month    : 'W'
week of year     : 'ww
EOD
), "\n";

$cal->setFirstDayOfWeek(IntlCalendar::DOW_SUNDAY);

echo IntlDateFormatter::formatObject($cal, <<<EOD
'local day of week: 'cc'
week of month    : 'W'
week of year     : 'ww
EOD
), "\n";

Результат выполнения данного примера:

int(2)
local day of week: 7
week of month    : 4
week of year     : 26
local day of week: 1
week of month    : 5
week of year     : 27


Set whether date/time interpretation is to be lenient

  • « IntlCalendar::setFirstDayOfWeek
  • IntlCalendar::setMinimalDaysInFirstWeek »
  • PHP Manual
  • IntlCalendar
  • Set whether date/time interpretation is to be lenient

IntlCalendar::setLenient

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setLenient — Set whether date/time interpretation is to be lenient

Описание

Объектно-ориентированный стиль

public IntlCalendar::setLenient ( bool $isLenient ) : bool

Процедурный стиль

intlcal_set_lenient ( IntlCalendar $cal , bool $isLenient ) : bool

Defines whether the calendar is 'lenient mode'. In such a mode, some of out-of-bounds values for some fields are accepted, the behavior being similar to that of IntlCalendar::add() (i.e., the value wraps around, carrying into more significant fields each time). If the lenient mode is off, then such values will generate an error.

Список параметров

cal

The IntlCalendar resource.

isLenient

Use TRUE to activate the lenient mode; FALSE otherwise.

Возвращаемые значения

Returns TRUE on success. Failure can only happen due to invalid parameters.

Примеры

See the example in IntlCalendar::isLenient().


Set minimal number of days the first week in a year or month can have

  • « IntlCalendar::setLenient
  • IntlCalendar::setRepeatedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Set minimal number of days the first week in a year or month can have

IntlCalendar::setMinimalDaysInFirstWeek

(PHP 5 >= 5.5.1, PHP 7)

IntlCalendar::setMinimalDaysInFirstWeek — Set minimal number of days the first week in a year or month can have

Описание

Объектно-ориентированный стиль

public IntlCalendar::setMinimalDaysInFirstWeek ( int $minimalDays ) : bool

Процедурный стиль

intlcal_get_minimal_days_in_first_week ( IntlCalendar $cal , int $minimalDays ) : bool

Sets the smallest number of days the first week of a year or month must have in the new year or month. For instance, in the Gregorian calendar, if this value is 1, then the first week of the year will necessarily include January 1st, while if this value is 7, then the week with January 1st will be the first week of the year only if the day of the week for January 1st matches the day of the week returned by IntlCalendar::getFirstDayOfWeek(); otherwise it will be the previous year?s last week.

Список параметров

cal

The IntlCalendar resource.

minimalDays

The number of minimal days to set.

Возвращаемые значения

TRUE on success, FALSE on failure.


Set behavior for handling repeating wall times at negative timezone offset transitions

  • « IntlCalendar::setMinimalDaysInFirstWeek
  • IntlCalendar::setSkippedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Set behavior for handling repeating wall times at negative timezone offset transitions

IntlCalendar::setRepeatedWallTimeOption

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setRepeatedWallTimeOption — Set behavior for handling repeating wall times at negative timezone offset transitions

Описание

Объектно-ориентированный стиль

public IntlCalendar::setRepeatedWallTimeOption ( int $wallTimeOption ) : bool

Процедурный стиль

intlcal_set_repeated_wall_time_option ( IntlCalendar $cal , int $wallTimeOption ) : bool

Sets the current strategy for dealing with wall times that are repeated whenever the clock is set back during dailight saving time end transitions. The default value is IntlCalendar::WALLTIME_LAST (take the post-DST instant). The other possible value is IntlCalendar::WALLTIME_FIRST (take the instant that occurs during DST).

This function requires ICU 4.9 or later.

Список параметров

cal

The IntlCalendar resource.

wallTimeOption

One of the constants IntlCalendar::WALLTIME_FIRST or IntlCalendar::WALLTIME_LAST.

Возвращаемые значения

Returns TRUE on success. Failure can only happen due to invalid parameters.

Примеры

See the example on IntlCalendar::getRepeatedWallTimeOption().

Смотрите также

  • intlCalendar::getRepeatedWallTimeOption() - Get behavior for handling repeating wall time
  • intlCalendar::setSkippedWallTimeOption() - Set behavior for handling skipped wall times at positive timezone offset transitions
  • intlCalendar::getSkippedWallTimeOption() - Get behavior for handling skipped wall time


Set behavior for handling skipped wall times at positive timezone offset transitions

  • « IntlCalendar::setRepeatedWallTimeOption
  • IntlCalendar::setTime »
  • PHP Manual
  • IntlCalendar
  • Set behavior for handling skipped wall times at positive timezone offset transitions

IntlCalendar::setSkippedWallTimeOption

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setSkippedWallTimeOption — Set behavior for handling skipped wall times at positive timezone offset transitions

Описание

Объектно-ориентированный стиль

public IntlCalendar::setSkippedWallTimeOption ( int $wallTimeOption ) : bool

Процедурный стиль

intlcal_set_skipped_wall_time_option ( IntlCalendar $cal , int $wallTimeOption ) : bool

Sets the current strategy for dealing with wall times that are skipped whenever the clock is forwarded during dailight saving time start transitions. The default value is IntlCalendar::WALLTIME_LAST (take it as being the same instant as the one when the wall time is one hour more). Alternative values are IntlCalendar::WALLTIME_FIRST (same instant as the one with a wall time of one hour less) and IntlCalendar::WALLTIME_NEXT_VALID (same instant as when DST begins).

This affects only the instant represented by the calendar (as reported by IntlCalendar::getTime()), the field values will not be rewritten accordingly.

The calendar must be lenient for this option to have any effect, otherwise attempting to set a non-existing time will cause an error.

This function requires ICU 4.9 or later.

Список параметров

cal

The IntlCalendar resource.

wallTimeOption

One of the constants IntlCalendar::WALLTIME_FIRST,
IntlCalendar::WALLTIME_LAST or
IntlCalendar::WALLTIME_NEXT_VALID.

Возвращаемые значения

Returns TRUE on success. Failure can only happen due to invalid parameters.

Примеры

See the example on IntlCalendar::getSkippedWallTimeOption().

Смотрите также

  • intlCalendar::getSkippedWallTimeOption() - Get behavior for handling skipped wall time
  • intlCalendar::setRepeatedWallTimeOption() - Set behavior for handling repeating wall times at negative timezone offset transitions
  • intlCalendar::getRepeatedWallTimeOption() - Get behavior for handling repeating wall time


Set the calendar time in milliseconds since the epoch

  • « IntlCalendar::setSkippedWallTimeOption
  • IntlCalendar::setTimeZone »
  • PHP Manual
  • IntlCalendar
  • Set the calendar time in milliseconds since the epoch

IntlCalendar::setTime

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setTime — Set the calendar time in milliseconds since the epoch

Описание

Объектно-ориентированный стиль

public IntlCalendar::setTime ( float $date ) : bool

Процедурный стиль

intlcal_set_time ( IntlCalendar $cal , float $date ) : bool

Sets the instant represented by this object. The instant is represented by a float whose value should be an integer number of milliseconds since the epoch (1 Jan 1970 00:00:00.000 UTC), ignoring leap seconds. All the field values will be recalculated accordingly.

Список параметров

cal

The IntlCalendar resource.

date

An instant represented by the number of number of milliseconds between such instant and the epoch, ignoring leap seconds.

Возвращаемые значения

Returns TRUE on success and FALSE on failure.

Примеры

Пример #1 IntlCalendar::setTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'fr_FR');

$cal = new IntlGregorianCalendar(2013, 5 /* May */, 1, 12, 0, 0);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";

/* In Europe/Lisbon, on 2013-10-27 at 0200, the clock goes back one hour and
   the timezone from UTC+01 to UTC+00 */

$cal->setTime(strtotime('2013-10-27 00:30:00 UTC') * 1000.);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";

$cal->setTime(strtotime('2013-10-27 01:30:00 UTC') * 1000.);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";

Результат выполнения данного примера:

samedi 1 juin 2013 12:00:00 heure avancee d'Europe de l'Ouest
dimanche 27 octobre 2013 01:30:00 heure avancee d'Europe de l'Ouest
dimanche 27 octobre 2013 01:30:00 heure normale d'Europe de l'Ouest


Set the timezone used by this calendar

  • « IntlCalendar::setTime
  • IntlCalendar::toDateTime »
  • PHP Manual
  • IntlCalendar
  • Set the timezone used by this calendar

IntlCalendar::setTimeZone

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setTimeZone — Set the timezone used by this calendar

Описание

Объектно-ориентированный стиль

public IntlCalendar::setTimeZone ( mixed $timeZone ) : bool

Процедурный стиль

intlcal_set_time_zone ( IntlCalendar $cal , mixed $timeZone ) : bool

Defines a new timezone for this calendar. The time represented by the object is preserved to the detriment of the field values.

Список параметров

cal

The IntlCalendar resource.

timeZone

The new timezone to be used by this calendar. It can be specified in the following ways:

  • Если NULL, то будет использована временная зона по умолчанию, заданная в ini-настроке date.timezone либо с помощью функции date_default_timezone_set() и возвращенная функцией date_default_timezone_get().

  • Объект класса IntlTimeZone.

  • Объект класса DateTimeZone. Его идентификатор будет извлечен и на его основе будет создан объект временной зоны ICU; временная зона будет сохранена в базе данных ICU, а не PHP.

  • Строка, являющаяся корректным идентификатором временной зоны ICU. Смотрите IntlTimeZone::createTimeZoneIDEnumeration(). "Сырые" смещения, типа "GMT+08:30", также поддерживаются.

Возвращаемые значения

Returns TRUE on success and FALSE on failure.

Примеры

Пример #1 IntlCalendar::setTimeZone()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'es_ES');

$cal = new IntlGregorianCalendar(2013, 5 /* May */, 1, 12, 0, 0);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";

$cal->setTimeZone(IntlTimeZone::getGMT());
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";

$cal->setTimeZone('GMT+03:33');
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";

Результат выполнения данного примера:

sabado, 1 de junio de 2013 12:00:00 Hora de verano de Europa occidental
(instant 1370084400000)
sabado, 1 de junio de 2013 11:00:00 GMT
(instant 1370084400000)
sabado, 1 de junio de 2013 14:33:00 GMT+03:33
(instant 1370084400000)


Convert an IntlCalendar into a DateTime object

  • « IntlCalendar::setTimeZone
  • IntlGregorianCalendar »
  • PHP Manual
  • IntlCalendar
  • Convert an IntlCalendar into a DateTime object

IntlCalendar::toDateTime

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a2)

IntlCalendar::toDateTime — Convert an IntlCalendar into a DateTime object

Описание

Объектно-ориентированный стиль

public IntlCalendar::toDateTime ( void ) : DateTime

Процедурный стиль

intlcal_to_date_time ( IntlCalendar $cal ) : DateTime

Create a DateTime object that represents the same instant (up to second precision, with a rounding error of less than 1 second) and has an analog timezone to this object (the difference being DateTime?s timezone will be backed by PHP?s timezone while IntlCalendar?s timezone is backed by ICU?s).

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

A DateTime object with the same timezone as this object (though using PHP?s database instead of ICU?s) and the same time, except for the smaller precision (second precision instead of millisecond). Returns FALSE on failure.

Примеры

Пример #1 IntlCalendar::toDateTime()

<?php
ini_set('date.timezone', 'UTC');
ini_set('intl.default_locale', 'pt_PT');

$cal = IntlCalendar::createInstance('Europe/Lisbon'); //current time

$dt = $cal->toDateTime();
print_r($dt);

Результат выполнения данного примера:

DateTime Object
(
    [date] => 2013-07-02 00:29:13
    [timezone_type] => 3
    [timezone] => Europe/Lisbon
)

Смотрите также

  • IntlCalendar::fromDateTime() - Create an IntlCalendar from a DateTime object or string
  • IntlCalendar::getTime() - Get time currently represented by the object
  • IntlCalendar::createInstance() - Create a new IntlCalendar
  • DateTime:__construct()


Класс IntlGregorianCalendar

(PHP 5 >= 5.5.0, PHP 7)

Введение

Обзор классов

IntlGregorianCalendar extends IntlCalendar {
/* Наследуемые константы */
const integer IntlCalendar::FIELD_ERA = 0 ;
const integer IntlCalendar::FIELD_YEAR = 1 ;
const integer IntlCalendar::FIELD_MONTH = 2 ;
const integer IntlCalendar::FIELD_WEEK_OF_YEAR = 3 ;
const integer IntlCalendar::FIELD_WEEK_OF_MONTH = 4 ;
const integer IntlCalendar::FIELD_DATE = 5 ;
const integer IntlCalendar::FIELD_DAY_OF_YEAR = 6 ;
const integer IntlCalendar::FIELD_DAY_OF_WEEK = 7 ;
const integer IntlCalendar::FIELD_DAY_OF_WEEK_IN_MONTH = 8 ;
const integer IntlCalendar::FIELD_AM_PM = 9 ;
const integer IntlCalendar::FIELD_HOUR = 10 ;
const integer IntlCalendar::FIELD_HOUR_OF_DAY = 11 ;
const integer IntlCalendar::FIELD_MINUTE = 12 ;
const integer IntlCalendar::FIELD_SECOND = 13 ;
const integer IntlCalendar::FIELD_MILLISECOND = 14 ;
const integer IntlCalendar::FIELD_ZONE_OFFSET = 15 ;
const integer IntlCalendar::FIELD_DST_OFFSET = 16 ;
const integer IntlCalendar::FIELD_YEAR_WOY = 17 ;
const integer IntlCalendar::FIELD_DOW_LOCAL = 18 ;
const integer IntlCalendar::FIELD_EXTENDED_YEAR = 19 ;
const integer IntlCalendar::FIELD_JULIAN_DAY = 20 ;
const integer IntlCalendar::FIELD_MILLISECONDS_IN_DAY = 21 ;
const integer IntlCalendar::FIELD_IS_LEAP_MONTH = 22 ;
const integer IntlCalendar::FIELD_FIELD_COUNT = 23 ;
const integer IntlCalendar::FIELD_DAY_OF_MONTH = 5 ;
const integer IntlCalendar::DOW_SUNDAY = 1 ;
const integer IntlCalendar::DOW_MONDAY = 2 ;
const integer IntlCalendar::DOW_TUESDAY = 3 ;
const integer IntlCalendar::DOW_WEDNESDAY = 4 ;
const integer IntlCalendar::DOW_THURSDAY = 5 ;
const integer IntlCalendar::DOW_FRIDAY = 6 ;
const integer IntlCalendar::DOW_SATURDAY = 7 ;
const integer IntlCalendar::DOW_TYPE_WEEKDAY = 0 ;
const integer IntlCalendar::DOW_TYPE_WEEKEND = 1 ;
const integer IntlCalendar::DOW_TYPE_WEEKEND_OFFSET = 2 ;
const integer IntlCalendar::DOW_TYPE_WEEKEND_CEASE = 3 ;
const integer IntlCalendar::WALLTIME_FIRST = 1 ;
const integer IntlCalendar::WALLTIME_LAST = 0 ;
const integer IntlCalendar::WALLTIME_NEXT_VALID = 2 ;
/* Методы */
public __construct ([ IntlTimeZone $tz [, string $locale ]] )
public getGregorianChange ( void ) : float
public isLeapYear ( int $year ) : bool
public setGregorianChange ( float $date ) : bool
/* Наследуемые методы */
public IntlCalendar::add ( int $field , int $amount ) : bool
intlcal_add ( IntlCalendar $cal , int $field , int $amount ) : bool
public IntlCalendar::after ( IntlCalendar $other ) : bool
intlcal_after ( IntlCalendar $cal , IntlCalendar $other ) : bool
public IntlCalendar::before ( IntlCalendar $other ) : bool
intlcal_before ( IntlCalendar $cal , IntlCalendar $other ) : bool
public IntlCalendar::clear ([ int $field = NULL ] ) : bool
intlcal_clear ( IntlCalendar $cal [, int $field = NULL ] ) : bool
private IntlCalendar::__construct ( void )
public static IntlCalendar::createInstance ([ mixed $timeZone = NULL [, string $locale = "" ]] ) : IntlCalendar
intlcal_create_instance ([ mixed $timeZone = NULL [, string $locale = "" ]] ) : IntlCalendar
public IntlCalendar::equals ( IntlCalendar $other ) : bool
intlcal_equals ( IntlCalendar $cal , IntlCalendar $other ) : bool
public IntlCalendar::fieldDifference ( float $when , int $field ) : int
intlcal_field_difference ( IntlCalendar $cal , float $when , int $field ) : int
public static IntlCalendar::fromDateTime ( mixed $dateTime ) : IntlCalendar
intlcal_from_date_time ( mixed $dateTime ) : IntlCalendar
public IntlCalendar::get ( int $field ) : int
intlcal_get ( IntlCalendar $cal , int $field ) : int
public IntlCalendar::getActualMaximum ( int $field ) : int
intlcal_get_actual_maximum ( IntlCalendar $cal , int $field ) : int
public IntlCalendar::getActualMinimum ( int $field ) : int
intlcal_get_actual_minimum ( IntlCalendar $cal , int $field ) : int
public static IntlCalendar::getAvailableLocales ( void ) : array
intlcal_get_available_locales ( void ) : array
public IntlCalendar::getDayOfWeekType ( int $dayOfWeek ) : int
intlcal_get_day_of_week_type ( IntlCalendar $cal , int $dayOfWeek ) : int
public IntlCalendar::getErrorCode ( void ) : int
public IntlCalendar::getErrorMessage ( void ) : string
public IntlCalendar::getFirstDayOfWeek ( void ) : int
intlcal_get_first_day_of_week ( IntlCalendar $cal ) : int
public IntlCalendar::getGreatestMinimum ( int $field ) : int
intlcal_get_greatest_minimum ( IntlCalendar $cal , int $field ) : int
public static IntlCalendar::getKeywordValuesForLocale ( string $key , string $locale , bool $commonlyUsed ) : Iterator
intlcal_get_keyword_values_for_locale ( string $key , string $locale , bool $commonlyUsed ) : Iterator
public IntlCalendar::getLeastMaximum ( int $field ) : int
intlcal_get_least_maximum ( IntlCalendar $cal , int $field ) : int
public IntlCalendar::getLocale ( int $localeType ) : string
intlcal_get_locale ( IntlCalendar $cal , int $localeType ) : string
public IntlCalendar::getMaximum ( int $field ) : int
intlcal_get_maximum ( IntlCalendar $cal , int $field ) : int
public IntlCalendar::getMinimalDaysInFirstWeek ( void ) : int
intlcal_get_minimal_days_in_first_week ( IntlCalendar $cal ) : int
public IntlCalendar::getMinimum ( int $field ) : int
intlcal_get_minimum ( IntlCalendar $cal , int $field ) : int
public static IntlCalendar::getNow ( void ) : float
intlcal_get_now ( void ) : float
public IntlCalendar::getRepeatedWallTimeOption ( void ) : int
intlcal_get_repeated_wall_time_option ( IntlCalendar $cal ) : int
public IntlCalendar::getSkippedWallTimeOption ( void ) : int
intlcal_get_skipped_wall_time_option ( IntlCalendar $cal ) : int
public IntlCalendar::getTime ( void ) : float
intlcal_get_time ( IntlCalendar $cal ) : float
public IntlCalendar::getTimeZone ( void ) : IntlTimeZone
intlcal_get_time_zone ( IntlCalendar $cal ) : IntlTimeZone
public IntlCalendar::getType ( void ) : string
intlcal_get_type ( IntlCalendar $cal ) : string
public IntlCalendar::getWeekendTransition ( string $dayOfWeek ) : int
intlcal_get_weekend_transition ( IntlCalendar $cal , string $dayOfWeek ) : int
public IntlCalendar::inDaylightTime ( void ) : bool
intlcal_in_daylight_time ( IntlCalendar $cal ) : bool
public IntlCalendar::isEquivalentTo ( IntlCalendar $other ) : bool
intlcal_is_equivalent_to ( IntlCalendar $cal , IntlCalendar $other ) : bool
public IntlCalendar::isLenient ( void ) : bool
intlcal_is_lenient ( IntlCalendar $cal ) : bool
public IntlCalendar::isSet ( int $field ) : bool
intlcal_is_set ( IntlCalendar $cal , int $field ) : bool
public IntlCalendar::isWeekend ([ float $date = NULL ] ) : bool
intlcal_is_weekend ( IntlCalendar $cal [, float $date = NULL ] ) : bool
public IntlCalendar::roll ( int $field , mixed $amountOrUpOrDown ) : bool
intlcal_roll ( IntlCalendar $cal , int $field , mixed $amountOrUpOrDown ) : bool
public IntlCalendar::set ( int $field , int $value ) : bool
public IntlCalendar::set ( int $year , int $month [, int $dayOfMonth = NULL [, int $hour = NULL [, int $minute = NULL [, int $second = NULL ]]]] ) : bool
intlcal_set ( IntlCalendar $cal , int $field , int $value ) : bool
intlcal_set ( IntlCalendar $cal , int $year , int $month [, int $dayOfMonth = NULL [, int $hour = NULL [, int $minute = NULL [, int $second = NULL ]]]] ) : bool
public IntlCalendar::setFirstDayOfWeek ( int $dayOfWeek ) : bool
intlcal_set_first_day_of_week ( IntlCalendar $cal , int $dayOfWeek ) : bool
public IntlCalendar::setLenient ( bool $isLenient ) : bool
intlcal_set_lenient ( IntlCalendar $cal , bool $isLenient ) : bool
public IntlCalendar::setMinimalDaysInFirstWeek ( int $minimalDays ) : bool
intlcal_get_minimal_days_in_first_week ( IntlCalendar $cal , int $minimalDays ) : bool
public IntlCalendar::setRepeatedWallTimeOption ( int $wallTimeOption ) : bool
intlcal_set_repeated_wall_time_option ( IntlCalendar $cal , int $wallTimeOption ) : bool
public IntlCalendar::setSkippedWallTimeOption ( int $wallTimeOption ) : bool
intlcal_set_skipped_wall_time_option ( IntlCalendar $cal , int $wallTimeOption ) : bool
public IntlCalendar::setTime ( float $date ) : bool
intlcal_set_time ( IntlCalendar $cal , float $date ) : bool
public IntlCalendar::setTimeZone ( mixed $timeZone ) : bool
intlcal_set_time_zone ( IntlCalendar $cal , mixed $timeZone ) : bool
public IntlCalendar::toDateTime ( void ) : DateTime
intlcal_to_date_time ( IntlCalendar $cal ) : DateTime
}

Содержание

  • IntlGregorianCalendar::__construct — Create the Gregorian Calendar class
  • IntlGregorianCalendar::getGregorianChange — Get the Gregorian Calendar change date
  • IntlGregorianCalendar::isLeapYear — Determine if the given year is a leap year
  • IntlGregorianCalendar::setGregorianChange — Set the Gregorian Calendar the change date


Create the Gregorian Calendar class

  • « IntlGregorianCalendar
  • IntlGregorianCalendar::getGregorianChange »
  • PHP Manual
  • IntlGregorianCalendar
  • Create the Gregorian Calendar class

IntlGregorianCalendar::__construct

(PHP 5 >= 5.5.0, PHP 7)

IntlGregorianCalendar::__construct — Create the Gregorian Calendar class

Описание

public IntlGregorianCalendar::__construct ([ IntlTimeZone $tz [, string $locale ]] )
public IntlGregorianCalendar::__construct ( int $timeZoneOrYear , int $localeOrMonth , int $dayOfMonth )
public IntlGregorianCalendar::__construct ( int $timeZoneOrYear , int $localeOrMonth , int $dayOfMonth , int $hour , int $minute [, int $second ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

tz

locale

timeZoneOrYear

localeOrMonth

dayOfMonth

hour

minute

second


Get the Gregorian Calendar change date

  • « IntlGregorianCalendar::__construct
  • IntlGregorianCalendar::isLeapYear »
  • PHP Manual
  • IntlGregorianCalendar
  • Get the Gregorian Calendar change date

IntlGregorianCalendar::getGregorianChange

(PHP 5 >= 5.5.0, PHP 7)

IntlGregorianCalendar::getGregorianChange — Get the Gregorian Calendar change date

Описание

public IntlGregorianCalendar::getGregorianChange ( void ) : float

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the change date или FALSE в случае возникновения ошибки.


Determine if the given year is a leap year

  • « IntlGregorianCalendar::getGregorianChange
  • IntlGregorianCalendar::setGregorianChange »
  • PHP Manual
  • IntlGregorianCalendar
  • Determine if the given year is a leap year

IntlGregorianCalendar::isLeapYear

(PHP 5 >= 5.5.0, PHP 7)

IntlGregorianCalendar::isLeapYear — Determine if the given year is a leap year

Описание

public IntlGregorianCalendar::isLeapYear ( int $year ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

year

Возвращаемые значения

Returns TRUE for leap years, FALSE otherwise and on failure.


Set the Gregorian Calendar the change date

  • « IntlGregorianCalendar::isLeapYear
  • IntlTimeZone »
  • PHP Manual
  • IntlGregorianCalendar
  • Set the Gregorian Calendar the change date

IntlGregorianCalendar::setGregorianChange

(PHP 5 >= 5.5.0, PHP 7)

IntlGregorianCalendar::setGregorianChange — Set the Gregorian Calendar the change date

Описание

public IntlGregorianCalendar::setGregorianChange ( float $date ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

date

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Класс IntlTimeZone

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

Введение

Обзор классов

IntlTimeZone {
/* Константы */
const integer DISPLAY_SHORT = 1 ;
const integer DISPLAY_LONG = 2 ;
/* Методы */
public static countEquivalentIDs ( string $zoneId ) : int
public static createDefault ( void ) : IntlTimeZone
public static createEnumeration ([ mixed $countryOrRawOffset ] ) : IntlIterator
public static createTimeZone ( string $zoneId ) : IntlTimeZone
public static createTimeZoneIDEnumeration ( int $zoneType [, string $region [, int $rawOffset ]] ) : IntlIterator
public static fromDateTimeZone ( DateTimeZone $zoneId ) : IntlTimeZone
public static getCanonicalID ( string $zoneId [, bool &$isSystemID ] ) : string
public getDisplayName ([ bool $isDaylight [, int $style [, string $locale ]]] ) : string
public getDSTSavings ( void ) : int
public static getEquivalentID ( string $zoneId , int $index ) : string
public getErrorCode ( void ) : int
public getErrorMessage ( void ) : string
public static getGMT ( void ) : IntlTimeZone
public getID ( void ) : string
public static getIDForWindowsID ( string $timezone [, string $region ] ) : string
public getOffset ( float $date , bool $local , int &$rawOffset , int &$dstOffset ) : int
public getRawOffset ( void ) : int
public static getRegion ( string $zoneId ) : string
public static getTZDataVersion ( void ) : string
public static getUnknown ( void ) : IntlTimeZone
public static getWindowsID ( string $timezone ) : string
public hasSameRules ( IntlTimeZone $otherTimeZone ) : bool
public toDateTimeZone ( void ) : DateTimeZone
public useDaylightTime ( void ) : bool
}

Предопределенные константы

IntlTimeZone::DISPLAY_SHORT

IntlTimeZone::DISPLAY_LONG

Содержание

  • IntlTimeZone::countEquivalentIDs — Get the number of IDs in the equivalency group that includes the given ID
  • IntlTimeZone::createDefault — Create a new copy of the default timezone for this host
  • IntlTimeZone::createEnumeration — Get an enumeration over time zone IDs associated with the given country or offset
  • IntlTimeZone::createTimeZone — Create a timezone object for the given ID
  • IntlTimeZone::createTimeZoneIDEnumeration — Get an enumeration over system time zone IDs with the given filter conditions
  • IntlTimeZone::fromDateTimeZone — Create a timezone object from DateTimeZone
  • IntlTimeZone::getCanonicalID — Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID
  • IntlTimeZone::getDisplayName — Get a name of this time zone suitable for presentation to the user
  • IntlTimeZone::getDSTSavings — Get the amount of time to be added to local standard time to get local wall clock time
  • IntlTimeZone::getEquivalentID — Get an ID in the equivalency group that includes the given ID
  • IntlTimeZone::getErrorCode — Get last error code on the object
  • IntlTimeZone::getErrorMessage — Get last error message on the object
  • IntlTimeZone::getGMT — Create GMT (UTC) timezone
  • IntlTimeZone::getID — Get timezone ID
  • IntlTimeZone::getIDForWindowsID — Translate a Windows timezone into a system timezone
  • IntlTimeZone::getOffset — Get the time zone raw and GMT offset for the given moment in time
  • IntlTimeZone::getRawOffset — Get the raw GMT offset (before taking daylight savings time into account
  • IntlTimeZone::getRegion — Get the region code associated with the given system time zone ID
  • IntlTimeZone::getTZDataVersion — Get the timezone data version currently used by ICU
  • IntlTimeZone::getUnknown — Get the "unknown" time zone
  • IntlTimeZone::getWindowsID — Translate a system timezone into a Windows timezone
  • IntlTimeZone::hasSameRules — Check if this zone has the same rules and offset as another zone
  • IntlTimeZone::toDateTimeZone — Convert to DateTimeZone object
  • IntlTimeZone::useDaylightTime — Check if this time zone uses daylight savings time


Get the number of IDs in the equivalency group that includes the given ID

  • « IntlTimeZone
  • IntlTimeZone::createDefault »
  • PHP Manual
  • IntlTimeZone
  • Get the number of IDs in the equivalency group that includes the given ID

IntlTimeZone::countEquivalentIDs

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::countEquivalentIDs — Get the number of IDs in the equivalency group that includes the given ID

Описание

public static IntlTimeZone::countEquivalentIDs ( string $zoneId ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

zoneId

Возвращаемые значения


Create a new copy of the default timezone for this host

  • « IntlTimeZone::countEquivalentIDs
  • IntlTimeZone::createEnumeration »
  • PHP Manual
  • IntlTimeZone
  • Create a new copy of the default timezone for this host

IntlTimeZone::createDefault

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::createDefault — Create a new copy of the default timezone for this host

Описание

public static IntlTimeZone::createDefault ( void ) : IntlTimeZone

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get an enumeration over time zone IDs associated with the given country or offset

  • « IntlTimeZone::createDefault
  • IntlTimeZone::createTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Get an enumeration over time zone IDs associated with the given country or offset

IntlTimeZone::createEnumeration

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::createEnumeration — Get an enumeration over time zone IDs associated with the given country or offset

Описание

public static IntlTimeZone::createEnumeration ([ mixed $countryOrRawOffset ] ) : IntlIterator

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

countryOrRawOffset

Возвращаемые значения


Create a timezone object for the given ID

  • « IntlTimeZone::createEnumeration
  • IntlTimeZone::createTimeZoneIDEnumeration »
  • PHP Manual
  • IntlTimeZone
  • Create a timezone object for the given ID

IntlTimeZone::createTimeZone

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::createTimeZone — Create a timezone object for the given ID

Описание

public static IntlTimeZone::createTimeZone ( string $zoneId ) : IntlTimeZone

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

zoneId

Возвращаемые значения


Get an enumeration over system time zone IDs with the given filter conditions

  • « IntlTimeZone::createTimeZone
  • IntlTimeZone::fromDateTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Get an enumeration over system time zone IDs with the given filter conditions

IntlTimeZone::createTimeZoneIDEnumeration

(PHP 5 >= 5.5.0, PHP 7)

IntlTimeZone::createTimeZoneIDEnumeration — Get an enumeration over system time zone IDs with the given filter conditions

Описание

public static IntlTimeZone::createTimeZoneIDEnumeration ( int $zoneType [, string $region [, int $rawOffset ]] ) : IntlIterator

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

zoneType

region

rawOffset

Возвращаемые значения

Returns IntlIterator или FALSE в случае возникновения ошибки.


Create a timezone object from DateTimeZone

  • « IntlTimeZone::createTimeZoneIDEnumeration
  • IntlTimeZone::getCanonicalID »
  • PHP Manual
  • IntlTimeZone
  • Create a timezone object from DateTimeZone

IntlTimeZone::fromDateTimeZone

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::fromDateTimeZone — Create a timezone object from DateTimeZone

Описание

public static IntlTimeZone::fromDateTimeZone ( DateTimeZone $zoneId ) : IntlTimeZone

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

zoneId

Возвращаемые значения


Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID

  • « IntlTimeZone::fromDateTimeZone
  • IntlTimeZone::getDisplayName »
  • PHP Manual
  • IntlTimeZone
  • Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID

IntlTimeZone::getCanonicalID

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getCanonicalID — Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID

Описание

public static IntlTimeZone::getCanonicalID ( string $zoneId [, bool &$isSystemID ] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

zoneId

isSystemID

Возвращаемые значения


Get a name of this time zone suitable for presentation to the user

  • « IntlTimeZone::getCanonicalID
  • IntlTimeZone::getDSTSavings »
  • PHP Manual
  • IntlTimeZone
  • Get a name of this time zone suitable for presentation to the user

IntlTimeZone::getDisplayName

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getDisplayName — Get a name of this time zone suitable for presentation to the user

Описание

public IntlTimeZone::getDisplayName ([ bool $isDaylight [, int $style [, string $locale ]]] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

isDaylight

style

locale

Возвращаемые значения


Get the amount of time to be added to local standard time to get local wall clock time

  • « IntlTimeZone::getDisplayName
  • IntlTimeZone::getEquivalentID »
  • PHP Manual
  • IntlTimeZone
  • Get the amount of time to be added to local standard time to get local wall clock time

IntlTimeZone::getDSTSavings

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getDSTSavings — Get the amount of time to be added to local standard time to get local wall clock time

Описание

public IntlTimeZone::getDSTSavings ( void ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get an ID in the equivalency group that includes the given ID

  • « IntlTimeZone::getDSTSavings
  • IntlTimeZone::getErrorCode »
  • PHP Manual
  • IntlTimeZone
  • Get an ID in the equivalency group that includes the given ID

IntlTimeZone::getEquivalentID

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getEquivalentID — Get an ID in the equivalency group that includes the given ID

Описание

public static IntlTimeZone::getEquivalentID ( string $zoneId , int $index ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

zoneId

index

Возвращаемые значения


Get last error code on the object

  • « IntlTimeZone::getEquivalentID
  • IntlTimeZone::getErrorMessage »
  • PHP Manual
  • IntlTimeZone
  • Get last error code on the object

IntlTimeZone::getErrorCode

intltz_get_error_code

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getErrorCode -- intltz_get_error_code — Get last error code on the object

Описание

Объектно-ориентированный стиль (method):

public IntlTimeZone::getErrorCode ( void ) : int

Процедурный стиль:

intltz_get_error_code ( void ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get last error message on the object

  • « IntlTimeZone::getErrorCode
  • IntlTimeZone::getGMT »
  • PHP Manual
  • IntlTimeZone
  • Get last error message on the object

IntlTimeZone::getErrorMessage

intltz_get_error_message

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getErrorMessage -- intltz_get_error_message — Get last error message on the object

Описание

Объектно-ориентированный стиль (method):

public IntlTimeZone::getErrorMessage ( void ) : string

Процедурный стиль:

intltz_get_error_message ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Create GMT (UTC) timezone

  • « IntlTimeZone::getErrorMessage
  • IntlTimeZone::getID »
  • PHP Manual
  • IntlTimeZone
  • Create GMT (UTC) timezone

IntlTimeZone::getGMT

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getGMT — Create GMT (UTC) timezone

Описание

public static IntlTimeZone::getGMT ( void ) : IntlTimeZone

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get timezone ID

  • « IntlTimeZone::getGMT
  • IntlTimeZone::getIDForWindowsID »
  • PHP Manual
  • IntlTimeZone
  • Get timezone ID

IntlTimeZone::getID

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getID — Get timezone ID

Описание

public IntlTimeZone::getID ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Translate a Windows timezone into a system timezone

  • « IntlTimeZone::getID
  • IntlTimeZone::getOffset »
  • PHP Manual
  • IntlTimeZone
  • Translate a Windows timezone into a system timezone

IntlTimeZone::getIDForWindowsID

(PHP 7 >= 7.1.0)

IntlTimeZone::getIDForWindowsID — Translate a Windows timezone into a system timezone

Описание

public static IntlTimeZone::getIDForWindowsID ( string $timezone [, string $region ] ) : string

Translates a Windows timezone (e.g. "Pacific Standard Time") into a system timezone (e.g. "America/Los_Angeles").

Замечание: This function requires ICU version ? 52.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

timezone

region

Возвращаемые значения

Returns the system timezone или FALSE в случае возникновения ошибки.

Смотрите также

  • IntlTimeZone::getWindowsID() - Translate a system timezone into a Windows timezone


Get the time zone raw and GMT offset for the given moment in time

  • « IntlTimeZone::getIDForWindowsID
  • IntlTimeZone::getRawOffset »
  • PHP Manual
  • IntlTimeZone
  • Get the time zone raw and GMT offset for the given moment in time

IntlTimeZone::getOffset

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getOffset — Get the time zone raw and GMT offset for the given moment in time

Описание

public IntlTimeZone::getOffset ( float $date , bool $local , int &$rawOffset , int &$dstOffset ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

date

local

rawOffset

dstOffset

Возвращаемые значения


Get the raw GMT offset (before taking daylight savings time into account

  • « IntlTimeZone::getOffset
  • IntlTimeZone::getRegion »
  • PHP Manual
  • IntlTimeZone
  • Get the raw GMT offset (before taking daylight savings time into account

IntlTimeZone::getRawOffset

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getRawOffset — Get the raw GMT offset (before taking daylight savings time into account

Описание

public IntlTimeZone::getRawOffset ( void ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get the region code associated with the given system time zone ID

  • « IntlTimeZone::getRawOffset
  • IntlTimeZone::getTZDataVersion »
  • PHP Manual
  • IntlTimeZone
  • Get the region code associated with the given system time zone ID

IntlTimeZone::getRegion

(PHP 5 >= 5.5.0, PHP 7)

IntlTimeZone::getRegion — Get the region code associated with the given system time zone ID

Описание

public static IntlTimeZone::getRegion ( string $zoneId ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

zoneId

Возвращаемые значения

Return region или FALSE в случае возникновения ошибки.


Get the timezone data version currently used by ICU

  • « IntlTimeZone::getRegion
  • IntlTimeZone::getUnknown »
  • PHP Manual
  • IntlTimeZone
  • Get the timezone data version currently used by ICU

IntlTimeZone::getTZDataVersion

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getTZDataVersion — Get the timezone data version currently used by ICU

Описание

public static IntlTimeZone::getTZDataVersion ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get the "unknown" time zone

  • « IntlTimeZone::getTZDataVersion
  • IntlTimeZone::getWindowsID »
  • PHP Manual
  • IntlTimeZone
  • Get the "unknown" time zone

IntlTimeZone::getUnknown

(PHP 5 >= 5.5.0, PHP 7)

IntlTimeZone::getUnknown — Get the "unknown" time zone

Описание

public static IntlTimeZone::getUnknown ( void ) : IntlTimeZone

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns IntlTimeZone or NULL on failure.


Translate a system timezone into a Windows timezone

  • « IntlTimeZone::getUnknown
  • IntlTimeZone::hasSameRules »
  • PHP Manual
  • IntlTimeZone
  • Translate a system timezone into a Windows timezone

IntlTimeZone::getWindowsID

(PHP 7 >= 7.1.0)

IntlTimeZone::getWindowsID — Translate a system timezone into a Windows timezone

Описание

public static IntlTimeZone::getWindowsID ( string $timezone ) : string

Translates a system timezone (e.g. "America/Los_Angeles") into a Windows timezone (e.g. "Pacific Standard Time").

Замечание: This function requires ICU version ? 52.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

timezone

Возвращаемые значения

Returns the Windows timezone или FALSE в случае возникновения ошибки.

Смотрите также

  • IntlTimeZone::getIDForWindowsID() - Translate a Windows timezone into a system timezone


Check if this zone has the same rules and offset as another zone

  • « IntlTimeZone::getWindowsID
  • IntlTimeZone::toDateTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Check if this zone has the same rules and offset as another zone

IntlTimeZone::hasSameRules

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::hasSameRules — Check if this zone has the same rules and offset as another zone

Описание

public IntlTimeZone::hasSameRules ( IntlTimeZone $otherTimeZone ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

otherTimeZone

Возвращаемые значения


Convert to DateTimeZone object

  • « IntlTimeZone::hasSameRules
  • IntlTimeZone::useDaylightTime »
  • PHP Manual
  • IntlTimeZone
  • Convert to DateTimeZone object

IntlTimeZone::toDateTimeZone

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::toDateTimeZone — Convert to DateTimeZone object

Описание

public IntlTimeZone::toDateTimeZone ( void ) : DateTimeZone

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Check if this time zone uses daylight savings time

  • « IntlTimeZone::toDateTimeZone
  • IntlDateFormatter »
  • PHP Manual
  • IntlTimeZone
  • Check if this time zone uses daylight savings time

IntlTimeZone::useDaylightTime

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::useDaylightTime — Check if this time zone uses daylight savings time

Описание

public IntlTimeZone::useDaylightTime ( void ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс IntlDateFormatter

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Введение

Это класс позволяющий форматировать/разбирать даты в соответствиями с настройками локали, используя строковые и/или библиотечные шаблоны.

Класс предоставляет функционал форматирования дат ICU. Он позволяет пользователям отображать даты в формате, принятым в их локали. Или разбирать значения дат используя строковые и/или библиотечные шаблоны.

Синопсис класса

IntlDateFormatter {
/* Методы */
public __construct ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = "" ]]] )
public static create ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = "" ]]] ) : IntlDateFormatter
public format ( mixed $value ) : string
public static formatObject ( object $object [, mixed $format = NULL [, string $locale = NULL ]] ) : string
getCalendar ( void ) : int
public getDateType ( void ) : int
public getErrorCode ( void ) : int
public getErrorMessage ( void ) : string
public getLocale ([ int $which ] ) : string
public getPattern ( void ) : string
public getTimeType ( void ) : int
public getTimeZoneId ( void ) : string
public getCalendarObject ( void ) : IntlCalendar
public getTimeZone ( void ) : IntlTimeZone
public isLenient ( void ) : bool
public localtime ( string $value [, int &$position ] ) : array
public parse ( string $value [, int &$position ] ) : int
setCalendar ( mixed $which ) : bool
public setLenient ( bool $lenient ) : bool
public setPattern ( string $pattern ) : bool
public setTimeZoneId ( string $zone ) : bool
public setTimeZone ( mixed $zone ) : bool
}

Смотрите также

  • » Форматирование дат ICU
  • » Форматы дат ICU

Предопределенные константы

Эти константы используются для задания формата в конструкторах DateType и TimeType.

IntlDateFormatter::NONE (integer)
Не включать этот элемент
IntlDateFormatter::FULL (integer)
Полный формат (Tuesday, April 12, 1952 AD or 3:30:42pm PST)
IntlDateFormatter::LONG (integer)
Длинный формат (January 12, 1952 or 3:30:32pm)
IntlDateFormatter::MEDIUM (integer)
Средний формат (Jan 12, 1952)
IntlDateFormatter::SHORT (integer)
Наиболее сокращенный формат, только самые необходимые данные (12/13/52 или 3:30pm)

Следующие константы используются для задания типа календаря. Эти календари прямо завязаны на Григорианский календарь. Не Григорианский календарь должен быть задан в локали. Например locale="hi@calendar=BUDDHIST".

IntlDateFormatter::TRADITIONAL (integer)
Не Григорианский календарь
IntlDateFormatter::GREGORIAN (integer)
Григорианский календарь

Содержание

  • IntlDateFormatter::create — Create a date formatter
  • IntlDateFormatter::format — Format the date/time value as a string
  • IntlDateFormatter::formatObject — Formats an object
  • IntlDateFormatter::getCalendar — Get the calendar type used for the IntlDateFormatter
  • IntlDateFormatter::getDateType — Get the datetype used for the IntlDateFormatter
  • IntlDateFormatter::getErrorCode — Get the error code from last operation
  • IntlDateFormatter::getErrorMessage — Get the error text from the last operation
  • IntlDateFormatter::getLocale — Get the locale used by formatter
  • IntlDateFormatter::getPattern — Get the pattern used for the IntlDateFormatter
  • IntlDateFormatter::getTimeType — Get the timetype used for the IntlDateFormatter
  • IntlDateFormatter::getTimeZoneId — Get the timezone-id used for the IntlDateFormatter
  • IntlDateFormatter::getCalendarObject — Get copy of formatter?s calendar object
  • IntlDateFormatter::getTimeZone — Get formatter?s timezone
  • IntlDateFormatter::isLenient — Get the lenient used for the IntlDateFormatter
  • IntlDateFormatter::localtime — Parse string to a field-based time value
  • IntlDateFormatter::parse — Parse string to a timestamp value
  • IntlDateFormatter::setCalendar — Sets the calendar type used by the formatter
  • IntlDateFormatter::setLenient — Set the leniency of the parser
  • IntlDateFormatter::setPattern — Set the pattern used for the IntlDateFormatter
  • IntlDateFormatter::setTimeZoneId — Sets the time zone to use
  • IntlDateFormatter::setTimeZone — Sets formatter?s timezone


Create a date formatter

  • « IntlDateFormatter
  • IntlDateFormatter::format »
  • PHP Manual
  • IntlDateFormatter
  • Create a date formatter

IntlDateFormatter::create

datefmt_create

IntlDateFormatter::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::create -- datefmt_create -- IntlDateFormatter::__construct — Create a date formatter

Описание

Объектно-ориентированный стиль

public static IntlDateFormatter::create ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = "" ]]] ) : IntlDateFormatter

Объектно-ориентированный стиль (constructor)

public IntlDateFormatter::__construct ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = "" ]]] )

Процедурный стиль

datefmt_create ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = "" ]]] ) : IntlDateFormatter

Create a date formatter.

Список параметров

locale

Locale to use when formatting or parsing or NULL to use the value specified in the ini setting intl.default_locale.

datetype

Date type to use (none, short, medium, long, full). This is one of the IntlDateFormatter constants. It can also be NULL, in which case ICU?s default date type will be used.

timetype

Time type to use (none, short, medium, long, full). This is one of the IntlDateFormatter constants. It can also be NULL, in which case ICU?s default time type will be used.

timezone

Time zone ID. The default (and the one used if NULL is given) is the one returned by date_default_timezone_get() or, if applicable, that of the IntlCalendar object passed for the calendar parameter. This ID must be a valid identifier on ICU?s database or an ID representing an explicit offset, such as GMT-05:30.

This can also be an IntlTimeZone or a DateTimeZone object.

calendar

Calendar to use for formatting or parsing. The default value is NULL, which corresponds to IntlDateFormatter::GREGORIAN. This can either be one of the IntlDateFormatter calendar constants or an IntlCalendar. Any IntlCalendar object passed will be clone; it will not be changed by the IntlDateFormatter. This will determine the calendar type used (gregorian, islamic, persian, etc.) and, if NULL is given for the timezone parameter, also the timezone used.

pattern

Optional pattern to use when formatting or parsing. Possible patterns are documented at » http://userguide.icu-project.org/formatparse/datetime.

Возвращаемые значения

The created IntlDateFormatter or FALSE in case of failure.

Список изменений

Версия | Описание
5.5.0/PECL 3.0.0 | An IntlCalendar object is allowed for calendar. Objects of type IntlTimeZone and DateTimeZone are allowed for timezone. Invalid timezone identifiers (including empty strings) are no longer allowed for timezone. If NULL is given for timezone, the timezone identifier given by date_default_timezone_get() will be used instead of ICU?s default.

Примеры

Пример #1 datefmt_create() example

<?php
$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
    'America/Los_Angeles', IntlDateFormatter::GREGORIAN  );
echo "First Formatted output is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
    'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Second Formatted output is ".datefmt_format( $fmt , 0);

$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
     'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "First Formatted output with pattern is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
     'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "Second Formatted output with pattern is ".datefmt_format( $fmt , 0);
?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
    'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "First Formatted output is ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
    'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Second Formatted output is ".$fmt->format(0);

$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
     'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "First Formatted output with pattern is ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
      'America/Los_Angeles',IntlDateFormatter::GREGORIAN , "MM/dd/yyyy");
echo "Second Formatted output with pattern is ".$fmt->format(0);
?>

Результат выполнения данного примера:

First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Second Formatted output is Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
First Formatted output with pattern is 12/31/1969
Second Formatted output with pattern is 12/31/1969

Смотрите также

  • datefmt_format() - Format the date/time value as a string
  • datefmt_parse() - Parse string to a timestamp value
  • datefmt_get_error_code() - Get the error code from last operation
  • datefmt_get_error_message() - Get the error text from the last operation


Format the date/time value as a string

  • « IntlDateFormatter::create
  • IntlDateFormatter::formatObject »
  • PHP Manual
  • IntlDateFormatter
  • Format the date/time value as a string

IntlDateFormatter::format

datefmt_format

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::format -- datefmt_format — Format the date/time value as a string

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::format ( mixed $value ) : string

Процедурный стиль

datefmt_format ( IntlDateFormatter $fmt , mixed $value ) : string

Formats the time value as a string.

Список параметров

fmt

The date formatter resource.

value

Value to format. This may be a DateTimeInterface object, an IntlCalendar object, a numeric type representing a (possibly fractional) number of seconds since epoch or an array in the format output by localtime().

If a DateTime or an IntlCalendar object is passed, its timezone is not considered. The object will be formatted using the formater?s configured timezone. If one wants to use the timezone of the object to be formatted, IntlDateFormatter::setTimeZone() must be called before with the object?s timezone. Alternatively, the static function IntlDateFormatter::formatObject() may be used instead.

Возвращаемые значения

The formatted string or, if an error occurred, FALSE.

Список изменений

Версия | Описание
7.1.5 | Support for providing general DateTimeInterface objects to the value parameter was added. Formerly, only proper DateTime objects were supported.
5.5.0/PECL 3.0.0 | Support for providing IntlCalendar objects to the value parameter was added.
5.3.4 | Support for providing DateTime objects to the value parameter was added.

Примеры

Пример #1 datefmt_format() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'First Formatted output is ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Second Formatted output is ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'First Formatted output with pattern is ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo "Second Formatted output with pattern is " . datefmt_format($fmt, 0);
?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'First Formatted output is ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Second Formatted output is ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'First Formatted output with pattern is ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'Second Formatted output with pattern is ' . $fmt->format(0);
?>

Результат выполнения данного примера:

First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Second Formatted output is Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
First Formatted output with pattern is 12/31/1969
Second Formatted output with pattern is 12/31/1969

Пример #3 With IntlCalendar object

<?php
$tz = reset(iterator_to_array(IntlTimeZone::createEnumeration('FR')));
$formatter = IntlDateFormatter::create(
    'fr_FR',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    $tz,
    IntlDateFormatter::GREGORIAN
);

$cal = IntlCalendar::createInstance($tz, '@calendar=islamic-civil');
$cal->set(IntlCalendar::FIELD_MONTH, 8); //9th month, Ramadan
$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 1); //1st day
$cal->clear(IntlCalendar::FIELD_HOUR_OF_DAY);
$cal->clear(IntlCalendar::FIELD_MINUTE);
$cal->clear(IntlCalendar::FIELD_SECOND);
$cal->clear(IntlCalendar::FIELD_MILLISECOND);

echo "In this islamic year, Ramadan started/will start on:\n\t",
        $formatter->format($cal), "\n";

//It?s the formatter?s timezone that is used:
$formatter->setTimeZone('Asia/Tokyo');
echo "After changing timezone:\n\t",
        $formatter->format($cal), "\n";

Результат выполнения данного примера:

In this islamic year, Ramadan started/will start on:
    mardi 9 juillet 2013 19:00:00 heure avancee d'Europe centrale
After changing timezone:
    mercredi 10 juillet 2013 02:00:00 heure normale du Japon

Смотрите также

  • datefmt_create() - Create a date formatter
  • datefmt_parse() - Parse string to a timestamp value
  • datefmt_get_error_code() - Get the error code from last operation
  • datefmt_get_error_message() - Get the error text from the last operation
  • datefmt_format_object() - Formats an object


Formats an object

  • « IntlDateFormatter::format
  • IntlDateFormatter::getCalendar »
  • PHP Manual
  • IntlDateFormatter
  • Formats an object

IntlDateFormatter::formatObject

datefmt_format_object

(PHP 5 >= 5.5.0, PHP 7, PECL intl >= 3.0.0)

IntlDateFormatter::formatObject -- datefmt_format_object — Formats an object

Описание

Объектно-ориентированный стиль

public static IntlDateFormatter::formatObject ( object $object [, mixed $format = NULL [, string $locale = NULL ]] ) : string

Процедурный стиль

public static datefmt_format_object ( object $object [, mixed $format = NULL [, string $locale = NULL ]] ) : string

This function allows formatting an IntlCalendar or DateTime object without first explicitly creating a IntlDateFormatter object.

The temporary IntlDateFormatter that will be created will take the timezone from the passed in object. The timezone database bundled with PHP will not be used - ICU's will be used instead. The timezone identifier used in DateTime objects must therefore also exist in ICU's database.

Список параметров

object

An object of type IntlCalendar or DateTime. The timezone information in the object will be used.

format

How to format the date/time. This can either be an array with two elements (first the date style, then the time style, these being one of the constants IntlDateFormatter::NONE, IntlDateFormatter::SHORT, IntlDateFormatter::MEDIUM, IntlDateFormatter::LONG, IntlDateFormatter::FULL), an integer with the value of one of these constants (in which case it will be used both for the time and the date) or a string with the format described in » the ICU documentation. If NULL, the default style will be used.

locale

The locale to use, or NULL to use the default one.

Возвращаемые значения

A string with result или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlDateFormatter::formatObject() examples

<?php
/* default timezone is irrelevant; timezone taken from the object */
ini_set('date.timezone', 'UTC');
/* default locale is taken from this ini setting */
ini_set('intl.default_locale', 'fr_FR');

$cal = IntlCalendar::fromDateTime("2013-06-06 17:05:06 Europe/Dublin");
echo "default:\n\t",
        IntlDateFormatter::formatObject($cal),
        "\n";

echo "long \$format (full):\n\t",
        IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL),
        "\n";

echo "array \$format (none, full):\n\t",
        IntlDateFormatter::formatObject($cal, array(
                IntlDateFormatter::NONE,
                IntlDateFormatter::FULL)),
        "\n";

echo "string \$format (d 'of' MMMM y):\n\t",
        IntlDateFormatter::formatObject($cal, "d 'of' MMMM y", 'en_US'),
        "\n";

echo "with DateTime:\n\t",
        IntlDateFormatter::formatObject(
                new DateTime("2013-09-09 09:09:09 Europe/Madrid"),
                IntlDateFormatter::FULL,
                'es_ES'),
        "\n";

Результат выполнения данного примера:

default:
    6 juin 2013 17:05:06
long $format (full):
    jeudi 6 juin 2013 17:05:06 heure d'ete irlandaise
array $format (none, full):
    17:05:06 heure d'ete irlandaise
string $format (d 'of' MMMM y):
    6 of June 2013
with DateTime:
    lunes, 9 de septiembre de 2013 09:09:09 Hora de verano de Europa central


Get the calendar type used for the IntlDateFormatter

  • « IntlDateFormatter::formatObject
  • IntlDateFormatter::getDateType »
  • PHP Manual
  • IntlDateFormatter
  • Get the calendar type used for the IntlDateFormatter

IntlDateFormatter::getCalendar

datefmt_get_calendar

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getCalendar -- datefmt_get_calendar — Get the calendar type used for the IntlDateFormatter

Описание

Объектно-ориентированный стиль

IntlDateFormatter::getCalendar ( void ) : int

Процедурный стиль

datefmt_get_calendar ( IntlDateFormatter $fmt ) : int

Список параметров

fmt

The formatter resource

Возвращаемые значения

The calendar type being used by the formatter. Either IntlDateFormatter::TRADITIONAL or IntlDateFormatter::GREGORIAN.

Примеры

Пример #1 datefmt_get_calendar() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'calendar of the formatter is : ' . datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt, IntlDateFormatter::TRADITIONAL);
echo 'Now calendar of the formatter is : ' . datefmt_get_calendar($fmt);
?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'calendar of the formatter is : ' . $fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 'Now calendar of the formatter is : ' . $fmt->getCalendar();

?>

Результат выполнения данного примера:

calendar of the formatter is : 1
Now calendar of the formatter is : 0

Смотрите также

  • datefmt_get_calendar_object() - Get copy of formatter?s calendar object
  • datefmt_set_calendar() - Sets the calendar type used by the formatter
  • datefmt_create() - Create a date formatter


Get the datetype used for the IntlDateFormatter

  • « IntlDateFormatter::getCalendar
  • IntlDateFormatter::getErrorCode »
  • PHP Manual
  • IntlDateFormatter
  • Get the datetype used for the IntlDateFormatter

IntlDateFormatter::getDateType

datefmt_get_datetype

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getDateType -- datefmt_get_datetype — Get the datetype used for the IntlDateFormatter

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getDateType ( void ) : int

Процедурный стиль

datefmt_get_datetype ( IntlDateFormatter $fmt ) : int

Returns date type used by the formatter.

Список параметров

fmt

The formatter resource.

Возвращаемые значения

The current date type value of the formatter.

Примеры

Пример #1 datefmt_get_datetype() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'datetype of the formatter is : ' . datefmt_get_datetype($fmt);
echo 'First Formatted output with datetype is ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::SHORT,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Now datetype of the formatter is : ' . datefmt_get_datetype($fmt);
echo 'Second Formatted output with datetype is ' . datefmt_format($fmt, 0);

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'datetype of the formatter is : ' . $fmt->getDateType();
echo 'First Formatted output is ' . $fmt->format(0);
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::SHORT,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Now datetype of the formatter is : ' . $fmt->getDateType();
echo 'Second Formatted output is ' . $fmt->format(0);

?>

Результат выполнения данного примера:

datetype of the formatter is : 0
First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Now datetype of the formatter is : 2
Second Formatted output is 12/31/69 4:00:00 PM PT

Смотрите также

  • datefmt_get_timetype() - Get the timetype used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter


Get the error code from last operation

  • « IntlDateFormatter::getDateType
  • IntlDateFormatter::getErrorMessage »
  • PHP Manual
  • IntlDateFormatter
  • Get the error code from last operation

IntlDateFormatter::getErrorCode

datefmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getErrorCode -- datefmt_get_error_code — Get the error code from last operation

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getErrorCode ( void ) : int

Процедурный стиль

datefmt_get_error_code ( IntlDateFormatter $fmt ) : int

Get the error code from last operation. Returns error code from the last number formatting operation.

Список параметров

fmt

The formatter resource.

Возвращаемые значения

The error code, one of UErrorCode values. Initial value is U_ZERO_ERROR.

Примеры

Пример #1 datefmt_get_error_code() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$str = datefmt_format($fmt);
if (!$str) {
    printf(
        "ERROR: %s (%d)\n",
        datefmt_get_error_message($fmt),
        datefmt_get_error_code($fmt)
    );
}
?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$str = $fmt->format();
if (!$str) {
    printf(
        "ERROR: %s (%d)\n",
        $fmt->getErrorMessage(),
        $fmt->getErrorCode()
    );
}
?>

Результат выполнения данного примера:

ERROR: U_ZERO_ERROR (0)

Смотрите также

  • datefmt_get_error_message() - Get the error text from the last operation
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Get the error text from the last operation

  • « IntlDateFormatter::getErrorCode
  • IntlDateFormatter::getLocale »
  • PHP Manual
  • IntlDateFormatter
  • Get the error text from the last operation

IntlDateFormatter::getErrorMessage

datefmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getErrorMessage -- datefmt_get_error_message — Get the error text from the last operation

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getErrorMessage ( void ) : string

Процедурный стиль

datefmt_get_error_message ( IntlDateFormatter $fmt ) : string

Get the error text from the last operation.

Список параметров

fmt

The formatter resource.

Возвращаемые значения

Description of the last error.

Примеры

Пример #1 datefmt_get_error_message() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$str = datefmt_format($fmt);
if (!$str) {
    prtinf(
        "ERROR: %s (%d)\n",
        datefmt_get_error_message($fmt),
        datefmt_get_error_code($fmt)
    );
}
?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$str = $fmt->format();
if(!$str) {
    prtinf(
        "ERROR: %s (%d)\n",
        $fmt->getErrorMessage(),
        $fmt->getErrorCode()
    );
}

?>

Результат выполнения данного примера:

ERROR: U_ZERO_ERROR (0)

Смотрите также

  • datefmt_get_error_code() - Get the error code from last operation
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Get the locale used by formatter

  • « IntlDateFormatter::getErrorMessage
  • IntlDateFormatter::getPattern »
  • PHP Manual
  • IntlDateFormatter
  • Get the locale used by formatter

IntlDateFormatter::getLocale

datefmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getLocale -- datefmt_get_locale — Get the locale used by formatter

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getLocale ([ int $which ] ) : string

Процедурный стиль

datefmt_get_locale ( IntlDateFormatter $fmt [, int $which ] ) : string

Get locale used by the formatter.

Список параметров

fmt

The formatter resource

hich

You can choose between valid and actual locale ( Locale::VALID_LOCALE, Locale::ACTUAL_LOCALE, respectively). The default is the actual locale.

Возвращаемые значения

the locale of this formatter or 'false' if error

Примеры

Пример #1 datefmt_get_locale() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'locale of the formatter is : " . datefmt_get_locale($fmt);
echo 'First Formatted output is " . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'locale of the formatter is : ' . datefmt_get_locale($fmt);
echo 'Second Formatted output is ' . datefmt_format($fmt, 0);

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'locale of the formatter is : ' . $fmt->getLocale();
echo 'First Formatted output is ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'locale of the formatter is : ' . $fmt->getLocale();
echo 'Second Formatted output is ' . $fmt->format(0);

?>

Результат выполнения данного примера:

locale of the formatter is : en
First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
locale of the formatter is : de
Second Formatted output is Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00

Смотрите также

  • datefmt_create() - Create a date formatter


Get the pattern used for the IntlDateFormatter

  • « IntlDateFormatter::getLocale
  • IntlDateFormatter::getTimeType »
  • PHP Manual
  • IntlDateFormatter
  • Get the pattern used for the IntlDateFormatter

IntlDateFormatter::getPattern

datefmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getPattern -- datefmt_get_pattern — Get the pattern used for the IntlDateFormatter

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getPattern ( void ) : string

Процедурный стиль

datefmt_get_pattern ( IntlDateFormatter $fmt ) : string

Get pattern used by the formatter.

Список параметров

fmt

The formatter resource.

Возвращаемые значения

The pattern string being used to format/parse.

Примеры

Пример #1 datefmt_get_pattern() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'pattern of the formatter is : ' . datefmt_get_pattern($fmt);
echo 'First Formatted output with pattern is ' . datefmt_format($fmt, 0);
datefmt_set_pattern($fmt,'yyyymmdd hh:mm:ss z');
echo 'Now pattern of the formatter is : ' . datefmt_get_pattern($fmt);
echo 'Second Formatted output with pattern is ' . datefmt_format($fmt, 0);

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'pattern of the formatter is : ' . $fmt->getPattern();
echo 'First Formatted output is ' . $fmt->format(0);
$fmt->setPattern('yyyymmdd hh:mm:ss z');
echo 'Now pattern of the formatter is : ' . $fmt->getPattern();
echo 'Second Formatted output is ' . $fmt->format(0);
?>

Результат выполнения данного примера:

pattern of the formatter is : MM/dd/yyyy
First Formatted output is 12/31/1969
Now pattern of the formatter is : yyyymmdd hh:mm:ss z
Second Formatted output is 19690031 04:00:00 PST

Смотрите также

  • datefmt_set_pattern() - Set the pattern used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter


Get the timetype used for the IntlDateFormatter

  • « IntlDateFormatter::getPattern
  • IntlDateFormatter::getTimeZoneId »
  • PHP Manual
  • IntlDateFormatter
  • Get the timetype used for the IntlDateFormatter

IntlDateFormatter::getTimeType

datefmt_get_timetype

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeType -- datefmt_get_timetype — Get the timetype used for the IntlDateFormatter

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getTimeType ( void ) : int

Процедурный стиль

datefmt_get_timetype ( IntlDateFormatter $fmt ) : int

Return time type used by the formatter.

Список параметров

fmt

The formatter resource.

Возвращаемые значения

The current date type value of the formatter.

Примеры

Пример #1 datefmt_get_timetype() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'timetype of the formatter is : ' . datefmt_get_timetype($fmt);
echo 'First Formatted output with timetype is ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::SHORT,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Now timetype of the formatter is : ' . datefmt_get_timetype($fmt);
echo 'Second Formatted output with timetype is ' . datefmt_format($fmt, 0);

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'timetype of the formatter is : ' . $fmt->getTimeType();
echo 'First Formatted output is ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::SHORT,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Now timetype of the formatter is : ' . $fmt->getTimeType();
echo 'Second Formatted output is ' . $fmt->format(0);

?>

Результат выполнения данного примера:

timetype of the formatter is : 0
First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Now timetype of the formatter is : 3
Second Formatted output is Wednesday, December 31, 1969 4:00 PM

Смотрите также

  • datefmt_get_datetype() - Get the datetype used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter


Get the timezone-id used for the IntlDateFormatter

  • « IntlDateFormatter::getTimeType
  • IntlDateFormatter::getCalendarObject »
  • PHP Manual
  • IntlDateFormatter
  • Get the timezone-id used for the IntlDateFormatter

IntlDateFormatter::getTimeZoneId

datefmt_get_timezone_id

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeZoneId -- datefmt_get_timezone_id — Get the timezone-id used for the IntlDateFormatter

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getTimeZoneId ( void ) : string

Процедурный стиль

datefmt_get_timezone_id ( IntlDateFormatter $fmt ) : string

Get the timezone-id used for the IntlDateFormatter.

Список параметров

fmt

The formatter resource.

Возвращаемые значения

ID string for the time zone used by this formatter.

Примеры

Пример #1 datefmt_get_timezone_id() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'timezone_id of the formatter is : ' . datefmt_get_timezone_id($fmt);
datefmt_set_timezone_id($fmt, 'CN');
echo 'Now timezone_id of the formatter is : ' . datefmt_get_timezone_id($fmt);

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'timezone_id of the formatter is : ' . $fmt->getTimezoneId();
$fmt->setTimezoneId('CN');
echo 'Now timezone_id of the formatter is : ' . $fmt->getTimezoneId();

?>

Результат выполнения данного примера:

timezone_id of the formatter is : America/Los_Angeles
Now timezone_id of the formatter is : CN

Смотрите также

  • datefmt_set_timezone_id() - Sets the time zone to use
  • datefmt_create() - Create a date formatter


Get copy of formatter?s calendar object

  • « IntlDateFormatter::getTimeZoneId
  • IntlDateFormatter::getTimeZone »
  • PHP Manual
  • IntlDateFormatter
  • Get copy of formatter?s calendar object

IntlDateFormatter::getCalendarObject

datefmt_get_calendar_object

(PHP 5 >= 5.5.0, PHP 7, PECL intl >= 3.0.0)

IntlDateFormatter::getCalendarObject -- datefmt_get_calendar_object — Get copy of formatter?s calendar object

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getCalendarObject ( void ) : IntlCalendar

Процедурный стиль

datefmt_get_calendar_object ( void ) : IntlCalendar

Obtain a copy of the calendar object used internally by this formatter. This calendar will have a type (as in gregorian, japanese, buddhist, roc, persian, islamic, etc.) and a timezone that match the type and timezone used by the formatter. The date/time of the object is unspecified.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A copy of the internal calendar object used by this formatter.

Примеры

Пример #1 IntlDateFormatter::getCalendarObject() example

<?php
$formatter = IntlDateFormatter::create(
    "fr_FR@calendar=islamic",
    NULL,
    NULL,
    "GMT-01:00",
    IntlDateFormatter::TRADITIONAL
);

$cal = $formatter->getCalendarObject();

var_dump(
    $cal->getType(),
    $cal->getTimeZone(),
    $cal->getLocale(Locale::VALID_LOCALE)
);

Результат выполнения данного примера:

string(7) "islamic"
object(IntlTimeZone)#3 (4) {
  ["valid"]=>
  bool(true)
  ["id"]=>
  string(9) "GMT-01:00"
  ["rawOffset"]=>
  int(-3600000)
  ["currentOffset"]=>
  int(-3600000)
}
string(5) "fr_FR"

Смотрите также

  • IntlDateFormatter::getCalendar() - Get the calendar type used for the IntlDateFormatter
  • IntlDateFormatter::setCalendar() - Sets the calendar type used by the formatter
  • IntlCalendar


Get formatter?s timezone

  • « IntlDateFormatter::getCalendarObject
  • IntlDateFormatter::isLenient »
  • PHP Manual
  • IntlDateFormatter
  • Get formatter?s timezone

IntlDateFormatter::getTimeZone

datefmt_get_timezone

(PHP 5 >= 5.5.0, PHP 7, PECL intl >= 3.0.0)

IntlDateFormatter::getTimeZone -- datefmt_get_timezone — Get formatter?s timezone

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getTimeZone ( void ) : IntlTimeZone

Процедурный стиль

datefmt_get_timezone ( void ) : IntlTimeZone

Returns an IntlTimeZone object representing the timezone that will be used by this object to format dates and times. When formatting IntlCalendar and DateTime objects with this IntlDateFormatter, the timezone used will be the one returned by this method, not the one associated with the objects being formatted.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The associated IntlTimeZone object или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlDateFormatter::getTimeZone() examples

<?php

$madrid = IntlDateFormatter::create(NULL, NULL, NULL, 'Europe/Madrid');
$lisbon = IntlDateFormatter::create(NULL, NULL, NULL, 'Europe/Lisbon');

var_dump($madrid->getTimezone());
echo $madrid->getTimezone()->getDisplayName(
        false, IntlTimeZone::DISPLAY_GENERIC_LOCATION, "en_US"), "\n";
echo $lisbon->getTimeZone()->getId(), "\n";
//The id can also be retrieved with ->getTimezoneId()
echo $lisbon->getTimeZoneId(), "\n";

Результат выполнения данного примера:

object(IntlTimeZone)#4 (4) {
  ["valid"]=>
  bool(true)
  ["id"]=>
  string(13) "Europe/Madrid"
  ["rawOffset"]=>
  int(3600000)
  ["currentOffset"]=>
  int(7200000)
}
Spain Time
Europe/Lisbon
Europe/Lisbon

Смотрите также

  • IntlDateFormatter::getTimeZoneId() - Get the timezone-id used for the IntlDateFormatter
  • IntlDateFormatter::setTimeZone() - Sets formatter?s timezone
  • IntlTimeZone


Get the lenient used for the IntlDateFormatter

  • « IntlDateFormatter::getTimeZone
  • IntlDateFormatter::localtime »
  • PHP Manual
  • IntlDateFormatter
  • Get the lenient used for the IntlDateFormatter

IntlDateFormatter::isLenient

datefmt_is_lenient

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::isLenient -- datefmt_is_lenient — Get the lenient used for the IntlDateFormatter

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::isLenient ( void ) : bool

Процедурный стиль

datefmt_is_lenient ( IntlDateFormatter $fmt ) : bool

Check if the parser is strict or lenient in interpreting inputs that do not match the pattern exactly.

Список параметров

fmt

The formatter resource.

Возвращаемые значения

TRUE if parser is lenient, FALSE if parser is strict. By default the parser is lenient.

Примеры

Пример #1 datefmt_is_lenient() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'dd/mm/yyyy'
);
echo 'lenient of the formatter is : ';
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}
datefmt_set_lenient($fmt,false);
echo 'Now lenient of the formatter is : ';
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\n Trying to do parse('35/13/1971').Result is : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    "dd/mm/yyyy"
);
echo "lenient of the formatter is : ";
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0){
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo 'Now lenient of the formatter is : ';
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}

?>

Результат выполнения данного примера:

lenient of the formatter is : TRUE
Trying to do parse('35/13/1971').
Result is : -2147483
Now lenient of the formatter is : FALSE
Trying to do parse('35/13/1971').
Result is :
Error_msg is : Date parsing failed: U_PARSE_ERROR
Error_code is : 9

Смотрите также

  • datefmt_set_lenient() - Set the leniency of the parser
  • datefmt_create() - Create a date formatter


Parse string to a field-based time value

  • « IntlDateFormatter::isLenient
  • IntlDateFormatter::parse »
  • PHP Manual
  • IntlDateFormatter
  • Parse string to a field-based time value

IntlDateFormatter::localtime

datefmt_localtime

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::localtime -- datefmt_localtime — Parse string to a field-based time value

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::localtime ( string $value [, int &$position ] ) : array

Процедурный стиль

datefmt_localtime ( IntlDateFormatter $fmt , string $value [, int &$position ] ) : array

Converts string $value to a field-based time value ( an array of various fields), starting at $parse_pos and consuming as much of the input value as possible.

Список параметров

fmt

The formatter resource

value

string to convert to a time

position

Position at which to start the parsing in $value (zero-based). If no error occurs before $value is consumed, $parse_pos will contain -1 otherwise it will contain the position at which parsing ended . If $parse_pos > strlen($value), the parse fails immediately.

Возвращаемые значения

Localtime compatible array of integers : contains 24 hour clock value in tm_hour field

Примеры

Пример #1 datefmt_localtime() example

<?php

$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$arr = datefmt_localtime($fmt, 'Wednesday, December 31, 1969 4:00:00 PM PT', 0);
echo 'First parsed output is ';
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$arr = $fmt->localtime('Wednesday, December 31, 1969 4:00:00 PM PT', 0);
echo 'First parsed output is ';
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}

?>

Результат выполнения данного примера:

First parsed output is tm_sec : 0 , tm_min : 0 , tm_hour : 16 , tm_year : 1969 ,
tm_mday : 31 , tm_wday : 4 , tm_yday : 365 , tm_mon : 11 , tm_isdst : 0 ,

Смотрите также

  • datefmt_create() - Create a date formatter
  • datefmt_format() - Format the date/time value as a string
  • datefmt_parse() - Parse string to a timestamp value
  • datefmt_get_error_code() - Get the error code from last operation
  • datefmt_get_error_message() - Get the error text from the last operation


Parse string to a timestamp value

  • « IntlDateFormatter::localtime
  • IntlDateFormatter::setCalendar »
  • PHP Manual
  • IntlDateFormatter
  • Parse string to a timestamp value

IntlDateFormatter::parse

datefmt_parse

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::parse -- datefmt_parse — Parse string to a timestamp value

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::parse ( string $value [, int &$position ] ) : int

Процедурный стиль

datefmt_parse ( IntlDateFormatter $fmt , string $value [, int &$position ] ) : int

Converts string $value to an incremental time value, starting at $parse_pos and consuming as much of the input value as possible.

Список параметров

fmt

The formatter resource

value

string to convert to a time

position

Position at which to start the parsing in $value (zero-based). If no error occurs before $value is consumed, $parse_pos will contain -1 otherwise it will contain the position at which parsing ended (and the error occurred). This variable will contain the end position if the parse fails. If $parse_pos > strlen($value), the parse fails immediately.

Возвращаемые значения

timestamp parsed value, or FALSE if value can't be parsed.

Примеры

Пример #1 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'First parsed output is ' . $fmt->parse('Wednesday, December 20, 1989 4:00:00 PM PT');
$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
?>

Пример #2 datefmt_parse() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'First parsed output is ' . datefmt_parse($fmt, 'Wednesday, December 20, 1989 4:00:00 PM PT');
$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Second parsed output is ' . datefmt_parse($fmt, 'Mittwoch, 20. Dezember 1989 16:00 Uhr GMT-08:00');
?

Результат выполнения данного примера:

First parsed output is 630201600
Second parsed output is 630201600

Смотрите также

  • datefmt_create() - Create a date formatter
  • datefmt_format() - Format the date/time value as a string
  • datefmt_localtime() - Parse string to a field-based time value
  • datefmt_get_error_code() - Get the error code from last operation
  • datefmt_get_error_message() - Get the error text from the last operation


Sets the calendar type used by the formatter

  • « IntlDateFormatter::parse
  • IntlDateFormatter::setLenient »
  • PHP Manual
  • IntlDateFormatter
  • Sets the calendar type used by the formatter

IntlDateFormatter::setCalendar

datefmt_set_calendar

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::setCalendar -- datefmt_set_calendar — Sets the calendar type used by the formatter

Описание

Объектно-ориентированный стиль

IntlDateFormatter::setCalendar ( mixed $which ) : bool

Процедурный стиль

datefmt_set_calendar ( IntlDateFormatter $fmt , mixed $which ) : bool

Sets the calendar or calendar type used by the formatter.

Список параметров

fmt

The formatter resource.

which

This can either be: the calendar type to use (default is IntlDateFormatter::GREGORIAN, which is also used if NULL is specified) or an IntlCalendar object.

Any IntlCalendar object passed in will be cloned; no modifications will be made to the argument object.

The timezone of the formatter will only be kept if an IntlCalendar object is not passed, otherwise the new timezone will be that of the passed object.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.0/PECL 3.0.0 | It became possible to pass an IntlCalendar object.

Примеры

Пример #1 datefmt_set_calendar() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'calendar of the formatter is : ' . datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt, IntlDateFormatter::TRADITIONAL);
echo 'Now calendar of the formatter is : ' . datefmt_get_calendar($fmt);
?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'calendar of the formatter is : ' . $fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 'Now calendar of the formatter is : ' . $fmt->getCalendar();
?>

Результат выполнения данного примера:

calendar of the formatter is : 1
Now calendar of the formatter is : 0

Пример #3 Example with IntlCalendar argument

<?php
$time = strtotime("2013-03-03 00:00:00 UTC");
$formatter = IntlDateFormatter::create("en_US", NULL, NULL, "Europe/Amsterdam");

echo "before: ", $formatter->format($time), "\n";

/* note that the calendar's locale is not used! */
$formatter->setCalendar(IntlCalendar::createInstance(
               "America/New_York", "pt_PT@calendar=islamic"));

echo "after:  ", $formatter->format($time), "\n";

Результат выполнения данного примера:

before: Sunday, March 3, 2013 at 1:00:00 AM Central European Standard Time
after:  Saturday, Rabi? II 20, 1434 at 7:00:00 PM Eastern Standard Time

Смотрите также

  • datefmt_get_calendar() - Get the calendar type used for the IntlDateFormatter
  • datefmt_get_calendar_object() - Get copy of formatter?s calendar object
  • datefmt_create() - Create a date formatter


Set the leniency of the parser

  • « IntlDateFormatter::setCalendar
  • IntlDateFormatter::setPattern »
  • PHP Manual
  • IntlDateFormatter
  • Set the leniency of the parser

IntlDateFormatter::setLenient

datefmt_set_lenient

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::setLenient -- datefmt_set_lenient — Set the leniency of the parser

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::setLenient ( bool $lenient ) : bool

Процедурный стиль

datefmt_set_lenient ( IntlDateFormatter $fmt , bool $lenient ) : bool

Define if the parser is strict or lenient in interpreting inputs that do not match the pattern exactly. Enabling lenient parsing allows the parser to accept otherwise flawed date or time patterns, parsing as much as possible to obtain a value. Extra space, unrecognized tokens, or invalid values ("February 30th") are not accepted.

Список параметров

fmt

The formatter resource

lenient

Sets whether the parser is lenient or not, default is TRUE (lenient).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 datefmt_set_lenient() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'dd/MM/yyyy'
);
echo 'lenient of the formatter is : ';
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}
datefmt_set_lenient($fmt, false);
echo "\nNow lenient of the formatter is : ";
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\nTrying to do parse('35/13/1971').\nResult is : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : ".intl_get_error_message();
    echo "\nError_code is : ".intl_get_error_code();
}

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'dd/MM/yyyy'
);
echo 'lenient of the formatter is : ';
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo "\nNow lenient of the formatter is : ";
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}

?>

Результат выполнения данного примера:

lenient of the formatter is : TRUE
Trying to do parse('35/13/1971').
Result is : 66038400
Now lenient of the formatter is : FALSE
Trying to do parse('35/13/1971').
Result is :
Error_msg is : Date parsing failed: U_PARSE_ERROR
Error_code is : 9

Смотрите также

  • datefmt_is_lenient() - Get the lenient used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter


Set the pattern used for the IntlDateFormatter

  • « IntlDateFormatter::setLenient
  • IntlDateFormatter::setTimeZoneId »
  • PHP Manual
  • IntlDateFormatter
  • Set the pattern used for the IntlDateFormatter

IntlDateFormatter::setPattern

datefmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::setPattern -- datefmt_set_pattern — Set the pattern used for the IntlDateFormatter

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::setPattern ( string $pattern ) : bool

Процедурный стиль

datefmt_set_pattern ( IntlDateFormatter $fmt , string $pattern ) : bool

Set the pattern used for the IntlDateFormatter.

Список параметров

fmt

The formatter resource.

pattern

New pattern string to use. Possible patterns are documented at » http://userguide.icu-project.org/formatparse/datetime.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Bad formatstrings are usually the cause of the failure.

Примеры

Пример #1 datefmt_set_pattern() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'pattern of the formatter is : ' . datefmt_get_pattern($fmt);
echo 'First Formatted output with pattern is ' . datefmt_format($fmt, 0);
datefmt_set_pattern($fmt, 'yyyymmdd hh:mm:ss z');
echo 'Now pattern of the formatter is : ' . datefmt_get_pattern($fmt);
echo 'Second Formatted output with pattern is ' . datefmt_format($fmt, 0);

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'pattern of the formatter is : ' . $fmt->getPattern();
echo 'First Formatted output is ' . $fmt->format(0);
$fmt->setPattern('yyyymmdd hh:mm:ss z');
echo 'Now pattern of the formatter is : ' . $fmt->getPattern();
echo 'Second Formatted output is ' . $fmt->format(0);

?>

Результат выполнения данного примера:

pattern of the formatter is : MM/dd/yyyy
First Formatted output with pattern is 12/31/1969
Now pattern of the formatter is : yyyymmdd hh:mm:ss z
Second Formatted output with pattern is 19690031 04:00:00 PST

Смотрите также

  • datefmt_get_pattern() - Get the pattern used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter


Sets the time zone to use

  • « IntlDateFormatter::setPattern
  • IntlDateFormatter::setTimeZone »
  • PHP Manual
  • IntlDateFormatter
  • Sets the time zone to use

IntlDateFormatter::setTimeZoneId

datefmt_set_timezone_id

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::setTimeZoneId -- datefmt_set_timezone_id — Sets the time zone to use

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.5.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • IntlDateFormatter::setTimeZone()

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::setTimeZoneId ( string $zone ) : bool

Процедурный стиль

datefmt_set_timezone_id ( IntlDateFormatter $fmt , string $zone ) : bool

Sets the time zone to use.

Список параметров

fmt

The formatter resource.

zone

The time zone ID string of the time zone to use. If NULL or the empty string, the default time zone for the runtime is used.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | This function has been removed.
5.5.0 | This function has been deprecated.

Примеры

Пример #1 datefmt_set_timezone_id() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'timezone_id of the formatter is : ' . datefmt_get_timezone_id($fmt);
datefmt_set_timezone_id($fmt, 'CN');
echo 'Now timezone_id of the formatter is : ' . datefmt_get_timezone_id($fmt);
?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'timezone_id of the formatter is : ' . $fmt->getTimezoneId();
$fmt->setTimezoneId('CN');
echo 'Now timezone_id of the formatter is : ' . $fmt->getTimezoneId();

?>

Результат выполнения данного примера:

timezone_id of the formatter is : America/Los_Angeles
Now timezone_id of the formatter is : CN

Смотрите также

  • datefmt_get_timezone_id() - Get the timezone-id used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter


Sets formatter?s timezone

  • « IntlDateFormatter::setTimeZoneId
  • ResourceBundle »
  • PHP Manual
  • IntlDateFormatter
  • Sets formatter?s timezone

IntlDateFormatter::setTimeZone

datefmt_set_timezone

(PHP 5 >= 5.5.0, PHP 7, PECL intl >= 3.0.0)

IntlDateFormatter::setTimeZone -- datefmt_set_timezone — Sets formatter?s timezone

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::setTimeZone ( mixed $zone ) : bool

Процедурный стиль

datefmt_set_timezone ( IntlDateFormatter $fmt , mixed $zone ) : bool

Sets the timezone used for the IntlDateFormatter. object.

Список параметров

fmt

The formatter resource.

zone

The timezone to use for this formatter. This can be specified in the following forms:

  • Если NULL, то будет использована временная зона по умолчанию, заданная в ini-настроке date.timezone либо с помощью функции date_default_timezone_set() и возвращенная функцией date_default_timezone_get().

  • Объект класса IntlTimeZone.

  • Объект класса DateTimeZone. Его идентификатор будет извлечен и на его основе будет создан объект временной зоны ICU; временная зона будет сохранена в базе данных ICU, а не PHP.

  • Строка, являющаяся корректным идентификатором временной зоны ICU. Смотрите IntlTimeZone::createTimeZoneIDEnumeration(). "Сырые" смещения, типа "GMT+08:30", также поддерживаются.

Возвращаемые значения

Returns TRUE on success and FALSE on failure.

Примеры

Пример #1 IntlDateFormatter::setTimeZone() examples

<?php
ini_set('date.timezone', 'Europe/Amsterdam');

$formatter = IntlDateFormatter::create(NULL, NULL, NULL, "UTC");

$formatter->setTimeZone(NULL);
echo "NULL\n    ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone(IntlTimeZone::createTimeZone('Europe/Lisbon'));
echo "IntlTimeZone\n    ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone(new DateTimeZone('Europe/Paris'));
echo "DateTimeZone\n    ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone('Europe/Rome');
echo "String\n    ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone('GMT+00:30');
print_r($formatter->getTimeZone());

Результат выполнения данного примера:

NULL
    Europe/Amsterdam
IntlTimeZone
    Europe/Lisbon
DateTimeZone
    Europe/Paris
String
    Europe/Rome
IntlTimeZone Object
(
    [valid] => 1
    [id] => GMT+00:30
    [rawOffset] => 1800000
    [currentOffset] => 1800000
)

Смотрите также

  • IntlDateFormatter::getTimeZone() - Get formatter?s timezone


Класс ResourceBundle

(PHP 5 >= 5.3.2, PHP 7, PECL intl >= 2.0.0)

Введение

Локализованные програмные продукты часто нуждаются в наборах данных подготовленных в зависимости от текущей локали, например: сообщения, метки, шаблоны форматирования. Механизм ресурсов ICU позволяет задать наборы ресурсов, которые приложение может загрузить в зависимости от текущей локали и использовать унифицированным, не зависяцим от локами, образом.

Этот класс реализует доступ к файлам ресурсов ICU. Эти файлы являются бинарными массивами данных, которые ICU использует для хранения локализованных данных.

Пакет ресурсов ICU может содержать простые и сложные ресурсы. Сложные ресурсы - это контейнеры, которые могут быть индексированы как числами так и строками (аналогично массивам PHP). Простые ресурсы могут быть следующих типов: строки, целые, бинарные поля данных и целочисленные массивы.

ResourceBundleподдерживает прямой доступ к данным через синтаксис доступа к массивам и итерироваться через foreach, так же как и доступ через методы. В результате будет получено значение PHP для простых ресурсов и объекты ResourceBundle для сложных. Все ресурсы доступны только для чтения.

Обзор классов

ResourceBundle {
/* Методы */
public __construct ( string $locale , string $bundlename [, bool $fallback ] )
public count ( void ) : int
public static create ( string $locale , string $bundlename [, bool $fallback ] ) : ResourceBundle
public getErrorCode ( void ) : int
public getErrorMessage ( void ) : string
public get ( string|int $index [, bool $fallback = TRUE ] ) : mixed
public getLocales ( string $bundlename ) : array
}

Смотрите также

  • » Менеджер ресурсов ICU
  • » Данные ICU

Содержание

  • ResourceBundle::count — Получить количество элементов в пакете
  • ResourceBundle::create — Создать пакет ресурсов
  • ResourceBundle::getErrorCode — Получить последний код ошибки пакета
  • ResourceBundle::getErrorMessage — Получить последнее сообщение об ошибке пакета
  • ResourceBundle::get — Получить данные из пакета
  • ResourceBundle::getLocales — Получить поддерживаемые локали


Получить количество элементов в пакете

  • « ResourceBundle
  • ResourceBundle::create »
  • PHP Manual
  • ResourceBundle
  • Получить количество элементов в пакете

ResourceBundle::count

resourcebundle_count

(PHP 5 >= 5.3.2, PHP 7, PECL intl >= 2.0.0)

ResourceBundle::count -- resourcebundle_count — Получить количество элементов в пакете

Описание

Объектно-ориентированный стиль

public ResourceBundle::count ( void ) : int

Процедурный стиль

resourcebundle_count ( ResourceBundle $r ) : int

Получает количество элементов в пакете.

Список параметров

r

Объект ResourceBundle.

Возвращаемые значения

Возвращает количество элементов в пакете.

Примеры

Пример #1 Пример использования resourcebundle_count()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo resourcebundle_count($r);
?>

Пример #2 Пример в объектно-ориентированном стиле

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/myapp");
echo $r->count();
?>

Результат выполнения данного примера:

42

Смотрите также

  • resourcebundle_get() - Получить данные из пакета


Создать пакет ресурсов

  • « ResourceBundle::count
  • ResourceBundle::getErrorCode »
  • PHP Manual
  • ResourceBundle
  • Создать пакет ресурсов

ResourceBundle::create

resourcebundle_create

ResourceBundle::__construct

(PHP 5 >= 5.3.2, PHP 7, PECL intl >= 2.0.0)

ResourceBundle::create -- resourcebundle_create -- ResourceBundle::__construct — Создать пакет ресурсов

Описание

Объектно-ориентированный стиль (method)

public static ResourceBundle::create ( string $locale , string $bundlename [, bool $fallback ] ) : ResourceBundle

Процедурный стиль

resourcebundle_create ( string $locale , string $bundlename [, bool $fallback ] ) : ResourceBundle

Объектно-ориентированный стиль (constructor):

public ResourceBundle::__construct ( string $locale , string $bundlename [, bool $fallback ] )

Создает пакет ресурсов.

Список параметров

locale

Локаль для которой необходимо загружать ресурсы (имя локали, например, ru_RU).

bundlename

Директория, в которой лежат даные, либо имя .dat файла.

fallback

Определяет, нужно ли точно придерживаться заданной локали или можно откатываться к родительской, если возможно.

Возвращаемые значения

Возвращает объект ResourceBundle или NULL в случае возникновения ошибки.

Примеры

Пример #1 Пример использования resourcebundle_create()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo $r['teststring'];
?>

Пример #2 Пример использования ResourceBundle::create()

<?php
$r = ResourceBundle::create( 'es', "/usr/share/data/myapp");
echo $r['teststring'];
?>

Результат выполнения данного примера:

?Hola, mundo!

Смотрите также

  • resourcebundle_get() - Получить данные из пакета


Получить последний код ошибки пакета

  • « ResourceBundle::create
  • ResourceBundle::getErrorMessage »
  • PHP Manual
  • ResourceBundle
  • Получить последний код ошибки пакета

ResourceBundle::getErrorCode

resourcebundle_get_error_code

(PHP 5 >= 5.3.2, PHP 7, PECL intl >= 2.0.0)

ResourceBundle::getErrorCode -- resourcebundle_get_error_code — Получить последний код ошибки пакета

Описание

Объектно-ориентированный стиль

public ResourceBundle::getErrorCode ( void ) : int

Процедурный стиль

resourcebundle_get_error_code ( ResourceBundle $r ) : int

Возвращает код последней ошибки возникшей при вызове функций пакета.

Список параметров

r

Объект ResourceBundle.

Возвращаемые значения

Возвращает код последней ошибки возникшей при вызове функций пакета.

Примеры

Пример #1 Пример использования resourcebundle_get_error_code()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(resourcebundle_get_error_code($r))) {
    report_error("Ошибка пакета");
}
?>

Пример #2 Пример в объектно-ориентированном стиле

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(ResourceBundle::getErrorCode($r))) {
    report_error("Ошибка пакета");
}
?>

Смотрите также

  • resourcebundle_get_error_message() - Получить последнее сообщение об ошибке пакета
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Получить последнее сообщение об ошибке пакета

  • « ResourceBundle::getErrorCode
  • ResourceBundle::get »
  • PHP Manual
  • ResourceBundle
  • Получить последнее сообщение об ошибке пакета

ResourceBundle::getErrorMessage

resourcebundle_get_error_message

(PHP 5 >= 5.3.2, PHP 7, PECL intl >= 2.0.0)

ResourceBundle::getErrorMessage -- resourcebundle_get_error_message — Получить последнее сообщение об ошибке пакета

Описание

Объектно-ориентированный стиль

public ResourceBundle::getErrorMessage ( void ) : string

Процедурный стиль

resourcebundle_get_error_message ( ResourceBundle $r ) : string

Возвращает последнее сообщение об ошибке при вызове функций пакета.

Список параметров

r

Объект ResourceBundle.

Возвращаемые значения

Возвращает последнее сообщение об ошибке при вызове функций пакета.

Примеры

Пример #1 Пример использования resourcebundle_get_error_message()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(resourcebundle_get_error_code($r))) {
    report_error("Ошибка пакета: ".resourcebundle_get_error_message($r));
}
?>

Пример #2 Пример в объектно-ориентированном стиле

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(ResourceBundle::getErrorCode($r))) {
    report_error("Ошибка пакета: ".ResourceBundle::getErrorMessage($r));
}
?>

Смотрите также

  • resourcebundle_get_error_code() - Получить последний код ошибки пакета
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Получить данные из пакета

  • « ResourceBundle::getErrorMessage
  • ResourceBundle::getLocales »
  • PHP Manual
  • ResourceBundle
  • Получить данные из пакета

ResourceBundle::get

resourcebundle_get

(PHP 5 >= 5.3.2, PHP 7, PECL intl >= 2.0.0)

ResourceBundle::get -- resourcebundle_get — Получить данные из пакета

Описание

Объектно-ориентированный стиль

public ResourceBundle::get ( string|int $index [, bool $fallback = TRUE ] ) : mixed

Процедурный стиль

resourcebundle_get ( ResourceBundle $r , string|int $index [, bool $fallback = TRUE ] ) : mixed

Возвращает данные из пакета по индексу или строковому ключу.

Список параметров

r

Объект ResourceBundle.

index

Индекс данных, должен быть строкой или целым числом.

fallback

Должна ли локаль совпадать точно, или можно откатиться к родительской локали.

Возвращаемые значения

Возвращает данные из пакета по индексу или строковому ключу или NULL в случае возникновения ошибки. Строки, целые числа и бинарные строки возвращаются в соответствующем типе PHP, массивы целых чисел возвращаются как массивы PHP. Сложные типы возвращаются как объекты ResourceBundle.

Примеры

Пример #1 Пример использования resourcebundle_get()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo resourcebundle_get($r, 'somestring');
?>

Пример #2 Пример в объектно-ориентированном стиле

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/myapp");
echo $r->get('somestring');
?>

Результат выполнения данного примера:

?Hola, mundo!

Смотрите также

  • resourcebundle_count() - Получить количество элементов в пакете


Получить поддерживаемые локали

  • « ResourceBundle::get
  • Spoofchecker »
  • PHP Manual
  • ResourceBundle
  • Получить поддерживаемые локали

ResourceBundle::getLocales

resourcebundle_locales

(PHP 5 >= 5.3.2, PHP 7, PECL intl >= 2.0.0)

ResourceBundle::getLocales -- resourcebundle_locales — Получить поддерживаемые локали

Описание

Объектно-ориентированный стиль

public ResourceBundle::getLocales ( string $bundlename ) : array

Процедурный стиль

resourcebundle_locales ( string $bundlename ) : array

Возвращает доступные в ResourceBundle локали.

Список параметров

bundlename

Путь к ResourceBundle или пустая строка, для получения списка по умолчанию.

Возвращаемые значения

Возвращает доступные в ResourceBundle локали.

Примеры

Пример #1 Пример использования resourcebundle_locales()

<?php
$bundle = "/user/share/data/myapp";
echo join(PHP_EOL, resourcebundle_locales($bundle));
?>

Результатом выполнения данного примера будет что-то подобное:

es
root

Пример #2 Пример в объектно-ориентированном стиле

<?php
$bundle = "/usr/share/data/myapp";
$r = new ResourceBundle( 'es', $bundle);
echo join("\n", $r->getLocales($bundle));
?>

Результатом выполнения данного примера будет что-то подобное:

es
root

Смотрите также

  • resourcebundle_get() - Получить данные из пакета


Класс Spoofchecker

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Введение

Этот класс существует потому, что Unicode содержит большое количество символов и включает в себя различные системы письма со всего мира и их некорректное использование может сделать программы и системы уязвимыми к хакерским атакам, использующим сходство символов.

Предоставляемые методы позволяют проверить строку на предмет попыток обмануть пользователя (spoof detection), например, вставить в слово "pаypаl" кириллический символ 'а'.

Обзор классов

Spoofchecker {
/* Константы */
const number ASCII = 0x10000000 ;
const number HIGHLY_RESTRICTIVE = 0x30000000 ;
const number MODERATELY_RESTRICTIVE = 0x40000000 ;
const number MINIMALLY_RESTRICTIVE = 0x50000000 ;
const number UNRESTRICTIVE = 0x60000000 ;
const number SINGLE_SCRIPT_RESTRICTIVE = 0x20000000 ;
const integer SINGLE_SCRIPT_CONFUSABLE = 1 ;
const integer MIXED_SCRIPT_CONFUSABLE = 2 ;
const integer WHOLE_SCRIPT_CONFUSABLE = 4 ;
const integer ANY_CASE = 8 ;
const integer SINGLE_SCRIPT = 16 ;
const integer INVISIBLE = 32 ;
const integer CHAR_LIMIT = 64 ;
/* Методы */
public areConfusable ( string $str1 , string $str2 [, string &$error ] ) : bool
public __construct ( void )
public isSuspicious ( string $text [, string &$error ] ) : bool
public setAllowedLocales ( string $locale_list ) : void
public setChecks ( int $checks ) : void
}

Предопределенные константы

Spoofchecker::ASCII

Spoofchecker::HIGHLY_RESTRICTIVE

Spoofchecker::MODERATELY_RESTRICTIVE

Spoofchecker::MINIMALLY_RESTRICTIVE

Spoofchecker::UNRESTRICTIVE

Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE

Spoofchecker::SINGLE_SCRIPT_CONFUSABLE

Spoofchecker::MIXED_SCRIPT_CONFUSABLE

Spoofchecker::WHOLE_SCRIPT_CONFUSABLE

Spoofchecker::ANY_CASE

Spoofchecker::SINGLE_SCRIPT

Spoofchecker::INVISIBLE

Spoofchecker::CHAR_LIMIT

Список изменений

Версия | Описание
7.3.0 | Добавлены константы класса, используемые Spoofchecker::setRestrictionLevel(), такие как: Spoofchecker::ASCII, Spoofchecker::HIGHLY_RESTRICTIVE, Spoofchecker::MODERATELY_RESTRICTIVE, Spoofchecker::MINIMALLY_RESTRICTIVE, Spoofchecker::UNRESTRICTIVE, Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE.

Содержание

  • Spoofchecker::areConfusable — Проверить, являются ли строки подозрительными
  • Spoofchecker::__construct — Конструктор класса
  • Spoofchecker::isSuspicious — Проверяет, содержит ли текст подозрительные символы
  • Spoofchecker::setAllowedLocales — Локаль для использования в проверках
  • Spoofchecker::setChecks — Установить набор проверок


Проверить, являются ли строки подозрительными

  • « Spoofchecker
  • Spoofchecker::__construct »
  • PHP Manual
  • Spoofchecker
  • Проверить, являются ли строки подозрительными

Spoofchecker::areConfusable

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Spoofchecker::areConfusable — Проверить, являются ли строки подозрительными

Описание

public Spoofchecker::areConfusable ( string $str1 , string $str2 [, string &$error ] ) : bool

Проверяет, на сколько легко перепутать две строки.

Список параметров

str1

Первая строка.

str2

Вторая строка.

error

Этот параметр передается по ссылке и заполняется строкой содержащей ошибку, если таковая есть.

Возвращаемые значения

Возвращает TRUE, если две строки легко перепутать и FALSE, если нет.

Примеры

Пример #1 Пример использования Spoofchecker::areConfusable()

<?php
$checker = new Spoofchecker();

$checker->areConfusable('google.com', 'goog1e.com'); // true
// Английскую строчную "l" легко перепутать с цифрой 1

$checker->areConfusable('google.com', 'g00g1e.com'); // false
// Ноль (0) сложно перепутать со строчной "o"


Конструктор класса

  • « Spoofchecker::areConfusable
  • Spoofchecker::isSuspicious »
  • PHP Manual
  • Spoofchecker
  • Конструктор класса

Spoofchecker::__construct

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Spoofchecker::__construct — Конструктор класса

Описание

public Spoofchecker::__construct ( void )

Создает экземпляр класса Spoofchecker.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает экземпляр класса Spoofchecker.


Проверяет, содержит ли текст подозрительные символы

  • « Spoofchecker::__construct
  • Spoofchecker::setAllowedLocales »
  • PHP Manual
  • Spoofchecker
  • Проверяет, содержит ли текст подозрительные символы

Spoofchecker::isSuspicious

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Spoofchecker::isSuspicious — Проверяет, содержит ли текст подозрительные символы

Описание

public Spoofchecker::isSuspicious ( string $text [, string &$error ] ) : bool

Проверяет, содержит ли текст подозрительные символы, которые визуально идентичны, но являются при этом символами Unicode из другого языкового набора.

Список параметров

text

Строка для проверки.

error

Этот параметр передается по ссылке и заполняется строкой содержащей ошибку, если таковая есть.

Возвращаемые значения

Возвращает TRUE, если содержит подозрительные символы и FALSE, если нет.

Примеры

Пример #1 Пример использования Spoofchecker::isSuspicious()

<?php
$checker = new Spoofchecker();

$checker->isSuspicious('google.com'); // false: только символы ASCII

$checker->isSuspicious('Рaypal.com'); // true
// Первая буква из кириллического набора, а не обычная латинская "P"


Локаль для использования в проверках

  • « Spoofchecker::isSuspicious
  • Spoofchecker::setChecks »
  • PHP Manual
  • Spoofchecker
  • Локаль для использования в проверках

Spoofchecker::setAllowedLocales

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Spoofchecker::setAllowedLocales — Локаль для использования в проверках

Описание

public Spoofchecker::setAllowedLocales ( string $locale_list ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

locale_list

Возвращаемые значения


Установить набор проверок

  • « Spoofchecker::setAllowedLocales
  • Transliterator »
  • PHP Manual
  • Spoofchecker
  • Установить набор проверок

Spoofchecker::setChecks

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Spoofchecker::setChecks — Установить набор проверок

Описание

public Spoofchecker::setChecks ( int $checks ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checks

Возвращаемые значения


Класс Transliterator

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Введение

Данный класс предоставляет функционал транслитерации строк.

Обзор классов

Transliterator {
/* Константы */
const integer FORWARD = 0 ;
const integer REVERSE = 1 ;
/* Свойства */
public $id ;
/* Методы */
__construct ( void )
public static create ( string $id [, int $direction ] ) : Transliterator
public static createFromRules ( string $rules [, string $direction ] ) : Transliterator
public createInverse ( void ) : Transliterator
public getErrorCode ( void ) : int
public getErrorMessage ( void ) : string
public static listIDs ( void ) : array
public transliterate ( string $subject [, int $start [, int $end ]] ) : string
}

Свойства

id

Предопределенные константы

Transliterator::FORWARD

Transliterator::REVERSE

Содержание

  • Transliterator::__construct — Приватный конструктор
  • Transliterator::create — Создать транслитератор
  • Transliterator::createFromRules — Создать транслитератор на основе правил
  • Transliterator::createInverse — Создать инвертированный транслитератор
  • Transliterator::getErrorCode — Получить код последней ошибки
  • Transliterator::getErrorMessage — Получить последнее сообщение об ошибке
  • Transliterator::listIDs — Получить идентификаторы транслитератора
  • Transliterator::transliterate — Транслитерировать строку


Приватный конструктор

  • « Transliterator
  • Transliterator::create »
  • PHP Manual
  • Transliterator
  • Приватный конструктор

Transliterator::__construct

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Transliterator::__construct — Приватный конструктор

Описание

Transliterator::__construct ( void )

Этот метод не может быть вызван. Он существует только для закрытия возможности создания объекта с помощью оператора new.

Вместо него используйте фабричные методы Transliterator::create() или Transliterator::createFromRules().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Этот метод не должен запускаться. Но если вы все же его запустили (например, через reflection), то результат будет непредсказуем.

Смотрите также

  • Transliterator::create() - Создать транслитератор
  • Transliterator::createFromRules() - Создать транслитератор на основе правил


Создать транслитератор

  • « Transliterator::__construct
  • Transliterator::createFromRules »
  • PHP Manual
  • Transliterator
  • Создать транслитератор

Transliterator::create

transliterator_create

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Transliterator::create -- transliterator_create — Создать транслитератор

Описание

Объектно-ориентированный стиль

public static Transliterator::create ( string $id [, int $direction ] ) : Transliterator

Процедурный стиль

transliterator_create ( string $id [, int $direction ] ) : Transliterator

Открывает объект Transliterator по идентификатору.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

id

Идентификатор.

direction

Направление транслитерации. По умолчанию >Transliterator::FORWARD. Можно использовать Transliterator::REVERSE.

Возвращаемые значения

Возвращает объект Transliterator или NULL в случае возникновения ошибки.

Смотрите также

  • Transliterator::getErrorMessage() - Получить последнее сообщение об ошибке
  • Transliterator::__construct() - Приватный конструктор


Создать транслитератор на основе правил

  • « Transliterator::create
  • Transliterator::createInverse »
  • PHP Manual
  • Transliterator
  • Создать транслитератор на основе правил

Transliterator::createFromRules

transliterator_create_from_rules

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Transliterator::createFromRules -- transliterator_create_from_rules — Создать транслитератор на основе правил

Описание

Объектно-ориентированный стиль

public static Transliterator::createFromRules ( string $rules [, string $direction ] ) : Transliterator

Процедурный стиль

transliterator_create_from_rules ( string $id [, int $direction ] ) : Transliterator

Создать транслитератор на основе правил.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

rules

Правила.

direction

Направление транслитерации. По умолчанию >Transliterator::FORWARD. Можно использовать Transliterator::REVERSE.

Возвращаемые значения

Возвращает объект Transliterator или NULL в случае возникновения ошибки.

Смотрите также

  • Transliterator::getErrorMessage() - Получить последнее сообщение об ошибке
  • Transliterator::create() - Создать транслитератор


Создать инвертированный транслитератор

  • « Transliterator::createFromRules
  • Transliterator::getErrorCode »
  • PHP Manual
  • Transliterator
  • Создать инвертированный транслитератор

Transliterator::createInverse

transliterator_create_inverse

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Transliterator::createInverse -- transliterator_create_inverse — Создать инвертированный транслитератор

Описание

Объектно-ориентированный стиль

public Transliterator::createInverse ( void ) : Transliterator

Процедурный стиль

transliterator_create_inverse ( void ) : Transliterator

Открывает инвертированный транслитератор.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект Transliterator или NULL в случае возникновения ошибки.

Смотрите также

  • Transliterator::getErrorMessage() - Получить последнее сообщение об ошибке
  • Transliterator::create() - Создать транслитератор


Получить код последней ошибки

  • « Transliterator::createInverse
  • Transliterator::getErrorMessage »
  • PHP Manual
  • Transliterator
  • Получить код последней ошибки

Transliterator::getErrorCode

transliterator_get_error_code

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Transliterator::getErrorCode -- transliterator_get_error_code — Получить код последней ошибки

Описание

Объектно-ориентированный стиль

public Transliterator::getErrorCode ( void ) : int

Процедурный стиль

transliterator_get_error_code ( void ) : int

Возвращает код последней ошибки.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Код ошибки или FALSE, если ошибок не было или если получить его не удалось.

Смотрите также

  • Transliterator::getErrorMessage() - Получить последнее сообщение об ошибке
  • Transliterator::listIDs() - Получить идентификаторы транслитератора


Получить последнее сообщение об ошибке

  • « Transliterator::getErrorCode
  • Transliterator::listIDs »
  • PHP Manual
  • Transliterator
  • Получить последнее сообщение об ошибке

Transliterator::getErrorMessage

transliterator_get_error_message

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Transliterator::getErrorMessage -- transliterator_get_error_message — Получить последнее сообщение об ошибке

Описание

Объектно-ориентированный стиль

public Transliterator::getErrorMessage ( void ) : string

Процедурный стиль

transliterator_get_error_message ( void ) : string

Возвращает последнее сообщение об ошибке.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сообщение об ошибке или FALSE, если ошибок не было или если получить его не удалось.

Смотрите также

  • Transliterator::getErrorCode() - Получить код последней ошибки
  • Transliterator::listIDs() - Получить идентификаторы транслитератора


Получить идентификаторы транслитератора

  • « Transliterator::getErrorMessage
  • Transliterator::transliterate »
  • PHP Manual
  • Transliterator
  • Получить идентификаторы транслитератора

Transliterator::listIDs

transliterator_list_ids

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Transliterator::listIDs -- transliterator_list_ids — Получить идентификаторы транслитератора

Описание

Объектно-ориентированный стиль

public static Transliterator::listIDs ( void ) : array

Процедурный стиль

transliterator_list_ids ( void ) : array

Возвращает массив зарегистрированных идентификаторов транслитератора.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив зарегистрированных идентификаторов транслитератора, или FALSE в случае возникновения ошибки.

Смотрите также

  • Transliterator::getErrorMessage() - Получить последнее сообщение об ошибке
  • Transliterator::transliterate() - Транслитерировать строку


Транслитерировать строку

  • « Transliterator::listIDs
  • IntlBreakIterator »
  • PHP Manual
  • Transliterator
  • Транслитерировать строку

Transliterator::transliterate

transliterator_transliterate

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Transliterator::transliterate -- transliterator_transliterate — Транслитерировать строку

Описание

Объектно-ориентированный стиль

public Transliterator::transliterate ( string $subject [, int $start [, int $end ]] ) : string

Процедурный стиль

transliterator_transliterate ( mixed $transliterator , string $subject [, int $start [, int $end ]] )

Преобразует строку или ее часть, используя транслитератор ICU.

Список параметров

transliterator

В процедурном варианте, Transliterator или строка, из которой может быть собран объект Transliterator.

subject

Строка для транслитерации.

start

Начальный индекс, включительно, (в кодовых единицах UTF-16), с которого начинается часть строки, предназначенная для транслитерации. Индексация начинается с 0. Текст до этой позиции останется как есть.

end

Начальный индекс, не включая, (в кодовых единицах UTF-16), которым заканчивается часть строки, предназначенная для транслитерации. Индексация начинается с 0. Текст с этой позиции останется как есть.

Возвращаемые значения

Преобразованная строка в случае успешного выполнения, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Конвертация экранированной UTF-16 строки

<?php
$s = "\u304A\u65E9\u3046\u3054\u3056\u3044\u307E\u3059";
echo transliterator_transliterate("Hex-Any/Java", $s), "\n";

//теперь обратная операция с дополнительным символом
$supplChar = html_entity_decode('&#x1D11E;');
echo mb_strlen($supplChar, "UTF-8"), "\n";
$encSupplChar = transliterator_transliterate("Any-Hex/Java", $supplChar);
//вывод двух кодированных UTF-16 символов
echo $encSupplChar, "\n";
//и назад
echo transliterator_transliterate("Hex-Any/Java", $encSupplChar), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

????????
1
\uD834\uDD1E
??

Смотрите также

  • Transliterator::getErrorMessage() - Получить последнее сообщение об ошибке
  • Transliterator::__construct() - Приватный конструктор


Класс IntlBreakIterator

(PHP 5 >= 5.5.0, PHP 7)

Введение

Итератор прерывания (Break iterator) - это объект ICU предоставляющий методы для определения границ в тексте (например границы слова или предложения). В PHP класс IntlBreakIterator служит базовым классом для всех типов итераторов прерывания ICU. Есть и дополнительная функциональность, расширение intl может расширять этот класс подходящими подклассами, такими как IntlRuleBasedBreakIterator или IntlCodePointBreakIterator.

Этот класс реализует интерфейс Traversable. Traversing an Итерация IntlBreakIterator порождает неотрицательные целые значения, представляющие из себя успешное нахождение границ в тексте, и равные позиции найденного символа UTF-8 отсчитанной от начала текста (позиция первого символа равна 0). Ключи возвращенных значений представляют из себя последовательность натуральных чисел {0, 1, 2, ...}.

Обзор классов

IntlBreakIterator implements Traversable {
/* Константы */
const integer DONE = -1 ;
const integer WORD_NONE = 0 ;
const integer WORD_NONE_LIMIT = 100 ;
const integer WORD_NUMBER = 100 ;
const integer WORD_NUMBER_LIMIT = 200 ;
const integer WORD_LETTER = 200 ;
const integer WORD_LETTER_LIMIT = 300 ;
const integer WORD_KANA = 300 ;
const integer WORD_KANA_LIMIT = 400 ;
const integer WORD_IDEO = 400 ;
const integer WORD_IDEO_LIMIT = 500 ;
const integer LINE_SOFT = 0 ;
const integer LINE_SOFT_LIMIT = 100 ;
const integer LINE_HARD = 100 ;
const integer LINE_HARD_LIMIT = 200 ;
const integer SENTENCE_TERM = 0 ;
const integer SENTENCE_TERM_LIMIT = 100 ;
const integer SENTENCE_SEP = 100 ;
const integer SENTENCE_SEP_LIMIT = 200 ;
/* Методы */
private __construct ( void )
public static createCharacterInstance ([ string $locale ] ) : IntlBreakIterator
public static createCodePointInstance ( void ) : IntlBreakIterator
public static createLineInstance ([ string $locale ] ) : IntlBreakIterator
public static createSentenceInstance ([ string $locale ] ) : IntlBreakIterator
public static createTitleInstance ([ string $locale ] ) : IntlBreakIterator
public static createWordInstance ([ string $locale ] ) : IntlBreakIterator
public current ( void ) : int
public first ( void ) : int
public following ( int $offset ) : int
public getErrorCode ( void ) : int
intl_get_error_code ( void ) : int
public getErrorMessage ( void ) : string
intl_get_error_message ( void ) : string
public getLocale ( string $locale_type ) : string
public getPartsIterator ([ int $key_type = IntlPartsIterator::KEY_SEQUENTIAL ] ) : IntlPartsIterator
public getText ( void ) : string
public isBoundary ( int $offset ) : bool
public last ( void ) : int
public next ([ int $offset ] ) : int
public preceding ( int $offset ) : int
public previous ( void ) : int
public setText ( string $text ) : bool
}

Предопределенные константы

IntlBreakIterator::DONE

IntlBreakIterator::WORD_NONE

IntlBreakIterator::WORD_NONE_LIMIT

IntlBreakIterator::WORD_NUMBER

IntlBreakIterator::WORD_NUMBER_LIMIT

IntlBreakIterator::WORD_LETTER

IntlBreakIterator::WORD_LETTER_LIMIT

IntlBreakIterator::WORD_KANA

IntlBreakIterator::WORD_KANA_LIMIT

IntlBreakIterator::WORD_IDEO

IntlBreakIterator::WORD_IDEO_LIMIT

IntlBreakIterator::LINE_SOFT

IntlBreakIterator::LINE_SOFT_LIMIT

IntlBreakIterator::LINE_HARD

IntlBreakIterator::LINE_HARD_LIMIT

IntlBreakIterator::SENTENCE_TERM

IntlBreakIterator::SENTENCE_TERM_LIMIT

IntlBreakIterator::SENTENCE_SEP

IntlBreakIterator::SENTENCE_SEP_LIMIT

Содержание

  • IntlBreakIterator::__construct — Private constructor for disallowing instantiation
  • IntlBreakIterator::createCharacterInstance — Create break iterator for boundaries of combining character sequences
  • IntlBreakIterator::createCodePointInstance — Create break iterator for boundaries of code points
  • IntlBreakIterator::createLineInstance — Create break iterator for logically possible line breaks
  • IntlBreakIterator::createSentenceInstance — Create break iterator for sentence breaks
  • IntlBreakIterator::createTitleInstance — Create break iterator for title-casing breaks
  • IntlBreakIterator::createWordInstance — Create break iterator for word breaks
  • IntlBreakIterator::current — Get index of current position
  • IntlBreakIterator::first — Set position to the first character in the text
  • IntlBreakIterator::following — Advance the iterator to the first boundary following specified offset
  • IntlBreakIterator::getErrorCode — Get last error code on the object
  • IntlBreakIterator::getErrorMessage — Get last error message on the object
  • IntlBreakIterator::getLocale — Get the locale associated with the object
  • IntlBreakIterator::getPartsIterator — Create iterator for navigating fragments between boundaries
  • IntlBreakIterator::getText — Get the text being scanned
  • IntlBreakIterator::isBoundary — Tell whether an offset is a boundary?s offset
  • IntlBreakIterator::last — Set the iterator position to index beyond the last character
  • IntlBreakIterator::next — Advance the iterator the next boundary
  • IntlBreakIterator::preceding — Set the iterator position to the first boundary before an offset
  • IntlBreakIterator::previous — Set the iterator position to the boundary immediately before the current
  • IntlBreakIterator::setText — Set the text being scanned


Private constructor for disallowing instantiation

  • « IntlBreakIterator
  • IntlBreakIterator::createCharacterInstance »
  • PHP Manual
  • IntlBreakIterator
  • Private constructor for disallowing instantiation

IntlBreakIterator::__construct

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::__construct — Private constructor for disallowing instantiation

Описание

private IntlBreakIterator::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Create break iterator for boundaries of combining character sequences

  • « IntlBreakIterator::__construct
  • IntlBreakIterator::createCodePointInstance »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for boundaries of combining character sequences

IntlBreakIterator::createCharacterInstance

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::createCharacterInstance — Create break iterator for boundaries of combining character sequences

Описание

public static IntlBreakIterator::createCharacterInstance ([ string $locale ] ) : IntlBreakIterator

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

locale

Возвращаемые значения


Create break iterator for boundaries of code points

  • « IntlBreakIterator::createCharacterInstance
  • IntlBreakIterator::createLineInstance »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for boundaries of code points

IntlBreakIterator::createCodePointInstance

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::createCodePointInstance — Create break iterator for boundaries of code points

Описание

public static IntlBreakIterator::createCodePointInstance ( void ) : IntlBreakIterator

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Create break iterator for logically possible line breaks

  • « IntlBreakIterator::createCodePointInstance
  • IntlBreakIterator::createSentenceInstance »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for logically possible line breaks

IntlBreakIterator::createLineInstance

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::createLineInstance — Create break iterator for logically possible line breaks

Описание

public static IntlBreakIterator::createLineInstance ([ string $locale ] ) : IntlBreakIterator

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

locale

Возвращаемые значения


Create break iterator for sentence breaks

  • « IntlBreakIterator::createLineInstance
  • IntlBreakIterator::createTitleInstance »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for sentence breaks

IntlBreakIterator::createSentenceInstance

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::createSentenceInstance — Create break iterator for sentence breaks

Описание

public static IntlBreakIterator::createSentenceInstance ([ string $locale ] ) : IntlBreakIterator

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

locale

Возвращаемые значения


Create break iterator for title-casing breaks

  • « IntlBreakIterator::createSentenceInstance
  • IntlBreakIterator::createWordInstance »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for title-casing breaks

IntlBreakIterator::createTitleInstance

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::createTitleInstance — Create break iterator for title-casing breaks

Описание

public static IntlBreakIterator::createTitleInstance ([ string $locale ] ) : IntlBreakIterator

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

locale

Возвращаемые значения


Create break iterator for word breaks

  • « IntlBreakIterator::createTitleInstance
  • IntlBreakIterator::current »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for word breaks

IntlBreakIterator::createWordInstance

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::createWordInstance — Create break iterator for word breaks

Описание

public static IntlBreakIterator::createWordInstance ([ string $locale ] ) : IntlBreakIterator

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

locale

Возвращаемые значения


Get index of current position

  • « IntlBreakIterator::createWordInstance
  • IntlBreakIterator::first »
  • PHP Manual
  • IntlBreakIterator
  • Get index of current position

IntlBreakIterator::current

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::current — Get index of current position

Описание

public IntlBreakIterator::current ( void ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Set position to the first character in the text

  • « IntlBreakIterator::current
  • IntlBreakIterator::following »
  • PHP Manual
  • IntlBreakIterator
  • Set position to the first character in the text

IntlBreakIterator::first

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::first — Set position to the first character in the text

Описание

public IntlBreakIterator::first ( void ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Advance the iterator to the first boundary following specified offset

  • « IntlBreakIterator::first
  • IntlBreakIterator::getErrorCode »
  • PHP Manual
  • IntlBreakIterator
  • Advance the iterator to the first boundary following specified offset

IntlBreakIterator::following

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::following — Advance the iterator to the first boundary following specified offset

Описание

public IntlBreakIterator::following ( int $offset ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

offset

Возвращаемые значения


Get last error code on the object

  • « IntlBreakIterator::following
  • IntlBreakIterator::getErrorMessage »
  • PHP Manual
  • IntlBreakIterator
  • Get last error code on the object

IntlBreakIterator::getErrorCode

intl_get_error_code

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::getErrorCode -- intl_get_error_code — Get last error code on the object

Описание

Объектно-ориентированный стиль (method):

public IntlBreakIterator::getErrorCode ( void ) : int

Процедурный стиль:

intl_get_error_code ( void ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get last error message on the object

  • « IntlBreakIterator::getErrorCode
  • IntlBreakIterator::getLocale »
  • PHP Manual
  • IntlBreakIterator
  • Get last error message on the object

IntlBreakIterator::getErrorMessage

intl_get_error_message

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::getErrorMessage -- intl_get_error_message — Get last error message on the object

Описание

Объектно-ориентированный стиль (method):

public IntlBreakIterator::getErrorMessage ( void ) : string

Процедурный стиль:

intl_get_error_message ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get the locale associated with the object

  • « IntlBreakIterator::getErrorMessage
  • IntlBreakIterator::getPartsIterator »
  • PHP Manual
  • IntlBreakIterator
  • Get the locale associated with the object

IntlBreakIterator::getLocale

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::getLocale — Get the locale associated with the object

Описание

public IntlBreakIterator::getLocale ( string $locale_type ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

locale_type

Возвращаемые значения


Create iterator for navigating fragments between boundaries

  • « IntlBreakIterator::getLocale
  • IntlBreakIterator::getText »
  • PHP Manual
  • IntlBreakIterator
  • Create iterator for navigating fragments between boundaries

IntlBreakIterator::getPartsIterator

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::getPartsIterator — Create iterator for navigating fragments between boundaries

Описание

public IntlBreakIterator::getPartsIterator ([ int $key_type = IntlPartsIterator::KEY_SEQUENTIAL ] ) : IntlPartsIterator

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key_type

Optional key type. Possible values are:

  • IntlPartsIterator::KEY_SEQUENTIAL - The default. Sequentially increasing integers used as key.
  • IntlPartsIterator::KEY_LEFT - Byte offset left of current part used as key.
  • IntlPartsIterator::KEY_RIGHT - Byte offset right of current part used as key.

Возвращаемые значения


Get the text being scanned

  • « IntlBreakIterator::getPartsIterator
  • IntlBreakIterator::isBoundary »
  • PHP Manual
  • IntlBreakIterator
  • Get the text being scanned

IntlBreakIterator::getText

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::getText — Get the text being scanned

Описание

public IntlBreakIterator::getText ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Tell whether an offset is a boundary?s offset

  • « IntlBreakIterator::getText
  • IntlBreakIterator::last »
  • PHP Manual
  • IntlBreakIterator
  • Tell whether an offset is a boundary?s offset

IntlBreakIterator::isBoundary

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::isBoundary — Tell whether an offset is a boundary?s offset

Описание

public IntlBreakIterator::isBoundary ( int $offset ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

offset

Возвращаемые значения


Set the iterator position to index beyond the last character

  • « IntlBreakIterator::isBoundary
  • IntlBreakIterator::next »
  • PHP Manual
  • IntlBreakIterator
  • Set the iterator position to index beyond the last character

IntlBreakIterator::last

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::last — Set the iterator position to index beyond the last character

Описание

public IntlBreakIterator::last ( void ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Advance the iterator the next boundary

  • « IntlBreakIterator::last
  • IntlBreakIterator::preceding »
  • PHP Manual
  • IntlBreakIterator
  • Advance the iterator the next boundary

IntlBreakIterator::next

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::next — Advance the iterator the next boundary

Описание

public IntlBreakIterator::next ([ int $offset ] ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

offset

Возвращаемые значения


Set the iterator position to the first boundary before an offset

  • « IntlBreakIterator::next
  • IntlBreakIterator::previous »
  • PHP Manual
  • IntlBreakIterator
  • Set the iterator position to the first boundary before an offset

IntlBreakIterator::preceding

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::preceding — Set the iterator position to the first boundary before an offset

Описание

public IntlBreakIterator::preceding ( int $offset ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

offset

Возвращаемые значения


Set the iterator position to the boundary immediately before the current

  • « IntlBreakIterator::preceding
  • IntlBreakIterator::setText »
  • PHP Manual
  • IntlBreakIterator
  • Set the iterator position to the boundary immediately before the current

IntlBreakIterator::previous

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::previous — Set the iterator position to the boundary immediately before the current

Описание

public IntlBreakIterator::previous ( void ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Set the text being scanned

  • « IntlBreakIterator::previous
  • IntlRuleBasedBreakIterator »
  • PHP Manual
  • IntlBreakIterator
  • Set the text being scanned

IntlBreakIterator::setText

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::setText — Set the text being scanned

Описание

public IntlBreakIterator::setText ( string $text ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

text

Возвращаемые значения


Класс IntlRuleBasedBreakIterator

(PHP 5 >= 5.5.0, PHP 7)

Введение

Подкласс IntlBreakIterator, который реализует итератор прерываний ICU, чье поведение задано набором правил. Это наиболее часто используемый тип итератора прерываний.

Правила описаны в разделе » Руководство пользователя по анализу границ ICU.

Обзор классов

IntlRuleBasedBreakIterator extends IntlBreakIterator implements Traversable {
/* Наследуемые константы */
const integer IntlBreakIterator::DONE = -1 ;
const integer IntlBreakIterator::WORD_NONE = 0 ;
const integer IntlBreakIterator::WORD_NONE_LIMIT = 100 ;
const integer IntlBreakIterator::WORD_NUMBER = 100 ;
const integer IntlBreakIterator::WORD_NUMBER_LIMIT = 200 ;
const integer IntlBreakIterator::WORD_LETTER = 200 ;
const integer IntlBreakIterator::WORD_LETTER_LIMIT = 300 ;
const integer IntlBreakIterator::WORD_KANA = 300 ;
const integer IntlBreakIterator::WORD_KANA_LIMIT = 400 ;
const integer IntlBreakIterator::WORD_IDEO = 400 ;
const integer IntlBreakIterator::WORD_IDEO_LIMIT = 500 ;
const integer IntlBreakIterator::LINE_SOFT = 0 ;
const integer IntlBreakIterator::LINE_SOFT_LIMIT = 100 ;
const integer IntlBreakIterator::LINE_HARD = 100 ;
const integer IntlBreakIterator::LINE_HARD_LIMIT = 200 ;
const integer IntlBreakIterator::SENTENCE_TERM = 0 ;
const integer IntlBreakIterator::SENTENCE_TERM_LIMIT = 100 ;
const integer IntlBreakIterator::SENTENCE_SEP = 100 ;
const integer IntlBreakIterator::SENTENCE_SEP_LIMIT = 200 ;
/* Методы */
public __construct ( string $rules [, string $areCompiled ] )
public getBinaryRules ( void ) : string
public getRules ( void ) : string
public getRuleStatus ( void ) : int
public getRuleStatusVec ( void ) : array
/* Наследуемые методы */
private IntlBreakIterator::__construct ( void )
public static IntlBreakIterator::createCharacterInstance ([ string $locale ] ) : IntlBreakIterator
public static IntlBreakIterator::createCodePointInstance ( void ) : IntlBreakIterator
public static IntlBreakIterator::createLineInstance ([ string $locale ] ) : IntlBreakIterator
public static IntlBreakIterator::createSentenceInstance ([ string $locale ] ) : IntlBreakIterator
public static IntlBreakIterator::createTitleInstance ([ string $locale ] ) : IntlBreakIterator
public static IntlBreakIterator::createWordInstance ([ string $locale ] ) : IntlBreakIterator
public IntlBreakIterator::current ( void ) : int
public IntlBreakIterator::first ( void ) : int
public IntlBreakIterator::following ( int $offset ) : int
public IntlBreakIterator::getErrorCode ( void ) : int
intl_get_error_code ( void ) : int
public IntlBreakIterator::getErrorMessage ( void ) : string
intl_get_error_message ( void ) : string
public IntlBreakIterator::getLocale ( string $locale_type ) : string
public IntlBreakIterator::getPartsIterator ([ int $key_type = IntlPartsIterator::KEY_SEQUENTIAL ] ) : IntlPartsIterator
public IntlBreakIterator::getText ( void ) : string
public IntlBreakIterator::isBoundary ( int $offset ) : bool
public IntlBreakIterator::last ( void ) : int
public IntlBreakIterator::next ([ int $offset ] ) : int
public IntlBreakIterator::preceding ( int $offset ) : int
public IntlBreakIterator::previous ( void ) : int
public IntlBreakIterator::setText ( string $text ) : bool
}

Содержание

  • IntlRuleBasedBreakIterator::__construct — Создает итератор на основе набора правил
  • IntlRuleBasedBreakIterator::getBinaryRules — Получить бинарные данные из скомпилированных правил
  • IntlRuleBasedBreakIterator::getRules — Получить набор правил, использовавшихся при создании этого объекта
  • IntlRuleBasedBreakIterator::getRuleStatus — Получить наибольшее значение статуса правил останова, определившее текущую позицию остановки
  • IntlRuleBasedBreakIterator::getRuleStatusVec — получить значения статусов из правил останова, определивших текущую позицию остановки


Создает итератор на основе набора правил

  • « IntlRuleBasedBreakIterator
  • IntlRuleBasedBreakIterator::getBinaryRules »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Создает итератор на основе набора правил

IntlRuleBasedBreakIterator::__construct

(PHP 5 >= 5.5.0, PHP 7)

IntlRuleBasedBreakIterator::__construct — Создает итератор на основе набора правил

Описание

public IntlRuleBasedBreakIterator::__construct ( string $rules [, string $areCompiled ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

rules

areCompiled

Возвращаемые значения


Получить бинарные данные из скомпилированных правил

  • « IntlRuleBasedBreakIterator::__construct
  • IntlRuleBasedBreakIterator::getRules »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Получить бинарные данные из скомпилированных правил

IntlRuleBasedBreakIterator::getBinaryRules

(PHP 5 >= 5.5.0, PHP 7)

IntlRuleBasedBreakIterator::getBinaryRules — Получить бинарные данные из скомпилированных правил

Описание

public IntlRuleBasedBreakIterator::getBinaryRules ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить набор правил, использовавшихся при создании этого объекта

  • « IntlRuleBasedBreakIterator::getBinaryRules
  • IntlRuleBasedBreakIterator::getRuleStatus »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Получить набор правил, использовавшихся при создании этого объекта

IntlRuleBasedBreakIterator::getRules

(PHP 5 >= 5.5.0, PHP 7)

IntlRuleBasedBreakIterator::getRules — Получить набор правил, использовавшихся при создании этого объекта

Описание

public IntlRuleBasedBreakIterator::getRules ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить наибольшее значение статуса правил останова, определившее текущую позицию остановки

  • « IntlRuleBasedBreakIterator::getRules
  • IntlRuleBasedBreakIterator::getRuleStatusVec »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Получить наибольшее значение статуса правил останова, определившее текущую позицию остановки

IntlRuleBasedBreakIterator::getRuleStatus

(PHP 5 >= 5.5.0, PHP 7)

IntlRuleBasedBreakIterator::getRuleStatus — Получить наибольшее значение статуса правил останова, определившее текущую позицию остановки

Описание

public IntlRuleBasedBreakIterator::getRuleStatus ( void ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


получить значения статусов из правил останова, определивших текущую позицию остановки

  • « IntlRuleBasedBreakIterator::getRuleStatus
  • IntlCodePointBreakIterator »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • получить значения статусов из правил останова, определивших текущую позицию остановки

IntlRuleBasedBreakIterator::getRuleStatusVec

(PHP 5 >= 5.5.0, PHP 7)

IntlRuleBasedBreakIterator::getRuleStatusVec — получить значения статусов из правил останова, определивших текущую позицию остановки

Описание

public IntlRuleBasedBreakIterator::getRuleStatusVec ( void ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс IntlCodePointBreakIterator

(PHP 5 >= 5.5.0, PHP 7)

Введение

Этот итератор прерываний указывает на границы между кодами символов UTF-8.

Обзор классов

IntlCodePointBreakIterator extends IntlBreakIterator implements Traversable {
/* Наследуемые константы */
const integer IntlBreakIterator::DONE = -1 ;
const integer IntlBreakIterator::WORD_NONE = 0 ;
const integer IntlBreakIterator::WORD_NONE_LIMIT = 100 ;
const integer IntlBreakIterator::WORD_NUMBER = 100 ;
const integer IntlBreakIterator::WORD_NUMBER_LIMIT = 200 ;
const integer IntlBreakIterator::WORD_LETTER = 200 ;
const integer IntlBreakIterator::WORD_LETTER_LIMIT = 300 ;
const integer IntlBreakIterator::WORD_KANA = 300 ;
const integer IntlBreakIterator::WORD_KANA_LIMIT = 400 ;
const integer IntlBreakIterator::WORD_IDEO = 400 ;
const integer IntlBreakIterator::WORD_IDEO_LIMIT = 500 ;
const integer IntlBreakIterator::LINE_SOFT = 0 ;
const integer IntlBreakIterator::LINE_SOFT_LIMIT = 100 ;
const integer IntlBreakIterator::LINE_HARD = 100 ;
const integer IntlBreakIterator::LINE_HARD_LIMIT = 200 ;
const integer IntlBreakIterator::SENTENCE_TERM = 0 ;
const integer IntlBreakIterator::SENTENCE_TERM_LIMIT = 100 ;
const integer IntlBreakIterator::SENTENCE_SEP = 100 ;
const integer IntlBreakIterator::SENTENCE_SEP_LIMIT = 200 ;
/* Методы */
public getLastCodePoint ( void ) : int
/* Наследуемые методы */
private IntlBreakIterator::__construct ( void )
public static IntlBreakIterator::createCharacterInstance ([ string $locale ] ) : IntlBreakIterator
public static IntlBreakIterator::createCodePointInstance ( void ) : IntlBreakIterator
public static IntlBreakIterator::createLineInstance ([ string $locale ] ) : IntlBreakIterator
public static IntlBreakIterator::createSentenceInstance ([ string $locale ] ) : IntlBreakIterator
public static IntlBreakIterator::createTitleInstance ([ string $locale ] ) : IntlBreakIterator
public static IntlBreakIterator::createWordInstance ([ string $locale ] ) : IntlBreakIterator
public IntlBreakIterator::current ( void ) : int
public IntlBreakIterator::first ( void ) : int
public IntlBreakIterator::following ( int $offset ) : int
public IntlBreakIterator::getErrorCode ( void ) : int
intl_get_error_code ( void ) : int
public IntlBreakIterator::getErrorMessage ( void ) : string
intl_get_error_message ( void ) : string
public IntlBreakIterator::getLocale ( string $locale_type ) : string
public IntlBreakIterator::getPartsIterator ([ int $key_type = IntlPartsIterator::KEY_SEQUENTIAL ] ) : IntlPartsIterator
public IntlBreakIterator::getText ( void ) : string
public IntlBreakIterator::isBoundary ( int $offset ) : bool
public IntlBreakIterator::last ( void ) : int
public IntlBreakIterator::next ([ int $offset ] ) : int
public IntlBreakIterator::preceding ( int $offset ) : int
public IntlBreakIterator::previous ( void ) : int
public IntlBreakIterator::setText ( string $text ) : bool
}

Содержание

  • IntlCodePointBreakIterator::getLastCodePoint — Получить последний код символа, выданный при перемещении итератора вперед или назад


Получить последний код символа, выданный при перемещении итератора вперед или назад

  • « IntlCodePointBreakIterator
  • IntlPartsIterator »
  • PHP Manual
  • IntlCodePointBreakIterator
  • Получить последний код символа, выданный при перемещении итератора вперед или назад

IntlCodePointBreakIterator::getLastCodePoint

(PHP 5 >= 5.5.0, PHP 7)

IntlCodePointBreakIterator::getLastCodePoint — Получить последний код символа, выданный при перемещении итератора вперед или назад

Описание

public IntlCodePointBreakIterator::getLastCodePoint ( void ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс IntlPartsIterator

(PHP 5 >= 5.5.0, PHP 7)

Введение

Объекты данного класса можно получить из объектов IntlBreakIterator. Пока итератор прерывания предоставляет последовательность ограничителей, можно получить IntlPartsIterator для удобства получения текстовых фрагментов между двумя ограничителями.

Ключи могут представлять собой смещения от левого или правого ограничителя или могут быть просто последовательностью натуральных чисел. Смотрите IntlBreakIterator::getPartsIterator().

Обзор классов

IntlPartsIterator extends IntlIterator implements Iterator {
/* Константы */
const integer KEY_SEQUENTIAL = 0 ;
const integer KEY_LEFT = 1 ;
const integer KEY_RIGHT = 2 ;
/* Методы */
public getBreakIterator ( void ) : IntlBreakIterator
/* Наследуемые методы */
public IntlIterator::current ( void ) : mixed
public IntlIterator::key ( void ) : string
public IntlIterator::next ( void ) : void
public IntlIterator::rewind ( void ) : void
public IntlIterator::valid ( void ) : bool
}

Предопределенные константы

IntlPartsIterator::KEY_SEQUENTIAL

IntlPartsIterator::KEY_LEFT

IntlPartsIterator::KEY_RIGHT

Содержание

  • IntlPartsIterator::getBreakIterator — Получить IntlBreakIterator сохраняя итератор этой части


Получить IntlBreakIterator сохраняя итератор этой части

  • « IntlPartsIterator
  • UConverter »
  • PHP Manual
  • IntlPartsIterator
  • Получить IntlBreakIterator сохраняя итератор этой части

IntlPartsIterator::getBreakIterator

(PHP 5 >= 5.5.0, PHP 7)

IntlPartsIterator::getBreakIterator — Получить IntlBreakIterator сохраняя итератор этой части

Описание

public IntlPartsIterator::getBreakIterator ( void ) : IntlBreakIterator

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс UConverter

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

Введение

Обзор классов

UConverter {
/* Константы */
const integer REASON_UNASSIGNED = 0 ;
const integer REASON_ILLEGAL = 1 ;
const integer REASON_IRREGULAR = 2 ;
const integer REASON_RESET = 3 ;
const integer REASON_CLOSE = 4 ;
const integer REASON_CLONE = 5 ;
const integer UNSUPPORTED_CONVERTER = -1 ;
const integer SBCS = 0 ;
const integer DBCS = 1 ;
const integer MBCS = 2 ;
const integer LATIN_1 = 3 ;
const integer UTF8 = 4 ;
const integer UTF16_BigEndian = 5 ;
const integer UTF16_LittleEndian = 6 ;
const integer UTF32_BigEndian = 7 ;
const integer UTF32_LittleEndian = 8 ;
const integer EBCDIC_STATEFUL = 9 ;
const integer ISO_2022 = 10 ;
const integer LMBCS_1 = 11 ;
const integer LMBCS_2 = 12 ;
const integer LMBCS_3 = 13 ;
const integer LMBCS_4 = 14 ;
const integer LMBCS_5 = 15 ;
const integer LMBCS_6 = 16 ;
const integer LMBCS_8 = 17 ;
const integer LMBCS_11 = 18 ;
const integer LMBCS_16 = 19 ;
const integer LMBCS_17 = 20 ;
const integer LMBCS_18 = 21 ;
const integer LMBCS_19 = 22 ;
const integer LMBCS_LAST = 22 ;
const integer HZ = 23 ;
const integer SCSU = 24 ;
const integer ISCII = 25 ;
const integer US_ASCII = 26 ;
const integer UTF7 = 27 ;
const integer BOCU1 = 28 ;
const integer UTF16 = 29 ;
const integer UTF32 = 30 ;
const integer CESU8 = 31 ;
const integer IMAP_MAILBOX = 32 ;
/* Методы */
public __construct ([ string $destination_encoding [, string $source_encoding ]] )
public convert ( string $str [, bool $reverse ] ) : string
public fromUCallback ( int $reason , string $source , string $codePoint , int &$error ) : mixed
public static getAliases ( string $name ) : array
public static getAvailable ( void ) : array
public getDestinationEncoding ( void ) : string
public getDestinationType ( void ) : int
public getErrorCode ( void ) : int
public getErrorMessage ( void ) : string
public getSourceEncoding ( void ) : string
public getSourceType ( void ) : int
public static getStandards ( void ) : array
public getSubstChars ( void ) : string
public static reasonText ([ int $reason ] ) : string
public setDestinationEncoding ( string $encoding ) : void
public setSourceEncoding ( string $encoding ) : void
public setSubstChars ( string $chars ) : void
public toUCallback ( int $reason , string $source , string $codeUnits , int &$error ) : mixed
public static transcode ( string $str , string $toEncoding , string $fromEncoding [, array $options ] ) : string
}

Предопределенные константы

UConverter::REASON_UNASSIGNED

UConverter::REASON_ILLEGAL

UConverter::REASON_IRREGULAR

UConverter::REASON_RESET

UConverter::REASON_CLOSE

UConverter::REASON_CLONE

UConverter::UNSUPPORTED_CONVERTER

UConverter::SBCS

UConverter::DBCS

UConverter::MBCS

UConverter::LATIN_1

UConverter::UTF8

UConverter::UTF16_BigEndian

UConverter::UTF16_LittleEndian

UConverter::UTF32_BigEndian

UConverter::UTF32_LittleEndian

UConverter::EBCDIC_STATEFUL

UConverter::ISO_2022

UConverter::LMBCS_1

UConverter::LMBCS_2

UConverter::LMBCS_3

UConverter::LMBCS_4

UConverter::LMBCS_5

UConverter::LMBCS_6

UConverter::LMBCS_8

UConverter::LMBCS_11

UConverter::LMBCS_16

UConverter::LMBCS_17

UConverter::LMBCS_18

UConverter::LMBCS_19

UConverter::LMBCS_LAST

UConverter::HZ

UConverter::SCSU

UConverter::ISCII

UConverter::US_ASCII

UConverter::UTF7

UConverter::BOCU1

UConverter::UTF16

UConverter::UTF32

UConverter::CESU8

UConverter::IMAP_MAILBOX

Содержание

  • UConverter::__construct — Создать объект UConverter
  • UConverter::convert — Конвертировать строку из одной кодировки в другую
  • UConverter::fromUCallback — Callback-функция по умолчанию для "from"
  • UConverter::getAliases — Получить псевдонимы для заданного имени
  • UConverter::getAvailable — Получить доступные имена канонических конверторов
  • UConverter::getDestinationEncoding — Получить кодировку назначения
  • UConverter::getDestinationType — Получить тип конвертера назначения
  • UConverter::getErrorCode — Получить код последней ошибки объекта
  • UConverter::getErrorMessage — Получить последнее сообщение об ошибке в объекте
  • UConverter::getSourceEncoding — Получить исходную кодировку
  • UConverter::getSourceType — Получить тип конвертора источника
  • UConverter::getStandards — Получить стандарты, связанные с именами конвертеров
  • UConverter::getSubstChars — Получить замену символов
  • UConverter::reasonText — Получить строковое представление причины обратного вызова
  • UConverter::setDestinationEncoding — Установить кодировку назначения
  • UConverter::setSourceEncoding — Установить исходную кодировку
  • UConverter::setSubstChars — Установка символов подстановки
  • UConverter::toUCallback — Callback-функция по умолчанию для "to"
  • UConverter::transcode — Конвертировать строку из одной кодировки в другую


Создать объект UConverter

  • « UConverter
  • UConverter::convert »
  • PHP Manual
  • UConverter
  • Создать объект UConverter

UConverter::__construct

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::__construct — Создать объект UConverter

Описание

public UConverter::__construct ([ string $destination_encoding [, string $source_encoding ]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

destination_encoding

source_encoding

Возвращаемые значения


Конвертировать строку из одной кодировки в другую

  • « UConverter::__construct
  • UConverter::fromUCallback »
  • PHP Manual
  • UConverter
  • Конвертировать строку из одной кодировки в другую

UConverter::convert

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::convert — Конвертировать строку из одной кодировки в другую

Описание

public UConverter::convert ( string $str [, bool $reverse ] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

str

reverse

Возвращаемые значения


Callback-функция по умолчанию для "from"

  • « UConverter::convert
  • UConverter::getAliases »
  • PHP Manual
  • UConverter
  • Callback-функция по умолчанию для "from"

UConverter::fromUCallback

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::fromUCallback — Callback-функция по умолчанию для "from"

Описание

public UConverter::fromUCallback ( int $reason , string $source , string $codePoint , int &$error ) : mixed

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

reason

source

codePoint

error

Возвращаемые значения


Получить псевдонимы для заданного имени

  • « UConverter::fromUCallback
  • UConverter::getAvailable »
  • PHP Manual
  • UConverter
  • Получить псевдонимы для заданного имени

UConverter::getAliases

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getAliases — Получить псевдонимы для заданного имени

Описание

public static UConverter::getAliases ( string $name ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Получить доступные имена канонических конверторов

  • « UConverter::getAliases
  • UConverter::getDestinationEncoding »
  • PHP Manual
  • UConverter
  • Получить доступные имена канонических конверторов

UConverter::getAvailable

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getAvailable — Получить доступные имена канонических конверторов

Описание

public static UConverter::getAvailable ( void ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить кодировку назначения

  • « UConverter::getAvailable
  • UConverter::getDestinationType »
  • PHP Manual
  • UConverter
  • Получить кодировку назначения

UConverter::getDestinationEncoding

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getDestinationEncoding — Получить кодировку назначения

Описание

public UConverter::getDestinationEncoding ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить тип конвертера назначения

  • « UConverter::getDestinationEncoding
  • UConverter::getErrorCode »
  • PHP Manual
  • UConverter
  • Получить тип конвертера назначения

UConverter::getDestinationType

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getDestinationType — Получить тип конвертера назначения

Описание

public UConverter::getDestinationType ( void ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить код последней ошибки объекта

  • « UConverter::getDestinationType
  • UConverter::getErrorMessage »
  • PHP Manual
  • UConverter
  • Получить код последней ошибки объекта

UConverter::getErrorCode

intl_get_error_code

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getErrorCode -- intl_get_error_code — Получить код последней ошибки объекта

Описание

public UConverter::getErrorCode ( void ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить последнее сообщение об ошибке в объекте

  • « UConverter::getErrorCode
  • UConverter::getSourceEncoding »
  • PHP Manual
  • UConverter
  • Получить последнее сообщение об ошибке в объекте

UConverter::getErrorMessage

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getErrorMessage — Получить последнее сообщение об ошибке в объекте

Описание

public UConverter::getErrorMessage ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить исходную кодировку

  • « UConverter::getErrorMessage
  • UConverter::getSourceType »
  • PHP Manual
  • UConverter
  • Получить исходную кодировку

UConverter::getSourceEncoding

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getSourceEncoding — Получить исходную кодировку

Описание

public UConverter::getSourceEncoding ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить тип конвертора источника

  • « UConverter::getSourceEncoding
  • UConverter::getStandards »
  • PHP Manual
  • UConverter
  • Получить тип конвертора источника

UConverter::getSourceType

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getSourceType — Получить тип конвертора источника

Описание

public UConverter::getSourceType ( void ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить стандарты, связанные с именами конвертеров

  • « UConverter::getSourceType
  • UConverter::getSubstChars »
  • PHP Manual
  • UConverter
  • Получить стандарты, связанные с именами конвертеров

UConverter::getStandards

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getStandards — Получить стандарты, связанные с именами конвертеров

Описание

public static UConverter::getStandards ( void ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить замену символов

  • « UConverter::getStandards
  • UConverter::reasonText »
  • PHP Manual
  • UConverter
  • Получить замену символов

UConverter::getSubstChars

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getSubstChars — Получить замену символов

Описание

public UConverter::getSubstChars ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить строковое представление причины обратного вызова

  • « UConverter::getSubstChars
  • UConverter::setDestinationEncoding »
  • PHP Manual
  • UConverter
  • Получить строковое представление причины обратного вызова

UConverter::reasonText

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::reasonText — Получить строковое представление причины обратного вызова

Описание

public static UConverter::reasonText ([ int $reason ] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

reason

Возвращаемые значения


Установить кодировку назначения

  • « UConverter::reasonText
  • UConverter::setSourceEncoding »
  • PHP Manual
  • UConverter
  • Установить кодировку назначения

UConverter::setDestinationEncoding

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::setDestinationEncoding — Установить кодировку назначения

Описание

public UConverter::setDestinationEncoding ( string $encoding ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

encoding

Возвращаемые значения


Установить исходную кодировку

  • « UConverter::setDestinationEncoding
  • UConverter::setSubstChars »
  • PHP Manual
  • UConverter
  • Установить исходную кодировку

UConverter::setSourceEncoding

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::setSourceEncoding — Установить исходную кодировку

Описание

public UConverter::setSourceEncoding ( string $encoding ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

encoding

Возвращаемые значения


Установка символов подстановки

  • « UConverter::setSourceEncoding
  • UConverter::toUCallback »
  • PHP Manual
  • UConverter
  • Установка символов подстановки

UConverter::setSubstChars

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::setSubstChars — Установка символов подстановки

Описание

public UConverter::setSubstChars ( string $chars ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

chars

Возвращаемые значения


Callback-функция по умолчанию для "to"

  • « UConverter::setSubstChars
  • UConverter::transcode »
  • PHP Manual
  • UConverter
  • Callback-функция по умолчанию для "to"

UConverter::toUCallback

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::toUCallback — Callback-функция по умолчанию для "to"

Описание

public UConverter::toUCallback ( int $reason , string $source , string $codeUnits , int &$error ) : mixed

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

reason

source

codeUnits

error

Возвращаемые значения


Конвертировать строку из одной кодировки в другую

  • « UConverter::toUCallback
  • Функции Grapheme »
  • PHP Manual
  • UConverter
  • Конвертировать строку из одной кодировки в другую

UConverter::transcode

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::transcode — Конвертировать строку из одной кодировки в другую

Описание

public static UConverter::transcode ( string $str , string $toEncoding , string $fromEncoding [, array $options ] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

str

toEncoding

fromEncoding

options

Возвращаемые значения


Функции Grapheme

Содержание

  • grapheme_extract — Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8
  • grapheme_stripos — Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_stristr — Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
  • grapheme_strlen — Get string length in grapheme units
  • grapheme_strpos — Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos — Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos — Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr — Returns part of haystack string from the first occurrence of needle to the end of haystack
  • grapheme_substr — Return part of a string


Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8

  • « Функции Grapheme
  • grapheme_stripos »
  • PHP Manual
  • Функции Grapheme
  • Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8

grapheme_extract

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_extract — Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8

Описание

Процедурный стиль

grapheme_extract ( string $haystack , int $size [, int $extract_type [, int $start = 0 [, int &$next ]]] ) : string

Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.

Список параметров

haystack

String to search.

size

Maximum number items - based on the $extract_type - to return.

extract_type

Defines the type of units referred to by the $size parameter:

  • GRAPHEME_EXTR_COUNT (default) - $size is the number of default grapheme clusters to extract.
  • GRAPHEME_EXTR_MAXBYTES - $size is the maximum number of bytes returned.
  • GRAPHEME_EXTR_MAXCHARS - $size is the maximum number of UTF-8 characters returned.

start

Starting position in $haystack in bytes - if given, it must be zero or a positive value that is less than or equal to the length of $haystack in bytes, or a negative value that counts from the end of $haystack. If $start does not point to the first byte of a UTF-8 character, the start position is moved to the next character boundary.

next

Reference to a value that will be set to the next starting position. When the call returns, this may point to the first byte position past the end of the string.

Возвращаемые значения

A string starting at offset $start and ending on a default grapheme cluster boundary that conforms to the $size and $extract_type specified.

Список изменений

Версия | Описание
7.1.0 | Support for negative starts has been added.

Примеры

Пример #1 grapheme_extract() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_extract( $char_a_ring_nfd . $char_o_diaeresis_nfd, 1, GRAPHEME_EXTR_COUNT, 2));

?>

Результат выполнения данного примера:

o%CC%88

Смотрите также

  • grapheme_substr() - Return part of a string
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Find position (in grapheme units) of first occurrence of a case-insensitive string

  • « grapheme_extract
  • grapheme_stristr »
  • PHP Manual
  • Функции Grapheme
  • Find position (in grapheme units) of first occurrence of a case-insensitive string

grapheme_stripos

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_stripos — Find position (in grapheme units) of first occurrence of a case-insensitive string

Описание

Процедурный стиль

grapheme_stripos ( string $haystack , string $needle [, int $offset = 0 ] ) : int

Find position (in grapheme units) of first occurrence of a case-insensitive string

Список параметров

haystack

The string to look in. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

offset

The optional $offset parameter allows you to specify where in haystack to start searching as an offset in grapheme units (not bytes or characters). If the offset is negative, it is treated relative to the end of the string. The position returned is still relative to the beginning of haystack regardless of the value of $offset.

Возвращаемые значения

Returns the position as an integer. If needle is not found, grapheme_stripos() will return boolean FALSE.

Список изменений

Версия | Описание
7.1.0 | Support for negative offsets has been added.

Примеры

Пример #1 grapheme_stripos() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) normalization form "D"

print grapheme_stripos( $char_a_ring_nfd . $char_a_ring_nfd . $char_o_diaeresis_nfd, $char_O_diaeresis_nfd);

?>

Результат выполнения данного примера:

2

Смотрите также

  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack

  • « grapheme_stripos
  • grapheme_strlen »
  • PHP Manual
  • Функции Grapheme
  • Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack

grapheme_stristr

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_stristr — Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack

Описание

Процедурный стиль

grapheme_stristr ( string $haystack , string $needle [, bool $before_needle = FALSE ] ) : string

Returns part of haystack string starting from and including the first occurrence of case-insensitive needle to the end of haystack.

Список параметров

haystack

The input string. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

before_needle

If TRUE, grapheme_strstr() returns the part of the haystack before the first occurrence of the needle (excluding needle).

Возвращаемые значения

Returns the portion of $haystack, or FALSE if $needle is not found.

Примеры

Пример #1 grapheme_stristr() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) normalization form "D"

print urlencode(grapheme_stristr( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd, $char_O_diaeresis_nfd));

?>

Результат выполнения данного примера:

o%CC%88a%CC%8A

Смотрите также

  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Get string length in grapheme units

  • « grapheme_stristr
  • grapheme_strpos »
  • PHP Manual
  • Функции Grapheme
  • Get string length in grapheme units

grapheme_strlen

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strlen — Get string length in grapheme units

Описание

Процедурный стиль

grapheme_strlen ( string $input ) : int

Get string length in grapheme units (not bytes or characters)

Список параметров

input

The string being measured for length. It must be a valid UTF-8 string.

Возвращаемые значения

The length of the string on success, and 0 if the string is empty.

Примеры

Пример #1 grapheme_strlen() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print grapheme_strlen( 'abc' . $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd);

?>

Результат выполнения данного примера:

6

Смотрите также

  • » Unicode Text Segmentation: Grapheme Cluster Boundaries
  • iconv_strlen() - Возвращает количество символов в строке
  • mb_strlen() - Получает длину строки
  • strlen() - Возвращает длину строки


Find position (in grapheme units) of first occurrence of a string

  • « grapheme_strlen
  • grapheme_strripos »
  • PHP Manual
  • Функции Grapheme
  • Find position (in grapheme units) of first occurrence of a string

grapheme_strpos

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strpos — Find position (in grapheme units) of first occurrence of a string

Описание

Процедурный стиль

grapheme_strpos ( string $haystack , string $needle [, int $offset = 0 ] ) : int

Find position (in grapheme units) of first occurrence of a string

Список параметров

haystack

The string to look in. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

offset

The optional $offset parameter allows you to specify where in $haystack to start searching as an offset in grapheme units (not bytes or characters). If the offset is negative, it is treated relative to the end of the string. The position returned is still relative to the beginning of haystack regardless of the value of $offset.

Возвращаемые значения

Returns the position as an integer. If needle is not found, grapheme_strpos() will return boolean FALSE.

Список изменений

Версия | Описание
7.1.0 | Support for negative offsets has been added.

Примеры

Пример #1 grapheme_strpos() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print grapheme_strpos( $char_a_ring_nfd . $char_a_ring_nfd . $char_o_diaeresis_nfd, $char_o_diaeresis_nfd);

?>

Результат выполнения данного примера:

2

Смотрите также

  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Find position (in grapheme units) of last occurrence of a case-insensitive string

  • « grapheme_strpos
  • grapheme_strrpos »
  • PHP Manual
  • Функции Grapheme
  • Find position (in grapheme units) of last occurrence of a case-insensitive string

grapheme_strripos

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strripos — Find position (in grapheme units) of last occurrence of a case-insensitive string

Описание

Процедурный стиль

grapheme_strripos ( string $haystack , string $needle [, int $offset = 0 ] ) : int

Find position (in grapheme units) of last occurrence of a case-insensitive string

Список параметров

haystack

The string to look in. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

offset

The optional $offset parameter allows you to specify where in $haystack to start searching as an offset in grapheme units (not bytes or characters). The position returned is still relative to the beginning of haystack regardless of the value of $offset.

Возвращаемые значения

Returns the position as an integer. If needle is not found, grapheme_strripos() will return boolean FALSE.

Примеры

Пример #1 grapheme_strripos() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) normalization form "D"

print grapheme_strripos( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_o_diaeresis_nfd, $char_O_diaeresis_nfd);

?>

Результат выполнения данного примера:

2

Смотрите также

  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Find position (in grapheme units) of last occurrence of a string

  • « grapheme_strripos
  • grapheme_strstr »
  • PHP Manual
  • Функции Grapheme
  • Find position (in grapheme units) of last occurrence of a string

grapheme_strrpos

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strrpos — Find position (in grapheme units) of last occurrence of a string

Описание

Процедурный стиль

grapheme_strrpos ( string $haystack , string $needle [, int $offset = 0 ] ) : int

Find position (in grapheme units) of last occurrence of a string

Список параметров

haystack

The string to look in. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

offset

The optional $offset parameter allows you to specify where in $haystack to start searching as an offset in grapheme units (not bytes or characters). The position returned is still relative to the beginning of haystack regardless of the value of $offset.

Возвращаемые значения

Returns the position as an integer. If needle is not found, grapheme_strrpos() will return boolean FALSE.

Примеры

Пример #1 grapheme_strrpos() example

<?php
$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print grapheme_strrpos( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_o_diaeresis_nfd, $char_o_diaeresis_nfd);
?>

Результат выполнения данного примера:

2

Смотрите также

  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Returns part of haystack string from the first occurrence of needle to the end of haystack

  • « grapheme_strrpos
  • grapheme_substr »
  • PHP Manual
  • Функции Grapheme
  • Returns part of haystack string from the first occurrence of needle to the end of haystack

grapheme_strstr

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strstr — Returns part of haystack string from the first occurrence of needle to the end of haystack

Описание

Процедурный стиль

grapheme_strstr ( string $haystack , string $needle [, bool $before_needle = FALSE ] ) : string

Returns part of haystack string from the first occurrence of needle to the end of haystack (including the needle).

Список параметров

haystack

The input string. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

before_needle

If TRUE, grapheme_strstr() returns the part of the haystack before the first occurrence of the needle (excluding the needle).

Возвращаемые значения

Returns the portion of string, or FALSE if needle is not found.

Примеры

Пример #1 grapheme_strstr() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_stristr( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd, $char_o_diaeresis_nfd));

?>

Результат выполнения данного примера:

o%CC%88a%CC%8A

Смотрите также

  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Return part of a string

  • « grapheme_strstr
  • Функции IDN »
  • PHP Manual
  • Функции Grapheme
  • Return part of a string

grapheme_substr

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_substr — Return part of a string

Описание

Процедурный стиль

grapheme_substr ( string $string , int $start [, int $length ] ) : string

Return part of a string

Список параметров

string

The input string. Must be valid UTF-8.

start

Start position in default grapheme units. If $start is non-negative, the returned string will start at the $start'th position in $string, counting from zero. If $start is negative, the returned string will start at the $start'th grapheme unit from the end of string.

length

Length in grapheme units. If $length is given and is positive, the string returned will contain at most $length grapheme units beginning from $start (depending on the length of string). If $length is given and is negative, then that many grapheme units will be omitted from the end of string (after the start position has been calculated when a start is negative). If $start denotes a position beyond this truncation, FALSE will be returned.

Возвращаемые значения

Returns the extracted part of $string.

Список изменений

Версия | Описание
5.4 | If length is given and positive and the argument string is shorter than the specified length, all the rest of the string according to start parameter is returned. Previously, FALSE was returned.

Примеры

Пример #1 grapheme_substr() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_substr( "ao" . $char_a_ring_nfd . "bc" . $char_o_diaeresis_nfd . "O", 2, -1 ));
?>

Результат выполнения данного примера:

a%CC%8Abco%CC%88

Смотрите также

  • grapheme_extract() - Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Функции IDN

Содержание

  • idn_to_ascii — Преобразовать доменное имя в формат IDNA ASCII
  • idn_to_utf8 — Преобразование доменного имени из IDNA ASCII в Unicode


Преобразовать доменное имя в формат IDNA ASCII

  • « Функции IDN
  • idn_to_utf8 »
  • PHP Manual
  • Функции IDN
  • Преобразовать доменное имя в формат IDNA ASCII

idn_to_ascii

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.2, PECL idn >= 0.1)

idn_to_ascii — Преобразовать доменное имя в формат IDNA ASCII

Описание

Процедурный стиль

idn_to_ascii ( string $domain [, int $options = IDNA_DEFAULT [, int $variant = INTL_IDNA_VARIANT_UTS46 [, array &$idna_info ]]] ) : string

Эта функция преобразует доменное имя из Unicode в IDNA ASCII.

Список параметров

domain

Имя для преобразования, должно быть в кодировке UTF-8.

options

Опции преобразования - комбинация констант IDNA_* (кроме констант IDNA_ERROR_*).

variant

INTL_IDNA_VARIANT_2003 (объявлена устаревшей начиная с PHP 7.2.0) для IDNA 2003 или INTL_IDNA_VARIANT_UTS46 (доступна только с ICU 4.6) для UTS #46.

idna_info

Этот параметр используется только если используется INTL_IDNA_VARIANT_UTS46 в variant. В этом случае он будет заполнен массивом с ключами 'result', возможными ошибочными результатами преобразования, 'isTransitionalDifferent', логическое выражение означает изменило или могло бы изменить результат при использовании сквозного механизма UTS #46, и 'errors', содержащими целочисленное представление битовой маски из констант IDNA_ERROR_*.

Возвращаемые значения

Доменное имя в представлении ASCII, или FALSE в случае возникновения ошибки

Список изменений

Версия | Описание
7.4.0 | Теперь значение по умолчанию variant изменено на INTL_IDNA_VARIANT_UTS46 вместо устаревшей константы INTL_IDNA_VARIANT_2003.
7.2.0 | INTL_IDNA_VARIANT_2003 объявлена устаревшей, вместо нее используйте INTL_IDNA_VARIANT_UTS46.
5.4.0/PECL 2.0.0b1 | Добавлены параметры variant и idna_info; поддержка UTS #46 (требуется ICU ? 4.6).

Примеры

Пример #1 Пример использования idn_to_ascii()

<?php

echo idn_to_ascii('tast.de');

?>

Результат выполнения данного примера:

xn--tst-qla.de

Смотрите также

  • idn_to_utf8() - Преобразование доменного имени из IDNA ASCII в Unicode


Преобразование доменного имени из IDNA ASCII в Unicode

  • « idn_to_ascii
  • IntlChar »
  • PHP Manual
  • Функции IDN
  • Преобразование доменного имени из IDNA ASCII в Unicode

idn_to_utf8

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.2, PECL idn >= 0.1)

idn_to_utf8 — Преобразование доменного имени из IDNA ASCII в Unicode

Описание

Процедурный стиль

idn_to_utf8 ( string $domain [, int $options = IDNA_DEFAULT [, int $variant = INTL_IDNA_VARIANT_UTS46 [, array &$idna_info ]]] ) : string

Эта функция преобразует доменные имена из формата IDNA ASCII в Unicode, в кодировке UTF-8.

Список параметров

domain

Доменное имя в формате IDNA ASCII.

options

Опции преобразования - комбинация констант IDNA_* (кроме констант IDNA_ERROR_*).

variant

INTL_IDNA_VARIANT_2003 (объявлена устаревшей начиная с PHP 7.2.0) для IDNA 2003 или INTL_IDNA_VARIANT_UTS46 (доступна только с ICU 4.6) для UTS #46.

idna_info

Этот параметр используется только если используется INTL_IDNA_VARIANT_UTS46 в variant. В этом случае он будет заполнен массивом с ключами 'result', возможными ошибочными результатами преобразования, 'isTransitionalDifferent', логическое выражение означает изменило или могло бы изменить результат при использовании сквозного механизма UTS #46, и 'errors', содержащими целочисленное представление битовой маски из констант IDNA_ERROR_*.

Возвращаемые значения

Доменное имя в Unicode, в кодировке UTF-8, или FALSE в случае возникновения ошибки

Список изменений

Версия | Описание
7.4.0 | Теперь значение по умолчанию variant изменено на INTL_IDNA_VARIANT_UTS46 вместо устаревшей константы INTL_IDNA_VARIANT_2003.
7.2.0 | INTL_IDNA_VARIANT_2003 объявлена устаревшей, вместо нее используйте INTL_IDNA_VARIANT_UTS46.
5.4.0/PECL 2.0.0b1 | Добавлены параметры variant и idna_info; поддержка UTS #46 (требуется ICU ? 4.6).

Примеры

Пример #1 Пример использования idn_to_utf8()

<?php

echo idn_to_utf8('xn--tst-qla.de');

?>

Результат выполнения данного примера:

tast.de

Смотрите также

  • idn_to_ascii() - Преобразовать доменное имя в формат IDNA ASCII


IntlChar

(PHP 7)

Введение

IntlChar предоставляет доступ к некоторому числу утилитарных методов, которые можно использовать для доступа к информации о символах Unicode.

Имена методов и констант, представленные здесь, близки к именам и методам нижележащей библиотеки ICU.

Обзор классов

IntlChar {
/* Константы */
const string UNICODE_VERSION = 6.3 ;
const integer CODEPOINT_MIN = 0 ;
const integer CODEPOINT_MAX = 1114111 ;
const float NO_NUMERIC_VALUE = -123456789 ;
const integer PROPERTY_ALPHABETIC = 0 ;
const integer PROPERTY_BINARY_START = 0 ;
const integer PROPERTY_ASCII_HEX_DIGIT = 1 ;
const integer PROPERTY_BIDI_CONTROL = 2 ;
const integer PROPERTY_BIDI_MIRRORED = 3 ;
const integer PROPERTY_DASH = 4 ;
const integer PROPERTY_DEFAULT_IGNORABLE_CODE_POINT = 5 ;
const integer PROPERTY_DEPRECATED = 6 ;
const integer PROPERTY_DIACRITIC = 7 ;
const integer PROPERTY_EXTENDER = 8 ;
const integer PROPERTY_FULL_COMPOSITION_EXCLUSION = 9 ;
const integer PROPERTY_GRAPHEME_BASE = 10 ;
const integer PROPERTY_GRAPHEME_EXTEND = 11 ;
const integer PROPERTY_GRAPHEME_LINK = 12 ;
const integer PROPERTY_HEX_DIGIT = 13 ;
const integer PROPERTY_HYPHEN = 14 ;
const integer PROPERTY_ID_CONTINUE = 15 ;
const integer PROPERTY_ID_START = 16 ;
const integer PROPERTY_IDEOGRAPHIC = 17 ;
const integer PROPERTY_IDS_BINARY_OPERATOR = 18 ;
const integer PROPERTY_IDS_TRINARY_OPERATOR = 19 ;
const integer PROPERTY_JOIN_CONTROL = 20 ;
const integer PROPERTY_LOGICAL_ORDER_EXCEPTION = 21 ;
const integer PROPERTY_LOWERCASE = 22 ;
const integer PROPERTY_MATH = 23 ;
const integer PROPERTY_NONCHARACTER_CODE_POINT = 24 ;
const integer PROPERTY_QUOTATION_MARK = 25 ;
const integer PROPERTY_RADICAL = 26 ;
const integer PROPERTY_SOFT_DOTTED = 27 ;
const integer PROPERTY_TERMINAL_PUNCTUATION = 28 ;
const integer PROPERTY_UNIFIED_IDEOGRAPH = 29 ;
const integer PROPERTY_UPPERCASE = 30 ;
const integer PROPERTY_WHITE_SPACE = 31 ;
const integer PROPERTY_XID_CONTINUE = 32 ;
const integer PROPERTY_XID_START = 33 ;
const integer PROPERTY_CASE_SENSITIVE = 34 ;
const integer PROPERTY_S_TERM = 35 ;
const integer PROPERTY_VARIATION_SELECTOR = 36 ;
const integer PROPERTY_NFD_INERT = 37 ;
const integer PROPERTY_NFKD_INERT = 38 ;
const integer PROPERTY_NFC_INERT = 39 ;
const integer PROPERTY_NFKC_INERT = 40 ;
const integer PROPERTY_SEGMENT_STARTER = 41 ;
const integer PROPERTY_PATTERN_SYNTAX = 42 ;
const integer PROPERTY_PATTERN_WHITE_SPACE = 43 ;
const integer PROPERTY_POSIX_ALNUM = 44 ;
const integer PROPERTY_POSIX_BLANK = 45 ;
const integer PROPERTY_POSIX_GRAPH = 46 ;
const integer PROPERTY_POSIX_PRINT = 47 ;
const integer PROPERTY_POSIX_XDIGIT = 48 ;
const integer PROPERTY_CASED = 49 ;
const integer PROPERTY_CASE_IGNORABLE = 50 ;
const integer PROPERTY_CHANGES_WHEN_LOWERCASED = 51 ;
const integer PROPERTY_CHANGES_WHEN_UPPERCASED = 52 ;
const integer PROPERTY_CHANGES_WHEN_TITLECASED = 53 ;
const integer PROPERTY_CHANGES_WHEN_CASEFOLDED = 54 ;
const integer PROPERTY_CHANGES_WHEN_CASEMAPPED = 55 ;
const integer PROPERTY_CHANGES_WHEN_NFKC_CASEFOLDED = 56 ;
const integer PROPERTY_BINARY_LIMIT = 57 ;
const integer PROPERTY_BIDI_CLASS = 4096 ;
const integer PROPERTY_INT_START = 4096 ;
const integer PROPERTY_BLOCK = 4097 ;
const integer PROPERTY_CANONICAL_COMBINING_CLASS = 4098 ;
const integer PROPERTY_DECOMPOSITION_TYPE = 4099 ;
const integer PROPERTY_EAST_ASIAN_WIDTH = 4100 ;
const integer PROPERTY_GENERAL_CATEGORY = 4101 ;
const integer PROPERTY_JOINING_GROUP = 4102 ;
const integer PROPERTY_JOINING_TYPE = 4103 ;
const integer PROPERTY_LINE_BREAK = 4104 ;
const integer PROPERTY_NUMERIC_TYPE = 4105 ;
const integer PROPERTY_SCRIPT = 4106 ;
const integer PROPERTY_HANGUL_SYLLABLE_TYPE = 4107 ;
const integer PROPERTY_NFD_QUICK_CHECK = 4108 ;
const integer PROPERTY_NFKD_QUICK_CHECK = 4109 ;
const integer PROPERTY_NFC_QUICK_CHECK = 4110 ;
const integer PROPERTY_NFKC_QUICK_CHECK = 4111 ;
const integer PROPERTY_LEAD_CANONICAL_COMBINING_CLASS = 4112 ;
const integer PROPERTY_TRAIL_CANONICAL_COMBINING_CLASS = 4113 ;
const integer PROPERTY_GRAPHEME_CLUSTER_BREAK = 4114 ;
const integer PROPERTY_SENTENCE_BREAK = 4115 ;
const integer PROPERTY_WORD_BREAK = 4116 ;
const integer PROPERTY_BIDI_PAIRED_BRACKET_TYPE = 4117 ;
const integer PROPERTY_INT_LIMIT = 4118 ;
const integer PROPERTY_GENERAL_CATEGORY_MASK = 8192 ;
const integer PROPERTY_MASK_START = 8192 ;
const integer PROPERTY_MASK_LIMIT = 8193 ;
const integer PROPERTY_NUMERIC_VALUE = 12288 ;
const integer PROPERTY_DOUBLE_START = 12288 ;
const integer PROPERTY_DOUBLE_LIMIT = 12289 ;
const integer PROPERTY_AGE = 16384 ;
const integer PROPERTY_STRING_START = 16384 ;
const integer PROPERTY_BIDI_MIRRORING_GLYPH = 16385 ;
const integer PROPERTY_CASE_FOLDING = 16386 ;
const integer PROPERTY_ISO_COMMENT = 16387 ;
const integer PROPERTY_LOWERCASE_MAPPING = 16388 ;
const integer PROPERTY_NAME = 16389 ;
const integer PROPERTY_SIMPLE_CASE_FOLDING = 16390 ;
const integer PROPERTY_SIMPLE_LOWERCASE_MAPPING = 16391 ;
const integer PROPERTY_SIMPLE_TITLECASE_MAPPING = 16392 ;
const integer PROPERTY_SIMPLE_UPPERCASE_MAPPING = 16393 ;
const integer PROPERTY_TITLECASE_MAPPING = 16394 ;
const integer PROPERTY_UNICODE_1_NAME = 16395 ;
const integer PROPERTY_UPPERCASE_MAPPING = 16396 ;
const integer PROPERTY_BIDI_PAIRED_BRACKET = 16397 ;
const integer PROPERTY_STRING_LIMIT = 16398 ;
const integer PROPERTY_SCRIPT_EXTENSIONS = 28672 ;
const integer PROPERTY_OTHER_PROPERTY_START = 28672 ;
const integer PROPERTY_OTHER_PROPERTY_LIMIT = 28673 ;
const integer PROPERTY_INVALID_CODE = -1 ;
const integer CHAR_CATEGORY_UNASSIGNED = 0 ;
const integer CHAR_CATEGORY_GENERAL_OTHER_TYPES = 0 ;
const integer CHAR_CATEGORY_UPPERCASE_LETTER = 1 ;
const integer CHAR_CATEGORY_LOWERCASE_LETTER = 2 ;
const integer CHAR_CATEGORY_TITLECASE_LETTER = 3 ;
const integer CHAR_CATEGORY_MODIFIER_LETTER = 4 ;
const integer CHAR_CATEGORY_OTHER_LETTER = 5 ;
const integer CHAR_CATEGORY_NON_SPACING_MARK = 6 ;
const integer CHAR_CATEGORY_ENCLOSING_MARK = 7 ;
const integer CHAR_CATEGORY_COMBINING_SPACING_MARK = 8 ;
const integer CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER = 9 ;
const integer CHAR_CATEGORY_LETTER_NUMBER = 10 ;
const integer CHAR_CATEGORY_OTHER_NUMBER = 11 ;
const integer CHAR_CATEGORY_SPACE_SEPARATOR = 12 ;
const integer CHAR_CATEGORY_LINE_SEPARATOR = 13 ;
const integer CHAR_CATEGORY_PARAGRAPH_SEPARATOR = 14 ;
const integer CHAR_CATEGORY_CONTROL_CHAR = 15 ;
const integer CHAR_CATEGORY_FORMAT_CHAR = 16 ;
const integer CHAR_CATEGORY_PRIVATE_USE_CHAR = 17 ;
const integer CHAR_CATEGORY_SURROGATE = 18 ;
const integer CHAR_CATEGORY_DASH_PUNCTUATION = 19 ;
const integer CHAR_CATEGORY_START_PUNCTUATION = 20 ;
const integer CHAR_CATEGORY_END_PUNCTUATION = 21 ;
const integer CHAR_CATEGORY_CONNECTOR_PUNCTUATION = 22 ;
const integer CHAR_CATEGORY_OTHER_PUNCTUATION = 23 ;
const integer CHAR_CATEGORY_MATH_SYMBOL = 24 ;
const integer CHAR_CATEGORY_CURRENCY_SYMBOL = 25 ;
const integer CHAR_CATEGORY_MODIFIER_SYMBOL = 26 ;
const integer CHAR_CATEGORY_OTHER_SYMBOL = 27 ;
const integer CHAR_CATEGORY_INITIAL_PUNCTUATION = 28 ;
const integer CHAR_CATEGORY_FINAL_PUNCTUATION = 29 ;
const integer CHAR_CATEGORY_CHAR_CATEGORY_COUNT = 30 ;
const integer CHAR_DIRECTION_LEFT_TO_RIGHT = 0 ;
const integer CHAR_DIRECTION_RIGHT_TO_LEFT = 1 ;
const integer CHAR_DIRECTION_EUROPEAN_NUMBER = 2 ;
const integer CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR = 3 ;
const integer CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR = 4 ;
const integer CHAR_DIRECTION_ARABIC_NUMBER = 5 ;
const integer CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR = 6 ;
const integer CHAR_DIRECTION_BLOCK_SEPARATOR = 7 ;
const integer CHAR_DIRECTION_SEGMENT_SEPARATOR = 8 ;
const integer CHAR_DIRECTION_WHITE_SPACE_NEUTRAL = 9 ;
const integer CHAR_DIRECTION_OTHER_NEUTRAL = 10 ;
const integer CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING = 11 ;
const integer CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE = 12 ;
const integer CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC = 13 ;
const integer CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING = 14 ;
const integer CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE = 15 ;
const integer CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT = 16 ;
const integer CHAR_DIRECTION_DIR_NON_SPACING_MARK = 17 ;
const integer CHAR_DIRECTION_BOUNDARY_NEUTRAL = 18 ;
const integer CHAR_DIRECTION_FIRST_STRONG_ISOLATE = 19 ;
const integer CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE = 20 ;
const integer CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE = 21 ;
const integer CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE = 22 ;
const integer CHAR_DIRECTION_CHAR_DIRECTION_COUNT = 23 ;
const integer BLOCK_CODE_NO_BLOCK = 0 ;
const integer BLOCK_CODE_BASIC_LATIN = 1 ;
const integer BLOCK_CODE_LATIN_1_SUPPLEMENT = 2 ;
const integer BLOCK_CODE_LATIN_EXTENDED_A = 3 ;
const integer BLOCK_CODE_LATIN_EXTENDED_B = 4 ;
const integer BLOCK_CODE_IPA_EXTENSIONS = 5 ;
const integer BLOCK_CODE_SPACING_MODIFIER_LETTERS = 6 ;
const integer BLOCK_CODE_COMBINING_DIACRITICAL_MARKS = 7 ;
const integer BLOCK_CODE_GREEK = 8 ;
const integer BLOCK_CODE_CYRILLIC = 9 ;
const integer BLOCK_CODE_ARMENIAN = 10 ;
const integer BLOCK_CODE_HEBREW = 11 ;
const integer BLOCK_CODE_ARABIC = 12 ;
const integer BLOCK_CODE_SYRIAC = 13 ;
const integer BLOCK_CODE_THAANA = 14 ;
const integer BLOCK_CODE_DEVANAGARI = 15 ;
const integer BLOCK_CODE_BENGALI = 16 ;
const integer BLOCK_CODE_GURMUKHI = 17 ;
const integer BLOCK_CODE_GUJARATI = 18 ;
const integer BLOCK_CODE_ORIYA = 19 ;
const integer BLOCK_CODE_TAMIL = 20 ;
const integer BLOCK_CODE_TELUGU = 21 ;
const integer BLOCK_CODE_KANNADA = 22 ;
const integer BLOCK_CODE_MALAYALAM = 23 ;
const integer BLOCK_CODE_SINHALA = 24 ;
const integer BLOCK_CODE_THAI = 25 ;
const integer BLOCK_CODE_LAO = 26 ;
const integer BLOCK_CODE_TIBETAN = 27 ;
const integer BLOCK_CODE_MYANMAR = 28 ;
const integer BLOCK_CODE_GEORGIAN = 29 ;
const integer BLOCK_CODE_HANGUL_JAMO = 30 ;
const integer BLOCK_CODE_ETHIOPIC = 31 ;
const integer BLOCK_CODE_CHEROKEE = 32 ;
const integer BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS = 33 ;
const integer BLOCK_CODE_OGHAM = 34 ;
const integer BLOCK_CODE_RUNIC = 35 ;
const integer BLOCK_CODE_KHMER = 36 ;
const integer BLOCK_CODE_MONGOLIAN = 37 ;
const integer BLOCK_CODE_LATIN_EXTENDED_ADDITIONAL = 38 ;
const integer BLOCK_CODE_GREEK_EXTENDED = 39 ;
const integer BLOCK_CODE_GENERAL_PUNCTUATION = 40 ;
const integer BLOCK_CODE_SUPERSCRIPTS_AND_SUBSCRIPTS = 41 ;
const integer BLOCK_CODE_CURRENCY_SYMBOLS = 42 ;
const integer BLOCK_CODE_COMBINING_MARKS_FOR_SYMBOLS = 43 ;
const integer BLOCK_CODE_LETTERLIKE_SYMBOLS = 44 ;
const integer BLOCK_CODE_NUMBER_FORMS = 45 ;
const integer BLOCK_CODE_ARROWS = 46 ;
const integer BLOCK_CODE_MATHEMATICAL_OPERATORS = 47 ;
const integer BLOCK_CODE_MISCELLANEOUS_TECHNICAL = 48 ;
const integer BLOCK_CODE_CONTROL_PICTURES = 49 ;
const integer BLOCK_CODE_OPTICAL_CHARACTER_RECOGNITION = 50 ;
const integer BLOCK_CODE_ENCLOSED_ALPHANUMERICS = 51 ;
const integer BLOCK_CODE_BOX_DRAWING = 52 ;
const integer BLOCK_CODE_BLOCK_ELEMENTS = 53 ;
const integer BLOCK_CODE_GEOMETRIC_SHAPES = 54 ;
const integer BLOCK_CODE_MISCELLANEOUS_SYMBOLS = 55 ;
const integer BLOCK_CODE_DINGBATS = 56 ;
const integer BLOCK_CODE_BRAILLE_PATTERNS = 57 ;
const integer BLOCK_CODE_CJK_RADICALS_SUPPLEMENT = 58 ;
const integer BLOCK_CODE_KANGXI_RADICALS = 59 ;
const integer BLOCK_CODE_IDEOGRAPHIC_DESCRIPTION_CHARACTERS = 60 ;
const integer BLOCK_CODE_CJK_SYMBOLS_AND_PUNCTUATION = 61 ;
const integer BLOCK_CODE_HIRAGANA = 62 ;
const integer BLOCK_CODE_KATAKANA = 63 ;
const integer BLOCK_CODE_BOPOMOFO = 64 ;
const integer BLOCK_CODE_HANGUL_COMPATIBILITY_JAMO = 65 ;
const integer BLOCK_CODE_KANBUN = 66 ;
const integer BLOCK_CODE_BOPOMOFO_EXTENDED = 67 ;
const integer BLOCK_CODE_ENCLOSED_CJK_LETTERS_AND_MONTHS = 68 ;
const integer BLOCK_CODE_CJK_COMPATIBILITY = 69 ;
const integer BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A = 70 ;
const integer BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS = 71 ;
const integer BLOCK_CODE_YI_SYLLABLES = 72 ;
const integer BLOCK_CODE_YI_RADICALS = 73 ;
const integer BLOCK_CODE_HANGUL_SYLLABLES = 74 ;
const integer BLOCK_CODE_HIGH_SURROGATES = 75 ;
const integer BLOCK_CODE_HIGH_PRIVATE_USE_SURROGATES = 76 ;
const integer BLOCK_CODE_LOW_SURROGATES = 77 ;
const integer BLOCK_CODE_PRIVATE_USE_AREA = 78 ;
const integer BLOCK_CODE_PRIVATE_USE = 78 ;
const integer BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS = 79 ;
const integer BLOCK_CODE_ALPHABETIC_PRESENTATION_FORMS = 80 ;
const integer BLOCK_CODE_ARABIC_PRESENTATION_FORMS_A = 81 ;
const integer BLOCK_CODE_COMBINING_HALF_MARKS = 82 ;
const integer BLOCK_CODE_CJK_COMPATIBILITY_FORMS = 83 ;
const integer BLOCK_CODE_SMALL_FORM_VARIANTS = 84 ;
const integer BLOCK_CODE_ARABIC_PRESENTATION_FORMS_B = 85 ;
const integer BLOCK_CODE_SPECIALS = 86 ;
const integer BLOCK_CODE_HALFWIDTH_AND_FULLWIDTH_FORMS = 87 ;
const integer BLOCK_CODE_OLD_ITALIC = 88 ;
const integer BLOCK_CODE_GOTHIC = 89 ;
const integer BLOCK_CODE_DESERET = 90 ;
const integer BLOCK_CODE_BYZANTINE_MUSICAL_SYMBOLS = 91 ;
const integer BLOCK_CODE_MUSICAL_SYMBOLS = 92 ;
const integer BLOCK_CODE_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93 ;
const integer BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = 94 ;
const integer BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95 ;
const integer BLOCK_CODE_TAGS = 96 ;
const integer BLOCK_CODE_CYRILLIC_SUPPLEMENT = 97 ;
const integer BLOCK_CODE_CYRILLIC_SUPPLEMENTARY = 97 ;
const integer BLOCK_CODE_TAGALOG = 98 ;
const integer BLOCK_CODE_HANUNOO = 99 ;
const integer BLOCK_CODE_BUHID = 100 ;
const integer BLOCK_CODE_TAGBANWA = 101 ;
const integer BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102 ;
const integer BLOCK_CODE_SUPPLEMENTAL_ARROWS_A = 103 ;
const integer BLOCK_CODE_SUPPLEMENTAL_ARROWS_B = 104 ;
const integer BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105 ;
const integer BLOCK_CODE_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106 ;
const integer BLOCK_CODE_KATAKANA_PHONETIC_EXTENSIONS = 107 ;
const integer BLOCK_CODE_VARIATION_SELECTORS = 108 ;
const integer BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109 ;
const integer BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110 ;
const integer BLOCK_CODE_LIMBU = 111 ;
const integer BLOCK_CODE_TAI_LE = 112 ;
const integer BLOCK_CODE_KHMER_SYMBOLS = 113 ;
const integer BLOCK_CODE_PHONETIC_EXTENSIONS = 114 ;
const integer BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115 ;
const integer BLOCK_CODE_YIJING_HEXAGRAM_SYMBOLS = 116 ;
const integer BLOCK_CODE_LINEAR_B_SYLLABARY = 117 ;
const integer BLOCK_CODE_LINEAR_B_IDEOGRAMS = 118 ;
const integer BLOCK_CODE_AEGEAN_NUMBERS = 119 ;
const integer BLOCK_CODE_UGARITIC = 120 ;
const integer BLOCK_CODE_SHAVIAN = 121 ;
const integer BLOCK_CODE_OSMANYA = 122 ;
const integer BLOCK_CODE_CYPRIOT_SYLLABARY = 123 ;
const integer BLOCK_CODE_TAI_XUAN_JING_SYMBOLS = 124 ;
const integer BLOCK_CODE_VARIATION_SELECTORS_SUPPLEMENT = 125 ;
const integer BLOCK_CODE_ANCIENT_GREEK_MUSICAL_NOTATION = 126 ;
const integer BLOCK_CODE_ANCIENT_GREEK_NUMBERS = 127 ;
const integer BLOCK_CODE_ARABIC_SUPPLEMENT = 128 ;
const integer BLOCK_CODE_BUGINESE = 129 ;
const integer BLOCK_CODE_CJK_STROKES = 130 ;
const integer BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT = 131 ;
const integer BLOCK_CODE_COPTIC = 132 ;
const integer BLOCK_CODE_ETHIOPIC_EXTENDED = 133 ;
const integer BLOCK_CODE_ETHIOPIC_SUPPLEMENT = 134 ;
const integer BLOCK_CODE_GEORGIAN_SUPPLEMENT = 135 ;
const integer BLOCK_CODE_GLAGOLITIC = 136 ;
const integer BLOCK_CODE_KHAROSHTHI = 137 ;
const integer BLOCK_CODE_MODIFIER_TONE_LETTERS = 138 ;
const integer BLOCK_CODE_NEW_TAI_LUE = 139 ;
const integer BLOCK_CODE_OLD_PERSIAN = 140 ;
const integer BLOCK_CODE_PHONETIC_EXTENSIONS_SUPPLEMENT = 141 ;
const integer BLOCK_CODE_SUPPLEMENTAL_PUNCTUATION = 142 ;
const integer BLOCK_CODE_SYLOTI_NAGRI = 143 ;
const integer BLOCK_CODE_TIFINAGH = 144 ;
const integer BLOCK_CODE_VERTICAL_FORMS = 145 ;
const integer BLOCK_CODE_NKO = 146 ;
const integer BLOCK_CODE_BALINESE = 147 ;
const integer BLOCK_CODE_LATIN_EXTENDED_C = 148 ;
const integer BLOCK_CODE_LATIN_EXTENDED_D = 149 ;
const integer BLOCK_CODE_PHAGS_PA = 150 ;
const integer BLOCK_CODE_PHOENICIAN = 151 ;
const integer BLOCK_CODE_CUNEIFORM = 152 ;
const integer BLOCK_CODE_CUNEIFORM_NUMBERS_AND_PUNCTUATION = 153 ;
const integer BLOCK_CODE_COUNTING_ROD_NUMERALS = 154 ;
const integer BLOCK_CODE_SUNDANESE = 155 ;
const integer BLOCK_CODE_LEPCHA = 156 ;
const integer BLOCK_CODE_OL_CHIKI = 157 ;
const integer BLOCK_CODE_CYRILLIC_EXTENDED_A = 158 ;
const integer BLOCK_CODE_VAI = 159 ;
const integer BLOCK_CODE_CYRILLIC_EXTENDED_B = 160 ;
const integer BLOCK_CODE_SAURASHTRA = 161 ;
const integer BLOCK_CODE_KAYAH_LI = 162 ;
const integer BLOCK_CODE_REJANG = 163 ;
const integer BLOCK_CODE_CHAM = 164 ;
const integer BLOCK_CODE_ANCIENT_SYMBOLS = 165 ;
const integer BLOCK_CODE_PHAISTOS_DISC = 166 ;
const integer BLOCK_CODE_LYCIAN = 167 ;
const integer BLOCK_CODE_CARIAN = 168 ;
const integer BLOCK_CODE_LYDIAN = 169 ;
const integer BLOCK_CODE_MAHJONG_TILES = 170 ;
const integer BLOCK_CODE_DOMINO_TILES = 171 ;
const integer BLOCK_CODE_SAMARITAN = 172 ;
const integer BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED = 173 ;
const integer BLOCK_CODE_TAI_THAM = 174 ;
const integer BLOCK_CODE_VEDIC_EXTENSIONS = 175 ;
const integer BLOCK_CODE_LISU = 176 ;
const integer BLOCK_CODE_BAMUM = 177 ;
const integer BLOCK_CODE_COMMON_INDIC_NUMBER_FORMS = 178 ;
const integer BLOCK_CODE_DEVANAGARI_EXTENDED = 179 ;
const integer BLOCK_CODE_HANGUL_JAMO_EXTENDED_A = 180 ;
const integer BLOCK_CODE_JAVANESE = 181 ;
const integer BLOCK_CODE_MYANMAR_EXTENDED_A = 182 ;
const integer BLOCK_CODE_TAI_VIET = 183 ;
const integer BLOCK_CODE_MEETEI_MAYEK = 184 ;
const integer BLOCK_CODE_HANGUL_JAMO_EXTENDED_B = 185 ;
const integer BLOCK_CODE_IMPERIAL_ARAMAIC = 186 ;
const integer BLOCK_CODE_OLD_SOUTH_ARABIAN = 187 ;
const integer BLOCK_CODE_AVESTAN = 188 ;
const integer BLOCK_CODE_INSCRIPTIONAL_PARTHIAN = 189 ;
const integer BLOCK_CODE_INSCRIPTIONAL_PAHLAVI = 190 ;
const integer BLOCK_CODE_OLD_TURKIC = 191 ;
const integer BLOCK_CODE_RUMI_NUMERAL_SYMBOLS = 192 ;
const integer BLOCK_CODE_KAITHI = 193 ;
const integer BLOCK_CODE_EGYPTIAN_HIEROGLYPHS = 194 ;
const integer BLOCK_CODE_ENCLOSED_ALPHANUMERIC_SUPPLEMENT = 195 ;
const integer BLOCK_CODE_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT = 196 ;
const integer BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C = 197 ;
const integer BLOCK_CODE_MANDAIC = 198 ;
const integer BLOCK_CODE_BATAK = 199 ;
const integer BLOCK_CODE_ETHIOPIC_EXTENDED_A = 200 ;
const integer BLOCK_CODE_BRAHMI = 201 ;
const integer BLOCK_CODE_BAMUM_SUPPLEMENT = 202 ;
const integer BLOCK_CODE_KANA_SUPPLEMENT = 203 ;
const integer BLOCK_CODE_PLAYING_CARDS = 204 ;
const integer BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS = 205 ;
const integer BLOCK_CODE_EMOTICONS = 206 ;
const integer BLOCK_CODE_TRANSPORT_AND_MAP_SYMBOLS = 207 ;
const integer BLOCK_CODE_ALCHEMICAL_SYMBOLS = 208 ;
const integer BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D = 209 ;
const integer BLOCK_CODE_ARABIC_EXTENDED_A = 210 ;
const integer BLOCK_CODE_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS = 211 ;
const integer BLOCK_CODE_CHAKMA = 212 ;
const integer BLOCK_CODE_MEETEI_MAYEK_EXTENSIONS = 213 ;
const integer BLOCK_CODE_MEROITIC_CURSIVE = 214 ;
const integer BLOCK_CODE_MEROITIC_HIEROGLYPHS = 215 ;
const integer BLOCK_CODE_MIAO = 216 ;
const integer BLOCK_CODE_SHARADA = 217 ;
const integer BLOCK_CODE_SORA_SOMPENG = 218 ;
const integer BLOCK_CODE_SUNDANESE_SUPPLEMENT = 219 ;
const integer BLOCK_CODE_TAKRI = 220 ;
const integer BLOCK_CODE_COUNT = 221 ;
const integer BLOCK_CODE_INVALID_CODE = -1 ;
const integer BPT_NONE = 0 ;
const integer BPT_OPEN = 1 ;
const integer BPT_CLOSE = 2 ;
const integer BPT_COUNT = 3 ;
const integer EA_NEUTRAL = 0 ;
const integer EA_AMBIGUOUS = 1 ;
const integer EA_HALFWIDTH = 2 ;
const integer EA_FULLWIDTH = 3 ;
const integer EA_NARROW = 4 ;
const integer EA_WIDE = 5 ;
const integer EA_COUNT = 6 ;
const integer UNICODE_CHAR_NAME = 0 ;
const integer UNICODE_10_CHAR_NAME = 1 ;
const integer EXTENDED_CHAR_NAME = 2 ;
const integer CHAR_NAME_ALIAS = 3 ;
const integer CHAR_NAME_CHOICE_COUNT = 4 ;
const integer SHORT_PROPERTY_NAME = 0 ;
const integer LONG_PROPERTY_NAME = 1 ;
const integer PROPERTY_NAME_CHOICE_COUNT = 2 ;
const integer DT_NONE = 0 ;
const integer DT_CANONICAL = 1 ;
const integer DT_COMPAT = 2 ;
const integer DT_CIRCLE = 3 ;
const integer DT_FINAL = 4 ;
const integer DT_FONT = 5 ;
const integer DT_FRACTION = 6 ;
const integer DT_INITIAL = 7 ;
const integer DT_ISOLATED = 8 ;
const integer DT_MEDIAL = 9 ;
const integer DT_NARROW = 10 ;
const integer DT_NOBREAK = 11 ;
const integer DT_SMALL = 12 ;
const integer DT_SQUARE = 13 ;
const integer DT_SUB = 14 ;
const integer DT_SUPER = 15 ;
const integer DT_VERTICAL = 16 ;
const integer DT_WIDE = 17 ;
const integer DT_COUNT = 18 ;
const integer JT_NON_JOINING = 0 ;
const integer JT_JOIN_CAUSING = 1 ;
const integer JT_DUAL_JOINING = 2 ;
const integer JT_LEFT_JOINING = 3 ;
const integer JT_RIGHT_JOINING = 4 ;
const integer JT_TRANSPARENT = 5 ;
const integer JT_COUNT = 6 ;
const integer JG_NO_JOINING_GROUP = 0 ;
const integer JG_AIN = 1 ;
const integer JG_ALAPH = 2 ;
const integer JG_ALEF = 3 ;
const integer JG_BEH = 4 ;
const integer JG_BETH = 5 ;
const integer JG_DAL = 6 ;
const integer JG_DALATH_RISH = 7 ;
const integer JG_E = 8 ;
const integer JG_FEH = 9 ;
const integer JG_FINAL_SEMKATH = 10 ;
const integer JG_GAF = 11 ;
const integer JG_GAMAL = 12 ;
const integer JG_HAH = 13 ;
const integer JG_TEH_MARBUTA_GOAL = 14 ;
const integer JG_HAMZA_ON_HEH_GOAL = 14 ;
const integer JG_HE = 15 ;
const integer JG_HEH = 16 ;
const integer JG_HEH_GOAL = 17 ;
const integer JG_HETH = 18 ;
const integer JG_KAF = 19 ;
const integer JG_KAPH = 20 ;
const integer JG_KNOTTED_HEH = 21 ;
const integer JG_LAM = 22 ;
const integer JG_LAMADH = 23 ;
const integer JG_MEEM = 24 ;
const integer JG_MIM = 25 ;
const integer JG_NOON = 26 ;
const integer JG_NUN = 27 ;
const integer JG_PE = 28 ;
const integer JG_QAF = 29 ;
const integer JG_QAPH = 30 ;
const integer JG_REH = 31 ;
const integer JG_REVERSED_PE = 32 ;
const integer JG_SAD = 33 ;
const integer JG_SADHE = 34 ;
const integer JG_SEEN = 35 ;
const integer JG_SEMKATH = 36 ;
const integer JG_SHIN = 37 ;
const integer JG_SWASH_KAF = 38 ;
const integer JG_SYRIAC_WAW = 39 ;
const integer JG_TAH = 40 ;
const integer JG_TAW = 41 ;
const integer JG_TEH_MARBUTA = 42 ;
const integer JG_TETH = 43 ;
const integer JG_WAW = 44 ;
const integer JG_YEH = 45 ;
const integer JG_YEH_BARREE = 46 ;
const integer JG_YEH_WITH_TAIL = 47 ;
const integer JG_YUDH = 48 ;
const integer JG_YUDH_HE = 49 ;
const integer JG_ZAIN = 50 ;
const integer JG_FE = 51 ;
const integer JG_KHAPH = 52 ;
const integer JG_ZHAIN = 53 ;
const integer JG_BURUSHASKI_YEH_BARREE = 54 ;
const integer JG_FARSI_YEH = 55 ;
const integer JG_NYA = 56 ;
const integer JG_ROHINGYA_YEH = 57 ;
const integer JG_COUNT = 58 ;
const integer GCB_OTHER = 0 ;
const integer GCB_CONTROL = 1 ;
const integer GCB_CR = 2 ;
const integer GCB_EXTEND = 3 ;
const integer GCB_L = 4 ;
const integer GCB_LF = 5 ;
const integer GCB_LV = 6 ;
const integer GCB_LVT = 7 ;
const integer GCB_T = 8 ;
const integer GCB_V = 9 ;
const integer GCB_SPACING_MARK = 10 ;
const integer GCB_PREPEND = 11 ;
const integer GCB_REGIONAL_INDICATOR = 12 ;
const integer GCB_COUNT = 13 ;
const integer WB_OTHER = 0 ;
const integer WB_ALETTER = 1 ;
const integer WB_FORMAT = 2 ;
const integer WB_KATAKANA = 3 ;
const integer WB_MIDLETTER = 4 ;
const integer WB_MIDNUM = 5 ;
const integer WB_NUMERIC = 6 ;
const integer WB_EXTENDNUMLET = 7 ;
const integer WB_CR = 8 ;
const integer WB_EXTEND = 9 ;
const integer WB_LF = 10 ;
const integer WB_MIDNUMLET = 11 ;
const integer WB_NEWLINE = 12 ;
const integer WB_REGIONAL_INDICATOR = 13 ;
const integer WB_HEBREW_LETTER = 14 ;
const integer WB_SINGLE_QUOTE = 15 ;
const integer WB_DOUBLE_QUOTE = 16 ;
const integer WB_COUNT = 17 ;
const integer SB_OTHER = 0 ;
const integer SB_ATERM = 1 ;
const integer SB_CLOSE = 2 ;
const integer SB_FORMAT = 3 ;
const integer SB_LOWER = 4 ;
const integer SB_NUMERIC = 5 ;
const integer SB_OLETTER = 6 ;
const integer SB_SEP = 7 ;
const integer SB_SP = 8 ;
const integer SB_STERM = 9 ;
const integer SB_UPPER = 10 ;
const integer SB_CR = 11 ;
const integer SB_EXTEND = 12 ;
const integer SB_LF = 13 ;
const integer SB_SCONTINUE = 14 ;
const integer SB_COUNT = 15 ;
const integer LB_UNKNOWN = 0 ;
const integer LB_AMBIGUOUS = 1 ;
const integer LB_ALPHABETIC = 2 ;
const integer LB_BREAK_BOTH = 3 ;
const integer LB_BREAK_AFTER = 4 ;
const integer LB_BREAK_BEFORE = 5 ;
const integer LB_MANDATORY_BREAK = 6 ;
const integer LB_CONTINGENT_BREAK = 7 ;
const integer LB_CLOSE_PUNCTUATION = 8 ;
const integer LB_COMBINING_MARK = 9 ;
const integer LB_CARRIAGE_RETURN = 10 ;
const integer LB_EXCLAMATION = 11 ;
const integer LB_GLUE = 12 ;
const integer LB_HYPHEN = 13 ;
const integer LB_IDEOGRAPHIC = 14 ;
const integer LB_INSEPARABLE = 15 ;
const integer LB_INSEPERABLE = 15 ;
const integer LB_INFIX_NUMERIC = 16 ;
const integer LB_LINE_FEED = 17 ;
const integer LB_NONSTARTER = 18 ;
const integer LB_NUMERIC = 19 ;
const integer LB_OPEN_PUNCTUATION = 20 ;
const integer LB_POSTFIX_NUMERIC = 21 ;
const integer LB_PREFIX_NUMERIC = 22 ;
const integer LB_QUOTATION = 23 ;
const integer LB_COMPLEX_CONTEXT = 24 ;
const integer LB_SURROGATE = 25 ;
const integer LB_SPACE = 26 ;
const integer LB_BREAK_SYMBOLS = 27 ;
const integer LB_ZWSPACE = 28 ;
const integer LB_NEXT_LINE = 29 ;
const integer LB_WORD_JOINER = 30 ;
const integer LB_H2 = 31 ;
const integer LB_H3 = 32 ;
const integer LB_JL = 33 ;
const integer LB_JT = 34 ;
const integer LB_JV = 35 ;
const integer LB_CLOSE_PARENTHESIS = 36 ;
const integer LB_CONDITIONAL_JAPANESE_STARTER = 37 ;
const integer LB_HEBREW_LETTER = 38 ;
const integer LB_REGIONAL_INDICATOR = 39 ;
const integer LB_COUNT = 40 ;
const integer NT_NONE = 0 ;
const integer NT_DECIMAL = 1 ;
const integer NT_DIGIT = 2 ;
const integer NT_NUMERIC = 3 ;
const integer NT_COUNT = 4 ;
const integer HST_NOT_APPLICABLE = 0 ;
const integer HST_LEADING_JAMO = 1 ;
const integer HST_VOWEL_JAMO = 2 ;
const integer HST_TRAILING_JAMO = 3 ;
const integer HST_LV_SYLLABLE = 4 ;
const integer HST_LVT_SYLLABLE = 5 ;
const integer HST_COUNT = 6 ;
/* Методы */
public static charAge ( mixed $codepoint ) : array
public static charDigitValue ( mixed $codepoint ) : int
public static charDirection ( mixed $codepoint ) : int
public static charFromName ( string $characterName [, int $nameChoice = IntlChar::UNICODE_CHAR_NAME ] ) : int
public static charMirror ( mixed $codepoint ) : mixed
public static charName ( mixed $codepoint [, int $nameChoice = IntlChar::UNICODE_CHAR_NAME ] ) : string
public static charType ( mixed $codepoint ) : int
public static chr ( mixed $codepoint ) : string
public static digit ( string $codepoint [, int $radix = 10 ] ) : int
public static enumCharNames ( mixed $start , mixed $limit , callable $callback [, int $nameChoice = IntlChar::UNICODE_CHAR_NAME ] ) : void
public static enumCharTypes ( callable $callback ) : void
public static foldCase ( mixed $codepoint [, int $options = IntlChar::FOLD_CASE_DEFAULT ] ) : mixed
public static forDigit ( int $digit [, int $radix = 10 ] ) : int
public static getBidiPairedBracket ( mixed $codepoint ) : mixed
public static getBlockCode ( mixed $codepoint ) : int
public static getCombiningClass ( mixed $codepoint ) : int
public static getFC_NFKC_Closure ( mixed $codepoint ) : string
public static getIntPropertyMaxValue ( int $property ) : int
public static getIntPropertyMinValue ( int $property ) : int
public static getIntPropertyValue ( mixed $codepoint , int $property ) : int
public static getNumericValue ( mixed $codepoint ) : float
public static getPropertyEnum ( string $alias ) : int
public static getPropertyName ( int $property [, int $nameChoice = IntlChar::LONG_PROPERTY_NAME ] ) : string
public static getPropertyValueEnum ( int $property , string $name ) : int
public static getPropertyValueName ( int $property , int $value [, int $nameChoice = IntlChar::LONG_PROPERTY_NAME ] ) : string
public static getUnicodeVersion ( void ) : array
public static hasBinaryProperty ( mixed $codepoint , int $property ) : bool
public static isalnum ( mixed $codepoint ) : bool
public static isalpha ( mixed $codepoint ) : bool
public static isbase ( mixed $codepoint ) : bool
public static isblank ( mixed $codepoint ) : bool
public static iscntrl ( mixed $codepoint ) : bool
public static isdefined ( mixed $codepoint ) : bool
public static isdigit ( mixed $codepoint ) : bool
public static isgraph ( mixed $codepoint ) : bool
public static isIDIgnorable ( mixed $codepoint ) : bool
public static isIDPart ( mixed $codepoint ) : bool
public static isIDStart ( mixed $codepoint ) : bool
public static isISOControl ( mixed $codepoint ) : bool
public static isJavaIDPart ( mixed $codepoint ) : bool
public static isJavaIDStart ( mixed $codepoint ) : bool
public static isJavaSpaceChar ( mixed $codepoint ) : bool
public static islower ( mixed $codepoint ) : bool
public static isMirrored ( mixed $codepoint ) : bool
public static isprint ( mixed $codepoint ) : bool
public static ispunct ( mixed $codepoint ) : bool
public static isspace ( mixed $codepoint ) : bool
public static istitle ( mixed $codepoint ) : bool
public static isUAlphabetic ( mixed $codepoint ) : bool
public static isULowercase ( mixed $codepoint ) : bool
public static isupper ( mixed $codepoint ) : bool
public static isUUppercase ( mixed $codepoint ) : bool
public static isUWhiteSpace ( mixed $codepoint ) : bool
public static isWhitespace ( mixed $codepoint ) : bool
public static isxdigit ( mixed $codepoint ) : bool
public static ord ( mixed $character ) : int
public static tolower ( mixed $codepoint ) : mixed
public static totitle ( mixed $codepoint ) : mixed
public static toupper ( mixed $codepoint ) : mixed
}

Предопределенные константы

IntlChar::UNICODE_VERSION

IntlChar::CODEPOINT_MIN

IntlChar::CODEPOINT_MAX

IntlChar::NO_NUMERIC_VALUE

Special value that is returned by IntlChar::getNumericValue() when no numeric value is defined for a code point.

IntlChar::PROPERTY_ALPHABETIC

IntlChar::PROPERTY_BINARY_START

IntlChar::PROPERTY_ASCII_HEX_DIGIT

IntlChar::PROPERTY_BIDI_CONTROL

IntlChar::PROPERTY_BIDI_MIRRORED

IntlChar::PROPERTY_DASH

IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT

IntlChar::PROPERTY_DEPRECATED

IntlChar::PROPERTY_DIACRITIC

IntlChar::PROPERTY_EXTENDER

IntlChar::PROPERTY_FULL_COMPOSITION_EXCLUSION

IntlChar::PROPERTY_GRAPHEME_BASE

IntlChar::PROPERTY_GRAPHEME_EXTEND

IntlChar::PROPERTY_GRAPHEME_LINK

IntlChar::PROPERTY_HEX_DIGIT

IntlChar::PROPERTY_HYPHEN

IntlChar::PROPERTY_ID_CONTINUE

IntlChar::PROPERTY_ID_START

IntlChar::PROPERTY_IDEOGRAPHIC

IntlChar::PROPERTY_IDS_BINARY_OPERATOR

IntlChar::PROPERTY_IDS_TRINARY_OPERATOR

IntlChar::PROPERTY_JOIN_CONTROL

IntlChar::PROPERTY_LOGICAL_ORDER_EXCEPTION

IntlChar::PROPERTY_LOWERCASE

IntlChar::PROPERTY_MATH

IntlChar::PROPERTY_NONCHARACTER_CODE_POINT

IntlChar::PROPERTY_QUOTATION_MARK

IntlChar::PROPERTY_RADICAL

IntlChar::PROPERTY_SOFT_DOTTED

IntlChar::PROPERTY_TERMINAL_PUNCTUATION

IntlChar::PROPERTY_UNIFIED_IDEOGRAPH

IntlChar::PROPERTY_UPPERCASE

IntlChar::PROPERTY_WHITE_SPACE

IntlChar::PROPERTY_XID_CONTINUE

IntlChar::PROPERTY_XID_START

IntlChar::PROPERTY_CASE_SENSITIVE

IntlChar::PROPERTY_S_TERM

IntlChar::PROPERTY_VARIATION_SELECTOR

IntlChar::PROPERTY_NFD_INERT

IntlChar::PROPERTY_NFKD_INERT

IntlChar::PROPERTY_NFC_INERT

IntlChar::PROPERTY_NFKC_INERT

IntlChar::PROPERTY_SEGMENT_STARTER

IntlChar::PROPERTY_PATTERN_SYNTAX

IntlChar::PROPERTY_PATTERN_WHITE_SPACE

IntlChar::PROPERTY_POSIX_ALNUM

IntlChar::PROPERTY_POSIX_BLANK

IntlChar::PROPERTY_POSIX_GRAPH

IntlChar::PROPERTY_POSIX_PRINT

IntlChar::PROPERTY_POSIX_XDIGIT

IntlChar::PROPERTY_CASED

IntlChar::PROPERTY_CASE_IGNORABLE

IntlChar::PROPERTY_CHANGES_WHEN_LOWERCASED

IntlChar::PROPERTY_CHANGES_WHEN_UPPERCASED

IntlChar::PROPERTY_CHANGES_WHEN_TITLECASED

IntlChar::PROPERTY_CHANGES_WHEN_CASEFOLDED

IntlChar::PROPERTY_CHANGES_WHEN_CASEMAPPED

IntlChar::PROPERTY_CHANGES_WHEN_NFKC_CASEFOLDED

IntlChar::PROPERTY_BINARY_LIMIT

IntlChar::PROPERTY_BIDI_CLASS

IntlChar::PROPERTY_INT_START

IntlChar::PROPERTY_BLOCK

IntlChar::PROPERTY_CANONICAL_COMBINING_CLASS

IntlChar::PROPERTY_DECOMPOSITION_TYPE

IntlChar::PROPERTY_EAST_ASIAN_WIDTH

IntlChar::PROPERTY_GENERAL_CATEGORY

IntlChar::PROPERTY_JOINING_GROUP

IntlChar::PROPERTY_JOINING_TYPE

IntlChar::PROPERTY_LINE_BREAK

IntlChar::PROPERTY_NUMERIC_TYPE

IntlChar::PROPERTY_SCRIPT

IntlChar::PROPERTY_HANGUL_SYLLABLE_TYPE

IntlChar::PROPERTY_NFD_QUICK_CHECK

IntlChar::PROPERTY_NFKD_QUICK_CHECK

IntlChar::PROPERTY_NFC_QUICK_CHECK

IntlChar::PROPERTY_NFKC_QUICK_CHECK

IntlChar::PROPERTY_LEAD_CANONICAL_COMBINING_CLASS

IntlChar::PROPERTY_TRAIL_CANONICAL_COMBINING_CLASS

IntlChar::PROPERTY_GRAPHEME_CLUSTER_BREAK

IntlChar::PROPERTY_SENTENCE_BREAK

IntlChar::PROPERTY_WORD_BREAK

IntlChar::PROPERTY_BIDI_PAIRED_BRACKET_TYPE

IntlChar::PROPERTY_INT_LIMIT

IntlChar::PROPERTY_GENERAL_CATEGORY_MASK

IntlChar::PROPERTY_MASK_START

IntlChar::PROPERTY_MASK_LIMIT

IntlChar::PROPERTY_NUMERIC_VALUE

IntlChar::PROPERTY_DOUBLE_START

IntlChar::PROPERTY_DOUBLE_LIMIT

IntlChar::PROPERTY_AGE

IntlChar::PROPERTY_STRING_START

IntlChar::PROPERTY_BIDI_MIRRORING_GLYPH

IntlChar::PROPERTY_CASE_FOLDING

IntlChar::PROPERTY_ISO_COMMENT

IntlChar::PROPERTY_LOWERCASE_MAPPING

IntlChar::PROPERTY_NAME

IntlChar::PROPERTY_SIMPLE_CASE_FOLDING

IntlChar::PROPERTY_SIMPLE_LOWERCASE_MAPPING

IntlChar::PROPERTY_SIMPLE_TITLECASE_MAPPING

IntlChar::PROPERTY_SIMPLE_UPPERCASE_MAPPING

IntlChar::PROPERTY_TITLECASE_MAPPING

IntlChar::PROPERTY_UNICODE_1_NAME

IntlChar::PROPERTY_UPPERCASE_MAPPING

IntlChar::PROPERTY_BIDI_PAIRED_BRACKET

IntlChar::PROPERTY_STRING_LIMIT

IntlChar::PROPERTY_SCRIPT_EXTENSIONS

IntlChar::PROPERTY_OTHER_PROPERTY_START

IntlChar::PROPERTY_OTHER_PROPERTY_LIMIT

IntlChar::PROPERTY_INVALID_CODE

IntlChar::CHAR_CATEGORY_UNASSIGNED

IntlChar::CHAR_CATEGORY_GENERAL_OTHER_TYPES

IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER

IntlChar::CHAR_CATEGORY_LOWERCASE_LETTER

IntlChar::CHAR_CATEGORY_TITLECASE_LETTER

IntlChar::CHAR_CATEGORY_MODIFIER_LETTER

IntlChar::CHAR_CATEGORY_OTHER_LETTER

IntlChar::CHAR_CATEGORY_NON_SPACING_MARK

IntlChar::CHAR_CATEGORY_ENCLOSING_MARK

IntlChar::CHAR_CATEGORY_COMBINING_SPACING_MARK

IntlChar::CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER

IntlChar::CHAR_CATEGORY_LETTER_NUMBER

IntlChar::CHAR_CATEGORY_OTHER_NUMBER

IntlChar::CHAR_CATEGORY_SPACE_SEPARATOR

IntlChar::CHAR_CATEGORY_LINE_SEPARATOR

IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR

IntlChar::CHAR_CATEGORY_CONTROL_CHAR

IntlChar::CHAR_CATEGORY_FORMAT_CHAR

IntlChar::CHAR_CATEGORY_PRIVATE_USE_CHAR

IntlChar::CHAR_CATEGORY_SURROGATE

IntlChar::CHAR_CATEGORY_DASH_PUNCTUATION

IntlChar::CHAR_CATEGORY_START_PUNCTUATION

IntlChar::CHAR_CATEGORY_END_PUNCTUATION

IntlChar::CHAR_CATEGORY_CONNECTOR_PUNCTUATION

IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION

IntlChar::CHAR_CATEGORY_MATH_SYMBOL

IntlChar::CHAR_CATEGORY_CURRENCY_SYMBOL

IntlChar::CHAR_CATEGORY_MODIFIER_SYMBOL

IntlChar::CHAR_CATEGORY_OTHER_SYMBOL

IntlChar::CHAR_CATEGORY_INITIAL_PUNCTUATION

IntlChar::CHAR_CATEGORY_FINAL_PUNCTUATION

IntlChar::CHAR_CATEGORY_CHAR_CATEGORY_COUNT

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT

IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER

IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR

IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR

IntlChar::CHAR_DIRECTION_ARABIC_NUMBER

IntlChar::CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR

IntlChar::CHAR_DIRECTION_BLOCK_SEPARATOR

IntlChar::CHAR_DIRECTION_SEGMENT_SEPARATOR

IntlChar::CHAR_DIRECTION_WHITE_SPACE_NEUTRAL

IntlChar::CHAR_DIRECTION_OTHER_NEUTRAL

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE

IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT

IntlChar::CHAR_DIRECTION_DIR_NON_SPACING_MARK

IntlChar::CHAR_DIRECTION_BOUNDARY_NEUTRAL

IntlChar::CHAR_DIRECTION_FIRST_STRONG_ISOLATE

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE

IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE

IntlChar::CHAR_DIRECTION_CHAR_DIRECTION_COUNT

IntlChar::BLOCK_CODE_NO_BLOCK

IntlChar::BLOCK_CODE_BASIC_LATIN

IntlChar::BLOCK_CODE_LATIN_1_SUPPLEMENT

IntlChar::BLOCK_CODE_LATIN_EXTENDED_A

IntlChar::BLOCK_CODE_LATIN_EXTENDED_B

IntlChar::BLOCK_CODE_IPA_EXTENSIONS

IntlChar::BLOCK_CODE_SPACING_MODIFIER_LETTERS

IntlChar::BLOCK_CODE_COMBINING_DIACRITICAL_MARKS

IntlChar::BLOCK_CODE_GREEK

IntlChar::BLOCK_CODE_CYRILLIC

IntlChar::BLOCK_CODE_ARMENIAN

IntlChar::BLOCK_CODE_HEBREW

IntlChar::BLOCK_CODE_ARABIC

IntlChar::BLOCK_CODE_SYRIAC

IntlChar::BLOCK_CODE_THAANA

IntlChar::BLOCK_CODE_DEVANAGARI

IntlChar::BLOCK_CODE_BENGALI

IntlChar::BLOCK_CODE_GURMUKHI

IntlChar::BLOCK_CODE_GUJARATI

IntlChar::BLOCK_CODE_ORIYA

IntlChar::BLOCK_CODE_TAMIL

IntlChar::BLOCK_CODE_TELUGU

IntlChar::BLOCK_CODE_KANNADA

IntlChar::BLOCK_CODE_MALAYALAM

IntlChar::BLOCK_CODE_SINHALA

IntlChar::BLOCK_CODE_THAI

IntlChar::BLOCK_CODE_LAO

IntlChar::BLOCK_CODE_TIBETAN

IntlChar::BLOCK_CODE_MYANMAR

IntlChar::BLOCK_CODE_GEORGIAN

IntlChar::BLOCK_CODE_HANGUL_JAMO

IntlChar::BLOCK_CODE_ETHIOPIC

IntlChar::BLOCK_CODE_CHEROKEE

IntlChar::BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS

IntlChar::BLOCK_CODE_OGHAM

IntlChar::BLOCK_CODE_RUNIC

IntlChar::BLOCK_CODE_KHMER

IntlChar::BLOCK_CODE_MONGOLIAN

IntlChar::BLOCK_CODE_LATIN_EXTENDED_ADDITIONAL

IntlChar::BLOCK_CODE_GREEK_EXTENDED

IntlChar::BLOCK_CODE_GENERAL_PUNCTUATION

IntlChar::BLOCK_CODE_SUPERSCRIPTS_AND_SUBSCRIPTS

IntlChar::BLOCK_CODE_CURRENCY_SYMBOLS

IntlChar::BLOCK_CODE_COMBINING_MARKS_FOR_SYMBOLS

IntlChar::BLOCK_CODE_LETTERLIKE_SYMBOLS

IntlChar::BLOCK_CODE_NUMBER_FORMS

IntlChar::BLOCK_CODE_ARROWS

IntlChar::BLOCK_CODE_MATHEMATICAL_OPERATORS

IntlChar::BLOCK_CODE_MISCELLANEOUS_TECHNICAL

IntlChar::BLOCK_CODE_CONTROL_PICTURES

IntlChar::BLOCK_CODE_OPTICAL_CHARACTER_RECOGNITION

IntlChar::BLOCK_CODE_ENCLOSED_ALPHANUMERICS

IntlChar::BLOCK_CODE_BOX_DRAWING

IntlChar::BLOCK_CODE_BLOCK_ELEMENTS

IntlChar::BLOCK_CODE_GEOMETRIC_SHAPES

IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS

IntlChar::BLOCK_CODE_DINGBATS

IntlChar::BLOCK_CODE_BRAILLE_PATTERNS

IntlChar::BLOCK_CODE_CJK_RADICALS_SUPPLEMENT

IntlChar::BLOCK_CODE_KANGXI_RADICALS

IntlChar::BLOCK_CODE_IDEOGRAPHIC_DESCRIPTION_CHARACTERS

IntlChar::BLOCK_CODE_CJK_SYMBOLS_AND_PUNCTUATION

IntlChar::BLOCK_CODE_HIRAGANA

IntlChar::BLOCK_CODE_KATAKANA

IntlChar::BLOCK_CODE_BOPOMOFO

IntlChar::BLOCK_CODE_HANGUL_COMPATIBILITY_JAMO

IntlChar::BLOCK_CODE_KANBUN

IntlChar::BLOCK_CODE_BOPOMOFO_EXTENDED

IntlChar::BLOCK_CODE_ENCLOSED_CJK_LETTERS_AND_MONTHS

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS

IntlChar::BLOCK_CODE_YI_SYLLABLES

IntlChar::BLOCK_CODE_YI_RADICALS

IntlChar::BLOCK_CODE_HANGUL_SYLLABLES

IntlChar::BLOCK_CODE_HIGH_SURROGATES

IntlChar::BLOCK_CODE_HIGH_PRIVATE_USE_SURROGATES

IntlChar::BLOCK_CODE_LOW_SURROGATES

IntlChar::BLOCK_CODE_PRIVATE_USE_AREA

IntlChar::BLOCK_CODE_PRIVATE_USE

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS

IntlChar::BLOCK_CODE_ALPHABETIC_PRESENTATION_FORMS

IntlChar::BLOCK_CODE_ARABIC_PRESENTATION_FORMS_A

IntlChar::BLOCK_CODE_COMBINING_HALF_MARKS

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY_FORMS

IntlChar::BLOCK_CODE_SMALL_FORM_VARIANTS

IntlChar::BLOCK_CODE_ARABIC_PRESENTATION_FORMS_B

IntlChar::BLOCK_CODE_SPECIALS

IntlChar::BLOCK_CODE_HALFWIDTH_AND_FULLWIDTH_FORMS

IntlChar::BLOCK_CODE_OLD_ITALIC

IntlChar::BLOCK_CODE_GOTHIC

IntlChar::BLOCK_CODE_DESERET

IntlChar::BLOCK_CODE_BYZANTINE_MUSICAL_SYMBOLS

IntlChar::BLOCK_CODE_MUSICAL_SYMBOLS

IntlChar::BLOCK_CODE_MATHEMATICAL_ALPHANUMERIC_SYMBOLS

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT

IntlChar::BLOCK_CODE_TAGS

IntlChar::BLOCK_CODE_CYRILLIC_SUPPLEMENT

IntlChar::BLOCK_CODE_CYRILLIC_SUPPLEMENTARY

IntlChar::BLOCK_CODE_TAGALOG

IntlChar::BLOCK_CODE_HANUNOO

IntlChar::BLOCK_CODE_BUHID

IntlChar::BLOCK_CODE_TAGBANWA

IntlChar::BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A

IntlChar::BLOCK_CODE_SUPPLEMENTAL_ARROWS_A

IntlChar::BLOCK_CODE_SUPPLEMENTAL_ARROWS_B

IntlChar::BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B

IntlChar::BLOCK_CODE_SUPPLEMENTAL_MATHEMATICAL_OPERATORS

IntlChar::BLOCK_CODE_KATAKANA_PHONETIC_EXTENSIONS

IntlChar::BLOCK_CODE_VARIATION_SELECTORS

IntlChar::BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_A

IntlChar::BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_B

IntlChar::BLOCK_CODE_LIMBU

IntlChar::BLOCK_CODE_TAI_LE

IntlChar::BLOCK_CODE_KHMER_SYMBOLS

IntlChar::BLOCK_CODE_PHONETIC_EXTENSIONS

IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_ARROWS

IntlChar::BLOCK_CODE_YIJING_HEXAGRAM_SYMBOLS

IntlChar::BLOCK_CODE_LINEAR_B_SYLLABARY

IntlChar::BLOCK_CODE_LINEAR_B_IDEOGRAMS

IntlChar::BLOCK_CODE_AEGEAN_NUMBERS

IntlChar::BLOCK_CODE_UGARITIC

IntlChar::BLOCK_CODE_SHAVIAN

IntlChar::BLOCK_CODE_OSMANYA

IntlChar::BLOCK_CODE_CYPRIOT_SYLLABARY

IntlChar::BLOCK_CODE_TAI_XUAN_JING_SYMBOLS

IntlChar::BLOCK_CODE_VARIATION_SELECTORS_SUPPLEMENT

IntlChar::BLOCK_CODE_ANCIENT_GREEK_MUSICAL_NOTATION

IntlChar::BLOCK_CODE_ANCIENT_GREEK_NUMBERS

IntlChar::BLOCK_CODE_ARABIC_SUPPLEMENT

IntlChar::BLOCK_CODE_BUGINESE

IntlChar::BLOCK_CODE_CJK_STROKES

IntlChar::BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT

IntlChar::BLOCK_CODE_COPTIC

IntlChar::BLOCK_CODE_ETHIOPIC_EXTENDED

IntlChar::BLOCK_CODE_ETHIOPIC_SUPPLEMENT

IntlChar::BLOCK_CODE_GEORGIAN_SUPPLEMENT

IntlChar::BLOCK_CODE_GLAGOLITIC

IntlChar::BLOCK_CODE_KHAROSHTHI

IntlChar::BLOCK_CODE_MODIFIER_TONE_LETTERS

IntlChar::BLOCK_CODE_NEW_TAI_LUE

IntlChar::BLOCK_CODE_OLD_PERSIAN

IntlChar::BLOCK_CODE_PHONETIC_EXTENSIONS_SUPPLEMENT

IntlChar::BLOCK_CODE_SUPPLEMENTAL_PUNCTUATION

IntlChar::BLOCK_CODE_SYLOTI_NAGRI

IntlChar::BLOCK_CODE_TIFINAGH

IntlChar::BLOCK_CODE_VERTICAL_FORMS

IntlChar::BLOCK_CODE_NKO

IntlChar::BLOCK_CODE_BALINESE

IntlChar::BLOCK_CODE_LATIN_EXTENDED_C

IntlChar::BLOCK_CODE_LATIN_EXTENDED_D

IntlChar::BLOCK_CODE_PHAGS_PA

IntlChar::BLOCK_CODE_PHOENICIAN

IntlChar::BLOCK_CODE_CUNEIFORM

IntlChar::BLOCK_CODE_CUNEIFORM_NUMBERS_AND_PUNCTUATION

IntlChar::BLOCK_CODE_COUNTING_ROD_NUMERALS

IntlChar::BLOCK_CODE_SUNDANESE

IntlChar::BLOCK_CODE_LEPCHA

IntlChar::BLOCK_CODE_OL_CHIKI

IntlChar::BLOCK_CODE_CYRILLIC_EXTENDED_A

IntlChar::BLOCK_CODE_VAI

IntlChar::BLOCK_CODE_CYRILLIC_EXTENDED_B

IntlChar::BLOCK_CODE_SAURASHTRA

IntlChar::BLOCK_CODE_KAYAH_LI

IntlChar::BLOCK_CODE_REJANG

IntlChar::BLOCK_CODE_CHAM

IntlChar::BLOCK_CODE_ANCIENT_SYMBOLS

IntlChar::BLOCK_CODE_PHAISTOS_DISC

IntlChar::BLOCK_CODE_LYCIAN

IntlChar::BLOCK_CODE_CARIAN

IntlChar::BLOCK_CODE_LYDIAN

IntlChar::BLOCK_CODE_MAHJONG_TILES

IntlChar::BLOCK_CODE_DOMINO_TILES

IntlChar::BLOCK_CODE_SAMARITAN

IntlChar::BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED

IntlChar::BLOCK_CODE_TAI_THAM

IntlChar::BLOCK_CODE_VEDIC_EXTENSIONS

IntlChar::BLOCK_CODE_LISU

IntlChar::BLOCK_CODE_BAMUM

IntlChar::BLOCK_CODE_COMMON_INDIC_NUMBER_FORMS

IntlChar::BLOCK_CODE_DEVANAGARI_EXTENDED

IntlChar::BLOCK_CODE_HANGUL_JAMO_EXTENDED_A

IntlChar::BLOCK_CODE_JAVANESE

IntlChar::BLOCK_CODE_MYANMAR_EXTENDED_A

IntlChar::BLOCK_CODE_TAI_VIET

IntlChar::BLOCK_CODE_MEETEI_MAYEK

IntlChar::BLOCK_CODE_HANGUL_JAMO_EXTENDED_B

IntlChar::BLOCK_CODE_IMPERIAL_ARAMAIC

IntlChar::BLOCK_CODE_OLD_SOUTH_ARABIAN

IntlChar::BLOCK_CODE_AVESTAN

IntlChar::BLOCK_CODE_INSCRIPTIONAL_PARTHIAN

IntlChar::BLOCK_CODE_INSCRIPTIONAL_PAHLAVI

IntlChar::BLOCK_CODE_OLD_TURKIC

IntlChar::BLOCK_CODE_RUMI_NUMERAL_SYMBOLS

IntlChar::BLOCK_CODE_KAITHI

IntlChar::BLOCK_CODE_EGYPTIAN_HIEROGLYPHS

IntlChar::BLOCK_CODE_ENCLOSED_ALPHANUMERIC_SUPPLEMENT

IntlChar::BLOCK_CODE_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C

IntlChar::BLOCK_CODE_MANDAIC

IntlChar::BLOCK_CODE_BATAK

IntlChar::BLOCK_CODE_ETHIOPIC_EXTENDED_A

IntlChar::BLOCK_CODE_BRAHMI

IntlChar::BLOCK_CODE_BAMUM_SUPPLEMENT

IntlChar::BLOCK_CODE_KANA_SUPPLEMENT

IntlChar::BLOCK_CODE_PLAYING_CARDS

IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS

IntlChar::BLOCK_CODE_EMOTICONS

IntlChar::BLOCK_CODE_TRANSPORT_AND_MAP_SYMBOLS

IntlChar::BLOCK_CODE_ALCHEMICAL_SYMBOLS

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D

IntlChar::BLOCK_CODE_ARABIC_EXTENDED_A

IntlChar::BLOCK_CODE_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS

IntlChar::BLOCK_CODE_CHAKMA

IntlChar::BLOCK_CODE_MEETEI_MAYEK_EXTENSIONS

IntlChar::BLOCK_CODE_MEROITIC_CURSIVE

IntlChar::BLOCK_CODE_MEROITIC_HIEROGLYPHS

IntlChar::BLOCK_CODE_MIAO

IntlChar::BLOCK_CODE_SHARADA

IntlChar::BLOCK_CODE_SORA_SOMPENG

IntlChar::BLOCK_CODE_SUNDANESE_SUPPLEMENT

IntlChar::BLOCK_CODE_TAKRI

IntlChar::BLOCK_CODE_COUNT

IntlChar::BLOCK_CODE_INVALID_CODE

IntlChar::BPT_NONE

IntlChar::BPT_OPEN

IntlChar::BPT_CLOSE

IntlChar::BPT_COUNT

IntlChar::EA_NEUTRAL

IntlChar::EA_AMBIGUOUS

IntlChar::EA_HALFWIDTH

IntlChar::EA_FULLWIDTH

IntlChar::EA_NARROW

IntlChar::EA_WIDE

IntlChar::EA_COUNT

IntlChar::UNICODE_CHAR_NAME

IntlChar::UNICODE_10_CHAR_NAME

IntlChar::EXTENDED_CHAR_NAME

IntlChar::CHAR_NAME_ALIAS

IntlChar::CHAR_NAME_CHOICE_COUNT

IntlChar::SHORT_PROPERTY_NAME

IntlChar::LONG_PROPERTY_NAME

IntlChar::PROPERTY_NAME_CHOICE_COUNT

IntlChar::DT_NONE

IntlChar::DT_CANONICAL

IntlChar::DT_COMPAT

IntlChar::DT_CIRCLE

IntlChar::DT_FINAL

IntlChar::DT_FONT

IntlChar::DT_FRACTION

IntlChar::DT_INITIAL

IntlChar::DT_ISOLATED

IntlChar::DT_MEDIAL

IntlChar::DT_NARROW

IntlChar::DT_NOBREAK

IntlChar::DT_SMALL

IntlChar::DT_SQUARE

IntlChar::DT_SUB

IntlChar::DT_SUPER

IntlChar::DT_VERTICAL

IntlChar::DT_WIDE

IntlChar::DT_COUNT

IntlChar::JT_NON_JOINING

IntlChar::JT_JOIN_CAUSING

IntlChar::JT_DUAL_JOINING

IntlChar::JT_LEFT_JOINING

IntlChar::JT_RIGHT_JOINING

IntlChar::JT_TRANSPARENT

IntlChar::JT_COUNT

IntlChar::JG_NO_JOINING_GROUP

IntlChar::JG_AIN

IntlChar::JG_ALAPH

IntlChar::JG_ALEF

IntlChar::JG_BEH

IntlChar::JG_BETH

IntlChar::JG_DAL

IntlChar::JG_DALATH_RISH

IntlChar::JG_E

IntlChar::JG_FEH

IntlChar::JG_FINAL_SEMKATH

IntlChar::JG_GAF

IntlChar::JG_GAMAL

IntlChar::JG_HAH

IntlChar::JG_TEH_MARBUTA_GOAL

IntlChar::JG_HAMZA_ON_HEH_GOAL

IntlChar::JG_HE

IntlChar::JG_HEH

IntlChar::JG_HEH_GOAL

IntlChar::JG_HETH

IntlChar::JG_KAF

IntlChar::JG_KAPH

IntlChar::JG_KNOTTED_HEH

IntlChar::JG_LAM

IntlChar::JG_LAMADH

IntlChar::JG_MEEM

IntlChar::JG_MIM

IntlChar::JG_NOON

IntlChar::JG_NUN

IntlChar::JG_PE

IntlChar::JG_QAF

IntlChar::JG_QAPH

IntlChar::JG_REH

IntlChar::JG_REVERSED_PE

IntlChar::JG_SAD

IntlChar::JG_SADHE

IntlChar::JG_SEEN

IntlChar::JG_SEMKATH

IntlChar::JG_SHIN

IntlChar::JG_SWASH_KAF

IntlChar::JG_SYRIAC_WAW

IntlChar::JG_TAH

IntlChar::JG_TAW

IntlChar::JG_TEH_MARBUTA

IntlChar::JG_TETH

IntlChar::JG_WAW

IntlChar::JG_YEH

IntlChar::JG_YEH_BARREE

IntlChar::JG_YEH_WITH_TAIL

IntlChar::JG_YUDH

IntlChar::JG_YUDH_HE

IntlChar::JG_ZAIN

IntlChar::JG_FE

IntlChar::JG_KHAPH

IntlChar::JG_ZHAIN

IntlChar::JG_BURUSHASKI_YEH_BARREE

IntlChar::JG_FARSI_YEH

IntlChar::JG_NYA

IntlChar::JG_ROHINGYA_YEH

IntlChar::JG_COUNT

IntlChar::GCB_OTHER

IntlChar::GCB_CONTROL

IntlChar::GCB_CR

IntlChar::GCB_EXTEND

IntlChar::GCB_L

IntlChar::GCB_LF

IntlChar::GCB_LV

IntlChar::GCB_LVT

IntlChar::GCB_T

IntlChar::GCB_V

IntlChar::GCB_SPACING_MARK

IntlChar::GCB_PREPEND

IntlChar::GCB_REGIONAL_INDICATOR

IntlChar::GCB_COUNT

IntlChar::WB_OTHER

IntlChar::WB_ALETTER

IntlChar::WB_FORMAT

IntlChar::WB_KATAKANA

IntlChar::WB_MIDLETTER

IntlChar::WB_MIDNUM

IntlChar::WB_NUMERIC

IntlChar::WB_EXTENDNUMLET

IntlChar::WB_CR

IntlChar::WB_EXTEND

IntlChar::WB_LF

IntlChar::WB_MIDNUMLET

IntlChar::WB_NEWLINE

IntlChar::WB_REGIONAL_INDICATOR

IntlChar::WB_HEBREW_LETTER

IntlChar::WB_SINGLE_QUOTE

IntlChar::WB_DOUBLE_QUOTE

IntlChar::WB_COUNT

IntlChar::SB_OTHER

IntlChar::SB_ATERM

IntlChar::SB_CLOSE

IntlChar::SB_FORMAT

IntlChar::SB_LOWER

IntlChar::SB_NUMERIC

IntlChar::SB_OLETTER

IntlChar::SB_SEP

IntlChar::SB_SP

IntlChar::SB_STERM

IntlChar::SB_UPPER

IntlChar::SB_CR

IntlChar::SB_EXTEND

IntlChar::SB_LF

IntlChar::SB_SCONTINUE

IntlChar::SB_COUNT

IntlChar::LB_UNKNOWN

IntlChar::LB_AMBIGUOUS

IntlChar::LB_ALPHABETIC

IntlChar::LB_BREAK_BOTH

IntlChar::LB_BREAK_AFTER

IntlChar::LB_BREAK_BEFORE

IntlChar::LB_MANDATORY_BREAK

IntlChar::LB_CONTINGENT_BREAK

IntlChar::LB_CLOSE_PUNCTUATION

IntlChar::LB_COMBINING_MARK

IntlChar::LB_CARRIAGE_RETURN

IntlChar::LB_EXCLAMATION

IntlChar::LB_GLUE

IntlChar::LB_HYPHEN

IntlChar::LB_IDEOGRAPHIC

IntlChar::LB_INSEPARABLE

IntlChar::LB_INSEPERABLE

IntlChar::LB_INFIX_NUMERIC

IntlChar::LB_LINE_FEED

IntlChar::LB_NONSTARTER

IntlChar::LB_NUMERIC

IntlChar::LB_OPEN_PUNCTUATION

IntlChar::LB_POSTFIX_NUMERIC

IntlChar::LB_PREFIX_NUMERIC

IntlChar::LB_QUOTATION

IntlChar::LB_COMPLEX_CONTEXT

IntlChar::LB_SURROGATE

IntlChar::LB_SPACE

IntlChar::LB_BREAK_SYMBOLS

IntlChar::LB_ZWSPACE

IntlChar::LB_NEXT_LINE

IntlChar::LB_WORD_JOINER

IntlChar::LB_H2

IntlChar::LB_H3

IntlChar::LB_JL

IntlChar::LB_JT

IntlChar::LB_JV

IntlChar::LB_CLOSE_PARENTHESIS

IntlChar::LB_CONDITIONAL_JAPANESE_STARTER

IntlChar::LB_HEBREW_LETTER

IntlChar::LB_REGIONAL_INDICATOR

IntlChar::LB_COUNT

IntlChar::NT_NONE

IntlChar::NT_DECIMAL

IntlChar::NT_DIGIT

IntlChar::NT_NUMERIC

IntlChar::NT_COUNT

IntlChar::HST_NOT_APPLICABLE

IntlChar::HST_LEADING_JAMO

IntlChar::HST_VOWEL_JAMO

IntlChar::HST_TRAILING_JAMO

IntlChar::HST_LV_SYLLABLE

IntlChar::HST_LVT_SYLLABLE

IntlChar::HST_COUNT

IntlChar::FOLD_CASE_DEFAULT

IntlChar::FOLD_CASE_EXCLUDE_SPECIAL_I

Список изменений

Версия | Описание
7.0.6 | Добавлена константа IntlChar::NO_NUMERIC_VALUE.

Содержание

  • IntlChar::charAge — Получить "возраст" символьного кода
  • IntlChar::charDigitValue — Получить десятичную цифру из символа десятичной цифры
  • IntlChar::charDirection — Получить категорию направления письма для символа
  • IntlChar::charFromName — Найти символ Unicode по его имени и вернуть его код
  • IntlChar::charMirror — Получить "зеркальный" символ по коду
  • IntlChar::charName — Получить имя символа Unicode
  • IntlChar::charType — Получить главную категорию, в которую входит символ
  • IntlChar::chr — Получить символ Unicode по его коду
  • IntlChar::digit — Получить десятичное число из символа Unicode с заданным основанием
  • IntlChar::enumCharNames — Перечисляет все присвоенные символы Unicode в заданном диапазоне
  • IntlChar::enumCharTypes — Перечисление последовательностей символов Unicode сгруппированых по им категориям
  • IntlChar::foldCase — Производит преобразование регистра заданного символа
  • IntlChar::forDigit — Получить символ представляющий заданное число в заданном основании
  • IntlChar::getBidiPairedBracket — Получить парную скобку для символа
  • IntlChar::getBlockCode — Получить блок размещения символа Unicode
  • IntlChar::getCombiningClass — Получить комбинирующий класс для символа
  • IntlChar::getFC_NFKC_Closure — Получить свойство FC_NFKC_Closure для символа
  • IntlChar::getIntPropertyMaxValue — Получить минимальное значение для свойства Unicode
  • IntlChar::getIntPropertyMinValue — Получить минимальное значение для свойства Unicode
  • IntlChar::getIntPropertyValue — Получить значение свойства Unicode для символа
  • IntlChar::getNumericValue — Получить числовое предствление для символа Unicode
  • IntlChar::getPropertyEnum — Получить значение константы свойства по его имени
  • IntlChar::getPropertyName — Получить Unicode имя свойства
  • IntlChar::getPropertyValueEnum — Вернуть числовой идентификатор свойства по его имени
  • IntlChar::getPropertyValueName — Получить имя Unicode для значения свойства
  • IntlChar::getUnicodeVersion — Получить версию Unicode
  • IntlChar::hasBinaryProperty — Проверить бинарное свойство Unicode для символа
  • IntlChar::isalnum — Проверить, является ли символ буквой либо цифрой
  • IntlChar::isalpha — Проверить, является ли символ буквой
  • IntlChar::isbase — Проверить, является ли символ базовым
  • IntlChar::isblank — Проверить, является ли символ "пустым" либо "горизонтальным пробелом"
  • IntlChar::iscntrl — Проверить, является ли символ управляющим
  • IntlChar::isdefined — Проверить, определен ли символ
  • IntlChar::isdigit — Проверить, является ли символ цифрой
  • IntlChar::isgraph — Проверить, является ли символ графическим символом
  • IntlChar::isIDIgnorable — Проверить, является ли символ игнорируемым
  • IntlChar::isIDPart — Проверить, допустимо ли использовать символ в идентификаторе
  • IntlChar::isIDStart — Проверить, допустимо ли использовать символ в начале идентификатора
  • IntlChar::isISOControl — Проверить, является ли символ управляющим согласно ISO
  • IntlChar::isJavaIDPart — Проверить, является ли символ допустимым в идентификаторе Java
  • IntlChar::isJavaIDStart — Проверить, может ли символ быть первым в идентификаторе Java
  • IntlChar::isJavaSpaceChar — Проверить, является ли символ пробельным с точки зрения языка Java
  • IntlChar::islower — Проверить, в нижнем ли регистре символ
  • IntlChar::isMirrored — Проверить, если у символа свойство Bidi_Mirrored
  • IntlChar::isprint — Проверяет, является ли симвом отображаемым
  • IntlChar::ispunct — Проверяет, является ли символ символом пунктуации
  • IntlChar::isspace — Проверяет, является ли символ пробельным
  • IntlChar::istitle — Проверить, является ли символ титульным (Titlecase)
  • IntlChar::isUAlphabetic — Проверить, установлено ли у символа свойство Alphabetic
  • IntlChar::isULowercase — Проверить, является ли символ символом в нижнем регистре
  • IntlChar::isupper — Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)
  • IntlChar::isUUppercase — Проверить, является ли символ символом в верхнем регистре
  • IntlChar::isUWhiteSpace — Проверить, имеет ли символ свойство White_Space (пробельный символ)
  • IntlChar::isWhitespace — Проверить, является ли символ пробельным с точки зрения ICU
  • IntlChar::isxdigit — Проверить, является ли символ шестнадцатеричной цифрой
  • IntlChar::ord — Получить код символ Unicode
  • IntlChar::tolower — Преобразование символа Unicode в нижний регистр
  • IntlChar::totitle — Преобразует символ Unicode в titlecase
  • IntlChar::toupper — Преобразование символа Unicode в верхний регистр


Получить "возраст" символьного кода

  • « IntlChar
  • IntlChar::charDigitValue »
  • PHP Manual
  • IntlChar
  • Получить "возраст" символьного кода

IntlChar::charAge

(PHP 7)

IntlChar::charAge — Получить "возраст" символьного кода

Описание

public static IntlChar::charAge ( mixed $codepoint ) : array

Возвращает "возраст" символьного кода.

"Возраст" - это версия Unicode в которой этот символьный код впервые был обозначен (как не-символ или для приватного использования) или принят как символ. Это может быть полезно в случаях, когд анеобходимо передать строку системе не поддерживающей новые символы.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Номер версии Unicode в виде массива. К примеру, версия 1.3.31.2 вернется как [1, 3, 31, 2].

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::charage("\u{2603}"));
var_dump(IntlChar::charage("\u{1F576}"));
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  int(1)
  [1]=>
  int(1)
  [2]=>
  int(0)
  [3]=>
  int(0)
}
array(4) {
  [0]=>
  int(7)
  [1]=>
  int(0)
  [2]=>
  int(0)
  [3]=>
  int(0)
}

Смотрите также

  • IntlChar::getUnicodeVersion() - Получить версию Unicode
  • IntlChar::getIntPropertyMinValue() - Получить минимальное значение для свойства Unicode
  • IntlChar::getIntPropertyValue() - Получить значение свойства Unicode для символа


Получить десятичную цифру из символа десятичной цифры

  • « IntlChar::charAge
  • IntlChar::charDirection »
  • PHP Manual
  • IntlChar
  • Получить десятичную цифру из символа десятичной цифры

IntlChar::charDigitValue

(PHP 7)

IntlChar::charDigitValue — Получить десятичную цифру из символа десятичной цифры

Описание

public static IntlChar::charDigitValue ( mixed $codepoint ) : int

Получает Получить десятичную цифру из символа десятичной цифры.

Такие символы в ходят в глобальную категорию "Nd" (десятичные цифры) и Numeric_Type в Decimal.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Цифра, соответствующая символу codepoint, или -1 если символ не является десятичной цифрой.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::charDigitValue("1"));
var_dump(IntlChar::charDigitValue("\u{0662}"));
var_dump(IntlChar::charDigitValue("\u{0E53}"));
?>

Результат выполнения данного примера:

int(1)
int(2)
int(3)

Смотрите также

  • IntlChar::getNumericValue() - Получить числовое предствление для символа Unicode


Получить категорию направления письма для символа

  • « IntlChar::charDigitValue
  • IntlChar::charFromName »
  • PHP Manual
  • IntlChar
  • Получить категорию направления письма для символа

IntlChar::charDirection

(PHP 7)

IntlChar::charDirection — Получить категорию направления письма для символа

Описание

public static IntlChar::charDirection ( mixed $codepoint ) : int

Возвращает категорию направления письма для символа, которая используется в » Двунаправленном алгоритме Unicode (UAX #9).

Замечание:

Некоторые неназначенные символьные коды имеют категории R или AL потому, что они находятся в блоках зарезервированных под написание слева направо.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Значение категории направления письма, одна из констант:

  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT
  • IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER
  • IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR
  • IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR
  • IntlChar::CHAR_DIRECTION_ARABIC_NUMBER
  • IntlChar::CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR
  • IntlChar::CHAR_DIRECTION_BLOCK_SEPARATOR
  • IntlChar::CHAR_DIRECTION_SEGMENT_SEPARATOR
  • IntlChar::CHAR_DIRECTION_WHITE_SPACE_NEUTRAL
  • IntlChar::CHAR_DIRECTION_OTHER_NEUTRAL
  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING
  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE
  • IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT
  • IntlChar::CHAR_DIRECTION_DIR_NON_SPACING_MARK
  • IntlChar::CHAR_DIRECTION_BOUNDARY_NEUTRAL
  • IntlChar::CHAR_DIRECTION_FIRST_STRONG_ISOLATE
  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE
  • IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE
  • IntlChar::CHAR_DIRECTION_CHAR_DIRECTION_COUNT

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::charDirection("A") === IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT);
var_dump(IntlChar::charDirection("\u{05E9}") === IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT);
var_dump(IntlChar::charDirection("+") === IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR);
var_dump(IntlChar::charDirection(".") === IntlChar::CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR);
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)
bool(true)


Найти символ Unicode по его имени и вернуть его код

  • « IntlChar::charDirection
  • IntlChar::charMirror »
  • PHP Manual
  • IntlChar
  • Найти символ Unicode по его имени и вернуть его код

IntlChar::charFromName

(PHP 7)

IntlChar::charFromName — Найти символ Unicode по его имени и вернуть его код

Описание

public static IntlChar::charFromName ( string $characterName [, int $nameChoice = IntlChar::UNICODE_CHAR_NAME ] ) : int

Находит символ Unicode по его имени и возвращает его код.

Имя сравнивается точно и полностью. Если имя не соответствует какому-либо символу, то вернет FALSE.

Имя Unicode 1.0 считается совпавшим только если оно отличается от современного имени. Все имена Unicode должны выть в верхнем регистре. Расширенные имена в нижнем регистре и содержат шестнадцатеричное значение в фигурных скобках.

Список параметров

characterName

Полное имя символа Unicode.

nameChoice

Какие типы символов искать. Одна из констант:

  • IntlChar::UNICODE_CHAR_NAME (по умолчанию)
  • IntlChar::UNICODE_10_CHAR_NAME
  • IntlChar::EXTENDED_CHAR_NAME
  • IntlChar::CHAR_NAME_ALIAS
  • IntlChar::CHAR_NAME_CHOICE_COUNT

Возвращаемые значения

Значение кода символа Unicode по заданному имени (в виде целого числа), или NULL, если такого символа нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::charFromName("LATIN CAPITAL LETTER A"));
var_dump(IntlChar::charFromName("SNOWMAN"));
var_dump(IntlChar::charFromName("RECYCLING SYMBOL FOR TYPE-1 PLASTICS"));
var_dump(IntlChar::charFromName("A RANDOM STRING WHICH DOESN'T CORRESPOND TO ANY UNICODE CHARACTER"));
?>

Результат выполнения данного примера:

int(65)
int(9731)
int(9843)
bool(false)

Смотрите также

  • IntlChar::charName() - Получить имя символа Unicode
  • IntlChar::enumCharNames() - Перечисляет все присвоенные символы Unicode в заданном диапазоне


Получить "зеркальный" символ по коду

  • « IntlChar::charFromName
  • IntlChar::charName »
  • PHP Manual
  • IntlChar
  • Получить "зеркальный" символ по коду

IntlChar::charMirror

(PHP 7)

IntlChar::charMirror — Получить "зеркальный" символ по коду

Описание

public static IntlChar::charMirror ( mixed $codepoint ) : mixed

Связывает указанный символ с его зеркальным отражением.

Для символов со свойством Bidi_Mirrored, иногда необходимо получить связь с другим символом Unicode который можно использовать как зеркальное отраженние глифа заданного символа. Этакий способ преобразования текста в и из кодировок с визуального порядка "для бедных". Также полезно для дисплеев без возможности выбора глифа.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает другой код символа Unicode, который можно использовать как зеркальное отражение заданного, или codepoint, если подходящего символа не нашлось или если codepoint не имеет свойства Bidi_Mirrored.

Возвращаемый тип должен быть integer, если только символ не был передан как строка UTF-8 (string), в этом случае вернется строка.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::charMirror("A"));
var_dump(IntlChar::charMirror("<"));
var_dump(IntlChar::charMirror("("));
?>

Результат выполнения данного примера:

string(1) "A"
string(1) ">"
string(2) ")"

Смотрите также

  • IntlChar::isMirrored() - Проверить, если у символа свойство Bidi_Mirrored
  • IntlChar::PROPERTY_BIDI_MIRRORED


Получить имя символа Unicode

  • « IntlChar::charMirror
  • IntlChar::charType »
  • PHP Manual
  • IntlChar
  • Получить имя символа Unicode

IntlChar::charName

(PHP 7)

IntlChar::charName — Получить имя символа Unicode

Описание

public static IntlChar::charName ( mixed $codepoint [, int $nameChoice = IntlChar::UNICODE_CHAR_NAME ] ) : string

Возвращает имя символа Unicode.

В зависимости от nameChoice, возвращенное имя может быть как "современным", так и именем определенным в Unicode версии 1.0. Имя содержит только "неизменяемые" символы, такие как A-Z, 0-9, пробел и '-'. Имя Unicode 1.0 возвращается только если оно отличается от "современного" для данного символа и если в ICU есть запись о нем.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

nameChoice

Какие типы символов искать. Одна из констант:

  • IntlChar::UNICODE_CHAR_NAME (default)
  • IntlChar::UNICODE_10_CHAR_NAME
  • IntlChar::EXTENDED_CHAR_NAME
  • IntlChar::CHAR_NAME_ALIAS
  • IntlChar::CHAR_NAME_CHOICE_COUNT

Возвращаемые значения

Соответствующее имя или пустую строку, если символ не имеет имени, либо NULL, если такого символа нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::charName("."));
var_dump(IntlChar::charName(".", IntlChar::UNICODE_CHAR_NAME));
var_dump(IntlChar::charName("\u{2603}"));
var_dump(IntlChar::charName("\u{0000}"));
?>

Результат выполнения данного примера:

string(9) "FULL STOP"
string(9) "FULL STOP"
string(7) "SNOWMAN"
string(0) ""

Смотрите также

  • IntlChar::charFromName() - Найти символ Unicode по его имени и вернуть его код
  • IntlChar::enumCharNames() - Перечисляет все присвоенные символы Unicode в заданном диапазоне


Получить главную категорию, в которую входит символ

  • « IntlChar::charName
  • IntlChar::chr »
  • PHP Manual
  • IntlChar
  • Получить главную категорию, в которую входит символ

IntlChar::charType

(PHP 7)

IntlChar::charType — Получить главную категорию, в которую входит символ

Описание

public static IntlChar::charType ( mixed $codepoint ) : int

Возвращает главную категорию, в которую входит символ.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает главную категорию; одну из констант:

  • IntlChar::CHAR_CATEGORY_UNASSIGNED
  • IntlChar::CHAR_CATEGORY_GENERAL_OTHER_TYPES
  • IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER
  • IntlChar::CHAR_CATEGORY_LOWERCASE_LETTER
  • IntlChar::CHAR_CATEGORY_TITLECASE_LETTER
  • IntlChar::CHAR_CATEGORY_MODIFIER_LETTER
  • IntlChar::CHAR_CATEGORY_OTHER_LETTER
  • IntlChar::CHAR_CATEGORY_NON_SPACING_MARK
  • IntlChar::CHAR_CATEGORY_ENCLOSING_MARK
  • IntlChar::CHAR_CATEGORY_COMBINING_SPACING_MARK
  • IntlChar::CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER
  • IntlChar::CHAR_CATEGORY_LETTER_NUMBER
  • IntlChar::CHAR_CATEGORY_OTHER_NUMBER
  • IntlChar::CHAR_CATEGORY_SPACE_SEPARATOR
  • IntlChar::CHAR_CATEGORY_LINE_SEPARATOR
  • IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR
  • IntlChar::CHAR_CATEGORY_CONTROL_CHAR
  • IntlChar::CHAR_CATEGORY_FORMAT_CHAR
  • IntlChar::CHAR_CATEGORY_PRIVATE_USE_CHAR
  • IntlChar::CHAR_CATEGORY_SURROGATE
  • IntlChar::CHAR_CATEGORY_DASH_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_START_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_END_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_CONNECTOR_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_MATH_SYMBOL
  • IntlChar::CHAR_CATEGORY_CURRENCY_SYMBOL
  • IntlChar::CHAR_CATEGORY_MODIFIER_SYMBOL
  • IntlChar::CHAR_CATEGORY_OTHER_SYMBOL
  • IntlChar::CHAR_CATEGORY_INITIAL_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_FINAL_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_CHAR_CATEGORY_COUNT

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::charType("A") === IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER);
var_dump(IntlChar::charType(".") === IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION);
var_dump(IntlChar::charType("\t") === IntlChar::CHAR_CATEGORY_CONTROL_CHAR);
var_dump(IntlChar::charType("\u{2603}") === IntlChar::CHAR_CATEGORY_OTHER_SYMBOL);
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)
bool(true)


Получить символ Unicode по его коду

  • « IntlChar::charType
  • IntlChar::digit »
  • PHP Manual
  • IntlChar
  • Получить символ Unicode по его коду

IntlChar::chr

(PHP 7)

IntlChar::chr — Получить символ Unicode по его коду

Описание

public static IntlChar::chr ( mixed $codepoint ) : string

Возвращает строку, содержащую символ Unicode с заданным кодом.

Эта функция обратна функции IntlChar::ord().

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает строку, содержащую символ Unicode с заданным кодом.

Примеры

Пример #1 Тестирование различных способов задания

<?php
$values = ["A", 63, 123, 9731];
foreach ($values as $value) {
    var_dump(IntlChar::chr($value));
}
?>

Результат выполнения данного примера:

string(1) "A"
string(1) "?"
string(1) "{"
string(3) "?"

Смотрите также

  • IntlChar::ord() - Получить код символ Unicode
  • chr() - Генерирует односимвольную строку по заданному числу


Получить десятичное число из символа Unicode с заданным основанием

  • « IntlChar::chr
  • IntlChar::enumCharNames »
  • PHP Manual
  • IntlChar
  • Получить десятичное число из символа Unicode с заданным основанием

IntlChar::digit

(PHP 7)

IntlChar::digit — Получить десятичное число из символа Unicode с заданным основанием

Описание

public static IntlChar::digit ( string $codepoint [, int $radix = 10 ] ) : int

Возвращает десятичное число из символа Unicode с заданным основанием.

Если основание не входит в диапазон 2<=radix<=36 или если codepoint не является корректным символом для этого основания, возвращается FALSE. Символ является корректной цифрой если выполняется хотя бы одно из условий:

  • Символ представляет собой десятичную цифру. Такие символы входят в глобальную категорию "Nd" (десятичные цифры) и Numeric_Type является Decimal. В этом случае возвращается соответствующая десятичная цифра.
  • Символ является одной из заглавных латинских букв от 'A' до 'Z'. В этом случае 'A' - это 10.
  • Символ является одной из строчных латинских букв от 'a' до 'z'. В этом случае 'a' - это 10.
  • Латинские буквы из ASCII диапазона (0061..007A, 0041..005A). Также подходят диапазоны Полного ASCII (FF41..FF5A, FF21..FF3A).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

radix

Основание (по умолчанию 10).

Возвращаемые значения

Возвращает десятичное число из символа Unicode с заданным основанием или FALSE, если символ некорректен или выходит за рамки основания.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::digit("0"));
var_dump(IntlChar::digit("3"));
var_dump(IntlChar::digit("A"));
var_dump(IntlChar::digit("A", 16));
?>

Результат выполнения данного примера:

int(0)
int(3)
bool(false)
int(10)

Смотрите также

  • IntlChar::forDigit() - Получить символ представляющий заданное число в заданном основании
  • IntlChar::charDigitValue() - Получить десятичную цифру из символа десятичной цифры
  • IntlChar::isdigit() - Проверить, является ли символ цифрой
  • IntlChar::PROPERTY_NUMERIC_TYPE


Перечисляет все присвоенные символы Unicode в заданном диапазоне

  • « IntlChar::digit
  • IntlChar::enumCharTypes »
  • PHP Manual
  • IntlChar
  • Перечисляет все присвоенные символы Unicode в заданном диапазоне

IntlChar::enumCharNames

(PHP 7)

IntlChar::enumCharNames — Перечисляет все присвоенные символы Unicode в заданном диапазоне

Описание

public static IntlChar::enumCharNames ( mixed $start , mixed $limit , callable $callback [, int $nameChoice = IntlChar::UNICODE_CHAR_NAME ] ) : void

Перечисляет все присвоенные символы Unicode в заданном диапазоне (включая начало диапазона и исключая конец) и для каждого из них функцию, передавая в нее код символа и его имя.

Для имен Unicode 1.0 перечисляются только те символы, имена которых отличны от их "современных" имен.

Список параметров

start

Код символа с которого начинается диапазон.

limit

Код символа с которого начинается диапазон. Сам этот символ в диапазон не попадет.

callback

Функция, которая будет вызвана для каждого возвращенного символа. В нее будут переданы следующие три аргумента:

  • integer $codepoint - код символа
  • integer $nameChoice - значение из nameChoice, смотрите описание ниже
  • string $name - Имя символа

nameChoice

Категория символов для перечисления. Одна из констант:

  • IntlChar::UNICODE_CHAR_NAME (по умолчанию)
  • IntlChar::UNICODE_10_CHAR_NAME
  • IntlChar::EXTENDED_CHAR_NAME
  • IntlChar::CHAR_NAME_ALIAS
  • IntlChar::CHAR_NAME_CHOICE_COUNT

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Перечисления диапазона символов

<?php
IntlChar::enumCharNames(0x2600, 0x2610, function($codepoint, $nameChoice, $name) {
    printf("U+%04x %s\n", $codepoint, $name);
});
?>

Результат выполнения данного примера:

U+2600 BLACK SUN WITH RAYS
U+2601 CLOUD
U+2602 UMBRELLA
U+2603 SNOWMAN
U+2604 COMET
U+2605 BLACK STAR
U+2606 WHITE STAR
U+2607 LIGHTNING
U+2608 THUNDERSTORM
U+2609 SUN
U+260a ASCENDING NODE
U+260b DESCENDING NODE
U+260c CONJUNCTION
U+260d OPPOSITION
U+260e BLACK TELEPHONE
U+260f WHITE TELEPHONE

Смотрите также

  • IntlChar::charName() - Получить имя символа Unicode
  • IntlChar::charFromName() - Найти символ Unicode по его имени и вернуть его код


Перечисление последовательностей символов Unicode сгруппированых по им категориям

  • « IntlChar::enumCharNames
  • IntlChar::foldCase »
  • PHP Manual
  • IntlChar
  • Перечисление последовательностей символов Unicode сгруппированых по им категориям

IntlChar::enumCharTypes

(PHP 7)

IntlChar::enumCharTypes — Перечисление последовательностей символов Unicode сгруппированых по им категориям

Описание

public static IntlChar::enumCharTypes ( callable $callback ) : void

Перечисление последовательностей символов Unicode сгруппированых по им категориям. Полезно при построении структур данных, для перебора всех назначеных кодов символов и т.д.

Для каждого непрерывного диапазона символов с одной категорией будет вызвана функция callback. Соседние диапазоны имеют разные категории. Стандарты Unicode гарантируют числовые значения от 0 до 31.

Список параметров

callback

Функция, которая будет вызвана для каждой непрерывной последовательности с одинаковой категорией. В нее будут переданы следующие параметры:

  • integer $start - Начальный символ диапазона
  • integer $end - Конечный символ диапазона
  • integer $name - Категория символов (одна из констант IntlChar::CHAR_CATEGORY_*)

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Перечисление диапазонов категорий символов

<?php
IntlChar::enumCharTypes(function($start, $end, $type) {
    printf("U+%04x through U+%04x are in category %d\n", $start, $end, $type);
});
?>

Результат выполнения данного примера:

U+0000 through U+0020 are in category 15
U+0020 through U+0021 are in category 12
U+0021 through U+0024 are in category 23
U+0024 through U+0025 are in category 25
U+0025 through U+0028 are in category 23
U+0028 through U+0029 are in category 20
U+0029 through U+002a are in category 21
U+002a through U+002b are in category 23
U+002b through U+002c are in category 24
U+002c through U+002d are in category 23
U+002d through U+002e are in category 19
U+002e through U+0030 are in category 23
U+0030 through U+003a are in category 9
...


Производит преобразование регистра заданного символа

  • « IntlChar::enumCharTypes
  • IntlChar::forDigit »
  • PHP Manual
  • IntlChar
  • Производит преобразование регистра заданного символа

IntlChar::foldCase

(PHP 7)

IntlChar::foldCase — Производит преобразование регистра заданного символа

Описание

public static IntlChar::foldCase ( mixed $codepoint [, int $options = IntlChar::FOLD_CASE_DEFAULT ] ) : mixed

Возвращает код символа в регистре отличном от регистра переданного символа. Если символ не имеет представления в другом регистре, то будет возвращен переданный символ.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

options

IntlChar::FOLD_CASE_DEFAULT (по умолчанию) или IntlChar::FOLD_CASE_EXCLUDE_SPECIAL_I.

Возвращаемые значения

Возвращает Simple_Case_Folding для символа, если он есть. В ином случае - сам символ.


Получить символ представляющий заданное число в заданном основании

  • « IntlChar::foldCase
  • IntlChar::getBidiPairedBracket »
  • PHP Manual
  • IntlChar
  • Получить символ представляющий заданное число в заданном основании

IntlChar::forDigit

(PHP 7)

IntlChar::forDigit — Получить символ представляющий заданное число в заданном основании

Описание

public static IntlChar::forDigit ( int $digit [, int $radix = 10 ] ) : int

Определяет представление символов для конкретной цифры в указанной системе счисления.

Если значение основания некорректно, или значение числа не является корректным числом в заданной системе счисления, будет возвращен U+0000.

Корректные значения radix лежат в диапазоне от 2 до 36. Корректные значения digit лежат в диапазоне 0 <= digit < radix.

Если digit меньше 10, то будет возвращено '0' + digit. В противном случае вернется 'a' + digit - 10.

Список параметров

digit

Число для преобразования в символ.

radix

Основание системы счисления (по умолчанию 10).

Возвращаемые значения

Символьное представление (типа string) заданного числа с заданным основанием системы счисления.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::forDigit(0));
var_dump(IntlChar::forDigit(3));
var_dump(IntlChar::forDigit(3, 10));
var_dump(IntlChar::forDigit(10));
var_dump(IntlChar::forDigit(10, 16));
?>

Результат выполнения данного примера:

int(48)
int(51)
int(51)
int(0)
int(97)

Смотрите также

  • IntlChar::digit() - Получить десятичное число из символа Unicode с заданным основанием
  • IntlChar::charDigitValue() - Получить десятичную цифру из символа десятичной цифры
  • IntlChar::isdigit() - Проверить, является ли символ цифрой
  • IntlChar::PROPERTY_NUMERIC_TYPE


Получить парную скобку для символа

  • « IntlChar::forDigit
  • IntlChar::getBlockCode »
  • PHP Manual
  • IntlChar
  • Получить парную скобку для символа

IntlChar::getBidiPairedBracket

(PHP 7)

IntlChar::getBidiPairedBracket — Получить парную скобку для символа

Описание

public static IntlChar::getBidiPairedBracket ( mixed $codepoint ) : mixed

Получает парную скобку для символа.

Для Bidi_Paired_Bracket_Type!=None, это аналогично IntlChar::charMirror(). Если такового нет, возвращается исходный codepoint.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает парную скобку для символа, или codepoint если таковой нет.

Возвращаемый тип должен быть integer, если только символ не был передан как строка UTF-8 (string), в этом случае вернется строка.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::getBidiPairedBracket(91));
var_dump(IntlChar::getBidiPairedBracket('['));
?>

Результат выполнения данного примера:

int(93)
string(1) "]"

Смотрите также

  • IntlChar::charMirror() - Получить "зеркальный" символ по коду
  • IntlChar::PROPERTY_BIDI_PAIRED_BRACKET
  • IntlChar::PROPERTY_BIDI_PAIRED_BRACKET_TYPE


Получить блок размещения символа Unicode

  • « IntlChar::getBidiPairedBracket
  • IntlChar::getCombiningClass »
  • PHP Manual
  • IntlChar
  • Получить блок размещения символа Unicode

IntlChar::getBlockCode

(PHP 7)

IntlChar::getBlockCode — Получить блок размещения символа Unicode

Описание

public static IntlChar::getBlockCode ( mixed $codepoint ) : int

Возвращает блок размещения символа Unicode.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает блок размещения codepoint. Одна из констант IntlChar::BLOCK_CODE_*.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::getBlockCode("A") === IntlChar::BLOCK_CODE_BASIC_LATIN);
var_dump(IntlChar::getBlockCode("?") === IntlChar::BLOCK_CODE_GREEK);
var_dump(IntlChar::getBlockCode("\u{2603}") === IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS);
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)


Получить комбинирующий класс для символа

  • « IntlChar::getBlockCode
  • IntlChar::getFC_NFKC_Closure »
  • PHP Manual
  • IntlChar
  • Получить комбинирующий класс для символа

IntlChar::getCombiningClass

(PHP 7)

IntlChar::getCombiningClass — Получить комбинирующий класс для символа

Описание

public static IntlChar::getCombiningClass ( mixed $codepoint ) : int

Возвращает комбинирующий класс для символа.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает комбинирующий класс для символа.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::getCombiningClass("A"));
var_dump(IntlChar::getCombiningClass("\u{0334}"));
var_dump(IntlChar::getCombiningClass("\u{0358}"));
?>

Результат выполнения данного примера:

int(0)
int(1)
int(232)


Получить свойство FC_NFKC_Closure для символа

  • « IntlChar::getCombiningClass
  • IntlChar::getIntPropertyMaxValue »
  • PHP Manual
  • IntlChar
  • Получить свойство FC_NFKC_Closure для символа

IntlChar::getFC_NFKC_Closure

(PHP 7)

IntlChar::getFC_NFKC_Closure — Получить свойство FC_NFKC_Closure для символа

Описание

public static IntlChar::getFC_NFKC_Closure ( mixed $codepoint ) : string

Получает свойство FC_NFKC_Closure для символа.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает свойство FC_NFKC_Closure для codepoint в виде строки, или пустую строку, если его нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::getFC_NFKC_Closure("\u{2121}"));
var_dump(IntlChar::getFC_NFKC_Closure("\u{1D2D}"));
?>

Результат выполнения данного примера:

string(3) "tel"
string(2) "?"


Получить минимальное значение для свойства Unicode

  • « IntlChar::getFC_NFKC_Closure
  • IntlChar::getIntPropertyMinValue »
  • PHP Manual
  • IntlChar
  • Получить минимальное значение для свойства Unicode

IntlChar::getIntPropertyMaxValue

(PHP 7)

IntlChar::getIntPropertyMaxValue — Получить минимальное значение для свойства Unicode

Описание

public static IntlChar::getIntPropertyMaxValue ( int $property ) : int

Получает минимальное значение (перечисляемое/целочисленное/бинарное) для свойства Unicode.

Список параметров

property

Свойство Unicode для отображения (Смотри константы IntlChar::PROPERTY_*).

Возвращаемые значения

Максимальное значение, возвращаемое IntlChar::getIntPropertyValue() для свойства Unicode. <=0, если свойство не входит в допустимый диапазон.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::getIntPropertyMaxValue(IntlChar::PROPERTY_BIDI_CLASS));
var_dump(IntlChar::getIntPropertyMaxValue(IntlChar::PROPERTY_SCRIPT));
var_dump(IntlChar::getIntPropertyMaxValue(IntlChar::PROPERTY_IDEOGRAPHIC));
var_dump(IntlChar::getIntPropertyMaxValue(999999999)); // Some made-up value
?>

Результат выполнения данного примера:

int(22)
int(166)
int(1)
int(-1)

Смотрите также

  • IntlChar::hasBinaryProperty() - Проверить бинарное свойство Unicode для символа
  • IntlChar::getIntPropertyMinValue() - Получить минимальное значение для свойства Unicode
  • IntlChar::getIntPropertyValue() - Получить значение свойства Unicode для символа
  • IntlChar::getUnicodeVersion() - Получить версию Unicode


Получить минимальное значение для свойства Unicode

  • « IntlChar::getIntPropertyMaxValue
  • IntlChar::getIntPropertyValue »
  • PHP Manual
  • IntlChar
  • Получить минимальное значение для свойства Unicode

IntlChar::getIntPropertyMinValue

(PHP 7)

IntlChar::getIntPropertyMinValue — Получить минимальное значение для свойства Unicode

Описание

public static IntlChar::getIntPropertyMinValue ( int $property ) : int

Получает минимальное значение (перечисляемое/целочисленное/бинарное) для свойства Unicode.

Список параметров

property

Свойство Unicode для отображения (Смотри константы IntlChar::PROPERTY_*).

Возвращаемые значения

Минимальное значение, возвращаемое IntlChar::getIntPropertyValue() для свойства Unicode. 0, если свойство не входит в допустимый диапазон.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::getIntPropertyMinValue(IntlChar::PROPERTY_BIDI_CLASS));
var_dump(IntlChar::getIntPropertyMinValue(IntlChar::PROPERTY_SCRIPT));
var_dump(IntlChar::getIntPropertyMinValue(IntlChar::PROPERTY_IDEOGRAPHIC));
var_dump(IntlChar::getIntPropertyMinValue(999999999)); // Some made-up value
?>

Результат выполнения данного примера:

int(0)
int(0)
int(0)
int(0)

Смотрите также

  • IntlChar::hasBinaryProperty() - Проверить бинарное свойство Unicode для символа
  • IntlChar::getIntPropertyMaxValue() - Получить минимальное значение для свойства Unicode
  • IntlChar::getIntPropertyValue() - Получить значение свойства Unicode для символа
  • IntlChar::getUnicodeVersion() - Получить версию Unicode


Получить значение свойства Unicode для символа

  • « IntlChar::getIntPropertyMinValue
  • IntlChar::getNumericValue »
  • PHP Manual
  • IntlChar
  • Получить значение свойства Unicode для символа

IntlChar::getIntPropertyValue

(PHP 7)

IntlChar::getIntPropertyValue — Получить значение свойства Unicode для символа

Описание

public static IntlChar::getIntPropertyValue ( mixed $codepoint , int $property ) : int

Получает значение нумерованного или целосичленного свойства Unicode для символа. Также возвращаются бинарное и шаблонное значения свойства.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

property

Свойство Unicode для отображения (Смотри константы IntlChar::PROPERTY_*).

Возвращаемые значения

Возвращает численное значение для указанного свойства, или, для перечисляемых свойств, соответствующую численному значению константу соответственно значению перечисляемого типа свойства.

Возвращает 0 или 1 (для FALSE/TRUE) для бинарных свойств Unicode.

Возвращает битовый шаблон для шаблонных свойств.

Возвращает 0 если property не входит в допустимый диапазон или если версия Unicode не содержит данных для этого свойства.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::getIntPropertyValue("A", IntlChar::PROPERTY_ALPHABETIC) === 1);
var_dump(IntlChar::getIntPropertyValue("[", IntlChar::PROPERTY_BIDI_MIRRORED) === 1);
var_dump(IntlChar::getIntPropertyValue("?", IntlChar::PROPERTY_BLOCK) === IntlChar::BLOCK_CODE_GREEK);
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)

Смотрите также

  • IntlChar::hasBinaryProperty() - Проверить бинарное свойство Unicode для символа
  • IntlChar::getIntPropertyMinValue() - Получить минимальное значение для свойства Unicode
  • IntlChar::getIntPropertyMaxValue() - Получить минимальное значение для свойства Unicode
  • IntlChar::getUnicodeVersion() - Получить версию Unicode


Получить числовое предствление для символа Unicode

  • « IntlChar::getIntPropertyValue
  • IntlChar::getPropertyEnum »
  • PHP Manual
  • IntlChar
  • Получить числовое предствление для символа Unicode

IntlChar::getNumericValue

(PHP 7)

IntlChar::getNumericValue — Получить числовое предствление для символа Unicode

Описание

public static IntlChar::getNumericValue ( mixed $codepoint ) : float

Получает числовое предствление для символа Unicode, как определено в базе символов Unicode.

Если для символа отсутствует численное представление - будет возвращено IntlChar::NO_NUMERIC_VALUE.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Численное значение codepoint, или IntlChar::NO_NUMERIC_VALUE если отсутствует или не задано. Эта константа появилась в PHP 7.0.6, до этой версии в таком случае возвращалось (float)-123456789.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::getNumericValue("4"));
var_dump(IntlChar::getNumericValue("x"));
var_dump(IntlChar::getNumericValue("\u{216C}"));
?>

Результат выполнения данного примера:

float(4)
float(-123456789)
float(50)


Получить значение константы свойства по его имени

  • « IntlChar::getNumericValue
  • IntlChar::getPropertyName »
  • PHP Manual
  • IntlChar
  • Получить значение константы свойства по его имени

IntlChar::getPropertyEnum

(PHP 7)

IntlChar::getPropertyEnum — Получить значение константы свойства по его имени

Описание

public static IntlChar::getPropertyEnum ( string $alias ) : int

Возвращает значение константы свойства по его имени, как задано в PropertyAliases.txt. Принимаются длинные, короткие и прочие варианты имени.

Дополнительно, эта функция связывает синтетическое имя "gcm" / "General_Category_Mask" со свойством IntlChar::PROPERTY_GENERAL_CATEGORY_MASK.Этих имен нет в PropertyAliases.txt.

Функция близка с IntlChar::getPropertyName().

Список параметров

alias

Имя свойства. Имена сравниваются по принципу "loose matching", как описано в PropertyValueAliases.txt.

Возвращаемые значения

Возвращает значение константы IntlChar::PROPERTY_, или IntlChar::PROPERTY_INVALID_CODE, если заданное имя не соответствует никакому свойству.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::getPropertyEnum('Bidi_Class') === IntlChar::PROPERTY_BIDI_CLASS);
var_dump(IntlChar::getPropertyEnum('script') === IntlChar::PROPERTY_SCRIPT);
var_dump(IntlChar::getPropertyEnum('IDEOGRAPHIC') === IntlChar::PROPERTY_IDEOGRAPHIC);
var_dump(IntlChar::getPropertyEnum('Some made-up string') === IntlChar::PROPERTY_INVALID_CODE);
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)
bool(true)

Смотрите также

  • IntlChar::getPropertyName() - Получить Unicode имя свойства


Получить Unicode имя свойства

  • « IntlChar::getPropertyEnum
  • IntlChar::getPropertyValueEnum »
  • PHP Manual
  • IntlChar
  • Получить Unicode имя свойства

IntlChar::getPropertyName

(PHP 7)

IntlChar::getPropertyName — Получить Unicode имя свойства

Описание

public static IntlChar::getPropertyName ( int $property [, int $nameChoice = IntlChar::LONG_PROPERTY_NAME ] ) : string

Возвращает имя Unicode для заданного свойства, как определено в PropertyAliases.txt.

В дополнение, эта функция связывает свойство IntlChar::PROPERTY_GENERAL_CATEGORY_MASK с синтетическим именем "gcm" / "General_Category_Mask". Этих имен нет в PropertyAliases.txt.

Эта функция близка с IntlChar::getPropertyEnum().

Список параметров

property

Свойство Unicode для отображения (Смотри константы IntlChar::PROPERTY_*).

Нельзя использовать IntlChar::PROPERTY_INVALID_CODE. Также, если property не входит в допустимый диапазон - возвращается FALSE.

nameChoice

Селектор для выбора имени. Если не входит в допустимый диапазон - возвращается FALSE.

Все значения имеют длинные имена. Большинство имеют короткие имена, но не все. Unicode позволяет дополнительные имена; Если существуют, они будут возвращены с добавлением 1, 2, и т.д к IntlChar::LONG_PROPERTY_NAME.

Возвращаемые значения

Возвращает имена или FALSE если property или nameChoice выходят за допустимый диапазон.

Если nameChoice возвращает FALSE, то все более большие величины nameChoice также вернут FALSE, с одним исключением: если FALSE вернется для IntlChar::SHORT_PROPERTY_NAME, то IntlChar::LONG_PROPERTY_NAME (и выше) все еще могут вернуть не FALSE.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS));
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS, IntlChar::SHORT_PROPERTY_NAME));
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS, IntlChar::LONG_PROPERTY_NAME));
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS, IntlChar::LONG_PROPERTY_NAME + 1));
?>

Результат выполнения данного примера:

string(10) "Bidi_Class"
string(2) "bc"
string(10) "Bidi_Class"
bool(false)

Смотрите также

  • IntlChar::getPropertyEnum() - Получить значение константы свойства по его имени


Вернуть числовой идентификатор свойства по его имени

  • « IntlChar::getPropertyName
  • IntlChar::getPropertyValueName »
  • PHP Manual
  • IntlChar
  • Вернуть числовой идентификатор свойства по его имени

IntlChar::getPropertyValueEnum

(PHP 7)

IntlChar::getPropertyValueEnum — Вернуть числовой идентификатор свойства по его имени

Описание

public static IntlChar::getPropertyValueEnum ( int $property , string $name ) : int

Возвращает числовой идентификатор свойства Unicode по его имени, как определено в файле PropertyValueAliases.txt. Принимаются длинные, короткие и прочие варианты имени.

Замечание:

Некоторые имена из PropertyValueAliases.txt могут быть извлечены только с помощью IntlChar::PROPERTY_GENERAL_CATEGORY_MASK, а не IntlChar::PROPERTY_GENERAL_CATEGORY. Включая:

  • "C" / "Прочее"
  • "L" / "Буквы"
  • "LC" / "Буквы, имеющие несколько регистров"
  • "M" / "Метки"
  • "N" / "Числа"
  • "P" / "Пунктуация"
  • "S" / "Символы"
  • "Z" / "Разделители"

Список параметров

property

Свойство Unicode для отображения (Смотри константы IntlChar::PROPERTY_*).

Если не входит в допустимый диапазон, либо если метод не работает с данным значением, возвращается IntlChar::PROPERTY_INVALID_CODE.

name

Имя свойства. Имена сравниваются по принципу "loose matching", как описано в PropertyValueAliases.txt.

Возвращаемые значения

Возвращает соответствующее целочисленное значение или IntlChar::PROPERTY_INVALID_CODE если соответствие не найдено или если свойство некорректно.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BLOCK, 'greek') === IntlChar::BLOCK_CODE_GREEK);
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BIDI_CLASS, 'RIGHT_TO_LEFT') === IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT);
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BIDI_CLASS, 'some made-up string') === IntlChar::PROPERTY_INVALID_CODE);
var_dump(IntlChar::getPropertyValueEnum(123456789, 'RIGHT_TO_LEFT') === IntlChar::PROPERTY_INVALID_CODE);
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)
bool(true)


Получить имя Unicode для значения свойства

  • « IntlChar::getPropertyValueEnum
  • IntlChar::getUnicodeVersion »
  • PHP Manual
  • IntlChar
  • Получить имя Unicode для значения свойства

IntlChar::getPropertyValueName

(PHP 7)

IntlChar::getPropertyValueName — Получить имя Unicode для значения свойства

Описание

public static IntlChar::getPropertyValueName ( int $property , int $value [, int $nameChoice = IntlChar::LONG_PROPERTY_NAME ] ) : string

Возвращает имя свойства Unicode по его значению, как определено в файле PropertyValueAliases.txt.

Замечание:

Некоторые имена из PropertyValueAliases.txt могут быть извлечены только с помощью IntlChar::PROPERTY_GENERAL_CATEGORY_MASK, а не IntlChar::PROPERTY_GENERAL_CATEGORY. Включая:

  • "C" / "Прочее"
  • "L" / "Буквы"
  • "LC" / "Буквы, имеющие несколько регистров"
  • "M" / "Метки"
  • "N" / "Числа"
  • "P" / "Пунктуация"
  • "S" / "Символы"
  • "Z" / "Разделители"

Список параметров

property

Свойство Unicode для отображения (Смотри константы IntlChar::PROPERTY_*).

Если не входит в допустимый диапазон, либо если метод не работает с данным значением, возвращается FALSE.

value

Селектор для значения свойства. Если не входит в допустимый диапазон, то вернется FALSE.

В целом, допустимый диапазон лежит в пределах от 0 до некоторого максимума. Есть несколько исключений:

  • Значения IntlChar::PROPERTY_BLOCK начинаются с не нулевого значения IntlChar::BLOCK_CODE_BASIC_LATIN
  • Значения IntlChar::PROPERTY_CANONICAL_COMBINING_CLASS не непрерывны и лежат в диапазоне 0..240.

nameChoice

Селектор для извлекаемого имени. Если не попадает в диапазон - будет возвращено FALSE.

Все значения имеют длинные имена. Большинство имеют короткие имена, но не все. Unicode позволяет дополнительные имена; Если существуют, они будут возвращены с добавлением 1, 2, и т.д к IntlChar::LONG_PROPERTY_NAME.

Возвращаемые значения

Возвращает имена или FALSE если property или nameChoice выходят за допустимый диапазон.

Если nameChoice возвращает FALSE, то все более большие величины nameChoice также вернут FALSE, с одним исключением: если FALSE вернется для IntlChar::SHORT_PROPERTY_NAME, то IntlChar::LONG_PROPERTY_NAME (и выше) все еще могут вернуть не FALSE.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::SHORT_PROPERTY_NAME));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::LONG_PROPERTY_NAME));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::LONG_PROPERTY_NAME + 1));
?>

Результат выполнения данного примера:

string(16) "Greek_And_Coptic"
string(5) "Greek"
string(16) "Greek_And_Coptic"
bool(false)


Получить версию Unicode

  • « IntlChar::getPropertyValueName
  • IntlChar::hasBinaryProperty »
  • PHP Manual
  • IntlChar
  • Получить версию Unicode

IntlChar::getUnicodeVersion

(PHP 7)

IntlChar::getUnicodeVersion — Получить версию Unicode

Описание

public static IntlChar::getUnicodeVersion ( void ) : array

Получает информацию о версии Unicode.

Возвращаемый массив заполняется информацией о версии Unicode используемой ICU. К примеру, Unicode версии 3.1.1 вернет массив со значениями [3, 1, 1, 0].

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив, содержащий информацию о версии Unicode.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::getUnicodeVersion());
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  int(7)
  [1]=>
  int(0)
  [2]=>
  int(0)
  [3]=>
  int(0)
}

Смотрите также

  • IntlChar::charAge() - Получить "возраст" символьного кода


Проверить бинарное свойство Unicode для символа

  • « IntlChar::getUnicodeVersion
  • IntlChar::isalnum »
  • PHP Manual
  • IntlChar
  • Проверить бинарное свойство Unicode для символа

IntlChar::hasBinaryProperty

(PHP 7)

IntlChar::hasBinaryProperty — Проверить бинарное свойство Unicode для символа

Описание

public static IntlChar::hasBinaryProperty ( mixed $codepoint , int $property ) : bool

Проверяет бинарное свойство Unicode для символа.

Unicode, особенно в версии 3.2, определяет сильно больше свойств, чем было в оригинальном наборе UnicodeData.txt.

API свойств служит для отражения свойств Unicode, как определено в базе данных символов Unicode (Unicode Character Database или UCD) и технических отчетах Unicode (Unicode Technical Reports или UTR). Более подробное описание доступно на чайте » http://www.unicode.org/ucd/. Имена свойств Unicode смотрите в файле UCD PropertyAliases.txt.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

property

Свойство Unicode для отображения (Смотри константы IntlChar::PROPERTY_*).

Возвращаемые значения

Возвращает TRUE или FALSE в зависимости от значения бинарного свойства Unicode символа codepoint. Также возвращает FALSE если property находится вне границ или если используемая версия Unicode не содержит данных для этого свойства вообще, либо конкретно для этого символа.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::hasBinaryProperty("A", IntlChar::PROPERTY_ALPHABETIC));
var_dump(IntlChar::hasBinaryProperty("A", IntlChar::PROPERTY_CASE_SENSITIVE));
var_dump(IntlChar::hasBinaryProperty("A", IntlChar::PROPERTY_BIDI_MIRRORED));
var_dump(IntlChar::hasBinaryProperty("[", IntlChar::PROPERTY_ALPHABETIC));
var_dump(IntlChar::hasBinaryProperty("[", IntlChar::PROPERTY_CASE_SENSITIVE));
var_dump(IntlChar::hasBinaryProperty("[", IntlChar::PROPERTY_BIDI_MIRRORED));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)

Смотрите также

  • IntlChar::getIntPropertyValue() - Получить значение свойства Unicode для символа
  • IntlChar::getUnicodeVersion() - Получить версию Unicode


Проверить, является ли символ буквой либо цифрой

  • « IntlChar::hasBinaryProperty
  • IntlChar::isalpha »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ буквой либо цифрой

IntlChar::isalnum

(PHP 7)

IntlChar::isalnum — Проверить, является ли символ буквой либо цифрой

Описание

public static IntlChar::isalnum ( mixed $codepoint ) : bool

Проверяет, является ли символ буквой либо цифрой. TRUE категорий "L" (буквы) и "Nd" (десятичные цифры).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является буквой или цифрой, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isalnum("A"));
var_dump(IntlChar::isalnum("1"));
var_dump(IntlChar::isalnum("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)

Смотрите также

  • IntlChar::isalpha() - Проверить, является ли символ буквой
  • IntlChar::isdigit() - Проверить, является ли символ цифрой


Проверить, является ли символ буквой

  • « IntlChar::isalnum
  • IntlChar::isbase »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ буквой

IntlChar::isalpha

(PHP 7)

IntlChar::isalpha — Проверить, является ли символ буквой

Описание

public static IntlChar::isalpha ( mixed $codepoint ) : bool

Проверяет, является ли символ буквой. TRUE для категории "L" (буквы).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является буквой, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isalpha("A"));
var_dump(IntlChar::isalpha("1"));
var_dump(IntlChar::isalpha("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(false)

Смотрите также

  • IntlChar::isalnum() - Проверить, является ли символ буквой либо цифрой
  • IntlChar::isdigit() - Проверить, является ли символ цифрой


Проверить, является ли символ базовым

  • « IntlChar::isalpha
  • IntlChar::isblank »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ базовым

IntlChar::isbase

(PHP 7)

IntlChar::isbase — Проверить, является ли символ базовым

Описание

public static IntlChar::isbase ( mixed $codepoint ) : bool

Проверяет, является ли символ базовым. TRUE для категорий "L" (буквы), "N" (числа), "Mc" (меткой позиционирования при комбинации символов) и "Me" (enclosing marks).

Замечание:

Отличается от определения, заданного в главе 3.5, статье D13 Unicode, определяющего базовые символы как все символа (не Cn) графически не сочетающиеся с предыдущими символами (M) и не являющиеся управляющими (Cc) или форматирующими (Cf).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является базовым, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isbase("A"));
var_dump(IntlChar::isbase("1"));
var_dump(IntlChar::isbase("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)

Смотрите также

  • IntlChar::isalpha() - Проверить, является ли символ буквой
  • IntlChar::isdigit() - Проверить, является ли символ цифрой


Проверить, является ли символ "пустым" либо "горизонтальным пробелом"

  • « IntlChar::isbase
  • IntlChar::iscntrl »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ "пустым" либо "горизонтальным пробелом"

IntlChar::isblank

(PHP 7)

IntlChar::isblank — Проверить, является ли символ "пустым" либо "горизонтальным пробелом"

Описание

public static IntlChar::isblank ( mixed $codepoint ) : bool

Проверяет, является ли символ "пустым" либо "горизонтальным пробелом". Т.е. символом визуально разделяющим слова в предложении.

Другими словами:

  • TRUE для пробельных символов Unicode за исключением "вертикальных пробельных символов", таких как: U+000A (LF) U+000B (VT) U+000C (FF) U+000D (CR) U+0085 (NEL) U+2028 (LS) U+2029 (PS)
  • TRUE для U+0009 (TAB) и символов из категории "Zs" (пробельные разделители) за исключением пробела с нулевой длиной (ZWSP, U+200B).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является "пустым" либо "горизонтальным пробелом", FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isblank("A"));
var_dump(IntlChar::isblank(" "));
var_dump(IntlChar::isblank("\t"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(true)

Смотрите также

  • IntlChar::isspace() - Проверяет, является ли символ пробельным
  • IntlChar::isJavaSpaceChar() - Проверить, является ли символ пробельным с точки зрения языка Java
  • IntlChar::isUWhiteSpace() - Проверить, имеет ли символ свойство White_Space (пробельный символ)
  • IntlChar::isWhitespace() - Проверить, является ли символ пробельным с точки зрения ICU


Проверить, является ли символ управляющим

  • « IntlChar::isblank
  • IntlChar::isdefined »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ управляющим

IntlChar::iscntrl

(PHP 7)

IntlChar::iscntrl — Проверить, является ли символ управляющим

Описание

public static IntlChar::iscntrl ( mixed $codepoint ) : bool

Проверяет, является ли символ управляющим.

Управляющие символы::

  • 8-битные управляющие символы ISO (U+0000..U+001f и U+007f..U+009f)
  • IntlChar::CHAR_CATEGORY_CONTROL_CHAR (Cc)
  • IntlChar::CHAR_CATEGORY_FORMAT_CHAR (Cf)
  • IntlChar::CHAR_CATEGORY_LINE_SEPARATOR (Zl)
  • IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR (Zp)

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является управляющим, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::iscntrl("A"));
var_dump(IntlChar::iscntrl(" "));
var_dump(IntlChar::iscntrl("\n"));
var_dump(IntlChar::iscntrl("\u{200e}"));
?>

Результат выполнения данного примера:

bool(false)
bool(false)
bool(true)
bool(true)

Смотрите также

  • IntlChar::isprint() - Проверяет, является ли симвом отображаемым
  • IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT


Проверить, определен ли символ

  • « IntlChar::iscntrl
  • IntlChar::isdigit »
  • PHP Manual
  • IntlChar
  • Проверить, определен ли символ

IntlChar::isdefined

(PHP 7)

IntlChar::isdefined — Проверить, определен ли символ

Описание

public static IntlChar::isdefined ( mixed $codepoint ) : bool

Проверяет, определен ли символ. Обычно это означает, что коду Unicode назначен конкретный символ.

TRUE для категорий отличных от "Cn" (другие, не назначенные).

Замечание:

Note that non-character code points (e.g., U+FDD0) are not "defined" (they are Cn), but surrogate code points are "defined" (Cs).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является определенным, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isdefined("A"));
var_dump(IntlChar::isdefined(" "));
var_dump(IntlChar::isdefined("\u{FDD0}"));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)

Смотрите также

  • IntlChar::isdigit() - Проверить, является ли символ цифрой
  • IntlChar::isalpha() - Проверить, является ли символ буквой
  • IntlChar::isalnum() - Проверить, является ли символ буквой либо цифрой
  • IntlChar::isupper() - Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)
  • IntlChar::islower() - Проверить, в нижнем ли регистре символ
  • IntlChar::istitle() - Проверить, является ли символ титульным (Titlecase)


Проверить, является ли символ цифрой

  • « IntlChar::isdefined
  • IntlChar::isgraph »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ цифрой

IntlChar::isdigit

(PHP 7)

IntlChar::isdigit — Проверить, является ли символ цифрой

Описание

public static IntlChar::isdigit ( mixed $codepoint ) : bool

Проверяет, является ли символ цифрой.

TRUE для символов из категории "Nd" (десятичные цифры). Начиная с Unicode 4, функция является аналогом тестирования на Numeric_Type для Decimal.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является цифрой, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isdigit("A"));
var_dump(IntlChar::isdigit("1"));
var_dump(IntlChar::isdigit("\t"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)

Смотрите также

  • IntlChar::isalpha() - Проверить, является ли символ буквой
  • IntlChar::isalnum() - Проверить, является ли символ буквой либо цифрой
  • IntlChar::isxdigit() - Проверить, является ли символ шестнадцатеричной цифрой


Проверить, является ли символ графическим символом

  • « IntlChar::isdigit
  • IntlChar::isIDIgnorable »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ графическим символом

IntlChar::isgraph

(PHP 7)

IntlChar::isgraph — Проверить, является ли символ графическим символом

Описание

public static IntlChar::isgraph ( mixed $codepoint ) : bool

Проверяет, является ли символ "графическим" символом (печатные символы за исплючением пробельных).

TRUE для всех символов за исключением входящих в категории "Cc" (управляющие символы), "Cf" (управление форматом), "Cs" (суррогаты), "Cn" (не заданные) и "Z" (разделители).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является "графическим" символом, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isgraph("A"));
var_dump(IntlChar::isgraph("1"));
var_dump(IntlChar::isgraph("\u{2603}"));
var_dump(IntlChar::isgraph("\n"));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)
bool(false)


Проверить, является ли символ игнорируемым

  • « IntlChar::isgraph
  • IntlChar::isIDPart »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ игнорируемым

IntlChar::isIDIgnorable

(PHP 7)

IntlChar::isIDIgnorable — Проверить, является ли символ игнорируемым

Описание

public static IntlChar::isIDIgnorable ( mixed $codepoint ) : bool

Проверяет, является ли символ игнорируемым в идентификаторах.

TRUE для символов из категории "Cf" (управление форматом) и не пробельных управляющих символов ISO (U+0000..U+0008, U+000E..U+001B, U+007F..U+009F).

Замечание:

Обратите внимание, что Unicode просто рекомендует игнорировать Cf (управление форматом).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint игнорируется в идентификаторах, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isIDIgnorable("A"));
var_dump(IntlChar::isIDIgnorable(" "));
var_dump(IntlChar::isIDIgnorable("\u{007F}"));
?>

Результат выполнения данного примера:

bool(false)
bool(false)
bool(true)

Смотрите также

  • IntlChar::isIDStart() - Проверить, допустимо ли использовать символ в начале идентификатора
  • IntlChar::isIDPart() - Проверить, допустимо ли использовать символ в идентификаторе
  • IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT


Проверить, допустимо ли использовать символ в идентификаторе

  • « IntlChar::isIDIgnorable
  • IntlChar::isIDStart »
  • PHP Manual
  • IntlChar
  • Проверить, допустимо ли использовать символ в идентификаторе

IntlChar::isIDPart

(PHP 7)

IntlChar::isIDPart — Проверить, допустимо ли использовать символ в идентификаторе

Описание

public static IntlChar::isIDPart ( mixed $codepoint ) : bool

Проверяет, допустимо ли использовать символ в идентификаторе.

TRUE для символов категории "L" (буквы), "Nl" (символы цифр), "Nd" (десятичные цифры), "Mc" и "Mn" (метки совмещения), "Pc" (соединяющая пунктуация), и u_isIDIgnorable(c).

Замечание:

Почти то же самое, что и ID_Continue в Unicode (IntlChar::PROPERTY_ID_CONTINUE) за исключением того, что Unicode рекомендует игнорировать Cf, которые меньше IntlChar::isIDIgnorable().

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE если codepoint можно использовать в идентификаторах, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isIDPart("A"));
var_dump(IntlChar::isIDPart("$"));
var_dump(IntlChar::isIDPart("\n"));
var_dump(IntlChar::isIDPart("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(false)
bool(false)

Смотрите также

  • IntlChar::isIDIgnorable() - Проверить, является ли символ игнорируемым
  • IntlChar::isIDStart() - Проверить, допустимо ли использовать символ в начале идентификатора
  • IntlChar::PROPERTY_ID_CONTINUE


Проверить, допустимо ли использовать символ в начале идентификатора

  • « IntlChar::isIDPart
  • IntlChar::isISOControl »
  • PHP Manual
  • IntlChar
  • Проверить, допустимо ли использовать символ в начале идентификатора

IntlChar::isIDStart

(PHP 7)

IntlChar::isIDStart — Проверить, допустимо ли использовать символ в начале идентификатора

Описание

public static IntlChar::isIDStart ( mixed $codepoint ) : bool

Проверяет, допустимо ли использовать символ в начале идентификатора в соответствии со стандартом Unicode (The Unicode Standard, версия 3.0, глава 5.16 - Идентификаторы).

TRUE для категорий "L" (буквы) и "Nl" (символы цифр).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE если codepoint можно использовать в начале идентификатора, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isIDStart("A"));
var_dump(IntlChar::isIDStart("$"));
var_dump(IntlChar::isIDStart("\n"));
var_dump(IntlChar::isIDStart("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(false)
bool(false)

Смотрите также

  • IntlChar::isalpha() - Проверить, является ли символ буквой
  • IntlChar::isIDPart() - Проверить, допустимо ли использовать символ в идентификаторе
  • IntlChar::PROPERTY_ID_START


Проверить, является ли символ управляющим согласно ISO

  • « IntlChar::isIDStart
  • IntlChar::isJavaIDPart »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ управляющим согласно ISO

IntlChar::isISOControl

(PHP 7)

IntlChar::isISOControl — Проверить, является ли символ управляющим согласно ISO

Описание

public static IntlChar::isISOControl ( mixed $codepoint ) : bool

Проверяет, является ли символ управляющим согласно ISO.

TRUE для U+0000..U+001f и U+007f..U+009f (категория "Cc").

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является управляющим символом ISO, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isISOControl(" "));
var_dump(IntlChar::isISOControl("\n"));
var_dump(IntlChar::isISOControl("\u{200e}"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)

Смотрите также

  • IntlChar::iscntrl() - Проверить, является ли символ управляющим


Проверить, является ли символ допустимым в идентификаторе Java

  • « IntlChar::isISOControl
  • IntlChar::isJavaIDStart »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ допустимым в идентификаторе Java

IntlChar::isJavaIDPart

(PHP 7)

IntlChar::isJavaIDPart — Проверить, является ли символ допустимым в идентификаторе Java

Описание

public static IntlChar::isJavaIDPart ( mixed $codepoint ) : bool

Проверяет, является ли символ допустимым в идентификаторе Java.

В дополнение к IntlChar::isIDPart(), TRUE возвращается для категории "Sc" (символ денежной единицы).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint можетвстречаться в идентификаторе Java, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isJavaIDPart("A"));
var_dump(IntlChar::isJavaIDPart("$"));
var_dump(IntlChar::isJavaIDPart("\n"));
var_dump(IntlChar::isJavaIDPart("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)
bool(false)

Смотрите также

  • IntlChar::isIDIgnorable() - Проверить, является ли символ игнорируемым
  • IntlChar::isIDPart() - Проверить, допустимо ли использовать символ в идентификаторе
  • IntlChar::isJavaIDStart() - Проверить, может ли символ быть первым в идентификаторе Java
  • IntlChar::isalpha() - Проверить, является ли символ буквой
  • IntlChar::isdigit() - Проверить, является ли символ цифрой


Проверить, может ли символ быть первым в идентификаторе Java

  • « IntlChar::isJavaIDPart
  • IntlChar::isJavaSpaceChar »
  • PHP Manual
  • IntlChar
  • Проверить, может ли символ быть первым в идентификаторе Java

IntlChar::isJavaIDStart

(PHP 7)

IntlChar::isJavaIDStart — Проверить, может ли символ быть первым в идентификаторе Java

Описание

public static IntlChar::isJavaIDStart ( mixed $codepoint ) : bool

Проверяет, может ли символ быть первым в идентификаторе Java.

В дополнение к IntlChar::isIDStart(), TRUE возвращается для символов из категорий "Sc" (символ денежной единицы) и "Pc" (соединяющая пунктуация).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint может быть первым в идентификаторе Java, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isJavaIDStart("A"));
var_dump(IntlChar::isJavaIDStart("$"));
var_dump(IntlChar::isJavaIDStart("\n"));
var_dump(IntlChar::isJavaIDStart("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)
bool(false)

Смотрите также

  • IntlChar::isIDStart() - Проверить, допустимо ли использовать символ в начале идентификатора
  • IntlChar::isJavaIDPart() - Проверить, является ли символ допустимым в идентификаторе Java
  • IntlChar::isalpha() - Проверить, является ли символ буквой


Проверить, является ли символ пробельным с точки зрения языка Java

  • « IntlChar::isJavaIDStart
  • IntlChar::islower »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ пробельным с точки зрения языка Java

IntlChar::isJavaSpaceChar

(PHP 7)

IntlChar::isJavaSpaceChar — Проверить, является ли символ пробельным с точки зрения языка Java

Описание

public static IntlChar::isJavaSpaceChar ( mixed $codepoint ) : bool

Проверяет, является ли символ пробельным с точки зрения языка Java.

TRUE для категории "Z" (разделители), не включая контролирующие символы (такие как TAB или Перевод Строки).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является пробельным в Java, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isJavaSpaceChar("A"));
var_dump(IntlChar::isJavaSpaceChar(" "));
var_dump(IntlChar::isJavaSpaceChar("\n"));
var_dump(IntlChar::isJavaSpaceChar("\t"));
var_dump(IntlChar::isJavaSpaceChar("\u{00A0}"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)
bool(false)
bool(true)

Смотрите также

  • IntlChar::isspace() - Проверяет, является ли символ пробельным
  • IntlChar::isWhitespace() - Проверить, является ли символ пробельным с точки зрения ICU
  • IntlChar::isUWhiteSpace() - Проверить, имеет ли символ свойство White_Space (пробельный символ)


Проверить, в нижнем ли регистре символ

  • « IntlChar::isJavaSpaceChar
  • IntlChar::isMirrored »
  • PHP Manual
  • IntlChar
  • Проверить, в нижнем ли регистре символ

IntlChar::islower

(PHP 7)

IntlChar::islower — Проверить, в нижнем ли регистре символ

Описание

public static IntlChar::islower ( mixed $codepoint ) : bool

Определяет, входит ли символ в категорию "Ll" (буквы в нижнем регистре).

Замечание:

Могут быть пропущены некоторые символы, так как они могут иметь другую главную категорию. Что бы не потерять их - используйте функцию IntlChar::isULowercase().

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint входит в категорию Ll, или FALSE, если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::islower("A"));
var_dump(IntlChar::islower("a"));
var_dump(IntlChar::islower("?"));
var_dump(IntlChar::islower("?"));
var_dump(IntlChar::islower("1"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)
bool(true)
bool(false)

Смотрите также

  • IntlChar::isupper() - Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)
  • IntlChar::istitle() - Проверить, является ли символ титульным (Titlecase)
  • IntlChar::tolower() - Преобразование символа Unicode в нижний регистр
  • IntlChar::toupper() - Преобразование символа Unicode в верхний регистр
  • IntlChar::PROPERTY_LOWERCASE


Проверить, если у символа свойство Bidi_Mirrored

  • « IntlChar::islower
  • IntlChar::isprint »
  • PHP Manual
  • IntlChar
  • Проверить, если у символа свойство Bidi_Mirrored

IntlChar::isMirrored

(PHP 7)

IntlChar::isMirrored — Проверить, если у символа свойство Bidi_Mirrored

Описание

public static IntlChar::isMirrored ( mixed $codepoint ) : bool

Проверить, если у символа свойство Bidi_Mirrored.

Это свойство обычно есть у символов использующихся в контексте написания справа налево, которые необходимо отобразить "зеркальными" глифами.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint имеет свойство Bidi_Mirrored, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isMirrored("A"));
var_dump(IntlChar::isMirrored("<"));
var_dump(IntlChar::isMirrored("("));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(true)

Смотрите также

  • IntlChar::charMirror() - Получить "зеркальный" символ по коду
  • IntlChar::PROPERTY_BIDI_MIRRORED


Проверяет, является ли симвом отображаемым

  • « IntlChar::isMirrored
  • IntlChar::ispunct »
  • PHP Manual
  • IntlChar
  • Проверяет, является ли симвом отображаемым

IntlChar::isprint

(PHP 7)

IntlChar::isprint — Проверяет, является ли симвом отображаемым

Описание

public static IntlChar::isprint ( mixed $codepoint ) : bool

Проверяет, является ли симвом отображаемым.

TRUE для категорий отличных от "C" (управляющие символы).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является отображаемым символом, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isprint("A"));
var_dump(IntlChar::isprint(" "));
var_dump(IntlChar::isprint("\n"));
var_dump(IntlChar::isprint("\u{200e}"));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)
bool(false)

Смотрите также

  • IntlChar::iscntrl() - Проверить, является ли символ управляющим
  • IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT


Проверяет, является ли символ символом пунктуации

  • « IntlChar::isprint
  • IntlChar::isspace »
  • PHP Manual
  • IntlChar
  • Проверяет, является ли символ символом пунктуации

IntlChar::ispunct

(PHP 7)

IntlChar::ispunct — Проверяет, является ли символ символом пунктуации

Описание

public static IntlChar::ispunct ( mixed $codepoint ) : bool

Проверяет, является ли символ символом пунктуации.

TRUE для символов с категорией "P" (пунктуация).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является символом пунктуации, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::ispunct("."));
var_dump(IntlChar::ispunct(","));
var_dump(IntlChar::ispunct("\n"));
var_dump(IntlChar::ispunct("$"));

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)
bool(false)


Проверяет, является ли символ пробельным

  • « IntlChar::ispunct
  • IntlChar::istitle »
  • PHP Manual
  • IntlChar
  • Проверяет, является ли символ пробельным

IntlChar::isspace

(PHP 7)

IntlChar::isspace — Проверяет, является ли символ пробельным

Описание

public static IntlChar::isspace ( mixed $codepoint ) : bool

Проверяет, является ли символ пробельным.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является пробельным символом, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isspace("A"));
var_dump(IntlChar::isspace(" "));
var_dump(IntlChar::isspace("\n"));
var_dump(IntlChar::isspace("\t"));
var_dump(IntlChar::isspace("\u{00A0}"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(true)
bool(true)
bool(true)

Смотрите также

  • IntlChar::isJavaSpaceChar() - Проверить, является ли символ пробельным с точки зрения языка Java
  • IntlChar::isWhitespace() - Проверить, является ли символ пробельным с точки зрения ICU
  • IntlChar::isUWhiteSpace() - Проверить, имеет ли символ свойство White_Space (пробельный символ)


Проверить, является ли символ титульным (Titlecase)

  • « IntlChar::isspace
  • IntlChar::isUAlphabetic »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ титульным (Titlecase)

IntlChar::istitle

(PHP 7)

IntlChar::istitle — Проверить, является ли символ титульным (Titlecase)

Описание

public static IntlChar::istitle ( mixed $codepoint ) : bool

Проверить, входит ли символ в категорию Titlecase. Данные символы являются составными из нескольких букв, первая из которых заглавная. Например \u{01cb} (?) или \u{1faf} (?).

TRUE для категории "Lt" (titlecase).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является титульными символом, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::istitle("A"));
var_dump(IntlChar::istitle("a"));
var_dump(IntlChar::istitle("?"));
var_dump(IntlChar::istitle("?"));
var_dump(IntlChar::istitle("1"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)
bool(true)
bool(false)

Смотрите также

  • IntlChar::isupper() - Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)
  • IntlChar::islower() - Проверить, в нижнем ли регистре символ
  • IntlChar::totitle() - Преобразует символ Unicode в titlecase


Проверить, установлено ли у символа свойство Alphabetic

  • « IntlChar::istitle
  • IntlChar::isULowercase »
  • PHP Manual
  • IntlChar
  • Проверить, установлено ли у символа свойство Alphabetic

IntlChar::isUAlphabetic

(PHP 7)

IntlChar::isUAlphabetic — Проверить, установлено ли у символа свойство Alphabetic

Описание

public static IntlChar::isUAlphabetic ( mixed $codepoint ) : bool

Проверяет, установлено ли у символа свойство Alphabetic.

Тоже самое, что и IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_ALPHABETIC)

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint имеет свойство Alphabetic, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isUAlphabetic("A"));
var_dump(IntlChar::isUAlphabetic("1"));
var_dump(IntlChar::isUAlphabetic("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(false)

Смотрите также

  • IntlChar::isalpha() - Проверить, является ли символ буквой
  • IntlChar::hasBinaryProperty() - Проверить бинарное свойство Unicode для символа
  • IntlChar::PROPERTY_ALPHABETIC


Проверить, является ли символ символом в нижнем регистре

  • « IntlChar::isUAlphabetic
  • IntlChar::isupper »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ символом в нижнем регистре

IntlChar::isULowercase

(PHP 7)

IntlChar::isULowercase — Проверить, является ли символ символом в нижнем регистре

Описание

public static IntlChar::isULowercase ( mixed $codepoint ) : bool

Проверяет, является ли символ символом в нижнем регистре.

То же самое, что и IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_LOWERCASE)

Замечание:

Отличается от IntlChar::islower() и возвращает TRUE для большего числа символов.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint имеет свойство "Lowercase", FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isULowercase("A"));
var_dump(IntlChar::isULowercase("a"));
var_dump(IntlChar::isULowercase("?"));
var_dump(IntlChar::isULowercase("?"));
var_dump(IntlChar::isULowercase("1"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)
bool(true)
bool(false)

Смотрите также

  • IntlChar::islower() - Проверить, в нижнем ли регистре символ
  • IntlChar::hasBinaryProperty() - Проверить бинарное свойство Unicode для символа
  • IntlChar::PROPERTY_LOWERCASE


Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)

  • « IntlChar::isULowercase
  • IntlChar::isUUppercase »
  • PHP Manual
  • IntlChar
  • Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)

IntlChar::isupper

(PHP 7)

IntlChar::isupper — Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)

Описание

public static IntlChar::isupper ( mixed $codepoint ) : bool

Определяет, входит ли символ в категорию "Lu" (буквы в верхнем регистре).

Замечание:

Могут быть пропущены некоторые символы, так как они могут иметь другую главную категорию. Что бы не потерять их - используйте функцию IntlChar::isUUppercase().

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint входит в категорию Lu, или FALSE, если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isupper("A"));
var_dump(IntlChar::isupper("a"));
var_dump(IntlChar::isupper("?"));
var_dump(IntlChar::isupper("?"));
var_dump(IntlChar::isupper("1"));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Смотрите также

  • IntlChar::islower() - Проверить, в нижнем ли регистре символ
  • IntlChar::istitle() - Проверить, является ли символ титульным (Titlecase)
  • IntlChar::tolower() - Преобразование символа Unicode в нижний регистр
  • IntlChar::toupper() - Преобразование символа Unicode в верхний регистр
  • IntlChar::PROPERTY_UPPERCASE


Проверить, является ли символ символом в верхнем регистре

  • « IntlChar::isupper
  • IntlChar::isUWhiteSpace »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ символом в верхнем регистре

IntlChar::isUUppercase

(PHP 7)

IntlChar::isUUppercase — Проверить, является ли символ символом в верхнем регистре

Описание

public static IntlChar::isUUppercase ( mixed $codepoint ) : bool

Проверить, является ли символ символом в верхнем регистре.

То же самое, что и IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_UPPERCASE)

Замечание:

Отличается от IntlChar::isupper() и возвращает TRUE для большего числа символов.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint имеет свойство "Uppercase", FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isUUppercase("A"));
var_dump(IntlChar::isUUppercase("a"));
var_dump(IntlChar::isUUppercase("?"));
var_dump(IntlChar::isUUppercase("?"));
var_dump(IntlChar::isUUppercase("1"));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Смотрите также

  • IntlChar::isupper() - Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)
  • IntlChar::hasBinaryProperty() - Проверить бинарное свойство Unicode для символа
  • IntlChar::PROPERTY_UPPERCASE


Проверить, имеет ли символ свойство White_Space (пробельный символ)

  • « IntlChar::isUUppercase
  • IntlChar::isWhitespace »
  • PHP Manual
  • IntlChar
  • Проверить, имеет ли символ свойство White_Space (пробельный символ)

IntlChar::isUWhiteSpace

(PHP 7)

IntlChar::isUWhiteSpace — Проверить, имеет ли символ свойство White_Space (пробельный символ)

Описание

public static IntlChar::isUWhiteSpace ( mixed $codepoint ) : bool

Проверяет, имеет ли символ свойство White_Space (пробельный символ).

То же самое, что и IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_WHITE_SPACE)

Замечание:

Отличается от IntlChar::isspace() и IntlChar::isWhitespace().

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint имеет свойство "White_Space", FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isUWhiteSpace("A"));
var_dump(IntlChar::isUWhiteSpace(" "));
var_dump(IntlChar::isUWhiteSpace("\n"));
var_dump(IntlChar::isUWhiteSpace("\t"));
var_dump(IntlChar::isUWhiteSpace("\u{00A0}"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(true)
bool(true)
bool(true)

Смотрите также

  • IntlChar::isspace() - Проверяет, является ли символ пробельным
  • IntlChar::isWhitespace() - Проверить, является ли символ пробельным с точки зрения ICU
  • IntlChar::isJavaSpaceChar() - Проверить, является ли символ пробельным с точки зрения языка Java
  • IntlChar::hasBinaryProperty() - Проверить бинарное свойство Unicode для символа
  • IntlChar::PROPERTY_WHITE_SPACE


Проверить, является ли символ пробельным с точки зрения ICU

  • « IntlChar::isUWhiteSpace
  • IntlChar::isxdigit »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ пробельным с точки зрения ICU

IntlChar::isWhitespace

(PHP 7)

IntlChar::isWhitespace — Проверить, является ли символ пробельным с точки зрения ICU

Описание

public static IntlChar::isWhitespace ( mixed $codepoint ) : bool

Проверяет, является ли символ пробельным с точки зрения ICU.

Символ является пробельным символом ICU только если он соответствует одному из следующих критериев:

  • Это символ разделитель Unicode (категории "Z" = "Zs" или "Zl" или "Zp"), но не является неразравным пробелом (U+00A0 NBSP или U+2007 "Figure Space" или U+202F "Narrow NBSP").
  • Это U+0009 HORIZONTAL TABULATION.
  • Это U+000A LINE FEED.
  • Это U+000B VERTICAL TABULATION.
  • Это U+000C FORM FEED.
  • Это U+000D CARRIAGE RETURN.
  • Это U+001C FILE SEPARATOR.
  • Это U+001D GROUP SEPARATOR.
  • Это U+001E RECORD SEPARATOR.
  • Это U+001F UNIT SEPARATOR.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является пробельным в ICU, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::iswhitespace("A"));
var_dump(IntlChar::iswhitespace(" "));
var_dump(IntlChar::iswhitespace("\n"));
var_dump(IntlChar::iswhitespace("\t"));
var_dump(IntlChar::iswhitespace("\u{00A0}"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(true)
bool(true)
bool(false)

Смотрите также

  • IntlChar::isspace() - Проверяет, является ли символ пробельным
  • IntlChar::isJavaSpaceChar() - Проверить, является ли символ пробельным с точки зрения языка Java
  • IntlChar::isUWhiteSpace() - Проверить, имеет ли символ свойство White_Space (пробельный символ)


Проверить, является ли символ шестнадцатеричной цифрой

  • « IntlChar::isWhitespace
  • IntlChar::ord »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ шестнадцатеричной цифрой

IntlChar::isxdigit

(PHP 7)

IntlChar::isxdigit — Проверить, является ли символ шестнадцатеричной цифрой

Описание

public static IntlChar::isxdigit ( mixed $codepoint ) : bool

Проверяет, является ли символ шестнадцатеричной цифрой.

TRUE для символов из категории "Nd" (десятичные цифры) и латинских букв a-f и A-F в представлениях ASCII и Fullwidth ASCII ( 0041..0046, 0061..0066, FF21..FF26, FF41..FF46.)

Эквивалентно IntlChar::digit($codepoint, 16) >= 0.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является шестнадцатеричной цифрой, FALSE - если нет.

Примечания

Замечание:

Для того чтобы сузить определение шестнадцатеричных цифр только принимаются только символы ASCII:

<?php
$isASCIIHexadecimal = IntlChar::ord($codepoint) <= 0x7F && IntlChar::isxdigit($codepoint);
?>

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isxdigit("A"));
var_dump(IntlChar::isxdigit("1"));
var_dump(IntlChar::isxdigit("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)

Смотрите также

  • IntlChar::isdigit() - Проверить, является ли символ цифрой


Получить код символ Unicode

  • « IntlChar::isxdigit
  • IntlChar::tolower »
  • PHP Manual
  • IntlChar
  • Получить код символ Unicode

IntlChar::ord

(PHP 7)

IntlChar::ord — Получить код символ Unicode

Описание

public static IntlChar::ord ( mixed $character ) : int

Возвращает код символа Unicode.

Эта функция обратна функии IntlChar::chr().

Список параметров

character

Символ Unicode.

Возвращаемые значения

Возвращает код символа Unicode в виде целого числа.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::ord("A"));
var_dump(IntlChar::ord(" "));
var_dump(IntlChar::ord("\u{2603}"));
?>

Результат выполнения данного примера:

int(65)
int(32)
int(9731)

Смотрите также

  • IntlChar::isalnum() - Проверить, является ли символ буквой либо цифрой
  • IntlChar::isdigit() - Проверить, является ли символ цифрой
  • IntlChar::chr() - Получить символ Unicode по его коду
  • ord() - Конвертирует первый байт строки в число от 0 до 255


Преобразование символа Unicode в нижний регистр

  • « IntlChar::ord
  • IntlChar::totitle »
  • PHP Manual
  • IntlChar
  • Преобразование символа Unicode в нижний регистр

IntlChar::tolower

(PHP 7)

IntlChar::tolower — Преобразование символа Unicode в нижний регистр

Описание

public static IntlChar::tolower ( mixed $codepoint ) : mixed

Преобразует символ в его эквивалент в нижнем регистре. Если такового нет, то возвращается исходный символ.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает Simple_Lowercase_Mapping для символа, если существует. Если нет, то возвращает исходный символ.

Возвращаемый тип должен быть integer, если только символ не был передан как строка UTF-8 (string), в этом случае вернется строка.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::tolower("A"));
var_dump(IntlChar::tolower("a"));
var_dump(IntlChar::tolower("?"));
var_dump(IntlChar::tolower("?"));
var_dump(IntlChar::tolower("1"));
var_dump(IntlChar::tolower(ord("A")));
var_dump(IntlChar::tolower(ord("a")));
?>

Результат выполнения данного примера:

string(1) "a"
string(1) "a"
string(2) "?"
string(2) "?"
string(1) "1"
int(97)
int(97)

Смотрите также

  • IntlChar::totitle() - Преобразует символ Unicode в titlecase
  • IntlChar::toupper() - Преобразование символа Unicode в верхний регистр
  • mb_strtolower() - Приведение строки к нижнему регистру


Преобразует символ Unicode в titlecase

  • « IntlChar::tolower
  • IntlChar::toupper »
  • PHP Manual
  • IntlChar
  • Преобразует символ Unicode в titlecase

IntlChar::totitle

(PHP 7)

IntlChar::totitle — Преобразует символ Unicode в titlecase

Описание

public static IntlChar::totitle ( mixed $codepoint ) : mixed

Возвращает эквивалент символа в титульном(titlecase) регистре. Если такового нет, то возвращается исходный символ.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает Simple_Titlecase_Mapping для символа, если существует. Если нет, то возвращает исходный символ.

Возвращаемый тип должен быть integer, если только символ не был передан как строка UTF-8 (string), в этом случае вернется строка.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::totitle("A"));
var_dump(IntlChar::totitle("a"));
var_dump(IntlChar::totitle("?"));
var_dump(IntlChar::totitle("?"));
var_dump(IntlChar::totitle("1"));
var_dump(IntlChar::totitle(ord("A")));
var_dump(IntlChar::totitle(ord("a")));
?>

Результат выполнения данного примера:

string(1) "A"
string(1) "A"
string(2) "?"
string(2) "?"
string(1) "1"
int(65)
int(65)

Смотрите также

  • IntlChar::tolower() - Преобразование символа Unicode в нижний регистр
  • IntlChar::toupper() - Преобразование символа Unicode в верхний регистр
  • mb_convert_case() - Производит смену регистра символов в строке


Преобразование символа Unicode в верхний регистр

  • « IntlChar::totitle
  • IntlException »
  • PHP Manual
  • IntlChar
  • Преобразование символа Unicode в верхний регистр

IntlChar::toupper

(PHP 7)

IntlChar::toupper — Преобразование символа Unicode в верхний регистр

Описание

public static IntlChar::toupper ( mixed $codepoint ) : mixed

Преобразует символ в его эквивалент в верхнем регистре. Если такового нет, то возвращается исходный символ.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает Simple_Uppercase_Mapping символа, если он есть. В противном случае возвращается исходный символ.

Возвращаемый тип должен быть integer, если только символ не был передан как строка UTF-8 (string), в этом случае вернется строка.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::toupper("A"));
var_dump(IntlChar::toupper("a"));
var_dump(IntlChar::toupper("?"));
var_dump(IntlChar::toupper("?"));
var_dump(IntlChar::toupper("1"));
var_dump(IntlChar::toupper(ord("A")));
var_dump(IntlChar::toupper(ord("a")));
?>

Результат выполнения данного примера:

string(1) "A"
string(1) "A"
string(2) "?"
string(2) "?"
string(1) "1"
int(65)
int(65)

Смотрите также

  • IntlChar::tolower() - Преобразование символа Unicode в нижний регистр
  • IntlChar::totitle() - Преобразует символ Unicode в titlecase
  • mb_strtoupper() - Приведение строки к верхнему регистру


Класс исключений для ошибок intl

(PHP 5 > 5.5.0, PHP 7, PECL intl > 3.0.0a1)

Введение

Этот класс служит для вызыва исключений в случае возникновения ошибки в функциях intl. Данные исключения могут быть выброшены только если включена опция intl.use_exceptions.

Обзор классов

IntlException extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс IntlIterator

(PHP 5 >= 5.5.0, PHP 7)

Введение

Этот класс представляет итератор объектов модуля intl в тех случаях, когда нельзя назначить какой-либо другой итератор для объекта данного модуля. Единственный объект итератора для использования в конструкции foreach может быть получен только (в соответствующей части здесь) из объектов, так что объекты данного класса служат для получения таких внутренних объектов. Для удобства данный класс также реализует интерфейс Iterator, позволяя взаимодействовать с коллекциями значений используя методы определенные в этом интерфейсе. Оба этих метода и внутренние объекты итератора сохраняют свое состояние при передачи в foreach. (т.е. внутренний указатель и текущее значение остаются неизменны).

Классы потомки могут предоставлять более широкую функциональность.

Обзор классов

IntlIterator implements Iterator {
/* Методы */
public current ( void ) : mixed
public key ( void ) : string
public next ( void ) : void
public rewind ( void ) : void
public valid ( void ) : bool
}

Содержание

  • IntlIterator::current — Получить текущий элемент
  • IntlIterator::key — Получить ключ текущего элемента
  • IntlIterator::next — Перейти к следующему элементу
  • IntlIterator::rewind — Перейти к первому элементу
  • IntlIterator::valid — Проверить, корректна ли текущая позиция


Получить текущий элемент

  • « IntlIterator
  • IntlIterator::key »
  • PHP Manual
  • IntlIterator
  • Получить текущий элемент

IntlIterator::current

(PHP 5 >= 5.5.0, PHP 7)

IntlIterator::current — Получить текущий элемент

Описание

public IntlIterator::current ( void ) : mixed

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить ключ текущего элемента

  • « IntlIterator::current
  • IntlIterator::next »
  • PHP Manual
  • IntlIterator
  • Получить ключ текущего элемента

IntlIterator::key

(PHP 5 >= 5.5.0, PHP 7)

IntlIterator::key — Получить ключ текущего элемента

Описание

public IntlIterator::key ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Перейти к следующему элементу

  • « IntlIterator::key
  • IntlIterator::rewind »
  • PHP Manual
  • IntlIterator
  • Перейти к следующему элементу

IntlIterator::next

(PHP 5 >= 5.5.0, PHP 7)

IntlIterator::next — Перейти к следующему элементу

Описание

public IntlIterator::next ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Перейти к первому элементу

  • « IntlIterator::next
  • IntlIterator::valid »
  • PHP Manual
  • IntlIterator
  • Перейти к первому элементу

IntlIterator::rewind

(PHP 5 >= 5.5.0, PHP 7)

IntlIterator::rewind — Перейти к первому элементу

Описание

public IntlIterator::rewind ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверить, корректна ли текущая позиция

  • « IntlIterator::rewind
  • Функции intl »
  • PHP Manual
  • IntlIterator
  • Проверить, корректна ли текущая позиция

IntlIterator::valid

(PHP 5 >= 5.5.0, PHP 7)

IntlIterator::valid — Проверить, корректна ли текущая позиция

Описание

public IntlIterator::valid ( void ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Функции intl

Содержание

  • intl_error_name — Получить имя ошибки по ее коду
  • intl_get_error_code — Получить код последней ошибки
  • intl_get_error_message — Получить описание ошибки
  • intl_is_failure — Проверить, является ли код ошибки признаком сбоя


Получить имя ошибки по ее коду

  • « Функции intl
  • intl_get_error_code »
  • PHP Manual
  • Функции intl
  • Получить имя ошибки по ее коду

intl_error_name

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

intl_error_name — Получить имя ошибки по ее коду

Описание

intl_error_name ( int $error_code ) : string

Возвращает имя ошибки ICU.

Список параметров

error_code

Код ошибки ICU.

Возвращаемые значения

Возвращаемая строка будет иметь имя аналогичное соответствующей константе.

Примеры

Пример #1 Пример использования intl_error_name()

<?php
$coll     = collator_create( 'en_RU' );
$err_code = collator_get_error_code( $coll );

printf( "Символическое имя для %d - %s\n.", $err_code, intl_error_name( $err_code ) );
?>

Результатом выполнения данного примера будет что-то подобное:

Символическое имя для -128 - U_USING_FALLBACK_WARNING.

Смотрите также

  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя
  • intl_get_error_code() - Получить код последней ошибки
  • intl_get_error_message() - Получить описание ошибки


Получить код последней ошибки

  • « intl_error_name
  • intl_get_error_message »
  • PHP Manual
  • Функции intl
  • Получить код последней ошибки

intl_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

intl_get_error_code — Получить код последней ошибки

Описание

intl_get_error_code ( void ) : int

Полезно для обработки ошибок статических методов, когда отсутствует объект для извлечения ошибки из него.

Возвращаемые значения

Код ошибки, возвращенный последним вызовом функции API.

Примеры

Пример #1 Пример использования intl_get_error_code()

<?php
$coll = collator_create( '<bad_param>' );
if( !$coll ) {
    handle_error( intl_get_error_code() );
}
?>

Смотрите также

  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя
  • intl_error_name() - Получить имя ошибки по ее коду
  • intl_get_error_message() - Получить описание ошибки
  • collator_get_error_code() - Get collator's last error code
  • numfmt_get_error_code() - Get formatter's last error code


Получить описание ошибки

  • « intl_get_error_code
  • intl_is_failure »
  • PHP Manual
  • Функции intl
  • Получить описание ошибки

intl_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

intl_get_error_message — Получить описание ошибки

Описание

intl_get_error_message ( void ) : string

Получить описание последней произошедшей ошибки в функциях ICU.

Возвращаемые значения

Описание последней произошедшей ошибки в функциях ICU.

Примеры

Пример #1 Пример использования intl_get_error_message()

<?php
if( Collator::getAvailableLocales() === false ) {
    show_error( intl_get_error_message() );
}
?>

Смотрите также

  • intl_error_name() - Получить имя ошибки по ее коду
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя
  • collator_get_error_message() - Get text for collator's last error code
  • numfmt_get_error_message() - Get formatter's last error message


Проверить, является ли код ошибки признаком сбоя

  • « intl_get_error_message
  • Многобайтовые строки »
  • PHP Manual
  • Функции intl
  • Проверить, является ли код ошибки признаком сбоя

intl_is_failure

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

intl_is_failure — Проверить, является ли код ошибки признаком сбоя

Описание

intl_is_failure ( int $error_code ) : bool

Список параметров

error_code

Значение, возвращенное функциями: intl_get_error_code(), collator_get_error_code() .

Возвращаемые значения

TRUE, если произошел сбой, и FALSE, если все успешно, либо просто предупреждение.

Примеры

Пример #1 Пример использования intl_is_failure()

<?php
function check( $err_code )
{
    var_export( intl_is_failure( $err_code ) );
    echo "\n";
}

check( U_ZERO_ERROR );
check( U_USING_FALLBACK_WARNING );
check( U_ILLEGAL_ARGUMENT_ERROR );
?>

Результатом выполнения данного примера будет что-то подобное:

false
false
true

Смотрите также

  • intl_get_error_code() - Получить код последней ошибки
  • collator_get_error_code() - Get collator's last error code
  • Collator-getErrorCode() - Get collator's last error code


Многобайтовые строки

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Краткий обзор поддерживаемых кодировок
  • Основы японских многобайтных кодировок
  • Ввод и вывод HTTP
  • Поддерживаемые кодировки символов
  • Механизм перегрузки функций
  • Требования, предъявляемые к кодировкам символов в PHP
  • Функции для работы с многобайтовыми строками
    • mb_check_encoding — Проверяет, что кодировка строк выбрана верно
    • mb_chr — Получает определенный символ
    • mb_convert_case — Производит смену регистра символов в строке
    • mb_convert_encoding — Преобразует кодировку символов
    • mb_convert_kana — Преобразование кодировок "kana" из одной в другую ("zen-kaku", "han-kaku" и другие)
    • mb_convert_variables — Преобразует символы в переменной(-ых) из одной кодировки в другую
    • mb_decode_mimeheader — Декодирует строку в MIME-заголовке
    • mb_decode_numericentity — Декодирует ссылку на числовую строку HTML в символ
    • mb_detect_encoding — Определение кодировки символов
    • mb_detect_order — Установка/получение списка кодировок для механизмов определения кодировки
    • mb_encode_mimeheader — Кодирует строку для MIME-заголовка
    • mb_encode_numericentity — Кодирует символ в числовую HTML-ссылку
    • mb_encoding_aliases — Получает псевдонимы известного типа кодировки
    • mb_ereg_match — Совпадение с регулярным выражением для многобайтовой строки
    • mb_ereg_replace_callback — Выполняет поиск и замену по регулярному выражению с поддержкой многобайтовых кодировок используя callback-функцию
    • mb_ereg_replace — Осуществляет замену по регулярному выражению с поддержкой многобайтовых кодировок
    • 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_ereg_search — Поиск соответствий регулярному выражению для строк в многобайтовых кодировках
    • mb_ereg — Совпадение с регулярным выражением с поддержкой многобайтовых кодировок
    • mb_eregi_replace — Осуществляет замену по регулярному выражению с поддержкой многобайтовых символов без учета регистра
    • mb_eregi — Поиск соответствий регулярному выражению с поддержкой многобайтовых символов без учета регистра
    • mb_get_info — Получает внутренние настройки mbstring
    • mb_http_input — Определение кодировки символов входных данных HTTP-запроса
    • mb_http_output — Установка/получение кодировки символов вывода HTTP
    • mb_internal_encoding — Установка/получение внутренней кодировки скрипта
    • mb_language — Устанавливает/получает текущий язык
    • mb_list_encodings — Возвращает массив всех поддерживаемых кодировок
    • mb_ord — Получает кодовую точку символа
    • mb_output_handler — Callback-функция, преобразующая кодировку символов в выходном буфере
    • mb_parse_str — Разбор данных запросов GET/POST/COOKIE и установка значений глобальных переменных
    • mb_preferred_mime_name — Получение набора символов MIME
    • mb_regex_encoding — Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
    • mb_regex_set_options — Установка/получение значений по умолчанию для настроек функций mbregex
    • mb_scrub — Описание
    • mb_send_mail — Отправка закодированного сообщения
    • mb_split — Разделение строк в многобайтных кодировках, используя регулярное выражение
    • mb_strcut — Получение части строки
    • mb_strimwidth — Получение строки, обрезанной до заданного размера
    • mb_stripos — Регистронезависимый поиск позиции первого вхождения одной строки в другую
    • mb_stristr — Находит первое вхождение подстроки в строке без учета регистра
    • mb_strlen — Получает длину строки
    • mb_strpos — Поиск позиции первого вхождения одной строки в другую
    • mb_strrchr — Поиск последнего вхождения одной строки в другую
    • mb_strrichr — Поиск последнего вхождения одной строки в другую, нечувствительный к регистру
    • mb_strripos — Поиск последнего вхождения одной строки в другую, нечувствительный к регистру
    • mb_strrpos — Поиск позиции последнего вхождения одной строки в другую
    • mb_strstr — Находит первое вхождение подстроки в строке
    • mb_strtolower — Приведение строки к нижнему регистру
    • mb_strtoupper — Приведение строки к верхнему регистру
    • mb_strwidth — Возвращает ширину строки
    • mb_substitute_character — Установить/получить символ замены
    • mb_substr_count — Возвращает количество вхождений подстроки
    • mb_substr — Возвращает часть строки


Введение

Хотя и существует множество языков, в которых все необходимые символы можно закодировать одним восьмибитным значением, существуют также и языки, требующие столько символов, что они не умещаются в один байт (Байт состоит из восьми бит. Каждый бит может содержать одно из двух различных значений, единицу или ноль. Поэтому, один байт может задавать только 256 уникальных значений (два в восьмой степени)). Схемы кодирования, использующие многобайтовые строки, были разработаны для того, чтобы можно было пользоваться более, чем 256 символами, при этом продолжая работать со строками, как будто они закодированы в обычной побайтовой системе.

Когда вы работаете с многобайтовыми строками (удаляете пробельные символы с помощью функции trim, разбиваете строку на массив по регулярному выражению с помощью функции split, и т.д.), необходимо использовать специальные функции, так как в таких кодировках два или более последовательных байта могут задавать один символ. Иначе, если применить функцию, не умеющую работать с многобайтовыми строками, она, вероятно, не сможет определить начало и конец многобайтовых символов, и в итоге вы получите строку-мусор, которая скорее всего потеряет исходное значение.

mbstring предоставляет функции для работы с многобайтовыми строками, которые облегчают работу c многобайтовыми кодировками в PHP. Кроме того, mbstring занимается конвертированием строк из одной кодировки в другую. mbstring предназначен для работы с Unicode-кодировками, такими, как UTF-8 и UCS-2, а также с многими однобайтовыми кодировками для удобства (перечисленными ниже).


Установка

mbstring не входит в список расширений, устанавливаемых по умолчанию. Это значит, что изначально это расширение отключено. Для использования функций этого расширения необходимо явно включить модуль в настройке configure. За дополнительной информацией обращайтесь в раздел Инсталляция.

Следующие настройки относятся к модулю mbstring.

  • --enable-mbstring : Включение функций mbstring. Эта настройка необходима для использования функций mbstring.

    libmbfl необходима для работы mbstring. libmbfl поставляется вместе с mbstring. До PHP 7.3.0, если libmbfl уже установлена в системе, то можно использовать --with-libmbfl[=DIR] для использования установленной библиотеки.

  • --disable-mbregex : Отключение функций регулярных выражений, поддерживающих многобайтовые кодировки.

    Oniguruma необходима функций работы с регулярными выражениями с поддержкой многобайтовых кодировок. Oniguruma поставляется вместе с mbstring. С PHP 5.4.0, если библиотека Oniguruma уже установлена в системе, то для ее указания можно использовать опцию --with-onig[=DIR] .

    Начиная с PHP 5.4.0 возможно запретить многобайтовые регулярные выражения с возвратом с помощью опции --disable-mbregex-backtrack .


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции конфигурации mbstring
Имя | По умолчанию | Место изменения | Список изменений
mbstring.language | "neutral" | PHP_INI_ALL | PHP_INI_PERDIR в PHP <= 5.2.6
mbstring.detect_order | NULL | PHP_INI_ALL |
mbstring.http_input | "pass" | PHP_INI_ALL | Устарела с PHP 5.6.0.
mbstring.http_output | "pass" | PHP_INI_ALL | Устарела с PHP 5.6.0.
mbstring.internal_encoding | NULL | PHP_INI_ALL | Устарела с PHP 5.6.0.
mbstring.script_encoding | NULL | PHP_INI_ALL | Удалена в PHP 5.4.0. Используйте zend.script_encoding
mbstring.substitute_character | NULL | PHP_INI_ALL |
mbstring.func_overload | "0" | PHP_INI_SYSTEM | PHP_INI_PERDIR в PHP <= 5.2.6. Объявлено устаревшим в PHP 7.2.0.
mbstring.encoding_translation | "0" | PHP_INI_PERDIR |
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | PHP_INI_ALL | Доступна начиная с PHP 5.3.0.
mbstring.strict_detection | "0" | PHP_INI_ALL | Доступна начиная с PHP 5.1.2.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

mbstring.language string

По умолчанию в mbstring используются настройки национального языка. Обратите внимание, что эта опция автоматически определяет mbstring.internal_encoding, и mbstring.internal_encoding должен быть помещен после mbstring.language в php.ini

mbstring.encoding_translation boolean

Включает прозрачный фильтр кодировки для входящих запросов HTTP, который выполняет обнаружение и преобразование входной кодировки во внутреннюю кодировку.

mbstring.internal_encoding string
Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.6.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

Определяет внутреннюю кодировку символов по умолчанию.

В PHP 5.6 и новее пользователи должны оставить эту опцию пустой и задать вместо нее default_charset.

mbstring.http_input string
Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.6.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

Определяет кодировку символов по умолчанию для HTTP-ввода.

В PHP 5.6 и новее пользователи должны оставить эту опцию пустой и задать вместо нее default_charset.

mbstring.http_output string
Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.6.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

Определяет кодировку символов по умолчанию для HTTP-вывода (конвертация из внутренней кодировки в кодировку HTTP вывода произойдет перед выводом).

В PHP 5.6 и новее пользователи должны оставить эту опцию пустой и задать вместо нее default_charset.

mbstring.detect_order string

Определяет порядок определения кодировки символов по умолчанию. См. также mb_detect_order().

mbstring.substitute_character string

Определяет символ для замены недопустимых символов кодировки. Список поддерживаемых значений смотрите в описании функции mb_substitute_character().

mbstring.func_overload string
Внимание

Данный функционал объявлен УСТАРЕВШИМ, начиная с PHP 7.2.0 и его использование крайне не рекомендовано.

Перегружает множество однобайтовых функций аналогами из mbstring. Смотрите раздел Перегрузка функций для получения дополнительной информации.

Эта опция может быть изменена только в файле php.ini.

mbstring.http_output_conv_mimetypes string

mbstring.strict_detection boolean

Позволяет строгое определение кодировки.

Согласно » спецификации HTML 4.01, веб-браузерам разрешено перекодировать данные из формы, которые они получают в кодировке символов, отличной от используемой на странице. Смотрите функцию mb_http_input() для того, чтобы определить кодировку символов, используемую браузерами.

Хотя популярные браузеры способны достаточно точно определить кодировку символов данного HTML-документа, было бы лучше установить параметр charset в HTTP-заголовке Content-Type соответствующим значением с помощью header() или указать требуемое значение в параметре default_charset в ini-настройках.

Пример #1 Примеры настроек php.ini

; Установить язык по умолчанию
mbstring.language        = Neutral; Установить Neutral(UTF-8) языком по умолчанию (по умолчанию)
mbstring.language        = English; Установить английский языком по умолчанию
mbstring.language        = Japanese; Установить японский языком по умолчанию

;; Установить внутреннюю кодировку по умолчанию
;; Примечание: Убедитесь, что используете кодировку символов, которая работает с PHP
mbstring.internal_encoding    = UTF-8  ; Установить внутреннюю кодировку в UTF-8

;; Включено преобразование кодировки HTTP-ввода.
mbstring.encoding_translation = On

;; Установить кодировку символов по умолчанию для HTTP-ввода
;; Примечание: Скрипт не может изменить установку http_input.
mbstring.http_input           = pass    ; Нет преобразования.
mbstring.http_input           = auto    ; Установить HTTP-ввод в auto
                                ; "auto" расширяется в соответствии с mbstring.language
mbstring.http_input           = SJIS    ; Установить HTTP-ввод в SJIS
mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Указать порядок

;; Установить кодировку символов по умолчанию для HTTP-вывода
mbstring.http_output          = pass    ; Нет преобразования.
mbstring.http_output          = UTF-8   ; Установить кодировку HTTP-вывода в UTF-8

;; Установить порядок определения кодировки символов по умолчанию
mbstring.detect_order         = auto    ; Установить порядок определения в auto
mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Указать порядок

;; Установить символ замены по умолчанию
mbstring.substitute_character = 12307   ; Указать значение Unicode
mbstring.substitute_character = none    ; Не печатать символ
mbstring.substitute_character = long    ; Примеры кодовых значений символов: U+3000,JIS+7E7E

Пример #2 Настройки php.ini для пользователей EUC-JP

;; Отключить буферизацию вывода
output_buffering      = Off

;; Установить кодировку в http-заголовке
default_charset       = EUC-JP

;; Установить японский языком по умолчанию
mbstring.language = Japanese

;; Включено преобразование кодировки HTTP-ввода.
mbstring.encoding_translation = On

;; Установить перекодировку HTTP-ввода в auto
mbstring.http_input   = auto

;; Конвертировать HTTP-вывод в EUC-JP
mbstring.http_output  = EUC-JP

;; Установить внутреннюю кодировку в EUC-JP
mbstring.internal_encoding = EUC-JP

;; Не печатать недопустимые символы
mbstring.substitute_character = none

Пример #3 Настройки php.ini для пользователей SJIS

;; Включить буферизацию вывода
output_buffering     = On

;; Установить mb_output_handler для включения перекодировки вывода
output_handler       = mb_output_handler

;; Установить кодировку в http-заголовке
default_charset      = Shift_JIS

;; Установить японский языком по умолчанию
mbstring.language = Japanese

;; Установить перекодировку HTTP-ввода в auto
mbstring.http_input  = auto

;; Конвертировать в SJIS
mbstring.http_output = SJIS

;; Установить внутреннюю кодировку в EUC-JP
mbstring.internal_encoding = EUC-JP

;; Не печатать недопустимые символы
mbstring.substitute_character = none


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MB_OVERLOAD_MAIL (integer)
MB_OVERLOAD_STRING (integer)
MB_OVERLOAD_REGEX (integer)
MB_CASE_UPPER (integer)
MB_CASE_LOWER (integer)
MB_CASE_TITLE (integer)
MB_CASE_FOLD (integer)
Доступно с PHP 7.3.
MB_CASE_LOWER_SIMPLE (integer)
Доступно с PHP 7.3.
MB_CASE_UPPER_SIMPLE (integer)
Доступно с PHP 7.3.
MB_CASE_TITLE_SIMPLE (integer)
Доступно с PHP 7.3.
MB_CASE_FOLD_SIMPLE (integer)
Используется регистронезависимыми операциями. Доступно с PHP 7.3.
MB_ONIGURUMA_VERSION (string)
Версия Oniguruma, например, 6.9.4. Доступно с PHP 7.4.


Краткий обзор поддерживаемых кодировок

Список поддерживаемых кодировок
Название в реестре кодировок IANA | Лежащий в основе набор символов | Описание | Дополнительная информация
ISO-10646-UCS-4 | ISO 10646 | Универсальный набор символов с 31 битом для кода символа, стандартизованный в ISO/IEC 10646 как UCS-4. Установлена синхронизация со стандартом Юникод. | Если это название используется в средствах преобразования кодировок, конвертер попытается определить порядок расположения байтов по BOM (метка порядка байтов).
ISO-10646-UCS-4 | UCS-4 | См. выше. | В отличие от UCS-4, строки всегда принимаются закодированными в прямом порядке расположения байтов.
ISO-10646-UCS-4 | UCS-4 | См. выше. | В отличие от UCS-4, строки всегда принимаются закодированными в обратном порядке расположения байтов.
ISO-10646-UCS-2 | UCS-2 | Универсальный набор символов с 16 битом для кода символа, стандартизованный в ISO/IEC 10646 как UCS-2. Установлена синхронизация со стандартом Юникод. | Если это название используется в средствах преобразования кодировок, конвертер попытается определить порядок расположения байтов по BOM (метка порядка байтов).
ISO-10646-UCS-2 | UCS-2 | См. выше. | В отличие от UCS-2, строки всегда принимаются закодированными в прямом порядке расположения байтов.
ISO-10646-UCS-2 | UCS-2 | См. выше. | В отличие от UCS-2, строки всегда принимаются закодированными в обратном порядке расположения байтов.
UTF-32 | Юникод | Формат преобразования Юникода с 32-битной шириной символа, кодовое пространство которого соответствует стандарту кодовой таблицы Юникода. Эта схема кодирования не идентична UCS-4, так как кодовое пространство Юникода ограничено 21-м битом. | Если это название используется в средствах преобразования кодировок, конвертер попытается определить порядок расположения байтов по BOM (метка порядка байтов).
UTF-32BE | Юникод | См. выше | В отличие от UTF-32, строки всегда принимаются закодированными в прямом порядке расположения байтов.
UTF-32LE | Юникод | См. выше | В отличие от UTF-32, строки всегда принимаются закодированными в обратном порядке расположения байтов.
UTF-16 | Юникод | Формат преобразования Юникода с 32-битной шириной кода символа. Спецификация UTF-16 отличается от UCS-2 ввиду того, что начиная с Юникод 2.0 был внедрен механизм замещения символов и теперь UTF-16 ссылается на 21-битное кодовое пространство. | Если это название используется в средствах преобразования кодировок, конвертер попытается определить порядок расположения байтов по BOM (метка порядка байтов).
UTF-16BE | Юникод | См. выше. | В отличие от UTF-16, строки всегда принимаются закодированными в прямом порядке расположения байтов.
UTF-16LE | Юникод | См. выше. | В отличие от UTF-16, строки всегда принимаются закодированными в обратном порядке расположения байтов.
UTF-8 | Юникод / UCS | Формат преобразования Юникода с 32-битной шириной кода символа. | нет
UTF-7 | Юникод | Безопасный для почтовых программ и решений формат преобразования Юникода, определенный в спецификации » RFC2152. | нет
(нет) | Юникод | Разновидность UTF-7, специально разработанная для использования в » протоколе IMAP. | нет
US-ASCII (предпочитаемое MIME-имя) / iso-ir-6 / ANSI_X3.4-1986 / ISO_646.irv:1991 / ASCII / ISO646-US / us / IBM367 / CP367 / csASCII | ASCII / ISO 646 | ASCII (American Standard Code for Information Interchange - американский стандартный код для обмена информацией) - широко используемая 7-битная кодировка. Также стандартизована как международный стандарт ISO 646. | (нет)
EUC-JP (предпочитаемое MIME-имя) / Extended_UNIX_Code_Packed_Format_for_Japanese / csEUCPkdFmtJapanese | Объединение US-ASCII / JIS X0201:1997 (часть hankaku kana) / JIS X0208:1990 / JIS X0212:1990 | Как видно из названия, эта кодировка используется в основном в Unix системах или им подобных. Исходная схема кодирования Extended UNIX Code легла в основу стандарта ISO 2022. | Набор символов, на который ссылается EUC-JP отличен от набора для IBM932 / CP932, которые используются в OS/2® и Microsoft® Windows®. Для обеспечения взаимодействия между этими платформами используйте кодировку EUCJP-WIN.
Shift_JIS (предпочитаемое MIME-имя) / MS_Kanji / csShift_JIS | Объединение JIS X0201:1997 / JIS X0208:1997 | Shift_JIS был разработан в начале 80-х, когда Японские текстовые процессоры для рядовых пользователей только выходили на рынок, чтобы сохранить совместимость со схемой кодирования JIS X 0201:1976. В соответствии с определением IANA, кодовая таблица Shift_JIS несколько отличается от IBM932 / CP932. Тем не менее, названия "SJIS" / "Shift_JIS" ошибочно используются для обращения к этим кодовым таблицам. | Для кодовой таблицы CP932, используйте кодировку SJIS-WIN.
(none) | Объединение JIS X0201:1997 / JIS X0208:1997 / IBM расширения / NEC расширения | Несмотря на то, что эта "кодировка" использует ту же схему кодирования, что и EUC-JP, наборы символов, лежащий в их основе, различны. Таким образом, некоторые коды ссылаются на отличные от EUC-JP символы. | нет
Windows-31J / csWindows31J | Объединение JIS X0201:1997 / JIS X0208:1997 / IBM расширения / NEC расширения | Несмотря на то, что эта "кодировка" использует ту же схему кодирования, что и Shift_JIS, наборы символов, лежащий в их основе, различны. Таким образом, некоторые коды ссылаются на отличные от Shift_JIS символы. | (нет)
ISO-2022-JP (предпочитаемое MIME-имя) / csISO2022JP | US-ASCII / JIS X0201:1976 / JIS X0208:1978 / JIS X0208:1983 | » RFC1468 | (нет)
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 |  |  |
ISO-8859-16 |  |  |
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 |  |  |
KOI8-U |  |  |


Основы японских многобайтных кодировок

Японские символы могут быть представлены только в многобайтных кодировках, и многие стандарты кодирования зависят от платформы и назначения текста. Осложняет ситуацию то, что эти стандарты немного друг от друга отличаются. Чтобы создать веб-приложение, правильно работающее в японском окружении, разработчику необходимо держать все эти расхождения в уме, чтобы быть уверенным, что в каждый момент используется правильная кодировка.

  • Кодовое пространство для символа может занимать до шести байт
  • Большинство японских многобайтных символов требуют для хранения вдвое больше пространства, чем однобайтные символы. Такие символы называют "zen-kaku" по-японски, что означает "полная ширина". Другие, более узкие символы называют "han-kaku", что значит "полуширина". Графические свойства символов, однако, зависят от шрифта, которым они отображаются.
  • В некоторых кодировках для смены кодовой разметки определенной области кодов (00h на 7fh) используются клавиши shift(escape), определенные в стандарте in ISO-2022.
  • ISO-2022-JP должен использоваться в SMTP/NNTP, а заголовки и сущности должны перекодироваться в соответствии с требованиями RFC. Даже, если перекодировка не требуется, все же она будет не лишней, так как некоторые популярные почтовые клиенты не умеют работать с другими кодировками.
  • Веб-страницы, создаваемые для служб мобильных телефонов, таких как » i-mode или » EZweb должны использовать кодировку Shift_JIS.
  • В PHP 5.4.0 поддерживаются символы пиктограмм, используемые в сервисах мобильных телефонов, таких как » i-mode или » EZweb.


Ввод и вывод HTTP

Механизм преобразования кодировок ввода/вывода HTTP также может конвертировать двоичные данные. Пользователи должны сами следить за процессом преобразования, если в качестве ввода/вывода HTTP передаются двоичные данные.

Замечание:

Если enctype в HTML-форме имеет значение multipart/form-data, а значение mbstring.encoding_translation в php.ini установлено в On, переменные и имена загружаемых файлов в POST-запросах конвертируются во внутреннюю кодировку скрипта автоматически. Однако, это не относится к ключам запроса.

  • Ввод HTTP

    Из PHP скрипта невозможно контролировать преобразование кодировки входящих через HTTP символов. Если нужно отключить автоматическую конвертацию для HTTP ввода, это можно сделать в php.ini.

    Пример #1 Отключение преобразования кодировки HTTP ввода в php.ini

    ;; Отключение конвертации
mbstring.http_input = pass
;; Отключение конвертации
mbstring.encoding_translation = Off

    Если PHP используется как модуль Apache, можно переопределить эти настройки в каждой директиве виртуального хоста в httpd.conf или для каждой директории с .htaccess. За дополнительной информацией обращайтесь в раздел Конфигурация и к руководству по работе с Apache.

  • Вывод HTTP

    Есть несколько способов включить преобразование кодировки для выходных данных. Один из них - использование php.ini, другой - использование функции ob_start() с mb_output_handler() в качестве callback-функции для ob_start.

Пример #2 Пример настройки php.ini

;; Включение преобразования кодировок выходных символов для всех PHP страниц

;; Включение буферизации выходных данных
output_buffering    = On

;; Определение mb_output_handler для включения конвертации вывода
output_handler      = mb_output_handler

Пример #3 Пример скрипта

<?php

// Включение преобразования кодировок выходных символов только для этой страницы

// Установка кодировки HTTP вывода в SJIS
mb_http_output('SJIS');

// Запуск буферизации и определение "mb_output_handler" как
// callback-функции
ob_start('mb_output_handler');

?>


Поддерживаемые кодировки символов

В настоящее время модулем mbstring поддерживаются следующие кодировки символов. Любая из этих кодировок символов может быть указаны в параметре encoding функций mbstring.

Следующие кодировки символов поддерживаются в этом расширении PHP:

  • 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
  • ISO-2022-JP-MS
  • CP932
  • CP51932
  • SJIS-mac** (alias: MacJapanese)
  • SJIS-Mobile#DOCOMO** (alias: SJIS-DOCOMO)
  • SJIS-Mobile#KDDI** (alias: SJIS-KDDI)
  • SJIS-Mobile#SOFTBANK** (alias: SJIS-SOFTBANK)
  • UTF-8-Mobile#DOCOMO** (alias: UTF-8-DOCOMO)
  • UTF-8-Mobile#KDDI-A**
  • UTF-8-Mobile#KDDI-B** (alias: UTF-8-KDDI)
  • UTF-8-Mobile#SOFTBANK** (alias: UTF-8-SOFTBANK)
  • ISO-2022-JP-MOBILE#KDDI** (alias: ISO-2022-JP-KDDI)
  • JIS
  • JIS-ms
  • CP50220
  • CP50220raw
  • CP50221
  • CP50222
  • 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*
  • ISO-8859-16*
  • byte2be
  • byte2le
  • byte4be
  • byte4le
  • BASE64
  • HTML-ENTITIES (alias: HTML)
  • 7bit
  • 8bit
  • EUC-CN*
  • CP936
  • GB18030**
  • HZ
  • EUC-TW*
  • CP950
  • BIG-5*
  • EUC-KR*
  • UHC (alias: CP949)
  • ISO-2022-KR
  • Windows-1251 (alias: CP1251)
  • Windows-1252 (alias: CP1252)
  • CP866 (alias: IBM866)
  • KOI8-R*
  • KOI8-U*
  • ArmSCII-8 (alias: ArmSCII8)

* обозначает кодировки, которые также могут использоваться в регулярных выражениях.

** обозначает кодировки, доступные с PHP 5.4.0.

Любая запись в php.ini, которая принимает имя кодировки, может также использовать значения "auto" и "pass". Функции mbstring, которые принимают имя кодировки, также могут использовать значение "auto".

Если установлено значение "pass", преобразование кодировки не производится.

Если установлено значение "auto", оно расширяется списком кодировок, определенным в NLS (настройках национального языка). Например, если NLS установлен в Japanese, предполагается, что значение будет из списка "ASCII,JIS,UTF-8,EUC-JP,SJIS".

См. также mb_detect_order()


Механизм перегрузки функций

Внимание

Данный функционал объявлен УСТАРЕВШИМ, начиная с PHP 7.2.0 и его использование крайне не рекомендовано.

Зачастую заставить работать существующее PHP-приложение в многобайтовом окружении оказывается довольно трудной задачей. Это происходит, потому что большинство PHP-приложений написано с использованием стандартных функций обработки строк, таких как substr(), которые не умеют работать со строками в многобайтовых кодировках.

mbstring поддерживает механизм 'перегрузки функций', который позволяет сообщить приложению о том, что используется многобайтовая кодировка, без модификации кода, отвечающего за работу со строками. Например, если включена перегрузка функций, то функция mb_substr() будет вызываться вместо substr(). Этот механизм во многих случаях позволяет портировать приложения, поддерживающие только однобайтовые кодировки, в многобайтное окружение.

Для использования механизма перегрузки функций нужно задать настройке mbstring.func_overload в php.ini положительное значение, которое представляет собой комбинацию битовых масок, определяющих категории функций, которые нужно перегружать. Это будет число 1 для перегрузки функции mail(). 2 для строковых функций, 4 для функций регулярных выражений. Например, если значение настройки равно 7, то почтовые, строковые и функции регулярных выражений будут перегружаться. Список перегружаемых функций приведен ниже.

Функции, которые будут перегружены
значение настройки mbstring.func_overload | исходная функция | перегруженная функция
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 | stripos() | mb_stripos()
2 | strripos() | mb_strripos()
2 | strstr() | mb_strstr()
2 | stristr() | mb_stristr()
2 | strrchr() | mb_strrchr()
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()

Замечание:

Не рекомендуется использовать перегрузку функций в контексте каждой директории, так как добиться стабильной работы в этом случае пока не удалось, и это может привести к неожидаемому поведению приложения.


Требования, предъявляемые к кодировкам символов в PHP

Типы кодировок, использование которых в PHP безопасно.

  • Однобайтовые кодировки,

    • имеющие ASCII-совместимую (совместимую с ISO646) разметку в диапазоне с 00h по 7fh.

  • Многобайтовые кодировки,

    • имеющие ASCII-совместимую разметку в диапазоне с 00h по 7fh.
    • не использующие escape-последовательности ISO2022.
    • не использующие значения в байтах с 00h по 7fh по отдельности, когда эти байты представляют один символ.

Далее приведены примеры кодировок, использование которых в PHP нежелательно.

JIS, SJIS, ISO-2022-JP, BIG-5

Даже если PHP скрипт написан в рекомендуемой кодировке, он может оказаться неработоспособным. Зачастую так происходит, когда кодированные строки появляются в скрипте в качестве идентификаторов или литералов. Можно исключить большую часть таких ситуаций путем использования функции фильтрации кодировок во входящих HTTP-запросах (функция есть в расширении mbstring).

Замечание:

Крайне не рекомендуется использовать SJIS, BIG5, CP936, CP949 и GB18030 в качестве внутренних кодировок, если вы недостаточно разбираетесь в устройстве парсера, сканера и кодировки.

Замечание:

Если вы подключаетесь к базе данных средствами PHP, рекомендуется использовать одинаковые кодировки для базы данных и в качестве внутренней кодировки. Это облегчит разработку и повысит быстродействие.

Если вы используете PostgreSQL, совпадение кодировок в базе данных и используемой в PHP необязательно, так как PostgreSQL поддерживает автоматическое преобразование кодировок между СУБД и клиентом.


Функции для работы с многобайтовыми строками

Ссылки

Схемы многобайтного кодирования символов и их реализации достаточно сложны, и их описание находится за пределами этой документации. Более исчерпывающую информацию о кодировках и их устройстве можно почерпнуть из нижеприведенных источников.

  • Материалы по Юникоду

    » http://www.unicode.org/

  • Информация о символах японской/корейской/китайской кодировок

    » http://examples.oreilly.com/cjkvinfo/doc/cjk.inf

Содержание

  • mb_check_encoding — Проверяет, что кодировка строк выбрана верно
  • mb_chr — Получает определенный символ
  • mb_convert_case — Производит смену регистра символов в строке
  • mb_convert_encoding — Преобразует кодировку символов
  • mb_convert_kana — Преобразование кодировок "kana" из одной в другую ("zen-kaku", "han-kaku" и другие)
  • mb_convert_variables — Преобразует символы в переменной(-ых) из одной кодировки в другую
  • mb_decode_mimeheader — Декодирует строку в MIME-заголовке
  • mb_decode_numericentity — Декодирует ссылку на числовую строку HTML в символ
  • mb_detect_encoding — Определение кодировки символов
  • mb_detect_order — Установка/получение списка кодировок для механизмов определения кодировки
  • mb_encode_mimeheader — Кодирует строку для MIME-заголовка
  • mb_encode_numericentity — Кодирует символ в числовую HTML-ссылку
  • mb_encoding_aliases — Получает псевдонимы известного типа кодировки
  • mb_ereg_match — Совпадение с регулярным выражением для многобайтовой строки
  • mb_ereg_replace_callback — Выполняет поиск и замену по регулярному выражению с поддержкой многобайтовых кодировок используя callback-функцию
  • mb_ereg_replace — Осуществляет замену по регулярному выражению с поддержкой многобайтовых кодировок
  • 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_ereg_search — Поиск соответствий регулярному выражению для строк в многобайтовых кодировках
  • mb_ereg — Совпадение с регулярным выражением с поддержкой многобайтовых кодировок
  • mb_eregi_replace — Осуществляет замену по регулярному выражению с поддержкой многобайтовых символов без учета регистра
  • mb_eregi — Поиск соответствий регулярному выражению с поддержкой многобайтовых символов без учета регистра
  • mb_get_info — Получает внутренние настройки mbstring
  • mb_http_input — Определение кодировки символов входных данных HTTP-запроса
  • mb_http_output — Установка/получение кодировки символов вывода HTTP
  • mb_internal_encoding — Установка/получение внутренней кодировки скрипта
  • mb_language — Устанавливает/получает текущий язык
  • mb_list_encodings — Возвращает массив всех поддерживаемых кодировок
  • mb_ord — Получает кодовую точку символа
  • mb_output_handler — Callback-функция, преобразующая кодировку символов в выходном буфере
  • mb_parse_str — Разбор данных запросов GET/POST/COOKIE и установка значений глобальных переменных
  • mb_preferred_mime_name — Получение набора символов MIME
  • mb_regex_encoding — Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_regex_set_options — Установка/получение значений по умолчанию для настроек функций mbregex
  • mb_scrub — Описание
  • mb_send_mail — Отправка закодированного сообщения
  • mb_split — Разделение строк в многобайтных кодировках, используя регулярное выражение
  • mb_strcut — Получение части строки
  • mb_strimwidth — Получение строки, обрезанной до заданного размера
  • mb_stripos — Регистронезависимый поиск позиции первого вхождения одной строки в другую
  • mb_stristr — Находит первое вхождение подстроки в строке без учета регистра
  • mb_strlen — Получает длину строки
  • mb_strpos — Поиск позиции первого вхождения одной строки в другую
  • mb_strrchr — Поиск последнего вхождения одной строки в другую
  • mb_strrichr — Поиск последнего вхождения одной строки в другую, нечувствительный к регистру
  • mb_strripos — Поиск последнего вхождения одной строки в другую, нечувствительный к регистру
  • mb_strrpos — Поиск позиции последнего вхождения одной строки в другую
  • mb_strstr — Находит первое вхождение подстроки в строке
  • mb_strtolower — Приведение строки к нижнему регистру
  • mb_strtoupper — Приведение строки к верхнему регистру
  • mb_strwidth — Возвращает ширину строки
  • mb_substitute_character — Установить/получить символ замены
  • mb_substr_count — Возвращает количество вхождений подстроки
  • mb_substr — Возвращает часть строки


Проверяет, что кодировка строк выбрана верно

  • « Функции для работы с многобайтовыми строками
  • mb_chr »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Проверяет, что кодировка строк выбрана верно

mb_check_encoding

(PHP 4 >= 4.4.3, PHP 5 >= 5.1.3, PHP 7)

mb_check_encoding — Проверяет, что кодировка строк выбрана верно

Описание

mb_check_encoding ([ mixed $var = NULL [, string $encoding = mb_internal_encoding() ]] ) : bool

Проверяет, что для потока данных подходит выбранная кодировка. Если var является массивом (array), все ключи и значения проверяются рекурсивно. Функция может быть полезной для предотвращения так называемой "Атаки неправильной кодировкой".

Список параметров

var

Поток данных или массив (array) для проверки. Если не задан, функция проверит все входные данные с начала запроса.

encoding

Ожидаемая кодировка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.2.0 | Функция теперь также принимает массив (array) в var. Ранее поддерживались только строки (string).


Получает определенный символ

  • « mb_check_encoding
  • mb_convert_case »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Получает определенный символ

mb_chr

(PHP 7 >= 7.2.0)

mb_chr — Получает определенный символ

Описание

mb_chr ( int $cp [, string $encoding ] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

cp

encoding

Возвращаемые значения

Возвращает определенный символ или FALSE в случае возникновения ошибки.

Смотрите также

  • mb_ord() - Получает кодовую точку символа
  • chr() - Генерирует односимвольную строку по заданному числу


Производит смену регистра символов в строке

  • « mb_chr
  • mb_convert_encoding »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Производит смену регистра символов в строке

mb_convert_case

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mb_convert_case — Производит смену регистра символов в строке

Описание

mb_convert_case ( string $str , int $mode [, string $encoding = mb_internal_encoding() ] ) : string

Производит смену регистра символов в строке (string) в соответствии с режимом mode.

Список параметров

str

Строка (string) для преобразования.

mode

Режим смены регистра. Это может быть одна из констант MB_CASE_UPPER, MB_CASE_LOWER, MB_CASE_TITLE, MB_CASE_FOLD, MB_CASE_LOWER_SIMPLE, MB_CASE_UPPER_SIMPLE, MB_CASE_TITLE_SIMPLE или MB_CASE_FOLD_SIMPLE.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Строка string, преобразованная в соответствии с режимом mode.

Юникод

В отличие от стандартных функций смены регистра, вроде strtolower() и strtoupper(), смена регистра осуществляется на основе свойств символа Юникода. Таким образом, на поведение функции не влияют региональные настройки системы, и она может конвертировать любые символы, имеющие 'алфавитное' свойство, как например А-умляут (A).

Дополнительную информацию о свойствах Юникода смотрите по ссылке» http://www.unicode.org/unicode/reports/tr21/.

Примеры

Пример #1 Пример использования mb_convert_case()

<?php
$str = "у мэри был маленький ягненок и она его очень любила";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
echo $str; // Выведет У МЭРИ БЫЛ МАЛЕНЬКИЙ ЯГНЕНОК И ОНА ЕГО ОЧЕНЬ ЛЮБИЛА
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $str; // Выведет У Мэри Был Маленький Ягненок И Она Его Очень Любила
?>

Пример #2 Пример использования mb_convert_case() с нелатинским UTF-8 текстом

<?php
$str = "??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
echo $str; // Выведет ??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $str; // Выведет ??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????
?>

Смотрите также

  • mb_strtolower() - Приведение строки к нижнему регистру
  • mb_strtoupper() - Приведение строки к верхнему регистру
  • strtolower() - Преобразует строку в нижний регистр
  • strtoupper() - Преобразует строку в верхний регистр
  • ucfirst() - Преобразует первый символ строки в верхний регистр
  • ucwords() - Преобразует в верхний регистр первый символ каждого слова в строке


Преобразует кодировку символов

  • « mb_convert_case
  • mb_convert_kana »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Преобразует кодировку символов

mb_convert_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_convert_encoding — Преобразует кодировку символов

Описание

mb_convert_encoding ( mixed $val , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] ) : mixed

Преобразует символы val в кодировку to_encoding. Также можно указать необязательный параметр from_encoding. Если val является массивом (array), все его строковые (string) значения будут преобразованы рекурсивно.

Список параметров

val

Строка (string) или массив (array), для преобразования.

to_encoding

Кодировка, в которую будут преобразованы данные из val.

from_encoding

Параметр для указания исходной кодировки строки. Это может быть массив (array), или строка со списком кодировок через запятую. Если параметр from_encoding не указан, то кодировка определяется автоматически.

Смотрите поддерживаемые кодировки.

Возвращаемые значения

Преобразованная строка (string) или массив (array).

Примеры

Пример #1 Пример использования mb_convert_encoding()

<?php
/* Преобразует строку в кодировку SJIS */
$str = mb_convert_encoding($str, "SJIS");

/* Преобразует из EUC-JP в UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");

/* Автоматически определяется кодировка среди JIS, eucjp-win, sjis-win, затем преобразуется в UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");

/* "auto" используется для обозначения "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>

Смотрите также

  • mb_detect_order() - Установка/получение списка кодировок для механизмов определения кодировки

Список изменений

Версия | Описание
7.2.0 | Функция теперь также принимает массив (array) в val. Ранее поддерживались только строки (string).


Преобразование кодировок "kana" из одной в другую ("zen-kaku", "han-kaku" и другие)

  • « mb_convert_encoding
  • mb_convert_variables »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Преобразование кодировок "kana" из одной в другую ("zen-kaku", "han-kaku" и другие)

mb_convert_kana

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_convert_kana — Преобразование кодировок "kana" из одной в другую ("zen-kaku", "han-kaku" и другие)

Описание

mb_convert_kana ( string $str [, string $option = "KV" [, string $encoding = mb_internal_encoding() ]] ) : string

Поизводит преобразование "han-kaku" - "zen-kaku" для агрумента типа string str. Эта функция может быть полезной только для японского языка.

Список параметров

str

Исходная строка (string).

option

Настройка конвертации.

Задается комбинацией следующих настроек.

Возможные настройки преобразования
Настройка | Описание
r | Преобразование "zen-kaku" букв в "han-kaku"
R | Преобразование "han-kaku" букв в "zen-kaku"
n | Преобразование "zen-kaku" чисел в "han-kaku"
N | Преобразование "han-kaku" чисел в "zen-kaku"
a | Преобразование "zen-kaku" букв и чисел в "han-kaku"
A | Преобразование "han-kaku" букв и чисел в "zen-kaku" (Для настроек "a", "A" символы берутся из диапазона U+0021 - U+007E, исключая U+0022, U+0027, U+005C, U+007E)
s | Преобразование "zen-kaku" пробела в "han-kaku" (U+3000 -> U+0020)
S | Преобразование "han-kaku" пробела в "zen-kaku" (U+0020 -> U+3000)
k | Преобразование "zen-kaku kata-kana" в "han-kaku kata-kana"
K | Преобразование "han-kaku kata-kana" в "zen-kaku kata-kana"
h | Преобразование "zen-kaku hira-gana" в "han-kaku kata-kana"
H | Преобразование "han-kaku kata-kana" в "zen-kaku hira-gana"
c | Преобразование "zen-kaku kata-kana" в "zen-kaku hira-gana"
C | Преобразование "zen-kaku hira-gana" в "zen-kaku kata-kana"
V | Производит свертку фонем и преобразует их в символ. Используется с "K","H"

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Преобразованная строка (string).

Примеры

Пример #1 Пример использования mb_convert_kana()

<?php
/* Преобразование всех символов "kana" в "zen-kaku" "kata-kana" */
$str = mb_convert_kana($str, "KVC");

/* Преобразование "han-kaku" "kata-kana" в "zen-kaku" "kata-kana"
   и "zen-kaku" alpha-numeric в "han-kaku" */
$str = mb_convert_kana($str, "KVa");
?>


Преобразует символы в переменной(-ых) из одной кодировки в другую

  • « mb_convert_kana
  • mb_decode_mimeheader »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Преобразует символы в переменной(-ых) из одной кодировки в другую

mb_convert_variables

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_convert_variables — Преобразует символы в переменной(-ых) из одной кодировки в другую

Описание

mb_convert_variables ( string $to_encoding , mixed $from_encoding , mixed &$vars [, mixed &$... ] ) : string

Конвертирует символы в переменных vars из кодировки from_encoding в кодировку to_encoding.

mb_convert_variables() объединяет строки из массива или объекта для определения их кодировки, так как в случае коротких строк определить кодировку зачастую не удается. Вследствие этого, недопустимо помещать в один массив или объект строки в разных кодировках.

Список параметров

to_encoding

Кодировка, в которую необходимо перекодировать строку (string).

from_encoding

from_encoding задается в виде массива (array) или строки (string) с разделенными запятой кодировками. Функция попытается определить кодировку исходной строки на основе списка возможных кодировок в аргументе from-coding. Если from_encoding опущен, используется detect_order.

vars

vars - ссылка на переменную, содержимое которой необходимо преобразовать. Это может быть строка, массив или объект. mb_convert_variables() принимает, что все эти аргументы имеют одинаковую кодировку.

...

Дополнительные vars.

Возвращаемые значения

Исходная кодировка в случае успеха или FALSE в случае неудачи.

Примеры

Пример #1 Пример использования mb_convert_variables()

<?php
/* Преобразование переменных $post1, $post2 во внутреннюю кодировку скрипта */
$interenc = mb_internal_encoding();
$inputenc = mb_convert_variables($interenc, "ASCII,UTF-8,SJIS-win", $post1, $post2);
?>


Декодирует строку в MIME-заголовке

  • « mb_convert_variables
  • mb_decode_numericentity »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Декодирует строку в MIME-заголовке

mb_decode_mimeheader

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_decode_mimeheader — Декодирует строку в MIME-заголовке

Описание

mb_decode_mimeheader ( string $str ) : string

Декодирует закодированную строку (string) str в MIME-заголовке.

Список параметров

str

Строка (string) для декодирования.

Возвращаемые значения

Декодированная строка (string) во внутренней кодировке скрипта.

Смотрите также

  • mb_encode_mimeheader() - Кодирует строку для MIME-заголовка


Декодирует ссылку на числовую строку HTML в символ

  • « mb_decode_mimeheader
  • mb_detect_encoding »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Декодирует ссылку на числовую строку HTML в символ

mb_decode_numericentity

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_decode_numericentity — Декодирует ссылку на числовую строку HTML в символ

Описание

mb_decode_numericentity ( string $str , array $convmap [, string $encoding = mb_internal_encoding() [, bool $is_hex = FALSE ]] ) : string

Преобразует строку чисел str (string) в заданном блоке в символ.

Список параметров

str

Строка (string) для декодирования.

convmap

convmap - массив (array), который задает диапазон кодов символов.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

is_hex

Параметр не используется.

Возвращаемые значения

Преобразованная строка (string).

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр is_hex.

Примеры

Пример #1 Пример convmap

<?php
$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 );
// Задайте значения Юникода для start_codeN и end_codeN
// Добавьте к значению offsetN и сложите побитово с maskN,
// затем преобразуйте результат в число.
?>

Пример #2 Пример экранирования строки JavaScript с помощью convmap

<?php
function escape_javascript_string($str) {
  $map = [
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,0,0, // 49
          0,0,0,0,0,0,0,0,1,1,
          1,1,1,1,1,0,0,0,0,0,
          0,0,0,0,0,0,0,0,0,0,
          0,0,0,0,0,0,0,0,0,0,
          0,1,1,1,1,1,1,0,0,0, // 99
          0,0,0,0,0,0,0,0,0,0,
          0,0,0,0,0,0,0,0,0,0,
          0,0,0,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1, // 149
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1, // 199
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1, // 249
          1,1,1,1,1,1,1, // 255
          ];
  // Кодировка символа UTF-8
  $mblen = mb_strlen($str, 'UTF-8');
  $utf32 = bin2hex(mb_convert_encoding($str, 'UTF-32', 'UTF-8'));
  for ($i=0, $encoded=''; $i < $mblen; $i++) {
      $u = substr($utf32, $i*8, 8);
      $v = base_convert($u, 16, 10);
      if ($v < 256 && $map[$v]) {
        $encoded .= '\\x'.substr($u, 6,2);
      } else if ($v == 2028) {
        $encoded .= '\\u2028';
      } else if ($v == 2029) {
        $encoded .= '\\u2029';
      } else {
        $encoded .= mb_convert_encoding(hex2bin($u), 'UTF-8', 'UTF-32');
      }
   }
   return $encoded;
}

// Данные для теста
$convmap = [ 0x0, 0xffff, 0, 0xffff ];
$msg = '';
for ($i=0; $i < 1000; $i++) {
  // chr() не может сгенерировать корректный символ UTF-8 больший, чем 128. Используем mb_decode_numericentity().
  $msg .= mb_decode_numericentity('&#'.$i.';', $convmap, 'UTF-8');
}

// var_dump($msg);
var_dump(escape_javascript_string($msg));

Смотрите также

  • mb_encode_numericentity() - Кодирует символ в числовую HTML-ссылку


Определение кодировки символов

  • « mb_decode_numericentity
  • mb_detect_order »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Определение кодировки символов

mb_detect_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_detect_encoding — Определение кодировки символов

Описание

mb_detect_encoding ( string $str [, mixed $encoding_list = mb_detect_order() [, bool $strict = FALSE ]] ) : string

Определяет кодировку символов в строке (string) str.

Список параметров

str

Строка (string), для которой требуется определить кодировку.

encoding_list

encoding_list - список возможных кодировок. Может быть представлен массивом или строкой, в которой будут перечислены названия кодировок, разделенные запятыми.

Если encoding_list не задан, будет применен detect_order.

strict

strict задает режим точного определения кодировки. По умолчанию FALSE.

Возвращаемые значения

Название кодировки или FALSE, если для заданной строки определить кодировку не удалось.

Примеры

Пример #1 Пример использования mb_detect_encoding()

<?php
/* Определение кодировки с текущим detect_order */
echo mb_detect_encoding($str);

/* "auto" раскрывается в соответствии с mbstring.language */
echo mb_detect_encoding($str, "auto");

/* Зададим список кодировок encoding_list в виде строки */
echo mb_detect_encoding($str, "JIS, eucjp-win, sjis-win");

/* Использование массива для задания возможных кодировок encoding_list  */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
echo mb_detect_encoding($str, $ary);
?>

Смотрите также

  • mb_detect_order() - Установка/получение списка кодировок для механизмов определения кодировки


Установка/получение списка кодировок для механизмов определения кодировки

  • « mb_detect_encoding
  • mb_encode_mimeheader »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Установка/получение списка кодировок для механизмов определения кодировки

mb_detect_order

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_detect_order — Установка/получение списка кодировок для механизмов определения кодировки

Описание

mb_detect_order ([ mixed $encoding_list = mb_detect_order() ] ) : mixed

В encoding_list задается порядок, в котором механизмы автоматического определения кодировок будут их проверять.

Список параметров

encoding_list

encoding_list - массив (array) или строка, в которой перечислены кодировки через запятую. См. Поддерживаемые кодировки.

Если encoding_list опущен, функция вернет текущий список кодировок в виде массива.

Эта настройка влияет на работу функций mb_detect_encoding() и mb_send_mail().

В mbstring на данный момент реализованы следующие фильтры для определения кодировок. Если последовательность байт в исходной строке не будет соответствовать ни одной из перечисленных кодировок, определение кодировки завершится неудачей.

UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP

Кодировку ISO-8859-*, mbstring всегда определяет как ISO-8859-*.

Для кодировок UTF-16, UTF-32, UCS2 и UCS4 автоматическое определение всегда будет завершаться неудачей.

Возвращаемые значения

При установке порядка определения кодировки, в зависимости от успешности, возвращает TRUE или FALSE.

При получении порядка определения кодировки, возвращается отсортированный массив кодировок.

Примеры

Пример #1 Пример использования mb_detect_order()

<?php
/* Установка порядка определения в виде упорядоченного списка */
mb_detect_order("eucjp-win,sjis-win,UTF-8");

/* Установка списка кодировок в виде массива */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
mb_detect_order($ary);

/* Вывод текущего списка кодировок */
echo implode(", ", mb_detect_order());
?>

Пример #2 Пример бесполезного порядка определения

; Всегда определяет как ISO-8859-1
detect_order = ISO-8859-1, UTF-8

; Всегда определяет как UTF-8, так как ASCII/UTF-7
; являются подмножеством UTF-8
detect_order = UTF-8, ASCII, UTF-7

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • mb_http_input() - Определение кодировки символов входных данных HTTP-запроса
  • mb_http_output() - Установка/получение кодировки символов вывода HTTP
  • mb_send_mail() - Отправка закодированного сообщения


Кодирует строку для MIME-заголовка

  • « mb_detect_order
  • mb_encode_numericentity »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Кодирует строку для MIME-заголовка

mb_encode_mimeheader

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_encode_mimeheader — Кодирует строку для MIME-заголовка

Описание

mb_encode_mimeheader ( string $str [, string $charset = mb_language() [, string $transfer_encoding = "B" [, string $linefeed = "\r\n" [, int $indent = 0 ]]]] ) : string

Кодирует строку (str) (string) по схеме кодирования MIME-заголовка.

Список параметров

str

Кодируемая строка типа string. Ее кодировка должна соответствовать mb_internal_encoding().

charset

charset задает имя кодировки, в котором представлена строка str. По умолчанию значение определяется настройкой NLS (mbstring.language).

transfer_encoding

transfer_encoding задает схему MIME-кодирования. Это может быть либо "B" (Base64), либо "Q" (Quoted-Printable). По умолчанию "B".

linefeed

linefeed задает метку EOL (конец строки, end-of-line), с помощью которой mb_encode_mimeheader() осуществляет завершение строк ("line-folding" - термин » RFC, означающий разделение строк, длина которых превышает заданное значение. Значение длины на данный момент жестко задано как 74 символа). По умолчанию "\r\n" (CRLF).

indent

Отступ первой строки (число символов в заголовке перед str).

Возвращаемые значения

Конвертированная строка (string), преобразованная в ASCII.

Примеры

Пример #1 Пример использования mb_encode_mimeheader()

<?php
$name = ""; // kanji
$mbox = "kru";
$doma = "gtinn.mon";
$addr = mb_encode_mimeheader($name, "UTF-7", "Q") . " <" . $mbox . "@" . $doma . ">";
echo $addr;
?>

Примечания

Замечание:

Эта функция не рассчитана на выполнение высокоуровневых разрывов строк (перенос слов целиком и т.п.). Такое поведение может привести к появлению неожидаемых пробелов в исходной строке.

Смотрите также

  • mb_decode_mimeheader() - Декодирует строку в MIME-заголовке


Кодирует символ в числовую HTML-ссылку

  • « mb_encode_mimeheader
  • mb_encoding_aliases »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Кодирует символ в числовую HTML-ссылку

mb_encode_numericentity

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_encode_numericentity — Кодирует символ в числовую HTML-ссылку

Описание

mb_encode_numericentity ( string $str , array $convmap [, string $encoding = mb_internal_encoding() [, bool $is_hex = FALSE ]] ) : string

Преобразует заданные коды символов в строке (string) str из кодов в числовые HTML-ссылки.

Список параметров

str

Кодируемая строка (string).

convmap

convmap - массив, задающий диапазон кодов.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

is_hex

Должна ли возвращаемая сущность быть представлена в шестнадцатеричной нотации (иначе в десятичной)

Возвращаемые значения

Сконвертированная строка (string).

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр is_hex.

Примеры

Пример #1 Пример convmap

<?php
$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 );
// Задайте значения Юникода для start_codeN и end_codeN
// Добавьте к значению offsetN и сложите побитово с maskN,
// затем преобразуйте результат в число.
?>

Примеры

Пример #2 Пример использования mb_encode_numericentity()

<?php
/* Преобразование левой части ISO-8859-1 в числовую HTML-ссылку */
$convmap = array(0x80, 0xff, 0, 0xff);
$str = mb_encode_numericentity($str, $convmap, "ISO-8859-1");

/* Преобразование заданного пользователем SJIS-win кода в блоке в числовую ссыку*/
$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");
?>

Смотрите также

  • mb_decode_numericentity() - Декодирует ссылку на числовую строку HTML в символ


Получает псевдонимы известного типа кодировки

  • « mb_encode_numericentity
  • mb_ereg_match »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Получает псевдонимы известного типа кодировки

mb_encoding_aliases

(PHP 5 >= 5.3.0, PHP 7)

mb_encoding_aliases — Получает псевдонимы известного типа кодировки

Описание

mb_encoding_aliases ( string $encoding ) : array

Возвращает массив псевдонимов для известного типа кодировки encoding.

Список параметров

encoding

Кодировка, для которой ищутся псевдонимы.

Возвращаемые значения

В случае успеха возвращает индексный массив с псевдонимами кодировки, или FALSE в случае возникновения ошибки

Ошибки

Вызывает ошибку уровня E_WARNING, если кодировка encoding неизвестна.

Примеры

Пример #1 Пример использования mb_encoding_aliases()

<?php
$encoding        = 'ASCII';
$known_encodings = mb_list_encodings();

if (in_array($encoding, $known_encodings)) {

    $aliases = mb_encoding_aliases($encoding);
    print_r($aliases);

} else {

    echo "Неизвестная кодировка ($encoding).\n";

}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => ANSI_X3.4-1968
    [1] => iso-ir-6
    [2] => ANSI_X3.4-1986
    [3] => ISO_646.irv:1991
    [4] => US-ASCII
    [5] => ISO646-US
    [6] => us
    [7] => IBM367
    [8] => cp367
    [9] => csASCII
)

Смотрите также

  • mb_list_encodings() - Возвращает массив всех поддерживаемых кодировок


Совпадение с регулярным выражением для многобайтовой строки

  • « mb_encoding_aliases
  • mb_ereg_replace_callback »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Совпадение с регулярным выражением для многобайтовой строки

mb_ereg_match

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_match — Совпадение с регулярным выражением для многобайтовой строки

Описание

mb_ereg_match ( string $pattern , string $string [, string $option = "msr" ] ) : bool

Совпадение с регулярным выражением для многобайтовой строки

Список параметров

pattern

Шаблон регулярного выражения.

string

Оцениваемая строка (string).

option

Опция поиска. Подробнее см. mb_regex_set_options().

Возвращаемые значения

Возвращает TRUE, если string совпадает с регулярным выражением pattern, FALSE - в противном случае.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_ereg() - Совпадение с регулярным выражением с поддержкой многобайтовых кодировок


Выполняет поиск и замену по регулярному выражению с поддержкой многобайтовых кодировок используя callback-функцию

  • « mb_ereg_match
  • mb_ereg_replace »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Выполняет поиск и замену по регулярному выражению с поддержкой многобайтовых кодировок используя callback-функцию

mb_ereg_replace_callback

(PHP 5 >= 5.4.1, PHP 7)

mb_ereg_replace_callback — Выполняет поиск и замену по регулярному выражению с поддержкой многобайтовых кодировок используя callback-функцию

Описание

mb_ereg_replace_callback ( string $pattern , callable $callback , string $string [, string $option = "msr" ] ) : string

Проверяет строку string на совпадение с шаблоном pattern, затем заменяет найденный текст результатом функции callback.

Поведение этой функции почти идентично с функцией mb_ereg_replace(), за исключением того, что вместо строки замены replacement необходимо определять функцию callback.

Список параметров

pattern

Шаблон регулярного выражения.

Мультибайтовые символы могут использоваться в pattern.

callback

Функция, которая будет вызвана для получения и передачи массива совпадений в строку subject. Сallback-функция должна возвращать строку для замены.

Часто может потребоваться объявлять функцию callback для mb_ereg_replace_callback() только в одном месте. В таком случае используйте анонимные функции для определения callback-функции внутри вызова mb_ereg_replace_callback(). При таком подходе у вас будет вся информация про вызов в одном месте и вы не загрязните пространство имен функции именем своей callback-функции, которое больше нигде не используется.

string

Строка (string) для проверки.

option

Опция поиска. Подробнее см. mb_regex_set_options().

Возвращаемые значения

Результирующая строка в случае успеха, или FALSE в случае ошибки.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Примеры

Пример #1 Пример функции mb_ereg_replace_callback()

<?php
// этот текст использовался в 2002
// мы хотим обновить для использования его в 2003
$text = "День смеха - 04/01/2002\n";
$text.= "Последнее Рождество было 12/24/2001\n";
// callback-функция
function next_year($matches)
{
  // как обычно: в $matches[0] будет полное совпадение
  // $matches[1] - совпадение для первого маски,
  // заключенной в '(...)' и т.д.
  return $matches[1].($matches[2]+1);
}
echo mb_ereg_replace_callback(
            "(\d{2}/\d{2}/)(\d{4})",
            "next_year",
            $text);

?>

Результат выполнения данного примера:

День смеха - 04/01/2003
Последнее Рождество было 12/24/2002

Пример #2 mb_ereg_replace_callback() использует анонимную функцию, поддерживаемую в PHP 5.3.0 или более поздней версии

<?php
// этот текст использовался в 2002
// мы хотим обновить для использования его в 2003
$text = "День смеха - 04/01/2002\n";
$text.= "Последнее Рождество было 12/24/2001\n";

echo mb_ereg_replace_callback(
            "(\d{2}/\d{2}/)(\d{4})",
            function ($matches) {
               return $matches[1].($matches[2]+1);
            },
            $text);
?>

Смотрите также

  • mb_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_ereg_replace() - Осуществляет замену по регулярному выражению с поддержкой многобайтовых кодировок
  • Анонимные функции
  • Информация о типе callback


Осуществляет замену по регулярному выражению с поддержкой многобайтовых кодировок

  • « mb_ereg_replace_callback
  • mb_ereg_search_getpos »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Осуществляет замену по регулярному выражению с поддержкой многобайтовых кодировок

mb_ereg_replace

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_replace — Осуществляет замену по регулярному выражению с поддержкой многобайтовых кодировок

Описание

mb_ereg_replace ( string $pattern , string $replacement , string $string [, string $option = "msr" ] ) : string

Сканирует строку string для поиска совпадений с pattern, затем заменяет совпавший текст на replacement

Список параметров

pattern

Шаблон регулярного выражения.

В pattern могут использоваться многобайтовые символы.

replacement

Текст замены.

string

Проверяемая строка (string).

option
Опция поиска. Подробнее см. mb_regex_set_options().

Возвращаемые значения

Результирующая строка (string) в случае успеха, или FALSE в случае ошибки.

Список изменений

Версия | Описание
7.1.0 | Модификатор e объявлен устаревшим.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Внимание

Никогда не используйте модификатор e при работе с данными, полученными из недостоверных источников. Не выполняется никакого автоматического экранирования этих данных (в отличие от preg_replace()). Неучитывание данных требований, скорее всего, создаст уязвимость выполнения удаленного кода в вашем приложении.

Смотрите также

  • mb_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_eregi_replace() - Осуществляет замену по регулярному выражению с поддержкой многобайтовых символов без учета регистра


Возвращает начальную позицию следующего совпадения с регулярным выражением

  • « mb_ereg_replace
  • mb_ereg_search_getregs »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Возвращает начальную позицию следующего совпадения с регулярным выражением

mb_ereg_search_getpos

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_getpos — Возвращает начальную позицию следующего совпадения с регулярным выражением

Описание

mb_ereg_search_getpos ( void ) : int

Возвращает начальную позицию следующего совпадения с регулярным выражением.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

mb_ereg_search_getpos() возвращает начальную позицию следующего совпадения с регулярным выражением для функций mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). Позиция представляется в виде числа байт с начала строки.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_ereg_search_setpos() - Задает начальную позицию в строке, с которой начнется поиск соответствий регулярному выражению


Выводит результат последнего сравнения с регулярным выражением

  • « mb_ereg_search_getpos
  • mb_ereg_search_init »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Выводит результат последнего сравнения с регулярным выражением

mb_ereg_search_getregs

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_getregs — Выводит результат последнего сравнения с регулярным выражением

Описание

mb_ereg_search_getregs ( void ) : array

Получение результата выполнения функций сравнения многобайтных строк с регулярным выражением

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) содержащий совпавшие с регулярным выражением подстроки в результате выполнения функций mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). Если совпадений несколько, то первый элемент будет содержать совпавшую подстроку, второй будет содержать первую часть в квадратных скобках, третий элемент будет содержать вторую часть в квадратных скобках и так далее. Функция вернет FALSE в случае ошибки.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_ereg_search_init() - Инициализация поиска соответствий регулярному выражению многобайтовой строкой и текстом регулярного выражения


Инициализация поиска соответствий регулярному выражению многобайтовой строкой и текстом регулярного выражения

  • « mb_ereg_search_getregs
  • mb_ereg_search_pos »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Инициализация поиска соответствий регулярному выражению многобайтовой строкой и текстом регулярного выражения

mb_ereg_search_init

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_init — Инициализация поиска соответствий регулярному выражению многобайтовой строкой и текстом регулярного выражения

Описание

mb_ereg_search_init ( string $string [, string $pattern [, string $option = "msr" ]] ) : bool

mb_ereg_search_init() задает значения параметров
string и pattern
для функций регулярных выражений. Эти значения будут использоваться
в функциях mb_ereg_search(),
mb_ereg_search_pos() и
mb_ereg_search_regs().

Список параметров

string

Строка, в которой будет осуществляться поиск соответствий.

pattern

Шаблон, регулярное выражение.

option

Опция поиска. Подробнее см. mb_regex_set_options().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_ereg_search_regs() - Возвращает совпавшую с регулярным выражением часть строки


Возвращает позицию и длину совпавшего с регулярным выражением участка многобайтовой строки

  • « mb_ereg_search_init
  • mb_ereg_search_regs »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Возвращает позицию и длину совпавшего с регулярным выражением участка многобайтовой строки

mb_ereg_search_pos

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_pos — Возвращает позицию и длину совпавшего с регулярным выражением участка многобайтовой строки

Описание

mb_ereg_search_pos ([ string $pattern [, string $option = "ms" ]] ) : array

Возвращает позицию и длину совпавшего с регулярным выражением участка заранее определенной многобайтной строки.

Строка для поиска задается функцией mb_ereg_search_init(). Если она не задавалась, будет использована строка, заданная ранее.

Список параметров

pattern

Шаблон, текст регулярного выражения.

option

Опция поиска. Подробнее см. mb_regex_set_options().

Возвращаемые значения

Массив (array) содержащий два элемента. Первый элемент - смещение в байтах, с которого начинается совпадение относительно начала искомой строки, и второй элемент - длина совпадения в байтах.

В случае ошибки возвращается FALSE.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_ereg_search_init() - Инициализация поиска соответствий регулярному выражению многобайтовой строкой и текстом регулярного выражения


Возвращает совпавшую с регулярным выражением часть строки

  • « mb_ereg_search_pos
  • mb_ereg_search_setpos »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Возвращает совпавшую с регулярным выражением часть строки

mb_ereg_search_regs

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_regs — Возвращает совпавшую с регулярным выражением часть строки

Описание

mb_ereg_search_regs ([ string $pattern [, string $option = "ms" ]] ) : array

Возвращает совпавшую с регулярным выражением часть строки.

Список параметров

pattern

Шаблон, текст регулярного выражения.

option

Опция поиска. Подробнее см. mb_regex_set_options().

Возвращаемые значения

mb_ereg_search_regs() запускает поиск в многобайтовой строке соответствий регулярному выражению, и если такие соответствия обнаружены, возвращает массив (array). В первый элемент массива помещается совпавшая подстрока, во второй помещается первый значение первого элемента заключенное в квадратные скобки, в третий элемент помещается второй также в скобках и так далее. Функция возвращает FALSE в случае ошибки.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_ereg_search_init() - Инициализация поиска соответствий регулярному выражению многобайтовой строкой и текстом регулярного выражения


Задает начальную позицию в строке, с которой начнется поиск соответствий регулярному выражению

  • « mb_ereg_search_regs
  • mb_ereg_search »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Задает начальную позицию в строке, с которой начнется поиск соответствий регулярному выражению

mb_ereg_search_setpos

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_setpos — Задает начальную позицию в строке, с которой начнется поиск соответствий регулярному выражению

Описание

mb_ereg_search_setpos ( int $position ) : bool

mb_ereg_search_setpos() задает начальную позицию, с которой начнется поиск соответствий регулярному выражению функцией mb_ereg_search().

Список параметров

position

Устанавливаемая позиция. Если значение отрицательно, отсчет идет с конца строки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений position.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_ereg_search_init() - Инициализация поиска соответствий регулярному выражению многобайтовой строкой и текстом регулярного выражения


Поиск соответствий регулярному выражению для строк в многобайтовых кодировках

  • « mb_ereg_search_setpos
  • mb_ereg »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Поиск соответствий регулярному выражению для строк в многобайтовых кодировках

mb_ereg_search

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search — Поиск соответствий регулярному выражению для строк в многобайтовых кодировках

Описание

mb_ereg_search ([ string $pattern [, string $option = "ms" ]] ) : bool

Выполняет поиск соответствий регулярному выражению в многобайтовой строке.

Список параметров

pattern

Шаблон для поиска, текст регулярного выражения.

option

Опция поиска. Подробнее см. mb_regex_set_options().

Возвращаемые значения

mb_ereg_search() возвращает TRUE, если многобайтная строка соответствует регулярному выражению, либо FALSE в противном случае. Строка (string) для поиска соответствий задается функцией mb_ereg_search_init(). Если аргумент pattern не задан, будет использовано предыдущее выражение.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_ereg_search_init() - Инициализация поиска соответствий регулярному выражению многобайтовой строкой и текстом регулярного выражения


Совпадение с регулярным выражением с поддержкой многобайтовых кодировок

  • « mb_ereg_search
  • mb_eregi_replace »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Совпадение с регулярным выражением с поддержкой многобайтовых кодировок

mb_ereg

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg — Совпадение с регулярным выражением с поддержкой многобайтовых кодировок

Описание

mb_ereg ( string $pattern , string $string [, array &$regs ] ) : int

Выполняет поиск совпадения с регулярным выражением с поддержкой многобайтовых кодировок.

Список параметров

pattern

Шаблон поиска.

string

Строка (string), в которой производится поиск.

regs

Если найдены совпадения для подстроки в скобках шаблона pattern и функция вызвана с третьим аргументом regs, совпадения будут сохранены в массиве regs. Если подобных совпадений найдено не будет, то regs установится как пустой массив.

$regs[1] будет содержать первую слева подстроку в скобках; $regs[2] - вторую, и так далее. $regs[0] будет содержать копию всей строки.

Возвращаемые значения

Возвращает длину найденной строки в байтах, либо FALSE, если совпадений в string для pattern не найдено, либо если возникла ошибка.

Если опциональный параметр regs не задан, либо длина совпавшей строки равна 0, эта функция вернет 1.

Список изменений

Версия | Описание
7.1.0 | Теперь mb_ereg() устанавливает regs равным пустому массиву (array), если ничего не найдено. Ранее в этом случае regs оставался неизменным.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_eregi() - Поиск соответствий регулярному выражению с поддержкой многобайтовых символов без учета регистра


Осуществляет замену по регулярному выражению с поддержкой многобайтовых символов без учета регистра

  • « mb_ereg
  • mb_eregi »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Осуществляет замену по регулярному выражению с поддержкой многобайтовых символов без учета регистра

mb_eregi_replace

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_eregi_replace — Осуществляет замену по регулярному выражению с поддержкой многобайтовых символов без учета регистра

Описание

mb_eregi_replace ( string $pattern , string $replace , string $string [, string $option = "msri" ] ) : string

Сканирует строку string для поиска совпадений с pattern, затем заменяет совпавший текст на replacement.

Список параметров

pattern

Шаблон регулярного выражения. Могут использоваться многобайтовые символы. Регистр будет игнорироваться.

replace

Текст замены.

string

Строка (string) для поиска.

option
Опция поиска. Подробнее см. mb_regex_set_options().

Возвращаемые значения

Результирующая строка (string) в случае успеха, или FALSE в случае ошибки.

Список изменений

Версия | Описание
7.1.0 | Модификатор e объявлен устаревшим.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Внимание

Никогда не используйте модификатор e при работе с данными, полученными из недостоверных источников. Не выполняется никакого автоматического экранирования этих данных (в отличие от preg_replace()). Неучитывание данных требований, скорее всего, создаст уязвимость выполнения удаленного кода в вашем приложении.

Смотрите также

  • mb_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_ereg_replace() - Осуществляет замену по регулярному выражению с поддержкой многобайтовых кодировок


Поиск соответствий регулярному выражению с поддержкой многобайтовых символов без учета регистра

  • « mb_eregi_replace
  • mb_get_info »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Поиск соответствий регулярному выражению с поддержкой многобайтовых символов без учета регистра

mb_eregi

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_eregi — Поиск соответствий регулярному выражению с поддержкой многобайтовых символов без учета регистра

Описание

mb_eregi ( string $pattern , string $string [, array &$regs ] ) : int

Выполняет поиск соответствий регулярному выражению с поддержкой многобайтных символы, нечувствительный к регистру.

Список параметров

pattern

Шаблон, текст регулярного выражения.

string

Строка (string), в которой производится поиск.

regs

Если найдены совпадения для подстроки pattern, заключенной в скобки, и функция вызвана с заданным третьим аргументом regs, эти совпадения будут сохранены в массиве regs. Если подобных совпадений не найдено, regs установится как пустой массив.

$regs[1] будет содержать первую (слева) подстроку заключенную в скобки; $regs[2] - вторую, и так далее. $regs[0] будет содержать копию всей найденной строки.

Возвращаемые значения

Возвращает длину найденной строки в байтах если совпадение шаблона pattern найдено в string, или FALSE, если совпадения не найдены.

Если необязательный аргумент regs не задан, или длина найденой строки равна 0, эта функция вернет 1.

Список изменений

Версия | Описание
7.1.0 | Функцию mb_eregi() устанавливает значение regs равным пустому массиву, если ничего не найдено. Ранее, в подобном случае, regs оставался неизменным.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_ereg() - Совпадение с регулярным выражением с поддержкой многобайтовых кодировок


Получает внутренние настройки mbstring

  • « mb_eregi
  • mb_http_input »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Получает внутренние настройки mbstring

mb_get_info

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_get_info — Получает внутренние настройки mbstring

Описание

mb_get_info ([ string $type = "all" ] ) : mixed

mb_get_info() возвращает параметры внутренней настройки mbstring.

Список параметров

type

Если type не указан, или указан как "all", будет возвращен массив array, содержащий элементы "internal_encoding", "http_output", "http_input", "func_overload", "mail_charset", "mail_header_encoding", "mail_body_encoding".

Если type указан как "http_output", "http_input", "internal_encoding", "func_overload", будет возвращена настройка указанного параметра.

Возвращаемые значения

Массив (array) информации о параметрах, если type не указан, в противном случае значение заданного параметра type.

Список изменений

Версия | Описание
5.3.0 | Стал доступен элемент "http_output_conv_mimetypes".
5.1.3 | Стали доступны элементы "mail_charset", "mail_header_encoding", и "mail_body_encoding".

Смотрите также

  • mb_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_http_output() - Установка/получение кодировки символов вывода HTTP


Определение кодировки символов входных данных HTTP-запроса

  • « mb_get_info
  • mb_http_output »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Определение кодировки символов входных данных HTTP-запроса

mb_http_input

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_http_input — Определение кодировки символов входных данных HTTP-запроса

Описание

mb_http_input ([ string $type = "" ] ) : mixed

Определяет кодировку входных данных HTTP-запроса.

Список параметров

type

Строка запроса задает тип входных данных. "G" для GET запроса, "P" для POST запроса, "C" для COOKIE, "S" для строк, "L" для списка и "I" для всего вместе (будет возвращен массив (array)). Если аргумент опущен, функция вернет последний использовавшийся тип.

Возвращаемые значения

Наименование кодировки символов для заданного типа type. Если mb_http_input() не может обработать HTTP-запрос, она вернет FALSE.

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • mb_http_output() - Установка/получение кодировки символов вывода HTTP
  • mb_detect_order() - Установка/получение списка кодировок для механизмов определения кодировки


Установка/получение кодировки символов вывода HTTP

  • « mb_http_input
  • mb_internal_encoding »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Установка/получение кодировки символов вывода HTTP

mb_http_output

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_http_output — Установка/получение кодировки символов вывода HTTP

Описание

mb_http_output ([ string $encoding = mb_http_output() ] ) : mixed

Установка/получение кодировки символов HTTP-вывода. Выходные данные после работы этой функции будут преобразованы из внутренней кодировки к encoding.

Список параметров

encoding

Если задан аргумент encoding, mb_http_output() устанавливает кодировку выходных символов HTTP в encoding.

Если аргумент encoding опущен, mb_http_output() возвращает текущую кодировку символов вывода HTTP.

Возвращаемые значения

Если аргумент encoding опущен, mb_http_output() возвращает текущую кодировку символов вывода HTTP. В противном случае, Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • mb_http_input() - Определение кодировки символов входных данных HTTP-запроса
  • mb_detect_order() - Установка/получение списка кодировок для механизмов определения кодировки


Установка/получение внутренней кодировки скрипта

  • « mb_http_output
  • mb_language »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Установка/получение внутренней кодировки скрипта

mb_internal_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_internal_encoding — Установка/получение внутренней кодировки скрипта

Описание

mb_internal_encoding ([ string $encoding = mb_internal_encoding() ] ) : mixed

Установка/получение внутренней кодировки скрипта.

Список параметров

encoding

encoding - это имя кодировки, в которую будут преобразовываться входные данные HTTP-запроса, из которой будет конвертироваться HTTP-вывод, а также это кодировка по умолчанию для всех функций, работающих со строками, определенными в модуле mbstring. Обратите внимание, что внутренняя кодировка полностью отличается от кодировки для многобайтовых регулярных выражений.

Возвращаемые значения

Если аргумент encoding задан, то Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. В этом случае не меняется кодировка символов для многобайтных регулярных выражений. Если аргумент encoding опущен, будет возвращено имя текущей внутренней кодировки.

Примеры

Пример #1 Пример использования mb_internal_encoding()

<?php
/* Установка внутренней кодировки в UTF-8 */
mb_internal_encoding("UTF-8");

/* Вывод на экран текущей внутренней кодировки */
echo mb_internal_encoding();
?>

Смотрите также

  • mb_http_input() - Определение кодировки символов входных данных HTTP-запроса
  • mb_http_output() - Установка/получение кодировки символов вывода HTTP
  • mb_detect_order() - Установка/получение списка кодировок для механизмов определения кодировки
  • mb_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения


Устанавливает/получает текущий язык

  • « mb_internal_encoding
  • mb_list_encodings »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Устанавливает/получает текущий язык

mb_language

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_language — Устанавливает/получает текущий язык

Описание

mb_language ( string $language ) : bool
mb_language ( void ) : string

Устанавливает/получает текущий язык.

Список параметров

language

Используется для кодирования сообщений электронной почты. Допустимые языки перечислены в следующей таблице. mb_send_mail() использует параметр для кодирования электронной почты.

Язык | Кодировка | Кодирование | Заметки
Немецкий язык/de | ISO-8859-15 | Quoted-Printable
Английский язык/en | ISO-8859-1 | Quoted-Printable
Армянский язык/hy | ArmSCII-8 | Quoted-Printable
Японский язык/ja | ISO-2022-JP | BASE64
Корейский язык/ko | ISO-2022-KR | BASE64
neutral | UTF-8 | BASE64
Русский язык/ru | KOI8-R | Quoted-Printable
Турецкий язык/tr | ISO-8859-9 | Quoted-Printable | Доступно с PHP 5.2.0
Украинский язык/ua | KOI8-U | Quoted-Printable | Доступно с PHP 5.3.0
uni | UTF-8 | BASE64
Упрощенный китайский язык/zh-cn | HZ | BASE64
Традиционный китайский язык/zh-tw | BIG-5 | BASE64

Возвращаемые значения

Если аргумент language задан и language имеет допустимое значение, функция возвращает TRUE. В противном случае она вернет FALSE. Если language опущен, функция вернет текущее значение языка в виде строки (string).

Смотрите также

  • mb_send_mail() - Отправка закодированного сообщения


Возвращает массив всех поддерживаемых кодировок

  • « mb_language
  • mb_ord »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Возвращает массив всех поддерживаемых кодировок

mb_list_encodings

(PHP 5, PHP 7)

mb_list_encodings — Возвращает массив всех поддерживаемых кодировок

Описание

mb_list_encodings ( void ) : array

Возвращает массив, содержащий все поддерживаемые кодировки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает индексный массив.

Ошибки

Эта функция не порождает каких-либо ошибок.

Примеры

Пример #1 Пример использования mb_list_encodings()

<?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_list_encodings
  • mb_output_handler »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Получает кодовую точку символа

mb_ord

(PHP 7 >= 7.2.0)

mb_ord — Получает кодовую точку символа

Описание

mb_ord ( string $str [, string $encoding ] ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

str

encoding

Возвращаемые значения

Возвращает кодовую точку символа или FALSE в случае возникновения ошибки.

Смотрите также

  • mb_chr() - Получает определенный символ
  • ord() - Конвертирует первый байт строки в число от 0 до 255


Callback-функция, преобразующая кодировку символов в выходном буфере

  • « mb_ord
  • mb_parse_str »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Callback-функция, преобразующая кодировку символов в выходном буфере

mb_output_handler

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_output_handler — Callback-функция, преобразующая кодировку символов в выходном буфере

Описание

mb_output_handler ( string $contents , int $status ) : string

mb_output_handler() является
callback-функцией функции ob_start().
mb_output_handler() преобразует символы в выходном буфере
из внутренней кодировки в кодировку HTTP-вывода.

Список параметров

contents

Содержимое выходного буфера.

status

Состояние выходного буфера.

Возвращаемые значения

Преобразованная строка (string).

Примеры

Пример #1 Пример использования mb_output_handler()

<?php
mb_http_output("UTF-8");
ob_start("mb_output_handler");
?>

Примечания

Замечание:

Если вы хотите вывести двоичные данные, изображение например, необходимо передать заголовок Content-Type с помощью функции header() до того, как какие-либо двоичные данные будут переданы клиенту. (например header("Content-Type: image/png")). Если заголовок Content-Type передан, преобразование кодировок выходных символов производиться не будет.

Следует заметить, что если передан заголовок 'Content-Type: text/*', пересылаемые данные принимаются как текст, к которому будет применена конвертация символов в соответствии с настройками кодировок.

Смотрите также

  • ob_start() - Включение буферизации вывода


Разбор данных запросов GET/POST/COOKIE и установка значений глобальных переменных

  • « mb_output_handler
  • mb_preferred_mime_name »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Разбор данных запросов GET/POST/COOKIE и установка значений глобальных переменных

mb_parse_str

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_parse_str — Разбор данных запросов GET/POST/COOKIE и установка значений глобальных переменных

Описание

mb_parse_str ( string $encoded_string [, array &$result ] ) : bool

Разбирает запросы GET/POST/COOKIE и устанавливает значения глобальных переменных. Так как PHP не работает с исходными данными POST/COOKIE, на данный момент его можно использовать только для работы с данными запроса GET. Функция разбирает строку URL, определяет кодировку, преобразует символы во внутреннюю кодировку скрипта и заносит значения переменных в массив result или в глобальные переменные.

Список параметров

encoded_string

Кодированные данные в URL.

result

Массив (array), содержащий декодированные данные и символы во внутренней кодировке скрипта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mb_detect_order() - Установка/получение списка кодировок для механизмов определения кодировки
  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта


Получение набора символов MIME

  • « mb_parse_str
  • mb_regex_encoding »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Получение набора символов MIME

mb_preferred_mime_name

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_preferred_mime_name — Получение набора символов MIME

Описание

mb_preferred_mime_name ( string $encoding ) : string

Получает строку (string) набора символов MIME для заданной кодировки.

Список параметров

encoding

Кодировка, для которой выбирается набор символов.

Возвращаемые значения

MIME-набор символов charset в виде строки (string) для кодировки encoding.

Примеры

Пример #1 Пример использования mb_preferred_mime_name()

<?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_preferred_mime_name
  • mb_regex_set_options »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Устанавливает/получает текущую кодировку для многобайтового регулярного выражения

mb_regex_encoding

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_regex_encoding — Устанавливает/получает текущую кодировку для многобайтового регулярного выражения

Описание

mb_regex_encoding ([ string $encoding = mb_regex_encoding() ] ) : mixed

Устанавливает/получает текущую кодировку для многобайтового регулярного выражения.

Список параметров

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Если задан параметр encoding, то Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. В этом случае не меняется внутренняя многобайтовая кодировка. Если параметр encoding не указан, то возвращается текущее имя кодировки символов для многобайтовых регулярных выражений.

Список изменений

Версия | Описание
5.6.0 | Кодировка по умолчанию изменена на UTF-8. Ранее по умолчанию была EUC-JP.

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • mb_ereg() - Совпадение с регулярным выражением с поддержкой многобайтовых кодировок


Установка/получение значений по умолчанию для настроек функций mbregex

  • « mb_regex_encoding
  • mb_scrub »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Установка/получение значений по умолчанию для настроек функций mbregex

mb_regex_set_options

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mb_regex_set_options — Установка/получение значений по умолчанию для настроек функций mbregex

Описание

mb_regex_set_options ([ string $options = mb_regex_set_options() ] ) : string

Устанавливает параметры по умолчанию, описанные в options, для функций регулярных выражений, работающих со строками в многобайтных кодировках.

Список параметров

options

Настройки, которые требуется задать. Это строка, в которой каждый символ отвечает за какую-то настройку. Для установки режима, его символ должен идти последним. Таким образом, можно задать только один режим, но несколько опций.

Настройки регулярных выражений
Настройка | Описание
i | Включение неоднозначных совпадений
x | Включает форму расширенного шаблона
m | '.' совпадения с переводами строк
s | '^' -> '\A', '$' -> '\Z'
p | То же, что и объединение m и s
l | Поиск совпадений, имеющих наибольшую длину
n | Игнорировать пустые совпадения
e | Вычисление кода результата функцией eval()
Синтаксические режимы регулярных выражений
Режим | Описание
j | Java (Sun java.util.regex)
u | GNU regex
g | grep
c | Emacs
r | Ruby
z | Perl
b | POSIX Basic regex
d | POSIX Extended regex

Возвращаемые значения

Предыдущие настройки. Если аргумент options опущен, функция вернет строку (string) с текущими настройками.

Смотрите также

  • mb_split() - Разделение строк в многобайтных кодировках, используя регулярное выражение
  • mb_ereg() - Совпадение с регулярным выражением с поддержкой многобайтовых кодировок
  • mb_eregi() - Поиск соответствий регулярному выражению с поддержкой многобайтовых символов без учета регистра


Описание

  • « mb_regex_set_options
  • mb_send_mail »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Описание

mb_scrub

(PHP 7 >= 7.2.0)

mb_scrub — Описание

Описание

mb_scrub ( string $str [, string $encoding ] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

str

encoding

Возвращаемые значения


Отправка закодированного сообщения

  • « mb_scrub
  • mb_split »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Отправка закодированного сообщения

mb_send_mail

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_send_mail — Отправка закодированного сообщения

Описание

mb_send_mail ( string $to , string $subject , string $message [, mixed $additional_headers = NULL [, string $additional_parameter = NULL ]] ) : bool

Посылает сообщение электронной почты. Заголовки и сообщения преобразуются и кодируются в соответствии с настройкой mb_language(). Это обертка для функции mail(), так что стоит ознакомиться и с описанием функции mail().

Список параметров

to

Электронные адреса получателей. Несколько адресов в аргументе to перечисляются через запятую. Значение этого аргумента не кодируется автоматически.

subject

Тема письма.

message

Текст письма.

additional_headers (необязательный)

Строка или массив, вставляемые в конец заголовка письма.

Обычно используется для добавления дополнительных заголовков (From, Cc, и Bcc). Несколько дополнительных заголовков должны разделяться с помощью CRLF (\r\n). Проверяйте этот параметр, чтобы не допустить инъекции нежелательных заголовков.

Если передан массив, то его ключи будут именами заголовков, а значения соответствующими значениями заголовка.

Замечание:

При отправке письма, письмо обязано содержать заголовок From. Его можно задать с помощью параметра additional_headers или же через опцию в php.ini.

Если этого не сделать, то это приведет к сообщение об ошибке, примерно такого содержания: Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. Заголовок From также устанавливает и заголовок Return-Path в Windows.

Замечание:

Если письмо не доставилось, попробуйте использовать только LF (\n). Некоторые Unix почтовые агенты (в первую очередь » qmail) заменяют LF на CRLF автоматически (что приводит к дублированию CR при использовании CRLF). Это единственное решение, так как это поведение не соответствует » RFC 2822.

additional_parameter

Значением additional_parameter является параметр командной строки MTA. Он полезен для задания корректного заголовка Return-Path при использовании функции sendmail.

Этот параметр экранируется функцией escapeshellcmd() автоматически, чтобы предотвратить запуск других команд. escapeshellcmd() предотвращает запуск команд, но допускает добавление дополнительных аргументов, поэтому для обеспечения безопасности нужно проверять эту опцию.

Так как escapeshellcmd() применяется автоматически, то нельзя использовать некоторые символы, допустимые в email-адресах. Нельзя использовать функцию mail() для программ, которые требуют использование таких символов.

Пользователь, под которым запущен веб-сервер, должен быть добавленным в доверенные пользователи в конфигурации sendmail, чтобы предотвратить добавление заголовка X-Warning в сообщение, если отправитель письма задан с помощью этого параметра (-f). Для пользователей sendmail, это файл /etc/mail/trusted-users.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.2.0 | Теперь в параметр additional_headers можно передавать массив.

Смотрите также

  • mail() - Отправляет электронную почту
  • mb_encode_mimeheader() - Кодирует строку для MIME-заголовка
  • mb_language() - Устанавливает/получает текущий язык


Разделение строк в многобайтных кодировках, используя регулярное выражение

  • « mb_send_mail
  • mb_strcut »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Разделение строк в многобайтных кодировках, используя регулярное выражение

mb_split

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_split — Разделение строк в многобайтных кодировках, используя регулярное выражение

Описание

mb_split ( string $pattern , string $string [, int $limit = -1 ] ) : array

Разделяет многобайтную строку string, используя регулярное выражение pattern и возвращает массив (array).

Список параметров

pattern

Шаблон регулярного выражения.

string

Разбиваемая строка (string).

limit
Если необязательный аргумент limit задан, функция разобьет строку не более, чем на limit частей.

Возвращаемые значения

Результат разбиения в виде массива (array), или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Кодировка символов, указанная функцией mb_regex_encoding(), будет по умолчанию использована для данной функции.

Смотрите также

  • mb_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_ereg() - Совпадение с регулярным выражением с поддержкой многобайтовых кодировок


Получение части строки

  • « mb_split
  • mb_strimwidth »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Получение части строки

mb_strcut

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strcut — Получение части строки

Описание

mb_strcut ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] ) : string

mb_strcut() вырезает подстроку из строки также, как mb_substr(), но оперирует байтами вместо символов. Если начало вырезаемой части попадает между байтами одного символа, функция вырежет подстроку, начиная с первого байта этого символа. Это существенное отличие от substr(), которая просто вырежет подстроку, начиная с середины символа, и нарушит тем самым последовательность байт в строке.

Список параметров

str

Исходная строка.

start

Если start не отрицательное, возвращенная строка начнется с позиции start в байтах от начала str, начальный байт имеет индекс 0. К примеру, в строке 'abcdef', байт в позиции 0 - это 'a', байт в позиции 2 - 'c' и т.д.

Если start отрицательное, возвращаемая строка начнется отсчитывая start байт с конца str.

length

Длина подстроки в байтах bytes. Если не указана, то передается NULL и вырезаются все байты до конца строки.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

mb_strcut() возвращает часть строки str, заданную аргументами start и length.

Список изменений

Версия | Описание
5.4.8 | Передача NULL в ккачестве length вернет все байты до конца строки. В более ранних версиях NULL интерпретировался как 0.

Смотрите также

  • mb_substr() - Возвращает часть строки
  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта


Получение строки, обрезанной до заданного размера

  • « mb_strcut
  • mb_stripos »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Получение строки, обрезанной до заданного размера

mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strimwidth — Получение строки, обрезанной до заданного размера

Описание

mb_strimwidth ( string $str , int $start , int $width [, string $trimmarker = "" [, string $encoding = mb_internal_encoding() ]] ) : string

Обрезает строку (string) str до длины width символов.

Список параметров

str

Исходная строка.

start

Смещение от начала строки. Количество символов от начала строки (первый символ стоит в позиции 0). Если указано отрицательное число, то отсчет будет идти с конца строки.

width

Размер вырезаемой части в символах. Отрицательные значения отсчитываются с конца.

trimmarker

Строка, которая заместит конец обрезанной строки.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Обрезанная строка. Если задан четвёртый аргумент trimmarker, то его значением замещаются последние символы строки, так чтобы суммарный размер был не более width.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных start и width.

Примеры

Пример #1 Пример использования mb_strimwidth()

<?php
echo mb_strimwidth("Hello World", 0, 10, "...");
// Выведет "Hello W..."
?>

Смотрите также

  • mb_strwidth() - Возвращает ширину строки
  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта


Регистронезависимый поиск позиции первого вхождения одной строки в другую

  • « mb_strimwidth
  • mb_stristr »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Регистронезависимый поиск позиции первого вхождения одной строки в другую

mb_stripos

(PHP 5 >= 5.2.0, PHP 7)

mb_stripos — Регистронезависимый поиск позиции первого вхождения одной строки в другую

Описание

mb_stripos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]] ) : int

mb_stripos() возвращает позицию первого вхождения строки needle в строке haystack. В отличие от mb_strpos(), mb_stripos() не чувствительна к регистру символов. Если строка needle не найдена, функция вернет FALSE.

Список параметров

haystack

Строка, в которой производится поиск вхождений строки needle

needle

Строка, поиск которой осуществляется в строке haystack

offset

Позиция в строке haystack, с которой начинается поиск вхождений. Если значение отрицательно, отсчет идет с конца строки.

encoding

Кодировка символов строк. Если не задана, будет использована внутренняя кодировка скрипта.

Возвращаемые значения

Возвращает позицию первого вхождения строки needle в строке haystack либо FALSE, если needle не найдена.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений offset.

Смотрите также

  • stripos() - Возвращает позицию первого вхождения подстроки без учета регистра
  • strpos() - Возвращает позицию первого вхождения подстроки
  • mb_strpos() - Поиск позиции первого вхождения одной строки в другую


Находит первое вхождение подстроки в строке без учета регистра

  • « mb_stripos
  • mb_strlen »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Находит первое вхождение подстроки в строке без учета регистра

mb_stristr

(PHP 5 >= 5.2.0, PHP 7)

mb_stristr — Находит первое вхождение подстроки в строке без учета регистра

Описание

mb_stristr ( string $haystack , string $needle [, bool $before_needle = FALSE [, string $encoding = mb_internal_encoding() ]] ) : string

mb_stristr() находит первое вхождение подстроки needle в haystack и возвращает часть haystack. В отличие от mb_strstr(), mb_stristr() не учитывает регистр. Если needle не найдена, возвращается FALSE.

Список параметров

haystack

Строка, в которой ищется первое вхождение строки needle

needle

Строка для поиска в haystack

before_needle

Определяет, какую часть строки haystack вернет эта функция. Если установлено TRUE, возвращается часть haystack от начала до первого вхождения needle (исключая needle). Если установлено FALSE, возвращается часть haystack от первого вхождения needle до конца (включая needle).

encoding

Название используемой кодировки символов. Если этот параметр опущен, используется внутренняя кодировка.

Возвращаемые значения

Возвращает часть строки haystack, или FALSE, если needle не найдена.

Смотрите также

  • stristr() - Регистронезависимый вариант функции strstr
  • strstr() - Находит первое вхождение подстроки
  • mb_strstr() - Находит первое вхождение подстроки в строке


Получает длину строки

  • « mb_stristr
  • mb_strpos »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Получает длину строки

mb_strlen

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strlen — Получает длину строки

Описание

mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] ) : int

Получает длину строки (string).

Список параметров

str

Строка (string), для которой измеряется длина.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Возвращает количество символов в строке (string) str, имеющих кодировку символов encoding. Многобайтовый символ вычисляется как 1.

Ошибки

Если кодировка неизвестна, генерируется ошибка уровня E_WARNING.

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • grapheme_strlen() - Get string length in grapheme units
  • iconv_strlen() - Возвращает количество символов в строке
  • strlen() - Возвращает длину строки


Поиск позиции первого вхождения одной строки в другую

  • « mb_strlen
  • mb_strrchr »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Поиск позиции первого вхождения одной строки в другую

mb_strpos

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strpos — Поиск позиции первого вхождения одной строки в другую

Описание

mb_strpos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]] ) : int

Ищет позицию первого вхождения одной строки string в другую строку string.

Выполняет безопасную с точки зрения многобайтных кодировок операцию strpos(), которая опирается на число символов в строке. Первый символ стоит на позиции 0, позиция второго 1 и так далее.

Список параметров

haystack

Строка string в которой производится поиск.

needle

Строка, поиск которой производится в строке haystack. В отличие от strpos(), числовые значения не применяются в качестве порядковых номеров символов.

offset

Смещение начала поиска. Если не задан, используется 0. Если значение отрицательно, отсчет идет с конца строки.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Возвращает число - позицию первого вхождения строки needle в строку haystack string. Если строка needle не найдена, функция вернет FALSE.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений offset.

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • strpos() - Возвращает позицию первого вхождения подстроки


Поиск последнего вхождения одной строки в другую

  • « mb_strpos
  • mb_strrichr »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Поиск последнего вхождения одной строки в другую

mb_strrchr

(PHP 5 >= 5.2.0, PHP 7)

mb_strrchr — Поиск последнего вхождения одной строки в другую

Описание

mb_strrchr ( string $haystack , string $needle [, bool $part = FALSE [, string $encoding = mb_internal_encoding() ]] ) : string

mb_strrchr() ищет последнее вхождение строки needle в строке haystack и возвращает часть строки haystack. Если needle не найдена, функция возвращает FALSE.

Список параметров

haystack

Строка, в которой производится поиск вхождения needle

needle

Строка, поиск которой производится в строке haystack

part

Определяет, какую часть строки haystack вернуть в качестве результата. Если передается TRUE, функция вернет часть строки haystack с начала до позиции последнего вхождения needle. Если передается FALSE, будет возвращена часть haystack от позиции последнего вхождения needle до конца строки.

encoding

Кодировка строк. Если не задана, будет использована внутренняя кодировка скрипта.

Возвращаемые значения

Возвращает часть строки haystack либо FALSE, если needle не найдена.

Смотрите также

  • strrchr() - Находит последнее вхождение символа в строке
  • mb_strstr() - Находит первое вхождение подстроки в строке
  • mb_strrichr() - Поиск последнего вхождения одной строки в другую, нечувствительный к регистру


Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

  • « mb_strrchr
  • mb_strripos »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

mb_strrichr

(PHP 5 >= 5.2.0, PHP 7)

mb_strrichr — Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

Описание

mb_strrichr ( string $haystack , string $needle [, bool $part = FALSE [, string $encoding = mb_internal_encoding() ]] ) : string

mb_strrichr() ищет последнее вхождение строки needle в строке haystack и возвращает часть строки haystack. В отличие от mb_strrchr(), mb_strrichr() не чувствительна к регистру символов. Если needle не найдена, функция возвращает FALSE.

Список параметров

haystack

Строка, в которой производится поиск вхождения needle

needle

Строка, поиск которой производится в строке haystack

part

Определяет, какую часть строки haystack вернуть в качестве результата. Если передается TRUE, функция вернет часть строки haystack с начала до позиции последнего вхождения needle. Если передается FALSE, будет возвращена часть haystack от позиции последнего вхождения needle до конца строки.

encoding

Кодировка строк. Если не задана, будет использована внутренняя кодировка скрипта.

Возвращаемые значения

Возвращает часть строки haystack либо FALSE, если needle не найдена.

Смотрите также

  • mb_stristr() - Находит первое вхождение подстроки в строке без учета регистра
  • mb_strrchr() - Поиск последнего вхождения одной строки в другую


Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

  • « mb_strrichr
  • mb_strrpos »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

mb_strripos

(PHP 5 >= 5.2.0, PHP 7)

mb_strripos — Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

Описание

mb_strripos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]] ) : int

mb_strripos() выполняет безопасную с точки зрения многобайтных кодировок операцию strripos(), основываясь на количестве символов. Позиция строки needle расcчитывается с начала строки haystack. Позиция первого символа 0. Второго символа 1. В отличие от mb_strrpos(), mb_strripos() не чувствительна к регистру.

Список параметров

haystack

Строка, в которой производится поиск вхождения needle

needle

Строка, поиск которой производится в строке haystack

offset

Позиция в строке haystack, с которой начинается поиск вхождений

encoding

Кодировка символов строк. Если на задана, будет использована внутренняя кодировка скрипта.

Возвращаемые значения

Возвращает позицию последнего вхождения строки needle в строке haystack либо FALSE, если needle не найдена.

Смотрите также

  • strripos() - Возвращает позицию последнего вхождения подстроки без учета регистра
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • mb_strrpos() - Поиск позиции последнего вхождения одной строки в другую


Поиск позиции последнего вхождения одной строки в другую

  • « mb_strripos
  • mb_strstr »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Поиск позиции последнего вхождения одной строки в другую

mb_strrpos

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strrpos — Поиск позиции последнего вхождения одной строки в другую

Описание

mb_strrpos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]] ) : int

Выполняет безопасную с точки зрения многобайтных кодировок операцию strrpos() , основываясь на количестве символов. Позиция строки needle расcчитывается с начала строки haystack. Позиция первого символа 0. Второго символа 1.

Список параметров

haystack

Строка (string), в которой производится поиск вхождения needle.

needle

Строка (string), поиск которой производится в строке haystack.

offset
Если аргумент задан, поиск вхождения будет начинаться с позиции offset в строке (string). Если передано отрицательное значение, операция поиска остановится на позиции строки (string) offset, отсчитываемой с конца строки.
encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Возвращает позицию последнего вхождения строки needle в строке (string) haystack либо FALSE, если needle не найдена.

Список изменений

Версия | Описание
5.2.0 | Добавлен необязательный аргумент offset.

Примечания

Замечание: Аргумент encoding перемещен с третьего места в списке на четвертое в PHP 5.2.0. Для обратной совместимости аргумент encoding может быть задан как третий аргумент, однако эта возможность считается устаревшей и вскоре будет удалена.

Смотрите также

  • mb_strpos() - Поиск позиции первого вхождения одной строки в другую
  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке


Находит первое вхождение подстроки в строке

  • « mb_strrpos
  • mb_strtolower »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Находит первое вхождение подстроки в строке

mb_strstr

(PHP 5 >= 5.2.0, PHP 7)

mb_strstr — Находит первое вхождение подстроки в строке

Описание

mb_strstr ( string $haystack , string $needle [, bool $before_needle = FALSE [, string $encoding = mb_internal_encoding() ]] ) : string

mb_strstr() находит первое вхождение подстроки needle в строке haystack и возвращает часть haystack. Если needle не найдена, возвращается FALSE.

Список параметров

haystack

Строка, в которой ищется первое вхождение строки needle

needle

Строка для поиска в haystack

before_needle

Определяет, какую часть строки haystack вернет эта функция. Если установлено TRUE, возвращается часть haystack от начала до первого вхождения needle (исключая needle). Если установлено FALSE, возвращается часть haystack от первого вхождения needle до конца (включая needle).

encoding

Название используемой кодировки символов. Если этот параметр опущен, используется внутренняя кодировка.

Возвращаемые значения

Возвращает часть строки haystack, или FALSE, если needle не найдена.

Смотрите также

  • stristr() - Регистронезависимый вариант функции strstr
  • strstr() - Находит первое вхождение подстроки
  • mb_stristr() - Находит первое вхождение подстроки в строке без учета регистра


Приведение строки к нижнему регистру

  • « mb_strstr
  • mb_strtoupper »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Приведение строки к нижнему регистру

mb_strtolower

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mb_strtolower — Приведение строки к нижнему регистру

Описание

mb_strtolower ( string $str [, string $encoding = mb_internal_encoding() ] ) : string

Возвращает строку str, буквенные символы в которой приведены к нижнему регистру.

Список параметров

str

Исходная строка (string).

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

str, буквы в которой приведены к нижнему регистру.

Юникод

За дополнительной информацией о свойствах Юникода обращайтесь в » http://www.unicode.org/unicode/reports/tr21/.

В отличие от strtolower(), то что символ является буквой определяется на основании свойств символа Юникода. Таким образом на поведение функции не влияют региональные настройки системы, а также функция может преобразовывать символы, имеющие буквенные особенности, такие как А-умляут (A).

Примеры

Пример #1 Пример использования mb_strtolower()

<?php
$str = "У Мэри Был Маленький Ягненок и Она Его Очень ЛЮБИЛА";
$str = mb_strtolower($str);
echo $str; // Выведет у мэри был маленький ягненок и она его очень любила
?>

Пример #2 Пример использования mb_strtolower() с нелатинскими буквами

<?php
$str = "??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????";
$str = mb_strtolower($str, 'UTF-8');
echo $str; // Выведет ??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????
?>

Смотрите также

  • mb_strtoupper() - Приведение строки к верхнему регистру
  • mb_convert_case() - Производит смену регистра символов в строке
  • strtolower() - Преобразует строку в нижний регистр


Приведение строки к верхнему регистру

  • « mb_strtolower
  • mb_strwidth »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Приведение строки к верхнему регистру

mb_strtoupper

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mb_strtoupper — Приведение строки к верхнему регистру

Описание

mb_strtoupper ( string $str [, string $encoding = mb_internal_encoding() ] ) : string

Возвращает строку str, буквенные символы в которой приведены к верхнему регистру.

Список параметров

str

Исходная строка (string).

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

str, буквы в которой приведены к верхнему регистру.

Юникод

За дополнительной информацией о свойствах Юникода обращайтесь в » http://www.unicode.org/unicode/reports/tr21/.

В отличие от strtoupper(), то что символ является буквой определяется на основании свойств символа Юникода. Таким образом на поведение функции не влияют региональные настройки системы, а также функция может преобразовывать символы, имеющие буквенные особенности, такие как а-умляут (a).

Примеры

Пример #1 Пример использования mb_strtoupper()

<?php
$str = "У Мэри Был Маленький Ягненок и Она Его Очень ЛЮБИЛА";
$str = mb_strtoupper($str);
echo $str; // Выведет У МЭРИ БЫЛ МАЛЕНЬКИЙ ЯГНЕНОК И ОНА ЕГО ОЧЕНЬ ЛЮБИЛА
?>

Пример #2 Пример использования mb_strtoupper() с нелатинскими буквами

<?php
$str = "??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????";
$str = mb_strtoupper($str, 'UTF-8');
echo $str; // Выведет ??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????
?>

Смотрите также

  • mb_strtolower() - Приведение строки к нижнему регистру
  • mb_convert_case() - Производит смену регистра символов в строке
  • strtoupper() - Преобразует строку в верхний регистр


Возвращает ширину строки

  • « mb_strtoupper
  • mb_substitute_character »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Возвращает ширину строки

mb_strwidth

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strwidth — Возвращает ширину строки

Описание

mb_strwidth ( string $str [, string $encoding = mb_internal_encoding() ] ) : int

Возвращает ширину строки (string) str, где символы полуширины считаются 1, а символы полной ширины считаются 2.

Символы полной ширины: U+1100-U+115F, U+11A3-U+11A7, U+11FA-U+11FF, U+2329-U+232A, U+2E80-U+2E99, U+2E9B-U+2EF3, U+2F00-U+2FD5, U+2FF0-U+2FFB, U+3000-U+303E, U+3041-U+3096, U+3099-U+30FF, U+3105-U+312D, U+3131-U+318E, U+3190-U+31BA, U+31C0-U+31E3, U+31F0-U+321E, U+3220-U+3247, U+3250-U+32FE, U+3300-U+4DBF, U+4E00-U+A48C, U+A490-U+A4C6, U+A960-U+A97C, U+AC00-U+D7A3, U+D7B0-U+D7C6, U+D7CB-U+D7FB, U+F900-U+FAFF, U+FE10-U+FE19, U+FE30-U+FE52, U+FE54-U+FE66, U+FE68-U+FE6B, U+FF01-U+FF60, U+FFE0-U+FFE6, U+1B000-U+1B001, U+1F200-U+1F202, U+1F210-U+1F23A, U+1F240-U+1F248, U+1F250-U+1F251, U+20000-U+2FFFD, U+30000-U+3FFFD. Все остальные символы относятся к символам полуширины.

Список параметров

str

Исходная строка (string).

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Ширина строки (string) str.

Смотрите также

  • mb_strimwidth() - Получение строки, обрезанной до заданного размера
  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта


Установить/получить символ замены

  • « mb_strwidth
  • mb_substr_count »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Установить/получить символ замены

mb_substitute_character

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_substitute_character — Установить/получить символ замены

Описание

mb_substitute_character ([ mixed $substchar = mb_substitute_character() ] ) : mixed

Задает замещающий символ на случай, когда кодировка входных данных задана неверно или код символа не существует в кодировке выходных данных. Недопустимые символы могут быть заменены на NULL (нет вывода), строку (string) или числовое значение (integer) (код символа Юникода).

Эта настройка влияет на поведение следующих функций:
mb_convert_encoding(),
mb_convert_variables(),
mb_output_handler(),
и mb_send_mail().

Список параметров

substchar

Задает значение Юникода в виде числа (integer) или одной из следующих строк string:

  • "none" : нет вывода
  • "long" : код конечного (в выходной кодировке) символа (Пример: U+3000, JIS+7E7E)
  • "entity" : сущность конечного (в выходной кодировке) символа (Пример: &#x200;)

Возвращаемые значения

Если аргумент substchar задан, функция вернет TRUE в случае успеха, FALSE в противном случае. Если substchar не задан, будет возвращена текущая настройка.

Примеры

Пример #1 Пример использования mb_substitute_character()

<?php
/* Установка замещающего символа Unicode U+3013 (GETA MARK) */
mb_substitute_character(0x3013);

/* Задаем шестнадцатеричный формат */
mb_substitute_character("long");

/* Отображение текущей настройки */
echo mb_substitute_character();
?>


Возвращает количество вхождений подстроки

  • « mb_substitute_character
  • mb_substr »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Возвращает количество вхождений подстроки

mb_substr_count

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mb_substr_count — Возвращает количество вхождений подстроки

Описание

mb_substr_count ( string $haystack , string $needle [, string $encoding = mb_internal_encoding() ] ) : int

Подсчитывает, сколько раз подстрока needle встречается в строке haystack.

Список параметров

haystack

Строка (string) для проверки

needle

Строка (string) для поиска

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Количество вхождений подстроки needle в строку haystack.

Примеры

Пример #1 Пример использования mb_substr_count()

<?php
echo mb_substr_count("Это просто проверка", "то"); // выведет на экран 2
?>

Смотрите также

  • mb_strpos() - Поиск позиции первого вхождения одной строки в другую
  • mb_substr() - Возвращает часть строки
  • substr_count() - Возвращает число вхождений подстроки


Возвращает часть строки

  • « mb_substr_count
  • Pspell »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Возвращает часть строки

mb_substr

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_substr — Возвращает часть строки

Описание

mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] ) : string

Корректно выполняет substr() для многобайтовых кодировок, учитывая количество символов. Позиция отсчитывается от начала str. Позиция первого символа - 0, второго - 1 и т.д.

Список параметров

str

Исходная строка для получения подстроки.

start

Если start неотрицательный, возвращенная строка начнется с позиции start от начала строки str, начальный символ имеет индекс 0. К примеру, в строке 'abcdef', символ в позиции 0 - это 'a', символ в позиции 2 - 'c' и т.д.

Если start отрицательный, возвращаемая строка начнется отсчитывая start символов с конца str.

length

Максимальное количество символов возвращаемой из str подстроки. Если не указан или равен NULL - извлекаются все символы до конца строки.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

mb_substr() возвращает часть строки str, заданную параметрами start и length.

Список изменений

Версия | Описание
5.4.8 | Передача NULL в качестве length вернет все символы до конца строки. В более ранних версиях NULL интерпретировался как 0.

Смотрите также

  • mb_strcut() - Получение части строки
  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта


Pspell

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Pspell
    • 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 — Игнорирует слова длиной менее N символов
    • pspell_config_mode — Изменяет режим количества возвращаемых вариантов исправления
    • pspell_config_personal — Устанавливает файл, содержащий персональный список слов
    • pspell_config_repl — Устанавливает файл, содержащий замещающие пары
    • pspell_config_runtogether — Рассматривает объединённые слова как правильные сложные слова
    • pspell_config_save_repl — Определяет, сохранять ли список замещающих пар вместе со списком слов
    • pspell_new_config — Загружает новый словарь с установками на основе заданной конфигурации
    • pspell_new_personal — Загружает новый словарь с персональным списком слов
    • pspell_new — Загружает новый словарь
    • pspell_save_wordlist — Сохраняет персональный список слов в файле
    • pspell_store_replacement — Сохраняет замещающую пару для слова
    • pspell_suggest — Предлагает варианты исправления слова


Введение

Функции позволяют проверять правописание слова и предлагают варианты исправления.


Требования

Для того, чтобы скомпилировать PHP с поддержкой apsell, вам нужна библиотека aspell, доступная по адресу » http://aspell.net/.


Установка

Если у вас есть требуемые библиотеки, нужно добавить опцию --with-pspell[=dir] при компиляции PHP.

Замечание: Примечание для пользователей Win32

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: aspell-15.dll из директории bin каталога установки aspell.

Для поддержки Win32 требуется как минимум версия 0.50.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

PSPELL_FAST (integer)
PSPELL_NORMAL (integer)
PSPELL_BAD_SPELLERS (integer)
PSPELL_RUN_TOGETHER (integer)


Функции Pspell

Содержание

  • 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 — Игнорирует слова длиной менее N символов
  • pspell_config_mode — Изменяет режим количества возвращаемых вариантов исправления
  • pspell_config_personal — Устанавливает файл, содержащий персональный список слов
  • pspell_config_repl — Устанавливает файл, содержащий замещающие пары
  • pspell_config_runtogether — Рассматривает объединённые слова как правильные сложные слова
  • pspell_config_save_repl — Определяет, сохранять ли список замещающих пар вместе со списком слов
  • pspell_new_config — Загружает новый словарь с установками на основе заданной конфигурации
  • pspell_new_personal — Загружает новый словарь с персональным списком слов
  • pspell_new — Загружает новый словарь
  • pspell_save_wordlist — Сохраняет персональный список слов в файле
  • pspell_store_replacement — Сохраняет замещающую пару для слова
  • pspell_suggest — Предлагает варианты исправления слова


Добавляет слово в персональный список слов

  • « Функции Pspell
  • pspell_add_to_session »
  • PHP Manual
  • Функции Pspell
  • Добавляет слово в персональный список слов

pspell_add_to_personal

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_add_to_personal — Добавляет слово в персональный список слов

Описание

pspell_add_to_personal ( int $dictionary_link , string $word ) : bool

pspell_add_to_personal() добавляет слово в персональный список слов. Если вы использовали pspell_new_config() вместе с pspell_config_personal() для открытия словаря, вы можете сохранить список слов позднее с помощью pspell_save_wordlist().

Список параметров

dictionary_link

word

Добавляемое слово.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #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 .11.2 и aspell .32.5 или выше.


Добавляет слово в список слов в текущей сессии

  • « pspell_add_to_personal
  • pspell_check »
  • PHP Manual
  • Функции Pspell
  • Добавляет слово в список слов в текущей сессии

pspell_add_to_session

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_add_to_session — Добавляет слово в список слов в текущей сессии

Описание

pspell_add_to_session ( int $dictionary_link , string $word ) : bool

pspell_add_to_session() добавляет слово в список слов, ассоциированный с текущей сессией. Эта функция очень похожа на функцию pspell_add_to_personal()

Список параметров

dictionary_link

word

Добавляемое слово.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Проверяет слово

  • « pspell_add_to_session
  • pspell_clear_session »
  • PHP Manual
  • Функции Pspell
  • Проверяет слово

pspell_check

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_check — Проверяет слово

Описание

pspell_check ( int $dictionary_link , string $word ) : bool

pspell_check() проверяет орфографию слова.

Список параметров

dictionary_link

word

Проверяемое слово.

Возвращаемые значения

Возвращает TRUE, если орфография верна, в противном случае возвращает FALSE.

Примеры

Пример #1 Пример использования pspell_check()

<?php
$pspell_link = pspell_new("en");

if (pspell_check($pspell_link, "testt")) {
    echo "Это верное написание";
} else {
    echo "К сожалению, неправильное написание";
}
?>


Очищает текущую сессию

  • « pspell_check
  • pspell_config_create »
  • PHP Manual
  • Функции Pspell
  • Очищает текущую сессию

pspell_clear_session

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_clear_session — Очищает текущую сессию

Описание

pspell_clear_session ( int $dictionary_link ) : bool

pspell_clear_session() очищает текущую сессию. Текущий список слов очищается, и, например, если попытаться сохранить его с помощью pspell_save_wordlist(), ничего не произойдет.

Список параметров

dictionary_link

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #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" не будет сохранено
?>


Создает конфигурацию, используемую для открытия словаря

  • « pspell_clear_session
  • pspell_config_data_dir »
  • PHP Manual
  • Функции Pspell
  • Создает конфигурацию, используемую для открытия словаря

pspell_config_create

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_create — Создает конфигурацию, используемую для открытия словаря

Описание

pspell_config_create ( string $language [, string $spelling [, string $jargon [, string $encoding ]]] ) : int

Создает конфигурацию, используемую для открытия словаря.

pspell_config_create() обладает синтаксисом, очень похожим
на синтаксис pspell_new(). Фактически, использование
pspell_config_create() сразу после
pspell_new_config() даст точно такой же результат.
Однако, после создания новой конфигурации, также можно использовать
функции pspell_config_*() до вызова
pspell_new_config() для получения преимуществ от некоторой
дополнительной функциональности.

Более подробную информацию и примеры можно найти в руководстве по pspell на сайте:» http://aspell.net/.

Список параметров

language

Параметр language - это код языка, который состоит из двухбуквенного кода языка по стандарту ISO 639 и необязательного двубуквенного кода страны по стандарту ISO 3166 после тире или подчеркивания.

spelling

Параметр spelling определяет вариант проверки орфографии для языков с более чем одним вариантом правописания, таких как английский. Известные значения: 'american', 'british', и 'canadian'.

jargon

Параметр jargon содержит дополнительную информацию для различения двух различных списков слов, имеющих одинаковые параметры language и spelling.

encoding

Параметр encoding - это кодировка, в которой, как ожидается, даны слова. Допустимые значения: 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. Это параметр ещё не проверен достаточно хорошо, поэтому будьте осторожны при его использовании.

Возвращаемые значения

Возвращает идентификатор конфигурации pspell, или FALSE в случае возникновения ошибки.

Примеры

Пример #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_config_create
  • pspell_config_dict_dir »
  • PHP Manual
  • Функции Pspell
  • Расположение файлов с языковыми данными

pspell_config_data_dir

(PHP 5, PHP 7)

pspell_config_data_dir — Расположение файлов с языковыми данными

Описание

pspell_config_data_dir ( int $conf , string $directory ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Расположение основного списка слов

  • « pspell_config_data_dir
  • pspell_config_ignore »
  • PHP Manual
  • Функции Pspell
  • Расположение основного списка слов

pspell_config_dict_dir

(PHP 5, PHP 7)

pspell_config_dict_dir — Расположение основного списка слов

Описание

pspell_config_dict_dir ( int $conf , string $directory ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Игнорирует слова длиной менее N символов

  • « pspell_config_dict_dir
  • pspell_config_mode »
  • PHP Manual
  • Функции Pspell
  • Игнорирует слова длиной менее N символов

pspell_config_ignore

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_ignore — Игнорирует слова длиной менее N символов

Описание

pspell_config_ignore ( int $dictionary_link , int $n ) : bool

pspell_config_ignore() должна быть использована для конфигурации до вызова pspell_new_config(). Эта функция позволяет пропускать короткие слова при проверке орфографии.

Список параметров

dictionary_link

n

Слова длиной менее n символов будут пропущены.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #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");    //Сообщение об ошибке не будет сгенерировано
?>


Изменяет режим количества возвращаемых вариантов исправления

  • « pspell_config_ignore
  • pspell_config_personal »
  • PHP Manual
  • Функции Pspell
  • Изменяет режим количества возвращаемых вариантов исправления

pspell_config_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_mode — Изменяет режим количества возвращаемых вариантов исправления

Описание

pspell_config_mode ( int $dictionary_link , int $mode ) : bool

pspell_config_mode() должна быть использована для конфигурации до вызова pspell_new_config(). Эта функция определяет, сколько вариантов исправления будет возвращать функция pspell_suggest().

Список параметров

dictionary_link

mode

Параметр mode - это режим, в котором будет работать проверка орфографии. Доступно несколько режимов:

  • PSPELL_FAST - Быстрый режим (наименьшее число вариантов исправления)
  • PSPELL_NORMAL - Нормальный режим (больше вариантов исправления)
  • PSPELL_BAD_SPELLERS - Медленный режим (много вариантов исправления)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #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_mode
  • pspell_config_repl »
  • PHP Manual
  • Функции Pspell
  • Устанавливает файл, содержащий персональный список слов

pspell_config_personal

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_personal — Устанавливает файл, содержащий персональный список слов

Описание

pspell_config_personal ( int $dictionary_link , string $file ) : bool

Устанавливает файл, содержащий персональный список слов. Персональный список слов будет загружен и использован в дополнение к стандартному после того, как вы вызовете pspell_new_config(). Это тот же самый файл, в который функция pspell_save_wordlist() сохранит персональный список слов.

pspell_config_personal() должна быть использована для конфигурации до вызова pspell_new_config().

Список параметров

dictionary_link

file

Персональный список слов. Если файл не существует, он будет создан. Файл должен быть доступен для записи любому, кто запускает PHP (например, nobody).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #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 .11.2 и aspell .32.5 или выше.


Устанавливает файл, содержащий замещающие пары

  • « pspell_config_personal
  • pspell_config_runtogether »
  • PHP Manual
  • Функции Pspell
  • Устанавливает файл, содержащий замещающие пары

pspell_config_repl

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_repl — Устанавливает файл, содержащий замещающие пары

Описание

pspell_config_repl ( int $dictionary_link , string $file ) : bool

Устанавливает файл, содержащий замещающие пары.

Замещающие пары повышают качество проверки орфографии. Когда слово написано с ошибками, а правильный вариант не найден в списке, pspell_store_replacement() может быть использована для того, чтобы сохранить замещающую пару, а pspell_save_wordlist() - чтобы сохранить список слов вместе с замещающими парами.

pspell_config_repl() должна быть использована для конфигурации до вызова pspell_new_config().

Список параметров

dictionary_link

file

Файл должен быть доступен для записи любому, кто запускает PHP (например, nobody).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #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 .11.2 и aspell .32.5 или выше.


Рассматривает объединённые слова как правильные сложные слова

  • « pspell_config_repl
  • pspell_config_save_repl »
  • PHP Manual
  • Функции Pspell
  • Рассматривает объединённые слова как правильные сложные слова

pspell_config_runtogether

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_runtogether — Рассматривает объединённые слова как правильные сложные слова

Описание

pspell_config_runtogether ( int $dictionary_link , bool $flag ) : bool

Функция определяет, будут ли объединённые слова рассматриваться как правильные сложные слова. Так, "thecat" будет считаться правильным сложным словом, хотя между артиклем и словом должен быть пробел. Изменение этой установки влияет только на результаты, возвращаемые функцией pspell_check(); pspell_suggest() будет продолжать выдавать варианты исправления.

pspell_config_runtogether() должна быть использована для конфигурации до вызова pspell_new_config().

Список параметров

dictionary_link

flag

TRUE, если объединенные слова должны рассматриваться как правильные сложные слова, FALSE в противном случае.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #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_runtogether
  • pspell_new_config »
  • PHP Manual
  • Функции Pspell
  • Определяет, сохранять ли список замещающих пар вместе со списком слов

pspell_config_save_repl

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_save_repl — Определяет, сохранять ли список замещающих пар вместе со списком слов

Описание

pspell_config_save_repl ( int $dictionary_link , bool $flag ) : bool

pspell_config_save_repl() определяет, будет ли pspell_save_wordlist() сохранять замещающие пары вместе со списком слов. Обычно нет необходимости использовать эту функцию, поскольку, если используется pspell_config_repl(), замещающие пары будут сохранены pspell_save_wordlist() в любом случае, и, если она не используется, замещающие пары не будут сохраняться.

pspell_config_save_repl() должна быть использована для конфигурации до вызова pspell_new_config().

Список параметров

dictionary_link

flag

TRUE, если замещающие пары должны сохраняться, FALSE в противном случае.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Функция не будет работать, если у вас нет pspell .11.2 и aspell .32.5 или выше.


Загружает новый словарь с установками на основе заданной конфигурации

  • « pspell_config_save_repl
  • pspell_new_personal »
  • PHP Manual
  • Функции Pspell
  • Загружает новый словарь с установками на основе заданной конфигурации

pspell_new_config

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_new_config — Загружает новый словарь с установками на основе заданной конфигурации

Описание

pspell_new_config ( int $config ) : int

pspell_new_config() открывает новый словарь с параметрами, заданными в конфигурации, созданной с помощью pspell_config_create() и модифицированной с помощью функций pspell_config_*(). Этот метод дает наибольшую гибкость и имеет все функциональные возможности, предоставляемые pspell_new() и pspell_new_personal().

Список параметров

config

Параметр config - это параметр возвращённый функцией pspell_config_create() после того, как конфигурация была создана.

Возвращаемые значения

В случае успешного выполнения возвращает ссылку на словарь, или FALSE в случае возникновения ошибки.

Примеры

Пример #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_new_config
  • pspell_new »
  • PHP Manual
  • Функции Pspell
  • Загружает новый словарь с персональным списком слов

pspell_new_personal

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_new_personal — Загружает новый словарь с персональным списком слов

Описание

pspell_new_personal ( string $personal , string $language [, string $spelling [, string $jargon [, string $encoding [, int $mode = 0 ]]]] ) : int

pspell_new_personal() открывает новый словарь с персональным списком слов. Список слов может быть модифицирован и сохранён функцией pspell_save_wordlist(), если потребуется. Однако замещающие пары не сохраняются. Для сохранения замещающих пар вы должны создать конфигурацию, используя pspell_config_create(), установить файл персонального списка слов функцией pspell_config_personal(), установить файл для замещающих пар функцией pspell_config_repl(), и открыть новый словарь с помощью pspell_new_config().

Более подробную информацию и примеры можно найти в руководстве по pspell на сайте:» http://aspell.net/.

Список параметров

personal

Файл, в который будут сохранены слова, добавленные в персональный список. Это должен быть абсолютный путь к файлу, начинающийся с '/', так как иначе он будет относительным к $HOME, которым является "/root" для большинства систем, что, вероятно, не то, что вам нужно.

language

Код языка, который состоит из двухбуквенного кода языка по стандарту ISO 639 и необязательного двубуквенного кода страны по стандарту ISO 3166 после тире или подчеркивания.

spelling

Определяет вариант проверки орфографии для языков с более чем одним вариантом правописания, таких как английский. Известные значения: 'american', 'british', и 'canadian'.

jargon

Дополнительная информацию для различения двух различных списков слов, имеющих одинаковые параметры language и spelling.

encoding

Кодировка, в которой, как ожидается, даны слова. Допустимые значения: utf-8, iso8859-*, koi8-r, viscii, cp1252, machine unsigned 16, machine unsigned 32.

mode

Режим, в котором будет работать проверка орфографии. Доступно несколько режимов:

  • PSPELL_FAST - Быстрый режим (наименьшее число вариантов исправления)
  • PSPELL_NORMAL - Нормальный режим (больше вариантов исправления)
  • PSPELL_BAD_SPELLERS - Медленный режим (много вариантов исправления)
  • PSPELL_RUN_TOGETHER - рассматривает объединённые слова как правильные сложные слова. То есть, "thecat" будет считаться правильным сложным словом, хотя между артиклем и словом должен быть пробел. Изменение этой установки влияет только на результаты, возвращаемые функцией pspell_check(); pspell_suggest() будет продолжать выдавать варианты исправления.
Mode - это битовая маска, сконструированная из различных перечисленных выше констант. Однако, PSPELL_FAST, PSPELL_NORMAL и PSPELL_BAD_SPELLERS являются взаимоисключающими, так что вы должны выбрать только одну из них.

Возвращаемые значения

Возвращает ссылку на словарь для использования в других функциях pspell.

Примеры

Пример #1 pspell_new_personal()

<?php
$pspell_link = pspell_new_personal ("/var/dictionaries/custom.pws",
        "en", "", "", "", PSPELL_FAST|PSPELL_RUN_TOGETHER);
?>


Загружает новый словарь

  • « pspell_new_personal
  • pspell_save_wordlist »
  • PHP Manual
  • Функции Pspell
  • Загружает новый словарь

pspell_new

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_new — Загружает новый словарь

Описание

pspell_new ( string $language [, string $spelling [, string $jargon [, string $encoding [, int $mode = 0 ]]]] ) : int

pspell_new() открывает новый словарь и возвращает ссылку на словарь для использования в других функциях pspell.

Более подробную информацию и примеры можно найти в руководстве по pspell на сайте:» http://aspell.net/.

Список параметров

language

Параметр language - это код языка, который состоит из двухбуквенного кода языка по стандарту ISO 639 и необязательного двубуквенного кода страны по стандарту ISO 3166 после тире или подчеркивания.

spelling

Параметр spelling определяет вариант проверки орфографии для языков с более чем одним вариантом правописания, таких как английский. Известные значения: 'american', 'british', и 'canadian'.

jargon

Параметр jargon содержит дополнительную информацию для различения двух различных списков слов, имеющих одинаковые параметры language и spelling.

encoding

Параметр encoding это кодировка, в которой, как ожидается, даны слова. Допустимые значения: 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. Этот параметр ещё не проверен достаточно хорошо, поэтому будьте осторожны при его использовании.

mode

Параметр mode - это режим, в котором будет работать проверка орфографии. Доступно несколько режимов:

  • PSPELL_FAST - Быстрый режим (наименьшее число вариантов исправления)
  • PSPELL_NORMAL - Нормальный режим (больше вариантов исправления)
  • PSPELL_BAD_SPELLERS - Медленный режим (много вариантов исправления)
  • PSPELL_RUN_TOGETHER - рассматривает объединённые слова как правильные сложные слова. То есть, "thecat" будет считаться правильным сложным словом, хотя между артиклем и словом должен быть пробел. Изменение этой установки влияет только на результаты, возвращаемые функцией pspell_check(); pspell_suggest() будет продолжать выдавать варианты исправления.
Mode - это битовая маска, сконструированная из различных перечисленных выше констант. Однако, PSPELL_FAST, PSPELL_NORMAL и PSPELL_BAD_SPELLERS являются взаимноисключающими, так что вы должны выбрать только одну из них.

Возвращаемые значения

В случае успешного выполнения возвращает ссылку на словарь или FALSE в случае возникновения ошибки.

Примеры

Пример #1 pspell_new()

<?php
$pspell_link = pspell_new("en", "", "", "",
                           (PSPELL_FAST|PSPELL_RUN_TOGETHER));
?>


Сохраняет персональный список слов в файле

  • « pspell_new
  • pspell_store_replacement »
  • PHP Manual
  • Функции Pspell
  • Сохраняет персональный список слов в файле

pspell_save_wordlist

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_save_wordlist — Сохраняет персональный список слов в файле

Описание

pspell_save_wordlist ( int $dictionary_link ) : bool

pspell_save_wordlist() сохраняет персональный список слов текущей сессии. Расположение файлов для сохранения указывается с помощью pspell_config_personal() и (необязательно) pspell_config_repl().

Список параметров

dictionary_link

Ссылка на словарь, открытый с помощью pspell_new_personal().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #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 .11.2 и aspell .32.5 или выше.


Сохраняет замещающую пару для слова

  • « pspell_save_wordlist
  • pspell_suggest »
  • PHP Manual
  • Функции Pspell
  • Сохраняет замещающую пару для слова

pspell_store_replacement

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_store_replacement — Сохраняет замещающую пару для слова

Описание

pspell_store_replacement ( int $dictionary_link , string $misspelled , string $correct ) : bool

pspell_store_replacement() сохраняет замещающую пару для слова, так что замена позднее может быть возвращена функцией pspell_suggest(). Чтобы использовать преимущества этой функции, следует открыть словарь с помощью pspell_new_personal(). Чтобы навсегда сохранить замещающую пару, необходимо использовать pspell_config_personal() и pspell_config_repl() для того, чтобы указать путь, куда сохранить пользовательские списки слов, а затем воспользоваться pspell_save_wordlist() для записи изменений на диск.

Список параметров

dictionary_link

Ссылка на словарь, открытый с помощью pspell_new_personal()

misspelled

Слово с ошибкой.

correct

Исправленное написание для слова с ошибкой (misspelled).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #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 .11.2 и aspell .32.5 или выше.


Предлагает варианты исправления слова

  • « pspell_store_replacement
  • Recode »
  • PHP Manual
  • Функции Pspell
  • Предлагает варианты исправления слова

pspell_suggest

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_suggest — Предлагает варианты исправления слова

Описание

pspell_suggest ( int $dictionary_link , string $word ) : array

pspell_suggest() возвращает массив возможных вариантов исправления заданного слова.

Список параметров

dictionary_link

word

Проверяемое слово.

Возвращаемые значения

Возвращает массив возможных вариантов исправления.

Примеры

Пример #1 Пример использования pspell_suggest()

<?php
$pspell_link = pspell_new("en");

if (!pspell_check($pspell_link, "testt")) {
    $suggestions = pspell_suggest($pspell_link, "testt");

    foreach ($suggestions as $suggestion) {
        echo "Возможный вариант исправления: $suggestion<br />";
    }
}
?>


GNU Recode

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Recode
    • recode_file — Перекодирует из одного файла в другой в соответствии с заданными параметрами
    • recode_string — Перекодирует строку в соответствии с заданными параметрами
    • recode — Псевдоним recode_string


Введение

Модуль предоставляет интерфейс для библиотеки GNU Recode. Данная библиотека конвертирует файлы из одной кодировки в другую. Если конвертация не может быть произведена абсолютно точно, ошибочные символы могут быть пропущены или заменены наиболее подходящими. Библиотека распознает и может оперировать порядка 150 кодировками. Поддерживается большинство кодировок из » RFC 1345.

Замечание: Модуль отделен и перемещен в » PECL, начиная с PHP 7.4.0. Вместо этого попробуйте использовать модули Многобайтовые строки или iconv.

Замечание: Для Windows-платформ это расширение недоступно.


Требования

У вас должен быть установлен GNU Recode 3.5 или выше. Данный пакет вы можете загрузить с сайта » http://directory.fsf.org/All_GNU_Packages/recode.html.

Внимание

Библиотека Recode версии 3.6 добавляет длинные символы в конце сконвертированных строк при определенных обстоятельствах. Собственно из-за этого более безопасно использовать Recode v3.5, либо одну из альтернатив, таких как модули iconv или mbstring.


Установка

Для использования модуля необходимо скомпилировать PHP с опцией --with-recode[=DIR] .

Внимание

При загрузке модуля может произойти аварийное завершение PHP во время запуска, если recode загружается после mysql или imap. Загрузка модуля перед ними решает проблему. Это происходит из-за того, что и recode и imap используют C-библиотеки со своими собственными функциями hash_lookup(), а в случае mysql и recode, функцию hash_insert.

Внимание

Расширение IMAP не может использоваться вместе с расширениями перекодировки, YAZ или Cyrus. Это связано с тем фактом, что они оба используют одни и те же внутренние символы. Замечание: Версии Yaz 2.0 и выше избавлены от этого недостатка.


  • « Типы ресурсов
  • Функции Recode »
  • PHP Manual
  • Recode
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции Recode

Содержание

  • recode_file — Перекодирует из одного файла в другой в соответствии с заданными параметрами
  • recode_string — Перекодирует строку в соответствии с заданными параметрами
  • recode — Псевдоним recode_string


Перекодирует из одного файла в другой в соответствии с заданными параметрами

  • « Функции Recode
  • recode_string »
  • PHP Manual
  • Функции Recode
  • Перекодирует из одного файла в другой в соответствии с заданными параметрами

recode_file

(PHP 4, PHP 5, PHP 7 < 7.4.0)

recode_file — Перекодирует из одного файла в другой в соответствии с заданными параметрами

Описание

recode_file ( string $request , resource $input , resource $output ) : bool

Перекодирует файл, заданный дескриптором input в файл, заданный дескриптором output в соответствии с request.

Список параметров

request

Выбранный тип запроса на перекодировку

input

Локальный файловый ресурс (resource) input

output

Локальный файловый ресурс (resource) output

Возвращаемые значения

Возвращает FALSE, если возникли какие-либо трудности или TRUE в случае успешного выполнения.

Примеры

Пример #1 Пример использования recode_file()

<?php
$input = fopen('input.txt', 'r');
$output = fopen('output.txt', 'w');
recode_file("us..flat", $input, $output);
?>

Примечания

На данный момент эта функция не работает с дескрипторами, ссылающимися на удаленные файлы (URL). Оба файловых дескриптора должны указывать на локальные файлы.

Смотрите также

  • fopen() - Открывает файл или URL


Перекодирует строку в соответствии с заданными параметрами

  • « recode_file
  • recode »
  • PHP Manual
  • Функции Recode
  • Перекодирует строку в соответствии с заданными параметрами

recode_string

(PHP 4, PHP 5, PHP 7 < 7.4.0)

recode_string — Перекодирует строку в соответствии с заданными параметрами

Описание

recode_string ( string $request , string $string ) : string

Перекодирует строку string в соответствии с request.

Список параметров

request

Выбранный тип запроса на перекодировку

string

Строка для перекодировки

Возвращаемые значения

Возвращает перекодированную строку (string) или FALSE, если возникли какие-либо проблемы с перекодировкой.

Примеры

Пример #1 Пример использования recode_string()

<?php
echo recode_string("us..flat", "The following character has a diacritical mark: a");
?>

Примечания

Простой запрос на перекодировку может быть "lat1..iso646-de".

Смотрите также

  • Более подробно о запросах на перекодировку читайте в документации, которая входит в дистрибутив GNU Recode.


Псевдоним recode_string

  • « recode_string
  • Обработка и генерация изображений »
  • PHP Manual
  • Функции Recode
  • Псевдоним recode_string

recode

(PHP 4, PHP 5, PHP 7 < 7.4.0)

recode — Псевдоним recode_string()

Описание

Эта функция является псевдонимом: recode_string().


Обработка и генерация изображений

  • Cairo
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Cairo
    • Cairo — Класс Cairo
    • CairoContext — Класс CairoContext
    • CairoException — Класс CairoException
    • CairoStatus — The CairoStatus class
    • CairoSurface — The CairoSurface class
    • CairoSvgSurface — Svg Surface Backend
    • CairoImageSurface — The CairoImageSurface class
    • CairoPdfSurface — Класс CairoPdfSurface
    • CairoPsSurface — Класс CairoPsSurface
    • CairoSurfaceType — Класс CairoSurfaceType
    • CairoFontFace — The CairoFontFace class
    • CairoFontOptions — The CairoFontOptions class
    • CairoFontSlant — The CairoFontSlant class
    • CairoFontType — The CairoFontType class
    • CairoFontWeight — The CairoFontWeight class
    • CairoScaledFont — Класс CairoScaledFont
    • CairoToyFontFace — The CairoToyFontFace class
    • CairoPatternType — The CairoPatternType class
    • CairoPattern — The CairoPattern class
    • CairoGradientPattern — The CairoGradientPattern class
    • CairoSolidPattern — Класс CairoSolidPattern
    • CairoSurfacePattern — Класс CairoSurfacePattern
    • CairoLinearGradient — The CairoLinearGradient class
    • CairoRadialGradient — Класс CairoRadialGradient
    • CairoAntialias — Класс CairoAntialias
    • CairoContent — Класс CairoContent
    • CairoExtend — Класс CairoExtend
    • CairoFormat — The CairoFormat class
    • CairoFillRule — The CairoFillRule class
    • CairoFilter — The CairoFilter class
    • CairoHintMetrics — The CairoHintMetrics class
    • CairoHintStyle — The CairoHintStyle class
    • CairoLineCap — The CairoLineCap class
    • CairoLineJoin — Класс CairoLineJoin
    • CairoMatrix — The CairoMatrix class
    • CairoOperator — The CairoOperator class
    • CairoPath — The CairoPath class
    • CairoPsLevel — Класс CairoPsLevel
    • CairoSubpixelOrder — Класс CairoSubpixelOrder
    • CairoSvgVersion — Класс CairoSvgVersion
  • Exif — Изменяемая информация об изображении
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Exif Функции
  • GD — Обработка изображений и GD
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции GD и функции для работы с изображениями
  • Gmagick
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Gmagick — Класс Gmagick
    • GmagickDraw — Класс GmagickDraw
    • GmagickPixel — Класс GmagickPixel
  • ImageMagick — Обработка изображений (ImageMagick)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Imagick — Класс Imagick
    • ImagickDraw — Класс ImagickDraw
    • ImagickPixel — Класс ImagickPixel
    • ImagickPixelIterator — Класс ImagickPixelIterator
    • ImagickKernel — Класс ImagickKernel


Cairo

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Cairo
    • cairo_create — Возвращает новый объект CairoContext
    • cairo_font_options_create — Описание
    • cairo_font_options_equal — Описание
    • cairo_font_options_get_antialias — Описание
    • cairo_font_options_get_hint_metrics — Описание
    • cairo_font_options_get_hint_style — Описание
    • cairo_font_options_get_subpixel_order — Описание
    • cairo_font_options_hash — Описание
    • cairo_font_options_merge — Описание
    • cairo_font_options_set_antialias — Описание
    • cairo_font_options_set_hint_metrics — Описание
    • cairo_font_options_set_hint_style — Описание
    • cairo_font_options_set_subpixel_order — Описание
    • cairo_font_options_status — Описание
    • cairo_format_stride_for_width — Описание
    • cairo_image_surface_create_for_data — Описание
    • cairo_image_surface_create_from_png — Описание
    • cairo_image_surface_create — Описание
    • cairo_image_surface_get_data — Описание
    • cairo_image_surface_get_format — Описание
    • cairo_image_surface_get_height — Описание
    • cairo_image_surface_get_stride — Описание
    • cairo_image_surface_get_width — Описание
    • cairo_matrix_create_scale — Псевдоним CairoMatrix::initScale
    • cairo_matrix_create_translate — Псевдоним CairoMatrix::initTranslate
    • cairo_matrix_invert — Описание
    • cairo_matrix_multiply — Описание
    • cairo_matrix_transform_distance — Описание
    • cairo_matrix_transform_point — Описание
    • cairo_matrix_translate — Описание
    • cairo_pattern_add_color_stop_rgb — Описание
    • cairo_pattern_add_color_stop_rgba — Описание
    • cairo_pattern_create_for_surface — Описание
    • cairo_pattern_create_linear — Описание
    • cairo_pattern_create_radial — Описание
    • cairo_pattern_create_rgb — Описание
    • cairo_pattern_create_rgba — Описание
    • cairo_pattern_get_color_stop_count — Описание
    • cairo_pattern_get_color_stop_rgba — Описание
    • cairo_pattern_get_extend — Описание
    • cairo_pattern_get_filter — Описание
    • cairo_pattern_get_linear_points — Описание
    • cairo_pattern_get_matrix — Описание
    • cairo_pattern_get_radial_circles — Описание
    • cairo_pattern_get_rgba — Описание
    • cairo_pattern_get_surface — Описание
    • cairo_pattern_get_type — Описание
    • cairo_pattern_set_extend — Описание
    • cairo_pattern_set_filter — Описание
    • cairo_pattern_set_matrix — Описание
    • cairo_pattern_status — Описание
    • cairo_pdf_surface_create — Описание
    • cairo_pdf_surface_set_size — Описание
    • cairo_ps_get_levels — Описание
    • cairo_ps_level_to_string — Описание
    • cairo_ps_surface_create — Описание
    • cairo_ps_surface_dsc_begin_page_setup — Описание
    • cairo_ps_surface_dsc_begin_setup — Описание
    • cairo_ps_surface_dsc_comment — Описание
    • cairo_ps_surface_get_eps — Описание
    • cairo_ps_surface_restrict_to_level — Описание
    • cairo_ps_surface_set_eps — Описание
    • cairo_ps_surface_set_size — Описание
    • cairo_scaled_font_create — Описание
    • cairo_scaled_font_extents — Описание
    • cairo_scaled_font_get_ctm — Описание
    • cairo_scaled_font_get_font_face — Описание
    • cairo_scaled_font_get_font_matrix — Описание
    • cairo_scaled_font_get_font_options — Описание
    • cairo_scaled_font_get_scale_matrix — Описание
    • cairo_scaled_font_get_type — Описание
    • cairo_scaled_font_glyph_extents — Описание
    • cairo_scaled_font_status — Описание
    • cairo_scaled_font_text_extents — Описание
    • cairo_surface_copy_page — Описание
    • cairo_surface_create_similar — Описание
    • cairo_surface_finish — Описание
    • cairo_surface_flush — Описание
    • cairo_surface_get_content — Описание
    • cairo_surface_get_device_offset — Описание
    • cairo_surface_get_font_options — Описание
    • cairo_surface_get_type — Описание
    • cairo_surface_mark_dirty_rectangle — Описание
    • cairo_surface_mark_dirty — Описание
    • cairo_surface_set_device_offset — Описание
    • cairo_surface_set_fallback_resolution — Описание
    • cairo_surface_show_page — Описание
    • cairo_surface_status — Описание
    • cairo_surface_write_to_png — Описание
    • cairo_svg_surface_create — Описание
    • cairo_svg_surface_restrict_to_version — Описание
    • cairo_svg_version_to_string — Описание
  • Cairo — Класс Cairo
    • Cairo::availableFonts — Извлекает доступные типы шрифтов
    • Cairo::availableSurfaces — Извлекает все доступные поверхности (surface)
    • Cairo::statusToString — Возвращает текущий статус в форме текстовой строки
    • Cairo::version — Извлекает версию библиотеки cairo
    • Cairo::versionString — Возвращает версию cairo в форме строки
  • CairoContext — Класс CairoContext
    • CairoContext::appendPath — Appends a path to current path
    • CairoContext::arc — Adds a circular arc
    • CairoContext::arcNegative — Adds a negative arc
    • CairoContext::clip — Establishes a new clip region
    • CairoContext::clipExtents — Computes the area inside the current clip
    • CairoContext::clipPreserve — Establishes a new clip region from the current clip
    • CairoContext::clipRectangleList — Retrieves the current clip as a list of rectangles
    • CairoContext::closePath — Closes the current path
    • CairoContext::__construct — Creates a new CairoContext
    • CairoContext::copyPage — Emits the current page
    • CairoContext::copyPath — Creates a copy of the current path
    • CairoContext::copyPathFlat — Gets a flattened copy of the current path
    • CairoContext::curveTo — Adds a curve
    • CairoContext::deviceToUser — Transform a coordinate
    • CairoContext::deviceToUserDistance — Transform a distance
    • CairoContext::fill — Fills the current path
    • CairoContext::fillExtents — Computes the filled area
    • CairoContext::fillPreserve — Fills and preserve the current path
    • CairoContext::fontExtents — Get the font extents
    • CairoContext::getAntialias — Retrieves the current antialias mode
    • CairoContext::getCurrentPoint — The getCurrentPoint purpose
    • CairoContext::getDash — The getDash purpose
    • CairoContext::getDashCount — The getDashCount purpose
    • CairoContext::getFillRule — The getFillRule purpose
    • CairoContext::getFontFace — The getFontFace purpose
    • CairoContext::getFontMatrix — The getFontMatrix purpose
    • CairoContext::getFontOptions — The getFontOptions purpose
    • CairoContext::getGroupTarget — The getGroupTarget purpose
    • CairoContext::getLineCap — The getLineCap purpose
    • CairoContext::getLineJoin — The getLineJoin purpose
    • CairoContext::getLineWidth — The getLineWidth purpose
    • CairoContext::getMatrix — The getMatrix purpose
    • CairoContext::getMiterLimit — The getMiterLimit purpose
    • CairoContext::getOperator — The getOperator purpose
    • CairoContext::getScaledFont — The getScaledFont purpose
    • CairoContext::getSource — The getSource purpose
    • CairoContext::getTarget — The getTarget purpose
    • CairoContext::getTolerance — The getTolerance purpose
    • CairoContext::glyphPath — The glyphPath purpose
    • CairoContext::hasCurrentPoint — The hasCurrentPoint purpose
    • CairoContext::identityMatrix — The identityMatrix purpose
    • CairoContext::inFill — The inFill purpose
    • CairoContext::inStroke — The inStroke purpose
    • CairoContext::lineTo — The lineTo purpose
    • CairoContext::mask — The mask purpose
    • CairoContext::maskSurface — The maskSurface purpose
    • CairoContext::moveTo — The moveTo purpose
    • CairoContext::newPath — The newPath purpose
    • CairoContext::newSubPath — The newSubPath purpose
    • CairoContext::paint — The paint purpose
    • CairoContext::paintWithAlpha — The paintWithAlpha purpose
    • CairoContext::pathExtents — The pathExtents purpose
    • CairoContext::popGroup — The popGroup purpose
    • CairoContext::popGroupToSource — The popGroupToSource purpose
    • CairoContext::pushGroup — The pushGroup purpose
    • CairoContext::pushGroupWithContent — The pushGroupWithContent purpose
    • CairoContext::rectangle — The rectangle purpose
    • CairoContext::relCurveTo — The relCurveTo purpose
    • CairoContext::relLineTo — The relLineTo purpose
    • CairoContext::relMoveTo — The relMoveTo purpose
    • CairoContext::resetClip — The resetClip purpose
    • CairoContext::restore — The restore purpose
    • CairoContext::rotate — The rotate purpose
    • CairoContext::save — The save purpose
    • CairoContext::scale — The scale purpose
    • CairoContext::selectFontFace — The selectFontFace purpose
    • CairoContext::setAntialias — The setAntialias purpose
    • CairoContext::setDash — The setDash purpose
    • CairoContext::setFillRule — The setFillRule purpose
    • CairoContext::setFontFace — The setFontFace purpose
    • CairoContext::setFontMatrix — The setFontMatrix purpose
    • CairoContext::setFontOptions — The setFontOptions purpose
    • CairoContext::setFontSize — The setFontSize purpose
    • CairoContext::setLineCap — The setLineCap purpose
    • CairoContext::setLineJoin — The setLineJoin purpose
    • CairoContext::setLineWidth — The setLineWidth purpose
    • CairoContext::setMatrix — The setMatrix purpose
    • CairoContext::setMiterLimit — The setMiterLimit purpose
    • CairoContext::setOperator — The setOperator purpose
    • CairoContext::setScaledFont — The setScaledFont purpose
    • CairoContext::setSource — The setSource purpose
    • CairoContext::setSourceRGB — The setSourceRGB purpose
    • CairoContext::setSourceRGBA — The setSourceRGBA purpose
    • CairoContext::setSourceSurface — The setSourceSurface purpose
    • CairoContext::setTolerance — The setTolerance purpose
    • CairoContext::showPage — The showPage purpose
    • CairoContext::showText — The showText purpose
    • CairoContext::status — The status purpose
    • CairoContext::stroke — The stroke purpose
    • CairoContext::strokeExtents — The strokeExtents purpose
    • CairoContext::strokePreserve — The strokePreserve purpose
    • CairoContext::textExtents — The textExtents purpose
    • CairoContext::textPath — The textPath purpose
    • CairoContext::transform — The transform purpose
    • CairoContext::translate — The translate purpose
    • CairoContext::userToDevice — The userToDevice purpose
    • CairoContext::userToDeviceDistance — The userToDeviceDistance purpose
  • CairoException — Класс CairoException
  • CairoStatus — The CairoStatus class
  • CairoSurface — The CairoSurface class
    • CairoSurface::__construct — The __construct purpose
    • CairoSurface::copyPage — The copyPage purpose
    • CairoSurface::createSimilar — The createSimilar purpose
    • CairoSurface::finish — The finish purpose
    • CairoSurface::flush — The flush purpose
    • CairoSurface::getContent — The getContent purpose
    • CairoSurface::getDeviceOffset — The getDeviceOffset purpose
    • CairoSurface::getFontOptions — The getFontOptions purpose
    • CairoSurface::getType — The getType purpose
    • CairoSurface::markDirty — The markDirty purpose
    • CairoSurface::markDirtyRectangle — The markDirtyRectangle purpose
    • CairoSurface::setDeviceOffset — The setDeviceOffset purpose
    • CairoSurface::setFallbackResolution — The setFallbackResolution purpose
    • CairoSurface::showPage — The showPage purpose
    • CairoSurface::status — The status purpose
    • CairoSurface::writeToPng — The writeToPng purpose
  • CairoSvgSurface — Svg Surface Backend
    • CairoSvgSurface::__construct — Цель __construct
    • CairoSvgSurface::getVersions — Используется для получения списка поддерживаемых версий SVG
    • CairoSvgSurface::restrictToVersion — Цель restrictToVersion
    • CairoSvgSurface::versionToString — Цель versionToString
  • CairoImageSurface — The CairoImageSurface class
    • CairoImageSurface::__construct — Creates a new CairoImageSurface
    • CairoImageSurface::createForData — The createForData purpose
    • CairoImageSurface::createFromPng — Creates a new CairoImageSurface form a png image file
    • CairoImageSurface::getData — Gets the image data as string
    • CairoImageSurface::getFormat — Get the image format
    • CairoImageSurface::getHeight — Retrieves the height of the CairoImageSurface
    • CairoImageSurface::getStride — The getStride purpose
    • CairoImageSurface::getWidth — Retrieves the width of the CairoImageSurface
  • CairoPdfSurface — Класс CairoPdfSurface
    • CairoPdfSurface::__construct — The __construct purpose
    • CairoPdfSurface::setSize — The setSize purpose
  • CairoPsSurface — Класс CairoPsSurface
    • CairoPsSurface::__construct — The __construct purpose
    • CairoPsSurface::dscBeginPageSetup — The dscBeginPageSetup purpose
    • CairoPsSurface::dscBeginSetup — The dscBeginSetup purpose
    • CairoPsSurface::dscComment — The dscComment purpose
    • CairoPsSurface::getEps — The getEps purpose
    • CairoPsSurface::getLevels — The getLevels purpose
    • CairoPsSurface::levelToString — The levelToString purpose
    • CairoPsSurface::restrictToLevel — The restrictToLevel purpose
    • CairoPsSurface::setEps — The setEps purpose
    • CairoPsSurface::setSize — The setSize purpose
  • CairoSurfaceType — Класс CairoSurfaceType
  • CairoFontFace — The CairoFontFace class
    • CairoFontFace::__construct — Создает новый объект CairoFontFace
    • CairoFontFace::getType — Возвращает тип начертания шрифта
    • CairoFontFace::status — Проверяет на ошибки класса CairoFontFace
  • CairoFontOptions — The CairoFontOptions class
    • CairoFontOptions::__construct — The __construct purpose
    • CairoFontOptions::equal — The equal purpose
    • CairoFontOptions::getAntialias — The getAntialias purpose
    • CairoFontOptions::getHintMetrics — The getHintMetrics purpose
    • CairoFontOptions::getHintStyle — The getHintStyle purpose
    • CairoFontOptions::getSubpixelOrder — The getSubpixelOrder purpose
    • CairoFontOptions::hash — The hash purpose
    • CairoFontOptions::merge — The merge purpose
    • CairoFontOptions::setAntialias — The setAntialias purpose
    • CairoFontOptions::setHintMetrics — The setHintMetrics purpose
    • CairoFontOptions::setHintStyle — The setHintStyle purpose
    • CairoFontOptions::setSubpixelOrder — The setSubpixelOrder purpose
    • CairoFontOptions::status — The status purpose
  • CairoFontSlant — The CairoFontSlant class
  • CairoFontType — The CairoFontType class
  • CairoFontWeight — The CairoFontWeight class
  • CairoScaledFont — Класс CairoScaledFont
    • CairoScaledFont::__construct — The __construct purpose
    • CairoScaledFont::extents — The extents purpose
    • CairoScaledFont::getCtm — The getCtm purpose
    • CairoScaledFont::getFontFace — The getFontFace purpose
    • CairoScaledFont::getFontMatrix — The getFontMatrix purpose
    • CairoScaledFont::getFontOptions — The getFontOptions purpose
    • CairoScaledFont::getScaleMatrix — The getScaleMatrix purpose
    • CairoScaledFont::getType — The getType purpose
    • CairoScaledFont::glyphExtents — The glyphExtents purpose
    • CairoScaledFont::status — The status purpose
    • CairoScaledFont::textExtents — The textExtents purpose
  • CairoToyFontFace — The CairoToyFontFace class
  • CairoPatternType — The CairoPatternType class
  • CairoPattern — The CairoPattern class
    • CairoPattern::__construct — The __construct purpose
    • CairoPattern::getMatrix — The getMatrix purpose
    • CairoPattern::getType — The getType purpose
    • CairoPattern::setMatrix — The setMatrix purpose
    • CairoPattern::status — The status purpose
  • CairoGradientPattern — The CairoGradientPattern class
    • CairoGradientPattern::addColorStopRgb — The addColorStopRgb purpose
    • CairoGradientPattern::addColorStopRgba — The addColorStopRgba purpose
    • CairoGradientPattern::getColorStopCount — The getColorStopCount purpose
    • CairoGradientPattern::getColorStopRgba — The getColorStopRgba purpose
    • CairoGradientPattern::getExtend — The getExtend purpose
    • CairoGradientPattern::setExtend — The setExtend purpose
  • CairoSolidPattern — Класс CairoSolidPattern
    • CairoSolidPattern::__construct — Цель __construct
    • CairoSolidPattern::getRgba — Цель getRgba
  • CairoSurfacePattern — Класс CairoSurfacePattern
    • CairoSurfacePattern::__construct — Цель __construct
    • CairoSurfacePattern::getExtend — Цель getExtend
    • CairoSurfacePattern::getFilter — Цель getFilter
    • CairoSurfacePattern::getSurface — Цель getSurface
    • CairoSurfacePattern::setExtend — Цель setExtend
    • CairoSurfacePattern::setFilter — Цель setFilter
  • CairoLinearGradient — The CairoLinearGradient class
    • CairoLinearGradient::__construct — Цель __construct
    • CairoLinearGradient::getPoints — Цель getPoints
  • CairoRadialGradient — Класс CairoRadialGradient
    • CairoRadialGradient::__construct — The __construct purpose
    • CairoRadialGradient::getCircles — The getCircles purpose
  • CairoAntialias — Класс CairoAntialias
  • CairoContent — Класс CairoContent
  • CairoExtend — Класс CairoExtend
  • CairoFormat — The CairoFormat class
    • CairoFormat::strideForWidth — Расчитывает значение "stride" для заданной ширины изображения
  • CairoFillRule — The CairoFillRule class
  • CairoFilter — The CairoFilter class
  • CairoHintMetrics — The CairoHintMetrics class
  • CairoHintStyle — The CairoHintStyle class
  • CairoLineCap — The CairoLineCap class
  • CairoLineJoin — Класс CairoLineJoin
  • CairoMatrix — The CairoMatrix class
    • CairoMatrix::__construct — Creates a new CairoMatrix object
    • CairoMatrix::initIdentity — Creates a new identity matrix
    • CairoMatrix::initRotate — Creates a new rotated matrix
    • CairoMatrix::initScale — Creates a new scaling matrix
    • CairoMatrix::initTranslate — Creates a new translation matrix
    • CairoMatrix::invert — The invert purpose
    • CairoMatrix::multiply — The multiply purpose
    • CairoMatrix::rotate — The rotate purpose
    • CairoMatrix::scale — Applies scaling to a matrix
    • CairoMatrix::transformDistance — The transformDistance purpose
    • CairoMatrix::transformPoint — The transformPoint purpose
    • CairoMatrix::translate — The translate purpose
  • CairoOperator — The CairoOperator class
  • CairoPath — The CairoPath class
  • CairoPsLevel — Класс CairoPsLevel
  • CairoSubpixelOrder — Класс CairoSubpixelOrder
  • CairoSvgVersion — Класс CairoSvgVersion


Введение

Cairo - это родной модуль PHP для создания и редактирования графики, использующий библиотеку Cairo Graphics.

Библиотека Cairo Graphics Library - это 2D библиотека, написанная на C с поддержкой множества устройств вывода. На данный момент поддержка включает вывод на: X Window System, Quartz, Win32, image buffers, PostScript, PDF, и вывод в SVG файл. Экспериментально поддерживается OpenGL (через glitz), XCB, BeOS, OS/2, и DirectFB. Библиотека также содержит поддержку двух типов манипуляций и управления расположения текста. "Игрушечная" API предоставляет поддержку демо-качества, и API глифов, хотя и полнофункциональную, но работающую лучше со вспомогательными библиотеками, такими как pango. Поддержка шрифтов включает: FreeType, Quartz, Win32, и пользовательские шрифты.

Есть два типа компьютерной графики, векторная и растровая. Растровая графика представляет изображение, как массив пикселей. Векторная графика использует геометрические примитивы, такие как точки, линии, кривые или полигоны. Примитивы создаются с использованием математических уравнений. Библитека Cairo Graphics Library использует векторный подход к графике, используя меньшие размеры, бесконечное увеличение и перемещение, масштабирование и вращение без ухудшения качества изображения.

Операции в библиотеке включают штрихофку (stroking) и заполнение кубечских сплайнов Безе, трансформирование и совмещение полупрозрачных изображений и рендеринг текста с помощью фильтра atnialias. Все операции рисования могут быть трансформированы в любую афинную трансформацию (масштаб, вращение, срез (shear), и другие). Это очень схоже с операциями рисования для PostScript и PDF.

Расширение Cairo ставит целью предоставить поддержку для всех официально поддерживаемых шрифтовых и поверхностных бэкендов, а также раскрыть все имеющиеся в Cairo Graphics Library функциональные возможности для пользователей PHP.


Требования

Cairo доступно только в PHP 5.2+ и PHP 5.3+. Модуль также требует наличия библиотеки Cairo Graphics Library версии 1.4 и выше. Библиотека Cairo Graphics Library использует схему четное/нечетное для обозначения стабильных и нестабильных версий. И те и те могут быть использованы с этим модулем, но поддержка новых возможностей включается только для стабильных версий. Самые свежие версии можно найти по ссылке » http://cairographics.org/.

Бинарный файл для Windows, так же как и исходные кода, доступны по ссылке » http://cairographics.org/download/.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/cairo.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Замечания специфичные для Windows

Бинарные сборки модуля доступны тут » http://cairographics.org/download/. Загрузите корректный архив zip, скопируйте php_cairo.dll в директорию с модулями и разрешите его использование в php.ini. Убедитесь, что совпадают минорные версии PHP (5.2, 5.3), потокобезопасность (Thread Safe TS или Non-Thread Safe NTS), архитектура (x86 или x64), и версия компилятора (VC6 or VC9).


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

CAIRO_STATUS_SUCCESS (integer)
CAIRO_STATUS_NO_MEMORY (integer)
CAIRO_STATUS_INVALID_RESTORE (integer)
CAIRO_STATUS_INVALID_POP_GROUP (integer)
CAIRO_STATUS_NO_CURRENT_POINT (integer)
CAIRO_STATUS_INVALID_MATRIX (integer)
CAIRO_STATUS_INVALID_STATUS (integer)
CAIRO_STATUS_NULL_POINTER (integer)
CAIRO_STATUS_INVALID_STRING (integer)
CAIRO_STATUS_INVALID_PATH_DATA (integer)
CAIRO_STATUS_READ_ERROR (integer)
CAIRO_STATUS_WRITE_ERROR (integer)
CAIRO_STATUS_SURFACE_FINISHED (integer)
CAIRO_STATUS_SURFACE_TYPE_MISMATCH (integer)
CAIRO_STATUS_PATTERN_TYPE_MISMATCH (integer)
CAIRO_STATUS_INVALID_CONTENT (integer)
CAIRO_STATUS_INVALID_FORMAT (integer)
CAIRO_STATUS_INVALID_VISUAL (integer)
CAIRO_STATUS_FILE_NOT_FOUND (integer)
CAIRO_STATUS_INVALID_DASH (integer)
CAIRO_STATUS_INVALID_DSC_COMMENT (integer)
CAIRO_STATUS_INVALID_INDEX (integer)
CAIRO_STATUS_CLIP_NOT_REPRESENTABLE (integer)
CAIRO_STATUS_TEMP_FILE_ERROR (integer)
CAIRO_STATUS_INVALID_STRIDE (integer)
CAIRO_ANTIALIAS_DEFAULT (integer)
CAIRO_ANTIALIAS_NONE (integer)
CAIRO_ANTIALIAS_GRAY (integer)
CAIRO_ANTIALIAS_SUBPIXEL (integer)
CAIRO_SUBPIXEL_ORDER_DEFAULT (integer)
CAIRO_SUBPIXEL_ORDER_RGB (integer)
CAIRO_SUBPIXEL_ORDER_BGR (integer)
CAIRO_SUBPIXEL_ORDER_VRGB (integer)
CAIRO_SUBPIXEL_ORDER_VBGR (integer)
CAIRO_FILL_RULE_WINDING (integer)
CAIRO_FILL_RULE_EVEN_ODD (integer)
CAIRO_LINE_CAP_BUTT (integer)
CAIRO_LINE_CAP_ROUND (integer)
CAIRO_LINE_CAP_SQUARE (integer)
CAIRO_LINE_JOIN_MITER (integer)
CAIRO_LINE_JOIN_ROUND (integer)
CAIRO_LINE_JOIN_BEVEL (integer)
CAIRO_OPERATOR_CLEAR (integer)
CAIRO_OPERATOR_SOURCE (integer)
CAIRO_OPERATOR_OVER (integer)
CAIRO_OPERATOR_IN (integer)
CAIRO_OPERATOR_OUT (integer)
CAIRO_OPERATOR_ATOP (integer)
CAIRO_OPERATOR_DEST (integer)
CAIRO_OPERATOR_DEST_OVER (integer)
CAIRO_OPERATOR_DEST_IN (integer)
CAIRO_OPERATOR_DEST_OUT (integer)
CAIRO_OPERATOR_DEST_ATOP (integer)
CAIRO_OPERATOR_XOR (integer)
CAIRO_OPERATOR_ADD (integer)
CAIRO_OPERATOR_SATURATE (integer)
CAIRO_PATTERN_TYPE_SOLID (integer)
CAIRO_PATTERN_TYPE_SURFACE (integer)
CAIRO_PATTERN_TYPE_LINEAR (integer)
CAIRO_PATTERN_TYPE_RADIAL (integer)
CAIRO_EXTEND_NONE (integer)
CAIRO_EXTEND_REPEAT (integer)
CAIRO_EXTEND_REFLECT (integer)
CAIRO_EXTEND_PAD (integer)
CAIRO_FILTER_FAST (integer)
CAIRO_FILTER_GOOD (integer)
CAIRO_FILTER_BEST (integer)
CAIRO_FILTER_NEAREST (integer)
CAIRO_FILTER_BILINEAR (integer)
CAIRO_FILTER_GAUSSIAN (integer)
CAIRO_HINT_STYLE_DEFAULT (integer)
CAIRO_HINT_STYLE_NONE (integer)
CAIRO_HINT_STYLE_SLIGHT (integer)
CAIRO_HINT_STYLE_MEDIUM (integer)
CAIRO_HINT_STYLE_FULL (integer)
CAIRO_HINT_METRICS_DEFAULT (integer)
CAIRO_HINT_METRICS_OFF (integer)
CAIRO_HINT_METRICS_ON (integer)
CAIRO_FONT_TYPE_TOY (integer)
CAIRO_FONT_TYPE_FT (integer)
CAIRO_FONT_TYPE_WIN32 (integer)
CAIRO_FONT_TYPE_QUARTZ (integer)
CAIRO_FONT_SLANT_NORMAL (integer)
CAIRO_FONT_SLANT_ITALIC (integer)
CAIRO_FONT_SLANT_OBLIQUE (integer)
CAIRO_FONT_WEIGHT_NORMAL (integer)
CAIRO_FONT_WEIGHT_BOLD (integer)
CAIRO_CONTENT_COLOR (integer)
CAIRO_CONTENT_ALPHA (integer)
CAIRO_CONTENT_COLOR_ALPHA (integer)
CAIRO_SURFACE_TYPE_IMAGE (integer)
CAIRO_SURFACE_TYPE_PDF (integer)
CAIRO_SURFACE_TYPE_PS (integer)
CAIRO_SURFACE_TYPE_XLIB (integer)
CAIRO_SURFACE_TYPE_XCB (integer)
CAIRO_SURFACE_TYPE_GLITZ (integer)
CAIRO_SURFACE_TYPE_QUARTZ (integer)
CAIRO_SURFACE_TYPE_WIN32 (integer)
CAIRO_SURFACE_TYPE_BEOS (integer)
CAIRO_SURFACE_TYPE_DIRECTFB (integer)
CAIRO_SURFACE_TYPE_SVG (integer)
CAIRO_SURFACE_TYPE_OS2 (integer)
CAIRO_SURFACE_TYPE_WIN32_PRINTING (integer)
CAIRO_SURFACE_TYPE_QUARTZ_IMAGE (integer)
CAIRO_FORMAT_ARGB32 (integer)
CAIRO_FORMAT_RGB24 (integer)
CAIRO_FORMAT_A8 (integer)
CAIRO_FORMAT_A1 (integer)
CAIRO_PS_LEVEL_2 (integer)
CAIRO_PS_LEVEL_3 (integer)
CAIRO_SVG_VERSION_1_1 (integer)
CAIRO_SVG_VERSION_1_2 (integer)


Примеры

Здесь будет описание...

Пример #1 Пример использования Cairo

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Cairo

Содержание

  • cairo_create — Возвращает новый объект CairoContext
  • cairo_font_options_create — Описание
  • cairo_font_options_equal — Описание
  • cairo_font_options_get_antialias — Описание
  • cairo_font_options_get_hint_metrics — Описание
  • cairo_font_options_get_hint_style — Описание
  • cairo_font_options_get_subpixel_order — Описание
  • cairo_font_options_hash — Описание
  • cairo_font_options_merge — Описание
  • cairo_font_options_set_antialias — Описание
  • cairo_font_options_set_hint_metrics — Описание
  • cairo_font_options_set_hint_style — Описание
  • cairo_font_options_set_subpixel_order — Описание
  • cairo_font_options_status — Описание
  • cairo_format_stride_for_width — Описание
  • cairo_image_surface_create_for_data — Описание
  • cairo_image_surface_create_from_png — Описание
  • cairo_image_surface_create — Описание
  • cairo_image_surface_get_data — Описание
  • cairo_image_surface_get_format — Описание
  • cairo_image_surface_get_height — Описание
  • cairo_image_surface_get_stride — Описание
  • cairo_image_surface_get_width — Описание
  • cairo_matrix_create_scale — Псевдоним CairoMatrix::initScale
  • cairo_matrix_create_translate — Псевдоним CairoMatrix::initTranslate
  • cairo_matrix_invert — Описание
  • cairo_matrix_multiply — Описание
  • cairo_matrix_transform_distance — Описание
  • cairo_matrix_transform_point — Описание
  • cairo_matrix_translate — Описание
  • cairo_pattern_add_color_stop_rgb — Описание
  • cairo_pattern_add_color_stop_rgba — Описание
  • cairo_pattern_create_for_surface — Описание
  • cairo_pattern_create_linear — Описание
  • cairo_pattern_create_radial — Описание
  • cairo_pattern_create_rgb — Описание
  • cairo_pattern_create_rgba — Описание
  • cairo_pattern_get_color_stop_count — Описание
  • cairo_pattern_get_color_stop_rgba — Описание
  • cairo_pattern_get_extend — Описание
  • cairo_pattern_get_filter — Описание
  • cairo_pattern_get_linear_points — Описание
  • cairo_pattern_get_matrix — Описание
  • cairo_pattern_get_radial_circles — Описание
  • cairo_pattern_get_rgba — Описание
  • cairo_pattern_get_surface — Описание
  • cairo_pattern_get_type — Описание
  • cairo_pattern_set_extend — Описание
  • cairo_pattern_set_filter — Описание
  • cairo_pattern_set_matrix — Описание
  • cairo_pattern_status — Описание
  • cairo_pdf_surface_create — Описание
  • cairo_pdf_surface_set_size — Описание
  • cairo_ps_get_levels — Описание
  • cairo_ps_level_to_string — Описание
  • cairo_ps_surface_create — Описание
  • cairo_ps_surface_dsc_begin_page_setup — Описание
  • cairo_ps_surface_dsc_begin_setup — Описание
  • cairo_ps_surface_dsc_comment — Описание
  • cairo_ps_surface_get_eps — Описание
  • cairo_ps_surface_restrict_to_level — Описание
  • cairo_ps_surface_set_eps — Описание
  • cairo_ps_surface_set_size — Описание
  • cairo_scaled_font_create — Описание
  • cairo_scaled_font_extents — Описание
  • cairo_scaled_font_get_ctm — Описание
  • cairo_scaled_font_get_font_face — Описание
  • cairo_scaled_font_get_font_matrix — Описание
  • cairo_scaled_font_get_font_options — Описание
  • cairo_scaled_font_get_scale_matrix — Описание
  • cairo_scaled_font_get_type — Описание
  • cairo_scaled_font_glyph_extents — Описание
  • cairo_scaled_font_status — Описание
  • cairo_scaled_font_text_extents — Описание
  • cairo_surface_copy_page — Описание
  • cairo_surface_create_similar — Описание
  • cairo_surface_finish — Описание
  • cairo_surface_flush — Описание
  • cairo_surface_get_content — Описание
  • cairo_surface_get_device_offset — Описание
  • cairo_surface_get_font_options — Описание
  • cairo_surface_get_type — Описание
  • cairo_surface_mark_dirty_rectangle — Описание
  • cairo_surface_mark_dirty — Описание
  • cairo_surface_set_device_offset — Описание
  • cairo_surface_set_fallback_resolution — Описание
  • cairo_surface_show_page — Описание
  • cairo_surface_status — Описание
  • cairo_surface_write_to_png — Описание
  • cairo_svg_surface_create — Описание
  • cairo_svg_surface_restrict_to_version — Описание
  • cairo_svg_version_to_string — Описание


Возвращает новый объект CairoContext

  • « Cairo
  • cairo_font_options_create »
  • PHP Manual
  • Cairo
  • Возвращает новый объект CairoContext

cairo_create

(PECL cairo >= 0.1.0)

cairo_create — Возвращает новый объект CairoContext

Описание

cairo_create ( CairoSurface $surface ) : CairoContext

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_create()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_create
  • cairo_font_options_equal »
  • PHP Manual
  • Cairo
  • Описание

cairo_font_options_create

(PECL cairo >= 0.1.0)

cairo_font_options_create — Описание

Описание

cairo_font_options_create ( void ) : CairoFontOptions

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Описание функции

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_font_options_create()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_font_options_create
  • cairo_font_options_get_antialias »
  • PHP Manual
  • Cairo
  • Описание

cairo_font_options_equal

(PECL cairo >= 0.1.0)

cairo_font_options_equal — Описание

Описание

cairo_font_options_equal ( CairoFontOptions $options , CairoFontOptions $other ) : bool

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Описание...

other

Описание...

Возвращаемые значения

Что возвращается в случае успеха или неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_font_options_equal()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_font_options_equal
  • cairo_font_options_get_hint_metrics »
  • PHP Manual
  • Cairo
  • Описание

cairo_font_options_get_antialias

(PECL cairo >= 0.1.0)

cairo_font_options_get_antialias — Описание

Описание

cairo_font_options_get_antialias ( CairoFontOptions $options ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_font_options_get_antialias()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_font_options_get_antialias
  • cairo_font_options_get_hint_style »
  • PHP Manual
  • Cairo
  • Описание

cairo_font_options_get_hint_metrics

(PECL cairo >= 0.1.0)

cairo_font_options_get_hint_metrics — Описание

Описание

cairo_font_options_get_hint_metrics ( CairoFontOptions $options ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_font_options_get_hint_metrics()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_font_options_get_hint_metrics
  • cairo_font_options_get_subpixel_order »
  • PHP Manual
  • Cairo
  • Описание

cairo_font_options_get_hint_style

(PECL cairo >= 0.1.0)

cairo_font_options_get_hint_style — Описание

Описание

cairo_font_options_get_hint_style ( CairoFontOptions $options ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_font_options_get_hint_style()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_font_options_get_hint_style
  • cairo_font_options_hash »
  • PHP Manual
  • Cairo
  • Описание

cairo_font_options_get_subpixel_order

(PECL cairo >= 0.1.0)

cairo_font_options_get_subpixel_order — Описание

Описание

cairo_font_options_get_subpixel_order ( CairoFontOptions $options ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_font_options_get_subpixel_order()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_font_options_get_subpixel_order
  • cairo_font_options_merge »
  • PHP Manual
  • Cairo
  • Описание

cairo_font_options_hash

(PECL cairo >= 0.1.0)

cairo_font_options_hash — Описание

Описание

cairo_font_options_hash ( CairoFontOptions $options ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_font_options_hash()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_font_options_hash
  • cairo_font_options_set_antialias »
  • PHP Manual
  • Cairo
  • Описание

cairo_font_options_merge

(PECL cairo >= 0.1.0)

cairo_font_options_merge — Описание

Описание

cairo_font_options_merge ( CairoFontOptions $options , CairoFontOptions $other ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Описание...

other

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_font_options_merge()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_font_options_merge
  • cairo_font_options_set_hint_metrics »
  • PHP Manual
  • Cairo
  • Описание

cairo_font_options_set_antialias

(PECL cairo >= 0.1.0)

cairo_font_options_set_antialias — Описание

Описание

cairo_font_options_set_antialias ( CairoFontOptions $options , int $antialias ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Описание...

antialias

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_font_options_set_antialias()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_font_options_set_antialias
  • cairo_font_options_set_hint_style »
  • PHP Manual
  • Cairo
  • Описание

cairo_font_options_set_hint_metrics

(PECL cairo >= 0.1.0)

cairo_font_options_set_hint_metrics — Описание

Описание

cairo_font_options_set_hint_metrics ( CairoFontOptions $options , int $hint_metrics ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Описание...

hint_metrics

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_font_options_set_hint_metrics()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_font_options_set_hint_metrics
  • cairo_font_options_set_subpixel_order »
  • PHP Manual
  • Cairo
  • Описание

cairo_font_options_set_hint_style

(PECL cairo >= 0.1.0)

cairo_font_options_set_hint_style — Описание

Описание

cairo_font_options_set_hint_style ( CairoFontOptions $options , int $hint_style ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Описание...

hint_style

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_font_options_set_hint_style()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_font_options_set_hint_style
  • cairo_font_options_status »
  • PHP Manual
  • Cairo
  • Описание

cairo_font_options_set_subpixel_order

(PECL cairo >= 0.1.0)

cairo_font_options_set_subpixel_order — Описание

Описание

cairo_font_options_set_subpixel_order ( CairoFontOptions $options , int $subpixel_order ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Описание...

subpixel_order

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_font_options_set_subpixel_order()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_font_options_set_subpixel_order
  • cairo_format_stride_for_width »
  • PHP Manual
  • Cairo
  • Описание

cairo_font_options_status

(PECL cairo >= 0.1.0)

cairo_font_options_status — Описание

Описание

cairo_font_options_status ( CairoFontOptions $options ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_font_options_status()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_font_options_status
  • cairo_image_surface_create_for_data »
  • PHP Manual
  • Cairo
  • Описание

cairo_format_stride_for_width

(PECL cairo >= 0.1.0)

cairo_format_stride_for_width — Описание

Описание

cairo_format_stride_for_width ( int $format , int $width ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

format

Описание...

width

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_format_stride_for_width()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_format_stride_for_width
  • cairo_image_surface_create_from_png »
  • PHP Manual
  • Cairo
  • Описание

cairo_image_surface_create_for_data

(PECL cairo >= 0.1.0)

cairo_image_surface_create_for_data — Описание

Описание

cairo_image_surface_create_for_data ( string $data , int $format , int $width , int $height [, int $stride = -1 ] ) : CairoImageSurface

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Описание...

format

Описание...

width

Описание...

height

Описание...

stride

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_image_surface_create_for_data()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_image_surface_create_for_data
  • cairo_image_surface_create »
  • PHP Manual
  • Cairo
  • Описание

cairo_image_surface_create_from_png

(PECL cairo >= 0.1.0)

cairo_image_surface_create_from_png — Описание

Описание

cairo_image_surface_create_from_png ( mixed $file ) : CairoImageSurface

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_image_surface_create_from_png()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_image_surface_create_from_png
  • cairo_image_surface_get_data »
  • PHP Manual
  • Cairo
  • Описание

cairo_image_surface_create

(PECL cairo >= 0.1.0)

cairo_image_surface_create — Описание

Описание

cairo_image_surface_create ( int $format , int $width , int $height ) : CairoImageSurface

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

format

Описание...

width

Описание...

height

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_image_surface_create()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_image_surface_create
  • cairo_image_surface_get_format »
  • PHP Manual
  • Cairo
  • Описание

cairo_image_surface_get_data

(PECL cairo >= 0.1.0)

cairo_image_surface_get_data — Описание

Описание

cairo_image_surface_get_data ( CairoImageSurface $surface ) : string

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_image_surface_get_data()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_image_surface_get_data
  • cairo_image_surface_get_height »
  • PHP Manual
  • Cairo
  • Описание

cairo_image_surface_get_format

(PECL cairo >= 0.1.0)

cairo_image_surface_get_format — Описание

Описание

cairo_image_surface_get_format ( CairoImageSurface $surface ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_image_surface_get_format()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_image_surface_get_format
  • cairo_image_surface_get_stride »
  • PHP Manual
  • Cairo
  • Описание

cairo_image_surface_get_height

(PECL cairo >= 0.1.0)

cairo_image_surface_get_height — Описание

Описание

cairo_image_surface_get_height ( CairoImageSurface $surface ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_image_surface_get_height()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_image_surface_get_height
  • cairo_image_surface_get_width »
  • PHP Manual
  • Cairo
  • Описание

cairo_image_surface_get_stride

(PECL cairo >= 0.1.0)

cairo_image_surface_get_stride — Описание

Описание

cairo_image_surface_get_stride ( CairoImageSurface $surface ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_image_surface_get_stride()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_image_surface_get_stride
  • cairo_matrix_create_scale »
  • PHP Manual
  • Cairo
  • Описание

cairo_image_surface_get_width

(PECL cairo >= 0.1.0)

cairo_image_surface_get_width — Описание

Описание

cairo_image_surface_get_width ( CairoImageSurface $surface ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_image_surface_get_width()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Псевдоним CairoMatrix::initScale

  • « cairo_image_surface_get_width
  • cairo_matrix_create_translate »
  • PHP Manual
  • Cairo
  • Псевдоним CairoMatrix::initScale

cairo_matrix_create_scale

(PECL cairo >= 0.1.0)

cairo_matrix_create_scale — Псевдоним CairoMatrix::initScale()

Описание

Эта функция является псевдонимом: CairoMatrix::initScale().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Псевдоним CairoMatrix::initTranslate

  • « cairo_matrix_create_scale
  • cairo_matrix_invert »
  • PHP Manual
  • Cairo
  • Псевдоним CairoMatrix::initTranslate

cairo_matrix_create_translate

(PECL cairo >= 0.1.0)

cairo_matrix_create_translate — Псевдоним CairoMatrix::initTranslate()

Описание

Эта функция является псевдонимом: CairoMatrix::initTranslate().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Описание

  • « cairo_matrix_create_translate
  • cairo_matrix_multiply »
  • PHP Manual
  • Cairo
  • Описание

cairo_matrix_invert

(PECL cairo >= 0.1.0)

cairo_matrix_invert — Описание

Описание

cairo_matrix_invert ( CairoMatrix $matrix ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

matrix

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_matrix_invert()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_matrix_invert
  • cairo_matrix_transform_distance »
  • PHP Manual
  • Cairo
  • Описание

cairo_matrix_multiply

(PECL cairo >= 0.1.0)

cairo_matrix_multiply — Описание

Описание

cairo_matrix_multiply ( CairoMatrix $matrix1 , CairoMatrix $matrix2 ) : CairoMatrix

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

matrix1

Описание...

matrix2

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_matrix_multiply()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_matrix_multiply
  • cairo_matrix_transform_point »
  • PHP Manual
  • Cairo
  • Описание

cairo_matrix_transform_distance

(PECL cairo >= 0.1.0)

cairo_matrix_transform_distance — Описание

Описание

cairo_matrix_transform_distance ( CairoMatrix $matrix , float $dx , float $dy ) : array

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

matrix

Описание...

dx

Описание...

dy

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_matrix_transform_distance()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_matrix_transform_distance
  • cairo_matrix_translate »
  • PHP Manual
  • Cairo
  • Описание

cairo_matrix_transform_point

(PECL cairo >= 0.1.0)

cairo_matrix_transform_point — Описание

Описание

cairo_matrix_transform_point ( CairoMatrix $matrix , float $dx , float $dy ) : array

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

matrix

Описание...

dx

Описание...

dy

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_matrix_transform_point()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_matrix_transform_point
  • cairo_pattern_add_color_stop_rgb »
  • PHP Manual
  • Cairo
  • Описание

cairo_matrix_translate

(PECL cairo >= 0.1.0)

cairo_matrix_translate — Описание

Описание

cairo_matrix_translate ( CairoMatrix $matrix , float $tx , float $ty ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

matrix

Описание...

tx

Описание...

ty

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_matrix_translate()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_matrix_translate
  • cairo_pattern_add_color_stop_rgba »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_add_color_stop_rgb

(PECL cairo >= 0.1.0)

cairo_pattern_add_color_stop_rgb — Описание

Описание

cairo_pattern_add_color_stop_rgb ( CairoGradientPattern $pattern , float $offset , float $red , float $green , float $blue ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Описание...

offset

Описание...

red

Описание...

green

Описание...

blue

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_add_color_stop_rgb()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_add_color_stop_rgb
  • cairo_pattern_create_for_surface »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_add_color_stop_rgba

(PECL cairo >= 0.1.0)

cairo_pattern_add_color_stop_rgba — Описание

Описание

cairo_pattern_add_color_stop_rgba ( CairoGradientPattern $pattern , float $offset , float $red , float $green , float $blue , float $alpha ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Описание...

offset

Описание...

red

Описание...

green

Описание...

blue

Описание...

alpha

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_add_color_stop_rgba()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_add_color_stop_rgba
  • cairo_pattern_create_linear »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_create_for_surface

(PECL cairo >= 0.1.0)

cairo_pattern_create_for_surface — Описание

Описание

cairo_pattern_create_for_surface ( CairoSurface $surface ) : CairoPattern

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_create_for_surface()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_create_for_surface
  • cairo_pattern_create_radial »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_create_linear

(PECL cairo >= 0.1.0)

cairo_pattern_create_linear — Описание

Описание

cairo_pattern_create_linear ( float $x0 , float $y0 , float $x1 , float $y1 ) : CairoPattern

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x0

Описание...

y0

Описание...

x1

Описание...

y1

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_create_linear()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_create_linear
  • cairo_pattern_create_rgb »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_create_radial

(PECL cairo >= 0.1.0)

cairo_pattern_create_radial — Описание

Описание

cairo_pattern_create_radial ( float $x0 , float $y0 , float $r0 , float $x1 , float $y1 , float $r1 ) : CairoPattern

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x0

Описание...

y0

Описание...

r0

Описание...

x1

Описание...

y1

Описание...

r1

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_create_radial()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_create_radial
  • cairo_pattern_create_rgba »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_create_rgb

(PECL cairo >= 0.1.0)

cairo_pattern_create_rgb — Описание

Описание

cairo_pattern_create_rgb ( float $red , float $green , float $blue ) : CairoPattern

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

red

Описание...

green

Описание...

blue

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_create_rgb()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_create_rgb
  • cairo_pattern_get_color_stop_count »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_create_rgba

(PECL cairo >= 0.1.0)

cairo_pattern_create_rgba — Описание

Описание

cairo_pattern_create_rgba ( float $red , float $green , float $blue , float $alpha ) : CairoPattern

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

red

Описание...

green

Описание...

blue

Описание...

alpha

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_create_rgba()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_create_rgba
  • cairo_pattern_get_color_stop_rgba »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_get_color_stop_count

(PECL cairo >= 0.1.0)

cairo_pattern_get_color_stop_count — Описание

Описание

cairo_pattern_get_color_stop_count ( CairoGradientPattern $pattern ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_get_color_stop_count()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_get_color_stop_count
  • cairo_pattern_get_extend »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_get_color_stop_rgba

(PECL cairo >= 0.1.0)

cairo_pattern_get_color_stop_rgba — Описание

Описание

cairo_pattern_get_color_stop_rgba ( CairoGradientPattern $pattern , int $index ) : array

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Описание...

index

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_get_color_stop_rgba()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_get_color_stop_rgba
  • cairo_pattern_get_filter »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_get_extend

(PECL cairo >= 0.1.0)

cairo_pattern_get_extend — Описание

Описание

cairo_pattern_get_extend ( string $pattern ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_get_extend()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_get_extend
  • cairo_pattern_get_linear_points »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_get_filter

(PECL cairo >= 0.1.0)

cairo_pattern_get_filter — Описание

Описание

cairo_pattern_get_filter ( CairoSurfacePattern $pattern ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_get_filter()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_get_filter
  • cairo_pattern_get_matrix »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_get_linear_points

(PECL cairo >= 0.1.0)

cairo_pattern_get_linear_points — Описание

Описание

cairo_pattern_get_linear_points ( CairoLinearGradient $pattern ) : array

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_get_linear_points()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_get_linear_points
  • cairo_pattern_get_radial_circles »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_get_matrix

(PECL cairo >= 0.1.0)

cairo_pattern_get_matrix — Описание

Описание

cairo_pattern_get_matrix ( CairoPattern $pattern ) : CairoMatrix

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_get_matrix()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_get_matrix
  • cairo_pattern_get_rgba »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_get_radial_circles

(PECL cairo >= 0.1.0)

cairo_pattern_get_radial_circles — Описание

Описание

cairo_pattern_get_radial_circles ( CairoRadialGradient $pattern ) : array

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_get_radial_circles()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_get_radial_circles
  • cairo_pattern_get_surface »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_get_rgba

(PECL cairo >= 0.1.0)

cairo_pattern_get_rgba — Описание

Описание

cairo_pattern_get_rgba ( CairoSolidPattern $pattern ) : array

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_get_rgba()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_get_rgba
  • cairo_pattern_get_type »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_get_surface

(PECL cairo >= 0.1.0)

cairo_pattern_get_surface — Описание

Описание

cairo_pattern_get_surface ( CairoSurfacePattern $pattern ) : CairoSurface

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_get_surface()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_get_surface
  • cairo_pattern_set_extend »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_get_type

(PECL cairo >= 0.1.0)

cairo_pattern_get_type — Описание

Описание

cairo_pattern_get_type ( CairoPattern $pattern ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_get_type()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_get_type
  • cairo_pattern_set_filter »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_set_extend

(PECL cairo >= 0.1.0)

cairo_pattern_set_extend — Описание

Описание

cairo_pattern_set_extend ( string $pattern , string $extend ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Описание...

extend

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_set_extend()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_set_extend
  • cairo_pattern_set_matrix »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_set_filter

(PECL cairo >= 0.1.0)

cairo_pattern_set_filter — Описание

Описание

cairo_pattern_set_filter ( CairoSurfacePattern $pattern , int $filter ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Описание...

filter

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_set_filter()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_set_filter
  • cairo_pattern_status »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_set_matrix

(PECL cairo >= 0.1.0)

cairo_pattern_set_matrix — Описание

Описание

cairo_pattern_set_matrix ( CairoPattern $pattern , CairoMatrix $matrix ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Описание...

matrix

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_set_matrix()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_set_matrix
  • cairo_pdf_surface_create »
  • PHP Manual
  • Cairo
  • Описание

cairo_pattern_status

(PECL cairo >= 0.1.0)

cairo_pattern_status — Описание

Описание

cairo_pattern_status ( CairoPattern $pattern ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pattern_status()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pattern_status
  • cairo_pdf_surface_set_size »
  • PHP Manual
  • Cairo
  • Описание

cairo_pdf_surface_create

(PECL cairo >= 0.1.0)

cairo_pdf_surface_create — Описание

Описание

cairo_pdf_surface_create ( string $file , float $width , float $height ) : CairoPdfSurface

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Описание...

width

Описание...

height

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pdf_surface_create()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pdf_surface_create
  • cairo_ps_get_levels »
  • PHP Manual
  • Cairo
  • Описание

cairo_pdf_surface_set_size

(PECL cairo >= 0.1.0)

cairo_pdf_surface_set_size — Описание

Описание

cairo_pdf_surface_set_size ( CairoPdfSurface $surface , float $width , float $height ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

width

Описание...

height

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_pdf_surface_set_size()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_pdf_surface_set_size
  • cairo_ps_level_to_string »
  • PHP Manual
  • Cairo
  • Описание

cairo_ps_get_levels

(PECL cairo >= 0.1.0)

cairo_ps_get_levels — Описание

Описание

cairo_ps_get_levels ( void ) : array

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_ps_get_levels()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_ps_get_levels
  • cairo_ps_surface_create »
  • PHP Manual
  • Cairo
  • Описание

cairo_ps_level_to_string

(PECL cairo >= 0.1.0)

cairo_ps_level_to_string — Описание

Описание

cairo_ps_level_to_string ( int $level ) : string

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

level

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_ps_level_to_string()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_ps_level_to_string
  • cairo_ps_surface_dsc_begin_page_setup »
  • PHP Manual
  • Cairo
  • Описание

cairo_ps_surface_create

(PECL cairo >= 0.1.0)

cairo_ps_surface_create — Описание

Описание

cairo_ps_surface_create ( string $file , float $width , float $height ) : CairoPsSurface

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Описание...

width

Описание...

height

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_ps_surface_create()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_ps_surface_create
  • cairo_ps_surface_dsc_begin_setup »
  • PHP Manual
  • Cairo
  • Описание

cairo_ps_surface_dsc_begin_page_setup

(PECL cairo >= 0.1.0)

cairo_ps_surface_dsc_begin_page_setup — Описание

Описание

cairo_ps_surface_dsc_begin_page_setup ( CairoPsSurface $surface ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_ps_surface_dsc_begin_page_setup()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_ps_surface_dsc_begin_page_setup
  • cairo_ps_surface_dsc_comment »
  • PHP Manual
  • Cairo
  • Описание

cairo_ps_surface_dsc_begin_setup

(PECL cairo >= 0.1.0)

cairo_ps_surface_dsc_begin_setup — Описание

Описание

cairo_ps_surface_dsc_begin_setup ( CairoPsSurface $surface ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_ps_surface_dsc_begin_setup()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_ps_surface_dsc_begin_setup
  • cairo_ps_surface_get_eps »
  • PHP Manual
  • Cairo
  • Описание

cairo_ps_surface_dsc_comment

(PECL cairo >= 0.1.0)

cairo_ps_surface_dsc_comment — Описание

Описание

cairo_ps_surface_dsc_comment ( CairoPsSurface $surface , string $comment ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

comment

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_ps_surface_dsc_comment()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_ps_surface_dsc_comment
  • cairo_ps_surface_restrict_to_level »
  • PHP Manual
  • Cairo
  • Описание

cairo_ps_surface_get_eps

(PECL cairo >= 0.1.0)

cairo_ps_surface_get_eps — Описание

Описание

cairo_ps_surface_get_eps ( CairoPsSurface $surface ) : bool

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_ps_surface_get_eps()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_ps_surface_get_eps
  • cairo_ps_surface_set_eps »
  • PHP Manual
  • Cairo
  • Описание

cairo_ps_surface_restrict_to_level

(PECL cairo >= 0.1.0)

cairo_ps_surface_restrict_to_level — Описание

Описание

cairo_ps_surface_restrict_to_level ( CairoPsSurface $surface , int $level ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

level

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_ps_surface_restrict_to_level()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_ps_surface_restrict_to_level
  • cairo_ps_surface_set_size »
  • PHP Manual
  • Cairo
  • Описание

cairo_ps_surface_set_eps

(PECL cairo >= 0.1.0)

cairo_ps_surface_set_eps — Описание

Описание

cairo_ps_surface_set_eps ( CairoPsSurface $surface , bool $level ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

level

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_ps_surface_set_eps()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_ps_surface_set_eps
  • cairo_scaled_font_create »
  • PHP Manual
  • Cairo
  • Описание

cairo_ps_surface_set_size

(PECL cairo >= 0.1.0)

cairo_ps_surface_set_size — Описание

Описание

cairo_ps_surface_set_size ( CairoPsSurface $surface , float $width , float $height ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

width

Описание...

height

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_ps_surface_set_size()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_ps_surface_set_size
  • cairo_scaled_font_extents »
  • PHP Manual
  • Cairo
  • Описание

cairo_scaled_font_create

(PECL cairo >= 0.1.0)

cairo_scaled_font_create — Описание

Описание

cairo_scaled_font_create ( CairoFontFace $fontface , CairoMatrix $matrix , CairoMatrix $ctm , CairoFontOptions $fontoptions ) : CairoScaledFont

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

fontface

Описание...

matrix

Описание...

ctm

Описание...

fontoptions

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_scaled_font_create()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_scaled_font_create
  • cairo_scaled_font_get_ctm »
  • PHP Manual
  • Cairo
  • Описание

cairo_scaled_font_extents

(PECL cairo >= 0.1.0)

cairo_scaled_font_extents — Описание

Описание

cairo_scaled_font_extents ( CairoScaledFont $scaledfont ) : array

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_scaled_font_extents()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_scaled_font_extents
  • cairo_scaled_font_get_font_face »
  • PHP Manual
  • Cairo
  • Описание

cairo_scaled_font_get_ctm

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_ctm — Описание

Описание

cairo_scaled_font_get_ctm ( CairoScaledFont $scaledfont ) : CairoMatrix

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_scaled_font_get_ctm()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_scaled_font_get_ctm
  • cairo_scaled_font_get_font_matrix »
  • PHP Manual
  • Cairo
  • Описание

cairo_scaled_font_get_font_face

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_font_face — Описание

Описание

cairo_scaled_font_get_font_face ( CairoScaledFont $scaledfont ) : CairoFontFace

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_scaled_font_get_font_face()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_scaled_font_get_font_face
  • cairo_scaled_font_get_font_options »
  • PHP Manual
  • Cairo
  • Описание

cairo_scaled_font_get_font_matrix

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_font_matrix — Описание

Описание

cairo_scaled_font_get_font_matrix ( CairoScaledFont $scaledfont ) : CairoFontOptions

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_scaled_font_get_font_matrix()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_scaled_font_get_font_matrix
  • cairo_scaled_font_get_scale_matrix »
  • PHP Manual
  • Cairo
  • Описание

cairo_scaled_font_get_font_options

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_font_options — Описание

Описание

cairo_scaled_font_get_font_options ( CairoScaledFont $scaledfont ) : CairoFontOptions

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_scaled_font_get_font_options()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_scaled_font_get_font_options
  • cairo_scaled_font_get_type »
  • PHP Manual
  • Cairo
  • Описание

cairo_scaled_font_get_scale_matrix

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_scale_matrix — Описание

Описание

cairo_scaled_font_get_scale_matrix ( CairoScaledFont $scaledfont ) : CairoMatrix

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_scaled_font_get_scale_matrix()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_scaled_font_get_scale_matrix
  • cairo_scaled_font_glyph_extents »
  • PHP Manual
  • Cairo
  • Описание

cairo_scaled_font_get_type

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_type — Описание

Описание

cairo_scaled_font_get_type ( CairoScaledFont $scaledfont ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_scaled_font_get_type()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_scaled_font_get_type
  • cairo_scaled_font_status »
  • PHP Manual
  • Cairo
  • Описание

cairo_scaled_font_glyph_extents

(PECL cairo >= 0.1.0)

cairo_scaled_font_glyph_extents — Описание

Описание

cairo_scaled_font_glyph_extents ( CairoScaledFont $scaledfont , array $glyphs ) : array

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Описание...

glyphs

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_scaled_font_glyph_extents()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_scaled_font_glyph_extents
  • cairo_scaled_font_text_extents »
  • PHP Manual
  • Cairo
  • Описание

cairo_scaled_font_status

(PECL cairo >= 0.1.0)

cairo_scaled_font_status — Описание

Описание

cairo_scaled_font_status ( CairoScaledFont $scaledfont ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_scaled_font_status()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_scaled_font_status
  • cairo_surface_copy_page »
  • PHP Manual
  • Cairo
  • Описание

cairo_scaled_font_text_extents

(PECL cairo >= 0.1.0)

cairo_scaled_font_text_extents — Описание

Описание

cairo_scaled_font_text_extents ( CairoScaledFont $scaledfont , string $text ) : array

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Описание...

text

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_scaled_font_text_extents()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_scaled_font_text_extents
  • cairo_surface_create_similar »
  • PHP Manual
  • Cairo
  • Описание

cairo_surface_copy_page

(PECL cairo >= 0.1.0)

cairo_surface_copy_page — Описание

Описание

cairo_surface_copy_page ( CairoSurface $surface ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_surface_copy_page()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_surface_copy_page
  • cairo_surface_finish »
  • PHP Manual
  • Cairo
  • Описание

cairo_surface_create_similar

(PECL cairo >= 0.1.0)

cairo_surface_create_similar — Описание

Описание

cairo_surface_create_similar ( CairoSurface $surface , int $content , float $width , float $height ) : CairoSurface

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

content

Описание...

width

Описание...

height

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_surface_create_similar()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_surface_create_similar
  • cairo_surface_flush »
  • PHP Manual
  • Cairo
  • Описание

cairo_surface_finish

(PECL cairo >= 0.1.0)

cairo_surface_finish — Описание

Описание

cairo_surface_finish ( CairoSurface $surface ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_surface_finish()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_surface_finish
  • cairo_surface_get_content »
  • PHP Manual
  • Cairo
  • Описание

cairo_surface_flush

(PECL cairo >= 0.1.0)

cairo_surface_flush — Описание

Описание

cairo_surface_flush ( CairoSurface $surface ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_surface_flush()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_surface_flush
  • cairo_surface_get_device_offset »
  • PHP Manual
  • Cairo
  • Описание

cairo_surface_get_content

(PECL cairo >= 0.1.0)

cairo_surface_get_content — Описание

Описание

cairo_surface_get_content ( CairoSurface $surface ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_surface_get_content()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_surface_get_content
  • cairo_surface_get_font_options »
  • PHP Manual
  • Cairo
  • Описание

cairo_surface_get_device_offset

(PECL cairo >= 0.1.0)

cairo_surface_get_device_offset — Описание

Описание

cairo_surface_get_device_offset ( CairoSurface $surface ) : array

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_surface_get_device_offset()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_surface_get_device_offset
  • cairo_surface_get_type »
  • PHP Manual
  • Cairo
  • Описание

cairo_surface_get_font_options

(PECL cairo >= 0.1.0)

cairo_surface_get_font_options — Описание

Описание

cairo_surface_get_font_options ( CairoSurface $surface ) : CairoFontOptions

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_surface_get_font_options()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_surface_get_font_options
  • cairo_surface_mark_dirty_rectangle »
  • PHP Manual
  • Cairo
  • Описание

cairo_surface_get_type

(PECL cairo >= 0.1.0)

cairo_surface_get_type — Описание

Описание

cairo_surface_get_type ( CairoSurface $surface ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_surface_get_type()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_surface_get_type
  • cairo_surface_mark_dirty »
  • PHP Manual
  • Cairo
  • Описание

cairo_surface_mark_dirty_rectangle

(PECL cairo >= 0.1.0)

cairo_surface_mark_dirty_rectangle — Описание

Описание

cairo_surface_mark_dirty_rectangle ( CairoSurface $surface , float $x , float $y , float $width , float $height ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

x

Описание...

y

Описание...

width

Описание...

height

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_surface_mark_dirty_rectangle()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_surface_mark_dirty_rectangle
  • cairo_surface_set_device_offset »
  • PHP Manual
  • Cairo
  • Описание

cairo_surface_mark_dirty

(PECL cairo >= 0.1.0)

cairo_surface_mark_dirty — Описание

Описание

cairo_surface_mark_dirty ( CairoSurface $surface ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_surface_mark_dirty()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_surface_mark_dirty
  • cairo_surface_set_fallback_resolution »
  • PHP Manual
  • Cairo
  • Описание

cairo_surface_set_device_offset

(PECL cairo >= 0.1.0)

cairo_surface_set_device_offset — Описание

Описание

cairo_surface_set_device_offset ( CairoSurface $surface , float $x , float $y ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

x

Описание...

y

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_surface_set_device_offset()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_surface_set_device_offset
  • cairo_surface_show_page »
  • PHP Manual
  • Cairo
  • Описание

cairo_surface_set_fallback_resolution

(PECL cairo >= 0.1.0)

cairo_surface_set_fallback_resolution — Описание

Описание

cairo_surface_set_fallback_resolution ( CairoSurface $surface , float $x , float $y ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

x

Описание...

y

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_surface_set_fallback_resolution()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_surface_set_fallback_resolution
  • cairo_surface_status »
  • PHP Manual
  • Cairo
  • Описание

cairo_surface_show_page

(PECL cairo >= 0.1.0)

cairo_surface_show_page — Описание

Описание

cairo_surface_show_page ( CairoSurface $surface ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_surface_show_page()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_surface_show_page
  • cairo_surface_write_to_png »
  • PHP Manual
  • Cairo
  • Описание

cairo_surface_status

(PECL cairo >= 0.1.0)

cairo_surface_status — Описание

Описание

cairo_surface_status ( CairoSurface $surface ) : int

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_surface_status()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_surface_status
  • cairo_svg_surface_create »
  • PHP Manual
  • Cairo
  • Описание

cairo_surface_write_to_png

(PECL cairo >= 0.1.0)

cairo_surface_write_to_png — Описание

Описание

cairo_surface_write_to_png ( CairoSurface $surface , resource $stream ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

stream

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_surface_write_to_png()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_surface_write_to_png
  • cairo_svg_surface_restrict_to_version »
  • PHP Manual
  • Cairo
  • Описание

cairo_svg_surface_create

(PECL cairo >= 0.1.0)

cairo_svg_surface_create — Описание

Описание

cairo_svg_surface_create ( string $file , float $width , float $height ) : CairoSvgSurface

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Описание...

width

Описание...

height

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_svg_surface_create()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_svg_surface_create
  • cairo_svg_version_to_string »
  • PHP Manual
  • Cairo
  • Описание

cairo_svg_surface_restrict_to_version

(PECL cairo >= 0.1.0)

cairo_svg_surface_restrict_to_version — Описание

Описание

cairo_svg_surface_restrict_to_version ( CairoSvgSurface $surface , int $version ) : void

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

version

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_svg_surface_restrict_to_version()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Описание

  • « cairo_svg_surface_restrict_to_version
  • Cairo »
  • PHP Manual
  • Cairo
  • Описание

cairo_svg_version_to_string

(PECL cairo >= 0.1.0)

cairo_svg_version_to_string — Описание

Описание

cairo_svg_version_to_string ( int $version ) : string

Описание функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

version

Описание...

Возвращаемые значения

Что возвращается в случае успеха и неудачи

Ошибки

Когда эта функция генерирует ошибки уровня E_* и/или выбрасывает исключения.

Примеры

Пример #1 Пример использования cairo_svg_version_to_string()

Любой текст, который описывает цель примера или то, что происходит в примере, должен быть здесь.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • название связанной функции()


Класс Cairo

(PECL cairo >= 0.1.0)

Введение

Простой класс с несколькими вспомогательными статическими методами.

Обзор классов

Cairo {
/* Методы */
public static availableFonts ( void ) : array
public static availableSurfaces ( void ) : array
public static statusToString ( int $status ) : string
public static version ( void ) : int
public static versionString ( void ) : string
}

Содержание

  • Cairo::availableFonts — Извлекает доступные типы шрифтов
  • Cairo::availableSurfaces — Извлекает все доступные поверхности (surface)
  • Cairo::statusToString — Возвращает текущий статус в форме текстовой строки
  • Cairo::version — Извлекает версию библиотеки cairo
  • Cairo::versionString — Возвращает версию cairo в форме строки


Извлекает доступные типы шрифтов

  • « Cairo
  • Cairo::availableSurfaces »
  • PHP Manual
  • Cairo
  • Извлекает доступные типы шрифтов

Cairo::availableFonts

cairo_available_fonts

(PECL cairo >= 0.1.0)

Cairo::availableFonts -- cairo_available_fonts — Извлекает доступные типы шрифтов

Описание

Объектно-ориентированный стиль:

public static Cairo::availableFonts ( void ) : array

Процедурный стиль:

cairo_available_fonts ( void ) : array

Возвращает массив доступных на бэкенде шрифтов

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив, содержащий все доступные на бэкенде шрифты.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* Объектно-ориентированный стиль */
var_dump(Cairo::availableFonts());

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  string(5) "WIN32"
  [1]=>
  string(4) "USER"
}

Пример #2 Процедурный стиль

<?php

/* Процедурный стиль */
var_dump(cairo_available_fonts());

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  string(5) "WIN32"
  [1]=>
  string(4) "USER"
}

Смотрите также

  • Cairo::availableSurfaces() - Извлекает все доступные поверхности (surface)


Извлекает все доступные поверхности (surface)

  • « Cairo::availableFonts
  • Cairo::statusToString »
  • PHP Manual
  • Cairo
  • Извлекает все доступные поверхности (surface)

Cairo::availableSurfaces

cairo_available_surfaces

(PECL cairo >= 0.1.0)

Cairo::availableSurfaces -- cairo_available_surfaces — Извлекает все доступные поверхности (surface)

Описание

Объектно-ориентированный стиль (method):

public static Cairo::availableSurfaces ( void ) : array

Процедурный стиль:

cairo_available_surfaces ( void ) : array

Возвращает массив доступных на бэкенде поверхностей (surface)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив всех доступных на бэкенде поверхностей (surface).

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* Объектно-ориентированный стиль */
var_dump(Cairo::availableSurfaces());

?>

Результатом выполнения данного примера будет что-то подобное:

array(6) {
  [0]=>
  string(5) "IMAGE"
  [1]=>
  string(3) "PNG"
  [2]=>
  string(3) "PDF"
  [3]=>
  string(2) "PS"
  [4]=>
  string(3) "SVG"
  [5]=>
  string(5) "WIN32"
}

Пример #2 Процедурный стиль

<?php

/* Процедурный стиль */
var_dump(cairo_available_surfaces());

?>

Результатом выполнения данного примера будет что-то подобное:

array(6) {
  [0]=>
  string(5) "IMAGE"
  [1]=>
  string(3) "PNG"
  [2]=>
  string(3) "PDF"
  [3]=>
  string(2) "PS"
  [4]=>
  string(3) "SVG"
  [5]=>
  string(5) "WIN32"
}

Смотрите также

  • Cairo::availableFonts() - Извлекает доступные типы шрифтов


Возвращает текущий статус в форме текстовой строки

  • « Cairo::availableSurfaces
  • Cairo::version »
  • PHP Manual
  • Cairo
  • Возвращает текущий статус в форме текстовой строки

Cairo::statusToString

cairo_status_to_string

(PECL cairo >= 0.1.0)

Cairo::statusToString -- cairo_status_to_string — Возвращает текущий статус в форме текстовой строки

Описание

Объектно-ориентированный стиль (method):

public static Cairo::statusToString ( int $status ) : string

Процедурный стиль:

cairo_status_to_string ( int $status ) : string

Возвращает текущий статус в виде понятной человеку строки

Список параметров

status

Допустимый код статуса, предоставляемый функцией cairo_status() или методом CairoContext::status()

Возвращаемые значения

Строка, содержащая текущий статус объекта CairoContext

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);
$context = new CairoContext($surface);

var_dump(Cairo::statusToString($context->status()));
?>

Результатом выполнения данного примера будет что-то подобное:

string(7) "успешно"

Пример #2 Процедурный стиль

<?php
$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);
$context = cairo_create($surface);

var_dump(cairo_status_to_string(cairo_status($context)));
?>

Результатом выполнения данного примера будет что-то подобное:

string(7) "успешно"

Смотрите также

  • CairoContext::status() - The status purpose


Извлекает версию библиотеки cairo

  • « Cairo::statusToString
  • Cairo::versionString »
  • PHP Manual
  • Cairo
  • Извлекает версию библиотеки cairo

Cairo::version

cairo_version

(PECL cairo >= 0.1.0)

Cairo::version -- cairo_version — Извлекает версию библиотеки cairo

Описание

Объектно-ориентированный стиль (method):

public static Cairo::version ( void ) : int

Процедурный стиль:

cairo_version ( void ) : int

Извлекает текущую версию библиотеки cairo в виде целого числа

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Целое число, являющееся версией библиотеки cairo

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
var_dump(Cairo::version());
?>

Результатом выполнения данного примера будет что-то подобное:

int(10808)

Пример #2 Процедурный стиль

<?php
var_dump(cairo_version());
?>

Результатом выполнения данного примера будет что-то подобное:

int(10808)

Смотрите также

  • Cairo::versionString() - Возвращает версию cairo в форме строки


Возвращает версию cairo в форме строки

  • « Cairo::version
  • CairoContext »
  • PHP Manual
  • Cairo
  • Возвращает версию cairo в форме строки

Cairo::versionString

cairo_version_string

(PECL cairo >= 0.1.0)

Cairo::versionString -- cairo_version_string — Возвращает версию cairo в форме строки

Описание

Объектно-ориентированный стиль (method):

public static Cairo::versionString ( void ) : string

Процедурный стиль:

cairo_version_string ( void ) : string

Возвращает версию текущей библиотеки Cairo в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка с версией текущей библиотеки Cairo

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

var_dump(Cairo::versionString());

?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "1.8.8"

Пример #2 Процедурный стиль

<?php

var_dump(cairo_version_string());

?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "1.8.8"

Смотрите также

  • Cairo::version() - Извлекает версию библиотеки cairo


Класс CairoContext

(PECL cairo >= 0.1.0)

Введение

Контекст является основным объектом, используемый при рисовании Cairo. Для рисования при помощи Cairo вы создаете CairoContext, устанавливаете целевую CairoSurface, задаете опции рисования для CairoContext и создаете фигуры с помощью функций, таких как CairoContext::moveTo(), CairoContext::lineTo(), CairoContext::stroke() и CairoContext::fill(). Контекст может быть помещен в стек с помощью метода CairoContext::save(), после чего безопасно изменен, без потери текущего состояния, которое в любой момент можно вернуть методом CairoContext::restore().

Обзор классов

CairoContext {
/* Методы */
public appendPath ( CairoPath $path ) : void
public arc ( float $x , float $y , float $radius , float $angle1 , float $angle2 ) : void
public arcNegative ( float $x , float $y , float $radius , float $angle1 , float $angle2 ) : void
public clip ( void ) : void
public clipExtents ( void ) : array
public clipPreserve ( void ) : void
public clipRectangleList ( void ) : array
public closePath ( void ) : void
public __construct ( CairoSurface $surface )
public copyPage ( void ) : void
public copyPath ( void ) : CairoPath
public copyPathFlat ( void ) : CairoPath
public curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 ) : void
public deviceToUser ( float $x , float $y ) : array
public deviceToUserDistance ( float $x , float $y ) : array
public fill ( void ) : void
public fillExtents ( void ) : array
public fillPreserve ( void ) : void
public fontExtents ( void ) : array
public getAntialias ( void ) : int
public getCurrentPoint ( void ) : array
public getDash ( void ) : array
public getDashCount ( void ) : int
public getFillRule ( void ) : int
public getFontFace ( void ) : void
public getFontMatrix ( void ) : void
public getFontOptions ( void ) : void
public getGroupTarget ( void ) : void
public getLineCap ( void ) : int
public getLineJoin ( void ) : int
public getLineWidth ( void ) : float
public getMatrix ( void ) : void
public getMiterLimit ( void ) : float
public getOperator ( void ) : int
public getScaledFont ( void ) : void
public getSource ( void ) : void
public getTarget ( void ) : void
public getTolerance ( void ) : float
public glyphPath ( array $glyphs ) : void
public hasCurrentPoint ( void ) : bool
public identityMatrix ( void ) : void
public inFill ( float $x , float $y ) : bool
public inStroke ( float $x , float $y ) : bool
public lineTo ( float $x , float $y ) : void
public mask ( CairoPattern $pattern ) : void
public maskSurface ( CairoSurface $surface [, float $x [, float $y ]] ) : void
public moveTo ( float $x , float $y ) : void
public newPath ( void ) : void
public newSubPath ( void ) : void
public paint ( void ) : void
public paintWithAlpha ( float $alpha ) : void
public pathExtents ( void ) : array
public popGroup ( void ) : void
public popGroupToSource ( void ) : void
public pushGroup ( void ) : void
public pushGroupWithContent ( int $content ) : void
public rectangle ( float $x , float $y , float $width , float $height ) : void
public relCurveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 ) : void
public relLineTo ( float $x , float $y ) : void
public relMoveTo ( float $x , float $y ) : void
public resetClip ( void ) : void
public restore ( void ) : void
public rotate ( float $angle ) : void
public save ( void ) : void
public scale ( float $x , float $y ) : void
public selectFontFace ( string $family [, int $slant [, int $weight ]] ) : void
public setAntialias ([ int $antialias ] ) : void
public setDash ( array $dashes [, float $offset ] ) : void
public setFillRule ( int $setting ) : void
public setFontFace ( CairoFontFace $fontface ) : void
public setFontMatrix ( CairoMatrix $matrix ) : void
public setFontOptions ( CairoFontOptions $fontoptions ) : void
public setFontSize ( float $size ) : void
public setLineCap ( int $setting ) : void
public setLineJoin ( int $setting ) : void
public setLineWidth ( float $width ) : void
public setMatrix ( CairoMatrix $matrix ) : void
public setMiterLimit ( float $limit ) : void
public setOperator ( int $setting ) : void
public setScaledFont ( CairoScaledFont $scaledfont ) : void
public setSource ( CairoPattern $pattern ) : void
public setSourceRGB ( float $red , float $green , float $blue ) : void
public setSourceRGBA ( float $red , float $green , float $blue , float $alpha ) : void
public setSourceSurface ( CairoSurface $surface [, float $x [, float $y ]] ) : void
public setTolerance ( float $tolerance ) : void
public showPage ( void ) : void
public showText ( string $text ) : void
public status ( void ) : int
public stroke ( void ) : void
public strokeExtents ( void ) : array
public strokePreserve ( void ) : void
public textExtents ( string $text ) : array
public textPath ( string $string ) : void
public transform ( CairoMatrix $matrix ) : void
public translate ( float $x , float $y ) : void
public userToDevice ( float $x , float $y ) : array
public userToDeviceDistance ( float $x , float $y ) : array
}

Содержание

  • CairoContext::appendPath — Appends a path to current path
  • CairoContext::arc — Adds a circular arc
  • CairoContext::arcNegative — Adds a negative arc
  • CairoContext::clip — Establishes a new clip region
  • CairoContext::clipExtents — Computes the area inside the current clip
  • CairoContext::clipPreserve — Establishes a new clip region from the current clip
  • CairoContext::clipRectangleList — Retrieves the current clip as a list of rectangles
  • CairoContext::closePath — Closes the current path
  • CairoContext::__construct — Creates a new CairoContext
  • CairoContext::copyPage — Emits the current page
  • CairoContext::copyPath — Creates a copy of the current path
  • CairoContext::copyPathFlat — Gets a flattened copy of the current path
  • CairoContext::curveTo — Adds a curve
  • CairoContext::deviceToUser — Transform a coordinate
  • CairoContext::deviceToUserDistance — Transform a distance
  • CairoContext::fill — Fills the current path
  • CairoContext::fillExtents — Computes the filled area
  • CairoContext::fillPreserve — Fills and preserve the current path
  • CairoContext::fontExtents — Get the font extents
  • CairoContext::getAntialias — Retrieves the current antialias mode
  • CairoContext::getCurrentPoint — The getCurrentPoint purpose
  • CairoContext::getDash — The getDash purpose
  • CairoContext::getDashCount — The getDashCount purpose
  • CairoContext::getFillRule — The getFillRule purpose
  • CairoContext::getFontFace — The getFontFace purpose
  • CairoContext::getFontMatrix — The getFontMatrix purpose
  • CairoContext::getFontOptions — The getFontOptions purpose
  • CairoContext::getGroupTarget — The getGroupTarget purpose
  • CairoContext::getLineCap — The getLineCap purpose
  • CairoContext::getLineJoin — The getLineJoin purpose
  • CairoContext::getLineWidth — The getLineWidth purpose
  • CairoContext::getMatrix — The getMatrix purpose
  • CairoContext::getMiterLimit — The getMiterLimit purpose
  • CairoContext::getOperator — The getOperator purpose
  • CairoContext::getScaledFont — The getScaledFont purpose
  • CairoContext::getSource — The getSource purpose
  • CairoContext::getTarget — The getTarget purpose
  • CairoContext::getTolerance — The getTolerance purpose
  • CairoContext::glyphPath — The glyphPath purpose
  • CairoContext::hasCurrentPoint — The hasCurrentPoint purpose
  • CairoContext::identityMatrix — The identityMatrix purpose
  • CairoContext::inFill — The inFill purpose
  • CairoContext::inStroke — The inStroke purpose
  • CairoContext::lineTo — The lineTo purpose
  • CairoContext::mask — The mask purpose
  • CairoContext::maskSurface — The maskSurface purpose
  • CairoContext::moveTo — The moveTo purpose
  • CairoContext::newPath — The newPath purpose
  • CairoContext::newSubPath — The newSubPath purpose
  • CairoContext::paint — The paint purpose
  • CairoContext::paintWithAlpha — The paintWithAlpha purpose
  • CairoContext::pathExtents — The pathExtents purpose
  • CairoContext::popGroup — The popGroup purpose
  • CairoContext::popGroupToSource — The popGroupToSource purpose
  • CairoContext::pushGroup — The pushGroup purpose
  • CairoContext::pushGroupWithContent — The pushGroupWithContent purpose
  • CairoContext::rectangle — The rectangle purpose
  • CairoContext::relCurveTo — The relCurveTo purpose
  • CairoContext::relLineTo — The relLineTo purpose
  • CairoContext::relMoveTo — The relMoveTo purpose
  • CairoContext::resetClip — The resetClip purpose
  • CairoContext::restore — The restore purpose
  • CairoContext::rotate — The rotate purpose
  • CairoContext::save — The save purpose
  • CairoContext::scale — The scale purpose
  • CairoContext::selectFontFace — The selectFontFace purpose
  • CairoContext::setAntialias — The setAntialias purpose
  • CairoContext::setDash — The setDash purpose
  • CairoContext::setFillRule — The setFillRule purpose
  • CairoContext::setFontFace — The setFontFace purpose
  • CairoContext::setFontMatrix — The setFontMatrix purpose
  • CairoContext::setFontOptions — The setFontOptions purpose
  • CairoContext::setFontSize — The setFontSize purpose
  • CairoContext::setLineCap — The setLineCap purpose
  • CairoContext::setLineJoin — The setLineJoin purpose
  • CairoContext::setLineWidth — The setLineWidth purpose
  • CairoContext::setMatrix — The setMatrix purpose
  • CairoContext::setMiterLimit — The setMiterLimit purpose
  • CairoContext::setOperator — The setOperator purpose
  • CairoContext::setScaledFont — The setScaledFont purpose
  • CairoContext::setSource — The setSource purpose
  • CairoContext::setSourceRGB — The setSourceRGB purpose
  • CairoContext::setSourceRGBA — The setSourceRGBA purpose
  • CairoContext::setSourceSurface — The setSourceSurface purpose
  • CairoContext::setTolerance — The setTolerance purpose
  • CairoContext::showPage — The showPage purpose
  • CairoContext::showText — The showText purpose
  • CairoContext::status — The status purpose
  • CairoContext::stroke — The stroke purpose
  • CairoContext::strokeExtents — The strokeExtents purpose
  • CairoContext::strokePreserve — The strokePreserve purpose
  • CairoContext::textExtents — The textExtents purpose
  • CairoContext::textPath — The textPath purpose
  • CairoContext::transform — The transform purpose
  • CairoContext::translate — The translate purpose
  • CairoContext::userToDevice — The userToDevice purpose
  • CairoContext::userToDeviceDistance — The userToDeviceDistance purpose


Appends a path to current path

  • « CairoContext
  • CairoContext::arc »
  • PHP Manual
  • CairoContext
  • Appends a path to current path

CairoContext::appendPath

cairo_append_path

(PECL cairo >= 0.1.0)

CairoContext::appendPath -- cairo_append_path — Appends a path to current path

Описание

Объектно-ориентированный стиль (method):

public CairoContext::appendPath ( CairoPath $path ) : void

Процедурный стиль:

cairo_append_path ( CairoContext $context , CairoPath $path ) : void

Appends the path onto the current path. The path may be either the return value from one of CairoContext::copyPath() or CairoContext::copyPathFlat();

if path is not a valid CairoPath instance a CairoException will be thrown

Список параметров

context

CairoContext object

path

CairoPath object

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

$path = $context->copyPath();

$context->appendPath($path);

?>

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

$path = cairo_copy_path($context);

cairo_append_path($context, $path);

?>

Смотрите также

  • CairoPath
  • CairoContext::copyPath() - Creates a copy of the current path
  • CairoContext::copyPathFlat() - Gets a flattened copy of the current path


Adds a circular arc

  • « CairoContext::appendPath
  • CairoContext::arcNegative »
  • PHP Manual
  • CairoContext
  • Adds a circular arc

CairoContext::arc

cairo_arc

(PECL cairo >= 0.1.0)

CairoContext::arc -- cairo_arc — Adds a circular arc

Описание

Объектно-ориентированный стиль (method):

public CairoContext::arc ( float $x , float $y , float $radius , float $angle1 , float $angle2 ) : void

Процедурный стиль:

cairo_arc ( CairoContext $context , float $x , float $y , float $radius , float $angle1 , float $angle2 ) : void

Adds a circular arc of the given radius to the current path. The arc is centered at (x, y), begins at angle1 and proceeds in the direction of increasing angles to end at angle2. If angle2 is less than angle1 it will be progressively increased by 2*M_PI until it is greater than angle1. If there is a current point, an initial line segment will be added to the path to connect the current point to the beginning of the arc. If this initial line is undesired, it can be avoided by calling CairoContext::newSubPath() or procedural cairo_new_sub_path() before calling CairoContext::arc() or cairo_arc(). Angles are measured in radians. An angle of 0.0 is in the direction of the positive X axis (in user space). An angle of M_PI/2.0 radians (90 degrees) is in the direction of the positive Y axis (in user space). Angles increase in the direction from the positive X axis toward the positive Y axis. So with the default transformation matrix, angles increase in a clockwise direction. (To convert from degrees to radians, use degrees * (M_PI / 180.).) This function gives the arc in the direction of increasing angles; see CairoContext::arcNegative() or cairo_arc_negative() to get the arc in the direction of decreasing angles.

Список параметров

context

A valid CairoContext object

x

x position

y

y position

radius

Radius of the arc

angle1

start angle

angle2

end angle

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->setSourceRgb(0, 0, 0);
$c->paint();

$c->setLineWidth(1);
$c->setSourceRgb(1, 1, 1);

for ($r = 50; $r > 0; $r -= 10) {
 $c->arc(50, 50, $r, 0, 2 * M_PI);
 $c->stroke();
 $c->fill();
}

$s->writeToPng(dirname(__FILE__) . '/CairoContext__arc.png');
?>

Пример #2 Процедурный стиль

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_set_source_rgb($c, 0, 0, 0);
cairo_paint($c);

cairo_set_source_rgb($c, 1, 1, 1);
cairo_set_line_width($c, 1);

for ($r = 50; $r > 0; $r -= 10) {
 cairo_arc($c, 50, 50, $r, 0, 2 * M_PI);
 cairo_stroke($c);
 cairo_fill($c);
}

cairo_surface_write_to_png($s, dirname(__FILE__) . '/cairo_arc.png');
?>

Смотрите также

  • CairoContext::arcNegative() - Adds a negative arc


Adds a negative arc

  • « CairoContext::arc
  • CairoContext::clip »
  • PHP Manual
  • CairoContext
  • Adds a negative arc

CairoContext::arcNegative

cairo_arc_negative

(PECL cairo >= 0.1.0)

CairoContext::arcNegative -- cairo_arc_negative — Adds a negative arc

Описание

Объектно-ориентированный стиль (method):

public CairoContext::arcNegative ( float $x , float $y , float $radius , float $angle1 , float $angle2 ) : void

Процедурный стиль:

cairo_arc_negative ( CairoContext $context , float $x , float $y , float $radius , float $angle1 , float $angle2 ) : void

Adds a circular arc of the given radius to the current path. The arc is centered at (x, y), begins at angle1 and proceeds in the direction of decreasing angles to end at angle2. If angle2 is greater than angle1 it will be progressively decreased by 2*M_PI until it is less than angle1. See CairoContext::arc() or cairo_arc() for more details. This function differs only in the direction of the arc between the two angles.

Список параметров

context

A valid CairoContext object

x

double x position

y

double y position

radius

The radius of the desired negative arc

angle1

Start angle of the arc

angle2

End angle of the arc

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->setSourceRgb(0, 0, 0);
$c->paint();

$c->setLineWidth(1);
$c->setSourceRgb(1, 1, 1);

for ($r = 50; $r > 0; $r -= 10) {
 $c->arcNegative(50, 50, $r, 2 * M_PI, 0);
 $c->stroke();
 $c->fill();
}

$s->writeToPng(dirname(__FILE__) . '/CairoContext__arcNegative.png');
?>

Пример #2 Процедурный стиль

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_set_source_rgb($c, 0, 0, 0);
cairo_paint($c);

cairo_set_source_rgb($c, 1, 1, 1);
cairo_set_line_width($c, 1);

for ($r = 50; $r > 0; $r -= 10) {
 cairo_arc_negative($c, 50, 50, $r, 2 * M_PI, 0);
 cairo_stroke($c);
 cairo_fill($c);
}

cairo_surface_write_to_png($s, dirname(__FILE__) . '/cairo_arc_negative.png');
?>

Смотрите также

  • CairoContext::arc() - Adds a circular arc


Establishes a new clip region

  • « CairoContext::arcNegative
  • CairoContext::clipExtents »
  • PHP Manual
  • CairoContext
  • Establishes a new clip region

CairoContext::clip

cairo_clip

(PECL cairo >= 0.1.0)

CairoContext::clip -- cairo_clip — Establishes a new clip region

Описание

Объектно-ориентированный стиль (method):

public CairoContext::clip ( void ) : void

Процедурный стиль:

cairo_clip ( CairoContext $context ) : void

Establishes a new clip region by intersecting the current clip region with the current path as it would be filled by CairoContext::fill() or cairo_fill() and according to the current fill rule (see CairoContext::setFillRule() or cairo_set_fill_rule()).

After CairoContext::clip() or cairo_clip(), the current path will be cleared from the cairo context.

The current clip region affects all drawing operations by effectively masking out any changes to the surface that are outside the current clip region.

Calling CairoContext::clip() or cairo_clip()
can only make the clip region smaller, never larger. But the current clip is part of the
graphics state, so a temporary restriction of the clip region can be achieved by calling
CairoContext::clip() or cairo_clip() within a
CairoContext::save()/CairoContext::restore() or
cairo_save()/cairo_restore() pair.
The only other means of increasing the size of the clip region is
CairoContext::resetClip() or procedural cairo_reset_clip().

Список параметров

context

A valid CairoContext object

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

$context->clip();

?>

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

cairo_clip($context);

?>

Смотрите также

  • CairoContext::resetClip() - The resetClip purpose
  • cairo_reset_clip() - The resetClip purpose


Computes the area inside the current clip

  • « CairoContext::clip
  • CairoContext::clipPreserve »
  • PHP Manual
  • CairoContext
  • Computes the area inside the current clip

CairoContext::clipExtents

cairo_clip_extents

(PECL cairo >= 0.1.0)

CairoContext::clipExtents -- cairo_clip_extents — Computes the area inside the current clip

Описание

Объектно-ориентированный стиль (method):

public CairoContext::clipExtents ( void ) : array

Процедурный стиль:

cairo_clip_extents ( CairoContext $context ) : array

Computes a bounding box in user coordinates covering the area inside the current clip.

Список параметров

context

A valid CairoContext object

Возвращаемые значения

An array containing the (float)x1, (float)y1, (float)x2, (float)y2, coordinates covering the area inside the current clip

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

var_dump($context->clipExtents());
?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  [0]=>
  float(0)
  [1]=>
  float(0)
  [2]=>
  float(50)
  [3]=>
  float(50)
}

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

var_dump(cairo_clip_extents($context));

?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  [0]=>
  float(0)
  [1]=>
  float(0)
  [2]=>
  float(50)
  [3]=>
  float(50)
}

Смотрите также

  • CairoContext::clip() - Establishes a new clip region


Establishes a new clip region from the current clip

  • « CairoContext::clipExtents
  • CairoContext::clipRectangleList »
  • PHP Manual
  • CairoContext
  • Establishes a new clip region from the current clip

CairoContext::clipPreserve

cairo_clip_preserve

(PECL cairo >= 0.1.0)

CairoContext::clipPreserve -- cairo_clip_preserve — Establishes a new clip region from the current clip

Описание

Объектно-ориентированный стиль (method):

public CairoContext::clipPreserve ( void ) : void

Процедурный стиль:

cairo_clip_preserve ( CairoContext $context ) : void

Establishes a new clip region by intersecting the current clip region with the current path as it would be filled by Context.fill() and according to the current FILL RULE (see CairoContext::setFillRule() or cairo_set_fill_rule()).

Unlike CairoContext::clip(), CairoContext::clipPreserve() preserves the path within the Context. The current clip region affects all drawing operations by effectively masking out any changes to the surface that are outside the current clip region.

Calling CairoContext::clipPreserve() can only make the clip region smaller, never larger. But the current clip is part of the graphics state, so a temporary restriction of the clip region can be achieved by calling CairoContext::clipPreserve() within a CairoContext::save()/CairoContext::restore() pair. The only other means of increasing the size of the clip region is CairoContext::resetClip().

Список параметров

context

A valid CairoContext object

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

$context->clipPreserve();

?>

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

cairo_clip_preserve($context);

?>

Смотрите также

  • CairoContext::save() - The save purpose
  • CairoContext::restore() - The restore purpose
  • CairoContext::resetClip() - The resetClip purpose


Retrieves the current clip as a list of rectangles

  • « CairoContext::clipPreserve
  • CairoContext::closePath »
  • PHP Manual
  • CairoContext
  • Retrieves the current clip as a list of rectangles

CairoContext::clipRectangleList

cairo_clip_rectangle_list

(PECL cairo >= 0.1.0)

CairoContext::clipRectangleList -- cairo_clip_rectangle_list — Retrieves the current clip as a list of rectangles

Описание

Объектно-ориентированный стиль (method):

public CairoContext::clipRectangleList ( void ) : array

Процедурный стиль:

cairo_clip_rectangle_list ( CairoContext $context ) : array

Returns a list-type array with the current clip region as a list of rectangles in user coordinates

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

Возвращаемые значения

An array of user-space represented rectangles for the current clip

(The status in the list may be CAIRO_STATUS_CLIP_NOT_REPRESENTABLE to indicate that the clip region cannot be represented as a list of user-space rectangles. The status may have other values to indicate other errors.)

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

var_dump($context->clipRectangleList());

?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(4) {
    ["x"]=>
    float(0)
    ["y"]=>
    float(0)
    ["width"]=>
    float(50)
    ["height"]=>
    float(50)
  }
}

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

var_dump(cairo_clip_rectangle_list($context));

?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(4) {
    ["x"]=>
    float(0)
    ["y"]=>
    float(0)
    ["width"]=>
    float(50)
    ["height"]=>
    float(50)
  }
}

Смотрите также

  • Classname::Method()


Closes the current path

  • « CairoContext::clipRectangleList
  • CairoContext::__construct »
  • PHP Manual
  • CairoContext
  • Closes the current path

CairoContext::closePath

cairo_close_path

(PECL cairo >= 0.1.0)

CairoContext::closePath -- cairo_close_path — Closes the current path

Описание

Объектно-ориентированный стиль (method):

public CairoContext::closePath ( void ) : void

Процедурный стиль:

cairo_close_path ( CairoContext $context ) : void

Adds a line segment to the path from the current point to the beginning of the current sub-path, (the most recent point passed to CairoContext::moveTo()), and closes this sub-path. After this call the current point will be at the joined endpoint of the sub-path.

The behavior of close_path() is distinct from simply calling CairoContext::lineTo() with the equivalent coordinate in the case of stroking. When a closed sub-path is stroked, there are no caps on the ends of the sub-path. Instead, there is a line join connecting the final and initial segments of the sub-path.

If there is no current point before the call to CairoContext::closePath(), this function will have no effect.

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

$context->closePath();

?>

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

cairo_close_path($context);

?>

Смотрите также

  • CairoContext::copyPath() - Creates a copy of the current path


Creates a new CairoContext

  • « CairoContext::closePath
  • CairoContext::copyPage »
  • PHP Manual
  • CairoContext
  • Creates a new CairoContext

CairoContext::__construct

(PECL cairo >= 0.1.0)

CairoContext::__construct — Creates a new CairoContext

Описание

public CairoContext::__construct ( CairoSurface $surface )

Creates a new CairoContext object to draw

Список параметров

surface

A valid CairoSurface like CairoImageSurface or CairoPdfSurface

Возвращаемые значения

A CairoContext

Примеры

Пример #1 CairoContext::__construct() example

<?php
// The surface to work on
$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

// Create a new CairoContext for the CairoSurface
$context = new CairoContext($surface);

?>

Смотрите также

  • Cairo::Method()


Emits the current page

  • « CairoContext::__construct
  • CairoContext::copyPath »
  • PHP Manual
  • CairoContext
  • Emits the current page

CairoContext::copyPage

cairo_copy_page

(PECL cairo >= 0.1.0)

CairoContext::copyPage -- cairo_copy_page — Emits the current page

Описание

Объектно-ориентированный стиль (method):

public CairoContext::copyPage ( void ) : void

Процедурный стиль:

cairo_copy_page ( CairoContext $context ) : void

Emits the current page for backends that support multiple pages, but doesn't clear it, so, the contents of the current page will be retained for the next page too. Use CairoContext::showPage() if you want to get an empty page after the emission.

This is a convenience function that simply calls CairoSurface::copyPage() on CairoContext's target.

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

$context->copyPage();

?>

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

cairo_copy_page($context);

?>

Смотрите также

  • CairoContext::showPage() - The showPage purpose
  • CairoSurface::copyPage() - The copyPage purpose


Creates a copy of the current path

  • « CairoContext::copyPage
  • CairoContext::copyPathFlat »
  • PHP Manual
  • CairoContext
  • Creates a copy of the current path

CairoContext::copyPath

cairo_copy_path

(PECL cairo >= 0.1.0)

CairoContext::copyPath -- cairo_copy_path — Creates a copy of the current path

Описание

Объектно-ориентированный стиль (method):

public CairoContext::copyPath ( void ) : CairoPath

Процедурный стиль:

cairo_copy_path ( CairoContext $context ) : CairoPath

Creates a copy of the current path and returns it to the user as a CairoPath. See CairoPath for hints on how to iterate over the returned data structure.

This function will always return a valid CairoPath object, but the result will have no data, if either of the following conditions hold:

  • 1. If there is insufficient memory to copy the path. In this case CairoPath->status will be set to CAIRO_STATUS_NO_MEMORY.
  • 2. If context is already in an error state. In this case CairoPath->status will contain the same status that would be returned by cairo_status().
In either case, CairoPath->status will be set to CAIRO_STATUS_NO_MEMORY (regardless of what the error status in cr might have been).

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

Возвращаемые значения

A copy of the current CairoPath in the context

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

var_dump($context->copyPath())

?>

Результатом выполнения данного примера будет что-то подобное:

object(CairoPath)#3 (0) {
}

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

var_dump(cairo_copy_path($context));

?>

Результатом выполнения данного примера будет что-то подобное:

object(CairoPath)#3 (0) {
}

Смотрите также

  • CairoContext::closePath() - Closes the current path


Gets a flattened copy of the current path

  • « CairoContext::copyPath
  • CairoContext::curveTo »
  • PHP Manual
  • CairoContext
  • Gets a flattened copy of the current path

CairoContext::copyPathFlat

cairo_copy_path_flat

(PECL cairo >= 0.1.0)

CairoContext::copyPathFlat -- cairo_copy_path_flat — Gets a flattened copy of the current path

Описание

Объектно-ориентированный стиль (method):

public CairoContext::copyPathFlat ( void ) : CairoPath

Процедурный стиль:

cairo_copy_path_flat ( CairoContext $context ) : CairoPath

Gets a flattened copy of the current path and returns it to the user as a CairoPath.

This function is like CairoContext::copyPath() except that any curves in the path will be approximated with piecewise-linear approximations, (accurate to within the current tolerance value). That is, the result is guaranteed to not have any elements of type CAIRO_PATH_CURVE_TO which will instead be replaced by a series of CAIRO_PATH_LINE_TO elements.

Список параметров

context

A CairoContext object

Возвращаемые значения

A copy of the current path

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

var_dump($context->copyPathFlat());

?>

Результатом выполнения данного примера будет что-то подобное:

object(CairoPath)#3 (0) {
}

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

var_dump(cairo_copy_path_flat($context));

?>

Результатом выполнения данного примера будет что-то подобное:

object(CairoPath)#3 (0) {
}

Смотрите также

  • CairoContext::copyPath() - Creates a copy of the current path
  • CairoContext::closePath() - Closes the current path


Adds a curve

  • « CairoContext::copyPathFlat
  • CairoContext::deviceToUser »
  • PHP Manual
  • CairoContext
  • Adds a curve

CairoContext::curveTo

cairo_curve_to

(PECL cairo >= 0.1.0)

CairoContext::curveTo -- cairo_curve_to — Adds a curve

Описание

Объектно-ориентированный стиль (method):

public CairoContext::curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 ) : void

Процедурный стиль:

cairo_curve_to ( CairoContext $context , float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 ) : void

Adds a cubic Bezier spline to the path from the current point to position x3 ,y3 in user-space coordinates, using x1, y1 and x2, y2 as the control points. After this call the current point will be x3, y3.

If there is no current point before the call to CairoContext::curveTo() this function will behave as if preceded by a call to CairoContext::moveTo() (x1, y1).

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

x1

First control point in the x axis for the curve

y1

First control point in the y axis for the curve

x2

Second control point in x axis for the curve

y2

Second control point in y axis for the curve

x3

Final point in the x axis for the curve

y3

Final point in the y axis for the curve

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->setSourceRgb(0, 0, 0);

$c->paint();

$c->moveTo(10, 50);
$c->setLineWidth(5);
$c->setSourceRgb(.1, 0, 1);
$c->curveTo(20, 80, 80, 20, 90, 50);
$c->stroke();

$s->writeToPng(dirname(__FILE__) . '/curveTo.png');
?>

Пример #2 Процедурный стиль

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_set_source_rgb($c, 0, 0, 0);

cairo_paint($c);

cairo_move_to($c, 10, 50);
cairo_set_line_width($c, 5);
cairo_set_source_rgb($c, .1, 0, 1);
cairo_curve_to($c, 20, 80, 80, 20, 90, 50);
cairo_stroke($c);

cairo_surface_write_to_png($s, dirname(__FILE__) . '/curve_to.png');
?>

Смотрите также

  • CairoContext::moveTo() - The moveTo purpose


Transform a coordinate

  • « CairoContext::curveTo
  • CairoContext::deviceToUserDistance »
  • PHP Manual
  • CairoContext
  • Transform a coordinate

CairoContext::deviceToUser

cairo_device_to_user

(PECL cairo >= 0.1.0)

CairoContext::deviceToUser -- cairo_device_to_user — Transform a coordinate

Описание

Объектно-ориентированный стиль (method):

public CairoContext::deviceToUser ( float $x , float $y ) : array

Процедурный стиль:

cairo_device_to_user ( CairoContext $context , float $x , float $y ) : array

Transform a coordinate from device space to user space by multiplying the given point by the inverse of the current transformation matrix (CTM).

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

x

x value of the coordinate

y

y value of the coordinate

Возвращаемые значения

An array containing the x and y coordinates in the user-space

Смотрите также

  • CairoContext::deviceToUserDistance() - Transform a distance


Transform a distance

  • « CairoContext::deviceToUser
  • CairoContext::fill »
  • PHP Manual
  • CairoContext
  • Transform a distance

CairoContext::deviceToUserDistance

cairo_device_to_user_distance

(PECL cairo >= 0.1.0)

CairoContext::deviceToUserDistance -- cairo_device_to_user_distance — Transform a distance

Описание

Объектно-ориентированный стиль (method):

public CairoContext::deviceToUserDistance ( float $x , float $y ) : array

Процедурный стиль:

cairo_device_to_user_distance ( CairoContext $context , float $x , float $y ) : array

Transform a distance vector from device space to user space. This function is similar to CairoContext::deviceToUser() or cairo_device_to_user() except that the translation components of the inverse Cairo Transformation Matrix will be ignored when transforming (x,y).

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

x

X component of a distance vector

y

Y component of a distance vector

Возвращаемые значения

Returns an array with the x and y values of a distance vector in the user-space

Смотрите также

  • CairoContext::deviceToUser() - Transform a coordinate


Fills the current path

  • « CairoContext::deviceToUserDistance
  • CairoContext::fillExtents »
  • PHP Manual
  • CairoContext
  • Fills the current path

CairoContext::fill

cairo_fill

(PECL cairo >= 0.1.0)

CairoContext::fill -- cairo_fill — Fills the current path

Описание

Объектно-ориентированный стиль (method):

public CairoContext::fill ( void ) : void

Процедурный стиль:

cairo_fill ( CairoContext $context ) : void

A drawing operator that fills the current path according to the current CairoFillRule, (each sub-path is implicitly closed before being filled). After CairoContext::fill() or cairo_fill(), the current path will be cleared from the CairoContext.

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->setSourceRgb(0, 0, 0);
$c->paint();

$c->setSourceRgb(1, 1, 1);
$c->rectangle(0, 0, 50, 50);
$c->fill();
$c->setSourceRgb(0, 1, 0);
$c->rectangle(50, 50, 50, 50);
$c->fill();

$s->writeToPng(dirname(__FILE__) . '/CairoContext_fill.png');

?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_set_source_rgb($c, 0, 0, 0);
cairo_paint($c);

cairo_set_source_rgb($c, 1, 1, 1);
cairo_rectangle($c, 0, 0, 50, 50);
cairo_fill($c);
cairo_set_source_rgb($c, 0, 1, 0);
cairo_rectangle($c, 50, 50, 50, 50);
cairo_fill($c);

cairo_surface_write_to_png($s, dirname(__FILE__) . '/cairo_fill.png');

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • CairoContext::setFillRule() - The setFillRule purpose
  • ContextContext::fillPreserve()
  • CairoFillRule


Computes the filled area

  • « CairoContext::fill
  • CairoContext::fillPreserve »
  • PHP Manual
  • CairoContext
  • Computes the filled area

CairoContext::fillExtents

cairo_fill_extents

(PECL cairo >= 0.1.0)

CairoContext::fillExtents -- cairo_fill_extents — Computes the filled area

Описание

Объектно-ориентированный стиль (method):

public CairoContext::fillExtents ( void ) : array

Процедурный стиль:

cairo_fill_extents ( CairoContext $context ) : array

Computes a bounding box in user coordinates covering the area that would be affected, (the "inked" area), by a CairoContext::fill() operation given the current path and fill parameters. If the current path is empty, returns an empty rectangle (0,0,0,0). Surface dimensions and clipping are not taken into account.

Contrast with CairoContext::pathExtents(), which is similar, but returns non-zero extents for some paths with no inked area, (such as a simple line segment).

Note that CairoContext::fillExtents() must necessarily do more work to compute the precise inked areas in light of the fill rule, so CairoContext::pathExtents() may be more desirable for sake of performance if the non-inked path extents are desired.

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

Возвращаемые значения

An array with the coordinates of the afected area

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • CairoContext::fill() - Fills the current path
  • CairoContext::setFillRule() - The setFillRule purpose
  • CairoContext::fillPreserve() - Fills and preserve the current path


Fills and preserve the current path

  • « CairoContext::fillExtents
  • CairoContext::fontExtents »
  • PHP Manual
  • CairoContext
  • Fills and preserve the current path

CairoContext::fillPreserve

cairo_fill_preserve

(PECL cairo >= 0.1.0)

CairoContext::fillPreserve -- cairo_fill_preserve — Fills and preserve the current path

Описание

Объектно-ориентированный стиль (method):

public CairoContext::fillPreserve ( void ) : void

Процедурный стиль:

cairo_fill_preserve ( CairoContext $context ) : void

A drawing operator that fills the current path according to the current CairoFillRule, (each sub-path is implicitly closed before being filled). Unlike CairoContext::fill(), CairoContext::fillPreserve() (Procedural cairo_fill(), cairo_fill_preserve(), respectively) preserves the path within the Context.

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • CairoContext::setFillRule() - The setFillRule purpose
  • CairoContext::fill() - Fills the current path


Get the font extents

  • « CairoContext::fillPreserve
  • CairoContext::getAntialias »
  • PHP Manual
  • CairoContext
  • Get the font extents

CairoContext::fontExtents

cairo_font_extents

(PECL cairo >= 0.1.0)

CairoContext::fontExtents -- cairo_font_extents — Get the font extents

Описание

Объектно-ориентированный стиль (method):

public CairoContext::fontExtents ( void ) : array

Процедурный стиль:

cairo_font_extents ( CairoContext $context ) : array

Gets the font extents for the currently selected font.

Список параметров

context

Description...

Возвращаемые значения

An array containing the font extents for the current font.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$sur = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);
$con = new CairoContext($sur);

var_dump($con->fontExtents());

?>

Результатом выполнения данного примера будет что-то подобное:

array(5) {
  ["ascent"]=>
  float(10)
  ["descent"]=>
  float(3)
  ["height"]=>
  float(13.3125)
  ["max_x_advance"]=>
  float(26.65625)
  ["max_y_advance"]=>
  float(0)
}

Пример #2 Процедурный стиль

<?php

$sur = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);
$con = cairo_create($sur);

var_dump(cairo_font_extents($con));

?>

Результатом выполнения данного примера будет что-то подобное:

array(5) {
  ["ascent"]=>
  float(10)
  ["descent"]=>
  float(3)
  ["height"]=>
  float(13.3125)
  ["max_x_advance"]=>
  float(26.65625)
  ["max_y_advance"]=>
  float(0)
}

Смотрите также

  • Classname::Method()


Retrieves the current antialias mode

  • « CairoContext::fontExtents
  • CairoContext::getCurrentPoint »
  • PHP Manual
  • CairoContext
  • Retrieves the current antialias mode

CairoContext::getAntialias

cairo_get_antialias

(PECL cairo >= 0.1.0)

CairoContext::getAntialias -- cairo_get_antialias — Retrieves the current antialias mode

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getAntialias ( void ) : int

Процедурный стиль:

cairo_get_antialias ( CairoContext $context ) : int

Returns the current CairoAntialias mode, as set by CairoContext::setAntialias().

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

Возвращаемые значения

The current CairoAntialias mode.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);
$context = new CairoContext($surface);

$context->setAntialias(CairoAntialias::MODE_SUBPIXEL);

var_dump($context->getAntialias());

?>

Результатом выполнения данного примера будет что-то подобное:

int(3)

Пример #2 Процедурный стиль

<?php

$sur = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);
$con = cairo_create($sur);

cairo_set_antialias($con, CAIRO_ANTIALIAS_SUBPIXEL);

var_dump(cairo_get_antialias($con));

?>

Результатом выполнения данного примера будет что-то подобное:

int(3)

Смотрите также

  • CairoContext::setAntialias() - The setAntialias purpose
  • CairoAntialias


The getCurrentPoint purpose

  • « CairoContext::getAntialias
  • CairoContext::getDash »
  • PHP Manual
  • CairoContext
  • The getCurrentPoint purpose

CairoContext::getCurrentPoint

cairo_get_current_point

(PECL cairo >= 0.1.0)

CairoContext::getCurrentPoint -- cairo_get_current_point — The getCurrentPoint purpose

Описание

Объектно-ориентированный стиль

public CairoContext::getCurrentPoint ( void ) : array

Процедурный стиль

cairo_get_current_point ( CairoContext $context ) : array

Gets the current point of the current path, which is conceptually the final point reached by the path so far.

The current point is returned in the user-space coordinate system. If there is no defined current point or if cr is in an error status, x and y will both be set to 0.0. It is possible to check this in advance with CairoContext::hasCurrentPoint().

Most path construction functions alter the current point. See the following for details on how they affect the current point: CairoContext::newPath(),
CairoContext::newSubPath(), CairoContext::appendPath(), CairoContext::closePath(), CairoContext::moveTo(),
CairoContext::lineTo(), CairoContext::curveTo(), CairoContext::relMoveTo(),
CairoContext::relLineTo(), CairoContext::relCurveTo(),
CairoContext::arc(), CairoContext::arcNegative(), CairoContext::rectangle(),
CairoContext::textPath(), CairoContext::glyphPath().

Some functions use and alter the current point but do not otherwise change current path: CairoContext::showText().

Some functions unset the current path and as a result, current point: CairoContext::fill(), CairoContext::stroke().

Список параметров

context

A valid CairoContext object.

Возвращаемые значения

An array containing the x (index 0) and y (index 1) coordinates of the current point.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->moveTo(10, 10);

var_dump($c->getCurrentPoint());

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  float(10)
  [1]=>
  float(10)
}

Пример #2 Процедурный стиль

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_move_to($c, 10, 10);

var_dump(cairo_get_current_point($c));

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  float(10)
  [1]=>
  float(10)
}

Смотрите также

  • CairoContext::moveTo() - The moveTo purpose
  • CairoContext::hasCurrentPoint() - The hasCurrentPoint purpose


The getDash purpose

  • « CairoContext::getCurrentPoint
  • CairoContext::getDashCount »
  • PHP Manual
  • CairoContext
  • The getDash purpose

CairoContext::getDash

cairo_get_dash

(PECL cairo >= 0.1.0)

CairoContext::getDash -- cairo_get_dash — The getDash purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getDash ( void ) : array

Процедурный стиль:

cairo_get_dash ( CairoContext $context ) : array

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getDashCount purpose

  • « CairoContext::getDash
  • CairoContext::getFillRule »
  • PHP Manual
  • CairoContext
  • The getDashCount purpose

CairoContext::getDashCount

cairo_get_dash_count

(PECL cairo >= 0.1.0)

CairoContext::getDashCount -- cairo_get_dash_count — The getDashCount purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getDashCount ( void ) : int

Процедурный стиль:

cairo_get_dash_count ( CairoContext $context ) : int

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getFillRule purpose

  • « CairoContext::getDashCount
  • CairoContext::getFontFace »
  • PHP Manual
  • CairoContext
  • The getFillRule purpose

CairoContext::getFillRule

cairo_get_fill_rule

(PECL cairo >= 0.1.0)

CairoContext::getFillRule -- cairo_get_fill_rule — The getFillRule purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getFillRule ( void ) : int

Процедурный стиль:

cairo_get_fill_rule ( CairoContext $context ) : int

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getFontFace purpose

  • « CairoContext::getFillRule
  • CairoContext::getFontMatrix »
  • PHP Manual
  • CairoContext
  • The getFontFace purpose

CairoContext::getFontFace

cairo_get_font_face

(PECL cairo >= 0.1.0)

CairoContext::getFontFace -- cairo_get_font_face — The getFontFace purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getFontFace ( void ) : void

Процедурный стиль:

cairo_get_font_face ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getFontMatrix purpose

  • « CairoContext::getFontFace
  • CairoContext::getFontOptions »
  • PHP Manual
  • CairoContext
  • The getFontMatrix purpose

CairoContext::getFontMatrix

cairo_get_font_matrix

(PECL cairo >= 0.1.0)

CairoContext::getFontMatrix -- cairo_get_font_matrix — The getFontMatrix purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getFontMatrix ( void ) : void

Процедурный стиль:

cairo_get_font_matrix ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getFontOptions purpose

  • « CairoContext::getFontMatrix
  • CairoContext::getGroupTarget »
  • PHP Manual
  • CairoContext
  • The getFontOptions purpose

CairoContext::getFontOptions

cairo_get_font_options

(PECL cairo >= 0.1.0)

CairoContext::getFontOptions -- cairo_get_font_options — The getFontOptions purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getFontOptions ( void ) : void

Процедурный стиль:

cairo_get_font_options ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getGroupTarget purpose

  • « CairoContext::getFontOptions
  • CairoContext::getLineCap »
  • PHP Manual
  • CairoContext
  • The getGroupTarget purpose

CairoContext::getGroupTarget

cairo_get_group_target

(PECL cairo >= 0.1.0)

CairoContext::getGroupTarget -- cairo_get_group_target — The getGroupTarget purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getGroupTarget ( void ) : void

Процедурный стиль:

cairo_get_group_target ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getLineCap purpose

  • « CairoContext::getGroupTarget
  • CairoContext::getLineJoin »
  • PHP Manual
  • CairoContext
  • The getLineCap purpose

CairoContext::getLineCap

cairo_get_line_cap

(PECL cairo >= 0.1.0)

CairoContext::getLineCap -- cairo_get_line_cap — The getLineCap purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getLineCap ( void ) : int

Процедурный стиль:

cairo_get_line_cap ( CairoContext $context ) : int

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getLineJoin purpose

  • « CairoContext::getLineCap
  • CairoContext::getLineWidth »
  • PHP Manual
  • CairoContext
  • The getLineJoin purpose

CairoContext::getLineJoin

cairo_get_line_join

(PECL cairo >= 0.1.0)

CairoContext::getLineJoin -- cairo_get_line_join — The getLineJoin purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getLineJoin ( void ) : int

Процедурный стиль:

cairo_get_line_join ( CairoContext $context ) : int

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getLineWidth purpose

  • « CairoContext::getLineJoin
  • CairoContext::getMatrix »
  • PHP Manual
  • CairoContext
  • The getLineWidth purpose

CairoContext::getLineWidth

cairo_get_line_width

(PECL cairo >= 0.1.0)

CairoContext::getLineWidth -- cairo_get_line_width — The getLineWidth purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getLineWidth ( void ) : float

Процедурный стиль:

cairo_get_line_width ( CairoContext $context ) : float

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getMatrix purpose

  • « CairoContext::getLineWidth
  • CairoContext::getMiterLimit »
  • PHP Manual
  • CairoContext
  • The getMatrix purpose

CairoContext::getMatrix

cairo_get_matrix

(PECL cairo >= 0.1.0)

CairoContext::getMatrix -- cairo_get_matrix — The getMatrix purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getMatrix ( void ) : void

Процедурный стиль:

cairo_get_matrix ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getMiterLimit purpose

  • « CairoContext::getMatrix
  • CairoContext::getOperator »
  • PHP Manual
  • CairoContext
  • The getMiterLimit purpose

CairoContext::getMiterLimit

cairo_get_miter_limit

(PECL cairo >= 0.1.0)

CairoContext::getMiterLimit -- cairo_get_miter_limit — The getMiterLimit purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getMiterLimit ( void ) : float

Процедурный стиль:

cairo_get_miter_limit ( CairoContext $context ) : float

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getOperator purpose

  • « CairoContext::getMiterLimit
  • CairoContext::getScaledFont »
  • PHP Manual
  • CairoContext
  • The getOperator purpose

CairoContext::getOperator

cairo_get_operator

(PECL cairo >= 0.1.0)

CairoContext::getOperator -- cairo_get_operator — The getOperator purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getOperator ( void ) : int

Процедурный стиль:

cairo_get_operator ( CairoContext $context ) : int

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getScaledFont purpose

  • « CairoContext::getOperator
  • CairoContext::getSource »
  • PHP Manual
  • CairoContext
  • The getScaledFont purpose

CairoContext::getScaledFont

cairo_get_scaled_font

(PECL cairo >= 0.1.0)

CairoContext::getScaledFont -- cairo_get_scaled_font — The getScaledFont purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getScaledFont ( void ) : void

Процедурный стиль:

cairo_get_scaled_font ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getSource purpose

  • « CairoContext::getScaledFont
  • CairoContext::getTarget »
  • PHP Manual
  • CairoContext
  • The getSource purpose

CairoContext::getSource

cairo_get_source

(PECL cairo >= 0.1.0)

CairoContext::getSource -- cairo_get_source — The getSource purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getSource ( void ) : void

Процедурный стиль:

cairo_get_source ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getTarget purpose

  • « CairoContext::getSource
  • CairoContext::getTolerance »
  • PHP Manual
  • CairoContext
  • The getTarget purpose

CairoContext::getTarget

cairo_get_target

(PECL cairo >= 0.1.0)

CairoContext::getTarget -- cairo_get_target — The getTarget purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getTarget ( void ) : void

Процедурный стиль:

cairo_get_target ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getTolerance purpose

  • « CairoContext::getTarget
  • CairoContext::glyphPath »
  • PHP Manual
  • CairoContext
  • The getTolerance purpose

CairoContext::getTolerance

cairo_get_tolerance

(PECL cairo >= 0.1.0)

CairoContext::getTolerance -- cairo_get_tolerance — The getTolerance purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::getTolerance ( void ) : float

Процедурный стиль:

cairo_get_tolerance ( CairoContext $context ) : float

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The glyphPath purpose

  • « CairoContext::getTolerance
  • CairoContext::hasCurrentPoint »
  • PHP Manual
  • CairoContext
  • The glyphPath purpose

CairoContext::glyphPath

cairo_glyph_path

(PECL cairo >= 0.1.0)

CairoContext::glyphPath -- cairo_glyph_path — The glyphPath purpose

Описание

Объектно-ориентированный стиль

public CairoContext::glyphPath ( array $glyphs ) : void

Процедурный стиль

cairo_glyph_path ( CairoContext $context , array $glyphs ) : void

Adds closed paths for the glyphs to the current path. The generated path if filled, achieves an effect similar to that of CairoContext::showGlyphs().

Список параметров

context

A CairoContext object

glyphs

Array of glyphs

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...


The hasCurrentPoint purpose

  • « CairoContext::glyphPath
  • CairoContext::identityMatrix »
  • PHP Manual
  • CairoContext
  • The hasCurrentPoint purpose

CairoContext::hasCurrentPoint

cairo_has_current_point

(PECL cairo >= 0.1.0)

CairoContext::hasCurrentPoint -- cairo_has_current_point — The hasCurrentPoint purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::hasCurrentPoint ( void ) : bool

Процедурный стиль:

cairo_has_current_point ( CairoContext $context ) : bool

Returns whether a current point is defined on the current path. See CairoContext::getCurrentPoint() for details on the current point.

Список параметров

context

A valid CairoContext object.

Возвращаемые значения

Whether a current point is defined

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

var_dump($c->hasCurrentPoint());

$c->moveTo(10, 10);

var_dump($c->hasCurrentPoint());

?>

Результат выполнения данного примера:

bool(false)
bool(true)

Пример #2 Процедурный стиль

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

var_dump(cairo_has_current_point($c));

cairo_move_to($c, 10, 10);

var_dump(cairo_has_current_point($c));

?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • CairoContext::getCurrentPoint() - The getCurrentPoint purpose


The identityMatrix purpose

  • « CairoContext::hasCurrentPoint
  • CairoContext::inFill »
  • PHP Manual
  • CairoContext
  • The identityMatrix purpose

CairoContext::identityMatrix

cairo_identity_matrix

(PECL cairo >= 0.1.0)

CairoContext::identityMatrix -- cairo_identity_matrix — The identityMatrix purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::identityMatrix ( void ) : void

Процедурный стиль:

cairo_identity_matrix ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The inFill purpose

  • « CairoContext::identityMatrix
  • CairoContext::inStroke »
  • PHP Manual
  • CairoContext
  • The inFill purpose

CairoContext::inFill

cairo_in_fill

(PECL cairo >= 0.1.0)

CairoContext::inFill -- cairo_in_fill — The inFill purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::inFill ( float $x , float $y ) : bool

Процедурный стиль:

cairo_in_fill ( CairoContext $context , float $x , float $y ) : bool

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The inStroke purpose

  • « CairoContext::inFill
  • CairoContext::lineTo »
  • PHP Manual
  • CairoContext
  • The inStroke purpose

CairoContext::inStroke

cairo_in_stroke

(PECL cairo >= 0.1.0)

CairoContext::inStroke -- cairo_in_stroke — The inStroke purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::inStroke ( float $x , float $y ) : bool

Процедурный стиль:

cairo_in_stroke ( CairoContext $context , float $x , float $y ) : bool

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The lineTo purpose

  • « CairoContext::inStroke
  • CairoContext::mask »
  • PHP Manual
  • CairoContext
  • The lineTo purpose

CairoContext::lineTo

cairo_line_to

(PECL cairo >= 0.1.0)

CairoContext::lineTo -- cairo_line_to — The lineTo purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::lineTo ( float $x , float $y ) : void

Процедурный стиль:

cairo_line_to ( CairoContext $context , float $x , float $y ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The mask purpose

  • « CairoContext::lineTo
  • CairoContext::maskSurface »
  • PHP Manual
  • CairoContext
  • The mask purpose

CairoContext::mask

cairo_mask

(PECL cairo >= 0.1.0)

CairoContext::mask -- cairo_mask — The mask purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::mask ( CairoPattern $pattern ) : void

Процедурный стиль:

cairo_mask ( CairoContext $context , CairoPattern $pattern ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

pattern

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The maskSurface purpose

  • « CairoContext::mask
  • CairoContext::moveTo »
  • PHP Manual
  • CairoContext
  • The maskSurface purpose

CairoContext::maskSurface

cairo_mask_surface

(PECL cairo >= 0.1.0)

CairoContext::maskSurface -- cairo_mask_surface — The maskSurface purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::maskSurface ( CairoSurface $surface [, float $x [, float $y ]] ) : void

Процедурный стиль:

cairo_mask_surface ( CairoContext $context , CairoSurface $surface [, float $x [, float $y ]] ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

surface

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The moveTo purpose

  • « CairoContext::maskSurface
  • CairoContext::newPath »
  • PHP Manual
  • CairoContext
  • The moveTo purpose

CairoContext::moveTo

cairo_move_to

(PECL cairo >= 0.1.0)

CairoContext::moveTo -- cairo_move_to — The moveTo purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::moveTo ( float $x , float $y ) : void

Процедурный стиль:

cairo_move_to ( CairoContext $context , float $x , float $y ) : void

Begin a new sub-path. After this call the current point will be (x, y).

Список параметров

context

A valid CairoContext object.

x

The x coordinate of the new position.

y

The y coordinate of the new position

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->setSourceRgb(0, 0, 0);
$c->paint();

// Move 10 pixels across, and 10 pixels down
$c->moveTo(10, 10);
$c->lineTo(90, 90);
$c->setLineWidth(2);
$c->setSourceRgb(1, 1, 1);
$c->stroke();

// Move 90 pixels across, and 10 pixels down
$c->moveTo(90, 10);
$c->lineTo(10, 90);
$c->setLineWidth(2);
$c->setSourceRgb(1, 1, 1);
$c->stroke();

$s->writeToPng(dirname(__FILE__) . '/CairoContext_moveTo.png');
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_set_source_rgb($c, 0, 0, 0);
cairo_paint($c);

// Move 10 pixels across, and 10 pixels down
cairo_move_to($c, 10, 10);
cairo_line_to($c, 90, 90);
cairo_set_line_width($c, 2);
cairo_set_source_rgb($c, 1, 1, 1);
cairo_stroke($c);

// Move 90 pixels across, and 10 pixels down
cairo_move_to($c, 90, 10);
cairo_line_to($c, 10, 90);
cairo_set_line_width($c, 2);
cairo_set_source_rgb($c, 1, 1, 1);
cairo_stroke($c);

cairo_surface_write_to_png($s, dirname(__FILE__) . '/cairo_move_to.png');
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The newPath purpose

  • « CairoContext::moveTo
  • CairoContext::newSubPath »
  • PHP Manual
  • CairoContext
  • The newPath purpose

CairoContext::newPath

cairo_new_path

(PECL cairo >= 0.1.0)

CairoContext::newPath -- cairo_new_path — The newPath purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::newPath ( void ) : void

Процедурный стиль:

cairo_new_path ( CairoContext $context ) : void

Clears the current path. After this call there will be no path and no current point.

Список параметров

context

A valid CairoContext object.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
// [...]
CairoContext::newPath();
?>

Пример #2 Процедурный стиль

<?php
// [...]
cairo_new_path($context);
?>

Смотрите также

  • CairoContext::appendPath() - Appends a path to current path
  • CairoContext::closePath() - Closes the current path


The newSubPath purpose

  • « CairoContext::newPath
  • CairoContext::paint »
  • PHP Manual
  • CairoContext
  • The newSubPath purpose

CairoContext::newSubPath

cairo_new_sub_path

(PECL cairo >= 0.1.0)

CairoContext::newSubPath -- cairo_new_sub_path — The newSubPath purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::newSubPath ( void ) : void

Процедурный стиль:

cairo_new_sub_path ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The paint purpose

  • « CairoContext::newSubPath
  • CairoContext::paintWithAlpha »
  • PHP Manual
  • CairoContext
  • The paint purpose

CairoContext::paint

cairo_paint

(PECL cairo >= 0.1.0)

CairoContext::paint -- cairo_paint — The paint purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::paint ( void ) : void

Процедурный стиль:

cairo_paint ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The paintWithAlpha purpose

  • « CairoContext::paint
  • CairoContext::pathExtents »
  • PHP Manual
  • CairoContext
  • The paintWithAlpha purpose

CairoContext::paintWithAlpha

cairo_paint_with_alpha

(PECL cairo >= 0.1.0)

CairoContext::paintWithAlpha -- cairo_paint_with_alpha — The paintWithAlpha purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::paintWithAlpha ( float $alpha ) : void

Процедурный стиль:

cairo_paint_with_alpha ( CairoContext $context , float $alpha ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

alpha

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The pathExtents purpose

  • « CairoContext::paintWithAlpha
  • CairoContext::popGroup »
  • PHP Manual
  • CairoContext
  • The pathExtents purpose

CairoContext::pathExtents

cairo_path_extents

(PECL cairo >= 0.1.0)

CairoContext::pathExtents -- cairo_path_extents — The pathExtents purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::pathExtents ( void ) : array

Процедурный стиль:

cairo_path_extents ( CairoContext $context ) : array

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The popGroup purpose

  • « CairoContext::pathExtents
  • CairoContext::popGroupToSource »
  • PHP Manual
  • CairoContext
  • The popGroup purpose

CairoContext::popGroup

cairo_pop_group

(PECL cairo >= 0.1.0)

CairoContext::popGroup -- cairo_pop_group — The popGroup purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::popGroup ( void ) : void

Процедурный стиль:

cairo_pop_group ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The popGroupToSource purpose

  • « CairoContext::popGroup
  • CairoContext::pushGroup »
  • PHP Manual
  • CairoContext
  • The popGroupToSource purpose

CairoContext::popGroupToSource

cairo_pop_group_to_source

(PECL cairo >= 0.1.0)

CairoContext::popGroupToSource -- cairo_pop_group_to_source — The popGroupToSource purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::popGroupToSource ( void ) : void

Процедурный стиль:

cairo_pop_group_to_source ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The pushGroup purpose

  • « CairoContext::popGroupToSource
  • CairoContext::pushGroupWithContent »
  • PHP Manual
  • CairoContext
  • The pushGroup purpose

CairoContext::pushGroup

cairo_push_group

(PECL cairo >= 0.1.0)

CairoContext::pushGroup -- cairo_push_group — The pushGroup purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::pushGroup ( void ) : void

Процедурный стиль:

cairo_push_group ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The pushGroupWithContent purpose

  • « CairoContext::pushGroup
  • CairoContext::rectangle »
  • PHP Manual
  • CairoContext
  • The pushGroupWithContent purpose

CairoContext::pushGroupWithContent

cairo_push_group_with_content

(PECL cairo >= 0.1.0)

CairoContext::pushGroupWithContent -- cairo_push_group_with_content — The pushGroupWithContent purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::pushGroupWithContent ( int $content ) : void

Процедурный стиль:

cairo_push_group_with_content ( CairoContext $context , int $content ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

content

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The rectangle purpose

  • « CairoContext::pushGroupWithContent
  • CairoContext::relCurveTo »
  • PHP Manual
  • CairoContext
  • The rectangle purpose

CairoContext::rectangle

cairo_rectangle

(PECL cairo >= 0.1.0)

CairoContext::rectangle -- cairo_rectangle — The rectangle purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::rectangle ( float $x , float $y , float $width , float $height ) : void

Процедурный стиль:

cairo_rectangle ( CairoContext $context , float $x , float $y , float $width , float $height ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

width

Description...

height

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The relCurveTo purpose

  • « CairoContext::rectangle
  • CairoContext::relLineTo »
  • PHP Manual
  • CairoContext
  • The relCurveTo purpose

CairoContext::relCurveTo

cairo_rel_curve_to

(PECL cairo >= 0.1.0)

CairoContext::relCurveTo -- cairo_rel_curve_to — The relCurveTo purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::relCurveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 ) : void

Процедурный стиль:

cairo_rel_curve_to ( CairoContext $context , float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x1

Description...

y1

Description...

x2

Description...

y2

Description...

x3

Description...

y3

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The relLineTo purpose

  • « CairoContext::relCurveTo
  • CairoContext::relMoveTo »
  • PHP Manual
  • CairoContext
  • The relLineTo purpose

CairoContext::relLineTo

cairo_rel_line_to

(PECL cairo >= 0.1.0)

CairoContext::relLineTo -- cairo_rel_line_to — The relLineTo purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::relLineTo ( float $x , float $y ) : void

Процедурный стиль:

cairo_rel_line_to ( CairoContext $context , float $x , float $y ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The relMoveTo purpose

  • « CairoContext::relLineTo
  • CairoContext::resetClip »
  • PHP Manual
  • CairoContext
  • The relMoveTo purpose

CairoContext::relMoveTo

cairo_rel_move_to

(PECL cairo >= 0.1.0)

CairoContext::relMoveTo -- cairo_rel_move_to — The relMoveTo purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::relMoveTo ( float $x , float $y ) : void

Процедурный стиль:

cairo_rel_move_to ( CairoContext $context , float $x , float $y ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The resetClip purpose

  • « CairoContext::relMoveTo
  • CairoContext::restore »
  • PHP Manual
  • CairoContext
  • The resetClip purpose

CairoContext::resetClip

cairo_reset_clip

(PECL cairo >= 0.1.0)

CairoContext::resetClip -- cairo_reset_clip — The resetClip purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::resetClip ( void ) : void

Процедурный стиль:

cairo_reset_clip ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The restore purpose

  • « CairoContext::resetClip
  • CairoContext::rotate »
  • PHP Manual
  • CairoContext
  • The restore purpose

CairoContext::restore

cairo_restore

(PECL cairo >= 0.1.0)

CairoContext::restore -- cairo_restore — The restore purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::restore ( void ) : void

Процедурный стиль:

cairo_restore ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The rotate purpose

  • « CairoContext::restore
  • CairoContext::save »
  • PHP Manual
  • CairoContext
  • The rotate purpose

CairoContext::rotate

cairo_rotate

(PECL cairo >= 0.1.0)

CairoContext::rotate -- cairo_rotate — The rotate purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::rotate ( float $angle ) : void

Процедурный стиль:

cairo_rotate ( CairoContext $context , float $angle ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

angle

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The save purpose

  • « CairoContext::rotate
  • CairoContext::scale »
  • PHP Manual
  • CairoContext
  • The save purpose

CairoContext::save

cairo_save

(PECL cairo >= 0.1.0)

CairoContext::save -- cairo_save — The save purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::save ( void ) : void

Процедурный стиль:

cairo_save ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The scale purpose

  • « CairoContext::save
  • CairoContext::selectFontFace »
  • PHP Manual
  • CairoContext
  • The scale purpose

CairoContext::scale

cairo_scale

(PECL cairo >= 0.1.0)

CairoContext::scale -- cairo_scale — The scale purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::scale ( float $x , float $y ) : void

Процедурный стиль:

cairo_scale ( CairoContext $context , float $x , float $y ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The selectFontFace purpose

  • « CairoContext::scale
  • CairoContext::setAntialias »
  • PHP Manual
  • CairoContext
  • The selectFontFace purpose

CairoContext::selectFontFace

cairo_select_font_face

(PECL cairo >= 0.1.0)

CairoContext::selectFontFace -- cairo_select_font_face — The selectFontFace purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::selectFontFace ( string $family [, int $slant [, int $weight ]] ) : void

Процедурный стиль:

cairo_select_font_face ( CairoContext $context , string $family [, int $slant [, int $weight ]] ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

family

Description...

slant

Description...

weight

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setAntialias purpose

  • « CairoContext::selectFontFace
  • CairoContext::setDash »
  • PHP Manual
  • CairoContext
  • The setAntialias purpose

CairoContext::setAntialias

cairo_set_antialias

(PECL cairo >= 0.1.0)

CairoContext::setAntialias -- cairo_set_antialias — The setAntialias purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setAntialias ([ int $antialias ] ) : void

Процедурный стиль:

cairo_set_antialias ( CairoContext $context [, int $antialias ] ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

antialias

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setDash purpose

  • « CairoContext::setAntialias
  • CairoContext::setFillRule »
  • PHP Manual
  • CairoContext
  • The setDash purpose

CairoContext::setDash

cairo_set_dash

(PECL cairo >= 0.1.0)

CairoContext::setDash -- cairo_set_dash — The setDash purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setDash ( array $dashes [, float $offset ] ) : void

Процедурный стиль:

cairo_set_dash ( CairoContext $context , array $dashes [, float $offset ] ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

dashes

Description...

offset

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setFillRule purpose

  • « CairoContext::setDash
  • CairoContext::setFontFace »
  • PHP Manual
  • CairoContext
  • The setFillRule purpose

CairoContext::setFillRule

cairo_set_fill_rule

(PECL cairo >= 0.1.0)

CairoContext::setFillRule -- cairo_set_fill_rule — The setFillRule purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setFillRule ( int $setting ) : void

Процедурный стиль:

cairo_set_fill_rule ( CairoContext $context , int $setting ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

setting

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setFontFace purpose

  • « CairoContext::setFillRule
  • CairoContext::setFontMatrix »
  • PHP Manual
  • CairoContext
  • The setFontFace purpose

CairoContext::setFontFace

cairo_set_font_face

(PECL cairo >= 0.1.0)

CairoContext::setFontFace -- cairo_set_font_face — The setFontFace purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setFontFace ( CairoFontFace $fontface ) : void

Процедурный стиль:

cairo_set_font_face ( CairoContext $context , CairoFontFace $fontface ) : void

Sets the font-face for a given context.

Список параметров

context

A CairoContext object to change the font-face for.

fontface

A CairoFontFace object

Возвращаемые значения

No value is returned

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
// New surface with white background
$s = new CairoImageSurface(CairoFormat::ARGB32, 300, 100);
$c = new CairoContext($s);
$c->setSourceRgb(1, 1, 1);
$c->paint();

// Draw some text
$c->setSourceRgb(0, 0, 0);
$c->moveTo(10, 60);
// Create a new font face
$f = new CairoToyFontFace("sans-serif", CairoFontSlant::NORMAL, CairoFontWeight::NORMAL);
$c->setFontFace($f);
$c->setFontSize(30);
$c->showText('Hello, World!');
$s->writeToPng(dirname(__FILE__) . '/setFontFace.png');
?>

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Смотрите также

  • CairoContext::setFontSize() - The setFontSize purpose
  • CairoContext::showText() - The showText purpose


The setFontMatrix purpose

  • « CairoContext::setFontFace
  • CairoContext::setFontOptions »
  • PHP Manual
  • CairoContext
  • The setFontMatrix purpose

CairoContext::setFontMatrix

cairo_set_font_matrix

(PECL cairo >= 0.1.0)

CairoContext::setFontMatrix -- cairo_set_font_matrix — The setFontMatrix purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setFontMatrix ( CairoMatrix $matrix ) : void

Процедурный стиль:

cairo_set_font_matrix ( CairoContext $context , CairoMatrix $matrix ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

matrix

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setFontOptions purpose

  • « CairoContext::setFontMatrix
  • CairoContext::setFontSize »
  • PHP Manual
  • CairoContext
  • The setFontOptions purpose

CairoContext::setFontOptions

cairo_set_font_options

(PECL cairo >= 0.1.0)

CairoContext::setFontOptions -- cairo_set_font_options — The setFontOptions purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setFontOptions ( CairoFontOptions $fontoptions ) : void

Процедурный стиль:

cairo_set_font_options ( CairoContext $context , CairoFontOptions $fontoptions ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

fontoptions

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setFontSize purpose

  • « CairoContext::setFontOptions
  • CairoContext::setLineCap »
  • PHP Manual
  • CairoContext
  • The setFontSize purpose

CairoContext::setFontSize

cairo_set_font_size

(PECL cairo >= 0.1.0)

CairoContext::setFontSize -- cairo_set_font_size — The setFontSize purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setFontSize ( float $size ) : void

Процедурный стиль:

cairo_set_font_size ( CairoContext $context , float $size ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

size

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setLineCap purpose

  • « CairoContext::setFontSize
  • CairoContext::setLineJoin »
  • PHP Manual
  • CairoContext
  • The setLineCap purpose

CairoContext::setLineCap

cairo_set_line_cap

(PECL cairo >= 0.1.0)

CairoContext::setLineCap -- cairo_set_line_cap — The setLineCap purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setLineCap ( int $setting ) : void

Процедурный стиль:

cairo_set_line_cap ( CairoContext $context , int $setting ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

setting

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setLineJoin purpose

  • « CairoContext::setLineCap
  • CairoContext::setLineWidth »
  • PHP Manual
  • CairoContext
  • The setLineJoin purpose

CairoContext::setLineJoin

cairo_set_line_join

(PECL cairo >= 0.1.0)

CairoContext::setLineJoin -- cairo_set_line_join — The setLineJoin purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setLineJoin ( int $setting ) : void

Процедурный стиль:

cairo_set_line_join ( CairoContext $context , int $setting ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

setting

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setLineWidth purpose

  • « CairoContext::setLineJoin
  • CairoContext::setMatrix »
  • PHP Manual
  • CairoContext
  • The setLineWidth purpose

CairoContext::setLineWidth

cairo_set_line_width

(PECL cairo >= 0.1.0)

CairoContext::setLineWidth -- cairo_set_line_width — The setLineWidth purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setLineWidth ( float $width ) : void

Процедурный стиль:

cairo_set_line_width ( CairoContext $context , float $width ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

width

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setMatrix purpose

  • « CairoContext::setLineWidth
  • CairoContext::setMiterLimit »
  • PHP Manual
  • CairoContext
  • The setMatrix purpose

CairoContext::setMatrix

cairo_set_matrix

(PECL cairo >= 0.1.0)

CairoContext::setMatrix -- cairo_set_matrix — The setMatrix purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setMatrix ( CairoMatrix $matrix ) : void

Процедурный стиль:

cairo_set_matrix ( CairoContext $context , CairoMatrix $matrix ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

matrix

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setMiterLimit purpose

  • « CairoContext::setMatrix
  • CairoContext::setOperator »
  • PHP Manual
  • CairoContext
  • The setMiterLimit purpose

CairoContext::setMiterLimit

cairo_set_miter_limit

(PECL cairo >= 0.1.0)

CairoContext::setMiterLimit -- cairo_set_miter_limit — The setMiterLimit purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setMiterLimit ( float $limit ) : void

Процедурный стиль:

cairo_set_miter_limit ( CairoContext $context , float $limit ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

limit

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setOperator purpose

  • « CairoContext::setMiterLimit
  • CairoContext::setScaledFont »
  • PHP Manual
  • CairoContext
  • The setOperator purpose

CairoContext::setOperator

cairo_set_operator

(PECL cairo >= 0.1.0)

CairoContext::setOperator -- cairo_set_operator — The setOperator purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setOperator ( int $setting ) : void

Процедурный стиль:

cairo_set_operator ( CairoContext $context , int $setting ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

setting

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setScaledFont purpose

  • « CairoContext::setOperator
  • CairoContext::setSource »
  • PHP Manual
  • CairoContext
  • The setScaledFont purpose

CairoContext::setScaledFont

cairo_set_scaled_font

(PECL cairo >= 0.1.0)

CairoContext::setScaledFont -- cairo_set_scaled_font — The setScaledFont purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setScaledFont ( CairoScaledFont $scaledfont ) : void

Процедурный стиль:

cairo_set_scaled_font ( CairoContext $context , CairoScaledFont $scaledfont ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

scaledfont

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setSource purpose

  • « CairoContext::setScaledFont
  • CairoContext::setSourceRGB »
  • PHP Manual
  • CairoContext
  • The setSource purpose

CairoContext::setSource

cairo_set_source

(PECL cairo >= 0.1.0)

CairoContext::setSource -- cairo_set_source — The setSource purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setSource ( CairoPattern $pattern ) : void

Процедурный стиль:

cairo_set_source ( CairoContext $context , CairoPattern $pattern ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

pattern

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setSourceRGB purpose

  • « CairoContext::setSource
  • CairoContext::setSourceRGBA »
  • PHP Manual
  • CairoContext
  • The setSourceRGB purpose

CairoContext::setSourceRGB

cairo_set_source

(PECL cairo >= 0.1.0)

CairoContext::setSourceRGB -- cairo_set_source — The setSourceRGB purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setSourceRGB ( float $red , float $green , float $blue ) : void

Процедурный стиль:

cairo_set_source ( CairoContext $context , float $red , float $green , float $blue ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

red

Description...

green

Description...

blue

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setSourceRGBA purpose

  • « CairoContext::setSourceRGB
  • CairoContext::setSourceSurface »
  • PHP Manual
  • CairoContext
  • The setSourceRGBA purpose

CairoContext::setSourceRGBA

cairo_set_source

(PECL cairo >= 0.1.0)

CairoContext::setSourceRGBA -- cairo_set_source — The setSourceRGBA purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setSourceRGBA ( float $red , float $green , float $blue , float $alpha ) : void

Процедурный стиль:

cairo_set_source ( CairoContext $context , float $red , float $green , float $blue , float $alpha ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

red

Description...

green

Description...

blue

Description...

alpha

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setSourceSurface purpose

  • « CairoContext::setSourceRGBA
  • CairoContext::setTolerance »
  • PHP Manual
  • CairoContext
  • The setSourceSurface purpose

CairoContext::setSourceSurface

cairo_set_source_surface

(PECL cairo >= 0.1.0)

CairoContext::setSourceSurface -- cairo_set_source_surface — The setSourceSurface purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setSourceSurface ( CairoSurface $surface [, float $x [, float $y ]] ) : void

Процедурный стиль:

cairo_set_source_surface ( CairoContext $context , CairoSurface $surface [, float $x [, float $y ]] ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

surface

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setTolerance purpose

  • « CairoContext::setSourceSurface
  • CairoContext::showPage »
  • PHP Manual
  • CairoContext
  • The setTolerance purpose

CairoContext::setTolerance

cairo_set_tolerance

(PECL cairo >= 0.1.0)

CairoContext::setTolerance -- cairo_set_tolerance — The setTolerance purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::setTolerance ( float $tolerance ) : void

Процедурный стиль:

cairo_set_tolerance ( CairoContext $context , float $tolerance ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

tolerance

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The showPage purpose

  • « CairoContext::setTolerance
  • CairoContext::showText »
  • PHP Manual
  • CairoContext
  • The showPage purpose

CairoContext::showPage

cairo_show_page

(PECL cairo >= 0.1.0)

CairoContext::showPage -- cairo_show_page — The showPage purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::showPage ( void ) : void

Процедурный стиль:

cairo_show_page ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The showText purpose

  • « CairoContext::showPage
  • CairoContext::status »
  • PHP Manual
  • CairoContext
  • The showText purpose

CairoContext::showText

cairo_show_text

(PECL cairo >= 0.1.0)

CairoContext::showText -- cairo_show_text — The showText purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::showText ( string $text ) : void

Процедурный стиль:

cairo_show_text ( CairoContext $context , string $text ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

text

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The status purpose

  • « CairoContext::showText
  • CairoContext::stroke »
  • PHP Manual
  • CairoContext
  • The status purpose

CairoContext::status

cairo_status

(PECL cairo >= 0.1.0)

CairoContext::status -- cairo_status — The status purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::status ( void ) : int

Процедурный стиль:

cairo_status ( CairoContext $context ) : int

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The stroke purpose

  • « CairoContext::status
  • CairoContext::strokeExtents »
  • PHP Manual
  • CairoContext
  • The stroke purpose

CairoContext::stroke

cairo_stroke

(PECL cairo >= 0.1.0)

CairoContext::stroke -- cairo_stroke — The stroke purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::stroke ( void ) : void

Процедурный стиль:

cairo_stroke ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The strokeExtents purpose

  • « CairoContext::stroke
  • CairoContext::strokePreserve »
  • PHP Manual
  • CairoContext
  • The strokeExtents purpose

CairoContext::strokeExtents

cairo_stroke_extents

(PECL cairo >= 0.1.0)

CairoContext::strokeExtents -- cairo_stroke_extents — The strokeExtents purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::strokeExtents ( void ) : array

Процедурный стиль:

cairo_stroke_extents ( CairoContext $context ) : array

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The strokePreserve purpose

  • « CairoContext::strokeExtents
  • CairoContext::textExtents »
  • PHP Manual
  • CairoContext
  • The strokePreserve purpose

CairoContext::strokePreserve

cairo_stroke_preserve

(PECL cairo >= 0.1.0)

CairoContext::strokePreserve -- cairo_stroke_preserve — The strokePreserve purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::strokePreserve ( void ) : void

Процедурный стиль:

cairo_stroke_preserve ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The textExtents purpose

  • « CairoContext::strokePreserve
  • CairoContext::textPath »
  • PHP Manual
  • CairoContext
  • The textExtents purpose

CairoContext::textExtents

cairo_text_extents

(PECL cairo >= 0.1.0)

CairoContext::textExtents -- cairo_text_extents — The textExtents purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::textExtents ( string $text ) : array

Процедурный стиль:

cairo_text_extents ( CairoContext $context ) : array

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

text

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The textPath purpose

  • « CairoContext::textExtents
  • CairoContext::transform »
  • PHP Manual
  • CairoContext
  • The textPath purpose

CairoContext::textPath

cairo_text_path

(PECL cairo >= 0.1.0)

CairoContext::textPath -- cairo_text_path — The textPath purpose

Описание

Объектно-ориентированный стиль

public CairoContext::textPath ( string $string ) : void

Процедурный стиль

cairo_text_path ( CairoContext $context , string $text ) : void

Adds closed paths for text to the current path. The generated path, if filled, achieves an effect similar to that of CairoContext::showText().

Text conversion and positioning is done similar to CairoContext::showText().

Like CairoContext::showText(), after this call the current point is moved to the origin of where the next glyph would be placed in this same progression. That is, the current point will be at the origin of the final glyph offset by its advance values. This allows for chaining multiple calls to CairoContext::showText() without having to set current point in between.

Note: The CairoContext::textPath() function call is part of what the cairo designers call the "toy" text API. It is convenient for short demos and simple programs, but it is not expected to be adequate for serious text-using applications. See CairoContext::glyphPath() for the "real" text path API in cairo.

Список параметров

context

A CairoContext object

text

Description...

string

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The transform purpose

  • « CairoContext::textPath
  • CairoContext::translate »
  • PHP Manual
  • CairoContext
  • The transform purpose

CairoContext::transform

cairo_transform

(PECL cairo >= 0.1.0)

CairoContext::transform -- cairo_transform — The transform purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::transform ( CairoMatrix $matrix ) : void

Процедурный стиль:

cairo_transform ( CairoContext $context , CairoMatrix $matrix ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

matrix

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The translate purpose

  • « CairoContext::transform
  • CairoContext::userToDevice »
  • PHP Manual
  • CairoContext
  • The translate purpose

CairoContext::translate

cairo_translate

(PECL cairo >= 0.1.0)

CairoContext::translate -- cairo_translate — The translate purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::translate ( float $x , float $y ) : void

Процедурный стиль:

cairo_translate ( CairoContext $context , float $x , float $y ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The userToDevice purpose

  • « CairoContext::translate
  • CairoContext::userToDeviceDistance »
  • PHP Manual
  • CairoContext
  • The userToDevice purpose

CairoContext::userToDevice

cairo_user_to_device

(PECL cairo >= 0.1.0)

CairoContext::userToDevice -- cairo_user_to_device — The userToDevice purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::userToDevice ( float $x , float $y ) : array

Процедурный стиль:

cairo_user_to_device ( CairoContext $context , float $x , float $y ) : array

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The userToDeviceDistance purpose

  • « CairoContext::userToDevice
  • CairoException »
  • PHP Manual
  • CairoContext
  • The userToDeviceDistance purpose

CairoContext::userToDeviceDistance

cairo_user_to_device_distance

(PECL cairo >= 0.1.0)

CairoContext::userToDeviceDistance -- cairo_user_to_device_distance — The userToDeviceDistance purpose

Описание

Объектно-ориентированный стиль (method):

public CairoContext::userToDeviceDistance ( float $x , float $y ) : array

Процедурный стиль:

cairo_user_to_device_distance ( CairoContext $context , float $x , float $y ) : array

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Класс CairoException

(PECL cairo >= 0.1.0)

Введение

Класс Exception, выбрасываемый функциями и методами Cairo

Обзор классов

CairoException extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


The CairoStatus class

(Информация о версии неизвестна, возможно, только в Git)

Введение

CairoStatus is used to indicate errors that can occur when using Cairo. In some cases it is returned directly by functions. but when using CairoContext, the last error, if any, is stored in the object and can be retrieved with CairoContext::status() or cairo_status(). New entries may be added in future versions.

Use Cairo::statusToString() or cairo_status_to_string() to get a human-readable representation of an error message.

Обзор классов

CairoStatus {
/* Константы */
const integer SUCCESS = 0 ;
const integer NO_MEMORY = 1 ;
const integer INVALID_RESTORE = 2 ;
const integer INVALID_POP_GROUP = 3 ;
const integer NO_CURRENT_POINT = 4 ;
const integer INVALID_MATRIX = 5 ;
const integer INVALID_STATUS = 6 ;
const integer NULL_POINTER = 7 ;
const integer INVALID_STRING = 8 ;
const integer INVALID_PATH_DATA = 9 ;
const integer READ_ERROR = 10 ;
const integer WRITE_ERROR = 11 ;
const integer SURFACE_FINISHED = 12 ;
const integer SURFACE_TYPE_MISMATCH = 13 ;
const integer PATTERN_TYPE_MISMATCH = 14 ;
const integer INVALID_CONTENT = 15 ;
const integer INVALID_FORMAT = 16 ;
const integer INVALID_VISUAL = 17 ;
const integer FILE_NOT_FOUND = 18 ;
const integer INVALID_DASH = 19 ;
const integer INVALID_DSC_COMMENT = 20 ;
const integer INVALID_INDEX = 21 ;
const integer CLIP_NOT_REPRESENTABLE = 22 ;
const integer TEMP_FILE_ERROR = 23 ;
const integer INVALID_STRIDE = 24 ;
}

Предопределенные константы

CairoStatus::SUCCESS

No error has occurred

CairoStatus::NO_MEMORY

Out of memory

CairoStatus::INVALID_RESTORE

cairo_restore() called without matching cairo_save()

CairoStatus::INVALID_POP_GROUP

No saved group to pop

CairoStatus::NO_CURRENT_POINT

No current point defined

CairoStatus::INVALID_MATRIX

Invalid matrix (not invertible)

CairoStatus::INVALID_STATUS

Invalid value for an input CairoStatus>

CairoStatus::NULL_POINTER

Null pointer

CairoStatus::INVALID_STRING

Input string not valid UTF-8 string

CairoStatus::INVALID_PATH_DATA

Input path data not valid

CairoStatus::READ_ERROR

Error while reading from input stream

CairoStatus::WRITE_ERROR

Error while writing to output stream

CairoStatus::SURFACE_FINISHED

Target surface has been finished

CairoStatus::SURFACE_TYPE_MISMATCH

The surface type is not appropriate for the operation

CairoStatus::PATTERN_TYPE_MISMATCH

The pattern type is not appropriate for the operation

CairoStatus::INVALID_CONTENT

Invalid value for an input CairoContent

CairoStatus::INVALID_FORMAT

Invalid value for an input CairoFormat

CairoStatus::INVALID_VISUAL

Invalid value for an input Visual

CairoStatus::FILE_NOT_FOUND

File not found

CairoStatus::INVALID_DASH

Invalid value for a dash setting

CairoStatus::INVALID_DSC_COMMENT

Invalid value for a DSC comment

CairoStatus::INVALID_INDEX

Invalid index passed to getter

CairoStatus::CLIP_NOT_REPRESENTABLE

Clip region not representable in desired format

CairoStatus::TEMP_FILE_ERROR

Error creating or writing to a temporary file

CairoStatus::INVALID_STRIDE

Invalid value for CairoStride


The CairoSurface class

(PECL cairo >= 0.1.0)

Введение

This is the base-class for all other Surface types. CairoSurface is the abstract type representing all different drawing targets that cairo can render to. The actual drawings are performed using a CairoContext.

Обзор классов

CairoSurface {
/* Методы */
public __construct ( void )
public copyPage ( void ) : void
public createSimilar ( CairoSurface $other , int $content , string $width , string $height ) : void
public finish ( void ) : void
public flush ( void ) : void
public getContent ( void ) : int
public getDeviceOffset ( void ) : array
public getFontOptions ( void ) : void
public getType ( void ) : int
public markDirty ( void ) : void
public markDirtyRectangle ( float $x , float $y , float $width , float $height ) : void
public setDeviceOffset ( float $x , float $y ) : void
public setFallbackResolution ( float $x , float $y ) : void
public showPage ( void ) : void
public status ( void ) : int
public writeToPng ( string $file ) : void
}

Содержание

  • CairoSurface::__construct — The __construct purpose
  • CairoSurface::copyPage — The copyPage purpose
  • CairoSurface::createSimilar — The createSimilar purpose
  • CairoSurface::finish — The finish purpose
  • CairoSurface::flush — The flush purpose
  • CairoSurface::getContent — The getContent purpose
  • CairoSurface::getDeviceOffset — The getDeviceOffset purpose
  • CairoSurface::getFontOptions — The getFontOptions purpose
  • CairoSurface::getType — The getType purpose
  • CairoSurface::markDirty — The markDirty purpose
  • CairoSurface::markDirtyRectangle — The markDirtyRectangle purpose
  • CairoSurface::setDeviceOffset — The setDeviceOffset purpose
  • CairoSurface::setFallbackResolution — The setFallbackResolution purpose
  • CairoSurface::showPage — The showPage purpose
  • CairoSurface::status — The status purpose
  • CairoSurface::writeToPng — The writeToPng purpose


The __construct purpose

  • « CairoSurface
  • CairoSurface::copyPage »
  • PHP Manual
  • CairoSurface
  • The __construct purpose

CairoSurface::__construct

(PECL cairo >= 0.1.0)

CairoSurface::__construct — The __construct purpose

Описание

public CairoSurface::__construct ( void )

CairoSurface is an abstract type and, as such, should not be instantiated in your PHP scripts.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No return value

Примечания

Замечание:

If you're using a PHP version before 5.3, you must destroy the CairoContext associated with a CairoSurface after you destroy the CairoSurface. Otherwise, you're left with a Circular-reference memory leak.

Смотрите также

  • CairoImageSurface::__construct() - Creates a new CairoImageSurface


The copyPage purpose

  • « CairoSurface::__construct
  • CairoSurface::createSimilar »
  • PHP Manual
  • CairoSurface
  • The copyPage purpose

CairoSurface::copyPage

cairo_copy_page

(PECL cairo >= 0.1.0)

CairoSurface::copyPage -- cairo_copy_page — The copyPage purpose

Описание

Объектно-ориентированный стиль (method):

public CairoSurface::copyPage ( void ) : void

Процедурный стиль:

cairo_copy_page ( CairoContext $context ) : void

Emits the current page for backends that support multiple pages, but doesn't clear it, so that the contents of the current page will be retained for the next page. Use CairoSurface::showPage() if you want to get an empty page after the emission.

Список параметров

context

A CairoContext object

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The createSimilar purpose

  • « CairoSurface::copyPage
  • CairoSurface::finish »
  • PHP Manual
  • CairoSurface
  • The createSimilar purpose

CairoSurface::createSimilar

(PECL cairo >= 0.1.0)

CairoSurface::createSimilar — The createSimilar purpose

Описание

public CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height ) : void

Create a new surface that is as compatible as possible with an existing surface. For example the new surface will have the same fallback resolution and font options as other. Generally, the new surface will also use the same backend as other, unless that is not possible for some reason. The type of the returned surface may be examined with CairoSurface::getType(). Initially the surface contents are all 0 (transparent if contents have transparency, black otherwise.)

Список параметров

other

An existing surface used to select the backend of the new surface

content

The content for the new surface. See the CairoContent class for possible values.

width

Width of the new surface, (in device-space units).

height

Height of the new surface, (in device-space units).

Возвращаемые значения

A new CairoSurface

Примеры

Пример #1 CairoSurface::createSimilar() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • CairoContent()


The finish purpose

  • « CairoSurface::createSimilar
  • CairoSurface::flush »
  • PHP Manual
  • CairoSurface
  • The finish purpose

CairoSurface::finish

(PECL cairo >= 0.1.0)

CairoSurface::finish — The finish purpose

Описание

public CairoSurface::finish ( void ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::finish() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The flush purpose

  • « CairoSurface::finish
  • CairoSurface::getContent »
  • PHP Manual
  • CairoSurface
  • The flush purpose

CairoSurface::flush

(PECL cairo >= 0.1.0)

CairoSurface::flush — The flush purpose

Описание

public CairoSurface::flush ( void ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::flush() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getContent purpose

  • « CairoSurface::flush
  • CairoSurface::getDeviceOffset »
  • PHP Manual
  • CairoSurface
  • The getContent purpose

CairoSurface::getContent

(PECL cairo >= 0.1.0)

CairoSurface::getContent — The getContent purpose

Описание

public CairoSurface::getContent ( void ) : int

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::getContent() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getDeviceOffset purpose

  • « CairoSurface::getContent
  • CairoSurface::getFontOptions »
  • PHP Manual
  • CairoSurface
  • The getDeviceOffset purpose

CairoSurface::getDeviceOffset

(PECL cairo >= 0.1.0)

CairoSurface::getDeviceOffset — The getDeviceOffset purpose

Описание

public CairoSurface::getDeviceOffset ( void ) : array

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::getDeviceOffset() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getFontOptions purpose

  • « CairoSurface::getDeviceOffset
  • CairoSurface::getType »
  • PHP Manual
  • CairoSurface
  • The getFontOptions purpose

CairoSurface::getFontOptions

cairo_get_font_options

(PECL cairo >= 0.1.0)

CairoSurface::getFontOptions -- cairo_get_font_options — The getFontOptions purpose

Описание

Объектно-ориентированный стиль (method):

public CairoSurface::getFontOptions ( void ) : void

Процедурный стиль:

cairo_get_font_options ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getType purpose

  • « CairoSurface::getFontOptions
  • CairoSurface::markDirty »
  • PHP Manual
  • CairoSurface
  • The getType purpose

CairoSurface::getType

(PECL cairo >= 0.1.0)

CairoSurface::getType — The getType purpose

Описание

public CairoSurface::getType ( void ) : int

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::getType() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The markDirty purpose

  • « CairoSurface::getType
  • CairoSurface::markDirtyRectangle »
  • PHP Manual
  • CairoSurface
  • The markDirty purpose

CairoSurface::markDirty

(PECL cairo >= 0.1.0)

CairoSurface::markDirty — The markDirty purpose

Описание

public CairoSurface::markDirty ( void ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::markDirty() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The markDirtyRectangle purpose

  • « CairoSurface::markDirty
  • CairoSurface::setDeviceOffset »
  • PHP Manual
  • CairoSurface
  • The markDirtyRectangle purpose

CairoSurface::markDirtyRectangle

(PECL cairo >= 0.1.0)

CairoSurface::markDirtyRectangle — The markDirtyRectangle purpose

Описание

public CairoSurface::markDirtyRectangle ( float $x , float $y , float $width , float $height ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

Description...

y

Description...

width

Description...

height

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::markDirtyRectangle() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setDeviceOffset purpose

  • « CairoSurface::markDirtyRectangle
  • CairoSurface::setFallbackResolution »
  • PHP Manual
  • CairoSurface
  • The setDeviceOffset purpose

CairoSurface::setDeviceOffset

(PECL cairo >= 0.1.0)

CairoSurface::setDeviceOffset — The setDeviceOffset purpose

Описание

public CairoSurface::setDeviceOffset ( float $x , float $y ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::setDeviceOffset() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setFallbackResolution purpose

  • « CairoSurface::setDeviceOffset
  • CairoSurface::showPage »
  • PHP Manual
  • CairoSurface
  • The setFallbackResolution purpose

CairoSurface::setFallbackResolution

(PECL cairo >= 0.1.0)

CairoSurface::setFallbackResolution — The setFallbackResolution purpose

Описание

public CairoSurface::setFallbackResolution ( float $x , float $y ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::setFallbackResolution() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The showPage purpose

  • « CairoSurface::setFallbackResolution
  • CairoSurface::status »
  • PHP Manual
  • CairoSurface
  • The showPage purpose

CairoSurface::showPage

cairo_show_page

(PECL cairo >= 0.1.0)

CairoSurface::showPage -- cairo_show_page — The showPage purpose

Описание

Объектно-ориентированный стиль (method):

public CairoSurface::showPage ( void ) : void

Процедурный стиль:

cairo_show_page ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The status purpose

  • « CairoSurface::showPage
  • CairoSurface::writeToPng »
  • PHP Manual
  • CairoSurface
  • The status purpose

CairoSurface::status

cairo_status

(PECL cairo >= 0.1.0)

CairoSurface::status -- cairo_status — The status purpose

Описание

Объектно-ориентированный стиль (method):

public CairoSurface::status ( void ) : int

Процедурный стиль:

cairo_status ( CairoContext $context ) : int

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The writeToPng purpose

  • « CairoSurface::status
  • CairoSvgSurface »
  • PHP Manual
  • CairoSurface
  • The writeToPng purpose

CairoSurface::writeToPng

(PECL cairo >= 0.1.0)

CairoSurface::writeToPng — The writeToPng purpose

Описание

public CairoSurface::writeToPng ( string $file ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::writeToPng() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Svg Surface Backend

(PECL cairo >= 0.1.0)

Введение

Svg specific surface class, uses the SVG (standard vector graphics) surface backend.

Обзор классов

CairoSvgSurface extends CairoSurface {
/* Методы */
public __construct ( string $file , float $width , float $height )
public static getVersions ( void ) : array
public restrictToVersion ( int $version ) : void
public static versionToString ( int $version ) : string
/* Наследуемые методы */
public CairoSurface::__construct ( void )
public CairoSurface::copyPage ( void ) : void
public CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height ) : void
public CairoSurface::finish ( void ) : void
public CairoSurface::flush ( void ) : void
public CairoSurface::getContent ( void ) : int
public CairoSurface::getDeviceOffset ( void ) : array
public CairoSurface::getFontOptions ( void ) : void
public CairoSurface::getType ( void ) : int
public CairoSurface::markDirty ( void ) : void
public CairoSurface::markDirtyRectangle ( float $x , float $y , float $width , float $height ) : void
public CairoSurface::setDeviceOffset ( float $x , float $y ) : void
public CairoSurface::setFallbackResolution ( float $x , float $y ) : void
public CairoSurface::showPage ( void ) : void
public CairoSurface::status ( void ) : int
public CairoSurface::writeToPng ( string $file ) : void
}

Содержание

  • CairoSvgSurface::__construct — Цель __construct
  • CairoSvgSurface::getVersions — Используется для получения списка поддерживаемых версий SVG
  • CairoSvgSurface::restrictToVersion — Цель restrictToVersion
  • CairoSvgSurface::versionToString — Цель versionToString


Цель __construct

  • « CairoSvgSurface
  • CairoSvgSurface::getVersions »
  • PHP Manual
  • CairoSvgSurface
  • Цель __construct

CairoSvgSurface::__construct

(PECL cairo >= 0.1.0)

CairoSvgSurface::__construct — Цель __construct

Описание

public CairoSvgSurface::__construct ( string $file , float $width , float $height )

Описание метода.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Описание...

width

Описание...

height

Описание...

Возвращаемые значения

Description...

Примеры

Пример #1 Пример использования CairoSvgSurface::__construct()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Используется для получения списка поддерживаемых версий SVG

  • « CairoSvgSurface::__construct
  • CairoSvgSurface::restrictToVersion »
  • PHP Manual
  • CairoSvgSurface
  • Используется для получения списка поддерживаемых версий SVG

CairoSvgSurface::getVersions

cairo_svg_surface_get_versions

(PECL cairo >= 0.1.0)

CairoSvgSurface::getVersions -- cairo_svg_surface_get_versions — Используется для получения списка поддерживаемых версий SVG

Описание

Объектно-ориентированный стиль (method):

public static CairoSvgSurface::getVersions ( void ) : array

Процедурный стиль:

cairo_svg_get_versions ( void ) : array

Возвращает численно индексированный массив доступных в данный момент констант CairoSvgVersion. Чтобы получить строковые значения для каждого элемента, используйте CairoSvgSurface::versionToString().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает численно индексированный массив целочисленных значений.

Примеры

Пример #1 Пример использования CairoSvgSurface::getVersions()

<?php
/* Получить список всех версий */
$versions = CairoSvgSurface::getVersions();
var_dump($versions);

/* Выводит имя каждой версии в виде строки */
foreach($versions as $id) {
    echo CairoSvgSurface::versionToString($id), PHP_EOL;
}
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  int(0)
  [1]=>
  int(1)
}
SVG 1.1
SVG 1.2

Пример #2 Процедурный стиль

<?php
/* Получить список всех версий */
$versions = cairo_svg_surface_get_versions();
var_dump($versions);

/* Выводит имя каждой версии в виде строки */
foreach($versions as $id) {
    echo cairo_svg_surface_version_to_string($id), PHP_EOL;
}
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  int(0)
  [1]=>
  int(1)
}
SVG 1.1
SVG 1.2

Смотрите также

  • CairoSvgSurface::versionToString() - Цель versionToString


Цель restrictToVersion

  • « CairoSvgSurface::getVersions
  • CairoSvgSurface::versionToString »
  • PHP Manual
  • CairoSvgSurface
  • Цель restrictToVersion

CairoSvgSurface::restrictToVersion

(PECL cairo >= 0.1.0)

CairoSvgSurface::restrictToVersion — Цель restrictToVersion

Описание

public CairoSvgSurface::restrictToVersion ( int $version ) : void

Описание метода.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

version

Описание...

Возвращаемые значения

Описание...

Примеры

Пример #1 Пример использования CairoSvgSurface::restrictToVersion()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Цель versionToString

  • « CairoSvgSurface::restrictToVersion
  • CairoImageSurface »
  • PHP Manual
  • CairoSvgSurface
  • Цель versionToString

CairoSvgSurface::versionToString

(PECL cairo >= 0.1.0)

CairoSvgSurface::versionToString — Цель versionToString

Описание

public static CairoSvgSurface::versionToString ( int $version ) : string

Описание метода.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

version

Описание...

Возвращаемые значения

Описание...

Примеры

Пример #1 Пример использования CairoSvgSurface::versionToString()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The CairoImageSurface class

(PECL cairo >= 0.1.0)

Введение

CairoImageSurface provide the ability to render to memory buffers either allocated by cairo or by the calling code. The supported image formats are those defined in CairoFormat.

Обзор классов

CairoImageSurface extends CairoSurface {
/* Методы */
public __construct ( int $format , int $width , int $height )
public static createForData ( string $data , int $format , int $width , int $height ) : void
public static createFromPng ( string $file ) : CairoImageSurface
public getData ( void ) : string
public getFormat ( void ) : int
public getHeight ( void ) : int
public getStride ( void ) : int
public getWidth ( void ) : int
/* Наследуемые методы */
public CairoSurface::__construct ( void )
public CairoSurface::copyPage ( void ) : void
public CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height ) : void
public CairoSurface::finish ( void ) : void
public CairoSurface::flush ( void ) : void
public CairoSurface::getContent ( void ) : int
public CairoSurface::getDeviceOffset ( void ) : array
public CairoSurface::getFontOptions ( void ) : void
public CairoSurface::getType ( void ) : int
public CairoSurface::markDirty ( void ) : void
public CairoSurface::markDirtyRectangle ( float $x , float $y , float $width , float $height ) : void
public CairoSurface::setDeviceOffset ( float $x , float $y ) : void
public CairoSurface::setFallbackResolution ( float $x , float $y ) : void
public CairoSurface::showPage ( void ) : void
public CairoSurface::status ( void ) : int
public CairoSurface::writeToPng ( string $file ) : void
}

Содержание

  • CairoImageSurface::__construct — Creates a new CairoImageSurface
  • CairoImageSurface::createForData — The createForData purpose
  • CairoImageSurface::createFromPng — Creates a new CairoImageSurface form a png image file
  • CairoImageSurface::getData — Gets the image data as string
  • CairoImageSurface::getFormat — Get the image format
  • CairoImageSurface::getHeight — Retrieves the height of the CairoImageSurface
  • CairoImageSurface::getStride — The getStride purpose
  • CairoImageSurface::getWidth — Retrieves the width of the CairoImageSurface


Creates a new CairoImageSurface

  • « CairoImageSurface
  • CairoImageSurface::createForData »
  • PHP Manual
  • CairoImageSurface
  • Creates a new CairoImageSurface

CairoImageSurface::__construct

(PECL cairo >= 0.1.0)

CairoImageSurface::__construct — Creates a new CairoImageSurface

Описание

public CairoImageSurface::__construct ( int $format , int $width , int $height )

Creates a new CairoImageSuface object of type format

Список параметров

format

Can be any defined in CairoFormat

width

The width of the image surface

height

The height of the image surface

Возвращаемые значения

A new CairoImageSurface

Примеры

Пример #1 CairoImageSurface::__construct() example

<?php

// Creates a image with ARGB32 format of 50 width and 50 height
$surface = new CairoImageSurface(CairoFormat::ARGB32, 50,50);

?>

Смотрите также

  • CairoContext::__construct() - Creates a new CairoContext


The createForData purpose

  • « CairoImageSurface::__construct
  • CairoImageSurface::createFromPng »
  • PHP Manual
  • CairoImageSurface
  • The createForData purpose

CairoImageSurface::createForData

(PECL cairo >= 0.1.0)

CairoImageSurface::createForData — The createForData purpose

Описание

public static CairoImageSurface::createForData ( string $data , int $format , int $width , int $height ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Description...

format

Description...

width

Description...

height

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoImageSurface::createForData() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Creates a new CairoImageSurface form a png image file

  • « CairoImageSurface::createForData
  • CairoImageSurface::getData »
  • PHP Manual
  • CairoImageSurface
  • Creates a new CairoImageSurface form a png image file

CairoImageSurface::createFromPng

(PECL cairo >= 0.1.0)

CairoImageSurface::createFromPng — Creates a new CairoImageSurface form a png image file

Описание

public static CairoImageSurface::createFromPng ( string $file ) : CairoImageSurface

Creates a new CairoImageSurface form a png image file

This method should be called static

Список параметров

file

Path to PNG image file

Возвращаемые значения

CairoImageSurface object

Примеры

Пример #1 CairoImageSurface::createFromPng() example

<?php

$surface = CairoImageSurface::createFromPng('/path/to/image/file.png');

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • CairoImageSurface::__construct() - Creates a new CairoImageSurface


Gets the image data as string

  • « CairoImageSurface::createFromPng
  • CairoImageSurface::getFormat »
  • PHP Manual
  • CairoImageSurface
  • Gets the image data as string

CairoImageSurface::getData

(PECL cairo >= 0.1.0)

CairoImageSurface::getData — Gets the image data as string

Описание

public CairoImageSurface::getData ( void ) : string

Returns the image data of this surface or NULL if surface is not an image surface, or if CairoContext::finish(), procedural : cairo_surface_finish(), has been called.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The image data as string

Примеры

Пример #1 CairoImageSurface::getData() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • CairoImageSurface::getStride() - The getStride purpose


Get the image format

  • « CairoImageSurface::getData
  • CairoImageSurface::getHeight »
  • PHP Manual
  • CairoImageSurface
  • Get the image format

CairoImageSurface::getFormat

(PECL cairo >= 0.1.0)

CairoImageSurface::getFormat — Get the image format

Описание

public CairoImageSurface::getFormat ( void ) : int

Retrieves the image format, as one of the CairoFormat defined

Список параметров

У этой функции нет параметров.

Возвращаемые значения

One of the CairoFormat enums

Примеры

Пример #1 CairoImageSurface::getFormat() example

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

var_dump($surface->getFormat()); // 0

$surface2 = new CairoImageSurface(CairoFormat::A8, 50, 50);

var_dump($surface2->getFormat()); // 2

?>

Результатом выполнения данного примера будет что-то подобное:

int(0)
int(2)

Смотрите также

  • CairoImageSurface::getHeight() - Retrieves the height of the CairoImageSurface
  • CairoImageSurface::getWidth() - Retrieves the width of the CairoImageSurface


Retrieves the height of the CairoImageSurface

  • « CairoImageSurface::getFormat
  • CairoImageSurface::getStride »
  • PHP Manual
  • CairoImageSurface
  • Retrieves the height of the CairoImageSurface

CairoImageSurface::getHeight

(PECL cairo >= 0.1.0)

CairoImageSurface::getHeight — Retrieves the height of the CairoImageSurface

Описание

public CairoImageSurface::getHeight ( void ) : int

This methods returns the CairoImageSurface height.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

CairoImageSurface object height

Примеры

Пример #1 CairoImageSurface::getHeight() example

<?php
// creates a new image surface
$surface = new CairoImageSurface(CairoFormat::ARGB32, 80, 50);

//gets the height
var_dump($surface->getHeight());

?>

Результатом выполнения данного примера будет что-то подобное:

int(50)

Смотрите также

  • CairoImageSurface::getWidth() - Retrieves the width of the CairoImageSurface


The getStride purpose

  • « CairoImageSurface::getHeight
  • CairoImageSurface::getWidth »
  • PHP Manual
  • CairoImageSurface
  • The getStride purpose

CairoImageSurface::getStride

(PECL cairo >= 0.1.0)

CairoImageSurface::getStride — The getStride purpose

Описание

public CairoImageSurface::getStride ( void ) : int

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoImageSurface::getStride() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Retrieves the width of the CairoImageSurface

  • « CairoImageSurface::getStride
  • CairoPdfSurface »
  • PHP Manual
  • CairoImageSurface
  • Retrieves the width of the CairoImageSurface

CairoImageSurface::getWidth

(PECL cairo >= 0.1.0)

CairoImageSurface::getWidth — Retrieves the width of the CairoImageSurface

Описание

public CairoImageSurface::getWidth ( void ) : int

Gets the width of the CairoImageSurface

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the width of the CairoImageSurface object

Примеры

Пример #1 CairoImageSurface::getWidth() example

<?php
// creates a new image surface
$surface = new CairoImageSurface(CairoFormat::ARGB32, 80, 50);

//gets the width
var_dump($surface->getWidth());

?>

Результатом выполнения данного примера будет что-то подобное:

int(80)

Смотрите также

  • CairoImageSurface::getHeight() - Retrieves the height of the CairoImageSurface


Класс CairoPdfSurface

(PECL cairo >= 0.1.0)

Введение

Обзор классов

CairoPdfSurface extends CairoSurface {
/* Методы */
public __construct ( string $file , float $width , float $height )
public setSize ( float $width , float $height ) : void
/* Наследуемые методы */
public CairoSurface::__construct ( void )
public CairoSurface::copyPage ( void ) : void
public CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height ) : void
public CairoSurface::finish ( void ) : void
public CairoSurface::flush ( void ) : void
public CairoSurface::getContent ( void ) : int
public CairoSurface::getDeviceOffset ( void ) : array
public CairoSurface::getFontOptions ( void ) : void
public CairoSurface::getType ( void ) : int
public CairoSurface::markDirty ( void ) : void
public CairoSurface::markDirtyRectangle ( float $x , float $y , float $width , float $height ) : void
public CairoSurface::setDeviceOffset ( float $x , float $y ) : void
public CairoSurface::setFallbackResolution ( float $x , float $y ) : void
public CairoSurface::showPage ( void ) : void
public CairoSurface::status ( void ) : int
public CairoSurface::writeToPng ( string $file ) : void
}

Содержание

  • CairoPdfSurface::__construct — The __construct purpose
  • CairoPdfSurface::setSize — The setSize purpose


The __construct purpose

  • « CairoPdfSurface
  • CairoPdfSurface::setSize »
  • PHP Manual
  • CairoPdfSurface
  • The __construct purpose

CairoPdfSurface::__construct

(PECL cairo >= 0.1.0)

CairoPdfSurface::__construct — The __construct purpose

Описание

public CairoPdfSurface::__construct ( string $file , float $width , float $height )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Description...

width

Description...

height

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPdfSurface::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setSize purpose

  • « CairoPdfSurface::__construct
  • CairoPsSurface »
  • PHP Manual
  • CairoPdfSurface
  • The setSize purpose

CairoPdfSurface::setSize

(PECL cairo >= 0.1.0)

CairoPdfSurface::setSize — The setSize purpose

Описание

public CairoPdfSurface::setSize ( float $width , float $height ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

width

Description...

height

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPdfSurface::setSize() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Класс CairoPsSurface

(PECL cairo >= 0.1.0)

Введение

Обзор классов

CairoPsSurface extends CairoSurface {
/* Методы */
public __construct ( string $file , float $width , float $height )
public dscBeginPageSetup ( void ) : void
public dscBeginSetup ( void ) : void
public dscComment ( string $comment ) : void
public getEps ( void ) : bool
public static getLevels ( void ) : array
public static levelToString ( int $level ) : string
public restrictToLevel ( int $level ) : void
public setEps ( bool $level ) : void
public setSize ( float $width , float $height ) : void
/* Наследуемые методы */
public CairoSurface::__construct ( void )
public CairoSurface::copyPage ( void ) : void
public CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height ) : void
public CairoSurface::finish ( void ) : void
public CairoSurface::flush ( void ) : void
public CairoSurface::getContent ( void ) : int
public CairoSurface::getDeviceOffset ( void ) : array
public CairoSurface::getFontOptions ( void ) : void
public CairoSurface::getType ( void ) : int
public CairoSurface::markDirty ( void ) : void
public CairoSurface::markDirtyRectangle ( float $x , float $y , float $width , float $height ) : void
public CairoSurface::setDeviceOffset ( float $x , float $y ) : void
public CairoSurface::setFallbackResolution ( float $x , float $y ) : void
public CairoSurface::showPage ( void ) : void
public CairoSurface::status ( void ) : int
public CairoSurface::writeToPng ( string $file ) : void
}

Содержание

  • CairoPsSurface::__construct — The __construct purpose
  • CairoPsSurface::dscBeginPageSetup — The dscBeginPageSetup purpose
  • CairoPsSurface::dscBeginSetup — The dscBeginSetup purpose
  • CairoPsSurface::dscComment — The dscComment purpose
  • CairoPsSurface::getEps — The getEps purpose
  • CairoPsSurface::getLevels — The getLevels purpose
  • CairoPsSurface::levelToString — The levelToString purpose
  • CairoPsSurface::restrictToLevel — The restrictToLevel purpose
  • CairoPsSurface::setEps — The setEps purpose
  • CairoPsSurface::setSize — The setSize purpose


The __construct purpose

  • « CairoPsSurface
  • CairoPsSurface::dscBeginPageSetup »
  • PHP Manual
  • CairoPsSurface
  • The __construct purpose

CairoPsSurface::__construct

(PECL cairo >= 0.1.0)

CairoPsSurface::__construct — The __construct purpose

Описание

public CairoPsSurface::__construct ( string $file , float $width , float $height )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Description...

width

Description...

height

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The dscBeginPageSetup purpose

  • « CairoPsSurface::__construct
  • CairoPsSurface::dscBeginSetup »
  • PHP Manual
  • CairoPsSurface
  • The dscBeginPageSetup purpose

CairoPsSurface::dscBeginPageSetup

(PECL cairo >= 0.1.0)

CairoPsSurface::dscBeginPageSetup — The dscBeginPageSetup purpose

Описание

public CairoPsSurface::dscBeginPageSetup ( void ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::dscBeginPageSetup() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The dscBeginSetup purpose

  • « CairoPsSurface::dscBeginPageSetup
  • CairoPsSurface::dscComment »
  • PHP Manual
  • CairoPsSurface
  • The dscBeginSetup purpose

CairoPsSurface::dscBeginSetup

(PECL cairo >= 0.1.0)

CairoPsSurface::dscBeginSetup — The dscBeginSetup purpose

Описание

public CairoPsSurface::dscBeginSetup ( void ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::dscBeginSetup() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The dscComment purpose

  • « CairoPsSurface::dscBeginSetup
  • CairoPsSurface::getEps »
  • PHP Manual
  • CairoPsSurface
  • The dscComment purpose

CairoPsSurface::dscComment

(PECL cairo >= 0.1.0)

CairoPsSurface::dscComment — The dscComment purpose

Описание

public CairoPsSurface::dscComment ( string $comment ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

comment

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::dscComment() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getEps purpose

  • « CairoPsSurface::dscComment
  • CairoPsSurface::getLevels »
  • PHP Manual
  • CairoPsSurface
  • The getEps purpose

CairoPsSurface::getEps

(PECL cairo >= 0.1.0)

CairoPsSurface::getEps — The getEps purpose

Описание

public CairoPsSurface::getEps ( void ) : bool

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::getEps() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getLevels purpose

  • « CairoPsSurface::getEps
  • CairoPsSurface::levelToString »
  • PHP Manual
  • CairoPsSurface
  • The getLevels purpose

CairoPsSurface::getLevels

(PECL cairo >= 0.1.0)

CairoPsSurface::getLevels — The getLevels purpose

Описание

public static CairoPsSurface::getLevels ( void ) : array

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::getLevels() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The levelToString purpose

  • « CairoPsSurface::getLevels
  • CairoPsSurface::restrictToLevel »
  • PHP Manual
  • CairoPsSurface
  • The levelToString purpose

CairoPsSurface::levelToString

(PECL cairo >= 0.1.0)

CairoPsSurface::levelToString — The levelToString purpose

Описание

public static CairoPsSurface::levelToString ( int $level ) : string

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

level

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::levelToString() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The restrictToLevel purpose

  • « CairoPsSurface::levelToString
  • CairoPsSurface::setEps »
  • PHP Manual
  • CairoPsSurface
  • The restrictToLevel purpose

CairoPsSurface::restrictToLevel

(PECL cairo >= 0.1.0)

CairoPsSurface::restrictToLevel — The restrictToLevel purpose

Описание

public CairoPsSurface::restrictToLevel ( int $level ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

level

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::restrictToLevel() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setEps purpose

  • « CairoPsSurface::restrictToLevel
  • CairoPsSurface::setSize »
  • PHP Manual
  • CairoPsSurface
  • The setEps purpose

CairoPsSurface::setEps

(PECL cairo >= 0.1.0)

CairoPsSurface::setEps — The setEps purpose

Описание

public CairoPsSurface::setEps ( bool $level ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

level

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::setEps() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setSize purpose

  • « CairoPsSurface::setEps
  • CairoSurfaceType »
  • PHP Manual
  • CairoPsSurface
  • The setSize purpose

CairoPsSurface::setSize

(PECL cairo >= 0.1.0)

CairoPsSurface::setSize — The setSize purpose

Описание

public CairoPsSurface::setSize ( float $width , float $height ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

width

Description...

height

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::setSize() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Класс CairoSurfaceType

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

CairoSurfaceType {
/* Константы */
const integer IMAGE = 0 ;
const integer PDF = 1 ;
const integer PS = 2 ;
const integer XLIB = 3 ;
const integer XCB = 4 ;
const integer GLITZ = 5 ;
const integer QUARTZ = 6 ;
const integer WIN32 = 7 ;
const integer BEOS = 8 ;
const integer DIRECTFB = 9 ;
const integer SVG = 10 ;
const integer OS2 = 11 ;
const integer WIN32_PRINTING = 12 ;
const integer QUARTZ_IMAGE = 13 ;
}

Предопределенные константы

CairoSurfaceType::IMAGE

Здесь будет описание...

CairoSurfaceType::PDF

Здесь будет описание...

CairoSurfaceType::PS

Здесь будет описание...

CairoSurfaceType::XLIB

Здесь будет описание...

CairoSurfaceType::XCB

Здесь будет описание...

CairoSurfaceType::GLITZ

Здесь будет описание...

CairoSurfaceType::QUARTZ

Здесь будет описание...

CairoSurfaceType::WIN32

Здесь будет описание...

CairoSurfaceType::BEOS

Здесь будет описание...

CairoSurfaceType::DIRECTFB

Здесь будет описание...

CairoSurfaceType::SVG

Здесь будет описание...

CairoSurfaceType::OS2

Здесь будет описание...

CairoSurfaceType::WIN32_PRINTING

Здесь будет описание...

CairoSurfaceType::QUARTZ_IMAGE

Здесь будет описание...


The CairoFontFace class

(PECL cairo >= 0.1.0)

Введение

CairoFontFace abstract class represents a particular font at a particular weight, slant, and other characteristic but no transformation or size.

Note: This class can not be instantiated directly, it is created by CairoContext::getFontFace() or cairo_scaled_font_get_font_face().

Обзор классов

CairoFontFace {
/* Методы */
public __construct ( void )
public getType ( void ) : int
public status ( void ) : int
}

Содержание

  • CairoFontFace::__construct — Создает новый объект CairoFontFace
  • CairoFontFace::getType — Возвращает тип начертания шрифта
  • CairoFontFace::status — Проверяет на ошибки класса CairoFontFace


Создает новый объект CairoFontFace

  • « CairoFontFace
  • CairoFontFace::getType »
  • PHP Manual
  • CairoFontFace
  • Создает новый объект CairoFontFace

CairoFontFace::__construct

(PECL cairo >= 0.1.0)

CairoFontFace::__construct — Создает новый объект CairoFontFace

Описание

public CairoFontFace::__construct ( void )

Класс CairoFont содержит шрифт с определенном весом, наклоном, и другими характеристиками, но без задания трансформации или размера.

Обратите внимание, что объект этого класса нельзя создать напрямую. Экземпляр класса создается с помощью CairoContext::getFontFace() или cairo_scaled_font_get_font_face()

Список параметров

У этой функции нет параметров.

Возвращаемые значения

CairoFontFace

Примеры

Пример #1 Пример использования CairoFontFace::__construct()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Class::Method()


Возвращает тип начертания шрифта

  • « CairoFontFace::__construct
  • CairoFontFace::status »
  • PHP Manual
  • CairoFontFace
  • Возвращает тип начертания шрифта

CairoFontFace::getType

cairo_font_face_get_type

(PECL cairo >= 0.1.0)

CairoFontFace::getType -- cairo_font_face_get_type — Возвращает тип начертания шрифта

Описание

Объектно-ориентированный стиль (метод):

public CairoFontFace::getType ( void ) : int

Процедурный стиль:

cairo_font_face_get_type ( CairoFontFace $fontface ) : int

Эта функция возвращает тип бэкенда, использованного для создания начертания шрифта. Список констант с допустимыми типами смотрите в описании CairoFontType.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Тип шрифта, который может быть определен в CairoFontType

Примеры

Пример #1 Пример использования CairoFontFace::getType()

<?php

// Создаем начертание шрифта
$fontface = new CairoToyFontFace('sans-serif');

// Получаем тип начертания
var_dump($fontface->getType());

?>

Результатом выполнения данного примера будет что-то подобное:

int(0)

Смотрите также

  • Classname::Method()


Проверяет на ошибки класса CairoFontFace

  • « CairoFontFace::getType
  • CairoFontOptions »
  • PHP Manual
  • CairoFontFace
  • Проверяет на ошибки класса CairoFontFace

CairoFontFace::status

cairo_font_face_status

(PECL cairo >= 0.1.0)

CairoFontFace::status -- cairo_font_face_status — Проверяет на ошибки класса CairoFontFace

Описание

Объектно-ориентированный стиль (method):

public CairoFontFace::status ( void ) : int

Процедурный стиль:

cairo_font_face_status ( CairoFontFace $fontface ) : int

Проверяет, произошла ли ранее ошибка для этого начертания шрифта.

Список параметров

fontface

Корректный объект CairoFontFace

Возвращаемые значения

CAIRO_STATUS_SUCCESS или другие ошибки, такие как CAIRO_STATUS_NO_MEMORY.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

// Создаем начертание шрифта
$fontface = new CairoToyFontFace('sans-serif');

// Получаем статус начертания
var_dump($fontface->status()); // должно быть CAIRO_STATUS_SUCCESS

?>

Результатом выполнения данного примера будет что-то подобное:

int(0)

Пример #2 Процедурный стиль

<?php

// Создаем начертание шрифта
$fontface = new CairoToyFontFace('sans-serif');

// Получаем статус начертания
var_dump(cairo_font_face_status($fontface)); // должно быть CAIRO_STATUS_SUCCESS

?>

Результатом выполнения данного примера будет что-то подобное:

int(0)

Смотрите также

  • Classname::Method()


The CairoFontOptions class

(PECL cairo >= 0.1.0)

Введение

An opaque structure holding all options that are used when rendering fonts.

Individual features of a cairo_font_options_t can be set or accessed using functions named cairo_font_options_set_feature_name and cairo_font_options_get_feature_name, like cairo_font_options_set_antialias() and cairo_font_options_get_antialias().

New features may be added to CairoFontOptions in the future. For this reason CairoFontOptions::copy(), CairoFontOptions::equal(), CairoFontOptions::merge(), CairoFontOptions::hash() (cairo_font_options_copy(), cairo_font_options_equal(), cairo_font_options_merge(), and cairo_font_options_hash() in procedural way) should be used to copy, check for equality, merge, or compute a hash value of CairoFontOptions objects.

Обзор классов

CairoFontOptions {
/* Методы */
public __construct ( void )
public equal ( CairoFontOptions $other ) : bool
public getAntialias ( void ) : int
public getHintMetrics ( void ) : int
public getHintStyle ( void ) : int
public getSubpixelOrder ( void ) : int
public hash ( void ) : int
public merge ( CairoFontOptions $other ) : void
public setAntialias ( int $antialias ) : void
public setHintMetrics ( int $hint_metrics ) : void
public setHintStyle ( int $hint_style ) : void
public setSubpixelOrder ( int $subpixel_order ) : void
public status ( void ) : int
}

Содержание

  • CairoFontOptions::__construct — The __construct purpose
  • CairoFontOptions::equal — The equal purpose
  • CairoFontOptions::getAntialias — The getAntialias purpose
  • CairoFontOptions::getHintMetrics — The getHintMetrics purpose
  • CairoFontOptions::getHintStyle — The getHintStyle purpose
  • CairoFontOptions::getSubpixelOrder — The getSubpixelOrder purpose
  • CairoFontOptions::hash — The hash purpose
  • CairoFontOptions::merge — The merge purpose
  • CairoFontOptions::setAntialias — The setAntialias purpose
  • CairoFontOptions::setHintMetrics — The setHintMetrics purpose
  • CairoFontOptions::setHintStyle — The setHintStyle purpose
  • CairoFontOptions::setSubpixelOrder — The setSubpixelOrder purpose
  • CairoFontOptions::status — The status purpose


The __construct purpose

  • « CairoFontOptions
  • CairoFontOptions::equal »
  • PHP Manual
  • CairoFontOptions
  • The __construct purpose

CairoFontOptions::__construct

(PECL cairo >= 0.1.0)

CairoFontOptions::__construct — The __construct purpose

Описание

public CairoFontOptions::__construct ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The equal purpose

  • « CairoFontOptions::__construct
  • CairoFontOptions::getAntialias »
  • PHP Manual
  • CairoFontOptions
  • The equal purpose

CairoFontOptions::equal

(PECL cairo >= 0.1.0)

CairoFontOptions::equal — The equal purpose

Описание

public CairoFontOptions::equal ( CairoFontOptions $other ) : bool

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

other

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::equal() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getAntialias purpose

  • « CairoFontOptions::equal
  • CairoFontOptions::getHintMetrics »
  • PHP Manual
  • CairoFontOptions
  • The getAntialias purpose

CairoFontOptions::getAntialias

cairo_get_antialias

(PECL cairo >= 0.1.0)

CairoFontOptions::getAntialias -- cairo_get_antialias — The getAntialias purpose

Описание

Объектно-ориентированный стиль (method):

public CairoFontOptions::getAntialias ( void ) : int

Процедурный стиль:

cairo_get_antialias ( CairoContext $context ) : int

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getHintMetrics purpose

  • « CairoFontOptions::getAntialias
  • CairoFontOptions::getHintStyle »
  • PHP Manual
  • CairoFontOptions
  • The getHintMetrics purpose

CairoFontOptions::getHintMetrics

(PECL cairo >= 0.1.0)

CairoFontOptions::getHintMetrics — The getHintMetrics purpose

Описание

public CairoFontOptions::getHintMetrics ( void ) : int

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::getHintMetrics() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getHintStyle purpose

  • « CairoFontOptions::getHintMetrics
  • CairoFontOptions::getSubpixelOrder »
  • PHP Manual
  • CairoFontOptions
  • The getHintStyle purpose

CairoFontOptions::getHintStyle

(PECL cairo >= 0.1.0)

CairoFontOptions::getHintStyle — The getHintStyle purpose

Описание

public CairoFontOptions::getHintStyle ( void ) : int

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::getHintStyle() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getSubpixelOrder purpose

  • « CairoFontOptions::getHintStyle
  • CairoFontOptions::hash »
  • PHP Manual
  • CairoFontOptions
  • The getSubpixelOrder purpose

CairoFontOptions::getSubpixelOrder

(PECL cairo >= 0.1.0)

CairoFontOptions::getSubpixelOrder — The getSubpixelOrder purpose

Описание

public CairoFontOptions::getSubpixelOrder ( void ) : int

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::getSubpixelOrder() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The hash purpose

  • « CairoFontOptions::getSubpixelOrder
  • CairoFontOptions::merge »
  • PHP Manual
  • CairoFontOptions
  • The hash purpose

CairoFontOptions::hash

(PECL cairo >= 0.1.0)

CairoFontOptions::hash — The hash purpose

Описание

public CairoFontOptions::hash ( void ) : int

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::hash() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The merge purpose

  • « CairoFontOptions::hash
  • CairoFontOptions::setAntialias »
  • PHP Manual
  • CairoFontOptions
  • The merge purpose

CairoFontOptions::merge

(PECL cairo >= 0.1.0)

CairoFontOptions::merge — The merge purpose

Описание

public CairoFontOptions::merge ( CairoFontOptions $other ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

other

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::merge() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setAntialias purpose

  • « CairoFontOptions::merge
  • CairoFontOptions::setHintMetrics »
  • PHP Manual
  • CairoFontOptions
  • The setAntialias purpose

CairoFontOptions::setAntialias

cairo_set_antialias

(PECL cairo >= 0.1.0)

CairoFontOptions::setAntialias -- cairo_set_antialias — The setAntialias purpose

Описание

Объектно-ориентированный стиль (method):

public CairoFontOptions::setAntialias ( int $antialias ) : void

Процедурный стиль:

cairo_set_antialias ( CairoContext $context [, int $antialias ] ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

antialias

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setHintMetrics purpose

  • « CairoFontOptions::setAntialias
  • CairoFontOptions::setHintStyle »
  • PHP Manual
  • CairoFontOptions
  • The setHintMetrics purpose

CairoFontOptions::setHintMetrics

(PECL cairo >= 0.1.0)

CairoFontOptions::setHintMetrics — The setHintMetrics purpose

Описание

public CairoFontOptions::setHintMetrics ( int $hint_metrics ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

hint_metrics

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::setHintMetrics() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setHintStyle purpose

  • « CairoFontOptions::setHintMetrics
  • CairoFontOptions::setSubpixelOrder »
  • PHP Manual
  • CairoFontOptions
  • The setHintStyle purpose

CairoFontOptions::setHintStyle

(PECL cairo >= 0.1.0)

CairoFontOptions::setHintStyle — The setHintStyle purpose

Описание

public CairoFontOptions::setHintStyle ( int $hint_style ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

hint_style

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::setHintStyle() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setSubpixelOrder purpose

  • « CairoFontOptions::setHintStyle
  • CairoFontOptions::status »
  • PHP Manual
  • CairoFontOptions
  • The setSubpixelOrder purpose

CairoFontOptions::setSubpixelOrder

(PECL cairo >= 0.1.0)

CairoFontOptions::setSubpixelOrder — The setSubpixelOrder purpose

Описание

public CairoFontOptions::setSubpixelOrder ( int $subpixel_order ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

subpixel_order

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::setSubpixelOrder() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The status purpose

  • « CairoFontOptions::setSubpixelOrder
  • CairoFontSlant »
  • PHP Manual
  • CairoFontOptions
  • The status purpose

CairoFontOptions::status

cairo_status

(PECL cairo >= 0.1.0)

CairoFontOptions::status -- cairo_status — The status purpose

Описание

Объектно-ориентированный стиль (method):

public CairoFontOptions::status ( void ) : int

Процедурный стиль:

cairo_status ( CairoContext $context ) : int

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The CairoFontSlant class

(Информация о версии неизвестна, возможно, только в Git)

Введение

Specifies variants of a font face based on their slant.

Обзор классов

CairoFontSlant {
/* Константы */
const integer NORMAL = 0 ;
const integer ITALIC = 1 ;
const integer OBLIQUE = 2 ;
}

Предопределенные константы

CairoFontSlant::NORMAL

Upright font style

CairoFontSlant::ITALIC

Italic font style

CairoFontSlant::OBLIQUE

Oblique font style


The CairoFontType class

(Информация о версии неизвестна, возможно, только в Git)

Введение

CairoFontType class is an abstract final class that contains constants used to describe the type of a given CairoFontFace or CairoScaledFont. The font types are also known as "font backends" within cairo.

The type of a CairoFontFace is determined by the how it is created, an example would be the CairoToyFontFace::__construct(). The CairoFontFace type can be queried with CairoFontFace::getType() or cairo_font_face_get_type()

The various CairoFontFace functions can be used with a font face of any type.

The type of a CairoScaledFont is determined by the type of the CairoFontFace passed to CairoScaledFont::__construct() or cairo_scaled_font_create(). The scaled font type can be queried with CairoScaledFont::getType() or cairo_scaled_font_get_type().

Обзор классов

CairoFontType {
/* Константы */
const integer TOY = 0 ;
const integer FT = 1 ;
const integer WIN32 = 2 ;
const integer QUARTZ = 3 ;
}

Предопределенные константы

CairoFontType::TOY

The font was created using CairoToyFont api

CairoFontType::FT

The font is of type CairoFreeType

CairoFontType::WIN32

The font is of type Win32

CairoFontType::QUARTZ

The font is of type Quartz

CairoFontType::USER

The font was create using cairo's user font api


The CairoFontWeight class

(Информация о версии неизвестна, возможно, только в Git)

Введение

Specifies variants of a font face based on their weight.

Обзор классов

CairoFontWeight {
/* Константы */
const integer NORMAL = 0 ;
const integer BOLD = 1 ;
}

Предопределенные константы

CairoFontWeight::NORMAL

Normal font weight

CairoFontWeight::BOLD

Bold font weight


Класс CairoScaledFont

(PECL cairo >= 0.1.0)

Введение

Обзор классов

CairoScaledFont {
/* Методы */
public __construct ( CairoFontFace $font_face , CairoMatrix $matrix , CairoMatrix $ctm , CairoFontOptions $options )
public extents ( void ) : array
public getCtm ( void ) : CairoMatrix
public getFontFace ( void ) : void
public getFontMatrix ( void ) : void
public getFontOptions ( void ) : void
public getScaleMatrix ( void ) : void
public getType ( void ) : int
public glyphExtents ( array $glyphs ) : array
public status ( void ) : int
public textExtents ( string $text ) : array
}

Содержание

  • CairoScaledFont::__construct — The __construct purpose
  • CairoScaledFont::extents — The extents purpose
  • CairoScaledFont::getCtm — The getCtm purpose
  • CairoScaledFont::getFontFace — The getFontFace purpose
  • CairoScaledFont::getFontMatrix — The getFontMatrix purpose
  • CairoScaledFont::getFontOptions — The getFontOptions purpose
  • CairoScaledFont::getScaleMatrix — The getScaleMatrix purpose
  • CairoScaledFont::getType — The getType purpose
  • CairoScaledFont::glyphExtents — The glyphExtents purpose
  • CairoScaledFont::status — The status purpose
  • CairoScaledFont::textExtents — The textExtents purpose


The __construct purpose

  • « CairoScaledFont
  • CairoScaledFont::extents »
  • PHP Manual
  • CairoScaledFont
  • The __construct purpose

CairoScaledFont::__construct

(PECL cairo >= 0.1.0)

CairoScaledFont::__construct — The __construct purpose

Описание

public CairoScaledFont::__construct ( CairoFontFace $font_face , CairoMatrix $matrix , CairoMatrix $ctm , CairoFontOptions $options )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

font_face

Description...

matrix

Description...

ctm

Description...

options

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoScaledFont::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The extents purpose

  • « CairoScaledFont::__construct
  • CairoScaledFont::getCtm »
  • PHP Manual
  • CairoScaledFont
  • The extents purpose

CairoScaledFont::extents

(PECL cairo >= 0.1.0)

CairoScaledFont::extents — The extents purpose

Описание

public CairoScaledFont::extents ( void ) : array

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoScaledFont::extents() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getCtm purpose

  • « CairoScaledFont::extents
  • CairoScaledFont::getFontFace »
  • PHP Manual
  • CairoScaledFont
  • The getCtm purpose

CairoScaledFont::getCtm

(PECL cairo >= 0.1.0)

CairoScaledFont::getCtm — The getCtm purpose

Описание

public CairoScaledFont::getCtm ( void ) : CairoMatrix

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoScaledFont::getCtm() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getFontFace purpose

  • « CairoScaledFont::getCtm
  • CairoScaledFont::getFontMatrix »
  • PHP Manual
  • CairoScaledFont
  • The getFontFace purpose

CairoScaledFont::getFontFace

cairo_get_font_face

(PECL cairo >= 0.1.0)

CairoScaledFont::getFontFace -- cairo_get_font_face — The getFontFace purpose

Описание

Объектно-ориентированный стиль (method):

public CairoScaledFont::getFontFace ( void ) : void

Процедурный стиль:

cairo_get_font_face ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getFontMatrix purpose

  • « CairoScaledFont::getFontFace
  • CairoScaledFont::getFontOptions »
  • PHP Manual
  • CairoScaledFont
  • The getFontMatrix purpose

CairoScaledFont::getFontMatrix

cairo_get_font_matrix

(PECL cairo >= 0.1.0)

CairoScaledFont::getFontMatrix -- cairo_get_font_matrix — The getFontMatrix purpose

Описание

Объектно-ориентированный стиль (method):

public CairoScaledFont::getFontMatrix ( void ) : void

Процедурный стиль:

cairo_get_font_matrix ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getFontOptions purpose

  • « CairoScaledFont::getFontMatrix
  • CairoScaledFont::getScaleMatrix »
  • PHP Manual
  • CairoScaledFont
  • The getFontOptions purpose

CairoScaledFont::getFontOptions

cairo_get_font_options

(PECL cairo >= 0.1.0)

CairoScaledFont::getFontOptions -- cairo_get_font_options — The getFontOptions purpose

Описание

Объектно-ориентированный стиль (method):

public CairoScaledFont::getFontOptions ( void ) : void

Процедурный стиль:

cairo_get_font_options ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getScaleMatrix purpose

  • « CairoScaledFont::getFontOptions
  • CairoScaledFont::getType »
  • PHP Manual
  • CairoScaledFont
  • The getScaleMatrix purpose

CairoScaledFont::getScaleMatrix

(PECL cairo >= 0.1.0)

CairoScaledFont::getScaleMatrix — The getScaleMatrix purpose

Описание

public CairoScaledFont::getScaleMatrix ( void ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoScaledFont::getScaleMatrix() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getType purpose

  • « CairoScaledFont::getScaleMatrix
  • CairoScaledFont::glyphExtents »
  • PHP Manual
  • CairoScaledFont
  • The getType purpose

CairoScaledFont::getType

(PECL cairo >= 0.1.0)

CairoScaledFont::getType — The getType purpose

Описание

public CairoScaledFont::getType ( void ) : int

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoScaledFont::getType() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The glyphExtents purpose

  • « CairoScaledFont::getType
  • CairoScaledFont::status »
  • PHP Manual
  • CairoScaledFont
  • The glyphExtents purpose

CairoScaledFont::glyphExtents

(PECL cairo >= 0.1.0)

CairoScaledFont::glyphExtents — The glyphExtents purpose

Описание

public CairoScaledFont::glyphExtents ( array $glyphs ) : array

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

glyphs

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoScaledFont::glyphExtents() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The status purpose

  • « CairoScaledFont::glyphExtents
  • CairoScaledFont::textExtents »
  • PHP Manual
  • CairoScaledFont
  • The status purpose

CairoScaledFont::status

cairo_status

(PECL cairo >= 0.1.0)

CairoScaledFont::status -- cairo_status — The status purpose

Описание

Объектно-ориентированный стиль (method):

public CairoScaledFont::status ( void ) : int

Процедурный стиль:

cairo_status ( CairoContext $context ) : int

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The textExtents purpose

  • « CairoScaledFont::status
  • CairoToyFontFace »
  • PHP Manual
  • CairoScaledFont
  • The textExtents purpose

CairoScaledFont::textExtents

cairo_text_extents

(PECL cairo >= 0.1.0)

CairoScaledFont::textExtents -- cairo_text_extents — The textExtents purpose

Описание

Объектно-ориентированный стиль (method):

public CairoScaledFont::textExtents ( string $text ) : array

Процедурный стиль:

cairo_text_extents ( CairoContext $context ) : array

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

text

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The CairoToyFontFace class

(PECL cairo >= 0.1.0)

Введение

The CairoToyFontFace class can be used instead of CairoContext::selectFontFace() to create a toy font independently of a context.

Обзор классов

CairoToyFontFace extends CairoFontFace {
/* Наследуемые методы */
}


The CairoPatternType class

(Информация о версии неизвестна, возможно, только в Git)

Введение

CairoPatternType is used to describe the type of a given pattern.

The type of a pattern is determined by the function used to create it. The cairo_pattern_create_rgb() and cairo_pattern_create_rgba() functions create CairoPatternType::SOLID patterns. The remaining cairo_pattern_create_* functions map to pattern types in obvious ways.

Обзор классов

CairoPatternType {
/* Константы */
const integer SOLID = 0 ;
const integer SURFACE = 1 ;
const integer LINEAR = 2 ;
const integer RADIAL = 3 ;
}

Предопределенные константы

CairoPatternType::SOLID

The pattern is a solid (uniform) color. It may be opaque or translucent.

CairoPatternType::SURFACE

The pattern is a based on a surface (an image).

CairoPatternType::LINEAR

The pattern is a linear gradient.

CairoPatternType::RADIAL

The pattern is a radial gradient.


The CairoPattern class

(PECL cairo >= 0.1.0)

Введение

CairoPattern is the abstract base class from which all the other pattern classes derive. It cannot be instantiated directly

Обзор классов

CairoPattern {
/* Методы */
public __construct ( void )
public getMatrix ( void ) : void
public getType ( void ) : int
public setMatrix ( CairoMatrix $matrix ) : void
public status ( void ) : int
}

Содержание

  • CairoPattern::__construct — The __construct purpose
  • CairoPattern::getMatrix — The getMatrix purpose
  • CairoPattern::getType — The getType purpose
  • CairoPattern::setMatrix — The setMatrix purpose
  • CairoPattern::status — The status purpose


The __construct purpose

  • « CairoPattern
  • CairoPattern::getMatrix »
  • PHP Manual
  • CairoPattern
  • The __construct purpose

CairoPattern::__construct

(PECL cairo >= 0.1.0)

CairoPattern::__construct — The __construct purpose

Описание

public CairoPattern::__construct ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPattern::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getMatrix purpose

  • « CairoPattern::__construct
  • CairoPattern::getType »
  • PHP Manual
  • CairoPattern
  • The getMatrix purpose

CairoPattern::getMatrix

cairo_get_matrix

(PECL cairo >= 0.1.0)

CairoPattern::getMatrix -- cairo_get_matrix — The getMatrix purpose

Описание

Объектно-ориентированный стиль (method):

public CairoPattern::getMatrix ( void ) : void

Процедурный стиль:

cairo_get_matrix ( CairoContext $context ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getType purpose

  • « CairoPattern::getMatrix
  • CairoPattern::setMatrix »
  • PHP Manual
  • CairoPattern
  • The getType purpose

CairoPattern::getType

(PECL cairo >= 0.1.0)

CairoPattern::getType — The getType purpose

Описание

public CairoPattern::getType ( void ) : int

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPattern::getType() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setMatrix purpose

  • « CairoPattern::getType
  • CairoPattern::status »
  • PHP Manual
  • CairoPattern
  • The setMatrix purpose

CairoPattern::setMatrix

cairo_set_matrix

(PECL cairo >= 0.1.0)

CairoPattern::setMatrix -- cairo_set_matrix — The setMatrix purpose

Описание

Объектно-ориентированный стиль (method):

public CairoPattern::setMatrix ( CairoMatrix $matrix ) : void

Процедурный стиль:

cairo_set_matrix ( CairoContext $context , CairoMatrix $matrix ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

matrix

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The status purpose

  • « CairoPattern::setMatrix
  • CairoGradientPattern »
  • PHP Manual
  • CairoPattern
  • The status purpose

CairoPattern::status

cairo_status

(PECL cairo >= 0.1.0)

CairoPattern::status -- cairo_status — The status purpose

Описание

Объектно-ориентированный стиль (method):

public CairoPattern::status ( void ) : int

Процедурный стиль:

cairo_status ( CairoContext $context ) : int

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The CairoGradientPattern class

(PECL cairo >= 0.1.0)

Введение

CairoGradientPattern is an abstract base class from which other Pattern classes derive. It cannot be instantiated directly.

Обзор классов

CairoGradientPattern extends CairoPattern {
/* Методы */
public addColorStopRgb ( float $offset , float $red , float $green , float $blue ) : void
public addColorStopRgba ( float $offset , float $red , float $green , float $blue , float $alpha ) : void
public getColorStopCount ( void ) : int
public getColorStopRgba ( int $index ) : array
public getExtend ( void ) : int
public setExtend ( int $extend ) : void
/* Наследуемые методы */
public CairoPattern::__construct ( void )
public CairoPattern::getMatrix ( void ) : void
public CairoPattern::getType ( void ) : int
public CairoPattern::setMatrix ( CairoMatrix $matrix ) : void
public CairoPattern::status ( void ) : int
}

Содержание

  • CairoGradientPattern::addColorStopRgb — The addColorStopRgb purpose
  • CairoGradientPattern::addColorStopRgba — The addColorStopRgba purpose
  • CairoGradientPattern::getColorStopCount — The getColorStopCount purpose
  • CairoGradientPattern::getColorStopRgba — The getColorStopRgba purpose
  • CairoGradientPattern::getExtend — The getExtend purpose
  • CairoGradientPattern::setExtend — The setExtend purpose


The addColorStopRgb purpose

  • « CairoGradientPattern
  • CairoGradientPattern::addColorStopRgba »
  • PHP Manual
  • CairoGradientPattern
  • The addColorStopRgb purpose

CairoGradientPattern::addColorStopRgb

(PECL cairo >= 0.1.0)

CairoGradientPattern::addColorStopRgb — The addColorStopRgb purpose

Описание

public CairoGradientPattern::addColorStopRgb ( float $offset , float $red , float $green , float $blue ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

offset

Description...

red

Description...

green

Description...

blue

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoGradientPattern::addColorStopRgb() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The addColorStopRgba purpose

  • « CairoGradientPattern::addColorStopRgb
  • CairoGradientPattern::getColorStopCount »
  • PHP Manual
  • CairoGradientPattern
  • The addColorStopRgba purpose

CairoGradientPattern::addColorStopRgba

(PECL cairo >= 0.1.0)

CairoGradientPattern::addColorStopRgba — The addColorStopRgba purpose

Описание

public CairoGradientPattern::addColorStopRgba ( float $offset , float $red , float $green , float $blue , float $alpha ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

offset

Description...

red

Description...

green

Description...

blue

Description...

alpha

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoGradientPattern::addColorStopRgba() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getColorStopCount purpose

  • « CairoGradientPattern::addColorStopRgba
  • CairoGradientPattern::getColorStopRgba »
  • PHP Manual
  • CairoGradientPattern
  • The getColorStopCount purpose

CairoGradientPattern::getColorStopCount

(PECL cairo >= 0.1.0)

CairoGradientPattern::getColorStopCount — The getColorStopCount purpose

Описание

public CairoGradientPattern::getColorStopCount ( void ) : int

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoGradientPattern::getColorStopCount() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getColorStopRgba purpose

  • « CairoGradientPattern::getColorStopCount
  • CairoGradientPattern::getExtend »
  • PHP Manual
  • CairoGradientPattern
  • The getColorStopRgba purpose

CairoGradientPattern::getColorStopRgba

(PECL cairo >= 0.1.0)

CairoGradientPattern::getColorStopRgba — The getColorStopRgba purpose

Описание

public CairoGradientPattern::getColorStopRgba ( int $index ) : array

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoGradientPattern::getColorStopRgba() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getExtend purpose

  • « CairoGradientPattern::getColorStopRgba
  • CairoGradientPattern::setExtend »
  • PHP Manual
  • CairoGradientPattern
  • The getExtend purpose

CairoGradientPattern::getExtend

(PECL cairo >= 0.1.0)

CairoGradientPattern::getExtend — The getExtend purpose

Описание

public CairoGradientPattern::getExtend ( void ) : int

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoGradientPattern::getExtend() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setExtend purpose

  • « CairoGradientPattern::getExtend
  • CairoSolidPattern »
  • PHP Manual
  • CairoGradientPattern
  • The setExtend purpose

CairoGradientPattern::setExtend

(PECL cairo >= 0.1.0)

CairoGradientPattern::setExtend — The setExtend purpose

Описание

public CairoGradientPattern::setExtend ( int $extend ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

extend

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoGradientPattern::setExtend() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Класс CairoSolidPattern

(PECL cairo >= 0.1.0)

Введение

Обзор классов

CairoSolidPattern extends CairoPattern {
/* Методы */
public __construct ( float $red , float $green , float $blue [, float $alpha = 0 ] )
public getRgba ( void ) : array
/* Наследуемые методы */
public CairoPattern::__construct ( void )
public CairoPattern::getMatrix ( void ) : void
public CairoPattern::getType ( void ) : int
public CairoPattern::setMatrix ( CairoMatrix $matrix ) : void
public CairoPattern::status ( void ) : int
}

Содержание

  • CairoSolidPattern::__construct — Цель __construct
  • CairoSolidPattern::getRgba — Цель getRgba


Цель __construct

  • « CairoSolidPattern
  • CairoSolidPattern::getRgba »
  • PHP Manual
  • CairoSolidPattern
  • Цель __construct

CairoSolidPattern::__construct

(PECL cairo >= 0.1.0)

CairoSolidPattern::__construct — Цель __construct

Описание

public CairoSolidPattern::__construct ( float $red , float $green , float $blue [, float $alpha = 0 ] )

Описание метода.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

red

Описание...

green

Описание...

blue

Описание...

alpha

Описание...

Возвращаемые значения

Описание...

Примеры

Пример #1 Пример использования CairoSolidPattern::__construct()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Цель getRgba

  • « CairoSolidPattern::__construct
  • CairoSurfacePattern »
  • PHP Manual
  • CairoSolidPattern
  • Цель getRgba

CairoSolidPattern::getRgba

(PECL cairo >= 0.1.0)

CairoSolidPattern::getRgba — Цель getRgba

Описание

public CairoSolidPattern::getRgba ( void ) : array

Описание метода.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Описание...

Примеры

Пример #1 Пример использования CairoSolidPattern::getRgba()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Класс CairoSurfacePattern

(PECL cairo >= 0.1.0)

Введение

Обзор классов

CairoSurfacePattern extends CairoPattern {
/* Методы */
public __construct ( CairoSurface $surface )
public getExtend ( void ) : int
public getFilter ( void ) : int
public getSurface ( void ) : void
public setExtend ( int $extend ) : void
public setFilter ( int $filter ) : void
/* Наследуемые методы */
public CairoPattern::__construct ( void )
public CairoPattern::getMatrix ( void ) : void
public CairoPattern::getType ( void ) : int
public CairoPattern::setMatrix ( CairoMatrix $matrix ) : void
public CairoPattern::status ( void ) : int
}

Содержание

  • CairoSurfacePattern::__construct — Цель __construct
  • CairoSurfacePattern::getExtend — Цель getExtend
  • CairoSurfacePattern::getFilter — Цель getFilter
  • CairoSurfacePattern::getSurface — Цель getSurface
  • CairoSurfacePattern::setExtend — Цель setExtend
  • CairoSurfacePattern::setFilter — Цель setFilter


Цель __construct

  • « CairoSurfacePattern
  • CairoSurfacePattern::getExtend »
  • PHP Manual
  • CairoSurfacePattern
  • Цель __construct

CairoSurfacePattern::__construct

(PECL cairo >= 0.1.0)

CairoSurfacePattern::__construct — Цель __construct

Описание

public CairoSurfacePattern::__construct ( CairoSurface $surface )

Описание метода.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Описание...

Возвращаемые значения

Описание...

Примеры

Пример #1 Пример использования CairoSurfacePattern::__construct()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Цель getExtend

  • « CairoSurfacePattern::__construct
  • CairoSurfacePattern::getFilter »
  • PHP Manual
  • CairoSurfacePattern
  • Цель getExtend

CairoSurfacePattern::getExtend

(PECL cairo >= 0.1.0)

CairoSurfacePattern::getExtend — Цель getExtend

Описание

public CairoSurfacePattern::getExtend ( void ) : int

Описание метода.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Описание...

Примеры

Пример #1 Пример использования CairoSurfacePattern::getExtend()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Цель getFilter

  • « CairoSurfacePattern::getExtend
  • CairoSurfacePattern::getSurface »
  • PHP Manual
  • CairoSurfacePattern
  • Цель getFilter

CairoSurfacePattern::getFilter

(PECL cairo >= 0.1.0)

CairoSurfacePattern::getFilter — Цель getFilter

Описание

public CairoSurfacePattern::getFilter ( void ) : int

Описание метода.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Описание...

Примеры

Пример #1 Пример использования CairoSurfacePattern::getFilter()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Цель getSurface

  • « CairoSurfacePattern::getFilter
  • CairoSurfacePattern::setExtend »
  • PHP Manual
  • CairoSurfacePattern
  • Цель getSurface

CairoSurfacePattern::getSurface

(PECL cairo >= 0.1.0)

CairoSurfacePattern::getSurface — Цель getSurface

Описание

public CairoSurfacePattern::getSurface ( void ) : void

Описание метода.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Описание...

Примеры

Пример #1 Пример использования CairoSurfacePattern::getSurface()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Цель setExtend

  • « CairoSurfacePattern::getSurface
  • CairoSurfacePattern::setFilter »
  • PHP Manual
  • CairoSurfacePattern
  • Цель setExtend

CairoSurfacePattern::setExtend

(PECL cairo >= 0.1.0)

CairoSurfacePattern::setExtend — Цель setExtend

Описание

public CairoSurfacePattern::setExtend ( int $extend ) : void

Описание метода.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

extend

Описание...

Возвращаемые значения

Описание...

Примеры

Пример #1 Пример использования CairoSurfacePattern::setExtend()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Цель setFilter

  • « CairoSurfacePattern::setExtend
  • CairoLinearGradient »
  • PHP Manual
  • CairoSurfacePattern
  • Цель setFilter

CairoSurfacePattern::setFilter

(PECL cairo >= 0.1.0)

CairoSurfacePattern::setFilter — Цель setFilter

Описание

public CairoSurfacePattern::setFilter ( int $filter ) : void

Описание метода.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

filter

Описание...

Возвращаемые значения

Описание...

Примеры

Пример #1 Пример использования CairoSurfacePattern::setFilter()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The CairoLinearGradient class

(PECL cairo >= 0.1.0)

Введение

Create a new CairoLinearGradient along the line defined

Обзор классов

CairoLinearGradient extends CairoGradientPattern {
/* Методы */
public __construct ( float $x0 , float $y0 , float $x1 , float $y1 )
public getPoints ( void ) : array
/* Наследуемые методы */
public CairoGradientPattern::addColorStopRgb ( float $offset , float $red , float $green , float $blue ) : void
public CairoGradientPattern::addColorStopRgba ( float $offset , float $red , float $green , float $blue , float $alpha ) : void
public CairoGradientPattern::getColorStopCount ( void ) : int
public CairoGradientPattern::getColorStopRgba ( int $index ) : array
public CairoGradientPattern::getExtend ( void ) : int
public CairoGradientPattern::setExtend ( int $extend ) : void
}

Содержание

  • CairoLinearGradient::__construct — Цель __construct
  • CairoLinearGradient::getPoints — Цель getPoints


Цель __construct

  • « CairoLinearGradient
  • CairoLinearGradient::getPoints »
  • PHP Manual
  • CairoLinearGradient
  • Цель __construct

CairoLinearGradient::__construct

(PECL cairo >= 0.1.0)

CairoLinearGradient::__construct — Цель __construct

Описание

public CairoLinearGradient::__construct ( float $x0 , float $y0 , float $x1 , float $y1 )

Описание метода.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x0

Описание...

y0

Описание...

x1

Описание...

y1

Описание...

Возвращаемые значения

Описание...

Примеры

Пример #1 Пример использования CairoLinearGradient::__construct()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Цель getPoints

  • « CairoLinearGradient::__construct
  • CairoRadialGradient »
  • PHP Manual
  • CairoLinearGradient
  • Цель getPoints

CairoLinearGradient::getPoints

(PECL cairo >= 0.1.0)

CairoLinearGradient::getPoints — Цель getPoints

Описание

public CairoLinearGradient::getPoints ( void ) : array

Описание метода.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Описание...

Примеры

Пример #1 Пример использования CairoLinearGradient::getPoints()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Класс CairoRadialGradient

(PECL cairo >= 0.1.0)

Введение

Обзор классов

CairoRadialGradient extends CairoGradientPattern {
/* Методы */
public __construct ( float $x0 , float $y0 , float $r0 , float $x1 , float $y1 , float $r1 )
public getCircles ( void ) : array
/* Наследуемые методы */
public CairoGradientPattern::addColorStopRgb ( float $offset , float $red , float $green , float $blue ) : void
public CairoGradientPattern::addColorStopRgba ( float $offset , float $red , float $green , float $blue , float $alpha ) : void
public CairoGradientPattern::getColorStopCount ( void ) : int
public CairoGradientPattern::getColorStopRgba ( int $index ) : array
public CairoGradientPattern::getExtend ( void ) : int
public CairoGradientPattern::setExtend ( int $extend ) : void
}

Содержание

  • CairoRadialGradient::__construct — The __construct purpose
  • CairoRadialGradient::getCircles — The getCircles purpose


The __construct purpose

  • « CairoRadialGradient
  • CairoRadialGradient::getCircles »
  • PHP Manual
  • CairoRadialGradient
  • The __construct purpose

CairoRadialGradient::__construct

(PECL cairo >= 0.1.0)

CairoRadialGradient::__construct — The __construct purpose

Описание

Объектно-ориентированный стиль:

public CairoRadialGradient::__construct ( float $x0 , float $y0 , float $r0 , float $x1 , float $y1 , float $r1 )

Процедурный стиль:

Creates a new radial gradient CairoPattern between the two circles defined by (x0, y0, r0) and (x1, y1, r1). Before using the gradient pattern, a number of color stops should be defined using CairoRadialGradient::addColorStopRgb() or CairoRadialGradient::addColorStopRgba().

Note: The coordinates here are in pattern space. For a new pattern, pattern space is identical to user space, but the relationship between the spaces can be changed with CairoRadialGradient::setMatrix().

Список параметров

x0

x coordinate for the center of the start circle.

y0

y coordinate for the center of the start circle.

r0

radius of the start circle.

x1

x coordinate for the center of the end circle.

y1

y coordinate for the center of the end circle.

r1

radius of the end circle.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoRadialGradient::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getCircles purpose

  • « CairoRadialGradient::__construct
  • CairoAntialias »
  • PHP Manual
  • CairoRadialGradient
  • The getCircles purpose

CairoRadialGradient::getCircles

(PECL cairo >= 0.1.0)

CairoRadialGradient::getCircles — The getCircles purpose

Описание

public CairoRadialGradient::getCircles ( void ) : array

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoRadialGradient::getCircles() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Класс CairoAntialias

(Информация о версии неизвестна, возможно, только в Git)

Введение

Класс типа Enum, задающий тип сглаживания, который будет использоваться для рендеринга текста или поверхности.

Обзор классов

CairoAntialias {
/* Константы */
const integer MODE_DEFAULT = 0 ;
const integer MODE_NONE = 1 ;
const integer MODE_GRAY = 2 ;
const integer MODE_SUBPIXEL = 3 ;
}

Предопределенные константы

CairoAntialias::MODE_DEFAULT

Использовать сглаживание стандартное для подсистемы и целевого устройства

CairoAntialias::MODE_NONE

Использовать двухуровневую альфа-маску

CairoAntialias::MODE_GRAY

Производить одноцветное сглаживание (используя оттенки серого для черного цвета на белой подложке, например).

CairoAntialias::MODE_SUBPIXEL

Производить сглаживание, используя порядок элементов субпикселей на устройствах, таких как ЖК-панели.


Класс CairoContent

(Информация о версии неизвестна, возможно, только в Git)

Введение

Класс CairoContent используется для описания контента, который будет содержать поверхность, будь то цветовая информация, информация альфа-канала (translucence vs. opacity) либо и то и то.

Обратите внимание: большие числа были выбраны, чтобы держать значения CairoContent порознь от других значений CairoContent, чтобы легче было искать ошибки в реализации, если пользователь их перепутает.

Обзор классов

CairoContent {
/* Константы */
const integer COLOR = 4096 ;
const integer ALPHA = 8192 ;
const integer COLOR_ALPHA = 12288 ;
}

Предопределенные константы

CairoContent::COLOR

Поверхность должна содержать только контент цвета.

CairoContent::ALPHA

Поверхность должна содержать только контент альфа-канала.

CairoContent::COLOR_ALPHA

Поверхность будет содержать оба контента.


Класс CairoExtend

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

CairoExtend {
/* Константы */
const integer NONE = 0 ;
const integer REPEAT = 1 ;
const integer REFLECT = 2 ;
const integer PAD = 3 ;
}

Предопределенные константы

CairoExtend::NONE

Здесь будет описание...

CairoExtend::REPEAT

Здесь будет описание...

CairoExtend::REFLECT

Здесь будет описание...

CairoExtend::PAD

Здесь будет описание...


The CairoFormat class

(PECL cairo >= 0.1.0)

Введение

CairoFormat enums are used to identify the memory format of the image data.

Обзор классов

CairoFormat {
/* Константы */
const integer ARGB32 = 0 ;
const integer RGB24 = 1 ;
const integer A8 = 2 ;
const integer A1 = 3 ;
/* Методы */
public static strideForWidth ( int $format , int $width ) : int
}

Предопределенные константы

CairoFormat::ARGB32

Each pixel is a 32-bit quantity, with alpha in the upper 8 bits, then red, then green, then blue. The 32-bit quantities are stored native-endian. Pre-multiplied alpha is used. (That is, 50% transparent red is 0x80800000, not 0x80ff0000.)

CairoFormat::RGB24

Each pixel is a 32-bit quantity, with the upper 8 bits unused. Red, Green, and Blue are stored in the remaining 24 bits in that order.

CairoFormat::A8

Each pixel is a 8-bit quantity holding an alpha value.

CairoFormat::A1

Each pixel is a 1-bit quantity holding an alpha value. Pixels are packed together into 32-bit quantities. The ordering of the bits matches the endianness of the platform. On a big-endian machine, the first pixel is in the uppermost bit, on a little-endian machine the first pixel is in the least-significant bit.

Содержание

  • CairoFormat::strideForWidth — Расчитывает значение "stride" для заданной ширины изображения


Расчитывает значение "stride" для заданной ширины изображения

  • « CairoFormat
  • CairoFillRule »
  • PHP Manual
  • CairoFormat
  • Расчитывает значение "stride" для заданной ширины изображения

CairoFormat::strideForWidth

(PECL cairo >= 0.1.0)

CairoFormat::strideForWidth — Расчитывает значение "stride" для заданной ширины изображения

Описание

public static CairoFormat::strideForWidth ( int $format , int $width ) : int

Этот метод расчитывает значение "stride" с учетом всех требований выравнивания, заданных в коде рендеринга изображений "cairo".

Список параметров

format

Выбранный класс CairoFormat

width

Ширина изображения

Возвращаемые значения

Подходящее значение "stride" для выбранных формата и ширины, или -1, если формат некорректен или ширина изображения слишком велика.

Примеры

Пример #1 Пример использования CairoFormat::strideForWidth()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The CairoFillRule class

(Информация о версии неизвестна, возможно, только в Git)

Введение

A CairoFillRule is used to select how paths are filled. For both fill rules, whether or not a point is included in the fill is determined by taking a ray from that point to infinity and looking at intersections with the path. The ray can be in any direction, as long as it doesn't pass through the end point of a segment or have a tricky intersection such as intersecting tangent to the path. (Note that filling is not actually implemented in this way. This is just a description of the rule that is applied.)

The default fill rule is CairoFillRule::WINDING.

Обзор классов

CairoFillRule {
/* Константы */
const integer WINDING = 0 ;
const integer EVEN_ODD = 1 ;
}

Предопределенные константы

CairoFillRule::WINDING

If the path crosses the ray from left-to-right, counts +1. If the path crosses the ray from right to left, counts -1. (Left and right are determined from the perspective of looking along the ray from the starting point.) If the total count is non-zero, the point will be filled.

CairoFillRule::EVEN_ODD

Counts the total number of intersections, without regard to the orientation of the contour. If the total number of intersections is odd, the point will be filled.


The CairoFilter class

(Информация о версии неизвестна, возможно, только в Git)

Введение

A CairoFilter is used to indicate what filtering should be applied when reading pixel values from patterns. See CairoPattern::setSource() or cairo_pattern_set_source() for indicating the desired filter to be used with a particular pattern.

Обзор классов

CairoFilter {
/* Константы */
const integer FAST = 0 ;
const integer GOOD = 1 ;
const integer BEST = 2 ;
const integer NEAREST = 3 ;
const integer BILINEAR = 4 ;
const integer GAUSSIAN = 5 ;
}

Предопределенные константы

CairoFilter::FAST

A high-performance filter, with quality similar to CairoFilter::NEAREST

CairoFilter::GOOD

A reasonable-performance filter, with quality similar to CairoFilter::BILINEAR

CairoFilter::BEST

The highest-quality available, performance may not be suitable for interactive use.

CairoFilter::NEAREST

Nearest-neighbor filtering

CairoFilter::BILINEAR

Linear interpolation in two dimensions

CairoFilter::GAUSSIAN

This filter value is currently unimplemented, and should not be used in current code.


The CairoHintMetrics class

(Информация о версии неизвестна, возможно, только в Git)

Введение

Specifies whether to hint font metrics; hinting font metrics means quantizing them so that they are integer values in device space. Doing this improves the consistency of letter and line spacing, however it also means that text will be laid out differently at different zoom factors.

Обзор классов

CairoHintMetrics {
/* Константы */
const integer METRICS_DEFAULT = 0 ;
const integer METRICS_OFF = 1 ;
const integer METRICS_ON = 2 ;
}

Предопределенные константы

CairoHintMetrics::METRICS_DEFAULT

Hint metrics in the default manner for the font backend and target device

CairoHintMetrics::METRICS_OFF

Do not hint font metrics

CairoHintMetrics::METRICS_ON

Hint font metrics


The CairoHintStyle class

(Информация о версии неизвестна, возможно, только в Git)

Введение

Specifies the type of hinting to do on font outlines. Hinting is the process of fitting outlines to the pixel grid in order to improve the appearance of the result. Since hinting outlines involves distorting them, it also reduces the faithfulness to the original outline shapes. Not all of the outline hinting styles are supported by all font backends.

Обзор классов

CairoHintStyle {
/* Константы */
const integer STYLE_DEFAULT = 0 ;
const integer STYLE_NONE = 1 ;
const integer STYLE_SLIGHT = 2 ;
const integer STYLE_MEDIUM = 3 ;
const integer STYLE_FULL = 4 ;
}

Предопределенные константы

CairoHintStyle::STYLE_DEFAULT

Use the default hint style for font backend and target device

CairoHintStyle::STYLE_NONE

Do not hint outlines

CairoHintStyle::STYLE_SLIGHT

Hint outlines slightly to improve contrast while retaining good fidelity to the original shapes.

CairoHintStyle::STYLE_MEDIUM

Hint outlines with medium strength giving a compromise between fidelity to the original shapes and contrast

CairoHintStyle::STYLE_FULL

Hint outlines to maximize contrast


The CairoLineCap class

(Информация о версии неизвестна, возможно, только в Git)

Введение

Specifies how to render the endpoints of the path when stroking.

The default line cap style is CairoLineCap::BUTT.

Обзор классов

CairoLineCap {
/* Константы */
const integer BUTT = 0 ;
const integer ROUND = 1 ;
const integer SQUARE = 2 ;
}

Предопределенные константы

CairoLineCap::BUTT

Start(stop) the line exactly at the start(end) point

CairoLineCap::ROUND

Use a round ending, the center of the circle is the end point

CairoLineCap::SQUARE

Use squared ending, the center of the square is the end point


Класс CairoLineJoin

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

CairoLineJoin {
/* Константы */
const integer MITER = 0 ;
const integer ROUND = 1 ;
const integer BEVEL = 2 ;
}

Предопределенные константы

CairoLineJoin::MITER

Здесь будет описание...

CairoLineJoin::ROUND

Здесь будет описание...

CairoLineJoin::BEVEL

Здесь будет описание...


The CairoMatrix class

(PECL cairo >= 0.1.0)

Введение

Matrices are used throughout cairo to convert between different coordinate spaces.

Обзор классов

CairoMatrix {
/* Методы */
public __construct ([ float $xx = 1.0 [, float $yx = 0.0 [, float $xy = 0.0 [, float $yy = 1.0 [, float $x0 = 0.0 [, float $y0 = 0.0 ]]]]]] )
public static initIdentity ( void ) : void
public static initRotate ( float $radians ) : void
public static initScale ( float $sx , float $sy ) : void
public static initTranslate ( float $tx , float $ty ) : void
public invert ( void ) : void
public static multiply ( CairoMatrix $matrix1 , CairoMatrix $matrix2 ) : CairoMatrix
public rotate ( float $radians ) : void
public scale ( float $sx , float $sy ) : void
public transformDistance ( float $dx , float $dy ) : array
public transformPoint ( float $dx , float $dy ) : array
public translate ( float $tx , float $ty ) : void
}

Содержание

  • CairoMatrix::__construct — Creates a new CairoMatrix object
  • CairoMatrix::initIdentity — Creates a new identity matrix
  • CairoMatrix::initRotate — Creates a new rotated matrix
  • CairoMatrix::initScale — Creates a new scaling matrix
  • CairoMatrix::initTranslate — Creates a new translation matrix
  • CairoMatrix::invert — The invert purpose
  • CairoMatrix::multiply — The multiply purpose
  • CairoMatrix::rotate — The rotate purpose
  • CairoMatrix::scale — Applies scaling to a matrix
  • CairoMatrix::transformDistance — The transformDistance purpose
  • CairoMatrix::transformPoint — The transformPoint purpose
  • CairoMatrix::translate — The translate purpose


Creates a new CairoMatrix object

  • « CairoMatrix
  • CairoMatrix::initIdentity »
  • PHP Manual
  • CairoMatrix
  • Creates a new CairoMatrix object

CairoMatrix::__construct

cairo_matrix_init

(PECL cairo >= 0.1.0)

CairoMatrix::__construct -- cairo_matrix_init — Creates a new CairoMatrix object

Описание

Объектно-ориентированный стиль (method):

public CairoMatrix::__construct ([ float $xx = 1.0 [, float $yx = 0.0 [, float $xy = 0.0 [, float $yy = 1.0 [, float $x0 = 0.0 [, float $y0 = 0.0 ]]]]]] )

Процедурный стиль:

cairo_matrix_init ([ float $xx = 1.0 [, float $yx = 0.0 [, float $xy = 0.0 [, float $yy = 1.0 [, float $x0 = 0.0 [, float $y0 = 0.0 ]]]]]] ) : object

Returns new CairoMatrix object. Matrices are used throughout cairo to convert between different coordinate spaces. Sets matrix to be the affine transformation given by xx, yx, xy, yy, x0, y0. The transformation is given by: x_new = xx * x + xy * y + x0; and y_new = yx * x + yy * y + y0;

Список параметров

xx

xx component of the affine transformation

yx

yx component of the affine transformation

xy

xy component of the affine transformation

yy

yy component of the affine transformation

x0

X translation component of the affine transformation

y0

Y translation component of the affine transformation

Возвращаемые значения

Returns a new CairoMatrix object that can be used with surfaces, contexts, and patterns.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Create a new Matrix */
$matrix = new CairoMatrix(1.0, 0.5, 0.0, 1.0, 0.0, 0.0);
?>

Пример #2 Процедурный стиль

<?php
/* Create a new Matrix */
$matrix = cairo_matrix_init(1.0, 0.5, 0.0, 1.0, 0.0, 0.0);
?>

Смотрите также

  • CairoMatrix::initIdentity() - Creates a new identity matrix
  • CairoMatrix::initRotate() - Creates a new rotated matrix
  • CairoMatrix::initScale() - Creates a new scaling matrix
  • CairoMatrix::initTranslate() - Creates a new translation matrix


Creates a new identity matrix

  • « CairoMatrix::__construct
  • CairoMatrix::initRotate »
  • PHP Manual
  • CairoMatrix
  • Creates a new identity matrix

CairoMatrix::initIdentity

cairo_matrix_init_identity

(PECL cairo >= 0.1.0)

CairoMatrix::initIdentity -- cairo_matrix_init_identity — Creates a new identity matrix

Описание

Объектно-ориентированный стиль (method):

public static CairoMatrix::initIdentity ( void ) : void

Процедурный стиль:

cairo_matrix_init_identity ( void ) : object

Creates a new matrix that is an identity transformation. An identity transformation means the source data is copied into the destination data without change

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a new CairoMatrix object that can be used with surfaces, contexts, and patterns.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Create a new Matrix */
$matrix = CairoMatrix::initIdentity();
?>

Пример #2 Процедурный стиль

<?php
/* Create a new Matrix */
$matrix = cairo_matrix_init_identity();
?>

Смотрите также

  • CairoMatrix::__construct() - Creates a new CairoMatrix object
  • CairoMatrix::initRotate() - Creates a new rotated matrix
  • CairoMatrix::initScale() - Creates a new scaling matrix
  • CairoMatrix::initTranslate() - Creates a new translation matrix


Creates a new rotated matrix

  • « CairoMatrix::initIdentity
  • CairoMatrix::initScale »
  • PHP Manual
  • CairoMatrix
  • Creates a new rotated matrix

CairoMatrix::initRotate

cairo_matrix_init_rotate

(PECL cairo >= 0.1.0)

CairoMatrix::initRotate -- cairo_matrix_init_rotate — Creates a new rotated matrix

Описание

Объектно-ориентированный стиль (method):

public static CairoMatrix::initRotate ( float $radians ) : void

Процедурный стиль:

cairo_matrix_init_rotate ( float $radians ) : object

Creates a new matrix to a transformation that rotates by radians provided

Список параметров

radians

angle of rotation, in radians. The direction of rotation is defined such that positive angles rotate in the direction from the positive X axis toward the positive Y axis. With the default axis orientation of cairo, positive angles rotate in a clockwise direction.

Возвращаемые значения

Returns a new CairoMatrix object that can be used with surfaces, contexts, and patterns.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Create a new Matrix */
$matrix = CairoMatrix::initRotate(0.3);
?>

Пример #2 Процедурный стиль

<?php
/* Create a new Matrix */
$matrix = cairo_matrix_init_rotate(0.3);
?>

Смотрите также

  • CairoMatrix::__construct() - Creates a new CairoMatrix object
  • CairoMatrix::initIdentity() - Creates a new identity matrix
  • CairoMatrix::initScale() - Creates a new scaling matrix
  • CairoMatrix::initTranslate() - Creates a new translation matrix


Creates a new scaling matrix

  • « CairoMatrix::initRotate
  • CairoMatrix::initTranslate »
  • PHP Manual
  • CairoMatrix
  • Creates a new scaling matrix

CairoMatrix::initScale

cairo_matrix_init_scale

(PECL cairo >= 0.1.0)

CairoMatrix::initScale -- cairo_matrix_init_scale — Creates a new scaling matrix

Описание

Объектно-ориентированный стиль (method):

public static CairoMatrix::initScale ( float $sx , float $sy ) : void

Процедурный стиль:

cairo_matrix_init_scale ( float $sx , float $sy ) : object

Creates a new matrix to a transformation that scales by sx and sy in the X and Y dimensions, respectively.

Список параметров

sx

scale factor in the X direction

sy

scale factor in the Y direction

Возвращаемые значения

Returns a new CairoMatrix object that can be used with surfaces, contexts, and patterns.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Create a new Matrix */
$matrix = CairoMatrix::initScale(1.0, 2.0);
?>

Пример #2 Процедурный стиль

<?php
/* Create a new Matrix */
$matrix = cairo_matrix_init_scale(1.0, 2.0);
?>

Смотрите также

  • CairoMatrix::__construct() - Creates a new CairoMatrix object
  • CairoMatrix::initIdentity() - Creates a new identity matrix
  • CairoMatrix::initRotate() - Creates a new rotated matrix
  • CairoMatrix::initTranslate() - Creates a new translation matrix


Creates a new translation matrix

  • « CairoMatrix::initScale
  • CairoMatrix::invert »
  • PHP Manual
  • CairoMatrix
  • Creates a new translation matrix

CairoMatrix::initTranslate

cairo_matrix_init_translate

(PECL cairo >= 0.1.0)

CairoMatrix::initTranslate -- cairo_matrix_init_translate — Creates a new translation matrix

Описание

Объектно-ориентированный стиль (method):

public static CairoMatrix::initTranslate ( float $tx , float $ty ) : void

Процедурный стиль:

cairo_matrix_init_translate ( float $tx , float $ty ) : object

Creates a new matrix to a transformation that translates by tx and ty in the X and Y dimensions, respectively.

Список параметров

tx

amount to translate in the X direction

ty

amount to translate in the Y direction

Возвращаемые значения

Returns a new CairoMatrix object that can be used with surfaces, contexts, and patterns.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Create a new Matrix */
$matrix = CairoMatrix::initTranslate(1.0, 2.0);
?>

Пример #2 Процедурный стиль

<?php
/* Create a new Matrix */
$matrix = cairo_matrix_init_translate(1.0, 2.0);
?>

Смотрите также

  • CairoMatrix::__construct() - Creates a new CairoMatrix object
  • CairoMatrix::initIdentity() - Creates a new identity matrix
  • CairoMatrix::initRotate() - Creates a new rotated matrix
  • CairoMatrix::initScale() - Creates a new scaling matrix


The invert purpose

  • « CairoMatrix::initTranslate
  • CairoMatrix::multiply »
  • PHP Manual
  • CairoMatrix
  • The invert purpose

CairoMatrix::invert

(PECL cairo >= 0.1.0)

CairoMatrix::invert — The invert purpose

Описание

public CairoMatrix::invert ( void ) : void

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoMatrix::invert() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The multiply purpose

  • « CairoMatrix::invert
  • CairoMatrix::rotate »
  • PHP Manual
  • CairoMatrix
  • The multiply purpose

CairoMatrix::multiply

(PECL cairo >= 0.1.0)

CairoMatrix::multiply — The multiply purpose

Описание

public static CairoMatrix::multiply ( CairoMatrix $matrix1 , CairoMatrix $matrix2 ) : CairoMatrix

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

matrix1

Description...

matrix2

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoMatrix::multiply() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The rotate purpose

  • « CairoMatrix::multiply
  • CairoMatrix::scale »
  • PHP Manual
  • CairoMatrix
  • The rotate purpose

CairoMatrix::rotate

cairo_matrix_rotate

(PECL cairo >= 0.1.0)

CairoMatrix::rotate -- cairo_matrix_rotate — The rotate purpose

Описание

Объектно-ориентированный стиль (method):

public CairoMatrix::rotate ( float $radians ) : void

Процедурный стиль:

cairo_matrix_rotate ( CairoContext $context , string $radians ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

radians

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Applies scaling to a matrix

  • « CairoMatrix::rotate
  • CairoMatrix::transformDistance »
  • PHP Manual
  • CairoMatrix
  • Applies scaling to a matrix

CairoMatrix::scale

cairo_matrix_scale

(PECL cairo >= 0.1.0)

CairoMatrix::scale -- cairo_matrix_scale — Applies scaling to a matrix

Описание

Объектно-ориентированный стиль (method):

public CairoMatrix::scale ( float $sx , float $sy ) : void

Процедурный стиль:

cairo_matrix_scale ( CairoContext $context , float $sx , float $sy ) : void

Applies scaling by sx, sy to the transformation in the matrix. The effect of the new transformation is to first scale the coordinates by sx and sy, then apply the original transformation to the coordinates.

Список параметров

matrix

Procedural only - CairoMatrix instance

sx

scale factor in the X direction

sy

scale factor in the Y direction

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Apply scaling to a matrix */
$matrix = new CairoMatrix(1.0, 0.5, 0.0, 1.0, 0.0, 0.0);
$matrix->scale(0.2, 2.0);
?>

Пример #2 Процедурный стиль

<?php
/* Apply scaling to a matrix */
$matrix = cairo_matrix_init(1.0, 0.5, 0.0, 1.0, 0.0, 0.0);
cairo_matrix_scale($matrix, 0.2, 2.0);
?>

Смотрите также

  • CairoMatrix::initScale() - Creates a new scaling matrix


The transformDistance purpose

  • « CairoMatrix::scale
  • CairoMatrix::transformPoint »
  • PHP Manual
  • CairoMatrix
  • The transformDistance purpose

CairoMatrix::transformDistance

(PECL cairo >= 0.1.0)

CairoMatrix::transformDistance — The transformDistance purpose

Описание

public CairoMatrix::transformDistance ( float $dx , float $dy ) : array

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

dx

Description...

dy

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoMatrix::transformDistance() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The transformPoint purpose

  • « CairoMatrix::transformDistance
  • CairoMatrix::translate »
  • PHP Manual
  • CairoMatrix
  • The transformPoint purpose

CairoMatrix::transformPoint

(PECL cairo >= 0.1.0)

CairoMatrix::transformPoint — The transformPoint purpose

Описание

public CairoMatrix::transformPoint ( float $dx , float $dy ) : array

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

dx

Description...

dy

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoMatrix::transformPoint() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The translate purpose

  • « CairoMatrix::transformPoint
  • CairoOperator »
  • PHP Manual
  • CairoMatrix
  • The translate purpose

CairoMatrix::translate

cairo_translate

(PECL cairo >= 0.1.0)

CairoMatrix::translate -- cairo_translate — The translate purpose

Описание

Объектно-ориентированный стиль (method):

public CairoMatrix::translate ( float $tx , float $ty ) : void

Процедурный стиль:

cairo_translate ( CairoContext $context , float $x , float $y ) : void

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

tx

Description...

ty

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The CairoOperator class

(Информация о версии неизвестна, возможно, только в Git)

Введение

This is used to set the compositing operator for all cairo drawing operations.

The default operator is CairoOperator::OVER

The operators marked as unbounded modify their destination even outside of the mask layer (that is, their effect is not bound by the mask layer). However, their effect can still be limited by way of clipping.

To keep things simple, the operator descriptions here document the behavior for when both source and destination are either fully transparent or fully opaque. The actual implementation works for translucent layers too. For a more detailed explanation of the effects of each operator, including the mathematical definitions, see http://cairographics.org/operators/.

Обзор классов

CairoOperator {
/* Константы */
const integer CLEAR = 0 ;
const integer SOURCE = 1 ;
const integer OVER = 2 ;
const integer IN = 3 ;
const integer OUT = 4 ;
const integer ATOP = 5 ;
const integer DEST = 6 ;
const integer DEST_OVER = 7 ;
const integer DEST_IN = 8 ;
const integer DEST_OUT = 9 ;
const integer DEST_ATOP = 10 ;
const integer XOR = 11 ;
const integer ADD = 12 ;
const integer SATURATE = 13 ;
}

Предопределенные константы

CairoOperator::CLEAR

Clear destination layer (bounded)

CairoOperator::SOURCE

Replace destination layer (bounded)

CairoOperator::OVER

Draw source layer on top of destination layer (bounded)

CairoOperator::IN

Draw source where there was destination content (unbounded)

CairoOperator::OUT

Draw source where there was no destination content (unbounded)

CairoOperator::ATOP

Draw source on top of destination content and only there

CairoOperator::DEST

Ignore the source

CairoOperator::DEST_OVER

Draw destination on top of source

CairoOperator::DEST_IN

Leave destination only where there was source content (unbounded)

CairoOperator::DEST_OUT

Leave destination only where there was no source content

CairoOperator::DEST_ATOP

Leave destination on top of source content and only there (unbounded)

CairoOperator::XOR

Source and destination are shown where there is only one of them

CairoOperator::ADD

Source and destination layers are accumulated

CairoOperator::SATURATE

Like CairoOperator::OVER, but assuming source and dest are disjoint geometries


The CairoPath class

(Информация о версии неизвестна, возможно, только в Git)

Введение

Note: CairoPath class cannot be instantiated directly, doing so will result in Fatal Error if used or passed

Обзор классов

CairoPath {
}


Класс CairoPsLevel

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

CairoPsLevel {
/* Константы */
const integer LEVEL_2 = 0 ;
const integer LEVEL_3 = 1 ;
}

Предопределенные константы

CairoPsLevel::LEVEL_2

Здесь будет описание...

CairoPsLevel::LEVEL_3

Здесь будет описание...


Класс CairoSubpixelOrder

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

CairoSubpixelOrder {
/* Константы */
const integer ORDER_DEFAULT = 0 ;
const integer ORDER_RGB = 1 ;
const integer ORDER_BGR = 2 ;
const integer ORDER_VRGB = 3 ;
const integer ORDER_VBGR = 4 ;
}

Предопределенные константы

CairoSubpixelOrder::ORDER_DEFAULT

Здесь будет описание...

CairoSubpixelOrder::ORDER_RGB

Здесь будет описание...

CairoSubpixelOrder::ORDER_BGR

Здесь будет описание...

CairoSubpixelOrder::ORDER_VRGB

Здесь будет описание...

CairoSubpixelOrder::ORDER_VBGR

Здесь будет описание...


Класс CairoSvgVersion

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

CairoSvgVersion {
/* Константы */
const integer VERSION_1_1 = 0 ;
const integer VERSION_1_2 = 1 ;
}

Предопределенные константы

CairoSvgVersion::VERSION_1_1

Здесь будет описание...

CairoSvgVersion::VERSION_1_2

Здесь будет описание...


Изменяемая информация об изображении

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Exif Функции
    • exif_imagetype — Определение типа изображения
    • exif_read_data — Читает заголовки EXIF из файлов изображений
    • exif_tagname — Получение имени заголовка по его индексу
    • exif_thumbnail — Получает встроенное превью изображения
    • read_exif_data — Псевдоним exif_read_data


Введение

С помощью расширения EXIF вы можете работать с мета-данными изображений. Например, вы можете использовать EXIF функции для чтения метаданных из фотографий снятых на цифровые камеры. Эти функции работают с информацией, хранящейся в заголовках. Обычно их можно найти в изображениях JPEG и TIFF.


Требования

Ваш PHP должен быть скомпилирован с опцией --enable-exif. Для включения поддержки многобайтовых кодировок в тегах EXIF необходимо включить расширение mbstring. Включить его можно скомпилировав PHP с опцией --enable-mbstring.

Только для Windows: расширение mbstring всегда должно быть включено. Обратите внимание, что расширение mbstring должно загружаться раньше чем EXIF (очередность в php.ini).


Установка

Чтобы включить поддержку exif, сконфигурируйте PHP с опцией --enable-exif

Пользователи Windows должны включить DLL-файлы php_mbstring.dll и php_exif.dll в php.ini. DLL php_mbstring.dll должна быть загружена до DLL php_exif.dll, так что настройте ваш php.ini соответствующим образом.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Exif поддерживает автоматическое преобразование кодировок символов Unicode и JIS пользовательских комментариев, когда модуль mbstring доступен. При этом комментарий сначала декодируется с использованием указанного набора символов. Затем результат кодируется в другом наборе символов, который должен совпадать с вашим HTTP-выводом.

Опции конфигурации Exif
Имя | По умолчанию | Место изменения | Список изменений
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL |
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL |
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL |
exif.encode_jis | "" | PHP_INI_ALL |
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL |
exif.decode_jis_intel | "JIS" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

exif.encode_unicode string

exif.encode_unicode определяет набор символов UNICODE при обработке пользовательских комментариев. По умолчанию это ISO-8859-15, который должен работать для большинства не азиатских стран. Эта установка может быть пустой или обязана быть кодировкой, поддерживаемой mbstring. Если она пустая, используется текущая внутренняя кодировка mbstring.

exif.decode_unicode_motorola string

exif.decode_unicode_motorola определяет внутреннюю кодировку символов изображения для Unicode-кодированных пользовательских комментариев, если изображение имеет байтовый порядок motorola (big-endian). Эта установка не может быть пустой, но вы можете указать список кодировок, поддерживаемых mbstring. По умолчанию UCS-2BE.

exif.decode_unicode_intel string

exif.decode_unicode_intel определяет внутреннюю кодировку символов изображения для Unicode-кодированных пользовательских комментариев, если изображение имеет байтовый порядок intel (little-endian). Эта установка не может быть пустой, но вы можете указать список кодировок, поддерживаемых mbstring. По умолчанию UCS-2LE.

exif.encode_jis string

exif.encode_jis определяет набор символов JIS для обработки пользовательских комментариев. По умолчанию - пустое значение, которое заставляет функции использовать текущую внутреннюю кодировку mbstring.

exif.decode_jis_motorola string

exif.decode_jis_motorola определяет внутреннюю кодировку символов изображения для JIS-кодированных пользовательских комментариев, если изображение имеет байтовый порядок motorola (big-endian). Эта установка не может быть пустой, но вы можете указать список кодировок, поддерживаемых mbstring. По умолчанию JIS.

exif.decode_jis_intel string

exif.decode_jis_intel определяет внутреннюю кодировку символов изображения для JIS-кодированных пользовательских комментариев, если изображение имеет байтовый порядок intel (little-endian). Эта установка не может быть пустой, но вы можете указать список кодировок, поддерживаемых mbstring. По умолчанию JIS.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

EXIF_USE_MBSTRING (integer)
Эта константа равна 1 если разрешено mbstring, или 0, если нет.

Функция exif_imagetype() отображает связанные встроенные константы.


Exif Функции

Содержание

  • exif_imagetype — Определение типа изображения
  • exif_read_data — Читает заголовки EXIF из файлов изображений
  • exif_tagname — Получение имени заголовка по его индексу
  • exif_thumbnail — Получает встроенное превью изображения
  • read_exif_data — Псевдоним exif_read_data


Определение типа изображения

  • « Exif Функции
  • exif_read_data »
  • PHP Manual
  • Exif Функции
  • Определение типа изображения

exif_imagetype

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

exif_imagetype — Определение типа изображения

Описание

exif_imagetype ( string $filename ) : int

exif_imagetype() считывает начальные байты изображения и проверяет их сигнатуру.

exif_imagetype() может использоваться, чтобы избежать вызовов других exif-функций с неподдерживаемыми аргументами. Также при взаимодействии с $_SERVER['HTTP_ACCEPT'] можно проверять, будет ли изображение отображаться в браузере.

Список параметров

filename
Изображение, тип которого требуется определить.

Возвращаемые значения

Если корректная сигнатура обнаружена, функция вернет соответствующую типу изображения константу. В противном случае функция вернет FALSE. Возвращаемое значение то же, что и во втором аргументе при возврате из функции getimagesize(), однако exif_imagetype() значительно быстрее.

Замечание:

В случаях, когда невозможно считать количество байтов из файла достаточное для определения типа изображения, функция exif_imagetype() вызовет предупреждение уровня E_NOTICE и вернет FALSE.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка WebP.
5.3.0 | Добавлена поддержка иконок.

Предопределенные константы

Следующие определенные константы представляют возможные возвращаемые значения функции exif_imagetype():

Imagetype константы
Значение | Константа
1 | IMAGETYPE_GIF
2 | IMAGETYPE_JPEG
3 | IMAGETYPE_PNG
4 | IMAGETYPE_SWF
5 | IMAGETYPE_PSD
6 | IMAGETYPE_BMP
7 | IMAGETYPE_TIFF_II (порядок байт intel)
8 | IMAGETYPE_TIFF_MM (порядок байт motorola)
9 | IMAGETYPE_JPC
10 | IMAGETYPE_JP2
11 | IMAGETYPE_JPX
12 | IMAGETYPE_JB2
13 | IMAGETYPE_SWC
14 | IMAGETYPE_IFF
15 | IMAGETYPE_WBMP
16 | IMAGETYPE_XBM
17 | IMAGETYPE_ICO
18 | IMAGETYPE_WEBP

Примеры

Пример #1 Пример использования exif_imagetype()

<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
    echo 'Картинка не gif';
}
?>

Смотрите также

  • image_type_to_mime_type() - Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
  • getimagesize() - Получение размера изображения


Читает заголовки EXIF из файлов изображений

  • « exif_imagetype
  • exif_tagname »
  • PHP Manual
  • Exif Функции
  • Читает заголовки EXIF из файлов изображений

exif_read_data

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

exif_read_data — Читает заголовки EXIF из файлов изображений

Описание

exif_read_data ( mixed $stream [, string $sections = NULL [, bool $arrays = FALSE [, bool $thumbnail = FALSE ]]] ) : array

exif_read_data() читает заголовки EXIF из файлов изображений. Таким образом можно читать метаданные, генерируемые цифровыми фотоаппаратами.

По идее, EXIF-заголовки должны идти первыми в JPEG/TIFF файлах, генерируемых фотоаппаратами. Но, к сожалению, каждый производитель имеет свое представление того, каким образом компоновать метаданные изображения. Поэтому будьте готовы к ситуации, когда перед Exif-заголовком есть еще что-то.

Height и Width вычисляются аналогично вычислениям getimagesize(), так что эти параметры не обязаны присутствовать в заголовке. html - текстовая строка, задающая высоту/ширину, которую можно использовать в обычном HTML.

Если Exif-заголовок содержит сообщение об авторских правах (Copyright), само сообщение может содержать 2 значения. Эта ситуация не описана в стандарте Exif 2.10, поэтому раздел COMPUTED будет содержать оба этих значения в полях Copyright.Photographer и Copyright.Editor. В то же время разделы IFD0 будут содержать массив байт с NULL-символом в качестве разделителя этих двух значений либо только первое значение, если тип файла определен неверно (нормальная ситуация для Exif). Раздел COMPUTED будет также содержать Copyright, это может быть либо исходная строка, либо список из владельца фотографии и редактора через запятую.

Тег UserComment имеет те же проблемы, что и Copyright. Он может хранить 2 значения. Первое - использованную кодировку, второе - само значение. В этом случае раздел IFD содержит либо кодировку, либо массив байт. Раздел COMPUTED будет хранить оба этих значения в полях UserCommentEncoding и UserComment. Содержимое UserComment будет доступно в любом случае, поэтому предпочтительней использовать его вместо раздела IFD0.

Также exif_read_data() проверяет EXIF теги на соответствие спецификации EXIF (» http://exif.org/Exif2-2.PDF, стр. 20).

Замечание:

Windows Me/XP могут затирать Exif-заголовки при подключении фотоаппарата.

Список параметров

stream

Местоположение файла с изображением. Может быть как путем к файлу, так и потоковым ресурсом (можно использовать обертки).

sections

Список разделенных запятой разделов, которые должны быть представлены в результирующем массиве (array). Если ни один из разделов найти не удастся, функция вернет FALSE.

FILE | FileName, FileSize, FileDateTime, SectionsFound
COMPUTED | html, Width, Height, IsColor, и другие. Height и Width вычисляются аналогично getimagesize(), поэтому их не обязательно включать в заголовок. html - текстовая строка, задающая высоту/ширину, которую можно использовать в обычном HTML.
ANY_TAG | Любая информация заключенная в тег, например, IFD0, EXIF, ...
IFD0 | Все данные тега IFD0. В обычных изображениях в нем хранится размер изображения.
THUMBNAIL | Если файл содержит второй раздел IFD, то считается, что у изображения есть эскиз. Вся информация об эскизе хранится в этом разделе.
COMMENT | Заголовки комментариев JPEG изображений.
EXIF | Раздел EXIF является подразделом IFD0. Он содержит более детальную информацию об изображении. Большинство его записей зависят от фотоаппарата.

arrays

Определяет, формировать ли разделы в виде массивов. Разделы sections, COMPUTED, THUMBNAIL и COMMENT всегда делаются массивами, так как они могут содержать значения, имена которых будут конфликтовать с именами в других разделах.

thumbnail

Если TRUE, будет прочитан сам эскиз. В противном случае будет прочитана только информация в тегах.

Возвращаемые значения

Возвращает ассоциативный массив (array), в котором ключами будут имена заголовков, а значениями - значения соответствующие этим заголовкам. Если никаких данных вернуть нельзя, exif_read_data() вернет FALSE.

Список изменений

Версия | Описание
7.2.0 | Параметр filename переименован в stream и может принимать как локальный путь к файлу, так и потоковый ресурс.
7.2.0 Добавлена поддержка следующих форматов EXIF:
  • Samsung
  • DJI
  • Panasonic
  • Sony
  • Pentax
  • Minolta
  • Sigma/Foveon
  • AGFA
  • Kyocera
  • Ricoh
  • Epson

Примеры

Пример #1 Пример использования exif_read_data()

<?php
echo "test1.jpg:<br />\n";
$exif = exif_read_data('tests/test1.jpg', 'IFD0');
echo $exif===false ? "Не найдено данных заголовка.<br />\n" : "Изображение содержит заголовки<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";
    }
}
?>

Первый вызов завершается неудачей, так как в заголовках изображения нет информации.

Результатом выполнения данного примера будет что-то подобное:

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

Пример #2 Использование exif_read_data() с потоковым ресурсом (доступно с PHP 7.2.0)

<?php
// Открываем файл в бинарном режиме
$fp = fopen('/path/to/image.jpg', 'rb');

if (!$fp) {
    echo 'Ошибка: Невозможно открыть файл для чтения';
    exit;
}

// Попытка прочитать заголовки exif
$headers = exif_read_data($fp);

if (!$headers) {
    echo 'Ошибка: невозможно прочитать заголовки exif';
    exit;
}

// Напечатать заголовки 'COMPUTED'
echo 'Заголовки EXIF:' . PHP_EOL;

foreach ($headers['COMPUTED'] as $header => $value) {
    printf(' %s => %s%s', $header, $value, PHP_EOL);
}
?>

Результатом выполнения данного примера будет что-то подобное:

EXIF Headers:
 Height => 576
 Width => 1024
 IsColor => 1
 ByteOrderMotorola => 0
 ApertureFNumber => f/5.6
 UserComment =>
 UserCommentEncoding => UNDEFINED
 Copyright => Denis
 Thumbnail.FileType => 2
 Thumbnail.MimeType => image/jpeg

Примечания

Замечание:

Если разрешен mbstring, то exif будет пытаться обрабатывать юникод и брать кодировку как указано в exif.decode_unicode_motorola и exif.decode_unicode_intel. Модуль exif не будет пытаться самостоятельно определить кодировку и указание правильной кодировки остается на совести пользователя путем установки одной из двух INI-директив перед вызовом exif_read_data().

Замечание:

Если параметр stream использован для передачи в функцию потока, то этот поток должен быть перематываемым. Обратите внимание, что файловый позиционный указатель не будет изменен после завершения работы этой функции.

Смотрите также

  • exif_thumbnail() - Получает встроенное превью изображения
  • getimagesize() - Получение размера изображения
  • Поддерживаемые протоколы и обертки


Получение имени заголовка по его индексу

  • « exif_read_data
  • exif_thumbnail »
  • PHP Manual
  • Exif Функции
  • Получение имени заголовка по его индексу

exif_tagname

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

exif_tagname — Получение имени заголовка по его индексу

Описание

exif_tagname ( int $index ) : string

Список параметров

index

ID тега, имя которого требуется получить.

Возвращаемые значения

Возвращает имя заголовка или FALSE, если index не является ранее определенным идентификатором EXIF тега.

Примеры

Пример #1 Пример использования exif_tagname()

<?php
echo "256: ".exif_tagname(256).PHP_EOL;
echo "257: ".exif_tagname(257).PHP_EOL;
?>

Результат выполнения данного примера:

256: ImageWidth
257: ImageLength

Смотрите также

  • exif_imagetype() - Определение типа изображения
  • » EXIF спецификация
  • » EXIF теги


Получает встроенное превью изображения

  • « exif_tagname
  • read_exif_data »
  • PHP Manual
  • Exif Функции
  • Получает встроенное превью изображения

exif_thumbnail

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

exif_thumbnail — Получает встроенное превью изображения

Описание

exif_thumbnail ( mixed $stream [, int &$width [, int &$height [, int &$imagetype ]]] ) : string

exif_thumbnail() считывает встроенное превью изображения.

Если вы хотите получить эскиз посредством этой функции, вам необходимо отправить mimetype-информацию, использовав header() функцию.

Иногда exif_thumbnail() не может создать изображение, но может определить его размер. В таких случаях она возвращает FALSE, но задает аргументам width и height правильные значения.

Список параметров

stream

Местоположение файла с изображением. Может быть как путем к файлу, так и потоковым ресурсом.

width

Возвращаемая ширина эскиза.

height

Возвращаемая высота эскиза.

imagetype

Возвращаемый тип эскиза. Это либо TIFF, либо JPEG.

Возвращаемые значения

Возвращает встроенный эскиз или FALSE, если изображение не содержит эскиза.

Примеры

Пример #1 Пример использования exif_thumbnail()

<?php
$image = exif_thumbnail('/path/to/image.jpg', $width, $height, $type);

if ($image!==false) {
    header('Content-type: ' .image_type_to_mime_type($type));
    echo $image;
    exit;
} else {
    // нет доступного превью, здесь можно обработать ошибку
    echo 'Нет доступного эскиза';
}
?>

Список изменений

Версия | Описание
7.2.0 | Параметр filename переименован в stream и может принимать как локальный путь к файлу, так и потоковый ресурс.

Примечания

Замечание:

Если параметр stream использован для передачи потока в функцию, то этот поток должен быть перематываемым. Обратите внимание, что файловый позиционный указатель не будет изменен после завершения работы этой функции.

Смотрите также

  • exif_read_data() - Читает заголовки EXIF из файлов изображений
  • image_type_to_mime_type() - Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype


Псевдоним exif_read_data

  • « exif_thumbnail
  • GD »
  • PHP Manual
  • Exif Функции
  • Псевдоним exif_read_data

read_exif_data

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

read_exif_data — Псевдоним exif_read_data()

Описание

Эта функция является псевдонимом: exif_read_data().

Список изменений

Версия | Описание
7.2.0 | Этот псевдоним был объявлен устаревшим.


Обработка изображений и GD

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Создание PNG средствами PHP
    • Добавление водяных знаков на изображения с помощью альфа-каналов
    • Использование imagecopymerge создать полупрозрачный водяной знак
  • Функции GD и функции для работы с изображениями
    • gd_info — Вывод информации о текущей установленной GD библиотеке
    • getimagesize — Получение размера изображения
    • getimagesizefromstring — Получение размера изображения из строки данных
    • image_type_to_extension — Получение расширения файла для типа изображения
    • image_type_to_mime_type — Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
    • image2wbmp — Выводит изображение в браузер или пишет в файл
    • imageaffine — Вернуть изображение, содержащее аффинно-преобразованное изображение src, используя дополнительную область ограничения
    • imageaffinematrixconcat — Конкатенирует две аффинные матрицы преобразования
    • imageaffinematrixget — Get an affine transformation matrix
    • imagealphablending — Задание режима сопряжения цветов для изображения
    • imageantialias — Требуется ли применять функции сглаживания или нет
    • imagearc — Рисование дуги
    • imagebmp — Вывести BMP-изображение в браузер или файл
    • imagechar — Рисование символа по горизонтали
    • imagecharup — Рисование символа вертикально
    • imagecolorallocate — Создание цвета для изображения
    • imagecolorallocatealpha — Создание цвета для изображения
    • imagecolorat — Получение индекса цвета пиксела
    • imagecolorclosest — Получение индекса цвета ближайшего к заданному
    • imagecolorclosestalpha — Получение индекса цвета ближайшего к заданному с учетом прозрачности
    • imagecolorclosesthwb — Получение индекса цвета, имеющего заданный тон, белизну и затемнение
    • imagecolordeallocate — Разрыв ассоциации переменной с цветом для заданного изображения
    • imagecolorexact — Получение индекса заданного цвета
    • imagecolorexactalpha — Получение индекса заданного цвета и альфа компонента
    • imagecolormatch — Делает цвета палитровой версии изображения более соответствующими truecolor версии
    • imagecolorresolve — Получает идентификатор конкретного цвета или его ближайший аналог
    • imagecolorresolvealpha — Получает идентификатор конкретного цвета и альфа компонента или его ближайший аналог
    • imagecolorset — Установка набора цветов для заданного индекса палитры
    • imagecolorsforindex — Получение цветов, соответствующих индексу
    • imagecolorstotal — Определение количества цветов в палитре изображения
    • imagecolortransparent — Определяет цвет как прозрачный
    • imageconvolution — Наложение искривляющей матрицы 3х3, используя коэффициент и смещение
    • imagecopy — Копирование части изображения
    • imagecopymerge — Копирует часть изображения с наложением
    • imagecopymergegray — Копирует часть изображения с наложением в градациях серого
    • imagecopyresampled — Копирование и изменение размера изображения с ресемплированием
    • imagecopyresized — Копирование и изменение размера части изображения
    • imagecreate — Создание нового палитрового изображения
    • imagecreatefrombmp — Создает новое изображение из файла или URL
    • imagecreatefromgd2 — Создание нового изображения на основе GD2 или URL
    • imagecreatefromgd2part — Создание нового изображения на основе части GD2 файла или URL
    • imagecreatefromgd — Создание нового изображения на основе GD файла или URL
    • imagecreatefromgif — Создает новое изображение из файла или URL
    • imagecreatefromjpeg — Создает новое изображение из файла или URL
    • imagecreatefrompng — Создает новое изображение из файла или URL
    • imagecreatefromstring — Создание нового изображения из потока представленного строкой
    • imagecreatefromwbmp — Создает новое изображение из файла или URL
    • imagecreatefromwebp — Создает новое изображение из файла или URL
    • imagecreatefromxbm — Создает новое изображение из файла или URL
    • imagecreatefromxpm — Создает новое изображение из файла или URL
    • imagecreatetruecolor — Создание нового полноцветного изображения
    • imagecrop — Обрезать изображение до заданного прямоугольника
    • imagecropauto — Crop an image automatically using one of the available modes
    • imagedashedline — Рисование пунктирной линии
    • imagedestroy — Уничтожение изображения
    • imageellipse — Рисование эллипса
    • imagefill — Заливка
    • imagefilledarc — Рисование и заливка дуги
    • imagefilledellipse — Рисование закрашенного эллипса
    • imagefilledpolygon — Рисование закрашенного многоугольника
    • imagefilledrectangle — Рисование закрашенного прямоугольника
    • imagefilltoborder — Заливка цветом
    • imagefilter — Применяет фильтр к изображению
    • imageflip — Flips an image using a given mode
    • imagefontheight — Получение высоты шрифта
    • imagefontwidth — Получение ширины шрифта
    • imageftbbox — Определение границ текста выводимого шрифтом freetype2
    • imagefttext — Нанесение текста на изображение, используя шрифты FreeType 2
    • imagegammacorrect — Применение гамма коррекции к GD изображению
    • imagegd2 — Вывод GD2 изображения в браузер или файл
    • imagegd — Вывод GD-изображения в браузер или в файл
    • imagegetclip — Получить отсекающий прямоугольник
    • imagegif — Выводит изображение в браузер или пишет в файл
    • imagegrabscreen — Захватывает изображение с экрана
    • imagegrabwindow — Захватывает изображение окна
    • imageinterlace — Включение или выключение интерлейсинга
    • imageistruecolor — Определяет, является ли изображение полноцветным
    • imagejpeg — Выводит изображение в браузер или пишет в файл
    • imagelayereffect — Установка флага альфа сопряжения для использования эффектов наложения изображений
    • imageline — Рисование линии
    • imageloadfont — Загрузка шрифта
    • imageopenpolygon — Рисует открытый полигон
    • imagepalettecopy — Копирование палитры из одного изображения в другое
    • imagepalettetotruecolor — Преобразует изображение на основе палитры в настоящий цвет
    • imagepng — Вывод PNG изображения в браузер или файл
    • imagepolygon — Рисование многоугольника
    • imagepsbbox — Выдает параметры рамки, обрамляющей текст написанный шрифтом PostScript Type1
    • imagepsencodefont — Изменение вектора кодировки шрифта
    • imagepsextendfont — Растягивание или сжатие шрифта
    • imagepsfreefont — Освобождение памяти, занятой шрифтом PostScript Type
    • imagepsloadfont — Загрузка шрифта PostScript Type 1 из файла
    • imagepsslantfont — Наклон шрифта
    • imagepstext — Рисование текста поверх изображения, используя шрифты PostScript Type1
    • imagerectangle — Рисование прямоугольника
    • imageresolution — Get or set the resolution of the image
    • imagerotate — Поворот изображения с заданным углом
    • imagesavealpha — Сохранять ли полную информацию альфа-канала при сохранении изображений PNG
    • imagescale — Масштабировать изображение по заданной ширине и высоте
    • imagesetbrush — Установка изображения (кисти), посредством которого будут рисоваться линии
    • imagesetclip — Установите прямоугольник ограничения
    • imagesetinterpolation — Set the interpolation method
    • imagesetpixel — Рисование точки
    • imagesetstyle — Установка стиля рисования линий
    • imagesetthickness — Установка толщины линий
    • imagesettile — Установка изображения, которое будет использовано в качестве элемента мозаичной заливки
    • imagestring — Рисование строки текста горизонтально
    • imagestringup — Рисование строки текста вертикально
    • imagesx — Получение ширины изображения
    • imagesy — Получение высоты изображения
    • imagetruecolortopalette — Преобразование полноцветного изображения в палитровое
    • imagettfbbox — Получение параметров рамки обрамляющей текст написанный TrueType шрифтом
    • imagettftext — Рисование текста на изображении шрифтом TrueType
    • imagetypes — Возвращает список типов изображений, поддерживаемых PHP сборкой
    • imagewbmp — Выводит изображение в браузер или пишет в файл
    • imagewebp — Вывод изображения WebP в браузер или файл
    • imagexbm — Вывод XBM изображения в браузер или файл
    • iptcembed — Встраивание двоичных IPTC данных в JPEG изображение
    • iptcparse — Разбор двоичных IPTC данных на отдельные теги
    • jpeg2wbmp — Конвертирует изображение из формата JPEG в WBMP
    • png2wbmp — Преобразование PNG файла в WBMP


Введение

PHP не ограничен созданием только HTML страничек. Он так же позволяет создавать и работать с файлами изображений в различных форматах включая GIF, PNG, JPEG, WBMP, и XPM. Что более удобно, PHP позволяет выводить изображение в потоке непосредственно в браузер. Для этого необходимо скомпилировать PHP с графической библиотекой GD, содержащей функции для работы с изображениями. Для работы с GD могут потребоваться другие библиотеки (в зависимости от формата изображений, с которыми возникла необходимость работать).

Существует стандартная функция PHP для получения размера изображения следующих форматов изображений: JPEG, GIF, PNG, SWF, TIFF и JPEG2000.

С модулем EXIF доступна работа с информацией, хранящейся в заголовках JPEG и TIFF изображений. Таким образом можно читать мета-данные, сгенерированные цифровыми фотоаппаратами. Модуль EXIF не требуется библиотеке GD.

Замечание: Прочитайте раздел требований, чтобы узнать, как расширить возможности чтения, записи и модификации изображений. Чтобы иметь возможность читать мета-данные изображений, взятых с цифровых фотоаппаратов нужно, уже упомянутый модуль EXIF.

Замечание: Функция getimagesize() не требует наличия библиотеки GD.

Предостережение

Тогда как поставляемая с PHP библиотека GD использует менеджер памяти Zend, то системная нет. Соответственно ограничение memory_limit не работает.

GD поддерживает ряд форматов. Ниже приведен список этих форматов и пометки о доступности, включая поддержку чтения и записи.

Форматы, поддерживаемые GD
Формат | Поддержка чтения | Поддержка записи | Примечания
JPEG | TRUE | TRUE |
PNG | TRUE | TRUE |
GIF | TRUE | TRUE | Доступно начиная с GD 2.0.28 и PHP 5.0.1
XBM | TRUE | TRUE |
XPM | TRUE | FALSE | Поддержка чтения доступна на Windows начиная с PHP 5.3.19
WBMP | TRUE | TRUE |
WebP | TRUE | TRUE | PHP 5.4+
BMP | TRUE | TRUE | Доступно с GD 2.1.0 и PHP 7.2.0

Несмотря на то, что большинство форматов в приведенной таблице доступны для чтения и записи, это не значит, что PHP был собран с их поддержкой. Чтобы узнать какие форматы были включены для GD при сборке, используйте функцию gd_info(). Для дополнительной информации смотрите раздел об установке.


Требования

При наличии GD-библиотеки (доступна по адресу » http://www.libgd.org/), вы можете создавать и изменять изображения.

Форматы изображений, с которыми можно работать, зависят от версии установленной GD, а так же от наличия других библиотек, к которым GD может обращаться для получения доступа к тем или иным форматам. Поддержка GIF включена в версии gd-2.0.28.

Замечание: Требуется libgd-2.0.4 или выше. С версии PHP 5.5 требуется libgd-2.1.0 или выше. Либо же используйте библиотеку GD, входящую в дистрибутив PHP.

Возможно, вы пожелаете расширить GD, чтобы обрабатывать больше форматов изображений.

Поддерживаемые форматы изображений
Формат изображения | Необходимая библиотека | Замечания
gif |  | Поддерживается только в версиях GD старше gd-2.0.28. Поддержка Write доступна с PHP 5.0.1.
jpeg | » http://www.ijg.org/ | При сборке библиотеки jpeg (перед сборкой PHP) необходимо включить настройку --enable-shared на этапе конфигурирования. Если этого не сделать, на этапе конфигурирования сборки PHP будет выдана ошибка libjpeg.(a|so) not found.
png | » http://www.libpng.org/pub/png/libpng.html |
xpm | » ftp://metalab.unc.edu/pub/Linux/libs/X/!INDEX.html | Если в системе установлено окружение X-Environment, то бибилиотека уже доступна.

Можно расширить функционал GD для работы с различными шрифтами. Доступные библиотеки шрифтов:

Доступные библиотеки шрифтов
Библиотека шрифтов | Загрузка | Замечания
FreeType 1.x | » http://www.freetype.org/ | Поддержка FreeType 1.x удалена в PHP 5.3.0.
FreeType 2 | » http://www.freetype.org/ |
T1lib | » ftp://sunsite.unc.edu/pub/Linux/libs/graphics/) | Поддержка шрифтов Postscript Type 1. Удалена в PHP 7.0.0.


Установка

Чтобы включить поддержку GD сконфигурируйте PHP с опцией --with-gd[=DIR] , где DIR — это директория установки GD. Чтобы использовать рекомендованную разработчиками встроенную версию библиотеки GD, используйте опцию конфигурации --with-gd . Библиотека GD требует наличие библиотек libpng и libjpeg для компиляции.

В Windows-системах, вы должны включить модуль GD2 DLL php_gd2.dll в php.ini.

Повысить возможности библиотеки GD для работы с большим количеством форматов изображений можно, используя опцию --with-XXXX во время конфигурации PHP.

Поддерживаемые форматы изображений
Формат изображения | Опция при конфигурировании
jpeg | Чтобы включить поддержку jpeg добавьте --with-jpeg-dir=DIR . Jpeg 6b, 7 или 8 поддерживаются.
png | Чтобы включить поддержку png добавьте --with-png-dir=DIR . Внимание, libpng требует наличие библиотеки zlib, поэтому добавьте --with-zlib-dir[=DIR] при конфигурации.
xpm | Чтобы включить поддержку xpm добавьте --with-xpm-dir=DIR . Если во время конфигурации не удается найти необходимую библиотеку, можно указать путь к библиотеке X11.
webp | Для включения поддержки webp, добавьте --with-vpx-dir=DIR . Доступно с PHP 5.4.0. Начиная с PHP 7.0.0, была добавлена --with-webp-dir=DIR , т.е. поддержка libvpx была удалена в пользу libwebp.

Замечание: При компиляции PHP с libpng, вы должны использовать ту же версию libpng, с которой была собрана библиотека GD.

Повысить возможности библиотеки GD для работы с различными шрифтами можно, используя опцию --with-XXXX во время конфигурации PHP.

Поддерживаемые библиотеки шрифтов
Библиотека шрифтов | Опция при конфигурировании
FreeType 2 | Чтобы включить поддержку FreeType 2 добавьте --with-freetype-dir=DIR . Начиная с PHP 7.4.0, используйте вместо этого опцию --with-freetype , которая зависит от pkg-config.
T1lib | Чтобы включить поддержку T1lib (шрифты Postscript Type 1) добавьте --with-t1lib[=DIR] . (Удалено в PHP 7.0.0)
Native TrueType string function | Чтобы включить поддержку Native TrueType string function добавьте --enable-gd-native-ttf . (Игнорируется с PHP 5.5.0; удалено в PHP 7.2.0.)


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Image Опции настройки
Имя | По умолчанию | Место изменения | Список изменений
gd.jpeg_ignore_warning | "1" | PHP_INI_ALL | Доступно, начиная с PHP 5.1.3.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

gd.jpeg_ignore_warning bool

Игнорировать предупреждения(но не ошибки), сгенерированные libjpeg(-turbo).

Список изменений для gd.jpeg_ignore_warning
Версия | Описание
7.1.0 | Значение gd.jpeg_ignore_warning по умолчанию изменено с 0 на 1..

См. также директивы настройки exif.

Внимание

Функции для работы с изображениями потребляют много памяти. Убедитесь, что значение memory_limit достаточно велико, если используете штатную библиотеку GD.


Типы ресурсов

Модуль определяет следующие типы ресурсов:

Список типов ресурсов в GD
Имя | Описание | Замечания
gd | Изображение, используется такими функциями как imagecreatefrompng() |
gd font | Ресурс шрифта, создаваемый функцией imageloadfont() |
gd PS font | Шрифт PostScript Type 1, возвращается imagepsloadfont() | Удалено в PHP 7.0.0.
gd PS encoding | Кодировка PostScript Type 1, возвращается imagepsencodefont() | Удалено в PHP 7.0.0.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

GD_VERSION (string)
Версия GD, с которой был скомпилирован PHP. (Доступна с PHP 5.2.4)
GD_MAJOR_VERSION (integer)
Полнофункциональная версия GD, с которой был скомпилирован PHP. (Доступна с PHP 5.2.4)
GD_MINOR_VERSION (integer)
Сокращенная версия GD, с которой был скомпилирован PHP. (Доступна с PHP 5.2.4)
GD_RELEASE_VERSION (integer)
Рабочая версия GD, с которой был скомпилирован PHP. (Доступна с PHP 5.2.4)
GD_EXTRA_VERSION (string)
Дополнительная (beta/rc..) версия GD, с которой был скомпилирован PHP. (Доступна с PHP 5.2.4)
GD_BUNDLED (integer)
Если используется распространяемая с PHP версия GD, константа принимает значение 1, в противном случае 0.
IMG_BMP (integer)
Used as a return value by imagetypes()
IMG_GIF (integer)
Used as a return value by imagetypes()
IMG_JPG (integer)
Used as a return value by imagetypes()
IMG_JPEG (integer)
Used as a return value by imagetypes()

Замечание:

Эта константа имеет то же значение, что и IMG_JPG

IMG_PNG (integer)
Used as a return value by imagetypes()
IMG_WBMP (integer)
Used as a return value by imagetypes()
IMG_XPM (integer)
Used as a return value by imagetypes()
IMG_WEBP (integer)
Used as a return value by imagetypes() Доступно с PHP 5.6.25 и PHP 7.0.10, соответственно.
IMG_COLOR_TILED (integer)
Специальный вариант цвета, который может быть использован вместо определенного с помощью imagecolorallocate() и imagecolorallocatealpha().
IMG_COLOR_STYLED (integer)
Специальный вариант цвета, который может быть использован вместо определенного с помощью imagecolorallocate() и imagecolorallocatealpha().
IMG_COLOR_BRUSHED (integer)
Специальный вариант цвета, который может быть использован вместо определенного с помощью imagecolorallocate() и imagecolorallocatealpha().
IMG_COLOR_STYLEDBRUSHED (integer)
Специальный вариант цвета, который может быть использован вместо определенного с помощью imagecolorallocate() и imagecolorallocatealpha().
IMG_COLOR_TRANSPARENT (integer)
Специальный вариант цвета, который может быть использован вместо определенного с помощью imagecolorallocate() и imagecolorallocatealpha().
IMG_AFFINE_TRANSLATE (integer)
Константа типа аффинного преобразования, используется с функцией imageaffinematrixget() .
IMG_AFFINE_SCALE (integer)
Константа типа аффинного преобразования, используется с функцией imageaffinematrixget() .
IMG_AFFINE_ROTATE (integer)
Константа типа аффинного преобразования, используется с функцией imageaffinematrixget() .
IMG_AFFINE_SHEAR_HORIZONTAL (integer)
Константа типа аффинного преобразования, используется с функцией imageaffinematrixget() .
IMG_AFFINE_SHEAR_VERTICAL (integer)
Константа типа аффинного преобразования, используется с функцией imageaffinematrixget() .
IMG_ARC_ROUNDED (integer)
Константа стиля, используется с функцией imagefilledarc().

Замечание:

Эта константа имеет то же значение, что и IMG_ARC_PIE

IMG_ARC_PIE (integer)
Константа стиля, используется с функцией imagefilledarc().
IMG_ARC_CHORD (integer)
Константа стиля, используется с функцией imagefilledarc().
IMG_ARC_NOFILL (integer)
Константа стиля, используется с функцией imagefilledarc().
IMG_ARC_EDGED (integer)
Константа стиля, используется с функцией imagefilledarc().
IMG_GD2_RAW (integer)
Константа типа, используется с функцией imagegd2().
IMG_GD2_COMPRESSED (integer)
Константа типа, используется с функцией imagegd2().
IMG_EFFECT_REPLACE (integer)
Эффект альфа-смешения, используется с функцией imagelayereffect().
IMG_EFFECT_ALPHABLEND (integer)
Эффект альфа-смешения, используется с функцией imagelayereffect().
IMG_EFFECT_NORMAL (integer)
Эффект альфа-смешения, используется с функцией imagelayereffect().
IMG_EFFECT_OVERLAY (integer)
Эффект альфа-смешения, используется с функцией imagelayereffect().
IMG_EFFECT_MULTIPLY (integer)
Эффект альфа-смешения, используется с функцией imagelayereffect().
IMG_FILTER_NEGATE (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_GRAYSCALE (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_BRIGHTNESS (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_CONTRAST (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_COLORIZE (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_EDGEDETECT (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_GAUSSIAN_BLUR (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_SELECTIVE_BLUR (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_EMBOSS (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_MEAN_REMOVAL (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_SMOOTH (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_PIXELATE (integer)
Специальный фильтр GD, используется с функцией imagefilter(). (Доступна с PHP 5.3.0)
IMG_FILTER_SCATTER (integer)
Специальный фильтр GD, используется с функцией imagefilter(). (Доступна с PHP 7.4.0)
IMAGETYPE_GIF (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JPEG (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JPEG2000 (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_PNG (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_SWF (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_PSD (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_BMP (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_WBMP (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_XBM (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_TIFF_II (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_TIFF_MM (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_IFF (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JB2 (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JPC (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JP2 (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JPX (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_SWC (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_ICO (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension(). (Доступна, начиная с PHP 5.3.0)
IMAGETYPE_WEBP (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension(). (Available as of PHP 7.1.0)
PNG_NO_FILTER (integer)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_FILTER_NONE (integer)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_FILTER_SUB (integer)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_FILTER_UP (integer)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_FILTER_AVG (integer)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_FILTER_PAETH (integer)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_ALL_FILTERS (integer)
Специальный фильтр PNG filter, используется с функцией imagepng().
IMG_FLIP_VERTICAL (int)
Используется с функцией imageflip(), доступна с PHP 5.5.0.
IMG_FLIP_HORIZONTAL (int)
Используется с функцией imageflip(), доступна с PHP 5.5.0.
IMG_FLIP_BOTH (int)
Используется с функцией imageflip(), доступна с PHP 5.5.0.
IMG_BELL (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_BESSEL (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_BILINEAR_FIXED (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_BICUBIC_FIXED (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_BICUBIC (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_BLACKMAN (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_BOX (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_BSPLINE (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_CATMULLROM (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_GAUSSIAN (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_GENERALIZED_CUBIC (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_HERMITE (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_HAMMING (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_HANNING (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_MITCHELL (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_POWER (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_QUADRATIC (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_SINC (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_NEAREST_NEIGHBOUR (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_WEIGHTED4 (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_TRIANGLE (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.


Примеры

Содержание

  • Создание PNG средствами PHP
  • Добавление водяных знаков на изображения с помощью альфа-каналов
  • Использование imagecopymerge создать полупрозрачный водяной знак


Создание PNG средствами PHP

Пример #1 Создание PNG средствами 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);

?>
Этот пример можно было бы вызвать на странице с тегом: <img src="button.php?text=text">. Приведённый выше скрипт button.php возьмет строку "text" и наложит её поверх базового изображения, которое является, в данном случае "images/button1.png" и выведет конечное изображение. Это очень удобный способ, чтобы избежать необходимости создания новой кнопки всякий раз, когда вы хотите изменить текст кнопки. С помощью этого метода она генерируются динамически.


Добавление водяных знаков на изображения с помощью альфа-каналов

Пример #1 Добавление водяных знаков на изображения с помощью альфа-каналов

<?php
// Загрузка штампа и фото, для которого применяется водяной знак (называется штамп или печать)
$stamp = imagecreatefrompng('stamp.png');
$im = imagecreatefromjpeg('photo.jpeg');

// Установка полей для штампа и получение высоты/ширины штампа
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

// Копирование изображения штампа на фотографию с помощью смещения края
// и ширины фотографии для расчета позиционирования штампа.
imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));

// Вывод и освобождение памяти
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>
Добавление водяных знаков на изображения с помощью альфа-каналов
Этот пример является простым способом добавить водяные знаки и штампы на фотографии и изображения, защищенные авторским правом. Обратите внимание, что наличие альфа-канала в изображении штампа, как текст сглаживается. Это сохранилось во время копирования.


Использование imagecopymerge создать полупрозрачный водяной знак

  • « Добавление водяных знаков на изображения с помощью альфа-каналов
  • Функции GD и функции для работы с изображениями »
  • PHP Manual
  • Примеры
  • Использование imagecopymerge создать полупрозрачный водяной знак

Использование imagecopymerge() создать полупрозрачный водяной знак

Пример #1 Использование imagecopymerge() создать полупрозрачный водяной знак

<?php
// Загрузка штампа и фото, для которого применяется водяной знак (называется штамп или печать)
$im = imagecreatefromjpeg('photo.jpeg');

// Сначала создаем наше изображение штампа вручную с помощью GD
$stamp = imagecreatetruecolor(100, 70);
imagefilledrectangle($stamp, 0, 0, 99, 69, 0x0000FF);
imagefilledrectangle($stamp, 9, 9, 90, 60, 0xFFFFFF);
imagestring($stamp, 5, 20, 20, 'libGD', 0x0000FF);
imagestring($stamp, 3, 20, 40, '(c) 2007-9', 0x0000FF);

// Установка полей для штампа и получение высоты/ширины штампа
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

// Слияние штампа с фотографией. Прозрачность 50%
imagecopymerge($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp), 50);

// Сохранение фотографии в файл и освобождение памяти
imagepng($im, 'photo_stamp.png');
imagedestroy($im);

?>
Использование imagecopymerge() для создания полупрозрачного водяного знака
В этом примере используется imagecopymerge() для объединения штампа с нашим исходным изображением. С помощью этого мы можем установить прозрачность нашего штампа - в нашем примере мы установили его на 50% непрозрачности (opacity). На практике это было бы полезным для защиты авторских прав, полупрозрачные водяные знаки трудно удалить и позволяют зрителям увидеть изображение.


Функции GD и функции для работы с изображениями

Содержание

  • gd_info — Вывод информации о текущей установленной GD библиотеке
  • getimagesize — Получение размера изображения
  • getimagesizefromstring — Получение размера изображения из строки данных
  • image_type_to_extension — Получение расширения файла для типа изображения
  • image_type_to_mime_type — Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
  • image2wbmp — Выводит изображение в браузер или пишет в файл
  • imageaffine — Вернуть изображение, содержащее аффинно-преобразованное изображение src, используя дополнительную область ограничения
  • imageaffinematrixconcat — Конкатенирует две аффинные матрицы преобразования
  • imageaffinematrixget — Get an affine transformation matrix
  • imagealphablending — Задание режима сопряжения цветов для изображения
  • imageantialias — Требуется ли применять функции сглаживания или нет
  • imagearc — Рисование дуги
  • imagebmp — Вывести BMP-изображение в браузер или файл
  • imagechar — Рисование символа по горизонтали
  • imagecharup — Рисование символа вертикально
  • imagecolorallocate — Создание цвета для изображения
  • imagecolorallocatealpha — Создание цвета для изображения
  • imagecolorat — Получение индекса цвета пиксела
  • imagecolorclosest — Получение индекса цвета ближайшего к заданному
  • imagecolorclosestalpha — Получение индекса цвета ближайшего к заданному с учетом прозрачности
  • imagecolorclosesthwb — Получение индекса цвета, имеющего заданный тон, белизну и затемнение
  • imagecolordeallocate — Разрыв ассоциации переменной с цветом для заданного изображения
  • imagecolorexact — Получение индекса заданного цвета
  • imagecolorexactalpha — Получение индекса заданного цвета и альфа компонента
  • imagecolormatch — Делает цвета палитровой версии изображения более соответствующими truecolor версии
  • imagecolorresolve — Получает идентификатор конкретного цвета или его ближайший аналог
  • imagecolorresolvealpha — Получает идентификатор конкретного цвета и альфа компонента или его ближайший аналог
  • imagecolorset — Установка набора цветов для заданного индекса палитры
  • imagecolorsforindex — Получение цветов, соответствующих индексу
  • imagecolorstotal — Определение количества цветов в палитре изображения
  • imagecolortransparent — Определяет цвет как прозрачный
  • imageconvolution — Наложение искривляющей матрицы 3х3, используя коэффициент и смещение
  • imagecopy — Копирование части изображения
  • imagecopymerge — Копирует часть изображения с наложением
  • imagecopymergegray — Копирует часть изображения с наложением в градациях серого
  • imagecopyresampled — Копирование и изменение размера изображения с ресемплированием
  • imagecopyresized — Копирование и изменение размера части изображения
  • imagecreate — Создание нового палитрового изображения
  • imagecreatefrombmp — Создает новое изображение из файла или URL
  • imagecreatefromgd2 — Создание нового изображения на основе GD2 или URL
  • imagecreatefromgd2part — Создание нового изображения на основе части GD2 файла или URL
  • imagecreatefromgd — Создание нового изображения на основе GD файла или URL
  • imagecreatefromgif — Создает новое изображение из файла или URL
  • imagecreatefromjpeg — Создает новое изображение из файла или URL
  • imagecreatefrompng — Создает новое изображение из файла или URL
  • imagecreatefromstring — Создание нового изображения из потока представленного строкой
  • imagecreatefromwbmp — Создает новое изображение из файла или URL
  • imagecreatefromwebp — Создает новое изображение из файла или URL
  • imagecreatefromxbm — Создает новое изображение из файла или URL
  • imagecreatefromxpm — Создает новое изображение из файла или URL
  • imagecreatetruecolor — Создание нового полноцветного изображения
  • imagecrop — Обрезать изображение до заданного прямоугольника
  • imagecropauto — Crop an image automatically using one of the available modes
  • imagedashedline — Рисование пунктирной линии
  • imagedestroy — Уничтожение изображения
  • imageellipse — Рисование эллипса
  • imagefill — Заливка
  • imagefilledarc — Рисование и заливка дуги
  • imagefilledellipse — Рисование закрашенного эллипса
  • imagefilledpolygon — Рисование закрашенного многоугольника
  • imagefilledrectangle — Рисование закрашенного прямоугольника
  • imagefilltoborder — Заливка цветом
  • imagefilter — Применяет фильтр к изображению
  • imageflip — Flips an image using a given mode
  • imagefontheight — Получение высоты шрифта
  • imagefontwidth — Получение ширины шрифта
  • imageftbbox — Определение границ текста выводимого шрифтом freetype2
  • imagefttext — Нанесение текста на изображение, используя шрифты FreeType 2
  • imagegammacorrect — Применение гамма коррекции к GD изображению
  • imagegd2 — Вывод GD2 изображения в браузер или файл
  • imagegd — Вывод GD-изображения в браузер или в файл
  • imagegetclip — Получить отсекающий прямоугольник
  • imagegif — Выводит изображение в браузер или пишет в файл
  • imagegrabscreen — Захватывает изображение с экрана
  • imagegrabwindow — Захватывает изображение окна
  • imageinterlace — Включение или выключение интерлейсинга
  • imageistruecolor — Определяет, является ли изображение полноцветным
  • imagejpeg — Выводит изображение в браузер или пишет в файл
  • imagelayereffect — Установка флага альфа сопряжения для использования эффектов наложения изображений
  • imageline — Рисование линии
  • imageloadfont — Загрузка шрифта
  • imageopenpolygon — Рисует открытый полигон
  • imagepalettecopy — Копирование палитры из одного изображения в другое
  • imagepalettetotruecolor — Преобразует изображение на основе палитры в настоящий цвет
  • imagepng — Вывод PNG изображения в браузер или файл
  • imagepolygon — Рисование многоугольника
  • imagepsbbox — Выдает параметры рамки, обрамляющей текст написанный шрифтом PostScript Type1
  • imagepsencodefont — Изменение вектора кодировки шрифта
  • imagepsextendfont — Растягивание или сжатие шрифта
  • imagepsfreefont — Освобождение памяти, занятой шрифтом PostScript Type
  • imagepsloadfont — Загрузка шрифта PostScript Type 1 из файла
  • imagepsslantfont — Наклон шрифта
  • imagepstext — Рисование текста поверх изображения, используя шрифты PostScript Type1
  • imagerectangle — Рисование прямоугольника
  • imageresolution — Get or set the resolution of the image
  • imagerotate — Поворот изображения с заданным углом
  • imagesavealpha — Сохранять ли полную информацию альфа-канала при сохранении изображений PNG
  • imagescale — Масштабировать изображение по заданной ширине и высоте
  • imagesetbrush — Установка изображения (кисти), посредством которого будут рисоваться линии
  • imagesetclip — Установите прямоугольник ограничения
  • imagesetinterpolation — Set the interpolation method
  • imagesetpixel — Рисование точки
  • imagesetstyle — Установка стиля рисования линий
  • imagesetthickness — Установка толщины линий
  • imagesettile — Установка изображения, которое будет использовано в качестве элемента мозаичной заливки
  • imagestring — Рисование строки текста горизонтально
  • imagestringup — Рисование строки текста вертикально
  • imagesx — Получение ширины изображения
  • imagesy — Получение высоты изображения
  • imagetruecolortopalette — Преобразование полноцветного изображения в палитровое
  • imagettfbbox — Получение параметров рамки обрамляющей текст написанный TrueType шрифтом
  • imagettftext — Рисование текста на изображении шрифтом TrueType
  • imagetypes — Возвращает список типов изображений, поддерживаемых PHP сборкой
  • imagewbmp — Выводит изображение в браузер или пишет в файл
  • imagewebp — Вывод изображения WebP в браузер или файл
  • imagexbm — Вывод XBM изображения в браузер или файл
  • iptcembed — Встраивание двоичных IPTC данных в JPEG изображение
  • iptcparse — Разбор двоичных IPTC данных на отдельные теги
  • jpeg2wbmp — Конвертирует изображение из формата JPEG в WBMP
  • png2wbmp — Преобразование PNG файла в WBMP


Вывод информации о текущей установленной GD библиотеке

  • « Функции GD и функции для работы с изображениями
  • getimagesize »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Вывод информации о текущей установленной GD библиотеке

gd_info

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

gd_info — Вывод информации о текущей установленной GD библиотеке

Описание

gd_info ( void ) : array

Получает информацию о версии и возможностях установленной GD библиотеки.

Возвращаемые значения

Возвращает ассоциативный массив.

Элементы массива, возвращаемого из gd_info()
Атрибут | Смысловое значение
GD Version | Строка (string), содержащая версию libgd.
FreeType Support | boolean значение. TRUE, если компонент FreeType Support установлен.
FreeType Linkage | Строка (string), содержащая описание, каким образом подключен компонент FreeType. Ожидаемые значения: 'with freetype', 'with TTF library', и 'with unknown library'. Этот элемент будет определен, только если FreeType Support имеет значение TRUE.
T1Lib Support | boolean значение. TRUE, если T1Lib поддержка включена.
GIF Read Support | boolean значение. TRUE, если включена поддержка чтения (reading) GIF изображений.
GIF Create Support | boolean значение. TRUE, если включена поддержка записи (creating) GIF изображений.
JPEG Support | boolean значение. TRUE, если включена поддержка JPEG.
PNG Support | boolean значение. TRUE, если включена поддержка PNG.
WBMP Support | boolean значение. TRUE, если включена поддержка WBMP.
XBM Support | boolean значение. TRUE, если включена поддержка XBM.
WebP Support | boolean значение. TRUE, если включена поддержка WebP.

Замечание:

В версиях PHP до 5.3.0, атрибут JPEG Support назывался JPG Support.

Список изменений

Версия | Описание
5.6.12 | Добавлена поддержка WebP.
5.3.0 | Атрибут JPG Support переименован в JPEG Support.

Примеры

Пример #1 Пример использования gd_info()

<?php
var_dump(gd_info());
?>

Результатом выполнения данного примера будет что-то подобное:

array(10) {
  ["GD Version"]=>
  string(24) "bundled (2.1.0 compatible)"
  ["FreeType Support"]=>
  bool(false)
  ["T1Lib Support"]=>
  bool(false)
  ["GIF Read Support"]=>
  bool(true)
  ["GIF Create Support"]=>
  bool(false)
  ["JPEG Support"]=>
  bool(false)
  ["PNG Support"]=>
  bool(true)
  ["WBMP Support"]=>
  bool(true)
  ["XBM Support"]=>
  bool(false)
  ["WebP Support"]=>
  bool(false)
}

Смотрите также

  • imagepng() - Вывод PNG изображения в браузер или файл
  • imagejpeg() - Выводит изображение в браузер или пишет в файл
  • imagegif() - Выводит изображение в браузер или пишет в файл
  • imagewbmp() - Выводит изображение в браузер или пишет в файл
  • imagewebp() - Вывод изображения WebP в браузер или файл
  • imagetypes() - Возвращает список типов изображений, поддерживаемых PHP сборкой


Получение размера изображения

  • « gd_info
  • getimagesizefromstring »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение размера изображения

getimagesize

(PHP 4, PHP 5, PHP 7)

getimagesize — Получение размера изображения

Описание

getimagesize ( string $filename [, array &$imageinfo ] ) : array

Функция getimagesize() определит размер любого заданного, поддерживаемого изображения и вернет этот размер вместе с типом файла и текстовой строкой height/width, которую можно будет использовать внутри тега HTML IMG, а также вернет соответствующий тип содержимого HTTP.

Также getimagesize() может вернуть дополнительные сведения об изображении через аргумент imageinfo.

Предостережение

Функция ожидает, что filename является корректным файлом изображения. Если будет передан файл не содержащий изображения, он может быть некорректно интерпретирован как изображение и функция завершится успешно, но массив при этом будет содержать бессмысленные значения.

Не используйте getimagesize() для проверки того, что файл изображением. Для этих целей используйте модуль Fileinfo.

Замечание: Обратите внимание на тот факт, что отдельные части JPC и JP2 изображений могут иметь различную глубину цвета. В этом случае в параметре "bits" будет стоять максимальное значение из всех обнаруженных. Также JP2 файлы могут содержать несколько кодовых потоков JPEG 2000. В таком случае getimagesize() вернет значения для первого такого потока, который будет обнаружен функцией в корне файла.

Замечание: Сведения об иконках извлекаются из иконки с наибольшим битрейтом.

Замечание: Изображения GIF состоят из одного или нескольких кадров, где каждый кадр может занимать только часть изображения. Размер изображения, возвращаемый getimagesize(), будет являться общим размером (прочитанным из дескриптора логического экрана).

Список параметров

filename

Этот аргумент задает файл, сведения о котором будут извлекаться. Это может быть локальный или удаленный (зависит от конфигурации) файл. Передача данных удаленного файла должна осуществляться одним из поддерживаемых потоков.

imageinfo

Этот необязательный аргумент позволяет извлечь некоторые расширенные сведения из файла изображения. На данный момент можно получать различные JPG APP маркеры в виде ассоциативного массива. Некоторые программы используют эти маркеры для встраивания текста в картинку. Наиболее часто встраивают » IPTC сведения в APP13 маркер. Для преобразования двоичных данных APP13 маркера во что-то удобочитаемое можно воспользоваться функцией iptcparse().

Замечание:

imageinfo поддерживает только файлы JFIF.

Возвращаемые значения

Возвращает массив из 7 элементов. Не все типы изображений содержат элементы с каналами (channels) и битрейтом (bits).

Индексы 0 и 1 содержат ширину и высоту изображения.

Замечание:

Некоторые форматы файлов могут хранить несколько изображений или не содержать изображения вообще. В таких случаях getimagesize() не сможет определить размер изображения. getimagesize() вернет нули в качестве значений высоты и ширины.

Индекс 2 содержит одну из констант типа изображения IMAGETYPE_XXX.

Индекс 3 содержит строку со значениями ширины и высоты изображения height="yyy" width="xxx", которая может быть использована внутри IMG тега.

mime - соответствующий MIME-тип изображения. Эти сведения используются для корректной обработки изображения на основании заголовка Content-type:

Пример #1 getimagesize() и MIME типы

<?php
$size = getimagesize($filename);
$fp = fopen($filename, "rb");
if ($size && $fp) {
    header("Content-type: {$size['mime']}");
    fpassthru($fp);
    exit;
} else {
    // ошибка
}
?>

channels принимает значение 3 для RGB картинок и 4 для CMYK.

bits - глубина цвета, число бит для каждого цвета.

Для некоторых типов изображений наличие значений channels и bits может сбить с толку. Например, GIF всегда использует 3 канала на пиксель, но глубину цвета невозможно вычислить для анимированных GIF изображений с общей таблицей цветов.

В случае возникновения ошибки функция вернет FALSE.

Ошибки

Если доступ к файлу filename невозможен, getimagesize() вызовет ошибку уровня E_WARNING. В случае ошибки чтения файла getimagesize() вызовет ошибку уровня E_NOTICE.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка WebP.
5.3.0 | Добавлена поддержка иконок.
5.2.3 | Уровень ошибок чтения, вызываемых функцией, снижен до E_NOTICE с E_WARNING.

Примеры

Пример #2 Пример использования getimagesize()

<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"пример getimagesize()\" />";
?>

Пример #3 getimagesize (URL)

<?php
$size = getimagesize("http://www.example.com/gifs/logo.gif");

// если в имени файла есть пробелы, учтите это должным образом
$size = getimagesize("http://www.example.com/gifs/lo%20go.gif");

?>

Пример #4 getimagesize() возвращающая IPTC

<?php
$size = getimagesize("testimg.jpg", $info);
if (isset($info["APP13"])) {
    $iptc = iptcparse($info["APP13"]);
    var_dump($iptc);
}
?>

Примечания

Замечание:

Этой функции не требуется библиотека GD.

Смотрите также

  • image_type_to_mime_type() - Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
  • exif_imagetype() - Определение типа изображения
  • exif_read_data() - Читает заголовки EXIF из файлов изображений
  • exif_thumbnail() - Получает встроенное превью изображения
  • imagesx() - Получение ширины изображения
  • imagesy() - Получение высоты изображения


Получение размера изображения из строки данных

  • « getimagesize
  • image_type_to_extension »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение размера изображения из строки данных

getimagesizefromstring

(PHP 5 >= 5.4.0, PHP 7)

getimagesizefromstring — Получение размера изображения из строки данных

Описание

getimagesizefromstring ( string $imagedata [, array &$imageinfo ] ) : array

Функция работает идентично функции getimagesize() с той разницей, что getimagesizefromstring() принимает данные изображения в виде строки в качестве первого аргумента вместо имени файла.

Для уточнения, как функция работает, обращайтесь к документации к функции getimagesize().

Список параметров

imagedata

Данные изображения в виде строки.

imageinfo

Смотрите getimagesize().

Возвращаемые значения

Смотрите getimagesize().

Примеры

Пример #1 Пример использования getimagesizefromstring()

<?php
$img = '/path/to/test.png';

// Открыть как файл
$size_info1 = getimagesize($img);

// Открыть как строку
$data       = file_get_contents($img);
$size_info2 = getimagesizefromstring($data);
?>

Смотрите также

  • getimagesize() - Получение размера изображения


Получение расширения файла для типа изображения

  • « getimagesizefromstring
  • image_type_to_mime_type »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение расширения файла для типа изображения

image_type_to_extension

(PHP 5 >= 5.2.0, PHP 7)

image_type_to_extension — Получение расширения файла для типа изображения

Описание

image_type_to_extension ( int $imagetype [, bool $include_dot = TRUE ] ) : string

Возвращает расширение файла для заданной IMAGETYPE_XXX константы.

Список параметров

imagetype

Одна из констант IMAGETYPE_XXX.

include_dot

Добавлять точку к расширению или нет. По умолчанию TRUE.

Возвращаемые значения

Строка с расширением файла, соответствующим типу изображения.

Примеры

Пример #1 Пример использования image_type_to_extension()

<?php
// Создание изображения
$im = imagecreatetruecolor(100, 100);

// Сохранение изображения
imagepng($im, './test' . image_type_to_extension(IMAGETYPE_PNG));
imagedestroy($im);
?>

Примечания

Замечание:

Этой функции не требуется библиотека GD.


Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype

  • « image_type_to_extension
  • image2wbmp »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype

image_type_to_mime_type

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

image_type_to_mime_type — Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype

Описание

image_type_to_mime_type ( int $imagetype ) : string

Функция image_type_to_mime_type() определяет Mime-тип для константы IMAGETYPE.

Список параметров

imagetype

Одна из констант IMAGETYPE_XXX.

Возвращаемые значения

Возвращаемые значения приведены ниже

Возвращаемые значения и Константы
imagetype | Возвращаемое значение
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) | image/tiff
IMAGETYPE_TIFF_MM (порядок байт motorola) | 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
IMAGETYPE_ICO | image/vnd.microsoft.icon
IMAGETYPE_WEBP | image/webp

Примеры

Пример #1 Пример использования image_type_to_mime_type()

<?php
header("Content-type: " . image_type_to_mime_type(IMAGETYPE_PNG));
?>

Примечания

Замечание:

Этой функции не требуется библиотека GD.

Смотрите также

  • getimagesize() - Получение размера изображения
  • exif_imagetype() - Определение типа изображения
  • exif_read_data() - Читает заголовки EXIF из файлов изображений
  • exif_thumbnail() - Получает встроенное превью изображения


Выводит изображение в браузер или пишет в файл

  • « image_type_to_mime_type
  • imageaffine »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Выводит изображение в браузер или пишет в файл

image2wbmp

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

image2wbmp — Выводит изображение в браузер или пишет в файл

Внимание

image2wbmp() объявлена устаревшей с PHP 7.3.0 и будет удалена в следующей основной версии. Используйте imagewbmp() вместо нее.

Описание

image2wbmp ( resource $image [, string $filename [, int $foreground ]] ) : bool

image2wbmp() выводит либо сохраняет WBMP версию заданного изображения image.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

filename

Путь для сохранения файла. Если не задан, исходные данные изображения будут выведены напрямую в выходной поток.

foreground

Вы можете установить цвет переднего плана с помощью этого параметра, установив идентификатор, полученный с помощью imagecolorallocate(). Цвет переднего плана по умолчанию черный.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернет TRUE.

Примеры

Пример #1 Пример использования image2wbmp()

<?php
$file = 'php.png';
$image = imagecreatefrompng($file);

header('Content-Type: ' . image_type_to_mime_type(IMAGETYPE_WBMP));
image2wbmp($image); // вывод потока
imagedestroy($image);
?>

Смотрите также

  • imagewbmp() - Выводит изображение в браузер или пишет в файл


Вернуть изображение, содержащее аффинно-преобразованное изображение src, используя дополнительную область ограничения

  • « image2wbmp
  • imageaffinematrixconcat »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Вернуть изображение, содержащее аффинно-преобразованное изображение src, используя дополнительную область ограничения

imageaffine

(PHP 5 >= 5.5.0, PHP 7)

imageaffine — Вернуть изображение, содержащее аффинно-преобразованное изображение src, используя дополнительную область ограничения

Описание

imageaffine ( resource $image , array $affine [, array $clip ] ) : resource

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

affine

Массив с ключами от 0 до 5.

clip

Массив с ключами "x", "y", "width" и "height".

Возвращаемые значения

Возвращает ресурс с аффинным изображением в случае успешного выполнения или FALSE в случае возникновения ошибки.


Конкатенирует две аффинные матрицы преобразования

  • « imageaffine
  • imageaffinematrixget »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Конкатенирует две аффинные матрицы преобразования

imageaffinematrixconcat

(PHP 5 >= 5.5.0, PHP 7)

imageaffinematrixconcat — Конкатенирует две аффинные матрицы преобразования

Описание

imageaffinematrixconcat ( array $m1 , array $m2 ) : array

Возвращает конкатенацию двух аффинных матриц преобразования, что полезно, если несколько преобразований должны быть применены к одному и тому же изображению за один раз.

Список параметров

m1

Аффинная матрица преобразования (массив с ключами от 0 до 5 и значениями с плавающей запятой).

m2

Аффинная матрица преобразования (массив с ключами от 0 до 5 и значениями с плавающей запятой).

Возвращаемые значения

Аффинная матрица преобразования (массив с ключами от 0 до 5 и значениями с плавающей запятой). или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imageaffinematrixconcat()

<?php
$m1 = imageaffinematrixget(IMG_AFFINE_TRANSLATE, array('x' = 2, 'y' => 3));
$m2 = imageaffinematrixget(IMG_AFFINE_SCALE, array('x' = 4, 'y' => 5));
$matrix = imageaffinematrixconcat($m1, $m2);
print_r($matrix);
?>

Результат выполнения данного примера:

Array
(
    [0] => 4
    [1] => 0
    [2] => 0
    [3] => 5
    [4] => 8
    [5] => 15
)

Смотрите также

  • imageaffine() - Вернуть изображение, содержащее аффинно-преобразованное изображение src, используя дополнительную область ограничения
  • imageaffinematrixget() - Get an affine transformation matrix


Get an affine transformation matrix

  • « imageaffinematrixconcat
  • imagealphablending »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Get an affine transformation matrix

imageaffinematrixget

(PHP 5 >= 5.5.0, PHP 7)

imageaffinematrixget — Get an affine transformation matrix

Описание

imageaffinematrixget ( int $type [, mixed $options ] ) : array

Returns an affine transformation matrix.

Список параметров

type

One of the IMG_AFFINE_* constants.

options

If type is IMG_AFFINE_TRANSLATE or IMG_AFFINE_SCALE, options has to be an array with keys x and y, both having float values.

If type is IMG_AFFINE_ROTATE, IMG_AFFINE_SHEAR_HORIZONTAL or IMG_AFFINE_SHEAR_VERTICAL, options has to be a float specifying the angle.

Возвращаемые значения

An affine transformation matrix (an array with keys 0 to 5 and float values) или FALSE в случае возникновения ошибки.

Примеры

Пример #1 imageaffinematrixget() example

<?php
$matrix = imageaffinematrixget(IMG_AFFINE_TRANSLATE, array('x' = 2, 'y' => 3));
print_r($matrix);
?>

Результат выполнения данного примера:

Array
(
    [0] => 1
    [1] => 0
    [2] => 0
    [3] => 1
    [4] => 2
    [5] => 3
)

Смотрите также

  • imageaffine() - Вернуть изображение, содержащее аффинно-преобразованное изображение src, используя дополнительную область ограничения
  • imageaffinematrixconcat() - Конкатенирует две аффинные матрицы преобразования


Задание режима сопряжения цветов для изображения

  • « imageaffinematrixget
  • imageantialias »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Задание режима сопряжения цветов для изображения

imagealphablending

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagealphablending — Задание режима сопряжения цветов для изображения

Описание

imagealphablending ( resource $image , bool $blendmode ) : bool

imagealphablending() позволяет использовать режим сопряжения цветов для truecolor-изображений при рисовании. В режиме сопряжения альфа компонент цвета, который передается всем функциям рисования, вроде imagesetpixel(), определяет то, насколько сильно цвет нижележащего слоя будет просачиваться через накладываемое изображение. В результате, gd автоматически сопрягает существующий цвет в каждой точке с цветом рисуемого поверх изображения и сохраняет результат сопряжения в изображении. Пикселы, подвергшиеся сопряжению, не обладают свойством прозрачности. В режиме без сопряжения цвет рисуемого поверх изображения пиксела буквально копируется вместе со своим альфа компонентом, заменяя пиксел в исходном изображении. Режим сопряжения недоступен при рисовании на палитровых изображениях.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

blendmode

Включить режим сопряжения или нет. Включен (TRUE) по умолчанию для truecolor-изображений, для всех остальных по умолчанию выключен (FALSE).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagealphablending()

<?php
// Создание изображения
$im = imagecreatetruecolor(100, 100);

// Включение режима сопряжения цветов
imagealphablending($im, true);

// Рисуем прямоугольник
imagefilledrectangle($im, 30, 30, 70, 70, imagecolorallocate($im, 255, 0, 0));

// Вывод
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>


Требуется ли применять функции сглаживания или нет

  • « imagealphablending
  • imagearc »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Требуется ли применять функции сглаживания или нет

imageantialias

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

imageantialias — Требуется ли применять функции сглаживания или нет

Описание

imageantialias ( resource $image , bool $enabled ) : bool

Задействует механизмы сглаживания при рисовании линий и замкнутых многоугольников. Не поддерживает альфа компоненты. Использует операции прямого смешивания цветов. Работает только с truecolor-изображениями.

Стили и толщина не поддерживаются.

Использование сглаженных примитивов совместно с прозрачным фоном может дать неожиданный результат. Метод смешивания использует цвет фона наравне с любым другим цветом. Отсутствие поддержки альфа компонента не позволяет применять основанный на нем метод сглаживания.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

enabled

Включить сглаживание или нет.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.2.0 | Функция imageantialias() доступна без ограничений. Ранее она была доступна, только если PHP был собран с использованием библиотеки GD, идущей с ним в комплекте.

Примеры

Пример #1 Сравнение двух линий, одна из которых рисуется с включенным сглаживанием

<?php
// Создание двух изображений
$aa = imagecreatetruecolor(400, 100);
$normal = imagecreatetruecolor(200, 100);

// Включение сглаживания для одного из них
imageantialias($aa, true);

// Задание цветов
$red = imagecolorallocate($normal, 255, 0, 0);
$red_aa = imagecolorallocate($aa, 255, 0, 0);

// Рисование линий
imageline($normal, 0, 0, 200, 100, $red);
imageline($aa, 0, 0, 200, 100, $red_aa);

// Размещение изображений рядом для сравнения (АА: слева, Обычное: справа)
imagecopymerge($aa, $normal, 200, 0, 0, 0, 200, 100, 100);

// Вывод результата
header('Content-type: image/png');

imagepng($aa);
imagedestroy($aa);
imagedestroy($normal);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Сравнение двух линий, одна из которых рисуется с включенным сглаживанием

Смотрите также

  • imagecreatetruecolor() - Создание нового полноцветного изображения


Рисование дуги

  • « imageantialias
  • imagebmp »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование дуги

imagearc

(PHP 4, PHP 5, PHP 7)

imagearc — Рисование дуги

Описание

imagearc ( resource $image , int $cx , int $cy , int $width , int $height , int $start , int $end , int $color ) : bool

imagearc() рисует дугу окружности с заданными координатами центра.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

cx

x-координата центра.

cy

y-координата центра.

width

Ширина дуги.

height

Высота дуги.

start

Угол начала дуги в градусах.

end

Угол окончания дуги в градусах. 0° соответствует положению 3 часа, дуга рисуется по часовой стрелке.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Рисование окружности с помощью функции imagearc()

<?php

// создаем изображение 200*200
$img = imagecreatetruecolor(200, 200);

// создаем несколько цветов
$white = imagecolorallocate($img, 255, 255, 255);
$red   = imagecolorallocate($img, 255,   0,   0);
$green = imagecolorallocate($img,   0, 255,   0);
$blue  = imagecolorallocate($img,   0,   0, 255);

// рисуем голову
imagearc($img, 100, 100, 200, 200,  0, 360, $white);
// рот
imagearc($img, 100, 100, 150, 150, 25, 155, $red);
// глаза
imagearc($img,  60,  75,  50,  50,  0, 360, $green);
imagearc($img, 140,  75,  50,  50,  0, 360, $blue);

// выводим изображение в браузере
header("Content-type: image/png");
imagepng($img);

// освобождаем память
imagedestroy($img);

?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Рисование окружности с помощью функции imagearc()

Смотрите также

  • imagefilledarc() - Рисование и заливка дуги
  • imageellipse() - Рисование эллипса
  • imagefilledellipse() - Рисование закрашенного эллипса


Вывести BMP-изображение в браузер или файл

  • « imagearc
  • imagechar »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Вывести BMP-изображение в браузер или файл

imagebmp

(PHP 7 >= 7.2.0)

imagebmp — Вывести BMP-изображение в браузер или файл

Описание

imagebmp ( resource $image [, mixed $to = NULL [, bool $compressed = TRUE ]] ) : bool

Выводит или сохраняет BMP-версию заданного изображения (image).

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

to

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде.

Замечание:

NULL недействителен, если аргумент compressed не используется.

compressed

Должен ли BMP быть сжат с кодировкой длин серий (RLE), или нет.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернет TRUE.

Примеры

Пример #1 Сохранение BMP-файла

<?php
// Создайте пустое изображение и добавьте текст
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);

imagestring($im, 1, 5, 5,  'BMP with PHP', $text_color);

// Сохранить изображение
imagebmp($im, 'php.bmp');

// Освободить память
imagedestroy($im);
?>


Рисование символа по горизонтали

  • « imagebmp
  • imagecharup »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование символа по горизонтали

imagechar

(PHP 4, PHP 5, PHP 7)

imagechar — Рисование символа по горизонтали

Описание

imagechar ( resource $image , int $font , int $x , int $y , string $c , int $color ) : bool

imagechar() рисует первый символ аргумента c на изображении с идентификатором image на координатах x,y (координаты отсчитываются с левого верхнего угла) цветом color.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или любому из ваших собственных идентификаторов шрифтов, зарегистрированных с помощью imageloadfont().

x

x-координата начала рисования.

y

y-координата начала рисования.

c

Символ для рисования.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagechar()

<?php

$im = imagecreate(100, 100);

$string = 'PHP';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// печатает черный символ "P" в левом верхнем углу
imagechar($im, 1, 0, 0, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagechar()

Смотрите также

  • imagecharup() - Рисование символа вертикально
  • imageloadfont() - Загрузка шрифта


Рисование символа вертикально

  • « imagechar
  • imagecolorallocate »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование символа вертикально

imagecharup

(PHP 4, PHP 5, PHP 7)

imagecharup — Рисование символа вертикально

Описание

imagecharup ( resource $image , int $font , int $x , int $y , string $c , int $color ) : bool

Рисует символ c вертикально на заданных координатах изображения image.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или любому из ваших собственных идентификаторов шрифтов, зарегистрированных с помощью imageloadfont().

x

x-координата начала рисования.

y

y-координата начала рисования.

c

Символ для рисования.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagecharup()

<?php

$im = imagecreate(100, 100);

$string = 'Надо учитывать, что первый символ в строке — N';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// печатает черный символ "Z" на белом фоне
imagecharup($im, 3, 10, 10, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagecharup()

Смотрите также

  • imagechar() - Рисование символа по горизонтали
  • imageloadfont() - Загрузка шрифта


Создание цвета для изображения

  • « imagecharup
  • imagecolorallocatealpha »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создание цвета для изображения

imagecolorallocate

(PHP 4, PHP 5, PHP 7)

imagecolorallocate — Создание цвета для изображения

Описание

imagecolorallocate ( resource $image , int $red , int $green , int $blue ) : int

Возвращает идентификатор цвета в соответствии с заданными RGB компонентами.

imagecolorallocate() должна вызываться для создания каждого цвета, который будет использоваться в изображении image.

Замечание:

Первый вызов imagecolorallocate() задает цвет фона в палитровых изображениях - изображениях, созданных функцией imagecreate().

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

Эти аргументы могут принимать либо целочисленные значение в диапазоне от 0 до 255, либо шестнадцатеричные в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Идентификатор цвета, либо FALSE в случае возникновения ошибки.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
5.1.3 | Возвращает FALSE в случае возникновения ошибки. В предыдущих версиях в этом случае возвращалось значение -1.

Примеры

Пример #1 Пример использования imagecolorallocate()

<?php

$im = imagecreate(100, 100);

// делаем фон красным
$background = imagecolorallocate($im, 255, 0, 0);

// создадим несколько цветов
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// шестнадцатеричный способ
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

?>

Смотрите также

  • imagecolorallocatealpha() - Создание цвета для изображения
  • imagecolordeallocate() - Разрыв ассоциации переменной с цветом для заданного изображения


Создание цвета для изображения

  • « imagecolorallocate
  • imagecolorat »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создание цвета для изображения

imagecolorallocatealpha

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

imagecolorallocatealpha — Создание цвета для изображения

Описание

imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha ) : int

imagecolorallocatealpha() работает аналогично функции imagecolorallocate(), но еще добавляет к цвету параметр alpha, отвечающий за прозрачность.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

alpha

Значение в диапазоне от 0 до 127. 0 означает непрозрачный цвет, 127 означает полную прозрачность.

Параметры red, green и blue могут быть либо целочисленными в диапазоне от 0 до 255 либо шестнадцатеричными в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Идентификатор цвета или FALSE в случае возникновении ошибки при создании цвета.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
5.1.3 | Возвращает FALSE, если создать цвет не удалось. Раньше в этом случае функция возвращала -1.

Примеры

Пример #1 Пример использования imagecolorallocatealpha()

<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);

// создадим белый фон с черной рамкой
$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;

// создание цветов с альфа компонентом
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red    = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue   = imagecolorallocatealpha($image, 0, 0, 255, 75);

// рисование 3-х пересекающихся окружностей
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);

// не забудьте вывести правильный заголовок!
header('Content-Type: image/png');

// и наконец, вывод
imagepng($image);
imagedestroy($image);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Пример использования imagecolorallocatealpha()

Пример #2 Преобразование типичных альфа-значений для использования с imagecolorallocatealpha()

Обычно альфа-значения 0 обозначают полностью прозрачные пиксели, а альфа-канал имеет 8 битов. Чтобы преобразовать такие альфа-значения для совместимости с imagecolorallocatealpha(), достаточно немного простой арифметики:

<?php
$alpha8 = 0; // полностью прозрачный
var_dump(127 - ($alpha8 >> 1));
$alpha8 = 255; // полностью непрозрачный
var_dump(127 - ($alpha8 >> 1));
?>

Результат выполнения данного примера:

int(127)
int(0)

Смотрите также

  • imagecolorallocate() - Создание цвета для изображения
  • imagecolordeallocate() - Разрыв ассоциации переменной с цветом для заданного изображения


Получение индекса цвета пиксела

  • « imagecolorallocatealpha
  • imagecolorclosest »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение индекса цвета пиксела

imagecolorat

(PHP 4, PHP 5, PHP 7)

imagecolorat — Получение индекса цвета пиксела

Описание

imagecolorat ( resource $image , int $x , int $y ) : int

Возвращает индекс цвета пиксела на заданных координатах на изображении image.

Если передается truecolor-изображение, функция возвращает целочисленное RGB значение для пиксела. Для выделения отдельных компонентов красного, зеленого или синего каналов используйте битовый сдвиг и маскирование:

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x

x-координата пиксела.

y

y-координата пиксела.

Возвращаемые значения

Возвращает индекс цвета или FALSE в случае возникновения ошибки.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Доступ к компонентам RGB цвета

<?php
$im = imagecreatefrompng("php.png");
$rgb = imagecolorat($im, 10, 15);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

var_dump($r, $g, $b);
?>

Результатом выполнения данного примера будет что-то подобное:

int(119)
int(123)
int(180)

Пример #2 Удобочитаемые RGB значения с использованием imagecolorsforindex()

<?php
$im = imagecreatefrompng("php.png");
$rgb = imagecolorat($im, 10, 15);

$colors = imagecolorsforindex($im, $rgb);

var_dump($colors);
?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  ["red"]=>
  int(119)
  ["green"]=>
  int(123)
  ["blue"]=>
  int(180)
  ["alpha"]=>
  int(127)
}

Смотрите также

  • imagecolorset() - Установка набора цветов для заданного индекса палитры
  • imagecolorsforindex() - Получение цветов, соответствующих индексу
  • imagesetpixel() - Рисование точки


Получение индекса цвета ближайшего к заданному

  • « imagecolorat
  • imagecolorclosestalpha »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение индекса цвета ближайшего к заданному

imagecolorclosest

(PHP 4, PHP 5, PHP 7)

imagecolorclosest — Получение индекса цвета ближайшего к заданному

Описание

imagecolorclosest ( resource $image , int $red , int $green , int $blue ) : int

Возвращает индекс цвета в палитре изображения, "ближайшего" к заданному RGB значению.

"Расстояние" между цветами в палитре рассчитывается геометрически, как если бы RGB значения были представлены в виде точек в трехмерном пространстве.

Если изображение было создано из файла, то будут распознаны только цвета, используемые в изображении. Цвета, которые используются только в палитре, распознаны не будут.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

Параметры цвета могут быть либо целочисленными в диапазоне от 0 до 255, либо шестнадцатеричными в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Возвращает индекс цвета в палитре изображения, ближайшего к заданному.

Примеры

Пример #1 Поиск набора цветов изображения

<?php
// Создание изображения и преобразование его в палитровое
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);

// Цвета для поиска (RGB)
$colors = array(
    array(254, 145, 154),
    array(153, 145, 188),
    array(153, 90, 145),
    array(255, 137, 92)
);

// Проход по каждому цвету и поиск ближайшего к нему в палитре.
// Возврат номера по порядку, RGB искомого цвета и найденное RGB соответствие
foreach($colors as $id => $rgb)
{
    $result = imagecolorclosest($im, $rgb[0], $rgb[1], $rgb[2]);
    $result = imagecolorsforindex($im, $result);
    $result = "({$result['red']}, {$result['green']}, {$result['blue']})";

    echo "#$id: Поиск ($rgb[0], $rgb[1], $rgb[2]); Ближайшее сходство: $result.\n";
}

imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

#0: Поиск (254, 145, 154); Ближайшее сходство: (252, 150, 148).
#1: Поиск (153, 145, 188); Ближайшее сходство: (148, 150, 196).
#2: Поиск (153, 90, 145); Ближайшее сходство: (148, 90, 156).
#3: Поиск (255, 137, 92); Ближайшее сходство: (252, 150, 92).

Смотрите также

  • imagecolorexact() - Получение индекса заданного цвета
  • imagecolorclosestalpha() - Получение индекса цвета ближайшего к заданному с учетом прозрачности
  • imagecolorclosesthwb() - Получение индекса цвета, имеющего заданный тон, белизну и затемнение


Получение индекса цвета ближайшего к заданному с учетом прозрачности

  • « imagecolorclosest
  • imagecolorclosesthwb »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение индекса цвета ближайшего к заданному с учетом прозрачности

imagecolorclosestalpha

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecolorclosestalpha — Получение индекса цвета ближайшего к заданному с учетом прозрачности

Описание

imagecolorclosestalpha ( resource $image , int $red , int $green , int $blue , int $alpha ) : int

Возвращает индекс цвета в палитре изображения, "ближайшего" к заданному RGB значению, а также alpha уровню.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

alpha

Значение в диапазоне от 0 до 127. 0 означает непрозрачность, 127 означает абсолютную прозрачность.

Параметры цвета могут быть либо целочисленными в диапазоне от 0 до 255, либо шестнадцатеричными в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Возвращает индекс цвета в палитре изображения, ближайшего к заданному.

Примеры

Пример #1 Поиск набора цветов изображения

<?php
// Создание изображения и преобразование его в палитровое
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);

// Цвета для поиска  (RGB)
$colors = array(
    array(254, 145, 154, 50),
    array(153, 145, 188, 127),
    array(153, 90, 145, 0),
    array(255, 137, 92, 84)
);

// Проход по каждому цвету и поиск ближайшего к нему в палитре.
// Возврат номера по порядку, RGB искомого цвета и найденное RGB соответствие
foreach($colors as $id => $rgb)
{
    $result = imagecolorclosestalpha($im, $rgb[0], $rgb[1], $rgb[2], $rgb[3]);
    $result = imagecolorsforindex($im, $result);
    $result = "({$result['red']}, {$result['green']}, {$result['blue']}, {$result['alpha']})";

    echo "#$id: Поиск ($rgb[0], $rgb[1], $rgb[2], $rgb[3]); Ближайшее сходство: $result.\n";
}

imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

#0: Поиск (254, 145, 154, 50); Ближайшее сходство: (252, 150, 148, 0).
#1: Поиск (153, 145, 188, 127); Ближайшее сходство: (148, 150, 196, 0).
#2: Поиск (153, 90, 145, 0); Ближайшее сходство: (148, 90, 156, 0).
#3: Поиск (255, 137, 92, 84); Ближайшее сходство: (252, 150, 92, 0).

Смотрите также

  • imagecolorexactalpha() - Получение индекса заданного цвета и альфа компонента
  • imagecolorclosest() - Получение индекса цвета ближайшего к заданному
  • imagecolorclosesthwb() - Получение индекса цвета, имеющего заданный тон, белизну и затемнение


Получение индекса цвета, имеющего заданный тон, белизну и затемнение

  • « imagecolorclosestalpha
  • imagecolordeallocate »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение индекса цвета, имеющего заданный тон, белизну и затемнение

imagecolorclosesthwb

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagecolorclosesthwb — Получение индекса цвета, имеющего заданный тон, белизну и затемнение

Описание

imagecolorclosesthwb ( resource $image , int $red , int $green , int $blue ) : int

Получение индекса цвета, имеющего значения тона, белизны и затемнения наиболее близкие к заданному цвету.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

Возвращаемые значения

Возвращает целочисленный индекс цвета, имеющего значения тона, белизны и затемнения наиболее близкие к заданному цвету.

Список изменений

Версия | Описание
5.3.0 | Функция теперь доступна в Windows

Примеры

Пример #1 Пример использования imagecolorclosesthwb()

<?php
$im = imagecreatefromgif('php.gif');

echo 'HWB: ' . imagecolorclosesthwb($im, 116, 115, 152);

imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

HWB: 33

Смотрите также

  • imagecolorclosest() - Получение индекса цвета ближайшего к заданному


Разрыв ассоциации переменной с цветом для заданного изображения

  • « imagecolorclosesthwb
  • imagecolorexact »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Разрыв ассоциации переменной с цветом для заданного изображения

imagecolordeallocate

(PHP 4, PHP 5, PHP 7)

imagecolordeallocate — Разрыв ассоциации переменной с цветом для заданного изображения

Описание

imagecolordeallocate ( resource $image , int $color ) : bool

Разрывает ассоциацию переменной с цветом, которая ранее была создана функциями imagecolorallocate() или imagecolorallocatealpha().

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

color

Идентификатор цвета.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagecolordeallocate()

<?php
$white = imagecolorallocate($im, 255, 255, 255);
imagecolordeallocate($im, $white);
?>

Смотрите также

  • imagecolorallocate() - Создание цвета для изображения
  • imagecolorallocatealpha() - Создание цвета для изображения


Получение индекса заданного цвета

  • « imagecolordeallocate
  • imagecolorexactalpha »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение индекса заданного цвета

imagecolorexact

(PHP 4, PHP 5, PHP 7)

imagecolorexact — Получение индекса заданного цвета

Описание

imagecolorexact ( resource $image , int $red , int $green , int $blue ) : int

Возвращает индекс для заданного цвета в палитре изображения.

Если изображение было создано из файла, то будут распознаны только цвета, используемые в изображении. Цвета, которые используются только в палитре, распознаны не будут.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

Возвращаемые значения

Возвращает индекс для заданного цвета в палитре изображения либо -1, если такого цвета в палитре нет.

Примеры

Пример #1 Получение цветов GD логотипа

<?php
// создание изображения
$im = imagecreatefrompng('./gdlogo.png');

$colors   = Array();
$colors[] = imagecolorexact($im, 255, 0, 0);
$colors[] = imagecolorexact($im, 0, 0, 0);
$colors[] = imagecolorexact($im, 255, 255, 255);
$colors[] = imagecolorexact($im, 100, 255, 52);

print_r($colors);

// освобождение памяти
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 16711680
    [1] => 0
    [2] => 16777215
    [3] => 6618932
)

Смотрите также

  • imagecolorclosest() - Получение индекса цвета ближайшего к заданному


Получение индекса заданного цвета и альфа компонента

  • « imagecolorexact
  • imagecolormatch »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение индекса заданного цвета и альфа компонента

imagecolorexactalpha

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecolorexactalpha — Получение индекса заданного цвета и альфа компонента

Описание

imagecolorexactalpha ( resource $image , int $red , int $green , int $blue , int $alpha ) : int

Возвращает индекс для заданного цвета и альфа компонента в палитре изображения.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

alpha

Значение в диапазоне от 0 до 127. 0 означает непрозрачность, 127 означает абсолютную прозрачность.

Параметры цвета могут быть либо целочисленными в диапазоне от 0 до 255, либо шестнадцатеричными в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Возвращает индекс для заданного цвета и альфа компонента в палитре изображения либо -1, если такого цвета в палитре нет.

Примеры

Пример #1 Получение цветов GD логотипа

<?php

// создание изображения
$im = imagecreatefrompng('./gdlogo.png');

$colors   = Array();
$colors[] = imagecolorexactalpha($im, 255, 0, 0, 0);
$colors[] = imagecolorexactalpha($im, 0, 0, 0, 127);
$colors[] = imagecolorexactalpha($im, 255, 255, 255, 55);
$colors[] = imagecolorexactalpha($im, 100, 255, 52, 20);

print_r($colors);

// освобождение памяти
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 16711680
    [1] => 2130706432
    [2] => 939524095
    [3] => 342163252
)

Смотрите также

  • imagecolorclosestalpha() - Получение индекса цвета ближайшего к заданному с учетом прозрачности


Делает цвета палитровой версии изображения более соответствующими truecolor версии

  • « imagecolorexactalpha
  • imagecolorresolve »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Делает цвета палитровой версии изображения более соответствующими truecolor версии

imagecolormatch

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

imagecolormatch — Делает цвета палитровой версии изображения более соответствующими truecolor версии

Описание

imagecolormatch ( resource $image1 , resource $image2 ) : bool

Делает цвета палитровой версии изображения более соответствующими truecolor версии.

Список параметров

image1

Ссылка на ресурс truecolor-изображения.

image2

Ссылка на ресурс палитрового изображения, имеющего тот же размер, что и image1.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagecolormatch()

<?php
// создание изображений
$im1 = imagecreatefrompng('./gdlogo.png');
$im2 = imagecreate(imagesx($im1), imagesy($im1));

// Добавим несколько цветов в $im2
$colors   = Array();
$colors[] = imagecolorallocate($im2, 255, 36, 74);
$colors[] = imagecolorallocate($im2, 40, 0, 240);
$colors[] = imagecolorallocate($im2, 82, 100, 255);
$colors[] = imagecolorallocate($im2, 84, 63, 44);

// Зададим соответствия этих цветов цветам truecolor изображения
imagecolormatch($im1, $im2);

// освободим память
imagedestroy($im1);
imagedestroy($im2);
?>

Смотрите также

  • imagecreatetruecolor() - Создание нового полноцветного изображения


Получает идентификатор конкретного цвета или его ближайший аналог

  • « imagecolormatch
  • imagecolorresolvealpha »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получает идентификатор конкретного цвета или его ближайший аналог

imagecolorresolve

(PHP 4, PHP 5, PHP 7)

imagecolorresolve — Получает идентификатор конкретного цвета или его ближайший аналог

Описание

imagecolorresolve ( resource $image , int $red , int $green , int $blue ) : int

Эта функция обязательно вернет идентификатор цвета для выбранного цвета, либо ближайшую возможную его альтернативу.

Если изображение было создано из файла, то будут распознаны только цвета, используемые в изображении. Цвета, которые используются только в палитре, распознаны не будут.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

Возвращаемые значения

Возвращает цветовой идентификатор.

Примеры

Пример #1 Использование imagecoloresolve() для получения цветов из изображения.

<?php
// загрузить изображение
$im = imagecreatefromgif('phplogo.gif');

// получить ближайшие цвета на изображении
$colors = array();
$colors[] = imagecolorresolve($im, 255, 255, 255);
$colors[] = imagecolorresolve($im, 0, 0, 200);

// вывод
print_r($colors);

imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 89
    [1] => 85
)

Смотрите также

  • imagecolorclosest() - Получение индекса цвета ближайшего к заданному


Получает идентификатор конкретного цвета и альфа компонента или его ближайший аналог

  • « imagecolorresolve
  • imagecolorset »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получает идентификатор конкретного цвета и альфа компонента или его ближайший аналог

imagecolorresolvealpha

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecolorresolvealpha — Получает идентификатор конкретного цвета и альфа компонента или его ближайший аналог

Описание

imagecolorresolvealpha ( resource $image , int $red , int $green , int $blue , int $alpha ) : int

Эта функция обязательно вернет идентификатор цвета для выбранного цвета, либо ближайшую возможную его альтернативу.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

alpha

Значение в диапазоне от 0 до 127. 0 означает непрозрачность, 127 означает абсолютную прозрачность.

Параметры цвета могут быть либо целочисленными в диапазоне от 0 до 255, либо шестнадцатеричными в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Возвращает индекс цвета.

Примеры

Пример #1 Пример использования imagecoloresolvealpha() для получения цветов из изображения

<?php
// Загрузка изображения
$im = imagecreatefromgif('phplogo.gif');

// Получение ближайших цветов
$colors = array();
$colors[] = imagecolorresolvealpha($im, 255, 255, 255, 0);
$colors[] = imagecolorresolvealpha($im, 0, 0, 200, 127);

// Вывод
print_r($colors);

imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 89
    [1] => 85
)

Смотрите также

  • imagecolorclosestalpha() - Получение индекса цвета ближайшего к заданному с учетом прозрачности


Установка набора цветов для заданного индекса палитры

  • « imagecolorresolvealpha
  • imagecolorsforindex »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Установка набора цветов для заданного индекса палитры

imagecolorset

(PHP 4, PHP 5, PHP 7)

imagecolorset — Установка набора цветов для заданного индекса палитры

Описание

imagecolorset ( resource $image , int $index , int $red , int $green , int $blue [, int $alpha = 0 ] ) : void

Функция устанавливает соответствие индекса в палитре заданному цвету. Это полезно для создания эффекта подобного заливке цветом без осуществления заливки.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

index

Индекс в палитре.

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

alpha

Значение альфа компонента.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
5.4.0 | Добавлен аргумент alpha.

Примеры

Пример #1 Пример использования imagecolorset()

<?php
// Создание изображения размером 300x100
$im = imagecreate(300, 100);

// Установка красного цвета фона
imagecolorallocate($im, 255, 0, 0);

// Получение индекса цвета фона
$bg = imagecolorat($im, 0, 0);

// Установка синего цвета фона
imagecolorset($im, $bg, 0, 0, 255);

// Вывод изображения в браузер
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Смотрите также

  • imagecolorat() - Получение индекса цвета пиксела


Получение цветов, соответствующих индексу

  • « imagecolorset
  • imagecolorstotal »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение цветов, соответствующих индексу

imagecolorsforindex

(PHP 4, PHP 5, PHP 7)

imagecolorsforindex — Получение цветов, соответствующих индексу

Описание

imagecolorsforindex ( resource $image , int $index ) : array

Получение цветов, соответствующих заданному индексу.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

index

Индекс цвета.

Возвращаемые значения

Возвращает ассоциативный массив с красным, зеленым, синим и альфа ключами, содержащий соответствующие значения для заданного индекса цвета.

Примеры

Пример #1 Пример использования imagecolorsforindex()

<?php

// открываем изображение
$im = imagecreatefrompng('nexen.png');

// получаем цвет
$start_x = 40;
$start_y = 50;
$color_index = imagecolorat($im, $start_x, $start_y);

// делаем его удобочитаемым
$color_tran = imagecolorsforindex($im, $color_index);

// что здесь ?
print_r($color_tran);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
   [red] => 226
   [green] => 222
   [blue] => 252
   [alpha] => 0
)

Смотрите также

  • imagecolorat() - Получение индекса цвета пиксела
  • imagecolorexact() - Получение индекса заданного цвета


Определение количества цветов в палитре изображения

  • « imagecolorsforindex
  • imagecolortransparent »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Определение количества цветов в палитре изображения

imagecolorstotal

(PHP 4, PHP 5, PHP 7)

imagecolorstotal — Определение количества цветов в палитре изображения

Описание

imagecolorstotal ( resource $image ) : int

Возвращает количество цветов в палитре изображения.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Возвращает количество цветов в палитре изображения либо 0 для truecolor-изображений.

Примеры

Пример #1 Получение количества цветов в изображении, используя imagecolorstotal()

<?php
// Создание изображения
$im = imagecreatefromgif('php.gif');

echo 'Всего цветов в изображении: ' . imagecolorstotal($im);

// Освобождение памяти
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Всего цветов в изображении: 128

Смотрите также

  • imagecolorat() - Получение индекса цвета пиксела
  • imagecolorsforindex() - Получение цветов, соответствующих индексу
  • imageistruecolor() - Определяет, является ли изображение полноцветным


Определяет цвет как прозрачный

  • « imagecolorstotal
  • imageconvolution »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Определяет цвет как прозрачный

imagecolortransparent

(PHP 4, PHP 5, PHP 7)

imagecolortransparent — Определяет цвет как прозрачный

Описание

imagecolortransparent ( resource $image ) : int
imagecolortransparent ( resource $image , int $color ) : int

Получает или устанавливает прозрачность цвета в заданном изображении image.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает идентификатор нового (или текущего, если ничего не изменилось) цвета. Если аргумент color не задан и в изображении нет прозрачных цветов, функция вернет -1.

Примеры

Пример #1 Пример использования imagecolortransparent()

<?php
// Создадим изображение размером 55x30
$im = imagecreatetruecolor(55, 30);
$red = imagecolorallocate($im, 255, 0, 0);
$black = imagecolorallocate($im, 0, 0, 0);

// Сделаем фон прозрачным
imagecolortransparent($im, $black);

// Нарисуем красный прямоугольник
imagefilledrectangle($im, 4, 4, 50, 25, $red);

// Сохраним изображение
imagepng($im, './imagecolortransparent.png');
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagecolortransparent()

Примечания

Замечание:

Прозрачность копируется только функцией imagecopymerge() и для truecolor-изображений. В случае использования функции imagecopy() или палитрового изображения значение альфа компонента не копируется.

Замечание:

Прозрачный цвет является свойством изображения, прозрачность не является свойством цвета. Если вы задали цвет как прозрачный, некоторые области изображения этого цвета нарисованные ранее станут прозрачными.


Наложение искривляющей матрицы 3х3, используя коэффициент и смещение

  • « imagecolortransparent
  • imagecopy »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Наложение искривляющей матрицы 3х3, используя коэффициент и смещение

imageconvolution

(PHP 5 >= 5.1.0, PHP 7)

imageconvolution — Наложение искривляющей матрицы 3х3, используя коэффициент и смещение

Описание

imageconvolution ( resource $image , array $matrix , float $div , float $offset ) : bool

Накладывает искривляющую матрицу на изображение, используя заданный коэффициент и смещение.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

matrix

Матрица 3x3: массив из трех массивов по 3 значения с плавающей запятой в каждом.

div

Делитель результата искривления, используется для нормализации.

offset

Смещение цвета.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Создание рельефа на логотипе PHP.net

<?php
$image = imagecreatefromgif('http://www.php.net/images/php.gif');

$emboss = array(array(2, 0, 0), array(0, -1, 0), array(0, 0, -1));
imageconvolution($image, $emboss, 1, 127);

header('Content-Type: image/png');
imagepng($image, null, 9);
?>

Результат выполнения данного примера:

Вывод примера: Создание рельефа на логотипе PHP.net

Пример #2 Размытие по Гауссу

<?php
$image = imagecreatetruecolor(180,40);

// Пишет текст и применяет размытие к изображению
imagestring($image, 5, 10, 8, 'Gaussian Blur Text', 0x00ff00);
$gaussian = array(array(1.0, 2.0, 1.0), array(2.0, 4.0, 2.0), array(1.0, 2.0, 1.0));
imageconvolution($image, $gaussian, 16, 0);

// Переписывает текст для сравнения
imagestring($image, 5, 10, 18, 'Gaussian Blur Text', 0x00ff00);

header('Content-Type: image/png');
imagepng($image, null, 9);
?>

Результат выполнения данного примера:

Вывод примера: Размытие по Гауссу

Примечания

Для работы функции требуется GD 2.1.0 или выше.

Смотрите также

  • imagefilter() - Применяет фильтр к изображению


Копирование части изображения

  • « imageconvolution
  • imagecopymerge »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Копирование части изображения

imagecopy

(PHP 4, PHP 5, PHP 7)

imagecopy — Копирование части изображения

Описание

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 ) : bool

Копирует часть src_im в dst_im, начиная с координат x, y src_x, src_y с шириной src_w и высотой src_h. Скопированная часть помещается на координаты dst_x и dst_y.

Список параметров

dst_im

Ресурс целевого изображения.

src_im

Ресурс исходного изображения.

dst_x

x-координата результирующего изображения.

dst_y

y-координата результирующего изображения.

src_x

x-координата исходного изображения.

src_y

y-координата исходного изображения.

src_w

Ширина исходного изображения.

src_h

Высота исходного изображения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Обрезка логотипа PHP.net

<?php
// Создание изображений
$src = imagecreatefromgif('php.gif');
$dest = imagecreatetruecolor(80, 40);

// Копирование
imagecopy($dest, $src, 0, 0, 20, 13, 80, 40);

// Вывод и освобождение памяти
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Обрезка логотипа PHP.net


Копирует часть изображения с наложением

  • « imagecopy
  • imagecopymergegray »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Копирует часть изображения с наложением

imagecopymerge

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagecopymerge — Копирует часть изображения с наложением

Описание

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 ) : bool

Копирует часть src_im и помещает скопированное на dst_im, начиная с координат src_x, src_y с шириной src_w и высотой src_h. Скопированная часть помещается на координаты dst_x и dst_y.

Список параметров

dst_im

Ресурс целевого изображения.

src_im

Ресурс исходного изображения.

dst_x

x-координата результирующего изображения.

dst_y

y-координата результирующего изображения.

src_x

x-координата исходного изображения.

src_y

y-координата исходного изображения.

src_w

Ширина исходного изображения.

src_h

Высота исходного изображения.

pct

Два изображения будут совмещаться в зависимости от параметра pct, который может варьироваться от 0 до 100. Когда pct = 0, наложения не происходит. В случае значения 100 эта функция ведет себя аналогично функции imagecopy() для палитровых изображений, несмотря на то что она поддерживает прозрачность для truecolor-изображений.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Совмещение двух копий логотипа PHP.net с 75% прозрачностью

<?php
// Создание изображений
$dest = imagecreatefromgif('php.gif');
$src = imagecreatefromgif('php.gif');

// Копирование и наложение
imagecopymerge($dest, $src, 10, 10, 0, 0, 100, 47, 75);

// Вывод и освобождение памяти
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>


Копирует часть изображения с наложением в градациях серого

  • « imagecopymerge
  • imagecopyresampled »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Копирует часть изображения с наложением в градациях серого

imagecopymergegray

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecopymergegray — Копирует часть изображения с наложением в градациях серого

Описание

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 ) : bool

Копирует часть src_im и помещает скопированное на dst_im, начиная с координат src_x, src_y с шириной src_w и высотой src_h. Скопированная часть помещается на координаты dst_x и dst_y.

Функция работает аналогично imagecopymerge() за исключением того, что при наложении она сохраняет насыщенность цвета исходного изображения путем преобразования цветов пикселей конечного изображения в градации серого перед копированием.

Список параметров

dst_im

Ресурс целевого изображения.

src_im

Ресурс исходного изображения.

dst_x

x-координата результирующего изображения.

dst_y

y-координата результирующего изображения.

src_x

x-координата исходного изображения.

src_y

y-координата исходного изображения.

src_w

Ширина исходного изображения.

src_h

Высота исходного изображения.

pct

Результирующее изображение src_im будет преобразовано к изображению в градациях серого в соответствии со значением параметра pct. 0 означает отсутствие цветов кроме серого, 100 - без изменений. Когда pct = 100 поведение функции идентично imagecopy() для палитровых изображений, несмотря на то что в этой функции реализована прозрачность для truecolor-изображений.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagecopymergegray()

<?php
// Создание изображений
$dest = imagecreatefromgif('php.gif');
$src = imagecreatefromgif('php.gif');

// Копирование и наложение - Серый = 20%
imagecopymergegray($dest, $src, 10, 10, 0, 0, 100, 47, 20);

// Вывод и освобождение памяти
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>


Копирование и изменение размера изображения с ресемплированием

  • « imagecopymergegray
  • imagecopyresized »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Копирование и изменение размера изображения с ресемплированием

imagecopyresampled

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecopyresampled — Копирование и изменение размера изображения с ресемплированием

Описание

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 ) : bool

imagecopyresampled() копирует прямоугольную часть одного изображения на другое изображение, интерполируя значения пикселов таким образом, чтобы уменьшение размера изображения не уменьшало его четкости.

Другими словами, imagecopyresampled() берет прямоугольный участок из src_image с шириной src_w и высотой src_h на координатах src_x,src_y и помещает его в прямоугольный участок изображения dst_image шириной dst_w и высотой dst_h на координатах dst_x,dst_y.

Если координаты, ширина или высота исходного и конечного изображений различны, копируемый фрагмент будет растянут или сжат. Координаты отсчитываются от левого верхнего угла изображения. Функцию можно использовать для наложения участков на то же изображение, с которого они скопированы (если dst_image имеет то же значение, что и src_image), но если участки будут пересекаться, результат непредсказуем.

Список параметров

dst_image

Ресурс целевого изображения.

src_image

Ресурс исходного изображения.

dst_x

x-координата результирующего изображения.

dst_y

y-координата результирующего изображения.

src_x

x-координата исходного изображения.

src_y

y-координата исходного изображения.

dst_w

Результирующая ширина.

dst_h

Результирующая высота.

src_w

Ширина исходного изображения.

src_h

Высота исходного изображения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Простой пример

В этом примере изображение будет сжато до половины исходного размера.

<?php
// файл
$filename = 'test.jpg';
$percent = 0.5;

// тип содержимого
header('Content-Type: image/jpeg');

// получение новых размеров
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;

// ресэмплирование
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// вывод
imagejpeg($image_p, null, 100);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Простой пример

Пример #2 Ресэмплирование изображения с сохранением пропорций

В этом примере изображение будет сжато до 200 пикселов по ширине или высоте, смотря что больше.

<?php
// файл
$filename = 'test.jpg';

// задание максимальной ширины и высоты
$width = 200;
$height = 200;

// тип содержимого
header('Content-Type: image/jpeg');

// получение новых размеров
list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
   $width = $height*$ratio_orig;
} else {
   $height = $width/$ratio_orig;
}

// ресэмплирование
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// вывод
imagejpeg($image_p, null, 100);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Ресэмплирование изображения с сохранением пропорций

Примечания

Замечание:

Существует проблема связанная с ограничениями палитровых изображений (255+1 цвет). Ресэмплирование или фильтрация изображения требует больше цветов, чем 255. Для расчета нового пиксела и его цвета применяется некоторое приближение. В случае палитровых изображений мы пытаемся создать новый цвет, а если это не удается, мы выбираем ближайший (теоретически) вычисленный цвет. Это не всегда визуально ближайший цвет. Такой подход может давать в результате пустые (или визуально пустые) изображения. Для устранения этой проблемы, пожалуйста, используйте truecolor-изображения в качестве результирующих, создаваемые функцией imagecreatetruecolor().

Смотрите также

imagecopyresized() - Копирование и изменение размера части изображения imagescale() - Масштабировать изображение по заданной ширине и высоте


Копирование и изменение размера части изображения

  • « imagecopyresampled
  • imagecreate »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Копирование и изменение размера части изображения

imagecopyresized

(PHP 4, PHP 5, PHP 7)

imagecopyresized — Копирование и изменение размера части изображения

Описание

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 ) : bool

imagecopyresized() копирует прямоугольный участок одного изображения на другое изображение. dst_image - результирующее изображение, src_image - идентификатор исходного изображения.

Другими словами, imagecopyresized() берет прямоугольный участок из src_image с шириной src_w и высотой src_h на координатах src_x,src_y и помещает его в прямоугольную область изображения dst_image с шириной dst_w и высотой dst_h на координатах dst_x,dst_y.

Если координаты, ширина или высота исходного и конечного изображений различны, копируемый фрагмент будет растянут или сжат. Координаты отсчитываются от левого верхнего угла изображения. Функцию можно использовать для наложения участков на то же изображение, с которого они скопированы (если dst_image имеет то же значение, что и src_image), но если участки будут пересекаться, результат непредсказуем.

Список параметров

dst_image

Ресурс целевого изображения.

src_image

Ресурс исходного изображения.

dst_x

x-координата результирующего изображения.

dst_y

y-координата результирующего изображения.

src_x

x-координата исходного изображения.

src_y

y-координата исходного изображения.

dst_w

Результирующая ширина.

dst_h

Результирующая высота.

src_w

Ширина исходного изображения.

src_h

Высота исходного изображения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Изменение размера изображения

В этом примере размер изображения будет уменьшен в два раза.

<?php
// файл и новый размер
$filename = 'test.jpg';
$percent = 0.5;

// тип содержимого
header('Content-Type: image/jpeg');

// получение нового размера
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;

// загрузка
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);

// изменение размера
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

// вывод
imagejpeg($thumb);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Изменение размера изображения

Изображение будет выведено с уменьшенным размером. Если требуется получить изображение в лучшем качестве, используйте функцию imagecopyresampled().

Примечания

Замечание:

Существует проблема связанная с ограничениями палитровых изображений (255+1 цвет). Ресэмплирование или фильтрация изображения требует больше цветов, чем 255. Для расчета нового пиксела и его цвета применяется некоторое приближение. В случае палитровых изображений мы пытаемся создать новый цвет, а если это не удается, мы выбираем ближайший (теоретически) вычисленный цвет. Это не всегда визуально ближайший цвет. Такой подход может давать в результате пустые (или визуально пустые) изображения. Для устранения этой проблемы, пожалуйста, используйте truecolor-изображения в качестве результирующих, создаваемые функцией imagecreatetruecolor().

Смотрите также

imagecopyresampled() - Копирование и изменение размера изображения с ресемплированием imagescale() - Масштабировать изображение по заданной ширине и высоте


Создание нового палитрового изображения

  • « imagecopyresized
  • imagecreatefrombmp »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создание нового палитрового изображения

imagecreate

(PHP 4, PHP 5, PHP 7)

imagecreate — Создание нового палитрового изображения

Описание

imagecreate ( int $width , int $height ) : resource

imagecreate() возвращает идентификатор изображения, представляющего из себя пустое изображение заданного размера.

Мы рекомендуем использовать функцию imagecreatetruecolor() вместо imagecreate(), так как она она обрабатывает изображения с максимально возможным качеством. Если необходимо вывести палитру изображения, то imagetruecolortopalette() необходимо вызвать непосредственно перед сохранением изображения с помощью imagepng() или imagegif().

Список параметров

width

Ширина изображения.

height

Высота изображения.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Создание нового GD потока изображения и вывод изображения.

<?php
header("Content-Type: image/png");
$im = @imagecreate(110, 20)
    or die("Невозможно создать поток изображения");
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Создание нового GD потока изображения и вывод изображения.

Смотрите также

  • imagedestroy() - Уничтожение изображения
  • imagecreatetruecolor() - Создание нового полноцветного изображения


Создает новое изображение из файла или URL

  • « imagecreate
  • imagecreatefromgd2 »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создает новое изображение из файла или URL

imagecreatefrombmp

(PHP 7 >= 7.2.0)

imagecreatefrombmp — Создает новое изображение из файла или URL

Описание

imagecreatefrombmp ( string $filename ) : resource

imagecreatefrombmp() возвращает идентификатор изображения, представляющий изображение, полученное из переданного имени файла.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.

Список параметров

filename

Путь к BMP-изображению.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Конвертирование BMP-изображения в PNG-изображения, используя imagecreatefrombmp()

<?php
// Загрузить BMP-файл
$im = imagecreatefrombmp('./example.bmp');

// Преобразовать в PNG-файл с настройками по умолчанию
imagepng($im, './example.png');
imagedestroy($im);
?>


Создание нового изображения на основе GD2 или URL

  • « imagecreatefrombmp
  • imagecreatefromgd2part »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создание нового изображения на основе GD2 или URL

imagecreatefromgd2

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagecreatefromgd2 — Создание нового изображения на основе GD2 или URL

Описание

imagecreatefromgd2 ( string $filename ) : resource

Создание нового изображения на основе GD2 или URL.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.

Список параметров

filename

Путь к GD2 изображению.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования imagecreatefromgd2()

<?php
// загрузка gd2 изображения
$im = imagecreatefromgd2('./test.gd2');

// применение эффекта к изображению, этот код
// инвертирует цвета в PHP 5+
if(function_exists('imagefilter'))
{
    imagefilter($im, IMG_FILTER_NEGATE);
}

// сохранение изображения
imagegd2($im, './test_updated.gd2');
imagedestroy($im);
?>


Создание нового изображения на основе части GD2 файла или URL

  • « imagecreatefromgd2
  • imagecreatefromgd »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создание нового изображения на основе части GD2 файла или URL

imagecreatefromgd2part

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagecreatefromgd2part — Создание нового изображения на основе части GD2 файла или URL

Описание

imagecreatefromgd2part ( string $filename , int $srcX , int $srcY , int $width , int $height ) : resource

Создание нового изображения на основе части GD2 файла или URL.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.

Список параметров

filename

Путь к GD2 изображению.

srcX

x-координата точки исходного изображения.

srcY

y-координата точки исходного изображения.

width

Ширина исходного изображения.

height

Высота исходного изображения.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования imagecreatefromgd2part()

<?php
// Для этого примера нам сначала потребуется узнать размер изображения
$image = getimagesize('./test.gd2');

// Создание изображения
$im = imagecreatefromgd2part('./test.gd2', 4, 4, ($image[0] / 2) - 6, ($image[1] / 2) - 6);

// Добавим рельеф на изображение
// Работает в PHP 5+
if(function_exists('imagefilter'))
{
    imagefilter($im, IMG_FILTER_EMBOSS);
}

// сохранение изображения
imagegd2($im, './test_emboss.gd2');
imagedestroy($im);
?>


Создание нового изображения на основе GD файла или URL

  • « imagecreatefromgd2part
  • imagecreatefromgif »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создание нового изображения на основе GD файла или URL

imagecreatefromgd

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagecreatefromgd — Создание нового изображения на основе GD файла или URL

Описание

imagecreatefromgd ( string $filename ) : resource

Создание нового изображения на основе GD файла или URL.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.

Список параметров

filename

Путь к GD файлу.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования imagecreatefromgd()

<?php
// загрузка изображения
$im = @imagecreatefromgd('./test.gd');

// проверка, загрузилось ли изображение
if(!is_resource($im))
{
     die('Не удалось загрузить изображение!');
}

// Операции с изображением можно осуществить здесь

// Сохранение изображения
imagegd($im, './test_updated.gd');
imagedestroy($im);
?>


Создает новое изображение из файла или URL

  • « imagecreatefromgd
  • imagecreatefromjpeg »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создает новое изображение из файла или URL

imagecreatefromgif

(PHP 4, PHP 5, PHP 7)

imagecreatefromgif — Создает новое изображение из файла или URL

Описание

imagecreatefromgif ( string $filename ) : resource

imagecreatefromgif() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

Предостережение

При чтении анимированных файлов GIF в память, возвращается указатель на ресурс изображения только для первого фрейма. Размер изображения не обязательно будет соответствует тому, что вернет функция getimagesize().

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.

Список параметров

filename

Путь к GIF картинке.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример обработки ошибки при загрузке GIF

<?php
function LoadGif($imgname)
{
    /* Пытаемся открыть */
    $im = @imagecreatefromgif($imgname);

    /* Если не удалось */
    if(!$im)
    {
        /* Создаем пустое изображение */
        $im = imagecreatetruecolor (150, 30);
        $bgc = imagecolorallocate ($im, 255, 255, 255);
        $tc = imagecolorallocate ($im, 0, 0, 0);

        imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);

        /* Выводим сообщение об ошибке */
        imagestring ($im, 1, 5, 5, 'Ошибка загрузки ' . $imgname, $tc);
    }

    return $im;
}

header('Content-Type: image/gif');

$img = LoadGif('bogus.image');

imagegif($img);
imagedestroy($img);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Пример обработки ошибки при загрузке GIF

Примечания

Замечание:

Поддержка GIF была убрана из GD библиотеки в версии 1.6, и добавлена обратно в версии 2.0.28. Эта функция недоступна в промежуточных версиях.


Создает новое изображение из файла или URL

  • « imagecreatefromgif
  • imagecreatefrompng »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создает новое изображение из файла или URL

imagecreatefromjpeg

(PHP 4, PHP 5, PHP 7)

imagecreatefromjpeg — Создает новое изображение из файла или URL

Описание

imagecreatefromjpeg ( string $filename ) : resource

imagecreatefromjpeg() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.

Список параметров

filename

Путь к JPEG картинке.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример обработки ошибки при загрузке JPEG

<?php
function LoadJpeg($imgname)
{
    /* Пытаемся открыть */
    $im = @imagecreatefromjpeg($imgname);

    /* Если не удалось */
    if(!$im)
    {
        /* Создаем пустое изображение */
        $im  = imagecreatetruecolor(150, 30);
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);

        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

        /* Выводим сообщение об ошибке */
        imagestring($im, 1, 5, 5, 'Ошибка загрузки ' . $imgname, $tc);
    }

    return $im;
}

header('Content-Type: image/jpeg');

$img = LoadJpeg('bogus.image');

imagejpeg($img);
imagedestroy($img);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Пример обработки ошибки при загрузке JPEG


Создает новое изображение из файла или URL

  • « imagecreatefromjpeg
  • imagecreatefromstring »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создает новое изображение из файла или URL

imagecreatefrompng

(PHP 4, PHP 5, PHP 7)

imagecreatefrompng — Создает новое изображение из файла или URL

Описание

imagecreatefrompng ( string $filename ) : resource

imagecreatefrompng() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.

Список параметров

filename

Путь к изображению PNG.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример обработки ошибки при загрузке PNG

<?php
function LoadPNG($imgname)
{
    /* Пытаемся открыть */
    $im = @imagecreatefrompng($imgname);

    /* Если не удалось */
    if(!$im)
    {
        /* Создаем пустое изображение */
        $im  = imagecreatetruecolor(150, 30);
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);

        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

        /* Выводим сообщение об ошибке */
        imagestring($im, 1, 5, 5, 'Ошибка загрузки ' . $imgname, $tc);
    }

    return $im;
}

header('Content-Type: image/png');

$img = LoadPNG('bogus.image');

imagepng($img);
imagedestroy($img);
?>

Результатом выполнения данного примера будет что-то подобное:

Пример использования imagecreatefrompng()


Создание нового изображения из потока представленного строкой

  • « imagecreatefrompng
  • imagecreatefromwbmp »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создание нового изображения из потока представленного строкой

imagecreatefromstring

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

imagecreatefromstring — Создание нового изображения из потока представленного строкой

Описание

imagecreatefromstring ( string $image ) : resource

imagecreatefromstring() возвращает идентификатор изображения, представляющего изображение полученное из потока image. Эти типы будут автоматически определяться, если сборка PHP их поддерживает: JPEG, PNG, GIF, BMP, WBMP и GD2.

Список параметров

image

Строка содержащая данные изображения.

Возвращаемые значения

В случае успеха будет возвращен ресурс изображения, FALSE, если тип изображения не поддерживается, данные не распознаются или данные нарушены и не могут быть загружены.

Ошибки

imagecreatefromstring() вызывает ошибку уровня E_WARNING, если данные в неподдерживаемом формате.

Примеры

Пример #1 Пример использования imagecreatefromstring()

<?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);
    imagedestroy($im);
}
else {
    echo 'Произошла ошибка.';
}
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagecreatefromstring()

Смотрите также

  • imagecreatefromjpeg() - Создает новое изображение из файла или URL
  • imagecreatefrompng() - Создает новое изображение из файла или URL
  • imagecreatefromgif() - Создает новое изображение из файла или URL
  • imagecreatetruecolor() - Создание нового полноцветного изображения


Создает новое изображение из файла или URL

  • « imagecreatefromstring
  • imagecreatefromwebp »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создает новое изображение из файла или URL

imagecreatefromwbmp

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagecreatefromwbmp — Создает новое изображение из файла или URL

Описание

imagecreatefromwbmp ( string $filename ) : resource

imagecreatefromwbmp() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

Замечание: Изображения WBMP представляют собой Wireless Bitmaps, а не Windows Bitmaps. Последние могут быть загружены с помощью imagecreatefrombmp().

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.

Список параметров

filename

Путь к изображению WBMP.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример обработки ошибки при загрузке WBMP

<?php
function LoadWBMP($imgname)
{
    /* Пытаемся открыть */
    $im = @imagecreatefromwbmp($imgname);

    /* Если не удалось */
    if(!$im)
    {
        /* Создаем пустое изображение */
        $im  = imagecreatetruecolor(150, 30);
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);

        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

        /* Выводим сообщение об ошибке */
        imagestring($im, 1, 5, 5, 'Ошибка загрузки ' . $imgname, $tc);
    }

    return $im;
}

header('Content-Type: image/vnd.wap.wbmp');

$img = LoadWBMP('bogus.image');

imagewbmp($img);
imagedestroy($img);
?>


Создает новое изображение из файла или URL

  • « imagecreatefromwbmp
  • imagecreatefromxbm »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создает новое изображение из файла или URL

imagecreatefromwebp

(PHP 5 >= 5.4.0, PHP 7)

imagecreatefromwebp — Создает новое изображение из файла или URL

Описание

imagecreatefromwebp ( string $filename ) : resource

imagecreatefromwebp() возвращает идентификатор изображения, представляющий изображение, полученное из переданного имени файла.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.

Список параметров

filename

Путь к WebP-изображению.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Конвертирование WebP-изображения к jpeg-изображению, используя imagecreatefromwebp()

<?php
// Загрузить WebP-файл
$im = imagecreatefromwebp('./example.webp');

// Сконвертировать его в jpeg-файл со 100%-качеством
imagejpeg($im, './example.jpeg', 100);
imagedestroy($im);
?>


Создает новое изображение из файла или URL

  • « imagecreatefromwebp
  • imagecreatefromxpm »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создает новое изображение из файла или URL

imagecreatefromxbm

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagecreatefromxbm — Создает новое изображение из файла или URL

Описание

imagecreatefromxbm ( string $filename ) : resource

imagecreatefromxbm() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.

Список параметров

filename

Путь к изображению XBM.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Преобразование XBM изображения в png, используя imagecreatefromxbm()

<?php
// загрузка xbm файла
$xbm = imagecreatefromxbm('./example.xbm');

// Преобразование в png файл
imagepng($xbm, './example.png');
imagedestroy($xbm);
?>


Создает новое изображение из файла или URL

  • « imagecreatefromxbm
  • imagecreatetruecolor »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создает новое изображение из файла или URL

imagecreatefromxpm

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagecreatefromxpm — Создает новое изображение из файла или URL

Описание

imagecreatefromxpm ( string $filename ) : resource

imagecreatefromxpm() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.

Список параметров

filename

Путь к изображению XPM.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.19 | imagecreatefromxpm() доступна на Windows.

Примеры

Пример #1 Создание изображения, используя imagecreatefromxpm()

<?php
// Проверка наличия XPM поддержки
if(!(imagetypes() & IMG_XPM))
{
    die('Поддержка xpm не найдена!');
}

// Создание изображения
$xpm = imagecreatefromxpm('./example.xpm');

// Различные операции с изображением

// PHP не поддерживает запись xpm изображений
// поэтому мы сохраним изображение, как
// jpeg файл со 100% качеством
imagejpeg($xpm, './example.jpg', 100);
imagedestroy($xpm);
?>


Создание нового полноцветного изображения

  • « imagecreatefromxpm
  • imagecrop »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создание нового полноцветного изображения

imagecreatetruecolor

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecreatetruecolor — Создание нового полноцветного изображения

Описание

imagecreatetruecolor ( int $width , int $height ) : resource

imagecreatetruecolor() возвращает идентификатор изображения, представляющий черное изображение заданного размера.

Список параметров

width

Ширина изображения.

height

Высота изображения.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Создание нового потока GD изображения и вывод картинки.

<?php
header ('Content-Type: image/png');
$im = @imagecreatetruecolor(120, 20)
      or die('Невозможно инициализировать GD поток');
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Простая Текстовая Строка', $text_color);
imagepng($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Создание нового потока GD изображения и вывод картинки.

Смотрите также

  • imagedestroy() - Уничтожение изображения
  • imagecreate() - Создание нового палитрового изображения


Обрезать изображение до заданного прямоугольника

  • « imagecreatetruecolor
  • imagecropauto »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Обрезать изображение до заданного прямоугольника

imagecrop

(PHP 5 >= 5.5.0, PHP 7)

imagecrop — Обрезать изображение до заданного прямоугольника

Описание

imagecrop ( resource $image , array $rect ) : resource

Обрезает изображение до заданной прямоугольной области и возвращает полученное изображение. Заданный параметр image не изменяется.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

rect

Обрезанный прямоугольник в виде массива (array) с ключами x, y, width и height.

Возвращаемые значения

Возвращает обрезанный ресурс изображения в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagecrop()

В этом примере показано, как обрезать изображение до квадратной области.

<?php
$im = imagecreatefrompng('example.png');
$size = min(imagesx($im), imagesy($im));
$im2 = imagecrop($im, ['x' => 0, 'y' => 0, 'width' => $size, 'height' => $size]);
if ($im2 !== FALSE) {
    imagepng($im2, 'example-cropped.png');
    imagedestroy($im2);
}
imagedestroy($im);
?>

Смотрите также

  • imagecropauto() - Crop an image automatically using one of the available modes


Crop an image automatically using one of the available modes

  • « imagecrop
  • imagedashedline »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Crop an image automatically using one of the available modes

imagecropauto

(PHP 5 >= 5.5.0, PHP 7)

imagecropauto — Crop an image automatically using one of the available modes

Описание

imagecropauto ( resource $image [, int $mode = IMG_CROP_DEFAULT [, float $threshold = .5 [, int $color = -1 ]]] ) : resource

Automatically crops an image according to the given mode.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

mode

One of the following constants:

IMG_CROP_DEFAULT
Same as IMG_CROP_TRANSPARENT. Before PHP 7.4.0, the bundled libgd fell back to IMG_CROP_SIDES, if the image had no transparent color.
IMG_CROP_TRANSPARENT
Crops out a transparent background.
IMG_CROP_BLACK
Crops out a black background.
IMG_CROP_WHITE
Crops out a white background.
IMG_CROP_SIDES
Uses the 4 corners of the image to attempt to detect the background to crop.
IMG_CROP_THRESHOLD
Crops an image using the given threshold and color.
threshold

Specifies the tolerance in percent to be used while comparing the image color and the color to crop. The method used to calculate the color difference is based on the color distance in the RGB(a) cube.

Used only in IMG_CROP_THRESHOLD mode.

Замечание: Before PHP 7.4.0, the bundled libgd used a somewhat different algorithm, so the same threshold yielded different results for system and bundled libgd.

color

Either an RGB color value or a palette index.

Used only in IMG_CROP_THRESHOLD mode.

Возвращаемые значения

Returns a cropped image resource on success или FALSE в случае возникновения ошибки. If the complete image was cropped, imagecrop() returns FALSE.

Список изменений

Версия | Описание
7.4.0 | The behavior of imagecropauto() in the bundled libgd has been synced with that of system libgd: IMG_CROP_DEFAULT no longer falls back to IMG_CROP_SIDES and threshold-cropping now uses the same algorithm as system libgd.
7.4.0 | The default value of mode has been changed to IMG_CROP_AUTO. Formerly, the default value has been -1 which corresponds to IMG_CROP_DEFAULT, but passing -1 is now deprecated.

Примеры

Пример #1 Proper handling of auto-cropping

As noted in the return value section, imagecropauto() returns FALSE if the whole image was cropped. In this example we have an image resource $im which should be automatically cropped only if there is something to crop; otherwise we want to proceed with the original image.

<?php
$cropped = imagecropauto($im, IMG_CROP_DEFAULT);
if ($cropped !== false) { // in case a new image resource was returned
    imagedestroy($im);    // we destroy the original image
    $im = $cropped;       // and assign the cropped image to $im
}
?>

Смотрите также

  • imagecrop() - Обрезать изображение до заданного прямоугольника


Рисование пунктирной линии

  • « imagecropauto
  • imagedestroy »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование пунктирной линии

imagedashedline

(PHP 4, PHP 5, PHP 7)

imagedashedline — Рисование пунктирной линии

Описание

imagedashedline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color ) : bool

Функция устарела. Используйте сочетание функций imagesetstyle() и imageline().

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x1

Верхняя левая x-координата.

y1

Верхняя левая y-координата. 0, 0 - верхний левый угол изображения.

x2

Нижняя правая х-координата.

y2

Нижняя правая у-координата.

color

Цвет линии. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagedashedline()

<?php
// Создание изображения 100x100
$im = imagecreatetruecolor(100, 100);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);

// Рисование вертикальной пунктирной линии
imagedashedline($im, 50, 25, 50, 75, $white);

// Сохранение изображения
imagepng($im, './dashedline.png');
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagedashedline()

Пример #2 Альтернатива функции imagedashedline()

<?php
// Создание изображения 100x100
$im = imagecreatetruecolor(100, 100);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);

// Определение стиля: Первые 4 пиксела белые, следующие 4 - прозрачные.
// Это создает эффект пунктира.
$style = Array(
                $white,
                $white,
                $white,
                $white,
                IMG_COLOR_TRANSPARENT,
                IMG_COLOR_TRANSPARENT,
                IMG_COLOR_TRANSPARENT,
                IMG_COLOR_TRANSPARENT
                );

imagesetstyle($im, $style);

// Рисование пунктирной линии
imageline($im, 50, 25, 50, 75, IMG_COLOR_STYLED);

// Сохранение изображения
imagepng($im, './imageline.png');
imagedestroy($im);
?>

Смотрите также

  • imagesetstyle() - Установка стиля рисования линий
  • imageline() - Рисование линии


Уничтожение изображения

  • « imagedashedline
  • imageellipse »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Уничтожение изображения

imagedestroy

(PHP 4, PHP 5, PHP 7)

imagedestroy — Уничтожение изображения

Описание

imagedestroy ( resource $image ) : bool

imagedestroy() освобождает память, занятую изображением image.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagedestroy()

<?php
// Создание изображения 100 x 100
$im = imagecreatetruecolor(100, 100);

// изменение или сохранение изображения

// освобождение памяти
imagedestroy($im);
?>


Рисование эллипса

  • « imagedestroy
  • imagefill »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование эллипса

imageellipse

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imageellipse — Рисование эллипса

Описание

imageellipse ( resource $image , int $cx , int $cy , int $width , int $height , int $color ) : bool

Рисует эллипс с центром в заданных координатах.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

cx

x-координата центра.

cy

y-координата центра.

width

Ширина эллипса.

height

Высота эллипса.

color

Цвет эллипса. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imageellipse()

<?php

// Создание пустого изображения.
$image = imagecreatetruecolor(400, 300);

// Выбор цвета фона.
$bg = imagecolorallocate($image, 0, 0, 0);

// Закрашивание фона выбранным цветом.
imagefill($image, 0, 0, $bg);

// Выбор цвета эллипса.
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// Рисование эллипса.
imageellipse($image, 200, 150, 300, 200, $col_ellipse);

// Вывод изображения.
header("Content-type: image/png");
imagepng($image);

?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imageellipse()

Примечания

Замечание:

imageellipse() игнорирует imagesetthickness().

Смотрите также

  • imagefilledellipse() - Рисование закрашенного эллипса
  • imagearc() - Рисование дуги


Заливка

  • « imageellipse
  • imagefilledarc »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Заливка

imagefill

(PHP 4, PHP 5, PHP 7)

imagefill — Заливка

Описание

imagefill ( resource $image , int $x , int $y , int $color ) : bool

Производит заливку, начиная с заданных координат (верхний левый угол имеет координаты 0, 0), цветом color в изображении image.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x

x-координата начала.

y

y-координата начала.

color

Цвет заливки. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagefill()

<?php

$im = imagecreatetruecolor(100, 100);

// установка красного фона
$red = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $red);

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagefill()

Смотрите также

  • imagecolorallocate() - Создание цвета для изображения


Рисование и заливка дуги

  • « imagefill
  • imagefilledellipse »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование и заливка дуги

imagefilledarc

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagefilledarc — Рисование и заливка дуги

Описание

imagefilledarc ( resource $image , int $cx , int $cy , int $width , int $height , int $start , int $end , int $color , int $style ) : bool

Рисует дугу с центром в заданных координатах изображения image.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

cx

x-координата центра.

cy

y-координата центра.

width

Ширина дуги.

height

Высота дуги.

start

Угол начала дуги в градусах.

end

Угол окончания дуги в градусах. 0° соответствует положению 3-часа. Дуга рисуется по часовой стрелке.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

style

Битовое или следующих констант:

  1. IMG_ARC_PIE
  2. IMG_ARC_CHORD
  3. IMG_ARC_NOFILL
  4. IMG_ARC_EDGED
IMG_ARC_PIE и IMG_ARC_CHORD взаимно исключающие; IMG_ARC_CHORD просто соединяет начало и конец дуги прямой линией; IMG_ARC_PIE рисует между ними часть окружности. IMG_ARC_NOFILL означает, что должны быть только границы, заливка не требуется. IMG_ARC_EDGED, если используется вместе с IMG_ARC_NOFILL, означает, что начало и конец дуги соединяются с центром - это хороший способ (лучше чем заливка) получить сектор (кусок пирога).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Создание трехмерного пирога

<?php

// создание изображения
$image = imagecreatetruecolor(100, 100);

// определение цветов
$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);

// делаем эффект 3Д
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);

// вывод изображения
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера : Создание трехмерного пирога


Рисование закрашенного эллипса

  • « imagefilledarc
  • imagefilledpolygon »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование закрашенного эллипса

imagefilledellipse

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagefilledellipse — Рисование закрашенного эллипса

Описание

imagefilledellipse ( resource $image , int $cx , int $cy , int $width , int $height , int $color ) : bool

Рисует эллипс с центром в заданных координатах изображения image.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

cx

x-координата центра.

cy

y-координата центра.

width

Ширина эллипса.

height

Высота эллипса.

color

Цвет заливки. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagefilledellipse()

<?php

// создание пустого изображения
$image = imagecreatetruecolor(400, 300);

// заливка фона
$bg = imagecolorallocate($image, 0, 0, 0);

// выбор цвета для эллипса
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// рисование белого эллипса
imagefilledellipse($image, 200, 150, 300, 200, $col_ellipse);

// вывод картинки
header("Content-type: image/png");
imagepng($image);

?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagefilledellipse()

Примечания

Замечание:

imagefilledellipse() игнорирует imagesetthickness().

Смотрите также

  • imageellipse() - Рисование эллипса
  • imagefilledarc() - Рисование и заливка дуги


Рисование закрашенного многоугольника

  • « imagefilledellipse
  • imagefilledrectangle »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование закрашенного многоугольника

imagefilledpolygon

(PHP 4, PHP 5, PHP 7)

imagefilledpolygon — Рисование закрашенного многоугольника

Описание

imagefilledpolygon ( resource $image , array $points , int $num_points , int $color ) : bool

imagefilledpolygon() создает закрашенный многоугольник в заданном изображении image.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

points

Массив, содержащий x и y координаты последовательных вершин многоугольника.

num_points

Общее число точек (вершин), должно быть не меньше 3.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagefilledpolygon()

<?php
// задание массива точек для многоугольника
$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)
            );

// создание изображения
$image = imagecreatetruecolor(250, 250);

// определение цветов
$bg   = imagecolorallocate($image, 0, 0, 0);
$blue = imagecolorallocate($image, 0, 0, 255);

// заливка фона
imagefilledrectangle($image, 0, 0, 249, 249, $bg);

// рисование многоугольника
imagefilledpolygon($image, $values, 6, $blue);

// вывод изображения
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagefilledpolygon()

Смотрите также

  • imagepolygon() - Рисование многоугольника


Рисование закрашенного прямоугольника

  • « imagefilledpolygon
  • imagefilltoborder »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование закрашенного прямоугольника

imagefilledrectangle

(PHP 4, PHP 5, PHP 7)

imagefilledrectangle — Рисование закрашенного прямоугольника

Описание

imagefilledrectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color ) : bool

Создает прямоугольник закрашенный цветом color в заданном изображении image. Начальная точка 1, конечная 2. 0,0 - левый верхний угол изображения.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x1

x-координата точки 1.

y1

y-координата точки 1.

x2

x-координата точки 2.

y2

y-координата точки 2.

color

Цвет заливки. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagefilledrectangle()

<?php
// Создание изображения 55x30
$im = imagecreatetruecolor(55, 30);
$white = imagecolorallocate($im, 255, 255, 255);

// Рисование прямоугольника
imagefilledrectangle($im, 4, 4, 50, 25, $white);

// Сохранение изображения
imagepng($im, './imagefilledrectangle.png');
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagefilledrectangle()


Заливка цветом

  • « imagefilledrectangle
  • imagefilter »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Заливка цветом

imagefilltoborder

(PHP 4, PHP 5, PHP 7)

imagefilltoborder — Заливка цветом

Описание

imagefilltoborder ( resource $image , int $x , int $y , int $border , int $color ) : bool

imagefilltoborder() производит заливку области, ограниченной цветом border. Начальная координата x, y (левый верхний угол имеет координаты 0, 0), а область закрашивается цветом color.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x

x-координата начала.

y

y-координата начала.

border

Цвет границы заливки. Идентификатор цвета, созданный функцией imagecolorallocate().

color

Цвет заливки. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Закрашивание эллипса

<?php
// создание изображения, установка белого фона
$im = imagecreatetruecolor(100, 100);
imagefilledrectangle($im, 0, 0, 100, 100, imagecolorallocate($im, 255, 255, 255));

// рисование эллипса закрашенного черным цветом
imageellipse($im, 50, 50, 50, 50, imagecolorallocate($im, 0, 0, 0));

// установка цвета границы заливки
$border = imagecolorallocate($im, 0, 0, 0);
$fill = imagecolorallocate($im, 255, 0, 0);

// заливка области
imagefilltoborder($im, 50, 50, $border, $fill);

// вывод и освобождение памяти
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Закрашивание эллипса


Применяет фильтр к изображению

  • « imagefilltoborder
  • imageflip »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Применяет фильтр к изображению

imagefilter

(PHP 5, PHP 7)

imagefilter — Применяет фильтр к изображению

Описание

imagefilter ( resource $image , int $filtertype [, int $arg1 [, int $arg2 [, int $arg3 [, int $arg4 ]]]] ) : bool

imagefilter() применяет заданный фильтр filtertype к изображению image.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

filtertype

filtertype может быть одним из следующих:

  • IMG_FILTER_NEGATE: Инвертирует все цвета изображения.
  • IMG_FILTER_GRAYSCALE: Преобразует цвета изображения в градации серого путем преобразования компонент красного, зеленого и синего в их сумму с учетом весов, таких же как при вычислении яркости (Y') по REC.601. Альфа-канал сохраняется. Для изображений, использующих палитру, результат может отличаться в виду ограничений, накладываемых палитрой.
  • IMG_FILTER_BRIGHTNESS: Изменяет яркость изображения. Используйте аргумент arg1 для задания уровня яркости. Диапазон яркостей от -255 до 255.
  • IMG_FILTER_CONTRAST: Изменяет контрастность изображения. Используйте аргумент arg1 для задания уровня контрастности.
  • IMG_FILTER_COLORIZE: То же, что и IMG_FILTER_GRAYSCALE, за исключением того, что можно задать цвет. Используйте аргументы arg1, arg2 и arg3 для указания каналов red, green, blue, а arg4 для alpha канала. Диапазон для каждого канала цвета от 0 до 255.
  • IMG_FILTER_EDGEDETECT: Использует определение границ для их подсветки.
  • IMG_FILTER_EMBOSS: Добавляет рельеф.
  • IMG_FILTER_GAUSSIAN_BLUR: Размывает изображение по методу Гаусса.
  • IMG_FILTER_SELECTIVE_BLUR: Размывает изображение.
  • IMG_FILTER_MEAN_REMOVAL: Использует усреднение для достижения эффекта "эскиза".
  • IMG_FILTER_SMOOTH: Делает границы более плавными, а изображение менее четким. Используйте аргумент arg1 для задания уровня гладкости.
  • IMG_FILTER_PIXELATE: Применяет эффект пикселирования. Используйте аргумент arg1 для задания размера блока и аргумент arg2 для задания режима эффекта пикселирования.
  • IMG_FILTER_SCATTER: Применяет эффект рассеивания к изображению, используйте arg1 и arg2 для определения силы эффекта и дополнительно arg3 для применения только к выбранным цветам пикселей.

arg1

  • IMG_FILTER_BRIGHTNESS: Уровень яркости.
  • IMG_FILTER_CONTRAST: Уровень контрастности.
  • IMG_FILTER_COLORIZE: Значение красного компонента цвета.
  • IMG_FILTER_SMOOTH: Уровень сглаживания.
  • IMG_FILTER_PIXELATE: Размер блока в пикселах.
  • IMG_FILTER_SCATTER: Уровень уменьшения эффекта. Не должен быть больше или равен уровню добавления эффекта, установленному с помощью arg2.

arg2

  • IMG_FILTER_COLORIZE: Значение зеленого компонента цвета.
  • IMG_FILTER_PIXELATE: Использовать усовершенствованный эффект пикселирования или нет (по умолчанию FALSE).
  • IMG_FILTER_SCATTER: Уровень добавления эффекта.

arg3

  • IMG_FILTER_COLORIZE: Значение синего компонента цвета.
  • IMG_FILTER_SCATTER: Необязательный массив значений индексации цвета для применения эффекта.

arg4

  • IMG_FILTER_COLORIZE: Альфа канал, значение между 0 и 127. 0 означает непрозрачность, 127 соответствует абсолютной прозрачности.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.4.0 | Добавлена поддежка рассеивания (IMG_FILTER_SCATTER).
5.3.0 | Добавлена поддержка пикселирования (IMGFILTER_PIXELATE).
5.2.5 | Добавлена поддержка прозрачности IMG_FILTER_COLORIZE.

Примеры

Пример #1 Пример использования imagefilter() с фильтром grayscale

<?php
$im = imagecreatefrompng('dave.png');

if($im && imagefilter($im, IMG_FILTER_GRAYSCALE))
{
    echo 'Изображение преобразовано к градациям серого.';

    imagepng($im, 'dave.png');
}
else
{
    echo 'Преобразование не удалось.';
}

imagedestroy($im);
?>

Пример #2 Пример использования imagefilter() с фильтром яркости

<?php
$im = imagecreatefrompng('sean.png');

if($im && imagefilter($im, IMG_FILTER_BRIGHTNESS, 20))
{
    echo 'Яркость изображения изменена.';

    imagepng($im, 'sean.png');
    imagedestroy($im);
}
else
{
    echo 'Изменить яркость не удалось.';
}
?>

Пример #3 Пример использования imagefilter() с фильтром colorize

<?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 'Изображение преобразовано к оттенкам зеленого.';

    imagepng($im, 'philip.png');
    imagedestroy($im);
}
else
{
    echo 'Преобразование не удалось.';
}
?>

Пример #4 Пример использования imagefilter() с фильтром negate

<?php
// Определим нашу функцию, которую можно использовать в PHP
// без imagefilter()
function negate($im)
{
    if(function_exists('imagefilter'))
    {
        return imagefilter($im, IMG_FILTER_NEGATE);
    }

    for($x = 0; $x < imagesx($im); ++$x)
    {
        for($y = 0; $y < imagesy($im); ++$y)
        {
            $index = imagecolorat($im, $x, $y);
            $rgb = imagecolorsforindex($index);
            $color = imagecolorallocate($im, 255 - $rgb['red'], 255 - $rgb['green'], 255 - $rgb['blue']);

            imagesetpixel($im, $x, $y, $color);
        }
    }

    return(true);
}

$im = imagecreatefromjpeg('kalle.jpg');

if($im && negate($im))
{
    echo 'Изображение инвертировано успешно.';

    imagejpeg($im, 'kalle.jpg', 100);
    imagedestroy($im);
}
else
{
    echo 'Инвертировать изображение не удалось.';
}
?>

Пример #5 Пример использования imagefilter() с фильтром pixelate

<?php
// загрузка PHP логотипа, нам нужно 2 штуки
// для сравнения
$logo1 = imagecreatefrompng('./php.png');
$logo2 = imagecreatefrompng('./php.png');

// подопытный экземпляр
$output = imagecreatetruecolor(imagesx($logo1) * 2, imagesy($logo1));

// Применение пикселирования к каждому изображению с размером блока в 3 пиксела
imagefilter($logo1, IMG_FILTER_PIXELATE, 3);
imagefilter($logo2, IMG_FILTER_PIXELATE, 3, true);

// Совмещение различий в выходном изображении
imagecopy($output, $logo1, 0, 0, 0, 0, imagesx($logo1) - 1, imagesy($logo1) - 1);
imagecopy($output, $logo2, imagesx($logo2), 0, 0, 0, imagesx($logo2) - 1, imagesy($logo2) - 1);
imagedestroy($logo1);
imagedestroy($logo2);

// Вывод различий
header('Content-Type: image/png');
imagepng($output);
imagedestroy($output);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagefilter() pixelate

Пример #6 Пример использования imagefilter() с фильтром scatter

<?php
// Загрузка изображения
$logo = imagecreatefrompng('./php.png');

// Применение очень мягкого эффекта рассеивания к изображению
imagefilter($logo, IMG_FILTER_SCATTER, 3, 5);

// Вывов изображения с эффектом рассеивания
header('Content-Type: image/png');
imagepng($logo);
imagedestroy($logo);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagefilter() scatter

Примечания

Замечание: Результат IMG_FILTER_SCATTER всегда случайный.

Смотрите также

  • imageconvolution() - Наложение искривляющей матрицы 3х3, используя коэффициент и смещение


Flips an image using a given mode

  • « imagefilter
  • imagefontheight »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Flips an image using a given mode

imageflip

(PHP 5 >= 5.5.0, PHP 7)

imageflip — Flips an image using a given mode

Описание

imageflip ( resource $image , int $mode ) : bool

Flips the image image using the given mode.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

mode

Flip mode, this can be one of the IMG_FLIP_* constants:

Constant | Meaning
IMG_FLIP_HORIZONTAL | Flips the image horizontally.
IMG_FLIP_VERTICAL | Flips the image vertically.
IMG_FLIP_BOTH | Flips the image both horizontally and vertically.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Flips an image vertically

This example uses the IMG_FLIP_VERTICAL constant.

<?php
// File
$filename = 'phplogo.png';

// Content type
header('Content-type: image/png');

// Load
$im = imagecreatefrompng($filename);

// Flip it vertically
imageflip($im, IMG_FLIP_VERTICAL);

// Output
imagejpeg($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Output of example: Vertically flipped image

Пример #2 Flips the image horizontally

This example uses the IMG_FLIP_HORIZONTAL constant.

<?php
// File
$filename = 'phplogo.png';

// Content type
header('Content-type: image/png');

// Load
$im = imagecreatefrompng($filename);

// Flip it horizontally
imageflip($im, IMG_FLIP_HORIZONTAL);

// Output
imagejpeg($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Output of example: Horizontally flipped image


Получение высоты шрифта

  • « imageflip
  • imagefontwidth »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение высоты шрифта

imagefontheight

(PHP 4, PHP 5, PHP 7)

imagefontheight — Получение высоты шрифта

Описание

imagefontheight ( int $font ) : int

Возвращает высоту в пикселах символа заданного шрифта.

Список параметров

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или любому из ваших собственных идентификаторов шрифтов, зарегистрированных с помощью imageloadfont().

Возвращаемые значения

Возвращает высоту в пикселах.

Примеры

Пример #1 Пример использования imagefontheight() на встроенных шрифтах

<?php
echo 'Font height: ' . imagefontheight(4);
?>

Результатом выполнения данного примера будет что-то подобное:

Font height: 16

Пример #2 Использование imagefontheight() вместе с imageloadfont()

<?php
// загрузка .gdf шрифта
$font = imageloadfont('anonymous.gdf');

echo 'Высота шрифта: ' . imagefontheight($font);
?>

Результатом выполнения данного примера будет что-то подобное:

Font height: 43

Смотрите также

  • imagefontwidth() - Получение ширины шрифта
  • imageloadfont() - Загрузка шрифта


Получение ширины шрифта

  • « imagefontheight
  • imageftbbox »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение ширины шрифта

imagefontwidth

(PHP 4, PHP 5, PHP 7)

imagefontwidth — Получение ширины шрифта

Описание

imagefontwidth ( int $font ) : int

Возвращает ширину символа шрифта.

Список параметров

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или любому из ваших собственных идентификаторов шрифтов, зарегистрированных с помощью imageloadfont().

Возвращаемые значения

Возвращает ширину в пикселах

Примеры

Пример #1 Использование imagefontwidth() на встроенных шрифтах

<?php
echo 'Ширина шрифта: ' . imagefontwidth(4);
?>

Результатом выполнения данного примера будет что-то подобное:

Font width: 8

Пример #2 Использование imagefontwidth() вместе с imageloadfont()

<?php
// загрузка .gdf шрифта
$font = imageloadfont('anonymous.gdf');

echo 'Ширина шрифта: ' . imagefontwidth($font);
?>

Результатом выполнения данного примера будет что-то подобное:

Font width: 23

Смотрите также

  • imagefontheight() - Получение высоты шрифта
  • imageloadfont() - Загрузка шрифта


Определение границ текста выводимого шрифтом freetype2

  • « imagefontwidth
  • imagefttext »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Определение границ текста выводимого шрифтом freetype2

imageftbbox

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imageftbbox — Определение границ текста выводимого шрифтом freetype2

Описание

imageftbbox ( float $size , float $angle , string $fontfile , string $text [, array $extrainfo ] ) : array

Эта функция рассчитывает и возвращает рамку (границы) FreeType текста.

Замечание:

imageftbbox() - это расширенный вариант imagettfbbox(), который дополнительно поддерживает extrainfo.

Список параметров

size

Размер шрифта в типографских пунктах.

angle

Угол в градусах в котором text должен быть измерен.

fontfile

Имя файла TrueType шрифта (может быть URL). В зависимости от версии GD библиотеки функция может попытаться найти файлы, не начинающиеся с '/' путем добавления '.ttf' в конец имени файла и поиска по адресу заданному в библиотеке.

text

Измеряемая строка.

extrainfo

Возможные ключи массива extrainfo
Ключ | Тип | Значение
linespacing | float | Определяет рисование подчеркиваний

Возвращаемые значения

imageftbbox() возвращает массив из 8 элементов, представляющих четыре точки в углах рамки обрамляющей текст:

0 | нижний левый угол, X координата
1 | нижний левый угол, Y координата
2 | нижний правый угол, X координата
3 | нижний правый угол, Y координата
4 | верхний правый угол, X координата
5 | верхний правый угол, Y координата
6 | верхний левый угол, X координата
7 | верхний левый угол, Y координата

Точки расположены относительно текста text и не зависят от угла angle, таким образом "верхний левый" означает верхняя левая точка текста, если расположить текст горизонтально.

Примеры

Пример #1 Пример использования imageftbbox()

<?php
// Создание изображения 300x150
$im = imagecreatetruecolor(300, 150);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// установка белого фона
imagefilledrectangle($im, 0, 0, 299, 299, $white);

// путь к файлу шрифта
$font = './arial.ttf';

// создаем рамку вокруг текста
$bbox = imageftbbox(10, 0, $font, 'Группа документирования PHP');

// наши координаты для X и Y
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 5;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

imagefttext($im, 10, 0, $x, $y, $black, $font, 'Группа документирования PHP');

// вывод в броузер
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомплирован с поддержкой freetype (--with-freetype-dir=DIR )

Смотрите также

  • imagefttext() - Нанесение текста на изображение, используя шрифты FreeType 2
  • imagettfbbox() - Получение параметров рамки обрамляющей текст написанный TrueType шрифтом


Нанесение текста на изображение, используя шрифты FreeType 2

  • « imageftbbox
  • imagegammacorrect »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Нанесение текста на изображение, используя шрифты FreeType 2

imagefttext

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagefttext — Нанесение текста на изображение, используя шрифты FreeType 2

Описание

imagefttext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text [, array $extrainfo ] ) : array

Замечание:

imagefttext() - это расширенный вариант imagettftext(), который дополнительно поддерживает extrainfo.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

size

Размер шрифта в пунктах.

angle

Угол в градусах, 0 градусов означает расположение текста слева направо. Положительные значения означают поворот текста против часовой стрелки. Например, текст повернутый на 90 градусов нужно будет читать снизу вверх.

x

Координаты x и y определяют отправную точку для первого символа текста (конкретно, левый нижний угол символа). Здесь есть отличие от функции imagestring(), в которой x и y определяют верхний левый угол первого символа. Например, "верхний левый" имеет координаты 0,0.

y

y-координата. Это позиция базовой линии шрифта, в общем случае она не совпадает с низшей точкой в символе.

color

Индекс требуемого цвета текста, см. imagecolorexact().

fontfile

Путь к TrueType шрифту, который требуется использовать.

В зависимости от версии GD библиотеки если fontfile не начинается с /, то в конец названия файла будет добавлено расширение .ttf, и библиотека будет пытаться найти этот файл по адресу, определенному в настройках библиотеки.

При использовании GD библиотеки версий младше 2.0.18 символ space (пробел), как и точка с запятой, использовался в качестве "разделителя путей" для различных файлов шрифтов. При использовании этой возможности будет выдаваться предупреждение: Warning: Could not find/open font. Решением такой проблемы в этих версиях может быть только исключение пробелов из путей файлов.

В большинстве случаев размещение файлов шрифтов в директории скрипта решает подобные проблемы включения файлов.

<?php
// Задание переменной окружения для GD
putenv('GDFONTPATH=' . realpath('.'));

// Имя шрифта для использования (обратите внимание на отсутствие расширения .ttf)
$font = 'SomeFont';
?>

text

Текст для вставки в изображение.

extrainfo

Возможные значения массива extrainfo
Ключ | Тип | Значение
linespacing | float | Определяет рисование нижнего подчеркивания

Возвращаемые значения

Эта функция возвращает массив, определяющий четыре точки рамки текста. Текст внутри этих границ начинается с левого нижнего угла и поворачивается против часовой стрелки:

0 | нижняя левая x-координата
1 | нижняя левая y-координата
2 | нижняя правая x-координата
3 | нижняя правая y-координата
4 | верхняя правая x-координата
5 | верхняя правая y-координата
6 | верхняя левая x-координата
7 | верхняя левая y-координата

Примеры

Пример #1 Пример использования imagefttext()

<?php
// Создание изображения 300x100
$im = imagecreatetruecolor(300, 100);
$red = imagecolorallocate($im, 0xFF, 0x00, 0x00);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

// Сделаем красный фон
imagefilledrectangle($im, 0, 0, 299, 99, $red);

// Путь к ttf файлу шрифта
$font_file = './arial.ttf';

// Рисуем текст 'PHP Manual' шрифтом 13го размера
imagefttext($im, 13, 0, 105, 55, $black, $font_file, 'PHP Manual');

// Вывод изображения
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомплирован с поддержкой freetype (--with-freetype-dir=DIR )

Смотрите также

  • imageftbbox() - Определение границ текста выводимого шрифтом freetype2
  • imagettftext() - Рисование текста на изображении шрифтом TrueType


Применение гамма коррекции к GD изображению

  • « imagefttext
  • imagegd2 »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Применение гамма коррекции к GD изображению

imagegammacorrect

(PHP 4, PHP 5, PHP 7)

imagegammacorrect — Применение гамма коррекции к GD изображению

Описание

imagegammacorrect ( resource $image , float $inputgamma , float $outputgamma ) : bool

Применяет гамма коррекцию к изображению image согласно заданным входным и выходным настройкам.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

inputgamma

Входная настройка гаммы.

outputgamma

Выходная настройка гаммы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagegammacorrect()

<?php
// Создание изображения
$im = imagecreatefromgif('php.gif');

// Корректировка гаммы, на выходе 1.537
imagegammacorrect($im, 1.0, 1.537);

// Сохранение изображения и освобождение памяти
imagegif($im, './php_gamma_corrected.gif');
imagedestroy($im);
?>


Вывод GD2 изображения в браузер или файл

  • « imagegammacorrect
  • imagegd »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Вывод GD2 изображения в браузер или файл

imagegd2

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagegd2 — Вывод GD2 изображения в браузер или файл

Описание

imagegd2 ( resource $image [, mixed $to = NULL [, int $chunk_size = 128 [, int $type = IMG_GD2_RAW ]]] ) : bool

Выводит GD2 изображение в заданный файл to.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

to

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде.

chunk_size

Размер части изображения.

type

Либо IMG_GD2_RAW, либо IMG_GD2_COMPRESSED. По умолчанию IMG_GD2_RAW.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернет TRUE.

Список изменений

Версия | Описание
5.4.0 | Добавлена возможность задавать поток типа resource для to.

Примеры

Пример #1 Вывод GD2 изображения

<?php
// Создание пустого изображения и добавление на него текста
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "Простая Текстовая Строка", $text_color);

// Вывод изображения
imagegd2($im);

// Освобождение памяти
imagedestroy($im);
?>

Пример #2 Сохранение GD2 изображения

<?php
// Создание пустого изображения и добавление на него текста
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "Простая Текстовая Строка", $text_color);

// Сохранение изображения
// Формат файлов GD2 - .gd2, см. http://www.libgd.org/GdFileFormats
imagegd2($im, 'simple.gd2');

// Освобождение памяти
imagedestroy($im);
?>

Примечания

Замечание:

Формат GD2 используется в основном для быстрой загрузки частей изображений. Следует учитывать, что GD2 формат может использоваться только в GD2-совместимых приложениях.

Смотрите также

  • imagegd() - Вывод GD-изображения в браузер или в файл


Вывод GD-изображения в браузер или в файл

  • « imagegd2
  • imagegetclip »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Вывод GD-изображения в браузер или в файл

imagegd

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagegd — Вывод GD-изображения в браузер или в файл

Описание

imagegd ( resource $image [, mixed $to = NULL ] ) : bool

Вывод GD-изображения в to.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

to

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернет TRUE.

Список изменений

Версия | Описание
7.2.0 | Теперь imagegd() позволяет сохранять изображения "truecolor". Раньше они неявно преобразовывались к палитре.
5.4.0 | Добавлена возможность использовать потоки типа resource для to.

Примеры

Пример #1 Вывод GD-изображения

<?php
// Создаём пустое изображение и добавляем текст
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);

// Выводим изображение
imagegd($im);

// Освобождаем память
imagedestroy($im);
?>

Пример #2 Сохранение GD-изображения

<?php
// Создаём пустое изображение и добавляем текст
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);

// Сохраняем GD-изображение
// Расширением GD-изображений является .gd, подробнее на http://www.libgd.org/GdFileFormats
imagegd($im, 'simple.gd');

// Освобождаем память
imagedestroy($im);
?>

Примечания

Замечание:

Формат GD обычно используется для быстрой загрузки деталей изображения. Заметим, что формат GD используется только в GD-совместимых приложениях.

Смотрите также

  • imagegd2() - Вывод GD2 изображения в браузер или файл


Получить отсекающий прямоугольник

  • « imagegd
  • imagegif »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получить отсекающий прямоугольник

imagegetclip

(PHP 7 >= 7.2.0)

imagegetclip — Получить отсекающий прямоугольник

Описание

imagegetclip ( resource $im ) : array

imagegetclip() возвращает текущий отсекающий прямоугольник, т.е. область, за пределами которой не будут отрисовываться пиксели.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Функция возвращает индексированный массив с координатами отсекающим прямоугольником, который имеет следующие записи:

  • x-координата верхнего левого угла
  • y-координата верхнего левого угла
  • x-координата нижнего правого угла
  • y-координата нижнего правого угла

Примеры

Пример #1 Пример использования imagegetclip()

Установка и извлечение отсекающего прямоугольника.

<?php
$im = imagecreate(100, 100);
imagesetclip($im, 10,10, 89,89);
print_r(imagegetclip($im));

Результат выполнения данного примера:

Array
(
    [0] => 10
    [1] => 10
    [2] => 89
    [3] => 89
)

Смотрите также

  • imagesetclip() - Установите прямоугольник ограничения


Выводит изображение в браузер или пишет в файл

  • « imagegetclip
  • imagegrabscreen »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Выводит изображение в браузер или пишет в файл

imagegif

(PHP 4, PHP 5, PHP 7)

imagegif — Выводит изображение в браузер или пишет в файл

Описание

imagegif ( resource $image [, mixed $to = NULL ] ) : bool

imagegif() создает GIF файл to из изображения image. Аргумент image возвращается функциями imagecreate() или imagecreatefrom*.

Файл будет иметь формат GIF87a, если изображение не было сделано прозрачным функцией imagecolortransparent(). В этом случае форматом файла будет GIF89a.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

filename

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернет TRUE.

Список изменений

Версия | Описание
5.4.0 | Добавлена возможность использовать поток типа resource для to.

Примеры

Пример #1 Вывод изображения, используя imagegif()

<?php
// Создание изображения
$im = imagecreatetruecolor(100, 100);

// Создание белого фона
imagefilledrectangle($im, 0, 0, 99, 99, 0xFFFFFF);

// Рисование текста на изображении
imagestring($im, 3, 40, 20, 'GD библиотека', 0xFFBA00);

// Вывод изображения в броузер
header('Content-Type: image/gif');

imagegif($im);
imagedestroy($im);
?>

Пример #2 Преобразование PNG в GIF, используя imagegif()

<?php

// Загрузка PNG
$png = imagecreatefrompng('./php.png');

// Сохранение как GIF
imagegif($png, './php.gif');

// Освобождение памяти
imagedestroy($png);

// готово
echo 'Преобразование PNG в GIF успешно завершено!';
?>

Примечания

Замечание:

Поддержка GIF была исключена из GD библиотеки в версии 1.6 и возвращена обратно в 2.0.28. Эта функция недоступна в промежутке этих версий. За дополнительной информацией обращайтесь на сайт » Проекта GD.

Следующий пример кода позволит вам писать PHP приложения, которые будут проще портироваться на разные системы. В нем используется автоопределение типа GD поддержки доступной в данный момент. Замените строки: header ("Content-Type: image/gif"); imagegif ($im); на более переносимые:

<?php
// Создание нового изображения
$im = imagecreatetruecolor(100, 100);

// Какие-либо операции с изображением

// Обработка вывода
if(function_exists('imagegif'))
{
    // для GIF
    header('Content-Type: image/gif');

    imagegif($im);
}
elseif(function_exists('imagejpeg'))
{
    // для JPEG
    header('Content-Type: image/jpeg');

    imagejpeg($im, NULL, 100);
}
elseif(function_exists('imagepng'))
{
    // для PNG
    header('Content-Type: image/png');

    imagepng($im);
}
elseif(function_exists('imagewbmp'))
{
    // для WBMP
    header('Content-Type: image/vnd.wap.wbmp');

    imagewbmp($im);
}
else
{
    imagedestroy($im);

    die('В этом PHP сервере нет поддержки изображений');
}

// Если не поддерживается ни один из форматов
// освободим память
if($im)
{
    imagedestroy($im);
}
?>

Замечание:

Вы можете использовать функцию imagetypes() для проверки, какие форматы поддерживаются:

<?php
if(imagetypes() & IMG_GIF)
{
    header('Content-Type: image/gif');
    imagegif($im);
}
elseif(imagetypes() & IMG_JPG)
{
    /* ... и т.д. */
}
?>

Смотрите также

  • imagepng() - Вывод PNG изображения в браузер или файл
  • imagewbmp() - Выводит изображение в браузер или пишет в файл
  • imagejpeg() - Выводит изображение в браузер или пишет в файл
  • imagetypes() - Возвращает список типов изображений, поддерживаемых PHP сборкой


Захватывает изображение с экрана

  • « imagegif
  • imagegrabwindow »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Захватывает изображение с экрана

imagegrabscreen

(PHP 5 >= 5.2.2, PHP 7)

imagegrabscreen — Захватывает изображение с экрана

Описание

imagegrabscreen ( void ) : resource

Делает скриншот.

Замечание:

Функция доступна только в Windows.

Возвращаемые значения

Возвращает идентификатор ресурса изображения в случае успеха, FALSE в случае неудачи.

Примеры

Пример #1 Пример использования imagegrabscreen()

В этом примере показано, как сделать снимок экрана и сохранить его, как png картинку.

<?php
$im = imagegrabscreen();
imagepng($im, "myscreenshot.png");
imagedestroy($im);
?>

Смотрите также

  • imagegrabwindow() - Захватывает изображение окна


Захватывает изображение окна

  • « imagegrabscreen
  • imageinterlace »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Захватывает изображение окна

imagegrabwindow

(PHP 5 >= 5.2.2, PHP 7)

imagegrabwindow — Захватывает изображение окна

Описание

imagegrabwindow ( int $window_handle [, int $client_area = 0 ] ) : resource

Делает снимок окна или его клиентской части, используя windows обработчик (свойство HWND COM объекта)

Замечание:

Функция доступна только в Windows.

Список параметров

window_handle

ID окна HWND.

client_area

Включает клиентскую часть окна приложения.

Возвращаемые значения

Возвращает идентификатор ресурса изображения в случае успеха, FALSE в случае неудачи.

Ошибки

E_NOTICE выдается, если window_handle является недопустимым обработчиком окна. E_WARNING выдается, если Windows API устарел.

Примеры

Пример #1 Пример использования imagegrabwindow()

Захват окна (IE например)

<?php
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$im = imagegrabwindow($handle);
$browser->Quit();
imagepng($im, "iesnap.png");
imagedestroy($im);
?>

Захват окна (IE например) с содержимым

<?php
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Navigate("http://www.libgd.org");

/* еще работает? */
while ($browser->Busy) {
    com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, "iesnap.png");
imagedestroy($im);
?>

Смотрите также

  • imagegrabscreen() - Захватывает изображение с экрана


Включение или выключение интерлейсинга

  • « imagegrabwindow
  • imageistruecolor »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Включение или выключение интерлейсинга

imageinterlace

(PHP 4, PHP 5, PHP 7)

imageinterlace — Включение или выключение интерлейсинга

Описание

imageinterlace ( resource $image [, int $interlace = 0 ] ) : int

imageinterlace() переключает состояние бита интерлейсинга.

Если установить бит интерлейсинга, а изображение загрузить, как JPEG, это приведет к созданию прогрессивного JPEG.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

interlace

Если значение отлично от нуля, изображение будет разбито на чередующиеся строки, в противном случае бит интерлейсинга будет установлен в 0.

Возвращаемые значения

Возвращает 1, если бит интерлейсинга установлен, 0 в противном случае.

Примеры

Пример #1 Включение интерлейсинга, используя imageinterlace()

<?php
// Создание нового изображения
$im = imagecreatefromgif('php.gif');

// Включение интерлейсинга
imageinterlace($im, true);

// Сохранение изображения
imagegif($im, './php_interlaced.gif');
imagedestroy($im);
?>


Определяет, является ли изображение полноцветным

  • « imageinterlace
  • imagejpeg »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Определяет, является ли изображение полноцветным

imageistruecolor

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

imageistruecolor — Определяет, является ли изображение полноцветным

Описание

imageistruecolor ( resource $image ) : bool

imageistruecolor() определяет, является ли изображение image полноцветным.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Возвращает TRUE, если image полноцветное, FALSE в противном случае.

Примеры

Пример #1 Простое определение полноцветных изображений с помощью imageistruecolor()

<?php
// $im - изображение

// Проверка, является ли изображение полноцветным
if(!imageistruecolor($im))
{
    // Создание truecolor-изображения
    $tc = imagecreatetruecolor(imagesx($im), imagesy($im));

    // копирование из точки
    imagecopy($tc, $im, 0, 0, 0, 0, imagesx($im), imagesy($im));
    imagedestroy($im);

    $im = $tc;
    $tc = NULL;

    // или используйте imagepalettetotruecolor()
}

// Continue working with image instance
?>

Смотрите также

  • imagecreatetruecolor() - Создание нового полноцветного изображения
  • imagepalettetotruecolor() - Преобразует изображение на основе палитры в настоящий цвет


Выводит изображение в браузер или пишет в файл

  • « imageistruecolor
  • imagelayereffect »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Выводит изображение в браузер или пишет в файл

imagejpeg

(PHP 4, PHP 5, PHP 7)

imagejpeg — Выводит изображение в браузер или пишет в файл

Описание

imagejpeg ( resource $image [, mixed $to = NULL [, int $quality = -1 ]] ) : bool

Функция imagejpeg() создаёт файл JPEG из изображенияimage.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

to

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде.

quality

Необязательный параметр, и может принимать значения в диапазоне от 0 (низкое качество, маленький размер файла) до 100 (высокое качество, большой размер файла). По умолчанию (-1) используется качество IJG (около 75).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернет TRUE.

Список изменений

Версия | Описание
5.4.0 | Добавлена возможность использовать поток типа resource для to.
5.4.0 | Запрещено задавать to пустой строкой для его пропуска..

Примеры

Пример #1 Вывод JPEG-изображения в браузер

<?php
// Создаём пустое изображение и добавляем текст
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Устанавливаем тип содержимого в заголовок, в данном случае image/jpeg
header('Content-Type: image/jpeg');

// Выводим изображение
imagejpeg($im);

// Освобождаем память
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Пример выведет изображение JPEG

Пример #2 Сохранение изображения JPEG в файл

<?php
// Создаём пустое изображение и добавляем текст
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Сохраняем изображение в 'simpletext.jpg'
imagejpeg($im, 'simpletext.jpg');

// Освобождаем память
imagedestroy($im);
?>

Пример #3 Вывод JPEG-изображения с 75% качеством в браузер

<?php
// Создаём пустое изображение и добавляем текст
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Устанавливаем тип содержимого в заголовок, в данном случае image/jpeg
header('Content-Type: image/jpeg');

// Пропускаем параметр filename, используя NULL, а затем устанавливаем качество в 75%
imagejpeg($im, NULL, 75);

// Освобождаем память
imagedestroy($im);
?>

Примечания

Замечание:

Если требуется вывести Progressive JPEG (прогрессивное представление данных), то необходимо использовать функцию imageinterlace() для активации соответствующего режима.

Смотрите также

  • imagepng() - Вывод PNG изображения в браузер или файл
  • imagegif() - Выводит изображение в браузер или пишет в файл
  • imagewbmp() - Выводит изображение в браузер или пишет в файл
  • imageinterlace() - Включение или выключение интерлейсинга
  • imagetypes() - Возвращает список типов изображений, поддерживаемых PHP сборкой


Установка флага альфа сопряжения для использования эффектов наложения изображений

  • « imagejpeg
  • imageline »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Установка флага альфа сопряжения для использования эффектов наложения изображений

imagelayereffect

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

imagelayereffect — Установка флага альфа сопряжения для использования эффектов наложения изображений

Описание

imagelayereffect ( resource $image , int $effect ) : bool

Установка флага альфа сопряжения для использования эффектов наложения изображений.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

effect

Одна из следующих констант:

IMG_EFFECT_REPLACE
Использовать замену пикселов (аналогично передаче TRUE в imagealphablending())
IMG_EFFECT_ALPHABLEND
Использовать обычное сопряжение цветов (аналогично передаче FALSE в imagealphablending())
IMG_EFFECT_NORMAL
То же, что и IMG_EFFECT_ALPHABLEND.
IMG_EFFECT_OVERLAY
В результате наложения картинки с этим эффектом черные и белые пикселы фона изображения останутся так же черными и белыми, а серые поменяют цвет на цвет пиксела накладываемого изображения.
IMG_EFFECT_MULTIPLY
Оверлеи с множителем эффекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.2.0 | Добавлена IMG_EFFECT_MULTIPLY (требует системную библиотеку libgd >= 2.1.1 или libgd идущую в комплекте с PHP).

Примеры

Пример #1 Пример использования imagelayereffect()

<?php
// Задание изображения
$im = imagecreatetruecolor(100, 100);

// Установка фона
imagefilledrectangle($im, 0, 0, 100, 100, imagecolorallocate($im, 220, 220, 220));

// Применение флага альфа сопряжения - overlay
imagelayereffect($im, IMG_EFFECT_OVERLAY);

// Рисуем два серых эллипса
imagefilledellipse($im, 50, 50, 40, 40, imagecolorallocate($im, 100, 255, 100));
imagefilledellipse($im, 50, 50, 50, 80, imagecolorallocate($im, 100, 100, 255));
imagefilledellipse($im, 50, 50, 80, 50, imagecolorallocate($im, 255, 100, 100));

// Вывод
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagelayereffect()

Примечания

До PHP 5.5.0, эта функция доступна только если PHP собирался со встроенной версией библиотеки GD.


Рисование линии

  • « imagelayereffect
  • imageloadfont »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование линии

imageline

(PHP 4, PHP 5, PHP 7)

imageline — Рисование линии

Описание

imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color ) : bool

Рисует линию соединяющую две точки.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x1

x-координата первой точки.

y1

y-координата первой точки.

x2

x-координата второй точки.

y2

y-координата второй точки.

color

Цвет линии. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Рисование жирной линии

<?php

function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1)
{
    /* этот способ применим только для ортогональных прямых
    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);
}

?>

Смотрите также

  • imagecreatetruecolor() - Создание нового полноцветного изображения
  • imagecolorallocate() - Создание цвета для изображения


Загрузка шрифта

  • « imageline
  • imageopenpolygon »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Загрузка шрифта

imageloadfont

(PHP 4, PHP 5, PHP 7)

imageloadfont — Загрузка шрифта

Описание

imageloadfont ( string $file ) : int

imageloadfont() загружает определенный пользователем шрифт и возвращает его идентификатор.

Список параметров

file

Формат файла шрифта двоичный и зависит от архитектуры системы. Это означает необходимость генерировать файл шрифта на том же процессоре, на котором работает PHP.

Формат файла шрифта
позиция байта | тип данных C | описание
байты 0-3 | int | количество символов в шрифте
байты 4-7 | int | значение первого символа в шрифте (часто 32 - пробел)
байты 8-11 | int | ширина пиксела каждого символа
байты 12-15 | int | высота пиксела каждого символа
байты 16- | char | массив с данными символов, один байт на пиксел в каждом символе. Для всех кол-во*высота*ширина байт.

Возвращаемые значения

Идентификатор шрифта, который всегда больше 5 для предотвращения конфликтов со встроенными шрифтами, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования 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);

// Загрузка gd шрифта и надпись 'Привет'
$font = imageloadfont('./04b.gdf');
imagestring($im, $font, 0, 0, 'Привет', $black);

// Вывод изображения
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Смотрите также

  • imagefontwidth() - Получение ширины шрифта
  • imagefontheight() - Получение высоты шрифта


Рисует открытый полигон

  • « imageloadfont
  • imagepalettecopy »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисует открытый полигон

imageopenpolygon

(PHP 7 >= 7.2.0)

imageopenpolygon — Рисует открытый полигон

Описание

imageopenpolygon ( resource $image , array $points , int $num_points , int $color ) : bool

imageopenpolygon() рисует открытый полигон на заданном изображении (image). В отличие от imagepolygon(), линия между последней и первой точкой не рисуется.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

points

Массив, содержащий вершины многоугольника, например:

points[0] | = x0
points[1] | = y0
points[2] | = x1
points[3] | = y1

num_points

Общее число точек (вершин), должно быть не меньше 3.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 imageopenpolygon() example

<?php
// Создать пустое изображение
$image = imagecreatetruecolor(400, 300);

// Выделение цвета для полигона
$col_poly = imagecolorallocate($image, 255, 255, 255);

// Нарисовать полигон
imageopenpolygon($image, array(
        0,   0,
        100, 200,
        300, 200
    ),
    3,
    $col_poly);

// Вывод изображения в браузер
header('Content-type: image/png');

imagepng($image);
imagedestroy($image);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера : imageopenpolygon()

Смотрите также

  • imagepolygon() - Рисование многоугольника


Копирование палитры из одного изображения в другое

  • « imageopenpolygon
  • imagepalettetotruecolor »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Копирование палитры из одного изображения в другое

imagepalettecopy

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagepalettecopy — Копирование палитры из одного изображения в другое

Описание

imagepalettecopy ( resource $destination , resource $source ) : void

imagepalettecopy() копирует палитру цветов из изображения source в изображение destination.

Список параметров

destination

Ресурс результирующего изображения.

source

Ресурс исходного изображения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования imagepalettecopy()

<?php
// Создание двух палитровых изображений
$palette1 = imagecreate(100, 100);
$palette2 = imagecreate(100, 100);

// Зеленый фон у первого изображения
$green = imagecolorallocate($palette1, 0, 255, 0);

// Копирование палитры из 1го во 2е изображение
imagepalettecopy($palette2, $palette1);

// Так как палитра скопирована с уже созданным зеленым цветом
// нет нужды использовать imagecolorallocate() дважды
imagefilledrectangle($palette2, 0, 0, 99, 99, $green);

// Вывод изображения в броузер
header('Content-type: image/png');

imagepng($palette2);
imagedestroy($palette1);
imagedestroy($palette2);
?>


Преобразует изображение на основе палитры в настоящий цвет

  • « imagepalettecopy
  • imagepng »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Преобразует изображение на основе палитры в настоящий цвет

imagepalettetotruecolor

(PHP 5 >= 5.5.0, PHP 7)

imagepalettetotruecolor — Преобразует изображение на основе палитры в настоящий цвет

Описание

imagepalettetotruecolor ( resource $src ) : bool

Преобразует на основе палитры изображение, созданное функцией, такой как imagecreate() до настоящего (true) цвета изображения, как imagecreatetruecolor().

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Возвращает TRUE, если преобразование завершено, или если исходное изображение уже является изображением настоящего цвета, в противном случае возвращается FALSE.

Примеры

Пример #1 Конвертирует любой ресурс изображения в настоящий цвет

<?php
// Для обратной совместимости
if(!function_exists('imagepalettetotruecolor'))
{
    function imagepalettetotruecolor(&$src)
    {
        if(imageistruecolor($src))
        {
            return(true);
        }

        $dst = imagecreatetruecolor(imagesx($src), imagesy($src));

        imagecopy($dst, $src, 0, 0, 0, 0, imagesx($src), imagesy($src));
        imagedestroy($src);

        $src = $dst;

        return(true);
    }
}

// Анонимная функция-помощник
$typeof = function() use($im)
{
    echo 'typeof($im) = ' . (imageistruecolor($im) ? 'true color' : 'palette'), PHP_EOL;
};

// Создание изображения на основе палитры
$im = imagecreate(100, 100);
$typeof();

// Преобразовать в настоящий цвет
imagepalettetotruecolor($im);
$typeof();

// Освободить память
imagedestroy($im);
?>

Результат выполнения данного примера:

typeof($im) = palette
typeof($im) = true color

Смотрите также

  • imagecreatetruecolor() - Создание нового полноцветного изображения
  • imageistruecolor() - Определяет, является ли изображение полноцветным


Вывод PNG изображения в браузер или файл

  • « imagepalettetotruecolor
  • imagepolygon »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Вывод PNG изображения в браузер или файл

imagepng

(PHP 4, PHP 5, PHP 7)

imagepng — Вывод PNG изображения в браузер или файл

Описание

imagepng ( resource $image [, mixed $to = NULL [, int $quality = -1 [, int $filters = -1 ]]] ) : bool

Выводит или сохраняет PNG изображение image.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

to

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде.

Замечание:

Недопустимо передавать NULL, если не используются аргументы quality и filters.

quality

Степень сжатия: от 0 (нет сжатия) до 9. По умолчанию (-1) используется значение по умолчанию сжатия zlib. Более подробно читайте в » руководстве по zlib.

filters

Позволяет уменьшить размер PNG файла. Это битовая маска, значением которой может быть комбинация констант PNG_FILTER_XXX. Для включения или выключения всех фильтров удобно воспользоваться константами PNG_NO_FILTER или PNG_ALL_FILTERS соответственно. Значение по умолчанию (-1) отключает фильтрацию.

Предостережение

Параметр filters игнорируется системной библиотекой libgd.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернет TRUE.

Список изменений

Версия | Описание
5.4.0 | Добавлена возможность использовать поток типа resource для to.
5.1.3 | Добавлен аргумент filters.
5.1.2 | Добавлен аргумент quality.

Примеры

<?php
$im = imagecreatefrompng("test.png");

header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Смотрите также

  • imagegif() - Выводит изображение в браузер или пишет в файл
  • imagewbmp() - Выводит изображение в браузер или пишет в файл
  • imagejpeg() - Выводит изображение в браузер или пишет в файл
  • imagetypes() - Возвращает список типов изображений, поддерживаемых PHP сборкой
  • imagesavealpha() - Сохранять ли полную информацию альфа-канала при сохранении изображений PNG


Рисование многоугольника

  • « imagepng
  • imagepsbbox »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование многоугольника

imagepolygon

(PHP 4, PHP 5, PHP 7)

imagepolygon — Рисование многоугольника

Описание

imagepolygon ( resource $image , array $points , int $num_points , int $color ) : bool

imagepolygon() создает многоугольник в изображении image.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

points

Массив вершин многоугольника:

points[0] | = x0
points[1] | = y0
points[2] | = x1
points[3] | = y1

num_points

Общее число точек (вершин), должно быть не меньше 3.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagepolygon()

<?php
// Создание пустого изображения
$image = imagecreatetruecolor(400, 300);

// Создание цвета полигона
$col_poly = imagecolorallocate($image, 255, 255, 255);

// Рисование многоугольника
imagepolygon($image, array(
        0,   0,
        100, 200,
        300, 200
    ),
    3,
    $col_poly);

// Вывод картинки в броузер
header('Content-type: image/png');

imagepng($image);
imagedestroy($image);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagepolygon()

Смотрите также

  • imagefilledpolygon() - Рисование закрашенного многоугольника
  • imageopenpolygon() - Рисует открытый полигон
  • imagecreate() - Создание нового палитрового изображения
  • imagecreatetruecolor() - Создание нового полноцветного изображения


Выдает параметры рамки, обрамляющей текст написанный шрифтом PostScript Type1

  • « imagepolygon
  • imagepsencodefont »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Выдает параметры рамки, обрамляющей текст написанный шрифтом PostScript Type1

imagepsbbox

(PHP 4, PHP 5)

imagepsbbox — Выдает параметры рамки, обрамляющей текст написанный шрифтом PostScript Type1

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

imagepsbbox ( string $text , resource $font , int $size ) : array
imagepsbbox ( string $text , resource $font , int $size , int $space , int $tightness , float $angle ) : array

Выдает параметры рамки, обрамляющей текст написанный шрифтом PostScript Type1.

Параметры рамки рассчитываются на основе метрики символов и в общем случае могут не совпадать с реальным размером текста после его прорисовки на изображении. Если угол составляет 0 градусов, текст может занимать на 1 пиксел больше в каждом направлении.

Список параметров

text

Текст, который должен быть записан.

font_index

Ресурс шрифта, возвращаемый функцией imagepsloadfont().

size

size задается в пикселах.

space

Позволяет изменять размер пробела в шрифте. Значение аргумента добавляется к значению по умолчанию для шрифта и может быть отрицательным. Значение задается в условных единицах, одна единица соответствует 1/1000 ширины буквы m этого шрифта.

tightness

tightness позволяет регулировать расстояние между символами. Значение аргумента добавляется к значению по умолчанию для шрифта и может быть отрицательным. Значение задается в условных единицах, одна единица соответствует 1/1000 ширины буквы m этого шрифта.

angle

angle задается в градусах.

Возвращаемые значения

Возвращает массив со следующими элементами:

0 | левая x-координата
1 | верхняя y-координата
2 | правая x-координата
3 | нижняя y-координата

Список изменений

Версия | Описание
7.0.0 | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.

Примеры

Пример #1 Пример использования imagepsbbox()

<?php
// Создание изображения
$im = imagecreatetruecolor(200, 200);

// Выделение цветов
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Загрузка шрифта PostScript
$font = imagepsloadfont('font.pfm');

// Создание рамки
$bbox = imagepsbbox('Простой пример текста', $font, 12);

// Определим X и Y координаты
$x = ($bbox[2] / 2) - 10;
$y = ($bbox[3] / 2) - 10;

// Запишем текст на изображение
imagepstext($im, 'Простой пример текста', $font, 12, $black, $white, $x, $y);

// Вывод и освобождение памяти
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомпилирован с опцией --with-t1lib[=DIR] .

Смотрите также

  • imagepstext() - Рисование текста поверх изображения, используя шрифты PostScript Type1


Изменение вектора кодировки шрифта

  • « imagepsbbox
  • imagepsextendfont »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Изменение вектора кодировки шрифта

imagepsencodefont

(PHP 4, PHP 5)

imagepsencodefont — Изменение вектора кодировки шрифта

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

imagepsencodefont ( resource $font_index , string $encodingfile ) : bool

Загружает вектор кодировки из файла и подменяет им текущий вектор шрифта. Так как вектор по умолчанию шрифтов PostScript не знает о символах после 127го, функция может оказаться полезной, когда используется язык отличный от английского.

Если вы заметили, что пользуетесь этой функцией довольно часто, лучшей альтернативой будет задать кодировку в настройке ps.default_encoding файла конфигурации. В этом случае все загружаемые шрифты будут иметь нужную кодировку автоматически.

Список параметров

font_index

Ресурс шрифта, возвращаемый функцией imagepsloadfont().

encodingfile

Формат этого файла описан в документации к T1lib библиотеке. Эта библиотека представлена двумя файлами: IsoLatin1.enc и IsoLatin2.enc.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.

Примеры

Пример #1 Пример использования imagepsencodefont()

<?php
// Загрузка файла шрифта .pfb
$font = imagepsloadfont('./px3l.pfb');

// Скажем T1lib использовать ISO Latin 1 кодировку
imagepsencode($font, './IsoLatin1.enc');

// тут могут быть какие-либо операции с шрифтом

// Освобождение памяти
imagepsfreefont($font);
?>

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомпилирован с опцией --with-t1lib[=DIR] .


Растягивание или сжатие шрифта

  • « imagepsencodefont
  • imagepsfreefont »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Растягивание или сжатие шрифта

imagepsextendfont

(PHP 4, PHP 5)

imagepsextendfont — Растягивание или сжатие шрифта

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

imagepsextendfont ( resource $font_index , float $extend ) : bool

Растягивает или сжимает шрифт (font_index), если значение extend меньше текущего.

Список параметров

font_index

Ресурс шрифта, возвращаемый функцией imagepsloadfont().

extend

Значение растяжения, должно быть больше 0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.

Примеры

Пример #1 Пример использования imagepsextendfont()

<?php
// загрузка файла шрифта .pfb
$font = imagepsloadfont('./px3l.pfb');

// Растягивание на 2.5
imagepsextendfont($font, 2.5);

// Тут могут быть какие-либо операции со шрифтом

// Освобождение памяти
imagepsfreefont($font);
?>

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомпилирован с опцией --with-t1lib[=DIR] .


Освобождение памяти, занятой шрифтом PostScript Type

  • « imagepsextendfont
  • imagepsloadfont »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Освобождение памяти, занятой шрифтом PostScript Type

imagepsfreefont

(PHP 4, PHP 5)

imagepsfreefont — Освобождение памяти, занятой шрифтом PostScript Type

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

imagepsfreefont ( resource $font_index ) : bool

imagepsfreefont() освобождает память, которая была выделена для PostScript Type 1 шрифта.

Список параметров

font_index

Ресурс шрифта, возвращаемый функцией imagepsloadfont().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.

Примеры

Пример #1 Пример использования imagepsfreefont()

<?php
// Загрузка файла шрифта .pfb
$font = imagepsloadfont('./bchbi.pfb');

// Тут могут быть какие-либо операции со шрифтом

// Освобождение памяти
imagepsfreefont($font);
?>

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомпилирован с опцией --with-t1lib[=DIR] .

Смотрите также

  • imagepsloadfont() - Загрузка шрифта PostScript Type 1 из файла


Загрузка шрифта PostScript Type 1 из файла

  • « imagepsfreefont
  • imagepsslantfont »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Загрузка шрифта PostScript Type 1 из файла

imagepsloadfont

(PHP 4, PHP 5)

imagepsloadfont — Загрузка шрифта PostScript Type 1 из файла

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

imagepsloadfont ( string $filename ) : resource

Загружает шрифт PostScript Type 1 из файла filename.

Список параметров

filename

Путь к файлу шрифта Postscript.

Возвращаемые значения

Если все в порядке, будет возвращен индекс шрифта для дальнейшего использования. В противном случае будет возвращено значение FALSE.

Список изменений

Версия | Описание
7.0.0 | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.

Примеры

Пример #1 Пример использования imagepsloadfont()

<?php
// Создание изображения
$im = imagecreatetruecolor(350, 45);

// Создание цвета и закрашивание фона
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 349, 44, $white);

// Загрузка шрифта, запись текста на изображении, очистка памяти
$font = imagepsloadfont("bchbi.pfb");
imagepstext($im, "Тест... Работает!", $font, 32, $white, $black, 32, 32);
imagepsfreefont($font);

// Вывод изображения
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомпилирован с опцией --with-t1lib[=DIR] .

Смотрите также

  • imagepsfreefont() - Освобождение памяти, занятой шрифтом PostScript Type


Наклон шрифта

  • « imagepsloadfont
  • imagepstext »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Наклон шрифта

imagepsslantfont

(PHP 4, PHP 5)

imagepsslantfont — Наклон шрифта

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

imagepsslantfont ( resource $font_index , float $slant ) : bool

Делает курсивным заданный шрифт.

Список параметров

font_index

Ресурс шрифта, возвращаемый функцией imagepsloadfont().

slant

Уровень наклона.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.

Примеры

Пример #1 Пример использования imagepsslantfont()

<?php
// Загрузка файла шрифта .pfb
$font = imagepsloadfont('./px3l.pfb');

// Наклон шрифта 22.5
imagepsslantfont($font, 22.5);

// Тут могут быть какие-либо операции со шрифтом

// Освобождение памяти
imagepsfreefont($font);
?>

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомпилирован с опцией --with-t1lib[=DIR] .


Рисование текста поверх изображения, используя шрифты PostScript Type1

  • « imagepsslantfont
  • imagerectangle »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование текста поверх изображения, используя шрифты PostScript Type1

imagepstext

(PHP 4, PHP 5)

imagepstext — Рисование текста поверх изображения, используя шрифты PostScript Type1

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

imagepstext ( resource $image , string $text , resource $font_index , int $size , int $foreground , int $background , int $x , int $y [, int $space = 0 [, int $tightness = 0 [, float $angle = 0.0 [, int $antialias_steps = 4 ]]]] ) : array

Рисует текст поверх изображения, используя шрифты PostScript Type1.

Если вы не можете разобраться, как это работает, обратитесь к документации к PostScript.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

text

Текст.

font_index

Ресурс шрифта, возвращаемый функцией imagepsloadfont().

size

size задается в пикселах.

foreground

Цвет текста.

background

Цвет, который будет использоваться при сглаживании шрифта. Пикселы цвета background не окрашиваются. Поэтому изображение под текстом не обязано быть однородным.

x

x-координата левого нижнего угла первого символа.

y

y-координата левого нижнего угла первого символа.

space

Позволяет изменять размер пробела в шрифте. Значение аргумента добавляется к значению по умолчанию для шрифта и может быть отрицательным. Значение задается в условных единицах, одна единица соответствует 1/1000 ширины буквы m этого шрифта.

tightness

tightness позволяет регулировать расстояние между символами. Значение аргумента добавляется к значению по умолчанию для шрифта и может быть отрицательным. Значение задается в условных единицах, одна единица соответствует 1/1000 ширины буквы m этого шрифта.

angle

angle задается в градусах.

antialias_steps

Позволяет регулировать число цветов, используемых при сглаживании. Возможные значения 4 и 16. Большее значение рекомендуется для размеров шрифтов меньше 20, так как в этом случае неровности лучше видно. Для больших размеров используйте 4, это требует меньше вычислений.

Возвращаемые значения

Функция возвращает массив со следующими элементами:

0 | левая нижняя x-координата
1 | левая нижняя y-координата
2 | верхняя правая x-координата
3 | верхняя правая y-координата

Список изменений

Версия | Описание
7.0.0 | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.

Примеры

Пример #1 Пример использования imagepstext()

<?php
// Создание изображения
$im = imagecreatetruecolor(200, 200);

// Создание цветов
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// загрузка шрифта PostScript
$font = imagepsloadfont('font.pfm');

// Запись текста
imagepstext($im, 'Простой пример текста', $font, 12, $black, $white, 50, 50);

// Вывод и освобождение памяти
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомпилирован с опцией --with-t1lib[=DIR] .

Смотрите также

  • imagepsbbox() - Выдает параметры рамки, обрамляющей текст написанный шрифтом PostScript Type1


Рисование прямоугольника

  • « imagepstext
  • imageresolution »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование прямоугольника

imagerectangle

(PHP 4, PHP 5, PHP 7)

imagerectangle — Рисование прямоугольника

Описание

imagerectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color ) : bool

imagerectangle() рисует прямоугольник с заданными координатами углов.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x1

Верхняя левая x координата.

y1

Верхняя левая y координата 0, 0 - левый верхний угол изображения.

x2

Нижняя правая x координата.

y2

Нижняя правая y координата.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagerectangle()

<?php
// Создание изображения 200 x 200
$canvas = imagecreatetruecolor(200, 200);

// Создание цветов
$pink = imagecolorallocate($canvas, 255, 105, 180);
$white = imagecolorallocate($canvas, 255, 255, 255);
$green = imagecolorallocate($canvas, 132, 135, 28);

// Рисование разноцветных прямоугольников
imagerectangle($canvas, 50, 50, 150, 150, $pink);
imagerectangle($canvas, 45, 60, 120, 100, $white);
imagerectangle($canvas, 100, 120, 75, 160, $green);

// Вывод и освобождение памяти
header('Content-Type: image/jpeg');

imagejpeg($canvas);
imagedestroy($canvas);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagerectangle()


Get or set the resolution of the image

  • « imagerectangle
  • imagerotate »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Get or set the resolution of the image

imageresolution

(PHP 7 >= 7.2.0)

imageresolution — Get or set the resolution of the image

Описание

imageresolution ( resource $image ) : mixed
imageresolution ( resource $image , int $res_x [, int $res_y = $res_x ] ) : mixed

imageresolution() allows to set and get the resolution of an image in DPI (dots per inch). If none of the optional parameters is given, the current resolution is returned as indexed array. If only res_x is given, the horizontal and vertical resolution are set to this value. If both optional parameters are given, the horizontal and vertical resolution are set to these values, respectively.

The resolution is only used as meta information when images are read from and written to formats supporting this kind of information (curently PNG and JPEG). It does not affect any drawing operations. The default resolution for new images is 96 DPI.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

res_x

The horizontal resolution in DPI.

res_y

The vertical resolution in DPI.

Возвращаемые значения

When used as getter (first signature), it returns an indexed array of the horizontal and vertical resolution on success, или FALSE в случае возникновения ошибки. When used as setter (second signature), it returns TRUE on success, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Setting and getting the resolution of an image

<?php
$im = imagecreatetruecolor(100, 100);
imageresolution($im, 200);
print_r(imageresolution($im));
imageresolution($im, 300, 72);
print_r(imageresolution($im));
?>

Результат выполнения данного примера:

Array
(
    [0] => 200
    [1] => 200
)
Array
(
    [0] => 300
    [1] => 72
)


Поворот изображения с заданным углом

  • « imageresolution
  • imagesavealpha »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Поворот изображения с заданным углом

imagerotate

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

imagerotate — Поворот изображения с заданным углом

Описание

imagerotate ( resource $image , float $angle , int $bgd_color [, int $ignore_transparent = 0 ] ) : resource

Поворот изображения image на заданный угол angle в градусах.

Центром поворота является центр изображения. Поворачиваемое изображение может отличаться размером от оригинала.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

angle

Угол поворота в градусах против часовой стрелки.

bgd_color

Цвет фона свободной зоны после поворота.

ignore_transparent

Если установлено и не равно нулю, прозрачность игнорируются (иначе сохраняется).

Возвращаемые значения

Возвращает ресурс повёрнутого изображения в случае успеха, или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.0 | Параметр ignore_transparent игнорируется без предупреждений.
5.5.0 | Эта функция теперь меняет свое поведение при изменении метода интерполяции функцией imagesetinterpolation().
5.1.0 | Добавлен параметр ignore_transparent.

Примеры

Пример #1 Поворот изображения на 180 градусов

Этот пример поворачивает изображения на 180 градусов - верхом вниз.

<?php
// Файл и угол поворота
$filename = 'test.jpg';
$degrees = 180;

// Тип содержимого
header('Content-type: image/jpeg');

// Загрузка изображения
$source = imagecreatefromjpeg($filename);

// Поворот
$rotate = imagerotate($source, $degrees, 0);

// Вывод
imagejpeg($rotate);

// Высвобождение памяти
imagedestroy($source);
imagedestroy($rotate);
?>

Результатом выполнения данного примера будет что-то подобное:

Пример выведет изображение повёрнутое на 180 градусов

Примечания

Замечание:

Данная функция подвержена влиянию метода интерполяции, установленным функцией imagesetinterpolation().

Смотрите также

  • imagesetinterpolation() - Set the interpolation method


Сохранять ли полную информацию альфа-канала при сохранении изображений PNG

  • « imagerotate
  • imagescale »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Сохранять ли полную информацию альфа-канала при сохранении изображений PNG

imagesavealpha

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

imagesavealpha — Сохранять ли полную информацию альфа-канала при сохранении изображений PNG

Описание

imagesavealpha ( resource $image , bool $saveflag ) : bool

imagesavealpha() устанавливает флаг, определяющий, будет ли сохраняться полная информация альфа-канала (в противовес одноцветной прозрачности) и сохраняет PNG изображение

Альфа-смешивание должно быть отключено ( imagealphablending ($ im, false) ), чтобы альфа-канал сохранялся в первую очередь.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

saveflag

Требуется ли сохранять альфа канал или нет. По умолчанию FALSE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagesavealpha()

<?php
// Загрузка png изображения с альфа каналом
$png = imagecreatefrompng('./alphachannel_example.png');

// Выключение альфа-смешения
imagealphablending($png, false);

// Какие-то операции

// Установка альфа-флага
imagesavealpha($png, true);

// Вывод изображения и очистка памяти
header('Content-Type: image/png');

imagepng($png);
imagedestroy($png);
?>

Смотрите также

  • imagealphablending() - Задание режима сопряжения цветов для изображения


Масштабировать изображение по заданной ширине и высоте

  • « imagesavealpha
  • imagesetbrush »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Масштабировать изображение по заданной ширине и высоте

imagescale

(PHP 5 >= 5.5.0, PHP 7)

imagescale — Масштабировать изображение по заданной ширине и высоте

Описание

imagescale ( resource $image , int $new_width [, int $new_height = -1 [, int $mode = IMG_BILINEAR_FIXED ]] ) : resource

imagescale() масштабирует изображение, используя заданный алгоритм интерполяции.

Замечание:

В отличие от многих функций по работе с изображениями, imagescale() не изменяет переданный параметр image; вместо будет возвращено этого изображение new .

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

new_width

Ширина для масштабирования.

new_height

Высота для масштабирования изображения. Если этот параметр опущен или отрицателен, соотношение сторон будет сохранено.

Предостережение

Вам всегда следует указывать высоту при использовании PHP 5.5.18 или более ранней версии, или PHP 5.6.2 или более ранней, так как расчет пропорций был неправильным.

mode

Одна из констант IMG_NEAREST_NEIGHBOUR, IMG_BILINEAR_FIXED, IMG_BICUBIC, IMG_BICUBIC_FIXED или что-либо еще (будет использовано два прохода).

Замечание: IMG_WEIGHTED4 пока еще не поддерживается.

Возвращаемые значения

Вернуть масштабированное изображение ресурса в случае успеха или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.19/5.6.3 | Расчет высоты, если параметр new_height отрицателен или опущен, был исправлен; до этих версий соотношение сторон работало неправильно.

Смотрите также

imagecopyresized() - Копирование и изменение размера части изображения imagecopyresampled() - Копирование и изменение размера изображения с ресемплированием


Установка изображения (кисти), посредством которого будут рисоваться линии

  • « imagescale
  • imagesetclip »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Установка изображения (кисти), посредством которого будут рисоваться линии

imagesetbrush

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagesetbrush — Установка изображения (кисти), посредством которого будут рисоваться линии

Описание

imagesetbrush ( resource $image , resource $brush ) : bool

imagesetbrush() задает изображение, которое будет использоваться функциями для рисования линий (такими как imageline() и imagepolygon()) при использовании цветов IMG_COLOR_BRUSHED или IMG_COLOR_STYLEDBRUSHED.

Предостережение

Дополнительных действий после завершения работы с кистью не требуется, однако если изображение кисти уничтожено, нельзя пользоваться цветами IMG_COLOR_BRUSHED или IMG_COLOR_STYLEDBRUSHED, пока не будет установлено новое изображение кисти!

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

brush

Ресурс изображения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagesetbrush()

<?php
// Загрузка минилоготипа php
$php = imagecreatefrompng('./php.png');

// Создание основного изображения 100x100
$im = imagecreatetruecolor(100, 100);

// Заливка фона белым цветом
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 299, 99, $white);

// Установка кисти
imagesetbrush($im, $php);

// Рисование линии из изображений кисти
imageline($im, 50, 50, 50, 60, IMG_COLOR_BRUSHED);

// Вывод и очистка памяти
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
imagedestroy($php);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagesetbrush()


Установите прямоугольник ограничения

  • « imagesetbrush
  • imagesetinterpolation »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Установите прямоугольник ограничения

imagesetclip

(PHP 7 >= 7.2.0)

imagesetclip — Установите прямоугольник ограничения

Описание

imagesetclip ( resource $im , int $x1 , int $y1 , int $x2 , int $y2 ) : bool

imagesetclip() задает текущий прямоугольник ограничения, т.е. область, за пределами которой не будут отрисовываться пиксели.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x1

Координата по x верхнего левого угла.

y1

Координата по y верхнего левого угла.

x2

Координата по x нижнего левого угла.

y2

Координата по y нижнего правого угла.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imagegetclip() - Получить отсекающий прямоугольник


Set the interpolation method

  • « imagesetclip
  • imagesetpixel »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Set the interpolation method

imagesetinterpolation

(PHP 5 >= 5.5.0, PHP 7)

imagesetinterpolation — Set the interpolation method

Описание

imagesetinterpolation ( resource $image [, int $method = IMG_BILINEAR_FIXED ] ) : bool

Sets the interpolation method, setting an interpolation method affects the rendering of various functions in GD, such as the imagerotate() function.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

method

The interpolation method, which can be one of the following:

  • IMG_BELL: Bell filter.
  • IMG_BESSEL: Bessel filter.
  • IMG_BICUBIC: Bicubic interpolation.
  • IMG_BICUBIC_FIXED: Fixed point implementation of the bicubic interpolation.
  • IMG_BILINEAR_FIXED: Fixed point implementation of the bilinear interpolation (default (also on image creation)).
  • IMG_BLACKMAN: Blackman window function.
  • IMG_BOX: Box blur filter.
  • IMG_BSPLINE: Spline interpolation.
  • IMG_CATMULLROM: Cubic Hermite spline interpolation.
  • IMG_GAUSSIAN: Gaussian function.
  • IMG_GENERALIZED_CUBIC: Generalized cubic spline fractal interpolation.
  • IMG_HERMITE: Hermite interpolation.
  • IMG_HAMMING: Hamming filter.
  • IMG_HANNING: Hanning filter.
  • IMG_MITCHELL: Mitchell filter.
  • IMG_POWER: Power interpolation.
  • IMG_QUADRATIC: Inverse quadratic interpolation.
  • IMG_SINC: Sinc function.
  • IMG_NEAREST_NEIGHBOUR: Nearest neighbour interpolation.
  • IMG_WEIGHTED4: Weighting filter.
  • IMG_TRIANGLE: Triangle interpolation.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 imagesetinterpolation() example

<?php
// Load an image
$im = imagecreate(500, 500);

// By default interpolation is IMG_BILINEAR_FIXED, switch
// to use the 'Mitchell' filter:
imagesetinterpolation($im, IMG_MITCHELL);

// Continue to work with $im ...
?>

Примечания

Changing the interpolation method affects the following functions when rendering:

  • imageaffine()
  • imagerotate()


Рисование точки

  • « imagesetinterpolation
  • imagesetstyle »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование точки

imagesetpixel

(PHP 4, PHP 5, PHP 7)

imagesetpixel — Рисование точки

Описание

imagesetpixel ( resource $image , int $x , int $y , int $color ) : bool

imagesetpixel() рисует точку (пиксел) на заданных координатах.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x

x-координата.

y

y-координата.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagesetpixel()

Рисование "случайных" точек, дающее в результате фрактальное изображение.

<?php

$x = 200;
$y = 200;

$gd = imagecreatetruecolor($x, $y);

$corners[0] = array('x' => 100, 'y' =>  10);
$corners[1] = array('x' =>   0, 'y' => 190);
$corners[2] = array('x' => 200, 'y' => 190);

$red = imagecolorallocate($gd, 255, 0, 0);

for ($i = 0; $i < 100000; $i++) {
  imagesetpixel($gd, round($x),round($y), $red);
  $a = rand(0, 2);
  $x = ($x + $corners[$a]['x']) / 2;
  $y = ($y + $corners[$a]['y']) / 2;
}

header('Content-Type: image/png');
imagepng($gd);

?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagesetpixel()

Смотрите также

  • imagecreatetruecolor() - Создание нового полноцветного изображения
  • imagecolorallocate() - Создание цвета для изображения
  • imagecolorat() - Получение индекса цвета пиксела


Установка стиля рисования линий

  • « imagesetpixel
  • imagesetthickness »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Установка стиля рисования линий

imagesetstyle

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagesetstyle — Установка стиля рисования линий

Описание

imagesetstyle ( resource $image , array $style ) : bool

imagesetstyle() задает стиль, который будет использоваться функциями рисования линий (такими как imageline() и imagepolygon()) при задании специального цвета IMG_COLOR_STYLED или IMG_COLOR_STYLEDBRUSHED.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

style

Массив с цветами пикселов. Можно использовать константу IMG_COLOR_TRANSPARENT для добавления прозрачной точки. Обратите внимание, что style не должен быть пустым массивом.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Следующий пример рисует пунктирную линию из левого верхнего угла изображения в правый нижний:

Пример #1 Пример использования imagesetstyle()

<?php
header("Content-type: image/jpeg");
$im  = imagecreatetruecolor(100, 100);
$w   = imagecolorallocate($im, 255, 255, 255);
$red = imagecolorallocate($im, 255, 0, 0);

/* Рисование пунктирной линии, 5 красных точек, 5 белых */
$style = array($red, $red, $red, $red, $red, $w, $w, $w, $w, $w);
imagesetstyle($im, $style);
imageline($im, 0, 0, 100, 100, IMG_COLOR_STYLED);

/* Рисование линии из смайликов, используя imagesetbrush() с 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);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagesetstyle()

Смотрите также

  • imagesetbrush() - Установка изображения (кисти), посредством которого будут рисоваться линии
  • imageline() - Рисование линии


Установка толщины линий

  • « imagesetstyle
  • imagesettile »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Установка толщины линий

imagesetthickness

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagesetthickness — Установка толщины линий

Описание

imagesetthickness ( resource $image , int $thickness ) : bool

imagesetthickness() задает значение толщины линий для рисования отрезков, прямоугольников, многоугольников, эллипсов и т.п. в thickness пикселов.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

thickness

Толщина в пикселах.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagesetthickness()

<?php
// Создание изображения 200x100
$im = imagecreatetruecolor(200, 100);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

// Установка белого фона
imagefilledrectangle($im, 0, 0, 299, 99, $white);

// Установка толщины линий 5 пикселов
imagesetthickness($im, 5);

// Рисование прямоугольника
imagerectangle($im, 14, 14, 185, 85, $black);

// Вывод изображения в броузер
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagesetthickness()


Установка изображения, которое будет использовано в качестве элемента мозаичной заливки

  • « imagesetthickness
  • imagestring »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Установка изображения, которое будет использовано в качестве элемента мозаичной заливки

imagesettile

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagesettile — Установка изображения, которое будет использовано в качестве элемента мозаичной заливки

Описание

imagesettile ( resource $image , resource $tile ) : bool

imagesettile() задает изображение, которое будет использовано в качестве элемента мозаичной заливки такими функциями, как imagefill() и imagefilledpolygon() при использовании специального цвета IMG_COLOR_TILED.

Это изображение используется для замощения области изображения его копиями. Может использовать любое GD изображение. А если задать прозрачный цвет для этого изображения функцией imagecolortransparent(), некоторые части нижележащего изображения будут просвечивать через созданную мозаику.

Предостережение

Дополнительных действий после завершения работы с мозаичным элементом не требуется, однако если это изображение будет удалено (или позволить PHP удалить его), нельзя использовать цвет IMG_COLOR_TILED до тех пор, пока не будет задано новое изображение!

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

tile

Ресурс изображения для использования в мозаике.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagesettile()

<?php
// Загрузка внешнего изображения
$zend = imagecreatefromgif('./zend.gif');

// Создание изображения 200x200
$im = imagecreatetruecolor(200, 200);

// Установка мозаичного элемента
imagesettile($im, $zend);

// Заливка
imagefilledrectangle($im, 0, 0, 199, 199, IMG_COLOR_TILED);

// Вывод картинки в броузер
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
imagedestroy($zend);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagesettile()


Рисование строки текста горизонтально

  • « imagesettile
  • imagestringup »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование строки текста горизонтально

imagestring

(PHP 4, PHP 5, PHP 7)

imagestring — Рисование строки текста горизонтально

Описание

imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color ) : bool

Рисует текст string на заданных координатах.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или любому из ваших собственных идентификаторов шрифтов, зарегистрированных с помощью imageloadfont().

x

x-координата верхнего левого угла.

y

y-координата верхнего левого угла.

string

Строка текста.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagestring()

<?php
// Создание изображения 100*30
$im = imagecreate(100, 30);

// Белый фон, синий текст
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 255);

// Надпись в левом верхнем углу
imagestring($im, 5, 0, 0, 'Hello world!', $textcolor);

// Вывод изображения
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagestring()

Смотрите также

  • imagestringup() - Рисование строки текста вертикально
  • imageloadfont() - Загрузка шрифта
  • imagettftext() - Рисование текста на изображении шрифтом TrueType


Рисование строки текста вертикально

  • « imagestring
  • imagesx »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование строки текста вертикально

imagestringup

(PHP 4, PHP 5, PHP 7)

imagestringup — Рисование строки текста вертикально

Описание

imagestringup ( resource $image , int $font , int $x , int $y , string $string , int $color ) : bool

Рисует текст string вертикально на заданных координатах.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или любому из ваших собственных идентификаторов шрифтов, зарегистрированных с помощью imageloadfont().

x

x-координата нижнего левого угла.

y

y-координата нижнего левого угла.

string

Текст надписи.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagestringup()

<?php
// Создание изображения 100*100
$im = imagecreatetruecolor(100, 100);

// Надпись
$textcolor = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
imagestringup($im, 3, 40, 80, 'gd library', $textcolor);

// Сохранение изображения
imagepng($im, './stringup.png');
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagestringup()

Смотрите также

  • imagestring() - Рисование строки текста горизонтально
  • imageloadfont() - Загрузка шрифта


Получение ширины изображения

  • « imagestringup
  • imagesy »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение ширины изображения

imagesx

(PHP 4, PHP 5, PHP 7)

imagesx — Получение ширины изображения

Описание

imagesx ( resource $image ) : int

Возвращает ширину заданного изображения image.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Возвращает ширину изображения image или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования imagesx()

<?php

// создание изображения 300*200
$img = imagecreatetruecolor(300, 200);

echo imagesx($img); // 300

?>

Смотрите также

  • imagecreatetruecolor() - Создание нового полноцветного изображения
  • getimagesize() - Получение размера изображения
  • imagesy() - Получение высоты изображения


Получение высоты изображения

  • « imagesx
  • imagetruecolortopalette »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение высоты изображения

imagesy

(PHP 4, PHP 5, PHP 7)

imagesy — Получение высоты изображения

Описание

imagesy ( resource $image ) : int

Возвращает высоту заданного изображения image.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Возвращает высоту изображения image или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования imagesy()

<?php

// Создание изображения 300*200
$img = imagecreatetruecolor(300, 200);

echo imagesy($img); // 200

?>

Смотрите также

  • imagecreatetruecolor() - Создание нового полноцветного изображения
  • getimagesize() - Получение размера изображения
  • imagesx() - Получение ширины изображения


Преобразование полноцветного изображения в палитровое

  • « imagesy
  • imagettfbbox »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Преобразование полноцветного изображения в палитровое

imagetruecolortopalette

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagetruecolortopalette — Преобразование полноцветного изображения в палитровое

Описание

imagetruecolortopalette ( resource $image , bool $dither , int $ncolors ) : bool

imagetruecolortopalette() преобразует полноцветное изображение в палитровое. Код этой функции взят из кода библиотеки Независимой Группы JPEG. Код был модифицирован, чтобы сохранялось максимум информации об альфа компонентах цветов, а также передавались цвета в лучшем виде насколько это возможно. Но в итоге код работает не так хорошо, как хотелось бы. В связи с этим функцию можно использовать для вывода полноцветных изображений, она гарантирует самое высокое качество вывода. Но не более того.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

dither

Если задано TRUE, изображение будет сглаживаться. Сглаживание увеличивает шумность картинки, но в то же время обеспечивает лучшую передачу цветов.

ncolors

Задает максимальное количество цветов в палитре.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Преобразование truecolor-изображения в палитровое

<?php
// Создание полноцветного изображения
$im = imagecreatetruecolor(100, 100);

// Преобразование в палитровое (255 цветов) без сглаживания
imagetruecolortopalette($im, false, 255);

// Сохранение картинки
imagepng($im, './paletteimage.png');
imagedestroy($im);
?>


Получение параметров рамки обрамляющей текст написанный TrueType шрифтом

  • « imagetruecolortopalette
  • imagettftext »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение параметров рамки обрамляющей текст написанный TrueType шрифтом

imagettfbbox

(PHP 4, PHP 5, PHP 7)

imagettfbbox — Получение параметров рамки обрамляющей текст написанный TrueType шрифтом

Описание

imagettfbbox ( float $size , float $angle , string $fontfile , string $text ) : array

Эта функция рассчитывает и возвращает параметры рамки вокруг TrueType текста в пикселах.

Замечание:

imageftbbox() - это расширенный вариант imagettfbbox() который дополнительно поддерживает extrainfo.

Список параметров

size

Размер шрифта в типографских пунктах.

angle

Угол в градусах в котором будет измерен text.

fontfile

Путь к шрифту TrueType, который вы хотите использовать.

В зависимости от того, какая библиотека GD используется в PHP, если fontfile не начинается с символа /, то к имени файла будет добавлено .ttf и библиотека будет пытаться искать это имя файла по определенному библиотекой пути шрифтов.

При использовании библиотеки GD версии ниже 2.0.18, в качестве разделителя путей для разных файлов шрифтов используется пробел, а не точка с запятой. Непреднамеренное использование этой особенности приведет к предупреждению: Warning: Could not find/open font. Единственным корректным решением для этих версий библиотек будет перемещение файлов шрифтов в директорию не содержащую пробелов.

Во многих случаях, когда шрифт находится в том же каталоге, что и скрипт PHP, поможет следующий трюк.

<?php
// Установка переменной окружения для GD
putenv('GDFONTPATH=' . realpath('.'));

// Имя шрифта для использования (обратите внимание, что расширение .ttf не указывается)
$font = 'SomeFont';
?>

Замечание:

Обратите внимание, что open_basedir не применяется к fontfile.

text

Измеряемая строка.

Возвращаемые значения

imagettfbbox() возвращает массив из 8 элементов представляющих координаты четырех точек - вершин рамки вокруг текста. В случае ошибки функция вернет FALSE.

ключ | содержимое
0 | нижний левый угол, X координата
1 | нижний левый угол, Y координата
2 | нижний правый угол, X координата
3 | нижний правый угол, Y координата
4 | верхний правый угол, X координата
5 | верхний правый угол, Y координата
6 | верхний левый угол, X координата
7 | верхний левый угол, Y координата

Точки рассчитаны относительно текста text и независимо от угла angle. То есть "верхний левый" означает верхний левый угол, если смотреть на текст горизонтально.

Примеры

Пример #1 Пример использования imagettfbbox()

<?php
// создание изображения 300x150
$im = imagecreatetruecolor(300, 150);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Белый фон
imagefilledrectangle($im, 0, 0, 299, 299, $white);

// Путь к файлу шрифта
$font = './arial.ttf';

// создаем рамку для текста
$bbox = imagettfbbox(10, 45, $font, 'Powered by PHP ' . phpversion());

// наши координаты X и Y
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 25;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Пишем текст
imagettftext($im, 10, 45, $x, $y, $black, $font, 'Powered by PHP ' . phpversion());

// создаем другую рамку для другого текста
$bbox = imagettfbbox(10, 45, $font, 'and Zend Engine ' . zend_version());

// задаем координаты так, чтобы текст шел сразу за первой надписью
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) + 10;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Пишем вторую надпись
imagettftext($im, 10, 45, $x, $y, $black, $font, 'and Zend Engine ' . zend_version());

// Вывод в броузер
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомплирован с поддержкой freetype (--with-freetype-dir=DIR )

Смотрите также

  • imagettftext() - Рисование текста на изображении шрифтом TrueType
  • imageftbbox() - Определение границ текста выводимого шрифтом freetype2


Рисование текста на изображении шрифтом TrueType

  • « imagettfbbox
  • imagetypes »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование текста на изображении шрифтом TrueType

imagettftext

(PHP 4, PHP 5, PHP 7)

imagettftext — Рисование текста на изображении шрифтом TrueType

Описание

imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text ) : array

Наносит текст text поверх изображения, используя TrueType шрифт.

Замечание:

imagefttext() - это расширенный вариант imagettftext(), который дополнительно поддерживает extrainfo.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

size

Размер шрифта в типографских пунктах.

angle

Угол в градусах, 0 градусов означает расположение текста слева направо. Положительные значения означают поворот текста против часовой стрелки. Например, текст повернутый на 90 градусов нужно будет читать снизу вверх.

x

Координаты x и y определяют отправную точку для первого символа текста (конкретно, левый нижний угол символа). Здесь есть отличие от функции imagestring(), в которой x и y определяют верхний левый угол первого символа. Например, "верхний левый" имеет координаты 0,0.

y

y-координата. Это позиция базовой линии шрифта, в общем случае она не совпадает с низшей точкой в символе.

color

Индекс цвета. Использование отрицательных индексов создает эффект выключенного сглаживания. См. imagecolorallocate().

fontfile

Путь к шрифту TrueType, который вы хотите использовать.

В зависимости от того, какая библиотека GD используется в PHP, если fontfile не начинается с символа /, то к имени файла будет добавлено .ttf и библиотека будет пытаться искать это имя файла по определенному библиотекой пути шрифтов.

При использовании библиотеки GD версии ниже 2.0.18, в качестве разделителя путей для разных файлов шрифтов используется пробел, а не точка с запятой. Непреднамеренное использование этой особенности приведет к предупреждению: Warning: Could not find/open font. Единственным корректным решением для этих версий библиотек будет перемещение файлов шрифтов в директорию не содержащую пробелов.

Во многих случаях, когда шрифт находится в том же каталоге, что и скрипт PHP, поможет следующий трюк.

<?php
// Установка переменной окружения для GD
putenv('GDFONTPATH=' . realpath('.'));

// Имя шрифта для использования (обратите внимание, что расширение .ttf не указывается)
$font = 'SomeFont';
?>

Замечание:

Обратите внимание, что open_basedir не применяется к fontfile.

text

Текстовая строка в кодировке UTF-8.

Для доступа к символам после 127го можно использовать числовые ссылки (в формате: &#8364;). Также поддерживается шестнадцатеричный формат (&#xA9;). Строки в кодировке UTF-8 можно передавать напрямую.

Именованные сущности, вроде &copy;, не поддерживаются. Используйте функцию html_entity_decode(), чтобы декодировать их в UTF-8 строки.

Если символ не поддерживается шрифтом, вместо него будет нарисован незакрашенный прямоугольник.

Возвращаемые значения

Возвращает массив из 8 элементов, представляющих 4 точки - координаты углов рамки обрамляющей текст. Точки представлены в таком порядке: левый нижний угол, правый нижний, верхний правый, верхний левый. Углы указаны относительно текста, то есть "верхний левый" означает верхний левый угол текста, если расположить его горизонтально. В случае ошибки функция вернет FALSE.

Список изменений

Версия | Описание
5.2.0 | Стало возможным задавать код сущности в тексте text шестнадцатеричным числом.

Примеры

Пример #1 Пример использования imagettftext()

В этом примере будет создано изображение PNG с белым фоном размером 400x30 пикселов и надписью "Тест..." черным цветом (с серой тенью) шрифтом Arial.

<?php
// Тип содержимого
header('Content-Type: image/png');

// Создание изображения
$im = imagecreatetruecolor(400, 30);

// Создание цветов
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

// Текст надписи
$text = 'Тест...';
// Замена пути к шрифту на пользовательский
$font = 'arial.ttf';

// Тень
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Текст
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

imagepng($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagettftext()

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомплирован с поддержкой freetype (--with-freetype-dir=DIR )

Смотрите также

  • imagettfbbox() - Получение параметров рамки обрамляющей текст написанный TrueType шрифтом
  • imagefttext() - Нанесение текста на изображение, используя шрифты FreeType 2


Возвращает список типов изображений, поддерживаемых PHP сборкой

  • « imagettftext
  • imagewbmp »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Возвращает список типов изображений, поддерживаемых PHP сборкой

imagetypes

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

imagetypes — Возвращает список типов изображений, поддерживаемых PHP сборкой

Описание

imagetypes ( void ) : int

Возвращает типы поддерживаемых текущей сборкой PHP изображений.

Возвращаемые значения

Возвращает битовое поле соответствующее форматам изображений, которые поддерживаются текущей версией GD прилинкованной к PHP. Возвращаются следующие биты: IMG_BMP | IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP | IMG_XPM | IMG_WEBP.

Примеры

Пример #1 Проверка поддержки PNG

<?php
if (imagetypes() & IMG_PNG) {
    echo "Поддержка PNG включена";
}
?>

Список изменений

Версия | Описание
7.2.0 | Добавлена константа IMG_BMP.
5.6.25, 7.0.10 | Добавлена константа IMG_WEBP.

Смотрите также

  • gd_info() - Вывод информации о текущей установленной GD библиотеке


Выводит изображение в браузер или пишет в файл

  • « imagetypes
  • imagewebp »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Выводит изображение в браузер или пишет в файл

imagewbmp

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagewbmp — Выводит изображение в браузер или пишет в файл

Описание

imagewbmp ( resource $image [, mixed $to = NULL [, int $foreground ]] ) : bool

imagewbmp() выводит или сохраняет в формате WBMP заданное изображение image.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

to

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде.

foreground

Можно задать цвет верхнего слоя. Цвет задается идентификатором, созданным функцией imagecolorallocate(). По умолчанию цвет черный.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернет TRUE.

Список изменений

Версия | Описание
5.4.0 | Добавлена возможность использовать поток типа resource для to.

Примеры

Пример #1 Вывод WBMP изображения

<?php
// создание пустого изображения и добавление текста
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Простая текстовая строка', $text_color);

// Тип содержимого, в данном случае image/vnd.wap.wbmp
// Подсказка: см. image_type_to_mime_type()
header('Content-Type: image/vnd.wap.wbmp');

// Вывод изображения
imagewbmp($im);

// Освобождение памяти
imagedestroy($im);
?>

Пример #2 Сохранение WBMP изображения

<?php
// создание пустого изображения и добавление текста
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Простая текстовая строка', $text_color);

// Сохранение изображения
imagewbmp($im, 'simpletext.wbmp');

// Освобождение памяти
imagedestroy($im);
?>

Пример #3 Вывод изображения с измененным верхним слоем

<?php
// создание пустого изображения и добавление текста
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Простая текстовая строка', $text_color);

// Тип содержимого, в данном случае image/vnd.wap.wbmp
// Подсказка: см. image_type_to_mime_type()
header('Content-Type: image/vnd.wap.wbmp');

// замена цвета
$foreground_color = imagecolorallocate($im, 255, 0, 0);

imagewbmp($im, NULL, $foreground_color);

// Освобождение памяти
imagedestroy($im);
?>

Смотрите также

  • image2wbmp() - Выводит изображение в браузер или пишет в файл
  • imagepng() - Вывод PNG изображения в браузер или файл
  • imagegif() - Выводит изображение в браузер или пишет в файл
  • imagejpeg() - Выводит изображение в браузер или пишет в файл
  • imagetypes() - Возвращает список типов изображений, поддерживаемых PHP сборкой


Вывод изображения WebP в браузер или файл

  • « imagewbmp
  • imagexbm »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Вывод изображения WebP в браузер или файл

imagewebp

(PHP 5 >= 5.4.0, PHP 7)

imagewebp — Вывод изображения WebP в браузер или файл

Описание

imagewebp ( resource $image [, mixed $to = NULL [, int $quality = 80 ]] ) : bool

Выведет или сохранит WebP-версию данного изображения (image).

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

to

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде.

quality

quality варьируется от 0 (худшее качество, меньший размер файла) до 100 (наилучшее качество, большой файл).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернет TRUE.

Примеры

Пример #1 Сохранение WebP-файла

<?php
// Создать пустое изображение и добавить текст
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);

imagestring($im, 1, 5, 5,  'WebP with PHP', $text_color);

// Сохранить изображение
imagewebp($im, 'php.webp');

// Освободить память
imagedestroy($im);
?>


Вывод XBM изображения в браузер или файл

  • « imagewebp
  • iptcembed »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Вывод XBM изображения в браузер или файл

imagexbm

(PHP 5, PHP 7)

imagexbm — Вывод XBM изображения в браузер или файл

Описание

imagexbm ( resource $image [, string $filename = NULL [, int $foreground ]] ) : bool

Вывод или сохранение в формате XBM изображения image.

Замечание: imagexbm() не использует дополнение, так что ширина изображения должна быть кратна 8. Это ограничение не накладывается с версий PHP 5.6.24 и 7.0.9, соответственно.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

filename

Путь, по которому сохранять файл. Если не установлено, или равно NULL, будет произведен прямой вывод необработанного потока изображения.

filename (без расширения .xbm) также используется как идентификатор C XBM, при этом символы, не являющиеся в текущей локали цифрами или буквами, заменяются на подчеркивание. Если filename задан как NULL, image будет использован для создания идентификатора C.

foreground

Можно задать цвет верхнего слоя. Цвет задается идентификатором созданным функцией imagecolorallocate(). По умолчанию цвет черный. Все остальные цвета интерпритируются как цвета подложки (background).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернет TRUE.

Примеры

Пример #1 Сохранение XBM файла

<?php
// Создание пустого изображения и добавление текста
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Простая текстовая строка', $text_color);

// Сохранение изображения
imagexbm($im, 'simpletext.xbm');

// Освобождение памяти
imagedestroy($im);
?>

Пример #2 Сохранение XBM файла с отличным цветом верхнего слоя

<?php
// Создание пустого изображения и добавление текста
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Простая текстовая строка', $text_color);

// Изменение цвета
$foreground_color = imagecolorallocate($im, 255, 0, 0);

// Сохранение изображения
imagexbm($im, NULL, $foreground_color);

// Освобождение памяти
imagedestroy($im);
?>

Примечания


Встраивание двоичных IPTC данных в JPEG изображение

  • « imagexbm
  • iptcparse »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Встраивание двоичных IPTC данных в JPEG изображение

iptcembed

(PHP 4, PHP 5, PHP 7)

iptcembed — Встраивание двоичных IPTC данных в JPEG изображение

Описание

iptcembed ( string $iptcdata , string $jpeg_file_name [, int $spool = 0 ] ) : mixed

Включает двоичные IPTC данные в JPEG изображение.

Список параметров

iptcdata

Данные.

jpeg_file_name

Путь к JPEG изображению.

spool

Если значение этого флага больше 2, то JPEG будет возвращен в виде строки. В противном случае, JPEG будет напечатан в STDOUT.

Возвращаемые значения

Если spool меньше 2, будет возвращен JPEG, или FALSE в случае возникновения ошибки. В противном случае TRUE в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Встраивание IPTC данных в JPEG

<?php

// iptc_make_tag() функция от Thies C. Arntzen
function iptc_make_tag($rec, $data, $value)
{
    $length = strlen($value);
    $retval = chr(0x1C) . chr($rec) . chr($data);

    if($length < 0x8000)
    {
        $retval .= chr($length >> 8) .  chr($length & 0xFF);
    }
    else
    {
        $retval .= chr(0x80) .
                   chr(0x04) .
                   chr(($length >> 24) & 0xFF) .
                   chr(($length >> 16) & 0xFF) .
                   chr(($length >> 8) & 0xFF) .
                   chr($length & 0xFF);
    }

    return $retval . $value;
}

// Путь к jpeg файлу
$path = './phplogo.jpg';

// установка IPTC тэгов
$iptc = array(
    '2#120' => 'Тестовое изображение',
    '2#116' => 'Copyright 2008-2009, The PHP Group'
);

// Преобразование IPTC тэгов в двоичный код
$data = '';

foreach($iptc as $tag => $string)
{
    $tag = substr($tag, 2);
    $data .= iptc_make_tag(2, $tag, $string);
}

// Встраивание IPTC данных
$content = iptcembed($data, $path);

// запись нового изображения в файл
$fp = fopen($path, "wb");
fwrite($fp, $content);
fclose($fp);
?>

Примечания

Замечание:

Этой функции не требуется библиотека GD.


Разбор двоичных IPTC данных на отдельные теги

  • « iptcembed
  • jpeg2wbmp »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Разбор двоичных IPTC данных на отдельные теги

iptcparse

(PHP 4, PHP 5, PHP 7)

iptcparse — Разбор двоичных IPTC данных на отдельные теги

Описание

iptcparse ( string $iptcblock ) : array

Разбирает » IPTC данные на отдельные теги.

Список параметров

iptcblock

Двоичные данные IPTC.

Возвращаемые значения

Возвращает массив значений тегов, используя метки тегов в качестве индекса. Возвращает FALSE в случае возникновения ошибки, а также если IPTC данные отсутствуют.

Примеры

Пример #1 iptcparse() используется совместно с getimagesize()

<?php
$size = getimagesize('./test.jpg', $info);
if(isset($info['APP13']))
{
    $iptc = iptcparse($info['APP13']);
    var_dump($iptc);
}
?>

Примечания

Замечание:

Этой функции не требуется библиотека GD.


Конвертирует изображение из формата JPEG в WBMP

  • « iptcparse
  • png2wbmp »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Конвертирует изображение из формата JPEG в WBMP

jpeg2wbmp

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

jpeg2wbmp — Конвертирует изображение из формата JPEG в WBMP

Внимание

jpeg2wbmp() объявлена устаревшей в PHP 7.2.0 и будет удалена в PHP 8.0.0. Вместо нее используйте imagecreatefromjpeg() и imagewbmp().

Описание

jpeg2wbmp ( string $jpegname , string $wbmpname , int $dest_height , int $dest_width , int $threshold ) : bool

Конвертирует JPEG-файл в WBMP.

Список параметров

jpegname

Путь к JPEG-файлу.

wbmpname

Путь для размещения WBMP-файла.

dest_height

Высота WBMP-изображения.

dest_width

Ширина WBMP-изображения.

threshold

Пороговое значение, от 0 до 8 (включительно).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернет TRUE.

Примеры

Пример #1 Пример использования jpeg2wbmp()

<?php
// Путь к исходному jpeg-изображению
$path = './test.jpg';

// Получаем размеры изображения
$image = getimagesize($path);

// Конвертируем изображение
jpeg2wbmp($path, './test.wbmp', $image[1], $image[0], 5);
?>

Смотрите также

  • png2wbmp() - Преобразование PNG файла в WBMP


Преобразование PNG файла в WBMP

  • « jpeg2wbmp
  • Gmagick »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Преобразование PNG файла в WBMP

png2wbmp

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

png2wbmp — Преобразование PNG файла в WBMP

Внимание

png2wbmp() объявлена устаревшей в PHP 7.2.0 и будет удалена в PHP 8.0.0. Вместо нее используйте imagecreatefrompng() и imagewbmp().

Описание

png2wbmp ( string $pngname , string $wbmpname , int $dest_height , int $dest_width , int $threshold ) : bool

Преобразует PNG файл в WBMP.

Список параметров

pngname

Путь к PNG файлу.

wbmpname

Путь к результирующему WBMP файлу.

dest_height

Высота результирующего изображения.

dest_width

Ширина результирующего изображения.

threshold

Ограничение, от 0 до 8 (включительно).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернет TRUE.

Примеры

Пример #1 Пример использования png2wbmp()

<?php
// Путь к png
$path = './test.png';

// Получение размеров изображений
$image = getimagesize($path);

// Преобразование
png2wbmp($path, './test.wbmp', $image[1], $image[0], 7);
?>

Смотрите также

  • jpeg2wbmp() - Конвертирует изображение из формата JPEG в WBMP


Gmagick

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределенные константы
  • Примеры
  • Gmagick — Класс Gmagick
    • Gmagick::addimage — Добавление нового изображения в список изображений объекта Gmagick
    • Gmagick::addnoiseimage — Добавляет случайный шум к изображению
    • Gmagick::annotateimage — Подписать изображение текстом
    • Gmagick::blurimage — Добавить размытие изображению
    • Gmagick::borderimage — Добавить рамку к изображению
    • Gmagick::charcoalimage — Имитация рисования углем
    • Gmagick::chopimage — Удаляет область изображения и подрезает его
    • Gmagick::clear — Зачищает все ресурсы, связанные с объектом Gmagick
    • Gmagick::commentimage — Добавить комментарий к изображению
    • Gmagick::compositeimage — Composite one image onto another
    • Gmagick::__construct — Конструктор объекта Gmagick
    • Gmagick::cropimage — Обрезает изображение
    • Gmagick::cropthumbnailimage — Создание обрезанного уменьшенного изображения
    • Gmagick::current — Вернуть самого себя
    • Gmagick::cyclecolormapimage — Displaces an image's colormap
    • Gmagick::deconstructimages — Returns certain pixel differences between images
    • Gmagick::despeckleimage — The despeckleimage purpose
    • Gmagick::destroy — Уничтожить объект Gmagick
    • Gmagick::drawimage — Renders the GmagickDraw object on the current image
    • Gmagick::edgeimage — Enhance edges within the image
    • Gmagick::embossimage — Returns a grayscale image with a three-dimensional effect
    • Gmagick::enhanceimage — Improves the quality of a noisy image
    • Gmagick::equalizeimage — Equalizes the image histogram
    • Gmagick::flipimage — Creates a vertical mirror image
    • Gmagick::flopimage — The flopimage purpose
    • Gmagick::frameimage — Adds a simulated three-dimensional border
    • Gmagick::gammaimage — Gamma-corrects an image
    • Gmagick::getcopyright — Возвращает копирайт GraphicsMagick API в виде строки
    • Gmagick::getfilename — Возвращает имя файла связанного с последовательностью изображений
    • Gmagick::getimagebackgroundcolor — Возвращает цвет фона изображения
    • Gmagick::getimageblueprimary — Returns the chromaticy blue primary point
    • Gmagick::getimagebordercolor — Returns the image border color
    • Gmagick::getimagechanneldepth — Gets the depth for a particular image channel
    • Gmagick::getimagecolors — Возвращает цвет указанного индекса карты цветов
    • Gmagick::getimagecolorspace — Возвращает цветовое пространство изображения
    • Gmagick::getimagecompose — Returns the composite operator associated with the image
    • Gmagick::getimagedelay — Gets the image delay
    • Gmagick::getimagedepth — Gets the depth of the image
    • Gmagick::getimagedispose — Gets the image disposal method
    • Gmagick::getimageextrema — Gets the extrema for the image
    • Gmagick::getimagefilename — Возвращает имя файла конкретного изображения в последовательности
    • Gmagick::getimageformat — Возвращает формат конкретного изображения в последовательности
    • Gmagick::getimagegamma — Возвращает гамму изображения
    • Gmagick::getimagegreenprimary — Returns the chromaticy green primary point
    • Gmagick::getimageheight — Возвращает высоту изображения
    • Gmagick::getimagehistogram — Возвращает гистограмму изображения
    • Gmagick::getimageindex — Возвращает индекс текущего активного изображения
    • Gmagick::getimageinterlacescheme — Gets the image interlace scheme
    • Gmagick::getimageiterations — Gets the image iterations
    • Gmagick::getimagematte — Check if the image has a matte channel
    • Gmagick::getimagemattecolor — Returns the image matte color
    • Gmagick::getimageprofile — Возвращает именованный профайл изображения
    • Gmagick::getimageredprimary — Returns the chromaticity red primary point
    • Gmagick::getimagerenderingintent — Gets the image rendering intent
    • Gmagick::getimageresolution — Возвращает разрешение изображения
    • Gmagick::getimagescene — Gets the image scene
    • Gmagick::getimagesignature — Generates an SHA-256 message digest
    • Gmagick::getimagetype — Возвращает потенциальный тип изображения
    • Gmagick::getimageunits — Возвращает единицы разрешения изображения
    • Gmagick::getimagewhitepoint — Возвращает хроматическую белую точку
    • Gmagick::getimagewidth — Возвращает ширину изображения
    • Gmagick::getpackagename — Возвращает имя пакета GraphicsMagick
    • Gmagick::getquantumdepth — Возвращает глубину цвета (бит на канал) объекта Gmagick в виде строки
    • Gmagick::getreleasedate — Возвращает дату релиза GraphicsMagick в виде строки
    • Gmagick::getsamplingfactors — Возвращает вертикальный и горизонтальный фактор дискретизации
    • Gmagick::getsize — Возвращает размер, связанный с объектом Gmagick
    • Gmagick::getversion — Возвращает версию GraphicsMagick API
    • Gmagick::hasnextimage — Проверяет, есть ли еще изображения в объекте
    • Gmagick::haspreviousimage — Проверяет, есть ли еще изображения в объекте при итерации назад
    • Gmagick::implodeimage — Creates a new image as a copy
    • Gmagick::labelimage — Adds a label to an image
    • Gmagick::levelimage — Adjusts the levels of an image
    • Gmagick::magnifyimage — Scales an image proportionally 2x
    • Gmagick::mapimage — Replaces the colors of an image with the closest color from a reference image
    • Gmagick::medianfilterimage — Applies a digital filter
    • Gmagick::minifyimage — Scales an image proportionally to half its size
    • Gmagick::modulateimage — Control the brightness, saturation, and hue
    • Gmagick::motionblurimage — Simulates motion blur
    • Gmagick::newimage — Creates a new image
    • Gmagick::nextimage — Moves to the next image
    • Gmagick::normalizeimage — Enhances the contrast of a color image
    • Gmagick::oilpaintimage — Simulates an oil painting
    • Gmagick::previousimage — Move to the previous image in the object
    • Gmagick::profileimage — Adds or removes a profile from an image
    • Gmagick::quantizeimage — Analyzes the colors within a reference image
    • Gmagick::quantizeimages — The quantizeimages purpose
    • Gmagick::queryfontmetrics — Returns an array representing the font metrics
    • Gmagick::queryfonts — Returns the configured fonts
    • Gmagick::queryformats — Returns formats supported by Gmagick
    • Gmagick::radialblurimage — Radial blurs an image
    • Gmagick::raiseimage — Creates a simulated 3d button-like effect
    • Gmagick::read — Читает изображение из файла
    • Gmagick::readimage — Читает изображение из файла
    • Gmagick::readimageblob — Читает изображение из бинарной строки
    • Gmagick::readimagefile — Читает изображение или последовательность изображений из файлового дескриптора
    • Gmagick::reducenoiseimage — Smooths the contours of an image
    • Gmagick::removeimage — Удаляет изображение из списка
    • Gmagick::removeimageprofile — Удаляет именованый профайл изображения и возвращает его
    • Gmagick::resampleimage — Resample image to desired resolution
    • Gmagick::resizeimage — Scales an image
    • Gmagick::rollimage — Offsets an image
    • Gmagick::rotateimage — Rotates an image
    • Gmagick::scaleimage — Scales the size of an image
    • Gmagick::separateimagechannel — Separates a channel from the image
    • Gmagick::setCompressionQuality — Sets the object's default compression quality
    • Gmagick::setfilename — Sets the filename before you read or write the image
    • Gmagick::setimagebackgroundcolor — Sets the image background color
    • Gmagick::setimageblueprimary — Sets the image chromaticity blue primary point
    • Gmagick::setimagebordercolor — Sets the image border color
    • Gmagick::setimagechanneldepth — Sets the depth of a particular image channel
    • Gmagick::setimagecolorspace — Sets the image colorspace
    • Gmagick::setimagecompose — Sets the image composite operator
    • Gmagick::setimagedelay — Sets the image delay
    • Gmagick::setimagedepth — Sets the image depth
    • Gmagick::setimagedispose — Sets the image disposal method
    • Gmagick::setimagefilename — Sets the filename of a particular image in a sequence
    • Gmagick::setimageformat — Sets the format of a particular image
    • Gmagick::setimagegamma — Sets the image gamma
    • Gmagick::setimagegreenprimary — Sets the image chromaticity green primary point
    • Gmagick::setimageindex — Set the iterator to the position in the image list specified with the index parameter
    • Gmagick::setimageinterlacescheme — Sets the interlace scheme of the image
    • Gmagick::setimageiterations — Sets the image iterations
    • Gmagick::setimageprofile — Adds a named profile to the Gmagick object
    • Gmagick::setimageredprimary — Sets the image chromaticity red primary point
    • Gmagick::setimagerenderingintent — Sets the image rendering intent
    • Gmagick::setimageresolution — Sets the image resolution
    • Gmagick::setimagescene — Sets the image scene
    • Gmagick::setimagetype — Sets the image type
    • Gmagick::setimageunits — Sets the image units of resolution
    • Gmagick::setimagewhitepoint — Sets the image chromaticity white point
    • Gmagick::setsamplingfactors — Sets the image sampling factors
    • Gmagick::setsize — Sets the size of the Gmagick object
    • Gmagick::shearimage — Creating a parallelogram
    • Gmagick::solarizeimage — Applies a solarizing effect to the image
    • Gmagick::spreadimage — Randomly displaces each pixel in a block
    • Gmagick::stripimage — Strips an image of all profiles and comments
    • Gmagick::swirlimage — Swirls the pixels about the center of the image
    • Gmagick::thumbnailimage — Changes the size of an image
    • Gmagick::trimimage — Remove edges from the image
    • Gmagick::write — Псевдоним Gmagick::writeimage
    • Gmagick::writeimage — Записывает изображение в указанный файл
  • GmagickDraw — Класс GmagickDraw
    • GmagickDraw::annotate — Draws text on the image
    • GmagickDraw::arc — Draws an arc
    • GmagickDraw::bezier — Draws a bezier curve
    • GmagickDraw::ellipse — Draws an ellipse on the image
    • GmagickDraw::getfillcolor — Returns the fill color
    • GmagickDraw::getfillopacity — Returns the opacity used when drawing
    • GmagickDraw::getfont — Returns the font
    • GmagickDraw::getfontsize — Returns the font pointsize
    • GmagickDraw::getfontstyle — Returns the font style
    • GmagickDraw::getfontweight — Returns the font weight
    • GmagickDraw::getstrokecolor — Returns the color used for stroking object outlines
    • GmagickDraw::getstrokeopacity — Returns the opacity of stroked object outlines
    • GmagickDraw::getstrokewidth — Returns the width of the stroke used to draw object outlines
    • GmagickDraw::gettextdecoration — Returns the text decoration
    • GmagickDraw::gettextencoding — Returns the code set used for text annotations
    • GmagickDraw::line — The line purpose
    • GmagickDraw::point — Draws a point
    • GmagickDraw::polygon — Draws a polygon
    • GmagickDraw::polyline — Draws a polyline
    • GmagickDraw::rectangle — Draws a rectangle
    • GmagickDraw::rotate — Applies the specified rotation to the current coordinate space
    • GmagickDraw::roundrectangle — Draws a rounded rectangle
    • GmagickDraw::scale — Adjusts the scaling factor
    • GmagickDraw::setfillcolor — Sets the fill color to be used for drawing filled objects
    • GmagickDraw::setfillopacity — The setfillopacity purpose
    • GmagickDraw::setfont — Sets the fully-specified font to use when annotating with text
    • GmagickDraw::setfontsize — Sets the font pointsize to use when annotating with text
    • GmagickDraw::setfontstyle — Sets the font style to use when annotating with text
    • GmagickDraw::setfontweight — Sets the font weight
    • GmagickDraw::setstrokecolor — Sets the color used for stroking object outlines
    • GmagickDraw::setstrokeopacity — Specifies the opacity of stroked object outlines
    • GmagickDraw::setstrokewidth — Sets the width of the stroke used to draw object outlines
    • GmagickDraw::settextdecoration — Specifies a decoration
    • GmagickDraw::settextencoding — Specifies the text code set
  • GmagickPixel — Класс GmagickPixel
    • GmagickPixel::__construct — Конструктора класса GmagickPixel
    • GmagickPixel::getcolor — Возвращает цвет
    • GmagickPixel::getcolorcount — Получить количество пикселей изображения, имеющих заданный цвет
    • GmagickPixel::getcolorvalue — Возвращает нормализованное значение для заданного цветового канала
    • GmagickPixel::setcolor — Задать цвет
    • GmagickPixel::setcolorvalue — Установить нормализованное значение цветового канала


Введение

Gmagick - модуль php для создания, изменения и получения meta-данных изображений, используя GraphicsMagick API.

GraphicsMagick - швейцарский армейский нож обработки изображений. Он работает более чем с 88 форматами, включая основные форматы, такие как DPX, GIF, JPEG, JPEG-2000, PNG, PDF, PNM и TIFF.

Gmagick состоит из основного класса Gmagick, класса GmagickDraw, который, по сути, есть волшебная палочка рисования и класса GmagickPixel, экземпляры которого представляют собой один пиксель изображения (цвет, прозрачность).


Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения


Требования

Модуль точно работает с GraphicsMagick версии 1.4+ и PHP 5.1.3+. Gmagick должен работать и с более старыми версиями, вплоть до GraphicsMagick 1.2.6, но некоторые возможности и форматы не будут поддерживаться. Версия GraphicsMagick под Windows доступна на сайте GraphicsMagick. Про различия между ImageMagick и GraphicsMagick можно почитать в этом » FAQ .


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/gmagick.

Замечание: Официальное имя модуля - gmagick.

Сборка модуля для Windows доступна » тут


  • « Установка
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Настройка во время выполнения

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Цветовые константы
Gmagick::COLOR_BLACK (integer)
Черный
Gmagick::COLOR_BLUE (integer)
Синий
Gmagick::COLOR_CYAN (integer)
Бирюзовый
Gmagick::COLOR_GREEN (integer)
Зеленый
Gmagick::COLOR_RED (integer)
Красный
Gmagick::COLOR_YELLOW (integer)
Желтый
Gmagick::COLOR_MAGENTA (integer)
Пурпурный
Gmagick::COLOR_OPACITY (integer)
Непрозрачность
Gmagick::COLOR_ALPHA (integer)
Альфа-канал
Gmagick::COLOR_FUZZ (integer)
Распушка
Константы композитного оператора
Gmagick::COMPOSITE_DEFAULT (integer)
Композитный оператор по умолчанию
Gmagick::COMPOSITE_UNDEFINED (integer)
Неопределенный композитный оператор
Gmagick::COMPOSITE_NO (integer)
Композитный оператор не задан
Gmagick::COMPOSITE_ADD (integer)
Результат сложения изображений
Gmagick::COMPOSITE_ATOP (integer)
Результат имеет ту же форму, что и исходное изображение, но затемненный с помощью композитного изображения в местах пересечения.
Gmagick::COMPOSITE_BLEND (integer)
Смешение изображения
Gmagick::COMPOSITE_BUMPMAP (integer)
То же, что и COMPOSITE_MULTIPLY, за исключением того, что исходное изображение сначала преобразуется к оттенкам серого.
Gmagick::COMPOSITE_CLEAR (integer)
Делает целевое изображение прозрачным.
Gmagick::COMPOSITE_COLORBURN (integer)
Затемняет целевое изображение, для отражения исходного изображения.
Gmagick::COMPOSITE_COLORDODGE (integer)
Осветляет целевое изображение, для отражения исходного изображения.
Gmagick::COMPOSITE_COLORIZE (integer)
Раскрашивает целевое изображение, используя композитное изображение.
Gmagick::COMPOSITE_COPYBLACK (integer)
Копирует черный канал из источника в приемник
Gmagick::COMPOSITE_COPYBLUE (integer)
Копирует синий канал из источника в приемник
Gmagick::COMPOSITE_COPY (integer)
Копирует источник в приемник
Gmagick::COMPOSITE_COPYCYAN (integer)
Копирует бирюзовый канал из источника в приемник
Gmagick::COMPOSITE_COPYGREEN (integer)
Копирует зеленый канал из источника в приемник
Gmagick::COMPOSITE_COPYMAGENTA (integer)
Копирует пурпурный канал из источника в приемник
Gmagick::COMPOSITE_COPYOPACITY (integer)
Копирует канал прозрачности из источника в приемник
Gmagick::COMPOSITE_COPYRED (integer)
Копирует красный канал из источника в приемник
Gmagick::COMPOSITE_COPYYELLOW (integer)
Копирует желтый канал из источника в приемник
Gmagick::COMPOSITE_DARKEN (integer)
Затемнение приемника
Gmagick::COMPOSITE_DSTATOP (integer)
Часть приемника, лежащая внутри источника, накладывается на источник и заменяет приемник
Gmagick::COMPOSITE_DST (integer)
Приемник остается нетронутым
Gmagick::COMPOSITE_DSTIN (integer)
Часть внутри источника заменяет приемник
Gmagick::COMPOSITE_DSTOUT (integer)
Часть вне источника заменяет приемник
Gmagick::COMPOSITE_DSTOVER (integer)
Приемник заменяет источник
Gmagick::COMPOSITE_DIFFERENCE (integer)
Вычитает более темное значение цвета из более светлого
Gmagick::COMPOSITE_DISPLACE (integer)
Сдвигает пиксели приемника как задано в источнике
Gmagick::COMPOSITE_DISSOLVE (integer)
Растворяет источник в приемнике
Gmagick::COMPOSITE_EXCLUSION (integer)
Создает эффект аналогичный Gmagick::COMPOSITE_DIFFERENCE, но выглядит как снижение контраста
Gmagick::COMPOSITE_HARDLIGHT (integer)
Умножает или осветляет цвета, в зависимости от значения цвета источника
Gmagick::COMPOSITE_HUE (integer)
Модифицирует оттенок приемника в соответствии с источником
Gmagick::COMPOSITE_IN (integer)
Подмешивает источник в приемник
Gmagick::COMPOSITE_LIGHTEN (integer)
Осветляет приемник в соответствии с источником
Gmagick::COMPOSITE_LUMINIZE (integer)
Люминизирует приемник в соответствии с источником
Gmagick::COMPOSITE_MINUS (integer)
Вычитает источник из приемника
Gmagick::COMPOSITE_MODULATE (integer)
Модулирует яркость, насыщенность и оттенок приемника в соответствии с источником
Gmagick::COMPOSITE_MULTIPLY (integer)
Умножает приемник на источник
Gmagick::COMPOSITE_OUT (integer)
Накладывает внешние части источника на приемник
Gmagick::COMPOSITE_OVER (integer)
Подмешивает источник поверх приемника
Gmagick::COMPOSITE_OVERLAY (integer)
Перекрывает приемник источником
Gmagick::COMPOSITE_PLUS (integer)
Добавляет источник к приемнику
Gmagick::COMPOSITE_REPLACE (integer)
Заменяет приемник источником
Gmagick::COMPOSITE_SATURATE (integer)
Меняет насыщеность приемника в соответствии с источником
Gmagick::COMPOSITE_SCREEN (integer)
Источник и приемник дополняются, после этого умножаются и заменяют приемник
Gmagick::COMPOSITE_SOFTLIGHT (integer)
Затемняет или осветляет в зависимости от источника
Gmagick::COMPOSITE_SRCATOP (integer)
Часть источника, лежащая вне приемника, подмешивается в приемник
Gmagick::COMPOSITE_SRC (integer)
Источник копируется в приемник
Gmagick::COMPOSITE_SRCIN (integer)
Часть источника, лежащая внутри приемника заменяет приемник
Gmagick::COMPOSITE_SRCOUT (integer)
Часть источника, лежащая вне приемника заменяет приемник
Gmagick::COMPOSITE_SRCOVER (integer)
Источник заменяет приемник
Gmagick::COMPOSITE_SUBTRACT (integer)
Вычитает цвета изображения источника из изображения приемника
Gmagick::COMPOSITE_THRESHOLD (integer)
Источник подмешивается к приемнику, как определено в пороговом значении источника
Gmagick::COMPOSITE_XOR (integer)
Часть источника, лежащая вне приемника комбинируется с частью приемника лежащей вне источника
Константы режима монтажа
Gmagick::MONTAGEMODE_FRAME (integer)
Gmagick::MONTAGEMODE_UNFRAME (integer)
Gmagick::MONTAGEMODE_CONCATENATE (integer)
Константы стиля
Gmagick::STYLE_NORMAL (integer)
Gmagick::STYLE_ITALIC (integer)
Gmagick::STYLE_OBLIQUE (integer)
Gmagick::STYLE_ANY (integer)
Константы фильтрации
Gmagick::FILTER_UNDEFINED (integer)
Gmagick::FILTER_POINT (integer)
Gmagick::FILTER_BOX (integer)
Gmagick::FILTER_TRIANGLE (integer)
Gmagick::FILTER_HERMITE (integer)
Gmagick::FILTER_HANNING (integer)
Gmagick::FILTER_HAMMING (integer)
Gmagick::FILTER_BLACKMAN (integer)
Gmagick::FILTER_GAUSSIAN (integer)
Gmagick::FILTER_QUADRATIC (integer)
Gmagick::FILTER_CUBIC (integer)
Gmagick::FILTER_CATROM (integer)
Gmagick::FILTER_MITCHELL (integer)
Gmagick::FILTER_LANCZOS (integer)
Gmagick::FILTER_BESSEL (integer)
Gmagick::FILTER_SINC (integer)
Константы типа изображения
Gmagick::IMGTYPE_UNDEFINED (integer)
Gmagick::IMGTYPE_BILEVEL (integer)
Gmagick::IMGTYPE_GRAYSCALE (integer)
Gmagick::IMGTYPE_GRAYSCALEMATTE (integer)
Gmagick::IMGTYPE_PALETTE (integer)
Gmagick::IMGTYPE_PALETTEMATTE (integer)
Gmagick::IMGTYPE_TRUECOLOR (integer)
Gmagick::IMGTYPE_TRUECOLORMATTE (integer)
Gmagick::IMGTYPE_COLORSEPARATION (integer)
Gmagick::IMGTYPE_COLORSEPARATIONMATTE (integer)
Gmagick::IMGTYPE_OPTIMIZE (integer)
Константы разрешения
Gmagick::RESOLUTION_UNDEFINED (integer)
Gmagick::RESOLUTION_PIXELSPERINCH (integer)
Gmagick::RESOLUTION_PIXELSPERCENTIMETER (integer)
Константы сжатия
Gmagick::COMPRESSION_UNDEFINED (integer)
Gmagick::COMPRESSION_NO (integer)
Gmagick::COMPRESSION_BZIP (integer)
Gmagick::COMPRESSION_FAX (integer)
Gmagick::COMPRESSION_GROUP4 (integer)
Gmagick::COMPRESSION_JPEG (integer)
Gmagick::COMPRESSION_JPEG2000 (integer)
Gmagick::COMPRESSION_LOSSLESSJPEG (integer)
Gmagick::COMPRESSION_LZW (integer)
Gmagick::COMPRESSION_RLE (integer)
Gmagick::COMPRESSION_ZIP (integer)
Константы рисования
Gmagick::PAINT_POINT (integer)
Gmagick::PAINT_REPLACE (integer)
Gmagick::PAINT_FLOODFILL (integer)
Gmagick::PAINT_FILLTOBORDER (integer)
Gmagick::PAINT_RESET (integer)
Гравитационные константы
Gmagick::GRAVITY_NORTHWEST (integer)
Gmagick::GRAVITY_NORTH (integer)
Gmagick::GRAVITY_NORTHEAST (integer)
Gmagick::GRAVITY_WEST (integer)
Gmagick::GRAVITY_CENTER (integer)
Gmagick::GRAVITY_EAST (integer)
Gmagick::GRAVITY_SOUTHWEST (integer)
Gmagick::GRAVITY_SOUTH (integer)
Gmagick::GRAVITY_SOUTHEAST (integer)
Константы растяжения
Gmagick::STRETCH_NORMAL (integer)
Gmagick::STRETCH_ULTRACONDENSED (integer)
Gmagick::STRETCH_CONDENSED (integer)
Gmagick::STRETCH_SEMICONDENSED (integer)
Gmagick::STRETCH_SEMIEXPANDED (integer)
Gmagick::STRETCH_EXPANDED (integer)
Gmagick::STRETCH_EXTRAEXPANDED (integer)
Gmagick::STRETCH_ULTRAEXPANDED (integer)
Gmagick::STRETCH_ANY (integer)
Align constants
Gmagick::ALIGN_UNDEFINED (integer)
Gmagick::ALIGN_LEFT (integer)
Gmagick::ALIGN_CENTER (integer)
Gmagick::ALIGN_RIGHT (integer)
Константы декорирования
Gmagick::DECORATION_NO (integer)
Gmagick::DECORATION_UNDERLINE (integer)
Gmagick::DECORATION_OVERLINE (integer)
Gmagick::DECORATION_LINETROUGH (integer)
Константы шума
Gmagick::NOISE_UNIFORM (integer)
Gmagick::NOISE_GAUSSIAN (integer)
Gmagick::NOISE_MULTIPLICATIVEGAUSSIAN (integer)
Gmagick::NOISE_IMPULSE (integer)
Gmagick::NOISE_LAPLACIAN (integer)
Gmagick::NOISE_POISSON (integer)
Константы каналов
Gmagick::CHANNEL_UNDEFINED (integer)
Gmagick::CHANNEL_RED (integer)
Gmagick::CHANNEL_GRAY (integer)
Gmagick::CHANNEL_CYAN (integer)
Gmagick::CHANNEL_GREEN (integer)
Gmagick::CHANNEL_MAGENTA (integer)
Gmagick::CHANNEL_BLUE (integer)
Gmagick::CHANNEL_YELLOW (integer)
Gmagick::CHANNEL_ALPHA (integer)
Gmagick::CHANNEL_OPACITY (integer)
Gmagick::CHANNEL_MATTE (integer)
Gmagick::CHANNEL_BLACK (integer)
Gmagick::CHANNEL_INDEX (integer)
Gmagick::CHANNEL_ALL (integer)
Метрические константы
Gmagick::METRIC_UNDEFINED (integer)
Gmagick::METRIC_MEANABSOLUTEERROR (integer)
Gmagick::METRIC_MEANSQUAREERROR (integer)
Gmagick::METRIC_PEAKABSOLUTEERROR (integer)
Gmagick::METRIC_PEAKSIGNALTONOISERATIO (integer)
Gmagick::METRIC_ROOTMEANSQUAREDERROR (integer)
Пиксельные константы
Gmagick::PIXEL_CHAR (integer)
Gmagick::PIXEL_DOUBLE (integer)
Gmagick::PIXEL_FLOAT (integer)
Gmagick::PIXEL_INTEGER (integer)
Gmagick::PIXEL_LONG (integer)
Gmagick::PIXEL_QUANTUM (integer)
Gmagick::PIXEL_SHORT (integer)
Константы цветового пространства
Gmagick::COLORSPACE_UNDEFINED (integer)
Gmagick::COLORSPACE_RGB (integer)
Gmagick::COLORSPACE_GRAY (integer)
Gmagick::COLORSPACE_TRANSPARENT (integer)
Gmagick::COLORSPACE_OHTA (integer)
Gmagick::COLORSPACE_LAB (integer)
Gmagick::COLORSPACE_XYZ (integer)
Gmagick::COLORSPACE_YCBCR (integer)
Gmagick::COLORSPACE_YCC (integer)
Gmagick::COLORSPACE_YIQ (integer)
Gmagick::COLORSPACE_YPBPR (integer)
Gmagick::COLORSPACE_YUV (integer)
Gmagick::COLORSPACE_CMYK (integer)
Gmagick::COLORSPACE_SRGB (integer)
Gmagick::COLORSPACE_HSB (integer)
Gmagick::COLORSPACE_HSL (integer)
Gmagick::COLORSPACE_HWB (integer)
Gmagick::COLORSPACE_REC601LUMA (integer)
Gmagick::COLORSPACE_REC709LUMA (integer)
Gmagick::COLORSPACE_LOG (integer)
Константы метода виртуального пикселя
Gmagick::VIRTUALPIXELMETHOD_UNDEFINED (integer)
Gmagick::VIRTUALPIXELMETHOD_BACKGROUND (integer)
Gmagick::VIRTUALPIXELMETHOD_CONSTANT (integer)
Gmagick::VIRTUALPIXELMETHOD_EDGE (integer)
Gmagick::VIRTUALPIXELMETHOD_MIRROR (integer)
Gmagick::VIRTUALPIXELMETHOD_TILE (integer)
Gmagick::VIRTUALPIXELMETHOD_TRANSPARENT (integer)
Константы предпросмотра
Gmagick::PREVIEW_UNDEFINED (integer)
Gmagick::PREVIEW_ROTATE (integer)
Gmagick::PREVIEW_SHEAR (integer)
Gmagick::PREVIEW_ROLL (integer)
Gmagick::PREVIEW_HUE (integer)
Gmagick::PREVIEW_SATURATION (integer)
Gmagick::PREVIEW_BRIGHTNESS (integer)
Gmagick::PREVIEW_GAMMA (integer)
Gmagick::PREVIEW_SPIFF (integer)
Gmagick::PREVIEW_DULL (integer)
Gmagick::PREVIEW_GRAYSCALE (integer)
Gmagick::PREVIEW_QUANTIZE (integer)
Gmagick::PREVIEW_DESPECKLE (integer)
Gmagick::PREVIEW_REDUCENOISE (integer)
Gmagick::PREVIEW_ADDNOISE (integer)
Gmagick::PREVIEW_SHARPEN (integer)
Gmagick::PREVIEW_BLUR (integer)
Gmagick::PREVIEW_THRESHOLD (integer)
Gmagick::PREVIEW_EDGEDETECT (integer)
Gmagick::PREVIEW_SPREAD (integer)
Gmagick::PREVIEW_SOLARIZE (integer)
Gmagick::PREVIEW_SHADE (integer)
Gmagick::PREVIEW_RAISE (integer)
Gmagick::PREVIEW_SEGMENT (integer)
Gmagick::PREVIEW_SWIRL (integer)
Gmagick::PREVIEW_IMPLODE (integer)
Gmagick::PREVIEW_WAVE (integer)
Gmagick::PREVIEW_OILPAINT (integer)
Gmagick::PREVIEW_CHARCOALDRAWING (integer)
Gmagick::PREVIEW_JPEG (integer)
Константы интента отрисовки
Gmagick::RENDERINGINTENT_UNDEFINED (integer)
Gmagick::RENDERINGINTENT_SATURATION (integer)
Gmagick::RENDERINGINTENT_PERCEPTUAL (integer)
Gmagick::RENDERINGINTENT_ABSOLUTE (integer)
Gmagick::RENDERINGINTENT_RELATIVE (integer)
Константы правил заполнения
Gmagick::FILLRULE_UNDEFINED (integer)
Gmagick::FILLRULE_EVENODD (integer)
Gmagick::FILLRULE_NONZERO (integer)
Константы блока пути (pathunit)
Gmagick::PATHUNITS_UNDEFINED (integer)
Gmagick::PATHUNITS_USERSPACE (integer)
Gmagick::PATHUNITS_USERSPACEONUSE (integer)
Gmagick::PATHUNITS_OBJECTBOUNDINGBOX (integer)
Константы Linecap
Gmagick::LINECAP_UNDEFINED (integer)
Gmagick::LINECAP_BUTT (integer)
Gmagick::LINECAP_ROUND (integer)
Gmagick::LINECAP_SQUARE (integer)
Константы объединения линий
Gmagick::LINEJOIN_UNDEFINED (integer)
Gmagick::LINEJOIN_MITER (integer)
Gmagick::LINEJOIN_ROUND (integer)
Gmagick::LINEJOIN_BEVEL (integer)
Константы типа ресурса
Gmagick::RESOURCETYPE_UNDEFINED (integer)
Gmagick::RESOURCETYPE_AREA (integer)
Gmagick::RESOURCETYPE_DISK (integer)
Gmagick::RESOURCETYPE_FILE (integer)
Gmagick::RESOURCETYPE_MAP (integer)
Gmagick::RESOURCETYPE_MEMORY (integer)
Константы ориентации
Gmagick::ORIENTATION_UNDEFINED (integer)
Gmagick::ORIENTATION_TOPLEFT (integer)
Gmagick::ORIENTATION_TOPRIGHT (integer)
Gmagick::ORIENTATION_BOTTOMRIGHT (integer)
Gmagick::ORIENTATION_BOTTOMLEFT (integer)
Gmagick::ORIENTATION_LEFTTOP (integer)
Gmagick::ORIENTATION_RIGHTTOP (integer)
Gmagick::ORIENTATION_RIGHTBOTTOM (integer)
Gmagick::ORIENTATION_LEFTBOTTOM (integer)


Примеры

Следующий код демонстрирует часто используемые операции Gmagick над изображениями.

Пример #1 Примеры использования Gmagick

<?php
// Создаем новый объект Gmagick
$image = new Gmagick('example.jpg');

// Создаем уменьшенную копию изображения. 0 для сохранения пропорций.
$image->thumbnailimage(100, 0);

// Создаем рамку вокруг изображения, после чего накладываем эффект масляной краски
// Обратите внимание на цепочки преобразующих методов, поддерживаемых в gmagick
$image->borderimage("yellow", 8, 8)->oilpaintimage(0.3);

// Записываем полученное изображение в файл
$image->write('example_thumbnail.jpg');
?>


Класс Gmagick

(PECL gmagick >= Unknown)

Введение

Обзор классов

Gmagick {
/* Методы */
public addimage ( Gmagick $source ) : Gmagick
public addnoiseimage ( int $noise_type ) : Gmagick
public annotateimage ( GmagickDraw $GmagickDraw , float $x , float $y , float $angle , string $text ) : Gmagick
public blurimage ( float $radius , float $sigma [, int $channel ] ) : Gmagick
public borderimage ( GmagickPixel $color , int $width , int $height ) : Gmagick
public charcoalimage ( float $radius , float $sigma ) : Gmagick
public chopimage ( int $width , int $height , int $x , int $y ) : Gmagick
public clear ( void ) : Gmagick
public commentimage ( string $comment ) : Gmagick
public compositeimage ( Gmagick $source , int $COMPOSE , int $x , int $y ) : Gmagick
public __construct ([ string $filename ] )
public cropimage ( int $width , int $height , int $x , int $y ) : Gmagick
public cropthumbnailimage ( int $width , int $height ) : Gmagick
public current ( void ) : Gmagick
public cyclecolormapimage ( int $displace ) : Gmagick
public deconstructimages ( void ) : Gmagick
public despeckleimage ( void ) : Gmagick
public destroy ( void ) : bool
public drawimage ( GmagickDraw $GmagickDraw ) : Gmagick
public edgeimage ( float $radius ) : Gmagick
public embossimage ( float $radius , float $sigma ) : Gmagick
public enhanceimage ( void ) : Gmagick
public equalizeimage ( void ) : Gmagick
public flipimage ( void ) : Gmagick
public flopimage ( void ) : Gmagick
public frameimage ( GmagickPixel $color , int $width , int $height , int $inner_bevel , int $outer_bevel ) : Gmagick
public gammaimage ( float $gamma ) : Gmagick
public getcopyright ( void ) : string
public getfilename ( void ) : string
public getimagebackgroundcolor ( void ) : GmagickPixel
public getimageblueprimary ( void ) : array
public getimagebordercolor ( void ) : GmagickPixel
public getimagechanneldepth ( int $channel_type ) : int
public getimagecolors ( void ) : int
public getimagecolorspace ( void ) : int
public getimagecompose ( void ) : int
public getimagedelay ( void ) : int
public getimagedepth ( void ) : int
public getimagedispose ( void ) : int
public getimageextrema ( void ) : array
public getimagefilename ( void ) : string
public getimageformat ( void ) : string
public getimagegamma ( void ) : float
public getimagegreenprimary ( void ) : array
public getimageheight ( void ) : int
public getimagehistogram ( void ) : array
public getimageindex ( void ) : int
public getimageinterlacescheme ( void ) : int
public getimageiterations ( void ) : int
public getimagematte ( void ) : int
public getimagemattecolor ( void ) : GmagickPixel
public getimageprofile ( string $name ) : string
public getimageredprimary ( void ) : array
public getimagerenderingintent ( void ) : int
public getimageresolution ( void ) : array
public getimagescene ( void ) : int
public getimagesignature ( void ) : string
public getimagetype ( void ) : int
public getimageunits ( void ) : int
public getimagewhitepoint ( void ) : array
public getimagewidth ( void ) : int
public getpackagename ( void ) : string
public getquantumdepth ( void ) : array
public getreleasedate ( void ) : string
public getsamplingfactors ( void ) : array
public getsize ( void ) : array
public getversion ( void ) : array
public hasnextimage ( void ) : mixed
public haspreviousimage ( void ) : mixed
public implodeimage ( float $radius ) : mixed
public labelimage ( string $label ) : mixed
public levelimage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Gmagick::CHANNEL_DEFAULT ] ) : mixed
public magnifyimage ( void ) : mixed
public mapimage ( gmagick $gmagick , bool $dither ) : Gmagick
public medianfilterimage ( float $radius ) : void
public minifyimage ( void ) : Gmagick
public modulateimage ( float $brightness , float $saturation , float $hue ) : Gmagick
public motionblurimage ( float $radius , float $sigma , float $angle ) : Gmagick
public newimage ( int $width , int $height , string $background [, string $format ] ) : Gmagick
public nextimage ( void ) : bool
public normalizeimage ([ int $channel ] ) : Gmagick
public oilpaintimage ( float $radius ) : Gmagick
public previousimage ( void ) : bool
public profileimage ( string $name , string $profile ) : Gmagick
public quantizeimage ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError ) : Gmagick
public quantizeimages ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError ) : Gmagick
public queryfontmetrics ( GmagickDraw $draw , string $text ) : array
public queryfonts ([ string $pattern = "*" ] ) : array
public queryformats ([ string $pattern = "*" ] ) : array
public radialblurimage ( float $angle [, int $channel = Gmagick::CHANNEL_DEFAULT ] ) : Gmagick
public raiseimage ( int $width , int $height , int $x , int $y , bool $raise ) : Gmagick
public read ( string $filename ) : Gmagick
public readimage ( string $filename ) : Gmagick
public readimageblob ( string $imageContents [, string $filename ] ) : Gmagick
public readimagefile ( resource $fp [, string $filename ] ) : Gmagick
public reducenoiseimage ( float $radius ) : Gmagick
public removeimage ( void ) : Gmagick
public removeimageprofile ( string $name ) : string
public resampleimage ( float $xResolution , float $yResolution , int $filter , float $blur ) : Gmagick
public resizeimage ( int $width , int $height , int $filter , float $blur [, bool $fit = FALSE ] ) : Gmagick
public rollimage ( int $x , int $y ) : Gmagick
public rotateimage ( mixed $color , float $degrees ) : Gmagick
public scaleimage ( int $width , int $height [, bool $fit = FALSE ] ) : Gmagick
public separateimagechannel ( int $channel ) : Gmagick
setCompressionQuality ( int $quality = 75 ) : Gmagick
public setfilename ( string $filename ) : Gmagick
public setimagebackgroundcolor ( GmagickPixel $color ) : Gmagick
public setimageblueprimary ( float $x , float $y ) : Gmagick
public setimagebordercolor ( GmagickPixel $color ) : Gmagick
public setimagechanneldepth ( int $channel , int $depth ) : Gmagick
public setimagecolorspace ( int $colorspace ) : Gmagick
public setimagecompose ( int $composite ) : Gmagick
public setimagedelay ( int $delay ) : Gmagick
public setimagedepth ( int $depth ) : Gmagick
public setimagedispose ( int $disposeType ) : Gmagick
public setimagefilename ( string $filename ) : Gmagick
public setimageformat ( string $imageFormat ) : Gmagick
public setimagegamma ( float $gamma ) : Gmagick
public setimagegreenprimary ( float $x , float $y ) : Gmagick
public setimageindex ( int $index ) : Gmagick
public setimageinterlacescheme ( int $interlace ) : Gmagick
public setimageiterations ( int $iterations ) : Gmagick
public setimageprofile ( string $name , string $profile ) : Gmagick
public setimageredprimary ( float $x , float $y ) : Gmagick
public setimagerenderingintent ( int $rendering_intent ) : Gmagick
public setimageresolution ( float $xResolution , float $yResolution ) : Gmagick
public setimagescene ( int $scene ) : Gmagick
public setimagetype ( int $imgType ) : Gmagick
public setimageunits ( int $resolution ) : Gmagick
public setimagewhitepoint ( float $x , float $y ) : Gmagick
public setsamplingfactors ( array $factors ) : Gmagick
public setsize ( int $columns , int $rows ) : Gmagick
public shearimage ( mixed $color , float $xShear , float $yShear ) : Gmagick
public solarizeimage ( int $threshold ) : Gmagick
public spreadimage ( float $radius ) : Gmagick
public stripimage ( void ) : Gmagick
public swirlimage ( float $degrees ) : Gmagick
public thumbnailimage ( int $width , int $height [, bool $fit = FALSE ] ) : Gmagick
public trimimage ( float $fuzz ) : Gmagick
public writeimage ( string $filename [, bool $all_frames = FALSE ] ) : Gmagick
}

Содержание

  • Gmagick::addimage — Добавление нового изображения в список изображений объекта Gmagick
  • Gmagick::addnoiseimage — Добавляет случайный шум к изображению
  • Gmagick::annotateimage — Подписать изображение текстом
  • Gmagick::blurimage — Добавить размытие изображению
  • Gmagick::borderimage — Добавить рамку к изображению
  • Gmagick::charcoalimage — Имитация рисования углем
  • Gmagick::chopimage — Удаляет область изображения и подрезает его
  • Gmagick::clear — Зачищает все ресурсы, связанные с объектом Gmagick
  • Gmagick::commentimage — Добавить комментарий к изображению
  • Gmagick::compositeimage — Composite one image onto another
  • Gmagick::__construct — Конструктор объекта Gmagick
  • Gmagick::cropimage — Обрезает изображение
  • Gmagick::cropthumbnailimage — Создание обрезанного уменьшенного изображения
  • Gmagick::current — Вернуть самого себя
  • Gmagick::cyclecolormapimage — Displaces an image's colormap
  • Gmagick::deconstructimages — Returns certain pixel differences between images
  • Gmagick::despeckleimage — The despeckleimage purpose
  • Gmagick::destroy — Уничтожить объект Gmagick
  • Gmagick::drawimage — Renders the GmagickDraw object on the current image
  • Gmagick::edgeimage — Enhance edges within the image
  • Gmagick::embossimage — Returns a grayscale image with a three-dimensional effect
  • Gmagick::enhanceimage — Improves the quality of a noisy image
  • Gmagick::equalizeimage — Equalizes the image histogram
  • Gmagick::flipimage — Creates a vertical mirror image
  • Gmagick::flopimage — The flopimage purpose
  • Gmagick::frameimage — Adds a simulated three-dimensional border
  • Gmagick::gammaimage — Gamma-corrects an image
  • Gmagick::getcopyright — Возвращает копирайт GraphicsMagick API в виде строки
  • Gmagick::getfilename — Возвращает имя файла связанного с последовательностью изображений
  • Gmagick::getimagebackgroundcolor — Возвращает цвет фона изображения
  • Gmagick::getimageblueprimary — Returns the chromaticy blue primary point
  • Gmagick::getimagebordercolor — Returns the image border color
  • Gmagick::getimagechanneldepth — Gets the depth for a particular image channel
  • Gmagick::getimagecolors — Возвращает цвет указанного индекса карты цветов
  • Gmagick::getimagecolorspace — Возвращает цветовое пространство изображения
  • Gmagick::getimagecompose — Returns the composite operator associated with the image
  • Gmagick::getimagedelay — Gets the image delay
  • Gmagick::getimagedepth — Gets the depth of the image
  • Gmagick::getimagedispose — Gets the image disposal method
  • Gmagick::getimageextrema — Gets the extrema for the image
  • Gmagick::getimagefilename — Возвращает имя файла конкретного изображения в последовательности
  • Gmagick::getimageformat — Возвращает формат конкретного изображения в последовательности
  • Gmagick::getimagegamma — Возвращает гамму изображения
  • Gmagick::getimagegreenprimary — Returns the chromaticy green primary point
  • Gmagick::getimageheight — Возвращает высоту изображения
  • Gmagick::getimagehistogram — Возвращает гистограмму изображения
  • Gmagick::getimageindex — Возвращает индекс текущего активного изображения
  • Gmagick::getimageinterlacescheme — Gets the image interlace scheme
  • Gmagick::getimageiterations — Gets the image iterations
  • Gmagick::getimagematte — Check if the image has a matte channel
  • Gmagick::getimagemattecolor — Returns the image matte color
  • Gmagick::getimageprofile — Возвращает именованный профайл изображения
  • Gmagick::getimageredprimary — Returns the chromaticity red primary point
  • Gmagick::getimagerenderingintent — Gets the image rendering intent
  • Gmagick::getimageresolution — Возвращает разрешение изображения
  • Gmagick::getimagescene — Gets the image scene
  • Gmagick::getimagesignature — Generates an SHA-256 message digest
  • Gmagick::getimagetype — Возвращает потенциальный тип изображения
  • Gmagick::getimageunits — Возвращает единицы разрешения изображения
  • Gmagick::getimagewhitepoint — Возвращает хроматическую белую точку
  • Gmagick::getimagewidth — Возвращает ширину изображения
  • Gmagick::getpackagename — Возвращает имя пакета GraphicsMagick
  • Gmagick::getquantumdepth — Возвращает глубину цвета (бит на канал) объекта Gmagick в виде строки
  • Gmagick::getreleasedate — Возвращает дату релиза GraphicsMagick в виде строки
  • Gmagick::getsamplingfactors — Возвращает вертикальный и горизонтальный фактор дискретизации
  • Gmagick::getsize — Возвращает размер, связанный с объектом Gmagick
  • Gmagick::getversion — Возвращает версию GraphicsMagick API
  • Gmagick::hasnextimage — Проверяет, есть ли еще изображения в объекте
  • Gmagick::haspreviousimage — Проверяет, есть ли еще изображения в объекте при итерации назад
  • Gmagick::implodeimage — Creates a new image as a copy
  • Gmagick::labelimage — Adds a label to an image
  • Gmagick::levelimage — Adjusts the levels of an image
  • Gmagick::magnifyimage — Scales an image proportionally 2x
  • Gmagick::mapimage — Replaces the colors of an image with the closest color from a reference image
  • Gmagick::medianfilterimage — Applies a digital filter
  • Gmagick::minifyimage — Scales an image proportionally to half its size
  • Gmagick::modulateimage — Control the brightness, saturation, and hue
  • Gmagick::motionblurimage — Simulates motion blur
  • Gmagick::newimage — Creates a new image
  • Gmagick::nextimage — Moves to the next image
  • Gmagick::normalizeimage — Enhances the contrast of a color image
  • Gmagick::oilpaintimage — Simulates an oil painting
  • Gmagick::previousimage — Move to the previous image in the object
  • Gmagick::profileimage — Adds or removes a profile from an image
  • Gmagick::quantizeimage — Analyzes the colors within a reference image
  • Gmagick::quantizeimages — The quantizeimages purpose
  • Gmagick::queryfontmetrics — Returns an array representing the font metrics
  • Gmagick::queryfonts — Returns the configured fonts
  • Gmagick::queryformats — Returns formats supported by Gmagick
  • Gmagick::radialblurimage — Radial blurs an image
  • Gmagick::raiseimage — Creates a simulated 3d button-like effect
  • Gmagick::read — Читает изображение из файла
  • Gmagick::readimage — Читает изображение из файла
  • Gmagick::readimageblob — Читает изображение из бинарной строки
  • Gmagick::readimagefile — Читает изображение или последовательность изображений из файлового дескриптора
  • Gmagick::reducenoiseimage — Smooths the contours of an image
  • Gmagick::removeimage — Удаляет изображение из списка
  • Gmagick::removeimageprofile — Удаляет именованый профайл изображения и возвращает его
  • Gmagick::resampleimage — Resample image to desired resolution
  • Gmagick::resizeimage — Scales an image
  • Gmagick::rollimage — Offsets an image
  • Gmagick::rotateimage — Rotates an image
  • Gmagick::scaleimage — Scales the size of an image
  • Gmagick::separateimagechannel — Separates a channel from the image
  • Gmagick::setCompressionQuality — Sets the object's default compression quality
  • Gmagick::setfilename — Sets the filename before you read or write the image
  • Gmagick::setimagebackgroundcolor — Sets the image background color
  • Gmagick::setimageblueprimary — Sets the image chromaticity blue primary point
  • Gmagick::setimagebordercolor — Sets the image border color
  • Gmagick::setimagechanneldepth — Sets the depth of a particular image channel
  • Gmagick::setimagecolorspace — Sets the image colorspace
  • Gmagick::setimagecompose — Sets the image composite operator
  • Gmagick::setimagedelay — Sets the image delay
  • Gmagick::setimagedepth — Sets the image depth
  • Gmagick::setimagedispose — Sets the image disposal method
  • Gmagick::setimagefilename — Sets the filename of a particular image in a sequence
  • Gmagick::setimageformat — Sets the format of a particular image
  • Gmagick::setimagegamma — Sets the image gamma
  • Gmagick::setimagegreenprimary — Sets the image chromaticity green primary point
  • Gmagick::setimageindex — Set the iterator to the position in the image list specified with the index parameter
  • Gmagick::setimageinterlacescheme — Sets the interlace scheme of the image
  • Gmagick::setimageiterations — Sets the image iterations
  • Gmagick::setimageprofile — Adds a named profile to the Gmagick object
  • Gmagick::setimageredprimary — Sets the image chromaticity red primary point
  • Gmagick::setimagerenderingintent — Sets the image rendering intent
  • Gmagick::setimageresolution — Sets the image resolution
  • Gmagick::setimagescene — Sets the image scene
  • Gmagick::setimagetype — Sets the image type
  • Gmagick::setimageunits — Sets the image units of resolution
  • Gmagick::setimagewhitepoint — Sets the image chromaticity white point
  • Gmagick::setsamplingfactors — Sets the image sampling factors
  • Gmagick::setsize — Sets the size of the Gmagick object
  • Gmagick::shearimage — Creating a parallelogram
  • Gmagick::solarizeimage — Applies a solarizing effect to the image
  • Gmagick::spreadimage — Randomly displaces each pixel in a block
  • Gmagick::stripimage — Strips an image of all profiles and comments
  • Gmagick::swirlimage — Swirls the pixels about the center of the image
  • Gmagick::thumbnailimage — Changes the size of an image
  • Gmagick::trimimage — Remove edges from the image
  • Gmagick::write — Псевдоним Gmagick::writeimage
  • Gmagick::writeimage — Записывает изображение в указанный файл


Добавление нового изображения в список изображений объекта Gmagick

  • « Gmagick
  • Gmagick::addnoiseimage »
  • PHP Manual
  • Gmagick
  • Добавление нового изображения в список изображений объекта Gmagick

Gmagick::addimage

(PECL gmagick >= Unknown)

Gmagick::addimage — Добавление нового изображения в список изображений объекта Gmagick

Описание

public Gmagick::addimage ( Gmagick $source ) : Gmagick

Добавление нового изображения в объект Gmagick с текущей позиции объекта источника. После добавления итератор позиции смещается в конец списка.

Список параметров

source

Объект источник Gmagick

Возвращаемые значения

Объект Gmagick с добавленным изображением

Ошибки

Вызывает GmagickException при ошибке.


Добавляет случайный шум к изображению

  • « Gmagick::addimage
  • Gmagick::annotateimage »
  • PHP Manual
  • Gmagick
  • Добавляет случайный шум к изображению

Gmagick::addnoiseimage

(PECL gmagick >= Unknown)

Gmagick::addnoiseimage — Добавляет случайный шум к изображению

Описание

public Gmagick::addnoiseimage ( int $noise_type ) : Gmagick

Добавляет случайный шум к изображению.

Список параметров

noise_type

Тип шума. Смотрите список констант типа шума.

Возвращаемые значения

Объект Gmagick с добавленным шумом.

Ошибки

Вызывает GmagickException при ошибке.


Подписать изображение текстом

  • « Gmagick::addnoiseimage
  • Gmagick::blurimage »
  • PHP Manual
  • Gmagick
  • Подписать изображение текстом

Gmagick::annotateimage

(PECL gmagick >= Unknown)

Gmagick::annotateimage — Подписать изображение текстом

Описание

public Gmagick::annotateimage ( GmagickDraw $GmagickDraw , float $x , float $y , float $angle , string $text ) : Gmagick

Подписать изображение текстом.

Список параметров

GmagickDraw

Объект GmagickDraw, содержащий настройки для отрисовки текста

x

Горизонтальное смещение левого края текста в пикселях

y

Вертикальное смещение базовой линии текста в пикселях

angle

Угол, под которым размещать текст

text

Текст

Возвращаемые значения

Объект Gmagick с добавленной аннотацией

Ошибки

Вызывает GmagickException при ошибке.


Добавить размытие изображению

  • « Gmagick::annotateimage
  • Gmagick::borderimage »
  • PHP Manual
  • Gmagick
  • Добавить размытие изображению

Gmagick::blurimage

(PECL gmagick >= Unknown)

Gmagick::blurimage — Добавить размытие изображению

Описание

public Gmagick::blurimage ( float $radius , float $sigma [, int $channel ] ) : Gmagick

Добавить размытие изображению.

Список параметров

radius

Радиус размытия

sigma

Стандартное отклонение

Возвращаемые значения

Размытый объект Gmagick

Ошибки

Вызывает GmagickException при ошибке.


Добавить рамку к изображению

  • « Gmagick::blurimage
  • Gmagick::charcoalimage »
  • PHP Manual
  • Gmagick
  • Добавить рамку к изображению

Gmagick::borderimage

(PECL gmagick >= Unknown)

Gmagick::borderimage — Добавить рамку к изображению

Описание

public Gmagick::borderimage ( GmagickPixel $color , int $width , int $height ) : Gmagick

Добавить рамку к изображению. Цвет рамки задается строкой, либо цветом фона объекта GmagickPixel.

Список параметров

color

Объект GmagickPixel object или строка, определяющая цвет рамки

width

Толщина рамки

height

Высота рамки

Возвращаемые значения

Объект Gmagick с добавленной рамкой

Ошибки

Вызывает GmagickException при ошибке.


Имитация рисования углем

  • « Gmagick::borderimage
  • Gmagick::chopimage »
  • PHP Manual
  • Gmagick
  • Имитация рисования углем

Gmagick::charcoalimage

(PECL gmagick >= Unknown)

Gmagick::charcoalimage — Имитация рисования углем

Описание

public Gmagick::charcoalimage ( float $radius , float $sigma ) : Gmagick

Имитация рисования углем.

Список параметров

radius

Радиус гауссианы в пикселях, не считая центрального пикселя

sigma

Стандартное отклонение гауссианы в пикселях

Возвращаемые значения

Объект Gmagick с добавленным эффектом рисования углем

Ошибки

Вызывает GmagickException при ошибке.


Удаляет область изображения и подрезает его

  • « Gmagick::charcoalimage
  • Gmagick::clear »
  • PHP Manual
  • Gmagick
  • Удаляет область изображения и подрезает его

Gmagick::chopimage

(PECL gmagick >= Unknown)

Gmagick::chopimage — Удаляет область изображения и подрезает его

Описание

public Gmagick::chopimage ( int $width , int $height , int $x , int $y ) : Gmagick

Удаляет область изображения и схлопывает его так, чтобы занять удаленную область

Список параметров

width

Ширина вырезаемого участка

height

Высота вырезаемого участка

x

Горизонтальное смещение начала вырезки

y

Вертикальное смещение начала вырезки

Возвращаемые значения

Получившийся объект Gmagick

Ошибки

Вызывает GmagickException при ошибке.


Зачищает все ресурсы, связанные с объектом Gmagick

  • « Gmagick::chopimage
  • Gmagick::commentimage »
  • PHP Manual
  • Gmagick
  • Зачищает все ресурсы, связанные с объектом Gmagick

Gmagick::clear

(PECL gmagick >= Unknown)

Gmagick::clear — Зачищает все ресурсы, связанные с объектом Gmagick

Описание

public Gmagick::clear ( void ) : Gmagick

Зачищает все ресурсы, связанные с объектом Gmagick.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Очищенный объект Gmagick

Ошибки

Вызывает GmagickException при ошибке.


Добавить комментарий к изображению

  • « Gmagick::clear
  • Gmagick::compositeimage »
  • PHP Manual
  • Gmagick
  • Добавить комментарий к изображению

Gmagick::commentimage

(PECL gmagick >= Unknown)

Gmagick::commentimage — Добавить комментарий к изображению

Описание

public Gmagick::commentimage ( string $comment ) : Gmagick

Добавляет комментарий к изображению.

Список параметров

comment

Комментарий

Возвращаемые значения

Получившийся объект Gmagick.

Ошибки

Вызывает GmagickException при ошибке.


Composite one image onto another

  • « Gmagick::commentimage
  • Gmagick::__construct »
  • PHP Manual
  • Gmagick
  • Composite one image onto another

Gmagick::compositeimage

(PECL gmagick >= Unknown)

Gmagick::compositeimage — Composite one image onto another

Описание

public Gmagick::compositeimage ( Gmagick $source , int $COMPOSE , int $x , int $y ) : Gmagick

Composite one image onto another at the specified offset.

Список параметров

source

Gmagick object which holds the composite image

compose

Composite operator.

x

The column offset of the composited image

y

The row offset of the composited image

Возвращаемые значения

The Gmagick object with compositions.

Ошибки

Вызывает GmagickException при ошибке.


Конструктор объекта Gmagick

  • « Gmagick::compositeimage
  • Gmagick::cropimage »
  • PHP Manual
  • Gmagick
  • Конструктор объекта Gmagick

Gmagick::__construct

(PECL gmagick >= Unknown)

Gmagick::__construct — Конструктор объекта Gmagick

Описание

public Gmagick::__construct ([ string $filename ] )

Конструктор объекта Gmagick.

Список параметров

filename

Путь к загружаемому изображению, либо массив путей

Возвращаемые значения

В случае успешного выполнения возвращает объект Gmagick.

Ошибки

Вызывает GmagickException при ошибке.


Обрезает изображение

  • « Gmagick::__construct
  • Gmagick::cropthumbnailimage »
  • PHP Manual
  • Gmagick
  • Обрезает изображение

Gmagick::cropimage

(PECL gmagick >= Unknown)

Gmagick::cropimage — Обрезает изображение

Описание

public Gmagick::cropimage ( int $width , int $height , int $x , int $y ) : Gmagick

Обрезает изображение.

Список параметров

width

Ширина сохраняемого участка

height

Высота сохраняемого участка

x

X координата левого верхнего угла сохраняемой области

y

Y координата левого верхнего угла сохраняемой области

Возвращаемые значения

Обрезанный объект Gmagick

Ошибки

Вызывает GmagickException при ошибке.


Создание обрезанного уменьшенного изображения

  • « Gmagick::cropimage
  • Gmagick::current »
  • PHP Manual
  • Gmagick
  • Создание обрезанного уменьшенного изображения

Gmagick::cropthumbnailimage

(PECL gmagick >= Unknown)

Gmagick::cropthumbnailimage — Создание обрезанного уменьшенного изображения

Описание

public Gmagick::cropthumbnailimage ( int $width , int $height ) : Gmagick

Создает уменьшенное изображение фиксированного размера, сначала применяя масштабирование, а после вырезая необходимую область из центра.

Список параметров

width

Ширина целевого изображения

height

Высота целевого изображения

Возвращаемые значения

Получившийся объект Gmagick

Ошибки

Вызывает GmagickException при ошибке.


Вернуть самого себя

  • « Gmagick::cropthumbnailimage
  • Gmagick::cyclecolormapimage »
  • PHP Manual
  • Gmagick
  • Вернуть самого себя

Gmagick::current

(PECL gmagick >= Unknown)

Gmagick::current — Вернуть самого себя

Описание

public Gmagick::current ( void ) : Gmagick

Возвращает ссылку на текущий объект gmagick с установленным указателем изображения в правильной последовательности.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает самого себя.

Ошибки

Вызывает GmagickException при ошибке.


Displaces an image's colormap

  • « Gmagick::current
  • Gmagick::deconstructimages »
  • PHP Manual
  • Gmagick
  • Displaces an image's colormap

Gmagick::cyclecolormapimage

(PECL gmagick >= Unknown)

Gmagick::cyclecolormapimage — Displaces an image's colormap

Описание

public Gmagick::cyclecolormapimage ( int $displace ) : Gmagick

Displaces an image's colormap by a given number of positions. If you cycle the colormap a number of times you can produce a psychedelic effect.

Список параметров

displace

The amount to displace the colormap.

Возвращаемые значения

Returns self on success.

Ошибки

Вызывает GmagickException при ошибке.


Returns certain pixel differences between images

  • « Gmagick::cyclecolormapimage
  • Gmagick::despeckleimage »
  • PHP Manual
  • Gmagick
  • Returns certain pixel differences between images

Gmagick::deconstructimages

(PECL gmagick >= Unknown)

Gmagick::deconstructimages — Returns certain pixel differences between images

Описание

public Gmagick::deconstructimages ( void ) : Gmagick

Compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a new Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


The despeckleimage purpose

  • « Gmagick::deconstructimages
  • Gmagick::destroy »
  • PHP Manual
  • Gmagick
  • The despeckleimage purpose

Gmagick::despeckleimage

(PECL gmagick >= Unknown)

Gmagick::despeckleimage — The despeckleimage purpose

Описание

public Gmagick::despeckleimage ( void ) : Gmagick

Reduces the speckle noise in an image while preserving the edges of the original image.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The despeckled Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.

Примеры

Пример #1 Gmagick::despeckleimage() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Уничтожить объект Gmagick

  • « Gmagick::despeckleimage
  • Gmagick::drawimage »
  • PHP Manual
  • Gmagick
  • Уничтожить объект Gmagick

Gmagick::destroy

(PECL gmagick >= Unknown)

Gmagick::destroy — Уничтожить объект Gmagick

Описание

public Gmagick::destroy ( void ) : bool

Уничтожить объект Gmagick и освободить все выделенные ему ресурсы

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает GmagickException при ошибке.


Renders the GmagickDraw object on the current image

  • « Gmagick::destroy
  • Gmagick::edgeimage »
  • PHP Manual
  • Gmagick
  • Renders the GmagickDraw object on the current image

Gmagick::drawimage

(PECL gmagick >= Unknown)

Gmagick::drawimage — Renders the GmagickDraw object on the current image

Описание

public Gmagick::drawimage ( GmagickDraw $GmagickDraw ) : Gmagick

Renders the GmagickDraw object on the current image

Список параметров

GmagickDraw

The drawing operations to render on the image.

Возвращаемые значения

The drawn Gmagick object

Ошибки

Вызывает GmagickException при ошибке.


Enhance edges within the image

  • « Gmagick::drawimage
  • Gmagick::embossimage »
  • PHP Manual
  • Gmagick
  • Enhance edges within the image

Gmagick::edgeimage

(PECL gmagick >= Unknown)

Gmagick::edgeimage — Enhance edges within the image

Описание

public Gmagick::edgeimage ( float $radius ) : Gmagick

Enhance edges within the image with a convolution filter of the given radius. Use radius 0 and it will be auto-selected.

Список параметров

radius

The radius of the operation.

Возвращаемые значения

The Gmagick object with edges enhanced.

Ошибки

Вызывает GmagickException при ошибке.


Returns a grayscale image with a three-dimensional effect

  • « Gmagick::edgeimage
  • Gmagick::enhanceimage »
  • PHP Manual
  • Gmagick
  • Returns a grayscale image with a three-dimensional effect

Gmagick::embossimage

(PECL gmagick >= Unknown)

Gmagick::embossimage — Returns a grayscale image with a three-dimensional effect

Описание

public Gmagick::embossimage ( float $radius , float $sigma ) : Gmagick

Returns a grayscale image with a three-dimensional effect. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and it will choose a suitable radius for you.

Список параметров

radius

The radius of the effect

sigma

The sigma of the effect

Возвращаемые значения

The embossed Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


Improves the quality of a noisy image

  • « Gmagick::embossimage
  • Gmagick::equalizeimage »
  • PHP Manual
  • Gmagick
  • Improves the quality of a noisy image

Gmagick::enhanceimage

(PECL gmagick >= Unknown)

Gmagick::enhanceimage — Improves the quality of a noisy image

Описание

public Gmagick::enhanceimage ( void ) : Gmagick

Applies a digital filter that improves the quality of a noisy image.

Возвращаемые значения

The enhanced Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


Equalizes the image histogram

  • « Gmagick::enhanceimage
  • Gmagick::flipimage »
  • PHP Manual
  • Gmagick
  • Equalizes the image histogram

Gmagick::equalizeimage

(PECL gmagick >= Unknown)

Gmagick::equalizeimage — Equalizes the image histogram

Описание

public Gmagick::equalizeimage ( void ) : Gmagick

Equalizes the image histogram.

Возвращаемые значения

The equalized Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


Creates a vertical mirror image

  • « Gmagick::equalizeimage
  • Gmagick::flopimage »
  • PHP Manual
  • Gmagick
  • Creates a vertical mirror image

Gmagick::flipimage

(PECL gmagick >= Unknown)

Gmagick::flipimage — Creates a vertical mirror image

Описание

public Gmagick::flipimage ( void ) : Gmagick

Creates a vertical mirror image by reflecting the pixels around the central x-axis.

Возвращаемые значения

The flipped Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


The flopimage purpose

  • « Gmagick::flipimage
  • Gmagick::frameimage »
  • PHP Manual
  • Gmagick
  • The flopimage purpose

Gmagick::flopimage

(PECL gmagick >= Unknown)

Gmagick::flopimage — The flopimage purpose

Описание

public Gmagick::flopimage ( void ) : Gmagick

Creates a horizontal mirror image by reflecting the pixels around the central y-axis.

Возвращаемые значения

The flopped Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


Adds a simulated three-dimensional border

  • « Gmagick::flopimage
  • Gmagick::gammaimage »
  • PHP Manual
  • Gmagick
  • Adds a simulated three-dimensional border

Gmagick::frameimage

(PECL gmagick >= Unknown)

Gmagick::frameimage — Adds a simulated three-dimensional border

Описание

public Gmagick::frameimage ( GmagickPixel $color , int $width , int $height , int $inner_bevel , int $outer_bevel ) : Gmagick

Adds a simulated three-dimensional border around the image. The width and height specify the border width of the vertical and horizontal sides of the frame. The inner and outer bevels indicate the width of the inner and outer shadows of the frame.

Список параметров

color

GmagickPixel object or a float representing the matte color

width

The width of the border

height

The height of the border

inner_bevel

The inner bevel width

outer_bevel

The outer bevel width

Возвращаемые значения

The framed Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


Gamma-corrects an image

  • « Gmagick::frameimage
  • Gmagick::getcopyright »
  • PHP Manual
  • Gmagick
  • Gamma-corrects an image

Gmagick::gammaimage

(PECL gmagick >= Unknown)

Gmagick::gammaimage — Gamma-corrects an image

Описание

public Gmagick::gammaimage ( float $gamma ) : Gmagick

Gamma-corrects an image. The same image viewed on different devices will have perceptual differences in the way the image's intensities are represented on the screen. Specify individual gamma levels for the red, green, and blue channels, or adjust all three with the gamma parameter. Values typically range from 0.8 to 2.3.

Список параметров

gamma

The amount of gamma-correction.

Возвращаемые значения

The gamma corrected Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


Возвращает копирайт GraphicsMagick API в виде строки

  • « Gmagick::gammaimage
  • Gmagick::getfilename »
  • PHP Manual
  • Gmagick
  • Возвращает копирайт GraphicsMagick API в виде строки

Gmagick::getcopyright

(PECL gmagick >= Unknown)

Gmagick::getcopyright — Возвращает копирайт GraphicsMagick API в виде строки

Описание

public Gmagick::getcopyright ( void ) : string

Возвращает копирайт GraphicsMagick API в виде строки.

Возвращаемые значения

Возвращает копирайт GraphicsMagick API и Magickwand C в виде строки.

Ошибки

Вызывает GmagickException при ошибке.


Возвращает имя файла связанного с последовательностью изображений

  • « Gmagick::getcopyright
  • Gmagick::getimagebackgroundcolor »
  • PHP Manual
  • Gmagick
  • Возвращает имя файла связанного с последовательностью изображений

Gmagick::getfilename

(PECL gmagick >= Unknown)

Gmagick::getfilename — Возвращает имя файла связанного с последовательностью изображений

Описание

public Gmagick::getfilename ( void ) : string

Возвращает имя файла связанного с последовательностью изображений.

Возвращаемые значения

Возвращает имя файла.

Ошибки

Вызывает GmagickException при ошибке.


Возвращает цвет фона изображения

  • « Gmagick::getfilename
  • Gmagick::getimageblueprimary »
  • PHP Manual
  • Gmagick
  • Возвращает цвет фона изображения

Gmagick::getimagebackgroundcolor

(PECL gmagick >= Unknown)

Gmagick::getimagebackgroundcolor — Возвращает цвет фона изображения

Описание

public Gmagick::getimagebackgroundcolor ( void ) : GmagickPixel

Возвращает цвет фона изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает цвет фона изображения в виде объекта GmagickPixel.

Ошибки

Вызывает GmagickException при ошибке.


Returns the chromaticy blue primary point

  • « Gmagick::getimagebackgroundcolor
  • Gmagick::getimagebordercolor »
  • PHP Manual
  • Gmagick
  • Returns the chromaticy blue primary point

Gmagick::getimageblueprimary

(PECL gmagick >= Unknown)

Gmagick::getimageblueprimary — Returns the chromaticy blue primary point

Описание

public Gmagick::getimageblueprimary ( void ) : array

Returns the chromaticity blue primary point for the image.

Список параметров

x

The chromaticity blue primary x-point.

y

The chromaticity blue primary y-point.

Возвращаемые значения

Array consisting of "x" and "y" coordinates of point.

Ошибки

Вызывает GmagickException при ошибке.


Returns the image border color

  • « Gmagick::getimageblueprimary
  • Gmagick::getimagechanneldepth »
  • PHP Manual
  • Gmagick
  • Returns the image border color

Gmagick::getimagebordercolor

(PECL gmagick >= Unknown)

Gmagick::getimagebordercolor — Returns the image border color

Описание

public Gmagick::getimagebordercolor ( void ) : GmagickPixel

Returns the image border color.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

GmagickPixel object representing the color of the border

Ошибки

Вызывает GmagickException при ошибке.


Gets the depth for a particular image channel

  • « Gmagick::getimagebordercolor
  • Gmagick::getimagecolors »
  • PHP Manual
  • Gmagick
  • Gets the depth for a particular image channel

Gmagick::getimagechanneldepth

(PECL gmagick >= Unknown)

Gmagick::getimagechanneldepth — Gets the depth for a particular image channel

Описание

public Gmagick::getimagechanneldepth ( int $channel_type ) : int

Gets the depth for a particular image channel.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Depth of image channel

Ошибки

Вызывает GmagickException при ошибке.


Возвращает цвет указанного индекса карты цветов

  • « Gmagick::getimagechanneldepth
  • Gmagick::getimagecolorspace »
  • PHP Manual
  • Gmagick
  • Возвращает цвет указанного индекса карты цветов

Gmagick::getimagecolors

(PECL gmagick >= Unknown)

Gmagick::getimagecolors — Возвращает цвет указанного индекса карты цветов

Описание

public Gmagick::getimagecolors ( void ) : int

Возвращает цвет указанного индекса карты цветов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество цветов в изображении.

Ошибки

Вызывает GmagickException при ошибке.


Возвращает цветовое пространство изображения

  • « Gmagick::getimagecolors
  • Gmagick::getimagecompose »
  • PHP Manual
  • Gmagick
  • Возвращает цветовое пространство изображения

Gmagick::getimagecolorspace

(PECL gmagick >= Unknown)

Gmagick::getimagecolorspace — Возвращает цветовое пространство изображения

Описание

public Gmagick::getimagecolorspace ( void ) : int

Возвращает цветовое пространство изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Цветовое пространство.

Ошибки

Вызывает GmagickException при ошибке.


Returns the composite operator associated with the image

  • « Gmagick::getimagecolorspace
  • Gmagick::getimagedelay »
  • PHP Manual
  • Gmagick
  • Returns the composite operator associated with the image

Gmagick::getimagecompose

(PECL gmagick >= Unknown)

Gmagick::getimagecompose — Returns the composite operator associated with the image

Описание

public Gmagick::getimagecompose ( void ) : int

Returns the composite operator associated with the image.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the composite operator associated with the image.

Ошибки

Вызывает GmagickException при ошибке.


Gets the image delay

  • « Gmagick::getimagecompose
  • Gmagick::getimagedepth »
  • PHP Manual
  • Gmagick
  • Gets the image delay

Gmagick::getimagedelay

(PECL gmagick >= Unknown)

Gmagick::getimagedelay — Gets the image delay

Описание

public Gmagick::getimagedelay ( void ) : int

Gets the image delay

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the composite operator associated with the image.

Ошибки

Вызывает GmagickException при ошибке.


Gets the depth of the image

  • « Gmagick::getimagedelay
  • Gmagick::getimagedispose »
  • PHP Manual
  • Gmagick
  • Gets the depth of the image

Gmagick::getimagedepth

(PECL gmagick >= Unknown)

Gmagick::getimagedepth — Gets the depth of the image

Описание

public Gmagick::getimagedepth ( void ) : int

Gets the depth of the image.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Image depth

Ошибки

Вызывает GmagickException при ошибке.


Gets the image disposal method

  • « Gmagick::getimagedepth
  • Gmagick::getimageextrema »
  • PHP Manual
  • Gmagick
  • Gets the image disposal method

Gmagick::getimagedispose

(PECL gmagick >= Unknown)

Gmagick::getimagedispose — Gets the image disposal method

Описание

public Gmagick::getimagedispose ( void ) : int

Gets the image disposal method

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the dispose method on success.

Ошибки

Вызывает GmagickException при ошибке.


Gets the extrema for the image

  • « Gmagick::getimagedispose
  • Gmagick::getimagefilename »
  • PHP Manual
  • Gmagick
  • Gets the extrema for the image

Gmagick::getimageextrema

(PECL gmagick >= Unknown)

Gmagick::getimageextrema — Gets the extrema for the image

Описание

public Gmagick::getimageextrema ( void ) : array

Returns an associative array with the keys "min" and "max". Вызывает GmagickException при ошибке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an associative array with the keys "min" and "max".

Ошибки

Вызывает GmagickException при ошибке.


Возвращает имя файла конкретного изображения в последовательности

  • « Gmagick::getimageextrema
  • Gmagick::getimageformat »
  • PHP Manual
  • Gmagick
  • Возвращает имя файла конкретного изображения в последовательности

Gmagick::getimagefilename

(PECL gmagick >= Unknown)

Gmagick::getimagefilename — Возвращает имя файла конкретного изображения в последовательности

Описание

public Gmagick::getimagefilename ( void ) : string

Возвращает имя файла конкретного изображения в последовательности

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла конкретного изображения

Ошибки

Вызывает GmagickException при ошибке.


Возвращает формат конкретного изображения в последовательности

  • « Gmagick::getimagefilename
  • Gmagick::getimagegamma »
  • PHP Manual
  • Gmagick
  • Возвращает формат конкретного изображения в последовательности

Gmagick::getimageformat

(PECL gmagick >= Unknown)

Gmagick::getimageformat — Возвращает формат конкретного изображения в последовательности

Описание

public Gmagick::getimageformat ( void ) : string

Возвращает формат конкретного изображения в последовательности.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает формат изображения в случае успешного выполнения.

Ошибки

Вызывает GmagickException при ошибке.


Возвращает гамму изображения

  • « Gmagick::getimageformat
  • Gmagick::getimagegreenprimary »
  • PHP Manual
  • Gmagick
  • Возвращает гамму изображения

Gmagick::getimagegamma

(PECL gmagick >= Unknown)

Gmagick::getimagegamma — Возвращает гамму изображения

Описание

public Gmagick::getimagegamma ( void ) : float

Возвращает гамму изображения

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает гамму изображения в случае успешного выполнения

Ошибки

Вызывает GmagickException при ошибке.


Returns the chromaticy green primary point

  • « Gmagick::getimagegamma
  • Gmagick::getimageheight »
  • PHP Manual
  • Gmagick
  • Returns the chromaticy green primary point

Gmagick::getimagegreenprimary

(PECL gmagick >= Unknown)

Gmagick::getimagegreenprimary — Returns the chromaticy green primary point

Описание

public Gmagick::getimagegreenprimary ( void ) : array

Returns the chromaticity green primary point. Returns an array with the keys "x" and "y".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array with the keys "x" and "y" on success.

Ошибки

Вызывает GmagickException при ошибке.


Возвращает высоту изображения

  • « Gmagick::getimagegreenprimary
  • Gmagick::getimagehistogram »
  • PHP Manual
  • Gmagick
  • Возвращает высоту изображения

Gmagick::getimageheight

(PECL gmagick >= Unknown)

Gmagick::getimageheight — Возвращает высоту изображения

Описание

public Gmagick::getimageheight ( void ) : int

Возвращает высоту изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает высоту изображения в пикселях.

Ошибки

Вызывает GmagickException при ошибке.


Возвращает гистограмму изображения

  • « Gmagick::getimageheight
  • Gmagick::getimageindex »
  • PHP Manual
  • Gmagick
  • Возвращает гистограмму изображения

Gmagick::getimagehistogram

(PECL gmagick >= Unknown)

Gmagick::getimagehistogram — Возвращает гистограмму изображения

Описание

public Gmagick::getimagehistogram ( void ) : array

Возвращает гистограмму изображения в виде массива объектов GmagickPixel. В случае возникновения ошибки выбрасывает исключение GmagickException.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает гистограмму изображения в виде массива объектов GmagickPixel.

Ошибки

Вызывает GmagickException при ошибке.


Возвращает индекс текущего активного изображения

  • « Gmagick::getimagehistogram
  • Gmagick::getimageinterlacescheme »
  • PHP Manual
  • Gmagick
  • Возвращает индекс текущего активного изображения

Gmagick::getimageindex

(PECL gmagick >= Unknown)

Gmagick::getimageindex — Возвращает индекс текущего активного изображения

Описание

public Gmagick::getimageindex ( void ) : int

Возвращает индекс текущего активного изображения в объекте Gmagick.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает индекс текущего активного изображения.

Ошибки

Вызывает GmagickException при ошибке.


Gets the image interlace scheme

  • « Gmagick::getimageindex
  • Gmagick::getimageiterations »
  • PHP Manual
  • Gmagick
  • Gets the image interlace scheme

Gmagick::getimageinterlacescheme

(PECL gmagick >= Unknown)

Gmagick::getimageinterlacescheme — Gets the image interlace scheme

Описание

public Gmagick::getimageinterlacescheme ( void ) : int

Gets the image interlace scheme.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the interlace scheme as an integer on success

Ошибки

Вызывает GmagickException при ошибке.


Gets the image iterations

  • « Gmagick::getimageinterlacescheme
  • Gmagick::getimagematte »
  • PHP Manual
  • Gmagick
  • Gets the image iterations

Gmagick::getimageiterations

(PECL gmagick >= Unknown)

Gmagick::getimageiterations — Gets the image iterations

Описание

public Gmagick::getimageiterations ( void ) : int

Gets the image iterations.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the image iterations as an integer.

Ошибки

Вызывает GmagickException при ошибке.


Check if the image has a matte channel

  • « Gmagick::getimageiterations
  • Gmagick::getimagemattecolor »
  • PHP Manual
  • Gmagick
  • Check if the image has a matte channel

Gmagick::getimagematte

(PECL gmagick >= Unknown)

Gmagick::getimagematte — Check if the image has a matte channel

Описание

public Gmagick::getimagematte ( void ) : int

Returns TRUE if the image has a matte channel, otherwise FALSE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the image has a matte channel, otherwise FALSE.

Ошибки

Вызывает GmagickException при ошибке.


Returns the image matte color

  • « Gmagick::getimagematte
  • Gmagick::getimageprofile »
  • PHP Manual
  • Gmagick
  • Returns the image matte color

Gmagick::getimagemattecolor

(PECL gmagick >= Unknown)

Gmagick::getimagemattecolor — Returns the image matte color

Описание

public Gmagick::getimagemattecolor ( void ) : GmagickPixel

Returns GmagickPixel object on success. Throw an GmagickException on error.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns GmagickPixel object on success.

Ошибки

Вызывает GmagickException при ошибке.


Возвращает именованный профайл изображения

  • « Gmagick::getimagemattecolor
  • Gmagick::getimageredprimary »
  • PHP Manual
  • Gmagick
  • Возвращает именованный профайл изображения

Gmagick::getimageprofile

(PECL gmagick >= Unknown)

Gmagick::getimageprofile — Возвращает именованный профайл изображения

Описание

public Gmagick::getimageprofile ( string $name ) : string

Возвращает именованный профайл изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает именованный профайл изображения.

Ошибки

Вызывает GmagickException при ошибке.


Returns the chromaticity red primary point

  • « Gmagick::getimageprofile
  • Gmagick::getimagerenderingintent »
  • PHP Manual
  • Gmagick
  • Returns the chromaticity red primary point

Gmagick::getimageredprimary

(PECL gmagick >= Unknown)

Gmagick::getimageredprimary — Returns the chromaticity red primary point

Описание

public Gmagick::getimageredprimary ( void ) : array

Returns the chromaticity red primary point as an array with the keys "x" and "y".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the chromaticity red primary point as an array with the keys "x" and "y".

Ошибки

Вызывает GmagickException при ошибке.


Gets the image rendering intent

  • « Gmagick::getimageredprimary
  • Gmagick::getimageresolution »
  • PHP Manual
  • Gmagick
  • Gets the image rendering intent

Gmagick::getimagerenderingintent

(PECL gmagick >= Unknown)

Gmagick::getimagerenderingintent — Gets the image rendering intent

Описание

public Gmagick::getimagerenderingintent ( void ) : int

Gets the image rendering intent

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Extracts a region of the image and returns it as a new wand

Ошибки

Вызывает GmagickException при ошибке.


Возвращает разрешение изображения

  • « Gmagick::getimagerenderingintent
  • Gmagick::getimagescene »
  • PHP Manual
  • Gmagick
  • Возвращает разрешение изображения

Gmagick::getimageresolution

(PECL gmagick >= Unknown)

Gmagick::getimageresolution — Возвращает разрешение изображения

Описание

public Gmagick::getimageresolution ( void ) : array

Возвращает разрешение изображения в виде массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает разрешение изображения в виде массива.

Ошибки

Вызывает GmagickException при ошибке.


Gets the image scene

  • « Gmagick::getimageresolution
  • Gmagick::getimagesignature »
  • PHP Manual
  • Gmagick
  • Gets the image scene

Gmagick::getimagescene

(PECL gmagick >= Unknown)

Gmagick::getimagescene — Gets the image scene

Описание

public Gmagick::getimagescene ( void ) : int

Gets the image scene.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the image scene.

Ошибки

Вызывает GmagickException при ошибке.


Generates an SHA-256 message digest

  • « Gmagick::getimagescene
  • Gmagick::getimagetype »
  • PHP Manual
  • Gmagick
  • Generates an SHA-256 message digest

Gmagick::getimagesignature

(PECL gmagick >= Unknown)

Gmagick::getimagesignature — Generates an SHA-256 message digest

Описание

public Gmagick::getimagesignature ( void ) : string

Generates an SHA-256 message digest for the image pixel stream.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string containing the SHA-256 hash of the file.

Ошибки

Вызывает GmagickException при ошибке.


Возвращает потенциальный тип изображения

  • « Gmagick::getimagesignature
  • Gmagick::getimageunits »
  • PHP Manual
  • Gmagick
  • Возвращает потенциальный тип изображения

Gmagick::getimagetype

(PECL gmagick >= Unknown)

Gmagick::getimagetype — Возвращает потенциальный тип изображения

Описание

public Gmagick::getimagetype ( void ) : int

Возвращает потенциальный тип изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает потенциальный тип изображения.

Ошибки

Вызывает GmagickException при ошибке.


Возвращает единицы разрешения изображения

  • « Gmagick::getimagetype
  • Gmagick::getimagewhitepoint »
  • PHP Manual
  • Gmagick
  • Возвращает единицы разрешения изображения

Gmagick::getimageunits

(PECL gmagick >= Unknown)

Gmagick::getimageunits — Возвращает единицы разрешения изображения

Описание

public Gmagick::getimageunits ( void ) : int

Возвращает единицы разрешения изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает единицы разрешения изображения.


Возвращает хроматическую белую точку

  • « Gmagick::getimageunits
  • Gmagick::getimagewidth »
  • PHP Manual
  • Gmagick
  • Возвращает хроматическую белую точку

Gmagick::getimagewhitepoint

(PECL gmagick >= Unknown)

Gmagick::getimagewhitepoint — Возвращает хроматическую белую точку

Описание

public Gmagick::getimagewhitepoint ( void ) : array

Возвращает хроматическую белую точку в виде ассоциативного массива с ключами "x" и "y".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает хроматическую белую точку в виде ассоциативного массива с ключами "x" и "y".

Ошибки

Вызывает GmagickException при ошибке.


Возвращает ширину изображения

  • « Gmagick::getimagewhitepoint
  • Gmagick::getpackagename »
  • PHP Manual
  • Gmagick
  • Возвращает ширину изображения

Gmagick::getimagewidth

(PECL gmagick >= Unknown)

Gmagick::getimagewidth — Возвращает ширину изображения

Описание

public Gmagick::getimagewidth ( void ) : int

Возвращает ширину изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ширину изображения в пикселях.

Ошибки

Вызывает GmagickException при ошибке.


Возвращает имя пакета GraphicsMagick

  • « Gmagick::getimagewidth
  • Gmagick::getquantumdepth »
  • PHP Manual
  • Gmagick
  • Возвращает имя пакета GraphicsMagick

Gmagick::getpackagename

(PECL gmagick >= Unknown)

Gmagick::getpackagename — Возвращает имя пакета GraphicsMagick

Описание

public Gmagick::getpackagename ( void ) : string

Возвращает имя пакета GraphicsMagick.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя пакета GraphicsMagick в виде строки.

Ошибки

Вызывает GmagickException при ошибке.


Возвращает глубину цвета (бит на канал) объекта Gmagick в виде строки

  • « Gmagick::getpackagename
  • Gmagick::getreleasedate »
  • PHP Manual
  • Gmagick
  • Возвращает глубину цвета (бит на канал) объекта Gmagick в виде строки

Gmagick::getquantumdepth

(PECL gmagick >= Unknown)

Gmagick::getquantumdepth — Возвращает глубину цвета (бит на канал) объекта Gmagick в виде строки

Описание

public Gmagick::getquantumdepth ( void ) : array

Возвращает глубину цвета (бит на канал) объекта Gmagick в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает глубину цвета (бит на канал) объекта Gmagick в виде строки.

Ошибки

Вызывает GmagickException при ошибке.


Возвращает дату релиза GraphicsMagick в виде строки

  • « Gmagick::getquantumdepth
  • Gmagick::getsamplingfactors »
  • PHP Manual
  • Gmagick
  • Возвращает дату релиза GraphicsMagick в виде строки

Gmagick::getreleasedate

(PECL gmagick >= Unknown)

Gmagick::getreleasedate — Возвращает дату релиза GraphicsMagick в виде строки

Описание

public Gmagick::getreleasedate ( void ) : string

Возвращает дату релиза GraphicsMagick в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает дату релиза GraphicsMagick в виде строки.

Ошибки

Вызывает GmagickException при ошибке.


Возвращает вертикальный и горизонтальный фактор дискретизации

  • « Gmagick::getreleasedate
  • Gmagick::getsize »
  • PHP Manual
  • Gmagick
  • Возвращает вертикальный и горизонтальный фактор дискретизации

Gmagick::getsamplingfactors

(PECL gmagick >= Unknown)

Gmagick::getsamplingfactors — Возвращает вертикальный и горизонтальный фактор дискретизации

Описание

public Gmagick::getsamplingfactors ( void ) : array

Возвращает вертикальный и горизонтальный фактор дискретизации.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает вертикальный и горизонтальный фактор дискретизации изображения в виде ассоциативного массива.

Ошибки

Вызывает GmagickException при ошибке.


Возвращает размер, связанный с объектом Gmagick

  • « Gmagick::getsamplingfactors
  • Gmagick::getversion »
  • PHP Manual
  • Gmagick
  • Возвращает размер, связанный с объектом Gmagick

Gmagick::getsize

(PECL gmagick >= Unknown)

Gmagick::getsize — Возвращает размер, связанный с объектом Gmagick

Описание

public Gmagick::getsize ( void ) : array

Возвращает размер, связанный с объектом Gmagick в виде массива с ключами "columns" и "rows".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер, связанный с объектом Gmagick в виде массива с ключами "columns" и "rows".

Ошибки

Вызывает GmagickException при ошибке.


Возвращает версию GraphicsMagick API

  • « Gmagick::getsize
  • Gmagick::hasnextimage »
  • PHP Manual
  • Gmagick
  • Возвращает версию GraphicsMagick API

Gmagick::getversion

(PECL gmagick >= Unknown)

Gmagick::getversion — Возвращает версию GraphicsMagick API

Описание

public Gmagick::getversion ( void ) : array

Возвращает версию GraphicsMagick API в виде строки и числа.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает версию GraphicsMagick API в виде строки и числа.

Ошибки

Вызывает GmagickException при ошибке.


Проверяет, есть ли еще изображения в объекте

  • « Gmagick::getversion
  • Gmagick::haspreviousimage »
  • PHP Manual
  • Gmagick
  • Проверяет, есть ли еще изображения в объекте

Gmagick::hasnextimage

(PECL gmagick >= Unknown)

Gmagick::hasnextimage — Проверяет, есть ли еще изображения в объекте

Описание

public Gmagick::hasnextimage ( void ) : mixed

Проверяет, есть ли еще изображения в объекте при итерации по списку вперед.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если при итерации вперед по списку есть изображения и FALSE, если нет.

Ошибки

Вызывает GmagickException при ошибке.


Проверяет, есть ли еще изображения в объекте при итерации назад

  • « Gmagick::hasnextimage
  • Gmagick::implodeimage »
  • PHP Manual
  • Gmagick
  • Проверяет, есть ли еще изображения в объекте при итерации назад

Gmagick::haspreviousimage

(PECL gmagick >= Unknown)

Gmagick::haspreviousimage — Проверяет, есть ли еще изображения в объекте при итерации назад

Описание

public Gmagick::haspreviousimage ( void ) : mixed

Проверяет, есть ли еще изображения в объекте при итерации по списку назад.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если при итерации назад по списку есть изображения и FALSE, если нет.

Ошибки

Вызывает GmagickException при ошибке.


Creates a new image as a copy

  • « Gmagick::haspreviousimage
  • Gmagick::labelimage »
  • PHP Manual
  • Gmagick
  • Creates a new image as a copy

Gmagick::implodeimage

(PECL gmagick >= Unknown)

Gmagick::implodeimage — Creates a new image as a copy

Описание

public Gmagick::implodeimage ( float $radius ) : mixed

Creates a new image that is a copy of an existing one with the image pixels "imploded" by the specified percentage.

Список параметров

radius

The radius of the implode

Возвращаемые значения

Returns imploded Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


Adds a label to an image

  • « Gmagick::implodeimage
  • Gmagick::levelimage »
  • PHP Manual
  • Gmagick
  • Adds a label to an image

Gmagick::labelimage

(PECL gmagick >= Unknown)

Gmagick::labelimage — Adds a label to an image

Описание

public Gmagick::labelimage ( string $label ) : mixed

Adds a label to an image.

Список параметров

label

The label to add

Возвращаемые значения

Gmagick with label.

Ошибки

Вызывает GmagickException при ошибке.


Adjusts the levels of an image

  • « Gmagick::labelimage
  • Gmagick::magnifyimage »
  • PHP Manual
  • Gmagick
  • Adjusts the levels of an image

Gmagick::levelimage

(PECL gmagick >= Unknown)

Gmagick::levelimage — Adjusts the levels of an image

Описание

public Gmagick::levelimage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Gmagick::CHANNEL_DEFAULT ] ) : mixed

Adjusts the levels of an image by scaling the colors falling between specified white and black points to the full available quantum range. The parameters provided represent the black, mid, and white points. The black point specifies the darkest color in the image. Colors darker than the black point are set to zero. Mid point specifies a gamma correction to apply to the image. White point specifies the lightest color in the image. Colors brighter than the white point are set to the maximum quantum value.

Список параметров

blackPoint

The image black point

gamma

The gamma value

whitePoint

The image white point

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

Gmagick object with image levelled.

Ошибки

Вызывает GmagickException при ошибке.


Scales an image proportionally 2x

  • « Gmagick::levelimage
  • Gmagick::mapimage »
  • PHP Manual
  • Gmagick
  • Scales an image proportionally 2x

Gmagick::magnifyimage

(PECL gmagick >= Unknown)

Gmagick::magnifyimage — Scales an image proportionally 2x

Описание

public Gmagick::magnifyimage ( void ) : mixed

Conveniently scales an image proportionally to twice its original size.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Magnified Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


Replaces the colors of an image with the closest color from a reference image

  • « Gmagick::magnifyimage
  • Gmagick::medianfilterimage »
  • PHP Manual
  • Gmagick
  • Replaces the colors of an image with the closest color from a reference image

Gmagick::mapimage

(PECL gmagick >= Unknown)

Gmagick::mapimage — Replaces the colors of an image with the closest color from a reference image

Описание

public Gmagick::mapimage ( gmagick $gmagick , bool $dither ) : Gmagick

Replaces the colors of an image with the closest color from a reference image.

Список параметров

gmagick

The reference image

dither

Set this integer value to something other than zero to dither the mapped image

Возвращаемые значения

Gmagick object

Ошибки

Вызывает GmagickException при ошибке.


Applies a digital filter

  • « Gmagick::mapimage
  • Gmagick::minifyimage »
  • PHP Manual
  • Gmagick
  • Applies a digital filter

Gmagick::medianfilterimage

(PECL gmagick >= Unknown)

Gmagick::medianfilterimage — Applies a digital filter

Описание

public Gmagick::medianfilterimage ( float $radius ) : void

Applies a digital filter that improves the quality of a noisy image. Each pixel is replaced by the median in a set of neighboring pixels as defined by radius.

Список параметров

radius

The radius of the pixel neighborhood.

Возвращаемые значения

Gmagick object with median filter applied.

Ошибки

Вызывает GmagickException при ошибке.


Scales an image proportionally to half its size

  • « Gmagick::medianfilterimage
  • Gmagick::modulateimage »
  • PHP Manual
  • Gmagick
  • Scales an image proportionally to half its size

Gmagick::minifyimage

(PECL gmagick >= Unknown)

Gmagick::minifyimage — Scales an image proportionally to half its size

Описание

public Gmagick::minifyimage ( void ) : Gmagick

A convenient method that scales an image proportionally to one-half its original size

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Control the brightness, saturation, and hue

  • « Gmagick::minifyimage
  • Gmagick::motionblurimage »
  • PHP Manual
  • Gmagick
  • Control the brightness, saturation, and hue

Gmagick::modulateimage

(PECL gmagick >= Unknown)

Gmagick::modulateimage — Control the brightness, saturation, and hue

Описание

public Gmagick::modulateimage ( float $brightness , float $saturation , float $hue ) : Gmagick

Lets you control the brightness, saturation, and hue of an image. Hue is the percentage of absolute rotation from the current position. For example 50 results in a counter-clockwise rotation of 90 degrees, 150 results in a clockwise rotation of 90 degrees, with 0 and 200 both resulting in a rotation of 180 degrees.

Список параметров

brightness

The percent change in brighness (-100 thru +100).

saturation

The percent change in saturation (-100 thru +100)

hue

The percent change in hue (-100 thru +100)

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Simulates motion blur

  • « Gmagick::modulateimage
  • Gmagick::newimage »
  • PHP Manual
  • Gmagick
  • Simulates motion blur

Gmagick::motionblurimage

(PECL gmagick >= Unknown)

Gmagick::motionblurimage — Simulates motion blur

Описание

public Gmagick::motionblurimage ( float $radius , float $sigma , float $angle ) : Gmagick

Simulates motion blur. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and MotionBlurImage() selects a suitable radius for you. Angle gives the angle of the blurring motion.

Список параметров

radius

The radius of the Gaussian, in pixels, not counting the center pixel.

sigma

The standard deviation of the Gaussian, in pixels.

angle

Apply the effect along this angle.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Creates a new image

  • « Gmagick::motionblurimage
  • Gmagick::nextimage »
  • PHP Manual
  • Gmagick
  • Creates a new image

Gmagick::newimage

(PECL gmagick >= Unknown)

Gmagick::newimage — Creates a new image

Описание

public Gmagick::newimage ( int $width , int $height , string $background [, string $format ] ) : Gmagick

Creates a new image with the specified background color

Список параметров

width

Width of the new image

height

Height of the new image

background

The background color used for this image (as float)

format

Image format.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Moves to the next image

  • « Gmagick::newimage
  • Gmagick::normalizeimage »
  • PHP Manual
  • Gmagick
  • Moves to the next image

Gmagick::nextimage

(PECL gmagick >= Unknown)

Gmagick::nextimage — Moves to the next image

Описание

public Gmagick::nextimage ( void ) : bool

Associates the next image in the image list with an Gmagick object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает GmagickException при ошибке.


Enhances the contrast of a color image

  • « Gmagick::nextimage
  • Gmagick::oilpaintimage »
  • PHP Manual
  • Gmagick
  • Enhances the contrast of a color image

Gmagick::normalizeimage

(PECL gmagick >= Unknown)

Gmagick::normalizeimage — Enhances the contrast of a color image

Описание

public Gmagick::normalizeimage ([ int $channel ] ) : Gmagick

Enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available.

Список параметров

channel

Identify which channel to normalize

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Simulates an oil painting

  • « Gmagick::normalizeimage
  • Gmagick::previousimage »
  • PHP Manual
  • Gmagick
  • Simulates an oil painting

Gmagick::oilpaintimage

(PECL gmagick >= Unknown)

Gmagick::oilpaintimage — Simulates an oil painting

Описание

public Gmagick::oilpaintimage ( float $radius ) : Gmagick

Applies a special effect filter that simulates an oil painting. Each pixel is replaced by the most frequent color occurring in a circular region defined by radius.

Список параметров

radius

The radius of the circular neighborhood.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Move to the previous image in the object

  • « Gmagick::oilpaintimage
  • Gmagick::profileimage »
  • PHP Manual
  • Gmagick
  • Move to the previous image in the object

Gmagick::previousimage

(PECL gmagick >= Unknown)

Gmagick::previousimage — Move to the previous image in the object

Описание

public Gmagick::previousimage ( void ) : bool

Associates the previous image in an image list with the Gmagick object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает GmagickException при ошибке.


Adds or removes a profile from an image

  • « Gmagick::previousimage
  • Gmagick::quantizeimage »
  • PHP Manual
  • Gmagick
  • Adds or removes a profile from an image

Gmagick::profileimage

(PECL gmagick >= Unknown)

Gmagick::profileimage — Adds or removes a profile from an image

Описание

public Gmagick::profileimage ( string $name , string $profile ) : Gmagick

Adds or removes a ICC, IPTC, or generic profile from an image. If the profile is NULL, it is removed from the image otherwise added. Use a name of '*' and a profile of NULL to remove all profiles from the image.

Список параметров

name

Name of profile to add or remove: ICC, IPTC, or generic profile.

profile

The profile.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Analyzes the colors within a reference image

  • « Gmagick::profileimage
  • Gmagick::quantizeimages »
  • PHP Manual
  • Gmagick
  • Analyzes the colors within a reference image

Gmagick::quantizeimage

(PECL gmagick >= Unknown)

Gmagick::quantizeimage — Analyzes the colors within a reference image

Описание

public Gmagick::quantizeimage ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError ) : Gmagick

Analyzes the colors within a reference image and chooses a fixed number of colors to represent the image. The goal of the algorithm is to minimize the color difference between the input and output image while minimizing the processing time.

Список параметров

numColors

The number of colors.

colorspace

Perform color reduction in this colorspace, typically RGBColorspace.

treeDepth

Normally, this integer value is zero or one. A zero or one tells Quantize to choose a optimal tree depth of Log4(number_colors).% A tree of this depth generally allows the best representation of the reference image with the least amount of memory and the fastest computational speed. In some cases, such as an image with low color dispersion (a few number of colors), a value other than Log4(number_colors) is required. To expand the color tree completely, use a value of 8.

dither

A value other than zero distributes the difference between an original image and the corresponding color reduced algorithm to neighboring pixels along a Hilbert curve.

measureError

A value other than zero measures the difference between the original and quantized images. This difference is the total quantization error. The error is computed by summing over all pixels in an image the distance squared in RGB space between each reference pixel value and its quantized value.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


The quantizeimages purpose

  • « Gmagick::quantizeimage
  • Gmagick::queryfontmetrics »
  • PHP Manual
  • Gmagick
  • The quantizeimages purpose

Gmagick::quantizeimages

(PECL gmagick >= Unknown)

Gmagick::quantizeimages — The quantizeimages purpose

Описание

public Gmagick::quantizeimages ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError ) : Gmagick

Analyzes the colors within a sequence of images and chooses a fixed number of colors to represent the image. The goal of the algorithm is to minimize the color difference between the input and output image while minimizing the processing time.

Список параметров

numColors

The number of colors.

colorspace

Perform color reduction in this colorspace, typically RGBColorspace.

treeDepth

Normally, this integer value is zero or one. A zero or one tells Quantize to choose a optimal tree depth of Log4(number_colors).% A tree of this depth generally allows the best representation of the reference image with the least amount of memory and the fastest computational speed. In some cases, such as an image with low color dispersion (a few number of colors), a value other than Log4(number_colors) is required. To expand the color tree completely, use a value of 8.

dither

A value other than zero distributes the difference between an original image and the corresponding color reduced algorithm to neighboring pixels along a Hilbert curve.

measureError

A value other than zero measures the difference between the original and quantized images. This difference is the total quantization error. The error is computed by summing over all pixels in an image the distance squared in RGB space between each reference pixel value and its quantized value.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Returns an array representing the font metrics

  • « Gmagick::quantizeimages
  • Gmagick::queryfonts »
  • PHP Manual
  • Gmagick
  • Returns an array representing the font metrics

Gmagick::queryfontmetrics

(PECL gmagick >= Unknown)

Gmagick::queryfontmetrics — Returns an array representing the font metrics

Описание

public Gmagick::queryfontmetrics ( GmagickDraw $draw , string $text ) : array

MagickQueryFontMetrics() returns an array representing the font metrics.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Returns the configured fonts

  • « Gmagick::queryfontmetrics
  • Gmagick::queryformats »
  • PHP Manual
  • Gmagick
  • Returns the configured fonts

Gmagick::queryfonts

(PECL gmagick >= Unknown)

Gmagick::queryfonts — Returns the configured fonts

Описание

public Gmagick::queryfonts ([ string $pattern = "*" ] ) : array

Returns fonts supported by Gmagick.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Returns formats supported by Gmagick

  • « Gmagick::queryfonts
  • Gmagick::radialblurimage »
  • PHP Manual
  • Gmagick
  • Returns formats supported by Gmagick

Gmagick::queryformats

(PECL gmagick >= Unknown)

Gmagick::queryformats — Returns formats supported by Gmagick

Описание

public Gmagick::queryformats ([ string $pattern = "*" ] ) : array

Returns formats supported by Gmagick.

Список параметров

pattern

Specifies a string containing a pattern.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Radial blurs an image

  • « Gmagick::queryformats
  • Gmagick::raiseimage »
  • PHP Manual
  • Gmagick
  • Radial blurs an image

Gmagick::radialblurimage

(PECL gmagick >= Unknown)

Gmagick::radialblurimage — Radial blurs an image

Описание

public Gmagick::radialblurimage ( float $angle [, int $channel = Gmagick::CHANNEL_DEFAULT ] ) : Gmagick

Radial blurs an image.

Список параметров

angle

The angle of the blur in degrees.

channel

Related channel

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Creates a simulated 3d button-like effect

  • « Gmagick::radialblurimage
  • Gmagick::read »
  • PHP Manual
  • Gmagick
  • Creates a simulated 3d button-like effect

Gmagick::raiseimage

(PECL gmagick >= Unknown)

Gmagick::raiseimage — Creates a simulated 3d button-like effect

Описание

public Gmagick::raiseimage ( int $width , int $height , int $x , int $y , bool $raise ) : Gmagick

Creates a simulated three-dimensional button-like effect by lightening and darkening the edges of the image. Members width and height of raise_info define the width of the vertical and horizontal edge of the effect.

Список параметров

width

Width of the area to raise.

height

Height of the area to raise.

x

X coordinate

y

Y coordinate

raise

A value other than zero creates a 3-D raise effect, otherwise it has a lowered effect.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Читает изображение из файла

  • « Gmagick::raiseimage
  • Gmagick::readimage »
  • PHP Manual
  • Gmagick
  • Читает изображение из файла

Gmagick::read

(PECL gmagick >= Unknown)

Gmagick::read — Читает изображение из файла

Описание

public Gmagick::read ( string $filename ) : Gmagick

Читает изображение из файла.

Список параметров

filename

Имя файла.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException при ошибке.


Читает изображение из файла

  • « Gmagick::read
  • Gmagick::readimageblob »
  • PHP Manual
  • Gmagick
  • Читает изображение из файла

Gmagick::readimage

(PECL gmagick >= Unknown)

Gmagick::readimage — Читает изображение из файла

Описание

public Gmagick::readimage ( string $filename ) : Gmagick

Читает изображение из файла.

Список параметров

filename

Имя файла.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения

Ошибки

Вызывает GmagickException при ошибке.


Читает изображение из бинарной строки

  • « Gmagick::readimage
  • Gmagick::readimagefile »
  • PHP Manual
  • Gmagick
  • Читает изображение из бинарной строки

Gmagick::readimageblob

(PECL gmagick >= Unknown)

Gmagick::readimageblob — Читает изображение из бинарной строки

Описание

public Gmagick::readimageblob ( string $imageContents [, string $filename ] ) : Gmagick

Читает изображение из бинарной строки.

Список параметров

imageContents

Контент изображения.

filename

Имя файла изображения.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения

Ошибки

Вызывает GmagickException при ошибке.


Читает изображение или последовательность изображений из файлового дескриптора

  • « Gmagick::readimageblob
  • Gmagick::reducenoiseimage »
  • PHP Manual
  • Gmagick
  • Читает изображение или последовательность изображений из файлового дескриптора

Gmagick::readimagefile

(PECL gmagick >= Unknown)

Gmagick::readimagefile — Читает изображение или последовательность изображений из файлового дескриптора

Описание

public Gmagick::readimagefile ( resource $fp [, string $filename ] ) : Gmagick

Читает изображение или последовательность изображений из файлового дескриптора.

Список параметров

fp

Дескриптор файла.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения

Ошибки

Вызывает GmagickException при ошибке.


Smooths the contours of an image

  • « Gmagick::readimagefile
  • Gmagick::removeimage »
  • PHP Manual
  • Gmagick
  • Smooths the contours of an image

Gmagick::reducenoiseimage

(PECL gmagick >= Unknown)

Gmagick::reducenoiseimage — Smooths the contours of an image

Описание

public Gmagick::reducenoiseimage ( float $radius ) : Gmagick

Smooths the contours of an image while still preserving edge information. The algorithm works by replacing each pixel with its neighbor closest in value. A neighbor is defined by radius. Use a radius of 0 and Gmagick::reduceNoiseImage() selects a suitable radius for you.

Список параметров

radius

The radius of the pixel neighborhood.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Удаляет изображение из списка

  • « Gmagick::reducenoiseimage
  • Gmagick::removeimageprofile »
  • PHP Manual
  • Gmagick
  • Удаляет изображение из списка

Gmagick::removeimage

(PECL gmagick >= Unknown)

Gmagick::removeimage — Удаляет изображение из списка

Описание

public Gmagick::removeimage ( void ) : Gmagick

Удаляет изображение из списка.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException при ошибке.


Удаляет именованый профайл изображения и возвращает его

  • « Gmagick::removeimage
  • Gmagick::resampleimage »
  • PHP Manual
  • Gmagick
  • Удаляет именованый профайл изображения и возвращает его

Gmagick::removeimageprofile

(PECL gmagick >= Unknown)

Gmagick::removeimageprofile — Удаляет именованый профайл изображения и возвращает его

Описание

public Gmagick::removeimageprofile ( string $name ) : string

Удаляет именованый профайл изображения и возвращает его.

Список параметров

name

Имя профайла: ICC, IPTC, или базовый профайл.

Возвращаемые значения

Именованный профайл.

Ошибки

Вызывает GmagickException при ошибке.


Resample image to desired resolution

  • « Gmagick::removeimageprofile
  • Gmagick::resizeimage »
  • PHP Manual
  • Gmagick
  • Resample image to desired resolution

Gmagick::resampleimage

(PECL gmagick >= Unknown)

Gmagick::resampleimage — Resample image to desired resolution

Описание

public Gmagick::resampleimage ( float $xResolution , float $yResolution , int $filter , float $blur ) : Gmagick

Resample image to desired resolution.

Список параметров

xResolution

The new image x resolution.

yResolution

The new image y resolution.

filter

Image filter to use.

blur

The blur factor where larger than 1 is blurry, smaller than 1 is sharp.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Scales an image

  • « Gmagick::resampleimage
  • Gmagick::rollimage »
  • PHP Manual
  • Gmagick
  • Scales an image

Gmagick::resizeimage

(PECL gmagick >= Unknown)

Gmagick::resizeimage — Scales an image

Описание

public Gmagick::resizeimage ( int $width , int $height , int $filter , float $blur [, bool $fit = FALSE ] ) : Gmagick

Scales an image to the desired dimensions with a filter.

Список параметров

width

The number of columns in the scaled image.

height

The number of rows in the scaled image.

filter

Image filter to use.

blur

The blur factor where larger than 1 is blurry, lesser than 1 is sharp.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Offsets an image

  • « Gmagick::resizeimage
  • Gmagick::rotateimage »
  • PHP Manual
  • Gmagick
  • Offsets an image

Gmagick::rollimage

(PECL gmagick >= Unknown)

Gmagick::rollimage — Offsets an image

Описание

public Gmagick::rollimage ( int $x , int $y ) : Gmagick

Offsets an image as defined by x and y.

Список параметров

x

The x offset.

y

The y offset.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Rotates an image

  • « Gmagick::rollimage
  • Gmagick::scaleimage »
  • PHP Manual
  • Gmagick
  • Rotates an image

Gmagick::rotateimage

(PECL gmagick >= Unknown)

Gmagick::rotateimage — Rotates an image

Описание

public Gmagick::rotateimage ( mixed $color , float $degrees ) : Gmagick

Rotates an image the specified number of degrees. Empty triangles left over from rotating the image are filled with the background color.

Список параметров

color

The background pixel.

degrees

The number of degrees to rotate the image.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Scales the size of an image

  • « Gmagick::rotateimage
  • Gmagick::separateimagechannel »
  • PHP Manual
  • Gmagick
  • Scales the size of an image

Gmagick::scaleimage

(PECL gmagick >= Unknown)

Gmagick::scaleimage — Scales the size of an image

Описание

public Gmagick::scaleimage ( int $width , int $height [, bool $fit = FALSE ] ) : Gmagick

Scales the size of an image to the given dimensions. The other parameter will be calculated if 0 is passed as either param.

Список параметров

width

The number of columns in the scaled image.

height

The number of rows in the scaled image.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Separates a channel from the image

  • « Gmagick::scaleimage
  • Gmagick::setCompressionQuality »
  • PHP Manual
  • Gmagick
  • Separates a channel from the image

Gmagick::separateimagechannel

(PECL gmagick >= Unknown)

Gmagick::separateimagechannel — Separates a channel from the image

Описание

public Gmagick::separateimagechannel ( int $channel ) : Gmagick

Separates a channel from the image and returns a grayscale image. A channel is a particular color component of each pixel in the image.

Список параметров

channel

Identify which channel to extract: RedChannel, GreenChannel, BlueChannel, OpacityChannel, CyanChannel, MagentaChannel, YellowChannel, BlackChannel.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the object's default compression quality

  • « Gmagick::separateimagechannel
  • Gmagick::setfilename »
  • PHP Manual
  • Gmagick
  • Sets the object's default compression quality

Gmagick::setCompressionQuality

(Информация о версии неизвестна, возможно, только в Git)

Gmagick::setCompressionQuality — Sets the object's default compression quality

Описание

Gmagick::setCompressionQuality ( int $quality = 75 ) : Gmagick

Sets the object's default compression quality.

Список параметров

quality

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.

Примеры

Пример #1 Gmagick::setCompressionQuality()

<?php
$gm = new Gmagick();
$gm->read("magick:rose");
$gm->setCompressionQuality(2);
?>


Sets the filename before you read or write the image

  • « Gmagick::setCompressionQuality
  • Gmagick::setimagebackgroundcolor »
  • PHP Manual
  • Gmagick
  • Sets the filename before you read or write the image

Gmagick::setfilename

(PECL gmagick >= Unknown)

Gmagick::setfilename — Sets the filename before you read or write the image

Описание

public Gmagick::setfilename ( string $filename ) : Gmagick

Sets the filename before you read or write an image file.

Список параметров

filename

The image filename.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the image background color

  • « Gmagick::setfilename
  • Gmagick::setimageblueprimary »
  • PHP Manual
  • Gmagick
  • Sets the image background color

Gmagick::setimagebackgroundcolor

(PECL gmagick >= Unknown)

Gmagick::setimagebackgroundcolor — Sets the image background color

Описание

public Gmagick::setimagebackgroundcolor ( GmagickPixel $color ) : Gmagick

Sets the image background color.

Список параметров

color

The background pixel wand.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the image chromaticity blue primary point

  • « Gmagick::setimagebackgroundcolor
  • Gmagick::setimagebordercolor »
  • PHP Manual
  • Gmagick
  • Sets the image chromaticity blue primary point

Gmagick::setimageblueprimary

(PECL gmagick >= Unknown)

Gmagick::setimageblueprimary — Sets the image chromaticity blue primary point

Описание

public Gmagick::setimageblueprimary ( float $x , float $y ) : Gmagick

Sets the image chromaticity blue primary point.

Список параметров

x

The blue primary x-point.

y

The blue primary y-point.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the image border color

  • « Gmagick::setimageblueprimary
  • Gmagick::setimagechanneldepth »
  • PHP Manual
  • Gmagick
  • Sets the image border color

Gmagick::setimagebordercolor

(PECL gmagick >= Unknown)

Gmagick::setimagebordercolor — Sets the image border color

Описание

public Gmagick::setimagebordercolor ( GmagickPixel $color ) : Gmagick

Sets the image border color.

Список параметров

color

The border pixel wand.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the depth of a particular image channel

  • « Gmagick::setimagebordercolor
  • Gmagick::setimagecolorspace »
  • PHP Manual
  • Gmagick
  • Sets the depth of a particular image channel

Gmagick::setimagechanneldepth

(PECL gmagick >= Unknown)

Gmagick::setimagechanneldepth — Sets the depth of a particular image channel

Описание

public Gmagick::setimagechanneldepth ( int $channel , int $depth ) : Gmagick

Sets the depth of a particular image channel.

Список параметров

channel

Identify which channel to extract: RedChannel, GreenChannel, BlueChannel, OpacityChannel, CyanChannel, MagentaChannel, YellowChannel, BlackChannel.

depth

The image depth in bits.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the image colorspace

  • « Gmagick::setimagechanneldepth
  • Gmagick::setimagecompose »
  • PHP Manual
  • Gmagick
  • Sets the image colorspace

Gmagick::setimagecolorspace

(PECL gmagick >= Unknown)

Gmagick::setimagecolorspace — Sets the image colorspace

Описание

public Gmagick::setimagecolorspace ( int $colorspace ) : Gmagick

Sets the image colorspace.

Список параметров

colorspace

The image colorspace: UndefinedColorspace, RGBColorspace, GRAYColorspace, TransparentColorspace, OHTAColorspace, XYZColorspace, YCbCrColorspace, YCCColorspace, YIQColorspace, YPbPrColorspace, YPbPrColorspace, YUVColorspace, CMYKColorspace, sRGBColorspace, HSLColorspace, or HWBColorspace.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the image composite operator

  • « Gmagick::setimagecolorspace
  • Gmagick::setimagedelay »
  • PHP Manual
  • Gmagick
  • Sets the image composite operator

Gmagick::setimagecompose

(PECL gmagick >= Unknown)

Gmagick::setimagecompose — Sets the image composite operator

Описание

public Gmagick::setimagecompose ( int $composite ) : Gmagick

Sets the image composite operator.

Список параметров

composite

The image composite operator.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the image delay

  • « Gmagick::setimagecompose
  • Gmagick::setimagedepth »
  • PHP Manual
  • Gmagick
  • Sets the image delay

Gmagick::setimagedelay

(PECL gmagick >= Unknown)

Gmagick::setimagedelay — Sets the image delay

Описание

public Gmagick::setimagedelay ( int $delay ) : Gmagick

Sets the image delay

Список параметров

delay

The image delay in 1/100th of a second.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image depth

  • « Gmagick::setimagedelay
  • Gmagick::setimagedispose »
  • PHP Manual
  • Gmagick
  • Sets the image depth

Gmagick::setimagedepth

(PECL gmagick >= Unknown)

Gmagick::setimagedepth — Sets the image depth

Описание

public Gmagick::setimagedepth ( int $depth ) : Gmagick

Sets the image depth

Список параметров

depth

The image depth in bits: 8, 16, or 32.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image disposal method

  • « Gmagick::setimagedepth
  • Gmagick::setimagefilename »
  • PHP Manual
  • Gmagick
  • Sets the image disposal method

Gmagick::setimagedispose

(PECL gmagick >= Unknown)

Gmagick::setimagedispose — Sets the image disposal method

Описание

public Gmagick::setimagedispose ( int $disposeType ) : Gmagick

Sets the image disposal method.

Список параметров

disposeType

The image disposal type.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the filename of a particular image in a sequence

  • « Gmagick::setimagedispose
  • Gmagick::setimageformat »
  • PHP Manual
  • Gmagick
  • Sets the filename of a particular image in a sequence

Gmagick::setimagefilename

(PECL gmagick >= Unknown)

Gmagick::setimagefilename — Sets the filename of a particular image in a sequence

Описание

public Gmagick::setimagefilename ( string $filename ) : Gmagick

Sets the filename of a particular image in a sequence.

Список параметров

filename

The image filename.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the format of a particular image

  • « Gmagick::setimagefilename
  • Gmagick::setimagegamma »
  • PHP Manual
  • Gmagick
  • Sets the format of a particular image

Gmagick::setimageformat

(PECL gmagick >= Unknown)

Gmagick::setimageformat — Sets the format of a particular image

Описание

public Gmagick::setimageformat ( string $imageFormat ) : Gmagick

Sets the format of a particular image in a sequence.

Список параметров

imageFormat

The image format.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image gamma

  • « Gmagick::setimageformat
  • Gmagick::setimagegreenprimary »
  • PHP Manual
  • Gmagick
  • Sets the image gamma

Gmagick::setimagegamma

(PECL gmagick >= Unknown)

Gmagick::setimagegamma — Sets the image gamma

Описание

public Gmagick::setimagegamma ( float $gamma ) : Gmagick

Sets the image gamma.

Список параметров

gamma

The image gamma.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the image chromaticity green primary point

  • « Gmagick::setimagegamma
  • Gmagick::setimageindex »
  • PHP Manual
  • Gmagick
  • Sets the image chromaticity green primary point

Gmagick::setimagegreenprimary

(PECL gmagick >= Unknown)

Gmagick::setimagegreenprimary — Sets the image chromaticity green primary point

Описание

public Gmagick::setimagegreenprimary ( float $x , float $y ) : Gmagick

Sets the image chromaticity green primary point.

Список параметров

x

The chromaticity green primary x-point.

y

The chromaticity green primary y-point.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Set the iterator to the position in the image list specified with the index parameter

  • « Gmagick::setimagegreenprimary
  • Gmagick::setimageinterlacescheme »
  • PHP Manual
  • Gmagick
  • Set the iterator to the position in the image list specified with the index parameter

Gmagick::setimageindex

(PECL gmagick >= Unknown)

Gmagick::setimageindex — Set the iterator to the position in the image list specified with the index parameter

Описание

public Gmagick::setimageindex ( int $index ) : Gmagick

Set the iterator to the position in the image list specified with the index parameter.

Список параметров

index

The scene number.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the interlace scheme of the image

  • « Gmagick::setimageindex
  • Gmagick::setimageiterations »
  • PHP Manual
  • Gmagick
  • Sets the interlace scheme of the image

Gmagick::setimageinterlacescheme

(PECL gmagick >= Unknown)

Gmagick::setimageinterlacescheme — Sets the interlace scheme of the image

Описание

public Gmagick::setimageinterlacescheme ( int $interlace ) : Gmagick

Sets the interlace scheme of the image.

Список параметров

interlace

The image interlace scheme: NoInterlace, LineInterlace, PlaneInterlace, PartitionInterlace.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the image iterations

  • « Gmagick::setimageinterlacescheme
  • Gmagick::setimageprofile »
  • PHP Manual
  • Gmagick
  • Sets the image iterations

Gmagick::setimageiterations

(PECL gmagick >= Unknown)

Gmagick::setimageiterations — Sets the image iterations

Описание

public Gmagick::setimageiterations ( int $iterations ) : Gmagick

Sets the image iterations.

Список параметров

iterations

The image delay in 1/100th of a second.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Adds a named profile to the Gmagick object

  • « Gmagick::setimageiterations
  • Gmagick::setimageredprimary »
  • PHP Manual
  • Gmagick
  • Adds a named profile to the Gmagick object

Gmagick::setimageprofile

(PECL gmagick >= Unknown)

Gmagick::setimageprofile — Adds a named profile to the Gmagick object

Описание

public Gmagick::setimageprofile ( string $name , string $profile ) : Gmagick

Adds a named profile to the Gmagick object. If a profile with the same name already exists, it is replaced. This method differs from the Gmagick::profileimage() method in that it does not apply any CMS color profiles.

Список параметров

name

Name of profile to add or remove: ICC, IPTC, or generic profile.

profile

The profile.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image chromaticity red primary point

  • « Gmagick::setimageprofile
  • Gmagick::setimagerenderingintent »
  • PHP Manual
  • Gmagick
  • Sets the image chromaticity red primary point

Gmagick::setimageredprimary

(PECL gmagick >= Unknown)

Gmagick::setimageredprimary — Sets the image chromaticity red primary point

Описание

public Gmagick::setimageredprimary ( float $x , float $y ) : Gmagick

Sets the image chromaticity red primary point.

Список параметров

x

The red primary x-point.

y

The red primary y-point.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image rendering intent

  • « Gmagick::setimageredprimary
  • Gmagick::setimageresolution »
  • PHP Manual
  • Gmagick
  • Sets the image rendering intent

Gmagick::setimagerenderingintent

(PECL gmagick >= Unknown)

Gmagick::setimagerenderingintent — Sets the image rendering intent

Описание

public Gmagick::setimagerenderingintent ( int $rendering_intent ) : Gmagick

Sets the image rendering intent.

Список параметров

rendering_intent

The image rendering intent: UndefinedIntent, SaturationIntent, PerceptualIntent, AbsoluteIntent, or RelativeIntent.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image resolution

  • « Gmagick::setimagerenderingintent
  • Gmagick::setimagescene »
  • PHP Manual
  • Gmagick
  • Sets the image resolution

Gmagick::setimageresolution

(PECL gmagick >= Unknown)

Gmagick::setimageresolution — Sets the image resolution

Описание

public Gmagick::setimageresolution ( float $xResolution , float $yResolution ) : Gmagick

Sets the image resolution.

Список параметров

xResolution

The image x resolution.

yResolution

The image y resolution.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image scene

  • « Gmagick::setimageresolution
  • Gmagick::setimagetype »
  • PHP Manual
  • Gmagick
  • Sets the image scene

Gmagick::setimagescene

(PECL gmagick >= Unknown)

Gmagick::setimagescene — Sets the image scene

Описание

public Gmagick::setimagescene ( int $scene ) : Gmagick

Sets the image scene.

Список параметров

scene

The image scene number.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image type

  • « Gmagick::setimagescene
  • Gmagick::setimageunits »
  • PHP Manual
  • Gmagick
  • Sets the image type

Gmagick::setimagetype

(PECL gmagick >= Unknown)

Gmagick::setimagetype — Sets the image type

Описание

public Gmagick::setimagetype ( int $imgType ) : Gmagick

Sets the image type.

Список параметров

imgType

The image type: UndefinedType, BilevelType, GrayscaleType, GrayscaleMatteType, PaletteType, PaletteMatteType, TrueColorType, TrueColorMatteType, ColorSeparationType, ColorSeparationMatteType, or OptimizeType.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image units of resolution

  • « Gmagick::setimagetype
  • Gmagick::setimagewhitepoint »
  • PHP Manual
  • Gmagick
  • Sets the image units of resolution

Gmagick::setimageunits

(PECL gmagick >= Unknown)

Gmagick::setimageunits — Sets the image units of resolution

Описание

public Gmagick::setimageunits ( int $resolution ) : Gmagick

Sets the image units of resolution.

Список параметров

resolution

The image units of resolution : Undefinedresolution, PixelsPerInchResolution, or PixelsPerCentimeterResolution.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image chromaticity white point

  • « Gmagick::setimageunits
  • Gmagick::setsamplingfactors »
  • PHP Manual
  • Gmagick
  • Sets the image chromaticity white point

Gmagick::setimagewhitepoint

(PECL gmagick >= Unknown)

Gmagick::setimagewhitepoint — Sets the image chromaticity white point

Описание

public Gmagick::setimagewhitepoint ( float $x , float $y ) : Gmagick

Sets the image chromaticity white point.

Список параметров

x

The white x-point.

y

The white y-point.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image sampling factors

  • « Gmagick::setimagewhitepoint
  • Gmagick::setsize »
  • PHP Manual
  • Gmagick
  • Sets the image sampling factors

Gmagick::setsamplingfactors

(PECL gmagick >= Unknown)

Gmagick::setsamplingfactors — Sets the image sampling factors

Описание

public Gmagick::setsamplingfactors ( array $factors ) : Gmagick

Sets the image sampling factors.

Список параметров

factors

An array of doubles representing the sampling factor for each color component (in RGB order).

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the size of the Gmagick object

  • « Gmagick::setsamplingfactors
  • Gmagick::shearimage »
  • PHP Manual
  • Gmagick
  • Sets the size of the Gmagick object

Gmagick::setsize

(PECL gmagick >= Unknown)

Gmagick::setsize — Sets the size of the Gmagick object

Описание

public Gmagick::setsize ( int $columns , int $rows ) : Gmagick

Sets the size of the Gmagick object. Set it before you read a raw image format such as RGB, GRAY, or CMYK.

Список параметров

columns

The width in pixels.

rows

The height in pixels.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Creating a parallelogram

  • « Gmagick::setsize
  • Gmagick::solarizeimage »
  • PHP Manual
  • Gmagick
  • Creating a parallelogram

Gmagick::shearimage

(PECL gmagick >= Unknown)

Gmagick::shearimage — Creating a parallelogram

Описание

public Gmagick::shearimage ( mixed $color , float $xShear , float $yShear ) : Gmagick

Slides one edge of an image along the X or Y axis, creating a parallelogram. An X direction shear slides an edge along the X axis, while a Y direction shear slides an edge along the Y axis. The amount of the shear is controlled by a shear angle. For X direction shears, x_shear is measured relative to the Y axis, and similarly, for Y direction shears y_shear is measured relative to the X axis. Empty triangles left over from shearing the image are filled with the background color.

Список параметров

color

The background pixel wand.

xShear

The number of degrees to shear the image.

yShear

The number of degrees to shear the image.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Applies a solarizing effect to the image

  • « Gmagick::shearimage
  • Gmagick::spreadimage »
  • PHP Manual
  • Gmagick
  • Applies a solarizing effect to the image

Gmagick::solarizeimage

(PECL gmagick >= Unknown)

Gmagick::solarizeimage — Applies a solarizing effect to the image

Описание

public Gmagick::solarizeimage ( int $threshold ) : Gmagick

Applies a special effect to the image, similar to the effect achieved in a photo darkroom by selectively exposing areas of photo sensitive paper to light. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the solarization.

Список параметров

threshold

Define the extent of the solarization.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Randomly displaces each pixel in a block

  • « Gmagick::solarizeimage
  • Gmagick::stripimage »
  • PHP Manual
  • Gmagick
  • Randomly displaces each pixel in a block

Gmagick::spreadimage

(PECL gmagick >= Unknown)

Gmagick::spreadimage — Randomly displaces each pixel in a block

Описание

public Gmagick::spreadimage ( float $radius ) : Gmagick

Special effects method that randomly displaces each pixel in a block defined by the radius parameter.

Список параметров

radius

Choose a random pixel in a neighborhood of this extent.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Strips an image of all profiles and comments

  • « Gmagick::spreadimage
  • Gmagick::swirlimage »
  • PHP Manual
  • Gmagick
  • Strips an image of all profiles and comments

Gmagick::stripimage

(PECL gmagick >= Unknown)

Gmagick::stripimage — Strips an image of all profiles and comments

Описание

public Gmagick::stripimage ( void ) : Gmagick

Strips an image of all profiles and comments.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Swirls the pixels about the center of the image

  • « Gmagick::stripimage
  • Gmagick::thumbnailimage »
  • PHP Manual
  • Gmagick
  • Swirls the pixels about the center of the image

Gmagick::swirlimage

(PECL gmagick >= Unknown)

Gmagick::swirlimage — Swirls the pixels about the center of the image

Описание

public Gmagick::swirlimage ( float $degrees ) : Gmagick

Swirls the pixels about the center of the image, where degrees indicates the sweep of the arc through which each pixel is moved. You get a more dramatic effect as the degrees move from 1 to 360.

Список параметров

degrees

Define the tightness of the swirling effect.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Changes the size of an image

  • « Gmagick::swirlimage
  • Gmagick::trimimage »
  • PHP Manual
  • Gmagick
  • Changes the size of an image

Gmagick::thumbnailimage

(PECL gmagick >= Unknown)

Gmagick::thumbnailimage — Changes the size of an image

Описание

public Gmagick::thumbnailimage ( int $width , int $height [, bool $fit = FALSE ] ) : Gmagick

Changes the size of an image to the given dimensions and removes any associated profiles. The goal is to produce small low cost thumbnail images suited for display on the Web. If TRUE is given as a third parameter then columns and rows parameters are used as maximums for each side. Both sides will be scaled down until the match or are smaller than the parameter given for the side.

Список параметров

width

Image width

height

Image height

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Remove edges from the image

  • « Gmagick::thumbnailimage
  • Gmagick::write »
  • PHP Manual
  • Gmagick
  • Remove edges from the image

Gmagick::trimimage

(PECL gmagick >= Unknown)

Gmagick::trimimage — Remove edges from the image

Описание

public Gmagick::trimimage ( float $fuzz ) : Gmagick

Remove edges that are the background color from the image.

Список параметров

fuzz

By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. This parameter represents the variation on the quantum range.

Возвращаемые значения

The Gmagick object

Ошибки

Вызывает GmagickException при ошибке.


Псевдоним Gmagick::writeimage

  • « Gmagick::trimimage
  • Gmagick::writeimage »
  • PHP Manual
  • Gmagick
  • Псевдоним Gmagick::writeimage

Gmagick::write

(PECL gmagick >= Unknown)

Gmagick::write — Псевдоним Gmagick::writeimage()

Описание

Этот метод является псевдонимом: Gmagick::writeimage().


Записывает изображение в указанный файл

  • « Gmagick::write
  • GmagickDraw »
  • PHP Manual
  • Gmagick
  • Записывает изображение в указанный файл

Gmagick::writeimage

(PECL gmagick >= Unknown)

Gmagick::writeimage — Записывает изображение в указанный файл

Описание

public Gmagick::writeimage ( string $filename [, bool $all_frames = FALSE ] ) : Gmagick

Записывает изображение в указанный файл. Если в качестве имени файла указано NULL, то изображение будет записано в файл, заданный Gmagick::ReadImage() или Gmagick::SetImageFilename().

Список параметров

filename

Имя файла.

Возвращаемые значения

Объект Gmagick

Ошибки

Вызывает GmagickException при ошибке.


Класс GmagickDraw

(PECL gmagick >= Unknown)

Введение

Обзор классов

GmagickDraw {
/* Методы */
public annotate ( float $x , float $y , string $text ) : GmagickDraw
public arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed ) : GmagickDraw
public bezier ( array $coordinate_array ) : GmagickDraw
public ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end ) : GmagickDraw
public getfillcolor ( void ) : GmagickPixel
public getfillopacity ( void ) : float
public getfont ( void ) : mixed
public getfontsize ( void ) : float
public getfontstyle ( void ) : int
public getfontweight ( void ) : int
public getstrokecolor ( void ) : GmagickPixel
public getstrokeopacity ( void ) : float
public getstrokewidth ( void ) : float
public gettextdecoration ( void ) : int
public gettextencoding ( void ) : mixed
public line ( float $sx , float $sy , float $ex , float $ey ) : GmagickDraw
public point ( float $x , float $y ) : GmagickDraw
public polygon ( array $coordinates ) : GmagickDraw
public polyline ( array $coordinate_array ) : GmagickDraw
public rectangle ( float $x1 , float $y1 , float $x2 , float $y2 ) : GmagickDraw
public rotate ( float $degrees ) : GmagickDraw
public roundrectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry ) : GmagickDraw
public scale ( float $x , float $y ) : GmagickDraw
public setfillcolor ( mixed $color ) : GmagickDraw
public setfillopacity ( float $fill_opacity ) : GmagickDraw
public setfont ( string $font ) : GmagickDraw
public setfontsize ( float $pointsize ) : GmagickDraw
public setfontstyle ( int $style ) : GmagickDraw
public setfontweight ( int $weight ) : GmagickDraw
public setstrokecolor ( mixed $color ) : GmagickDraw
public setstrokeopacity ( float $stroke_opacity ) : GmagickDraw
public setstrokewidth ( float $width ) : GmagickDraw
public settextdecoration ( int $decoration ) : GmagickDraw
public settextencoding ( string $encoding ) : GmagickDraw
}

Содержание

  • GmagickDraw::annotate — Draws text on the image
  • GmagickDraw::arc — Draws an arc
  • GmagickDraw::bezier — Draws a bezier curve
  • GmagickDraw::ellipse — Draws an ellipse on the image
  • GmagickDraw::getfillcolor — Returns the fill color
  • GmagickDraw::getfillopacity — Returns the opacity used when drawing
  • GmagickDraw::getfont — Returns the font
  • GmagickDraw::getfontsize — Returns the font pointsize
  • GmagickDraw::getfontstyle — Returns the font style
  • GmagickDraw::getfontweight — Returns the font weight
  • GmagickDraw::getstrokecolor — Returns the color used for stroking object outlines
  • GmagickDraw::getstrokeopacity — Returns the opacity of stroked object outlines
  • GmagickDraw::getstrokewidth — Returns the width of the stroke used to draw object outlines
  • GmagickDraw::gettextdecoration — Returns the text decoration
  • GmagickDraw::gettextencoding — Returns the code set used for text annotations
  • GmagickDraw::line — The line purpose
  • GmagickDraw::point — Draws a point
  • GmagickDraw::polygon — Draws a polygon
  • GmagickDraw::polyline — Draws a polyline
  • GmagickDraw::rectangle — Draws a rectangle
  • GmagickDraw::rotate — Applies the specified rotation to the current coordinate space
  • GmagickDraw::roundrectangle — Draws a rounded rectangle
  • GmagickDraw::scale — Adjusts the scaling factor
  • GmagickDraw::setfillcolor — Sets the fill color to be used for drawing filled objects
  • GmagickDraw::setfillopacity — The setfillopacity purpose
  • GmagickDraw::setfont — Sets the fully-specified font to use when annotating with text
  • GmagickDraw::setfontsize — Sets the font pointsize to use when annotating with text
  • GmagickDraw::setfontstyle — Sets the font style to use when annotating with text
  • GmagickDraw::setfontweight — Sets the font weight
  • GmagickDraw::setstrokecolor — Sets the color used for stroking object outlines
  • GmagickDraw::setstrokeopacity — Specifies the opacity of stroked object outlines
  • GmagickDraw::setstrokewidth — Sets the width of the stroke used to draw object outlines
  • GmagickDraw::settextdecoration — Specifies a decoration
  • GmagickDraw::settextencoding — Specifies the text code set


Draws text on the image

  • « GmagickDraw
  • GmagickDraw::arc »
  • PHP Manual
  • GmagickDraw
  • Draws text on the image

GmagickDraw::annotate

(PECL gmagick >= Unknown)

GmagickDraw::annotate — Draws text on the image

Описание

public GmagickDraw::annotate ( float $x , float $y , string $text ) : GmagickDraw

Draws text on the image.

Список параметров

x

x ordinate to left of text

y

y ordinate to text baseline

text

text to draw

Возвращаемые значения

The GmagickDraw object on success.


Draws an arc

  • « GmagickDraw::annotate
  • GmagickDraw::bezier »
  • PHP Manual
  • GmagickDraw
  • Draws an arc

GmagickDraw::arc

(PECL gmagick >= Unknown)

GmagickDraw::arc — Draws an arc

Описание

public GmagickDraw::arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed ) : GmagickDraw

Draws an arc falling within a specified bounding rectangle on the image.

Список параметров

sx

starting x ordinate of bounding rectangle

sy

starting y ordinate of bounding rectangle

ex

ending x ordinate of bounding rectangle

ey

ending y ordinate of bounding rectangle

sd

starting degrees of rotation

ed

ending degrees of rotation

Возвращаемые значения

The GmagickDraw object on success.


Draws a bezier curve

  • « GmagickDraw::arc
  • GmagickDraw::ellipse »
  • PHP Manual
  • GmagickDraw
  • Draws a bezier curve

GmagickDraw::bezier

(PECL gmagick >= Unknown)

GmagickDraw::bezier — Draws a bezier curve

Описание

public GmagickDraw::bezier ( array $coordinate_array ) : GmagickDraw

Draws a bezier curve through a set of points on the image.

Список параметров

coordinate_array

Coordinates array

Возвращаемые значения

The GmagickDraw object on success


Draws an ellipse on the image

  • « GmagickDraw::bezier
  • GmagickDraw::getfillcolor »
  • PHP Manual
  • GmagickDraw
  • Draws an ellipse on the image

GmagickDraw::ellipse

(PECL gmagick >= Unknown)

GmagickDraw::ellipse — Draws an ellipse on the image

Описание

public GmagickDraw::ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end ) : GmagickDraw

Draws an ellipse on the image.

Список параметров

ox

origin x ordinate

oy

origin y ordinate

rx

radius in x

ry

radius in y

start

starting rotation in degrees

end

ending rotation in degrees

Возвращаемые значения

The GmagickDraw object on success


Returns the fill color

  • « GmagickDraw::ellipse
  • GmagickDraw::getfillopacity »
  • PHP Manual
  • GmagickDraw
  • Returns the fill color

GmagickDraw::getfillcolor

(PECL gmagick >= Unknown)

GmagickDraw::getfillcolor — Returns the fill color

Описание

public GmagickDraw::getfillcolor ( void ) : GmagickPixel

Returns the fill color used for drawing filled objects.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The GmagickPixel fill color used for drawing filled objects.


Returns the opacity used when drawing

  • « GmagickDraw::getfillcolor
  • GmagickDraw::getfont »
  • PHP Manual
  • GmagickDraw
  • Returns the opacity used when drawing

GmagickDraw::getfillopacity

(PECL gmagick >= Unknown)

GmagickDraw::getfillopacity — Returns the opacity used when drawing

Описание

public GmagickDraw::getfillopacity ( void ) : float

Returns the opacity used when drawing

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the opacity used when drawing using the fill color or fill texture. Fully opaque is 1.0.


Returns the font

  • « GmagickDraw::getfillopacity
  • GmagickDraw::getfontsize »
  • PHP Manual
  • GmagickDraw
  • Returns the font

GmagickDraw::getfont

(PECL gmagick >= Unknown)

GmagickDraw::getfont — Returns the font

Описание

public GmagickDraw::getfont ( void ) : mixed

Returns a string specifying the font used when annotating with text.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string on success and FALSE if no font is set.


Returns the font pointsize

  • « GmagickDraw::getfont
  • GmagickDraw::getfontstyle »
  • PHP Manual
  • GmagickDraw
  • Returns the font pointsize

GmagickDraw::getfontsize

(PECL gmagick >= Unknown)

GmagickDraw::getfontsize — Returns the font pointsize

Описание

public GmagickDraw::getfontsize ( void ) : float

Returns the font pointsize used when annotating with text.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the font size associated with the current GmagickDraw object.


Returns the font style

  • « GmagickDraw::getfontsize
  • GmagickDraw::getfontweight »
  • PHP Manual
  • GmagickDraw
  • Returns the font style

GmagickDraw::getfontstyle

(PECL gmagick >= Unknown)

GmagickDraw::getfontstyle — Returns the font style

Описание

public GmagickDraw::getfontstyle ( void ) : int

Returns the font style used when annotating with text.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the font style constant (STYLE_) associated with the GmagickDraw object or 0 if no style is set.


Returns the font weight

  • « GmagickDraw::getfontstyle
  • GmagickDraw::getstrokecolor »
  • PHP Manual
  • GmagickDraw
  • Returns the font weight

GmagickDraw::getfontweight

(PECL gmagick >= Unknown)

GmagickDraw::getfontweight — Returns the font weight

Описание

public GmagickDraw::getfontweight ( void ) : int

Returns the font weight used when annotating with text.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an int on success and 0 if no weight is set.


Returns the color used for stroking object outlines

  • « GmagickDraw::getfontweight
  • GmagickDraw::getstrokeopacity »
  • PHP Manual
  • GmagickDraw
  • Returns the color used for stroking object outlines

GmagickDraw::getstrokecolor

(PECL gmagick >= Unknown)

GmagickDraw::getstrokecolor — Returns the color used for stroking object outlines

Описание

public GmagickDraw::getstrokecolor ( void ) : GmagickPixel

Returns the color used for stroking object outlines.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an GmagickPixel object which describes the color.


Returns the opacity of stroked object outlines

  • « GmagickDraw::getstrokecolor
  • GmagickDraw::getstrokewidth »
  • PHP Manual
  • GmagickDraw
  • Returns the opacity of stroked object outlines

GmagickDraw::getstrokeopacity

(PECL gmagick >= Unknown)

GmagickDraw::getstrokeopacity — Returns the opacity of stroked object outlines

Описание

public GmagickDraw::getstrokeopacity ( void ) : float

Returns the opacity of stroked object outlines.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a double describing the opacity.


Returns the width of the stroke used to draw object outlines

  • « GmagickDraw::getstrokeopacity
  • GmagickDraw::gettextdecoration »
  • PHP Manual
  • GmagickDraw
  • Returns the width of the stroke used to draw object outlines

GmagickDraw::getstrokewidth

(PECL gmagick >= Unknown)

GmagickDraw::getstrokewidth — Returns the width of the stroke used to draw object outlines

Описание

public GmagickDraw::getstrokewidth ( void ) : float

Returns the width of the stroke used to draw object outlines.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a double describing the stroke width.


Returns the text decoration

  • « GmagickDraw::getstrokewidth
  • GmagickDraw::gettextencoding »
  • PHP Manual
  • GmagickDraw
  • Returns the text decoration

GmagickDraw::gettextdecoration

(PECL gmagick >= Unknown)

GmagickDraw::gettextdecoration — Returns the text decoration

Описание

public GmagickDraw::gettextdecoration ( void ) : int

Returns the decoration applied when annotating with text.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns one of the DECORATION_ constants and 0 if no decoration is set.


Returns the code set used for text annotations

  • « GmagickDraw::gettextdecoration
  • GmagickDraw::line »
  • PHP Manual
  • GmagickDraw
  • Returns the code set used for text annotations

GmagickDraw::gettextencoding

(PECL gmagick >= Unknown)

GmagickDraw::gettextencoding — Returns the code set used for text annotations

Описание

public GmagickDraw::gettextencoding ( void ) : mixed

Returns a string which specifies the code set used for text annotations.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string specifying the code set or FALSE if text encoding is not set.


The line purpose

  • « GmagickDraw::gettextencoding
  • GmagickDraw::point »
  • PHP Manual
  • GmagickDraw
  • The line purpose

GmagickDraw::line

(PECL gmagick >= Unknown)

GmagickDraw::line — The line purpose

Описание

public GmagickDraw::line ( float $sx , float $sy , float $ex , float $ey ) : GmagickDraw

Draws a line on the image using the current stroke color, stroke opacity, and stroke width.

Список параметров

sx

starting x ordinate

sy

starting y ordinate

ex

ending x ordinate

ey

ending y ordinate

Возвращаемые значения

The GmagickDraw object on success


Draws a point

  • « GmagickDraw::line
  • GmagickDraw::polygon »
  • PHP Manual
  • GmagickDraw
  • Draws a point

GmagickDraw::point

(PECL gmagick >= Unknown)

GmagickDraw::point — Draws a point

Описание

public GmagickDraw::point ( float $x , float $y ) : GmagickDraw

Draws a point using the current stroke color and stroke thickness at the specified coordinates.

Список параметров

x

target x coordinate

y

target y coordinate

Возвращаемые значения

The GmagickDraw object on success


Draws a polygon

  • « GmagickDraw::point
  • GmagickDraw::polyline »
  • PHP Manual
  • GmagickDraw
  • Draws a polygon

GmagickDraw::polygon

(PECL gmagick >= Unknown)

GmagickDraw::polygon — Draws a polygon

Описание

public GmagickDraw::polygon ( array $coordinates ) : GmagickDraw

Draws a polygon using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

Список параметров

coordinates

coordinate array

Возвращаемые значения

The GmagickDraw object on success


Draws a polyline

  • « GmagickDraw::polygon
  • GmagickDraw::rectangle »
  • PHP Manual
  • GmagickDraw
  • Draws a polyline

GmagickDraw::polyline

(PECL gmagick >= Unknown)

GmagickDraw::polyline — Draws a polyline

Описание

public GmagickDraw::polyline ( array $coordinate_array ) : GmagickDraw

Draws a polyline using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

Список параметров

coordinate_array

The array of coordinates

Возвращаемые значения

The GmagickDraw object on success


Draws a rectangle

  • « GmagickDraw::polyline
  • GmagickDraw::rotate »
  • PHP Manual
  • GmagickDraw
  • Draws a rectangle

GmagickDraw::rectangle

(PECL gmagick >= Unknown)

GmagickDraw::rectangle — Draws a rectangle

Описание

public GmagickDraw::rectangle ( float $x1 , float $y1 , float $x2 , float $y2 ) : GmagickDraw

Draws a rectangle given two coordinates and using the current stroke, stroke width, and fill settings.

Список параметров

x1

x ordinate of first coordinate

y1

y ordinate of first coordinate

x2

x ordinate of second coordinate

y2

y ordinate of second coordinate

Возвращаемые значения

The GmagickDraw object on success


Applies the specified rotation to the current coordinate space

  • « GmagickDraw::rectangle
  • GmagickDraw::roundrectangle »
  • PHP Manual
  • GmagickDraw
  • Applies the specified rotation to the current coordinate space

GmagickDraw::rotate

(PECL gmagick >= Unknown)

GmagickDraw::rotate — Applies the specified rotation to the current coordinate space

Описание

public GmagickDraw::rotate ( float $degrees ) : GmagickDraw

Applies the specified rotation to the current coordinate space.

Список параметров

degrees

degrees of rotation

Возвращаемые значения

The GmagickDraw object on success


Draws a rounded rectangle

  • « GmagickDraw::rotate
  • GmagickDraw::scale »
  • PHP Manual
  • GmagickDraw
  • Draws a rounded rectangle

GmagickDraw::roundrectangle

(PECL gmagick >= Unknown)

GmagickDraw::roundrectangle — Draws a rounded rectangle

Описание

public GmagickDraw::roundrectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry ) : GmagickDraw

Draws a rounded rectangle given two coordinates, x and y corner radiuses and using the current stroke, stroke width, and fill settings.

Список параметров

x1

x ordinate of first coordinate

y1

y ordinate of first coordinate

x2

x ordinate of second coordinate

y2

y ordinate of second coordinate

rx

radius of corner in horizontal direction

ry

radius of corner in vertical direction

Возвращаемые значения

The GmagickDraw object on success


Adjusts the scaling factor

  • « GmagickDraw::roundrectangle
  • GmagickDraw::setfillcolor »
  • PHP Manual
  • GmagickDraw
  • Adjusts the scaling factor

GmagickDraw::scale

(PECL gmagick >= Unknown)

GmagickDraw::scale — Adjusts the scaling factor

Описание

public GmagickDraw::scale ( float $x , float $y ) : GmagickDraw

Adjusts the scaling factor to apply in the horizontal and vertical directions to the current coordinate space.

Список параметров

x

horizontal scale factor

y

vertical scale factor

Возвращаемые значения

The GmagickDraw object on success


Sets the fill color to be used for drawing filled objects

  • « GmagickDraw::scale
  • GmagickDraw::setfillopacity »
  • PHP Manual
  • GmagickDraw
  • Sets the fill color to be used for drawing filled objects

GmagickDraw::setfillcolor

(PECL gmagick >= Unknown)

GmagickDraw::setfillcolor — Sets the fill color to be used for drawing filled objects

Описание

public GmagickDraw::setfillcolor ( mixed $color ) : GmagickDraw

Sets the fill color to be used for drawing filled objects.

Список параметров

color

GmagickPixel or string indicating color to use for filling.

Возвращаемые значения

The GmagickDraw object on success.


The setfillopacity purpose

  • « GmagickDraw::setfillcolor
  • GmagickDraw::setfont »
  • PHP Manual
  • GmagickDraw
  • The setfillopacity purpose

GmagickDraw::setfillopacity

(PECL gmagick >= Unknown)

GmagickDraw::setfillopacity — The setfillopacity purpose

Описание

public GmagickDraw::setfillopacity ( float $fill_opacity ) : GmagickDraw

Sets the opacity to use when drawing using the fill color or fill texture. Setting it to 1.0 will make fill full opaque.

Список параметров

fill_opacity

Fill opacity

Возвращаемые значения

The GmagickDraw object on success


Sets the fully-specified font to use when annotating with text

  • « GmagickDraw::setfillopacity
  • GmagickDraw::setfontsize »
  • PHP Manual
  • GmagickDraw
  • Sets the fully-specified font to use when annotating with text

GmagickDraw::setfont

(PECL gmagick >= Unknown)

GmagickDraw::setfont — Sets the fully-specified font to use when annotating with text

Описание

public GmagickDraw::setfont ( string $font ) : GmagickDraw

Sets the fully-specified font to use when annotating with text

Список параметров

font

font name

Возвращаемые значения

The GmagickDraw object on success


Sets the font pointsize to use when annotating with text

  • « GmagickDraw::setfont
  • GmagickDraw::setfontstyle »
  • PHP Manual
  • GmagickDraw
  • Sets the font pointsize to use when annotating with text

GmagickDraw::setfontsize

(PECL gmagick >= Unknown)

GmagickDraw::setfontsize — Sets the font pointsize to use when annotating with text

Описание

public GmagickDraw::setfontsize ( float $pointsize ) : GmagickDraw

Sets the font pointsize to use when annotating with text.

Список параметров

pointsize

Text pointsize

Возвращаемые значения

The GmagickDraw object on success


Sets the font style to use when annotating with text

  • « GmagickDraw::setfontsize
  • GmagickDraw::setfontweight »
  • PHP Manual
  • GmagickDraw
  • Sets the font style to use when annotating with text

GmagickDraw::setfontstyle

(PECL gmagick >= Unknown)

GmagickDraw::setfontstyle — Sets the font style to use when annotating with text

Описание

public GmagickDraw::setfontstyle ( int $style ) : GmagickDraw

Sets the font style to use when annotating with text. The AnyStyle enumeration acts as a wild-card "don't care" option.

Список параметров

style

Font style (NormalStyle, ItalicStyle, ObliqueStyle, AnyStyle)

Возвращаемые значения

The GmagickDraw object on success


Sets the font weight

  • « GmagickDraw::setfontstyle
  • GmagickDraw::setstrokecolor »
  • PHP Manual
  • GmagickDraw
  • Sets the font weight

GmagickDraw::setfontweight

(PECL gmagick >= Unknown)

GmagickDraw::setfontweight — Sets the font weight

Описание

public GmagickDraw::setfontweight ( int $weight ) : GmagickDraw

Sets the font weight to use when annotating with text.

Список параметров

weight

Font weight (valid range 100-900)

Возвращаемые значения

The GmagickDraw object on success


Sets the color used for stroking object outlines

  • « GmagickDraw::setfontweight
  • GmagickDraw::setstrokeopacity »
  • PHP Manual
  • GmagickDraw
  • Sets the color used for stroking object outlines

GmagickDraw::setstrokecolor

(PECL gmagick >= Unknown)

GmagickDraw::setstrokecolor — Sets the color used for stroking object outlines

Описание

public GmagickDraw::setstrokecolor ( mixed $color ) : GmagickDraw

Sets the color used for stroking object outlines.

Список параметров

color

GmagickPixel or string representing the color for the stroke.

Возвращаемые значения

The GmagickDraw object on success.


Specifies the opacity of stroked object outlines

  • « GmagickDraw::setstrokecolor
  • GmagickDraw::setstrokewidth »
  • PHP Manual
  • GmagickDraw
  • Specifies the opacity of stroked object outlines

GmagickDraw::setstrokeopacity

(PECL gmagick >= Unknown)

GmagickDraw::setstrokeopacity — Specifies the opacity of stroked object outlines

Описание

public GmagickDraw::setstrokeopacity ( float $stroke_opacity ) : GmagickDraw

Specifies the opacity of stroked object outlines.

Список параметров

stroke_opacity

Stroke opacity. The value 1.0 is opaque.

Возвращаемые значения

The GmagickDraw object on success


Sets the width of the stroke used to draw object outlines

  • « GmagickDraw::setstrokeopacity
  • GmagickDraw::settextdecoration »
  • PHP Manual
  • GmagickDraw
  • Sets the width of the stroke used to draw object outlines

GmagickDraw::setstrokewidth

(PECL gmagick >= Unknown)

GmagickDraw::setstrokewidth — Sets the width of the stroke used to draw object outlines

Описание

public GmagickDraw::setstrokewidth ( float $width ) : GmagickDraw

Sets the width of the stroke used to draw object outlines

Список параметров

width

Stroke width

Возвращаемые значения

The GmagickDraw object on success


Specifies a decoration

  • « GmagickDraw::setstrokewidth
  • GmagickDraw::settextencoding »
  • PHP Manual
  • GmagickDraw
  • Specifies a decoration

GmagickDraw::settextdecoration

(PECL gmagick >= Unknown)

GmagickDraw::settextdecoration — Specifies a decoration

Описание

public GmagickDraw::settextdecoration ( int $decoration ) : GmagickDraw

Specifies a decoration to be applied when annotating with text.

Список параметров

int

Text decoration. One of NoDecoration, UnderlineDecoration, OverlineDecoration, or LineThroughDecoration

Возвращаемые значения

The GmagickDraw object on success


Specifies the text code set

  • « GmagickDraw::settextdecoration
  • GmagickPixel »
  • PHP Manual
  • GmagickDraw
  • Specifies the text code set

GmagickDraw::settextencoding

(PECL gmagick >= Unknown)

GmagickDraw::settextencoding — Specifies the text code set

Описание

public GmagickDraw::settextencoding ( string $encoding ) : GmagickDraw

Specifies the code set to use for text annotations. The only character encoding which may be specified at this time is "UTF-8" for representing Unicode as a sequence of bytes. Specify an empty string to set text encoding to the system's default. Successful text annotation using Unicode may require fonts designed to support Unicode.

Список параметров

encoding

Character string specifying text encoding

Возвращаемые значения

The GmagickDraw object on success


Класс GmagickPixel

(PECL gmagick >= Unknown)

Введение

Обзор классов

GmagickPixel {
/* Методы */
public __construct ([ string $color ] )
public getcolor ([ bool $as_array = FALSE [, bool $normalize_array = FALSE ]] ) : mixed
public getcolorcount ( void ) : int
public getcolorvalue ( int $color ) : float
public setcolor ( string $color ) : GmagickPixel
public setcolorvalue ( int $color , float $value ) : GmagickPixel
}

Содержание

  • GmagickPixel::__construct — Конструктора класса GmagickPixel
  • GmagickPixel::getcolor — Возвращает цвет
  • GmagickPixel::getcolorcount — Получить количество пикселей изображения, имеющих заданный цвет
  • GmagickPixel::getcolorvalue — Возвращает нормализованное значение для заданного цветового канала
  • GmagickPixel::setcolor — Задать цвет
  • GmagickPixel::setcolorvalue — Установить нормализованное значение цветового канала


Конструктора класса GmagickPixel

  • « GmagickPixel
  • GmagickPixel::getcolor »
  • PHP Manual
  • GmagickPixel
  • Конструктора класса GmagickPixel

GmagickPixel::__construct

(PECL gmagick >= Unknown)

GmagickPixel::__construct — Конструктора класса GmagickPixel

Описание

public GmagickPixel::__construct ([ string $color ] )

Создаёт новый объект класса GmagickPixel. Если указан цвет, то объект будет инициализирован этим цветом.

Список параметров

color

Опциональный параметер, используется для начального значения цвета объекта.

Возвращаемые значения

Объект GmagickPixel в случае успеха.


Возвращает цвет

  • « GmagickPixel::__construct
  • GmagickPixel::getcolorcount »
  • PHP Manual
  • GmagickPixel
  • Возвращает цвет

GmagickPixel::getcolor

(PECL gmagick >= Unknown)

GmagickPixel::getcolor — Возвращает цвет

Описание

public GmagickPixel::getcolor ([ bool $as_array = FALSE [, bool $normalize_array = FALSE ]] ) : mixed

Возарвщает цвет объекта GmagickPixel в виде массива (array) либо строки (string). Если для цвета установлена прозрачность, то её значение возращается в четвёртом элементе списка.

Список параметров

as_array

TRUE для типа возвращаемого значения array, а не string.

normalize_array

Значение цветов будут нормированы, если TRUE.

Возвращаемые значения

string или array со значениями цветов, нормированными, если параметр normalize_array установлен в TRUE. Бросает исключение GmagickPixelException в случае ошибки.


Получить количество пикселей изображения, имеющих заданный цвет

  • « GmagickPixel::getcolor
  • GmagickPixel::getcolorvalue »
  • PHP Manual
  • GmagickPixel
  • Получить количество пикселей изображения, имеющих заданный цвет

GmagickPixel::getcolorcount

(PECL gmagick >= Unknown)

GmagickPixel::getcolorcount — Получить количество пикселей изображения, имеющих заданный цвет

Описание

public GmagickPixel::getcolorcount ( void ) : int

Возвращает количество пикселей изображения, имеющих заданный цвет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество пикселей изображения, имеющих заданный цвет, в случае успешного выполнения. В случае возникновения ошибки выбрасывает исключание GmagickPixelException.


Возвращает нормализованное значение для заданного цветового канала

  • « GmagickPixel::getcolorcount
  • GmagickPixel::setcolor »
  • PHP Manual
  • GmagickPixel
  • Возвращает нормализованное значение для заданного цветового канала

GmagickPixel::getcolorvalue

(PECL gmagick >= Unknown)

GmagickPixel::getcolorvalue — Возвращает нормализованное значение для заданного цветового канала

Описание

public GmagickPixel::getcolorvalue ( int $color ) : float

Возвращает нормализованное значение для заданного цветового канала в виде числа с плавающей запятой (float) в диапазоне от 0 до 1.

Список параметров

color

Цветовой канал. Одна из констант цветовых каналов Gmagick.

Возвращаемые значения

Возвращает нормализованное значение для заданного цветового канала, либо, в случае возникновения ошибки, выбрасывает исключение GmagickPixelException.


Задать цвет

  • « GmagickPixel::getcolorvalue
  • GmagickPixel::setcolorvalue »
  • PHP Manual
  • GmagickPixel
  • Задать цвет

GmagickPixel::setcolor

(PECL gmagick >= Unknown)

GmagickPixel::setcolor — Задать цвет

Описание

public GmagickPixel::setcolor ( string $color ) : GmagickPixel

Задать цвет в формате объекта GmagickPixel с помощью строки (например, "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", и т.д.).

Список параметров

color

Определение цвета для инициализации объекта GmagickPixel.

Возвращаемые значения

Объект GmagickPixel.


Установить нормализованное значение цветового канала

  • « GmagickPixel::setcolor
  • ImageMagick »
  • PHP Manual
  • GmagickPixel
  • Установить нормализованное значение цветового канала

GmagickPixel::setcolorvalue

(PECL gmagick >= Unknown)

GmagickPixel::setcolorvalue — Установить нормализованное значение цветового канала

Описание

public GmagickPixel::setcolorvalue ( int $color , float $value ) : GmagickPixel

Устанавливает нормализованное значение цветового канала. Значение должно быть числом с плавающей запятой (float) в диапазоне от 0 до 1. Также данная функция может использоваться для задания канала прозрачности объекта GmagickPixel.

Список параметров

color

Цветовой канал. Одна из констант цветовых каналов Gmagick.

value

Устанавливаемое значение. Число с плавающей запятой в диапазоне от 0 до 1.

Возвращаемые значения

Объект GmagickPixel в случае успешного выполнения.


Обработка изображений (ImageMagick)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Базовое использование
  • Imagick — Класс Imagick
    • Imagick::adaptiveBlurImage — Добавляет адаптивный фильтр размытия к изображению
    • Imagick::adaptiveResizeImage — Адаптивное изменение размера изображения с данными триангуляции
    • Imagick::adaptiveSharpenImage — Адаптивное изменение резкости изображения
    • Imagick::adaptiveThresholdImage — Выбор порога для каждого пикселя в зависимости от диапазона интенсивности
    • Imagick::addImage — Добавляет новое изображение к списку изображений объекта Imagick
    • Imagick::addNoiseImage — Накладывает случайный шум на изображение
    • Imagick::affineTransformImage — Преобразование изображения
    • Imagick::animateImages — Анимация одного или нескольких изображений
    • Imagick::annotateImage — Добавляет текстовый комментарий на изображение
    • Imagick::appendImages — Объединяет набор изображений
    • Imagick::autoLevelImage — Description
    • Imagick::averageImages — Усредняет набор изображений
    • Imagick::blackThresholdImage — Перевести все пиксели ниже порогового значения в черный цвет
    • Imagick::blueShiftImage — Description
    • Imagick::blurImage — Добавляет фильтр размытия к изображению
    • Imagick::borderImage — Окружает изображение рамкой
    • Imagick::brightnessContrastImage — Description
    • Imagick::charcoalImage — Рисование углем
    • Imagick::chopImage — Удаляет область изображения и обрезает его
    • Imagick::clampImage — Description
    • Imagick::clear — Очищает все ресурсы, связанные с объектом Imagick
    • Imagick::clipImage — Обрезка вдоль ближайшего контура с профилем 8BIM
    • Imagick::clipImagePath — Description
    • Imagick::clipPathImage — Отсечь вдоль обозначенного контура с профилем 8BIM
    • Imagick::clone — Создает точную копию объекта Imagick
    • Imagick::clutImage — Заменяет цвета в изображении
    • Imagick::coalesceImages — Composites a set of images
    • Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target
    • Imagick::colorizeImage — Смешивание цвета заливки с изображением
    • Imagick::colorMatrixImage — Description
    • Imagick::combineImages — Combines one or more images into a single image
    • Imagick::commentImage — Adds a comment to your image
    • Imagick::compareImageChannels — Returns the difference in one or more images
    • Imagick::compareImageLayers — Returns the maximum bounding region between images
    • Imagick::compareImages — Compares an image to a reconstructed image
    • Imagick::compositeImage — Composite one image onto another
    • Imagick::__construct — Конструктор объекта Imagick
    • Imagick::contrastImage — Change the contrast of the image
    • Imagick::contrastStretchImage — Enhances the contrast of a color image
    • Imagick::convolveImage — Applies a custom convolution kernel to the image
    • Imagick::count — Get the number of images
    • Imagick::cropImage — Извлекает область изображения
    • Imagick::cropThumbnailImage — Creates a crop thumbnail
    • Imagick::current — Возвращает ссылку на текущий объект Imagick
    • Imagick::cycleColormapImage — Displaces an image's colormap
    • Imagick::decipherImage — Deciphers an image
    • Imagick::deconstructImages — Returns certain pixel differences between images
    • Imagick::deleteImageArtifact — Delete image artifact
    • Imagick::deleteImageProperty — Description
    • Imagick::deskewImage — Removes skew from the image
    • Imagick::despeckleImage — Reduces the speckle noise in an image
    • Imagick::destroy — Удаляет объект Imagick
    • Imagick::displayImage — Выводит изображение
    • Imagick::displayImages — Выводит изображение или последовательность изображений
    • Imagick::distortImage — Distorts an image using various distortion methods
    • Imagick::drawImage — Выполняет рендеринг объекта ImagickDraw на текущем изображении
    • Imagick::edgeImage — Enhance edges within the image
    • Imagick::embossImage — Returns a grayscale image with a three-dimensional effect
    • Imagick::encipherImage — Enciphers an image
    • Imagick::enhanceImage — Improves the quality of a noisy image
    • Imagick::equalizeImage — Equalizes the image histogram
    • Imagick::evaluateImage — Applies an expression to an image
    • Imagick::exportImagePixels — Exports raw image pixels
    • Imagick::extentImage — Set image size
    • Imagick::filter — Description
    • Imagick::flattenImages — Merges a sequence of images
    • Imagick::flipImage — Создает вертикальное зеркало изображения
    • Imagick::floodFillPaintImage — Changes the color value of any pixel that matches target
    • Imagick::flopImage — Создает вертикальное зеркало изображения
    • Imagick::forwardFourierTransformImage — Description
    • Imagick::frameImage — Adds a simulated three-dimensional border
    • Imagick::functionImage — Applies a function on the image
    • Imagick::fxImage — Evaluate expression for each pixel in the image
    • Imagick::gammaImage — Gamma-corrects an image
    • Imagick::gaussianBlurImage — Blurs an image
    • Imagick::getColorspace — Возвращает цветовую палитру
    • Imagick::getCompression — Возвращает тип сжатия объекта
    • Imagick::getCompressionQuality — Возвращает качество сжатия объекта
    • Imagick::getCopyright — Возвращает копирайт API ImageMagick в виде строки
    • Imagick::getFilename — Имя файла результирующего изображения
    • Imagick::getFont — Возвращает название шрифта
    • Imagick::getFormat — Возвращает формат Imagick объекта
    • Imagick::getGravity — Возвращает значение гравитации (притяжения)
    • Imagick::getHomeURL — Возвращает домашний URL библиотеки ImageMagick
    • Imagick::getImage — Возвращает новый объект Imagick
    • Imagick::getImageAlphaChannel — Возвращает альфа-канал изображения
    • Imagick::getImageArtifact — Get image artifact
    • Imagick::getImageAttribute — Description
    • Imagick::getImageBackgroundColor — Возвращает цвет фона изображения
    • Imagick::getImageBlob — Returns the image sequence as a blob
    • Imagick::getImageBluePrimary — Returns the chromaticy blue primary point
    • Imagick::getImageBorderColor — Возвращает цвет рамки изображения
    • Imagick::getImageChannelDepth — Gets the depth for a particular image channel
    • Imagick::getImageChannelDistortion — Compares image channels of an image to a reconstructed image
    • Imagick::getImageChannelDistortions — Gets channel distortions
    • Imagick::getImageChannelExtrema — Gets the extrema for one or more image channels
    • Imagick::getImageChannelKurtosis — The getImageChannelKurtosis purpose
    • Imagick::getImageChannelMean — Gets the mean and standard deviation
    • Imagick::getImageChannelRange — Gets channel range
    • Imagick::getImageChannelStatistics — Returns statistics for each channel in the image
    • Imagick::getImageClipMask — Gets image clip mask
    • Imagick::getImageColormapColor — Returns the color of the specified colormap index
    • Imagick::getImageColors — Возвращает число уникальных цветов в изображении
    • Imagick::getImageColorspace — Возвращает цветовую палитру изображения
    • Imagick::getImageCompose — Возвращает составной оператор, связанный с изображением
    • Imagick::getImageCompression — Возвращает текущий тип компрессии изображения
    • Imagick::getImageCompressionQuality — Возвращает текущее качество сжатия изображения
    • Imagick::getImageDelay — Gets the image delay
    • Imagick::getImageDepth — Gets the image depth
    • Imagick::getImageDispose — Gets the image disposal method
    • Imagick::getImageDistortion — Compares an image to a reconstructed image
    • Imagick::getImageExtrema — Gets the extrema for the image
    • Imagick::getImageFilename — Возвращает имя файла конкретного изображения в последовательности
    • Imagick::getImageFormat — Возвращает формат конкретного изображения в последовательности
    • Imagick::getImageGamma — Возвращает гамму изображения
    • Imagick::getImageGeometry — Возвращает ширину и высоту в виде ассоциативного массива
    • Imagick::getImageGravity — Возвращает значение гравитации (притяжения)
    • Imagick::getImageGreenPrimary — Returns the chromaticy green primary point
    • Imagick::getImageHeight — Возвращает высоту изображения
    • Imagick::getImageHistogram — Gets the image histogram
    • Imagick::getImageIndex — Gets the index of the current active image
    • Imagick::getImageInterlaceScheme — Gets the image interlace scheme
    • Imagick::getImageInterpolateMethod — Returns the interpolation method
    • Imagick::getImageIterations — Gets the image iterations
    • Imagick::getImageLength — Returns the image length in bytes
    • Imagick::getImageMagickLicense — Returns a string containing the ImageMagick license
    • Imagick::getImageMatte — Return if the image has a matte channel
    • Imagick::getImageMatteColor — Returns the image matte color
    • Imagick::getImageMimeType — Description
    • Imagick::getImageOrientation — Gets the image orientation
    • Imagick::getImagePage — Returns the page geometry
    • Imagick::getImagePixelColor — Returns the color of the specified pixel
    • Imagick::getImageProfile — Returns the named image profile
    • Imagick::getImageProfiles — Returns the image profiles
    • Imagick::getImageProperties — Возвращает свойства изображения
    • Imagick::getImageProperty — Returns the named image property
    • Imagick::getImageRedPrimary — Returns the chromaticity red primary point
    • Imagick::getImageRegion — Extracts a region of the image
    • Imagick::getImageRenderingIntent — Gets the image rendering intent
    • Imagick::getImageResolution — Gets the image X and Y resolution
    • Imagick::getImagesBlob — Returns all image sequences as a blob
    • Imagick::getImageScene — Gets the image scene
    • Imagick::getImageSignature — Generates an SHA-256 message digest
    • Imagick::getImageSize — Возвращает размер изображения в байтах
    • Imagick::getImageTicksPerSecond — Gets the image ticks-per-second
    • Imagick::getImageTotalInkDensity — Gets the image total ink density
    • Imagick::getImageType — Возвращает возможный тип изображения
    • Imagick::getImageUnits — Gets the image units of resolution
    • Imagick::getImageVirtualPixelMethod — Returns the virtual pixel method
    • Imagick::getImageWhitePoint — Returns the chromaticity white point
    • Imagick::getImageWidth — Возвращает ширину изображения
    • Imagick::getInterlaceScheme — Gets the object interlace scheme
    • Imagick::getIteratorIndex — Gets the index of the current active image
    • Imagick::getNumberImages — Returns the number of images in the object
    • Imagick::getOption — Returns a value associated with the specified key
    • Imagick::getPackageName — Returns the ImageMagick package name
    • Imagick::getPage — Returns the page geometry
    • Imagick::getPixelIterator — Returns a MagickPixelIterator
    • Imagick::getPixelRegionIterator — Возвращает объект ImagickPixelIterator для секции изображения
    • Imagick::getPointSize — Возвращает размер точки
    • Imagick::getQuantum — Description
    • Imagick::getQuantumDepth — Возвращает величину глубины
    • Imagick::getQuantumRange — Возвращает величину размера спектра Imagick
    • Imagick::getRegistry — Description
    • Imagick::getReleaseDate — Возвращает дату релиза ImageMagick
    • Imagick::getResource — Возвращает размер используемой памяти указанного ресурса
    • Imagick::getResourceLimit — Возвращает заданный лимит ресурсов
    • Imagick::getSamplingFactors — Возвращает горизонтальный и вертикальный фактор выборки
    • Imagick::getSize — Возвращает размер, связанный с объектом Imagick
    • Imagick::getSizeOffset — Возвращает размер смещения
    • Imagick::getVersion — Возвращает версию API ImageMagick
    • Imagick::haldClutImage — Replaces colors in the image
    • Imagick::hasNextImage — Checks if the object has more images
    • Imagick::hasPreviousImage — Checks if the object has a previous image
    • Imagick::identifyFormat — Description
    • Imagick::identifyImage — Определяет изображение и получает атрибуты
    • Imagick::implodeImage — Creates a new image as a copy
    • Imagick::importImagePixels — Imports image pixels
    • Imagick::inverseFourierTransformImage — Description
    • Imagick::labelImage — Adds a label to an image
    • Imagick::levelImage — Adjusts the levels of an image
    • Imagick::linearStretchImage — Stretches with saturation the image intensity
    • Imagick::liquidRescaleImage — Animates an image or images
    • Imagick::listRegistry — Description
    • Imagick::magnifyImage — Scales an image proportionally 2x
    • Imagick::mapImage — Replaces the colors of an image with the closest color from a reference image
    • Imagick::matteFloodfillImage — Changes the transparency value of a color
    • Imagick::medianFilterImage — Applies a digital filter
    • Imagick::mergeImageLayers — Merges image layers
    • Imagick::minifyImage — Scales an image proportionally to half its size
    • Imagick::modulateImage — Control the brightness, saturation, and hue
    • Imagick::montageImage — Creates a composite image
    • Imagick::morphImages — Method morphs a set of images
    • Imagick::morphology — Description
    • Imagick::mosaicImages — Forms a mosaic from images
    • Imagick::motionBlurImage — Simulates motion blur
    • Imagick::negateImage — Negates the colors in the reference image
    • Imagick::newImage — Creates a new image
    • Imagick::newPseudoImage — Creates a new image
    • Imagick::nextImage — Moves to the next image
    • Imagick::normalizeImage — Enhances the contrast of a color image
    • Imagick::oilPaintImage — Simulates an oil painting
    • Imagick::opaquePaintImage — Changes the color value of any pixel that matches target
    • Imagick::optimizeImageLayers — Removes repeated portions of images to optimize
    • Imagick::orderedPosterizeImage — Performs an ordered dither
    • Imagick::paintFloodfillImage — Changes the color value of any pixel that matches target
    • Imagick::paintOpaqueImage — Change any pixel that matches color
    • Imagick::paintTransparentImage — Changes any pixel that matches color with the color defined by fill
    • Imagick::pingImage — Fetch basic attributes about the image
    • Imagick::pingImageBlob — Quickly fetch attributes
    • Imagick::pingImageFile — Get basic image attributes in a lightweight manner
    • Imagick::polaroidImage — Simulates a Polaroid picture
    • Imagick::posterizeImage — Reduces the image to a limited number of color level
    • Imagick::previewImages — Quickly pin-point appropriate parameters for image processing
    • Imagick::previousImage — Move to the previous image in the object
    • Imagick::profileImage — Adds or removes a profile from an image
    • Imagick::quantizeImage — Analyzes the colors within a reference image
    • Imagick::quantizeImages — Analyzes the colors within a sequence of images
    • Imagick::queryFontMetrics — Returns an array representing the font metrics
    • Imagick::queryFonts — Returns the configured fonts
    • Imagick::queryFormats — Returns formats supported by Imagick
    • Imagick::radialBlurImage — Radial blurs an image
    • Imagick::raiseImage — Creates a simulated 3d button-like effect
    • Imagick::randomThresholdImage — Creates a high-contrast, two-color image
    • Imagick::readImage — Reads image from filename
    • Imagick::readImageBlob — Reads image from a binary string
    • Imagick::readImageFile — Reads image from open filehandle
    • Imagick::readimages — Description
    • Imagick::recolorImage — Recolors image
    • Imagick::reduceNoiseImage — Smooths the contours of an image
    • Imagick::remapImage — Remaps image colors
    • Imagick::removeImage — Removes an image from the image list
    • Imagick::removeImageProfile — Removes the named image profile and returns it
    • Imagick::render — Renders all preceding drawing commands
    • Imagick::resampleImage — Resample image to desired resolution
    • Imagick::resetImagePage — Reset image page
    • Imagick::resizeImage — Scales an image
    • Imagick::rollImage — Offsets an image
    • Imagick::rotateImage — Rotates an image
    • Imagick::rotationalBlurImage — Description
    • Imagick::roundCorners — Rounds image corners
    • Imagick::sampleImage — Scales an image with pixel sampling
    • Imagick::scaleImage — Scales the size of an image
    • Imagick::segmentImage — Segments an image
    • Imagick::selectiveBlurImage — Description
    • Imagick::separateImageChannel — Separates a channel from the image
    • Imagick::sepiaToneImage — Sepia tones an image
    • Imagick::setBackgroundColor — Sets the object's default background color
    • Imagick::setColorspace — Set colorspace
    • Imagick::setCompression — Sets the object's default compression type
    • Imagick::setCompressionQuality — Sets the object's default compression quality
    • Imagick::setFilename — Sets the filename before you read or write the image
    • Imagick::setFirstIterator — Sets the Imagick iterator to the first image
    • Imagick::setFont — Sets font
    • Imagick::setFormat — Sets the format of the Imagick object
    • Imagick::setGravity — Sets the gravity
    • Imagick::setImage — Replaces image in the object
    • Imagick::setImageAlphaChannel — Sets image alpha channel
    • Imagick::setImageArtifact — Set image artifact
    • Imagick::setImageAttribute — Description
    • Imagick::setImageBackgroundColor — Sets the image background color
    • Imagick::setImageBias — Sets the image bias for any method that convolves an image
    • Imagick::setImageBiasQuantum — Description
    • Imagick::setImageBluePrimary — Sets the image chromaticity blue primary point
    • Imagick::setImageBorderColor — Sets the image border color
    • Imagick::setImageChannelDepth — Sets the depth of a particular image channel
    • Imagick::setImageClipMask — Sets image clip mask
    • Imagick::setImageColormapColor — Sets the color of the specified colormap index
    • Imagick::setImageColorspace — Sets the image colorspace
    • Imagick::setImageCompose — Sets the image composite operator
    • Imagick::setImageCompression — Sets the image compression
    • Imagick::setImageCompressionQuality — Sets the image compression quality
    • Imagick::setImageDelay — Sets the image delay
    • Imagick::setImageDepth — Sets the image depth
    • Imagick::setImageDispose — Sets the image disposal method
    • Imagick::setImageExtent — Sets the image size
    • Imagick::setImageFilename — Sets the filename of a particular image
    • Imagick::setImageFormat — Sets the format of a particular image
    • Imagick::setImageGamma — Sets the image gamma
    • Imagick::setImageGravity — Sets the image gravity
    • Imagick::setImageGreenPrimary — Sets the image chromaticity green primary point
    • Imagick::setImageIndex — Set the iterator position
    • Imagick::setImageInterlaceScheme — Sets the image compression
    • Imagick::setImageInterpolateMethod — Sets the image interpolate pixel method
    • Imagick::setImageIterations — Sets the image iterations
    • Imagick::setImageMatte — Sets the image matte channel
    • Imagick::setImageMatteColor — Sets the image matte color
    • Imagick::setImageOpacity — Sets the image opacity level
    • Imagick::setImageOrientation — Sets the image orientation
    • Imagick::setImagePage — Sets the page geometry of the image
    • Imagick::setImageProfile — Adds a named profile to the Imagick object
    • Imagick::setImageProperty — Sets an image property
    • Imagick::setImageRedPrimary — Sets the image chromaticity red primary point
    • Imagick::setImageRenderingIntent — Sets the image rendering intent
    • Imagick::setImageResolution — Sets the image resolution
    • Imagick::setImageScene — Sets the image scene
    • Imagick::setImageTicksPerSecond — Sets the image ticks-per-second
    • Imagick::setImageType — Sets the image type
    • Imagick::setImageUnits — Sets the image units of resolution
    • Imagick::setImageVirtualPixelMethod — Sets the image virtual pixel method
    • Imagick::setImageWhitePoint — Sets the image chromaticity white point
    • Imagick::setInterlaceScheme — Sets the image compression
    • Imagick::setIteratorIndex — Set the iterator position
    • Imagick::setLastIterator — Sets the Imagick iterator to the last image
    • Imagick::setOption — Set an option
    • Imagick::setPage — Sets the page geometry of the Imagick object
    • Imagick::setPointSize — Sets point size
    • Imagick::setProgressMonitor — Description
    • Imagick::setRegistry — Description
    • Imagick::setResolution — Sets the image resolution
    • Imagick::setResourceLimit — Sets the limit for a particular resource
    • Imagick::setSamplingFactors — Sets the image sampling factors
    • Imagick::setSize — Sets the size of the Imagick object
    • Imagick::setSizeOffset — Sets the size and offset of the Imagick object
    • Imagick::setType — Sets the image type attribute
    • Imagick::shadeImage — Creates a 3D effect
    • Imagick::shadowImage — Simulates an image shadow
    • Imagick::sharpenImage — Sharpens an image
    • Imagick::shaveImage — Shaves pixels from the image edges
    • Imagick::shearImage — Creating a parallelogram
    • Imagick::sigmoidalContrastImage — Adjusts the contrast of an image
    • Imagick::sketchImage — Simulates a pencil sketch
    • Imagick::smushImages — Description
    • Imagick::solarizeImage — Applies a solarizing effect to the image
    • Imagick::sparseColorImage — Interpolates colors
    • Imagick::spliceImage — Splices a solid color into the image
    • Imagick::spreadImage — Randomly displaces each pixel in a block
    • Imagick::statisticImage — Description
    • Imagick::steganoImage — Hides a digital watermark within the image
    • Imagick::stereoImage — Composites two images
    • Imagick::stripImage — Strips an image of all profiles and comments
    • Imagick::subImageMatch — Description
    • Imagick::swirlImage — Swirls the pixels about the center of the image
    • Imagick::textureImage — Repeatedly tiles the texture image
    • Imagick::thresholdImage — Изменяет отдельные пиксели на основе порогового значения
    • Imagick::thumbnailImage — Changes the size of an image
    • Imagick::tintImage — Applies a color vector to each pixel in the image
    • Imagick::__toString — Returns the image as a string
    • Imagick::transformImage — Convenience method for setting crop size and the image geometry
    • Imagick::transformImageColorspace — Transforms an image to a new colorspace
    • Imagick::transparentPaintImage — Paints pixels transparent
    • Imagick::transposeImage — Creates a vertical mirror image
    • Imagick::transverseImage — Creates a horizontal mirror image
    • Imagick::trimImage — Remove edges from the image
    • Imagick::uniqueImageColors — Discards all but one of any pixel color
    • Imagick::unsharpMaskImage — Sharpens an image
    • Imagick::valid — Checks if the current item is valid
    • Imagick::vignetteImage — Adds vignette filter to the image
    • Imagick::waveImage — Applies wave filter to the image
    • Imagick::whiteThresholdImage — Force all pixels above the threshold into white
    • Imagick::writeImage — Writes an image to the specified filename
    • Imagick::writeImageFile — Записывает изображение в файл
    • Imagick::writeImages — Writes an image or image sequence
    • Imagick::writeImagesFile — Writes frames to a filehandle
  • ImagickDraw — Класс ImagickDraw
    • ImagickDraw::affine — Adjusts the current affine transformation matrix
    • ImagickDraw::annotation — Draws text on the image
    • ImagickDraw::arc — Draws an arc
    • ImagickDraw::bezier — Draws a bezier curve
    • ImagickDraw::circle — Draws a circle
    • ImagickDraw::clear — Clears the ImagickDraw
    • ImagickDraw::clone — Makes an exact copy of the specified ImagickDraw object
    • ImagickDraw::color — Draws color on image
    • ImagickDraw::comment — Adds a comment
    • ImagickDraw::composite — Composites an image onto the current image
    • ImagickDraw::__construct — The ImagickDraw constructor
    • ImagickDraw::destroy — Frees all associated resources
    • ImagickDraw::ellipse — Draws an ellipse on the image
    • ImagickDraw::getClipPath — Obtains the current clipping path ID
    • ImagickDraw::getClipRule — Returns the current polygon fill rule
    • ImagickDraw::getClipUnits — Returns the interpretation of clip path units
    • ImagickDraw::getFillColor — Returns the fill color
    • ImagickDraw::getFillOpacity — Returns the opacity used when drawing
    • ImagickDraw::getFillRule — Returns the fill rule
    • ImagickDraw::getFont — Returns the font
    • ImagickDraw::getFontFamily — Returns the font family
    • ImagickDraw::getFontSize — Returns the font pointsize
    • ImagickDraw::getFontStretch — Description
    • ImagickDraw::getFontStyle — Returns the font style
    • ImagickDraw::getFontWeight — Returns the font weight
    • ImagickDraw::getGravity — Returns the text placement gravity
    • ImagickDraw::getStrokeAntialias — Returns the current stroke antialias setting
    • ImagickDraw::getStrokeColor — Returns the color used for stroking object outlines
    • ImagickDraw::getStrokeDashArray — Returns an array representing the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::getStrokeDashOffset — Returns the offset into the dash pattern to start the dash
    • ImagickDraw::getStrokeLineCap — Returns the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::getStrokeLineJoin — Returns the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::getStrokeMiterLimit — Returns the stroke miter limit
    • ImagickDraw::getStrokeOpacity — Returns the opacity of stroked object outlines
    • ImagickDraw::getStrokeWidth — Returns the width of the stroke used to draw object outlines
    • ImagickDraw::getTextAlignment — Returns the text alignment
    • ImagickDraw::getTextAntialias — Returns the current text antialias setting
    • ImagickDraw::getTextDecoration — Returns the text decoration
    • ImagickDraw::getTextEncoding — Returns the code set used for text annotations
    • ImagickDraw::getTextInterlineSpacing — Description
    • ImagickDraw::getTextInterwordSpacing — Description
    • ImagickDraw::getTextKerning — Description
    • ImagickDraw::getTextUnderColor — Returns the text under color
    • ImagickDraw::getVectorGraphics — Returns a string containing vector graphics
    • ImagickDraw::line — Draws a line
    • ImagickDraw::matte — Paints on the image's opacity channel
    • ImagickDraw::pathClose — Adds a path element to the current path
    • ImagickDraw::pathCurveToAbsolute — Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierAbsolute — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierRelative — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToRelative — Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothAbsolute — Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothRelative — Draws a cubic Bezier curve
    • ImagickDraw::pathEllipticArcAbsolute — Draws an elliptical arc
    • ImagickDraw::pathEllipticArcRelative — Draws an elliptical arc
    • ImagickDraw::pathFinish — Terminates the current path
    • ImagickDraw::pathLineToAbsolute — Draws a line path
    • ImagickDraw::pathLineToHorizontalAbsolute — Draws a horizontal line path
    • ImagickDraw::pathLineToHorizontalRelative — Draws a horizontal line
    • ImagickDraw::pathLineToRelative — Draws a line path
    • ImagickDraw::pathLineToVerticalAbsolute — Draws a vertical line
    • ImagickDraw::pathLineToVerticalRelative — Draws a vertical line path
    • ImagickDraw::pathMoveToAbsolute — Starts a new sub-path
    • ImagickDraw::pathMoveToRelative — Starts a new sub-path
    • ImagickDraw::pathStart — Declares the start of a path drawing list
    • ImagickDraw::point — Draws a point
    • ImagickDraw::polygon — Draws a polygon
    • ImagickDraw::polyline — Draws a polyline
    • ImagickDraw::pop — Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw
    • ImagickDraw::popClipPath — Terminates a clip path definition
    • ImagickDraw::popDefs — Terminates a definition list
    • ImagickDraw::popPattern — Terminates a pattern definition
    • ImagickDraw::push — Clones the current ImagickDraw and pushes it to the stack
    • ImagickDraw::pushClipPath — Starts a clip path definition
    • ImagickDraw::pushDefs — Indicates that following commands create named elements for early processing
    • ImagickDraw::pushPattern — Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern
    • ImagickDraw::rectangle — Draws a rectangle
    • ImagickDraw::render — Renders all preceding drawing commands onto the image
    • ImagickDraw::resetVectorGraphics — Description
    • ImagickDraw::rotate — Applies the specified rotation to the current coordinate space
    • ImagickDraw::roundRectangle — Draws a rounded rectangle
    • ImagickDraw::scale — Adjusts the scaling factor
    • ImagickDraw::setClipPath — Associates a named clipping path with the image
    • ImagickDraw::setClipRule — Set the polygon fill rule to be used by the clipping path
    • ImagickDraw::setClipUnits — Sets the interpretation of clip path units
    • ImagickDraw::setFillAlpha — Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillColor — Sets the fill color to be used for drawing filled objects
    • ImagickDraw::setFillOpacity — Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillPatternURL — Sets the URL to use as a fill pattern for filling objects
    • ImagickDraw::setFillRule — Sets the fill rule to use while drawing polygons
    • ImagickDraw::setFont — Sets the fully-specified font to use when annotating with text
    • ImagickDraw::setFontFamily — Sets the font family to use when annotating with text
    • ImagickDraw::setFontSize — Sets the font pointsize to use when annotating with text
    • ImagickDraw::setFontStretch — Sets the font stretch to use when annotating with text
    • ImagickDraw::setFontStyle — Sets the font style to use when annotating with text
    • ImagickDraw::setFontWeight — Sets the font weight
    • ImagickDraw::setGravity — Sets the text placement gravity
    • ImagickDraw::setResolution — Description
    • ImagickDraw::setStrokeAlpha — Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokeAntialias — Controls whether stroked outlines are antialiased
    • ImagickDraw::setStrokeColor — Sets the color used for stroking object outlines
    • ImagickDraw::setStrokeDashArray — Specifies the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::setStrokeDashOffset — Specifies the offset into the dash pattern to start the dash
    • ImagickDraw::setStrokeLineCap — Specifies the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::setStrokeLineJoin — Specifies the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::setStrokeMiterLimit — Specifies the miter limit
    • ImagickDraw::setStrokeOpacity — Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokePatternURL — Sets the pattern used for stroking object outlines
    • ImagickDraw::setStrokeWidth — Sets the width of the stroke used to draw object outlines
    • ImagickDraw::setTextAlignment — Specifies a text alignment
    • ImagickDraw::setTextAntialias — Controls whether text is antialiased
    • ImagickDraw::setTextDecoration — Specifies a decoration
    • ImagickDraw::setTextEncoding — Specifies the text code set
    • ImagickDraw::setTextInterlineSpacing — Description
    • ImagickDraw::setTextInterwordSpacing — Description
    • ImagickDraw::setTextKerning — Description
    • ImagickDraw::setTextUnderColor — Specifies the color of a background rectangle
    • ImagickDraw::setVectorGraphics — Sets the vector graphics
    • ImagickDraw::setViewbox — Sets the overall canvas size
    • ImagickDraw::skewX — Skews the current coordinate system in the horizontal direction
    • ImagickDraw::skewY — Skews the current coordinate system in the vertical direction
    • ImagickDraw::translate — Applies a translation to the current coordinate system
  • ImagickPixel — Класс ImagickPixel
    • ImagickPixel::clear — Очищает ресурсы, связанные с этим объектом
    • ImagickPixel::__construct — Конструктор ImagickPixel
    • ImagickPixel::destroy — Освобождает ресурсы, связанные с этим объектом
    • ImagickPixel::getColor — Возвращает цвет
    • ImagickPixel::getColorAsString — Возвращает цвет в виде строки
    • ImagickPixel::getColorCount — Возвращает количество цветов связанных с этим цветом
    • ImagickPixel::getColorQuantum — Description
    • ImagickPixel::getColorValue — Возвращает нормализованное значение цвета канала
    • ImagickPixel::getColorValueQuantum — Description
    • ImagickPixel::getHSL — Возвращает нормализованный HSL-цвет объекта ImagickPixel
    • ImagickPixel::getIndex — Description
    • ImagickPixel::isPixelSimilar — Check the distance between this color and another
    • ImagickPixel::isPixelSimilarQuantum — Description
    • ImagickPixel::isSimilar — Проверить разницу между этим цветом и другим
    • ImagickPixel::setColor — Устанавливает цвет
    • ImagickPixel::setColorCount — Description
    • ImagickPixel::setColorValue — Устанавливает нормализованное значение одного из каналов
    • ImagickPixel::setColorValueQuantum — Description
    • ImagickPixel::setHSL — Установка нормализованного HSL цвета
    • ImagickPixel::setIndex — Description
  • ImagickPixelIterator — Класс ImagickPixelIterator
    • ImagickPixelIterator::clear — Очищает ресурсы, связанные с PixelIterator
    • ImagickPixelIterator::__construct — Конструктор ImagickPixelIterator
    • ImagickPixelIterator::destroy — Освобождает ресурсы, связанные с PixelIterator
    • ImagickPixelIterator::getCurrentIteratorRow — Возвращает текущий ряд объекта ImagickPixel
    • ImagickPixelIterator::getIteratorRow — Возвращает текущий пиксель итератора ряда
    • ImagickPixelIterator::getNextIteratorRow — Возвращает следующий ряд итератора пикселей
    • ImagickPixelIterator::getPreviousIteratorRow — Возвращает предыдущий ряд
    • ImagickPixelIterator::newPixelIterator — Возвращает новый итератор пикселей
    • ImagickPixelIterator::newPixelRegionIterator — Возвращает новый итератор пикселей
    • ImagickPixelIterator::resetIterator — Сбрасывает итератор пикселей
    • ImagickPixelIterator::setIteratorFirstRow — Устанавливает итератор пикселей на первый ряд
    • ImagickPixelIterator::setIteratorLastRow — Устанавливает итератор пикселей на последний ряд
    • ImagickPixelIterator::setIteratorRow — Устанавливает номер ряда в итераторе пикселей
    • ImagickPixelIterator::syncIterator — Синхронизирует итератор пикселей
  • ImagickKernel — Класс ImagickKernel
    • ImagickKernel::addKernel — Description
    • ImagickKernel::addUnityKernel — Description
    • ImagickKernel::fromBuiltIn — Description
    • ImagickKernel::fromMatrix — Description
    • ImagickKernel::getMatrix — Description
    • ImagickKernel::scale — Description
    • ImagickKernel::separate — Description


Введение

Imagick является встроенным php-расширением для создания и изменения изображений используя API ImageMagick.

ImageMagick представляет собой набор программного обеспечения для создания, редактирования и компонования растровых изображений. Он может читать, конвертировать и записывать изображения в различных форматах (более 100), включая DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, и TIFF.

ImageMagick Studio LLC, некоммерческая организация, специализирующаяся в разработке графического программного обеспечения, доступного бесплатно.


Требования

Требования к установке на ОС Windows

Информация о версии не отличается от вышеизложенного. Бинарные сборки доступны на http://www.imagemagick.org/, так что вы можете загрузить это расширение на Windows без необходимости компилирования.

Требования к установке на другие платформы

Требуется PHP >= 5.1.3 и ImageMagick >= 6.2.4. Количество поддерживаемых Imagick форматов файлов зависит от количества поддерживаемых форматов установленного ImageMagick. Например, Imagemagick требует ghostscript для проведения операций с PDF документами.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/imagick.

Замечание: Официальное название этого расширения - imagick.

Пользователи Windows могут загрузить готовый DLL файл со страницы » PECL.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Конфигурационные опции Imagick
Имя | По умолчанию | Место изменения | Список изменений
imagick.locale_fix | FALSE | PHP_INI_ALL | Доступно начиная с Imagick 2.1.0
imagick.progress_monitor | FALSE | PHP_INI_SYSTEM | Доступно начиная с Imagick 2.2.2
imagick.skip_version_check | FALSE | PHP_INI_SYSTEM | Доступно с Imagick 3.3.0
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

imagick.locale_fix boolean

Исправление ошибки рисования с локалью, используя ',' в качестве разделителя.

imagick.progress_monitor boolean

Используется для включения мониторинга прогресса.

imagick.skip_version_check boolean

Когда Imagic загружен, он проверяет, что версия ImageMagick, с которой он был скомпилирован, совпадает с текущей используемой версией и, если не совпадает, выводит предупреждение.Это предупреждение можно подавить, установив данный параметр.

Использовать Imagic с версией ImageMagick отличной от той, с которой он был скомпилирован, не рекомендуется. Он может работать, а может завершаться аварийно, либо вести себя непредсказуемо.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы COLOR_*

Константы цветовых типов. Эти константы используются в основном с ImagickPixel.

imagick::COLOR_BLACK (integer)
Черный
imagick::COLOR_BLUE (integer)
Синий
imagick::COLOR_CYAN (integer)
Сине-зеленый
imagick::COLOR_GREEN (integer)
Зеленый
imagick::COLOR_RED (integer)
Красный
imagick::COLOR_YELLOW (integer)
Желтый
imagick::COLOR_MAGENTA (integer)
Пурпурный
imagick::COLOR_OPACITY (integer)
Прозрачность цвета
imagick::COLOR_ALPHA (integer)
Альфа-канал для цвета
imagick::COLOR_FUZZ (integer)
'Fuzz factor' для цвета. См. документацию по ImageMagick.
DISPOSE константы

Константы расположения

imagick::DISPOSE_UNRECOGNIZED (integer)
Не распознан
imagick::DISPOSE_UNDEFINED (integer)
Не задан
imagick::DISPOSE_NONE (integer)
Нет расположения
imagick::DISPOSE_BACKGROUND (integer)
Фон
imagick::DISPOSE_PREVIOUS (integer)
Предадущее
Константы оператора наложения
imagick::COMPOSITE_DEFAULT (integer)
Оператор наложения по умолчанию
imagick::COMPOSITE_UNDEFINED (integer)
Неопределённый оператор наложения
imagick::COMPOSITE_NO (integer)
Не установленный оператор наложения
imagick::COMPOSITE_ADD (integer)
Результатом будет изображение + изображение
imagick::COMPOSITE_ATOP (integer)
Результатом будет изображение такой же формы с наложением изображения затемняя его в местах перекрытия
imagick::COMPOSITE_BLEND (integer)
Смесь изображения
imagick::COMPOSITE_BUMPMAP (integer)
Так же, как COMPOSITE_MULTIPLY, за исключением того, что источник сначала преобразуется в оттенки серого.
imagick::COMPOSITE_CLEAR (integer)
Делает целевое изображение празрачным
imagick::COMPOSITE_COLORBURN (integer)
Затемняет конечное изображение с учётом исходного изображения
imagick::COMPOSITE_COLORDODGE (integer)
Повышенная яркость конечного изображения с учётом исходного изображения
imagick::COMPOSITE_COLORIZE (integer)
Раскраска целевого изображения с помощью составного изображения
imagick::COMPOSITE_COPYBLACK (integer)
Копирует чёрный цвет из исходного изображения в целевое
imagick::COMPOSITE_COPYBLUE (integer)
Копирует синий цвет из исходного изображения в целевое
imagick::COMPOSITE_COPY (integer)
Копирует исходное изображение в целевое
imagick::COMPOSITE_COPYCYAN (integer)
Копирует сине-зеленый цвет из исходного изображения в целевое
imagick::COMPOSITE_COPYGREEN (integer)
Копирует зеленый цвет из исходного изображения в целевое
imagick::COMPOSITE_COPYMAGENTA (integer)
Копирует пурпурный цвет из исходного изображения в целевое
imagick::COMPOSITE_COPYOPACITY (integer)
Копирует прозрачность из исходного изображения в целевое
imagick::COMPOSITE_COPYRED (integer)
Копирует красный цвет из исходного изображения в целевое
imagick::COMPOSITE_COPYYELLOW (integer)
Копирует жёлтый цвет из исходного изображения в целевое
imagick::COMPOSITE_DARKEN (integer)
Затемняет целевое изображение
imagick::COMPOSITE_DSTATOP (integer)
Область назначения, которая находится внутри исходного изображения накладывается поверх исходного и заменяет назначение
imagick::COMPOSITE_DST (integer)
Целевое изображение остаётся нетронутым
imagick::COMPOSITE_DSTIN (integer)
Область внутри исходного изображения заменяется заданным изображением
imagick::COMPOSITE_DSTOUT (integer)
Область снаружи исходного изображения заменяется заданным изображением
imagick::COMPOSITE_DSTOVER (integer)
Исходное изображение заменяется заданным
imagick::COMPOSITE_DIFFERENCE (integer)
Вычитание более темного цвета из двух составляющих
imagick::COMPOSITE_DISPLACE (integer)
Смещение пикселей заданного изображения по аналогии с исходным изображением
imagick::COMPOSITE_DISSOLVE (integer)
Растворение исходного изображения в заданном
imagick::COMPOSITE_EXCLUSION (integer)
Создание эффекта, похожего на imagick::COMPOSITE_DIFFERENCE, но с более низким контрастом
imagick::COMPOSITE_HARDLIGHT (integer)
Умножает или осветляет цвет, в зависимости от исходного значения цвета
imagick::COMPOSITE_HUE (integer)
Изменение оттенка заданного изображения по аналогии с исходным изображением
imagick::COMPOSITE_IN (integer)
Наложение исходного изображения на заданное
imagick::COMPOSITE_LIGHTEN (integer)
Освещает заданное изображение по аналогии с исходным изображением
imagick::COMPOSITE_LUMINIZE (integer)
Изменение яркости заданного изображения по аналогии с исходным изображением
imagick::COMPOSITE_MINUS (integer)
Вычитает исходное изображение из заданного
imagick::COMPOSITE_MODULATE (integer)
Модулирует целевые яркость, насыщенности и тон по аналогии с исходным изображением
imagick::COMPOSITE_MULTIPLY (integer)
Перемножает цель и источник
imagick::COMPOSITE_OUT (integer)
Наложение внешних частей источника на цель
imagick::COMPOSITE_OVER (integer)
Наложение источника на цель
imagick::COMPOSITE_OVERLAY (integer)
Преобразование "Overlay"
imagick::COMPOSITE_PLUS (integer)
Добавляет источник к цели
imagick::COMPOSITE_REPLACE (integer)
Заменяет цель источником
imagick::COMPOSITE_SATURATE (integer)
Меняет насыщенность цели в соответствии с источником
imagick::COMPOSITE_SCREEN (integer)
Источник и цель сначала дополняются, потом перемножаются, а потом источник заменяет цель.
imagick::COMPOSITE_SOFTLIGHT (integer)
Затемняет или осветляет цвета, в зависимости от источника
imagick::COMPOSITE_SRCATOP (integer)
Часть источника, лежащая внутри цели, накладывается на цель
imagick::COMPOSITE_SRC (integer)
Источник копируется в цель
imagick::COMPOSITE_SRCIN (integer)
Часть источника, лежащая внутри цели, заменяет цель
imagick::COMPOSITE_SRCOUT (integer)
Часть источника, лежащая вне цели, заменяет цель
imagick::COMPOSITE_SRCOVER (integer)
Источник заменяет цель
imagick::COMPOSITE_SUBTRACT (integer)
Вычитает цвета источника из цели
imagick::COMPOSITE_THRESHOLD (integer)
Источник накладывается на цель как определено порогом источника
imagick::COMPOSITE_XOR (integer)
Часть источника, лежащая вне цели комбинируется с цастью цели, лежащей вне источника
Константы MONTAGEMODE

imagick::MONTAGEMODE_FRAME (integer)
imagick::MONTAGEMODE_UNFRAME (integer)
imagick::MONTAGEMODE_CONCATENATE (integer)
Константы STYLE

imagick::STYLE_NORMAL (integer)
imagick::STYLE_ITALIC (integer)
imagick::STYLE_OBLIQUE (integer)
imagick::STYLE_ANY (integer)
Константы FILTER

imagick::FILTER_UNDEFINED (integer)
imagick::FILTER_POINT (integer)
imagick::FILTER_BOX (integer)
imagick::FILTER_TRIANGLE (integer)
imagick::FILTER_HERMITE (integer)
imagick::FILTER_HANNING (integer)
imagick::FILTER_HAMMING (integer)
imagick::FILTER_BLACKMAN (integer)
imagick::FILTER_GAUSSIAN (integer)
imagick::FILTER_QUADRATIC (integer)
imagick::FILTER_CUBIC (integer)
imagick::FILTER_CATROM (integer)
imagick::FILTER_MITCHELL (integer)
imagick::FILTER_LANCZOS (integer)
imagick::FILTER_BESSEL (integer)
imagick::FILTER_SINC (integer)
Константы IMGTYPE

imagick::IMGTYPE_UNDEFINED (integer)
imagick::IMGTYPE_BILEVEL (integer)
imagick::IMGTYPE_GRAYSCALE (integer)
imagick::IMGTYPE_GRAYSCALEMATTE (integer)
imagick::IMGTYPE_PALETTE (integer)
imagick::IMGTYPE_PALETTEMATTE (integer)
imagick::IMGTYPE_TRUECOLOR (integer)
imagick::IMGTYPE_TRUECOLORMATTE (integer)
imagick::IMGTYPE_COLORSEPARATION (integer)
imagick::IMGTYPE_COLORSEPARATIONMATTE (integer)
imagick::IMGTYPE_OPTIMIZE (integer)
Константы RESOLUTION

imagick::RESOLUTION_UNDEFINED (integer)
imagick::RESOLUTION_PIXELSPERINCH (integer)
imagick::RESOLUTION_PIXELSPERCENTIMETER (integer)
Константы COMPRESSION

imagick::COMPRESSION_UNDEFINED (integer)
imagick::COMPRESSION_NO (integer)
imagick::COMPRESSION_BZIP (integer)
imagick::COMPRESSION_FAX (integer)
imagick::COMPRESSION_GROUP4 (integer)
imagick::COMPRESSION_JPEG (integer)
imagick::COMPRESSION_JPEG2000 (integer)
imagick::COMPRESSION_LOSSLESSJPEG (integer)
imagick::COMPRESSION_LZW (integer)
imagick::COMPRESSION_RLE (integer)
imagick::COMPRESSION_ZIP (integer)
imagick::COMPRESSION_DXT1 (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или выше.
imagick::COMPRESSION_DXT3 (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или выше.
imagick::COMPRESSION_DXT5 (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или выше.
Константы PAINT

imagick::PAINT_POINT (integer)
imagick::PAINT_REPLACE (integer)
imagick::PAINT_FLOODFILL (integer)
imagick::PAINT_FILLTOBORDER (integer)
imagick::PAINT_RESET (integer)
Константы GRAVITY

imagick::GRAVITY_NORTHWEST (integer)
imagick::GRAVITY_NORTH (integer)
imagick::GRAVITY_NORTHEAST (integer)
imagick::GRAVITY_WEST (integer)
imagick::GRAVITY_CENTER (integer)
imagick::GRAVITY_EAST (integer)
imagick::GRAVITY_SOUTHWEST (integer)
imagick::GRAVITY_SOUTH (integer)
imagick::GRAVITY_SOUTHEAST (integer)
Константы STRETCH

imagick::STRETCH_NORMAL (integer)
imagick::STRETCH_ULTRACONDENSED (integer)
imagick::STRETCH_CONDENSED (integer)
imagick::STRETCH_SEMICONDENSED (integer)
imagick::STRETCH_SEMIEXPANDED (integer)
imagick::STRETCH_EXPANDED (integer)
imagick::STRETCH_EXTRAEXPANDED (integer)
imagick::STRETCH_ULTRAEXPANDED (integer)
imagick::STRETCH_ANY (integer)
Константы ALIGN

imagick::ALIGN_UNDEFINED (integer)
imagick::ALIGN_LEFT (integer)
imagick::ALIGN_CENTER (integer)
imagick::ALIGN_RIGHT (integer)
Константы DECORATION

imagick::DECORATION_NO (integer)
imagick::DECORATION_UNDERLINE (integer)
imagick::DECORATION_OVERLINE (integer)
imagick::DECORATION_LINETROUGH (integer)
Константы NOISE

imagick::NOISE_UNIFORM (integer)
imagick::NOISE_GAUSSIAN (integer)
imagick::NOISE_MULTIPLICATIVEGAUSSIAN (integer)
imagick::NOISE_IMPULSE (integer)
imagick::NOISE_LAPLACIAN (integer)
imagick::NOISE_POISSON (integer)
imagick::NOISE_RANDOM (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
Константы CHANNEL

imagick::CHANNEL_UNDEFINED (integer)
imagick::CHANNEL_RED (integer)
imagick::CHANNEL_GRAY (integer)
imagick::CHANNEL_CYAN (integer)
imagick::CHANNEL_GREEN (integer)
imagick::CHANNEL_MAGENTA (integer)
imagick::CHANNEL_BLUE (integer)
imagick::CHANNEL_YELLOW (integer)
imagick::CHANNEL_ALPHA (integer)
imagick::CHANNEL_OPACITY (integer)
imagick::CHANNEL_MATTE (integer)
imagick::CHANNEL_BLACK (integer)
imagick::CHANNEL_INDEX (integer)
imagick::CHANNEL_ALL (integer)
imagick::CHANNEL_DEFAULT (integer)
Константы METRIC

imagick::METRIC_UNDEFINED (integer)
imagick::METRIC_MEANABSOLUTEERROR (integer)
imagick::METRIC_MEANSQUAREERROR (integer)
imagick::METRIC_PEAKABSOLUTEERROR (integer)
imagick::METRIC_PEAKSIGNALTONOISERATIO (integer)
imagick::METRIC_ROOTMEANSQUAREDERROR (integer)
Константы PIXEL

imagick::PIXEL_CHAR (integer)
imagick::PIXEL_DOUBLE (integer)
imagick::PIXEL_FLOAT (integer)
imagick::PIXEL_INTEGER (integer)
Доступно только для ImageMagick < 7.
imagick::PIXEL_LONG (integer)
imagick::PIXEL_QUANTUM (integer)
imagick::PIXEL_SHORT (integer)
Константы EVALUATE

imagick::EVALUATE_UNDEFINED (integer)
imagick::EVALUATE_ADD (integer)
imagick::EVALUATE_AND (integer)
imagick::EVALUATE_DIVIDE (integer)
imagick::EVALUATE_LEFTSHIFT (integer)
imagick::EVALUATE_MAX (integer)
imagick::EVALUATE_MIN (integer)
imagick::EVALUATE_MULTIPLY (integer)
imagick::EVALUATE_OR (integer)
imagick::EVALUATE_RIGHTSHIFT (integer)
imagick::EVALUATE_SET (integer)
imagick::EVALUATE_SUBTRACT (integer)
imagick::EVALUATE_XOR (integer)
imagick::EVALUATE_POW (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_LOG (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_THRESHOLD (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_THRESHOLDBLACK (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_THRESHOLDWHITE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_GAUSSIANNOISE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_IMPULSENOISE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_LAPLACIANNOISE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_MULTIPLICATIVENOISE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_POISSONNOISE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_UNIFORMNOISE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_COSINE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_SINE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_ADDMODULUS (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
Константы COLORSPACE

imagick::COLORSPACE_UNDEFINED (integer)
imagick::COLORSPACE_RGB (integer)
imagick::COLORSPACE_GRAY (integer)
imagick::COLORSPACE_TRANSPARENT (integer)
imagick::COLORSPACE_OHTA (integer)
imagick::COLORSPACE_LAB (integer)
imagick::COLORSPACE_XYZ (integer)
imagick::COLORSPACE_YCBCR (integer)
imagick::COLORSPACE_YCC (integer)
imagick::COLORSPACE_YIQ (integer)
imagick::COLORSPACE_YPBPR (integer)
imagick::COLORSPACE_YUV (integer)
imagick::COLORSPACE_CMYK (integer)
imagick::COLORSPACE_SRGB (integer)
imagick::COLORSPACE_HSB (integer)
imagick::COLORSPACE_HSL (integer)
imagick::COLORSPACE_HWB (integer)
imagick::COLORSPACE_REC601LUMA (integer)
imagick::COLORSPACE_REC709LUMA (integer)
imagick::COLORSPACE_LOG (integer)
imagick::COLORSPACE_CMY (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.2 или выше.
Константы VIRTUALPIXELMETHOD

imagick::VIRTUALPIXELMETHOD_UNDEFINED (integer)
imagick::VIRTUALPIXELMETHOD_BACKGROUND (integer)
imagick::VIRTUALPIXELMETHOD_CONSTANT (integer)
imagick::VIRTUALPIXELMETHOD_EDGE (integer)
imagick::VIRTUALPIXELMETHOD_MIRROR (integer)
imagick::VIRTUALPIXELMETHOD_TILE (integer)
imagick::VIRTUALPIXELMETHOD_TRANSPARENT (integer)
imagick::VIRTUALPIXELMETHOD_MASK (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.2 или выше.
imagick::VIRTUALPIXELMETHOD_BLACK (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.2 или выше.
imagick::VIRTUALPIXELMETHOD_GRAY (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.2 или выше.
imagick::VIRTUALPIXELMETHOD_WHITE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.2 или выше.
imagick::VIRTUALPIXELMETHOD_HORIZONTALTILE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.3 или выше.
imagick::VIRTUALPIXELMETHOD_VERTICALTILE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.3 или выше.
Константы PREVIEW

imagick::PREVIEW_UNDEFINED (integer)
imagick::PREVIEW_ROTATE (integer)
imagick::PREVIEW_SHEAR (integer)
imagick::PREVIEW_ROLL (integer)
imagick::PREVIEW_HUE (integer)
imagick::PREVIEW_SATURATION (integer)
imagick::PREVIEW_BRIGHTNESS (integer)
imagick::PREVIEW_GAMMA (integer)
imagick::PREVIEW_SPIFF (integer)
imagick::PREVIEW_DULL (integer)
imagick::PREVIEW_GRAYSCALE (integer)
imagick::PREVIEW_QUANTIZE (integer)
imagick::PREVIEW_DESPECKLE (integer)
imagick::PREVIEW_REDUCENOISE (integer)
imagick::PREVIEW_ADDNOISE (integer)
imagick::PREVIEW_SHARPEN (integer)
imagick::PREVIEW_BLUR (integer)
imagick::PREVIEW_THRESHOLD (integer)
imagick::PREVIEW_EDGEDETECT (integer)
imagick::PREVIEW_SPREAD (integer)
imagick::PREVIEW_SOLARIZE (integer)
imagick::PREVIEW_SHADE (integer)
imagick::PREVIEW_RAISE (integer)
imagick::PREVIEW_SEGMENT (integer)
imagick::PREVIEW_SWIRL (integer)
imagick::PREVIEW_IMPLODE (integer)
imagick::PREVIEW_WAVE (integer)
imagick::PREVIEW_OILPAINT (integer)
imagick::PREVIEW_CHARCOALDRAWING (integer)
imagick::PREVIEW_JPEG (integer)
Константы RENDERINGINTENT

imagick::RENDERINGINTENT_UNDEFINED (integer)
imagick::RENDERINGINTENT_SATURATION (integer)
imagick::RENDERINGINTENT_PERCEPTUAL (integer)
imagick::RENDERINGINTENT_ABSOLUTE (integer)
imagick::RENDERINGINTENT_RELATIVE (integer)
Константы INTERLACE

imagick::INTERLACE_UNDEFINED (integer)
imagick::INTERLACE_NO (integer)
imagick::INTERLACE_LINE (integer)
imagick::INTERLACE_PLANE (integer)
imagick::INTERLACE_PARTITION (integer)
imagick::INTERLACE_GIF (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.4 или выше.
imagick::INTERLACE_JPEG (integer)
imagick::INTERLACE_PNG (integer)
Константы FILLRULE

imagick::FILLRULE_UNDEFINED (integer)
imagick::FILLRULE_EVENODD (integer)
imagick::FILLRULE_NONZERO (integer)
Константы PATHUNITS

imagick::PATHUNITS_UNDEFINED (integer)
imagick::PATHUNITS_USERSPACE (integer)
imagick::PATHUNITS_USERSPACEONUSE (integer)
imagick::PATHUNITS_OBJECTBOUNDINGBOX (integer)
Константы LINECAP

imagick::LINECAP_UNDEFINED (integer)
imagick::LINECAP_BUTT (integer)
imagick::LINECAP_ROUND (integer)
imagick::LINECAP_SQUARE (integer)
Константы LINEJOIN

imagick::LINEJOIN_UNDEFINED (integer)
imagick::LINEJOIN_MITER (integer)
imagick::LINEJOIN_ROUND (integer)
imagick::LINEJOIN_BEVEL (integer)
Константы RESOURCETYPE

imagick::RESOURCETYPE_UNDEFINED (integer)
imagick::RESOURCETYPE_AREA (integer)
Определяет максимальную ширину * высоту изображения, которое может находиться в пиксеном кэше.
imagick::RESOURCETYPE_DISK (integer)
Определяет максимальное количество дискового пространства в байтах, разрешенных для использования в пиксельном кэше.
imagick::RESOURCETYPE_FILE (integer)
Определяет максимальное количество открытых файлов пиксельного кеша..
imagick::RESOURCETYPE_MAP (integer)
Определяет максимальное количество памяти, в байтах, под пиксельный кеш.
imagick::RESOURCETYPE_MEMORY (integer)
Определяет максимальное количество памяти, в байтах, под пиксельный кеш из кучи.
imagick::RESOURCETYPE_THREAD (integer)
Определяет максимальное количество параллельных потоков. Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.7.8 или выше.
Константы LAYERMETHOD

imagick::LAYERMETHOD_UNDEFINED (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_COALESCE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_COMPAREANY (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_COMPARECLEAR (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_COMPAREOVERLAY (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_DISPOSE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_OPTIMIZE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_OPTIMIZEPLUS (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_OPTIMIZEIMAGE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::LAYERMETHOD_OPTIMIZETRANS (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::LAYERMETHOD_REMOVEDUPS (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::LAYERMETHOD_REMOVEZERO (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::LAYERMETHOD_COMPOSITE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::LAYERMETHOD_MERGE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или выше.
imagick::LAYERMETHOD_FLATTEN (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или выше.
imagick::LAYERMETHOD_MOSAIC (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или выше.
Константы ORIENTATION

imagick::ORIENTATION_UNDEFINED (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_TOPLEFT (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_TOPRIGHT (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_BOTTOMRIGHT (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_BOTTOMLEFT (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_LEFTTOP (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_RIGHTTOP (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_RIGHTBOTTOM (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_LEFTBOTTOM (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
Константы DISTORTION

imagick::DISTORTION_UNDEFINED (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_AFFINE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_AFFINEPROJECTION (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_ARC (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_BILINEAR (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_PERSPECTIVE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_PERSPECTIVEPROJECTION (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_SCALEROTATETRANSLATE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_POLYNOMIAL (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_POLAR (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_DEPOLAR (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_BARREL (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_BARRELINVERSE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_SHEPARDS (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_SENTINEL (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
Константы ALPHACHANNEL

imagick::ALPHACHANNEL_ACTIVATE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или выше.
imagick::ALPHACHANNEL_DEACTIVATE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или выше.
imagick::ALPHACHANNEL_RESET (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или выше.
imagick::ALPHACHANNEL_SET (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или выше.
imagick::ALPHACHANNEL_UNDEFINED (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::ALPHACHANNEL_COPY (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::ALPHACHANNEL_EXTRACT (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::ALPHACHANNEL_OPAQUE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::ALPHACHANNEL_SHAPE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::ALPHACHANNEL_TRANSPARENT (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
Константы SPARSECOLORMETHOD

imagick::SPARSECOLORMETHOD_UNDEFINED (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::SPARSECOLORMETHOD_BARYCENTRIC (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::SPARSECOLORMETHOD_BILINEAR (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::SPARSECOLORMETHOD_POLYNOMIAL (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::SPARSECOLORMETHOD_SPEPARDS (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::SPARSECOLORMETHOD_VORONOI (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
Константы FUNCTION

imagick::FUNCTION_UNDEFINED (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.9 или выше.
imagick::FUNCTION_POLYNOMIAL (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.9 или выше.
imagick::FUNCTION_SINUSOID (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.9 или выше.
Константы INTERPOLATE

imagick::INTERPOLATE_UNDEFINED (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_AVERAGE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_BICUBIC (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_BILINEAR (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_FILTER (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_INTEGER (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_MESH (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_NEARESTNEIGHBOR (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_SPLINE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.4 или выше.
Константы DITHERMETHOD

imagick::DITHERMETHOD_UNDEFINED (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DITHERMETHOD_NO (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DITHERMETHOD_RIEMERSMA (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DITHERMETHOD_FLOYDSTEINBERG (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.


  • « Предопределенные константы
  • Базовое использование »
  • PHP Manual
  • ImageMagick
  • Примеры

Примеры

Содержание

  • Базовое использование


Базовое использование

В PHP очень легко управлять объектом Imagick используя ОО интерфейс. Вот небольшой пример, как сделать миниатюру:

Пример #1 Создание миниатюры в Imagick

<?php

header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');

// Если в качестве ширины или высоты передан 0,
// то сохраняется соотношение сторон
$image->thumbnailImage(100, 0);

echo $image;

?>

С использованием SPL и других OO функций поддерживаемых в Imagick, можно очень легко изменить размеры всех файлов в директории (полезно для пакетного изменения больших изображений с цифровой камеры для просмотра в Web). Здесь мы используем изменение размера, используя определённые мета-данные:

Пример #2 Создание миниатюр для всех JPG файлов в директории

<?php

$images = new Imagick(glob('images/*.JPG'));

foreach($images as $image) {

    // Передаём 0 в thumbnailImage для сохранения соотношения сторон
    $image->thumbnailImage(1024,0);

}

$images->writeImages();

?>

Этот пример создаёт отражение изображения. Отражение создаётся зеркальным отображением и наложением градиента на нём. Затем оригинальное изображение и его отражение накладываются на холст.

Пример #3 Создание отражения

<?php
/* Чтение изображения */
$im = new Imagick("test.png");

/* Миниатюра изображения */
$im->thumbnailImage(200, null);

/* Создание рамки для изображения */
$im->borderImage(new ImagickPixel("white"), 5, 5);

/* Клонируем изображение и зеркально поворачиваем его */
$reflection = $im->clone();
$reflection->flipImage();

/* Создаём градиент. Это будет наложением для отражения */
$gradient = new Imagick();

/* Градиент должен быть достаточно большой для изображения и его рамки */
$gradient->newPseudoImage($reflection->getImageWidth() + 10, $reflection->getImageHeight() + 10, "gradient:transparent-black");

/* Наложение градиента на отражение */
$reflection->compositeImage($gradient, imagick::COMPOSITE_OVER, 0, 0);

/* Добавляем прозрачность. Требуется ImageMagick 6.2.9 или выше */
$reflection->setImageOpacity( 0.3 );

/* Создаём пустой холст */
$canvas = new Imagick();

/* Холст должен быть достаточно большой, чтобы вместить оба изображения */
$width = $im->getImageWidth() + 40;
$height = ($im->getImageHeight() * 2) + 30;
$canvas->newImage($width, $height, new ImagickPixel("black"));
$canvas->setImageFormat("png");

/* Наложение оригинального изображения и отражения на холст */
$canvas->compositeImage($im, imagick::COMPOSITE_OVER, 20, 10);
$canvas->compositeImage($reflection, imagick::COMPOSITE_OVER, 20, $im->getImageHeight() + 10);

/* Вывод изображения */
header("Content-Type: image/png");
echo $canvas;
?>

Результатом выполнения данного примера будет что-то подобное:

Пример вывода: Создание отражения изображения

Этот пример иллюстрирует как использовать заливку во время рисования.

Пример #4 Заливка текста градиентом

<?php

/* Создание нового объекта imagick */
$im = new Imagick();

/* Создание нового изображения. Будет использоваться как шаблон заливки */
$im->newPseudoImage(50, 50, "gradient:red-black");

/* Создаём объект imagickdraw */
$draw = new ImagickDraw();

/* Запускаем новый шаблон с названием "gradient" */
$draw->pushPattern('gradient', 0, 0, 50, 50);

/* Смешиваем градиент с шаблоном */
$draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);

/* Закрываем шаблон */
$draw->popPattern();

/* Используем шаблон с названием "gradient" для заливки */
$draw->setFillPatternURL('#gradient');

/* Устанавливаем размер шрифта в 52 */
$draw->setFontSize(52);

/* Добавляем свой текст */
$draw->annotation(20, 50, "Hello World!");

/* Создаём новый объект холста и белое изображение */
$canvas = new Imagick();
$canvas->newImage(350, 70, "white");

/* Рисуем ImagickDraw на холсте */
$canvas->drawImage($draw);

/* устанавливаем чёрную рамку шириной 1px вокруг изображения */
$canvas->borderImage('black', 1, 1);

/* Устанавливаем формат PNG */
$canvas->setImageFormat('png');

/* Вывод изображения */
header("Content-Type: image/png");
echo $canvas;
?>

Результатом выполнения данного примера будет что-то подобное:

Пример вывода: Заливка текста градиентом

Работа с анимированными GIF-изображениями

Пример #5 Чтение GIF изображения и изменение размера всех фреймов

<?php

/* Создание нового объекта imagick и чтение в GIF */
$im = new Imagick("example.gif");

/* Изменение размера всех фреймов */
foreach ($im as $frame) {
    /* фреймы 50x50 */
    $frame->thumbnailImage(50, 50);

    /* Устанавливаем виртуальный холст для коррекции размера */
    $frame->setImagePage(50, 50, 0, 0);
}

/* Обратите внимание, writeImages вместо writeImage */
$im->writeImages("example_small.gif", true);
?>

Работа с примитивом "эллипс" и пользовательскими шрифтами

Пример #6 Create a PHP logo

<?php
/* Установка ширины и высоты в пропорции логотипа PHP */
$width = 400;
$height = 210;

/* Создание объекта Imagick с поддержкой прозрачности */
$img = new Imagick();
$img->newImage($width, $height, new ImagickPixel('transparent'));

/* Новый объект ImagickDraw  для отрисовки эллипса */
$draw = new ImagickDraw();
/* Установка пурпурного цвета заливки для эллипса */
$draw->setFillColor('#777bb4');
/* Задание размеров эллипса */
$draw->ellipse($width / 2, $height / 2, $width / 2, $height / 2, 0, 360);
/* Отрисовка эллипса */
$img->drawImage($draw);

/* Сброс цвета заливки с пурпурного на черный для текста (заметьте, что мы используем объект ImagickDraw повторно) */
$draw->setFillColor('black');
/* Задание обводки границы белым цветом */
$draw->setStrokeColor('white');
/* Задание толщины обводки */
$draw->setStrokeWidth(2);
/* Задание кернинга (отрицательные значения означают, что буквы будут ближе друг к другу) */
$draw->setTextKerning(-8);
/* Задание шрифта и его размера, которые используются в логотипе PHP */
$draw->setFont('Handel Gothic.ttf');
$draw->setFontSize(150);
/* Центрирование текста вертикально и горизонтально */
$draw->setGravity(Imagick::GRAVITY_CENTER);

/* Добавление текста "php" со смещением по Y на -10 на холст (внутри эллипса) */
$img->annotateImage($draw, 0, -10, 0, 'php');
$img->setImageFormat('png');

/* Установка соответвующего заголовка для PNG и вывод изображения */
header('Content-Type: image/png');
echo $img;
?>

Результатом выполнения данного примера будет что-то подобное:

Пример вывода : Создается логотип PHP с помощью Imagick


Класс Imagick

(PECL imagick 2.0.0)

Обзор классов

Imagick implements Iterator {
adaptiveBlurImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
adaptiveResizeImage ( int $columns , int $rows [, bool $bestfit = FALSE [, bool $legacy = FALSE ]] ) : bool
adaptiveSharpenImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
adaptiveThresholdImage ( int $width , int $height , int $offset ) : bool
addImage ( Imagick $source ) : bool
addNoiseImage ( int $noise_type [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
affineTransformImage ( ImagickDraw $matrix ) : bool
animateImages ( string $x_server ) : bool
annotateImage ( ImagickDraw $draw_settings , float $x , float $y , float $angle , string $text ) : bool
appendImages ( bool $stack ) : Imagick
public autoLevelImage ([ int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
averageImages ( void ) : Imagick
blackThresholdImage ( mixed $threshold ) : bool
public blueShiftImage ([ float $factor = 1.5 ] ) : bool
blurImage ( float $radius , float $sigma [, int $channel ] ) : bool
borderImage ( mixed $bordercolor , int $width , int $height ) : bool
public brightnessContrastImage ( float $brightness , float $contrast [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
charcoalImage ( float $radius , float $sigma ) : bool
chopImage ( int $width , int $height , int $x , int $y ) : bool
public clampImage ([ int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
clear ( void ) : bool
clipImage ( void ) : bool
public clipImagePath ( string $pathname , string $inside ) : void
clipPathImage ( string $pathname , bool $inside ) : bool
clone ( void ) : Imagick
clutImage ( Imagick $lookup_table [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
coalesceImages ( void ) : Imagick
colorFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y ) : bool
colorizeImage ( mixed $colorize , mixed $opacity [, bool $legacy = FALSE ] ) : bool
public colorMatrixImage ( array $color_matrix = Imagick::CHANNEL_DEFAULT ) : bool
combineImages ( int $channelType ) : Imagick
commentImage ( string $comment ) : bool
compareImageChannels ( Imagick $image , int $channelType , int $metricType ) : array
compareImageLayers ( int $method ) : Imagick
compareImages ( Imagick $compare , int $metric ) : array
compositeImage ( Imagick $composite_object , int $composite , int $x , int $y [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
__construct ([ mixed $files ] )
contrastImage ( bool $sharpen ) : bool
contrastStretchImage ( float $black_point , float $white_point [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
convolveImage ( array $kernel [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
public count ([ int $mode = 0 ] ) : int
cropImage ( int $width , int $height , int $x , int $y ) : bool
cropThumbnailImage ( int $width , int $height [, bool $legacy = FALSE ] ) : bool
current ( void ) : Imagick
cycleColormapImage ( int $displace ) : bool
decipherImage ( string $passphrase ) : bool
deconstructImages ( void ) : Imagick
deleteImageArtifact ( string $artifact ) : bool
public deleteImageProperty ( string $name ) : bool
public deskewImage ( float $threshold ) : bool
despeckleImage ( void ) : bool
destroy ( void ) : bool
displayImage ( string $servername ) : bool
displayImages ( string $servername ) : bool
distortImage ( int $method , array $arguments , bool $bestfit ) : bool
drawImage ( ImagickDraw $draw ) : bool
edgeImage ( float $radius ) : bool
embossImage ( float $radius , float $sigma ) : bool
encipherImage ( string $passphrase ) : bool
enhanceImage ( void ) : bool
equalizeImage ( void ) : bool
evaluateImage ( int $op , float $constant [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
public exportImagePixels ( int $x , int $y , int $width , int $height , string $map , int $STORAGE ) : array
extentImage ( int $width , int $height , int $x , int $y ) : bool
public filter ( ImagickKernel $ImagickKernel [, int $channel = Imagick::CHANNEL_UNDEFINED ] ) : bool
flattenImages ( void ) : Imagick
flipImage ( void ) : bool
floodFillPaintImage ( mixed $fill , float $fuzz , mixed $target , int $x , int $y , bool $invert [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
flopImage ( void ) : bool
public forwardFourierTransformimage ( bool $magnitude ) : bool
frameImage ( mixed $matte_color , int $width , int $height , int $inner_bevel , int $outer_bevel ) : bool
public functionImage ( int $function , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
fxImage ( string $expression [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : Imagick
gammaImage ( float $gamma [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
gaussianBlurImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
getColorspace ( void ) : int
getCompression ( void ) : int
getCompressionQuality ( void ) : int
getCopyright ( void ) : string
getFilename ( void ) : string
getFont ( void ) : string
getFormat ( void ) : string
getGravity ( void ) : int
getHomeURL ( void ) : string
getImage ( void ) : Imagick
getImageAlphaChannel ( void ) : int
getImageArtifact ( string $artifact ) : string
public getImageAttribute ( string $key ) : string
getImageBackgroundColor ( void ) : ImagickPixel
getImageBlob ( void ) : string
getImageBluePrimary ( void ) : array
getImageBorderColor ( void ) : ImagickPixel
getImageChannelDepth ( int $channel ) : int
getImageChannelDistortion ( Imagick $reference , int $channel , int $metric ) : float
getImageChannelDistortions ( Imagick $reference , int $metric [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : float
getImageChannelExtrema ( int $channel ) : array
public getImageChannelKurtosis ([ int $channel = Imagick::CHANNEL_DEFAULT ] ) : array
getImageChannelMean ( int $channel ) : array
getImageChannelRange ( int $channel ) : array
getImageChannelStatistics ( void ) : array
getImageClipMask ( void ) : Imagick
getImageColormapColor ( int $index ) : ImagickPixel
getImageColors ( void ) : int
getImageColorspace ( void ) : int
getImageCompose ( void ) : int
getImageCompression ( void ) : int
getImageCompressionQuality ( void ) : int
getImageDelay ( void ) : int
getImageDepth ( void ) : int
getImageDispose ( void ) : int
getImageDistortion ( MagickWand $reference , int $metric ) : float
getImageExtrema ( void ) : array
getImageFilename ( void ) : string
getImageFormat ( void ) : string
getImageGamma ( void ) : float
getImageGeometry ( void ) : array
getImageGravity ( void ) : int
getImageGreenPrimary ( void ) : array
getImageHeight ( void ) : int
getImageHistogram ( void ) : array
getImageIndex ( void ) : int
getImageInterlaceScheme ( void ) : int
getImageInterpolateMethod ( void ) : int
getImageIterations ( void ) : int
getImageLength ( void ) : int
getImageMagickLicense ( void ) : string
getImageMatte ( void ) : bool
getImageMatteColor ( void ) : ImagickPixel
public getImageMimeType ( void ) : string
getImageOrientation ( void ) : int
getImagePage ( void ) : array
getImagePixelColor ( int $x , int $y ) : ImagickPixel
getImageProfile ( string $name ) : string
getImageProfiles ([ string $pattern = "*" [, bool $include_values = TRUE ]] ) : array
getImageProperties ([ string $pattern = "*" [, bool $include_values = TRUE ]] ) : array
getImageProperty ( string $name ) : string
getImageRedPrimary ( void ) : array
getImageRegion ( int $width , int $height , int $x , int $y ) : Imagick
getImageRenderingIntent ( void ) : int
getImageResolution ( void ) : array
getImagesBlob ( void ) : string
getImageScene ( void ) : int
getImageSignature ( void ) : string
getImageSize ( void ) : int
getImageTicksPerSecond ( void ) : int
getImageTotalInkDensity ( void ) : float
getImageType ( void ) : int
getImageUnits ( void ) : int
getImageVirtualPixelMethod ( void ) : int
getImageWhitePoint ( void ) : array
getImageWidth ( void ) : int
getInterlaceScheme ( void ) : int
getIteratorIndex ( void ) : int
getNumberImages ( void ) : int
getOption ( string $key ) : string
getPackageName ( void ) : string
getPage ( void ) : array
getPixelIterator ( void ) : ImagickPixelIterator
getPixelRegionIterator ( int $x , int $y , int $columns , int $rows ) : ImagickPixelIterator
getPointSize ( void ) : float
public static getQuantum ( void ) : int
getQuantumDepth ( void ) : array
getQuantumRange ( void ) : array
public static getRegistry ( string $key ) : string
getReleaseDate ( void ) : string
getResource ( int $type ) : int
getResourceLimit ( int $type ) : int
getSamplingFactors ( void ) : array
getSize ( void ) : array
getSizeOffset ( void ) : int
getVersion ( void ) : array
public haldClutImage ( Imagick $clut [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
hasNextImage ( void ) : bool
hasPreviousImage ( void ) : bool
public identifyFormat ( string $embedText ) : string
identifyImage ([ bool $appendRawOutput = FALSE ] ) : array
implodeImage ( float $radius ) : bool
public importImagePixels ( int $x , int $y , int $width , int $height , string $map , int $storage , array $pixels ) : bool
public inverseFourierTransformImage ( Imagick $complement , bool $magnitude ) : bool
labelImage ( string $label ) : bool
levelImage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
linearStretchImage ( float $blackPoint , float $whitePoint ) : bool
liquidRescaleImage ( int $width , int $height , float $delta_x , float $rigidity ) : bool
public static listRegistry ( void ) : array
magnifyImage ( void ) : bool
mapImage ( Imagick $map , bool $dither ) : bool
matteFloodfillImage ( float $alpha , float $fuzz , mixed $bordercolor , int $x , int $y ) : bool
medianFilterImage ( float $radius ) : bool
mergeImageLayers ( int $layer_method ) : Imagick
minifyImage ( void ) : bool
modulateImage ( float $brightness , float $saturation , float $hue ) : bool
montageImage ( ImagickDraw $draw , string $tile_geometry , string $thumbnail_geometry , int $mode , string $frame ) : Imagick
morphImages ( int $number_frames ) : Imagick
public morphology ( int $morphologyMethod , int $iterations , ImagickKernel $ImagickKernel [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
mosaicImages ( void ) : Imagick
motionBlurImage ( float $radius , float $sigma , float $angle [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
negateImage ( bool $gray [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
newImage ( int $cols , int $rows , mixed $background [, string $format ] ) : bool
newPseudoImage ( int $columns , int $rows , string $pseudoString ) : bool
nextImage ( void ) : bool
normalizeImage ([ int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
oilPaintImage ( float $radius ) : bool
opaquePaintImage ( mixed $target , mixed $fill , float $fuzz , bool $invert [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
optimizeImageLayers ( void ) : bool
orderedPosterizeImage ( string $threshold_map [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
paintFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
paintOpaqueImage ( mixed $target , mixed $fill , float $fuzz [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
paintTransparentImage ( mixed $target , float $alpha , float $fuzz ) : bool
pingImage ( string $filename ) : bool
pingImageBlob ( string $image ) : bool
pingImageFile ( resource $filehandle [, string $fileName ] ) : bool
polaroidImage ( ImagickDraw $properties , float $angle ) : bool
posterizeImage ( int $levels , bool $dither ) : bool
previewImages ( int $preview ) : bool
previousImage ( void ) : bool
profileImage ( string $name , string $profile ) : bool
quantizeImage ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError ) : bool
quantizeImages ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError ) : bool
queryFontMetrics ( ImagickDraw $properties , string $text [, bool $multiline ] ) : array
queryFonts ([ string $pattern = "*" ] ) : array
queryFormats ([ string $pattern = "*" ] ) : array
radialBlurImage ( float $angle [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
raiseImage ( int $width , int $height , int $x , int $y , bool $raise ) : bool
randomThresholdImage ( float $low , float $high [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
readImage ( string $filename ) : bool
readImageBlob ( string $image [, string $filename ] ) : bool
readImageFile ( resource $filehandle [, string $fileName = NULL ] ) : bool
public readImages ( array $filenames ) : bool
recolorImage ( array $matrix ) : bool
reduceNoiseImage ( float $radius ) : bool
public remapImage ( Imagick $replacement , int $DITHER ) : bool
removeImage ( void ) : bool
removeImageProfile ( string $name ) : string
render ( void ) : bool
resampleImage ( float $x_resolution , float $y_resolution , int $filter , float $blur ) : bool
resetImagePage ( string $page ) : bool
resizeImage ( int $columns , int $rows , int $filter , float $blur [, bool $bestfit = FALSE [, bool $legacy = FALSE ]] ) : bool
rollImage ( int $x , int $y ) : bool
rotateImage ( mixed $background , float $degrees ) : bool
public rotationalBlurImage ( float $angle [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
roundCorners ( float $x_rounding , float $y_rounding [, float $stroke_width = 10 [, float $displace = 5 [, float $size_correction = -6 ]]] ) : bool
sampleImage ( int $columns , int $rows ) : bool
scaleImage ( int $cols , int $rows [, bool $bestfit = FALSE [, bool $legacy = FALSE ]] ) : bool
public segmentImage ( int $COLORSPACE , float $cluster_threshold , float $smooth_threshold [, bool $verbose = FALSE ] ) : bool
public selectiveBlurImage ( float $radius , float $sigma , float $threshold [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
separateImageChannel ( int $channel ) : bool
sepiaToneImage ( float $threshold ) : bool
setBackgroundColor ( mixed $background ) : bool
setColorspace ( int $COLORSPACE ) : bool
setCompression ( int $compression ) : bool
setCompressionQuality ( int $quality ) : bool
setFilename ( string $filename ) : bool
setFirstIterator ( void ) : bool
setFont ( string $font ) : bool
setFormat ( string $format ) : bool
setGravity ( int $gravity ) : bool
setImage ( Imagick $replace ) : bool
setImageAlphaChannel ( int $mode ) : bool
setImageArtifact ( string $artifact , string $value ) : bool
public setImageAttribute ( string $key , string $value ) : bool
setImageBackgroundColor ( mixed $background ) : bool
setImageBias ( float $bias ) : bool
public setImageBiasQuantum ( string $bias ) : void
setImageBluePrimary ( float $x , float $y ) : bool
setImageBorderColor ( mixed $border ) : bool
setImageChannelDepth ( int $channel , int $depth ) : bool
setImageClipMask ( Imagick $clip_mask ) : bool
setImageColormapColor ( int $index , ImagickPixel $color ) : bool
setImageColorspace ( int $colorspace ) : bool
setImageCompose ( int $compose ) : bool
setImageCompression ( int $compression ) : bool
setImageCompressionQuality ( int $quality ) : bool
setImageDelay ( int $delay ) : bool
setImageDepth ( int $depth ) : bool
setImageDispose ( int $dispose ) : bool
setImageExtent ( int $columns , int $rows ) : bool
setImageFilename ( string $filename ) : bool
setImageFormat ( string $format ) : bool
setImageGamma ( float $gamma ) : bool
setImageGravity ( int $gravity ) : bool
setImageGreenPrimary ( float $x , float $y ) : bool
setImageIndex ( int $index ) : bool
setImageInterlaceScheme ( int $interlace_scheme ) : bool
setImageInterpolateMethod ( int $method ) : bool
setImageIterations ( int $iterations ) : bool
setImageMatte ( bool $matte ) : bool
setImageMatteColor ( mixed $matte ) : bool
setImageOpacity ( float $opacity ) : bool
setImageOrientation ( int $orientation ) : bool
setImagePage ( int $width , int $height , int $x , int $y ) : bool
setImageProfile ( string $name , string $profile ) : bool
setImageProperty ( string $name , string $value ) : bool
setImageRedPrimary ( float $x , float $y ) : bool
setImageRenderingIntent ( int $rendering_intent ) : bool
setImageResolution ( float $x_resolution , float $y_resolution ) : bool
setImageScene ( int $scene ) : bool
setImageTicksPerSecond ( int $ticks_per_second ) : bool
setImageType ( int $image_type ) : bool
setImageUnits ( int $units ) : bool
setImageVirtualPixelMethod ( int $method ) : bool
setImageWhitePoint ( float $x , float $y ) : bool
setInterlaceScheme ( int $interlace_scheme ) : bool
setIteratorIndex ( int $index ) : bool
setLastIterator ( void ) : bool
setOption ( string $key , string $value ) : bool
setPage ( int $width , int $height , int $x , int $y ) : bool
setPointSize ( float $point_size ) : bool
public setProgressMonitor ( callable $callback ) : bool
public static setRegistry ( string $key , string $value ) : bool
setResolution ( float $x_resolution , float $y_resolution ) : bool
setResourceLimit ( int $type , int $limit ) : bool
setSamplingFactors ( array $factors ) : bool
setSize ( int $columns , int $rows ) : bool
setSizeOffset ( int $columns , int $rows , int $offset ) : bool
setType ( int $image_type ) : bool
shadeImage ( bool $gray , float $azimuth , float $elevation ) : bool
shadowImage ( float $opacity , float $sigma , int $x , int $y ) : bool
sharpenImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
shaveImage ( int $columns , int $rows ) : bool
shearImage ( mixed $background , float $x_shear , float $y_shear ) : bool
sigmoidalContrastImage ( bool $sharpen , float $alpha , float $beta [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
sketchImage ( float $radius , float $sigma , float $angle ) : bool
public smushImages ( bool $stack , int $offset ) : Imagick
solarizeImage ( int $threshold ) : bool
public sparseColorImage ( int $SPARSE_METHOD , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
spliceImage ( int $width , int $height , int $x , int $y ) : bool
spreadImage ( float $radius ) : bool
public statisticImage ( int $type , int $width , int $height [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
steganoImage ( Imagick $watermark_wand , int $offset ) : Imagick
stereoImage ( Imagick $offset_wand ) : bool
stripImage ( void ) : bool
public subImageMatch ( Imagick $Imagick [, array &$offset [, float &$similarity ]] ) : Imagick
swirlImage ( float $degrees ) : bool
textureImage ( Imagick $texture_wand ) : Imagick
thresholdImage ( float $threshold [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
thumbnailImage ( int $columns , int $rows [, bool $bestfit = FALSE [, bool $fill = FALSE [, bool $legacy = FALSE ]]] ) : bool
tintImage ( mixed $tint , mixed $opacity [, bool $legacy = FALSE ] ) : bool
__toString ( void ) : string
transformImage ( string $crop , string $geometry ) : Imagick
transformImageColorspace ( int $colorspace ) : bool
transparentPaintImage ( mixed $target , float $alpha , float $fuzz , bool $invert ) : bool
transposeImage ( void ) : bool
transverseImage ( void ) : bool
trimImage ( float $fuzz ) : bool
uniqueImageColors ( void ) : bool
unsharpMaskImage ( float $radius , float $sigma , float $amount , float $threshold [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool
valid ( void ) : bool
vignetteImage ( float $blackPoint , float $whitePoint , int $x , int $y ) : bool
waveImage ( float $amplitude , float $length ) : bool
whiteThresholdImage ( mixed $threshold ) : bool
writeImage ([ string $filename = NULL ] ) : bool
writeImageFile ( resource $filehandle [, string $format ] ) : bool
writeImages ( string $filename , bool $adjoin ) : bool
writeImagesFile ( resource $filehandle [, string $format ] ) : bool
}

Методы изображения и глобальные методы

Класс Imagick имеет возможность удерживать и обрабатывать несколько изображений одновременно. Это достигается за счет внутреннего стека, в котором существует указатель, указывающий на текущее изображение. Некоторые функции работают со всеми изображениями в классе Imagick, но всё-таки, большинство работает только с текущим изображением во внутреннем стеке. По соглашению, имена методов могут содержать слово Image для обозначения того, что они влияют только на текущее изображение в стеке.

Методы класса

Здесь приведён список наиболее используемых методов, объединённых в группы по назначению:

Методы класса по назначению
Эффекты изображения | Методы получения | Методы установки | Чтение/запись изображений | Другие
Imagick::adaptiveBlurImage() | Imagick::getCompression() | Imagick::setBackgroundColor() | Imagick::__construct() | Imagick::clear()
Imagick::adaptiveResizeImage() | Imagick::getFilename() | Imagick::setCompressionQuality() | Imagick::addImage() | Imagick::clone()
Imagick::adaptiveSharpenImage() | Imagick::getFormat() | Imagick::setCompression() | Imagick::appendImages() | Imagick::current()
Imagick::adaptiveThresholdImage() | Imagick::getImageBackgroundColor() | Imagick::setFilename() | Imagick::getFilename() | Imagick::destroy()
Imagick::addNoiseImage() | Imagick::getImageBlob() | Imagick::getImagesBlob() | Imagick::setFormat() | Imagick::getFormat()
Imagick::affinetransformimage() | Imagick::getImageBluePrimary() | Imagick::setImageBackgroundColor() | Imagick::getImageFilename() | Imagick::getHomeURL()
Imagick::annotateImage() | Imagick::getImageBorderColor() | Imagick::setFirstIterator() | Imagick::getImageFormat() | Imagick::commentImage()
Imagick::averageImages() | Imagick::getImageChannelDepth() | Imagick::setImageBias() | Imagick::getImage() | Imagick::getNumberImages()
Imagick::blackThresholdImage() | Imagick::getImageChannelDistortion() | Imagick::setImageBluePrimary() | Imagick::setImageFilename() | Imagick::getReleaseDate()
Imagick::blurImage() | Imagick::getImageChannelExtrema() | Imagick::setImageBorderColor() | Imagick::setImageFormat() | Imagick::getVersion()
Imagick::borderImage() | Imagick::getImageChannelMean() | Imagick::setImageChannelDepth() | Imagick::readImageFile() | Imagick::hasNextImage()
Imagick::charcoalImage() | Imagick::getImageChannelStatistics() | Imagick::setImageColormapColor() | Imagick::readImage() | Imagick::hasPreviousImage()
Imagick::chopImage() | Imagick::getImageColormapColor() | Imagick::setImageColorSpace() | Imagick::writeImages() | Imagick::labelImage()
Imagick::clipImage() | Imagick::getImageColorspace() | Imagick::setImageCompose() | Imagick::writeImage() | Imagick::newImage()
Imagick::clipPathImage() | Imagick::getImageColors() | Imagick::setImageCompression() |  | Imagick::newPseudoImage()
Imagick::coalesceImages() | Imagick::getImageCompose() | Imagick::setImageDelay() |  | Imagick::nextImage()
Imagick::colorFloodFillImage() | Imagick::getImageDelay() | Imagick::setImageDepth() |  | Imagick::pingImageBlob()
Imagick::colorizeImage() | Imagick::getImageDepth() | Imagick::setImageDispose() |  | Imagick::pingImageFile()
Imagick::combineImages() | Imagick::getImageDispose() | Imagick::setImageDispose() |  | Imagick::pingImage()
Imagick::compareImageChannels() | Imagick::getImageDistortion() | Imagick::setImageExtent() |  | Imagick::previousImage()
Imagick::compareImageLayers() | Imagick::getImageExtrema() | Imagick::setImageFilename() |  | Imagick::profileImage()
Imagick::compositeImage() | Imagick::getImageFilename() | Imagick::setImageFormat() |  | Imagick::queryFormats()
Imagick::contrastImage() | Imagick::getImageFormat() | Imagick::setImageGamma() |  | Imagick::removeImageProfile()
Imagick::contrastStretchImage() | Imagick::getImageGamma() | Imagick::setImageGreenPrimary() |  | Imagick::removeImage()
Imagick::convolveImage() | Imagick::getImageGeometry() | Imagick::setImageIndex() |  | Imagick::setFirstIterator()
Imagick::cropImage() | Imagick::getImageGreenPrimary() | Imagick::setImageInterpolateMethod() |  | Imagick::setImageIndex()
Imagick::cycleColormapImage() | Imagick::getImageHeight() | Imagick::setImageIterations() |  | Imagick::valid()
Imagick::deconstructImages() | Imagick::getImageHistogram() | Imagick::setImageMatteColor() |  | Imagick::getCopyright()
Imagick::drawImage() | Imagick::getImageIndex() | Imagick::setImageMatte() |  |
Imagick::edgeImage() | Imagick::getImageInterlaceScheme() | Imagick::setImagePage() |  |
Imagick::embossImage() | Imagick::getImageInterpolateMethod() | Imagick::setImageProfile() |  |
Imagick::enhanceImage() | Imagick::getImageIterations() | Imagick::setImageProperty() |  |
Imagick::equalizeImage() | Imagick::getImageMatteColor() | Imagick::setImageRedPrimary() |  |
Imagick::evaluateImage() | Imagick::getImageMatte() | Imagick::setImageRenderingIntent() |  |
Imagick::flattenImages() | Imagick::getImagePage() | Imagick::setImageResolution() |  |
Imagick::flipImage() | Imagick::getImagePixelColor() | Imagick::setImageScene() |  |
Imagick::flopImage() | Imagick::getImageProfile() | Imagick::setImageTicksPerSecond() |  |
 | Imagick::getImageProperty() | Imagick::setImageType() |  |
Imagick::fxImage() | Imagick::getImageRedPrimary() | Imagick::setImageUnits() |  |
Imagick::gammaImage() | Imagick::getImageRegion() | Imagick::setImageVirtualPixelMethod() |  |
Imagick::gaussianBlurImage() | Imagick::getImageRenderingIntent() | Imagick::setImageWhitepoint() |  |
Imagick::implodeImage() | Imagick::getImageResolution() | Imagick::setInterlaceScheme() |  |
Imagick::levelImage() | Imagick::getImageScene() | Imagick::setOption() |  |
Imagick::linearStretchImage() | Imagick::getImageSignature() | Imagick::setPage() |  |
Imagick::magnifyImage() | Imagick::getImageTicksPerSecond() | Imagick::setResolution() |  |
Imagick::matteFloodFillImage() | Imagick::getImageTotalInkDensity() | Imagick::setResourceLimit() |  |
Imagick::medianFilterImage() | Imagick::getImageType() | Imagick::setSamplingFactors() |  |
Imagick::minifyImage() | Imagick::getImageUnits() | Imagick::setSizeOffset() |  |
Imagick::modulateImage() | Imagick::getImageVirtualPixelMethod() | Imagick::setSize() |  |
Imagick::montageImage() | Imagick::getImageWhitepoint() | Imagick::setType() |  |
Imagick::morphImages() | Imagick::getImageWidth() |  |  |
Imagick::mosaicImages() | Imagick::getImage() |  |  |
Imagick::motionBlurImage() | Imagick::getInterlaceScheme() |  |  |
Imagick::negateImage() | Imagick::getNumberImages() |  |  |
Imagick::normalizeImage() | Imagick::getOption() |  |  |
Imagick::oilPaintImage() | Imagick::getPackageName() |  |  |
Imagick::optimizeImageLayers() | Imagick::getPage() |  |  |
Imagick::paintOpaqueImage() | Imagick::getPixelIterator() |  |  |
Imagick::paintTransparentImage() | Imagick::getPixelRegionIterator() |  |  |
Imagick::posterizeImage() | Imagick::getQuantumDepth() |  |  |
Imagick::radialBlurImage() | Imagick::getQuantumRange() |  |  |
Imagick::raiseImage() | Imagick::getResourceLimit() |  |  |
Imagick::randomThresholdImage() | Imagick::getResource() |  |  |
Imagick::reduceNoiseImage() | Imagick::getSamplingFactors() |  |  |
Imagick::render() | Imagick::getSizeOffset() |  |  |
Imagick::resampleImage() | Imagick::getSize() |  |  |
Imagick::resizeImage() | Imagick::identifyImage() |  |  |
Imagick::rollImage() | Imagick::getImageSize() |  |  |
Imagick::rotateImage() |  |  |  |
Imagick::sampleImage() |  |  |  |
Imagick::scaleImage() |  |  |  |
Imagick::separateImageChannel() |  |  |  |
Imagick::sepiaToneImage() |  |  |  |
Imagick::shadeImage() |  |  |  |
Imagick::shadowImage() |  |  |  |
Imagick::sharpenImage() |  |  |  |
Imagick::shaveImage() |  |  |  |
Imagick::shearImage() |  |  |  |
Imagick::sigmoidalContrastImage() |  |  |  |
Imagick::sketchImage() |  |  |  |
Imagick::solarizeImage() |  |  |  |
Imagick::spliceImage() |  |  |  |
Imagick::spreadImage() |  |  |  |
Imagick::steganoImage() |  |  |  |
Imagick::stereoImage() |  |  |  |
Imagick::stripImage() |  |  |  |
Imagick::swirlImage() |  |  |  |
Imagick::textureImage() |  |  |  |
Imagick::thresholdImage() |  |  |  |
Imagick::thumbnailImage() |  |  |  |
Imagick::tintImage() |  |  |  |
Imagick::transverseImage() |  |  |  |
Imagick::trimImage() |  |  |  |
Imagick::uniqueImageColors() |  |  |  |
Imagick::unsharpMaskImage() |  |  |  |
Imagick::vignetteImage() |  |  |  |
Imagick::waveImage() |  |  |  |
Imagick::whiteThresholdImage() |  |  |  |

Содержание

  • Imagick::adaptiveBlurImage — Добавляет адаптивный фильтр размытия к изображению
  • Imagick::adaptiveResizeImage — Адаптивное изменение размера изображения с данными триангуляции
  • Imagick::adaptiveSharpenImage — Адаптивное изменение резкости изображения
  • Imagick::adaptiveThresholdImage — Выбор порога для каждого пикселя в зависимости от диапазона интенсивности
  • Imagick::addImage — Добавляет новое изображение к списку изображений объекта Imagick
  • Imagick::addNoiseImage — Накладывает случайный шум на изображение
  • Imagick::affineTransformImage — Преобразование изображения
  • Imagick::animateImages — Анимация одного или нескольких изображений
  • Imagick::annotateImage — Добавляет текстовый комментарий на изображение
  • Imagick::appendImages — Объединяет набор изображений
  • Imagick::autoLevelImage — Description
  • Imagick::averageImages — Усредняет набор изображений
  • Imagick::blackThresholdImage — Перевести все пиксели ниже порогового значения в черный цвет
  • Imagick::blueShiftImage — Description
  • Imagick::blurImage — Добавляет фильтр размытия к изображению
  • Imagick::borderImage — Окружает изображение рамкой
  • Imagick::brightnessContrastImage — Description
  • Imagick::charcoalImage — Рисование углем
  • Imagick::chopImage — Удаляет область изображения и обрезает его
  • Imagick::clampImage — Description
  • Imagick::clear — Очищает все ресурсы, связанные с объектом Imagick
  • Imagick::clipImage — Обрезка вдоль ближайшего контура с профилем 8BIM
  • Imagick::clipImagePath — Description
  • Imagick::clipPathImage — Отсечь вдоль обозначенного контура с профилем 8BIM
  • Imagick::clone — Создает точную копию объекта Imagick
  • Imagick::clutImage — Заменяет цвета в изображении
  • Imagick::coalesceImages — Composites a set of images
  • Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target
  • Imagick::colorizeImage — Смешивание цвета заливки с изображением
  • Imagick::colorMatrixImage — Description
  • Imagick::combineImages — Combines one or more images into a single image
  • Imagick::commentImage — Adds a comment to your image
  • Imagick::compareImageChannels — Returns the difference in one or more images
  • Imagick::compareImageLayers — Returns the maximum bounding region between images
  • Imagick::compareImages — Compares an image to a reconstructed image
  • Imagick::compositeImage — Composite one image onto another
  • Imagick::__construct — Конструктор объекта Imagick
  • Imagick::contrastImage — Change the contrast of the image
  • Imagick::contrastStretchImage — Enhances the contrast of a color image
  • Imagick::convolveImage — Applies a custom convolution kernel to the image
  • Imagick::count — Get the number of images
  • Imagick::cropImage — Извлекает область изображения
  • Imagick::cropThumbnailImage — Creates a crop thumbnail
  • Imagick::current — Возвращает ссылку на текущий объект Imagick
  • Imagick::cycleColormapImage — Displaces an image's colormap
  • Imagick::decipherImage — Deciphers an image
  • Imagick::deconstructImages — Returns certain pixel differences between images
  • Imagick::deleteImageArtifact — Delete image artifact
  • Imagick::deleteImageProperty — Description
  • Imagick::deskewImage — Removes skew from the image
  • Imagick::despeckleImage — Reduces the speckle noise in an image
  • Imagick::destroy — Удаляет объект Imagick
  • Imagick::displayImage — Выводит изображение
  • Imagick::displayImages — Выводит изображение или последовательность изображений
  • Imagick::distortImage — Distorts an image using various distortion methods
  • Imagick::drawImage — Выполняет рендеринг объекта ImagickDraw на текущем изображении
  • Imagick::edgeImage — Enhance edges within the image
  • Imagick::embossImage — Returns a grayscale image with a three-dimensional effect
  • Imagick::encipherImage — Enciphers an image
  • Imagick::enhanceImage — Improves the quality of a noisy image
  • Imagick::equalizeImage — Equalizes the image histogram
  • Imagick::evaluateImage — Applies an expression to an image
  • Imagick::exportImagePixels — Exports raw image pixels
  • Imagick::extentImage — Set image size
  • Imagick::filter — Description
  • Imagick::flattenImages — Merges a sequence of images
  • Imagick::flipImage — Создает вертикальное зеркало изображения
  • Imagick::floodFillPaintImage — Changes the color value of any pixel that matches target
  • Imagick::flopImage — Создает вертикальное зеркало изображения
  • Imagick::forwardFourierTransformImage — Description
  • Imagick::frameImage — Adds a simulated three-dimensional border
  • Imagick::functionImage — Applies a function on the image
  • Imagick::fxImage — Evaluate expression for each pixel in the image
  • Imagick::gammaImage — Gamma-corrects an image
  • Imagick::gaussianBlurImage — Blurs an image
  • Imagick::getColorspace — Возвращает цветовую палитру
  • Imagick::getCompression — Возвращает тип сжатия объекта
  • Imagick::getCompressionQuality — Возвращает качество сжатия объекта
  • Imagick::getCopyright — Возвращает копирайт API ImageMagick в виде строки
  • Imagick::getFilename — Имя файла результирующего изображения
  • Imagick::getFont — Возвращает название шрифта
  • Imagick::getFormat — Возвращает формат Imagick объекта
  • Imagick::getGravity — Возвращает значение гравитации (притяжения)
  • Imagick::getHomeURL — Возвращает домашний URL библиотеки ImageMagick
  • Imagick::getImage — Возвращает новый объект Imagick
  • Imagick::getImageAlphaChannel — Возвращает альфа-канал изображения
  • Imagick::getImageArtifact — Get image artifact
  • Imagick::getImageAttribute — Description
  • Imagick::getImageBackgroundColor — Возвращает цвет фона изображения
  • Imagick::getImageBlob — Returns the image sequence as a blob
  • Imagick::getImageBluePrimary — Returns the chromaticy blue primary point
  • Imagick::getImageBorderColor — Возвращает цвет рамки изображения
  • Imagick::getImageChannelDepth — Gets the depth for a particular image channel
  • Imagick::getImageChannelDistortion — Compares image channels of an image to a reconstructed image
  • Imagick::getImageChannelDistortions — Gets channel distortions
  • Imagick::getImageChannelExtrema — Gets the extrema for one or more image channels
  • Imagick::getImageChannelKurtosis — The getImageChannelKurtosis purpose
  • Imagick::getImageChannelMean — Gets the mean and standard deviation
  • Imagick::getImageChannelRange — Gets channel range
  • Imagick::getImageChannelStatistics — Returns statistics for each channel in the image
  • Imagick::getImageClipMask — Gets image clip mask
  • Imagick::getImageColormapColor — Returns the color of the specified colormap index
  • Imagick::getImageColors — Возвращает число уникальных цветов в изображении
  • Imagick::getImageColorspace — Возвращает цветовую палитру изображения
  • Imagick::getImageCompose — Возвращает составной оператор, связанный с изображением
  • Imagick::getImageCompression — Возвращает текущий тип компрессии изображения
  • Imagick::getImageCompressionQuality — Возвращает текущее качество сжатия изображения
  • Imagick::getImageDelay — Gets the image delay
  • Imagick::getImageDepth — Gets the image depth
  • Imagick::getImageDispose — Gets the image disposal method
  • Imagick::getImageDistortion — Compares an image to a reconstructed image
  • Imagick::getImageExtrema — Gets the extrema for the image
  • Imagick::getImageFilename — Возвращает имя файла конкретного изображения в последовательности
  • Imagick::getImageFormat — Возвращает формат конкретного изображения в последовательности
  • Imagick::getImageGamma — Возвращает гамму изображения
  • Imagick::getImageGeometry — Возвращает ширину и высоту в виде ассоциативного массива
  • Imagick::getImageGravity — Возвращает значение гравитации (притяжения)
  • Imagick::getImageGreenPrimary — Returns the chromaticy green primary point
  • Imagick::getImageHeight — Возвращает высоту изображения
  • Imagick::getImageHistogram — Gets the image histogram
  • Imagick::getImageIndex — Gets the index of the current active image
  • Imagick::getImageInterlaceScheme — Gets the image interlace scheme
  • Imagick::getImageInterpolateMethod — Returns the interpolation method
  • Imagick::getImageIterations — Gets the image iterations
  • Imagick::getImageLength — Returns the image length in bytes
  • Imagick::getImageMagickLicense — Returns a string containing the ImageMagick license
  • Imagick::getImageMatte — Return if the image has a matte channel
  • Imagick::getImageMatteColor — Returns the image matte color
  • Imagick::getImageMimeType — Description
  • Imagick::getImageOrientation — Gets the image orientation
  • Imagick::getImagePage — Returns the page geometry
  • Imagick::getImagePixelColor — Returns the color of the specified pixel
  • Imagick::getImageProfile — Returns the named image profile
  • Imagick::getImageProfiles — Returns the image profiles
  • Imagick::getImageProperties — Возвращает свойства изображения
  • Imagick::getImageProperty — Returns the named image property
  • Imagick::getImageRedPrimary — Returns the chromaticity red primary point
  • Imagick::getImageRegion — Extracts a region of the image
  • Imagick::getImageRenderingIntent — Gets the image rendering intent
  • Imagick::getImageResolution — Gets the image X and Y resolution
  • Imagick::getImagesBlob — Returns all image sequences as a blob
  • Imagick::getImageScene — Gets the image scene
  • Imagick::getImageSignature — Generates an SHA-256 message digest
  • Imagick::getImageSize — Возвращает размер изображения в байтах
  • Imagick::getImageTicksPerSecond — Gets the image ticks-per-second
  • Imagick::getImageTotalInkDensity — Gets the image total ink density
  • Imagick::getImageType — Возвращает возможный тип изображения
  • Imagick::getImageUnits — Gets the image units of resolution
  • Imagick::getImageVirtualPixelMethod — Returns the virtual pixel method
  • Imagick::getImageWhitePoint — Returns the chromaticity white point
  • Imagick::getImageWidth — Возвращает ширину изображения
  • Imagick::getInterlaceScheme — Gets the object interlace scheme
  • Imagick::getIteratorIndex — Gets the index of the current active image
  • Imagick::getNumberImages — Returns the number of images in the object
  • Imagick::getOption — Returns a value associated with the specified key
  • Imagick::getPackageName — Returns the ImageMagick package name
  • Imagick::getPage — Returns the page geometry
  • Imagick::getPixelIterator — Returns a MagickPixelIterator
  • Imagick::getPixelRegionIterator — Возвращает объект ImagickPixelIterator для секции изображения
  • Imagick::getPointSize — Возвращает размер точки
  • Imagick::getQuantum — Description
  • Imagick::getQuantumDepth — Возвращает величину глубины
  • Imagick::getQuantumRange — Возвращает величину размера спектра Imagick
  • Imagick::getRegistry — Description
  • Imagick::getReleaseDate — Возвращает дату релиза ImageMagick
  • Imagick::getResource — Возвращает размер используемой памяти указанного ресурса
  • Imagick::getResourceLimit — Возвращает заданный лимит ресурсов
  • Imagick::getSamplingFactors — Возвращает горизонтальный и вертикальный фактор выборки
  • Imagick::getSize — Возвращает размер, связанный с объектом Imagick
  • Imagick::getSizeOffset — Возвращает размер смещения
  • Imagick::getVersion — Возвращает версию API ImageMagick
  • Imagick::haldClutImage — Replaces colors in the image
  • Imagick::hasNextImage — Checks if the object has more images
  • Imagick::hasPreviousImage — Checks if the object has a previous image
  • Imagick::identifyFormat — Description
  • Imagick::identifyImage — Определяет изображение и получает атрибуты
  • Imagick::implodeImage — Creates a new image as a copy
  • Imagick::importImagePixels — Imports image pixels
  • Imagick::inverseFourierTransformImage — Description
  • Imagick::labelImage — Adds a label to an image
  • Imagick::levelImage — Adjusts the levels of an image
  • Imagick::linearStretchImage — Stretches with saturation the image intensity
  • Imagick::liquidRescaleImage — Animates an image or images
  • Imagick::listRegistry — Description
  • Imagick::magnifyImage — Scales an image proportionally 2x
  • Imagick::mapImage — Replaces the colors of an image with the closest color from a reference image
  • Imagick::matteFloodfillImage — Changes the transparency value of a color
  • Imagick::medianFilterImage — Applies a digital filter
  • Imagick::mergeImageLayers — Merges image layers
  • Imagick::minifyImage — Scales an image proportionally to half its size
  • Imagick::modulateImage — Control the brightness, saturation, and hue
  • Imagick::montageImage — Creates a composite image
  • Imagick::morphImages — Method morphs a set of images
  • Imagick::morphology — Description
  • Imagick::mosaicImages — Forms a mosaic from images
  • Imagick::motionBlurImage — Simulates motion blur
  • Imagick::negateImage — Negates the colors in the reference image
  • Imagick::newImage — Creates a new image
  • Imagick::newPseudoImage — Creates a new image
  • Imagick::nextImage — Moves to the next image
  • Imagick::normalizeImage — Enhances the contrast of a color image
  • Imagick::oilPaintImage — Simulates an oil painting
  • Imagick::opaquePaintImage — Changes the color value of any pixel that matches target
  • Imagick::optimizeImageLayers — Removes repeated portions of images to optimize
  • Imagick::orderedPosterizeImage — Performs an ordered dither
  • Imagick::paintFloodfillImage — Changes the color value of any pixel that matches target
  • Imagick::paintOpaqueImage — Change any pixel that matches color
  • Imagick::paintTransparentImage — Changes any pixel that matches color with the color defined by fill
  • Imagick::pingImage — Fetch basic attributes about the image
  • Imagick::pingImageBlob — Quickly fetch attributes
  • Imagick::pingImageFile — Get basic image attributes in a lightweight manner
  • Imagick::polaroidImage — Simulates a Polaroid picture
  • Imagick::posterizeImage — Reduces the image to a limited number of color level
  • Imagick::previewImages — Quickly pin-point appropriate parameters for image processing
  • Imagick::previousImage — Move to the previous image in the object
  • Imagick::profileImage — Adds or removes a profile from an image
  • Imagick::quantizeImage — Analyzes the colors within a reference image
  • Imagick::quantizeImages — Analyzes the colors within a sequence of images
  • Imagick::queryFontMetrics — Returns an array representing the font metrics
  • Imagick::queryFonts — Returns the configured fonts
  • Imagick::queryFormats — Returns formats supported by Imagick
  • Imagick::radialBlurImage — Radial blurs an image
  • Imagick::raiseImage — Creates a simulated 3d button-like effect
  • Imagick::randomThresholdImage — Creates a high-contrast, two-color image
  • Imagick::readImage — Reads image from filename
  • Imagick::readImageBlob — Reads image from a binary string
  • Imagick::readImageFile — Reads image from open filehandle
  • Imagick::readimages — Description
  • Imagick::recolorImage — Recolors image
  • Imagick::reduceNoiseImage — Smooths the contours of an image
  • Imagick::remapImage — Remaps image colors
  • Imagick::removeImage — Removes an image from the image list
  • Imagick::removeImageProfile — Removes the named image profile and returns it
  • Imagick::render — Renders all preceding drawing commands
  • Imagick::resampleImage — Resample image to desired resolution
  • Imagick::resetImagePage — Reset image page
  • Imagick::resizeImage — Scales an image
  • Imagick::rollImage — Offsets an image
  • Imagick::rotateImage — Rotates an image
  • Imagick::rotationalBlurImage — Description
  • Imagick::roundCorners — Rounds image corners
  • Imagick::sampleImage — Scales an image with pixel sampling
  • Imagick::scaleImage — Scales the size of an image
  • Imagick::segmentImage — Segments an image
  • Imagick::selectiveBlurImage — Description
  • Imagick::separateImageChannel — Separates a channel from the image
  • Imagick::sepiaToneImage — Sepia tones an image
  • Imagick::setBackgroundColor — Sets the object's default background color
  • Imagick::setColorspace — Set colorspace
  • Imagick::setCompression — Sets the object's default compression type
  • Imagick::setCompressionQuality — Sets the object's default compression quality
  • Imagick::setFilename — Sets the filename before you read or write the image
  • Imagick::setFirstIterator — Sets the Imagick iterator to the first image
  • Imagick::setFont — Sets font
  • Imagick::setFormat — Sets the format of the Imagick object
  • Imagick::setGravity — Sets the gravity
  • Imagick::setImage — Replaces image in the object
  • Imagick::setImageAlphaChannel — Sets image alpha channel
  • Imagick::setImageArtifact — Set image artifact
  • Imagick::setImageAttribute — Description
  • Imagick::setImageBackgroundColor — Sets the image background color
  • Imagick::setImageBias — Sets the image bias for any method that convolves an image
  • Imagick::setImageBiasQuantum — Description
  • Imagick::setImageBluePrimary — Sets the image chromaticity blue primary point
  • Imagick::setImageBorderColor — Sets the image border color
  • Imagick::setImageChannelDepth — Sets the depth of a particular image channel
  • Imagick::setImageClipMask — Sets image clip mask
  • Imagick::setImageColormapColor — Sets the color of the specified colormap index
  • Imagick::setImageColorspace — Sets the image colorspace
  • Imagick::setImageCompose — Sets the image composite operator
  • Imagick::setImageCompression — Sets the image compression
  • Imagick::setImageCompressionQuality — Sets the image compression quality
  • Imagick::setImageDelay — Sets the image delay
  • Imagick::setImageDepth — Sets the image depth
  • Imagick::setImageDispose — Sets the image disposal method
  • Imagick::setImageExtent — Sets the image size
  • Imagick::setImageFilename — Sets the filename of a particular image
  • Imagick::setImageFormat — Sets the format of a particular image
  • Imagick::setImageGamma — Sets the image gamma
  • Imagick::setImageGravity — Sets the image gravity
  • Imagick::setImageGreenPrimary — Sets the image chromaticity green primary point
  • Imagick::setImageIndex — Set the iterator position
  • Imagick::setImageInterlaceScheme — Sets the image compression
  • Imagick::setImageInterpolateMethod — Sets the image interpolate pixel method
  • Imagick::setImageIterations — Sets the image iterations
  • Imagick::setImageMatte — Sets the image matte channel
  • Imagick::setImageMatteColor — Sets the image matte color
  • Imagick::setImageOpacity — Sets the image opacity level
  • Imagick::setImageOrientation — Sets the image orientation
  • Imagick::setImagePage — Sets the page geometry of the image
  • Imagick::setImageProfile — Adds a named profile to the Imagick object
  • Imagick::setImageProperty — Sets an image property
  • Imagick::setImageRedPrimary — Sets the image chromaticity red primary point
  • Imagick::setImageRenderingIntent — Sets the image rendering intent
  • Imagick::setImageResolution — Sets the image resolution
  • Imagick::setImageScene — Sets the image scene
  • Imagick::setImageTicksPerSecond — Sets the image ticks-per-second
  • Imagick::setImageType — Sets the image type
  • Imagick::setImageUnits — Sets the image units of resolution
  • Imagick::setImageVirtualPixelMethod — Sets the image virtual pixel method
  • Imagick::setImageWhitePoint — Sets the image chromaticity white point
  • Imagick::setInterlaceScheme — Sets the image compression
  • Imagick::setIteratorIndex — Set the iterator position
  • Imagick::setLastIterator — Sets the Imagick iterator to the last image
  • Imagick::setOption — Set an option
  • Imagick::setPage — Sets the page geometry of the Imagick object
  • Imagick::setPointSize — Sets point size
  • Imagick::setProgressMonitor — Description
  • Imagick::setRegistry — Description
  • Imagick::setResolution — Sets the image resolution
  • Imagick::setResourceLimit — Sets the limit for a particular resource
  • Imagick::setSamplingFactors — Sets the image sampling factors
  • Imagick::setSize — Sets the size of the Imagick object
  • Imagick::setSizeOffset — Sets the size and offset of the Imagick object
  • Imagick::setType — Sets the image type attribute
  • Imagick::shadeImage — Creates a 3D effect
  • Imagick::shadowImage — Simulates an image shadow
  • Imagick::sharpenImage — Sharpens an image
  • Imagick::shaveImage — Shaves pixels from the image edges
  • Imagick::shearImage — Creating a parallelogram
  • Imagick::sigmoidalContrastImage — Adjusts the contrast of an image
  • Imagick::sketchImage — Simulates a pencil sketch
  • Imagick::smushImages — Description
  • Imagick::solarizeImage — Applies a solarizing effect to the image
  • Imagick::sparseColorImage — Interpolates colors
  • Imagick::spliceImage — Splices a solid color into the image
  • Imagick::spreadImage — Randomly displaces each pixel in a block
  • Imagick::statisticImage — Description
  • Imagick::steganoImage — Hides a digital watermark within the image
  • Imagick::stereoImage — Composites two images
  • Imagick::stripImage — Strips an image of all profiles and comments
  • Imagick::subImageMatch — Description
  • Imagick::swirlImage — Swirls the pixels about the center of the image
  • Imagick::textureImage — Repeatedly tiles the texture image
  • Imagick::thresholdImage — Изменяет отдельные пиксели на основе порогового значения
  • Imagick::thumbnailImage — Changes the size of an image
  • Imagick::tintImage — Applies a color vector to each pixel in the image
  • Imagick::__toString — Returns the image as a string
  • Imagick::transformImage — Convenience method for setting crop size and the image geometry
  • Imagick::transformImageColorspace — Transforms an image to a new colorspace
  • Imagick::transparentPaintImage — Paints pixels transparent
  • Imagick::transposeImage — Creates a vertical mirror image
  • Imagick::transverseImage — Creates a horizontal mirror image
  • Imagick::trimImage — Remove edges from the image
  • Imagick::uniqueImageColors — Discards all but one of any pixel color
  • Imagick::unsharpMaskImage — Sharpens an image
  • Imagick::valid — Checks if the current item is valid
  • Imagick::vignetteImage — Adds vignette filter to the image
  • Imagick::waveImage — Applies wave filter to the image
  • Imagick::whiteThresholdImage — Force all pixels above the threshold into white
  • Imagick::writeImage — Writes an image to the specified filename
  • Imagick::writeImageFile — Записывает изображение в файл
  • Imagick::writeImages — Writes an image or image sequence
  • Imagick::writeImagesFile — Writes frames to a filehandle


Добавляет адаптивный фильтр размытия к изображению

  • « Imagick
  • Imagick::adaptiveResizeImage »
  • PHP Manual
  • Imagick
  • Добавляет адаптивный фильтр размытия к изображению

Imagick::adaptiveBlurImage

(PECL imagick 2.0.0)

Imagick::adaptiveBlurImage — Добавляет адаптивный фильтр размытия к изображению

Описание

Imagick::adaptiveBlurImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Добавляет адаптивный фильтр размытия к изображению. Интенсивность адаптивного размытия значительно уменьшается к краям изображения, в то время как стандартное размытие равномерно распределяется по всему изображению. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

radius

Радиус Гаусса, в пикселях, не считая центрального пикселя. Если передан 0, то радиус будет выбран автоматически.

sigma

Стандартное отклонение Гаусса, в пикселях.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Пример использования Imagick::adaptiveBlurImage():

Адаптивное размытие изображения и отображение его в браузере.

<?php

header('Content-type: image/jpeg');

$image = new Imagick('test.jpg');

$image->adaptiveBlurImage(5,3);
echo $image;

?>

Результатом выполнения данного примера будет что-то подобное:

Пример вывода : Использование Imagick::adaptiveBlurImage()

Смотрите также

  • Imagick::blurImage() - Добавляет фильтр размытия к изображению
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image


Адаптивное изменение размера изображения с данными триангуляции

  • « Imagick::adaptiveBlurImage
  • Imagick::adaptiveSharpenImage »
  • PHP Manual
  • Imagick
  • Адаптивное изменение размера изображения с данными триангуляции

Imagick::adaptiveResizeImage

(PECL imagick 2.0.0)

Imagick::adaptiveResizeImage — Адаптивное изменение размера изображения с данными триангуляции

Описание

Imagick::adaptiveResizeImage ( int $columns , int $rows [, bool $bestfit = FALSE [, bool $legacy = FALSE ]] ) : bool

Адаптивное изменение размера изображения с данными триангуляции. Позволяет избежать размытия через резкое изменение цвета. Чаще всего используется для уменьшения изображений чуть меньше "размера для web"; получается плохо, когда полноразмерное изображение адаптивно изменяется в миниатюру. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Замечание: Поведение параметра bestfit было изменено в Imagick 3.0.0. До этой версии при изменении изображения размером 200x150 до 400x300 никаких операций не происходило. В Imagick 3.0.0 и далее изображение будет масштабировано до размеров 400x300, так как это наилучшим образом соответствует ("best fit") данным размерам. Если используется параметр bestfit, то ширина и высота также должны быть определены.

Список параметров

columns

Количество столбцов в масштабе изображения.

rows

Количество строк в масштабе изображения.

bestfit

Будет ли подгоняться изображение внутри ограничительной рамки.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Добавлен необязательный параметр подгонки.
2.1.0 | Метод теперь поддерживает пропорциональное масштабирование. Для этого нужно передать 0 одному из параметров.

Примеры

Пример #1 Пример использования Imagick::adaptiveResizeImage()

Изменение размеров изображения обычно используемых в web. Этот метод лучше всего работает при небольшом изменении размера.

<?php
header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');
$image->adaptiveResizeImage(1024,768);

echo $image;
?>

Смотрите также

  • Imagick::chopImage() - Удаляет область изображения и обрезает его
  • Imagick::cropImage() - Извлекает область изображения
  • Imagick::magnifyImage() - Scales an image proportionally 2x
  • Imagick::minifyImage() - Scales an image proportionally to half its size
  • Imagick::resizeImage() - Scales an image
  • Imagick::scaleImage() - Scales the size of an image
  • Imagick::shaveImage() - Shaves pixels from the image edges
  • Imagick::thumbnailImage() - Changes the size of an image
  • Imagick::trimImage() - Remove edges from the image


Адаптивное изменение резкости изображения

  • « Imagick::adaptiveResizeImage
  • Imagick::adaptiveThresholdImage »
  • PHP Manual
  • Imagick
  • Адаптивное изменение резкости изображения

Imagick::adaptiveSharpenImage

(PECL imagick 2.0.0)

Imagick::adaptiveSharpenImage — Адаптивное изменение резкости изображения

Описание

Imagick::adaptiveSharpenImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Адаптивное изменение резкости изображения с большей интенсивностью на краях изображения и с меньшей ближе к середине. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

radius

Радиус Гаусса, в пикселях, не считая центрального пикселя. Используйте 0 для авто-выбора.

sigma

Стандартное отклонение Гаусса, в пикселях.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Пример использования Imagick::adaptiveSharpenImage()

Адаптивное изменение резкости изображения с радиусом 2 и сигмой 1.

<?php
try {
    $image = new Imagick('image.png');
    $image->adaptiveSharpenImage(2,1);
} catch(ImagickException $e) {
    echo 'Ошибка: ' , $e->getMessage();
    die();
}
header('Content-type: image/png');
echo $image;
?>

Смотрите также

  • Imagick::sharpenImage() - Sharpens an image


Выбор порога для каждого пикселя в зависимости от диапазона интенсивности

  • « Imagick::adaptiveSharpenImage
  • Imagick::addImage »
  • PHP Manual
  • Imagick
  • Выбор порога для каждого пикселя в зависимости от диапазона интенсивности

Imagick::adaptiveThresholdImage

(PECL imagick 2.0.0)

Imagick::adaptiveThresholdImage — Выбор порога для каждого пикселя в зависимости от диапазона интенсивности

Описание

Imagick::adaptiveThresholdImage ( int $width , int $height , int $offset ) : bool

Выбор индивидуального ограничения для каждого пикселя в зависимости от диапазона значений интенсивности вокруг этого пикселя. Это дает возможность установить порог изображения, в котором гистограмма глобальной интенсивности не содержит отличительных пиков.

Список параметров

width

Область соседей по ширине.

height

Область соседей по высоте.

offset

Среднее смещение

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Пример использования Imagick::adaptiveThresholdImage()

<?php
function adaptiveThresholdImage($imagePath, $width, $height, $adaptiveOffset) {
    $imagick = new \Imagick(realpath($imagePath));
    $adaptiveOffsetQuantum = intval($adaptiveOffset * \Imagick::getQuantum());
    $imagick->adaptiveThresholdImage($width, $height, $adaptiveOffsetQuantum);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Добавляет новое изображение к списку изображений объекта Imagick

  • « Imagick::adaptiveThresholdImage
  • Imagick::addNoiseImage »
  • PHP Manual
  • Imagick
  • Добавляет новое изображение к списку изображений объекта Imagick

Imagick::addImage

(PECL imagick 2.0.0)

Imagick::addImage — Добавляет новое изображение к списку изображений объекта Imagick

Описание

Imagick::addImage ( Imagick $source ) : bool

Добавляет новое изображение к объекту Imagick из текущего положения исходного объекта. После этой операции перемещается позиция итератора в конец списка.

Список параметров

source

Исходный объект Imagick

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Накладывает случайный шум на изображение

  • « Imagick::addImage
  • Imagick::affineTransformImage »
  • PHP Manual
  • Imagick
  • Накладывает случайный шум на изображение

Imagick::addNoiseImage

(PECL imagick 2.0.0)

Imagick::addNoiseImage — Накладывает случайный шум на изображение

Описание

Imagick::addNoiseImage ( int $noise_type [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Накладывает случайный шум на изображение.

Список параметров

noise_type

Тип шума. Обратитесь к списку констант шума.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Пример использования Imagick::addNoiseImage()

<?php
function addNoiseImage($noiseType, $imagePath, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->addNoiseImage($noiseType, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Преобразование изображения

  • « Imagick::addNoiseImage
  • Imagick::animateImages »
  • PHP Manual
  • Imagick
  • Преобразование изображения

Imagick::affineTransformImage

(PECL imagick 2.0.0)

Imagick::affineTransformImage — Преобразование изображения

Описание

Imagick::affineTransformImage ( ImagickDraw $matrix ) : bool

Преобразование изображения с помощью аффинной матрицы.

Список параметров

matrix

Аффинная матрица

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Пример использования Imagick::affineTransformImage()

<?php
function affineTransformImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $draw = new \ImagickDraw();

    $angle = 40 ;

    $affineRotate = array(
        "sx" => cos($angle), "sy" => cos($angle),
        "rx" => sin($angle), "ry" => -sin($angle),
        "tx" => 0, "ty" => 0,
    );

    $draw->affine($affineRotate);

    $imagick->affineTransformImage($draw);

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Анимация одного или нескольких изображений

  • « Imagick::affineTransformImage
  • Imagick::annotateImage »
  • PHP Manual
  • Imagick
  • Анимация одного или нескольких изображений

Imagick::animateImages

(Информация о версии неизвестна, возможно, только в Git)

Imagick::animateImages — Анимация одного или нескольких изображений

Описание

Imagick::animateImages ( string $x_server ) : bool

Метод производит анимацию изображения на локальном или удалённом X сервере. Метод не доступен в Windows. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

x_server

Адрес X сервера

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::displayImage() - Выводит изображение


Добавляет текстовый комментарий на изображение

  • « Imagick::animateImages
  • Imagick::appendImages »
  • PHP Manual
  • Imagick
  • Добавляет текстовый комментарий на изображение

Imagick::annotateImage

(PECL imagick 2.0.0)

Imagick::annotateImage — Добавляет текстовый комментарий на изображение

Описание

Imagick::annotateImage ( ImagickDraw $draw_settings , float $x , float $y , float $angle , string $text ) : bool

Добавляет текстовый комментарий на изображение.

Список параметров

draw_settings

Объект ImagickDraw с настройками наносимого текста

x

Горизонтальное смещение в пикселях слева от текста

y

Вертикальное смещение в пикселях к базовому тексту

angle

Угол под которым выводится текст. Положительное значение: направление от верхнего левого угла до нижнего правого угла. Отрицательное значение: от нижнего левого угла до верхнего правого угла.

text

Строка с текстом

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Пример использования Imagick::annotateImage():

Добавление текста к пустому изображению

<?php
/* Создаем объекты */
$image = new Imagick();
$draw = new ImagickDraw();
$pixel = new ImagickPixel( 'gray' );

/* Новое изображение */
$image->newImage(800, 75, $pixel);

/* Черный текст */
$draw->setFillColor('black');

/* Настройки шрифта */
$draw->setFont('Bookman-DemiItalic');
$draw->setFontSize( 30 );

/* Создаем текст */
$image->annotateImage($draw, 10, 45, 0, 'The quick brown fox jumps over the lazy dog');

/* Устанавливаем формат изображения */
$image->setImageFormat('png');

/* Выводим изображение с заголовками */
header('Content-type: image/png');
echo $image;

?>

Смотрите также

  • ImagickDraw::annotation() - Draws text on the image
  • ImagickDraw::setFont() - Sets the fully-specified font to use when annotating with text


Объединяет набор изображений

  • « Imagick::annotateImage
  • Imagick::autoLevelImage »
  • PHP Manual
  • Imagick
  • Объединяет набор изображений

Imagick::appendImages

(PECL imagick 2.0.0)

Imagick::appendImages — Объединяет набор изображений

Описание

Imagick::appendImages ( bool $stack ) : Imagick

Объединяет набор изображений в одно большое изображение.

Список параметров

stack

Стоит ли складывать изображения вертикально. По умолчанию (или если указано FALSE) изображения складываются слева направо. Если stack установлен в TRUE, то изображения складываются сверху вниз.

Возвращаемые значения

В случае успешного выполнения возвращает экземпляр Imagick.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Пример использования Imagick::appendImages()

<?php

/* Создаем новый объект imagick */
$im = new Imagick();

/* создаем красное, зеленое и синее изображения */
$im->newImage(100, 50, "red");
$im->newImage(100, 50, "green");
$im->newImage(100, 50, "blue");

/* Соединяем все изображения в одно */
$im->resetIterator();
$combined = $im->appendImages(true);

/* Выводим изображение */
$combined->setImageFormat("png");
header("Content-Type: image/png");
echo $combined;
?>

Результатом выполнения данного примера будет что-то подобное:

Пример вывода : Imagick::appendImages()


Description

  • « Imagick::appendImages
  • Imagick::averageImages »
  • PHP Manual
  • Imagick
  • Description

Imagick::autoLevelImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::autoLevelImage — Description

Описание

public Imagick::autoLevelImage ([ int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Adjusts the levels of a particular image channel by scaling the minimum and maximum values to the full quantum range.

Список параметров

channel

Which channel should the auto-levelling should be done on.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::autoLevelImage()

<?php
function autoLevelImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->autoLevelImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Усредняет набор изображений

  • « Imagick::autoLevelImage
  • Imagick::blackThresholdImage »
  • PHP Manual
  • Imagick
  • Усредняет набор изображений

Imagick::averageImages

(PECL imagick 2.0.0)

Imagick::averageImages — Усредняет набор изображений

Описание

Imagick::averageImages ( void ) : Imagick

Усредняет набор изображений.

Возвращаемые значения

В случае успешного выполнения возвращает объект Imagick.

Ошибки

Вызывает ImagickException при ошибке.


Перевести все пиксели ниже порогового значения в черный цвет

  • « Imagick::averageImages
  • Imagick::blueShiftImage »
  • PHP Manual
  • Imagick
  • Перевести все пиксели ниже порогового значения в черный цвет

Imagick::blackThresholdImage

(PECL imagick 2.0.0)

Imagick::blackThresholdImage — Перевести все пиксели ниже порогового значения в черный цвет

Описание

Imagick::blackThresholdImage ( mixed $threshold ) : bool

Работает так же, как Imagick::thresholdImage(), но изменяются только пиксели ниже порогового значения, в то время как остальные пиксели остаются неизменными.

Список параметров

threshold

Пороговое значение ниже которого все пиксели станут черными

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Список изменений

Версия | Описание
2.1.0 | В качестве параметра возможно передавать цвет строкой. В предыдущих версиях разрешалось передавать только ImagickPixel.

Примеры

Пример #1 Imagick::blackThresholdImage()

<?php
function blackThresholdImage($imagePath, $thresholdColor) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->blackthresholdimage($thresholdColor);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::blackThresholdImage
  • Imagick::blurImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::blueShiftImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::blueShiftImage — Description

Описание

public Imagick::blueShiftImage ([ float $factor = 1.5 ] ) : bool

Mutes the colors of the image to simulate a scene at nighttime in the moonlight.

Список параметров

factor

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::blueShiftImage()

<?php
function blueShiftImage($imagePath, $blueShift) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->blueShiftImage($blueShift);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Добавляет фильтр размытия к изображению

  • « Imagick::blueShiftImage
  • Imagick::borderImage »
  • PHP Manual
  • Imagick
  • Добавляет фильтр размытия к изображению

Imagick::blurImage

(PECL imagick 2.0.0)

Imagick::blurImage — Добавляет фильтр размытия к изображению

Описание

Imagick::blurImage ( float $radius , float $sigma [, int $channel ] ) : bool

Добавляет фильтр размытия к изображению. Необязательный третий параметр служит для размытия определенного канала.

Список параметров

radius

Радиус размытия

sigma

Стандартное отклонение

channel

Константа Channeltype. Если не указано, то будут размыты все каналы.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Пример использования Imagick::blurImage():

Размытие изображения и отправка его в браузер.

<?php

header('Content-type: image/jpeg');

$image = new Imagick('test.jpg');

$image->blurImage(5,3);
echo $image;

?>

Смотрите также

  • Imagick::adaptiveBlurImage() - Добавляет адаптивный фильтр размытия к изображению
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image


Окружает изображение рамкой

  • « Imagick::blurImage
  • Imagick::brightnessContrastImage »
  • PHP Manual
  • Imagick
  • Окружает изображение рамкой

Imagick::borderImage

(PECL imagick 2.0.0)

Imagick::borderImage — Окружает изображение рамкой

Описание

Imagick::borderImage ( mixed $bordercolor , int $width , int $height ) : bool

Окружает изображение рамкой с цветом, установленным в объекте ImagickPixel.

Список параметров

bordercolor

Объект ImagickPixel или строка, содержащая цвет рамки

width

Ширина рамки

height

Высота рамки

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Список изменений

Версия | Описание
2.1.0 | В качестве цвета разрешено передавать строку. Предыдущие версии допускали только объект ImagickPixel.

Примеры

Пример #1 Пример использования Imagick::borderImage()

<?php
function borderImage($imagePath, $color, $width, $height) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->borderImage($color, $width, $height);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::borderImage
  • Imagick::charcoalImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::brightnessContrastImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::brightnessContrastImage — Description

Описание

public Imagick::brightnessContrastImage ( float $brightness , float $contrast [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Change the brightness and/or contrast of an image. It converts the brightness and contrast parameters into slope and intercept and calls a polynomical function to apply to the image.

Список параметров

brightness

contrast

channel

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::brightnessContrastImage()

<?php
function brightnessContrastImage($imagePath, $brightness, $contrast, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->brightnessContrastImage($brightness, $contrast, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Рисование углем

  • « Imagick::brightnessContrastImage
  • Imagick::chopImage »
  • PHP Manual
  • Imagick
  • Рисование углем

Imagick::charcoalImage

(PECL imagick 2.0.0)

Imagick::charcoalImage — Рисование углем

Описание

Imagick::charcoalImage ( float $radius , float $sigma ) : bool

Рисование углем.

Список параметров

radius

Радиус Гаусса, в пикселях, не включая центральный пиксель

sigma

Стандартное отклонение Гаусса, в пикселях

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::charcoalImage()

<?php
function charcoalImage($imagePath, $radius, $sigma) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->charcoalImage($radius, $sigma);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Удаляет область изображения и обрезает его

  • « Imagick::charcoalImage
  • Imagick::clampImage »
  • PHP Manual
  • Imagick
  • Удаляет область изображения и обрезает его

Imagick::chopImage

(PECL imagick 2.0.0)

Imagick::chopImage — Удаляет область изображения и обрезает его

Описание

Imagick::chopImage ( int $width , int $height , int $x , int $y ) : bool

Удаляет выбранную область с реструктуризацией изображения.

Список параметров

width

Ширина обрезаемой области

height

Высота обрезаемой области

x

Начало обрезаемой области по оси X

y

Начало обрезаемой области по оси Y

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Использование Imagick::chopImage():

Пример использования Imagick::chopImage

<?php
/* Создаем объекты */
$image = new Imagick();
$pixel = new ImagickPixel( 'gray' );

/* Новое изображение */
$image->newImage(400, 200, $pixel);

/* Обрезка изображения */
$image->chopImage(200, 200, 0, 0);

/* Установка формата изображения */
$image->setImageFormat('png');

/* Вывод изображения с заголовками */
header('Content-type: image/png');
echo $image;

?>

Смотрите также

  • Imagick::cropImage() - Извлекает область изображения


Description

  • « Imagick::chopImage
  • Imagick::clear »
  • PHP Manual
  • Imagick
  • Description

Imagick::clampImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::clampImage — Description

Описание

public Imagick::clampImage ([ int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Restricts the color range from 0 to the quantum depth.

Список параметров

channel

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Очищает все ресурсы, связанные с объектом Imagick

  • « Imagick::clampImage
  • Imagick::clipImage »
  • PHP Manual
  • Imagick
  • Очищает все ресурсы, связанные с объектом Imagick

Imagick::clear

(PECL imagick 2.0.0)

Imagick::clear — Очищает все ресурсы, связанные с объектом Imagick

Описание

Imagick::clear ( void ) : bool

Очищает все ресурсы, связанные с объектом Imagick

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Обрезка вдоль ближайшего контура с профилем 8BIM

  • « Imagick::clear
  • Imagick::clipImagePath »
  • PHP Manual
  • Imagick
  • Обрезка вдоль ближайшего контура с профилем 8BIM

Imagick::clipImage

(PECL imagick 2.0.0)

Imagick::clipImage — Обрезка вдоль ближайшего контура с профилем 8BIM

Описание

Imagick::clipImage ( void ) : bool

Обрезка вдоль ближайшего контура с профилем 8BIM, если он предоставлен.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Description

  • « Imagick::clipImage
  • Imagick::clipPathImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::clipImagePath

(Информация о версии неизвестна, возможно, только в Git)

Imagick::clipImagePath — Description

Описание

public Imagick::clipImagePath ( string $pathname , string $inside ) : void

Clips along the named paths from the 8BIM profile, if present. Later operations take effect inside the path. Id may be a number if preceded with #, to work on a numbered path, e.g., "#1" to use the first path.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pathname

inside

Возвращаемые значения


Отсечь вдоль обозначенного контура с профилем 8BIM

  • « Imagick::clipImagePath
  • Imagick::clone »
  • PHP Manual
  • Imagick
  • Отсечь вдоль обозначенного контура с профилем 8BIM

Imagick::clipPathImage

(PECL imagick 2.0.0)

Imagick::clipPathImage — Отсечь вдоль обозначенного контура с профилем 8BIM

Описание

Imagick::clipPathImage ( string $pathname , bool $inside ) : bool

Отсекает изображение вдоль обозначенного контура с профилем 8BIM, если он предоставлен. Последующие операции будут применяться к внутреннему контуру. Так же может быть числом, если ему предшествует символ #. Это необходимо для работы с пронумерованными контурами, например, "#1" для использования первого контура.

Список параметров

pathname

Обозначенный контур

inside

Если установлено TRUE, то последующие операции будут применяться к внутреннему контуру. Иначе, последующие операции будут применяться к внешнему контуру.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Создает точную копию объекта Imagick

  • « Imagick::clipPathImage
  • Imagick::clutImage »
  • PHP Manual
  • Imagick
  • Создает точную копию объекта Imagick

Imagick::clone

(PECL imagick 2.0.0)

Imagick::clone — Создает точную копию объекта Imagick

Описание

Imagick::clone ( void ) : Imagick

Создает точную копию объекта Imagick.

Внимание

Эта функция устарела (DEPRECATED) с imagick версии 3.1.0, взамен нее используйте ключевое слово clone.

Примеры

Пример #1 Клонирование объекта Imagick в разных версиях

<?php
// Клоинирование объекта Imagick в imagick 2.x и 3.0:
$newImage = $image->clone();

// Клонирование объекта Imagick с версии 3.1.0:
$newImage = clone $image;
?>

Возвращаемые значения

Будет возвращена копия объекта Imagick.

Список изменений

Версия | Описание
3.1.0 | Метод устарел в пользу ключевого слова clone.


Заменяет цвета в изображении

  • « Imagick::clone
  • Imagick::coalesceImages »
  • PHP Manual
  • Imagick
  • Заменяет цвета в изображении

Imagick::clutImage

(PECL imagick 2.0.0)

Imagick::clutImage — Заменяет цвета в изображении

Описание

Imagick::clutImage ( Imagick $lookup_table [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Заменяет цвета в изображении, используя таблицу соответствия. Необязательный второй параметр заменяет цвета в указанном канале. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

lookup_table

Объект Imagick, содержащий таблицу соответствия цветов.

channel

Константа Channeltype. Если не указано, то по умолчанию замена происходит во всех каналах.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Использование Imagick::clutImage():

Замена цвета в изображении, используя таблицу соответствия.

<?php
$image = new Imagick('test.jpg');
$clut = new Imagick();
$clut->newImage(1, 1, new ImagickPixel('black'));
$image->clutImage($clut);
$image->writeImage('test_out.jpg');
?>

Смотрите также

  • Imagick::adaptiveBlurImage() - Добавляет адаптивный фильтр размытия к изображению
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image


Composites a set of images

  • « Imagick::clutImage
  • Imagick::colorFloodfillImage »
  • PHP Manual
  • Imagick
  • Composites a set of images

Imagick::coalesceImages

(PECL imagick 2.0.0)

Imagick::coalesceImages — Composites a set of images

Описание

Imagick::coalesceImages ( void ) : Imagick

Composites a set of images while respecting any page offsets and disposal methods. GIF, MIFF, and MNG animation sequences typically start with an image background and each subsequent image varies in size and offset. Returns a new Imagick object where each image in the sequence is the same size as the first and composited with the next image in the sequence.

Возвращаемые значения

Returns a new Imagick object on success.

Ошибки

Вызывает ImagickException при ошибке.


Changes the color value of any pixel that matches target

  • « Imagick::coalesceImages
  • Imagick::colorizeImage »
  • PHP Manual
  • Imagick
  • Changes the color value of any pixel that matches target

Imagick::colorFloodfillImage

(PECL imagick 2.0.0)

Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target

Описание

Imagick::colorFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y ) : bool

Changes the color value of any pixel that matches target and is an immediate neighbor.

Список параметров

fill

ImagickPixel object containing the fill color

fuzz

The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.

bordercolor

ImagickPixel object containing the border color

x

X start position of the floodfill

y

Y start position of the floodfill

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as first and third parameter. Previous versions allow only an ImagickPixel object.


Смешивание цвета заливки с изображением

  • « Imagick::colorFloodfillImage
  • Imagick::colorMatrixImage »
  • PHP Manual
  • Imagick
  • Смешивание цвета заливки с изображением

Imagick::colorizeImage

(PECL imagick 2.0.0)

Imagick::colorizeImage — Смешивание цвета заливки с изображением

Описание

Imagick::colorizeImage ( mixed $colorize , mixed $opacity [, bool $legacy = FALSE ] ) : bool

Смешивает цвет заливки с каждым пикселем изображения.

Список параметров

colorize

Объект ImagickPixel или строка, содержащая цвет

opacity

Объект ImagickPixel или дробное число, содержащее значение прозрачности. 1.0 означает без прозрачности, 0.0 означает полную прозрачность.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Для первого параметра разрешено передавать цвет в виде строки и указывать значение прозрачности во втором параметре. Предыдущие версии допускали только объект ImagickPixel.

Примеры

Пример #1 Imagick::colorizeImage()

<?php
function colorizeImage($imagePath, $color, $opacity) {
    $imagick = new \Imagick(realpath($imagePath));
    $opacity = $opacity / 255.0;
    $opacityColor = new \ImagickPixel("rgba(0, 0, 0, $opacity)");
    $imagick->colorizeImage($color, $opacityColor);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::colorizeImage
  • Imagick::combineImages »
  • PHP Manual
  • Imagick
  • Description

Imagick::colorMatrixImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::colorMatrixImage — Description

Описание

public Imagick::colorMatrixImage ( array $color_matrix = Imagick::CHANNEL_DEFAULT ) : bool

Apply color transformation to an image. The method permits saturation changes, hue rotation, luminance to alpha, and various other effects. Although variable-sized transformation matrices can be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6 for CMYKA (or RGBA with offsets). The matrix is similar to those used by Adobe Flash except offsets are in column 6 rather than 5 (in support of CMYKA images) and offsets are normalized (divide Flash offset by 255)

Список параметров

color_matrix

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::colorMatrixImage()

<?php
function colorMatrixImage($imagePath, $colorMatrix) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageOpacity(1);

    //A color matrix should look like:
    //    $colorMatrix = [
    //        1.5, 0.0, 0.0, 0.0, 0.0, -0.157,
    //        0.0, 1.0, 0.5, 0.0, 0.0, -0.157,
    //        0.0, 0.0, 1.5, 0.0, 0.0, -0.157,
    //        0.0, 0.0, 0.0, 1.0, 0.0,  0.0,
    //        0.0, 0.0, 0.0, 0.0, 1.0,  0.0,
    //        0.0, 0.0, 0.0, 0.0, 0.0,  1.0
    //    ];

    $background = new \Imagick();
    $background->newPseudoImage($imagick->getImageWidth(), $imagick->getImageHeight(),  "pattern:checkerboard");

    $background->setImageFormat('png');

    $imagick->setImageFormat('png');
    $imagick->colorMatrixImage($colorMatrix);

    $background->compositeImage($imagick, \Imagick::COMPOSITE_ATOP, 0, 0);

    header("Content-Type: image/png");
    echo $background->getImageBlob();
}

?>


Combines one or more images into a single image

  • « Imagick::colorMatrixImage
  • Imagick::commentImage »
  • PHP Manual
  • Imagick
  • Combines one or more images into a single image

Imagick::combineImages

(PECL imagick 2.0.0)

Imagick::combineImages — Combines one or more images into a single image

Описание

Imagick::combineImages ( int $channelType ) : Imagick

Combines one or more images into a single image. The grayscale value of the pixels of each image in the sequence is assigned in order to the specified channels of the combined image. The typical ordering would be image 1 => Red, 2 => Green, 3 => Blue, etc.

Список параметров

channelType

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Adds a comment to your image

  • « Imagick::combineImages
  • Imagick::compareImageChannels »
  • PHP Manual
  • Imagick
  • Adds a comment to your image

Imagick::commentImage

(PECL imagick 2.0.0)

Imagick::commentImage — Adds a comment to your image

Описание

Imagick::commentImage ( string $comment ) : bool

Adds a comment to your image.

Список параметров

comment

The comment to add

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Using Imagick::commentImage():

Commenting an image and retrieving the comment:

<?php

/* Create new Imagick object */
$im = new imagick();

/* Create an empty image */
$im->newImage(100, 100, new ImagickPixel("red"));

/* Add comment to the image */
$im->commentImage("Hello World!");

/* Display the comment */
echo $im->getImageProperty("comment");

?>


Returns the difference in one or more images

  • « Imagick::commentImage
  • Imagick::compareImageLayers »
  • PHP Manual
  • Imagick
  • Returns the difference in one or more images

Imagick::compareImageChannels

(PECL imagick 2.0.0)

Imagick::compareImageChannels — Returns the difference in one or more images

Описание

Imagick::compareImageChannels ( Imagick $image , int $channelType , int $metricType ) : array

Compares one or more images and returns the difference image.

Список параметров

image

Imagick object containing the image to compare.

channelType

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

metricType

One of the metric type constants.

Возвращаемые значения

Array consisting of new_wand and distortion.

Ошибки

Вызывает ImagickException при ошибке.


Returns the maximum bounding region between images

  • « Imagick::compareImageChannels
  • Imagick::compareImages »
  • PHP Manual
  • Imagick
  • Returns the maximum bounding region between images

Imagick::compareImageLayers

(PECL imagick 2.0.0)

Imagick::compareImageLayers — Returns the maximum bounding region between images

Описание

Imagick::compareImageLayers ( int $method ) : Imagick

Compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

method

One of the layer method constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Using Imagick::compareImageLayers()

Comparing image layers

<?php
/* create new imagick object */
$im = new Imagick("test.gif");

/* optimize the image layers */
$result = $im->compareImageLayers(imagick::LAYERMETHOD_COALESCE);

/* work on the $result */
?>

Смотрите также

  • Imagick::optimizeImageLayers() - Removes repeated portions of images to optimize
  • Imagick::writeImages() - Writes an image or image sequence
  • Imagick::writeImage() - Writes an image to the specified filename


Compares an image to a reconstructed image

  • « Imagick::compareImageLayers
  • Imagick::compositeImage »
  • PHP Manual
  • Imagick
  • Compares an image to a reconstructed image

Imagick::compareImages

(PECL imagick 2.0.0)

Imagick::compareImages — Compares an image to a reconstructed image

Описание

Imagick::compareImages ( Imagick $compare , int $metric ) : array

Returns an array containing a reconstructed image and the difference between images.

Список параметров

compare

An image to compare to.

metric

Provide a valid metric type constant. Refer to this list of metric constants.

Возвращаемые значения

Returns an array containing a reconstructed image and the difference between images.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Using Imagick::compareImages():

Compare images and display the reconstructed image

<?php

$image1 = new imagick("image1.png");
$image2 = new imagick("image2.png");

$result = $image1->compareImages($image2, Imagick::METRIC_MEANSQUAREERROR);
$result[0]->setImageFormat("png");

header("Content-Type: image/png");
echo $result[0];

?>


Composite one image onto another

  • « Imagick::compareImages
  • Imagick::__construct »
  • PHP Manual
  • Imagick
  • Composite one image onto another

Imagick::compositeImage

(PECL imagick 2.0.0)

Imagick::compositeImage — Composite one image onto another

Описание

Imagick::compositeImage ( Imagick $composite_object , int $composite , int $x , int $y [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Composite one image onto another at the specified offset. Any extra arguments needed for the compose algorithm should passed to setImageArtifact with 'compose:args' as the first parameter and the data as the second parameter.

Список параметров

composite_object

Imagick object which holds the composite image

compose

Composite operator. See Composite Operator Constants

x

The column offset of the composited image

y

The row offset of the composited image

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Using Imagick::compositeImage():

Composite two images with the 'mathematics' compose method

<?php

// Equivalent to running the command
// convert src1.png src2.png -compose mathematics -define compose:args="1,0,-0.5,0.5" -composite output.png

$src1 = new \Imagick("./src1.png");
$src2 = new \Imagick("./src2.png");

$src1->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
$src1->setImageArtifact('compose:args', "1,0,-0.5,0.5");
$src1->compositeImage($src2, Imagick::COMPOSITE_MATHEMATICS, 0, 0);
$src1->writeImage("./output.png");

?>

Смотрите также

  • Imagick::setImageArtifact() - Set image artifact


Конструктор объекта Imagick

  • « Imagick::compositeImage
  • Imagick::contrastImage »
  • PHP Manual
  • Imagick
  • Конструктор объекта Imagick

Imagick::__construct

(PECL imagick 2.0.0)

Imagick::__construct — Конструктор объекта Imagick

Описание

Imagick::__construct ([ mixed $files ] )

Создает экземпляр Imagick для отдельного изображения или группы изображений.

Список параметров

files

Путь к изображению для загрузки или массив таких путей. Пути могут содержать групповые символы для имен файлов или могут являться URL.

Возвращаемые значения

В случае успеха возвращает новый объект Imagick.

Ошибки

Вызывает ImagickException при ошибке.


Change the contrast of the image

  • « Imagick::__construct
  • Imagick::contrastStretchImage »
  • PHP Manual
  • Imagick
  • Change the contrast of the image

Imagick::contrastImage

(PECL imagick 2.0.0)

Imagick::contrastImage — Change the contrast of the image

Описание

Imagick::contrastImage ( bool $sharpen ) : bool

Enhances the intensity differences between the lighter and darker elements of the image. Set sharpen to a value other than 0 to increase the image contrast otherwise the contrast is reduced.

Список параметров

sharpen

The sharpen value

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::contrastImage()

<?php
function contrastImage($imagePath, $contrastType) {
    $imagick = new \Imagick(realpath($imagePath));
    if ($contrastType != 2) {
        $imagick->contrastImage($contrastType);
    }

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Enhances the contrast of a color image

  • « Imagick::contrastImage
  • Imagick::convolveImage »
  • PHP Manual
  • Imagick
  • Enhances the contrast of a color image

Imagick::contrastStretchImage

(PECL imagick 2.0.0)

Imagick::contrastStretchImage — Enhances the contrast of a color image

Описание

Imagick::contrastStretchImage ( float $black_point , float $white_point [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

black_point

The black point.

white_point

The white point.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Imagick::CHANNEL_ALL. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Applies a custom convolution kernel to the image

  • « Imagick::contrastStretchImage
  • Imagick::count »
  • PHP Manual
  • Imagick
  • Applies a custom convolution kernel to the image

Imagick::convolveImage

(PECL imagick 2.0.0)

Imagick::convolveImage — Applies a custom convolution kernel to the image

Описание

Imagick::convolveImage ( array $kernel [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Applies a custom convolution kernel to the image.

Список параметров

kernel

The convolution kernel

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::convolveImage()

<?php
function convolveImage($imagePath, $bias, $kernelMatrix) {
    $imagick = new \Imagick(realpath($imagePath));
    //$edgeFindingKernel = [-1, -1, -1, -1, 8, -1, -1, -1, -1,];
    $imagick->setImageBias($bias * \Imagick::getQuantum());
    $imagick->convolveImage($kernelMatrix);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Get the number of images

  • « Imagick::convolveImage
  • Imagick::cropImage »
  • PHP Manual
  • Imagick
  • Get the number of images

Imagick::count

(Информация о версии неизвестна, возможно, только в Git)

Imagick::count — Get the number of images

Описание

public Imagick::count ([ int $mode = 0 ] ) : int

Returns the number of images.

Список параметров

mode

An unused argument. Currently there is a non-particularly well defined feature in PHP where calling count() on a countable object might (or might not) require this method to accept a parameter. This parameter is here to be conformant with the interface of countable, even though the param is not used.

Возвращаемые значения

Returns the number of images.


Извлекает область изображения

  • « Imagick::count
  • Imagick::cropThumbnailImage »
  • PHP Manual
  • Imagick
  • Извлекает область изображения

Imagick::cropImage

(PECL imagick 2.0.0)

Imagick::cropImage — Извлекает область изображения

Описание

Imagick::cropImage ( int $width , int $height , int $x , int $y ) : bool

Извлекает область изображения.

Список параметров

width

Ширина обрезания

height

Высота обрезания

x

Координата X верхнего левого угла области обрезания

y

Координата Y верхнего левого угла области обрезания

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::cropImage()

<?php
function cropImage($imagePath, $startX, $startY, $width, $height) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->cropImage($width, $height, $startX, $startY);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a crop thumbnail

  • « Imagick::cropImage
  • Imagick::current »
  • PHP Manual
  • Imagick
  • Creates a crop thumbnail

Imagick::cropThumbnailImage

(PECL imagick 2.0.0)

Imagick::cropThumbnailImage — Creates a crop thumbnail

Описание

Imagick::cropThumbnailImage ( int $width , int $height [, bool $legacy = FALSE ] ) : bool

Creates a fixed size thumbnail by first scaling the image up or down and cropping a specified area from the center.

Список параметров

width

The width of the thumbnail

height

The Height of the thumbnail

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает ссылку на текущий объект Imagick

  • « Imagick::cropThumbnailImage
  • Imagick::cycleColormapImage »
  • PHP Manual
  • Imagick
  • Возвращает ссылку на текущий объект Imagick

Imagick::current

(PECL imagick 2.0.0)

Imagick::current — Возвращает ссылку на текущий объект Imagick

Описание

Imagick::current ( void ) : Imagick

Возвращает ссылку на текущий объект imagick с указателем на изображение в правильной последовательности.

Возвращаемые значения

Возвращает себя в случае успеха.

Ошибки

Вызывает ImagickException при ошибке.


Displaces an image's colormap

  • « Imagick::current
  • Imagick::decipherImage »
  • PHP Manual
  • Imagick
  • Displaces an image's colormap

Imagick::cycleColormapImage

(PECL imagick 2.0.0)

Imagick::cycleColormapImage — Displaces an image's colormap

Описание

Imagick::cycleColormapImage ( int $displace ) : bool

Displaces an image's colormap by a given number of positions. If you cycle the colormap a number of times you can produce a psychedelic effect.

Список параметров

displace

The amount to displace the colormap.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Deciphers an image

  • « Imagick::cycleColormapImage
  • Imagick::deconstructImages »
  • PHP Manual
  • Imagick
  • Deciphers an image

Imagick::decipherImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::decipherImage — Deciphers an image

Описание

Imagick::decipherImage ( string $passphrase ) : bool

Deciphers image that has been enciphered before. The image must be enciphered using Imagick::encipherImage(). Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.9 или старше.

Список параметров

passphrase

The passphrase

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::encipherImage() - Enciphers an image


Returns certain pixel differences between images

  • « Imagick::decipherImage
  • Imagick::deleteImageArtifact »
  • PHP Manual
  • Imagick
  • Returns certain pixel differences between images

Imagick::deconstructImages

(PECL imagick 2.0.0)

Imagick::deconstructImages — Returns certain pixel differences between images

Описание

Imagick::deconstructImages ( void ) : Imagick

Compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers.

Возвращаемые значения

Returns a new Imagick object on success.

Ошибки

Вызывает ImagickException при ошибке.


Delete image artifact

  • « Imagick::deconstructImages
  • Imagick::deleteImageProperty »
  • PHP Manual
  • Imagick
  • Delete image artifact

Imagick::deleteImageArtifact

(Информация о версии неизвестна, возможно, только в Git)

Imagick::deleteImageArtifact — Delete image artifact

Описание

Imagick::deleteImageArtifact ( string $artifact ) : bool

Deletes an artifact associated with the image. The difference between image properties and image artifacts is that properties are public and artifacts are private. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.5.7 или старше.

Список параметров

artifact

The name of the artifact to delete

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Смотрите также

  • Imagick::setImageArtifact() - Set image artifact
  • Imagick::getImageArtifact() - Get image artifact


Description

  • « Imagick::deleteImageArtifact
  • Imagick::deskewImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::deleteImageProperty

(Информация о версии неизвестна, возможно, только в Git)

Imagick::deleteImageProperty — Description

Описание

public Imagick::deleteImageProperty ( string $name ) : bool

Deletes an image property.

Список параметров

name

The name of the property to delete.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Removes skew from the image

  • « Imagick::deleteImageProperty
  • Imagick::despeckleImage »
  • PHP Manual
  • Imagick
  • Removes skew from the image

Imagick::deskewImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::deskewImage — Removes skew from the image

Описание

public Imagick::deskewImage ( float $threshold ) : bool

This method can be used to remove skew from for example scanned images where the paper was not properly placed on the scanning surface. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.5 или старше.

Список параметров

threshold

Deskew threshold

Возвращаемые значения

Примеры

Пример #1 Imagick::deskewImage()

<?php
function deskewImage($threshold) {
    $imagick = new \Imagick(realpath("images/NYTimes-Page1-11-11-1918.jpg"));
    $deskewImagick = clone $imagick;

    //This is the only thing required for deskewing.
    $deskewImagick->deskewImage($threshold);

    //The rest of this example is to make the result obvious - because
    //otherwise the result is not obvious.
    $trim = 9;

    $deskewImagick->cropImage($deskewImagick->getImageWidth() - $trim, $deskewImagick->getImageHeight(), $trim, 0);
    $imagick->cropImage($imagick->getImageWidth() - $trim, $imagick->getImageHeight(), $trim, 0);
    $deskewImagick->resizeimage($deskewImagick->getImageWidth() / 2, $deskewImagick->getImageHeight() / 2, \Imagick::FILTER_LANCZOS, 1);
    $imagick->resizeimage($imagick->getImageWidth() / 2, $imagick->getImageHeight() / 2, \Imagick::FILTER_LANCZOS, 1);
    $newCanvas = new \Imagick();
    $newCanvas->newimage($imagick->getImageWidth() + $deskewImagick->getImageWidth() + 20, $imagick->getImageHeight(), 'red', 'jpg');
    $newCanvas->compositeimage($imagick, \Imagick::COMPOSITE_COPY, 5, 0);
    $newCanvas->compositeimage($deskewImagick, \Imagick::COMPOSITE_COPY, $imagick->getImageWidth() + 10, 0);

    header("Content-Type: image/jpg");
    echo $newCanvas->getImageBlob();
}

?>


Reduces the speckle noise in an image

  • « Imagick::deskewImage
  • Imagick::destroy »
  • PHP Manual
  • Imagick
  • Reduces the speckle noise in an image

Imagick::despeckleImage

(PECL imagick 2.0.0)

Imagick::despeckleImage — Reduces the speckle noise in an image

Описание

Imagick::despeckleImage ( void ) : bool

Reduces the speckle noise in an image while preserving the edges of the original image.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::despeckleImage()

<?php
function despeckleImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->despeckleImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Удаляет объект Imagick

  • « Imagick::despeckleImage
  • Imagick::displayImage »
  • PHP Manual
  • Imagick
  • Удаляет объект Imagick

Imagick::destroy

(PECL imagick 2.0.0)

Imagick::destroy — Удаляет объект Imagick

Описание

Imagick::destroy ( void ) : bool

Удаляет объект Imagick и освобождает все ресурсы связанные с ним. Этот метод устарел и следует использовать Imagick::clear.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Выводит изображение

  • « Imagick::destroy
  • Imagick::displayImages »
  • PHP Manual
  • Imagick
  • Выводит изображение

Imagick::displayImage

(PECL imagick 2.0.0)

Imagick::displayImage — Выводит изображение

Описание

Imagick::displayImage ( string $servername ) : bool

Данный метод выводит изображение на X сервер.

Список параметров

servername

Имя X сервера

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Выводит изображение или последовательность изображений

  • « Imagick::displayImage
  • Imagick::distortImage »
  • PHP Manual
  • Imagick
  • Выводит изображение или последовательность изображений

Imagick::displayImages

(PECL imagick 2.0.0)

Imagick::displayImages — Выводит изображение или последовательность изображений

Описание

Imagick::displayImages ( string $servername ) : bool

Выводит изображение или последовательность изображений на X сервер.

Список параметров

servername

Имя X сервера

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Distorts an image using various distortion methods

  • « Imagick::displayImages
  • Imagick::drawImage »
  • PHP Manual
  • Imagick
  • Distorts an image using various distortion methods

Imagick::distortImage

(PECL imagick 2.0.1)

Imagick::distortImage — Distorts an image using various distortion methods

Описание

Imagick::distortImage ( int $method , array $arguments , bool $bestfit ) : bool

Distorts an image using various distortion methods, by mapping color lookups of the source image to a new destination image usually of the same size as the source image, unless 'bestfit' is set to TRUE.

If 'bestfit' is enabled, and distortion allows it, the destination image is adjusted to ensure the whole source 'image' will just fit within the final destination image, which will be sized and offset accordingly. Also in many cases the virtual offset of the source image will be taken into account in the mapping.

Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

method

The method of image distortion. See distortion constants

arguments

The arguments for this distortion method

bestfit

Attempt to resize destination to fit distorted source

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Using Imagick::distortImage():

Distort an image and display to the browser.

<?php
/* Create new object */
$im = new Imagick();

/* Create new checkerboard pattern */
$im->newPseudoImage(100, 100, "pattern:checkerboard");

/* Set the image format to png */
$im->setImageFormat('png');

/* Fill new visible areas with transparent */
$im->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);

/* Activate matte */
$im->setImageMatte(true);

/* Control points for the distortion */
$controlPoints = array( 10, 10,
                        10, 5,

                        10, $im->getImageHeight() - 20,
                        10, $im->getImageHeight() - 5,

                        $im->getImageWidth() - 10, 10,
                        $im->getImageWidth() - 10, 20,

                        $im->getImageWidth() - 10, $im->getImageHeight() - 10,
                        $im->getImageWidth() - 10, $im->getImageHeight() - 30);

/* Perform the distortion */
$im->distortImage(Imagick::DISTORTION_PERSPECTIVE, $controlPoints, true);

/* Ouput the image */
header("Content-Type: image/png");
echo $im;
?>

Результатом выполнения данного примера будет что-то подобное:

Output of example : Using Imagick::distortImage()

Смотрите также

  • Imagick::blurImage() - Добавляет фильтр размытия к изображению
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image


Выполняет рендеринг объекта ImagickDraw на текущем изображении

  • « Imagick::distortImage
  • Imagick::edgeImage »
  • PHP Manual
  • Imagick
  • Выполняет рендеринг объекта ImagickDraw на текущем изображении

Imagick::drawImage

(PECL imagick 2.0.0)

Imagick::drawImage — Выполняет рендеринг объекта ImagickDraw на текущем изображении

Описание

Imagick::drawImage ( ImagickDraw $draw ) : bool

Выполняет рендеринг объекта ImagickDraw на текущем изображении.

Список параметров

draw

Операции рисования, выполняемые к изображению.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Enhance edges within the image

  • « Imagick::drawImage
  • Imagick::embossImage »
  • PHP Manual
  • Imagick
  • Enhance edges within the image

Imagick::edgeImage

(PECL imagick 2.0.0)

Imagick::edgeImage — Enhance edges within the image

Описание

Imagick::edgeImage ( float $radius ) : bool

Enhance edges within the image with a convolution filter of the given radius. Use radius 0 and it will be auto-selected.

Список параметров

radius

The radius of the operation.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::edgeImage()

<?php
function edgeImage($imagePath, $radius) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->edgeImage($radius);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Returns a grayscale image with a three-dimensional effect

  • « Imagick::edgeImage
  • Imagick::encipherImage »
  • PHP Manual
  • Imagick
  • Returns a grayscale image with a three-dimensional effect

Imagick::embossImage

(PECL imagick 2.0.0)

Imagick::embossImage — Returns a grayscale image with a three-dimensional effect

Описание

Imagick::embossImage ( float $radius , float $sigma ) : bool

Returns a grayscale image with a three-dimensional effect. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and it will choose a suitable radius for you.

Список параметров

radius

The radius of the effect

sigma

The sigma of the effect

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::embossImage()

<?php
function embossImage($imagePath, $radius, $sigma) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->embossImage($radius, $sigma);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Enciphers an image

  • « Imagick::embossImage
  • Imagick::enhanceImage »
  • PHP Manual
  • Imagick
  • Enciphers an image

Imagick::encipherImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::encipherImage — Enciphers an image

Описание

Imagick::encipherImage ( string $passphrase ) : bool

Converts plain pixels to enciphered pixels. The image is not readable until it has been deciphered using Imagick::decipherImage() Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.9 или старше.

Список параметров

passphrase

The passphrase

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::decipherImage() - Deciphers an image


Improves the quality of a noisy image

  • « Imagick::encipherImage
  • Imagick::equalizeImage »
  • PHP Manual
  • Imagick
  • Improves the quality of a noisy image

Imagick::enhanceImage

(PECL imagick 2.0.0)

Imagick::enhanceImage — Improves the quality of a noisy image

Описание

Imagick::enhanceImage ( void ) : bool

Applies a digital filter that improves the quality of a noisy image.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::enhanceImage()

<?php
function enhanceImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->enhanceImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Equalizes the image histogram

  • « Imagick::enhanceImage
  • Imagick::evaluateImage »
  • PHP Manual
  • Imagick
  • Equalizes the image histogram

Imagick::equalizeImage

(PECL imagick 2.0.0)

Imagick::equalizeImage — Equalizes the image histogram

Описание

Imagick::equalizeImage ( void ) : bool

Equalizes the image histogram.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::equalizeImage()

<?php
function equalizeImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->equalizeImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Applies an expression to an image

  • « Imagick::equalizeImage
  • Imagick::exportImagePixels »
  • PHP Manual
  • Imagick
  • Applies an expression to an image

Imagick::evaluateImage

(PECL imagick 2.0.0)

Imagick::evaluateImage — Applies an expression to an image

Описание

Imagick::evaluateImage ( int $op , float $constant [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Applys an arithmetic, relational, or logical expression to an image. Use these operators to lighten or darken an image, to increase or decrease contrast in an image, or to produce the "negative" of an image.

Список параметров

op

The evaluation operator

constant

The value of the operator

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Примеры

Пример #1 Using Imagick::evaluateImage()

Using evaluateImage to reduce opacity in an image.

<?php
// Create new object with the image
$im = new Imagick('example-alpha.png');

// Reduce the alpha by 50%
$im->evaluateImage(Imagick::EVALUATE_DIVIDE, 2, Imagick::CHANNEL_ALPHA);

// Output the image
header("Content-Type: image/png");
echo $im;
?>

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Exports raw image pixels

  • « Imagick::evaluateImage
  • Imagick::extentImage »
  • PHP Manual
  • Imagick
  • Exports raw image pixels

Imagick::exportImagePixels

(Информация о версии неизвестна, возможно, только в Git)

Imagick::exportImagePixels — Exports raw image pixels

Описание

public Imagick::exportImagePixels ( int $x , int $y , int $width , int $height , string $map , int $STORAGE ) : array

Exports image pixels into an array. The map defines the ordering of the exported pixels. The size of the returned array is width * height * strlen(map). Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.7 или старше.

Список параметров

x

X-coordinate of the exported area

y

Y-coordinate of the exported area

width

Width of the exported aread

height

Height of the exported area

map

Ordering of the exported pixels. For example "RGB". Valid characters for the map are R, G, B, A, O, C, Y, M, K, I and P.

STORAGE

Refer to this list of pixel type constants

Примеры

Пример #1 Using Imagick::exportImagePixels()

Export image pixels into an array

<?php

/* Create new object */
$im = new Imagick();

/* Create new image */
$im->newPseudoImage(0, 0, "magick:rose");

/* Export the image pixels */
$pixels = $im->exportImagePixels(10, 10, 2, 2, "RGB", Imagick::PIXEL_CHAR);

/* Output */
var_dump($pixels);
?>

Результат выполнения данного примера:

array(12) {
  [0]=>
  int(72)
  [1]=>
  int(64)
  [2]=>
  int(57)
  [3]=>
  int(69)
  [4]=>
  int(59)
  [5]=>
  int(43)
  [6]=>
  int(124)
  [7]=>
  int(120)
  [8]=>
  int(-96)
  [9]=>
  int(91)
  [10]=>
  int(84)
  [11]=>
  int(111)
}

Возвращаемые значения

Returns an array containing the pixels values.

Ошибки

Вызывает ImagickException при ошибке.


Set image size

  • « Imagick::exportImagePixels
  • Imagick::filter »
  • PHP Manual
  • Imagick
  • Set image size

Imagick::extentImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::extentImage — Set image size

Описание

Imagick::extentImage ( int $width , int $height , int $x , int $y ) : bool

Comfortability method for setting image size. The method sets the image size and allows setting x,y coordinates where the new area begins. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.1 или старше.

Предостережение

Prior to ImageMagick 6.5.7-8 (1623), $x was positive when shifting to the left and negative when shifting to the right, and $y was positive when shifting an image up and negative when shifting an image down. Somewhere betwen ImageMagick 6.3.7 (1591) and ImageMagick 6.5.7-8 (1623), the axes of $x and $y were flipped, so that $x was negative when shifting to the left and positive when shifting to the right, and $y was negative when shifting an image up and positive when shifting an image down. Somewhere between ImageMagick 6.5.7-8 (1623) and ImageMagick 6.6.9-7 (1641), the axes of $x and $y were flipped back to pre-ImageMagick 6.5.7-8 (1623) functionality.

Список параметров

width

The new width

height

The new height

x

X position for the new size

y

Y position for the new size

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::resizeImage() - Scales an image
  • Imagick::thumbnailImage() - Changes the size of an image
  • Imagick::cropImage() - Извлекает область изображения


Description

  • « Imagick::extentImage
  • Imagick::flattenImages »
  • PHP Manual
  • Imagick
  • Description

Imagick::filter

(Информация о версии неизвестна, возможно, только в Git)

Imagick::filter — Description

Описание

public Imagick::filter ( ImagickKernel $ImagickKernel [, int $channel = Imagick::CHANNEL_UNDEFINED ] ) : bool

Applies a custom convolution kernel to the image.

Список параметров

ImagickKernel

An instance of ImagickKernel that represents either a single kernel or a linked series of kernels.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::filter()

<?php
function filter($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $matrix = [
        [-1, 0, -1],
        [0,  5,  0],
        [-1, 0, -1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);
    $strength = 0.5;
    $kernel->scale($strength, \Imagick::NORMALIZE_KERNEL_VALUE);
    $kernel->addUnityKernel(1 - $strength);

    $imagick->filter($kernel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Merges a sequence of images

  • « Imagick::filter
  • Imagick::flipImage »
  • PHP Manual
  • Imagick
  • Merges a sequence of images

Imagick::flattenImages

(PECL imagick 2.0.0)

Imagick::flattenImages — Merges a sequence of images

Описание

Imagick::flattenImages ( void ) : Imagick

Merges a sequence of images. This is useful for combining Photoshop layers into a single image.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Создает вертикальное зеркало изображения

  • « Imagick::flattenImages
  • Imagick::floodFillPaintImage »
  • PHP Manual
  • Imagick
  • Создает вертикальное зеркало изображения

Imagick::flipImage

(PECL imagick 2.0.0)

Imagick::flipImage — Создает вертикальное зеркало изображения

Описание

Imagick::flipImage ( void ) : bool

Создает вертикальное зеркало изображения, отражая пиксели вокруг центральной оси X.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::flipImage()

<?php
function flipImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->flipImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Changes the color value of any pixel that matches target

  • « Imagick::flipImage
  • Imagick::flopImage »
  • PHP Manual
  • Imagick
  • Changes the color value of any pixel that matches target

Imagick::floodFillPaintImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::floodFillPaintImage — Changes the color value of any pixel that matches target

Описание

Imagick::floodFillPaintImage ( mixed $fill , float $fuzz , mixed $target , int $x , int $y , bool $invert [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Changes the color value of any pixel that matches target and is an immediate neighbor. This method is a replacement for deprecated Imagick::paintFloodFillImage(). Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или старше.

Список параметров

fill

ImagickPixel object or a string containing the fill color

fuzz

Мера округления (fuzz). Для примера, установите значение fuzz в 10 и красный цвет с интенсивностью 100 и 102 будет интерпретироваться как один и тот же цвет.

target

ImagickPixel object or a string containing the target color to paint

x

X start position of the floodfill

y

Y start position of the floodfill

invert

If TRUE paints any pixel that does not match the target color.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::floodfillPaintImage() example

<?php

/* Create new imagick object */
$im = new Imagick();

/* create red, green and blue images */
$im->newImage(100, 50, "red");
$im->newImage(100, 50, "green");
$im->newImage(100, 50, "blue");

/* Append the images into one */
$im->resetIterator();
$combined = $im->appendImages(true);

/* Save the intermediate image for comparison */
$combined->writeImage("floodfillpaint_intermediate.png");

/* The target pixel to paint */
$x = 1;
$y = 1;

/* Get the color we are painting */
$target = $combined->getImagePixelColor($x, $y);

/* Paints pixel in position 1,1 black and all neighboring
   pixels that match the target color */
$combined->floodfillPaintImage("black", 1, $target, $x, $y, false);

/* Save the result */
$combined->writeImage("floodfillpaint_result.png");
?>

Результатом выполнения данного примера будет что-то подобное:

Output of example : Imagick::floodfillPaintImage()
Output of example : Imagick::floodfillPaintImage()


Создает вертикальное зеркало изображения

  • « Imagick::floodFillPaintImage
  • Imagick::forwardFourierTransformImage »
  • PHP Manual
  • Imagick
  • Создает вертикальное зеркало изображения

Imagick::flopImage

(PECL imagick 2.0.0)

Imagick::flopImage — Создает вертикальное зеркало изображения

Описание

Imagick::flopImage ( void ) : bool

Создает вертикальное зеркало изображения, отражая пиксели вокруг центральной оси Y.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::flopImage()

<?php
function flopImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->flopImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::flopImage
  • Imagick::frameImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::forwardFourierTransformImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::forwardFourierTransformImage — Description

Описание

public Imagick::forwardFourierTransformimage ( bool $magnitude ) : bool

Implements the discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

Список параметров

magnitude

If true, return as magnitude / phase pair otherwise a real / imaginary image pair.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::forwardFourierTransformImage()

<?php
//Utility function for forwardTransformImage
function createMask() {
    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(0);
    $draw->setStrokeColor('rgb(255, 255, 255)');
    $draw->setFillColor('rgb(255, 255, 255)');

    //Draw a circle on the y-axis, with it's centre
    //at x, y that touches the origin
    $draw->circle(250, 250, 220, 250);

    $imagick = new \Imagick();
    $imagick->newImage(512, 512, "black");
    $imagick->drawImage($draw);
    $imagick->gaussianBlurImage(20, 20);
    $imagick->autoLevelImage();

    return $imagick;
}

function forwardFourierTransformImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->resizeimage(512, 512, \Imagick::FILTER_LANCZOS, 1);

    $mask = createMask();
    $imagick->forwardFourierTransformImage(true);

    @$imagick->setimageindex(0);
    $magnitude = $imagick->getimage();

    @$imagick->setimageindex(1);
    $imagickPhase = $imagick->getimage();

    if (true) {
        $imagickPhase->compositeImage($mask, \Imagick::COMPOSITE_MULTIPLY, 0, 0);
    }

    if (false) {
        $output = clone $imagickPhase;
        $output->setimageformat('png');
        header("Content-Type: image/png");
        echo $output->getImageBlob();
    }

    $magnitude->inverseFourierTransformImage($imagickPhase, true);

    $magnitude->setimageformat('png');
    header("Content-Type: image/png");
    echo $magnitude->getImageBlob();
}

?>


Adds a simulated three-dimensional border

  • « Imagick::forwardFourierTransformImage
  • Imagick::functionImage »
  • PHP Manual
  • Imagick
  • Adds a simulated three-dimensional border

Imagick::frameImage

(PECL imagick 2.0.0)

Imagick::frameImage — Adds a simulated three-dimensional border

Описание

Imagick::frameImage ( mixed $matte_color , int $width , int $height , int $inner_bevel , int $outer_bevel ) : bool

Adds a simulated three-dimensional border around the image. The width and height specify the border width of the vertical and horizontal sides of the frame. The inner and outer bevels indicate the width of the inner and outer shadows of the frame.

Список параметров

matte_color

ImagickPixel object or a string representing the matte color

width

The width of the border

height

The height of the border

inner_bevel

The inner bevel width

outer_bevel

The outer bevel width

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Примеры

Пример #1 Imagick::frameImage()

<?php
function frameImage($imagePath, $color, $width, $height, $innerBevel, $outerBevel) {
    $imagick = new \Imagick(realpath($imagePath));

    $width = $width + $innerBevel + $outerBevel;
    $height = $height + $innerBevel + $outerBevel;

    $imagick->frameimage(
        $color,
        $width,
        $height,
        $innerBevel,
        $outerBevel
    );
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Applies a function on the image

  • « Imagick::frameImage
  • Imagick::fxImage »
  • PHP Manual
  • Imagick
  • Applies a function on the image

Imagick::functionImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::functionImage — Applies a function on the image

Описание

public Imagick::functionImage ( int $function , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Applies an arithmetic, relational, or logical expression to a pseudo image.

See also » ImageMagick v6 Examples - Image Transformations — Function, Multi-Argument Evaluate

Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.9 или старше.

Список параметров

function

Refer to this list of function constants

arguments

Array of arguments to pass to this function.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Create a sinusoidal gradient

<?php
$imagick = new Imagick();
$imagick->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(3, -90);
$imagick->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);

header("Content-Type: image/png");
$imagick->setImageFormat("png");
echo $imagick->getImageBlob();
?>

Результатом выполнения данного примера будет что-то подобное:

Output of create a sinusoidal gradient

Пример #2 Create a gradient from the polynomial (4x^2 - 4x + 1)

<?php
$imagick = new Imagick();
$imagick->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(4, -4, 1);
$imagick->functionImage(Imagick::FUNCTION_POLYNOMIAL, $arguments);

header("Content-Type: image/png");
$imagick->setimageformat("png");
echo $imagick->getImageBlob();
?>

Результатом выполнения данного примера будет что-то подобное:

Output of create a polynomial gradient

Пример #3 Create a complex gradient from the polynomial (4x^2 - 4x^2 + 1) modulated by a sinusoidal gradient

<?php
$imagick1 = new Imagick();
$imagick1->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(9, -90);
$imagick1->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);

$imagick2 = new Imagick();
$imagick2->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(0.5, 0);
$imagick2->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);
$imagick1->compositeimage($imagick2, Imagick::COMPOSITE_MULTIPLY, 0, 0);

header("Content-Type: image/png");
$imagick1->setImageFormat("png");
echo $imagick1->getImageBlob();
?>

Результатом выполнения данного примера будет что-то подобное:

Output of create complex gradient


Evaluate expression for each pixel in the image

  • « Imagick::functionImage
  • Imagick::gammaImage »
  • PHP Manual
  • Imagick
  • Evaluate expression for each pixel in the image

Imagick::fxImage

(PECL imagick 2.0.0)

Imagick::fxImage — Evaluate expression for each pixel in the image

Описание

Imagick::fxImage ( string $expression [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : Imagick

Evaluate expression for each pixel in the image. Consult » The Fx Special Effects Image Operator for more information.

Список параметров

expression

The expression.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::fxImage()

<?php
function fxImage() {
    $imagick = new \Imagick();
    $imagick->newPseudoImage(200, 200, "xc:white");

    $fx = 'xx=i-w/2; yy=j-h/2; rr=hypot(xx,yy); (.5-rr/140)*1.2+.5';
    $fxImage = $imagick->fxImage($fx);

    header("Content-Type: image/png");
    $fxImage->setimageformat('png');
    echo $fxImage->getImageBlob();
}

?>


Gamma-corrects an image

  • « Imagick::fxImage
  • Imagick::gaussianBlurImage »
  • PHP Manual
  • Imagick
  • Gamma-corrects an image

Imagick::gammaImage

(PECL imagick 2.0.0)

Imagick::gammaImage — Gamma-corrects an image

Описание

Imagick::gammaImage ( float $gamma [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Gamma-corrects an image. The same image viewed on different devices will have perceptual differences in the way the image's intensities are represented on the screen. Specify individual gamma levels for the red, green, and blue channels, or adjust all three with the gamma parameter. Values typically range from 0.8 to 2.3.

Список параметров

gamma

The amount of gamma-correction.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::gammaImage()

<?php
function gammaImage($imagePath, $gamma, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->gammaImage($gamma, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Blurs an image

  • « Imagick::gammaImage
  • Imagick::getColorspace »
  • PHP Manual
  • Imagick
  • Blurs an image

Imagick::gaussianBlurImage

(PECL imagick 2.0.0)

Imagick::gaussianBlurImage — Blurs an image

Описание

Imagick::gaussianBlurImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Blurs an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and selects a suitable radius for you.

Список параметров

radius

The radius of the Gaussian, in pixels, not counting the center pixel.

sigma

The standard deviation of the Gaussian, in pixels.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::gaussianBlurImage()

<?php
function gaussianBlurImage($imagePath, $radius, $sigma, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->gaussianBlurImage($radius, $sigma, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Возвращает цветовую палитру

  • « Imagick::gaussianBlurImage
  • Imagick::getCompression »
  • PHP Manual
  • Imagick
  • Возвращает цветовую палитру

Imagick::getColorspace

(PECL imagick 0.9.10-0.9.9)

Imagick::getColorspace — Возвращает цветовую палитру

Описание

Imagick::getColorspace ( void ) : int

Возвращает значение глобальной цветовой палитры. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.5.7 или старше.

Возвращаемые значения

Возвращает целое число, которое можно сравнить с константами COLORSPACE.


Возвращает тип сжатия объекта

  • « Imagick::getColorspace
  • Imagick::getCompressionQuality »
  • PHP Manual
  • Imagick
  • Возвращает тип сжатия объекта

Imagick::getCompression

(PECL imagick 2.0.0)

Imagick::getCompression — Возвращает тип сжатия объекта

Описание

Imagick::getCompression ( void ) : int

Возвращает тип сжатия объекта.

Возвращаемые значения

Возвращает константу сжатия


Возвращает качество сжатия объекта

  • « Imagick::getCompression
  • Imagick::getCopyright »
  • PHP Manual
  • Imagick
  • Возвращает качество сжатия объекта

Imagick::getCompressionQuality

(PECL imagick 2.0.0)

Imagick::getCompressionQuality — Возвращает качество сжатия объекта

Описание

Imagick::getCompressionQuality ( void ) : int

Возвращает качество сжатия объекта.

Возвращаемые значения

Возвращает число означающее качество сжатия


Возвращает копирайт API ImageMagick в виде строки

  • « Imagick::getCompressionQuality
  • Imagick::getFilename »
  • PHP Manual
  • Imagick
  • Возвращает копирайт API ImageMagick в виде строки

Imagick::getCopyright

(PECL imagick 2.0.0)

Imagick::getCopyright — Возвращает копирайт API ImageMagick в виде строки

Описание

Imagick::getCopyright ( void ) : string

Возвращает копирайт API ImageMagick в виде строки.

Возвращаемые значения

Возвращает строку содержащую копирайт Imagemagick и Magickwand C API.


Имя файла результирующего изображения

  • « Imagick::getCopyright
  • Imagick::getFont »
  • PHP Manual
  • Imagick
  • Имя файла результирующего изображения

Imagick::getFilename

(PECL imagick 2.0.0)

Imagick::getFilename — Имя файла результирующего изображения

Описание

Imagick::getFilename ( void ) : string

Возвращает имя файла связанное с результирующим изображением.

Возвращаемые значения

Возвращает строку в случае успеха.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает название шрифта

  • « Imagick::getFilename
  • Imagick::getFormat »
  • PHP Manual
  • Imagick
  • Возвращает название шрифта

Imagick::getFont

(PECL imagick 2.1.0)

Imagick::getFont — Возвращает название шрифта

Описание

Imagick::getFont ( void ) : string

Возвращает значение шрифта объекта. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или старше.

Возвращаемые значения

Возвращает строку содержащую название шрифта или FALSE, если шрифт не установлен.

Смотрите также

  • Imagick::setFont() - Sets font
  • ImagickDraw::setFont() - Sets the fully-specified font to use when annotating with text
  • ImagickDraw::getFont() - Returns the font


Возвращает формат Imagick объекта

  • « Imagick::getFont
  • Imagick::getGravity »
  • PHP Manual
  • Imagick
  • Возвращает формат Imagick объекта

Imagick::getFormat

(PECL imagick 2.0.0)

Imagick::getFormat — Возвращает формат Imagick объекта

Описание

Imagick::getFormat ( void ) : string

Возвращает формат Imagick объекта.

Возвращаемые значения

Возвращает формат изображения.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает значение гравитации (притяжения)

  • « Imagick::getFormat
  • Imagick::getHomeURL »
  • PHP Manual
  • Imagick
  • Возвращает значение гравитации (притяжения)

Imagick::getGravity

(Информация о версии неизвестна, возможно, только в Git)

Imagick::getGravity — Возвращает значение гравитации (притяжения)

Описание

Imagick::getGravity ( void ) : int

Возвращает глобальное значение гравитации объекта Imagick. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или старше.

Возвращаемые значения

Возвращает значение гравитации. Смотрите список констант гравитации.


Возвращает домашний URL библиотеки ImageMagick

  • « Imagick::getGravity
  • Imagick::getImage »
  • PHP Manual
  • Imagick
  • Возвращает домашний URL библиотеки ImageMagick

Imagick::getHomeURL

(PECL imagick 2.0.0)

Imagick::getHomeURL — Возвращает домашний URL библиотеки ImageMagick

Описание

Imagick::getHomeURL ( void ) : string

Возвращает домашний URL библиотеки ImageMagick.

Возвращаемые значения

Возвращает ссылку домашней страницы imagemagick.


Возвращает новый объект Imagick

  • « Imagick::getHomeURL
  • Imagick::getImageAlphaChannel »
  • PHP Manual
  • Imagick
  • Возвращает новый объект Imagick

Imagick::getImage

(PECL imagick 2.0.0)

Imagick::getImage — Возвращает новый объект Imagick

Описание

Imagick::getImage ( void ) : Imagick

Возвращает новый объект Imagick с текущей последовательностью изображений.

Возвращаемые значения

Возвращает новый объект Imagick с текущей последовательностью изображений.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает альфа-канал изображения

  • « Imagick::getImage
  • Imagick::getImageArtifact »
  • PHP Manual
  • Imagick
  • Возвращает альфа-канал изображения

Imagick::getImageAlphaChannel

(Информация о версии неизвестна, возможно, только в Git)

Imagick::getImageAlphaChannel — Возвращает альфа-канал изображения

Описание

Imagick::getImageAlphaChannel ( void ) : int

Получение значения альфа-канала изображения. Возвращаемое значение будет одной из констант альфа-канала. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или старше.

Возвращаемые значения

Возвращает константу, определенную текущим значением альфа-канала. Смотрите список констант альфа-канала.

Ошибки

Вызывает ImagickException при ошибке.


Get image artifact

  • « Imagick::getImageAlphaChannel
  • Imagick::getImageAttribute »
  • PHP Manual
  • Imagick
  • Get image artifact

Imagick::getImageArtifact

(Информация о версии неизвестна, возможно, только в Git)

Imagick::getImageArtifact — Get image artifact

Описание

Imagick::getImageArtifact ( string $artifact ) : string

Gets an artifact associated with the image. The difference between image properties and image artifacts is that properties are public and artifacts are private. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.5.7 или старше.

Список параметров

artifact

The name of the artifact

Возвращаемые значения

Returns the artifact value on success.

Ошибки

Вызывает ImagickException при ошибке.

Смотрите также

  • Imagick::setImageArtifact() - Set image artifact
  • Imagick::deleteImageArtifact() - Delete image artifact


Description

  • « Imagick::getImageArtifact
  • Imagick::getImageBackgroundColor »
  • PHP Manual
  • Imagick
  • Description

Imagick::getImageAttribute

(Информация о версии неизвестна, возможно, только в Git)

Imagick::getImageAttribute — Description

Описание

public Imagick::getImageAttribute ( string $key ) : string

Returns a named attribute.

Список параметров

key

The key of the attribute to get.

Возвращаемые значения


Возвращает цвет фона изображения

  • « Imagick::getImageAttribute
  • Imagick::getImageBlob »
  • PHP Manual
  • Imagick
  • Возвращает цвет фона изображения

Imagick::getImageBackgroundColor

(PECL imagick 2.0.0)

Imagick::getImageBackgroundColor — Возвращает цвет фона изображения

Описание

Imagick::getImageBackgroundColor ( void ) : ImagickPixel

Возвращает цвет фона изображения.

Возвращаемые значения

Возвращает ImagickPixel с установленным цветом фона изображения.

Ошибки

Вызывает ImagickException при ошибке.


Returns the image sequence as a blob

  • « Imagick::getImageBackgroundColor
  • Imagick::getImageBluePrimary »
  • PHP Manual
  • Imagick
  • Returns the image sequence as a blob

Imagick::getImageBlob

(PECL imagick 2.0.0)

Imagick::getImageBlob — Returns the image sequence as a blob

Описание

Imagick::getImageBlob ( void ) : string

Implements direct to memory image formats. It returns the image sequence as a string. The format of the image determines the format of the returned blob (GIF, JPEG, PNG, etc.). To return a different image format, use Imagick::setImageFormat().

Возвращаемые значения

Returns a string containing the image.

Ошибки

Вызывает ImagickException при ошибке.


Returns the chromaticy blue primary point

  • « Imagick::getImageBlob
  • Imagick::getImageBorderColor »
  • PHP Manual
  • Imagick
  • Returns the chromaticy blue primary point

Imagick::getImageBluePrimary

(PECL imagick 2.0.0)

Imagick::getImageBluePrimary — Returns the chromaticy blue primary point

Описание

Imagick::getImageBluePrimary ( void ) : array

Returns the chromaticity blue primary point for the image.

Список параметров

x

The chromaticity blue primary x-point.

y

The chromaticity blue primary y-point.

Возвращаемые значения

Array consisting of "x" and "y" coordinates of point.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает цвет рамки изображения

  • « Imagick::getImageBluePrimary
  • Imagick::getImageChannelDepth »
  • PHP Manual
  • Imagick
  • Возвращает цвет рамки изображения

Imagick::getImageBorderColor

(PECL imagick 2.0.0)

Imagick::getImageBorderColor — Возвращает цвет рамки изображения

Описание

Imagick::getImageBorderColor ( void ) : ImagickPixel

Возвращает цвет рамки изображения.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Gets the depth for a particular image channel

  • « Imagick::getImageBorderColor
  • Imagick::getImageChannelDistortion »
  • PHP Manual
  • Imagick
  • Gets the depth for a particular image channel

Imagick::getImageChannelDepth

(PECL imagick 2.0.0)

Imagick::getImageChannelDepth — Gets the depth for a particular image channel

Описание

Imagick::getImageChannelDepth ( int $channel ) : int

Gets the depth for a particular image channel.

Список параметров

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Compares image channels of an image to a reconstructed image

  • « Imagick::getImageChannelDepth
  • Imagick::getImageChannelDistortions »
  • PHP Manual
  • Imagick
  • Compares image channels of an image to a reconstructed image

Imagick::getImageChannelDistortion

(PECL imagick 2.0.0)

Imagick::getImageChannelDistortion — Compares image channels of an image to a reconstructed image

Описание

Imagick::getImageChannelDistortion ( Imagick $reference , int $channel , int $metric ) : float

Compares one or more image channels of an image to a reconstructed image and returns the specified distortion metric.

Список параметров

reference

Imagick object to compare to.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

metric

One of the metric type constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Gets channel distortions

  • « Imagick::getImageChannelDistortion
  • Imagick::getImageChannelExtrema »
  • PHP Manual
  • Imagick
  • Gets channel distortions

Imagick::getImageChannelDistortions

(Информация о версии неизвестна, возможно, только в Git)

Imagick::getImageChannelDistortions — Gets channel distortions

Описание

Imagick::getImageChannelDistortions ( Imagick $reference , int $metric [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : float

Compares one or more image channels of an image to a reconstructed image and returns the specified distortion metrics Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или старше.

Список параметров

reference

Imagick object containing the reference image

metric

Refer to this list of metric type constants.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

Returns a double describing the channel distortion.

Ошибки

Вызывает ImagickException при ошибке.


Gets the extrema for one or more image channels

  • « Imagick::getImageChannelDistortions
  • Imagick::getImageChannelKurtosis »
  • PHP Manual
  • Imagick
  • Gets the extrema for one or more image channels

Imagick::getImageChannelExtrema

(PECL imagick 2.0.0)

Imagick::getImageChannelExtrema — Gets the extrema for one or more image channels

Описание

Imagick::getImageChannelExtrema ( int $channel ) : array

Gets the extrema for one or more image channels. Return value is an associative array with the keys "minima" and "maxima".

Список параметров

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


The getImageChannelKurtosis purpose

  • « Imagick::getImageChannelExtrema
  • Imagick::getImageChannelMean »
  • PHP Manual
  • Imagick
  • The getImageChannelKurtosis purpose

Imagick::getImageChannelKurtosis

(Информация о версии неизвестна, возможно, только в Git)

Imagick::getImageChannelKurtosis — The getImageChannelKurtosis purpose

Описание

public Imagick::getImageChannelKurtosis ([ int $channel = Imagick::CHANNEL_DEFAULT ] ) : array

Get the kurtosis and skewness of a specific channel. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.9 или старше.

Список параметров

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

Returns an array with kurtosis and skewness members.

Ошибки

Вызывает ImagickException при ошибке.


Gets the mean and standard deviation

  • « Imagick::getImageChannelKurtosis
  • Imagick::getImageChannelRange »
  • PHP Manual
  • Imagick
  • Gets the mean and standard deviation

Imagick::getImageChannelMean

(PECL imagick 2.0.0)

Imagick::getImageChannelMean — Gets the mean and standard deviation

Описание

Imagick::getImageChannelMean ( int $channel ) : array

Gets the mean and standard deviation of one or more image channels. Return value is an associative array with the keys "mean" and "standardDeviation".

Список параметров

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Gets channel range

  • « Imagick::getImageChannelMean
  • Imagick::getImageChannelStatistics »
  • PHP Manual
  • Imagick
  • Gets channel range

Imagick::getImageChannelRange

(PECL imagick 2.2.1)

Imagick::getImageChannelRange — Gets channel range

Описание

Imagick::getImageChannelRange ( int $channel ) : array

Gets the range for one or more image channels. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или старше.

Список параметров

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

Returns an array containing minima and maxima values of the channel(s).

Ошибки

Вызывает ImagickException при ошибке.


Returns statistics for each channel in the image

  • « Imagick::getImageChannelRange
  • Imagick::getImageClipMask »
  • PHP Manual
  • Imagick
  • Returns statistics for each channel in the image

Imagick::getImageChannelStatistics

(PECL imagick 2.0.0)

Imagick::getImageChannelStatistics — Returns statistics for each channel in the image

Описание

Imagick::getImageChannelStatistics ( void ) : array

Returns statistics for each channel in the image. The statistics include the channel depth, its minima and maxima, the mean, and the standard deviation. You can access the red channel mean, for example, like this:

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Gets image clip mask

  • « Imagick::getImageChannelStatistics
  • Imagick::getImageColormapColor »
  • PHP Manual
  • Imagick
  • Gets image clip mask

Imagick::getImageClipMask

(Информация о версии неизвестна, возможно, только в Git)

Imagick::getImageClipMask — Gets image clip mask

Описание

Imagick::getImageClipMask ( void ) : Imagick

Returns the image clip mask. The clip mask is an Imagick object containing the clip mask. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Возвращаемые значения

Returns an Imagick object containing the clip mask.

Ошибки

Вызывает ImagickException при ошибке.


Returns the color of the specified colormap index

  • « Imagick::getImageClipMask
  • Imagick::getImageColors »
  • PHP Manual
  • Imagick
  • Returns the color of the specified colormap index

Imagick::getImageColormapColor

(PECL imagick 2.0.0)

Imagick::getImageColormapColor — Returns the color of the specified colormap index

Описание

Imagick::getImageColormapColor ( int $index ) : ImagickPixel

Returns the color of the specified colormap index.

Список параметров

index

The offset into the image colormap.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает число уникальных цветов в изображении

  • « Imagick::getImageColormapColor
  • Imagick::getImageColorspace »
  • PHP Manual
  • Imagick
  • Возвращает число уникальных цветов в изображении

Imagick::getImageColors

(PECL imagick 2.0.0)

Imagick::getImageColors — Возвращает число уникальных цветов в изображении

Описание

Imagick::getImageColors ( void ) : int

Возвращает число уникальных цветов в изображении в виде целого числа.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Возвращает цветовую палитру изображения

  • « Imagick::getImageColors
  • Imagick::getImageCompose »
  • PHP Manual
  • Imagick
  • Возвращает цветовую палитру изображения

Imagick::getImageColorspace

(PECL imagick 2.0.0)

Imagick::getImageColorspace — Возвращает цветовую палитру изображения

Описание

Imagick::getImageColorspace ( void ) : int

Возвращает целое число, соответствующее значению одной из COLORSPACE констант.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Возвращает составной оператор, связанный с изображением

  • « Imagick::getImageColorspace
  • Imagick::getImageCompression »
  • PHP Manual
  • Imagick
  • Возвращает составной оператор, связанный с изображением

Imagick::getImageCompose

(PECL imagick 2.0.0)

Imagick::getImageCompose — Возвращает составной оператор, связанный с изображением

Описание

Imagick::getImageCompose ( void ) : int

Возвращает составной оператор, связанный с изображением.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Возвращает текущий тип компрессии изображения

  • « Imagick::getImageCompose
  • Imagick::getImageCompressionQuality »
  • PHP Manual
  • Imagick
  • Возвращает текущий тип компрессии изображения

Imagick::getImageCompression

(PECL imagick 2.2.2)

Imagick::getImageCompression — Возвращает текущий тип компрессии изображения

Описание

Imagick::getImageCompression ( void ) : int

Возвращает текущий тип компрессии изображения.

Возвращаемые значения

Возвращает константу компрессии


Возвращает текущее качество сжатия изображения

  • « Imagick::getImageCompression
  • Imagick::getImageDelay »
  • PHP Manual
  • Imagick
  • Возвращает текущее качество сжатия изображения

Imagick::getImageCompressionQuality

(PECL imagick 2.2.2)

Imagick::getImageCompressionQuality — Возвращает текущее качество сжатия изображения

Описание

Imagick::getImageCompressionQuality ( void ) : int

Получает текущее качество сжатия изображения

Возвращаемые значения

Возвращает целое число, описывающее сжатие изображения.


Gets the image delay

  • « Imagick::getImageCompressionQuality
  • Imagick::getImageDepth »
  • PHP Manual
  • Imagick
  • Gets the image delay

Imagick::getImageDelay

(PECL imagick 2.0.0)

Imagick::getImageDelay — Gets the image delay

Описание

Imagick::getImageDelay ( void ) : int

Gets the image delay.

Возвращаемые значения

Returns the image delay.

Ошибки

Вызывает ImagickException при ошибке.


Gets the image depth

  • « Imagick::getImageDelay
  • Imagick::getImageDispose »
  • PHP Manual
  • Imagick
  • Gets the image depth

Imagick::getImageDepth

(PECL imagick 0.9.1-0.9.9)

Imagick::getImageDepth — Gets the image depth

Описание

Imagick::getImageDepth ( void ) : int

Gets the image depth.

Возвращаемые значения

The image depth.


Gets the image disposal method

  • « Imagick::getImageDepth
  • Imagick::getImageDistortion »
  • PHP Manual
  • Imagick
  • Gets the image disposal method

Imagick::getImageDispose

(PECL imagick 2.0.0)

Imagick::getImageDispose — Gets the image disposal method

Описание

Imagick::getImageDispose ( void ) : int

Gets the image disposal method.

Возвращаемые значения

Returns the dispose method on success.

Ошибки

Вызывает ImagickException при ошибке.


Compares an image to a reconstructed image

  • « Imagick::getImageDispose
  • Imagick::getImageExtrema »
  • PHP Manual
  • Imagick
  • Compares an image to a reconstructed image

Imagick::getImageDistortion

(PECL imagick 2.0.0)

Imagick::getImageDistortion — Compares an image to a reconstructed image

Описание

Imagick::getImageDistortion ( MagickWand $reference , int $metric ) : float

Compares an image to a reconstructed image and returns the specified distortion metric.

Список параметров

reference

Imagick object to compare to.

metric

One of the metric type constants.

Возвращаемые значения

Returns the distortion metric used on the image (or the best guess thereof).

Ошибки

Вызывает ImagickException при ошибке.


Gets the extrema for the image

  • « Imagick::getImageDistortion
  • Imagick::getImageFilename »
  • PHP Manual
  • Imagick
  • Gets the extrema for the image

Imagick::getImageExtrema

(PECL imagick 2.0.0)

Imagick::getImageExtrema — Gets the extrema for the image

Описание

Imagick::getImageExtrema ( void ) : array

Gets the extrema for the image. Returns an associative array with the keys "min" and "max".

Возвращаемые значения

Returns an associative array with the keys "min" and "max".

Ошибки

Вызывает ImagickException при ошибке.


Возвращает имя файла конкретного изображения в последовательности

  • « Imagick::getImageExtrema
  • Imagick::getImageFormat »
  • PHP Manual
  • Imagick
  • Возвращает имя файла конкретного изображения в последовательности

Imagick::getImageFilename

(PECL imagick 2.0.0)

Imagick::getImageFilename — Возвращает имя файла конкретного изображения в последовательности

Описание

Imagick::getImageFilename ( void ) : string

Возвращает имя файла конкретного изображения в последовательности.

Возвращаемые значения

Возвращает строку с именем файла изображения.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает формат конкретного изображения в последовательности

  • « Imagick::getImageFilename
  • Imagick::getImageGamma »
  • PHP Manual
  • Imagick
  • Возвращает формат конкретного изображения в последовательности

Imagick::getImageFormat

(PECL imagick 2.0.0)

Imagick::getImageFormat — Возвращает формат конкретного изображения в последовательности

Описание

Imagick::getImageFormat ( void ) : string

Возвращает формат конкретного изображения в последовательности.

Возвращаемые значения

Возвращает строку, содержащую формат изображения в случае успешного выполнения.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает гамму изображения

  • « Imagick::getImageFormat
  • Imagick::getImageGeometry »
  • PHP Manual
  • Imagick
  • Возвращает гамму изображения

Imagick::getImageGamma

(PECL imagick 2.0.0)

Imagick::getImageGamma — Возвращает гамму изображения

Описание

Imagick::getImageGamma ( void ) : float

Возвращает гамму изображения.

Возвращаемые значения

Возвращает гамму изображения в случае успешного выполнения.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает ширину и высоту в виде ассоциативного массива

  • « Imagick::getImageGamma
  • Imagick::getImageGravity »
  • PHP Manual
  • Imagick
  • Возвращает ширину и высоту в виде ассоциативного массива

Imagick::getImageGeometry

(PECL imagick 2.0.0)

Imagick::getImageGeometry — Возвращает ширину и высоту в виде ассоциативного массива

Описание

Imagick::getImageGeometry ( void ) : array

Возвращает ширину и высоту в виде ассоциативного массива.

Возвращаемые значения

Возвращает массив с шириной и высотой изображения.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::getImageGeometry()

<?php
function getImageGeometry($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Возвращает значение гравитации (притяжения)

  • « Imagick::getImageGeometry
  • Imagick::getImageGreenPrimary »
  • PHP Manual
  • Imagick
  • Возвращает значение гравитации (притяжения)

Imagick::getImageGravity

(Информация о версии неизвестна, возможно, только в Git)

Imagick::getImageGravity — Возвращает значение гравитации (притяжения)

Описание

Imagick::getImageGravity ( void ) : int

Возвращает значение гравитации изображения. В отличие от Imagick::getGravity(), этот метод возвращает гравитацию, установленную для текущего изображения в последовательности. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или старше.

Возвращаемые значения

Возвращает значение гравитации. Смотрите список констант гравитации.


Returns the chromaticy green primary point

  • « Imagick::getImageGravity
  • Imagick::getImageHeight »
  • PHP Manual
  • Imagick
  • Returns the chromaticy green primary point

Imagick::getImageGreenPrimary

(PECL imagick 2.0.0)

Imagick::getImageGreenPrimary — Returns the chromaticy green primary point

Описание

Imagick::getImageGreenPrimary ( void ) : array

Returns the chromaticity green primary point. Returns an array with the keys "x" and "y".

Возвращаемые значения

Returns an array with the keys "x" and "y" on success, throws an ImagickException on failure.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает высоту изображения

  • « Imagick::getImageGreenPrimary
  • Imagick::getImageHistogram »
  • PHP Manual
  • Imagick
  • Возвращает высоту изображения

Imagick::getImageHeight

(PECL imagick 2.0.0)

Imagick::getImageHeight — Возвращает высоту изображения

Описание

Imagick::getImageHeight ( void ) : int

Возвращает высоту изображения.

Возвращаемые значения

Возвращает высоту изображения в пикселях.

Ошибки

Вызывает ImagickException при ошибке.


Gets the image histogram

  • « Imagick::getImageHeight
  • Imagick::getImageIndex »
  • PHP Manual
  • Imagick
  • Gets the image histogram

Imagick::getImageHistogram

(PECL imagick 2.0.0)

Imagick::getImageHistogram — Gets the image histogram

Описание

Imagick::getImageHistogram ( void ) : array

Returns the image histogram as an array of ImagickPixel objects.

Возвращаемые значения

Returns the image histogram as an array of ImagickPixel objects.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Generates Imagick::getImageHistogram()

<?php
function getColorStatistics($histogramElements, $colorChannel) {
    $colorStatistics = [];

    foreach ($histogramElements as $histogramElement) {
        $color = $histogramElement->getColorValue($colorChannel);
        $color = intval($color * 255);
        $count = $histogramElement->getColorCount();

        if (array_key_exists($color, $colorStatistics)) {
            $colorStatistics[$color] += $count;
        }
        else {
            $colorStatistics[$color] = $count;
        }
    }

    ksort($colorStatistics);

    return $colorStatistics;
}

function getImageHistogram($imagePath) {

    $backgroundColor = 'black';

    $draw = new \ImagickDraw();
    $draw->setStrokeWidth(0); //make the lines be as thin as possible

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    $histogramWidth = 256;
    $histogramHeight = 100; // the height for each RGB segment

    $imagick = new \Imagick(realpath($imagePath));
    //Resize the image to be small, otherwise PHP tends to run out of memory
    //This might lead to bad results for images that are pathologically 'pixelly'
    $imagick->adaptiveResizeImage(200, 200, true);
    $histogramElements = $imagick->getImageHistogram();

    $histogram = new \Imagick();
    $histogram->newpseudoimage($histogramWidth, $histogramHeight * 3, 'xc:black');
    $histogram->setImageFormat('png');

    $getMax = function ($carry, $item)  {
        if ($item > $carry) {
            return $item;
        }
        return $carry;
    };

    $colorValues = [
        'red' => getColorStatistics($histogramElements, \Imagick::COLOR_RED),
        'lime' => getColorStatistics($histogramElements, \Imagick::COLOR_GREEN),
        'blue' => getColorStatistics($histogramElements, \Imagick::COLOR_BLUE),
    ];

    $max = array_reduce($colorValues['red'] , $getMax, 0);
    $max = array_reduce($colorValues['lime'] , $getMax, $max);
    $max = array_reduce($colorValues['blue'] , $getMax, $max);

    $scale =  $histogramHeight / $max;

    $count = 0;
    foreach ($colorValues as $color => $values) {
        $draw->setstrokecolor($color);

        $offset = ($count + 1) * $histogramHeight;

        foreach ($values as $index => $value) {
            $draw->line($index, $offset, $index, $offset - ($value * $scale));
        }
        $count++;
    }

    $histogram->drawImage($draw);

    header( "Content-Type: image/png" );
    echo $histogram;
}

?>


Gets the index of the current active image

  • « Imagick::getImageHistogram
  • Imagick::getImageInterlaceScheme »
  • PHP Manual
  • Imagick
  • Gets the index of the current active image

Imagick::getImageIndex

(PECL imagick 2.0.0)

Imagick::getImageIndex — Gets the index of the current active image

Описание

Imagick::getImageIndex ( void ) : int

Returns the index of the current active image within the Imagick object. This method has been deprecated. See Imagick::getIteratorIndex().

Возвращаемые значения

Returns an integer containing the index of the image in the stack.

Ошибки

Вызывает ImagickException при ошибке.


Gets the image interlace scheme

  • « Imagick::getImageIndex
  • Imagick::getImageInterpolateMethod »
  • PHP Manual
  • Imagick
  • Gets the image interlace scheme

Imagick::getImageInterlaceScheme

(PECL imagick 2.0.0)

Imagick::getImageInterlaceScheme — Gets the image interlace scheme

Описание

Imagick::getImageInterlaceScheme ( void ) : int

Gets the image interlace scheme.

Возвращаемые значения

Returns the interlace scheme as an integer on success. Вызывает ImagickException при ошибке.


Returns the interpolation method

  • « Imagick::getImageInterlaceScheme
  • Imagick::getImageIterations »
  • PHP Manual
  • Imagick
  • Returns the interpolation method

Imagick::getImageInterpolateMethod

(PECL imagick 2.0.0)

Imagick::getImageInterpolateMethod — Returns the interpolation method

Описание

Imagick::getImageInterpolateMethod ( void ) : int

Returns the interpolation method for the specified image. The method is one of the Imagick::INTERPOLATE_* constants.

Возвращаемые значения

Returns the interpolate method on success.

Ошибки

Вызывает ImagickException при ошибке.


Gets the image iterations

  • « Imagick::getImageInterpolateMethod
  • Imagick::getImageLength »
  • PHP Manual
  • Imagick
  • Gets the image iterations

Imagick::getImageIterations

(PECL imagick 2.0.0)

Imagick::getImageIterations — Gets the image iterations

Описание

Imagick::getImageIterations ( void ) : int

Gets the image iterations.

Возвращаемые значения

Returns the image iterations as an integer.

Ошибки

Вызывает ImagickException при ошибке.


Returns the image length in bytes

  • « Imagick::getImageIterations
  • Imagick::getImageMagickLicense »
  • PHP Manual
  • Imagick
  • Returns the image length in bytes

Imagick::getImageLength

(PECL imagick 2.0.0)

Imagick::getImageLength — Returns the image length in bytes

Описание

Imagick::getImageLength ( void ) : int

Returns the image length in bytes

Возвращаемые значения

Returns an int containing the current image size.

Примеры

Пример #1 Using Imagick::getImageLength():

Getting image length in bytes

<?php
$image = new Imagick('test.jpg');
echo $image->getImageLength() . ' bytes';
?>


Returns a string containing the ImageMagick license

  • « Imagick::getImageLength
  • Imagick::getImageMatte »
  • PHP Manual
  • Imagick
  • Returns a string containing the ImageMagick license

Imagick::getImageMagickLicense

(PECL imagick 2.0.0)

Imagick::getImageMagickLicense — Returns a string containing the ImageMagick license

Описание

Imagick::getImageMagickLicense ( void ) : string

Returns a string containing the ImageMagick license

Возвращаемые значения

Returns a string containing the ImageMagick license.


Return if the image has a matte channel

  • « Imagick::getImageMagickLicense
  • Imagick::getImageMatteColor »
  • PHP Manual
  • Imagick
  • Return if the image has a matte channel

Imagick::getImageMatte

(PECL imagick 2.0.0)

Imagick::getImageMatte — Return if the image has a matte channel

Описание

Imagick::getImageMatte ( void ) : bool

Returns TRUE if the image has a matte channel otherwise false. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Returns the image matte color

  • « Imagick::getImageMatte
  • Imagick::getImageMimeType »
  • PHP Manual
  • Imagick
  • Returns the image matte color

Imagick::getImageMatteColor

(PECL imagick 2.0.0)

Imagick::getImageMatteColor — Returns the image matte color

Описание

Imagick::getImageMatteColor ( void ) : ImagickPixel

Returns the image matte color.

Возвращаемые значения

Returns ImagickPixel object on success.

Ошибки

Вызывает ImagickException при ошибке.


Description

  • « Imagick::getImageMatteColor
  • Imagick::getImageOrientation »
  • PHP Manual
  • Imagick
  • Description

Imagick::getImageMimeType

(Информация о версии неизвестна, возможно, только в Git)

Imagick::getImageMimeType — Description

Описание

public Imagick::getImageMimeType ( void ) : string

Returns the image mime-type.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Gets the image orientation

  • « Imagick::getImageMimeType
  • Imagick::getImagePage »
  • PHP Manual
  • Imagick
  • Gets the image orientation

Imagick::getImageOrientation

(PECL imagick 2.0.0)

Imagick::getImageOrientation — Gets the image orientation

Описание

Imagick::getImageOrientation ( void ) : int

Gets the image orientation. The return value is one of the orientation constants.

Возвращаемые значения

Returns an int on success.

Ошибки

Вызывает ImagickException при ошибке.


Returns the page geometry

  • « Imagick::getImageOrientation
  • Imagick::getImagePixelColor »
  • PHP Manual
  • Imagick
  • Returns the page geometry

Imagick::getImagePage

(PECL imagick 2.0.0)

Imagick::getImagePage — Returns the page geometry

Описание

Imagick::getImagePage ( void ) : array

Returns the page geometry associated with the image in an array with the keys "width", "height", "x", and "y".

Возвращаемые значения

Returns the page geometry associated with the image in an array with the keys "width", "height", "x", and "y".

Ошибки

Вызывает ImagickException при ошибке.


Returns the color of the specified pixel

  • « Imagick::getImagePage
  • Imagick::getImageProfile »
  • PHP Manual
  • Imagick
  • Returns the color of the specified pixel

Imagick::getImagePixelColor

(PECL imagick 2.0.0)

Imagick::getImagePixelColor — Returns the color of the specified pixel

Описание

Imagick::getImagePixelColor ( int $x , int $y ) : ImagickPixel

Returns the color of the specified pixel.

Список параметров

x

The x-coordinate of the pixel

y

The y-coordinate of the pixel

Возвращаемые значения

Returns an ImagickPixel instance for the color at the coordinates given.

Ошибки

Вызывает ImagickException при ошибке.


Returns the named image profile

  • « Imagick::getImagePixelColor
  • Imagick::getImageProfiles »
  • PHP Manual
  • Imagick
  • Returns the named image profile

Imagick::getImageProfile

(PECL imagick 2.0.0)

Imagick::getImageProfile — Returns the named image profile

Описание

Imagick::getImageProfile ( string $name ) : string

Returns the named image profile.

Список параметров

name

The name of the profile to return.

Возвращаемые значения

Returns a string containing the image profile.

Ошибки

Вызывает ImagickException при ошибке.


Returns the image profiles

  • « Imagick::getImageProfile
  • Imagick::getImageProperties »
  • PHP Manual
  • Imagick
  • Returns the image profiles

Imagick::getImageProfiles

(PECL imagick 2.0.0)

Imagick::getImageProfiles — Returns the image profiles

Описание

Imagick::getImageProfiles ([ string $pattern = "*" [, bool $include_values = TRUE ]] ) : array

Returns all associated profiles that match the pattern. If FALSE is passed as second parameter only the profile names are returned. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

pattern

The pattern for profile names.

include_values

Whether to return only profile names. If FALSE then only profile names will be returned.

Возвращаемые значения

Returns an array containing the image profiles or profile names.


Возвращает свойства изображения

  • « Imagick::getImageProfiles
  • Imagick::getImageProperty »
  • PHP Manual
  • Imagick
  • Возвращает свойства изображения

Imagick::getImageProperties

(PECL imagick 2.0.0)

Imagick::getImageProperties — Возвращает свойства изображения

Описание

Imagick::getImageProperties ([ string $pattern = "*" [, bool $include_values = TRUE ]] ) : array

Возвращает все свойства, удовлетворяющие шаблону. Если в качестве второго параметра передано FALSE, то возвращаются только названия свойств. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

pattern

Шаблон для поиска свойств.

include_values

Вернуть только имена свойств. Если передано FALSE, то возвращаются только имена свойств.

Возвращаемые значения

Возвращает массив, содержащий свойства изображения или их имена.

Примеры

Пример #1 Использование Imagick::getImageProperties():

Пример извлечения EXIF-информации.

<?php

/* Создание объекта */
$im = new imagick("/path/to/example.jpg");

/* Получение EXIF-информации */
$exifArray = $im->getImageProperties("exif:*");

/* Цикл по EXIF-свойствам */
foreach ($exifArray as $name => $property)
{
    echo "{$name} => {$property}<br />\n";
}

?>


Returns the named image property

  • « Imagick::getImageProperties
  • Imagick::getImageRedPrimary »
  • PHP Manual
  • Imagick
  • Returns the named image property

Imagick::getImageProperty

(PECL imagick 2.0.0)

Imagick::getImageProperty — Returns the named image property

Описание

Imagick::getImageProperty ( string $name ) : string

Returns the named image property. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или старше.

Список параметров

name

name of the property (for example Exif:DateTime)

Примеры

Пример #1 Using Imagick::getImageProperty():

Setting and getting image property

<?php
$image = new Imagick();
$image->newImage(300, 200, "black");

$image->setImageProperty('Exif:Make', 'Imagick');
echo $image->getImageProperty('Exif:Make');
?>

Смотрите также

  • Imagick::setImageProperty() - Sets an image property

Возвращаемые значения

Returns a string containing the image property, false if a property with the given name does not exist.


Returns the chromaticity red primary point

  • « Imagick::getImageProperty
  • Imagick::getImageRegion »
  • PHP Manual
  • Imagick
  • Returns the chromaticity red primary point

Imagick::getImageRedPrimary

(PECL imagick 2.0.0)

Imagick::getImageRedPrimary — Returns the chromaticity red primary point

Описание

Imagick::getImageRedPrimary ( void ) : array

Returns the chromaticity red primary point as an array with the keys "x" and "y".

Возвращаемые значения

Returns the chromaticity red primary point as an array with the keys "x" and "y". Вызывает ImagickException при ошибке.

Ошибки

Вызывает ImagickException при ошибке.


Extracts a region of the image

  • « Imagick::getImageRedPrimary
  • Imagick::getImageRenderingIntent »
  • PHP Manual
  • Imagick
  • Extracts a region of the image

Imagick::getImageRegion

(PECL imagick 2.0.0)

Imagick::getImageRegion — Extracts a region of the image

Описание

Imagick::getImageRegion ( int $width , int $height , int $x , int $y ) : Imagick

Extracts a region of the image and returns it as a new Imagick object.

Список параметров

width

The width of the extracted region.

height

The height of the extracted region.

x

X-coordinate of the top-left corner of the extracted region.

y

Y-coordinate of the top-left corner of the extracted region.

Возвращаемые значения

Extracts a region of the image and returns it as a new wand.

Ошибки

Вызывает ImagickException при ошибке.


Gets the image rendering intent

  • « Imagick::getImageRegion
  • Imagick::getImageResolution »
  • PHP Manual
  • Imagick
  • Gets the image rendering intent

Imagick::getImageRenderingIntent

(PECL imagick 2.0.0)

Imagick::getImageRenderingIntent — Gets the image rendering intent

Описание

Imagick::getImageRenderingIntent ( void ) : int

Gets the image rendering intent.

Возвращаемые значения

Returns the image rendering intent.

Ошибки

Вызывает ImagickException при ошибке.


Gets the image X and Y resolution

  • « Imagick::getImageRenderingIntent
  • Imagick::getImagesBlob »
  • PHP Manual
  • Imagick
  • Gets the image X and Y resolution

Imagick::getImageResolution

(PECL imagick 2.0.0)

Imagick::getImageResolution — Gets the image X and Y resolution

Описание

Imagick::getImageResolution ( void ) : array

Gets the image X and Y resolution.

Возвращаемые значения

Returns the resolution as an array.

Ошибки

Вызывает ImagickException при ошибке.


Returns all image sequences as a blob

  • « Imagick::getImageResolution
  • Imagick::getImageScene »
  • PHP Manual
  • Imagick
  • Returns all image sequences as a blob

Imagick::getImagesBlob

(PECL imagick 2.0.0)

Imagick::getImagesBlob — Returns all image sequences as a blob

Описание

Imagick::getImagesBlob ( void ) : string

Implements direct to memory image formats. It returns all image sequences as a string. The format of the image determines the format of the returned blob (GIF, JPEG, PNG, etc.). To return a different image format, use Imagick::setImageFormat().

Возвращаемые значения

Returns a string containing the images. On failure, throws ImagickException.


Gets the image scene

  • « Imagick::getImagesBlob
  • Imagick::getImageSignature »
  • PHP Manual
  • Imagick
  • Gets the image scene

Imagick::getImageScene

(PECL imagick 2.0.0)

Imagick::getImageScene — Gets the image scene

Описание

Imagick::getImageScene ( void ) : int

Gets the image scene.

Возвращаемые значения

Returns the image scene.

Ошибки

Вызывает ImagickException при ошибке.


Generates an SHA-256 message digest

  • « Imagick::getImageScene
  • Imagick::getImageSize »
  • PHP Manual
  • Imagick
  • Generates an SHA-256 message digest

Imagick::getImageSignature

(PECL imagick 2.0.0)

Imagick::getImageSignature — Generates an SHA-256 message digest

Описание

Imagick::getImageSignature ( void ) : string

Generates an SHA-256 message digest for the image pixel stream.

Возвращаемые значения

Returns a string containing the SHA-256 hash of the file.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает размер изображения в байтах

  • « Imagick::getImageSignature
  • Imagick::getImageTicksPerSecond »
  • PHP Manual
  • Imagick
  • Возвращает размер изображения в байтах

Imagick::getImageSize

(PECL imagick 2.0.0)

Imagick::getImageSize — Возвращает размер изображения в байтах

Описание

Imagick::getImageSize ( void ) : int

Возвращает размер изображения в байтах. Этот метод устарел и следует использовать Imagick::getImageLength().

Возвращаемые значения

Возвращает целое число, содержащее текущий размер изображения.


Gets the image ticks-per-second

  • « Imagick::getImageSize
  • Imagick::getImageTotalInkDensity »
  • PHP Manual
  • Imagick
  • Gets the image ticks-per-second

Imagick::getImageTicksPerSecond

(PECL imagick 2.0.0)

Imagick::getImageTicksPerSecond — Gets the image ticks-per-second

Описание

Imagick::getImageTicksPerSecond ( void ) : int

Gets the image ticks-per-second.

Возвращаемые значения

Returns the image ticks-per-second.

Ошибки

Вызывает ImagickException при ошибке.


Gets the image total ink density

  • « Imagick::getImageTicksPerSecond
  • Imagick::getImageType »
  • PHP Manual
  • Imagick
  • Gets the image total ink density

Imagick::getImageTotalInkDensity

(PECL imagick 2.0.0)

Imagick::getImageTotalInkDensity — Gets the image total ink density

Описание

Imagick::getImageTotalInkDensity ( void ) : float

Gets the image total ink density.

Возвращаемые значения

Returns the image total ink density of the image. Вызывает ImagickException при ошибке.


Возвращает возможный тип изображения

  • « Imagick::getImageTotalInkDensity
  • Imagick::getImageUnits »
  • PHP Manual
  • Imagick
  • Возвращает возможный тип изображения

Imagick::getImageType

(PECL imagick 0.9.10-0.9.9)

Imagick::getImageType — Возвращает возможный тип изображения

Описание

Imagick::getImageType ( void ) : int

Получение возможного типа изображения.

Возвращаемые значения

Возвращает возможный тип изображения.

  • imagick::IMGTYPE_UNDEFINED
  • imagick::IMGTYPE_BILEVEL
  • imagick::IMGTYPE_GRAYSCALE
  • imagick::IMGTYPE_GRAYSCALEMATTE
  • imagick::IMGTYPE_PALETTE
  • imagick::IMGTYPE_PALETTEMATTE
  • imagick::IMGTYPE_TRUECOLOR
  • imagick::IMGTYPE_TRUECOLORMATTE
  • imagick::IMGTYPE_COLORSEPARATION
  • imagick::IMGTYPE_COLORSEPARATIONMATTE
  • imagick::IMGTYPE_OPTIMIZE

Ошибки

Вызывает ImagickException при ошибке.


Gets the image units of resolution

  • « Imagick::getImageType
  • Imagick::getImageVirtualPixelMethod »
  • PHP Manual
  • Imagick
  • Gets the image units of resolution

Imagick::getImageUnits

(PECL imagick 2.0.0)

Imagick::getImageUnits — Gets the image units of resolution

Описание

Imagick::getImageUnits ( void ) : int

Gets the image units of resolution.

Возвращаемые значения

Returns the image units of resolution.

Ошибки

Вызывает ImagickException при ошибке.


Returns the virtual pixel method

  • « Imagick::getImageUnits
  • Imagick::getImageWhitePoint »
  • PHP Manual
  • Imagick
  • Returns the virtual pixel method

Imagick::getImageVirtualPixelMethod

(PECL imagick 2.0.0)

Imagick::getImageVirtualPixelMethod — Returns the virtual pixel method

Описание

Imagick::getImageVirtualPixelMethod ( void ) : int

Returns the virtual pixel method for the specified image.

Возвращаемые значения

Returns the virtual pixel method on success.

Ошибки

Вызывает ImagickException при ошибке.


Returns the chromaticity white point

  • « Imagick::getImageVirtualPixelMethod
  • Imagick::getImageWidth »
  • PHP Manual
  • Imagick
  • Returns the chromaticity white point

Imagick::getImageWhitePoint

(PECL imagick 2.0.0)

Imagick::getImageWhitePoint — Returns the chromaticity white point

Описание

Imagick::getImageWhitePoint ( void ) : array

Returns the chromaticity white point as an associative array with the keys "x" and "y".

Возвращаемые значения

Returns the chromaticity white point as an associative array with the keys "x" and "y".

Ошибки

Вызывает ImagickException при ошибке.


Возвращает ширину изображения

  • « Imagick::getImageWhitePoint
  • Imagick::getInterlaceScheme »
  • PHP Manual
  • Imagick
  • Возвращает ширину изображения

Imagick::getImageWidth

(PECL imagick 2.0.0)

Imagick::getImageWidth — Возвращает ширину изображения

Описание

Imagick::getImageWidth ( void ) : int

Возвращает ширину изображения.

Возвращаемые значения

Возвращает ширину изображения в пикселях.

Ошибки

Вызывает ImagickException при ошибке.


Gets the object interlace scheme

  • « Imagick::getImageWidth
  • Imagick::getIteratorIndex »
  • PHP Manual
  • Imagick
  • Gets the object interlace scheme

Imagick::getInterlaceScheme

(PECL imagick 2.0.0)

Imagick::getInterlaceScheme — Gets the object interlace scheme

Описание

Imagick::getInterlaceScheme ( void ) : int

Gets the object interlace scheme.

Возвращаемые значения

Gets the wand interlace scheme.

Ошибки

Вызывает ImagickException при ошибке.


Gets the index of the current active image

  • « Imagick::getInterlaceScheme
  • Imagick::getNumberImages »
  • PHP Manual
  • Imagick
  • Gets the index of the current active image

Imagick::getIteratorIndex

(PECL imagick 2.0.0)

Imagick::getIteratorIndex — Gets the index of the current active image

Описание

Imagick::getIteratorIndex ( void ) : int

Returns the index of the current active image within the Imagick object. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Возвращаемые значения

Returns an integer containing the index of the image in the stack.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Using Imagick::getIteratorIndex():

Create images, set and get the iterator index

<?php
$im = new Imagick();
$im->newImage(100, 100, new ImagickPixel("red"));
$im->newImage(100, 100, new ImagickPixel("green"));
$im->newImage(100, 100, new ImagickPixel("blue"));

$im->setIteratorIndex(1);
echo $im->getIteratorIndex();
?>

Смотрите также

  • Imagick::setIteratorIndex() - Set the iterator position
  • Imagick::getImageIndex() - Gets the index of the current active image
  • Imagick::setImageIndex() - Set the iterator position


Returns the number of images in the object

  • « Imagick::getIteratorIndex
  • Imagick::getOption »
  • PHP Manual
  • Imagick
  • Returns the number of images in the object

Imagick::getNumberImages

(PECL imagick 2.0.0)

Imagick::getNumberImages — Returns the number of images in the object

Описание

Imagick::getNumberImages ( void ) : int

Returns the number of images associated with Imagick object.

Возвращаемые значения

Returns the number of images associated with Imagick object.

Ошибки

Вызывает ImagickException при ошибке.


Returns a value associated with the specified key

  • « Imagick::getNumberImages
  • Imagick::getPackageName »
  • PHP Manual
  • Imagick
  • Returns a value associated with the specified key

Imagick::getOption

(PECL imagick 2.0.0)

Imagick::getOption — Returns a value associated with the specified key

Описание

Imagick::getOption ( string $key ) : string

Returns a value associated within the object for the specified key.

Список параметров

key

The name of the option

Возвращаемые значения

Returns a value associated with a wand and the specified key.

Ошибки

Вызывает ImagickException при ошибке.


Returns the ImageMagick package name

  • « Imagick::getOption
  • Imagick::getPage »
  • PHP Manual
  • Imagick
  • Returns the ImageMagick package name

Imagick::getPackageName

(PECL imagick 2.0.0)

Imagick::getPackageName — Returns the ImageMagick package name

Описание

Imagick::getPackageName ( void ) : string

Returns the ImageMagick package name.

Возвращаемые значения

Returns the ImageMagick package name as a string.

Ошибки

Вызывает ImagickException при ошибке.


Returns the page geometry

  • « Imagick::getPackageName
  • Imagick::getPixelIterator »
  • PHP Manual
  • Imagick
  • Returns the page geometry

Imagick::getPage

(PECL imagick 2.0.0)

Imagick::getPage — Returns the page geometry

Описание

Imagick::getPage ( void ) : array

Returns the page geometry associated with the Imagick object in an associative array with the keys "width", "height", "x", and "y".

Возвращаемые значения

Returns the page geometry associated with the Imagick object in an associative array with the keys "width", "height", "x", and "y", throwing ImagickException on error.


Returns a MagickPixelIterator

  • « Imagick::getPage
  • Imagick::getPixelRegionIterator »
  • PHP Manual
  • Imagick
  • Returns a MagickPixelIterator

Imagick::getPixelIterator

(PECL imagick 2.0.0)

Imagick::getPixelIterator — Returns a MagickPixelIterator

Описание

Imagick::getPixelIterator ( void ) : ImagickPixelIterator

Returns a MagickPixelIterator.

Возвращаемые значения

Returns an ImagickPixelIterator on success.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::getPixelIterator()

<?php
function getPixelIterator($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imageIterator = $imagick->getPixelIterator();

    foreach ($imageIterator as $row => $pixels) { /* Loop through pixel rows */
        foreach ($pixels as $column => $pixel) { /* Loop through the pixels in the row (columns) */
            /** @var $pixel \ImagickPixel */
            if ($column % 2) {
                $pixel->setColor("rgba(0, 0, 0, 0)"); /* Paint every second pixel black*/
            }
        }
        $imageIterator->syncIterator(); /* Sync the iterator, this is important to do on each iteration */
    }

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Возвращает объект ImagickPixelIterator для секции изображения

  • « Imagick::getPixelIterator
  • Imagick::getPointSize »
  • PHP Manual
  • Imagick
  • Возвращает объект ImagickPixelIterator для секции изображения

Imagick::getPixelRegionIterator

(PECL imagick 2.0.0)

Imagick::getPixelRegionIterator — Возвращает объект ImagickPixelIterator для секции изображения

Описание

Imagick::getPixelRegionIterator ( int $x , int $y , int $columns , int $rows ) : ImagickPixelIterator

Возвращает объект ImagickPixelIterator для секции изображения.

Список параметров

x

Координата области X.

y

Координата области Y.

columns

Ширина области.

rows

Высота области.

Возвращаемые значения

Возвращает объект ImagickPixelIterator для секции изображения.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Пример использования функции Imagick::getPixelRegionIterator()

Пробегает по пикселям вверху слева изображения и заменяет их на черные.

<?php
$im = new Imagick(realpath("./testImage.png"));
$areaIterator = $im->getPixelRegionIterator(0, 0, 10, 10);

foreach ($areaIterator as $rowIterator) {
    foreach ($rowIterator as $pixel) {
        // Красит каждый пиксель черным
        $pixel->setColor("rgba(0, 0, 0, 0)");
    }
    $areaIterator->syncIterator();
}
$im->writeImage("./output.png");
?>


Возвращает размер точки

  • « Imagick::getPixelRegionIterator
  • Imagick::getQuantum »
  • PHP Manual
  • Imagick
  • Возвращает размер точки

Imagick::getPointSize

(Информация о версии неизвестна, возможно, только в Git)

Imagick::getPointSize — Возвращает размер точки

Описание

Imagick::getPointSize ( void ) : float

Возвращает значение размера точки объекта. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или старше.

Возвращаемые значения

Возвращает float содержащее размер точки.

Смотрите также

  • Imagick::setPointSize() - Sets point size


Description

  • « Imagick::getPointSize
  • Imagick::getQuantumDepth »
  • PHP Manual
  • Imagick
  • Description

Imagick::getQuantum

(Информация о версии неизвестна, возможно, только в Git)

Imagick::getQuantum — Description

Описание

public static Imagick::getQuantum ( void ) : int

Returns the ImageMagick quantum range as an integer.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Возвращает величину глубины

  • « Imagick::getQuantum
  • Imagick::getQuantumRange »
  • PHP Manual
  • Imagick
  • Возвращает величину глубины

Imagick::getQuantumDepth

(PECL imagick 2.0.0)

Imagick::getQuantumDepth — Возвращает величину глубины

Описание

Imagick::getQuantumDepth ( void ) : array

Возвращает величину глубины объекта Imagick в виде строки.

Возвращаемые значения

Возвращает величину глубины объекта Imagick в виде строки.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает величину размера спектра Imagick

  • « Imagick::getQuantumDepth
  • Imagick::getRegistry »
  • PHP Manual
  • Imagick
  • Возвращает величину размера спектра Imagick

Imagick::getQuantumRange

(PECL imagick 2.0.0)

Imagick::getQuantumRange — Возвращает величину размера спектра Imagick

Описание

Imagick::getQuantumRange ( void ) : array

Возвращает величину размера спектра для объекта Imagick.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий размер спектра как целое integer ("quantumRangeLong") и как строку string ("quantumRangeString").

Ошибки

Вызывает ImagickException при ошибке.


Description

  • « Imagick::getQuantumRange
  • Imagick::getReleaseDate »
  • PHP Manual
  • Imagick
  • Description

Imagick::getRegistry

(Информация о версии неизвестна, возможно, только в Git)

Imagick::getRegistry — Description

Описание

public static Imagick::getRegistry ( string $key ) : string

Get the StringRegistry entry for the named key or false if not set.

Список параметров

key

The entry to get.

Возвращаемые значения


Возвращает дату релиза ImageMagick

  • « Imagick::getRegistry
  • Imagick::getResource »
  • PHP Manual
  • Imagick
  • Возвращает дату релиза ImageMagick

Imagick::getReleaseDate

(PECL imagick 2.0.0)

Imagick::getReleaseDate — Возвращает дату релиза ImageMagick

Описание

Imagick::getReleaseDate ( void ) : string

Возвращает дату релиза ImageMagick в виде строки.

Возвращаемые значения

Возвращает дату релиза ImageMagick в виде строки.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает размер используемой памяти указанного ресурса

  • « Imagick::getReleaseDate
  • Imagick::getResourceLimit »
  • PHP Manual
  • Imagick
  • Возвращает размер используемой памяти указанного ресурса

Imagick::getResource

(PECL imagick 2.0.0)

Imagick::getResource — Возвращает размер используемой памяти указанного ресурса

Описание

Imagick::getResource ( int $type ) : int

Возвращает размер используемой памяти указанного ресурса в мегабайтах.

Список параметров

type

Смотрите список констант типов ресурсов.

Возвращаемые значения

Возвращает размер используемой памяти указанного ресурса в мегабайтах.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает заданный лимит ресурсов

  • « Imagick::getResource
  • Imagick::getSamplingFactors »
  • PHP Manual
  • Imagick
  • Возвращает заданный лимит ресурсов

Imagick::getResourceLimit

(PECL imagick 2.0.0)

Imagick::getResourceLimit — Возвращает заданный лимит ресурсов

Описание

Imagick::getResourceLimit ( int $type ) : int

Возвращает заданный лимит ресурсов.

Список параметров

type

Одна из констант типов ресурсов. Блок (unit) зависит от типа ограниченного ресурса.

Возвращаемые значения

Возвращает заданный лимит ресурсов в мегабайтах.

Ошибки

Вызывает ImagickException при ошибке.

Смотрите также

  • Imagick::setResourceLimit() - Sets the limit for a particular resource


Возвращает горизонтальный и вертикальный фактор выборки

  • « Imagick::getResourceLimit
  • Imagick::getSize »
  • PHP Manual
  • Imagick
  • Возвращает горизонтальный и вертикальный фактор выборки

Imagick::getSamplingFactors

(PECL imagick 2.0.0)

Imagick::getSamplingFactors — Возвращает горизонтальный и вертикальный фактор выборки

Описание

Imagick::getSamplingFactors ( void ) : array

Возвращает горизонтальный и вертикальный фактор выборки.

Возвращаемые значения

Возвращает ассоциативный массив с горизонтальным и вертикальным фактором выборки изображения.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает размер, связанный с объектом Imagick

  • « Imagick::getSamplingFactors
  • Imagick::getSizeOffset »
  • PHP Manual
  • Imagick
  • Возвращает размер, связанный с объектом Imagick

Imagick::getSize

(PECL imagick 2.0.0)

Imagick::getSize — Возвращает размер, связанный с объектом Imagick

Описание

Imagick::getSize ( void ) : array

Получает размер в пикселях объекта Imagick, предварительно заданный с помощью функции Imagick::setSize().

Замечание:

Этот метод всего лишь возвращает размер, установленный Imagick::setSize(). Если вам необходимо получить реальные размеры изображения, используйте функции Imagick::getImageWidth() и Imagick::getImageHeight().

Возвращаемые значения

Возвращает размер, связанный с объектом Imagick в виде массива с ключами "columns" (столбцы) и "rows" (строки).

Примеры

Пример #1 Получение размера сырого изображения RGB, установленные в 200x400, после масштабирования до 400x800

<?php
//Устанавливаем размер и загружаем изображение
$img = new Imagick();
$img->setSize(200, 400);
$img->readImage("image.rgb");

$img->scaleImage(400, 800);

$size = $img->getSize();
print_r($size);

echo "$img->getImageWidth()."x".$img->getImageHeight();
?>

Результат выполнения данного примера:

Array
(
    [columns] => 200
    [rows] => 400
)
400x800


Возвращает размер смещения

  • « Imagick::getSize
  • Imagick::getVersion »
  • PHP Manual
  • Imagick
  • Возвращает размер смещения

Imagick::getSizeOffset

(PECL imagick 2.0.0)

Imagick::getSizeOffset — Возвращает размер смещения

Описание

Imagick::getSizeOffset ( void ) : int

Возвращает размер смещения связанный с объектом Imagick. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Возвращаемые значения

Возвращает размер смещения связанный с объектом Imagick.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает версию API ImageMagick

  • « Imagick::getSizeOffset
  • Imagick::haldClutImage »
  • PHP Manual
  • Imagick
  • Возвращает версию API ImageMagick

Imagick::getVersion

(PECL imagick 2.0.0)

Imagick::getVersion — Возвращает версию API ImageMagick

Описание

Imagick::getVersion ( void ) : array

Возвращает версию API ImageMagick как строку и число.

Возвращаемые значения

Возвращает версию API ImageMagick как строку и число.

Ошибки

Вызывает ImagickException при ошибке.


Replaces colors in the image

  • « Imagick::getVersion
  • Imagick::hasNextImage »
  • PHP Manual
  • Imagick
  • Replaces colors in the image

Imagick::haldClutImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::haldClutImage — Replaces colors in the image

Описание

public Imagick::haldClutImage ( Imagick $clut [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Replaces colors in the image using a Hald lookup table. Hald images can be created using HALD color coder.

Список параметров

clut

Imagick object containing the Hald lookup image.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::haldClutImage()

<?php
function haldClutImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagickPalette = new \Imagick(realpath("images/hald/hald_8.png"));
    $imagickPalette->sepiatoneImage(55);
    $imagick->haldClutImage($imagickPalette);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Checks if the object has more images

  • « Imagick::haldClutImage
  • Imagick::hasPreviousImage »
  • PHP Manual
  • Imagick
  • Checks if the object has more images

Imagick::hasNextImage

(PECL imagick 2.0.0)

Imagick::hasNextImage — Checks if the object has more images

Описание

Imagick::hasNextImage ( void ) : bool

Returns TRUE if the object has more images when traversing the list in the forward direction.

Возвращаемые значения

Returns TRUE if the object has more images when traversing the list in the forward direction, returns FALSE if there are none.


Checks if the object has a previous image

  • « Imagick::hasNextImage
  • Imagick::identifyFormat »
  • PHP Manual
  • Imagick
  • Checks if the object has a previous image

Imagick::hasPreviousImage

(PECL imagick 2.0.0)

Imagick::hasPreviousImage — Checks if the object has a previous image

Описание

Imagick::hasPreviousImage ( void ) : bool

Returns TRUE if the object has more images when traversing the list in the reverse direction

Возвращаемые значения

Returns TRUE if the object has more images when traversing the list in the reverse direction, returns FALSE if there are none.


Description

  • « Imagick::hasPreviousImage
  • Imagick::identifyImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::identifyFormat

(Информация о версии неизвестна, возможно, только в Git)

Imagick::identifyFormat — Description

Описание

public Imagick::identifyFormat ( string $embedText ) : string

Replaces any embedded formatting characters with the appropriate image property and returns the interpreted text. See http://www.imagemagick.org/script/escape.php for escape sequences.

Список параметров

embedText

A string containing formatting sequences e.g. "Trim box: %@ number of unique colors: %k".

Возвращаемые значения

Returns format или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Imagick::identifyFormat()

<?php
        $output = "Output of 'Trim box: %@ number of unique colors: %k' is: <br/>";
        $imagick = new \Imagick(realpath("./images/artifact/mask.png"));
        $output .= $imagick->identifyFormat("Trim box: %@ number of unique colors: %k");

?>


Определяет изображение и получает атрибуты

  • « Imagick::identifyFormat
  • Imagick::implodeImage »
  • PHP Manual
  • Imagick
  • Определяет изображение и получает атрибуты

Imagick::identifyImage

(PECL imagick 2.0.0)

Imagick::identifyImage — Определяет изображение и получает атрибуты

Описание

Imagick::identifyImage ([ bool $appendRawOutput = FALSE ] ) : array

Определяет изображение и возвращает его атрибуты в виде массива. Атрибуты изображения включают в себя ширину, высоту, размер и прочие.

Список параметров

appendRawOutput

Если TRUE, то в массив будет включен необработанный вывод.

Возвращаемые значения

Возвращает массив атрибутов. Атрибуты изображения включают в себя ширину, высоту, размер и прочие.

Пример #1 Пример результата

Array
(
    [imageName] => /some/path/image.jpg
    [format] => JPEG (Joint Photographic Experts Group JFIF format)
    [geometry] => Array
        (
            [width] => 90
            [height] => 90
        )

    [type] => TrueColor
    [colorSpace] => RGB
    [resolution] => Array
        (
            [x] => 300
            [y] => 300
        )

    [units] => PixelsPerInch
    [fileSize] => 1.88672kb
    [compression] => JPEG
    [signature] => 9a6dc8f604f97d0d691c0286176ddf992e188f0bebba98494b2146ee2d7118da
)

Ошибки

Вызывает ImagickException при ошибке.


Creates a new image as a copy

  • « Imagick::identifyImage
  • Imagick::importImagePixels »
  • PHP Manual
  • Imagick
  • Creates a new image as a copy

Imagick::implodeImage

(PECL imagick 2.0.0)

Imagick::implodeImage — Creates a new image as a copy

Описание

Imagick::implodeImage ( float $radius ) : bool

Creates a new image that is a copy of an existing one with the image pixels "imploded" by the specified percentage.

Список параметров

radius

The radius of the implode

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::implodeImage()

<?php
function implodeImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->implodeImage(0.0001);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();

}

?>


Imports image pixels

  • « Imagick::implodeImage
  • Imagick::inverseFourierTransformImage »
  • PHP Manual
  • Imagick
  • Imports image pixels

Imagick::importImagePixels

(Информация о версии неизвестна, возможно, только в Git)

Imagick::importImagePixels — Imports image pixels

Описание

public Imagick::importImagePixels ( int $x , int $y , int $width , int $height , string $map , int $storage , array $pixels ) : bool

Imports pixels from an array into an image. The map is usually 'RGB'. This method imposes the following constraints for the parameters: amount of pixels in the array must match width x height x length of the map. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.5 или старше.

Список параметров

x

The image x position

y

The image y position

width

The image width

height

The image height

map

Map of pixel ordering as a string. This can be for example RGB. The value can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent), O = opacity (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad.

storage

The pixel storage method. Refer to this list of pixel constants.

pixels

The array of pixels

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::importImagePixels() example

<?php

/* Generate array of pixels. 2000 pixels per color stripe */
$count = 2000 * 3;

$pixels =
   array_merge(array_pad(array(), $count, 0),
               array_pad(array(), $count, 255),
               array_pad(array(), $count, 0),
               array_pad(array(), $count, 255),
               array_pad(array(), $count, 0));

/* Width and height. The area is amount of pixels divided
   by three. Three comes from 'RGB', three values per pixel */
$width = $height = pow((count($pixels) / 3), 0.5);

/* Create empty image */
$im = new Imagick();
$im->newImage($width, $height, 'gray');

/* Import the pixels into image.
   width * height * strlen("RGB") must match count($pixels) */
$im->importImagePixels(0, 0, $width, $height, "RGB", Imagick::PIXEL_CHAR, $pixels);

/* output as jpeg image */
$im->setImageFormat('jpg');
header("Content-Type: image/jpg");
echo $im;

?>

Результатом выполнения данного примера будет что-то подобное:

Output of example : Imagick::importImagePixels()


Description

  • « Imagick::importImagePixels
  • Imagick::labelImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::inverseFourierTransformImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::inverseFourierTransformImage — Description

Описание

public Imagick::inverseFourierTransformImage ( Imagick $complement , bool $magnitude ) : bool

Implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

complement

The second image to combine with this one to form either the magnitude / phase or real / imaginary image pair.

magnitude

If true, combine as magnitude / phase pair otherwise a real / imaginary image pair.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Adds a label to an image

  • « Imagick::inverseFourierTransformImage
  • Imagick::levelImage »
  • PHP Manual
  • Imagick
  • Adds a label to an image

Imagick::labelImage

(PECL imagick 2.0.0)

Imagick::labelImage — Adds a label to an image

Описание

Imagick::labelImage ( string $label ) : bool

Adds a label to an image.

Список параметров

label

The label to add

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Adjusts the levels of an image

  • « Imagick::labelImage
  • Imagick::linearStretchImage »
  • PHP Manual
  • Imagick
  • Adjusts the levels of an image

Imagick::levelImage

(PECL imagick 2.0.0)

Imagick::levelImage — Adjusts the levels of an image

Описание

Imagick::levelImage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Adjusts the levels of an image by scaling the colors falling between specified white and black points to the full available quantum range. The parameters provided represent the black, mid, and white points. The black point specifies the darkest color in the image. Colors darker than the black point are set to zero. Mid point specifies a gamma correction to apply to the image. White point specifies the lightest color in the image. Colors brighter than the white point are set to the maximum quantum value.

Список параметров

blackPoint

The image black point

gamma

The gamma value

whitePoint

The image white point

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::levelImage()

<?php
function levelImage($blackPoint, $gamma, $whitePoint) {
    $imagick = new \Imagick();
    $imagick->newPseudoimage(500, 500, 'gradient:black-white');

    $imagick->setFormat('png');
    $quantum = $imagick->getQuantum();
    $imagick->levelImage($blackPoint / 100 , $gamma, $quantum * $whitePoint / 100);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Stretches with saturation the image intensity

  • « Imagick::levelImage
  • Imagick::liquidRescaleImage »
  • PHP Manual
  • Imagick
  • Stretches with saturation the image intensity

Imagick::linearStretchImage

(PECL imagick 2.0.0)

Imagick::linearStretchImage — Stretches with saturation the image intensity

Описание

Imagick::linearStretchImage ( float $blackPoint , float $whitePoint ) : bool

Stretches with saturation the image intensity.

Список параметров

blackPoint

The image black point

whitePoint

The image white point

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::linearStretchImage()

<?php
function linearStretchImage($imagePath, $blackThreshold, $whiteThreshold) {
    $imagick = new \Imagick(realpath($imagePath));
    $pixels = $imagick->getImageWidth() * $imagick->getImageHeight();
    $imagick->linearStretchImage($blackThreshold * $pixels, $whiteThreshold * $pixels);

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Animates an image or images

  • « Imagick::linearStretchImage
  • Imagick::listRegistry »
  • PHP Manual
  • Imagick
  • Animates an image or images

Imagick::liquidRescaleImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::liquidRescaleImage — Animates an image or images

Описание

Imagick::liquidRescaleImage ( int $width , int $height , float $delta_x , float $rigidity ) : bool

This method scales the images using liquid rescaling method. This method is an implementation of a technique called seam carving. In order for this method to work as expected ImageMagick must be compiled with liblqr support. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.9 или старше.

Список параметров

width

The width of the target size

height

The height of the target size

delta_x

How much the seam can traverse on x-axis. Passing 0 causes the seams to be straight.

rigidity

Introduces a bias for non-straight seams. This parameter is typically 0.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::resizeImage() - Scales an image


Description

  • « Imagick::liquidRescaleImage
  • Imagick::magnifyImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::listRegistry

(Информация о версии неизвестна, возможно, только в Git)

Imagick::listRegistry — Description

Описание

public static Imagick::listRegistry ( void ) : array

List all the registry settings. Returns an array of all the key/value pairs in the registry

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An array containing the key/values from the registry.


Scales an image proportionally 2x

  • « Imagick::listRegistry
  • Imagick::mapImage »
  • PHP Manual
  • Imagick
  • Scales an image proportionally 2x

Imagick::magnifyImage

(PECL imagick 2.0.0)

Imagick::magnifyImage — Scales an image proportionally 2x

Описание

Imagick::magnifyImage ( void ) : bool

Is a convenience method that scales an image proportionally to twice its original size.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::magnifyImage()

<?php
function magnifyImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->magnifyImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Replaces the colors of an image with the closest color from a reference image

  • « Imagick::magnifyImage
  • Imagick::matteFloodfillImage »
  • PHP Manual
  • Imagick
  • Replaces the colors of an image with the closest color from a reference image

Imagick::mapImage

(PECL imagick 2.0.0)

Imagick::mapImage — Replaces the colors of an image with the closest color from a reference image

Описание

Imagick::mapImage ( Imagick $map , bool $dither ) : bool

Список параметров

map

dither

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Changes the transparency value of a color

  • « Imagick::mapImage
  • Imagick::medianFilterImage »
  • PHP Manual
  • Imagick
  • Changes the transparency value of a color

Imagick::matteFloodfillImage

(PECL imagick 2.0.0)

Imagick::matteFloodfillImage — Changes the transparency value of a color

Описание

Imagick::matteFloodfillImage ( float $alpha , float $fuzz , mixed $bordercolor , int $x , int $y ) : bool

Changes the transparency value of any pixel that matches target and is an immediate neighbor. If the method FillToBorderMethod is specified, the transparency value is changed for any neighbor pixel that does not match the bordercolor member of image.

Список параметров

alpha

The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.

fuzz

The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same.

bordercolor

An ImagickPixel object or string representing the border color.

x

The starting x coordinate of the operation.

y

The starting y coordinate of the operation.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the third parameter. Previous versions allow only an ImagickPixel object.


Applies a digital filter

  • « Imagick::matteFloodfillImage
  • Imagick::mergeImageLayers »
  • PHP Manual
  • Imagick
  • Applies a digital filter

Imagick::medianFilterImage

(PECL imagick 2.0.0)

Imagick::medianFilterImage — Applies a digital filter

Описание

Imagick::medianFilterImage ( float $radius ) : bool

Applies a digital filter that improves the quality of a noisy image. Each pixel is replaced by the median in a set of neighboring pixels as defined by radius.

Список параметров

radius

The radius of the pixel neighborhood.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::medianFilterImage()

<?php
function medianFilterImage($radius, $imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    @$imagick->medianFilterImage($radius);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Merges image layers

  • « Imagick::medianFilterImage
  • Imagick::minifyImage »
  • PHP Manual
  • Imagick
  • Merges image layers

Imagick::mergeImageLayers

(PECL imagick 2.1.0)

Imagick::mergeImageLayers — Merges image layers

Описание

Imagick::mergeImageLayers ( int $layer_method ) : Imagick

Merges image layers into one. This method is useful when working with image formats that use multiple layers such as PSD. The merging is controlled using the layer_method which defines how the layers are merged. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или старше.

Список параметров

layer_method

One of the Imagick::LAYERMETHOD_* constants

Возвращаемые значения

Returns an Imagick object containing the merged image.

Ошибки

Вызывает ImagickException при ошибке.

Смотрите также

  • Imagick::flattenImages() - Merges a sequence of images

Примеры

Пример #1 Imagick::mergeImageLayers()

<?php
function mergeImageLayers($layerMethodType, $imagePath1, $imagePath2) {

    $imagick = new \Imagick(realpath($imagePath));

    $imagick2 = new \Imagick(realpath($imagePath2));
    $imagick->addImage($imagick2);
    $imagick->setImageFormat('png');

    $result = $imagick->mergeImageLayers($layerMethodType);
    header("Content-Type: image/png");
    echo $result->getImageBlob();
}

?>


Scales an image proportionally to half its size

  • « Imagick::mergeImageLayers
  • Imagick::modulateImage »
  • PHP Manual
  • Imagick
  • Scales an image proportionally to half its size

Imagick::minifyImage

(PECL imagick 2.0.0)

Imagick::minifyImage — Scales an image proportionally to half its size

Описание

Imagick::minifyImage ( void ) : bool

Is a convenience method that scales an image proportionally to one-half its original size

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Control the brightness, saturation, and hue

  • « Imagick::minifyImage
  • Imagick::montageImage »
  • PHP Manual
  • Imagick
  • Control the brightness, saturation, and hue

Imagick::modulateImage

(PECL imagick 2.0.0)

Imagick::modulateImage — Control the brightness, saturation, and hue

Описание

Imagick::modulateImage ( float $brightness , float $saturation , float $hue ) : bool

Lets you control the brightness, saturation, and hue of an image. Hue is the percentage of absolute rotation from the current position. For example 50 results in a counter-clockwise rotation of 90 degrees, 150 results in a clockwise rotation of 90 degrees, with 0 and 200 both resulting in a rotation of 180 degrees.

Список параметров

brightness

saturation

hue

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::modulateImage()

<?php
function modulateImage($imagePath, $hue, $brightness, $saturation) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->modulateImage($brightness, $saturation, $hue);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a composite image

  • « Imagick::modulateImage
  • Imagick::morphImages »
  • PHP Manual
  • Imagick
  • Creates a composite image

Imagick::montageImage

(PECL imagick 2.0.0)

Imagick::montageImage — Creates a composite image

Описание

Imagick::montageImage ( ImagickDraw $draw , string $tile_geometry , string $thumbnail_geometry , int $mode , string $frame ) : Imagick

Creates a composite image by combining several separate images. The images are tiled on the composite image with the name of the image optionally appearing just below the individual tile.

Список параметров

draw

The font name, size, and color are obtained from this object.

tile_geometry

The number of tiles per row and page (e.g. 6x4+0+0).

thumbnail_geometry

Preferred image size and border size of each thumbnail (e.g. 120x120+4+3>).

mode

Thumbnail framing mode, see Montage Mode constants.

frame

Surround the image with an ornamental border (e.g. 15x15+3+3). The frame color is that of the thumbnail's matte color.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Method morphs a set of images

  • « Imagick::montageImage
  • Imagick::morphology »
  • PHP Manual
  • Imagick
  • Method morphs a set of images

Imagick::morphImages

(PECL imagick 2.0.0)

Imagick::morphImages — Method morphs a set of images

Описание

Imagick::morphImages ( int $number_frames ) : Imagick

Method morphs a set of images. Both the image pixels and size are linearly interpolated to give the appearance of a meta-morphosis from one image to the next.

Список параметров

number_frames

The number of in-between images to generate.

Возвращаемые значения

This method returns a new Imagick object on success. Вызывает ImagickException при ошибке.


Description

  • « Imagick::morphImages
  • Imagick::mosaicImages »
  • PHP Manual
  • Imagick
  • Description

Imagick::morphology

(Информация о версии неизвестна, возможно, только в Git)

Imagick::morphology — Description

Описание

public Imagick::morphology ( int $morphologyMethod , int $iterations , ImagickKernel $ImagickKernel [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Applies a user supplied kernel to the image according to the given morphology method.

Список параметров

morphologyMethod

Which morphology method to use one of the \Imagick::MORPHOLOGY_* constants.

iterations

The number of iteration to apply the morphology function. A value of -1 means loop until no change found. How this is applied may depend on the morphology method. Typically this is a value of 1.

ImagickKernel

channel

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Convolve Imagick::morphology()

<?php
        $imagick = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_GAUSSIAN, "5,1");
        $imagick->morphology(\Imagick::MORPHOLOGY_CONVOLVE, 2, $kernel);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();

?>

Пример #2 Correlate Imagick::morphology()

<?php

        // Top-left pixel must be black
        // Bottom right pixel must be white
        // We don't care about the rest.

        $imagick = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromMatrix(self::$correlateMatrix, [2, 2]);
        $imagick->morphology(\Imagick::MORPHOLOGY_CORRELATE, 1, $kernel);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();

?>

Пример #3 Erode Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_ERODE, 2, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #4 Erode Intensity Imagick::morphology()

<?php
        $canvas = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "1");
        $canvas->morphology(\Imagick::MORPHOLOGY_ERODE_INTENSITY, 2, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #5 Dilate Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_DILATE, 4, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #6 Dilate intensity Imagick::morphology()

<?php
        $canvas = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "1");
        $canvas->morphology(\Imagick::MORPHOLOGY_DILATE_INTENSITY, 4, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #7 Distance with Chebyshev kernel Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_CHEBYSHEV, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #8 Distance with Manhattan kernel Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_MANHATTAN, "5");
        $canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #9 Distance with ocatagonal kernel Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGONAL, "5");
        $canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #10 Distance with Euclidean kernel Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_EUCLIDEAN, "4");
        $canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #11 Edge Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_EDGE, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #12 Open Imagick::morphology()

<?php
        // As a result you will see that 'Open' smoothed the outline, by rounding off any sharp points, and remove any parts that is smaller than the shape used. It will also disconnect or 'open' any thin bridges.
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
        $canvas->morphology(\Imagick::MORPHOLOGY_OPEN, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #13 Open intensity Imagick::morphology()

<?php
        // As a result you will see that 'Open' smoothed the outline, by rounding off any sharp points, and remove any parts that is smaller than the shape used. It will also disconnect or 'open' any thin bridges.

        $canvas = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
        $canvas->morphology(\Imagick::MORPHOLOGY_OPEN_INTENSITY, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #14 Close Imagick::morphology()

<?php
        //The basic use of the 'Close' method is to reduce or remove any 'holes' or 'gaps' about the size of the kernel 'Structure Element'. That is 'close' parts of the background that are about that size.
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
        $canvas->morphology(\Imagick::MORPHOLOGY_CLOSE, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #15 Close Intensity Imagick::morphology()

<?php
        //The basic use of the 'Close' method is to reduce or remove any 'holes' or 'gaps' about the size of the kernel 'Structure Element'. That is 'close' parts of the background that are about that size.
        $canvas = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
        $canvas->morphology(\Imagick::MORPHOLOGY_CLOSE_INTENSITY, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #16 Smooth Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_SMOOTH, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #17 Edge in Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_EDGE_IN, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #18 Edge out Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_EDGE_OUT, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #19 The 'TopHat' method, or more specifically 'White Top Hat', returns the pixels that were removed by a Opening of the shape, that is the pixels that were removed to round off the points, and the connecting bridged between shapes. Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "5");
        $canvas->morphology(\Imagick::MORPHOLOGY_TOP_HAT, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #20 The 'BottomHat' method, also known as 'Black TopHat' is the pixels that a Closing of the shape adds to the image. That is the pixels that were used to fill in the 'holes', 'gaps', and 'bridges'. Imagick::morphology()

<?php

        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "5");
        $canvas->morphology(\Imagick::MORPHOLOGY_BOTTOM_HAT, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #21 Hit and Miss Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        //This finds all the pixels with 3 pixels of the right edge
        $matrix = [[1, false, false, 0]];
        $kernel = \ImagickKernel::fromMatrix(
            $matrix,
            [0, 0]
        );
        $canvas->morphology(\Imagick::MORPHOLOGY_HIT_AND_MISS, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #22 Thinning Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $leftEdgeKernel = \ImagickKernel::fromMatrix([[0, 1]], [1, 0]);
        $rightEdgeKernel = \ImagickKernel::fromMatrix([[1, 0]], [0, 0]);
        $leftEdgeKernel->addKernel($rightEdgeKernel);

        $canvas->morphology(\Imagick::MORPHOLOGY_THINNING, 3, $leftEdgeKernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #23 Thicken Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $leftEdgeKernel = \ImagickKernel::fromMatrix([[0, 1]], [1, 0]);
        $rightEdgeKernel = \ImagickKernel::fromMatrix([[1, 0]], [0, 0]);
        $leftEdgeKernel->addKernel($rightEdgeKernel);

        $canvas->morphology(\Imagick::MORPHOLOGY_THICKEN, 3, $leftEdgeKernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #24 Thick to generate a convex hull Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $diamondKernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "1");
        $convexKernel =  \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_CONVEX_HULL, "");

        // The thicken morphology doesn't handle small gaps. We close them
        // with the close morphology.
        $canvas->morphology(\Imagick::MORPHOLOGY_CLOSE, 1, $diamondKernel);
        $canvas->morphology(\Imagick::MORPHOLOGY_THICKEN, -1, $convexKernel);
        $canvas->morphology(\Imagick::MORPHOLOGY_CLOSE, 1, $diamondKernel);

        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #25 Iterative morphology Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "2");
        $canvas->morphology(\Imagick::MORPHOLOGY_ITERATIVE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #26 Helper functon to get an image silhouette Imagick::morphology()

<?php
    private function getCharacterOutline() {

        $imagick = new \Imagick(realpath("./images/character.png"));
        $character = new \Imagick();
        $character->newPseudoImage(
            $imagick->getImageWidth(),
            $imagick->getImageHeight(),
            "canvas:white"
        );
        $canvas = new \Imagick();
        $canvas->newPseudoImage(
            $imagick->getImageWidth(),
            $imagick->getImageHeight(),
            "canvas:black"
        );

        $character->compositeimage(
            $imagick,
            \Imagick::COMPOSITE_COPYOPACITY,
            0, 0
        );
        $canvas->compositeimage(
            $character,
            \Imagick::COMPOSITE_ATOP,
            0, 0
        );
        $canvas->setFormat('png');

        return $canvas;
    }

?>


Forms a mosaic from images

  • « Imagick::morphology
  • Imagick::motionBlurImage »
  • PHP Manual
  • Imagick
  • Forms a mosaic from images

Imagick::mosaicImages

(PECL imagick 2.0.0)

Imagick::mosaicImages — Forms a mosaic from images

Описание

Imagick::mosaicImages ( void ) : Imagick

Inlays an image sequence to form a single coherent picture. It returns a wand with each image in the sequence composited at the location defined by the page offset of the image.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Simulates motion blur

  • « Imagick::mosaicImages
  • Imagick::negateImage »
  • PHP Manual
  • Imagick
  • Simulates motion blur

Imagick::motionBlurImage

(PECL imagick 2.0.0)

Imagick::motionBlurImage — Simulates motion blur

Описание

Imagick::motionBlurImage ( float $radius , float $sigma , float $angle [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Simulates motion blur. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and MotionBlurImage() selects a suitable radius for you. Angle gives the angle of the blurring motion.

Список параметров

radius

The radius of the Gaussian, in pixels, not counting the center pixel.

sigma

The standard deviation of the Gaussian, in pixels.

angle

Apply the effect along this angle.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants. The channel argument affects only if Imagick is compiled against ImageMagick version 6.4.4 or greater.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::motionBlurImage()

<?php
function motionBlurImage($imagePath, $radius, $sigma, $angle, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->motionBlurImage($radius, $sigma, $angle, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Negates the colors in the reference image

  • « Imagick::motionBlurImage
  • Imagick::newImage »
  • PHP Manual
  • Imagick
  • Negates the colors in the reference image

Imagick::negateImage

(PECL imagick 2.0.0)

Imagick::negateImage — Negates the colors in the reference image

Описание

Imagick::negateImage ( bool $gray [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Negates the colors in the reference image. The Grayscale option means that only grayscale values within the image are negated.

Список параметров

gray

Whether to only negate grayscale pixels within the image.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::negateImage()

<?php
function negateImage($imagePath, $grayOnly, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->negateImage($grayOnly, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a new image

  • « Imagick::negateImage
  • Imagick::newPseudoImage »
  • PHP Manual
  • Imagick
  • Creates a new image

Imagick::newImage

(PECL imagick 2.0.0)

Imagick::newImage — Creates a new image

Описание

Imagick::newImage ( int $cols , int $rows , mixed $background [, string $format ] ) : bool

Creates a new image and associates ImagickPixel value as background color

Список параметров

cols

Columns in the new image

rows

Rows in the new image

background

The background color used for this image

format

Image format. This parameter was added in Imagick version 2.0.1.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the third parameter. Previous versions allow only an ImagickPixel object.

Примеры

Пример #1 Using Imagick::newImage():

Create a new image and display it.

<?php

$image = new Imagick();
$image->newImage(100, 100, new ImagickPixel('red'));
$image->setImageFormat('png');

header('Content-type: image/png');
echo $image;

?>


Creates a new image

  • « Imagick::newImage
  • Imagick::nextImage »
  • PHP Manual
  • Imagick
  • Creates a new image

Imagick::newPseudoImage

(PECL imagick 2.0.0)

Imagick::newPseudoImage — Creates a new image

Описание

Imagick::newPseudoImage ( int $columns , int $rows , string $pseudoString ) : bool

Creates a new image using ImageMagick pseudo-formats.

Список параметров

columns

columns in the new image

rows

rows in the new image

pseudoString

string containing pseudo image definition.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::newPseudoImage()

<?php
function newPseudoImage($canvasType) {
    $imagick = new \Imagick();
    $imagick->newPseudoImage(300, 300, $canvasType);
    $imagick->setImageFormat("png");
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

//newPseudoImage('gradient:red-rgba(64, 255, 255, 0.5)');
//newPseudoImage("radial-gradient:red-blue");
newPseudoImage("plasma:fractal");

?>


Moves to the next image

  • « Imagick::newPseudoImage
  • Imagick::normalizeImage »
  • PHP Manual
  • Imagick
  • Moves to the next image

Imagick::nextImage

(PECL imagick 2.0.0)

Imagick::nextImage — Moves to the next image

Описание

Imagick::nextImage ( void ) : bool

Associates the next image in the image list with an Imagick object.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Enhances the contrast of a color image

  • « Imagick::nextImage
  • Imagick::oilPaintImage »
  • PHP Manual
  • Imagick
  • Enhances the contrast of a color image

Imagick::normalizeImage

(PECL imagick 2.0.0)

Imagick::normalizeImage — Enhances the contrast of a color image

Описание

Imagick::normalizeImage ([ int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available.

Список параметров

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::normalizeImage()

<?php
function normalizeImage($imagePath, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $original = clone $imagick;
    $original->cropimage($original->getImageWidth() / 2, $original->getImageHeight(), 0, 0);
    $imagick->normalizeImage($channel);
    $imagick->compositeimage($original, \Imagick::COMPOSITE_ATOP, 0, 0);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Simulates an oil painting

  • « Imagick::normalizeImage
  • Imagick::opaquePaintImage »
  • PHP Manual
  • Imagick
  • Simulates an oil painting

Imagick::oilPaintImage

(PECL imagick 2.0.0)

Imagick::oilPaintImage — Simulates an oil painting

Описание

Imagick::oilPaintImage ( float $radius ) : bool

Applies a special effect filter that simulates an oil painting. Each pixel is replaced by the most frequent color occurring in a circular region defined by radius.

Список параметров

radius

The radius of the circular neighborhood.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::oilPaintImage()

<?php
function oilPaintImage($imagePath, $radius) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->oilPaintImage($radius);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Changes the color value of any pixel that matches target

  • « Imagick::oilPaintImage
  • Imagick::optimizeImageLayers »
  • PHP Manual
  • Imagick
  • Changes the color value of any pixel that matches target

Imagick::opaquePaintImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::opaquePaintImage — Changes the color value of any pixel that matches target

Описание

Imagick::opaquePaintImage ( mixed $target , mixed $fill , float $fuzz , bool $invert [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Changes any pixel that matches color with the color defined by fill. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или старше.

Список параметров

target

ImagickPixel object or a string containing the color to change

fill

The replacement color

fuzz

Мера округления (fuzz). Для примера, установите значение fuzz в 10 и красный цвет с интенсивностью 100 и 102 будет интерпретироваться как один и тот же цвет.

invert

If TRUE paints any pixel that does not match the target color.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Removes repeated portions of images to optimize

  • « Imagick::opaquePaintImage
  • Imagick::orderedPosterizeImage »
  • PHP Manual
  • Imagick
  • Removes repeated portions of images to optimize

Imagick::optimizeImageLayers

(PECL imagick 2.0.0)

Imagick::optimizeImageLayers — Removes repeated portions of images to optimize

Описание

Imagick::optimizeImageLayers ( void ) : bool

Compares each image the GIF disposed forms of the previous image in the sequence. From this it attempts to select the smallest cropped image to replace each frame, while preserving the results of the animation. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Using Imagick::optimizeImageLayers()

Reading, optimizing and writing a GIF image

<?php
/* create new imagick object */
$im = new Imagick("test.gif");

/* optimize the image layers */
$im->optimizeImageLayers();

/* write the image back */
$im->writeImages("test_optimized.gif", true);
?>

Смотрите также

  • Imagick::compareImageLayers() - Returns the maximum bounding region between images
  • Imagick::writeImages() - Writes an image or image sequence
  • Imagick::writeImage() - Writes an image to the specified filename


Performs an ordered dither

  • « Imagick::optimizeImageLayers
  • Imagick::paintFloodfillImage »
  • PHP Manual
  • Imagick
  • Performs an ordered dither

Imagick::orderedPosterizeImage

(PECL imagick 2.2.2)

Imagick::orderedPosterizeImage — Performs an ordered dither

Описание

Imagick::orderedPosterizeImage ( string $threshold_map [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Performs an ordered dither based on a number of pre-defined dithering threshold maps, but over multiple intensity levels, which can be different for different channels, according to the input arguments. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.1 или старше.

Список параметров

threshold_map

A string containing the name of the threshold dither map to use

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::orderedPosterizeImage()

<?php
function orderedPosterizeImage($imagePath, $orderedPosterizeType) {
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->orderedPosterizeImage($orderedPosterizeType);
    $imagick->setImageFormat('png');

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

//orderedPosterizeImage($imagePath, 'o4x4,3,3');
//orderedPosterizeImage($imagePath, 'o8x8,6,6');
orderedPosterizeImage($imagePath, 'h8x8a');

?>


Changes the color value of any pixel that matches target

  • « Imagick::orderedPosterizeImage
  • Imagick::paintOpaqueImage »
  • PHP Manual
  • Imagick
  • Changes the color value of any pixel that matches target

Imagick::paintFloodfillImage

(PECL imagick 2.1.0)

Imagick::paintFloodfillImage — Changes the color value of any pixel that matches target

Описание

Imagick::paintFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Changes the color value of any pixel that matches target and is an immediate neighbor. As of ImageMagick 6.3.8 this method has been deprecated and Imagick::floodfillPaintImage() should be used instead.

Список параметров

fill

ImagickPixel object or a string containing the fill color

fuzz

The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.

bordercolor

ImagickPixel object or a string containing the border color

x

X start position of the floodfill

y

Y start position of the floodfill

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Change any pixel that matches color

  • « Imagick::paintFloodfillImage
  • Imagick::paintTransparentImage »
  • PHP Manual
  • Imagick
  • Change any pixel that matches color

Imagick::paintOpaqueImage

(PECL imagick 2.0.0)

Imagick::paintOpaqueImage — Change any pixel that matches color

Описание

Imagick::paintOpaqueImage ( mixed $target , mixed $fill , float $fuzz [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Changes any pixel that matches color with the color defined by fill.

Список параметров

target

Change this target color to the fill color within the image. An ImagickPixel object or a string representing the target color.

fill

An ImagickPixel object or a string representing the fill color.

fuzz

The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as first and second parameter. Previous versions allow only an ImagickPixel object.


Changes any pixel that matches color with the color defined by fill

  • « Imagick::paintOpaqueImage
  • Imagick::pingImage »
  • PHP Manual
  • Imagick
  • Changes any pixel that matches color with the color defined by fill

Imagick::paintTransparentImage

(PECL imagick 2.0.0)

Imagick::paintTransparentImage — Changes any pixel that matches color with the color defined by fill

Описание

Imagick::paintTransparentImage ( mixed $target , float $alpha , float $fuzz ) : bool

Changes any pixel that matches color with the color defined by fill.

Список параметров

target

Change this target color to specified opacity value within the image.

alpha

The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.

fuzz

The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.


Fetch basic attributes about the image

  • « Imagick::paintTransparentImage
  • Imagick::pingImageBlob »
  • PHP Manual
  • Imagick
  • Fetch basic attributes about the image

Imagick::pingImage

(PECL imagick 2.0.0)

Imagick::pingImage — Fetch basic attributes about the image

Описание

Imagick::pingImage ( string $filename ) : bool

This method can be used to query image width, height, size, and format without reading the whole image in to memory.

Список параметров

filename

The filename to read the information from.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Quickly fetch attributes

  • « Imagick::pingImage
  • Imagick::pingImageFile »
  • PHP Manual
  • Imagick
  • Quickly fetch attributes

Imagick::pingImageBlob

(PECL imagick 2.0.0)

Imagick::pingImageBlob — Quickly fetch attributes

Описание

Imagick::pingImageBlob ( string $image ) : bool

This method can be used to query image width, height, size, and format without reading the whole image to memory. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

image

A string containing the image.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Using Imagick::pingImageBlob()

Pinging an image from a string

<?php
/* read image contents */
$image = file_get_contents("test.jpg");

/* create new imagick object */
$im = new Imagick();

/* pass the string to the imagick object */
$im->pingImageBlob($image);

/* output image width and height */
echo $im->getImageWidth() . 'x' . $im->getImageHeight();
?>

Смотрите также

  • Imagick::pingImage() - Fetch basic attributes about the image
  • Imagick::pingImageFile() - Get basic image attributes in a lightweight manner
  • Imagick::readImage() - Reads image from filename
  • Imagick::readImageBlob() - Reads image from a binary string
  • Imagick::readImageFile() - Reads image from open filehandle


Get basic image attributes in a lightweight manner

  • « Imagick::pingImageBlob
  • Imagick::polaroidImage »
  • PHP Manual
  • Imagick
  • Get basic image attributes in a lightweight manner

Imagick::pingImageFile

(PECL imagick 2.0.0)

Imagick::pingImageFile — Get basic image attributes in a lightweight manner

Описание

Imagick::pingImageFile ( resource $filehandle [, string $fileName ] ) : bool

This method can be used to query image width, height, size, and format without reading the whole image to memory. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

filehandle

An open filehandle to the image.

fileName

Optional filename for this image.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Using Imagick::pingImageFile()

Opening a remote location

<?php
/* fopen a remote location */
$fp = fopen("http://example.com/test.jpg");

/* create new imagick object */
$im = new Imagick();

/* pass the handle to imagick */
$im->pingImageFile($fp);
?>

Смотрите также

  • Imagick::pingImage() - Fetch basic attributes about the image
  • Imagick::pingImageBlob() - Quickly fetch attributes
  • Imagick::readImage() - Reads image from filename
  • Imagick::readImageBlob() - Reads image from a binary string
  • Imagick::readImageFile() - Reads image from open filehandle


Simulates a Polaroid picture

  • « Imagick::pingImageFile
  • Imagick::posterizeImage »
  • PHP Manual
  • Imagick
  • Simulates a Polaroid picture

Imagick::polaroidImage

(PECL imagick 2.0.0)

Imagick::polaroidImage — Simulates a Polaroid picture

Описание

Imagick::polaroidImage ( ImagickDraw $properties , float $angle ) : bool

Simulates a Polaroid picture. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или старше.

Список параметров

properties

The polaroid properties

angle

The polaroid angle

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 A Imagick::polaroidImage() example

An example of using Imagick::polaroidImage()

<?php
/* Create the object */
$image = new Imagick('source.png');

/* Set the opacity */
$image->polaroidImage(new ImagickDraw(), 25);

/* output the image */
header('Content-type: image/png');
echo $image;

?>


Reduces the image to a limited number of color level

  • « Imagick::polaroidImage
  • Imagick::previewImages »
  • PHP Manual
  • Imagick
  • Reduces the image to a limited number of color level

Imagick::posterizeImage

(PECL imagick 2.0.0)

Imagick::posterizeImage — Reduces the image to a limited number of color level

Описание

Imagick::posterizeImage ( int $levels , bool $dither ) : bool

Reduces the image to a limited number of color level.

Список параметров

levels

dither

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::posterizeImage()

<?php
function posterizeImage($imagePath, $posterizeType, $numberLevels) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->posterizeImage($numberLevels, $posterizeType);
    $imagick->setImageFormat('png');
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

posterizeImage($imagePath, \Imagick::DITHERMETHOD_RIEMERSMA, 8);

?>


Quickly pin-point appropriate parameters for image processing

  • « Imagick::posterizeImage
  • Imagick::previousImage »
  • PHP Manual
  • Imagick
  • Quickly pin-point appropriate parameters for image processing

Imagick::previewImages

(PECL imagick 2.0.0)

Imagick::previewImages — Quickly pin-point appropriate parameters for image processing

Описание

Imagick::previewImages ( int $preview ) : bool

Tiles 9 thumbnails of the specified image with an image processing operation applied at varying strengths. This is helpful to quickly pin-point an appropriate parameter for an image processing operation.

Список параметров

preview

Preview type. See Preview type constants

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Move to the previous image in the object

  • « Imagick::previewImages
  • Imagick::profileImage »
  • PHP Manual
  • Imagick
  • Move to the previous image in the object

Imagick::previousImage

(PECL imagick 2.0.0)

Imagick::previousImage — Move to the previous image in the object

Описание

Imagick::previousImage ( void ) : bool

Assocates the previous image in an image list with the Imagick object.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Adds or removes a profile from an image

  • « Imagick::previousImage
  • Imagick::quantizeImage »
  • PHP Manual
  • Imagick
  • Adds or removes a profile from an image

Imagick::profileImage

(PECL imagick 2.0.0)

Imagick::profileImage — Adds or removes a profile from an image

Описание

Imagick::profileImage ( string $name , string $profile ) : bool

Adds or removes a ICC, IPTC, or generic profile from an image. If the profile is NULL, it is removed from the image otherwise added. Use a name of '*' and a profile of NULL to remove all profiles from the image.

Список параметров

name

profile

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Analyzes the colors within a reference image

  • « Imagick::profileImage
  • Imagick::quantizeImages »
  • PHP Manual
  • Imagick
  • Analyzes the colors within a reference image

Imagick::quantizeImage

(PECL imagick 2.0.0)

Imagick::quantizeImage — Analyzes the colors within a reference image

Описание

Imagick::quantizeImage ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError ) : bool

Список параметров

numberColors

colorspace

treedepth

dither

measureError

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::quantizeImage()

<?php
function quantizeImage($imagePath, $numberColors, $colorSpace, $treeDepth, $dither) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->quantizeImage($numberColors, $colorSpace, $treeDepth, $dither, false);
    $imagick->setImageFormat('png');
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Analyzes the colors within a sequence of images

  • « Imagick::quantizeImage
  • Imagick::queryFontMetrics »
  • PHP Manual
  • Imagick
  • Analyzes the colors within a sequence of images

Imagick::quantizeImages

(PECL imagick 2.0.0)

Imagick::quantizeImages — Analyzes the colors within a sequence of images

Описание

Imagick::quantizeImages ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError ) : bool

Список параметров

numberColors

colorspace

treedepth

dither

measureError

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Returns an array representing the font metrics

  • « Imagick::quantizeImages
  • Imagick::queryFonts »
  • PHP Manual
  • Imagick
  • Returns an array representing the font metrics

Imagick::queryFontMetrics

(PECL imagick 2.0.0)

Imagick::queryFontMetrics — Returns an array representing the font metrics

Описание

Imagick::queryFontMetrics ( ImagickDraw $properties , string $text [, bool $multiline ] ) : array

Returns a multi-dimensional array representing the font metrics.

Список параметров

properties

ImagickDraw object containing font properties

text

The text

multiline

Multiline parameter. If left empty it is autodetected

Возвращаемые значения

Returns a multi-dimensional array representing the font metrics.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Using Imagick::queryFontMetrics():

Query the metrics for the text and dump the results on the screen.

<?php
/* Create a new Imagick object */
$im = new Imagick();

/* Create an ImagickDraw object */
$draw = new ImagickDraw();

/* Set the font */
$draw->setFont('/path/to/font.ttf');

/* Dump the font metrics, autodetect multiline */
var_dump($im->queryFontMetrics($draw, "Hello World!"));
?>


Returns the configured fonts

  • « Imagick::queryFontMetrics
  • Imagick::queryFormats »
  • PHP Manual
  • Imagick
  • Returns the configured fonts

Imagick::queryFonts

(PECL imagick 2.0.0)

Imagick::queryFonts — Returns the configured fonts

Описание

Imagick::queryFonts ([ string $pattern = "*" ] ) : array

Returns the configured fonts.

Список параметров

pattern

The query pattern

Возвращаемые значения

Returns an array containing the configured fonts.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::queryFonts()

<?php
        $output = '';
        $output .= "Fonts that match 'Helvetica*' are:<br/>";

        $fontList = \Imagick::queryFonts("Helvetica*");

        foreach ($fontList as $fontName) {
            $output .= '<li>'. $fontName."</li>";
        }

        return $output;

?>


Returns formats supported by Imagick

  • « Imagick::queryFonts
  • Imagick::radialBlurImage »
  • PHP Manual
  • Imagick
  • Returns formats supported by Imagick

Imagick::queryFormats

(PECL imagick 2.0.0)

Imagick::queryFormats — Returns formats supported by Imagick

Описание

Imagick::queryFormats ([ string $pattern = "*" ] ) : array

Returns formats supported by Imagick.

Список параметров

pattern

Возвращаемые значения

Returns an array containing the formats supported by Imagick.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::queryFormats()

<?php
    function render() {
        $output = "";
        $input = \Imagick::queryformats();
        $columns = 6;

        $output .= "<table border='2'>";

        for ($i=0; $i < count($input); $i += $columns) {
            $output .= "<tr>";
            for ($c=0; $c<$columns; $c++) {
                $output .= "<td>";
                if (($i + $c) <  count($input)) {
                    $output .= $input[$i + $c];
                }
                $output .= "</td>";
            }
            $output .= "</tr>";
        }

        $output .= "</table>";

        return $output;
    }

?>


Radial blurs an image

  • « Imagick::queryFormats
  • Imagick::raiseImage »
  • PHP Manual
  • Imagick
  • Radial blurs an image

Imagick::radialBlurImage

(PECL imagick 2.0.0)

Imagick::radialBlurImage — Radial blurs an image

Описание

Imagick::radialBlurImage ( float $angle [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Radial blurs an image.

Список параметров

angle

channel

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::radialBlurImage()

<?php
function radialBlurImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    //Blur 3 times with different radii
    $imagick->radialBlurImage(3);
    $imagick->radialBlurImage(5);
    $imagick->radialBlurImage(7);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a simulated 3d button-like effect

  • « Imagick::radialBlurImage
  • Imagick::randomThresholdImage »
  • PHP Manual
  • Imagick
  • Creates a simulated 3d button-like effect

Imagick::raiseImage

(PECL imagick 2.0.0)

Imagick::raiseImage — Creates a simulated 3d button-like effect

Описание

Imagick::raiseImage ( int $width , int $height , int $x , int $y , bool $raise ) : bool

Creates a simulated three-dimensional button-like effect by lightening and darkening the edges of the image. Members width and height of raise_info define the width of the vertical and horizontal edge of the effect.

Список параметров

width

height

x

y

raise

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::raiseImage()

<?php
function raiseImage($imagePath, $width, $height, $x, $y, $raise) {
    $imagick = new \Imagick(realpath($imagePath));

    //x and y do nothing?
    $imagick->raiseImage($width, $height, $x, $y, $raise);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a high-contrast, two-color image

  • « Imagick::raiseImage
  • Imagick::readImage »
  • PHP Manual
  • Imagick
  • Creates a high-contrast, two-color image

Imagick::randomThresholdImage

(PECL imagick 2.0.0)

Imagick::randomThresholdImage — Creates a high-contrast, two-color image

Описание

Imagick::randomThresholdImage ( float $low , float $high [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Changes the value of individual pixels based on the intensity of each pixel compared to threshold. The result is a high-contrast, two color image. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

low

The low point

high

The high point

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::randomThresholdImage()

<?php
function randomThresholdimage($imagePath, $lowThreshold, $highThreshold, $channel) {
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->randomThresholdimage(
        $lowThreshold * \Imagick::getQuantum(),
        $highThreshold * \Imagick::getQuantum(),
        $channel
    );
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Reads image from filename

  • « Imagick::randomThresholdImage
  • Imagick::readImageBlob »
  • PHP Manual
  • Imagick
  • Reads image from filename

Imagick::readImage

(PECL imagick 0.9.0-0.9.9)

Imagick::readImage — Reads image from filename

Описание

Imagick::readImage ( string $filename ) : bool

Reads image from filename

Список параметров

filename

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Reads image from a binary string

  • « Imagick::readImage
  • Imagick::readImageFile »
  • PHP Manual
  • Imagick
  • Reads image from a binary string

Imagick::readImageBlob

(PECL imagick 2.0.0)

Imagick::readImageBlob — Reads image from a binary string

Описание

Imagick::readImageBlob ( string $image [, string $filename ] ) : bool

Reads image from a binary string

Список параметров

image

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::readImageBlob()

<?php
function readImageBlob() {
    $base64 = "iVBORw0KGgoAAAANSUhEUgAAAM0AAAD
 NCAMAAAAsYgRbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5c
 cllPAAAABJQTFRF3NSmzMewPxIG//ncJEJsldTou1jHgAAAARBJREFUeNrs2EEK
 gCAQBVDLuv+V20dENbMY831wKz4Y/VHb/5RGQ0NDQ0NDQ0NDQ0NDQ0NDQ
 0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0PzMWtyaGhoaGhoaGhoaGhoaGhoxtb0QGho
 aGhoaGhoaGhoaGhoaMbRLEvv50VTQ9OTQ5OpyZ01GpM2g0bfmDQaL7S+ofFC6x
 v3ZpxJiywakzbvd9r3RWPS9I2+MWk0+kbf0Hih9Y17U0nTHibrDDQ0NDQ0NDQ0
 NDQ0NDQ0NTXbRSL/AK72o6GhoaGhoRlL8951vwsNDQ0NDQ1NDc0WyHtDTEhD
 Q0NDQ0NTS5MdGhoaGhoaGhoaGhoaGhoaGhoaGhoaGposzSHAAErMwwQ2HwRQ
 AAAAAElFTkSuQmCC";

    $imageBlob = base64_decode($base64);

    $imagick = new Imagick();
    $imagick->readImageBlob($imageBlob);

    header("Content-Type: image/png");
    echo $imagick;
}

?>


Reads image from open filehandle

  • « Imagick::readImageBlob
  • Imagick::readimages »
  • PHP Manual
  • Imagick
  • Reads image from open filehandle

Imagick::readImageFile

(PECL imagick 2.0.0)

Imagick::readImageFile — Reads image from open filehandle

Описание

Imagick::readImageFile ( resource $filehandle [, string $fileName = NULL ] ) : bool

Reads image from open filehandle

Список параметров

filehandle

fileName

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Description

  • « Imagick::readImageFile
  • Imagick::recolorImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::readimages

(Информация о версии неизвестна, возможно, только в Git)

Imagick::readimages — Description

Описание

public Imagick::readImages ( array $filenames ) : bool

Reads image from an array of filenames. All the images are held in a single Imagick object.

Список параметров

filenames

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Recolors image

  • « Imagick::readimages
  • Imagick::reduceNoiseImage »
  • PHP Manual
  • Imagick
  • Recolors image

Imagick::recolorImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::recolorImage — Recolors image

Описание

Imagick::recolorImage ( array $matrix ) : bool

Translate, scale, shear, or rotate image colors. This method supports variable sized matrices but normally 5x5 matrix is used for RGBA and 6x6 is used for CMYK. The last row should contain the normalized values. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

matrix

The matrix containing the color values

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::displayImage() - Выводит изображение

Примеры

Пример #1 Imagick::recolorImage()

<?php
function recolorImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $remapColor = [ 1, 0, 0,
        0, 0, 1,
        0, 1, 0,];

//$remapColor = [
//    1.438, -0.122, -0.016,  0, 0, -0.03,
//    -0.062,  1.378, -0.016,  0, 0,  0.05,
//    -0.062, -0.122, 1.483,   0, 0, -0.02,
//];

    @$imagick->recolorImage($remapColor);

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Smooths the contours of an image

  • « Imagick::recolorImage
  • Imagick::remapImage »
  • PHP Manual
  • Imagick
  • Smooths the contours of an image

Imagick::reduceNoiseImage

(PECL imagick 2.0.0)

Imagick::reduceNoiseImage — Smooths the contours of an image

Описание

Imagick::reduceNoiseImage ( float $radius ) : bool

Smooths the contours of an image while still preserving edge information. The algorithm works by replacing each pixel with its neighbor closest in value. A neighbor is defined by radius. Use a radius of 0 and Imagick::reduceNoiseImage() selects a suitable radius for you.

Список параметров

radius

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::reduceNoiseImage()

<?php
function reduceNoiseImage($imagePath, $reduceNoise) {
    $imagick = new \Imagick(realpath($imagePath));
    @$imagick->reduceNoiseImage($reduceNoise);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Remaps image colors

  • « Imagick::reduceNoiseImage
  • Imagick::removeImage »
  • PHP Manual
  • Imagick
  • Remaps image colors

Imagick::remapImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::remapImage — Remaps image colors

Описание

public Imagick::remapImage ( Imagick $replacement , int $DITHER ) : bool

Replaces colors an image with those defined by replacement. The colors are replaced with the closest possible color. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.5 или старше.

Список параметров

replacement

An Imagick object containing the replacement colors

DITHER

Refer to this list of dither method constants

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Removes an image from the image list

  • « Imagick::remapImage
  • Imagick::removeImageProfile »
  • PHP Manual
  • Imagick
  • Removes an image from the image list

Imagick::removeImage

(PECL imagick 2.0.0)

Imagick::removeImage — Removes an image from the image list

Описание

Imagick::removeImage ( void ) : bool

Removes an image from the image list.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Removes the named image profile and returns it

  • « Imagick::removeImage
  • Imagick::render »
  • PHP Manual
  • Imagick
  • Removes the named image profile and returns it

Imagick::removeImageProfile

(PECL imagick 2.0.0)

Imagick::removeImageProfile — Removes the named image profile and returns it

Описание

Imagick::removeImageProfile ( string $name ) : string

Removes the named image profile and returns it.

Список параметров

name

Возвращаемые значения

Returns a string containing the profile of the image.

Ошибки

Вызывает ImagickException при ошибке.


Renders all preceding drawing commands

  • « Imagick::removeImageProfile
  • Imagick::resampleImage »
  • PHP Manual
  • Imagick
  • Renders all preceding drawing commands

Imagick::render

(PECL imagick 2.0.0)

Imagick::render — Renders all preceding drawing commands

Описание

Imagick::render ( void ) : bool

Renders all preceding drawing commands.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Resample image to desired resolution

  • « Imagick::render
  • Imagick::resetImagePage »
  • PHP Manual
  • Imagick
  • Resample image to desired resolution

Imagick::resampleImage

(PECL imagick 2.0.0)

Imagick::resampleImage — Resample image to desired resolution

Описание

Imagick::resampleImage ( float $x_resolution , float $y_resolution , int $filter , float $blur ) : bool

Resample image to desired resolution.

Список параметров

x_resolution

y_resolution

filter

blur

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::resampleImage()

<?php
function resampleImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->resampleImage(200, 200, \Imagick::FILTER_LANCZOS, 1);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Reset image page

  • « Imagick::resampleImage
  • Imagick::resizeImage »
  • PHP Manual
  • Imagick
  • Reset image page

Imagick::resetImagePage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::resetImagePage — Reset image page

Описание

Imagick::resetImagePage ( string $page ) : bool

The page definition as a string. The string is in format WxH+x+y. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

page

The page definition. For example 7168x5147+0+0

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Scales an image

  • « Imagick::resetImagePage
  • Imagick::rollImage »
  • PHP Manual
  • Imagick
  • Scales an image

Imagick::resizeImage

(PECL imagick 2.0.0)

Imagick::resizeImage — Scales an image

Описание

Imagick::resizeImage ( int $columns , int $rows , int $filter , float $blur [, bool $bestfit = FALSE [, bool $legacy = FALSE ]] ) : bool

Scales an image to the desired dimensions with a filter.

Замечание: Поведение параметра bestfit было изменено в Imagick 3.0.0. До этой версии при изменении изображения размером 200x150 до 400x300 никаких операций не происходило. В Imagick 3.0.0 и далее изображение будет масштабировано до размеров 400x300, так как это наилучшим образом соответствует ("best fit") данным размерам. Если используется параметр bestfit, то ширина и высота также должны быть определены.

Список параметров

columns

Width of the image

rows

Height of the image

filter

Refer to the list of filter constants.

blur

The blur factor where > 1 is blurry, < 1 is sharp.

bestfit

Optional fit parameter.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Список изменений

Версия | Описание
2.1.0 | Added optional fit parameter. This method now supports proportional scaling. Pass zero as either parameter for proportional scaling.

Примеры

Пример #1 Imagick::resizeImage()

<?php
function resizeImage($imagePath, $width, $height, $filterType, $blur, $bestFit, $cropZoom) {
    //The blur factor where &gt; 1 is blurry, &lt; 1 is sharp.
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->resizeImage($width, $height, $filterType, $blur, $bestFit);

    $cropWidth = $imagick->getImageWidth();
    $cropHeight = $imagick->getImageHeight();

    if ($cropZoom) {
        $newWidth = $cropWidth / 2;
        $newHeight = $cropHeight / 2;

        $imagick->cropimage(
            $newWidth,
            $newHeight,
            ($cropWidth - $newWidth) / 2,
            ($cropHeight - $newHeight) / 2
        );

        $imagick->scaleimage(
            $imagick->getImageWidth() * 4,
            $imagick->getImageHeight() * 4
        );
    }

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Offsets an image

  • « Imagick::resizeImage
  • Imagick::rotateImage »
  • PHP Manual
  • Imagick
  • Offsets an image

Imagick::rollImage

(PECL imagick 2.0.0)

Imagick::rollImage — Offsets an image

Описание

Imagick::rollImage ( int $x , int $y ) : bool

Offsets an image as defined by x and y.

Список параметров

x

The X offset.

y

The Y offset.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::rollImage()

<?php
function rollImage($imagePath, $rollX, $rollY) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->rollimage($rollX, $rollY);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Rotates an image

  • « Imagick::rollImage
  • Imagick::rotationalBlurImage »
  • PHP Manual
  • Imagick
  • Rotates an image

Imagick::rotateImage

(PECL imagick 2.0.0)

Imagick::rotateImage — Rotates an image

Описание

Imagick::rotateImage ( mixed $background , float $degrees ) : bool

Rotates an image the specified number of degrees. Empty triangles left over from rotating the image are filled with the background color.

Список параметров

background

The background color

degrees

Rotation angle, in degrees. The rotation angle is interpreted as the number of degrees to rotate the image clockwise.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Примеры

Пример #1 Imagick::rotateImage()

<?php
function rotateImage($imagePath, $angle, $color) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->rotateimage($color, $angle);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::rotateImage
  • Imagick::roundCorners »
  • PHP Manual
  • Imagick
  • Description

Imagick::rotationalBlurImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::rotationalBlurImage — Description

Описание

public Imagick::rotationalBlurImage ( float $angle [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Rotational blurs an image.

Список параметров

angle

The angle to apply the blur over.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::rotationalBlurImage()

<?php
function rotationalBlurImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->rotationalBlurImage(3);
    $imagick->rotationalBlurImage(5);
    $imagick->rotationalBlurImage(7);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Rounds image corners

  • « Imagick::rotationalBlurImage
  • Imagick::sampleImage »
  • PHP Manual
  • Imagick
  • Rounds image corners

Imagick::roundCorners

(PECL imagick 2.0.0)

Imagick::roundCorners — Rounds image corners

Описание

Imagick::roundCorners ( float $x_rounding , float $y_rounding [, float $stroke_width = 10 [, float $displace = 5 [, float $size_correction = -6 ]]] ) : bool

Rounds image corners. The first two parameters control the amount of rounding and the three last parameters can be used to fine-tune the rounding process. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

x_rounding

x rounding

y_rounding

y rounding

stroke_width

stroke width

displace

image displace

size_correction

size correction

Примеры

Пример #1 Using Imagick::roundCorners():

Rounds the image corners

<?php

$image = new Imagick();
$image->newPseudoImage(100, 100, "magick:rose");
$image->setImageFormat("png");

$image->roundCorners(5,3);
$image->writeImage("rounded.png");
?>

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Scales an image with pixel sampling

  • « Imagick::roundCorners
  • Imagick::scaleImage »
  • PHP Manual
  • Imagick
  • Scales an image with pixel sampling

Imagick::sampleImage

(PECL imagick 2.0.0)

Imagick::sampleImage — Scales an image with pixel sampling

Описание

Imagick::sampleImage ( int $columns , int $rows ) : bool

Scales an image to the desired dimensions with pixel sampling. Unlike other scaling methods, this method does not introduce any additional color into the scaled image.

Список параметров

columns

rows

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Scales the size of an image

  • « Imagick::sampleImage
  • Imagick::segmentImage »
  • PHP Manual
  • Imagick
  • Scales the size of an image

Imagick::scaleImage

(PECL imagick 2.0.0)

Imagick::scaleImage — Scales the size of an image

Описание

Imagick::scaleImage ( int $cols , int $rows [, bool $bestfit = FALSE [, bool $legacy = FALSE ]] ) : bool

Scales the size of an image to the given dimensions. The other parameter will be calculated if 0 is passed as either param.

Замечание: Поведение параметра bestfit было изменено в Imagick 3.0.0. До этой версии при изменении изображения размером 200x150 до 400x300 никаких операций не происходило. В Imagick 3.0.0 и далее изображение будет масштабировано до размеров 400x300, так как это наилучшим образом соответствует ("best fit") данным размерам. Если используется параметр bestfit, то ширина и высота также должны быть определены.

Список параметров

cols

rows

bestfit

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Added optional fit parameter. This method now supports proportional scaling. Pass zero as either parameter for proportional scaling.

Примеры

Пример #1 Imagick::scaleImage()

<?php
function scaleImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->scaleImage(150, 150, true);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Segments an image

  • « Imagick::scaleImage
  • Imagick::selectiveBlurImage »
  • PHP Manual
  • Imagick
  • Segments an image

Imagick::segmentImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::segmentImage — Segments an image

Описание

public Imagick::segmentImage ( int $COLORSPACE , float $cluster_threshold , float $smooth_threshold [, bool $verbose = FALSE ] ) : bool

Analyses the image and identifies units that are similar. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.5 или старше.

Список параметров

COLORSPACE

One of the COLORSPACE constants.

cluster_threshold

A percentage describing minimum number of pixels contained in hexedra before it is considered valid.

smooth_threshold

Eliminates noise from the histogram.

verbose

Whether to output detailed information about recognised classes.

Возвращаемые значения

Примеры

Пример #1 Imagick::segmentImage()

<?php
function segmentImage($imagePath, $colorSpace, $clusterThreshold, $smoothThreshold) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->segmentImage($colorSpace, $clusterThreshold, $smoothThreshold);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

segmentImage($imagePath, \Imagick::COLORSPACE_RGB, 5, 5);

?>


Description

  • « Imagick::segmentImage
  • Imagick::separateImageChannel »
  • PHP Manual
  • Imagick
  • Description

Imagick::selectiveBlurImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::selectiveBlurImage — Description

Описание

public Imagick::selectiveBlurImage ( float $radius , float $sigma , float $threshold [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Selectively blur an image within a contrast threshold. It is similar to the unsharpen mask that sharpens everything with contrast above a certain threshold.

Список параметров

radius

sigma

threshold

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::selectiveBlurImage()

<?php
function selectiveBlurImage($imagePath, $radius, $sigma, $threshold, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->selectiveBlurImage($radius, $sigma, $threshold, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Separates a channel from the image

  • « Imagick::selectiveBlurImage
  • Imagick::sepiaToneImage »
  • PHP Manual
  • Imagick
  • Separates a channel from the image

Imagick::separateImageChannel

(PECL imagick 2.0.0)

Imagick::separateImageChannel — Separates a channel from the image

Описание

Imagick::separateImageChannel ( int $channel ) : bool

Separates a channel from the image and returns a grayscale image. A channel is a particular color component of each pixel in the image.

Список параметров

channel

Which 'channel' to return. For colorspaces other than RGB, you can still use the CHANNEL_RED, CHANNEL_GREEN, CHANNEL_BLUE constants to indicate the 1st, 2nd and 3rd channels.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::separateImageChannel()

<?php
function separateImageChannel($imagePath, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->separateimagechannel($channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

separateImageChannel($imagePath, \Imagick::CHANNEL_GREEN);

?>


Sepia tones an image

  • « Imagick::separateImageChannel
  • Imagick::setBackgroundColor »
  • PHP Manual
  • Imagick
  • Sepia tones an image

Imagick::sepiaToneImage

(PECL imagick 2.0.0)

Imagick::sepiaToneImage — Sepia tones an image

Описание

Imagick::sepiaToneImage ( float $threshold ) : bool

Applies a special effect to the image, similar to the effect achieved in a photo darkroom by sepia toning. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the sepia toning. A threshold of 80 is a good starting point for a reasonable tone.

Список параметров

threshold

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::sepiaToneImage()

<?php
function sepiaToneImage($imagePath, $sepia) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->sepiaToneImage($sepia);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sets the object's default background color

  • « Imagick::sepiaToneImage
  • Imagick::setColorspace »
  • PHP Manual
  • Imagick
  • Sets the object's default background color

Imagick::setBackgroundColor

(PECL imagick 2.0.0)

Imagick::setBackgroundColor — Sets the object's default background color

Описание

Imagick::setBackgroundColor ( mixed $background ) : bool

Sets the object's default background color.

Список параметров

background

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.


Set colorspace

  • « Imagick::setBackgroundColor
  • Imagick::setCompression »
  • PHP Manual
  • Imagick
  • Set colorspace

Imagick::setColorspace

(Информация о версии неизвестна, возможно, только в Git)

Imagick::setColorspace — Set colorspace

Описание

Imagick::setColorspace ( int $COLORSPACE ) : bool

Sets the global colorspace value for the object. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.5.7 или старше.

Список параметров

COLORSPACE

One of the COLORSPACE constants

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the object's default compression type

  • « Imagick::setColorspace
  • Imagick::setCompressionQuality »
  • PHP Manual
  • Imagick
  • Sets the object's default compression type

Imagick::setCompression

(PECL imagick 2.0.0)

Imagick::setCompression — Sets the object's default compression type

Описание

Imagick::setCompression ( int $compression ) : bool

Sets the object's default compression type

Список параметров

compression

The compression type. See the Imagick::COMPRESSION_* constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the object's default compression quality

  • « Imagick::setCompression
  • Imagick::setFilename »
  • PHP Manual
  • Imagick
  • Sets the object's default compression quality

Imagick::setCompressionQuality

(PECL imagick 0.9.10-0.9.9)

Imagick::setCompressionQuality — Sets the object's default compression quality

Описание

Imagick::setCompressionQuality ( int $quality ) : bool

Sets the object's default compression quality.

Предостережение

This method only works for new images e.g. those created through Imagick::newPseudoImage. For existing images you should use Imagick::setImageCompressionQuality().

Список параметров

quality

An integer between 1 and 100, 1 = high compression, 100 low compression.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::setCompressionQuality()

<?php
function setCompressionQuality($imagePath, $quality) {

    $backgroundImagick = new \Imagick(realpath($imagePath));
    $imagick = new \Imagick();
    $imagick->setCompressionQuality($quality);
    $imagick->newPseudoImage(
        $backgroundImagick->getImageWidth(),
        $backgroundImagick->getImageHeight(),
        'canvas:white'
    );

    $imagick->compositeImage(
        $backgroundImagick,
        \Imagick::COMPOSITE_ATOP,
        0,
        0
    );

    $imagick->setFormat("jpg");
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sets the filename before you read or write the image

  • « Imagick::setCompressionQuality
  • Imagick::setFirstIterator »
  • PHP Manual
  • Imagick
  • Sets the filename before you read or write the image

Imagick::setFilename

(PECL imagick 2.0.0)

Imagick::setFilename — Sets the filename before you read or write the image

Описание

Imagick::setFilename ( string $filename ) : bool

Sets the filename before you read or write an image file.

Список параметров

filename

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the Imagick iterator to the first image

  • « Imagick::setFilename
  • Imagick::setFont »
  • PHP Manual
  • Imagick
  • Sets the Imagick iterator to the first image

Imagick::setFirstIterator

(PECL imagick 2.0.0)

Imagick::setFirstIterator — Sets the Imagick iterator to the first image

Описание

Imagick::setFirstIterator ( void ) : bool

Sets the Imagick iterator to the first image.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets font

  • « Imagick::setFirstIterator
  • Imagick::setFormat »
  • PHP Manual
  • Imagick
  • Sets font

Imagick::setFont

(PECL imagick 2.1.0)

Imagick::setFont — Sets font

Описание

Imagick::setFont ( string $font ) : bool

Sets object's font property. This method can be used for example to set font for caption: pseudo-format. The font needs to be configured in ImageMagick configuration or a file by the name of font must exist. This method should not be confused with ImagickDraw::setFont() which sets the font for a specific ImagickDraw object. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или старше.

Список параметров

font

Font name or a filename

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::getFont() - Возвращает название шрифта
  • ImagickDraw::setFont() - Sets the fully-specified font to use when annotating with text
  • ImagickDraw::getFont() - Returns the font

Примеры

Пример #1 A Imagick::setFont() example

Example of using Imagick::setFont

<?php
/* Create new imagick object */
$im = new Imagick();

/* Set the font for the object */
$im->setFont("example.ttf");

/* Create new caption */
$im->newPseudoImage(100, 100, "caption:Hello");

/* Do something with the image */
?>


Sets the format of the Imagick object

  • « Imagick::setFont
  • Imagick::setGravity »
  • PHP Manual
  • Imagick
  • Sets the format of the Imagick object

Imagick::setFormat

(PECL imagick 2.0.0)

Imagick::setFormat — Sets the format of the Imagick object

Описание

Imagick::setFormat ( string $format ) : bool

Sets the format of the Imagick object.

Список параметров

format

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the gravity

  • « Imagick::setFormat
  • Imagick::setImage »
  • PHP Manual
  • Imagick
  • Sets the gravity

Imagick::setGravity

(Информация о версии неизвестна, возможно, только в Git)

Imagick::setGravity — Sets the gravity

Описание

Imagick::setGravity ( int $gravity ) : bool

Sets the global gravity property for the Imagick object. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или старше.

Список параметров

gravity

The gravity property. Refer to the list of gravity constants.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Replaces image in the object

  • « Imagick::setGravity
  • Imagick::setImageAlphaChannel »
  • PHP Manual
  • Imagick
  • Replaces image in the object

Imagick::setImage

(PECL imagick 2.0.0)

Imagick::setImage — Replaces image in the object

Описание

Imagick::setImage ( Imagick $replace ) : bool

Replaces the current image sequence with the image from replace object.

Список параметров

replace

The replace Imagick object

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 A Imagick::setImage() example

An example of using Imagick::setImage()

<?php
/* Create the objects */
$image = new Imagick('source.jpg');
$replace = new Imagick('replace.jpg');

/* source.jpg is replaced with replace.jpg */
$image->setImage($replace);

/* output the image */
header('Content-type: image/jpeg');
echo $image;

?>


Sets image alpha channel

  • « Imagick::setImage
  • Imagick::setImageArtifact »
  • PHP Manual
  • Imagick
  • Sets image alpha channel

Imagick::setImageAlphaChannel

(Информация о версии неизвестна, возможно, только в Git)

Imagick::setImageAlphaChannel — Sets image alpha channel

Описание

Imagick::setImageAlphaChannel ( int $mode ) : bool

Activate or deactivate image alpha channel. The mode is one of the Imagick::ALPHACHANNEL_* constants. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или старше.

Список параметров

mode

One of the Imagick::ALPHACHANNEL_* constants

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Смотрите также

  • Imagick::setImageMatte() - Sets the image matte channel
  • Imagick Alpha Channel Constants


Set image artifact

  • « Imagick::setImageAlphaChannel
  • Imagick::setImageAttribute »
  • PHP Manual
  • Imagick
  • Set image artifact

Imagick::setImageArtifact

(Информация о версии неизвестна, возможно, только в Git)

Imagick::setImageArtifact — Set image artifact

Описание

Imagick::setImageArtifact ( string $artifact , string $value ) : bool

Associates an artifact with the image. The difference between image properties and image artifacts is that properties are public and artifacts are private. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.5.7 или старше.

Список параметров

artifact

The name of the artifact

value

The value of the artifact

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Смотрите также

  • Imagick::getImageArtifact() - Get image artifact
  • Imagick::deleteImageArtifact() - Delete image artifact

Примеры

Пример #1 Imagick::setImageArtifact()

<?php
function setImageArtifact() {

    $src1 = new \Imagick(realpath("./images/artifact/source1.png"));
    $src2 = new \Imagick(realpath("./images/artifact/source2.png"));

    $src2->setImageVirtualPixelMethod(\Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
    $src2->setImageArtifact('compose:args', "1,0,-0.5,0.5");
    $src1->compositeImage($src2, Imagick::COMPOSITE_MATHEMATICS, 0, 0);

    $src1->setImageFormat('png');
    header("Content-Type: image/png");
    echo $src1->getImagesBlob();
}

?>


Description

  • « Imagick::setImageArtifact
  • Imagick::setImageBackgroundColor »
  • PHP Manual
  • Imagick
  • Description

Imagick::setImageAttribute

(Информация о версии неизвестна, возможно, только в Git)

Imagick::setImageAttribute — Description

Описание

public Imagick::setImageAttribute ( string $key , string $value ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

value

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image background color

  • « Imagick::setImageAttribute
  • Imagick::setImageBias »
  • PHP Manual
  • Imagick
  • Sets the image background color

Imagick::setImageBackgroundColor

(PECL imagick 2.0.0)

Imagick::setImageBackgroundColor — Sets the image background color

Описание

Imagick::setImageBackgroundColor ( mixed $background ) : bool

Sets the image background color.

Список параметров

background

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the parameter. Previous versions allow only an ImagickPixel object.


Sets the image bias for any method that convolves an image

  • « Imagick::setImageBackgroundColor
  • Imagick::setImageBiasQuantum »
  • PHP Manual
  • Imagick
  • Sets the image bias for any method that convolves an image

Imagick::setImageBias

(PECL imagick 2.0.0)

Imagick::setImageBias — Sets the image bias for any method that convolves an image

Описание

Imagick::setImageBias ( float $bias ) : bool

Sets the image bias for any method that convolves an image (e.g. Imagick::ConvolveImage()).

Список параметров

bias

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::setImageBias()

<?php
//requires ImageMagick version 6.9.0-1 to have an effect on convolveImage
function setImageBias($bias) {
    $imagick = new \Imagick(realpath("images/stack.jpg"));

    $xKernel = array(
        -0.70, 0, 0.70,
        -0.70, 0, 0.70,
        -0.70, 0, 0.70
    );

    $imagick->setImageBias($bias * \Imagick::getQuantum());
    $imagick->convolveImage($xKernel, \Imagick::CHANNEL_ALL);

    $imagick->setImageFormat('png');

    header('Content-type: image/png');
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::setImageBias
  • Imagick::setImageBluePrimary »
  • PHP Manual
  • Imagick
  • Description

Imagick::setImageBiasQuantum

(Информация о версии неизвестна, возможно, только в Git)

Imagick::setImageBiasQuantum — Description

Описание

public Imagick::setImageBiasQuantum ( string $bias ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

bias

Возвращаемые значения


Sets the image chromaticity blue primary point

  • « Imagick::setImageBiasQuantum
  • Imagick::setImageBorderColor »
  • PHP Manual
  • Imagick
  • Sets the image chromaticity blue primary point

Imagick::setImageBluePrimary

(PECL imagick 2.0.0)

Imagick::setImageBluePrimary — Sets the image chromaticity blue primary point

Описание

Imagick::setImageBluePrimary ( float $x , float $y ) : bool

Sets the image chromaticity blue primary point.

Список параметров

x

y

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image border color

  • « Imagick::setImageBluePrimary
  • Imagick::setImageChannelDepth »
  • PHP Manual
  • Imagick
  • Sets the image border color

Imagick::setImageBorderColor

(PECL imagick 2.0.0)

Imagick::setImageBorderColor — Sets the image border color

Описание

Imagick::setImageBorderColor ( mixed $border ) : bool

Sets the image border color.

Список параметров

border

The border color

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.


Sets the depth of a particular image channel

  • « Imagick::setImageBorderColor
  • Imagick::setImageClipMask »
  • PHP Manual
  • Imagick
  • Sets the depth of a particular image channel

Imagick::setImageChannelDepth

(PECL imagick 2.0.0)

Imagick::setImageChannelDepth — Sets the depth of a particular image channel

Описание

Imagick::setImageChannelDepth ( int $channel , int $depth ) : bool

Sets the depth of a particular image channel.

Список параметров

channel

depth

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets image clip mask

  • « Imagick::setImageChannelDepth
  • Imagick::setImageColormapColor »
  • PHP Manual
  • Imagick
  • Sets image clip mask

Imagick::setImageClipMask

(Информация о версии неизвестна, возможно, только в Git)

Imagick::setImageClipMask — Sets image clip mask

Описание

Imagick::setImageClipMask ( Imagick $clip_mask ) : bool

Sets image clip mask from another Imagick object. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

clip_mask

The Imagick object containing the clip mask

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::setImageClipMask()

<?php
function setImageClipMask($imagePath) {
    $imagick = new \Imagick();
    $imagick->readImage(realpath($imagePath));

    $width = $imagick->getImageWidth();
    $height = $imagick->getImageHeight();

    $clipMask = new \Imagick();
    $clipMask->newPseudoImage(
        $width,
        $height,
        "canvas:transparent"
    );

    $draw = new \ImagickDraw();
    $draw->setFillColor('white');
    $draw->circle(
        $width / 2,
        $height / 2,
        ($width / 2) + ($width / 4),
        $height / 2
    );
    $clipMask->drawImage($draw);
    $imagick->setImageClipMask($clipMask);

    $imagick->negateImage(false);
    $imagick->setFormat("png");

    header("Content-Type: image/png");
    echo $imagick->getImagesBlob();

}

?>


Sets the color of the specified colormap index

  • « Imagick::setImageClipMask
  • Imagick::setImageColorspace »
  • PHP Manual
  • Imagick
  • Sets the color of the specified colormap index

Imagick::setImageColormapColor

(PECL imagick 2.0.0)

Imagick::setImageColormapColor — Sets the color of the specified colormap index

Описание

Imagick::setImageColormapColor ( int $index , ImagickPixel $color ) : bool

Sets the color of the specified colormap index.

Список параметров

index

color

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image colorspace

  • « Imagick::setImageColormapColor
  • Imagick::setImageCompose »
  • PHP Manual
  • Imagick
  • Sets the image colorspace

Imagick::setImageColorspace

(PECL imagick 2.0.0)

Imagick::setImageColorspace — Sets the image colorspace

Описание

Imagick::setImageColorspace ( int $colorspace ) : bool

Sets the image colorspace. This method should be used when creating new images. To change the colorspace of an existing image, you should use Imagick::transformImageColorspace().

Список параметров

colorspace

One of the COLORSPACE constants

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image composite operator

  • « Imagick::setImageColorspace
  • Imagick::setImageCompression »
  • PHP Manual
  • Imagick
  • Sets the image composite operator

Imagick::setImageCompose

(PECL imagick 2.0.0)

Imagick::setImageCompose — Sets the image composite operator

Описание

Imagick::setImageCompose ( int $compose ) : bool

Sets the image composite operator, useful for specifying how to composite the image thumbnail when using the Imagick::montageImage() method.

Список параметров

compose

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image compression

  • « Imagick::setImageCompose
  • Imagick::setImageCompressionQuality »
  • PHP Manual
  • Imagick
  • Sets the image compression

Imagick::setImageCompression

(PECL imagick 2.0.0)

Imagick::setImageCompression — Sets the image compression

Описание

Imagick::setImageCompression ( int $compression ) : bool

Список параметров

compression

One of the COMPRESSION constants

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image compression quality

  • « Imagick::setImageCompression
  • Imagick::setImageDelay »
  • PHP Manual
  • Imagick
  • Sets the image compression quality

Imagick::setImageCompressionQuality

(Информация о версии неизвестна, возможно, только в Git)

Imagick::setImageCompressionQuality — Sets the image compression quality

Описание

Imagick::setImageCompressionQuality ( int $quality ) : bool

Sets the image compression quality.

Список параметров

quality

The image compression quality as an integer

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::setImageCompressionQuality()

<?php
function setImageCompressionQuality($imagePath, $quality) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageCompressionQuality($quality);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sets the image delay

  • « Imagick::setImageCompressionQuality
  • Imagick::setImageDepth »
  • PHP Manual
  • Imagick
  • Sets the image delay

Imagick::setImageDelay

(PECL imagick 2.0.0)

Imagick::setImageDelay — Sets the image delay

Описание

Imagick::setImageDelay ( int $delay ) : bool

Sets the image delay. For an animated image this is the amount of time that this frame of the image should be displayed for, before displaying the next frame.

The delay can be set individually for each frame in an image.

Список параметров

delay

The amount of time expressed in 'ticks' that the image should be displayed for. For animated GIFs there are 100 ticks per second, so a value of 20 would be 20/100 of a second aka 1/5th of a second.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Modify animated Gif with Imagick::setImageDelay()

<?php

// Modify an animated Gif so that it's frames are played at a variable speed,
// varying between being shown for 50ms down to 0ms, which will cause the frame
// to be skipped in most browsers.
$imagick = new Imagick(realpath("Test.gif"));
$imagick = $imagick->coalesceImages();

$frameCount = 0;

foreach ($imagick as $frame) {
    $imagick->setImageDelay((($frameCount % 11) * 5));
    $frameCount++;
}

$imagick = $imagick->deconstructImages();

$imagick->writeImages("/path/to/save/output.gif", true);

?>


Sets the image depth

  • « Imagick::setImageDelay
  • Imagick::setImageDispose »
  • PHP Manual
  • Imagick
  • Sets the image depth

Imagick::setImageDepth

(PECL imagick 2.0.0)

Imagick::setImageDepth — Sets the image depth

Описание

Imagick::setImageDepth ( int $depth ) : bool

Sets the image depth.

Список параметров

depth

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image disposal method

  • « Imagick::setImageDepth
  • Imagick::setImageExtent »
  • PHP Manual
  • Imagick
  • Sets the image disposal method

Imagick::setImageDispose

(PECL imagick 2.0.0)

Imagick::setImageDispose — Sets the image disposal method

Описание

Imagick::setImageDispose ( int $dispose ) : bool

Sets the image disposal method.

Список параметров

dispose

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image size

  • « Imagick::setImageDispose
  • Imagick::setImageFilename »
  • PHP Manual
  • Imagick
  • Sets the image size

Imagick::setImageExtent

(PECL imagick 2.0.0)

Imagick::setImageExtent — Sets the image size

Описание

Imagick::setImageExtent ( int $columns , int $rows ) : bool

Sets the image size (i.e. columns & rows).

Список параметров

columns

rows

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the filename of a particular image

  • « Imagick::setImageExtent
  • Imagick::setImageFormat »
  • PHP Manual
  • Imagick
  • Sets the filename of a particular image

Imagick::setImageFilename

(PECL imagick 2.0.0)

Imagick::setImageFilename — Sets the filename of a particular image

Описание

Imagick::setImageFilename ( string $filename ) : bool

Sets the filename of a particular image in a sequence.

Список параметров

filename

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the format of a particular image

  • « Imagick::setImageFilename
  • Imagick::setImageGamma »
  • PHP Manual
  • Imagick
  • Sets the format of a particular image

Imagick::setImageFormat

(PECL imagick 2.0.0)

Imagick::setImageFormat — Sets the format of a particular image

Описание

Imagick::setImageFormat ( string $format ) : bool

Sets the format of a particular image in a sequence.

Список параметров

format

String presentation of the image format. Format support depends on the ImageMagick installation.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image gamma

  • « Imagick::setImageFormat
  • Imagick::setImageGravity »
  • PHP Manual
  • Imagick
  • Sets the image gamma

Imagick::setImageGamma

(PECL imagick 2.0.0)

Imagick::setImageGamma — Sets the image gamma

Описание

Imagick::setImageGamma ( float $gamma ) : bool

Sets the image gamma.

Список параметров

gamma

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image gravity

  • « Imagick::setImageGamma
  • Imagick::setImageGreenPrimary »
  • PHP Manual
  • Imagick
  • Sets the image gravity

Imagick::setImageGravity

(Информация о версии неизвестна, возможно, только в Git)

Imagick::setImageGravity — Sets the image gravity

Описание

Imagick::setImageGravity ( int $gravity ) : bool

Sets the gravity property for the current image. This method can be used to set the gravity property for a single image sequence. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или старше.

Список параметров

gravity

The gravity property. Refer to the list of gravity constants.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the image chromaticity green primary point

  • « Imagick::setImageGravity
  • Imagick::setImageIndex »
  • PHP Manual
  • Imagick
  • Sets the image chromaticity green primary point

Imagick::setImageGreenPrimary

(PECL imagick 2.0.0)

Imagick::setImageGreenPrimary — Sets the image chromaticity green primary point

Описание

Imagick::setImageGreenPrimary ( float $x , float $y ) : bool

Sets the image chromaticity green primary point.

Список параметров

x

y

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Set the iterator position

  • « Imagick::setImageGreenPrimary
  • Imagick::setImageInterlaceScheme »
  • PHP Manual
  • Imagick
  • Set the iterator position

Imagick::setImageIndex

(PECL imagick 2.0.0)

Imagick::setImageIndex — Set the iterator position

Описание

Imagick::setImageIndex ( int $index ) : bool

Set the iterator to the position in the image list specified with the index parameter.

This method has been deprecated. See Imagick::setIteratorIndex().

Список параметров

index

The position to set the iterator to

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image compression

  • « Imagick::setImageIndex
  • Imagick::setImageInterpolateMethod »
  • PHP Manual
  • Imagick
  • Sets the image compression

Imagick::setImageInterlaceScheme

(PECL imagick 2.0.0)

Imagick::setImageInterlaceScheme — Sets the image compression

Описание

Imagick::setImageInterlaceScheme ( int $interlace_scheme ) : bool

Sets the image compression.

Список параметров

interlace_scheme

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image interpolate pixel method

  • « Imagick::setImageInterlaceScheme
  • Imagick::setImageIterations »
  • PHP Manual
  • Imagick
  • Sets the image interpolate pixel method

Imagick::setImageInterpolateMethod

(PECL imagick 2.0.0)

Imagick::setImageInterpolateMethod — Sets the image interpolate pixel method

Описание

Imagick::setImageInterpolateMethod ( int $method ) : bool

Sets the image interpolate pixel method.

Список параметров

method

The method is one of the Imagick::INTERPOLATE_* constants

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image iterations

  • « Imagick::setImageInterpolateMethod
  • Imagick::setImageMatte »
  • PHP Manual
  • Imagick
  • Sets the image iterations

Imagick::setImageIterations

(PECL imagick 2.0.0)

Imagick::setImageIterations — Sets the image iterations

Описание

Imagick::setImageIterations ( int $iterations ) : bool

Sets the number of iterations an animated image is repeated.

Список параметров

iterations

The number of iterations the image should loop over. Set to '0' to loop continuously.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Basic Imagick::setImageIterations() usage

<?php

$imagick = new Imagick(realpath("Test.gif"));

$imagick = $imagick->coalesceImages();
$imagick->setImageIterations(1);
$imagick = $imagick->deconstructImages();

$imagick->writeImages('/path/to/save/OnceOnly.gif', true);

?>


Sets the image matte channel

  • « Imagick::setImageIterations
  • Imagick::setImageMatteColor »
  • PHP Manual
  • Imagick
  • Sets the image matte channel

Imagick::setImageMatte

(PECL imagick 2.0.0)

Imagick::setImageMatte — Sets the image matte channel

Описание

Imagick::setImageMatte ( bool $matte ) : bool

Sets the image matte channel. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

matte

True activates the matte channel and false disables it.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image matte color

  • « Imagick::setImageMatte
  • Imagick::setImageOpacity »
  • PHP Manual
  • Imagick
  • Sets the image matte color

Imagick::setImageMatteColor

(PECL imagick 2.0.0)

Imagick::setImageMatteColor — Sets the image matte color

Описание

Imagick::setImageMatteColor ( mixed $matte ) : bool

Sets the image matte color.

Список параметров

matte

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the parameter. Previous versions allow only an ImagickPixel object.


Sets the image opacity level

  • « Imagick::setImageMatteColor
  • Imagick::setImageOrientation »
  • PHP Manual
  • Imagick
  • Sets the image opacity level

Imagick::setImageOpacity

(PECL imagick 2.0.0)

Imagick::setImageOpacity — Sets the image opacity level

Описание

Imagick::setImageOpacity ( float $opacity ) : bool

Sets the image to the specified opacity level. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.1 или старше. This method operates on all channels, which means that for example opacity value of 0.5 will set all transparent areas to partially opaque. To add transparency to areas that are not already transparent use Imagick::evaluateImage()

Список параметров

opacity

The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 A Imagick::setImageOpacity() example

An example of using Imagick::setImageOpacity()

<?php
/* Create the object */
$image = new Imagick('source.png');

/* Set the opacity */
$image->setImageOpacity(0.7);

/* output the image */
header('Content-type: image/png');
echo $image;

?>


Sets the image orientation

  • « Imagick::setImageOpacity
  • Imagick::setImagePage »
  • PHP Manual
  • Imagick
  • Sets the image orientation

Imagick::setImageOrientation

(PECL imagick 2.0.0)

Imagick::setImageOrientation — Sets the image orientation

Описание

Imagick::setImageOrientation ( int $orientation ) : bool

Sets the image orientation.

Список параметров

orientation

One of the orientation constants

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::setImageOrientation()

<?php
//Doesn't appear to do anything
function setImageOrientation($imagePath, $orientationType) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageOrientation($orientationType);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sets the page geometry of the image

  • « Imagick::setImageOrientation
  • Imagick::setImageProfile »
  • PHP Manual
  • Imagick
  • Sets the page geometry of the image

Imagick::setImagePage

(PECL imagick 2.0.0)

Imagick::setImagePage — Sets the page geometry of the image

Описание

Imagick::setImagePage ( int $width , int $height , int $x , int $y ) : bool

Sets the page geometry of the image.

Список параметров

width

height

x

y

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Adds a named profile to the Imagick object

  • « Imagick::setImagePage
  • Imagick::setImageProperty »
  • PHP Manual
  • Imagick
  • Adds a named profile to the Imagick object

Imagick::setImageProfile

(PECL imagick 2.0.0)

Imagick::setImageProfile — Adds a named profile to the Imagick object

Описание

Imagick::setImageProfile ( string $name , string $profile ) : bool

Adds a named profile to the Imagick object. If a profile with the same name already exists, it is replaced. This method differs from the Imagick::ProfileImage() method in that it does not apply any CMS color profiles.

Список параметров

name

profile

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets an image property

  • « Imagick::setImageProfile
  • Imagick::setImageRedPrimary »
  • PHP Manual
  • Imagick
  • Sets an image property

Imagick::setImageProperty

(PECL imagick 2.0.0)

Imagick::setImageProperty — Sets an image property

Описание

Imagick::setImageProperty ( string $name , string $value ) : bool

Sets a named property to the image. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или старше.

Список параметров

name

value

Примеры

Пример #1 Using Imagick::setImageProperty():

Setting and getting image properties

<?php
$image = new Imagick();
$image->newImage(300, 200, "black");

$image->setImageProperty('Exif:Make', 'Imagick');
echo $image->getImageProperty('Exif:Make');
?>

Смотрите также

  • Imagick::getImageProperty() - Returns the named image property

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image chromaticity red primary point

  • « Imagick::setImageProperty
  • Imagick::setImageRenderingIntent »
  • PHP Manual
  • Imagick
  • Sets the image chromaticity red primary point

Imagick::setImageRedPrimary

(PECL imagick 2.0.0)

Imagick::setImageRedPrimary — Sets the image chromaticity red primary point

Описание

Imagick::setImageRedPrimary ( float $x , float $y ) : bool

Sets the image chromaticity red primary point.

Список параметров

x

y

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image rendering intent

  • « Imagick::setImageRedPrimary
  • Imagick::setImageResolution »
  • PHP Manual
  • Imagick
  • Sets the image rendering intent

Imagick::setImageRenderingIntent

(PECL imagick 2.0.0)

Imagick::setImageRenderingIntent — Sets the image rendering intent

Описание

Imagick::setImageRenderingIntent ( int $rendering_intent ) : bool

Sets the image rendering intent.

Список параметров

rendering_intent

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image resolution

  • « Imagick::setImageRenderingIntent
  • Imagick::setImageScene »
  • PHP Manual
  • Imagick
  • Sets the image resolution

Imagick::setImageResolution

(PECL imagick 2.0.0)

Imagick::setImageResolution — Sets the image resolution

Описание

Imagick::setImageResolution ( float $x_resolution , float $y_resolution ) : bool

Sets the image resolution.

Список параметров

x_resolution

y_resolution

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::setImageResolution()

<?php
function setImageResolution($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageResolution(50, 50);

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sets the image scene

  • « Imagick::setImageResolution
  • Imagick::setImageTicksPerSecond »
  • PHP Manual
  • Imagick
  • Sets the image scene

Imagick::setImageScene

(PECL imagick 2.0.0)

Imagick::setImageScene — Sets the image scene

Описание

Imagick::setImageScene ( int $scene ) : bool

Sets the image scene.

Список параметров

scene

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image ticks-per-second

  • « Imagick::setImageScene
  • Imagick::setImageType »
  • PHP Manual
  • Imagick
  • Sets the image ticks-per-second

Imagick::setImageTicksPerSecond

(PECL imagick 2.0.0)

Imagick::setImageTicksPerSecond — Sets the image ticks-per-second

Описание

Imagick::setImageTicksPerSecond ( int $ticks_per_second ) : bool

Adjust the amount of time that a frame of an animated image is displayed for.

Замечание:

For animated GIFs, this function does not change the number of 'image ticks' per second, which is always defined as 100. Instead it adjusts the amount of time that the frame is displayed for to simulate the change in 'ticks per second'.

For example, for an animated GIF where each frame is displayed for 20 ticks (1/5 of a second) when this method is called on each frame of that image with an argument of 50 the frames are adjusted to be displayed for 40 ticks (2/5 of a second) and the animation will play at half the original speed.

Список параметров

ticks_per_second

The duration for which an image should be displayed expressed in ticks per second.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Modify animated Gif with Imagick::setImageTicksPerSecond()

<?php

// Modify an animated gif so the first half of the gif is played at half the
// speed it currently is, and the second half to be played at double the speed
// it currently is

$imagick = new Imagick(realpath("Test.gif"));
$imagick = $imagick->coalesceImages();

$totalFrames = $imagick->getNumberImages();

$frameCount = 0;

foreach ($imagick as $frame) {
    $imagick->setImageTicksPerSecond(50);

    if ($frameCount < ($totalFrames / 2)) {
        // Modify the frame to be displayed for twice as long as it currently is
        $imagick->setImageTicksPerSecond(50);
    } else {
        // Modify the frame to be displayed for half as long as it currently is
        $imagick->setImageTicksPerSecond(200);
    }

    $frameCount++;
}

$imagick = $imagick->deconstructImages();

$imagick->writeImages("/path/to/save/output.gif", true);

?>


Sets the image type

  • « Imagick::setImageTicksPerSecond
  • Imagick::setImageUnits »
  • PHP Manual
  • Imagick
  • Sets the image type

Imagick::setImageType

(PECL imagick 2.0.0)

Imagick::setImageType — Sets the image type

Описание

Imagick::setImageType ( int $image_type ) : bool

Sets the image type.

Список параметров

image_type

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image units of resolution

  • « Imagick::setImageType
  • Imagick::setImageVirtualPixelMethod »
  • PHP Manual
  • Imagick
  • Sets the image units of resolution

Imagick::setImageUnits

(PECL imagick 2.0.0)

Imagick::setImageUnits — Sets the image units of resolution

Описание

Imagick::setImageUnits ( int $units ) : bool

Sets the image units of resolution.

Список параметров

units

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image virtual pixel method

  • « Imagick::setImageUnits
  • Imagick::setImageWhitePoint »
  • PHP Manual
  • Imagick
  • Sets the image virtual pixel method

Imagick::setImageVirtualPixelMethod

(PECL imagick 2.0.0)

Imagick::setImageVirtualPixelMethod — Sets the image virtual pixel method

Описание

Imagick::setImageVirtualPixelMethod ( int $method ) : bool

Sets the image virtual pixel method.

Список параметров

method

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image chromaticity white point

  • « Imagick::setImageVirtualPixelMethod
  • Imagick::setInterlaceScheme »
  • PHP Manual
  • Imagick
  • Sets the image chromaticity white point

Imagick::setImageWhitePoint

(PECL imagick 2.0.0)

Imagick::setImageWhitePoint — Sets the image chromaticity white point

Описание

Imagick::setImageWhitePoint ( float $x , float $y ) : bool

Sets the image chromaticity white point.

Список параметров

x

y

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image compression

  • « Imagick::setImageWhitePoint
  • Imagick::setIteratorIndex »
  • PHP Manual
  • Imagick
  • Sets the image compression

Imagick::setInterlaceScheme

(PECL imagick 2.0.0)

Imagick::setInterlaceScheme — Sets the image compression

Описание

Imagick::setInterlaceScheme ( int $interlace_scheme ) : bool

Sets the image compression.

Список параметров

interlace_scheme

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Set the iterator position

  • « Imagick::setInterlaceScheme
  • Imagick::setLastIterator »
  • PHP Manual
  • Imagick
  • Set the iterator position

Imagick::setIteratorIndex

(PECL imagick 2.0.0)

Imagick::setIteratorIndex — Set the iterator position

Описание

Imagick::setIteratorIndex ( int $index ) : bool

Set the iterator to the position in the image list specified with the index parameter. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

index

The position to set the iterator to

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Using Imagick::setIteratorIndex():

Create images, set and get the iterator index

<?php
$im = new Imagick();
$im->newImage(100, 100, new ImagickPixel("red"));
$im->newImage(100, 100, new ImagickPixel("green"));
$im->newImage(100, 100, new ImagickPixel("blue"));

$im->setIteratorIndex(1);
echo $im->getIteratorIndex();
?>

Смотрите также

  • Imagick::getIteratorIndex() - Gets the index of the current active image
  • Imagick::getImageIndex() - Gets the index of the current active image
  • Imagick::setImageIndex() - Set the iterator position


Sets the Imagick iterator to the last image

  • « Imagick::setIteratorIndex
  • Imagick::setOption »
  • PHP Manual
  • Imagick
  • Sets the Imagick iterator to the last image

Imagick::setLastIterator

(PECL imagick 2.0.1)

Imagick::setLastIterator — Sets the Imagick iterator to the last image

Описание

Imagick::setLastIterator ( void ) : bool

Sets the Imagick iterator to the last image.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Set an option

  • « Imagick::setLastIterator
  • Imagick::setPage »
  • PHP Manual
  • Imagick
  • Set an option

Imagick::setOption

(PECL imagick 2.0.0)

Imagick::setOption — Set an option

Описание

Imagick::setOption ( string $key , string $value ) : bool

Associates one or more options with the wand.

Список параметров

key

value

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Attempt to reach '$extent' sizeImagick::setOption()

<?php
    function renderJPG($extent) {
        $imagePath = $this->control->getImagePath();
        $imagick = new \Imagick(realpath($imagePath));
        $imagick->setImageFormat('jpg');
        $imagick->setOption('jpeg:extent', $extent);
        header("Content-Type: image/jpg");
        echo $imagick->getImageBlob();
    }

?>

Пример #2 Imagick::setOption()

<?php
    function renderPNG($imagePath, $format) {

        $imagick = new \Imagick(realpath($imagePath));
        $imagick->setImageFormat('png');
        $imagick->setOption('png:format', $format);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

    //Save as 64bit PNG.
    renderPNG($imagePath, 'png64');

?>

Пример #3 Imagick::setOption()

<?php
    function renderCustomBitDepthPNG() {
        $imagePath = $this->control->getImagePath();
        $imagick = new \Imagick(realpath($imagePath));
        $imagick->setImageFormat('png');

        $imagick->setOption('png:bit-depth', '16');
        $imagick->setOption('png:color-type', 6);
        header("Content-Type: image/png");
        $crash = true;
        if ($crash) {
            echo $imagick->getImageBlob();
        }
        else {
            $tempFilename = tempnam('./', 'imagick');
            $imagick->writeimage(realpath($tempFilename));
            echo file_get_contents($tempFilename);
        }
    }

?>


Sets the page geometry of the Imagick object

  • « Imagick::setOption
  • Imagick::setPointSize »
  • PHP Manual
  • Imagick
  • Sets the page geometry of the Imagick object

Imagick::setPage

(PECL imagick 2.0.0)

Imagick::setPage — Sets the page geometry of the Imagick object

Описание

Imagick::setPage ( int $width , int $height , int $x , int $y ) : bool

Sets the page geometry of the Imagick object.

Список параметров

width

height

x

y

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets point size

  • « Imagick::setPage
  • Imagick::setProgressMonitor »
  • PHP Manual
  • Imagick
  • Sets point size

Imagick::setPointSize

(PECL imagick 2.1.0)

Imagick::setPointSize — Sets point size

Описание

Imagick::setPointSize ( float $point_size ) : bool

Sets object's point size property. This method can be used for example to set font size for caption: pseudo-format. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или старше.

Список параметров

point_size

Point size

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::getPointSize() - Возвращает размер точки

Примеры

Пример #1 A Imagick::setPointSize() example

Example of using Imagick::setPointSize

<?php
/* Create new imagick object */
$im = new Imagick();

/* Set the font for the object */
$im->setFont("example.ttf");

/* Set the point size */
$im->setPointSize(12);

/* Create new caption */
$im->newPseudoImage(100, 100, "caption:Hello");

/* Do something with the image */
?>


Description

  • « Imagick::setPointSize
  • Imagick::setRegistry »
  • PHP Manual
  • Imagick
  • Description

Imagick::setProgressMonitor

(Информация о версии неизвестна, возможно, только в Git)

Imagick::setProgressMonitor — Description

Описание

public Imagick::setProgressMonitor ( callable $callback ) : bool

Set a callback that will be called during the processing of the Imagick image.

Список параметров

callback

The progress function to call. It should return true if image processing should continue, or false if it should be cancelled. The offset parameter indicates the progress and the span parameter indicates the total amount of work needed to be done.

callback ( mixed $offset , mixed $span ) : bool
Предостережение

The values passed to the callback function are not consistent. In particular the span parameter can increase during image processing. Because of this calculating the percentage complete of an image operation is not trivial.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::setProgressMonitor()

<?php
        $abortReason = null;

        try {
            $imagick = new \Imagick(realpath($this->control->getImagePath()));
            $startTime = time();

            $callback = function ($offset, $span)  use ($startTime, &$abortReason) {
                if (((100 * $offset) / $span)  > 20) {
                    $abortReason = "Processing reached 20%";
                    return false;
                }

                $nowTime = time();

                if ($nowTime - $startTime > 5) {
                    $abortReason = "Image processing took more than 5 seconds";
                    return false;
                }
                if (($offset % 5) == 0) {
                    echo "Progress: $offset / $span <br/>";
                }
                return true;
            };

            $imagick->setProgressMonitor($callback);

            $imagick->waveImage(2, 15);

            echo "Data len is: ".strlen($imagick->getImageBlob());
        }
        catch(\ImagickException $e) {
            if ($abortReason != null) {
                echo "Image processing was aborted: ".$abortReason."<br/>";
            }
            else {
                echo "ImagickException caught: ".$e->getMessage()." Exception type is ".get_class($e);
            }
        }

?>


Description

  • « Imagick::setProgressMonitor
  • Imagick::setResolution »
  • PHP Manual
  • Imagick
  • Description

Imagick::setRegistry

(Информация о версии неизвестна, возможно, только в Git)

Imagick::setRegistry — Description

Описание

public static Imagick::setRegistry ( string $key , string $value ) : bool

Sets the ImageMagick registry entry named key to value. This is most useful for setting "temporary-path" which controls where ImageMagick creates temporary images e.g. while processing PDFs.

Список параметров

key

value

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image resolution

  • « Imagick::setRegistry
  • Imagick::setResourceLimit »
  • PHP Manual
  • Imagick
  • Sets the image resolution

Imagick::setResolution

(PECL imagick 2.0.0)

Imagick::setResolution — Sets the image resolution

Описание

Imagick::setResolution ( float $x_resolution , float $y_resolution ) : bool

Sets the image resolution.

Список параметров

x_resolution

The horizontal resolution.

y_resolution

The vertical resolution.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примечания

Imagick::setResolution() must be called before loading or creating an image.

Смотрите также

  • Imagick::setImageResolution() - Sets the image resolution
  • Imagick::getImageResolution() - Gets the image X and Y resolution


Sets the limit for a particular resource

  • « Imagick::setResolution
  • Imagick::setSamplingFactors »
  • PHP Manual
  • Imagick
  • Sets the limit for a particular resource

Imagick::setResourceLimit

(PECL imagick 2.0.0)

Imagick::setResourceLimit — Sets the limit for a particular resource

Описание

Imagick::setResourceLimit ( int $type , int $limit ) : bool

This method is used to modify the resource limits of the underlying ImageMagick library.

Список параметров

type

Refer to the list of resourcetype constants.

limit

One of the resourcetype constants. The unit depends on the type of the resource being limited.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::getResourceLimit() - Возвращает заданный лимит ресурсов


Sets the image sampling factors

  • « Imagick::setResourceLimit
  • Imagick::setSize »
  • PHP Manual
  • Imagick
  • Sets the image sampling factors

Imagick::setSamplingFactors

(PECL imagick 2.0.0)

Imagick::setSamplingFactors — Sets the image sampling factors

Описание

Imagick::setSamplingFactors ( array $factors ) : bool

Sets the image sampling factors.

Список параметров

factors

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::setSamplingFactors()

<?php
function setSamplingFactors($imagePath) {

    $imagePath = "../imagick/images/FineDetail.png";
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageFormat('jpg');
    $imagick->setSamplingFactors(array('2x2', '1x1', '1x1'));

    $compressed = $imagick->getImageBlob();

    $reopen = new \Imagick();
    $reopen->readImageBlob($compressed);

    $reopen->resizeImage(
        $reopen->getImageWidth() * 4,
        $reopen->getImageHeight() * 4,
        \Imagick::FILTER_POINT,
        1
    );

    header("Content-Type: image/jpg");
    echo $reopen->getImageBlob();
}

?>


Sets the size of the Imagick object

  • « Imagick::setSamplingFactors
  • Imagick::setSizeOffset »
  • PHP Manual
  • Imagick
  • Sets the size of the Imagick object

Imagick::setSize

(PECL imagick 2.0.0)

Imagick::setSize — Sets the size of the Imagick object

Описание

Imagick::setSize ( int $columns , int $rows ) : bool

Sets the size of the Imagick object. Set it before you read a raw image format such as RGB, GRAY, or CMYK.

Список параметров

columns

rows

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the size and offset of the Imagick object

  • « Imagick::setSize
  • Imagick::setType »
  • PHP Manual
  • Imagick
  • Sets the size and offset of the Imagick object

Imagick::setSizeOffset

(PECL imagick 2.0.0)

Imagick::setSizeOffset — Sets the size and offset of the Imagick object

Описание

Imagick::setSizeOffset ( int $columns , int $rows , int $offset ) : bool

Sets the size and offset of the Imagick object. Set it before you read a raw image format such as RGB, GRAY, or CMYK. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

columns

The width in pixels.

rows

The height in pixels.

offset

The image offset.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image type attribute

  • « Imagick::setSizeOffset
  • Imagick::shadeImage »
  • PHP Manual
  • Imagick
  • Sets the image type attribute

Imagick::setType

(PECL imagick 2.0.0)

Imagick::setType — Sets the image type attribute

Описание

Imagick::setType ( int $image_type ) : bool

Sets the image type attribute.

Список параметров

image_type

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Creates a 3D effect

  • « Imagick::setType
  • Imagick::shadowImage »
  • PHP Manual
  • Imagick
  • Creates a 3D effect

Imagick::shadeImage

(PECL imagick 2.0.0)

Imagick::shadeImage — Creates a 3D effect

Описание

Imagick::shadeImage ( bool $gray , float $azimuth , float $elevation ) : bool

Shines a distant light on an image to create a three-dimensional effect. You control the positioning of the light with azimuth and elevation; azimuth is measured in degrees off the x axis and elevation is measured in pixels above the Z axis. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

gray

A value other than zero shades the intensity of each pixel.

azimuth

Defines the light source direction.

elevation

Defines the light source direction.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Throws ImagickException on failure.

Примеры

Пример #1 Imagick::shadeImage()

<?php
function shadeImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->shadeImage(true, 45, 20);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Simulates an image shadow

  • « Imagick::shadeImage
  • Imagick::sharpenImage »
  • PHP Manual
  • Imagick
  • Simulates an image shadow

Imagick::shadowImage

(PECL imagick 2.0.0)

Imagick::shadowImage — Simulates an image shadow

Описание

Imagick::shadowImage ( float $opacity , float $sigma , int $x , int $y ) : bool

Simulates an image shadow.

Список параметров

opacity

sigma

x

y

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::shadowImage()

<?php
function shadowImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->shadowImage(0.4, 10, 50, 5);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sharpens an image

  • « Imagick::shadowImage
  • Imagick::shaveImage »
  • PHP Manual
  • Imagick
  • Sharpens an image

Imagick::sharpenImage

(PECL imagick 2.0.0)

Imagick::sharpenImage — Sharpens an image

Описание

Imagick::sharpenImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Sharpens an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and Imagick::sharpenImage() selects a suitable radius for you.

Список параметров

radius

sigma

channel

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::sharpenImage()

<?php
function sharpenImage($imagePath, $radius, $sigma, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->sharpenimage($radius, $sigma, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Shaves pixels from the image edges

  • « Imagick::sharpenImage
  • Imagick::shearImage »
  • PHP Manual
  • Imagick
  • Shaves pixels from the image edges

Imagick::shaveImage

(PECL imagick 2.0.0)

Imagick::shaveImage — Shaves pixels from the image edges

Описание

Imagick::shaveImage ( int $columns , int $rows ) : bool

Shaves pixels from the image edges. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

Список параметров

columns

rows

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::shaveImage()

<?php
function shaveImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->shaveImage(100, 50);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creating a parallelogram

  • « Imagick::shaveImage
  • Imagick::sigmoidalContrastImage »
  • PHP Manual
  • Imagick
  • Creating a parallelogram

Imagick::shearImage

(PECL imagick 2.0.0)

Imagick::shearImage — Creating a parallelogram

Описание

Imagick::shearImage ( mixed $background , float $x_shear , float $y_shear ) : bool

Slides one edge of an image along the X or Y axis, creating a parallelogram. An X direction shear slides an edge along the X axis, while a Y direction shear slides an edge along the Y axis. The amount of the shear is controlled by a shear angle. For X direction shears, x_shear is measured relative to the Y axis, and similarly, for Y direction shears y_shear is measured relative to the X axis. Empty triangles left over from shearing the image are filled with the background color.

Список параметров

background

The background color

x_shear

The number of degrees to shear on the x axis

y_shear

The number of degrees to shear on the y axis

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Примеры

Пример #1 Imagick::shearImage()

<?php
function shearImage($imagePath, $color, $shearX, $shearY) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->shearimage($color, $shearX, $shearY);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Adjusts the contrast of an image

  • « Imagick::shearImage
  • Imagick::sketchImage »
  • PHP Manual
  • Imagick
  • Adjusts the contrast of an image

Imagick::sigmoidalContrastImage

(PECL imagick 2.0.0)

Imagick::sigmoidalContrastImage — Adjusts the contrast of an image

Описание

Imagick::sigmoidalContrastImage ( bool $sharpen , float $alpha , float $beta [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Adjusts the contrast of an image with a non-linear sigmoidal contrast algorithm. Increase the contrast of the image using a sigmoidal transfer function without saturating highlights or shadows. Contrast indicates how much to increase the contrast (0 is none; 3 is typical; 20 is pushing it); mid-point indicates where midtones fall in the resultant image (0 is white; 50 is middle-gray; 100 is black). Set sharpen to TRUE to increase the image contrast otherwise the contrast is reduced.

See also » ImageMagick v6 Examples - Image Transformations — Sigmoidal Non-linearity Contrast

Список параметров

sharpen

If true increase the contrast, if false decrease the contrast.

alpha

The amount of contrast to apply. 1 is very little, 5 is a significant amount, 20 is extreme.

beta

Where the midpoint of the gradient will be. This value should be in the range 0 to 1 - mutliplied by the quantum value for ImageMagick.

channel

Which color channels the contrast will be applied to.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Create a gradient image using Imagick::sigmoidalContrastImage() suitable for blending two images together smoothly, with the blending defined by $contrast and $the midpoint

<?php

function generateBlendImage($width, $height, $contrast = 10, $midpoint = 0.5) {
    $imagick = new Imagick();
    $imagick->newPseudoImage($width, $height, 'gradient:black-white');
    $quanta = $imagick->getQuantumRange();
    $imagick->sigmoidalContrastImage(true, $contrast, $midpoint * $quanta["quantumRangeLong"]);

    return $imagick;
}

?>

Ошибки

Вызывает ImagickException при ошибке.


Simulates a pencil sketch

  • « Imagick::sigmoidalContrastImage
  • Imagick::smushImages »
  • PHP Manual
  • Imagick
  • Simulates a pencil sketch

Imagick::sketchImage

(PECL imagick 2.0.0)

Imagick::sketchImage — Simulates a pencil sketch

Описание

Imagick::sketchImage ( float $radius , float $sigma , float $angle ) : bool

Simulates a pencil sketch. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and Imagick::sketchImage() selects a suitable radius for you. Angle gives the angle of the blurring motion. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

radius

The radius of the Gaussian, in pixels, not counting the center pixel

sigma

The standard deviation of the Gaussian, in pixels.

angle

Apply the effect along this angle.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::sketchImage()

<?php
function sketchImage($imagePath, $radius, $sigma, $angle) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->sketchimage($radius, $sigma, $angle);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::sketchImage
  • Imagick::solarizeImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::smushImages

(Информация о версии неизвестна, возможно, только в Git)

Imagick::smushImages — Description

Описание

public Imagick::smushImages ( bool $stack , int $offset ) : Imagick

Takes all images from the current image pointer to the end of the image list and smushs them to each other top-to-bottom if the stack parameter is true, otherwise left-to-right.

Список параметров

stack

offset

Возвращаемые значения

The new smushed image.

Примеры

Пример #1 Imagick::smushImages()

<?php
function smushImages($imagePath, $imagePath2) {

    $imagick = new \Imagick(realpath($imagePath));
    $imagick2 = new \Imagick(realpath($imagePath2));

    $imagick->addimage($imagick2);
    $smushed = $imagick->smushImages(false, 50);
    $smushed->setImageFormat('jpg');
    header("Content-Type: image/jpg");
    echo $smushed->getImageBlob();
}

?>


Applies a solarizing effect to the image

  • « Imagick::smushImages
  • Imagick::sparseColorImage »
  • PHP Manual
  • Imagick
  • Applies a solarizing effect to the image

Imagick::solarizeImage

(PECL imagick 2.0.0)

Imagick::solarizeImage — Applies a solarizing effect to the image

Описание

Imagick::solarizeImage ( int $threshold ) : bool

Applies a special effect to the image, similar to the effect achieved in a photo darkroom by selectively exposing areas of photo sensitive paper to light. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the solarization.

Список параметров

threshold

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::solarizeImage()

<?php
function solarizeImage($imagePath, $solarizeThreshold) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->solarizeImage($solarizeThreshold * \Imagick::getQuantum());
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Interpolates colors

  • « Imagick::solarizeImage
  • Imagick::spliceImage »
  • PHP Manual
  • Imagick
  • Interpolates colors

Imagick::sparseColorImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::sparseColorImage — Interpolates colors

Описание

public Imagick::sparseColorImage ( int $SPARSE_METHOD , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Given the arguments array containing numeric values this method interpolates the colors found at those coordinates across the whole image using sparse_method. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.5 или старше.

Список параметров

SPARSE_METHOD

Refer to this list of sparse method constants

arguments

An array containing the coordinates. The array is in format array(1,1, 2,45)

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage()

<?php
    function renderImageBarycentric2() {
        $points = [
            [0.30, 0.10, 'red'],
            [0.10, 0.80, 'blue'],
            [0.70, 0.60, 'lime'],
            [0.80, 0.20, 'yellow'],
        ];
        $imagick = createGradientImage(
            400, 400,
            $points,
            \Imagick::SPARSECOLORMETHOD_BARYCENTRIC
        );
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Пример #2 SPARSECOLORMETHOD_BILINEAR Imagick::sparseColorImage()

<?php
    function renderImageBilinear() {
        $points = [[0.30, 0.10, 'red'], [0.10, 0.80, 'blue'], [0.70, 0.60, 'lime'], [0.80, 0.20, 'yellow'],];
        $imagick = createGradientImage(500, 500, $points, \Imagick::SPARSECOLORMETHOD_BILINEAR);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Пример #3 SPARSECOLORMETHOD_SPEPARDS Imagick::sparseColorImage()

<?php
    function renderImageShepards() {
        $points = [
            [0.30, 0.10, 'red'],
            [0.10, 0.80, 'blue'],
            [0.70, 0.60, 'lime'],
            [0.80, 0.20, 'yellow'],
        ];
        $imagick = createGradientImage(600, 600, $points, \Imagick::SPARSECOLORMETHOD_SPEPARDS);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Пример #4 SPARSECOLORMETHOD_VORONOI Imagick::sparseColorImage()

<?php
    function renderImageVoronoi() {
        $points = [
            [0.30, 0.10, 'red'],
            [0.10, 0.80, 'blue'],
            [0.70, 0.60, 'lime'],
            [0.80, 0.20, 'yellow'],
        ];
        $imagick = createGradientImage(500, 500, $points, \Imagick::SPARSECOLORMETHOD_VORONOI);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Пример #5 SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage()

<?php
    function renderImageBarycentric() {
        $points = [
            [0, 0, 'skyblue'],
            [-1, 1, 'skyblue'],
            [1, 1, 'black'],
        ];
        $imagick = createGradientImage(600, 200, $points, \Imagick::SPARSECOLORMETHOD_BARYCENTRIC);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Пример #6 createGradientImage is used by other examples. Imagick::sparseColorImage()

<?php
function createGradientImage($width, $height, $colorPoints, $sparseMethod, $absolute = false) {

    $imagick = new \Imagick();
    $imagick->newImage($width, $height, "white");
    $imagick->setImageFormat("png");

    $barycentricPoints = array();

    foreach ($colorPoints as $colorPoint) {

        if ($absolute == true) {
            $barycentricPoints[] = $colorPoint[0];
            $barycentricPoints[] = $colorPoint[1];
        }
        else {
            $barycentricPoints[] = $colorPoint[0] * $width;
            $barycentricPoints[] = $colorPoint[1] * $height;
        }

        if (is_string($colorPoint[2])) {
            $imagickPixel = new \ImagickPixel($colorPoint[2]);
        }
        else if ($colorPoint[2] instanceof \ImagickPixel) {
            $imagickPixel = $colorPoint[2];
        }
        else{
            $errorMessage = sprintf(
                "Value %s is neither a string nor an ImagickPixel class. Cannot use as a color.",
                $colorPoint[2]
            );

            throw new \InvalidArgumentException(
                $errorMessage
            );
        }

        $red = $imagickPixel->getColorValue(\Imagick::COLOR_RED);
        $green = $imagickPixel->getColorValue(\Imagick::COLOR_GREEN);
        $blue = $imagickPixel->getColorValue(\Imagick::COLOR_BLUE);
        $alpha = $imagickPixel->getColorValue(\Imagick::COLOR_ALPHA);

        $barycentricPoints[] = $red;
        $barycentricPoints[] = $green;
        $barycentricPoints[] = $blue;
        $barycentricPoints[] = $alpha;
    }

    $imagick->sparseColorImage($sparseMethod, $barycentricPoints);

    return $imagick;
}

?>


Splices a solid color into the image

  • « Imagick::sparseColorImage
  • Imagick::spreadImage »
  • PHP Manual
  • Imagick
  • Splices a solid color into the image

Imagick::spliceImage

(PECL imagick 2.0.0)

Imagick::spliceImage — Splices a solid color into the image

Описание

Imagick::spliceImage ( int $width , int $height , int $x , int $y ) : bool

Splices a solid color into the image.

Список параметров

width

height

x

y

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::spliceImage()

<?php
function spliceImage($imagePath, $startX, $startY, $width, $height) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->spliceImage($width, $height, $startX, $startY);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Randomly displaces each pixel in a block

  • « Imagick::spliceImage
  • Imagick::statisticImage »
  • PHP Manual
  • Imagick
  • Randomly displaces each pixel in a block

Imagick::spreadImage

(PECL imagick 2.0.0)

Imagick::spreadImage — Randomly displaces each pixel in a block

Описание

Imagick::spreadImage ( float $radius ) : bool

Special effects method that randomly displaces each pixel in a block defined by the radius parameter.

Список параметров

radius

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::spreadImage()

<?php
function spreadImage($imagePath, $radius) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->spreadImage($radius);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::spreadImage
  • Imagick::steganoImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::statisticImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::statisticImage — Description

Описание

public Imagick::statisticImage ( int $type , int $width , int $height [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Replace each pixel with corresponding statistic from the neighborhood of the specified width and height.

Список параметров

type

width

height

channel

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::statisticImage()

<?php
function statisticImage($imagePath, $statisticType, $width, $height, $channel) {
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->statisticImage(
        $statisticType,
        $width,
        $height,
        $channel
    );

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

statisticImage($imagePath, \Imagick::STATISTIC_MEDIAN, 5, 5, \Imagick::CHANNEL_DEFAULT);

?>


Hides a digital watermark within the image

  • « Imagick::statisticImage
  • Imagick::stereoImage »
  • PHP Manual
  • Imagick
  • Hides a digital watermark within the image

Imagick::steganoImage

(PECL imagick 2.0.0)

Imagick::steganoImage — Hides a digital watermark within the image

Описание

Imagick::steganoImage ( Imagick $watermark_wand , int $offset ) : Imagick

Hides a digital watermark within the image. Recover the hidden watermark later to prove that the authenticity of an image. Offset defines the start position within the image to hide the watermark.

Список параметров

watermark_wand

offset

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Composites two images

  • « Imagick::steganoImage
  • Imagick::stripImage »
  • PHP Manual
  • Imagick
  • Composites two images

Imagick::stereoImage

(PECL imagick 2.0.0)

Imagick::stereoImage — Composites two images

Описание

Imagick::stereoImage ( Imagick $offset_wand ) : bool

Composites two images and produces a single image that is the composite of a left and right image of a stereo pair.

Список параметров

offset_wand

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Strips an image of all profiles and comments

  • « Imagick::stereoImage
  • Imagick::subImageMatch »
  • PHP Manual
  • Imagick
  • Strips an image of all profiles and comments

Imagick::stripImage

(PECL imagick 2.0.0)

Imagick::stripImage — Strips an image of all profiles and comments

Описание

Imagick::stripImage ( void ) : bool

Strips an image of all profiles and comments.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Description

  • « Imagick::stripImage
  • Imagick::swirlImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::subImageMatch

(Информация о версии неизвестна, возможно, только в Git)

Imagick::subImageMatch — Description

Описание

public Imagick::subImageMatch ( Imagick $Imagick [, array &$offset [, float &$similarity ]] ) : Imagick

Searches for a subimage in the current image and returns a similarity image such that an exact match location is completely white and if none of the pixels match, black, otherwise some gray level in-between. You can also pass in the optional parameters bestMatch and similarity. After calling the function similarity will be set to the 'score' of the similarity between the subimage and the matching position in the larger image, bestMatch will contain an associative array with elements x, y, width, height that describe the matching region.

Список параметров

Imagick

offset

similarity

A new image that displays the amount of similarity at each pixel.

Возвращаемые значения

Примеры

Пример #1 Imagick::subImageMatch()

<?php
function subImageMatch($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick2 = clone $imagick;
    $imagick2->cropimage(40, 40, 250, 110);
    $imagick2->vignetteimage(0, 1, 3, 3);

    $similarity = null;
    $bestMatch = null;
    $comparison = $imagick->subImageMatch($imagick2, $bestMatch, $similarity);

    $comparison->setImageFormat('png');
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Swirls the pixels about the center of the image

  • « Imagick::subImageMatch
  • Imagick::textureImage »
  • PHP Manual
  • Imagick
  • Swirls the pixels about the center of the image

Imagick::swirlImage

(PECL imagick 2.0.0)

Imagick::swirlImage — Swirls the pixels about the center of the image

Описание

Imagick::swirlImage ( float $degrees ) : bool

Swirls the pixels about the center of the image, where degrees indicates the sweep of the arc through which each pixel is moved. You get a more dramatic effect as the degrees move from 1 to 360.

Список параметров

degrees

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::swirlImage()

<?php
function swirlImage($imagePath, $swirl) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->swirlImage($swirl);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Repeatedly tiles the texture image

  • « Imagick::swirlImage
  • Imagick::thresholdImage »
  • PHP Manual
  • Imagick
  • Repeatedly tiles the texture image

Imagick::textureImage

(PECL imagick 2.0.0)

Imagick::textureImage — Repeatedly tiles the texture image

Описание

Imagick::textureImage ( Imagick $texture_wand ) : Imagick

Repeatedly tiles the texture image across and down the image canvas.

Список параметров

texture_wand

Imagick object to use as texture image

Возвращаемые значения

Returns a new Imagick object that has the repeated texture applied.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::textureImage()

<?php
function textureImage($imagePath) {
    $image = new \Imagick();
    $image->newImage(640, 480, new \ImagickPixel('pink'));
    $image->setImageFormat("jpg");
    $texture = new \Imagick(realpath($imagePath));
    $texture->scaleimage($image->getimagewidth() / 4, $image->getimageheight() / 4);
    $image = $image->textureImage($texture);
    header("Content-Type: image/jpg");
    echo $image;
}

?>


Изменяет отдельные пиксели на основе порогового значения

  • « Imagick::textureImage
  • Imagick::thumbnailImage »
  • PHP Manual
  • Imagick
  • Изменяет отдельные пиксели на основе порогового значения

Imagick::thresholdImage

(PECL imagick 2.0.0)

Imagick::thresholdImage — Изменяет отдельные пиксели на основе порогового значения

Описание

Imagick::thresholdImage ( float $threshold [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Изменяет отдельные пиксели в зависимости от их интенсивности по сравнению с пороговым значением. Результатом будет высоко-контрастное, двухцветное изображение.

Список параметров

threshold

channel

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::thresholdImage()

<?php
function thresholdimage($imagePath, $threshold, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->thresholdimage($threshold * \Imagick::getQuantum(), $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Changes the size of an image

  • « Imagick::thresholdImage
  • Imagick::tintImage »
  • PHP Manual
  • Imagick
  • Changes the size of an image

Imagick::thumbnailImage

(PECL imagick 2.0.0)

Imagick::thumbnailImage — Changes the size of an image

Описание

Imagick::thumbnailImage ( int $columns , int $rows [, bool $bestfit = FALSE [, bool $fill = FALSE [, bool $legacy = FALSE ]]] ) : bool

Changes the size of an image to the given dimensions and removes any associated profiles. The goal is to produce small, low cost thumbnail images suited for display on the Web. If TRUE is given as a third parameter then columns and rows parameters are used as maximums for each side. Both sides will be scaled down until they match or are smaller than the parameter given for the side.

Замечание: Поведение параметра bestfit было изменено в Imagick 3.0.0. До этой версии при изменении изображения размером 200x150 до 400x300 никаких операций не происходило. В Imagick 3.0.0 и далее изображение будет масштабировано до размеров 400x300, так как это наилучшим образом соответствует ("best fit") данным размерам. Если используется параметр bestfit, то ширина и высота также должны быть определены.

Список параметров

columns

Image width

rows

Image height

bestfit

Whether to force maximum values

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::thumbnailImage()

<?php
function thumbnailImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setbackgroundcolor('rgb(64, 64, 64)');
    $imagick->thumbnailImage(100, 100, true, true);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Applies a color vector to each pixel in the image

  • « Imagick::thumbnailImage
  • Imagick::__toString »
  • PHP Manual
  • Imagick
  • Applies a color vector to each pixel in the image

Imagick::tintImage

(PECL imagick 2.0.0)

Imagick::tintImage — Applies a color vector to each pixel in the image

Описание

Imagick::tintImage ( mixed $tint , mixed $opacity [, bool $legacy = FALSE ] ) : bool

Applies a color vector to each pixel in the image. The length of the vector is 0 for black and white and at its maximum for the midtones. The vector weighing function is f(x)=(1-(4.0*((x-0.5)*(x-0.5)))).

Список параметров

tint

opacity

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the first parameter and a float representing the opacity value as the second parameter. Previous versions allow only an ImagickPixel objects.

Примеры

Пример #1 Imagick::tintImage()

<?php
function tintImage($r, $g, $b, $a) {
    $a = $a / 100;

    $imagick = new \Imagick();
    $imagick->newPseudoImage(400, 400, 'gradient:black-white');

    $tint = new \ImagickPixel("rgb($r, $g, $b)");
    $opacity = new \ImagickPixel("rgb(128, 128, 128, $a)");
    $imagick->tintImage($tint, $opacity);
    $imagick->setImageFormat('png');
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Returns the image as a string

  • « Imagick::tintImage
  • Imagick::transformImage »
  • PHP Manual
  • Imagick
  • Returns the image as a string

Imagick::__toString

(Информация о версии неизвестна, возможно, только в Git)

Imagick::__toString — Returns the image as a string

Описание

Imagick::__toString ( void ) : string

Returns the current image as string. This will only return a single image; it should not be used for Imagick objects that contain multiple images e.g. an animated GIF or PDF with multiple pages.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the string content on success or an empty string on failure.

Смотрите также

  • Imagick::getImageBlob() - Returns the image sequence as a blob
  • Imagick::getImagesBlob() - Returns all image sequences as a blob


Convenience method for setting crop size and the image geometry

  • « Imagick::__toString
  • Imagick::transformImageColorspace »
  • PHP Manual
  • Imagick
  • Convenience method for setting crop size and the image geometry

Imagick::transformImage

(PECL imagick 2.0.0)

Imagick::transformImage — Convenience method for setting crop size and the image geometry

Описание

Imagick::transformImage ( string $crop , string $geometry ) : Imagick

A convenience method for setting crop size and the image geometry from strings. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

crop

A crop geometry string. This geometry defines a subregion of the image to crop.

geometry

An image geometry string. This geometry defines the final size of the image.

Возвращаемые значения

Returns an Imagick object containing the transformed image.

Примеры

Пример #1 Using Imagick::transformImage():

The example creates a 100x100 black image.

<?php
$image = new Imagick();
$image->newImage(300, 200, "black");
$new_image = $image->transformImage("100x100", "100x100");
$new_image->writeImage('test_out.jpg');
?>

Смотрите также

  • Imagick::cropImage() - Извлекает область изображения
  • Imagick::resizeImage() - Scales an image
  • Imagick::thumbnailImage() - Changes the size of an image


Transforms an image to a new colorspace

  • « Imagick::transformImage
  • Imagick::transparentPaintImage »
  • PHP Manual
  • Imagick
  • Transforms an image to a new colorspace

Imagick::transformImageColorspace

(Информация о версии неизвестна, возможно, только в Git)

Imagick::transformImageColorspace — Transforms an image to a new colorspace

Описание

Imagick::transformImageColorspace ( int $colorspace ) : bool

Transforms an image to a new colorspace.

Список параметров

colorspace

The colorspace the image should be transformed to, one of the COLORSPACE constants e.g. Imagick::COLORSPACE_CMYK.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::transformImageColorspace() example

Transforms an image to a new colorspace, and then extracts a single channel so that the individual channel values can be viewed.

<?php
function transformImageColorspace($imagePath, $colorSpace, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->transformimagecolorspace($colorSpace);
    //channel should be one of the channel constants e.g. \Imagick::CHANNEL_BLUE
    $imagick->separateImageChannel($channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}
?>

Смотрите также

  • Imagick::setColorSpace() - Set colorspace

Примеры

Пример #2 Imagick::transformImageColorspace()

<?php
function transformImageColorspace($imagePath, $colorSpace, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->transformimagecolorspace($colorSpace);
    $imagick->separateImageChannel($channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Paints pixels transparent

  • « Imagick::transformImageColorspace
  • Imagick::transposeImage »
  • PHP Manual
  • Imagick
  • Paints pixels transparent

Imagick::transparentPaintImage

(Информация о версии неизвестна, возможно, только в Git)

Imagick::transparentPaintImage — Paints pixels transparent

Описание

Imagick::transparentPaintImage ( mixed $target , float $alpha , float $fuzz , bool $invert ) : bool

Paints pixels matching the target color transparent. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или старше.

Список параметров

target

The target color to paint

alpha

Уровень прозрачности: 1.0 полностью непрозрачный, тогда как 0.0 полностью прозрачен.

fuzz

Мера округления (fuzz). Для примера, установите значение fuzz в 10 и красный цвет с интенсивностью 100 и 102 будет интерпретироваться как один и тот же цвет.

invert

If TRUE paints any pixel that does not match the target color.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::transparentPaintImage()

<?php
function transparentPaintImage($color, $alpha, $fuzz) {
    $imagick = new \Imagick(realpath("images/BlueScreen.jpg"));

    //Need to be in a format that supports transparency
    $imagick->setimageformat('png');

    $imagick->transparentPaintImage(
        $color, $alpha, $fuzz * \Imagick::getQuantum(), false
    );

    //Not required, but helps tidy up left over pixels
    $imagick->despeckleimage();

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Creates a vertical mirror image

  • « Imagick::transparentPaintImage
  • Imagick::transverseImage »
  • PHP Manual
  • Imagick
  • Creates a vertical mirror image

Imagick::transposeImage

(PECL imagick 2.0.0)

Imagick::transposeImage — Creates a vertical mirror image

Описание

Imagick::transposeImage ( void ) : bool

Creates a vertical mirror image by reflecting the pixels around the central x-axis while rotating them 90-degrees. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::transverseImage() - Creates a horizontal mirror image

Примеры

Пример #1 Imagick::transposeImage()

<?php
function transposeImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->transposeImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a horizontal mirror image

  • « Imagick::transposeImage
  • Imagick::trimImage »
  • PHP Manual
  • Imagick
  • Creates a horizontal mirror image

Imagick::transverseImage

(PECL imagick 2.0.0)

Imagick::transverseImage — Creates a horizontal mirror image

Описание

Imagick::transverseImage ( void ) : bool

Creates a horizontal mirror image by reflecting the pixels around the central y-axis while rotating them 270-degrees. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::transposeImage() - Creates a vertical mirror image

Примеры

Пример #1 Imagick::transverseImage()

<?php
function transverseImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->transverseImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Remove edges from the image

  • « Imagick::transverseImage
  • Imagick::uniqueImageColors »
  • PHP Manual
  • Imagick
  • Remove edges from the image

Imagick::trimImage

(PECL imagick 2.0.0)

Imagick::trimImage — Remove edges from the image

Описание

Imagick::trimImage ( float $fuzz ) : bool

Remove edges that are the background color from the image. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

fuzz

By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. This parameter represents the variation on the quantum range.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Using Imagick::trimImage():

Trim an image, then display to the browser.

<?php
/* Create the object and read the image in */
$im = new Imagick("image.jpg");

/* Trim the image. */
$im->trimImage(0);

/* Ouput the image */
header("Content-Type: image/" . $im->getImageFormat());
echo $im;
?>

Смотрите также

  • Imagick::getQuantumDepth() - Возвращает величину глубины
  • Imagick::getQuantumRange() - Возвращает величину размера спектра Imagick
  • imagecropauto() - Crop an image automatically using one of the available modes


Discards all but one of any pixel color

  • « Imagick::trimImage
  • Imagick::unsharpMaskImage »
  • PHP Manual
  • Imagick
  • Discards all but one of any pixel color

Imagick::uniqueImageColors

(PECL imagick 2.0.0)

Imagick::uniqueImageColors — Discards all but one of any pixel color

Описание

Imagick::uniqueImageColors ( void ) : bool

Discards all but one of any pixel color. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::uniqueImageColors()

<?php
function uniqueImageColors($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    //Reduce the image to 256 colours nicely.
    $imagick->quantizeImage(256, \Imagick::COLORSPACE_YIQ, 0, false, false);
    $imagick->uniqueImageColors();
    $imagick->scaleimage($imagick->getImageWidth(), $imagick->getImageHeight() * 20);
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sharpens an image

  • « Imagick::uniqueImageColors
  • Imagick::valid »
  • PHP Manual
  • Imagick
  • Sharpens an image

Imagick::unsharpMaskImage

(PECL imagick 2.0.0)

Imagick::unsharpMaskImage — Sharpens an image

Описание

Imagick::unsharpMaskImage ( float $radius , float $sigma , float $amount , float $threshold [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Sharpens an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and Imagick::UnsharpMaskImage() selects a suitable radius for you.

Список параметров

radius

sigma

amount

threshold

channel

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::unsharpMaskImage()

<?php
function unsharpMaskImage($imagePath, $radius, $sigma, $amount, $unsharpThreshold) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->unsharpMaskImage($radius, $sigma, $amount, $unsharpThreshold);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Checks if the current item is valid

  • « Imagick::unsharpMaskImage
  • Imagick::vignetteImage »
  • PHP Manual
  • Imagick
  • Checks if the current item is valid

Imagick::valid

(PECL imagick 2.0.0)

Imagick::valid — Checks if the current item is valid

Описание

Imagick::valid ( void ) : bool

Checks if the current item is valid.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Adds vignette filter to the image

  • « Imagick::valid
  • Imagick::waveImage »
  • PHP Manual
  • Imagick
  • Adds vignette filter to the image

Imagick::vignetteImage

(PECL imagick 2.0.0)

Imagick::vignetteImage — Adds vignette filter to the image

Описание

Imagick::vignetteImage ( float $blackPoint , float $whitePoint , int $x , int $y ) : bool

Softens the edges of the image in vignette style. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

blackPoint

The black point.

whitePoint

The white point

x

X offset of the ellipse

y

Y offset of the ellipse

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::waveImage() - Applies wave filter to the image
  • Imagick::swirlImage() - Swirls the pixels about the center of the image

Примеры

Пример #1 Imagick::vignetteImage()

<?php
function vignetteImage($imagePath, $blackPoint, $whitePoint, $x, $y) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->vignetteImage($blackPoint, $whitePoint, $x, $y);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Applies wave filter to the image

  • « Imagick::vignetteImage
  • Imagick::whiteThresholdImage »
  • PHP Manual
  • Imagick
  • Applies wave filter to the image

Imagick::waveImage

(PECL imagick 2.0.0)

Imagick::waveImage — Applies wave filter to the image

Описание

Imagick::waveImage ( float $amplitude , float $length ) : bool

Applies a wave filter to the image. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

amplitude

The amplitude of the wave.

length

The length of the wave.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Смотрите также

  • Imagick::solarizeImage() - Applies a solarizing effect to the image
  • Imagick::oilpaintImage() - Simulates an oil painting
  • Imagick::embossImage() - Returns a grayscale image with a three-dimensional effect
  • Imagick::addNoiseImage() - Накладывает случайный шум на изображение
  • Imagick::swirlImage() - Swirls the pixels about the center of the image

Примеры

Пример #1 WaveImage can be quite slow Imagick::waveImage()

<?php
function waveImage($imagePath, $amplitude, $length) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->waveImage($amplitude, $length);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Force all pixels above the threshold into white

  • « Imagick::waveImage
  • Imagick::writeImage »
  • PHP Manual
  • Imagick
  • Force all pixels above the threshold into white

Imagick::whiteThresholdImage

(PECL imagick 2.0.0)

Imagick::whiteThresholdImage — Force all pixels above the threshold into white

Описание

Imagick::whiteThresholdImage ( mixed $threshold ) : bool

Is like Imagick::ThresholdImage() but force all pixels above the threshold into white while leaving all pixels below the threshold unchanged.

Список параметров

threshold

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.

Примеры

Пример #1 Imagick::whiteThresholdImage()

<?php
function whiteThresholdImage($imagePath, $color) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->whiteThresholdImage($color);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Writes an image to the specified filename

  • « Imagick::whiteThresholdImage
  • Imagick::writeImageFile »
  • PHP Manual
  • Imagick
  • Writes an image to the specified filename

Imagick::writeImage

(PECL imagick 0.9.0-0.9.9)

Imagick::writeImage — Writes an image to the specified filename

Описание

Imagick::writeImage ([ string $filename = NULL ] ) : bool

Writes an image to the specified filename. If the filename parameter is NULL, the image is written to the filename set by Imagick::readImage() or Imagick::setImageFilename().

Список параметров

filename

Filename where to write the image. The extension of the filename defines the type of the file. Format can be forced regardless of file extension using format: prefix, for example "jpg:test.png".

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Записывает изображение в файл

  • « Imagick::writeImage
  • Imagick::writeImages »
  • PHP Manual
  • Imagick
  • Записывает изображение в файл

Imagick::writeImageFile

(Информация о версии неизвестна, возможно, только в Git)

Imagick::writeImageFile — Записывает изображение в файл

Описание

Imagick::writeImageFile ( resource $filehandle [, string $format ] ) : bool

Записывает изображение в заданный файловый дескриптор. Дескриптор должен быть предварительно открыт, например с помощью fopen. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

filehandle

Файловый дескриптор

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Writes an image or image sequence

  • « Imagick::writeImageFile
  • Imagick::writeImagesFile »
  • PHP Manual
  • Imagick
  • Writes an image or image sequence

Imagick::writeImages

(PECL imagick 0.9.0-0.9.9)

Imagick::writeImages — Writes an image or image sequence

Описание

Imagick::writeImages ( string $filename , bool $adjoin ) : bool

Writes an image or image sequence.

Список параметров

filename

adjoin

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Writes frames to a filehandle

  • « Imagick::writeImages
  • ImagickDraw »
  • PHP Manual
  • Imagick
  • Writes frames to a filehandle

Imagick::writeImagesFile

(Информация о версии неизвестна, возможно, только в Git)

Imagick::writeImagesFile — Writes frames to a filehandle

Описание

Imagick::writeImagesFile ( resource $filehandle [, string $format ] ) : bool

Writes all image frames into an open filehandle. This method can be used to write animated gifs or other multiframe images into open filehandle. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

filehandle

Filehandle where to write the images

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Класс ImagickDraw

(PECL imagick 2.0.0)

Обзор классов

ImagickDraw {
affine ( array $affine ) : bool
annotation ( float $x , float $y , string $text ) : bool
arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed ) : bool
bezier ( array $coordinates ) : bool
circle ( float $ox , float $oy , float $px , float $py ) : bool
clear ( void ) : bool
clone ( void ) : ImagickDraw
color ( float $x , float $y , int $paintMethod ) : bool
comment ( string $comment ) : bool
composite ( int $compose , float $x , float $y , float $width , float $height , Imagick $compositeWand ) : bool
__construct ( void )
destroy ( void ) : bool
ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end ) : bool
getClipPath ( void ) : string
getClipRule ( void ) : int
getClipUnits ( void ) : int
getFillColor ( void ) : ImagickPixel
getFillOpacity ( void ) : float
getFillRule ( void ) : int
getFont ( void ) : string
getFontFamily ( void ) : string
getFontSize ( void ) : float
public getFontStretch ( void ) : int
getFontStyle ( void ) : int
getFontWeight ( void ) : int
getGravity ( void ) : int
getStrokeAntialias ( void ) : bool
getStrokeColor ( void ) : ImagickPixel
getStrokeDashArray ( void ) : array
getStrokeDashOffset ( void ) : float
getStrokeLineCap ( void ) : int
getStrokeLineJoin ( void ) : int
getStrokeMiterLimit ( void ) : int
getStrokeOpacity ( void ) : float
getStrokeWidth ( void ) : float
getTextAlignment ( void ) : int
getTextAntialias ( void ) : bool
getTextDecoration ( void ) : int
getTextEncoding ( void ) : string
public getTextInterlineSpacing ( void ) : float
public getTextInterwordSpacing ( void ) : float
public getTextKerning ( void ) : float
getTextUnderColor ( void ) : ImagickPixel
getVectorGraphics ( void ) : string
line ( float $sx , float $sy , float $ex , float $ey ) : bool
matte ( float $x , float $y , int $paintMethod ) : bool
pathClose ( void ) : bool
pathCurveToAbsolute ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y ) : bool
pathCurveToQuadraticBezierAbsolute ( float $x1 , float $y1 , float $x , float $y ) : bool
pathCurveToQuadraticBezierRelative ( float $x1 , float $y1 , float $x , float $y ) : bool
pathCurveToQuadraticBezierSmoothAbsolute ( float $x , float $y ) : bool
pathCurveToQuadraticBezierSmoothRelative ( float $x , float $y ) : bool
pathCurveToRelative ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y ) : bool
pathCurveToSmoothAbsolute ( float $x2 , float $y2 , float $x , float $y ) : bool
pathCurveToSmoothRelative ( float $x2 , float $y2 , float $x , float $y ) : bool
pathEllipticArcAbsolute ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y ) : bool
pathEllipticArcRelative ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y ) : bool
pathFinish ( void ) : bool
pathLineToAbsolute ( float $x , float $y ) : bool
pathLineToHorizontalAbsolute ( float $x ) : bool
pathLineToHorizontalRelative ( float $x ) : bool
pathLineToRelative ( float $x , float $y ) : bool
pathLineToVerticalAbsolute ( float $y ) : bool
pathLineToVerticalRelative ( float $y ) : bool
pathMoveToAbsolute ( float $x , float $y ) : bool
pathMoveToRelative ( float $x , float $y ) : bool
pathStart ( void ) : bool
point ( float $x , float $y ) : bool
polygon ( array $coordinates ) : bool
polyline ( array $coordinates ) : bool
pop ( void ) : bool
popClipPath ( void ) : bool
popDefs ( void ) : bool
popPattern ( void ) : bool
push ( void ) : bool
pushClipPath ( string $clip_mask_id ) : bool
pushDefs ( void ) : bool
pushPattern ( string $pattern_id , float $x , float $y , float $width , float $height ) : bool
rectangle ( float $x1 , float $y1 , float $x2 , float $y2 ) : bool
render ( void ) : bool
public resetVectorGraphics ( void ) : bool
rotate ( float $degrees ) : bool
roundRectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry ) : bool
scale ( float $x , float $y ) : bool
setClipPath ( string $clip_mask ) : bool
setClipRule ( int $fill_rule ) : bool
setClipUnits ( int $clip_units ) : bool
setFillAlpha ( float $opacity ) : bool
setFillColor ( ImagickPixel $fill_pixel ) : bool
setFillOpacity ( float $fillOpacity ) : bool
setFillPatternURL ( string $fill_url ) : bool
setFillRule ( int $fill_rule ) : bool
setFont ( string $font_name ) : bool
setFontFamily ( string $font_family ) : bool
setFontSize ( float $pointsize ) : bool
setFontStretch ( int $fontStretch ) : bool
setFontStyle ( int $style ) : bool
setFontWeight ( int $font_weight ) : bool
setGravity ( int $gravity ) : bool
public setResolution ( float $x_resolution , float $y_resolution ) : bool
setStrokeAlpha ( float $opacity ) : bool
setStrokeAntialias ( bool $stroke_antialias ) : bool
setStrokeColor ( ImagickPixel $stroke_pixel ) : bool
setStrokeDashArray ( array $dashArray ) : bool
setStrokeDashOffset ( float $dash_offset ) : bool
setStrokeLineCap ( int $linecap ) : bool
setStrokeLineJoin ( int $linejoin ) : bool
setStrokeMiterLimit ( int $miterlimit ) : bool
setStrokeOpacity ( float $stroke_opacity ) : bool
setStrokePatternURL ( string $stroke_url ) : bool
setStrokeWidth ( float $stroke_width ) : bool
setTextAlignment ( int $alignment ) : bool
setTextAntialias ( bool $antiAlias ) : bool
setTextDecoration ( int $decoration ) : bool
setTextEncoding ( string $encoding ) : bool
public setTextInterlineSpacing ( float $spacing ) : bool
public setTextInterwordSpacing ( float $spacing ) : bool
public setTextKerning ( float $kerning ) : bool
setTextUnderColor ( ImagickPixel $under_color ) : bool
setVectorGraphics ( string $xml ) : bool
setViewbox ( int $x1 , int $y1 , int $x2 , int $y2 ) : bool
skewX ( float $degrees ) : bool
skewY ( float $degrees ) : bool
translate ( float $x , float $y ) : bool
}

Содержание

  • ImagickDraw::affine — Adjusts the current affine transformation matrix
  • ImagickDraw::annotation — Draws text on the image
  • ImagickDraw::arc — Draws an arc
  • ImagickDraw::bezier — Draws a bezier curve
  • ImagickDraw::circle — Draws a circle
  • ImagickDraw::clear — Clears the ImagickDraw
  • ImagickDraw::clone — Makes an exact copy of the specified ImagickDraw object
  • ImagickDraw::color — Draws color on image
  • ImagickDraw::comment — Adds a comment
  • ImagickDraw::composite — Composites an image onto the current image
  • ImagickDraw::__construct — The ImagickDraw constructor
  • ImagickDraw::destroy — Frees all associated resources
  • ImagickDraw::ellipse — Draws an ellipse on the image
  • ImagickDraw::getClipPath — Obtains the current clipping path ID
  • ImagickDraw::getClipRule — Returns the current polygon fill rule
  • ImagickDraw::getClipUnits — Returns the interpretation of clip path units
  • ImagickDraw::getFillColor — Returns the fill color
  • ImagickDraw::getFillOpacity — Returns the opacity used when drawing
  • ImagickDraw::getFillRule — Returns the fill rule
  • ImagickDraw::getFont — Returns the font
  • ImagickDraw::getFontFamily — Returns the font family
  • ImagickDraw::getFontSize — Returns the font pointsize
  • ImagickDraw::getFontStretch — Description
  • ImagickDraw::getFontStyle — Returns the font style
  • ImagickDraw::getFontWeight — Returns the font weight
  • ImagickDraw::getGravity — Returns the text placement gravity
  • ImagickDraw::getStrokeAntialias — Returns the current stroke antialias setting
  • ImagickDraw::getStrokeColor — Returns the color used for stroking object outlines
  • ImagickDraw::getStrokeDashArray — Returns an array representing the pattern of dashes and gaps used to stroke paths
  • ImagickDraw::getStrokeDashOffset — Returns the offset into the dash pattern to start the dash
  • ImagickDraw::getStrokeLineCap — Returns the shape to be used at the end of open subpaths when they are stroked
  • ImagickDraw::getStrokeLineJoin — Returns the shape to be used at the corners of paths when they are stroked
  • ImagickDraw::getStrokeMiterLimit — Returns the stroke miter limit
  • ImagickDraw::getStrokeOpacity — Returns the opacity of stroked object outlines
  • ImagickDraw::getStrokeWidth — Returns the width of the stroke used to draw object outlines
  • ImagickDraw::getTextAlignment — Returns the text alignment
  • ImagickDraw::getTextAntialias — Returns the current text antialias setting
  • ImagickDraw::getTextDecoration — Returns the text decoration
  • ImagickDraw::getTextEncoding — Returns the code set used for text annotations
  • ImagickDraw::getTextInterlineSpacing — Description
  • ImagickDraw::getTextInterwordSpacing — Description
  • ImagickDraw::getTextKerning — Description
  • ImagickDraw::getTextUnderColor — Returns the text under color
  • ImagickDraw::getVectorGraphics — Returns a string containing vector graphics
  • ImagickDraw::line — Draws a line
  • ImagickDraw::matte — Paints on the image's opacity channel
  • ImagickDraw::pathClose — Adds a path element to the current path
  • ImagickDraw::pathCurveToAbsolute — Draws a cubic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierAbsolute — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierRelative — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToRelative — Draws a cubic Bezier curve
  • ImagickDraw::pathCurveToSmoothAbsolute — Draws a cubic Bezier curve
  • ImagickDraw::pathCurveToSmoothRelative — Draws a cubic Bezier curve
  • ImagickDraw::pathEllipticArcAbsolute — Draws an elliptical arc
  • ImagickDraw::pathEllipticArcRelative — Draws an elliptical arc
  • ImagickDraw::pathFinish — Terminates the current path
  • ImagickDraw::pathLineToAbsolute — Draws a line path
  • ImagickDraw::pathLineToHorizontalAbsolute — Draws a horizontal line path
  • ImagickDraw::pathLineToHorizontalRelative — Draws a horizontal line
  • ImagickDraw::pathLineToRelative — Draws a line path
  • ImagickDraw::pathLineToVerticalAbsolute — Draws a vertical line
  • ImagickDraw::pathLineToVerticalRelative — Draws a vertical line path
  • ImagickDraw::pathMoveToAbsolute — Starts a new sub-path
  • ImagickDraw::pathMoveToRelative — Starts a new sub-path
  • ImagickDraw::pathStart — Declares the start of a path drawing list
  • ImagickDraw::point — Draws a point
  • ImagickDraw::polygon — Draws a polygon
  • ImagickDraw::polyline — Draws a polyline
  • ImagickDraw::pop — Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw
  • ImagickDraw::popClipPath — Terminates a clip path definition
  • ImagickDraw::popDefs — Terminates a definition list
  • ImagickDraw::popPattern — Terminates a pattern definition
  • ImagickDraw::push — Clones the current ImagickDraw and pushes it to the stack
  • ImagickDraw::pushClipPath — Starts a clip path definition
  • ImagickDraw::pushDefs — Indicates that following commands create named elements for early processing
  • ImagickDraw::pushPattern — Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern
  • ImagickDraw::rectangle — Draws a rectangle
  • ImagickDraw::render — Renders all preceding drawing commands onto the image
  • ImagickDraw::resetVectorGraphics — Description
  • ImagickDraw::rotate — Applies the specified rotation to the current coordinate space
  • ImagickDraw::roundRectangle — Draws a rounded rectangle
  • ImagickDraw::scale — Adjusts the scaling factor
  • ImagickDraw::setClipPath — Associates a named clipping path with the image
  • ImagickDraw::setClipRule — Set the polygon fill rule to be used by the clipping path
  • ImagickDraw::setClipUnits — Sets the interpretation of clip path units
  • ImagickDraw::setFillAlpha — Sets the opacity to use when drawing using the fill color or fill texture
  • ImagickDraw::setFillColor — Sets the fill color to be used for drawing filled objects
  • ImagickDraw::setFillOpacity — Sets the opacity to use when drawing using the fill color or fill texture
  • ImagickDraw::setFillPatternURL — Sets the URL to use as a fill pattern for filling objects
  • ImagickDraw::setFillRule — Sets the fill rule to use while drawing polygons
  • ImagickDraw::setFont — Sets the fully-specified font to use when annotating with text
  • ImagickDraw::setFontFamily — Sets the font family to use when annotating with text
  • ImagickDraw::setFontSize — Sets the font pointsize to use when annotating with text
  • ImagickDraw::setFontStretch — Sets the font stretch to use when annotating with text
  • ImagickDraw::setFontStyle — Sets the font style to use when annotating with text
  • ImagickDraw::setFontWeight — Sets the font weight
  • ImagickDraw::setGravity — Sets the text placement gravity
  • ImagickDraw::setResolution — Description
  • ImagickDraw::setStrokeAlpha — Specifies the opacity of stroked object outlines
  • ImagickDraw::setStrokeAntialias — Controls whether stroked outlines are antialiased
  • ImagickDraw::setStrokeColor — Sets the color used for stroking object outlines
  • ImagickDraw::setStrokeDashArray — Specifies the pattern of dashes and gaps used to stroke paths
  • ImagickDraw::setStrokeDashOffset — Specifies the offset into the dash pattern to start the dash
  • ImagickDraw::setStrokeLineCap — Specifies the shape to be used at the end of open subpaths when they are stroked
  • ImagickDraw::setStrokeLineJoin — Specifies the shape to be used at the corners of paths when they are stroked
  • ImagickDraw::setStrokeMiterLimit — Specifies the miter limit
  • ImagickDraw::setStrokeOpacity — Specifies the opacity of stroked object outlines
  • ImagickDraw::setStrokePatternURL — Sets the pattern used for stroking object outlines
  • ImagickDraw::setStrokeWidth — Sets the width of the stroke used to draw object outlines
  • ImagickDraw::setTextAlignment — Specifies a text alignment
  • ImagickDraw::setTextAntialias — Controls whether text is antialiased
  • ImagickDraw::setTextDecoration — Specifies a decoration
  • ImagickDraw::setTextEncoding — Specifies the text code set
  • ImagickDraw::setTextInterlineSpacing — Description
  • ImagickDraw::setTextInterwordSpacing — Description
  • ImagickDraw::setTextKerning — Description
  • ImagickDraw::setTextUnderColor — Specifies the color of a background rectangle
  • ImagickDraw::setVectorGraphics — Sets the vector graphics
  • ImagickDraw::setViewbox — Sets the overall canvas size
  • ImagickDraw::skewX — Skews the current coordinate system in the horizontal direction
  • ImagickDraw::skewY — Skews the current coordinate system in the vertical direction
  • ImagickDraw::translate — Applies a translation to the current coordinate system


Adjusts the current affine transformation matrix

  • « ImagickDraw
  • ImagickDraw::annotation »
  • PHP Manual
  • ImagickDraw
  • Adjusts the current affine transformation matrix

ImagickDraw::affine

(PECL imagick 2.0.0)

ImagickDraw::affine — Adjusts the current affine transformation matrix

Описание

ImagickDraw::affine ( array $affine ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Adjusts the current affine transformation matrix with the specified affine transformation matrix.

Список параметров

affine

Affine matrix parameters

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::affine()

<?php
function affine($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeWidth(1);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);

    $PI = 3.141592653589794;
    $angle = 60 * $PI / 360;

    //Scale the drawing co-ordinates.
    $affineScale = array("sx" => 1.75, "sy" => 1.75, "rx" => 0, "ry" => 0, "tx" => 0, "ty" => 0);

    //Shear the drawing co-ordinates.
    $affineShear = array("sx" => 1, "sy" => 1, "rx" => sin($angle), "ry" => -sin($angle), "tx" => 0, "ty" => 0);

    //Rotate the drawing co-ordinates. The shear affine matrix
    //produces incorrectly scaled drawings.
    $affineRotate = array("sx" => cos($angle), "sy" => cos($angle), "rx" => sin($angle), "ry" => -sin($angle), "tx" => 0, "ty" => 0,);

    //Translate (offset) the drawing
    $affineTranslate = array("sx" => 1, "sy" => 1, "rx" => 0, "ry" => 0, "tx" => 30, "ty" => 30);

    //The identiy affine matrix
    $affineIdentity = array("sx" => 1, "sy" => 1, "rx" => 0, "ry" => 0, "tx" => 0, "ty" => 0);

    $examples = [$affineScale, $affineShear, $affineRotate, $affineTranslate, $affineIdentity,];

    $count = 0;

    foreach ($examples as $example) {
        $draw->push();
        $draw->translate(($count % 2) * 250, intval($count / 2) * 250);
        $draw->translate(100, 100);
        $draw->affine($example);
        $draw->rectangle(-50, -50, 50, 50);
        $draw->pop();
        $count++;
    }

    //Create an image object which the draw commands can be rendered into
    $image = new \Imagick();
    $image->newImage(500, 750, $backgroundColor);
    $image->setImageFormat("png");

    //Render the draw commands in the ImagickDraw object
    //into the image.
    $image->drawImage($draw);

    //Send the image to the browser
    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Draws text on the image

  • « ImagickDraw::affine
  • ImagickDraw::arc »
  • PHP Manual
  • ImagickDraw
  • Draws text on the image

ImagickDraw::annotation

(PECL imagick 2.0.0)

ImagickDraw::annotation — Draws text on the image

Описание

ImagickDraw::annotation ( float $x , float $y , string $text ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws text on the image.

Список параметров

x

The x coordinate where text is drawn

y

The y coordinate where text is drawn

text

The text to draw on the image

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws an arc

  • « ImagickDraw::annotation
  • ImagickDraw::bezier »
  • PHP Manual
  • ImagickDraw
  • Draws an arc

ImagickDraw::arc

(PECL imagick 2.0.0)

ImagickDraw::arc — Draws an arc

Описание

ImagickDraw::arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws an arc falling within a specified bounding rectangle on the image.

Список параметров

sx

Starting x ordinate of bounding rectangle

sy

starting y ordinate of bounding rectangle

ex

ending x ordinate of bounding rectangle

ey

ending y ordinate of bounding rectangle

sd

starting degrees of rotation

ed

ending degrees of rotation

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::arc()

<?php
function arc($strokeColor, $fillColor, $backgroundColor, $startX, $startY, $endX, $endY, $startAngle, $endAngle) {

    //Create a ImagickDraw object to draw into.
    $draw = new \ImagickDraw();
    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);

    $draw->arc($startX, $startY, $endX, $endY, $startAngle, $endAngle);

    //Create an image object which the draw commands can be rendered into
    $image = new \Imagick();
    $image->newImage(IMAGE_WIDTH, IMAGE_HEIGHT, $backgroundColor);
    $image->setImageFormat("png");

    //Render the draw commands in the ImagickDraw object
    //into the image.
    $image->drawImage($draw);

    //Send the image to the browser
    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Draws a bezier curve

  • « ImagickDraw::arc
  • ImagickDraw::circle »
  • PHP Manual
  • ImagickDraw
  • Draws a bezier curve

ImagickDraw::bezier

(PECL imagick 2.0.0)

ImagickDraw::bezier — Draws a bezier curve

Описание

ImagickDraw::bezier ( array $coordinates ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a bezier curve through a set of points on the image.

Список параметров

coordinates

Multidimensional array like array( array( 'x' => 1, 'y' => 2 ), array( 'x' => 3, 'y' => 4 ) )

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::bezier()

<?php
function bezier($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $strokeColor = new \ImagickPixel($strokeColor);
    $fillColor = new \ImagickPixel($fillColor);

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);

    $smoothPointsSet = [
        [
            ['x' => 10.0 * 5, 'y' => 10.0 * 5],
            ['x' => 30.0 * 5, 'y' => 90.0 * 5],
            ['x' => 25.0 * 5, 'y' => 10.0 * 5],
            ['x' => 50.0 * 5, 'y' => 50.0 * 5],
        ],
        [
            ['x' => 50.0 * 5, 'y' => 50.0 * 5],
            ['x' => 75.0 * 5, 'y' => 90.0 * 5],
            ['x' => 70.0 * 5, 'y' => 10.0 * 5],
            ['x' => 90.0 * 5, 'y' => 40.0 * 5],
        ],
    ];

    foreach ($smoothPointsSet as $points) {
        $draw->bezier($points);
    }

    $disjointPoints = [
        [
            ['x' => 10 * 5, 'y' => 10 * 5],
            ['x' => 30 * 5, 'y' => 90 * 5],
            ['x' => 25 * 5, 'y' => 10 * 5],
            ['x' => 50 * 5, 'y' => 50 * 5],
        ],
        [
            ['x' => 50 * 5, 'y' => 50 * 5],
            ['x' => 80 * 5, 'y' => 50 * 5],
            ['x' => 70 * 5, 'y' => 10 * 5],
            ['x' => 90 * 5, 'y' => 40 * 5],
         ]
    ];
    $draw->translate(0, 200);

    foreach ($disjointPoints as $points) {
        $draw->bezier($points);
    }

    //Create an image object which the draw commands can be rendered into
    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    //Render the draw commands in the ImagickDraw object
    //into the image.
    $imagick->drawImage($draw);

    //Send the image to the browser
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Draws a circle

  • « ImagickDraw::bezier
  • ImagickDraw::clear »
  • PHP Manual
  • ImagickDraw
  • Draws a circle

ImagickDraw::circle

(PECL imagick 2.0.0)

ImagickDraw::circle — Draws a circle

Описание

ImagickDraw::circle ( float $ox , float $oy , float $px , float $py ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a circle on the image.

Список параметров

ox

origin x coordinate

oy

origin y coordinate

px

perimeter x coordinate

py

perimeter y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::circle()

<?php
function circle($strokeColor, $fillColor, $backgroundColor, $originX, $originY, $endX, $endY) {

    //Create a ImagickDraw object to draw into.
    $draw = new \ImagickDraw();

    $strokeColor = new \ImagickPixel($strokeColor);
    $fillColor = new \ImagickPixel($fillColor);

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->circle($originX, $originY, $endX, $endY);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Clears the ImagickDraw

  • « ImagickDraw::circle
  • ImagickDraw::clone »
  • PHP Manual
  • ImagickDraw
  • Clears the ImagickDraw

ImagickDraw::clear

(PECL imagick 2.0.0)

ImagickDraw::clear — Clears the ImagickDraw

Описание

ImagickDraw::clear ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Clears the ImagickDraw object of any accumulated commands, and resets the settings it contains to their defaults.

Возвращаемые значения

Returns an ImagickDraw object.


Makes an exact copy of the specified ImagickDraw object

  • « ImagickDraw::clear
  • ImagickDraw::color »
  • PHP Manual
  • ImagickDraw
  • Makes an exact copy of the specified ImagickDraw object

ImagickDraw::clone

(PECL imagick 2.0.0)

ImagickDraw::clone — Makes an exact copy of the specified ImagickDraw object

Описание

ImagickDraw::clone ( void ) : ImagickDraw
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Makes an exact copy of the specified ImagickDraw object.

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity


Draws color on image

  • « ImagickDraw::clone
  • ImagickDraw::comment »
  • PHP Manual
  • ImagickDraw
  • Draws color on image

ImagickDraw::color

(PECL imagick 2.0.0)

ImagickDraw::color — Draws color on image

Описание

ImagickDraw::color ( float $x , float $y , int $paintMethod ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws color on image using the current fill color, starting at specified position, and using specified paint method.

Список параметров

x

x coordinate of the paint

y

y coordinate of the paint

paintMethod

one of the PAINT_ constants

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Adds a comment

  • « ImagickDraw::color
  • ImagickDraw::composite »
  • PHP Manual
  • ImagickDraw
  • Adds a comment

ImagickDraw::comment

(PECL imagick 2.0.0)

ImagickDraw::comment — Adds a comment

Описание

ImagickDraw::comment ( string $comment ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Adds a comment to a vector output stream.

Список параметров

comment

The comment string to add to vector output stream

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Composites an image onto the current image

  • « ImagickDraw::comment
  • ImagickDraw::__construct »
  • PHP Manual
  • ImagickDraw
  • Composites an image onto the current image

ImagickDraw::composite

(PECL imagick 2.0.0)

ImagickDraw::composite — Composites an image onto the current image

Описание

ImagickDraw::composite ( int $compose , float $x , float $y , float $width , float $height , Imagick $compositeWand ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Composites an image onto the current image, using the specified composition operator, specified position, and at the specified size.

Список параметров

compose

composition operator. One of COMPOSITE_ constants

x

x coordinate of the top left corner

y

y coordinate of the top left corner

width

width of the composition image

height

height of the composition image

compositeWand

the Imagick object where composition image is taken from

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickDraw::composite()

<?php
function composite($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setFillOpacity(1);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(2);
    $draw->setFont("../fonts/CANDY.TTF");
    $draw->setFontSize(140);
    $draw->rectangle(0, 0, 1000, 300);
    $draw->setFillColor('white');
    $draw->setfillopacity(1);
    $draw->annotation(50, 180, "Lorem Ipsum!");

    //Create an image object which the draw commands can be rendered into
    $imagick = new \Imagick();
    $imagick->newImage(1000, 302, $backgroundColor);
    $imagick->setImageFormat("png");

    //Render the draw commands in the ImagickDraw object
    //into the image.
    $imagick->drawImage($draw);

    //Send the image to the browser
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


The ImagickDraw constructor

  • « ImagickDraw::composite
  • ImagickDraw::destroy »
  • PHP Manual
  • ImagickDraw
  • The ImagickDraw constructor

ImagickDraw::__construct

(PECL imagick 2.0.0)

ImagickDraw::__construct — The ImagickDraw constructor

Описание

ImagickDraw::__construct ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

The ImagickDraw constructor

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Frees all associated resources

  • « ImagickDraw::__construct
  • ImagickDraw::ellipse »
  • PHP Manual
  • ImagickDraw
  • Frees all associated resources

ImagickDraw::destroy

(PECL imagick 2.0.0)

ImagickDraw::destroy — Frees all associated resources

Описание

ImagickDraw::destroy ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Frees all resources associated with the ImagickDraw object.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws an ellipse on the image

  • « ImagickDraw::destroy
  • ImagickDraw::getClipPath »
  • PHP Manual
  • ImagickDraw
  • Draws an ellipse on the image

ImagickDraw::ellipse

(PECL imagick 2.0.0)

ImagickDraw::ellipse — Draws an ellipse on the image

Описание

ImagickDraw::ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws an ellipse on the image.

Список параметров

ox

oy

rx

ry

start

end

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::ellipse()

<?php
function ellipse($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->ellipse(125, 70, 100, 50, 0, 360);
    $draw->ellipse(350, 70, 100, 50, 0, 315);

    $draw->push();
    $draw->translate(125, 250);
    $draw->rotate(30);
    $draw->ellipse(0, 0, 100, 50, 0, 360);
    $draw->pop();

    $draw->push();
    $draw->translate(350, 250);
    $draw->rotate(30);
    $draw->ellipse(0, 0, 100, 50, 0, 315);
    $draw->pop();

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Obtains the current clipping path ID

  • « ImagickDraw::ellipse
  • ImagickDraw::getClipRule »
  • PHP Manual
  • ImagickDraw
  • Obtains the current clipping path ID

ImagickDraw::getClipPath

(PECL imagick 2.0.0)

ImagickDraw::getClipPath — Obtains the current clipping path ID

Описание

ImagickDraw::getClipPath ( void ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Obtains the current clipping path ID.

Возвращаемые значения

Returns a string containing the clip path ID or false if no clip path exists.


Returns the current polygon fill rule

  • « ImagickDraw::getClipPath
  • ImagickDraw::getClipUnits »
  • PHP Manual
  • ImagickDraw
  • Returns the current polygon fill rule

ImagickDraw::getClipRule

(PECL imagick 2.0.0)

ImagickDraw::getClipRule — Returns the current polygon fill rule

Описание

ImagickDraw::getClipRule ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the current polygon fill rule to be used by the clipping path.

Возвращаемые значения

Returns one of the FILLRULE_ constants.


Returns the interpretation of clip path units

  • « ImagickDraw::getClipRule
  • ImagickDraw::getFillColor »
  • PHP Manual
  • ImagickDraw
  • Returns the interpretation of clip path units

ImagickDraw::getClipUnits

(PECL imagick 2.0.0)

ImagickDraw::getClipUnits — Returns the interpretation of clip path units

Описание

ImagickDraw::getClipUnits ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the interpretation of clip path units.

Возвращаемые значения

Returns an int on success.


Returns the fill color

  • « ImagickDraw::getClipUnits
  • ImagickDraw::getFillOpacity »
  • PHP Manual
  • ImagickDraw
  • Returns the fill color

ImagickDraw::getFillColor

(PECL imagick 2.0.0)

ImagickDraw::getFillColor — Returns the fill color

Описание

ImagickDraw::getFillColor ( void ) : ImagickPixel
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the fill color used for drawing filled objects.

Возвращаемые значения

Returns an ImagickPixel object.


Returns the opacity used when drawing

  • « ImagickDraw::getFillColor
  • ImagickDraw::getFillRule »
  • PHP Manual
  • ImagickDraw
  • Returns the opacity used when drawing

ImagickDraw::getFillOpacity

(PECL imagick 2.0.0)

ImagickDraw::getFillOpacity — Returns the opacity used when drawing

Описание

ImagickDraw::getFillOpacity ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the opacity used when drawing using the fill color or fill texture. Fully opaque is 1.0.

Возвращаемые значения

The opacity.


Returns the fill rule

  • « ImagickDraw::getFillOpacity
  • ImagickDraw::getFont »
  • PHP Manual
  • ImagickDraw
  • Returns the fill rule

ImagickDraw::getFillRule

(PECL imagick 2.0.0)

ImagickDraw::getFillRule — Returns the fill rule

Описание

ImagickDraw::getFillRule ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the fill rule used while drawing polygons.

Возвращаемые значения

Returns a FILLRULE_ constant


Returns the font

  • « ImagickDraw::getFillRule
  • ImagickDraw::getFontFamily »
  • PHP Manual
  • ImagickDraw
  • Returns the font

ImagickDraw::getFont

(PECL imagick 2.0.0)

ImagickDraw::getFont — Returns the font

Описание

ImagickDraw::getFont ( void ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns a string specifying the font used when annotating with text.

Возвращаемые значения

Returns a string on success and false if no font is set.


Returns the font family

  • « ImagickDraw::getFont
  • ImagickDraw::getFontSize »
  • PHP Manual
  • ImagickDraw
  • Returns the font family

ImagickDraw::getFontFamily

(PECL imagick 2.0.0)

ImagickDraw::getFontFamily — Returns the font family

Описание

ImagickDraw::getFontFamily ( void ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the font family to use when annotating with text.

Возвращаемые значения

Returns the font family currently selected or false if font family is not set.


Returns the font pointsize

  • « ImagickDraw::getFontFamily
  • ImagickDraw::getFontStretch »
  • PHP Manual
  • ImagickDraw
  • Returns the font pointsize

ImagickDraw::getFontSize

(PECL imagick 2.0.0)

ImagickDraw::getFontSize — Returns the font pointsize

Описание

ImagickDraw::getFontSize ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the font pointsize used when annotating with text.

Возвращаемые значения

Returns the font size associated with the current ImagickDraw object.


Description

  • « ImagickDraw::getFontSize
  • ImagickDraw::getFontStyle »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::getFontStretch

(Информация о версии неизвестна, возможно, только в Git)

ImagickDraw::getFontStretch — Description

Описание

public ImagickDraw::getFontStretch ( void ) : int

Gets the font stretch to use when annotating with text. Returns a StretchType.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Returns the font style

  • « ImagickDraw::getFontStretch
  • ImagickDraw::getFontWeight »
  • PHP Manual
  • ImagickDraw
  • Returns the font style

ImagickDraw::getFontStyle

(PECL imagick 2.0.0)

ImagickDraw::getFontStyle — Returns the font style

Описание

ImagickDraw::getFontStyle ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the font style used when annotating with text.

Возвращаемые значения

Returns the font style constant (STYLE_) associated with the ImagickDraw object or 0 if no style is set.


Returns the font weight

  • « ImagickDraw::getFontStyle
  • ImagickDraw::getGravity »
  • PHP Manual
  • ImagickDraw
  • Returns the font weight

ImagickDraw::getFontWeight

(PECL imagick 2.0.0)

ImagickDraw::getFontWeight — Returns the font weight

Описание

ImagickDraw::getFontWeight ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the font weight used when annotating with text.

Возвращаемые значения

Returns an int on success and 0 if no weight is set.


Returns the text placement gravity

  • « ImagickDraw::getFontWeight
  • ImagickDraw::getStrokeAntialias »
  • PHP Manual
  • ImagickDraw
  • Returns the text placement gravity

ImagickDraw::getGravity

(PECL imagick 2.0.0)

ImagickDraw::getGravity — Returns the text placement gravity

Описание

ImagickDraw::getGravity ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the text placement gravity used when annotating with text.

Возвращаемые значения

Returns a GRAVITY_ constant on success and 0 if no gravity is set.


Returns the current stroke antialias setting

  • « ImagickDraw::getGravity
  • ImagickDraw::getStrokeColor »
  • PHP Manual
  • ImagickDraw
  • Returns the current stroke antialias setting

ImagickDraw::getStrokeAntialias

(PECL imagick 2.0.0)

ImagickDraw::getStrokeAntialias — Returns the current stroke antialias setting

Описание

ImagickDraw::getStrokeAntialias ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the current stroke antialias setting. Stroked outlines are antialiased by default. When antialiasing is disabled stroked pixels are thresholded to determine if the stroke color or underlying canvas color should be used.

Возвращаемые значения

Returns TRUE if antialiasing is on and false if it is off.


Returns the color used for stroking object outlines

  • « ImagickDraw::getStrokeAntialias
  • ImagickDraw::getStrokeDashArray »
  • PHP Manual
  • ImagickDraw
  • Returns the color used for stroking object outlines

ImagickDraw::getStrokeColor

(PECL imagick 2.0.0)

ImagickDraw::getStrokeColor — Returns the color used for stroking object outlines

Описание

ImagickDraw::getStrokeColor ( void ) : ImagickPixel
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the color used for stroking object outlines.

Список параметров

stroke_color

Возвращаемые значения

Returns an ImagickPixel object which describes the color.


Returns an array representing the pattern of dashes and gaps used to stroke paths

  • « ImagickDraw::getStrokeColor
  • ImagickDraw::getStrokeDashOffset »
  • PHP Manual
  • ImagickDraw
  • Returns an array representing the pattern of dashes and gaps used to stroke paths

ImagickDraw::getStrokeDashArray

(PECL imagick 2.0.0)

ImagickDraw::getStrokeDashArray — Returns an array representing the pattern of dashes and gaps used to stroke paths

Описание

ImagickDraw::getStrokeDashArray ( void ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns an array representing the pattern of dashes and gaps used to stroke paths.

Возвращаемые значения

Returns an array on success and empty array if not set.


Returns the offset into the dash pattern to start the dash

  • « ImagickDraw::getStrokeDashArray
  • ImagickDraw::getStrokeLineCap »
  • PHP Manual
  • ImagickDraw
  • Returns the offset into the dash pattern to start the dash

ImagickDraw::getStrokeDashOffset

(PECL imagick 2.0.0)

ImagickDraw::getStrokeDashOffset — Returns the offset into the dash pattern to start the dash

Описание

ImagickDraw::getStrokeDashOffset ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the offset into the dash pattern to start the dash.

Возвращаемые значения

Returns a float representing the offset and 0 if it's not set.


Returns the shape to be used at the end of open subpaths when they are stroked

  • « ImagickDraw::getStrokeDashOffset
  • ImagickDraw::getStrokeLineJoin »
  • PHP Manual
  • ImagickDraw
  • Returns the shape to be used at the end of open subpaths when they are stroked

ImagickDraw::getStrokeLineCap

(PECL imagick 2.0.0)

ImagickDraw::getStrokeLineCap — Returns the shape to be used at the end of open subpaths when they are stroked

Описание

ImagickDraw::getStrokeLineCap ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the shape to be used at the end of open subpaths when they are stroked.

Возвращаемые значения

Returns one of the LINECAP_ constants or 0 if stroke linecap is not set.


Returns the shape to be used at the corners of paths when they are stroked

  • « ImagickDraw::getStrokeLineCap
  • ImagickDraw::getStrokeMiterLimit »
  • PHP Manual
  • ImagickDraw
  • Returns the shape to be used at the corners of paths when they are stroked

ImagickDraw::getStrokeLineJoin

(PECL imagick 2.0.0)

ImagickDraw::getStrokeLineJoin — Returns the shape to be used at the corners of paths when they are stroked

Описание

ImagickDraw::getStrokeLineJoin ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the shape to be used at the corners of paths (or other vector shapes) when they are stroked.

Возвращаемые значения

Returns one of the LINEJOIN_ constants or 0 if stroke line join is not set.


Returns the stroke miter limit

  • « ImagickDraw::getStrokeLineJoin
  • ImagickDraw::getStrokeOpacity »
  • PHP Manual
  • ImagickDraw
  • Returns the stroke miter limit

ImagickDraw::getStrokeMiterLimit

(PECL imagick 2.0.0)

ImagickDraw::getStrokeMiterLimit — Returns the stroke miter limit

Описание

ImagickDraw::getStrokeMiterLimit ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The 'miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'.

Возвращаемые значения

Returns an int describing the miter limit and 0 if no miter limit is set.


Returns the opacity of stroked object outlines

  • « ImagickDraw::getStrokeMiterLimit
  • ImagickDraw::getStrokeWidth »
  • PHP Manual
  • ImagickDraw
  • Returns the opacity of stroked object outlines

ImagickDraw::getStrokeOpacity

(PECL imagick 2.0.0)

ImagickDraw::getStrokeOpacity — Returns the opacity of stroked object outlines

Описание

ImagickDraw::getStrokeOpacity ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the opacity of stroked object outlines.

Возвращаемые значения

Returns a double describing the opacity.


Returns the width of the stroke used to draw object outlines

  • « ImagickDraw::getStrokeOpacity
  • ImagickDraw::getTextAlignment »
  • PHP Manual
  • ImagickDraw
  • Returns the width of the stroke used to draw object outlines

ImagickDraw::getStrokeWidth

(PECL imagick 2.0.0)

ImagickDraw::getStrokeWidth — Returns the width of the stroke used to draw object outlines

Описание

ImagickDraw::getStrokeWidth ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the width of the stroke used to draw object outlines.

Возвращаемые значения

Returns a double describing the stroke width.


Returns the text alignment

  • « ImagickDraw::getStrokeWidth
  • ImagickDraw::getTextAntialias »
  • PHP Manual
  • ImagickDraw
  • Returns the text alignment

ImagickDraw::getTextAlignment

(PECL imagick 2.0.0)

ImagickDraw::getTextAlignment — Returns the text alignment

Описание

ImagickDraw::getTextAlignment ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the alignment applied when annotating with text.

Возвращаемые значения

Returns one of the ALIGN_ constants and 0 if no align is set.


Returns the current text antialias setting

  • « ImagickDraw::getTextAlignment
  • ImagickDraw::getTextDecoration »
  • PHP Manual
  • ImagickDraw
  • Returns the current text antialias setting

ImagickDraw::getTextAntialias

(PECL imagick 2.0.0)

ImagickDraw::getTextAntialias — Returns the current text antialias setting

Описание

ImagickDraw::getTextAntialias ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the current text antialias setting, which determines whether text is antialiased. Text is antialiased by default.

Возвращаемые значения

Returns TRUE if text is antialiased and false if not.


Returns the text decoration

  • « ImagickDraw::getTextAntialias
  • ImagickDraw::getTextEncoding »
  • PHP Manual
  • ImagickDraw
  • Returns the text decoration

ImagickDraw::getTextDecoration

(PECL imagick 2.0.0)

ImagickDraw::getTextDecoration — Returns the text decoration

Описание

ImagickDraw::getTextDecoration ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the decoration applied when annotating with text.

Возвращаемые значения

Returns one of the DECORATION_ constants and 0 if no decoration is set.


Returns the code set used for text annotations

  • « ImagickDraw::getTextDecoration
  • ImagickDraw::getTextInterlineSpacing »
  • PHP Manual
  • ImagickDraw
  • Returns the code set used for text annotations

ImagickDraw::getTextEncoding

(PECL imagick 2.0.0)

ImagickDraw::getTextEncoding — Returns the code set used for text annotations

Описание

ImagickDraw::getTextEncoding ( void ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns a string which specifies the code set used for text annotations.

Возвращаемые значения

Returns a string specifying the code set or false if text encoding is not set.


Description

  • « ImagickDraw::getTextEncoding
  • ImagickDraw::getTextInterwordSpacing »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::getTextInterlineSpacing

(Информация о версии неизвестна, возможно, только в Git)

ImagickDraw::getTextInterlineSpacing — Description

Описание

public ImagickDraw::getTextInterlineSpacing ( void ) : float

Gets the text interword spacing.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Description

  • « ImagickDraw::getTextInterlineSpacing
  • ImagickDraw::getTextKerning »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::getTextInterwordSpacing

(Информация о версии неизвестна, возможно, только в Git)

ImagickDraw::getTextInterwordSpacing — Description

Описание

public ImagickDraw::getTextInterwordSpacing ( void ) : float

Gets the text interword spacing.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Description

  • « ImagickDraw::getTextInterwordSpacing
  • ImagickDraw::getTextUnderColor »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::getTextKerning

(Информация о версии неизвестна, возможно, только в Git)

ImagickDraw::getTextKerning — Description

Описание

public ImagickDraw::getTextKerning ( void ) : float

Gets the text kerning.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Returns the text under color

  • « ImagickDraw::getTextKerning
  • ImagickDraw::getVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Returns the text under color

ImagickDraw::getTextUnderColor

(PECL imagick 2.0.0)

ImagickDraw::getTextUnderColor — Returns the text under color

Описание

ImagickDraw::getTextUnderColor ( void ) : ImagickPixel
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the color of a background rectangle to place under text annotations.

Возвращаемые значения

Returns an ImagickPixel object describing the color.


Returns a string containing vector graphics

  • « ImagickDraw::getTextUnderColor
  • ImagickDraw::line »
  • PHP Manual
  • ImagickDraw
  • Returns a string containing vector graphics

ImagickDraw::getVectorGraphics

(PECL imagick 2.0.0)

ImagickDraw::getVectorGraphics — Returns a string containing vector graphics

Описание

ImagickDraw::getVectorGraphics ( void ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns a string which specifies the vector graphics generated by any graphics calls made since the ImagickDraw object was instantiated.

Возвращаемые значения

Returns a string containing the vector graphics.


Draws a line

  • « ImagickDraw::getVectorGraphics
  • ImagickDraw::matte »
  • PHP Manual
  • ImagickDraw
  • Draws a line

ImagickDraw::line

(PECL imagick 2.0.0)

ImagickDraw::line — Draws a line

Описание

ImagickDraw::line ( float $sx , float $sy , float $ex , float $ey ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a line on the image using the current stroke color, stroke opacity, and stroke width.

Список параметров

sx

starting x coordinate

sy

starting y coordinate

ex

ending x coordinate

ey

ending y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::line()

<?php
function line($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->line(125, 70, 100, 50);
    $draw->line(350, 170, 100, 150);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Paints on the image's opacity channel

  • « ImagickDraw::line
  • ImagickDraw::pathClose »
  • PHP Manual
  • ImagickDraw
  • Paints on the image's opacity channel

ImagickDraw::matte

(PECL imagick 2.0.0)

ImagickDraw::matte — Paints on the image's opacity channel

Описание

ImagickDraw::matte ( float $x , float $y , int $paintMethod ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Paints on the image's opacity channel in order to set effected pixels to transparent, to influence the opacity of pixels.

Список параметров

x

x coordinate of the matte

y

y coordinate of the matte

paintMethod

PAINT_ constant

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 ImagickDraw::matte()

<?php
function matte($strokeColor, $fillColor, $backgroundColor, $paintType) {
    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->matte(120, 120, $paintType);
    $draw->rectangle(100, 100, 300, 200);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Adds a path element to the current path

  • « ImagickDraw::matte
  • ImagickDraw::pathCurveToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Adds a path element to the current path

ImagickDraw::pathClose

(PECL imagick 2.0.0)

ImagickDraw::pathClose — Adds a path element to the current path

Описание

ImagickDraw::pathClose ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Adds a path element to the current path which closes the current subpath by drawing a straight line from the current point to the current subpath's most recent starting point (usually, the most recent moveto point).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a cubic Bezier curve

  • « ImagickDraw::pathClose
  • ImagickDraw::pathCurveToQuadraticBezierAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a cubic Bezier curve

ImagickDraw::pathCurveToAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToAbsolute — Draws a cubic Bezier curve

Описание

ImagickDraw::pathCurveToAbsolute ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a cubic Bezier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve using absolute coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Список параметров

x1

x coordinate of the first control point

y1

y coordinate of the first control point

x2

x coordinate of the second control point

y2

y coordinate of the first control point

x

x coordinate of the curve end

y

y coordinate of the curve end

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a quadratic Bezier curve

  • « ImagickDraw::pathCurveToAbsolute
  • ImagickDraw::pathCurveToQuadraticBezierRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierAbsolute — Draws a quadratic Bezier curve

Описание

ImagickDraw::pathCurveToQuadraticBezierAbsolute ( float $x1 , float $y1 , float $x , float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a quadratic Bezier curve from the current point to (x,y) using (x1,y1) as the control point using absolute coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Список параметров

x1

x coordinate of the control point

y1

y coordinate of the control point

x

x coordinate of the end point

y

y coordinate of the end point

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::pathCurveToQuadraticBezierAbsolute()

<?php
function pathCurveToQuadraticBezierAbsolute($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->pathStart();
    $draw->pathMoveToAbsolute(50,250);

    // This specifies a quadratic bezier curve with the current position as the start
    // point, the control point is the first two params, and the end point is the last two params.
    $draw->pathCurveToQuadraticBezierAbsolute(
        150,50,
        250,250
    );

    // This specifies a quadratic bezier curve with the current position as the start
    // point, the control point is mirrored from the previous curves control point
    // and the end point is defined by the x, y values.
    $draw->pathCurveToQuadraticBezierSmoothAbsolute(
        450,250
    );

    // This specifies a quadratic bezier curve with the current position as the start
    // point, the control point is mirrored from the previous curves control point
    // and the end point is defined relative from the current position by the x, y values.
    $draw->pathCurveToQuadraticBezierSmoothRelative(
        200,-100
    );

    $draw->pathFinish();

    $imagick = new \Imagick();
    $imagick->newImage(700, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();

}

?>


Draws a quadratic Bezier curve

  • « ImagickDraw::pathCurveToQuadraticBezierAbsolute
  • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierRelative — Draws a quadratic Bezier curve

Описание

ImagickDraw::pathCurveToQuadraticBezierRelative ( float $x1 , float $y1 , float $x , float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a quadratic Bezier curve from the current point to (x,y) using (x1,y1) as the control point using relative coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Список параметров

x1

starting x coordinate

y1

starting y coordinate

x

ending x coordinate

y

ending y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a quadratic Bezier curve

  • « ImagickDraw::pathCurveToQuadraticBezierRelative
  • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Draws a quadratic Bezier curve

Описание

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute ( float $x , float $y ) : bool

Draws a quadratic Bezier curve (using absolute coordinates) from the current point to (x,y). The control point is assumed to be the reflection of the control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not a DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolut or DrawPathCurveToQuadraticBezierSmoothRelative, assume the control point is coincident with the current point.). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

This function cannot be used to continue a cubic Bezier curve smoothly. It can only continue from a quadratic curve smoothly.

Список параметров

x

ending x coordinate

y

ending y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute()

<?php
$draw = new \ImagickDraw();

$draw->setStrokeOpacity(1);
$draw->setStrokeColor("black");
$draw->setFillColor("blue");

$draw->setStrokeWidth(2);
$draw->setFontSize(72);

$draw->pathStart();
$draw->pathMoveToAbsolute(50,250);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is the first two params, and the end point is the last two params.
$draw->pathCurveToQuadraticBezierAbsolute(
    150,50,
    250,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothAbsolute(
    450,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined relative from the current position by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothRelative(
    200,-100
);

$draw->pathFinish();

$imagick = new \Imagick();
$imagick->newImage(700, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
?>


Draws a quadratic Bezier curve

  • « ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute
  • ImagickDraw::pathCurveToRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Draws a quadratic Bezier curve

Описание

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative ( float $x , float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a quadratic Bezier curve (using relative coordinates) from the current point to (x, y). The control point is assumed to be the reflection of the control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not a DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolut or DrawPathCurveToQuadraticBezierSmoothRelative, assume the control point is coincident with the current point). At the end of the command, the new current point becomes the final (x, y) coordinate pair used in the polybezier.

This function cannot be used to continue a cubic Bezier curve smoothly. It can only continue from a quadratic curve smoothly.

Список параметров

x

ending x coordinate

y

ending y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::pathCurveToQuadraticBezierSmoothRelative()

<?php
$draw = new \ImagickDraw();

$draw->setStrokeOpacity(1);
$draw->setStrokeColor("black");
$draw->setFillColor("blue");

$draw->setStrokeWidth(2);
$draw->setFontSize(72);

$draw->pathStart();
$draw->pathMoveToAbsolute(50,250);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is the first two params, and the end point is the last two params.
$draw->pathCurveToQuadraticBezierAbsolute(
    150,50,
    250,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothAbsolute(
    450,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined relative from the current position by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothRelative(
    200,-100
);

$draw->pathFinish();

$imagick = new \Imagick();
$imagick->newImage(700, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
?>


Draws a cubic Bezier curve

  • « ImagickDraw::pathCurveToQuadraticBezierSmoothRelative
  • ImagickDraw::pathCurveToSmoothAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a cubic Bezier curve

ImagickDraw::pathCurveToRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToRelative — Draws a cubic Bezier curve

Описание

ImagickDraw::pathCurveToRelative ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a cubic Bezier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve using relative coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Список параметров

x1

x coordinate of starting control point

y1

y coordinate of starting control point

x2

x coordinate of ending control point

y2

y coordinate of ending control point

x

ending x coordinate

y

ending y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a cubic Bezier curve

  • « ImagickDraw::pathCurveToRelative
  • ImagickDraw::pathCurveToSmoothRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a cubic Bezier curve

ImagickDraw::pathCurveToSmoothAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToSmoothAbsolute — Draws a cubic Bezier curve

Описание

ImagickDraw::pathCurveToSmoothAbsolute ( float $x2 , float $y2 , float $x , float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a cubic Bezier curve from the current point to (x,y) using absolute coordinates. The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute or DrawPathCurveToSmoothRelative, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Список параметров

x2

x coordinate of the second control point

y2

y coordinate of the second control point

x

x coordinate of the ending point

y

y coordinate of the ending point

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a cubic Bezier curve

  • « ImagickDraw::pathCurveToSmoothAbsolute
  • ImagickDraw::pathEllipticArcAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a cubic Bezier curve

ImagickDraw::pathCurveToSmoothRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToSmoothRelative — Draws a cubic Bezier curve

Описание

ImagickDraw::pathCurveToSmoothRelative ( float $x2 , float $y2 , float $x , float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a cubic Bezier curve from the current point to (x,y) using relative coordinates. The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute or DrawPathCurveToSmoothRelative, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Список параметров

x2

x coordinate of the second control point

y2

y coordinate of the second control point

x

x coordinate of the ending point

y

y coordinate of the ending point

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws an elliptical arc

  • « ImagickDraw::pathCurveToSmoothRelative
  • ImagickDraw::pathEllipticArcRelative »
  • PHP Manual
  • ImagickDraw
  • Draws an elliptical arc

ImagickDraw::pathEllipticArcAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathEllipticArcAbsolute — Draws an elliptical arc

Описание

ImagickDraw::pathEllipticArcAbsolute ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws an elliptical arc from the current point to (x, y) using absolute coordinates. The size and orientation of the ellipse are defined by two radii (rx, ry) and an xAxisRotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automatically to satisfy the constraints imposed by the other parameters. largeArcFlag and sweepFlag contribute to the automatic calculations and help determine how the arc is drawn. If largeArcFlag is TRUE then draw the larger of the available arcs. If sweepFlag is true, then draw the arc matching a clock-wise rotation.

Список параметров

rx

x radius

ry

y radius

x_axis_rotation

x axis rotation

large_arc_flag

large arc flag

sweep_flag

sweep flag

x

x coordinate

y

y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws an elliptical arc

  • « ImagickDraw::pathEllipticArcAbsolute
  • ImagickDraw::pathFinish »
  • PHP Manual
  • ImagickDraw
  • Draws an elliptical arc

ImagickDraw::pathEllipticArcRelative

(PECL imagick 2.0.0)

ImagickDraw::pathEllipticArcRelative — Draws an elliptical arc

Описание

ImagickDraw::pathEllipticArcRelative ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws an elliptical arc from the current point to (x, y) using relative coordinates. The size and orientation of the ellipse are defined by two radii (rx, ry) and an xAxisRotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automatically to satisfy the constraints imposed by the other parameters. largeArcFlag and sweepFlag contribute to the automatic calculations and help determine how the arc is drawn. If largeArcFlag is TRUE then draw the larger of the available arcs. If sweepFlag is true, then draw the arc matching a clock-wise rotation.

Список параметров

rx

x radius

ry

y radius

x_axis_rotation

x axis rotation

large_arc_flag

large arc flag

sweep_flag

sweep flag

x

x coordinate

y

y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Terminates the current path

  • « ImagickDraw::pathEllipticArcRelative
  • ImagickDraw::pathLineToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Terminates the current path

ImagickDraw::pathFinish

(PECL imagick 2.0.0)

ImagickDraw::pathFinish — Terminates the current path

Описание

ImagickDraw::pathFinish ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Terminates the current path.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a line path

  • « ImagickDraw::pathFinish
  • ImagickDraw::pathLineToHorizontalAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a line path

ImagickDraw::pathLineToAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathLineToAbsolute — Draws a line path

Описание

ImagickDraw::pathLineToAbsolute ( float $x , float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a line path from the current point to the given coordinate using absolute coordinates. The coordinate then becomes the new current point.

Список параметров

x

starting x coordinate

y

ending x coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a horizontal line path

  • « ImagickDraw::pathLineToAbsolute
  • ImagickDraw::pathLineToHorizontalRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a horizontal line path

ImagickDraw::pathLineToHorizontalAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathLineToHorizontalAbsolute — Draws a horizontal line path

Описание

ImagickDraw::pathLineToHorizontalAbsolute ( float $x ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a horizontal line path from the current point to the target point using absolute coordinates. The target point then becomes the new current point.

Список параметров

x

x coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a horizontal line

  • « ImagickDraw::pathLineToHorizontalAbsolute
  • ImagickDraw::pathLineToRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a horizontal line

ImagickDraw::pathLineToHorizontalRelative

(PECL imagick 2.0.0)

ImagickDraw::pathLineToHorizontalRelative — Draws a horizontal line

Описание

ImagickDraw::pathLineToHorizontalRelative ( float $x ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a horizontal line path from the current point to the target point using relative coordinates. The target point then becomes the new current point.

Список параметров

x

x coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a line path

  • « ImagickDraw::pathLineToHorizontalRelative
  • ImagickDraw::pathLineToVerticalAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a line path

ImagickDraw::pathLineToRelative

(PECL imagick 2.0.0)

ImagickDraw::pathLineToRelative — Draws a line path

Описание

ImagickDraw::pathLineToRelative ( float $x , float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a line path from the current point to the given coordinate using relative coordinates. The coordinate then becomes the new current point.

Список параметров

x

starting x coordinate

y

starting y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a vertical line

  • « ImagickDraw::pathLineToRelative
  • ImagickDraw::pathLineToVerticalRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a vertical line

ImagickDraw::pathLineToVerticalAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathLineToVerticalAbsolute — Draws a vertical line

Описание

ImagickDraw::pathLineToVerticalAbsolute ( float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a vertical line path from the current point to the target point using absolute coordinates. The target point then becomes the new current point.

Список параметров

y

y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a vertical line path

  • « ImagickDraw::pathLineToVerticalAbsolute
  • ImagickDraw::pathMoveToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a vertical line path

ImagickDraw::pathLineToVerticalRelative

(PECL imagick 2.0.0)

ImagickDraw::pathLineToVerticalRelative — Draws a vertical line path

Описание

ImagickDraw::pathLineToVerticalRelative ( float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a vertical line path from the current point to the target point using relative coordinates. The target point then becomes the new current point.

Список параметров

y

y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Starts a new sub-path

  • « ImagickDraw::pathLineToVerticalRelative
  • ImagickDraw::pathMoveToRelative »
  • PHP Manual
  • ImagickDraw
  • Starts a new sub-path

ImagickDraw::pathMoveToAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathMoveToAbsolute — Starts a new sub-path

Описание

ImagickDraw::pathMoveToAbsolute ( float $x , float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Starts a new sub-path at the given coordinate using absolute coordinates. The current point then becomes the specified coordinate.

Список параметров

x

x coordinate of the starting point

y

y coordinate of the starting point

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Starts a new sub-path

  • « ImagickDraw::pathMoveToAbsolute
  • ImagickDraw::pathStart »
  • PHP Manual
  • ImagickDraw
  • Starts a new sub-path

ImagickDraw::pathMoveToRelative

(PECL imagick 2.0.0)

ImagickDraw::pathMoveToRelative — Starts a new sub-path

Описание

ImagickDraw::pathMoveToRelative ( float $x , float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Starts a new sub-path at the given coordinate using relative coordinates. The current point then becomes the specified coordinate.

Список параметров

x

target x coordinate

y

target y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Declares the start of a path drawing list

  • « ImagickDraw::pathMoveToRelative
  • ImagickDraw::point »
  • PHP Manual
  • ImagickDraw
  • Declares the start of a path drawing list

ImagickDraw::pathStart

(PECL imagick 2.0.0)

ImagickDraw::pathStart — Declares the start of a path drawing list

Описание

ImagickDraw::pathStart ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Declares the start of a path drawing list which is terminated by a matching DrawPathFinish() command. All other DrawPath commands must be enclosed between a and a DrawPathFinish() command. This is because path drawing commands are subordinate commands and they do not function by themselves.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::pathStart()

<?php
function pathStart($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->pathStart();
    $draw->pathMoveToAbsolute(50, 50);
    $draw->pathLineToAbsolute(100, 50);
    $draw->pathLineToRelative(0, 50);
    $draw->pathLineToHorizontalRelative(-50);
    $draw->pathFinish();

    $draw->pathStart();
    $draw->pathMoveToAbsolute(50, 50);
    $draw->pathMoveToRelative(300, 0);
    $draw->pathLineToRelative(50, 0);
    $draw->pathLineToVerticalRelative(50);
    $draw->pathLineToHorizontalAbsolute(350);
    $draw->pathclose();
    $draw->pathFinish();

    $draw->pathStart();
    $draw->pathMoveToAbsolute(50, 300);
    $draw->pathCurveToAbsolute(50, 300, 100, 200, 300, 300);
    $draw->pathLineToVerticalAbsolute(350);
    $draw->pathFinish();

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Draws a point

  • « ImagickDraw::pathStart
  • ImagickDraw::polygon »
  • PHP Manual
  • ImagickDraw
  • Draws a point

ImagickDraw::point

(PECL imagick 2.0.0)

ImagickDraw::point — Draws a point

Описание

ImagickDraw::point ( float $x , float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a point using the current stroke color and stroke thickness at the specified coordinates.

Список параметров

x

point's x coordinate

y

point's y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::point()

<?php
function point($fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setFillColor($fillColor);

    for ($x = 0; $x < 10000; $x++) {
        $draw->point(rand(0, 500), rand(0, 500));
    }

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Draws a polygon

  • « ImagickDraw::point
  • ImagickDraw::polyline »
  • PHP Manual
  • ImagickDraw
  • Draws a polygon

ImagickDraw::polygon

(PECL imagick 2.0.0)

ImagickDraw::polygon — Draws a polygon

Описание

ImagickDraw::polygon ( array $coordinates ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a polygon using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

Список параметров

coordinates

multidimensional array like array( array( 'x' => 3, 'y' => 4 ), array( 'x' => 2, 'y' => 6 ) );

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickDraw::polygon()

<?php
function polygon($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(4);

    $draw->setFillColor($fillColor);

    $points = [
        ['x' => 40 * 5, 'y' => 10 * 5],
        ['x' => 20 * 5, 'y' => 20 * 5],
        ['x' => 70 * 5, 'y' => 50 * 5],
        ['x' => 60 * 5, 'y' => 15 * 5],
    ];

    $draw->polygon($points);

    $image = new \Imagick();
    $image->newImage(500, 300, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Draws a polyline

  • « ImagickDraw::polygon
  • ImagickDraw::pop »
  • PHP Manual
  • ImagickDraw
  • Draws a polyline

ImagickDraw::polyline

(PECL imagick 2.0.0)

ImagickDraw::polyline — Draws a polyline

Описание

ImagickDraw::polyline ( array $coordinates ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a polyline using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

Список параметров

coordinates

array of x and y coordinates: array( array( 'x' => 4, 'y' => 6 ), array( 'x' => 8, 'y' => 10 ) )

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickDraw::polyline()

<?php
function polyline($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(5);

    $points = [
        ['x' => 40 * 5, 'y' => 10 * 5],
        ['x' => 20 * 5, 'y' => 20 * 5],
        ['x' => 70 * 5, 'y' => 50 * 5],
        ['x' => 60 * 5, 'y' => 15 * 5]
    ];

    $draw->polyline($points);

    $image = new \Imagick();
    $image->newImage(500, 300, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw

  • « ImagickDraw::polyline
  • ImagickDraw::popClipPath »
  • PHP Manual
  • ImagickDraw
  • Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw

ImagickDraw::pop

(PECL imagick 2.0.0)

ImagickDraw::pop — Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw

Описание

ImagickDraw::pop ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw. Multiple ImagickDraws may exist. It is an error to attempt to pop more ImagickDraws than have been pushed, and it is proper form to pop all ImagickDraws which have been pushed.

Возвращаемые значения

Returns TRUE on success and false on failure.


Terminates a clip path definition

  • « ImagickDraw::pop
  • ImagickDraw::popDefs »
  • PHP Manual
  • ImagickDraw
  • Terminates a clip path definition

ImagickDraw::popClipPath

(PECL imagick 2.0.0)

ImagickDraw::popClipPath — Terminates a clip path definition

Описание

ImagickDraw::popClipPath ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Terminates a clip path definition.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Terminates a definition list

  • « ImagickDraw::popClipPath
  • ImagickDraw::popPattern »
  • PHP Manual
  • ImagickDraw
  • Terminates a definition list

ImagickDraw::popDefs

(PECL imagick 2.0.0)

ImagickDraw::popDefs — Terminates a definition list

Описание

ImagickDraw::popDefs ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Terminates a definition list.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::popDefs()

<?php
function popDefs($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setstrokeOpacity(1);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->pushDefs();
    $draw->setStrokeColor('white');
    $draw->rectangle(50, 50, 200, 200);
    $draw->popDefs();

    $draw->rectangle(300, 50, 450, 200);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Terminates a pattern definition

  • « ImagickDraw::popDefs
  • ImagickDraw::push »
  • PHP Manual
  • ImagickDraw
  • Terminates a pattern definition

ImagickDraw::popPattern

(PECL imagick 2.0.0)

ImagickDraw::popPattern — Terminates a pattern definition

Описание

ImagickDraw::popPattern ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Terminates a pattern definition.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Clones the current ImagickDraw and pushes it to the stack

  • « ImagickDraw::popPattern
  • ImagickDraw::pushClipPath »
  • PHP Manual
  • ImagickDraw
  • Clones the current ImagickDraw and pushes it to the stack

ImagickDraw::push

(PECL imagick 2.0.0)

ImagickDraw::push — Clones the current ImagickDraw and pushes it to the stack

Описание

ImagickDraw::push ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Clones the current ImagickDraw to create a new ImagickDraw, which is then added to the ImagickDraw stack. The original drawing ImagickDraw(s) may be returned to by invoking pop(). The ImagickDraws are stored on a ImagickDraw stack. For every Pop there must have already been an equivalent Push.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 ImagickDraw::push()

<?php
function push($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillModifiedColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->push();
    $draw->translate(50, 50);
    $draw->rectangle(200, 200, 300, 300);
    $draw->pop();
    $draw->setFillColor($fillColor);
    $draw->rectangle(200, 200, 300, 300);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Starts a clip path definition

  • « ImagickDraw::push
  • ImagickDraw::pushDefs »
  • PHP Manual
  • ImagickDraw
  • Starts a clip path definition

ImagickDraw::pushClipPath

(PECL imagick 2.0.0)

ImagickDraw::pushClipPath — Starts a clip path definition

Описание

ImagickDraw::pushClipPath ( string $clip_mask_id ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Starts a clip path definition which is comprised of any number of drawing commands and terminated by a ImagickDraw::popClipPath() command.

Список параметров

clip_mask_id

Clip mask Id

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Indicates that following commands create named elements for early processing

  • « ImagickDraw::pushClipPath
  • ImagickDraw::pushPattern »
  • PHP Manual
  • ImagickDraw
  • Indicates that following commands create named elements for early processing

ImagickDraw::pushDefs

(PECL imagick 2.0.0)

ImagickDraw::pushDefs — Indicates that following commands create named elements for early processing

Описание

ImagickDraw::pushDefs ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Indicates that commands up to a terminating ImagickDraw::popDefs() command create named elements (e.g. clip-paths, textures, etc.) which may safely be processed earlier for the sake of efficiency.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern

  • « ImagickDraw::pushDefs
  • ImagickDraw::rectangle »
  • PHP Manual
  • ImagickDraw
  • Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern

ImagickDraw::pushPattern

(PECL imagick 2.0.0)

ImagickDraw::pushPattern — Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern

Описание

ImagickDraw::pushPattern ( string $pattern_id , float $x , float $y , float $width , float $height ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Indicates that subsequent commands up to a DrawPopPattern() command comprise the definition of a named pattern. The pattern space is assigned top left corner coordinates, a width and height, and becomes its own drawing space. Anything which can be drawn may be used in a pattern definition. Named patterns may be used as stroke or brush definitions.

Список параметров

pattern_id

the pattern Id

x

x coordinate of the top-left corner

y

y coordinate of the top-left corner

width

width of the pattern

height

height of the pattern

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 ImagickDraw::pushPattern()

<?php
function pushPattern($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(1);

    $draw->pushPattern("MyFirstPattern", 0, 0, 50, 50);
    for ($x = 0; $x < 50; $x += 10) {
        for ($y = 0; $y < 50; $y += 5) {
            $positionX = $x + (($y / 5) % 5);
            $draw->rectangle($positionX, $y, $positionX + 5, $y + 5);
        }
    }
    $draw->popPattern();

    $draw->setFillOpacity(0);
    $draw->rectangle(100, 100, 400, 400);
    $draw->setFillOpacity(1);

    $draw->setFillOpacity(1);

    $draw->push();
    $draw->setFillPatternURL('#MyFirstPattern');
    $draw->setFillColor('yellow');
    $draw->rectangle(100, 100, 400, 400);
    $draw->pop();

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Draws a rectangle

  • « ImagickDraw::pushPattern
  • ImagickDraw::render »
  • PHP Manual
  • ImagickDraw
  • Draws a rectangle

ImagickDraw::rectangle

(PECL imagick 2.0.0)

ImagickDraw::rectangle — Draws a rectangle

Описание

ImagickDraw::rectangle ( float $x1 , float $y1 , float $x2 , float $y2 ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a rectangle given two coordinates and using the current stroke, stroke width, and fill settings.

Список параметров

x1

x coordinate of the top left corner

y1

y coordinate of the top left corner

x2

x coordinate of the bottom right corner

y2

y coordinate of the bottom right corner

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::rectangle()

<?php
function rectangle($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();
    $strokeColor = new \ImagickPixel($strokeColor);
    $fillColor = new \ImagickPixel($fillColor);

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);

    $draw->rectangle(200, 200, 300, 300);
    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Renders all preceding drawing commands onto the image

  • « ImagickDraw::rectangle
  • ImagickDraw::resetVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Renders all preceding drawing commands onto the image

ImagickDraw::render

(PECL imagick 2.0.0)

ImagickDraw::render — Renders all preceding drawing commands onto the image

Описание

ImagickDraw::render ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Renders all preceding drawing commands onto the image.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Description

  • « ImagickDraw::render
  • ImagickDraw::rotate »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::resetVectorGraphics

(Информация о версии неизвестна, возможно, только в Git)

ImagickDraw::resetVectorGraphics — Description

Описание

public ImagickDraw::resetVectorGraphics ( void ) : bool

Resets the vector graphics.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Applies the specified rotation to the current coordinate space

  • « ImagickDraw::resetVectorGraphics
  • ImagickDraw::roundRectangle »
  • PHP Manual
  • ImagickDraw
  • Applies the specified rotation to the current coordinate space

ImagickDraw::rotate

(PECL imagick 2.0.0)

ImagickDraw::rotate — Applies the specified rotation to the current coordinate space

Описание

ImagickDraw::rotate ( float $degrees ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Applies the specified rotation to the current coordinate space.

Список параметров

degrees

degrees to rotate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::rotate()

<?php
function rotate($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor) {
    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeOpacity(1);
    $draw->setFillColor($fillColor);
    $draw->rectangle(200, 200, 300, 300);
    $draw->setFillColor($fillModifiedColor);
    $draw->rotate(15);
    $draw->rectangle(200, 200, 300, 300);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Draws a rounded rectangle

  • « ImagickDraw::rotate
  • ImagickDraw::scale »
  • PHP Manual
  • ImagickDraw
  • Draws a rounded rectangle

ImagickDraw::roundRectangle

(PECL imagick 2.0.0)

ImagickDraw::roundRectangle — Draws a rounded rectangle

Описание

ImagickDraw::roundRectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a rounded rectangle given two coordinates, x & y corner radiuses and using the current stroke, stroke width, and fill settings.

Список параметров

x1

x coordinate of the top left corner

y1

y coordinate of the top left corner

x2

x coordinate of the bottom right

y2

y coordinate of the bottom right

rx

x rounding

ry

y rounding

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::roundRectangle()

<?php
function roundRectangle($strokeColor, $fillColor, $backgroundColor, $startX, $startY, $endX, $endY, $roundX, $roundY) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);

    $draw->roundRectangle($startX, $startY, $endX, $endY, $roundX, $roundY);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Adjusts the scaling factor

  • « ImagickDraw::roundRectangle
  • ImagickDraw::setClipPath »
  • PHP Manual
  • ImagickDraw
  • Adjusts the scaling factor

ImagickDraw::scale

(PECL imagick 2.0.0)

ImagickDraw::scale — Adjusts the scaling factor

Описание

ImagickDraw::scale ( float $x , float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Adjusts the scaling factor to apply in the horizontal and vertical directions to the current coordinate space.

Список параметров

x

horizontal factor

y

vertical factor

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::scale()

<?php
function scale($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(4);
    $draw->setFillColor($fillColor);
    $draw->rectangle(200, 200, 300, 300);
    $draw->setFillColor($fillModifiedColor);
    $draw->scale(1.4, 1.4);
    $draw->rectangle(200, 200, 300, 300);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Associates a named clipping path with the image

  • « ImagickDraw::scale
  • ImagickDraw::setClipRule »
  • PHP Manual
  • ImagickDraw
  • Associates a named clipping path with the image

ImagickDraw::setClipPath

(PECL imagick 2.0.0)

ImagickDraw::setClipPath — Associates a named clipping path with the image

Описание

ImagickDraw::setClipPath ( string $clip_mask ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Associates a named clipping path with the image. Only the areas drawn on by the clipping path will be modified as long as it remains in effect.

Список параметров

clip_mask

the clipping path name

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setClipPath()

<?php
function setClipPath($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);

    $clipPathName = 'testClipPath';

    $draw->pushClipPath($clipPathName);
    $draw->rectangle(0, 0, 250, 250);
    $draw->popClipPath();
    $draw->setClipPath($clipPathName);
    $draw->rectangle(100, 100, 400, 400);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Set the polygon fill rule to be used by the clipping path

  • « ImagickDraw::setClipPath
  • ImagickDraw::setClipUnits »
  • PHP Manual
  • ImagickDraw
  • Set the polygon fill rule to be used by the clipping path

ImagickDraw::setClipRule

(PECL imagick 2.0.0)

ImagickDraw::setClipRule — Set the polygon fill rule to be used by the clipping path

Описание

ImagickDraw::setClipRule ( int $fill_rule ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Set the polygon fill rule to be used by the clipping path.

Список параметров

fill_rule

FILLRULE_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setClipRule()

<?php
function setClipRule($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);
    //\Imagick::FILLRULE_EVENODD
    //\Imagick::FILLRULE_NONZERO

    $clipPathName = 'testClipPath';
    $draw->pushClipPath($clipPathName);
    $draw->setClipRule(\Imagick::FILLRULE_EVENODD);
    $draw->rectangle(0, 0, 300, 500);
    $draw->rectangle(200, 0, 500, 500);
    $draw->popClipPath();
    $draw->setClipPath($clipPathName);
    $draw->rectangle(200, 200, 300, 300);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the interpretation of clip path units

  • « ImagickDraw::setClipRule
  • ImagickDraw::setFillAlpha »
  • PHP Manual
  • ImagickDraw
  • Sets the interpretation of clip path units

ImagickDraw::setClipUnits

(PECL imagick 2.0.0)

ImagickDraw::setClipUnits — Sets the interpretation of clip path units

Описание

ImagickDraw::setClipUnits ( int $clip_units ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the interpretation of clip path units.

Список параметров

clip_units

the number of clip units

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setClipUnits()

<?php
function setClipUnits($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);
    $clipPathName = 'testClipPath';
    $draw->setClipUnits(\Imagick::RESOLUTION_PIXELSPERINCH);
    $draw->pushClipPath($clipPathName);
    $draw->rectangle(0, 0, 250, 250);
    $draw->popClipPath();
    $draw->setClipPath($clipPathName);

    //RESOLUTION_PIXELSPERINCH
    //RESOLUTION_PIXELSPERCENTIMETER

    $draw->rectangle(200, 200, 300, 300);
    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the opacity to use when drawing using the fill color or fill texture

  • « ImagickDraw::setClipUnits
  • ImagickDraw::setFillColor »
  • PHP Manual
  • ImagickDraw
  • Sets the opacity to use when drawing using the fill color or fill texture

ImagickDraw::setFillAlpha

(PECL imagick 2.0.0)

ImagickDraw::setFillAlpha — Sets the opacity to use when drawing using the fill color or fill texture

Описание

ImagickDraw::setFillAlpha ( float $opacity ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the opacity to use when drawing using the fill color or fill texture. Fully opaque is 1.0.

Список параметров

opacity

fill alpha

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setFillAlpha()

<?php
function setFillAlpha($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);
    $draw->rectangle(100, 200, 200, 300);
    @$draw->setFillAlpha(0.4);
    $draw->rectangle(300, 200, 400, 300);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the fill color to be used for drawing filled objects

  • « ImagickDraw::setFillAlpha
  • ImagickDraw::setFillOpacity »
  • PHP Manual
  • ImagickDraw
  • Sets the fill color to be used for drawing filled objects

ImagickDraw::setFillColor

(PECL imagick 2.0.0)

ImagickDraw::setFillColor — Sets the fill color to be used for drawing filled objects

Описание

ImagickDraw::setFillColor ( ImagickPixel $fill_pixel ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the fill color to be used for drawing filled objects.

Список параметров

fill_pixel

ImagickPixel to use to set the color

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setFillColor()

<?php
function setFillColor($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(1.5);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->rectangle(50, 50, 150, 150);

    $draw->setFillColor("rgb(200, 32, 32)");
    $draw->rectangle(200, 50, 300, 150);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Sets the opacity to use when drawing using the fill color or fill texture

  • « ImagickDraw::setFillColor
  • ImagickDraw::setFillPatternURL »
  • PHP Manual
  • ImagickDraw
  • Sets the opacity to use when drawing using the fill color or fill texture

ImagickDraw::setFillOpacity

(PECL imagick 2.0.0)

ImagickDraw::setFillOpacity — Sets the opacity to use when drawing using the fill color or fill texture

Описание

ImagickDraw::setFillOpacity ( float $fillOpacity ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the opacity to use when drawing using the fill color or fill texture. Fully opaque is 1.0.

Список параметров

fillOpacity

the fill opacity

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setFillOpacity()

<?php
function setFillOpacity($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);

    $draw->rectangle(100, 200, 200, 300);

    $draw->setFillOpacity(0.4);
    $draw->rectangle(300, 200, 400, 300);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the URL to use as a fill pattern for filling objects

  • « ImagickDraw::setFillOpacity
  • ImagickDraw::setFillRule »
  • PHP Manual
  • ImagickDraw
  • Sets the URL to use as a fill pattern for filling objects

ImagickDraw::setFillPatternURL

(PECL imagick 2.0.0)

ImagickDraw::setFillPatternURL — Sets the URL to use as a fill pattern for filling objects

Описание

ImagickDraw::setFillPatternURL ( string $fill_url ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the URL to use as a fill pattern for filling objects. Only local URLs ("#identifier") are supported at this time. These local URLs are normally created by defining a named fill pattern with DrawPushPattern/DrawPopPattern.

Список параметров

fill_url

URL to use to obtain fill pattern.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Sets the fill rule to use while drawing polygons

  • « ImagickDraw::setFillPatternURL
  • ImagickDraw::setFont »
  • PHP Manual
  • ImagickDraw
  • Sets the fill rule to use while drawing polygons

ImagickDraw::setFillRule

(PECL imagick 2.0.0)

ImagickDraw::setFillRule — Sets the fill rule to use while drawing polygons

Описание

ImagickDraw::setFillRule ( int $fill_rule ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the fill rule to use while drawing polygons.

Список параметров

fill_rule

FILLRULE_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setFillRule()

<?php
function setFillRule($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $fillRules = [\Imagick::FILLRULE_NONZERO, \Imagick::FILLRULE_EVENODD];

    $points = 11;
    $size = 150;

    $draw->translate(175, 160);

    for ($x = 0; $x < 2; $x++) {
        $draw->setFillRule($fillRules[$x]);
        $draw->pathStart();
        for ($n = 0; $n < $points * 2; $n++) {

            if ($n >= $points) {
                $angle = fmod($n * 360 * 4 / $points, 360) * pi() / 180;
            }
            else {
                $angle = fmod($n * 360 * 3 / $points, 360) * pi() / 180;
            }

            $positionX = $size * sin($angle);
            $positionY = $size * cos($angle);

            if ($n == 0) {
                $draw->pathMoveToAbsolute($positionX, $positionY);
            }
            else {
                $draw->pathLineToAbsolute($positionX, $positionY);
            }
        }

        $draw->pathClose();
        $draw->pathFinish();

        $draw->translate(325, 0);
    }

    $image = new \Imagick();
    $image->newImage(700, 320, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Sets the fully-specified font to use when annotating with text

  • « ImagickDraw::setFillRule
  • ImagickDraw::setFontFamily »
  • PHP Manual
  • ImagickDraw
  • Sets the fully-specified font to use when annotating with text

ImagickDraw::setFont

(PECL imagick 2.0.0)

ImagickDraw::setFont — Sets the fully-specified font to use when annotating with text

Описание

ImagickDraw::setFont ( string $font_name ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the fully-specified font to use when annotating with text.

Список параметров

font_name

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickDraw::setFont()

<?php
function setFont($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(36);

    $draw->setFont("../fonts/Arial.ttf");
    $draw->annotation(50, 50, "Lorem Ipsum!");

    $draw->setFont("../fonts/Consolas.ttf");
    $draw->annotation(50, 100, "Lorem Ipsum!");

    $draw->setFont("../fonts/CANDY.TTF");
    $draw->annotation(50, 150, "Lorem Ipsum!");

    $draw->setFont("../fonts/Inconsolata-dz.otf");
    $draw->annotation(50, 200, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(500, 300, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the font family to use when annotating with text

  • « ImagickDraw::setFont
  • ImagickDraw::setFontSize »
  • PHP Manual
  • ImagickDraw
  • Sets the font family to use when annotating with text

ImagickDraw::setFontFamily

(PECL imagick 2.0.0)

ImagickDraw::setFontFamily — Sets the font family to use when annotating with text

Описание

ImagickDraw::setFontFamily ( string $font_family ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the font family to use when annotating with text.

Список параметров

font_family

the font family

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickDraw::setFontFamily()

<?php
function setFontFamily($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $strokeColor = new \ImagickPixel($strokeColor);
    $fillColor = new \ImagickPixel($fillColor);

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);

    $draw->setFontSize(48);

    $draw->setFontFamily("Times");
    $draw->annotation(50, 50, "Lorem Ipsum!");

    $draw->setFontFamily("AvantGarde");
    $draw->annotation(50, 100, "Lorem Ipsum!");

    $draw->setFontFamily("NewCenturySchlbk");
    $draw->annotation(50, 150, "Lorem Ipsum!");

    $draw->setFontFamily("Palatino");
    $draw->annotation(50, 200, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(450, 250, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the font pointsize to use when annotating with text

  • « ImagickDraw::setFontFamily
  • ImagickDraw::setFontStretch »
  • PHP Manual
  • ImagickDraw
  • Sets the font pointsize to use when annotating with text

ImagickDraw::setFontSize

(PECL imagick 2.0.0)

ImagickDraw::setFontSize — Sets the font pointsize to use when annotating with text

Описание

ImagickDraw::setFontSize ( float $pointsize ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the font pointsize to use when annotating with text.

Список параметров

pointsize

the point size

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setFontSize()

<?php
function setFontSize($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFont("../fonts/Arial.ttf");

    $sizes = [24, 36, 48, 60, 72];

    foreach ($sizes as $size) {
        $draw->setFontSize($size);
        $draw->annotation(50, ($size * $size / 16), "Lorem Ipsum!");
    }

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the font stretch to use when annotating with text

  • « ImagickDraw::setFontSize
  • ImagickDraw::setFontStyle »
  • PHP Manual
  • ImagickDraw
  • Sets the font stretch to use when annotating with text

ImagickDraw::setFontStretch

(PECL imagick 2.0.0)

ImagickDraw::setFontStretch — Sets the font stretch to use when annotating with text

Описание

ImagickDraw::setFontStretch ( int $fontStretch ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the font stretch to use when annotating with text. The AnyStretch enumeration acts as a wild-card "don't care" option.

Список параметров

fontStretch

STRETCH_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setFontStretch()

<?php
function setFontStretch($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(36);

    $fontStretchTypes = [
        \Imagick::STRETCH_ULTRACONDENSED,
        \Imagick::STRETCH_CONDENSED,
        \Imagick::STRETCH_SEMICONDENSED,
        \Imagick::STRETCH_SEMIEXPANDED,
        \Imagick::STRETCH_EXPANDED,
        \Imagick::STRETCH_EXTRAEXPANDED,
        \Imagick::STRETCH_ULTRAEXPANDED,
        \Imagick::STRETCH_ANY
    ];

    $offset = 0;
    foreach ($fontStretchTypes as $fontStretch) {
        $draw->setFontStretch($fontStretch);
        $draw->annotation(50, 75 + $offset, "Lorem Ipsum!");
        $offset += 50;
    }

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the font style to use when annotating with text

  • « ImagickDraw::setFontStretch
  • ImagickDraw::setFontWeight »
  • PHP Manual
  • ImagickDraw
  • Sets the font style to use when annotating with text

ImagickDraw::setFontStyle

(PECL imagick 2.0.0)

ImagickDraw::setFontStyle — Sets the font style to use when annotating with text

Описание

ImagickDraw::setFontStyle ( int $style ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the font style to use when annotating with text. The AnyStyle enumeration acts as a wild-card "don't care" option.

Список параметров

style

STYLETYPE_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setFontStyle()

<?php
function setFontStyle($fillColor, $strokeColor, $backgroundColor) {
    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setFontSize(36);
    $draw->setFontStyle(\Imagick::STYLE_NORMAL);
    $draw->annotation(50, 50, "Lorem Ipsum!");

    $draw->setFontStyle(\Imagick::STYLE_ITALIC);
    $draw->annotation(50, 100, "Lorem Ipsum!");

    $draw->setFontStyle(\Imagick::STYLE_OBLIQUE);
    $draw->annotation(50, 150, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(350, 300, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the font weight

  • « ImagickDraw::setFontStyle
  • ImagickDraw::setGravity »
  • PHP Manual
  • ImagickDraw
  • Sets the font weight

ImagickDraw::setFontWeight

(PECL imagick 2.0.0)

ImagickDraw::setFontWeight — Sets the font weight

Описание

ImagickDraw::setFontWeight ( int $font_weight ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the font weight to use when annotating with text.

Список параметров

font_weight

Возвращаемые значения

Примеры

Пример #1 ImagickDraw::setFontWeight()

<?php
function setFontWeight($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(1);

    $draw->setFontSize(36);

    $draw->setFontWeight(100);
    $draw->annotation(50, 50, "Lorem Ipsum!");

    $draw->setFontWeight(200);
    $draw->annotation(50, 100, "Lorem Ipsum!");

    $draw->setFontWeight(400);
    $draw->annotation(50, 150, "Lorem Ipsum!");

    $draw->setFontWeight(800);
    $draw->annotation(50, 200, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the text placement gravity

  • « ImagickDraw::setFontWeight
  • ImagickDraw::setResolution »
  • PHP Manual
  • ImagickDraw
  • Sets the text placement gravity

ImagickDraw::setGravity

(PECL imagick 2.0.0)

ImagickDraw::setGravity — Sets the text placement gravity

Описание

ImagickDraw::setGravity ( int $gravity ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the text placement gravity to use when annotating with text.

Список параметров

gravity

GRAVITY_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setGravity()

<?php
function setGravity($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setFontSize(24);

    $gravitySettings = array(
        \Imagick::GRAVITY_NORTHWEST => 'NorthWest',
        \Imagick::GRAVITY_NORTH => 'North',
        \Imagick::GRAVITY_NORTHEAST => 'NorthEast',
        \Imagick::GRAVITY_WEST => 'West',
        \Imagick::GRAVITY_CENTER => 'Centre',
        \Imagick::GRAVITY_SOUTHWEST => 'SouthWest',
        \Imagick::GRAVITY_SOUTH => 'South',
        \Imagick::GRAVITY_SOUTHEAST => 'SouthEast',
        \Imagick::GRAVITY_EAST => 'East'
    );

    $draw->setFont("../fonts/Arial.ttf");

    foreach ($gravitySettings as $type => $description) {
        $draw->setGravity($type);
        $draw->annotation(50, 50, '"' . $description . '"');
    }

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Description

  • « ImagickDraw::setGravity
  • ImagickDraw::setStrokeAlpha »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::setResolution

(Информация о версии неизвестна, возможно, только в Git)

ImagickDraw::setResolution — Description

Описание

public ImagickDraw::setResolution ( float $x_resolution , float $y_resolution ) : bool

Sets the resolution.

Список параметров

x_resolution

y_resolution

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Specifies the opacity of stroked object outlines

  • « ImagickDraw::setResolution
  • ImagickDraw::setStrokeAntialias »
  • PHP Manual
  • ImagickDraw
  • Specifies the opacity of stroked object outlines

ImagickDraw::setStrokeAlpha

(PECL imagick 2.0.0)

ImagickDraw::setStrokeAlpha — Specifies the opacity of stroked object outlines

Описание

ImagickDraw::setStrokeAlpha ( float $opacity ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the opacity of stroked object outlines.

Список параметров

opacity

opacity

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeAlpha()

<?php
function setStrokeAlpha($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(4);
    $draw->line(100, 100, 400, 145);
    $draw->rectangle(100, 200, 225, 350);
    $draw->setStrokeOpacity(0.1);
    $draw->line(100, 120, 400, 165);
    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Controls whether stroked outlines are antialiased

  • « ImagickDraw::setStrokeAlpha
  • ImagickDraw::setStrokeColor »
  • PHP Manual
  • ImagickDraw
  • Controls whether stroked outlines are antialiased

ImagickDraw::setStrokeAntialias

(PECL imagick 2.0.0)

ImagickDraw::setStrokeAntialias — Controls whether stroked outlines are antialiased

Описание

ImagickDraw::setStrokeAntialias ( bool $stroke_antialias ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Controls whether stroked outlines are antialiased. Stroked outlines are antialiased by default. When antialiasing is disabled stroked pixels are thresholded to determine if the stroke color or underlying canvas color should be used.

Список параметров

stroke_antialias

the antialias setting

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeAntialias()

<?php
function setStrokeAntialias($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setStrokeAntialias(false);
    $draw->line(100, 100, 400, 105);

    $draw->line(100, 140, 400, 185);

    $draw->setStrokeAntialias(true);
    $draw->line(100, 110, 400, 115);
    $draw->line(100, 150, 400, 195);

    $image = new \Imagick();
    $image->newImage(500, 250, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Sets the color used for stroking object outlines

  • « ImagickDraw::setStrokeAntialias
  • ImagickDraw::setStrokeDashArray »
  • PHP Manual
  • ImagickDraw
  • Sets the color used for stroking object outlines

ImagickDraw::setStrokeColor

(PECL imagick 2.0.0)

ImagickDraw::setStrokeColor — Sets the color used for stroking object outlines

Описание

ImagickDraw::setStrokeColor ( ImagickPixel $stroke_pixel ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the color used for stroking object outlines.

Список параметров

stroke_pixel

the stroke color

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeColor()

<?php
function setStrokeColor($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(5);

    $draw->line(100, 100, 400, 145);
    $draw->rectangle(100, 200, 225, 350);

    $draw->setStrokeOpacity(0.1);
    $draw->line(100, 120, 400, 165);
    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies the pattern of dashes and gaps used to stroke paths

  • « ImagickDraw::setStrokeColor
  • ImagickDraw::setStrokeDashOffset »
  • PHP Manual
  • ImagickDraw
  • Specifies the pattern of dashes and gaps used to stroke paths

ImagickDraw::setStrokeDashArray

(PECL imagick 2.0.0)

ImagickDraw::setStrokeDashArray — Specifies the pattern of dashes and gaps used to stroke paths

Описание

ImagickDraw::setStrokeDashArray ( array $dashArray ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the pattern of dashes and gaps used to stroke paths. The strokeDashArray represents an array of numbers that specify the lengths of alternating dashes and gaps in pixels. If an odd number of values is provided, then the list of values is repeated to yield an even number of values. To remove an existing dash array, pass a zero number_elements argument and null dash_array. A typical strokeDashArray_ array might contain the members 5 3 2.

Список параметров

dashArray

array of floats

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickDraw::setStrokeDashArray()

<?php
function setStrokeDashArray($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(4);

    $draw->setStrokeDashArray([10, 10]);
    $draw->rectangle(100, 50, 225, 175);

    $draw->setStrokeDashArray([20, 5, 20, 5, 5, 5,]);
    $draw->rectangle(275, 50, 400, 175);

    $draw->setStrokeDashArray([20, 5, 20, 5, 5]);
    $draw->rectangle(100, 200, 225, 350);

    $draw->setStrokeDashArray([1, 1, 1, 1, 2, 2, 3, 3, 5, 5, 8, 8, 13, 13, 21, 21, 34, 34, 55, 55, 89, 89, 144, 144, 233, 233, 377, 377, 610, 610, 987, 987, 1597, 1597, 2584, 2584, 4181, 4181,]);

    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies the offset into the dash pattern to start the dash

  • « ImagickDraw::setStrokeDashArray
  • ImagickDraw::setStrokeLineCap »
  • PHP Manual
  • ImagickDraw
  • Specifies the offset into the dash pattern to start the dash

ImagickDraw::setStrokeDashOffset

(PECL imagick 2.0.0)

ImagickDraw::setStrokeDashOffset — Specifies the offset into the dash pattern to start the dash

Описание

ImagickDraw::setStrokeDashOffset ( float $dash_offset ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the offset into the dash pattern to start the dash.

Список параметров

dash_offset

dash offset

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeDashOffset()

<?php
function setStrokeDashOffset($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(4);
    $draw->setStrokeDashArray([20, 20]);
    $draw->setStrokeDashOffset(0);
    $draw->rectangle(100, 50, 225, 175);

    //Start the dash effect halfway through the solid portion
    $draw->setStrokeDashOffset(10);
    $draw->rectangle(275, 50, 400, 175);

    //Start the dash effect on the space portion
    $draw->setStrokeDashOffset(20);
    $draw->rectangle(100, 200, 225, 350);
    $draw->setStrokeDashOffset(5);
    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies the shape to be used at the end of open subpaths when they are stroked

  • « ImagickDraw::setStrokeDashOffset
  • ImagickDraw::setStrokeLineJoin »
  • PHP Manual
  • ImagickDraw
  • Specifies the shape to be used at the end of open subpaths when they are stroked

ImagickDraw::setStrokeLineCap

(PECL imagick 2.0.0)

ImagickDraw::setStrokeLineCap — Specifies the shape to be used at the end of open subpaths when they are stroked

Описание

ImagickDraw::setStrokeLineCap ( int $linecap ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the shape to be used at the end of open subpaths when they are stroked.

Список параметров

linecap

LINECAP_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeLineCap()

<?php
function setStrokeLineCap($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(25);

    $lineTypes = [\Imagick::LINECAP_BUTT, \Imagick::LINECAP_ROUND, \Imagick::LINECAP_SQUARE,];

    $offset = 0;

    foreach ($lineTypes as $lineType) {
        $draw->setStrokeLineCap($lineType);
        $draw->line(50 + $offset, 50, 50 + $offset, 250);
        $offset += 50;
    }

    $imagick = new \Imagick();
    $imagick->newImage(300, 300, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Specifies the shape to be used at the corners of paths when they are stroked

  • « ImagickDraw::setStrokeLineCap
  • ImagickDraw::setStrokeMiterLimit »
  • PHP Manual
  • ImagickDraw
  • Specifies the shape to be used at the corners of paths when they are stroked

ImagickDraw::setStrokeLineJoin

(PECL imagick 2.0.0)

ImagickDraw::setStrokeLineJoin — Specifies the shape to be used at the corners of paths when they are stroked

Описание

ImagickDraw::setStrokeLineJoin ( int $linejoin ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the shape to be used at the corners of paths (or other vector shapes) when they are stroked.

Список параметров

linejoin

LINEJOIN_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeLineJoin()

<?php
function setStrokeLineJoin($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(20);

    $offset = 220;

    $lineJoinStyle = [
        \Imagick::LINEJOIN_MITER,
        \Imagick::LINEJOIN_ROUND,
        \Imagick::LINEJOIN_BEVEL,
        ];

    for ($x = 0; $x < count($lineJoinStyle); $x++) {
        $draw->setStrokeLineJoin($lineJoinStyle[$x]);
        $points = [
            ['x' => 40 * 5, 'y' => 10 * 5 + $x * $offset],
            ['x' => 20 * 5, 'y' => 20 * 5 + $x * $offset],
            ['x' => 70 * 5, 'y' => 50 * 5 + $x * $offset],
            ['x' => 40 * 5, 'y' => 10 * 5 + $x * $offset],
        ];

        $draw->polyline($points);
    }

    $image = new \Imagick();
    $image->newImage(500, 700, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies the miter limit

  • « ImagickDraw::setStrokeLineJoin
  • ImagickDraw::setStrokeOpacity »
  • PHP Manual
  • ImagickDraw
  • Specifies the miter limit

ImagickDraw::setStrokeMiterLimit

(PECL imagick 2.0.0)

ImagickDraw::setStrokeMiterLimit — Specifies the miter limit

Описание

ImagickDraw::setStrokeMiterLimit ( int $miterlimit ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'.

Список параметров

miterlimit

the miter limit

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeMiterLimit()

<?php
function setStrokeMiterLimit($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeOpacity(0.6);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(10);

    $yOffset = 100;

    $draw->setStrokeLineJoin(\Imagick::LINEJOIN_MITER);

    for ($y = 0; $y < 3; $y++) {

        $draw->setStrokeMiterLimit(40 * $y);

        $points = [
            ['x' => 22 * 3, 'y' => 15 * 4 + $y * $yOffset],
            ['x' => 20 * 3, 'y' => 20 * 4 + $y * $yOffset],
            ['x' => 70 * 5, 'y' => 45 * 4 + $y * $yOffset],
        ];

        $draw->polygon($points);
    }

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    $image->setImageType(\Imagick::IMGTYPE_PALETTE);
    $image->setImageCompressionQuality(100);
    $image->stripImage();

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies the opacity of stroked object outlines

  • « ImagickDraw::setStrokeMiterLimit
  • ImagickDraw::setStrokePatternURL »
  • PHP Manual
  • ImagickDraw
  • Specifies the opacity of stroked object outlines

ImagickDraw::setStrokeOpacity

(PECL imagick 2.0.0)

ImagickDraw::setStrokeOpacity — Specifies the opacity of stroked object outlines

Описание

ImagickDraw::setStrokeOpacity ( float $stroke_opacity ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the opacity of stroked object outlines.

Список параметров

stroke_opacity

stroke opacity. 1.0 is fully opaque

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeOpacity()

<?php
function setStrokeOpacity($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();

    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(10);
    $draw->setStrokeOpacity(1);
    $draw->line(100, 80, 400, 125);
    $draw->rectangle(25, 200, 150, 350);
    $draw->setStrokeOpacity(0.5);
    $draw->line(100, 100, 400, 145);
    $draw->rectangle(200, 200, 325, 350);
    $draw->setStrokeOpacity(0.2);
    $draw->line(100, 120, 400, 165);
    $draw->rectangle(375, 200, 500, 350);

    $image = new \Imagick();
    $image->newImage(550, 400, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Sets the pattern used for stroking object outlines

  • « ImagickDraw::setStrokeOpacity
  • ImagickDraw::setStrokeWidth »
  • PHP Manual
  • ImagickDraw
  • Sets the pattern used for stroking object outlines

ImagickDraw::setStrokePatternURL

(PECL imagick 2.0.0)

ImagickDraw::setStrokePatternURL — Sets the pattern used for stroking object outlines

Описание

ImagickDraw::setStrokePatternURL ( string $stroke_url ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the pattern used for stroking object outlines.

Список параметров

stroke_url

stroke URL

Возвращаемые значения

imagick.imagickdraw.return.success;


Sets the width of the stroke used to draw object outlines

  • « ImagickDraw::setStrokePatternURL
  • ImagickDraw::setTextAlignment »
  • PHP Manual
  • ImagickDraw
  • Sets the width of the stroke used to draw object outlines

ImagickDraw::setStrokeWidth

(PECL imagick 2.0.0)

ImagickDraw::setStrokeWidth — Sets the width of the stroke used to draw object outlines

Описание

ImagickDraw::setStrokeWidth ( float $stroke_width ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the width of the stroke used to draw object outlines.

Список параметров

stroke_width

stroke width

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeWidth()

<?php
function setStrokeWidth($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->line(100, 100, 400, 145);
    $draw->rectangle(100, 200, 225, 350);
    $draw->setStrokeWidth(5);
    $draw->line(100, 120, 400, 165);
    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies a text alignment

  • « ImagickDraw::setStrokeWidth
  • ImagickDraw::setTextAntialias »
  • PHP Manual
  • ImagickDraw
  • Specifies a text alignment

ImagickDraw::setTextAlignment

(PECL imagick 2.0.0)

ImagickDraw::setTextAlignment — Specifies a text alignment

Описание

ImagickDraw::setTextAlignment ( int $alignment ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies a text alignment to be applied when annotating with text.

Список параметров

alignment

ALIGN_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setTextAlignment()

<?php
function setTextAlignment($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setFontSize(36);

    $draw->setTextAlignment(\Imagick::ALIGN_LEFT);
    $draw->annotation(250, 75, "Lorem Ipsum!");
    $draw->setTextAlignment(\Imagick::ALIGN_CENTER);
    $draw->annotation(250, 150, "Lorem Ipsum!");
    $draw->setTextAlignment(\Imagick::ALIGN_RIGHT);
    $draw->annotation(250, 225, "Lorem Ipsum!");
    $draw->line(250, 0, 250, 500);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Controls whether text is antialiased

  • « ImagickDraw::setTextAlignment
  • ImagickDraw::setTextDecoration »
  • PHP Manual
  • ImagickDraw
  • Controls whether text is antialiased

ImagickDraw::setTextAntialias

(PECL imagick 2.0.0)

ImagickDraw::setTextAntialias — Controls whether text is antialiased

Описание

ImagickDraw::setTextAntialias ( bool $antiAlias ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Controls whether text is antialiased. Text is antialiased by default.

Список параметров

antiAlias

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setTextAntialias()

<?php
function setTextAntialias($fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor('none');
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setFontSize(32);
    $draw->setTextAntialias(false);
    $draw->annotation(5, 30, "Lorem Ipsum!");
    $draw->setTextAntialias(true);
    $draw->annotation(5, 65, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(220, 80, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    //Scale the image so that people can see the aliasing.
    $imagick->scaleImage(220 * 6, 80 * 6);
    $imagick->cropImage(640, 480, 0, 0);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Specifies a decoration

  • « ImagickDraw::setTextAntialias
  • ImagickDraw::setTextEncoding »
  • PHP Manual
  • ImagickDraw
  • Specifies a decoration

ImagickDraw::setTextDecoration

(PECL imagick 2.0.0)

ImagickDraw::setTextDecoration — Specifies a decoration

Описание

ImagickDraw::setTextDecoration ( int $decoration ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies a decoration to be applied when annotating with text.

Список параметров

decoration

DECORATION_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setTextDecoration()

<?php
function setTextDecoration($strokeColor, $fillColor, $backgroundColor, $textDecoration) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->setTextDecoration($textDecoration);
    $draw->annotation(50, 75, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(500, 200, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Specifies the text code set

  • « ImagickDraw::setTextDecoration
  • ImagickDraw::setTextInterlineSpacing »
  • PHP Manual
  • ImagickDraw
  • Specifies the text code set

ImagickDraw::setTextEncoding

(PECL imagick 2.0.0)

ImagickDraw::setTextEncoding — Specifies the text code set

Описание

ImagickDraw::setTextEncoding ( string $encoding ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the code set to use for text annotations. The only character encoding which may be specified at this time is "UTF-8" for representing Unicode as a sequence of bytes. Specify an empty string to set text encoding to the system's default. Successful text annotation using Unicode may require fonts designed to support Unicode.

Список параметров

encoding

the encoding name

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Description

  • « ImagickDraw::setTextEncoding
  • ImagickDraw::setTextInterwordSpacing »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::setTextInterlineSpacing

(Информация о версии неизвестна, возможно, только в Git)

ImagickDraw::setTextInterlineSpacing — Description

Описание

public ImagickDraw::setTextInterlineSpacing ( float $spacing ) : bool

Sets the text interline spacing.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

spacing

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Description

  • « ImagickDraw::setTextInterlineSpacing
  • ImagickDraw::setTextKerning »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::setTextInterwordSpacing

(Информация о версии неизвестна, возможно, только в Git)

ImagickDraw::setTextInterwordSpacing — Description

Описание

public ImagickDraw::setTextInterwordSpacing ( float $spacing ) : bool

Sets the text interword spacing.

Список параметров

spacing

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Description

  • « ImagickDraw::setTextInterwordSpacing
  • ImagickDraw::setTextUnderColor »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::setTextKerning

(Информация о версии неизвестна, возможно, только в Git)

ImagickDraw::setTextKerning — Description

Описание

public ImagickDraw::setTextKerning ( float $kerning ) : bool

Sets the text kerning

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

kerning

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Specifies the color of a background rectangle

  • « ImagickDraw::setTextKerning
  • ImagickDraw::setVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Specifies the color of a background rectangle

ImagickDraw::setTextUnderColor

(PECL imagick 2.0.0)

ImagickDraw::setTextUnderColor — Specifies the color of a background rectangle

Описание

ImagickDraw::setTextUnderColor ( ImagickPixel $under_color ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the color of a background rectangle to place under text annotations.

Список параметров

under_color

the under color

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setTextUnderColor()

<?php
function setTextUnderColor($strokeColor, $fillColor, $backgroundColor, $textUnderColor) {
    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->annotation(50, 75, "Lorem Ipsum!");
    $draw->setTextUnderColor($textUnderColor);
    $draw->annotation(50, 175, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the vector graphics

  • « ImagickDraw::setTextUnderColor
  • ImagickDraw::setViewbox »
  • PHP Manual
  • ImagickDraw
  • Sets the vector graphics

ImagickDraw::setVectorGraphics

(PECL imagick 2.0.0)

ImagickDraw::setVectorGraphics — Sets the vector graphics

Описание

ImagickDraw::setVectorGraphics ( string $xml ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the vector graphics associated with the specified ImagickDraw object. Use this method with ImagickDraw::getVectorGraphics() as a method to persist the vector graphics state.

Список параметров

xml

xml containing the vector graphics

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 ImagickDraw::setVectorGraphics()

<?php
function setVectorGraphics() {
    //Setup a draw object with some drawing in it.
    $draw = new \ImagickDraw();
    $draw->setFillColor("red");
    $draw->circle(20, 20, 50, 50);
    $draw->setFillColor("blue");
    $draw->circle(50, 70, 50, 50);
    $draw->rectangle(50, 120, 80, 150);

    //Get the drawing as a string
    $SVG = $draw->getVectorGraphics();

    //$svg is a string, and could be saved anywhere a string can be saved

    //Use the saved drawing to generate a new draw object
    $draw2 = new \ImagickDraw();
    //Apparently the SVG text is missing the root element.
    $draw2->setVectorGraphics("<root>".$SVG."</root>");

    $imagick = new \Imagick();
    $imagick->newImage(200, 200, 'white');
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw2);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the overall canvas size

  • « ImagickDraw::setVectorGraphics
  • ImagickDraw::skewX »
  • PHP Manual
  • ImagickDraw
  • Sets the overall canvas size

ImagickDraw::setViewbox

(PECL imagick 2.0.0)

ImagickDraw::setViewbox — Sets the overall canvas size

Описание

ImagickDraw::setViewbox ( int $x1 , int $y1 , int $x2 , int $y2 ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the overall canvas size to be recorded with the drawing vector data. Usually this will be specified using the same size as the canvas image. When the vector data is saved to SVG or MVG formats, the viewbox is use to specify the size of the canvas image that a viewer will render the vector data on.

Список параметров

x1

left x coordinate

y1

left y coordinate

x2

right x coordinate

y2

right y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setViewBox()

<?php
function setViewBox($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    /*

    Sets the overall canvas size to be recorded with the drawing vector data. Usually this will be specified using the same size as the canvas image. When the vector data is saved to SVG or MVG formats, the viewbox is use to specify the size of the canvas image that a viewer will render the vector data on.

     */

    $draw->circle(250, 250, 250, 0);
    $draw->setviewbox(0, 0, 200, 200);
    $draw->circle(125, 250, 250, 250);
    $draw->translate(250, 125);
    $draw->circle(0, 0, 125, 0);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Skews the current coordinate system in the horizontal direction

  • « ImagickDraw::setViewbox
  • ImagickDraw::skewY »
  • PHP Manual
  • ImagickDraw
  • Skews the current coordinate system in the horizontal direction

ImagickDraw::skewX

(PECL imagick 2.0.0)

ImagickDraw::skewX — Skews the current coordinate system in the horizontal direction

Описание

ImagickDraw::skewX ( float $degrees ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Skews the current coordinate system in the horizontal direction.

Список параметров

degrees

degrees to skew

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::skewX()

<?php
function skewX($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor,
               $startX, $startY, $endX, $endY, $skew) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(2);
    $draw->setFillColor($fillColor);
    $draw->rectangle($startX, $startY, $endX, $endY);
    $draw->setFillColor($fillModifiedColor);
    $draw->skewX($skew);
    $draw->rectangle($startX, $startY, $endX, $endY);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Skews the current coordinate system in the vertical direction

  • « ImagickDraw::skewX
  • ImagickDraw::translate »
  • PHP Manual
  • ImagickDraw
  • Skews the current coordinate system in the vertical direction

ImagickDraw::skewY

(PECL imagick 2.0.0)

ImagickDraw::skewY — Skews the current coordinate system in the vertical direction

Описание

ImagickDraw::skewY ( float $degrees ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Skews the current coordinate system in the vertical direction.

Список параметров

degrees

degrees to skew

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::skewY()

<?php
function skewY($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor,
               $startX, $startY, $endX, $endY, $skew) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(2);
    $draw->setFillColor($fillColor);
    $draw->rectangle($startX, $startY, $endX, $endY);
    $draw->setFillColor($fillModifiedColor);
    $draw->skewY($skew);
    $draw->rectangle($startX, $startY, $endX, $endY);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Applies a translation to the current coordinate system

  • « ImagickDraw::skewY
  • ImagickPixel »
  • PHP Manual
  • ImagickDraw
  • Applies a translation to the current coordinate system

ImagickDraw::translate

(PECL imagick 2.0.0)

ImagickDraw::translate — Applies a translation to the current coordinate system

Описание

ImagickDraw::translate ( float $x , float $y ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Applies a translation to the current coordinate system which moves the coordinate system origin to the specified coordinate.

Список параметров

x

horizontal translation

y

vertical translation

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::translate()

<?php
function translate($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor,
                   $startX, $startY, $endX, $endY, $translateX, $translateY) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->rectangle($startX, $startY, $endX, $endY);

    $draw->setFillColor($fillModifiedColor);
    $draw->translate($translateX, $translateY);
    $draw->rectangle($startX, $startY, $endX, $endY);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Класс ImagickPixel

(PECL imagick 2.0.0)

Обзор классов

ImagickPixel {
clear ( void ) : bool
__construct ([ string $color ] )
destroy ( void ) : bool
getColor ([ int $normalized = 0 ] ) : array
getColorAsString ( void ) : string
getColorCount ( void ) : int
public getColorQuantum ( void ) : array
getColorValue ( int $color ) : float
public getColorValueQuantum ( int $color ) : number
getHSL ( void ) : array
public getIndex ( void ) : int
isPixelSimilar ( ImagickPixel $color , float $fuzz ) : bool
public isPixelSimilarQuantum ( string $color [, string $fuzz ] ) : bool
isSimilar ( ImagickPixel $color , float $fuzz ) : bool
setColor ( string $color ) : bool
public setcolorcount ( int $colorCount ) : bool
setColorValue ( int $color , float $value ) : bool
public setColorValueQuantum ( int $color , number $value ) : bool
setHSL ( float $hue , float $saturation , float $luminosity ) : bool
public setIndex ( int $index ) : bool
}

Содержание

  • ImagickPixel::clear — Очищает ресурсы, связанные с этим объектом
  • ImagickPixel::__construct — Конструктор ImagickPixel
  • ImagickPixel::destroy — Освобождает ресурсы, связанные с этим объектом
  • ImagickPixel::getColor — Возвращает цвет
  • ImagickPixel::getColorAsString — Возвращает цвет в виде строки
  • ImagickPixel::getColorCount — Возвращает количество цветов связанных с этим цветом
  • ImagickPixel::getColorQuantum — Description
  • ImagickPixel::getColorValue — Возвращает нормализованное значение цвета канала
  • ImagickPixel::getColorValueQuantum — Description
  • ImagickPixel::getHSL — Возвращает нормализованный HSL-цвет объекта ImagickPixel
  • ImagickPixel::getIndex — Description
  • ImagickPixel::isPixelSimilar — Check the distance between this color and another
  • ImagickPixel::isPixelSimilarQuantum — Description
  • ImagickPixel::isSimilar — Проверить разницу между этим цветом и другим
  • ImagickPixel::setColor — Устанавливает цвет
  • ImagickPixel::setColorCount — Description
  • ImagickPixel::setColorValue — Устанавливает нормализованное значение одного из каналов
  • ImagickPixel::setColorValueQuantum — Description
  • ImagickPixel::setHSL — Установка нормализованного HSL цвета
  • ImagickPixel::setIndex — Description


Очищает ресурсы, связанные с этим объектом

  • « ImagickPixel
  • ImagickPixel::__construct »
  • PHP Manual
  • ImagickPixel
  • Очищает ресурсы, связанные с этим объектом

ImagickPixel::clear

(PECL imagick 2.0.0)

ImagickPixel::clear — Очищает ресурсы, связанные с этим объектом

Описание

ImagickPixel::clear ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Очищает объект ImagickPixel, оставляя его в первоначальном состоянии и удаляет все цвета связанные с ним.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Конструктор ImagickPixel

  • « ImagickPixel::clear
  • ImagickPixel::destroy »
  • PHP Manual
  • ImagickPixel
  • Конструктор ImagickPixel

ImagickPixel::__construct

(PECL imagick 2.0.0)

ImagickPixel::__construct — Конструктор ImagickPixel

Описание

ImagickPixel::__construct ([ string $color ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Создается объект ImagickPixel. Если указан цвет, то объект создается и инициализируется с этим цветом перед возвращением.

Список параметров

color

Необязательная строка с цветом для использования в инициализации этого объекта.

Возвращаемые значения

В случае успеха возвращает объект ImagickPixel, в противном случае создаст исключение ImagickPixelException.

Примеры

Пример #1 ImagickPixel::construct()

<?php
function construct() {

    $columns = 4;

    $exampleColors = array(
        "rgba(100%, 0%, 0%, 0.5)",
        "hsb(33.3333%, 100%,  75%)", // medium green
        "hsl(120, 255,   191.25)", //medium green
        "graya(50%, 0.5)", //  semi-transparent mid gray
        "LightCoral", "none", //"cmyk(0.9, 0.48, 0.83, 0.50)",
        "#f00", //  #rgb
        "#ff0000", //  #rrggbb
        "#ff0000ff", //  #rrggbbaa
        "#ffff00000000", //  #rrrrggggbbbb
        "#ffff00000000ffff", //  #rrrrggggbbbbaaaa
        "rgb(255, 0, 0)", //  an integer in the range 0—255 for each component
        "rgb(100.0%, 0.0%, 0.0%)", //  a float in the range 0—100% for each component
        "rgb(255, 0, 0)", //  range 0 - 255
        "rgba(255, 0, 0, 1.0)", //  the same, with an explicit alpha value
        "rgb(100%, 0%, 0%)", //  range 0.0% - 100.0%
        "rgba(100%, 0%, 0%, 1.0)", //  the same, with an explicit alpha value
    );

    $draw = new \ImagickDraw();
    $count = 0;
    $black = new \ImagickPixel('rgb(0, 0, 0)');

    foreach ($exampleColors as $exampleColor) {
        $color = new \ImagickPixel($exampleColor);

        $draw->setstrokewidth(1.0);
        $draw->setStrokeColor($black);
        $draw->setFillColor($color);
        $offsetX = ($count % $columns) * 50 + 5;
        $offsetY = intval($count / $columns) * 50 + 5;
        $draw->rectangle(0 + $offsetX, 0 + $offsetY, 40 + $offsetX, 40 + $offsetY);
        $count++;
    }

    $image = new \Imagick();
    $image->newImage(350, 350, "blue");
    $image->setImageFormat("png");
    $image->drawImage($draw);
    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Освобождает ресурсы, связанные с этим объектом

  • « ImagickPixel::__construct
  • ImagickPixel::getColor »
  • PHP Manual
  • ImagickPixel
  • Освобождает ресурсы, связанные с этим объектом

ImagickPixel::destroy

(PECL imagick 2.0.0)

ImagickPixel::destroy — Освобождает ресурсы, связанные с этим объектом

Описание

ImagickPixel::destroy ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Освобождает все ресурсы используемые объектом ImagickPixel и удалят все связанные с ним цвета. Объект не следует использовать после его уничтожения.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Возвращает цвет

  • « ImagickPixel::destroy
  • ImagickPixel::getColorAsString »
  • PHP Manual
  • ImagickPixel
  • Возвращает цвет

ImagickPixel::getColor

(PECL imagick 2.0.0)

ImagickPixel::getColor — Возвращает цвет

Описание

ImagickPixel::getColor ([ int $normalized = 0 ] ) : array

Возвращает цвет в виде массива, описанный в объекте ImagickPixel. Если у цвета установлен канал прозрачности, то он будет отражен в четвертом значении списка.

Список параметров

normalized

Нормализовать значение цвета

Возвращаемые значения

Массив значений канала. Каждое значение нормализуется, если параметру будет передано TRUE. В случае ошибки создаст исключение ImagickPixelException.

Примеры

Пример #1 Пример использования Imagick::getColor()

<?php

// Создание ImagickPixel со стандартным цветом 'brown'
$color = new ImagickPixel('brown');

// настройка цвета с альфа каналом 25%
$color->setColorValue(Imagick::COLOR_ALPHA, 64 / 256.0);

$colorInfo = $color->getColor();

echo "Стандартные значения" . PHP_EOL;
print_r($colorInfo);

$colorInfo = $color->getColor(true);

echo "Нормализованные значения:" . PHP_EOL;
print_r($colorInfo);

?>

Результат выполнения данного примера:

Стандартные значения
Array
(
    [r] => 165
    [g] => 42
    [b] => 42
    [a] => 0
)
Нормализованные значения:
Array
(
    [r] => 0.64705882352941
    [g] => 0.16470588235294
    [b] => 0.16470588235294
    [a] => 0.25000381475547
)


Возвращает цвет в виде строки

  • « ImagickPixel::getColor
  • ImagickPixel::getColorCount »
  • PHP Manual
  • ImagickPixel
  • Возвращает цвет в виде строки

ImagickPixel::getColorAsString

(PECL imagick 2.1.0)

ImagickPixel::getColorAsString — Возвращает цвет в виде строки

Описание

ImagickPixel::getColorAsString ( void ) : string

Возвращает цвет объекта ImagickPixel в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает цвет объекта ImagickPixel в виде строки.

Примеры

Пример #1 Пример использования Imagick::getColorAsString()

<?php

// Создание ImagickPixel со стандартным цветом 'brown'
$color = new ImagickPixel('brown');

$color->setColorValue(Imagick::COLOR_ALPHA, 64 / 256.0);

$colorInfo = $color->getColorAsString();

print_r($colorInfo);
?>

Результат выполнения данного примера:

rgb(165,42,42)

Примечания

Замечание: Альфа канал не возвращается

Эта функция не возвращает значения альфа канала для цвета.


Возвращает количество цветов связанных с этим цветом

  • « ImagickPixel::getColorAsString
  • ImagickPixel::getColorQuantum »
  • PHP Manual
  • ImagickPixel
  • Возвращает количество цветов связанных с этим цветом

ImagickPixel::getColorCount

(PECL imagick 2.0.0)

ImagickPixel::getColorCount — Возвращает количество цветов связанных с этим цветом

Описание

ImagickPixel::getColorCount ( void ) : int

Возвращает количество цветов связанных с этим цветом.

Количество пикселей изображения, имеющих тот же цвет, что и этот ImagickPixel.

ImagickPixel::getColorCount может работать только с объектами ImagickPixel созданными с помощью Imagick::getImageHistogram()

Возвращаемые значения

В случае успеха возвращает количество цветов в виде числа, в противном случае создаст исключение ImagickPixelException.

Примеры

Пример #1 ImagickPixel getColorCount()

<?php
    $imagick = new \Imagick();
    $imagick->newPseudoImage(640, 480, "magick:logo");
    $histogramElements = $imagick->getImageHistogram();
    $lastColor = array_pop($histogramElements);
    echo "Last pixel color count is: ".$lastColor->getColorCount();
?>

Вывод будет примерно такой:

Last pixel color count is: 256244


Description

  • « ImagickPixel::getColorCount
  • ImagickPixel::getColorValue »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::getColorQuantum

(Информация о версии неизвестна, возможно, только в Git)

ImagickPixel::getColorQuantum — Description

Описание

public ImagickPixel::getColorQuantum ( void ) : array

Returns the color of the pixel in an array as Quantum values. If ImageMagick was compiled as HDRI these will be floats, otherwise they will be integers.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array with keys "r", "g", "b", "a".


Возвращает нормализованное значение цвета канала

  • « ImagickPixel::getColorQuantum
  • ImagickPixel::getColorValueQuantum »
  • PHP Manual
  • ImagickPixel
  • Возвращает нормализованное значение цвета канала

ImagickPixel::getColorValue

(PECL imagick 2.0.0)

ImagickPixel::getColorValue — Возвращает нормализованное значение цвета канала

Описание

ImagickPixel::getColorValue ( int $color ) : float

Возвращает значение указанного цвета канала, как дробное число между 0 и 1.

Список параметров

color

Цвет, для которого получается значение, заданный одной из констант Imagick. Это RGB цвет, CMYK цвет, альфа канал или прозрачность (Imagick::COLOR_BLUE, Imagick::COLOR_MAGENTA);

Возвращаемые значения

Значение канала, в виде нормализованного дробного числа, в случае ошибки будет создано исключение ImagickPixelException.

Примеры

Пример #1 Пример использования Imagick::getColorValue()

<?php

$color = new ImagickPixel('rgba(90%, 20%, 20%, 0.75)');

echo "Alpha value is ".$color->getColorValue(Imagick::COLOR_ALPHA).PHP_EOL;
echo "".PHP_EOL;
echo "Red value is ".$color->getColorValue(Imagick::COLOR_RED).PHP_EOL;
echo "Green value is ".$color->getColorValue(Imagick::COLOR_GREEN).PHP_EOL;
echo "Blue value is ".$color->getColorValue(Imagick::COLOR_BLUE).PHP_EOL;
echo "".PHP_EOL;
echo "Cyan value is ".$color->getColorValue(Imagick::COLOR_CYAN).PHP_EOL;
echo "Magenta value is ".$color->getColorValue(Imagick::COLOR_MAGENTA).PHP_EOL;
echo "Yellow value is ".$color->getColorValue(Imagick::COLOR_YELLOW).PHP_EOL;
echo "Black value is ".$color->getColorValue(Imagick::COLOR_BLACK).PHP_EOL;

?>

Результат выполнения данного примера:

Alpha value is 0.74999618524453

Red value is 0.90000762951095
Green value is 0.2
Blue value is 0.2

Cyan value is 0.90000762951095
Magenta value is 0.2
Yellow value is 0.2
Black value is 0


Description

  • « ImagickPixel::getColorValue
  • ImagickPixel::getHSL »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::getColorValueQuantum

(Информация о версии неизвестна, возможно, только в Git)

ImagickPixel::getColorValueQuantum — Description

Описание

public ImagickPixel::getColorValueQuantum ( int $color ) : number

Gets the quantum value of a color in the ImagickPixel. Return value is a float if ImageMagick was compiled with HDRI, otherwise an integer.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The quantum value of the color element. Float if ImageMagick was compiled with HDRI, otherwise an int.

Примеры

Пример #1 ImagickPixel::getColorValueQuantum()

<?php
        $color = new \ImagickPixel('rgb(128, 5, 255)');
        $colorRed = $color->getColorValueQuantum(\Imagick::COLOR_RED);
        $colorGreen = $color->getColorValueQuantum(\Imagick::COLOR_GREEN);
        $colorBlue = $color->getColorValueQuantum(\Imagick::COLOR_BLUE);
        $colorAlpha = $color->getColorValueQuantum(\Imagick::COLOR_ALPHA);

        printf(
            "Red: %s Green: %s  Blue %s Alpha: %s",
            $colorRed,
            $colorGreen,
            $colorBlue,
            $colorAlpha
        );

?>


Возвращает нормализованный HSL-цвет объекта ImagickPixel

  • « ImagickPixel::getColorValueQuantum
  • ImagickPixel::getIndex »
  • PHP Manual
  • ImagickPixel
  • Возвращает нормализованный HSL-цвет объекта ImagickPixel

ImagickPixel::getHSL

(PECL imagick 2.0.0)

ImagickPixel::getHSL — Возвращает нормализованный HSL-цвет объекта ImagickPixel

Описание

ImagickPixel::getHSL ( void ) : array

Возвращает нормализованный HSL-цвет, описанный объектом ImagickPixel, каждое из трех значений является дробным числом между 0.0 и 1.0.

Возвращаемые значения

Возвращает HSL-значение в виде массива с ключами "hue", "saturation" и "luminosity". В случае ошибки будет создано исключение ImagickPixelException.

Примеры

Пример #1 Пример использования Imagick::getHSL()

<?php

$color = new ImagickPixel('rgb(90%, 10%, 10%)');

$colorInfo = $color->getHSL();

print_r($colorInfo);

?>

Результат выполнения данного примера:

Array
(
    [hue] => 0
    [saturation] => 0.80001220740379
    [luminosity] => 0.50000762951095
)

Примечания

Замечание:

Доступно с библиотекой ImageMagick версии 6.2.9 или выше.


Description

  • « ImagickPixel::getHSL
  • ImagickPixel::isPixelSimilar »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::getIndex

(Информация о версии неизвестна, возможно, только в Git)

ImagickPixel::getIndex — Description

Описание

public ImagickPixel::getIndex ( void ) : int

Gets the colormap index of the pixel wand.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Check the distance between this color and another

  • « ImagickPixel::getIndex
  • ImagickPixel::isPixelSimilarQuantum »
  • PHP Manual
  • ImagickPixel
  • Check the distance between this color and another

ImagickPixel::isPixelSimilar

(Информация о версии неизвестна, возможно, только в Git)

ImagickPixel::isPixelSimilar — Check the distance between this color and another

Описание

ImagickPixel::isPixelSimilar ( ImagickPixel $color , float $fuzz ) : bool

Checks the distance between the color described by this ImagickPixel object and that of the provided object, by plotting their RGB values on the color cube. If the distance between the two points is less than the fuzz value given, the colors are similar. This method replaces ImagickPixel::isSimilar() and correctly normalises the fuzz value to ImageMagick QuantumRange.

Список параметров

color

The ImagickPixel object to compare this object against.

fuzz

The maximum distance within which to consider these colors as similar. The theoretical maximum for this value is the square root of three (1.732).

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Description

  • « ImagickPixel::isPixelSimilar
  • ImagickPixel::isSimilar »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::isPixelSimilarQuantum

(Информация о версии неизвестна, возможно, только в Git)

ImagickPixel::isPixelSimilarQuantum — Description

Описание

public ImagickPixel::isPixelSimilarQuantum ( string $color [, string $fuzz ] ) : bool

Returns true if the distance between two colors is less than the specified distance. The fuzz value should be in the range 0-QuantumRange. The maximum value represents the longest possible distance in the colorspace. e.g. from RGB(0, 0, 0) to RGB(255, 255, 255) for the RGB colorspace

Список параметров

color

fuzz

Возвращаемые значения


Проверить разницу между этим цветом и другим

  • « ImagickPixel::isPixelSimilarQuantum
  • ImagickPixel::setColor »
  • PHP Manual
  • ImagickPixel
  • Проверить разницу между этим цветом и другим

ImagickPixel::isSimilar

(PECL imagick 2.0.0)

ImagickPixel::isSimilar — Проверить разницу между этим цветом и другим

Описание

ImagickPixel::isSimilar ( ImagickPixel $color , float $fuzz ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Проверяется разница цвета, описанного текущим объектом ImagickPixel и цвета в переданном объекте, путем построения их RGB значений в цветовом кубе. Если разница между ними меньше чем переданное fuzz-значение, то цвета считаются одинаковыми. Устарел в пользу ImagickPixel::isPixelSimilar().

Список параметров

color

Объект ImagickPixel для сравнения с текущим объектом.

fuzz

Максимальная разница, при которой цвета будут считаться одинаковыми. Теоретическим максимумом для этого значения можно считать квадратный корень из трех (1.732).

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickPixel::isSimilar()

<?php
        // Тесты ниже написаны с учетом максимальной дистанции 255
        // следовательно мы должны масштабировать их на корень из 3 - длину диагонали
        // единичного куба
        $root3 = 1.732050807568877;

        $tests = array(
            ['rgb(245, 0, 0)',      'rgb(255, 0, 0)',   9 / $root3,         false,],
            ['rgb(245, 0, 0)',      'rgb(255, 0, 0)',  10 / $root3,         true,],
            ['rgb(0, 0, 0)',        'rgb(7, 7, 0)',     9 / $root3,         false,],
            ['rgb(0, 0, 0)',        'rgb(7, 7, 0)',    10 / $root3,         true,],
            ['rgba(0, 0, 0, 1)',    'rgba(7, 7, 0, 1)', 9 / $root3,         false,],
            ['rgba(0, 0, 0, 1)',    'rgba(7, 7, 0, 1)',    10 / $root3,     true,],
            ['rgb(128, 128, 128)',  'rgb(128, 128, 120)',   7 / $root3,     false,],
            ['rgb(128, 128, 128)',  'rgb(128, 128, 120)',   8 / $root3,     true,],
            ['rgb(0, 0, 0)',        'rgb(255, 255, 255)',   254.9,          false,],
            ['rgb(0, 0, 0)',        'rgb(255, 255, 255)',   255,            true,],
            ['rgb(255, 0, 0)',      'rgb(0, 255, 255)',     254.9,          false,],
            ['rgb(255, 0, 0)',      'rgb(0, 255, 255)',     255,            true,],
            ['black',               'rgba(0, 0, 0)',        0.0,            true],
            ['black',               'rgba(10, 0, 0, 1.0)',  10.0 / $root3,  true],);

        $output = "<table width='100%' class='infoTable'><thead>
                <tr>
                <th>
                Color 1
                </th>
                <th>
                Color 2
                </th>
                <th>
                    Тестовая дистанция * 255
                </th>
                <th>
                    Есть в пределах досягаемости
                </th>
                </tr>
        </thead>";

        $output .= "<tbody>";

        foreach ($tests as $testInfo) {
            $color1 = $testInfo[0];
            $color2 = $testInfo[1];
            $distance = $testInfo[2];
            $expectation = $testInfo[3];
            $testDistance = ($distance / 255.0);

            $color1Pixel = new \ImagickPixel($color1);
            $color2Pixel = new \ImagickPixel($color2);

            $isSimilar = $color1Pixel->isPixelSimilar($color2Pixel, $testDistance);

            if ($isSimilar !== $expectation) {
                echo "Тест дистанции провален. Цвет [$color1] в сравнении с [$color2] не попадает в дистанцию $testDistance.".NL;
            }

            $layout = "<tr>
                <td>%s</td>
                <td>%s</td>
                <td>%s</td>
                <td style='text-align: center;'>%s</td>
            </tr>";

            $output .= sprintf(
                $layout,
                $color1,
                $color2,
                $distance,
                $isSimilar ? 'да' : 'нет'
            );
        }

        $output .= "</tbody></table>";

        return $output;

?>


Устанавливает цвет

  • « ImagickPixel::isSimilar
  • ImagickPixel::setColorCount »
  • PHP Manual
  • ImagickPixel
  • Устанавливает цвет

ImagickPixel::setColor

(PECL imagick 2.0.0)

ImagickPixel::setColor — Устанавливает цвет

Описание

ImagickPixel::setColor ( string $color ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Устанавливает цвет объекта ImagickPixel указанной строкой (например "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)" и т.д.).

Список параметров

color

Определение цвета для использования в порядке инициализации объекта ImagickPixel.

Возвращаемые значения

Возвращает TRUE если цвет был установлен, в противном случае FALSE.

Примеры

Пример #1 ImagickPixel::setColor()

<?php
function setColor() {
    $draw = new \ImagickDraw();

    $strokeColor = new \ImagickPixel('green');
    $fillColor = new \ImagickPixel();
    $fillColor->setColor('rgba(100%, 75%, 0%, 1.0)');

    $draw->setstrokewidth(3.0);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->rectangle(200, 200, 300, 300);

    $image = new \Imagick();
    $image->newImage(500, 500, "SteelBlue2");
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Description

  • « ImagickPixel::setColor
  • ImagickPixel::setColorValue »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::setColorCount

(Информация о версии неизвестна, возможно, только в Git)

ImagickPixel::setColorCount — Description

Описание

public ImagickPixel::setcolorcount ( int $colorCount ) : bool

Sets the color count associated with this color.

Список параметров

colorCount

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Устанавливает нормализованное значение одного из каналов

  • « ImagickPixel::setColorCount
  • ImagickPixel::setColorValueQuantum »
  • PHP Manual
  • ImagickPixel
  • Устанавливает нормализованное значение одного из каналов

ImagickPixel::setColorValue

(PECL imagick 2.0.0)

ImagickPixel::setColorValue — Устанавливает нормализованное значение одного из каналов

Описание

ImagickPixel::setColorValue ( int $color , float $value ) : bool

Устанавливает значение указанного канала текущего объекта, при условии того, что новое значение находится между 0 и 1. Эта функция может быть использована для установки прозрачности канала объекта ImagickPixel.

Список параметров

color

Одна из констант цвета Imagick, т.е. \Imagick::COLOR_GREEN или \Imagick::COLOR_ALPHA.

value

Значение для установки в этом канале, в пределах от 0 до 1.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Пример использования Imagick::setColorValue()

<?php

$color  = new \ImagickPixel('firebrick');

$color->setColorValue(Imagick::COLOR_ALPHA, 0.5);

print_r($color->getcolor(true));
?>

Результат выполнения данного примера:

Array
(
    [r] => 0.69803921568627
    [g] => 0.13333333333333
    [b] => 0.13333333333333
    [a] => 0.50000762951095
)


Description

  • « ImagickPixel::setColorValue
  • ImagickPixel::setHSL »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::setColorValueQuantum

(Информация о версии неизвестна, возможно, только в Git)

ImagickPixel::setColorValueQuantum — Description

Описание

public ImagickPixel::setColorValueQuantum ( int $color , number $value ) : bool

Sets the quantum value of a color element of the ImagickPixel.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

color

Which color element to set e.g. \Imagick::COLOR_GREEN.

value

The quantum value to set the color element to. This should be a float if ImageMagick was compiled with HDRI otherwise an int in the range 0 to Imagick::getQuantum().

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickPixel::setColorValueQuantum()

<?php
function setColorValueQuantum() {
    $image = new \Imagick();

    $quantumRange = $image->getQuantumRange();

    $draw = new \ImagickDraw();
    $color = new \ImagickPixel('blue');
    $color->setcolorValueQuantum(\Imagick::COLOR_RED, 128 * $quantumRange['quantumRangeLong'] / 256);

    $draw->setstrokewidth(1.0);
    $draw->setStrokeColor($color);
    $draw->setFillColor($color);
    $draw->rectangle(200, 200, 300, 300);

    $image->newImage(500, 500, "SteelBlue2");
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Установка нормализованного HSL цвета

  • « ImagickPixel::setColorValueQuantum
  • ImagickPixel::setIndex »
  • PHP Manual
  • ImagickPixel
  • Установка нормализованного HSL цвета

ImagickPixel::setHSL

(PECL imagick 2.0.0)

ImagickPixel::setHSL — Установка нормализованного HSL цвета

Описание

ImagickPixel::setHSL ( float $hue , float $saturation , float $luminosity ) : bool

Устанавливает цвет в объекте ImagickPixel используя нормализованные значения оттенка, насыщенности и яркости.

Список параметров

hue

Нормализованное значение оттенка, в виде значения круговой радуги (между 0 и 1), где нулевым значением будет красный цвет.

saturation

Нормализованное значение насыщенности, где 1 означает полное насыщение.

luminosity

Нормализованное значение яркости, по шкале от 0 (черный) до 1 (белый), при установленном HS в значении 0.5.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Пример использования ImagickPixel::setHSL()

<?php

//Создание почти чистого красного цвета
$color = new ImagickPixel('rgb(90%, 10%, 10%)');

//Получение значений HSL
$colorInfo = $color->getHSL();

//Поворачиваем оттенок на 180 градусов
$newHue = $colorInfo['hue'] + 0.5;
if ($newHue > 1) {
    $newHue = $newHue - 1;
}

//Устанавливаем ImagickPixel в новый цвет
$colorInfo = $color->setHSL($newHue, $colorInfo['saturation'], $colorInfo['luminosity']);

//Проверяем, что новый цвет является голубым/зеленым
$colorInfo = $color->getcolor();
print_r($colorInfo);

?>

Результат выполнения данного примера:

Array
(
    [r] => 26
    [g] => 230
    [b] => 230
    [a] => 255
)

Примечания

Замечание:

Доступно с версии 6.2.9 и выше библиотеки ImageMagick.


Description

  • « ImagickPixel::setHSL
  • ImagickPixelIterator »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::setIndex

(Информация о версии неизвестна, возможно, только в Git)

ImagickPixel::setIndex — Description

Описание

public ImagickPixel::setIndex ( int $index ) : bool

Sets the colormap index of the pixel wand.

Список параметров

index

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Класс ImagickPixelIterator

(PECL imagick 2.0.0)

Обзор классов

ImagickPixelIterator {
clear ( void ) : bool
__construct ( Imagick $wand )
destroy ( void ) : bool
getCurrentIteratorRow ( void ) : array
getIteratorRow ( void ) : int
getNextIteratorRow ( void ) : array
getPreviousIteratorRow ( void ) : array
newPixelIterator ( Imagick $wand ) : bool
newPixelRegionIterator ( Imagick $wand , int $x , int $y , int $columns , int $rows ) : bool
resetIterator ( void ) : bool
setIteratorFirstRow ( void ) : bool
setIteratorLastRow ( void ) : bool
setIteratorRow ( int $row ) : bool
syncIterator ( void ) : bool
}

Содержание

  • ImagickPixelIterator::clear — Очищает ресурсы, связанные с PixelIterator
  • ImagickPixelIterator::__construct — Конструктор ImagickPixelIterator
  • ImagickPixelIterator::destroy — Освобождает ресурсы, связанные с PixelIterator
  • ImagickPixelIterator::getCurrentIteratorRow — Возвращает текущий ряд объекта ImagickPixel
  • ImagickPixelIterator::getIteratorRow — Возвращает текущий пиксель итератора ряда
  • ImagickPixelIterator::getNextIteratorRow — Возвращает следующий ряд итератора пикселей
  • ImagickPixelIterator::getPreviousIteratorRow — Возвращает предыдущий ряд
  • ImagickPixelIterator::newPixelIterator — Возвращает новый итератор пикселей
  • ImagickPixelIterator::newPixelRegionIterator — Возвращает новый итератор пикселей
  • ImagickPixelIterator::resetIterator — Сбрасывает итератор пикселей
  • ImagickPixelIterator::setIteratorFirstRow — Устанавливает итератор пикселей на первый ряд
  • ImagickPixelIterator::setIteratorLastRow — Устанавливает итератор пикселей на последний ряд
  • ImagickPixelIterator::setIteratorRow — Устанавливает номер ряда в итераторе пикселей
  • ImagickPixelIterator::syncIterator — Синхронизирует итератор пикселей


Очищает ресурсы, связанные с PixelIterator

  • « ImagickPixelIterator
  • ImagickPixelIterator::__construct »
  • PHP Manual
  • ImagickPixelIterator
  • Очищает ресурсы, связанные с PixelIterator

ImagickPixelIterator::clear

(PECL imagick 2.0.0)

ImagickPixelIterator::clear — Очищает ресурсы, связанные с PixelIterator

Описание

ImagickPixelIterator::clear ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Очищает ресурсы, связанные с PixelIterator.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickPixelIterator::clear()

<?php
function clear($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));

    $imageIterator = $imagick->getPixelRegionIterator(100, 100, 250, 200);

    /* Походим по строкам пикселей */
    foreach ($imageIterator as $pixels) {
        /** @var $pixel \ImagickPixel */
        /* Походим по пикселям в строке (столбцы) */
        foreach ($pixels as $column => $pixel) {
            if ($column % 2) {
                /* Красим каждый второй пиксель черным*/
                $pixel->setColor("rgba(0, 0, 0, 0)");
            }
        }
        /* Синхронизируем итератор. Это необходимо для делать на каждой итерации */
        $imageIterator->syncIterator();
    }

    $imageIterator->clear();

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Конструктор ImagickPixelIterator

  • « ImagickPixelIterator::clear
  • ImagickPixelIterator::destroy »
  • PHP Manual
  • ImagickPixelIterator
  • Конструктор ImagickPixelIterator

ImagickPixelIterator::__construct

(PECL imagick 2.0.0)

ImagickPixelIterator::__construct — Конструктор ImagickPixelIterator

Описание

ImagickPixelIterator::__construct ( Imagick $wand )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Конструктор ImagickPixelIterator

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickPixelIterator::construct()

<?php
function construct($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imageIterator = new \ImagickPixelIterator($imagick);

    /* Походим по строкам пикселей */
    foreach ($imageIterator as $pixels) {
        /* Походим по пикселям в строке (столбцы) */
        foreach ($pixels as $column => $pixel) {
            /** @var $pixel \ImagickPixel */
            if ($column % 2) {
                /* Красим каждый второй пиксель черным*/
                $pixel->setColor("rgba(0, 0, 0, 0)");
            }
        }
        /* Синхронизируем итератор. Это необходимо для делать на каждой итерации */
        $imageIterator->syncIterator();
    }

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Освобождает ресурсы, связанные с PixelIterator

  • « ImagickPixelIterator::__construct
  • ImagickPixelIterator::getCurrentIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Освобождает ресурсы, связанные с PixelIterator

ImagickPixelIterator::destroy

(PECL imagick 2.0.0)

ImagickPixelIterator::destroy — Освобождает ресурсы, связанные с PixelIterator

Описание

ImagickPixelIterator::destroy ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Освобождает ресурсы, связанные с PixelIterator.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Возвращает текущий ряд объекта ImagickPixel

  • « ImagickPixelIterator::destroy
  • ImagickPixelIterator::getIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Возвращает текущий ряд объекта ImagickPixel

ImagickPixelIterator::getCurrentIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getCurrentIteratorRow — Возвращает текущий ряд объекта ImagickPixel

Описание

ImagickPixelIterator::getCurrentIteratorRow ( void ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает текущий ряд в виде массива объектов ImagickPixel из пиксельного итератора.

Возвращаемые значения

Возвращает ряд в виде массива объектов ImagickPixel, который сам может быть итерирован.


Возвращает текущий пиксель итератора ряда

  • « ImagickPixelIterator::getCurrentIteratorRow
  • ImagickPixelIterator::getNextIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Возвращает текущий пиксель итератора ряда

ImagickPixelIterator::getIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getIteratorRow — Возвращает текущий пиксель итератора ряда

Описание

ImagickPixelIterator::getIteratorRow ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает текущий пиксель итератора ряда.

Возвращаемые значения

Возвращает смещение ряда в виде числа, в случае ошибки выдаст исключение ImagickPixelIteratorException.


Возвращает следующий ряд итератора пикселей

  • « ImagickPixelIterator::getIteratorRow
  • ImagickPixelIterator::getPreviousIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Возвращает следующий ряд итератора пикселей

ImagickPixelIterator::getNextIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getNextIteratorRow — Возвращает следующий ряд итератора пикселей

Описание

ImagickPixelIterator::getNextIteratorRow ( void ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает следующий ряд в виде массива пикселей из итератора пикселей.

Возвращаемые значения

Возвращает следующий ряд в виде массива объектов ImagickPixel, в случае ошибки выдаст исключение ImagickPixelIteratorException.

Примеры

Пример #1 ImagickPixelIterator::getNextIteratorRow()

<?php
function getNextIteratorRow($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imageIterator = $imagick->getPixelIterator();

    $count = 0;
    while ($pixels = $imageIterator->getNextIteratorRow()) {
        if (($count % 3) == 0) {
            /* Походим по пикселям в строке (столбцы) */
            foreach ($pixels as $column => $pixel) {
                /** @var $pixel \ImagickPixel */
                if ($column % 2) {
                    /* Красим каждый второй пиксель черным*/
                    $pixel->setColor("rgba(0, 0, 0, 0)");
                }
            }
            /* Синхронизируем итератор. Это необходимо для делать на каждой итерации */
            $imageIterator->syncIterator();
        }

        $count += 1;
    }

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Возвращает предыдущий ряд

  • « ImagickPixelIterator::getNextIteratorRow
  • ImagickPixelIterator::newPixelIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Возвращает предыдущий ряд

ImagickPixelIterator::getPreviousIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getPreviousIteratorRow — Возвращает предыдущий ряд

Описание

ImagickPixelIterator::getPreviousIteratorRow ( void ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает предыдущий ряд в виде массива пикселей из итератора пикселей.

Возвращаемые значения

Возвращает предыдущий ряд в виде массива объектов ImagickPixel, в случае ошибки выдаст исключение ImagickPixelIteratorException.


Возвращает новый итератор пикселей

  • « ImagickPixelIterator::getPreviousIteratorRow
  • ImagickPixelIterator::newPixelRegionIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Возвращает новый итератор пикселей

ImagickPixelIterator::newPixelIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::newPixelIterator — Возвращает новый итератор пикселей

Описание

ImagickPixelIterator::newPixelIterator ( Imagick $wand ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает новый итератор пикселей.

Возвращаемые значения

В случае успешной работы возвращает TRUE. Исключение ImagickPixelIteratorException.


Возвращает новый итератор пикселей

  • « ImagickPixelIterator::newPixelIterator
  • ImagickPixelIterator::resetIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Возвращает новый итератор пикселей

ImagickPixelIterator::newPixelRegionIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::newPixelRegionIterator — Возвращает новый итератор пикселей

Описание

ImagickPixelIterator::newPixelRegionIterator ( Imagick $wand , int $x , int $y , int $columns , int $rows ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает новый итератор пикселей.

Список параметров

wand

x

y

columns

rows

Возвращаемые значения

Возвращает новый объект ImagickPixelIterator в случае успеха; в противном случае выдаст исключение ImagickPixelIteratorException.


Сбрасывает итератор пикселей

  • « ImagickPixelIterator::newPixelRegionIterator
  • ImagickPixelIterator::setIteratorFirstRow »
  • PHP Manual
  • ImagickPixelIterator
  • Сбрасывает итератор пикселей

ImagickPixelIterator::resetIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::resetIterator — Сбрасывает итератор пикселей

Описание

ImagickPixelIterator::resetIterator ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Сбрасывает итератор пикселей. Используйте совместно с ImagickPixelIterator::getNextIteratorRow() для перебора всех пикселей в контейнере пикселей.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickPixelIterator::resetIterator()

<?php
function resetIterator($imagePath) {

    $imagick = new \Imagick(realpath($imagePath));

    $imageIterator = $imagick->getPixelIterator();

    /* Походим по строкам пикселей */
    foreach ($imageIterator as $pixels) {
        /* Походим по пикселям в строке (столбцы) */
        foreach ($pixels as $column => $pixel) {
            /** @var $pixel \ImagickPixel */
            if ($column % 2) {

                /* Делаем каждый второй пиксель на 25% красным*/
                $pixel->setColorValue(\Imagick::COLOR_RED, 64);
            }
        }
        /* Синхронизируем итератор. Это необходимо для делать на каждой итерации */
        $imageIterator->syncIterator();
    }

    $imageIterator->resetiterator();

    /* Походим по строкам пикселей */
    foreach ($imageIterator as $pixels) {
        /* Походим по пикселям в строке (столбцы) */
        foreach ($pixels as $column => $pixel) {
            /** @var $pixel \ImagickPixel */
            if ($column % 3) {
                $pixel->setColorValue(\Imagick::COLOR_BLUE, 64); /* Делаем каждый второй пиксель немного синим*/
                //$pixel->setColor("rgba(0, 0, 128, 0)"); /* Paint every second pixel black*/
            }
        }
        $imageIterator->syncIterator(); /* Синхронизируем итератор. Это необходимо для делать на каждой итерации */
    }

    $imageIterator->clear();

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Устанавливает итератор пикселей на первый ряд

  • « ImagickPixelIterator::resetIterator
  • ImagickPixelIterator::setIteratorLastRow »
  • PHP Manual
  • ImagickPixelIterator
  • Устанавливает итератор пикселей на первый ряд

ImagickPixelIterator::setIteratorFirstRow

(PECL imagick 2.0.0)

ImagickPixelIterator::setIteratorFirstRow — Устанавливает итератор пикселей на первый ряд

Описание

ImagickPixelIterator::setIteratorFirstRow ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Устанавливает внутренний указатель итератора пикселей на первый ряд.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Устанавливает итератор пикселей на последний ряд

  • « ImagickPixelIterator::setIteratorFirstRow
  • ImagickPixelIterator::setIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Устанавливает итератор пикселей на последний ряд

ImagickPixelIterator::setIteratorLastRow

(PECL imagick 2.0.0)

ImagickPixelIterator::setIteratorLastRow — Устанавливает итератор пикселей на последний ряд

Описание

ImagickPixelIterator::setIteratorLastRow ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Устанавливает внутренний указатель итератора пикселей на последний ряд.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Устанавливает номер ряда в итераторе пикселей

  • « ImagickPixelIterator::setIteratorLastRow
  • ImagickPixelIterator::syncIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Устанавливает номер ряда в итераторе пикселей

ImagickPixelIterator::setIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::setIteratorRow — Устанавливает номер ряда в итераторе пикселей

Описание

ImagickPixelIterator::setIteratorRow ( int $row ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Устанавливает номер ряда в итераторе пикселей.

Список параметров

row

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickPixelIterator::setIteratorRow()

<?php
function setIteratorRow($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imageIterator = $imagick->getPixelRegionIterator(200, 100, 200, 200);

    for ($x = 0; $x < 20; $x++) {
        $imageIterator->setIteratorRow($x * 5);
        $pixels = $imageIterator->getCurrentIteratorRow();
        /* Походим по пикселям в строке (столбцы) */
        foreach ($pixels as $pixel) {
            /** @var $pixel \ImagickPixel */
            /* Красим каждый второй пиксель черным*/
            $pixel->setColor("rgba(0, 0, 0, 0)");
        }

        /* Синхронизируем итератор. Это необходимо для делать на каждой итерации */
        $imageIterator->syncIterator();
    }

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Синхронизирует итератор пикселей

  • « ImagickPixelIterator::setIteratorRow
  • ImagickKernel »
  • PHP Manual
  • ImagickPixelIterator
  • Синхронизирует итератор пикселей

ImagickPixelIterator::syncIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::syncIterator — Синхронизирует итератор пикселей

Описание

ImagickPixelIterator::syncIterator ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Синхронизирует итератор пикселей.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Класс ImagickKernel

(PECL imagick >= 3.3.0)

Введение

Обзор классов

ImagickKernel {
/* Методы */
public addKernel ( ImagickKernel $ImagickKernel ) : void
public addUnityKernel ( float $scale ) : void
public static fromBuiltin ( int $kernelType , string $kernelString ) : ImagickKernel
public static fromMatrix ( array $matrix [, array $origin ] ) : ImagickKernel
public getMatrix ( void ) : array
public scale ( float $scale [, int $normalizeFlag ] ) : void
public separate ( void ) : array
}

Содержание

  • ImagickKernel::addKernel — Description
  • ImagickKernel::addUnityKernel — Description
  • ImagickKernel::fromBuiltIn — Description
  • ImagickKernel::fromMatrix — Description
  • ImagickKernel::getMatrix — Description
  • ImagickKernel::scale — Description
  • ImagickKernel::separate — Description


Description

  • « ImagickKernel
  • ImagickKernel::addUnityKernel »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::addKernel

(PECL imagick >= 3.3.0)

ImagickKernel::addKernel — Description

Описание

public ImagickKernel::addKernel ( ImagickKernel $ImagickKernel ) : void

Attach another kernel to this kernel to allow them to both be applied in a single morphology or filter function. Returns the new combined kernel.

Список параметров

ImagickKernel

Возвращаемые значения

Примеры

Пример #1 ImagickKernel::addKernel()

<?php
function addKernel($imagePath) {
    $matrix1 = [
        [-1, -1, -1],
        [ 0,  0,  0],
        [ 1,  1,  1],
    ];

    $matrix2 = [
        [-1,  0,  1],
        [-1,  0,  1],
        [-1,  0,  1],
    ];

    $kernel1 = ImagickKernel::fromMatrix($matrix1);
    $kernel2 = ImagickKernel::fromMatrix($matrix2);
    $kernel1->addKernel($kernel2);

    $imagick = new \Imagick(realpath($imagePath));
    $imagick->filter($kernel1);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();

}

?>


Description

  • « ImagickKernel::addKernel
  • ImagickKernel::fromBuiltIn »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::addUnityKernel

(PECL imagick >= 3.3.0)

ImagickKernel::addUnityKernel — Description

Описание

public ImagickKernel::addUnityKernel ( float $scale ) : void

Adds a given amount of the 'Unity' Convolution Kernel to the given pre-scaled and normalized Kernel. This in effect adds that amount of the original image into the resulting convolution kernel. The resulting effect is to convert the defined kernels into blended soft-blurs, unsharp kernels or into sharpening kernels.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 ImagickKernel::addUnityKernel()

<?php

    function renderKernelTable($matrix) {
        $output = "<table class='infoTable'>";

        foreach ($matrix as $row) {
            $output .= "<tr>";
            foreach ($row as $cell) {
                $output .= "<td style='text-align:left'>";
                if ($cell === false) {
                    $output .= "false";
                }
                else {
                    $output .= round($cell, 3);
                }
                $output .= "</td>";
            }
            $output .= "</tr>";
        }

        $output .= "</table>";

        return $output;
    }

    $matrix = [
        [-1, 0, -1],
        [ 0, 4,  0],
        [-1, 0, -1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);
    $kernel->scale(1, \Imagick::NORMALIZE_KERNEL_VALUE);
    $output = "Before adding unity kernel: <br/>";
    $output .= renderKernelTable($kernel->getMatrix());
    $kernel->addUnityKernel(0.5);
    $output .= "After adding unity kernel: <br/>";
    $output .= renderKernelTable($kernel->getMatrix());

    $kernel->scale(1, \Imagick::NORMALIZE_KERNEL_VALUE);
    $output .= "After renormalizing kernel: <br/>";
    $output .= renderKernelTable($kernel->getMatrix());

    echo $output;

?>

Пример #2 ImagickKernel::addUnityKernel()

<?php
function addUnityKernel($imagePath) {

    $matrix = [
        [-1, 0, -1],
        [ 0, 4,  0],
        [-1, 0, -1],
    ];

    $kernel = ImagickKernel::fromMatrix($matrix);

    $kernel->scale(4, \Imagick::NORMALIZE_KERNEL_VALUE);
    $kernel->addUnityKernel(0.5);

    $imagick = new \Imagick(realpath($imagePath));
    $imagick->filter($kernel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();

}

?>


Description

  • « ImagickKernel::addUnityKernel
  • ImagickKernel::fromMatrix »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::fromBuiltIn

(PECL imagick >= 3.3.0)

ImagickKernel::fromBuiltIn — Description

Описание

public static ImagickKernel::fromBuiltin ( int $kernelType , string $kernelString ) : ImagickKernel

Create a kernel from a builtin in kernel. See http://www.imagemagick.org/Usage/morphology/#kernel for examples. Currently the 'rotation' symbols are not supported. Example: $diamondKernel = ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "2");

Список параметров

kerneltype

The type of kernel to build e.g. \Imagick::KERNEL_DIAMOND

kernelString

A string that describes the parameters e.g. "4,2.5"

Возвращаемые значения

Примеры

Пример #1 ImagickKernel::fromBuiltin()

<?php

function renderKernel(ImagickKernel $imagickKernel) {
    $matrix = $imagickKernel->getMatrix();

    $imageMargin = 20;

    $tileSize = 20;
    $tileSpace = 4;
    $shadowSigma = 4;
    $shadowDropX = 20;
    $shadowDropY = 0;

    $radius = ($tileSize / 2) * 0.9;

    $rows = count($matrix);
    $columns = count($matrix[0]);

    $imagickDraw = new \ImagickDraw();

    $imagickDraw->setFillColor('#afafaf');
    $imagickDraw->setStrokeColor('none');

    $imagickDraw->translate($imageMargin, $imageMargin);
    $imagickDraw->push();

    ksort($matrix);

    foreach ($matrix as $row) {
        ksort($row);
        $imagickDraw->push();
        foreach ($row as $cell) {
            if ($cell !== false) {
                $color = intval(255 * $cell);
                $colorString = sprintf("rgb(%f, %f, %f)", $color, $color, $color);
                $imagickDraw->setFillColor($colorString);
                $imagickDraw->rectangle(0, 0, $tileSize, $tileSize);
            }
            $imagickDraw->translate(($tileSize + $tileSpace), 0);
        }
        $imagickDraw->pop();
        $imagickDraw->translate(0, ($tileSize + $tileSpace));
    }

    $imagickDraw->pop();

    $width = ($columns * $tileSize) + (($columns - 1) * $tileSpace);
    $height = ($rows * $tileSize) + (($rows - 1) * $tileSpace);

    $imagickDraw->push();
    $imagickDraw->translate($width/2 , $height/2);
    $imagickDraw->setFillColor('rgba(0, 0, 0, 0)');
    $imagickDraw->setStrokeColor('white');
    $imagickDraw->circle(0, 0, $radius - 1, 0);
    $imagickDraw->setStrokeColor('black');
    $imagickDraw->circle(0, 0, $radius, 0);
    $imagickDraw->pop();

    $canvasWidth = $width + (2 * $imageMargin);
    $canvasHeight = $height + (2 * $imageMargin);

    $kernel = new \Imagick();
    $kernel->newPseudoImage(
        $canvasWidth,
        $canvasHeight,
        'canvas:none'
    );

    $kernel->setImageFormat('png');
    $kernel->drawImage($imagickDraw);

    /* create drop shadow on it's own layer */
    $canvas = $kernel->clone();
    $canvas->setImageBackgroundColor(new \ImagickPixel('rgb(0, 0, 0)'));
    $canvas->shadowImage(100, $shadowSigma, $shadowDropX, $shadowDropY);

    $canvas->setImagePage($canvasWidth, $canvasHeight, -5, -5);
    $canvas->cropImage($canvasWidth, $canvasHeight, 0, 0);

    /* composite original text_layer onto shadow_layer */
    $canvas->compositeImage($kernel, \Imagick::COMPOSITE_OVER, 0, 0);
    $canvas->setImageFormat('png');

    return $canvas;
}

function createFromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm) {
    $string = '';

    if ($kernelFirstTerm != false && strlen(trim($kernelFirstTerm)) != 0) {
        $string .= $kernelFirstTerm;

        if ($kernelSecondTerm != false && strlen(trim($kernelSecondTerm)) != 0) {
            $string .= ','.$kernelSecondTerm;
            if ($kernelThirdTerm != false && strlen(trim($kernelThirdTerm)) != 0) {
                $string .= ','.$kernelThirdTerm;
            }
        }
    }

    $kernel = ImagickKernel::fromBuiltIn(
        $kernelType,
        $string
    );

    return $kernel;
}

function fromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm) {
    $diamondKernel = createFromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm);
    $imagick = renderKernel($diamondKernel);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

fromBuiltin(\Imagick::KERNEL_DIAMOND, 2, false, false);

?>


Description

  • « ImagickKernel::fromBuiltIn
  • ImagickKernel::getMatrix »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::fromMatrix

(PECL imagick >= 3.3.0)

ImagickKernel::fromMatrix — Description

Описание

public static ImagickKernel::fromMatrix ( array $matrix [, array $origin ] ) : ImagickKernel

Create a kernel from an 2d matrix of values. Each value should either be a float (if the element should be used) or 'false' if the element should be skipped. For matrices that are odd sizes in both dimensions the origin pixel will default to the centre of the kernel. For all other kernel sizes the origin pixel must be specified.

Список параметров

array

A matrix (i.e. 2d array) of values that define the kernel. Each element should be either a float value, or FALSE if that element shouldn't be used by the kernel.

array

Which element of the kernel should be used as the origin pixel. e.g. For a 3x3 matrix specifying the origin as [2, 2] would specify that the bottom right element should be the origin pixel.

Возвращаемые значения

The generated ImagickKernel.

Примеры

Пример #1 ImagickKernel::fromMatrix()

<?php

function renderKernel(ImagickKernel $imagickKernel) {
    $matrix = $imagickKernel->getMatrix();

    $imageMargin = 20;

    $tileSize = 20;
    $tileSpace = 4;
    $shadowSigma = 4;
    $shadowDropX = 20;
    $shadowDropY = 0;

    $radius = ($tileSize / 2) * 0.9;

    $rows = count($matrix);
    $columns = count($matrix[0]);

    $imagickDraw = new \ImagickDraw();

    $imagickDraw->setFillColor('#afafaf');
    $imagickDraw->setStrokeColor('none');

    $imagickDraw->translate($imageMargin, $imageMargin);
    $imagickDraw->push();

    ksort($matrix);

    foreach ($matrix as $row) {
        ksort($row);
        $imagickDraw->push();
        foreach ($row as $cell) {
            if ($cell !== false) {
                $color = intval(255 * $cell);
                $colorString = sprintf("rgb(%f, %f, %f)", $color, $color, $color);
                $imagickDraw->setFillColor($colorString);
                $imagickDraw->rectangle(0, 0, $tileSize, $tileSize);
            }
            $imagickDraw->translate(($tileSize + $tileSpace), 0);
        }
        $imagickDraw->pop();
        $imagickDraw->translate(0, ($tileSize + $tileSpace));
    }

    $imagickDraw->pop();

    $width = ($columns * $tileSize) + (($columns - 1) * $tileSpace);
    $height = ($rows * $tileSize) + (($rows - 1) * $tileSpace);

    $imagickDraw->push();
    $imagickDraw->translate($width/2 , $height/2);
    $imagickDraw->setFillColor('rgba(0, 0, 0, 0)');
    $imagickDraw->setStrokeColor('white');
    $imagickDraw->circle(0, 0, $radius - 1, 0);
    $imagickDraw->setStrokeColor('black');
    $imagickDraw->circle(0, 0, $radius, 0);
    $imagickDraw->pop();

    $canvasWidth = $width + (2 * $imageMargin);
    $canvasHeight = $height + (2 * $imageMargin);

    $kernel = new \Imagick();
    $kernel->newPseudoImage(
        $canvasWidth,
        $canvasHeight,
        'canvas:none'
    );

    $kernel->setImageFormat('png');
    $kernel->drawImage($imagickDraw);

    /* create drop shadow on it's own layer */
    $canvas = $kernel->clone();
    $canvas->setImageBackgroundColor(new \ImagickPixel('rgb(0, 0, 0)'));
    $canvas->shadowImage(100, $shadowSigma, $shadowDropX, $shadowDropY);

    $canvas->setImagePage($canvasWidth, $canvasHeight, -5, -5);
    $canvas->cropImage($canvasWidth, $canvasHeight, 0, 0);

    /* composite original text_layer onto shadow_layer */
    $canvas->compositeImage($kernel, \Imagick::COMPOSITE_OVER, 0, 0);
    $canvas->setImageFormat('png');

    return $canvas;
}

function createFromMatrix() {
    $matrix = [
        [0.5, 0, 0.2],
        [0, 1, 0],
        [0.9, 0, false],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);

    return $kernel;
}

function fromMatrix() {
    $kernel = createFromMatrix();
    $imagick = renderKernel($kernel);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Description

  • « ImagickKernel::fromMatrix
  • ImagickKernel::scale »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::getMatrix

(PECL imagick >= 3.3.0)

ImagickKernel::getMatrix — Description

Описание

public ImagickKernel::getMatrix ( void ) : array

Get the 2d matrix of values used in this kernel. The elements are either float for elements that are used or 'false' if the element should be skipped.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A matrix (2d array) of the values that represent the kernel.

Примеры

Пример #1 ImagickKernel::getMatrix()

<?php

function renderKernelTable($matrix) {
    $output = "<table class='infoTable'>";

    foreach ($matrix as $row) {
        $output .= "<tr>";
        foreach ($row as $cell) {
            $output .= "<td style='text-align:left'>";
            if ($cell === false) {
                $output .= "false";
            }
            else {
                $output .= round($cell, 3);
            }
            $output .= "</td>";
        }
        $output .= "</tr>";
    }

    $output .= "</table>";

    return $output;
}

    $output = "The built-in kernel name 'ring' with parameters of '2,3.5':<br/>";
    $kernel = \ImagickKernel::fromBuiltIn(
        \Imagick::KERNEL_RING,
        "2,3.5"
    );
    $matrix = $kernel->getMatrix();
    $output .= renderKernelTable($matrix);

    echo $output;

?>


Description

  • « ImagickKernel::getMatrix
  • ImagickKernel::separate »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::scale

(PECL imagick >= 3.3.0)

ImagickKernel::scale — Description

Описание

public ImagickKernel::scale ( float $scale [, int $normalizeFlag ] ) : void

ScaleKernelInfo() scales the given kernel list by the given amount, with or without normalization of the sum of the kernel values (as per given flags). The exact behaviour of this function depends on the normalization type being used please see http://www.imagemagick.org/api/morphology.php#ScaleKernelInfo for details. Flag should be one of Imagick::NORMALIZE_KERNEL_VALUE, Imagick::NORMALIZE_KERNEL_CORRELATE, Imagick::NORMALIZE_KERNEL_PERCENT or not set.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 ImagickKernel::scale()

<?php

    function renderKernelTable($matrix) {
        $output = "<table class='infoTable'>";

        foreach ($matrix as $row) {
            $output .= "<tr>";
            foreach ($row as $cell) {
                $output .= "<td style='text-align:left'>";
                if ($cell === false) {
                    $output .= "false";
                }
                else {
                    $output .= round($cell, 3);
                }
                $output .= "</td>";
            }
            $output .= "</tr>";
        }

        $output .= "</table>";

        return $output;
    }

    $output = "";

    $matrix = [
        [-1, 0, -1],
        [ 0, 4,  0],
        [-1, 0, -1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);
    $kernelClone = clone $kernel;

    $output .= "Start kernel<br/>";
    $output .= renderKernelTable($kernel->getMatrix());

    $output .= "Scaling with NORMALIZE_KERNEL_VALUE. The  <br/>";
    $kernel->scale(2, \Imagick::NORMALIZE_KERNEL_VALUE);
    $output .= renderKernelTable($kernel->getMatrix());

    $kernel = clone $kernelClone;
    $output .= "Scaling by percent<br/>";
    $kernel->scale(2, \Imagick::NORMALIZE_KERNEL_PERCENT);
    $output .= renderKernelTable($kernel->getMatrix());

    $matrix2 = [
        [-1, -1, 1],
        [ -1, false,  1],
        [1, 1, 1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix2);
    $output .= "Scaling by correlate<br/>";
    $kernel->scale(1, \Imagick::NORMALIZE_KERNEL_CORRELATE);
    $output .= renderKernelTable($kernel->getMatrix());

    return $output;
?>


Description

  • « ImagickKernel::scale
  • Расширения для работы с почтой »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::separate

(PECL imagick >= 3.3.0)

ImagickKernel::separate — Description

Описание

public ImagickKernel::separate ( void ) : array

Separates a linked set of kernels and returns an array of ImagickKernels.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 ImagickKernel::separate()

<?php

    function renderKernelTable($matrix) {

        $output = "<table class='infoTable'>";
        foreach ($matrix as $row) {
            $output .= "<tr>";
            foreach ($row as $cell) {
                $output .= "<td style='text-align:left'>";
                if ($cell === false) {
                    $output .= "false";
                }
                else {
                    $output .= round($cell, 3);
                }
                $output .= "</td>";
            }
            $output .= "</tr>";
        }

        $output .= "</table>";

        return $output;
    }

    $matrix = [
        [-1, 0, -1],
        [ 0, 4,  0],
        [-1, 0, -1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);
    $kernel->scale(4, \Imagick::NORMALIZE_KERNEL_VALUE);
    $diamondKernel = \ImagickKernel::fromBuiltIn(
        \Imagick::KERNEL_DIAMOND,
        "2"
    );

    $kernel->addKernel($diamondKernel);

    $kernelList = $kernel->separate();

    $output = '';
    $count = 0;
    foreach ($kernelList as $kernel) {
        $output .= "<br/>Kernel $count<br/>";
        $output .= renderKernelTable($kernel->getMatrix());
        $count++;
    }

    return $output;

?>


Расширения для работы с почтой

  • Cyrus — Администрирование Cyrus IMAP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Cyrus Функции
  • IMAP — IMAP, POP3 и NNTP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции IMAP
  • Mail
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Почта
  • Mailparse
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Mailparse
  • vpopmail
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции vpopmail


Администрирование Cyrus IMAP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Cyrus Функции
    • cyrus_authenticate — Аутентификация на сервере Cyrus IMAP
    • cyrus_bind — Привязать callback-функции для Cyrus IMAP соединения
    • cyrus_close — Закрывает соединение с сервером Cyrus IMAP
    • cyrus_connect — Установить соединение с сервером Cyrus IMAP
    • cyrus_query — Послать запрос Cyrus IMAP серверу
    • cyrus_unbind — Убрать привязки callback-функций для Cyrus IMAP соединения


Введение

Замечание: Для Windows-платформ это расширение недоступно.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.0.0.


Установка

Чтобы включить поддержку Cyrus IMAP и использовать эти функции, вы должны скомпилировать PHP с опцией --with-cyrus .

Внимание

Расширение IMAP не может использоваться вместе с расширениями перекодировки, YAZ или Cyrus. Это связано с тем фактом, что они оба используют одни и те же внутренние символы. Замечание: Версии Yaz 2.0 и выше избавлены от этого недостатка.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Модуль определяет идентификатор соединения Cyrus IMAP, возвращаемый функцией cyrus_connect().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

CYRUS_CONN_NONSYNCLITERAL (integer)
CYRUS_CONN_INITIALRESPONSE (integer)
CYRUS_CALLBACK_NUMBERED (integer)
CYRUS_CALLBACK_NOLITERAL (integer)


Cyrus Функции

Содержание

  • cyrus_authenticate — Аутентификация на сервере Cyrus IMAP
  • cyrus_bind — Привязать callback-функции для Cyrus IMAP соединения
  • cyrus_close — Закрывает соединение с сервером Cyrus IMAP
  • cyrus_connect — Установить соединение с сервером Cyrus IMAP
  • cyrus_query — Послать запрос Cyrus IMAP серверу
  • cyrus_unbind — Убрать привязки callback-функций для Cyrus IMAP соединения


Аутентификация на сервере Cyrus IMAP

  • « Cyrus Функции
  • cyrus_bind »
  • PHP Manual
  • Cyrus Функции
  • Аутентификация на сервере Cyrus IMAP

cyrus_authenticate

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_authenticate — Аутентификация на сервере Cyrus IMAP

Описание

cyrus_authenticate ( resource $connection [, string $mechlist [, string $service [, string $user [, int $minssf [, int $maxssf [, string $authname [, string $password ]]]]]]] ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Привязать callback-функции для Cyrus IMAP соединения

  • « cyrus_authenticate
  • cyrus_close »
  • PHP Manual
  • Cyrus Функции
  • Привязать callback-функции для Cyrus IMAP соединения

cyrus_bind

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_bind — Привязать callback-функции для Cyrus IMAP соединения

Описание

cyrus_bind ( resource $connection , array $callbacks ) : bool

Привязывает callback-функции для Cyrus IMAP соединения.

Список параметров

connection

Дескриптор соединения.

callbacks

Массив callback-функций.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Закрывает соединение с сервером Cyrus IMAP

  • « cyrus_bind
  • cyrus_connect »
  • PHP Manual
  • Cyrus Функции
  • Закрывает соединение с сервером Cyrus IMAP

cyrus_close

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_close — Закрывает соединение с сервером Cyrus IMAP

Описание

cyrus_close ( resource $connection ) : bool

Закрывает соединение с сервером Cyrus IMAP.

Список параметров

connection

Дескриптор соединения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установить соединение с сервером Cyrus IMAP

  • « cyrus_close
  • cyrus_query »
  • PHP Manual
  • Cyrus Функции
  • Установить соединение с сервером Cyrus IMAP

cyrus_connect

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_connect — Установить соединение с сервером Cyrus IMAP

Описание

cyrus_connect ([ string $host [, string $port [, int $flags ]]] ) : resource

Устанавливает соединение с сервером Cyrus IMAP.

Список параметров

host

Имя хоста Cyrus IMAP сервера.

port

Номер порта.

flags

Возвращаемые значения

Возвращает дескриптор соединения в случае успешного выполнения или FALSE в случае возникновения ошибки.


Послать запрос Cyrus IMAP серверу

  • « cyrus_connect
  • cyrus_unbind »
  • PHP Manual
  • Cyrus Функции
  • Послать запрос Cyrus IMAP серверу

cyrus_query

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_query — Послать запрос Cyrus IMAP серверу

Описание

cyrus_query ( resource $connection , string $query ) : array

Посылает запрос Cyrus IMAP серверу.

Список параметров

connection

Дескриптор соединения.

query

Строка запроса.

Возвращаемые значения

Возвращает ассоциативный массив со следующими ключами: text, msgno и keyword.


Убрать привязки callback-функций для Cyrus IMAP соединения

  • « cyrus_query
  • IMAP »
  • PHP Manual
  • Cyrus Функции
  • Убрать привязки callback-функций для Cyrus IMAP соединения

cyrus_unbind

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_unbind — Убрать привязки callback-функций для Cyrus IMAP соединения

Описание

cyrus_unbind ( resource $connection , string $trigger_name ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

connection

Дескриптор соединения.

trigger_name

Имя триггера.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


IMAP, POP3 и NNTP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции IMAP
    • imap_8bit — Конвертирует 8-битную строку в строку в формате quoted-printable
    • imap_alerts — Возвращает все произошедшие предупредительные сообщения IMAP
    • imap_append — Добавляет строковое сообщение в указанный почтовый ящик
    • imap_base64 — Декодировать текст закодированный BASE64
    • imap_binary — Конвертирует 8-битную строку в строку base64
    • imap_body — Прочитать тело сообщения
    • imap_bodystruct — Прочитать структуру указанной секции тела заданного сообщения
    • imap_check — Проверить текущий почтовый ящик
    • imap_clearflag_full — Снять с сообщения установленные флаги
    • imap_close — Закрыть поток IMAP
    • imap_create — Псевдоним imap_createmailbox
    • imap_createmailbox — Создать новый почтовый ящик
    • imap_delete — Пометить сообщение для удаления
    • imap_deletemailbox — Удалить почтовый ящик
    • imap_errors — Получить все произошедшие ошибки IMAP
    • imap_expunge — Удалить все помеченные для удаления сообщения
    • imap_fetch_overview — Обзор информации, содержащейся в заголовках сообщений
    • imap_fetchbody — Извлечь конкретную секцию тела сообщения
    • imap_fetchheader — Получить заголовок сообщения
    • imap_fetchmime — Извлечь MIME-заголовки для конкретной секции сообщения
    • imap_fetchstructure — Прочитать структуру указанного сообщения
    • imap_fetchtext — Псевдоним imap_body
    • imap_gc — Очистить кеш IMAP
    • imap_get_quota — Получить настройку уровня квоты и статистику использования почтовых ящиков
    • imap_get_quotaroot — Получить настройки квоты для каждого пользователя
    • imap_getacl — Получить ACL для заданного почтового ящика
    • imap_getmailboxes — Прочитать список почтовых ящиков, возвращая подробную информацию по каждому из них
    • imap_getsubscribed — Список всех почтовых ящиков, на которые вы подписаны
    • imap_header — Псевдоним imap_headerinfo
    • imap_headerinfo — Прочитать заголовок сообщения
    • imap_headers — Получить заголовки всех сообщений в почтовом ящике
    • imap_last_error — Получить последнюю ошибку IMAP в текущем запросе
    • imap_list — Прочитать список почтовых ящиков
    • imap_listmailbox — Псевдоним imap_list
    • imap_listscan — Получить список почтовых ящиков, имена которых содержат заданную строку
    • imap_listsubscribed — Псевдоним imap_lsub
    • imap_lsub — Список всех подписанных почтовых ящиков
    • imap_mail_compose — Создать MIME-сообщение на основе заданных обертки и тела
    • imap_mail_copy — Скопировать сообщения в указанный почтовый ящик
    • imap_mail_move — Переместить указанные сообщения в указанный почтовый ящик
    • imap_mail — Отправить email
    • imap_mailboxmsginfo — Получить информацию о текущем почтовом ящике
    • imap_mime_header_decode — Декодировать элементы заголовка
    • imap_msgno — Получить номер сообщения с заданным UID
    • imap_mutf7_to_utf8 — Декодировать измененную строку UTF-7 в UTF-8
    • imap_num_msg — Получить количество сообщений в текущем почтовом ящике
    • imap_num_recent — Получить количество новых сообщений в текущем почтовом ящике
    • imap_open — Открывает поток IMAP к почтовому ящику
    • imap_ping — Проверить, активен ли еще поток IMAP
    • imap_qprint — Преобразовать строку из формата "quoted-printable" в 8-битную строку
    • imap_rename — Псевдоним imap_renamemailbox
    • imap_renamemailbox — Переименовать почтовый ящик
    • imap_reopen — Переоткрывает поток IMAP к новому ящику
    • imap_rfc822_parse_adrlist — Разбор адресной строки
    • imap_rfc822_parse_headers — Разбор строки заголовка письма
    • imap_rfc822_write_address — Получить корректно сформированный e-mail адрес, заданный именем ящика, хоста и персональной информацией
    • imap_savebody — Сохранить часть тела сообщения в файл
    • imap_scan — Псевдоним imap_listscan
    • imap_scanmailbox — Псевдоним imap_listscan
    • imap_search — Получить сообщения, удовлетворяющие заданным критериям
    • imap_set_quota — Установить квоту для заданного почтового ящика
    • imap_setacl — Установка ACL для заданного почтового ящика
    • imap_setflag_full — Установить флаги на сообщения
    • imap_sort — Получить и отсортировать сообщения
    • imap_status — Получить информацию по статусу почтового ящика
    • imap_subscribe — Подписаться на почтовый ящик
    • imap_thread — Получить дерево связанных сообщений
    • imap_timeout — Установить или получить тайм-аут imap
    • imap_uid — Получить UID по номеру сообщения
    • imap_undelete — Снимает с сообщения метку удаления
    • imap_unsubscribe — Отписаться от почтового ящика
    • imap_utf7_decode — Декодирует строку из модифицированной кодировки UTF-7
    • imap_utf7_encode — Преобразует строку ISO-8859-1 в модифицированную UTF-7
    • imap_utf8_to_mutf7 — Кодировать строку UTF-8 в измененную UTF-7
    • imap_utf8 — Преобразует MIME-кодированный текст в UTF-8


Введение

Эти функции позволяют работать с протоколом IMAP, а также NNTP, POP3 и локальными методами доступа к почтовому ящику.

Однако следует иметь в виду, что некоторые функции IMAP не будут корректно работать c протоколом POP.


Требования

Это расширение требует установленной библиотеки c-client. Возьмите последнюю версию с » https://www.washington.edu/imap/ и скомпилируйте её.

Важно, чтобы вы не копировали исходные файлы IMAP непосредственно в системные include-директории, поскольку может вызвать конфликт. Вместо этого создайте новую директорию внутри системной include директории, например /usr/local/imap-2000b/ (месторасположение и имя зависит от вашей установленной версии IMAP), и внутри них создайте новые директории с именами lib/ и include/. Для c-client директории из вашей исходной директории IMAP скопируйте все *.h файлы в include/ и все *.c файлы в lib/. После того, как вы скомпилируете IMAP, будет создан файл с именем c-client.a. Затем переименуйте этот файл в libc-client.a и скопируйте его в lib/.

Замечание:

Для сборки библиотеки c-client с поддержкой SSL и/или Kerberos прочитайте документацию, поставляемую с пакетом.

Замечание: В Mandrake Linux, библиотека IMAP (libc-client.a) компилируется без поддержки Kerberos. Версия с поддержкой SSL (client-PHP4.a) устанавливается отдельно. Чтобы добавить поддержку Kerberos, перекомпилируйте библиотеку.


Установка

Чтобы включить поддержку IMAP в сборку PHP, добавьте в конфигурацию опцию --with-imap[=DIR] , где DIR это папка установки c-client. Для нашего вышеуказанного примера вы должны использовать --with-imap=/usr/local/imap-2000b . Этот путь зависит от того, где вы создали эту директорию в соответствии с описанием выше. Windows пользователи могут подключить php_imap.dll DLL в php.ini.

IMAP не поддерживается в системах ранее Windows 2000. Потому что используется функции шифрования, чтобы позволить SSL соединения к mail серверу.

Замечание: В зависимости от того как настроен ваш c-client, вам может понадобиться добавить --with-imap-ssl=/path/to/openssl/ и/или --with-kerberos=/path/to/kerberos ключ при конфигурировании PHP.

Внимание

Расширение IMAP не может использоваться вместе с расширениями перекодировки, YAZ или Cyrus. Это связано с тем фактом, что они оба используют одни и те же внутренние символы. Замечание: Версии Yaz 2.0 и выше избавлены от этого недостатка.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки IMAP
Имя | По умолчанию | Место изменения | Список изменений
imap.enable_insecure_rsh | "0" | PHP_INI_SYSTEM | Доступно с PHP 7.1.25, 7.2.13 и 7.3.0. Раньше был неявно включен.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

imap.enable_insecure_rsh boolean

Установление соединения с сервером может запустить команду rsh или ssh, если эта опция не отключена в php.ini.

Внимание

Ни PHP ни библиотека IMAP не фильтруют имена почтовых ящиков при передачи их командам rsh или ssh. Таким образом, передача непроверенных данных в эту функцию, без отключения этой опции в php.ini небезопасна.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Ресурс imap, возвращаемый функцией imap_open(), ссылается на открытый поток IMAP.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

NIL (integer)
OP_DEBUG (integer)
OP_READONLY (integer)
Открыть почтовый ящик только для чтения
OP_ANONYMOUS (integer)
Не используйте обновления .newsrc для новостей (только для NNTP)
OP_SHORTCACHE (integer)
OP_SILENT (integer)
OP_PROTOTYPE (integer)
OP_HALFOPEN (integer)
Для IMAP и NNTP имен, открыть соединение, но не открывать почтовый ящик.
OP_EXPUNGE (integer)
OP_SECURE (integer)
CL_EXPUNGE (integer)
Не выдавая никаких предупреждений стирать сообщения прежде чем закрыть при вызове imap_close()
FT_UID (integer)
Параметром является UID
FT_PEEK (integer)
Не устанавливать флаг \Seen, если до этого он еще не установлен
FT_NOT (integer)
FT_INTERNAL (integer)
Возвращаемая строка во внутреннем формате. Не будет канонизирована к виду CRLF.
FT_PREFETCHTEXT (integer)
ST_UID (integer)
Последовательность аргументов, которая содержит идентификаторы UID вместо последовательности номеров
ST_SILENT (integer)
ST_SET (integer)
CP_UID (integer)
порядковые номера, содержащие идентификаторы UID
CP_MOVE (integer)
Удалить сообщения из текущего почтового ящика после копирования с помощью imap_mail_copy()
SE_UID (integer)
Возвращать идентификаторы UID вместо порядковых номеров
SE_FREE (integer)
SE_NOPREFETCH (integer)
Не выполнять предвыборку найденных сообщений
SO_FREE (integer)
SO_NOSERVER (integer)
SA_MESSAGES (integer)
SA_RECENT (integer)
SA_UNSEEN (integer)
SA_UIDNEXT (integer)
SA_UIDVALIDITY (integer)
SA_ALL (integer)
LATT_NOINFERIORS (integer)
Этот почтовый ящик не имеет "потомков". (Почтовые ящики за этим отсутствуют)
LATT_NOSELECT (integer)
Это только контейнер, а не почтовый ящик. Вы не можете открыть его.
LATT_MARKED (integer)
Этот почтовый ящик помечен. Используется только UW-IMAPD.
LATT_UNMARKED (integer)
Этот почтовый ящик не помечен. Используется только с UW-IMAPD.
LATT_REFERRAL (integer)
Этот контейнер имеет направления (referral) на удаленный почтовый ящик.
LATT_HASCHILDREN (integer)
Этот почтовый ящик имеет выбираемые подчиненные (inferiors).
LATT_HASNOCHILDREN (integer)
Этот почтовый ящик не имеет выбираемые подчиненные (inferiors).
SORTDATE (integer)
Критерий сортировки для imap_sort(): дата написания
SORTARRIVAL (integer)
Критерий сортировки для imap_sort(): дата доставки
SORTFROM (integer)
Критерий сортировки для imap_sort(): почтовый ящик первый в поле "от кого" (поле from)
SORTSUBJECT (integer)
Критерий сортировки для imap_sort(): тема письма
SORTTO (integer)
Критерий сортировки для imap_sort(): почтовый ящик первый в поле "кому" (поле to)
SORTCC (integer)
Критерий сортировки для imap_sort(): почтовый ящик первый в поле "копия" (поле cc)
SORTSIZE (integer)
Критерий сортировки для imap_sort(): размер сообщения в байтах
TYPETEXT (integer)
Первичный тип тела сообщения: неформатированный текст
TYPEMULTIPART (integer)
Первичный тип тела сообщения: несколько частей
TYPEMESSAGE (integer)
Первичный тип тела сообщения: инкапсулированное сообщение
TYPEAPPLICATION (integer)
Первичный тип тела сообщения: данные приложения
TYPEAUDIO (integer)
Первичный тип тела сообщения: аудио
TYPEIMAGE (integer)
Первичный тип тела сообщения: статическое изображение
TYPEVIDEO (integer)
Первичный тип тела сообщения: видео
TYPEMODEL (integer)
Первичный тип тела сообщения: модель
TYPEOTHER (integer)
Первичный тип тела сообщения: неизвестно
ENC7BIT (integer)
Кодировка тела сообщения: 7-битные данные в семантике SMTP
ENC8BIT (integer)
Кодировка тела сообщения: 8-битные данные в семантике SMTP
ENCBINARY (integer)
Кодировка тела сообщения: 7-битные двоичные данные
ENCBASE64 (integer)
Кодировка тела сообщения: данные закодированные в base-64
ENCQUOTEDPRINTABLE (integer)
Кодировка тела сообщения: человеко-читаемые 7-как-8 битные данные
ENCOTHER (integer)
Кодировка тела сообщения: неизвестно
IMAP_OPENTIMEOUT (integer)
IMAP_READTIMEOUT (integer)
IMAP_WRITETIMEOUT (integer)
IMAP_CLOSETIMEOUT (integer)
IMAP_GC_ELT (integer)
Сборщик мусора, очищает элементы кеша сообщений.
IMAP_GC_ENV (integer)
Сборщик мусора, очищает обертку и тело сообщения.
IMAP_GC_TEXTS (integer)
Сборщик мусора, очищает текст.


Функции IMAP

Смотрите также

Данный документ не может вдаваться в детали всех вопросов, затронутых представленными функциями. Дополнительная информация представлена в документации клиентской библиотеки (docs/internal.txt) и в следующих документах RFC:

  • » 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).
Детальное описание также доступно в книгах » Programming Internet Email Дэвида Вуда (David Wood) и » Managing IMAP авторов Дианы Маллет (Dianna Mullet) и Кевина Маллет (Kevin Mullet).

Содержание

  • imap_8bit — Конвертирует 8-битную строку в строку в формате quoted-printable
  • imap_alerts — Возвращает все произошедшие предупредительные сообщения IMAP
  • imap_append — Добавляет строковое сообщение в указанный почтовый ящик
  • imap_base64 — Декодировать текст закодированный BASE64
  • imap_binary — Конвертирует 8-битную строку в строку base64
  • imap_body — Прочитать тело сообщения
  • imap_bodystruct — Прочитать структуру указанной секции тела заданного сообщения
  • imap_check — Проверить текущий почтовый ящик
  • imap_clearflag_full — Снять с сообщения установленные флаги
  • imap_close — Закрыть поток IMAP
  • imap_create — Псевдоним imap_createmailbox
  • imap_createmailbox — Создать новый почтовый ящик
  • imap_delete — Пометить сообщение для удаления
  • imap_deletemailbox — Удалить почтовый ящик
  • imap_errors — Получить все произошедшие ошибки IMAP
  • imap_expunge — Удалить все помеченные для удаления сообщения
  • imap_fetch_overview — Обзор информации, содержащейся в заголовках сообщений
  • imap_fetchbody — Извлечь конкретную секцию тела сообщения
  • imap_fetchheader — Получить заголовок сообщения
  • imap_fetchmime — Извлечь MIME-заголовки для конкретной секции сообщения
  • imap_fetchstructure — Прочитать структуру указанного сообщения
  • imap_fetchtext — Псевдоним imap_body
  • imap_gc — Очистить кеш IMAP
  • imap_get_quota — Получить настройку уровня квоты и статистику использования почтовых ящиков
  • imap_get_quotaroot — Получить настройки квоты для каждого пользователя
  • imap_getacl — Получить ACL для заданного почтового ящика
  • imap_getmailboxes — Прочитать список почтовых ящиков, возвращая подробную информацию по каждому из них
  • imap_getsubscribed — Список всех почтовых ящиков, на которые вы подписаны
  • imap_header — Псевдоним imap_headerinfo
  • imap_headerinfo — Прочитать заголовок сообщения
  • imap_headers — Получить заголовки всех сообщений в почтовом ящике
  • imap_last_error — Получить последнюю ошибку IMAP в текущем запросе
  • imap_list — Прочитать список почтовых ящиков
  • imap_listmailbox — Псевдоним imap_list
  • imap_listscan — Получить список почтовых ящиков, имена которых содержат заданную строку
  • imap_listsubscribed — Псевдоним imap_lsub
  • imap_lsub — Список всех подписанных почтовых ящиков
  • imap_mail_compose — Создать MIME-сообщение на основе заданных обертки и тела
  • imap_mail_copy — Скопировать сообщения в указанный почтовый ящик
  • imap_mail_move — Переместить указанные сообщения в указанный почтовый ящик
  • imap_mail — Отправить email
  • imap_mailboxmsginfo — Получить информацию о текущем почтовом ящике
  • imap_mime_header_decode — Декодировать элементы заголовка
  • imap_msgno — Получить номер сообщения с заданным UID
  • imap_mutf7_to_utf8 — Декодировать измененную строку UTF-7 в UTF-8
  • imap_num_msg — Получить количество сообщений в текущем почтовом ящике
  • imap_num_recent — Получить количество новых сообщений в текущем почтовом ящике
  • imap_open — Открывает поток IMAP к почтовому ящику
  • imap_ping — Проверить, активен ли еще поток IMAP
  • imap_qprint — Преобразовать строку из формата "quoted-printable" в 8-битную строку
  • imap_rename — Псевдоним imap_renamemailbox
  • imap_renamemailbox — Переименовать почтовый ящик
  • imap_reopen — Переоткрывает поток IMAP к новому ящику
  • imap_rfc822_parse_adrlist — Разбор адресной строки
  • imap_rfc822_parse_headers — Разбор строки заголовка письма
  • imap_rfc822_write_address — Получить корректно сформированный e-mail адрес, заданный именем ящика, хоста и персональной информацией
  • imap_savebody — Сохранить часть тела сообщения в файл
  • imap_scan — Псевдоним imap_listscan
  • imap_scanmailbox — Псевдоним imap_listscan
  • imap_search — Получить сообщения, удовлетворяющие заданным критериям
  • imap_set_quota — Установить квоту для заданного почтового ящика
  • imap_setacl — Установка ACL для заданного почтового ящика
  • imap_setflag_full — Установить флаги на сообщения
  • imap_sort — Получить и отсортировать сообщения
  • imap_status — Получить информацию по статусу почтового ящика
  • imap_subscribe — Подписаться на почтовый ящик
  • imap_thread — Получить дерево связанных сообщений
  • imap_timeout — Установить или получить тайм-аут imap
  • imap_uid — Получить UID по номеру сообщения
  • imap_undelete — Снимает с сообщения метку удаления
  • imap_unsubscribe — Отписаться от почтового ящика
  • imap_utf7_decode — Декодирует строку из модифицированной кодировки UTF-7
  • imap_utf7_encode — Преобразует строку ISO-8859-1 в модифицированную UTF-7
  • imap_utf8_to_mutf7 — Кодировать строку UTF-8 в измененную UTF-7
  • imap_utf8 — Преобразует MIME-кодированный текст в UTF-8


Конвертирует 8-битную строку в строку в формате quoted-printable

  • « Функции IMAP
  • imap_alerts »
  • PHP Manual
  • Функции IMAP
  • Конвертирует 8-битную строку в строку в формате quoted-printable

imap_8bit

(PHP 4, PHP 5, PHP 7)

imap_8bit — Конвертирует 8-битную строку в строку в формате quoted-printable

Описание

imap_8bit ( string $string ) : string

Конвертирует 8-битную строку в строку, закодированную механизмом quoted-printable (в соответствии с » RFC2045, раздел 6.7).

Список параметров

string

8-битная строка для конвертации

Возвращаемые значения

Возвращает строку формата quoted-printable.

Смотрите также

  • imap_qprint() - Преобразовать строку из формата "quoted-printable" в 8-битную строку


Возвращает все произошедшие предупредительные сообщения IMAP

  • « imap_8bit
  • imap_append »
  • PHP Manual
  • Функции IMAP
  • Возвращает все произошедшие предупредительные сообщения IMAP

imap_alerts

(PHP 4, PHP 5, PHP 7)

imap_alerts — Возвращает все произошедшие предупредительные сообщения IMAP

Описание

imap_alerts ( void ) : array

Возвращает все созданные предупредительные сообщения IMAP с момента последнего вызова imap_alerts(), или при загрузке страницы.

Когда imap_alerts() вызывается, стек предупреждений очищается. Спецификация IMAP требует чтобы эти сообщения были переданы пользователю.

Возвращаемые значения

Возвращает массив всех созданных предупредительных сообщений IMAP или FALSE в случае, если таковых нет.

Смотрите также

  • imap_errors() - Получить все произошедшие ошибки IMAP


Добавляет строковое сообщение в указанный почтовый ящик

  • « imap_alerts
  • imap_base64 »
  • PHP Manual
  • Функции IMAP
  • Добавляет строковое сообщение в указанный почтовый ящик

imap_append

(PHP 4, PHP 5, PHP 7)

imap_append — Добавляет строковое сообщение в указанный почтовый ящик

Описание

imap_append ( resource $imap_stream , string $mailbox , string $message [, string $options = NULL [, string $internal_date = NULL ]] ) : bool

Добавляет строку message в указанный mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

Имя почтового ящика. Смотрите imap_open() для подробной информации.

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

message

Добавляемое сообщение в виде строки

При обращении к серверу Cyrus IMAP следует использовать "\r\n" как завершающий символ строки вместо "\n", иначе операция будет неудачна.

options

Если указан, то параметр options также будет записан в mailbox

internal_date

Если этот параметр указан, он установит INTERNALDATE в добавляемом сообщении. Параметр должен содержать дату, представленную строкой, которая соответствует спецификации rfc2060 для значения date_time.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.2 | Добавлена поддержка INTERNALDATE для imap_append.

Примеры

Пример #1 Пример использования imap_append()

<?php
$stream = imap_open("{imap.example.org}INBOX.Drafts", "username", "password");

$check = imap_check($stream);
echo "Кол-во сообщений до добавления: ". $check->Nmsgs . "\n";

imap_append($stream, "{imap.example.org}INBOX.Drafts"
                   , "From: me@example.com\r\n"
                   . "To: you@example.com\r\n"
                   . "Subject: test\r\n"
                   . "\r\n"
                   . "это проверочное сообщение, пожалуйста, игнорируйте его\r\n"
                   );

$check = imap_check($stream);
echo "Кол-во сообщений после добавления : ". $check->Nmsgs . "\n";

imap_close($stream);
?>


Декодировать текст закодированный BASE64

  • « imap_append
  • imap_binary »
  • PHP Manual
  • Функции IMAP
  • Декодировать текст закодированный BASE64

imap_base64

(PHP 4, PHP 5, PHP 7)

imap_base64 — Декодировать текст закодированный BASE64

Описание

imap_base64 ( string $text ) : string

Декодирует текст text, закодированный BASE64.

Список параметров

text

Закодированный текст

Возвращаемые значения

Возвращает строку с декодированным сообщением.

Смотрите также

  • imap_binary() - Конвертирует 8-битную строку в строку base64
  • base64_encode() - Кодирует данные в формат MIME base64
  • base64_decode() - Декодирует данные, закодированные MIME base64
  • » RFC2045, секция 6.8


Конвертирует 8-битную строку в строку base64

  • « imap_base64
  • imap_body »
  • PHP Manual
  • Функции IMAP
  • Конвертирует 8-битную строку в строку base64

imap_binary

(PHP 4, PHP 5, PHP 7)

imap_binary — Конвертирует 8-битную строку в строку base64

Описание

imap_binary ( string $string ) : string

Конвертирует 8-битную строку в строку base64 в соответствии с » RFC2045, Секция 6.8.

Список параметров

string

8-битная строка

Возвращаемые значения

Возвращает строку, кодированную в base64.

Смотрите также

  • imap_base64() - Декодировать текст закодированный BASE64


Прочитать тело сообщения

  • « imap_binary
  • imap_bodystruct »
  • PHP Manual
  • Функции IMAP
  • Прочитать тело сообщения

imap_body

(PHP 4, PHP 5, PHP 7)

imap_body — Прочитать тело сообщения

Описание

imap_body ( resource $imap_stream , int $msg_number [, int $options = 0 ] ) : string

imap_body() возвращает тело сообщения с номером msg_number в текущем почтовом ящике.

imap_body() вернет точную копию тела сообщения. Для извлечения одной части составного MIME-сообщения используйте imap_fetchstructure() для анализа структуры и imap_fetchbody() для извлечения копии одной из частей тела.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

Номер сообщения

options

Опциональный параметр options, являющийся битовой маской одной или нескольких констант:

  • FT_UID - msg_number является UID
  • FT_PEEK - Не устанавливать флаг Просмотрено (\Seen), если он уже не установлен.
  • FT_INTERNAL - возвращаемая строка будет во внутреннем формате, а не канонизирована к CRLF.

Возвращаемые значения

Возвращает строку с телом указанного сообщения.


Прочитать структуру указанной секции тела заданного сообщения

  • « imap_body
  • imap_check »
  • PHP Manual
  • Функции IMAP
  • Прочитать структуру указанной секции тела заданного сообщения

imap_bodystruct

(PHP 4, PHP 5, PHP 7)

imap_bodystruct — Прочитать структуру указанной секции тела заданного сообщения

Описание

imap_bodystruct ( resource $imap_stream , int $msg_number , string $section ) : object

Читает структуру указанной секции тела заданного сообщения.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

Номер сообщения

section

Секция тела для чтения

Возвращаемые значения

Возвращает информацию в виде объекта. Описание структуры и свойств объекта читайте в разделе, посвященном функции imap_fetchstructure().

Смотрите также

  • imap_fetchstructure() - Прочитать структуру указанного сообщения


Проверить текущий почтовый ящик

  • « imap_bodystruct
  • imap_clearflag_full »
  • PHP Manual
  • Функции IMAP
  • Проверить текущий почтовый ящик

imap_check

(PHP 4, PHP 5, PHP 7)

imap_check — Проверить текущий почтовый ящик

Описание

imap_check ( resource $imap_stream ) : object

Проверяет информацию текущего почтового ящика.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

Возвращаемые значения

Возвращает объект со следующими свойствами:

  • Date - текущее системное время в формате соответствующем » RFC2822
  • Driver - протокол, используемый для доступа к почтовому ящику: POP3, IMAP, NNTP
  • Mailbox - имя почтового ящика
  • Nmsgs - количество сообщений
  • Recent - количество новых сообщений

В случае ошибки возвращает FALSE.

Примеры

Пример #1 Пример использования imap_check()

<?php

$imap_obj = imap_check($imap_stream);
var_dump($imap_obj);

?>

Результатом выполнения данного примера будет что-то подобное:

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_check
  • imap_close »
  • PHP Manual
  • Функции IMAP
  • Снять с сообщения установленные флаги

imap_clearflag_full

(PHP 4, PHP 5, PHP 7)

imap_clearflag_full — Снять с сообщения установленные флаги

Описание

imap_clearflag_full ( resource $imap_stream , string $sequence , string $flag [, int $options = 0 ] ) : bool

Эта функция оповещает хранилище, что необходимо снять заданный флаг flag для указанной последовательности сообщений sequence.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

sequence

Последовательность номеров сообщений. Вы можете перечислить номера через запятую X,Y, или задать диапазон номеров с помощью двоеточия X:Y

flag

Флаги, которые можно удалить: "\\Seen", "\\Answered", "\\Flagged", "\\Deleted" и "\\Draft" (как определено в » RFC2060)

options

options - битовая маска, которая мождет принимать единственное значение:

  • ST_UID - аргумент sequence содержит список UID, а не последовательность номеров

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_setflag_full() - Установить флаги на сообщения


Закрыть поток IMAP

  • « imap_clearflag_full
  • imap_create »
  • PHP Manual
  • Функции IMAP
  • Закрыть поток IMAP

imap_close

(PHP 4, PHP 5, PHP 7)

imap_close — Закрыть поток IMAP

Описание

imap_close ( resource $imap_stream [, int $flag = 0 ] ) : bool

Закрывает поток IMAP.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

flag

Если установлен CL_EXPUNGE, то эта функция молча применит все внесенные изменения, в частности удалит все сообщения помеченные для удаления. По сути сделает то же, что и функция imap_expunge()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_open() - Открывает поток IMAP к почтовому ящику


Псевдоним imap_createmailbox

  • « imap_close
  • imap_createmailbox »
  • PHP Manual
  • Функции IMAP
  • Псевдоним imap_createmailbox

imap_create

(PHP 4, PHP 5, PHP 7)

imap_create — Псевдоним imap_createmailbox()

Описание

Эта функция является псевдонимом: imap_createmailbox().


Создать новый почтовый ящик

  • « imap_create
  • imap_delete »
  • PHP Manual
  • Функции IMAP
  • Создать новый почтовый ящик

imap_createmailbox

(PHP 4, PHP 5, PHP 7)

imap_createmailbox — Создать новый почтовый ящик

Описание

imap_createmailbox ( resource $imap_stream , string $mailbox ) : bool

Создает новый почтовый ящик, указанный в mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

Имя почтового ящика. Более подробно см. imap_open(). Имена почтовых ящиков, содержащие интернациональные символы должны быть закодированы с помощью imap_utf7_encode().

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imap_createmailbox()

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
     or die("не получилось подключиться: " . imap_last_error());

$name1 = "phpnewbox";
$name2 = imap_utf7_encode("phpnewbox"); // phpnewb&w7Y-x

$newname = $name1;

echo "Новым именем будет '$name1'<br />\n";

// теперь создадим новый ящик "phptestbox" в вашем входящем каталоге,
// проверим его статус и удалим, чтобы вернуть ваш каталог к первоначальному
// состоянию

if (@imap_createmailbox($mbox, imap_utf7_encode("{imap.example.org}INBOX.$newname"))) {
    $status = @imap_status($mbox, "{imap.example.org}INBOX.$newname", SA_ALL);
    if ($status) {
        echo "ваш новый почтовый ящик называется '$name1' и имеет следующий статус:<br />\n";
        echo "Сообщений:           " . $status->messages    . "<br />\n";
        echo "Новых:                 " . $status->recent      . "<br />\n";
        echo "Непрочитанных:     " . $status->unseen      . "<br />\n";
        echo "Следующий UID:    " . $status->uidnext     . "<br />\n";
        echo "Корректность UID:" . $status->uidvalidity . "<br />\n";

        if (imap_renamemailbox($mbox, "{imap.example.org}INBOX.$newname", "{imap.example.org}INBOX.$name2")) {
            echo "переименуем новый ящик из '$name1' в '$name2'<br />\n";
            $newname = $name2;
        } else {
            echo "вызов imap_renamemailbox для нового ящика завершился ошибкой: " . imap_last_error() . "<br />\n";
        }
    } else {
        echo "вызов imap_status для нового ящика завершился ошибкой: " . imap_last_error() . "<br />\n";
    }

    if (@imap_deletemailbox($mbox, "{imap.example.org}INBOX.$newname")) {
        echo "новый почтовый ящик удален для восстановления первоначального состояния<br />\n";
    } else {
        echo "вызов imap_deletemailbox на новом почтовом ящике завершился ошибкой: " . implode("<br />\n", imap_errors()) . "<br />\n";
    }

} else {
    echo "невозможно создать новый почтовый ящик: " . implode("<br />\n", imap_errors()) . "<br />\n";
}

imap_close($mbox);
?>

Смотрите также

  • imap_renamemailbox() - Переименовать почтовый ящик
  • imap_deletemailbox() - Удалить почтовый ящик


Пометить сообщение для удаления

  • « imap_createmailbox
  • imap_deletemailbox »
  • PHP Manual
  • Функции IMAP
  • Пометить сообщение для удаления

imap_delete

(PHP 4, PHP 5, PHP 7)

imap_delete — Пометить сообщение для удаления

Описание

imap_delete ( resource $imap_stream , int $msg_number [, int $options = 0 ] ) : bool

Помечает сообщения, перечисленные в msg_number для удаления. Помеченные сообщения будут оставаться в ящике пока не будет вызвана функция imap_expunge(), либо imap_close() с установленным параметром CL_EXPUNGE.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

Номер сообщения

options

Можно задать как FT_UID, тогда функция будет ожидать в параметре msg_number не номер сообщения, а UID.

Возвращаемые значения

Возвращает TRUE.

Примеры

Пример #1 Пример использования imap_delete()

<?php

$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
    or die("Не удалось подключиться: " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);
echo "Сообщения до отметки для удаления: " . $check->Nmsgs . "<br />\n";

imap_delete($mbox, 1);

$check = imap_mailboxmsginfo($mbox);
echo "Сообщения после отметки для удаления: " . $check->Nmsgs . "<br />\n";

imap_expunge($mbox);

$check = imap_mailboxmsginfo($mbox);
echo "Сообщения после удаления: " . $check->Nmsgs . "<br />\n";

imap_close($mbox);
?>

Примечания

Замечание:

Ящики IMAP могут не сохранять флаги между соединениями, следовательно если вы действительно хотите удалить помеченные сообщения, то необходимо вызывать imap_expunge() в том же соединении, в котором флаги устанавливались.

Смотрите также

  • imap_undelete() - Снимает с сообщения метку удаления
  • imap_expunge() - Удалить все помеченные для удаления сообщения
  • imap_close() - Закрыть поток IMAP


Удалить почтовый ящик

  • « imap_delete
  • imap_errors »
  • PHP Manual
  • Функции IMAP
  • Удалить почтовый ящик

imap_deletemailbox

(PHP 4, PHP 5, PHP 7)

imap_deletemailbox — Удалить почтовый ящик

Описание

imap_deletemailbox ( resource $imap_stream , string $mailbox ) : bool

Удаляет почтовый ящик mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

Имя ящика. Более подробно читайте в описании imap_open()

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_createmailbox() - Создать новый почтовый ящик
  • imap_renamemailbox() - Переименовать почтовый ящик
  • imap_open() - Открывает поток IMAP к почтовому ящику для формата mbox


Получить все произошедшие ошибки IMAP

  • « imap_deletemailbox
  • imap_expunge »
  • PHP Manual
  • Функции IMAP
  • Получить все произошедшие ошибки IMAP

imap_errors

(PHP 4, PHP 5, PHP 7)

imap_errors — Получить все произошедшие ошибки IMAP

Описание

imap_errors ( void ) : array

Возвращает все ошибки IMAP (если они есть), произошедшие с момента запроса текущей страницы или с момента последнего сброса стека ошибок.

Когда вызывается функция imap_errors(), стек ошибок очищается.

Возвращаемые значения

Эта функция возвращает массив всех ошибок IMAP, возникших с момента последнего запуска imap_errors() или с начала страницы. Если таковых нет, возвращает FALSE.

Смотрите также

  • imap_last_error() - Получить последнюю ошибку IMAP в текущем запросе
  • imap_alerts() - Возвращает все произошедшие предупредительные сообщения IMAP


Удалить все помеченные для удаления сообщения

  • « imap_errors
  • imap_fetch_overview »
  • PHP Manual
  • Функции IMAP
  • Удалить все помеченные для удаления сообщения

imap_expunge

(PHP 4, PHP 5, PHP 7)

imap_expunge — Удалить все помеченные для удаления сообщения

Описание

imap_expunge ( resource $imap_stream ) : bool

Удаляет все помеченные для удаления сообщения. Пометить для удаления можно
с помощью функций imap_delete(),
imap_mail_move() или
imap_setflag_full().

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

Возвращаемые значения

Возвращает TRUE.


Обзор информации, содержащейся в заголовках сообщений

  • « imap_expunge
  • imap_fetchbody »
  • PHP Manual
  • Функции IMAP
  • Обзор информации, содержащейся в заголовках сообщений

imap_fetch_overview

(PHP 4, PHP 5, PHP 7)

imap_fetch_overview — Обзор информации, содержащейся в заголовках сообщений

Описание

imap_fetch_overview ( resource $imap_stream , string $sequence [, int $options = 0 ] ) : array

Эта функция читает заголовки сообщений, заданных в sequence и возвращает обзорную информацию об их контенте.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

sequence

Последовательность номеров сообщений.Вы можете перечислить несколько сообщений, используя как разделитель запятую (X,Y), или задать интервал сообщений с помощью двоеточия X:Y

options

Параметр sequence должен содержать номера сообщений. Если вы хотите задать в нем их UID, то этот параметр необходимо задать значением FT_UID.

Возвращаемые значения

Возвращает массив объектов, каждый из которых описывает заголовок одного сообщения. Объекты содержат соответствующие свойства только если они присутствуют. Возможные свойства:

  • subject - тема письма
  • from - кто его послал
  • to - получатель
  • date - когда оно было послано
  • message_id - Идентификатор сообщения
  • references - является ссылкой на этот идентификатор сообщения
  • in_reply_to - является ответом на письмо с этим идентификатором
  • size - размер в байтах
  • uid - UID сообщения в ящике
  • msgno - номер сообщения в ящике
  • recent - письмо помечено как новое
  • flagged - это сообщение помечено (обычно является признаком "важности")
  • answered - сообщение помечано как отвеченное
  • deleted - помечено для удаления
  • seen - помечено как прочитанное
  • draft - помечено как черновик
  • udate - временная метка UNIX даты получения

Список изменений

Версия | Описание
5.3.3 | Добавлено свойство udate.

Примеры

Пример #1 Пример использования imap_fetch_overview()

<?php
$mbox = imap_open("{imap.example.org:143}INBOX", "username", "password")
     or die("не удалось подключиться: " . imap_last_error());

$MC = imap_check($mbox);

// Получим обзор всех писем в INBOX
$result = imap_fetch_overview($mbox,"1:{$MC->Nmsgs}",0);
foreach ($result as $overview) {
    echo "#{$overview->msgno} ({$overview->date}) - From: {$overview->from}
    {$overview->subject}\n";
}
imap_close($mbox);
?>

Смотрите также

  • imap_fetchheader() - Получить заголовок сообщения


Извлечь конкретную секцию тела сообщения

  • « imap_fetch_overview
  • imap_fetchheader »
  • PHP Manual
  • Функции IMAP
  • Извлечь конкретную секцию тела сообщения

imap_fetchbody

(PHP 4, PHP 5, PHP 7)

imap_fetchbody — Извлечь конкретную секцию тела сообщения

Описание

imap_fetchbody ( resource $imap_stream , int $msg_number , string $section [, int $options = 0 ] ) : string

Извлекает конкретную секцию тела сообщения. Секции сообщения в этой функции не декодируются.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

Номер сообщения

section

Номер секции сообщения. Строка целых чисел, разделенных точками, определяющая часть тела сообщения в соответствии со спецификацией IMAP4

options

Битовая маска из одной или нескольких опций:

  • FT_UID - параметр msg_number является UID
  • FT_PEEK - Не устанавливать флаг \Seen, если он уже не установлен
  • FT_INTERNAL - возвращать строку во внутреннем формате, без преобразования концов строк к CRLF.

Возвращаемые значения

Возвращает конкретную секцию тела сообщения в виде строки.

Смотрите также

  • imap_savebody() - Сохранить часть тела сообщения в файл
  • imap_fetchstructure() - Прочитать структуру указанного сообщения


Получить заголовок сообщения

  • « imap_fetchbody
  • imap_fetchmime »
  • PHP Manual
  • Функции IMAP
  • Получить заголовок сообщения

imap_fetchheader

(PHP 4, PHP 5, PHP 7)

imap_fetchheader — Получить заголовок сообщения

Описание

imap_fetchheader ( resource $imap_stream , int $msg_number [, int $options = 0 ] ) : string

Эта функция извлекает полный, нефильтрованный заголовок в формате » RFC2822 для заданного сообщения.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

Номер сообщения

options

Допустимые значения options:

  • FT_UID - параметр msgno является UID
  • FT_INTERNAL - возвращать строку во внутреннем формате, без преобразования концов строк к CRLF.
  • FT_PREFETCHTEXT - одновременно должен быть подгружен RFC822.TEXT. Это позволяет избежать лишнего RTT при соединении IMAP, если выбран полный текст сообщения (например при операции "сохранить в файл")

Возвращаемые значения

Возвращает заголовок сообщения в виде строки.

Смотрите также

  • imap_fetch_overview() - Обзор информации, содержащейся в заголовках сообщений


Извлечь MIME-заголовки для конкретной секции сообщения

  • « imap_fetchheader
  • imap_fetchstructure »
  • PHP Manual
  • Функции IMAP
  • Извлечь MIME-заголовки для конкретной секции сообщения

imap_fetchmime

(PHP 5 >= 5.3.6, PHP 7)

imap_fetchmime — Извлечь MIME-заголовки для конкретной секции сообщения

Описание

imap_fetchmime ( resource $imap_stream , int $msg_number , string $section [, int $options = 0 ] ) : string

Извлекает MIME-заголовки для конкретной секции сообщения.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

Номер сообщения

section

Номер секции сообщения. Строка целых чисел, разделенных точками, определяющая часть тела сообщения в соответствии со спецификацией IMAP4

options

Битовая маска из одной или нескольких опций:

  • FT_UID - параметр msg_number является UID
  • FT_PEEK - Не устанавливать флаг \Seen, если он уже не установлен
  • FT_INTERNAL - возвращать строку во внутреннем формате, без преобразования концов строк к CRLF.

Возвращаемые значения

Возвращает MIME-заголовки для конкретной секции сообщения в виде строки.

Смотрите также

  • imap_fetchbody() - Извлечь конкретную секцию тела сообщения
  • imap_fetchstructure() - Прочитать структуру указанного сообщения
  • imap_fetchheader() - Получить заголовок сообщения


Прочитать структуру указанного сообщения

  • « imap_fetchmime
  • imap_fetchtext »
  • PHP Manual
  • Функции IMAP
  • Прочитать структуру указанного сообщения

imap_fetchstructure

(PHP 4, PHP 5, PHP 7)

imap_fetchstructure — Прочитать структуру указанного сообщения

Описание

imap_fetchstructure ( resource $imap_stream , int $msg_number [, int $options = 0 ] ) : object

Извлекает информацию о структуре указанного сообщения.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

Номер сообщения

options

Если задано как FT_UID, то в msg_number должны быть UID сообщений, а не их номера.

Возвращаемые значения

Возвращает объект, содержащий обертку, внутреннюю дату, размер, флаги и структуру тела сообщения, а также аналогичную информацию по каждому MIME-вложению. Объект имеет следующую структуру:

Объект, возвращаемый imap_fetchstructure()
type | Первичный тип тела
encoding | Кодировка тела
ifsubtype | TRUE, если есть строка подтипа
subtype | MIME-подтип
ifdescription | TRUE, если есть строка описания
description | Контент строки описания
ifid | TRUE, если есть строка идентификатор
id | Строка идентификатор
lines | Количество строк
bytes | Количество байт
ifdisposition | TRUE, если есть строка расположения
disposition | Строка расположения
ifdparameters | TRUE, если есть массив dparameters
dparameters | Массив объектов, каждый из которых имеет свойства "attribute" и "value", соответствующие параметрам Content-disposition заголовка MIME.
ifparameters | TRUE, если есть массив параметров
parameters | Массив объектов, каждый из которых имеет свойства "attribute" и "value".
parts | Массив объектов идентичных по структуре с верхнеуровневым объектом, каждый из которых соответствует MIME части тела.

Первичный тип тела (значения могут отличаться в зависимости от используемой библиотеки, так что рекомендуется использовать константы)
Значение | Тип | Константа
0 | text | TYPETEXT
1 | multipart | TYPEMULTIPART
2 | message | TYPEMESSAGE
3 | application | TYPEAPPLICATION
4 | audio | TYPEAUDIO
5 | image | TYPEIMAGE
6 | video | TYPEVIDEO
7 | model | TYPEMODEL
8 | other | TYPEOTHER

Кодировка (значения могут отличаться в зависимости от используемой библиотеки, так что рекомендуется использовать константы)
Значение | Тип | Константа
0 | 7bit | ENC7BIT
1 | 8bit | ENC8BIT
2 | Binary | ENCBINARY
3 | Base64 | ENCBASE64
4 | Quoted-Printable | ENCQUOTEDPRINTABLE
5 | other | ENCOTHER

Смотрите также

  • imap_fetchbody() - Извлечь конкретную секцию тела сообщения
  • imap_bodystruct() - Прочитать структуру указанной секции тела заданного сообщения


Псевдоним imap_body

  • « imap_fetchstructure
  • imap_gc »
  • PHP Manual
  • Функции IMAP
  • Псевдоним imap_body

imap_fetchtext

(PHP 4, PHP 5, PHP 7)

imap_fetchtext — Псевдоним imap_body()

Описание

Эта функция является псевдонимом: imap_body().


Очистить кеш IMAP

  • « imap_fetchtext
  • imap_get_quota »
  • PHP Manual
  • Функции IMAP
  • Очистить кеш IMAP

imap_gc

(PHP 5 >= 5.3.0, PHP 7)

imap_gc — Очистить кеш IMAP

Описание

imap_gc ( resource $imap_stream , int $caches ) : bool

Удаляет из кеша записи заданного типа.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

caches

Задает кеш для чистки. Может быть любой комбинацией констант: IMAP_GC_ELT (элементы кеша сообщений), IMAP_GC_ENV (обертки и тела), IMAP_GC_TEXTS (тексты).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imap_gc()

<?php

$mbox = imap_open("{imap.example.org:143}", "username", "password");

imap_gc($mbox, IMAP_GC_ELT);

?>


Получить настройку уровня квоты и статистику использования почтовых ящиков

  • « imap_gc
  • imap_get_quotaroot »
  • PHP Manual
  • Функции IMAP
  • Получить настройку уровня квоты и статистику использования почтовых ящиков

imap_get_quota

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

imap_get_quota — Получить настройку уровня квоты и статистику использования почтовых ящиков

Описание

imap_get_quota ( resource $imap_stream , string $quota_root ) : array

Возвращает настройку уровня квоты и статистику использования почтовых ящиков.

Версия данной функции для использования обычными пользователями, не администраторами - imap_get_quotaroot().

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

quota_root

quota_root должно соответствовать формату user.name, где name - имя ящика, информация по которому нужна.

Возвращаемые значения

Возвращает ассоциативный массив целых чисел с ключами "limit" и "usage". Число с ключом "limit" определяет максимальный допустимый размер ящика. Число с ключом "usage" определяет текущий уровень использования. В случае ошибки вернет FALSE.

Начиная с PHP 4.3 и выше, функция более точно соответствует стандарту, описанному в » RFC2087. Значение возвращаемого массива изменилось для поддержки неограниченного количества возвращаемых ресурсов (т.е. сообщений или подпапок), где каждый именованный ресурс будет представлен индивидуальным массивом. Каждый элемент массива будет содержать другой массив к ключами "limit" и "usage".

Для обеспечения обратной совместимости, оригинальный метод доступа все еще доступен, хотя предполагается это поправить.

Примеры

Пример #1 Пример использования imap_get_quota()

<?php
$mbox = imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
      or die("не удалось подключиться: " . imap_last_error());

$quota_value = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_value)) {
    echo "Уровень использования: " . $quota_value['usage'];
    echo "Размер ящика: " . $quota_value['limit'];
}

imap_close($mbox);
?>

Пример #2 Пример использования imap_get_quota() в PHP 4.3 и выше

<?php
$mbox = imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
      or die("не удалось подключиться: " . imap_last_error());

$quota_values = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_values)) {
   $storage = $quota_values['STORAGE'];
   echo "Уровень использования STORAGE: " .  $storage['usage'];
   echo "Максимальный размер STORAGE: " .  $storage['limit'];

   $message = $quota_values['MESSAGE'];
   echo "Уровень использования MESSAGE: " .  $message['usage'];
   echo "Максимальный размер MESSAGE: " .  $message['limit'];

   /* ...  */
}

imap_close($mbox);
?>

Примечания

Эта функция доступна только при успользовании библиотеки c-client2000 или новее.

Заданный поток imap_stream должен быть открыт под административным пользователем.

Смотрите также

  • imap_open() - Открывает поток IMAP к почтовому ящику
  • imap_set_quota() - Установить квоту для заданного почтового ящика
  • imap_get_quotaroot() - Получить настройки квоты для каждого пользователя


Получить настройки квоты для каждого пользователя

  • « imap_get_quota
  • imap_getacl »
  • PHP Manual
  • Функции IMAP
  • Получить настройки квоты для каждого пользователя

imap_get_quotaroot

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

imap_get_quotaroot — Получить настройки квоты для каждого пользователя

Описание

imap_get_quotaroot ( resource $imap_stream , string $quota_root ) : array

Возвращает настройки квоты для каждого пользователя. Число с ключем "limit" определяет максимальный допустимый размер ящика. Число с ключем "usage" определяет текущий уровень использования.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

quota_root

quota_root должно содержать имя ящика (например INBOX).

Возвращаемые значения

Возвращает массив целых чисел, относящихся к конкретному пользователю. В качестве ключей массива используются имена ресурсов, а в качестве значений массивы с ключами "limit" и "usage".

В случае ошибки эта функция вернет FALSE и массив информацйии о соединении в случае получения ответа, который она не сможет разобрать.

Примеры

Пример #1 Пример использования imap_get_quotaroot()

<?php
$mbox = imap_open("{imap.example.org}", "kalowsky", "password", OP_HALFOPEN)
      or die("не удалось подключиться: " . imap_last_error());

$quota = imap_get_quotaroot($mbox, "INBOX");
if (is_array($quota)) {
   $storage = $quota['STORAGE'];
   echo "Уровень использования STORAGE: " .  $storage['usage'];
   echo "Максимальный размер STORAGE: " .  $storage['limit'];

   $message = $quota['MESSAGE'];
   echo "Уровень использования MESSAGE: " .  $message['usage'];
   echo "Максимальный размер MESSAGE: " .  $message['limit'];

   /* ...  */

}

imap_close($mbox);
?>

Примечания

Эта функция доступна только при успользовании библиотеки c-client2000 или новее.

Заданный поток imap_stream должен быть открыт под пользователем, чей ящик вы хотите проверить.

Смотрите также

  • imap_open() - Открывает поток IMAP к почтовому ящику
  • imap_set_quota() - Установить квоту для заданного почтового ящика
  • imap_get_quota() - Получить настройку уровня квоты и статистику использования почтовых ящиков


Получить ACL для заданного почтового ящика

  • « imap_get_quotaroot
  • imap_getmailboxes »
  • PHP Manual
  • Функции IMAP
  • Получить ACL для заданного почтового ящика

imap_getacl

(PHP 5, PHP 7)

imap_getacl — Получить ACL для заданного почтового ящика

Описание

imap_getacl ( resource $imap_stream , string $mailbox ) : array

Возвращает ACL для заданного почтового ящика.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

Имя почтового ящика. Более подробно читайте в разделе, посвященном функции imap_open()

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

Возвращаемые значения

Возвращает ассоциативный массив вида "folder" => "acl".

Примеры

Пример #1 Пример использования imap_getacl()

<?php

print_r(imap_getacl($conn_id, 'user.joecool'));

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [asubfolder] => lrswipcda
    [anothersubfolder] => lrswipcda
)

Примечания

Эта функция доступна только при успользовании библиотеки c-client2000 или новее.

Смотрите также

  • imap_setacl() - Установка ACL для заданного почтового ящика


Прочитать список почтовых ящиков, возвращая подробную информацию по каждому из них

  • « imap_getacl
  • imap_getsubscribed »
  • PHP Manual
  • Функции IMAP
  • Прочитать список почтовых ящиков, возвращая подробную информацию по каждому из них

imap_getmailboxes

(PHP 4, PHP 5, PHP 7)

imap_getmailboxes — Прочитать список почтовых ящиков, возвращая подробную информацию по каждому из них

Описание

imap_getmailboxes ( resource $imap_stream , string $ref , string $pattern ) : array

Получает информацию о почтовых ящиков.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

ref

ref обычно должен быть только специфицикацией сервера, как описано в imap_open()

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

pattern

Определяет начало поиска в иерархии почтовых ящиков.

Есть два специальных символа, которые можно использовать при передаче как часть pattern: '*' и '%'. '*' возвращает все почтовые ящики. Если вы передадите pattern как '*', то получите полный список иерархии почтовых ящиков. '%' вернет только текущий уровень. '%', переданный как параметр pattern, вернет почтовые ящики только на самом верхнем уровне; '~/mail/%' на UW_IMAPD вернет все ящики в директории ~/mail, кроме тех, которые находятся в ее поддиректориях.

Возвращаемые значения

Возвращает массив объектов, содержащих информацию о ящиках. Каждый объект имеет свойства: name, содержащее полное имя ящика; delimiter, содержащее разделитель для той части иерархии, в которой содержится ящик; и attributes. Параметр Attributes является битовой маской, следующих допустимых констант:

  • LATT_NOINFERIORS - этот ящик не имеет и не может иметь потомков (содержать вложенные ящики). Вызов функции imap_createmailbox() не будет работать для этого ящика.

  • LATT_NOSELECT - это только контейнер, а не почтовый ящик. Вы не можете его открыть.

  • LATT_MARKED - Этот ящик помечен. Означает, что в нем могут быть новые письма, появившиеся с момента последней проверки. Работает не со всеми серверами IMAP.

  • LATT_UNMARKED - Этот ящик не помечен, т.е. в нем нет новых писем. Если один из флагов MARKED или UNMARKED выставлен - можете считать, что сервер поддержимвает этот функционал.

  • LATT_REFERRAL - Этот контейнер имеет направления (referral) на удаленный почтовый ящик.

  • LATT_HASCHILDREN - Этот почтовый ящик имеет выбираемые подчиненные (inferiors).

  • LATT_HASNOCHILDREN - Этот почтовый ящик не имеет выбираемые подчиненные (inferiors).

Примеры

Пример #1 Пример использования imap_getmailboxes()

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
      or die("не удалось подключиться: " . imap_last_error());

$list = imap_getmailboxes($mbox, "{imap.example.org}", "*");
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 завершился с ошибкой: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

Смотрите также

  • imap_getsubscribed() - Список всех почтовых ящиков, на которые вы подписаны


Список всех почтовых ящиков, на которые вы подписаны

  • « imap_getmailboxes
  • imap_header »
  • PHP Manual
  • Функции IMAP
  • Список всех почтовых ящиков, на которые вы подписаны

imap_getsubscribed

(PHP 4, PHP 5, PHP 7)

imap_getsubscribed — Список всех почтовых ящиков, на которые вы подписаны

Описание

imap_getsubscribed ( resource $imap_stream , string $ref , string $pattern ) : array

Возвращает информацию о списке всех почтовых ящиков, на которые вы подписаны.

Идентично imap_getmailboxes(), за исключением того, что возвращается только список ящиков, на которые подписан пользователь.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

ref

В ref, как правило, должна быть указана только спецификация сервера, как описано в imap_open()

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

pattern

Определяет начало поиска в иерархии почтовых ящиков.

Есть два специальных символа, которые можно использовать при передаче как часть pattern: '*' и '%'. '*' возвращает все почтовые ящики. Если вы передадите pattern как '*', то получите полный список иерархии почтовых ящиков. '%' вернет только текущий уровень. '%', переданный как параметр pattern, вернет почтовые ящики только на самом верхнем уровне; '~/mail/%' на UW_IMAPD вернет все ящики в директории ~/mail, кроме тех, которые находятся в ее поддиректориях.

Возвращаемые значения

Возвращает массив объектов, содержащих информацию о ящиках. Каждый объект имеет свойства: name, содержащее полное имя ящика; delimiter, содержащее разделитель для той части иерархии, в которой содержится ящик; и attributes. Параметр Attributes является битовой маской, следующих допустимых констант:

  • LATT_NOINFERIORS - этот ящик не имеет потомков (нет ни одного ящика ниже этого).
  • LATT_NOSELECT - это только контейнер, а не почтовый ящик. Вы не можете его открыть.
  • LATT_MARKED - Этот ящик помеченн. Используется только UW-IMAPD.
  • LATT_UNMARKED - Этот ящик не помеченн. Используется только UW-IMAPD.
  • LATT_REFERRAL - Этот контейнер имеет направления (referral) на удаленный почтовый ящик.
  • LATT_HASCHILDREN - Этот почтовый ящик имеет выбираемые подчиненные (inferiors).
  • LATT_HASNOCHILDREN - Этот почтовый ящик не имеет выбираемые подчиненные (inferiors).


Псевдоним imap_headerinfo

  • « imap_getsubscribed
  • imap_headerinfo »
  • PHP Manual
  • Функции IMAP
  • Псевдоним imap_headerinfo

imap_header

(PHP 4, PHP 5, PHP 7)

imap_header — Псевдоним imap_headerinfo()

Описание

Эта функция является псевдонимом: imap_headerinfo().


Прочитать заголовок сообщения

  • « imap_header
  • imap_headers »
  • PHP Manual
  • Функции IMAP
  • Прочитать заголовок сообщения

imap_headerinfo

(PHP 4, PHP 5, PHP 7)

imap_headerinfo — Прочитать заголовок сообщения

Описание

imap_headerinfo ( resource $imap_stream , int $msg_number [, int $fromlength = 0 [, int $subjectlength = 0 [, string $defaulthost = NULL ]]] ) : object

Извлекает информацию о сообщении из его заголовка.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

Номер сообщения

fromlength

Количество символов в свойстве fetchfrom. Должно быть больше или равно нулю.

subjectlength

Количество символов в свойстве fetchsubject. Должно быть больше или равно нулю.

defaulthost

Возвращаемые значения

В случае ошибки возвращает FALSE. В случае успеха возвращает объект со следующими свойствами:

  • toaddress - полная строка to:, максимум 1024 символов
  • to - массив объектов из поля To:, со следующими свойствами: personal, adl, mailbox и host
  • fromaddress - полная строка from:, максимум 1024 символов
  • from - массив объектов из поля From:, со следующими свойствами: personal, adl, mailbox и host
  • ccaddress - полная строка cc:, максимум 1024 символов
  • cc - массив объектов из поля Cc:, со следующими свойствами: personal, adl, mailbox и host
  • bccaddress - полная строка bcc:, максимум 1024 символов
  • bcc - массив объектов из поля Bcc:, со следующими свойствами: personal, adl, mailbox и host
  • reply_toaddress - полная строка Reply-To:, максимум 1024 символов
  • reply_to - массив объектов из поля Reply-To:, со следующими свойствами: personal, adl, mailbox и host
  • senderaddress - полная строка sender:, максимум 1024 символов
  • sender - массив объектов из поля Sender:, со следующими свойствами: personal, adl, mailbox и host
  • return_pathaddress - полная строка Return-Path:, максимум 1024 символов
  • return_path - массив объектов из поля Return-Path:, со следующими свойствами: personal, adl, mailbox и host
  • remail -
  • date - Дата письма, как она указана в заголовке
  • Date - То же, что и date
  • subject - Тема письма
  • Subject - То же, что и subject
  • in_reply_to -
  • message_id -
  • newsgroups -
  • followup_to -
  • references -
  • Recent - R если новое и прочитанное, N если новое и не прочитанное, ' ' если не новое.
  • Unseen - U если НЕ прочитанно и НЕ новое, ' ' если прочитано ИЛИ не прочитано и новое
  • Flagged - F если отмечено, ' ' если нет
  • Answered - A если отвечено, ' ' если нет
  • Deleted - D если удалено, ' ' if если нет
  • Draft - X если черновик, ' ' если нет
  • Msgno - Номер сообщения
  • MailDate -
  • Size - Размер сообщения
  • udate - время отсылки в виде временной метки Unix
  • fetchfrom - поле from, отформатированное в соответствии с fromlength
  • fetchsubject - поле subject, отформатированное в соответствии с subjectlength

Смотрите также

  • imap_fetch_overview() - Обзор информации, содержащейся в заголовках сообщений


Получить заголовки всех сообщений в почтовом ящике

  • « imap_headerinfo
  • imap_last_error »
  • PHP Manual
  • Функции IMAP
  • Получить заголовки всех сообщений в почтовом ящике

imap_headers

(PHP 4, PHP 5, PHP 7)

imap_headers — Получить заголовки всех сообщений в почтовом ящике

Описание

imap_headers ( resource $imap_stream ) : array

Возвращает заголовки всех сообщений в почтовом ящике.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

Возвращаемые значения

Возвращает массив со строками, содержащими заголовки сообщений. Один элемент - одно сообщение.


Получить последнюю ошибку IMAP в текущем запросе

  • « imap_headers
  • imap_list »
  • PHP Manual
  • Функции IMAP
  • Получить последнюю ошибку IMAP в текущем запросе

imap_last_error

(PHP 4, PHP 5, PHP 7)

imap_last_error — Получить последнюю ошибку IMAP в текущем запросе

Описание

imap_last_error ( void ) : string

Возвращает полный текст ошибки IMAP, возникшей на текущей странице. Стек ошибок не будет затронут; последующий вызов imap_last_error(), если ошибок более не было, вернет ту же самую ошибку.

Возвращаемые значения

Возвращает полный текст ошибки IMAP, возникшей на текущей странице. Если ошибок не было - возвратит FALSE.

Смотрите также

  • imap_errors() - Получить все произошедшие ошибки IMAP


Прочитать список почтовых ящиков

  • « imap_last_error
  • imap_listmailbox »
  • PHP Manual
  • Функции IMAP
  • Прочитать список почтовых ящиков

imap_list

(PHP 4, PHP 5, PHP 7)

imap_list — Прочитать список почтовых ящиков

Описание

imap_list ( resource $imap_stream , string $ref , string $pattern ) : array

Читает список почтовых ящиков.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

ref

В ref, как правило, должна быть указана только спецификация сервера, как описано в imap_open().

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

pattern

Определяет начало поиска в иерархии почтовых ящиков.

Есть два специальных символа, которые можно использовать при передаче как часть pattern: '*' и '%'. '*' возвращает все почтовые ящики. Если вы передадите pattern как '*', то получите полный список иерархии почтовых ящиков. '%' вернет только текущий уровень. '%', переданный как параметр pattern, вернет почтовые ящики только на самом верхнем уровне; '~/mail/%' на UW_IMAPD вернет все ящики в директории ~/mail, кроме тех, которые находятся в ее поддиректориях.

Возвращаемые значения

Возвращает массив с именами почтовых ящиков или FALSE в случае неудачи.

Примеры

Пример #1 Пример использования imap_list()

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
      or die("не удалось подключиться: " . imap_last_error());

$list = imap_list($mbox, "{imap.example.org}", "*");
if (is_array($list)) {
    foreach ($list as $val) {
        echo imap_utf7_decode($val) . "\n";
    }
} else {
    echo "вызов imap_list завершился с ошибкой: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

Смотрите также

  • imap_getmailboxes() - Прочитать список почтовых ящиков, возвращая подробную информацию по каждому из них
  • imap_lsub() - Список всех подписанных почтовых ящиков


Псевдоним imap_list

  • « imap_list
  • imap_listscan »
  • PHP Manual
  • Функции IMAP
  • Псевдоним imap_list

imap_listmailbox

(PHP 4, PHP 5, PHP 7)

imap_listmailbox — Псевдоним imap_list()

Описание

Эта функция является псевдонимом: imap_list().


Получить список почтовых ящиков, имена которых содержат заданную строку

  • « imap_listmailbox
  • imap_listsubscribed »
  • PHP Manual
  • Функции IMAP
  • Получить список почтовых ящиков, имена которых содержат заданную строку

imap_listscan

(PHP 4, PHP 5, PHP 7)

imap_listscan — Получить список почтовых ящиков, имена которых содержат заданную строку

Описание

imap_listscan ( resource $imap_stream , string $ref , string $pattern , string $content ) : array

Возвращает массив, содержащий имена почтовых ящиков содержащих content в тексте.

Эта функция похожа на imap_listmailbox(), но также выявляет присутствие строки content внутри данных почтового ящика.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

ref

В ref, как правило, должна быть указана только спецификация сервера, как описано в imap_open()

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

pattern

Определяет начало поиска в иерархии почтовых ящиков.

Есть два специальных символа, которые можно использовать при передаче как часть pattern: '*' и '%'. '*' возвращает все почтовые ящики. Если вы передадите pattern как '*', то получите полный список иерархии почтовых ящиков. '%' вернет только текущий уровень. '%', переданный как параметр pattern, вернет почтовые ящики только на самом верхнем уровне; '~/mail/%' на UW_IMAPD вернет все ящики в директории ~/mail, кроме тех, которые находятся в ее поддиректориях.

content

Искомая строка

Возвращаемые значения

Возвращает массив, содержащий имена почтовых ящиков содержащих content в тексте.

Смотрите также

  • imap_listmailbox() - Псевдоним imap_list
  • imap_search() - Получить сообщения, удовлетворяющие заданным критериям


Псевдоним imap_lsub

  • « imap_listscan
  • imap_lsub »
  • PHP Manual
  • Функции IMAP
  • Псевдоним imap_lsub

imap_listsubscribed

(PHP 4, PHP 5, PHP 7)

imap_listsubscribed — Псевдоним imap_lsub()

Описание

Эта функция является псевдонимом: imap_lsub().


Список всех подписанных почтовых ящиков

  • « imap_listsubscribed
  • imap_mail_compose »
  • PHP Manual
  • Функции IMAP
  • Список всех подписанных почтовых ящиков

imap_lsub

(PHP 4, PHP 5, PHP 7)

imap_lsub — Список всех подписанных почтовых ящиков

Описание

imap_lsub ( resource $imap_stream , string $ref , string $pattern ) : array

Возвращает массив всех почтовых ящиков на которые вы подписаны.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

ref

В ref, как правило, должна быть указана только спецификация сервера, как описано в imap_open().

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

pattern

Определяет начало поиска в иерархии почтовых ящиков.

Есть два специальных символа, которые можно использовать при передаче как часть pattern: '*' и '%'. '*' возвращает все почтовые ящики. Если вы передадите pattern как '*', то получите полный список иерархии почтовых ящиков. '%' вернет только текущий уровень. '%', переданный как параметр pattern, вернет почтовые ящики только на самом верхнем уровне; '~/mail/%' на UW_IMAPD вернет все ящики в директории ~/mail, кроме тех, которые находятся в ее поддиректориях.

Возвращаемые значения

Возвращает массив всех подписанных почтовых ящиков.

Смотрите также

  • imap_list() - Прочитать список почтовых ящиков
  • imap_getmailboxes() - Прочитать список почтовых ящиков, возвращая подробную информацию по каждому из них


Создать MIME-сообщение на основе заданных обертки и тела

  • « imap_lsub
  • imap_mail_copy »
  • PHP Manual
  • Функции IMAP
  • Создать MIME-сообщение на основе заданных обертки и тела

imap_mail_compose

(PHP 4, PHP 5, PHP 7)

imap_mail_compose — Создать MIME-сообщение на основе заданных обертки и тела

Описание

imap_mail_compose ( array $envelope , array $body ) : string

Создает MIME-сообщение на основе обертки envelope и тела body.

Список параметров

envelope

Ассоциативный массив с полями заголовка. Допустимые ключи: "remail", "return_path", "date", "from", "reply_to", "in_reply_to", "subject", "to", "cc", "bcc", "message_id" и "custom_headers" (который содержит ассоциативный массив прочих заголовков).

body

Индексированный массив тел:

Ассоциативный массив с полями заголовка. Допустимые ключи: "type", "encoding", "charset", "type.parameters", "subtype", "id", "description", "disposition.type", "disposition", "contents.data", "lines", "bytes" и "md5".

Возвращаемые значения

Возвращает MIME-сообщение.

Примеры

Пример #1 Пример использования imap_mail_compose()

<?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_mail_compose
  • imap_mail_move »
  • PHP Manual
  • Функции IMAP
  • Скопировать сообщения в указанный почтовый ящик

imap_mail_copy

(PHP 4, PHP 5, PHP 7)

imap_mail_copy — Скопировать сообщения в указанный почтовый ящик

Описание

imap_mail_copy ( resource $imap_stream , string $msglist , string $mailbox [, int $options = 0 ] ) : bool

Копирует заданные в msglist письма в указанный почтовый ящик.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msglist

msglist - это диапазон, а не просто номера сообщений (как определено в » RFC2060).

mailbox

Имя почтового ящика. Более подробно читайте в разделе, посвященном функции imap_open()

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

options

options - битовая маска одной или нескольких констант:

  • CP_UID - означает, что в первом параметре не номера сообщений, а их UID
  • CP_MOVE - удалить оригинальные сообщения после копирования

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_mail_move() - Переместить указанные сообщения в указанный почтовый ящик


Переместить указанные сообщения в указанный почтовый ящик

  • « imap_mail_copy
  • imap_mail »
  • PHP Manual
  • Функции IMAP
  • Переместить указанные сообщения в указанный почтовый ящик

imap_mail_move

(PHP 4, PHP 5, PHP 7)

imap_mail_move — Переместить указанные сообщения в указанный почтовый ящик

Описание

imap_mail_move ( resource $imap_stream , string $msglist , string $mailbox [, int $options = 0 ] ) : bool

Перемещает письма, заданные в msglist в указанный почтовый ящик mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msglist

msglist - это диапазон, а не просто номера сообщений (как определено в » RFC2060).

mailbox

Имя почтового ящика. Более подробно читайте в разделе, посвященном функции imap_open()

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

options

options - битовая маска, которая может принимать всего одно значение:

  • CP_UID - означает, что в первом параметре не номера сообщений, а их UID

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Функция imap_mail_move() помечает оригинальное сообщение флагом удаления, так что не забудьте после нее вызвать функцию imap_expunge().

Смотрите также

  • imap_mail_copy() - Скопировать сообщения в указанный почтовый ящик


Отправить email

  • « imap_mail_move
  • imap_mailboxmsginfo »
  • PHP Manual
  • Функции IMAP
  • Отправить email

imap_mail

(PHP 4, PHP 5, PHP 7)

imap_mail — Отправить email

Описание

imap_mail ( string $to , string $subject , string $message [, string $additional_headers = NULL [, string $cc = NULL [, string $bcc = NULL [, string $rpath = NULL ]]]] ) : bool

Эта функция позволяет отправлять сообщения с корректной обработкой получателей Cc и Bcc.

Параметры to, cc и bcc - строки, которые будут разобраны в соответствии с » RFC822.

Список параметров

to

Получатель

subject

Тема письма

message

Тело письма, см. imap_mail_compose()

additional_headers

Строка с дополнительными заголовками

cc

bcc

Получатели bcc получат письмо, но не будут указаны в заголовках.

rpath

Используйте этот параметр для указания обратного адреса для отсылки отчета в случае неудачной доставки. Это удобно, когда PHP используется как почтовый клиент несколькими пользователями.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mail() - Отправляет электронную почту
  • imap_mail_compose() - Создать MIME-сообщение на основе заданных обертки и тела


Получить информацию о текущем почтовом ящике

  • « imap_mail
  • imap_mime_header_decode »
  • PHP Manual
  • Функции IMAP
  • Получить информацию о текущем почтовом ящике

imap_mailboxmsginfo

(PHP 4, PHP 5, PHP 7)

imap_mailboxmsginfo — Получить информацию о текущем почтовом ящике

Описание

imap_mailboxmsginfo ( resource $imap_stream ) : object

Проверяет статус текущего почтового ящика на сервере. Аналогично imap_status(), но дополнительно вычисляет суммарный размер всех писем в ящике, из-за чего работает несколько медленнее.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

Возвращаемые значения

Возвращает объект со следующими полями:

Свойства почтового ящика
Date | дата последнего изменения (текущие дата и время)
Driver | драйвер
Mailbox | имя почтового ящика
Nmsgs | количество писем
Recent | количество новых
Unread | количество непрочтенных
Deleted | количество удаленных
Size | размер ящика

В случае ошибки возвращает FALSE.

Примеры

Пример #1 Пример использования imap_mailboxmsginfo()

<?php

$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
      or die("не удалось подключиться: " . 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_mailboxmsginfo() завершился с ошибкой: " . imap_last_error() . "<br />\n";
}

imap_close($mbox);

?>


Декодировать элементы заголовка

  • « imap_mailboxmsginfo
  • imap_msgno »
  • PHP Manual
  • Функции IMAP
  • Декодировать элементы заголовка

imap_mime_header_decode

(PHP 4, PHP 5, PHP 7)

imap_mime_header_decode — Декодировать элементы заголовка

Описание

imap_mime_header_decode ( string $text ) : array

Декодирует MIME-расширения загаловка, не являющиеся текстом ASCII (смотри » RFC2047).

Список параметров

text

MIME-текст

Возвращаемые значения

Декодированные элементы возвращаются в массиве объектов, где каждый объект имеет два свойства, charset и text.

Если элемент небыл декодирован, или, другими словами, он является текстом US-ASCII, свойство charset будет установлено в значение default.

Примеры

Пример #1 Пример использования imap_mime_header_decode()

<?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";
}
?>

Результат выполнения данного примера:

Charset: ISO-8859-1
Text: Keld Jorn Simonsen

Charset: default
Text:  <keld@example.com>

В примере выше, мы получим два элемента, где первый элемент был ранее закодирован в ISO-8859-1, а второй US-ASCII.

Смотрите также

  • imap_utf8() - Преобразует MIME-кодированный текст в UTF-8


Получить номер сообщения с заданным UID

  • « imap_mime_header_decode
  • imap_mutf7_to_utf8 »
  • PHP Manual
  • Функции IMAP
  • Получить номер сообщения с заданным UID

imap_msgno

(PHP 4, PHP 5, PHP 7)

imap_msgno — Получить номер сообщения с заданным UID

Описание

imap_msgno ( resource $imap_stream , int $uid ) : int

Возвращает номер сообщения для указанного uid.

Эта функция обратна к imap_uid().

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

uid

UID сообщения

Возвращаемые значения

Возвращает номер сообщения для указанного uid.

Смотрите также

  • imap_uid() - Получить UID по номеру сообщения


Декодировать измененную строку UTF-7 в UTF-8

  • « imap_msgno
  • imap_num_msg »
  • PHP Manual
  • Функции IMAP
  • Декодировать измененную строку UTF-7 в UTF-8

imap_mutf7_to_utf8

(PHP 5 >= 5.3.0, PHP 7)

imap_mutf7_to_utf8 — Декодировать измененную строку UTF-7 в UTF-8

Описание

imap_mutf7_to_utf8 ( string $in ) : string

Декодировать измененную строку UTF-7 (в соответствии с RFC 2060, раздел 5.1.3) в UTF-8.

Замечание:

Эта функция доступна только в случае, если libcclient экспортирует utf8_to_mutf7().

Список параметров

in

Измененная строка, закодированная в UTF-7.

Возвращаемые значения

Возвращает in, конвертированную в UTF-8, или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_utf8_to_mutf7() - Кодировать строку UTF-8 в измененную UTF-7


Получить количество сообщений в текущем почтовом ящике

  • « imap_mutf7_to_utf8
  • imap_num_recent »
  • PHP Manual
  • Функции IMAP
  • Получить количество сообщений в текущем почтовом ящике

imap_num_msg

(PHP 4, PHP 5, PHP 7)

imap_num_msg — Получить количество сообщений в текущем почтовом ящике

Описание

imap_num_msg ( resource $imap_stream ) : int

Возвращает количество сообщений в текущем почтовом ящике.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

Возвращаемые значения

Возвращает количество сообщений в текущем почтовом ящике в виде целого числа. В случае ошибки возвращает FALSE.

Смотрите также

  • imap_num_recent() - Получить количество новых сообщений в текущем почтовом ящике
  • imap_status() - Получить информацию по статусу почтового ящика


Получить количество новых сообщений в текущем почтовом ящике

  • « imap_num_msg
  • imap_open »
  • PHP Manual
  • Функции IMAP
  • Получить количество новых сообщений в текущем почтовом ящике

imap_num_recent

(PHP 4, PHP 5, PHP 7)

imap_num_recent — Получить количество новых сообщений в текущем почтовом ящике

Описание

imap_num_recent ( resource $imap_stream ) : int

Возвращает количество новых сообщений в текущем почтовом ящике.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

Возвращаемые значения

Возвращает количество новых сообщений в текущем почтовом ящике в виде целого числа.

Смотрите также

  • imap_num_msg() - Получить количество сообщений в текущем почтовом ящике
  • imap_status() - Получить информацию по статусу почтового ящика


Открывает поток IMAP к почтовому ящику

  • « imap_num_recent
  • imap_ping »
  • PHP Manual
  • Функции IMAP
  • Открывает поток IMAP к почтовому ящику

imap_open

(PHP 4, PHP 5, PHP 7)

imap_open — Открывает поток IMAP к почтовому ящику

Описание

imap_open ( string $mailbox , string $username , string $password [, int $options = 0 [, int $n_retries = 0 [, array $params = array() ]]] ) : resource

Открывает поток IMAP к mailbox.

Данная функция также может использоваться для открытия потока к серверам POP3 и NNTP, но часть функций и особенностей будет работать только с серверами IMAP.

Список параметров

mailbox

Имя почтового ящика состоит из сервера и пути к почтовому ящику на нем. Специальное имя INBOX используется для почтового ящика текущего пользователя. Имена почтовых ящиков, содержащих интернациональные символы кроме входящих в печатное пространство ASCII, должны быть закодированы с помощью imap_utf7_encode().

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

Серверная часть, заключенная в фигурные скобки '{' и '}', состоит из имени или IP-адреса сервера, опционального порта (предваренного двоеточием) и опциональных спецификаций протокола (предваренных слешом '/').

Серверная часть является обязательной во всех параметрах почтового ящика.

Все имена, начинающиеся с { являются удаленными именами и имеют такой синтаксис "{" remote_system_name [":" port] [flags] "}" [mailbox_name] где:

  • remote_system_name - полное доменное имя сервера, либо IP-адрес в квадратных скобках.
  • port - необязательный параметр. Определяет порт сервера
  • flags - опциональные флаги, смотри таблицу ниже
  • mailbox_name - имя почтового ящика. По умолчанию INBOX

Опциональные флаги
Флаг | Описание
/service=service | сервис доступа к почтовому ящику. По умолчанию "imap"
/user=user | имя пользователя для входа на сервер
/authuser=user | удаленный пользователь для аутентификации; если указано, то это будет тот пользователь, чей пароль используется (например administrator)
/anonymous | удаленный доступ под анонимным пользователем
/debug | записывать телеметрию протокола в специальный лог-файл приложения
/secure | не передавать пароль по сети в виде нешифрованного текста
/imap, /imap2, /imap2bis, /imap4, /imap4rev1 | эквивалентно /service=imap
/pop3 | эквивалентно /service=pop3
/nntp | эквивалентно /service=nntp
/norsh | не использовать rsh или ssh для установки преавторизованной сессии IMAP
/ssl | использовать SSL для шифрования сессии
/validate-cert | проверять сертификаты серверов TLS/SSL (поведение по умолчанию)
/novalidate-cert | не проверять сертификаты от серверов TLS/SSL. полезно для серверов с самоподписанным сертификатом
/tls | принудительно использовать start-TLS для шифрования сессии и отвергать соединения с серверами его не поддерживающими
/notls | не применять start-TLS для шифрования сессии, даже если сервер его поддерживает
/readonly | запрос открытия в режиме "только чтение" (только IMAP; игнорируется для NNTP и выдает ошибку для SMTP и POP3)

username

Имя пользователя

password

Пароль пользователя username

options

options - битовая маска из одной или нескольких констант:

  • OP_READONLY - открыть почтовый ящик только для чтения
  • OP_ANONYMOUS - не использовать и не обновлять .newsrc для новостей (только NNTP)
  • OP_HALFOPEN - открыть соединение, но не подключаться к почтовому ящику для имен IMAP и NNTP.
  • CL_EXPUNGE - автоматически удалять все помеченные для удаления сообщения при закрытии почтового ящика (смотрите imap_delete() и imap_expunge())
  • OP_DEBUG - договоренности по протоколу отладки
  • OP_SHORTCACHE - короткое кеширование (только elt)
  • OP_SILENT - не передавать события (внутреннее использование)
  • OP_PROTOTYPE - вернуть прототип драйвера
  • OP_SECURE - не производить безопасную аутентификацию

n_retries

Максимальное количество попыток соединения

params

Параметры для соединения. Для установки одного или нескольких параметров соединения можно использоватиь следующие (строки) ключи:

  • DISABLE_AUTHENTICATOR - запрещает свойства аутентификации

Возвращаемые значения

В случае успеха возвращает поток IMAP, а в случае неудачи FALSE.

Список изменений

Версия | Описание
5.3.2 | Добавлен параметр params
5.2.0 | Добавлен параметр n_retries

Примеры

Пример #1 Различные способы использования imap_open()

<?php
// Для подключения к серверу IMAP, работающему на порту 143 на локальной машине, сделать следующее:
$mbox = imap_open("{localhost:143}INBOX", "user_id", "password");

// Для подключения к серверу POP3, работающему на порту 110 на локальной машине, использовать:
$mbox = imap_open ("{localhost:110/pop3}INBOX", "user_id", "password");

// Для подключения к серверу SSL IMAP или POP3, добавить /ssl после протокола
// specification:
$mbox = imap_open ("{localhost:993/imap/ssl}INBOX", "user_id", "password");

// Для подключения к серверу SSL IMAP или POP3 с самоподписанным сертификатом,
// добавить /ssl/novalidate-cert после спецификации протокола:
$mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "user_id", "password");

// Для подключения к серверу NNTP, работающему на порту 119 на локальной машине, использовать:
$nntp = imap_open ("{localhost:119/nntp}comp.test", "", "");
// Для подключения к удаленному серверу, заменить "localhost" на имя или
// IP-адрес сервера, к которому вы хотите подключиться.
?>

Пример #2 Пример использования imap_open()

<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password");

echo "<h1>Почтовые ящики</h1>\n";
$folders = imap_listmailbox($mbox, "{imap.example.org:143}", "*");

if ($folders == false) {
    echo "Неудачный вызов<br />\n";
} else {
    foreach ($folders as $val) {
        echo $val . "<br />\n";
    }
}

echo "<h1>Заголовки в INBOX</h1>\n";
$headers = imap_headers($mbox);

if ($headers == false) {
    echo "Неудачный вызов<br />\n";
} else {
    foreach ($headers as $val) {
        echo $val . "<br />\n";
    }
}

imap_close($mbox);
?>

Смотрите также

  • imap_close() - Закрыть поток IMAP


Проверить, активен ли еще поток IMAP

  • « imap_open
  • imap_qprint »
  • PHP Manual
  • Функции IMAP
  • Проверить, активен ли еще поток IMAP

imap_ping

(PHP 4, PHP 5, PHP 7)

imap_ping — Проверить, активен ли еще поток IMAP

Описание

imap_ping ( resource $imap_stream ) : bool

imap_ping() проверяет, активен ли еще открытый поток. С помощью него можно узнавать, есть ли новая почта. Это предпочтительный метод проверять есть ли новые сообщения и аналог "keep alive" для серверов с настроенным тайм-аутом неактивности.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

Возвращаемые значения

Возвращает TRUE, если поток активен и FALSE, если нет.

Примеры

Пример #1 Пример использования imap_ping()

<?php

$imap = imap_open("{imap.example.org}", "mailadmin", "password");

// после некоторого ожидания
if (!imap_ping($imap)) {
    // производим переподключение
}

?>


Преобразовать строку из формата "quoted-printable" в 8-битную строку

  • « imap_ping
  • imap_rename »
  • PHP Manual
  • Функции IMAP
  • Преобразовать строку из формата "quoted-printable" в 8-битную строку

imap_qprint

(PHP 4, PHP 5, PHP 7)

imap_qprint — Преобразовать строку из формата "quoted-printable" в 8-битную строку

Описание

imap_qprint ( string $string ) : string

Преобразует строку из формата "quoted-printable" в 8-битную строку в соответствии с » RFC2045, секция 6.7.

Список параметров

string

Строка в формате "quoted-printable"

Возвращаемые значения

Возвращает 8-битную строку.

Смотрите также

  • imap_8bit() - Конвертирует 8-битную строку в строку в формате quoted-printable


Псевдоним imap_renamemailbox

  • « imap_qprint
  • imap_renamemailbox »
  • PHP Manual
  • Функции IMAP
  • Псевдоним imap_renamemailbox

imap_rename

(PHP 4, PHP 5, PHP 7)

imap_rename — Псевдоним imap_renamemailbox()

Описание

Эта функция является псевдонимом: imap_renamemailbox().


Переименовать почтовый ящик

  • « imap_rename
  • imap_reopen »
  • PHP Manual
  • Функции IMAP
  • Переименовать почтовый ящик

imap_renamemailbox

(PHP 4, PHP 5, PHP 7)

imap_renamemailbox — Переименовать почтовый ящик

Описание

imap_renamemailbox ( resource $imap_stream , string $old_mbox , string $new_mbox ) : bool

Эта функция переименовывает old_mbox в new_mbox (формат имени mbox смотрите в описании imap_open()).

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

old_mbox

Старое имя. Более подробно читайте в описании imap_open()

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

new_mbox

Новое имя. Более подробно читайте в описании imap_open()

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_createmailbox() - Создать новый почтовый ящик
  • imap_deletemailbox() - Удалить почтовый ящик


Переоткрывает поток IMAP к новому ящику

  • « imap_renamemailbox
  • imap_rfc822_parse_adrlist »
  • PHP Manual
  • Функции IMAP
  • Переоткрывает поток IMAP к новому ящику

imap_reopen

(PHP 4, PHP 5, PHP 7)

imap_reopen — Переоткрывает поток IMAP к новому ящику

Описание

imap_reopen ( resource $imap_stream , string $mailbox [, int $options = 0 [, int $n_retries = 0 ]] ) : bool

Переоткрывает указанный поток к ящику mailbox на сервере IMAP или NNTP.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

Имя почтового ящика. Более подробно читайте в разделе про функцию imap_open()

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

options

options - битовая маска из одной или нескольких констант:

  • OP_READONLY - открыть почтовый ящик только для чтения
  • OP_ANONYMOUS - не использовать и не обновлять .newsrc для новостей (только NNTP)
  • OP_HALFOPEN - открыть соединение, но не подключаться к почтовому ящику для имен IMAP и NNTP.
  • OP_EXPUNGE - молча выполнить удаление помеченных для удлаления сообщений в потоке
  • CL_EXPUNGE - автоматически удалять все помеченные для удаления сообщения при закрытии почтового ящика (смотрите imap_delete() и imap_expunge())

n_retries

Максимально количество попыток соединения

Возвращаемые значения

Возвращает TRUE, если поток переоткрыт и FALSE, если нет.

Список изменений

Версия | Описание
5.2.0 | Добавлен параметр n_retries

Примеры

Пример #1 Пример использования imap_reopen()

<?php
$mbox = imap_open("{imap.example.org:143}INBOX", "username", "password") or die(implode(", ", imap_errors()));
// ...
imap_reopen($mbox, "{imap.example.org:143}INBOX.Sent") or die(implode(", ", imap_errors()));
// ..
?>


Разбор адресной строки

  • « imap_reopen
  • imap_rfc822_parse_headers »
  • PHP Manual
  • Функции IMAP
  • Разбор адресной строки

imap_rfc822_parse_adrlist

(PHP 4, PHP 5, PHP 7)

imap_rfc822_parse_adrlist — Разбор адресной строки

Описание

imap_rfc822_parse_adrlist ( string $address , string $default_host ) : array

Разбирает адресную строку в соответствии с » RFC2822 для каждого адреса.

Список параметров

address

Строка с адресами

default_host

Имя хоста по умолчанию

Возвращаемые значения

Возвращает массив объектов со следующими свойствами:

  • mailbox - имя ящика (пользователя)
  • host - имя хоста
  • personal - персональное имя
  • adl - "at-domain-list". Не используется.

Примеры

Пример #1 Пример использования imap_rfc822_parse_adrlist()

<?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 $id => $val) {
    echo "# $id\n";
    echo "  mailbox : " . $val->mailbox . "\n";
    echo "  host    : " . $val->host . "\n";
    echo "  personal: " . $val->personal . "\n";
    echo "  adl     : " . $val->adl . "\n";
}
?>

Результат выполнения данного примера:

# 0
  mailbox : doe
  host    : example.com
  personal: Joe Doe
  adl     :
# 1
  mailbox : postmaster
  host    : example.com
  personal:
  adl     :
# 2
  mailbox : root
  host    : example.com
  personal:
  adl     :

Смотрите также

  • imap_rfc822_parse_headers() - Разбор строки заголовка письма


Разбор строки заголовка письма

  • « imap_rfc822_parse_adrlist
  • imap_rfc822_write_address »
  • PHP Manual
  • Функции IMAP
  • Разбор строки заголовка письма

imap_rfc822_parse_headers

(PHP 4, PHP 5, PHP 7)

imap_rfc822_parse_headers — Разбор строки заголовка письма

Описание

imap_rfc822_parse_headers ( string $headers [, string $defaulthost = "UNKNOWN" ] ) : object

Извлекает объект различных элементов заголовка, аналогично imap_header().

Список параметров

headers

Данные для разбора

defaulthost

Имя хоста по умолчанию

Возвращаемые значения

Возвращает объект, аналогичный возвращаемым функцией imap_header(), за исключением флагов и прочих свойств, получаемых с сервера IMAP.

Смотрите также

  • imap_rfc822_parse_adrlist() - Разбор адресной строки


Получить корректно сформированный e-mail адрес, заданный именем ящика, хоста и персональной информацией

  • « imap_rfc822_parse_headers
  • imap_savebody »
  • PHP Manual
  • Функции IMAP
  • Получить корректно сформированный e-mail адрес, заданный именем ящика, хоста и персональной информацией

imap_rfc822_write_address

(PHP 4, PHP 5, PHP 7)

imap_rfc822_write_address — Получить корректно сформированный e-mail адрес, заданный именем ящика, хоста и персональной информацией

Описание

imap_rfc822_write_address ( string $mailbox , string $host , string $personal ) : string

Возвращает почтовый адрес сформированный в соответствии с » RFC2822.

Список параметров

mailbox

Имя почтового ящика. Более подробно читайте в описании imap_open()

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

host

Часть e-mail, описывающая хост

personal

Имя владельца аккаунта

Возвращаемые значения

Возвращает строку содержащую почтовый адрес в сформированный в соответствии с » RFC2822.

Примеры

Пример #1 Пример использования imap_rfc822_write_address()

<?php
echo imap_rfc822_write_address("hartmut", "example.com", "Hartmut Holzgraefe");
?>

Результат выполнения данного примера:

Hartmut Holzgraefe <hartmut@example.com>


Сохранить часть тела сообщения в файл

  • « imap_rfc822_write_address
  • imap_scan »
  • PHP Manual
  • Функции IMAP
  • Сохранить часть тела сообщения в файл

imap_savebody

(PHP 5 >= 5.1.3, PHP 7)

imap_savebody — Сохранить часть тела сообщения в файл

Описание

imap_savebody ( resource $imap_stream , mixed $file , int $msg_number [, string $part_number = "" [, int $options = 0 ]] ) : bool

Записывает часть тела сообщения в файл.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

file

Путь к файлу в виде строки, либо открытый с помощью fopen() файловый дескриптор.

msg_number

Номер сообщения

part_number

Номер секции сообщения. Строка целых чисел, разделенных точками, определяющая часть тела сообщения в соответствии со спецификацией IMAP4

options

Битовая маска из одной или нескольких опций:

  • FT_UID - The msg_number is a UID
  • FT_PEEK - Не устанавливать флаг \Seen, если он уже не установлен
  • FT_INTERNAL - возвращать строку во внутреннем формате, без преобразования концов строк к CRLF.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_fetchbody() - Извлечь конкретную секцию тела сообщения


Псевдоним imap_listscan

  • « imap_savebody
  • imap_scanmailbox »
  • PHP Manual
  • Функции IMAP
  • Псевдоним imap_listscan

imap_scan

(PHP 4, PHP 5, PHP 7)

imap_scan — Псевдоним imap_listscan()

Описание

Эта функция является псевдонимом: imap_listscan().


Псевдоним imap_listscan

  • « imap_scan
  • imap_search »
  • PHP Manual
  • Функции IMAP
  • Псевдоним imap_listscan

imap_scanmailbox

(PHP 4, PHP 5, PHP 7)

imap_scanmailbox — Псевдоним imap_listscan()

Описание

Эта функция является псевдонимом: imap_listscan().


Получить сообщения, удовлетворяющие заданным критериям

  • « imap_scanmailbox
  • imap_set_quota »
  • PHP Manual
  • Функции IMAP
  • Получить сообщения, удовлетворяющие заданным критериям

imap_search

(PHP 4, PHP 5, PHP 7)

imap_search — Получить сообщения, удовлетворяющие заданным критериям

Описание

imap_search ( resource $imap_stream , string $criteria [, int $options = SE_FREE [, string $charset = NULL ]] ) : array

Эта функция производит поиск в текущем почтовом ящике открытом в потоке IMAP.

К примеру, чтобы найти все неотвеченные сообщения посланные от мамы (Mom), нужно будет использовать "UNANSWERED FROM mom". Поиск регистронезависимый. Приведенный список критериев извлечен из исходных кодов UW c-client и может быть неполным или не совсем точным (дополнительно смотрите » RFC2060, секция 6.4.4).

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

criteria

Строка, разделенная пробелами, в которой допустимо использовать следующие ключевые слова. Любые аргументы, состоящие из нескольких слов, должны быть заключены в двойные кавычки (например FROM "joey smith"). Результат будет совпадать со всеми заданными в параметре criteria критериями.

  • ALL - возвращать все сообщения, соответствующие остальным критериям
  • ANSWERED - сообщения с выставленным флагом \\ANSWERED
  • BCC "string" - сообщения в поле Bcc: которых присутствует "string"
  • BEFORE "date" - сообщения с Date: до "date"
  • BODY "string" - сообщения содержащие "string" в теле
  • CC "string" - сообщения в поле Cc: которых присутствует "string"
  • DELETED - удаленные сообщения
  • FLAGGED - сообщения с установленным флагом \\FLAGGED (иногда называют "Срочное" или "Важное")
  • FROM "string" - сообщения в поле From: которых присутствует "string"
  • KEYWORD "string" - сообщения с ключевым словом "string"
  • NEW - новые сообщения
  • OLD - старые сообщения
  • ON "date" - сообщения с Date: равным "date"
  • RECENT - означает сообщения с выставленным флагом \\RECENT
  • SEEN - прочтенные сообщения (установлен флаг \\SEEN)
  • SINCE "date" - сообщения с Date: после "date"
  • SUBJECT "string" - сообщения в поле Subject: которых присутствует "string"
  • TEXT "string" - сообщения с текстом "string"
  • TO "string" - сообщения в поле To: которых присутствует "string"
  • UNANSWERED - неотвеченные сообщения
  • UNDELETED - не удаленные сообщения
  • UNFLAGGED - сообщения без установленных флагов
  • UNKEYWORD "string" - сообщения, не имеющие ключевого слова "string"
  • UNSEEN - непрочтенные сообщения

options

Корректные значения options - это SE_UID, что приведет к тому, что в возвращенном массиве вместо номеров сообщений будут содержаться их UID.

charset

Кодировка MIME, в которой будет происходить поиск.

Возвращаемые значения

Возвращает номера сообщений или их UID.

Возвращает FALSE, если сообщения не найдены, либо критерии указанные в criteria некорректны.

Примеры

Пример #1 Пример использования imap_search()

<?php
$conn   = imap_open('{imap.example.com:993/imap/ssl}INBOX', 'foo@example.com', 'pass123', OP_READONLY);

$some   = imap_search($conn, 'SUBJECT "HOWTO be Awesome" SINCE "8 August 2008"', SE_UID);
$msgnos = imap_search($conn, 'ALL');
$uids   = imap_search($conn, 'ALL', SE_UID);

print_r($some);
print_r($msgnos);
print_r($uids);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 4
    [1] => 6
    [2] => 11
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)
Array
(
    [0] => 1
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 11
    [5] => 12
)

Смотрите также

  • imap_listscan() - Получить список почтовых ящиков, имена которых содержат заданную строку


Установить квоту для заданного почтового ящика

  • « imap_search
  • imap_setacl »
  • PHP Manual
  • Функции IMAP
  • Установить квоту для заданного почтового ящика

imap_set_quota

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

imap_set_quota — Установить квоту для заданного почтового ящика

Описание

imap_set_quota ( resource $imap_stream , string $quota_root , int $quota_limit ) : bool

Устанавливает верхний предел квоты для заданного почтового ящика

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

quota_root

Почтовый ящик, для которого устанавливается квота в виде строки в формате IMAP: user.name.

quota_limit

Максимальный размер (в килобайтах) для quota_root

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imap_set_quota()

<?php
$mbox = imap_open("{imap.example.org:143}", "mailadmin", "password");

if (!imap_set_quota($mbox, "user.kalowsky", 3000)) {
    echo "Ошибка при установке квоты\n";
    return;
}

imap_close($mbox);
?>

Примечания

В данный момент эта функция поддерживается только при использовании библиотеки c-client2000 или более свежей.

Заданный imap_stream должен быть открыт от имени администратора почтового сервера, иначе функция завершится с ошибкой.

Смотрите также

  • imap_open() - Открывает поток IMAP к почтовому ящику
  • imap_get_quota() - Получить настройку уровня квоты и статистику использования почтовых ящиков


Установка ACL для заданного почтового ящика

  • « imap_set_quota
  • imap_setflag_full »
  • PHP Manual
  • Функции IMAP
  • Установка ACL для заданного почтового ящика

imap_setacl

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imap_setacl — Установка ACL для заданного почтового ящика

Описание

imap_setacl ( resource $imap_stream , string $mailbox , string $id , string $rights ) : bool

Устанавливает ACL для заданного почтового ящика.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

Имя почтового ящика, более подробно смотрите в описании imap_open()

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

id

Идентификатор пользователя, которому выдаются права.

rights

Права для выдачи. Передача пустой строки означает удаление всех прав.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

В данный момент эта функция поддерживается только при использовании библиотеки c-client2000 или более новой версии.

Смотрите также

  • imap_getacl() - Получить ACL для заданного почтового ящика


Установить флаги на сообщения

  • « imap_setacl
  • imap_sort »
  • PHP Manual
  • Функции IMAP
  • Установить флаги на сообщения

imap_setflag_full

(PHP 4, PHP 5, PHP 7)

imap_setflag_full — Установить флаги на сообщения

Описание

imap_setflag_full ( resource $imap_stream , string $sequence , string $flag [, int $options = NIL ] ) : bool

Сообщает серверу, что надо добавить флаг flag к набору флагов, заданным в sequence сообщениям.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

sequence

Последовательность номеров сообщений.Вы можете перечислить несколько сообщений, используя как разделитель запятую (X,Y), или задать интервал сообщений с помощью двоеточия X:Y

flag

Флаги, которые можно установить: \Seen, \Answered, \Flagged, \Deleted и \Draft, как определено в » RFC2060.

options

Битовая маска, которая может принимать только одно значение:

  • ST_UID - последовательность сообщений задана не их номерами, а с помощью UID

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imap_setflag_full()

<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password")
     or die("не удалось подключиться: " . imap_last_error());

$status = imap_setflag_full($mbox, "2,5", "\\Seen \\Flagged");

echo gettype($status) . "\n";
echo $status . "\n";

imap_close($mbox);
?>

Смотрите также

  • imap_clearflag_full() - Снять с сообщения установленные флаги


Получить и отсортировать сообщения

  • « imap_setflag_full
  • imap_status »
  • PHP Manual
  • Функции IMAP
  • Получить и отсортировать сообщения

imap_sort

(PHP 4, PHP 5, PHP 7)

imap_sort — Получить и отсортировать сообщения

Описание

imap_sort ( resource $imap_stream , int $criteria , int $reverse [, int $options = 0 [, string $search_criteria = NULL [, string $charset = NULL ]]] ) : array

Получает и сортирует номера сообщений в соответствии с заданными параметрами.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

criteria

Одно (и только одно) из следующих значений:

  • SORTDATE - сортировать по дате
  • SORTARRIVAL - дата получения
  • SORTFROM - по первому адресу в поле From
  • SORTSUBJECT - по теме письма
  • SORTTO - по первому адресу в поле To
  • SORTCC - по первому адресу в поле cc
  • SORTSIZE - по размеру сообщения

reverse

Для получения обратной сортировки установите равным 1

options

Параметр options задается битовой маской одной или нескольких констант:

  • SE_UID - возвращать UID, а не номера сообщений
  • SE_NOPREFETCH - не извлекать найденые сообщения

search_criteria

Строка с поисковой критерией в формате IMAP2. Подробнее смотрите в описании функции imap_search().

charset

Кодировка MIME для использования при сортировке строк.

Возвращаемые значения

Возвращает массив номеров сообщений, отсортированных в соответствии с заданными параметрами.


Получить информацию по статусу почтового ящика

  • « imap_sort
  • imap_subscribe »
  • PHP Manual
  • Функции IMAP
  • Получить информацию по статусу почтового ящика

imap_status

(PHP 4, PHP 5, PHP 7)

imap_status — Получить информацию по статусу почтового ящика

Описание

imap_status ( resource $imap_stream , string $mailbox , int $options ) : object

Возвращает информацию по статусу заданного ящика mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

Имя почтового ящика, более подробно смотрите в описании imap_open()

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

options

Допустимые опции:

  • SA_MESSAGES - установить $status->messages, равным количеству писем в ящике
  • SA_RECENT - установить $status->recent, равным количеству новых писем
  • SA_UNSEEN - установить $status->unseen, равным количеству непрочтенных писем
  • SA_UIDNEXT - установить $status->uidnext равным следующему uid, который будет использован в ящике
  • SA_UIDVALIDITY - установить $status->uidvalidity в значение константы, которая меняется, когда UID для почтового ящика больше не могут быть действительным
  • SA_ALL - использовать все перечисленные опции

Возвращаемые значения

Функция возвращает объект, содержащий информацию по статусу. Объект имеет следующие свойства: messages, recent, unseen, uidnext и uidvalidity.

flags также установлен, он содержит битовую маску которая может быть проверена с помощью перечисленных выше констант.

Примеры

Пример #1 Пример использования imap_status()

<?php
$mbox = imap_open("{imap.example.com}", "username", "password", OP_HALFOPEN)
      or die("не удалось подключиться: " . imap_last_error());

$status = imap_status($mbox, "{imap.example.org}INBOX", SA_ALL);
if ($status) {
  echo "Сообщения:   " . $status->messages    . "<br />\n";
  echo "Последние:     " . $status->recent      . "<br />\n";
  echo "Непросмотренные:     " . $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_status
  • imap_thread »
  • PHP Manual
  • Функции IMAP
  • Подписаться на почтовый ящик

imap_subscribe

(PHP 4, PHP 5, PHP 7)

imap_subscribe — Подписаться на почтовый ящик

Описание

imap_subscribe ( resource $imap_stream , string $mailbox ) : bool

Подписаться на новый почтовый ящик.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

Имя почтового ящика. Более подробно читай в разделе про imap_open()

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_unsubscribe() - Отписаться от почтового ящика


Получить дерево связанных сообщений

  • « imap_subscribe
  • imap_timeout »
  • PHP Manual
  • Функции IMAP
  • Получить дерево связанных сообщений

imap_thread

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imap_thread — Получить дерево связанных сообщений

Описание

imap_thread ( resource $imap_stream [, int $options = SE_FREE ] ) : array

Возвращает дерево связанных сообщений.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

options

Возвращаемые значения

imap_thread() возвращает ассоциативный массив содержащий дерево сообщений, связанных с помощью REFERENCES, или FALSE в случае ошибки.

Каждое сообщение в текущем почтовом ящике будет представлено как запись в дереве в результирующем массиве:

  • $thread["XX.num"] - номер текущего сообщения

  • $thread["XX.next"]

  • $thread["XX.branch"]

Примеры

Пример #1 Пример использования imap_thread()

<?php

// Здесь мы выводим связанные сообщения группы новостей в 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

  • « imap_thread
  • imap_uid »
  • PHP Manual
  • Функции IMAP
  • Установить или получить тайм-аут imap

imap_timeout

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

imap_timeout — Установить или получить тайм-аут imap

Описание

imap_timeout ( int $timeout_type [, int $timeout = -1 ] ) : mixed

Устанавливает или получает тайм-аут imap.

Список параметров

timeout_type

Одна из констант: IMAP_OPENTIMEOUT, IMAP_READTIMEOUT, IMAP_WRITETIMEOUT или IMAP_CLOSETIMEOUT.

timeout

Тайм-аут в секундах.

Возвращаемые значения

Если задан параметр timeout, эта функция вернет TRUE или FALSE в зависимости от успешности выполнения.

Если параметр timeout не задан, или выставлен равным -1, то будет возвращено целое число, равное текущей величине тайм-аута, соответствующего заданному типу timeout_type.

Примеры

Пример #1 Пример использования imap_timeout()

<?php

echo "Текущий таймаут чтения " . imap_timeout(IMAP_READTIMEOUT) . "\n";

?>


Получить UID по номеру сообщения

  • « imap_timeout
  • imap_undelete »
  • PHP Manual
  • Функции IMAP
  • Получить UID по номеру сообщения

imap_uid

(PHP 4, PHP 5, PHP 7)

imap_uid — Получить UID по номеру сообщения

Описание

imap_uid ( resource $imap_stream , int $msg_number ) : int

Эта функция возвращает UID для сообщения с заданным номером. UID - это уникальный идентификатор, который не меняется со временем, в то время как номер сообщения в ящике может меняться при изменении контента почтового ящика.

Эта функция обратна функции imap_msgno().

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

Номер сообщения.

Возвращаемые значения

UID заданного письма.

Примечания

Замечание:

Эта функция не поддерживается для почтовых ящиков POP3.

Смотрите также

  • imap_msgno() - Получить номер сообщения с заданным UID


Снимает с сообщения метку удаления

  • « imap_uid
  • imap_unsubscribe »
  • PHP Manual
  • Функции IMAP
  • Снимает с сообщения метку удаления

imap_undelete

(PHP 4, PHP 5, PHP 7)

imap_undelete — Снимает с сообщения метку удаления

Описание

imap_undelete ( resource $imap_stream , int $msg_number [, int $flags = 0 ] ) : bool

Удаляет с заданного сообщения метку удаления, которая была установлена с помощью imap_delete() или imap_mail_move().

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

Номер сообщения

flags

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_delete() - Пометить сообщение для удаления
  • imap_mail_move() - Переместить указанные сообщения в указанный почтовый ящик


Отписаться от почтового ящика

  • « imap_undelete
  • imap_utf7_decode »
  • PHP Manual
  • Функции IMAP
  • Отписаться от почтового ящика

imap_unsubscribe

(PHP 4, PHP 5, PHP 7)

imap_unsubscribe — Отписаться от почтового ящика

Описание

imap_unsubscribe ( resource $imap_stream , string $mailbox ) : bool

Отписаться от почтового ящика mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

Имя почтового ящика. Более подробно смотрите в разделе про imap_open()

Внимание

Если imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_subscribe() - Подписаться на почтовый ящик


Декодирует строку из модифицированной кодировки UTF-7

  • « imap_unsubscribe
  • imap_utf7_encode »
  • PHP Manual
  • Функции IMAP
  • Декодирует строку из модифицированной кодировки UTF-7

imap_utf7_decode

(PHP 4, PHP 5, PHP 7)

imap_utf7_decode — Декодирует строку из модифицированной кодировки UTF-7

Описание

imap_utf7_decode ( string $text ) : string

Декодирует text из модифицированной кодировки UTF-7 в ISO-8859-1.

Это нужно для декодирования имен почтовых ящиков, содержащих в имени символы, не входящие в печатный диапазон ASCII.

Список параметров

text

Текст в модифицированной кодировке UTF-7, как определено в » RFC 2060, секция 5.1.3 (обычная UTF-7 описана в » RFC1642).

Возвращаемые значения

Возвращает строку в кодировке ISO-8859-1, которая содержит ту же последовательность символов, что и text, или FALSE, если text содержит некорректные символы или если text содержит символы не входящие в набор символов ISO-8859-1.

Смотрите также

  • imap_utf7_encode() - Преобразует строку ISO-8859-1 в модифицированную UTF-7


Преобразует строку ISO-8859-1 в модифицированную UTF-7

  • « imap_utf7_decode
  • imap_utf8_to_mutf7 »
  • PHP Manual
  • Функции IMAP
  • Преобразует строку ISO-8859-1 в модифицированную UTF-7

imap_utf7_encode

(PHP 4, PHP 5, PHP 7)

imap_utf7_encode — Преобразует строку ISO-8859-1 в модифицированную UTF-7

Описание

imap_utf7_encode ( string $data ) : string

Преобразует data в текст в модифицированной кодировке UTF-7.

Это нужно для кодирования имен почтовых ящиков, содержащих в имени символы, не входящие в печатный диапазон ASCII.

Список параметров

data

Строка в кодировке ISO-8859-1.

Возвращаемые значения

Возвращает данные data кодированные в модифицированной кодировке UTF-7, как определено в » RFC 2060, секция 5.1.3 (оригинальная кодировка UTF-7 описана в » RFC1642).

Смотрите также

  • imap_utf7_decode() - Декодирует строку из модифицированной кодировки UTF-7


Кодировать строку UTF-8 в измененную UTF-7

  • « imap_utf7_encode
  • imap_utf8 »
  • PHP Manual
  • Функции IMAP
  • Кодировать строку UTF-8 в измененную UTF-7

imap_utf8_to_mutf7

(PHP 5 >= 5.3.0, PHP 7)

imap_utf8_to_mutf7 — Кодировать строку UTF-8 в измененную UTF-7

Описание

imap_utf8_to_mutf7 ( string $in ) : string

Кодировать строку UTF-8 в измененную строку UTF-7 (в соответствии с RFC 2060, раздел 5.1.3).

Замечание:

Эта функция доступна только в случае, если libcclient экспортирует utf8_to_mutf7().

Список параметров

in

Закодированная в UTF-8 строка.

Возвращаемые значения

Возвращает in, конвертированную в измененную UTF-7, или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_mutf7_to_utf8() - Декодировать измененную строку UTF-7 в UTF-8


Преобразует MIME-кодированный текст в UTF-8

  • « imap_utf8_to_mutf7
  • Mail »
  • PHP Manual
  • Функции IMAP
  • Преобразует MIME-кодированный текст в UTF-8

imap_utf8

(PHP 4, PHP 5, PHP 7)

imap_utf8 — Преобразует MIME-кодированный текст в UTF-8

Описание

imap_utf8 ( string $mime_encoded_text ) : string

Преобразует заданный mime_encoded_text в UTF-8.

Список параметров

mime_encoded_text

MIME-кодированная строка. Метод кодирования MIME и спецификация UTF-8 описаны в » RFC2047 и » RFC2044 соответственно.

Возвращаемые значения

Строка в кодировке UTF-8.

Смотрите также

  • imap_mime_header_decode() - Декодировать элементы заголовка


Mail

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Почта
    • ezmlm_hash — Вычисляет хеш-сумму, необходимую для EZMLM
    • mail — Отправляет электронную почту


  • « Mail
  • Установка и настройка »
  • PHP Manual
  • Mail
  • Введение

Введение

Функция mail() позволяет вам отправлять электронную почту.


Требования

Для работы функций Mail PHP должно иметь доступ к бинарным файлам sendmail в вашей системе во время компиляции. Если вы используете другую почтовую программу, такую как qmail или postfix, вы должны быть уверены, что используете соответствующие обертки sendmail, поставляемые с этими продуктами. PHP будет в первую очередь искать файлы sendmail по пути в переменной окружения PATH, и далее: /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib. Очень рекомендуется иметь sendmail доступным из переменной окружения PATH. Также, пользователь под кем был скомпилирован PHP обязан иметь доступ к бинарным файлам sendmail.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Конфигурационные опции отправки писем
Имя | По умолчанию | Место изменения | Список изменений
mail.add_x_header | "0" | PHP_INI_PERDIR | Доступно с PHP 5.3.0.
mail.log | NULL | PHP_INI_PERDIR | Доступно с PHP 5.3.0. (PHP_INI_SYSTEM|PHP_INI_PERDIR)
mail.force_extra_parameters | NULL | PHP_INI_PERDIR | Доступно с PHP 5.0.0. (PHP_INI_SYSTEM|PHP_INI_PERDIR)
SMTP | "localhost" | PHP_INI_ALL |
smtp_port | "25" | PHP_INI_ALL |
sendmail_from | NULL | PHP_INI_ALL |
sendmail_path | "/usr/sbin/sendmail -t -i" | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

mail.add_x_header bool

Добавляет заголовок X-PHP-Originating-Script, который будет содержать UID скрипта и имя файла.

mail.log string

Путь к лог-файлу, в который будут записываться все вызовы функции mail(). Записи в логе содержат полный путь до скрипта, номер строки, адрес получателя To и заголовки.

mail.force_extra_parameters string

Принудительно добавить указанные параметры для отправки в sendmail. Эти параметры всегда заменяют значение пятого параметра в mail(), даже в безопасном режиме.

SMTP string

Использутся только в Windows: домен или IP-адрес SMTP-сервера, к которому будет обращаться PHP при отправке почты функцией mail().

smtp_port int

Использутся только в Windows: порт SMTP-сервера, к которому будет обращаться PHP при отправке почты функцией mail(); по умолчанию 25.

sendmail_from string

Адрес, который будет использоваться в заголовке "From:" в письмах, посылаемых PHP в Windows. Эта директива также устанавливает заголовок "Return-Path:".

sendmail_path string

Путь до программы sendmail, обычно /usr/sbin/sendmail или /usr/lib/sendmail. configure пытается найти sendmail автоматически и установить значение по умолчанию самостоятельно, но если это не удалось, вы можете установить путь здесь.

Системы, не использующие sendmail, должны установить эту директиву в путь до обертки/заменителя sendmail. Например, пользователи » Qmail обычно устанавливают значение /var/qmail/bin/sendmail или /var/qmail/bin/qmail-inject.

qmail-inject не требует дополнительных опций для отправки писем.

Эта директива также работает и в Windows. Если она установлена, smtp, smtp_port и sendmail_from будут проигнорированы и выполнится указанная программа.


  • « Типы ресурсов
  • Почта »
  • PHP Manual
  • Mail
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Почта

Содержание

  • ezmlm_hash — Вычисляет хеш-сумму, необходимую для EZMLM
  • mail — Отправляет электронную почту


Вычисляет хеш-сумму, необходимую для EZMLM

  • « Почта
  • mail »
  • PHP Manual
  • Почта
  • Вычисляет хеш-сумму, необходимую для EZMLM

ezmlm_hash

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ezmlm_hash — Вычисляет хеш-сумму, необходимую для EZMLM

Описание

ezmlm_hash ( string $addr ) : int

ezmlm_hash() вычисляет хеш-сумму, необходимую при хранении почтовых списков EZMLM в базе MySQL.

Список параметров

addr

Хешируемый адрес электронной почты.

Возвращаемые значения

Хеш-сумма параметра addr.

Примеры

Пример #1 Вычисляет хеш-сумму и подписка пользователя на что-либо

<?php

$user = "joecool@example.com";
$hash = ezmlm_hash($user);
$query = sprintf("INSERT INTO sample VALUES (%s, '%s')", $hash, $user);
$db->query($query); // используя интерфейс PHPLIB db

?>


Отправляет электронную почту

  • « ezmlm_hash
  • Mailparse »
  • PHP Manual
  • Почта
  • Отправляет электронную почту

mail

(PHP 4, PHP 5, PHP 7)

mail — Отправляет электронную почту

Описание

mail ( string $to , string $subject , string $message [, mixed $additional_headers [, string $additional_parameters ]] ) : bool

Отправляет электронную почту.

Список параметров

to

Получатель, или получатели письма.

Формат этого параметра должен соответствовать » RFC 2822. Несколько примеров:

  • user@example.com
  • user@example.com, anotheruser@example.com
  • User <user@example.com>
  • User <user@example.com>, Another User <anotheruser@example.com>

subject

Тема отправляемого письма.

Предостережение

Тема должна соответствовать » RFC 2047.

message

Отправляемое сообщение.

Каждая строка должна быть отделена символом CRLF (\r\n). Строки не должны быть длиннее 70 символов.

Предостережение

(Только для Windows) Если PHP передаёт данные напрямую SMTP-серверу и в начале строки стоит точка, то она будет удалена. Чтобы избежать этого замените все такие точки на две.

<?php
$text = str_replace("\n.", "\n..", $text);
?>

additional_headers (необязательный)

Строка или массив, которые будут вставлены в конец отправляемых заголовков письма.

Обычно используется для добавления дополнительных заголовков (From, Cc, and Bcc). Несколько дополнительных заголовков должны быть разделены CRLF (\r\n). Если для составления этого заголовка используются внешние данные, то они должны быть проверены для избежания инъекций нежелательных заголовков.

Если передан массив, то его ключи будут именами заголовка, а значения значениями.

Замечание:

До PHP 5.4.42 и 5.5.27, параметр additional_headers не имел защиты от инъекции. Так что пользователи должны удостовериться, что передаваемые заголовки безопасны и содержат только заголовки. т.е. не содержат несколько переводов строк подряд, что стартует тело сообщения.

Замечание:

При отправке письмо должно содержать заголовок From. Он может быть установлен с помощью параметра additional_headers, или значение по умолчанию может быть установлено в php.ini.

Если заголовок отсутствует, будет сгенерировано сообщение об ошибке вида Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. Заголовок From также определяет заголовок Return-Path в Windows.

Замечание:

Если сообщения не отправляются, попробуйте использовать только LF (\n). Некоторые агенты пересылки сообщений Unix (особенно » qmail) автоматически заменяют LF на CRLF (что приводит к двойному CR, если использовалось CRLF). Используйте эту меру в крайнем случае, так как это нарушает » RFC 2822.

additional_parameters (необязательный)

Параметр additional_parameters может быть использован для передачи дополнительных флагов в виде аргументов командной строки для программы сконфигурированной для отправки писем, указанной директивой sendmail_path. Например, можно установить отправителя письма при использовании sendmail с помощью опции -f.

Параметр автоматически экранируется функцией escapeshellcmd(), чтобы не допустить выполнение команд. Но escapeshellcmd() позволяет добавлять дополнительные параметры. В целях безопасности рекомендуется проверять и очищать этот параметр.

Так как escapeshellcmd() применяется автоматически, то нельзя использовать некоторые символы, допустимые к использованию в email-адресах некоторыми RFC. mail() не допускает такие символы, поэтому в программах, в которых они требуются, рекомендуется использовать альтернативы для их отправки (например фреймворки или библиотеки).

Пользователь, под которым работает веб-сервер должен быть добавлен в список доверенных в конфигурации sendmail для того чтобы избежать добавления заголовка 'X-Warning' при указании отправителя с помощью опции (-f). Для пользователей sendmail - это файл /etc/mail/trusted-users.

Возвращаемые значения

Возвращает TRUE, если письмо было принято для передачи, иначе FALSE.

Важно заметить, что то что письмо было принято для передачи вовсе НЕ означает что оно достигло получателя.

Список изменений

Версия | Описание
7.2.0 | Параметр additional_headers может принимать значения типа массив.
5.4.42, 5.5.27 | Добавлена защита от атак инъекцией в заголовок для параметра additional_headers. Это значит, что множественные последовательные переводы строк более не допустимы.

Примеры

Пример #1 Отправка письма.

Использование функции mail() для отправки простого письма:

<?php
// Сообщение
$message = "Line 1\r\nLine 2\r\nLine 3";

// На случай если какая-то строка письма длиннее 70 символов мы используем wordwrap()
$message = wordwrap($message, 70, "\r\n");

// Отправляем
mail('caffeinated@example.com', 'My Subject', $message);
?>

Пример #2 Отправка письма с дополнительными заголовками.

Добавление простых заголовков, сообщающих почтовому агенту адреса From и Reply-To:

<?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 Отправка письма с дополнительными заголовками, переданными массивом

В этом примере посылается то же письмо, что и в примере выше, но дополнительные заголовки задаются массивом (доступно с PHP 7.2.0).

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = array(
    'From' => 'webmaster@example.com',
    'Reply-To' => 'webmaster@example.com',
    'X-Mailer' => 'PHP/' . phpversion()
);

mail($to, $subject, $message, $headers);
?>

Пример #4 Отправка письма с дополнительными аргументами командной строки.

Параметр additional_parameters может быть использован для передачи дополнительных параметров программе, используемой для отправки писем с помощью директивы sendmail_path.

<?php
mail('nobody@example.com', 'the subject', 'the message', null,
   '-fwebmaster@example.com');
?>

Пример #5 Отправка HTML-сообщения

С помощью функции mail() также можно отправить и HTML-письмо.

<?php
// несколько получателей
$to = 'johny@example.com, sally@example.com'; // обратите внимание на запятую

// тема письма
$subject = 'Birthday Reminders for August';

// текст письма
$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>Johny</td><td>10th</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>
';

// Для отправки HTML-письма должен быть установлен заголовок Content-type
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Дополнительные заголовки
$headers[] = 'To: Mary <mary@example.com>, Kelly <kelly@example.com>';
$headers[] = 'From: Birthday Reminder <birthday@example.com>';
$headers[] = 'Cc: birthdayarchive@example.com';
$headers[] = 'Bcc: birthdaycheck@example.com';

// Отправляем
mail($to, $subject, $message, implode("\r\n", $headers));
?>

Замечание:

Для отправки HTML или других комплексных сообщений рекомендуется использовать PEAR-пакет » PEAR::Mail_Mime.

Примечания

Замечание:

Реализация функции mail() в Windows во многом отличается от реализации в Unix. Во-первых, она не использует локальную программу для составления писем, а работает непосредственно с сокетами, что означает что необходим почтовый агент (MTA), ожидающий соединений на сокете (может быть как на локальном так и на удаленном сервере).

Во-вторых, дополнительные заголовки вроде: From:, Cc:, Bcc: и Date: интерпретируются в первую очередь не, MTA, а PHP.

Поэтому параметр to не должен быть адресом вида "Something <someone@example.com>". Команда mail может неправильно интерпретировать этот адрес во время передачи данных MTA.

Замечание:

Не следует использовать функцию mail() для отправки большого количества писем в цикле. Функция открывает и закрывает соединение с SMTP-сервером для каждого письма, что не очень эффективно.

Для отправки большого количества сообщений обратите внимание на пакеты » PEAR::Mail и » PEAR::Mail_Queue.

Замечание:

Полезные RFC: » RFC 1896, » RFC 2045, » RFC 2046, » RFC 2047, » RFC 2048, » RFC 2049 и » RFC 2822.

Смотрите также

  • mb_send_mail() - Отправка закодированного сообщения
  • imap_mail() - Отправить email
  • » PEAR::Mail
  • » PEAR::Mail_Mime


Mailparse

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Mailparse
    • mailparse_determine_best_xfer_encoding — Определить наилучший путь декодирования
    • mailparse_msg_create — Создает почтовый MIME-ресурс
    • mailparse_msg_extract_part_file — Извлечь/декодировать секцию с сообщением из файла
    • mailparse_msg_extract_part — Извлечь/декодировать секцию с сообщением
    • mailparse_msg_extract_whole_part_file — Извлечь секцию сообщения вместе с заголовками без декодирования
    • mailparse_msg_free — Высвободить MIME-ресурс
    • mailparse_msg_get_part_data — Вернуть ассоциативный массив с информацией о сообщении
    • mailparse_msg_get_part — Возвращает указатель на заданную секцию в mime-сообщении
    • mailparse_msg_get_structure — Получить массив имен mime-секций в заданном сообщении
    • mailparse_msg_parse_file — Разобрать файл
    • mailparse_msg_parse — Инкрементально разбирает данные в буфер
    • mailparse_rfc822_parse_addresses — Разобрать адреса в соответствии с RFC 822
    • mailparse_stream_encode — Кодирует поток из файла источника и пишет в файл получатель.
    • mailparse_uudecode_all — Сканирует данные из указанного файла и извлекает все вложенные файлы, кодированные в uuencode


Введение

Mailparse - это модуль для анализа и работы с почтовыми сообщениями. Модуль работает с сообщениями, совместимыми c » RFC 822 и » RFC 2045 (MIME).

Mailparse не держит в памяти копии обрабатываемых файлов, что очень эффективно с точки зрения ресурсов при обработке объемных сообщений.

Замечание:

Для Mailparse требуется наличие модуля mbstring и он должен быть загружен перед mailparse.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/mailparse.

Для использования этих функций вы должны скомпилировать PHP с поддержкой mailparse используя опцию конфигурации --enable-mailparse .

Пользователям Windows необходимо разрешить php_mailparse.dll в php.ini для использования этих функций. DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Необходимо, что бы модуль mbstring был загружен перед использованием mailparse.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MAILPARSE_EXTRACT_OUTPUT (integer)
MAILPARSE_EXTRACT_STREAM (integer)
MAILPARSE_EXTRACT_RETURN (integer)


Mailparse

Содержание

  • mailparse_determine_best_xfer_encoding — Определить наилучший путь декодирования
  • mailparse_msg_create — Создает почтовый MIME-ресурс
  • mailparse_msg_extract_part_file — Извлечь/декодировать секцию с сообщением из файла
  • mailparse_msg_extract_part — Извлечь/декодировать секцию с сообщением
  • mailparse_msg_extract_whole_part_file — Извлечь секцию сообщения вместе с заголовками без декодирования
  • mailparse_msg_free — Высвободить MIME-ресурс
  • mailparse_msg_get_part_data — Вернуть ассоциативный массив с информацией о сообщении
  • mailparse_msg_get_part — Возвращает указатель на заданную секцию в mime-сообщении
  • mailparse_msg_get_structure — Получить массив имен mime-секций в заданном сообщении
  • mailparse_msg_parse_file — Разобрать файл
  • mailparse_msg_parse — Инкрементально разбирает данные в буфер
  • mailparse_rfc822_parse_addresses — Разобрать адреса в соответствии с RFC 822
  • mailparse_stream_encode — Кодирует поток из файла источника и пишет в файл получатель.
  • mailparse_uudecode_all — Сканирует данные из указанного файла и извлекает все вложенные файлы, кодированные в uuencode


Определить наилучший путь декодирования

  • « Mailparse
  • mailparse_msg_create »
  • PHP Manual
  • Mailparse
  • Определить наилучший путь декодирования

mailparse_determine_best_xfer_encoding

(PECL mailparse >= 0.9.0)

mailparse_determine_best_xfer_encoding — Определить наилучший путь декодирования

Описание

mailparse_determine_best_xfer_encoding ( resource $fp ) : string

Определяет наилучший путь декодирования контента, прочитанного из указанного файлового дескриптора.

Список параметров

fp

Корректный указатель на файл, который должен быть перематываемым.

Возвращаемые значения

Возвращает одну из кодировок, поддерживаемую модулем mbstring.

Примеры

Пример #1 Пример использования mailparse_determine_best_xfer_encoding()

<?php

$fp = fopen('somemail.eml', 'r');
echo 'Best encoding: ' . mailparse_determine_best_xfer_encoding($fp);

?>

Результатом выполнения данного примера будет что-то подобное:

Best encoding: 7bit


Создает почтовый MIME-ресурс

  • « mailparse_determine_best_xfer_encoding
  • mailparse_msg_extract_part_file »
  • PHP Manual
  • Mailparse
  • Создает почтовый MIME-ресурс

mailparse_msg_create

(PECL mailparse >= 0.9.0)

mailparse_msg_create — Создает почтовый MIME-ресурс

Описание

mailparse_msg_create ( void ) : resource

Создает почтовый MIME-ресурс.

Возвращаемые значения

Возвращает обработчик, который можно использовать для разбора сообщения.

Смотрите также

  • mailparse_msg_free() - Высвободить MIME-ресурс
  • mailparse_msg_parse_file() - Разобрать файл


Извлечь/декодировать секцию с сообщением из файла

  • « mailparse_msg_create
  • mailparse_msg_extract_part »
  • PHP Manual
  • Mailparse
  • Извлечь/декодировать секцию с сообщением из файла

mailparse_msg_extract_part_file

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_part_file — Извлечь/декодировать секцию с сообщением из файла

Описание

mailparse_msg_extract_part_file ( resource $mimemail , mixed $filename [, callable $callbackfunc ] ) : string

Извлечь/декодировать секцию с сообщением из указанного файла.

Контент сообщения будет декодирован в соответствии с кодировкой пересылки. Поддерживаются следующие кодировки: base64, quoted-printable и uuencoded.

Список параметров

mimemail

Корректный MIME-ресурс, созданный mailparse_msg_create().

filename

Имя файла или корректный потоковый ресурс.

callbackfunc

Если задано, то в эту функцию будет передано извлеченное сообщение. Если NULL, то извлеченное сообщение будет просто возвращено.

Если не задано, то контент будет направлен на стандартный вывод (stdout).

Возвращаемые значения

Если callbackfunc не NULL, то вернет TRUE в случае успешного выполнения.

Если callbackfunc задана как NULL, вернет извлеченную секцию сообщения в виде строки.

Вернет FALSE в случае возникновения ошибки.

Смотрите также

  • mailparse_msg_extract_part() - Извлечь/декодировать секцию с сообщением
  • mailparse_msg_extract_whole_part_file() - Извлечь секцию сообщения вместе с заголовками без декодирования


Извлечь/декодировать секцию с сообщением

  • « mailparse_msg_extract_part_file
  • mailparse_msg_extract_whole_part_file »
  • PHP Manual
  • Mailparse
  • Извлечь/декодировать секцию с сообщением

mailparse_msg_extract_part

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_part — Извлечь/декодировать секцию с сообщением

Описание

mailparse_msg_extract_part ( resource $mimemail , string $msgbody [, callable $callbackfunc ] ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

mimemail

Корректный MIME-ресурс

msgbody

callbackfunc

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • mailparse_msg_extract_part_file() - Извлечь/декодировать секцию с сообщением из файла
  • mailparse_msg_extract_whole_part_file() - Извлечь секцию сообщения вместе с заголовками без декодирования


Извлечь секцию сообщения вместе с заголовками без декодирования

  • « mailparse_msg_extract_part
  • mailparse_msg_free »
  • PHP Manual
  • Mailparse
  • Извлечь секцию сообщения вместе с заголовками без декодирования

mailparse_msg_extract_whole_part_file

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_whole_part_file — Извлечь секцию сообщения вместе с заголовками без декодирования

Описание

mailparse_msg_extract_whole_part_file ( resource $mimemail , string $filename [, callable $callbackfunc ] ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

mimemail

Корректный MIME-ресурс

filename

callbackfunc

Возвращаемые значения

Смотрите также

  • mailparse_msg_extract_part() - Извлечь/декодировать секцию с сообщением
  • mailparse_msg_extract_part_file() - Извлечь/декодировать секцию с сообщением из файла


Высвободить MIME-ресурс

  • « mailparse_msg_extract_whole_part_file
  • mailparse_msg_get_part_data »
  • PHP Manual
  • Mailparse
  • Высвободить MIME-ресурс

mailparse_msg_free

(PECL mailparse >= 0.9.0)

mailparse_msg_free — Высвободить MIME-ресурс

Описание

mailparse_msg_free ( resource $mimemail ) : bool

Высвобождает MIME-ресурс.

Список параметров

mimemail

Корректный MIME-ресурс, созданный mailparse_msg_create() или mailparse_msg_parse_file().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mailparse_msg_create() - Создает почтовый MIME-ресурс
  • mailparse_msg_parse_file() - Разобрать файл


Вернуть ассоциативный массив с информацией о сообщении

  • « mailparse_msg_free
  • mailparse_msg_get_part »
  • PHP Manual
  • Mailparse
  • Вернуть ассоциативный массив с информацией о сообщении

mailparse_msg_get_part_data

(PECL mailparse >= 0.9.0)

mailparse_msg_get_part_data — Вернуть ассоциативный массив с информацией о сообщении

Описание

mailparse_msg_get_part_data ( resource $mimemail ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

mimemail

Корректный MIME-ресурс.


Возвращает указатель на заданную секцию в mime-сообщении

  • « mailparse_msg_get_part_data
  • mailparse_msg_get_structure »
  • PHP Manual
  • Mailparse
  • Возвращает указатель на заданную секцию в mime-сообщении

mailparse_msg_get_part

(PECL mailparse >= 0.9.0)

mailparse_msg_get_part — Возвращает указатель на заданную секцию в mime-сообщении

Описание

mailparse_msg_get_part ( resource $mimemail , string $mimesection ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

mimemail

Корректный MIME-ресурс.

mimesection


Получить массив имен mime-секций в заданном сообщении

  • « mailparse_msg_get_part
  • mailparse_msg_parse_file »
  • PHP Manual
  • Mailparse
  • Получить массив имен mime-секций в заданном сообщении

mailparse_msg_get_structure

(PECL mailparse >= 0.9.0)

mailparse_msg_get_structure — Получить массив имен mime-секций в заданном сообщении

Описание

mailparse_msg_get_structure ( resource $mimemail ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

mimemail

Корректный MIME-ресурс.


Разобрать файл

  • « mailparse_msg_get_structure
  • mailparse_msg_parse »
  • PHP Manual
  • Mailparse
  • Разобрать файл

mailparse_msg_parse_file

(PECL mailparse >= 0.9.0)

mailparse_msg_parse_file — Разобрать файл

Описание

mailparse_msg_parse_file ( string $filename ) : resource

Разбирает файл. Это оптимальный путь для разбора файла с почтовым сообщением.

Список параметров

filename

Путь к файлу. Файл будет открыт и пропущен через анализатор.

Возвращаемые значения

Возвращает MIME-ресурс, представляющий структуру, или FALSE в случае возникновения ошибки.

Смотрите также

  • mailparse_msg_free() - Высвободить MIME-ресурс
  • mailparse_msg_create() - Создает почтовый MIME-ресурс


Инкрементально разбирает данные в буфер

  • « mailparse_msg_parse_file
  • mailparse_rfc822_parse_addresses »
  • PHP Manual
  • Mailparse
  • Инкрементально разбирает данные в буфер

mailparse_msg_parse

(PECL mailparse >= 0.9.0)

mailparse_msg_parse — Инкрементально разбирает данные в буфер

Описание

mailparse_msg_parse ( resource $mimemail , string $data ) : bool

Инкрементально разбирает данные в заданный MIME-ресурс.

Функция позволяет обрабатывать файл по частям, вместо того, чтобы читать и обрабатывать сразу весь массив данных.

Список параметров

mimemail

Корректный MIME-ресурс.

data

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Разобрать адреса в соответствии с RFC 822

  • « mailparse_msg_parse
  • mailparse_stream_encode »
  • PHP Manual
  • Mailparse
  • Разобрать адреса в соответствии с RFC 822

mailparse_rfc822_parse_addresses

(PECL mailparse >= 0.9.0)

mailparse_rfc822_parse_addresses — Разобрать адреса в соответствии с RFC 822

Описание

mailparse_rfc822_parse_addresses ( string $addresses ) : array

Разбирает список получателей в соответствии с » RFC 822. Список получателей обычно находится в заголовоке To:.

Список параметров

addresses

Строка, содержащая адреса. Например: Wez Furlong <wez@example.com>, doe@example.com

Замечание:

Эта строка не должна содержать название заголовка.

Возвращаемые значения

Возвращает ассоциативный массив для каждого получателя со следующими ключами:

display | Имя получателя. Если эта часть адреса не задана, то будет использовано то же значение, что и для address.
address | Адрес электронной почты
is_group | TRUE, если получатель является группой рассылки и FALSE, если нет.

Примеры

Пример #1 Пример использования mailparse_rfc822_parse_addresses()

<?php

$to = 'Wez Furlong <wez@example.com>, doe@example.com';
var_dump(mailparse_rfc822_parse_addresses($to));

?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  array(3) {
    ["display"]=>
    string(11) "Wez Furlong"
    ["address"]=>
    string(15) "wez@example.com"
    ["is_group"]=>
    bool(false)
  }
  [1]=>
  array(3) {
    ["display"]=>
    string(15) "doe@example.com"
    ["address"]=>
    string(15) "doe@example.com"
    ["is_group"]=>
    bool(false)
  }
}


Кодирует поток из файла источника и пишет в файл получатель.

  • « mailparse_rfc822_parse_addresses
  • mailparse_uudecode_all »
  • PHP Manual
  • Mailparse
  • Кодирует поток из файла источника и пишет в файл получатель.

mailparse_stream_encode

(PECL mailparse >= 0.9.0)

mailparse_stream_encode — Кодирует поток из файла источника и пишет в файл получатель.

Описание

mailparse_stream_encode ( resource $sourcefp , resource $destfp , string $encoding ) : bool

Кодирует с помощью encoding поток из файла источника и пишет в файл получатель.

Список параметров

sourcefp

Корректный файловый дескриптор источника.

destfp

Корректный файловый дескриптор получателя.

encoding

Одна из кодировок, поддерживаемых модулем mbstring.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mailparse_stream_encode()

<?php

// email.eml содержит: hello, this is some text=hello.
$fp = fopen('email.eml', 'r');

$dest = tmpfile();

mailparse_stream_encode($fp, $dest, "quoted-printable");

rewind($dest);

// Отображаем контент нового файла
fpassthru($dest);

?>

Результат выполнения данного примера:

hello, this is some text=3Dhello.


Сканирует данные из указанного файла и извлекает все вложенные файлы, кодированные в uuencode

  • « mailparse_stream_encode
  • vpopmail »
  • PHP Manual
  • Mailparse
  • Сканирует данные из указанного файла и извлекает все вложенные файлы, кодированные в uuencode

mailparse_uudecode_all

(PECL mailparse >= 0.9.0)

mailparse_uudecode_all — Сканирует данные из указанного файла и извлекает все вложенные файлы, кодированные в uuencode

Описание

mailparse_uudecode_all ( resource $fp ) : array

Сканирует данные из указанного файла и извлекает все вложенные файлы, кодированные в uuencode, во временные файлы.

Список параметров

fp

Файловый дескриптор.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий информацию по извлеченным файлам.

filename | Путь к созданному временному файлу
origfilename | Оригинальное имя файла, только для кодированных uuencode
Первый элемент будет содержать тело сообщения. Все последующие - информацию по извлеченным вложениям.

Примеры

Пример #1 Пример использования mailparse_uudecode_all()

<?php

$text = <<<EOD
To: fred@example.com

hello, this is some text hello.
blah blah blah.

begin 644 test.txt
/=&AI<R!I<R!A('1E<W0*
`
end

EOD;

$fp = tmpfile();
fwrite($fp, $text);

$data = mailparse_uudecode_all($fp);

echo "BODY\n";
readfile($data[0]["filename"]);
echo "UUE ({$data[1]['origfilename']})\n";
readfile($data[1]["filename"]);

// Очищаем
unlink($data[0]["filename"]);
unlink($data[1]["filename"]);

?>

Результат выполнения данного примера:

BODY
To: fred@example.com

hello, this is some text hello.
blah blah blah.

UUE (test.txt)
this is a test


vpopmail

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции vpopmail
    • vpopmail_add_alias_domain_ex — Добавить псевдоним к существующему виртуальному домену
    • vpopmail_add_alias_domain — Добавить псевдоним для виртуального домена
    • vpopmail_add_domain_ex — Добавить новый виртуальный домен
    • vpopmail_add_domain — Добавить новый виртуальный домен
    • vpopmail_add_user — Добавить нового пользователя к определенному виртуальному домену
    • vpopmail_alias_add — Вставить виртуальный псевдоним
    • vpopmail_alias_del_domain — Удаляет все виртуальные псевдонимы домена
    • vpopmail_alias_del — Удаляет все виртуальные псевдонимы пользователя
    • vpopmail_alias_get_all — Получить все строки псевдонима для домена
    • vpopmail_alias_get — Получить все строки псевдонима для домена
    • vpopmail_auth_user — Попытка проверки пользователя/домена/пароля
    • vpopmail_del_domain_ex — Удалить виртуальный домен
    • vpopmail_del_domain — Удалить виртуальный домен
    • vpopmail_del_user — Удалить пользователя из виртуального домена
    • vpopmail_error — Получить текстовое сообщение для последней ошибки vpopmail
    • vpopmail_passwd — Изменить пароль виртуального пользователя
    • vpopmail_set_user_quota — Устанавливает квоту для виртуального пользователя


Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/vpopmail.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Типы ресурсов
  • Функции vpopmail »
  • PHP Manual
  • vpopmail
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции vpopmail

Содержание

  • vpopmail_add_alias_domain_ex — Добавить псевдоним к существующему виртуальному домену
  • vpopmail_add_alias_domain — Добавить псевдоним для виртуального домена
  • vpopmail_add_domain_ex — Добавить новый виртуальный домен
  • vpopmail_add_domain — Добавить новый виртуальный домен
  • vpopmail_add_user — Добавить нового пользователя к определенному виртуальному домену
  • vpopmail_alias_add — Вставить виртуальный псевдоним
  • vpopmail_alias_del_domain — Удаляет все виртуальные псевдонимы домена
  • vpopmail_alias_del — Удаляет все виртуальные псевдонимы пользователя
  • vpopmail_alias_get_all — Получить все строки псевдонима для домена
  • vpopmail_alias_get — Получить все строки псевдонима для домена
  • vpopmail_auth_user — Попытка проверки пользователя/домена/пароля
  • vpopmail_del_domain_ex — Удалить виртуальный домен
  • vpopmail_del_domain — Удалить виртуальный домен
  • vpopmail_del_user — Удалить пользователя из виртуального домена
  • vpopmail_error — Получить текстовое сообщение для последней ошибки vpopmail
  • vpopmail_passwd — Изменить пароль виртуального пользователя
  • vpopmail_set_user_quota — Устанавливает квоту для виртуального пользователя


Добавить псевдоним к существующему виртуальному домену

  • « Функции vpopmail
  • vpopmail_add_alias_domain »
  • PHP Manual
  • Функции vpopmail
  • Добавить псевдоним к существующему виртуальному домену

vpopmail_add_alias_domain_ex

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_alias_domain_ex — Добавить псевдоним к существующему виртуальному домену

Описание

vpopmail_add_alias_domain_ex ( string $olddomain , string $newdomain ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Добавить псевдоним для виртуального домена

  • « vpopmail_add_alias_domain_ex
  • vpopmail_add_domain_ex »
  • PHP Manual
  • Функции vpopmail
  • Добавить псевдоним для виртуального домена

vpopmail_add_alias_domain

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_alias_domain — Добавить псевдоним для виртуального домена

Описание

vpopmail_add_alias_domain ( string $domain , string $aliasdomain ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Добавить новый виртуальный домен

  • « vpopmail_add_alias_domain
  • vpopmail_add_domain »
  • PHP Manual
  • Функции vpopmail
  • Добавить новый виртуальный домен

vpopmail_add_domain_ex

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_domain_ex — Добавить новый виртуальный домен

Описание

vpopmail_add_domain_ex ( string $domain , string $passwd [, string $quota [, string $bounce [, bool $apop ]]] ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Добавить новый виртуальный домен

  • « vpopmail_add_domain_ex
  • vpopmail_add_user »
  • PHP Manual
  • Функции vpopmail
  • Добавить новый виртуальный домен

vpopmail_add_domain

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_domain — Добавить новый виртуальный домен

Описание

vpopmail_add_domain ( string $domain , string $dir , int $uid , int $gid ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Добавить нового пользователя к определенному виртуальному домену

  • « vpopmail_add_domain
  • vpopmail_alias_add »
  • PHP Manual
  • Функции vpopmail
  • Добавить нового пользователя к определенному виртуальному домену

vpopmail_add_user

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_user — Добавить нового пользователя к определенному виртуальному домену

Описание

vpopmail_add_user ( string $user , string $domain , string $password [, string $gecos [, bool $apop ]] ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Вставить виртуальный псевдоним

  • « vpopmail_add_user
  • vpopmail_alias_del_domain »
  • PHP Manual
  • Функции vpopmail
  • Вставить виртуальный псевдоним

vpopmail_alias_add

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_add — Вставить виртуальный псевдоним

Описание

vpopmail_alias_add ( string $user , string $domain , string $alias ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Удаляет все виртуальные псевдонимы домена

  • « vpopmail_alias_add
  • vpopmail_alias_del »
  • PHP Manual
  • Функции vpopmail
  • Удаляет все виртуальные псевдонимы домена

vpopmail_alias_del_domain

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_del_domain — Удаляет все виртуальные псевдонимы домена

Описание

vpopmail_alias_del_domain ( string $domain ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Удаляет все виртуальные псевдонимы пользователя

  • « vpopmail_alias_del_domain
  • vpopmail_alias_get_all »
  • PHP Manual
  • Функции vpopmail
  • Удаляет все виртуальные псевдонимы пользователя

vpopmail_alias_del

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_del — Удаляет все виртуальные псевдонимы пользователя

Описание

vpopmail_alias_del ( string $user , string $domain ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получить все строки псевдонима для домена

  • « vpopmail_alias_del
  • vpopmail_alias_get »
  • PHP Manual
  • Функции vpopmail
  • Получить все строки псевдонима для домена

vpopmail_alias_get_all

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_get_all — Получить все строки псевдонима для домена

Описание

vpopmail_alias_get_all ( string $domain ) : array
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получить все строки псевдонима для домена

  • « vpopmail_alias_get_all
  • vpopmail_auth_user »
  • PHP Manual
  • Функции vpopmail
  • Получить все строки псевдонима для домена

vpopmail_alias_get

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_get — Получить все строки псевдонима для домена

Описание

vpopmail_alias_get ( string $alias , string $domain ) : array
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Попытка проверки пользователя/домена/пароля

  • « vpopmail_alias_get
  • vpopmail_del_domain_ex »
  • PHP Manual
  • Функции vpopmail
  • Попытка проверки пользователя/домена/пароля

vpopmail_auth_user

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_auth_user — Попытка проверки пользователя/домена/пароля

Описание

vpopmail_auth_user ( string $user , string $domain , string $password [, string $apop ] ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Удалить виртуальный домен

  • « vpopmail_auth_user
  • vpopmail_del_domain »
  • PHP Manual
  • Функции vpopmail
  • Удалить виртуальный домен

vpopmail_del_domain_ex

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_del_domain_ex — Удалить виртуальный домен

Описание

vpopmail_del_domain_ex ( string $domain ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Удалить виртуальный домен

  • « vpopmail_del_domain_ex
  • vpopmail_del_user »
  • PHP Manual
  • Функции vpopmail
  • Удалить виртуальный домен

vpopmail_del_domain

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_del_domain — Удалить виртуальный домен

Описание

vpopmail_del_domain ( string $domain ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Удалить пользователя из виртуального домена

  • « vpopmail_del_domain
  • vpopmail_error »
  • PHP Manual
  • Функции vpopmail
  • Удалить пользователя из виртуального домена

vpopmail_del_user

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_del_user — Удалить пользователя из виртуального домена

Описание

vpopmail_del_user ( string $user , string $domain ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получить текстовое сообщение для последней ошибки vpopmail

  • « vpopmail_del_user
  • vpopmail_passwd »
  • PHP Manual
  • Функции vpopmail
  • Получить текстовое сообщение для последней ошибки vpopmail

vpopmail_error

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_error — Получить текстовое сообщение для последней ошибки vpopmail

Описание

vpopmail_error ( void ) : string
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Изменить пароль виртуального пользователя

  • « vpopmail_error
  • vpopmail_set_user_quota »
  • PHP Manual
  • Функции vpopmail
  • Изменить пароль виртуального пользователя

vpopmail_passwd

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_passwd — Изменить пароль виртуального пользователя

Описание

vpopmail_passwd ( string $user , string $domain , string $password [, bool $apop ] ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Устанавливает квоту для виртуального пользователя

  • « vpopmail_passwd
  • Математические расширения »
  • PHP Manual
  • Функции vpopmail
  • Устанавливает квоту для виртуального пользователя

vpopmail_set_user_quota

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_set_user_quota — Устанавливает квоту для виртуального пользователя

Описание

vpopmail_set_user_quota ( string $user , string $domain , string $quota ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Математические расширения

  • BC Math — Вычисления с произвольной точностью BCMath
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции BC Math
  • GMP — Вычисления с увеличенной точностью (GNU Multiple Precision)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • GMP Функции
    • GMP — Класс GMP
  • Lapack
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Lapack — The Lapack class
    • LapackException — The LapackException class
  • Math — Математические функции
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Математические функции
  • Статистика
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Статистические Функции
  • Trader — Technical Analysis for Traders
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Trader Функции


Вычисления с произвольной точностью BCMath

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции BC Math
    • bcadd — Сложить 2 числа произвольной точности
    • bccomp — Сравнение двух чисел произвольной точности
    • bcdiv — Операция деления для чисел произвольной точности
    • bcmod — Получает остаток от деления чисел с произвольной точностью
    • bcmul — Умножение двух чисел с произвольной точностью
    • bcpow — Возведение в степень чисел с произвольной точностью
    • bcpowmod — Возводит одно число в степень другого и возвращает остаток от деления результата на третье число
    • bcscale — Устанавливает или получает количество чисел после десятичной точки по умолчанию для всех функций bc math.
    • bcsqrt — Извлекает квадратный корень из числа с заданной точностью
    • bcsub — Вычитает одно число из другого с заданной точностью


Введение

Для вычислений с произвольной точностью PHP предоставляет двоичный калькулятор, который поддерживает числа любого размера и точности, вплоть до 2147483647 (или 0x7FFFFFFF) десятичных знаков, если хватит памяти, представленных в виде строк.

Предостережение

Передача в функции BCMath аргументов типа float, в то время как они ожидают строки могут привести к неожиданным результатам, из-за используемого PHP алгоритма преобразования float в string, например можно получить строку содержащую число в экспоненциальной нотации (который не поддерживается BCMath), или, в зависимости от локали, десятичный разделитель в виде запятой (тогда как BCMath работает только с десятичной точкой).

<?php
$num1 = 0; // (string) 0 => '0'
$num2 = -0.000005; // (string) -0.000005 => '-5.05E-6'
echo bcadd($num1, $num2, 6); // => '0.000000'

setlocale(LC_NUMERIC, 'de_DE'); // десятичная запятая вместо точки
$num2 = 1.2; // (string) 1.2 => '1,2'
echo bcsub($num1, $num2, 1); // => '0.0'
?>


Установка

Функции доступны, только если PHP сконфигурирован с включенной настройкой --enable-bcmath .

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Настройки конфигурации BC-вычислений
Имя | По умолчанию | Место изменения | Список изменений
bcmath.scale | "0" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

bcmath.scale integer

Число десятичных цифр для всех bcmath-функций. См. также bcscale().


  • « Типы ресурсов
  • Функции BC Math »
  • PHP Manual
  • BC Math
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции BC Math

Содержание

  • bcadd — Сложить 2 числа произвольной точности
  • bccomp — Сравнение двух чисел произвольной точности
  • bcdiv — Операция деления для чисел произвольной точности
  • bcmod — Получает остаток от деления чисел с произвольной точностью
  • bcmul — Умножение двух чисел с произвольной точностью
  • bcpow — Возведение в степень чисел с произвольной точностью
  • bcpowmod — Возводит одно число в степень другого и возвращает остаток от деления результата на третье число
  • bcscale — Устанавливает или получает количество чисел после десятичной точки по умолчанию для всех функций bc math.
  • bcsqrt — Извлекает квадратный корень из числа с заданной точностью
  • bcsub — Вычитает одно число из другого с заданной точностью


Сложить 2 числа произвольной точности

  • « Функции BC Math
  • bccomp »
  • PHP Manual
  • Функции BC Math
  • Сложить 2 числа произвольной точности

bcadd

(PHP 4, PHP 5, PHP 7)

bcadd — Сложить 2 числа произвольной точности

Описание

bcadd ( string $left_operand , string $right_operand [, int $scale = 0 ] ) : string

Складывает left_operand с right_operand.

Список параметров

left_operand

Левый операнд (слагаемое) в виде строки.

right_operand

Правый операнд (слагаемое) в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Сумма слагаемых в виде строки.

Примеры

Пример #1 Пример использования bcadd()

<?php

$a = '1.234';
$b = '5';

echo bcadd($a, $b);     // 6
echo bcadd($a, $b, 4);  // 6.2340

?>

Смотрите также

  • bcsub() - Вычитает одно число из другого с заданной точностью


Сравнение двух чисел произвольной точности

  • « bcadd
  • bcdiv »
  • PHP Manual
  • Функции BC Math
  • Сравнение двух чисел произвольной точности

bccomp

(PHP 4, PHP 5, PHP 7)

bccomp — Сравнение двух чисел произвольной точности

Описание

bccomp ( string $left_operand , string $right_operand [, int $scale = 0 ] ) : int

Сравнивает left_operand с right_operand и возвращает целочисленный результат.

Список параметров

left_operand

Левый операнд в виде строки.

right_operand

Правый операнд в виде строки.

scale

Необязательный аргумент scale задает количество цифр после десятичной точки, которое будет участвовать в сравнении.

Возвращаемые значения

Возвращает 0, если числа равны; 1, если left_operand больше, чем right_operand; -1, если меньше.

Примеры

Пример #1 Пример использования bccomp()

<?php

echo bccomp('1', '2') . "\n";   // -1
echo bccomp('1.00001', '1', 3); // 0
echo bccomp('1.00001', '1', 5); // 1

?>


Операция деления для чисел произвольной точности

  • « bccomp
  • bcmod »
  • PHP Manual
  • Функции BC Math
  • Операция деления для чисел произвольной точности

bcdiv

(PHP 4, PHP 5, PHP 7)

bcdiv — Операция деления для чисел произвольной точности

Описание

bcdiv ( string $dividend , string $divisor [, int $scale = 0 ] ) : string

Делит dividend на divisor.

Список параметров

dividend

Делимое в виде строки.

divisor

Делитель в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Возвращает результат деления в виде строки или NULL, если divisor равен 0.

Примеры

Пример #1 Пример использования bcdiv()

<?php

echo bcdiv('105', '6.55957', 3);  // 16.007

?>

Смотрите также

  • bcmul() - Умножение двух чисел с произвольной точностью


Получает остаток от деления чисел с произвольной точностью

  • « bcdiv
  • bcmul »
  • PHP Manual
  • Функции BC Math
  • Получает остаток от деления чисел с произвольной точностью

bcmod

(PHP 4, PHP 5, PHP 7)

bcmod — Получает остаток от деления чисел с произвольной точностью

Описание

bcmod ( string $dividend , string $divisor [, int $scale = 0 ] ) : string

Получает остаток от деления dividend на divisor. Если divisor не равен нулю, результат будет иметь такой же знак, что и dividend.

Список параметров

dividend

Делимое в виде строки.

divisor

Правый операнд (модуль) в виде строки.

Возвращаемые значения

Возвращает остаток от деления в виде строки или NULL, если divisor равен 0.

Список изменений

Версия | Описание
7.2.0 | dividend и divisor больше не обрезаются до целого, так что теперь поведение bcmod() соответствует fmod(), а не оператору %.
7.2.0 | Добавлен параметр scale.

Примеры

Пример #1 Пример использования bcmod()

<?php
bcscale(0);
echo bcmod( '5',  '3'); //  2
echo bcmod( '5', '-3'); //  2
echo bcmod('-5',  '3'); // -2
echo bcmod('-5', '-3'); // -2
?>

Пример #2 Пример использования bcmod() с десятичными знаками

<?php
bcscale(1);
echo bcmod('5.7', '1.3'); // 0.5 с PHP 7.2.0; 0 ранее
?>

Смотрите также

  • bcdiv() - Операция деления для чисел произвольной точности


Умножение двух чисел с произвольной точностью

  • « bcmod
  • bcpow »
  • PHP Manual
  • Функции BC Math
  • Умножение двух чисел с произвольной точностью

bcmul

(PHP 4, PHP 5, PHP 7)

bcmul — Умножение двух чисел с произвольной точностью

Описание

bcmul ( string $left_operand , string $right_operand [, int $scale = 0 ] ) : string

Умножает left_operand на right_operand.

Список параметров

left_operand

Левый операнд (первый множитель) в виде строки.

right_operand

Правый операнд (второй множитель) в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Возвращает результат в виде строки.

Список изменений

Версия | Описание
7.3.0 | Теперь bcmul() возвращает числа с заданной точностью. Раньше завершающие нули в дробной части числа отбрасывались.

Примеры

Пример #1 Пример использования bcmul()

<?php
echo bcmul('1.34747474747', '35', 3); // 47.161
echo bcmul('2', '4'); // 8
?>

Примечания

Замечание:

До PHP 7.3.0, bcmul() могла вернуть результат с меньшим количеством цифр после десятичной точки, чем задает параметр scale. Это могло произойти только в случае, если результату не требуется точность заданная scale. К примеру:

Пример #2 Пример bcmul() с заданной точностью

<?php
echo bcmul('5', '2', 2);     // напечатает "10", а не "10.00"
?>

Смотрите также

  • bcdiv() - Операция деления для чисел произвольной точности


Возведение в степень чисел с произвольной точностью

  • « bcmul
  • bcpowmod »
  • PHP Manual
  • Функции BC Math
  • Возведение в степень чисел с произвольной точностью

bcpow

(PHP 4, PHP 5, PHP 7)

bcpow — Возведение в степень чисел с произвольной точностью

Описание

bcpow ( string $base , string $exponent [, int $scale = 0 ] ) : string

Возводит base в степень exponent.

Список параметров

base

Основание в виде строки.

exponent

Степень в виде строки. Если степень не целое, то она обрезается до целого. Корректные значения степени зависят от используемой платформы, но это как минимум значения от -2147483648 до 2147483647.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Возвращает результат в виде строки.

Список изменений

Версия | Описание
7.3.0 | Теперь bcpow() возвращает числа с заданной точностью. Раньше завершающие нули в дробной части числа отбрасывались.

Примеры

Пример #1 Пример использования bcpow()

<?php

echo bcpow('4.2', '3', 2); // 74.08

?>

Примечания

Замечание:

До PHP 7.3.0 bcpow() могла вернуть результат с меньшим числом цифр после десятичной точки, чем указано в аргументе scale. Так происходило, только когда результату не требуется вся точность, предоставленная в scale. Например:

Пример #2 Пример уменьшения точности в bcpow()

<?php
echo bcpow('5', '2', 2);     // выдаст "25", вместо "25.00"
?>

Смотрите также

  • bcpowmod() - Возводит одно число в степень другого и возвращает остаток от деления результата на третье число
  • bcsqrt() - Извлекает квадратный корень из числа с заданной точностью


Возводит одно число в степень другого и возвращает остаток от деления результата на третье число

  • « bcpow
  • bcscale »
  • PHP Manual
  • Функции BC Math
  • Возводит одно число в степень другого и возвращает остаток от деления результата на третье число

bcpowmod

(PHP 5, PHP 7)

bcpowmod — Возводит одно число в степень другого и возвращает остаток от деления результата на третье число

Описание

bcpowmod ( string $base , string $exponent , string $modulus [, int $scale = 0 ] ) : string

Используйте метод быстрого возведения числа base в степень exponent и получения остатка от деления на modulus.

Список параметров

base

Основание степени в виде строки, содержащее целое число.

exponent

Показатель степени в виде строки, содержащее неотрицательное целое число.

modulus

Модуль в виде строки, содержащий целое число.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Возвращает результат в виде строки или NULL, если modulus равен 0 или exponent отрицательна.

Примечания

Замечание:

Так как этот метод использует операцию деления по модулю, отрицательные числа могут давать неожидаемый результат.

Примеры

Следующие выражения дают одинаковый результат. Однако функция bcpowmod() работает быстрее и может принимать большие значения аргументов.

<?php
$a = bcpowmod($x, $y, $mod);

$b = bcmod(bcpow($x, $y), $mod);

// $a == $b.

?>

Смотрите также

  • bcpow() - Возведение в степень чисел с произвольной точностью
  • bcmod() - Получает остаток от деления чисел с произвольной точностью


Устанавливает или получает количество чисел после десятичной точки по умолчанию для всех функций bc math.

  • « bcpowmod
  • bcsqrt »
  • PHP Manual
  • Функции BC Math
  • Устанавливает или получает количество чисел после десятичной точки по умолчанию для всех функций bc math.

bcscale

(PHP 4, PHP 5, PHP 7)

bcscale — Устанавливает или получает количество чисел после десятичной точки по умолчанию для всех функций bc math.

Описание

bcscale ( int $scale ) : int

Задает количество чисел после десятичной точки по умолчанию для функций bc math, которые не могут явно получить это число в виде аргумента.

bcscale ( void ) : int

Получает текущий масштаб.

Список параметров

scale

Масштаб, число знаков после запятой.

Возвращаемые значения

Возвращает старый масштаб, если используется как сеттер. В противном случае возвращает текущий масштаб.

Список изменений

Версия | Описание
7.3.0 | bcscale() теперь может быть использована для получения текущего масштаба; при установке нового значения, возвратит старое значение масштаба. Раньше scale был обязательным, и bcscale() всегда возвращал TRUE.

Примеры

Пример #1 Пример использования bcscale()

<?php

// масштаб по умолчанию : 3
bcscale(3);
echo bcdiv('105', '6.55957'); // 16.007

// то же самое без bcscale()
echo bcdiv('105', '6.55957', 3); // 16.007

?>


Извлекает квадратный корень из числа с заданной точностью

  • « bcscale
  • bcsub »
  • PHP Manual
  • Функции BC Math
  • Извлекает квадратный корень из числа с заданной точностью

bcsqrt

(PHP 4, PHP 5, PHP 7)

bcsqrt — Извлекает квадратный корень из числа с заданной точностью

Описание

bcsqrt ( string $operand [, int $scale = 0 ] ) : string

Возвращает квадратный корень из operand.

Список параметров

operand

Операнд (подкоренное выражение) в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Возвращает квадратный корень в виде строки или NULL, если operand отрицателен.

Примеры

Пример #1 Пример использования bcsqrt()

<?php

echo bcsqrt('2', 3); // 1.414

?>

Смотрите также

  • bcpow() - Возведение в степень чисел с произвольной точностью


Вычитает одно число из другого с заданной точностью

  • « bcsqrt
  • GMP »
  • PHP Manual
  • Функции BC Math
  • Вычитает одно число из другого с заданной точностью

bcsub

(PHP 4, PHP 5, PHP 7)

bcsub — Вычитает одно число из другого с заданной точностью

Описание

bcsub ( string $left_operand , string $right_operand [, int $scale = 0 ] ) : string

Вычитает число right_operand из left_operand.

Список параметров

left_operand

Левый операнд (уменьшаемое) в виде строки.

right_operand

Правый операнд (вычитаемое) в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Разность в виде строки.

Примеры

Пример #1 Пример использования bcsub()

<?php

$a = '1.234';
$b = '5';

echo bcsub($a, $b);     // -3
echo bcsub($a, $b, 4);  // -3.7660

?>

Смотрите также

  • bcadd() - Сложить 2 числа произвольной точности


Вычисления с увеличенной точностью (GNU Multiple Precision)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • GMP Функции
    • gmp_abs — Абсолютная величина
    • gmp_add — Сложение чисел
    • gmp_and — Побитовое И
    • gmp_binomial — Вычисляет биномиальный коэффициент
    • gmp_clrbit — Сброс бита
    • gmp_cmp — Сравнение чисел
    • gmp_com — Вычисляет дополнение до единицы числа
    • gmp_div_q — Деление чисел
    • gmp_div_qr — Деление чисел и получение частного и остатка
    • gmp_div_r — Остаток от деления чисел
    • gmp_div — Псевдоним gmp_div_q
    • gmp_divexact — Деление чисел без остатка
    • gmp_export — Экспортировать в бинарную строку
    • gmp_fact — Факториал
    • gmp_gcd — Вычисление наибольшего общего делителя
    • gmp_gcdext — Вычисление НОД и множителей
    • gmp_hamdist — Расстояние Хэмминга
    • gmp_import — Импортировать из бинарной строки
    • gmp_init — Создание GMP числа
    • gmp_intval — Преобразование числа GMP в целое число
    • gmp_invert — Инверсия остатка от деления
    • gmp_jacobi — Символ Якоби
    • gmp_kronecker — Символ Кронекера — Якоби
    • gmp_lcm — Вычисляет наименьшее общее кратное
    • gmp_legendre — Символ Лежандра
    • gmp_mod — Вычисление остатка от целочисленного деления
    • gmp_mul — Умножение чисел
    • gmp_neg — Изменение знака числа
    • gmp_nextprime — Поиск следующего простого числа
    • gmp_or — Побитовое ИЛИ
    • gmp_perfect_power — Проверить, является ли число "совершенной степенью"
    • gmp_perfect_square — Проверка числа на точный квадрат
    • gmp_popcount — Количество единиц в двоичной записи числа
    • gmp_pow — Возводит число в степень
    • gmp_powm — Возводит число в степень и производит деление по модулю
    • gmp_prob_prime — Проверяет, является ли число "вероятно простым"
    • gmp_random_bits — Случайное число
    • gmp_random_range — Случайное число
    • gmp_random_seed — Установить начальное состояние RNG
    • gmp_random — Случайное число
    • gmp_root — Извлечь корень степени N и вернуть его целую часть
    • gmp_rootrem — Извлечь корень степени N и вернуть его целую часть и остаток
    • gmp_scan0 — Поиск нуля в числе
    • gmp_scan1 — Поиск единицы в числе
    • gmp_setbit — Установка бита
    • gmp_sign — Знак числа
    • gmp_sqrt — Вычисление квадратного корня
    • gmp_sqrtrem — Квадратный корень с остатком
    • gmp_strval — Преобразование GMP числа в строку
    • gmp_sub — Вычитание чисел
    • gmp_testbit — Проверка, установлен ли бит в 1
    • gmp_xor — Побитовое исключающее ИЛИ
  • GMP — Класс GMP


Введение

Эти функции позволяют работать с целыми числами произвольной длины, используя GNU MP библиотеку.

Замечание:

Большинство GMP функций принимают GMP числа в виде аргументов. Они представлены в документации как объекты класса GMP; однако учтите, что PHP 5.5 и старее работали с GMP числами, как с ресурсами (resource). Большинство этих функций также допускают числовые и строковые аргументы, если есть возможность преобразовать последние в числа. Также, если существует более быстрая функция, которая может работать с переданными аргументами (актуально только для целых чисел), то будет использована именно она, прозрачно для пользователя. Смотрите также функцию gmp_init().

Замечание:

С версии PHP 5.6 и новее, вы можете использовать арифметические, побитовые и операторы сравнения с объектами GMP, возвращаемыми gmp_init() и другими GMP функциями.

Внимание

Если требуется явно задать большое целое число, задавайте его строкой, иначе PHP приведет его к типу float и в результате потеряется точность.

Замечание: На Windows платформах это расширение доступно начиная с PHP 5.1.0.


Требования

Библиотеку GMP можно загрузить тут » http://gmplib.org/#DOWNLOAD. На этом сайте также есть руководство по GMP.

Как минимум требуется GMP версии 2, при этом, некоторые функции требуют более поздней версии библиотеки GMP.


Установка

Чтобы эти функции были доступны, необходимо во время компиляции PHP включить поддержку GMP с помощью настройки --with-gmp .


Типы ресурсов

До PHP 5.6, большинство функций GMP оперировали или возвращали числовые ресурсы GMP, В PHP 5.6 и выше используются объекты GMP, а не числовые ресурсы GMP.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

GMP_ROUND_ZERO (integer)
GMP_ROUND_PLUSINF (integer)
GMP_ROUND_MINUSINF (integer)
GMP_MSW_FIRST (integer)
GMP_LSW_FIRST (integer)
GMP_LITTLE_ENDIAN (integer)
GMP_BIG_ENDIAN (integer)
GMP_NATIVE_ENDIAN (integer)
GMP_VERSION (string)
Версия библиотеки GMP


Примеры

Пример #1 Вычисление факториала с помощью 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";
?>

Этот пример довольно быстро вычислит факториал от 1000 (а это весьма большое число).


GMP Функции

Смотрите также

Другие математические функции можно найти в разделе Математические расширения

Содержание

  • gmp_abs — Абсолютная величина
  • gmp_add — Сложение чисел
  • gmp_and — Побитовое И
  • gmp_binomial — Вычисляет биномиальный коэффициент
  • gmp_clrbit — Сброс бита
  • gmp_cmp — Сравнение чисел
  • gmp_com — Вычисляет дополнение до единицы числа
  • gmp_div_q — Деление чисел
  • gmp_div_qr — Деление чисел и получение частного и остатка
  • gmp_div_r — Остаток от деления чисел
  • gmp_div — Псевдоним gmp_div_q
  • gmp_divexact — Деление чисел без остатка
  • gmp_export — Экспортировать в бинарную строку
  • gmp_fact — Факториал
  • gmp_gcd — Вычисление наибольшего общего делителя
  • gmp_gcdext — Вычисление НОД и множителей
  • gmp_hamdist — Расстояние Хэмминга
  • gmp_import — Импортировать из бинарной строки
  • gmp_init — Создание GMP числа
  • gmp_intval — Преобразование числа GMP в целое число
  • gmp_invert — Инверсия остатка от деления
  • gmp_jacobi — Символ Якоби
  • gmp_kronecker — Символ Кронекера — Якоби
  • gmp_lcm — Вычисляет наименьшее общее кратное
  • gmp_legendre — Символ Лежандра
  • gmp_mod — Вычисление остатка от целочисленного деления
  • gmp_mul — Умножение чисел
  • gmp_neg — Изменение знака числа
  • gmp_nextprime — Поиск следующего простого числа
  • gmp_or — Побитовое ИЛИ
  • gmp_perfect_power — Проверить, является ли число "совершенной степенью"
  • gmp_perfect_square — Проверка числа на точный квадрат
  • gmp_popcount — Количество единиц в двоичной записи числа
  • gmp_pow — Возводит число в степень
  • gmp_powm — Возводит число в степень и производит деление по модулю
  • gmp_prob_prime — Проверяет, является ли число "вероятно простым"
  • gmp_random_bits — Случайное число
  • gmp_random_range — Случайное число
  • gmp_random_seed — Установить начальное состояние RNG
  • gmp_random — Случайное число
  • gmp_root — Извлечь корень степени N и вернуть его целую часть
  • gmp_rootrem — Извлечь корень степени N и вернуть его целую часть и остаток
  • gmp_scan0 — Поиск нуля в числе
  • gmp_scan1 — Поиск единицы в числе
  • gmp_setbit — Установка бита
  • gmp_sign — Знак числа
  • gmp_sqrt — Вычисление квадратного корня
  • gmp_sqrtrem — Квадратный корень с остатком
  • gmp_strval — Преобразование GMP числа в строку
  • gmp_sub — Вычитание чисел
  • gmp_testbit — Проверка, установлен ли бит в 1
  • gmp_xor — Побитовое исключающее ИЛИ


Абсолютная величина

  • « GMP Функции
  • gmp_add »
  • PHP Manual
  • GMP Функции
  • Абсолютная величина

gmp_abs

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_abs — Абсолютная величина

Описание

gmp_abs ( GMP $a ) : GMP

Получение абсолютной величины числа.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Возвращает абсолютную величину аргумента a, в виде GMP числа.

Примеры

Пример #1 Пример использования gmp_abs()

<?php
     $abs1 = gmp_abs("274982683358");
     $abs2 = gmp_abs("-274982683358");

     echo gmp_strval($abs1) . "\n";
     echo gmp_strval($abs2) . "\n";
     ?>

Результат выполнения данного примера:

     274982683358
     274982683358


Сложение чисел

  • « gmp_abs
  • gmp_and »
  • PHP Manual
  • GMP Функции
  • Сложение чисел

gmp_add

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_add — Сложение чисел

Описание

gmp_add ( GMP $a , GMP $b ) : GMP

Складывает два числа.

Список параметров

a

Первое слагаемое.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

b

Второе слагаемое.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Сумма аргументов в виде GMP числа.

Примеры

Пример #1 Пример использования gmp_add()

<?php
$sum = gmp_add("123456789012345", "76543210987655");
echo gmp_strval($sum) . "\n";
?>

Результат выполнения данного примера:

200000000000000


Побитовое И

  • « gmp_add
  • gmp_binomial »
  • PHP Manual
  • GMP Функции
  • Побитовое И

gmp_and

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_and — Побитовое И

Описание

gmp_and ( GMP $a , GMP $b ) : GMP

Вичисляет побитовое И двух GMP чисел.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

b

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Результат побитового И в виде GMP числа.

Примеры

Пример #1 Пример использования gmp_and()

<?php
$and1 = gmp_and("0xfffffffff4", "0x4");
$and2 = gmp_and("0xfffffffff4", "0x8");
echo gmp_strval($and1) . "\n";
echo gmp_strval($and2) . "\n";
?>

Результат выполнения данного примера:

4
0


Вычисляет биномиальный коэффициент

  • « gmp_and
  • gmp_clrbit »
  • PHP Manual
  • GMP Функции
  • Вычисляет биномиальный коэффициент

gmp_binomial

(PHP 7 >= 7.3.0)

gmp_binomial — Вычисляет биномиальный коэффициент

Описание

gmp_binomial ( mixed $n , int $k ) : GMP

Вычисляет биномиальный коэффициент C(n, k).

Список параметров

n

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

k

Возвращаемые значения

Возвращает биномиальный коэффициент C(n, k), или FALSE в случае возникновения ошибки.

Ошибки

Выдает ошибку уровня E_WARNING, если k отрицателен.


Сброс бита

  • « gmp_binomial
  • gmp_cmp »
  • PHP Manual
  • GMP Функции
  • Сброс бита

gmp_clrbit

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_clrbit — Сброс бита

Описание

gmp_clrbit ( GMP $a , int $index ) : void

Сбрасывает (устанавливает в 0) бит на позиции index аргумента a. Индексация начинается с 0.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

index

Индекс очищаемого бита. Индекс 0 указывает на младший бит.

Возвращаемые значения

Ресурс (resource) GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_clrbit()

<?php
    $a = gmp_init("0xff");
    gmp_clrbit($a, 0); // индексация с 0, младший значащий бит
    echo gmp_strval($a) . "\n";
    ?>

Результат выполнения данного примера:

    254

Примечания

Замечание:

В отличие от большинства GMP функций, gmp_clrbit() должна вызываться для уже существующего GMP ресурса (например, созданного с помощью gmp_init()). Функция не создает их автоматически.

Смотрите также

  • gmp_setbit() - Установка бита
  • gmp_testbit() - Проверка, установлен ли бит в 1


Сравнение чисел

  • « gmp_clrbit
  • gmp_com »
  • PHP Manual
  • GMP Функции
  • Сравнение чисел

gmp_cmp

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_cmp — Сравнение чисел

Описание

gmp_cmp ( GMP $a , GMP $b ) : int

Сравнивает два числа.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

b

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Возвращает положительное значение, если a > b, ноль, если a = b и отрицательное значение, если a < b.

Примеры

Пример #1 Пример использования gmp_cmp()

<?php
$cmp1 = gmp_cmp("1234", "1000"); // больше
$cmp2 = gmp_cmp("1000", "1234"); // меньше
$cmp3 = gmp_cmp("1234", "1234"); // равны

echo "$cmp1 $cmp2 $cmp3\n";
?>

Результат выполнения данного примера:

1 -1 0


Вычисляет дополнение до единицы числа

  • « gmp_cmp
  • gmp_div_q »
  • PHP Manual
  • GMP Функции
  • Вычисляет дополнение до единицы числа

gmp_com

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_com — Вычисляет дополнение до единицы числа

Описание

gmp_com ( GMP $a ) : GMP

Возвращает дополнение до единицы числа a.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Возвращает дополнение до единицы числа a в виде числа GMP.

Примеры

Пример #1 Пример использования gmp_com()

<?php
$com = gmp_com("1234");
echo gmp_strval($com) . "\n";
?>

Результат выполнения данного примера:

-1235


Деление чисел

  • « gmp_com
  • gmp_div_qr »
  • PHP Manual
  • GMP Функции
  • Деление чисел

gmp_div_q

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_div_q — Деление чисел

Описание

gmp_div_q ( GMP $a , GMP $b [, int $round = GMP_ROUND_ZERO ] ) : GMP

Делит a на b и возвращает целочисленный результат.

Список параметров

a

Делимое.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

b

Делитель числа a.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

round

Округление результата определяется параметром round, который может принимать следующие значения:

  • GMP_ROUND_ZERO: Дробная часть просто отрезается.
  • GMP_ROUND_PLUSINF: Результат округляется до ближайшего целого в сторону +бесконечности.
  • GMP_ROUND_MINUSINF: Результат округляется до ближайшего целого в сторону -бесконечности.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Ресурс (resource) GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_div_q()

<?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";
     ?>

Результат выполнения данного примера:

     20
     0
     1
     0
     -1

Примечания

Замечание:

Эта функция имеет псевдоним gmp_div().

Смотрите также

  • gmp_div_r() - Остаток от деления чисел
  • gmp_div_qr() - Деление чисел и получение частного и остатка


Деление чисел и получение частного и остатка

  • « gmp_div_q
  • gmp_div_r »
  • PHP Manual
  • GMP Функции
  • Деление чисел и получение частного и остатка

gmp_div_qr

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_div_qr — Деление чисел и получение частного и остатка

Описание

gmp_div_qr ( GMP $n , GMP $d [, int $round = GMP_ROUND_ZERO ] ) : array

Функция делит n на d.

Список параметров

n

Делимое.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

d

Делитель числа n.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

round

В документации к функции gmp_div_q() приведено описание аргумента round.

Возвращаемые значения

Возвращает массив (array), в котором первый элемент содержит [n/d] (целое частное), а второй (n - [n/d] * d) (остаток от деления).

Примеры

Пример #1 Деление GMP чисел

<?php
     $a = gmp_init("0x41682179fbf5");
     $res = gmp_div_qr($a, "0xDEFE75");
     printf("Результат: q - %s, r - %s",
     gmp_strval($res[0]), gmp_strval($res[1]));
     ?>

Смотрите также

  • gmp_div_q() - Деление чисел
  • gmp_div_r() - Остаток от деления чисел


Остаток от деления чисел

  • « gmp_div_qr
  • gmp_div »
  • PHP Manual
  • GMP Функции
  • Остаток от деления чисел

gmp_div_r

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_div_r — Остаток от деления чисел

Описание

gmp_div_r ( GMP $n , GMP $d [, int $round = GMP_ROUND_ZERO ] ) : GMP

Вычисляет остаток от деления нацело числа n на d. Если число n отлично от нуля, результат будет иметь знак этого числа.

Список параметров

n

Делимое.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

d

Делитель числа n.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

round

В документации к функции gmp_div_q() приведено описание аргумента round.

Возвращаемые значения

Остаток в виде GMP числа.

Примеры

Пример #1 Пример использования gmp_div_r()

<?php
     $div = gmp_div_r("105", "20");
     echo gmp_strval($div) . "\n";
     ?>

Результат выполнения данного примера:

     5

Смотрите также

  • gmp_div_q() - Деление чисел
  • gmp_div_qr() - Деление чисел и получение частного и остатка


Псевдоним gmp_div_q

  • « gmp_div_r
  • gmp_divexact »
  • PHP Manual
  • GMP Функции
  • Псевдоним gmp_div_q

gmp_div

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_div — Псевдоним gmp_div_q()

Описание

Эта функция является псевдонимом: gmp_div_q().


Деление чисел без остатка

  • « gmp_div
  • gmp_export »
  • PHP Manual
  • GMP Функции
  • Деление чисел без остатка

gmp_divexact

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_divexact — Деление чисел без остатка

Описание

gmp_divexact ( GMP $n , GMP $d ) : GMP

Делит число n на d, используя быстрый алгоритм деления без остатка. Функция выдает корректный результат, только если заведомо известно, что число d делит n нацело.

Список параметров

n

Делимое.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

d

Делитель числа a.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Ресурс (resource) GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_divexact()

<?php
$div1 = gmp_divexact("10", "2");
echo gmp_strval($div1) . "\n";

$div2 = gmp_divexact("10", "3"); // некорректный результат
echo gmp_strval($div2) . "\n";
?>

Результат выполнения данного примера:

5
2863311534


Экспортировать в бинарную строку

  • « gmp_divexact
  • gmp_fact »
  • PHP Manual
  • GMP Функции
  • Экспортировать в бинарную строку

gmp_export

(PHP 5 >= 5.6.1, PHP 7)

gmp_export — Экспортировать в бинарную строку

Описание

gmp_export ( GMP $gmpnumber [, int $word_size = 1 [, int $options = GMP_MSW_FIRST | GMP_NATIVE_ENDIAN ]] ) : string

Экспортирует GMP-число в бинарную строку

Список параметров

gmpnumber

GMP-число для экспорта

word_size

По умолчанию равно 1. Количество байт в каждом блоке бинарных данных. Обычно используется совместно с заданием параметра options.

options

По умолчанию GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.

Возвращаемые значения

Возвращает строку или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования gmp_export()

<?php
$number = gmp_init(16705);
echo gmp_export($number) . "\n";
?>

Результат выполнения данного примера:

AA

Смотрите также

  • gmp_import() - Импортировать из бинарной строки


Факториал

  • « gmp_export
  • gmp_gcd »
  • PHP Manual
  • GMP Функции
  • Факториал

gmp_fact

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_fact — Факториал

Описание

gmp_fact ( mixed $a ) : GMP

Вычисляет факториал (a!) числа a.

Список параметров

a

Число, факториал которого вычисляется.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Ресурс (resource) GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_fact()

<?php
$fact1 = gmp_fact(5); // 5 * 4 * 3 * 2 * 1
echo gmp_strval($fact1) . "\n";

$fact2 = gmp_fact(50); // 50 * 49 * 48, ... и т.д.
echo gmp_strval($fact2) . "\n";
?>

Результат выполнения данного примера:

120
30414093201713378043612608166064768844377641568960512000000000000


Вычисление наибольшего общего делителя

  • « gmp_fact
  • gmp_gcdext »
  • PHP Manual
  • GMP Функции
  • Вычисление наибольшего общего делителя

gmp_gcd

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_gcd — Вычисление наибольшего общего делителя

Описание

gmp_gcd ( GMP $a , GMP $b ) : GMP

Вычисляет наибольший общий делитель чисел a и b. Результат всегда положителен, даже если одно из чисел, или оба, отрицательные.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

b

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Положительный НОД чисел a и b.

Примеры

Пример #1 Пример использования gmp_gcd()

<?php
$gcd = gmp_gcd("12", "21");
echo gmp_strval($gcd) . "\n";
?>

Результат выполнения данного примера:

3

Смотрите также

  • gmp_lcm() - Вычисляет наименьшее общее кратное


Вычисление НОД и множителей

  • « gmp_gcd
  • gmp_hamdist »
  • PHP Manual
  • GMP Функции
  • Вычисление НОД и множителей

gmp_gcdext

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_gcdext — Вычисление НОД и множителей

Описание

gmp_gcdext ( GMP $a , GMP $b ) : array

Вычисляет величины g, s и t, в выражении a*s + b*t = g = gcd(a,b), где gcd - наибольший общий делитель. Возвращает массив, значения которого соответствуют значениям величин g, s и t.

Эта функция может использоваться для решения Диофантовых уравнений с двумя переменными. Это такие уравнения, которые имеют только целочисленные решения и имеют вид: a*x + b*y = c. За дополнительной информацией обращайтесь на » страницу "Диофантово уравнение" в MathWorld

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

b

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Массив array GMP чисел.

Примеры

Пример #1 Решение линейного Диофантового уравнения

<?php
// Решение уравнения a*s + b*t = g
// где 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 "Ошибка во время решения уравнения\n";
}

// вывод: Решение: 12*2 + 21*-1 = 3
?>


Расстояние Хэмминга

  • « gmp_gcdext
  • gmp_import »
  • PHP Manual
  • GMP Функции
  • Расстояние Хэмминга

gmp_hamdist

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_hamdist — Расстояние Хэмминга

Описание

gmp_hamdist ( GMP $a , GMP $b ) : int

Возвращает расстояние Хэмминга для чисел a и b. Оба операнда должны быть неотрицательными.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Должно быть неотрицательным.

b

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Должно быть неотрицательным.

Возвращаемые значения

Ресурс (resource) GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_hamdist()

<?php
$ham1 = gmp_init("1001010011", 2);
$ham2 = gmp_init("1011111100", 2);
echo gmp_hamdist($ham1, $ham2) . "\n";

/* расстояние Хэмминга эквивалентно: */
echo gmp_popcount(gmp_xor($ham1, $ham2)) . "\n";
?>

Результат выполнения данного примера:

6
6

Смотрите также

  • gmp_popcount() - Количество единиц в двоичной записи числа
  • gmp_xor() - Побитовое исключающее ИЛИ


Импортировать из бинарной строки

  • « gmp_hamdist
  • gmp_init »
  • PHP Manual
  • GMP Функции
  • Импортировать из бинарной строки

gmp_import

(PHP 5 >= 5.6.1, PHP 7)

gmp_import — Импортировать из бинарной строки

Описание

gmp_import ( string $data [, int $word_size = 1 [, int $options = GMP_MSW_FIRST | GMP_NATIVE_ENDIAN ]] ) : GMP

Импортирует GMP-число из бинарной строки

Список параметров

data

Бинарная строка для импорта

word_size

По умолчанию равно 1. Количество байт в каждом блоке бинарных данных. Обычно используется совместно с заданием параметра options.

options

По умолчанию GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.

Возвращаемые значения

Возвращает GMP-число или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования gmp_import()

<?php
$number = gmp_import("\0");
echo gmp_strval($number) . "\n";

$number = gmp_import("\0\1\2");
echo gmp_strval($number) . "\n";
?>

Результат выполнения данного примера:

0
258

Смотрите также

  • gmp_export() - Экспортировать в бинарную строку


Создание GMP числа

  • « gmp_import
  • gmp_intval »
  • PHP Manual
  • GMP Функции
  • Создание GMP числа

gmp_init

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_init — Создание GMP числа

Описание

gmp_init ( mixed $number [, int $base = 0 ] ) : GMP

Создает GMP число из целого числа или строки.

Список параметров

number

Целое число или строка. Число, заданное строкой может быть десятичным, шестнадцатеричным или восьмеричным.

base

Основание системы счисления.

Основание может варьироваться от 2 до 36. Если основание 0 (по умолчанию), основание будет определено, исходя из первых символов: если первые два символа 0x или 0X, число будет интерпретировано как шестнадцатеричное, если первый символ "0", то как восьмеричное, в остальных случаях числа будут восприниматься как десятичные.

Возвращаемые значения

Ресурс (resource) GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Список изменений

Версия | Описание
5.3.2 | Диапазон возможных оснований системы счисления base расширен с значений от 2 до 36, до значений от 2 до 62 и от -2 до -36.

Примечания

Замечание:

Чтобы использовать расширенные диапазоны системы счисления в PHP 5.3.2, PHP должен быть скомпилирован с библиотекой GMP версии 4.2.0 или выше.

Примеры

Пример #1 Создание GMP числа

<?php
$a = gmp_init(123456);
$b = gmp_init("0xFFFFDEBACDFEDF7200");
?>

Примечания

Замечание:

Нет необходимости явно вызывать эту функцию, если требуется вставить целое число или строку на место GMP числа в GMP функциях, как например gmp_add(). Аргументы функций автоматически преобразуются в GMP числа, если такое преобразование требуется и оно возможно, по тем же правилам, что и в gmp_init().


Преобразование числа GMP в целое число

  • « gmp_init
  • gmp_invert »
  • PHP Manual
  • GMP Функции
  • Преобразование числа GMP в целое число

gmp_intval

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_intval — Преобразование числа GMP в целое число

Описание

gmp_intval ( GMP $gmpnumber ) : int

Эта функция преобразует число GMP в обычное целое число PHP (integer).

Список параметров

gmpnumber

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Целое число типа integer преобразованное из gmpnumber.

Примеры

Пример #1 Пример использования gmp_intval()

<?php
// выводит корректный результат
echo gmp_intval("2147483647") . "\n";

// выводит неверный результат, выше границы диапазона PHP integer
echo gmp_intval("2147483648") . "\n";

// выводит корректный результат
echo gmp_strval("2147483648") . "\n";
?>

Результат выполнения данного примера:

2147483647
2147483647
2147483648

Примечания

Внимание

Эта функция возвращает пригодный для дальнейшего применения результат, только если число вписывается в диапазон возможных чисел типа PHP integer (то есть, длинное целое со знаком). Если необходимо просто вывести GMP на экран, используйте gmp_strval().


Инверсия остатка от деления

  • « gmp_intval
  • gmp_jacobi »
  • PHP Manual
  • GMP Функции
  • Инверсия остатка от деления

gmp_invert

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_invert — Инверсия остатка от деления

Описание

gmp_invert ( GMP $a , GMP $b ) : GMP

Вычисляет инверсию остатка от деления числа b на число a.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

b

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

GMP число в случае успешного выполнения либо FALSE, если инверсия не существует.

Примеры

Пример #1 Пример использования gmp_invert()

<?php
echo gmp_invert("5", "10"); // нет инверсии, не выводит ничего, результат FALSE
$invert = gmp_invert("5", "11");
echo gmp_strval($invert) . "\n";
?>

Результат выполнения данного примера:

9


Символ Якоби

  • « gmp_invert
  • gmp_kronecker »
  • PHP Manual
  • GMP Функции
  • Символ Якоби

gmp_jacobi

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_jacobi — Символ Якоби

Описание

gmp_jacobi ( GMP $a , GMP $p ) : int

Вычисляет » Символ Якоби для чисел a и p. p должно быть положительным и нечетным.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

p

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Должно быть положительным и нечетным.

Возвращаемые значения

Ресурс (resource) GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_jacobi()

<?php
echo gmp_jacobi("1", "3") . "\n";
echo gmp_jacobi("2", "3") . "\n";
?>

Результат выполнения данного примера:

1
0

Смотрите также

  • gmp_kronecker() - Символ Кронекера — Якоби
  • gmp_legendre() - Символ Лежандра


Символ Кронекера — Якоби

  • « gmp_jacobi
  • gmp_lcm »
  • PHP Manual
  • GMP Функции
  • Символ Кронекера — Якоби

gmp_kronecker

(PHP 7 >= 7.3.0)

gmp_kronecker — Символ Кронекера — Якоби

Описание

gmp_kronecker ( mixed $a , mixed $b ) : int

Производит вычисление символа Кронекера — Якоби для a и b.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

b

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Возвращает символ Кронекера — Якоби для a и b

Смотрите также

  • gmp_jacobi() - Символ Якоби
  • gmp_legendre() - Символ Лежандра


Вычисляет наименьшее общее кратное

  • « gmp_kronecker
  • gmp_legendre »
  • PHP Manual
  • GMP Функции
  • Вычисляет наименьшее общее кратное

gmp_lcm

(PHP 7 >= 7.3.0)

gmp_lcm — Вычисляет наименьшее общее кратное

Описание

gmp_lcm ( mixed $a , mixed $b ) : GMP

Функция вычисляет наименьшее общее кратное для заданных a и b.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

b

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Ресурс (resource) GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Смотрите также

  • gmp_gcd() - Вычисление наибольшего общего делителя


Символ Лежандра

  • « gmp_lcm
  • gmp_mod »
  • PHP Manual
  • GMP Функции
  • Символ Лежандра

gmp_legendre

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_legendre — Символ Лежандра

Описание

gmp_legendre ( GMP $a , GMP $p ) : int

Вычисляет » символ Лежандра чисел a и p. p должно быть нечетным и положительным.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

p

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Должно быть положительным и нечетным.

Возвращаемые значения

Ресурс (resource) GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_legendre()

<?php
echo gmp_legendre("1", "3") . "\n";
echo gmp_legendre("2", "3") . "\n";
?>

Результат выполнения данного примера:

1
0

Смотрите также

  • gmp_jacobi() - Символ Якоби
  • gmp_kronecker() - Символ Кронекера — Якоби


Вычисление остатка от целочисленного деления

  • « gmp_legendre
  • gmp_mul »
  • PHP Manual
  • GMP Функции
  • Вычисление остатка от целочисленного деления

gmp_mod

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_mod — Вычисление остатка от целочисленного деления

Описание

gmp_mod ( GMP $n , GMP $d ) : GMP

Вычисляет остаток от деления числа n на d. Результат всегда неотрицательный, знак числа d игнорируется.

Список параметров

n

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

d

Делитель (модуль).

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Ресурс (resource) GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_mod()

<?php
$mod = gmp_mod("8", "3");
echo gmp_strval($mod) . "\n";
?>

Результат выполнения данного примера:

2


Умножение чисел

  • « gmp_mod
  • gmp_neg »
  • PHP Manual
  • GMP Функции
  • Умножение чисел

gmp_mul

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_mul — Умножение чисел

Описание

gmp_mul ( GMP $a , GMP $b ) : GMP

Умножает число a на b и возвращает результат.

Список параметров

a

Первый множитель, число умножаемое на b.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

b

Второй множитель, число умножаемое на a.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Ресурс (resource) GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_mul()

<?php
$mul = gmp_mul("12345678", "2000");
echo gmp_strval($mul) . "\n";
?>

Результат выполнения данного примера:

24691356000


Изменение знака числа

  • « gmp_mul
  • gmp_nextprime »
  • PHP Manual
  • GMP Функции
  • Изменение знака числа

gmp_neg

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_neg — Изменение знака числа

Описание

gmp_neg ( GMP $a ) : GMP

Возвращает противоположное относительно нуля число.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Возвращает -a в виде GMP числа.

Примеры

Пример #1 Пример использования gmp_neg()

<?php
$neg1 = gmp_neg("1");
echo gmp_strval($neg1) . "\n";
$neg2 = gmp_neg("-1");
echo gmp_strval($neg2) . "\n";
?>

Результат выполнения данного примера:

-1
1


Поиск следующего простого числа

  • « gmp_neg
  • gmp_or »
  • PHP Manual
  • GMP Функции
  • Поиск следующего простого числа

gmp_nextprime

(PHP 5 >= 5.2.0, PHP 7)

gmp_nextprime — Поиск следующего простого числа

Описание

gmp_nextprime ( int $a ) : GMP

Ищет следующее простое число

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Возвращает следующее простое число, большее, чем a в виде GMP числа.

Примеры

Пример #1 Пример использования gmp_nextprime()

<?php
$prime1 = gmp_nextprime(10); // ближайшее простое число, следующее за 10
$prime2 = gmp_nextprime(-1000); // ближайшее простое число, следующее за -1000

echo gmp_strval($prime1) . "\n";
echo gmp_strval($prime2) . "\n";
?>

Результат выполнения данного примера:

11
2

Примечания

Замечание:

Функция использует вероятностный алгоритм для определения простых чисел и шансы получить составное число чрезвычайно малы.


Побитовое ИЛИ

  • « gmp_nextprime
  • gmp_perfect_power »
  • PHP Manual
  • GMP Функции
  • Побитовое ИЛИ

gmp_or

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_or — Побитовое ИЛИ

Описание

gmp_or ( GMP $a , GMP $b ) : GMP

Вычисляет побитовое ИЛИ двух GMP чисел.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

b

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Ресурс (resource) GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_or()

<?php
$or1 = gmp_or("0xfffffff2", "4");
echo gmp_strval($or1, 16) . "\n";
$or2 = gmp_or("0xfffffff2", "2");
echo gmp_strval($or2, 16) . "\n";
?>

Результат выполнения данного примера:

fffffff6
fffffff2


Проверить, является ли число "совершенной степенью"

  • « gmp_or
  • gmp_perfect_square »
  • PHP Manual
  • GMP Функции
  • Проверить, является ли число "совершенной степенью"

gmp_perfect_power

(PHP 7 >= 7.3.0)

gmp_perfect_power — Проверить, является ли число "совершенной степенью"

Описание

gmp_perfect_power ( mixed $a ) : bool

Проверяет, является ли a совершенной степенью. Целое число является совершенной степенью, если его можно получить возведением меньшего целого числа в целую степень.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Возвращает TRUE, если a является совершенной степенью. В противном случае возвращает FALSE.

Смотрите также

  • gmp_perfect_square() - Проверка числа на точный квадрат


Проверка числа на точный квадрат

  • « gmp_perfect_power
  • gmp_popcount »
  • PHP Manual
  • GMP Функции
  • Проверка числа на точный квадрат

gmp_perfect_square

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_perfect_square — Проверка числа на точный квадрат

Описание

gmp_perfect_square ( GMP $a ) : bool

Проверяет, является ли число точным квадратом, т.е. квадратом целого числа.

Список параметров

a

Проверяемое на точный квадрат число.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Возвращает TRUE, если a является квадратом целого числа, в противном случае возвращает FALSE.

Примеры

Пример #1 Пример использования gmp_perfect_square()

<?php
// 3 * 3, точный квадрат
var_dump(gmp_perfect_square("9"));

// не является точным квадратом
var_dump(gmp_perfect_square("7"));

// 1234567890 * 1234567890, точный квадрат
var_dump(gmp_perfect_square("1524157875019052100"));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(true)

Смотрите также

  • gmp_perfect_power() - Проверить, является ли число "совершенной степенью"
  • gmp_sqrt() - Вычисление квадратного корня
  • gmp_sqrtrem() - Квадратный корень с остатком


Количество единиц в двоичной записи числа

  • « gmp_perfect_square
  • gmp_pow »
  • PHP Manual
  • GMP Функции
  • Количество единиц в двоичной записи числа

gmp_popcount

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_popcount — Количество единиц в двоичной записи числа

Описание

gmp_popcount ( GMP $a ) : int

Возвращает количество единиц в двоичной записи числа.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Количество единиц в двоичной записи числа a, в виде числа (integer).

Примеры

Пример #1 Пример использования gmp_popcount()

<?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";
?>

Результат выполнения данного примера:

3
7


Возводит число в степень

  • « gmp_popcount
  • gmp_powm »
  • PHP Manual
  • GMP Функции
  • Возводит число в степень

gmp_pow

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_pow — Возводит число в степень

Описание

gmp_pow ( GMP $base , int $exp ) : GMP

Возводит число base в степень exp.

Список параметров

base

Основание степени.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

exp

Положительный показатель степени числа base.

Возвращаемые значения

Новое (результирующее) GMP число. Результатом примера 0^0 будет 1.

Примеры

Пример #1 Пример использования gmp_pow()

<?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); // Отрицательный показатель степени вызовет предупреждение
echo gmp_strval($pow3) . "\n";
?>

Результат выполнения данного примера:

2147483648
1


Возводит число в степень и производит деление по модулю

  • « gmp_pow
  • gmp_prob_prime »
  • PHP Manual
  • GMP Функции
  • Возводит число в степень и производит деление по модулю

gmp_powm

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_powm — Возводит число в степень и производит деление по модулю

Описание

gmp_powm ( GMP $base , GMP $exp , GMP $mod ) : GMP

Вычисляет (base возводится в степень exp) остаток от целочисленного деления на mod. Если exp отрицателен, результат не определен.

Список параметров

base

Основание степени.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

exp

Положительный показатель степени, в которую возводится base.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

mod

Делитель, остаток от целочисленного деления на который будет возвращен.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Новое GMP число (результат операции).

Примеры

Пример #1 Пример использования gmp_powm()

<?php
$pow1 = gmp_powm("2", "31", "2147483649");
echo gmp_strval($pow1) . "\n";
?>

Результат выполнения данного примера:

2147483648


Проверяет, является ли число "вероятно простым"

  • « gmp_powm
  • gmp_random_bits »
  • PHP Manual
  • GMP Функции
  • Проверяет, является ли число "вероятно простым"

gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_prob_prime — Проверяет, является ли число "вероятно простым"

Описание

gmp_prob_prime ( GMP $a [, int $reps = 10 ] ) : int

Функция использует тест Миллера-Рабина для определения, является ли число простым.

Список параметров

a

Число, для которого проводится проверка.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

reps

Допустимые значения аргумента reps лежат в диапазоне от 5 до 10 (по умолчанию 10); чем больше это число, тем меньше вероятность, что непростые числа пройдут этот тест и определятся, как "возможно простые".

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Если функция возвращает 0, a точно не является простым. Если возвращает 1, то a "возможно" простое. Если возвращает 2, то a точно простое.

Примеры

Пример #1 Пример использования gmp_prob_prime()

<?php
// по определению не является простым
echo gmp_prob_prime("6") . "\n";

// возможно простое
echo gmp_prob_prime("1111111111111111111") . "\n";

// по определению простое
echo gmp_prob_prime("11") . "\n";
?>

Результат выполнения данного примера:

0
1
2


Случайное число

  • « gmp_prob_prime
  • gmp_random_range »
  • PHP Manual
  • GMP Функции
  • Случайное число

gmp_random_bits

(PHP 5 >= 5.6.3, PHP 7)

gmp_random_bits — Случайное число

Описание

gmp_random_bits ( int $bits ) : GMP

Генерирует случайное число. Число будет в диапазоне от 0 до (2 ** bits) - 1.

Параметр bits должен быть больше 0, а максимальное значение ограничено только доступной оперативной памятью.

Список параметров

bits

Количество бит.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Случайное GMP-число.

Примеры

Пример #1 Пример использования gmp_random_bits()

<?php
$rand1 = gmp_random_bits(3); // случайное число от 0 до 7
$rand2 = gmp_random_bits(5); // случайное число от 0 до 31

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

Результат выполнения данного примера:

3
15


Случайное число

  • « gmp_random_bits
  • gmp_random_seed »
  • PHP Manual
  • GMP Функции
  • Случайное число

gmp_random_range

(PHP 5 >= 5.6.3, PHP 7)

gmp_random_range — Случайное число

Описание

gmp_random_range ( GMP $min , GMP $max ) : GMP

Генерирует случайное число в диапазоне от min до max.

min и max могут быть отрицательными, но min в любом случае должно быть меньше max.

Список параметров

min

GMP-число, являющееся нижней границей диапазона

max

GMP-число, являющееся верхней границей диапазона

Возвращаемые значения

Случайное GMP-число.

Примеры

Пример #1 Пример использования gmp_random_range()

<?php
$rand1 = gmp_random_range(0, 100);    // случайное число от 0 до 100
$rand2 = gmp_random_range(-100, -10); // случайное число от -100 до -10

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

Результат выполнения данного примера:

42
-67


Установить начальное состояние RNG

  • « gmp_random_range
  • gmp_random »
  • PHP Manual
  • GMP Функции
  • Установить начальное состояние RNG

gmp_random_seed

(PHP 7)

gmp_random_seed — Установить начальное состояние RNG

Описание

gmp_random_seed ( mixed $seed ) : void

Список параметров

seed

Начальное состояние для функций gmp_random(),
gmp_random_bits() и
gmp_random_range().

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Возвращает NULL в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Выводит E_WARNING и возвращает FALSE, если значение seed некорректно.

Примеры

Пример #1 Пример использования gmp_random_seed()

<?php
// установка начального состояния
gmp_random_seed(100);

var_dump(gmp_strval(gmp_random(1)));

// изменим начальное состояние
gmp_random_seed(gmp_init(-100));

var_dump(gmp_strval(gmp_random_bits(10)));

// зададим некорректное начальное состояние
var_dump(gmp_random_seed('not a number'));

Результат выполнения данного примера:

string(20) "15370156633245019617"
string(3) "683"

Warning: gmp_random_seed(): Unable to convert variable to GMP - string is not an integer in %s on line %d
bool(false)

Смотрите также

  • gmp_init() - Создание GMP числа
  • gmp_random() - Случайное число
  • gmp_random_bits() - Случайное число
  • gmp_random_range() - Случайное число


Случайное число

  • « gmp_random_seed
  • gmp_root »
  • PHP Manual
  • GMP Функции
  • Случайное число

gmp_random

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_random — Случайное число

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.2.0 и ее использование крайне не рекомендовано.

Описание

gmp_random ([ int $limiter = 20 ] ) : GMP

Генерирует случайное число. Число будет лежать в пределах от нуля до (2 ** n) - 1, где n - это число, представляющее из себя произведение числа limiter и количества бит в лимбе (limb). Если число limiter отрицательное, то будет возвращен отрицательный результат.

Лимб (дословно конечность) - внутренний GMP механизм. Технически это часть числа, помещающаяся в одно машинное слово. Количество бит в нем может различаться в разных системах. В основном это либо 32, либо 64, но это не гарантируется.

Список параметров

limiter

Ограничитель.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Случайное GMP число.

Примеры

Пример #1 Пример использования gmp_random()

<?php
$rand1 = gmp_random(1); // случайное число от 0 до 1 * бит на лимб
$rand2 = gmp_random(2); // случайное число от 0 до 2 * бит на лимб

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

Результат выполнения данного примера:

1915834968
8642564075890328087


Извлечь корень степени N и вернуть его целую часть

  • « gmp_random
  • gmp_rootrem »
  • PHP Manual
  • GMP Функции
  • Извлечь корень степени N и вернуть его целую часть

gmp_root

(PHP 5 >= 5.6.0, PHP 7)

gmp_root — Извлечь корень степени N и вернуть его целую часть

Описание

gmp_root ( GMP $a , int $nth ) : GMP

Извлекает корень степени nth из a и возвращает целочисленную часть результата.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

nth

Положительное число степени корня a.

Возвращаемые значения

Целочисленную часть результата извлечения корня в виде GMP-числа.


Извлечь корень степени N и вернуть его целую часть и остаток

  • « gmp_root
  • gmp_scan0 »
  • PHP Manual
  • GMP Функции
  • Извлечь корень степени N и вернуть его целую часть и остаток

gmp_rootrem

(PHP 5 >= 5.6.0, PHP 7)

gmp_rootrem — Извлечь корень степени N и вернуть его целую часть и остаток

Описание

gmp_rootrem ( GMP $a , int $nth ) : array

Извлекает корень степени nth из a, возвращает его целую часть и остаток (остаток вычисляется путем вычитания из первоначального числа целочисленного результата в степени nth).

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

nth

Положительное число степени корня a.

Возвращаемые значения

Массив с двумя элементами, первый из которых равен целочисленной компоненте результата, а второй остатку. Оба элемента возвращаются в виде GMP-чисел.


Поиск нуля в числе

  • « gmp_rootrem
  • gmp_scan1 »
  • PHP Manual
  • GMP Функции
  • Поиск нуля в числе

gmp_scan0

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_scan0 — Поиск нуля в числе

Описание

gmp_scan0 ( GMP $a , int $start ) : int

Сканирует a, начиная с бита start, пока не найдет бит установленный в 0.

Список параметров

a

Число для сканирования.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

start

Бит начала сканирования.

Возвращаемые значения

Возвращает индекс найденного бита в виде числа (integer). Индексация начинается с нуля.

Примеры

Пример #1 Пример использования gmp_scan0()

<?php
// "0" бит найдет на позиции 3. поиск начинается с 0
$s1 = gmp_init("10111", 2);
echo gmp_scan0($s1, 0) . "\n";

// "0" бит найдет на позиции 7. поиск начинается с 5
$s2 = gmp_init("101110000", 2);
echo gmp_scan0($s2, 5) . "\n";
?>

Результат выполнения данного примера:

3
7


Поиск единицы в числе

  • « gmp_scan0
  • gmp_setbit »
  • PHP Manual
  • GMP Функции
  • Поиск единицы в числе

gmp_scan1

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_scan1 — Поиск единицы в числе

Описание

gmp_scan1 ( GMP $a , int $start ) : int

Сканирует a, начиная с бита start, пока не найдет бит установленный в 1.

Список параметров

a

Сканируемое число.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

start

Бит начала поиска.

Возвращаемые значения

Возвращает индекс найденного бита в виде числа (integer). Если таких нет, будет возвращено -1.

Примеры

Пример #1 Пример использования gmp_scan1()

<?php
// "1" бит найден в позиции 3. Поиск начинается с 0
$s1 = gmp_init("01000", 2);
echo gmp_scan1($s1, 0) . "\n";

// "1" бит найден в позиции 9. Поиск начинается с 5
$s2 = gmp_init("01000001111", 2);
echo gmp_scan1($s2, 5) . "\n";
?>

Результат выполнения данного примера:

3
9


Установка бита

  • « gmp_scan1
  • gmp_sign »
  • PHP Manual
  • GMP Функции
  • Установка бита

gmp_setbit

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_setbit — Установка бита

Описание

gmp_setbit ( GMP $a , int $index [, bool $bit_on = TRUE ] ) : void

Устанавливает в 1 бит с индексом index в числе a.

Список параметров

a

Изменяемое значение.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

index

Индекс устанавливаемого бита. Индекс 0 указывает на младший бит.

bit_on

True для установки бита (установки в 1/включен); false для его очистки (установки в 0/выключен).

Возвращаемые значения

Ресурс (resource) GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_setbit() - 0 индекс

<?php
$a = gmp_init("2"); //
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 0); // 0b10 now becomes 0b11
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

Результат выполнения данного примера:

2 -> 0b10
3 -> 0b11

Пример #2 Пример использования gmp_setbit() - 1 индекс

<?php
$a = gmp_init("0xfd");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 1); // index starts at 0
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

Результат выполнения данного примера:

253 -> 0b11111101
255 -> 0b11111111

Пример #3 Пример использования gmp_setbit() очистка бита

<?php
$a = gmp_init("0xff");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 0, false); // clear bit at index 0
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

Результат выполнения данного примера:

255 -> 0b11111111
254 -> 0b11111110

Примечания

Замечание:

В отличие от большинства GMP функций, gmp_setbit() должна вызываться для уже существующего GMP ресурса (например, созданного функцией gmp_init()). Число не будет создаваться автоматически.

Смотрите также

  • gmp_clrbit() - Сброс бита
  • gmp_testbit() - Проверка, установлен ли бит в 1


Знак числа

  • « gmp_setbit
  • gmp_sqrt »
  • PHP Manual
  • GMP Функции
  • Знак числа

gmp_sign

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_sign — Знак числа

Описание

gmp_sign ( GMP $a ) : int

Проверяет знак числа.

Список параметров

a

Число GMP (resource) в PHP 5.5 и ранее, объект GMP в PHP 5.6 и новее, либо строка, содержащая число, которую можно преобразовать к типу integer.

Возвращаемые значения

Возвращает 1, если a положительное; -1, если a отрицательное; и 0, если a равно нулю.

Примеры

Пример #1 Пример использования gmp_sign()

<?php
// положительное
echo gmp_sign("500") . "\n";

// отрицательное
echo gmp_sign("-500") . "\n";

// ноль
echo gmp_sign("0") . "\n";
?>

Результат выполнения данного примера:

1
-1
0

Смотрите также

  • gmp_abs() - Абсолютная величина
  • abs() - Абсолютное значение (модуль числа)


Вычисление квадратного корня

  • « gmp_sign
  • gmp_sqrtrem »
  • PHP Manual
  • GMP Функции
  • Вычисление квадратного корня

gmp_sqrt

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_sqrt — Вычисление квадратного корня

Описание

gmp_sqrt ( GMP $a ) : GMP

Вычисляет квадратный корень числа a.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Целая часть корня в виде GMP числа.

Примеры

Пример #1 Пример использования gmp_sqrt()

<?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";
?>

Результат выполнения данного примера:

3
2
1234567890


Квадратный корень с остатком

  • « gmp_sqrt
  • gmp_strval »
  • PHP Manual
  • GMP Функции
  • Квадратный корень с остатком

gmp_sqrtrem

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_sqrtrem — Квадратный корень с остатком

Описание

gmp_sqrtrem ( GMP $a ) : array

Вычисляет квадратный корень числа, с остатком.

Список параметров

a

Число, из которого извлекается корень.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Возвращает массив, в котором первый элемент - целая часть корня из числа a, а второй - остаток (т.е. разность чисел a и квадрата первого элемента массива).

Примеры

Пример #1 Пример использования gmp_sqrtrem()

<?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";
?>

Результат выполнения данного примера:

3, 0
2, 3
1024, 0


Преобразование GMP числа в строку

  • « gmp_sqrtrem
  • gmp_sub »
  • PHP Manual
  • GMP Функции
  • Преобразование GMP числа в строку

gmp_strval

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_strval — Преобразование GMP числа в строку

Описание

gmp_strval ( GMP $gmpnumber [, int $base = 10 ] ) : string

Преобразует GMP число в строку в системе счисления base. По умолчанию числа преобразуются в десятеричной системе счисления.

Список параметров

gmpnumber

GMP число для конвертации.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

base

Система счисления возвращаемого числа. По умолчанию - 10. Возможные значения: от 2 до 62 и от -2 до -36.

Возвращаемые значения

Число в виде строки (string).

Список изменений

Версия | Описание
5.3.2 | Диапазон возможных систем счисления base расширен со значений 2 - 36, до 2 - 62 и -2 - -36.

Примечания

Замечание:

Для использования расширенного диапазона систем счисления введенного в PHP 5.3.2, PHP должен быть скомпилирован с библиотекой GMP версии 4.2.0 или выше.

Примеры

Пример #1 Преобразование GMP числа в строку

<?php
$a = gmp_init("0x41682179fbf5");
printf("Десятичное: %s, 36-ричное: %s", gmp_strval($a), gmp_strval($a,36));
?>


Вычитание чисел

  • « gmp_strval
  • gmp_testbit »
  • PHP Manual
  • GMP Функции
  • Вычитание чисел

gmp_sub

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_sub — Вычитание чисел

Описание

gmp_sub ( GMP $a , GMP $b ) : GMP

Вычитает число b из числа a и возвращает результат.

Список параметров

a

Уменьшаемое.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

b

Вычитаемое из числа a.

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Ресурс (resource) GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_sub()

<?php
$sub = gmp_sub("281474976710656", "4294967296"); // 2^48 - 2^32
echo gmp_strval($sub) . "\n";
?>

Результат выполнения данного примера:

281470681743360


Проверка, установлен ли бит в 1

  • « gmp_sub
  • gmp_xor »
  • PHP Manual
  • GMP Функции
  • Проверка, установлен ли бит в 1

gmp_testbit

(PHP 5 >= 5.3.0, PHP 7)

gmp_testbit — Проверка, установлен ли бит в 1

Описание

gmp_testbit ( GMP $a , int $index ) : bool

Проверяет, установлен ли заданный бит в 1.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

index

Проверяемый бит

Возвращаемые значения

Возвращает TRUE, если бит установлен в $a, иначе FALSE.

Ошибки

Выбрасывается ошибка уровня E_WARNING, если index меньше нуля, и возвращается FALSE.

Примеры

Пример #1 Пример использования gmp_testbit()

<?php
$n = gmp_init("1000000");
var_dump(gmp_testbit($n, 1));
gmp_setbit($n, 1);
var_dump(gmp_testbit($n, 1));
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • gmp_setbit() - Установка бита
  • gmp_clrbit() - Сброс бита


Побитовое исключающее ИЛИ

  • « gmp_testbit
  • GMP »
  • PHP Manual
  • GMP Функции
  • Побитовое исключающее ИЛИ

gmp_xor

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_xor — Побитовое исключающее ИЛИ

Описание

gmp_xor ( GMP $a , GMP $b ) : GMP

Вычисляет побитовое исключающее ИЛИ (XOR) двух GMP чисел.

Список параметров

a

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

b

Либо ресурс (resource) номера GMP в PHP 5.5 и более ранних версиях, объект GMP в PHP 5.6 и более поздних версиях, либо числовая строка при условии, что можно преобразовать последнюю в число.

Возвращаемые значения

Ресурс (resource) GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_xor()

<?php
$xor1 = gmp_init("1101101110011101", 2);
$xor2 = gmp_init("0110011001011001", 2);

$xor3 = gmp_xor($xor1, $xor2);

echo gmp_strval($xor3, 2) . "\n";
?>

Результат выполнения данного примера:

1011110111000100


Класс GMP

(PHP 5 >= 5.6.0, PHP 7)

Введение

Номер GMP. Поддержка следующих объектов перезагружена arithmetic, bitwise и comparison операторы.

Замечание:

Объектно-ориентированный интерфейс для манипуляций с объектами GMP отсутствует. Используйте процедурный GMP API.

GMP implements Serializable {
}


Lapack

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Lapack — The Lapack class
    • Lapack::eigenValues — This function returns the eigenvalues for a given square matrix
    • Lapack::identity — Return an identity matrix
    • Lapack::leastSquaresByFactorisation — Calculate the linear least squares solution of a matrix using QR factorisation
    • Lapack::leastSquaresBySVD — Solve the linear least squares problem, using SVD
    • Lapack::pseudoInverse — Calculate the inverse of a matrix
    • Lapack::singularValues — Calculated the singular values of a matrix
    • Lapack::solveLinearEquation — Solve a system of linear equations
  • LapackException — The LapackException class


Введение

LAPACK is written in Fortran 90 and provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. This extension wraps the LAPACKE C bindings to allow access to several processes exposed by the library. Most functions work with arrays of arrays, representing rectangular matrices in row major order - so a two by two matrix [1 2; 3 4] would be array(array(1, 2), array(3, 4))


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Lapack requires the LAPACK and LAPACKE libraries.


Установка

Most distribution LAPACK packages do not include lapacke, so the easiest method is to build from source:

  svn co https://icl.cs.utk.edu/svn/lapack-dev/lapack/trunk lapack
  cd lapack
  mkdir build
  cd build
  cmake -D BUILD_SHARED_LIBS=ON -D LAPACKE=ON ../
  make
  sudo make install


  • « Типы ресурсов
  • Lapack »
  • PHP Manual
  • Lapack
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


The Lapack class

(PECL lapack >= 0.1.0)

Введение

LAPACK is written in Fortran 90 and provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. This extension wraps the LAPACKE C bindings to allow access to several processes exposed by the library. Most functions work with arrays of arrays, representing rectangular matrices in row major order - so a two by two matrix [1 2; 3 4] would be array(array(1, 2), array(3, 4)).

All of the functions are called statically, for example $eig = Lapack::eigenvalues($a);

Обзор классов

Lapack {
/* Методы */
public static eigenValues ( array $a [, array $left [, array $right ]] ) : array
public static identity ( int $n ) : array
public static leastSquaresByFactorisation ( array $a , array $b ) : array
public static leastSquaresBySVD ( array $a , array $b ) : array
public static pseudoInverse ( array $a ) : array
public static singularValues ( array $a ) : array
public static solveLinearEquation ( array $a , array $b ) : array
}

Содержание

  • Lapack::eigenValues — This function returns the eigenvalues for a given square matrix
  • Lapack::identity — Return an identity matrix
  • Lapack::leastSquaresByFactorisation — Calculate the linear least squares solution of a matrix using QR factorisation
  • Lapack::leastSquaresBySVD — Solve the linear least squares problem, using SVD
  • Lapack::pseudoInverse — Calculate the inverse of a matrix
  • Lapack::singularValues — Calculated the singular values of a matrix
  • Lapack::solveLinearEquation — Solve a system of linear equations


This function returns the eigenvalues for a given square matrix

  • « Lapack
  • Lapack::identity »
  • PHP Manual
  • Lapack
  • This function returns the eigenvalues for a given square matrix

Lapack::eigenValues

(PECL lapack >= 0.1.0)

Lapack::eigenValues — This function returns the eigenvalues for a given square matrix

Описание

public static Lapack::eigenValues ( array $a [, array $left [, array $right ]] ) : array

Calculate the eigenvalues for a square matrix, and optionally calculate the left and right eigenvectors.

Список параметров

a

The matrix to calculate the eigenvalues for.

left

Optional parameter - if an array is passed here, it will be filled with the left eigenvectors

right

Optional parameter - if an array is passed here, it will be filled with the right eigenvectors

Возвращаемые значения

Returns an array of arrays representing the eigenvalues for the array.

Примеры

Пример #1 Using Lapack::eigenValues():

<?php

 $a = array(
     array(-1.01,   0.86,  -4.60,  3.31,  -4.81  ),
     array( 3.98,   0.53,  -7.04,  5.29,   3.55  ),
     array( 3.30,   8.26,  -3.89,  8.20,  -1.51  ),
     array( 4.43,   4.96,  -7.66, -7.33,   6.18  ),
     array( 7.31,  -6.43,  -6.16,  2.47,   5.58  ),
 );

 $result = Lapack::eigenValues($a);

 ?>


Return an identity matrix

  • « Lapack::eigenValues
  • Lapack::leastSquaresByFactorisation »
  • PHP Manual
  • Lapack
  • Return an identity matrix

Lapack::identity

(PECL lapack >= 0.1.0)

Lapack::identity — Return an identity matrix

Описание

public static Lapack::identity ( int $n ) : array

Return a size n identity matrix

Список параметров

n

The height and width of the identity matrix.

Возвращаемые значения

Will return a an array of n arrays, each containing n entries. The diagonals of the matrix will be 1s, the other positions 0.


Calculate the linear least squares solution of a matrix using QR factorisation

  • « Lapack::identity
  • Lapack::leastSquaresBySVD »
  • PHP Manual
  • Lapack
  • Calculate the linear least squares solution of a matrix using QR factorisation

Lapack::leastSquaresByFactorisation

(PECL lapack >= 0.1.0)

Lapack::leastSquaresByFactorisation — Calculate the linear least squares solution of a matrix using QR factorisation

Описание

public static Lapack::leastSquaresByFactorisation ( array $a , array $b ) : array

Solve the linear least squares problem, find min x in || B - Ax || Returns an array representing x. Expects arrays of arrays, and will return an array of arrays in the dimension B num cols x A num cols. Uses QR or LQ factorisation on matrix A.

Список параметров

a

Matrix A

b

Matrix B

Возвращаемые значения

Array of the solution matrix

Примеры

Пример #1 Using Lapack::leastSquaresByFactorisation():

<?php

 $a = array(
     array( 1.44,  -7.84,  -4.39,   4.53),
     array(-9.96,  -0.28,  -3.24,   3.83),
     array(-7.55,   3.24,   6.27,  -6.64),
     array( 8.34,   8.09,   5.28,   2.06),
     array( 7.08,   2.52,   0.74,  -2.47),
     array(-5.45,  -5.70,  -1.19,   4.70),
 );

 $b = array(
     array( 8.58,   9.35),
     array( 8.26,  -4.43),
     array( 8.48,  -0.70),
     array(-5.28,  -0.26),
     array( 5.72,  -7.36),
     array( 8.93,  -2.52),
 );

 $result = Lapack::leastSquaresByFactorisation($a, $b);
 ?>


Solve the linear least squares problem, using SVD

  • « Lapack::leastSquaresByFactorisation
  • Lapack::pseudoInverse »
  • PHP Manual
  • Lapack
  • Solve the linear least squares problem, using SVD

Lapack::leastSquaresBySVD

(PECL lapack >= 0.1.0)

Lapack::leastSquaresBySVD — Solve the linear least squares problem, using SVD

Описание

public static Lapack::leastSquaresBySVD ( array $a , array $b ) : array

Solve the linear least squares problem, find min x in || B - Ax || Returns an array representing x. Expects arrays of arrays, and will return an array of arrays in the dimension B num cols x A num cols. Uses SVD with a divide and conquer algorithm.

Список параметров

a

Matrix A

b

Matrix B

Возвращаемые значения

Returns the solution as an array of arrays.

Примеры

Пример #1 Using Lapack::leastSquaresBySVD():

<?php

  $a = array(
      array( 1.44,  -7.84,  -4.39,   4.53),
      array(-9.96,  -0.28,  -3.24,   3.83),
      array(-7.55,   3.24,   6.27,  -6.64),
      array( 8.34,   8.09,   5.28,   2.06),
      array( 7.08,   2.52,   0.74,  -2.47),
      array(-5.45,  -5.70,  -1.19,   4.70),
  );

  $b = array(
      array( 8.58,   9.35),
      array( 8.26,  -4.43),
      array( 8.48,  -0.70),
      array(-5.28,  -0.26),
      array( 5.72,  -7.36),
      array( 8.93,  -2.52),
  );

  $result = Lapack::leastSquaresBySVD($a, $b);

  ?>


Calculate the inverse of a matrix

  • « Lapack::leastSquaresBySVD
  • Lapack::singularValues »
  • PHP Manual
  • Lapack
  • Calculate the inverse of a matrix

Lapack::pseudoInverse

(PECL lapack >= 0.1.0)

Lapack::pseudoInverse — Calculate the inverse of a matrix

Описание

public static Lapack::pseudoInverse ( array $a ) : array

Find the pseudoinverse of a matrix A.

Список параметров

a

Matrix to invert

Возвращаемые значения

Inverted matrix (array of arrays).

Примеры

Пример #1 Using Lapack::pseudoInverse():

<?php

   $a = array(
       array( 8, 1, 6 ),
       array( 3, 5, 7 ),
       array( 4, 9, 2 ),
   );

   $result = Lapack::pseudoInverse($a);

   ?>


Calculated the singular values of a matrix

  • « Lapack::pseudoInverse
  • Lapack::solveLinearEquation »
  • PHP Manual
  • Lapack
  • Calculated the singular values of a matrix

Lapack::singularValues

(PECL lapack >= 0.1.0)

Lapack::singularValues — Calculated the singular values of a matrix

Описание

public static Lapack::singularValues ( array $a ) : array

Calculate the singular values of the matrix A.

Список параметров

a

The matrix to calculate the singular values for

Возвращаемые значения

The singular values

Примеры

Пример #1 Using Lapack::singularValues():

<?php

    $a = array(
        array( 7.52,  -1.10,  -7.95,  1.08  ),
        array(-0.76,   0.62,   9.34, -7.10  ),
        array( 5.13,   6.62,  -5.66,  0.87  ),
        array(-4.75,   8.52,   5.75,  5.30  ),
        array( 1.33,   4.91,  -5.49, -3.52  ),
        array(-2.40,  -6.77,   2.34,  3.95  ),
    );

    $result = Lapack::singularValues($a);

    ?>


Solve a system of linear equations

  • « Lapack::singularValues
  • LapackException »
  • PHP Manual
  • Lapack
  • Solve a system of linear equations

Lapack::solveLinearEquation

(PECL lapack >= 0.1.0)

Lapack::solveLinearEquation — Solve a system of linear equations

Описание

public static Lapack::solveLinearEquation ( array $a , array $b ) : array

This function computes the solution to the system of linear equations with a square matrix A and multiple right-hand sides B. Solves A * X = B for multiple B.

Список параметров

a

Square matrix of linear equations

b

Right hand side to be solved for

Возвращаемые значения

Matrix X

Примеры

Пример #1 Using Lapack::singularValues():

<?php

    $a = array(
        array( 6.80,  -6.05,  -0.45,   8.32,  -9.67   ),
        array(-2.11,  -3.30,   2.58,   2.71,  -5.14   ),
        array( 5.66,   5.36,  -2.70,   4.35,  -7.26   ),
        array( 5.97,  -4.44,   0.27,  -7.17,   6.08   ),
        array( 8.23,   1.08,   9.04,   2.14,  -6.87   ),
    );

    $b = array(
       array(  4.02,  -1.56,   9.81   ),
       array(  6.19,   4.00,  -4.09   ),
       array( -8.22,  -8.67,  -4.57   ),
       array( -7.57,   1.75,  -8.61   ),
       array( -3.03,   2.86,   8.99   ),
    );

    $result = Lapack::solveLinearEquation($a, $b);

    ?>


The LapackException class

(PECL lapack >= 0.1.0)

Введение

Exception thrown when an error is caught in the LAPACK functions

Обзор классов

lapackexception extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Математические функции

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Математические функции
    • abs — Абсолютное значение (модуль числа)
    • acos — Арккосинус
    • acosh — Гиперболический арккосинус
    • asin — Арксинус
    • asinh — Гиперболический арксинус
    • atan2 — Арктангенс двух переменных
    • atan — Арктангенс
    • atanh — Гиперболический арктангенс
    • base_convert — Преобразование числа между произвольными системами счисления
    • bindec — Двоичное в десятичное
    • ceil — Округляет дробь в большую сторону
    • cos — Косинус
    • cosh — Гиперболический косинус
    • decbin — Переводит число из десятичной системы счисления в двоичную
    • dechex — Переводит число из десятичной системы счисления в шестнадцатеричную
    • decoct — Переводит число из десятичной системы счисления в восьмеричную
    • deg2rad — Преобразует значение из градусов в радианы
    • exp — Вычисляет степень числа e
    • expm1 — Возвращает exp(number) - 1, рассчитанное таким образом, что результат точен, даже если значение number близко к нулю.
    • floor — Округляет дробь в меньшую сторону
    • fmod — Возвращает дробный остаток от деления по модулю
    • getrandmax — Возвращает максимально возможное случайное число
    • hexdec — Переводит число из шестнадцатеричной системы счисления в десятичную
    • hypot — Рассчитывает длину гипотенузы прямоугольного треугольника
    • intdiv — Целочисленное деление
    • is_finite — Проверяет, является ли значение допустимым конечным числом
    • is_infinite — Проверяет, является ли значение бесконечным
    • is_nan — Проверяет, является ли значение "не числом"
    • lcg_value — Комбинированный линейный конгруэнтный генератор
    • log10 — Десятичный логарифм
    • log1p — Возвращает log(1 + number), рассчитанный так, что результат точен, даже если значение number близко к нулю
    • log — Натуральный логарифм
    • max — Возвращает наибольшее значение
    • min — Находит наименьшее значение
    • mt_getrandmax — Показывает максимально возможное значение случайного числа
    • mt_rand — Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна
    • mt_srand — Переинициализирует генератор случайных чисел на базе Вихря Мерсенна
    • octdec — Переводит число из восьмеричной системы счисления в десятичную
    • pi — Возвращает число Пи
    • pow — Возведение в степень
    • rad2deg — Преобразует значение из радианов в градусы
    • rand — Генерирует случайное число
    • round — Округляет число типа float
    • sin — Синус
    • sinh — Гиперболический синус
    • sqrt — Квадратный корень
    • srand — Изменяет начальное число генератора псевдослучайных чисел
    • tan — Тангенс
    • tanh — Гиперболический тангенс


Введение

Данные функции работают с числами в диапазонах типов integer и float на вашей машине (это соответствует C-типам long и double). Если вам нужно работать с большими числами, обратитесь к разделу математических функций произвольной точности.

См. также арифметические операторы.


Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

Математические константы
Константа | Значение | Описание | Доступна с версии
M_PI | 3.14159265358979323846 | число Пи |
M_E | 2.7182818284590452354 | число Эйлера (e) |
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(Пи) | PHP 5.2.0
M_2_SQRTPI | 1.12837916709551257390 | 2/sqrt(Пи) |
M_SQRT2 | 1.41421356237309504880 | sqrt(2) |
M_SQRT3 | 1.73205080756887729352 | sqrt(3) | PHP 5.2.0
M_SQRT1_2 | 0.70710678118654752440 | 1/sqrt(2) |
M_LNPI | 1.14472988584940017414 | Натуральный логарифм числа пи | PHP 5.2.0
M_EULER | 0.57721566490153286061 | Постоянная Эйлера | PHP 5.2.0
PHP_ROUND_HALF_UP | 1 | Округление к большему целому | PHP 5.3.0
PHP_ROUND_HALF_DOWN | 2 | Округление к меньшему целому | PHP 5.3.0
PHP_ROUND_HALF_EVEN | 3 | Округление к четному числу | PHP 5.3.0
PHP_ROUND_HALF_ODD | 4 | Округление к нечетному числу | PHP 5.3.0
NAN | NAN (тип float) | Не является числом (Not A Number) |
INF | INF (тип float) | Бесконечность |

Все константы без указания версии PHP доступны начиная с PHP 5.0.0.


Математические функции

Содержание

  • abs — Абсолютное значение (модуль числа)
  • acos — Арккосинус
  • acosh — Гиперболический арккосинус
  • asin — Арксинус
  • asinh — Гиперболический арксинус
  • atan2 — Арктангенс двух переменных
  • atan — Арктангенс
  • atanh — Гиперболический арктангенс
  • base_convert — Преобразование числа между произвольными системами счисления
  • bindec — Двоичное в десятичное
  • ceil — Округляет дробь в большую сторону
  • cos — Косинус
  • cosh — Гиперболический косинус
  • decbin — Переводит число из десятичной системы счисления в двоичную
  • dechex — Переводит число из десятичной системы счисления в шестнадцатеричную
  • decoct — Переводит число из десятичной системы счисления в восьмеричную
  • deg2rad — Преобразует значение из градусов в радианы
  • exp — Вычисляет степень числа e
  • expm1 — Возвращает exp(number) - 1, рассчитанное таким образом, что результат точен, даже если значение number близко к нулю.
  • floor — Округляет дробь в меньшую сторону
  • fmod — Возвращает дробный остаток от деления по модулю
  • getrandmax — Возвращает максимально возможное случайное число
  • hexdec — Переводит число из шестнадцатеричной системы счисления в десятичную
  • hypot — Рассчитывает длину гипотенузы прямоугольного треугольника
  • intdiv — Целочисленное деление
  • is_finite — Проверяет, является ли значение допустимым конечным числом
  • is_infinite — Проверяет, является ли значение бесконечным
  • is_nan — Проверяет, является ли значение "не числом"
  • lcg_value — Комбинированный линейный конгруэнтный генератор
  • log10 — Десятичный логарифм
  • log1p — Возвращает log(1 + number), рассчитанный так, что результат точен, даже если значение number близко к нулю
  • log — Натуральный логарифм
  • max — Возвращает наибольшее значение
  • min — Находит наименьшее значение
  • mt_getrandmax — Показывает максимально возможное значение случайного числа
  • mt_rand — Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна
  • mt_srand — Переинициализирует генератор случайных чисел на базе Вихря Мерсенна
  • octdec — Переводит число из восьмеричной системы счисления в десятичную
  • pi — Возвращает число Пи
  • pow — Возведение в степень
  • rad2deg — Преобразует значение из радианов в градусы
  • rand — Генерирует случайное число
  • round — Округляет число типа float
  • sin — Синус
  • sinh — Гиперболический синус
  • sqrt — Квадратный корень
  • srand — Изменяет начальное число генератора псевдослучайных чисел
  • tan — Тангенс
  • tanh — Гиперболический тангенс


Абсолютное значение (модуль числа)

  • « Математические функции
  • acos »
  • PHP Manual
  • Математические функции
  • Абсолютное значение (модуль числа)

abs

(PHP 4, PHP 5, PHP 7)

abs — Абсолютное значение (модуль числа)

Описание

abs ( mixed $number ) : number

Возвращает абсолютное значение number.

Список параметров

number

Числовое значение

Возвращаемые значения

Абсолютное значение number. Если тип аргумента number - float, то возвращаемый тип также float, иначе - integer (тип float обычно имеет больший диапазон значений, чем тип integer).

Примеры

Пример #1 Пример использования abs()

<?php
echo abs(-4.2); // 4.2 (double/float)
echo abs(5);    // 5 (integer)
echo abs(-5);   // 5 (integer)
?>

Смотрите также

  • gmp_abs() - Абсолютная величина
  • gmp_sign() - Знак числа


Арккосинус

  • « abs
  • acosh »
  • PHP Manual
  • Математические функции
  • Арккосинус

acos

(PHP 4, PHP 5, PHP 7)

acos — Арккосинус

Описание

acos ( float $arg ) : float

Возвращает арккосинус числа arg в радианах. acos() - обратная тригонометрическая функция к cos(), то есть a==cos(acos(a)) для каждого значения а, входящего в область значений функции acos().

Список параметров

arg

Аргумент функции

Возвращаемые значения

Арккосинус числа arg в радианах.

Смотрите также

  • cos() - Косинус
  • acosh() - Гиперболический арккосинус
  • asin() - Арксинус
  • atan() - Арктангенс


Гиперболический арккосинус

  • « acos
  • asin »
  • PHP Manual
  • Математические функции
  • Гиперболический арккосинус

acosh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

acosh — Гиперболический арккосинус

Описание

acosh ( float $arg ) : float

Возвращает гиперболический арккосинус arg, то есть значение, чей гиперболический косинус равен arg.

Список параметров

arg

Входное значение

Возвращаемые значения

Гиперболический арккосинус arg

Список изменений

Версия | Описание
5.3.0 | Функция стала доступна для всех платформ

Смотрите также

  • cosh() - Гиперболический косинус
  • acos() - Арккосинус
  • asinh() - Гиперболический арксинус
  • atanh() - Гиперболический арктангенс


Арксинус

  • « acosh
  • asinh »
  • PHP Manual
  • Математические функции
  • Арксинус

asin

(PHP 4, PHP 5, PHP 7)

asin — Арксинус

Описание

asin ( float $arg ) : float

Возвращает арксинус числа arg в радианах. asin() - обратная тригонометрическая функция к sin(), то есть a==sin(asin(a)) для каждого значения a, входящего в область значений функции asin().

Список параметров

arg

Аргумент функции

Возвращаемые значения

Арксинус числа arg в радианах

Смотрите также

  • sin() - Синус
  • asinh() - Гиперболический арксинус
  • acos() - Арккосинус
  • atan() - Арктангенс


Гиперболический арксинус

  • « asin
  • atan2 »
  • PHP Manual
  • Математические функции
  • Гиперболический арксинус

asinh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

asinh — Гиперболический арксинус

Описание

asinh ( float $arg ) : float

Возвращает гиперболический арксинус arg, то есть значение, чей гиперболический синус равен arg.

Список параметров

arg

Входное значение

Возвращаемые значения

Гиперболический арксинус arg

Список изменений

Версия | Описание
5.3.0 | Функция стала доступна для всех платформ

Смотрите также

  • sinh() - Гиперболический синус
  • asin() - Арксинус
  • acosh() - Гиперболический арккосинус
  • atanh() - Гиперболический арктангенс


Арктангенс двух переменных

  • « asinh
  • atan »
  • PHP Manual
  • Математические функции
  • Арктангенс двух переменных

atan2

(PHP 4, PHP 5, PHP 7)

atan2 — Арктангенс двух переменных

Описание

atan2 ( float $y , float $x ) : float

Функция вычисляет арктангенс переменных x и y. Это подобно вычислению арктангенса y / x, за исключением того, что знаки обоих аргументов используются для вычисления квадранта результата.

Функция возвращает значение в радианах в диапазоне от -PI до PI (включительно).

Список параметров

y

Делитель

x

Делимое

Возвращаемые значения

Арктангенс y/x в радианах.

Смотрите также

  • atan() - Арктангенс


Арктангенс

  • « atan2
  • atanh »
  • PHP Manual
  • Математические функции
  • Арктангенс

atan

(PHP 4, PHP 5, PHP 7)

atan — Арктангенс

Описание

atan ( float $arg ) : float

Возвращает арктангенс числа arg в радианах. atan() - обратная тригонометрическая функция к tan(), то есть a==tan(atan(a)) для каждого значения a, входящего в область значений функции atan().

Список параметров

arg

Аргумент функции

Возвращаемые значения

Арктангенс числа arg в радианах.

Смотрите также

  • tan() - Тангенс
  • atanh() - Гиперболический арктангенс
  • asin() - Арксинус
  • acos() - Арккосинус


Гиперболический арктангенс

  • « atan
  • base_convert »
  • PHP Manual
  • Математические функции
  • Гиперболический арктангенс

atanh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

atanh — Гиперболический арктангенс

Описание

atanh ( float $arg ) : float

Возвращает гиперболический арктангенс arg, то есть значение, чей гиперболический тангенс равен arg.

Список параметров

arg

Входное значение

Возвращаемые значения

Гиперболический арктангенс arg

Список изменений

Версия | Описание
5.3.0 | Функция стала доступна для всех платформ

Смотрите также

  • tanh() - Гиперболический тангенс
  • atan() - Арктангенс
  • asinh() - Гиперболический арксинус
  • acosh() - Гиперболический арккосинус


Преобразование числа между произвольными системами счисления

  • « atanh
  • bindec »
  • PHP Manual
  • Математические функции
  • Преобразование числа между произвольными системами счисления

base_convert

(PHP 4, PHP 5, PHP 7)

base_convert — Преобразование числа между произвольными системами счисления

Описание

base_convert ( string $number , int $frombase , int $tobase ) : string

Возвращает строку, содержащую число number, представленное в системе счисления tobase. Система счисления, в которой дано число number указана в frombase. Значения frombase и tobase должны быть между 2 и 36 (включительно). Цифры в числах, представленных в системе счисления выше десятичной, будут представлены буквами a-z, где "a" обозначает 10, "b" обозначает 11 и "z" - 35. Регистр букв не имеет значения, поскольку числа (number) интерпретируются регистронезависимо.

Внимание

base_convert() может потерять точность представления больших чисел из-за свойств, связанных с внутренним представлением типов "double" или "float". Более подробную информацию о специфике данных типов и связанных и ними ограничениях, смотрите в разделе Числа с плавающей точкой.

Список параметров

number

Число для преобразования. Любой некорректный символ в number будет проигнорирован без какого-либо предупреждения. Начиная с PHP 7.4.0, предоставление любых некорректных символов устарело.

frombase

Основание системы счисления числа number

tobase

Основание системы счисления для преобразования числа number

Возвращаемые значения

number, преобразованное в систему счисления tobase

Список изменений

Версия | Описание
7.4.0 | Передача некорректных символов будет выдавать уведомление об устаревании. Результат будет вычислен так, как если бы некорректные символы не существовали.

Примеры

Пример #1 Пример использования base_convert()

<?php
$hexadecimal = 'a37334';
echo base_convert($hexadecimal, 16, 2);
?>

Результат выполнения данного примера:

101000110111001100110100

Смотрите также

  • intval() - Возвращает целое значение переменной


Двоичное в десятичное

  • « base_convert
  • ceil »
  • PHP Manual
  • Математические функции
  • Двоичное в десятичное

bindec

(PHP 4, PHP 5, PHP 7)

bindec — Двоичное в десятичное

Описание

bindec ( string $binary_string ) : number

Возвращает десятичный эквивалент двоичного числа binary_string.

bindec() преобразует двоичное число в целое число (integer) или, если необходимо, по причинам размера, в число с плавающей (float).

bindec() интерпретирует значения binary_string как беззнаковое число. Так как bindec() воспринимает старший бит как еще один порядок величины, а не знаковый бит.

Список параметров

binary_string

Бинарная строка для преобразования. Любые некорректные символы в binary_string игнорируются. Начиная с PHP 7.4.0, предоставление любых некорректных символов устарело.

Внимание

Параметр должен быть строкой. Использование иных типов данных приведет к непредсказуемому результату.

Возвращаемые значения

Десятичное значение binary_string

Список изменений

Версия | Описание
7.4.0 | Передача некорректных символов будет выдавать уведомление об устаревании. Результат будет вычислен так, как если бы некорректные символы не существовали.

Примеры

Пример #1 Пример использования bindec()

<?php
echo bindec('110011') . "\n";
echo bindec('000110011') . "\n";

echo bindec('111');
?>

Результат выполнения данного примера:

51
51
7

Пример #2 bindec() интерпретирует ввод как беззнаковое число

<?php
/*
 * Смысл этого примера можно найти в выводе скрипта,
 * а не в коде PHP.
 */

$magnitude_lower = pow(2, (PHP_INT_SIZE * 8) - 2);
p($magnitude_lower - 1);
p($magnitude_lower, 'Видите резкую смену значений? Смотрите в следующий раз...');

p(PHP_INT_MAX, 'PHP_INT_MAX');
p(~PHP_INT_MAX, 'интерпретируется как увеличенное на единицу значение PHP_INT_MAX');

if (PHP_INT_SIZE == 4) {
    $note = 'интерпретируется как самое большое целое без знака (unsigned integer)';
} else {
    $note = 'интерпретируется как самое большое целое без знака (unsigned integer)
              (18446744073709551615), но искажается из-за недостаточной точности float';
}
p(-1, $note);

function p($input, $note = '') {
    echo "input:        $input\n";

    $format = '%0' . (PHP_INT_SIZE * 8) . 'b';
    $bin = sprintf($format, $input);
    echo "binary:       $bin\n";

    ini_set('precision', 20);  // Для надежности на 64-битных системах.
    $dec = bindec($bin);
    echo 'bindec():     ' . $dec . "\n";

    if ($note) {
        echo "NOTE:         $note\n";
    }

    echo "\n";
}
?>

Результат выполнения данного примера на 32-битных машинах:

input:        1073741823
binary:       00111111111111111111111111111111
bindec():     1073741823

input:        1073741824
binary:       01000000000000000000000000000000
bindec():     1073741824
NOTE:         Видите резкую смену значений? Смотрите в следующий раз...

input:        2147483647
binary:       01111111111111111111111111111111
bindec():     2147483647
NOTE:         PHP_INT_MAX

input:        -2147483648
binary:       10000000000000000000000000000000
bindec():     2147483648
NOTE:         интерпретируется как увеличенное на единицу значение PHP_INT_MAX

input:        -1
binary:       11111111111111111111111111111111
bindec():     4294967295
NOTE:         интерпретируется как самое большое целое без знака (unsigned integer)

Результат выполнения данного примера на 64-битных машинах:

input:        4611686018427387903
binary:       0011111111111111111111111111111111111111111111111111111111111111
bindec():     4611686018427387903

input:        4611686018427387904
binary:       0100000000000000000000000000000000000000000000000000000000000000
bindec():     4611686018427387904
NOTE:         Видите резкую смену значений? Смотрите в следующий раз...

input:        9223372036854775807
binary:       0111111111111111111111111111111111111111111111111111111111111111
bindec():     9223372036854775807
NOTE:         PHP_INT_MAX

input:        -9223372036854775808
binary:       1000000000000000000000000000000000000000000000000000000000000000
bindec():     9223372036854775808
NOTE:         интерпретируется как увеличенное на единицу значение PHP_INT_MAX

input:        -1
binary:       1111111111111111111111111111111111111111111111111111111111111111
bindec():     18446744073709551616
NOTE:         интерпретируется как самое большое целое без знака (unsigned integer)
              (18446744073709551615), но искажается из-за недостаточной точности float

Примечания

Замечание:

Эта функция может конвертировать числа, которые слишком большие для типа integer на текущей платформе. В этом случае большие значения возвращаются как float.

Смотрите также

  • decbin() - Переводит число из десятичной системы счисления в двоичную
  • octdec() - Переводит число из восьмеричной системы счисления в десятичную
  • hexdec() - Переводит число из шестнадцатеричной системы счисления в десятичную
  • base_convert() - Преобразование числа между произвольными системами счисления


Округляет дробь в большую сторону

  • « bindec
  • cos »
  • PHP Manual
  • Математические функции
  • Округляет дробь в большую сторону

ceil

(PHP 4, PHP 5, PHP 7)

ceil — Округляет дробь в большую сторону

Описание

ceil ( float $value ) : float

Возвращает ближайшее большее целое от value.

Список параметров

value

Значение, которое требуется округлить в большую сторону

Возвращаемые значения

Возвращает ближайшее большее целое от value. Тип возвращаемого значения остаётся float т.к. диапазон float больше integer.

Примеры

Пример #1 Пример использования ceil()

<?php
echo ceil(4.3);    // 5
echo ceil(9.999);  // 10
echo ceil(-3.14);  // -3
?>

Смотрите также

  • floor() - Округляет дробь в меньшую сторону
  • round() - Округляет число типа float


Косинус

  • « ceil
  • cosh »
  • PHP Manual
  • Математические функции
  • Косинус

cos

(PHP 4, PHP 5, PHP 7)

cos — Косинус

Описание

cos ( float $arg ) : float

cos() возвращает косинус параметра arg . Параметр arg задаётся в радианах.

Список параметров

arg

Угол в радианах

Возвращаемые значения

Косинус угла arg

Примеры

Пример #1 Пример использования cos()

<?php

echo cos(M_PI); // -1

?>

Смотрите также

  • acos() - Арккосинус
  • sin() - Синус
  • tan() - Тангенс
  • deg2rad() - Преобразует значение из градусов в радианы


Гиперболический косинус

  • « cos
  • decbin »
  • PHP Manual
  • Математические функции
  • Гиперболический косинус

cosh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

cosh — Гиперболический косинус

Описание

cosh ( float $arg ) : float

Возвращает гиперболический косинус arg, определяемый как (exp(arg) + exp(-arg))/2.

Список параметров

arg

Входное значение

Возвращаемые значения

Гиперболический косинус arg

Смотрите также

  • cos() - Косинус
  • acosh() - Гиперболический арккосинус
  • sinh() - Гиперболический синус
  • tanh() - Гиперболический тангенс


Переводит число из десятичной системы счисления в двоичную

  • « cosh
  • dechex »
  • PHP Manual
  • Математические функции
  • Переводит число из десятичной системы счисления в двоичную

decbin

(PHP 4, PHP 5, PHP 7)

decbin — Переводит число из десятичной системы счисления в двоичную

Описание

decbin ( int $number ) : string

Возвращает строку, содержащую двоичное представление указанного аргумента number.

Список параметров

number

Десятичное число для преобразования

Область ввода для 32-битных машин
положительный number | отрицательный number | возвращаемое значение
0 | 0
1 | 1
2 | 10
... и так далее ...
2147483646 | 1111111111111111111111111111110
2147483647 (наибольший знаковый integer) | 1111111111111111111111111111111 (31 единица)
2147483648 | -2147483648 | 10000000000000000000000000000000
... и так далее ...
4294967294 | -2 | 11111111111111111111111111111110
4294967295 (наибольший беззнаковый integer) | -1 | 11111111111111111111111111111111 (32 единицы)
Область ввода для 64-битных машин
положительный number | отрицательный number | возвращаемое значение
0 | 0
1 | 1
2 | 10
... и так далее ...
9223372036854775806 | 111111111111111111111111111111111111111111111111111111111111110
9223372036854775807 (наибольший знаковый integer) | 111111111111111111111111111111111111111111111111111111111111111 (63 единицы)
-9223372036854775808 | 1000000000000000000000000000000000000000000000000000000000000000
... и так далее ...
-2 | 1111111111111111111111111111111111111111111111111111111111111110
-1 | 1111111111111111111111111111111111111111111111111111111111111111 (64 единицы)

Возвращаемые значения

Бинарное строковое представление number

Примеры

Пример #1 Пример использования decbin()

<?php
echo decbin(12) . "\n";
echo decbin(26);
?>

Результат выполнения данного примера:

1100
11010

Смотрите также

  • bindec() - Двоичное в десятичное
  • decoct() - Переводит число из десятичной системы счисления в восьмеричную
  • dechex() - Переводит число из десятичной системы счисления в шестнадцатеричную
  • base_convert() - Преобразование числа между произвольными системами счисления
  • printf() - Выводит отформатированную строку, используя форматы %b, %032b или %064b
  • sprintf(), используя форматы %b, %032b или %064b


Переводит число из десятичной системы счисления в шестнадцатеричную

  • « decbin
  • decoct »
  • PHP Manual
  • Математические функции
  • Переводит число из десятичной системы счисления в шестнадцатеричную

dechex

(PHP 4, PHP 5, PHP 7)

dechex — Переводит число из десятичной системы счисления в шестнадцатеричную

Описание

dechex ( int $number ) : string

Возвращает строку, содержащую шестнадцатеричное представление указанного безнакового аргумента number.

Наибольшее число, которое может быть преобразовано - PHP_INT_MAX * 2 + 1 (или -1): на 32-битных платформах это 4294967295 в десятеричной системе, что конвертируется функцией dechex() в ffffffff.

Список параметров

number

Десятичное значение для преобразования

Так как тип PHP integer является знаковым, а dechex() работает с безнаковыми целыми, то отрицательные целые воспринимаются как безнаковые.

Возвращаемые значения

Шестнадцатеричное строковое представление number.

Примеры

Пример #1 Пример использования dechex()

<?php
echo dechex(10) . "\n";
echo dechex(47);
?>

Результат выполнения данного примера:

a
2f

Пример #2 Пример использования dechex() с большими целыми

<?php
// Вывод подразумевает 32-битную платформу.
// Обратите внимание, что вывод одинаков для всех этих значений.
echo dechex(-1)."\n";
echo dechex(PHP_INT_MAX * 2 + 1)."\n";
echo dechex(pow(2, 32) - 1)."\n";
?>

Результат выполнения данного примера:

ffffffff
ffffffff
ffffffff

Смотрите также

  • hexdec() - Переводит число из шестнадцатеричной системы счисления в десятичную
  • decbin() - Переводит число из десятичной системы счисления в двоичную
  • decoct() - Переводит число из десятичной системы счисления в восьмеричную
  • base_convert() - Преобразование числа между произвольными системами счисления


Переводит число из десятичной системы счисления в восьмеричную

  • « dechex
  • deg2rad »
  • PHP Manual
  • Математические функции
  • Переводит число из десятичной системы счисления в восьмеричную

decoct

(PHP 4, PHP 5, PHP 7)

decoct — Переводит число из десятичной системы счисления в восьмеричную

Описание

decoct ( int $number ) : string

Возвращает строку, содержащую восьмеричное представление указанного аргумента number. Значение наибольшего числа, которое может быть преобразовано, зависит от платформы. Для 32-битных платформ это обычно 4294967295 в десятичном представлении и 37777777777 в восьмеричном. Для 64-битных платформ это обычно 9223372036854775807 и 777777777777777777777 соответственно.

Список параметров

number

Десятичное значение для преобразования

Возвращаемые значения

Восьмеричное строковое представление number

Примеры

Пример #1 Пример использования decoct()

<?php
echo decoct(15) . "\n";
echo decoct(264);
?>

Результат выполнения данного примера:

17
410

Смотрите также

  • octdec() - Переводит число из восьмеричной системы счисления в десятичную
  • decbin() - Переводит число из десятичной системы счисления в двоичную
  • dechex() - Переводит число из десятичной системы счисления в шестнадцатеричную
  • base_convert() - Преобразование числа между произвольными системами счисления


Преобразует значение из градусов в радианы

  • « decoct
  • exp »
  • PHP Manual
  • Математические функции
  • Преобразует значение из градусов в радианы

deg2rad

(PHP 4, PHP 5, PHP 7)

deg2rad — Преобразует значение из градусов в радианы

Описание

deg2rad ( float $number ) : float

Функция преобразует number из градусов в радианы.

Список параметров

number

Угловая величина в градусах

Возвращаемые значения

Эквивалент number в радианах

Примеры

Пример #1 Пример использования deg2rad()

<?php

echo deg2rad(45); // 0.785398163397
var_dump(deg2rad(45) === M_PI_4); // bool(true)

?>

Смотрите также

  • rad2deg() - Преобразует значение из радианов в градусы


Вычисляет степень числа e

  • « deg2rad
  • expm1 »
  • PHP Manual
  • Математические функции
  • Вычисляет степень числа e

exp

(PHP 4, PHP 5, PHP 7)

exp — Вычисляет степень числа e

Описание

exp ( float $arg ) : float

Возвращает e в степени arg.

Замечание:

Число e - основание натурального логарифма. Приблизительно равно 2.718282.

Список параметров

arg

Степень для возведения

Возвращаемые значения

'e' возводится в степень arg

Примеры

Пример #1 Пример использования exp()

<?php
echo exp(12) . "\n";
echo exp(5.7);
?>

Результат выполнения данного примера:

1.6275E+005
298.87

Смотрите также

  • log() - Натуральный логарифм
  • pow() - Возведение в степень


Возвращает exp(number) - 1, рассчитанное таким образом, что результат точен, даже если значение number близко к нулю.

  • « exp
  • floor »
  • PHP Manual
  • Математические функции
  • Возвращает exp(number) - 1, рассчитанное таким образом, что результат точен, даже если значение number близко к нулю.

expm1

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

expm1 — Возвращает exp(number) - 1, рассчитанное таким образом, что результат точен, даже если значение number близко к нулю.

Описание

expm1 ( float $arg ) : float

expm1() возвращает эквивалент выражения 'exp(arg) - 1', рассчитанный таким образом, что результат точен, даже если значение arg близко к нулю, тогда как 'exp (arg) - 1' будет неточно из-за вычитания двух почти равных чисел.

Список параметров

arg

Входное значение

Возвращаемые значения

'e' в степени arg минус один

Список изменений

Версия | Описание
5.3.0 | Теперь функция доступна на всех платформах

Смотрите также

  • log1p() - Возвращает log(1 + number), рассчитанный так, что результат точен, даже если значение number близко к нулю
  • exp() - Вычисляет степень числа e


Округляет дробь в меньшую сторону

  • « expm1
  • fmod »
  • PHP Manual
  • Математические функции
  • Округляет дробь в меньшую сторону

floor

(PHP 4, PHP 5, PHP 7)

floor — Округляет дробь в меньшую сторону

Описание

floor ( float $value ) : float

Возвращает ближайшее целое число (как тип float), округляя value в меньшую сторону.

Список параметров

value

Числовое значение для округления

Возвращаемые значения

Значение value, округленное в меньшую сторону до ближайшего целого числа. Возвращаемое значение функции floor() по-прежнему типа float потому, что диапазон значений типа float обычно больше, чем у типа integer. В случае возникновения какой-либо ошибки (например, при передаче массива), эта функция вернет FALSE.

Примеры

Пример #1 Пример использования floor()

<?php
echo floor(4.3);   // 4
echo floor(9.999); // 9
echo floor(-3.14); // -4
?>

Смотрите также

  • ceil() - Округляет дробь в большую сторону
  • round() - Округляет число типа float


Возвращает дробный остаток от деления по модулю

  • « floor
  • getrandmax »
  • PHP Manual
  • Математические функции
  • Возвращает дробный остаток от деления по модулю

fmod

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fmod — Возвращает дробный остаток от деления по модулю

Описание

fmod ( float $x , float $y ) : float

Возвращает дробный остаток от деления делимого (x) и делителя (y). Остаток (r) определяется так: x = i * y + r, где i - некоторое целое. Если y не равен нулю, то r имеет такой же знак, как x и величину, меньшую или равную величине y.

Список параметров

x

Делимое.

y

Делитель.

Возвращаемые значения

Остаток от операции деления 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
?>

Смотрите также

  • / - деление с плавающей точкой
  • % - целочисленный остаток
  • intdiv() - целочисленное деление


Возвращает максимально возможное случайное число

  • « fmod
  • hexdec »
  • PHP Manual
  • Математические функции
  • Возвращает максимально возможное случайное число

getrandmax

(PHP 4, PHP 5, PHP 7)

getrandmax — Возвращает максимально возможное случайное число

Описание

getrandmax ( void ) : int

Возвращает максимальное значение, которое может быть получено функцией rand().

Возвращаемые значения

Максимально возможное случайное значение, возвращаемое функцией rand()

Смотрите также

  • rand() - Генерирует случайное число
  • srand() - Изменяет начальное число генератора псевдослучайных чисел
  • mt_getrandmax() - Показывает максимально возможное значение случайного числа


Переводит число из шестнадцатеричной системы счисления в десятичную

  • « getrandmax
  • hypot »
  • PHP Manual
  • Математические функции
  • Переводит число из шестнадцатеричной системы счисления в десятичную

hexdec

(PHP 4, PHP 5, PHP 7)

hexdec — Переводит число из шестнадцатеричной системы счисления в десятичную

Описание

hexdec ( string $hex_string ) : number

Возвращает десятичный эквивалент шестнадцатеричного числа, содержащегося в аргументе hex_string. hexdec() преобразует шестнадцатеричную строку в десятичное число.

hexdec() игнорирует любые обнаруженные не шестнадцатеричные символы. Начиная с PHP 7.4.0, предоставление любых некорректных символов устарело.

Список параметров

hex_string

Шестнадцатеричная строка для преобразования

Возвращаемые значения

Десятичное представление hex_string

Список изменений

Версия | Описание
7.4.0 | Передача некорректных символов будет выдавать уведомление об устаревании. Результат будет вычислен так, как если бы некорректные символы не существовали.

Примеры

Пример #1 Пример использования hexdec()

<?php
var_dump(hexdec("See"));
var_dump(hexdec("ee"));
// в обоих случаех будет выведено "int(238)"

var_dump(hexdec("that")); // выведет "int(10)"
var_dump(hexdec("a0")); // выведет "int(160)"
?>

Примечания

Замечание:

Эта функция может конвертировать числа, которые слишком большие для типа integer на текущей платформе. В этом случае большие значения возвращаются как float.

Смотрите также

  • dechex() - Переводит число из десятичной системы счисления в шестнадцатеричную
  • bindec() - Двоичное в десятичное
  • octdec() - Переводит число из восьмеричной системы счисления в десятичную
  • base_convert() - Преобразование числа между произвольными системами счисления


Рассчитывает длину гипотенузы прямоугольного треугольника

  • « hexdec
  • intdiv »
  • PHP Manual
  • Математические функции
  • Рассчитывает длину гипотенузы прямоугольного треугольника

hypot

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

hypot — Рассчитывает длину гипотенузы прямоугольного треугольника

Описание

hypot ( float $x , float $y ) : float

hypot() возвращает длину гипотенузы прямоугольного треугольника с длинами сторон x и y или расстояние точки (x, y) до начала координат Эквивалентно sqrt(x*x + y*y).

Список параметров

x

Длина первой стороны

y

Длина второй стороны

Возвращаемые значения

Вычисленная длина гипотенузы


Целочисленное деление

  • « hypot
  • is_finite »
  • PHP Manual
  • Математические функции
  • Целочисленное деление

intdiv

(PHP 7)

intdiv — Целочисленное деление

Описание

intdiv ( int $dividend , int $divisor ) : int

Возвращает целочисленное деление dividend на divisor.

Список параметров

dividend

Числитель (то, что делится).

divisor

Знаменатель. Числитель будет делиться на divisor

Возвращаемые значения

Целое частное от деления dividend на divisor.

Ошибки

Если divisor равен 0, будет вызвано исключение DivisionByZeroError. Если dividend равен PHP_INT_MIN, а divisor равен -1, то будет брошено исключение ArithmeticError.

Примеры

Пример #1 Пример использования intdiv()

<?php
var_dump(intdiv(3, 2));
var_dump(intdiv(-3, 2));
var_dump(intdiv(3, -2));
var_dump(intdiv(-3, -2));
var_dump(intdiv(PHP_INT_MAX, PHP_INT_MAX));
var_dump(intdiv(PHP_INT_MIN, PHP_INT_MIN));
var_dump(intdiv(PHP_INT_MIN, -1));
var_dump(intdiv(1, 0));
?>
int(1)
int(-1)
int(-1)
int(1)
int(1)
int(1)

Fatal error: Uncaught ArithmeticError: Division of PHP_INT_MIN by -1 is not an integer in %s on line 8
Fatal error: Uncaught DivisionByZeroError: Division by zero in %s on line 9

Смотрите также

  • / - деление рациональных чисел
  • % - остаток от деления
  • fmod() - остаток от деления рациональных чисел


Проверяет, является ли значение допустимым конечным числом

  • « intdiv
  • is_infinite »
  • PHP Manual
  • Математические функции
  • Проверяет, является ли значение допустимым конечным числом

is_finite

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

is_finite — Проверяет, является ли значение допустимым конечным числом

Описание

is_finite ( float $val ) : bool

Проверяет, является ли val допустимым конечным числом на данной платформе.

Список параметров

val

Проверяемое значение

Возвращаемые значения

TRUE, если val является допустимым конечным числом в разрешенном для типа PHP float диапазоне на данной платформе, FALSE в противном случае.

Смотрите также

  • is_infinite() - Проверяет, является ли значение бесконечным
  • is_nan() - Проверяет, является ли значение "не числом"


Проверяет, является ли значение бесконечным

  • « is_finite
  • is_nan »
  • PHP Manual
  • Математические функции
  • Проверяет, является ли значение бесконечным

is_infinite

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

is_infinite — Проверяет, является ли значение бесконечным

Описание

is_infinite ( float $val ) : bool

Возвращает TRUE, если val является бесконечностью (положительной или отрицательной), например, как результат вычисления log(0) или любые другие значения, слишком большие, чтобы уместиться в тип float на данной платформе.

Список параметров

val

Проверяемое значение

Возвращаемые значения

TRUE, если val является бесконечным, FALSE в противном случае.

Смотрите также

  • is_finite() - Проверяет, является ли значение допустимым конечным числом
  • is_nan() - Проверяет, является ли значение "не числом"


Проверяет, является ли значение "не числом"

  • « is_infinite
  • lcg_value »
  • PHP Manual
  • Математические функции
  • Проверяет, является ли значение "не числом"

is_nan

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

is_nan — Проверяет, является ли значение "не числом"

Описание

is_nan ( float $val ) : bool

Проверяет, является ли val "не числом" (NaN), например, как результат выполнения функции acos(1.01).

Список параметров

val

Проверяемое значение

Возвращаемые значения

Возвращает TRUE, если val имеет значение "не число" (NaN), FALSE в противном случае.

Примеры

Пример #1 Пример использования is_nan()

<?php
// Недопустимое вычисление, возвращает
// значение "не число" (NaN)
$nan = acos(8);

var_dump($nan, is_nan($nan));
?>

Результат выполнения данного примера:

float(NAN)
bool(true)

Смотрите также

  • is_finite() - Проверяет, является ли значение допустимым конечным числом
  • is_infinite() - Проверяет, является ли значение бесконечным


Комбинированный линейный конгруэнтный генератор

  • « is_nan
  • log10 »
  • PHP Manual
  • Математические функции
  • Комбинированный линейный конгруэнтный генератор

lcg_value

(PHP 4, PHP 5, PHP 7)

lcg_value — Комбинированный линейный конгруэнтный генератор

Описание

lcg_value ( void ) : float

lcg_value() возвращает псевдослучайное значение в диапазоне (0, 1). Функция комбинирует два КГ с периодами 2^31 - 85 и 2^31 - 249. Период этой функции равен произведению базовых.

Предостережение

Данная функция не генерирует криптографически безопасные значения и не должна использоваться в криптографических целях. Если вам требуется криптографически безопасное значение, подумайте об использовании функций random_int(), random_bytes() или openssl_random_pseudo_bytes() вместо данной.

Возвращаемые значения

Псевдослучайное число с плавающей точкой в диапазоне от 0.0 до 1.0 включительно.

Смотрите также

  • rand() - Генерирует случайное число
  • mt_rand() - Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна


Десятичный логарифм

  • « lcg_value
  • log1p »
  • PHP Manual
  • Математические функции
  • Десятичный логарифм

log10

(PHP 4, PHP 5, PHP 7)

log10 — Десятичный логарифм

Описание

log10 ( float $arg ) : float

Возвращает десятичный логарифм arg.

Список параметров

arg

Входное значение

Возвращаемые значения

Десятичный логарифм arg

Смотрите также

  • log() - Натуральный логарифм


Возвращает log(1 + number), рассчитанный так, что результат точен, даже если значение number близко к нулю

  • « log10
  • log »
  • PHP Manual
  • Математические функции
  • Возвращает log(1 + number), рассчитанный так, что результат точен, даже если значение number близко к нулю

log1p

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

log1p — Возвращает log(1 + number), рассчитанный так, что результат точен, даже если значение number близко к нулю

Описание

log1p ( float $number ) : float

log1p() возвращает log(1 + number), рассчитанное таким образом, что результат точен, даже когда значение number близко к нулю. Из-за недостатка точности log() в этом случае может вернуть просто log(1).

Список параметров

number

Входное значение

Возвращаемые значения

log(1 + number)

Список изменений

Версия | Описание
5.3.0 | Теперь функция доступна на всех платформах

Смотрите также

  • expm1() - Возвращает exp(number) - 1, рассчитанное таким образом, что результат точен, даже если значение number близко к нулю.
  • log() - Натуральный логарифм
  • log10() - Десятичный логарифм


Натуральный логарифм

  • « log1p
  • max »
  • PHP Manual
  • Математические функции
  • Натуральный логарифм

log

(PHP 4, PHP 5, PHP 7)

log — Натуральный логарифм

Описание

log ( float $arg [, float $base = M_E ] ) : float

Если указан необязательный параметр base, log() возвращает logbase от arg, иначе log() возвращает натуральный логарифм числа arg.

Список параметров

arg

Число, для которого необходимо вычислить логарифм

base

Необязательное основание логарифма (по умолчанию основание 'e', что соответствует натуральному логарифму).

Возвращаемые значения

Логарифм числа arg по основанию base, если указано, или натуральный логарифм.

Смотрите также

  • log10() - Десятичный логарифм
  • exp() - Вычисляет степень числа e
  • pow() - Возведение в степень


Возвращает наибольшее значение

  • « log
  • min »
  • PHP Manual
  • Математические функции
  • Возвращает наибольшее значение

max

(PHP 4, PHP 5, PHP 7)

max — Возвращает наибольшее значение

Описание

max ( array $values ) : mixed
max ( mixed $value1 [, mixed $... ] ) : mixed

Если первый и единственный параметр - массив, то max() возвратит наибольшее значение из этого массива. Если переданы хотя бы два параметра, max() вернет наибольший из них.

Замечание:

Значения разных типов будут сравниваться в соответствии со стандартными правилами сравнения. К примеру, нечисловая строка (string) будет сравниваться с целым числом (integer) так, как будто это 0, а множество нечисловых строк (string) будут сравниваться алфавитно-цифровым порядком. Выбранное значение будет возвращено без конвертации типа.

Предостережение

Будьте осторожны, задавая аргументы разных типов, поскольку результат max() может вас удивить.

Список параметров

values

Массив с данными.

value1

Любое поддающееся сравнению значение.

...

Любое поддающееся сравнению значение.

Возвращаемые значения

max() вернет значение "наибольшего" из элементов массива, в соответствии со стандартными правилами сравнения. Если несколько разнотипных значений посчитаются идентичными (например 0 и 'abc'), функция вернет первое из них.

Если передан один пустой массив, то функция вернет FALSE и вызовет ошибку уровня E_WARNING.

Примеры

Пример #1 Пример использования max()

<?php
echo max(1, 3, 5, 6, 7);  // 7
echo max(array(2, 4, 5)); // 5

// 'hello' будет представлено как числое значение значение 0.
// Оба параметра имеют одинаковое значение, поэтому результат
// определяется порядком, в котором параметры переданы
echo max(0, 'hello');     // 0
echo max('hello', 0);     // hello

// Здесь сравниваются -1 < 0, так что 'hello' больше
echo max('hello', -1);    // hello

// В данном случае 0 больше, чем -1, поэтому результат равен 'hello'.
echo max(-1, 'hello');    // hello

// При сравнении массивов, разной длины - max вернет более длинный
$val = max(array(2, 2, 2), array(1, 1, 1, 1)); // array(1, 1, 1, 1)

// При сравнении массивов одинаковой длины - max будет сравнивать их поэлементно
// слева направо, в данном примере 2 == 2, но 4 < 5
$val = max(array(2, 4, 8), array(2, 5, 1)); // array(2, 5, 1)

// Если передан массив и не массив, в результате всегда будет возвращен массив
$val = max('string', array(2, 5, 7), 42);   // array(2, 5, 7)

// Если один из аргументов NULL или булево значение, то сравнение с другими
// значениями будет происходить по правилу FALSE < TRUE, вне зависимости от того
// какого типа параметры переданы.
// В примере ниже, -10 трактуется как TRUE
$val = max(-10, FALSE); // -10

// 0 всегда трактуется как FALSE, значит он "меньше чем" TRUE
$val = max(0, TRUE); // TRUE
?>

Смотрите также

  • min() - Находит наименьшее значение
  • count() - Подсчитывает количество элементов массива или чего-либо в объекте


Находит наименьшее значение

  • « max
  • mt_getrandmax »
  • PHP Manual
  • Математические функции
  • Находит наименьшее значение

min

(PHP 4, PHP 5, PHP 7)

min — Находит наименьшее значение

Описание

min ( array $values ) : mixed
min ( mixed $value1 [, mixed $... ] ) : mixed

Если первый и единственный параметр - массив, то min() возвратит наименьшее значение из этого массива. Если переданы хотя бы два параметра, min() вернет наименьший из них.

Замечание:

Значения разных типов будут сравниваться в соответствии со стандартными правилами сравнения. К примеру, нечисловая строка (string) будет сравниваться с целым числом (integer) так, как будто это 0, а множество нечисловых строк (string) будут сравниваться алфавитно-цифровым порядком. Выбранное значение будет возвращено без конвертации типа.

Предостережение

Будьте осторожны, задавая аргументы разных типов, поскольку результат max() может вас удивить.

Список параметров

values

Массив содержащий значения.

value1

Любое поддающееся сравнению значение.

...

Любое поддающееся сравнению значение.

Возвращаемые значения

min() вернет значение "наименьшего" из элементов массива, в соответствии со стандартными правилами сравнения. Если несколько разнотипных значений посчитаются идентичными (например 0 и 'abc'), функция вернет первое из них.

Если передан один пустой массив, то функция вернет FALSE и вызовет ошибку уровня E_WARNING.

Примеры

Пример #1 Пример использования min()

<?php
echo min(2, 3, 1, 6, 7);  // 1
echo min(array(2, 4, 5)); // 2

// 'hello' будет представлено как числое значение значение 0.
// Оба параметра имеют одинаковое значение, поэтому результат
// определяется порядком, в котором параметры переданы
echo min(0, 'hello');     // 0
echo min('hello', 0);     // hello

// Здесь сравниваются -1 < 0, так что -1 меньше
echo min('hello', -1);    // -1

// При сравнении массивов, разной длины - min вернет самый короткий
$val = max(array(2, 2, 2), array(1, 1, 1, 1)); // array(2, 2, 2)

// При указании нескольких массивов, они сравниваются полностью
// в нашем примере: 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

// Если один из аргументов NULL или будево значение, то сравнение с другими
// значениями будет происходить по правилу FALSE < TRUE и NULL == FALSE, вне
// зависимости от того какого типа параметры переданы.
// В примере ниже, -10 трактуется как TRUE
$val = min(-10, FALSE, 10); // FALSE
$val = min(-10, NULL, 10);  // NULL

// 0 всегда трактуется как FALSE, значит он "меньше чем" TRUE
$val = min(0, TRUE); // 0
?>

Смотрите также

  • max() - Возвращает наибольшее значение
  • count() - Подсчитывает количество элементов массива или чего-либо в объекте


Показывает максимально возможное значение случайного числа

  • « min
  • mt_rand »
  • PHP Manual
  • Математические функции
  • Показывает максимально возможное значение случайного числа

mt_getrandmax

(PHP 4, PHP 5, PHP 7)

mt_getrandmax — Показывает максимально возможное значение случайного числа

Описание

mt_getrandmax ( void ) : int

Возвращает максимальное значение, которое может быть получено при вызове mt_rand().

Возвращаемые значения

Возвращает максимальное случайное значение, возвращаемое mt_rand(), вызванного без аргументов, то есть максимальное значение, которое можно передать в параметр max, так чтобы результат не округлился и, соответственно, не уменьшалась случайность.

Примеры

Пример #1 Вычисление случайного числа с плавающей точкой

<?php
function randomFloat($min = 0, $max = 1) {
    return $min + mt_rand() / mt_getrandmax() * ($max - $min);
}

var_dump(randomFloat());
var_dump(randomFloat(2, 20));
?>

Результатом выполнения данного примера будет что-то подобное:

float(0.91601131712832)
float(16.511210331931)

Смотрите также

  • mt_rand() - Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна
  • mt_srand() - Переинициализирует генератор случайных чисел на базе Вихря Мерсенна
  • getrandmax() - Возвращает максимально возможное случайное число


Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна

  • « mt_getrandmax
  • mt_srand »
  • PHP Manual
  • Математические функции
  • Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна

mt_rand

(PHP 4, PHP 5, PHP 7)

mt_rand — Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна

Описание

mt_rand ( void ) : int
mt_rand ( int $min , int $max ) : int
Предостережение

Данная функция не генерирует криптографически безопасные значения и не должна использоваться в криптографических целях. Если вам требуется криптографически безопасное значение, подумайте об использовании функций random_int(), random_bytes() или openssl_random_pseudo_bytes() вместо данной.

Многие генераторы случайных чисел в старых библиотеках имеют сомнительные или неизвестные характеристики, а также работают довольно медленно. Функция mt_rand() представляет собой замену старой функции rand(). Она использует генератор случайных чисел с известными характеристиками, основанный на » Вихре Мерсенна, который генерирует случайные числа в среднем в четыре раза быстрее, чем libc rand().

Вызванная без необязательных параметров min и max, функция mt_rand() возвращает псевдослучайное значение между 0 и mt_getrandmax(). Если вам нужно, например, случайное число между 5 и 15 (включительно), используйте вызов mt_rand(5,15)

Список параметров

min

Необязательный параметр: минимальное значение случайного числа (по умолчанию: 0)

max

Необязательный параметр: максимальное значение случайного числа (по умолчанию: mt_getrandmax())

Возвращаемые значения

Случайное целое значение между min (или 0) и max (или mt_getrandmax(), включительно), или FALSE в случае, если max меньше min.

Список изменений

Версия | Описание
7.2.0 | Для mt_rand() произведено исправление бага смещения по модулю. Это означает, что последовательности сгенерированные с конкретным начальным значением могут отличаться от сгенерированных в PHP 7.1 для 64-битных машин.
7.1.0 | rand() теперь является псевдонимом для mt_rand().
7.1.0 | Функция mt_rand() была обновлена и теперь использует корректную версию генератора случайных чисел на основе Вихря Мерсенна. Для использования старого поведения, используйте mt_srand() со вторым параметром, установленным в MT_RAND_PHP.
5.3.4 | Приводит к ошибке E_WARNING и возвращает FALSE, если max < min.

Примеры

Пример #1 Пример использования mt_rand()

<?php
echo mt_rand() . "\n";
echo mt_rand() . "\n";

echo mt_rand(5, 15);
?>

Результатом выполнения данного примера будет что-то подобное:

1604716014
1478613278
6

Примечания

Внимание

Диапазон min - max не должен выходить за границы mt_getrandmax(). То есть (max - min) <= mt_getrandmax(). В противном случае, mt_rand() может возвращать менее качественные случайные числа.

Смотрите также

  • mt_srand() - Переинициализирует генератор случайных чисел на базе Вихря Мерсенна
  • mt_getrandmax() - Показывает максимально возможное значение случайного числа
  • random_int() - Генерирует криптографически безопасные псевдослучайные целые числа
  • random_bytes() - Генерирует криптографически безопасные псевдослучайные байты
  • openssl_random_pseudo_bytes() - Генерирует псевдослучайную последовательность байт
  • rand() - Генерирует случайное число


Переинициализирует генератор случайных чисел на базе Вихря Мерсенна

  • « mt_rand
  • octdec »
  • PHP Manual
  • Математические функции
  • Переинициализирует генератор случайных чисел на базе Вихря Мерсенна

mt_srand

(PHP 4, PHP 5, PHP 7)

mt_srand — Переинициализирует генератор случайных чисел на базе Вихря Мерсенна

Описание

mt_srand ([ int $seed [, int $mode = MT_RAND_MT19937 ]] ) : void

Переинициализирует генератор случайных чисел параметром seed или случайным числом, если seed не указан.

Замечание: Нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку это происходит автоматически.

Список параметров

seed

Необязательное целочисленное (integer) значение параметра переинициализации

mode

Используйте одну из следующих констант для изменения реализации генератора.

Константа | Описание
MT_RAND_MT19937 | Использовать корректную реализацию генератора на базе Вихря Мерсенна. Доступно с PHP 7.1.0.
MT_RAND_PHP | Использовать некорректную реализацию генератора на базе Вихря Мерсенна, которая использовалась до PHP 7.1.0. Эта опция присутствует только для обеспечения обратной совместимости.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
7.1.0 | srand() теперь является псевдонимом для mt_srand().
7.1.0 | mt_rand() была изменена для использования фиксированной, корректной версии алгоритма Вихря Мерсенна. Для отката к старому поведению, используйте mt_srand() со вторым параметром MT_RAND_PHP.
5.2.1 | Реализация Вихря Мерсенна (Mersenne Twister) в PHP теперь использует новый алгоритм переинициализации, разработанный Ричардом Вагнером (Richard Wagner). При том же параметре последовательность значений будет отличатся от последовательности, сгенерированной в предыдущих версиях PHP. (Ранее при одинаковых параметрах последовательность была одинаковой). Это поведение более не планируется изменять, но тем не менее, полагаться на это небезопасно.

Примеры

Пример #1 Пример использования mt_srand()

<?php
// инициализация текущими микросекундами
function make_seed()
{
  list($usec, $sec) = explode(' ', microtime());
  return $sec + $usec * 1000000;
}
mt_srand(make_seed());
$randval = mt_rand();
?>

Смотрите также

  • mt_rand() - Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна
  • mt_getrandmax() - Показывает максимально возможное значение случайного числа
  • srand() - Изменяет начальное число генератора псевдослучайных чисел


Переводит число из восьмеричной системы счисления в десятичную

  • « mt_srand
  • pi »
  • PHP Manual
  • Математические функции
  • Переводит число из восьмеричной системы счисления в десятичную

octdec

(PHP 4, PHP 5, PHP 7)

octdec — Переводит число из восьмеричной системы счисления в десятичную

Описание

octdec ( string $octal_string ) : number

Возвращает десятичный эквивалент восьмеричного числа, указанного в аргументе octal_string.

Список параметров

octal_string

Восьмеричная строка для преобразования. Любые некорректные символы в octal_string игнорируются. Начиная с PHP 7.4.0, предоставление любых некорректных символов устарело.

Возвращаемые значения

Десятичное представление octal_string

Список изменений

Версия | Описание
7.4.0 | Передача некорректных символов будет выдавать уведомление об устаревании. Результат будет вычислен так, как если бы некорректные символы не существовали.

Примеры

Пример #1 Пример использования octdec()

<?php
echo octdec('77') . "\n";
echo octdec(decoct(45));
?>

Результат выполнения данного примера:

63
45

Примечания

Замечание:

Эта функция может конвертировать числа, которые слишком большие для типа integer на текущей платформе. В этом случае большие значения возвращаются как float.

Смотрите также

  • decoct() - Переводит число из десятичной системы счисления в восьмеричную
  • bindec() - Двоичное в десятичное
  • hexdec() - Переводит число из шестнадцатеричной системы счисления в десятичную
  • base_convert() - Преобразование числа между произвольными системами счисления


Возвращает число Пи

  • « octdec
  • pow »
  • PHP Manual
  • Математические функции
  • Возвращает число Пи

pi

(PHP 4, PHP 5, PHP 7)

pi — Возвращает число Пи

Описание

pi ( void ) : float

Возвращает приближённое значение числа Пи с точностью, определяемой директивой precision в php.ini, значение по умолчанию которой равно 14. Константа M_PI даёт идентичный результат.

Возвращаемые значения

Приближенное значение числа Пи в виде числа с плавающей точкой (float).

Примеры

Пример #1 Пример использования pi()

<?php
echo pi(); // 3.1415926535898
echo M_PI; // 3.1415926535898
?>


Возведение в степень

  • « pi
  • rad2deg »
  • PHP Manual
  • Математические функции
  • Возведение в степень

pow

(PHP 4, PHP 5, PHP 7)

pow — Возведение в степень

Описание

pow ( number $base , number $exp ) : number

Возвращает base, возведенное в степень exp.

Замечание:

В PHP 5.6 и выше вы можете использовать оператор **.

Список параметров

base

Основание

exp

Показатель степени

Возвращаемые значения

Основание base возведенное в степень exp. Если оба аргумента - неотрицательные целые и результат может быть представлен как целое, то возвращаемый результат будет типа integer. В ином случае результат будет типа float.

Примеры

Пример #1 Примеры использования pow()

<?php

var_dump(pow(2, 8)); // int(256)
echo pow(-1, 20); // 1
echo pow(0, 0); // 1
echo pow(10, -1); // 0.1

echo pow(-1, 5.5); // PHP >=5.2.2: NAN
echo pow(-1, 5.5); // PHP <5.2.2: -NAN
?>

Примечания

Замечание:

Функция преобразует все входные значения, даже нескалярные, к числовым, что может привести к странным результатам.

Смотрите также

  • exp() - Вычисляет степень числа e
  • sqrt() - Квадратный корень
  • bcpow() - Возведение в степень чисел с произвольной точностью
  • gmp_pow() - Возводит число в степень


Преобразует значение из радианов в градусы

  • « pow
  • rand »
  • PHP Manual
  • Математические функции
  • Преобразует значение из радианов в градусы

rad2deg

(PHP 4, PHP 5, PHP 7)

rad2deg — Преобразует значение из радианов в градусы

Описание

rad2deg ( float $number ) : float

Функция преобразует значение number из радианов в градусы.

Список параметров

number

Значение в радианах

Возвращаемые значения

Эквивалент number в градусах

Примеры

Пример #1 Пример использования rad2deg()

<?php

echo rad2deg(M_PI_4); // 45

?>

Смотрите также

  • deg2rad() - Преобразует значение из градусов в радианы


Генерирует случайное число

  • « rad2deg
  • round »
  • PHP Manual
  • Математические функции
  • Генерирует случайное число

rand

(PHP 4, PHP 5, PHP 7)

rand — Генерирует случайное число

Описание

rand ( void ) : int
rand ( int $min , int $max ) : int

При вызове без параметров min и max, возвращает псевдослучайное целое в диапазоне от 0 до getrandmax(). Например, если вам нужно случайное число между 5 и 15 (включительно), вызовите rand(5, 15).

Предостережение

Данная функция не генерирует криптографически безопасные значения и не должна использоваться в криптографических целях. Если вам требуется криптографически безопасное значение, подумайте об использовании функций random_int(), random_bytes() или openssl_random_pseudo_bytes() вместо данной.

Замечание: На некоторых платформах (таких как Windows) getrandmax() всего лишь 32767. Чтобы расширить диапазон, используйте параметры min и max, или обратитесь к функции mt_rand().

Замечание: Начиная с PHP 7.1.0, rand() использует тот же алгоритм получения случайных чисел, что и mt_rand(). Для сохранения обратной совместимости, функция rand() позволяет задавать параметр max меньше, чем параметр min. Функция mt_rand() в такой ситуации будет возвращать FALSE

Список параметров

min

Наименьшее значение, которое может быть возвращено (по умолчанию: 0)

max

Наибольшее значение, которое может быть возвращено (по умолчанию: getrandmax())

Возвращаемые значения

Псевдослучайное значение в диапазоне от min (или 0) до max (или getrandmax()).

Список изменений

Версия | Описание
7.2.0 | Для rand() произведено исправление бага смещения по модулю. Это означает, что последовательности сгенерированные с конкретным начальным значением могут отличаться от сгенерированных в PHP 7.1 для 64-битных машин.
7.1.0 | rand() стала синонимом функции mt_rand().

Примеры

Пример #1 Пример использования rand()

<?php
echo rand() . "\n";
echo rand() . "\n";

echo rand(5, 15);
?>

Результатом выполнения данного примера будет что-то подобное:

7771
22264
11

Примечания

Внимание

Диапазон min - max не должен выходить за границы getrandmax(). То есть (max - min) <= getrandmax(). В противном случае, rand() может возвращать менее качественные случайные числа.

Смотрите также

  • srand() - Изменяет начальное число генератора псевдослучайных чисел
  • getrandmax() - Возвращает максимально возможное случайное число
  • mt_rand() - Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна
  • random_int() - Генерирует криптографически безопасные псевдослучайные целые числа
  • random_bytes() - Генерирует криптографически безопасные псевдослучайные байты
  • openssl_random_pseudo_bytes() - Генерирует псевдослучайную последовательность байт


Округляет число типа float

  • « rand
  • sin »
  • PHP Manual
  • Математические функции
  • Округляет число типа float

round

(PHP 4, PHP 5, PHP 7)

round — Округляет число типа float

Описание

round ( float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP ]] ) : float

Возвращает округлённое значение val с указанной точностью precision (количество цифр после запятой). precision может быть отрицательным или нулём (по умолчанию).

Замечание: PHP по умолчанию не может правильно обрабатывать строки типа "12,300.2". Более подробно читайте в разделе Преобразование строк в числа.

Список параметров

val

Значение для округления.

precision

Количество десятичных знаков, до которых производится округление

Если precision положительный, округление будет производиться справа от запятой.

Если precision отрицателен, округление будет производиться слева от запятой. Если абсолютное значение precision больше или равно количеству цифр, результат округления будет равен 0

mode

Используйте одну из этих констант для задания способа округления.

Константы | Описание
PHP_ROUND_HALF_UP | Округляет val в большую сторону от нуля до precision десятичных знаков, если следующий знак находится посередине. То есть округляет 1.5 в 2 и -1.5 в -2.
PHP_ROUND_HALF_DOWN | Округляет val в меньшую сторону к нулю до precision десятичных знаков, если следующий знак находится посередине. То есть округляет 1.5 в 1 и -1.5 в -1.
PHP_ROUND_HALF_EVEN | Округляет val до precision десятичных знаков в сторону ближайшего четного знака.
PHP_ROUND_HALF_ODD | Округляет val до precision десятичных знаков в сторону ближайшего нечетного знака.

Возвращаемые значения

Значение округляется до заданного значения precision как float.

Примеры

Пример #1 Пример использования round()

<?php
var_dump round(3.4);         // 3
var_dump round(3.5);         // 4
var_dump round(3.6);         // 4
var_dump round(3.6, 0);      // 4
var_dump round(1.95583, 2);  // 1.96
var_dump round(1241757, -3); // 1242000
var_dump round(5.045, 2);    // 5.05
var_dump round(5.055, 2);    // 5.06
?>

Результат выполнения данного примера:

float(3)
float(4)
float(4)
float(4)
float(1.96)
float(1242000)
float(5.05)
float(5.06)

Пример #2 Как параметр precision влияет на числа с плавющей запятой

<?php
$number = 1346.21;

var_dump(round($number, 2));
var_dump(round($number, 1));
var_dump(round($number, 0));
var_dump(round($number, -1));
var_dump(round($number, -2));
var_dump(round($number, -3));
var_dump(round($number, -4));
?>

Результат выполнения данного примера:

float(1346.21)
float(1346.2)
float(1346)
float(1350)
float(1300)
float(1000)
float(0)

Пример #3 Примеры использования параметра mode

<?php
echo 'Rounding modes with 9.5' . PHP_EOL;
var_dump(round(9.5, 0, PHP_ROUND_HALF_UP));
var_dump(round(9.5, 0, PHP_ROUND_HALF_DOWN));
var_dump(round(9.5, 0, PHP_ROUND_HALF_EVEN));
var_dump(round(9.5, 0, PHP_ROUND_HALF_ODD));

echo 'Rounding modes with 8.5' . PHP_EOL;
var_dump(round(8.5, 0, PHP_ROUND_HALF_UP));
var_dump(round(8.5, 0, PHP_ROUND_HALF_DOWN));
var_dump(round(8.5, 0, PHP_ROUND_HALF_EVEN));
var_dump(round(8.5, 0, PHP_ROUND_HALF_ODD));
?>

Результат выполнения данного примера:

Rounding modes with 9.5
float(10)
float(9)
float(10)
float(9)
Rounding modes with 8.5
float(9)
float(8)
float(8)
float(9)

Пример #4 Примеры использования параметра mode с указанием точности precision

<?php
echo 'Использование PHP_ROUND_HALF_UP с точностью до 1 знака' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_UP));
var_dump(round( 1.54, 1, PHP_ROUND_HALF_UP));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_UP));
var_dump(round(-1.54, 1, PHP_ROUND_HALF_UP));

echo PHP_EOL;
echo 'Использование PHP_ROUND_HALF_DOWN с точностью до 1 знака' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_DOWN));
var_dump(round( 1.54, 1, PHP_ROUND_HALF_DOWN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_DOWN));
var_dump(round(-1.54, 1, PHP_ROUND_HALF_DOWN));

echo PHP_EOL;
echo 'Использование PHP_ROUND_HALF_EVEN с точностью до 1 знака' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_EVEN));
var_dump(round( 1.54, 1, PHP_ROUND_HALF_EVEN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_EVEN));
var_dump(round(-1.54, 1, PHP_ROUND_HALF_EVEN));

echo PHP_EOL;
echo 'Использование PHP_ROUND_HALF_ODD с точностью до 1 знака' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_ODD));
var_dump(round( 1.54, 1, PHP_ROUND_HALF_ODD));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_ODD));
var_dump(round(-1.54, 1, PHP_ROUND_HALF_ODD));
?>

Результат выполнения данного примера:

Использование PHP_ROUND_HALF_UP с точностью до 1 знака
float(1.6)
float(1.5)
float(-1.6)
float(-1.5)

Использование PHP_ROUND_HALF_DOWN с точностью до 1 знака
float(1.5)
float(1.5)
float(-1.5)
float(-1.5)

Использование PHP_ROUND_HALF_EVEN с точностью до 1 знака
float(1.6)
float(1.5)
float(-1.6)
float(-1.5)

Использование PHP_ROUND_HALF_ODD с точностью до 1 знака
float(1.5)
float(1.5)
float(-1.5)
float(-1.5)

Список изменений

Версия | Описание
5.3.0 | Был добавлен параметр mode.
5.2.7 | Работа функции round() была изменена в соответствии со стандартом C99.

Смотрите также

  • ceil() - Округляет дробь в большую сторону
  • floor() - Округляет дробь в меньшую сторону
  • number_format() - Форматирует число с разделением групп


Синус

  • « round
  • sinh »
  • PHP Manual
  • Математические функции
  • Синус

sin

(PHP 4, PHP 5, PHP 7)

sin — Синус

Описание

sin ( float $arg ) : float

sin() возвращает синус параметра arg . Параметр arg задаётся в радианах.

Список параметров

arg

Значение в радианах

Возвращаемые значения

Синус угла arg

Примеры

Пример #1 Пример использования sin()

<?php

// Точность зависит от ваших настроек точности
echo sin(deg2rad(60));  //  0.866025403 ...
echo sin(60);           // -0.304810621 ...

?>

Смотрите также

  • asin() - Арксинус
  • sinh() - Гиперболический синус
  • cos() - Косинус
  • tan() - Тангенс
  • deg2rad() - Преобразует значение из градусов в радианы


Гиперболический синус

  • « sin
  • sqrt »
  • PHP Manual
  • Математические функции
  • Гиперболический синус

sinh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

sinh — Гиперболический синус

Описание

sinh ( float $arg ) : float

Возвращает гиперболический синус arg, определяемый как (exp(arg) - exp(-arg))/2.

Список параметров

arg

Входное значение

Возвращаемые значения

Гиперболический синус arg

Смотрите также

  • sin() - Синус
  • asinh() - Гиперболический арксинус
  • cosh() - Гиперболический косинус
  • tanh() - Гиперболический тангенс


Квадратный корень

  • « sinh
  • srand »
  • PHP Manual
  • Математические функции
  • Квадратный корень

sqrt

(PHP 4, PHP 5, PHP 7)

sqrt — Квадратный корень

Описание

sqrt ( float $arg ) : float

Возвращает квадратный корень из arg.

Список параметров

arg

Аргумент для вычисления

Возвращаемые значения

Квадратный корень из arg или специальное значение NAN для отрицательных чисел.

Примеры

Пример #1 Пример использованияsqrt()

<?php
// Точность зависит от ваших настроек точности
echo sqrt(9); // 3
echo sqrt(10); // 3.16227766 ...
?>

Смотрите также

  • pow() - Возведение в степень


Изменяет начальное число генератора псевдослучайных чисел

  • « sqrt
  • tan »
  • PHP Manual
  • Математические функции
  • Изменяет начальное число генератора псевдослучайных чисел

srand

(PHP 4, PHP 5, PHP 7)

srand — Изменяет начальное число генератора псевдослучайных чисел

Описание

srand ([ int $seed ] ) : void

Устанавливает начальное число генератора случайных чисел равным seed или случайному числу, если seed не указан.

Замечание: Нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку это происходит автоматически.

Замечание: Начиная с PHP 7.1.0, srand() стала синонимом функции mt_srand().

Список параметров

seed

Произвольное целочисленное (integer) начальное значение генератора

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
7.1.0 | srand() стала синонимом функции mt_srand().

Примеры

Пример #1 Пример использования srand()

<?php
// рандомизировать микросекундами
function make_seed()
{
    list($usec, $sec) = explode(' ', microtime());
    return $sec + $usec * 1000000;
}
srand(make_seed());
$randval = rand();
?>

Смотрите также

  • rand() - Генерирует случайное число
  • getrandmax() - Возвращает максимально возможное случайное число
  • mt_srand() - Переинициализирует генератор случайных чисел на базе Вихря Мерсенна


Тангенс

  • « srand
  • tanh »
  • PHP Manual
  • Математические функции
  • Тангенс

tan

(PHP 4, PHP 5, PHP 7)

tan — Тангенс

Описание

tan ( float $arg ) : float

tan() возвращает тангенс параметра arg. Параметр arg задаётся в радианах.

Список параметров

arg

Значение в радианах

Возвращаемые значения

Тангенс угла arg

Примеры

Пример #1 Пример использования tan()

<?php

echo tan(M_PI_4); // 1

?>

Смотрите также

  • atan() - Арктангенс
  • atan2() - Арктангенс двух переменных
  • sin() - Синус
  • cos() - Косинус
  • tanh() - Гиперболический тангенс
  • deg2rad() - Преобразует значение из градусов в радианы


Гиперболический тангенс

  • « tan
  • Статистика »
  • PHP Manual
  • Математические функции
  • Гиперболический тангенс

tanh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

tanh — Гиперболический тангенс

Описание

tanh ( float $arg ) : float

Возвращает гиперболический тангенс arg, определяемый как sinh(arg)/cosh(arg).

Список параметров

arg

Входное значение

Возвращаемые значения

Гиперболический тангенс arg

Смотрите также

  • tan() - Тангенс
  • atanh() - Гиперболический арктангенс
  • sinh() - Гиперболический синус
  • cosh() - Гиперболический косинус


Статистика

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Статистические Функции
    • stats_absolute_deviation — Возвращает абсолютное отклонение массива значений
    • stats_cdf_beta — Вычисляет любой один параметр Бета-распределения на основе остальных заданных значений
    • stats_cdf_binomial — Вычисляет один из параметров биноминального распределения по остальным
    • stats_cdf_cauchy — Вычисляет один из параметров распределения Коши по остальным
    • stats_cdf_chisquare — Вычисляет один из параметров распределения хи-квадрат по остальным
    • stats_cdf_exponential — Вычисляет один из параметров экспоненциального распределения по остальным
    • stats_cdf_f — Вычисляет один из параметров распределения Фишера по остальным
    • stats_cdf_gamma — Вычисляет один из параметров Гамма-распределения по остальным
    • stats_cdf_laplace — Вычисляет один из параметров распределения Лапласа по остальным
    • stats_cdf_logistic — Вычисляет один из параметров логистического распределения по остальным
    • stats_cdf_negative_binomial — Вычисляет один из параметров Отрицательного Биноминального распределения по остальным
    • stats_cdf_noncentral_chisquare — Вычисляет один из параметров нецентрального распределения хи-квадрат по остальным
    • stats_cdf_noncentral_f — Вычисляет один из параметров нецентрального распределения Фишера по остальным
    • stats_cdf_noncentral_t — Вычисляет один из параметров нецентрального распределения Стьюдента в зависимости от остальных
    • stats_cdf_normal — Вычисляет один из параметров распределения в зависимости от остальных
    • stats_cdf_poisson — Вычисляет один из параметров распределения Пуассона по остальным
    • stats_cdf_t — Вычисляет один из параметров распределения Стьюдента по остальным
    • stats_cdf_uniform — Вычисляет один из параметров равномерного распределения по остальным
    • stats_cdf_weibull — Вычисляет один из параметров распределения Вейбулла по остальным
    • stats_covariance — Вычисляет ковариацию двух наборов данных
    • stats_dens_beta — Плотность вероятности бета-распределения
    • stats_dens_cauchy — Плотность вероятности распределения Коши
    • stats_dens_chisquare — Плотность вероятности распределения хи-квадрат
    • stats_dens_exponential — Плотность вероятности экспоненциального распределения
    • stats_dens_f — Плотность вероятности распределения Фишера
    • stats_dens_gamma — Плотность вероятности гамма-распределения
    • stats_dens_laplace — Плотность вероятности распределения Лапласа
    • stats_dens_logistic — Плотность вероятности логистического распределения
    • stats_dens_normal — Возвращает плотность вероятности нормального распределения
    • stats_dens_pmf_binomial — Вероятностная мера биноминального распределения
    • stats_dens_pmf_hypergeometric — Вероятностная мера гипергеометрического распределения
    • stats_dens_pmf_negative_binomial — Функция плотности вероятности негативного биноминального распределения
    • stats_dens_pmf_poisson — Вероятностная мера распределения Пуассона
    • stats_dens_t — Плотность вероятности распределения Стьюдента
    • stats_dens_uniform — Функция плотности вероятности равномерного распределения
    • stats_dens_weibull — Плотность вероятности распределения Вейбулла
    • stats_harmonic_mean — Возвращает среднее гармоническое массива значений
    • stats_kurtosis — Вычисляет эксцесс данных в массиве
    • stats_rand_gen_beta — Вычисляет случайное отклонение от бета-распределения
    • stats_rand_gen_chisquare — Вычисляет случайное отклонение от распределения хи-квадрат
    • stats_rand_gen_exponential — Вычисляет случайное отклонение от экспоненциального распределения
    • stats_rand_gen_f — Генерирует случайное отклонение от распределения Фишера
    • stats_rand_gen_funiform — Сгенерировать рациональное число от low (исключая) до high (исключая) на базе равномерного распределения
    • stats_rand_gen_gamma — Вычисляет случайное отклонение от гамма-распределения
    • stats_rand_gen_ibinomial_negative — Вычисляет случайное отклонение от отрицательного биноминального распределения
    • stats_rand_gen_ibinomial — Вычисляет случайное отклонение от биноминального распределения
    • stats_rand_gen_int — Генерирует случайное число в диапазоне от 1 до 2147483562
    • stats_rand_gen_ipoisson — Вычисляет случайное отклонение от распределения Пуассона
    • stats_rand_gen_iuniform — Геренирует целое число равномерно распределенное в диапазоне LOW (включая) и HIGH (включая)
    • stats_rand_gen_noncentral_chisquare — Генерирует случайное отклонение нецентрального распределения хи-квардат
    • stats_rand_gen_noncentral_f — Вычисляет случайное отклонение от нецентрального распределения Фишера
    • stats_rand_gen_noncentral_t — Вычисляет единичное случайное отклонение от нецентрального распределения Стьюдента
    • stats_rand_gen_normal — Вычисляет случайное отклонение от нормального распределения
    • stats_rand_gen_t — Вычисляет одиночное случайное отклонение от распределения Стьюдента
    • stats_rand_get_seeds — Получить начальные значения генератора случайных чисел
    • stats_rand_phrase_to_seeds — Генерирует два начальных значения для генератора случайных чисел RGN
    • stats_rand_ranf — Возвращает случайное рациональное число в диапазоне 0 - 1
    • stats_rand_setall — Задать начальные значения генератора случайных чисел
    • stats_skew — Вычисляет асимметрию данных в массиве
    • stats_standard_deviation — Возвращает стандартное отклонение
    • stats_stat_binomial_coef — Получить биноминальный коэффициент
    • stats_stat_correlation — Возвращает коэффициент корреляции Пирсона двух наборов данных
    • stats_stat_factorial — Факториал целого числа
    • stats_stat_independent_t — Получить значение t для двухвыборочного t-критерия Стьюдента для независимых выборок
    • stats_stat_innerproduct — Возвращает скалярное произведение двух векторов
    • stats_stat_paired_t — Получить значение t для двухвыборочного t-критерия Стьюдента для зависимых выборок
    • stats_stat_percentile — Возвращает значение процентили
    • stats_stat_powersum — Возвращает сумму степеней вектора
    • stats_variance — Возвращает дисперсию


Введение

Это статистический модуль. Он содержит несколько десятков функций, полезных для статистических расчетов. Это обертка над двумя научными библиотеками, а именно - DCDFLIB (библиотека подпрограмм на C для кумулятивных функций распределения, обратных, и других характеристик) от B. Brown & J. Lavato и RANDLIB от Barry Brown, James Lavato & Kathy Russell. Включает кумулятивные функции распределения (CD) и функции плотности вероятности (PD).


Требования

Никаких внешних библиотек не требуется. Используемые библиотеки идут в комплекте с этим модулем.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/stats.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Типы ресурсов
  • Статистические Функции »
  • PHP Manual
  • Статистика
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Статистические Функции

Содержание

  • stats_absolute_deviation — Возвращает абсолютное отклонение массива значений
  • stats_cdf_beta — Вычисляет любой один параметр Бета-распределения на основе остальных заданных значений
  • stats_cdf_binomial — Вычисляет один из параметров биноминального распределения по остальным
  • stats_cdf_cauchy — Вычисляет один из параметров распределения Коши по остальным
  • stats_cdf_chisquare — Вычисляет один из параметров распределения хи-квадрат по остальным
  • stats_cdf_exponential — Вычисляет один из параметров экспоненциального распределения по остальным
  • stats_cdf_f — Вычисляет один из параметров распределения Фишера по остальным
  • stats_cdf_gamma — Вычисляет один из параметров Гамма-распределения по остальным
  • stats_cdf_laplace — Вычисляет один из параметров распределения Лапласа по остальным
  • stats_cdf_logistic — Вычисляет один из параметров логистического распределения по остальным
  • stats_cdf_negative_binomial — Вычисляет один из параметров Отрицательного Биноминального распределения по остальным
  • stats_cdf_noncentral_chisquare — Вычисляет один из параметров нецентрального распределения хи-квадрат по остальным
  • stats_cdf_noncentral_f — Вычисляет один из параметров нецентрального распределения Фишера по остальным
  • stats_cdf_noncentral_t — Вычисляет один из параметров нецентрального распределения Стьюдента в зависимости от остальных
  • stats_cdf_normal — Вычисляет один из параметров распределения в зависимости от остальных
  • stats_cdf_poisson — Вычисляет один из параметров распределения Пуассона по остальным
  • stats_cdf_t — Вычисляет один из параметров распределения Стьюдента по остальным
  • stats_cdf_uniform — Вычисляет один из параметров равномерного распределения по остальным
  • stats_cdf_weibull — Вычисляет один из параметров распределения Вейбулла по остальным
  • stats_covariance — Вычисляет ковариацию двух наборов данных
  • stats_dens_beta — Плотность вероятности бета-распределения
  • stats_dens_cauchy — Плотность вероятности распределения Коши
  • stats_dens_chisquare — Плотность вероятности распределения хи-квадрат
  • stats_dens_exponential — Плотность вероятности экспоненциального распределения
  • stats_dens_f — Плотность вероятности распределения Фишера
  • stats_dens_gamma — Плотность вероятности гамма-распределения
  • stats_dens_laplace — Плотность вероятности распределения Лапласа
  • stats_dens_logistic — Плотность вероятности логистического распределения
  • stats_dens_normal — Возвращает плотность вероятности нормального распределения
  • stats_dens_pmf_binomial — Вероятностная мера биноминального распределения
  • stats_dens_pmf_hypergeometric — Вероятностная мера гипергеометрического распределения
  • stats_dens_pmf_negative_binomial — Функция плотности вероятности негативного биноминального распределения
  • stats_dens_pmf_poisson — Вероятностная мера распределения Пуассона
  • stats_dens_t — Плотность вероятности распределения Стьюдента
  • stats_dens_uniform — Функция плотности вероятности равномерного распределения
  • stats_dens_weibull — Плотность вероятности распределения Вейбулла
  • stats_harmonic_mean — Возвращает среднее гармоническое массива значений
  • stats_kurtosis — Вычисляет эксцесс данных в массиве
  • stats_rand_gen_beta — Вычисляет случайное отклонение от бета-распределения
  • stats_rand_gen_chisquare — Вычисляет случайное отклонение от распределения хи-квадрат
  • stats_rand_gen_exponential — Вычисляет случайное отклонение от экспоненциального распределения
  • stats_rand_gen_f — Генерирует случайное отклонение от распределения Фишера
  • stats_rand_gen_funiform — Сгенерировать рациональное число от low (исключая) до high (исключая) на базе равномерного распределения
  • stats_rand_gen_gamma — Вычисляет случайное отклонение от гамма-распределения
  • stats_rand_gen_ibinomial_negative — Вычисляет случайное отклонение от отрицательного биноминального распределения
  • stats_rand_gen_ibinomial — Вычисляет случайное отклонение от биноминального распределения
  • stats_rand_gen_int — Генерирует случайное число в диапазоне от 1 до 2147483562
  • stats_rand_gen_ipoisson — Вычисляет случайное отклонение от распределения Пуассона
  • stats_rand_gen_iuniform — Геренирует целое число равномерно распределенное в диапазоне LOW (включая) и HIGH (включая)
  • stats_rand_gen_noncentral_chisquare — Генерирует случайное отклонение нецентрального распределения хи-квардат
  • stats_rand_gen_noncentral_f — Вычисляет случайное отклонение от нецентрального распределения Фишера
  • stats_rand_gen_noncentral_t — Вычисляет единичное случайное отклонение от нецентрального распределения Стьюдента
  • stats_rand_gen_normal — Вычисляет случайное отклонение от нормального распределения
  • stats_rand_gen_t — Вычисляет одиночное случайное отклонение от распределения Стьюдента
  • stats_rand_get_seeds — Получить начальные значения генератора случайных чисел
  • stats_rand_phrase_to_seeds — Генерирует два начальных значения для генератора случайных чисел RGN
  • stats_rand_ranf — Возвращает случайное рациональное число в диапазоне 0 - 1
  • stats_rand_setall — Задать начальные значения генератора случайных чисел
  • stats_skew — Вычисляет асимметрию данных в массиве
  • stats_standard_deviation — Возвращает стандартное отклонение
  • stats_stat_binomial_coef — Получить биноминальный коэффициент
  • stats_stat_correlation — Возвращает коэффициент корреляции Пирсона двух наборов данных
  • stats_stat_factorial — Факториал целого числа
  • stats_stat_independent_t — Получить значение t для двухвыборочного t-критерия Стьюдента для независимых выборок
  • stats_stat_innerproduct — Возвращает скалярное произведение двух векторов
  • stats_stat_paired_t — Получить значение t для двухвыборочного t-критерия Стьюдента для зависимых выборок
  • stats_stat_percentile — Возвращает значение процентили
  • stats_stat_powersum — Возвращает сумму степеней вектора
  • stats_variance — Возвращает дисперсию


Возвращает абсолютное отклонение массива значений

  • « Статистические Функции
  • stats_cdf_beta »
  • PHP Manual
  • Статистические Функции
  • Возвращает абсолютное отклонение массива значений

stats_absolute_deviation

(PECL stats >= 1.0.0)

stats_absolute_deviation — Возвращает абсолютное отклонение массива значений

Описание

stats_absolute_deviation ( array $a ) : float

Возвращает абсолютное отклонение массива значений a.

Список параметров

a

Массив входных данных

Возвращаемые значения

Возвращает абсолютное отклонение массива значений a, или FALSE, если a пуст или не является массивом.


Вычисляет любой один параметр Бета-распределения на основе остальных заданных значений

  • « stats_absolute_deviation
  • stats_cdf_binomial »
  • PHP Manual
  • Статистические Функции
  • Вычисляет любой один параметр Бета-распределения на основе остальных заданных значений

stats_cdf_beta

(PECL stats >= 1.0.0)

stats_cdf_beta — Вычисляет любой один параметр Бета-распределения на основе остальных заданных значений

Описание

stats_cdf_beta ( float $par1 , float $par2 , float $par3 , int $which ) : float

Возвращает кумулятивную функцию бета-распределения, обратную ей или один из своих параметров. Вид возвращаемого значения и параметров (par1, par2 и par3) определяются параметром which.

В следующей таблице перечислены возвращаемое значение и параметры в зависимости от which. CDF, x, alpha и beta обозначает функцию кумулятивного распределения, значение случайной величины и параметры формы бета-распределения соответственно.

Возвращаемое значение и параметры
which | Возвращаемое значение | par1 | par2 | par3
1 | CDF | x | alpha | beta
2 | x | CDF | alpha | beta
3 | alpha | x | CDF | beta
4 | beta | x | CDF | alpha

Список параметров

par1

Первый параметр

par2

Второй параметр

par3

Третий параметр

which

Флаг, определяющий, что будет возвращено

Возвращаемые значения

Возвращает CDF, x, alpha или beta, в зависимости от значения which.


Вычисляет один из параметров биноминального распределения по остальным

  • « stats_cdf_beta
  • stats_cdf_cauchy »
  • PHP Manual
  • Статистические Функции
  • Вычисляет один из параметров биноминального распределения по остальным

stats_cdf_binomial

(PECL stats >= 1.0.0)

stats_cdf_binomial — Вычисляет один из параметров биноминального распределения по остальным

Описание

stats_cdf_binomial ( float $par1 , float $par2 , float $par3 , int $which ) : float

Возвращает кумулятивную функцию биноминального распределения, обратную ей или один из своих параметров. Вид возвращаемого значения и параметров (par1, par2 и par3) определяются параметром which.

В следующей таблице перечислены возвращаемое значение и параметры в зависимости от which. CDF, x, n и p обозначает функцию кумулятивного распределения, количество успешных испытаний, общее количество испытаний и коэффициент успеха для каждого испытания соответственно.

Возвращаемое значение и параметры
which | Возвращаемое значение | par1 | par2 | par3
1 | CDF | x | n | p
2 | x | CDF | n | p
3 | n | x | CDF | p
4 | p | x | CDF | n

Список параметров

par1

Первый параметр

par2

Второй параметр

par3

Третий параметр

which

Флаг, определяющий, что будет возвращено

Возвращаемые значения

Возвращает CDF, x, n или p, в зависимости от значения which.


Вычисляет один из параметров распределения Коши по остальным

  • « stats_cdf_binomial
  • stats_cdf_chisquare »
  • PHP Manual
  • Статистические Функции
  • Вычисляет один из параметров распределения Коши по остальным

stats_cdf_cauchy

(PECL stats >= 1.0.0)

stats_cdf_cauchy — Вычисляет один из параметров распределения Коши по остальным

Описание

stats_cdf_cauchy ( float $par1 , float $par2 , float $par3 , int $which ) : float

Возвращает кумулятивную функцию распределения Коши, обратную ей или один из своих параметров. Вид возвращаемого значения и параметров (par1, par2 и par3) определяются параметром which.

В следующей таблице перечислены возвращаемое значение и параметры в зависимости от which. CDF, x, x0 и gamma обозначает функцию кумулятивного распределения, значение случайной переменной, параметр сдвига и масштаба соответственно.

Возвращаемое значение и параметры
which | Возвращаемое значение | par1 | par2 | par3
1 | CDF | x | x0 | gamma
2 | x | CDF | x0 | gamma
3 | x0 | x | CDF | gamma
4 | gamma | x | CDF | x0

Список параметров

par1

Первый параметр

par2

Второй параметр

par3

Третий параметр

which

Флаг, определяющий, что будет возвращено

Возвращаемые значения

Возвращает CDF, x, x0 или gamma, в зависимости от значения which.


Вычисляет один из параметров распределения хи-квадрат по остальным

  • « stats_cdf_cauchy
  • stats_cdf_exponential »
  • PHP Manual
  • Статистические Функции
  • Вычисляет один из параметров распределения хи-квадрат по остальным

stats_cdf_chisquare

(PECL stats >= 1.0.0)

stats_cdf_chisquare — Вычисляет один из параметров распределения хи-квадрат по остальным

Описание

stats_cdf_chisquare ( float $par1 , float $par2 , int $which ) : float

Возвращает кумулятивную функцию распределения хи-квадрат, обратную ей или один из своих параметров. Вид возвращаемого значения и параметров (par1 и par2) определяются параметром which.

В следующей таблице перечислены возвращаемое значение и параметры в зависимости от which. CDF, x и k обозначает функцию кумулятивного распределения, значение случайной переменной и степени свободы соответственно.

Возвращаемое значение и параметры
which | Возвращаемое значение | par1 | par2
1 | CDF | x | k
2 | x | CDF | k
3 | k | x | CDF

Список параметров

par1

Первый параметр

par2

Второй параметр

which

Флаг, определяющий, что будет возвращено

Возвращаемые значения

Возвращает CDF, x или k, в зависимости от значения which.


Вычисляет один из параметров экспоненциального распределения по остальным

  • « stats_cdf_chisquare
  • stats_cdf_f »
  • PHP Manual
  • Статистические Функции
  • Вычисляет один из параметров экспоненциального распределения по остальным

stats_cdf_exponential

(PECL stats >= 1.0.0)

stats_cdf_exponential — Вычисляет один из параметров экспоненциального распределения по остальным

Описание

stats_cdf_exponential ( float $par1 , float $par2 , int $which ) : float

Возвращает кумулятивную функцию экспоненциального распределения, обратную ей или один из своих параметров. Вид возвращаемого значения и параметров (par1 и par2) определяются параметром which.

В следующей таблице перечислены возвращаемое значение и параметры в зависимости от which. CDF, x и lambda обозначает функцию кумулятивного распределения, значение случайной переменной и интенсивность (обратный коэффициент масштаба) соответственно.

Возвращаемое значение и параметры
which | Возвращаемое значение | par1 | par2
1 | CDF | x | lambda
2 | x | CDF | lambda
3 | lambda | x | CDF

Список параметров

par1

Первый параметр

par2

Второй параметр

which

Флаг, определяющий, что будет возвращено

Возвращаемые значения

Возвращает CDF, x или lambda, в зависимости от значения which.


Вычисляет один из параметров распределения Фишера по остальным

  • « stats_cdf_exponential
  • stats_cdf_gamma »
  • PHP Manual
  • Статистические Функции
  • Вычисляет один из параметров распределения Фишера по остальным

stats_cdf_f

(PECL stats >= 1.0.0)

stats_cdf_f — Вычисляет один из параметров распределения Фишера по остальным

Описание

stats_cdf_f ( float $par1 , float $par2 , float $par3 , int $which ) : float

Возвращает кумулятивную функцию распределения Фишера, обратную ей или один из своих параметров. Вид возвращаемого значения и параметров (par1, par2 и par3) определяются параметром which.

В следующей таблице перечислены возвращаемое значение и параметры в зависимости от which. CDF, x, d1 и d2 обозначает функцию кумулятивного распределения, значение случайной переменной и степени свободы соответственно.

Возвращаемое значение и параметры
which | Возвращаемое значение | par1 | par2 | par3
1 | CDF | x | d1 | d2
2 | x | CDF | d1 | d2
3 | d1 | x | CDF | d2
4 | d2 | x | CDF | d1

Список параметров

par1

Первый параметр

par2

Второй параметр

par3

Третий параметр

which

Флаг, определяющий, что будет возвращено

Возвращаемые значения

Возвращает CDF, x, d1 или d2, в зависимости от значения which.


Вычисляет один из параметров Гамма-распределения по остальным

  • « stats_cdf_f
  • stats_cdf_laplace »
  • PHP Manual
  • Статистические Функции
  • Вычисляет один из параметров Гамма-распределения по остальным

stats_cdf_gamma

(PECL stats >= 1.0.0)

stats_cdf_gamma — Вычисляет один из параметров Гамма-распределения по остальным

Описание

stats_cdf_gamma ( float $par1 , float $par2 , float $par3 , int $which ) : float

Возвращает кумулятивную функцию Гамма-распределения, обратную ей или один из своих параметров. Вид возвращаемого значения и параметров (par1, par2 и par3) определяются параметром which.

В следующей таблице перечислены возвращаемое значение и параметры в зависимости от which. CDF, x, k и theta обозначает функцию кумулятивного распределения, значение случайной переменной, коэффициент формы и масштаба соответственно.

Возвращаемое значение и параметры
which | Возвращаемое значение | par1 | par2 | par3
1 | CDF | x | k | theta
2 | x | CDF | k | theta
3 | k | x | CDF | theta
4 | theta | x | CDF | k

Список параметров

par1

Первый параметр

par2

Второй параметр

par3

Третий параметр

which

Флаг, определяющий, что будет возвращено

Возвращаемые значения

Возвращает CDF, x, k или theta, в зависимости от значения which.


Вычисляет один из параметров распределения Лапласа по остальным

  • « stats_cdf_gamma
  • stats_cdf_logistic »
  • PHP Manual
  • Статистические Функции
  • Вычисляет один из параметров распределения Лапласа по остальным

stats_cdf_laplace

(PECL stats >= 1.0.0)

stats_cdf_laplace — Вычисляет один из параметров распределения Лапласа по остальным

Описание

stats_cdf_laplace ( float $par1 , float $par2 , float $par3 , int $which ) : float

Возвращает кумулятивную функцию распределения Лапласа, обратную ей или один из своих параметров. Вид возвращаемого значения и параметров (par1, par2 и par3) определяются параметром which.

В следующей таблице перечислены возвращаемое значение и параметры в зависимости от which. CDF, x, mu и b обозначает функцию кумулятивного распределения, значение случайной переменной, параметр сдвига и масштаба соответственно.

Возвращаемое значение и параметры
which | Возвращаемое значение | par1 | par2 | par3
1 | CDF | x | mu | b
2 | x | CDF | mu | b
3 | mu | x | CDF | b
4 | b | x | CDF | mu

Список параметров

par1

Первый параметр

par2

Второй параметр

par3

Третий параметр

which

Флаг, определяющий, что будет возвращено

Возвращаемые значения

Возвращает CDF, x, mu или b, в зависимости от значения which.


Вычисляет один из параметров логистического распределения по остальным

  • « stats_cdf_laplace
  • stats_cdf_negative_binomial »
  • PHP Manual
  • Статистические Функции
  • Вычисляет один из параметров логистического распределения по остальным

stats_cdf_logistic

(PECL stats >= 1.0.0)

stats_cdf_logistic — Вычисляет один из параметров логистического распределения по остальным

Описание

stats_cdf_logistic ( float $par1 , float $par2 , float $par3 , int $which ) : float

Возвращает кумулятивную функцию логистического распределения, обратную ей или один из своих параметров. Вид возвращаемого значения и параметров (par1, par2 и par3) определяются параметром which.

В следующей таблице перечислены возвращаемое значение и параметры в зависимости от which. CDF, x, mu и s обозначает функцию кумулятивного распределения, значение случайной переменной, параметр сдвига и масштаба соответственно.

Возвращаемое значение и параметры
which | Возвращаемое значение | par1 | par2 | par3
1 | CDF | x | mu | s
2 | x | CDF | mu | s
3 | mu | x | CDF | s
4 | s | x | CDF | mu

Список параметров

par1

Первый параметр

par2

Второй параметр

par3

Третий параметр

which

Флаг, определяющий, что будет возвращено

Возвращаемые значения

Возвращает CDF, x, mu или s, в зависимости от значения which.


Вычисляет один из параметров Отрицательного Биноминального распределения по остальным

  • « stats_cdf_logistic
  • stats_cdf_noncentral_chisquare »
  • PHP Manual
  • Статистические Функции
  • Вычисляет один из параметров Отрицательного Биноминального распределения по остальным

stats_cdf_negative_binomial

(PECL stats >= 1.0.0)

stats_cdf_negative_binomial — Вычисляет один из параметров Отрицательного Биноминального распределения по остальным

Описание

stats_cdf_negative_binomial ( float $par1 , float $par2 , float $par3 , int $which ) : float

Возвращает кумулятивную функцию отрицательного биноминального распределения, обратную ей или один из своих параметров. Вид возвращаемого значения и параметров (par1, par2 и par3) определяются параметром which.

В следующей таблице перечислены возвращаемое значение и параметры в зависимости от which. CDF, x, r и p обозначает функцию кумулятивного распределения, количество проваленных испытаний, количество успешных испытаний и коэффициент успеха для каждого испытания соответственно.

Возвращаемое значение и параметры
which | Возвращаемое значение | par1 | par2 | par3
1 | CDF | x | r | p
2 | x | CDF | r | p
3 | r | x | CDF | p
4 | p | x | CDF | r

Список параметров

par1

Первый параметр

par2

Второй параметр

par3

Третий параметр

which

Флаг, определяющий, что будет возвращено

Возвращаемые значения

Возвращает CDF, x, r или p, в зависимости от значения which.


Вычисляет один из параметров нецентрального распределения хи-квадрат по остальным

  • « stats_cdf_negative_binomial
  • stats_cdf_noncentral_f »
  • PHP Manual
  • Статистические Функции
  • Вычисляет один из параметров нецентрального распределения хи-квадрат по остальным

stats_cdf_noncentral_chisquare

(PECL stats >= 1.0.0)

stats_cdf_noncentral_chisquare — Вычисляет один из параметров нецентрального распределения хи-квадрат по остальным

Описание

stats_cdf_noncentral_chisquare ( float $par1 , float $par2 , float $par3 , int $which ) : float

Возвращает кумулятивную функцию нецентрального распределения хи-квадрат, обратную ей или один из своих параметров. Вид возвращаемого значения и параметров (par1, par2 и par3) определяются параметром which.

В следующей таблице перечислены возвращаемое значение и параметры в зависимости от which. CDF, x, k и lambda обозначает функцию кумулятивного распределения, значение случайной переменной, степени свободы и параметр нецентральности соответственно.

Возвращаемое значение и параметры
which | Возвращаемое значение | par1 | par2 | par3
1 | CDF | x | k | lambda
2 | x | CDF | k | lambda
3 | k | x | CDF | lambda
4 | lambda | x | CDF | k

Список параметров

par1

Первый параметр

par2

Второй параметр

par3

Третий параметр

which

Флаг, определяющий, что будет возвращено

Возвращаемые значения

Возвращает CDF, x, k или lambda, в зависимости от значения which.


Вычисляет один из параметров нецентрального распределения Фишера по остальным

  • « stats_cdf_noncentral_chisquare
  • stats_cdf_noncentral_t »
  • PHP Manual
  • Статистические Функции
  • Вычисляет один из параметров нецентрального распределения Фишера по остальным

stats_cdf_noncentral_f

(PECL stats >= 1.0.0)

stats_cdf_noncentral_f — Вычисляет один из параметров нецентрального распределения Фишера по остальным

Описание

stats_cdf_noncentral_f ( float $par1 , float $par2 , float $par3 , float $par4 , int $which ) : float

Возвращает кумулятивную функцию нецентрального распределения Фишера, обратную ей или один из своих параметров. Вид возвращаемого значения и параметров (par1, par2, par3, и par4) определяются параметром which.

В следующей таблице перечислены возвращаемое значение и параметры в зависимости от which. CDF, x, nu1, nu2 и lambda обозначает функцию кумулятивного распределения, значение случайной переменной, степени свободы и параметр нецентральности соответственно.

Возвращаемое значение и параметры
which | Возвращаемое значение | par1 | par2 | par3 | par4
1 | CDF | x | nu1 | nu2 | lambda
2 | x | CDF | nu1 | nu2 | lambda
3 | nu1 | x | CDF | nu2 | lambda
4 | nu2 | x | CDF | nu1 | lambda
5 | lambda | x | CDF | nu1 | nu2

Список параметров

par1

Первый параметр

par2

Второй параметр

par3

Третий параметр

par4

Четвертый параметр

which

Флаг, определяющий, что будет возвращено

Возвращаемые значения

Возвращает CDF, x, nu1, nu2 или lambda, в зависимости от значения which.


Вычисляет один из параметров нецентрального распределения Стьюдента в зависимости от остальных

  • « stats_cdf_noncentral_f
  • stats_cdf_normal »
  • PHP Manual
  • Статистические Функции
  • Вычисляет один из параметров нецентрального распределения Стьюдента в зависимости от остальных

stats_cdf_noncentral_t

(PECL stats >= 1.0.0)

stats_cdf_noncentral_t — Вычисляет один из параметров нецентрального распределения Стьюдента в зависимости от остальных

Описание

stats_cdf_noncentral_t ( float $par1 , float $par2 , float $par3 , int $which ) : float

Возвращает кумулятивную функцию распределения, обратную ей или один из параметров нецентрального распределения Стьюдента. Тип возвращаемого значения и параметры (par1, par2 и par3) определяются параметром which.

Следующая таблица содержит перечисление того, что будет возвращено функцией и значения параметров в зависимости от which. CDF, x, nu и mu обозначают функцию кумулятивного распределения, значение случайной переменной, степени свободы и параметр нецентральности соответственно.

Возвращаемые значения и параметры
which | Возвращаемое значение | par1 | par2 | par3
1 | CDF | x | nu | mu
2 | x | CDF | nu | mu
3 | nu | x | CDF | mu
4 | mu | x | CDF | nu

Список параметров

par1

Первый параметр

par2

Второй параметр

par3

Третий параметр

which

Флаг, определяющий поведение функции

Возвращаемые значения

Возвращает CDF, x, nu или mu, в зависимости от which.


Вычисляет один из параметров распределения в зависимости от остальных

  • « stats_cdf_noncentral_t
  • stats_cdf_poisson »
  • PHP Manual
  • Статистические Функции
  • Вычисляет один из параметров распределения в зависимости от остальных

stats_cdf_normal

(PECL stats >= 1.0.0)

stats_cdf_normal — Вычисляет один из параметров распределения в зависимости от остальных

Описание

stats_cdf_normal ( float $par1 , float $par2 , float $par3 , int $which ) : float

Возвращает кумулятивную функцию распределения, обратную ей или один из параметров нормального распределения. Тип возвращаемого значения и параметры (par1, par2 и par3) определяются параметром which.

Следующая таблица содержит перечисление того, что будет возвращено функцией и значения параметров в зависимости от which. CDF, x, mu и sigma обозначают функцию распределения, значение случайной переменной, медиану и стандартное отклонение соответственно.

Возвращаемые значения и параметры
which | Возвращаемое значение | par1 | par2 | par3
1 | CDF | x | mu | sigma
2 | x | CDF | mu | sigma
3 | mu | x | CDF | sigma
4 | sigma | x | CDF | mu

Список параметров

par1

Первый параметр

par2

Второй параметр

par3

Третий параметр

which

Флаг, определяющий поведение функции

Возвращаемые значения

Возвращает CDF, x, mu или sigma, в зависимости от which.


Вычисляет один из параметров распределения Пуассона по остальным

  • « stats_cdf_normal
  • stats_cdf_t »
  • PHP Manual
  • Статистические Функции
  • Вычисляет один из параметров распределения Пуассона по остальным

stats_cdf_poisson

(PECL stats >= 1.0.0)

stats_cdf_poisson — Вычисляет один из параметров распределения Пуассона по остальным

Описание

stats_cdf_poisson ( float $par1 , float $par2 , int $which ) : float

Возвращает кумулятивную функцию распределения Пуассона, обратную ей или один из своих параметров. Вид возвращаемого значения и параметров (par1 и par2) определяются параметром which.

В следующей таблице перечислены возвращаемое значение и параметры в зависимости от which. CDF, x и lambda обозначает функцию кумулятивного распределения, значение случайной переменной и параметр распределения Пуассона соответственно.

Возвращаемое значение и параметры
which | Возвращаемое значение | par1 | par2
1 | CDF | x | lambda
2 | x | CDF | lambda
3 | lambda | x | CDF

Список параметров

par1

Первый параметр

par2

Второй параметр

which

Флаг, определяющий, что будет возвращено

Возвращаемые значения

Возвращает CDF, x или lambda, в зависимости от значения which.


Вычисляет один из параметров распределения Стьюдента по остальным

  • « stats_cdf_poisson
  • stats_cdf_uniform »
  • PHP Manual
  • Статистические Функции
  • Вычисляет один из параметров распределения Стьюдента по остальным

stats_cdf_t

(PECL stats >= 1.0.0)

stats_cdf_t — Вычисляет один из параметров распределения Стьюдента по остальным

Описание

stats_cdf_t ( float $par1 , float $par2 , int $which ) : float

Возвращает кумулятивную функцию распределения Стьюдента, обратную ей или один из своих параметров. Вид возвращаемого значения и параметров (par1 и par2) определяются параметром which.

В следующей таблице перечислены возвращаемое значение и параметры в зависимости от which. CDF, x и nu обозначает функцию кумулятивного распределения, значение случайной переменной и количество степеней свободы соответственно.

Возвращаемое значение и параметры
which | Возвращаемое значение | par1 | par2
1 | CDF | x | nu
2 | x | CDF | nu
3 | nu | x | CDF

Список параметров

par1

Первый параметр

par2

Второй параметр

which

Флаг, определяющий, что будет возвращено

Возвращаемые значения

Возвращает CDF, x или nu, в зависимости от значения which.


Вычисляет один из параметров равномерного распределения по остальным

  • « stats_cdf_t
  • stats_cdf_weibull »
  • PHP Manual
  • Статистические Функции
  • Вычисляет один из параметров равномерного распределения по остальным

stats_cdf_uniform

(PECL stats >= 1.0.0)

stats_cdf_uniform — Вычисляет один из параметров равномерного распределения по остальным

Описание

stats_cdf_uniform ( float $par1 , float $par2 , float $par3 , int $which ) : float

Возвращает кумулятивную функцию равномерного распределения, обратную ей или один из своих параметров. Вид возвращаемого значения и параметров (par1, par2 и par3) определяются параметром which.

В следующей таблице перечислены возвращаемое значение и параметры в зависимости от which. CDF, x, a и b обозначает функцию кумулятивного распределения, величину случайной переменной, нижнюю и верхнюю границу распределения соответственно.

Возвращаемое значение и параметры
which | Возвращаемое значение | par1 | par2 | par3
1 | CDF | x | a | b
2 | x | CDF | a | b
3 | a | x | CDF | b
4 | b | x | CDF | a

Список параметров

par1

Первый параметр

par2

Второй параметр

par3

Третий параметр

which

Флаг, определяющий, что будет возвращено

Возвращаемые значения

Возвращает CDF, x, a или b, в зависимости от значения which.


Вычисляет один из параметров распределения Вейбулла по остальным

  • « stats_cdf_uniform
  • stats_covariance »
  • PHP Manual
  • Статистические Функции
  • Вычисляет один из параметров распределения Вейбулла по остальным

stats_cdf_weibull

(PECL stats >= 1.0.0)

stats_cdf_weibull — Вычисляет один из параметров распределения Вейбулла по остальным

Описание

stats_cdf_weibull ( float $par1 , float $par2 , float $par3 , int $which ) : float

Возвращает кумулятивную функцию распределения Вейбулла, обратную ей или один из своих параметров. Вид возвращаемого значения и параметров (par1, par2 и par3) определяются параметром which.

В следующей таблице перечислены возвращаемое значение и параметры в зависимости от which. CDF, x, k и lambda обозначает функцию кумулятивного распределения, величину случайной переменной, коэффициент формы и масштаба соответственно.

Возвращаемое значение и параметры
which | Возвращаемое значение | par1 | par2 | par3
1 | CDF | x | k | lambda
2 | x | CDF | k | lambda
3 | k | x | CDF | lambda
4 | lambda | x | CDF | k

Список параметров

par1

Первый параметр

par2

Второй параметр

par3

Третий параметр

which

Флаг, определяющий, что будет возвращено

Возвращаемые значения

Возвращает CDF, x, k или lambda, в зависимости от значения which.


Вычисляет ковариацию двух наборов данных

  • « stats_cdf_weibull
  • stats_dens_beta »
  • PHP Manual
  • Статистические Функции
  • Вычисляет ковариацию двух наборов данных

stats_covariance

(PECL stats >= 1.0.0)

stats_covariance — Вычисляет ковариацию двух наборов данных

Описание

stats_covariance ( array $a , array $b ) : float

Вычисляет ковариацию a и b.

Список параметров

a

Первый массив

b

Второй массив

Возвращаемые значения

Вычисляет ковариацию a и b, или FALSE в случае возникновения ошибки.


Плотность вероятности бета-распределения

  • « stats_covariance
  • stats_dens_cauchy »
  • PHP Manual
  • Статистические Функции
  • Плотность вероятности бета-распределения

stats_dens_beta

(PECL stats >= 1.0.0)

stats_dens_beta — Плотность вероятности бета-распределения

Описание

stats_dens_beta ( float $x , float $a , float $b ) : float

Возвращает плотность вероятности для x, где где случайная величина следует за бета-распределением, параметры формы которого являются a и b.

Список параметров

x

Значение, для которого считается плотность вероятности

a

Параметр формы

b

Параметр формы

Возвращаемые значения

Плотность вероятности для x или FALSE, в случае возникновения ошибки.


Плотность вероятности распределения Коши

  • « stats_dens_beta
  • stats_dens_chisquare »
  • PHP Manual
  • Статистические Функции
  • Плотность вероятности распределения Коши

stats_dens_cauchy

(PECL stats >= 1.0.0)

stats_dens_cauchy — Плотность вероятности распределения Коши

Описание

stats_dens_cauchy ( float $x , float $ave , float $stdev ) : float

Возвращает плотность вероятности для x, где ave и stdev являются коэффициэнтом сдвига и масштабным параметром соответственно.

Список параметров

x

Значение, для которого считается плотность вероятности

ave

Коэффициент сдвига

stdev

Масштабный параметр распределения

Возвращаемые значения

Плотность вероятности для x или FALSE в случае возникновения ошибки.


Плотность вероятности распределения хи-квадрат

  • « stats_dens_cauchy
  • stats_dens_exponential »
  • PHP Manual
  • Статистические Функции
  • Плотность вероятности распределения хи-квадрат

stats_dens_chisquare

(PECL stats >= 1.0.0)

stats_dens_chisquare — Плотность вероятности распределения хи-квадрат

Описание

stats_dens_chisquare ( float $x , float $dfr ) : float

Возвращает плотность вероятности для x, где dfr отражает степени свободы.

Список параметров

x

Значение, для которого считается плотность вероятности

dfr

Степени свободы

Возвращаемые значения

Плотность вероятности для x или FALSE в случае возникновения ошибки.


Плотность вероятности экспоненциального распределения

  • « stats_dens_chisquare
  • stats_dens_f »
  • PHP Manual
  • Статистические Функции
  • Плотность вероятности экспоненциального распределения

stats_dens_exponential

(PECL stats >= 1.0.0)

stats_dens_exponential — Плотность вероятности экспоненциального распределения

Описание

stats_dens_exponential ( float $x , float $scale ) : float

Возвращает плотность вероятности для x, где scale является масштабным параметром.

Список параметров

x

Значение, для которого считается плотность вероятности

scale

Масштабный параметр распределения

Возвращаемые значения

Плотность вероятности для x или FALSE в случае возникновения ошибки.


Плотность вероятности распределения Фишера

  • « stats_dens_exponential
  • stats_dens_gamma »
  • PHP Manual
  • Статистические Функции
  • Плотность вероятности распределения Фишера

stats_dens_f

(PECL stats >= 1.0.0)

stats_dens_f — Плотность вероятности распределения Фишера

Описание

stats_dens_f ( float $x , float $dfr1 , float $dfr2 ) : float

Возвращает плотность вероятности для x, где dfr1 и dfr2 отражают степени свободы.

Список параметров

x

Значение, для которого считается плотность вероятности

dfr1

Степени свободы

dfr2

Степени свободы

Возвращаемые значения

Плотность вероятности для x или FALSE в случае возникновения ошибки.


Плотность вероятности гамма-распределения

  • « stats_dens_f
  • stats_dens_laplace »
  • PHP Manual
  • Статистические Функции
  • Плотность вероятности гамма-распределения

stats_dens_gamma

(PECL stats >= 1.0.0)

stats_dens_gamma — Плотность вероятности гамма-распределения

Описание

stats_dens_gamma ( float $x , float $shape , float $scale ) : float

Возвращает плотность вероятности для x, где shape и scale являются коэффициэнтом формы и масштабным параметром соответственно.

Список параметров

x

Значение, для которого считается плотность вероятности

shape

Параметр формы

scale

Масштабный параметр распределения

Возвращаемые значения

Плотность вероятности для x или FALSE в случае возникновения ошибки.


Плотность вероятности распределения Лапласа

  • « stats_dens_gamma
  • stats_dens_logistic »
  • PHP Manual
  • Статистические Функции
  • Плотность вероятности распределения Лапласа

stats_dens_laplace

(PECL stats >= 1.0.0)

stats_dens_laplace — Плотность вероятности распределения Лапласа

Описание

stats_dens_laplace ( float $x , float $ave , float $stdev ) : float

Возвращает плотность вероятности для x, где ave и stdev являются коэффициэнтом сдвига и параметром формы соответственно.

Список параметров

x

Значение, для которого считается плотность вероятности

ave

Коэффициент сдвига

stdev

Параметр формы

Возвращаемые значения

Плотность вероятности для x или FALSE в случае возникновения ошибки.


Плотность вероятности логистического распределения

  • « stats_dens_laplace
  • stats_dens_normal »
  • PHP Manual
  • Статистические Функции
  • Плотность вероятности логистического распределения

stats_dens_logistic

(PECL stats >= 1.0.0)

stats_dens_logistic — Плотность вероятности логистического распределения

Описание

stats_dens_logistic ( float $x , float $ave , float $stdev ) : float

Возвращает плотность вероятности для x, где ave и stdev являются коэффициэнтом сдвига и логистическим распределением соответственно.

Список параметров

x

Значение, для которого считается плотность вероятности

ave

Коэффициент сдвига

stdev

Параметр формы

Возвращаемые значения

Плотность вероятности для x или FALSE в случае возникновения ошибки.


Возвращает плотность вероятности нормального распределения

  • « stats_dens_logistic
  • stats_dens_pmf_binomial »
  • PHP Manual
  • Статистические Функции
  • Возвращает плотность вероятности нормального распределения

stats_dens_normal

(PECL stats >= 1.0.0)

stats_dens_normal — Возвращает плотность вероятности нормального распределения

Описание

stats_dens_normal ( float $x , float $ave , float $stdev ) : float

Возвращает плотность вероятности при x, где случайная величина следует за нормальным распределением, среднее значение которого ave и стандартное отклонение stdev.

Список параметров

x

Величина, для которой вычисляется плотность вероятности

ave

Среднее значение распределения

stdev

Стандартное отклонение

Возвращаемые значения

Плотность вероятности для x или FALSE в случае возникновения ошибки.


Вероятностная мера биноминального распределения

  • « stats_dens_normal
  • stats_dens_pmf_hypergeometric »
  • PHP Manual
  • Статистические Функции
  • Вероятностная мера биноминального распределения

stats_dens_pmf_binomial

(PECL stats >= 1.0.0)

stats_dens_pmf_binomial — Вероятностная мера биноминального распределения

Описание

stats_dens_pmf_binomial ( float $x , float $n , float $pi ) : float

Возвращает плотность вероятности для x, где n и pi являются количеством попыток и коэффициентом успешности соответственно.

Список параметров

x

Значение, для которого считается вероятносная мера

n

Количество испытаний

pi

Коэффициент успешности

Возвращаемые значения

Вероятностная мера для x или FALSE в случае возникновения ошибки.


Вероятностная мера гипергеометрического распределения

  • « stats_dens_pmf_binomial
  • stats_dens_pmf_negative_binomial »
  • PHP Manual
  • Статистические Функции
  • Вероятностная мера гипергеометрического распределения

stats_dens_pmf_hypergeometric

(PECL stats >= 1.0.0)

stats_dens_pmf_hypergeometric — Вероятностная мера гипергеометрического распределения

Описание

stats_dens_pmf_hypergeometric ( float $n1 , float $n2 , float $N1 , float $N2 ) : float

Возвращает вероятностную меру для n1, где n2, N1 и N2 являются количеством неудачных попыток, числом успешных выборок и числом неудачных выборок соответственно.

Список параметров

n1

Число успешных попыток, при которых вычисляется вероятностная мера

n2

Количество неудачных попыток

N1

Число успешных выборок

N2

Число неудачных выборок

Возвращаемые значения

Вероятностная мера для n1 или FALSE в случае возникновения ошибки.


Функция плотности вероятности негативного биноминального распределения

  • « stats_dens_pmf_hypergeometric
  • stats_dens_pmf_poisson »
  • PHP Manual
  • Статистические Функции
  • Функция плотности вероятности негативного биноминального распределения

stats_dens_pmf_negative_binomial

(PECL stats >= 1.0.0)

stats_dens_pmf_negative_binomial — Функция плотности вероятности негативного биноминального распределения

Описание

stats_dens_pmf_negative_binomial ( float $x , float $n , float $pi ) : float

Возвращает плотность вероятности в x, где число успехов — это n, а степень успешности - pi.

Список параметров

x

Значение, для которого будет вычисляться плотность вероятности

n

Число успехов распределения

pi

Степень успешности

Возвращаемые значения

Плотность вероятности в x или FALSE в случае возникновения ошибки.


Вероятностная мера распределения Пуассона

  • « stats_dens_pmf_negative_binomial
  • stats_dens_t »
  • PHP Manual
  • Статистические Функции
  • Вероятностная мера распределения Пуассона

stats_dens_pmf_poisson

(PECL stats >= 1.0.0)

stats_dens_pmf_poisson — Вероятностная мера распределения Пуассона

Описание

stats_dens_pmf_poisson ( float $x , float $lb ) : float

Возвращает вероятностную меру для x, где lb является параметром распределения Пуассона.

Список параметров

x

Значение, для которого считается плотность вероятности

lb

Параметр распределения Пуассона

Возвращаемые значения

Плотность вероятности для x или FALSE в случае возникновения ошибки.


Плотность вероятности распределения Стьюдента

  • « stats_dens_pmf_poisson
  • stats_dens_uniform »
  • PHP Manual
  • Статистические Функции
  • Плотность вероятности распределения Стьюдента

stats_dens_t

(PECL stats >= 1.0.0)

stats_dens_t — Плотность вероятности распределения Стьюдента

Описание

stats_dens_t ( float $x , float $dfr ) : float

Возвращает плотность вероятности для x, где scale отражает количество степеней свободы.

Список параметров

x

Значение, для которого считается плотность вероятности

dfr

Степени свободы

Возвращаемые значения

Плотность вероятности для x или FALSE в случае возникновения ошибки.


Функция плотности вероятности равномерного распределения

  • « stats_dens_t
  • stats_dens_weibull »
  • PHP Manual
  • Статистические Функции
  • Функция плотности вероятности равномерного распределения

stats_dens_uniform

(PECL stats >= 1.0.0)

stats_dens_uniform — Функция плотности вероятности равномерного распределения

Описание

stats_dens_uniform ( float $x , float $a , float $b ) : float

Возвращает плотность вероятности в x, где нижняя граница задана в a, а верхняя в b.

Список параметров

x

Значение для которого будет вычисляться плотность вероятности

a

Нижняя граница распределения

b

Верхняя граница распределения

Возвращаемые значения

Плотность вероятности в x или FALSE в случае возникновения ошибки.


Плотность вероятности распределения Вейбулла

  • « stats_dens_uniform
  • stats_harmonic_mean »
  • PHP Manual
  • Статистические Функции
  • Плотность вероятности распределения Вейбулла

stats_dens_weibull

(PECL stats >= 1.0.0)

stats_dens_weibull — Плотность вероятности распределения Вейбулла

Описание

stats_dens_weibull ( float $x , float $a , float $b ) : float

Возвращает плотность вероятности для x, где a и b являются параметром формы и масштабным параметром соответственно.

Список параметров

x

Значение, для которого считается плотность вероятности

a

Параметр формы

b

Масштабный параметр распределения

Возвращаемые значения

Плотность вероятности для x или FALSE в случае возникновения ошибки.


Возвращает среднее гармоническое массива значений

  • « stats_dens_weibull
  • stats_kurtosis »
  • PHP Manual
  • Статистические Функции
  • Возвращает среднее гармоническое массива значений

stats_harmonic_mean

(PECL stats >= 1.0.0)

stats_harmonic_mean — Возвращает среднее гармоническое массива значений

Описание

stats_harmonic_mean ( array $a ) : number

Возвращает среднее гармоническое массива значений a.

Список параметров

a

Массив значений

Возвращаемые значения

Возвращает среднее гармоническое массива значений a или FALSE, если a пуст или не является массивом.


Вычисляет эксцесс данных в массиве

  • « stats_harmonic_mean
  • stats_rand_gen_beta »
  • PHP Manual
  • Статистические Функции
  • Вычисляет эксцесс данных в массиве

stats_kurtosis

(PECL stats >= 1.0.0)

stats_kurtosis — Вычисляет эксцесс данных в массиве

Описание

stats_kurtosis ( array $a ) : float

Вычисляет эксцесс данных в массиве a.

Список параметров

a

Массив исходных значений

Возвращаемые значения

Возвращает эксцесс массива значений a или FALSE, если a пуст или не является массивом.


Вычисляет случайное отклонение от бета-распределения

  • « stats_kurtosis
  • stats_rand_gen_chisquare »
  • PHP Manual
  • Статистические Функции
  • Вычисляет случайное отклонение от бета-распределения

stats_rand_gen_beta

(PECL stats >= 1.0.0)

stats_rand_gen_beta — Вычисляет случайное отклонение от бета-распределения

Описание

stats_rand_gen_beta ( float $a , float $b ) : float

Возвращает случайное отклонения от Бета-распределения с параметрами A и B. Плотность распределения равна x^(a-1) * (1-x)^(b-1) / B(a,b) для 0 < x <. Метод R. C. H. Cheng.

Список параметров

a

Параметр формы

b

Параметр формы

Возвращаемые значения

Случайное отклонение


Вычисляет случайное отклонение от распределения хи-квадрат

  • « stats_rand_gen_beta
  • stats_rand_gen_exponential »
  • PHP Manual
  • Статистические Функции
  • Вычисляет случайное отклонение от распределения хи-квадрат

stats_rand_gen_chisquare

(PECL stats >= 1.0.0)

stats_rand_gen_chisquare — Вычисляет случайное отклонение от распределения хи-квадрат

Описание

stats_rand_gen_chisquare ( float $df ) : float

Вычисляет случайное отклонение от распределения хи-квадрат с заданным числом степеней свободы df.

Список параметров

df

Количество степеней свободы

Возвращаемые значения

Случайное отклонение


Вычисляет случайное отклонение от экспоненциального распределения

  • « stats_rand_gen_chisquare
  • stats_rand_gen_f »
  • PHP Manual
  • Статистические Функции
  • Вычисляет случайное отклонение от экспоненциального распределения

stats_rand_gen_exponential

(PECL stats >= 1.0.0)

stats_rand_gen_exponential — Вычисляет случайное отклонение от экспоненциального распределения

Описание

stats_rand_gen_exponential ( float $av ) : float

Вычисляет случайное отклонение от экспоненциального распределения с заданным масштабным коэффициентом av.

Список параметров

av

Масштабный коэффициент

Возвращаемые значения

Случайное отклонение


Генерирует случайное отклонение от распределения Фишера

  • « stats_rand_gen_exponential
  • stats_rand_gen_funiform »
  • PHP Manual
  • Статистические Функции
  • Генерирует случайное отклонение от распределения Фишера

stats_rand_gen_f

(PECL stats >= 1.0.0)

stats_rand_gen_f — Генерирует случайное отклонение от распределения Фишера

Описание

stats_rand_gen_f ( float $dfn , float $dfd ) : float

Генерирует случайное отклонение от распределения Фишера с "dfn" степенями свободы в числителе и "dfd" степенями свободы в знаменателе. Метод : прямая генерация отношения вариантов хи-квадрат.

Список параметров

dfn

Количество степеней свободы числителя

dfd

Количество степеней свободы знаменателя

Возвращаемые значения

Случайное отклонение


Сгенерировать рациональное число от low (исключая) до high (исключая) на базе равномерного распределения

  • « stats_rand_gen_f
  • stats_rand_gen_gamma »
  • PHP Manual
  • Статистические Функции
  • Сгенерировать рациональное число от low (исключая) до high (исключая) на базе равномерного распределения

stats_rand_gen_funiform

(PECL stats >= 1.0.0)

stats_rand_gen_funiform — Сгенерировать рациональное число от low (исключая) до high (исключая) на базе равномерного распределения

Описание

stats_rand_gen_funiform ( float $low , float $high ) : float

Сгенерировать рациональное число руководствуясь равномерным распределением в пределах от low до high.

Список параметров

low

Нижняя граница (включая)

high

Верхняя граница (исключая)

Возвращаемые значения

Случайное рациональное число


Вычисляет случайное отклонение от гамма-распределения

  • « stats_rand_gen_funiform
  • stats_rand_gen_ibinomial_negative »
  • PHP Manual
  • Статистические Функции
  • Вычисляет случайное отклонение от гамма-распределения

stats_rand_gen_gamma

(PECL stats >= 1.0.0)

stats_rand_gen_gamma — Вычисляет случайное отклонение от гамма-распределения

Описание

stats_rand_gen_gamma ( float $a , float $r ) : float

Сгенерировать случайное отклонение от Гамма-распределения. Плотность расчитывается по формуле (A**R)/Gamma(R) * X**(R-1) * Exp(-A*X).

Список параметров

a

Коэффициент сдвига Гамма-распределения (a > 0).

r

Коэффициент формы Гамма-распределения (r > 0).

Возвращаемые значения

Случайное отклонение


Вычисляет случайное отклонение от отрицательного биноминального распределения

  • « stats_rand_gen_gamma
  • stats_rand_gen_ibinomial »
  • PHP Manual
  • Статистические Функции
  • Вычисляет случайное отклонение от отрицательного биноминального распределения

stats_rand_gen_ibinomial_negative

(PECL stats >= 1.0.0)

stats_rand_gen_ibinomial_negative — Вычисляет случайное отклонение от отрицательного биноминального распределения

Описание

stats_rand_gen_ibinomial_negative ( int $n , float $p ) : int

Вычисляет случайное отклонение от отрицательного биноминального распределения с заданным числом успешных испытаний n и коэффициентом успешности p.

Список параметров

n

Количество успешных испытаний

p

Коэффициент успешности

Возвращаемые значения

Случайное отклонение, являющееся количеством неудачных испытаний


Вычисляет случайное отклонение от биноминального распределения

  • « stats_rand_gen_ibinomial_negative
  • stats_rand_gen_int »
  • PHP Manual
  • Статистические Функции
  • Вычисляет случайное отклонение от биноминального распределения

stats_rand_gen_ibinomial

(PECL stats >= 1.0.0)

stats_rand_gen_ibinomial — Вычисляет случайное отклонение от биноминального распределения

Описание

stats_rand_gen_ibinomial ( int $n , float $pp ) : int

Вычисляет случайное отклонение от биноминального распределения с заданным числом испытаний ndf и вероятностью успеха каждого испытания pp.

Список параметров

n

Количество испытаний

pp

Коэффициент успешности каждого испытания

Возвращаемые значения

Случайное отклонение


Генерирует случайное число в диапазоне от 1 до 2147483562

  • « stats_rand_gen_ibinomial
  • stats_rand_gen_ipoisson »
  • PHP Manual
  • Статистические Функции
  • Генерирует случайное число в диапазоне от 1 до 2147483562

stats_rand_gen_int

(PECL stats >= 1.0.0)

stats_rand_gen_int — Генерирует случайное число в диапазоне от 1 до 2147483562

Описание

stats_rand_gen_int ( void ) : int

Генерирует случайное число в диапазоне от 1 до 2147483562

Возвращаемые значения

Случайное целое число


Вычисляет случайное отклонение от распределения Пуассона

  • « stats_rand_gen_int
  • stats_rand_gen_iuniform »
  • PHP Manual
  • Статистические Функции
  • Вычисляет случайное отклонение от распределения Пуассона

stats_rand_gen_ipoisson

(PECL stats >= 1.0.0)

stats_rand_gen_ipoisson — Вычисляет случайное отклонение от распределения Пуассона

Описание

stats_rand_gen_ipoisson ( float $mu ) : int

Вычисляет случайное отклонение от распределения Пуассона с параметром mu.

Список параметров

mu

Параметр распределения Пуассона

Возвращаемые значения

Случайное отклонение


Геренирует целое число равномерно распределенное в диапазоне LOW (включая) и HIGH (включая)

  • « stats_rand_gen_ipoisson
  • stats_rand_gen_noncentral_chisquare »
  • PHP Manual
  • Статистические Функции
  • Геренирует целое число равномерно распределенное в диапазоне LOW (включая) и HIGH (включая)

stats_rand_gen_iuniform

(PECL stats >= 1.0.0)

stats_rand_gen_iuniform — Геренирует целое число равномерно распределенное в диапазоне LOW (включая) и HIGH (включая)

Описание

stats_rand_gen_iuniform ( int $low , int $high ) : int

Генерирует случайное целое число на базе равномерного распределения в диапазоне low (включая) и high (включая).

Список параметров

low

Нижняя граница

high

Верхняя граница

Возвращаемые значения

Случайное целое число


Генерирует случайное отклонение нецентрального распределения хи-квардат

  • « stats_rand_gen_iuniform
  • stats_rand_gen_noncentral_f »
  • PHP Manual
  • Статистические Функции
  • Генерирует случайное отклонение нецентрального распределения хи-квардат

stats_rand_gen_noncentral_chisquare

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_chisquare — Генерирует случайное отклонение нецентрального распределения хи-квардат

Описание

stats_rand_gen_noncentral_chisquare ( float $df , float $xnonc ) : float

Возвращает случайное отклонение нецентрального распределения хи-квардат с df степенями свободы и параметром нецентральности xnonc.

Список параметров

df

Степени свободы

xnonc

Параметр нецентральности

Возвращаемые значения

Случайное отклонение


Вычисляет случайное отклонение от нецентрального распределения Фишера

  • « stats_rand_gen_noncentral_chisquare
  • stats_rand_gen_noncentral_t »
  • PHP Manual
  • Статистические Функции
  • Вычисляет случайное отклонение от нецентрального распределения Фишера

stats_rand_gen_noncentral_f

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_f — Вычисляет случайное отклонение от нецентрального распределения Фишера

Описание

stats_rand_gen_noncentral_f ( float $dfn , float $dfd , float $xnonc ) : float

Вычисляет случайное отклонение от нецентрального распределения Фишера с заданными числами степеней свободы числителя dfn и знаменателя dfd и параметром сдвига xnonc.

Список параметров

dfn

Количество степеней свободы числителя

dfd

Количество степеней свободы знаменателя

xnonc

Параметр сдвига

Возвращаемые значения

Случайное отклонение


Вычисляет единичное случайное отклонение от нецентрального распределения Стьюдента

  • « stats_rand_gen_noncentral_f
  • stats_rand_gen_normal »
  • PHP Manual
  • Статистические Функции
  • Вычисляет единичное случайное отклонение от нецентрального распределения Стьюдента

stats_rand_gen_noncentral_t

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_t — Вычисляет единичное случайное отклонение от нецентрального распределения Стьюдента

Описание

stats_rand_gen_noncentral_t ( float $df , float $xnonc ) : float

Вычисляет единичное случайное отклонение от нецентрального распределения Стьюдента с заданным числом степеней свободы df и параметром сдвига xnonc.

Список параметров

df

Количество степеней свободы

xnonc

Параметр сдвига

Возвращаемые значения

Случайное отклонение


Вычисляет случайное отклонение от нормального распределения

  • « stats_rand_gen_noncentral_t
  • stats_rand_gen_t »
  • PHP Manual
  • Статистические Функции
  • Вычисляет случайное отклонение от нормального распределения

stats_rand_gen_normal

(PECL stats >= 1.0.0)

stats_rand_gen_normal — Вычисляет случайное отклонение от нормального распределения

Описание

stats_rand_gen_normal ( float $av , float $sd ) : float

Вычисляет случайное отклонение от нормального распределения с заданной медианой av и стандартным отклонением sd.

Список параметров

av

Медиана нормального распределения

sd

Стандартное отклонение

Возвращаемые значения

Случайное отклонение


Вычисляет одиночное случайное отклонение от распределения Стьюдента

  • « stats_rand_gen_normal
  • stats_rand_get_seeds »
  • PHP Manual
  • Статистические Функции
  • Вычисляет одиночное случайное отклонение от распределения Стьюдента

stats_rand_gen_t

(PECL stats >= 1.0.0)

stats_rand_gen_t — Вычисляет одиночное случайное отклонение от распределения Стьюдента

Описание

stats_rand_gen_t ( float $df ) : float

Вычисляет одиночное случайное отклонение от распределения Стьюдента с заданным числом степеней свободы df.

Список параметров

df

Количество степеней свободы

Возвращаемые значения

Случайное отклонение


Получить начальные значения генератора случайных чисел

  • « stats_rand_gen_t
  • stats_rand_phrase_to_seeds »
  • PHP Manual
  • Статистические Функции
  • Получить начальные значения генератора случайных чисел

stats_rand_get_seeds

(PECL stats >= 1.0.0)

stats_rand_get_seeds — Получить начальные значения генератора случайных чисел

Описание

stats_rand_get_seeds ( void ) : array

Возвращает начальные значения генератора случайных чисел

Возвращаемые значения

Возвращает массив с двумя целыми числами


Генерирует два начальных значения для генератора случайных чисел RGN

  • « stats_rand_get_seeds
  • stats_rand_ranf »
  • PHP Manual
  • Статистические Функции
  • Генерирует два начальных значения для генератора случайных чисел RGN

stats_rand_phrase_to_seeds

(PECL stats >= 1.0.0)

stats_rand_phrase_to_seeds — Генерирует два начальных значения для генератора случайных чисел RGN

Описание

stats_rand_phrase_to_seeds ( string $phrase ) : array

Генерирует два начальных значения для генератора случайных чисел на базе строки phrase.

Список параметров

phrase

Исходная строка

Возвращаемые значения

Возвращает массив с двумя целыми числами.


Возвращает случайное рациональное число в диапазоне 0 - 1

  • « stats_rand_phrase_to_seeds
  • stats_rand_setall »
  • PHP Manual
  • Статистические Функции
  • Возвращает случайное рациональное число в диапазоне 0 - 1

stats_rand_ranf

(PECL stats >= 1.0.0)

stats_rand_ranf — Возвращает случайное рациональное число в диапазоне 0 - 1

Описание

stats_rand_ranf ( void ) : float

Возвращает случайное рациональное число в диапазоне от 0(исключая) до 1(исключая).

Возвращаемые значения

Случайное рациональное число


Задать начальные значения генератора случайных чисел

  • « stats_rand_ranf
  • stats_skew »
  • PHP Manual
  • Статистические Функции
  • Задать начальные значения генератора случайных чисел

stats_rand_setall

(PECL stats >= 1.0.0)

stats_rand_setall — Задать начальные значения генератора случайных чисел

Описание

stats_rand_setall ( int $iseed1 , int $iseed2 ) : void

Задать iseed1 и iseed2 в качестве начальных значений генератора случайных чисел, используемого в статистических функциях.

Список параметров

iseed1

Первое значение

iseed2

Второе значение

Возвращаемые значения

Ничего не возвращает


Вычисляет асимметрию данных в массиве

  • « stats_rand_setall
  • stats_standard_deviation »
  • PHP Manual
  • Статистические Функции
  • Вычисляет асимметрию данных в массиве

stats_skew

(PECL stats >= 1.0.0)

stats_skew — Вычисляет асимметрию данных в массиве

Описание

stats_skew ( array $a ) : float

Вычисляет асимметрию данных в массиве a.

Список параметров

a

Массив исходных значений

Возвращаемые значения

Возвращает асимметрию массива значений a, или FALSE, если a пуст или не является массивом.


Возвращает стандартное отклонение

  • « stats_skew
  • stats_stat_binomial_coef »
  • PHP Manual
  • Статистические Функции
  • Возвращает стандартное отклонение

stats_standard_deviation

(PECL stats >= 1.0.0)

stats_standard_deviation — Возвращает стандартное отклонение

Описание

stats_standard_deviation ( array $a [, bool $sample = FALSE ] ) : float

Возвращает стандартное отклонение для массива значений a.

Список параметров

a

Массив с данными для поиска стандартного отклонения. Учтите, что все значения массива будут приведены к типу float.

sample

Указывает, что параметр a представляет собой выборку из генеральной совокупности. По умолчанию FALSE.

Возвращаемые значения

Возвращает стандартное отклонение в случае успешного выполнения; FALSE в случае возникновения ошибки.

Ошибки

Вызывает предупреждение E_WARNING, если в параметре a меньше двух значений.


Получить биноминальный коэффициент

  • « stats_standard_deviation
  • stats_stat_correlation »
  • PHP Manual
  • Статистические Функции
  • Получить биноминальный коэффициент

stats_stat_binomial_coef

(PECL stats >= 1.0.0)

stats_stat_binomial_coef — Получить биноминальный коэффициент

Описание

stats_stat_binomial_coef ( int $x , int $n ) : float

Возвращает биноминальный коэффициент для n элементов и x выборок.

Список параметров

x

Количество выборок из набора

n

Количество элементов в наборе

Возвращаемые значения

Возвращает биноминальный коэффициент


Возвращает коэффициент корреляции Пирсона двух наборов данных

  • « stats_stat_binomial_coef
  • stats_stat_factorial »
  • PHP Manual
  • Статистические Функции
  • Возвращает коэффициент корреляции Пирсона двух наборов данных

stats_stat_correlation

(PECL stats >= 1.0.0)

stats_stat_correlation — Возвращает коэффициент корреляции Пирсона двух наборов данных

Описание

stats_stat_correlation ( array $arr1 , array $arr2 ) : float

Возвращает коэффициент корреляции Пирсона для arr1 и arr2.

Список параметров

arr1

Первый массив

arr2

Второй массив

Возвращаемые значения

Возвращает коэффициент корреляции Пирсона для arr1 и arr2, или FALSE в случае возникновения ошибки.


Факториал целого числа

  • « stats_stat_correlation
  • stats_stat_independent_t »
  • PHP Manual
  • Статистические Функции
  • Факториал целого числа

stats_stat_factorial

(PECL stats >= 1.0.0)

stats_stat_factorial — Факториал целого числа

Описание

stats_stat_factorial ( int $n ) : float

Возвращает факториал целого числа n.

Список параметров

n

Целое число

Возвращаемые значения

Факториал n.


Получить значение t для двухвыборочного t-критерия Стьюдента для независимых выборок

  • « stats_stat_factorial
  • stats_stat_innerproduct »
  • PHP Manual
  • Статистические Функции
  • Получить значение t для двухвыборочного t-критерия Стьюдента для независимых выборок

stats_stat_independent_t

(PECL stats >= 1.0.0)

stats_stat_independent_t — Получить значение t для двухвыборочного t-критерия Стьюдента для независимых выборок

Описание

stats_stat_independent_t ( array $arr1 , array $arr2 ) : float

Получить значение t для двухвыборочного t-критерия Стьюдента для независимых выборок arr1 и arr2.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

arr1

Первый набор значений

arr2

Второй набор значений

Возвращаемые значения

Возвращает значение t или FALSE в случае возникновения ошибки.


Возвращает скалярное произведение двух векторов

  • « stats_stat_independent_t
  • stats_stat_paired_t »
  • PHP Manual
  • Статистические Функции
  • Возвращает скалярное произведение двух векторов

stats_stat_innerproduct

(PECL stats >= 1.0.0)

stats_stat_innerproduct — Возвращает скалярное произведение двух векторов

Описание

stats_stat_innerproduct ( array $arr1 , array $arr2 ) : float

Возвращает скалярное произведение двух векторов arr1 и arr2.

Список параметров

arr1

Первый массив

arr2

Второй массив

Возвращаемые значения

Возвращает скалярное произведение двух векторов arr1 и arr2, или FALSE в случае ошибки.


Получить значение t для двухвыборочного t-критерия Стьюдента для зависимых выборок

  • « stats_stat_innerproduct
  • stats_stat_percentile »
  • PHP Manual
  • Статистические Функции
  • Получить значение t для двухвыборочного t-критерия Стьюдента для зависимых выборок

stats_stat_paired_t

(PECL stats >= 1.0.0)

stats_stat_paired_t — Получить значение t для двухвыборочного t-критерия Стьюдента для зависимых выборок

Описание

stats_stat_paired_t ( array $arr1 , array $arr2 ) : float

Возвращает значение t для двухвыборочного t-критерия Стьюдента для зависимых выборок arr1 и arr2.

Список параметров

arr1

Первая выборка

arr2

Вторая выборка

Возвращаемые значения

Возвращает значение t или FALSE в случае возникновения ошибки.


Возвращает значение процентили

  • « stats_stat_paired_t
  • stats_stat_powersum »
  • PHP Manual
  • Статистические Функции
  • Возвращает значение процентили

stats_stat_percentile

(PECL stats >= 1.0.0)

stats_stat_percentile — Возвращает значение процентили

Описание

stats_stat_percentile ( array $arr , float $perc ) : float

Возвращает perc-ное значение процентили для массива arr.

Список параметров

arr

Массив исходных значений

perc

Процентиль

Возвращаемые значения

Возвращает значение процентили для массива значений.


Возвращает сумму степеней вектора

  • « stats_stat_percentile
  • stats_variance »
  • PHP Manual
  • Статистические Функции
  • Возвращает сумму степеней вектора

stats_stat_powersum

(PECL stats >= 1.0.0)

stats_stat_powersum — Возвращает сумму степеней вектора

Описание

stats_stat_powersum ( array $arr , float $power ) : float

Возвращает сумму степеней power для вектора, представленного массивом arr.

Список параметров

arr

Массив исходных значений

power

Степень

Возвращаемые значения

Возвращает сумму степеней массива значений


Возвращает дисперсию

  • « stats_stat_powersum
  • Trader »
  • PHP Manual
  • Статистические Функции
  • Возвращает дисперсию

stats_variance

(PECL stats >= 1.0.0)

stats_variance — Возвращает дисперсию

Описание

stats_variance ( array $a [, bool $sample = FALSE ] ) : float

Возвращает дисперсию значений массива a.

Список параметров

a

Массив с данными для поиска стандартного отклонения. Обратите внимание, что все значения будут приведены к типу float.

sample

Определяет, является ли a выборкой из генеральный совокупности. По умолчанию FALSE.

Возвращаемые значения

Возвращает значение дисперсии или FALSE.


Technical Analysis for Traders

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределенные константы
  • Trader Функции
    • trader_acos — Векторный тригонометрический арккосинус
    • trader_ad — Индикатор Чайкина Накопление/Распродажа
    • trader_add — Арифметическое сложение вектора
    • trader_adosc — Осциллятор Чайкина
    • trader_adx — Средний индекс направленного движения
    • trader_adxr — Средний рейтинг индекса направленного движения
    • trader_apo — Абсолютный ценовой осциллятор
    • trader_aroon — Индикатор Aroon
    • trader_aroonosc — Осциллятор индикатора Aroon
    • trader_asin — Векторный тригонометрический арксинус
    • trader_atan — Векторный тригонометрический арктангенс
    • trader_atr — Средний истинный диапазон
    • trader_avgprice — Средняя цена
    • trader_bbands — Полосы Боллинджера
    • trader_beta — Бета
    • trader_bop — Баланс сил
    • trader_cci — Индекс товарного канала
    • trader_cdl2crows — Две вороны
    • trader_cdl3blackcrows — Три черных ворона
    • trader_cdl3inside — Три дня изнутри вверх и три дня изнутри вниз
    • trader_cdl3linestrike — Тройной удар
    • trader_cdl3outside — Три внешних дня вверх и три внешних дня вниз
    • trader_cdl3starsinsouth — Три южных звезды
    • trader_cdl3whitesoldiers — Три наступающих белых солдата
    • trader_cdlabandonedbaby — Брошенное дитя
    • trader_cdladvanceblock — Отбитое наступление
    • trader_cdlbelthold — Захват за пояс
    • trader_cdlbreakaway — Отрыв
    • trader_cdlclosingmarubozu — Closing Marubozu
    • trader_cdlconcealbabyswall — Прячущаяся ласточка
    • trader_cdlcounterattack — Контратака
    • trader_cdldarkcloudcover — Завеса из темных облаков
    • trader_cdldoji — Дожи
    • trader_cdldojistar — Дожи-звезда
    • trader_cdldragonflydoji — Стрекоза дожи
    • trader_cdlengulfing — Модель поглощения
    • trader_cdleveningdojistar — Вечерняя дожи-звезда
    • trader_cdleveningstar — Вечерняя звезда
    • trader_cdlgapsidesidewhite — Up/Down-gap side-by-side white lines
    • trader_cdlgravestonedoji — Дожи-надгробие
    • trader_cdlhammer — Молот
    • trader_cdlhangingman — Висельник
    • trader_cdlharami — Паттерн Харами
    • trader_cdlharamicross — Паттерн "Крест Харами"
    • trader_cdlhighwave — High-Wave Candle
    • trader_cdlhikkake — Hikkake Pattern
    • trader_cdlhikkakemod — Modified Hikkake Pattern
    • trader_cdlhomingpigeon — Homing Pigeon
    • trader_cdlidentical3crows — Identical Three Crows
    • trader_cdlinneck — In-Neck Pattern
    • trader_cdlinvertedhammer — Inverted Hammer
    • trader_cdlkicking — Kicking
    • trader_cdlkickingbylength — Kicking - bull/bear determined by the longer marubozu
    • trader_cdlladderbottom — Ladder Bottom
    • trader_cdllongleggeddoji — Long Legged Doji
    • trader_cdllongline — Long Line Candle
    • trader_cdlmarubozu — Marubozu
    • trader_cdlmatchinglow — Matching Low
    • trader_cdlmathold — Фигура Подстилка
    • trader_cdlmorningdojistar — Утренняя звезда дожи
    • trader_cdlmorningstar — Утренняя звезда
    • trader_cdlonneck — Паттерн "У линии шеи"
    • trader_cdlpiercing — Паттерн "Просвет в облаках"
    • trader_cdlrickshawman — Длинноногий дожи
    • trader_cdlrisefall3methods — Бычья/медвежья модель "Три метода"
    • trader_cdlseparatinglines — Разделение
    • trader_cdlshootingstar — Падающая звезда
    • trader_cdlshortline — Short Line Candle
    • trader_cdlspinningtop — Волчок
    • trader_cdlstalledpattern — Торможение
    • trader_cdlsticksandwich — Прилипший сэндвич
    • trader_cdltakuri — Takuri (Dragonfly Doji with very long lower shadow)
    • trader_cdltasukigap — Tasuki Gap
    • trader_cdlthrusting — Thrusting Pattern
    • trader_cdltristar — Tristar Pattern
    • trader_cdlunique3river — Unique 3 River
    • trader_cdlupsidegap2crows — Upside Gap Two Crows
    • trader_cdlxsidegap3methods — Upside/Downside Gap Three Methods
    • trader_ceil — Vector Ceil
    • trader_cmo — Chande Momentum Oscillator
    • trader_correl — Pearson's Correlation Coefficient (r)
    • trader_cos — Vector Trigonometric Cos
    • trader_cosh — Vector Trigonometric Cosh
    • trader_dema — Double Exponential Moving Average
    • trader_div — Vector Arithmetic Div
    • trader_dx — Directional Movement Index
    • trader_ema — Exponential Moving Average
    • trader_errno — Получить код ошибки
    • trader_exp — Vector Arithmetic Exp
    • trader_floor — Vector Floor
    • trader_get_compat — Get compatibility mode
    • trader_get_unstable_period — Get unstable period
    • trader_ht_dcperiod — Hilbert Transform - Dominant Cycle Period
    • trader_ht_dcphase — Hilbert Transform - Dominant Cycle Phase
    • trader_ht_phasor — Hilbert Transform - Phasor Components
    • trader_ht_sine — Hilbert Transform - SineWave
    • trader_ht_trendline — Hilbert Transform - Instantaneous Trendline
    • trader_ht_trendmode — Hilbert Transform - Trend vs Cycle Mode
    • trader_kama — Адаптивная скользящая средняя Кауфмана
    • trader_linearreg_angle — Линейный регрессионный угол
    • trader_linearreg_intercept — Перехват линейной регрессии
    • trader_linearreg_slope — Линейный регрессионный наклон
    • trader_linearreg — Линейная регрессия
    • trader_ln — Vector Log Natural
    • trader_log10 — Vector Log10
    • trader_ma — Скользящая средняя
    • trader_macd — Скользящее среднее сходимость/дивергенция
    • trader_macdext — MACD with controllable MA type
    • trader_macdfix — Moving Average Convergence/Divergence Fix 12/26
    • trader_mama — MESA Adaptive Moving Average
    • trader_mavp — Moving average with variable period
    • trader_max — Highest value over a specified period
    • trader_maxindex — Index of highest value over a specified period
    • trader_medprice — Средняя цена
    • trader_mfi — Индекс денежных потоков
    • trader_midpoint — MidPoint over period
    • trader_midprice — Midpoint Price over period
    • trader_min — Lowest value over a specified period
    • trader_minindex — Индекс наименьшего значения за определенный период
    • trader_minmax — Lowest and highest values over a specified period
    • trader_minmaxindex — Indexes of lowest and highest values over a specified period
    • trader_minus_di — Минус-направленный индикатор
    • trader_minus_dm — Минус-направленное движение
    • trader_mom — Моментум
    • trader_mult — Vector Arithmetic Mult
    • trader_natr — Normalized Average True Range
    • trader_obv — Индикатор Балансового объема
    • trader_plus_di — Плюс-направленный индикатор
    • trader_plus_dm — Плюс-направленное движение
    • trader_ppo — Процентный ценовой осциллятор
    • trader_roc — Rate of change : ((price/prevPrice)-1)*100
    • trader_rocp — Rate of change Percentage: (price-prevPrice)/prevPrice
    • trader_rocr100 — Rate of change ratio 100 scale: (price/prevPrice)*100
    • trader_rocr — Rate of change ratio: (price/prevPrice)
    • trader_rsi — Индекс относительной силы
    • trader_sar — Parabolic SAR
    • trader_sarext — Parabolic SAR - Extended
    • trader_set_compat — Set compatibility mode
    • trader_set_unstable_period — Set unstable period
    • trader_sin — Векторный тригонометрический синус
    • trader_sinh — Векторный тригонометрический гиперболический синус
    • trader_sma — Простое скользящее среднее
    • trader_sqrt — Векторный квадратный корень
    • trader_stddev — Стандартное отклонение
    • trader_stoch — Стохастический осциллятор
    • trader_stochf — Быстрый стохастический осциллятор
    • trader_stochrsi — Стохастический относительный индекс силы
    • trader_sub — Векторное арифметическое вычитание
    • trader_sum — Суммирование
    • trader_t3 — Тройная экспоненциальная скользящая средняя
    • trader_tan — Векторный тригонометрический тангенс
    • trader_tanh — Vector Trigonometric Tanh
    • trader_tema — Тройная экспоненциальная скользящая средняя
    • trader_trange — Истинный диапазон
    • trader_trima — Треугольная скользящая средняя
    • trader_trix — 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
    • trader_tsf — Прогноз временного ряда
    • trader_typprice — Типичная цена
    • trader_ultosc — Окончательный, предельный осциллятор
    • trader_var — Вариация
    • trader_wclprice — Взвешенная цена закрытия
    • trader_willr — Williams' %R
    • trader_wma — Взвешенное скользящее среднее


Введение

The trader extension is a free open source stock library based on TA-Lib. It's dedicated to trading software developers requiring to perform technical analysis of financial market data. Alongside many indicators like ADX, MACD, RSI, Stochastic, TRIX the candlestick pattern recognition and several vector arithmetic and algebraic functions are present.

Calculations can be done in two modes - TA-Lib and Metastock. Changing it using trader_set_compat() will affect the way some trader functions work.

Some trader functions provide different results depending of the "starting point" of the data being involved. This is often referred as a function having memories. An example of such function is the Exponential Moving Average. It is possible to control the unstable period (the amount of data to strip off) using trader_set_unstable_period() function.

Extended documentation about indicators, formulas and implementations in other programming languages can be found under » tadoc.org.


Требования

The trader extension is based on » TA-Lib. TA-Lib is fully integrated into the extension, therefore no external libraries are needed.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/trader.

A DLL for this PECL extension is available under » http://windows.php.net/downloads/pecl/releases/trader/.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Trader Опции настройки
Имя | По умолчанию | Место изменения | Список изменений
trader.real_precision | 3 | PHP_INI_ALL | Since trader 0.2.1
trader.real_round_mode | HALF_DOWN | PHP_INI_ALL | Since trader 0.3.0

Краткое разъяснение конфигурационных директив.

trader.real_precision integer

All the values in the returned arrays will be rounded to this precision. However the calculations inside TA-Lib happen with unrounded values.

trader.real_round_mode string

Controls the trader real rounding policy. Valid values are HALF_UP, HALF_DOWN, HALF_EVEN and HALF_ODD. The behaviour is identical to the round() function used with the mode argument.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

TRADER_MA_TYPE_SMA (integer)
TRADER_MA_TYPE_EMA (integer)
TRADER_MA_TYPE_WMA (integer)
TRADER_MA_TYPE_DEMA (integer)
TRADER_MA_TYPE_TEMA (integer)
TRADER_MA_TYPE_TRIMA (integer)
TRADER_MA_TYPE_KAMA (integer)
TRADER_MA_TYPE_MAMA (integer)
TRADER_MA_TYPE_T3 (integer)
TRADER_REAL_MIN (float)
TRADER_REAL_MAX (float)
TRADER_FUNC_UNST_ADX (integer)
TRADER_FUNC_UNST_ADXR (integer)
TRADER_FUNC_UNST_ATR (integer)
TRADER_FUNC_UNST_CMO (integer)
TRADER_FUNC_UNST_DX (integer)
TRADER_FUNC_UNST_EMA (integer)
TRADER_FUNC_UNST_HT_DCPERIOD (integer)
TRADER_FUNC_UNST_HT_DCPHASE (integer)
TRADER_FUNC_UNST_HT_PHASOR (integer)
TRADER_FUNC_UNST_HT_SINE (integer)
TRADER_FUNC_UNST_HT_TRENDLINE (integer)
TRADER_FUNC_UNST_HT_TRENDMODE (integer)
TRADER_FUNC_UNST_KAMA (integer)
TRADER_FUNC_UNST_MAMA (integer)
TRADER_FUNC_UNST_MFI (integer)
TRADER_FUNC_UNST_MINUS_DI (integer)
TRADER_FUNC_UNST_MINUS_DM (integer)
TRADER_FUNC_UNST_NATR (integer)
TRADER_FUNC_UNST_PLUS_DI (integer)
TRADER_FUNC_UNST_PLUS_DM (integer)
TRADER_FUNC_UNST_RSI (integer)
TRADER_FUNC_UNST_STOCHRSI (integer)
TRADER_FUNC_UNST_T3 (integer)
TRADER_FUNC_UNST_ALL (integer)
TRADER_FUNC_UNST_NONE (integer)
TRADER_COMPATIBILITY_DEFAULT (integer)
TRADER_COMPATIBILITY_METASTOCK (integer)
TRADER_ERR_SUCCESS (integer)
TRADER_ERR_LIB_NOT_INITIALIZE (integer)
TRADER_ERR_BAD_PARAM (integer)
TRADER_ERR_ALLOC_ERR (integer)
TRADER_ERR_GROUP_NOT_FOUND (integer)
TRADER_ERR_FUNC_NOT_FOUND (integer)
TRADER_ERR_INVALID_HANDLE (integer)
TRADER_ERR_INVALID_PARAM_HOLDER (integer)
TRADER_ERR_INVALID_PARAM_HOLDER_TYPE (integer)
TRADER_ERR_INVALID_PARAM_FUNCTION (integer)
TRADER_ERR_INPUT_NOT_ALL_INITIALIZE (integer)
TRADER_ERR_OUTPUT_NOT_ALL_INITIALIZE (integer)
TRADER_ERR_OUT_OF_RANGE_START_INDEX (integer)
TRADER_ERR_OUT_OF_RANGE_END_INDEX (integer)
TRADER_ERR_INVALID_LIST_TYPE (integer)
TRADER_ERR_BAD_OBJECT (integer)
TRADER_ERR_NOT_SUPPORTED (integer)
TRADER_ERR_INTERNAL_ERROR (integer)
TRADER_ERR_UNKNOWN_ERROR (integer)


Trader Функции

Содержание

  • trader_acos — Векторный тригонометрический арккосинус
  • trader_ad — Индикатор Чайкина Накопление/Распродажа
  • trader_add — Арифметическое сложение вектора
  • trader_adosc — Осциллятор Чайкина
  • trader_adx — Средний индекс направленного движения
  • trader_adxr — Средний рейтинг индекса направленного движения
  • trader_apo — Абсолютный ценовой осциллятор
  • trader_aroon — Индикатор Aroon
  • trader_aroonosc — Осциллятор индикатора Aroon
  • trader_asin — Векторный тригонометрический арксинус
  • trader_atan — Векторный тригонометрический арктангенс
  • trader_atr — Средний истинный диапазон
  • trader_avgprice — Средняя цена
  • trader_bbands — Полосы Боллинджера
  • trader_beta — Бета
  • trader_bop — Баланс сил
  • trader_cci — Индекс товарного канала
  • trader_cdl2crows — Две вороны
  • trader_cdl3blackcrows — Три черных ворона
  • trader_cdl3inside — Три дня изнутри вверх и три дня изнутри вниз
  • trader_cdl3linestrike — Тройной удар
  • trader_cdl3outside — Три внешних дня вверх и три внешних дня вниз
  • trader_cdl3starsinsouth — Три южных звезды
  • trader_cdl3whitesoldiers — Три наступающих белых солдата
  • trader_cdlabandonedbaby — Брошенное дитя
  • trader_cdladvanceblock — Отбитое наступление
  • trader_cdlbelthold — Захват за пояс
  • trader_cdlbreakaway — Отрыв
  • trader_cdlclosingmarubozu — Closing Marubozu
  • trader_cdlconcealbabyswall — Прячущаяся ласточка
  • trader_cdlcounterattack — Контратака
  • trader_cdldarkcloudcover — Завеса из темных облаков
  • trader_cdldoji — Дожи
  • trader_cdldojistar — Дожи-звезда
  • trader_cdldragonflydoji — Стрекоза дожи
  • trader_cdlengulfing — Модель поглощения
  • trader_cdleveningdojistar — Вечерняя дожи-звезда
  • trader_cdleveningstar — Вечерняя звезда
  • trader_cdlgapsidesidewhite — Up/Down-gap side-by-side white lines
  • trader_cdlgravestonedoji — Дожи-надгробие
  • trader_cdlhammer — Молот
  • trader_cdlhangingman — Висельник
  • trader_cdlharami — Паттерн Харами
  • trader_cdlharamicross — Паттерн "Крест Харами"
  • trader_cdlhighwave — High-Wave Candle
  • trader_cdlhikkake — Hikkake Pattern
  • trader_cdlhikkakemod — Modified Hikkake Pattern
  • trader_cdlhomingpigeon — Homing Pigeon
  • trader_cdlidentical3crows — Identical Three Crows
  • trader_cdlinneck — In-Neck Pattern
  • trader_cdlinvertedhammer — Inverted Hammer
  • trader_cdlkicking — Kicking
  • trader_cdlkickingbylength — Kicking - bull/bear determined by the longer marubozu
  • trader_cdlladderbottom — Ladder Bottom
  • trader_cdllongleggeddoji — Long Legged Doji
  • trader_cdllongline — Long Line Candle
  • trader_cdlmarubozu — Marubozu
  • trader_cdlmatchinglow — Matching Low
  • trader_cdlmathold — Фигура Подстилка
  • trader_cdlmorningdojistar — Утренняя звезда дожи
  • trader_cdlmorningstar — Утренняя звезда
  • trader_cdlonneck — Паттерн "У линии шеи"
  • trader_cdlpiercing — Паттерн "Просвет в облаках"
  • trader_cdlrickshawman — Длинноногий дожи
  • trader_cdlrisefall3methods — Бычья/медвежья модель "Три метода"
  • trader_cdlseparatinglines — Разделение
  • trader_cdlshootingstar — Падающая звезда
  • trader_cdlshortline — Short Line Candle
  • trader_cdlspinningtop — Волчок
  • trader_cdlstalledpattern — Торможение
  • trader_cdlsticksandwich — Прилипший сэндвич
  • trader_cdltakuri — Takuri (Dragonfly Doji with very long lower shadow)
  • trader_cdltasukigap — Tasuki Gap
  • trader_cdlthrusting — Thrusting Pattern
  • trader_cdltristar — Tristar Pattern
  • trader_cdlunique3river — Unique 3 River
  • trader_cdlupsidegap2crows — Upside Gap Two Crows
  • trader_cdlxsidegap3methods — Upside/Downside Gap Three Methods
  • trader_ceil — Vector Ceil
  • trader_cmo — Chande Momentum Oscillator
  • trader_correl — Pearson's Correlation Coefficient (r)
  • trader_cos — Vector Trigonometric Cos
  • trader_cosh — Vector Trigonometric Cosh
  • trader_dema — Double Exponential Moving Average
  • trader_div — Vector Arithmetic Div
  • trader_dx — Directional Movement Index
  • trader_ema — Exponential Moving Average
  • trader_errno — Получить код ошибки
  • trader_exp — Vector Arithmetic Exp
  • trader_floor — Vector Floor
  • trader_get_compat — Get compatibility mode
  • trader_get_unstable_period — Get unstable period
  • trader_ht_dcperiod — Hilbert Transform - Dominant Cycle Period
  • trader_ht_dcphase — Hilbert Transform - Dominant Cycle Phase
  • trader_ht_phasor — Hilbert Transform - Phasor Components
  • trader_ht_sine — Hilbert Transform - SineWave
  • trader_ht_trendline — Hilbert Transform - Instantaneous Trendline
  • trader_ht_trendmode — Hilbert Transform - Trend vs Cycle Mode
  • trader_kama — Адаптивная скользящая средняя Кауфмана
  • trader_linearreg_angle — Линейный регрессионный угол
  • trader_linearreg_intercept — Перехват линейной регрессии
  • trader_linearreg_slope — Линейный регрессионный наклон
  • trader_linearreg — Линейная регрессия
  • trader_ln — Vector Log Natural
  • trader_log10 — Vector Log10
  • trader_ma — Скользящая средняя
  • trader_macd — Скользящее среднее сходимость/дивергенция
  • trader_macdext — MACD with controllable MA type
  • trader_macdfix — Moving Average Convergence/Divergence Fix 12/26
  • trader_mama — MESA Adaptive Moving Average
  • trader_mavp — Moving average with variable period
  • trader_max — Highest value over a specified period
  • trader_maxindex — Index of highest value over a specified period
  • trader_medprice — Средняя цена
  • trader_mfi — Индекс денежных потоков
  • trader_midpoint — MidPoint over period
  • trader_midprice — Midpoint Price over period
  • trader_min — Lowest value over a specified period
  • trader_minindex — Индекс наименьшего значения за определенный период
  • trader_minmax — Lowest and highest values over a specified period
  • trader_minmaxindex — Indexes of lowest and highest values over a specified period
  • trader_minus_di — Минус-направленный индикатор
  • trader_minus_dm — Минус-направленное движение
  • trader_mom — Моментум
  • trader_mult — Vector Arithmetic Mult
  • trader_natr — Normalized Average True Range
  • trader_obv — Индикатор Балансового объема
  • trader_plus_di — Плюс-направленный индикатор
  • trader_plus_dm — Плюс-направленное движение
  • trader_ppo — Процентный ценовой осциллятор
  • trader_roc — Rate of change : ((price/prevPrice)-1)*100
  • trader_rocp — Rate of change Percentage: (price-prevPrice)/prevPrice
  • trader_rocr100 — Rate of change ratio 100 scale: (price/prevPrice)*100
  • trader_rocr — Rate of change ratio: (price/prevPrice)
  • trader_rsi — Индекс относительной силы
  • trader_sar — Parabolic SAR
  • trader_sarext — Parabolic SAR - Extended
  • trader_set_compat — Set compatibility mode
  • trader_set_unstable_period — Set unstable period
  • trader_sin — Векторный тригонометрический синус
  • trader_sinh — Векторный тригонометрический гиперболический синус
  • trader_sma — Простое скользящее среднее
  • trader_sqrt — Векторный квадратный корень
  • trader_stddev — Стандартное отклонение
  • trader_stoch — Стохастический осциллятор
  • trader_stochf — Быстрый стохастический осциллятор
  • trader_stochrsi — Стохастический относительный индекс силы
  • trader_sub — Векторное арифметическое вычитание
  • trader_sum — Суммирование
  • trader_t3 — Тройная экспоненциальная скользящая средняя
  • trader_tan — Векторный тригонометрический тангенс
  • trader_tanh — Vector Trigonometric Tanh
  • trader_tema — Тройная экспоненциальная скользящая средняя
  • trader_trange — Истинный диапазон
  • trader_trima — Треугольная скользящая средняя
  • trader_trix — 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
  • trader_tsf — Прогноз временного ряда
  • trader_typprice — Типичная цена
  • trader_ultosc — Окончательный, предельный осциллятор
  • trader_var — Вариация
  • trader_wclprice — Взвешенная цена закрытия
  • trader_willr — Williams' %R
  • trader_wma — Взвешенное скользящее среднее


Векторный тригонометрический арккосинус

  • « Trader Функции
  • trader_ad »
  • PHP Manual
  • Trader Функции
  • Векторный тригонометрический арккосинус

trader_acos

(PECL trader >= 0.2.0)

trader_acos — Векторный тригонометрический арккосинус

Описание

trader_acos ( array $real ) : array

Вычисляет арккосинус дуги для каждого значения в real и возвращает результирующий массив.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Индикатор Чайкина Накопление/Распродажа

  • « trader_acos
  • trader_add »
  • PHP Manual
  • Trader Функции
  • Индикатор Чайкина Накопление/Распродажа

trader_ad

(PECL trader >= 0.2.0)

trader_ad — Индикатор Чайкина Накопление/Распродажа

Описание

trader_ad ( array $high , array $low , array $close , array $volume ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

volume

Объем торгов, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Арифметическое сложение вектора

  • « trader_ad
  • trader_adosc »
  • PHP Manual
  • Trader Функции
  • Арифметическое сложение вектора

trader_add

(PECL trader >= 0.2.0)

trader_add — Арифметическое сложение вектора

Описание

trader_add ( array $real0 , array $real1 ) : array

Вычисляет векторное сложение real0 к real1 и возвращает полученный вектор.

Список параметров

real0

Массив, содержащий реальные значения.

real1

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Осциллятор Чайкина

  • « trader_add
  • trader_adx »
  • PHP Manual
  • Trader Функции
  • Осциллятор Чайкина

trader_adosc

(PECL trader >= 0.2.0)

trader_adosc — Осциллятор Чайкина

Описание

trader_adosc ( array $high , array $low , array $close , array $volume [, int $fastPeriod [, int $slowPeriod ]] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

volume

Объем торгов, массив реальных значений.

fastPeriod

Номер периода для быстрого скользящего среднего. Допустимы значения от 2 до 100000.

slowPeriod

Номер периода для медленного скользящего среднего. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Средний индекс направленного движения

  • « trader_adosc
  • trader_adxr »
  • PHP Manual
  • Trader Функции
  • Средний индекс направленного движения

trader_adx

(PECL trader >= 0.2.0)

trader_adx — Средний индекс направленного движения

Описание

trader_adx ( array $high , array $low , array $close [, int $timePeriod ] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Средний рейтинг индекса направленного движения

  • « trader_adx
  • trader_apo »
  • PHP Manual
  • Trader Функции
  • Средний рейтинг индекса направленного движения

trader_adxr

(PECL trader >= 0.2.0)

trader_adxr — Средний рейтинг индекса направленного движения

Описание

trader_adxr ( array $high , array $low , array $close [, int $timePeriod ] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Абсолютный ценовой осциллятор

  • « trader_adxr
  • trader_aroon »
  • PHP Manual
  • Trader Функции
  • Абсолютный ценовой осциллятор

trader_apo

(PECL trader >= 0.2.0)

trader_apo — Абсолютный ценовой осциллятор

Описание

trader_apo ( array $real [, int $fastPeriod [, int $slowPeriod [, int $mAType ]]] ) : array

Список параметров

real

Массив, содержащий реальные значения.

fastPeriod

Номер периода для быстрого скользящего среднего. Допустимы значения от 2 до 100000.

slowPeriod

Номер периода для медленного скользящего среднего. Допустимы значения от 2 до 100000.

mAType

Тип скользящей средней. Следует использовать серию констант TRADER_MA_TYPE_*.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Индикатор Aroon

  • « trader_apo
  • trader_aroonosc »
  • PHP Manual
  • Trader Функции
  • Индикатор Aroon

trader_aroon

(PECL trader >= 0.2.0)

trader_aroon — Индикатор Aroon

Описание

trader_aroon ( array $high , array $low [, int $timePeriod ] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Осциллятор индикатора Aroon

  • « trader_aroon
  • trader_asin »
  • PHP Manual
  • Trader Функции
  • Осциллятор индикатора Aroon

trader_aroonosc

(PECL trader >= 0.2.0)

trader_aroonosc — Осциллятор индикатора Aroon

Описание

trader_aroonosc ( array $high , array $low [, int $timePeriod ] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Векторный тригонометрический арксинус

  • « trader_aroonosc
  • trader_atan »
  • PHP Manual
  • Trader Функции
  • Векторный тригонометрический арксинус

trader_asin

(PECL trader >= 0.2.0)

trader_asin — Векторный тригонометрический арксинус

Описание

trader_asin ( array $real ) : array

Вычисляет арксинус для каждого значения в real и возвращает результирующий массив.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Векторный тригонометрический арктангенс

  • « trader_asin
  • trader_atr »
  • PHP Manual
  • Trader Функции
  • Векторный тригонометрический арктангенс

trader_atan

(PECL trader >= 0.2.0)

trader_atan — Векторный тригонометрический арктангенс

Описание

trader_atan ( array $real ) : array

Вычисляет арктангенс для каждого значения в real и возвращает результирующий массив.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Средний истинный диапазон

  • « trader_atan
  • trader_avgprice »
  • PHP Manual
  • Trader Функции
  • Средний истинный диапазон

trader_atr

(PECL trader >= 0.2.0)

trader_atr — Средний истинный диапазон

Описание

trader_atr ( array $high , array $low , array $close [, int $timePeriod ] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Средняя цена

  • « trader_atr
  • trader_bbands »
  • PHP Manual
  • Trader Функции
  • Средняя цена

trader_avgprice

(PECL trader >= 0.2.0)

trader_avgprice — Средняя цена

Описание

trader_avgprice ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Полосы Боллинджера

  • « trader_avgprice
  • trader_beta »
  • PHP Manual
  • Trader Функции
  • Полосы Боллинджера

trader_bbands

(PECL trader >= 0.2.0)

trader_bbands — Полосы Боллинджера

Описание

trader_bbands ( array $real [, int $timePeriod [, float $nbDevUp [, float $nbDevDn [, int $mAType ]]]] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

nbDevUp

Отклоняющий множитель для верхней полосы. Допустимы значения от TRADER_REAL_MIN до TRADER_REAL_MAX.

nbDevDn

Отклоняющий множитель для нижней полосы. Допустимы значения от TRADER_REAL_MIN до TRADER_REAL_MAX.

mAType

Тип скользящей средней. Следует использовать серию констант TRADER_MA_TYPE_*.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Бета

  • « trader_bbands
  • trader_bop »
  • PHP Manual
  • Trader Функции
  • Бета

trader_beta

(PECL trader >= 0.2.0)

trader_beta — Бета

Описание

trader_beta ( array $real0 , array $real1 [, int $timePeriod ] ) : array

Список параметров

real0

Массив, содержащий реальные значения.

real1

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Баланс сил

  • « trader_beta
  • trader_cci »
  • PHP Manual
  • Trader Функции
  • Баланс сил

trader_bop

(PECL trader >= 0.2.0)

trader_bop — Баланс сил

Описание

trader_bop ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Индекс товарного канала

  • « trader_bop
  • trader_cdl2crows »
  • PHP Manual
  • Trader Функции
  • Индекс товарного канала

trader_cci

(PECL trader >= 0.2.0)

trader_cci — Индекс товарного канала

Описание

trader_cci ( array $high , array $low , array $close [, int $timePeriod ] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Две вороны

  • « trader_cci
  • trader_cdl3blackcrows »
  • PHP Manual
  • Trader Функции
  • Две вороны

trader_cdl2crows

(PECL trader >= 0.2.0)

trader_cdl2crows — Две вороны

Описание

trader_cdl2crows ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Три черных ворона

  • « trader_cdl2crows
  • trader_cdl3inside »
  • PHP Manual
  • Trader Функции
  • Три черных ворона

trader_cdl3blackcrows

(PECL trader >= 0.2.0)

trader_cdl3blackcrows — Три черных ворона

Описание

trader_cdl3blackcrows ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Три дня изнутри вверх и три дня изнутри вниз

  • « trader_cdl3blackcrows
  • trader_cdl3linestrike »
  • PHP Manual
  • Trader Функции
  • Три дня изнутри вверх и три дня изнутри вниз

trader_cdl3inside

(PECL trader >= 0.2.0)

trader_cdl3inside — Три дня изнутри вверх и три дня изнутри вниз

Описание

trader_cdl3inside ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Тройной удар

  • « trader_cdl3inside
  • trader_cdl3outside »
  • PHP Manual
  • Trader Функции
  • Тройной удар

trader_cdl3linestrike

(PECL trader >= 0.2.0)

trader_cdl3linestrike — Тройной удар

Описание

trader_cdl3linestrike ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Три внешних дня вверх и три внешних дня вниз

  • « trader_cdl3linestrike
  • trader_cdl3starsinsouth »
  • PHP Manual
  • Trader Функции
  • Три внешних дня вверх и три внешних дня вниз

trader_cdl3outside

(PECL trader >= 0.2.0)

trader_cdl3outside — Три внешних дня вверх и три внешних дня вниз

Описание

trader_cdl3outside ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Три южных звезды

  • « trader_cdl3outside
  • trader_cdl3whitesoldiers »
  • PHP Manual
  • Trader Функции
  • Три южных звезды

trader_cdl3starsinsouth

(PECL trader >= 0.2.0)

trader_cdl3starsinsouth — Три южных звезды

Описание

trader_cdl3starsinsouth ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Три наступающих белых солдата

  • « trader_cdl3starsinsouth
  • trader_cdlabandonedbaby »
  • PHP Manual
  • Trader Функции
  • Три наступающих белых солдата

trader_cdl3whitesoldiers

(PECL trader >= 0.2.0)

trader_cdl3whitesoldiers — Три наступающих белых солдата

Описание

trader_cdl3whitesoldiers ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Брошенное дитя

  • « trader_cdl3whitesoldiers
  • trader_cdladvanceblock »
  • PHP Manual
  • Trader Функции
  • Брошенное дитя

trader_cdlabandonedbaby

(PECL trader >= 0.2.0)

trader_cdlabandonedbaby — Брошенное дитя

Описание

trader_cdlabandonedbaby ( array $open , array $high , array $low , array $close [, float $penetration ] ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

penetration

Процент проникновения одной свечи внутри другой свечи.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Отбитое наступление

  • « trader_cdlabandonedbaby
  • trader_cdlbelthold »
  • PHP Manual
  • Trader Функции
  • Отбитое наступление

trader_cdladvanceblock

(PECL trader >= 0.2.0)

trader_cdladvanceblock — Отбитое наступление

Описание

trader_cdladvanceblock ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Захват за пояс

  • « trader_cdladvanceblock
  • trader_cdlbreakaway »
  • PHP Manual
  • Trader Функции
  • Захват за пояс

trader_cdlbelthold

(PECL trader >= 0.2.0)

trader_cdlbelthold — Захват за пояс

Описание

trader_cdlbelthold ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Отрыв

  • « trader_cdlbelthold
  • trader_cdlclosingmarubozu »
  • PHP Manual
  • Trader Функции
  • Отрыв

trader_cdlbreakaway

(PECL trader >= 0.2.0)

trader_cdlbreakaway — Отрыв

Описание

trader_cdlbreakaway ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Closing Marubozu

  • « trader_cdlbreakaway
  • trader_cdlconcealbabyswall »
  • PHP Manual
  • Trader Функции
  • Closing Marubozu

trader_cdlclosingmarubozu

(PECL trader >= 0.2.0)

trader_cdlclosingmarubozu — Closing Marubozu

Описание

trader_cdlclosingmarubozu ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Прячущаяся ласточка

  • « trader_cdlclosingmarubozu
  • trader_cdlcounterattack »
  • PHP Manual
  • Trader Функции
  • Прячущаяся ласточка

trader_cdlconcealbabyswall

(PECL trader >= 0.2.0)

trader_cdlconcealbabyswall — Прячущаяся ласточка

Описание

trader_cdlconcealbabyswall ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Контратака

  • « trader_cdlconcealbabyswall
  • trader_cdldarkcloudcover »
  • PHP Manual
  • Trader Функции
  • Контратака

trader_cdlcounterattack

(PECL trader >= 0.2.0)

trader_cdlcounterattack — Контратака

Описание

trader_cdlcounterattack ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Завеса из темных облаков

  • « trader_cdlcounterattack
  • trader_cdldoji »
  • PHP Manual
  • Trader Функции
  • Завеса из темных облаков

trader_cdldarkcloudcover

(PECL trader >= 0.2.0)

trader_cdldarkcloudcover — Завеса из темных облаков

Описание

trader_cdldarkcloudcover ( array $open , array $high , array $low , array $close [, float $penetration ] ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

penetration

Процент проникновения одной свечи внутри другой свечи.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Дожи

  • « trader_cdldarkcloudcover
  • trader_cdldojistar »
  • PHP Manual
  • Trader Функции
  • Дожи

trader_cdldoji

(PECL trader >= 0.2.0)

trader_cdldoji — Дожи

Описание

trader_cdldoji ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Дожи-звезда

  • « trader_cdldoji
  • trader_cdldragonflydoji »
  • PHP Manual
  • Trader Функции
  • Дожи-звезда

trader_cdldojistar

(PECL trader >= 0.2.0)

trader_cdldojistar — Дожи-звезда

Описание

trader_cdldojistar ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Стрекоза дожи

  • « trader_cdldojistar
  • trader_cdlengulfing »
  • PHP Manual
  • Trader Функции
  • Стрекоза дожи

trader_cdldragonflydoji

(PECL trader >= 0.2.0)

trader_cdldragonflydoji — Стрекоза дожи

Описание

trader_cdldragonflydoji ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Модель поглощения

  • « trader_cdldragonflydoji
  • trader_cdleveningdojistar »
  • PHP Manual
  • Trader Функции
  • Модель поглощения

trader_cdlengulfing

(PECL trader >= 0.2.0)

trader_cdlengulfing — Модель поглощения

Описание

trader_cdlengulfing ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Вечерняя дожи-звезда

  • « trader_cdlengulfing
  • trader_cdleveningstar »
  • PHP Manual
  • Trader Функции
  • Вечерняя дожи-звезда

trader_cdleveningdojistar

(PECL trader >= 0.2.0)

trader_cdleveningdojistar — Вечерняя дожи-звезда

Описание

trader_cdleveningdojistar ( array $open , array $high , array $low , array $close [, float $penetration ] ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

penetration

Процент проникновения одной свечи внутри другой свечи.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Вечерняя звезда

  • « trader_cdleveningdojistar
  • trader_cdlgapsidesidewhite »
  • PHP Manual
  • Trader Функции
  • Вечерняя звезда

trader_cdleveningstar

(PECL trader >= 0.2.0)

trader_cdleveningstar — Вечерняя звезда

Описание

trader_cdleveningstar ( array $open , array $high , array $low , array $close [, float $penetration ] ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

penetration

Процент проникновения одной свечи внутри другой свечи.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Up/Down-gap side-by-side white lines

  • « trader_cdleveningstar
  • trader_cdlgravestonedoji »
  • PHP Manual
  • Trader Функции
  • Up/Down-gap side-by-side white lines

trader_cdlgapsidesidewhite

(PECL trader >= 0.2.0)

trader_cdlgapsidesidewhite — Up/Down-gap side-by-side white lines

Описание

trader_cdlgapsidesidewhite ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Дожи-надгробие

  • « trader_cdlgapsidesidewhite
  • trader_cdlhammer »
  • PHP Manual
  • Trader Функции
  • Дожи-надгробие

trader_cdlgravestonedoji

(PECL trader >= 0.2.0)

trader_cdlgravestonedoji — Дожи-надгробие

Описание

trader_cdlgravestonedoji ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Молот

  • « trader_cdlgravestonedoji
  • trader_cdlhangingman »
  • PHP Manual
  • Trader Функции
  • Молот

trader_cdlhammer

(PECL trader >= 0.2.0)

trader_cdlhammer — Молот

Описание

trader_cdlhammer ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Висельник

  • « trader_cdlhammer
  • trader_cdlharami »
  • PHP Manual
  • Trader Функции
  • Висельник

trader_cdlhangingman

(PECL trader >= 0.2.0)

trader_cdlhangingman — Висельник

Описание

trader_cdlhangingman ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Паттерн Харами

  • « trader_cdlhangingman
  • trader_cdlharamicross »
  • PHP Manual
  • Trader Функции
  • Паттерн Харами

trader_cdlharami

(PECL trader >= 0.2.0)

trader_cdlharami — Паттерн Харами

Описание

trader_cdlharami ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Паттерн "Крест Харами"

  • « trader_cdlharami
  • trader_cdlhighwave »
  • PHP Manual
  • Trader Функции
  • Паттерн "Крест Харами"

trader_cdlharamicross

(PECL trader >= 0.2.0)

trader_cdlharamicross — Паттерн "Крест Харами"

Описание

trader_cdlharamicross ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


High-Wave Candle

  • « trader_cdlharamicross
  • trader_cdlhikkake »
  • PHP Manual
  • Trader Функции
  • High-Wave Candle

trader_cdlhighwave

(PECL trader >= 0.2.0)

trader_cdlhighwave — High-Wave Candle

Описание

trader_cdlhighwave ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Hikkake Pattern

  • « trader_cdlhighwave
  • trader_cdlhikkakemod »
  • PHP Manual
  • Trader Функции
  • Hikkake Pattern

trader_cdlhikkake

(PECL trader >= 0.2.0)

trader_cdlhikkake — Hikkake Pattern

Описание

trader_cdlhikkake ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Modified Hikkake Pattern

  • « trader_cdlhikkake
  • trader_cdlhomingpigeon »
  • PHP Manual
  • Trader Функции
  • Modified Hikkake Pattern

trader_cdlhikkakemod

(PECL trader >= 0.2.0)

trader_cdlhikkakemod — Modified Hikkake Pattern

Описание

trader_cdlhikkakemod ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Homing Pigeon

  • « trader_cdlhikkakemod
  • trader_cdlidentical3crows »
  • PHP Manual
  • Trader Функции
  • Homing Pigeon

trader_cdlhomingpigeon

(PECL trader >= 0.2.0)

trader_cdlhomingpigeon — Homing Pigeon

Описание

trader_cdlhomingpigeon ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Identical Three Crows

  • « trader_cdlhomingpigeon
  • trader_cdlinneck »
  • PHP Manual
  • Trader Функции
  • Identical Three Crows

trader_cdlidentical3crows

(PECL trader >= 0.2.0)

trader_cdlidentical3crows — Identical Three Crows

Описание

trader_cdlidentical3crows ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


In-Neck Pattern

  • « trader_cdlidentical3crows
  • trader_cdlinvertedhammer »
  • PHP Manual
  • Trader Функции
  • In-Neck Pattern

trader_cdlinneck

(PECL trader >= 0.2.0)

trader_cdlinneck — In-Neck Pattern

Описание

trader_cdlinneck ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Inverted Hammer

  • « trader_cdlinneck
  • trader_cdlkicking »
  • PHP Manual
  • Trader Функции
  • Inverted Hammer

trader_cdlinvertedhammer

(PECL trader >= 0.2.0)

trader_cdlinvertedhammer — Inverted Hammer

Описание

trader_cdlinvertedhammer ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Kicking

  • « trader_cdlinvertedhammer
  • trader_cdlkickingbylength »
  • PHP Manual
  • Trader Функции
  • Kicking

trader_cdlkicking

(PECL trader >= 0.2.0)

trader_cdlkicking — Kicking

Описание

trader_cdlkicking ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Kicking - bull/bear determined by the longer marubozu

  • « trader_cdlkicking
  • trader_cdlladderbottom »
  • PHP Manual
  • Trader Функции
  • Kicking - bull/bear determined by the longer marubozu

trader_cdlkickingbylength

(PECL trader >= 0.2.0)

trader_cdlkickingbylength — Kicking - bull/bear determined by the longer marubozu

Описание

trader_cdlkickingbylength ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Ladder Bottom

  • « trader_cdlkickingbylength
  • trader_cdllongleggeddoji »
  • PHP Manual
  • Trader Функции
  • Ladder Bottom

trader_cdlladderbottom

(PECL trader >= 0.2.0)

trader_cdlladderbottom — Ladder Bottom

Описание

trader_cdlladderbottom ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Long Legged Doji

  • « trader_cdlladderbottom
  • trader_cdllongline »
  • PHP Manual
  • Trader Функции
  • Long Legged Doji

trader_cdllongleggeddoji

(PECL trader >= 0.2.0)

trader_cdllongleggeddoji — Long Legged Doji

Описание

trader_cdllongleggeddoji ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Long Line Candle

  • « trader_cdllongleggeddoji
  • trader_cdlmarubozu »
  • PHP Manual
  • Trader Функции
  • Long Line Candle

trader_cdllongline

(PECL trader >= 0.2.0)

trader_cdllongline — Long Line Candle

Описание

trader_cdllongline ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Marubozu

  • « trader_cdllongline
  • trader_cdlmatchinglow »
  • PHP Manual
  • Trader Функции
  • Marubozu

trader_cdlmarubozu

(PECL trader >= 0.2.0)

trader_cdlmarubozu — Marubozu

Описание

trader_cdlmarubozu ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Matching Low

  • « trader_cdlmarubozu
  • trader_cdlmathold »
  • PHP Manual
  • Trader Функции
  • Matching Low

trader_cdlmatchinglow

(PECL trader >= 0.2.0)

trader_cdlmatchinglow — Matching Low

Описание

trader_cdlmatchinglow ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Фигура Подстилка

  • « trader_cdlmatchinglow
  • trader_cdlmorningdojistar »
  • PHP Manual
  • Trader Функции
  • Фигура Подстилка

trader_cdlmathold

(PECL trader >= 0.2.0)

trader_cdlmathold — Фигура Подстилка

Описание

trader_cdlmathold ( array $open , array $high , array $low , array $close [, float $penetration ] ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

penetration

Процент проникновения одной свечи внутри другой свечи.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Утренняя звезда дожи

  • « trader_cdlmathold
  • trader_cdlmorningstar »
  • PHP Manual
  • Trader Функции
  • Утренняя звезда дожи

trader_cdlmorningdojistar

(PECL trader >= 0.2.0)

trader_cdlmorningdojistar — Утренняя звезда дожи

Описание

trader_cdlmorningdojistar ( array $open , array $high , array $low , array $close [, float $penetration ] ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

penetration

Процент проникновения одной свечи внутри другой свечи.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Утренняя звезда

  • « trader_cdlmorningdojistar
  • trader_cdlonneck »
  • PHP Manual
  • Trader Функции
  • Утренняя звезда

trader_cdlmorningstar

(PECL trader >= 0.2.0)

trader_cdlmorningstar — Утренняя звезда

Описание

trader_cdlmorningstar ( array $open , array $high , array $low , array $close [, float $penetration ] ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

penetration

Процент проникновения одной свечи внутри другой свечи.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Паттерн "У линии шеи"

  • « trader_cdlmorningstar
  • trader_cdlpiercing »
  • PHP Manual
  • Trader Функции
  • Паттерн "У линии шеи"

trader_cdlonneck

(PECL trader >= 0.2.0)

trader_cdlonneck — Паттерн "У линии шеи"

Описание

trader_cdlonneck ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Паттерн "Просвет в облаках"

  • « trader_cdlonneck
  • trader_cdlrickshawman »
  • PHP Manual
  • Trader Функции
  • Паттерн "Просвет в облаках"

trader_cdlpiercing

(PECL trader >= 0.2.0)

trader_cdlpiercing — Паттерн "Просвет в облаках"

Описание

trader_cdlpiercing ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Длинноногий дожи

  • « trader_cdlpiercing
  • trader_cdlrisefall3methods »
  • PHP Manual
  • Trader Функции
  • Длинноногий дожи

trader_cdlrickshawman

(PECL trader >= 0.2.0)

trader_cdlrickshawman — Длинноногий дожи

Описание

trader_cdlrickshawman ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Бычья/медвежья модель "Три метода"

  • « trader_cdlrickshawman
  • trader_cdlseparatinglines »
  • PHP Manual
  • Trader Функции
  • Бычья/медвежья модель "Три метода"

trader_cdlrisefall3methods

(PECL trader >= 0.2.0)

trader_cdlrisefall3methods — Бычья/медвежья модель "Три метода"

Описание

trader_cdlrisefall3methods ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Разделение

  • « trader_cdlrisefall3methods
  • trader_cdlshootingstar »
  • PHP Manual
  • Trader Функции
  • Разделение

trader_cdlseparatinglines

(PECL trader >= 0.2.0)

trader_cdlseparatinglines — Разделение

Описание

trader_cdlseparatinglines ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Падающая звезда

  • « trader_cdlseparatinglines
  • trader_cdlshortline »
  • PHP Manual
  • Trader Функции
  • Падающая звезда

trader_cdlshootingstar

(PECL trader >= 0.2.0)

trader_cdlshootingstar — Падающая звезда

Описание

trader_cdlshootingstar ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Short Line Candle

  • « trader_cdlshootingstar
  • trader_cdlspinningtop »
  • PHP Manual
  • Trader Функции
  • Short Line Candle

trader_cdlshortline

(PECL trader >= 0.2.0)

trader_cdlshortline — Short Line Candle

Описание

trader_cdlshortline ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Волчок

  • « trader_cdlshortline
  • trader_cdlstalledpattern »
  • PHP Manual
  • Trader Функции
  • Волчок

trader_cdlspinningtop

(PECL trader >= 0.2.0)

trader_cdlspinningtop — Волчок

Описание

trader_cdlspinningtop ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Торможение

  • « trader_cdlspinningtop
  • trader_cdlsticksandwich »
  • PHP Manual
  • Trader Функции
  • Торможение

trader_cdlstalledpattern

(PECL trader >= 0.2.0)

trader_cdlstalledpattern — Торможение

Описание

trader_cdlstalledpattern ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Прилипший сэндвич

  • « trader_cdlstalledpattern
  • trader_cdltakuri »
  • PHP Manual
  • Trader Функции
  • Прилипший сэндвич

trader_cdlsticksandwich

(PECL trader >= 0.2.0)

trader_cdlsticksandwich — Прилипший сэндвич

Описание

trader_cdlsticksandwich ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Takuri (Dragonfly Doji with very long lower shadow)

  • « trader_cdlsticksandwich
  • trader_cdltasukigap »
  • PHP Manual
  • Trader Функции
  • Takuri (Dragonfly Doji with very long lower shadow)

trader_cdltakuri

(PECL trader >= 0.2.0)

trader_cdltakuri — Takuri (Dragonfly Doji with very long lower shadow)

Описание

trader_cdltakuri ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Tasuki Gap

  • « trader_cdltakuri
  • trader_cdlthrusting »
  • PHP Manual
  • Trader Функции
  • Tasuki Gap

trader_cdltasukigap

(PECL trader >= 0.2.0)

trader_cdltasukigap — Tasuki Gap

Описание

trader_cdltasukigap ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Thrusting Pattern

  • « trader_cdltasukigap
  • trader_cdltristar »
  • PHP Manual
  • Trader Функции
  • Thrusting Pattern

trader_cdlthrusting

(PECL trader >= 0.2.0)

trader_cdlthrusting — Thrusting Pattern

Описание

trader_cdlthrusting ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Tristar Pattern

  • « trader_cdlthrusting
  • trader_cdlunique3river »
  • PHP Manual
  • Trader Функции
  • Tristar Pattern

trader_cdltristar

(PECL trader >= 0.2.0)

trader_cdltristar — Tristar Pattern

Описание

trader_cdltristar ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Unique 3 River

  • « trader_cdltristar
  • trader_cdlupsidegap2crows »
  • PHP Manual
  • Trader Функции
  • Unique 3 River

trader_cdlunique3river

(PECL trader >= 0.2.0)

trader_cdlunique3river — Unique 3 River

Описание

trader_cdlunique3river ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Upside Gap Two Crows

  • « trader_cdlunique3river
  • trader_cdlxsidegap3methods »
  • PHP Manual
  • Trader Функции
  • Upside Gap Two Crows

trader_cdlupsidegap2crows

(PECL trader >= 0.2.0)

trader_cdlupsidegap2crows — Upside Gap Two Crows

Описание

trader_cdlupsidegap2crows ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Upside/Downside Gap Three Methods

  • « trader_cdlupsidegap2crows
  • trader_ceil »
  • PHP Manual
  • Trader Функции
  • Upside/Downside Gap Three Methods

trader_cdlxsidegap3methods

(PECL trader >= 0.2.0)

trader_cdlxsidegap3methods — Upside/Downside Gap Three Methods

Описание

trader_cdlxsidegap3methods ( array $open , array $high , array $low , array $close ) : array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Ceil

  • « trader_cdlxsidegap3methods
  • trader_cmo »
  • PHP Manual
  • Trader Функции
  • Vector Ceil

trader_ceil

(PECL trader >= 0.2.0)

trader_ceil — Vector Ceil

Описание

trader_ceil ( array $real ) : array

Calculates the next highest integer for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Chande Momentum Oscillator

  • « trader_ceil
  • trader_correl »
  • PHP Manual
  • Trader Функции
  • Chande Momentum Oscillator

trader_cmo

(PECL trader >= 0.2.0)

trader_cmo — Chande Momentum Oscillator

Описание

trader_cmo ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Pearson's Correlation Coefficient (r)

  • « trader_cmo
  • trader_cos »
  • PHP Manual
  • Trader Функции
  • Pearson's Correlation Coefficient (r)

trader_correl

(PECL trader >= 0.2.0)

trader_correl — Pearson's Correlation Coefficient (r)

Описание

trader_correl ( array $real0 , array $real1 [, int $timePeriod ] ) : array

Список параметров

real0

Массив, содержащий реальные значения.

real1

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Trigonometric Cos

  • « trader_correl
  • trader_cosh »
  • PHP Manual
  • Trader Функции
  • Vector Trigonometric Cos

trader_cos

(PECL trader >= 0.2.0)

trader_cos — Vector Trigonometric Cos

Описание

trader_cos ( array $real ) : array

Calculates the cosine for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Trigonometric Cosh

  • « trader_cos
  • trader_dema »
  • PHP Manual
  • Trader Функции
  • Vector Trigonometric Cosh

trader_cosh

(PECL trader >= 0.2.0)

trader_cosh — Vector Trigonometric Cosh

Описание

trader_cosh ( array $real ) : array

Calculates the hyperbolic cosine for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Double Exponential Moving Average

  • « trader_cosh
  • trader_div »
  • PHP Manual
  • Trader Функции
  • Double Exponential Moving Average

trader_dema

(PECL trader >= 0.2.0)

trader_dema — Double Exponential Moving Average

Описание

trader_dema ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Arithmetic Div

  • « trader_dema
  • trader_dx »
  • PHP Manual
  • Trader Функции
  • Vector Arithmetic Div

trader_div

(PECL trader >= 0.2.0)

trader_div — Vector Arithmetic Div

Описание

trader_div ( array $real0 , array $real1 ) : array

Divides each value from real0 by the corresponding value from real1 and returns the resulting array.

Список параметров

real0

Массив, содержащий реальные значения.

real1

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Directional Movement Index

  • « trader_div
  • trader_ema »
  • PHP Manual
  • Trader Функции
  • Directional Movement Index

trader_dx

(PECL trader >= 0.2.0)

trader_dx — Directional Movement Index

Описание

trader_dx ( array $high , array $low , array $close [, int $timePeriod ] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Exponential Moving Average

  • « trader_dx
  • trader_errno »
  • PHP Manual
  • Trader Функции
  • Exponential Moving Average

trader_ema

(PECL trader >= 0.2.0)

trader_ema — Exponential Moving Average

Описание

trader_ema ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Получить код ошибки

  • « trader_ema
  • trader_exp »
  • PHP Manual
  • Trader Функции
  • Получить код ошибки

trader_errno

(PECL trader >= 0.3.0)

trader_errno — Получить код ошибки

Описание

trader_errno ( void ) : int

Получить код ошибки последней операции.

Возвращаемые значения

Возвращает код ошибки, идентифицированный одной из TRADER_ERR_* констант.


Vector Arithmetic Exp

  • « trader_errno
  • trader_floor »
  • PHP Manual
  • Trader Функции
  • Vector Arithmetic Exp

trader_exp

(PECL trader >= 0.2.0)

trader_exp — Vector Arithmetic Exp

Описание

trader_exp ( array $real ) : array

Calculates e raised to the power of each value in real. Returns an array with the calculated data.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Floor

  • « trader_exp
  • trader_get_compat »
  • PHP Manual
  • Trader Функции
  • Vector Floor

trader_floor

(PECL trader >= 0.2.0)

trader_floor — Vector Floor

Описание

trader_floor ( array $real ) : array

Calculates the next lowest integer for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Get compatibility mode

  • « trader_floor
  • trader_get_unstable_period »
  • PHP Manual
  • Trader Функции
  • Get compatibility mode

trader_get_compat

(PECL trader >= 0.2.2)

trader_get_compat — Get compatibility mode

Описание

trader_get_compat ( void ) : int

Get compatibility mode which affects the way calculations are done by all the extension functions.

Возвращаемые значения

Returns the compatibility mode id which can be identified by TRADER_COMPATIBILITY_* series of constants.


Get unstable period

  • « trader_get_compat
  • trader_ht_dcperiod »
  • PHP Manual
  • Trader Функции
  • Get unstable period

trader_get_unstable_period

(PECL trader >= 0.2.2)

trader_get_unstable_period — Get unstable period

Описание

trader_get_unstable_period ( int $functionId ) : int

Get unstable period factor for a particular function.

Список параметров

functionId

Function ID the factor to be read for. TRADER_FUNC_UNST_* series of constants should be used.

Возвращаемые значения

Returns the unstable period factor for the corresponding function.


Hilbert Transform - Dominant Cycle Period

  • « trader_get_unstable_period
  • trader_ht_dcphase »
  • PHP Manual
  • Trader Функции
  • Hilbert Transform - Dominant Cycle Period

trader_ht_dcperiod

(PECL trader >= 0.2.0)

trader_ht_dcperiod — Hilbert Transform - Dominant Cycle Period

Описание

trader_ht_dcperiod ( array $real ) : array

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Hilbert Transform - Dominant Cycle Phase

  • « trader_ht_dcperiod
  • trader_ht_phasor »
  • PHP Manual
  • Trader Функции
  • Hilbert Transform - Dominant Cycle Phase

trader_ht_dcphase

(PECL trader >= 0.2.0)

trader_ht_dcphase — Hilbert Transform - Dominant Cycle Phase

Описание

trader_ht_dcphase ( array $real ) : array

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Hilbert Transform - Phasor Components

  • « trader_ht_dcphase
  • trader_ht_sine »
  • PHP Manual
  • Trader Функции
  • Hilbert Transform - Phasor Components

trader_ht_phasor

(PECL trader >= 0.2.0)

trader_ht_phasor — Hilbert Transform - Phasor Components

Описание

trader_ht_phasor ( array $real ) : array

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Hilbert Transform - SineWave

  • « trader_ht_phasor
  • trader_ht_trendline »
  • PHP Manual
  • Trader Функции
  • Hilbert Transform - SineWave

trader_ht_sine

(PECL trader >= 0.2.0)

trader_ht_sine — Hilbert Transform - SineWave

Описание

trader_ht_sine ( array $real ) : array

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Hilbert Transform - Instantaneous Trendline

  • « trader_ht_sine
  • trader_ht_trendmode »
  • PHP Manual
  • Trader Функции
  • Hilbert Transform - Instantaneous Trendline

trader_ht_trendline

(PECL trader >= 0.2.0)

trader_ht_trendline — Hilbert Transform - Instantaneous Trendline

Описание

trader_ht_trendline ( array $real ) : array

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Hilbert Transform - Trend vs Cycle Mode

  • « trader_ht_trendline
  • trader_kama »
  • PHP Manual
  • Trader Функции
  • Hilbert Transform - Trend vs Cycle Mode

trader_ht_trendmode

(PECL trader >= 0.2.0)

trader_ht_trendmode — Hilbert Transform - Trend vs Cycle Mode

Описание

trader_ht_trendmode ( array $real ) : array

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Адаптивная скользящая средняя Кауфмана

  • « trader_ht_trendmode
  • trader_linearreg_angle »
  • PHP Manual
  • Trader Функции
  • Адаптивная скользящая средняя Кауфмана

trader_kama

(PECL trader >= 0.2.0)

trader_kama — Адаптивная скользящая средняя Кауфмана

Описание

trader_kama ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Линейный регрессионный угол

  • « trader_kama
  • trader_linearreg_intercept »
  • PHP Manual
  • Trader Функции
  • Линейный регрессионный угол

trader_linearreg_angle

(PECL trader >= 0.2.0)

trader_linearreg_angle — Линейный регрессионный угол

Описание

trader_linearreg_angle ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Перехват линейной регрессии

  • « trader_linearreg_angle
  • trader_linearreg_slope »
  • PHP Manual
  • Trader Функции
  • Перехват линейной регрессии

trader_linearreg_intercept

(PECL trader >= 0.2.0)

trader_linearreg_intercept — Перехват линейной регрессии

Описание

trader_linearreg_intercept ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Линейный регрессионный наклон

  • « trader_linearreg_intercept
  • trader_linearreg »
  • PHP Manual
  • Trader Функции
  • Линейный регрессионный наклон

trader_linearreg_slope

(PECL trader >= 0.2.0)

trader_linearreg_slope — Линейный регрессионный наклон

Описание

trader_linearreg_slope ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Линейная регрессия

  • « trader_linearreg_slope
  • trader_ln »
  • PHP Manual
  • Trader Функции
  • Линейная регрессия

trader_linearreg

(PECL trader >= 0.2.0)

trader_linearreg — Линейная регрессия

Описание

trader_linearreg ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Vector Log Natural

  • « trader_linearreg
  • trader_log10 »
  • PHP Manual
  • Trader Функции
  • Vector Log Natural

trader_ln

(PECL trader >= 0.2.0)

trader_ln — Vector Log Natural

Описание

trader_ln ( array $real ) : array

Calculates the natural logarithm for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Log10

  • « trader_ln
  • trader_ma »
  • PHP Manual
  • Trader Функции
  • Vector Log10

trader_log10

(PECL trader >= 0.2.0)

trader_log10 — Vector Log10

Описание

trader_log10 ( array $real ) : array

Calculates the base-10 logarithm for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Скользящая средняя

  • « trader_log10
  • trader_macd »
  • PHP Manual
  • Trader Функции
  • Скользящая средняя

trader_ma

(PECL trader >= 0.2.0)

trader_ma — Скользящая средняя

Описание

trader_ma ( array $real [, int $timePeriod [, int $mAType ]] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

mAType

Тип скользящей средней. Следует использовать серию констант TRADER_MA_TYPE_*.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Скользящее среднее сходимость/дивергенция

  • « trader_ma
  • trader_macdext »
  • PHP Manual
  • Trader Функции
  • Скользящее среднее сходимость/дивергенция

trader_macd

(PECL trader >= 0.2.0)

trader_macd — Скользящее среднее сходимость/дивергенция

Описание

trader_macd ( array $real [, int $fastPeriod [, int $slowPeriod [, int $signalPeriod ]]] ) : array

Список параметров

real

Массив, содержащий реальные значения.

fastPeriod

Номер периода для быстрого скользящего среднего. Допустимы значения от 2 до 100000.

slowPeriod

Номер периода для медленного скользящего среднего. Допустимы значения от 2 до 100000.

signalPeriod

Сглаживание для сигнальной линии (номер периода). Допустимы значения от 1 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


MACD with controllable MA type

  • « trader_macd
  • trader_macdfix »
  • PHP Manual
  • Trader Функции
  • MACD with controllable MA type

trader_macdext

(PECL trader >= 0.2.0)

trader_macdext — MACD with controllable MA type

Описание

trader_macdext ( array $real [, int $fastPeriod [, int $fastMAType [, int $slowPeriod [, int $slowMAType [, int $signalPeriod [, int $signalMAType ]]]]]] ) : array

Список параметров

real

Массив, содержащий реальные значения.

fastPeriod

Номер периода для быстрого скользящего среднего. Допустимы значения от 2 до 100000.

fastMAType

Тип скользящей средней для быстрого скользящего среднего. Следует использовать серию констант TRADER_MA_TYPE_*.

slowPeriod

Номер периода для медленного скользящего среднего. Допустимы значения от 2 до 100000.

slowMAType

Тип скользящей средней для медленного скользящего среднего. Следует использовать серию констант TRADER_MA_TYPE_*.

signalPeriod

Сглаживание для сигнальной линии (номер периода). Допустимы значения от 1 до 100000.

signalMAType

Тип скользящей средней для сигнальной линии. Следует использовать серию констант TRADER_MA_TYPE_*.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Moving Average Convergence/Divergence Fix 12/26

  • « trader_macdext
  • trader_mama »
  • PHP Manual
  • Trader Функции
  • Moving Average Convergence/Divergence Fix 12/26

trader_macdfix

(PECL trader >= 0.2.0)

trader_macdfix — Moving Average Convergence/Divergence Fix 12/26

Описание

trader_macdfix ( array $real [, int $signalPeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

signalPeriod

Сглаживание для сигнальной линии (номер периода). Допустимы значения от 1 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


MESA Adaptive Moving Average

  • « trader_macdfix
  • trader_mavp »
  • PHP Manual
  • Trader Функции
  • MESA Adaptive Moving Average

trader_mama

(PECL trader >= 0.2.0)

trader_mama — MESA Adaptive Moving Average

Описание

trader_mama ( array $real [, float $fastLimit [, float $slowLimit ]] ) : array

Список параметров

real

Массив, содержащий реальные значения.

fastLimit

Верхний предел, используемый в адаптивном алгоритме. Допустимы значения от 0.01 до 0.99.

slowLimit

Нижний предел, используемый в адаптивном алгоритме. Допустимы значения от 0.01 до 0.99.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Moving average with variable period

  • « trader_mama
  • trader_max »
  • PHP Manual
  • Trader Функции
  • Moving average with variable period

trader_mavp

(PECL trader >= 0.2.0)

trader_mavp — Moving average with variable period

Описание

trader_mavp ( array $real , array $periods [, int $minPeriod [, int $maxPeriod [, int $mAType ]]] ) : array

Список параметров

real

Массив, содержащий реальные значения.

periods

Массив, содержащий реальные значения.

minPeriod

Значение, меньшее минимума, будет изменено на минимальный период. Допустимы значения от 2 до 100000

maxPeriod

Значение, большее максимума, будет изменено на максимальный период. Допустимы значения от 2 до 100000

mAType

Тип скользящей средней. Следует использовать серию констант TRADER_MA_TYPE_*.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Highest value over a specified period

  • « trader_mavp
  • trader_maxindex »
  • PHP Manual
  • Trader Функции
  • Highest value over a specified period

trader_max

(PECL trader >= 0.2.0)

trader_max — Highest value over a specified period

Описание

trader_max ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Index of highest value over a specified period

  • « trader_max
  • trader_medprice »
  • PHP Manual
  • Trader Функции
  • Index of highest value over a specified period

trader_maxindex

(PECL trader >= 0.2.0)

trader_maxindex — Index of highest value over a specified period

Описание

trader_maxindex ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Средняя цена

  • « trader_maxindex
  • trader_mfi »
  • PHP Manual
  • Trader Функции
  • Средняя цена

trader_medprice

(PECL trader >= 0.2.0)

trader_medprice — Средняя цена

Описание

trader_medprice ( array $high , array $low ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Индекс денежных потоков

  • « trader_medprice
  • trader_midpoint »
  • PHP Manual
  • Trader Функции
  • Индекс денежных потоков

trader_mfi

(PECL trader >= 0.2.0)

trader_mfi — Индекс денежных потоков

Описание

trader_mfi ( array $high , array $low , array $close , array $volume [, int $timePeriod ] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

volume

Объем торгов, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


MidPoint over period

  • « trader_mfi
  • trader_midprice »
  • PHP Manual
  • Trader Функции
  • MidPoint over period

trader_midpoint

(PECL trader >= 0.2.0)

trader_midpoint — MidPoint over period

Описание

trader_midpoint ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Midpoint Price over period

  • « trader_midpoint
  • trader_min »
  • PHP Manual
  • Trader Функции
  • Midpoint Price over period

trader_midprice

(PECL trader >= 0.2.0)

trader_midprice — Midpoint Price over period

Описание

trader_midprice ( array $high , array $low [, int $timePeriod ] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Lowest value over a specified period

  • « trader_midprice
  • trader_minindex »
  • PHP Manual
  • Trader Функции
  • Lowest value over a specified period

trader_min

(PECL trader >= 0.2.0)

trader_min — Lowest value over a specified period

Описание

trader_min ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Индекс наименьшего значения за определенный период

  • « trader_min
  • trader_minmax »
  • PHP Manual
  • Trader Функции
  • Индекс наименьшего значения за определенный период

trader_minindex

(PECL trader >= 0.2.0)

trader_minindex — Индекс наименьшего значения за определенный период

Описание

trader_minindex ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Lowest and highest values over a specified period

  • « trader_minindex
  • trader_minmaxindex »
  • PHP Manual
  • Trader Функции
  • Lowest and highest values over a specified period

trader_minmax

(PECL trader >= 0.2.0)

trader_minmax — Lowest and highest values over a specified period

Описание

trader_minmax ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Indexes of lowest and highest values over a specified period

  • « trader_minmax
  • trader_minus_di »
  • PHP Manual
  • Trader Функции
  • Indexes of lowest and highest values over a specified period

trader_minmaxindex

(PECL trader >= 0.2.0)

trader_minmaxindex — Indexes of lowest and highest values over a specified period

Описание

trader_minmaxindex ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Минус-направленный индикатор

  • « trader_minmaxindex
  • trader_minus_dm »
  • PHP Manual
  • Trader Функции
  • Минус-направленный индикатор

trader_minus_di

(PECL trader >= 0.2.0)

trader_minus_di — Минус-направленный индикатор

Описание

trader_minus_di ( array $high , array $low , array $close [, int $timePeriod ] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Минус-направленное движение

  • « trader_minus_di
  • trader_mom »
  • PHP Manual
  • Trader Функции
  • Минус-направленное движение

trader_minus_dm

(PECL trader >= 0.2.0)

trader_minus_dm — Минус-направленное движение

Описание

trader_minus_dm ( array $high , array $low [, int $timePeriod ] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Моментум

  • « trader_minus_dm
  • trader_mult »
  • PHP Manual
  • Trader Функции
  • Моментум

trader_mom

(PECL trader >= 0.2.0)

trader_mom — Моментум

Описание

trader_mom ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Vector Arithmetic Mult

  • « trader_mom
  • trader_natr »
  • PHP Manual
  • Trader Функции
  • Vector Arithmetic Mult

trader_mult

(PECL trader >= 0.2.0)

trader_mult — Vector Arithmetic Mult

Описание

trader_mult ( array $real0 , array $real1 ) : array

Calculates the vector dot product of real0 with real1 and returns the resulting vector.

Список параметров

real0

Массив, содержащий реальные значения.

real1

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Normalized Average True Range

  • « trader_mult
  • trader_obv »
  • PHP Manual
  • Trader Функции
  • Normalized Average True Range

trader_natr

(PECL trader >= 0.2.0)

trader_natr — Normalized Average True Range

Описание

trader_natr ( array $high , array $low , array $close [, int $timePeriod ] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Индикатор Балансового объема

  • « trader_natr
  • trader_plus_di »
  • PHP Manual
  • Trader Функции
  • Индикатор Балансового объема

trader_obv

(PECL trader >= 0.2.0)

trader_obv — Индикатор Балансового объема

Описание

trader_obv ( array $real , array $volume ) : array

Список параметров

real

Массив, содержащий реальные значения.

volume

Объем торгов, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Плюс-направленный индикатор

  • « trader_obv
  • trader_plus_dm »
  • PHP Manual
  • Trader Функции
  • Плюс-направленный индикатор

trader_plus_di

(PECL trader >= 0.2.0)

trader_plus_di — Плюс-направленный индикатор

Описание

trader_plus_di ( array $high , array $low , array $close [, int $timePeriod ] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Плюс-направленное движение

  • « trader_plus_di
  • trader_ppo »
  • PHP Manual
  • Trader Функции
  • Плюс-направленное движение

trader_plus_dm

(PECL trader >= 0.2.0)

trader_plus_dm — Плюс-направленное движение

Описание

trader_plus_dm ( array $high , array $low [, int $timePeriod ] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Процентный ценовой осциллятор

  • « trader_plus_dm
  • trader_roc »
  • PHP Manual
  • Trader Функции
  • Процентный ценовой осциллятор

trader_ppo

(PECL trader >= 0.2.0)

trader_ppo — Процентный ценовой осциллятор

Описание

trader_ppo ( array $real [, int $fastPeriod [, int $slowPeriod [, int $mAType ]]] ) : array

Список параметров

real

Массив, содержащий реальные значения.

fastPeriod

Номер периода для быстрого скользящего среднего. Допустимы значения от 2 до 100000.

slowPeriod

Номер периода для медленного скользящего среднего. Допустимы значения от 2 до 100000.

mAType

Тип скользящей средней. Следует использовать серию констант TRADER_MA_TYPE_*.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Rate of change : ((price/prevPrice)-1)*100

  • « trader_ppo
  • trader_rocp »
  • PHP Manual
  • Trader Функции
  • Rate of change : ((price/prevPrice)-1)*100

trader_roc

(PECL trader >= 0.2.0)

trader_roc — Rate of change : ((price/prevPrice)-1)*100

Описание

trader_roc ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Rate of change Percentage: (price-prevPrice)/prevPrice

  • « trader_roc
  • trader_rocr100 »
  • PHP Manual
  • Trader Функции
  • Rate of change Percentage: (price-prevPrice)/prevPrice

trader_rocp

(PECL trader >= 0.2.0)

trader_rocp — Rate of change Percentage: (price-prevPrice)/prevPrice

Описание

trader_rocp ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Rate of change ratio 100 scale: (price/prevPrice)*100

  • « trader_rocp
  • trader_rocr »
  • PHP Manual
  • Trader Функции
  • Rate of change ratio 100 scale: (price/prevPrice)*100

trader_rocr100

(PECL trader >= 0.2.0)

trader_rocr100 — Rate of change ratio 100 scale: (price/prevPrice)*100

Описание

trader_rocr100 ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Rate of change ratio: (price/prevPrice)

  • « trader_rocr100
  • trader_rsi »
  • PHP Manual
  • Trader Функции
  • Rate of change ratio: (price/prevPrice)

trader_rocr

(PECL trader >= 0.2.0)

trader_rocr — Rate of change ratio: (price/prevPrice)

Описание

trader_rocr ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Индекс относительной силы

  • « trader_rocr
  • trader_sar »
  • PHP Manual
  • Trader Функции
  • Индекс относительной силы

trader_rsi

(PECL trader >= 0.2.0)

trader_rsi — Индекс относительной силы

Описание

trader_rsi ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Parabolic SAR

  • « trader_rsi
  • trader_sarext »
  • PHP Manual
  • Trader Функции
  • Parabolic SAR

trader_sar

(PECL trader >= 0.2.0)

trader_sar — Parabolic SAR

Описание

trader_sar ( array $high , array $low [, float $acceleration [, float $maximum ]] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

acceleration

Acceleration Factor used up to the Maximum value. Valid range from 0 to TRADER_REAL_MAX.

maximum

Acceleration Factor Maximum value. Valid range from 0 to TRADER_REAL_MAX.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Parabolic SAR - Extended

  • « trader_sar
  • trader_set_compat »
  • PHP Manual
  • Trader Функции
  • Parabolic SAR - Extended

trader_sarext

(PECL trader >= 0.2.0)

trader_sarext — Parabolic SAR - Extended

Описание

trader_sarext ( array $high , array $low [, float $startValue [, float $offsetOnReverse [, float $accelerationInitLong [, float $accelerationLong [, float $accelerationMaxLong [, float $accelerationInitShort [, float $accelerationShort [, float $accelerationMaxShort ]]]]]]]] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

startValue

Start value and direction. 0 for Auto, >0 for Long, <0 for Short. Valid range from TRADER_REAL_MIN to TRADER_REAL_MAX.

offsetOnReverse

Percent offset added/removed to initial stop on short/long reversal. Valid range from 0 to TRADER_REAL_MAX.

accelerationInitLong

Acceleration Factor initial value for the Long direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationLong

Acceleration Factor for the Long direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationMaxLong

Acceleration Factor maximum value for the Long direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationInitShort

Acceleration Factor initial value for the Short direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationShort

Acceleration Factor for the Short direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationMaxShort

Acceleration Factor maximum value for the Short direction. Valid range from 0 to TRADER_REAL_MAX.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Set compatibility mode

  • « trader_sarext
  • trader_set_unstable_period »
  • PHP Manual
  • Trader Функции
  • Set compatibility mode

trader_set_compat

(PECL trader >= 0.2.2)

trader_set_compat — Set compatibility mode

Описание

trader_set_compat ( int $compatId ) : void

Set compatibility mode which will affect the way calculations are done by all the extension functions.

Список параметров

compatId

Compatibility Id. TRADER_COMPATIBILITY_* series of constants should be used.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Set unstable period

  • « trader_set_compat
  • trader_sin »
  • PHP Manual
  • Trader Функции
  • Set unstable period

trader_set_unstable_period

(PECL trader >= 0.2.2)

trader_set_unstable_period — Set unstable period

Описание

trader_set_unstable_period ( int $functionId , int $timePeriod ) : void

Influences unstable period factor for functions, which are sensible to it. More information about unstable periods can be found on the » TA-Lib API documentation page.

Список параметров

functionId

Function ID the factor should be set for. TRADER_FUNC_UNST_* constant series can be used to affect the corresponding function.

timePeriod

Unstable period value.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Векторный тригонометрический синус

  • « trader_set_unstable_period
  • trader_sinh »
  • PHP Manual
  • Trader Функции
  • Векторный тригонометрический синус

trader_sin

(PECL trader >= 0.2.0)

trader_sin — Векторный тригонометрический синус

Описание

trader_sin ( array $real ) : array

Вычисляет синус для каждого значения в real и возвращает результирующий массив.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Векторный тригонометрический гиперболический синус

  • « trader_sin
  • trader_sma »
  • PHP Manual
  • Trader Функции
  • Векторный тригонометрический гиперболический синус

trader_sinh

(PECL trader >= 0.2.0)

trader_sinh — Векторный тригонометрический гиперболический синус

Описание

trader_sinh ( array $real ) : array

Вычисляет гиперболический синус для каждого значения в real и возвращает результирующий массив.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Простое скользящее среднее

  • « trader_sinh
  • trader_sqrt »
  • PHP Manual
  • Trader Функции
  • Простое скользящее среднее

trader_sma

(PECL trader >= 0.2.0)

trader_sma — Простое скользящее среднее

Описание

trader_sma ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Векторный квадратный корень

  • « trader_sma
  • trader_stddev »
  • PHP Manual
  • Trader Функции
  • Векторный квадратный корень

trader_sqrt

(PECL trader >= 0.2.0)

trader_sqrt — Векторный квадратный корень

Описание

trader_sqrt ( array $real ) : array

Вычисляет векторный квадртный корень для каждого значения в real и возвращает результирующий массив.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Стандартное отклонение

  • « trader_sqrt
  • trader_stoch »
  • PHP Manual
  • Trader Функции
  • Стандартное отклонение

trader_stddev

(PECL trader >= 0.2.0)

trader_stddev — Стандартное отклонение

Описание

trader_stddev ( array $real [, int $timePeriod [, float $nbDev ]] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

nbDev

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Стохастический осциллятор

  • « trader_stddev
  • trader_stochf »
  • PHP Manual
  • Trader Функции
  • Стохастический осциллятор

trader_stoch

(PECL trader >= 0.2.0)

trader_stoch — Стохастический осциллятор

Описание

trader_stoch ( array $high , array $low , array $close [, int $fastK_Period [, int $slowK_Period [, int $slowK_MAType [, int $slowD_Period [, int $slowD_MAType ]]]]] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

fastK_Period

Временной период для построения линии Fast-K. Допустимы значения от 1 до 100000.

slowK_Period

Сглаживание для создания линии Slow-K. Допустимы значения от 1 до 100000, обычно установлено значение 3.

slowK_MAType

Тип скользящей средней для Slow-K. Следует использовать серию констант TRADER_MA_TYPE_*.

slowD_Period

Сглаживание для создания линии Slow-D. Допустимы значения от 1 до 100000.

slowD_MAType

Тип скользящей средней для Slow-D. Следует использовать серию констант TRADER_MA_TYPE_*.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Быстрый стохастический осциллятор

  • « trader_stoch
  • trader_stochrsi »
  • PHP Manual
  • Trader Функции
  • Быстрый стохастический осциллятор

trader_stochf

(PECL trader >= 0.2.0)

trader_stochf — Быстрый стохастический осциллятор

Описание

trader_stochf ( array $high , array $low , array $close [, int $fastK_Period [, int $fastD_Period [, int $fastD_MAType ]]] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

fastK_Period

Временной период для построения линии Fast-K. Допустимы значения от 1 до 100000.

fastD_Period

Сглаживание для создания линии Fast-D. Допустимы значения от 1 до 100000, обычно установлено значение 3.

fastD_MAType

Тип скользящей средней для Fast-D. Следует использовать серию констант TRADER_MA_TYPE_*.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Стохастический относительный индекс силы

  • « trader_stochf
  • trader_sub »
  • PHP Manual
  • Trader Функции
  • Стохастический относительный индекс силы

trader_stochrsi

(PECL trader >= 0.2.0)

trader_stochrsi — Стохастический относительный индекс силы

Описание

trader_stochrsi ( array $real [, int $timePeriod [, int $fastK_Period [, int $fastD_Period [, int $fastD_MAType ]]]] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

fastK_Period

Временной период для построения линии Fast-K. Допустимы значения от 1 до 100000.

fastD_Period

Сглаживание для создания линии Fast-D. Допустимы значения от 1 до 100000, обычно установлено значение 3.

fastD_MAType

Тип скользящей средней для Fast-D. Следует использовать серию констант TRADER_MA_TYPE_*.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Векторное арифметическое вычитание

  • « trader_stochrsi
  • trader_sum »
  • PHP Manual
  • Trader Функции
  • Векторное арифметическое вычитание

trader_sub

(PECL trader >= 0.2.0)

trader_sub — Векторное арифметическое вычитание

Описание

trader_sub ( array $real0 , array $real1 ) : array

Вычисляет векторное вычитание real1 из real0 и возвращает результирующий вектор.

Список параметров

real0

Массив, содержащий реальные значения.

real1

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Суммирование

  • « trader_sub
  • trader_t3 »
  • PHP Manual
  • Trader Функции
  • Суммирование

trader_sum

(PECL trader >= 0.2.0)

trader_sum — Суммирование

Описание

trader_sum ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Тройная экспоненциальная скользящая средняя

  • « trader_sum
  • trader_tan »
  • PHP Manual
  • Trader Функции
  • Тройная экспоненциальная скользящая средняя

trader_t3

(PECL trader >= 0.2.0)

trader_t3 — Тройная экспоненциальная скользящая средняя

Описание

trader_t3 ( array $real [, int $timePeriod [, float $vFactor ]] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

vFactor

Коэффициент объема. Допустимы значения от 1 до 0.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Векторный тригонометрический тангенс

  • « trader_t3
  • trader_tanh »
  • PHP Manual
  • Trader Функции
  • Векторный тригонометрический тангенс

trader_tan

(PECL trader >= 0.2.0)

trader_tan — Векторный тригонометрический тангенс

Описание

trader_tan ( array $real ) : array

Вычисляет тангенс для каждого значения в real и возвращает полученный массив.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Vector Trigonometric Tanh

  • « trader_tan
  • trader_tema »
  • PHP Manual
  • Trader Функции
  • Vector Trigonometric Tanh

trader_tanh

(PECL trader >= 0.2.0)

trader_tanh — Vector Trigonometric Tanh

Описание

trader_tanh ( array $real ) : array

Calculates the hyperbolic tangent for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Тройная экспоненциальная скользящая средняя

  • « trader_tanh
  • trader_trange »
  • PHP Manual
  • Trader Функции
  • Тройная экспоненциальная скользящая средняя

trader_tema

(PECL trader >= 0.2.0)

trader_tema — Тройная экспоненциальная скользящая средняя

Описание

trader_tema ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Истинный диапазон

  • « trader_tema
  • trader_trima »
  • PHP Manual
  • Trader Функции
  • Истинный диапазон

trader_trange

(PECL trader >= 0.2.0)

trader_trange — Истинный диапазон

Описание

trader_trange ( array $high , array $low , array $close ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Треугольная скользящая средняя

  • « trader_trange
  • trader_trix »
  • PHP Manual
  • Trader Функции
  • Треугольная скользящая средняя

trader_trima

(PECL trader >= 0.2.0)

trader_trima — Треугольная скользящая средняя

Описание

trader_trima ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


1-day Rate-Of-Change (ROC) of a Triple Smooth EMA

  • « trader_trima
  • trader_tsf »
  • PHP Manual
  • Trader Функции
  • 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA

trader_trix

(PECL trader >= 0.2.0)

trader_trix — 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA

Описание

trader_trix ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Прогноз временного ряда

  • « trader_trix
  • trader_typprice »
  • PHP Manual
  • Trader Функции
  • Прогноз временного ряда

trader_tsf

(PECL trader >= 0.2.0)

trader_tsf — Прогноз временного ряда

Описание

trader_tsf ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Типичная цена

  • « trader_tsf
  • trader_ultosc »
  • PHP Manual
  • Trader Функции
  • Типичная цена

trader_typprice

(PECL trader >= 0.2.0)

trader_typprice — Типичная цена

Описание

trader_typprice ( array $high , array $low , array $close ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Окончательный, предельный осциллятор

  • « trader_typprice
  • trader_var »
  • PHP Manual
  • Trader Функции
  • Окончательный, предельный осциллятор

trader_ultosc

(PECL trader >= 0.2.0)

trader_ultosc — Окончательный, предельный осциллятор

Описание

trader_ultosc ( array $high , array $low , array $close [, int $timePeriod1 [, int $timePeriod2 [, int $timePeriod3 ]]] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod1

Количество баров (столбцов) за 1-й период. Допустимый диапазон от 1 до 100000.

timePeriod2

Количество баров (столбцов) за 2-й период. Допустимый диапазон от 1 до 100000.

timePeriod3

Количество баров (столбцов) за 3-й период. Допустимый диапазон от 1 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Вариация

  • « trader_ultosc
  • trader_wclprice »
  • PHP Manual
  • Trader Функции
  • Вариация

trader_var

(PECL trader >= 0.2.0)

trader_var — Вариация

Описание

trader_var ( array $real [, int $timePeriod [, float $nbDev ]] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

nbDev

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Взвешенная цена закрытия

  • « trader_var
  • trader_willr »
  • PHP Manual
  • Trader Функции
  • Взвешенная цена закрытия

trader_wclprice

(PECL trader >= 0.2.0)

trader_wclprice — Взвешенная цена закрытия

Описание

trader_wclprice ( array $high , array $low , array $close ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Williams' %R

  • « trader_wclprice
  • trader_wma »
  • PHP Manual
  • Trader Функции
  • Williams' %R

trader_willr

(PECL trader >= 0.2.0)

trader_willr — Williams' %R

Описание

trader_willr ( array $high , array $low , array $close [, int $timePeriod ] ) : array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Взвешенное скользящее среднее

  • « trader_willr
  • Генерация нетекстовых MIME форматов »
  • PHP Manual
  • Trader Функции
  • Взвешенное скользящее среднее

trader_wma

(PECL trader >= 0.2.0)

trader_wma — Взвешенное скользящее среднее

Описание

trader_wma ( array $real [, int $timePeriod ] ) : array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Генерация нетекстовых MIME форматов

  • FDF — Формат данных форм
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • FDF
  • GnuPG — GNU Privacy Guard
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • GnuPG Функции
  • haru — Haru PDF
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Встроенные шрифты и кодировки
    • HaruException — Класс HaruException
    • HaruDoc — Класс HaruDoc
    • HaruPage — Класс HaruPage
    • HaruFont — Класс HaruFont
    • HaruImage — Класс HaruImage
    • HaruEncoder — Класс HaruEncoder
    • HaruOutline — Класс HaruOutline
    • HaruAnnotation — Класс HaruAnnotation
    • HaruDestination — Класс HaruDestination
  • Ming — Ming (flash)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Ming Функции
    • SWFAction — The SWFAction class
    • SWFBitmap — The SWFBitmap class
    • SWFButton — The SWFButton class
    • SWFDisplayItem — The SWFDisplayItem class
    • SWFFill — The SWFFill class
    • SWFFont — The SWFFont class
    • SWFFontChar — The SWFFontChar class
    • SWFGradient — The SWFGradient class
    • SWFMorph — The SWFMorph class
    • SWFMovie — The SWFMovie class
    • SWFPrebuiltClip — The SWFPrebuiltClip class
    • SWFShape — The SWFShape class
    • SWFSound — The SWFSound class
    • SWFSoundInstance — The SWFSoundInstance class
    • SWFSprite — The SWFSprite class
    • SWFText — The SWFText class
    • SWFTextField — The SWFTextField class
    • SWFVideoStream — The SWFVideoStream class
  • PDF
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции PDF
  • wkhtmltox
    • Введение
    • Установка и настройка
    • wkhtmltox\PDF\Converter — Класс wkhtmltox\PDF\Converter
    • wkhtmltox\PDF\Object — Класс wkhtmltox\PDF\Object
    • wkhtmltox\Image\Converter — Класс wkhtmltox\Image\Converter
  • PS — Создание документов PostScript
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции PS
  • Считыватель RPM — Чтение заголовков RPM
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции считывателя RPM
  • XLSWriter
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Vtiful\Kernel\Excel — Класс Vtiful\Kernel\Excel
    • Vtiful\Kernel\Format — Класс Vtiful\Kernel\Format


Формат данных форм

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • FDF
    • fdf_add_doc_javascript — Adds javascript code to the FDF document
    • fdf_add_template — Добавляет шаблон в FDF-документ
    • fdf_close — Закрывает FDF-документ
    • 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 — Получает значение ключа /Encoding
    • fdf_get_file — Получает значение ключа /F
    • 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 — Получает значение ключа /STATUS
    • 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


Введение

Формат данных форм (FDF) - это формат для обработки форм в документах PDF. Более подробно данный формат описан в документации на сайте » http://www.adobe.com/devnet/acrobat/fdftoolkit.html.

Главная идея FDF похожа на формы HTML. Отличие только в формате передачи данных на сервер после нажатия кнопки "Отправить" (как раз про это и FDF) и формате самой формы (а это PDF). Обработка данных формы - это одна из возможностей, предоставляемых функциями fdf. Другая возможность - можно автоматически заполнить существующую форму данными. В этом случае мы можем создать документ FDF (fdf_create()), задать значения для каждого поля ввода (fdf_set_value()) и связать его с формой PDF (fdf_set_file()). В итоге она будет отправлена браузеру с Mime-типом application/vnd.fdf. Плагин "Acrobat reader" в вашем браузере опознает Mime-тип, прочитает связанную форму PDF и заполнит ее данными из документа FDF.

Если вы посмотрите на документ FDF в простом текстовом редакторе, вы увидите каталог объектов с именем FDF. Такой объект может содержать набор элементов, таких как Fields, F, Status и т.д. Наиболее часто использующаяся запись - это Fields, которая содержит список полей ввода, и F, которая содержит имя файла документа PDF, для которого предназначены данные. Эти записи называются в документации PDF как /F-Key или /Status-Key. Изменение этих записей производится такими функциями как fdf_set_file() и fdf_set_status(). Поля модифицируются функциями fdf_set_value(), fdf_set_opt() и т.д.


Требования

Вам будет нужен "FDF toolkit SDK", который доступен по ссылке » http://www.adobe.com/devnet/acrobat/fdftoolkit.html. Начиная с PHP 4.3.0 вам необходима SDK версии не ниже 5.0. Библиотека "FDF toolkit" только в виде бинарного файла. Adobe поддерживает Win32, Linux, Solaris и AIX.


Установка

Это расширение не поддерживается и считается умершим. Однако, его исходный код все еще доступен в PECL SVN вот здесь: » https://svn.php.net/viewvc/pecl/fdf.

Начиная с PHP 5.3.0 модуль более не поставляется в составе PHP.

Замечание: Если у вас возникли проблемы при конфигурировании поддержки fdftk в PHP, проверьте, где находятся заголовочный файл fdftk.h и библиотека libfdftk.so. Скрипт configure поддерживает обе структуры каталогов поставки FDF SDK и обычно используют раскладку DIR/include / DIR/lib, так что вы указать или каталог, в который распаковали установочный пакет, либо соответствующие директории вашей операционной системы, например /usr/local/include и /usr/local/lib и конфигурировать с опцией --with-fdftk=/usr/local .

Замечание: Для пользователей Win32

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: fdftk.dll


Типы ресурсов

Большинство функций fdf требую ресурс fdf в качестве первого параметра. Ресурс fdf указывает на открытый файл fdf. fdf можно получить с помощью функций fdf_create(), fdf_open() и 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)


Примеры

Следующий пример демонстрирует простую обработку данных.

Пример #1 Обработка документа FDF

<?php
// Откроем fdf из входной строки, предоставляемой этим модулем
// Форма pdf содержит несколько полей для ввода со следующими именами:
// volume, date, comment, publisher, preparer, и два чекбокса
// show_publisher и show_preparer.
$fdf = fdf_open_string($HTTP_FDF_DATA);
$volume = fdf_get_value($fdf, "volume");
echo "Поле volume содержит '<b>$volume</b>'<br />";

$date = fdf_get_value($fdf, "date");
echo "Поле date содержит '<b>$date</b>'<br />";

$comment = fdf_get_value($fdf, "comment");
echo "Поле comment содержит '<b>$comment</b>'<br />";

if (fdf_get_value($fdf, "show_publisher") == "On") {
  $publisher = fdf_get_value($fdf, "publisher");
  echo "Поле publisher содержит '<b>$publisher</b>'<br />";
} else
  echo "Поле publisher не должно быть показано.<br />";

if (fdf_get_value($fdf, "show_preparer") == "On") {
  $preparer = fdf_get_value($fdf, "preparer");
  echo "Поле preparer содержит '<b>$preparer</b>'<br />";
} else
  echo "Поле preparer не должно быть показано.<br />";
fdf_close($fdf);
?>


FDF

Содержание

  • fdf_add_doc_javascript — Adds javascript code to the FDF document
  • fdf_add_template — Добавляет шаблон в FDF-документ
  • fdf_close — Закрывает FDF-документ
  • 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 — Получает значение ключа /Encoding
  • fdf_get_file — Получает значение ключа /F
  • 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 — Получает значение ключа /STATUS
  • 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


Adds javascript code to the FDF document

  • « FDF
  • fdf_add_template »
  • PHP Manual
  • FDF
  • Adds javascript code to the FDF document

fdf_add_doc_javascript

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_add_doc_javascript — Adds javascript code to the FDF document

Описание

fdf_add_doc_javascript ( resource $fdf_document , string $script_name , string $script_code ) : bool

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.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

script_name

The script name.

script_code

The script code. It is strongly suggested to use \r for linebreaks within the script code.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #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
%aaIO
1 0 obj
<<
/FDF << /JavaScript << /Doc [ (PlusOne)(function PlusOne\(x\)\r{\r  return x+1;\r}\r)] >> >>
>>
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF


Добавляет шаблон в FDF-документ

  • « fdf_add_doc_javascript
  • fdf_close »
  • PHP Manual
  • FDF
  • Добавляет шаблон в FDF-документ

fdf_add_template

(PHP 4, PHP 5, PHP 7)

fdf_add_template — Добавляет шаблон в FDF-документ

Описание

fdf_add_template ( resource $fdf_document , int $newpage , string $filename , string $template , int $rename ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Закрывает FDF-документ

  • « fdf_add_template
  • fdf_create »
  • PHP Manual
  • FDF
  • Закрывает FDF-документ

fdf_close

(PHP 4, PHP 5, PHP 7)

fdf_close — Закрывает FDF-документ

Описание

fdf_close ( resource $fdf_document ) : void

Закрывает FDF-документ.

Список параметров

fdf_document

Дескриптор FDF-документа, возвращенный функциями fdf_create(), fdf_open() или fdf_open_string().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • fdf_open() - Open a FDF document


Create a new FDF document

  • « fdf_close
  • fdf_enum_values »
  • PHP Manual
  • FDF
  • Create a new FDF document

fdf_create

(PHP 4, PHP 5, PHP 7)

fdf_create — Create a new FDF document

Описание

fdf_create ( void ) : resource

Creates a new FDF document.

This function is needed if one would like to populate input fields in a PDF document with data.

Возвращаемые значения

Returns a FDF document handle, or FALSE on error.

Примеры

Пример #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");
?>

Смотрите также

  • fdf_close() - Закрывает FDF-документ
  • fdf_save() - Save a FDF document
  • fdf_open() - Open a FDF document


Call a user defined function for each document value

  • « fdf_create
  • fdf_errno »
  • PHP Manual
  • FDF
  • Call a user defined function for each document value

fdf_enum_values

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_enum_values — Call a user defined function for each document value

Описание

fdf_enum_values ( resource $fdf_document , callable $function [, mixed $userdata ] ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Return error code for last fdf operation

  • « fdf_enum_values
  • fdf_error »
  • PHP Manual
  • FDF
  • Return error code for last fdf operation

fdf_errno

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_errno — Return error code for last fdf operation

Описание

fdf_errno ( void ) : int

Gets the error code set by the last FDF function call.

A textual description of the error may be obtained using with fdf_error().

Возвращаемые значения

Returns the error code as an integer, or zero if there was no errors.

Смотрите также

  • fdf_error() - Return error description for FDF error code


Return error description for FDF error code

  • « fdf_errno
  • fdf_get_ap »
  • PHP Manual
  • FDF
  • Return error description for FDF error code

fdf_error

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_error — Return error description for FDF error code

Описание

fdf_error ([ int $error_code = -1 ] ) : string

Gets a textual description for the FDF error code given in error_code.

Список параметров

error_code

An error code obtained with fdf_errno(). If not provided, this function uses the internal error code set by the last operation.

Возвращаемые значения

Returns the error message as a string, or the string no error if nothing went wrong.

Смотрите также

  • fdf_errno() - Return error code for last fdf operation


Get the appearance of a field

  • « fdf_error
  • fdf_get_attachment »
  • PHP Manual
  • FDF
  • Get the appearance of a field

fdf_get_ap

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_ap — Get the appearance of a field

Описание

fdf_get_ap ( resource $fdf_document , string $field , int $face , string $filename ) : bool

Gets the appearance of a field (i.e. the value of the /AP key) and stores it in a file.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

field

face

The possible values are FDFNormalAP, FDFRolloverAP and FDFDownAP.

filename

The appearance will be stored in this parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Extracts uploaded file embedded in the FDF

  • « fdf_get_ap
  • fdf_get_encoding »
  • PHP Manual
  • FDF
  • Extracts uploaded file embedded in the FDF

fdf_get_attachment

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_attachment — Extracts uploaded file embedded in the FDF

Описание

fdf_get_attachment ( resource $fdf_document , string $fieldname , string $savepath ) : array

Extracts a file uploaded by means of the "file selection" field fieldname and stores it under savepath.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

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]";
?>


Получает значение ключа /Encoding

  • « fdf_get_attachment
  • fdf_get_file »
  • PHP Manual
  • FDF
  • Получает значение ключа /Encoding

fdf_get_encoding

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_encoding — Получает значение ключа /Encoding

Описание

fdf_get_encoding ( resource $fdf_document ) : string

Получает значение ключа /Encoding.

Список параметров

fdf_document

Дескриптор FDF-документа, возвращенный функциями fdf_create(), fdf_open() или fdf_open_string().

Возвращаемые значения

Возвращает кодировку в виде строки. Возвращается пустая строка, если используется схема по умолчанию PDFDocEncoding/Unicode.

Смотрите также

  • fdf_set_encoding() - Sets FDF character encoding


Получает значение ключа /F

  • « fdf_get_encoding
  • fdf_get_flags »
  • PHP Manual
  • FDF
  • Получает значение ключа /F

fdf_get_file

(PHP 4, PHP 5, PHP 7)

fdf_get_file — Получает значение ключа /F

Описание

fdf_get_file ( resource $fdf_document ) : string

Получает значение ключа /F.

Список параметров

fdf_document

Дескриптор FDF-документа, возвращенный функциями fdf_create(), fdf_open() или fdf_open_string().

Возвращаемые значения

Возвращает значение ключа в виде строки.

Смотрите также

  • fdf_set_file() - Set PDF document to display FDF data in


Gets the flags of a field

  • « fdf_get_file
  • fdf_get_opt »
  • PHP Manual
  • FDF
  • Gets the flags of a field

fdf_get_flags

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_flags — Gets the flags of a field

Описание

fdf_get_flags ( resource $fdf_document , string $fieldname , int $whichflags ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Gets a value from the opt array of a field

  • « fdf_get_flags
  • fdf_get_status »
  • PHP Manual
  • FDF
  • Gets a value from the opt array of a field

fdf_get_opt

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_opt — Gets a value from the opt array of a field

Описание

fdf_get_opt ( resource $fdf_document , string $fieldname [, int $element = -1 ] ) : mixed
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получает значение ключа /STATUS

  • « fdf_get_opt
  • fdf_get_value »
  • PHP Manual
  • FDF
  • Получает значение ключа /STATUS

fdf_get_status

(PHP 4, PHP 5, PHP 7)

fdf_get_status — Получает значение ключа /STATUS

Описание

fdf_get_status ( resource $fdf_document ) : string

Получает значение ключа /STATUS.

Список параметров

fdf_document

Дескриптор FDF-документа, возвращенный функциями fdf_create(), fdf_open() или fdf_open_string().

Возвращаемые значения

Возвращает значение ключа в виде строки.

Смотрите также

  • fdf_set_status() - Set the value of the /STATUS key


Get the value of a field

  • « fdf_get_status
  • fdf_get_version »
  • PHP Manual
  • FDF
  • Get the value of a field

fdf_get_value

(PHP 4, PHP 5, PHP 7)

fdf_get_value — Get the value of a field

Описание

fdf_get_value ( resource $fdf_document , string $fieldname [, int $which = -1 ] ) : mixed

Gets the value for the requested field.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

which

Elements of an array field can be retrieved by passing this optional parameter, starting at zero. For non-array fields, this parameter will be ignored.

Возвращаемые значения

Returns the field value.

Список изменений

Версия | Описание
4.3.0 | Support for arrays and the which parameter were added.

Смотрите также

  • fdf_set_value() - Set the value of a field


Gets version number for FDF API or file

  • « fdf_get_value
  • fdf_header »
  • PHP Manual
  • FDF
  • Gets version number for FDF API or file

fdf_get_version

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_version — Gets version number for FDF API or file

Описание

fdf_get_version ([ resource $fdf_document ] ) : string

Return the FDF version for the given document, or the toolkit API version number if no parameter is given.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

Возвращаемые значения

Returns the version as a string. 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.

Смотрите также

  • fdf_set_version() - Sets version number for a FDF file


Sets FDF-specific output headers

  • « fdf_get_version
  • fdf_next_field_name »
  • PHP Manual
  • FDF
  • Sets FDF-specific output headers

fdf_header

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_header — Sets FDF-specific output headers

Описание

fdf_header ( void ) : void

This is a convenience function to set appropriate HTTP headers for FDF output. It sets the Content-type: to application/vnd.fdf.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Get the next field name

  • « fdf_header
  • fdf_open_string »
  • PHP Manual
  • FDF
  • Get the next field name

fdf_next_field_name

(PHP 4, PHP 5, PHP 7)

fdf_next_field_name — Get the next field name

Описание

fdf_next_field_name ( resource $fdf_document [, string $fieldname ] ) : string

Gets the name of the field after the given field. This name can be used with several functions.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string. If not given, the first field will be assumed.

Возвращаемые значения

Returns the field name as a string.

Примеры

Пример #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";
}
?>

Смотрите также

  • fdf_get_value() - Get the value of a field


Read a FDF document from a string

  • « fdf_next_field_name
  • fdf_open »
  • PHP Manual
  • FDF
  • Read a FDF document from a string

fdf_open_string

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_open_string — Read a FDF document from a string

Описание

fdf_open_string ( string $fdf_data ) : resource

Reads form data from a string.

You can use fdf_open_string() together with $HTTP_FDF_DATA to process FDF form input from a remote client.

Список параметров

fdf_data

The data as returned from a PDF form or created using fdf_create() and fdf_save_string().

Возвращаемые значения

Returns a FDF document handle, or FALSE on error.

Примеры

Пример #1 Accessing the form data

<?php
$fdf = fdf_open_string($HTTP_FDF_DATA);
/* ... */
fdf_close($fdf);
?>

Смотрите также

  • fdf_open() - Open a FDF document
  • fdf_close() - Закрывает FDF-документ
  • fdf_create() - Create a new FDF document
  • fdf_save_string() - Returns the FDF document as a string


Open a FDF document

  • « fdf_open_string
  • fdf_remove_item »
  • PHP Manual
  • FDF
  • Open a FDF document

fdf_open

(PHP 4, PHP 5, PHP 7)

fdf_open — Open a FDF document

Описание

fdf_open ( string $filename ) : resource

Opens a file with form data.

You can also use fdf_open_string() to process the results of a PDF form POST request.

Список параметров

filename

Path to the FDF file. This file must contain the data as returned from a PDF form or created using fdf_create() and fdf_save().

Возвращаемые значения

Returns a FDF document handle, or FALSE on error.

Примеры

Пример #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);
?>

Смотрите также

  • fdf_open_string() - Read a FDF document from a string
  • fdf_close() - Закрывает FDF-документ
  • fdf_create() - Create a new FDF document
  • fdf_save() - Save a FDF document


Sets target frame for form

  • « fdf_open
  • fdf_save_string »
  • PHP Manual
  • FDF
  • Sets target frame for form

fdf_remove_item

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_remove_item — Sets target frame for form

Описание

fdf_remove_item ( resource $fdf_document , string $fieldname , int $item ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Returns the FDF document as a string

  • « fdf_remove_item
  • fdf_save »
  • PHP Manual
  • FDF
  • Returns the FDF document as a string

fdf_save_string

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_save_string — Returns the FDF document as a string

Описание

fdf_save_string ( resource $fdf_document ) : string

Returns the FDF document as a string.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

Возвращаемые значения

Returns the document as a string, or FALSE on error.

Примеры

Пример #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;
?>

Результат выполнения данного примера:

%FDF-1.2
%aaIO
1 0 obj
<<
/FDF << /Fields 2 0 R >>
>>
endobj
2 0 obj
[
<< /T (foo)/V (bar)>>
]
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF

Смотрите также

  • fdf_open_string() - Read a FDF document from a string
  • fdf_close() - Закрывает FDF-документ
  • fdf_create() - Create a new FDF document
  • fdf_save() - Save a FDF document


Save a FDF document

  • « fdf_save_string
  • fdf_set_ap »
  • PHP Manual
  • FDF
  • Save a FDF document

fdf_save

(PHP 4, PHP 5, PHP 7)

fdf_save — Save a FDF document

Описание

fdf_save ( resource $fdf_document [, string $filename ] ) : bool

Saves a FDF document.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

filename

If provided, the resulting FDF will be written in this parameter. Otherwise, this function will write the FDF to the default PHP output stream.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fdf_close() - Закрывает FDF-документ
  • fdf_create() - Create a new FDF document
  • fdf_save_string() - Returns the FDF document as a string


Set the appearance of a field

  • « fdf_save
  • fdf_set_encoding »
  • PHP Manual
  • FDF
  • Set the appearance of a field

fdf_set_ap

(PHP 4, PHP 5, PHP 7)

fdf_set_ap — Set the appearance of a field

Описание

fdf_set_ap ( resource $fdf_document , string $field_name , int $face , string $filename , int $page_number ) : bool

Sets the appearance of a field (i.e. the value of the /AP key).

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

field_name

face

The possible values FDFNormalAP, FDFRolloverAP and FDFDownAP.

filename

page_number

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Sets FDF character encoding

  • « fdf_set_ap
  • fdf_set_file »
  • PHP Manual
  • FDF
  • Sets FDF character encoding

fdf_set_encoding

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

fdf_set_encoding — Sets FDF character encoding

Описание

fdf_set_encoding ( resource $fdf_document , string $encoding ) : bool

Sets the character encoding for the FDF document.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

encoding

The encoding name. The following values are supported: "Shift-JIS", "UHC", "GBK" and "BigFive".

An empty string resets the encoding to the default PDFDocEncoding/Unicode scheme.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set PDF document to display FDF data in

  • « fdf_set_encoding
  • fdf_set_flags »
  • PHP Manual
  • FDF
  • Set PDF document to display FDF data in

fdf_set_file

(PHP 4, PHP 5, PHP 7)

fdf_set_file — Set PDF document to display FDF data in

Описание

fdf_set_file ( resource $fdf_document , string $url [, string $target_frame ] ) : bool

Selects a different PDF document to display the form results in then the form it originated from.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

url

Should be given as an absolute URL.

target_frame

Use this parameter to specify the frame in which the document will be displayed. You can also set the default value for this parameter using fdf_set_target_frame().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #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($fdf);

  /* clean up */
  fdf_close($fdf);
?>

Смотрите также

  • fdf_get_file() - Получает значение ключа /F
  • fdf_set_target_frame() - Set target frame for form display


Sets a flag of a field

  • « fdf_set_file
  • fdf_set_javascript_action »
  • PHP Manual
  • FDF
  • Sets a flag of a field

fdf_set_flags

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

fdf_set_flags — Sets a flag of a field

Описание

fdf_set_flags ( resource $fdf_document , string $fieldname , int $whichFlags , int $newFlags ) : bool

Sets certain flags of the given field.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

whichFlags

newFlags

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fdf_set_opt() - Sets an option of a field


Sets an javascript action of a field

  • « fdf_set_flags
  • fdf_set_on_import_javascript »
  • PHP Manual
  • FDF
  • Sets an javascript action of a field

fdf_set_javascript_action

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

fdf_set_javascript_action — Sets an javascript action of a field

Описание

fdf_set_javascript_action ( resource $fdf_document , string $fieldname , int $trigger , string $script ) : bool

Sets a javascript action for the given field.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

trigger

script

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fdf_set_submit_form_action() - Sets a submit form action of a field


Adds javascript code to be executed when Acrobat opens the FDF

  • « fdf_set_javascript_action
  • fdf_set_opt »
  • PHP Manual
  • FDF
  • Adds javascript code to be executed when Acrobat opens the FDF

fdf_set_on_import_javascript

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_set_on_import_javascript — Adds javascript code to be executed when Acrobat opens the FDF

Описание

fdf_set_on_import_javascript ( resource $fdf_document , string $script , bool $before_data_import ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • fdf_add_doc_javascript() - Adds javascript code to the FDF document
  • fdf_set_javascript_action() - Sets an javascript action of a field


Sets an option of a field

  • « fdf_set_on_import_javascript
  • fdf_set_status »
  • PHP Manual
  • FDF
  • Sets an option of a field

fdf_set_opt

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

fdf_set_opt — Sets an option of a field

Описание

fdf_set_opt ( resource $fdf_document , string $fieldname , int $element , string $str1 , string $str2 ) : bool

Sets options of the given field.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

element

str1

str2

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fdf_set_flags() - Sets a flag of a field


Set the value of the /STATUS key

  • « fdf_set_opt
  • fdf_set_submit_form_action »
  • PHP Manual
  • FDF
  • Set the value of the /STATUS key

fdf_set_status

(PHP 4, PHP 5, PHP 7)

fdf_set_status — Set the value of the /STATUS key

Описание

fdf_set_status ( resource $fdf_document , string $status ) : bool

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.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

status

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fdf_get_status() - Получает значение ключа /STATUS


Sets a submit form action of a field

  • « fdf_set_status
  • fdf_set_target_frame »
  • PHP Manual
  • FDF
  • Sets a submit form action of a field

fdf_set_submit_form_action

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

fdf_set_submit_form_action — Sets a submit form action of a field

Описание

fdf_set_submit_form_action ( resource $fdf_document , string $fieldname , int $trigger , string $script , int $flags ) : bool

Sets a submit form action for the given field.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

trigger

script

flags

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fdf_set_javascript_action() - Sets an javascript action of a field


Set target frame for form display

  • « fdf_set_submit_form_action
  • fdf_set_value »
  • PHP Manual
  • FDF
  • Set target frame for form display

fdf_set_target_frame

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_set_target_frame — Set target frame for form display

Описание

fdf_set_target_frame ( resource $fdf_document , string $frame_name ) : bool

Sets the target frame to display a result PDF defined with fdf_save_file() in.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

frame_name

The frame name, as a string.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fdf_save_file()


Set the value of a field

  • « fdf_set_target_frame
  • fdf_set_version »
  • PHP Manual
  • FDF
  • Set the value of a field

fdf_set_value

(PHP 4, PHP 5, PHP 7)

fdf_set_value — Set the value of a field

Описание

fdf_set_value ( resource $fdf_document , string $fieldname , mixed $value [, int $isName ] ) : bool

Sets the value for the given field.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

value

This parameter will be stored as a string unless it is an array. In this case all array elements will be stored as a value array.

isName

Замечание:

In older versions of the FDF toolkit last parameter determined if the field value was to be converted to a PDF Name (= 1) or set to a PDF String (= 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.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
4.3.0 | Support for arrays in the value parameter was added.

Смотрите также

  • fdf_get_value() - Get the value of a field
  • fdf_remove_item() - Sets target frame for form


Sets version number for a FDF file

  • « fdf_set_value
  • GnuPG »
  • PHP Manual
  • FDF
  • Sets version number for a FDF file

fdf_set_version

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_set_version — Sets version number for a FDF file

Описание

fdf_set_version ( resource $fdf_document , string $version ) : bool

Sets the FDF version for the given document.

Some features supported by this extension are only available in newer FDF versions.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

version

The version number. For the current FDF toolkit 5.0, this may be either 1.2, 1.3 or 1.4.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fdf_get_version() - Gets version number for FDF API or file


GNU Privacy Guard

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Прозрачное подписывание текста
  • GnuPG Функции
    • gnupg_adddecryptkey — Добавить ключ для расшифровки
    • gnupg_addencryptkey — Добавляет ключ для шифрования
    • gnupg_addsignkey — Добавить ключ для подписания
    • gnupg_cleardecryptkeys — Удаляет все ключи, которые были установлены для расшифровки раньше
    • gnupg_clearencryptkeys — Удаляет все ключи, которые были установлены для шифрования раньше
    • gnupg_clearsignkeys — Удаляет все ключи, которые были установлены для подписания раньше
    • gnupg_decrypt — Расшифровывает переданный текст
    • gnupg_decryptverify — Расшифровывает и проверяет подпись переданного текста
    • gnupg_encrypt — Шифрует заданный текст
    • gnupg_encryptsign — Шифрует и подписывает переданный текст
    • gnupg_export — Экспортирует ключ
    • gnupg_geterror — Возвращает текст сообщения об ошибке, если функция не была выполнена
    • gnupg_getprotocol — Возвращает текущий активный протокол для всех операций
    • gnupg_import — Импортирует ключ
    • gnupg_init — Инициализировать GnuPG
    • gnupg_keyinfo — Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону
    • gnupg_setarmor — Переключает вывод в текстовом или бинарном режиме
    • gnupg_seterrormode — Устанавливает режим отчетов об ошибках (error_reporting)
    • gnupg_setsignmode — Устанавливает режим подписывания
    • gnupg_sign — Подписывает переданный текст
    • gnupg_verify — Проверяет подпись текста


  • « GnuPG
  • Установка и настройка »
  • PHP Manual
  • GnuPG
  • Введение

Введение

Этот модуль позволяет взаимодействовать с » gnupg.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Для работы модуля необходима » библиотека gpgme


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://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)


  • « Предопределенные константы
  • Прозрачное подписывание текста »
  • PHP Manual
  • GnuPG
  • Примеры

Примеры

Содержание

  • Прозрачное подписывание текста


Прозрачное подписывание текста

Это пример создания чистой подписи переданного текста.

Пример #1 Процедурный пример создания чистой подписи GnuPG

<?php
// инициализация GnuPG
$res = gnupg_init();
// на самом деле не нужно. Clearsign по умолчанию
gnupg_setsignmode($res, GNUPG_SIG_MODE_CLEAR);
// добавить ключ для подписания с паролем 'test'
gnupg_addsignkey($res, "8660281B6051D071D94B5B230549F9DC851566DC", "test");
// подписывание
$signed = gnupg_sign($res, "просто тест");
echo $signed;
?>

Пример #2 Объектно-ориентированный пример создания чистой подписи GnuPG

<?php
// новый класс
$gnupg = new gnupg();
// на самом деле не нужно. Clearsign по умолчанию
$gnupg->setsignmode(gnupg::SIG_MODE_CLEAR);
// добавить ключ для подписания с паролем 'test'
$gnupg->addsignkey("8660281B6051D071D94B5B230549F9DC851566DC", "test");
// подписывание
$signed = $gnupg->sign("просто тест");
echo $signed;
?>

Пример #3 keylistiterator

Этот модуль также поставляется с Iterator для ваших ключей.

<?php
// создаём новый итератор для включения в список всех открытых ключей, которые соответствуют 'example'
$iterator = new gnupg_keylistiterator("example");
foreach($iterator as $fingerprint => $userid){
    echo $fingerprint." -> ".$userid."\n";
}
?>


GnuPG Функции

Примечания

Этот модуль позволяет использовать связку ключей текущего пользователя. Связка, как правило, расположена в ~/.gnupg/. Чтобы указать другую папку, сохраните путь к связке ключей в переменной окружения GNUPGHOME. Смотрите putenv для получения дополнительной информации как это сделать.

Некоторые функции требуют спецификации ключа. Эта спецификация может быть всем, что относится к уникальному ключу (идентификатор пользователя, идентификатор ключа, отпечатки пальцев, ...). В этой документации используется отпечаток пальца во всех примерах.

Замечание:

В качестве альтернативы явно документированным функциям использующим resource, вы можете использовать объектно-ориентированный стиль с помощью объектов gnupg.

Содержание

  • gnupg_adddecryptkey — Добавить ключ для расшифровки
  • gnupg_addencryptkey — Добавляет ключ для шифрования
  • gnupg_addsignkey — Добавить ключ для подписания
  • gnupg_cleardecryptkeys — Удаляет все ключи, которые были установлены для расшифровки раньше
  • gnupg_clearencryptkeys — Удаляет все ключи, которые были установлены для шифрования раньше
  • gnupg_clearsignkeys — Удаляет все ключи, которые были установлены для подписания раньше
  • gnupg_decrypt — Расшифровывает переданный текст
  • gnupg_decryptverify — Расшифровывает и проверяет подпись переданного текста
  • gnupg_encrypt — Шифрует заданный текст
  • gnupg_encryptsign — Шифрует и подписывает переданный текст
  • gnupg_export — Экспортирует ключ
  • gnupg_geterror — Возвращает текст сообщения об ошибке, если функция не была выполнена
  • gnupg_getprotocol — Возвращает текущий активный протокол для всех операций
  • gnupg_import — Импортирует ключ
  • gnupg_init — Инициализировать GnuPG
  • gnupg_keyinfo — Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону
  • gnupg_setarmor — Переключает вывод в текстовом или бинарном режиме
  • gnupg_seterrormode — Устанавливает режим отчетов об ошибках (error_reporting)
  • gnupg_setsignmode — Устанавливает режим подписывания
  • gnupg_sign — Подписывает переданный текст
  • gnupg_verify — Проверяет подпись текста


Добавить ключ для расшифровки

  • « GnuPG Функции
  • gnupg_addencryptkey »
  • PHP Manual
  • GnuPG Функции
  • Добавить ключ для расшифровки

gnupg_adddecryptkey

(PECL gnupg >= 0.5)

gnupg_adddecryptkey — Добавить ключ для расшифровки

Описание

gnupg_adddecryptkey ( resource $identifier , string $fingerprint , string $passphrase ) : bool

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

fingerprint

Отпечаток ключа.

passphrase

Кодовое слово.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования gnupg_adddecryptkey() в процедурном стиле

<?php
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
?>

Пример #2 Пример использования gnupg_adddecryptkey() в объектно-ориентированном стиле

<?php
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
?>


Добавляет ключ для шифрования

  • « gnupg_adddecryptkey
  • gnupg_addsignkey »
  • PHP Manual
  • GnuPG Функции
  • Добавляет ключ для шифрования

gnupg_addencryptkey

(PECL gnupg >= 0.5)

gnupg_addencryptkey — Добавляет ключ для шифрования

Описание

gnupg_addencryptkey ( resource $identifier , string $fingerprint ) : bool

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

fingerprint

Отпечаток ключа.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Процедурный пример использования gnupg_addencryptkey()

<?php
$res = gnupg_init();
gnupg_addencryptkey($res, "8660281B6051D071D94B5B230549F9DC851566DC");
?>

Пример #2 Объектно-ориентированный пример использования gnupg_addencryptkey()

<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
?>


Добавить ключ для подписания

  • « gnupg_addencryptkey
  • gnupg_cleardecryptkeys »
  • PHP Manual
  • GnuPG Функции
  • Добавить ключ для подписания

gnupg_addsignkey

(PECL gnupg >= 0.5)

gnupg_addsignkey — Добавить ключ для подписания

Описание

gnupg_addsignkey ( resource $identifier , string $fingerprint [, string $passphrase ] ) : bool

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

fingerprint

Отпечаток ключа.

passphrase

Пароль.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Процедурный пример использования gnupg_addsignkey()

<?php
$res = gnupg_init();
gnupg_addsignkey($res, "8660281B6051D071D94B5B230549F9DC851566DC", "test");
?>

Пример #2 Объектно-ориентированный пример использования gnupg_addsignkey()

<?php
$gpg = new gnupg();
$gpg -> addsignkey("8660281B6051D071D94B5B230549F9DC851566DC", "test");
?>


Удаляет все ключи, которые были установлены для расшифровки раньше

  • « gnupg_addsignkey
  • gnupg_clearencryptkeys »
  • PHP Manual
  • GnuPG Функции
  • Удаляет все ключи, которые были установлены для расшифровки раньше

gnupg_cleardecryptkeys

(PECL gnupg >= 0.5)

gnupg_cleardecryptkeys — Удаляет все ключи, которые были установлены для расшифровки раньше

Описание

gnupg_cleardecryptkeys ( resource $identifier ) : bool

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Процедурный пример использования gnupg_cleardecryptkeys()

<?php
$res = gnupg_init();
gnupg_cleardecryptkeys($res);
?>

Пример #2 Объектно-ориентированный пример использования gnupg_cleardecryptkeys()

<?php
$gpg = new gnupg();
$gpg -> cleardecryptkeys();
?>


Удаляет все ключи, которые были установлены для шифрования раньше

  • « gnupg_cleardecryptkeys
  • gnupg_clearsignkeys »
  • PHP Manual
  • GnuPG Функции
  • Удаляет все ключи, которые были установлены для шифрования раньше

gnupg_clearencryptkeys

(PECL gnupg >= 0.5)

gnupg_clearencryptkeys — Удаляет все ключи, которые были установлены для шифрования раньше

Описание

gnupg_clearencryptkeys ( resource $identifier ) : bool

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Процедурный пример использования gnupg_clearencryptkeys()

<?php
$res = gnupg_init();
gnupg_clearencryptkeys($res);
?>

Пример #2 Объектно-ориентированный пример использования gnupg_clearencryptkeys()

<?php
$gpg = new gnupg();
$gpg -> clearencryptkeys();
?>


Удаляет все ключи, которые были установлены для подписания раньше

  • « gnupg_clearencryptkeys
  • gnupg_decrypt »
  • PHP Manual
  • GnuPG Функции
  • Удаляет все ключи, которые были установлены для подписания раньше

gnupg_clearsignkeys

(PECL gnupg >= 0.5)

gnupg_clearsignkeys — Удаляет все ключи, которые были установлены для подписания раньше

Описание

gnupg_clearsignkeys ( resource $identifier ) : bool

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Процедурный пример использования gnupg_clearsignkeys()

<?php
$res = gnupg_init();
gnupg_clearsignkeys($res);
?>

Пример #2 Объектно-ориентированный пример использования gnupg_clearsignkeys()

<?php
$gpg = new gnupg();
$gpg -> clearsignkeys();
?>


Расшифровывает переданный текст

  • « gnupg_clearsignkeys
  • gnupg_decryptverify »
  • PHP Manual
  • GnuPG Функции
  • Расшифровывает переданный текст

gnupg_decrypt

(PECL gnupg >= 0.1)

gnupg_decrypt — Расшифровывает переданный текст

Описание

gnupg_decrypt ( resource $identifier , string $text ) : string

Расшифровывает переданный текст ключами, установленными ранее с помощью gnupg_adddecryptkey.

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

text

Расшифровываемый текст.

Возвращаемые значения

В случае успеха, эта функция возвращает расшифрованный текст. В случае ошибки, эта функция возвращает FALSE.

Примеры

Пример #1 Процедурный пример использования gnupg_decrypt()

<?php
$res = gnupg_init();
gnupg_adddecryptkey($res, "8660281B6051D071D94B5B230549F9DC851566DC", "test");
$plain = gnupg_decrypt($res,$encrypted_text);
echo $plain;
?>

Пример #2 Объектно-ориентированный пример использования gnupg_encrypt()

<?php
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC", "test");
$plain = $gpg -> decrypt($encrypted_text);
echo $plain;
?>


Расшифровывает и проверяет подпись переданного текста

  • « gnupg_decrypt
  • gnupg_encrypt »
  • PHP Manual
  • GnuPG Функции
  • Расшифровывает и проверяет подпись переданного текста

gnupg_decryptverify

(PECL gnupg >= 0.2)

gnupg_decryptverify — Расшифровывает и проверяет подпись переданного текста

Описание

gnupg_decryptverify ( resource $identifier , string $text , string &$plaintext ) : array

Расшифровывает и проверяет подпись переданного текста и возвращает информацию о подписи.

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

text

Текст для расшифровки.

plaintext

Параметру plaintext передаётся расшифрованный текст.

Возвращаемые значения

В случае успешного выполнения функция возвращает информацию о подписи и передаёт в параметр plaintext расшифрованный текст. В случае возникновения ошибки функция возвращает FALSE.

Примеры

Пример #1 Пример использования gnupg_decryptverify() в процедурном стиле

<?php
$plaintext = "";
$res = gnupg_init();
gnupg_adddecryptkey($res, "8660281B6051D071D94B5B230549F9DC851566DC", "test");
$info = gnupg_decryptverify($res, $text, $plaintext);
print_r($info);
?>

Пример #2 Пример использования gnupg_decryptverify() в объектно-ориентированном стиле

<?php
$plaintext = "";
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC", "test");
$info = $gpg -> decryptverify($text, $plaintext);
print_r($info);
?>


Шифрует заданный текст

  • « gnupg_decryptverify
  • gnupg_encryptsign »
  • PHP Manual
  • GnuPG Функции
  • Шифрует заданный текст

gnupg_encrypt

(PECL gnupg >= 0.1)

gnupg_encrypt — Шифрует заданный текст

Описание

gnupg_encrypt ( resource $identifier , string $plaintext ) : string

Шифрует заданный текст plaintext с помощью ключа, заданного ранее с помощью функции gnupg_addencryptkey и возвращает результат.

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

plaintext

Текст для шифрования.

Возвращаемые значения

В случае успешного выполнения возвращает зашифрованный текст. В случае возникновения ошибки возвращает FALSE.

Примеры

Пример #1 Пример использования gnupg_encrypt() в процедурном стиле

<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
$enc = gnupg_encrypt($res, "just a test");
echo $enc;
?>

Пример #2 Пример использования gnupg_encrypt() в объектно-ориентированном стиле

<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$enc = $gpg -> encrypt("just a test");
echo $enc;
?>


Шифрует и подписывает переданный текст

  • « gnupg_encrypt
  • gnupg_export »
  • PHP Manual
  • GnuPG Функции
  • Шифрует и подписывает переданный текст

gnupg_encryptsign

(PECL gnupg >= 0.2)

gnupg_encryptsign — Шифрует и подписывает переданный текст

Описание

gnupg_encryptsign ( resource $identifier , string $plaintext ) : string

Шифрует и подписывает переданный в параметре plaintext текст ключами, которые были установлены gnupg_addsignkey и gnupg_addencryptkey ранее и возвращает зашифрованный и подписанный текст.

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

plaintext

Текст для шифрования.

Возвращаемые значения

В случае успеха, эта функция возвращает зашифрованный и подписанный текст. В случае ошибки эта функция возвращает FALSE.

Примеры

Пример #1 Процедурный пример использования gnupg_encryptsign()

<?php
$res = gnupg_init();
gnupg_addencryptkey($res, "8660281B6051D071D94B5B230549F9DC851566DC");
gnupg_addsignkey($res, "8660281B6051D071D94B5B230549F9DC851566DC", "test");
$enc = gnupg_encryptsign($res, "просто тест");
echo $enc;
?>

Пример #2 Объектно-ориентированный пример использования gnupg_encryptsign()

<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$gpg -> addsignkey("8660281B6051D071D94B5B230549F9DC851566DC", "test");
$enc = $gpg -> encryptsign("просто тест");
echo $enc;
?>


Экспортирует ключ

  • « gnupg_encryptsign
  • gnupg_geterror »
  • PHP Manual
  • GnuPG Функции
  • Экспортирует ключ

gnupg_export

(PECL gnupg >= 0.1)

gnupg_export — Экспортирует ключ

Описание

gnupg_export ( resource $identifier , string $fingerprint ) : string

Экспортирует ключ fingerprint.

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

fingerprint

Отпечаток ключа.

Возвращаемые значения

В случае успешного выполнения функция возвращает ключ. В случае возникновения ошибки функция возвращает FALSE.

Примеры

Пример #1 Пример использования gnupg_export() в процедурном стиле

<?php
$res = gnupg_init();
$export = gnupg_export($res, "8660281B6051D071D94B5B230549F9DC851566DC");
echo $export;
?>

Пример #2 Пример использования gnupg_export() в объектно-ориентированном стиле

<?php
$gpg = new gnupg();
$export = $gpg -> export("8660281B6051D071D94B5B230549F9DC851566DC");
?>


Возвращает текст сообщения об ошибке, если функция не была выполнена

  • « gnupg_export
  • gnupg_getprotocol »
  • PHP Manual
  • GnuPG Функции
  • Возвращает текст сообщения об ошибке, если функция не была выполнена

gnupg_geterror

(PECL gnupg >= 0.1)

gnupg_geterror — Возвращает текст сообщения об ошибке, если функция не была выполнена

Описание

gnupg_geterror ( resource $identifier ) : string

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

Возвращаемые значения

Возвращает текст сообщения об ошибке, если произошла ошибка, в противном случае возвращает FALSE.

Примеры

Пример #1 Пример использования gnupg_geterror() в процедурном стиле

<?php
$res = gnupg_init();
echo gnupg_geterror($res);
?>

Пример #2 Пример использования gnupg_geterror() в объектно-ориентированном стиле

<?php
$gpg = new gnupg();
echo $gpg -> geterror();
?>


Возвращает текущий активный протокол для всех операций

  • « gnupg_geterror
  • gnupg_import »
  • PHP Manual
  • GnuPG Функции
  • Возвращает текущий активный протокол для всех операций

gnupg_getprotocol

(PECL gnupg >= 0.1)

gnupg_getprotocol — Возвращает текущий активный протокол для всех операций

Описание

gnupg_getprotocol ( resource $identifier ) : int

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

Возвращаемые значения

Возвращает текущий активный протокол, который может быть одним из GNUPG_PROTOCOL_OpenPGP или GNUPG_PROTOCOL_CMS.

Примеры

Пример #1 Пример использования gnupg_getprotocol() в процедурном стиле

<?php
$res = gnupg_init();
echo gnupg_getprotocol($res);
?>

Пример #2 Пример использования gnupg_getprotocol() в объектно-ориентированном стиле

<?php
$gpg = new gnupg();
echo $gpg -> getprotocol();
?>


Импортирует ключ

  • « gnupg_getprotocol
  • gnupg_init »
  • PHP Manual
  • GnuPG Функции
  • Импортирует ключ

gnupg_import

(PECL gnupg >= 0.3)

gnupg_import — Импортирует ключ

Описание

gnupg_import ( resource $identifier , string $keydata ) : array

Импортирует ключ keydata и возвращает массив с информацией о процессе импорта.

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

keydata

Ключ для импорта.

Возвращаемые значения

В случае успешного выполнения возвращает массив с информацией о процессе импорта. В случае возникновения ошибки возвращает FALSE.

Примеры

Пример #1 Пример использования gnupg_import() в процедурном стиле

<?php
$res = gnupg_init();
$info = gnupg_import($res,$keydata);
print_r($info);
?>

Пример #2 Пример использования gnupg_import() в объектно-ориентированном стиле

<?php
$gpg = new gnupg();
$info = $gpg -> import($keydata);
print_r($info);
?>


Инициализировать GnuPG

  • « gnupg_import
  • gnupg_keyinfo »
  • PHP Manual
  • GnuPG Функции
  • Инициализировать GnuPG

gnupg_init

(PECL gnupg >= 0.4)

gnupg_init — Инициализировать GnuPG

Описание

gnupg_init ( void ) : resource

Список параметров

У этой функции нет параметров.

Возвращаемые значения

resource GnuPG используется другими функциями GnuPG.

Примеры

Пример #1 Пример использования gnupg_init() в процедурном стиле

<?php
$res = gnupg_init();
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$gpg = new gnupg();
?>


Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону

  • « gnupg_init
  • gnupg_setarmor »
  • PHP Manual
  • GnuPG Функции
  • Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону

gnupg_keyinfo

(PECL gnupg >= 0.1)

gnupg_keyinfo — Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону

Описание

gnupg_keyinfo ( resource $identifier , string $pattern ) : array

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

pattern

Шаблон, проверяемый на соответствие.

Возвращаемые значения

Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования gnupg_keyinfo() в процедурном стиле

<?php
$res = gnupg_init();
$info = gnupg_keyinfo($res, 'test');
print_r($info);
?>

Пример #2 Пример использования gnupg_keyinfo() в объектно-ориентированном стиле

<?php
$gpg = new gnupg();
$info = $gpg -> keyinfo("test");
print_r($info);
?>


Переключает вывод в текстовом или бинарном режиме

  • « gnupg_keyinfo
  • gnupg_seterrormode »
  • PHP Manual
  • GnuPG Функции
  • Переключает вывод в текстовом или бинарном режиме

gnupg_setarmor

(PECL gnupg >= 0.1)

gnupg_setarmor — Переключает вывод в текстовом или бинарном режиме

Описание

gnupg_setarmor ( resource $identifier , int $armor ) : bool

Переключает вывод в текстовом или бинарном режиме.

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

armor

В случае не нулевого целого числа, функция включает текстовый режим вывода (по умолчанию). В случае 0, вывод в бинарном режиме.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования gnupg_setarmor() в процедурном стиле

<?php
$res = gnupg_init();
gnupg_setarmor($res,1); // текстовый режим вывода;
gnupg_setarmor($res,0); // бинарный режим вывода;
?>

Пример #2 Пример использования gnupg_setarmor() в объектно-ориентированном стиле

<?php
$gpg = new gnupg();
$gpg -> setarmor(1); // текстовый режим вывода;
$gpg -> setarmor(0); // бинарный режим вывода;
?>


Устанавливает режим отчетов об ошибках (error_reporting)

  • « gnupg_setarmor
  • gnupg_setsignmode »
  • PHP Manual
  • GnuPG Функции
  • Устанавливает режим отчетов об ошибках (error_reporting)

gnupg_seterrormode

(PECL gnupg >= 0.6)

gnupg_seterrormode — Устанавливает режим отчетов об ошибках (error_reporting)

Описание

gnupg_seterrormode ( resource $identifier , int $errormode ) : void

Устанавливает режим error_reporting.

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

errormode

Режим ошибок.

errormode содержит константу, указывающую, какой тип error_reporting должен быть использован. Возможные значения: GNUPG_ERROR_WARNING, GNUPG_ERROR_EXCEPTION и GNUPG_ERROR_SILENT. По умолчанию используется GNUPG_ERROR_SILENT.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования gnupg_seterrormode() в процедурном стиле

<?php
$res = gnupg_init();
gnupg_seterrormode($res, GNUPG_ERROR_WARNING); // выводить PHP-предупреждения в случае возникновения ошибки
?>

Пример #2 Пример использования gnupg_seterrormode() в объектно-ориентированном стиле

<?php
$gpg = new gnupg();
$gpg -> seterrormode(gnupg::ERROR_EXCEPTION); // исключение в случае возникновения ошибки
?>


Устанавливает режим подписывания

  • « gnupg_seterrormode
  • gnupg_sign »
  • PHP Manual
  • GnuPG Функции
  • Устанавливает режим подписывания

gnupg_setsignmode

(PECL gnupg >= 0.1)

gnupg_setsignmode — Устанавливает режим подписывания

Описание

gnupg_setsignmode ( resource $identifier , int $signmode ) : bool

Устанавливает режим подписывания.

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

sigmode

Режим подписывания.

signmode содержит константу, указывающую, какой тип подписи должен быть произведён. Возможные значения: GNUPG_SIG_MODE_NORMAL, GNUPG_SIG_MODE_DETACH и GNUPG_SIG_MODE_CLEAR. По умолчанию используется GNUPG_SIG_MODE_CLEAR.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования gnupg_setsignmode() в процедурном стиле

<?php
$res = gnupg_init();
gnupg_setsignmode($res, GNUPG_SIG_MODE_DETACH); // производить раздельную подпись
?>

Пример #2 Пример использования gnupg_setsignmode() в объектно-ориентированном стиле

<?php
$gpg = new gnupg();
$gpg -> setsignmode(gnupg::SIG_MODE_DETACH); // производить раздельную подпись
?>


Подписывает переданный текст

  • « gnupg_setsignmode
  • gnupg_verify »
  • PHP Manual
  • GnuPG Функции
  • Подписывает переданный текст

gnupg_sign

(PECL gnupg >= 0.1)

gnupg_sign — Подписывает переданный текст

Описание

gnupg_sign ( resource $identifier , string $plaintext ) : string

Подписывает переданный в параметре plaintext текст ключом, который был прежде установлен с помощью gnupg_addsignkey и возвращает подписанный текст или подпись, в зависимости от того, что было установлено в gnupg_setsignmode.

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

plaintext

Простой текст для подписания.

Возвращаемые значения

В случае успешного выполнения функция возвращает подписанный текст или подпись. В случае возникновения ошибки функция возвращает FALSE.

Примеры

Пример #1 Пример использования gnupg_sign() в процедурном стиле

<?php
$res = gnupg_init();
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$signed = gnupg_sign($res, "просто тест");
echo $signed;
?>

Пример #2 Пример использования gnupg_sign() в объектно-ориентированном стиле

<?php
$gpg = new gnupg();
$gpg->addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$signed = $gpg->sign("просто тест");
echo $signed;
?>


Проверяет подпись текста

  • « gnupg_sign
  • haru »
  • PHP Manual
  • GnuPG Функции
  • Проверяет подпись текста

gnupg_verify

(PECL gnupg >= 0.1)

gnupg_verify — Проверяет подпись текста

Описание

gnupg_verify ( resource $identifier , string $signed_text , string $signature [, string &$plaintext ] ) : array

Проверяет подпись переданного в параметре signed_text текста и возвращает информацию о подписи.

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

signed_text

Подписанный текст.

signature

Подпись. Чтобы проверить прозрачную подпись, параметр должен быть равен FALSE.

plaintext

Обычный текст. Если этот необязательный параметр необходимо передать, то он заполняется обычным текстом.

Возвращаемые значения

В случае успешного выполнения функция возвращает информацию о подписи. В случае возникновения ошибки функция возвращает FALSE.

Примеры

Пример #1 Пример использования gnupg_verify() в процедурном стиле

<?php
$plaintext = "";
$res = gnupg_init();
// прозрачная подпись
$info = gnupg_verify($res, $signed_text, false, $plaintext);
print_r($info);
// раздельная подпись
$info = gnupg_verify($res, $signed_text, $signature);
print_r($info);
?>

Пример #2 Пример использования gnupg_verify() в объектно-ориентированном стиле

<?php
$plaintext = "";
$gpg = new gnupg();
// прозрачная подпись
$info = $gpg -> verify($signed_text, false, $plaintext);
print_r($info);
// раздельная подпись
$info = $gpg -> verify($signed_text, $signature);
print_r($info);
?>


Haru PDF

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Простые примеры PECL/haru
  • Встроенные шрифты и кодировки
    • Builtin Fonts
    • Встроенные кодировки
  • HaruException — Класс HaruException
  • HaruDoc — Класс HaruDoc
    • HaruDoc::addPage — Добавляет новую страницу в документ
    • HaruDoc::addPageLabel — Set the numbering style for the specified range of pages
    • HaruDoc::__construct — Construct new HaruDoc instance
    • HaruDoc::createOutline — Create a HaruOutline instance
    • HaruDoc::getCurrentEncoder — Get HaruEncoder currently used in the document
    • HaruDoc::getCurrentPage — Return current page of the document
    • HaruDoc::getEncoder — Get HaruEncoder instance for the specified encoding
    • HaruDoc::getFont — Get HaruFont instance
    • HaruDoc::getInfoAttr — Get current value of the specified document attribute
    • HaruDoc::getPageLayout — Get current page layout
    • HaruDoc::getPageMode — Get current page mode
    • HaruDoc::getStreamSize — Get the size of the temporary stream
    • HaruDoc::insertPage — Insert new page just before the specified page
    • HaruDoc::loadJPEG — Load a JPEG image
    • HaruDoc::loadPNG — Load PNG image and return HaruImage instance
    • HaruDoc::loadRaw — Load a RAW image
    • HaruDoc::loadTTC — Load the font with the specified index from TTC file
    • HaruDoc::loadTTF — Load TTF font file
    • HaruDoc::loadType1 — Load Type1 font
    • HaruDoc::output — Write the document data to the output buffer
    • HaruDoc::readFromStream — Read data from the temporary stream
    • HaruDoc::resetError — Reset error state of the document handle
    • HaruDoc::resetStream — Rewind the temporary stream
    • HaruDoc::save — Save the document into the specified file
    • HaruDoc::saveToStream — Save the document into a temporary stream
    • HaruDoc::setCompressionMode — Set compression mode for the document
    • HaruDoc::setCurrentEncoder — Set the current encoder for the document
    • HaruDoc::setEncryptionMode — Set encryption mode for the document
    • HaruDoc::setInfoAttr — Set the info attribute of the document
    • HaruDoc::setInfoDateAttr — Set the datetime info attributes of the document
    • HaruDoc::setOpenAction — Define which page is shown when the document is opened
    • HaruDoc::setPageLayout — Set how pages should be displayed
    • HaruDoc::setPageMode — Set how the document should be displayed
    • HaruDoc::setPagesConfiguration — Set the number of pages per set of pages
    • HaruDoc::setPassword — Set owner and user passwords for the document
    • HaruDoc::setPermission — Set permissions for the document
    • HaruDoc::useCNSEncodings — Enable Chinese simplified encodings
    • HaruDoc::useCNSFonts — Enable builtin Chinese simplified fonts
    • HaruDoc::useCNTEncodings — Enable Chinese traditional encodings
    • HaruDoc::useCNTFonts — Enable builtin Chinese traditional fonts
    • HaruDoc::useJPEncodings — Enable Japanese encodings
    • HaruDoc::useJPFonts — Enable builtin Japanese fonts
    • HaruDoc::useKREncodings — Enable Korean encodings
    • HaruDoc::useKRFonts — Enable builtin Korean fonts
  • HaruPage — Класс HaruPage
    • HaruPage::arc — Append an arc to the current path
    • HaruPage::beginText — Begin a text object and set the current text position to (0,0)
    • HaruPage::circle — Append a circle to the current path
    • HaruPage::closePath — Append a straight line from the current point to the start point of the path
    • HaruPage::concat — Concatenate current transformation matrix of the page and the specified matrix
    • HaruPage::createDestination — Create new HaruDestination instance
    • HaruPage::createLinkAnnotation — Create new HaruAnnotation instance
    • HaruPage::createTextAnnotation — Create new HaruAnnotation instance
    • HaruPage::createURLAnnotation — Create and return new HaruAnnotation instance
    • HaruPage::curveTo2 — Append a Bezier curve to the current path
    • HaruPage::curveTo3 — Append a Bezier curve to the current path
    • HaruPage::curveTo — Append a Bezier curve to the current path
    • HaruPage::drawImage — Show image at the page
    • HaruPage::ellipse — Append an ellipse to the current path
    • HaruPage::endPath — End current path object without filling and painting operations
    • HaruPage::endText — End current text object
    • HaruPage::eofill — Fill current path using even-odd rule
    • HaruPage::eoFillStroke — Fill current path using even-odd rule, then paint the path
    • HaruPage::fill — Fill current path using nonzero winding number rule
    • HaruPage::fillStroke — Fill current path using nonzero winding number rule, then paint the path
    • HaruPage::getCharSpace — Get the current value of character spacing
    • HaruPage::getCMYKFill — Get the current filling color
    • HaruPage::getCMYKStroke — Get the current stroking color
    • HaruPage::getCurrentFont — Get the currently used font
    • HaruPage::getCurrentFontSize — Get the current font size
    • HaruPage::getCurrentPos — Get the current position for path painting
    • HaruPage::getCurrentTextPos — Get the current position for text printing
    • HaruPage::getDash — Get the current dash pattern
    • HaruPage::getFillingColorSpace — Get the current filling color space
    • HaruPage::getFlatness — Get the flatness of the page
    • HaruPage::getGMode — Get the current graphics mode
    • HaruPage::getGrayFill — Get the current filling color
    • HaruPage::getGrayStroke — Get the current stroking color
    • HaruPage::getHeight — Get the height of the page
    • HaruPage::getHorizontalScaling — Get the current value of horizontal scaling
    • HaruPage::getLineCap — Get the current line cap style
    • HaruPage::getLineJoin — Get the current line join style
    • HaruPage::getLineWidth — Get the current line width
    • HaruPage::getMiterLimit — Get the value of miter limit
    • HaruPage::getRGBFill — Get the current filling color
    • HaruPage::getRGBStroke — Get the current stroking color
    • HaruPage::getStrokingColorSpace — Get the current stroking color space
    • HaruPage::getTextLeading — Get the current value of line spacing
    • HaruPage::getTextMatrix — Get the current text transformation matrix of the page
    • HaruPage::getTextRenderingMode — Get the current text rendering mode
    • HaruPage::getTextRise — Get the current value of text rising
    • HaruPage::getTextWidth — Get the width of the text using current fontsize, character spacing and word spacing
    • HaruPage::getTransMatrix — Get the current transformation matrix of the page
    • HaruPage::getWidth — Get the width of the page
    • HaruPage::getWordSpace — Get the current value of word spacing
    • HaruPage::lineTo — Draw a line from the current point to the specified point
    • HaruPage::measureText — Calculate the byte length of characters which can be included on one line of the specified width
    • HaruPage::moveTextPos — Move text position to the specified offset
    • HaruPage::moveTo — Set starting point for new drawing path
    • HaruPage::moveToNextLine — Move text position to the start of the next line
    • HaruPage::rectangle — Append a rectangle to the current path
    • HaruPage::setCharSpace — Set character spacing for the page
    • HaruPage::setCMYKFill — Set filling color for the page
    • HaruPage::setCMYKStroke — Set stroking color for the page
    • HaruPage::setDash — Set the dash pattern for the page
    • HaruPage::setFlatness — Set flatness for the page
    • HaruPage::setFontAndSize — Set font and fontsize for the page
    • HaruPage::setGrayFill — Set filling color for the page
    • HaruPage::setGrayStroke — Sets stroking color for the page
    • HaruPage::setHeight — Set height of the page
    • HaruPage::setHorizontalScaling — Set horizontal scaling for the page
    • HaruPage::setLineCap — Set the shape to be used at the ends of lines
    • HaruPage::setLineJoin — Set line join style for the page
    • HaruPage::setLineWidth — Set line width for the page
    • HaruPage::setMiterLimit — Set the current value of the miter limit of the page
    • HaruPage::setRGBFill — Set filling color for the page
    • HaruPage::setRGBStroke — Set stroking color for the page
    • HaruPage::setRotate — Set rotation angle of the page
    • HaruPage::setSize — Set size and direction of the page
    • HaruPage::setSlideShow — Set transition style for the page
    • HaruPage::setTextLeading — Set text leading (line spacing) for the page
    • HaruPage::setTextMatrix — Set the current text transformation matrix of the page
    • HaruPage::setTextRenderingMode — Set text rendering mode for the page
    • HaruPage::setTextRise — Set the current value of text rising
    • HaruPage::setWidth — Set width of the page
    • HaruPage::setWordSpace — Set word spacing for the page
    • HaruPage::showText — Print text at the current position of the page
    • HaruPage::showTextNextLine — Move the current position to the start of the next line and print the text
    • HaruPage::stroke — Paint current path
    • HaruPage::textOut — Print the text on the specified position
    • HaruPage::textRect — Print the text inside the specified region
  • HaruFont — Класс HaruFont
    • HaruFont::getAscent — Get the vertical ascent of the font
    • HaruFont::getCapHeight — Get the distance from the baseline of uppercase letters
    • HaruFont::getDescent — Get the vertical descent of the font
    • HaruFont::getEncodingName — Get the name of the encoding
    • HaruFont::getFontName — Get the name of the font
    • HaruFont::getTextWidth — Get the total width of the text, number of characters, number of words and number of spaces
    • HaruFont::getUnicodeWidth — Get the width of the character in the font
    • HaruFont::getXHeight — Get the distance from the baseline of lowercase letters
    • HaruFont::measureText — Calculate the number of characters which can be included within the specified width
  • HaruImage — Класс HaruImage
    • HaruImage::getBitsPerComponent — Get the number of bits used to describe each color component of the image
    • HaruImage::getColorSpace — Get the name of the color space
    • HaruImage::getHeight — Get the height of the image
    • HaruImage::getSize — Get size of the image
    • HaruImage::getWidth — Get the width of the image
    • HaruImage::setColorMask — Set the color mask of the image
    • HaruImage::setMaskImage — Set the image mask
  • HaruEncoder — Класс HaruEncoder
    • HaruEncoder::getByteType — Get the type of the byte in the text
    • HaruEncoder::getType — Get the type of the encoder
    • HaruEncoder::getUnicode — Convert the specified character to unicode
    • HaruEncoder::getWritingMode — Get the writing mode of the encoder
  • HaruOutline — Класс HaruOutline
    • HaruOutline::setDestination — Set the destination for the outline
    • HaruOutline::setOpened — Set the initial state of the outline
  • HaruAnnotation — Класс HaruAnnotation
    • HaruAnnotation::setBorderStyle — Set the border style of the annotation
    • HaruAnnotation::setHighlightMode — Set the highlighting mode of the annotation
    • HaruAnnotation::setIcon — Set the icon style of the annotation
    • HaruAnnotation::setOpened — Set the initial state of the annotation
  • HaruDestination — Класс HaruDestination
    • HaruDestination::setFit — Set the appearance of the page to fit the window
    • HaruDestination::setFitB — Set the appearance of the page to fit the bounding box of the page within the window
    • HaruDestination::setFitBH — Set the appearance of the page to fit the width of the bounding box
    • HaruDestination::setFitBV — Set the appearance of the page to fit the height of the boudning box
    • HaruDestination::setFitH — Set the appearance of the page to fit the window width
    • HaruDestination::setFitR — Set the appearance of the page to fit the specified rectangle
    • HaruDestination::setFitV — Set the appearance of the page to fit the window height
    • HaruDestination::setXYZ — Set the appearance of the page


Введение

Модуль PECL/haru предоставляет связь с библиотекой libHaru. Библиотека является свободной, кросс-платформенной библиотекой с открытым исходным кодом и используется для создания файлов PDF.

Библиотеку Haru (libHaru) можно найти здесь: » http://libharu.org.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.


Требования

Вы должны установить libharu перед использованием PECL/haru. PECL/haru тестировался с libharu 2.0.8, с предыдущими версиями он может не работать. PECL/haru также требует PHP 5.1.3 или более новую.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/haru.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • haru
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Простые примеры PECL/haru »
  • PHP Manual
  • haru
  • Примеры

Примеры

Содержание

  • Простые примеры PECL/haru


Простые примеры PECL/haru

Пример #1 "Hello world"

<?php

$doc = new HaruDoc;

$doc->setPageMode(HaruDoc::PAGE_MODE_USE_THUMBS); /* показываем уменьшенные изображения */

$page = $doc->addPage(); /* добавляем страницу в документ */
$page->setSize(HaruPage::SIZE_A4, HaruPage::LANDSCAPE); /* устанавливаем альбомный формат A4*/

$courier = $doc->getFont("Courier-Bold"); /* используем стандартный шрифт */

$page->setRGBStroke(0, 0, 0); /* установим цвет */
$page->setRGBFill(0.7, 0.8, 0.9);
$page->rectangle(150, 150, 550, 250); /* нарисуем прямоугольник */

$page->fillStroke(); /* зальем и обведем его */

$page->setDash(array(3, 3), 0); /* установим стиль линий так, чтоб они рисовались черточками */
$page->setFontAndSize($courier, 60); /* установим шрифт и размер */

$page->setRGBStroke(0.5, 0.5, 0.1); /* зададим цвет линии */
$page->setRGBFill(1, 1, 1); /* установим цвет заливки */

$page->setTextRenderingMode(HaruPage::FILL_THEN_STROKE); /* зальем и обведем текст */

/* напечатаем текст */
$page->beginText();
$page->textOut(210, 270, "Hello World!");
$page->endText();

$doc->save("/tmp/test.pdf"); /* сохраним документ в файл */

?>

Откроем получившийся файл в любимом просмотрщике PDF и увидим светло-голубой прямоугольник, с надписью "Hello World!" на нем.


  • « Простые примеры PECL/haru
  • Builtin Fonts »
  • PHP Manual
  • haru
  • Встроенные шрифты и кодировки

Встроенные шрифты и кодировки

Содержание

  • Builtin Fonts
  • Встроенные кодировки


Builtin Fonts

Шрифты Base14 встроены в PDF и все просмотрщики могут отобразить их. Использование этих шрифтов поможет уменьшить размер целевого файла и сделать его чтение более быстрым, так как не нужно будет загружать шрифты. Однако, встроенные шрифты поддерживают только кодировку latin1 и, если вы используете символы, не входящие в нее, то шрифты грузить придется.

Шрифты Base14:

  • Courier

  • Courier-Bold

  • Courier-Oblique

  • Courier-BoldOblique

  • Helvetica

  • Helvetica-Bold

  • Helvetica-Oblique

  • Helvetica-BoldOblique

  • Times-Roman

  • Times-Bold

  • Times-Italic

  • Times-BoldItalic

  • Symbol

  • ZapfDingbats


Встроенные кодировки

Однобайтовые кодировки
Имя | Описание
StandardEncoding | Кодировка PDF по умолчанию.
MacRomanEncoding | Стандартная кодировка Mac OS.
WinAnsiEncoding | Стандартная кодировка Windows.
FontSpecific | Кодировка, определяемая шрифтом.
ISO8859-2 | Latin2 (Восточная Европа)
ISO8859-3 | Latin3 (Южная Европа)
ISO8859-4 | Latin4 (Северная Европа)
ISO8859-5 | Кириллица
ISO8859-6 | Арабская
ISO8859-7 | Греческая
ISO8859-8 | Иврит
ISO8859-9 | Latin5 (Турецкая)
ISO8859-10 | Latin6 (Скандинавская)
ISO8859-11 | Тайская
ISO8859-13 | Latin7 (Балтийская)
ISO8859-14 | Latin8 (Кельтская)
ISO8859-15 | Latin9
ISO8859-16 | Latin10
CP1250 | MS Windows 1250.
CP1251 | MS Windows 1251.
CP1252 | MS Windows 1252.
CP1253 | MS Windows 1253.
CP1254 | MS Windows 1254.
CP1255 | MS Windows 1255.
CP1256 | MS Windows 1256.
CP1257 | MS Windows 1257.
CP1258 | MS Windows 1258.
KOI8-R | Кириллица.
Многобайтные кодировки
Имя | Описание
GB-EUC-H | Кодировка EUC-CN.
GB-EUC-V | Версия GB-EUC-H с вертикальным направлением письма.
GBK-EUC-H | Microsoft Code Page 936 (lfCharSet 0x86) GBK.
GBK-EUC-V | Версия GBK-EUC-H с вертикальным направлением письма.
ETen-B5-H | Microsoft Code Page 950 (lfCharSet 0x88), набор символов Big Five расширенный ETen.
ETen-B5-V | Версия ETen-B5-H с вертикальным направлением письма.
90ms-RKSJ-H | Microsoft Code Page 932, JIS X 0208.
90ms-RKSJ-V | Версия 90ms-RKSJ-V с вертикальным направлением письма.
90msp-RKSJ-H | Microsoft Code Page 932, JIS X 0208 (пропорционалная).
EUC-H | Набор символов JIS X 0208, кодировка EUC-JP.
EUC-V | Версия EUC-H, с вертикальным направлением письма..
KSC-EUC-H | Набор символов KS X 1001:1992, кодировка EUC-KR.
KSC-EUC-V | Версия KSC-EUC-V, с вертикальным направлением письма.
KSCms-UHC-H | Microsoft Code Page 949 (lfCharSet 0x81), набор символов KS X 1001:1992 плюс 8822 дополнительных hangul, кодировка Unified Hangul Code (UHC) (пропорциональная).
KSCms-UHC-HW-H | Microsoft Code Page 949 (lfCharSet 0x81), набор символов KS X 1001:1992 плюс 8822 дополнительных hangul, кодировка Unified Hangul Code (UHC) (фиксированная ширина).
KSCms-UHC-HW-V | Версия KSCms-UHC-HW-H, с вертикальным направлением письма.


Класс HaruException

(PECL haru >= 0.0.1)

Введение

Класс Haru PDF Exception.

Обзор классов

HaruException extends Exception {
/* Inherits */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс HaruDoc

(PECL haru >= 0.0.1)

Введение

Класс Haru PDF Document.

Обзор классов

HaruDoc {
/* Методы */
addPage ( void ) : object
addPageLabel ( int $first_page , int $style , int $first_num [, string $prefix = "" ] ) : bool
__construct ( void )
createOutline ( string $title [, object $parent_outline [, object $encoder ]] ) : object
getCurrentEncoder ( void ) : object
getCurrentPage ( void ) : object
getEncoder ( string $encoding ) : object
getFont ( string $fontname [, string $encoding ] ) : object
getInfoAttr ( int $type ) : string
getPageLayout ( void ) : int
getPageMode ( void ) : int
getStreamSize ( void ) : int
insertPage ( object $page ) : object
loadJPEG ( string $filename ) : object
loadPNG ( string $filename [, bool $deferred = FALSE ] ) : object
loadRaw ( string $filename , int $width , int $height , int $color_space ) : object
loadTTC ( string $fontfile , int $index [, bool $embed = FALSE ] ) : string
loadTTF ( string $fontfile [, bool $embed = FALSE ] ) : string
loadType1 ( string $afmfile [, string $pfmfile ] ) : string
output ( void ) : bool
readFromStream ( int $bytes ) : string
resetError ( void ) : bool
resetStream ( void ) : bool
save ( string $file ) : bool
saveToStream ( void ) : bool
setCompressionMode ( int $mode ) : bool
setCurrentEncoder ( string $encoding ) : bool
setEncryptionMode ( int $mode [, int $key_len = 5 ] ) : bool
setInfoAttr ( int $type , string $info ) : bool
setInfoDateAttr ( int $type , int $year , int $month , int $day , int $hour , int $min , int $sec , string $ind , int $off_hour , int $off_min ) : bool
setOpenAction ( object $destination ) : bool
setPageLayout ( int $layout ) : bool
setPageMode ( int $mode ) : bool
setPagesConfiguration ( int $page_per_pages ) : bool
setPassword ( string $owner_password , string $user_password ) : bool
setPermission ( int $permission ) : bool
useCNSEncodings ( void ) : bool
useCNSFonts ( void ) : bool
useCNTEncodings ( void ) : bool
useCNTFonts ( void ) : bool
useJPEncodings ( void ) : bool
useJPFonts ( void ) : bool
useKREncodings ( void ) : bool
useKRFonts ( void ) : bool
}

Предопределенные константы

Тип | Имя | Описание
int | HaruDoc::CS_DEVICE_GRAY |
int | HaruDoc::CS_DEVICE_RGB |
int | HaruDoc::CS_DEVICE_CMYK |
int | HaruDoc::CS_CAL_GRAY |
int | HaruDoc::CS_CAL_RGB |
int | HaruDoc::CS_LAB |
int | HaruDoc::CS_ICC_BASED |
int | HaruDoc::CS_SEPARATION |
int | HaruDoc::CS_DEVICE_N |
int | HaruDoc::CS_INDEXED |
int | HaruDoc::CS_PATTERN |
int | HaruDoc::ENABLE_READ |
int | HaruDoc::ENABLE_PRINT |
int | HaruDoc::ENABLE_EDIT_ALL |
int | HaruDoc::ENABLE_COPY |
int | HaruDoc::ENABLE_EDIT |
int | HaruDoc::ENCRYPT_R2 |
int | HaruDoc::ENCRYPT_R3 |
int | HaruDoc::INFO_AUTHOR |
int | HaruDoc::INFO_CREATOR |
int | HaruDoc::INFO_TITLE |
int | HaruDoc::INFO_SUBJECT |
int | HaruDoc::INFO_KEYWORDS |
int | HaruDoc::INFO_CREATION_DATE |
int | HaruDoc::INFO_MOD_DATE |
int | HaruDoc::COMP_NONE |
int | HaruDoc::COMP_TEXT |
int | HaruDoc::COMP_IMAGE |
int | HaruDoc::COMP_METADATA |
int | HaruDoc::COMP_ALL |
int | HaruDoc::PAGE_LAYOUT_SINGLE |
int | HaruDoc::PAGE_LAYOUT_ONE_COLUMN |
int | HaruDoc::PAGE_LAYOUT_TWO_COLUMN_LEFT |
int | HaruDoc::PAGE_LAYOUT_TWO_COLUMN_RIGHT |
int | HaruDoc::PAGE_MODE_USE_NONE |
int | HaruDoc::PAGE_MODE_USE_OUTLINE |
int | HaruDoc::PAGE_MODE_USE_THUMBS |
int | HaruDoc::PAGE_MODE_FULL_SCREEN |

Содержание

  • HaruDoc::addPage — Добавляет новую страницу в документ
  • HaruDoc::addPageLabel — Set the numbering style for the specified range of pages
  • HaruDoc::__construct — Construct new HaruDoc instance
  • HaruDoc::createOutline — Create a HaruOutline instance
  • HaruDoc::getCurrentEncoder — Get HaruEncoder currently used in the document
  • HaruDoc::getCurrentPage — Return current page of the document
  • HaruDoc::getEncoder — Get HaruEncoder instance for the specified encoding
  • HaruDoc::getFont — Get HaruFont instance
  • HaruDoc::getInfoAttr — Get current value of the specified document attribute
  • HaruDoc::getPageLayout — Get current page layout
  • HaruDoc::getPageMode — Get current page mode
  • HaruDoc::getStreamSize — Get the size of the temporary stream
  • HaruDoc::insertPage — Insert new page just before the specified page
  • HaruDoc::loadJPEG — Load a JPEG image
  • HaruDoc::loadPNG — Load PNG image and return HaruImage instance
  • HaruDoc::loadRaw — Load a RAW image
  • HaruDoc::loadTTC — Load the font with the specified index from TTC file
  • HaruDoc::loadTTF — Load TTF font file
  • HaruDoc::loadType1 — Load Type1 font
  • HaruDoc::output — Write the document data to the output buffer
  • HaruDoc::readFromStream — Read data from the temporary stream
  • HaruDoc::resetError — Reset error state of the document handle
  • HaruDoc::resetStream — Rewind the temporary stream
  • HaruDoc::save — Save the document into the specified file
  • HaruDoc::saveToStream — Save the document into a temporary stream
  • HaruDoc::setCompressionMode — Set compression mode for the document
  • HaruDoc::setCurrentEncoder — Set the current encoder for the document
  • HaruDoc::setEncryptionMode — Set encryption mode for the document
  • HaruDoc::setInfoAttr — Set the info attribute of the document
  • HaruDoc::setInfoDateAttr — Set the datetime info attributes of the document
  • HaruDoc::setOpenAction — Define which page is shown when the document is opened
  • HaruDoc::setPageLayout — Set how pages should be displayed
  • HaruDoc::setPageMode — Set how the document should be displayed
  • HaruDoc::setPagesConfiguration — Set the number of pages per set of pages
  • HaruDoc::setPassword — Set owner and user passwords for the document
  • HaruDoc::setPermission — Set permissions for the document
  • HaruDoc::useCNSEncodings — Enable Chinese simplified encodings
  • HaruDoc::useCNSFonts — Enable builtin Chinese simplified fonts
  • HaruDoc::useCNTEncodings — Enable Chinese traditional encodings
  • HaruDoc::useCNTFonts — Enable builtin Chinese traditional fonts
  • HaruDoc::useJPEncodings — Enable Japanese encodings
  • HaruDoc::useJPFonts — Enable builtin Japanese fonts
  • HaruDoc::useKREncodings — Enable Korean encodings
  • HaruDoc::useKRFonts — Enable builtin Korean fonts


Добавляет новую страницу в документ

  • « HaruDoc
  • HaruDoc::addPageLabel »
  • PHP Manual
  • HaruDoc
  • Добавляет новую страницу в документ

HaruDoc::addPage

(PECL haru >= 0.0.1)

HaruDoc::addPage — Добавляет новую страницу в документ

Описание

HaruDoc::addPage ( void ) : object

Добавляет новую страницу в документ.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает новый экземпляр HaruPage.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::insertPage() - Insert new page just before the specified page


Set the numbering style for the specified range of pages

  • « HaruDoc::addPage
  • HaruDoc::__construct »
  • PHP Manual
  • HaruDoc
  • Set the numbering style for the specified range of pages

HaruDoc::addPageLabel

(PECL haru >= 0.0.1)

HaruDoc::addPageLabel — Set the numbering style for the specified range of pages

Описание

HaruDoc::addPageLabel ( int $first_page , int $style , int $first_num [, string $prefix = "" ] ) : bool

Set the numbering style for the specified range of pages.

Список параметров

first_page

The first page included into the labeling range.

style

The numbering style. The following values are allowed:

  • HaruPage::NUM_STYLE_DECIMAL - page label is displayed using decimal numerals.
  • HaruPage::NUM_STYLE_UPPER_ROMAN - page label is displayed using uppercase Roman numerals.
  • HaruPage::NUM_STYLE_LOWER_ROMAN - page label is displayed using lowercase Roman numerals.
  • HaruPage::NUM_STYLE_UPPER_LETTER - page label is displayed using uppercase letters (from A to Z).
  • HaruPage::NUM_STYLE_LOWER_LETTERS - page label is displayed using lowercase letters (from a to z).

first_num

The first page number in this range.

prefix

The prefix for the page label.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Construct new HaruDoc instance

  • « HaruDoc::addPageLabel
  • HaruDoc::createOutline »
  • PHP Manual
  • HaruDoc
  • Construct new HaruDoc instance

HaruDoc::__construct

(PECL haru >= 0.0.1)

HaruDoc::__construct — Construct new HaruDoc instance

Описание

HaruDoc::__construct ( void )

Constructs new HaruDoc instance.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Вызывает исключение HaruException при ошибке.


Create a HaruOutline instance

  • « HaruDoc::__construct
  • HaruDoc::getCurrentEncoder »
  • PHP Manual
  • HaruDoc
  • Create a HaruOutline instance

HaruDoc::createOutline

(PECL haru >= 0.0.1)

HaruDoc::createOutline — Create a HaruOutline instance

Описание

HaruDoc::createOutline ( string $title [, object $parent_outline [, object $encoder ]] ) : object

Create a HaruOutline instance.

Список параметров

title

The caption of new outline object.

parent_outline

A valid HaruOutline instance or NULL.

encoder

A valid HaruEncoder instance or NULL.

Возвращаемые значения

Returns a new HaruOutline instance.

Ошибки

Вызывает исключение HaruException при ошибке.


Get HaruEncoder currently used in the document

  • « HaruDoc::createOutline
  • HaruDoc::getCurrentPage »
  • PHP Manual
  • HaruDoc
  • Get HaruEncoder currently used in the document

HaruDoc::getCurrentEncoder

(PECL haru >= 0.0.1)

HaruDoc::getCurrentEncoder — Get HaruEncoder currently used in the document

Описание

HaruDoc::getCurrentEncoder ( void ) : object

Get the HaruEncoder currently used in the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns HaruEncoder currently used in the document or FALSE if encoder is not set.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setCurrentEncoder() - Set the current encoder for the document


Return current page of the document

  • « HaruDoc::getCurrentEncoder
  • HaruDoc::getEncoder »
  • PHP Manual
  • HaruDoc
  • Return current page of the document

HaruDoc::getCurrentPage

(PECL haru >= 0.0.1)

HaruDoc::getCurrentPage — Return current page of the document

Описание

HaruDoc::getCurrentPage ( void ) : object

Get current page of the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns HaruPage instance on success or FALSE if there is no current page at the moment.

Ошибки

Вызывает исключение HaruException при ошибке.


Get HaruEncoder instance for the specified encoding

  • « HaruDoc::getCurrentPage
  • HaruDoc::getFont »
  • PHP Manual
  • HaruDoc
  • Get HaruEncoder instance for the specified encoding

HaruDoc::getEncoder

(PECL haru >= 0.0.1)

HaruDoc::getEncoder — Get HaruEncoder instance for the specified encoding

Описание

HaruDoc::getEncoder ( string $encoding ) : object

Get the HaruEncoder instance for the specified encoding.

Список параметров

encoding

The encoding name. See Builtin Encodings for the list of allowed values.

Возвращаемые значения

Returns a HaruEncoder instance for the specified encoding.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setCurrentEncoder() - Set the current encoder for the document
  • HaruDoc::getCurrentEncoder() - Get HaruEncoder currently used in the document


Get HaruFont instance

  • « HaruDoc::getEncoder
  • HaruDoc::getInfoAttr »
  • PHP Manual
  • HaruDoc
  • Get HaruFont instance

HaruDoc::getFont

(PECL haru >= 0.0.1)

HaruDoc::getFont — Get HaruFont instance

Описание

HaruDoc::getFont ( string $fontname [, string $encoding ] ) : object

Get a HaruFont instance.

Список параметров

fontname

The name of the font. See Builtin Fonts for the list of builtin fonts. You can also use the name of a font loaded via HaruDoc::loadTTF(), HaruDoc::loadTTC() and HaruDoc::loadType1().

encoding

The encoding to use. See Builtin Encodings for the list of supported encodings.

Возвращаемые значения

Returns a HaruFont instance with the specified fontname and encoding.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setFontAndSize() - Set font and fontsize for the page
  • HaruPage::setCurrentFont()


Get current value of the specified document attribute

  • « HaruDoc::getFont
  • HaruDoc::getPageLayout »
  • PHP Manual
  • HaruDoc
  • Get current value of the specified document attribute

HaruDoc::getInfoAttr

(PECL haru >= 0.0.1)

HaruDoc::getInfoAttr — Get current value of the specified document attribute

Описание

HaruDoc::getInfoAttr ( int $type ) : string

Get the current value of the specified document attribute.

Список параметров

type

The type of the attribute. The following values are available:

  • HaruDoc::INFO_AUTHOR
  • HaruDoc::INFO_CREATOR
  • HaruDoc::INFO_TITLE
  • HaruDoc::INFO_SUBJECT
  • HaruDoc::INFO_KEYWORDS
  • HaruDoc::INFO_CREATION_DATE
  • HaruDoc::INFO_MOD_DATE

Возвращаемые значения

Returns the string value of the specified document attribute.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setInfoAttr() - Set the info attribute of the document
  • HaruDoc::setInfoDateAttr() - Set the datetime info attributes of the document


Get current page layout

  • « HaruDoc::getInfoAttr
  • HaruDoc::getPageMode »
  • PHP Manual
  • HaruDoc
  • Get current page layout

HaruDoc::getPageLayout

(PECL haru >= 0.0.1)

HaruDoc::getPageLayout — Get current page layout

Описание

HaruDoc::getPageLayout ( void ) : int

Get the current page layout. See HaruDoc::setPageLayout() for the list of possible values.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the page layout currently set in the document or FALSE if page layout was not set. See HaruDoc::setPageLayout() for the list of possible values.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setPageLayout() - Set how pages should be displayed


Get current page mode

  • « HaruDoc::getPageLayout
  • HaruDoc::getStreamSize »
  • PHP Manual
  • HaruDoc
  • Get current page mode

HaruDoc::getPageMode

(PECL haru >= 0.0.1)

HaruDoc::getPageMode — Get current page mode

Описание

HaruDoc::getPageMode ( void ) : int

Get the current page mode. See HaruDoc::setPageMode() for the list of possible values.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the page mode currently set in the document. See HaruDoc::setPageMode() for the list of possible values.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setPageMode() - Set how the document should be displayed


Get the size of the temporary stream

  • « HaruDoc::getPageMode
  • HaruDoc::insertPage »
  • PHP Manual
  • HaruDoc
  • Get the size of the temporary stream

HaruDoc::getStreamSize

(PECL haru >= 0.0.1)

HaruDoc::getStreamSize — Get the size of the temporary stream

Описание

HaruDoc::getStreamSize ( void ) : int

Get the size of the temporary stream.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the size of the data in the temporary stream of the document. The size is zero if the document was not saved to the temporary stream.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::saveToStream() - Save the document into a temporary stream
  • HaruDoc::resetStream() - Rewind the temporary stream
  • HaruDoc::readFromStream() - Read data from the temporary stream


Insert new page just before the specified page

  • « HaruDoc::getStreamSize
  • HaruDoc::loadJPEG »
  • PHP Manual
  • HaruDoc
  • Insert new page just before the specified page

HaruDoc::insertPage

(PECL haru >= 0.0.1)

HaruDoc::insertPage — Insert new page just before the specified page

Описание

HaruDoc::insertPage ( object $page ) : object

Creates a new page and inserts just before the specified page.

Список параметров

page

A valid HaruPage instance.

Возвращаемые значения

Returns a new HaruPage instance.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::addPage() - Добавляет новую страницу в документ


Load a JPEG image

  • « HaruDoc::insertPage
  • HaruDoc::loadPNG »
  • PHP Manual
  • HaruDoc
  • Load a JPEG image

HaruDoc::loadJPEG

(PECL haru >= 0.0.1)

HaruDoc::loadJPEG — Load a JPEG image

Описание

HaruDoc::loadJPEG ( string $filename ) : object

Loads the specified JPEG image.

Список параметров

filename

A valid JPEG image file.

Возвращаемые значения

Returns a new HaruImage instance.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::loadPNG() - Load PNG image and return HaruImage instance
  • HaruDoc::loadRAW() - Load a RAW image


Load PNG image and return HaruImage instance

  • « HaruDoc::loadJPEG
  • HaruDoc::loadRaw »
  • PHP Manual
  • HaruDoc
  • Load PNG image and return HaruImage instance

HaruDoc::loadPNG

(PECL haru >= 0.0.1)

HaruDoc::loadPNG — Load PNG image and return HaruImage instance

Описание

HaruDoc::loadPNG ( string $filename [, bool $deferred = FALSE ] ) : object

Loads a PNG image.

Libharu might be built without libpng support, in this case each call to this function would result in exception.

Список параметров

filename

The name of a PNG image file.

deferred

Do not load data immediately. You can set deferred parameter to TRUE for deferred data loading, in this case only size and color are loaded immediately.

Возвращаемые значения

Returns a HaruImage instance.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::loadJPEG() - Load a JPEG image
  • HaruDoc::loadRAW() - Load a RAW image


Load a RAW image

  • « HaruDoc::loadPNG
  • HaruDoc::loadTTC »
  • PHP Manual
  • HaruDoc
  • Load a RAW image

HaruDoc::loadRaw

(PECL haru >= 0.0.1)

HaruDoc::loadRaw — Load a RAW image

Описание

HaruDoc::loadRaw ( string $filename , int $width , int $height , int $color_space ) : object

Loads a RAW image.

Список параметров

filename

The name of a RAW image file.

width

The width of the image.

height

The height of the image.

color_space

The color space of the image. Can be one of the following values:

  • HaruDoc::CS_DEVICE_GRAY
  • HaruDoc::CS_DEVICE_RGB
  • HaruDoc::CS_DEVICE_CMYK

Возвращаемые значения

Returns a HaruImage instance.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::loadJPEG() - Load a JPEG image
  • HaruDoc::loadPNG() - Load PNG image and return HaruImage instance


Load the font with the specified index from TTC file

  • « HaruDoc::loadRaw
  • HaruDoc::loadTTF »
  • PHP Manual
  • HaruDoc
  • Load the font with the specified index from TTC file

HaruDoc::loadTTC

(PECL haru >= 0.0.1)

HaruDoc::loadTTC — Load the font with the specified index from TTC file

Описание

HaruDoc::loadTTC ( string $fontfile , int $index [, bool $embed = FALSE ] ) : string

Loads the TrueType font with the specified index from a TrueType collection file.

Список параметров

fontfile

The TrueType collection file.

index

The index of the font in the collection file.

embed

When set to TRUE, the glyph data of the font is embedded into the PDF file, otherwise only the matrix data is included.

Возвращаемые значения

Returns the name of the loaded font on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::loadTTF() - Load TTF font file
  • HaruDoc::loadType1() - Load Type1 font


Load TTF font file

  • « HaruDoc::loadTTC
  • HaruDoc::loadType1 »
  • PHP Manual
  • HaruDoc
  • Load TTF font file

HaruDoc::loadTTF

(PECL haru >= 0.0.1)

HaruDoc::loadTTF — Load TTF font file

Описание

HaruDoc::loadTTF ( string $fontfile [, bool $embed = FALSE ] ) : string

Loads the given TTF file and (optionally) embed its data into the document.

Список параметров

fontfile

The TTF file to load.

embed

When set to TRUE, the glyph data of the font is embedded into the PDF file, otherwise only the matrix data is included.

Возвращаемые значения

Returns the name of the loaded font on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::loadTTC() - Load the font with the specified index from TTC file
  • HaruDoc::loadType1() - Load Type1 font


Load Type1 font

  • « HaruDoc::loadTTF
  • HaruDoc::output »
  • PHP Manual
  • HaruDoc
  • Load Type1 font

HaruDoc::loadType1

(PECL haru >= 0.0.1)

HaruDoc::loadType1 — Load Type1 font

Описание

HaruDoc::loadType1 ( string $afmfile [, string $pfmfile ] ) : string

Loads Type1 font from the given file and registers it in the PDF document.

Список параметров

afmfile

Path to an AFM file.

pfmfile

Path to a PFA/PFB file, optional. If it's not set only the glyph data of the font is embedded into the PDF document.

Возвращаемые значения

Returns the name of the loaded font on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::loadTTC() - Load the font with the specified index from TTC file
  • HaruDoc::loadTTF() - Load TTF font file


Write the document data to the output buffer

  • « HaruDoc::loadType1
  • HaruDoc::readFromStream »
  • PHP Manual
  • HaruDoc
  • Write the document data to the output buffer

HaruDoc::output

(PECL haru >= 0.0.1)

HaruDoc::output — Write the document data to the output buffer

Описание

HaruDoc::output ( void ) : bool

Writes the document data into standard output.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::save() - Save the document into the specified file


Read data from the temporary stream

  • « HaruDoc::output
  • HaruDoc::resetError »
  • PHP Manual
  • HaruDoc
  • Read data from the temporary stream

HaruDoc::readFromStream

(PECL haru >= 0.0.1)

HaruDoc::readFromStream — Read data from the temporary stream

Описание

HaruDoc::readFromStream ( int $bytes ) : string

Read data from the temporary stream.

Список параметров

bytes

The bytes parameter specifies how many bytes to read, though the stream may contain less bytes than requested.

Возвращаемые значения

Returns data from the temporary stream.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::saveToStream() - Save the document into a temporary stream
  • HaruDoc::resetStream() - Rewind the temporary stream
  • HaruDoc::getStreamSize() - Get the size of the temporary stream


Reset error state of the document handle

  • « HaruDoc::readFromStream
  • HaruDoc::resetStream »
  • PHP Manual
  • HaruDoc
  • Reset error state of the document handle

HaruDoc::resetError

(PECL haru >= 0.0.1)

HaruDoc::resetError — Reset error state of the document handle

Описание

HaruDoc::resetError ( void ) : bool

Once an error code is set, most of the operations, including I/O processing functions cannot be performed. In case if you want to continue after the cause of the error has been fixed, you have to invoke this function in order to reset the document error state.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Always succeeds and returns TRUE.


Rewind the temporary stream

  • « HaruDoc::resetError
  • HaruDoc::save »
  • PHP Manual
  • HaruDoc
  • Rewind the temporary stream

HaruDoc::resetStream

(PECL haru >= 0.0.1)

HaruDoc::resetStream — Rewind the temporary stream

Описание

HaruDoc::resetStream ( void ) : bool

Rewinds the temporary stream of the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::saveToStream() - Save the document into a temporary stream
  • HaruDoc::getStreamSize() - Get the size of the temporary stream
  • HaruDoc::readFromStream() - Read data from the temporary stream


Save the document into the specified file

  • « HaruDoc::resetStream
  • HaruDoc::saveToStream »
  • PHP Manual
  • HaruDoc
  • Save the document into the specified file

HaruDoc::save

(PECL haru >= 0.0.1)

HaruDoc::save — Save the document into the specified file

Описание

HaruDoc::save ( string $file ) : bool

Saves the document into the specified file.

Список параметров

file

The file to save the document to.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::output() - Write the document data to the output buffer


Save the document into a temporary stream

  • « HaruDoc::save
  • HaruDoc::setCompressionMode »
  • PHP Manual
  • HaruDoc
  • Save the document into a temporary stream

HaruDoc::saveToStream

(PECL haru >= 0.0.1)

HaruDoc::saveToStream — Save the document into a temporary stream

Описание

HaruDoc::saveToStream ( void ) : bool

Saves the document data into a temporary stream.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::resetStream() - Rewind the temporary stream
  • HaruDoc::getStreamSize() - Get the size of the temporary stream
  • HaruDoc::readFromStream() - Read data from the temporary stream


Set compression mode for the document

  • « HaruDoc::saveToStream
  • HaruDoc::setCurrentEncoder »
  • PHP Manual
  • HaruDoc
  • Set compression mode for the document

HaruDoc::setCompressionMode

(PECL haru >= 0.0.1)

HaruDoc::setCompressionMode — Set compression mode for the document

Описание

HaruDoc::setCompressionMode ( int $mode ) : bool

Defines compression mode for the document. In case when libharu was compiled without Zlib support this function will always throw HaruException.

Список параметров

mode

The compression mode to use. The value is a combination of the following flags:

  • HaruDoc::COMP_NONE - all contents is not compressed.
  • HaruDoc::COMP_TEXT - compress the text data.
  • HaruDoc::COMP_IMAGE - compress the image data.
  • HaruDoc::COMP_METADATA - compress other data (fonts, cmaps).
  • HaruDoc::COMP_ALL - compress all data.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the current encoder for the document

  • « HaruDoc::setCompressionMode
  • HaruDoc::setEncryptionMode »
  • PHP Manual
  • HaruDoc
  • Set the current encoder for the document

HaruDoc::setCurrentEncoder

(PECL haru >= 0.0.1)

HaruDoc::setCurrentEncoder — Set the current encoder for the document

Описание

HaruDoc::setCurrentEncoder ( string $encoding ) : bool

Defines the encoder currently used in the document.

Список параметров

encoding

The name of the encoding to use. See Builtin Encodings for the list of allowed values.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set encryption mode for the document

  • « HaruDoc::setCurrentEncoder
  • HaruDoc::setInfoAttr »
  • PHP Manual
  • HaruDoc
  • Set encryption mode for the document

HaruDoc::setEncryptionMode

(PECL haru >= 0.0.1)

HaruDoc::setEncryptionMode — Set encryption mode for the document

Описание

HaruDoc::setEncryptionMode ( int $mode [, int $key_len = 5 ] ) : bool

Defines encryption mode for the document. The encryption mode cannot be set before setting the password.

Список параметров

mode

The encryption mode to use. Can be one of the following:

  • HaruDoc::ENCRYPT_R2 - use "revision2" algorithm.
  • HaruDoc::ENCRYPT_R3 - use "revision3" algorithm. Using this value bumps the version of PDF to 1.4.

key_len

The encryption key length in bytes. This parameter is optional and used only when mode is HaruDoc::ENCRYPT_R3. The default value is 5 (40bit).

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setPassword() - Set owner and user passwords for the document
  • HaruDoc::setPermission() - Set permissions for the document


Set the info attribute of the document

  • « HaruDoc::setEncryptionMode
  • HaruDoc::setInfoDateAttr »
  • PHP Manual
  • HaruDoc
  • Set the info attribute of the document

HaruDoc::setInfoAttr

(PECL haru >= 0.0.1)

HaruDoc::setInfoAttr — Set the info attribute of the document

Описание

HaruDoc::setInfoAttr ( int $type , string $info ) : bool

Defines an info attribute. Uses the current encoding of the document.

Список параметров

type

The type of the attribute. Can be one of the following:

  • HaruDoc::INFO_AUTHOR
  • HaruDoc::INFO_CREATOR
  • HaruDoc::INFO_TITLE
  • HaruDoc::INFO_SUBJECT
  • HaruDoc::INFO_KEYWORDS

info

The value of the attribute.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setInfoDateAttr() - Set the datetime info attributes of the document


Set the datetime info attributes of the document

  • « HaruDoc::setInfoAttr
  • HaruDoc::setOpenAction »
  • PHP Manual
  • HaruDoc
  • Set the datetime info attributes of the document

HaruDoc::setInfoDateAttr

(PECL haru >= 0.0.1)

HaruDoc::setInfoDateAttr — Set the datetime info attributes of the document

Описание

HaruDoc::setInfoDateAttr ( int $type , int $year , int $month , int $day , int $hour , int $min , int $sec , string $ind , int $off_hour , int $off_min ) : bool

Sets the datetime info attributes of the document.

Список параметров

type

The type of the attribute. Can be one of the following:

  • HaruDoc::INFO_CREATION_DATE
  • HaruDoc::INFO_MOD_DATE

year

month

Between 1 and 12.

day

Between 1 and 31, 30, 29 or 28 (different for each month).

hour

Between 0 and 23.

min

Between 0 and 59.

sec

Between 0 and 59.

ind

The timezone relation to UTC, can be "", " ", "+", "-" and "Z".

off_hour

If ind is not " " or "", values between 0 and 23 are valid. Otherwise, this parameter is ignored.

off_min

If ind is not " " or "", values between 0 and 59 are valid. Otherwise, this parameter is ignored.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setInfoAttr() - Set the info attribute of the document


Define which page is shown when the document is opened

  • « HaruDoc::setInfoDateAttr
  • HaruDoc::setPageLayout »
  • PHP Manual
  • HaruDoc
  • Define which page is shown when the document is opened

HaruDoc::setOpenAction

(PECL haru >= 0.0.1)

HaruDoc::setOpenAction — Define which page is shown when the document is opened

Описание

HaruDoc::setOpenAction ( object $destination ) : bool

Defines which page should be shown when the document is opened.

Список параметров

destination

A valid HaruDestination instance.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set how pages should be displayed

  • « HaruDoc::setOpenAction
  • HaruDoc::setPageMode »
  • PHP Manual
  • HaruDoc
  • Set how pages should be displayed

HaruDoc::setPageLayout

(PECL haru >= 0.0.1)

HaruDoc::setPageLayout — Set how pages should be displayed

Описание

HaruDoc::setPageLayout ( int $layout ) : bool

Defines how pages should be displayed.

Список параметров

layout

The following values are accepted:

  • HaruDoc::PAGE_LAYOUT_SINGLE - only one page is displayed.
  • HaruDoc::PAGE_LAYOUT_ONE_COLUMN - display the pages in one column.
  • HaruDoc::PAGE_LAYOUT_TWO_COLUMN_LEFT - display pages in two columns, first page left.
  • HaruDoc::PAGE_LAYOUT_TWO_COLUMN_RIGHT - display pages in two columns, first page right.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::getPageLayout() - Get current page layout


Set how the document should be displayed

  • « HaruDoc::setPageLayout
  • HaruDoc::setPagesConfiguration »
  • PHP Manual
  • HaruDoc
  • Set how the document should be displayed

HaruDoc::setPageMode

(PECL haru >= 0.0.1)

HaruDoc::setPageMode — Set how the document should be displayed

Описание

HaruDoc::setPageMode ( int $mode ) : bool

Defines how the document should be displayed.

Список параметров

mode

The following values are accepted:

  • HaruDoc::PAGE_MODE_USE_NONE - display the document with neither outline nor thumbnail.
  • HaruDoc::PAGE_MODE_USE_OUTLINE - display the document with outline pane.
  • HaruDoc::PAGE_MODE_USE_THUMBS - display the document with thumbnail pane.
  • HaruDoc::PAGE_MODE_FULL_SCREEN - display the document with full screen mode.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::getPageMode() - Get current page mode


Set the number of pages per set of pages

  • « HaruDoc::setPageMode
  • HaruDoc::setPassword »
  • PHP Manual
  • HaruDoc
  • Set the number of pages per set of pages

HaruDoc::setPagesConfiguration

(PECL haru >= 0.0.1)

HaruDoc::setPagesConfiguration — Set the number of pages per set of pages

Описание

HaruDoc::setPagesConfiguration ( int $page_per_pages ) : bool

By default the document has one pages object as a root for all pages. All page objects are create as branches of this object. One pages object can contain only 8191, therefore the maximum number of pages per document is 8191. But you can change that fact by setting page_per_pages parameter, so that the root pages object contains 8191 more pages (not page) objects, which in turn contain 8191 pages each. So the maximum number of pages in the document becomes 8191*page_per_pages.

Список параметров

page_per_pages

The numbers of pages that a pages object can contain.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set owner and user passwords for the document

  • « HaruDoc::setPagesConfiguration
  • HaruDoc::setPermission »
  • PHP Manual
  • HaruDoc
  • Set owner and user passwords for the document

HaruDoc::setPassword

(PECL haru >= 0.0.1)

HaruDoc::setPassword — Set owner and user passwords for the document

Описание

HaruDoc::setPassword ( string $owner_password , string $user_password ) : bool

Defines owner and user passwords for the document. Setting the passwords makes the document contents encrypted.

Список параметров

owner_password

The password of the owner, which can change permissions of the document. Empty password is not accepted. Owner's password cannot be the same as the user's password.

user_password

The password of the user. Can be empty.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setEncryptionMode() - Set encryption mode for the document
  • HaruDoc::setPermission() - Set permissions for the document


Set permissions for the document

  • « HaruDoc::setPassword
  • HaruDoc::useCNSEncodings »
  • PHP Manual
  • HaruDoc
  • Set permissions for the document

HaruDoc::setPermission

(PECL haru >= 0.0.1)

HaruDoc::setPermission — Set permissions for the document

Описание

HaruDoc::setPermission ( int $permission ) : bool

Defines permissions for the document.

Список параметров

permission

The values is a combination of these flags:

  • HaruDoc::ENABLE_READ - user can read the document.
  • HaruDoc::ENABLE_PRINT - user can print the document.
  • HaruDoc::ENABLE_EDIT_ALL - user can edit the contents of the document other than annotations and form fields.
  • HaruDoc::ENABLE_COPY - user can copy the text and the graphics of the document.
  • HaruDoc::ENABLE_EDIT - user can add or modify the annotations and form fields of the document.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setPassword() - Set owner and user passwords for the document
  • HaruDoc::setEncryptionMode() - Set encryption mode for the document


Enable Chinese simplified encodings

  • « HaruDoc::setPermission
  • HaruDoc::useCNSFonts »
  • PHP Manual
  • HaruDoc
  • Enable Chinese simplified encodings

HaruDoc::useCNSEncodings

(PECL haru >= 0.0.1)

HaruDoc::useCNSEncodings — Enable Chinese simplified encodings

Описание

HaruDoc::useCNSEncodings ( void ) : bool

Enables Chinese simplified encodings.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::useCNSFonts() - Enable builtin Chinese simplified fonts


Enable builtin Chinese simplified fonts

  • « HaruDoc::useCNSEncodings
  • HaruDoc::useCNTEncodings »
  • PHP Manual
  • HaruDoc
  • Enable builtin Chinese simplified fonts

HaruDoc::useCNSFonts

(PECL haru >= 0.0.1)

HaruDoc::useCNSFonts — Enable builtin Chinese simplified fonts

Описание

HaruDoc::useCNSFonts ( void ) : bool

Enables builtin Chinese simplified fonts.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::useCNSEncodings() - Enable Chinese simplified encodings


Enable Chinese traditional encodings

  • « HaruDoc::useCNSFonts
  • HaruDoc::useCNTFonts »
  • PHP Manual
  • HaruDoc
  • Enable Chinese traditional encodings

HaruDoc::useCNTEncodings

(PECL haru >= 0.0.1)

HaruDoc::useCNTEncodings — Enable Chinese traditional encodings

Описание

HaruDoc::useCNTEncodings ( void ) : bool

Enables Chinese traditional encodings.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::useCNTFonts() - Enable builtin Chinese traditional fonts


Enable builtin Chinese traditional fonts

  • « HaruDoc::useCNTEncodings
  • HaruDoc::useJPEncodings »
  • PHP Manual
  • HaruDoc
  • Enable builtin Chinese traditional fonts

HaruDoc::useCNTFonts

(PECL haru >= 0.0.1)

HaruDoc::useCNTFonts — Enable builtin Chinese traditional fonts

Описание

HaruDoc::useCNTFonts ( void ) : bool

Enables builtin Chinese traditional fonts.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::useCNTEncodings() - Enable Chinese traditional encodings


Enable Japanese encodings

  • « HaruDoc::useCNTFonts
  • HaruDoc::useJPFonts »
  • PHP Manual
  • HaruDoc
  • Enable Japanese encodings

HaruDoc::useJPEncodings

(PECL haru >= 0.0.1)

HaruDoc::useJPEncodings — Enable Japanese encodings

Описание

HaruDoc::useJPEncodings ( void ) : bool

Enables Japanese encodings.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::useJPFonts() - Enable builtin Japanese fonts


Enable builtin Japanese fonts

  • « HaruDoc::useJPEncodings
  • HaruDoc::useKREncodings »
  • PHP Manual
  • HaruDoc
  • Enable builtin Japanese fonts

HaruDoc::useJPFonts

(PECL haru >= 0.0.1)

HaruDoc::useJPFonts — Enable builtin Japanese fonts

Описание

HaruDoc::useJPFonts ( void ) : bool

Enables builtin Japanese fonts.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::useJPEncodings() - Enable Japanese encodings


Enable Korean encodings

  • « HaruDoc::useJPFonts
  • HaruDoc::useKRFonts »
  • PHP Manual
  • HaruDoc
  • Enable Korean encodings

HaruDoc::useKREncodings

(PECL haru >= 0.0.1)

HaruDoc::useKREncodings — Enable Korean encodings

Описание

HaruDoc::useKREncodings ( void ) : bool

Enables Korean encodings.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::useKRFonts() - Enable builtin Korean fonts


Enable builtin Korean fonts

  • « HaruDoc::useKREncodings
  • HaruPage »
  • PHP Manual
  • HaruDoc
  • Enable builtin Korean fonts

HaruDoc::useKRFonts

(PECL haru >= 0.0.1)

HaruDoc::useKRFonts — Enable builtin Korean fonts

Описание

HaruDoc::useKRFonts ( void ) : bool

Enables builtin Korean fonts.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::useKREncodings() - Enable Korean encodings


Класс HaruPage

(PECL haru >= 0.0.1)

Введение

Класс Haru PDF Page.

Обзор классов

HaruPage {
/* Методы */
arc ( float $x , float $y , float $ray , float $ang1 , float $ang2 ) : bool
beginText ( void ) : bool
circle ( float $x , float $y , float $ray ) : bool
closePath ( void ) : bool
concat ( float $a , float $b , float $c , float $d , float $x , float $y ) : bool
createDestination ( void ) : object
createLinkAnnotation ( array $rectangle , object $destination ) : object
createTextAnnotation ( array $rectangle , string $text [, object $encoder ] ) : object
createURLAnnotation ( array $rectangle , string $url ) : object
curveTo2 ( float $x2 , float $y2 , float $x3 , float $y3 ) : bool
curveTo3 ( float $x1 , float $y1 , float $x3 , float $y3 ) : bool
curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 ) : bool
drawImage ( object $image , float $x , float $y , float $width , float $height ) : bool
ellipse ( float $x , float $y , float $xray , float $yray ) : bool
endPath ( void ) : bool
endText ( void ) : bool
eofill ( void ) : bool
eoFillStroke ([ bool $close_path = FALSE ] ) : bool
fill ( void ) : bool
fillStroke ([ bool $close_path = FALSE ] ) : bool
getCharSpace ( void ) : float
getCMYKFill ( void ) : array
getCMYKStroke ( void ) : array
getCurrentFont ( void ) : object
getCurrentFontSize ( void ) : float
getCurrentPos ( void ) : array
getCurrentTextPos ( void ) : array
getDash ( void ) : array
getFillingColorSpace ( void ) : int
getFlatness ( void ) : float
getGMode ( void ) : int
getGrayFill ( void ) : float
getGrayStroke ( void ) : float
getHeight ( void ) : float
getHorizontalScaling ( void ) : float
getLineCap ( void ) : int
getLineJoin ( void ) : int
getLineWidth ( void ) : float
getMiterLimit ( void ) : float
getRGBFill ( void ) : array
getRGBStroke ( void ) : array
getStrokingColorSpace ( void ) : int
getTextLeading ( void ) : float
getTextMatrix ( void ) : array
getTextRenderingMode ( void ) : int
getTextRise ( void ) : float
getTextWidth ( string $text ) : float
getTransMatrix ( void ) : array
getWidth ( void ) : float
getWordSpace ( void ) : float
lineTo ( float $x , float $y ) : bool
measureText ( string $text , float $width [, bool $wordwrap = FALSE ] ) : int
moveTextPos ( float $x , float $y [, bool $set_leading = FALSE ] ) : bool
moveTo ( float $x , float $y ) : bool
moveToNextLine ( void ) : bool
rectangle ( float $x , float $y , float $width , float $height ) : bool
setCharSpace ( float $char_space ) : bool
setCMYKFill ( float $c , float $m , float $y , float $k ) : bool
setCMYKStroke ( float $c , float $m , float $y , float $k ) : bool
setDash ( array $pattern , int $phase ) : bool
setFlatness ( float $flatness ) : bool
setFontAndSize ( object $font , float $size ) : bool
setGrayFill ( float $value ) : bool
setGrayStroke ( float $value ) : bool
setHeight ( float $height ) : bool
setHorizontalScaling ( float $scaling ) : bool
setLineCap ( int $cap ) : bool
setLineJoin ( int $join ) : bool
setLineWidth ( float $width ) : bool
setMiterLimit ( float $limit ) : bool
setRGBFill ( float $r , float $g , float $b ) : bool
setRGBStroke ( float $r , float $g , float $b ) : bool
setRotate ( int $angle ) : bool
setSize ( int $size , int $direction ) : bool
setSlideShow ( int $type , float $disp_time , float $trans_time ) : bool
setTextLeading ( float $text_leading ) : bool
setTextMatrix ( float $a , float $b , float $c , float $d , float $x , float $y ) : bool
setTextRenderingMode ( int $mode ) : bool
setTextRise ( float $rise ) : bool
setWidth ( float $width ) : bool
setWordSpace ( float $word_space ) : bool
showText ( string $text ) : bool
showTextNextLine ( string $text [, float $word_space = 0 [, float $char_space = 0 ]] ) : bool
stroke ([ bool $close_path = FALSE ] ) : bool
textOut ( float $x , float $y , string $text ) : bool
textRect ( float $left , float $top , float $right , float $bottom , string $text [, int $align = HaruPage::TALIGN_LEFT ] ) : bool
}

Предопределенные константы

Тип | Имя | Описание
int | HaruPage::GMODE_PAGE_DESCRIPTION |
int | HaruPage::GMODE_TEXT_OBJECT |
int | HaruPage::GMODE_PATH_OBJECT |
int | HaruPage::GMODE_CLIPPING_PATH |
int | HaruPage::GMODE_SHADING |
int | HaruPage::GMODE_INLINE_IMAGE |
int | HaruPage::GMODE_EXTERNAL_OBJECT |
int | HaruPage::BUTT_END |
int | HaruPage::ROUND_END |
int | HaruPage::PROJECTING_SCUARE_END |
int | HaruPage::MITER_JOIN |
int | HaruPage::ROUND_JOIN |
int | HaruPage::BEVEL_JOIN |
int | HaruPage::FILL |
int | HaruPage::STROKE |
int | HaruPage::FILL_THEN_STROKE |
int | HaruPage::INVISIBLE |
int | HaruPage::FILL_CLIPPING |
int | HaruPage::STROKE_CLIPPING |
int | HaruPage::FILL_STROKE_CLIPPING |
int | HaruPage::CLIPPING |
int | HaruPage::TALIGN_LEFT |
int | HaruPage::TALIGN_RIGHT |
int | HaruPage::TALIGN_CENTER |
int | HaruPage::TALIGN_JUSTIFY |
int | HaruPage::SIZE_LETTER |
int | HaruPage::SIZE_LEGAL |
int | HaruPage::SIZE_A3 |
int | HaruPage::SIZE_A4 |
int | HaruPage::SIZE_A5 |
int | HaruPage::SIZE_B4 |
int | HaruPage::SIZE_B5 |
int | HaruPage::SIZE_EXECUTIVE |
int | HaruPage::SIZE_US4x6 |
int | HaruPage::SIZE_US4x8 |
int | HaruPage::SIZE_US5x7 |
int | HaruPage::SIZE_COMM10 |
int | HaruPage::PORTRAIT |
int | HaruPage::LANDSCAPE |
int | HaruPage::TS_WIPE_LIGHT |
int | HaruPage::TS_WIPE_UP |
int | HaruPage::TS_WIPE_LEFT |
int | HaruPage::TS_WIPE_DOWN |
int | HaruPage::TS_BARN_DOORS_HORIZONTAL_OUT |
int | HaruPage::TS_BARN_DOORS_HORIZONTAL_IN |
int | HaruPage::TS_BARN_DOORS_VERTICAL_OUT |
int | HaruPage::TS_BARN_DOORS_VERTICAL_IN |
int | HaruPage::TS_BOX_OUT |
int | HaruPage::TS_BOX_IN |
int | HaruPage::TS_BLINDS_HORIZONTAL |
int | HaruPage::TS_BLINDS_VERTICAL |
int | HaruPage::TS_DISSOLVE |
int | HaruPage::TS_GLITTER_RIGHT |
int | HaruPage::TS_GLITTER_DOWN |
int | HaruPage::TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT |
int | HaruPage::TS_REPLACE |
int | HaruPage::NUM_STYLE_DECIMAL |
int | HaruPage::NUM_STYLE_UPPER_ROMAN |
int | HaruPage::NUM_STYLE_LOWER_ROMAN |
int | HaruPage::NUM_STYLE_UPPER_LETTERS |
int | HaruPage::NUM_STYLE_LOWER_LETTERS |

Содержание

  • HaruPage::arc — Append an arc to the current path
  • HaruPage::beginText — Begin a text object and set the current text position to (0,0)
  • HaruPage::circle — Append a circle to the current path
  • HaruPage::closePath — Append a straight line from the current point to the start point of the path
  • HaruPage::concat — Concatenate current transformation matrix of the page and the specified matrix
  • HaruPage::createDestination — Create new HaruDestination instance
  • HaruPage::createLinkAnnotation — Create new HaruAnnotation instance
  • HaruPage::createTextAnnotation — Create new HaruAnnotation instance
  • HaruPage::createURLAnnotation — Create and return new HaruAnnotation instance
  • HaruPage::curveTo2 — Append a Bezier curve to the current path
  • HaruPage::curveTo3 — Append a Bezier curve to the current path
  • HaruPage::curveTo — Append a Bezier curve to the current path
  • HaruPage::drawImage — Show image at the page
  • HaruPage::ellipse — Append an ellipse to the current path
  • HaruPage::endPath — End current path object without filling and painting operations
  • HaruPage::endText — End current text object
  • HaruPage::eofill — Fill current path using even-odd rule
  • HaruPage::eoFillStroke — Fill current path using even-odd rule, then paint the path
  • HaruPage::fill — Fill current path using nonzero winding number rule
  • HaruPage::fillStroke — Fill current path using nonzero winding number rule, then paint the path
  • HaruPage::getCharSpace — Get the current value of character spacing
  • HaruPage::getCMYKFill — Get the current filling color
  • HaruPage::getCMYKStroke — Get the current stroking color
  • HaruPage::getCurrentFont — Get the currently used font
  • HaruPage::getCurrentFontSize — Get the current font size
  • HaruPage::getCurrentPos — Get the current position for path painting
  • HaruPage::getCurrentTextPos — Get the current position for text printing
  • HaruPage::getDash — Get the current dash pattern
  • HaruPage::getFillingColorSpace — Get the current filling color space
  • HaruPage::getFlatness — Get the flatness of the page
  • HaruPage::getGMode — Get the current graphics mode
  • HaruPage::getGrayFill — Get the current filling color
  • HaruPage::getGrayStroke — Get the current stroking color
  • HaruPage::getHeight — Get the height of the page
  • HaruPage::getHorizontalScaling — Get the current value of horizontal scaling
  • HaruPage::getLineCap — Get the current line cap style
  • HaruPage::getLineJoin — Get the current line join style
  • HaruPage::getLineWidth — Get the current line width
  • HaruPage::getMiterLimit — Get the value of miter limit
  • HaruPage::getRGBFill — Get the current filling color
  • HaruPage::getRGBStroke — Get the current stroking color
  • HaruPage::getStrokingColorSpace — Get the current stroking color space
  • HaruPage::getTextLeading — Get the current value of line spacing
  • HaruPage::getTextMatrix — Get the current text transformation matrix of the page
  • HaruPage::getTextRenderingMode — Get the current text rendering mode
  • HaruPage::getTextRise — Get the current value of text rising
  • HaruPage::getTextWidth — Get the width of the text using current fontsize, character spacing and word spacing
  • HaruPage::getTransMatrix — Get the current transformation matrix of the page
  • HaruPage::getWidth — Get the width of the page
  • HaruPage::getWordSpace — Get the current value of word spacing
  • HaruPage::lineTo — Draw a line from the current point to the specified point
  • HaruPage::measureText — Calculate the byte length of characters which can be included on one line of the specified width
  • HaruPage::moveTextPos — Move text position to the specified offset
  • HaruPage::moveTo — Set starting point for new drawing path
  • HaruPage::moveToNextLine — Move text position to the start of the next line
  • HaruPage::rectangle — Append a rectangle to the current path
  • HaruPage::setCharSpace — Set character spacing for the page
  • HaruPage::setCMYKFill — Set filling color for the page
  • HaruPage::setCMYKStroke — Set stroking color for the page
  • HaruPage::setDash — Set the dash pattern for the page
  • HaruPage::setFlatness — Set flatness for the page
  • HaruPage::setFontAndSize — Set font and fontsize for the page
  • HaruPage::setGrayFill — Set filling color for the page
  • HaruPage::setGrayStroke — Sets stroking color for the page
  • HaruPage::setHeight — Set height of the page
  • HaruPage::setHorizontalScaling — Set horizontal scaling for the page
  • HaruPage::setLineCap — Set the shape to be used at the ends of lines
  • HaruPage::setLineJoin — Set line join style for the page
  • HaruPage::setLineWidth — Set line width for the page
  • HaruPage::setMiterLimit — Set the current value of the miter limit of the page
  • HaruPage::setRGBFill — Set filling color for the page
  • HaruPage::setRGBStroke — Set stroking color for the page
  • HaruPage::setRotate — Set rotation angle of the page
  • HaruPage::setSize — Set size and direction of the page
  • HaruPage::setSlideShow — Set transition style for the page
  • HaruPage::setTextLeading — Set text leading (line spacing) for the page
  • HaruPage::setTextMatrix — Set the current text transformation matrix of the page
  • HaruPage::setTextRenderingMode — Set text rendering mode for the page
  • HaruPage::setTextRise — Set the current value of text rising
  • HaruPage::setWidth — Set width of the page
  • HaruPage::setWordSpace — Set word spacing for the page
  • HaruPage::showText — Print text at the current position of the page
  • HaruPage::showTextNextLine — Move the current position to the start of the next line and print the text
  • HaruPage::stroke — Paint current path
  • HaruPage::textOut — Print the text on the specified position
  • HaruPage::textRect — Print the text inside the specified region


Append an arc to the current path

  • « HaruPage
  • HaruPage::beginText »
  • PHP Manual
  • HaruPage
  • Append an arc to the current path

HaruPage::arc

(PECL haru >= 0.0.1)

HaruPage::arc — Append an arc to the current path

Описание

HaruPage::arc ( float $x , float $y , float $ray , float $ang1 , float $ang2 ) : bool

Appends an arc to the current path.

Список параметров

x

Horizontal coordinate of the center.

y

Vertical coordinate of the center.

ray

The ray of the arc.

ang1

The angle of the beginning.

ang2

The angle of the end. Must be greater than ang1.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Begin a text object and set the current text position to (0,0)

  • « HaruPage::arc
  • HaruPage::circle »
  • PHP Manual
  • HaruPage
  • Begin a text object and set the current text position to (0,0)

HaruPage::beginText

(PECL haru >= 0.0.1)

HaruPage::beginText — Begin a text object and set the current text position to (0,0)

Описание

HaruPage::beginText ( void ) : bool

Begins new text object and sets the current text position to (0,0).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Append a circle to the current path

  • « HaruPage::beginText
  • HaruPage::closePath »
  • PHP Manual
  • HaruPage
  • Append a circle to the current path

HaruPage::circle

(PECL haru >= 0.0.1)

HaruPage::circle — Append a circle to the current path

Описание

HaruPage::circle ( float $x , float $y , float $ray ) : bool

Appends a circle to the current path.

Список параметров

x

Horizontal coordinate of the center point.

y

Vertical coordinate of the center point.

ray

The ray of the circle.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Append a straight line from the current point to the start point of the path

  • « HaruPage::circle
  • HaruPage::concat »
  • PHP Manual
  • HaruPage
  • Append a straight line from the current point to the start point of the path

HaruPage::closePath

(PECL haru >= 0.0.1)

HaruPage::closePath — Append a straight line from the current point to the start point of the path

Описание

HaruPage::closePath ( void ) : bool

Appends a straight line from the current point to the start point of the path.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Concatenate current transformation matrix of the page and the specified matrix

  • « HaruPage::closePath
  • HaruPage::createDestination »
  • PHP Manual
  • HaruPage
  • Concatenate current transformation matrix of the page and the specified matrix

HaruPage::concat

(PECL haru >= 0.0.1)

HaruPage::concat — Concatenate current transformation matrix of the page and the specified matrix

Описание

HaruPage::concat ( float $a , float $b , float $c , float $d , float $x , float $y ) : bool

Concatenates current transformation matrix of the page and the specified matrix.

Список параметров

a

b

c

d

x

y

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Create new HaruDestination instance

  • « HaruPage::concat
  • HaruPage::createLinkAnnotation »
  • PHP Manual
  • HaruPage
  • Create new HaruDestination instance

HaruPage::createDestination

(PECL haru >= 0.0.1)

HaruPage::createDestination — Create new HaruDestination instance

Описание

HaruPage::createDestination ( void ) : object

Create a new HaruDestination instance.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a new HaruDestination instance.

Ошибки

Вызывает исключение HaruException при ошибке.


Create new HaruAnnotation instance

  • « HaruPage::createDestination
  • HaruPage::createTextAnnotation »
  • PHP Manual
  • HaruPage
  • Create new HaruAnnotation instance

HaruPage::createLinkAnnotation

(PECL haru >= 0.0.1)

HaruPage::createLinkAnnotation — Create new HaruAnnotation instance

Описание

HaruPage::createLinkAnnotation ( array $rectangle , object $destination ) : object

Creates a new HaruAnnotation instance.

Список параметров

rectangle

An array with 4 coordinates of the clickable area.

destination

Valid HaruDestination instance.

Возвращаемые значения

Returns a new HaruAnnotation instance.

Ошибки

Вызывает исключение HaruException при ошибке.


Create new HaruAnnotation instance

  • « HaruPage::createLinkAnnotation
  • HaruPage::createURLAnnotation »
  • PHP Manual
  • HaruPage
  • Create new HaruAnnotation instance

HaruPage::createTextAnnotation

(PECL haru >= 0.0.1)

HaruPage::createTextAnnotation — Create new HaruAnnotation instance

Описание

HaruPage::createTextAnnotation ( array $rectangle , string $text [, object $encoder ] ) : object

Creates a new HaruAnnotation instance.

Список параметров

rectangle

An array with 4 coordinates of the annotation area.

text

The text to be displayed.

encoder

Optional HaruEncoder instance.

Возвращаемые значения

Returns a new HaruAnnotation instance.

Ошибки

Вызывает исключение HaruException при ошибке.


Create and return new HaruAnnotation instance

  • « HaruPage::createTextAnnotation
  • HaruPage::curveTo2 »
  • PHP Manual
  • HaruPage
  • Create and return new HaruAnnotation instance

HaruPage::createURLAnnotation

(PECL haru >= 0.0.1)

HaruPage::createURLAnnotation — Create and return new HaruAnnotation instance

Описание

HaruPage::createURLAnnotation ( array $rectangle , string $url ) : object

Creates a new HaruAnnotation instance.

Список параметров

rectangle

An array with 4 coordinates of the clickable area.

url

The URL to open.

Возвращаемые значения

Returns a new HaruAnnotation instance.

Ошибки

Вызывает исключение HaruException при ошибке.


Append a Bezier curve to the current path

  • « HaruPage::createURLAnnotation
  • HaruPage::curveTo3 »
  • PHP Manual
  • HaruPage
  • Append a Bezier curve to the current path

HaruPage::curveTo2

(PECL haru >= 0.0.1)

HaruPage::curveTo2 — Append a Bezier curve to the current path

Описание

HaruPage::curveTo2 ( float $x2 , float $y2 , float $x3 , float $y3 ) : bool

Appends a Bezier curve to the current path. The current point and the point (x2, y2) are used as the control points for the Bezier curve and current point is moved to the point (x3, y3).

Список параметров

x2

A Bezier curve control point.

y2

A Bezier curve control point.

x3

The current point moves here.

x3

The current point moves here.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Append a Bezier curve to the current path

  • « HaruPage::curveTo2
  • HaruPage::curveTo »
  • PHP Manual
  • HaruPage
  • Append a Bezier curve to the current path

HaruPage::curveTo3

(PECL haru >= 0.0.1)

HaruPage::curveTo3 — Append a Bezier curve to the current path

Описание

HaruPage::curveTo3 ( float $x1 , float $y1 , float $x3 , float $y3 ) : bool

Appends a Bezier curve to the current path. The point (x1, y1) and the point (x3, y3) are used as the control points for a Bezier curve and current point is moved to the point (x3, y3).

Список параметров

x1

A Bezier curve control point.

y1

A Bezier curve control point.

x3

The current point moves here.

x3

The current point moves here.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Append a Bezier curve to the current path

  • « HaruPage::curveTo3
  • HaruPage::drawImage »
  • PHP Manual
  • HaruPage
  • Append a Bezier curve to the current path

HaruPage::curveTo

(PECL haru >= 0.0.1)

HaruPage::curveTo — Append a Bezier curve to the current path

Описание

HaruPage::curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 ) : bool

Append a Bezier curve to the current path. The point (x1, y1) and the point (x2, y2) are used as the control points for a Bezier curve and current point is moved to the point (x3, y3).

Список параметров

x1

A Bezier curve control point.

y1

A Bezier curve control point.

x2

A Bezier curve control point.

y2

A Bezier curve control point.

x3

The current point moves here.

x3

The current point moves here.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Show image at the page

  • « HaruPage::curveTo
  • HaruPage::ellipse »
  • PHP Manual
  • HaruPage
  • Show image at the page

HaruPage::drawImage

(PECL haru >= 0.0.1)

HaruPage::drawImage — Show image at the page

Описание

HaruPage::drawImage ( object $image , float $x , float $y , float $width , float $height ) : bool

Show image at the page.

Список параметров

image

Valid HaruImage instance.

x

The left border of the area where the image is displayed.

y

The lower border of the area where the image is displayed.

width

The width of the image area.

height

The height of the image area.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Append an ellipse to the current path

  • « HaruPage::drawImage
  • HaruPage::endPath »
  • PHP Manual
  • HaruPage
  • Append an ellipse to the current path

HaruPage::ellipse

(PECL haru >= 0.0.1)

HaruPage::ellipse — Append an ellipse to the current path

Описание

HaruPage::ellipse ( float $x , float $y , float $xray , float $yray ) : bool

Appends an ellipse to the current path.

Список параметров

x

Horizontal coordinate of the center.

y

Vertical coordinate of the center.

xray

The ray of the ellipse in the x direction.

yray

The ray of the ellipse in the y direction.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


End current path object without filling and painting operations

  • « HaruPage::ellipse
  • HaruPage::endText »
  • PHP Manual
  • HaruPage
  • End current path object without filling and painting operations

HaruPage::endPath

(PECL haru >= 0.0.1)

HaruPage::endPath — End current path object without filling and painting operations

Описание

HaruPage::endPath ( void ) : bool

Ends current path object without performing filling and painting operations.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


End current text object

  • « HaruPage::endPath
  • HaruPage::eofill »
  • PHP Manual
  • HaruPage
  • End current text object

HaruPage::endText

(PECL haru >= 0.0.1)

HaruPage::endText — End current text object

Описание

HaruPage::endText ( void ) : bool

Finalizes current text object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Fill current path using even-odd rule

  • « HaruPage::endText
  • HaruPage::eoFillStroke »
  • PHP Manual
  • HaruPage
  • Fill current path using even-odd rule

HaruPage::eofill

(PECL haru >= 0.0.1)

HaruPage::eofill — Fill current path using even-odd rule

Описание

HaruPage::eofill ( void ) : bool

Fills current path using even-odd rule.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Fill current path using even-odd rule, then paint the path

  • « HaruPage::eofill
  • HaruPage::fill »
  • PHP Manual
  • HaruPage
  • Fill current path using even-odd rule, then paint the path

HaruPage::eoFillStroke

(PECL haru >= 0.0.1)

HaruPage::eoFillStroke — Fill current path using even-odd rule, then paint the path

Описание

HaruPage::eoFillStroke ([ bool $close_path = FALSE ] ) : bool

Fills current path using even-odd rule, then paints the path.

Список параметров

close_path

Optional parameter. When set to TRUE, the function closes the current path. Default to FALSE.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Fill current path using nonzero winding number rule

  • « HaruPage::eoFillStroke
  • HaruPage::fillStroke »
  • PHP Manual
  • HaruPage
  • Fill current path using nonzero winding number rule

HaruPage::fill

(PECL haru >= 0.0.1)

HaruPage::fill — Fill current path using nonzero winding number rule

Описание

HaruPage::fill ( void ) : bool

Fills current path using nonzero winding number rule.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Fill current path using nonzero winding number rule, then paint the path

  • « HaruPage::fill
  • HaruPage::getCharSpace »
  • PHP Manual
  • HaruPage
  • Fill current path using nonzero winding number rule, then paint the path

HaruPage::fillStroke

(PECL haru >= 0.0.1)

HaruPage::fillStroke — Fill current path using nonzero winding number rule, then paint the path

Описание

HaruPage::fillStroke ([ bool $close_path = FALSE ] ) : bool

Fills current path using nonzero winding number rule, then paints the path.

Список параметров

close_path

Optional parameter. When set to TRUE, the function closes the current path. Default to FALSE.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the current value of character spacing

  • « HaruPage::fillStroke
  • HaruPage::getCMYKFill »
  • PHP Manual
  • HaruPage
  • Get the current value of character spacing

HaruPage::getCharSpace

(PECL haru >= 0.0.1)

HaruPage::getCharSpace — Get the current value of character spacing

Описание

HaruPage::getCharSpace ( void ) : float

Get the current value of character spacing.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current value of character spacing.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the current filling color

  • « HaruPage::getCharSpace
  • HaruPage::getCMYKStroke »
  • PHP Manual
  • HaruPage
  • Get the current filling color

HaruPage::getCMYKFill

(PECL haru >= 0.0.1)

HaruPage::getCMYKFill — Get the current filling color

Описание

HaruPage::getCMYKFill ( void ) : array

Returns the current filling color.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current filling color as an array with 4 elements ("c", "m", "y" and "k").

Ошибки

Вызывает исключение HaruException при ошибке.


Get the current stroking color

  • « HaruPage::getCMYKFill
  • HaruPage::getCurrentFont »
  • PHP Manual
  • HaruPage
  • Get the current stroking color

HaruPage::getCMYKStroke

(PECL haru >= 0.0.1)

HaruPage::getCMYKStroke — Get the current stroking color

Описание

HaruPage::getCMYKStroke ( void ) : array

Get the current stroking color.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current stroking color as an array with 4 elements ("c", "m", "y" and "k").

Ошибки

Вызывает исключение HaruException при ошибке.


Get the currently used font

  • « HaruPage::getCMYKStroke
  • HaruPage::getCurrentFontSize »
  • PHP Manual
  • HaruPage
  • Get the currently used font

HaruPage::getCurrentFont

(PECL haru >= 0.0.1)

HaruPage::getCurrentFont — Get the currently used font

Описание

HaruPage::getCurrentFont ( void ) : object

Get the currently used font.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the currently used font as an instance of HaruFont.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the current font size

  • « HaruPage::getCurrentFont
  • HaruPage::getCurrentPos »
  • PHP Manual
  • HaruPage
  • Get the current font size

HaruPage::getCurrentFontSize

(PECL haru >= 0.0.1)

HaruPage::getCurrentFontSize — Get the current font size

Описание

HaruPage::getCurrentFontSize ( void ) : float

Get the current font size.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current font size.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the current position for path painting

  • « HaruPage::getCurrentFontSize
  • HaruPage::getCurrentTextPos »
  • PHP Manual
  • HaruPage
  • Get the current position for path painting

HaruPage::getCurrentPos

(PECL haru >= 0.0.1)

HaruPage::getCurrentPos — Get the current position for path painting

Описание

HaruPage::getCurrentPos ( void ) : array

Get the current position for path painting.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current position for path painting as an array of with two elements - "x" and "y".

Ошибки

Вызывает исключение HaruException при ошибке.


Get the current position for text printing

  • « HaruPage::getCurrentPos
  • HaruPage::getDash »
  • PHP Manual
  • HaruPage
  • Get the current position for text printing

HaruPage::getCurrentTextPos

(PECL haru >= 0.0.1)

HaruPage::getCurrentTextPos — Get the current position for text printing

Описание

HaruPage::getCurrentTextPos ( void ) : array

Get the current position for text printing.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current position for text printing as an array with 2 elements - "x" and "y".

Ошибки

Вызывает исключение HaruException при ошибке.


Get the current dash pattern

  • « HaruPage::getCurrentTextPos
  • HaruPage::getFillingColorSpace »
  • PHP Manual
  • HaruPage
  • Get the current dash pattern

HaruPage::getDash

(PECL haru >= 0.0.1)

HaruPage::getDash — Get the current dash pattern

Описание

HaruPage::getDash ( void ) : array

Get the current dash pattern. See HaruPage::setDash() for more information on dash patterns.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current dash pattern as an array of two elements - "pattern" and "phase" or FALSE if dash pattern was not set.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setDash() - Set the dash pattern for the page


Get the current filling color space

  • « HaruPage::getDash
  • HaruPage::getFlatness »
  • PHP Manual
  • HaruPage
  • Get the current filling color space

HaruPage::getFillingColorSpace

(PECL haru >= 0.0.1)

HaruPage::getFillingColorSpace — Get the current filling color space

Описание

HaruPage::getFillingColorSpace ( void ) : int

Get the current filling color space.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current filling color space. The result value is one of the following:

  • HaruDoc::CS_DEVICE_GRAY
  • HaruDoc::CS_DEVICE_RGB
  • HaruDoc::CS_DEVICE_CMYK
  • HaruDoc::CS_CAL_GRAY
  • HaruDoc::CS_CAL_RGB
  • HaruDoc::CS_LAB
  • HaruDoc::CS_ICC_BASED
  • HaruDoc::CS_SEPARATION
  • HaruDoc::CS_DEVICE_N
  • HaruDoc::CS_INDEXED
  • HaruDoc::CS_PATTERN

Ошибки

Вызывает исключение HaruException при ошибке.


Get the flatness of the page

  • « HaruPage::getFillingColorSpace
  • HaruPage::getGMode »
  • PHP Manual
  • HaruPage
  • Get the flatness of the page

HaruPage::getFlatness

(PECL haru >= 0.0.1)

HaruPage::getFlatness — Get the flatness of the page

Описание

HaruPage::getFlatness ( void ) : float

Get the flatness of the page.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the flatness of the page.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setFlatness() - Set flatness for the page


Get the current graphics mode

  • « HaruPage::getFlatness
  • HaruPage::getGrayFill »
  • PHP Manual
  • HaruPage
  • Get the current graphics mode

HaruPage::getGMode

(PECL haru >= 0.0.1)

HaruPage::getGMode — Get the current graphics mode

Описание

HaruPage::getGMode ( void ) : int

Get the current graphics mode.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current graphics mode. The result value is one of the following:

  • HaruPage::GMODE_PAGE_DESCRIPTION
  • HaruPage::GMODE_TEXT_OBJECT
  • HaruPage::GMODE_PATH_OBJECT
  • HaruPage::GMODE_CLIPPING_PATH
  • HaruPage::GMODE_SHADING
  • HaruPage::GMODE_INLINE_IMAGE
  • HaruPage::GMODE_EXTERNAL_OBJECT

Ошибки

Вызывает исключение HaruException при ошибке.


Get the current filling color

  • « HaruPage::getGMode
  • HaruPage::getGrayStroke »
  • PHP Manual
  • HaruPage
  • Get the current filling color

HaruPage::getGrayFill

(PECL haru >= 0.0.1)

HaruPage::getGrayFill — Get the current filling color

Описание

HaruPage::getGrayFill ( void ) : float

Get the current filling color.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current filling color.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setGrayFill() - Set filling color for the page


Get the current stroking color

  • « HaruPage::getGrayFill
  • HaruPage::getHeight »
  • PHP Manual
  • HaruPage
  • Get the current stroking color

HaruPage::getGrayStroke

(PECL haru >= 0.0.1)

HaruPage::getGrayStroke — Get the current stroking color

Описание

HaruPage::getGrayStroke ( void ) : float

Get the current stroking color.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current stroking color.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setGrayStroke() - Sets stroking color for the page


Get the height of the page

  • « HaruPage::getGrayStroke
  • HaruPage::getHorizontalScaling »
  • PHP Manual
  • HaruPage
  • Get the height of the page

HaruPage::getHeight

(PECL haru >= 0.0.1)

HaruPage::getHeight — Get the height of the page

Описание

HaruPage::getHeight ( void ) : float

Get the height of the page.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the height of the page.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setHeight() - Set height of the page


Get the current value of horizontal scaling

  • « HaruPage::getHeight
  • HaruPage::getLineCap »
  • PHP Manual
  • HaruPage
  • Get the current value of horizontal scaling

HaruPage::getHorizontalScaling

(PECL haru >= 0.0.1)

HaruPage::getHorizontalScaling — Get the current value of horizontal scaling

Описание

HaruPage::getHorizontalScaling ( void ) : float

Get the current value of the horizontal scaling.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current value of horizontal scaling.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setHorizontalScaling() - Set horizontal scaling for the page


Get the current line cap style

  • « HaruPage::getHorizontalScaling
  • HaruPage::getLineJoin »
  • PHP Manual
  • HaruPage
  • Get the current line cap style

HaruPage::getLineCap

(PECL haru >= 0.0.1)

HaruPage::getLineCap — Get the current line cap style

Описание

HaruPage::getLineCap ( void ) : int

Get the current line cap style.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current line cap style. The result value is one of the following:

  • HaruPage::BUTT_END - the line is squared off at the endpoint of the path.
  • HaruPage::ROUND_END - the end of the line becomes a semicircle with center in the end point of the path.
  • HaruPage::PROJECTING_SCUARE_END - the line continues to the point that exceeds half of the stroke width the end point.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setLineCap() - Set the shape to be used at the ends of lines


Get the current line join style

  • « HaruPage::getLineCap
  • HaruPage::getLineWidth »
  • PHP Manual
  • HaruPage
  • Get the current line join style

HaruPage::getLineJoin

(PECL haru >= 0.0.1)

HaruPage::getLineJoin — Get the current line join style

Описание

HaruPage::getLineJoin ( void ) : int

Get the current line join style.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current line join style. The result value is one of the following:

  • HaruPage::MITER_JOIN
  • HaruPage::ROUND_JOIN
  • HaruPage::BEVEL_JOIN

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setLineJoin() - Set line join style for the page


Get the current line width

  • « HaruPage::getLineJoin
  • HaruPage::getMiterLimit »
  • PHP Manual
  • HaruPage
  • Get the current line width

HaruPage::getLineWidth

(PECL haru >= 0.0.1)

HaruPage::getLineWidth — Get the current line width

Описание

HaruPage::getLineWidth ( void ) : float

Get the current line width.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current line width.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setLineWidth() - Set line width for the page


Get the value of miter limit

  • « HaruPage::getLineWidth
  • HaruPage::getRGBFill »
  • PHP Manual
  • HaruPage
  • Get the value of miter limit

HaruPage::getMiterLimit

(PECL haru >= 0.0.1)

HaruPage::getMiterLimit — Get the value of miter limit

Описание

HaruPage::getMiterLimit ( void ) : float

Get the value of the miter limit.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the value of the miter limit.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setMiterLimit() - Set the current value of the miter limit of the page


Get the current filling color

  • « HaruPage::getMiterLimit
  • HaruPage::getRGBStroke »
  • PHP Manual
  • HaruPage
  • Get the current filling color

HaruPage::getRGBFill

(PECL haru >= 0.0.1)

HaruPage::getRGBFill — Get the current filling color

Описание

HaruPage::getRGBFill ( void ) : array

Get the current filling color.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current filling color as an array with 3 elements: "r", "g" and "b".

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setRGBFill() - Set filling color for the page


Get the current stroking color

  • « HaruPage::getRGBFill
  • HaruPage::getStrokingColorSpace »
  • PHP Manual
  • HaruPage
  • Get the current stroking color

HaruPage::getRGBStroke

(PECL haru >= 0.0.1)

HaruPage::getRGBStroke — Get the current stroking color

Описание

HaruPage::getRGBStroke ( void ) : array

Get the current stroking color.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current stroking color.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setRGBStroke() - Set stroking color for the page


Get the current stroking color space

  • « HaruPage::getRGBStroke
  • HaruPage::getTextLeading »
  • PHP Manual
  • HaruPage
  • Get the current stroking color space

HaruPage::getStrokingColorSpace

(PECL haru >= 0.0.1)

HaruPage::getStrokingColorSpace — Get the current stroking color space

Описание

HaruPage::getStrokingColorSpace ( void ) : int

Get the current stroking color space.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current stroking color space. The list of return values is the same as for HaruPage::getFillingColorSpace()

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getFillingColorSpace() - Get the current filling color space


Get the current value of line spacing

  • « HaruPage::getStrokingColorSpace
  • HaruPage::getTextMatrix »
  • PHP Manual
  • HaruPage
  • Get the current value of line spacing

HaruPage::getTextLeading

(PECL haru >= 0.0.1)

HaruPage::getTextLeading — Get the current value of line spacing

Описание

HaruPage::getTextLeading ( void ) : float

Get the current value of line spacing.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current value of line spacing.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setTextLeading() - Set text leading (line spacing) for the page


Get the current text transformation matrix of the page

  • « HaruPage::getTextLeading
  • HaruPage::getTextRenderingMode »
  • PHP Manual
  • HaruPage
  • Get the current text transformation matrix of the page

HaruPage::getTextMatrix

(PECL haru >= 0.0.1)

HaruPage::getTextMatrix — Get the current text transformation matrix of the page

Описание

HaruPage::getTextMatrix ( void ) : array

Get the current text transformation matrix of the page.

Возвращаемые значения

Returns the current text transformation matrix of the page as an array of 6 elements: "a", "b", "c", "d", "x" and "y".

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setTextMatrix() - Set the current text transformation matrix of the page


Get the current text rendering mode

  • « HaruPage::getTextMatrix
  • HaruPage::getTextRise »
  • PHP Manual
  • HaruPage
  • Get the current text rendering mode

HaruPage::getTextRenderingMode

(PECL haru >= 0.0.1)

HaruPage::getTextRenderingMode — Get the current text rendering mode

Описание

HaruPage::getTextRenderingMode ( void ) : int

Get the current text rendering mode.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current text rendering mode. The result value is one of the following:

  • HaruPage::FILL
  • HaruPage::STROKE
  • HaruPage::FILL_THEN_STROKE
  • HaruPage::INVISIBLE
  • HaruPage::FILL_CLIPPING
  • HaruPage::STROKE_CLIPPING
  • HaruPage::FILL_STROKE_CLIPPING
  • HaruPage::CLIPPING

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setTextRenderingMode() - Set text rendering mode for the page


Get the current value of text rising

  • « HaruPage::getTextRenderingMode
  • HaruPage::getTextWidth »
  • PHP Manual
  • HaruPage
  • Get the current value of text rising

HaruPage::getTextRise

(PECL haru >= 0.0.1)

HaruPage::getTextRise — Get the current value of text rising

Описание

HaruPage::getTextRise ( void ) : float

Get the current value of text rising.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current value of text rising.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setTextRise() - Set the current value of text rising


Get the width of the text using current fontsize, character spacing and word spacing

  • « HaruPage::getTextRise
  • HaruPage::getTransMatrix »
  • PHP Manual
  • HaruPage
  • Get the width of the text using current fontsize, character spacing and word spacing

HaruPage::getTextWidth

(PECL haru >= 0.0.1)

HaruPage::getTextWidth — Get the width of the text using current fontsize, character spacing and word spacing

Описание

HaruPage::getTextWidth ( string $text ) : float

Get the width of the text using current fontsize, character spacing and word spacing

Список параметров

text

The text to measure.

Возвращаемые значения

Returns the width of the text using current fontsize, character spacing and word spacing.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::measureText() - Calculate the byte length of characters which can be included on one line of the specified width


Get the current transformation matrix of the page

  • « HaruPage::getTextWidth
  • HaruPage::getWidth »
  • PHP Manual
  • HaruPage
  • Get the current transformation matrix of the page

HaruPage::getTransMatrix

(PECL haru >= 0.0.1)

HaruPage::getTransMatrix — Get the current transformation matrix of the page

Описание

HaruPage::getTransMatrix ( void ) : array

Get the current transformation matrix of the page.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current transformation matrix of the page as an array of 6 elements: "a", "b", "c", "d", "x" and "y".

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::concat() - Concatenate current transformation matrix of the page and the specified matrix


Get the width of the page

  • « HaruPage::getTransMatrix
  • HaruPage::getWordSpace »
  • PHP Manual
  • HaruPage
  • Get the width of the page

HaruPage::getWidth

(PECL haru >= 0.0.1)

HaruPage::getWidth — Get the width of the page

Описание

HaruPage::getWidth ( void ) : float

Get the width of the page.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the width of the page.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setWidth() - Set width of the page


Get the current value of word spacing

  • « HaruPage::getWidth
  • HaruPage::lineTo »
  • PHP Manual
  • HaruPage
  • Get the current value of word spacing

HaruPage::getWordSpace

(PECL haru >= 0.0.1)

HaruPage::getWordSpace — Get the current value of word spacing

Описание

HaruPage::getWordSpace ( void ) : float

Get the current value of word spacing.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current value of word spacing.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setWordSpace() - Set word spacing for the page


Draw a line from the current point to the specified point

  • « HaruPage::getWordSpace
  • HaruPage::measureText »
  • PHP Manual
  • HaruPage
  • Draw a line from the current point to the specified point

HaruPage::lineTo

(PECL haru >= 0.0.1)

HaruPage::lineTo — Draw a line from the current point to the specified point

Описание

HaruPage::lineTo ( float $x , float $y ) : bool

Draws a line from the current point to the specified point.

Список параметров

x

y

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::curveTo() - Append a Bezier curve to the current path
  • HaruPage::curveTo2() - Append a Bezier curve to the current path
  • HaruPage::curveTo3() - Append a Bezier curve to the current path


Calculate the byte length of characters which can be included on one line of the specified width

  • « HaruPage::lineTo
  • HaruPage::moveTextPos »
  • PHP Manual
  • HaruPage
  • Calculate the byte length of characters which can be included on one line of the specified width

HaruPage::measureText

(PECL haru >= 0.0.1)

HaruPage::measureText — Calculate the byte length of characters which can be included on one line of the specified width

Описание

HaruPage::measureText ( string $text , float $width [, bool $wordwrap = FALSE ] ) : int

Get the byte length of characters which can be included on one line of the specified width.

Список параметров

text

The text to measure.

width

The width of the line.

wordwrap

When this parameter is set to TRUE the function "emulates" word wrapping by stopping after the last full word (delimited by whitespace) that can fit on the line.

Возвращаемые значения

Returns the byte length of characters which can be included within the specified width. For single-byte encodings, this is equal to the number of characters. For multi-byte encodings, this is not necessarily the case.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruFont::measureText() - Calculate the number of characters which can be included within the specified width


Move text position to the specified offset

  • « HaruPage::measureText
  • HaruPage::moveTo »
  • PHP Manual
  • HaruPage
  • Move text position to the specified offset

HaruPage::moveTextPos

(PECL haru >= 0.0.1)

HaruPage::moveTextPos — Move text position to the specified offset

Описание

HaruPage::moveTextPos ( float $x , float $y [, bool $set_leading = FALSE ] ) : bool

Moves text position to the specified offset. If the start position of the current line is (x1, y1), the start of the next line is (x1 + x, y1 + y).

Список параметров

x

The specified text position offset.

y

The specified text position offset.

set_leading

If set to TRUE, the function sets the text leading to -y.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::moveToNextLine() - Move text position to the start of the next line


Set starting point for new drawing path

  • « HaruPage::moveTextPos
  • HaruPage::moveToNextLine »
  • PHP Manual
  • HaruPage
  • Set starting point for new drawing path

HaruPage::moveTo

(PECL haru >= 0.0.1)

HaruPage::moveTo — Set starting point for new drawing path

Описание

HaruPage::moveTo ( float $x , float $y ) : bool

Defines starting point for new drawing path.

Список параметров

x

A new starting point coordinate.

y

A new starting point coordinate.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Move text position to the start of the next line

  • « HaruPage::moveTo
  • HaruPage::rectangle »
  • PHP Manual
  • HaruPage
  • Move text position to the start of the next line

HaruPage::moveToNextLine

(PECL haru >= 0.0.1)

HaruPage::moveToNextLine — Move text position to the start of the next line

Описание

HaruPage::moveToNextLine ( void ) : bool

Moves text position to the start of the next line.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::moveTextPos() - Move text position to the specified offset


Append a rectangle to the current path

  • « HaruPage::moveToNextLine
  • HaruPage::setCharSpace »
  • PHP Manual
  • HaruPage
  • Append a rectangle to the current path

HaruPage::rectangle

(PECL haru >= 0.0.1)

HaruPage::rectangle — Append a rectangle to the current path

Описание

HaruPage::rectangle ( float $x , float $y , float $width , float $height ) : bool

Appends a rectangle to the current drawing path.

Список параметров

x

The left border of the rectangle.

y

The lower border of the rectangle.

width

The width of the rectangle.

height

The height of the rectangle.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set character spacing for the page

  • « HaruPage::rectangle
  • HaruPage::setCMYKFill »
  • PHP Manual
  • HaruPage
  • Set character spacing for the page

HaruPage::setCharSpace

(PECL haru >= 0.0.1)

HaruPage::setCharSpace — Set character spacing for the page

Описание

HaruPage::setCharSpace ( float $char_space ) : bool

Defines character spacing for the page.

Список параметров

char_space

The new character spacing for the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getCharSpace() - Get the current value of character spacing


Set filling color for the page

  • « HaruPage::setCharSpace
  • HaruPage::setCMYKStroke »
  • PHP Manual
  • HaruPage
  • Set filling color for the page

HaruPage::setCMYKFill

(PECL haru >= 0.0.1)

HaruPage::setCMYKFill — Set filling color for the page

Описание

HaruPage::setCMYKFill ( float $c , float $m , float $y , float $k ) : bool

Defines filling color for the page.

Список параметров

c

m

y

k

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getCMYKFill() - Get the current filling color


Set stroking color for the page

  • « HaruPage::setCMYKFill
  • HaruPage::setDash »
  • PHP Manual
  • HaruPage
  • Set stroking color for the page

HaruPage::setCMYKStroke

(PECL haru >= 0.0.1)

HaruPage::setCMYKStroke — Set stroking color for the page

Описание

HaruPage::setCMYKStroke ( float $c , float $m , float $y , float $k ) : bool

Defines stroking color for the page.

Список параметров

c

m

y

k

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getCMYKStroke() - Get the current stroking color


Set the dash pattern for the page

  • « HaruPage::setCMYKStroke
  • HaruPage::setFlatness »
  • PHP Manual
  • HaruPage
  • Set the dash pattern for the page

HaruPage::setDash

(PECL haru >= 0.0.1)

HaruPage::setDash — Set the dash pattern for the page

Описание

HaruPage::setDash ( array $pattern , int $phase ) : bool

Defines the dash pattern for the page.

Список параметров

pattern

An array (8 elements max) which contains a pattern of dashes and gaps used for lines on the page.

phase

The phase on which the pattern begins.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getDash() - Get the current dash pattern


Set flatness for the page

  • « HaruPage::setDash
  • HaruPage::setFontAndSize »
  • PHP Manual
  • HaruPage
  • Set flatness for the page

HaruPage::setFlatness

(PECL haru >= 0.0.1)

HaruPage::setFlatness — Set flatness for the page

Описание

HaruPage::setFlatness ( float $flatness ) : bool

Defines flatness for the page.

Список параметров

flatness

The defined flatness for the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getFlatness() - Get the flatness of the page


Set font and fontsize for the page

  • « HaruPage::setFlatness
  • HaruPage::setGrayFill »
  • PHP Manual
  • HaruPage
  • Set font and fontsize for the page

HaruPage::setFontAndSize

(PECL haru >= 0.0.1)

HaruPage::setFontAndSize — Set font and fontsize for the page

Описание

HaruPage::setFontAndSize ( object $font , float $size ) : bool

Defines current font and its size for the page.

Список параметров

font

A valid HaruFont instance.

size

The size of the font.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::getFont() - Get HaruFont instance


Set filling color for the page

  • « HaruPage::setFontAndSize
  • HaruPage::setGrayStroke »
  • PHP Manual
  • HaruPage
  • Set filling color for the page

HaruPage::setGrayFill

(PECL haru >= 0.0.1)

HaruPage::setGrayFill — Set filling color for the page

Описание

HaruPage::setGrayFill ( float $value ) : bool

Defines filling color for the page.

Список параметров

value

The value of gray level between 0 and 1.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getGrayFill() - Get the current filling color


Sets stroking color for the page

  • « HaruPage::setGrayFill
  • HaruPage::setHeight »
  • PHP Manual
  • HaruPage
  • Sets stroking color for the page

HaruPage::setGrayStroke

(PECL haru >= 0.0.1)

HaruPage::setGrayStroke — Sets stroking color for the page

Описание

HaruPage::setGrayStroke ( float $value ) : bool

Defines stroking color for the page.

Список параметров

value

The value of gray level between 0 and 1.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getGrayStroke() - Get the current stroking color


Set height of the page

  • « HaruPage::setGrayStroke
  • HaruPage::setHorizontalScaling »
  • PHP Manual
  • HaruPage
  • Set height of the page

HaruPage::setHeight

(PECL haru >= 0.0.1)

HaruPage::setHeight — Set height of the page

Описание

HaruPage::setHeight ( float $height ) : bool

Defines height of the page.

Список параметров

height

The defined height for the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getHeight() - Get the height of the page


Set horizontal scaling for the page

  • « HaruPage::setHeight
  • HaruPage::setLineCap »
  • PHP Manual
  • HaruPage
  • Set horizontal scaling for the page

HaruPage::setHorizontalScaling

(PECL haru >= 0.0.1)

HaruPage::setHorizontalScaling — Set horizontal scaling for the page

Описание

HaruPage::setHorizontalScaling ( float $scaling ) : bool

Set the horizontal scaling for the page.

Список параметров

scaling

The horizontal scaling for text showing on the page. The initial value is 100.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getHorizontalScaling() - Get the current value of horizontal scaling


Set the shape to be used at the ends of lines

  • « HaruPage::setHorizontalScaling
  • HaruPage::setLineJoin »
  • PHP Manual
  • HaruPage
  • Set the shape to be used at the ends of lines

HaruPage::setLineCap

(PECL haru >= 0.0.1)

HaruPage::setLineCap — Set the shape to be used at the ends of lines

Описание

HaruPage::setLineCap ( int $cap ) : bool

Defines the shape to be used at the ends of lines.

Список параметров

cap

Must be one of the following values:

  • HaruPage::BUTT_END - the line is squared off at the endpoint of the path.
  • HaruPage::ROUND_END - the end of the line becomes a semicircle with center in the end point of the path.
  • HaruPage::PROJECTING_SCUARE_END - the line continues to the point that exceeds half of the stroke width the end point.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getLineCap() - Get the current line cap style


Set line join style for the page

  • « HaruPage::setLineCap
  • HaruPage::setLineWidth »
  • PHP Manual
  • HaruPage
  • Set line join style for the page

HaruPage::setLineJoin

(PECL haru >= 0.0.1)

HaruPage::setLineJoin — Set line join style for the page

Описание

HaruPage::setLineJoin ( int $join ) : bool

Defines line join style for the page.

Список параметров

join

Must be one of the following values:

  • HaruPage::MITER_JOIN
  • HaruPage::ROUND_JOIN
  • HaruPage::BEVEL_JOIN

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getLineJoin() - Get the current line join style


Set line width for the page

  • « HaruPage::setLineJoin
  • HaruPage::setMiterLimit »
  • PHP Manual
  • HaruPage
  • Set line width for the page

HaruPage::setLineWidth

(PECL haru >= 0.0.1)

HaruPage::setLineWidth — Set line width for the page

Описание

HaruPage::setLineWidth ( float $width ) : bool

Defines line width for the page.

Список параметров

width

The defined line width for the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getLineWidth() - Get the current line width


Set the current value of the miter limit of the page

  • « HaruPage::setLineWidth
  • HaruPage::setRGBFill »
  • PHP Manual
  • HaruPage
  • Set the current value of the miter limit of the page

HaruPage::setMiterLimit

(PECL haru >= 0.0.1)

HaruPage::setMiterLimit — Set the current value of the miter limit of the page

Описание

HaruPage::setMiterLimit ( float $limit ) : bool

Set the current value of the miter limit of the page.

Список параметров

limit

Defines the current value of the miter limit of the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getMiterLimit() - Get the value of miter limit


Set filling color for the page

  • « HaruPage::setMiterLimit
  • HaruPage::setRGBStroke »
  • PHP Manual
  • HaruPage
  • Set filling color for the page

HaruPage::setRGBFill

(PECL haru >= 0.0.1)

HaruPage::setRGBFill — Set filling color for the page

Описание

HaruPage::setRGBFill ( float $r , float $g , float $b ) : bool

Defines filling color for the page. All values must be between 0 and 1.

Список параметров

r

g

b

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getRGBFill() - Get the current filling color


Set stroking color for the page

  • « HaruPage::setRGBFill
  • HaruPage::setRotate »
  • PHP Manual
  • HaruPage
  • Set stroking color for the page

HaruPage::setRGBStroke

(PECL haru >= 0.0.1)

HaruPage::setRGBStroke — Set stroking color for the page

Описание

HaruPage::setRGBStroke ( float $r , float $g , float $b ) : bool

Defines stroking color for the page. All values must be between 0 and 1.

Список параметров

r

g

b

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getRGBStroke() - Get the current stroking color


Set rotation angle of the page

  • « HaruPage::setRGBStroke
  • HaruPage::setSize »
  • PHP Manual
  • HaruPage
  • Set rotation angle of the page

HaruPage::setRotate

(PECL haru >= 0.0.1)

HaruPage::setRotate — Set rotation angle of the page

Описание

HaruPage::setRotate ( int $angle ) : bool

Defines rotation angle of the page.

Список параметров

angle

Must be a multiple of 90 degrees.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set size and direction of the page

  • « HaruPage::setRotate
  • HaruPage::setSlideShow »
  • PHP Manual
  • HaruPage
  • Set size and direction of the page

HaruPage::setSize

(PECL haru >= 0.0.1)

HaruPage::setSize — Set size and direction of the page

Описание

HaruPage::setSize ( int $size , int $direction ) : bool

Changes size and direction of the page to a predefined format.

Список параметров

size

Must be one of the following values:

  • HaruPage::SIZE_LETTER
  • HaruPage::SIZE_LEGAL
  • HaruPage::SIZE_A3
  • HaruPage::SIZE_A4
  • HaruPage::SIZE_A5
  • HaruPage::SIZE_B4
  • HaruPage::SIZE_B5
  • HaruPage::SIZE_EXECUTIVE
  • HaruPage::SIZE_US4x6
  • HaruPage::SIZE_US4x8
  • HaruPage::SIZE_US5x7
  • HaruPage::SIZE_COMM10

direction

Must be one of the following values:

  • HaruPage::PORTRAIT
  • HaruPage::LANDSCAPE

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setWidth() - Set width of the page
  • HaruPage::setHeight() - Set height of the page


Set transition style for the page

  • « HaruPage::setSize
  • HaruPage::setTextLeading »
  • PHP Manual
  • HaruPage
  • Set transition style for the page

HaruPage::setSlideShow

(PECL haru >= 0.0.1)

HaruPage::setSlideShow — Set transition style for the page

Описание

HaruPage::setSlideShow ( int $type , float $disp_time , float $trans_time ) : bool

Defines transition style for the page.

Список параметров

type

Must be one of the following values:

  • HaruPage::TS_WIPE_RIGHT
  • HaruPage::TS_WIPE_LEFT
  • HaruPage::TS_WIPE_UP
  • HaruPage::TS_WIPE_DOWN
  • HaruPage::TS_BARN_DOORS_HORIZONTAL_OUT
  • HaruPage::TS_BARN_DOORS_HORIZONTAL_IN
  • HaruPage::TS_BARN_DOORS_VERTICAL_OUT
  • HaruPage::TS_BARN_DOORS_VERTICAL_IN
  • HaruPage::TS_BOX_OUT
  • HaruPage::TS_BOX_IN
  • HaruPage::TS_BLINDS_HORIZONTAL
  • HaruPage::TS_BLINDS_VERTICAL
  • HaruPage::TS_DISSOLVE
  • HaruPage::TS_GLITTER_RIGHT
  • HaruPage::TS_GLITTER_DOWN
  • HaruPage::TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT
  • HaruPage::TS_REPLACE

disp_time

The display duration of the page in seconds.

trans_time

The duration of the transition effect in seconds.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set text leading (line spacing) for the page

  • « HaruPage::setSlideShow
  • HaruPage::setTextMatrix »
  • PHP Manual
  • HaruPage
  • Set text leading (line spacing) for the page

HaruPage::setTextLeading

(PECL haru >= 0.0.1)

HaruPage::setTextLeading — Set text leading (line spacing) for the page

Описание

HaruPage::setTextLeading ( float $text_leading ) : bool

Set the text leading (line spacing) for the page.

Список параметров

text_leading

Defines line spacing for the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getTextLeading() - Get the current value of line spacing


Set the current text transformation matrix of the page

  • « HaruPage::setTextLeading
  • HaruPage::setTextRenderingMode »
  • PHP Manual
  • HaruPage
  • Set the current text transformation matrix of the page

HaruPage::setTextMatrix

(PECL haru >= 0.0.1)

HaruPage::setTextMatrix — Set the current text transformation matrix of the page

Описание

HaruPage::setTextMatrix ( float $a , float $b , float $c , float $d , float $x , float $y ) : bool

Defines the text transformation matrix of the page.

Список параметров

a

Width multiplier.

b

Vertical skew in radians.

c

Horizontal skew in radians.

d

Height multiplier.

x

Horizontal position for text.

y

Vertical position for text.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getTextMatrix() - Get the current text transformation matrix of the page


Set text rendering mode for the page

  • « HaruPage::setTextMatrix
  • HaruPage::setTextRise »
  • PHP Manual
  • HaruPage
  • Set text rendering mode for the page

HaruPage::setTextRenderingMode

(PECL haru >= 0.0.1)

HaruPage::setTextRenderingMode — Set text rendering mode for the page

Описание

HaruPage::setTextRenderingMode ( int $mode ) : bool

Defines text rendering mode for the page.

Список параметров

mode

Must be one of the following values:

  • HaruPage::FILL
  • HaruPage::STROKE
  • HaruPage::FILL_THEN_STROKE
  • HaruPage::INVISIBLE
  • HaruPage::FILL_CLIPPING
  • HaruPage::STROKE_CLIPPING
  • HaruPage::FILL_STROKE_CLIPPING
  • HaruPage::CLIPPING

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getTextRenderingMode() - Get the current text rendering mode


Set the current value of text rising

  • « HaruPage::setTextRenderingMode
  • HaruPage::setWidth »
  • PHP Manual
  • HaruPage
  • Set the current value of text rising

HaruPage::setTextRise

(PECL haru >= 0.0.1)

HaruPage::setTextRise — Set the current value of text rising

Описание

HaruPage::setTextRise ( float $rise ) : bool

Set the current value of text rising.

Список параметров

rise

Defines the current value of text rising.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getTextRise() - Get the current value of text rising


Set width of the page

  • « HaruPage::setTextRise
  • HaruPage::setWordSpace »
  • PHP Manual
  • HaruPage
  • Set width of the page

HaruPage::setWidth

(PECL haru >= 0.0.1)

HaruPage::setWidth — Set width of the page

Описание

HaruPage::setWidth ( float $width ) : bool

Set the width of the page.

Список параметров

width

Defines width of the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getWidth() - Get the width of the page


Set word spacing for the page

  • « HaruPage::setWidth
  • HaruPage::showText »
  • PHP Manual
  • HaruPage
  • Set word spacing for the page

HaruPage::setWordSpace

(PECL haru >= 0.0.1)

HaruPage::setWordSpace — Set word spacing for the page

Описание

HaruPage::setWordSpace ( float $word_space ) : bool

Set the word spacing for the page.

Список параметров

word_space

Defines word spacing for the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getWordSpace() - Get the current value of word spacing


Print text at the current position of the page

  • « HaruPage::setWordSpace
  • HaruPage::showTextNextLine »
  • PHP Manual
  • HaruPage
  • Print text at the current position of the page

HaruPage::showText

(PECL haru >= 0.0.1)

HaruPage::showText — Print text at the current position of the page

Описание

HaruPage::showText ( string $text ) : bool

Prints out the text at the current position of the page.

Список параметров

text

The text to show.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::showTextNextLine() - Move the current position to the start of the next line and print the text
  • HaruPage::textOut() - Print the text on the specified position


Move the current position to the start of the next line and print the text

  • « HaruPage::showText
  • HaruPage::stroke »
  • PHP Manual
  • HaruPage
  • Move the current position to the start of the next line and print the text

HaruPage::showTextNextLine

(PECL haru >= 0.0.1)

HaruPage::showTextNextLine — Move the current position to the start of the next line and print the text

Описание

HaruPage::showTextNextLine ( string $text [, float $word_space = 0 [, float $char_space = 0 ]] ) : bool

Moves the current position to the start of the next line and print out the text.

Список параметров

text

The text to show.

word_space

The word spacing.

char_space

The character spacing.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::showText() - Print text at the current position of the page
  • HaruPage::textOut() - Print the text on the specified position


Paint current path

  • « HaruPage::showTextNextLine
  • HaruPage::textOut »
  • PHP Manual
  • HaruPage
  • Paint current path

HaruPage::stroke

(PECL haru >= 0.0.1)

HaruPage::stroke — Paint current path

Описание

HaruPage::stroke ([ bool $close_path = FALSE ] ) : bool

Paints the current path.

Список параметров

close_path

Closes the current path if set to TRUE.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Print the text on the specified position

  • « HaruPage::stroke
  • HaruPage::textRect »
  • PHP Manual
  • HaruPage
  • Print the text on the specified position

HaruPage::textOut

(PECL haru >= 0.0.1)

HaruPage::textOut — Print the text on the specified position

Описание

HaruPage::textOut ( float $x , float $y , string $text ) : bool

Prints the text on the specified position.

Список параметров

x

y

text

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::showTextNextLine() - Move the current position to the start of the next line and print the text
  • HaruPage::showText() - Print text at the current position of the page


Print the text inside the specified region

  • « HaruPage::textOut
  • HaruFont »
  • PHP Manual
  • HaruPage
  • Print the text inside the specified region

HaruPage::textRect

(PECL haru >= 0.0.1)

HaruPage::textRect — Print the text inside the specified region

Описание

HaruPage::textRect ( float $left , float $top , float $right , float $bottom , string $text [, int $align = HaruPage::TALIGN_LEFT ] ) : bool

Prints the text inside the specified region.

Список параметров

left

Left border of the text area.

top

Top border of the text area.

right

Right border of the text area.

bottom

Lower border of the text area.

text

The text to print.

align

Text alignment. Must be one of the following values:

  • HaruPage::TALIGN_LEFT
  • HaruPage::TALIGN_RIGHT
  • HaruPage::TALIGN_CENTER
  • HaruPage::TALIGN_JUSTIFY

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::showTextNextLine() - Move the current position to the start of the next line and print the text
  • HaruPage::showText() - Print text at the current position of the page
  • HaruPage::textOut() - Print the text on the specified position


Класс HaruFont

(PECL haru >= 0.0.1)

Введение

Класс Haru PDF Font.

Обзор классов

HaruFont {
/* Методы */
getAscent ( void ) : int
getCapHeight ( void ) : int
getDescent ( void ) : int
getEncodingName ( void ) : string
getFontName ( void ) : string
getTextWidth ( string $text ) : array
getUnicodeWidth ( int $character ) : int
getXHeight ( void ) : int
measureText ( string $text , float $width , float $font_size , float $char_space , float $word_space [, bool $word_wrap = FALSE ] ) : int
}

Содержание

  • HaruFont::getAscent — Get the vertical ascent of the font
  • HaruFont::getCapHeight — Get the distance from the baseline of uppercase letters
  • HaruFont::getDescent — Get the vertical descent of the font
  • HaruFont::getEncodingName — Get the name of the encoding
  • HaruFont::getFontName — Get the name of the font
  • HaruFont::getTextWidth — Get the total width of the text, number of characters, number of words and number of spaces
  • HaruFont::getUnicodeWidth — Get the width of the character in the font
  • HaruFont::getXHeight — Get the distance from the baseline of lowercase letters
  • HaruFont::measureText — Calculate the number of characters which can be included within the specified width


Get the vertical ascent of the font

  • « HaruFont
  • HaruFont::getCapHeight »
  • PHP Manual
  • HaruFont
  • Get the vertical ascent of the font

HaruFont::getAscent

(PECL haru >= 0.0.1)

HaruFont::getAscent — Get the vertical ascent of the font

Описание

HaruFont::getAscent ( void ) : int

Get the vertical ascent of the font.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the vertical ascent of the font.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the distance from the baseline of uppercase letters

  • « HaruFont::getAscent
  • HaruFont::getDescent »
  • PHP Manual
  • HaruFont
  • Get the distance from the baseline of uppercase letters

HaruFont::getCapHeight

(PECL haru >= 0.0.1)

HaruFont::getCapHeight — Get the distance from the baseline of uppercase letters

Описание

HaruFont::getCapHeight ( void ) : int

Get the distance from the baseline of uppercase letters.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the distance from the baseline of uppercase letters.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the vertical descent of the font

  • « HaruFont::getCapHeight
  • HaruFont::getEncodingName »
  • PHP Manual
  • HaruFont
  • Get the vertical descent of the font

HaruFont::getDescent

(PECL haru >= 0.0.1)

HaruFont::getDescent — Get the vertical descent of the font

Описание

HaruFont::getDescent ( void ) : int

Get the vertical descent of the font.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return the vertical descent of the font.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the name of the encoding

  • « HaruFont::getDescent
  • HaruFont::getFontName »
  • PHP Manual
  • HaruFont
  • Get the name of the encoding

HaruFont::getEncodingName

(PECL haru >= 0.0.1)

HaruFont::getEncodingName — Get the name of the encoding

Описание

HaruFont::getEncodingName ( void ) : string

Get the name of the font encoding.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the name of the font encoding.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the name of the font

  • « HaruFont::getEncodingName
  • HaruFont::getTextWidth »
  • PHP Manual
  • HaruFont
  • Get the name of the font

HaruFont::getFontName

(PECL haru >= 0.0.1)

HaruFont::getFontName — Get the name of the font

Описание

HaruFont::getFontName ( void ) : string

Get the name of the font.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the name of the font.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the total width of the text, number of characters, number of words and number of spaces

  • « HaruFont::getFontName
  • HaruFont::getUnicodeWidth »
  • PHP Manual
  • HaruFont
  • Get the total width of the text, number of characters, number of words and number of spaces

HaruFont::getTextWidth

(PECL haru >= 0.0.1)

HaruFont::getTextWidth — Get the total width of the text, number of characters, number of words and number of spaces

Описание

HaruFont::getTextWidth ( string $text ) : array

Get the total width of the text, number of characters, number of words and number of spaces.

Список параметров

text

The text to measure.

Возвращаемые значения

Returns the total width of the text, number of characters, number of words and number of spaces in the given text.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the width of the character in the font

  • « HaruFont::getTextWidth
  • HaruFont::getXHeight »
  • PHP Manual
  • HaruFont
  • Get the width of the character in the font

HaruFont::getUnicodeWidth

(PECL haru >= 0.0.1)

HaruFont::getUnicodeWidth — Get the width of the character in the font

Описание

HaruFont::getUnicodeWidth ( int $character ) : int

Get the width of the character in the font.

Список параметров

character

The code of the character.

Возвращаемые значения

Returns the width of the character in the font.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the distance from the baseline of lowercase letters

  • « HaruFont::getUnicodeWidth
  • HaruFont::measureText »
  • PHP Manual
  • HaruFont
  • Get the distance from the baseline of lowercase letters

HaruFont::getXHeight

(PECL haru >= 0.0.1)

HaruFont::getXHeight — Get the distance from the baseline of lowercase letters

Описание

HaruFont::getXHeight ( void ) : int

Gets the distance from the baseline of lowercase letters.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the distance from the baseline of lowercase letters.

Ошибки

Вызывает исключение HaruException при ошибке.


Calculate the number of characters which can be included within the specified width

  • « HaruFont::getXHeight
  • HaruImage »
  • PHP Manual
  • HaruFont
  • Calculate the number of characters which can be included within the specified width

HaruFont::measureText

(PECL haru >= 0.0.1)

HaruFont::measureText — Calculate the number of characters which can be included within the specified width

Описание

HaruFont::measureText ( string $text , float $width , float $font_size , float $char_space , float $word_space [, bool $word_wrap = FALSE ] ) : int

Calculate the number of characters which can be included within the specified width.

Список параметров

text

The text to fit the width.

width

The width of the area to put the text to.

font_size

The size of the font.

char_space

The character spacing.

word_space

The word spacing.

word_wrap

When this parameter is set to TRUE the function "emulates" word wrapping and doesn't include the part of the current word if reached the end of the area.

Возвращаемые значения

Returns the number of characters which can be included within the specified width.

Ошибки

Вызывает исключение HaruException при ошибке.


Класс HaruImage

(PECL haru >= 0.0.1)

Введение

Класс Haru PDF Image.

Обзор классов

HaruImage {
/* Методы */
getBitsPerComponent ( void ) : int
getColorSpace ( void ) : string
getHeight ( void ) : int
getSize ( void ) : array
getWidth ( void ) : int
setColorMask ( int $rmin , int $rmax , int $gmin , int $gmax , int $bmin , int $bmax ) : bool
setMaskImage ( object $mask_image ) : bool
}

Содержание

  • HaruImage::getBitsPerComponent — Get the number of bits used to describe each color component of the image
  • HaruImage::getColorSpace — Get the name of the color space
  • HaruImage::getHeight — Get the height of the image
  • HaruImage::getSize — Get size of the image
  • HaruImage::getWidth — Get the width of the image
  • HaruImage::setColorMask — Set the color mask of the image
  • HaruImage::setMaskImage — Set the image mask


Get the number of bits used to describe each color component of the image

  • « HaruImage
  • HaruImage::getColorSpace »
  • PHP Manual
  • HaruImage
  • Get the number of bits used to describe each color component of the image

HaruImage::getBitsPerComponent

(PECL haru >= 0.0.1)

HaruImage::getBitsPerComponent — Get the number of bits used to describe each color component of the image

Описание

HaruImage::getBitsPerComponent ( void ) : int

Gets the number of bits used to describe each color component of the image.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the number of bits used to describe each color component of the image.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the name of the color space

  • « HaruImage::getBitsPerComponent
  • HaruImage::getHeight »
  • PHP Manual
  • HaruImage
  • Get the name of the color space

HaruImage::getColorSpace

(PECL haru >= 0.0.1)

HaruImage::getColorSpace — Get the name of the color space

Описание

HaruImage::getColorSpace ( void ) : string

Get the name of the color space.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the name of the color space of the image. The name is one of the following values:

  • "DeviceGray"
  • "DeviceRGB"
  • "DeviceCMYK"
  • "Indexed"

Ошибки

Вызывает исключение HaruException при ошибке.


Get the height of the image

  • « HaruImage::getColorSpace
  • HaruImage::getSize »
  • PHP Manual
  • HaruImage
  • Get the height of the image

HaruImage::getHeight

(PECL haru >= 0.0.1)

HaruImage::getHeight — Get the height of the image

Описание

HaruImage::getHeight ( void ) : int

Get the height of the image.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the height of the image.

Ошибки

Вызывает исключение HaruException при ошибке.


Get size of the image

  • « HaruImage::getHeight
  • HaruImage::getWidth »
  • PHP Manual
  • HaruImage
  • Get size of the image

HaruImage::getSize

(PECL haru >= 0.0.1)

HaruImage::getSize — Get size of the image

Описание

HaruImage::getSize ( void ) : array

Get the size of the image.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array with two elements: width and height, which contain appropriate dimensions of the image.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the width of the image

  • « HaruImage::getSize
  • HaruImage::setColorMask »
  • PHP Manual
  • HaruImage
  • Get the width of the image

HaruImage::getWidth

(PECL haru >= 0.0.1)

HaruImage::getWidth — Get the width of the image

Описание

HaruImage::getWidth ( void ) : int

Get the width of the image.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the width of the image.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the color mask of the image

  • « HaruImage::getWidth
  • HaruImage::setMaskImage »
  • PHP Manual
  • HaruImage
  • Set the color mask of the image

HaruImage::setColorMask

(PECL haru >= 0.0.1)

HaruImage::setColorMask — Set the color mask of the image

Описание

HaruImage::setColorMask ( int $rmin , int $rmax , int $gmin , int $gmax , int $bmin , int $bmax ) : bool

Defines the transparent color of the image using the RGB range values. The color within the range is displayed as a transparent color. The color space of the image must be RGB.

Список параметров

rmin

The lower limit of red. Must be between 0 and 255.

rmax

The upper limit of red. Must be between 0 and 255.

gmin

The lower limit of green. Must be between 0 and 255.

gmax

The upper limit of green. Must be between 0 and 255.

bmin

The lower limit of blue. Must be between 0 and 255.

bmax

The upper limit of blue. Must be between 0 and 255.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the image mask

  • « HaruImage::setColorMask
  • HaruEncoder »
  • PHP Manual
  • HaruImage
  • Set the image mask

HaruImage::setMaskImage

(PECL haru >= 0.0.1)

HaruImage::setMaskImage — Set the image mask

Описание

HaruImage::setMaskImage ( object $mask_image ) : bool

Sets the image used as image-mask. It must be 1bit gray-scale color image.

Список параметров

mask_image

A valid HaruImage instance.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Класс HaruEncoder

(PECL haru >= 0.0.1)

Введение

Класс Haru PDF Encoder.

Обзор классов

HaruEncoder {
/* Методы */
getByteType ( string $text , int $index ) : int
getType ( void ) : int
getUnicode ( int $character ) : int
getWritingMode ( void ) : int
}

Предопределенные константы

Тип | Имя | Описание
int | HaruEncoder::TYPE_SINGLE_BYTE |
int | HaruEncoder::TYPE_DOUBLE_BYTE |
int | HaruEncoder::TYPE_UNINITIALIZED |
int | HaruEncoder::UNKNOWN |
int | HaruEncoder::WMODE_HORIZONTAL |
int | HaruEncoder::WMODE_VERTICAL |
int | HaruEncoder::BYTE_TYPE_SINGLE |
int | HaruEncoder::BYTE_TYPE_LEAD |
int | HaruEncoder::BYTE_TYPE_TRAIL |
int | HaruEncoder::BYTE_TYPE_UNKNOWN |

Содержание

  • HaruEncoder::getByteType — Get the type of the byte in the text
  • HaruEncoder::getType — Get the type of the encoder
  • HaruEncoder::getUnicode — Convert the specified character to unicode
  • HaruEncoder::getWritingMode — Get the writing mode of the encoder


Get the type of the byte in the text

  • « HaruEncoder
  • HaruEncoder::getType »
  • PHP Manual
  • HaruEncoder
  • Get the type of the byte in the text

HaruEncoder::getByteType

(PECL haru >= 0.0.1)

HaruEncoder::getByteType — Get the type of the byte in the text

Описание

HaruEncoder::getByteType ( string $text , int $index ) : int

Get the type of the byte in the text.

Список параметров

text

The text.

index

The position in the text.

Возвращаемые значения

Returns the type of the byte in the text on the specified position. The result is one of the following values:

  • HaruEncoder::BYTE_TYPE_SINGLE - single byte character.
  • HaruEncoder::BYTE_TYPE_LEAD - lead byte of a double-byte character.
  • HaruEncoder::BYTE_TYPE_TRAIL - trailing byte of a double-byte character.
  • HaruEncoder::BYTE_TYPE_UNKNOWN - invalid encoder or cannot detect the byte type.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the type of the encoder

  • « HaruEncoder::getByteType
  • HaruEncoder::getUnicode »
  • PHP Manual
  • HaruEncoder
  • Get the type of the encoder

HaruEncoder::getType

(PECL haru >= 0.0.1)

HaruEncoder::getType — Get the type of the encoder

Описание

HaruEncoder::getType ( void ) : int

Get the type of the encoder.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the type of the encoder. The result is one of the following values:

  • HaruEncoder::TYPE_SINGLE_BYTE - the encoder is for single byte characters.
  • HaruEncoder::TYPE_DOUBLE_BYTE - the encoder is for multibyte characters.
  • HaruEncoder::TYPE_UNINITIALIZED - the encoder is not initialized.
  • HaruEncoder::UNKNOWN - the encoder is invalid.

Ошибки

Вызывает исключение HaruException при ошибке.


Convert the specified character to unicode

  • « HaruEncoder::getType
  • HaruEncoder::getWritingMode »
  • PHP Manual
  • HaruEncoder
  • Convert the specified character to unicode

HaruEncoder::getUnicode

(PECL haru >= 0.0.1)

HaruEncoder::getUnicode — Convert the specified character to unicode

Описание

HaruEncoder::getUnicode ( int $character ) : int

Converts the specified character to unicode.

Список параметров

character

The character code to convert.

Возвращаемые значения

Ошибки

Вызывает исключение HaruException при ошибке.


Get the writing mode of the encoder

  • « HaruEncoder::getUnicode
  • HaruOutline »
  • PHP Manual
  • HaruEncoder
  • Get the writing mode of the encoder

HaruEncoder::getWritingMode

(PECL haru >= 0.0.1)

HaruEncoder::getWritingMode — Get the writing mode of the encoder

Описание

HaruEncoder::getWritingMode ( void ) : int

Get the writing mode of the encoder.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the writing mode of the encoder. The result value is on of the following:

  • HaruEncoder::WMODE_HORIZONTAL - horizontal writing mode.
  • HaruEncoder::WMODE_VERTICAL - vertical writing mode.

Ошибки

Вызывает исключение HaruException при ошибке.


Класс HaruOutline

(PECL haru >= 0.0.1)

Введение

Класс Haru PDF Outline.

Обзор классов

HaruOutline {
/* Методы */
setDestination ( object $destination ) : bool
setOpened ( bool $opened ) : bool
}

Содержание

  • HaruOutline::setDestination — Set the destination for the outline
  • HaruOutline::setOpened — Set the initial state of the outline


Set the destination for the outline

  • « HaruOutline
  • HaruOutline::setOpened »
  • PHP Manual
  • HaruOutline
  • Set the destination for the outline

HaruOutline::setDestination

(PECL haru >= 0.0.1)

HaruOutline::setDestination — Set the destination for the outline

Описание

HaruOutline::setDestination ( object $destination ) : bool

Sets a destination object which becomes a target to jump to when the outline is clicked.

Список параметров

destination

A valid HaruDestination instance.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the initial state of the outline

  • « HaruOutline::setDestination
  • HaruAnnotation »
  • PHP Manual
  • HaruOutline
  • Set the initial state of the outline

HaruOutline::setOpened

(PECL haru >= 0.0.1)

HaruOutline::setOpened — Set the initial state of the outline

Описание

HaruOutline::setOpened ( bool $opened ) : bool

Defines whether this node is opened or not when the outline is displayed for the first time.

Список параметров

opened

TRUE means open, FALSE - closed.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Класс HaruAnnotation

(PECL haru >= 0.0.1)

Введение

Класс Haru PDF Annotation.

Обзор классов

HaruAnnotation {
/* Методы */
setBorderStyle ( float $width , int $dash_on , int $dash_off ) : bool
setHighlightMode ( int $mode ) : bool
setIcon ( int $icon ) : bool
setOpened ( bool $opened ) : bool
}

Предопределенные константы

Тип | Имя | Описание
int | HaruAnnotation::NO_HIGHLIGHT |
int | HaruAnnotation::INVERT_BOX |
int | HaruAnnotation::INVERT_BORDER |
int | HaruAnnotation::DOWN_APPEARANCE |
int | HaruAnnotation::ICON_COMMENT |
int | HaruAnnotation::ICON_KEY |
int | HaruAnnotation::ICON_NOTE |
int | HaruAnnotation::ICON_HELP |
int | HaruAnnotation::ICON_NEW_PARAGRAPH |
int | HaruAnnotation::ICON_PARAGRAPH |
int | HaruAnnotation::ICON_INSERT |

Содержание

  • HaruAnnotation::setBorderStyle — Set the border style of the annotation
  • HaruAnnotation::setHighlightMode — Set the highlighting mode of the annotation
  • HaruAnnotation::setIcon — Set the icon style of the annotation
  • HaruAnnotation::setOpened — Set the initial state of the annotation


Set the border style of the annotation

  • « HaruAnnotation
  • HaruAnnotation::setHighlightMode »
  • PHP Manual
  • HaruAnnotation
  • Set the border style of the annotation

HaruAnnotation::setBorderStyle

(PECL haru >= 0.0.1)

HaruAnnotation::setBorderStyle — Set the border style of the annotation

Описание

HaruAnnotation::setBorderStyle ( float $width , int $dash_on , int $dash_off ) : bool

Defines the style of the border of the annotation. This function may be used with link annotations only.

Список параметров

width

The width of the border line.

dash_on

The dash style.

dash_off

The dash style.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the highlighting mode of the annotation

  • « HaruAnnotation::setBorderStyle
  • HaruAnnotation::setIcon »
  • PHP Manual
  • HaruAnnotation
  • Set the highlighting mode of the annotation

HaruAnnotation::setHighlightMode

(PECL haru >= 0.0.1)

HaruAnnotation::setHighlightMode — Set the highlighting mode of the annotation

Описание

HaruAnnotation::setHighlightMode ( int $mode ) : bool

Defines the appearance of the annotation when clicked. This function may be used with link annotations only.

Список параметров

mode

The highlighting mode of the annotation. Can take only these values:

  • HaruAnnotation::NO_HIGHLIGHT - no highlighting.
  • HaruAnnotation::INVERT_BOX - invert the contents of the annotation.
  • HaruAnnotation::INVERT_BORDER - invert the border of the annotation.
  • HaruAnnotation::DOWN_APPEARANCE - dent the annotation.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the icon style of the annotation

  • « HaruAnnotation::setHighlightMode
  • HaruAnnotation::setOpened »
  • PHP Manual
  • HaruAnnotation
  • Set the icon style of the annotation

HaruAnnotation::setIcon

(PECL haru >= 0.0.1)

HaruAnnotation::setIcon — Set the icon style of the annotation

Описание

HaruAnnotation::setIcon ( int $icon ) : bool

Defines the style of the annotation icon. This function may be used with text annotations only.

Список параметров

icon

The style of the icon. Can take only these values:

  • HaruAnnotation::ICON_COMMENT
  • HaruAnnotation::ICON_KEY
  • HaruAnnotation::ICON_NOTE
  • HaruAnnotation::ICON_HELP
  • HaruAnnotation::ICON_NEW_PARAGRAPH
  • HaruAnnotation::ICON_PARAGRAPH
  • HaruAnnotation::ICON_INSERT

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the initial state of the annotation

  • « HaruAnnotation::setIcon
  • HaruDestination »
  • PHP Manual
  • HaruAnnotation
  • Set the initial state of the annotation

HaruAnnotation::setOpened

(PECL haru >= 0.0.1)

HaruAnnotation::setOpened — Set the initial state of the annotation

Описание

HaruAnnotation::setOpened ( bool $opened ) : bool

Defines whether the annotation is initially displayed open. This function may be used with text annotations only.

Список параметров

opened

TRUE means the annotation is initially displayed open, FALSE - means it's closed.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Класс HaruDestination

(PECL haru >= 0.0.1)

Введение

Класс Haru PDF Destination.

Обзор классов

HaruDestination {
/* Методы */
setFit ( void ) : bool
setFitB ( void ) : bool
setFitBH ( float $top ) : bool
setFitBV ( float $left ) : bool
setFitH ( float $top ) : bool
setFitR ( float $left , float $bottom , float $right , float $top ) : bool
setFitV ( float $left ) : bool
setXYZ ( float $left , float $top , float $zoom ) : bool
}

Содержание

  • HaruDestination::setFit — Set the appearance of the page to fit the window
  • HaruDestination::setFitB — Set the appearance of the page to fit the bounding box of the page within the window
  • HaruDestination::setFitBH — Set the appearance of the page to fit the width of the bounding box
  • HaruDestination::setFitBV — Set the appearance of the page to fit the height of the boudning box
  • HaruDestination::setFitH — Set the appearance of the page to fit the window width
  • HaruDestination::setFitR — Set the appearance of the page to fit the specified rectangle
  • HaruDestination::setFitV — Set the appearance of the page to fit the window height
  • HaruDestination::setXYZ — Set the appearance of the page


Set the appearance of the page to fit the window

  • « HaruDestination
  • HaruDestination::setFitB »
  • PHP Manual
  • HaruDestination
  • Set the appearance of the page to fit the window

HaruDestination::setFit

(PECL haru >= 0.0.1)

HaruDestination::setFit — Set the appearance of the page to fit the window

Описание

HaruDestination::setFit ( void ) : bool

Defines the appearance of the page to fit the window.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the appearance of the page to fit the bounding box of the page within the window

  • « HaruDestination::setFit
  • HaruDestination::setFitBH »
  • PHP Manual
  • HaruDestination
  • Set the appearance of the page to fit the bounding box of the page within the window

HaruDestination::setFitB

(PECL haru >= 0.0.1)

HaruDestination::setFitB — Set the appearance of the page to fit the bounding box of the page within the window

Описание

HaruDestination::setFitB ( void ) : bool

Defines the appearance of the page to fit the bounding box of the page within the window.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the appearance of the page to fit the width of the bounding box

  • « HaruDestination::setFitB
  • HaruDestination::setFitBV »
  • PHP Manual
  • HaruDestination
  • Set the appearance of the page to fit the width of the bounding box

HaruDestination::setFitBH

(PECL haru >= 0.0.1)

HaruDestination::setFitBH — Set the appearance of the page to fit the width of the bounding box

Описание

HaruDestination::setFitBH ( float $top ) : bool

Defines the appearance of the page to magnifying to fit the width of the bounding box and setting the top position of the page to the value of top.

Список параметров

top

The top coordinates of the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the appearance of the page to fit the height of the boudning box

  • « HaruDestination::setFitBH
  • HaruDestination::setFitH »
  • PHP Manual
  • HaruDestination
  • Set the appearance of the page to fit the height of the boudning box

HaruDestination::setFitBV

(PECL haru >= 0.0.1)

HaruDestination::setFitBV — Set the appearance of the page to fit the height of the boudning box

Описание

HaruDestination::setFitBV ( float $left ) : bool

Defines the appearance of the page to magnifying to fit the height of the bounding box and setting the left position of the page to the value of left.

Список параметров

left

The left coordinates of the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the appearance of the page to fit the window width

  • « HaruDestination::setFitBV
  • HaruDestination::setFitR »
  • PHP Manual
  • HaruDestination
  • Set the appearance of the page to fit the window width

HaruDestination::setFitH

(PECL haru >= 0.0.1)

HaruDestination::setFitH — Set the appearance of the page to fit the window width

Описание

HaruDestination::setFitH ( float $top ) : bool

Defines the appearance of the page to fit the window width and sets the top position of the page to the value of top.

Список параметров

top

The top position of the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the appearance of the page to fit the specified rectangle

  • « HaruDestination::setFitH
  • HaruDestination::setFitV »
  • PHP Manual
  • HaruDestination
  • Set the appearance of the page to fit the specified rectangle

HaruDestination::setFitR

(PECL haru >= 0.0.1)

HaruDestination::setFitR — Set the appearance of the page to fit the specified rectangle

Описание

HaruDestination::setFitR ( float $left , float $bottom , float $right , float $top ) : bool

Defines the appearance of the page to fit the rectangle by the parameters.

Список параметров

left

The left coordinates of the page.

bottom

The bottom coordinates of the page.

right

The right coordinates of the page.

top

The top coordinates of the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the appearance of the page to fit the window height

  • « HaruDestination::setFitR
  • HaruDestination::setXYZ »
  • PHP Manual
  • HaruDestination
  • Set the appearance of the page to fit the window height

HaruDestination::setFitV

(PECL haru >= 0.0.1)

HaruDestination::setFitV — Set the appearance of the page to fit the window height

Описание

HaruDestination::setFitV ( float $left ) : bool

Defines the appearance of the page to fit the window height.

Список параметров

left

The left position of the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the appearance of the page

  • « HaruDestination::setFitV
  • Ming »
  • PHP Manual
  • HaruDestination
  • Set the appearance of the page

HaruDestination::setXYZ

(PECL haru >= 0.0.1)

HaruDestination::setXYZ — Set the appearance of the page

Описание

HaruDestination::setXYZ ( float $left , float $top , float $zoom ) : bool

Defines the appearance of the page using three parameters: left, top and zoom.

Список параметров

left

The left position of the page.

top

The top position of the page.

zoom

The magnification factor. The value must be between 0.08 (8%) and 32 (3200%).

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Ming (flash)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • SWFAction Examples
    • SWFSPrite basic examples
  • Ming Функции
    • ming_keypress — Возвращает флаг действия для keyPress(char)
    • ming_setcubicthreshold — Установить кубический порог
    • ming_setscale — Установить глобальный коэффициент масштабирования
    • ming_setswfcompression — Устанавливает сжатие вывода SWF
    • ming_useconstants — Использовать постоянный пул
    • ming_useswfversion — Устанавливает версию SWF
  • SWFAction — The SWFAction class
    • SWFAction::__construct — Создает новый объект SWFAction
  • SWFBitmap — The SWFBitmap class
    • SWFBitmap::__construct — Загружает объект Bitmap
    • SWFBitmap::getHeight — Возвращает высоту растрового изображения
    • SWFBitmap::getWidth — Возвращает ширину растрового изображения
  • SWFButton — The SWFButton class
    • SWFButton::addAction — Adds an action
    • SWFButton::addASound — Associates a sound with a button transition
    • SWFButton::addShape — Adds a shape to a button
    • SWFButton::__construct — Creates a new Button
    • SWFButton::setAction — Sets the action
    • SWFButton::setDown — Alias for addShape(shape, SWFBUTTON_DOWN)
    • SWFButton::setHit — Alias for addShape(shape, SWFBUTTON_HIT)
    • SWFButton::setMenu — Enable track as menu button behaviour
    • SWFButton::setOver — Alias for addShape(shape, SWFBUTTON_OVER)
    • SWFButton::setUp — Alias for addShape(shape, SWFBUTTON_UP)
  • SWFDisplayItem — The SWFDisplayItem class
    • SWFDisplayItem::addAction — Adds this SWFAction to the given SWFSprite instance
    • SWFDisplayItem::addColor — Adds the given color to this item's color transform
    • SWFDisplayItem::endMask — Another way of defining a MASK layer
    • SWFDisplayItem::getRot — Описание
    • SWFDisplayItem::getX — Описание
    • SWFDisplayItem::getXScale — Описание
    • SWFDisplayItem::getXSkew — Описание
    • SWFDisplayItem::getY — Описание
    • SWFDisplayItem::getYScale — Описание
    • SWFDisplayItem::getYSkew — Описание
    • 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::setMaskLevel — Defines a MASK layer at level
    • SWFDisplayItem::setMatrix — Sets the item's transform matrix
    • 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
  • SWFFill — The SWFFill class
    • 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
  • SWFFont — The SWFFont class
    • SWFFont::__construct — Loads a font definition
    • SWFFont::getAscent — Returns the ascent of the font, or 0 if not available
    • SWFFont::getDescent — Returns the descent of the font, or 0 if not available
    • SWFFont::getLeading — Returns the leading of the font, or 0 if not available
    • SWFFont::getShape — Returns the glyph shape of a char as a text string
    • SWFFont::getUTF8Width — Calculates the width of the given string in this font at full height
    • SWFFont::getWidth — Returns the string's width
  • SWFFontChar — The SWFFontChar class
    • SWFFontChar::addChars — Добавляет символов в шрифт для экспортируемого шрифта
    • SWFFontChar::addUTF8Chars — Добавляет символов в шрифт для экспортируемого шрифта
  • SWFGradient — The SWFGradient class
    • SWFGradient::addEntry — Добавляет запись в список градиентов
    • SWFGradient::__construct — Создает объект градиента
  • SWFMorph — The SWFMorph class
    • SWFMorph::__construct — Создает новый объект SWFMorph
    • SWFMorph::getShape1 — Получает дескриптор к начальной форме
    • SWFMorph::getShape2 — Возвращает дескриптор к конечной форме
  • SWFMovie — The SWFMovie class
    • SWFMovie::add — Adds any type of data to a movie
    • SWFMovie::addExport — Описание
    • SWFMovie::addFont — Описание
    • SWFMovie::__construct — Creates a new movie object, representing an SWF version 4 movie
    • SWFMovie::importChar — Описание
    • SWFMovie::importFont — Описание
    • SWFMovie::labelFrame — Labels a frame
    • 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 the SWF movie in a file
    • SWFMovie::saveToFile — Описание
    • 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::startSound — Описание
    • SWFMovie::stopSound — Описание
    • SWFMovie::streamMP3 — Streams a MP3 file
    • SWFMovie::writeExports — Описание
  • SWFPrebuiltClip — The SWFPrebuiltClip class
    • SWFPrebuiltClip::__construct — Возвращает объект класса SWFPrebuiltClip
  • SWFShape — The SWFShape class
    • SWFShape::addFill — Adds a solid fill to the shape
    • SWFShape::__construct — Creates a new shape object
    • SWFShape::drawArc — Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o'clock
    • SWFShape::drawCircle — Draws a circle of radius r centered at the current location, in a counter-clockwise fashion
    • SWFShape::drawCubic — Draws a cubic bezier curve using the current position and the three given points as control points
    • SWFShape::drawCubicTo — Draws a cubic bezier curve using the current position and the three given points as control points
    • SWFShape::drawCurve — Draws a curve (relative)
    • SWFShape::drawCurveTo — Draws a curve
    • SWFShape::drawGlyph — Draws the first character in the given string into the shape using the glyph definition from the given font
    • 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
  • SWFSound — The SWFSound class
    • SWFSound::__construct — Возвращает новый объект SWFSound из заданного файла
  • SWFSoundInstance — The SWFSoundInstance class
    • SWFSoundInstance::loopCount — Описание
    • SWFSoundInstance::loopInPoint — Описание
    • SWFSoundInstance::loopOutPoint — Описание
    • SWFSoundInstance::noMultiple — Описание
  • SWFSprite — The SWFSprite class
    • SWFSprite::add — Добавляет объект в спрайт
    • SWFSprite::__construct — Создает видеоклип (спрайт)
    • SWFSprite::labelFrame — Рамка для надписей
    • SWFSprite::nextFrame — Переходит к следующему кадру анимации
    • SWFSprite::remove — Удаляет объект в спрайте
    • SWFSprite::setFrames — Устанавливает общее количество кадров в анимации
    • SWFSprite::startSound — Описание
    • SWFSprite::stopSound — Описание
  • SWFText — The SWFText class
    • SWFText::addString — Рисует строку
    • SWFText::addUTF8String — Записывает данный текст в этот объект SWFText в текущей позиции пера, используя текущий шрифт, высоту, интервал и цвет
    • SWFText::__construct — Создает новый объект SWFText
    • SWFText::getAscent — Возвращает значение надстрочного элемента текущего шрифта и размера или 0, если недоступно
    • SWFText::getDescent — Возвращает значение подстрочного элемента текущего шрифта и размера или 0, если недоступно
    • SWFText::getLeading — Возвращает межстрочный интервал в текущем размере или 0, если он недоступен
    • SWFText::getUTF8Width — Вычисляет ширину данной строки в текстовых объектах текущего шрифта и размера
    • SWFText::getWidth — Вычисляет ширину строки
    • SWFText::moveTo — Перемещает перо
    • SWFText::setColor — Устанавливает текущий цвет текста
    • SWFText::setFont — Устанавливает текущий шрифт
    • SWFText::setHeight — Устанавливает текущую высоту шрифта
    • SWFText::setSpacing — Устанавливает текущий интервал между шрифтами
  • SWFTextField — The SWFTextField class
    • SWFTextField::addChars — Добавляет символы в шрифт, который будет доступен в текстовом поле
    • SWFTextField::addString — Объединение данной строки в текстовое поле
    • SWFTextField::align — Устанавливает выравнивание текстового поля
    • SWFTextField::__construct — Создает объект текстового поля
    • SWFTextField::setBounds — Устанавливает ширину и высоту текстового поля
    • SWFTextField::setColor — Устанавливает цвет текстового поля
    • SWFTextField::setFont — Устанавливает шрифт текстового поля
    • SWFTextField::setHeight — Устанавливает высоту шрифта текстового поля
    • SWFTextField::setIndentation — Устанавливает отступ первой строки
    • SWFTextField::setLeftMargin — Устанавливает ширину левого поля в текстовом поле
    • SWFTextField::setLineSpacing — Устанавливает межстрочный интервал текстового поля
    • SWFTextField::setMargins — Устанавливает поля в текстовом поле
    • SWFTextField::setName — Устанавливает имя переменной
    • SWFTextField::setPadding — Устанавливает отступ для текстового поля
    • SWFTextField::setRightMargin — Устанавливает ширину правого поля в текстовом поле
  • SWFVideoStream — The SWFVideoStream class
    • SWFVideoStream::__construct — Возвращает объект класса SWFVideoStream
    • SWFVideoStream::getNumFrames — Возвращает количество кадров в видео-файле
    • SWFVideoStream::setDimension — Устанавливает размер видео


Введение

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 at » http://www.libming.org/.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.3.0.


Требования

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://www.libming.org/ 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.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/ming.

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.3.0

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MING_NEW (integer)
MING_ZLIB (integer)
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)


  • « Предопределенные константы
  • SWFAction Examples »
  • PHP Manual
  • Ming
  • Примеры

Примеры

Содержание

  • SWFAction Examples
  • SWFSPrite basic examples


SWFAction Examples

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();
?>


SWFSPrite basic examples

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();
?>


Ming Функции

Содержание

  • ming_keypress — Возвращает флаг действия для keyPress(char)
  • ming_setcubicthreshold — Установить кубический порог
  • ming_setscale — Установить глобальный коэффициент масштабирования
  • ming_setswfcompression — Устанавливает сжатие вывода SWF
  • ming_useconstants — Использовать постоянный пул
  • ming_useswfversion — Устанавливает версию SWF


Возвращает флаг действия для keyPress(char)

  • « Ming Функции
  • ming_setcubicthreshold »
  • PHP Manual
  • Ming Функции
  • Возвращает флаг действия для keyPress(char)

ming_keypress

(PHP 5 < 5.3.0, PECL ming SVN)

ming_keypress — Возвращает флаг действия для keyPress(char)

Описание

ming_keypress ( string $char ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Установить кубический порог

  • « ming_keypress
  • ming_setscale »
  • PHP Manual
  • Ming Функции
  • Установить кубический порог

ming_setcubicthreshold

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PECL ming SVN)

ming_setcubicthreshold — Установить кубический порог

Описание

ming_setcubicthreshold ( int $threshold ) : void

Задает пороговую ошибку для рисования кубических Безье.

Список параметров

threshold

Порог (предел). Чем ниже, тем точнее, а следовательно и больше размер файла.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Установить глобальный коэффициент масштабирования

  • « ming_setcubicthreshold
  • ming_setswfcompression »
  • PHP Manual
  • Ming Функции
  • Установить глобальный коэффициент масштабирования

ming_setscale

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PECL ming SVN)

ming_setscale — Установить глобальный коэффициент масштабирования

Описание

ming_setscale ( float $scale ) : void

Задает масштаб вывода SWF. Внутри SWF-файла координаты измеряются в твипах (twips), а не в пикселях. В одном пикселе 20 твипов.

Список параметров

scale

Масштаб, который нужно установить.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает сжатие вывода SWF

  • « ming_setscale
  • ming_useconstants »
  • PHP Manual
  • Ming Функции
  • Устанавливает сжатие вывода SWF

ming_setswfcompression

(PHP 5.2.1-5.3.0, PHP 7, PECL ming SVN)

ming_setswfcompression — Устанавливает сжатие вывода SWF

Описание

ming_setswfcompression ( int $level ) : void

Задает уровень сжатия выходного SWF-файла.

Список параметров

level

Новый уровень сжатия. Должно быть значение от 1 до 9 включительно.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Использовать постоянный пул

  • « ming_setswfcompression
  • ming_useswfversion »
  • PHP Manual
  • Ming Функции
  • Использовать постоянный пул

ming_useconstants

(PHP 5 < 5.3.0, PECL ming SVN)

ming_useconstants — Использовать постоянный пул

Описание

ming_useconstants ( int $use ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает версию SWF

  • « ming_useconstants
  • SWFAction »
  • PHP Manual
  • Ming Функции
  • Устанавливает версию SWF

ming_useswfversion

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ming SVN)

ming_useswfversion — Устанавливает версию SWF

Описание

ming_useswfversion ( int $version ) : void

Устанавливает версию SWF для использования в клипе. Это влияет на поведение сценария действий.

Список параметров

version

SWF-версия для использования.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ming_useswfversion()

<?php

$movie = new SWFMovie();
ming_useswfversion(4); // Flash 4

?>


The SWFAction class

(PHP 5 < 5.3.0, PECL ming SVN)

Введение

SWFAction.

Обзор классов

SWFAction {
/* Методы */
__construct ( string $script )
}

Описание

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.

Содержание

  • SWFAction::__construct — Создает новый объект SWFAction


Создает новый объект SWFAction

  • « SWFAction
  • SWFBitmap »
  • PHP Manual
  • SWFAction
  • Создает новый объект SWFAction

SWFAction::__construct

(PHP 5 < 5.3.0, PECL ming SVN)

SWFAction::__construct — Создает новый объект SWFAction

Описание

SWFAction::__construct ( string $script )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Создает новый объект SWFAction и компилирует в него заданный скрипт script.

Список параметров

script

Сниппет ActionScript, ассоциированный с SWFAction. Более подробно читайте в разделе SWFAction.


The SWFBitmap class

(PHP 5 < 5.3.0, PECL ming SVN)

Введение

SWFBitmap.

Обзор классов

SWFBitmap {
/* Методы */
__construct ( mixed $file [, mixed $alphafile ] )
getHeight ( void ) : float
getWidth ( void ) : float
}

Содержание

  • SWFBitmap::__construct — Загружает объект Bitmap
  • SWFBitmap::getHeight — Возвращает высоту растрового изображения
  • SWFBitmap::getWidth — Возвращает ширину растрового изображения


Загружает объект Bitmap

  • « SWFBitmap
  • SWFBitmap::getHeight »
  • PHP Manual
  • SWFBitmap
  • Загружает объект Bitmap

SWFBitmap::__construct

(PHP 5 < 5.3.0, PECL ming SVN)

SWFBitmap::__construct — Загружает объект Bitmap

Описание

SWFBitmap::__construct ( mixed $file [, mixed $alphafile ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Создает новый объект SWFBitmap из переданного параметра file.

Список параметров

Для обоих параметров можно указать файловый указатель, возвращаемый функцией fopen(), или данные изображения в виде двоичной строки.

file

Замечание:

Мы можем работать только с исходными jpeg-изображениями (кадр 0), без исходных неоптимизированных jpeg-изображениями или прогрессивной разверткой!

Вы не можете импортировать изображения в формате png напрямую, однако, вам нужно использовать утилиту png2dbl для создания файла dbl ("define bits lossless") из png. Причина этого в том, что я не хочу, чтобы зависимость png в ming - autoconf разрешило это, но это еще не установлено.

alphafile

Файл MSK, который будет использоваться в качестве альфа-маски для JPEG-изображения.

Примеры

Пример #1 Импортирование DBL-файла

<?php
$s = new SWFShape();
$f = $s->addFill(new SWFBitmap(file_get_contents("image.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();
?>

Пример #2 Использование альфа-маски

<?php

$s = new SWFShape();

// файл с расширением msk, сгенерированный утилитой "gif2mask"
$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);

// нарисовать фон шахматной доски
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::__construct
  • SWFBitmap::getWidth »
  • PHP Manual
  • SWFBitmap
  • Возвращает высоту растрового изображения

SWFBitmap::getHeight

(PHP 5 < 5.3.0, PECL ming SVN)

SWFBitmap::getHeight — Возвращает высоту растрового изображения

Описание

SWFBitmap::getHeight ( void ) : float
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Возвращает высоту растрового изображения.

Возвращаемые значения

Возвращает высоту растрового изображения в пикселях.

Смотрите также

  • SWFBitmap::getWidth() - Возвращает ширину растрового изображения


Возвращает ширину растрового изображения

  • « SWFBitmap::getHeight
  • SWFButton »
  • PHP Manual
  • SWFBitmap
  • Возвращает ширину растрового изображения

SWFBitmap::getWidth

(PHP 5 < 5.3.0, PECL ming SVN)

SWFBitmap::getWidth — Возвращает ширину растрового изображения

Описание

SWFBitmap::getWidth ( void ) : float
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Возвращает ширину растрового изображения.

Возвращаемые значения

Возвращает ширину растрового изображения в пикселях.

Смотрите также

  • SWFBitmap::getHeight() - Возвращает высоту растрового изображения


The SWFButton class

(PHP 5 < 5.3.0, PECL ming SVN)

Введение

SWFButton.

Обзор классов

SWFButton {
/* Методы */
addAction ( SWFAction $action , int $flags ) : void
addASound ( SWFSound $sound , int $flags ) : SWFSoundInstance
addShape ( SWFShape $shape , int $flags ) : void
__construct ( void )
setAction ( SWFAction $action ) : void
setDown ( SWFShape $shape ) : void
setHit ( SWFShape $shape ) : void
setMenu ( int $flag ) : void
setOver ( SWFShape $shape ) : void
setUp ( SWFShape $shape ) : void
}

Содержание

  • SWFButton::addAction — Adds an action
  • SWFButton::addASound — Associates a sound with a button transition
  • SWFButton::addShape — Adds a shape to a button
  • SWFButton::__construct — Creates a new Button
  • SWFButton::setAction — Sets the action
  • SWFButton::setDown — Alias for addShape(shape, SWFBUTTON_DOWN)
  • SWFButton::setHit — Alias for addShape(shape, SWFBUTTON_HIT)
  • SWFButton::setMenu — Enable track as menu button behaviour
  • SWFButton::setOver — Alias for addShape(shape, SWFBUTTON_OVER)
  • SWFButton::setUp — Alias for addShape(shape, SWFBUTTON_UP)


Adds an action

  • « SWFButton
  • SWFButton::addASound »
  • PHP Manual
  • SWFButton
  • Adds an action

SWFButton::addAction

(PHP 5 < 5.3.0, PECL ming SVN)

SWFButton::addAction — Adds an action

Описание

SWFButton::addAction ( SWFAction $action , int $flags ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Adds the given action to the button for the given conditions.

Список параметров

action

An SWFAction, returned by SWFAction::__construct().

flags

The following flags are valid: SWFBUTTON_MOUSEOVER, SWFBUTTON_MOUSEOUT, SWFBUTTON_MOUSEUP, SWFBUTTON_MOUSEUPOUTSIDE, SWFBUTTON_MOUSEDOWN, SWFBUTTON_DRAGOUT and SWFBUTTON_DRAGOVER.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFButton::addShape() - Adds a shape to a button
  • SWFAction


Associates a sound with a button transition

  • « SWFButton::addAction
  • SWFButton::addShape »
  • PHP Manual
  • SWFButton
  • Associates a sound with a button transition

SWFButton::addASound

(PHP 5 < 5.3.0, PECL ming SVN)

SWFButton::addASound — Associates a sound with a button transition

Описание

SWFButton::addASound ( SWFSound $sound , int $flags ) : SWFSoundInstance
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Adds a shape to a button

  • « SWFButton::addASound
  • SWFButton::__construct »
  • PHP Manual
  • SWFButton
  • Adds a shape to a button

SWFButton::addShape

(PHP 5 < 5.3.0, PECL ming SVN)

SWFButton::addShape — Adds a shape to a button

Описание

SWFButton::addShape ( SWFShape $shape , int $flags ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Adds the given shape to the button.

Список параметров

shape

An SWFShape instance

flags

The following flags are valid: SWFBUTTON_UP, SWFBUTTON_OVER, SWFBUTTON_DOWN and 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.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Creates a new Button

  • « SWFButton::addShape
  • SWFButton::setAction »
  • PHP Manual
  • SWFButton
  • Creates a new Button

SWFButton::__construct

(PHP 5 < 5.3.0, PECL ming SVN)

SWFButton::__construct — Creates a new Button

Описание

SWFButton::__construct ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Creates a new Button.

Примеры

This simple example will show your usual interactions with buttons : rollover, rollon, mouseup, mousedown, noaction.

Пример #1 Usual interactions with buttons

<?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 Drag 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();
?>


Sets the action

  • « SWFButton::__construct
  • SWFButton::setDown »
  • PHP Manual
  • SWFButton
  • Sets the action

SWFButton::setAction

(PHP 5 < 5.3.0, PECL ming SVN)

SWFButton::setAction — Sets the action

Описание

SWFButton::setAction ( SWFAction $action ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the action to be performed when the button is clicked.

This is a shortcut for SWFButton::addAction() called with the SWFBUTTON_MOUSEUP flag.

Список параметров

action

An SWFAction, returned by SWFAction::__construct().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFButton::addAction() - Adds an action
  • SWFAction


Alias for addShape(shape, SWFBUTTON_DOWN)

  • « SWFButton::setAction
  • SWFButton::setHit »
  • PHP Manual
  • SWFButton
  • Alias for addShape(shape, SWFBUTTON_DOWN)

SWFButton::setDown

(PHP 5 < 5.3.0, PECL ming SVN)

SWFButton::setDown — Alias for addShape(shape, SWFBUTTON_DOWN)

Описание

SWFButton::setDown ( SWFShape $shape ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbutton::setdown() alias for addShape(shape, SWFBUTTON_DOWN).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFButton::addShape() - Adds a shape to a button
  • SWFAction


Alias for addShape(shape, SWFBUTTON_HIT)

  • « SWFButton::setDown
  • SWFButton::setMenu »
  • PHP Manual
  • SWFButton
  • Alias for addShape(shape, SWFBUTTON_HIT)

SWFButton::setHit

(PHP 5 < 5.3.0, PECL ming SVN)

SWFButton::setHit — Alias for addShape(shape, SWFBUTTON_HIT)

Описание

SWFButton::setHit ( SWFShape $shape ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbutton::sethit() alias for addShape(shape, SWFBUTTON_HIT).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFButton::addShape() - Adds a shape to a button
  • SWFAction


Enable track as menu button behaviour

  • « SWFButton::setHit
  • SWFButton::setOver »
  • PHP Manual
  • SWFButton
  • Enable track as menu button behaviour

SWFButton::setMenu

(PHP 5 < 5.3.0, PECL ming SVN)

SWFButton::setMenu — Enable track as menu button behaviour

Описание

SWFButton::setMenu ( int $flag ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

flag

This parameter can be used for a slight different behavior of buttons. You can set it to 0 (off) or 1 (on).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Alias for addShape(shape, SWFBUTTON_OVER)

  • « SWFButton::setMenu
  • SWFButton::setUp »
  • PHP Manual
  • SWFButton
  • Alias for addShape(shape, SWFBUTTON_OVER)

SWFButton::setOver

(PHP 5 < 5.3.0, PECL ming SVN)

SWFButton::setOver — Alias for addShape(shape, SWFBUTTON_OVER)

Описание

SWFButton::setOver ( SWFShape $shape ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbutton::setover() alias for addShape(shape, SWFBUTTON_OVER).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFButton::addShape() - Adds a shape to a button
  • SWFAction


Alias for addShape(shape, SWFBUTTON_UP)

  • « SWFButton::setOver
  • SWFDisplayItem »
  • PHP Manual
  • SWFButton
  • Alias for addShape(shape, SWFBUTTON_UP)

SWFButton::setUp

(PHP 5 < 5.3.0, PECL ming SVN)

SWFButton::setUp — Alias for addShape(shape, SWFBUTTON_UP)

Описание

SWFButton::setUp ( SWFShape $shape ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbutton::setup() alias for addShape(shape, SWFBUTTON_UP).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFButton::addShape() - Adds a shape to a button
  • SWFAction


The SWFDisplayItem class

(PHP 5 < 5.3.0, PECL ming SVN)

Введение

SWFDisplayItem.

Обзор классов

SWFDisplayItem {
/* Методы */
addAction ( SWFAction $action , int $flags ) : void
addColor ( int $red , int $green , int $blue [, int $a ] ) : void
endMask ( void ) : void
getRot ( void ) : float
getX ( void ) : float
getXScale ( void ) : float
getXSkew ( void ) : float
getY ( void ) : float
getYScale ( void ) : float
getYSkew ( void ) : float
move ( float $dx , float $dy ) : void
moveTo ( float $x , float $y ) : void
multColor ( float $red , float $green , float $blue [, float $a ] ) : void
remove ( void ) : void
rotate ( float $angle ) : void
rotateTo ( float $angle ) : void
scale ( float $dx , float $dy ) : void
scaleTo ( float $x [, float $y ] ) : void
setDepth ( int $depth ) : void
setMaskLevel ( int $level ) : void
setMatrix ( float $a , float $b , float $c , float $d , float $x , float $y ) : void
setName ( string $name ) : void
setRatio ( float $ratio ) : void
skewX ( float $ddegrees ) : void
skewXTo ( float $degrees ) : void
skewY ( float $ddegrees ) : void
skewYTo ( float $degrees ) : void
}

Содержание

  • SWFDisplayItem::addAction — Adds this SWFAction to the given SWFSprite instance
  • SWFDisplayItem::addColor — Adds the given color to this item's color transform
  • SWFDisplayItem::endMask — Another way of defining a MASK layer
  • SWFDisplayItem::getRot — Описание
  • SWFDisplayItem::getX — Описание
  • SWFDisplayItem::getXScale — Описание
  • SWFDisplayItem::getXSkew — Описание
  • SWFDisplayItem::getY — Описание
  • SWFDisplayItem::getYScale — Описание
  • SWFDisplayItem::getYSkew — Описание
  • 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::setMaskLevel — Defines a MASK layer at level
  • SWFDisplayItem::setMatrix — Sets the item's transform matrix
  • 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


Adds this SWFAction to the given SWFSprite instance

  • « SWFDisplayItem
  • SWFDisplayItem::addColor »
  • PHP Manual
  • SWFDisplayItem
  • Adds this SWFAction to the given SWFSprite instance

SWFDisplayItem::addAction

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::addAction — Adds this SWFAction to the given SWFSprite instance

Описание

SWFDisplayItem::addAction ( SWFAction $action , int $flags ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

action

An SWFAction, returned by SWFAction::__construct().

flags

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFAction


Adds the given color to this item's color transform

  • « SWFDisplayItem::addAction
  • SWFDisplayItem::endMask »
  • PHP Manual
  • SWFDisplayItem
  • Adds the given color to this item's color transform

SWFDisplayItem::addColor

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::addColor — Adds the given color to this item's color transform

Описание

SWFDisplayItem::addColor ( int $red , int $green , int $blue [, int $a ] ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Another way of defining a MASK layer

  • « SWFDisplayItem::addColor
  • SWFDisplayItem::getRot »
  • PHP Manual
  • SWFDisplayItem
  • Another way of defining a MASK layer

SWFDisplayItem::endMask

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::endMask — Another way of defining a MASK layer

Описание

SWFDisplayItem::endMask ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « SWFDisplayItem::endMask
  • SWFDisplayItem::getX »
  • PHP Manual
  • SWFDisplayItem
  • Описание

SWFDisplayItem::getRot

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::getRot —

Описание

SWFDisplayItem::getRot ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Описание

  • « SWFDisplayItem::getRot
  • SWFDisplayItem::getXScale »
  • PHP Manual
  • SWFDisplayItem
  • Описание

SWFDisplayItem::getX

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::getX —

Описание

SWFDisplayItem::getX ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFDisplayItem::getY() - Описание


Описание

  • « SWFDisplayItem::getX
  • SWFDisplayItem::getXSkew »
  • PHP Manual
  • SWFDisplayItem
  • Описание

SWFDisplayItem::getXScale

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::getXScale —

Описание

SWFDisplayItem::getXScale ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFDisplayItem::getYScale() - Описание


Описание

  • « SWFDisplayItem::getXScale
  • SWFDisplayItem::getY »
  • PHP Manual
  • SWFDisplayItem
  • Описание

SWFDisplayItem::getXSkew

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::getXSkew —

Описание

SWFDisplayItem::getXSkew ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFDisplayItem::getYSkew() - Описание


Описание

  • « SWFDisplayItem::getXSkew
  • SWFDisplayItem::getYScale »
  • PHP Manual
  • SWFDisplayItem
  • Описание

SWFDisplayItem::getY

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::getY —

Описание

SWFDisplayItem::getY ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFDisplayItem::getX() - Описание


Описание

  • « SWFDisplayItem::getY
  • SWFDisplayItem::getYSkew »
  • PHP Manual
  • SWFDisplayItem
  • Описание

SWFDisplayItem::getYScale

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::getYScale —

Описание

SWFDisplayItem::getYScale ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFDisplayItem::getXScale() - Описание


Описание

  • « SWFDisplayItem::getYScale
  • SWFDisplayItem::move »
  • PHP Manual
  • SWFDisplayItem
  • Описание

SWFDisplayItem::getYSkew

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::getYSkew —

Описание

SWFDisplayItem::getYSkew ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFDisplayItem::getXSkew() - Описание


Moves object in relative coordinates

  • « SWFDisplayItem::getYSkew
  • SWFDisplayItem::moveTo »
  • PHP Manual
  • SWFDisplayItem
  • Moves object in relative coordinates

SWFDisplayItem::move

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::move — Moves object in relative coordinates

Описание

SWFDisplayItem::move ( float $dx , float $dy ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::moveTo() - Moves object in global coordinates


Moves object in global coordinates

  • « SWFDisplayItem::move
  • SWFDisplayItem::multColor »
  • PHP Manual
  • SWFDisplayItem
  • Moves object in global coordinates

SWFDisplayItem::moveTo

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::moveTo — Moves object in global coordinates

Описание

SWFDisplayItem::moveTo ( float $x , float $y ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::move() - Moves object in relative coordinates


Multiplies the item's color transform

  • « SWFDisplayItem::moveTo
  • SWFDisplayItem::remove »
  • PHP Manual
  • SWFDisplayItem
  • Multiplies the item's color transform

SWFDisplayItem::multColor

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::multColor — Multiplies the item's color transform

Описание

SWFDisplayItem::multColor ( float $red , float $green , float $blue [, float $a ] ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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().

Список параметров

These parameters are floats between 0.0 and 1.0:

red

Value of red component

green

Value of green component

blue

Value of blue component

a

Value of alpha component

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

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();
?>


Removes the object from the movie

  • « SWFDisplayItem::multColor
  • SWFDisplayItem::rotate »
  • PHP Manual
  • SWFDisplayItem
  • Removes the object from the movie

SWFDisplayItem::remove

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::remove — Removes the object from the movie

Описание

SWFDisplayItem::remove ( void ) : 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().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFMovie::add() - Adds any type of data to a movie


Rotates in relative coordinates

  • « SWFDisplayItem::remove
  • SWFDisplayItem::rotateTo »
  • PHP Manual
  • SWFDisplayItem
  • Rotates in relative coordinates

SWFDisplayItem::rotate

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::rotate — Rotates in relative coordinates

Описание

SWFDisplayItem::rotate ( float $angle ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::rotate() rotates the current object by angle 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().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::rotateTo() - Rotates the object in global coordinates


Rotates the object in global coordinates

  • « SWFDisplayItem::rotate
  • SWFDisplayItem::scale »
  • PHP Manual
  • SWFDisplayItem
  • Rotates the object in global coordinates

SWFDisplayItem::rotateTo

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::rotateTo — Rotates the object in global coordinates

Описание

SWFDisplayItem::rotateTo ( float $angle ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::rotateto() set the current object rotation to angle 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();
?>

Смотрите также

  • SWFDisplayItem::rotate() - Rotates in relative coordinates


Scales the object in relative coordinates

  • « SWFDisplayItem::rotateTo
  • SWFDisplayItem::scaleTo »
  • PHP Manual
  • SWFDisplayItem
  • Scales the object in relative coordinates

SWFDisplayItem::scale

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::scale — Scales the object in relative coordinates

Описание

SWFDisplayItem::scale ( float $dx , float $dy ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::scaleTo() - Scales the object in global coordinates


Scales the object in global coordinates

  • « SWFDisplayItem::scale
  • SWFDisplayItem::setDepth »
  • PHP Manual
  • SWFDisplayItem
  • Scales the object in global coordinates

SWFDisplayItem::scaleTo

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::scaleTo — Scales the object in global coordinates

Описание

SWFDisplayItem::scaleTo ( float $x [, float $y ] ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::scale() - Scales the object in relative coordinates


Sets z-order

  • « SWFDisplayItem::scaleTo
  • SWFDisplayItem::setMaskLevel »
  • PHP Manual
  • SWFDisplayItem
  • Sets z-order

SWFDisplayItem::setDepth

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::setDepth — Sets z-order

Описание

SWFDisplayItem::setDepth ( int $depth ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Defines a MASK layer at level

  • « SWFDisplayItem::setDepth
  • SWFDisplayItem::setMatrix »
  • PHP Manual
  • SWFDisplayItem
  • Defines a MASK layer at level

SWFDisplayItem::setMaskLevel

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::setMaskLevel — Defines a MASK layer at level

Описание

SWFDisplayItem::setMaskLevel ( int $level ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the item's transform matrix

  • « SWFDisplayItem::setMaskLevel
  • SWFDisplayItem::setName »
  • PHP Manual
  • SWFDisplayItem
  • Sets the item's transform matrix

SWFDisplayItem::setMatrix

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::setMatrix — Sets the item's transform matrix

Описание

SWFDisplayItem::setMatrix ( float $a , float $b , float $c , float $d , float $x , float $y ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the object's name

  • « SWFDisplayItem::setMatrix
  • SWFDisplayItem::setRatio »
  • PHP Manual
  • SWFDisplayItem
  • Sets the object's name

SWFDisplayItem::setName

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::setName — Sets the object's name

Описание

SWFDisplayItem::setName ( string $name ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the object's ratio

  • « SWFDisplayItem::setName
  • SWFDisplayItem::skewX »
  • PHP Manual
  • SWFDisplayItem
  • Sets the object's ratio

SWFDisplayItem::setRatio

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::setRatio — Sets the object's ratio

Описание

SWFDisplayItem::setRatio ( float $ratio ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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();
?>


Sets the X-skew

  • « SWFDisplayItem::setRatio
  • SWFDisplayItem::skewXTo »
  • PHP Manual
  • SWFDisplayItem
  • Sets the X-skew

SWFDisplayItem::skewX

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::skewX — Sets the X-skew

Описание

SWFDisplayItem::skewX ( float $ddegrees ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::skewXTo() - Sets the X-skew
  • SWFDisplayItem::skewY() - Sets the Y-skew
  • SWFDisplayItem::skewYTo() - Sets the Y-skew


Sets the X-skew

  • « SWFDisplayItem::skewX
  • SWFDisplayItem::skewY »
  • PHP Manual
  • SWFDisplayItem
  • Sets the X-skew

SWFDisplayItem::skewXTo

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::skewXTo — Sets the X-skew

Описание

SWFDisplayItem::skewXTo ( float $degrees ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::skewX() - Sets the X-skew
  • SWFDisplayItem::skewY() - Sets the Y-skew
  • SWFDisplayItem::skewYTo() - Sets the Y-skew


Sets the Y-skew

  • « SWFDisplayItem::skewXTo
  • SWFDisplayItem::skewYTo »
  • PHP Manual
  • SWFDisplayItem
  • Sets the Y-skew

SWFDisplayItem::skewY

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::skewY — Sets the Y-skew

Описание

SWFDisplayItem::skewY ( float $ddegrees ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::skewYTo() - Sets the Y-skew
  • SWFDisplayItem::skewX() - Sets the X-skew
  • SWFDisplayItem::skewXTo() - Sets the X-skew


Sets the Y-skew

  • « SWFDisplayItem::skewY
  • SWFFill »
  • PHP Manual
  • SWFDisplayItem
  • Sets the Y-skew

SWFDisplayItem::skewYTo

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::skewYTo — Sets the Y-skew

Описание

SWFDisplayItem::skewYTo ( float $degrees ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::skewY() - Sets the Y-skew
  • SWFDisplayItem::skewX() - Sets the X-skew
  • SWFDisplayItem::skewXTo() - Sets the X-skew


The SWFFill class

(PHP 5 < 5.3.0, PECL ming SVN)

Введение

The SWFFill object allows you to transform (scale, skew, rotate) bitmap and gradient fills.

swffill objects are created by the SWFShape::addFill() method.

Обзор классов

SWFFill {
/* Методы */
moveTo ( float $x , float $y ) : void
rotateTo ( float $angle ) : void
scaleTo ( float $x [, float $y ] ) : void
skewXTo ( float $x ) : void
skewYTo ( float $y ) : void
}

Содержание

  • 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


Moves fill origin

  • « SWFFill
  • SWFFill::rotateTo »
  • PHP Manual
  • SWFFill
  • Moves fill origin

SWFFill::moveTo

(PHP 5 < 5.3.0, PECL ming SVN)

SWFFill::moveTo — Moves fill origin

Описание

SWFFill::moveTo ( float $x , float $y ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Moves the fill origin to the given global coordinates.

Список параметров

x

X-coordinate

y

Y-coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets fill's rotation

  • « SWFFill::moveTo
  • SWFFill::scaleTo »
  • PHP Manual
  • SWFFill
  • Sets fill's rotation

SWFFill::rotateTo

(PHP 5 < 5.3.0, PECL ming SVN)

SWFFill::rotateTo — Sets fill's rotation

Описание

SWFFill::rotateTo ( float $angle ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the fill rotation to the given angle.

Список параметров

angle

The rotation angle, in degrees.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets fill's scale

  • « SWFFill::rotateTo
  • SWFFill::skewXTo »
  • PHP Manual
  • SWFFill
  • Sets fill's scale

SWFFill::scaleTo

(PHP 5 < 5.3.0, PECL ming SVN)

SWFFill::scaleTo — Sets fill's scale

Описание

SWFFill::scaleTo ( float $x [, float $y ] ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the fill scale to the given coordinates.

Список параметров

x

X-coordinate

y

Y-coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets fill x-skew

  • « SWFFill::scaleTo
  • SWFFill::skewYTo »
  • PHP Manual
  • SWFFill
  • Sets fill x-skew

SWFFill::skewXTo

(PHP 5 < 5.3.0, PECL ming SVN)

SWFFill::skewXTo — Sets fill x-skew

Описание

SWFFill::skewXTo ( float $x ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the fill x-skew to x.

Список параметров

x

When x is 1.0, it is a 45-degree forward slant. More is more forward, less is more backward.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFFill::skewYTo() - Sets fill y-skew


Sets fill y-skew

  • « SWFFill::skewXTo
  • SWFFont »
  • PHP Manual
  • SWFFill
  • Sets fill y-skew

SWFFill::skewYTo

(PHP 5 < 5.3.0, PECL ming SVN)

SWFFill::skewYTo — Sets fill y-skew

Описание

SWFFill::skewYTo ( float $y ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the fill y-skew to y.

Список параметров

y

When y is 1.0, it is a 45-degree upward slant. More is more upward, less is more downward.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFFill::skewXTo() - Sets fill x-skew


The SWFFont class

(PHP 5 < 5.3.0, PECL ming SVN)

Введение

The SWFFont object represent a reference to the font definition, for us with SWFText::setFont() and SWFTextField::setFont().

Обзор классов

SWFFont {
/* Методы */
__construct ( string $filename )
getAscent ( void ) : float
getDescent ( void ) : float
getLeading ( void ) : float
getShape ( int $code ) : string
getUTF8Width ( string $string ) : float
getWidth ( string $string ) : float
}

Содержание

  • SWFFont::__construct — Loads a font definition
  • SWFFont::getAscent — Returns the ascent of the font, or 0 if not available
  • SWFFont::getDescent — Returns the descent of the font, or 0 if not available
  • SWFFont::getLeading — Returns the leading of the font, or 0 if not available
  • SWFFont::getShape — Returns the glyph shape of a char as a text string
  • SWFFont::getUTF8Width — Calculates the width of the given string in this font at full height
  • SWFFont::getWidth — Returns the string's width


Loads a font definition

  • « SWFFont
  • SWFFont::getAscent »
  • PHP Manual
  • SWFFont
  • Loads a font definition

SWFFont::__construct

(PHP 5 < 5.3.0, PECL ming SVN)

SWFFont::__construct — Loads a font definition

Описание

SWFFont::__construct ( 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.


Returns the ascent of the font, or 0 if not available

  • « SWFFont::__construct
  • SWFFont::getDescent »
  • PHP Manual
  • SWFFont
  • Returns the ascent of the font, or 0 if not available

SWFFont::getAscent

(PHP 5 < 5.3.0, PECL ming SVN)

SWFFont::getAscent — Returns the ascent of the font, or 0 if not available

Описание

SWFFont::getAscent ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFFont::getDescent() - Returns the descent of the font, or 0 if not available


Returns the descent of the font, or 0 if not available

  • « SWFFont::getAscent
  • SWFFont::getLeading »
  • PHP Manual
  • SWFFont
  • Returns the descent of the font, or 0 if not available

SWFFont::getDescent

(PHP 5 < 5.3.0, PECL ming SVN)

SWFFont::getDescent — Returns the descent of the font, or 0 if not available

Описание

SWFFont::getDescent ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFFont::getAscent() - Returns the ascent of the font, or 0 if not available


Returns the leading of the font, or 0 if not available

  • « SWFFont::getDescent
  • SWFFont::getShape »
  • PHP Manual
  • SWFFont
  • Returns the leading of the font, or 0 if not available

SWFFont::getLeading

(PHP 5 < 5.3.0, PECL ming SVN)

SWFFont::getLeading — Returns the leading of the font, or 0 if not available

Описание

SWFFont::getLeading ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Returns the glyph shape of a char as a text string

  • « SWFFont::getLeading
  • SWFFont::getUTF8Width »
  • PHP Manual
  • SWFFont
  • Returns the glyph shape of a char as a text string

SWFFont::getShape

(PHP 5 < 5.3.0, PECL ming SVN)

SWFFont::getShape — Returns the glyph shape of a char as a text string

Описание

SWFFont::getShape ( int $code ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Calculates the width of the given string in this font at full height

  • « SWFFont::getShape
  • SWFFont::getWidth »
  • PHP Manual
  • SWFFont
  • Calculates the width of the given string in this font at full height

SWFFont::getUTF8Width

(PHP 5 < 5.3.0, PECL ming SVN)

SWFFont::getUTF8Width — Calculates the width of the given string in this font at full height

Описание

SWFFont::getUTF8Width ( string $string ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFFont::getWidth() - Returns the string's width


Returns the string's width

  • « SWFFont::getUTF8Width
  • SWFFontChar »
  • PHP Manual
  • SWFFont
  • Returns the string's width

SWFFont::getWidth

(PHP 5 < 5.3.0, PECL ming SVN)

SWFFont::getWidth — Returns the string's width

Описание

SWFFont::getWidth ( string $string ) : float
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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.

Смотрите также

  • SWFFont::getUTF8Width() - Calculates the width of the given string in this font at full height


The SWFFontChar class

(PHP 5 < 5.3.0, PECL ming SVN)

Введение

SWFFontChar.

Обзор классов

SWFFontChar {
/* Методы */
addChars ( string $char ) : void
addUTF8Chars ( string $char ) : void
}

Содержание

  • SWFFontChar::addChars — Добавляет символов в шрифт для экспортируемого шрифта
  • SWFFontChar::addUTF8Chars — Добавляет символов в шрифт для экспортируемого шрифта


Добавляет символов в шрифт для экспортируемого шрифта

  • « SWFFontChar
  • SWFFontChar::addUTF8Chars »
  • PHP Manual
  • SWFFontChar
  • Добавляет символов в шрифт для экспортируемого шрифта

SWFFontChar::addChars

(PHP 5 < 5.3.0, PECL ming SVN)

SWFFontChar::addChars — Добавляет символов в шрифт для экспортируемого шрифта

Описание

SWFFontChar::addChars ( string $char ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFFontChar::addUTF8Chars() - Добавляет символов в шрифт для экспортируемого шрифта


Добавляет символов в шрифт для экспортируемого шрифта

  • « SWFFontChar::addChars
  • SWFGradient »
  • PHP Manual
  • SWFFontChar
  • Добавляет символов в шрифт для экспортируемого шрифта

SWFFontChar::addUTF8Chars

(PHP 5 < 5.3.0, PECL ming SVN)

SWFFontChar::addUTF8Chars — Добавляет символов в шрифт для экспортируемого шрифта

Описание

SWFFontChar::addUTF8Chars ( string $char ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFFontChar::addChars() - Добавляет символов в шрифт для экспортируемого шрифта


The SWFGradient class

(PHP 5 < 5.3.0, PECL ming SVN)

Введение

SWFGradient.

Обзор классов

SWFGradient {
/* Методы */
addEntry ( float $ratio , int $red , int $green , int $blue [, int $alpha = 255 ] ) : void
__construct ( void )
}

Содержание

  • SWFGradient::addEntry — Добавляет запись в список градиентов
  • SWFGradient::__construct — Создает объект градиента


Добавляет запись в список градиентов

  • « SWFGradient
  • SWFGradient::__construct »
  • PHP Manual
  • SWFGradient
  • Добавляет запись в список градиентов

SWFGradient::addEntry

(PHP 5 < 5.3.0, PECL ming SVN)

SWFGradient::addEntry — Добавляет запись в список градиентов

Описание

SWFGradient::addEntry ( float $ratio , int $red , int $green , int $blue [, int $alpha = 255 ] ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfgradient::addentry() добавляет запись в список градиентов. ratio - число от 0 до 1, указывающее, где в градиенте появляется этот цвет. Вы должны добавить записи в порядке возрастания коэффициента.

red, green, blue - это цвет (режим RGB).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Создает объект градиента

  • « SWFGradient::addEntry
  • SWFMorph »
  • PHP Manual
  • SWFGradient
  • Создает объект градиента

SWFGradient::__construct

(PHP 5 < 5.3.0, PECL ming SVN)

SWFGradient::__construct — Создает объект градиента

Описание

SWFGradient::__construct ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Функция swfgradient() создает новый объект SWFGradient.

После того, как добавлена запись в градиент, можно использовать этот градиент в заливке формы с помощью метода swfshape::addfill().

SWFGradient имеет следующие методы: swfgradient::addentry().

Этот простой пример нарисует большой черно-белый градиент в качестве фона и красноватый диск в его центре.

Пример #1 Пример использования swfgradient()

<?php

  $m = new SWFMovie();
  $m->setDimension(320, 240);

  $s = new SWFShape();

  // первый градиент - от черного к белому
  $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();

  // второй градиент - радиальный градиент от красного к прозрачному
  $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();
?>


The SWFMorph class

(PHP 5 < 5.3.0, PECL ming SVN)

Введение

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 {
/* Методы */
__construct ( void )
getShape1 ( void ) : SWFShape
getShape2 ( void ) : SWFShape
}

Содержание

  • SWFMorph::__construct — Создает новый объект SWFMorph
  • SWFMorph::getShape1 — Получает дескриптор к начальной форме
  • SWFMorph::getShape2 — Возвращает дескриптор к конечной форме


Создает новый объект SWFMorph

  • « SWFMorph
  • SWFMorph::getShape1 »
  • PHP Manual
  • SWFMorph
  • Создает новый объект SWFMorph

SWFMorph::__construct

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMorph::__construct — Создает новый объект SWFMorph

Описание

SWFMorph::__construct ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Создает новый объект SWFMorph.

Также называется "анимация формы". Это позволяет вам делать эти "липкие скручивающие вещи", которые заставят ваш компьютер тормозить. О, боже!

Примеры

Этот простой пример превратит большой красный квадрат в меньший синий, граничащий с черным квадратом.

Пример #1 Пример использования swfmorph()

<?php
  $p = new SWFMorph();

  $s = $p->getShape1();
  $s->setLine(0, 0, 0, 0);

  /* Обратите внимание, что это отклонение от обычных фигур (слева, а не справа).
     Я понятия не имею, почему это так, но это, кажется, работает.. */

  $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::__construct
  • SWFMorph::getShape2 »
  • PHP Manual
  • SWFMorph
  • Получает дескриптор к начальной форме

SWFMorph::getShape1

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMorph::getShape1 — Получает дескриптор к начальной форме

Описание

SWFMorph::getShape1 ( void ) : SWFShape
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Получает начальную форму морфа.

Возвращаемые значения

Возвращает объект SWFShape.

Смотрите также

  • SWFMorph::getShape2() - Возвращает дескриптор к конечной форме


Возвращает дескриптор к конечной форме

  • « SWFMorph::getShape1
  • SWFMovie »
  • PHP Manual
  • SWFMorph
  • Возвращает дескриптор к конечной форме

SWFMorph::getShape2

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMorph::getShape2 — Возвращает дескриптор к конечной форме

Описание

SWFMorph::getShape2 ( void ) : SWFShape
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Возвращает дескриптор к конечной форме.

Возвращаемые значения

Возвращает объект SWFShape.

Смотрите также

  • SWFMorph::getShape1() - Получает дескриптор к начальной форме


The SWFMovie class

(PHP 5 < 5.3.0, PECL ming SVN)

Введение

SWFMovie is a movie object representing an SWF movie.

Обзор классов

SWFMovie {
/* Методы */
add ( object $instance ) : mixed
addExport ( SWFCharacter $char , string $name ) : void
addFont ( SWFFont $font ) : mixed
__construct ([ int $version ] )
importChar ( string $libswf , string $name ) : SWFSprite
importFont ( string $libswf , string $name ) : SWFFontChar
labelFrame ( string $label ) : void
nextFrame ( void ) : void
output ([ int $compression ] ) : int
remove ( object $instance ) : void
save ( string $filename [, int $compression = -1 ] ) : int
saveToFile ( resource $x [, int $compression = -1 ] ) : int
setbackground ( int $red , int $green , int $blue ) : void
setDimension ( float $width , float $height ) : void
setFrames ( int $number ) : void
setRate ( float $rate ) : void
startSound ( SWFSound $sound ) : SWFSoundInstance
stopSound ( SWFSound $sound ) : void
streamMP3 ( mixed $mp3file [, float $skip = 0 ] ) : int
writeExports ( void ) : void
}

Содержание

  • SWFMovie::add — Adds any type of data to a movie
  • SWFMovie::addExport — Описание
  • SWFMovie::addFont — Описание
  • SWFMovie::__construct — Creates a new movie object, representing an SWF version 4 movie
  • SWFMovie::importChar — Описание
  • SWFMovie::importFont — Описание
  • SWFMovie::labelFrame — Labels a frame
  • 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 the SWF movie in a file
  • SWFMovie::saveToFile — Описание
  • 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::startSound — Описание
  • SWFMovie::stopSound — Описание
  • SWFMovie::streamMP3 — Streams a MP3 file
  • SWFMovie::writeExports — Описание


Adds any type of data to a movie

  • « SWFMovie
  • SWFMovie::addExport »
  • PHP Manual
  • SWFMovie
  • Adds any type of data to a movie

SWFMovie::add

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::add — Adds any type of data to a movie

Описание

SWFMovie::add ( object $instance ) : mixed
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Adds an SWF object instance to the current movie.

Список параметров

instance

Any type of object instance, like SWFShape, SWFText, SWFFont.

Возвращаемые значения

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.

Смотрите также

  • SWFMovie::remove() - Removes the object instance from the display list


Описание

  • « SWFMovie::add
  • SWFMovie::addFont »
  • PHP Manual
  • SWFMovie
  • Описание

SWFMovie::addExport

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::addExport —

Описание

SWFMovie::addExport ( SWFCharacter $char , string $name ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « SWFMovie::addExport
  • SWFMovie::__construct »
  • PHP Manual
  • SWFMovie
  • Описание

SWFMovie::addFont

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::addFont —

Описание

SWFMovie::addFont ( SWFFont $font ) : mixed
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Creates a new movie object, representing an SWF version 4 movie

  • « SWFMovie::addFont
  • SWFMovie::importChar »
  • PHP Manual
  • SWFMovie
  • Creates a new movie object, representing an SWF version 4 movie

SWFMovie::__construct

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::__construct — Creates a new movie object, representing an SWF version 4 movie

Описание

SWFMovie::__construct ([ int $version ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Creates a new movie object, representing an SWF movie.

Список параметров

version

The desired SWF version. Default is 4.


Описание

  • « SWFMovie::__construct
  • SWFMovie::importFont »
  • PHP Manual
  • SWFMovie
  • Описание

SWFMovie::importChar

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::importChar —

Описание

SWFMovie::importChar ( string $libswf , string $name ) : SWFSprite
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFMovie::importFont() - Описание


Описание

  • « SWFMovie::importChar
  • SWFMovie::labelFrame »
  • PHP Manual
  • SWFMovie
  • Описание

SWFMovie::importFont

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::importFont —

Описание

SWFMovie::importFont ( string $libswf , string $name ) : SWFFontChar
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFMovie::importChar() - Описание


Labels a frame

  • « SWFMovie::importFont
  • SWFMovie::nextFrame »
  • PHP Manual
  • SWFMovie
  • Labels a frame

SWFMovie::labelFrame

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::labelFrame — Labels a frame

Описание

SWFMovie::labelFrame ( string $label ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Moves to the next frame of the animation

  • « SWFMovie::labelFrame
  • SWFMovie::output »
  • PHP Manual
  • SWFMovie
  • Moves to the next frame of the animation

SWFMovie::nextFrame

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::nextFrame — Moves to the next frame of the animation

Описание

SWFMovie::nextFrame ( void ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Moves to the next frame of the animation.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Dumps your lovingly prepared movie out

  • « SWFMovie::nextFrame
  • SWFMovie::remove »
  • PHP Manual
  • SWFMovie
  • Dumps your lovingly prepared movie out

SWFMovie::output

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::output — Dumps your lovingly prepared movie out

Описание

SWFMovie::output ([ int $compression ] ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Dumps the SWFMovie.

Don't forget to send the Content-Type HTTP header file before using this function, in order to display the movie in a browser.

Список параметров

compression

The compression level can be a value between 0 and 9, defining the SWF compression similar to gzip compression.

This parameter is only available as of Flash MX (6).

Возвращаемые значения

Return the number of bytes written or FALSE on error.

Примеры

Пример #1 Displaying your $movie in a browser

<?php
header('Content-type: application/x-shockwave-flash');
$movie->output();
?>

Смотрите также

  • SWFMovie::save() - Saves the SWF movie in a file
  • SWFMovie::saveToFile() - Описание


Removes the object instance from the display list

  • « SWFMovie::output
  • SWFMovie::save »
  • PHP Manual
  • SWFMovie
  • Removes the object instance from the display list

SWFMovie::remove

(PHP 5.2.1-5.3.0, PHP 7, PECL ming SVN)

SWFMovie::remove — Removes the object instance from the display list

Описание

SWFMovie::remove ( object $instance ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Removes the given object instance from the display list.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFMovie::add() - Adds any type of data to a movie


Saves the SWF movie in a file

  • « SWFMovie::remove
  • SWFMovie::saveToFile »
  • PHP Manual
  • SWFMovie
  • Saves the SWF movie in a file

SWFMovie::save

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::save — Saves the SWF movie in a file

Описание

SWFMovie::save ( string $filename [, int $compression = -1 ] ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Saves the SWF movie to the specified filename.

Список параметров

filename

The path to the saved SWF document.

compression

The compression level can be a value between 0 and 9, defining the SWF compression similar to gzip compression.

This parameter is only available as of Flash MX (6).

Возвращаемые значения

Return the number of bytes written or FALSE on error.

Смотрите также

  • SWFMovie::output() - Dumps your lovingly prepared movie out
  • SWFMovie::saveToFile() - Описание


Описание

  • « SWFMovie::save
  • SWFMovie::setbackground »
  • PHP Manual
  • SWFMovie
  • Описание

SWFMovie::saveToFile

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::saveToFile —

Описание

SWFMovie::saveToFile ( resource $x [, int $compression = -1 ] ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

X

compression

The compression level can be a value between 0 and 9, defining the SWF compression similar to gzip compression.

This parameter is only available as of Flash MX (6).

Возвращаемые значения

Return the number of bytes written or FALSE on error.

Смотрите также

  • SWFMovie::output() - Dumps your lovingly prepared movie out
  • SWFMovie::save() - Saves the SWF movie in a file


Sets the background color

  • « SWFMovie::saveToFile
  • SWFMovie::setDimension »
  • PHP Manual
  • SWFMovie
  • Sets the background color

SWFMovie::setbackground

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::setbackground — Sets the background color

Описание

SWFMovie::setbackground ( int $red , int $green , int $blue ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the background color.

Why is there no rgba version? Think about it, 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.

Список параметров

These parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF:

red

Value of red component

green

Value of green component

blue

Value of blue component

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the movie's width and height

  • « SWFMovie::setbackground
  • SWFMovie::setFrames »
  • PHP Manual
  • SWFMovie
  • Sets the movie's width and height

SWFMovie::setDimension

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::setDimension — Sets the movie's width and height

Описание

SWFMovie::setDimension ( float $width , float $height ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the movie's dimension to the specified width and height.

Список параметров

width

The movie width.

height

The movie height.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the total number of frames in the animation

  • « SWFMovie::setDimension
  • SWFMovie::setRate »
  • PHP Manual
  • SWFMovie
  • Sets the total number of frames in the animation

SWFMovie::setFrames

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::setFrames — Sets the total number of frames in the animation

Описание

SWFMovie::setFrames ( int $number ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the total number of frames in the animation to the given number.

Список параметров

number

The number of frames.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the animation's frame rate

  • « SWFMovie::setFrames
  • SWFMovie::startSound »
  • PHP Manual
  • SWFMovie
  • Sets the animation's frame rate

SWFMovie::setRate

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::setRate — Sets the animation's frame rate

Описание

SWFMovie::setRate ( float $rate ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the frame rate to the specified rate.

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.

Список параметров

rate

The frame rate, in frame per seconds.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « SWFMovie::setRate
  • SWFMovie::stopSound »
  • PHP Manual
  • SWFMovie
  • Описание

SWFMovie::startSound

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::startSound —

Описание

SWFMovie::startSound ( SWFSound $sound ) : SWFSoundInstance
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFMovie::stopSound() - Описание


Описание

  • « SWFMovie::startSound
  • SWFMovie::streamMP3 »
  • PHP Manual
  • SWFMovie
  • Описание

SWFMovie::stopSound

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::stopSound —

Описание

SWFMovie::stopSound ( SWFSound $sound ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFMovie::startSound() - Описание


Streams a MP3 file

  • « SWFMovie::stopSound
  • SWFMovie::writeExports »
  • PHP Manual
  • SWFMovie
  • Streams a MP3 file

SWFMovie::streamMP3

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::streamMP3 — Streams a MP3 file

Описание

SWFMovie::streamMP3 ( mixed $mp3file [, float $skip = 0 ] ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Streams the given MP3 file mp3file.

This method is not very robust in dealing with oddities (can skip over an initial ID3 tag, but that's about it).

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.

Список параметров

mp3file

Can be a file pointer returned by fopen() or the MP3 data, as a binary string.

skip

Number of seconds to skip.

Возвращаемые значения

Return number of frames.

Список изменений

Версия | Описание
5.2.0 | skip added

Примеры

Пример #1 Streaming example

<?php
$m = new SWFMovie();
$m->setRate(12.0);
$m->streamMp3(file_get_contents("distortobass.mp3"));
// use your own MP3

// The file is 11.85 seconds at 12.0 fps = 142 frames
$m->setFrames(142);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Описание

  • « SWFMovie::streamMP3
  • SWFPrebuiltClip »
  • PHP Manual
  • SWFMovie
  • Описание

SWFMovie::writeExports

(PHP 5 < 5.3.0, PECL ming SVN)

SWFMovie::writeExports —

Описание

SWFMovie::writeExports ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The SWFPrebuiltClip class

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

Введение

SWFPrebuiltClip.

Обзор классов

SWFPrebuiltClip {
/* Методы */
__construct ( mixed $file )
}

Содержание

  • SWFPrebuiltClip::__construct — Возвращает объект класса SWFPrebuiltClip


Возвращает объект класса SWFPrebuiltClip

  • « SWFPrebuiltClip
  • SWFShape »
  • PHP Manual
  • SWFPrebuiltClip
  • Возвращает объект класса SWFPrebuiltClip

SWFPrebuiltClip::__construct

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

SWFPrebuiltClip::__construct — Возвращает объект класса SWFPrebuiltClip

Описание

SWFPrebuiltClip::__construct ( mixed $file )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


The SWFShape class

(PHP 5 < 5.3.0, PECL ming SVN)

Введение

SWFShape.

Обзор классов

SWFShape {
/* Методы */
addFill ( int $red , int $green , int $blue [, int $alpha = 255 ] ) : SWFFill
__construct ( void )
drawArc ( float $r , float $startAngle , float $endAngle ) : void
drawCircle ( float $r ) : void
drawCubic ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy ) : int
drawCubicTo ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy ) : int
drawCurve ( float $controldx , float $controldy , float $anchordx , float $anchordy [, float $targetdx ], float $targetdy ) : int
drawCurveTo ( float $controlx , float $controly , float $anchorx , float $anchory [, float $targetx ], float $targety ) : int
drawGlyph ( SWFFont $font , string $character [, int $size ] ) : void
drawLine ( float $dx , float $dy ) : void
drawLineTo ( float $x , float $y ) : void
movePen ( float $dx , float $dy ) : void
movePenTo ( float $x , float $y ) : void
setLeftFill ( SWFGradient $fill ) : void
setLine ( SWFShape $shape ) : void
setRightFill ( SWFGradient $fill ) : void
}

Содержание

  • SWFShape::addFill — Adds a solid fill to the shape
  • SWFShape::__construct — Creates a new shape object
  • SWFShape::drawArc — Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o'clock
  • SWFShape::drawCircle — Draws a circle of radius r centered at the current location, in a counter-clockwise fashion
  • SWFShape::drawCubic — Draws a cubic bezier curve using the current position and the three given points as control points
  • SWFShape::drawCubicTo — Draws a cubic bezier curve using the current position and the three given points as control points
  • SWFShape::drawCurve — Draws a curve (relative)
  • SWFShape::drawCurveTo — Draws a curve
  • SWFShape::drawGlyph — Draws the first character in the given string into the shape using the glyph definition from the given font
  • 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


Adds a solid fill to the shape

  • « SWFShape
  • SWFShape::__construct »
  • PHP Manual
  • SWFShape
  • Adds a solid fill to the shape

SWFShape::addFill

(PHP 5 < 5.3.0, PECL ming SVN)

SWFShape::addFill — Adds a solid fill to the shape

Описание

SWFShape::addFill ( int $red , int $green , int $blue [, int $alpha = 255 ] ) : SWFFill
addFill ( SWFBitmap $bitmap [, int $flags ] ) : SWFFill
addFill ( SWFGradient $gradient [, int $flags ] ) : SWFFill
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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).

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();
?>

Смотрите также

  • SWFShape::setLeftFill() - Sets left rasterizing color
  • SWFShape::setRightFill() - Sets right rasterizing color


Creates a new shape object

  • « SWFShape::addFill
  • SWFShape::drawArc »
  • PHP Manual
  • SWFShape
  • Creates a new shape object

SWFShape::__construct

(PHP 5 < 5.3.0, PECL ming SVN)

SWFShape::__construct — Creates a new shape object

Описание

SWFShape::__construct ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Created a new SWFShape object.

Примеры

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();
?>


Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o'clock

  • « SWFShape::__construct
  • SWFShape::drawCircle »
  • PHP Manual
  • SWFShape
  • Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o'clock

SWFShape::drawArc

(PHP 5 < 5.3.0, PECL ming SVN)

SWFShape::drawArc — Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o'clock

Описание

SWFShape::drawArc ( float $r , float $startAngle , float $endAngle ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFShape::drawCircle() - Draws a circle of radius r centered at the current location, in a counter-clockwise fashion


Draws a circle of radius r centered at the current location, in a counter-clockwise fashion

  • « SWFShape::drawArc
  • SWFShape::drawCubic »
  • PHP Manual
  • SWFShape
  • Draws a circle of radius r centered at the current location, in a counter-clockwise fashion

SWFShape::drawCircle

(PHP 5 < 5.3.0, PECL ming SVN)

SWFShape::drawCircle — Draws a circle of radius r centered at the current location, in a counter-clockwise fashion

Описание

SWFShape::drawCircle ( float $r ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a cubic bezier curve using the current position and the three given points as control points

  • « SWFShape::drawCircle
  • SWFShape::drawCubicTo »
  • PHP Manual
  • SWFShape
  • Draws a cubic bezier curve using the current position and the three given points as control points

SWFShape::drawCubic

(PHP 5 < 5.3.0, PECL ming SVN)

SWFShape::drawCubic — Draws a cubic bezier curve using the current position and the three given points as control points

Описание

SWFShape::drawCubic ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFShape::drawCubicTo() - Draws a cubic bezier curve using the current position and the three given points as control points


Draws a cubic bezier curve using the current position and the three given points as control points

  • « SWFShape::drawCubic
  • SWFShape::drawCurve »
  • PHP Manual
  • SWFShape
  • Draws a cubic bezier curve using the current position and the three given points as control points

SWFShape::drawCubicTo

(PHP 5 < 5.3.0, PECL ming SVN)

SWFShape::drawCubicTo — Draws a cubic bezier curve using the current position and the three given points as control points

Описание

SWFShape::drawCubicTo ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFShape::drawCubic() - Draws a cubic bezier curve using the current position and the three given points as control points


Draws a curve (relative)

  • « SWFShape::drawCubicTo
  • SWFShape::drawCurveTo »
  • PHP Manual
  • SWFShape
  • Draws a curve (relative)

SWFShape::drawCurve

(PHP 5 < 5.3.0, PECL ming SVN)

SWFShape::drawCurve — Draws a curve (relative)

Описание

SWFShape::drawCurve ( float $controldx , float $controldy , float $anchordx , float $anchordy [, float $targetdx ], float $targetdy ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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).

Смотрите также

  • SWFShape::drawCurve()


Draws a curve

  • « SWFShape::drawCurve
  • SWFShape::drawGlyph »
  • PHP Manual
  • SWFShape
  • Draws a curve

SWFShape::drawCurveTo

(PHP 5 < 5.3.0, PECL ming SVN)

SWFShape::drawCurveTo — Draws a curve

Описание

SWFShape::drawCurveTo ( float $controlx , float $controly , float $anchorx , float $anchory [, float $targetx ], float $targety ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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).

Смотрите также

  • SWFShape::drawCurveTo()


Draws the first character in the given string into the shape using the glyph definition from the given font

  • « SWFShape::drawCurveTo
  • SWFShape::drawLine »
  • PHP Manual
  • SWFShape
  • Draws the first character in the given string into the shape using the glyph definition from the given font

SWFShape::drawGlyph

(PHP 5 < 5.3.0, PECL ming SVN)

SWFShape::drawGlyph — Draws the first character in the given string into the shape using the glyph definition from the given font

Описание

SWFShape::drawGlyph ( SWFFont $font , string $character [, int $size ] ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a line (relative)

  • « SWFShape::drawGlyph
  • SWFShape::drawLineTo »
  • PHP Manual
  • SWFShape
  • Draws a line (relative)

SWFShape::drawLine

(PHP 5 < 5.3.0, PECL ming SVN)

SWFShape::drawLine — Draws a line (relative)

Описание

SWFShape::drawLine ( float $dx , float $dy ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfshape::drawline() draws a line (using the current line style set by swfshape::setline()) from the current pen position to displacement (dx,dy).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFShape::drawLineTo() - Draws a line


Draws a line

  • « SWFShape::drawLine
  • SWFShape::movePen »
  • PHP Manual
  • SWFShape
  • Draws a line

SWFShape::drawLineTo

(PHP 5 < 5.3.0, PECL ming SVN)

SWFShape::drawLineTo — Draws a line

Описание

SWFShape::drawLineTo ( float $x , float $y ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFShape::drawLine() - Draws a line (relative)


Moves the shape's pen (relative)

  • « SWFShape::drawLineTo
  • SWFShape::movePenTo »
  • PHP Manual
  • SWFShape
  • Moves the shape's pen (relative)

SWFShape::movePen

(PHP 5 < 5.3.0, PECL ming SVN)

SWFShape::movePen — Moves the shape's pen (relative)

Описание

SWFShape::movePen ( float $dx , float $dy ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFShape::movePenTo() - Moves the shape's pen


Moves the shape's pen

  • « SWFShape::movePen
  • SWFShape::setLeftFill »
  • PHP Manual
  • SWFShape
  • Moves the shape's pen

SWFShape::movePenTo

(PHP 5 < 5.3.0, PECL ming SVN)

SWFShape::movePenTo — Moves the shape's pen

Описание

SWFShape::movePenTo ( float $x , float $y ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfshape::setrightfill() move the shape's pen to (x,y) in the shape's coordinate space.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFShape::movePen() - Moves the shape's pen (relative)


Sets left rasterizing color

  • « SWFShape::movePenTo
  • SWFShape::setLine »
  • PHP Manual
  • SWFShape
  • Sets left rasterizing color

SWFShape::setLeftFill

(PHP 5 < 5.3.0, PECL ming SVN)

SWFShape::setLeftFill — Sets left rasterizing color

Описание

SWFShape::setLeftFill ( SWFGradient $fill ) : void
setLeftFill ( int $red , int $green , int $blue [, int $a ] ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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]));.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFShape::setRightFill() - Sets right rasterizing color


Sets the shape's line style

  • « SWFShape::setLeftFill
  • SWFShape::setRightFill »
  • PHP Manual
  • SWFShape
  • Sets the shape's line style

SWFShape::setLine

(PHP 5 < 5.3.0, PECL ming SVN)

SWFShape::setLine — Sets the shape's line style

Описание

SWFShape::setLine ( SWFShape $shape ) : void
setLine ( int $width , int $red , int $green , int $blue [, int $a ] ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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();
?>

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets right rasterizing color

  • « SWFShape::setLine
  • SWFSound »
  • PHP Manual
  • SWFShape
  • Sets right rasterizing color

SWFShape::setRightFill

(PHP 5 < 5.3.0, PECL ming SVN)

SWFShape::setRightFill — Sets right rasterizing color

Описание

SWFShape::setRightFill ( SWFGradient $fill ) : void
setRightFill ( int $red , int $green , int $blue [, int $a ] ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Shortcut for $swfshape->setrightfill($s->addfill($r, $g, $b [, $a]));.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFShape::setLeftFill() - Sets left rasterizing color


The SWFSound class

(PHP 5 < 5.3.0, PECL ming SVN)

Введение

SWFSound.

Обзор классов

SWFSound {
/* Методы */
__construct ( string $filename [, int $flags = 0 ] )
}

Содержание

  • SWFSound::__construct — Возвращает новый объект SWFSound из заданного файла


Возвращает новый объект SWFSound из заданного файла

  • « SWFSound
  • SWFSoundInstance »
  • PHP Manual
  • SWFSound
  • Возвращает новый объект SWFSound из заданного файла

SWFSound::__construct

(PHP 5 < 5.3.0, PECL ming SVN)

SWFSound::__construct — Возвращает новый объект SWFSound из заданного файла

Описание

SWFSound::__construct ( string $filename [, int $flags = 0 ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


The SWFSoundInstance class

(PHP 5 < 5.3.0, PECL ming SVN)

Введение

SWFSoundInstance objects are returned by the SWFSprite::startSound() and SWFMovie::startSound() methods.

Обзор классов

SWFSoundInstance {
/* Методы */
loopCount ( int $point ) : void
loopInPoint ( int $point ) : void
loopOutPoint ( int $point ) : void
noMultiple ( void ) : void
}

Содержание

  • SWFSoundInstance::loopCount — Описание
  • SWFSoundInstance::loopInPoint — Описание
  • SWFSoundInstance::loopOutPoint — Описание
  • SWFSoundInstance::noMultiple — Описание


Описание

  • « SWFSoundInstance
  • SWFSoundInstance::loopInPoint »
  • PHP Manual
  • SWFSoundInstance
  • Описание

SWFSoundInstance::loopCount

(PHP 5 < 5.3.0, PECL ming SVN)

SWFSoundInstance::loopCount —

Описание

SWFSoundInstance::loopCount ( int $point ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

point

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFSoundInstance::loopOutPoint() - Описание


Описание

  • « SWFSoundInstance::loopCount
  • SWFSoundInstance::loopOutPoint »
  • PHP Manual
  • SWFSoundInstance
  • Описание

SWFSoundInstance::loopInPoint

(PHP 5 < 5.3.0, PECL ming SVN)

SWFSoundInstance::loopInPoint —

Описание

SWFSoundInstance::loopInPoint ( int $point ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

point

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFSoundInstance::loopOutPoint() - Описание


Описание

  • « SWFSoundInstance::loopInPoint
  • SWFSoundInstance::noMultiple »
  • PHP Manual
  • SWFSoundInstance
  • Описание

SWFSoundInstance::loopOutPoint

(PHP 5 < 5.3.0, PECL ming SVN)

SWFSoundInstance::loopOutPoint —

Описание

SWFSoundInstance::loopOutPoint ( int $point ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

point

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFSoundInstance::loopInPoint() - Описание


Описание

  • « SWFSoundInstance::loopOutPoint
  • SWFSprite »
  • PHP Manual
  • SWFSoundInstance
  • Описание

SWFSoundInstance::noMultiple

(PHP 5 < 5.3.0, PECL ming SVN)

SWFSoundInstance::noMultiple —

Описание

SWFSoundInstance::noMultiple ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The SWFSprite class

(PHP 5 < 5.3.0, PECL ming SVN)

Введение

An SWFSprite is 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 {
/* Методы */
add ( object $object ) : void
__construct ( void )
labelFrame ( string $label ) : void
nextFrame ( void ) : void
remove ( object $object ) : void
setFrames ( int $number ) : void
startSound ( SWFSound $sount ) : SWFSoundInstance
stopSound ( SWFSound $sount ) : void
}

Содержание

  • SWFSprite::add — Добавляет объект в спрайт
  • SWFSprite::__construct — Создает видеоклип (спрайт)
  • SWFSprite::labelFrame — Рамка для надписей
  • SWFSprite::nextFrame — Переходит к следующему кадру анимации
  • SWFSprite::remove — Удаляет объект в спрайте
  • SWFSprite::setFrames — Устанавливает общее количество кадров в анимации
  • SWFSprite::startSound — Описание
  • SWFSprite::stopSound — Описание


Добавляет объект в спрайт

  • « SWFSprite
  • SWFSprite::__construct »
  • PHP Manual
  • SWFSprite
  • Добавляет объект в спрайт

SWFSprite::add

(PHP 5 < 5.3.0, PECL ming SVN)

SWFSprite::add — Добавляет объект в спрайт

Описание

SWFSprite::add ( object $object ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Функция swfsprite::add() добавляет объект swfshape(),
swfbutton(), swftext(),
swfaction() или swfsprite().

Для отображаемых типов (swfshape(),
swfbutton(), swftext(),
swfaction() или swfsprite()),
функция возвращает дескриптор объекта в списке отображения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Создает видеоклип (спрайт)

  • « SWFSprite::add
  • SWFSprite::labelFrame »
  • PHP Manual
  • SWFSprite
  • Создает видеоклип (спрайт)

SWFSprite::__construct

(PHP 5 < 5.3.0, PECL ming SVN)

SWFSprite::__construct — Создает видеоклип (спрайт)

Описание

SWFSprite::__construct ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Создает новый объект SWFSprite.


Рамка для надписей

  • « SWFSprite::__construct
  • SWFSprite::nextFrame »
  • PHP Manual
  • SWFSprite
  • Рамка для надписей

SWFSprite::labelFrame

(PHP 5 < 5.3.0, PECL ming SVN)

SWFSprite::labelFrame — Рамка для надписей

Описание

SWFSprite::labelFrame ( string $label ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Переходит к следующему кадру анимации

  • « SWFSprite::labelFrame
  • SWFSprite::remove »
  • PHP Manual
  • SWFSprite
  • Переходит к следующему кадру анимации

SWFSprite::nextFrame

(PHP 5 < 5.3.0, PECL ming SVN)

SWFSprite::nextFrame — Переходит к следующему кадру анимации

Описание

SWFSprite::nextFrame ( void ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfsprite::setframes() перемещает к следующему кадру анимацию.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Удаляет объект в спрайте

  • « SWFSprite::nextFrame
  • SWFSprite::setFrames »
  • PHP Manual
  • SWFSprite
  • Удаляет объект в спрайте

SWFSprite::remove

(PHP 5 < 5.3.0, PECL ming SVN)

SWFSprite::remove — Удаляет объект в спрайте

Описание

SWFSprite::remove ( object $object ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Функция swfsprite::remove() удалит объект swfshape(),
swfbutton(), swftext(),
swfaction() или swfsprite() из спрайта.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает общее количество кадров в анимации

  • « SWFSprite::remove
  • SWFSprite::startSound »
  • PHP Manual
  • SWFSprite
  • Устанавливает общее количество кадров в анимации

SWFSprite::setFrames

(PHP 5 < 5.3.0, PECL ming SVN)

SWFSprite::setFrames — Устанавливает общее количество кадров в анимации

Описание

SWFSprite::setFrames ( int $number ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Функция swfsprite::setframes() устанавливает общее количество кадров в анимации numberofframes.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « SWFSprite::setFrames
  • SWFSprite::stopSound »
  • PHP Manual
  • SWFSprite
  • Описание

SWFSprite::startSound

(PHP 5 < 5.3.0, PECL ming SVN)

SWFSprite::startSound —

Описание

SWFSprite::startSound ( SWFSound $sount ) : SWFSoundInstance
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFSprite::stopSound() - Описание


Описание

  • « SWFSprite::startSound
  • SWFText »
  • PHP Manual
  • SWFSprite
  • Описание

SWFSprite::stopSound

(PHP 5 < 5.3.0, PECL ming SVN)

SWFSprite::stopSound —

Описание

SWFSprite::stopSound ( SWFSound $sount ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFSprite::startSound() - Описание


The SWFText class

(PHP 5 < 5.3.0, PECL ming SVN)

Введение

SWFText.

Обзор классов

SWFText {
/* Методы */
addString ( string $string ) : void
addUTF8String ( string $text ) : void
__construct ( void )
getAscent ( void ) : float
getDescent ( void ) : float
getLeading ( void ) : float
getUTF8Width ( string $string ) : float
getWidth ( string $string ) : float
moveTo ( float $x , float $y ) : void
setColor ( int $red , int $green , int $blue [, int $a = 255 ] ) : void
setFont ( SWFFont $font ) : void
setHeight ( float $height ) : void
setSpacing ( float $spacing ) : void
}

Содержание

  • SWFText::addString — Рисует строку
  • SWFText::addUTF8String — Записывает данный текст в этот объект SWFText в текущей позиции пера, используя текущий шрифт, высоту, интервал и цвет
  • SWFText::__construct — Создает новый объект SWFText
  • SWFText::getAscent — Возвращает значение надстрочного элемента текущего шрифта и размера или 0, если недоступно
  • SWFText::getDescent — Возвращает значение подстрочного элемента текущего шрифта и размера или 0, если недоступно
  • SWFText::getLeading — Возвращает межстрочный интервал в текущем размере или 0, если он недоступен
  • SWFText::getUTF8Width — Вычисляет ширину данной строки в текстовых объектах текущего шрифта и размера
  • SWFText::getWidth — Вычисляет ширину строки
  • SWFText::moveTo — Перемещает перо
  • SWFText::setColor — Устанавливает текущий цвет текста
  • SWFText::setFont — Устанавливает текущий шрифт
  • SWFText::setHeight — Устанавливает текущую высоту шрифта
  • SWFText::setSpacing — Устанавливает текущий интервал между шрифтами


Рисует строку

  • « SWFText
  • SWFText::addUTF8String »
  • PHP Manual
  • SWFText
  • Рисует строку

SWFText::addString

(PHP 5 < 5.3.0, PECL ming SVN)

SWFText::addString — Рисует строку

Описание

SWFText::addString ( string $string ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext::addstring() рисует строку string в текущем местоположении пера (курсора). Перо находится в начале текста; то есть текст по возрастанию находится в y-направлении.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFText::addUTF8String() - Записывает данный текст в этот объект SWFText в текущей позиции пера, используя текущий шрифт, высоту, интервал и цвет


Записывает данный текст в этот объект SWFText в текущей позиции пера, используя текущий шрифт, высоту, интервал и цвет

  • « SWFText::addString
  • SWFText::__construct »
  • PHP Manual
  • SWFText
  • Записывает данный текст в этот объект SWFText в текущей позиции пера, используя текущий шрифт, высоту, интервал и цвет

SWFText::addUTF8String

(PHP 5 < 5.3.0, PECL ming SVN)

SWFText::addUTF8String — Записывает данный текст в этот объект SWFText в текущей позиции пера, используя текущий шрифт, высоту, интервал и цвет

Описание

SWFText::addUTF8String ( string $text ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFText::addString() - Рисует строку


Создает новый объект SWFText

  • « SWFText::addUTF8String
  • SWFText::getAscent »
  • PHP Manual
  • SWFText
  • Создает новый объект SWFText

SWFText::__construct

(PHP 5 < 5.3.0, PECL ming SVN)

SWFText::__construct — Создает новый объект SWFText

Описание

SWFText::__construct ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Создает новый объект SWFText, чистый для управления.

Примеры

Этот простой пример рисует большой желтый текст «PHP генерирует Flash с помощью Ming» на белом фоне.

Пример #1 Пример использования swftext()

<?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 генерирует Flash с помощью Ming!!");

$m = new SWFMovie();
$m->setDimension(5400, 3600);

$m->add($t);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Возвращает значение надстрочного элемента текущего шрифта и размера или 0, если недоступно

  • « SWFText::__construct
  • SWFText::getDescent »
  • PHP Manual
  • SWFText
  • Возвращает значение надстрочного элемента текущего шрифта и размера или 0, если недоступно

SWFText::getAscent

(PHP 5 < 5.3.0, PECL ming SVN)

SWFText::getAscent — Возвращает значение надстрочного элемента текущего шрифта и размера или 0, если недоступно

Описание

SWFText::getAscent ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFText::getDescent() - Возвращает значение подстрочного элемента текущего шрифта и размера или 0, если недоступно


Возвращает значение подстрочного элемента текущего шрифта и размера или 0, если недоступно

  • « SWFText::getAscent
  • SWFText::getLeading »
  • PHP Manual
  • SWFText
  • Возвращает значение подстрочного элемента текущего шрифта и размера или 0, если недоступно

SWFText::getDescent

(PHP 5 < 5.3.0, PECL ming SVN)

SWFText::getDescent — Возвращает значение подстрочного элемента текущего шрифта и размера или 0, если недоступно

Описание

SWFText::getDescent ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFText::getAscent() - Возвращает значение надстрочного элемента текущего шрифта и размера или 0, если недоступно


Возвращает межстрочный интервал в текущем размере или 0, если он недоступен

  • « SWFText::getDescent
  • SWFText::getUTF8Width »
  • PHP Manual
  • SWFText
  • Возвращает межстрочный интервал в текущем размере или 0, если он недоступен

SWFText::getLeading

(PHP 5 < 5.3.0, PECL ming SVN)

SWFText::getLeading — Возвращает межстрочный интервал в текущем размере или 0, если он недоступен

Описание

SWFText::getLeading ( void ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Вычисляет ширину данной строки в текстовых объектах текущего шрифта и размера

  • « SWFText::getLeading
  • SWFText::getWidth »
  • PHP Manual
  • SWFText
  • Вычисляет ширину данной строки в текстовых объектах текущего шрифта и размера

SWFText::getUTF8Width

(PHP 5 < 5.3.0, PECL ming SVN)

SWFText::getUTF8Width — Вычисляет ширину данной строки в текстовых объектах текущего шрифта и размера

Описание

SWFText::getUTF8Width ( string $string ) : float
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFText::getWidth() - Вычисляет ширину строки


Вычисляет ширину строки

  • « SWFText::getUTF8Width
  • SWFText::moveTo »
  • PHP Manual
  • SWFText
  • Вычисляет ширину строки

SWFText::getWidth

(PHP 5 < 5.3.0, PECL ming SVN)

SWFText::getWidth — Вычисляет ширину строки

Описание

SWFText::getWidth ( string $string ) : float
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Возвращает отрисованную ширину string в текущих настройках шрифта, масштаба и интервала текстового объекта.

Смотрите также

  • SWFText::getUTF8Width() - Вычисляет ширину данной строки в текстовых объектах текущего шрифта и размера


Перемещает перо

  • « SWFText::getWidth
  • SWFText::setColor »
  • PHP Manual
  • SWFText
  • Перемещает перо

SWFText::moveTo

(PHP 5 < 5.3.0, PECL ming SVN)

SWFText::moveTo — Перемещает перо

Описание

SWFText::moveTo ( float $x , float $y ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext::moveto() перемещает перо (или курсор, если так понятнее) в (x,y) в пространстве координат текстового объекта. Однако, если значение равно нулю, значение в этом измерении остается неизменным. Досадно, должно быть исправлено.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает текущий цвет текста

  • « SWFText::moveTo
  • SWFText::setFont »
  • PHP Manual
  • SWFText
  • Устанавливает текущий цвет текста

SWFText::setColor

(PHP 5 < 5.3.0, PECL ming SVN)

SWFText::setColor — Устанавливает текущий цвет текста

Описание

SWFText::setColor ( int $red , int $green , int $blue [, int $a = 255 ] ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Изменяет текущий цвет текста.

Список параметров

Эти параметры представляют собой целые числа от 0 до 255 или шестнадцатеричными значениями между 0x00 и 0xFF:

red

Значение красного компонента

green

Значение зеленого компонента

blue

Значение синего компонента

a

Значение альфа-компонента

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает текущий шрифт

  • « SWFText::setColor
  • SWFText::setHeight »
  • PHP Manual
  • SWFText
  • Устанавливает текущий шрифт

SWFText::setFont

(PHP 5 < 5.3.0, PECL ming SVN)

SWFText::setFont — Устанавливает текущий шрифт

Описание

SWFText::setFont ( SWFFont $font ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext::setfont() устанавливает текущий шрифт на font.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает текущую высоту шрифта

  • « SWFText::setFont
  • SWFText::setSpacing »
  • PHP Manual
  • SWFText
  • Устанавливает текущую высоту шрифта

SWFText::setHeight

(PHP 5 < 5.3.0, PECL ming SVN)

SWFText::setHeight — Устанавливает текущую высоту шрифта

Описание

SWFText::setHeight ( float $height ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext::setheight() устанавливает текущую высоту шрифта на height. По умолчанию - 240.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает текущий интервал между шрифтами

  • « SWFText::setHeight
  • SWFTextField »
  • PHP Manual
  • SWFText
  • Устанавливает текущий интервал между шрифтами

SWFText::setSpacing

(PHP 5 < 5.3.0, PECL ming SVN)

SWFText::setSpacing — Устанавливает текущий интервал между шрифтами

Описание

SWFText::setSpacing ( float $spacing ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext::setspacing() устанавливает текущий интервал на spacing. Значение по умолчанию: 1.0. 0 - все буквы, написанные в одной и той же точке. Это не очень хорошо работает, потому что оно раздувает продвижение по букве, не добавляет столько же промежутков между буквами. Вероятно, нужно попытаться объяснить это лучше. Или просто исправить эту странную штуку, чтобы сделать постоянный интервал. Во всяком случае, это был просто способ выяснить, как двигаются буквы.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The SWFTextField class

(PHP 5 < 5.3.0, PECL ming SVN)

Введение

SWFTextField.

Обзор классов

SWFTextField {
/* Методы */
addChars ( string $chars ) : void
addString ( string $string ) : void
align ( int $alignement ) : void
__construct ([ int $flags ] )
setBounds ( float $width , float $height ) : void
setColor ( int $red , int $green , int $blue [, int $a = 255 ] ) : void
setFont ( SWFFont $font ) : void
setHeight ( float $height ) : void
setIndentation ( float $width ) : void
setLeftMargin ( float $width ) : void
setLineSpacing ( float $height ) : void
setMargins ( float $left , float $right ) : void
setName ( string $name ) : void
setPadding ( float $padding ) : void
setRightMargin ( float $width ) : void
}

Содержание

  • SWFTextField::addChars — Добавляет символы в шрифт, который будет доступен в текстовом поле
  • SWFTextField::addString — Объединение данной строки в текстовое поле
  • SWFTextField::align — Устанавливает выравнивание текстового поля
  • SWFTextField::__construct — Создает объект текстового поля
  • SWFTextField::setBounds — Устанавливает ширину и высоту текстового поля
  • SWFTextField::setColor — Устанавливает цвет текстового поля
  • SWFTextField::setFont — Устанавливает шрифт текстового поля
  • SWFTextField::setHeight — Устанавливает высоту шрифта текстового поля
  • SWFTextField::setIndentation — Устанавливает отступ первой строки
  • SWFTextField::setLeftMargin — Устанавливает ширину левого поля в текстовом поле
  • SWFTextField::setLineSpacing — Устанавливает межстрочный интервал текстового поля
  • SWFTextField::setMargins — Устанавливает поля в текстовом поле
  • SWFTextField::setName — Устанавливает имя переменной
  • SWFTextField::setPadding — Устанавливает отступ для текстового поля
  • SWFTextField::setRightMargin — Устанавливает ширину правого поля в текстовом поле


Добавляет символы в шрифт, который будет доступен в текстовом поле

  • « SWFTextField
  • SWFTextField::addString »
  • PHP Manual
  • SWFTextField
  • Добавляет символы в шрифт, который будет доступен в текстовом поле

SWFTextField::addChars

(PHP 5 < 5.3.0, PECL ming SVN)

SWFTextField::addChars — Добавляет символы в шрифт, который будет доступен в текстовом поле

Описание

SWFTextField::addChars ( string $chars ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFTextField::addString() - Объединение данной строки в текстовое поле


Объединение данной строки в текстовое поле

  • « SWFTextField::addChars
  • SWFTextField::align »
  • PHP Manual
  • SWFTextField
  • Объединение данной строки в текстовое поле

SWFTextField::addString

(PHP 5 < 5.3.0, PECL ming SVN)

SWFTextField::addString — Объединение данной строки в текстовое поле

Описание

SWFTextField::addString ( string $string ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setname() объединяет строку string в текстовое поле.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает выравнивание текстового поля

  • « SWFTextField::addString
  • SWFTextField::__construct »
  • PHP Manual
  • SWFTextField
  • Устанавливает выравнивание текстового поля

SWFTextField::align

(PHP 5 < 5.3.0, PECL ming SVN)

SWFTextField::align — Устанавливает выравнивание текстового поля

Описание

SWFTextField::align ( int $alignement ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::align() устанавливает выравнивание текстового поля в alignement. Допустимые значения для alignement : SWFTEXTFIELD_ALIGN_LEFT, SWFTEXTFIELD_ALIGN_RIGHT, SWFTEXTFIELD_ALIGN_CENTER и SWFTEXTFIELD_ALIGN_JUSTIFY.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Создает объект текстового поля

  • « SWFTextField::align
  • SWFTextField::setBounds »
  • PHP Manual
  • SWFTextField
  • Создает объект текстового поля

SWFTextField::__construct

(PHP 5 < 5.3.0, PECL ming SVN)

SWFTextField::__construct — Создает объект текстового поля

Описание

SWFTextField::__construct ([ int $flags ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield() создает новый объект текстового поля. Текстовые поля менее гибкие, чем swftext() объекты - они не могут быть повернуты, масштабированы пропорционально или перекошены, но они могут использоваться как записи формы, и могут использовать шрифты, определенные браузером.

Необязательные флаги изменяют поведение текстового поля. Допустимы следующие значения:

  • SWFTEXTFIELD_DRAWBOX рисует контур текстового поля
  • SWFTEXTFIELD_HASLENGTH
  • SWFTEXTFIELD_HTML позволяет разметку текста с использованием HTML-тегов
  • SWFTEXTFIELD_MULTILINE позволяет несколько строк
  • SWFTEXTFIELD_NOEDIT указывает, что поле не должно быть доступно для редактирования
  • SWFTEXTFIELD_NOSELECT делает поле недоступным для выбора
  • SWFTEXTFIELD_PASSWORD скрывает ввод данных
  • SWFTEXTFIELD_WORDWRAP позволяет переносить на новую строку текст
Флаги объединяются с помощью побитовой операции OR. Например,
<?php
$t = newSWFTextField(SWFTEXTFIELD_PASSWORD | SWFTEXTFIELD_NOEDIT);
?>
создает абсолютно бесполезное нередактируемое поле пароля.

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::__construct
  • SWFTextField::setColor »
  • PHP Manual
  • SWFTextField
  • Устанавливает ширину и высоту текстового поля

SWFTextField::setBounds

(PHP 5 < 5.3.0, PECL ming SVN)

SWFTextField::setBounds — Устанавливает ширину и высоту текстового поля

Описание

SWFTextField::setBounds ( float $width , float $height ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setbounds() устанавливает ширину текстового поля на значение width и высоту, переданную в height. Если вы не зададите границы самостоятельно, Ming плохо понимает, что такое границы.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает цвет текстового поля

  • « SWFTextField::setBounds
  • SWFTextField::setFont »
  • PHP Manual
  • SWFTextField
  • Устанавливает цвет текстового поля

SWFTextField::setColor

(PHP 5 < 5.3.0, PECL ming SVN)

SWFTextField::setColor — Устанавливает цвет текстового поля

Описание

SWFTextField::setColor ( int $red , int $green , int $blue [, int $a = 255 ] ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setcolor() устанавливает цвет текстового поля. Значение по умолчанию полностью непрозрачное. Цвет представлен с использованием системы RGB.

Список параметров

Параметры представляют собой целые числа от 0 до 255 или шестнадцатеричные значения между 0x00 и 0xFF:

red

Значение красного компонента

green

Значение зеленого компонента

blue

Значение синего компонента

a

Значение альфа-компонента

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает шрифт текстового поля

  • « SWFTextField::setColor
  • SWFTextField::setHeight »
  • PHP Manual
  • SWFTextField
  • Устанавливает шрифт текстового поля

SWFTextField::setFont

(PHP 5 < 5.3.0, PECL ming SVN)

SWFTextField::setFont — Устанавливает шрифт текстового поля

Описание

SWFTextField::setFont ( SWFFont $font ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setfont() устанавливает шрифт текстового поля на [определенный браузером?] шрифт в font.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает высоту шрифта текстового поля

  • « SWFTextField::setFont
  • SWFTextField::setIndentation »
  • PHP Manual
  • SWFTextField
  • Устанавливает высоту шрифта текстового поля

SWFTextField::setHeight

(PHP 5 < 5.3.0, PECL ming SVN)

SWFTextField::setHeight — Устанавливает высоту шрифта текстового поля

Описание

SWFTextField::setHeight ( float $height ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setheight() устанавливает высоту шрифта текстового поля на заданное значение в параметре height. По умолчанию - 240.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает отступ первой строки

  • « SWFTextField::setHeight
  • SWFTextField::setLeftMargin »
  • PHP Manual
  • SWFTextField
  • Устанавливает отступ первой строки

SWFTextField::setIndentation

(PHP 5 < 5.3.0, PECL ming SVN)

SWFTextField::setIndentation — Устанавливает отступ первой строки

Описание

SWFTextField::setIndentation ( float $width ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setindentation() устанавливает отступ первой строки в текстовом поле на значение в параметре width.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает ширину левого поля в текстовом поле

  • « SWFTextField::setIndentation
  • SWFTextField::setLineSpacing »
  • PHP Manual
  • SWFTextField
  • Устанавливает ширину левого поля в текстовом поле

SWFTextField::setLeftMargin

(PHP 5 < 5.3.0, PECL ming SVN)

SWFTextField::setLeftMargin — Устанавливает ширину левого поля в текстовом поле

Описание

SWFTextField::setLeftMargin ( float $width ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setleftmargin() устанавливает ширину левого поля в текстовом поле на значение параметра width. По умолчанию - 0.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает межстрочный интервал текстового поля

  • « SWFTextField::setLeftMargin
  • SWFTextField::setMargins »
  • PHP Manual
  • SWFTextField
  • Устанавливает межстрочный интервал текстового поля

SWFTextField::setLineSpacing

(PHP 5 < 5.3.0, PECL ming SVN)

SWFTextField::setLineSpacing — Устанавливает межстрочный интервал текстового поля

Описание

SWFTextField::setLineSpacing ( float $height ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setlinespacing() устанавливает межстрочный интервал данного текстового поля на значение, заданное в параметре height. По умолчанию - 40.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает поля в текстовом поле

  • « SWFTextField::setLineSpacing
  • SWFTextField::setName »
  • PHP Manual
  • SWFTextField
  • Устанавливает поля в текстовом поле

SWFTextField::setMargins

(PHP 5 < 5.3.0, PECL ming SVN)

SWFTextField::setMargins — Устанавливает поля в текстовом поле

Описание

SWFTextField::setMargins ( float $left , float $right ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setmargins() установить поля сразу для всех сторон.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает имя переменной

  • « SWFTextField::setMargins
  • SWFTextField::setPadding »
  • PHP Manual
  • SWFTextField
  • Устанавливает имя переменной

SWFTextField::setName

(PHP 5 < 5.3.0, PECL ming SVN)

SWFTextField::setName — Устанавливает имя переменной

Описание

SWFTextField::setName ( string $name ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setname() устанавливает имя переменной данного текстового поля на name для формы.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает отступ для текстового поля

  • « SWFTextField::setName
  • SWFTextField::setRightMargin »
  • PHP Manual
  • SWFTextField
  • Устанавливает отступ для текстового поля

SWFTextField::setPadding

(PHP 5 < 5.3.0, PECL ming SVN)

SWFTextField::setPadding — Устанавливает отступ для текстового поля

Описание

SWFTextField::setPadding ( float $padding ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает ширину правого поля в текстовом поле

  • « SWFTextField::setPadding
  • SWFVideoStream »
  • PHP Manual
  • SWFTextField
  • Устанавливает ширину правого поля в текстовом поле

SWFTextField::setRightMargin

(PHP 5 < 5.3.0, PECL ming SVN)

SWFTextField::setRightMargin — Устанавливает ширину правого поля в текстовом поле

Описание

SWFTextField::setRightMargin ( float $width ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setrightmargin() устанавливает ширину правого поля в текстовом поле на width. По умолчанию - 0.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The SWFVideoStream class

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

Введение

SWFVideoStream.

Обзор классов

SWFVideoStream {
/* Методы */
__construct ([ string $file ] )
getNumFrames ( void ) : int
setDimension ( int $x , int $y ) : void
}

Содержание

  • SWFVideoStream::__construct — Возвращает объект класса SWFVideoStream
  • SWFVideoStream::getNumFrames — Возвращает количество кадров в видео-файле
  • SWFVideoStream::setDimension — Устанавливает размер видео


Возвращает объект класса SWFVideoStream

  • « SWFVideoStream
  • SWFVideoStream::getNumFrames »
  • PHP Manual
  • SWFVideoStream
  • Возвращает объект класса SWFVideoStream

SWFVideoStream::__construct

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

SWFVideoStream::__construct — Возвращает объект класса SWFVideoStream

Описание

SWFVideoStream::__construct ([ string $file ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Возвращает количество кадров в видео-файле

  • « SWFVideoStream::__construct
  • SWFVideoStream::setDimension »
  • PHP Manual
  • SWFVideoStream
  • Возвращает количество кадров в видео-файле

SWFVideoStream::getNumFrames

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

SWFVideoStream::getNumFrames — Возвращает количество кадров в видео-файле

Описание

SWFVideoStream::getNumFrames ( void ) : int

Эта функция возвращает количество видео-кадров из SWFVideoStream.

Возвращаемые значения

Возвращает количество кадров как целое число


Устанавливает размер видео

  • « SWFVideoStream::getNumFrames
  • PDF »
  • PHP Manual
  • SWFVideoStream
  • Устанавливает размер видео

SWFVideoStream::setDimension

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

SWFVideoStream::setDimension — Устанавливает размер видео

Описание

SWFVideoStream::setDimension ( int $x , int $y ) : void

Устанавливает ширину и высоту для потокового видео.

Список параметров

x

Ширина в пикселях.

y

Высота в пикселях.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


PDF

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Примеры использования
  • Функции PDF
    • PDF_activate_item — Активировать элемент структуры или другой элемент содержимого
    • PDF_add_annotation — Добавить аннотацию [устарело]
    • PDF_add_bookmark — Добавить закладку для текущей страницы [устарело]
    • PDF_add_launchlink — Добавить аннотацию запуска для текущей страницы [устарело]
    • PDF_add_locallink — Добавить аннотацию ссылки для текущей страницы [deprecated]
    • PDF_add_nameddest — Создание именованного места назначения
    • PDF_add_note — Установить аннотацию для текущей страницы [устарело]
    • PDF_add_outline — Добавить закладку для текущей страницы [устарело]
    • PDF_add_pdflink — Добавить аннотацию ссылки на файл для текущей страницы [устарело]
    • PDF_add_table_cell — Добавить ячейку в новую или существующую таблицу
    • PDF_add_textflow — Создание Textflow или добавление текста в существующий Textflow
    • PDF_add_thumbnail — Добавить миниатюру для текущей страницы
    • PDF_add_weblink — Добавить веб-ссылку для текущей страницы [устарело]
    • PDF_arc — Рисует дугу окружности против часовой стрелки
    • PDF_arcn — Рисует дугу окружности по часовой стрелке
    • PDF_attach_file — Добавить вложение для текущей страницы [устарело]
    • PDF_begin_document — Создать новый PDF-файл
    • PDF_begin_font — Start a Type 3 font definition
    • PDF_begin_glyph — Start glyph definition for Type 3 font
    • PDF_begin_item — Open structure element or other content item
    • PDF_begin_layer — Start layer
    • PDF_begin_page_ext — Start new page
    • PDF_begin_page — Start new page [deprecated]
    • PDF_begin_pattern — Запустить определение шаблона
    • PDF_begin_template_ext — Start template definition
    • PDF_begin_template — Start template definition [deprecated]
    • PDF_circle — Рисует окружность
    • PDF_clip — Clip to current path
    • PDF_close_image — Закрывает изображение
    • PDF_close_pdi_page — Close the page handle
    • PDF_close_pdi — Закрыть входной PDF-документ [устарело]
    • PDF_close — Закрывает pdf-документ [устаревшее]
    • PDF_closepath_fill_stroke — Close, fill and stroke current path
    • PDF_closepath_stroke — Close and stroke path
    • PDF_closepath — Close current path
    • PDF_concat — Concatenate a matrix to the CTM
    • PDF_continue_text — Вывести текст на следующей строке
    • PDF_create_3dview — Создает объемное изображение
    • PDF_create_action — Создает действие для объекта или события
    • PDF_create_annotation — Создает прямоугольную аннотацию
    • PDF_create_bookmark — Create bookmark
    • PDF_create_field — Create form field
    • PDF_create_fieldgroup — Create form field group
    • PDF_create_gstate — Create graphics state object
    • PDF_create_pvf — Create PDFlib virtual file
    • PDF_create_textflow — Create textflow object
    • PDF_curveto — Draw Bezier curve
    • PDF_define_layer — Создать определение слоя
    • PDF_delete_pvf — Delete PDFlib virtual file
    • PDF_delete_table — Delete table object
    • PDF_delete_textflow — Delete textflow object
    • PDF_delete — Удаляет объект PDFlib
    • PDF_encoding_set_char — Add glyph name and/or Unicode value
    • PDF_end_document — Close PDF file
    • PDF_end_font — Terminate Type 3 font definition
    • PDF_end_glyph — Terminate glyph definition for Type 3 font
    • PDF_end_item — Close structure element or other content item
    • PDF_end_layer — Деактивировать все активные слои
    • PDF_end_page_ext — Finish page
    • PDF_end_page — Finish page
    • PDF_end_pattern — Finish pattern
    • PDF_end_template — Finish template
    • PDF_endpath — End current path
    • PDF_fill_imageblock — Fill image block with variable data
    • PDF_fill_pdfblock — Fill PDF block with variable data
    • PDF_fill_stroke — Fill and stroke path
    • PDF_fill_textblock — Fill text block with variable data
    • PDF_fill — Fill current path
    • PDF_findfont — Prepare font for later use [deprecated]
    • PDF_fit_image — Place image or template
    • PDF_fit_pdi_page — Place imported PDF page
    • PDF_fit_table — Place table on page
    • PDF_fit_textflow — Format textflow in rectangular area
    • PDF_fit_textline — Place single line of text
    • PDF_get_apiname — Получить имя неудачной функции API
    • PDF_get_buffer — Get PDF output buffer
    • PDF_get_errmsg — Возвращает текст ошибки
    • PDF_get_errnum — Возвращает код ошибки
    • PDF_get_font — Возвращает шрифт [устаревшее]
    • PDF_get_fontname — Возвращает название шрифта [устаревшее]
    • PDF_get_fontsize — Font handling [deprecated]
    • PDF_get_image_height — Возвращает высоту изображения [устаревшее]
    • PDF_get_image_width — Возвращает ширину изображения [устаревшее]
    • PDF_get_majorversion — Get major version number [deprecated]
    • PDF_get_minorversion — Get minor version number [deprecated]
    • PDF_get_parameter — Get string parameter
    • PDF_get_pdi_parameter — Get PDI string parameter [deprecated]
    • PDF_get_pdi_value — Get PDI numerical parameter [deprecated]
    • PDF_get_value — Get numerical parameter
    • PDF_info_font — Query detailed information about a loaded font
    • PDF_info_matchbox — Query matchbox information
    • PDF_info_table — Retrieve table information
    • PDF_info_textflow — Query textflow state
    • PDF_info_textline — Perform textline formatting and query metrics
    • PDF_initgraphics — Сброс графического состояния
    • PDF_lineto — Нарисовать линию
    • PDF_load_3ddata — Load 3D model
    • PDF_load_font — Search and prepare font
    • PDF_load_iccprofile — Search and prepare ICC profile
    • PDF_load_image — Open image file
    • PDF_makespotcolor — Make spot color
    • PDF_moveto — Установить текущую точку
    • PDF_new — Создает объект PDFlib
    • PDF_open_ccitt — Open raw CCITT image [deprecated]
    • PDF_open_file — Создает PDF-файл [устаревшее]
    • PDF_open_gif — Открывает GIF-изображение [устаревшее]
    • PDF_open_image_file — Read image from file [deprecated]
    • PDF_open_image — Use image data [deprecated]
    • PDF_open_jpeg — Открывает JPEG-изображение [устаревшее]
    • PDF_open_memory_image — Open image created with PHP's image functions [not supported]
    • PDF_open_pdi_document — Prepare a pdi document
    • PDF_open_pdi_page — Prepare a page
    • PDF_open_pdi — Open PDF file [deprecated]
    • PDF_open_tiff — Открывает TIFF-изображение [устаревшее]
    • PDF_pcos_get_number — Get value of pCOS path with type number or boolean
    • PDF_pcos_get_stream — Get contents of pCOS path with type stream, fstream, or string
    • PDF_pcos_get_string — Get value of pCOS path with type name, string, or boolean
    • PDF_place_image — Place image on the page [deprecated]
    • PDF_place_pdi_page — Place PDF page [deprecated]
    • PDF_process_pdi — Process imported PDF document
    • PDF_rect — Рисует прямоугольник
    • PDF_restore — Restore graphics state
    • PDF_resume_page — Resume page
    • PDF_rotate — Поворачивает систему координат
    • PDF_save — Save graphics state
    • PDF_scale — Масштабирует систему координат
    • PDF_set_border_color — Set border color of annotations [deprecated]
    • PDF_set_border_dash — Set border dash style of annotations [deprecated]
    • PDF_set_border_style — Set border style of annotations [deprecated]
    • PDF_set_char_spacing — Set character spacing [deprecated]
    • PDF_set_duration — Set duration between pages [deprecated]
    • PDF_set_gstate — Activate graphics state object
    • PDF_set_horiz_scaling — Set horizontal text scaling [deprecated]
    • PDF_set_info_author — Fill the author document info field [deprecated]
    • PDF_set_info_creator — Fill the creator document info field [deprecated]
    • PDF_set_info_keywords — Fill the keywords document info field [deprecated]
    • PDF_set_info_subject — Fill the subject document info field [deprecated]
    • PDF_set_info_title — Fill the title document info field [deprecated]
    • PDF_set_info — Fill document info field
    • PDF_set_layer_dependency — Define relationships among layers
    • PDF_set_leading — Set distance between text lines [deprecated]
    • PDF_set_parameter — Set string parameter
    • PDF_set_text_matrix — Set text matrix [deprecated]
    • PDF_set_text_pos — Устанавливает позицию текста
    • PDF_set_text_rendering — Determine text rendering [deprecated]
    • PDF_set_text_rise — Set text rise [deprecated]
    • PDF_set_value — Set numerical parameter
    • PDF_set_word_spacing — Set spacing between words [deprecated]
    • PDF_setcolor — Set fill and stroke color
    • PDF_setdash — Set simple dash pattern
    • PDF_setdashpattern — Set dash pattern
    • PDF_setflat — Set flatness
    • PDF_setfont — Set font
    • PDF_setgray_fill — Set fill color to gray [deprecated]
    • PDF_setgray_stroke — Set stroke color to gray [deprecated]
    • PDF_setgray — Set color to gray [deprecated]
    • PDF_setlinecap — Set linecap parameter
    • PDF_setlinejoin — Set linejoin parameter
    • PDF_setlinewidth — Set line width
    • PDF_setmatrix — Set current transformation matrix
    • PDF_setmiterlimit — Set miter limit
    • PDF_setpolydash — Set complicated dash pattern [deprecated]
    • PDF_setrgbcolor_fill — Set fill rgb color values [deprecated]
    • PDF_setrgbcolor_stroke — Set stroke rgb color values [deprecated]
    • PDF_setrgbcolor — Set fill and stroke rgb color values [deprecated]
    • PDF_shading_pattern — Define shading pattern
    • PDF_shading — Define blend
    • PDF_shfill — Fill area with shading
    • PDF_show_boxed — Output text in a box [deprecated]
    • PDF_show_xy — Output text at given position
    • PDF_show — Output text at current position
    • PDF_skew — Skew the coordinate system
    • PDF_stringwidth — Return width of text
    • PDF_stroke — Stroke path
    • PDF_suspend_page — Suspend page
    • PDF_translate — Установить начало системы координат
    • PDF_utf16_to_utf8 — Конвертирует строку из UTF-16 в UTF-8
    • PDF_utf32_to_utf16 — Конвертирует строку из UTF-32 в UTF-16
    • PDF_utf8_to_utf16 — Конвертирует строку из UTF-8 в UTF-16


Введение

Функции PDF в PHP могут создавать файлы PDF с использованием библиотеки PDFlib, созданной PDFlib GmbH (» www.pdflib.com). Версия с ограничениями PDFlib Lite 7 доступна бесплатно, но с 2010 года больше не поддерживается разработчиком. Интеграция PDFlib в PHP все еще активно поддерживается PDFlib GmbH. В основном она направлена на коммерческую версию, но может также использоваться и с бесплатной старой PDFlib Lite.

Если вы хотите воспользоваться PDFlib, то предлагаем вам ознакомиться с примерами, которые входят во все пакеты PDFlib, а также содержат отсылки к обширной документации стандарта PDF. Как минимум, вам следует обратить внимание на пример hello.php, чтобы изучить основы использования PDFlib.

Замечание:

Если вы заинтересованы в альтернативных генераторах PDF, которые не используют внешние PDF библиотеки, то обратитесь к этому FAQ.


Требования

PDFlib Lite доступна как открытый код. Тем не менее, лицензия PDFlib Lite позволяет бесплатное использование с определенными ограничениями. PDFlib Lite функционально ограничен, относительно PDFlib, пожалуйста, обратитесь к вебсайту PDFlib для получения дополнительной информации. Полная версия PDFlib доступна для скачивания по ссылке » http://www.pdflib.com/products/pdflib-family/, но требует приобретения лицензии при использовании в коммерческих целях.

Проблемы, связанные с более старыми версиями PDFlib

Любая версия PHP 4 после 9 Марта 2000 г. не поддерживает версии PDFlib старше чем 3.0.

PDFlib версии 4.0 и выше поддерживается PHP 4.3.0 более поздними версиями.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/pdflib.

Чтобы иметь возможность работать с этими функциями в PHP < 4.3.9, вы должны скомпилировать PHP с опцией --with-pdflib[=DIR] . DIR - это каталог установки PDFlib, по умолчанию /usr/local.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

PDF_new() создает новый объект PDFlib, требующийся для большинства PDF функций.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • PDF
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Примеры использования »
  • PHP Manual
  • PDF
  • Примеры

Примеры

Содержание

  • Примеры использования


Примеры использования

Большинство функций достаточно просты в использовании. Самой сложной частью, вероятно, является создание первого PDF-файла. Следующий пример должен помочь начать работу. Пример разработан для PHP 4 и создаёт файл hello.pdf с одной страницей. При этом наполняется содержимое документа, загружается шрифт Helvetica-Bold и создается текст "Hello world! (says PHP)".

Пример #1 Пример PDFlib на PHP 4

<?php
$p = PDF_new();

/*  Создание нового PDF-файла; указание имени PDF-файла для размещения на диске */
if (PDF_begin_document($p, "", "") == 0) {
    die("Ошибка: " . PDF_get_errmsg($p));
}

PDF_set_info($p, "Creator", "hello.php");
PDF_set_info($p, "Author", "Rainer Schaaf");
PDF_set_info($p, "Title", "Hello world (PHP)!");

PDF_begin_page_ext($p, 595, 842, "");

$font = PDF_load_font($p, "Helvetica-Bold", "winansi", "");

PDF_setfont($p, $font, 24.0);
PDF_set_text_pos($p, 50, 700);
PDF_show($p, "Hello world!");
PDF_continue_text($p, "(says PHP)");
PDF_end_page_ext($p, "");

PDF_end_document($p, "");

$buf = PDF_get_buffer($p);
$len = strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=hello.pdf");
print $buf;

PDF_delete($p);
?>

Следующий пример показывает использование PDFlib в PHP 5. Он использует новые обработки исключений и инкапсуляцию, доступные в PHP 5. Он создаёт файл hello.pdf с одной страницей. Пример определяет некоторое содержимое документа, загружает шрифт Helvetica-Bold и выводит текст "Hello world! (says PHP)".

Пример #2 Пример PDFlib на PHP 5

<?php

try {
    $p = new PDFlib();

    /*  Создание нового PDF-файла с указанием имени PDF-файла на диске */
    if ($p->begin_document("", "") == 0) {
        die("Ошибка: " . $p->get_errmsg());
    }

    $p->set_info("Creator", "hello.php");
    $p->set_info("Author", "Rainer Schaaf");
    $p->set_info("Title", "Hello world (PHP)!");

    $p->begin_page_ext(595, 842, "");

    $font = $p->load_font("Helvetica-Bold", "winansi", "");

    $p->setfont($font, 24.0);
    $p->set_text_pos(50, 700);
    $p->show("Hello world!");
    $p->continue_text("(says PHP)");
    $p->end_page_ext("");

    $p->end_document("");

    $buf = $p->get_buffer();
    $len = strlen($buf);

    header("Content-type: application/pdf");
    header("Content-Length: $len");
    header("Content-Disposition: inline; filename=hello.pdf");
    print $buf;
}
catch (PDFlibException $e) {
    die("Произошла ошибка PDFlib в примере hello:\n" .
    "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " .
    $e->get_errmsg() . "\n");
}
catch (Exception $e) {
    die($e);
}
$p = 0;
?>


Функции PDF

Замечания об устаревших функциях PDFlib

Начиная с PHP 4.0.5, PHP модуль для PDFlib официально поддерживается PDFlib GmbH. Это означает, что все функции, описанные в руководстве PDFlib Reference Manual, поддерживаются PHP 4 по тому же назначению и с теми же параметрами. Тем не менее, с PDFlib версии 5.0.4 и выше все параметры должны быть указаны. Из соображений совместимости, PDFlib в обязательном порядке, по-прежнему поддерживает большинство устаревших функций, но они должны быть заменены их новыми версиями. PDFlib GmbH не осуществляет поддержку при возникновении проблем в использовании этих устаревших функций. Документация этого раздела обозначает старые функции меткой "Deprecated" и предлагает для использования функции взамен устаревшим.

Содержание

  • PDF_activate_item — Активировать элемент структуры или другой элемент содержимого
  • PDF_add_annotation — Добавить аннотацию [устарело]
  • PDF_add_bookmark — Добавить закладку для текущей страницы [устарело]
  • PDF_add_launchlink — Добавить аннотацию запуска для текущей страницы [устарело]
  • PDF_add_locallink — Добавить аннотацию ссылки для текущей страницы [deprecated]
  • PDF_add_nameddest — Создание именованного места назначения
  • PDF_add_note — Установить аннотацию для текущей страницы [устарело]
  • PDF_add_outline — Добавить закладку для текущей страницы [устарело]
  • PDF_add_pdflink — Добавить аннотацию ссылки на файл для текущей страницы [устарело]
  • PDF_add_table_cell — Добавить ячейку в новую или существующую таблицу
  • PDF_add_textflow — Создание Textflow или добавление текста в существующий Textflow
  • PDF_add_thumbnail — Добавить миниатюру для текущей страницы
  • PDF_add_weblink — Добавить веб-ссылку для текущей страницы [устарело]
  • PDF_arc — Рисует дугу окружности против часовой стрелки
  • PDF_arcn — Рисует дугу окружности по часовой стрелке
  • PDF_attach_file — Добавить вложение для текущей страницы [устарело]
  • PDF_begin_document — Создать новый PDF-файл
  • PDF_begin_font — Start a Type 3 font definition
  • PDF_begin_glyph — Start glyph definition for Type 3 font
  • PDF_begin_item — Open structure element or other content item
  • PDF_begin_layer — Start layer
  • PDF_begin_page_ext — Start new page
  • PDF_begin_page — Start new page [deprecated]
  • PDF_begin_pattern — Запустить определение шаблона
  • PDF_begin_template_ext — Start template definition
  • PDF_begin_template — Start template definition [deprecated]
  • PDF_circle — Рисует окружность
  • PDF_clip — Clip to current path
  • PDF_close_image — Закрывает изображение
  • PDF_close_pdi_page — Close the page handle
  • PDF_close_pdi — Закрыть входной PDF-документ [устарело]
  • PDF_close — Закрывает pdf-документ [устаревшее]
  • PDF_closepath_fill_stroke — Close, fill and stroke current path
  • PDF_closepath_stroke — Close and stroke path
  • PDF_closepath — Close current path
  • PDF_concat — Concatenate a matrix to the CTM
  • PDF_continue_text — Вывести текст на следующей строке
  • PDF_create_3dview — Создает объемное изображение
  • PDF_create_action — Создает действие для объекта или события
  • PDF_create_annotation — Создает прямоугольную аннотацию
  • PDF_create_bookmark — Create bookmark
  • PDF_create_field — Create form field
  • PDF_create_fieldgroup — Create form field group
  • PDF_create_gstate — Create graphics state object
  • PDF_create_pvf — Create PDFlib virtual file
  • PDF_create_textflow — Create textflow object
  • PDF_curveto — Draw Bezier curve
  • PDF_define_layer — Создать определение слоя
  • PDF_delete_pvf — Delete PDFlib virtual file
  • PDF_delete_table — Delete table object
  • PDF_delete_textflow — Delete textflow object
  • PDF_delete — Удаляет объект PDFlib
  • PDF_encoding_set_char — Add glyph name and/or Unicode value
  • PDF_end_document — Close PDF file
  • PDF_end_font — Terminate Type 3 font definition
  • PDF_end_glyph — Terminate glyph definition for Type 3 font
  • PDF_end_item — Close structure element or other content item
  • PDF_end_layer — Деактивировать все активные слои
  • PDF_end_page_ext — Finish page
  • PDF_end_page — Finish page
  • PDF_end_pattern — Finish pattern
  • PDF_end_template — Finish template
  • PDF_endpath — End current path
  • PDF_fill_imageblock — Fill image block with variable data
  • PDF_fill_pdfblock — Fill PDF block with variable data
  • PDF_fill_stroke — Fill and stroke path
  • PDF_fill_textblock — Fill text block with variable data
  • PDF_fill — Fill current path
  • PDF_findfont — Prepare font for later use [deprecated]
  • PDF_fit_image — Place image or template
  • PDF_fit_pdi_page — Place imported PDF page
  • PDF_fit_table — Place table on page
  • PDF_fit_textflow — Format textflow in rectangular area
  • PDF_fit_textline — Place single line of text
  • PDF_get_apiname — Получить имя неудачной функции API
  • PDF_get_buffer — Get PDF output buffer
  • PDF_get_errmsg — Возвращает текст ошибки
  • PDF_get_errnum — Возвращает код ошибки
  • PDF_get_font — Возвращает шрифт [устаревшее]
  • PDF_get_fontname — Возвращает название шрифта [устаревшее]
  • PDF_get_fontsize — Font handling [deprecated]
  • PDF_get_image_height — Возвращает высоту изображения [устаревшее]
  • PDF_get_image_width — Возвращает ширину изображения [устаревшее]
  • PDF_get_majorversion — Get major version number [deprecated]
  • PDF_get_minorversion — Get minor version number [deprecated]
  • PDF_get_parameter — Get string parameter
  • PDF_get_pdi_parameter — Get PDI string parameter [deprecated]
  • PDF_get_pdi_value — Get PDI numerical parameter [deprecated]
  • PDF_get_value — Get numerical parameter
  • PDF_info_font — Query detailed information about a loaded font
  • PDF_info_matchbox — Query matchbox information
  • PDF_info_table — Retrieve table information
  • PDF_info_textflow — Query textflow state
  • PDF_info_textline — Perform textline formatting and query metrics
  • PDF_initgraphics — Сброс графического состояния
  • PDF_lineto — Нарисовать линию
  • PDF_load_3ddata — Load 3D model
  • PDF_load_font — Search and prepare font
  • PDF_load_iccprofile — Search and prepare ICC profile
  • PDF_load_image — Open image file
  • PDF_makespotcolor — Make spot color
  • PDF_moveto — Установить текущую точку
  • PDF_new — Создает объект PDFlib
  • PDF_open_ccitt — Open raw CCITT image [deprecated]
  • PDF_open_file — Создает PDF-файл [устаревшее]
  • PDF_open_gif — Открывает GIF-изображение [устаревшее]
  • PDF_open_image_file — Read image from file [deprecated]
  • PDF_open_image — Use image data [deprecated]
  • PDF_open_jpeg — Открывает JPEG-изображение [устаревшее]
  • PDF_open_memory_image — Open image created with PHP's image functions [not supported]
  • PDF_open_pdi_document — Prepare a pdi document
  • PDF_open_pdi_page — Prepare a page
  • PDF_open_pdi — Open PDF file [deprecated]
  • PDF_open_tiff — Открывает TIFF-изображение [устаревшее]
  • PDF_pcos_get_number — Get value of pCOS path with type number or boolean
  • PDF_pcos_get_stream — Get contents of pCOS path with type stream, fstream, or string
  • PDF_pcos_get_string — Get value of pCOS path with type name, string, or boolean
  • PDF_place_image — Place image on the page [deprecated]
  • PDF_place_pdi_page — Place PDF page [deprecated]
  • PDF_process_pdi — Process imported PDF document
  • PDF_rect — Рисует прямоугольник
  • PDF_restore — Restore graphics state
  • PDF_resume_page — Resume page
  • PDF_rotate — Поворачивает систему координат
  • PDF_save — Save graphics state
  • PDF_scale — Масштабирует систему координат
  • PDF_set_border_color — Set border color of annotations [deprecated]
  • PDF_set_border_dash — Set border dash style of annotations [deprecated]
  • PDF_set_border_style — Set border style of annotations [deprecated]
  • PDF_set_char_spacing — Set character spacing [deprecated]
  • PDF_set_duration — Set duration between pages [deprecated]
  • PDF_set_gstate — Activate graphics state object
  • PDF_set_horiz_scaling — Set horizontal text scaling [deprecated]
  • PDF_set_info_author — Fill the author document info field [deprecated]
  • PDF_set_info_creator — Fill the creator document info field [deprecated]
  • PDF_set_info_keywords — Fill the keywords document info field [deprecated]
  • PDF_set_info_subject — Fill the subject document info field [deprecated]
  • PDF_set_info_title — Fill the title document info field [deprecated]
  • PDF_set_info — Fill document info field
  • PDF_set_layer_dependency — Define relationships among layers
  • PDF_set_leading — Set distance between text lines [deprecated]
  • PDF_set_parameter — Set string parameter
  • PDF_set_text_matrix — Set text matrix [deprecated]
  • PDF_set_text_pos — Устанавливает позицию текста
  • PDF_set_text_rendering — Determine text rendering [deprecated]
  • PDF_set_text_rise — Set text rise [deprecated]
  • PDF_set_value — Set numerical parameter
  • PDF_set_word_spacing — Set spacing between words [deprecated]
  • PDF_setcolor — Set fill and stroke color
  • PDF_setdash — Set simple dash pattern
  • PDF_setdashpattern — Set dash pattern
  • PDF_setflat — Set flatness
  • PDF_setfont — Set font
  • PDF_setgray_fill — Set fill color to gray [deprecated]
  • PDF_setgray_stroke — Set stroke color to gray [deprecated]
  • PDF_setgray — Set color to gray [deprecated]
  • PDF_setlinecap — Set linecap parameter
  • PDF_setlinejoin — Set linejoin parameter
  • PDF_setlinewidth — Set line width
  • PDF_setmatrix — Set current transformation matrix
  • PDF_setmiterlimit — Set miter limit
  • PDF_setpolydash — Set complicated dash pattern [deprecated]
  • PDF_setrgbcolor_fill — Set fill rgb color values [deprecated]
  • PDF_setrgbcolor_stroke — Set stroke rgb color values [deprecated]
  • PDF_setrgbcolor — Set fill and stroke rgb color values [deprecated]
  • PDF_shading_pattern — Define shading pattern
  • PDF_shading — Define blend
  • PDF_shfill — Fill area with shading
  • PDF_show_boxed — Output text in a box [deprecated]
  • PDF_show_xy — Output text at given position
  • PDF_show — Output text at current position
  • PDF_skew — Skew the coordinate system
  • PDF_stringwidth — Return width of text
  • PDF_stroke — Stroke path
  • PDF_suspend_page — Suspend page
  • PDF_translate — Установить начало системы координат
  • PDF_utf16_to_utf8 — Конвертирует строку из UTF-16 в UTF-8
  • PDF_utf32_to_utf16 — Конвертирует строку из UTF-32 в UTF-16
  • PDF_utf8_to_utf16 — Конвертирует строку из UTF-8 в UTF-16


Активировать элемент структуры или другой элемент содержимого

  • « Функции PDF
  • PDF_add_annotation »
  • PHP Manual
  • Функции PDF
  • Активировать элемент структуры или другой элемент содержимого

PDF_activate_item

(PECL pdflib >= 2.0.0)

PDF_activate_item — Активировать элемент структуры или другой элемент содержимого

Описание

PDF_activate_item ( resource $pdfdoc , int $id ) : bool

Активирует ранее созданный элемент структуры или другой элемент содержимого. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Добавить аннотацию [устарело]

  • « PDF_activate_item
  • PDF_add_bookmark »
  • PHP Manual
  • Функции PDF
  • Добавить аннотацию [устарело]

PDF_add_annotation

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_annotation — Добавить аннотацию [устарело]

Описание

Функция устарела, вместо нее используйте PDF_create_annotation() с type=Text.


Добавить закладку для текущей страницы [устарело]

  • « PDF_add_annotation
  • PDF_add_launchlink »
  • PHP Manual
  • Функции PDF
  • Добавить закладку для текущей страницы [устарело]

PDF_add_bookmark

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_add_bookmark — Добавить закладку для текущей страницы [устарело]

Описание

Функция устарела, начиная с PDFlib версии 6, используйте PDF_create_bookmark() вместо нее.


Добавить аннотацию запуска для текущей страницы [устарело]

  • « PDF_add_bookmark
  • PDF_add_locallink »
  • PHP Manual
  • Функции PDF
  • Добавить аннотацию запуска для текущей страницы [устарело]

PDF_add_launchlink

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_launchlink — Добавить аннотацию запуска для текущей страницы [устарело]

Описание

PDF_add_launchlink ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $filename ) : bool

Добавляет ссылку на веб-ресурс.

Функция устарела, начиная с PDFlib версии 6,
используйте вместо этого PDF_create_action() вместе с
type=Launch и
PDF_create_annotation() с
type=Link.


Добавить аннотацию ссылки для текущей страницы [deprecated]

  • « PDF_add_launchlink
  • PDF_add_nameddest »
  • PHP Manual
  • Функции PDF
  • Добавить аннотацию ссылки для текущей страницы [deprecated]

PDF_add_locallink

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_locallink — Добавить аннотацию ссылки для текущей страницы [deprecated]

Описание

PDF_add_locallink ( resource $pdfdoc , float $lowerleftx , float $lowerlefty , float $upperrightx , float $upperrighty , int $page , string $dest ) : bool

Добавить аннотацию ссылки к цели в текущем PDF-файле. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Функция устарела, начиная с PDFlib версии 6, испольуйте вместо этого
PDF_create_action() с type=GoTo
и PDF_create_annotation() с
type=Link.


Создание именованного места назначения

  • « PDF_add_locallink
  • PDF_add_note »
  • PHP Manual
  • Функции PDF
  • Создание именованного места назначения

PDF_add_nameddest

(PECL pdflib >= 2.0.0)

PDF_add_nameddest — Создание именованного места назначения

Описание

PDF_add_nameddest ( resource $pdfdoc , string $name , string $optlist ) : bool

Создает именованное место назначение на произвольной странице текущего документа. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установить аннотацию для текущей страницы [устарело]

  • « PDF_add_nameddest
  • PDF_add_outline »
  • PHP Manual
  • Функции PDF
  • Установить аннотацию для текущей страницы [устарело]

PDF_add_note

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_note — Установить аннотацию для текущей страницы [устарело]

Описание

PDF_add_note ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $contents , string $title , string $icon , int $open ) : bool

Устанавливает аннотацию для текущей страницы. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Функция устарела, начиная с PDFlib версии 6, используйте вместо этого PDF_create_annotation() с type=Text.


Добавить закладку для текущей страницы [устарело]

  • « PDF_add_note
  • PDF_add_pdflink »
  • PHP Manual
  • Функции PDF
  • Добавить закладку для текущей страницы [устарело]

PDF_add_outline

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_outline — Добавить закладку для текущей страницы [устарело]

Описание

Функция устарела, вместо нее используйте PDF_create_bookmark().


Добавить аннотацию ссылки на файл для текущей страницы [устарело]

  • « PDF_add_outline
  • PDF_add_table_cell »
  • PHP Manual
  • Функции PDF
  • Добавить аннотацию ссылки на файл для текущей страницы [устарело]

PDF_add_pdflink

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_pdflink — Добавить аннотацию ссылки на файл для текущей страницы [устарело]

Описание

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 ) : bool

Добавить аннотацию ссылки на файл к PDF-документу. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Функция устарела, начиная с PDFlib версии 6, используйте вместо этого
PDF_create_action() с
type=GoToR и
PDF_create_annotation() с
type=Link.


Добавить ячейку в новую или существующую таблицу

  • « PDF_add_pdflink
  • PDF_add_textflow »
  • PHP Manual
  • Функции PDF
  • Добавить ячейку в новую или существующую таблицу

PDF_add_table_cell

(PECL pdflib >= 2.1.0)

PDF_add_table_cell — Добавить ячейку в новую или существующую таблицу

Описание

PDF_add_table_cell ( resource $pdfdoc , int $table , int $column , int $row , string $text , string $optlist ) : int

Добавляет ячейку в новую или существующую таблицу.


Создание Textflow или добавление текста в существующий Textflow

  • « PDF_add_table_cell
  • PDF_add_thumbnail »
  • PHP Manual
  • Функции PDF
  • Создание Textflow или добавление текста в существующий Textflow

PDF_add_textflow

(PECL pdflib >= 2.1.0)

PDF_add_textflow — Создание Textflow или добавление текста в существующий Textflow

Описание

PDF_add_textflow ( resource $pdfdoc , int $textflow , string $text , string $optlist ) : int

Создает объект Textflow или добавляет текст и явные параметры к существующему Textflow.


Добавить миниатюру для текущей страницы

  • « PDF_add_textflow
  • PDF_add_weblink »
  • PHP Manual
  • Функции PDF
  • Добавить миниатюру для текущей страницы

PDF_add_thumbnail

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_thumbnail — Добавить миниатюру для текущей страницы

Описание

PDF_add_thumbnail ( resource $pdfdoc , int $image ) : bool

Добавляет существующее изображение в качестве миниатюры для текущей страницы. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Добавить веб-ссылку для текущей страницы [устарело]

  • « PDF_add_thumbnail
  • PDF_arc »
  • PHP Manual
  • Функции PDF
  • Добавить веб-ссылку для текущей страницы [устарело]

PDF_add_weblink

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_weblink — Добавить веб-ссылку для текущей страницы [устарело]

Описание

PDF_add_weblink ( resource $pdfdoc , float $lowerleftx , float $lowerlefty , float $upperrightx , float $upperrighty , string $url ) : bool

Добавляет аннотацию веб-ссылки к цели url. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Функция устарела, начиная с PDFlib версии 6, используйте вместо нее
PDF_create_action() с type=URI
и PDF_create_annotation() с
type=Link.


Рисует дугу окружности против часовой стрелки

  • « PDF_add_weblink
  • PDF_arcn »
  • PHP Manual
  • Функции PDF
  • Рисует дугу окружности против часовой стрелки

PDF_arc

(PHP 4, PECL pdflib >= 1.0.0)

PDF_arc — Рисует дугу окружности против часовой стрелки

Описание

PDF_arc ( resource $p , float $x , float $y , float $r , float $alpha , float $beta ) : bool

Рисует дугу окружности против часовой стрелки.


Рисует дугу окружности по часовой стрелке

  • « PDF_arc
  • PDF_attach_file »
  • PHP Manual
  • Функции PDF
  • Рисует дугу окружности по часовой стрелке

PDF_arcn

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_arcn — Рисует дугу окружности по часовой стрелке

Описание

PDF_arcn ( resource $p , float $x , float $y , float $r , float $alpha , float $beta ) : bool

За исключением направления рисования, эта функция ведет себя так же, как PDF_arc().


Добавить вложение для текущей страницы [устарело]

  • « PDF_arcn
  • PDF_begin_document »
  • PHP Manual
  • Функции PDF
  • Добавить вложение для текущей страницы [устарело]

PDF_attach_file

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_attach_file — Добавить вложение для текущей страницы [устарело]

Описание

PDF_attach_file ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $filename , string $description , string $author , string $mimetype , string $icon ) : bool

Добавляет вложение для текущей страницы. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Функция устарела, начиная с PDFlib версии 6, используйте вместо нее PDF_create_annotation() с type=FileAttachment.


Создать новый PDF-файл

  • « PDF_attach_file
  • PDF_begin_font »
  • PHP Manual
  • Функции PDF
  • Создать новый PDF-файл

PDF_begin_document

(PECL pdflib >= 2.0.0)

PDF_begin_document — Создать новый PDF-файл

Описание

PDF_begin_document ( resource $pdfdoc , string $filename , string $optlist ) : int

Создает новый PDF-файл с различными опциями.


Start a Type 3 font definition

  • « PDF_begin_document
  • PDF_begin_glyph »
  • PHP Manual
  • Функции PDF
  • Start a Type 3 font definition

PDF_begin_font

(PECL pdflib >= 2.0.0)

PDF_begin_font — Start a Type 3 font definition

Описание

PDF_begin_font ( resource $pdfdoc , string $filename , float $a , float $b , float $c , float $d , float $e , float $f , string $optlist ) : bool

Starts a Type 3 font definition.


Start glyph definition for Type 3 font

  • « PDF_begin_font
  • PDF_begin_item »
  • PHP Manual
  • Функции PDF
  • Start glyph definition for Type 3 font

PDF_begin_glyph

(PECL pdflib >= 2.0.0)

PDF_begin_glyph — Start glyph definition for Type 3 font

Описание

PDF_begin_glyph ( resource $pdfdoc , string $glyphname , float $wx , float $llx , float $lly , float $urx , float $ury ) : bool

Starts a glyph definition for a Type 3 font.


Open structure element or other content item

  • « PDF_begin_glyph
  • PDF_begin_layer »
  • PHP Manual
  • Функции PDF
  • Open structure element or other content item

PDF_begin_item

(PECL pdflib >= 2.0.0)

PDF_begin_item — Open structure element or other content item

Описание

PDF_begin_item ( resource $pdfdoc , string $tag , string $optlist ) : int

Opens a structure element or other content item with attributes supplied as options.


Start layer

  • « PDF_begin_item
  • PDF_begin_page_ext »
  • PHP Manual
  • Функции PDF
  • Start layer

PDF_begin_layer

(PECL pdflib >= 2.0.0)

PDF_begin_layer — Start layer

Описание

PDF_begin_layer ( resource $pdfdoc , int $layer ) : bool

Starts a layer for subsequent output on the page. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function requires PDF 1.5.


Start new page

  • « PDF_begin_layer
  • PDF_begin_page »
  • PHP Manual
  • Функции PDF
  • Start new page

PDF_begin_page_ext

(PECL pdflib >= 2.0.0)

PDF_begin_page_ext — Start new page

Описание

PDF_begin_page_ext ( resource $pdfdoc , float $width , float $height , string $optlist ) : bool

Adds a new page to the document, and specifies various options. The parameters width and height are the dimensions of the new page in points. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Common Page Sizes in Points
name | size
A0 | 2380 x 3368
A1 | 1684 x 2380
A2 | 1190 x 1684
A3 | 842 x 1190
A4 | 595 x 842
A5 | 421 x 595
A6 | 297 x 421
B5 | 501 x 709
letter (8.5" x 11") | 612 x 792
legal (8.5" x 14") | 612 x 1008
ledger (17" x 11") | 1224 x 792
11" x 17" | 792 x 1224


Start new page [deprecated]

  • « PDF_begin_page_ext
  • PDF_begin_pattern »
  • PHP Manual
  • Функции PDF
  • Start new page [deprecated]

PDF_begin_page

(PHP 4, PECL pdflib >= 1.0.0)

PDF_begin_page — Start new page [deprecated]

Описание

PDF_begin_page ( resource $pdfdoc , float $width , float $height ) : bool

Adds a new page to the document. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 6, use PDF_begin_page_ext() instead.


Запустить определение шаблона

  • « PDF_begin_page
  • PDF_begin_template_ext »
  • PHP Manual
  • Функции PDF
  • Запустить определение шаблона

PDF_begin_pattern

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_begin_pattern — Запустить определение шаблона

Описание

PDF_begin_pattern ( resource $pdfdoc , float $width , float $height , float $xstep , float $ystep , int $painttype ) : int

Запускает новое определение шаблона.


Start template definition

  • « PDF_begin_pattern
  • PDF_begin_template »
  • PHP Manual
  • Функции PDF
  • Start template definition

PDF_begin_template_ext

(PECL pdflib >= 2.1.0)

PDF_begin_template_ext — Start template definition

Описание

PDF_begin_template_ext ( resource $pdfdoc , float $width , float $height , string $optlist ) : int

Starts a new template definition.


Start template definition [deprecated]

  • « PDF_begin_template_ext
  • PDF_circle »
  • PHP Manual
  • Функции PDF
  • Start template definition [deprecated]

PDF_begin_template

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_begin_template — Start template definition [deprecated]

Описание

PDF_begin_template ( resource $pdfdoc , float $width , float $height ) : int

Starts a new template definition.

This function is deprecated since PDFlib version 7, use PDF_begin_template_ext() instead.


Рисует окружность

  • « PDF_begin_template
  • PDF_clip »
  • PHP Manual
  • Функции PDF
  • Рисует окружность

PDF_circle

(PHP 4, PECL pdflib >= 1.0.0)

PDF_circle — Рисует окружность

Описание

PDF_circle ( resource $pdfdoc , float $x , float $y , float $r ) : bool

Добавляет окружность. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Clip to current path

  • « PDF_circle
  • PDF_close_image »
  • PHP Manual
  • Функции PDF
  • Clip to current path

PDF_clip

(PHP 4, PECL pdflib >= 1.0.0)

PDF_clip — Clip to current path

Описание

PDF_clip ( resource $p ) : bool

Uses the current path as clipping path, and terminate the path. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Закрывает изображение

  • « PDF_clip
  • PDF_close_pdi_page »
  • PHP Manual
  • Функции PDF
  • Закрывает изображение

PDF_close_image

(PHP 4, PECL pdflib >= 1.0.0)

PDF_close_image — Закрывает изображение

Описание

PDF_close_image ( resource $p , int $image ) : bool

Закрывает изображение image, полученное с помощью функции PDF_open_image().


Close the page handle

  • « PDF_close_image
  • PDF_close_pdi »
  • PHP Manual
  • Функции PDF
  • Close the page handle

PDF_close_pdi_page

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_close_pdi_page — Close the page handle

Описание

PDF_close_pdi_page ( resource $p , int $page ) : bool

Closes the page handle, and frees all page-related resources. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Закрыть входной PDF-документ [устарело]

  • « PDF_close_pdi_page
  • PDF_close »
  • PHP Manual
  • Функции PDF
  • Закрыть входной PDF-документ [устарело]

PDF_close_pdi

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_close_pdi — Закрыть входной PDF-документ [устарело]

Описание

PDF_close_pdi ( resource $p , int $doc ) : bool

Закрывает все открытые дескрипторы страниц, а также входной PDF-документ. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Функция устарела, начиная с PDFlib версии 7, используйте PDF_close_pdi_document() вместо нее.


Закрывает pdf-документ [устаревшее]

  • « PDF_close_pdi
  • PDF_closepath_fill_stroke »
  • PHP Manual
  • Функции PDF
  • Закрывает pdf-документ [устаревшее]

PDF_close

(PHP 4, PECL pdflib >= 1.0.0)

PDF_close — Закрывает pdf-документ [устаревшее]

Описание

PDF_close ( resource $p ) : bool

Закрывает сгенерированный PDF-файл и освобождает все относящиеся к документу ресурсы. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Эта функция устарела начиная с 6-ой версии PDFlib, вместо нее используйте PDF_end_document().


Close, fill and stroke current path

  • « PDF_close
  • PDF_closepath_stroke »
  • PHP Manual
  • Функции PDF
  • Close, fill and stroke current path

PDF_closepath_fill_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_closepath_fill_stroke — Close, fill and stroke current path

Описание

PDF_closepath_fill_stroke ( resource $p ) : bool

Closes the path, fills, and strokes it. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Close and stroke path

  • « PDF_closepath_fill_stroke
  • PDF_closepath »
  • PHP Manual
  • Функции PDF
  • Close and stroke path

PDF_closepath_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_closepath_stroke — Close and stroke path

Описание

PDF_closepath_stroke ( resource $p ) : bool

Closes the path, and strokes it. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Close current path

  • « PDF_closepath_stroke
  • PDF_concat »
  • PHP Manual
  • Функции PDF
  • Close current path

PDF_closepath

(PHP 4, PECL pdflib >= 1.0.0)

PDF_closepath — Close current path

Описание

PDF_closepath ( resource $p ) : bool

Closes the current path. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Concatenate a matrix to the CTM

  • « PDF_closepath
  • PDF_continue_text »
  • PHP Manual
  • Функции PDF
  • Concatenate a matrix to the CTM

PDF_concat

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_concat — Concatenate a matrix to the CTM

Описание

PDF_concat ( resource $p , float $a , float $b , float $c , float $d , float $e , float $f ) : bool

Concatenates a matrix to the current transformation matrix (CTM). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Вывести текст на следующей строке

  • « PDF_concat
  • PDF_create_3dview »
  • PHP Manual
  • Функции PDF
  • Вывести текст на следующей строке

PDF_continue_text

(PHP 4, PECL pdflib >= 1.0.0)

PDF_continue_text — Вывести текст на следующей строке

Описание

PDF_continue_text ( resource $p , string $text ) : bool

Печатает text на следующей строке. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Создает объемное изображение

  • « PDF_continue_text
  • PDF_create_action »
  • PHP Manual
  • Функции PDF
  • Создает объемное изображение

PDF_create_3dview

(PECL pdflib >= 2.1.0)

PDF_create_3dview — Создает объемное изображение

Описание

PDF_create_3dview ( resource $pdfdoc , string $username , string $optlist ) : int

Создает объемное изображение.

Эта функция требует PDF 1.6.


Создает действие для объекта или события

  • « PDF_create_3dview
  • PDF_create_annotation »
  • PHP Manual
  • Функции PDF
  • Создает действие для объекта или события

PDF_create_action

(PECL pdflib >= 2.0.0)

PDF_create_action — Создает действие для объекта или события

Описание

PDF_create_action ( resource $pdfdoc , string $type , string $optlist ) : int

Создает действие, которое может быть применено к различным объектам или событиям.


Создает прямоугольную аннотацию

  • « PDF_create_action
  • PDF_create_bookmark »
  • PHP Manual
  • Функции PDF
  • Создает прямоугольную аннотацию

PDF_create_annotation

(PECL pdflib >= 2.0.0)

PDF_create_annotation — Создает прямоугольную аннотацию

Описание

PDF_create_annotation ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $type , string $optlist ) : bool

Создает прямоугольную аннотацию на текущей странице.


Create bookmark

  • « PDF_create_annotation
  • PDF_create_field »
  • PHP Manual
  • Функции PDF
  • Create bookmark

PDF_create_bookmark

(PECL pdflib >= 2.0.0)

PDF_create_bookmark — Create bookmark

Описание

PDF_create_bookmark ( resource $pdfdoc , string $text , string $optlist ) : int

Creates a bookmark subject to various options.


Create form field

  • « PDF_create_bookmark
  • PDF_create_fieldgroup »
  • PHP Manual
  • Функции PDF
  • Create form field

PDF_create_field

(PECL pdflib >= 2.0.0)

PDF_create_field — Create form field

Описание

PDF_create_field ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $name , string $type , string $optlist ) : bool

Creates a form field on the current page subject to various options.


Create form field group

  • « PDF_create_field
  • PDF_create_gstate »
  • PHP Manual
  • Функции PDF
  • Create form field group

PDF_create_fieldgroup

(PECL pdflib >= 2.0.0)

PDF_create_fieldgroup — Create form field group

Описание

PDF_create_fieldgroup ( resource $pdfdoc , string $name , string $optlist ) : bool

Creates a form field group subject to various options.


Create graphics state object

  • « PDF_create_fieldgroup
  • PDF_create_pvf »
  • PHP Manual
  • Функции PDF
  • Create graphics state object

PDF_create_gstate

(PECL pdflib >= 2.0.0)

PDF_create_gstate — Create graphics state object

Описание

PDF_create_gstate ( resource $pdfdoc , string $optlist ) : int

Creates a graphics state object subject to various options.


Create PDFlib virtual file

  • « PDF_create_gstate
  • PDF_create_textflow »
  • PHP Manual
  • Функции PDF
  • Create PDFlib virtual file

PDF_create_pvf

(PECL pdflib >= 2.0.0)

PDF_create_pvf — Create PDFlib virtual file

Описание

PDF_create_pvf ( resource $pdfdoc , string $filename , string $data , string $optlist ) : bool

Creates a named virtual read-only file from data provided in memory.


Create textflow object

  • « PDF_create_pvf
  • PDF_curveto »
  • PHP Manual
  • Функции PDF
  • Create textflow object

PDF_create_textflow

(PECL pdflib >= 2.0.0)

PDF_create_textflow — Create textflow object

Описание

PDF_create_textflow ( resource $pdfdoc , string $text , string $optlist ) : int

Preprocesses text for later formatting and creates a textflow object.


Draw Bezier curve

  • « PDF_create_textflow
  • PDF_define_layer »
  • PHP Manual
  • Функции PDF
  • Draw Bezier curve

PDF_curveto

(PHP 4, PECL pdflib >= 1.0.0)

PDF_curveto — Draw Bezier curve

Описание

PDF_curveto ( resource $p , float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 ) : bool

Draws a Bezier curve from the current point, using 3 more control points. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Создать определение слоя

  • « PDF_curveto
  • PDF_delete_pvf »
  • PHP Manual
  • Функции PDF
  • Создать определение слоя

PDF_define_layer

(PECL pdflib >= 2.0.0)

PDF_define_layer — Создать определение слоя

Описание

PDF_define_layer ( resource $pdfdoc , string $name , string $optlist ) : int

Создает новое определение слоя.

Функция требует PDF 1.5.


Delete PDFlib virtual file

  • « PDF_define_layer
  • PDF_delete_table »
  • PHP Manual
  • Функции PDF
  • Delete PDFlib virtual file

PDF_delete_pvf

(PECL pdflib >= 2.0.0)

PDF_delete_pvf — Delete PDFlib virtual file

Описание

PDF_delete_pvf ( resource $pdfdoc , string $filename ) : int

Deletes a named virtual file and frees its data structures (but not the contents).


Delete table object

  • « PDF_delete_pvf
  • PDF_delete_textflow »
  • PHP Manual
  • Функции PDF
  • Delete table object

PDF_delete_table

(PECL pdflib >= 2.1.0)

PDF_delete_table — Delete table object

Описание

PDF_delete_table ( resource $pdfdoc , int $table , string $optlist ) : bool

Deletes a table and all associated data structures.


Delete textflow object

  • « PDF_delete_table
  • PDF_delete »
  • PHP Manual
  • Функции PDF
  • Delete textflow object

PDF_delete_textflow

(PECL pdflib >= 2.0.0)

PDF_delete_textflow — Delete textflow object

Описание

PDF_delete_textflow ( resource $pdfdoc , int $textflow ) : bool

Deletes a textflow and the associated data structures.


Удаляет объект PDFlib

  • « PDF_delete_textflow
  • PDF_encoding_set_char »
  • PHP Manual
  • Функции PDF
  • Удаляет объект PDFlib

PDF_delete

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_delete — Удаляет объект PDFlib

Описание

PDF_delete ( resource $pdfdoc ) : bool

Удаляет объект PDFlib и освобождает все внутренние ресурсы. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Add glyph name and/or Unicode value

  • « PDF_delete
  • PDF_end_document »
  • PHP Manual
  • Функции PDF
  • Add glyph name and/or Unicode value

PDF_encoding_set_char

(PECL pdflib >= 2.0.0)

PDF_encoding_set_char — Add glyph name and/or Unicode value

Описание

PDF_encoding_set_char ( resource $pdfdoc , string $encoding , int $slot , string $glyphname , int $uv ) : bool

Adds a glyph name and/or Unicode value to a custom encoding.


Close PDF file

  • « PDF_encoding_set_char
  • PDF_end_font »
  • PHP Manual
  • Функции PDF
  • Close PDF file

PDF_end_document

(PECL pdflib >= 2.0.0)

PDF_end_document — Close PDF file

Описание

PDF_end_document ( resource $pdfdoc , string $optlist ) : bool

Closes the generated PDF file and applies various options.


Terminate Type 3 font definition

  • « PDF_end_document
  • PDF_end_glyph »
  • PHP Manual
  • Функции PDF
  • Terminate Type 3 font definition

PDF_end_font

(PECL pdflib >= 2.0.0)

PDF_end_font — Terminate Type 3 font definition

Описание

PDF_end_font ( resource $pdfdoc ) : bool

Terminates a Type 3 font definition.


Terminate glyph definition for Type 3 font

  • « PDF_end_font
  • PDF_end_item »
  • PHP Manual
  • Функции PDF
  • Terminate glyph definition for Type 3 font

PDF_end_glyph

(PECL pdflib >= 2.0.0)

PDF_end_glyph — Terminate glyph definition for Type 3 font

Описание

PDF_end_glyph ( resource $pdfdoc ) : bool

Terminates a glyph definition for a Type 3 font.


Close structure element or other content item

  • « PDF_end_glyph
  • PDF_end_layer »
  • PHP Manual
  • Функции PDF
  • Close structure element or other content item

PDF_end_item

(PECL pdflib >= 2.0.0)

PDF_end_item — Close structure element or other content item

Описание

PDF_end_item ( resource $pdfdoc , int $id ) : bool

Closes a structure element or other content item.


Деактивировать все активные слои

  • « PDF_end_item
  • PDF_end_page_ext »
  • PHP Manual
  • Функции PDF
  • Деактивировать все активные слои

PDF_end_layer

(PECL pdflib >= 2.0.0)

PDF_end_layer — Деактивировать все активные слои

Описание

PDF_end_layer ( resource $pdfdoc ) : bool

Деактивирует все активные слои. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Функция требует PDF 1.5.


Finish page

  • « PDF_end_layer
  • PDF_end_page »
  • PHP Manual
  • Функции PDF
  • Finish page

PDF_end_page_ext

(PECL pdflib >= 2.0.0)

PDF_end_page_ext — Finish page

Описание

PDF_end_page_ext ( resource $pdfdoc , string $optlist ) : bool

Finishes a page, and applies various options. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Finish page

  • « PDF_end_page_ext
  • PDF_end_pattern »
  • PHP Manual
  • Функции PDF
  • Finish page

PDF_end_page

(PHP 4, PECL pdflib >= 1.0.0)

PDF_end_page — Finish page

Описание

PDF_end_page ( resource $p ) : bool

Finishes the page. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Finish pattern

  • « PDF_end_page
  • PDF_end_template »
  • PHP Manual
  • Функции PDF
  • Finish pattern

PDF_end_pattern

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_end_pattern — Finish pattern

Описание

PDF_end_pattern ( resource $p ) : bool

Finishes the pattern definition. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Finish template

  • « PDF_end_pattern
  • PDF_endpath »
  • PHP Manual
  • Функции PDF
  • Finish template

PDF_end_template

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_end_template — Finish template

Описание

PDF_end_template ( resource $p ) : bool

Finishes a template definition. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


End current path

  • « PDF_end_template
  • PDF_fill_imageblock »
  • PHP Manual
  • Функции PDF
  • End current path

PDF_endpath

(PHP 4, PECL pdflib >= 1.0.0)

PDF_endpath — End current path

Описание

PDF_endpath ( resource $p ) : bool

Ends the current path without filling or stroking it.


Fill image block with variable data

  • « PDF_endpath
  • PDF_fill_pdfblock »
  • PHP Manual
  • Функции PDF
  • Fill image block with variable data

PDF_fill_imageblock

(PECL pdflib >= 2.0.0)

PDF_fill_imageblock — Fill image block with variable data

Описание

PDF_fill_imageblock ( resource $pdfdoc , int $page , string $blockname , int $image , string $optlist ) : int

Fills an image block with variable data according to its properties.

This function is only available in the PDFlib Personalization Server (PPS).


Fill PDF block with variable data

  • « PDF_fill_imageblock
  • PDF_fill_stroke »
  • PHP Manual
  • Функции PDF
  • Fill PDF block with variable data

PDF_fill_pdfblock

(PECL pdflib >= 2.0.0)

PDF_fill_pdfblock — Fill PDF block with variable data

Описание

PDF_fill_pdfblock ( resource $pdfdoc , int $page , string $blockname , int $contents , string $optlist ) : int

Fills a PDF block with variable data according to its properties.

This function is only available in the PDFlib Personalization Server (PPS).


Fill and stroke path

  • « PDF_fill_pdfblock
  • PDF_fill_textblock »
  • PHP Manual
  • Функции PDF
  • Fill and stroke path

PDF_fill_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_fill_stroke — Fill and stroke path

Описание

PDF_fill_stroke ( resource $p ) : bool

Fills and strokes the current path with the current fill and stroke color. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Fill text block with variable data

  • « PDF_fill_stroke
  • PDF_fill »
  • PHP Manual
  • Функции PDF
  • Fill text block with variable data

PDF_fill_textblock

(PECL pdflib >= 2.0.0)

PDF_fill_textblock — Fill text block with variable data

Описание

PDF_fill_textblock ( resource $pdfdoc , int $page , string $blockname , string $text , string $optlist ) : int

Fills a text block with variable data according to its properties.

This function is only available in the PDFlib Personalization Server (PPS).


Fill current path

  • « PDF_fill_textblock
  • PDF_findfont »
  • PHP Manual
  • Функции PDF
  • Fill current path

PDF_fill

(PHP 4, PECL pdflib >= 1.0.0)

PDF_fill — Fill current path

Описание

PDF_fill ( resource $p ) : bool

Fills the interior of the current path with the current fill color. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Prepare font for later use [deprecated]

  • « PDF_fill
  • PDF_fit_image »
  • PHP Manual
  • Функции PDF
  • Prepare font for later use [deprecated]

PDF_findfont

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_findfont — Prepare font for later use [deprecated]

Описание

PDF_findfont ( resource $p , string $fontname , string $encoding , int $embed ) : int

Search for a font and prepare it 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.

This function is deprecated since PDFlib version 5, use PDF_load_font() instead.


Place image or template

  • « PDF_findfont
  • PDF_fit_pdi_page »
  • PHP Manual
  • Функции PDF
  • Place image or template

PDF_fit_image

(PECL pdflib >= 2.0.0)

PDF_fit_image — Place image or template

Описание

PDF_fit_image ( resource $pdfdoc , int $image , float $x , float $y , string $optlist ) : bool

Places an image or template on the page, subject to various options. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Place imported PDF page

  • « PDF_fit_image
  • PDF_fit_table »
  • PHP Manual
  • Функции PDF
  • Place imported PDF page

PDF_fit_pdi_page

(PECL pdflib >= 2.0.0)

PDF_fit_pdi_page — Place imported PDF page

Описание

PDF_fit_pdi_page ( resource $pdfdoc , int $page , float $x , float $y , string $optlist ) : bool

Places an imported PDF page on the page, subject to various options. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Place table on page

  • « PDF_fit_pdi_page
  • PDF_fit_textflow »
  • PHP Manual
  • Функции PDF
  • Place table on page

PDF_fit_table

(PECL pdflib >= 2.1.0)

PDF_fit_table — Place table on page

Описание

PDF_fit_table ( resource $pdfdoc , int $table , float $llx , float $lly , float $urx , float $ury , string $optlist ) : string

Places a table on the page fully or partially.


Format textflow in rectangular area

  • « PDF_fit_table
  • PDF_fit_textline »
  • PHP Manual
  • Функции PDF
  • Format textflow in rectangular area

PDF_fit_textflow

(PECL pdflib >= 2.0.0)

PDF_fit_textflow — Format textflow in rectangular area

Описание

PDF_fit_textflow ( resource $pdfdoc , int $textflow , float $llx , float $lly , float $urx , float $ury , string $optlist ) : string

Formats the next portion of a textflow into a rectangular area.


Place single line of text

  • « PDF_fit_textflow
  • PDF_get_apiname »
  • PHP Manual
  • Функции PDF
  • Place single line of text

PDF_fit_textline

(PECL pdflib >= 2.0.0)

PDF_fit_textline — Place single line of text

Описание

PDF_fit_textline ( resource $pdfdoc , string $text , float $x , float $y , string $optlist ) : bool

Places a single line of text on the page, subject to various options. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Получить имя неудачной функции API

  • « PDF_fit_textline
  • PDF_get_buffer »
  • PHP Manual
  • Функции PDF
  • Получить имя неудачной функции API

PDF_get_apiname

(PECL pdflib >= 2.0.0)

PDF_get_apiname — Получить имя неудачной функции API

Описание

PDF_get_apiname ( resource $pdfdoc ) : string

Получает имя функции API, которая последняя выбросила исключение или ошибку.


Get PDF output buffer

  • « PDF_get_apiname
  • PDF_get_errmsg »
  • PHP Manual
  • Функции PDF
  • Get PDF output buffer

PDF_get_buffer

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_get_buffer — Get PDF output buffer

Описание

PDF_get_buffer ( resource $p ) : string

Fetches the buffer containing the generated PDF data.


Возвращает текст ошибки

  • « PDF_get_buffer
  • PDF_get_errnum »
  • PHP Manual
  • Функции PDF
  • Возвращает текст ошибки

PDF_get_errmsg

(PECL pdflib >= 2.0.0)

PDF_get_errmsg — Возвращает текст ошибки

Описание

PDF_get_errmsg ( resource $pdfdoc ) : string

Возвращает текст последнего брошенного исключения или причины неудачи при вызове функции.


Возвращает код ошибки

  • « PDF_get_errmsg
  • PDF_get_font »
  • PHP Manual
  • Функции PDF
  • Возвращает код ошибки

PDF_get_errnum

(PECL pdflib >= 2.0.0)

PDF_get_errnum — Возвращает код ошибки

Описание

PDF_get_errnum ( resource $pdfdoc ) : int

Возвращает номер последнего брошенного исключения или причины неудачи при вызове функции.


Возвращает шрифт [устаревшее]

  • « PDF_get_errnum
  • PDF_get_fontname »
  • PHP Manual
  • Функции PDF
  • Возвращает шрифт [устаревшее]

PDF_get_font

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_font — Возвращает шрифт [устаревшее]

Описание

Эта функция устарела начиная с 3-ей версии PDFlib, вместо нее используйте функцию PDF_get_value() с параметром font.


Возвращает название шрифта [устаревшее]

  • « PDF_get_font
  • PDF_get_fontsize »
  • PHP Manual
  • Функции PDF
  • Возвращает название шрифта [устаревшее]

PDF_get_fontname

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_fontname — Возвращает название шрифта [устаревшее]

Описание

Эта функция устарела начиная с 3-ей версии PDFlib, вместо нее используйте функцию PDF_get_parameter() с параметром fontname.


Font handling [deprecated]

  • « PDF_get_fontname
  • PDF_get_image_height »
  • PHP Manual
  • Функции PDF
  • Font handling [deprecated]

PDF_get_fontsize

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_fontsize — Font handling [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_get_value() with the parameter fontsizeinstead.


Возвращает высоту изображения [устаревшее]

  • « PDF_get_fontsize
  • PDF_get_image_width »
  • PHP Manual
  • Функции PDF
  • Возвращает высоту изображения [устаревшее]

PDF_get_image_height

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_image_height — Возвращает высоту изображения [устаревшее]

Описание

Эта функция устарела начиная с 3-ей версии PDFlib, вместо нее используйте функцию PDF_get_value() с параметром imageheight.


Возвращает ширину изображения [устаревшее]

  • « PDF_get_image_height
  • PDF_get_majorversion »
  • PHP Manual
  • Функции PDF
  • Возвращает ширину изображения [устаревшее]

PDF_get_image_width

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_image_width — Возвращает ширину изображения [устаревшее]

Описание

Эта функция устарела начиная с 3-ей версии PDFlib, вместо нее используйте функцию PDF_get_value() с параметром imagewidth.


Get major version number [deprecated]

  • « PDF_get_image_width
  • PDF_get_minorversion »
  • PHP Manual
  • Функции PDF
  • Get major version number [deprecated]

PDF_get_majorversion

(PHP 4 >= 4.2.0, PECL pdflib >= 1.0.0)

PDF_get_majorversion — Get major version number [deprecated]

Описание

PDF_get_majorversion ( void ) : int

This function is deprecated since PDFlib version 5, use PDF_get_value() with the parameter major instead.


Get minor version number [deprecated]

  • « PDF_get_majorversion
  • PDF_get_parameter »
  • PHP Manual
  • Функции PDF
  • Get minor version number [deprecated]

PDF_get_minorversion

(PHP 4 >= 4.2.0, PECL pdflib >= 1.0.0)

PDF_get_minorversion — Get minor version number [deprecated]

Описание

PDF_get_minorversion ( void ) : int

Returns the minor version number of the PDFlib version.

This function is deprecated since PDFlib version 5, use PDF_get_value() with the parameter minor instead.


Get string parameter

  • « PDF_get_minorversion
  • PDF_get_pdi_parameter »
  • PHP Manual
  • Функции PDF
  • Get string parameter

PDF_get_parameter

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_get_parameter — Get string parameter

Описание

PDF_get_parameter ( resource $p , string $key , float $modifier ) : string

Gets the contents of some PDFlib parameter with string type.


Get PDI string parameter [deprecated]

  • « PDF_get_parameter
  • PDF_get_pdi_value »
  • PHP Manual
  • Функции PDF
  • Get PDI string parameter [deprecated]

PDF_get_pdi_parameter

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_get_pdi_parameter — Get PDI string parameter [deprecated]

Описание

PDF_get_pdi_parameter ( resource $p , string $key , int $doc , int $page , int $reserved ) : string

Gets the contents of a PDI document parameter with string type.

This function is deprecated since PDFlib version 7, use PDF_pcos_get_string() instead.


Get PDI numerical parameter [deprecated]

  • « PDF_get_pdi_parameter
  • PDF_get_value »
  • PHP Manual
  • Функции PDF
  • Get PDI numerical parameter [deprecated]

PDF_get_pdi_value

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_get_pdi_value — Get PDI numerical parameter [deprecated]

Описание

PDF_get_pdi_value ( resource $p , string $key , int $doc , int $page , int $reserved ) : float

Gets the contents of a PDI document parameter with numerical type.

This function is deprecated since PDFlib version 7, use PDF_pcos_get_number() instead.


Get numerical parameter

  • « PDF_get_pdi_value
  • PDF_info_font »
  • PHP Manual
  • Функции PDF
  • Get numerical parameter

PDF_get_value

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_get_value — Get numerical parameter

Описание

PDF_get_value ( resource $p , string $key , float $modifier ) : float

Gets the value of some PDFlib parameter with numerical type.


Query detailed information about a loaded font

  • « PDF_get_value
  • PDF_info_matchbox »
  • PHP Manual
  • Функции PDF
  • Query detailed information about a loaded font

PDF_info_font

(PECL pdflib >= 2.1.0)

PDF_info_font — Query detailed information about a loaded font

Описание

PDF_info_font ( resource $pdfdoc , int $font , string $keyword , string $optlist ) : float

Queries detailed information about a loaded font.


Query matchbox information

  • « PDF_info_font
  • PDF_info_table »
  • PHP Manual
  • Функции PDF
  • Query matchbox information

PDF_info_matchbox

(PECL pdflib >= 2.1.0)

PDF_info_matchbox — Query matchbox information

Описание

PDF_info_matchbox ( resource $pdfdoc , string $boxname , int $num , string $keyword ) : float

Queries information about a matchbox on the current page.


Retrieve table information

  • « PDF_info_matchbox
  • PDF_info_textflow »
  • PHP Manual
  • Функции PDF
  • Retrieve table information

PDF_info_table

(PECL pdflib >= 2.1.0)

PDF_info_table — Retrieve table information

Описание

PDF_info_table ( resource $pdfdoc , int $table , string $keyword ) : float

Retrieves table information related to the most recently placed table instance.


Query textflow state

  • « PDF_info_table
  • PDF_info_textline »
  • PHP Manual
  • Функции PDF
  • Query textflow state

PDF_info_textflow

(PECL pdflib >= 2.0.0)

PDF_info_textflow — Query textflow state

Описание

PDF_info_textflow ( resource $pdfdoc , int $textflow , string $keyword ) : float

Queries the current state of a textflow.


Perform textline formatting and query metrics

  • « PDF_info_textflow
  • PDF_initgraphics »
  • PHP Manual
  • Функции PDF
  • Perform textline formatting and query metrics

PDF_info_textline

(PECL pdflib >= 2.1.0)

PDF_info_textline — Perform textline formatting and query metrics

Описание

PDF_info_textline ( resource $pdfdoc , string $text , string $keyword , string $optlist ) : float

Performs textline formatting and queries the resulting metrics.


Сброс графического состояния

  • « PDF_info_textline
  • PDF_lineto »
  • PHP Manual
  • Функции PDF
  • Сброс графического состояния

PDF_initgraphics

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_initgraphics — Сброс графического состояния

Описание

PDF_initgraphics ( resource $p ) : bool

Сброс всех параметров состояния цвета и графики до их значений по умолчанию. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Нарисовать линию

  • « PDF_initgraphics
  • PDF_load_3ddata »
  • PHP Manual
  • Функции PDF
  • Нарисовать линию

PDF_lineto

(PHP 4, PECL pdflib >= 1.0.0)

PDF_lineto — Нарисовать линию

Описание

PDF_lineto ( resource $p , float $x , float $y ) : bool

Рисует линию от текущей точки к другой точке. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Load 3D model

  • « PDF_lineto
  • PDF_load_font »
  • PHP Manual
  • Функции PDF
  • Load 3D model

PDF_load_3ddata

(PECL pdflib >= 2.1.0)

PDF_load_3ddata — Load 3D model

Описание

PDF_load_3ddata ( resource $pdfdoc , string $filename , string $optlist ) : int

Loads a 3D model from a disk-based or virtual file.

This function requires PDF 1.6.


Search and prepare font

  • « PDF_load_3ddata
  • PDF_load_iccprofile »
  • PHP Manual
  • Функции PDF
  • Search and prepare font

PDF_load_font

(PECL pdflib >= 2.0.0)

PDF_load_font — Search and prepare font

Описание

PDF_load_font ( resource $pdfdoc , string $fontname , string $encoding , string $optlist ) : int

Searches for a font and prepares it for later use.


Search and prepare ICC profile

  • « PDF_load_font
  • PDF_load_image »
  • PHP Manual
  • Функции PDF
  • Search and prepare ICC profile

PDF_load_iccprofile

(PECL pdflib >= 2.0.0)

PDF_load_iccprofile — Search and prepare ICC profile

Описание

PDF_load_iccprofile ( resource $pdfdoc , string $profilename , string $optlist ) : int

Searches for an ICC profile, and prepares it for later use.


Open image file

  • « PDF_load_iccprofile
  • PDF_makespotcolor »
  • PHP Manual
  • Функции PDF
  • Open image file

PDF_load_image

(PECL pdflib >= 2.0.0)

PDF_load_image — Open image file

Описание

PDF_load_image ( resource $pdfdoc , string $imagetype , string $filename , string $optlist ) : int

Opens a disk-based or virtual image file subject to various options.


Make spot color

  • « PDF_load_image
  • PDF_moveto »
  • PHP Manual
  • Функции PDF
  • Make spot color

PDF_makespotcolor

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_makespotcolor — Make spot color

Описание

PDF_makespotcolor ( resource $p , string $spotname ) : int

Finds a built-in spot color name, or makes a named spot color from the current fill color. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установить текущую точку

  • « PDF_makespotcolor
  • PDF_new »
  • PHP Manual
  • Функции PDF
  • Установить текущую точку

PDF_moveto

(PHP 4, PECL pdflib >= 1.0.0)

PDF_moveto — Установить текущую точку

Описание

PDF_moveto ( resource $p , float $x , float $y ) : bool

Устанавливает текущую точку для графического вывода. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Создает объект PDFlib

  • « PDF_moveto
  • PDF_open_ccitt »
  • PHP Manual
  • Функции PDF
  • Создает объект PDFlib

PDF_new

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_new — Создает объект PDFlib

Описание

PDF_new ( void ) : resource

Создает новый объект PDFlib с настройками по умолчанию.


Open raw CCITT image [deprecated]

  • « PDF_new
  • PDF_open_file »
  • PHP Manual
  • Функции PDF
  • Open raw CCITT image [deprecated]

PDF_open_ccitt

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_ccitt — Open raw CCITT image [deprecated]

Описание

PDF_open_ccitt ( resource $pdfdoc , string $filename , int $width , int $height , int $BitReverse , int $k , int $Blackls1 ) : int

Opens a raw CCITT image.

This function is deprecated since PDFlib version 5, use PDF_load_image() instead.


Создает PDF-файл [устаревшее]

  • « PDF_open_ccitt
  • PDF_open_gif »
  • PHP Manual
  • Функции PDF
  • Создает PDF-файл [устаревшее]

PDF_open_file

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_file — Создает PDF-файл [устаревшее]

Описание

PDF_open_file ( resource $p , string $filename ) : bool

Создает новый PDF-файл с использованием предоставленного имени файла. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Эта функция устарела начиная с 6-ой версии PDFlib, вместо нее используйте PDF_begin_document().


Открывает GIF-изображение [устаревшее]

  • « PDF_open_file
  • PDF_open_image_file »
  • PHP Manual
  • Функции PDF
  • Открывает GIF-изображение [устаревшее]

PDF_open_gif

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_gif — Открывает GIF-изображение [устаревшее]

Описание

Эта функция устарела начиная с 3-ей версии PDFlib, вместо нее используйте PDF_load_image().


Read image from file [deprecated]

  • « PDF_open_gif
  • PDF_open_image »
  • PHP Manual
  • Функции PDF
  • Read image from file [deprecated]

PDF_open_image_file

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_image_file — Read image from file [deprecated]

Описание

PDF_open_image_file ( resource $p , string $imagetype , string $filename , string $stringparam , int $intparam ) : int

Opens an image file.

This function is deprecated since PDFlib version 5, use PDF_load_image() with the colorize, ignoremask, invert, mask, masked, and page options instead.


Use image data [deprecated]

  • « PDF_open_image_file
  • PDF_open_jpeg »
  • PHP Manual
  • Функции PDF
  • Use image data [deprecated]

PDF_open_image

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_image — Use image data [deprecated]

Описание

PDF_open_image ( resource $p , string $imagetype , string $source , string $data , int $length , int $width , int $height , int $components , int $bpc , string $params ) : int

Uses image data from a variety of data sources.

This function is deprecated since PDFlib version 5, use virtual files and PDF_load_image() instead.


Открывает JPEG-изображение [устаревшее]

  • « PDF_open_image
  • PDF_open_memory_image »
  • PHP Manual
  • Функции PDF
  • Открывает JPEG-изображение [устаревшее]

PDF_open_jpeg

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_jpeg — Открывает JPEG-изображение [устаревшее]

Описание

Эта функция устарела начиная с 3-ей версии PDFlib, вместо нее используйте PDF_load_image().


Open image created with PHP's image functions [not supported]

  • « PDF_open_jpeg
  • PDF_open_pdi_document »
  • PHP Manual
  • Функции PDF
  • Open image created with PHP's image functions [not supported]

PDF_open_memory_image

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_memory_image — Open image created with PHP's image functions [not supported]

Описание

PDF_open_memory_image ( resource $p , resource $image ) : int

This function is not supported by PDFlib GmbH.


Prepare a pdi document

  • « PDF_open_memory_image
  • PDF_open_pdi_page »
  • PHP Manual
  • Функции PDF
  • Prepare a pdi document

PDF_open_pdi_document

(PECL pdflib >= 2.1.0)

PDF_open_pdi_document — Prepare a pdi document

Описание

PDF_open_pdi_document ( resource $p , string $filename , string $optlist ) : int

Open a disk-based or virtual PDF document and prepare it for later use.


Prepare a page

  • « PDF_open_pdi_document
  • PDF_open_pdi »
  • PHP Manual
  • Функции PDF
  • Prepare a page

PDF_open_pdi_page

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_pdi_page — Prepare a page

Описание

PDF_open_pdi_page ( resource $p , int $doc , int $pagenumber , string $optlist ) : int

Prepares a page for later use with PDF_fit_pdi_page().


Open PDF file [deprecated]

  • « PDF_open_pdi_page
  • PDF_open_tiff »
  • PHP Manual
  • Функции PDF
  • Open PDF file [deprecated]

PDF_open_pdi

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_pdi — Open PDF file [deprecated]

Описание

PDF_open_pdi ( resource $pdfdoc , string $filename , string $optlist , int $len ) : int

Opens a disk-based or virtual PDF document and prepares it for later use.

This function is deprecated since PDFlib version 7, use PDF_open_pdi_document() instead.


Открывает TIFF-изображение [устаревшее]

  • « PDF_open_pdi
  • PDF_pcos_get_number »
  • PHP Manual
  • Функции PDF
  • Открывает TIFF-изображение [устаревшее]

PDF_open_tiff

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_tiff — Открывает TIFF-изображение [устаревшее]

Описание

Эта функция устарела начиная с 3-ей версии PDFlib, вместо нее используйте PDF_load_image().


Get value of pCOS path with type number or boolean

  • « PDF_open_tiff
  • PDF_pcos_get_stream »
  • PHP Manual
  • Функции PDF
  • Get value of pCOS path with type number or boolean

PDF_pcos_get_number

(PECL pdflib >= 2.1.0)

PDF_pcos_get_number — Get value of pCOS path with type number or boolean

Описание

PDF_pcos_get_number ( resource $p , int $doc , string $path ) : float

Gets the value of a pCOS path with type number or boolean.


Get contents of pCOS path with type stream, fstream, or string

  • « PDF_pcos_get_number
  • PDF_pcos_get_string »
  • PHP Manual
  • Функции PDF
  • Get contents of pCOS path with type stream, fstream, or string

PDF_pcos_get_stream

(PECL pdflib >= 2.1.0)

PDF_pcos_get_stream — Get contents of pCOS path with type stream, fstream, or string

Описание

PDF_pcos_get_stream ( resource $p , int $doc , string $optlist , string $path ) : string

Gets the contents of a pCOS path with type stream, fstream, or string.


Get value of pCOS path with type name, string, or boolean

  • « PDF_pcos_get_stream
  • PDF_place_image »
  • PHP Manual
  • Функции PDF
  • Get value of pCOS path with type name, string, or boolean

PDF_pcos_get_string

(PECL pdflib >= 2.1.0)

PDF_pcos_get_string — Get value of pCOS path with type name, string, or boolean

Описание

PDF_pcos_get_string ( resource $p , int $doc , string $path ) : string

Gets the value of a pCOS path with type name, string, or boolean.


Place image on the page [deprecated]

  • « PDF_pcos_get_string
  • PDF_place_pdi_page »
  • PHP Manual
  • Функции PDF
  • Place image on the page [deprecated]

PDF_place_image

(PHP 4, PECL pdflib >= 1.0.0)

PDF_place_image — Place image on the page [deprecated]

Описание

PDF_place_image ( resource $pdfdoc , int $image , float $x , float $y , float $scale ) : bool

Places an image and scales it. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 5, use PDF_fit_image() instead.


Place PDF page [deprecated]

  • « PDF_place_image
  • PDF_process_pdi »
  • PHP Manual
  • Функции PDF
  • Place PDF page [deprecated]

PDF_place_pdi_page

(PHP 4 >= 4.0.6, PECL pdflib >= 1.0.0)

PDF_place_pdi_page — Place PDF page [deprecated]

Описание

PDF_place_pdi_page ( resource $pdfdoc , int $page , float $x , float $y , float $sx , float $sy ) : bool

Places a PDF page and scales it. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 5, use PDF_fit_pdi_page() instead.


Process imported PDF document

  • « PDF_place_pdi_page
  • PDF_rect »
  • PHP Manual
  • Функции PDF
  • Process imported PDF document

PDF_process_pdi

(PECL pdflib >= 2.0.0)

PDF_process_pdi — Process imported PDF document

Описание

PDF_process_pdi ( resource $pdfdoc , int $doc , int $page , string $optlist ) : int

Processes certain elements of an imported PDF document.


Рисует прямоугольник

  • « PDF_process_pdi
  • PDF_restore »
  • PHP Manual
  • Функции PDF
  • Рисует прямоугольник

PDF_rect

(PHP 4, PECL pdflib >= 1.0.0)

PDF_rect — Рисует прямоугольник

Описание

PDF_rect ( resource $p , float $x , float $y , float $width , float $height ) : bool

Рисует прямоугольник. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Restore graphics state

  • « PDF_rect
  • PDF_resume_page »
  • PHP Manual
  • Функции PDF
  • Restore graphics state

PDF_restore

(PHP 4, PECL pdflib >= 1.0.0)

PDF_restore — Restore graphics state

Описание

PDF_restore ( resource $p ) : bool

Restores the most recently saved graphics state. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Resume page

  • « PDF_restore
  • PDF_rotate »
  • PHP Manual
  • Функции PDF
  • Resume page

PDF_resume_page

(PECL pdflib >= 2.0.0)

PDF_resume_page — Resume page

Описание

PDF_resume_page ( resource $pdfdoc , string $optlist ) : bool

Resumes a page to add more content to it.


Поворачивает систему координат

  • « PDF_resume_page
  • PDF_save »
  • PHP Manual
  • Функции PDF
  • Поворачивает систему координат

PDF_rotate

(PHP 4, PECL pdflib >= 1.0.0)

PDF_rotate — Поворачивает систему координат

Описание

PDF_rotate ( resource $p , float $phi ) : bool

Поворачивает систему координат. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Save graphics state

  • « PDF_rotate
  • PDF_scale »
  • PHP Manual
  • Функции PDF
  • Save graphics state

PDF_save

(PHP 4, PECL pdflib >= 1.0.0)

PDF_save — Save graphics state

Описание

PDF_save ( resource $p ) : bool

Saves the current graphics state. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Масштабирует систему координат

  • « PDF_save
  • PDF_set_border_color »
  • PHP Manual
  • Функции PDF
  • Масштабирует систему координат

PDF_scale

(PHP 4, PECL pdflib >= 1.0.0)

PDF_scale — Масштабирует систему координат

Описание

PDF_scale ( resource $p , float $sx , float $sy ) : bool

Масштабирует систему координат. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set border color of annotations [deprecated]

  • « PDF_scale
  • PDF_set_border_dash »
  • PHP Manual
  • Функции PDF
  • Set border color of annotations [deprecated]

PDF_set_border_color

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_border_color — Set border color of annotations [deprecated]

Описание

PDF_set_border_color ( resource $p , float $red , float $green , float $blue ) : bool

Sets the border color for all kinds of annotations. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 6, use the option annotcolor in PDF_create_annotation() instead.


Set border dash style of annotations [deprecated]

  • « PDF_set_border_color
  • PDF_set_border_style »
  • PHP Manual
  • Функции PDF
  • Set border dash style of annotations [deprecated]

PDF_set_border_dash

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_set_border_dash — Set border dash style of annotations [deprecated]

Описание

PDF_set_border_dash ( resource $pdfdoc , float $black , float $white ) : bool

Sets the border dash style for all kinds of annotations. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 6, use the option dasharray in PDF_create_annotation() instead.


Set border style of annotations [deprecated]

  • « PDF_set_border_dash
  • PDF_set_char_spacing »
  • PHP Manual
  • Функции PDF
  • Set border style of annotations [deprecated]

PDF_set_border_style

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_border_style — Set border style of annotations [deprecated]

Описание

PDF_set_border_style ( resource $pdfdoc , string $style , float $width ) : bool

Sets the border style for all kinds of annotations. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 6, use the options borderstyle and linewidth in PDF_create_annotation() instead.


Set character spacing [deprecated]

  • « PDF_set_border_style
  • PDF_set_duration »
  • PHP Manual
  • Функции PDF
  • Set character spacing [deprecated]

PDF_set_char_spacing

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_char_spacing — Set character spacing [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_value() with parameter charspacing instead.


Set duration between pages [deprecated]

  • « PDF_set_char_spacing
  • PDF_set_gstate »
  • PHP Manual
  • Функции PDF
  • Set duration between pages [deprecated]

PDF_set_duration

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_duration — Set duration between pages [deprecated]

Описание

This function is deprecated since PDFlib version 3, use the duration option in PDF_begin_page_ext() or PDF_end_page_ext() instead.


Activate graphics state object

  • « PDF_set_duration
  • PDF_set_horiz_scaling »
  • PHP Manual
  • Функции PDF
  • Activate graphics state object

PDF_set_gstate

(PECL pdflib >= 2.0.0)

PDF_set_gstate — Activate graphics state object

Описание

PDF_set_gstate ( resource $pdfdoc , int $gstate ) : bool

Activates a graphics state object.


Set horizontal text scaling [deprecated]

  • « PDF_set_gstate
  • PDF_set_info_author »
  • PHP Manual
  • Функции PDF
  • Set horizontal text scaling [deprecated]

PDF_set_horiz_scaling

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_horiz_scaling — Set horizontal text scaling [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_value() with parameter horizscaling instead.


Fill the author document info field [deprecated]

  • « PDF_set_horiz_scaling
  • PDF_set_info_creator »
  • PHP Manual
  • Функции PDF
  • Fill the author document info field [deprecated]

PDF_set_info_author

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_author — Fill the author document info field [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_info() instead.


Fill the creator document info field [deprecated]

  • « PDF_set_info_author
  • PDF_set_info_keywords »
  • PHP Manual
  • Функции PDF
  • Fill the creator document info field [deprecated]

PDF_set_info_creator

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_creator — Fill the creator document info field [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_info() instead.


Fill the keywords document info field [deprecated]

  • « PDF_set_info_creator
  • PDF_set_info_subject »
  • PHP Manual
  • Функции PDF
  • Fill the keywords document info field [deprecated]

PDF_set_info_keywords

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_keywords — Fill the keywords document info field [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_info() instead.


Fill the subject document info field [deprecated]

  • « PDF_set_info_keywords
  • PDF_set_info_title »
  • PHP Manual
  • Функции PDF
  • Fill the subject document info field [deprecated]

PDF_set_info_subject

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_subject — Fill the subject document info field [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_info() instead.


Fill the title document info field [deprecated]

  • « PDF_set_info_subject
  • PDF_set_info »
  • PHP Manual
  • Функции PDF
  • Fill the title document info field [deprecated]

PDF_set_info_title

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_title — Fill the title document info field [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_info() instead.


Fill document info field

  • « PDF_set_info_title
  • PDF_set_layer_dependency »
  • PHP Manual
  • Функции PDF
  • Fill document info field

PDF_set_info

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_set_info — Fill document info field

Описание

PDF_set_info ( resource $p , string $key , string $value ) : bool

Fill document information field key with value. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Define relationships among layers

  • « PDF_set_info
  • PDF_set_leading »
  • PHP Manual
  • Функции PDF
  • Define relationships among layers

PDF_set_layer_dependency

(PECL pdflib >= 2.0.0)

PDF_set_layer_dependency — Define relationships among layers

Описание

PDF_set_layer_dependency ( resource $pdfdoc , string $type , string $optlist ) : bool

Defines hierarchical and group relationships among layers. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function requires PDF 1.5.


Set distance between text lines [deprecated]

  • « PDF_set_layer_dependency
  • PDF_set_parameter »
  • PHP Manual
  • Функции PDF
  • Set distance between text lines [deprecated]

PDF_set_leading

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_leading — Set distance between text lines [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_value() with the parameter leading instead.


Set string parameter

  • « PDF_set_leading
  • PDF_set_text_matrix »
  • PHP Manual
  • Функции PDF
  • Set string parameter

PDF_set_parameter

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_parameter — Set string parameter

Описание

PDF_set_parameter ( resource $p , string $key , string $value ) : bool

Sets some PDFlib parameter with string type. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set text matrix [deprecated]

  • « PDF_set_parameter
  • PDF_set_text_pos »
  • PHP Manual
  • Функции PDF
  • Set text matrix [deprecated]

PDF_set_text_matrix

(PHP 4 <= 4.0.4)

PDF_set_text_matrix — Set text matrix [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_scale(), PDF_translate(), PDF_rotate(), or PDF_skew() instead.


Устанавливает позицию текста

  • « PDF_set_text_matrix
  • PDF_set_text_rendering »
  • PHP Manual
  • Функции PDF
  • Устанавливает позицию текста

PDF_set_text_pos

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_text_pos — Устанавливает позицию текста

Описание

PDF_set_text_pos ( resource $p , float $x , float $y ) : bool

Устанавливает позицию вывода текста на страницу. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Determine text rendering [deprecated]

  • « PDF_set_text_pos
  • PDF_set_text_rise »
  • PHP Manual
  • Функции PDF
  • Determine text rendering [deprecated]

PDF_set_text_rendering

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_text_rendering — Determine text rendering [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_value() with the textrendering parameter instead.


Set text rise [deprecated]

  • « PDF_set_text_rendering
  • PDF_set_value »
  • PHP Manual
  • Функции PDF
  • Set text rise [deprecated]

PDF_set_text_rise

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_text_rise — Set text rise [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_value() with the textrise parameter instead.


Set numerical parameter

  • « PDF_set_text_rise
  • PDF_set_word_spacing »
  • PHP Manual
  • Функции PDF
  • Set numerical parameter

PDF_set_value

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_set_value — Set numerical parameter

Описание

PDF_set_value ( resource $p , string $key , float $value ) : bool

Sets the value of some PDFlib parameter with numerical type. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set spacing between words [deprecated]

  • « PDF_set_value
  • PDF_setcolor »
  • PHP Manual
  • Функции PDF
  • Set spacing between words [deprecated]

PDF_set_word_spacing

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_word_spacing — Set spacing between words [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_value() with the wordspacing parameter instead.


Set fill and stroke color

  • « PDF_set_word_spacing
  • PDF_setdash »
  • PHP Manual
  • Функции PDF
  • Set fill and stroke color

PDF_setcolor

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setcolor — Set fill and stroke color

Описание

PDF_setcolor ( resource $p , string $fstype , string $colorspace , float $c1 , float $c2 , float $c3 , float $c4 ) : bool

Sets the current color space and color. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set simple dash pattern

  • « PDF_setcolor
  • PDF_setdashpattern »
  • PHP Manual
  • Функции PDF
  • Set simple dash pattern

PDF_setdash

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setdash — Set simple dash pattern

Описание

PDF_setdash ( resource $pdfdoc , float $b , float $w ) : bool

Sets the current dash pattern to b black and w white units. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set dash pattern

  • « PDF_setdash
  • PDF_setflat »
  • PHP Manual
  • Функции PDF
  • Set dash pattern

PDF_setdashpattern

(PECL pdflib >= 2.0.0)

PDF_setdashpattern — Set dash pattern

Описание

PDF_setdashpattern ( resource $pdfdoc , string $optlist ) : bool

Sets a dash pattern defined by an option list. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set flatness

  • « PDF_setdashpattern
  • PDF_setfont »
  • PHP Manual
  • Функции PDF
  • Set flatness

PDF_setflat

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setflat — Set flatness

Описание

PDF_setflat ( resource $pdfdoc , float $flatness ) : bool

Sets the flatness parameter. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set font

  • « PDF_setflat
  • PDF_setgray_fill »
  • PHP Manual
  • Функции PDF
  • Set font

PDF_setfont

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setfont — Set font

Описание

PDF_setfont ( resource $pdfdoc , int $font , float $fontsize ) : bool

Sets the current font in the specified fontsize, using a font handle returned by PDF_load_font(). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set fill color to gray [deprecated]

  • « PDF_setfont
  • PDF_setgray_stroke »
  • PHP Manual
  • Функции PDF
  • Set fill color to gray [deprecated]

PDF_setgray_fill

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setgray_fill — Set fill color to gray [deprecated]

Описание

PDF_setgray_fill ( resource $p , float $g ) : bool

Sets the current fill color to a gray value between 0 and 1 inclusive. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.


Set stroke color to gray [deprecated]

  • « PDF_setgray_fill
  • PDF_setgray »
  • PHP Manual
  • Функции PDF
  • Set stroke color to gray [deprecated]

PDF_setgray_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setgray_stroke — Set stroke color to gray [deprecated]

Описание

PDF_setgray_stroke ( resource $p , float $g ) : bool

Sets the current stroke color to a gray value between 0 and 1 inclusive. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.


Set color to gray [deprecated]

  • « PDF_setgray_stroke
  • PDF_setlinecap »
  • PHP Manual
  • Функции PDF
  • Set color to gray [deprecated]

PDF_setgray

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setgray — Set color to gray [deprecated]

Описание

PDF_setgray ( resource $p , float $g ) : bool

Sets the current fill and stroke color to a gray value between 0 and 1 inclusive. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.


Set linecap parameter

  • « PDF_setgray
  • PDF_setlinejoin »
  • PHP Manual
  • Функции PDF
  • Set linecap parameter

PDF_setlinecap

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setlinecap — Set linecap parameter

Описание

PDF_setlinecap ( resource $p , int $linecap ) : bool

Sets the linecap parameter to control the shape at the end of a path with respect to stroking.


Set linejoin parameter

  • « PDF_setlinecap
  • PDF_setlinewidth »
  • PHP Manual
  • Функции PDF
  • Set linejoin parameter

PDF_setlinejoin

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setlinejoin — Set linejoin parameter

Описание

PDF_setlinejoin ( resource $p , int $value ) : bool

Sets the linejoin parameter to specify the shape at the corners of paths that are stroked. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set line width

  • « PDF_setlinejoin
  • PDF_setmatrix »
  • PHP Manual
  • Функции PDF
  • Set line width

PDF_setlinewidth

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setlinewidth — Set line width

Описание

PDF_setlinewidth ( resource $p , float $width ) : bool

Sets the current line width. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set current transformation matrix

  • « PDF_setlinewidth
  • PDF_setmiterlimit »
  • PHP Manual
  • Функции PDF
  • Set current transformation matrix

PDF_setmatrix

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setmatrix — Set current transformation matrix

Описание

PDF_setmatrix ( resource $p , float $a , float $b , float $c , float $d , float $e , float $f ) : bool

Explicitly sets the current transformation matrix. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set miter limit

  • « PDF_setmatrix
  • PDF_setpolydash »
  • PHP Manual
  • Функции PDF
  • Set miter limit

PDF_setmiterlimit

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setmiterlimit — Set miter limit

Описание

PDF_setmiterlimit ( resource $pdfdoc , float $miter ) : bool

Sets the miter limit.Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set complicated dash pattern [deprecated]

  • « PDF_setmiterlimit
  • PDF_setrgbcolor_fill »
  • PHP Manual
  • Функции PDF
  • Set complicated dash pattern [deprecated]

PDF_setpolydash

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setpolydash — Set complicated dash pattern [deprecated]

Описание

This function is deprecated since PDFlib version 5, use PDF_setdashpattern() instead.


Set fill rgb color values [deprecated]

  • « PDF_setpolydash
  • PDF_setrgbcolor_stroke »
  • PHP Manual
  • Функции PDF
  • Set fill rgb color values [deprecated]

PDF_setrgbcolor_fill

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setrgbcolor_fill — Set fill rgb color values [deprecated]

Описание

PDF_setrgbcolor_fill ( resource $p , float $red , float $green , float $blue ) : bool

Sets the current fill color to the supplied RGB values. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.


Set stroke rgb color values [deprecated]

  • « PDF_setrgbcolor_fill
  • PDF_setrgbcolor »
  • PHP Manual
  • Функции PDF
  • Set stroke rgb color values [deprecated]

PDF_setrgbcolor_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setrgbcolor_stroke — Set stroke rgb color values [deprecated]

Описание

PDF_setrgbcolor_stroke ( resource $p , float $red , float $green , float $blue ) : bool

Sets the current stroke color to the supplied RGB values. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.


Set fill and stroke rgb color values [deprecated]

  • « PDF_setrgbcolor_stroke
  • PDF_shading_pattern »
  • PHP Manual
  • Функции PDF
  • Set fill and stroke rgb color values [deprecated]

PDF_setrgbcolor

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setrgbcolor — Set fill and stroke rgb color values [deprecated]

Описание

PDF_setrgbcolor ( resource $p , float $red , float $green , float $blue ) : bool

Sets the current fill and stroke color to the supplied RGB values. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.


Define shading pattern

  • « PDF_setrgbcolor
  • PDF_shading »
  • PHP Manual
  • Функции PDF
  • Define shading pattern

PDF_shading_pattern

(PECL pdflib >= 2.0.0)

PDF_shading_pattern — Define shading pattern

Описание

PDF_shading_pattern ( resource $pdfdoc , int $shading , string $optlist ) : int

Defines a shading pattern using a shading object.

This function requires PDF 1.4 or above.


Define blend

  • « PDF_shading_pattern
  • PDF_shfill »
  • PHP Manual
  • Функции PDF
  • Define blend

PDF_shading

(PECL pdflib >= 2.0.0)

PDF_shading — Define blend

Описание

PDF_shading ( resource $pdfdoc , string $shtype , float $x0 , float $y0 , float $x1 , float $y1 , float $c1 , float $c2 , float $c3 , float $c4 , string $optlist ) : int

Defines a blend from the current fill color to another color.

This function requires PDF 1.4 or above.


Fill area with shading

  • « PDF_shading
  • PDF_show_boxed »
  • PHP Manual
  • Функции PDF
  • Fill area with shading

PDF_shfill

(PECL pdflib >= 2.0.0)

PDF_shfill — Fill area with shading

Описание

PDF_shfill ( resource $pdfdoc , int $shading ) : bool

Fills an area with a shading, based on a shading object.

This function requires PDF 1.4 or above.


Output text in a box [deprecated]

  • « PDF_shfill
  • PDF_show_xy »
  • PHP Manual
  • Функции PDF
  • Output text in a box [deprecated]

PDF_show_boxed

(PHP 4, PECL pdflib >= 1.0.0)

PDF_show_boxed — Output text in a box [deprecated]

Описание

PDF_show_boxed ( resource $p , string $text , float $left , float $top , float $width , float $height , string $mode , string $feature ) : int

This function is deprecated since PDFlib version 6, use PDF_fit_textline() for single lines, or the PDF_*_textflow() functions for multi-line formatting instead.


Output text at given position

  • « PDF_show_boxed
  • PDF_show »
  • PHP Manual
  • Функции PDF
  • Output text at given position

PDF_show_xy

(PHP 4, PECL pdflib >= 1.0.0)

PDF_show_xy — Output text at given position

Описание

PDF_show_xy ( resource $p , string $text , float $x , float $y ) : bool

Prints text in the current font. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Output text at current position

  • « PDF_show_xy
  • PDF_skew »
  • PHP Manual
  • Функции PDF
  • Output text at current position

PDF_show

(PHP 4, PECL pdflib >= 1.0.0)

PDF_show — Output text at current position

Описание

PDF_show ( resource $pdfdoc , string $text ) : bool

Prints text in the current font and size at the current position. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Skew the coordinate system

  • « PDF_show
  • PDF_stringwidth »
  • PHP Manual
  • Функции PDF
  • Skew the coordinate system

PDF_skew

(PHP 4, PECL pdflib >= 1.0.0)

PDF_skew — Skew the coordinate system

Описание

PDF_skew ( resource $p , float $alpha , float $beta ) : bool

Skews the coordinate system in x and y direction by alpha and beta degrees, respectively. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Return width of text

  • « PDF_skew
  • PDF_stroke »
  • PHP Manual
  • Функции PDF
  • Return width of text

PDF_stringwidth

(PHP 4, PECL pdflib >= 1.0.0)

PDF_stringwidth — Return width of text

Описание

PDF_stringwidth ( resource $p , string $text , int $font , float $fontsize ) : float

Returns the width of text in an arbitrary font.


Stroke path

  • « PDF_stringwidth
  • PDF_suspend_page »
  • PHP Manual
  • Функции PDF
  • Stroke path

PDF_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_stroke — Stroke path

Описание

PDF_stroke ( resource $p ) : bool

Strokes the path with the current color and line width, and clear it. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Suspend page

  • « PDF_stroke
  • PDF_translate »
  • PHP Manual
  • Функции PDF
  • Suspend page

PDF_suspend_page

(PECL pdflib >= 2.0.0)

PDF_suspend_page — Suspend page

Описание

PDF_suspend_page ( resource $pdfdoc , string $optlist ) : bool

Suspends the current page so that it can later be resumed with PDF_resume_page().


Установить начало системы координат

  • « PDF_suspend_page
  • PDF_utf16_to_utf8 »
  • PHP Manual
  • Функции PDF
  • Установить начало системы координат

PDF_translate

(PHP 4, PECL pdflib >= 1.0.0)

PDF_translate — Установить начало системы координат

Описание

PDF_translate ( resource $p , float $tx , float $ty ) : bool

Переводит начало координат.


Конвертирует строку из UTF-16 в UTF-8

  • « PDF_translate
  • PDF_utf32_to_utf16 »
  • PHP Manual
  • Функции PDF
  • Конвертирует строку из UTF-16 в UTF-8

PDF_utf16_to_utf8

(PECL pdflib >= 2.0.3)

PDF_utf16_to_utf8 — Конвертирует строку из UTF-16 в UTF-8

Описание

PDF_utf16_to_utf8 ( resource $pdfdoc , string $utf16string ) : string

Конвертирует строку из формата UTF-16 в формат UTF-8.


Конвертирует строку из UTF-32 в UTF-16

  • « PDF_utf16_to_utf8
  • PDF_utf8_to_utf16 »
  • PHP Manual
  • Функции PDF
  • Конвертирует строку из UTF-32 в UTF-16

PDF_utf32_to_utf16

(PECL pdflib >= Unknown future)

PDF_utf32_to_utf16 — Конвертирует строку из UTF-32 в UTF-16

Описание

PDF_utf32_to_utf16 ( resource $pdfdoc , string $utf32string , string $ordering ) : string

Конвертирует строку из формата UTF-32 в формат UTF-16.


Конвертирует строку из UTF-8 в UTF-16

  • « PDF_utf32_to_utf16
  • wkhtmltox »
  • PHP Manual
  • Функции PDF
  • Конвертирует строку из UTF-8 в UTF-16

PDF_utf8_to_utf16

(PECL pdflib >= 2.0.3)

PDF_utf8_to_utf16 — Конвертирует строку из UTF-8 в UTF-16

Описание

PDF_utf8_to_utf16 ( resource $pdfdoc , string $utf8string , string $ordering ) : string

Конвертирует строку из формата UTF-8 в формат UTF-16.


wkhtmltox

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • wkhtmltox\PDF\Converter — Класс wkhtmltox\PDF\Converter
    • wkhtmltox\PDF\Converter::add — Добавление объекта для преобразования
    • wkhtmltox\PDF\Converter::__construct — Создать новый PDF-конвертер
    • wkhtmltox\PDF\Converter::convert — Выполнить преобразование PDF
    • wkhtmltox\PDF\Converter::getVersion — Определить версию конвертера
  • wkhtmltox\PDF\Object — Класс wkhtmltox\PDF\Object
    • wkhtmltox\PDF\Object::__construct — Создать новый объект PDF
  • wkhtmltox\Image\Converter — Класс wkhtmltox\Image\Converter
    • wkhtmltox\Image\Converter::__construct — Создать новый конвертер изображений
    • wkhtmltox\Image\Converter::convert — Выполнить преобразование изображений
    • wkhtmltox\Image\Converter::getVersion — Определить версию конвертера


Введение

libwkhtmltox - это библиотека LGPLv3 с открытым исходным кодом для отрисовки HTML в PDF и различные форматы изображений с использованием механизма отрисовки QtWebKit.


Требования

Исходные и двоичные релизы libwkhtmltox распространяются по адресу » wkhtmltopdf.org.

Предостережение

Пользователям Windows необходимо выполнить дополнительный шаг добавления wkhtmltox.dll в переменную окружения PATH.


Установка

Исходный код этого модуля и двоичные файлы для Windows доступны на » github,

Получение исходного кода и сборка модуля:

git clone https://github.com/krakjoe/wkhtmltox
cd wkhtmltox
phpize
./configure --with-wkhtmltox=/path/to/wkhtmltox/installation
make
sudo make install

Получение обновлений и повторная сборка модуля:

cd wkhtmltox
phpize --clean
git pull origin master
phpize
./configure --with-wkhtmltox=/path/to/wkhtmltox/installation
make
sudo make install


Настройка во время выполнения

Название | Описание | Значение по умолчанию | Уровень изменения | Версия
wkhtmltox.graphics | разрешить libwkhtmltox использовать графику | Off | PHP_INI_SYSTEM | PHP_INI_PERDIR | >= 0.3.2


Класс wkhtmltox\PDF\Converter

(wkhtmltox >= 0.1.0)

Введение

Преобразует входные данные HTML или набор входных данных HTML в PDF

Обзор классов

wkhtmltox\PDF\Converter {
/* Constructor */
public __construct ([ array $settings ] )
/* Методы */
public add ( wkhtmltox\PDF\Object $object ) : void
public convert ( void ) : ?string
public getVersion ( void ) : string
}

Содержание

  • wkhtmltox\PDF\Converter::add — Добавление объекта для преобразования
  • wkhtmltox\PDF\Converter::__construct — Создать новый PDF-конвертер
  • wkhtmltox\PDF\Converter::convert — Выполнить преобразование PDF
  • wkhtmltox\PDF\Converter::getVersion — Определить версию конвертера


Добавление объекта для преобразования

  • « wkhtmltox\PDF\Converter
  • wkhtmltox\PDF\Converter::__construct »
  • PHP Manual
  • wkhtmltox\PDF\Converter
  • Добавление объекта для преобразования

wkhtmltox\PDF\Converter::add

(wkhtmltox >= 0.1.0)

wkhtmltox\PDF\Converter::add — Добавление объекта для преобразования

Описание

public wkhtmltox\PDF\Converter::add ( wkhtmltox\PDF\Object $object ) : void

Добавляет данный объект в преобразование

Список параметров

object

Объект для добавления


Создать новый PDF-конвертер

  • « wkhtmltox\PDF\Converter::add
  • wkhtmltox\PDF\Converter::convert »
  • PHP Manual
  • wkhtmltox\PDF\Converter
  • Создать новый PDF-конвертер

wkhtmltox\PDF\Converter::__construct

(wkhtmltox >= 0.1.0)

wkhtmltox\PDF\Converter::__construct — Создать новый PDF-конвертер

Описание

public wkhtmltox\PDF\Converter::__construct ([ array $settings ] )

Создает PDF-конвертер, используя дополнительные параметры конфигурации

Список параметров

settings

Название | Описание | Значения | Версия
size.pageSize | размер бумаги выходного документа | A4 | >= 0.1.0
size.width | ширина выходного документа | 210mm | >= 0.1.0
size.height | высота выходного документа | 297mm | >= 0.1.0
orientation ориентация выходного документа
Landscape
Portrait
>= 0.1.0
colorMode цветовой режим выходного документа
Color
Greyscale
>= 0.1.0
resolution | разрешение выходного документа | most likely has no effect | >= 0.1.0
dpi | dpi to use while printing | 80 | >= 0.1.0
pageOffset | целое число, добавленное к номерам страниц, генерирующим верхние и нижние колонтитулы и оглавление | >= 0.1.0
copies | >= 0.1.0
collate | разобрать по копиям | boolean | >= 0.1.0
outline | создать контур PDF | boolean | >= 0.1.0
outlineDepth | максимальная глубина контура | >= 0.1.0
dumpOutline | путь к файлу дампа структуры XML | >= 0.1.0
out | путь к выходному файлу, если "-", то используется стандартный вывод | >= 0.1.0
documentTitle | название выходного документа | >= 0.1.0
useCompression | включить или отключить сжатие без потерь | boolean | >= 0.1.0
margin.top | размер верхнего поля | 2cm | >= 0.1.0
margin.bottom | размер нижнего поля | 2cm | >= 0.1.0
margin.left | размер левого поля | 2cm | >= 0.1.0
margin.right | размер правого поля | 2cm | >= 0.1.0
imageDPI | максимальное DPI для изображений в выходном документе | >= 0.1.0
imageQuality | коэффициент сжатия JPEG для изображений в выходном документе | 94 | >= 0.1.0
load.cookieJar | путь к файлу, используемому для загрузки и хранения cookie | /tmp/cookies.txt | >= 0.1.0


Выполнить преобразование PDF

  • « wkhtmltox\PDF\Converter::__construct
  • wkhtmltox\PDF\Converter::getVersion »
  • PHP Manual
  • wkhtmltox\PDF\Converter
  • Выполнить преобразование PDF

wkhtmltox\PDF\Converter::convert

(wkhtmltox >= 0.1.0)

wkhtmltox\PDF\Converter::convert — Выполнить преобразование PDF

Описание

public wkhtmltox\PDF\Converter::convert ( void ) : ?string

Выполняет преобразование всех ранее добавленных объектов

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Если используется возвращаемое значение, оно будет заполнено содержимым буфера преобразования


Определить версию конвертера

  • « wkhtmltox\PDF\Converter::convert
  • wkhtmltox\PDF\Object »
  • PHP Manual
  • wkhtmltox\PDF\Converter
  • Определить версию конвертера

wkhtmltox\PDF\Converter::getVersion

(wkhtmltox >= 0.3.2)

wkhtmltox\PDF\Converter::getVersion — Определить версию конвертера

Описание

public wkhtmltox\PDF\Converter::getVersion ( void ) : string

Определяет версию конвертера, как указано в библиотеке libwkhtmltox

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает версию в виде строки


Класс wkhtmltox\PDF\Object

(wkhtmltox >= 0.1.0)

Введение

Представляет HTML-документ, вход в PDF-конвертер

Обзор классов

wkhtmltox\PDF\Object {
/* Constructor */
public __construct ( string $buffer [, array $settings ] )
}

Содержание

  • wkhtmltox\PDF\Object::__construct — Создать новый объект PDF


Создать новый объект PDF

  • « wkhtmltox\PDF\Object
  • wkhtmltox\Image\Converter »
  • PHP Manual
  • wkhtmltox\PDF\Object
  • Создать новый объект PDF

wkhtmltox\PDF\Object::__construct

(wkhtmltox >= 0.1.0)

wkhtmltox\PDF\Object::__construct — Создать новый объект PDF

Описание

public wkhtmltox\PDF\Object::__construct ( string $buffer [, array $settings ] )

Создает новый объект PDF из указанного буфера и дополнительные конфигурационные настройки

Список параметров

buffer

HTML

settings

Название | Описание | Значения | Версия
page | URL или путь HTML для преобразования | >= 0.1.0
useExternalLinks | установить значение true, чтобы преобразовать внешние ссылки входных данных во внешние ссылки PDF в выходных данных | boolean | >= 0.1.0
useLocalLinks | установить значение true, чтобы преобразовать внутренние ссылки входных данных во внутренние ссылки PDF в выходных данных | boolean | >= 0.1.0
produceForms | установить true, чтобы превратить HTML-формы в PDF-формы | boolean | >= 0.1.0
replacements | undocumented | >= 0.1.0
includeInOutline | установить значение true, чтобы включить разделы из этого объекта в структуру (outline) и оглавление | boolean | >= 0.1.0
pagesCount | установить значение true, чтобы количество страниц в оглавлении включало количество страниц в этом объекте | boolean | >= 0.1.0
tocXsl | установить таблицу стилей для преобразования этого объекта в объект оглавления | >= 0.1.0
toc.useDottedLines | установить значение true для использования пунктирных линий в оглавлении | boolean | >= 0.1.0
toc.captionText | текст заголовка для оглавления | >= 0.1.0
toc.forwardLinks | установить значение true для создания ссылок из оглавления в содержимое | boolean | >= 0.1.0
toc.backLinks | установить значение true для создания ссылок из содержимого в оглавление | boolean | >= 0.1.0
toc.indentation | отступ для оглавления | 2em | >= 0.1.0
toc.fontScale | коэффициент уменьшения шрифта на каждом уровне оглавления | 0.8 | >= 0.1.0
header.fontSize | размер шрифта для заголовка | 13 | >= 0.1.0
header.fontName | название шрифта в заголовке | times | >= 0.1.0
header.left | текст слева от заголовка | >= 0.1.0
header.center | текст по центру заголовка | >= 0.1.0
header.right | текст справа от заголовка | >= 0.1.0
header.line | включить или отключить горизонтальную линию под заголовком | boolean | >= 0.1.0
header.spacing | пробел между заголовком и содержимым | 1.8 | >= 0.1.0
header.htmlUrl | URL или путь HTML для использования в заголовке | >= 0.1.0
footer.fontSize | размер шрифта для нижнего колонтитула | 13 | >= 0.1.0
footer.fontName | название шрифта для нижнего колонтитула | times | >= 0.1.0
footer.left | текст слева от нижнего колонтитула | >= 0.1.0
footer.center | текст по центру нижнего колонтитула | >= 0.1.0
footer.right | текст справа от нижнего колонтитула | >= 0.1.0
footer.line | включить или отключить горизонтальную линию под нижним колонтитулом | boolean | >= 0.1.0
footer.spacing | пробел между футером и контентом | 1.8 | >= 0.1.0
footer.htmlUrl | URL или путь HTML для использования в нижнем колонтитуле | >= 0.1.0
load.username | user name to use when loging into a website | bart | >= 0.1.0
load.password | the password to used when logging into a website | elbarto | >= 0.1.0
load.jsdelay | the amount of time in milliseconds to wait after a page is loaded until it is captured | 1200 | >= 0.1.0
load.zoomFactor | how much zoom should be applied to the content | 2.2 | >= 0.1.0
load.customHeaders | custom headers to send when requesting the main web page | >= 0.1.0
load.repertCustomHeaders | set true to send with all requests | boolean | >= 0.1.0
load.cookies | cookie string to send when requesting the main web page | >= 0.1.0
load.post | post string to send when requesting the main web page | >= 0.1.0
load.blockLocalFileAccess | disallow local and piped files to access other local files | boolean | >= 0.1.0
load.stopSlowScript | stop slow running javascript | boolean
load.debugJavascript | allow javascript to raise warnings | boolean | >= 0.1.0
load.loadErrorHandling set error handling strategy
abort | abort the convertion process
skip | do not add the object to the final output
ignore | try to add the object to the final output
>= 0.1.0
load.proxy | >= 0.1.0
web.background | include background image in output | boolean | >= 0.1.0
web.loadImages | include images in output | boolean | >= 0.1.0
web.enableJavascript | enable or disable javascript | boolean | >= 0.1.0
web.enableIntelligentShrinking | enable to attempt to fit more content on page, only applies to PDF output | boolean | >= 0.1.0
web.minimumFontSize | the minimum font size allowed | 9 | >= 0.1.0
web.printMediaType | print content using print media type instead of screen media type | boolean | >= 0.1.0
web.defaultEncoding | content to use where no encoding is specified | utf-8 | >= 0.1.0
web.userStyleSheet | URL or path to a user specified style sheet | /path/to/style.css | >= 0.1.0
web.enablePlugins | enable or disable NS plugins | boolean | >= 0.1.0


Класс wkhtmltox\Image\Converter

(wkhtmltox >= 0.1.0)

Введение

Преобразует входные данные HTML в различные форматы изображений

Обзор классов

wkhtmltox\Image\Converter {
/* Constructor */
public __construct ([ string $buffer [, array $settings ]] )
/* Методы */
public convert ( void ) : ?string
public getVersion ( void ) : string
}

Содержание

  • wkhtmltox\Image\Converter::__construct — Создать новый конвертер изображений
  • wkhtmltox\Image\Converter::convert — Выполнить преобразование изображений
  • wkhtmltox\Image\Converter::getVersion — Определить версию конвертера


Создать новый конвертер изображений

  • « wkhtmltox\Image\Converter
  • wkhtmltox\Image\Converter::convert »
  • PHP Manual
  • wkhtmltox\Image\Converter
  • Создать новый конвертер изображений

wkhtmltox\Image\Converter::__construct

(wkhtmltox >= 0.1.0)

wkhtmltox\Image\Converter::__construct — Создать новый конвертер изображений

Описание

public wkhtmltox\Image\Converter::__construct ([ string $buffer [, array $settings ]] )

Создает конвертер изображений, дополнительно используя входной буфер и настройки конфигурации

Список параметров

buffer

HTML

settings

Название | Описание | Значения | Версия
in | URL или путь входного файла, если "-", то используется стандартный ввод | /path/to/markup.html | >= 0.1.0
out | путь к выходному файлу, если "-", то используется стандартный вывод, по умолчанию используется внутренний буфер | /path/to/output.png | >= 0.1.0
fmt формат вывода для использования
"" по умолчанию
jpg | вывод в формате JPEG
png | вывод в формате PNG
bmp | вывод в формате растрового изображения
svg | вывод в формате SVG
>= 0.1.0
transparent | при выводе PNG или SVG, сделать белый фон прозрачным | boolean | >= 0.1.0
screenWidth | ширина экрана, используемая для отрисовки в пикселях | 800 | >= 0.1.0
smartWidth | когда true, screenWidth расширяется до ширины содержимого | boolean | >= 0.1.0
quality | коэффициент сжатия, используемый при выводе JPEG-изображения | 94 | >= 0.1.0
crop.left | левая x-координата окна для захвата в пикселях | 200 | >= 0.1.0
crop.top | верхняя y-координата окна для захвата в пикселях | 200 | >= 0.1.0
crop.width | ширина окна для захвата в пикселях | 200 | >= 0.1.0
crop.height | ширина окна для захвата в пикселях | 200 | >= 0.1.0
load.cookieJar | путь к файлу, используемому для загрузки и хранения cookie | /tmp/cookies.txt | >= 0.1.0
load.username | user name to use when loging into a website | bart | >= 0.1.0
load.password | the password to used when logging into a website | elbarto | >= 0.1.0
load.jsdelay | the amount of time in milliseconds to wait after a page is loaded until it is captured | 1200 | >= 0.1.0
load.zoomFactor | how much zoom should be applied to the content | 2.2 | >= 0.1.0
load.customHeaders | custom headers to send when requesting the main web page | >= 0.1.0
load.repertCustomHeaders | set true to send with all requests | boolean | >= 0.1.0
load.cookies | cookie string to send when requesting the main web page | >= 0.1.0
load.post | post string to send when requesting the main web page | >= 0.1.0
load.blockLocalFileAccess | disallow local and piped files to access other local files | boolean | >= 0.1.0
load.stopSlowScript | stop slow running javascript | boolean
load.debugJavascript | allow javascript to raise warnings | boolean | >= 0.1.0
load.loadErrorHandling set error handling strategy
abort | abort the convertion process
skip | do not add the object to the final output
ignore | try to add the object to the final output
>= 0.1.0
load.proxy | >= 0.1.0
web.background | include background image in output | boolean | >= 0.1.0
web.loadImages | include images in output | boolean | >= 0.1.0
web.enableJavascript | enable or disable javascript | boolean | >= 0.1.0
web.enableIntelligentShrinking | enable to attempt to fit more content on page, only applies to PDF output | boolean | >= 0.1.0
web.minimumFontSize | the minimum font size allowed | 9 | >= 0.1.0
web.printMediaType | print content using print media type instead of screen media type | boolean | >= 0.1.0
web.defaultEncoding | content to use where no encoding is specified | utf-8 | >= 0.1.0
web.userStyleSheet | URL or path to a user specified style sheet | /path/to/style.css | >= 0.1.0
web.enablePlugins | enable or disable NS plugins | boolean | >= 0.1.0


Выполнить преобразование изображений

  • « wkhtmltox\Image\Converter::__construct
  • wkhtmltox\Image\Converter::getVersion »
  • PHP Manual
  • wkhtmltox\Image\Converter
  • Выполнить преобразование изображений

wkhtmltox\Image\Converter::convert

(wkhtmltox >= 0.1.0)

wkhtmltox\Image\Converter::convert — Выполнить преобразование изображений

Описание

public wkhtmltox\Image\Converter::convert ( void ) : ?string

Выполняет преобразование входного буфера

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Если используется возвращаемое значение, оно будет заполнено содержимым буфера преобразования


Определить версию конвертера

  • « wkhtmltox\Image\Converter::convert
  • PS »
  • PHP Manual
  • wkhtmltox\Image\Converter
  • Определить версию конвертера

wkhtmltox\Image\Converter::getVersion

(wkhtmltox >= 0.3.2)

wkhtmltox\Image\Converter::getVersion — Определить версию конвертера

Описание

public wkhtmltox\Image\Converter::getVersion ( void ) : string

Определяет версию конвертера, как указано в библиотеке libwkhtmltox

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает версию в виде строки

Внимание

Это еще не реализовано в libwkhtmltox


Создание документов PostScript

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции PS
    • ps_add_bookmark — Добавляет закладку на текущую страницу
    • 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_include_file — Reads an external file with raw PostScript code
    • 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_open_memory_image — Takes an GD image and returns an image for placement in a PS document
    • 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_setoverprintmode — Sets overprint mode
    • 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_xy2 — Output text at position
    • ps_show_xy — Output text at given position
    • ps_show2 — Output a text at current 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


Введение

Модуль позволяет создавать документы в формате PostScript. Он имеет много общего с модулем для создания PDF. На самом деле, API обоих модулей практически одинаковые и в большинстве случаев отличаются только префиксом функций: pdf_ и ps_. Причем, это касается и таких функций, которые, казалось бы, не имеют смысла в документах PostScript (например, добавление гиперссылок), но сработают при конвертации документа в PDF.

Документы, создаваемые этим модулем в некоторых случаях выглядят даже лучше, чем сгенерированные с помощью модуля PDF из-за того, что функции рендеринга библиотеки pslib поддерживают обработку кернинга, переносов и связок, существенно улучшающих вид выводимого текста.


Требования

Требуется библиотека pslib версии 0.1.12 или выше. Библиотеку pslib можно скачать тут: » http://pslib.sourceforge.net/.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/ps.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

В модуле определен ресурс PostScript document, возвращаемый функцией ps_new().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Две следующие таблицы содержат все константы, определяемые модулем PS.

Константы для оконцовок линий
Константа | Значение
ps_LINECAP_BUTT | Заостренные
ps_LINECAP_ROUND | Закругленные
ps_LINECAP_SQUARED | Прямоугольные
Константы, определяющие вид пересечения линий
Константа | Значение
ps_LINEJOIN_MITER | Прямоугольное соединение
ps_LINEJOIN_ROUND | Скругленное
ps_LINEJOIN_BEVEL | Скошенное


Функции PS

Контакты

Комментарии, исправления и предложения по улучшению модуля или библиотеки pslib присылайте на почту » steinm@php.net. Приветствуется любая помощь.

Содержание

  • ps_add_bookmark — Добавляет закладку на текущую страницу
  • 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_include_file — Reads an external file with raw PostScript code
  • 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_open_memory_image — Takes an GD image and returns an image for placement in a PS document
  • 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_setoverprintmode — Sets overprint mode
  • 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_xy2 — Output text at position
  • ps_show_xy — Output text at given position
  • ps_show2 — Output a text at current 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


Добавляет закладку на текущую страницу

  • « Функции PS
  • ps_add_launchlink »
  • PHP Manual
  • Функции PS
  • Добавляет закладку на текущую страницу

ps_add_bookmark

(PECL ps >= 1.1.0)

ps_add_bookmark — Добавляет закладку на текущую страницу

Описание

ps_add_bookmark ( resource $psdoc , string $text [, int $parent = 0 [, int $open = 0 ]] ) : int

Добавляет закладку на текущую страницу. Закладки обычно видны в программах просмотра PDF слева от страницы в иерархическом дереве. Нажатие на закладку открывает страницу, на которую она ссылается.

Примечание не будет отображаться при печати или просмотре документа, но будет показано при конвертировании документа в pdf с помощью Acrobat Distiller™ или Ghostview.

Список параметров

psdoc

Идентификатор ресурса, возвращаемый ps_new(), ссылающегося на postscript-файл..

text

Описание закладки.

parent

Закладка, созданная этой же функцией, которая будет указана в качестве родителя текущей закладки.

open

Если open не равен нулю, то закладка будет открываться при отображении файла в программе просмотра PDF файлов.

Возвращаемые значения

Возвращаемое функцией значение является ссылкой на закладку. Эта ссылка используется в случае построения иерархии закладок, если нужно указать созданную закладку как родителя. Если функция отработала нормально, возвращаемое значение будет больше нуля. Если функция завершилась с ошибкой, то она вернет ноль.

Смотрите также

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_weblink() - Adds link to a web location


Adds link which launches file

  • « ps_add_bookmark
  • ps_add_locallink »
  • PHP Manual
  • Функции PS
  • Adds link which launches file

ps_add_launchlink

(PECL ps >= 1.1.0)

ps_add_launchlink — Adds link which launches file

Описание

ps_add_launchlink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $filename ) : bool

Places a hyperlink at the given position pointing to a file program which is being started when clicked on. The hyperlink's source position 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.

Примечание не будет отображаться при печати или просмотре документа, но будет показано при конвертировании документа в pdf с помощью Acrobat Distiller™ или Ghostview.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

filename

The path of the program to be started, when the link is clicked on.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_weblink() - Adds link to a web location


Adds link to a page in the same document

  • « ps_add_launchlink
  • ps_add_note »
  • PHP Manual
  • Функции PS
  • Adds link to a page in the same document

ps_add_locallink

(PECL ps >= 1.1.0)

ps_add_locallink — Adds link to a page in the same document

Описание

ps_add_locallink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , int $page , string $dest ) : bool

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's source position 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.

Примечание не будет отображаться при печати или просмотре документа, но будет показано при конвертировании документа в pdf с помощью Acrobat Distiller™ или Ghostview.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

page

The number of the page displayed when clicking on the link.

dest

The parameter dest determines how the document is being viewed. It can be fitpage, fitwidth, fitheight, or fitbbox.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_weblink() - Adds link to a web location


Adds note to current page

  • « ps_add_locallink
  • ps_add_pdflink »
  • PHP Manual
  • Функции PS
  • Adds note to current page

ps_add_note

(PECL ps >= 1.1.0)

ps_add_note — Adds note to current page

Описание

ps_add_note ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $contents , string $title , string $icon , int $open ) : bool

Adds a note at a certain position on the page. Notes are like little rectangular sheets with text on it, which can be placed anywhere on a page. They are shown either folded or unfolded. If folded, the specified icon is used as a placeholder.

Примечание не будет отображаться при печати или просмотре документа, но будет показано при конвертировании документа в pdf с помощью Acrobat Distiller™ или Ghostview.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

contents

The text of the note.

title

The title of the note as displayed in the header of the note.

icon

The icon shown if the note is folded. This parameter can be set to comment, insert, note, paragraph, newparagraph, key, or help.

open

If open is unequal to zero the note will be shown unfolded after opening the document with a pdf viewer.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_launchlink() - Adds link which launches file
  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_weblink() - Adds link to a web location


Adds link to a page in a second pdf document

  • « ps_add_note
  • ps_add_weblink »
  • PHP Manual
  • Функции PS
  • Adds link to a page in a second pdf document

ps_add_pdflink

(PECL ps >= 1.1.0)

ps_add_pdflink — Adds link to a page in a second pdf document

Описание

ps_add_pdflink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $filename , int $page , string $dest ) : bool

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's source position 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.

Примечание не будет отображаться при печати или просмотре документа, но будет показано при конвертировании документа в pdf с помощью Acrobat Distiller™ или Ghostview.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

filename

The name of the pdf document to be opened when clicking on this link.

page

The page number of the destination pdf document

dest

The parameter dest determines how the document is being viewed. It can be fitpage, fitwidth, fitheight, or fitbbox.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_weblink() - Adds link to a web location


Adds link to a web location

  • « ps_add_pdflink
  • ps_arc »
  • PHP Manual
  • Функции PS
  • Adds link to a web location

ps_add_weblink

(PECL ps >= 1.1.0)

ps_add_weblink — Adds link to a web location

Описание

ps_add_weblink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $url ) : bool

Places a hyperlink at the given position pointing to a web page. The hyperlink's source position 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.

Примечание не будет отображаться при печати или просмотре документа, но будет показано при конвертировании документа в pdf с помощью Acrobat Distiller™ или Ghostview.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

url

The url of the hyperlink to be opened when clicking on this link, e.g. http://www.php.net.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_pdflink() - Adds link to a page in a second pdf document


Draws an arc counterclockwise

  • « ps_add_weblink
  • ps_arcn »
  • PHP Manual
  • Функции PS
  • Draws an arc counterclockwise

ps_arc

(PECL ps >= 1.1.0)

ps_arc — Draws an arc counterclockwise

Описание

ps_arc ( resource $psdoc , float $x , float $y , float $radius , float $alpha , float $beta ) : bool

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 (use ps_arcn() to draw clockwise). The subpath added to the current path starts on the arc at angle alpha and ends on the arc at angle beta.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

The x-coordinate of the circle's middle point.

y

The y-coordinate of the circle's middle point.

radius

The radius of the circle

alpha

The start angle given in degrees.

beta

The end angle given in degrees.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_arcn() - Draws an arc clockwise


Draws an arc clockwise

  • « ps_arc
  • ps_begin_page »
  • PHP Manual
  • Функции PS
  • Draws an arc clockwise

ps_arcn

(PECL ps >= 1.1.0)

ps_arcn — Draws an arc clockwise

Описание

ps_arcn ( resource $psdoc , float $x , float $y , float $radius , float $alpha , float $beta ) : bool

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 (use ps_arc() to draw counterclockwise). The subpath added to the current path starts on the arc at angle beta and ends on the arc at angle alpha.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

The x-coordinate of the circle's middle point.

y

The y-coordinate of the circle's middle point.

radius

The radius of the circle

alpha

The starting angle given in degrees.

beta

The end angle given in degrees.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_arc() - Draws an arc counterclockwise


Start a new page

  • « ps_arcn
  • ps_begin_pattern »
  • PHP Manual
  • Функции PS
  • Start a new page

ps_begin_page

(PECL ps >= 1.1.0)

ps_begin_page — Start a new page

Описание

ps_begin_page ( resource $psdoc , float $width , float $height ) : bool

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.

Though PostScript does not know different page sizes, pslib places a bounding box for each page into the document. This size is evaluated by some PostScript viewers and will have precedence over the BoundingBox in the Header of the document. This can lead to unexpected results when you set a BoundingBox whose lower left corner is not (0, 0), because the bounding box of the page will always have a lower left corner (0, 0) and overwrites the global setting.

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. The lower left corner of the bounding box is set to (0, 0). If ps_findfont() was called before, then the header has been output already, and 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.

Замечание:

Up to version 0.2.6 of pslib, this function will always overwrite the BoundingBox and Orientation, if it has been set before with ps_set_info() and ps_findfont() has not been called before.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of the page in pixel, e.g. 596 for A4 format.

height

The height of the page in pixel, e.g. 842 for A4 format.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_end_page() - End a page
  • ps_findfont() - Loads a font
  • ps_set_info() - Sets information fields of document


Start a new pattern

  • « ps_begin_page
  • ps_begin_template »
  • PHP Manual
  • Функции PS
  • Start a new pattern

ps_begin_pattern

(PECL ps >= 1.2.0)

ps_begin_pattern — Start a new pattern

Описание

ps_begin_pattern ( resource $psdoc , float $width , float $height , float $xstep , float $ystep , int $painttype ) : int

Starts a new pattern. A pattern is like a page containing e.g. a drawing which can be used for filling areas. It is used like a color by calling ps_setcolor() and setting the color space to pattern.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of the pattern in pixel.

height

The height of the pattern in pixel.

x-step

The distance in pixel of placements of the pattern in horizontal direction.

y-step

The distance in pixel of placements of the pattern in vertical direction.

painttype

Must be 1 or 2.

Возвращаемые значения

The identifier of the pattern или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Creating and using a pattern

<?php
$ps = ps_new();

if (!ps_open_file($ps, "pattern.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_parameter($ps, "warning", "true");
ps_set_info($ps, "Creator", "pattern.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Pattern example");

$pspattern = ps_begin_pattern($ps, 10.0, 10.0, 10.0, 10.0, 1);
ps_setlinewidth($ps, 0.2);
ps_setcolor($ps, "stroke", "rgb", 0.0, 0.0, 1.0, 0.0);
ps_moveto($ps, 0, 0);
ps_lineto($ps, 7, 7);
ps_stroke($ps);
ps_moveto($ps, 0, 7);
ps_lineto($ps, 7, 0);
ps_stroke($ps);
ps_end_pattern($ps);

ps_begin_page($ps, 596, 842);
ps_setcolor($ps, "both", "pattern", $pspattern, 0.0, 0.0, 0.0);
ps_rect($ps, 50, 400, 200, 200);
ps_fill($ps);
ps_end_page($ps);

ps_close($ps);
ps_delete($ps);
?>

Смотрите также

  • ps_end_pattern() - End a pattern
  • ps_setcolor() - Sets current color
  • ps_shading_pattern() - Creates a pattern based on a shading


Start a new template

  • « ps_begin_pattern
  • ps_circle »
  • PHP Manual
  • Функции PS
  • Start a new template

ps_begin_template

(PECL ps >= 1.2.0)

ps_begin_template — Start a new template

Описание

ps_begin_template ( resource $psdoc , float $width , float $height ) : int

Starts a new template. A template is called a form in the postscript language. It is created similar to a pattern but used like an image. Templates are often used for drawings which are placed several times through out the document, e.g. like a company logo. All drawing functions may be used within a template. The template will not be drawn until it is placed by ps_place_image().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of the template in pixel.

height

The height of the template in pixel.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Creating and using a template

<?php
$ps = ps_new();

if (!ps_open_file($ps, "template.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_parameter($ps, "warning", "true");
ps_set_info($ps, "Creator", "template.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Template example");

$pstemplate = ps_begin_template($ps, 30.0, 30.0);
ps_moveto($ps, 0, 0);
ps_lineto($ps, 30, 30);
ps_moveto($ps, 0, 30);
ps_lineto($ps, 30, 0);
ps_stroke($ps);
ps_end_template($ps);

ps_begin_page($ps, 596, 842);
ps_place_image($ps, $pstemplate, 20.0, 20.0, 1.0);
ps_place_image($ps, $pstemplate, 50.0, 30.0, 0.5);
ps_place_image($ps, $pstemplate, 70.0, 70.0, 0.6);
ps_place_image($ps, $pstemplate, 30.0, 50.0, 1.3);
ps_end_page($ps);

ps_close($ps);
ps_delete($ps);
?>

Смотрите также

  • ps_end_template() - End a template


Draws a circle

  • « ps_begin_template
  • ps_clip »
  • PHP Manual
  • Функции PS
  • Draws a circle

ps_circle

(PECL ps >= 1.1.0)

ps_circle — Draws a circle

Описание

ps_circle ( resource $psdoc , float $x , float $y , float $radius ) : bool

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.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

The x-coordinate of the circle's middle point.

y

The y-coordinate of the circle's middle point.

radius

The radius of the circle

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_arc() - Draws an arc counterclockwise
  • ps_arcn() - Draws an arc clockwise


Clips drawing to current path

  • « ps_circle
  • ps_close_image »
  • PHP Manual
  • Функции PS
  • Clips drawing to current path

ps_clip

(PECL ps >= 1.1.0)

ps_clip — Clips drawing to current path

Описание

ps_clip ( resource $psdoc ) : bool

Takes the current path and uses it to define the border of a clipping area. Everything drawn outside of that area will not be visible.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_closepath() - Closes path


Closes image and frees memory

  • « ps_clip
  • ps_close »
  • PHP Manual
  • Функции PS
  • Closes image and frees memory

ps_close_image

(PECL ps >= 1.1.0)

ps_close_image — Closes image and frees memory

Описание

ps_close_image ( resource $psdoc , int $imageid ) : void

Closes an image and frees its resources. Once an image is closed it cannot be used anymore.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

imageid

Resource identifier of the image as returned by ps_open_image() or ps_open_image_file().

Возвращаемые значения

Returns NULL on success или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_open_image() - Reads an image for later placement
  • ps_open_image_file() - Opens image from file


Closes a PostScript document

  • « ps_close_image
  • ps_closepath_stroke »
  • PHP Manual
  • Функции PS
  • Closes a PostScript document

ps_close

(PECL ps >= 1.1.0)

ps_close — Closes a PostScript document

Описание

ps_close ( resource $psdoc ) : bool

Closes the PostScript document.

This function writes the trailer of the PostScript document. It also writes the bookmark tree. ps_close() does not free any resources, which is done by ps_delete().

This function is also called by ps_delete() if it has not been called before.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_open_file() - Opens a file for output
  • ps_delete() - Deletes all resources of a PostScript document


Closes and strokes path

  • « ps_close
  • ps_closepath »
  • PHP Manual
  • Функции PS
  • Closes and strokes path

ps_closepath_stroke

(PECL ps >= 1.1.0)

ps_closepath_stroke — Closes and strokes path

Описание

ps_closepath_stroke ( resource $psdoc ) : bool

Connects the last point with first point of a path and draws the resulting closed line.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_closepath() - Closes path


Closes path

  • « ps_closepath_stroke
  • ps_continue_text »
  • PHP Manual
  • Функции PS
  • Closes path

ps_closepath

(PECL ps >= 1.1.0)

ps_closepath — Closes path

Описание

ps_closepath ( resource $psdoc ) : bool

Connects the last point with the first point of a path. The resulting path can be used for stroking, filling, clipping, etc..

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_clip() - Clips drawing to current path
  • ps_closepath_stroke() - Closes and strokes path


Continue text in next line

  • « ps_closepath
  • ps_curveto »
  • PHP Manual
  • Функции PS
  • Continue text in next line

ps_continue_text

(PECL ps >= 1.1.0)

ps_continue_text — Continue text in next line

Описание

ps_continue_text ( resource $psdoc , string $text ) : bool

Output a text one line below the last line. The line spacing is taken from the value "leading" which must be set with ps_set_value(). The actual position of the text is determined by the values "textx" and "texty" which can be requested with ps_get_value()

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to output.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_show() - Output text
  • ps_show_xy() - Output text at given position
  • ps_show_boxed() - Output text in a box


Draws a curve

  • « ps_continue_text
  • ps_delete »
  • PHP Manual
  • Функции PS
  • Draws a curve

ps_curveto

(PECL ps >= 1.1.0)

ps_curveto — Draws a curve

Описание

ps_curveto ( resource $psdoc , float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 ) : bool

Add a section of a cubic Bezier curve described by the three given control points to the current path.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x1

x-coordinate of first control point.

y1

y-coordinate of first control point.

x2

x-coordinate of second control point.

y2

y-coordinate of second control point.

x3

x-coordinate of third control point.

y3

y-coordinate of third control point.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_lineto() - Draws a line


Deletes all resources of a PostScript document

  • « ps_curveto
  • ps_end_page »
  • PHP Manual
  • Функции PS
  • Deletes all resources of a PostScript document

ps_delete

(PECL ps >= 1.1.0)

ps_delete — Deletes all resources of a PostScript document

Описание

ps_delete ( resource $psdoc ) : bool

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 trailor containing PostScript comments like the number of pages in the document and adding the bookmark hierarchy.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_close() - Closes a PostScript document


End a page

  • « ps_delete
  • ps_end_pattern »
  • PHP Manual
  • Функции PS
  • End a page

ps_end_page

(PECL ps >= 1.1.0)

ps_end_page — End a page

Описание

ps_end_page ( resource $psdoc ) : bool

Ends a page which was started with ps_begin_page(). Ending a page will leave the current drawing context, which e.g. requires to reload fonts if they were loading within the page, and to set many other drawing parameters like the line width, or color..

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_begin_page() - Start a new page


End a pattern

  • « ps_end_page
  • ps_end_template »
  • PHP Manual
  • Функции PS
  • End a pattern

ps_end_pattern

(PECL ps >= 1.2.0)

ps_end_pattern — End a pattern

Описание

ps_end_pattern ( resource $psdoc ) : bool

Ends a pattern which was started with ps_begin_pattern(). Once a pattern has been ended, it can be used like a color to fill areas.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_begin_pattern() - Start a new pattern


End a template

  • « ps_end_pattern
  • ps_fill_stroke »
  • PHP Manual
  • Функции PS
  • End a template

ps_end_template

(PECL ps >= 1.2.0)

ps_end_template — End a template

Описание

ps_end_template ( resource $psdoc ) : bool

Ends a template which was started with ps_begin_template(). Once a template has been ended, it can be used like an image.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_begin_template() - Start a new template


Fills and strokes the current path

  • « ps_end_template
  • ps_fill »
  • PHP Manual
  • Функции PS
  • Fills and strokes the current path

ps_fill_stroke

(PECL ps >= 1.1.0)

ps_fill_stroke — Fills and strokes the current path

Описание

ps_fill_stroke ( resource $psdoc ) : bool

Fills and draws the path constructed with previously called drawing functions like ps_lineto().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_fill() - Fills the current path
  • ps_stroke() - Draws the current path


Fills the current path

  • « ps_fill_stroke
  • ps_findfont »
  • PHP Manual
  • Функции PS
  • Fills the current path

ps_fill

(PECL ps >= 1.1.0)

ps_fill — Fills the current path

Описание

ps_fill ( resource $psdoc ) : bool

Fills the path constructed with previously called drawing functions like ps_lineto().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_fill_stroke() - Fills and strokes the current path
  • ps_stroke() - Draws the current path


Loads a font

  • « ps_fill
  • ps_get_buffer »
  • PHP Manual
  • Функции PS
  • Loads a font

ps_findfont

(PECL ps >= 1.1.0)

ps_findfont — Loads a font

Описание

ps_findfont ( resource $psdoc , string $fontname , string $encoding [, bool $embed = FALSE ] ) : int

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.

The name of the afm file must be fontname.afm. If the font shall be embedded the file fontname.pfb containing the font outline must be present as well.

Calling ps_findfont() before the first page requires to output the postscript header which includes the BoundingBox for the whole document. Usually the BoundingBox is set with the first call of ps_begin_page() which now comes after ps_findfont(). Consequently the BoundingBox has not been set and a warning will be issued when ps_findfont() is called. In order to prevent this situation, one should call ps_set_parameter() to set the BoundingBox before ps_findfont() is called.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

fontname

The name of the font.

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

If set to a value >0 the font will be embedded into the document. This requires the font outline (.pfb file) to be present.

Возвращаемые значения

Returns the identifier of the font or zero in case of an error. The identifier is a positive number.

Смотрите также

  • ps_begin_page() - Start a new page
  • ps_setfont() - Sets font to use for following output


Fetches the full buffer containig the generated PS data

  • « ps_findfont
  • ps_get_parameter »
  • PHP Manual
  • Функции PS
  • Fetches the full buffer containig the generated PS data

ps_get_buffer

(PECL ps >= 1.1.0)

ps_get_buffer — Fetches the full buffer containig the generated PS data

Описание

ps_get_buffer ( resource $psdoc ) : string

This function is not implemented yet. It will always return an empty string. The idea for a later implementation is to write the contents of the postscript file into an internal buffer if in memory creation is requested, and retrieve the buffer content with this function. Currently, documents created in memory are send to the browser without buffering.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Смотрите также

  • ps_open_file() - Opens a file for output


Gets certain parameters

  • « ps_get_buffer
  • ps_get_value »
  • PHP Manual
  • Функции PS
  • Gets certain parameters

ps_get_parameter

(PECL ps >= 1.1.0)

ps_get_parameter — Gets certain parameters

Описание

ps_get_parameter ( resource $psdoc , string $name [, float $modifier ] ) : string

Gets several parameters which were directly set by ps_set_parameter() or indirectly by one of the other functions. Parameters are by definition string values. This function cannot be used to retrieve resources which were also set by ps_set_parameter().

The parameter name can have the following values.

fontname

The name of the currently active font or the font whose identifier is passed in parameter modifier.

fontencoding

The encoding of the currently active font.

dottedversion

The version of the underlying pslib library in the format <major>.<minor>.<subminor>

scope

The current drawing scope. Can be object, document, null, page, pattern, path, template, prolog, font, glyph.

ligaturedisolvechar

The character which dissolves a ligature. If your are using a font which contains the ligature `ff' and `|' is the char to dissolve the ligature, then `f|f' will result in two `f' instead of the ligature `ff'.

imageencoding

The encoding used for encoding images. Can be either hex or 85. hex encoding uses two bytes in the postscript file each byte in the image. 85 stand for Ascii85 encoding.

linenumbermode

Set to paragraph if lines are numbered within a paragraph or box if they are numbered within the surrounding box.

linebreak

Only used if text is output with ps_show_boxed(). If set to TRUE a carriage return will add a line break.

parbreak

Only used if text is output with ps_show_boxed(). If set to TRUE a carriage return will start a new paragraph.

hyphenation

Only used if text is output with ps_show_boxed(). If set to TRUE the paragraph will be hyphenated if a hypen dictionary is set and exists.

hyphendict

Filename of the dictionary used for hyphenation pattern.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

Name of the parameter.

modifier

An identifier needed if a parameter of a resource is requested, e.g. the size of an image. In such a case the resource id is passed.

Возвращаемые значения

Returns the value of the parameter или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_set_parameter() - Sets certain parameters


Gets certain values

  • « ps_get_parameter
  • ps_hyphenate »
  • PHP Manual
  • Функции PS
  • Gets certain values

ps_get_value

(PECL ps >= 1.1.0)

ps_get_value — Gets certain values

Описание

ps_get_value ( resource $psdoc , string $name [, float $modifier ] ) : float

Gets several values which were set by ps_set_value(). Values are by definition float values.

The parameter name can have the following values.

fontsize

The size of the currently active font or the font whose identifier is passed in parameter modifier.

font

The currently active font itself.

imagewidth

The width of the image whose id is passed in the parameter modifier.

imageheight

The height of the image whose id is passed in the parameter modifier.

capheight

The height of a capital M in the currently active font or the font whose identifier is passed in parameter modifier.

ascender

The ascender of the currently active font or the font whose identifier is passed in parameter modifier.

descender

The descender of the currently active font or the font whose identifier is passed in parameter modifier.

italicangle

The italicangle of the currently active font or the font whose identifier is passed in parameter modifier.

underlineposition

The underlineposition of the currently active font or the font whose identifier is passed in parameter modifier.

underlinethickness

The underlinethickness of the currently active font or the font whose identifier is passed in parameter modifier.

textx

The current x-position for text output.

texty

The current y-position for text output.

textrendering

The current mode for text rendering.

textrise

The space by which text is risen above the base line.

leading

The distance between text lines in points.

wordspacing

The space between words as a multiple of the width of a space char.

charspacing

The space between chars. If charspacing is != 0.0 ligatures will always be dissolved.

hyphenminchars

Minimum number of chars hyphenated at the end of a word.

parindent

Indention of the first n line in a paragraph.

numindentlines

Number of line in a paragraph to indent if parindent != 0.0.

parskip

Distance between paragraphs.

linenumberspace

Overall space in front of each line for the line number.

linenumbersep

Space between the line and the line number.

major

The major version number of pslib.

minor

The minor version number of pslib.

subminor, revision

The subminor version number of pslib.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

Name of the value.

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.

Возвращаемые значения

Returns the value of the parameter or FALSE.

Смотрите также

  • ps_set_value() - Sets certain values


Hyphenates a word

  • « ps_get_value
  • ps_include_file »
  • PHP Manual
  • Функции PS
  • Hyphenates a word

ps_hyphenate

(PECL ps >= 1.1.1)

ps_hyphenate — Hyphenates a word

Описание

ps_hyphenate ( resource $psdoc , string $text ) : array

Hyphenates the passed word. ps_hyphenate() evaluates the value hyphenminchars (set by ps_set_value()) and the parameter hyphendict (set by ps_set_parameter()). 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 for more information.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

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.

Возвращаемые значения

An array of integers indicating the position of possible breaks in the text или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Hyphennate a text

<?php
$word = "Koordinatensystem";
$psdoc = ps_new();
ps_set_parameter($psdoc, "hyphendict", "hyph_de.dic");
$hyphens = ps_hyphenate($psdoc, $word);
for($i=0; $i<strlen($word); $i++) {
  echo $word[$i];
  if(in_array($i, $hyphens))
    echo "-";
}
ps_delete($psdoc);
?>

Результат выполнения данного примера:

Ko-ordi-na-ten-sys-tem

Смотрите также

  • ps_show_boxed() - Output text in a box
  • locale(1)


Reads an external file with raw PostScript code

  • « ps_hyphenate
  • ps_lineto »
  • PHP Manual
  • Функции PS
  • Reads an external file with raw PostScript code

ps_include_file

(PECL ps >= 1.3.4)

ps_include_file — Reads an external file with raw PostScript code

Описание

ps_include_file ( resource $psdoc , string $file ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

file

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Draws a line

  • « ps_include_file
  • ps_makespotcolor »
  • PHP Manual
  • Функции PS
  • Draws a line

ps_lineto

(PECL ps >= 1.1.0)

ps_lineto — Draws a line

Описание

ps_lineto ( resource $psdoc , float $x , float $y ) : bool

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.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the end point of the line.

y

y-coordinate of the end point of the line.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Drawing a rectangle

<?php
$ps = ps_new();
if (!ps_open_file($ps, "rectangle.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "rectangle.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Lineto example");

ps_begin_page($ps, 596, 842);
ps_moveto($ps, 100, 100);
ps_lineto($ps, 100, 200);
ps_lineto($ps, 200, 200);
ps_lineto($ps, 200, 100);
ps_lineto($ps, 100, 100);
ps_stroke($ps);
ps_end_page($ps);

ps_delete($ps);
?>

Смотрите также

  • ps_moveto() - Sets current point


Create spot color

  • « ps_lineto
  • ps_moveto »
  • PHP Manual
  • Функции PS
  • Create spot color

ps_makespotcolor

(PECL ps >= 1.1.0)

ps_makespotcolor — Create spot color

Описание

ps_makespotcolor ( resource $psdoc , string $name [, int $reserved = 0 ] ) : int

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(). When the document is not printed but displayed by an postscript viewer the given color in the specified color space is use.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

Name of the spot color, e.g. Pantone 5565.

Возвращаемые значения

The id of the new spot color or 0 in case of an error.

Примеры

Пример #1 Creating and using a spot color

<?php
$ps = ps_new();
if (!ps_open_file($ps, "spotcolor.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "spotcolor.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Spot color example");

ps_begin_page($ps, 596, 842);
ps_setcolor($ps, "fill", "cmyk", 0.37, 0.0, 0.34, 0.34);
$spotcolor = ps_makespotcolor($ps, "PANTONE 5565 C", 0);
ps_setcolor($ps, "fill", "spot", $spotcolor, 0.5, 0.0, 0.0);
ps_moveto($ps, 100, 100);
ps_lineto($ps, 100, 200);
ps_lineto($ps, 200, 200);
ps_lineto($ps, 200, 100);
ps_lineto($ps, 100, 100);
ps_fill($ps);
ps_end_page($ps);

ps_delete($ps);
?>

This example creates the spot color "PANTONE 5565 C" which is a darker green (olive) and fills a rectangle with 50% intensity.

Смотрите также

  • ps_setcolor() - Sets current color


Sets current point

  • « ps_makespotcolor
  • ps_new »
  • PHP Manual
  • Функции PS
  • Sets current point

ps_moveto

(PECL ps >= 1.1.0)

ps_moveto — Sets current point

Описание

ps_moveto ( resource $psdoc , float $x , float $y ) : bool

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.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the point to move to.

y

y-coordinate of the point to move to.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_lineto() - Draws a line


Creates a new PostScript document object

  • « ps_moveto
  • ps_open_file »
  • PHP Manual
  • Функции PS
  • Creates a new PostScript document object

ps_new

(PECL ps >= 1.1.0)

ps_new — Creates a new PostScript document object

Описание

ps_new ( void ) : resource

Creates a new document instance. It does not create the file on disk or in memory, it just sets up everything. ps_new() is usually followed by a call of ps_open_file() to actually create the postscript document.

Возвращаемые значения

Resource of PostScript document или FALSE в случае возникновения ошибки. The return value is passed to all other functions as the first argument.

Смотрите также

  • ps_delete() - Deletes all resources of a PostScript document


Opens a file for output

  • « ps_new
  • ps_open_image_file »
  • PHP Manual
  • Функции PS
  • Opens a file for output

ps_open_file

(PECL ps >= 1.1.0)

ps_open_file — Opens a file for output

Описание

ps_open_file ( resource $psdoc [, string $filename ] ) : bool

Creates a new file on disk and writes the PostScript document into it. The file will be closed when ps_close() is called.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

filename

The name of the postscript file. 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() - Closes a PostScript document


Opens image from file

  • « ps_open_file
  • ps_open_image »
  • PHP Manual
  • Функции PS
  • Opens image from file

ps_open_image_file

(PECL ps >= 1.1.0)

ps_open_image_file — Opens image from file

Описание

ps_open_image_file ( resource $psdoc , string $type , string $filename [, string $stringparam [, int $intparam = 0 ]] ) : int

Loads an image for later use.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of the image. Possible values are png, jpeg, or eps.

filename

The name of the file containing the image data.

stringparam

Not used.

intparam

Not used.

Возвращаемые значения

Returns identifier of image or zero in case of an error. The identifier is a positive number greater than 0.

Смотрите также

  • ps_open_image() - Reads an image for later placement
  • ps_place_image() - Places image on the page
  • ps_close_image() - Closes image and frees memory


Reads an image for later placement

  • « ps_open_image_file
  • ps_open_memory_image »
  • PHP Manual
  • Функции PS
  • Reads an image for later placement

ps_open_image

(PECL ps >= 1.1.0)

ps_open_image — Reads an image for later placement

Описание

ps_open_image ( resource $psdoc , string $type , string $source , string $data , int $lenght , int $width , int $height , int $components , int $bpc , string $params ) : int

Reads an image which is already available in memory. The parameter source is currently not evaluated and assumed to be memory. The image data is a sequence of pixels starting in th upper left corner and ending in the lower right corner. Each pixel consists of components color components, and each component has bpc bits.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of the image. Possible values are png, jpeg, or eps.

source

Not used.

data

The image data.

length

The length of the image data.

width

The width of the image.

height

The height of the image.

components

The number of components for each pixel. This can be 1 (gray scale images), 3 (rgb images), or 4 (cmyk, rgba images).

bpc

Number of bits per component (quite often 8).

params

Возвращаемые значения

Returns identifier of image or zero in case of an error. The identifier is a positive number greater than 0.

Смотрите также

  • ps_open_image_file() - Opens image from file
  • ps_place_image() - Places image on the page
  • ps_close_image() - Closes image and frees memory


Takes an GD image and returns an image for placement in a PS document

  • « ps_open_image
  • ps_place_image »
  • PHP Manual
  • Функции PS
  • Takes an GD image and returns an image for placement in a PS document

ps_open_memory_image

(PECL ps >= 1.1.0)

ps_open_memory_image — Takes an GD image and returns an image for placement in a PS document

Описание

ps_open_memory_image ( resource $psdoc , int $gd ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

gd


Places image on the page

  • « ps_open_memory_image
  • ps_rect »
  • PHP Manual
  • Функции PS
  • Places image on the page

ps_place_image

(PECL ps >= 1.1.0)

ps_place_image — Places image on the page

Описание

ps_place_image ( resource $psdoc , int $imageid , float $x , float $y , float $scale ) : bool

Places a formerly loaded image on the page. The image can be scaled. If the image shall be rotated as well, you will have to rotate the coordinate system before with ps_rotate().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

imageid

The resource identifier of the image as returned by ps_open_image() or ps_open_image_file().

x

x-coordinate of the lower left corner of the image.

y

y-coordinate of the lower left corner of the image.

scale

The scaling factor for the image. A scale of 1.0 will result in a resolution of 72 dpi, because each pixel is equivalent to 1 point.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_open_image() - Reads an image for later placement
  • ps_open_image_file() - Opens image from file


Draws a rectangle

  • « ps_place_image
  • ps_restore »
  • PHP Manual
  • Функции PS
  • Draws a rectangle

ps_rect

(PECL ps >= 1.1.0)

ps_rect — Draws a rectangle

Описание

ps_rect ( resource $psdoc , float $x , float $y , float $width , float $height ) : bool

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.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the lower left corner of the rectangle.

y

y-coordinate of the lower left corner of the rectangle.

width

The width of the image.

height

The height of the image.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_arc() - Draws an arc counterclockwise
  • ps_cirle()
  • ps_lineto() - Draws a line


Restore previously save context

  • « ps_rect
  • ps_rotate »
  • PHP Manual
  • Функции PS
  • Restore previously save context

ps_restore

(PECL ps >= 1.1.0)

ps_restore — Restore previously save context

Описание

ps_restore ( resource $psdoc ) : bool

Restores a previously saved graphics context. Any call of ps_save() must be accompanied by a call to ps_restore(). All coordinate transformations, line style settings, color settings, etc. are being restored to the state before the call of ps_save().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_save() - Save current context


Sets rotation factor

  • « ps_restore
  • ps_save »
  • PHP Manual
  • Функции PS
  • Sets rotation factor

ps_rotate

(PECL ps >= 1.1.0)

ps_rotate — Sets rotation factor

Описание

ps_rotate ( resource $psdoc , float $rot ) : bool

Sets the rotation of the coordinate system.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

rot

Angle of rotation in degree.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Rotation of the coordinate system

<?php
function rectangle($ps) {
    ps_moveto($ps, 0, 0);
    ps_lineto($ps, 0, 50);
    ps_lineto($ps, 50, 50);
    ps_lineto($ps, 50, 0);
    ps_lineto($ps, 0, 0);
    ps_stroke($ps);
}

$ps = ps_new();
if (!ps_open_file($ps, "rotation.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "rotation.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Rotation example");
ps_set_info($ps, "BoundingBox", "0 0 596 842");

$psfont = ps_findfont($ps, "Helvetica", "", 0);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_save($ps);
ps_translate($ps, 100, 100);
ps_rotate($ps, 45);
rectangle($ps);
ps_restore($ps);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Text without rotation");
ps_end_page($ps);

ps_delete($ps);
?>

The above example illustrates a very common way of rotating a graphic (in this case just a rectangle) by simply rotating the coordinate system. Since the graphic's coordinate system assumes (0,0) to be the origin, the page coordinate system is also translated to place the graphics not on the edge of the page. Pay attention to the order of ps_translate() and ps_rotate(). In the above case the rectancle is rotated around the point (100, 100) in the untranslated coordinate system. Switching the two statements has a completely different result.

In order to output the following text at the original position, all modifications of the coordinate system are encapsulated in ps_save() and ps_restore().

Смотрите также

  • ps_scale() - Sets scaling factor
  • ps_translate() - Sets translation


Save current context

  • « ps_rotate
  • ps_scale »
  • PHP Manual
  • Функции PS
  • Save current context

ps_save

(PECL ps >= 1.1.0)

ps_save — Save current context

Описание

ps_save ( resource $psdoc ) : bool

Saves the current graphics context, containing colors, translation and rotation settings and some more. A saved context can be restored with ps_restore().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_restore() - Restore previously save context


Sets scaling factor

  • « ps_save
  • ps_set_border_color »
  • PHP Manual
  • Функции PS
  • Sets scaling factor

ps_scale

(PECL ps >= 1.1.0)

ps_scale — Sets scaling factor

Описание

ps_scale ( resource $psdoc , float $x , float $y ) : bool

Sets horizontal and vertical scaling of the coordinate system.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

Scaling factor in horizontal direction.

y

Scaling factor in vertical direction.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_rotate() - Sets rotation factor
  • ps_translate() - Sets translation


Sets color of border for annotations

  • « ps_scale
  • ps_set_border_dash »
  • PHP Manual
  • Функции PS
  • Sets color of border for annotations

ps_set_border_color

(PECL ps >= 1.1.0)

ps_set_border_color — Sets color of border for annotations

Описание

ps_set_border_color ( resource $psdoc , float $red , float $green , float $blue ) : bool

Links added with one of the functions ps_add_weblink(), ps_add_pdflink(), etc. will be displayed with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf viewer. This rectangle is not visible in the postscript document. This function sets the color of the rectangle's border line.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

red

The red component of the border color.

green

The green component of the border color.

blue

The blue component of the border color.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_set_border_dash() - Sets length of dashes for border of annotations
  • ps_set_border_style() - Sets border style of annotations


Sets length of dashes for border of annotations

  • « ps_set_border_color
  • ps_set_border_style »
  • PHP Manual
  • Функции PS
  • Sets length of dashes for border of annotations

ps_set_border_dash

(PECL ps >= 1.1.0)

ps_set_border_dash — Sets length of dashes for border of annotations

Описание

ps_set_border_dash ( resource $psdoc , float $black , float $white ) : bool

Links added with one of the functions ps_add_weblink(), ps_add_pdflink(), etc. will be displayed with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf viewer. This rectangle is not visible in the postscript document. This function sets the length of the black and white portion of a dashed border line.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

black

The length of the dash.

white

The length of the gap between dashes.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_set_border_color() - Sets color of border for annotations
  • ps_set_border_style() - Sets border style of annotations


Sets border style of annotations

  • « ps_set_border_dash
  • ps_set_info »
  • PHP Manual
  • Функции PS
  • Sets border style of annotations

ps_set_border_style

(PECL ps >= 1.1.0)

ps_set_border_style — Sets border style of annotations

Описание

ps_set_border_style ( resource $psdoc , string $style , float $width ) : bool

Links added with one of the functions ps_add_weblink(), ps_add_pdflink(), etc. will be displayed with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf viewer. This rectangle is not visible in the postscript document. This function sets the appearance and width of the border line.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

style

style can be solid or dashed.

width

The line width of the border.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_set_border_color() - Sets color of border for annotations
  • ps_set_border_dash() - Sets length of dashes for border of annotations


Sets information fields of document

  • « ps_set_border_style
  • ps_set_parameter »
  • PHP Manual
  • Функции PS
  • Sets information fields of document

ps_set_info

(PECL ps >= 1.1.0)

ps_set_info — Sets information fields of document

Описание

ps_set_info ( resource $p , string $key , string $val ) : bool

Sets certain information fields of the document. This fields will be shown as a comment in the header of the PostScript file. If the document is converted to pdf this fields will also be used for the document information.

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.

This function will have no effect anymore when the header of the postscript file has been already written. It must be called before the first page or the first call of ps_findfont().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

key

The name of the information field to set. 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.

value

The value of the information field. The field Orientation can be set to either Portrait or Landscape. The BoundingBox is a string consisting of four numbers. The first two numbers are the coordinates of the lower left corner of the page. The last two numbers are the coordinates of the upper right corner.

Замечание:

Up to version 0.2.6 of pslib, the BoundingBox and Orientation will be overwritten by ps_begin_page(), unless ps_findfont() has been called before.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_findfont() - Loads a font
  • ps_begin_page() - Start a new page


Sets certain parameters

  • « ps_set_info
  • ps_set_text_pos »
  • PHP Manual
  • Функции PS
  • Sets certain parameters

ps_set_parameter

(PECL ps >= 1.1.0)

ps_set_parameter — Sets certain parameters

Описание

ps_set_parameter ( resource $psdoc , string $name , string $value ) : bool

Sets several parameters which are used by many functions. Parameters are by definition string values.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

For a list of possible names see ps_get_parameter().

value

The value of the parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_get_parameters()
  • ps_set_value() - Sets certain values


Sets position for text output

  • « ps_set_parameter
  • ps_set_value »
  • PHP Manual
  • Функции PS
  • Sets position for text output

ps_set_text_pos

(PECL ps >= 1.1.0)

ps_set_text_pos — Sets position for text output

Описание

ps_set_text_pos ( resource $psdoc , float $x , float $y ) : bool

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.

If you want to output text at a certain position it is more convenient to use ps_show_xy() instead of setting the text position and calling ps_show().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the new text position.

y

y-coordinate of the new text position.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Placing text at a given position

<?php
$ps = ps_new();
if (!ps_open_file($ps, "text.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "rectangle.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Text placement example");

ps_begin_page($ps, 596, 842);
$psfont = ps_findfont($ps, "Helvetica", "", 0);
ps_setfont($ps, $psfont, 8.0);
ps_show_xy($ps, "Some text at (100, 100)", 100, 100);

ps_set_value($ps, "textx", 100);
ps_set_value($ps, "texty", 120);
ps_show($ps, "Some text at (100, 120)");
ps_end_page($ps);

ps_delete($ps);
?>

Смотрите также

  • ps_set_value() - Sets certain values
  • ps_show() - Output text


Sets certain values

  • « ps_set_text_pos
  • ps_setcolor »
  • PHP Manual
  • Функции PS
  • Sets certain values

ps_set_value

(PECL ps >= 1.1.0)

ps_set_value — Sets certain values

Описание

ps_set_value ( resource $psdoc , string $name , float $value ) : bool

Sets several values which are used by many functions. Parameters are by definition float values.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

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.

value

The value of the parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_get_value() - Gets certain values
  • ps_set_parameter() - Sets certain parameters


Sets current color

  • « ps_set_value
  • ps_setdash »
  • PHP Manual
  • Функции PS
  • Sets current color

ps_setcolor

(PECL ps >= 1.1.0)

ps_setcolor — Sets current color

Описание

ps_setcolor ( resource $psdoc , string $type , string $colorspace , float $c1 , float $c2 , float $c3 , float $c4 ) : bool

Sets the color for drawing, filling, or both.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

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

Depending on the colorspace this is either the red component (rgb), the cyan component (cmyk), the gray value (gray), the identifier of the spot color or the identifier of the pattern.

c2

Depending on the colorspace this is either the green component (rgb), the magenta component (cmyk).

c3

Depending on the colorspace this is either the blue component (rgb), the yellow component (cmyk).

c4

This must only be set in cmyk colorspace and specifies the black component.

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 в случае возникновения ошибки.


Sets appearance of a dashed line

  • « ps_setcolor
  • ps_setflat »
  • PHP Manual
  • Функции PS
  • Sets appearance of a dashed line

ps_setdash

(PECL ps >= 1.1.0)

ps_setdash — Sets appearance of a dashed line

Описание

ps_setdash ( resource $psdoc , float $on , float $off ) : bool

Sets the length of the black and white portions of a dashed line.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

on

The length of the dash.

off

The length of the gap between dashes.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_setpolydash() - Sets appearance of a dashed line


Sets flatness

  • « ps_setdash
  • ps_setfont »
  • PHP Manual
  • Функции PS
  • Sets flatness

ps_setflat

(PECL ps >= 1.1.0)

ps_setflat — Sets flatness

Описание

ps_setflat ( resource $psdoc , float $value ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

value

The value must be between 0.2 and 1.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Sets font to use for following output

  • « ps_setflat
  • ps_setgray »
  • PHP Manual
  • Функции PS
  • Sets font to use for following output

ps_setfont

(PECL ps >= 1.1.0)

ps_setfont — Sets font to use for following output

Описание

ps_setfont ( resource $psdoc , int $fontid , float $size ) : bool

Sets a font, which has to be loaded before with ps_findfont(). Outputting text without setting a font results in an error.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

fontid

The font identifier as returned by ps_findfont().

size

The size of the font.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_findfont() - Loads a font
  • ps_set_text_pos() - Sets position for text output for an example.


Sets gray value

  • « ps_setfont
  • ps_setlinecap »
  • PHP Manual
  • Функции PS
  • Sets gray value

ps_setgray

(PECL ps >= 1.1.0)

ps_setgray — Sets gray value

Описание

ps_setgray ( resource $psdoc , float $gray ) : bool

Sets the gray value for all following drawing operations.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

gray

The value must be between 0 (white) and 1 (black).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_setcolor() - Sets current color


Sets appearance of line ends

  • « ps_setgray
  • ps_setlinejoin »
  • PHP Manual
  • Функции PS
  • Sets appearance of line ends

ps_setlinecap

(PECL ps >= 1.1.0)

ps_setlinecap — Sets appearance of line ends

Описание

ps_setlinecap ( resource $psdoc , int $type ) : bool

Sets how line ends look like.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of line ends. Possible values are PS_LINECAP_BUTT, PS_LINECAP_ROUND, or PS_LINECAP_SQUARED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_setlinejoin() - Sets how contected lines are joined
  • ps_setlinewidth() - Sets width of a line
  • ps_setmiterlimit() - Sets the miter limit


Sets how contected lines are joined

  • « ps_setlinecap
  • ps_setlinewidth »
  • PHP Manual
  • Функции PS
  • Sets how contected lines are joined

ps_setlinejoin

(PECL ps >= 1.1.0)

ps_setlinejoin — Sets how contected lines are joined

Описание

ps_setlinejoin ( resource $psdoc , int $type ) : bool

Sets how lines are joined.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The way lines are joined. Possible values are PS_LINEJOIN_MITER, PS_LINEJOIN_ROUND, or PS_LINEJOIN_BEVEL.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_setlinecap() - Sets appearance of line ends
  • ps_setlinewidth() - Sets width of a line
  • ps_setmiterlimit() - Sets the miter limit


Sets width of a line

  • « ps_setlinejoin
  • ps_setmiterlimit »
  • PHP Manual
  • Функции PS
  • Sets width of a line

ps_setlinewidth

(PECL ps >= 1.1.0)

ps_setlinewidth — Sets width of a line

Описание

ps_setlinewidth ( resource $psdoc , float $width ) : bool

Sets the line width for all following drawing operations.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of lines in points.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_setlinecap() - Sets appearance of line ends
  • ps_setlinejoin() - Sets how contected lines are joined
  • ps_setmiterlimit() - Sets the miter limit


Sets the miter limit

  • « ps_setlinewidth
  • ps_setoverprintmode »
  • PHP Manual
  • Функции PS
  • Sets the miter limit

ps_setmiterlimit

(PECL ps >= 1.1.0)

ps_setmiterlimit — Sets the miter limit

Описание

ps_setmiterlimit ( resource $psdoc , float $value ) : bool

If two lines join in a small angle and the line join is set to PS_LINEJOIN_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.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

value

The maximum ratio between the miter length and the line width. Larger values (> 10) will result in very long spikes when two lines meet in a small angle. Keep the default unless you know what you are doing.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_setlinecap() - Sets appearance of line ends
  • ps_setlinejoin() - Sets how contected lines are joined
  • ps_setlinewidth() - Sets width of a line


Sets overprint mode

  • « ps_setmiterlimit
  • ps_setpolydash »
  • PHP Manual
  • Функции PS
  • Sets overprint mode

ps_setoverprintmode

(PECL ps >= 1.3.0)

ps_setoverprintmode — Sets overprint mode

Описание

ps_setoverprintmode ( resource $psdoc , int $mode ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

mode

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Sets appearance of a dashed line

  • « ps_setoverprintmode
  • ps_shading_pattern »
  • PHP Manual
  • Функции PS
  • Sets appearance of a dashed line

ps_setpolydash

(PECL ps >= 1.1.0)

ps_setpolydash — Sets appearance of a dashed line

Описание

ps_setpolydash ( resource $psdoc , float $arr ) : bool

Sets the length of the black and white portions of a dashed line. ps_setpolydash() is used to set more complicated dash patterns.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

arr

arr is a list of length elements alternately for the black and white portion.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Drawing a dashed line

<?php
$ps = ps_new();
if (!ps_open_file($ps, "polydash.ps")) {
   print "Cannot open PostScript file\n";
     exit;
}

ps_set_info($ps, "Creator", "polydash.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Poly dash example");

ps_begin_page($ps, 596, 842);
ps_setpolydash($ps, array(10, 5, 2, 5));
ps_moveto($ps, 100, 100);
ps_lineto($ps, 200, 200);
ps_stroke($ps);
ps_end_page($ps);

ps_delete($ps);
?>

This example draws a line with a 10 and 2 points long line, and gaps of 5 points inbetween.

Смотрите также

  • ps_setdash() - Sets appearance of a dashed line


Creates a pattern based on a shading

  • « ps_setpolydash
  • ps_shading »
  • PHP Manual
  • Функции PS
  • Creates a pattern based on a shading

ps_shading_pattern

(PECL ps >= 1.3.0)

ps_shading_pattern — Creates a pattern based on a shading

Описание

ps_shading_pattern ( resource $psdoc , int $shadingid , string $optlist ) : int

Creates a pattern based on a shading, which has to be created before with ps_shading(). Shading patterns can be used like regular patterns.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

shadingid

The identifier of a shading previously created with ps_shading().

optlist

This argument is not currently used.

Возвращаемые значения

The identifier of the pattern или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_shading() - Creates a shading for later use
  • ps_shfill() - Fills an area with a shading


Creates a shading for later use

  • « ps_shading_pattern
  • ps_shfill »
  • PHP Manual
  • Функции PS
  • Creates a shading for later use

ps_shading

(PECL ps >= 1.3.0)

ps_shading — Creates a shading for later use

Описание

ps_shading ( resource $psdoc , string $type , float $x0 , float $y0 , float $x1 , float $y1 , float $c1 , float $c2 , float $c3 , float $c4 , string $optlist ) : int

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

Resource identifier of the postscript file as returned by ps_new().

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. If the type of shading is radial the two points are the middle points of a starting and ending circle.

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 или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_shading_pattern() - Creates a pattern based on a shading
  • ps_shfill() - Fills an area with a shading


Fills an area with a shading

  • « ps_shading
  • ps_show_boxed »
  • PHP Manual
  • Функции PS
  • Fills an area with a shading

ps_shfill

(PECL ps >= 1.3.0)

ps_shfill — Fills an area with a shading

Описание

ps_shfill ( resource $psdoc , int $shadingid ) : bool

Fills an area with a shading, which has to be created before with ps_shading(). This is an alternative way to creating a pattern from a shading ps_shading_pattern() and using the pattern as the filling color.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

shadingid

The identifier of a shading previously created with ps_shading().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_shading() - Creates a shading for later use
  • ps_shading_pattern() - Creates a pattern based on a shading


Output text in a box

  • « ps_shfill
  • ps_show_xy2 »
  • PHP Manual
  • Функции PS
  • Output text in a box

ps_show_boxed

(PECL ps >= 1.1.0)

ps_show_boxed — Output text in a box

Описание

ps_show_boxed ( resource $psdoc , string $text , float $left , float $bottom , float $width , float $height , string $hmode [, string $feature ] ) : int

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.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output into the given box.

left

x-coordinate of the lower left corner of the box.

bottom

y-coordinate of the lower left corner of the box.

width

Width of the box.

height

Height of the box.

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

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.

Возвращаемые значения

Number of characters that could not be written.

Смотрите также

  • ps_continue_text() - Continue text in next line


Output text at position

  • « ps_show_boxed
  • ps_show_xy »
  • PHP Manual
  • Функции PS
  • Output text at position

ps_show_xy2

(PECL ps >= 1.1.0)

ps_show_xy2 — Output text at position

Описание

ps_show_xy2 ( resource $psdoc , string $text , int $len , float $xcoor , float $ycoor ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Output text at given position

  • « ps_show_xy2
  • ps_show2 »
  • PHP Manual
  • Функции PS
  • Output text at given position

ps_show_xy

(PECL ps >= 1.1.0)

ps_show_xy — Output text at given position

Описание

ps_show_xy ( resource $psdoc , string $text , float $x , float $y ) : bool

Output a text at the given text position.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output.

x

x-coordinate of the lower left corner of the box surrounding the text.

y

y-coordinate of the lower left corner of the box surrounding the text.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_continue_text() - Continue text in next line
  • ps_show() - Output text


Output a text at current position

  • « ps_show_xy
  • ps_show »
  • PHP Manual
  • Функции PS
  • Output a text at current position

ps_show2

(PECL ps >= 1.1.0)

ps_show2 — Output a text at current position

Описание

ps_show2 ( resource $psdoc , string $text , int $len ) : bool

Output text at the current position. Do not print more than len characters.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output.

len

The maximum number of characters to print.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Output text

  • « ps_show2
  • ps_string_geometry »
  • PHP Manual
  • Функции PS
  • Output text

ps_show

(PECL ps >= 1.1.0)

ps_show — Output text

Описание

ps_show ( resource $psdoc , string $text ) : bool

Output a text at the current text position. The text position can be set by storing the x and y coordinates into the values textx and texty with the function ps_set_value(). The function will issue an error if a font was not 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.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_continue_text() - Continue text in next line
  • ps_show_xy() - Output text at given position
  • ps_setfont() - Sets font to use for following output


Gets geometry of a string

  • « ps_show
  • ps_stringwidth »
  • PHP Manual
  • Функции PS
  • Gets geometry of a string

ps_string_geometry

(PECL ps >= 1.2.0)

ps_string_geometry — Gets geometry of a string

Описание

ps_string_geometry ( resource $psdoc , string $text [, int $fontid = 0 [, float $size = 0.0 ]] ) : array

This function is similar to ps_stringwidth() but returns an array of dimensions containing the width, ascender, and descender of the text.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text for which the geometry is to be calculated.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

size

The size of the font. If no size is specified the current size is used.

Возвращаемые значения

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() - Continue text in next line
  • ps_stringwidth() - Gets width of a string


Gets width of a string

  • « ps_string_geometry
  • ps_stroke »
  • PHP Manual
  • Функции PS
  • Gets width of a string

ps_stringwidth

(PECL ps >= 1.1.0)

ps_stringwidth — Gets width of a string

Описание

ps_stringwidth ( resource $psdoc , string $text [, int $fontid = 0 [, float $size = 0.0 ]] ) : float

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.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text for which the width is to be calculated.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

size

The size of the font. If no size is specified the current size is used.

Возвращаемые значения

Width of a string in points.

Смотрите также

  • ps_string_geometry() - Gets geometry of a string


Draws the current path

  • « ps_stringwidth
  • ps_symbol_name »
  • PHP Manual
  • Функции PS
  • Draws the current path

ps_stroke

(PECL ps >= 1.1.0)

ps_stroke — Draws the current path

Описание

ps_stroke ( resource $psdoc ) : bool

Draws the path constructed with previously called drawing functions like ps_lineto().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_closepath_stroke() - Closes and strokes path
  • ps_fill() - Fills the current path
  • ps_fill_stroke() - Fills and strokes the current path


Gets name of a glyph

  • « ps_stroke
  • ps_symbol_width »
  • PHP Manual
  • Функции PS
  • Gets name of a glyph

ps_symbol_name

(PECL ps >= 1.2.0)

ps_symbol_name — Gets name of a glyph

Описание

ps_symbol_name ( resource $psdoc , int $ord [, int $fontid = 0 ] ) : string

This function needs an Adobe font metrics file to know which glyphs are available.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

ord

The parameter ord is the position of the glyph in the font encoding vector.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

Возвращаемые значения

The name of a glyph in the given font.

Смотрите также

  • ps_symbol() - Output a glyph
  • ps_symbol_width() - Gets width of a glyph


Gets width of a glyph

  • « ps_symbol_name
  • ps_symbol »
  • PHP Manual
  • Функции PS
  • Gets width of a glyph

ps_symbol_width

(PECL ps >= 1.2.0)

ps_symbol_width — Gets width of a glyph

Описание

ps_symbol_width ( resource $psdoc , int $ord [, int $fontid = 0 [, float $size = 0.0 ]] ) : float

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

Resource identifier of the postscript file as returned by ps_new().

ord

The position of the glyph in the font encoding vector.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

size

The size of the font. If no size is specified the current size is used.

Возвращаемые значения

The width of a glyph in points.

Смотрите также

  • ps_symbol() - Output a glyph
  • ps_symbol_name() - Gets name of a glyph


Output a glyph

  • « ps_symbol_width
  • ps_translate »
  • PHP Manual
  • Функции PS
  • Output a glyph

ps_symbol

(PECL ps >= 1.2.0)

ps_symbol — Output a glyph

Описание

ps_symbol ( resource $psdoc , int $ord ) : bool

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().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

ord

The position of the glyph in the font encoding vector.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_symbol_name() - Gets name of a glyph
  • ps_symbol_width() - Gets width of a glyph


Sets translation

  • « ps_symbol
  • Считыватель RPM »
  • PHP Manual
  • Функции PS
  • Sets translation

ps_translate

(PECL ps >= 1.1.0)

ps_translate — Sets translation

Описание

ps_translate ( resource $psdoc , float $x , float $y ) : bool

Sets a new initial point of the coordinate system.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the origin of the translated coordinate system.

y

y-coordinate of the origin of the translated coordinate system.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Translation of the coordinate system

<?php
function rectangle($ps) {
    ps_moveto($ps, 0, 0);
    ps_lineto($ps, 0, 50);
    ps_lineto($ps, 50, 50);
    ps_lineto($ps, 50, 0);
    ps_lineto($ps, 0, 0);
    ps_stroke($ps);
}

$ps = ps_new();
if (!ps_open_file($ps, "translate.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "translate.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Translated example");
ps_set_info($ps, "BoundingBox", "0 0 596 842");

$psfont = ps_findfont($ps, "Helvetica", "", 0);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_translate($ps, 500, 750);
rectangle($ps);
ps_translate($ps, -500, -750);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Text at initial position");
ps_end_page($ps);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_save($ps);
ps_translate($ps, 500, 750);
rectangle($ps);
ps_restore($ps);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Text at initial position");
ps_end_page($ps);

ps_delete($ps);
?>

The above example demonstrates two possible ways to place a graphic (in this case just a rectangle) at any position on the page, while the graphic itself uses its own coordinate system. The trick is to change the origin of the current coordinate system before drawing the rectangle. The translation has to be undone after the graphic has been drawn.

On the second page a slightly different and more elegant approach is applied. Instead of undoing the translation with a second call of ps_translate() the graphics context is saved before modifying the coordinate system and restored after drawing the rectangle.

Смотрите также

  • ps_scale() - Sets scaling factor
  • ps_rotate() - Sets rotation factor


Чтение заголовков RPM

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Обычное использование
  • Функции считывателя RPM
    • rpm_close — Закрывает RPM-файл
    • rpm_get_tag — Получает тег заголовка из RPM-файла
    • rpm_is_valid — Проверяет имя файла в качестве файла RPM
    • rpm_open — Открывает RPM-файл
    • rpm_version — Возвращает строку, представляющую текущую версию модуля rpmreader


Введение

Модуль позволяет вам читать мета-информацию, хранящуюся в заголовках » RedHat Package Manager файла (» RPM).


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Для модуля RPMReader требуется PHP 5.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/rpmreader.


Типы ресурсов

Существует один тип ресурсов, используемый модулем RPMReader. Данный ресурс - это указатель файла, который определяет RPM-файл, с которым модуль будет работать.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Следующий список констант используется для получения информации с использованием функции rpm_get_tag(). Эти константы представляют номер тега, который будет извлекаться из раздела заголовка файла RPM. Ниже приведены описания того, на какие данные ссылаются числовые константы тега.

RPMREADER_MINIMUM (integer)
Минимальное допустимое значение любого номера тега RPM.
RPMREADER_NAME (integer)
Имя пакета RPM.
RPMREADER_VERSION (integer)
Версия пакета RPM.
RPMREADER_RELEASE (integer)
Релиз пакета RPM.
RPMREADER_EPOCH (integer)
RPMREADER_SERIAL (integer)
RPMREADER_SUMMARY (integer)
Сводный текст пакета RPM.
RPMREADER_DESCRIPTION (integer)
Полный текст описания пакета RPM.
RPMREADER_BUILDTIME (integer)
Дата и время создания пакета RPM.
RPMREADER_BUILDHOST (integer)
Имя хоста, на котором был создан пакет RPM.
RPMREADER_INSTALLTIME (integer)
RPMREADER_SIZE (integer)
Размер пакета RPM.
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)
Список файлов в пакете RPM (устаревший формат). Правильный способ теперь использовать комбинацию из 3 тегов (RPMREADER_BASENAMES, RPMREADER_DIRINDEXES, RPMREADER_DIRNAMES), в которой RPM теперь вызывает "CompressedFileNames". Этот тег по-прежнему используется в старых файлах RPM, которые не используют метод "CompressedFileNames" и поддерживается для обратной совместимости.
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)
Список дат из записей журнала изменений.
RPMREADER_CHANGELOGNAME (integer)
Список имен записей журнала изменений.
RPMREADER_CHANGELOGTEXT (integer)
Список текста из записей журнала изменений.
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)
Список индексов, связывающих имена каталогов с файлами в пакете RPM. Этот тег используется вместе с RPMREADER_BASENAMES и RPMREADER_DIRNAMES для восстановления имен файлов в пакете RPM, хранящихся в новом методе "CompressedFileNames" в RPM.
RPMREADER_BASENAMES (integer)
Список имен файлов в пакете RPM без информации о пути. Этот тег используется совместно с RPMREADER_DIRINDEXES и RPMREADER_DIRNAMES для восстановления имен файлов в пакете RPM, хранящихся в новом методе "CompressedFileNames" в RPM.
RPMREADER_DIRNAMES (integer)
Список имен каталогов, используемых файлами в пакете RPM. Этот тег используется совместно с RPMREADER_BASENAMES и RPMREADER_DIRINDEXES для восстановления имен файлов в пакете RPM, хранящихся в новом методе "CompressedFileNames" в 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)
Максимальное допустимое значение любого номера тега RPM.


  • « Предопределенные константы
  • Обычное использование »
  • PHP Manual
  • Считыватель RPM
  • Примеры

Примеры

Содержание

  • Обычное использование


Обычное использование

В примере открывается файл RPM, читается его имя, версия и выпуск из файла RPM, отображаются результаты и зыкрывается файл RPM.

Пример #1 Пример простого использования RPMReader

<?php

$filename = "/path/to/file.rpm";

// открыть файл
$rpmr = rpm_open($filename);

// получить тег "Name"
$name = rpm_get_tag($rpmr, RPMREADER_NAME);

// получить тег "Version"
$ver = rpm_get_tag($rpmr, RPMREADER_VERSION);

// получить тег "Release"
$rel = rpm_get_tag($rpmr, RPMREADER_RELEASE);

echo "$name-$ver-$rel<br>\n";

// закрыть файл
rpm_close($rpmr);

?>


Функции считывателя RPM

Содержание

  • rpm_close — Закрывает RPM-файл
  • rpm_get_tag — Получает тег заголовка из RPM-файла
  • rpm_is_valid — Проверяет имя файла в качестве файла RPM
  • rpm_open — Открывает RPM-файл
  • rpm_version — Возвращает строку, представляющую текущую версию модуля rpmreader


Закрывает RPM-файл

  • « Функции считывателя RPM
  • rpm_get_tag »
  • PHP Manual
  • Функции считывателя RPM
  • Закрывает RPM-файл

rpm_close

(PECL rpmreader >= 0.1.0)

rpm_close — Закрывает RPM-файл

Описание

rpm_close ( resource $rpmr ) : bool

rpm_close() закроет файловый указатель RPM.

Список параметров

rpmr

Ресурс указателя файла успешно открытый с помощью rpm_open().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования rpm_close()

<?php

$file = "/path/to/file.rpm";
$rpmr = rpm_open($file);

rpm_close($rpmr);

?>

Смотрите также

  • rpm_open() - Открывает RPM-файл


Получает тег заголовка из RPM-файла

  • « rpm_close
  • rpm_is_valid »
  • PHP Manual
  • Функции считывателя RPM
  • Получает тег заголовка из RPM-файла

rpm_get_tag

(PECL rpmreader >= 0.1.0)

rpm_get_tag — Получает тег заголовка из RPM-файла

Описание

rpm_get_tag ( resource $rpmr , int $tagnum ) : mixed

rpm_get_tag() излекает переданный тег из заголовка файла RPM и возвращает его.

Список параметров

rpmr

Ресурс указателя файла успешно открытый с помощью rpm_open().

tagnum

Номер тега для извлечения из заголовка RPM. Это значение может быть указано с помощью списка констант, определенных этим модулем.

Возвращаемые значения

Возвращаемое значение может быть разных типов в зависимости от переданного значения tagnum этой функции.

Примеры

Пример #1 Пример использования rpm_get_tag()

<?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-файл
  • rpm_close() - Закрывает RPM-файл


Проверяет имя файла в качестве файла RPM

  • « rpm_get_tag
  • rpm_open »
  • PHP Manual
  • Функции считывателя RPM
  • Проверяет имя файла в качестве файла RPM

rpm_is_valid

(PECL rpmreader >= 0.1.0)

rpm_is_valid — Проверяет имя файла в качестве файла RPM

Описание

rpm_is_valid ( string $filename ) : bool

rpm_is_valid() проверит файл RPM на валидность в качестве файла RPM. Это не то же самое, что и функция rpm_open(), поскольку она проверяет файл только на валидность, но не возвращает указатель на файл, который будет использоваться последующими функциями.

Список параметров

filename

Имя RPM-файла, который вы хотите проверить.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования rpm_is_valid()

<?php

$file = "/path/to/file.rpm";

if (rpm_is_valid($file)) {
    echo "Файл распознается как файл RPM.<br>\n";
}
else {
    echo "Файл не распознается как файл RPM.<br>\n";
}

?>


Открывает RPM-файл

  • « rpm_is_valid
  • rpm_version »
  • PHP Manual
  • Функции считывателя RPM
  • Открывает RPM-файл

rpm_open

(PECL rpmreader >= 0.1.0)

rpm_open — Открывает RPM-файл

Описание

rpm_open ( string $filename ) : resource

rpm_open() откроет RPM-файл и определит, является ли файл валидным файлом RPM.

Список параметров

filename

Имя RPM-файла, который вы хотите открыть.

Возвращаемые значения

Если открытие файла произошло успешно, тогда rpm_open() вернет ресурс файлового указателя на недавно открытый файл. В случае возникновения ошибки функция вернет FALSE.

Примеры

Пример #1 Пример использования rpm_open()

<?php

$file = "/path/to/file.rpm";
$rpmr = rpm_open($file);

rpm_close($rpmr);

?>

Смотрите также

  • rpm_close() - Закрывает RPM-файл


Возвращает строку, представляющую текущую версию модуля rpmreader

  • « rpm_open
  • XLSWriter »
  • PHP Manual
  • Функции считывателя RPM
  • Возвращает строку, представляющую текущую версию модуля rpmreader

rpm_version

(PECL rpmreader >= 0.3.0)

rpm_version — Возвращает строку, представляющую текущую версию модуля rpmreader

Описание

rpm_version ( void ) : string

rpm_version() вернет текущую версию модуля rpmreader.

Возвращаемые значения

rpm_version() вернет строку, представляющую версию модуля rpmreader, загруженного в данное время в PHP.

Примеры

Пример #1 Пример использования rpm_version()

<?php

$rpmr_ver = rpm_version();

echo "$rpmr_ver<br />\n";

?>


XLSWriter

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Типы ресурсов
  • Предопределенные константы
  • Vtiful\Kernel\Excel — Класс Vtiful\Kernel\Excel
    • Vtiful\Kernel\Excel::addSheet — Добавить лист
    • Vtiful\Kernel\Excel::autoFilter — Добавить автофильтр
    • Vtiful\Kernel\Excel::constMemory — Количество памяти
    • Vtiful\Kernel\Excel::__construct — Конструктор
    • Vtiful\Kernel\Excel::data — Записать данные
    • Vtiful\Kernel\Excel::fileName — Создать название файла
    • Vtiful\Kernel\Excel::getHandle — Получить дескриптор
    • Vtiful\Kernel\Excel::header — Записать заголовок
    • Vtiful\Kernel\Excel::insertFormula — Вставить формулу расчета
    • Vtiful\Kernel\Excel::insertImage — Вставить изображение
    • Vtiful\Kernel\Excel::insertText — Вставить текст
    • Vtiful\Kernel\Excel::mergeCells — Объединить ячейки
    • Vtiful\Kernel\Excel::output — Вывод
    • Vtiful\Kernel\Excel::setColumn — Установить столбец
    • Vtiful\Kernel\Excel::setRow — Установить строку
  • Vtiful\Kernel\Format — Класс Vtiful\Kernel\Format
    • Vtiful\Kernel\Format::align — Выравнивание
    • Vtiful\Kernel\Format::bold — Полужирный
    • Vtiful\Kernel\Format::italic — Курсив
    • Vtiful\Kernel\Format::underline — Подчеркнутый


  • « XLSWriter
  • Установка и настройка »
  • PHP Manual
  • XLSWriter
  • Введение

Введение

Модуль для быстрого и эффективного экспорта в xlsx.


  • « Введение
  • Требования »
  • PHP Manual
  • XLSWriter
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка
  • Типы ресурсов


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Для работы XLSWriter необходим PHP версии 7.0 и выше.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/xlswriter


Типы ресурсов

Для процедурного использования модуля XLSWriter используется тип ресурса, возвращаемый функцией fileName() или \Vtiful\Kernel\Format.


  • « Типы ресурсов
  • Vtiful\Kernel\Excel »
  • PHP Manual
  • XLSWriter
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Класс Vtiful\Kernel\Excel

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Введение

Создает файлы xlsx с заданными ячейками

Обзор классов

Vtiful\Kernel\Excel {
/* Методы */
public addSheet ( string $sheetName )
public autoFilter ( string $scope )
public constMemory ( string $fileName [, string $sheetName ] )
public __construct ( array $config )
public data ( array $data )
public fileName ( string $fileName [, string $sheetName ] )
public getHandle ( void )
public header ( array $headerData )
public insertFormula ( int $row , int $column , string $formula )
public insertImage ( int $row , int $column , string $localImagePath )
public insertText ( int $row , int $column , stringintdouble $data [, string $format ] )
public mergeCells ( string $scope , string $data )
public output ( void )
public setColumn ( string $range , float $width [, resource $format ] )
public setRow ( string $range , float $height [, resource $format ] )
}

Содержание

  • Vtiful\Kernel\Excel::addSheet — Добавить лист
  • Vtiful\Kernel\Excel::autoFilter — Добавить автофильтр
  • Vtiful\Kernel\Excel::constMemory — Количество памяти
  • Vtiful\Kernel\Excel::__construct — Конструктор
  • Vtiful\Kernel\Excel::data — Записать данные
  • Vtiful\Kernel\Excel::fileName — Создать название файла
  • Vtiful\Kernel\Excel::getHandle — Получить дескриптор
  • Vtiful\Kernel\Excel::header — Записать заголовок
  • Vtiful\Kernel\Excel::insertFormula — Вставить формулу расчета
  • Vtiful\Kernel\Excel::insertImage — Вставить изображение
  • Vtiful\Kernel\Excel::insertText — Вставить текст
  • Vtiful\Kernel\Excel::mergeCells — Объединить ячейки
  • Vtiful\Kernel\Excel::output — Вывод
  • Vtiful\Kernel\Excel::setColumn — Установить столбец
  • Vtiful\Kernel\Excel::setRow — Установить строку


Добавить лист

  • « Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel::autoFilter »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Добавить лист

Vtiful\Kernel\Excel::addSheet

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::addSheet — Добавить лист

Описание

public Vtiful\Kernel\Excel::addSheet ( string $sheetName )

Создайте новый лист в файле xlsx.

Список параметров

sheetName

Имя листа

Возвращаемые значения

Экземпляр Vtiful\Kernel\Excel

Примеры

Пример #1 Пример использования

<?php
$config = [
    'path' => './tests'
];

$fileObject  = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
    ->header(['name', 'age'])
    ->data([
        ['viest', 23],
        ['wjx', 23]
    ]);

$file->addSheet('sheet_two')
    ->header(['name', 'age'])
    ->data([
        ['james', 33],
        ['king', 33]
    ]);

$file->output();
?>


Добавить автофильтр

  • « Vtiful\Kernel\Excel::addSheet
  • Vtiful\Kernel\Excel::constMemory »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Добавить автофильтр

Vtiful\Kernel\Excel::autoFilter

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::autoFilter — Добавить автофильтр

Описание

public Vtiful\Kernel\Excel::autoFilter ( string $scope )

Добавление автофильтра к листу.

Список параметров

scope

Начальная и конечная строка координат ячейки.

Возвращаемые значения

Экземпляр Vtiful\Kernel\Excel

Примеры

Пример #1 Пример использования

<?php
$config = [
    'path' => './tests'
];

$fileObject  = new \Vtiful\Kernel\Excel($config);

$file = $excel->fileName('test.xlsx')
        ->header(['name', 'age'])
        ->data($data)
        ->autoFilter('A1:B11')  // автофильтр
        ->output();
?>


Количество памяти

  • « Vtiful\Kernel\Excel::autoFilter
  • Vtiful\Kernel\Excel::__construct »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Количество памяти

Vtiful\Kernel\Excel::constMemory

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::constMemory — Количество памяти

Описание

public Vtiful\Kernel\Excel::constMemory ( string $fileName [, string $sheetName ] )

Запись большого файла с постоянным использованием памяти.

Список параметров

fileName

Имя файла XLSX

sheetName

Название листа

Возвращаемые значения

Экземпляр Vtiful\Kernel\Excel

Примеры

Пример #1 Пример использования

<?php
$config = [
  'path' => '/home/viest'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $instance->constMemory('tutorial.xlsx', 'sheet');
?>


Конструктор

  • « Vtiful\Kernel\Excel::constMemory
  • Vtiful\Kernel\Excel::data »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Конструктор

Vtiful\Kernel\Excel::__construct

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::__construct — Конструктор

Описание

public Vtiful\Kernel\Excel::__construct ( array $config )

Конструктор Vtiful\Kernel\Excel, создать экземляр.

Список параметров

config

Конфигурация экспорта файла XLSX

Возвращаемые значения

Экземпляр Vtiful\Kernel\Excel

Примеры

Пример #1 Пример использования

<?php
$config = [
  'path' => '/home/viest'
];

$excelObject = new \Vtiful\Kernel\Excel($config);
?>


Записать данные

  • « Vtiful\Kernel\Excel::__construct
  • Vtiful\Kernel\Excel::fileName »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Записать данные

Vtiful\Kernel\Excel::data

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::data — Записать данные

Описание

public Vtiful\Kernel\Excel::data ( array $data )

Записать данные в таблицу.

Список параметров

data

Данные листа

Возвращаемые значения

Экземпляр Vtiful\Kernel\Excel

Примеры

Пример #1 Пример использования

<?php
$config = [
    'path' => './tests'
];

$fileObject  = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
    ->header(['name', 'age'])
    ->data([
      ['viest', 23],
      ['wjx', 23],
    ]);
?>


Создать название файла

  • « Vtiful\Kernel\Excel::data
  • Vtiful\Kernel\Excel::getHandle »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Создать название файла

Vtiful\Kernel\Excel::fileName

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::fileName — Создать название файла

Описание

public Vtiful\Kernel\Excel::fileName ( string $fileName [, string $sheetName ] )

Создать новый файл XLSX и лист в нем.

Список параметров

fileName

Имя файла XLSX

sheetName

Название листа

Возвращаемые значения

Экземпляр Vtiful\Kernel\Excel

Примеры

Пример #1 Пример использования

<?php
$config = [
  'path' => '/home/viest'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $instance->fileName('tutorial.xlsx', 'sheet');
?>


Получить дескриптор

  • « Vtiful\Kernel\Excel::fileName
  • Vtiful\Kernel\Excel::header »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Получить дескриптор

Vtiful\Kernel\Excel::getHandle

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::getHandle — Получить дескриптор

Описание

public Vtiful\Kernel\Excel::getHandle ( void )

Получить дескриптор текстового ресурса xlsx.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ресурс

Примеры

Пример #1 Пример использования

<?php
$config = [
    'path' => './tests'
];

$fileObject  = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
    ->header(['name', 'age']);

$handle = $file->getHandle();
?>


Записать заголовок

  • « Vtiful\Kernel\Excel::getHandle
  • Vtiful\Kernel\Excel::insertFormula »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Записать заголовок

Vtiful\Kernel\Excel::header

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::header — Записать заголовок

Описание

public Vtiful\Kernel\Excel::header ( array $headerData )

Написать заголовок на листе.

Список параметров

headerData

Данные заголовка листа

Возвращаемые значения

Экземпляр Vtiful\Kernel\Excel

Примеры

Пример #1 Пример использования

<?php
$config = [
    'path' => './tests'
];

$fileObject  = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
    ->header(['name', 'age']);
?>


Вставить формулу расчета

  • « Vtiful\Kernel\Excel::header
  • Vtiful\Kernel\Excel::insertImage »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Вставить формулу расчета

Vtiful\Kernel\Excel::insertFormula

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::insertFormula — Вставить формулу расчета

Описание

public Vtiful\Kernel\Excel::insertFormula ( int $row , int $column , string $formula )

Вставить формулу расчета.

Список параметров

row

строка ячейки

column

столбец ячейки

formula

строка формулы

Возвращаемые значения

Экземпляр Vtiful\Kernel\Excel

Примеры

Пример #1 Пример использования

<?php
$config = [
    'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);

$file = $excel->fileName("free.xlsx")
    ->header(['name', 'money']);

for($index = 1; $index < 10; $index++) {
    $file->insertText($index, 0, 'viest');
    $file->insertText($index, 1, 10);
}

$file->insertText(12, 0, "Total");
$file->insertFormula(12, 1, '=SUM(B2:B11)'); // вставить формулу

$file->output();


Вставить изображение

  • « Vtiful\Kernel\Excel::insertFormula
  • Vtiful\Kernel\Excel::insertText »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Вставить изображение

Vtiful\Kernel\Excel::insertImage

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::insertImage — Вставить изображение

Описание

public Vtiful\Kernel\Excel::insertImage ( int $row , int $column , string $localImagePath )

Вставьте локальное изображение в ячейку.

Список параметров

row

строка ячейки

column

столбец ячейки

localImagePath

путь к локальному изображению

Возвращаемые значения

Экземпляр Vtiful\Kernel\Excel

Примеры

Пример #1 Пример использования

<?php
$config = [
    'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);

$file = $excel->fileName("free.xlsx");

$file->insertImage(5, 0, '/vagrant/ASW-G-66.jpg');

$file->output();


Вставить текст

  • « Vtiful\Kernel\Excel::insertImage
  • Vtiful\Kernel\Excel::mergeCells »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Вставить текст

Vtiful\Kernel\Excel::insertText

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::insertText — Вставить текст

Описание

public Vtiful\Kernel\Excel::insertText ( int $row , int $column , stringintdouble $data [, string $format ] )

Вставить текст в ячейку.

Список параметров

row

строка ячейки

column

столбец ячейки

data

данные для записи

format

формат строки

Возвращаемые значения

Экземпляр Vtiful\Kernel\Excel

Примеры

Пример #1 Пример использования

<?php
$config = [
    'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);

$file = $excel->fileName("free.xlsx")
    ->header(['name', 'money']);

for ($index = 0; $index < 10; $index++) {
    $file->insertText($index+1, 0, 'viest');
    $file->insertText($index+1, 1, 10000, '#,##0');
}

$textFile->output();


Объединить ячейки

  • « Vtiful\Kernel\Excel::insertText
  • Vtiful\Kernel\Excel::output »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Объединить ячейки

Vtiful\Kernel\Excel::mergeCells

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::mergeCells — Объединить ячейки

Описание

public Vtiful\Kernel\Excel::mergeCells ( string $scope , string $data )

Объединить ячейки.

Список параметров

scope

начальные и конечные строки координат ячейки

data

данные строки

Возвращаемые значения

Экземпляр Vtiful\Kernel\Excel

Примеры

Пример #1 Пример использования

<?php
$config = [
    'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);

$excel->fileName("test.xlsx")
        ->mergeCells('A1:C1', 'Merge cells')
        ->output();


Вывод

  • « Vtiful\Kernel\Excel::mergeCells
  • Vtiful\Kernel\Excel::setColumn »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Вывод

Vtiful\Kernel\Excel::output

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::output — Вывод

Описание

public Vtiful\Kernel\Excel::output ( void )

Вывод xlsx-файла на диск.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Путь к файлу XLSX;

Примеры

Пример #1 Пример использования

<?php
$config = [
    'path' => './tests'
];

$fileObject  = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
    ->header(['name', 'age'])
    ->data([
      ['viest', 23],
      ['wjx', 23],
    ]);

$path = $file->output();
?>


Установить столбец

  • « Vtiful\Kernel\Excel::output
  • Vtiful\Kernel\Excel::setRow »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Установить столбец

Vtiful\Kernel\Excel::setColumn

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::setColumn — Установить столбец

Описание

public Vtiful\Kernel\Excel::setColumn ( string $range , float $width [, resource $format ] )

Установить формат столбца.

Список параметров

range

начальные и конечные строки координат ячейки

width

ширина столбца

format

ресурс формата ячейки

Возвращаемые значения

Экземпляр Vtiful\Kernel\Excel

Примеры

Пример #1 Пример использования

<?php
$config = [
    'path' => './tests'
];

$excel  = new \Vtiful\Kernel\Excel($config);

$fileObject = $excel->fileName('tutorial01.xlsx');
$fileHandle = $fileObject->getHandle();

$boldStyle = \Vtiful\Kernel\Format::bold($fileHandle);

$fileObject->header(['name', 'age'])
    ->data([['viest', 21]])
    ->setColumn('A:A', 200, $boldStyle)
    ->output();


Установить строку

  • « Vtiful\Kernel\Excel::setColumn
  • Vtiful\Kernel\Format »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Установить строку

Vtiful\Kernel\Excel::setRow

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::setRow — Установить строку

Описание

public Vtiful\Kernel\Excel::setRow ( string $range , float $height [, resource $format ] )

Установить формат строки.

Список параметров

range

начальные и конечные строки координат ячейки

height

высота строки

format

ресурс формата ячейки

Возвращаемые значения

Экземпляр Vtiful\Kernel\Excel

Примеры

Пример #1 Пример использования

<?php
$config = [
    'path' => './tests'
];

$excel  = new \Vtiful\Kernel\Excel($config);

$fileObject = $excel->fileName('tutorial01.xlsx');
$fileHandle = $fileObject->getHandle();

$boldStyle = \Vtiful\Kernel\Format::bold($fileHandle);

$fileObject->header(['name', 'age'])
    ->data([['viest', 21]])
    ->setRow('A1', 20, $boldStyle,)
    ->output();


Класс Vtiful\Kernel\Format

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Введение

Возвращает объект форматирования ячейки

Обзор классов

Vtiful\Kernel\Format {
/* Константы */
const int FORMAT_ALIGN_LEFT = 1 ;
const int FORMAT_ALIGN_CENTER = 2 ;
const int FORMAT_ALIGN_RIGHT = 3 ;
const int FORMAT_ALIGN_FILL = 4 ;
const int FORMAT_ALIGN_JUSTIFY = 5 ;
const int FORMAT_ALIGN_CENTER_ACROSS = 6 ;
const int FORMAT_ALIGN_DISTRIBUTED = 7 ;
const int FORMAT_ALIGN_VERTICAL_TOP = 8 ;
const int FORMAT_ALIGN_VERTICAL_BOTTOM = 9 ;
const int FORMAT_ALIGN_VERTICAL_CENTER = 10 ;
const int FORMAT_ALIGN_VERTICAL_JUSTIFY = 11 ;
const int FORMAT_ALIGN_VERTICAL_DISTRIBUTED = 12 ;
const int UNDERLINE_SINGLE = 1 ;
const int UNDERLINE_DOUBLE = 2 ;
const int UNDERLINE_SINGLE_ACCOUNTING = 3 ;
const int UNDERLINE_DOUBLE_ACCOUNTING = 4 ;
/* Методы */
public align ( resource $handle , int $style )
public bold ( resource $handle )
public italic ( resource $handle )
public underline ( resource $handle , int $style )
}

Предопределенные константы

Vtiful\Kernel\Format::FORMAT_ALIGN_LEFT

Vtiful\Kernel\Format::FORMAT_ALIGN_CENTER

Vtiful\Kernel\Format::FORMAT_ALIGN_RIGHT

Vtiful\Kernel\Format::FORMAT_ALIGN_FILL

Vtiful\Kernel\Format::FORMAT_ALIGN_JUSTIFY

Vtiful\Kernel\Format::FORMAT_ALIGN_CENTER_ACROSS

Vtiful\Kernel\Format::FORMAT_ALIGN_DISTRIBUTED

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_TOP

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_BOTTOM

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_CENTER

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_JUSTIFY

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_DISTRIBUTED

Vtiful\Kernel\Format::UNDERLINE_SINGLE

Vtiful\Kernel\Format::UNDERLINE_DOUBLE

Vtiful\Kernel\Format::UNDERLINE_SINGLE_ACCOUNTING

Vtiful\Kernel\Format::UNDERLINE_DOUBLE_ACCOUNTING

Содержание

  • Vtiful\Kernel\Format::align — Выравнивание
  • Vtiful\Kernel\Format::bold — Полужирный
  • Vtiful\Kernel\Format::italic — Курсив
  • Vtiful\Kernel\Format::underline — Подчеркнутый


Выравнивание

  • « Vtiful\Kernel\Format
  • Vtiful\Kernel\Format::bold »
  • PHP Manual
  • Vtiful\Kernel\Format
  • Выравнивание

Vtiful\Kernel\Format::align

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Format::align — Выравнивание

Описание

public Vtiful\Kernel\Format::align ( resource $handle , int $style )

Установить выравнение ячейки

Список параметров

handle

Дескриптор файла xlsx

style

Константа Vtiful\Kernel\Format

Возвращаемые значения

Ресурс

Примеры

Пример #1 Пример использования

<?php
$config = [
    'path' => './tests'
];

$excel  = new \Vtiful\Kernel\Excel($config);

$fileObject = $excel->fileName('tutorial01.xlsx');
$fileHandle = $fileObject->getHandle();

$alignStyle = \Vtiful\Kernel\Format::align($fileHandle, \Vtiful\Kernel\Format::FORMAT_ALIGN_LEFT);

$fileObject->header(['name', 'age'])
    ->data([['viest', 21]])
    ->setColumn('A:A', 200, $align)
    ->output();
?>


Полужирный

  • « Vtiful\Kernel\Format::align
  • Vtiful\Kernel\Format::italic »
  • PHP Manual
  • Vtiful\Kernel\Format
  • Полужирный

Vtiful\Kernel\Format::bold

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Format::bold — Полужирный

Описание

public Vtiful\Kernel\Format::bold ( resource $handle )

Полужирный формат Vtiful\Kernel\Format

Список параметров

handle

Дескриптор файла xlsx

Возвращаемые значения

Ресурс

Примеры

Пример #1 Пример использования

<?php
$config = [
    'path' => './tests'
];

$excel  = new \Vtiful\Kernel\Excel($config);

$fileObject = $excel->fileName('tutorial01.xlsx');
$fileHandle = $fileObject->getHandle();

$boldStyle = \Vtiful\Kernel\Format::bold($fileHandle);

$fileObject->header(['name', 'age'])
    ->data([['viest', 21]])
    ->setColumn('A:A', 200, $boldStyle)
    ->output();
?>


Курсив

  • « Vtiful\Kernel\Format::bold
  • Vtiful\Kernel\Format::underline »
  • PHP Manual
  • Vtiful\Kernel\Format
  • Курсив

Vtiful\Kernel\Format::italic

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Format::italic — Курсив

Описание

public Vtiful\Kernel\Format::italic ( resource $handle )

Формат курсива Vtiful\Kernel\Format

Список параметров

handle

Дескриптор файла xlsx

Возвращаемые значения

Ресурс

Примеры

Пример #1 Пример использования

<?php
$config = [
    'path' => './tests'
];

$excel  = new \Vtiful\Kernel\Excel($config);

$fileObject = $excel->fileName('tutorial01.xlsx');
$fileHandle = $fileObject->getHandle();

$italicStyle = \Vtiful\Kernel\Format::italic($fileHandle);

$fileObject->header(['name', 'age'])
    ->data([['viest', 21]])
    ->setColumn('A:A', 200, $italicStyle)
    ->output();
?>


Подчеркнутый

  • « Vtiful\Kernel\Format::italic
  • Расширения для управления процессами программ »
  • PHP Manual
  • Vtiful\Kernel\Format
  • Подчеркнутый

Vtiful\Kernel\Format::underline

(PHP 7 >= 7.0.0, PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Format::underline — Подчеркнутый

Описание

public Vtiful\Kernel\Format::underline ( resource $handle , int $style )

Подчеркнутый формат Vtiful\Kernel\Format

Список параметров

handle

Дескриптор файла xlsx

style

Константа Vtiful\Kernel\Format

Возвращаемые значения

Ресурс

Примеры

Пример #1 Пример использования

<?php
$config = [
    'path' => './tests'
];

$excel  = new \Vtiful\Kernel\Excel($config);

$fileObject = $excel->fileName('tutorial01.xlsx');
$fileHandle = $fileObject->getHandle();

$underlineStyle = \Vtiful\Kernel\Format::underline($fileHandle, \Vtiful\Kernel\Format::UNDERLINE_SINGLE);

$fileObject->header(['name', 'age'])
    ->data([['viest', 21]])
    ->setColumn('A:A', 200, $underlineStyle)
    ->output();
?>


Расширения для управления процессами программ

  • Eio
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Eio Функции
  • Ev
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Наблюдатели
    • Watcher callbacks
    • Режимы работы периодических наблюдателей
    • Ev — Класс Ev
    • EvCheck — Класс EvCheck
    • EvChild — Класс EvChild
    • EvEmbed — Класс EvEmbed
    • EvFork — Класс EvFork
    • EvIdle — Класс EvIdle
    • EvIo — Класс EvIo
    • EvLoop — Класс EvLoop
    • EvPeriodic — Класс EvPeriodic
    • EvPrepare — Класс EvPrepare
    • EvSignal — Класс EvSignal
    • EvStat — Класс EvStat
    • EvTimer — Класс EvTimer
    • EvWatcher — Класс EvWatcher
  • Expect
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции Expect
  • Libevent
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции Libevent
  • PCNTL — Управление процессами
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции PCNTL
  • POSIX
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • POSIX Функции
  • Запуск программы — Запуск программ в системе
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции запуска программ
  • parallel
    • Введение
    • Installation
    • Philosophy
    • Functional API
    • parallel\Runtime — The parallel\Runtime class
    • parallel\Future — The parallel\Future class
    • parallel\Channel — The parallel\Channel class
    • parallel\Events — The parallel\Events class
    • parallel\Events\Input — The parallel\Events\Input class
    • parallel\Events\Event — The parallel\Events\Event class
    • parallel\Events\Event\Type — The parallel\Events\Event\Type class
    • parallel\Sync — The parallel\Sync class
  • pthreads
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Threaded — Класс Threaded
    • Thread — Класс Thread
    • Worker — Класс Worker
    • Collectable — Интерфейс Collectable
    • Модификаторы — Модификаторы методов
    • Pool — Класс Pool
    • Mutex — Класс Mutex
    • Cond — Класс Cond
    • Volatile — Класс Volatile
  • pht
    • Введение
    • Установка и настройка
    • pht\Thread — The Thread class
    • pht\Runnable — The Runnable interface
    • pht\HashTable — The HashTable class
    • pht\Vector — The Vector class
    • pht\Queue — The Queue class
    • pht\AtomicInteger — The AtomicInteger class
    • pht\Threaded — The Threaded interface
  • Семафоры — Семафоры, разделяемая память и IPC
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции семафоров
  • Управление разделяемой памятью
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Разделяемая (shared) память
  • Sync
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • SyncMutex — The SyncMutex class
    • SyncSemaphore — The SyncSemaphore class
    • SyncEvent — The SyncEvent class
    • SyncReaderWriter — The SyncReaderWriter class
    • SyncSharedMemory — The SyncSharedMemory class


Eio

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Eio Функции
    • eio_busy — Искусственно увеличивает нагрузку. Может быть полезно при тестировании, изучении производительности
    • eio_cancel — Отменяет запрос
    • eio_chmod — Изменяет права доступа к файлу/директории
    • eio_chown — Изменяет права доступа к файлу/директории
    • eio_close — Закрыть файл
    • eio_custom — Выполняет пользовательский запрос как любой другой eio_* вызов
    • eio_dup2 — Создает дубликат дескриптора файла
    • eio_event_loop — Взаимодействует с libeio до тех пор, пока все запросы не будут выполнены
    • eio_fallocate — Позволяет напрямую управлять размером используемого дискового пространства для файла
    • eio_fchmod — Изменяет права доступа к файлу
    • eio_fchown — Изменяет владельца файла
    • eio_fdatasync — Синхронизирует текущее состояние файла с физическим устройством
    • eio_fstat — Возвращает статус файла
    • eio_fstatvfs — Возвращает статистику файловой системы
    • eio_fsync — Синхронизирует текущее состояние файла с физическим устройством
    • eio_ftruncate — Урезает размер файла
    • eio_futime — Изменяет дату и время последней модификации и доступа к файлу
    • eio_get_event_stream — Возвращает поток, отражающий переменную, используемую при взаимодействии с libeio
    • eio_get_last_error — Возвращает последнюю ошибку, связанную с указателем на ресурс
    • eio_grp_add — Добавляет запрос в группу запросов
    • eio_grp_cancel — Отменяет группу запросов
    • eio_grp_limit — Устанавливает предельное количество запросов в группе
    • eio_grp — Создает группу запросов
    • eio_init — (Ре-)инициализирует Eio
    • eio_link — Создает жесткую ссылку на файл
    • eio_lstat — Возвращает статус файла
    • eio_mkdir — Создание директории
    • eio_mknod — Создает специальный или обычный файл
    • eio_nop — Проход по циклу запроса, не совершая никаких операций
    • eio_npending — Возвращает число завершенных, но необработанных процессов
    • eio_nready — Возвращает число еще не обработанных запросов
    • eio_nreqs — Возвращает число запросов, которые предстоит выполнить
    • eio_nthreads — Возвращает количество используемых в данный момент потоков
    • eio_open — Открывает файл
    • eio_poll — Может быть вызвана когда имеются запросы, ожидающие выполнения
    • eio_read — Читает данные из файла, начиная с заданного смещения
    • eio_readahead — Помещает данные из файла в кэш страницы
    • eio_readdir — Читает содержимое директории
    • eio_readlink — Читает значение символической ссылки
    • eio_realpath — Получает абсолютный приведенный к каноническому виду путь
    • eio_rename — Изменяет имя или перемещает файл
    • eio_rmdir — Удаляет директорию
    • eio_seek — Перемещает файловый указатель файла fd на число байт offset в соответствии с директивой whence
    • eio_sendfile — Перемещает данные между файлами
    • eio_set_max_idle — Устанавливает максимальное количество ожидающих потоков
    • eio_set_max_parallel — Устанавливает максимальное количество параллельных потоков
    • eio_set_max_poll_reqs — Устанавливает максимальное количество обрабатываемых запросов
    • eio_set_max_poll_time — Устанавливает максимальное время выполнения
    • eio_set_min_parallel — Устанавливает минимальное количество параллельных потоков
    • eio_stat — Возвращает статус файла
    • eio_statvfs — Возвращает статистику файловой системы
    • eio_symlink — Создает символическую ссылку
    • eio_sync_file_range — Синхронизирует сегмент файла с данными файла на внешнем хранилище
    • eio_sync — Записывает кеш из буфера на диск
    • eio_syncfs — Вызывает системный syncfs в Linux, если это доступно
    • eio_truncate — Урезает размер файла
    • eio_unlink — Удаляет файл или одну из жестких ссылок на него
    • eio_utime — Изменяет дату и время последней модификации и доступа к файлу
    • eio_write — Запись в файл


Введение

Модуль реализует подсистему ввода-вывода POSIX I/O средств » libeio Библиотека C Написана Марком Леманном (Marc Lehmann).

Замечание: Для Windows-платформ это расширение недоступно.

Внимание

Следует учесть, что каждый запрос выполняется в отдельном потоке, при этом исполнение запросов непрерывно, а их порядок в очереди исполнения непредсказуем. Например, нижеприведенный пример кода неверен.

Пример #1 Пример неправильных запросов

<?php
// Запрос на создание символической ссылки $link на файл $filename
eio_symlink($filename, $link);

// Запрос на переименование файла $filename в $new_filename
eio_rename($filename, $new_filename);

// Выполнение запросов
eio_event_loop();
?>
В приведенном выше примере запрос eio_rename() может быть выполнен перед eio_symlink(). Правильным решением будет вызов eio_rename() callback-функцией в eio_symlink():

Пример #2 Создание запроса с использованием callback-функции

<?php
function my_symlink_done($filename, $result) {
 // Запрос на переменование $filename в $new_filename
 eio_rename($filename, "/path/to/new-name");

 // Выполнение запросов
 eio_event_loop();
}

// Запрос на создание символической ссылки $link на файл $filename
eio_symlink($filename, $link, EIO_PRI_DEFAULT, "my_symlink_done", $filename);

// Выполнение запросов
eio_event_loop();
?>
Альтернативным решением является создание группы запросов:

Пример #3 Создание запроса с использованием callback-функции

<?php
/* Функция вызывается после выполнения группы запросов */
function my_grp_done($data, $result) {
 // ...
}

function my_symlink_done($filename, $result) {
 // Создание запроса eio_rename и добавление его в группу
 $req = eio_rename($filename, "/path/to/new-name");
 eio_grp_add($grp, $req);
 // Возможно, вы захотите добавить больше запросов...
}

// Создание группы запросов
$grp = eio_grp("my_grp_done", "my_grp_data");

// Создание запроса eio_symlink request и добавление в группу
// Передача $filename в callback-функцию
$req = eio_symlink($filename, $link,
  EIO_PRI_DEFAULT, "my_symlink_done", $filename);
eio_grp_add($grp, $req);

// Выполнение запросов
eio_event_loop();
?>
Группа - это специальный вид запроса, позволяющий создать набор обычных eio-запросов. Это может быть использовано для создания сложных запросов, открывающих, читающих и закрывающих файл.

Начиная с версии 0.3.0 alpha, переменная, используемая для внутреннего взаимодействия с libeio, может быть получена функцией eio_get_event_stream(). Переменная может быть использована для привязке к циклу обработки, поставляемого сторонним модулем. Возможно организовать простой цикл обработки, где eio и libevent работают совместно.

Пример #4 Использование eio совместно с libevent

<?php
function my_eio_poll($fd, $events, $arg) {
    /* Некоторые действия с libevent могут быть здесь */
    if (eio_nreqs()) {
        eio_poll();
    }
    /* .. и здесь */
}

function my_res_cb($d, $r) {
    var_dump($r); var_dump($d);
}

$base = event_base_new();
$event = event_new();

// Этот поток требуется для привязки к libevent
$fd = eio_get_event_stream();

eio_nop(EIO_PRI_DEFAULT, "my_res_cb", "nop data");
eio_mkdir("/tmp/abc-eio-temp", 0750, EIO_PRI_DEFAULT, "my_res_cb", "mkdir data");
/* Прочие eio_* запросы  ... */

// Установка флагов события
event_set($event, $fd, EV_READ /*| EV_PERSIST*/, "my_eio_poll", array($event, $base));

// Установка основы события
event_base_set($event, $base);

// Включение события
event_add($event);

// Запуск цикла обработки
event_base_loop($base);

/* То же самое доступно через интерфейс буфера libevent */
?>


Требования

Расширение включает в себя библиотеку » libeio. Установка libeio отдельно НЕ требуется.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/eio.

Информация об установке в ручном режиме находится в файле INSTALL в пакете поставки.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

В данном расширении два типа ресурсов: request и request group.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы приоритета запроса:

EIO_PRI_MIN (integer)
Минимальный приоритет запроса
EIO_PRI_DEFAULT (integer)
Приоритет по умолчанию
EIO_PRI_MAX (integer)
Максимальный приоритет запроса

Аргумент whence функции eio_seek():

EIO_SEEK_SET (integer)
Смещение offset, заданное в байтах.
EIO_SEEK_CUR (integer)
Смещение offset, заданное в байтах от текущего значения.
EIO_SEEK_END (integer)
Смещение offset, заданное в байтах от размера файла.

Флаги, используемые в eio_readdir():

EIO_READDIR_DENTS (integer)
Флаг eio_readdir(). Если указан, аргумент для выполнения callback-функции становится массивом со следующими ключами: 'names' - массив имен директории 'dents' - массив массивов вида struct eio_dirent, каждый из которых имеет ключи: 'name' - имя директории; 'type' - одна из констант EIO_DT_*; 'inode' - Номер inode, если он доступен, иначе значение не указывается;
EIO_READDIR_DIRS_FIRST (integer)
Когда флаг указан, имена будут возвращены в порядке, при котором будут возвращены первыми директории в оптимальном порядке.
EIO_READDIR_STAT_ORDER (integer)
Когда флаг указан, имена будут возвращены в порядке, в зависимости от stat каждого из них. Если планируется выполнить stat() для всех файлов в директории, такой порядок будет, скорее всего, наиболее быстрым.
EIO_READDIR_FOUND_UNKNOWN (integer)
EIO_DT_UNKNOWN (integer)
Неизвестный тип узла (очень распространено). Далее необходим вызов stat().
EIO_DT_FIFO (integer)
Тип FIFO узла
EIO_DT_CHR (integer)
Тип узла
EIO_DT_MPC (integer)
Тип узла мультиплексное символьное устройство (v7+coherent)
EIO_DT_DIR (integer)
Тип узла директория
EIO_DT_NAM (integer)
Тип узла специальный именованный файл Xenix (Xenix special named file)
EIO_DT_BLK (integer)
Тип узла
EIO_DT_MPB (integer)
Тип узла мультеплексное блочное устройство (Multiplexed block device) (v7+coherent)
EIO_DT_REG (integer)
Тип узла
EIO_DT_NWK (integer)
EIO_DT_CMP (integer)
Тип узла HP-UX network special
EIO_DT_LNK (integer)
Тип узла ссылка
EIO_DT_SOCK (integer)
Тип узла сокет
EIO_DT_DOOR (integer)
Тип узла Solaris door
EIO_DT_WHT (integer)
Тип узла
EIO_DT_MAX (integer)
Наибольшее значение типа узла

Режимы доступа для eio_open() аргумент flags:

EIO_O_RDONLY (integer)
EIO_O_WRONLY (integer)
EIO_O_RDWR (integer)
EIO_O_NONBLOCK (integer)
EIO_O_APPEND (integer)
EIO_O_CREAT (integer)
EIO_O_TRUNC (integer)
EIO_O_EXCL (integer)
EIO_O_FSYNC (integer)

Флаги аргумента mode функции eio_open():

EIO_S_IRUSR (integer)
EIO_S_IWUSR (integer)
EIO_S_IXUSR (integer)
EIO_S_IRGRP (integer)
EIO_S_IWGRP (integer)
EIO_S_IXGRP (integer)
EIO_S_IROTH (integer)
EIO_S_IWOTH (integer)
EIO_S_IXOTH (integer)
EIO_S_IFREG (integer)
EIO_S_IFCHR (integer)
EIO_S_IFBLK (integer)
EIO_S_IFIFO (integer)
EIO_S_IFSOCK (integer)

Флаги функции eio_sync_file_range():

EIO_SYNC_FILE_RANGE_WAIT_BEFORE (integer)
EIO_SYNC_FILE_RANGE_WRITE (integer)
EIO_SYNC_FILE_RANGE_WAIT_AFTER (integer)

Флаги функции eio_fallocate():

EIO_FALLOC_FL_KEEP_SIZE (integer)

Замечание:

Константы EIO_S_I* имеют то же значение, что их коллеги S_I* в POSIX.

Замечание:

EIO_SYNC_FILE_* имеют то же значение, что их коллеги SYNC_FILE_**.

Замечание:

EIO_O_* имеют то же значение, что их коллеги O_* в POSIX.


Примеры

Пример #1 Отмена запроса

<?php
 /* Вызывается после завершения eio_nop() */
 function my_nop_cb($data, $result) {
  echo "my_nop ", $data, "\n";
 }

// Этот eio_nop() будет отменен
$req = eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "1");
var_dump($req);
eio_cancel($req);

// Этот eio_nop() будет выполнен
eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "2");

// Выполнение запросов
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

resource(4) of type (EIO Request Descriptor)
my_nop 2

Пример #2 Вызов eio_chmod()

<?php
$temp_filename = dirname(__FILE__) ."/eio-temp-file.tmp";
touch($temp_filename);

/* Вызывается после завершения eio_chmod() */
function my_chmod_callback($data, $result) {
    global $temp_filename;

    if ($result == 0 && !is_readable($temp_filename) && is_writable($temp_filename)) {
        echo "eio_chmod_ok";
    }

    @unlink($temp_filename);
}

eio_chmod($temp_filename, 0200, EIO_PRI_DEFAULT, "my_chmod_callback");
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

eio_chmod_ok

Пример #3 Создание пользовательского запроса

<?php
/* Пользовательская функция обратного вызова */
function my_custom_callback($data, $result) {
    var_dump($data);
    var_dump(count($result));
    var_dump($result['data_modified']);
    var_dump($result['result']);
}

/* Пользовательский запрос */
function my_custom($data) {
    var_dump($data);

    $result  = array(
        'result'        => 1001,
        'data_modified' => "my custom data",
    );

    return $result;
}

$data = "my_custom_data";
$req = eio_custom("my_custom", EIO_PRI_DEFAULT, "my_custom_callback", $data);
var_dump($req);
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

resource(4) of type (EIO Request Descriptor)
string(14) "my_custom_data"
string(14) "my_custom_data"
int(2)
string(14) "my custom data"
int(1001)

Пример #4 Группировка запросов

<?php
/*
 * Создание группы запросов для открытия, чтения и закрытия файла
 */

$temp_filename = dirname(__FILE__) ."/eio-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "some data");
fclose($fp);

/* Вызывается, когда группа запросов будет выполнена */
function my_grp_done($data, $result) {
 global $temp_filename;
 var_dump($result == 0);
 @unlink($temp_filename);
}

/* Вызывается после выполнения eio_open() */
function my_grp_file_opened_callback($data, $result) {
 global $my_file_fd, $grp;

 $my_file_fd = $result;

 var_dump($result > 0);

 // Создание запроса eio_read() и добавление в группу
 $req = eio_read($my_file_fd, 4, 0, EIO_PRI_DEFAULT, "my_grp_file_read_callback");
 eio_grp_add($grp, $req);
}

/* Вызывается после выполнения eio_read() */
function my_grp_file_read_callback($data, $result) {
 global $my_file_fd, $grp;

 var_dump($result);

 // Создание запроса eio_close() и добавление в группу
 $req = eio_close($my_file_fd);
 eio_grp_add($grp, $req);
}

$grp = eio_grp("my_grp_done", "my_grp_data");

// Создание запроса eio_open() и добавление в группу
$req = eio_open($temp_filename, EIO_O_RDWR | EIO_O_APPEND , NULL,
  EIO_PRI_DEFAULT, "my_grp_file_opened_callback", NULL);
eio_grp_add($grp, $req);
var_dump($grp);

eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

resource(6) of type (EIO Group Descriptor)
bool(true)
string(4) "some"
bool(true)

Пример #5 Использование eio совместно с модулем libevent

<?php
function my_eio_poll($fd, $events, $arg) {
    /* Некоторые действия с libevent могут быть здесь */
    if (eio_nreqs()) {
        eio_poll();
    }
    /* .. и здесь */
}

function my_nop_cb($d, $r) {
    var_dump($r); var_dump($d);
}

$base = event_base_new();
$event = event_new();

$fd = eio_get_event_stream();
var_dump($fd);

eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "nop data");
eio_mkdir("/tmp/abc-eio-temp", 0750, EIO_PRI_DEFAULT, "my_nop_cb", "nop data");
/* Прочие eio_* запросы  ... */

// Установка флагов события
event_set($event, $fd, EV_READ /*| EV_PERSIST*/, "my_eio_poll", array($event, $base));

// Установка основы события
event_base_set($event, $base);

// Включение события
event_add($event);

// Запуск цикла обработки
event_base_loop($base);

/* То же самое доступно через интерфейс буфера libevent */
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)
int(0)
string(8) "nop data"
int(0)
string(10) "mkdir data"

Пример #6 Использование eio с модулем event

<?php
$base = new EventBase();

// Получаем поток опроса eio.
// Обратите внимание, что эта переменная должна быть жива все время
// пока запущен цикл событий
$eio_stream = eio_get_event_stream();

// Связываем поток опроса eio polling с циклом событий.
$poll_event = new Event($base, $eio_stream, Event::READ, function () {
  if (eio_nreqs()) {
    eio_poll();
  }
});
$poll_event->add();

// Добавляем задачу eio
eio_nop(EIO_PRI_DEFAULT, function () {
  echo "eio_nop\n";
});

// Добавляем события
$timer = Event::timer($base, function () {
  echo "прошло 2 секунды\n";
});
$timer->add(2);

// Отправляем события
$base->dispatch();
?>

Результатом выполнения данного примера будет что-то подобное:

eio_nop
прошло 2 секунды


Eio Функции

Содержание

  • eio_busy — Искусственно увеличивает нагрузку. Может быть полезно при тестировании, изучении производительности
  • eio_cancel — Отменяет запрос
  • eio_chmod — Изменяет права доступа к файлу/директории
  • eio_chown — Изменяет права доступа к файлу/директории
  • eio_close — Закрыть файл
  • eio_custom — Выполняет пользовательский запрос как любой другой eio_* вызов
  • eio_dup2 — Создает дубликат дескриптора файла
  • eio_event_loop — Взаимодействует с libeio до тех пор, пока все запросы не будут выполнены
  • eio_fallocate — Позволяет напрямую управлять размером используемого дискового пространства для файла
  • eio_fchmod — Изменяет права доступа к файлу
  • eio_fchown — Изменяет владельца файла
  • eio_fdatasync — Синхронизирует текущее состояние файла с физическим устройством
  • eio_fstat — Возвращает статус файла
  • eio_fstatvfs — Возвращает статистику файловой системы
  • eio_fsync — Синхронизирует текущее состояние файла с физическим устройством
  • eio_ftruncate — Урезает размер файла
  • eio_futime — Изменяет дату и время последней модификации и доступа к файлу
  • eio_get_event_stream — Возвращает поток, отражающий переменную, используемую при взаимодействии с libeio
  • eio_get_last_error — Возвращает последнюю ошибку, связанную с указателем на ресурс
  • eio_grp_add — Добавляет запрос в группу запросов
  • eio_grp_cancel — Отменяет группу запросов
  • eio_grp_limit — Устанавливает предельное количество запросов в группе
  • eio_grp — Создает группу запросов
  • eio_init — (Ре-)инициализирует Eio
  • eio_link — Создает жесткую ссылку на файл
  • eio_lstat — Возвращает статус файла
  • eio_mkdir — Создание директории
  • eio_mknod — Создает специальный или обычный файл
  • eio_nop — Проход по циклу запроса, не совершая никаких операций
  • eio_npending — Возвращает число завершенных, но необработанных процессов
  • eio_nready — Возвращает число еще не обработанных запросов
  • eio_nreqs — Возвращает число запросов, которые предстоит выполнить
  • eio_nthreads — Возвращает количество используемых в данный момент потоков
  • eio_open — Открывает файл
  • eio_poll — Может быть вызвана когда имеются запросы, ожидающие выполнения
  • eio_read — Читает данные из файла, начиная с заданного смещения
  • eio_readahead — Помещает данные из файла в кэш страницы
  • eio_readdir — Читает содержимое директории
  • eio_readlink — Читает значение символической ссылки
  • eio_realpath — Получает абсолютный приведенный к каноническому виду путь
  • eio_rename — Изменяет имя или перемещает файл
  • eio_rmdir — Удаляет директорию
  • eio_seek — Перемещает файловый указатель файла fd на число байт offset в соответствии с директивой whence
  • eio_sendfile — Перемещает данные между файлами
  • eio_set_max_idle — Устанавливает максимальное количество ожидающих потоков
  • eio_set_max_parallel — Устанавливает максимальное количество параллельных потоков
  • eio_set_max_poll_reqs — Устанавливает максимальное количество обрабатываемых запросов
  • eio_set_max_poll_time — Устанавливает максимальное время выполнения
  • eio_set_min_parallel — Устанавливает минимальное количество параллельных потоков
  • eio_stat — Возвращает статус файла
  • eio_statvfs — Возвращает статистику файловой системы
  • eio_symlink — Создает символическую ссылку
  • eio_sync_file_range — Синхронизирует сегмент файла с данными файла на внешнем хранилище
  • eio_sync — Записывает кеш из буфера на диск
  • eio_syncfs — Вызывает системный syncfs в Linux, если это доступно
  • eio_truncate — Урезает размер файла
  • eio_unlink — Удаляет файл или одну из жестких ссылок на него
  • eio_utime — Изменяет дату и время последней модификации и доступа к файлу
  • eio_write — Запись в файл


Искусственно увеличивает нагрузку. Может быть полезно при тестировании, изучении производительности

  • « Eio Функции
  • eio_cancel »
  • PHP Manual
  • Eio Функции
  • Искусственно увеличивает нагрузку. Может быть полезно при тестировании, изучении производительности

eio_busy

(PECL eio >= 0.0.1dev)

eio_busy — Искусственно увеличивает нагрузку. Может быть полезно при тестировании, изучении производительности

Описание

eio_busy ( int $delay [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

Функция eio_busy() искусственно увеличивает нагрузку, добавляя delay секунд к времени исполнения. Полезно при отладке и тестировании производительности.

Список параметров

delay

Задержка в секундах

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Callback-функция, исполняемая когда все запросы группы будут выполнены.

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_busy() возвращает запрос типа resource в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • eio_nop() - Проход по циклу запроса, не совершая никаких операций


Отменяет запрос

  • « eio_busy
  • eio_chmod »
  • PHP Manual
  • Eio Функции
  • Отменяет запрос

eio_cancel

(PECL eio >= 0.0.1dev)

eio_cancel — Отменяет запрос

Описание

eio_cancel ( resource $req ) : void

eio_cancel() отменяет запрос, определенный в req

Список параметров

req

Ресурс запроса

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 eio_cancel() example

<?php
 /* Вызывается при завершении eio_nop() */
 function my_nop_cb($data, $result) {
  echo "my_nop ", $data, "\n";
 }

// Этот вызов eio_nop() будет отменен
$req = eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "1");
var_dump($req);
eio_cancel($req);

// Этот eio_nop() будет выполнен
eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "2");

// Выполнение запросов
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

resource(4) of type (EIO Request Descriptor)
my_nop 2

Смотрите также

  • eio_grp_cancel() - Отменяет группу запросов


Изменяет права доступа к файлу/директории

  • « eio_cancel
  • eio_chown »
  • PHP Manual
  • Eio Функции
  • Изменяет права доступа к файлу/директории

eio_chmod

(PECL eio >= 0.0.1dev)

eio_chmod — Изменяет права доступа к файлу/директории

Описание

eio_chmod ( string $path , int $mode [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_chmod() изменяет права доступа к файлу/директории. Новые права доступа указываются в параметре mode.

Список параметров

path

Путь к файлу или директории

Внимание

Избегайте относительных путей

mode

Новые права доступа. Например, 0644.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_chmod() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • eio_chown() - Изменяет права доступа к файлу/директории


Изменяет права доступа к файлу/директории

  • « eio_chmod
  • eio_close »
  • PHP Manual
  • Eio Функции
  • Изменяет права доступа к файлу/директории

eio_chown

(PECL eio >= 0.0.1dev)

eio_chown — Изменяет права доступа к файлу/директории

Описание

eio_chown ( string $path , int $uid [, int $gid = -1 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]]] ) : resource

Изменяет права доступа к файлу/директории.

Список параметров

path

Путь к файлу или директории.

Внимание

Избегайте относительных путей

uid

Код пользователя. Игнорируется при значении, равном -1.

gid

Код группы. Игнорируется при значении, равном -1.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_chown() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • eio_chmod() - Изменяет права доступа к файлу/директории


Закрыть файл

  • « eio_chown
  • eio_custom »
  • PHP Manual
  • Eio Функции
  • Закрыть файл

eio_close

(PECL eio >= 0.0.1dev)

eio_close — Закрыть файл

Описание

eio_close ( mixed $fd [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_close() закрывает файл, указанный в fd.

Список параметров

fd

Поток, указатель на сокет (Socket resource), или числовой дескриптор файла

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_close() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • eio_open() - Открывает файл


Выполняет пользовательский запрос как любой другой eio_* вызов

  • « eio_close
  • eio_dup2 »
  • PHP Manual
  • Eio Функции
  • Выполняет пользовательский запрос как любой другой eio_* вызов

eio_custom

(PECL eio >= 0.0.1dev)

eio_custom — Выполняет пользовательский запрос как любой другой eio_* вызов

Описание

eio_custom ( callable $execute , int $pri , callable $callback [, mixed $data = NULL ] ) : resource

eio_custom() выполняет пользовательскую функцию, определенную в параметре execute как любой другой вызов запросов eio_*.

Список параметров

execute

Указывается функция, соответствующая нижеприведенному прототипу:

      mixed execute(mixed data);
Параметр callback содержит callback-функцию, исполняющуюся по завершении выполнения запроса. Функция должна соответствовать прототипу:
      void callback(mixed data, mixed result);
data - данные, передаваемые в функцию, указанную в execute через аргумент data, без каких-либо изменений. result - значение, возвращаемое функцией в параметре execute

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_custom() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования eio_custom()

<?php
/* Пользовательская callback-функция */
function my_custom_callback($data, $result) {
    var_dump($data);
    var_dump(count($result));
    var_dump($result['data_modified']);
    var_dump($result['result']);
}

/* Пользовательский запрос */
function my_custom($data) {
    var_dump($data);

    $result  = array(
        'result'        => 1001,
        'data_modified' => "my custom data",
    );

    return $result;
}

$data = "my_custom_data";
$req = eio_custom("my_custom", EIO_PRI_DEFAULT, "my_custom_callback", $data);
var_dump($req);
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

resource(4) of type (EIO Request Descriptor)
string(14) "my_custom_data"
string(14) "my_custom_data"
int(2)
string(14) "my custom data"
int(1001)


Создает дубликат дескриптора файла

  • « eio_custom
  • eio_event_loop »
  • PHP Manual
  • Eio Функции
  • Создает дубликат дескриптора файла

eio_dup2

(PECL eio >= 0.0.1dev)

eio_dup2 — Создает дубликат дескриптора файла

Описание

eio_dup2 ( mixed $fd , mixed $fd2 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_dup2() создает дубликат дескриптора файла.

Список параметров

fd

Исходный поток, указатель на сокет (Socket resource), или нумерованный дескриптор файла

fd2

Целевой поток, указатель на сокет (Socket resource), или нумерованный дескриптор файла

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_dup2() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.


Взаимодействует с libeio до тех пор, пока все запросы не будут выполнены

  • « eio_dup2
  • eio_fallocate »
  • PHP Manual
  • Eio Функции
  • Взаимодействует с libeio до тех пор, пока все запросы не будут выполнены

eio_event_loop

(PECL eio >= 0.0.1dev)

eio_event_loop — Взаимодействует с libeio до тех пор, пока все запросы не будут выполнены

Описание

eio_event_loop ( void ) : bool

eio_event_loop() взаимодействует с libeio до тех пор, пока все запросы не будут выполнены.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

eio_event_loop() возвращает TRUE в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования eio_event_loop()

<?php
$temp_filename = "eio-temp-file.tmp";
touch($temp_filename);

/* Вызывается после выполнения eio_chmod() */
function my_chmod_callback($data, $result) {
    global $temp_filename;

    if ($result == 0 && !is_readable($temp_filename) && is_writable($temp_filename)) {
        echo "eio_chmod_ok";
    }

    @unlink($temp_filename);
}

eio_chmod($temp_filename, 0200, EIO_PRI_DEFAULT, "my_chmod_callback");
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

eio_chmod_ok

Смотрите также

  • eio_poll() - Может быть вызвана когда имеются запросы, ожидающие выполнения


Позволяет напрямую управлять размером используемого дискового пространства для файла

  • « eio_event_loop
  • eio_fchmod »
  • PHP Manual
  • Eio Функции
  • Позволяет напрямую управлять размером используемого дискового пространства для файла

eio_fallocate

(PECL eio >= 0.0.1dev)

eio_fallocate — Позволяет напрямую управлять размером используемого дискового пространства для файла

Описание

eio_fallocate ( mixed $fd , int $mode , int $offset , int $length [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_fallocate() позволяет напрямую управлять размером используемого дискового пространства для файла. Дескриптор файла указывается в параметре fd, размер определяется диапазоном в байтах, начиная от смещения offset и до length.

Замечание: Файл должен быть открытым для записи

EIO_O_CREAT OR (одна из констант EIO_O_WRONLY, EIO_O_RDWR

Список параметров

fd

Поток, указатель на сокет, или числовой дескриптор файла, например возвращенный eio_open().

mode

Доступен только один флаг: EIO_FALLOC_FL_KEEP_SIZE (то же самое, что FALLOC_FL_KEEP_SIZE в POSIX).

offset

Определяет смещение диапазона в байтах.

length

Определяет размер диапазона.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_fallocate() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.


Изменяет права доступа к файлу

  • « eio_fallocate
  • eio_fchown »
  • PHP Manual
  • Eio Функции
  • Изменяет права доступа к файлу

eio_fchmod

(PECL eio >= 0.0.1dev)

eio_fchmod — Изменяет права доступа к файлу

Описание

eio_fchmod ( mixed $fd , int $mode [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_fchmod() изменяет права доступа к файлу, дескриптор которого указан в fd.

Список параметров

fd

Поток, указатель на сокет, или числовой дескриптор файла, например, возвращенный eio_open().

mode

Новые права доступа. Например, 0644.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_fchmod() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • eio_fchown() - Изменяет владельца файла


Изменяет владельца файла

  • « eio_fchmod
  • eio_fdatasync »
  • PHP Manual
  • Eio Функции
  • Изменяет владельца файла

eio_fchown

(PECL eio >= 0.0.1dev)

eio_fchown — Изменяет владельца файла

Описание

eio_fchown ( mixed $fd , int $uid [, int $gid = -1 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]]] ) : resource

eio_fchown() изменяет владельца файла, дескриптор которого указан в fd.

Список параметров

fd

Поток, указатель на сокет, или числовой дескриптор файла.

uid

Код пользователя. Игнорируется при значении, равном -1.

gid

Код группы. Игнорируется при значении, равном -1.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Смотрите также

  • eio_fchmod() - Изменяет права доступа к файлу


Синхронизирует текущее состояние файла с физическим устройством

  • « eio_fchown
  • eio_fstat »
  • PHP Manual
  • Eio Функции
  • Синхронизирует текущее состояние файла с физическим устройством

eio_fdatasync

(PECL eio >= 0.0.1dev)

eio_fdatasync — Синхронизирует текущее состояние файла с физическим устройством

Описание

eio_fdatasync ( mixed $fd [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_fdatasync() синхронизирует текущее состояние файла с физическим устройством.

Список параметров

fd

Поток, указатель на сокет, или числовой дескриптор файла, например, возвращенный eio_open().

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_fdatasync() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.


Возвращает статус файла

  • « eio_fdatasync
  • eio_fstatvfs »
  • PHP Manual
  • Eio Функции
  • Возвращает статус файла

eio_fstat

(PECL eio >= 0.0.1dev)

eio_fstat — Возвращает статус файла

Описание

eio_fstat ( mixed $fd , int $pri , callable $callback [, mixed $data ] ) : resource

eio_fstat() возвращает информацию о состоянии файла в result аргументе callback

Список параметров

fd

Поток, указатель на сокет, или числовой дескриптор файла.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_busy() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования eio_lstat()

<?php
// Создание временного файла
$tmp_filename = dirname(__FILE__) ."/eio-file.tmp";
touch($tmp_filename);

/* Вызывается после завершения eio_fstat() */
function my_res_cb($data, $result) {
 // Выводит массив с информацией о состоянии файла
 var_dump($result);

 if ($data['fd']) {
  // Закрывает временный файл
  eio_close($data['fd']);
  eio_event_loop();
 }
 // Удаляет временный файл
 @unlink($data['file']);
}

/* Вызывается после завершения eio_open() */
function my_open_cb($data, $result) {
 // Подготовка данных для callback
 $d = array(
  'fd'  => $result,
  'file'=> $data
 );
 // Получение информации о файле
 eio_fstat($result, EIO_PRI_DEFAULT, "my_res_cb", $d);
 // Выполнение запросов
 eio_event_loop();
}

// Открытие временного файла
eio_open($tmp_filename, EIO_O_RDONLY, NULL, EIO_PRI_DEFAULT,
  "my_open_cb", $tmp_filename);
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

array(12) {
 ["st_dev"]=>
  int(2050)
  ["st_ino"]=>
  int(2489159)
  ["st_mode"]=>
  int(33188)
  ["st_nlink"]=>
  int(1)
  ["st_uid"]=>
  int(1000)
  ["st_gid"]=>
  int(100)
  ["st_rdev"]=>
  int(0)
  ["st_blksize"]=>
  int(4096)
  ["st_blocks"]=>
  int(0)
  ["st_atime"]=>
  int(1318239506)
  ["st_mtime"]=>
  int(1318239506)
  ["st_ctime"]=>
  int(1318239506)
}

Смотрите также

  • eio_lstat() - Возвращает статус файла
  • eio_stat() - Возвращает статус файла


Возвращает статистику файловой системы

  • « eio_fstat
  • eio_fsync »
  • PHP Manual
  • Eio Функции
  • Возвращает статистику файловой системы

eio_fstatvfs

(PECL eio >= 0.0.1dev)

eio_fstatvfs — Возвращает статистику файловой системы

Описание

eio_fstatvfs ( mixed $fd , int $pri , callable $callback [, mixed $data ] ) : resource

eio_fstatvfs() возвращает статистику файловой системы в result аргумент callback.

Список параметров

fd

Файловый дескриптор файла примонтированной файловой системы.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_fstatvfs() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • eio_statvfs() - Возвращает статистику файловой системы


Синхронизирует текущее состояние файла с физическим устройством

  • « eio_fstatvfs
  • eio_ftruncate »
  • PHP Manual
  • Eio Функции
  • Синхронизирует текущее состояние файла с физическим устройством

eio_fsync

(PECL eio >= 0.0.1dev)

eio_fsync — Синхронизирует текущее состояние файла с физическим устройством

Описание

eio_fsync ( mixed $fd [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

Синхронизирует текущее состояние файла с физическим устройством.

Список параметров

fd

Поток, указатель на сокет, или числовой дескриптор файла.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_fsync() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • eio_sync() - Записывает кеш из буфера на диск


Урезает размер файла

  • « eio_fsync
  • eio_futime »
  • PHP Manual
  • Eio Функции
  • Урезает размер файла

eio_ftruncate

(PECL eio >= 0.0.1dev)

eio_ftruncate — Урезает размер файла

Описание

eio_ftruncate ( mixed $fd [, int $offset = 0 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]]] ) : resource

eio_ftruncate() урезает файл, дескриптор которого указан в параметре fd точно до length байт.

Список параметров

fd

Поток, указатель на сокет, или числовой дескриптор файла.

offset

Смещение от начала файла

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_ftruncate() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • eio_truncate() - Урезает размер файла


Изменяет дату и время последней модификации и доступа к файлу

  • « eio_ftruncate
  • eio_get_event_stream »
  • PHP Manual
  • Eio Функции
  • Изменяет дату и время последней модификации и доступа к файлу

eio_futime

(PECL eio >= 0.0.1dev)

eio_futime — Изменяет дату и время последней модификации и доступа к файлу

Описание

eio_futime ( mixed $fd , float $atime , float $mtime [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_futime() изменяет дату и время последней модификации и доступа к файлу.

Список параметров

fd

Поток, указатель на сокет, или числовой дескриптор файла, возвращенный, к примеру, eio_open()

atime

Время последнего доступа

mtime

Время последнего изменения

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_futime() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • eio_utime() - Изменяет дату и время последней модификации и доступа к файлу


Возвращает поток, отражающий переменную, используемую при взаимодействии с libeio

  • « eio_futime
  • eio_get_last_error »
  • PHP Manual
  • Eio Функции
  • Возвращает поток, отражающий переменную, используемую при взаимодействии с libeio

eio_get_event_stream

(PECL eio >= 0.3.1b)

eio_get_event_stream — Возвращает поток, отражающий переменную, используемую при взаимодействии с libeio

Описание

eio_get_event_stream ( void ) : mixed

eio_get_event_stream() получает поток, отражающий переменную, используемую при взаимодействии с libeio. Может быть использовано для привязки некоторого цикла обработки, поставляемого другим модулем PECL, например, libevent.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

eio_get_event_stream() возвращает поток в случае успешного выполнения или NULL в случае возникновения ошибки.

Примеры

Пример #1 Использование eio совместно с libevent

<?php
function my_eio_poll($fd, $events, $arg) {
    /* Некоторые действия с libevent могут быть здесь */
    if (eio_nreqs()) {
        eio_poll();
    }
    /* .. и здесь */
}

function my_res_cb($d, $r) {
    var_dump($r); var_dump($d);
}

$base = event_base_new();
$event = event_new();

$fd = eio_get_event_stream();
var_dump($fd);

eio_nop(EIO_PRI_DEFAULT, "my_res_cb", "nop data");
eio_mkdir("/tmp/abc-eio-temp", 0750, EIO_PRI_DEFAULT, "my_res_cb", "mkdir data");
/* Прочие eio_* запросы  ... */

// Установка флагов события
event_set($event, $fd, EV_READ /*| EV_PERSIST*/, "my_eio_poll", array($event, $base));

// Установка основы события
event_base_set($event, $base);

// Включение события
event_add($event);

// Запуск цикла обработки
event_base_loop($base);

/* То же самое доступно через интерфейс буфера libevent */
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)
int(0)
string(8) "nop data"
int(0)
string(10) "mkdir data"


Возвращает последнюю ошибку, связанную с указателем на ресурс

  • « eio_get_event_stream
  • eio_grp_add »
  • PHP Manual
  • Eio Функции
  • Возвращает последнюю ошибку, связанную с указателем на ресурс

eio_get_last_error

(PECL eio >= 1.0.0)

eio_get_last_error — Возвращает последнюю ошибку, связанную с указателем на ресурс

Описание

eio_get_last_error ( resource $req ) : string

eio_get_last_error() возвращает последнюю ошибку, связанную с указателем на ресурс req.

Список параметров

req

Указатель на ресурс

Возвращаемые значения

eio_get_last_error() возвращает строку, содержащую последнюю ошибку, связанную с указателем на ресурс req.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Добавляет запрос в группу запросов

  • « eio_get_last_error
  • eio_grp_cancel »
  • PHP Manual
  • Eio Функции
  • Добавляет запрос в группу запросов

eio_grp_add

(PECL eio >= 0.0.1dev)

eio_grp_add — Добавляет запрос в группу запросов

Описание

eio_grp_add ( resource $grp , resource $req ) : void

eio_grp_add() добавляет запрос в группу запросов.

Список параметров

grp

Указатель на группу запросов, возвращённый eio_grp()

req

Указатель на ресурс

Возвращаемые значения

eio_grp_add() не возвращает ничего.

Примеры

Пример #1 Создание группы запросов

<?php
/*
 * Создание группы запросов для открытия, чтения и закрытия файла
 */

//Создание временного файла и запись в него нескольких байт
$temp_filename = dirname(__FILE__) ."/eio-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "some data");
fclose($fp);

/* Вызывается, когда группа запросов будет выполнена */
function my_grp_done($data, $result) {
 var_dump($result == 0);
 @unlink($data);
}

/* Вызывается после выполнения eio_open() */
function my_grp_file_opened_callback($data, $result) {
 global $grp;

 // $result должен содержать дескриптор файла
 var_dump($result > 0);

 // Создание запроса eio_read() и добавление в группу
 // Дескриптор файла передается в callback-функцию
 $req = eio_read($result, 4, 0,
   EIO_PRI_DEFAULT, "my_grp_file_read_callback", $result);
 eio_grp_add($grp, $req);
}

/* Вызывается после выполнения eio_read() */
function my_grp_file_read_callback($data, $result) {
 global $grp;

 // Чтение байтов
 var_dump($result);

 // Создание запроса eio_close() и добавление в группу
 // $data должна содержать дескриптор файла
 $req = eio_close($data);
 eio_grp_add($grp, $req);
}

// Создание группу запросов
$grp = eio_grp("my_grp_done", $temp_filename);
var_dump($grp);

// Создание запроса eio_open() и добавление в группу
$req = eio_open($temp_filename, EIO_O_RDWR | EIO_O_APPEND , NULL,
  EIO_PRI_DEFAULT, "my_grp_file_opened_callback", NULL);
eio_grp_add($grp, $req);

// Выполнение запросов
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

resource(6) of type (EIO Group Descriptor)
bool(true)
string(4) "some"
bool(true)

Смотрите также

  • eio_grp() - Создает группу запросов
  • eio_grp_cancel() - Отменяет группу запросов
  • eio_grp_limit() - Устанавливает предельное количество запросов в группе


Отменяет группу запросов

  • « eio_grp_add
  • eio_grp_limit »
  • PHP Manual
  • Eio Функции
  • Отменяет группу запросов

eio_grp_cancel

(PECL eio >= 0.0.1dev)

eio_grp_cancel — Отменяет группу запросов

Описание

eio_grp_cancel ( resource $grp ) : void

eio_grp_cancel() отменяет группу запросов, указатель на которую определен в grp.

Список параметров

grp

Указатель на группу запросов, возвращенный eio_grp().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • eio_grp() - Создает группу запросов
  • eio_grp_add() - Добавляет запрос в группу запросов


Устанавливает предельное количество запросов в группе

  • « eio_grp_cancel
  • eio_grp »
  • PHP Manual
  • Eio Функции
  • Устанавливает предельное количество запросов в группе

eio_grp_limit

(PECL eio >= 0.0.1dev)

eio_grp_limit — Устанавливает предельное количество запросов в группе

Описание

eio_grp_limit ( resource $grp , int $limit ) : void

Устанавливает предельное количество запросов в группе.

Список параметров

grp

Указатель на группу ресурсов

limit

Максимальное количество ресурсов в группе.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • eio_grp_add() - Добавляет запрос в группу запросов


Создает группу запросов

  • « eio_grp_limit
  • eio_init »
  • PHP Manual
  • Eio Функции
  • Создает группу запросов

eio_grp

(PECL eio >= 0.0.1dev)

eio_grp — Создает группу запросов

Описание

eio_grp ( callable $callback [, string $data = NULL ] ) : resource

eio_grp() создает группу запросов.

Список параметров

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_grp() возвращает указатель на запрос при успехе или FALSE при ошибке.

Примеры

Пример #1 Пример использования eio_grp()

<?php
$temp_filename = dirname(__FILE__) ."/eio-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "some data");
fclose($fp);
$my_file_fd = NULL;

/* Вызывается, когда группа запросов будет выполнена */
function my_grp_done($data, $result) {
 // Если файл существует, удаляем
 @unlink($data);
}

/* Вызывается когда файл открыт */
function my_grp_file_opened_callback($data, $result) {
 global $my_file_fd, $grp;

 $my_file_fd = $result;

 $req = eio_read($my_file_fd, 4, 0,
   EIO_PRI_DEFAULT, "my_grp_file_read_callback");
 eio_grp_add($grp, $req);
}

/* Вызывается, когда файл прочтен */
function my_grp_file_read_callback($data, $result) {
 global $my_file_fd, $grp;

 var_dump($result);

 // Создание запроса на закрытие файла
 $req = eio_close($my_file_fd);

 // Добавление запроса в группу
 eio_grp_add($grp, $req);
}

// Создание группы
$grp = eio_grp("my_grp_done", $temp_filename);

// Создание запроса
$req = eio_open($temp_filename, EIO_O_RDWR | EIO_O_APPEND , NULL,
  EIO_PRI_DEFAULT, "my_grp_file_opened_callback", NULL);

// Добавление запроса в группу
eio_grp_add($grp, $req);

// Выполнение запросов
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

string(4) "some"

Смотрите также

  • eio_grp_cancel() - Отменяет группу запросов
  • eio_grp_add() - Добавляет запрос в группу запросов


(Ре-)инициализирует Eio

  • « eio_grp
  • eio_link »
  • PHP Manual
  • Eio Функции
  • (Ре-)инициализирует Eio

eio_init

(PECL eio = 1.0.0)

eio_init — (Ре-)инициализирует Eio

Описание

eio_init ( void ) : void

eio_init() (ре-)инициализирует Eio. Резервируется память для внутренних структур libeio и Eio. Можно вызывать eio_init() перед использованием Eio-функций. В любом случае, инициализация будет выполнена при первом вызове Eio-функции.

Внимание

Эта возможность устарела и будет обязательно удалена в будущем. Начиная с Eio 1.1.0 eio_init() считается устаревшей. В Eio 1.0.0 потому что » ограничения libeio необходим вызов eio_init() в дочерних процессах или в других случаях. Необходимо избегать использование Eio в родительских процессах если оно используется в дочерних.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Создает жесткую ссылку на файл

  • « eio_init
  • eio_lstat »
  • PHP Manual
  • Eio Функции
  • Создает жесткую ссылку на файл

eio_link

(PECL eio >= 0.0.1dev)

eio_link — Создает жесткую ссылку на файл

Описание

eio_link ( string $path , string $new_path [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_link() создает жесткую ссылку new_path на файл, указанный в path.

Список параметров

path

Путь к файлу.

new_path

Имя жесткой ссылки.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

Примеры

Пример #1 Пример использования eio_link()

<?php
$filename = dirname(__FILE__)."/symlink.dat";
touch($filename);
$link = dirname(__FILE__)."/symlink.link";
$hardlink = dirname(__FILE__)."/hardlink.link";

function my_hardlink_cb($data, $result) {
    global $link, $filename;
    var_dump(file_exists($data) && !is_link($data));
    @unlink($data);

    eio_symlink($filename, $link, EIO_PRI_DEFAULT, "my_symlink_cb", $link);
}

function my_symlink_cb($data, $result) {
    global $link, $filename;
    var_dump(file_exists($data) && is_link($data));

    if (!eio_readlink($data, EIO_PRI_DEFAULT, "my_readlink_cb", NULL)) {
        @unlink($link);
        @unlink($filename);
    }
}

function my_readlink_cb($data, $result) {
    global $filename, $link;
    var_dump($result);

    @unlink($link);
    @unlink($filename);
}

eio_link($filename, $hardlink, EIO_PRI_DEFAULT, "my_hardlink_cb", $hardlink);
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
string(%d) "%ssymlink.dat"

Смотрите также

  • eio_symlink() - Создает символическую ссылку


Возвращает статус файла

  • « eio_link
  • eio_mkdir »
  • PHP Manual
  • Eio Функции
  • Возвращает статус файла

eio_lstat

(PECL eio >= 0.0.1dev)

eio_lstat — Возвращает статус файла

Описание

eio_lstat ( string $path , int $pri , callable $callback [, mixed $data = NULL ] ) : resource

eio_lstat() возвращает информацию о состоянии файла в result аргументе callback

Список параметров

path

Путь к файлу

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_lstat() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования eio_lstat()

<?php
$tmp_filename = dirname(__FILE__). "/eio-file.tmp";
touch($tmp_filename);

function my_res_cb($data, $result) {
    var_dump($data);
    var_dump($result);
}

function my_open_cb($data, $result) {
    eio_close($result);
    eio_event_loop();

    @unlink($data);
}

eio_lstat($tmp_filename, EIO_PRI_DEFAULT, "my_res_cb", "eio_lstat");
eio_open($tmp_filename, EIO_O_RDONLY, NULL,
 EIO_PRI_DEFAULT, "my_open_cb", $tmp_filename);
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

string(9) "eio_lstat"
array(12) {
 ["st_dev"]=>
  int(2050)
  ["st_ino"]=>
  int(2099197)
  ["st_mode"]=>
  int(33188)
  ["st_nlink"]=>
  int(1)
  ["st_uid"]=>
  int(1000)
  ["st_gid"]=>
  int(100)
  ["st_rdev"]=>
  int(0)
  ["st_blksize"]=>
  int(4096)
  ["st_blocks"]=>
  int(0)
  ["st_atime"]=>
  int(1318235777)
  ["st_mtime"]=>
  int(1318235777)
  ["st_ctime"]=>
  int(1318235777)
}

Смотрите также

  • eio_stat() - Возвращает статус файла
  • eio_fstat() - Возвращает статус файла


Создание директории

  • « eio_lstat
  • eio_mknod »
  • PHP Manual
  • Eio Функции
  • Создание директории

eio_mkdir

(PECL eio >= 0.0.1dev)

eio_mkdir — Создание директории

Описание

eio_mkdir ( string $path , int $mode [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_mkdir() создает директорию с заданным режимом доступа mode.

Список параметров

path

Путь к новой директории.

mode

Режим доступа, например, 0755

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Переменная, которую необходимо передать callback-функции callback.

Возвращаемые значения

В случае успешного выполнения операции eio_mkdir() вернет ресурс запроса, в случае возникновения ошибки вернет FALSE.

Примеры

Пример #1 Пример использования eio_mkdir()

<?php
$temp_dirname = "eio-temp-dir";

/* Вызывается, когда eio_mkdir() завершит работу */
function my_mkdir_callback($data, $result) {
 if ($result == 0 && is_dir($temp_dirname)
   && !is_readable($temp_dirname)
   && is_writable($temp_dirname)) {
  echo "eio_mkdir_ok";
 }

 // Удаляем директорию
    if (file_exists($data))
        rmdir($temp_dirname);
}

// Создаем директорию с режимом доступа 0300
eio_mkdir($temp_dirname, 0300, EIO_PRI_DEFAULT, "my_mkdir_callback", $temp_dirname);
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

eio_mkdir_ok

Смотрите также

  • eio_rmdir() - Удаляет директорию


Создает специальный или обычный файл

  • « eio_mkdir
  • eio_nop »
  • PHP Manual
  • Eio Функции
  • Создает специальный или обычный файл

eio_mknod

(PECL eio >= 0.0.1dev)

eio_mknod — Создает специальный или обычный файл

Описание

eio_mknod ( string $path , int $mode , int $dev [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_mknod() создает обычный или специальный (что чаще) файл.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

path

Путь к новому файлу.

mode

Задает разрешения для файла и его тип. Значением аргумента является комбинация (используя побитовое ИЛИ) одной или нескольких констант, отвечающих за тип файла, и числа, отвечающего за разрешения для файла (например, 0640). Константы типов файлов: EIO_S_IFREG(обычный файл), EIO_S_IFCHR(символьный файл), EIO_S_IFBLK(специальный блочный файл), EIO_S_IFIFO(FIFO - именованный пайп) и EIO_S_IFSOCK(UNIX сокет домена). Для задания разрешений необходимо использовать константы EIO_S_I*.

dev

При создании файла типа EIO_S_IFCHR или EIO_S_IFBLK, параметр dev задает верхнюю и нижнюю границы нумерации специальных файлов устройств. При создании файла других типов dev игнорируется. За дополнительными пояснениями обращайтесь к странице документации mknod(2).

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Данные, которые необходимо передать в callback-функцию.

Возвращаемые значения

eio_mknod() возвращает ресурс запроса в случае успешного выполнения операции, либо FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования eio_mknod()

<?php
// имя FIFO
$temp_filename = "/tmp/eio-temp-fifo";

/* будет вызываться по завершении работы функции eio_mknod() */
function my_mknod_callback($data, $result) {
    $s = stat($data);
    var_dump($s);

    if ($result == 0) {
        echo "eio_mknod_ok";
    }

    @unlink($data);
}

eio_mknod($temp_filename, EIO_S_IFIFO, 0,
    EIO_PRI_DEFAULT, "my_mknod_callback", $temp_filename);
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

array(26) {
  [0]=>
  int(17)
  [1]=>
  int(2337608)
  [2]=>
  int(4096)
  [3]=>
  int(1)
  [4]=>
  int(1000)
  [5]=>
  int(100)
  [6]=>
  int(0)
  [7]=>
  int(0)
  [8]=>
  int(1318241261)
  [9]=>
  int(1318241261)
  [10]=>
  int(1318241261)
  [11]=>
  int(4096)
  [12]=>
  int(0)
  ["dev"]=>
  int(17)
  ["ino"]=>
  int(2337608)
  ["mode"]=>
  int(4096)
  ["nlink"]=>
  int(1)
  ["uid"]=>
  int(1000)
  ["gid"]=>
  int(100)
  ["rdev"]=>
  int(0)
  ["size"]=>
  int(0)
  ["atime"]=>
  int(1318241261)
  ["mtime"]=>
  int(1318241261)
  ["ctime"]=>
  int(1318241261)
  ["blksize"]=>
  int(4096)
  ["blocks"]=>
  int(0)
}
eio_mknod_ok

Смотрите также

  • eio_open() - Открывает файл


Проход по циклу запроса, не совершая никаких операций

  • « eio_mknod
  • eio_npending »
  • PHP Manual
  • Eio Функции
  • Проход по циклу запроса, не совершая никаких операций

eio_nop

(PECL eio >= 0.0.1dev)

eio_nop — Проход по циклу запроса, не совершая никаких операций

Описание

eio_nop ([ int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_nop() проходит по циклу запроса, ничего при этом не делая. Может оказаться полезной при отладке.

Список параметров

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Данные, которые будут переданы в callback-функцию.

Возвращаемые значения

eio_nop() возвращает ресурс запроса в случае успешного выполнения, либо FALSE в случае возникновения ошибки.

Смотрите также

  • eio_busy() - Искусственно увеличивает нагрузку. Может быть полезно при тестировании, изучении производительности


Возвращает число завершенных, но необработанных процессов

  • « eio_nop
  • eio_nready »
  • PHP Manual
  • Eio Функции
  • Возвращает число завершенных, но необработанных процессов

eio_npending

(PECL eio >= 0.0.1dev)

eio_npending — Возвращает число завершенных, но необработанных процессов

Описание

eio_npending ( void ) : int

eio_npending() возвращает число завершенных, но необработанных процессов

Список параметров

У этой функции нет параметров.

Возвращаемые значения

eio_npending() возвращает число завершенных, но необработанных процессов.

Смотрите также

  • eio_nreqs() - Возвращает число запросов, которые предстоит выполнить
  • eio_nready() - Возвращает число еще не обработанных запросов
  • eio_nthreads() - Возвращает количество используемых в данный момент потоков


Возвращает число еще не обработанных запросов

  • « eio_npending
  • eio_nreqs »
  • PHP Manual
  • Eio Функции
  • Возвращает число еще не обработанных запросов

eio_nready

(PECL eio >= 0.0.1dev)

eio_nready — Возвращает число еще не обработанных запросов

Описание

eio_nready ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

eio_nready() возвращает число еще не обработанных запросов

Смотрите также

  • eio_nreqs() - Возвращает число запросов, которые предстоит выполнить
  • eio_nready()
  • eio_nthreads() - Возвращает количество используемых в данный момент потоков


Возвращает число запросов, которые предстоит выполнить

  • « eio_nready
  • eio_nthreads »
  • PHP Manual
  • Eio Функции
  • Возвращает число запросов, которые предстоит выполнить

eio_nreqs

(PECL eio >= 0.0.1dev)

eio_nreqs — Возвращает число запросов, которые предстоит выполнить

Описание

eio_nreqs ( void ) : int

eio_nreqs() может быть выполнена в произвольном цикле, вызванном eio_poll().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

eio_nreqs() возвращает число запросов, которые предстоит выполнить.

Примеры

Пример #1 Пример использования eio_nreqs()

<?php
function res_cb($data, $result) {
    var_dump($data);
    var_dump($result);
}

eio_nop(EIO_PRI_DEFAULT, "res_cb", "1");
eio_nop(EIO_PRI_DEFAULT, "res_cb", "2");
eio_nop(EIO_PRI_DEFAULT, "res_cb", "3");

while (eio_nreqs()) {
    eio_poll();
}
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "1"
int(0)
string(1) "3"
int(0)
string(1) "2"
int(0)

Смотрите также

  • eio_poll() - Может быть вызвана когда имеются запросы, ожидающие выполнения
  • eio_nready() - Возвращает число еще не обработанных запросов


Возвращает количество используемых в данный момент потоков

  • « eio_nreqs
  • eio_open »
  • PHP Manual
  • Eio Функции
  • Возвращает количество используемых в данный момент потоков

eio_nthreads

(PECL eio >= 0.0.1dev)

eio_nthreads — Возвращает количество используемых в данный момент потоков

Описание

eio_nthreads ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

eio_nthreads() возвращает количество используемых в данный момент потоков.

Смотрите также

  • eio_npending() - Возвращает число завершенных, но необработанных процессов
  • eio_nready() - Возвращает число еще не обработанных запросов
  • eio_nreqs() - Возвращает число запросов, которые предстоит выполнить
  • eio_set_max_idle() - Устанавливает максимальное количество ожидающих потоков
  • eio_set_max_parallel() - Устанавливает максимальное количество параллельных потоков
  • eio_set_min_parallel() - Устанавливает минимальное количество параллельных потоков


Открывает файл

  • « eio_nthreads
  • eio_poll »
  • PHP Manual
  • Eio Функции
  • Открывает файл

eio_open

(PECL eio >= 0.0.1dev)

eio_open — Открывает файл

Описание

eio_open ( string $path , int $flags , int $mode , int $pri , callable $callback [, mixed $data = NULL ] ) : resource

eio_open() открывает файл по заданному пути path в режиме доступа mode.

Список параметров

path

Путь к открываемому файлу.

Внимание

В некоторых SAPI (как, например, PHP-FPM) необходимо указывать полный путь. В противном случае произойдет отказ в работе функции.

flags

Комбинация из одной или нескольких констант EIO_O_*. Смысл констант EIO_O_* тот же, что и у соответствующих им констант O_*, определенных в заголовочном файле С fnctl.h. По умолчанию принимается константа EIO_O_RDWR.

mode

Комбинация из одной или нескольких констант EIO_S_I* (через побитовое ИЛИ). Смысл констант тот же, что и у соответствующих им констант S_I*, определенных в заголовочном файле С » sys/stat.h. Параметр обязателен, если создается новый файл. В противном случае, параметр игнорируется.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Данные, которые будут передаваться в callback-функцию.

Возвращаемые значения

eio_open() возвращает дескриптор файла через аргумент result callback-функции callback. В случае возникновения ошибки result будет равен -1.

Примеры

Пример #1 Пример использования eio_open()

<?php
$temp_filename = "eio-temp-file.tmp";

/* Будет вызываться после завершения работы eio_close() */
function my_close_cb($data, $result) {
 // Ноль указывает на успех операции
    var_dump($result == 0);
 @unlink($data);
}

/* Будет вызываться после завершения работы eio_open() */
function my_file_opened_callback($data, $result) {
 // $result должен содержать дескриптор файла
    var_dump($result > 0);

    if ($result > 0) {
  // закрываем файл
        eio_close($result, EIO_PRI_DEFAULT, "my_close_cb", $data);
        eio_event_loop();
    }
}

// создаем файл для чтения и записи
// запрещаем группе и другим пользователям делать что-либо с файлом
eio_open($temp_filename, EIO_O_CREAT | EIO_O_RDWR, EIO_S_IRUSR | EIO_S_IWUSR,
  EIO_PRI_DEFAULT, "my_file_opened_callback", $temp_filename);
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)

Смотрите также

  • eio_mknod() - Создает специальный или обычный файл


Может быть вызвана когда имеются запросы, ожидающие выполнения

  • « eio_open
  • eio_read »
  • PHP Manual
  • Eio Функции
  • Может быть вызвана когда имеются запросы, ожидающие выполнения

eio_poll

(PECL eio >= 0.0.1dev)

eio_poll — Может быть вызвана когда имеются запросы, ожидающие выполнения

Описание

eio_poll ( void ) : int

eio_poll() может быть использована для реализации особых циклов обработки запросов. При этом eio_nreqs() может быть использована для нахождения невыполненных запросов.

Замечание:

Применяется только для пользовательской реализации цикла обработки запросов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Если любой вызов запроса возвращает ненулевое значение, возвращается это значение. Иначе возвращает 0.

Примеры

Пример #1 Пример использования eio_poll()

<?php
function res_cb($data, $result) {
    var_dump($data);
    var_dump($result);
}

eio_nop(EIO_PRI_DEFAULT, "res_cb", "1");
eio_nop(EIO_PRI_DEFAULT, "res_cb", "2");
eio_nop(EIO_PRI_DEFAULT, "res_cb", "3");

while (eio_nreqs()) {
    // Некоторый специфичный IPC или что-то еще
    eio_poll();
}
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "1"
int(0)
string(1) "3"
int(0)
string(1) "2"
int(0)

Смотрите также

  • eio_nreqs() - Возвращает число запросов, которые предстоит выполнить


Читает данные из файла, начиная с заданного смещения

  • « eio_poll
  • eio_readahead »
  • PHP Manual
  • Eio Функции
  • Читает данные из файла, начиная с заданного смещения

eio_read

(PECL eio >= 0.0.1dev)

eio_read — Читает данные из файла, начиная с заданного смещения

Описание

eio_read ( mixed $fd , int $length , int $offset , int $pri , callable $callback [, mixed $data = NULL ] ) : resource

eio_read() считывает length байт из файла с описателем fd, начиная с байта offset. Прочитанные данные передаются через параметр result в функцию callback.

Список параметров

fd

Поток, ресурс сокета или числовой файловый описатель.

length

Максимальное считываемое число байт.

offset

Смещение в файле.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Данные, которые необходимо передать в функцию callback.

Возвращаемые значения

eio_read() передает считанные данные через параметр result в функцию callback.

Примеры

Пример #1 Пример использования eio_read()

<?php
// Открываем временный файл и пишем в него какие-либо данные
$temp_filename = "eio-temp-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "1234567890");
fclose($fp);

/* Вызывается, когда eio_read() завершает работу */
function my_read_cb($data, $result) {
    global $temp_filename;

 // Выводим прочитанные данные
    var_dump($result);

 // закрываем файл
    eio_close($data);
    eio_event_loop();

 // Удаляем временный файл
    @unlink($temp_filename);
}

/* Вызывается, когда eio_open() завершает работу */
function my_file_opened_callback($data, $result) {
 // $result должен содержать файловый описатель
    if ($result > 0) {
  // Прочитаем 5 байт, начиная с третьего
        eio_read($result, 5, 2, EIO_PRI_DEFAULT, "my_read_cb", $result);
        eio_event_loop();
    } else {
  // eio_open() завершила работу отказом
        unlink($data);
    }
}

// открываем файл для чтения и записи
eio_open($temp_filename, EIO_O_RDWR, NULL,
    EIO_PRI_DEFAULT, "my_file_opened_callback", $temp_filename);
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "34567"

Смотрите также

  • eio_open() - Открывает файл
  • eio_write() - Запись в файл
  • eio_close() - Закрыть файл
  • eio_event_loop() - Взаимодействует с libeio до тех пор, пока все запросы не будут выполнены


Помещает данные из файла в кэш страницы

  • « eio_read
  • eio_readdir »
  • PHP Manual
  • Eio Функции
  • Помещает данные из файла в кэш страницы

eio_readahead

(PECL eio >= 0.0.1dev)

eio_readahead — Помещает данные из файла в кэш страницы

Описание

eio_readahead ( mixed $fd , int $offset , int $length [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_readahead() заполняет кэш страницы данными из файла. Таким образом, дальнейшие обращения к этому файлу не будут влиять на работу дисковой подсистемы. Более детальную информацию можно получить на странице руководства READAHEAD(2).

Список параметров

fd

Поток, ресурс сокета или числовой файловый дескриптор.

offset

Позиция в файле, с которой будут читаться данные.

length

Количество считываемых байт.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Данные, которые необходимо передать функции callback.

Возвращаемые значения

eio_readahead() возвращает ресурс запроса в случае успешного выполнения либо FALSE в случае возникновения ошибки.


Читает содержимое директории

  • « eio_readahead
  • eio_readlink »
  • PHP Manual
  • Eio Функции
  • Читает содержимое директории

eio_readdir

(PECL eio >= 0.0.1dev)

eio_readdir — Читает содержимое директории

Описание

eio_readdir ( string $path , int $flags , int $pri , callable $callback [, string $data = NULL ] ) : resource

Читает содержимое директории (посредством системных вызовов opendir, readdir и closedir) и либо возвращает имена файлов, либо передает массив в качестве аргумента result в функцию callback. Поведение метода зависит от значения параметра flags.

Список параметров

path

Путь к директории.

flags

Комбинация констант EIO_READDIR_*.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Данные, которые необходимо передать функции callback.

Возвращаемые значения

eio_readdir() возвращает ресурс запроса в случае успешного выполнения или FALSE в случае возникновения ошибки. Также может задавать значение аргумента result функции callback в зависимости от значения параметра flags:

EIO_READDIR_DENTS (integer)
Флаг eio_readdir(). Если задан, в качестве аргумента callback-функции будет передаваться массив со следующими ключами: 'names' - массив имен директории 'dents' - массив структур типа struct eio_dirent, каждая из которых представляется массивом с ключами: 'name' - имя директории; 'type' - одна из констант EIO_DT_*; 'inode' - номер узла inode, если доступен, либо пустое значение;
EIO_READDIR_DIRS_FIRST (integer)
Если этот флаг задан, первыми будут возвращаться имена директорий, затем имена файлов. Порядок следования имен в каждой группе будет оптимальным для применения фукнции stat.
EIO_READDIR_STAT_ORDER (integer)
Если этот флаг задан, имена файлов и директорий будут возвращаеться в порядке, удобном для сбора статистики (stat) каждого из объектов. Если полученный список имен предполагается передавать в функцию stat(), порядок следования имен обеспечит наиболее быструю работу фукнции.
EIO_READDIR_FOUND_UNKNOWN (integer)

Типы узлов:

EIO_DT_UNKNOWN (integer)
Неизвестный тип узла (очень часто). Необходима обработка функцией stat().
EIO_DT_FIFO (integer)
Тип узла - FIFO
EIO_DT_CHR (integer)
Тип узла
EIO_DT_MPC (integer)
Тип узла - составное символьное устройство (v7+coherent)
EIO_DT_DIR (integer)
Тип узла - директория
EIO_DT_NAM (integer)
Тип узла - файл со специальным Xenix наименованием
EIO_DT_BLK (integer)
Тип узла
EIO_DT_MPB (integer)
Составное блочное устройство (v7+coherent)
EIO_DT_REG (integer)
Тип узла
EIO_DT_NWK (integer)
EIO_DT_CMP (integer)
Специальный тип узла для сетей HP-UX
EIO_DT_LNK (integer)
Тип узла - ссылка
EIO_DT_SOCK (integer)
Тип узла - сокет
EIO_DT_DOOR (integer)
Тип узла - Solaris door
EIO_DT_WHT (integer)
Тип узла
EIO_DT_MAX (integer)
Максимальное значение типа узла

Примеры

Пример #1 Пример использования eio_readdir()

<?php
/* Вызывается, когда отработает eio_readdir() */
function my_readdir_callback($data, $result) {
    echo "Вызвана функция ", __FUNCTION__, "\n";
    echo "данные: "; var_dump($data);
    echo "результат: "; var_dump($result);
    echo "\n";
}

eio_readdir("/var/spool/news", EIO_READDIR_STAT_ORDER | EIO_READDIR_DIRS_FIRST,
  EIO_PRI_DEFAULT, "my_readdir_callback");
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

Вызвана функция my_readdir_callback
данные: NULL
результат: array(2) {
 ["names"]=>
  array(7) {
   [0]=>
    string(7) "archive"
    [1]=>
    string(8) "articles"
    [2]=>
    string(8) "incoming"
    [3]=>
    string(7) "innfeed"
    [4]=>
    string(8) "outgoing"
    [5]=>
    string(8) "overview"
    [6]=>
    string(3) "tmp"
  }
 ["dents"]=>
  array(7) {
   [0]=>
    array(3)
    {
     ["name"]=>
      string(7)
      "archive"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393265)
    }
   [1]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "articles"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393266)
    }
   [2]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "incoming"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393267)
    }
   [3]=>
    array(3)
    {
     ["name"]=>
      string(7)
      "innfeed"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393269)
    }
   [4]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "outgoing"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393270)
    }
   [5]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "overview"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393271)
    }
   [6]=>
    array(3)
    {
     ["name"]=>
      string(3)
      "tmp"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393272)
    }
  }
}


Читает значение символической ссылки

  • « eio_readdir
  • eio_realpath »
  • PHP Manual
  • Eio Функции
  • Читает значение символической ссылки

eio_readlink

(PECL eio >= 0.0.1dev)

eio_readlink — Читает значение символической ссылки

Описание

eio_readlink ( string $path , int $pri , callable $callback [, string $data = NULL ] ) : resource

Список параметров

path

Путь к самой ссылке

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Данные, которые необходимо передать в функцию callback.

Возвращаемые значения

eio_readlink() возвращает ресурс запроса в случае успешного выполнения либо FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования eio_readlink()

<?php
$filename = dirname(__FILE__)."/symlink.dat";
touch($filename);
$link = dirname(__FILE__)."/symlink.link";
$hardlink = dirname(__FILE__)."/hardlink.link";

function my_hardlink_cb($data, $result) {
    global $link, $filename;
    var_dump(file_exists($data) && !is_link($data));
    @unlink($data);

    eio_symlink($filename, $link, EIO_PRI_DEFAULT, "my_symlink_cb", $link);
}

function my_symlink_cb($data, $result) {
    global $link, $filename;
    var_dump(file_exists($data) && is_link($data));

    if (!eio_readlink($data, EIO_PRI_DEFAULT, "my_readlink_cb", NULL)) {
        @unlink($link);
        @unlink($filename);
    }
}

function my_readlink_cb($data, $result) {
    global $filename, $link;
    var_dump($result);

    @unlink($link);
    @unlink($filename);
}

eio_link($filename, $hardlink, EIO_PRI_DEFAULT, "my_hardlink_cb", $hardlink);
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
string(16) "/tmp/symlink.dat"

Смотрите также

  • eio_symlink() - Создает символическую ссылку


Получает абсолютный приведенный к каноническому виду путь

  • « eio_readlink
  • eio_rename »
  • PHP Manual
  • Eio Функции
  • Получает абсолютный приведенный к каноническому виду путь

eio_realpath

(PECL eio >= 0.0.1dev)

eio_realpath — Получает абсолютный приведенный к каноническому виду путь

Описание

eio_realpath ( string $path , int $pri , callable $callback [, string $data = NULL ] ) : resource

eio_realpath() возвращает абсолютный путь через аргумент result функции callback.

Список параметров

path

Краткий или относительный путь

pri

callback

data

Возвращаемые значения

Примеры

Пример #1 Пример использования eio_realpath()

<?php
var_dump(getcwd());

function my_realpath_allback($data, $result) {
    var_dump($result);
}

eio_realpath("../", EIO_PRI_DEFAULT, "my_realpath_allback");
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

string(12) "/home/ruslan"
string(5) "/home"


Изменяет имя или перемещает файл

  • « eio_realpath
  • eio_rmdir »
  • PHP Manual
  • Eio Функции
  • Изменяет имя или перемещает файл

eio_rename

(PECL eio >= 0.0.1dev)

eio_rename — Изменяет имя или перемещает файл

Описание

eio_rename ( string $path , string $new_path [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_rename() осуществляет перемещение или переименование файла.

Список параметров

path

Исходный путь к файлу

new_path

Конечный путь к файлу при перемещении

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Данные, которые необходимо передать функции callback.

Возвращаемые значения

eio_rename() возвращает ресурс запроса в случае успешного выполнения либо FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования eio_rename()

<?php
$filename = dirname(__FILE__)."/eio-temp-file.dat";
touch($filename);
$new_filename = dirname(__FILE__)."/eio-temp-file-new.dat";

function my_rename_cb($data, $result) {
    global $filename, $new_filename;

    if ($result == 0 && !file_exists($filename) && file_exists($new_filename)) {
        @unlink($new_filename);
        echo "eio_rename_ok";
    } else {
        @unlink($filename);
    }
}

eio_rename($filename, $new_filename, EIO_PRI_DEFAULT, "my_rename_cb", $filename);
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

eio_rename_ok


Удаляет директорию

  • « eio_rename
  • eio_seek »
  • PHP Manual
  • Eio Функции
  • Удаляет директорию

eio_rmdir

(PECL eio >= 0.0.1dev)

eio_rmdir — Удаляет директорию

Описание

eio_rmdir ( string $path [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_rmdir() удаляет директорию.

Список параметров

path

Путь к директории

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_rmdir() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования eio_rmdir()

<?php
$temp_dirname = "eio-temp-dir";
mkdir($temp_dirname);

function my_rmdir_callback($data, $result) {
    if ($result == 0 && !file_exists($data)) {
        echo "eio_rmdir_ok";
    } else if (file_exists($data)) {
        rmdir($data);
    }
}

eio_rmdir($temp_dirname, EIO_PRI_DEFAULT, "my_rmdir_callback", $temp_dirname);
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

eio_rmdir_ok

Смотрите также

  • eio_mkdir() - Создание директории


Перемещает файловый указатель файла fd на число байт offset в соответствии с директивой whence

  • « eio_rmdir
  • eio_sendfile »
  • PHP Manual
  • Eio Функции
  • Перемещает файловый указатель файла fd на число байт offset в соответствии с директивой whence

eio_seek

(PECL eio >= 0.5.0b)

eio_seek — Перемещает файловый указатель файла fd на число байт offset в соответствии с директивой whence

Описание

eio_seek ( mixed $fd , int $offset , int $whence [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_seek() изменяет смещение файлового указателя, связанного с потоком, ресурсом сокета или файловым дескриптором fd на значение offset. При этом текущая позиция файлового указателя будет вычисляться в соответствии со значением директивы whence следующим образом:

  • EIO_SEEK_SET - Установка текущей позиции на offset байт от начала файла.
  • EIO_SEEK_CUR - Смещение текущей позиции на offset байт вперед.
  • EIO_SEEK_END - Установка указателя на позицию конец-файла плюс offset байт.

Список параметров

fd

Поток, ресурс сокета или числовой дескриптор файла

offset

Начальная позиция, с которой будут читаться данные

length

Число байт, которое необходимо прочитать

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Данные, которые необходимо передать в функцию callback.

Возвращаемые значения

eio_seek() возвращает ресурс запроса в случае успешного выполнения или FALSE в случае возникновения ошибки.


Перемещает данные между файлами

  • « eio_seek
  • eio_set_max_idle »
  • PHP Manual
  • Eio Функции
  • Перемещает данные между файлами

eio_sendfile

(PECL eio >= 0.0.1dev)

eio_sendfile — Перемещает данные между файлами

Описание

eio_sendfile ( mixed $out_fd , mixed $in_fd , int $offset , int $length [, int $pri [, callable $callback [, string $data ]]] ) : resource

eio_sendfile() копирует данные из одного файла в другой. Смотрите дополнительно описание SENDFILE(2).

Список параметров

out_fd

Выходной поток, ресурс сокета или дескриптор целевого файла. Должен быть открыт для записи.

in_fd

Входной поток, ресурс сокета или дескриптор файла-источника. Должен быть открыт для чтения.

offset

Смещение в файле-источнике.

length

Количество байт, которое необходимо скопировать.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Данные, которые необходимо передать в функцию callback.

Возвращаемые значения

eio_sendfile() возвращает ресурс запроса в случае успешного выполнения или FALSE в случае возникновения ошибки.


Устанавливает максимальное количество ожидающих потоков

  • « eio_sendfile
  • eio_set_max_parallel »
  • PHP Manual
  • Eio Функции
  • Устанавливает максимальное количество ожидающих потоков

eio_set_max_idle

(PECL eio >= 0.0.1dev)

eio_set_max_idle — Устанавливает максимальное количество ожидающих потоков

Описание

eio_set_max_idle ( int $nthreads ) : void

Список параметров

nthreads

Количество простаивающих потоков.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • eio_nthreads() - Возвращает количество используемых в данный момент потоков
  • eio_set_min_parallel() - Устанавливает минимальное количество параллельных потоков
  • eio_set_max_parallel() - Устанавливает максимальное количество параллельных потоков


Устанавливает максимальное количество параллельных потоков

  • « eio_set_max_idle
  • eio_set_max_poll_reqs »
  • PHP Manual
  • Eio Функции
  • Устанавливает максимальное количество параллельных потоков

eio_set_max_parallel

(PECL eio >= 0.0.1dev)

eio_set_max_parallel — Устанавливает максимальное количество параллельных потоков

Описание

eio_set_max_parallel ( int $nthreads ) : void

Список параметров

nthreads

Количество параллельных потоков

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • eio_nthreads() - Возвращает количество используемых в данный момент потоков
  • eio_set_max_idle() - Устанавливает максимальное количество ожидающих потоков
  • eio_set_min_parallel() - Устанавливает минимальное количество параллельных потоков


Устанавливает максимальное количество обрабатываемых запросов

  • « eio_set_max_parallel
  • eio_set_max_poll_time »
  • PHP Manual
  • Eio Функции
  • Устанавливает максимальное количество обрабатываемых запросов

eio_set_max_poll_reqs

(PECL eio >= 0.0.1dev)

eio_set_max_poll_reqs — Устанавливает максимальное количество обрабатываемых запросов

Описание

eio_set_max_poll_reqs ( int $nreqs ) : void

Список параметров

nreqs

Количество запросов

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает максимальное время выполнения

  • « eio_set_max_poll_reqs
  • eio_set_min_parallel »
  • PHP Manual
  • Eio Функции
  • Устанавливает максимальное время выполнения

eio_set_max_poll_time

(PECL eio >= 0.0.1dev)

eio_set_max_poll_time — Устанавливает максимальное время выполнения

Описание

eio_set_max_poll_time ( float $nseconds ) : void

Выполнение запросов останавливается, если время выполнения превышает nseconds секунд.

Список параметров

nseconds

Количество секунд

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает минимальное количество параллельных потоков

  • « eio_set_max_poll_time
  • eio_stat »
  • PHP Manual
  • Eio Функции
  • Устанавливает минимальное количество параллельных потоков

eio_set_min_parallel

(PECL eio >= 0.0.1dev)

eio_set_min_parallel — Устанавливает минимальное количество параллельных потоков

Описание

eio_set_min_parallel ( string $nthreads ) : void

Список параметров

nthreads

Количество параллельных потоков.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • eio_nthreads() - Возвращает количество используемых в данный момент потоков
  • eio_set_max_idle() - Устанавливает максимальное количество ожидающих потоков
  • eio_set_max_parallel() - Устанавливает максимальное количество параллельных потоков


Возвращает статус файла

  • « eio_set_min_parallel
  • eio_statvfs »
  • PHP Manual
  • Eio Функции
  • Возвращает статус файла

eio_stat

(PECL eio >= 0.0.1dev)

eio_stat — Возвращает статус файла

Описание

eio_stat ( string $path , int $pri , callable $callback [, mixed $data = NULL ] ) : resource

eio_stat() возвращает информацию о состоянии файла в result аргументе функции callback

Список параметров

path

Путь к файлу

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_stat() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки. В случае успешного выполнения параметр result функции callback является массивом.

Примеры

Пример #1 Пример использования eio_stat()

<?php
$tmp_filename = "eio-file.tmp";
touch($tmp_filename);

function my_res_cb($data, $result) {
    var_dump($data);
    var_dump($result);
}

function my_open_cb($data, $result) {
    eio_close($result);
    eio_event_loop();

    @unlink($data);
}

eio_stat($tmp_filename, EIO_PRI_DEFAULT, "my_res_cb", "eio_stat");
eio_open($tmp_filename, EIO_O_RDONLY, NULL,
 EIO_PRI_DEFAULT, "my_open_cb", $tmp_filename);
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

string(8) "eio_stat"
array(12) {
  ["st_dev"]=>
  int(2050)
  ["st_ino"]=>
  int(2489173)
  ["st_mode"]=>
  int(33188)
  ["st_nlink"]=>
  int(1)
  ["st_uid"]=>
  int(1000)
  ["st_gid"]=>
  int(100)
  ["st_rdev"]=>
  int(0)
  ["st_blksize"]=>
  int(4096)
  ["st_blocks"]=>
  int(0)
  ["st_atime"]=>
  int(1318250380)
  ["st_mtime"]=>
  int(1318250380)
  ["st_ctime"]=>
  int(1318250380)
}

Смотрите также

  • eio_lstat() - Возвращает статус файла
  • eio_fstat() - Возвращает статус файла


Возвращает статистику файловой системы

  • « eio_stat
  • eio_symlink »
  • PHP Manual
  • Eio Функции
  • Возвращает статистику файловой системы

eio_statvfs

(PECL eio >= 0.0.1dev)

eio_statvfs — Возвращает статистику файловой системы

Описание

eio_statvfs ( string $path , int $pri , callable $callback [, mixed $data ] ) : resource

eio_statvfs() возвращает статистику файловой системы в параметр result функции callback.

Список параметров

path

Имя любого файла в примонтированной файловой системе.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_stat() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки. В случае успешного выполнения параметр result функции callback является массивом.

Примеры

Пример #1 Пример использования eio_statvfs()

<?php
$tmp_filename = '/tmp/eio-file.tmp';
touch($tmp_filename);

function my_statvfs_callback($data, $result) {
    var_dump($data);
    var_dump($result);

 @unlink($data);
}

eio_statvfs($tmp_filename, EIO_PRI_DEFAULT, "my_statvfs_callback", $tmp_filename);
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

string(17) "/tmp/eio-file.tmp"
array(11) {
  ["f_bsize"]=>
  int(4096)
  ["f_frsize"]=>
  int(4096)
  ["f_blocks"]=>
  int(262144)
  ["f_bfree"]=>
  int(262111)
  ["f_bavail"]=>
  int(262111)
  ["f_files"]=>
  int(1540815)
  ["f_ffree"]=>
  int(1540743)
  ["f_favail"]=>
  int(1540743)
  ["f_fsid"]=>
  int(0)
  ["f_flag"]=>
  int(4102)
  ["f_namemax"]=>
  int(255)
}


Создает символическую ссылку

  • « eio_statvfs
  • eio_sync_file_range »
  • PHP Manual
  • Eio Функции
  • Создает символическую ссылку

eio_symlink

(PECL eio >= 0.0.1dev)

eio_symlink — Создает символическую ссылку

Описание

eio_symlink ( string $path , string $new_path [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_symlink() создает символическую ссылку new_path на путь path.

Список параметров

path

Путь-источник

new_path

Целевой путь

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Данные, которые необходимо передать функции callback.

Возвращаемые значения

eio_symlink() возвращает ресурс запроса в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования eio_symlink()

<?php
$filename = dirname(__FILE__)."/symlink.dat";
touch($filename);
$link = dirname(__FILE__)."/symlink.link";

function my_symlink_cb($data, $result) {
    global $link, $filename;
    var_dump(file_exists($data) && is_link($data));

    if (!eio_readlink($data, EIO_PRI_DEFAULT, "my_readlink_cb", NULL)) {
        @unlink($link);
        @unlink($filename);
    }
}

function my_readlink_cb($data, $result) {
    global $filename, $link;
    var_dump($result);

    @unlink($link);
    @unlink($filename);
}

eio_symlink($filename, $link, EIO_PRI_DEFAULT, "my_symlink_cb", $link);
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
string(16) "/tmp/symlink.dat"

Смотрите также

  • eio_link() - Создает жесткую ссылку на файл


Синхронизирует сегмент файла с данными файла на внешнем хранилище

  • « eio_symlink
  • eio_sync »
  • PHP Manual
  • Eio Функции
  • Синхронизирует сегмент файла с данными файла на внешнем хранилище

eio_sync_file_range

(PECL eio >= 0.0.1dev)

eio_sync_file_range — Синхронизирует сегмент файла с данными файла на внешнем хранилище

Описание

eio_sync_file_range ( mixed $fd , int $offset , int $nbytes , int $flags [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_sync_file_range() осуществляет необходимые проверки и действия при синхронизации открытого файла fd с дисковой подсистемой.

Список параметров

fd

Файловый описатель

offset

Начальная позиция, с которой будет проводиться синхронизация

nbytes

Задает длину сегмента файла в байтах, которую необходимо синхронизировать. Если nbytes равно нулю, будут синхронизированы все данные от offset до конца файла.

flags

Битовая маска. Может включать комбинацию из следующих значений: EIO_SYNC_FILE_RANGE_WAIT_BEFORE, EIO_SYNC_FILE_RANGE_WRITE, EIO_SYNC_FILE_RANGE_WAIT_AFTER. Эти флаги имеют то же предназначение, что и аналогичные SYNC_FILE_RANGE_* константы (смотрите страницу руководства SYNC_FILE_RANGE(2)).

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Данные, которые необходимо передать функции callback.

Возвращаемые значения

eio_sync_file_range() возвращает ресурс запроса в случае успешного выполнения или FALSE в случае возникновения ошибки.


Записывает кеш из буфера на диск

  • « eio_sync_file_range
  • eio_syncfs »
  • PHP Manual
  • Eio Функции
  • Записывает кеш из буфера на диск

eio_sync

(PECL eio >= 0.0.1dev)

eio_sync — Записывает кеш из буфера на диск

Описание

eio_sync ([ int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

Список параметров

У этой функции нет параметров.

Возвращаемые значения

eio_sync() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибкеи.


Вызывает системный syncfs в Linux, если это доступно

  • « eio_sync
  • eio_truncate »
  • PHP Manual
  • Eio Функции
  • Вызывает системный syncfs в Linux, если это доступно

eio_syncfs

(PECL eio >= 0.0.1dev)

eio_syncfs — Вызывает системный syncfs в Linux, если это доступно

Описание

eio_syncfs ( mixed $fd [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

Список параметров

fd

Дескриптор файла

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_syncfs() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.


Урезает размер файла

  • « eio_syncfs
  • eio_unlink »
  • PHP Manual
  • Eio Функции
  • Урезает размер файла

eio_truncate

(PECL eio >= 0.0.1dev)

eio_truncate — Урезает размер файла

Описание

eio_truncate ( string $path [, int $offset = 0 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]]] ) : resource

eio_truncate() урезает файл, дескриптор которого указан в параметре fd точно до length байт.

Список параметров

path

Путь к файлу

offset

Смещение от начала файла

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_busy() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • eio_ftruncate() - Урезает размер файла


Удаляет файл или одну из жестких ссылок на него

  • « eio_truncate
  • eio_utime »
  • PHP Manual
  • Eio Функции
  • Удаляет файл или одну из жестких ссылок на него

eio_unlink

(PECL eio >= 0.0.1dev)

eio_unlink — Удаляет файл или одну из жестких ссылок на него

Описание

eio_unlink ( string $path [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

eio_unlink() удаляет имя из файловой системы.

Список параметров

path

Путь к файлу

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_unlink() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.


Изменяет дату и время последней модификации и доступа к файлу

  • « eio_unlink
  • eio_write »
  • PHP Manual
  • Eio Функции
  • Изменяет дату и время последней модификации и доступа к файлу

eio_utime

(PECL eio >= 0.0.1dev)

eio_utime — Изменяет дату и время последней модификации и доступа к файлу

Описание

eio_utime ( string $path , float $atime , float $mtime [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] ) : resource

Список параметров

path

Путь к файлу.

atime

Время последнего доступа

mtime

Время последнего изменения

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Возвращаемые значения

eio_utime() возвращает указатель на запрос в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • eio_futime() - Изменяет дату и время последней модификации и доступа к файлу


Запись в файл

  • « eio_utime
  • Ev »
  • PHP Manual
  • Eio Функции
  • Запись в файл

eio_write

(PECL eio >= 0.0.1dev)

eio_write — Запись в файл

Описание

eio_write ( mixed $fd , string $str [, int $length = 0 [, int $offset = 0 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]]]] ) : resource

eio_write() записывает до length байт из str в файл, начиная с позиции offset байт от начала файла.

Список параметров

fd

Поток, ресурс сокета или числовой файловый дескриптор, например, полученный из eio_open().

str

Записываемая строка

length

Максимальное количество записываемых байт.

offset

Смещение от начала файла.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Данные, которые требуется передать в функцию callback.

Возвращаемые значения

eio_write() возвращает ресурс запроса в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • eio_open() - Открывает файл


Ev

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Наблюдатели
  • Watcher callbacks
  • Режимы работы периодических наблюдателей
  • Ev — Класс Ev
    • Ev::backend — Возвращает целое число, описывающее бекэнд, используемый libev
    • Ev::depth — Получить глубину рекурсии
    • Ev::embeddableBackends — Возвращает набор бекэндов, которые можно встроить в прочие событийные циклы
    • Ev::feedSignal — Передаем событие сигнала в Ev
    • Ev::feedSignalEvent — Послать событие сигнала в цикл по умолчанию
    • Ev::iteration — Получить количество произведенных опросов цикла по умолчанию на предмет новых событий
    • Ev::now — Получить время запуска последней итерации цикла по умолчанию
    • Ev::nowUpdate — Устанавливает текущее время путем запроса к ядру в процессе обновляя время, возвращаемое Ev::now
    • Ev::recommendedBackends — Получить битовую маску рекомендованных бекэндов для данной платформы
    • Ev::resume — Возобновить выполнение приостановленного ранее событийного цикла по умолчанию
    • Ev::run — Начать проверку наличия событий и вызов callback-функций цикла по умолчанию
    • Ev::sleep — Блокировать процесс заданное количество секунд
    • Ev::stop — Остановить событийный цикл по умолчанию
    • Ev::supportedBackends — Возвращает набор бекэндов, поддерживаемых текущей конфигурацией libev
    • Ev::suspend — Приостановить событийный цикл по умолчанию
    • Ev::time — Возвращает текущее время в секундах(дробное число) прошедшее с начала эпохи Unix
    • Ev::verify — Производит внутренную проверку целосности(для отладки)
  • EvCheck — Класс EvCheck
    • EvCheck::__construct — Конструктор объекта EvCheck
    • EvCheck::createStopped — Создает остановленный экземпляр наблюдателя EvCheck
  • EvChild — Класс EvChild
    • EvChild::__construct — Создает объект наблюдатель EvChild
    • EvChild::createStopped — Создает остановленный экземпляр наблюдателя EvCheck
    • EvChild::set — Конфигурирование наблюдателя
  • EvEmbed — Класс EvEmbed
    • EvEmbed::__construct — Конструктор объекта EvEmbed
    • EvEmbed::createStopped — Создает остановленный объект наблюдатель EvEmbed
    • EvEmbed::set — Настройка наблюдателя
    • EvEmbed::sweep — Делает одиночную, неблокирующую развертку по встроенному циклу
  • EvFork — Класс EvFork
    • EvFork::__construct — Конструктор наблюдателя EvFork
    • EvFork::createStopped — Создать объект класса EvFork, но не стартовать его
  • EvIdle — Класс EvIdle
    • EvIdle::__construct — Конструктор наблюдателя EvIdle
    • EvIdle::createStopped — Создать объект класса EvIdle, но не стартовать его
  • EvIo — Класс EvIo
    • EvIo::__construct — Создает объект наблюдатель EvIo
    • EvIo::createStopped — Создает остановленный объект наблюдателя EvIo
    • EvIo::set — Конфигурирование наблюдателя
  • EvLoop — Класс EvLoop
    • EvLoop::backend — Возвращает целое число, описывающее бэкэнд, используемый libev
    • EvLoop::check — Создает объект EvCheck, связанный с текущим экземпляром цикла событий
    • EvLoop::child — Создает объект EvChild, связанный с текущим циклом событий
    • EvLoop::__construct — Конструктор объекта цикла событий
    • EvLoop::defaultLoop — Возвращает или создает цикл событий по умолчанию
    • EvLoop::embed — Создает экземпляр наблюдателя EvEmbed, связанный с текущим объектом EvLoop
    • EvLoop::fork — Создает объект наблюдателя EvFork, связанный с текущим экземпляром цикла событий
    • EvLoop::idle — Создает объект наблюдателя EvIdle, связанный с текущим экземпляром цикла событий
    • EvLoop::invokePending — Вызывает всех ожидающих наблюдателей при сбросе их отложенного состояния
    • EvLoop::io — Создает объект наблюдателя EvIo, связанный с текущим экземпляром цикла событий
    • EvLoop::loopFork — Вызывается после разветления
    • EvLoop::now — Возвращает текущее "event loop time"
    • EvLoop::nowUpdate — Устанавливает текущее время, запрашивая ядро, обновляя время, возвращаемое EvLoop::now в процессе
    • EvLoop::periodic — Создает объект наблюдателя EvPeriodic, связанный с текущим экземпляром цикла событий
    • EvLoop::prepare — Создает объект наблюдателя EvPrepare, связанный с текущим экземпляром цикла событий
    • EvLoop::resume — Возобновляет ранее приостановленный цикл событий
    • EvLoop::run — Проверяет события и вызывает callback-фукнции в цикле
    • EvLoop::signal — Создает объект наблюдателя EvSignal, связанный с текущим экземпляром цикла событий
    • EvLoop::stat — Создает объект наблюдателя EvStat, связанный с текущим экземпляром цикла событий
    • EvLoop::stop — Останавливает цикл событий
    • EvLoop::suspend — Приостанавливает цикл
    • EvLoop::timer — Создает объект наблюдателя EvTimer, связанный с текущим экземпляром цикла событий
    • EvLoop::verify — Выполняет внутренние проверки согласованности (для отладки)
  • EvPeriodic — Класс EvPeriodic
    • EvPeriodic::again — Останавливает и снова запускает периодический наблюдатель
    • EvPeriodic::at — Возвращает абсолютное время, когда наблюдатель запустится в следующий раз
    • EvPeriodic::__construct — Конструктор объекта наблюдателя EvPeriodic
    • EvPeriodic::createStopped — Создает остановленный наблюдатель EvPeriodic
    • EvPeriodic::set — Настраивает наблюдателя
  • EvPrepare — Класс EvPrepare
    • EvPrepare::__construct — Конструктор наблюдателя EvPrepare
    • EvPrepare::createStopped — Создать объект класса EvPrepare, но не стартовать его
  • EvSignal — Класс EvSignal
    • EvSignal::__construct — Конструктор объекта наблюдателя EvSignal
    • EvSignal::createStopped — Create stopped EvSignal watcher object
    • EvSignal::set — Настройка наблюдателя
  • EvStat — Класс EvStat
    • EvStat::attr — Возвращает значения, недавно обнаруженные Ev
    • EvStat::__construct — Создает объект наблюдателя EvStat
    • EvStat::createStopped — Создает остановленный объект наблюдателя EvStat
    • EvStat::prev — Возвращает предыдущий набор значений, возвращаемых EvStat::attr
    • EvStat::set — Настраивает наблюдателя
    • EvStat::stat — Инициирует вызов статистики
  • EvTimer — Класс EvTimer
    • EvTimer::again — Перезапускает таймер наблюдателя
    • EvTimer::__construct — Конструктор объекта наблюдателя EvTimer
    • EvTimer::createStopped — Создает остановленный наблюдатель EvTimer
    • EvTimer::set — Настраивает наблюдателя
  • EvWatcher — Класс EvWatcher
    • EvWatcher::clear — Очистить статус ожидания наблюдателя
    • EvWatcher::__construct — Абстрактный конструктор объекта наблюдателя
    • EvWatcher::feed — Подает указанные события в цикл событий
    • EvWatcher::getLoop — Возвращает цикл, отвечающий за наблюдателя
    • EvWatcher::invoke — Вызывает callback-функцию наблюдателя с заданной битовой маской принятых событий
    • EvWatcher::keepalive — Настраивает, будет ли возвращаться цикл
    • EvWatcher::setCallback — Устанавливает новую callback-функцию для наблюдателя
    • EvWatcher::start — Запускает наблюдателя
    • EvWatcher::stop — Останавливает наблюдателя


Введение

Модуль предоставляет интерфейс к С-библиотеке » Libev , являющейся высокопроизводительным диспетчером событий.

Замечание: Для Windows-платформ это расширение недоступно.

Libev - это диспетчер событий, занимающийся регистрацией определенных событий (например, изменение доступности файлового дескриптора, или превышение таймаута), управлением их источниками и реакцией на них.

Для этого он должен принять более или менее полный контроль над процессом (или нитью), путем запуска обработчика диспетчера событий, а затем обмениваться данными через механизм callback.

Для работы с нужными событиями, необходимо зарегистрировать так называемых наблюдателей за событиями, а затем запустить их, передав libev.

Для получения подробной информации обратитесь к » документации libev


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

В это расширение включена библиотека libev и вам не нужно устанавливать ее отдельно.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/ev .


Предопределенные константы

Данное расширение не определяет никакие константы.

Большинство констант перемещены в класс синглетон (одиночка) Ev


Примеры

Пример #1 Простые таймеры

<?php
// Создаем и запускаем таймер на 2 секунды
$w1 = new EvTimer(2, 0, function () {
    echo "2 секунды прошло\n";
});

// Создаем и запускаем таймер, который сработает через 2 секунды, после чего будет срабатывать
// раз в секунду, пока вы его вручную не остановите
$w2 = new EvTimer(2, 1, function ($w) {
    echo "вызывается раз в секунду, первое срабатывание через 2 секунды\n";
    echo "итерация = ", Ev::iteration(), PHP_EOL;

    // Останавливаем наблюдателя через 5 итераций
    Ev::iteration() == 5 and $w->stop();
    // Остановливаем наблюдателя, если следующий вызов приведет к десятой (или больше) итерации
    Ev::iteration() >= 10 and $w->stop();
});

// создаем остановленный таймер. Он будет неактивен, пока мы его не запустим
$w_stopped = EvTimer::createStopped(10, 5, function($w) {
    echo "Функция обратного вызова таймера, созданного остановленным\n";

    // Останавливаем наблюдателя через 2 итерации
    Ev::iteration() >= 2 and $w->stop();
});

// Запускаем событийный цикл, пока работает хотя бы один наблюдатель или пока не вызван Ev::stop()
Ev::run();

// Запускаем и смотрим, как он работает
$w_stopped->start();
echo "Запускаем одну итерацию\n";
Ev::run(Ev::RUN_ONCE);

echo "Перезапускаем второго наблюдателя и пытаемся отловить те же события, но не блокируем\n";
$w2->again();
Ev::run(Ev::RUN_NOWAIT);

$w = new EvTimer(10, 0, function() {});
echo "Запускаем блокирующий цикл\n";
Ev::run();
echo "END\n";
?>

Результатом выполнения данного примера будет что-то подобное:

2 секунды прошло
вызывается раз в секунду, первое срабатывание через 2 секунды
итерация = 1
вызывается раз в секунду, первое срабатывание через 2 секунды
итерация = 2
вызывается раз в секунду, первое срабатывание через 2 секунды
итерация = 3
вызывается раз в секунду, первое срабатывание через 2 секунды
итерация = 4
вызывается раз в секунду, первое срабатывание через 2 секунды
итерация = 5
Запускаем одну итерацию
Функция обратного вызова таймера, созданного остановленным
Перезапускаем второго наблюдателя и пытаемся отловить те же события, но не блокируем
Запускаем блокирующий цикл
вызывается раз в секунду, первое срабатывание через 2 секунды
итерация = 8
вызывается раз в секунду, первое срабатывание через 2 секунды
итерация = 9
вызывается раз в секунду, первое срабатывание через 2 секунды
итерация = 10
END

Пример #2 Периодический таймер. Срабатывает раз в 10.5 секунд

<?php
$w = new EvPeriodic(0., 10.5, NULL, function ($w, $revents) {
    echo time(), PHP_EOL;
});

Ev::run();
?>

Пример #3 Периодический таймер. Использование callback-функции для перезадания интервала

<?php
// Срабатывает раз в 10.5 секунд

function reschedule_cb ($watcher, $now) {
    return $now + (10.5. - fmod($now, 10.5));
}

$w = new EvPeriodic(0., 0., "reschedule_cb", function ($w, $revents) {
    echo time(), PHP_EOL;
});

Ev::run();
?>

Пример #4 Периодический таймер. Tick every 10.5 seconds starting at now

<?php
// Срабатывает раз в 10.5 секунд начиная с текущего момента
$w = new EvPeriodic(fmod(Ev::now(), 10.5), 10.5, NULL, function ($w, $revents) {
    echo time(), PHP_EOL;
});

Ev::run();
?>

Пример #5 Ждем, пока STDIN не станет читаемым

<?php
// Ждем, пока STDIN не станет читаемым
$w = new EvIo(STDIN, Ev::READ, function ($watcher, $revents) {
    echo "STDIN is readable\n";
});

Ev::run(Ev::RUN_ONCE);
?>

Пример #6 Используем асинхронный ввод/вывод для доступа к сокету

<?php
/* Используем асинхронный ввод/вывод для доступа к сокету */

// расширение `sockets' продолжит логировать предупреждения
// для EINPROGRESS, EAGAIN/EWOULDBLOCK etc.
error_reporting(E_ERROR);

$e_nonblocking = array (/*EAGAIN или EWOULDBLOCK*/11, /*EINPROGRESS*/115);

// Получаем порт для сервиса WWW
$service_port = getservbyname('www', 'tcp');

// Получаем IP-адрес целевого хоста
$address = gethostbyname('google.co.uk');

// Создаем сокет TCP/IP
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === FALSE) {
    echo "Ошибка при вызове socket_create(): причина: "
        .socket_strerror(socket_last_error()) . "\n";
}

// Устанавливаем флаг O_NONBLOCK
socket_set_nonblock($socket);

// Прерываем по таймауту
$timeout_watcher = new EvTimer(10.0, 0., function () use ($socket) {
    socket_close($socket);
    Ev::stop(Ev::BREAK_ALL);
});

// Посылаем запрос HEAD когда сокет доступен для записи
$write_watcher = new EvIo($socket, Ev::WRITE, function ($w)
    use ($socket, $timeout_watcher, $e_nonblocking)
{
    // Останавливаем наблюдателя $timeout_watcher
    $timeout_watcher->stop();
    // Останавливаем наблюдателя $write_watcher
    $w->stop();

    $in = "HEAD / HTTP/1.1\r\n";
    $in .= "Host: google.co.uk\r\n";
    $in .= "Connection: Close\r\n\r\n";

    if (!socket_write($socket, $in, strlen($in))) {
        trigger_error("Ошибка записи $in в сокет", E_USER_ERROR);
    }

    $read_watcher = new EvIo($socket, Ev::READ, function ($w, $re)
        use ($socket, $e_nonblocking)
    {
        // Сокет доступен для чтения. Читаем 20 байт в неблокирующем режиме
        $ret = socket_recv($socket, $out, 20, MSG_DONTWAIT);

        if ($ret) {
            echo $out;
        } elseif ($ret === 0) {
            // Все прочтено
            $w->stop();
            socket_close($socket);
            return;
        }

        // Ловим EINPROGRESS, EAGAIN или EWOULDBLOCK
        if (in_array(socket_last_error(), $e_nonblocking)) {
            return;
        }

        $w->stop();
        socket_close($socket);
    });

    Ev::run();
});

$result = socket_connect($socket, $address, $service_port);

Ev::run();
?>

Результатом выполнения данного примера будет что-то подобное:

HTTP/1.1 301 Moved Permanently
Location: http://www.google.co.uk/
Content-Type: text/html; CHARSET=Windows-1251
Date: Sun, 23 Dec 2012 16:08:27 GMT
Expires: Tue, 22 Jan 2013 16:08:27 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 221
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Connection: close

Пример #7 Встраиваем один цикл в другой

<?php
/*
* Пытаемся получить встраиваемый цикл и встроить его в событийный цикл по умолчанию.
* Если это невозможно - используем цикл по умолчанию. Цикл по умолчанию
* хранится в $loop_hi, а встраиваемый в $loop_lo (который будет равен $loop_hi в случае
* если мы не будет использовать встраевыемый цикл).
*
* Пример взят из
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop_hi = EvLoop::defaultLoop();
$loop_lo = NULL;
$embed   = NULL;

/*
* Смотрим, есть ли возможность получить работающий
* (Значение 0 означает автоопределение)
*/
$loop_lo = Ev::embeddableBackends() & Ev::recommendedBackends()
    ? new EvLoop(Ev::embeddableBackends() & Ev::recommendedBackends())
    : 0;

if ($loop_lo) {
    $embed = new EvEmbed($loop_lo, function () {});
} else {
    $loop_lo = $loop_hi;
}
?>

Пример #8 Встраивание цикла, созданного с помощью kqueue в цикл по умолчанию

<?php
/*
* Проверяем, что бэкенд kqueue доступен, но не рекомендован, и создаем его для
* работы с сокетами (которые обычно работают с любой реализацией kqueue).
* Сохраняем событийный цикл kqueue/socket-only в loop_socket. (Можно опционально
* использовать флаг EVFLAG_NOENV)
*
* Пример взят из
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop        = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed       = NULL;

if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
    if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
        $embed = new EvEmbed($loop);
    }
}

if (!$socket_loop) {
    $socket_loop = $loop;
}

// теперь используем $socket_loop для всех сокетов, а $loop для всего остального
?>

Пример #9 Перехватываем сигнал SIGTERM

<?php
$w = new EvSignal(SIGTERM, function ($watcher) {
    echo "Получен сигнал SIGTERM\n";
    $watcher->stop();
});

Ev::run();
?>

Пример #10 Отслеживаем изменение /var/log/messages

<?php
// Используем интервал опроса в 10 секунд
$w = new EvStat("/var/log/messages", 8, function ($w) {
    echo "/var/log/messages изменен\n";

    $attr = $w->attr();

    if ($attr['nlink']) {
        printf("Текущий размер: %ld\n", $attr['size']);
        printf("Текущее значение atime: %ld\n", $attr['atime']);
        printf("Текущее значение mtime: %ld\n", $attr['mtime']);
    } else {
        fprintf(STDERR, "файл `messages` отсутствует!");
        $w->stop();
    }
});

Ev::run();
?>

Пример #11 Отслеживаем изменение /var/log/messages. Избегаем пропуска обновлений с помощью задержки в одну секунду

<?php
$timer = EvTimer::createStopped(0., 1.02, function ($w) {
    $w->stop();

    $stat = $w->data;

    // 1 секунду после последнего изменения файла
    printf("Текущий размер: %ld\n", $stat->attr()['size']);
});

$stat = new EvStat("/var/log/messages", 0., function () use ($timer) {
    // Сбрасываем наблюдателя $timer
    $timer->again();
});

$timer->data = $stat;

Ev::run();
?>

Пример #12 Изменения статуса процесса

<?php
$pid = pcntl_fork();

if ($pid == -1) {
    fprintf(STDERR, "pcntl_fork failed\n");
} elseif ($pid) {
    $w = new EvChild($pid, FALSE, function ($w, $revents) {
        $w->stop();

        printf("Процесс %d вышел с кодом %d\n", $w->rpid, $w->rstatus);
    });

    Ev::run();

    // Защита от зомби процессов
    pcntl_wait($status);
} else {
    // Порожденный потомок
    exit(2);
}
?>


Наблюдатели

Наблюдатель - это объект, который создан для слежения за каким-либо конкретным событием. К примеру, следующий код будет ожидать, когда STDIN станет читаемым:

<?php
// Ждем, пока STDIN не станет доступным для чтения
$w = new EvIo(STDIN, Ev::READ, function ($watcher, $revents) {
 echo "STDIN можно считать\n";
});
Ev::run(Ev::RUN_ONCE);
?>

Конструкторы наблюдателей запускают их автоматически. Если вам нужно создать наблюдателя, но не запускать, используйте метод createStopped (EvIo::createStopped()).

Обратите внимание, что при уничтожении объекта наблюдателя, он будет автоматически остановлен. Таким образом, объекты наблюдатели, возвращенные из конструкторов или фабричных методов должны быть сохранены.

Обратите внимание, что все методы, изменяющие свойства наблюдателя (set, priority и т.д.), автоматически останавливают и перезапускают наблюдатель, если он активен, это означает, что все ожидающие сообщения будут потеряны.

Также читайте: Callback-функции наблюдателей .


Watcher callbacks

Все наблюдатели могут быть либо активными (ожидать сообщения), либо неактивными (приостановленными). Только активные наблюдатели могут вызывать свои callback-функции. Все такие функции вызываются как минимиум с двумя параметрами: watcher - наблюдатель, и revents - битовая маска принятых событий.

Callback-функции наблюдателей передаются в конструкторы наблюдателей (классы, наследующие от EvWatcher - EvCheck::__construct(), EvChild::__construct() и т.д.) Callback-функция наблюдателя должна соответствовать следующему прототипу:

callback ([ object $watcher = NULL [, int $revents = NULL ]] ) : void

watcher

Экземпляр наблюдателя (класс расширяющий EvWatcher).

revents

Принятые наблюдателем события.

Каждый тип наблюдателя имеет собственный бит в revents, ассоциированный с ним, что позволяет использовать одну и ту же callback-функцию для множества наблюдателей. Событийная маска именуется после типа, т.е. EvChild (или EvLoop::child()) устанавливает EV::CHILD, EvPrepare (или EvLoop::prepare()) устанавливает Ev::PREPARE, EvPeriodic (или EvLoop::periodic()) устанавливает Ev::PERIODIC и так далее, с исключением для событий ввода/вывода (которые устанавливают оба бита, и Ev::READ и Ev::WRITE).


Режимы работы периодических наблюдателей

Наблюдатели EvPeriodic работают в разных режимах в зависимости от значения параметров offset, interval и reschedule_cb.

  1. Абсолютный таймер. В этом режиме interval = 0, reschedule_cb = NULL. Этот таймер просто сработает один в заданное в offset время. Он не компенсирует скачки времени и если указанно сработать в 1 Января 2014, то он сработает когда системное время будет равно или больше этого значения.

  2. Таймер с фиксированным интервалом. В этом режиме interval > 0, а reschedule_cb = NULL. Каждое N-ное срабатывание будет ровно через offset + N * interval (где N - целое число), не взирая на скачки времени.

    Это можно использовать для создания таймеров, которые не расходятся с системным временем:

    <?php
    $hourly     = EvPeriodic(0, 3600, NULL, function () {
      echo     "один раз в час\n";
    };
    ?>
    Это не означает, что между срабатываниями будет всегда ровно 3600 секунд. Это означает, что callback-функция будет вызвана только когда системные часы покажут полный час (UTC).

    В этом режиме, EvPeriodic будет пытаться запустить callback-функцию в следующее доступное время, когда time = offset (mod interval), независимо от прыжком времени.

  3. Режим ручного переопределения времени срабатывания. В этом режиме reschedule_cb является корректным параметром типа callable.

    interval и offset игнорируются. Вместо этого, при каждом срабатывании, наблюдатель запускает callback-функцию (reschedule_cb) с двумя аргументами, ссылкой на наблюдателя и временем.

    Эта callback-функция никогда не должна останавливать или уничтожать этот, или какой-либо другой периодический наблюдатель и не должна вызывать функции и методы событийного цикла. Для остановки можно вернуть очень большое число, например 1e30, и остановить наблюдатель за пределами этой функции. Для этого можно использовать наблюдателей EvPrepare.

    Эта функция должна вернуть следующее время срабатывания, основываясь на переданном значении времени (то есть самое маленькое значение времени больше или равно второму аргументу). Обычно она вызывается перед тем, как будет вызвана основная callback-функция наблюдателя, но может и позже.

    Пример #1 Использование наблюдателя с ручным переопределением времени срабатывания

    <?php
    // Срабатывать каждые 10.5 секунд

    function reschedule_cb ($watcher, $now) {
       return     $now + (10.5. - fmod($now, 10.5));
    }

    $w = new EvPeriodic(0., 0., "reschedule_cb", function ($w, $revents) {
       echo     time(), PHP_EOL;
    });

    Ev::run();
    ?>


Класс Ev

(PECL ev >= 0.2.0)

Введение

Класс EV является статическим классом, обеспечивая доступ к циклу по умолчанию и некоторым распространенным операциям.

Обзор классов

final Ev {
/* Константы */
const integer FLAG_AUTO = 0 ;
const integer FLAG_NOENV = 16777216 ;
const integer FLAG_FORKCHECK = 33554432 ;
const integer FLAG_NOINOTIFY = 1048576 ;
const integer FLAG_SIGNALFD = 2097152 ;
const integer FLAG_NOSIGMASK = 4194304 ;
const integer RUN_NOWAIT = 1 ;
const integer RUN_ONCE = 2 ;
const integer BREAK_CANCEL = 0 ;
const integer BREAK_ONE = 1 ;
const integer BREAK_ALL = 2 ;
const integer MINPRI = -2 ;
const integer MAXPRI = 2 ;
const integer READ = 1 ;
const integer WRITE = 2 ;
const integer TIMER = 256 ;
const integer PERIODIC = 512 ;
const integer SIGNAL = 1024 ;
const integer CHILD = 2048 ;
const integer STAT = 4096 ;
const integer IDLE = 8192 ;
const integer PREPARE = 16384 ;
const integer CHECK = 32768 ;
const integer EMBED = 65536 ;
const integer CUSTOM = 16777216 ;
const integer ERROR = 2147483648 ;
const integer BACKEND_SELECT = 1 ;
const integer BACKEND_POLL = 2 ;
const integer BACKEND_EPOLL = 4 ;
const integer BACKEND_KQUEUE = 8 ;
const integer BACKEND_DEVPOLL = 16 ;
const integer BACKEND_PORT = 32 ;
const integer BACKEND_ALL = 63 ;
const integer BACKEND_MASK = 65535 ;
/* Методы */
final public static backend ( void ) : int
final public static depth ( void ) : int
final public static embeddableBackends ( void ) : int
final public static feedSignal ( int $signum ) : void
final public static feedSignalEvent ( int $signum ) : void
final public static iteration ( void ) : int
final public static now ( void ) : float
final public static nowUpdate ( void ) : void
final public static recommendedBackends ( void ) : int
final public static resume ( void ) : void
final public static run ([ int $flags ] ) : void
final public static sleep ( float $seconds ) : void
final public static stop ([ int $how ] ) : void
final public static supportedBackends ( void ) : int
final public static suspend ( void ) : void
final public static time ( void ) : float
final public static verify ( void ) : void
}

Предопределенные константы

Флаги, передаваемые при создании цикла:

Ev::FLAG_AUTO

Задает флагам значение по умолчанию

Ev::FLAG_NOENV

Если флаг используется (или программа запускает setuid или setgid), то libev не смотрит на переменную окружения LIBEV_FLAGS. В противном случае (по умолчанию), если найден LIBEV_FLAGS, то он полностью переопределяет флаги. Полезно для тестов производительности и поиска ошибок.

Ev::FLAG_FORKCHECK

Заставляет libev проверять ветвление в каждой итерации, вместо вызова EvLoop::fork() вручную. Это работает путем вызова getpid() на каждой итерации цикла, и, таким образом, это может замедлить работу цикла событий с большим количеством итераций цикла, но обычно не сильно. Этот флаг не может быть переопределен или указан в переменной среды LIBEV_FLAGS.

Ev::FLAG_NOINOTIFY

Если этот флаг указан, то libev не будет пытаться использовать API inotify для своих наблюдателей » ev_stat Флаг может быть полезным для сохранения файловых дескрипторов inotify, в противном случае каждый цикл, использующий наблюдателей ev_stat, будет потреблять один дескриптор inotify.

Ev::FLAG_SIGNALFD

Если флаг указан, то libev будет пытаться использовать API signalfd для своих наблюдателей » ev_signal (и » ev_child). API передает сигналы синхронно, что делает его быстрее и, возможно, позволит получить данные из очереди сигналов, а также позволяет упростить обработку сигналов с помощью потоков, поскольку сигналы корректно блокируются в потоках. Signalfd не используется по умолчанию.

Ev::FLAG_NOSIGMASK

Если указан флаг, то libev будет избегать изменения маски сигнала. В частности, это применяется, чтобы перед получением сигнала убедиться, что он разблокирован.

Такое поведение полезно для обработки пользовательских сигналов или обработки сигналов только определенных потоков.

Флаги, передаваемые в Ev::run(), или EvLoop::run()

Ev::RUN_NOWAIT

Означает, что цикл событий будет искать и обрабатывать новые события, а также любые ожидающие выполнения события из них, но не будет ждать и блокировать процесс в случае, если не было никаких событий и завершится после одной итерации цикла. Это иногда полезно для опроса и обработки новых событий во время выполнения длительных вычислений, сохраняя при этом возможность взаимодействия с программой.

Ev::RUN_ONCE

Означает, что цикл событий будет искать новые события (ожидая, в случае необходимости) и обрабатывать эти и любые уже ожидающие события из них. Он будет блокировать процесс, пока не поступит по крайней мере одно новое событие (это может быть внутреннее событие libev, поэтому нет никакой гарантии, что будет вызвана заданная callback-функция) и завершится после одной итерации цикла.

Флаги, передаваемые в Ev::stop() , или EvLoop::stop()

Ev::BREAK_CANCEL

Отмена операции прерывания.

Ev::BREAK_ONE

Возвращает самый глубокий запрос Ev::run() (или EvLoop::run() ).

Ev::BREAK_ALL

Завершает все вложенные вызовы Ev::run() (или EvLoop::run() ).

Приоритеты наблюдателей:

Ev::MINPRI

Минимально допустимый приоритет наблюдателя.

Ev::MAXPRI

Максимально допустимый приоритет наблюдателя.

Битовые маски (полученных) событий:

Ev::READ

Дескриптор файла в наблюдателе EvIo доступен для чтения.

Ev::WRITE

Дескриптор файла в наблюдателе EvIo доступен для записи.

Ev::TIMER

EvTimer наблюдает за превышением лимита времени.

Ev::PERIODIC

EvPeriodic наблюдает за превышением лимита времени.

Ev::SIGNAL

Указанный в EvSignal::__construct() сигнал получен.

Ev::CHILD

pid Указанный в EvChild::__construct() получен и статус изменен.

Ev::STAT

Путь, указанный в наблюдателе EvStat поменял свои аттрибуты.

Ev::IDLE

Наблюдатель EvIdle работает, когда остальные наблюдатели ничего не делают.

Ev::PREPARE

Все наблюдатели EvPrepare вызваны ровно перед стартом Ev::run() таким образом, наблюдатели EvPrepare являются последними вызванными наблюдателями перед тем, как цикл событий заснет или опросит новые события.

Ev::CHECK

Все наблюдатели EvCheck помещены в очередь сразу после того, как Ev::run() собрал новые события, но до того, как они вызовут какую-либо callback-функцию для полученных событий. Таким образом, наблюдатели EvCheck будут вызваны раньше, чем любые другие наблюдатели с таким же либо более низким приоритетом в этой итерации цикла событий.

Ev::EMBED

Встроенный цикл событий, заданный в наблюдателе EvEmbed требует к себе внимания.

Ev::CUSTOM

Никогда не посылается (или иным образом используется) библиотекой libev самостоятельно, но может свободно использоваться пользователями libev для сигнализирующих наблюдателей (т.е. с помощью EvWatcher::feed() ).

Ev::ERROR

Произошла неизвестная ошибка и наблюдатель будет остановлен. Может произойти из-за некорректного запуска наблюдателя, потому, что libev исчерпал лимит по памяти, из-за закрытого дескриптора файла или по какой-либо еще причине. Libev считает, что эти ошибки приложения. Также читайте раздел » АНАТОМИЯ НАБЛЮДАТЕЛЕЙ

Флаги бэкенда:

Ev::BACKEND_SELECT

выбор бэкенда - select(2)

Ev::BACKEND_POLL

опрос бэкенда - poll(2)

Ev::BACKEND_EPOLL

Специфичный для Linux бэкенд epoll(7) для ядер до и после 2.6.9

Ev::BACKEND_KQUEUE

kqueue - бэкенде используемый в большинстве систем BSD. Наблюдатель EvEmbed может быть использован для вставки одного цикла (с бэкендом kqueue) в другой. Например, можно попытаться создать цикл событий с бэкендом kqueue и использовать его только для сокетов.

Ev::BACKEND_DEVPOLL

Бэкенд Solaris 8. Пока не реализован.

Ev::BACKEND_PORT

Механизм порта событий с хорошим масштабированием в Solaris 10.

Ev::BACKEND_ALL

Пробовать все бэкенды (кроме испорченных). Не рекомендуется использовать напрямую. Тут необходимо использовать побитовые операции (т.е. Ev::BACKEND_ALL & ~ Ev::BACKEND_KQUEUE ). Использовать Ev::recommendedBackends() , или не задавать никакого бэкенда вообще.

Ev::BACKEND_MASK

Не бэкенд, но маска для выбора всех бит бэкендов из значения flags, для исключения каких-либо бэкендов. (т.е. когда модифицируете переменную окружения LIBEV_FLAGS).

Замечание:

Для цикла по умолчанию, во время фазы инициализации модуля Ev, регистрируется вызов » ev_loop_fork с помощью pthread_atfork (если таковой имеется).

Замечание:

Есть методы, позволяющие получить доступ к циклу событий по умолчанию в классе Ev (например, Ev::iteration(), Ev::depth() и т.д.). Для пользовательских циклов (созданных с помощью EvLoop::__ construct()) эти значения могут быть доступны через соответствующие свойства и методы класса EvLoop.

Экземпляр цикла событий по умолчанию может быть извлечен с помощью метода EvLoop::defaultLoop().

Содержание

  • Ev::backend — Возвращает целое число, описывающее бекэнд, используемый libev
  • Ev::depth — Получить глубину рекурсии
  • Ev::embeddableBackends — Возвращает набор бекэндов, которые можно встроить в прочие событийные циклы
  • Ev::feedSignal — Передаем событие сигнала в Ev
  • Ev::feedSignalEvent — Послать событие сигнала в цикл по умолчанию
  • Ev::iteration — Получить количество произведенных опросов цикла по умолчанию на предмет новых событий
  • Ev::now — Получить время запуска последней итерации цикла по умолчанию
  • Ev::nowUpdate — Устанавливает текущее время путем запроса к ядру в процессе обновляя время, возвращаемое Ev::now
  • Ev::recommendedBackends — Получить битовую маску рекомендованных бекэндов для данной платформы
  • Ev::resume — Возобновить выполнение приостановленного ранее событийного цикла по умолчанию
  • Ev::run — Начать проверку наличия событий и вызов callback-функций цикла по умолчанию
  • Ev::sleep — Блокировать процесс заданное количество секунд
  • Ev::stop — Остановить событийный цикл по умолчанию
  • Ev::supportedBackends — Возвращает набор бекэндов, поддерживаемых текущей конфигурацией libev
  • Ev::suspend — Приостановить событийный цикл по умолчанию
  • Ev::time — Возвращает текущее время в секундах(дробное число) прошедшее с начала эпохи Unix
  • Ev::verify — Производит внутренную проверку целосности(для отладки)


Возвращает целое число, описывающее бекэнд, используемый libev

  • « Ev
  • Ev::depth »
  • PHP Manual
  • Ev
  • Возвращает целое число, описывающее бекэнд, используемый libev

Ev::backend

(PECL ev >= 0.2.0)

Ev::backend — Возвращает целое число, описывающее бекэнд, используемый libev

Описание

final public static Ev::backend ( void ) : int

Возвращает целое число, описывающее бекэнд, используемый libev. Смотрите Флаги бекэнда

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число(битовая маска), описывающее бекэнд, используемый libev.

Смотрите также

  • EvEmbed
  • Ev::embeddableBackends() - Возвращает набор бекэндов, которые можно встроить в прочие событийные циклы
  • Ev::recommendedBackends() - Получить битовую маску рекомендованных бекэндов для данной платформы
  • Ev::supportedBackends() - Возвращает набор бекэндов, поддерживаемых текущей конфигурацией libev
  • Флаги бекэнда


Получить глубину рекурсии

  • « Ev::backend
  • Ev::embeddableBackends »
  • PHP Manual
  • Ev
  • Получить глубину рекурсии

Ev::depth

(PECL ev >= 0.2.0)

Ev::depth — Получить глубину рекурсии

Описание

final public static Ev::depth ( void ) : int

Количество запусков Ev::run() минус количество нормальных выходов Ev::run(), другими словами, глубина рекурсии. Вне Ev::run() это число будет равно 0. В callback-функции оно будет равно 1, если Ev::run() не вызывалась рекурсивно (либо в другом потоке), в противном случае оно будет больше.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

ev_depth() возвращает глубину рекурсии цикла по умолчанию.

Смотрите также

  • Ev::iteration() - Получить количество произведенных опросов цикла по умолчанию на предмет новых событий


Возвращает набор бекэндов, которые можно встроить в прочие событийные циклы

  • « Ev::depth
  • Ev::feedSignal »
  • PHP Manual
  • Ev
  • Возвращает набор бекэндов, которые можно встроить в прочие событийные циклы

Ev::embeddableBackends

(PECL ev >= 0.2.0)

Ev::embeddableBackends — Возвращает набор бекэндов, которые можно встроить в прочие событийные циклы

Описание

final public static Ev::embeddableBackends ( void ) : int

Возвращает набор бекэндов, которые можно встроить в прочие событийные циклы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает битовую маску, содержащую флаги бекэнда, объединенные с помощью побитового ИЛИ.

Примеры

Пример #1 Цикл создается с использованием kqueue и встраивается в цикл по умолчанию

<?php
/*
* Проверяем, что kqueue доступен, но не рекомендован и создаем kqueue бекэнд
* с использованием сокетов (которые обычно работают с любой реализацией kqueue).
* Сохраняем событийный цикл kqueue/socket-only в loop_socket. (Можем, опционально
* использовать флаг EVFLAG_NOENV)
*
* Пример взят с сайта
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop        = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed       = NULL;

if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
 if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
  $embed = new EvEmbed($loop);
 }
}

if (!$socket_loop) {
 $socket_loop = $loop;
}

// Теперь используем $socket_loop для всех сокетов и $loop всего остального
?>

Смотрите также

  • EvEmbed
  • Ev::recommendedBackends() - Получить битовую маску рекомендованных бекэндов для данной платформы
  • Ev::supportedBackends() - Возвращает набор бекэндов, поддерживаемых текущей конфигурацией libev
  • Флаги бекэнда
  • Примеры


Передаем событие сигнала в Ev

  • « Ev::embeddableBackends
  • Ev::feedSignalEvent »
  • PHP Manual
  • Ev
  • Передаем событие сигнала в Ev

Ev::feedSignal

(PECL ev >= 0.2.0)

Ev::feedSignal — Передаем событие сигнала в Ev

Описание

final public static Ev::feedSignal ( int $signum ) : void

Симуляция приема сигнала. Эту функцию можно безопасно вызывать в любое время, из любого контекста, включая обработчики сигналов или случайные потоки выполнения. Основное назначение - настройка обработки сигналов во время исполнения.

В отличие от Ev::feedSignalEvent(), этот метод работает независимо от того, какой цикл зарегистрировал сигнал.

Список параметров

signum

Номер сигнала. Смотри страницу man signal(7). Вы можете использовать константы, экспортированные из расширения pcntl.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Ev::feedSignalEvent() - Послать событие сигнала в цикл по умолчанию


Послать событие сигнала в цикл по умолчанию

  • « Ev::feedSignal
  • Ev::iteration »
  • PHP Manual
  • Ev
  • Послать событие сигнала в цикл по умолчанию

Ev::feedSignalEvent

(Информация о версии неизвестна, возможно, только в Git)

Ev::feedSignalEvent — Послать событие сигнала в цикл по умолчанию

Описание

final public static Ev::feedSignalEvent ( int $signum ) : void

Послать событие сигнала в цикл по умолчанию. Ev среагирует также, как будто был получен указанный сигнал signal.

Список параметров

signum

Номер сигнала. Смотри страницу man signal(7). Вы можете использовать константы, экспортированные из расширения pcntl.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Ev::feedSignal() - Передаем событие сигнала в Ev


Получить количество произведенных опросов цикла по умолчанию на предмет новых событий

  • « Ev::feedSignalEvent
  • Ev::now »
  • PHP Manual
  • Ev
  • Получить количество произведенных опросов цикла по умолчанию на предмет новых событий

Ev::iteration

(PECL ev >= 0.2.0)

Ev::iteration — Получить количество произведенных опросов цикла по умолчанию на предмет новых событий

Описание

final public static Ev::iteration ( void ) : int

Возвращает количество произведенных опросов цикла по умолчанию на предмет новых событий. Иногда полезно в качестве счетчика генераций.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Получить количество произведенных опросов цикла по умолчанию.

Смотрите также

  • Ev::depth() - Получить глубину рекурсии


Получить время запуска последней итерации цикла по умолчанию

  • « Ev::iteration
  • Ev::nowUpdate »
  • PHP Manual
  • Ev
  • Получить время запуска последней итерации цикла по умолчанию

Ev::now

(PECL ev >= 0.2.0)

Ev::now — Получить время запуска последней итерации цикла по умолчанию

Описание

final public static Ev::now ( void ) : float

Возвращает время запуска последней итерации цикла по умолчанию. Это время, на котором базируются таймеры ( EvTimer и EvPeriodic) и, обычно, обращение к этой функции происходит быстрее, чем вызов Ev::time().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество секунд(фракций), представляющее время, когда была запущена последняя итерация цикла по умолчанию.

Смотрите также

  • Ev::nowUpdate() - Устанавливает текущее время путем запроса к ядру в процессе обновляя время, возвращаемое Ev::now


Устанавливает текущее время путем запроса к ядру в процессе обновляя время, возвращаемое Ev::now

  • « Ev::now
  • Ev::recommendedBackends »
  • PHP Manual
  • Ev
  • Устанавливает текущее время путем запроса к ядру в процессе обновляя время, возвращаемое Ev::now

Ev::nowUpdate

(PECL ev >= 0.2.0)

Ev::nowUpdate — Устанавливает текущее время путем запроса к ядру в процессе обновляя время, возвращаемое Ev::now

Описание

final public static Ev::nowUpdate ( void ) : void

Устанавливает текущее время путем запроса к ядру в процессе обновляя время, возвращаемое Ev::now(). Это дорогая операция и обычно выполняется автоматически внутри Ev::run().

Этот метод редко когда полезен, но когда некоторые callback-функции работают очень долго без обращения к циклу по умолчанию, обновление текущего времени в libev является неплохой идеей.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Ev::now() - Получить время запуска последней итерации цикла по умолчанию


Получить битовую маску рекомендованных бекэндов для данной платформы

  • « Ev::nowUpdate
  • Ev::resume »
  • PHP Manual
  • Ev
  • Получить битовую маску рекомендованных бекэндов для данной платформы

Ev::recommendedBackends

(PECL ev >= 0.2.0)

Ev::recommendedBackends — Получить битовую маску рекомендованных бекэндов для данной платформы

Описание

final public static Ev::recommendedBackends ( void ) : int

Возвращает набор всех бекэндов, встроенных в используемую libev и, также, рекомендованных для данной платформы, в том смысле, что они будут работать с большинством типов дескрипторов файлов. Обычно этот список меньше, чем возвращаемый ev_supported_backends(). К примеру, kqueue не работает на большинстве систем BSD и не будет автоопределен если только вы принудительно его не запросите. Это набор бекэндов которые будет опрашивать libev, если бекэнд не задан в явном виде.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает битовую маску, содержащую флаги бекэнда, объединенные с помощью побитового ИЛИ.

Примеры

Пример #1 Встраивание одного цикла в другой

<?php
/*
* Попытаемся получить встраиваемый событийный цикл и встроить его в
* событийный цикл по умолчанию.
* Если это невозможно - используем цикл по умолчанию.
* Цикл по умолчанию хранится в $loop_hi, а встраиваемый в $loop_lo
* (который равен $loop_hi в случае, если нельзя использовать встраиваемый цикл).
*
* Пример взят с сайта
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop_hi = EvLoop::defaultLoop();
$loop_lo = NULL;
$embed   = NULL;

/*
* Смотрим, есть ли хотя бы один подходящий бекэнд
* (флаг 0 означает автоопределение)
*/
$loop_lo = Ev::embeddableBackends() & Ev::recommendedBackends()
 ? new EvLoop(Ev::embeddableBackends() & Ev::recommendedBackends())
 : 0;

if ($loop_lo) {
 $embed = new EvEmbed($loop_lo, function () {});
} else {
 $loop_lo = $loop_hi;
}
?>

Смотрите также

  • EvEmbed
  • Ev::embeddableBackends() - Возвращает набор бекэндов, которые можно встроить в прочие событийные циклы
  • Ev::supportedBackends() - Возвращает набор бекэндов, поддерживаемых текущей конфигурацией libev
  • Флаги бекэнда
  • Примеры


Возобновить выполнение приостановленного ранее событийного цикла по умолчанию

  • « Ev::recommendedBackends
  • Ev::run »
  • PHP Manual
  • Ev
  • Возобновить выполнение приостановленного ранее событийного цикла по умолчанию

Ev::resume

(PECL ev >= 0.2.0)

Ev::resume — Возобновить выполнение приостановленного ранее событийного цикла по умолчанию

Описание

final public static Ev::resume ( void ) : void

Методы Ev::suspend() и Ev::resume(), соответственно приостанавливаюи и возобновляют работу событийного цикла.

Все наблюдатели таймеры будут задержаны на время прошедшее между suspend и resume, и все наблюдатели типа periodic будут перепланированы watchers will be rescheduled(то есть будут потеряны все события, которые произошли во время приостановки).

После вызова Ev::suspend() запрещено вызывать любые функции цикла кроме Ev::resume(). Также запрещается вызывать Ev::resume() если ранее не вызывался Ev::suspend().

Вызов suspend / resume имеют побочные эффекты для обновления времени событийного цикла (смотри Ev::nowUpdate()).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Ev::suspend() - Приостановить событийный цикл по умолчанию


Начать проверку наличия событий и вызов callback-функций цикла по умолчанию

  • « Ev::resume
  • Ev::sleep »
  • PHP Manual
  • Ev
  • Начать проверку наличия событий и вызов callback-функций цикла по умолчанию

Ev::run

(PECL ev >= 0.2.0)

Ev::run — Начать проверку наличия событий и вызов callback-функций цикла по умолчанию

Описание

final public static Ev::run ([ int $flags ] ) : void

Начать проверку наличия событий и вызов callback-функций цикла по умолчанию. Возвращает управление, когда callback-функция вызвала метод Ev::stop() или если фалги не равны нулю (в этом случае возвращаемое значение будет TRUE) или если отсутствуют активные наблюдатели ссылающиеся на цикл (EvWatcher::keepalive() равен TRUE), в этом случае будет возвращено FALSE. Возвращаемое значение можно интерпретировать таким образом - если TRUE, то есть еще над чем поработать.

Список параметров

flags

Опциональный параметр flags может принимать следующие значения:

Список возможных значений flags
flags | Описание
0 | Поведение по умолчанию, описанное выше
Ev::RUN_ONCE | Блокировать не более одного (ждать, но не зацикливаться)
Ev::RUN_NOWAIT | Не блокировать (забирать/обрабатывать события, но не ждать)

Смотри Константы флагов запуска.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Ev::stop() - Остановить событийный цикл по умолчанию
  • EvLoop::run() - Проверяет события и вызывает callback-фукнции в цикле


Блокировать процесс заданное количество секунд

  • « Ev::run
  • Ev::stop »
  • PHP Manual
  • Ev
  • Блокировать процесс заданное количество секунд

Ev::sleep

(PECL ev >= 0.2.0)

Ev::sleep — Блокировать процесс заданное количество секунд

Описание

final public static Ev::sleep ( float $seconds ) : void

Блокировать процесс заданное количество секунд

Список параметров

seconds

Дробное количество секунд

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Остановить событийный цикл по умолчанию

  • « Ev::sleep
  • Ev::supportedBackends »
  • PHP Manual
  • Ev
  • Остановить событийный цикл по умолчанию

Ev::stop

(PECL ev >= 0.2.0)

Ev::stop — Остановить событийный цикл по умолчанию

Описание

final public static Ev::stop ([ int $how ] ) : void

Остановить событийный цикл по умолчанию.

Список параметров

how

Одна из Ev::BREAK_* констант .

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Ev::run() - Начать проверку наличия событий и вызов callback-функций цикла по умолчанию


Возвращает набор бекэндов, поддерживаемых текущей конфигурацией libev

  • « Ev::stop
  • Ev::suspend »
  • PHP Manual
  • Ev
  • Возвращает набор бекэндов, поддерживаемых текущей конфигурацией libev

Ev::supportedBackends

(PECL ev >= 0.2.0)

Ev::supportedBackends — Возвращает набор бекэндов, поддерживаемых текущей конфигурацией libev

Описание

final public static Ev::supportedBackends ( void ) : int

Возвращает набор бекэндов, поддерживаемых текущей конфигурацией libev.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает битовую маску, содержащую флаги бекэнда, объединенные с помощью побитового ИЛИ.

Примеры

Пример #1 Цикл создается с использованием kqueue и встраивается в цикл по умолчанию

<?php
/*
* Проверяем, что kqueue доступен, но не рекомендован и создаем kqueue бекэнд
* с использованием сокетов (которые обычно работают с любой реализацией kqueue).
* Сохраняем событийный цикл kqueue/socket-only в loop_socket. (Можем, опционально
* использовать флаг EVFLAG_NOENV)
*
* Пример взят с сайта
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop        = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed       = NULL;

if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
 if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
  $embed = new EvEmbed($loop);
 }
}

if (!$socket_loop) {
 $socket_loop = $loop;
}

// Теперь используем $socket_loop для всех сокетов и $loop всего остального
?>

Смотрите также

  • EvEmbed
  • Ev::recommendedBackends() - Получить битовую маску рекомендованных бекэндов для данной платформы
  • Ev::embeddableBackends() - Возвращает набор бекэндов, которые можно встроить в прочие событийные циклы
  • Backend flags
  • Examples


Приостановить событийный цикл по умолчанию

  • « Ev::supportedBackends
  • Ev::time »
  • PHP Manual
  • Ev
  • Приостановить событийный цикл по умолчанию

Ev::suspend

(PECL ev >= 0.2.0)

Ev::suspend — Приостановить событийный цикл по умолчанию

Описание

final public static Ev::suspend ( void ) : void

Методы Ev::suspend() и Ev::resume(), соответственно приостанавливают и возобновляют работу событийного цикла.

Все наблюдатели таймеры будут задержаны на время прошедшее между suspend и resume, и все наблюдатели типа periodic будут перепланированы (то есть будут потеряны все события, которые произошли во время приостановки).

После вызова Ev::suspend() запрещено вызывать любые функции цикла кроме Ev::resume(). Также запрещается вызывать Ev::resume(), если ранее не вызывался Ev::suspend().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Ev::resume() - Возобновить выполнение приостановленного ранее событийного цикла по умолчанию


Возвращает текущее время в секундах(дробное число) прошедшее с начала эпохи Unix

  • « Ev::suspend
  • Ev::verify »
  • PHP Manual
  • Ev
  • Возвращает текущее время в секундах(дробное число) прошедшее с начала эпохи Unix

Ev::time

(PECL ev >= 0.2.0)

Ev::time — Возвращает текущее время в секундах(дробное число) прошедшее с начала эпохи Unix

Описание

final public static Ev::time ( void ) : float

Возвращает текущее время в секундах(дробное число) прошедшее с начала эпохи Unix. Но лучше, все же, используйте Ev::now().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущее время в секундах(дробное число) прошедшее с начала эпохи Unix.

Смотрите также

  • Ev::now() - Получить время запуска последней итерации цикла по умолчанию


Производит внутренную проверку целосности(для отладки)

  • « Ev::time
  • EvCheck »
  • PHP Manual
  • Ev
  • Производит внутренную проверку целосности(для отладки)

Ev::verify

(PECL ev >= 0.2.0)

Ev::verify — Производит внутренную проверку целосности(для отладки)

Описание

final public static Ev::verify ( void ) : void

Производит внутренную проверку целосности(для отладки libev) и прекращает выполнение программы, если обнаружены ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс EvCheck

(PECL ev >= 0.2.0)

Введение

Наблюдатели EvPrepare и EvCheck обычно используются в паре. Наблюдатель EvPrepare вызвается до блокировки процесса, затем вызывается EvCheck

Не разрешается вызывать EvLoop::run() или аналогичные методы или функции, введенные в текущий цикл событий другими наблюдателями EvPrepare или EvCheck. Однако другие циклы событий, не текущий, могут. Смысл в том, что текущему не нужно проверять рекурсию в таких наблюдателях, т.е. всегда будет последовательность: EvPrepare -> блокировка -> EvCheck, так что наблюдателя каждого вида всегда будут вызывать в парах, захватывая блокирующий вызов.

Основная цель заключается в интеграции других событийных механизмов в libev и улучшенное их использование. Они могут быть использованы, например, при отслеживании изменении переменных, при реализации пользовательских наблюдателей, при интегрировании NET-SNMP или сопрограмм библиотеки и многое другое. Они также иногда полезны при кешировании данных и при очистке данных до блокировки.

Рекомендуется устанавливать наблюдателям EvCheck наивысший приоритет (Ev::MAXPRI), чтобы обеспечить возможность их запуска раньше любых других наблюдателей после опроса (это не имеет значения для наблюдателей EvPrepare).

Кроме того, наблюдатели EvCheck не смогут активировать/подавать события. Пока libev полностью поддерживает все это, они могут выполняться раньше, чем другие наблюдатели EvCheck выполнят свою работу.

Обзор классов

EvCheck extends EvWatcher {
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public __construct ( callable $callback [, mixed $data [, int $priority ]] )
final public static createStopped ( string $callback [, string $data [, string $priority ]] ) : object
/* Наследуемые методы */
public EvWatcher::clear ( void ) : int
abstract public EvWatcher::__construct ( void )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( void ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ([ bool $value ] ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( void ) : void
public EvWatcher::stop ( void ) : void
}

Содержание

  • EvCheck::__construct — Конструктор объекта EvCheck
  • EvCheck::createStopped — Создает остановленный экземпляр наблюдателя EvCheck


Конструктор объекта EvCheck

  • « EvCheck
  • EvCheck::createStopped »
  • PHP Manual
  • EvCheck
  • Конструктор объекта EvCheck

EvCheck::__construct

(PECL ev >= 0.2.0)

EvCheck::__construct — Конструктор объекта EvCheck

Описание

public EvCheck::__construct ( callable $callback [, mixed $data [, int $priority ]] )

Создает наблюдатель EvCheck.

Список параметров

callback

Смотрите Callback-функции наблюдателя .

data

Данные, ассоциированные с наблюдателем.

priority

приоритет наблюдателя

Возвращаемые значения

В случае успешного выполнения возвращает объект EvCheck.

Смотрите также

  • EvPrepare
  • EvLoop::check() - Создает объект EvCheck, связанный с текущим экземпляром цикла событий


Создает остановленный экземпляр наблюдателя EvCheck

  • « EvCheck::__construct
  • EvChild »
  • PHP Manual
  • EvCheck
  • Создает остановленный экземпляр наблюдателя EvCheck

EvCheck::createStopped

(PECL ev >= 0.2.0)

EvCheck::createStopped — Создает остановленный экземпляр наблюдателя EvCheck

Описание

final public static EvCheck::createStopped ( string $callback [, string $data [, string $priority ]] ) : object

Создает остановленный экземпляр наблюдателя EvCheck.

Список параметров

callback

Смотрите Callback-функции наблюдателя .

data

Данные, ассоциированные с наблюдателем.

priority

приоритет наблюдателя

Возвращаемые значения

В случае успешного выполнения возвращает объект EvCheck.

Смотрите также

  • EvPrepare


Класс EvChild

(PECL ev >= 0.2.0)

Введение

Наблюдатель EvChild вызывается тогда, когда процесс получает сигнал SIGCHLD в ответ на некоторые изменения статуса дочернего элемента (обычно когда дочерний процесс завершает свою работу или выходит из него). Разрешается устанавливать наблюдатель EvChild после того, как дочерний покот создал свой дочерний поток (что подразумевает, что он уже завершился), пока не началась итерация цикла событий (или продолжается из наблюдателя), т.е. ветвление и регистрации наблюдателя для дочернего элемента является хорошей практикой, а ветвление и регистрации наблюдателя после нескольких итераций цикла событий или при следующем запуске функции обратного вызова - нет.

Наблюдателей EvChild разрешается регистрировать только в цикле по умолчанию .

Обзор классов

EvChild extends EvWatcher {
/* Свойства */
public $pid ;
public $rpid ;
public $rstatus ;
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public __construct ( int $pid , bool $trace , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public static createStopped ( int $pid , bool $trace , callable $callback [, mixed $data [, int $priority ]] ) : object
public set ( int $pid , bool $trace ) : void
/* Наследуемые методы */
public EvWatcher::clear ( void ) : int
abstract public EvWatcher::__construct ( void )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( void ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ([ bool $value ] ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( void ) : void
public EvWatcher::stop ( void ) : void
}

Свойства

pid

Только чтение. Идентификатор процесса, который следит, или 0, что означает любой идентификатор процесса.

rpid

Только чтение. Идентификатор процесса, который следит за изменением статуса.

rstatus

Только чтение. Статус завершения процесса, вызванный rpid.

Содержание

  • EvChild::__construct — Создает объект наблюдатель EvChild
  • EvChild::createStopped — Создает остановленный экземпляр наблюдателя EvCheck
  • EvChild::set — Конфигурирование наблюдателя


Создает объект наблюдатель EvChild

  • « EvChild
  • EvChild::createStopped »
  • PHP Manual
  • EvChild
  • Создает объект наблюдатель EvChild

EvChild::__construct

(PECL ev >= 0.2.0)

EvChild::__construct — Создает объект наблюдатель EvChild

Описание

public EvChild::__construct ( int $pid , bool $trace , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Создает объект наблюдатель EvChild.

Вызывает callback-функцию, когда пришло событие изменения статуса процесса с идентификатором pid (или любым PID, если pid задан как 0 ). Статус процесса изменяется, когда процесс завершается, либо когда его убивают, либо, если trace равно TRUE, когда он остановлен или возобновлен. Другими словами, когда процесс получает сигнал SIGCHLD , Ev извлекает статус exit/wait для всех измененных/зомби дочерних процессов и вызывает callback-функцию.

Правильно устанавливать дочернего наблюдателя после того, как EvChild завершился, но до запуска следующей итерации событийного цикла. К примеру, сначала вызывается fork, после чего новый дочерний процесс может выйти, и только после этого в родителе устанавливается наблюдатель EvChild для нового PID .

Вы можете получить доступ к статусам exit/tracing и pid используя свойства объекта наблюдателя rstatus и rpid.

Количество PID-наблюдателей для каждого PID не ограничено. Все они будут вызваны.

Метод EvChild::createStopped() не стартует(не активирует) созданного наблюдателя.

Список параметров

pid

Ожидает изменения статуса процесса с идентификатором PID (или любого процесса, если PID задан как 0 ).

trace

Если FALSE, то активация наблюдателя происходит только при завершении процесса. Если TRUE, то активация происходит также при остановке/возобновлении процесса.

callback

Смотрите Callback-функции наблюдателей .

data

Произвольные данные, связанные с наблюдателем.

priority

Приоритет наблюдателя

Возвращаемые значения

В случае успешного выполнения возвращает объект EvChild.

Смотрите также

  • EvLoop::child() - Создает объект EvChild, связанный с текущим циклом событий


Создает остановленный экземпляр наблюдателя EvCheck

  • « EvChild::__construct
  • EvChild::set »
  • PHP Manual
  • EvChild
  • Создает остановленный экземпляр наблюдателя EvCheck

EvChild::createStopped

(PECL ev >= 0.2.0)

EvChild::createStopped — Создает остановленный экземпляр наблюдателя EvCheck

Описание

final public static EvChild::createStopped ( int $pid , bool $trace , callable $callback [, mixed $data [, int $priority ]] ) : object

То же самое, что и EvChild::__construct() , но не происходит автоматического запуска наблюдателя.

Список параметров

pid

Смотрите EvChild::__construct()

trace

Смотрите EvChild::__construct()

callback

Смотрите Callback-функции наблюдателей .

data

Произвольные данные, связанные с наблюдателем.

priority

Приоритет наблюдателя

Возвращаемые значения

Смотрите также

  • EvChild::__construct() - Создает объект наблюдатель EvChild
  • EvLoop::child() - Создает объект EvChild, связанный с текущим циклом событий


Конфигурирование наблюдателя

  • « EvChild::createStopped
  • EvEmbed »
  • PHP Manual
  • EvChild
  • Конфигурирование наблюдателя

EvChild::set

(PECL ev >= 0.2.0)

EvChild::set — Конфигурирование наблюдателя

Описание

public EvChild::set ( int $pid , bool $trace ) : void

Список параметров

pid

Смотрите EvChild::__construct()

trace

Смотрите EvChild::__construct()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvChild::__construct() - Создает объект наблюдатель EvChild


Класс EvEmbed

(PECL ev >= 0.2.0)

Введение

Используется для вставки одного цикла событий в другой.

Обзор классов

EvEmbed extends EvWatcher {
/* Свойства */
public $embed ;
/* Методы */
public __construct ( object $other [, callable $callback [, mixed $data [, int $priority ]]] )
final public static createStopped ( object $other [, callable $callback [, mixed $data [, int $priority ]]] ) : void
public set ( object $other ) : void
public sweep ( void ) : void
/* Наследуемые методы */
public EvWatcher::clear ( void ) : int
abstract public EvWatcher::__construct ( void )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( void ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ([ bool $value ] ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( void ) : void
public EvWatcher::stop ( void ) : void
}

Свойства

is_active

data

is_pending

priority

embed

Содержание

  • EvEmbed::__construct — Конструктор объекта EvEmbed
  • EvEmbed::createStopped — Создает остановленный объект наблюдатель EvEmbed
  • EvEmbed::set — Настройка наблюдателя
  • EvEmbed::sweep — Делает одиночную, неблокирующую развертку по встроенному циклу


Конструктор объекта EvEmbed

  • « EvEmbed
  • EvEmbed::createStopped »
  • PHP Manual
  • EvEmbed
  • Конструктор объекта EvEmbed

EvEmbed::__construct

(PECL ev >= 0.2.0)

EvEmbed::__construct — Конструктор объекта EvEmbed

Описание

public EvEmbed::__construct ( object $other [, callable $callback [, mixed $data [, int $priority ]]] )

Это довольно продвинутый тип наблюдателя, который позволяет встроить один цикл событий в другой (в настоящее время поддерживаются только события ввода-вывода во встроенном цикле, другие типы наблюдателей могут обрабатываться с задержкой или неверно и не должны использоваться).

Более подробно читайте в » документации libev.

Этот наблюдатель наиболее полезен в BSD системах без работающего kqueue для поддержки обработки большого количества сокетов. Смотрите пример ниже.

Список параметров

other

Экземпляр класса EvLoop. Событийный цикл для встраивания. Этот цикл должен быть встраиваемым (смотрите Ev::embeddableBackends() ).

callback

Смотрите callback-функции наблюдателей .

data

Пользовательские данные, ассоциированные с наблюдателем.

priority

Приоритет наблюдателя

Возвращаемые значения

В случае успешного выполнения возвращает объект класса EvEmbed.

Примеры

Пример #1 Встраивание цикла, созданного с помощью kqueue в событийный цикл по умолчанию

<?php
/*
 * Проверьте, доступен ли kqueue и создайте бекэнд kqueue
 * для использования с сокетами (это обычно работает с любой реализацией kqueue).
 * Сохраните событийный цикл kqueue/socket-only в loop_socket. (Опционально можно
 * использовать флаг EVFLAG_NOENV)
 *
 * пример взят из
 * http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
 */
$loop        = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed       = NULL;

if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
    if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
        $embed = new EvEmbed($loop);
    }
}

if (!$socket_loop) {
    $socket_loop = $loop;
}

// теперь используйте $socket_loop для всех сокетов, а $loop для всего остального
?>

Смотрите также

  • Ev::embeddableBackends() - Возвращает набор бекэндов, которые можно встроить в прочие событийные циклы


Создает остановленный объект наблюдатель EvEmbed

  • « EvEmbed::__construct
  • EvEmbed::set »
  • PHP Manual
  • EvEmbed
  • Создает остановленный объект наблюдатель EvEmbed

EvEmbed::createStopped

(PECL ev >= 0.2.0)

EvEmbed::createStopped — Создает остановленный объект наблюдатель EvEmbed

Описание

final public static EvEmbed::createStopped ( object $other [, callable $callback [, mixed $data [, int $priority ]]] ) : void

То же самое, что и EvEmbed::__construct() , но наблюдатель не будет автоматически запущен.

Список параметров

other

То же, что и для EvEmbed::__construct()

callback

Смотрите callback-функции наблюдателей .

data

Пользовательские данные, ассоциированные с наблюдателем.

priority

Приоритет наблюдателя

Возвращаемые значения

В случае успешного выполнения возвращает остановленный наблюдатель EvEmbed.

Смотрите также

  • EvEmbed::__construct() - Конструктор объекта EvEmbed
  • Ev::embeddableBackends() - Возвращает набор бекэндов, которые можно встроить в прочие событийные циклы


Настройка наблюдателя

  • « EvEmbed::createStopped
  • EvEmbed::sweep »
  • PHP Manual
  • EvEmbed
  • Настройка наблюдателя

EvEmbed::set

(PECL ev >= 0.2.0)

EvEmbed::set — Настройка наблюдателя

Описание

public EvEmbed::set ( object $other ) : void

Конфигурирует наблюдателя для использования событийного цикла other.

Список параметров

other

Смотрите EvEmbed::__construct()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Делает одиночную, неблокирующую развертку по встроенному циклу

  • « EvEmbed::set
  • EvFork »
  • PHP Manual
  • EvEmbed
  • Делает одиночную, неблокирующую развертку по встроенному циклу

EvEmbed::sweep

(PECL ev >= 0.2.0)

EvEmbed::sweep — Делает одиночную, неблокирующую развертку по встроенному циклу

Описание

public EvEmbed::sweep ( void ) : void

Делает одиночную, неблокирующую развертку по встроенному циклу. Работает аналогично следующему коду, но является более предпочтительным в случае встроенных циклов:

<?php
$other->start(Ev::RUN_NOWAIT);
?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvWatcher::start() - Запускает наблюдателя


Класс EvFork

(PECL ev >= 0.2.0)

Введение

Параллельный процесс наблюдателя вызывается тогда, когда вызывается fork() (обычно потому, что об этом сообщили libev путем вызова EvLoop::fork()). Вызов делается до следующей блокировки циклом событий и до начала вызова наблюдателей EvCheck и только в дочернем процессе после ветвления. Обратите внимание на то, что если кто-нибудь сделает вызов EvLoop::fork() в неправильном процессе, обработчики ветвления также будут вызваны.

Обзор классов

EvFork extends EvWatcher {
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public __construct ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public static createStopped ( string $callback [, string $data [, string $priority ]] ) : object
/* Наследуемые методы */
public EvWatcher::clear ( void ) : int
abstract public EvWatcher::__construct ( void )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( void ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ([ bool $value ] ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( void ) : void
public EvWatcher::stop ( void ) : void
}

Содержание

  • EvFork::__construct — Конструктор наблюдателя EvFork
  • EvFork::createStopped — Создать объект класса EvFork, но не стартовать его


Конструктор наблюдателя EvFork

  • « EvFork
  • EvFork::createStopped »
  • PHP Manual
  • EvFork
  • Конструктор наблюдателя EvFork

EvFork::__construct

(PECL ev >= 0.2.0)

EvFork::__construct — Конструктор наблюдателя EvFork

Описание

public EvFork::__construct ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Создает объект наблюдатель EvFork и автоматически его стартует.

Список параметров

callback

Смотрите callback-функции наблюдателей .

data

Произвольные данные, ассоциированные с наблюдателем.

priority

Приоритет наблюдателя

Возвращаемые значения

Возвращает объект EvFork.

Смотрите также

  • EvLoop::fork() - Создает объект наблюдателя EvFork, связанный с текущим экземпляром цикла событий
  • EvCheck


Создать объект класса EvFork, но не стартовать его

  • « EvFork::__construct
  • EvIdle »
  • PHP Manual
  • EvFork
  • Создать объект класса EvFork, но не стартовать его

EvFork::createStopped

(PECL ev >= 0.2.0)

EvFork::createStopped — Создать объект класса EvFork, но не стартовать его

Описание

final public static EvFork::createStopped ( string $callback [, string $data [, string $priority ]] ) : object

То же самое, что и EvFork::__construct() , но не производит автоматического старта наблюдателя.

Список параметров

callback

Смотрите функции обратного вызова наблюдателей .

data

Произвольные данные, ассоциированные с наблюдателем

priority

Приоритет наблюдателя

Возвращаемые значения

Возвращает остановленный объект EvFork.

Смотрите также

  • EvFork::__construct() - Конструктор наблюдателя EvFork


Класс EvIdle

(PECL ev >= 0.2.0)

Введение

Наблюдатели EvIdle вызывают события тогда, когда никакие другие события такого же или более высокого приоритета не находятся в ожидании (EvPrepare, EvCheck и другие наблюдатели EvIdle не считаются за получающие события).

Таким образом этот процесс занят обработкой сокетов или ожиданий (или даже сигналов) такого же или более высокого приоритета до тех пор, пока он не будет активирован. Но когда процесс находится в режиме ожидания (или в очереди только наблюдатели с более низким приоритетом), наблюдатели EvIdle будут вызываться единожды за итерацию цикла событий - пока не будут остановлены или пока процессом не будут получены новые сообщения и он не будет занят более приоритетными задачами.

Помимо поддержания неблокирующего процесса (который полезен в некоторых случаях), наблюдатели EvIdle являются хорошим местом для выполнения "псевдо-фоновой обработки" или задержки обработки данных до момента, пока цикл событий не обработает все исключительные события.

Наиболее заметный эффект проявляется в том, что пока спящие наблюдатели активны, процесс не будет блокироваться в процессе ожидания новых событий.

Обзор классов

EvIdle extends EvWatcher {
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public __construct ( callable $callback [, mixed $data [, int $priority ]] )
final public static createStopped ( string $callback [, mixed $data [, int $priority ]] ) : object
/* Наследуемые методы */
public EvWatcher::clear ( void ) : int
abstract public EvWatcher::__construct ( void )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( void ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ([ bool $value ] ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( void ) : void
public EvWatcher::stop ( void ) : void
}

Содержание

  • EvIdle::__construct — Конструктор наблюдателя EvIdle
  • EvIdle::createStopped — Создать объект класса EvIdle, но не стартовать его


Конструктор наблюдателя EvIdle

  • « EvIdle
  • EvIdle::createStopped »
  • PHP Manual
  • EvIdle
  • Конструктор наблюдателя EvIdle

EvIdle::__construct

(PECL ev >= 0.2.0)

EvIdle::__construct — Конструктор наблюдателя EvIdle

Описание

public EvIdle::__construct ( callable $callback [, mixed $data [, int $priority ]] )

Создает объект наблюдатель EvIdle и автоматически его стартует.

Список параметров

callback

Смотрите функции обратного вызова наблюдателей .

data

Произвольные данные, ассоциированные с наблюдателем.

priority

Приоритет наблюдателя

Возвращаемые значения

Возвращает объект EvIdle.

Смотрите также

  • EvIdle::createStopped() - Создать объект класса EvIdle, но не стартовать его
  • EvLoop::idle() - Создает объект наблюдателя EvIdle, связанный с текущим экземпляром цикла событий


Создать объект класса EvIdle, но не стартовать его

  • « EvIdle::__construct
  • EvIo »
  • PHP Manual
  • EvIdle
  • Создать объект класса EvIdle, но не стартовать его

EvIdle::createStopped

(PECL ev >= 0.2.0)

EvIdle::createStopped — Создать объект класса EvIdle, но не стартовать его

Описание

final public static EvIdle::createStopped ( string $callback [, mixed $data [, int $priority ]] ) : object

То же самое, что и EvIdle::__construct() , но не производит автоматического старта наблюдателя.

Список параметров

callback

Смотрите функции обратного вызова наблюдателей .

data

Произвольные данные, ассоциированные с наблюдателем

priority

Приоритет наблюдателя

Возвращаемые значения

Возвращает остановленный объект EvIdle.

Смотрите также

  • EvIdle::__construct() - Конструктор наблюдателя EvIdle
  • EvLoop::idle() - Создает объект наблюдателя EvIdle, связанный с текущим экземпляром цикла событий


Класс EvIo

(PECL ev >= 0.2.0)

Введение

Наблюдатели EvIo проверяют, является ли файл, сокет или поток, преобразуемый в числовой дескриптор файла, доступным на чтение или на запись при каждой итерации событийного цикла, или, если более точно, когда чтение не заблокирует процесс, а запись сможет быть произведена. Такое поведение называется переключение уровня (level-triggering), потому, что события будут создаваться все время, пока сохраняется отслеживаемое состояние. Для прекращения создания событий надо просто остановить наблюдателя.

Количество таких наблюдателей для одного файлового дескриптора fd не ограничено. Желательно, но не обязательно, установить для файлового дескриптора неблокирующий режим.

Другой момент, который необходимо держать в уме, это то, что всегда существует возможность ложного срабатывания. Например Ev::READ вызовет callback-функцию, но в то же время файл заблокируется подзапросом read(). В такую ситуацию очень легко попасть и именно поэтому рекомендуется всегда использовать неблокирующий ввод/вывод. Возврат read() дополнительного EAGAIN гораздо предпочтительнее, чем "зависание" программы в ожидании данных.

Если по каким то причинам невозможно использовать fd в неблокирующем режиме, то имеет смысл дополниельно проверять, доступне ли файл на чтение в данный конкретный момент. Кто-то дополнительно использует SIGALRM и внутренний таймер для проверки, что блокировке не вечная.

Старайтесь всегда использовать неблокирующий режим.

Обзор классов

EvIo extends EvWatcher {
/* Свойства */
public $fd ;
public $events ;
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public __construct ( mixed $fd , int $events , callable $callback [, mixed $data [, int $priority ]] )
final public static createStopped ( mixed $fd , int $events , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvIo
public set ( mixed $fd , int $events ) : void
/* Наследуемые методы */
public EvWatcher::clear ( void ) : int
abstract public EvWatcher::__construct ( void )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( void ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ([ bool $value ] ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( void ) : void
public EvWatcher::stop ( void ) : void
}

Свойства

fd

events

Содержание

  • EvIo::__construct — Создает объект наблюдатель EvIo
  • EvIo::createStopped — Создает остановленный объект наблюдателя EvIo
  • EvIo::set — Конфигурирование наблюдателя


Создает объект наблюдатель EvIo

  • « EvIo
  • EvIo::createStopped »
  • PHP Manual
  • EvIo
  • Создает объект наблюдатель EvIo

EvIo::__construct

(PECL ev >= 0.2.0)

EvIo::__construct — Создает объект наблюдатель EvIo

Описание

public EvIo::__construct ( mixed $fd , int $events , callable $callback [, mixed $data [, int $priority ]] )

Создает и автоматически стартует объект наблюдатель EvIo.

Список параметров

fd

Может быть потоком, открытым с помощью функции fopen() или аналогичной, числовым дескриптором файла или сокетом.

events

Ev::READ и/или Ev::WRITE . Смотрите битовые маски .

callback

Смотрите Callback-функции наблюдателей .

data

Произвольные данные, связанные с наблюдателем.

priority

Приоритет наблюдателя

Возвращаемые значения

В случае успешного выполнения возвращает объект EvIo.

Смотрите также

  • EvIo::createStopped() - Создает остановленный объект наблюдателя EvIo
  • EvLoop::io() - Создает объект наблюдателя EvIo, связанный с текущим экземпляром цикла событий


Создает остановленный объект наблюдателя EvIo

  • « EvIo::__construct
  • EvIo::set »
  • PHP Manual
  • EvIo
  • Создает остановленный объект наблюдателя EvIo

EvIo::createStopped

(PECL ev >= 0.2.0)

EvIo::createStopped — Создает остановленный объект наблюдателя EvIo

Описание

final public static EvIo::createStopped ( mixed $fd , int $events , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvIo

То же самое, что и EvIo::__construct() , но не происходит автоматического запуска наблюдателя.

Список параметров

fd

Смотрите EvIo::__construct()

events

Смотрите EvIo::__construct()

callback

Смотрите Callback-функции наблюдателей .

data

Произвольные данные, связанные с наблюдателем.

priority

Приоритет наблюдателя

Возвращаемые значения

В случае успешного выполнения возвращает объект EvIo.

Смотрите также

  • EvIo::__construct() - Создает объект наблюдатель EvIo
  • EvLoop::io() - Создает объект наблюдателя EvIo, связанный с текущим экземпляром цикла событий


Конфигурирование наблюдателя

  • « EvIo::createStopped
  • EvLoop »
  • PHP Manual
  • EvIo
  • Конфигурирование наблюдателя

EvIo::set

(PECL ev >= 0.2.0)

EvIo::set — Конфигурирование наблюдателя

Описание

public EvIo::set ( mixed $fd , int $events ) : void

Конфигурирование наблюдателя EvIo

Список параметров

fd

Смотрите EvIo::__construct()

events

Смотрите EvIo::__construct()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс EvLoop

(PECL ev >= 0.2.0)

Введение

Представляет событийный цикл, который всегда отличается от цикла по умолчанию. В отличие от цикла по умолчанию, он не может работать с наблюдателями EvChild.

Если доступна работа с потоками исполнения, то необходимо создать цикл для каждого потока используя в качестве родителя цикл по умолчанию.

Событийный цикл по умолчанию инициализируется автоматически с попощью Ev. Он доступен с помощью методов класса Ev или с помощью метода EvLoop::defaultLoop().

Обзор классов

final EvLoop {
/* Свойства */
public $data ;
public $backend ;
public $is_default_loop ;
public $iteration ;
public $pending ;
public $io_interval ;
public $timeout_interval ;
public $depth ;
/* Методы */
public backend ( void ) : int
final public check ( string $callback [, string $data [, string $priority ]] ) : EvCheck
final public child ( string $pid , string $trace , string $callback [, string $data [, string $priority ]] ) : EvChild
public __construct ([ int $flags [, mixed $data = NULL [, float $io_interval = 0.0 [, float $timeout_interval = 0.0 ]]]] )
public static defaultLoop ([ int $flags = Ev::FLAG_AUTO [, mixed $data = NULL [, float $io_interval = 0. [, float $timeout_interval = 0. ]]]] ) : EvLoop
final public embed ( string $other [, string $callback [, string $data [, string $priority ]]] ) : EvEmbed
final public fork ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvFork
final public idle ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvIdle
public invokePending ( void ) : void
final public io ( mixed $fd , int $events , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvIo
public loopFork ( void ) : void
public now ( void ) : float
public nowUpdate ( void ) : void
final public periodic ( float $offset , float $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvPeriodic
final public prepare ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvPrepare
public resume ( void ) : void
public run ([ int $flags = 0 ] ) : void
final public signal ( int $signum , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvSignal
final public stat ( string $path , float $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvStat
public stop ([ int $how ] ) : void
public suspend ( void ) : void
final public timer ( float $after , float $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvTimer
public verify ( void ) : void
}

Свойства

data

Произвольные данные, добавленные циклу

backend

Только чтение. Флаги бэкенда указывающие какой событийный юэкенд используется.

is_default_loop

Только чтение. Если TRUE, то это цикл по умолчани.

iteration

Текущий счетчик итераций. Смотри Ev::iteration()

pending

Количество ожидающих наблюдателей. 0 означает, что ожидающие наблюдатели отсутствуют.

io_interval

Более высокие значения io_interval позволяют libev тратить больше времени для сбора событий EvIo, что позволит обработать больше событий за одну итерацию заплатив за это увеличенными задержками. Таймауты (и EvPeriodic и EvTimer) не будут затронуты. Установка в ненулевое значение добавить дополнительный вызов sleep() в большинство итераций цикла. Время сна гарантирует, что libev не будет передавать события EvIo чаще, чем один раз за этот период, в среднем. Для большинства программ хорошим значением io_interval будет значение около 0.1, этого достаточно для большинства интерактивных серверов (не для игр). Обычно вы не заметите никакой разницы, если установите его меньше 0.01, так как это значение будет близко к минимальному интервалу вычисляемого времени для большинства систем.

Также читайте » ФУНКЦИИ УПРАВЛЕНИЯ СОБЫТИЙНЫМИ ЦИКЛАМИ.

timeout_interval

Более высокие значения timeout_interval позволят libev тратить больше времени для сбора таймаутов за счет увеличения задержек/джиттеров/неточностей (функция обратного вызова наблюдателя будет вызвана позже). Наблюдатели EvIo не будут затронуты. Увеличение этого значение не вызовет перерасхода ресурсов в libev. Также читайте » ФУНКЦИИ УПРАВЛЕНИЯ СОБЫТИЙНЫМИ ЦИКЛАМИ.

depth

Глубина рекурсии. Смотрите Ev::depth().

Содержание

  • EvLoop::backend — Возвращает целое число, описывающее бэкэнд, используемый libev
  • EvLoop::check — Создает объект EvCheck, связанный с текущим экземпляром цикла событий
  • EvLoop::child — Создает объект EvChild, связанный с текущим циклом событий
  • EvLoop::__construct — Конструктор объекта цикла событий
  • EvLoop::defaultLoop — Возвращает или создает цикл событий по умолчанию
  • EvLoop::embed — Создает экземпляр наблюдателя EvEmbed, связанный с текущим объектом EvLoop
  • EvLoop::fork — Создает объект наблюдателя EvFork, связанный с текущим экземпляром цикла событий
  • EvLoop::idle — Создает объект наблюдателя EvIdle, связанный с текущим экземпляром цикла событий
  • EvLoop::invokePending — Вызывает всех ожидающих наблюдателей при сбросе их отложенного состояния
  • EvLoop::io — Создает объект наблюдателя EvIo, связанный с текущим экземпляром цикла событий
  • EvLoop::loopFork — Вызывается после разветления
  • EvLoop::now — Возвращает текущее "event loop time"
  • EvLoop::nowUpdate — Устанавливает текущее время, запрашивая ядро, обновляя время, возвращаемое EvLoop::now в процессе
  • EvLoop::periodic — Создает объект наблюдателя EvPeriodic, связанный с текущим экземпляром цикла событий
  • EvLoop::prepare — Создает объект наблюдателя EvPrepare, связанный с текущим экземпляром цикла событий
  • EvLoop::resume — Возобновляет ранее приостановленный цикл событий
  • EvLoop::run — Проверяет события и вызывает callback-фукнции в цикле
  • EvLoop::signal — Создает объект наблюдателя EvSignal, связанный с текущим экземпляром цикла событий
  • EvLoop::stat — Создает объект наблюдателя EvStat, связанный с текущим экземпляром цикла событий
  • EvLoop::stop — Останавливает цикл событий
  • EvLoop::suspend — Приостанавливает цикл
  • EvLoop::timer — Создает объект наблюдателя EvTimer, связанный с текущим экземпляром цикла событий
  • EvLoop::verify — Выполняет внутренние проверки согласованности (для отладки)


Возвращает целое число, описывающее бэкэнд, используемый libev

  • « EvLoop
  • EvLoop::check »
  • PHP Manual
  • EvLoop
  • Возвращает целое число, описывающее бэкэнд, используемый libev

EvLoop::backend

(PECL ev >= 0.2.0)

EvLoop::backend — Возвращает целое число, описывающее бэкэнд, используемый libev

Описание

public EvLoop::backend ( void ) : int

То же, что Ev::backend(), но для экземпляра цикла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число, описывающее бэкэнд, используемый libev. Смотрите Ev::backend().

Смотрите также

  • Ev::backend() - Возвращает целое число, описывающее бекэнд, используемый libev


Создает объект EvCheck, связанный с текущим экземпляром цикла событий

  • « EvLoop::backend
  • EvLoop::child »
  • PHP Manual
  • EvLoop
  • Создает объект EvCheck, связанный с текущим экземпляром цикла событий

EvLoop::check

(PECL ev >= 0.2.0)

EvLoop::check — Создает объект EvCheck, связанный с текущим экземпляром цикла событий

Описание

final public EvLoop::check ( string $callback [, string $data [, string $priority ]] ) : EvCheck

Создает объект EvCheck, связанный с текущим экземпляром цикла событий.

Список параметров

Все параметры, что и для EvCheck::__construct()

Возвращаемые значения

Возвращает объект EvCheck в случае успешного выполнения.

Смотрите также

  • EvCheck::__construct() - Конструктор объекта EvCheck


Создает объект EvChild, связанный с текущим циклом событий

  • « EvLoop::check
  • EvLoop::__construct »
  • PHP Manual
  • EvLoop
  • Создает объект EvChild, связанный с текущим циклом событий

EvLoop::child

(PECL ev >= 0.2.0)

EvLoop::child — Создает объект EvChild, связанный с текущим циклом событий

Описание

final public EvLoop::child ( string $pid , string $trace , string $callback [, string $data [, string $priority ]] ) : EvChild

Создает объект EvChild, связанный с текущим циклом событий.

Список параметров

Все параметры, что и для EvChild::__construct()

Возвращаемые значения

Возвращает объект EvChild в случае успешного выполнения.

Смотрите также

  • EvChild::__construct() - Создает объект наблюдатель EvChild


Конструктор объекта цикла событий

  • « EvLoop::child
  • EvLoop::defaultLoop »
  • PHP Manual
  • EvLoop
  • Конструктор объекта цикла событий

EvLoop::__construct

(PECL ev >= 0.2.0)

EvLoop::__construct — Конструктор объекта цикла событий

Описание

public EvLoop::__construct ([ int $flags [, mixed $data = NULL [, float $io_interval = 0.0 [, float $timeout_interval = 0.0 ]]]] )

Конструктор объекта цикла событий.

Список параметров

flags

Один из флагов цикла событий

data

Пользовательские данные, связанные с циклом.

io_interval

Смотрите io_interval

timeout_interval

Смотрите timeout_interval

Возвращаемые значения

Возвращает новый объект EvLoop.

Смотрите также

  • EvLoop::defaultLoop() - Возвращает или создает цикл событий по умолчанию


Возвращает или создает цикл событий по умолчанию

  • « EvLoop::__construct
  • EvLoop::embed »
  • PHP Manual
  • EvLoop
  • Возвращает или создает цикл событий по умолчанию

EvLoop::defaultLoop

(PECL ev >= 0.2.0)

EvLoop::defaultLoop — Возвращает или создает цикл событий по умолчанию

Описание

public static EvLoop::defaultLoop ([ int $flags = Ev::FLAG_AUTO [, mixed $data = NULL [, float $io_interval = 0. [, float $timeout_interval = 0. ]]]] ) : EvLoop

Если цикл событий по умолчанию не создан, EvLoop::defaultLoop() создает его с указанными параметрами. В противном случае он просто возвращает объект, представляющий ранее созданный экземпляр, игнорируя все параметры.

Список параметров

flags

Один из флагов цикла событий

data

Пользовательские данные, связанные с циклом.

io_collect_interval

Смотрите io_interval

timeout_collect_interval

Смотрите timeout_interval

Возвращаемые значения

Возвращает объект EvLoop в случае успешного выполнения.

Смотрите также

  • EvLoop::__construct() - Конструктор объекта цикла событий


Создает экземпляр наблюдателя EvEmbed, связанный с текущим объектом EvLoop

  • « EvLoop::defaultLoop
  • EvLoop::fork »
  • PHP Manual
  • EvLoop
  • Создает экземпляр наблюдателя EvEmbed, связанный с текущим объектом EvLoop

EvLoop::embed

(PECL ev >= 0.2.0)

EvLoop::embed — Создает экземпляр наблюдателя EvEmbed, связанный с текущим объектом EvLoop

Описание

final public EvLoop::embed ( string $other [, string $callback [, string $data [, string $priority ]]] ) : EvEmbed

Создает экземпляр наблюдателя EvEmbed, связанный с текущим объектом EvLoop.

Список параметров

Все параметры, что и для EvEmbed::__construct() .

Возвращаемые значения

Возвращает объект EvEmbed в случае успешного выполнения.

Смотрите также

  • EvEmbed::__construct() - Конструктор объекта EvEmbed


Создает объект наблюдателя EvFork, связанный с текущим экземпляром цикла событий

  • « EvLoop::embed
  • EvLoop::idle »
  • PHP Manual
  • EvLoop
  • Создает объект наблюдателя EvFork, связанный с текущим экземпляром цикла событий

EvLoop::fork

(PECL ev >= 0.2.0)

EvLoop::fork — Создает объект наблюдателя EvFork, связанный с текущим экземпляром цикла событий

Описание

final public EvLoop::fork ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvFork

Создает объект наблюдателя EvFork, связанный с текущим экземпляром цикла событий

Список параметров

Все параметры, что и для EvFork::__construct()

Возвращаемые значения

Возвращает объект EvFork в случае успешного выполнения.

Смотрите также

  • EvFork::__construct() - Конструктор наблюдателя EvFork


Создает объект наблюдателя EvIdle, связанный с текущим экземпляром цикла событий

  • « EvLoop::fork
  • EvLoop::invokePending »
  • PHP Manual
  • EvLoop
  • Создает объект наблюдателя EvIdle, связанный с текущим экземпляром цикла событий

EvLoop::idle

(PECL ev >= 0.2.0)

EvLoop::idle — Создает объект наблюдателя EvIdle, связанный с текущим экземпляром цикла событий

Описание

final public EvLoop::idle ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvIdle

Создает объект наблюдателя EvIdle, связанный с текущим экземпляром цикла событий

Список параметров

Все параметры, что и для EvIdle::__construct()

Возвращаемые значения

Возвращает объект EvIdle в случае успешного выполнения.

Смотрите также

  • EvIdle::__construct() - Конструктор наблюдателя EvIdle


Вызывает всех ожидающих наблюдателей при сбросе их отложенного состояния

  • « EvLoop::idle
  • EvLoop::io »
  • PHP Manual
  • EvLoop
  • Вызывает всех ожидающих наблюдателей при сбросе их отложенного состояния

EvLoop::invokePending

(PECL ev >= 0.2.0)

EvLoop::invokePending — Вызывает всех ожидающих наблюдателей при сбросе их отложенного состояния

Описание

public EvLoop::invokePending ( void ) : void

Вызывает всех ожидающих наблюдателей при сбросе их отложенного состояния

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Создает объект наблюдателя EvIo, связанный с текущим экземпляром цикла событий

  • « EvLoop::invokePending
  • EvLoop::loopFork »
  • PHP Manual
  • EvLoop
  • Создает объект наблюдателя EvIo, связанный с текущим экземпляром цикла событий

EvLoop::io

(PECL ev >= 0.2.0)

EvLoop::io — Создает объект наблюдателя EvIo, связанный с текущим экземпляром цикла событий

Описание

final public EvLoop::io ( mixed $fd , int $events , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvIo

Создает объект наблюдателя EvIo, связанный с текущим экземпляром цикла событий

Список параметров

Все параметры, что и для EvIo::__construct()

Возвращаемые значения

Возвращает объект EvIo в случае успешного выполнения.

Смотрите также

  • EvIo::__construct() - Создает объект наблюдатель EvIo


Вызывается после разветления

  • « EvLoop::io
  • EvLoop::now »
  • PHP Manual
  • EvLoop
  • Вызывается после разветления

EvLoop::loopFork

(PECL ev >= 0.2.0)

EvLoop::loopFork — Вызывается после разветления

Описание

public EvLoop::loopFork ( void ) : void

Должен вызываться после разветвления в дочернем элементе, перед входом или продолжением цикла событий. Альтернативой является использование Ev::FLAG_FORKCHECK, которая вызывает эту функцию автоматически при некоторой потере производительности (см. » документацию libev).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает текущее "event loop time"

  • « EvLoop::loopFork
  • EvLoop::nowUpdate »
  • PHP Manual
  • EvLoop
  • Возвращает текущее "event loop time"

EvLoop::now

(PECL ev >= 0.2.0)

EvLoop::now — Возвращает текущее "event loop time"

Описание

public EvLoop::now ( void ) : float

Возвращает текущее "event loop time", то есть время, когда цикл событий получил события и начал их обрабатывать. Эта временная метка не изменяется, пока обрабатываются callback-функции, это также базовое время, используемое для относительных таймеров. Вы можете рассматривать его как метку времени происходящего события (или, вернее, когда libev узнает об этом).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает время цикла события в долях секунды.

Смотрите также

  • Ev::now() - Получить время запуска последней итерации цикла по умолчанию


Устанавливает текущее время, запрашивая ядро, обновляя время, возвращаемое EvLoop::now в процессе

  • « EvLoop::now
  • EvLoop::periodic »
  • PHP Manual
  • EvLoop
  • Устанавливает текущее время, запрашивая ядро, обновляя время, возвращаемое EvLoop::now в процессе

EvLoop::nowUpdate

(PECL ev >= 0.2.0)

EvLoop::nowUpdate — Устанавливает текущее время, запрашивая ядро, обновляя время, возвращаемое EvLoop::now в процессе

Описание

public EvLoop::nowUpdate ( void ) : void

Устанавливает текущее время, запрашивая ядро, обновляя время, возвращаемое EvLoop::now() в процессе. Это дорогостоящая операция, которая обычно выполняется автоматически в EvLoop::run().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvLoop::now() - Возвращает текущее "event loop time"
  • Ev::nowUpdate() - Устанавливает текущее время путем запроса к ядру в процессе обновляя время, возвращаемое Ev::now


Создает объект наблюдателя EvPeriodic, связанный с текущим экземпляром цикла событий

  • « EvLoop::nowUpdate
  • EvLoop::prepare »
  • PHP Manual
  • EvLoop
  • Создает объект наблюдателя EvPeriodic, связанный с текущим экземпляром цикла событий

EvLoop::periodic

(PECL ev >= 0.2.0)

EvLoop::periodic — Создает объект наблюдателя EvPeriodic, связанный с текущим экземпляром цикла событий

Описание

final public EvLoop::periodic ( float $offset , float $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvPeriodic

Создает объект наблюдателя EvPeriodic, связанный с текущим экземпляром цикла событий

Список параметров

Все параметры, что и для EvPeriodic::__construct()

Возвращаемые значения

Возвращает объект EvPeriodic в случае успешного выполнения.

Смотрите также

  • EvPeriodic::__construct() - Конструктор объекта наблюдателя EvPeriodic


Создает объект наблюдателя EvPrepare, связанный с текущим экземпляром цикла событий

  • « EvLoop::periodic
  • EvLoop::resume »
  • PHP Manual
  • EvLoop
  • Создает объект наблюдателя EvPrepare, связанный с текущим экземпляром цикла событий

EvLoop::prepare

(PECL ev >= 0.2.0)

EvLoop::prepare — Создает объект наблюдателя EvPrepare, связанный с текущим экземпляром цикла событий

Описание

final public EvLoop::prepare ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvPrepare

Создает объект наблюдателя EvPrepare, связанный с текущим экземпляром цикла событий

Список параметров

Все параметры, что и для EvPrepare()

Возвращаемые значения

Возвращает объект EvPrepare в случае успешного выполнения

Смотрите также

  • EvPrepare::__construct() - Конструктор наблюдателя EvPrepare


Возобновляет ранее приостановленный цикл событий

  • « EvLoop::prepare
  • EvLoop::run »
  • PHP Manual
  • EvLoop
  • Возобновляет ранее приостановленный цикл событий

EvLoop::resume

(PECL ev >= 0.2.0)

EvLoop::resume — Возобновляет ранее приостановленный цикл событий

Описание

public EvLoop::resume ( void ) : void

Методы EvLoop::suspend() и EvLoop::resume() приостанавливают и возобновляют цикл соответственно.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvLoop::suspend() - Приостанавливает цикл
  • Ev::resume() - Возобновить выполнение приостановленного ранее событийного цикла по умолчанию


Проверяет события и вызывает callback-фукнции в цикле

  • « EvLoop::resume
  • EvLoop::signal »
  • PHP Manual
  • EvLoop
  • Проверяет события и вызывает callback-фукнции в цикле

EvLoop::run

(PECL ev >= 0.2.0)

EvLoop::run — Проверяет события и вызывает callback-фукнции в цикле

Описание

public EvLoop::run ([ int $flags = 0 ] ) : void

Проверяет события и вызывает callback-функции для текущего цикла событий. Возвращает, когда обратный вызов вызывает метод Ev::stop(), или если флаги ненулевые (в этом случае возвращаемое значение будет true) или когда нет активных наблюдателей, которые ссылаются на цикл (EvWatcher::keepalive() имеет значение TRUE), в этом случае возвращаемое значение будет FALSE. Возвращаемое значение, как правило, можно интерпретировать так, как если бы оно было TRUE и осталось сделать еще много работы.

Список параметров

flags

Необязательный параметр flags может быть следующим:

Список возможных значений flags
flags | Описание
0 | Поведение по умолчанию, описанное выше
Ev::RUN_ONCE | Блокирует не более одного (ждет, но не зацикливает)
Ev::RUN_NOWAIT | Не блокирует ничего (извлекает/обрабатывает события, но не ждет)

Смотрите константы флага запуска .

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvLoop::stop() - Останавливает цикл событий
  • Ev::run() - Начать проверку наличия событий и вызов callback-функций цикла по умолчанию


Создает объект наблюдателя EvSignal, связанный с текущим экземпляром цикла событий

  • « EvLoop::run
  • EvLoop::stat »
  • PHP Manual
  • EvLoop
  • Создает объект наблюдателя EvSignal, связанный с текущим экземпляром цикла событий

EvLoop::signal

(PECL ev >= 0.2.0)

EvLoop::signal — Создает объект наблюдателя EvSignal, связанный с текущим экземпляром цикла событий

Описание

final public EvLoop::signal ( int $signum , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvSignal

Создает объект наблюдателя EvSignal, связанный с текущим экземпляром цикла событий

Список параметров

Все параметры, что и для EvSignal::__construct()

Возвращаемые значения

Возвращает объект EvSignal в случае успешного выполнения

Смотрите также

  • EvSignal::__construct() - Конструктор объекта наблюдателя EvSignal


Создает объект наблюдателя EvStat, связанный с текущим экземпляром цикла событий

  • « EvLoop::signal
  • EvLoop::stop »
  • PHP Manual
  • EvLoop
  • Создает объект наблюдателя EvStat, связанный с текущим экземпляром цикла событий

EvLoop::stat

(PECL ev >= 0.2.0)

EvLoop::stat — Создает объект наблюдателя EvStat, связанный с текущим экземпляром цикла событий

Описание

final public EvLoop::stat ( string $path , float $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvStat

Создает объект наблюдателя EvStat, связанный с текущим экземпляром цикла событий.

Список параметров

Все параметры, что и для EvSignal::__construct()

Возвращаемые значения

Возвращает объект EvStat в случае успешного выполнения

Смотрите также

  • EvSignal::__construct() - Конструктор объекта наблюдателя EvSignal


Останавливает цикл событий

  • « EvLoop::stat
  • EvLoop::suspend »
  • PHP Manual
  • EvLoop
  • Останавливает цикл событий

EvLoop::stop

(PECL ev >= 0.2.0)

EvLoop::stop — Останавливает цикл событий

Описание

public EvLoop::stop ([ int $how ] ) : void

Останавливает цикл событий

Список параметров

how

Одна из Ev::BREAK_* констант .

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvLoop::run() - Проверяет события и вызывает callback-фукнции в цикле
  • Ev::stop() - Остановить событийный цикл по умолчанию


Приостанавливает цикл

  • « EvLoop::stop
  • EvLoop::timer »
  • PHP Manual
  • EvLoop
  • Приостанавливает цикл

EvLoop::suspend

(PECL ev >= 0.2.0)

EvLoop::suspend — Приостанавливает цикл

Описание

public EvLoop::suspend ( void ) : void

Методы EvLoop::suspend() и EvLoop::resume() приостанавливают и возобновляют цикл соответственно.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvLoop::resume() - Возобновляет ранее приостановленный цикл событий
  • Ev::suspend() - Приостановить событийный цикл по умолчанию


Создает объект наблюдателя EvTimer, связанный с текущим экземпляром цикла событий

  • « EvLoop::suspend
  • EvLoop::verify »
  • PHP Manual
  • EvLoop
  • Создает объект наблюдателя EvTimer, связанный с текущим экземпляром цикла событий

EvLoop::timer

(PECL ev >= 0.2.0)

EvLoop::timer — Создает объект наблюдателя EvTimer, связанный с текущим экземпляром цикла событий

Описание

final public EvLoop::timer ( float $after , float $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvTimer

Создает объект наблюдателя EvTimer, связанный с текущим экземпляром цикла событий.

Список параметров

Все параметры, что и для EvTimer::__construct()

Возвращаемые значения

Возвращает объект EvTimer в случае успешного выполнения.

Смотрите также

  • EvTimer::__construct() - Конструктор объекта наблюдателя EvTimer


Выполняет внутренние проверки согласованности (для отладки)

  • « EvLoop::timer
  • EvPeriodic »
  • PHP Manual
  • EvLoop
  • Выполняет внутренние проверки согласованности (для отладки)

EvLoop::verify

(PECL ev >= 0.2.0)

EvLoop::verify — Выполняет внутренние проверки согласованности (для отладки)

Описание

public EvLoop::verify ( void ) : void

Выполняет внутренние проверки согласованности (для отладки libev) и прерывает программу, если обнаружены поврежденные структуры данных.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Ev::verify() - Производит внутренную проверку целосности(для отладки)


Класс EvPeriodic

(PECL ev >= 0.2.0)

Введение

Периодические наблюдатели также, своего рода, таймеры, но гораздо более непостоянные.

В отличие от EvTimer , наблюдатели EvPeriodic базируются не на реальном времени (или относительном времени, физически прошедшем), а на "системном" (том, которое показывается на ваших часах). Разница в том, что такое время может идти быстрее или медленнее "реального", или вообще скакать, в момент перехода на зимнее/летнее время или просто ручного изменения времени.

Наблюдатель EvPeriodicможно сконфигурировть на срабатывание после определенного времени. Например, если наблюдатель EvPeriodic сконфигурировн сработать "in 10 seconds" (т.е. EvLoop::now() + 10.0 секунд по "системному" времени, а не через 10 секунд!) и сразу после этого системное время сбросили на первое Января прошлого года, то наблюдатель сработает через год с прицепом, ровно в тот момент, когда системное время будет равно заданному. В то время как EvTimer просто сработает через 10 секунд после запуска.

Также как и с таймерами, callback-функция гарантированно сработает после наступления необходимого времени. Если несколько таймеров будут готовы сработать в одной и той же итерации событийного цикла, то первыми сработают те, которые должны сработать раньше по времени. (это более не распространяется на ситуации, когда callback-фугкции рекурсивно вызывают EvLoop::run()).

Обзор классов

EvPeriodic extends EvWatcher {
/* Свойства */
public $offset ;
public $interval ;
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public again ( void ) : void
public at ( void ) : float
public __construct ( float $offset , string $interval , callable $reschedule_cb , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public static createStopped ( float $offset , float $interval , callable $reschedule_cb , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvPeriodic
public set ( float $offset , float $interval ) : void
/* Наследуемые методы */
public EvWatcher::clear ( void ) : int
abstract public EvWatcher::__construct ( void )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( void ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ([ bool $value ] ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( void ) : void
public EvWatcher::stop ( void ) : void
}

Свойства

offset

При повторении этот параметр содержит значение смещения, в противном случае - абсолютное время (значение смещения передается в EvPeriodic::set() , хотя libev может его поменять для лучшей численной стабильности).

interval

Текущее значение интервала. Может быть изменено в любое время, но изменения вступят в силу только после срабатывания наблюдателя, либо при вызове EvPeriodic::again().

Содержание

  • EvPeriodic::again — Останавливает и снова запускает периодический наблюдатель
  • EvPeriodic::at — Возвращает абсолютное время, когда наблюдатель запустится в следующий раз
  • EvPeriodic::__construct — Конструктор объекта наблюдателя EvPeriodic
  • EvPeriodic::createStopped — Создает остановленный наблюдатель EvPeriodic
  • EvPeriodic::set — Настраивает наблюдателя


Останавливает и снова запускает периодический наблюдатель

  • « EvPeriodic
  • EvPeriodic::at »
  • PHP Manual
  • EvPeriodic
  • Останавливает и снова запускает периодический наблюдатель

EvPeriodic::again

(PECL ev >= 0.2.0)

EvPeriodic::again — Останавливает и снова запускает периодический наблюдатель

Описание

public EvPeriodic::again ( void ) : void

Останавливает и снова запускает периодический наблюдатель. Полезно только при изменении атрибутов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvTimer::again() - Перезапускает таймер наблюдателя


Возвращает абсолютное время, когда наблюдатель запустится в следующий раз

  • « EvPeriodic::again
  • EvPeriodic::__construct »
  • PHP Manual
  • EvPeriodic
  • Возвращает абсолютное время, когда наблюдатель запустится в следующий раз

EvPeriodic::at

(PECL ev >= 0.2.0)

EvPeriodic::at — Возвращает абсолютное время, когда наблюдатель запустится в следующий раз

Описание

public EvPeriodic::at ( void ) : float

Если наблюдатель активен, возвращает абсолютное время, когда наблюдатель запустится в следующий раз. Это не то же самое, что аргумент offset для EvPeriodic::set() или EvPeriodic::__construct(), он работает даже в интервальном режиме.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает абсолютное время, когда наблюдатель запустится в следующий раз в секундах


Конструктор объекта наблюдателя EvPeriodic

  • « EvPeriodic::at
  • EvPeriodic::createStopped »
  • PHP Manual
  • EvPeriodic
  • Конструктор объекта наблюдателя EvPeriodic

EvPeriodic::__construct

(PECL ev >= 0.2.0)

EvPeriodic::__construct — Конструктор объекта наблюдателя EvPeriodic

Описание

public EvPeriodic::__construct ( float $offset , string $interval , callable $reschedule_cb , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Создает объект наблюдателя EvPeriodic и запускает его автоматически. Метод EvPeriodic::createStopped() создает остановленный периодический наблюдатель.

Список параметров

offset

Смотрите Периодические режимы работы наблюдателя

interval

Смотрите Периодические режимы работы наблюдателя

reschedule_cb

Переназначить callback-функцию. Вы можете передать NULL. Смотрите Периодические режимы работы наблюдателя

callback

Смотрите Наблюдатели callback-фукнций .

data

Пользовательские данные, связанные с наблюдателем.

priority

Приоритет наблюдателя

Возвращаемые значения

Возвращает объект EvPeriodic в случае успешного выполнения.

Примеры

Пример #1 Периодический таймер. Используйте переназначение callback-функции

<?php
// отмечает каждые 10.5 секунд

function reschedule_cb ($watcher, $now) {
 return $now + (10.5. - fmod($now, 10.5));
}

$w = new EvPeriodic(0., 0., "reschedule_cb", function ($w, $revents) {
 echo time(), PHP_EOL;
});
Ev::run();
?>

Пример #2 Периодический таймер. Отмечает каждые 10,5 секунд, начиная с текущего момента

<?php
// Отмечает каждые 10.5 секунд, начиная с текущего момента
$w = new EvPeriodic(fmod(Ev::now(), 10.5), 10.5, NULL, function ($w, $revents) {
 echo time(), PHP_EOL;
});
Ev::run();
?>

Пример #3 Часовой наблюдатель

<?php
$hourly = EvPeriodic(0, 3600, NULL, function () {
 echo "раз в час\n";
});
?>

Смотрите также

  • Периодические режимы работы наблюдателя
  • EvTimer
  • EvPeriodic::createStopped() - Создает остановленный наблюдатель EvPeriodic


Создает остановленный наблюдатель EvPeriodic

  • « EvPeriodic::__construct
  • EvPeriodic::set »
  • PHP Manual
  • EvPeriodic
  • Создает остановленный наблюдатель EvPeriodic

EvPeriodic::createStopped

(PECL ev >= 0.2.0)

EvPeriodic::createStopped — Создает остановленный наблюдатель EvPeriodic

Описание

final public static EvPeriodic::createStopped ( float $offset , float $interval , callable $reschedule_cb , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvPeriodic

Создает остановленный наблюдатель EvPeriodic. В отличие от EvPeriodic::__construct(), этот метод не запускает наблюдателя автоматически.

Список параметров

offset

Смотрите Периодические режимы работы наблюдателя

interval

Смотрите Периодические режимы работы наблюдателя

reschedule_cb

Переназначить callback-функцию. Вы можете передать NULL. Смотрите Периодические режимы работы наблюдателя

callback

Смотрите Callback-функции наблюдателей .

data

Пользовательские данные, связанные с наблюдателем.

priority

Приоритет наблюдателей

Возвращаемые значения

Возвращает объект наблюдателя EvPeriodic в случае успешного выполнения.

Смотрите также

  • EvPeriodic::__construct() - Конструктор объекта наблюдателя EvPeriodic
  • EvTimer::createStopped() - Создает остановленный наблюдатель EvTimer


Настраивает наблюдателя

  • « EvPeriodic::createStopped
  • EvPrepare »
  • PHP Manual
  • EvPeriodic
  • Настраивает наблюдателя

EvPeriodic::set

(PECL ev >= 0.2.0)

EvPeriodic::set — Настраивает наблюдателя

Описание

public EvPeriodic::set ( float $offset , float $interval ) : void

Настраивает или перенастраивает EvPeriodic наблюдателя.

Список параметров

offset

То же, что и для EvPeriodic::__construct() . Смотрите Периодические режимы работы наблюдателя

interval

То же, что и для EvPeriodic::__construct() . Смотрите Периодические режимы работы наблюдателя

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс EvPrepare

(PECL ev >= 0.2.0)

Введение

Наблюдатели EvPrepare и EvCheck обычно используются в паре. Наблюдатель EvPrepare вызвается до блокировки процесса, затем вызывается EvCheck

Не разрешается вызывать EvLoop::run() или аналогичные методы или функции, введенные в текущий цикл событий другими наблюдателями EvPrepare или EvCheck. Однако другие циклы событий, не текущий, могут. Смысл в том, что текущему не нужно проверять рекурсию в таких наблюдателях, т.е. всегда будет последовательность: EvPrepare -> блокировка -> EvCheck, так что наблюдателя каждого вида всегда будут вызывать в парах, захватывая блокирующий вызов.

Основная цель заключается в интеграции других событийных механизмов в libev и улучшенное их использование. Они могут быть использованы, например, при отслеживании изменении переменных, при реализации пользовательских наблюдателей, при интегрировании NET-SNMP или сопрограмм библиотеки и многое другое. Они также иногда полезны при кешировании данных и при очистке данных до блокировки.

Рекомендуется устанавливать наблюдателям EvCheck наивысший приоритет (Ev::MAXPRI), чтобы обеспечить возможность их запуска раньше любых других наблюдателей после опроса (это не имеет значения для наблюдателей EvPrepare).

Кроме того, наблюдатели EvCheck не смогут активировать/подавать события. Пока libev полностью поддерживает все это, они могут выполняться раньше, чем другие наблюдатели EvCheck выполнят свою работу.

Обзор классов

EvPrepare extends EvWatcher {
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public __construct ( string $callback [, string $data [, string $priority ]] )
final public static createStopped ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvPrepare
/* Наследуемые методы */
public EvWatcher::clear ( void ) : int
abstract public EvWatcher::__construct ( void )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( void ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ([ bool $value ] ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( void ) : void
public EvWatcher::stop ( void ) : void
}

Содержание

  • EvPrepare::__construct — Конструктор наблюдателя EvPrepare
  • EvPrepare::createStopped — Создать объект класса EvPrepare, но не стартовать его


Конструктор наблюдателя EvPrepare

  • « EvPrepare
  • EvPrepare::createStopped »
  • PHP Manual
  • EvPrepare
  • Конструктор наблюдателя EvPrepare

EvPrepare::__construct

(PECL ev >= 0.2.0)

EvPrepare::__construct — Конструктор наблюдателя EvPrepare

Описание

public EvPrepare::__construct ( string $callback [, string $data [, string $priority ]] )

Создает объект наблюдатель EvPrepare и автоматически его стартует.

Список параметров

callback

Смотрите функции обратного вызова наблюдателей .

data

Произвольные данные, ассоциированные с наблюдателем.

priority

Приоритет наблюдателя

Возвращаемые значения

Возвращает объект EvPrepare.

Смотрите также

  • EvCheck


Создать объект класса EvPrepare, но не стартовать его

  • « EvPrepare::__construct
  • EvSignal »
  • PHP Manual
  • EvPrepare
  • Создать объект класса EvPrepare, но не стартовать его

EvPrepare::createStopped

(PECL ev >= 0.2.0)

EvPrepare::createStopped — Создать объект класса EvPrepare, но не стартовать его

Описание

final public static EvPrepare::createStopped ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvPrepare

То же самое, что и EvPrepare::__construct() , но не производит автоматического старта наблюдателя.

Список параметров

callback

Смотрите функции обратного вызова наблюдателей .

data

Произвольные данные, ассоциированные с наблюдателем

priority

Приоритет наблюдателя

Возвращаемые значения

Возвращает остановленный объект EvPrepare.

Смотрите также

  • EvPrepare::__construct() - Конструктор наблюдателя EvPrepare
  • EvWatcher::start() - Запускает наблюдателя


Класс EvSignal

(PECL ev >= 0.2.0)

Введение

Наблюдатель EvSignal создает событие когда процесс получает один или несколько конкретных сигналов. Так как сигналы приходят асинхронно, libev старается с этим бороться и доставлять их синхронно, т.е аналогично всем остальным событиям в нормальном режиме обработки.

Ограничений на количество наблюдателей за одним и тем же сигналом нет, но только в пределах одного событийного цикла. Например в цикле по умолчанию работает наблюдатель за SIGINT, а в другом цикле наблюдатель за SIGIO, но при этом нельзя наблюдать за SIGINT в двух циклах сразу. Ну и за SIGCHLD можно наблюдать только в цикле по умолчанию.

Если доступно и поддерживается, libev устанавливает свои обработчики с разрешенным поведением SA_RESTART (или аналогом), поэтому системные вызовы не будут некорректно прерываться. Если будут возникать проблемы с прерыванием системных вызовов сигналами, все сигналы можно блокировать в наблюдателе EvCheck и разблокировать в наблюдателе EvPrepare.

Обзор классов

EvSignal extends EvWatcher {
/* Свойства */
public $signum ;
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public __construct ( int $signum , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public static createStopped ( int $signum , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvSignal
public set ( int $signum ) : void
/* Наследуемые методы */
public EvWatcher::clear ( void ) : int
abstract public EvWatcher::__construct ( void )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( void ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ([ bool $value ] ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( void ) : void
public EvWatcher::stop ( void ) : void
}

Свойства

signum

Номер сигнала. Смотрите константы экспортированные расширением pcntl. Также смотрите man-страницу signal(7).

Содержание

  • EvSignal::__construct — Конструктор объекта наблюдателя EvSignal
  • EvSignal::createStopped — Create stopped EvSignal watcher object
  • EvSignal::set — Настройка наблюдателя


Конструктор объекта наблюдателя EvSignal

  • « EvSignal
  • EvSignal::createStopped »
  • PHP Manual
  • EvSignal
  • Конструктор объекта наблюдателя EvSignal

EvSignal::__construct

(PECL ev >= 0.2.0)

EvSignal::__construct — Конструктор объекта наблюдателя EvSignal

Описание

public EvSignal::__construct ( int $signum , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Создает объект наблюдатель EvSignal и автоматически его запускает. Для создания остановленного объекта наблюдателя используйте метод EvSignal::createStopped().

Список параметров

signum

Номер сигнала. Смотри константы расширения pcntl и документацию по signal(7).

callback

См. Функции обратного вызова наблюдателей .

data

Пользовательские данные, ассоциированые с наблюдателем.

priority

Приоритет наблюдателя

Возвращаемые значения

В случае успеха возвращает объект EvSignal.

Примеры

Пример #1 Обработка сигнала SIGTERM

<?php
$w = new EvSignal(SIGTERM, function ($watcher) {
    echo "SIGTERM received\n";
    $watcher->stop();
});

Ev::run();
?>

Смотрите также

  • EvSignal::createStopped() - Create stopped EvSignal watcher object


Create stopped EvSignal watcher object

  • « EvSignal::__construct
  • EvSignal::set »
  • PHP Manual
  • EvSignal
  • Create stopped EvSignal watcher object

EvSignal::createStopped

(PECL ev >= 0.2.0)

EvSignal::createStopped — Create stopped EvSignal watcher object

Описание

final public static EvSignal::createStopped ( int $signum , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvSignal

Создает остановленный объект наблюдатель EvSignal. В отличие от EvSignal::__construct(), этот метод не запускает созданного наблюдателя.

Список параметров

signum

Номер сигнала. Смотри константы расширения pcntl и документацию по signal(7).

callback

См. Функции обратного вызова наблюдателей .

data

Пользовательские данные, ассоциированые с наблюдателем.

priority

Приоритет наблюдателя

Возвращаемые значения

В случае успеха возвращает объект EvSignal.

Смотрите также

  • EvWatcher::start() - Запускает наблюдателя
  • EvSignal::__construct() - Конструктор объекта наблюдателя EvSignal


Настройка наблюдателя

  • « EvSignal::createStopped
  • EvStat »
  • PHP Manual
  • EvSignal
  • Настройка наблюдателя

EvSignal::set

(PECL ev >= 0.2.0)

EvSignal::set — Настройка наблюдателя

Описание

public EvSignal::set ( int $signum ) : void

Настраивает наблюдателя.

Список параметров

signum

Номер сигнала. Как описано в EvSignal::__construct()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс EvStat

(PECL ev >= 0.2.0)

Введение

EvStat наблюдает за изменением аттрибутов объект по заданному пути в файловой системе. Это достигается путем регулярного запуска stat() для этого пути (либо путем получения сигнала об изменении от операционной системы) и сравнение полученных данных с результатами предыдущего вызова. В случае обнаружения изменения аттрибутов вызывается callback-функция.

Путь не обязательно должден существовать в действительности. Изменение статуса с "путь существует" на "путь не существует" - это такое же изменение, как и любое другое. Состояние "путь не существует" определяется по значению 'nlink' равным 0 (которое возвращается методом EvStat::attr()).

Путь не должен оканчиваться слешем или содержать специальные компонеты, такие как '.' или ... Путь должен быть абсолютным. Если задать относительный путь и сменить рабочий каталог, то поведение будет неопределенным.

Так как нет переносимого интерфейса оповещения об изменениях, переносимая реализация просто вызывает stat() через равные промежутки времени и смотрит, не изменилось ли чего. Поэтому рекомендуется задавать интервал опроса. Если интервал опроса задан равным 0.0 (что крайне рекомендуется), то будет использоваться значение по умолчанию (которого никто не знает, но предполагается, что где-то около 5 секунд, но при этом может динамически меняться). libev имеет ограничение на минимальное значение интервала, которое сейчас равно приблизительно 0.1, но такой интервал - это стрельба из пушки по воробьям.

Не рекомендуется использовать большоре количество одновременно работающих наблюдателей EvStat, так как это может сильно повлиять на потребление ресурсов в связи с использованием механизмов оповещения операционной системы.

Обзор классов

EvStat extends EvWatcher {
/* Свойства */
public $path ;
public $interval ;
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public attr ( void ) : array
public __construct ( string $path , float $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public static createStopped ( string $path , float $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : void
public prev ( void ) : void
public set ( string $path , float $interval ) : void
public stat ( void ) : bool
/* Наследуемые методы */
public EvWatcher::clear ( void ) : int
abstract public EvWatcher::__construct ( void )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( void ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ([ bool $value ] ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( void ) : void
public EvWatcher::stop ( void ) : void
}

Свойства

interval

Только чтение. Показывает, насколько часто происходят опросы статуса и обычно равно 0.0, что позволяет libev самостоятельно определять интервал.

path

Только чтение. Путь, для которого отслеживаются изменения.

Содержание

  • EvStat::attr — Возвращает значения, недавно обнаруженные Ev
  • EvStat::__construct — Создает объект наблюдателя EvStat
  • EvStat::createStopped — Создает остановленный объект наблюдателя EvStat
  • EvStat::prev — Возвращает предыдущий набор значений, возвращаемых EvStat::attr
  • EvStat::set — Настраивает наблюдателя
  • EvStat::stat — Инициирует вызов статистики


Возвращает значения, недавно обнаруженные Ev

  • « EvStat
  • EvStat::__construct »
  • PHP Manual
  • EvStat
  • Возвращает значения, недавно обнаруженные Ev

EvStat::attr

(PECL ev >= 0.2.0)

EvStat::attr — Возвращает значения, недавно обнаруженные Ev

Описание

public EvStat::attr ( void ) : array

Возвращает значения, недавно обнаруженные Ev

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив со значениями, недавно обнаруженными Ev (без фактической stat):

Список ключей элементов массива, возвращаемых EvStat::attr()
Ключ | Описание
'dev' | идентификатор устройства, содержащего файл
'ino' | номер индекса
'mode' | режим защиты
'nlink' | количество жестких ссылок
'uid' | идентификатор пользователя владельца
'size' | общий размер, в байтах
'gid' | идентификатор группы владельца
'rdev' | идентификатор устройства (если это специальный файл)
'blksize' | размер блока для файловой системы ввода/вывода
'blocks' | количество выделенных блоков по 512B
'atime' | время последнего доступа
'ctime' | время последнего изменения статуса
'mtime' | время последнего изменения

Смотрите stat(2) справочную страницу для подробной информации.

Примеры

Пример #1 Отслеживаем изменения в /var/log/messages

<?php
// Используем 10-секундный интервал обновления.
$w = new EvStat("/var/log/messages", 8, function ($w) {
    echo "/var/log/messages изменен\n";

    $attr = $w->attr();

    if ($attr['nlink']) {
        printf("Текущий размер: %ld\n", $attr['size']);
        printf("Просмотрен: %ld\n", $attr['atime']);
        printf("Изменен: %ld\n", $attr['mtime']);
    } else {
        fprintf(STDERR, "`messages` файл отсутствует!");
        $w->stop();
    }
});

Ev::run();
?>

Смотрите также

  • EvStat::prev() - Возвращает предыдущий набор значений, возвращаемых EvStat::attr
  • EvStat::stat() - Инициирует вызов статистики


Создает объект наблюдателя EvStat

  • « EvStat::attr
  • EvStat::createStopped »
  • PHP Manual
  • EvStat
  • Создает объект наблюдателя EvStat

EvStat::__construct

(PECL ev >= 0.2.0)

EvStat::__construct — Создает объект наблюдателя EvStat

Описание

public EvStat::__construct ( string $path , float $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Создает объект наблюдателя EvStat и автоматически запускает наблюдателя.

Список параметров

path

Путь для ожидания изменения статуса.

interval

Подсказывает, как быстро ожидается обнаружение изменений, и его обычно указывается 0.0, чтобы позволить libev выбрать подходящее значение.

callback

Смотрите Наблюдатели обратного вызова .

data

Пользовательские данные, связанные с наблюдателем.

priority

Приоритет наблюдателя

Возвращаемые значения

Возвращает объект наблюдателя EvStat в случае успешного выполнения.

Примеры

Пример #1 Смотрим изменения в /var/log/messages

<?php
// Используем 10-секундный интервал обновления.
$w = new EvStat("/var/log/messages", 8, function ($w) {
 echo "/var/log/messages изменен\n";

 $attr = $w->attr();

 if ($attr['nlink']) {
  printf("Размер: %ld\n", $attr['size']);
  printf("Просмотрен: %ld\n", $attr['atime']);
  printf("Изменен: %ld\n", $attr['mtime']);
 } else {
  fprintf(STDERR, "`messages` файл не найден!");
  $w->stop();
 }
});

Ev::run();
?>


Создает остановленный объект наблюдателя EvStat

  • « EvStat::__construct
  • EvStat::prev »
  • PHP Manual
  • EvStat
  • Создает остановленный объект наблюдателя EvStat

EvStat::createStopped

(PECL ev >= 0.2.0)

EvStat::createStopped — Создает остановленный объект наблюдателя EvStat

Описание

final public static EvStat::createStopped ( string $path , float $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : void

Создает объект наблюдателя EvStat, но не запускает его автоматически (в отличие от EvStat::__construct()).

Список параметров

path

Путь для ожидания изменения статуса.

interval

Подсказывает, как быстро ожидается обнаружение изменений, и его обычно указывается 0.0, чтобы позволить libev выбрать подходящее значение.

callback

Смотрите Наблюдатели обратного вызова .

data

Пользовательские данные, связанные с наблюдателем.

priority

Приоритет наблюдателя

Возвращаемые значения

Возвращает остановленный объект наблюдателя EvStat в случае успешного выполнения.

Смотрите также

  • EvStat::__construct() - Создает объект наблюдателя EvStat
  • EvWatcher::start() - Запускает наблюдателя


Возвращает предыдущий набор значений, возвращаемых EvStat::attr

  • « EvStat::createStopped
  • EvStat::set »
  • PHP Manual
  • EvStat
  • Возвращает предыдущий набор значений, возвращаемых EvStat::attr

EvStat::prev

(PECL ev >= 0.2.0)

EvStat::prev — Возвращает предыдущий набор значений, возвращаемых EvStat::attr

Описание

public EvStat::prev ( void ) : void

Как и EvStat::attr() , но возвращает предыдущий набор значений.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с той же структурой, что и массив, возвращаемый EvStat::attr(). Массив содержит предыдущий набор значений.

Смотрите также

  • EvStat::attr() - Возвращает значения, недавно обнаруженные Ev
  • EvStat::stat() - Инициирует вызов статистики


Настраивает наблюдателя

  • « EvStat::prev
  • EvStat::stat »
  • PHP Manual
  • EvStat
  • Настраивает наблюдателя

EvStat::set

(PECL ev >= 0.2.0)

EvStat::set — Настраивает наблюдателя

Описание

public EvStat::set ( string $path , float $interval ) : void

Настраивает наблюдателя.

Список параметров

path

Путь для ожидания изменения статуса.

interval

Подсказывает, как быстро ожидается обнаружение изменений, и его обычно указывается 0.0, чтобы позволить libev выбрать подходящее значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Инициирует вызов статистики

  • « EvStat::set
  • EvTimer »
  • PHP Manual
  • EvStat
  • Инициирует вызов статистики

EvStat::stat

(PECL ev >= 0.2.0)

EvStat::stat — Инициирует вызов статистики

Описание

public EvStat::stat ( void ) : bool

Инициирует вызов статистики (обновляет внутренний кеш). Определяет (используя lstat) path, указанный в наблюдателе, и устанавливает найденные значения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если path существует. В противном случае FALSE.

Смотрите также

  • EvStat::attr() - Возвращает значения, недавно обнаруженные Ev
  • EvStat::prev() - Возвращает предыдущий набор значений, возвращаемых EvStat::attr


Класс EvTimer

(PECL ev >= 0.2.0)

Введение

Наблюдатели EvTimer - это обычные относительные таймеры, которые создают событие через заданное время и, опционально, переодически повторяют его через заданные интервалы времени.

Таймеры базируются на реальном времени, то есть если задать таймер с повторами раз в час и сбросить системные часы на Январь прошлого года, то таймер будет так-же срабатывать через(грубо) час. "Грубо" потому, что отследить скачки времени достаточно сложно и некоторые неточности неизбежны.

Callback-функция гарантированно запустится только после того, как пройдет заданный таймаут (не ровно в тот же момент, на системах с часами с низким разрешением могут наблюдаться небольшие задержки). Если несколько таймеров будут готовы сработать в одну и ту же итерацию событийного цикла, то callback-функции наблюдателей бцдцт запущены в порядке времени срабатывания и с учетом приоритета (но это не работает, если callback-функции вызывают EvLoop::run() рекурсивно).

Сами по себе таймеры стараются всеми силами избежать накапливания ошибки, то есть если таймер сконфигурирован срабатывать каждые 10 секунд, то обычно он срабатывает точно с 10 секундным интервалом. Однако, если скрипт не поспевает за таймером, поскольку его работа занимает более 10 секунд, то таймер сработает не чаще чем один раз за итерацию событийного цикла.

Обзор классов

EvTimer extends EvWatcher {
/* Свойства */
public $repeat ;
public $remaining ;
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public again ( void ) : void
public __construct ( float $after , float $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public static createStopped ( float $after , float $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvTimer
public set ( float $after , float $repeat ) : void
/* Наследуемые методы */
public EvWatcher::clear ( void ) : int
abstract public EvWatcher::__construct ( void )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( void ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ([ bool $value ] ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( void ) : void
public EvWatcher::stop ( void ) : void
}

Свойства

repeat

Если равно 0.0, то таймер автоматически остановится, когда истечет таймаут. Если больше нуля, то таймер автоматически перейдет в режим бесконечного повторения через заданные интервалы, пока вы его самостоятельно не остановите.

remaining

Возвращает время, оставшееся до срабатывания таймера. Если таймер активен, то данное время будет считаться относительно времени текущего событийного цикла, а если таймер не активен, то оно будет равно сконфигурированному значению таймаута.

То есть, после того, как создан экземпляр EvTimer с after равным 5.0 и repeat равным 7.0, remaining вернет 5.0. Когда таймер запустится и пройдет 1 секунда, remaining вернет 4.0. когда таймер истечет и будет перезапущен, будет "грубо" возвращено 7.0 (обычно чуть меньше, так как запуск callback-функции занимает время) и т.д.

Содержание

  • EvTimer::again — Перезапускает таймер наблюдателя
  • EvTimer::__construct — Конструктор объекта наблюдателя EvTimer
  • EvTimer::createStopped — Создает остановленный наблюдатель EvTimer
  • EvTimer::set — Настраивает наблюдателя


Перезапускает таймер наблюдателя

  • « EvTimer
  • EvTimer::__construct »
  • PHP Manual
  • EvTimer
  • Перезапускает таймер наблюдателя

EvTimer::again

(PECL ev >= 0.2.0)

EvTimer::again — Перезапускает таймер наблюдателя

Описание

public EvTimer::again ( void ) : void

Будет действовать так, как если бы таймер отключился и перезапустился снова, если он повторяется. Точная семантика:

  1. если таймер находится в режиме ожидания, его статус ожидания очищается.

  2. если таймер запущен, но не повторяется, останавливает его (как если бы он истек).

  3. если таймер повторяется, либо запускает его, при необходимости (со значением repeat), либо сбрасывает таймер запуска на значение repeat.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvWatcher::stop() - Останавливает наблюдателя


Конструктор объекта наблюдателя EvTimer

  • « EvTimer::again
  • EvTimer::createStopped »
  • PHP Manual
  • EvTimer
  • Конструктор объекта наблюдателя EvTimer

EvTimer::__construct

(PECL ev >= 0.2.0)

EvTimer::__construct — Конструктор объекта наблюдателя EvTimer

Описание

public EvTimer::__construct ( float $after , float $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Конструктор объекта наблюдателя EvTimer.

Список параметров

after

Настраивает таймер для запуска через after секунд.

repeat

Если время повтора равно 0.0, то он будет автоматически остановлен после истечения времени ожидания. Если положительное, таймер будет автоматически настроен на повторный запуск каждые повторяющиеся секунды, пока не будет остановлен вручную.

callback

Смотрите Наблюдатели callback-функций .

data

Пользовательские данные, связанные с наблюдателем.

priority

Приоритет наблюдателя

Возвращаемые значения

Возвращает объект EvTimer в случае успешного выполнения.

Примеры

Пример #1 Простые таймеры

<?php
// Создает и запускает таймер через 2 секунды
$w1 = new EvTimer(2, 0, function () {
    echo "2 секунды прошло\n";
});

// Создает и запускает таймер через 2 секунды, повторяя каждую секунду
// пока мы не остановим его вручную
$w2 = new EvTimer(2, 1, function ($w) {
    echo "вызывается каждую секунду, запускается через 2 секунды\n";
    echo "итерация = ", Ev::iteration(), PHP_EOL;

    // Останавливаем наблюдателя после 5 итераций
    Ev::iteration() == 5 and $w->stop();
    // Останавливаем наблюдателя, если дальнейшие вызовы вызовут более 10 итераций
    Ev::iteration() >= 10 and $w->stop();
});

// Создаем остановленный таймер. Он будет неактивным, пока мы не запустим его сами
$w_stopped = EvTimer::createStopped(10, 5, function($w) {
    echo "Callback-функция таймера, созданного как остановленный\n";

    // Останавливаем наблюдателя после 2 итераций
    Ev::iteration() >= 2 and $w->stop();
});

// Цикл до вызова Ev::stop() или остановки всех наблюдателей
Ev::run();

// Запускаем и смотрим, работает ли он
$w_stopped->start();
echo "Запустили одну итерацию\n";
Ev::run(Ev::RUN_ONCE);

echo "Перезапустили второй наблюдатель и пробуем обработать те же события, но не блокируем\n";
$w2->again();
Ev::run(Ev::RUN_NOWAIT);

$w = new EvTimer(10, 0, function() {});
echo "Запуск заблокированного цикла\n";
Ev::run();
echo "END\n";
?>

Результатом выполнения данного примера будет что-то подобное:

2 секунды прошло
вызывается каждую секунду, запускается через 2 секунды
итерация = 1
вызывается каждую секунду, запускается через 2 секунды
итерация = 2
вызывается каждую секунду, запускается через 2 секунды
итерация = 3
вызывается каждую секунду, запускается через 2 секунды
итерация = 4
вызывается каждую секунду, запускается через 2 секунды
итерация = 5
Запустили одну итерацию
Callback-функция таймера, созданного как остановленный
Перезапустили второй наблюдатель и пробуем обработать те же события, но не блокируем
Запуск заблокированного цикла
вызывается каждую секунду, запускается через 2 секунды
итерация = 8
вызывается каждую секунду, запускается через 2 секунды
итерация = 9
итерация каждую секунду, запускается через 2 секунды
итерация = 10
END

Смотрите также

  • EvTimer::createStopped() - Создает остановленный наблюдатель EvTimer
  • EvPeriodic
  • » ev_timer - относительные и необязательно повторяющиеся таймауты
  • » Будьте осторожны с таймаутами


Создает остановленный наблюдатель EvTimer

  • « EvTimer::__construct
  • EvTimer::set »
  • PHP Manual
  • EvTimer
  • Создает остановленный наблюдатель EvTimer

EvTimer::createStopped

(PECL ev >= 0.2.0)

EvTimer::createStopped — Создает остановленный наблюдатель EvTimer

Описание

final public static EvTimer::createStopped ( float $after , float $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] ) : EvTimer

Создает остановленный наблюдатель EvTimer. В отличие от EvTimer::__construct(), этот метод не запускает наблюдателя автоматически.

Список параметров

after

Настраивает таймер для запуска через after секунд.

repeat

Если время повтора равно 0.0, то он будет автоматически остановлен после истечения времени ожидания. Если положительное, таймер будет автоматически настроен на повторный запуск каждые повторяющиеся секунды, пока не будет остановлен вручную.

callback

Смотрите Наблюдатели callback-функций .

data

Пользовательские данные, связанные с наблюдателем.

priority

Приоритет наблюдателя

Возвращаемые значения

Возвращает объект наблюдателя EvTimer в случае успешного выполнения.

Примеры

Пример #1 Следим за изменениями /var/log/messages. Избегаем пропущенные обновления с задержкой в одну секунду

<?php
$timer = EvTimer::createStopped(0., 1.02, function ($w) {
    $w->stop();

    $stat = $w->data;

    // 1 секунда после последнего изменения файла
    printf("Текущий размер: %ld\n", $stat->attr()['size']);
});

$stat = new EvStat("/var/log/messages", 0., function () use ($timer) {
    // Сброс таймера наблюдателя
    $timer->again();
});

$timer->data = $stat;

Ev::run();
?>

Смотрите также

  • EvTimer::__construct() - Конструктор объекта наблюдателя EvTimer
  • EvPeriodic


Настраивает наблюдателя

  • « EvTimer::createStopped
  • EvWatcher »
  • PHP Manual
  • EvTimer
  • Настраивает наблюдателя

EvTimer::set

(PECL ev >= 0.2.0)

EvTimer::set — Настраивает наблюдателя

Описание

public EvTimer::set ( float $after , float $repeat ) : void

Настраивает наблюдателя

Список параметров

after

Настраивает таймер для запуска через after секунд.

repeat

Если время повтора равно 0.0, то он будет автоматически остановлен после истечения времени ожидания. Если положительное, таймер будет автоматически настроен на повторный запуск каждые повторяющиеся секунды, пока не будет остановлен вручную.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс EvWatcher

(PECL ev >= 0.2.0)

Введение

EvWatcher является базовым классом для всех наблюдателей( EvCheck, EvChild и т.д.). Так как конструктор EvWatcher имеет модификатор abstract, вы не должны (и не сможете) создавать объекты этого класса напрямую.

Обзор классов

abstract EvWatcher {
/* Свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public clear ( void ) : int
abstract public __construct ( void )
public feed ( int $revents ) : void
public getLoop ( void ) : EvLoop
public invoke ( int $revents ) : void
public keepalive ([ bool $value ] ) : bool
public setCallback ( callable $callback ) : void
public start ( void ) : void
public stop ( void ) : void
}

Свойства

is_active

Только чтение. Если наблюдатель активен, то TRUE, если нет, то FALSE.

data

Произвольные пользовательские данные.

is_pending

Только чтение. если наблюдатель в режиме ожидания, то есть имеет неразобранные сообщения, а callback-функция еще не запускалась, то TRUE. В противном случае FALSE. Пока наблюдатель находится в режиме ожидания (но не активен), вы не должны изменять его приоритет.

priority

Целое число в диапазоне от Ev::MINPRI до Ev::MAXPRI. Ожидающие наблюдатели с более высоким приоритетом будут вызваны раньше наблюдателей с более низким приоритетом, но приоритет не будет препятствовать запуску наблюдателя (за исключением наблюдателей EvIdle). Наблюдатели EvIdle предоставляют функционал, предотвращающий вызов, если есть ожидающие высокоприоритетные сообщения.

Содержание

  • EvWatcher::clear — Очистить статус ожидания наблюдателя
  • EvWatcher::__construct — Абстрактный конструктор объекта наблюдателя
  • EvWatcher::feed — Подает указанные события в цикл событий
  • EvWatcher::getLoop — Возвращает цикл, отвечающий за наблюдателя
  • EvWatcher::invoke — Вызывает callback-функцию наблюдателя с заданной битовой маской принятых событий
  • EvWatcher::keepalive — Настраивает, будет ли возвращаться цикл
  • EvWatcher::setCallback — Устанавливает новую callback-функцию для наблюдателя
  • EvWatcher::start — Запускает наблюдателя
  • EvWatcher::stop — Останавливает наблюдателя


Очистить статус ожидания наблюдателя

  • « EvWatcher
  • EvWatcher::__construct »
  • PHP Manual
  • EvWatcher
  • Очистить статус ожидания наблюдателя

EvWatcher::clear

(PECL ev >= 0.2.0)

EvWatcher::clear — Очистить статус ожидания наблюдателя

Описание

public EvWatcher::clear ( void ) : int

Если наблюдатель находится в состоянии pending, этот метод очищает его состояние ожидания и возвращает его битовый набор revents (как если бы была вызвана его callback-функция). Если наблюдатель не в состоянии ожидания, он ничего не делает и возвращает 0.

Иногда может быть полезно "опросить" наблюдателя, а не ждать его callback-функцию, что может быть выполнено с помощью этой функции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае, если наблюдатель находится в состоянии ожидания, возвращает битовый набор revents, как если бы была вызвана callback-функция наблюдателя. В противном случае возвращает 0.


Абстрактный конструктор объекта наблюдателя

  • « EvWatcher::clear
  • EvWatcher::feed »
  • PHP Manual
  • EvWatcher
  • Абстрактный конструктор объекта наблюдателя

EvWatcher::__construct

(PECL ev >= 0.2.0)

EvWatcher::__construct — Абстрактный конструктор объекта наблюдателя

Описание

abstract public EvWatcher::__construct ( void )

EvWatcher::__construct() является абстрактным конструктором объекта наблюдателя, реализованного в производных классах.


Подает указанные события в цикл событий

  • « EvWatcher::__construct
  • EvWatcher::getLoop »
  • PHP Manual
  • EvWatcher
  • Подает указанные события в цикл событий

EvWatcher::feed

(PECL ev >= 0.2.0)

EvWatcher::feed — Подает указанные события в цикл событий

Описание

public EvWatcher::feed ( int $revents ) : void

Подает указанные события в цикл событий, как если бы указанное событие произошло для наблюдателя.

Список параметров

revents

Битовая маска наблюдателя принятых событий .

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает цикл, отвечающий за наблюдателя

  • « EvWatcher::feed
  • EvWatcher::invoke »
  • PHP Manual
  • EvWatcher
  • Возвращает цикл, отвечающий за наблюдателя

EvWatcher::getLoop

(PECL ev >= 0.2.0)

EvWatcher::getLoop — Возвращает цикл, отвечающий за наблюдателя

Описание

public EvWatcher::getLoop ( void ) : EvLoop

Возвращает цикл, отвечающий за наблюдателя

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект цикла событий EvLoop, отвечающий за наблюдателя.


Вызывает callback-функцию наблюдателя с заданной битовой маской принятых событий

  • « EvWatcher::getLoop
  • EvWatcher::keepalive »
  • PHP Manual
  • EvWatcher
  • Вызывает callback-функцию наблюдателя с заданной битовой маской принятых событий

EvWatcher::invoke

(PECL ev >= 0.2.0)

EvWatcher::invoke — Вызывает callback-функцию наблюдателя с заданной битовой маской принятых событий

Описание

public EvWatcher::invoke ( int $revents ) : void

Вызывает callback-функцию наблюдателя с заданной битовой маской принятых событий.

Список параметров

revents

Битовая маска наблюдателя принятых событий.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Настраивает, будет ли возвращаться цикл

  • « EvWatcher::invoke
  • EvWatcher::setCallback »
  • PHP Manual
  • EvWatcher
  • Настраивает, будет ли возвращаться цикл

EvWatcher::keepalive

(PECL ev >= 0.2.0)

EvWatcher::keepalive — Настраивает, будет ли возвращаться цикл

Описание

public EvWatcher::keepalive ([ bool $value ] ) : bool

Настраивает, будет ли возвращаться цикл. Если value поддержания установлено FALSE, наблюдатель не будет препятствовать возврату Ev::run() / EvLoop::run(), даже если наблюдатель активен.

Наблюдатели по умолчанию имеют value поддержания TRUE.

Очистка статуса поддержания полезна при возврате из Ev::run() / EvLoop::run() только потому, что наблюдатель нежелателен. Это может быть долго работающий наблюдатель UDP-сокета или около того.

Список параметров

value

Если value поддержания установлено FALSE, наблюдатель не будет препятствовать возврату Ev::run() / EvLoop::run(), даже если наблюдатель активен.

Возвращаемые значения

Возвращает предыдущее состояние.

Примеры

Пример #1 Регистрируем наблюдатель ввода-вывода для какого-либо UDP-сокета, но не препятствуем запуску цикла событий только из-за этого наблюдателя.

<?php
$udp_socket = ...
$udp_watcher = new EvIo($udp_socket, Ev::READ, function () { /* ... */ });
$udp_watcher->keepalive(FALSE);
?>


Устанавливает новую callback-функцию для наблюдателя

  • « EvWatcher::keepalive
  • EvWatcher::start »
  • PHP Manual
  • EvWatcher
  • Устанавливает новую callback-функцию для наблюдателя

EvWatcher::setCallback

(PECL ev >= 0.2.0)

EvWatcher::setCallback — Устанавливает новую callback-функцию для наблюдателя

Описание

public EvWatcher::setCallback ( callable $callback ) : void

Устанавливает новую callback-функцию для наблюдателя

Список параметров

callback

Смотрите callback-функции наблюдателей .

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Запускает наблюдателя

  • « EvWatcher::setCallback
  • EvWatcher::stop »
  • PHP Manual
  • EvWatcher
  • Запускает наблюдателя

EvWatcher::start

(PECL ev >= 0.2.0)

EvWatcher::start — Запускает наблюдателя

Описание

public EvWatcher::start ( void ) : void

Отмечает наблюдателя как активного. Обратите внимание, что только активные наблюдатели будут получать события.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvWatcher::stop() - Останавливает наблюдателя


Останавливает наблюдателя

  • « EvWatcher::start
  • Expect »
  • PHP Manual
  • EvWatcher
  • Останавливает наблюдателя

EvWatcher::stop

(PECL ev >= 0.2.0)

EvWatcher::stop — Останавливает наблюдателя

Описание

public EvWatcher::stop ( void ) : void

Отмечает наблюдателя как неактивного. Обратите внимание, что только активные наблюдатели будут получать события.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvWatcher::start() - Запускает наблюдателя


Expect

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Примеры использования Expect
  • Функции Expect
    • expect_expectl — Ожидает, пока вывод потока не совпадет с одним из шаблонов, либо пока не закончится максимальное время ожидания, либо вернется EOF
    • expect_popen — Запускает команду через командную оболочку Bourne и открывает для процесса поток PTY


Введение

Этот модуль позволяет взаимодействовать с процессами через PTY. Вы можете использовать обертку expect:// с функциями файловой системы, которые обеспечивают более простой и интуитивно понятный интерфейс.


Требования

Этот модуль использует библиотеку » expect. Необходима библиотека libexpect версии >= 5.43.0.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/expect.

Для использования этого модуля вам необходимо собрать PHP с опцией --with-expect[=DIR] .

Для использования в Windows нужно разрешить php_expect.dll в php.ini. DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Для настройки модуля используйте нижеперечисленные опции конфигурационного файла php.ini.

Опции настройки Expect
Имя | По умолчанию | Место изменения | Список изменений
expect.timeout | "10" | PHP_INI_ALL |
expect.loguser | "1" | PHP_INI_ALL |
expect.logfile | "" | PHP_INI_ALL |
expect.match_max | "" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

expect.timeout integer

Максимальное время ожидания данных при использовании функции expect_expectl().

Значение "-1" задает вечное ожидание.

Замечание:

Значение "0" означает, что функция expect_expectl() завершится сразу.

expect.loguser boolean

Определяет, будет ли порожденный процесс производить вывод в поток stdout. Так как интерактивные программы обычно дублируют пользовательский ввод, обычно нужно разрешать эту опцию, чтобы взаимодействие было осознанным.

expect.logfile string

Имя файла, куда будет писаться вывод порожденного процесса. Если файл не существует, он будет создан.

Замечание:

Если этой опции присвоено какое-либо не пустое значение, то вывод будет писаться в файл вне зависимости от настройки expect.loguser.

expect.match_max integer

Изменяет размер буфера (по умолчанирю 2000 байт) используемого для поиска символа звездочки в шаблонах.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

expect_popen() возвращает открытый поток PTY используемый expect_expectl().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

EXP_GLOB (integer)
Указывает, что шаблон является шаблоном поиска файла (glob).
EXP_EXACT (integer)
Указывает, что шаблон является точной строкой.
EXP_REGEXP (integer)
Указывает, что шаблон является регулярным выражением.
EXP_EOF (integer)
Значение, возвращаемое expect_expectl(), когда достигнут конец файла.
EXP_TIMEOUT (integer)
Значение, возвращаемое expect_expectl() после исчерпания времени ожидания, заданного в expect.timeout
EXP_FULLBUFFER (integer)
Значение, возвращаемое expect_expectl(), когда совпадений с шаблоном не найдено.


  • « Предопределенные константы
  • Примеры использования Expect »
  • PHP Manual
  • Expect
  • Примеры

Примеры

Содержание

  • Примеры использования Expect


Примеры использования Expect

Пример #1 Пример использования Expect

В этом примере мы соединимся с удаленным хостом по SSH, и напечатаем время непрерываной работы сервера.

<?php
ini_set("expect.loguser", "Off");

$stream = fopen("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 ("Ошибка соединения с удаленным сервером!\n");
}

while ($line = fgets($stream)) {
      print $line;
}
fclose ($stream);
?>

В следующем примере мы соединимся с удаленным сервером, узнаем разрядность его операционной системы и запустим обновления указанного пакета.

Пример #2 Еще один пример использования Expect

<?php
ini_set("expect.timeout", -1);
ini_set("expect.loguser", "Off");

$stream = expect_popen("ssh root@remotehost");

while (true) {
    switch (expect_expectl ($stream, array (
            array ("password:", PASSWORD), // SSH запрашивает пароль
            array ("yes/no)?", YESNO), // SSH спрашивает, сохранять ли запись хоста
            array ("~$ ", SHELL, EXP_EXACT), // Мы получили доступ к коммандной оболочке!
    ))) {
        case PASSWORD:
            fwrite ($stream, "secret\n");
            break;

        case YESNO:
            fwrite ($stream, "yes\n");
            break;

        case SHELL:
            fwrite ($stream, "uname -a\n");
            while (true) {
                    switch (expect_expectl ($stream, array (
                            array ("~$ ", SHELL, EXP_EXACT), // Мы получили доступ к коммандной оболочке!
                            array ("^Linux.*$", UNAME, EXP_REGEXP), // вывод uname -a
                    ), $match)) {
                        case UNAME:
                            $uname .= $match[0];
                            break;

                        case SHELL:
                            // Run update:
                            if (strstr ($uname, "x86_64")) {
                                    fwrite ($stream, "rpm -Uhv http://mirrorsite/somepath/some_64bit.rpm\n");
                            } else {
                                    fwrite ($stream, "rpm -Uhv http://mirrorsite/somepath/some_32bit.rpm\n");
                            }
                            fwrite ($stream, "exit\n");
                            break 2;

                        case EXP_TIMEOUT:
                        case EXP_EOF:
                            break 2;

                        default:
                            die ("Случилась ошибка!\n");
                    }
            }
            break 2;

        case EXP_TIMEOUT:
        case EXP_EOF:
            break 2;

        default:
            die ("Случилась ошибка!\n");
    }
}

fclose ($stream);
?>


Функции Expect

Содержание

  • expect_expectl — Ожидает, пока вывод потока не совпадет с одним из шаблонов, либо пока не закончится максимальное время ожидания, либо вернется EOF
  • expect_popen — Запускает команду через командную оболочку Bourne и открывает для процесса поток PTY


Ожидает, пока вывод потока не совпадет с одним из шаблонов, либо пока не закончится максимальное время ожидания, либо вернется EOF

  • « Функции Expect
  • expect_popen »
  • PHP Manual
  • Функции Expect
  • Ожидает, пока вывод потока не совпадет с одним из шаблонов, либо пока не закончится максимальное время ожидания, либо вернется EOF

expect_expectl

(PECL expect >= 0.1.0)

expect_expectl — Ожидает, пока вывод потока не совпадет с одним из шаблонов, либо пока не закончится максимальное время ожидания, либо вернется EOF

Описание

expect_expectl ( resource $expect , array $cases [, array &$match ] ) : int

Ожидает, пока вывод потока не совпадет с одним из шаблонов, либо пока не закончится максимальное время ожидания, либо вернется EOF.

Если задан параметр match, то он заполняется с результатами поиска. Совпавшая строка будет сохранена в match[0]. Совпавшие подстроки (в зависимости от скобок) в оригинальном шаблоне будут сохранены в match[1], match[2], вплоть до match[9] (ограничения libexpect).

Список параметров

expect

Поток Expect, открытый с помощью expect_popen().

cases

Массив ожидаемых значений. Каждое ожидаемое значение представляет из себя индексированный массив, описанный в этой таблице:

Expect Case Array
Индекс | Тип значения | Описание | Обязательный | Значение по умолчанию
0 | string | шаблон, который будет сравниваться с потоком вывода | да
1 | mixed | значение, которое вернет функция, если совпадение найдено | да
2 | integer | тип шаблона: EXP_GLOB, EXP_EXACT или EXP_REGEXP | нет | EXP_GLOB

Возвращаемые значения

Возвращает значение, связанное с шаблоном с которым оно совпало.

В случае возникновения ошибки функция вернет: EXP_EOF, EXP_TIMEOUT или EXP_FULLBUFFER

Список изменений

Версия | Описание
0.2.1 | До версии 0.2.1, в параметр match возвращалась строка, а не массив совпавших строк.

Примеры

Пример #1 Пример использования expect_expectl()

<?php
// Копируем файлы с сервера:
ini_set("expect.timeout", 30);

$stream = fopen("expect://scp user@remotehost:/var/log/messages /home/user/messages.txt", "r");

$cases = array(
    // array(шаблон, возвращаемов в случае совпадения значение)
    array("password:", "asked for password"),
    array("yes/no)?",  "asked for yes/no")
);

while (true) {
    switch (expect_expectl($stream, $cases)) {
        case "asked for password":
            fwrite($stream, "my password\n");
            break;
        case "asked for yes/no":
            fwrite($stream, "yes\n");
            break;
        case EXP_TIMEOUT:
        case EXP_EOF:
            break 2; // Прерывает как switch так и цикл while
        default:
            die "Произошла ошибка!";
    }
}

fclose($stream);
?>

Смотрите также

  • expect_popen() - Запускает команду через командную оболочку Bourne и открывает для процесса поток PTY


Запускает команду через командную оболочку Bourne и открывает для процесса поток PTY

  • « expect_expectl
  • Libevent »
  • PHP Manual
  • Функции Expect
  • Запускает команду через командную оболочку Bourne и открывает для процесса поток PTY

expect_popen

(PECL expect >= 0.1.0)

expect_popen — Запускает команду через командную оболочку Bourne и открывает для процесса поток PTY

Описание

expect_popen ( string $command ) : resource

Запускает команду через командную оболочку Bourne и открывает для процесса поток PTY.

Список параметров

command

Команда для запуска.

Возвращаемые значения

Возвращает поток PTY для stdio, stdout, и stderr процесса.

В случае возникновения ошибки возвращает FALSE.

Примеры

Пример #1 Пример использования expect_popen()

<?php
// Соединение с CVS репозиторием PHP.net:
$stream = expect_popen ("cvs -d :pserver:anonymous@cvs.php.net:/repository login");
sleep (3);
fwrite ($stream, "phpfi\n");
fclose ($stream);
?>

Смотрите также

  • popen() - Открывает файловый указатель процесса


Libevent

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции Libevent
    • event_add — Добавляет событие к набору наблюдаемых событий
    • event_base_free — Уничтожает событийную базу
    • event_base_loop — Управляет событиями
    • event_base_loopbreak — Прерывает цикл ожидания события
    • event_base_loopexit — Выходит из цикла через определенное время
    • event_base_new — Создает и инициализирует новую событийную базу
    • event_base_priority_init — Устанавливает приоритет события
    • event_base_reinit — Переиницализирует событийную базу после распараллеливания (fork)
    • event_base_set — Ассоциирует событийную базу с событием
    • event_buffer_base_set — Ассоциирует буфер событий с событийной базой
    • event_buffer_disable — Выключает буфер событий
    • event_buffer_enable — Включает буфер событий
    • event_buffer_fd_set — Изменяет файловый дескриптор буфера событий
    • event_buffer_free — Разрушает буфер событий
    • event_buffer_new — Создает новый буфер событий
    • event_buffer_priority_set — Назначить приоритет буферизованному событию
    • event_buffer_read — Считывает данные из буферизованного события
    • event_buffer_set_callback — Установливает или сбрасывает callback-функцтт для буферизованного события
    • event_buffer_timeout_set — Устанавливает время чтения и записи для буферизованного события
    • event_buffer_watermark_set — Set the watermarks for read and write events
    • event_buffer_write — Записывает данные в буферизованное событие
    • event_del — Удаляет событие из набора отслеживаемых событий
    • event_free — Освобождает ресурс события
    • event_new — Создает новое событие
    • event_priority_set — Назначает приоритет событию
    • event_set — Prepare an event
    • event_timer_add — Псевдоним event_add
    • event_timer_del — Псевдоним event_del
    • event_timer_new — Псевдоним event_new
    • event_timer_set — Подготавливает событие таймер


Введение

Libevent - это библиотека, которая предоставляет механизм оповещения о событиях с помощью выполнения callback-функции при наступлении заданного события для дескриптора файла или при достижении заданного таймаута.

Больше информации о Libevent вы можете найти на » http://libevent.org/.

Замечание: Модуль libevent не поддерживается; попробуйте вместо него использовать модуль event.


Требования

Этому расширению необходима библиотека » libevent. Минимальная допустимая версия 1.4.0.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/libevent.


Типы ресурсов

Есть несколько типов ресурсов, используемых данным расширением. Эти ресурсы: событие, базовое событие и буферизированное событие.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

EV_TIMEOUT (integer)
EV_READ (integer)
EV_WRITE (integer)
EV_SIGNAL (integer)
EV_PERSIST (integer)
EVLOOP_NONBLOCK (integer)
EVLOOP_ONCE (integer)


Примеры

Пример #1 опрос STDIN с использованием базового API

<?php

function print_line($fd, $events, $arg)
{
    static $max_requests = 0;

    $max_requests++;

    if ($max_requests == 10) {
        // выходит из цикла после 10 записей
        event_base_loopexit($arg[1]);
    }

    // печатает строку
    echo  fgets($fd);
}

// создает базовое событие и событие
$base = event_base_new();
$event = event_new();

$fd = STDIN;

// устанавливает флаги события
event_set($event, $fd, EV_READ | EV_PERSIST, "print_line", array($event, $base));
// устанавливает базовое событие
event_base_set($event, $base);

// включает событие
event_add($event);
// запускает цикл ожидания события
event_base_loop($base);

?>

Пример #2 опрос STDIN с использованием API буферизированных событий

<?php

function print_line($buf, $arg)
{
    static $max_requests;

    $max_requests++;

    if ($max_requests == 10) {
        event_base_loopexit($arg);
    }

    // печатает строку
    echo event_buffer_read($buf, 4096);
}

function error_func($buf, $what, $arg)
{
    // управление ошибками
}

$base = event_base_new();
$eb = event_buffer_new(STDIN, "print_line", NULL, "error_func", $base);

event_buffer_base_set($eb, $base);
event_buffer_enable($eb, EV_READ);

event_base_loop($base);

?>


Функции Libevent

Содержание

  • event_add — Добавляет событие к набору наблюдаемых событий
  • event_base_free — Уничтожает событийную базу
  • event_base_loop — Управляет событиями
  • event_base_loopbreak — Прерывает цикл ожидания события
  • event_base_loopexit — Выходит из цикла через определенное время
  • event_base_new — Создает и инициализирует новую событийную базу
  • event_base_priority_init — Устанавливает приоритет события
  • event_base_reinit — Переиницализирует событийную базу после распараллеливания (fork)
  • event_base_set — Ассоциирует событийную базу с событием
  • event_buffer_base_set — Ассоциирует буфер событий с событийной базой
  • event_buffer_disable — Выключает буфер событий
  • event_buffer_enable — Включает буфер событий
  • event_buffer_fd_set — Изменяет файловый дескриптор буфера событий
  • event_buffer_free — Разрушает буфер событий
  • event_buffer_new — Создает новый буфер событий
  • event_buffer_priority_set — Назначить приоритет буферизованному событию
  • event_buffer_read — Считывает данные из буферизованного события
  • event_buffer_set_callback — Установливает или сбрасывает callback-функцтт для буферизованного события
  • event_buffer_timeout_set — Устанавливает время чтения и записи для буферизованного события
  • event_buffer_watermark_set — Set the watermarks for read and write events
  • event_buffer_write — Записывает данные в буферизованное событие
  • event_del — Удаляет событие из набора отслеживаемых событий
  • event_free — Освобождает ресурс события
  • event_new — Создает новое событие
  • event_priority_set — Назначает приоритет событию
  • event_set — Prepare an event
  • event_timer_add — Псевдоним event_add
  • event_timer_del — Псевдоним event_del
  • event_timer_new — Псевдоним event_new
  • event_timer_set — Подготавливает событие таймер


Добавляет событие к набору наблюдаемых событий

  • « Функции Libevent
  • event_base_free »
  • PHP Manual
  • Функции Libevent
  • Добавляет событие к набору наблюдаемых событий

event_add

(PECL libevent >= 0.0.1)

event_add — Добавляет событие к набору наблюдаемых событий

Описание

event_add ( resource $event [, int $timeout = -1 ] ) : bool

event_add() планирует выполнение event, когда случится событие, заданное в event_set() или хотя бы по прошествии времени, указанного в аргументе timeout. Если timeout не был задан то таймаут не устанавливается. event уже должен быть инициализирован с помощью функций event_set() и event_base_set(). Если event уже имеет установленный таймаут, он будет заменен новым.

Список параметров

event

Валидные ресурс события.

timeout

Опциональный таймаут (в микросекундах).

Возвращаемые значения

event_add() возвращает TRUE в случае успешного выполнения и FALSE при ошибке.


Уничтожает событийную базу

  • « event_add
  • event_base_loop »
  • PHP Manual
  • Функции Libevent
  • Уничтожает событийную базу

event_base_free

(PECL libevent >= 0.0.1)

event_base_free — Уничтожает событийную базу

Описание

event_base_free ( resource $event_base ) : void

Уничтожает событийную базу, определенный в event_base и освобождает все связанные с ним ресурсы. Обратите внимание, что не возможно уничтожить событийный базис если к нему пркреплены события.

Список параметров

event_base

Корректный ресурс событийной базы.


Управляет событиями

  • « event_base_free
  • event_base_loopbreak »
  • PHP Manual
  • Функции Libevent
  • Управляет событиями

event_base_loop

(PECL libevent >= 0.0.1)

event_base_loop — Управляет событиями

Описание

event_base_loop ( resource $event_base [, int $flags = 0 ] ) : int

Запускает цикл ожидания события для определенной событийной базы.

Список параметров

event_base

Корректный ресурс событийной базы.

flags

Опциональный параметр, который может принять любую комбинацию EVLOOP_ONCE и EVLOOP_NONBLOCK.

Возвращаемые значения

event_base_loop() возвращает 0 в случае успеха, -1 при ошибке и 1 если ни одного события не было зарегистрировано.


Прерывает цикл ожидания события

  • « event_base_loop
  • event_base_loopexit »
  • PHP Manual
  • Функции Libevent
  • Прерывает цикл ожидания события

event_base_loopbreak

(PECL libevent >= 0.0.1)

event_base_loopbreak — Прерывает цикл ожидания события

Описание

event_base_loopbreak ( resource $event_base ) : bool

Немедленно прерывает цикл ожидания события. Поведение схожее с инструкцией break.

Список параметров

event_base

Корректный ресурс событийной базы.

Возвращаемые значения

event_base_loopbreak() возвращает TRUE в случае успеха и FALSE при ошибке.


Выходит из цикла через определенное время

  • « event_base_loopbreak
  • event_base_new »
  • PHP Manual
  • Функции Libevent
  • Выходит из цикла через определенное время

event_base_loopexit

(PECL libevent >= 0.0.1)

event_base_loopexit — Выходит из цикла через определенное время

Описание

event_base_loopexit ( resource $event_base [, int $timeout = -1 ] ) : bool

Следующая итерация цикла ожидания события после истечения времени будет завершена нормально, затем выход без блокирования очередных событий.

Список параметров

event_base

Корректный ресурс событийной базы.

timeout

Опциональный параметр таймаута (в микросекундах).

Возвращаемые значения

event_base_loopexit() воозвращает TRUE в случае успеха или FALSE при ошибке.


Создает и инициализирует новую событийную базу

  • « event_base_loopexit
  • event_base_priority_init »
  • PHP Manual
  • Функции Libevent
  • Создает и инициализирует новую событийную базу

event_base_new

(PECL libevent >= 0.0.1)

event_base_new — Создает и инициализирует новую событийную базу

Описание

event_base_new ( void ) : resource

Возвращает новое событийную базу, которая может быть потом использована в event_base_set(), event_base_loop() и других функциях.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

event_base_new() возвращает ресурс событийной базы в случае успеха и FALSE при ошибке.


Устанавливает приоритет события

  • « event_base_new
  • event_base_reinit »
  • PHP Manual
  • Функции Libevent
  • Устанавливает приоритет события

event_base_priority_init

(PECL libevent >= 0.0.2)

event_base_priority_init — Устанавливает приоритет события

Описание

event_base_priority_init ( resource $event_base , int $npriorities ) : bool

Устанавливает разный приоритет для событий.

По умолчанию все события запланированы с одинаковым приоритетом (npriorities/2). Используя event_base_priority_init() вы можете изменить приоритет для всех событий и потом установить желаемый приоритет для каждого отдельного события.

Список параметров

event_base

Корректный ресурс событийной базы.

npriorities

Число, указывающее уровень приоритета.

Возвращаемые значения

event_base_priority_init() возвращает TRUE в случае успеха и FALSE при ошибке.


Переиницализирует событийную базу после распараллеливания (fork)

  • « event_base_priority_init
  • event_base_set »
  • PHP Manual
  • Функции Libevent
  • Переиницализирует событийную базу после распараллеливания (fork)

event_base_reinit

(PECL libevent >= 0.1.0)

event_base_reinit — Переиницализирует событийную базу после распараллеливания (fork)

Описание

event_base_reinit ( resource $event_base ) : bool

Некоторые событийные механизмы не переживают распараллеливание. Необходимо переинициализировать event_base с помощью этой функции.

Список параметров

event_base

Корректный ресурс событийной базы, которая должна быть переинициализирована.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Ассоциирует событийную базу с событием

  • « event_base_reinit
  • event_buffer_base_set »
  • PHP Manual
  • Функции Libevent
  • Ассоциирует событийную базу с событием

event_base_set

(PECL libevent >= 0.0.1)

event_base_set — Ассоциирует событийную базу с событием

Описание

event_base_set ( resource $event , resource $event_base ) : bool

Ассоциирует event_base с event.

Список параметров

event

Валидный ресурс события.

event_base

Корректный ресурс событийной базы.

Возвращаемые значения

event_base_set() возвращает TRUE в случае успеха или FALSE при ошибке.


Ассоциирует буфер событий с событийной базой

  • « event_base_set
  • event_buffer_disable »
  • PHP Manual
  • Функции Libevent
  • Ассоциирует буфер событий с событийной базой

event_buffer_base_set

(PECL libevent >= 0.0.1)

event_buffer_base_set — Ассоциирует буфер событий с событийной базой

Описание

event_buffer_base_set ( resource $bevent , resource $event_base ) : bool

Назначает указанный bevent к event_base.

Список параметров

bevent

Корректный ресурс буфера событий.

event_base

Корректный ресурс событийной базы.

Возвращаемые значения

event_buffer_base_set() возвращает TRUE в случае успеха или FALSE при ошибке.


Выключает буфер событий

  • « event_buffer_base_set
  • event_buffer_enable »
  • PHP Manual
  • Функции Libevent
  • Выключает буфер событий

event_buffer_disable

(PECL libevent >= 0.0.1)

event_buffer_disable — Выключает буфер событий

Описание

event_buffer_disable ( resource $bevent , int $events ) : bool

Выключает указанный буфер событий.

Список параметров

bevent

Корректный ресурс буфера событий.

events

Любая комбинация EV_READ и EV_WRITE.

Возвращаемые значения

event_buffer_disable() возвращает TRUE в случае успеха или FALSE при ошибке.


Включает буфер событий

  • « event_buffer_disable
  • event_buffer_fd_set »
  • PHP Manual
  • Функции Libevent
  • Включает буфер событий

event_buffer_enable

(PECL libevent >= 0.0.1)

event_buffer_enable — Включает буфер событий

Описание

event_buffer_enable ( resource $bevent , int $events ) : bool

Включает указанное буфер событий.

Список параметров

bevent

Корректный ресурс буфера событий.

events

Любая комбинация EV_READ and EV_WRITE.

Возвращаемые значения

event_buffer_enable() возвращает TRUE в случае успеха или FALSE при ошибке.


Изменяет файловый дескриптор буфера событий

  • « event_buffer_enable
  • event_buffer_free »
  • PHP Manual
  • Функции Libevent
  • Изменяет файловый дескриптор буфера событий

event_buffer_fd_set

(PECL libevent >= 0.0.1)

event_buffer_fd_set — Изменяет файловый дескриптор буфера событий

Описание

event_buffer_fd_set ( resource $bevent , resource $fd ) : void

Изменяет файловый дескриптор, контролируемый буферомсобытий.

Список параметров

bevent

Корректный ресурс буфера событий.

fd

Корректный PHP поток, должен быть приводимым к файловому дескриптору.


Разрушает буфер событий

  • « event_buffer_fd_set
  • event_buffer_new »
  • PHP Manual
  • Функции Libevent
  • Разрушает буфер событий

event_buffer_free

(PECL libevent >= 0.0.1)

event_buffer_free — Разрушает буфер событий

Описание

event_buffer_free ( resource $bevent ) : void

Разрушает указанное буфер событий и освобождает все связанные с ним ресурсы.

Список параметров

bevent

Корректный ресурс буфера событий.


Создает новый буфер событий

  • « event_buffer_free
  • event_buffer_priority_set »
  • PHP Manual
  • Функции Libevent
  • Создает новый буфер событий

event_buffer_new

(PECL libevent >= 0.0.1)

event_buffer_new — Создает новый буфер событий

Описание

event_buffer_new ( resource $stream , mixed $readcb , mixed $writecb , mixed $errorcb [, mixed $arg ] ) : resource

Libevent предоставляет абстрактный слой поверх стандартного API. Используя буфер событий вы не обязаны разбираться с I/O вручную, вместо этого предоставляются буферы ввода и вывода, которые наполняются и освобождаются автоматически.

Список параметров

stream

Корректный ресурс потока (stream) PHP. Должен приводиться к файловому дескриптору.

readcb

Callback-функция, которая вызывается когда есть данные для чтения, или NULL если callback-функция не желательна.

writecb

Callback-функция, которая вызывается когда дескриптор готов для записи, или NULL если callback функция не желательна.

errorcb

Callback-функция, которая вызывается когда возникает ошибка дескриптора, не может быть NULL.

arg

Аргумент который будет передан в каждую из callback-функций (опционально).

Возвращаемые значения

event_buffer_new() возвращает ресурс нового буфера событий в случае успеха или FALSE при ошибке.


Назначить приоритет буферизованному событию

  • « event_buffer_new
  • event_buffer_read »
  • PHP Manual
  • Функции Libevent
  • Назначить приоритет буферизованному событию

event_buffer_priority_set

(PECL libevent >= 0.0.1)

event_buffer_priority_set — Назначить приоритет буферизованному событию

Описание

event_buffer_priority_set ( resource $bevent , int $priority ) : bool

Назначить приоритет для bevent.

Список параметров

bevent

Корректный ресурс беферизованного события.

priority

Уровень приоритета. Не может быть меньше нуля и не может превышать максимальный уровень приоритета базы событий (смотрите event_base_priority_init()).

Возвращаемые значения

event_buffer_priority_set() возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Считывает данные из буферизованного события

  • « event_buffer_priority_set
  • event_buffer_set_callback »
  • PHP Manual
  • Функции Libevent
  • Считывает данные из буферизованного события

event_buffer_read

(PECL libevent >= 0.0.1)

event_buffer_read — Считывает данные из буферизованного события

Описание

event_buffer_read ( resource $bevent , int $data_size ) : string

Считывает данные из входного буфера буферизованного события.

Список параметров

bevent

Корректный буферизованный ресурс события.

data_size

Размер данных в байтах.


Установливает или сбрасывает callback-функцтт для буферизованного события

  • « event_buffer_read
  • event_buffer_timeout_set »
  • PHP Manual
  • Функции Libevent
  • Установливает или сбрасывает callback-функцтт для буферизованного события

event_buffer_set_callback

(PECL libevent >= 0.0.4)

event_buffer_set_callback — Установливает или сбрасывает callback-функцтт для буферизованного события

Описание

event_buffer_set_callback ( resource $event , mixed $readcb , mixed $writecb , mixed $errorcb [, mixed $arg ] ) : bool

Устанавливает или изменяет существующие callback-функции для буферизованного event.

Список параметров

event

Корректный буферизованный ресурс события.

readcb

Callback-функция для вызова с данными для чтения, или NULL, если callback-функция не требуется.

writecb

Callback-функция для вызова, когда дескриптор готов к записи, или NULL, если callback-функция не требуется.

errorcb

Callback-функция для вызова, при ошибке в дескрипторе, не может быть равен NULL.

arg

Аргумент, который будет передан каждому из обратных вызовов (необязательно).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Устанавливает время чтения и записи для буферизованного события

  • « event_buffer_set_callback
  • event_buffer_watermark_set »
  • PHP Manual
  • Функции Libevent
  • Устанавливает время чтения и записи для буферизованного события

event_buffer_timeout_set

(PECL libevent >= 0.0.1)

event_buffer_timeout_set — Устанавливает время чтения и записи для буферизованного события

Описание

event_buffer_timeout_set ( resource $bevent , int $read_timeout , int $write_timeout ) : void

Устанавливает время чтения и записи для буферизованного события

Список параметров

bevent

Корректный буферизованный ресурс события.

read_timeout

Максимальное время чтения (в секундах).

write_timeout

Максимальное время записи (в секундах).


Set the watermarks for read and write events

  • « event_buffer_timeout_set
  • event_buffer_write »
  • PHP Manual
  • Функции Libevent
  • Set the watermarks for read and write events

event_buffer_watermark_set

(PECL libevent >= 0.0.1)

event_buffer_watermark_set — Set the watermarks for read and write events

Описание

event_buffer_watermark_set ( resource $bevent , int $events , int $lowmark , int $highmark ) : void

Sets the watermarks for read and write events. Libevent does not invoke read callback unless there is at least lowmark bytes in the input buffer; if the read buffer is beyond the highmark, reading is stopped. On output, the write callback is invoked whenever the buffered data falls below the lowmark.

Список параметров

bevent

Valid buffered event resource.

events

Any combination of EV_READ and EV_WRITE.

lowmark

Low watermark.

highmark

High watermark.


Записывает данные в буферизованное событие

  • « event_buffer_watermark_set
  • event_del »
  • PHP Manual
  • Функции Libevent
  • Записывает данные в буферизованное событие

event_buffer_write

(PECL libevent >= 0.0.1)

event_buffer_write — Записывает данные в буферизованное событие

Описание

event_buffer_write ( resource $bevent , string $data [, int $data_size = -1 ] ) : bool

Записывает данные в указанное буферизованное событие. Данные добавляются в выходной буфер и записываются в дескриптор, когда он становится доступным для записи.

Список параметров

bevent

Корректный буферизованный ресурс события.

data

Данные для записи.

data_size

Необязательный параметр размера. event_buffer_write() записывает все data по умолчанию.

Возвращаемые значения

event_buffer_write() возвращает TRUE в случае успеха или FALSE в случае ошибки.


Удаляет событие из набора отслеживаемых событий

  • « event_buffer_write
  • event_free »
  • PHP Manual
  • Функции Libevent
  • Удаляет событие из набора отслеживаемых событий

event_del

(PECL libevent >= 0.0.1)

event_del — Удаляет событие из набора отслеживаемых событий

Описание

event_del ( resource $event ) : bool

Отменяет event.

Список параметров

event

Корректный ресурс события.

Возвращаемые значения

event_del() возвращает TRUE в случае успеха или FALSE в случае ошибки.


Освобождает ресурс события

  • « event_del
  • event_new »
  • PHP Manual
  • Функции Libevent
  • Освобождает ресурс события

event_free

(PECL libevent >= 0.0.1)

event_free — Освобождает ресурс события

Описание

event_free ( resource $event ) : void

Освобождает ранее созданный ресурс события.

Список параметров

event

Корректный ресурс события.


Создает новое событие

  • « event_free
  • event_priority_set »
  • PHP Manual
  • Функции Libevent
  • Создает новое событие

event_new

(PECL libevent >= 0.0.1)

event_new — Создает новое событие

Описание

event_new ( void ) : resource

Создает и возвращает новый ресурс события.

Возвращаемые значения

event_new() возвращает новый ресурс события в случае успеха или FALSE в случае ошибки.


Назначает приоритет событию

  • « event_new
  • event_set »
  • PHP Manual
  • Функции Libevent
  • Назначает приоритет событию

event_priority_set

(PECL libevent >= 0.0.5)

event_priority_set — Назначает приоритет событию

Описание

event_priority_set ( resource $event , int $priority ) : bool

Назначает приоритет event.

Список параметров

event

Корректный ресурс события.

priority

Приоритетный уровень. Не может быть меньше нуля и не может превышать максимальный уровень приоритета базы событий (см. event_base_priority_init()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Prepare an event

  • « event_priority_set
  • event_timer_add »
  • PHP Manual
  • Функции Libevent
  • Prepare an event

event_set

(PECL libevent >= 0.0.1)

event_set — Prepare an event

Описание

event_set ( resource $event , mixed $fd , int $events , mixed $callback [, mixed $arg ] ) : bool

Prepares the event to be used in event_add(). The event is prepared to call the function specified by the callback on the events specified in parameter events, which is a set of the following flags: EV_TIMEOUT, EV_SIGNAL, EV_READ, EV_WRITE and EV_PERSIST.

If EV_SIGNAL bit is set in parameter events, the fd is interpreted as signal number.

After initializing the event, use event_base_set() to associate the event with its event base.

In case of matching event, these three arguments are passed to the callback function:

fd

Signal number or resource indicating the stream.

events

A flag indicating the event. Consists of the following flags: EV_TIMEOUT, EV_SIGNAL, EV_READ, EV_WRITE and EV_PERSIST.

arg

Optional parameter, previously passed to event_set() as arg.

Список параметров

event

Valid event resource.

fd

Valid PHP stream resource. The stream must be castable to file descriptor, so you most likely won't be able to use any of filtered streams.

events

A set of flags indicating the desired event, can be EV_READ and/or EV_WRITE. The additional flag EV_PERSIST makes the event to persist until event_del() is called, otherwise the callback is invoked only once.

callback

Callback function to be called when the matching event occurs.

arg

Optional callback parameter.

Возвращаемые значения

event_set() returns TRUE on success or FALSE on error.

Список изменений

Версия | Описание
0.0.4 | EV_SIGNAL support was added.


Псевдоним event_add

  • « event_set
  • event_timer_del »
  • PHP Manual
  • Функции Libevent
  • Псевдоним event_add

event_timer_add

(PECL libevent >= 0.0.2)

event_timer_add — Псевдоним event_add()

Описание

Эта функция является псевдонимом: event_add().


Псевдоним event_del

  • « event_timer_add
  • event_timer_new »
  • PHP Manual
  • Функции Libevent
  • Псевдоним event_del

event_timer_del

(PECL libevent >= 0.0.2)

event_timer_del — Псевдоним event_del()

Описание

Эта функция является псевдонимом: event_del().


Псевдоним event_new

  • « event_timer_del
  • event_timer_set »
  • PHP Manual
  • Функции Libevent
  • Псевдоним event_new

event_timer_new

(PECL libevent >= 0.0.2)

event_timer_new — Псевдоним event_new()

Описание

Эта функция является псевдонимом: event_new().


Подготавливает событие таймер

  • « event_timer_new
  • PCNTL »
  • PHP Manual
  • Функции Libevent
  • Подготавливает событие таймер

event_timer_set

(PECL libevent >= 0.0.2)

event_timer_set — Подготавливает событие таймер

Описание

event_timer_set ( resource $event , callable $callback [, mixed $arg ] ) : bool

Подготавливает событие таймер для использования в event_add(). Событие подготавливается для вызова указанной callback-функции по истечению заданного времени.

После инициализации события, используйте event_base_set() для связи события с его событийной базой.

В случае наступления события, эти три аргумента будут переданы в callback-функцию:

fd

Номер сигнала или ресура соответствующего потоку.

events

Флаг, соответствующий событию. Всегда будет EV_TIMEOUT для события таймера.

arg

Опциональный параметр, предварительно переданный в event_timer_set() как arg.

Список параметров

event

Корректный ресурс события.

callback

Callback-функция, вызываемая при наступлении события.

arg

Опциональный callback параметр.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Управление процессами

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Базовое применение
  • Функции PCNTL
    • pcntl_alarm — Задать таймер доставки сигнала SIGALRM
    • pcntl_async_signals — Включить/отключить асинхронную обработку сигналов, либо получить текущий статус
    • pcntl_errno — Псевдоним pcntl_get_last_error
    • pcntl_exec — Запустить указанную программу в области текущего процесса
    • pcntl_fork — Разветвить (fork) текущий запущенный процесс
    • pcntl_get_last_error — Получить код последней ошибки, возникшей в pcntl-функции
    • pcntl_getpriority — Получить значение приоритета процесса
    • pcntl_setpriority — Изменить приоритет процесса
    • pcntl_signal_dispatch — Вызывает обработчики для ожидающих сигналов
    • pcntl_signal_get_handler — Получить текущий обработчик указанного сигнала
    • pcntl_signal — Установка обработчика сигнала
    • pcntl_sigprocmask — Задаёт и извлекает список блокируемых сигналов
    • pcntl_sigtimedwait — Ожидает сигналы в течение заданного времени
    • pcntl_sigwaitinfo — Ожидание сигналов
    • pcntl_strerror — Получить текст ошибки по её коду
    • pcntl_wait — Ожидает или возвращает статус порожденного дочернего процесса
    • pcntl_waitpid — Ожидает или возвращает статус порожденного дочернего процесса
    • pcntl_wexitstatus — Получить код возврата завершенного дочернего процесса
    • pcntl_wifexited — Проверяет, соответствует ли код завершения процесса нормальному завершению
    • pcntl_wifsignaled — Проверить, соответствует ли код завершения процесса завершению по сигналу
    • pcntl_wifstopped — Проверить, остановлен ли дочерний процесс
    • pcntl_wstopsig — Получить сигнал, из-за которого был остановлен дочерний процесс
    • pcntl_wtermsig — Получить сигнал, из-за которого был принудительно завершен дочерний процесс


Введение

Поддержка управления процессами в PHP реализует Unix-стиль создания процессов, запуска программ, обработки сигналов и остановки процессов. Управление процессами должно быть ОТКЛЮЧЕНО в окружении веб-сервера и результат будет непредсказуем, если функции управления процессами будут использованы в окружении такого веб-сервера. (На практике это значит, что pcntl можно использовать только в CLI и CGI, но не в apache mod_php)

Настоящая документация предназначена для объяснения основ использования каждой из функций управления процессами. Для более детального ознакомления с информацией об управлении Unix-процессами рекомендуеся обратиться к вашему системному руководству, включая fork(2), waitpid(2) и signal(2) или к полному справочнику такому как "UNIX. Профессиональное программирование" У. Ричарда Стивенса (Advanced Programming in the UNIX Environment by W. Richard Stevens (Addison-Wesley).

PCNTL, на данный момент, использует "тики" как механизм обработки callback-функций, который значительно быстрее чем предыдущий механизм. Это изменение семантически похоже на использование "user ticks". Вы используете инструкцию declare(), чтобы задать расположение в программе, в котором callback-функции тика могут быть выполнены. Это позволяет минимизировать накладные расходы на обработку асинхронных событий. В прошлом, компиляция PHP со включенным pcntl всегда приводила к появлению этих накладных расходов, вне зависимости от того, использует ваш скрипт pcntl или нет.

Замечание: Для Windows-платформ это расширение недоступно.


Установка

Поддержка Управления процессами в PHP по умолчанию не активна. Для включения поддержки Управления процессами вы должны скомпилировать CGI или CLI версию PHP с конфигурационным параметром --enable-pcntl .

Замечание:

На данный момент этот модуль не работает на не-Unix платформах (Windows).


Предопределенные константы

Функции Управления процессами поддерживают следующий список сигналов. Для детального ознакомления со стандартным поведением этих сигналов пожалуйста обратитесь к системному рукодводству signal(7).

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)
SIG_BLOCK (integer)
Доступно начиная с PHP 5.3.0.
SIG_UNBLOCK (integer)
Доступно начиная с PHP 5.3.0.
SIG_SETMASK (integer)
Доступно начиная с PHP 5.3.0.
SI_USER (integer)
Доступно начиная с PHP 5.3.0.
SI_NOINFO (integer)
Доступно начиная с PHP 5.3.0.
SI_KERNEL (integer)
Доступно начиная с PHP 5.3.0.
SI_QUEUE (integer)
Доступно начиная с PHP 5.3.0.
SI_TIMER (integer)
Доступно начиная с PHP 5.3.0.
SI_MSGGQ (integer)
Доступно начиная с PHP 5.3.0.
SI_ASYNCIO (integer)
Доступно начиная с PHP 5.3.0.
SI_SIGIO (integer)
Доступно начиная с PHP 5.3.0.
SI_TKILL (integer)
Доступно начиная с PHP 5.3.0.
CLD_EXITED (integer)
Доступно начиная с PHP 5.3.0.
CLD_KILLED (integer)
Доступно начиная с PHP 5.3.0.
CLD_DUMPED (integer)
Доступно начиная с PHP 5.3.0.
CLD_TRAPPED (integer)
Доступно начиная с PHP 5.3.0.
CLD_STOPPED (integer)
Доступно начиная с PHP 5.3.0.
CLD_CONTINUED (integer)
Доступно начиная с PHP 5.3.0.
TRAP_BRKPT (integer)
Доступно начиная с PHP 5.3.0.
TRAP_TRACE (integer)
Доступно начиная с PHP 5.3.0.
POLL_IN (integer)
Доступно начиная с PHP 5.3.0.
POLL_OUT (integer)
Доступно начиная с PHP 5.3.0.
POLL_MSG (integer)
Доступно начиная с PHP 5.3.0.
POLL_ERR (integer)
Доступно начиная с PHP 5.3.0.
POLL_PRI (integer)
Доступно начиная с PHP 5.3.0.
POLL_HUP (integer)
Доступно начиная с PHP 5.3.0.
ILL_ILLOPC (integer)
Доступно начиная с PHP 5.3.0.
ILL_ILLOPN (integer)
Доступно начиная с PHP 5.3.0.
ILL_ILLADR (integer)
Доступно начиная с PHP 5.3.0.
ILL_ILLTRP (integer)
Доступно начиная с PHP 5.3.0.
ILL_PRVOPC (integer)
Доступно начиная с PHP 5.3.0.
ILL_PRVREG (integer)
Доступно начиная с PHP 5.3.0.
ILL_COPROC (integer)
Доступно начиная с PHP 5.3.0.
ILL_BADSTK (integer)
Доступно начиная с PHP 5.3.0.
FPE_INTDIV (integer)
Доступно начиная с PHP 5.3.0.
FPE_INTOVF (integer)
Доступно начиная с PHP 5.3.0.
FPE_FLTDIV (integer)
Доступно начиная с PHP 5.3.0.
FPE_FLTOVF (integer)
Доступно начиная с PHP 5.3.0.
FPE_FLTUND (integer)
Доступно начиная с PHP 5.3.0.
FPE_FLTRES (integer)
Доступно начиная с PHP 5.3.0.
FPE_FLTINV (integer)
Доступно начиная с PHP 5.3.0.
FPE_FLTSUB (integer)
Доступно начиная с PHP 5.3.0.
SEGV_MAPERR (integer)
Доступно начиная с PHP 5.3.0.
SEGV_ACCERR (integer)
Доступно начиная с PHP 5.3.0.
BUS_ADRALN (integer)
Доступно начиная с PHP 5.3.0.
BUS_ADRERR (integer)
Доступно начиная с PHP 5.3.0.
BUS_OBJERR (integer)
Доступно начиная с PHP 5.3.0.


  • « Предопределенные константы
  • Базовое применение »
  • PHP Manual
  • PCNTL
  • Примеры

Примеры

Содержание

  • Базовое применение


Базовое применение

Этот пример порождает процесс-демон с обработчиком сигналов

Пример #1 Пример Управления процессами

<?php
declare(ticks=1);

$pid = pcntl_fork();
if ($pid == -1) {
     die("Не удалось породить процесс");
} else if ($pid) {
     exit(); // это код родителя
} else {
     // это дочерний код
}

// Открепление от управляющего терминала
if (posix_setsid() == -1) {
    die("Не удалось открепить от терминала");
}

// Установка обработчиков сигналов
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");

// Бесконечный цикл выполнения задач
while (1) {

    // делаем тут что-то интересное

}

function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // обработка сигнала завершения
             exit;
             break;
         case SIGHUP:
             // обработка перезапуска задач
             break;
         default:
             // обработка других сигналов
     }

}

?>


Функции PCNTL

Смотрите также

Обзор раздела о функциях POSIX может быть полезным.

Содержание

  • pcntl_alarm — Задать таймер доставки сигнала SIGALRM
  • pcntl_async_signals — Включить/отключить асинхронную обработку сигналов, либо получить текущий статус
  • pcntl_errno — Псевдоним pcntl_get_last_error
  • pcntl_exec — Запустить указанную программу в области текущего процесса
  • pcntl_fork — Разветвить (fork) текущий запущенный процесс
  • pcntl_get_last_error — Получить код последней ошибки, возникшей в pcntl-функции
  • pcntl_getpriority — Получить значение приоритета процесса
  • pcntl_setpriority — Изменить приоритет процесса
  • pcntl_signal_dispatch — Вызывает обработчики для ожидающих сигналов
  • pcntl_signal_get_handler — Получить текущий обработчик указанного сигнала
  • pcntl_signal — Установка обработчика сигнала
  • pcntl_sigprocmask — Задаёт и извлекает список блокируемых сигналов
  • pcntl_sigtimedwait — Ожидает сигналы в течение заданного времени
  • pcntl_sigwaitinfo — Ожидание сигналов
  • pcntl_strerror — Получить текст ошибки по её коду
  • pcntl_wait — Ожидает или возвращает статус порожденного дочернего процесса
  • pcntl_waitpid — Ожидает или возвращает статус порожденного дочернего процесса
  • pcntl_wexitstatus — Получить код возврата завершенного дочернего процесса
  • pcntl_wifexited — Проверяет, соответствует ли код завершения процесса нормальному завершению
  • pcntl_wifsignaled — Проверить, соответствует ли код завершения процесса завершению по сигналу
  • pcntl_wifstopped — Проверить, остановлен ли дочерний процесс
  • pcntl_wstopsig — Получить сигнал, из-за которого был остановлен дочерний процесс
  • pcntl_wtermsig — Получить сигнал, из-за которого был принудительно завершен дочерний процесс


Задать таймер доставки сигнала SIGALRM

  • « Функции PCNTL
  • pcntl_async_signals »
  • PHP Manual
  • Функции PCNTL
  • Задать таймер доставки сигнала SIGALRM

pcntl_alarm

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pcntl_alarm — Задать таймер доставки сигнала SIGALRM

Описание

pcntl_alarm ( int $seconds ) : int

Создает таймер, который отправит сигнал SIGALRM процессу через заданное количество секунд. Любой вызов функции pcntl_alarm() отменит любой ранее заданный таймер.

Список параметров

seconds

Число секунд ожидания. Если в аргумент seconds передан ноль, то новый таймер создан не будет.

Возвращаемые значения

Возврашает время в секундах, которое оставалось любому предыдущему таймеру для доставки сигнала, или вернет 0, если не ранее таймер не был задан.


Включить/отключить асинхронную обработку сигналов, либо получить текущий статус

  • « pcntl_alarm
  • pcntl_errno »
  • PHP Manual
  • Функции PCNTL
  • Включить/отключить асинхронную обработку сигналов, либо получить текущий статус

pcntl_async_signals

(PHP 7 >= 7.1.0)

pcntl_async_signals — Включить/отключить асинхронную обработку сигналов, либо получить текущий статус

Описание

pcntl_async_signals ([ bool $on = NULL ] ) : bool

Если пропущен параметр on, функция pcntl_async_signals() вернет текущее значение настройки. А если задан, то асинхронная обработка будет включена, либо отключена, в зависимости от заданного значения.

Список параметров

on

Включить или отключить асинхронную обработку сигналов.

Возвращаемые значения

Если используется без параметра, то вернется текущее значение настройки. Если используется для изменения режима работы, то будет возвращено предыдущее установленное значение.

Смотрите также

  • declare


Псевдоним pcntl_get_last_error

  • « pcntl_async_signals
  • pcntl_exec »
  • PHP Manual
  • Функции PCNTL
  • Псевдоним pcntl_get_last_error

pcntl_errno

(PHP 5 >= 5.3.4, PHP 7)

pcntl_errno — Псевдоним pcntl_get_last_error()

Описание

Эта функция является псевдонимом: pcntl_get_last_error()


Запустить указанную программу в области текущего процесса

  • « pcntl_errno
  • pcntl_fork »
  • PHP Manual
  • Функции PCNTL
  • Запустить указанную программу в области текущего процесса

pcntl_exec

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pcntl_exec — Запустить указанную программу в области текущего процесса

Описание

pcntl_exec ( string $path [, array $args [, array $envs ]] ) : void

Запускает программу с переданными аргументами.

Список параметров

path

path путь до исполняемой программы или скрипта с корректным указанием пути до интепретатора в первой строке (например, #!/usr/local/bin/perl). Для получения дополнительной информации обратитесь к системному руководству execve(2).

args

args массив строк аргументов переданных программе

envs

envs массив строк, которые переданы программе в качестве переменных окружения. Массив формата name => value, где name - имя переменной окружения и value - значение переменной окружения.

Возвращаемые значения

Возвращает NULL в случае успешного завершения или FALSE в случае возникновения ошибки.


Разветвить (fork) текущий запущенный процесс

  • « pcntl_exec
  • pcntl_get_last_error »
  • PHP Manual
  • Функции PCNTL
  • Разветвить (fork) текущий запущенный процесс

pcntl_fork

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_fork — Разветвить (fork) текущий запущенный процесс

Описание

pcntl_fork ( void ) : int

Функция pcntl_fork() создает дочерний процесс, который отличается от родительского процесса только его PID и PPID. Пожалуйста обратитесь к вашему системному руководству (man) fork(2) для ознакомления со спецификой работы fork на вашей системе.

Возвращаемые значения

В случае успеха, PID дочернего процесса будет возвращен в родительском потоке (thread) запуска и 0 будет возвращен в дочернем потоке запуска. В случае сбоя, в родительский контекст будет возвращено -1, дочерний процесс создан не будет и PHP сгенерирует соответствующую ошибку.

Примеры

Пример #1 Пример pcntl_fork()

<?php

$pid = pcntl_fork();
if ($pid == -1) {
     die('Не удалось породить дочерний процесс');
} else if ($pid) {
     // Код родительского процесса
     pcntl_wait($status); // Защита против дочерних "Зомби"-процессов
} else {
     // Код дочернего процесса
}

?>

Смотрите также

  • pcntl_waitpid() - Ожидает или возвращает статус порожденного дочернего процесса
  • pcntl_signal() - Установка обработчика сигнала
  • setproctitle() - Установить название процесса


Получить код последней ошибки, возникшей в pcntl-функции

  • « pcntl_fork
  • pcntl_getpriority »
  • PHP Manual
  • Функции PCNTL
  • Получить код последней ошибки, возникшей в pcntl-функции

pcntl_get_last_error

(PHP 5 >= 5.3.4, PHP 7)

pcntl_get_last_error — Получить код последней ошибки, возникшей в pcntl-функции

Описание

pcntl_get_last_error ( void ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код ошибки.

Смотрите также

  • pcntl_strerror() - Получить текст ошибки по её коду


Получить значение приоритета процесса

  • « pcntl_get_last_error
  • pcntl_setpriority »
  • PHP Manual
  • Функции PCNTL
  • Получить значение приоритета процесса

pcntl_getpriority

(PHP 5, PHP 7)

pcntl_getpriority — Получить значение приоритета процесса

Описание

pcntl_getpriority ([ int $pid = getmypid() [, int $process_identifier = PRIO_PROCESS ]] ) : int

pcntl_getpriority() получает значение приоритета для процесса, указанного в аргументе pid. Поскольку уровни приоритета процессов отличаются в различных типах операционных систем и версиях их ядер, пожалуйста, ознакомьтесь с вашим системным руководством getpriority(2) для получения детальной информации о специфике работы функции в вашей системе.

Список параметров

pid

Если не указано, то будет использвоан pid текущего процесса.

process_identifier

Может принимать значение одной из констант PRIO_PGRP, PRIO_USER или PRIO_PROCESS.

Возвращаемые значения

pcntl_getpriority() возвращает приоритет процесса, или FALSE в случае возникновения ошибки. Более низкое числовое значение (в т.ч. отрицательное) означает больший приоритет.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Смотрите также

  • pcntl_setpriority() - Изменить приоритет процесса


Изменить приоритет процесса

  • « pcntl_getpriority
  • pcntl_signal_dispatch »
  • PHP Manual
  • Функции PCNTL
  • Изменить приоритет процесса

pcntl_setpriority

(PHP 5, PHP 7)

pcntl_setpriority — Изменить приоритет процесса

Описание

pcntl_setpriority ( int $priority [, int $pid = getmypid() [, int $process_identifier = PRIO_PROCESS ]] ) : bool

pcntl_setpriority() задаёт приоритет процессу, указанному в аргументе pid.

Список параметров

priority

Как правило приоритет priority - это значение в интервале от -20 до 20. Приоритет по умолчанию равен 0, при том что более низкое числовое значение означает более высокий приоритет процесса. Поскольку уровни приоритета процессов отличаются в различных типах операционных систем и версиях их ядер, пожалуйста, ознакомьтесь с вашим системным руководством getpriority(2) для получения детальной информации о специфике работы функции в вашей системе.

pid

Если не указано, то будет использвоан pid текущего процесса.

process_identifier

Может принимать значение одной из констант PRIO_PGRP, PRIO_USER или PRIO_PROCESS.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • pcntl_getpriority() - Получить значение приоритета процесса


Вызывает обработчики для ожидающих сигналов

  • « pcntl_setpriority
  • pcntl_signal_get_handler »
  • PHP Manual
  • Функции PCNTL
  • Вызывает обработчики для ожидающих сигналов

pcntl_signal_dispatch

(PHP 5 >= 5.3.0, PHP 7)

pcntl_signal_dispatch — Вызывает обработчики для ожидающих сигналов

Описание

pcntl_signal_dispatch ( void ) : bool

Функция pcntl_signal_dispatch() вызывает обработчики сигналов, установленные функцией pcntl_signal(), для каждого ожидающего сигнала.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pcntl_signal_dispatch():

<?php
echo "Установка обработчика сигнала SIGHUP...\n";
pcntl_signal(SIGHUP,  function($signo) {
     echo "Вызван обработчик сигнала SIGHUP\n";
});

echo "Посылаем сигнал SIGHUP самому себе...\n";
posix_kill(posix_getpid(), SIGHUP);

echo "Отравка всех сигналов...\n";
pcntl_signal_dispatch();

echo "Завершено.\n";

?>

Результатом выполнения данного примера будет что-то подобное:

Установка обработчика сигнала SIGHUP...
Посылаем сигнал SIGHUP самому себе...
Отравка всех сигналов...
Вызван обработчик сигнала SIGHUP
Завершено.

Смотрите также

  • pcntl_signal() - Установка обработчика сигнала
  • pcntl_sigprocmask() - Задаёт и извлекает список блокируемых сигналов
  • pcntl_sigwaitinfo() - Ожидание сигналов
  • pcntl_sigtimedwait() - Ожидает сигналы в течение заданного времени


Получить текущий обработчик указанного сигнала

  • « pcntl_signal_dispatch
  • pcntl_signal »
  • PHP Manual
  • Функции PCNTL
  • Получить текущий обработчик указанного сигнала

pcntl_signal_get_handler

(PHP 7 >= 7.1.0)

pcntl_signal_get_handler — Получить текущий обработчик указанного сигнала

Описание

pcntl_signal_get_handler ( int $signo ) : mixed

Функция pcntl_signal_get_handler() получит текущий обработчик указанного сигнала signo.

Список параметров

signo

Номер сигнала.

Возвращаемые значения

Функция вернет целочисленное значение, указывающее на константы SIG_DFL или SIG_IGN. Если вы задали пользовательский обработчик, то будет возвращена строка с именем соответствующей функции.

Список изменений

Версия | Описание
7.1.0 | Была добавлена функция pcntl_signal_get_handler().

Примеры

Пример #1 Пример использования pcntl_signal_get_handler()

<?php
var_dump(pcntl_signal_get_handler(SIGUSR1)); // Вывод: int(0)

function pcntl_test($signo) {}
pcntl_signal(SIGUSR1, 'pcntl_test');
var_dump(pcntl_signal_get_handler(SIGUSR1)); // Вывод: string(10) "pcntl_test"

pcntl_signal(SIGUSR1, SIG_DFL);
var_dump(pcntl_signal_get_handler(SIGUSR1)); // Вывод: int(0)

pcntl_signal(SIGUSR1, SIG_IGN);
var_dump(pcntl_signal_get_handler(SIGUSR1)); // Вывод: int(1)
?>

Смотрите также

  • pcntl_signal() - Установка обработчика сигнала


Установка обработчика сигнала

  • « pcntl_signal_get_handler
  • pcntl_sigprocmask »
  • PHP Manual
  • Функции PCNTL
  • Установка обработчика сигнала

pcntl_signal

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_signal — Установка обработчика сигнала

Описание

pcntl_signal ( int $signo , callable|int $handler [, bool $restart_syscalls = TRUE ] ) : bool

Функция pcntl_signal() устанавливает новый обработчик сигнала или заменяет текущий обработчик сигнала, указанный в аргументе signo.

Список параметров

signo

Номер сигнала.

handler

Обработчик сигнала. Это может быть или callable, указатель на функцию, которая будет запущена для обработки сигнала, или значение одной из глобальных констант: SIG_IGN или SIG_DFL, которые, соответственно, либо приведут к игнорированию сигнала, либо восстановлению обработчика по умолчанию.

Если передан тип callable, он должен иметь следующую сигнатуру:

handler ( int $signo , mixed $signinfo ) : void
signo
Номер обрабатываемого сигнала.
siginfo
Если операционная система поддерживает структуры siginfo_t, можно передать массив c иформацией о сигнале соответствующей структуры.

Замечание:

Обратите внимание, что когда вы задаете в качестве обработчика метод объекта, счетчик ссылок на данный объект будет увеличен на единицу, что сохранит его в памяти до тех пор, пока вы либо не смените обработчик на что-то другое, либо до тех пор пока скрипт полностью не завершит свою работу.

restart_syscalls

Определяет, должен ли использоваться перезапуск системного вызова при поступлении сигнала.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.0 | Начиная с PHP 7.1.0 обработчику callback-функции передается второй аргумент, содержащий структуру siginfo определенного сигнала. Эти данные будут переданы только в том случае, если операционная система поддерживает структуры siginfo_t. Если в операционной системе не реализована поддержка структуры siginfo_t, то в качестве второго аргумента будет передан NULL.

Примеры

Пример #1 Пример использования pcntl_signal()

<?php
// Обязательно
declare(ticks = 1);

// функция обработки сигнала
function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // Обработка задач остановки
             exit;
             break;
         case SIGHUP:
             // обработка задач перезапуска
             break;
         case SIGUSR1:
             echo "Получен сигнал SIGUSR1...\n";
             break;
         default:
             // Обработка других сигналов
     }

}

echo "Установка обработчиков сигналов...\n";

// Установка обработчиков сигналов
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP,  "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");

// или можете использовать объект
// pcntl_signal(SIGUSR1, array($obj, "do_something"));

echo "Отправка сигнала SIGUSR1 себе...\n";

// Отправка SIGUSR1 процессу с текущим id (т.е. себе)
// для использования функций posix_* требуется библиотека-расширение posix
posix_kill(posix_getpid(), SIGUSR1);

echo "Завершено\n";

?>

Примечания

pcntl_signal() не собирает обработчики сигналов в стек, а заменяет их.

Смотрите также

  • pcntl_fork() - Разветвить (fork) текущий запущенный процесс
  • pcntl_waitpid() - Ожидает или возвращает статус порожденного дочернего процесса


Задаёт и извлекает список блокируемых сигналов

  • « pcntl_signal
  • pcntl_sigtimedwait »
  • PHP Manual
  • Функции PCNTL
  • Задаёт и извлекает список блокируемых сигналов

pcntl_sigprocmask

(PHP 5 >= 5.3.0, PHP 7)

pcntl_sigprocmask — Задаёт и извлекает список блокируемых сигналов

Описание

pcntl_sigprocmask ( int $how , array $set [, array &$oldset ] ) : bool

Функция pcntl_sigprocmask() добавляет, удаляет или задаёт список блокированных процессов в зависимости от значения переданного в аргументе how.

Список параметров

how

Задает поведение функции pcntl_sigprocmask(). Возможные значения:

  • SIG_BLOCK: Добавить сигнал к списку уже блокируемых сигналов.
  • SIG_UNBLOCK: Удалить сигнал из списка блокируемых.
  • SIG_SETMASK: Заменить список блокируемых сигналов новым списком.

set

Список сигналов

oldset

Функция передаст по ссылке в аргумент oldset ранее заданный список блокируемых сигналов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pcntl_sigprocmask()

<?php
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));
$oldset = array();
pcntl_sigprocmask(SIG_UNBLOCK, array(SIGHUP), $oldset);
?>

Смотрите также

  • pcntl_sigwaitinfo() - Ожидание сигналов
  • pcntl_sigtimedwait() - Ожидает сигналы в течение заданного времени


Ожидает сигналы в течение заданного времени

  • « pcntl_sigprocmask
  • pcntl_sigwaitinfo »
  • PHP Manual
  • Функции PCNTL
  • Ожидает сигналы в течение заданного времени

pcntl_sigtimedwait

(PHP 5 >= 5.3.0, PHP 7)

pcntl_sigtimedwait — Ожидает сигналы в течение заданного времени

Описание

pcntl_sigtimedwait ( array $set [, array &$siginfo [, int $seconds = 0 [, int $nanoseconds = 0 ]]] ) : int

Функция pcntl_sigtimedwait() ведёт себя точно так же как и функция pcntl_sigwaitinfo() за исключением того, что принимает два дополнительных аргумента, seconds и nanoseconds, которые устанавливают верхнюю границу времени, которое скрипт может простаивать.

Список параметров

set

Массив ожидаемых сигналов.

siginfo

siginfo содержит информацию о сигнале. Смотрите функцию pcntl_sigwaitinfo().

seconds

Тайм-аут в секундах.

nanoseconds

Таймаут в наносекундах.

Возвращаемые значения

В случае успешного выполнения pcntl_sigtimedwait() возвращает номер сигнала.

Смотрите также

  • pcntl_sigprocmask() - Задаёт и извлекает список блокируемых сигналов
  • pcntl_sigwaitinfo() - Ожидание сигналов


Ожидание сигналов

  • « pcntl_sigtimedwait
  • pcntl_strerror »
  • PHP Manual
  • Функции PCNTL
  • Ожидание сигналов

pcntl_sigwaitinfo

(PHP 5 >= 5.3.0, PHP 7)

pcntl_sigwaitinfo — Ожидание сигналов

Описание

pcntl_sigwaitinfo ( array $set [, array &$siginfo ] ) : int

Функция pcntl_sigwaitinfo() приостанавливает исполнение вызываемого скрипта до тех пор, пока не будет получен сигнал, указанный в аргументе pcntl_sigwaitinfo(). Если один из сигналов уже в ожидании (т.е. заблокирован функцией pcntl_sigprocmask()), то функция pcntl_sigwaitinfo() незамедлительно вернёт управление.

Список параметров

set

Массив ожидаемых сигналов.

siginfo

Аргумент siginfo массив, содержащий информацию о сигнале.

Следующие ключи массива (аргумента) применимы для всех сигналов

  • signo: Номер сигнала
  • errno: Номер ошибки
  • code: Код сигнала

Следующие элементы массива применимы для сигнала SIGCHLD:

  • status: Статус выхода дочернего процесса или сигнал, заставивший дочерний процесс поменять состояние
  • utime: Потреблённое пользовательское время
  • stime: Потреблённое системное время
  • pid: ID процесса-отправителя
  • uid: ID пользователя владеющего процессом-отправителем

Следующие элементы массива применимы для сигналов SIGILL, SIGFPE, SIGSEGV и SIGBUS:

  • addr: Адрес памяти в котором произошёл сбой

Следующие элементы массива применимы для сигнала SIGPOLL

  • band: Cобытие ввода-вывода
  • fd: Номер файлового дескриптора

Возвращаемые значения

В случае успешного выполнения функция pcntl_sigwaitinfo() возвращает номер сигнала.

Примеры

Пример #1 Пример использования pcntl_sigwaitinfo()

<?php
echo "Блокировка сигнала SIGHUP\n";
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));

echo "Отправка сигнала SIGHUP самому себе\n";
posix_kill(posix_getpid(), SIGHUP);

echo "Ожидание сигналов\n";
$info = array();
pcntl_sigwaitinfo(array(SIGHUP), $info);
?>

Смотрите также

  • pcntl_sigprocmask() - Задаёт и извлекает список блокируемых сигналов
  • pcntl_sigtimedwait() - Ожидает сигналы в течение заданного времени


Получить текст ошибки по её коду

  • « pcntl_sigwaitinfo
  • pcntl_wait »
  • PHP Manual
  • Функции PCNTL
  • Получить текст ошибки по её коду

pcntl_strerror

(PHP 5 >= 5.3.4, PHP 7)

pcntl_strerror — Получить текст ошибки по её коду

Описание

pcntl_strerror ( int $errno ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

errno

Возвращаемые значения

Возвращает описание ошибки в случае успешного выполнения или FALSE в случае возникновения ошибки.

Смотрите также

  • pcntl_get_last_error() - Получить код последней ошибки, возникшей в pcntl-функции


Ожидает или возвращает статус порожденного дочернего процесса

  • « pcntl_strerror
  • pcntl_waitpid »
  • PHP Manual
  • Функции PCNTL
  • Ожидает или возвращает статус порожденного дочернего процесса

pcntl_wait

(PHP 5, PHP 7)

pcntl_wait — Ожидает или возвращает статус порожденного дочернего процесса

Описание

pcntl_wait ( int &$status [, int $options = 0 [, array &$rusage ]] ) : int

Функция ожидания приостанавливает выполнение текущего процесса до тех пор, пока дочерний процесс не завершится или пока не будет получен сигнал который завершает текущий процесс или вызывает функцию обработки сигнала. Если дочерний процесс уже завершился ко времени вызова (так называемые "зомби" процессы), функция незамедлительно вернёт управление. Обратитесь к вашей системному рукодводству (man) wait(2) для уточнения специфики работы wait в вашей системе.

Замечание:

Эта функция эквивалентна вызову pcntl_waitpid() с аргументом pid равным -1 и без аргумента options.

Список параметров

status

pcntl_wait() разместит информацию о статусе
по ссылке в аргументе status, который может
быть передан в слудующие функции:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() и
pcntl_wstopsig().

options

Если системный вызов wait3 (man 2 wait3) доступен в вашей системе (как правило в BSD-подобных системах), вы можете задать необязательный аргумент options. Если этот параметр не задан, будет использован стандатный системный вызов wait. Если системный вызов wait3 не доступен для вашей системы, передача значения аргумента options не будет иметь значения. Значение аргумента options - это битовая маска, которая может принимать значение ноль или более путем логического объединения следующих констант:

Возможные значения для options
WNOHANG | Незамедлительно вернуть управление, если ни один из дочерних процессов не завершен
WUNTRACED | Вернуть управление для остановленных дочерних процессов, о статусе которых ещё не сообщено

Возвращаемые значения

pcntl_wait() возвращает ID завершенного дочернего процесса, -1 при ошибке или ноль, если WNOHANG был передан в аргумент options (на системах с доступным системным вызовом wait3) и не было доступных дочерних процессов.

Смотрите также

  • pcntl_fork() - Разветвить (fork) текущий запущенный процесс
  • pcntl_signal() - Установка обработчика сигнала
  • pcntl_wifexited() - Проверяет, соответствует ли код завершения процесса нормальному завершению
  • pcntl_wifstopped() - Проверить, остановлен ли дочерний процесс
  • pcntl_wifsignaled() - Проверить, соответствует ли код завершения процесса завершению по сигналу
  • pcntl_wexitstatus() - Получить код возврата завершенного дочернего процесса
  • pcntl_wtermsig() - Получить сигнал, из-за которого был принудительно завершен дочерний процесс
  • pcntl_wstopsig() - Получить сигнал, из-за которого был остановлен дочерний процесс
  • pcntl_waitpid() - Ожидает или возвращает статус порожденного дочернего процесса


Ожидает или возвращает статус порожденного дочернего процесса

  • « pcntl_wait
  • pcntl_wexitstatus »
  • PHP Manual
  • Функции PCNTL
  • Ожидает или возвращает статус порожденного дочернего процесса

pcntl_waitpid

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_waitpid — Ожидает или возвращает статус порожденного дочернего процесса

Описание

pcntl_waitpid ( int $pid , int &$status [, int $options = 0 [, array &$rusage ]] ) : int

Функция ожидания приостанавливает выполнение текущего процесса до тех пор, пока дочерний процесс, указанный в аргументе pid, не завершится или пока не будет получен сигнал, который завершает текущий процесс или вызывает функцию обработки сигнала.

Если дочений процесс, указанный в аргументе pid, уже завершился ко времени вызова (так называемые "зомби" процессы), функция незамедлительно вернёт управление. Любые системные ресурсы используемые дочерним процессом будут освобождены. Обратитесь к вашей системному рукодводству waitpid(2) для уточнения специфики работы waitpid в вашей системе.

Список параметров

pid

Аргумент pid может принимать одно из следующих значений:

возможные значения аргумента pid
< -1 | ожидать любой дочерний процесс, у которого значение идентификатор группы процессов (group ID) равно модулю значения аргумента |pid|.
-1 | ожидать любой дочерний процесс; это такое же поведение, что и у функции wait.
0 | ожидать любой дочерний процесс, идентификатор группы процессов (group ID) которого равен идентификатору текущего процесса.
> 0 | ожидать дочерний процесс ID которого равен pid.

Замечание:

Указание -1 в качестве pid - это аналог функции pcntl_wait() (минус options).

status

pcntl_waitpid() разместит информацию о статусе
по ссылке в аргументе status, который может
быть передан в слудующие функции:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() и
pcntl_wstopsig().

options

Значение аргумента options - это битовая маска, которая может принимать значение ноль или более путем логического объединения следующих констант:

Возможные значения для options
WNOHANG | Незамедлительно вернуть управление, если ни один из дочерних процессов не завершен
WUNTRACED | Вернуть управление для остановленных дочерних процессов, о статусе которых ещё не сообщено

Возвращаемые значения

pcntl_wait() возвращает ID завершенного дочернего процесса, -1 в случае возникновения ошибке или ноль, если WNOHANG был передан в аргумент options и не было доступных дочерних процессов.

Смотрите также

  • pcntl_fork() - Разветвить (fork) текущий запущенный процесс
  • pcntl_signal() - Установка обработчика сигнала
  • pcntl_wifexited() - Проверяет, соответствует ли код завершения процесса нормальному завершению
  • pcntl_wifstopped() - Проверить, остановлен ли дочерний процесс
  • pcntl_wifsignaled() - Проверить, соответствует ли код завершения процесса завершению по сигналу
  • pcntl_wexitstatus() - Получить код возврата завершенного дочернего процесса
  • pcntl_wtermsig() - Получить сигнал, из-за которого был принудительно завершен дочерний процесс
  • pcntl_wstopsig() - Получить сигнал, из-за которого был остановлен дочерний процесс


Получить код возврата завершенного дочернего процесса

  • « pcntl_waitpid
  • pcntl_wifexited »
  • PHP Manual
  • Функции PCNTL
  • Получить код возврата завершенного дочернего процесса

pcntl_wexitstatus

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wexitstatus — Получить код возврата завершенного дочернего процесса

Описание

pcntl_wexitstatus ( int $status ) : int

Возвращает код возврата завершенного дочернего процесса. Функция применима только если функция pcntl_wifexited() вернула TRUE.

Список параметров

status

Параметр status - это параметр статуса, передаваемый для успешного вызова функции pcntl_waitpid().

Возвращаемые значения

Возвращает код возврата дочернего процесса в виде целого числа.

Смотрите также

  • pcntl_waitpid() - Ожидает или возвращает статус порожденного дочернего процесса
  • pcntl_wifexited() - Проверяет, соответствует ли код завершения процесса нормальному завершению


Проверяет, соответствует ли код завершения процесса нормальному завершению

  • « pcntl_wexitstatus
  • pcntl_wifsignaled »
  • PHP Manual
  • Функции PCNTL
  • Проверяет, соответствует ли код завершения процесса нормальному завершению

pcntl_wifexited

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wifexited — Проверяет, соответствует ли код завершения процесса нормальному завершению

Описание

pcntl_wifexited ( int $status ) : bool

Проверяет, соответствует ли код завершения процесса нормальному завершению.

Список параметров

status

Параметр status - это параметр статуса, передаваемый для успешного вызова функции pcntl_waitpid().

Возвращаемые значения

Возвращает TRUE, если код завершения дочернего процесса соответствует нормальному завершению. Если нет, то возвращает FALSE.

Смотрите также

  • pcntl_waitpid() - Ожидает или возвращает статус порожденного дочернего процесса
  • pcntl_wexitstatus() - Получить код возврата завершенного дочернего процесса


Проверить, соответствует ли код завершения процесса завершению по сигналу

  • « pcntl_wifexited
  • pcntl_wifstopped »
  • PHP Manual
  • Функции PCNTL
  • Проверить, соответствует ли код завершения процесса завершению по сигналу

pcntl_wifsignaled

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wifsignaled — Проверить, соответствует ли код завершения процесса завершению по сигналу

Описание

pcntl_wifsignaled ( int $status ) : bool

Проверить, соответствует ли код завершения процесса завершению по сигналу.

Список параметров

status

Параметр status - это параметр статуса, передаваемый для успешного вызова функции pcntl_waitpid().

Возвращаемые значения

Возвращает TRUE, если дочерний процесс был завершен из-за неперехваченного сигнала. Если нет, то возвращает FALSE.

Смотрите также

  • pcntl_waitpid() - Ожидает или возвращает статус порожденного дочернего процесса
  • pcntl_signal() - Установка обработчика сигнала


Проверить, остановлен ли дочерний процесс

  • « pcntl_wifsignaled
  • pcntl_wstopsig »
  • PHP Manual
  • Функции PCNTL
  • Проверить, остановлен ли дочерний процесс

pcntl_wifstopped

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wifstopped — Проверить, остановлен ли дочерний процесс

Описание

pcntl_wifstopped ( int $status ) : bool

Проверяет, остановлен ли дочерний процесс вызвавший возврат; это возможно только если функция pcntl_waitpid() вызывалась с опцией WUNTRACED.

Список параметров

status

Параметр status - это параметр статуса, передаваемый для успешного вызова функции pcntl_waitpid().

Возвращаемые значения

Возвращает TRUE, если дочерний процесс вызвавший возврат сейчас остановлен. Если нет, то возвращает FALSE.

Смотрите также

  • pcntl_waitpid() - Ожидает или возвращает статус порожденного дочернего процесса


Получить сигнал, из-за которого был остановлен дочерний процесс

  • « pcntl_wifstopped
  • pcntl_wtermsig »
  • PHP Manual
  • Функции PCNTL
  • Получить сигнал, из-за которого был остановлен дочерний процесс

pcntl_wstopsig

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wstopsig — Получить сигнал, из-за которого был остановлен дочерний процесс

Описание

pcntl_wstopsig ( int $status ) : int

Возвращает сигнал, из-за которого был остановлен дочерний процесс. Функция имеет смысл только если pcntl_wifstopped() вернула TRUE.

Список параметров

status

Параметр status - это параметр статуса, передаваемый для успешного вызова функции pcntl_waitpid().

Возвращаемые значения

Возвращает номер сигнала.

Смотрите также

  • pcntl_waitpid() - Ожидает или возвращает статус порожденного дочернего процесса
  • pcntl_wifstopped() - Проверить, остановлен ли дочерний процесс


Получить сигнал, из-за которого был принудительно завершен дочерний процесс

  • « pcntl_wstopsig
  • POSIX »
  • PHP Manual
  • Функции PCNTL
  • Получить сигнал, из-за которого был принудительно завершен дочерний процесс

pcntl_wtermsig

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wtermsig — Получить сигнал, из-за которого был принудительно завершен дочерний процесс

Описание

pcntl_wtermsig ( int $status ) : int

Возвращает номер сигнала, из-за которого был принудительно завершен дочерний процесс. Имеет смысл только если pcntl_wifsignaled() вернула TRUE.

Список параметров

status

Параметр status - это параметр статуса, передаваемый для успешного вызова функции pcntl_waitpid().

Возвращаемые значения

Возвращает номер сигнала в виде целого числа.

Смотрите также

  • pcntl_waitpid() - Ожидает или возвращает статус порожденного дочернего процесса
  • pcntl_signal() - Установка обработчика сигнала
  • pcntl_wifsignaled() - Проверить, соответствует ли код завершения процесса завершению по сигналу


POSIX

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
    • Константы posix_access
    • Константы posix_mknod
    • Константы posix_setrlimit
  • POSIX Функции
    • posix_access — Определяет доступность файла
    • posix_ctermid — Возвращает путь управляющего терминала
    • posix_errno — Псевдоним posix_get_last_error
    • posix_get_last_error — Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей
    • posix_getcwd — Возвращает путь текущей директории
    • posix_getegid — Возвращает эффективный идентификатор группы текущего процесса EGID
    • posix_geteuid — Возвращает эффективный идентификатор пользователя текущего процесса EUID
    • posix_getgid — Возвращает действительный ID группы текущего процесса GID
    • posix_getgrgid — Возвращает информацию о группе по её ID
    • posix_getgrnam — Возвращает информацию о группе, используя её имя
    • posix_getgroups — Возвращает список групп для текущего процесса
    • posix_getlogin — Возвращает логин владельца процесса
    • posix_getpgid — Возвращает ID группы текущего процесса для менеджера задач
    • posix_getpgrp — Возвращает идентификатор группы текущего процесса
    • posix_getpid — Возвращает идентификатор текущего процесса
    • posix_getppid — Возвращает идентификатор родительского процесса
    • posix_getpwnam — Возвращает информацию о пользователе по его имени
    • posix_getpwuid — Возвращает информацию о пользователе, используя его ID
    • posix_getrlimit — Возвращает информацию об ограничениях системных ресурсов
    • posix_getsid — Возвращает текущий SID процесса
    • posix_getuid — Возвращает фактический идентификатор пользователя текущего процесса UID
    • posix_initgroups — Определяет уровень доступа для группы
    • posix_isatty — Определяет является ли файловый дескриптор интерактивным терминалом
    • posix_kill — Отправляет сигнал соответствующему процессу
    • posix_mkfifo — Создает специальный fifo файл (именованный канал- pipe)
    • posix_mknod — Создает специальный или обычный файл (POSIX.1)
    • posix_setegid — Устанавливает эффективный идентификатор группы для текущего процесса EGID
    • posix_seteuid — Устанавливает эффективный идентификатор пользователя для текущего процесса EUID
    • posix_setgid — Устанавливает идентификатор группы для текущего процесса GID
    • posix_setpgid — Устанавливает идентификатор группы процесса для менеджера задач
    • posix_setrlimit — Устанавливает пределы системных ресурсов
    • posix_setsid — Делает текущий процесс лидером сессии
    • posix_setuid — Устанавливает UID текущего процесса
    • posix_strerror — Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки
    • posix_times — Возвращает информацию об использовании процессорного времени
    • posix_ttyname — Определяет имя терминального устройства
    • posix_uname — Возвращает информацию о системе


Введение

Этот модуль содержит интерфейс к функциям, определенным в стандарте IEEE 1003.1 (POSIX.1), которые не доступны с помощью других средств.

Внимание

Конфиденциальные данные могут быть получены с помощью POSIX функций, например posix_getpwnam() и других. Ни одна из POSIX функций не осуществляет какой-либо проверки доступа когда включен безопасный режим. Поэтому строго рекомендуется отключить вообще модуль POSIX (используйте --disable-posix в вашей строке конфигурации), если вы работаете в таких условиях.

Замечание: Для Windows-платформ это расширение недоступно.


Установка

POSIX функции доступны по умолчанию. Можно отключить POSIX-подобные функции посредством директивы --disable-posix .


Предопределенные константы

Содержание

  • Константы posix_access
  • Константы posix_mknod
  • Константы posix_setrlimit

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.


Константы posix_access

  • « Предопределенные константы
  • Константы posix_mknod »
  • PHP Manual
  • Предопределенные константы
  • Константы posix_access

Константы posix_access()

Замечание:

Данные константы доступны начиная с версии PHP 5.1.0. Пожалуйста, обратите внимание, что некоторые из данных констант могут быть недоступны в вашей операционной системе.

POSIX_F_OK (integer)
Проверить, существует ли файл.
POSIX_R_OK (integer)
Проверить, существует ли файл и имеется ли разрешение на чтение.
POSIX_W_OK (integer)
Проверить, существует ли файл и имеется ли разрешение на запись.
POSIX_X_OK (integer)
Проверить, существует ли файл и имеется ли разрешение на выполнение.


Константы posix_mknod

  • « Константы posix_access
  • Константы posix_setrlimit »
  • PHP Manual
  • Предопределенные константы
  • Константы posix_mknod

Константы posix_mknod()

Замечание:

Данные константы доступны начиная с версии PHP 5.1.0. Пожалуйста, обратите внимание, что некоторые из данных констант могут быть недоступны в вашей операционной системе.

POSIX_S_IFBLK (integer)
Блочный специальный файл
POSIX_S_IFCHR (integer)
Символьный специальный файл
POSIX_S_IFIFO (integer)
FIFO (именованный канал) специальный файл
POSIX_S_IFREG (integer)
Обычный файл
POSIX_S_IFSOCK (integer)
Сокет


Константы posix_setrlimit

  • « Константы posix_mknod
  • POSIX Функции »
  • PHP Manual
  • Предопределенные константы
  • Константы posix_setrlimit

Константы posix_setrlimit()

Замечание:

Данные константы доступны начиная с версии PHP 7.0.0. Пожалуйста, обратите внимание, что некоторые из данных констант могут быть недоступны в вашей операционной системе.

Замечание:

В дополнение к приведенной ниже информации вы можете изучить раздел руководства функции setrlimit() для вашей конкретной операционной системы, т.к. существуют различия в том как эти ограничения интерпретируются, даже в системах, которые заявляют о полной реализации POSIX.

POSIX_RLIMIT_AS (integer)
Максимальный размер адресного пространства процесса в байтах. Также смотрите конфигурационную директиву memory_limit.
POSIX_RLIMIT_CORE (integer)
Максимальный размер файла дампа ядра. Если это ограничение установлено в качестве 0, то файл дампа ядра создаваться не будет.
POSIX_RLIMIT_CPU (integer)
Максимальное количество процессорного времени, которое может быть использовано процессом, в секундах. Когда достигается мягкое ограничение, процессу будет отправлен сигнал SIGXCPU, который может быть обработан с помощью функции pcntl_signal(). В зависимости от операционной системы, может ежесекундно посылаться дополнительный сигнал SIGXCPU, пока не будет достигнут жесткий предел, достижение которого нельзя обработать. Процессу будет отправлен сигнал SIGKILL. Смотрите также set_time_limit().
POSIX_RLIMIT_DATA (integer)
Максимальный размер сегмента данных процесса, в байтах. Крайне маловероятно, что данное ограничение будет влиять на выполнение PHP, за исключением модулей, использующих вызовы функций brk() или sbrk().
POSIX_RLIMIT_FSIZE (integer)
Максимальный размер файлов, которые могут быть созданы процессом в байтах.
POSIX_RLIMIT_LOCKS (integer)
Максимальное количество блокировок, которое данный процесс может создать. Это поддерживается только на очень старых ядрах Linux.
POSIX_RLIMIT_MEMLOCK (integer)
Максимальное количество байт, которое может быть заблокировано в памяти.
POSIX_RLIMIT_MSGQUEUE (integer)
Максимальное количество байт, которое может быть выделено под очередь сообщений POSIX. Стандартная сборка PHP не поддерживает POSIX очередь сообщений, поэтому данное ограничение не будет иметь никакого эфефкта, кроме случаев, когда вы используете модули, обеспечивающие эту поддержку.
POSIX_RLIMIT_NICE (integer)
Максимальное значение, приоритета планировщика процессов, которое может быть установлено. Итоговое значение вычисляется как 20 - limit. Как ограничение ресурса значение не может быть отрицательным.
POSIX_RLIMIT_NOFILE (integer)
Значение, превышающее на 1, максимальное количество файловых дескрипторов, которое может быть открыть процессом.
POSIX_RLIMIT_NPROC (integer)
Максимальное количество процессов (и/или нитей, в зависимости от операционной системы) которое может быть создано для реального пользователя процесса.
POSIX_RLIMIT_RSS (integer)
Максимальный размер физической памяти (RAM), используемой кодом процесса и данными, в страницах.
POSIX_RLIMIT_RTPRIO (integer)
Максимальный приоритет реального времени, который может быть установлен с помощью системных вызовов sched_setscheduler() и sched_setparam().
POSIX_RLIMIT_RTTIME (integer)
Максимальное количество процессорного времени, в миллисекундах, которое процесс может использовать без блокирования системных вызовов при использовании планировщика реального времени.
POSIX_RLIMIT_SIGPENDING (integer)
Максимальное количество сигналов, которое можно поставить в очередь для реального пользователя данного процесса.
POSIX_RLIMIT_STACK (integer)
Максимальный размер стека процесса в байтах.
POSIX_RLIMIT_INFINITY (integer)
Используется для отображения бесконечного значения ограничения ресурса.


POSIX Функции

Смотрите также

Также может оказаться полезным раздел "Функции управления процессами".

Содержание

  • posix_access — Определяет доступность файла
  • posix_ctermid — Возвращает путь управляющего терминала
  • posix_errno — Псевдоним posix_get_last_error
  • posix_get_last_error — Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей
  • posix_getcwd — Возвращает путь текущей директории
  • posix_getegid — Возвращает эффективный идентификатор группы текущего процесса EGID
  • posix_geteuid — Возвращает эффективный идентификатор пользователя текущего процесса EUID
  • posix_getgid — Возвращает действительный ID группы текущего процесса GID
  • posix_getgrgid — Возвращает информацию о группе по её ID
  • posix_getgrnam — Возвращает информацию о группе, используя её имя
  • posix_getgroups — Возвращает список групп для текущего процесса
  • posix_getlogin — Возвращает логин владельца процесса
  • posix_getpgid — Возвращает ID группы текущего процесса для менеджера задач
  • posix_getpgrp — Возвращает идентификатор группы текущего процесса
  • posix_getpid — Возвращает идентификатор текущего процесса
  • posix_getppid — Возвращает идентификатор родительского процесса
  • posix_getpwnam — Возвращает информацию о пользователе по его имени
  • posix_getpwuid — Возвращает информацию о пользователе, используя его ID
  • posix_getrlimit — Возвращает информацию об ограничениях системных ресурсов
  • posix_getsid — Возвращает текущий SID процесса
  • posix_getuid — Возвращает фактический идентификатор пользователя текущего процесса UID
  • posix_initgroups — Определяет уровень доступа для группы
  • posix_isatty — Определяет является ли файловый дескриптор интерактивным терминалом
  • posix_kill — Отправляет сигнал соответствующему процессу
  • posix_mkfifo — Создает специальный fifo файл (именованный канал- pipe)
  • posix_mknod — Создает специальный или обычный файл (POSIX.1)
  • posix_setegid — Устанавливает эффективный идентификатор группы для текущего процесса EGID
  • posix_seteuid — Устанавливает эффективный идентификатор пользователя для текущего процесса EUID
  • posix_setgid — Устанавливает идентификатор группы для текущего процесса GID
  • posix_setpgid — Устанавливает идентификатор группы процесса для менеджера задач
  • posix_setrlimit — Устанавливает пределы системных ресурсов
  • posix_setsid — Делает текущий процесс лидером сессии
  • posix_setuid — Устанавливает UID текущего процесса
  • posix_strerror — Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки
  • posix_times — Возвращает информацию об использовании процессорного времени
  • posix_ttyname — Определяет имя терминального устройства
  • posix_uname — Возвращает информацию о системе


Определяет доступность файла

  • « POSIX Функции
  • posix_ctermid »
  • PHP Manual
  • POSIX Функции
  • Определяет доступность файла

posix_access

(PHP 5 >= 5.1.0, PHP 7)

posix_access — Определяет доступность файла

Описание

posix_access ( string $file [, int $mode = POSIX_F_OK ] ) : bool

Функция posix_access() проверяет права пользователя на доступ к файлу.

Список параметров

file

Путь к проверяемому файлу.

mode

Маска, состоящая из одной или более констант: POSIX_F_OK, POSIX_R_OK, POSIX_W_OK или POSIX_X_OK.

POSIX_R_OK, POSIX_W_OK и POSIX_X_OK проверяют существование и доступность файла на чтение, запись и выполнение. POSIX_F_OK проверяет только существование файла.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования posix_access()

В данном примере проверяется доступность файла на чтение и запись, в противном случае выводится сообщение об ошибке.

<?php

$file = 'some_file';

if (posix_access($file, POSIX_R_OK | POSIX_W_OK)) {
    echo 'Файл доступен на чтение и запись!';

} else {
    $error = posix_get_last_error();

    echo "Error $error: " . posix_strerror($error);
}

?>

Примечания

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Смотрите также

  • posix_get_last_error() - Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей
  • posix_strerror() - Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки


Возвращает путь управляющего терминала

  • « posix_access
  • posix_errno »
  • PHP Manual
  • POSIX Функции
  • Возвращает путь управляющего терминала

posix_ctermid

(PHP 4, PHP 5, PHP 7)

posix_ctermid — Возвращает путь управляющего терминала

Описание

posix_ctermid ( void ) : string

Возвращает переменную типа string, содержащую путь до текущего управляющего терминала данного процесса. В случае ошибки будет установлен ее номер, который может быть обработан с использованием posix_get_last_error()

Возвращаемые значения

В случае успешного выполнения возвращает string с путём до текущего управляющего терминала. В противном случае возвращает FALSE и устанавливает номер ошибки, который может быть обработан с помощью posix_get_last_error().

Примеры

Пример #1 Пример использования posix_ctermid()

Данный скрипт выводит путь до текущего управляющего терминала (TTY).

<?php
echo "I am running from ".posix_ctermid();
?>

Смотрите также

  • posix_ttyname() - Определяет имя терминального устройства
  • posix_get_last_error() - Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей


Псевдоним posix_get_last_error

  • « posix_ctermid
  • posix_get_last_error »
  • PHP Manual
  • POSIX Функции
  • Псевдоним posix_get_last_error

posix_errno

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

posix_errno — Псевдоним posix_get_last_error()

Описание

Эта функция является псевдонимом: posix_get_last_error().


Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей

  • « posix_errno
  • posix_getcwd »
  • PHP Manual
  • POSIX Функции
  • Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей

posix_get_last_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

posix_get_last_error — Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей

Описание

posix_get_last_error ( void ) : int

Возвращает номер ошибки, произошедшей в последней posix функции, завершившейся неудачей. Системное сообщение об ошибке, соответствующее ее номеру, может быть получено с помощью posix_strerror().

Возвращаемые значения

Возвращает номер ошибки, установленный последней posix функцией, завершившейся неудачей. В случае отсутствия ошибок возвращает 0.

Примеры

Пример #1 Пример использования posix_get_last_error()

В данном примере происходит попытка завершить несуществующий процесс по его id. Попытка завершается неудачей и возвращает номер ошибки, который будет выведен.

<?php
posix_kill(999459,SIGKILL);
echo 'Your error returned was '.posix_get_last_error(); //Your error was ___
?>

Смотрите также

  • posix_strerror() - Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки


Возвращает путь текущей директории

  • « posix_get_last_error
  • posix_getegid »
  • PHP Manual
  • POSIX Функции
  • Возвращает путь текущей директории

posix_getcwd

(PHP 4, PHP 5, PHP 7)

posix_getcwd — Возвращает путь текущей директории

Описание

posix_getcwd ( void ) : string

Возвращает абсолютный путь рабочей директории выполняемого скрипта. В случае ошибки будет установлен её номер, который может быть обработан с помощью posix_get_last_error()

Возвращаемые значения

Возвращает string с абсолютным путём в случае успеха. В случае ошибки будет возвращено FALSE, также будет установлен номер ошибки, который может быть обработан с помощью posix_get_last_error().

Примеры

Пример #1 Пример использования posix_getcwd()

В данном примере возвращается абсолютный путь рабочей директории выполняемого скрипта.

<?php
echo 'My current working directory is '.posix_getcwd();
?>

Примечания

Замечание:

Функция завершится ошибкой в следующих случаях

  • Отсутствуют права на чтение или поиск
  • Данного пути больше не существует


Возвращает эффективный идентификатор группы текущего процесса EGID

  • « posix_getcwd
  • posix_geteuid »
  • PHP Manual
  • POSIX Функции
  • Возвращает эффективный идентификатор группы текущего процесса EGID

posix_getegid

(PHP 4, PHP 5, PHP 7)

posix_getegid — Возвращает эффективный идентификатор группы текущего процесса EGID

Описание

posix_getegid ( void ) : int

Возвращает эффективной идентификатор группы текущего процесса.

Возвращаемые значения

Возвращает число типа integer соответствующее эффективному идентификатору группы.

Примеры

Пример #1 Пример использования posix_getegid()

В примере программа выводит эффективный идентификатор группы процесса, меняет его с помощью функции posix_setegid() и выводит снова.

<?php
echo 'My real group id is '.posix_getgid(); //20
posix_setegid(40);
echo 'My real group id is '.posix_getgid(); //20
echo 'My effective group id is '.posix_getegid(); //40
?>

Примечания

posix_getegid() отличается от posix_getgid() потому, что эффективный идентификатор группы может быть изменен вызванным процессом, используя posix_setegid().

Смотрите также

  • posix_getgrgid() - Возвращает информацию о группе по её ID
  • posix_getgid() - Возвращает действительный ID группы текущего процесса GID
  • posix_setgid() - Устанавливает идентификатор группы для текущего процесса GID


Возвращает эффективный идентификатор пользователя текущего процесса EUID

  • « posix_getegid
  • posix_getgid »
  • PHP Manual
  • POSIX Функции
  • Возвращает эффективный идентификатор пользователя текущего процесса EUID

posix_geteuid

(PHP 4, PHP 5, PHP 7)

posix_geteuid — Возвращает эффективный идентификатор пользователя текущего процесса EUID

Описание

posix_geteuid ( void ) : int

Возвращает число, соответствующее эффективному идентификатору пользователя текущего процесса. Посмотрите функцию posix_getpwuid() для получения информации как преобразовать данное число в имя пользователя.

Возвращаемые значения

Возвращает ID пользователя как integer

Примеры

Пример #1 Пример использования posix_geteuid()

Данный пример выводит ID текущего пользователя, затем устанавливает значение для эффективного идентификатора пользователя, используя функцию posix_seteuid(), и показывает разницу между действительным и эффективным идентификаторами пользователя.

<?php
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10001
posix_seteuid(10000);
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10000
?>

Смотрите также

  • posix_getpwuid() - Возвращает информацию о пользователе, используя его ID
  • posix_getuid() - Возвращает фактический идентификатор пользователя текущего процесса UID
  • posix_setuid() - Устанавливает UID текущего процесса
  • POSIX руководство GETEUID(2)


Возвращает действительный ID группы текущего процесса GID

  • « posix_geteuid
  • posix_getgrgid »
  • PHP Manual
  • POSIX Функции
  • Возвращает действительный ID группы текущего процесса GID

posix_getgid

(PHP 4, PHP 5, PHP 7)

posix_getgid — Возвращает действительный ID группы текущего процесса GID

Описание

posix_getgid ( void ) : int

Возвращает число, соответствующее действительному ID группы текущего процесса.

Возвращаемые значения

Возвращает integer, соответствующее действительному ID группы текущего процесса.

Примеры

Пример #1 Пример использования posix_getgid()

В примере выводится действительный идентификатор группы процесса до и после того как эффективный идентификатор группы процесса был изменен.

<?php
echo 'My real group id is '.posix_getgid(); //20
posix_setegid(40);
echo 'My real group id is '.posix_getgid(); //20
echo 'My effective group id is '.posix_getegid(); //40
?>

Смотрите также

  • posix_getgrgid() - Возвращает информацию о группе по её ID
  • posix_getegid() - Возвращает эффективный идентификатор группы текущего процесса EGID
  • posix_setgid() - Устанавливает идентификатор группы для текущего процесса GID
  • POSIX руководство GETGID(2)


Возвращает информацию о группе по её ID

  • « posix_getgid
  • posix_getgrnam »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию о группе по её ID

posix_getgrgid

(PHP 4, PHP 5, PHP 7)

posix_getgrgid — Возвращает информацию о группе по её ID

Описание

posix_getgrgid ( int $gid ) : array

Возвращает информацию о группе, используя её ID.

Список параметров

gid

Идентификатор группы.

Возвращаемые значения

Массив со следующими элементами:

Массив с информацией о группе
Элемент | Описание
name | Элемент name содержит имя группы. Это короткий, обычно менее 16 символов "дескриптор" группы, не являющийся полным именем группы.
passwd | Элемент passwd содержит пароль группы в зашифрованном виде. Часто, например в системах, использующих "shadow" файлы для хранения информации о паролях, это поле содержит строку из звёздочек.
gid | Элемент содержит ID группы и должен соответствовать gid параметру, используемому при вызове функции. Данный элемент является избыточным.
members | Этот элемент состоит из array, содержащего string. Значениями данного массива являются имена членов данной группы.

Примеры

Пример #1 Пример использования posix_getgrgid()

<?php

$groupid   = posix_getegid();
$groupinfo = posix_getgrgid($groupid);

print_r($groupinfo);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Смотрите также

  • posix_getegid() - Возвращает эффективный идентификатор группы текущего процесса EGID
  • posix_getgrnam() - Возвращает информацию о группе, используя её имя
  • filegroup() - Получает идентификатор группы файла
  • stat() - Возвращает информацию о файле
  • safe_mode_gid
  • POSIX руководство GETGRNAM(3)


Возвращает информацию о группе, используя её имя

  • « posix_getgrgid
  • posix_getgroups »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию о группе, используя её имя

posix_getgrnam

(PHP 4, PHP 5, PHP 7)

posix_getgrnam — Возвращает информацию о группе, используя её имя

Описание

posix_getgrnam ( string $name ) : array

Возвращает информацию о группе, используя её имя.

Список параметров

name

Имя группы

Возвращаемые значения

Возвращает массив (array) при успешном выполнении, или FALSE в случае возникновения ошибки. Возвращаемый массив имеет следующие элементы:

Массив с информацией о группе
Элемент | Описание
name | Элемент name содержит имя группы. Это короткий, обычно менее 16 символов "дескриптор" группы, не являющийся действительным полным именем группы. Он должен соответствовать name параметру, используемому в данной функции. Элемент является избыточным.
passwd | Элемент passwd содержит пароль группы в зашифрованном виде. Часто, например в системах, использующих "shadow" файлы для хранения информации о паролях, это поле содержит звёздочку.
gid | Идентификатор группы, состоящий из цифр.
members | Этот элемент состоит из array, содержащего string. Значениями данного массива являются имена членов данной группы.

Примеры

Пример #1 Пример использования posix_getgrnam()

<?php

$groupinfo = posix_getgrnam("toons");

print_r($groupinfo);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Смотрите также

  • posix_getegid() - Возвращает эффективный идентификатор группы текущего процесса EGID
  • posix_getgrgid() - Возвращает информацию о группе по её ID
  • filegroup() - Получает идентификатор группы файла
  • stat() - Возвращает информацию о файле
  • safe_mode_gid
  • POSIX руководство GETGRNAM(3)


Возвращает список групп для текущего процесса

  • « posix_getgrnam
  • posix_getlogin »
  • PHP Manual
  • POSIX Функции
  • Возвращает список групп для текущего процесса

posix_getgroups

(PHP 4, PHP 5, PHP 7)

posix_getgroups — Возвращает список групп для текущего процесса

Описание

posix_getgroups ( void ) : array

Возвращает список групп для текущего процесса.

Возвращаемые значения

Возвращает числовой массив, содержащий список идентификаторов групп для текущего процесса.

Примеры

Пример #1 Пример использования posix_getgroups()

<?php

$groups = posix_getgroups();

print_r($groups);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 4
    [1] => 20
    [2] => 24
    [3] => 25
    [4] => 29
    [5] => 30
    [6] => 33
    [7] => 44
    [8] => 46
    [9] => 104
    [10] => 109
    [11] => 110
    [12] => 1000
)

Смотрите также

  • posix_getgrgid() - Возвращает информацию о группе по её ID


Возвращает логин владельца процесса

  • « posix_getgroups
  • posix_getpgid »
  • PHP Manual
  • POSIX Функции
  • Возвращает логин владельца процесса

posix_getlogin

(PHP 4, PHP 5, PHP 7)

posix_getlogin — Возвращает логин владельца процесса

Описание

posix_getlogin ( void ) : string

Возвращает логин пользователя, являющегося владельцем данного процесса.

Возвращаемые значения

Возвращает логин пользователя как переменную типа string.

Примеры

Пример #1 Пример использования posix_getlogin()

<?php
echo posix_getlogin(); //apache
?>

Смотрите также

  • posix_getpwnam() - Возвращает информацию о пользователе по его имени
  • POSIX руководство GETLOGIN(3)


Возвращает ID группы текущего процесса для менеджера задач

  • « posix_getlogin
  • posix_getpgrp »
  • PHP Manual
  • POSIX Функции
  • Возвращает ID группы текущего процесса для менеджера задач

posix_getpgid

(PHP 4, PHP 5, PHP 7)

posix_getpgid — Возвращает ID группы текущего процесса для менеджера задач

Описание

posix_getpgid ( int $pid ) : int

Возвращает идентификатор группы текущего процесса. pid или FALSE в случае возникновения ошибки.

Список параметров

pid

Идентификатор текущего процесса.

Возвращаемые значения

Возвращает идентификатор как число типа integer.

Примеры

Пример #1 Пример использования posix_getpgid()

<?php
$pid = posix_getppid();
echo posix_getpgid($pid); //35
?>

Примечания

Замечание:

Это не POSIX функция, но она совместима с BSD и System V операционными системами. Если операционная система не поддерживает данную функцию, она не будет включена при компиляции. Доступность данной функции может быть проверена с помощью function_exists().

Смотрите также

  • posix_getppid() - Возвращает идентификатор родительского процесса
  • руководство SETPGID(2)


Возвращает идентификатор группы текущего процесса

  • « posix_getpgid
  • posix_getpid »
  • PHP Manual
  • POSIX Функции
  • Возвращает идентификатор группы текущего процесса

posix_getpgrp

(PHP 4, PHP 5, PHP 7)

posix_getpgrp — Возвращает идентификатор группы текущего процесса

Описание

posix_getpgrp ( void ) : int

Возвращает идентификатор группы текущего процесса.

Возвращаемые значения

Возвращает идентификатор как integer.

Смотрите также

  • POSIX.1 и getpgrp(2) руководства для POSIX систем для получения более подробной информации о группах процессов.


Возвращает идентификатор текущего процесса

  • « posix_getpgrp
  • posix_getppid »
  • PHP Manual
  • POSIX Функции
  • Возвращает идентификатор текущего процесса

posix_getpid

(PHP 4, PHP 5, PHP 7)

posix_getpid — Возвращает идентификатор текущего процесса

Описание

posix_getpid ( void ) : int

Возвращает идентификатор текущего процесса.

Возвращаемые значения

Возвращает идентификатор как integer.

Примеры

Пример #1 Пример использования posix_getpid()

<?php
echo posix_getpid(); //8805
?>

Смотрите также

  • posix_kill() - Отправляет сигнал соответствующему процессу
  • POSIX руководство GETPID(2)


Возвращает идентификатор родительского процесса

  • « posix_getpid
  • posix_getpwnam »
  • PHP Manual
  • POSIX Функции
  • Возвращает идентификатор родительского процесса

posix_getppid

(PHP 4, PHP 5, PHP 7)

posix_getppid — Возвращает идентификатор родительского процесса

Описание

posix_getppid ( void ) : int

Возвращает идентификатор родительского процесса по отношению к текущему процессу.

Возвращаемые значения

Возвращает идентификатор процесса как integer.

Примеры

Пример #1 Пример использования posix_getppid()

<?php
echo posix_getppid(); //8259
?>


Возвращает информацию о пользователе по его имени

  • « posix_getppid
  • posix_getpwuid »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию о пользователе по его имени

posix_getpwnam

(PHP 4, PHP 5, PHP 7)

posix_getpwnam — Возвращает информацию о пользователе по его имени

Описание

posix_getpwnam ( string $username ) : array

Возвращает array с информацией о переданном пользователе.

Список параметров

username

Буквенно-цифровое имя пользователя.

Возвращаемые значения

В случае успеха возвращается массив со следующими элементами, иначе возвращается FALSE.

Массив с информацией о пользователе
Элемент | Описание
name | Элемент name содержит имя пользователя. Это короткий, обычно менее 16 символов "дескриптор" пользователя, не являющийся фактическим полным именем пользователя. Должно совпадать с именем, переданным в параметре username при вызове данной функции. Элемент является избыточным.
passwd | Элемент passwd содержит пароль группы в зашифрованном виде. Часто, например в системах, использующих "shadow" файлы для хранения информации о паролях, это поле содержит звёздочку.
uid | Числовой идентификатор пользователя.
gid | Идентификатор группы пользователя. Используйте функцию posix_getgrgid() для получения имени группы и списка пользователей- её членов.
gecos | GECOS является устаревшим членом, который указывает на информационное поле в системе пакетной обработки Honeywell. Однако, это поле существует, и его содержимое формализовано в стандарте POSIX. Это поле содержит список, разделенный запятыми, и содержащий в себе полное имя пользователя, рабочий телефон, номер офиса и домашний телефон. В большинстве систем доступно только полное имя пользователя.
dir | Этот элемент содержит абсолютный путь к домашней директории пользователя.
shell | Элемент shell содержит абсолютный путь к исполняемому файлу командной оболочки пользователя по умолчанию.

Примеры

Пример #1 Пример использования posix_getpwnam()

<?php

$userinfo = posix_getpwnam("tom");

print_r($userinfo);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name]    => tom
    [passwd]  => x
    [uid]     => 10000
    [gid]     => 42
    [gecos]   => "tom,,,"
    [dir]     => "/home/tom"
    [shell]   => "/bin/bash"
)

Смотрите также

  • posix_getpwuid() - Возвращает информацию о пользователе, используя его ID
  • POSIX руководство GETPWNAM(3)


Возвращает информацию о пользователе, используя его ID

  • « posix_getpwnam
  • posix_getrlimit »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию о пользователе, используя его ID

posix_getpwuid

(PHP 4, PHP 5, PHP 7)

posix_getpwuid — Возвращает информацию о пользователе, используя его ID

Описание

posix_getpwuid ( int $uid ) : array

Возвращает array с информацией о пользователе, используя идентификатор пользователя.

Список параметров

uid

Идентификатор пользователя.

Возвращаемые значения

Возвращает ассоциативный массив со следующими элементами:

Массив с информацией о пользователе
Элемент | Описание
name | Элемент name содержит имя пользователя. Это короткий, обычно менее 16 символов "дескриптор" пользователя, не являющийся фактическим полным именем пользователя.
passwd | Элемент passwd содержит пароль группы в зашифрованном виде. Часто, например в системах, использующих "shadow" файлы для хранения информации о паролях, это поле содержит звёздочку.
uid | Числовой идентификатор пользователя, должен совпадать с параметром uid, переданном при вызове функции. Является избыточным.
gid | Идентификатор группы пользователя. Используйте функцию posix_getgrgid() для получения имени группы и списка пользователей- её членов.
gecos | GECOS является устаревшим членом, который указывает на информационное поле в системе пакетной обработки Honeywell. Однако, это поле существует, и его содержимое было формализовано в стандарте POSIX. Это поле содержит список, разделенный запятыми, и содержащий в себе полное имя пользователя, рабочий телефон, номер офиса и домашний телефон. В большинстве систем доступно только полное имя пользователя.
dir | Этот элемент содержит абсолютный путь к домашней директории пользователя.
shell | Элемент shell содержит абсолютный путь к исполняемому файлу командной оболочки пользователя по умолчанию.

Примеры

Пример #1 Пример использования posix_getpwuid()

<?php

$userinfo = posix_getpwuid(10000);

print_r($userinfo);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name]    => tom
    [passwd]  => x
    [uid]     => 10000
    [gid]     => 42
    [gecos]   => "tom,,,"
    [dir]     => "/home/tom"
    [shell]   => "/bin/bash"
)

Смотрите также

  • posix_getpwnam() - Возвращает информацию о пользователе по его имени
  • POSIX руководство GETPWNAM(3)


Возвращает информацию об ограничениях системных ресурсов

  • « posix_getpwuid
  • posix_getsid »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию об ограничениях системных ресурсов

posix_getrlimit

(PHP 4, PHP 5, PHP 7)

posix_getrlimit — Возвращает информацию об ограничениях системных ресурсов

Описание

posix_getrlimit ( void ) : array

posix_getrlimit() возвращает array с информацией о текущих мягких и жестких ограничениях системных ресурсов.

С каждым ресурсом ассоциированы свои мягкие и жесткие ограничения. Мягкие ограничения - это величина, которую ядро обещает обеспечить ресурсу. Жесткие ограничения - это величина, характеризующая потолок мягких ресурсов. Непривилегированный процесс может управлять только своими мягкими ограничениями, выставляя их от 0 до величины жесткого ограничения.

Возвращаемые значения

Возвращает ассоциативный array, каждый элемент которого соответствует определенному ограничению. Каждый лимит имеет мягкое и жесткое ограничения.

Список возможных ограничений
Ограничение | Описание ограничения
core | Максимальный размер системного файла. В случае некорректного завершения программы, операционная система завершает этот процесс и создает системный файл с дампом состояния программы, чтобы программисты могли разобраться в причинах произошедшего. Если данное ограничение установлено в 0, то системные файлы не создаются. Если размер системного файла превышает этот предел, то он обрезается до указанного размера.
totalmem | Максимальный размер памяти, доступной процессу, в байтах.
virtualmem | Максимальный размер виртуальной памяти, доступной процессу, в байтах.
data | Максимальный размер сегмента данных для процесса, в байтах.
stack | Максимальный размер стека процесса в байтах.
rss | Максимальное количество виртуальных страниц в оперативной памяти
maxproc | Максимальное количество процессов, которое может быть создано для отдельного действительного ID пользователя, вызвавшего процесс.
memlock | Максимальный объем памяти в байтах, который может быть заблокирован в RAM
cpu | Количество процессорного времени, доступного для использования в CPU.
filesize | Максимальный размер сегмента данных для процесса, в байтах.
openfiles | На один больше, чем доступное максимальное количество открытых файловых дескрипторов.

Примеры

Пример #1 Пример использования posix_getrlimit()

<?php

$limits = posix_getrlimit();

print_r($limits);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [soft core] => 0
    [hard core] => unlimited
    [soft data] => unlimited
    [hard data] => unlimited
    [soft stack] => 8388608
    [hard stack] => unlimited
    [soft totalmem] => unlimited
    [hard totalmem] => unlimited
    [soft rss] => unlimited
    [hard rss] => unlimited
    [soft maxproc] => unlimited
    [hard maxproc] => unlimited
    [soft memlock] => unlimited
    [hard memlock] => unlimited
    [soft cpu] => unlimited
    [hard cpu] => unlimited
    [soft filesize] => unlimited
    [hard filesize] => unlimited
    [soft openfiles] => 1024
    [hard openfiles] => 1024
)

Смотрите также

  • руководство GETRLIMIT(2)
  • posix_setrlimit() - Устанавливает пределы системных ресурсов


Возвращает текущий SID процесса

  • « posix_getrlimit
  • posix_getuid »
  • PHP Manual
  • POSIX Функции
  • Возвращает текущий SID процесса

posix_getsid

(PHP 4, PHP 5, PHP 7)

posix_getsid — Возвращает текущий SID процесса

Описание

posix_getsid ( int $pid ) : int

Возвращает идентификатор сессии процесса pid. Сессионным идентификатором процесса является идентификатор процесса лидера сеанса.

Список параметров

pid

Идентификатор процесса. Если установлено в 0, подразумевается текущий процесс. Если передан некорректный pid, то будет возвращено FALSE. Также будет установлен номер ошибки, который можно обработать с помощью функции posix_get_last_error().

Возвращаемые значения

Возвращает идентификатор как integer.

Примеры

Пример #1 Пример использования posix_getsid()

<?php
$pid = posix_getpid();
echo posix_getsid($pid); //8805
?>

Смотрите также

  • posix_getpgid() - Возвращает ID группы текущего процесса для менеджера задач
  • posix_setsid() - Делает текущий процесс лидером сессии
  • POSIX руководство GETSID(2)


Возвращает фактический идентификатор пользователя текущего процесса UID

  • « posix_getsid
  • posix_initgroups »
  • PHP Manual
  • POSIX Функции
  • Возвращает фактический идентификатор пользователя текущего процесса UID

posix_getuid

(PHP 4, PHP 5, PHP 7)

posix_getuid — Возвращает фактический идентификатор пользователя текущего процесса UID

Описание

posix_getuid ( void ) : int

Возвращает число, соответствующее действительному ID пользователю текущего процесса.

Возвращаемые значения

Возвращает ID пользователя как integer

Примеры

Пример #1 Пример использования posix_getuid()

<?php
echo posix_getuid(); //10000
?>

Смотрите также

  • posix_getpwuid() - Возвращает информацию о пользователе, используя его ID
  • POSIX руководство GETUID(2)


Определяет уровень доступа для группы

  • « posix_getuid
  • posix_isatty »
  • PHP Manual
  • POSIX Функции
  • Определяет уровень доступа для группы

posix_initgroups

(PHP 5 >= 5.2.0, PHP 7)

posix_initgroups — Определяет уровень доступа для группы

Описание

posix_initgroups ( string $name , int $base_group_id ) : bool

Определяет уровень доступа группы для пользователя, указанного в параметрах.

Список параметров

name

Имя пользователя, для которого определяется уровень доступа.

base_group_id

Идентификатор базовой группы из файла password.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • Руководство Unix initgroups(3).


Определяет является ли файловый дескриптор интерактивным терминалом

  • « posix_initgroups
  • posix_kill »
  • PHP Manual
  • POSIX Функции
  • Определяет является ли файловый дескриптор интерактивным терминалом

posix_isatty

(PHP 4, PHP 5, PHP 7)

posix_isatty — Определяет является ли файловый дескриптор интерактивным терминалом

Описание

posix_isatty ( mixed $fd ) : bool

Определяет является ли файловый дескриптор fd ссылкой на валидный терминал.

Список параметров

fd

Файловый дескриптор, который ожидается в виде или ресурса resource или целого числа integer. Под integer подразумевается файловый дескриптор, который можно передать непосредственно в базовый системный вызов.

В большинстве случаев, вам нужно будет передавать файловый resource.

Возвращаемые значения

Возвращает TRUE если fd является открытым файловым дескриптором, связанным с терминалом и FALSE в остальных случаях.

Смотрите также

  • posix_ttyname() - Определяет имя терминального устройства
  • stream_isatty() - Проверяет, является ли поток TTY


Отправляет сигнал соответствующему процессу

  • « posix_isatty
  • posix_mkfifo »
  • PHP Manual
  • POSIX Функции
  • Отправляет сигнал соответствующему процессу

posix_kill

(PHP 4, PHP 5, PHP 7)

posix_kill — Отправляет сигнал соответствующему процессу

Описание

posix_kill ( int $pid , int $sig ) : bool

Отправляет сигнал sig процессу с идентификатором pid.

Список параметров

pid

Идентификатор процесса.

sig

Одна из PCNTL констант сигналов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • kill(2) руководство для POSIX систем, которые содержат дополнительную информацию об отрицательных идентификаторах процессов, специальном идентификаторе 0, специальном идентификаторе -1, и сигнале с идентификатором 0.


Создает специальный fifo файл (именованный канал- pipe)

  • « posix_kill
  • posix_mknod »
  • PHP Manual
  • POSIX Функции
  • Создает специальный fifo файл (именованный канал- pipe)

posix_mkfifo

(PHP 4, PHP 5, PHP 7)

posix_mkfifo — Создает специальный fifo файл (именованный канал- pipe)

Описание

posix_mkfifo ( string $pathname , int $mode ) : bool

posix_mkfifo() создает специальный FIFO файл, который существует в файловой системе и выступает в качестве двунаправленной связи для процессов.

Список параметров

pathname

Путь к FIFO файлу.

mode

Второй параметр mode должен быть представлен в восьмеричной нотации (например 0644). Это уровень прав для вновь созданного FIFO файла, также зависит от настроек текущего umask(). Права на созданный файл будут определяться как результат (mode & ~umask).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.


Создает специальный или обычный файл (POSIX.1)

  • « posix_mkfifo
  • posix_setegid »
  • PHP Manual
  • POSIX Функции
  • Создает специальный или обычный файл (POSIX.1)

posix_mknod

(PHP 5 >= 5.1.0, PHP 7)

posix_mknod — Создает специальный или обычный файл (POSIX.1)

Описание

posix_mknod ( string $pathname , int $mode [, int $major = 0 [, int $minor = 0 ]] ) : bool

Создает специальный или обычный файл.

Список параметров

pathname

Путь и имя создаваемого файла

mode

Данный параметр получается с помощью побитового ИЛИ между типом файла (одной из следующих констант: POSIX_S_IFREG, POSIX_S_IFCHR, POSIX_S_IFBLK, POSIX_S_IFIFO или POSIX_S_IFSOCK) и правами доступа.

major

Старший номер устройства (обязательный параметр при использовании констант S_IFCHR или S_IFBLK).

minor

Младший номер устройства.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования posix_mknod()

<?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() - Создает специальный fifo файл (именованный канал- pipe)


Устанавливает эффективный идентификатор группы для текущего процесса EGID

  • « posix_mknod
  • posix_seteuid »
  • PHP Manual
  • POSIX Функции
  • Устанавливает эффективный идентификатор группы для текущего процесса EGID

posix_setegid

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

posix_setegid — Устанавливает эффективный идентификатор группы для текущего процесса EGID

Описание

posix_setegid ( int $gid ) : bool

Устанавливает эффективный идентификатор группы для текущего процесса. Это привилегированная функция и требует соответствующих прав (как правило прав суперпользователя root) в системе, чтобы иметь возможность выполнять её.

Список параметров

gid

Устанавливаемый эффективный идентификатор группы для текущего процесса

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования posix_setegid()

Данный пример выводит эффективный идентификатор группы процесса до и после изменения.

<?php
echo 'My real group id is '.posix_getgid(); //20
posix_setegid(40);
echo 'My real group id is '.posix_getgid(); //20
echo 'My effective group id is '.posix_getegid(); //40
?>

Смотрите также

  • posix_getgrgid() - Возвращает информацию о группе по её ID
  • posix_getgid() - Возвращает действительный ID группы текущего процесса GID
  • posix_setgid() - Устанавливает идентификатор группы для текущего процесса GID


Устанавливает эффективный идентификатор пользователя для текущего процесса EUID

  • « posix_setegid
  • posix_setgid »
  • PHP Manual
  • POSIX Функции
  • Устанавливает эффективный идентификатор пользователя для текущего процесса EUID

posix_seteuid

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

posix_seteuid — Устанавливает эффективный идентификатор пользователя для текущего процесса EUID

Описание

posix_seteuid ( int $uid ) : bool

Устанавливает эффективный идентификатор пользователя. Это привилегированная функция и требует соответствующих прав (как правило прав суперпользователя root) чтобы иметь возможность выполнить её.

Список параметров

uid

Устанавливаемый идентификатор пользователя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • posix_geteuid() - Возвращает эффективный идентификатор пользователя текущего процесса EUID
  • posix_setuid() - Устанавливает UID текущего процесса
  • posix_getuid() - Возвращает фактический идентификатор пользователя текущего процесса UID


Устанавливает идентификатор группы для текущего процесса GID

  • « posix_seteuid
  • posix_setpgid »
  • PHP Manual
  • POSIX Функции
  • Устанавливает идентификатор группы для текущего процесса GID

posix_setgid

(PHP 4, PHP 5, PHP 7)

posix_setgid — Устанавливает идентификатор группы для текущего процесса GID

Описание

posix_setgid ( int $gid ) : bool

Устанавливает фактический идентификатор группы текущего процесса. Это привилегированная функция и требует соответствующих прав (обычно прав суперпользователя root) в системе, чтобы иметь возможность выполнить её. Правильным является следующий порядок вызова функций: сначала posix_setgid(), затем posix_setuid().

Замечание:

Если функция будет вызвана суперпользователем, то также будет установлен и эффективный идентификатор группы пользователя.

Список параметров

gid

Идентификатор группы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования posix_setgid()

Код ниже выводит эффективный идентификатор группы до и после изменения.

<?php
echo 'My real group id is '.posix_getgid(); //20
posix_setgid(40);
echo 'My real group id is '.posix_getgid(); //40
echo 'My effective group id is '.posix_getegid(); //40
?>

Смотрите также

  • posix_getgrgid() - Возвращает информацию о группе по её ID
  • posix_getgid() - Возвращает действительный ID группы текущего процесса GID


Устанавливает идентификатор группы процесса для менеджера задач

  • « posix_setgid
  • posix_setrlimit »
  • PHP Manual
  • POSIX Функции
  • Устанавливает идентификатор группы процесса для менеджера задач

posix_setpgid

(PHP 4, PHP 5, PHP 7)

posix_setpgid — Устанавливает идентификатор группы процесса для менеджера задач

Описание

posix_setpgid ( int $pid , int $pgid ) : bool

Добавляет к процессу pid идентификатор группы pgid.

Список параметров

pid

Идентификатор процесса.

pgid

Идентификатор группы процесса.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • Для получения более полной информации о процессах и управлении заданиями обратитесь к POSIX.1 и setsid(2) руководству в POSIX системах.


Устанавливает пределы системных ресурсов

  • « posix_setpgid
  • posix_setsid »
  • PHP Manual
  • POSIX Функции
  • Устанавливает пределы системных ресурсов

posix_setrlimit

(PHP 7)

posix_setrlimit — Устанавливает пределы системных ресурсов

Описание

posix_setrlimit ( int $resource , int $softlimit , int $hardlimit ) : bool

posix_setrlimit() устанавливает жесткие и мягкие пределы заданных системных ресурсов.

С каждым ресурсом ассоциированы свои мягкие и жесткие ограничения. Мягкие ограничения - это величина, которую ядро обещает обеспечить ресурсу. Жесткие ограничения - это величина, характеризующая потолок мягких ресурсов. Непривилегированный процесс может управлять только своими мягкими ограничениями, выставляя их от 0 до величины жесткого ограничения.

Список параметров

resource

Константа предела ресурса отвечающая за предел, который должен быть установлен.

softlimit

Мягкий предел, любой требуемый предел, или POSIX_RLIMIT_INFINITY.

hardlimit

Жесткий предел, любой требуемый предел, или POSIX_RLIMIT_INFINITY.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • man page SETRLIMIT(2)
  • posix_getrlimit() - Возвращает информацию об ограничениях системных ресурсов


Делает текущий процесс лидером сессии

  • « posix_setrlimit
  • posix_setuid »
  • PHP Manual
  • POSIX Функции
  • Делает текущий процесс лидером сессии

posix_setsid

(PHP 4, PHP 5, PHP 7)

posix_setsid — Делает текущий процесс лидером сессии

Описание

posix_setsid ( void ) : int

Делает текущий процесс лидером сессии.

Возвращаемые значения

Возвращает идентификатор сессии или -1 в случае ошибки.

Смотрите также

  • Стандарт POSIX.1 руководство по setsid(2) в POSIX совместимых системах для получения более полной информации о группах процессов и управлении заданиями.


Устанавливает UID текущего процесса

  • « posix_setsid
  • posix_strerror »
  • PHP Manual
  • POSIX Функции
  • Устанавливает UID текущего процесса

posix_setuid

(PHP 4, PHP 5, PHP 7)

posix_setuid — Устанавливает UID текущего процесса

Описание

posix_setuid ( int $uid ) : bool

Устанавливает фактический идентификатор пользователя текущего процесса. Это привилегированный процесс и требует соответствующих прав (обычно прав суперпользователя root) в системе для возможности выполнить эту функцию.

Список параметров

uid

Идентификатор пользователя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования posix_setuid()

Данный код выводит текущий идентификатор пользователя, затем изменяет его.

<?php
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10001
posix_setuid(10000);
echo posix_getuid()."\n"; //10000
echo posix_geteuid()."\n"; //10000
?>

Смотрите также

  • posix_setgid() - Устанавливает идентификатор группы для текущего процесса GID
  • posix_seteuid() - Устанавливает эффективный идентификатор пользователя для текущего процесса EUID
  • posix_getuid() - Возвращает фактический идентификатор пользователя текущего процесса UID
  • posix_geteuid() - Возвращает эффективный идентификатор пользователя текущего процесса EUID


Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки

  • « posix_setuid
  • posix_times »
  • PHP Manual
  • POSIX Функции
  • Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки

posix_strerror

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

posix_strerror — Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки

Описание

posix_strerror ( int $errno ) : string

Возвращает POSIX системное сообщение об ошибке, связанное с полученным в параметре errno номером. Вы можете получить параметр errno с помощью вызова функции posix_get_last_error().

Список параметров

errno

POSIX номер ошибки, полученный из функции posix_get_last_error(). Если передано значение 0, то будет возвращено сообщение "Success".

Возвращаемые значения

Возвращает строку с сообщением об ошибке.

Примеры

Пример #1 Пример использования posix_strerror()

Данный скрипт пытается завершить несуществующий процесс, в следствие чего будет выведено соответствующее сообщение об ошибке.

<?php
posix_kill(50,SIGKILL);
echo posix_strerror(posix_get_last_error())."\n";
?>

Результатом выполнения данного примера будет что-то подобное:

No such process

Смотрите также

  • posix_get_last_error() - Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей


Возвращает информацию об использовании процессорного времени

  • « posix_strerror
  • posix_ttyname »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию об использовании процессорного времени

posix_times

(PHP 4, PHP 5, PHP 7)

posix_times — Возвращает информацию об использовании процессорного времени

Описание

posix_times ( void ) : array

Возвращает информацию об уровне загрузки CPU.

Возвращаемые значения

Возвращает массив строк с информацией об текущем использовании CPU, который включает следующее

  • ticks - число тактов, прошедшее с момента перезагрузки.
  • utime - время пользователя, затраченное текущим процессом.
  • stime - системное время, затраченное текущим процессом.
  • cutime - время пользователя, затраченное текущим процессом и его дочерними процессами.
  • cstime - системное время, затраченное текущим процессом и его дочерними процессами..

Примечания

Внимание

Данная функция не является надежной в использовании и может вернуть неправильные значения.

Примеры

Пример #1 Пример использования posix_times()

<?php

$times = posix_times();

print_r($times);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [ticks] => 25814410
    [utime] => 1
    [stime] => 1
    [cutime] => 0
    [cstime] => 0
)


Определяет имя терминального устройства

  • « posix_times
  • posix_uname »
  • PHP Manual
  • POSIX Функции
  • Определяет имя терминального устройства

posix_ttyname

(PHP 4, PHP 5, PHP 7)

posix_ttyname — Определяет имя терминального устройства

Описание

posix_ttyname ( mixed $fd ) : string

Возвращает string, содержащую абсолютный путь до текущего терминального устройства, которое открыто и связано с файловым дескриптором fd.

Список параметров

fd

Файловый дескриптор, который ожидается в виде или ресурса resource или целого числа integer. Под integer подразумевается файловый дескриптор, который можно передать непосредственно в базовый системный вызов.

В большинстве случаев, вам нужно будет передавать файловый resource.

Возвращаемые значения

В случае успеха возвращает string, содержащую абсолютный путь до терминала, связанного с файловым дескриптором fd. В случае неудачи возвращает FALSE


Возвращает информацию о системе

  • « posix_ttyname
  • Запуск программы »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию о системе

posix_uname

(PHP 4, PHP 5, PHP 7)

posix_uname — Возвращает информацию о системе

Описание

posix_uname ( void ) : array

Возвращает информацию о системе.

Posix требует, чтобы разработчики не полагались на определенный формат различных значений, например предположение, что номер релиза должен состоять из трех чисел. Тоже касается и другой информации, возвращаемой данной функцией.

Возвращаемые значения

Возвращает массив с информацией о системе, включая следующие элементы:

  • sysname - название операционной системы (например Linux)
  • nodename - системное имя (например valiant)
  • release - номер релиза (например 2.2.10)
  • version - версия операционной системы (например #4 Tue Jul 20 17:01:36 MEST 1999)
  • machine - архитектура системы (например i586)
  • domainname - DNS имя домена (например example.com)

domainname это GNU расширение, а не часть POSIX.1, поэтому это поле доступно только для GNU систем или при использовании библиотеки GNU libc.

Примеры

Пример #1 Пример использования posix_uname()

<?php
$uname=posix_uname();
print_r($uname);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [sysname] => Linux
    [nodename] => funbox
    [release] => 2.6.20-15-server
    [version] => #2 SMP Sun Apr 15 07:41:34 UTC 2007
    [machine] => i686
)


Запуск программ в системе

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции запуска программ
    • escapeshellarg — Экранировать строку для того, чтобы она могла быть использована как аргумент командной строки
    • escapeshellcmd — Экранировать метасимволы командной строки
    • exec — Выполнить внешнюю программу
    • passthru — Выполнить внешнюю программу и отобразить необработанный вывод
    • proc_close — Завершить процесс, открытый proc_open и вернуть код возврата этого процесса
    • proc_get_status — Получить информацию о процессе, открытом proc_open
    • proc_nice — Изменить приоритет текущего процесса
    • proc_open — Выполнить команду и открыть указатель на файл для ввода/вывода
    • proc_terminate — Уничтожить процесс, открытый при помощи функции proc_open
    • shell_exec — Выполнить команду через оболочку и вернуть вывод в виде строки
    • system — Выполнить внешнюю программу и отобразить вывод


Введение

Эти функции являются средствами запуска и защиты команд в системе.

Замечание:

Все функции запуска вызывают команды через cmd.exe в Windows. Следовательно, пользователь, вызывающий эти функции должен иметь соответствующие привилегии для запуска команды. Единственное исключение - это функция proc_open() с опцией bypass_shell.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Это расширение задает ресурс процесса, возвращаемый функцией proc_open().


  • « Типы ресурсов
  • Функции запуска программ »
  • PHP Manual
  • Запуск программы
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции запуска программ

Примечания

Внимание

Открытые файлы с блокировкой (особенно открытые сессии) должны быть закрыты до выполнения программы в фоне.

Смотрите также

Эти функции также тесно связаны с оператором обратные кавычки (``). Примите во внимание, что в режиме "безопасный режим" вам необходимо учитывать директиву safe_mode_exec_dir.

Содержание

  • escapeshellarg — Экранировать строку для того, чтобы она могла быть использована как аргумент командной строки
  • escapeshellcmd — Экранировать метасимволы командной строки
  • exec — Выполнить внешнюю программу
  • passthru — Выполнить внешнюю программу и отобразить необработанный вывод
  • proc_close — Завершить процесс, открытый proc_open и вернуть код возврата этого процесса
  • proc_get_status — Получить информацию о процессе, открытом proc_open
  • proc_nice — Изменить приоритет текущего процесса
  • proc_open — Выполнить команду и открыть указатель на файл для ввода/вывода
  • proc_terminate — Уничтожить процесс, открытый при помощи функции proc_open
  • shell_exec — Выполнить команду через оболочку и вернуть вывод в виде строки
  • system — Выполнить внешнюю программу и отобразить вывод


Экранировать строку для того, чтобы она могла быть использована как аргумент командной строки

  • « Функции запуска программ
  • escapeshellcmd »
  • PHP Manual
  • Функции запуска программ
  • Экранировать строку для того, чтобы она могла быть использована как аргумент командной строки

escapeshellarg

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

escapeshellarg — Экранировать строку для того, чтобы она могла быть использована как аргумент командной строки

Описание

escapeshellarg ( string $arg ) : string

Функция escapeshellarg() добавляет одинарные кавычки вокруг строки и кавычек и экранирует любые существующие одинарные кавычки, позволяя вам передать строку непосредственно в функцию оболочки и рассматривать её как один безопасный аргумент. Эта функция должна использоваться для того, чтобы экранировать отдельные аргументы для функций оболочки, полученные из пользовательского ввода. Экранирование аргумента необходимо в таких функциях оболочки как exec(), system() и оператор "обратный апостроф".

В Windows escapeshellarg() заменяет восклицательный знак, знак процента (позднее связывание переменных) и двойные кавычки на пробелы и добавляет двойные кавычки вокруг строки.

Список параметров

arg

Аргумент, который будет экранирован.

Возвращаемые значения

Экранированная строка.

Примеры

Пример #1 Пример использования escapeshellarg()

<?php
system('ls '.escapeshellarg($dir));
?>

Список изменений

Версия | Описание
5.4.43, 5.5.27, 5.6.11 | Восклицательный знак заменяется пробелом.

Смотрите также

  • escapeshellcmd() - Экранировать метасимволы командной строки
  • exec() - Выполнить внешнюю программу
  • popen() - Открывает файловый указатель процесса
  • system() - Выполнить внешнюю программу и отобразить вывод
  • Оператор исполнения


Экранировать метасимволы командной строки

  • « escapeshellarg
  • exec »
  • PHP Manual
  • Функции запуска программ
  • Экранировать метасимволы командной строки

escapeshellcmd

(PHP 4, PHP 5, PHP 7)

escapeshellcmd — Экранировать метасимволы командной строки

Описание

escapeshellcmd ( string $command ) : string

Команда escapeshellcmd() экранирует любые символы в строке, которые могут быть использованы для обмана команды оболочки при выполнении произвольных команд. Эта функция должна быть использована, чтобы убедиться, что любые данные, вводимые пользователем, будут экранированы перед передачей их функциям exec() или system() или оператору "обратный апостроф".

Следующие символы будут экранированы при помощи обратного слеша: &#;`|*?~<>^()[]{}$\, \x0A и \xFF. Символы ' и " экранируются только в том случае, если они встречаются не попарно. В Windows все эти символы, плюс ! и % заменяются пробелом.

Список параметров

command

Команда, которая будет экранирована.

Возвращаемые значения

Экранированная строка.

Примеры

Пример #1 Пример использования escapeshellcmd()

<?php
// Мы намеренно допускаем здесь произвольное количество аргументов.
$command = './configure '.$_POST['configure_options'];

$escaped_command = escapeshellcmd($command);

system($escaped_command);
?>

Внимание

Функцию escapeshellcmd() следует использовать над всей командной строкой, но она все еще позволяет атакующему передать произвольное количество аргументов. Для экранирования одного аргумента вместо нее необходимо использовать функцию escapeshellarg().

Список изменений

Версия | Описание
5.4.43, 5.5.27, 5.6.11 | Восклицательные знаки заменяются пробелами.

Смотрите также

  • escapeshellarg() - Экранировать строку для того, чтобы она могла быть использована как аргумент командной строки
  • exec() - Выполнить внешнюю программу
  • popen() - Открывает файловый указатель процесса
  • system() - Выполнить внешнюю программу и отобразить вывод
  • Оператор исполнения


Выполнить внешнюю программу

  • « escapeshellcmd
  • passthru »
  • PHP Manual
  • Функции запуска программ
  • Выполнить внешнюю программу

exec

(PHP 4, PHP 5, PHP 7)

exec — Выполнить внешнюю программу

Описание

exec ( string $command [, array &$output [, int &$return_var ]] ) : string

exec() выполняет команду command.

Список параметров

command

Команда, которая будет исполнена.

output

Если параметр output указан, то массив будет заполнен строками вывода программы. Завершающие пробелы, такие как \n, не будут включены в массив. Обратите внимание, что если массив уже содержит какие-либо элементы, то exec() добавит новые элементы в конец массива. Если же вы не хотите, чтобы функция добавляла новые элементы в конец, вызовите unset() на этом массиве, прежде чем передать его в exec().

return_var

Если аргумент return_var присутствует вместе с output, тогда статус возврата выполненной команды будет записан в этой переменной.

Возвращаемые значения

Последняя строка из результата команды. Если требуется выполнить команду и получить все данные команды без какой-либо обработки, используйте функцию passthru().

Для получения результата выполнения команды, убедитесь, что параметр output инициализирован и используется.

Примеры

Пример #1 Пример функции exec()

<?php
// выводит имя пользователя, от имени которого запущен процесс php/httpd
// (применимо к системам с командой "whoami" в системном пути)
echo exec('whoami');
?>

Примечания

Внимание

Если вы собираетесь передавать функции пользовательские данные, используйте функции escapeshellarg() или escapeshellcmd() для того, чтобы пользователи не смогли обмануть систему, запустив произвольную команду.

Замечание:

Если вы собираетесь использовать эту функцию в программе, работающей в качестве демона, убедитесь, что стандартный вывод функции направлен в файл или другой поток, в противном случае PHP зависнет вплоть до конца выполнения программы.

Замечание:

В Windows функция exec() стартует cmd.exe для запуска команды. Если вы хотите запустить внешнюю программу без запуска cmd.exe, то используйте функцию proc_open() с установленной опцией bypass_shell.

Замечание: В случае работы в безопасном режиме, вы можете запускать что-либо только в пределах safe_mode_exec_dir. В настоящее время по практическим причинам запрещено использование .. в качестве компонента пути к исполняемому файлу.

Внимание

В случае работы в безопасном режиме, строка с командой экранируется с помощью escapeshellcmd(). Таким образом echo y | echo x становится echo y \| echo x.

Смотрите также

  • system() - Выполнить внешнюю программу и отобразить вывод
  • passthru() - Выполнить внешнюю программу и отобразить необработанный вывод
  • escapeshellcmd() - Экранировать метасимволы командной строки
  • pcntl_exec() - Запустить указанную программу в области текущего процесса
  • Оператор исполнения


Выполнить внешнюю программу и отобразить необработанный вывод

  • « exec
  • proc_close »
  • PHP Manual
  • Функции запуска программ
  • Выполнить внешнюю программу и отобразить необработанный вывод

passthru

(PHP 4, PHP 5, PHP 7)

passthru — Выполнить внешнюю программу и отобразить необработанный вывод

Описание

passthru ( string $command [, int &$return_var ] ) : void

Функция passthru() похожа на функцию exec() в том, что она выполняет команду command. Эта функция должна быть использована вместо функции exec() или system(), когда вывод команды Unix представляет собой двоичные данные, которые необходимо передать непосредственно в браузер. Стандартное использование этой функции - выполнение таких утилит как pbmplus, которые выводят непосредственно поток изображения. Установив Content-type в image/gif и затем вызвав программу pbmplus для вывода gif, вы можете создать PHP-скрипты, которые выводят изображения напрямую в браузер.

Список параметров

command

Команда, которая будет выполнена.

return_var

Если присутствует аргумент return_var, то код возврата Unix-команды будет помещён здесь.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Внимание

Если вы собираетесь передавать функции пользовательские данные, используйте функции escapeshellarg() или escapeshellcmd() для того, чтобы пользователи не смогли обмануть систему, запустив произвольную команду.

Замечание:

Если вы собираетесь использовать эту функцию в программе, работающей в качестве демона, убедитесь, что стандартный вывод функции направлен в файл или другой поток, в противном случае PHP зависнет вплоть до конца выполнения программы.

Замечание: В случае работы в безопасном режиме, вы можете запускать что-либо только в пределах safe_mode_exec_dir. В настоящее время по практическим причинам запрещено использование .. в качестве компонента пути к исполняемому файлу.

Внимание

В случае работы в безопасном режиме, строка с командой экранируется с помощью escapeshellcmd(). Таким образом echo y | echo x становится echo y \| echo x.

Смотрите также

  • exec() - Выполнить внешнюю программу
  • system() - Выполнить внешнюю программу и отобразить вывод
  • popen() - Открывает файловый указатель процесса
  • escapeshellcmd() - Экранировать метасимволы командной строки
  • Оператор исполнения


Завершить процесс, открытый proc_open и вернуть код возврата этого процесса

  • « passthru
  • proc_get_status »
  • PHP Manual
  • Функции запуска программ
  • Завершить процесс, открытый proc_open и вернуть код возврата этого процесса

proc_close

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

proc_close — Завершить процесс, открытый proc_open() и вернуть код возврата этого процесса

Описание

proc_close ( resource $process ) : int

Функция proc_close() похожа на функцию pclose(), за исключением того, что она работает только с процессами, открытыми при помощи функции proc_open(). Функция proc_close() ожидает завершения процесса и возвращает его код возврата. Если у вас есть открытые каналы для этого процесса, вы должны закрыть их при помощи функции fclose() перед тем, как вызывать эту функцию для того, чтобы избежать полной остановки программы: дочерний процесс не сможет завершиться, если есть открытые каналы.

Список параметров

process

Дескриптор типа resource, открытый при помощи proc_open(), который будет закрыт.

Возвращаемые значения

Возвращает код завершения процесса, который был запущен. В случае ошибки возвращается -1.

Замечание:

Если PHP собран с опцией --enable-sigchild, возвращаемое значение этой функции не определено.


Получить информацию о процессе, открытом proc_open

  • « proc_close
  • proc_nice »
  • PHP Manual
  • Функции запуска программ
  • Получить информацию о процессе, открытом proc_open

proc_get_status

(PHP 5, PHP 7)

proc_get_status — Получить информацию о процессе, открытом proc_open()

Описание

proc_get_status ( resource $process ) : array

proc_get_status() получает данные о процессе, открытом при помощи функции proc_open().

Список параметров

process

Дескриптор типа resource, открытый при помощи proc_open(), который будет исследоваться.

Возвращаемые значения

Массив (array) с полученной информацией в случае успеха и FALSE в случае неудачи. Получаемый массив содержит следующие элементы:

элемент | тип | описание
command | string | Строка с командой, которая была передана функции proc_open().
pid | int | идентификатор процесса
running | bool | TRUE, если процесс всё ещё запущен, FALSE, если он был завершён.
signaled | bool | TRUE, если дочерний процесс был завершён неперехваченным сигналом. Всегда устанавливается в FALSE в Windows.
stopped | bool | TRUE, если дочерний процесс был остановлен сигналом. Всегда устанавливается в FALSE в Windows.
exitcode | int | Код возврата, передаваемый процессом (имеет значение только в том случае, если running равно FALSE). Только первый вызов этой функции возвратит реальное значение, последующие вызовы будут возвращать -1.
termsig | int | Номер сигнала, который заставил дочерний процесс прекратить его выполнение (имеет значение только в том случае, если signaled равно TRUE).
stopsig | int | Номер сигнала, который заставил дочерний процесс остановить его выполнение (имеет значение только в том случае, если stopped равно TRUE).

Смотрите также

  • proc_open() - Выполнить команду и открыть указатель на файл для ввода/вывода


Изменить приоритет текущего процесса

  • « proc_get_status
  • proc_open »
  • PHP Manual
  • Функции запуска программ
  • Изменить приоритет текущего процесса

proc_nice

(PHP 5, PHP 7)

proc_nice — Изменить приоритет текущего процесса

Описание

proc_nice ( int $increment ) : bool

proc_nice() изменяет приоритет текущего процесса на значение, указанное в параметре increment. Положительное значение параметра increment будет уменьшать приоритет текущего процесса, а отрицательное значение параметра increment будет увеличивать приоритет.

Функция proc_nice() не связана с функцией proc_open() и к относящимся к ней функциям каким-либо образом.

Список параметров

increment

Новое значение приоритета процесса. Может отличаться на разных платформах.

В Unix, чем ниже эта величина, например -20, тем выше приоритет процесса.

В Windows параметр increment может принимать такие значения:

Класс приоритета | Допустимые значения
Высокий приоритет | increment < -9
Приоритет выше нормального | increment < -4
Нормальный приоритет | increment < 5 & increment > -5
Приоритет ниже нормального | increment > 5
Приоритет ожидания | increment > 9

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. В случае, если происходит ошибка, например, пользователь не имеет прав на изменение приоритета, также генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 Установка высокого приоритета с помощью proc_nice()

<?php
// Наивысший приоритет
proc_nice(-20);
?>

Список изменений

Версия | Описание
7.2.0 | Эта функция стала доступна в Windows.

Примечания

Замечание: Доступность

Функция proc_nice() будет доступна только в том случае, если ваша операционная система её поддерживает. Поддержку 'nice' имеют: SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3.

Замечание: Только Windows

В Windows эта функция изменяет приоритет текущего процесса, даже если PHP был собран как потокобезопасный.


Выполнить команду и открыть указатель на файл для ввода/вывода

  • « proc_nice
  • proc_terminate »
  • PHP Manual
  • Функции запуска программ
  • Выполнить команду и открыть указатель на файл для ввода/вывода

proc_open

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

proc_open — Выполнить команду и открыть указатель на файл для ввода/вывода

Описание

proc_open ( string $cmd , array $descriptorspec , array &$pipes [, string $cwd = NULL [, array $env = NULL [, array $other_options = NULL ]]] ) : resource

proc_open() аналогична popen(), но предоставляет намного больше контроля над выполнением программы.

Список параметров

cmd

Команда для выполнения

descriptorspec

Массив, ключи которого представляют собой номер дескриптора, а значение описывает, как PHP должен передать этот дескриптор дочернему процессу. 0 - stdin, 1 - stdout и 2 - stderr.

Каждый элемент может быть:

  • Массивом, описывающим канал (pipe) для передачи процессу. Первый элемент - это дескриптор типа, второй - настройка для выбранного типа. Возможные типы: pipe (второй элемент либо r для передачи процессу стороны канала для чтения, либо w для передачи стороны записи) и file (второй элемент - имя файла).
  • Ресурсом потока, представляющим дескриптор файла (например, открытый файл, сокет, STDIN).

Номера дескрипторов не ограничены только 0, 1 и 2 - вы можете назначить любой действительный номер дескриптора и он будет передан дочернему процессу. Это позволяет скрипту взаимодействовать с другими скриптами, работающими, как параллельные процессы. В частности, таким образом можно передавать данные, требующие защиты, в программы вроде PGP, GPG и openssl более безопасно. Также это может оказаться полезным для чтения статусной информации, предоставляемой этими программами на вспомогательных файловых дескрипторах.

pipes

Будет задан массивом указателей на файлы, соответствующие созданным каналам передачи данных PHP.

cwd

Рабочая директория команды. Это должен быть абсолютный путь к директории или NULL, если требуется использовать директорию по умолчанию (рабочая директория текущего процесса PHP).

env

Массив переменных окружения для запускаемой команды или NULL, если требуется использовать то же самое окружение, что и у текущего PHP-процесса.

other_options

Позволяет задать дополнительные настройки. На данный момент поддерживаются следующие настройки:

  • suppress_errors (только для Windows): при установке в TRUE не будут показываться ошибки, возникающие в ходе работы функции
  • bypass_shell (только для Windows): при установке в TRUE процесс будет запущен в обход оболочки cmd.exe
  • blocking_pipes (только для Windows): принудительно блокировать поток при значении TRUE
  • create_process_group (только для Windows): разрешить дочернему процессу обрабатывать CTRL события, если установлено значение TRUE

Возвращаемые значения

Возвращает ресурс, представляющий процесс. Этот ресурс необходимо освобождать функцией proc_close() по завершении работы с ним. В случае ошибки возвращает FALSE.

Список изменений

Версия | Описание
7.4.0 | Добавлена опция create_process_group в параметр other_options.
7.0.0 | Добавлена опция blocking_pipes в параметр other_options.
5.2.1 | Настройка bypass_shell добавлена в аргумент other_options.

Примеры

Пример #1 Пример использования proc_open()

<?php
$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin - канал, из которого дочерний процесс будет читать
   1 => array("pipe", "w"),  // stdout - канал, в который дочерний процесс будет записывать
   2 => array("file", "/tmp/error-output.txt", "a") // stderr - файл для записи
);

$cwd = '/tmp';
$env = array('some_option' => 'aeiou');

$process = proc_open('php', $descriptorspec, $pipes, $cwd, $env);

if (is_resource($process)) {
    // $pipes теперь выглядит так:
    // 0 => записывающий обработчик, подключенный к дочернему stdin
    // 1 => читающий обработчик, подключенный к дочернему stdout
    // Вывод сообщений об ошибках будет добавляться в /tmp/error-output.txt

    fwrite($pipes[0], '<?php print_r($_ENV); ?>');
    fclose($pipes[0]);

    echo stream_get_contents($pipes[1]);
    fclose($pipes[1]);

    // Важно закрывать все каналы перед вызовом
    // proc_close во избежание мертвой блокировки
    $return_value = proc_close($process);

    echo "команда вернула $return_value\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [some_option] => aeiou
    [PWD] => /tmp
    [SHLVL] => 1
    [_] => /usr/local/bin/php
)
команда вернула 0

Примечания

Замечание:

Совместимость с Windows: Дескрипторы дальше 2 (stderr) наследуются дочерними процессам, однако с тех пор как Windows не ассоциирует номера файловых дескрипторов с низкоуровневыми обработчиками, дочерние процессы не имеют (пока) к ним доступа. Это не относится к stdin, stdout и stderr.

Замечание:

Если нужен однонаправленный канал процесса, используйте функцию popen(), так как она значительно проще в использовании.

Смотрите также

  • popen() - Открывает файловый указатель процесса
  • exec() - Выполнить внешнюю программу
  • system() - Выполнить внешнюю программу и отобразить вывод
  • passthru() - Выполнить внешнюю программу и отобразить необработанный вывод
  • stream_select() - Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec
  • Оператор обратный апостроф


Уничтожить процесс, открытый при помощи функции proc_open

  • « proc_open
  • shell_exec »
  • PHP Manual
  • Функции запуска программ
  • Уничтожить процесс, открытый при помощи функции proc_open

proc_terminate

(PHP 5, PHP 7)

proc_terminate — Уничтожить процесс, открытый при помощи функции proc_open

Описание

proc_terminate ( resource $process [, int $signal = 15 ] ) : bool

Отправляет процессу process (созданному при помощи функции proc_open()) сигнал, говорящий о том, что он должен завершиться. Функция proc_terminate() возвращается немедленно и не ожидает завершения процесса.

Функция proc_terminate() позволяет завершить процесс и продолжить выполнение других задач. Вы можете опрашивать процесс (для того, чтобы проверить, был ли он завершён) при помощи функции proc_get_status().

Список параметров

process

Дескриптор типа resource, открытый при помощи функции proc_open(), который будет закрыт.

signal

Этот необязательный параметр полезен только на операционных системах, поддерживающих стандарт POSIX. Вы можете указать сигнал, который будет отправлен процессу, используя системный вызов kill(2). По умолчанию используется сигнал SIGTERM.

Возвращаемые значения

Возвращает статус прекращения процесса, который был запущен.

Список изменений

Версия | Описание
5.2.2 | Предыдущие версии использовали для уничтожения указанного процесса ресурс resource.

Смотрите также

  • proc_open() - Выполнить команду и открыть указатель на файл для ввода/вывода
  • proc_close() - Завершить процесс, открытый proc_open и вернуть код возврата этого процесса
  • proc_get_status() - Получить информацию о процессе, открытом proc_open


Выполнить команду через оболочку и вернуть вывод в виде строки

  • « proc_terminate
  • system »
  • PHP Manual
  • Функции запуска программ
  • Выполнить команду через оболочку и вернуть вывод в виде строки

shell_exec

(PHP 4, PHP 5, PHP 7)

shell_exec — Выполнить команду через оболочку и вернуть вывод в виде строки

Описание

shell_exec ( string $cmd ) : string

Эта функция идентична оператору с обратным апострофом.

Замечание:

В Windows нижележащий канал открывается в текстовом режиме, что может привести к сбою функции для двоичного вывода. В таком случае попробуйте вместо этого использовать popen().

Список параметров

cmd

Команда, которая будет выполнена.

Возвращаемые значения

Вывод исполняемой команды или NULL, если произошла ошибка или команда не производит вывод.

Замечание:

Эта функция может вернуть NULL в двух случаях: если произошла ошибка или если выполняемая команда ничего не выводит. Не пользуйтесь этой функцией, для определения, успешно ли выполнилась команда. Вместо этого используйте exec(), так как она предоставляет возможность проверить код возврата.

Примеры

Пример #1 Пример использования shell_exec()

<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>

Примечания

Замечание:

Эта функция недоступна в безопасном режиме.

Смотрите также

  • exec() - Выполнить внешнюю программу
  • escapeshellcmd() - Экранировать метасимволы командной строки


Выполнить внешнюю программу и отобразить вывод

  • « shell_exec
  • parallel »
  • PHP Manual
  • Функции запуска программ
  • Выполнить внешнюю программу и отобразить вывод

system

(PHP 4, PHP 5, PHP 7)

system — Выполнить внешнюю программу и отобразить вывод

Описание

system ( string $command [, int &$return_var ] ) : string

system() похожа на C-версию этой функции в том, что она выполняет указанную команду command и выводит её результат.

Вызов функции system() также пытается автоматически очистить буфер вывода веб-сервера после каждой строки вывода, если PHP работает как модуль сервера.

Если вам нужно выполнить команду и получить все данные из команды непосредственно без каких-либо препятствий, используйте функцию passthru().

Список параметров

command

Команда, которая будет выполнена.

return_var

Если передан аргумент return_var, то в эту переменную будет записан код возврата выполненной команды.

Возвращаемые значения

Возвращает последнюю строку вывода команды в случае успеха, и FALSE - в случае неудачи.

Примеры

Пример #1 Пример использования system()

<?php
echo '<pre>';

// Выводит весь результат команды оболочки "ls" и возвращает
// последнюю строку вывода в переменной $last_line. Сохраняет код возврата
// команды в $retval.
$last_line = system('ls', $retval);

// Выводим дополнительную информацию
echo '
</pre>
<hr />Последняя строка вывода: ' . $last_line . '
<hr />Код возврата: ' . $retval;
?>

Примечания

Внимание

Если вы собираетесь передавать функции пользовательские данные, используйте функции escapeshellarg() или escapeshellcmd() для того, чтобы пользователи не смогли обмануть систему, запустив произвольную команду.

Замечание:

Если вы собираетесь использовать эту функцию в программе, работающей в качестве демона, убедитесь, что стандартный вывод функции направлен в файл или другой поток, в противном случае PHP зависнет вплоть до конца выполнения программы.

Замечание: В случае работы в безопасном режиме, вы можете запускать что-либо только в пределах safe_mode_exec_dir. В настоящее время по практическим причинам запрещено использование .. в качестве компонента пути к исполняемому файлу.

Внимание

В случае работы в безопасном режиме, строка с командой экранируется с помощью escapeshellcmd(). Таким образом echo y | echo x становится echo y \| echo x.

Смотрите также

  • exec() - Выполнить внешнюю программу
  • passthru() - Выполнить внешнюю программу и отобразить необработанный вывод
  • popen() - Открывает файловый указатель процесса
  • escapeshellcmd() - Экранировать метасимволы командной строки
  • pcntl_exec() - Запустить указанную программу в области текущего процесса
  • Оператор исполнения


parallel

  • Введение
  • Installation
  • Philosophy
  • Functional API
    • parallel\bootstrap — Bootstrapping
    • parallel\run — Execution
  • parallel\Runtime — The parallel\Runtime class
    • parallel\Runtime::__construct — Runtime Construction
    • parallel\Runtime::run — Execution
    • parallel\Runtime::close — Runtime Graceful Join
    • parallel\Runtime::kill — Runtime Join
  • parallel\Future — The parallel\Future class
    • parallel\Future::cancel — Cancellation
    • parallel\Future::cancelled — State Detection
    • parallel\Future::done — State Detection
    • parallel\Future::value — Resolution
  • parallel\Channel — The parallel\Channel class
    • parallel\Channel::__construct — Channel Construction
    • parallel\Channel::make — Access
    • parallel\Channel::open — Access
    • parallel\Channel::recv — Sharing
    • parallel\Channel::send — Sharing
    • parallel\Channel::close — Closing
  • parallel\Events — The parallel\Events class
    • parallel\Events::setBlocking — Behaviour
    • parallel\Events::setTimeout — Behaviour
    • parallel\Events::setInput — Input
    • parallel\Events::addChannel — Targets
    • parallel\Events::addFuture — Targets
    • parallel\Events::remove — Targets
    • parallel\Events::poll — Polling
  • parallel\Events\Input — The parallel\Events\Input class
    • parallel\Events\Input::add — Inputs
    • parallel\Events\Input::clear — Inputs
    • parallel\Events\Input::remove — Inputs
  • parallel\Events\Event — The parallel\Events\Event class
  • parallel\Events\Event\Type — The parallel\Events\Event\Type class
  • parallel\Sync — The parallel\Sync class
    • parallel\Sync::__construct — Construction
    • parallel\Sync::get — Access
    • parallel\Sync::set — Access
    • parallel\Sync::wait — Synchronization
    • parallel\Sync::notify — Synchronization
    • parallel\Sync::__invoke — Synchronization


Введение

parallel is a parallel concurrency extension for PHP 7.2+.

A brief description of the concepts core to parallel follows, more detailed information may be found within this section of the manual.

Runtime

A parallel\Runtime represents a PHP interpreter thread. A parallel\Runtime is configured with an optional bootstrap file passed to parallel\Runtime::__construct(), this is typically an autoloader, or some other preloading routine: The bootstrap file will be included before any task is executed.

After construction the parallel\Runtime remains available until it is closed, killed, or destroyed by the normal scoping rules of PHP objects. parallel\Runtime::run() allows the programmer to schedule tasks for execution in parallel. A parallel\Runtime has a FIFO schedule, tasks will be executed in the order that they are scheduled.

Functional API

parallel implements a functional, higher level API on top of parallel\Runtime that provides a single function entry point to executing parallel code with automatic scheduling: parallel\run().

Task

A task is simply a Closure intended for parallel execution. The Closure may contain almost any instruction, including nested closures. However, there are some instructions that are prohibited in tasks:

  • yield

  • use by-reference

  • declare class

  • declare named function

Замечание:

Nested closures may yield or use by-reference, but must not contain class or named function declarations.

Замечание:

No instructions are prohibited in the files which the task may include.

Future

The parallel\Future is used to access the return value from the task, and exposes an API for cancellation of the task.

Channel

A task may be scheduled with arguments, use lexical scope variables (by-value), and return a value (via a parallel\Future), but these only allow uni-directional communication: They allow the programmer to send data into and retrieve data from a task, but do not allow bi-directional communication between tasks. The parallel\Channel API allows bi-directional communication between tasks, a parallel\Channel is a socket-like link between tasks that the programmer can use to send and receive data.

Events

The parallel\Events API implements a native feel (Traversable) event loop, and parallel\Events::poll() method. It allows the programmer to work with sets of channels and or futures. The programmer simply adds channels and futures to the event loop, optionally setting the input for writes with parallel\Events::setInput(), and enters into a foreach: parallel will read from and write to objects as they become available yielding parallel\Events\Event objects describing the operations that have occurred.

Смотрите также

  • Philosophy


Installation

Требования

parallel requires a build of PHP with ZTS (Zend Thread Safety) enabled ( --enable-maintainer-zts or --enable-zts on Windows )

Предостережение

Zend Thread Safety cannot be enabled post build; it is a build time configuration option.

parallel should build anywhere there is a working Posix Threads header (pthread.h) and ZTS build of PHP, including Windows (using the pthread-w32 project from redhat).

Установка

parallel releases are hosted by PECL and the source code by » github, the easiest route to installation is the normal PECL route: » https://pecl.php.net/package/parallel.

Windows users can download prebuilt release binaries from the » PECL website.

Предостережение

Windows users need to take the additional step of adding pthreadVC2.dll (distributed with Windows releases) to their PATH.


Philosophy

This section contains philosophies important to writing parallel code and some details about the internal implementation of parallel.

Do not communicate by sharing memory; instead, share memory by communicating.

This philosophy which is embraced by parallel has its origins in Go, one of the most widely admired if not used platforms for writing parallel code at the moment. Go programmers have to work hard to live up to this ideal: PHP and parallel do all the hard work for the programmer, and by default.

In conventional threading models found in other languages, generally threads are communicating with one another through nothing more than by virtue of the fact that they operate in the same address space. The programmer must deploy mutual exclusion, condition variables, and other low level threading or synchronization primitives in order to ensure proper communication of state and consistency.

When the conventional model is inversed, it means that threads only share memory as a result of communication (a variable is passed over a Channel for example).

When parallel passes a variable from one thread to another by any means - Task arguments, return via Future, and Channels - it is passed by value. In all but the case of unbuffered channels, the variable is also buffered so that it may not change (or be destroyed) before it is used in whichever thread the variable is being passed to. An unbuffered read over a channel is the only instance in which a thread directly reads memory allocated by another thread, it can do so safely because the thread that owns the memory is waiting for the read to complete before it can continue to manipulate it, and the thread that does not own the memory reads by value. When both threads continue, they are no longer sharing memory.

This makes writing and reasoning about parallel code much easier than the conventional model of threading. It means the programmer does not need to consider that threads may be manipulating data concurrently, because that is not possible.

This also makes PHP the perfect platform for implementing a parallel concurrency API based on CSP (message passing over channels), because PHP itself is shared nothing - PHP threads operate in their own virtual address space by default, and so may only share memory by communicating.

Data should have a definitive single owner

When approaching the CSP model for the first time, a programmer versed in the traditional model of threading may find themselves looking for concurrent data structures, because that is what they are used too: they pass around shared objects for manipulation.

When it comes to the CSP model, there is no need for data structures to be shared by many tasks, and indeed, it is simpler if they are not. The data should be owned by a single task, changes to (or operations on) that data structure should be communicated over channels and performed by the owner of the data, the success, failure, or result (state) of the change (or operation) being communicated back.

Once again the share nothing nature of PHP and copy by value nature of parallel helps the programmer to achieve this goal, no data will be shared by accident, only ever as a result of communication.


Functional API

The parallel\Runtime API provides a great degree of control to the power PHP programmer, and those intimately familiar with writing applications that use parallel concurrency.

The functional API provides less control in exchange for the ability to make decisions for the programmer:

  • all executing runtimes are bootstrapped identically

  • scheduling is determined by the API, not the programmer

parallel\run() provides the guarantee that the task will begin to execute in parallel as soon as allowed by hardware and operating system constraints, without needlessly creating runtimes. For most applications the functional API should be preferred.

Содержание

  • parallel\bootstrap — Bootstrapping
  • parallel\run — Execution


Bootstrapping

  • « Functional API
  • parallel\run »
  • PHP Manual
  • Functional API
  • Bootstrapping

parallel\bootstrap

(1.0.0)

parallel\bootstrap — Bootstrapping

Описание

parallel\bootstrap ( string $file ) : void

Shall use the provided file to bootstrap all runtimes created for automatic scheduling via parallel\run().

Exceptions

Внимание

Shall throw \parallel\Runtime\Error\Bootstrap if previously called for this process.

Внимание

Shall throw \parallel\Runtime\Error\Bootstrap if called after parallel\run().

Смотрите также

  • parallel\Runtime::run


Execution

  • « parallel\bootstrap
  • parallel\Runtime »
  • PHP Manual
  • Functional API
  • Execution

parallel\run

(1.0.0)

parallel\run — Execution

Описание

parallel\run ( Closure $task ) : ?Future

Shall schedule task for execution in parallel.

parallel\run ( Closure $task , array $argv ) : ?Future

Shall schedule task for execution in parallel, passing argv at execution time.

Automatic Scheduling

If a \parallel\Runtime internally created and cached by a previous call to parallel\run() is idle, it will be used to execute the task. If no \parallel\Runtime is idle parallel will create and cache a \parallel\Runtime.

Замечание:

\parallel\Runtime objects created by the programmer are not used for automatic scheduling.

Список параметров

task

A Closure with specific characteristics.

argv

An array of arguments with specific characteristics to be passed to task at execution time.

Task Characteristics

Closures scheduled for parallel execution must not:

  • accept or return by reference
  • accept or return internal objects (see notes)
  • execute a limited set of instructions

Instructions prohibited in Closures intended for parallel execution are:

  • yield
  • use by-reference
  • declare class
  • declare named function

Замечание:

Nested closures may yield or use by-reference, but must not contain class or named function declarations.

Замечание:

No instructions are prohibited in the files which the task may include.

Arguments Characteristics

Arguments must not:

  • contain references
  • contain resources
  • contain internal objects (see notes)

Замечание:

In the case of file stream resources, the resource will be cast to the file descriptor and passed as int where possible, this is unsupported on Windows.

Internal Objects Notes

Internal objects generally use a custom structure which cannot be copied by value safely, PHP currently lacks the mechanics to do this (without serialization) and so only objects that do not use a custom structure may be shared.

Some internal objects do not use a custom structure, for example parallel\Events\Event and so may be shared.

Closures are a special kind of internal object and support being copied by value, and so may be shared.

Channels are central to writing parallel code and support concurrent access and execution by necessity, and so may be shared.

Внимание

A user class that extends an internal class may use a custom structure as defined by the internal class, in which case they cannot be copied by value safely, and so may not be shared.

Возвращаемые значения

Внимание

The return \parallel\Future must not be ignored when the task contains a return or throw statement.

Exceptions

Внимание

Shall throw \parallel\Runtime\Error\Closed if \parallel\Runtime was closed.

Внимание

Shall throw \parallel\Runtime\Error\IllegalFunction if task is a closure created from an internal function.

Внимание

Shall throw \parallel\Runtime\Error\IllegalInstruction if task contains illegal instructions.

Внимание

Shall throw \parallel\Runtime\Error\IllegalParameter if task accepts or argv contains illegal variables.

Внимание

Shall throw \parallel\Runtime\Error\IllegalReturn if task returns illegally.

Смотрите также

  • parallel\Runtime::run


The parallel\Runtime class

(0.8.0)

Runtime Objects

Each runtime represents a single PHP thread, the thread is created (and bootstrapped) upon construction. The thread then waits for tasks to be scheduled: Scheduled tasks will be executed FIFO and then the thread will resume waiting until more tasks are scheduled, or it's closed, killed, or destroyed by the normal scoping rules of PHP objects.

Внимание

When a runtime is destroyed by the normal scoping rules of PHP objects, it will first execute all of the tasks that were scheduled, and block while doing so.

Runtime Bootstrapping

When a new runtime is created, it does not share code with the thread (or process) that created it. This means it doesn't have the same classes and functions loaded, nor the same autoloader set. In some cases, a very lightweight runtime is desirable because the tasks that will be scheduled do not need access to the code in the parent thread. In those cases where the tasks do need to access the same code, it is enough to set an autoloader as the bootstrap.

Замечание:

preloading may be used in conjunction with parallel, in this case preloaded code is available without bootstrapping

Обзор классов

final parallel\Runtime {
/* Create */
public __construct ( void )
public __construct ( string $bootstrap )
/* Execute */
public run ( Closure $task ) : ?Future
public run ( Closure $task , array $argv ) : ?Future
/* Join */
public close ( void ) : void
public kill ( void ) : void
}

Содержание

  • parallel\Runtime::__construct — Runtime Construction
  • parallel\Runtime::run — Execution
  • parallel\Runtime::close — Runtime Graceful Join
  • parallel\Runtime::kill — Runtime Join


Runtime Construction

  • « parallel\Runtime
  • parallel\Runtime::run »
  • PHP Manual
  • parallel\Runtime
  • Runtime Construction

parallel\Runtime::__construct

(0.8.0)

parallel\Runtime::__construct — Runtime Construction

Описание

public parallel\Runtime::__construct ( void )

Shall construct a new runtime without bootstrapping.

public parallel\Runtime::__construct ( string $bootstrap )

Shall construct a bootstrapped runtime.

Список параметров

bootstrap

The location of a bootstrap file, generally an autoloader.

Exceptions

Внимание

Shall throw \parallel\Runtime\Error if thread could not be created

Внимание

Shall throw \parallel\Runtime\Bootstrap if bootstrapping failed


Execution

  • « parallel\Runtime::__construct
  • parallel\Runtime::close »
  • PHP Manual
  • parallel\Runtime
  • Execution

parallel\Runtime::run

(0.8.0)

parallel\Runtime::run — Execution

Описание

public parallel\Runtime::run ( Closure $task ) : ?Future

Shall schedule task for execution in parallel.

public parallel\Runtime::run ( Closure $task , array $argv ) : ?Future

Shall schedule task for execution in parallel, passing argv at execution time.

Список параметров

task

A Closure with specific characteristics.

argv

An array of arguments with specific characteristics to be passed to task at execution time.

Task Characteristics

Closures scheduled for parallel execution must not:

  • accept or return by reference
  • accept or return internal objects (see notes)
  • execute a limited set of instructions

Instructions prohibited in Closures intended for parallel execution are:

  • yield
  • use by-reference
  • declare class
  • declare named function

Замечание:

Nested closures may yield or use by-reference, but must not contain class or named function declarations.

Замечание:

No instructions are prohibited in the files which the task may include.

Arguments Characteristics

Arguments must not:

  • contain references
  • contain resources
  • contain internal objects (see notes)

Замечание:

In the case of file stream resources, the resource will be cast to the file descriptor and passed as int where possible, this is unsupported on Windows.

Internal Objects Notes

Internal objects generally use a custom structure which cannot be copied by value safely, PHP currently lacks the mechanics to do this (without serialization) and so only objects that do not use a custom structure may be shared.

Some internal objects do not use a custom structure, for example parallel\Events\Event and so may be shared.

Closures are a special kind of internal object and support being copied by value, and so may be shared.

Channels are central to writing parallel code and support concurrent access and execution by necessity, and so may be shared.

Внимание

A user class that extends an internal class may use a custom structure as defined by the internal class, in which case they cannot be copied by value safely, and so may not be shared.

Возвращаемые значения

Внимание

The return \parallel\Future must not be ignored when the task contains a return or throw statement.

Exceptions

Внимание

Shall throw \parallel\Runtime\Error\Closed if \parallel\Runtime was closed.

Внимание

Shall throw \parallel\Runtime\Error\IllegalFunction if task is a closure created from an internal function.

Внимание

Shall throw \parallel\Runtime\Error\IllegalInstruction if task contains illegal instructions.

Внимание

Shall throw \parallel\Runtime\Error\IllegalParameter if task accepts or argv contains illegal variables.

Внимание

Shall throw \parallel\Runtime\Error\IllegalReturn if task returns illegally.


Runtime Graceful Join

  • « parallel\Runtime::run
  • parallel\Runtime::kill »
  • PHP Manual
  • parallel\Runtime
  • Runtime Graceful Join

parallel\Runtime::close

(0.8.0)

parallel\Runtime::close — Runtime Graceful Join

Описание

public parallel\Runtime::close ( void ) : void

Shall request that the runtime shutsdown.

Замечание:

Tasks scheduled for execution will be executed before the shutdown occurs.

Exceptions

Внимание

Shall throw \parallel\Runtime\Error\Closed if Runtime was already closed.


Runtime Join

  • « parallel\Runtime::close
  • parallel\Future »
  • PHP Manual
  • parallel\Runtime
  • Runtime Join

parallel\Runtime::kill

(0.8.0)

parallel\Runtime::kill — Runtime Join

Описание

public parallel\Runtime::kill ( void ) : void

Shall attempt to force the runtime to shutdown.

Замечание:

Tasks scheduled for execution will not be executed, the currently running task shall be interrupted.

Внимание

Internal function calls in progress cannot be interrupted.

Exceptions

Внимание

Shall throw \parallel\Runtime\Error\Closed if Runtime was closed.


The parallel\Future class

(0.8.0)

Futures

A Future represents the return value or uncaught exception from a task, and exposes an API for cancellation.

Пример #1 Example showing Future as return value

<?php
$runtime = new \parallel\Runtime;
$future  = $runtime->run(function(){
    return "World";
});
printf("Hello %s\n", $future->value());
?>

Результатом выполнения данного примера будет что-то подобное:

Hello World

The behaviour of a future also allows it to be used as a simple synchronization point even where the task does not return a value explicitly.

Пример #2 Example showing Future as synchronization point

<?php
$runtime = new \parallel\Runtime;
$future  = $runtime->run(function(){
    echo "in child ";
    for ($i = 0; $i < 500; $i++) {
        if ($i % 10 == 0) {
            echo ".";
        }
    }
    echo " leaving child";
});

$future->value();
echo "\nparent continues\n";
?>

Результатом выполнения данного примера будет что-то подобное:

in child .................................................. leaving child
parent continues

Обзор классов

final parallel\Future {
/* Resolution */
public value ( void ) : mixed
/* State */
public cancelled ( void ) : bool
public done ( void ) : bool
/* Cancellation */
public cancel ( void ) : bool
}

Содержание

  • parallel\Future::cancel — Cancellation
  • parallel\Future::cancelled — State Detection
  • parallel\Future::done — State Detection
  • parallel\Future::value — Resolution


Cancellation

  • « parallel\Future
  • parallel\Future::cancelled »
  • PHP Manual
  • parallel\Future
  • Cancellation

parallel\Future::cancel

(0.9.0)

parallel\Future::cancel — Cancellation

Описание

public parallel\Future::cancel ( void ) : bool

Shall try to cancel the task

Замечание:

If task is running, it will be interrupted.

Внимание

Internal function calls in progress cannot be interrupted.

Exceptions

Внимание

Shall throw \parallel\Future\Error\Killed if \parallel\Runtime executing task was killed.

Внимание

Shall throw \parallel\Future\Error\Cancelled if task was already cancelled.


State Detection

  • « parallel\Future::cancel
  • parallel\Future::done »
  • PHP Manual
  • parallel\Future
  • State Detection

parallel\Future::cancelled

(0.9.0)

parallel\Future::cancelled — State Detection

Описание

public parallel\Future::cancelled ( void ) : bool

Shall indicate if the task was cancelled


State Detection

  • « parallel\Future::cancelled
  • parallel\Future::value »
  • PHP Manual
  • parallel\Future
  • State Detection

parallel\Future::done

(0.8.0)

parallel\Future::done — State Detection

Описание

public parallel\Future::done ( void ) : bool

Shall indicate if the task is completed


Resolution

  • « parallel\Future::done
  • parallel\Channel »
  • PHP Manual
  • parallel\Future
  • Resolution

parallel\Future::value

(0.8.0)

parallel\Future::value — Resolution

Описание

public parallel\Future::value ( void ) : mixed

Shall return (and if necessary wait for) return from task

Exceptions

Внимание

Shall throw \parallel\Future\Error if waiting failed (internal error).

Внимание

Shall throw \parallel\Future\Error\Killed if \parallel\Runtime executing task was killed.

Внимание

Shall throw \parallel\Future\Error\Cancelled if task was cancelled.

Внимание

Shall throw \parallel\Future\Error\Foreign if task raised an unrecognized uncaught exception.

Внимание

Shall rethrow \Throwable uncaught in task


The parallel\Channel class

(0.9.0)

Unbuffered Channels

An unbuffered channel will block on calls to parallel\Channel::send() until there is a receiver, and block on calls to parallel\Channel::recv() until there is a sender. This means an unbuffered channel is not only a way to share data among tasks but also a simple method of synchronization.

An unbuffered channel is the fastest way to share data among tasks, requiring the least copying.

Buffered Channels

A buffered channel will not block on calls to parallel\Channel::send() until capacity is reached, calls to parallel\Channel::recv() will block until there is data in the buffer.

Closures over Channels

A powerful feature of parallel channels is that they allow the exchange of closures between tasks (and runtimes).

When a closure is sent over a channel the closure is buffered, it doesn't change the buffering of the channel transmitting the closure, but it does effect the static scope inside the closure: The same closure sent to different runtimes, or the same runtime, will not share their static scope.

This means that whenever a closure is executed that was transmitted by a channel, static state will be as it was when the closure was buffered.

Anonymous Channels

The anonymous channel constructor allows the programmer to avoid assigning names to every channel: parallel will generate a unique name for anonymous channels.

Обзор классов

final parallel\Channel {
/* Anonymous Constructor */
public __construct ( void )
public __construct ( int $capacity )
/* Access */
public make ( string $name ) : Channel
public make ( string $name , int $capacity ) : Channel
public open ( string $name ) : Channel
/* Sharing */
public recv ( void ) : mixed
public send ( mixed $value ) : void
/* Closing */
public close ( void ) : void
/* Constant for Infinitely Buffered */
const Infinite ;
}

Содержание

  • parallel\Channel::__construct — Channel Construction
  • parallel\Channel::make — Access
  • parallel\Channel::open — Access
  • parallel\Channel::recv — Sharing
  • parallel\Channel::send — Sharing
  • parallel\Channel::close — Closing


Channel Construction

  • « parallel\Channel
  • parallel\Channel::make »
  • PHP Manual
  • parallel\Channel
  • Channel Construction

parallel\Channel::__construct

(1.1.0)

parallel\Channel::__construct — Channel Construction

Описание

public parallel\Channel::__construct ( void )

Shall make an anonymous unbuffered channel

public parallel\Channel::__construct ( int $capacity )

Shall make an anonymous buffered channel with the given capacity

Список параметров

capacity

May be Channel::Infinite or a positive integer


Access

  • « parallel\Channel::__construct
  • parallel\Channel::open »
  • PHP Manual
  • parallel\Channel
  • Access

parallel\Channel::make

(0.9.0)

parallel\Channel::make — Access

Описание

public parallel\Channel::make ( string $name ) : Channel

Shall make an unbuffered channel with the given name

public parallel\Channel::make ( string $name , int $capacity ) : Channel

Shall make a buffered channel with the given name and capacity

Список параметров

name

The name of the channel.

capacity

May be Channel::Infinite or a positive integer

Exceptions

Внимание

Shall throw \parallel\Channel\Error\Existence if channel already exists.


Access

  • « parallel\Channel::make
  • parallel\Channel::recv »
  • PHP Manual
  • parallel\Channel
  • Access

parallel\Channel::open

(0.9.0)

parallel\Channel::open — Access

Описание

public parallel\Channel::open ( string $name ) : Channel

Shall open the channel with the given name

Exceptions

Внимание

Shall throw \parallel\Channel\Error\Existence if channel does not exist.


Sharing

  • « parallel\Channel::open
  • parallel\Channel::send »
  • PHP Manual
  • parallel\Channel
  • Sharing

parallel\Channel::recv

(0.9.0)

parallel\Channel::recv — Sharing

Описание

public parallel\Channel::recv ( void ) : mixed

Shall recv a value from this channel

Exceptions

Внимание

Shall throw \parallel\Channel\Error\Closed if channel is closed.


Sharing

  • « parallel\Channel::recv
  • parallel\Channel::close »
  • PHP Manual
  • parallel\Channel
  • Sharing

parallel\Channel::send

(0.9.0)

parallel\Channel::send — Sharing

Описание

public parallel\Channel::send ( mixed $value ) : void

Shall send the given value on this channel

Exceptions

Внимание

Shall throw \parallel\Channel\Error\Closed if channel is closed.

Внимание

Shall throw \parallel\Channel\Error\IllegalValue if value is illegal.


Closing

  • « parallel\Channel::send
  • parallel\Events »
  • PHP Manual
  • parallel\Channel
  • Closing

parallel\Channel::close

(0.9.0)

parallel\Channel::close — Closing

Описание

public parallel\Channel::close ( void ) : void

Shall close this channel

Exceptions

Внимание

Shall throw \parallel\Channel\Error\Closed if channel is closed.


The parallel\Events class

(0.9.0)

The Event Loop

The Event loop monitors the state of sets of futures and or channels (targets) in order to perform read (parallel\Future::value(), parallel\Channel::recv()) and write (parallel\Channel::send()) operations as the targets become available and the operations may be performed without blocking the event loop.

Обзор классов

final parallel\Events implements Countable , Traversable {
/* Input */
public setInput ( Input $input ) : void
/* Targets */
public addChannel ( parallel\Channel $channel ) : void
public addFuture ( string $name , parallel\Future $future ) : void
public remove ( string $target ) : void
/* Behaviour */
public setBlocking ( bool $blocking ) : void
public setTimeout ( int $timeout ) : void
/* Polling */
public poll ( void ) : ?Event
}

Содержание

  • parallel\Events::setBlocking — Behaviour
  • parallel\Events::setTimeout — Behaviour
  • parallel\Events::setInput — Input
  • parallel\Events::addChannel — Targets
  • parallel\Events::addFuture — Targets
  • parallel\Events::remove — Targets
  • parallel\Events::poll — Polling


Behaviour

  • « parallel\Events
  • parallel\Events::setTimeout »
  • PHP Manual
  • parallel\Events
  • Behaviour

parallel\Events::setBlocking

(0.9.0)

parallel\Events::setBlocking — Behaviour

Описание

By default when events are polled for, blocking will occur (at the PHP level) until the first event can be returned: Setting blocking mode to false will cause poll to return control if the first target polled is not ready.

This differs from setting a timeout of 0 with parallel\Events::setTimeout(), since a timeout of 0, while allowed, will cause an exception to be raised, which may be extremely slow or wasteful if what is really desired is non-blocking behaviour.

A non-blocking loop effects the return value of parallel\Events::poll(), such that it may be null before all events have been processed.

public parallel\Events::setBlocking ( bool $blocking ) : void

Shall set blocking mode

Exceptions

Внимание

Shall throw \parallel\Events\Error if loop has timeout set.


Behaviour

  • « parallel\Events::setBlocking
  • parallel\Events::setInput »
  • PHP Manual
  • parallel\Events
  • Behaviour

parallel\Events::setTimeout

(0.9.0)

parallel\Events::setTimeout — Behaviour

Описание

By default when events are polled for, blocking will occur (at the PHP level) until the first event can be returned: Setting the timeout causes an exception to be thrown when the timeout is reached.

This differs from setting blocking mode to false with parallel\Events::setBlocking(), which will not cause an exception to be thrown.

public parallel\Events::setTimeout ( int $timeout ) : void

Shall set the timeout in microseconds

Exceptions

Внимание

Shall throw \parallel\Events\Error if loop is non-blocking.


Input

  • « parallel\Events::setTimeout
  • parallel\Events::addChannel »
  • PHP Manual
  • parallel\Events
  • Input

parallel\Events::setInput

(0.9.0)

parallel\Events::setInput — Input

Описание

public parallel\Events::setInput ( Input $input ) : void

Shall set input for this event loop


Targets

  • « parallel\Events::setInput
  • parallel\Events::addFuture »
  • PHP Manual
  • parallel\Events
  • Targets

parallel\Events::addChannel

(0.9.0)

parallel\Events::addChannel — Targets

Описание

public parallel\Events::addChannel ( parallel\Channel $channel ) : void

Shall watch for events on the given channel

Exceptions

Внимание

Shall throw \parallel\Events\Error\Existence if channel was already added.


Targets

  • « parallel\Events::addChannel
  • parallel\Events::remove »
  • PHP Manual
  • parallel\Events
  • Targets

parallel\Events::addFuture

(0.9.0)

parallel\Events::addFuture — Targets

Описание

public parallel\Events::addFuture ( string $name , parallel\Future $future ) : void

Shall watch for events on the given future

Exceptions

Внимание

Shall throw \parallel\Events\Error\Existence if target with the given name was already added.


Targets

  • « parallel\Events::addFuture
  • parallel\Events::poll »
  • PHP Manual
  • parallel\Events
  • Targets

parallel\Events::remove

(0.9.0)

parallel\Events::remove — Targets

Описание

public parallel\Events::remove ( string $target ) : void

Shall remove the given target

Exceptions

Внимание

Shall throw \parallel\Events\Error\Existence if target with the given name was not found.


Polling

  • « parallel\Events::remove
  • parallel\Events\Input »
  • PHP Manual
  • parallel\Events
  • Polling

parallel\Events::poll

(0.9.0)

parallel\Events::poll — Polling

Описание

public parallel\Events::poll ( void ) : ?Event

Shall poll for the next event

Возвращаемые значения

Should there be no targets remaining, null shall be returned

Should this be a non-blocking loop, and blocking would occur, null shall be returned

Otherwise, the parallel\Events\Event returned describes the event.

Exceptions

Внимание

Shall throw \parallel\Events\Error\Timeout if timeout is used and reached.


The parallel\Events\Input class

(0.9.0)

Events Input

An Input object is a container for data that the parallel\Events object will write to parallel\Channel objects as they become available. Multiple event loops may share an Input container - parallel does not verify the contents of the container when it is set as the input for a parallel\Events object.

Замечание:

When a parallel\Events object performs a write, the target is removed from the input object as if parallel\Events\Input::remove() were called.

Обзор классов

final parallel\Events\Input {
public add ( string $target , mixed $value ) : void
public remove ( string $target ) : void
public clear ( void ) : void
}

Содержание

  • parallel\Events\Input::add — Inputs
  • parallel\Events\Input::clear — Inputs
  • parallel\Events\Input::remove — Inputs


Inputs

  • « parallel\Events\Input
  • parallel\Events\Input::clear »
  • PHP Manual
  • parallel\Events\Input
  • Inputs

parallel\Events\Input::add

(0.9.0)

parallel\Events\Input::add — Inputs

Описание

public parallel\Events\Input::add ( string $target , mixed $value ) : void

Shall set input for the given target

Exceptions

Внимание

Shall throw \parallel\Events\Input\Error\Existence if input for target already exists.

Внимание

Shall throw \parallel\Events\Input\Error\IllegalValue if value is illegal (object, null).


Inputs

  • « parallel\Events\Input::add
  • parallel\Events\Input::remove »
  • PHP Manual
  • parallel\Events\Input
  • Inputs

parallel\Events\Input::clear

(0.9.0)

parallel\Events\Input::clear — Inputs

Описание

public parallel\Events\Input::clear ( void ) : void

Shall remove input for all targets


Inputs

  • « parallel\Events\Input::clear
  • parallel\Events\Event »
  • PHP Manual
  • parallel\Events\Input
  • Inputs

parallel\Events\Input::remove

(0.9.0)

parallel\Events\Input::remove — Inputs

Описание

public parallel\Events\Input::remove ( string $target ) : void

Shall remove input for the given target

Exceptions

Внимание

Shall throw \parallel\Events\Input\Error\Existence if input for target does not exist.


The parallel\Events\Event class

(0.9.0)

Event Objects

When an Event is returned, Event::$object shall be removed from the loop that returned it, should the event be a write event the Input for Event::$source shall also be removed.

Обзор классов

final parallel\Events\Event {
/* Shall be one of Event\Type constants */
public int $type ;
/* Shall be the source of the event (target name) */
public string $source ;
/* Shall be either Future or Channel */
public object $object ;
/* Shall be set for Read/Error events */
public $value ;
}


The parallel\Events\Event\Type class

(0.9.0)

Обзор классов

final parallel\Events\Event\Type {
/* Event::$object was read into Event::$value */
const Read ;
/* Input for Event::$source written to Event::$object */
const Write ;
/* Event::$object (Channel) was closed */
const Close ;
/* Event::$object (Future) was cancelled */
const Cancel ;
/* Runtime executing Event::$object (Future) was killed */
const Kill ;
/* Event::$object (Future) raised error */
const Error ;
}


The parallel\Sync class

(1.1.0)

Low Level Synchronization

The parallel\Sync class provides access to low level synchronization primitives, mutex, condition variables, and allows the implementation of semaphores.

Synchronization for most applications is much better implemented using channels, however, in some cases authors of low level code may find it useful to be able to access these lower level mechanisms.

Обзор классов

final parallel\Sync {
/* Constructor */
public __construct ( void )
public __construct ( scalar $value )
/* Access */
public get ( void ) : scalar
public set ( scalar $value )
/* Synchronization */
public wait ( void )
public notify ([ bool $all ] )
public __invoke ( callable $critical )
}

Содержание

  • parallel\Sync::__construct — Construction
  • parallel\Sync::get — Access
  • parallel\Sync::set — Access
  • parallel\Sync::wait — Synchronization
  • parallel\Sync::notify — Synchronization
  • parallel\Sync::__invoke — Synchronization


Construction

  • « parallel\Sync
  • parallel\Sync::get »
  • PHP Manual
  • parallel\Sync
  • Construction

parallel\Sync::__construct

(1.1.0)

parallel\Sync::__construct — Construction

Описание

public parallel\Sync::__construct ( void )

Shall construct a new synchronization object with no value

public parallel\Sync::__construct ( scalar $value )

Shall construct a new synchronization object containing the given scalar value

Exceptions

Внимание

Shall throw \parallel\Sync\Error\IllegalValue if value is non-scalar.


Access

  • « parallel\Sync::__construct
  • parallel\Sync::set »
  • PHP Manual
  • parallel\Sync
  • Access

parallel\Sync::get

(1.1.0)

parallel\Sync::get — Access

Описание

public parallel\Sync::get ( void ) : scalar

Shall atomically return the syncrhonization objects value


Access

  • « parallel\Sync::get
  • parallel\Sync::wait »
  • PHP Manual
  • parallel\Sync
  • Access

parallel\Sync::set

(1.1.0)

parallel\Sync::set — Access

Описание

public parallel\Sync::set ( scalar $value )

Shall atomically set the value of the synchronization object

Exceptions

Внимание

Shall throw \parallel\Sync\Error\IllegalValue if value is non-scalar.


Synchronization

  • « parallel\Sync::set
  • parallel\Sync::notify »
  • PHP Manual
  • parallel\Sync
  • Synchronization

parallel\Sync::wait

(1.1.0)

parallel\Sync::wait — Synchronization

Описание

public parallel\Sync::wait ( void )

Shall wait for notification on this synchronization object


Synchronization

  • « parallel\Sync::wait
  • parallel\Sync::__invoke »
  • PHP Manual
  • parallel\Sync
  • Synchronization

parallel\Sync::notify

(1.1.0)

parallel\Sync::notify — Synchronization

Описание

public parallel\Sync::notify ([ bool $all ] )

Shall notify one (by default) or all threads waiting on the synchronization object


Synchronization

  • « parallel\Sync::notify
  • pthreads »
  • PHP Manual
  • parallel\Sync
  • Synchronization

parallel\Sync::__invoke

(1.1.0)

parallel\Sync::__invoke — Synchronization

Описание

public parallel\Sync::__invoke ( callable $critical )

Shall exclusively enter into the critical code


pthreads

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределенные константы
  • Threaded — Класс Threaded
    • Threaded::chunk — Manipulation
    • Threaded::count — Manipulation
    • Threaded::extend — Runtime Manipulation
    • Threaded::from — Creation
    • Threaded::getTerminationInfo — Error Detection
    • Threaded::isRunning — State Detection
    • Threaded::isTerminated — State Detection
    • Threaded::isWaiting — State Detection
    • Threaded::lock — Synchronization
    • Threaded::merge — Manipulation
    • Threaded::notify — Synchronization
    • Threaded::notifyOne — Synchronization
    • Threaded::pop — Manipulation
    • Threaded::run — Execution
    • Threaded::shift — Manipulation
    • Threaded::synchronized — Synchronization
    • Threaded::unlock — Synchronization
    • Threaded::wait — Synchronization
  • Thread — Класс Thread
    • Thread::detach — Execution
    • Thread::getCreatorId — Identification
    • Thread::getCurrentThread — Identification
    • Thread::getCurrentThreadId — Identification
    • Thread::getThreadId — Identification
    • Thread::globally — Execution
    • Thread::isJoined — State Detection
    • Thread::isStarted — State Detection
    • Thread::join — Synchronization
    • Thread::kill — Execution
    • Thread::start — Execution
  • Worker — Класс Worker
    • Worker::collect — Collect references to completed tasks
    • Worker::getStacked — Gets the remaining stack size
    • Worker::isShutdown — State Detection
    • Worker::isWorking — State Detection
    • Worker::shutdown — Shutdown the worker
    • Worker::stack — Stacking work
    • Worker::unstack — Unstacking work
  • Collectable — Интерфейс Collectable
    • Collectable::isGarbage — Определяет, помечен ли объект как мусор
    • Collectable::setGarbage — Пометить объект как мусор
  • Модификаторы — Модификаторы методов
  • Pool — Класс Pool
    • Pool::collect — Collect references to completed tasks
    • Pool::__construct — Creates a new Pool of Workers
    • Pool::resize — Resize the Pool
    • Pool::shutdown — Shutdown all workers
    • Pool::submit — Submits an object for execution
    • Pool::submitTo — Submits a task to a specific worker for execution
  • Mutex — Класс Mutex
    • Mutex::create — Create a Mutex
    • Mutex::destroy — Destroy Mutex
    • Mutex::lock — Acquire Mutex
    • Mutex::trylock — Attempt to Acquire Mutex
    • Mutex::unlock — Release Mutex
  • Cond — Класс Cond
    • Cond::broadcast — Broadcast a Condition
    • Cond::create — Create a Condition
    • Cond::destroy — Destroy a Condition
    • Cond::signal — Signal a Condition
    • Cond::wait — Wait for Condition
  • Volatile — Класс Volatile


Введение

pthreads предоставляет объектно-ориентированый API для работы с многопоточностью в PHP. Приложения на PHP могут создавать, читать, записывать, запускать и выполнять синхронизацию с объектами Threads, Workers и Threaded.

Подсказка

Попробуйте вместо этого использовать parallel.

Внимание

Это расширение доступно только для CLI-приложений. Исходя из этого, многопоточность в PHP в окружении веб-сервера недоступна.

Внимание

pthreads (v3) может использоваться только с PHP 7.2 и выше, так как ZTS-режим нестабилен в 7.0 и 7.1.

Класс Threaded предоставляет базовый функционал, необходимый для работы pthreads. Он предоставляет методы синхронизации и некоторые полезные для разработчика интерфейсы.

Класс Thread позволяет создавать потоки. Для создания потока необходимо создать наследующие его класс и в нём реализовать метод run. Любые свойства могут быть записаны и прочитаны из любого контекста через ссылку на поток. Также из любого контекста могут быть вызваны публичные и защищенные методы. Метод run будет запущен в отдельном потоке, как только будет вызван метод Thread::start() из контекста, в котором он был создан. Стартовать и присоединить поток можно только в том контексте, где он был создан.

Класс Worker имеет постоянное состояние и будет доступен из метода Thread::start() (унаследованный метод) до тех пор, пока объект не выйдет из области видимости, либо пока не будет принудительно остановлен (с помощью Worker::shutdown()). Любой контекст имеющий ссылку к данному объекту может добавлять задания на стек Worker (с помощью Worker::stack()), которые будут запущены в отдельном потоке. Метод run объекта Worker будет запущен раньше, чем любой объект с его стека задач, что дает возможность инициализировать необходимые для задачи ресурсы.

Класс Pool используется для создания группы исполнителей (worker) для распределения между ними объектов Threaded. Это самый простой и эффективный вариант использования многопоточности в PHP.

Предостережение

Класс Pool не наследует Threaded, таким образом являясь обычным объектом PHP. Объекты этого класса не должны разделяться по различным контекстам.

Класс Volatile добавлен в pthreads v3. Он используется для задания изменяемых Threaded-свойств классов типа Threaded (так как теперь они по умолчанию неизменяемы). Также используется для хранения массивов PHP в контексте Threaded.

Синхронизация - важная часть многопоточности. Все объекты, созданные pthreads, имеют встроенные методы для обеспечения синхронизации (они покажутся очень знакомыми для разработчиков на Java): Threaded::wait() и Threaded::notify(). Вызов Threaded::wait() переведет объект в ожидание до того момента, пока из другого контекста не будет вызван Threaded::notify() для ожидающего объекта. Этот механизм позволяет осуществлять синхронизацию между объектами Threaded.

Предостережение

Любые объекты вашего приложения, которые предполагается использовать в многопоточном режиме, должны наследовать Threaded.

Хранение данных: Как правило, в объекте Threaded можно использовать любые данные, которые могут быть сериализованы. Они могут быть записаны и прочтены из любого контекста через ссылку на этот объект. Не каждый тип данных хранится в сериализованном виде. Базовые типы хранятся в их истинной форме. Сложные типы, массивы и объекты , не являющиеся Threaded, хранятся сериализованными; они могут быть прочитаны или записаны в Threaded-объект из любого контекста по ссылке. За исключением Threaded-объектов, все ссылки, использующиеся для установки свойства в Threaded-объекте отделены от ссылок внутри Threaded-объекте. Чтение тех же данных можно производить напрямую из любого контекста по ссылке на Threaded-объекте.

Статические свойства: Когда создается новый контекст (Thread или Worker), они просто копируются, но ресурсы и объекты обнуляются (из соображения безопасности). Это позволяет использоваь их как локальные для потока хранилища. К примеру, во время создания контекста, для класса, статические свойства которого хранят информацию о соединении к БД и само соединение, будет скопирована только информация необходимая для соединения, но не само соединение. Это позволит создать новое соединение в новом контексте и сохранить его в том же месте никак не затрагивая оригинальный контекст.

Предостережение

Когда запускаются print_r, var_dump или другие отладочные функции, они не включают защиту от рекурсии.

Замечание:

Ресурсы: Расширения и функционал PHP, создающие ресурсы, совершенно не подготовлены для такого типа окружения; pthreads предоставляет механизм разделения ресурсов между контекстами, однако для большинства типов ресурсов его следует считать небезопасным. Разделяя ресурс между контекстами необходимо быть крайне внимательным и осторожным.

Предостережение

В окружении, где запускается pthreads, необходимы некоторые ограничения и запреты для обеспечения стабильности.


Требования

Для pthreads необходима потокобезопасная сборка PHP, т.е. ZTS (Zend Thread Safety). Сделать это можно указав при компиляции ключ --enable-maintainer-zts, либо --enable-zts для Windows.

Предостережение

После компиляции потокобезопасность нельзя включить - это исключительно опция, устанавливаемая на этапе компиляции.

pthreads можно собрать везде, где присутствуют заголовочные файлы Posix Threads (pthread.h) и потокобезопасная сборка PHP, включая Windows (используя проект pthread-w32 из redhat).


Установка

Готовые сборки pthreads располагаются в PECL, а исходный код на » github. Самый простой путь - установить из PECL: » https://pecl.php.net/package/pthreads.

Пользователям Windows нужно загрузить подготовленный бинарный файл с сайта » PECL.

Предостережение

Пользователям Windows придется произвести дополнительные действия для добавления pthreadVC2.dll (присутствует в релизах для Windows) в переменную PATH.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

PTHREADS_INHERIT_ALL (integer)
Настройка по умолчанию для всех потоков, указывает pthreads копировать все окружение при создании нового потока (класс Thread)
PTHREADS_INHERIT_NONE (integer)
Ничего не наследовать при старте нового потока
PTHREADS_INHERIT_INI (integer)
Наследовать INI-настройки при старте нового потока
PTHREADS_INHERIT_CONSTANTS (integer)
Наследовать пользовательские константы при старте нового потока
PTHREADS_INHERIT_CLASSES (integer)
Наследовать пользовательские классы при старте нового потока
PTHREADS_INHERIT_FUNCTIONS (integer)
Наследовать пользовательские функции при старте нового потока
PTHREADS_INHERIT_INCLUDES (integer)
Наследовать информацию из подключенных файлов при старте нового потока
PTHREADS_INHERIT_COMMENTS (integer)
Наследовать все комментарии при старте нового потока
PTHREADS_ALLOW_HEADERS (integer)
Позволять потокам отправлять заголовки (headers) в стандартный вывод (обычно запрещено)


Класс Threaded

(PECL pthreads >= 2.0.0)

Введение

Объекты Threaded формируют базис способности pthreads запускать пользоовательский код в новых потоках. Класс содержит методы синхронизации и различные полезные интерфейсы.

Самое важное, что объекты Threaded обеспечивают безопасность для разработчика. Все операции в контексте объекта - безопасны.

Обзор классов

Threaded implements Collectable , Traversable , Countable , ArrayAccess {
/* Методы */
public chunk ( int $size , bool $preserve ) : array
public count ( void ) : int
public extend ( string $class ) : bool
public from ( Closure $run [, Closure $construct [, array $args ]] ) : Threaded
public getTerminationInfo ( void ) : array
public isRunning ( void ) : bool
public isTerminated ( void ) : bool
public isWaiting ( void ) : bool
public lock ( void ) : bool
public merge ( mixed $from [, bool $overwrite ] ) : bool
public notify ( void ) : bool
public notifyOne ( void ) : bool
public pop ( void ) : bool
public run ( void ) : void
public shift ( void ) : mixed
public synchronized ( Closure $block [, mixed $... ] ) : mixed
public unlock ( void ) : bool
public wait ([ int $timeout ] ) : bool
}

Содержание

  • Threaded::chunk — Manipulation
  • Threaded::count — Manipulation
  • Threaded::extend — Runtime Manipulation
  • Threaded::from — Creation
  • Threaded::getTerminationInfo — Error Detection
  • Threaded::isRunning — State Detection
  • Threaded::isTerminated — State Detection
  • Threaded::isWaiting — State Detection
  • Threaded::lock — Synchronization
  • Threaded::merge — Manipulation
  • Threaded::notify — Synchronization
  • Threaded::notifyOne — Synchronization
  • Threaded::pop — Manipulation
  • Threaded::run — Execution
  • Threaded::shift — Manipulation
  • Threaded::synchronized — Synchronization
  • Threaded::unlock — Synchronization
  • Threaded::wait — Synchronization


Manipulation

  • « Threaded
  • Threaded::count »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::chunk

(PECL pthreads >= 2.0.0)

Threaded::chunk — Manipulation

Описание

public Threaded::chunk ( int $size , bool $preserve ) : array

Fetches a chunk of the objects property table of the given size, optionally preserving keys

Список параметров

size

The number of items to fetch

preserve

Preserve the keys of members, by default false

Возвращаемые значения

An array of items from the objects property table

Примеры

Пример #1 Fetch a chunk of the property table

<?php
$safe = new Threaded();

while (count($safe) < 10) {
    $safe[] = count($safe);
}

var_dump($safe->chunk(5));
?>

Результат выполнения данного примера:

array(5) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(2)
  [3]=>
  int(3)
  [4]=>
  int(4)
}


Manipulation

  • « Threaded::chunk
  • Threaded::extend »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::count

(PECL pthreads >= 2.0.0)

Threaded::count — Manipulation

Описание

public Threaded::count ( void ) : int

Returns the number of properties for this object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Counting the properties of an object

<?php
$safe = new Threaded();

while (count($safe) < 10) {
    $safe[] = count($safe);
}

var_dump(count($safe));
?>

Результат выполнения данного примера:

int(10)


Runtime Manipulation

  • « Threaded::count
  • Threaded::from »
  • PHP Manual
  • Threaded
  • Runtime Manipulation

Threaded::extend

(PECL pthreads >= 2.0.8)

Threaded::extend — Runtime Manipulation

Описание

public Threaded::extend ( string $class ) : bool

Makes thread safe standard class at runtime

Список параметров

class

The class to extend

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Runtime inheritance

<?php
class My {}

Threaded::extend(My::class);

$my = new My();

var_dump($my instanceof Threaded);
?>

Результат выполнения данного примера:

bool(true)


Creation

  • « Threaded::extend
  • Threaded::getTerminationInfo »
  • PHP Manual
  • Threaded
  • Creation

Threaded::from

(PECL pthreads >= 2.0.9)

Threaded::from — Creation

Внимание

This method has been removed in pthreads v3. With the introduction of anonymous classes in PHP 7, these can now be used instead.

Описание

public Threaded::from ( Closure $run [, Closure $construct [, array $args ]] ) : Threaded

Creates an anonymous Threaded object from closures

Список параметров

run

The closure to use for ::run

construct

The constructor to use for anonymous object

args

The arguments to pass to constructor

Возвращаемые значения

A new anonymous Threaded object

Примеры

Пример #1 Thread safe objects from closures

<?php
$pool = new Pool(4);
$pool->submit(Collectable::from(function(){
    echo "Hello World";
    $this->setGarbage();
}));
/* ... */
$pool->shutdown();
?>

Результат выполнения данного примера:

Hello World


Error Detection

  • « Threaded::from
  • Threaded::isRunning »
  • PHP Manual
  • Threaded
  • Error Detection

Threaded::getTerminationInfo

(PECL pthreads < 3.0.0)

Threaded::getTerminationInfo — Error Detection

Внимание

This method has been removed in pthreads v3. Instead, the body of Threaded::run() can be wrapped in a try...catch block to detect errors (since most errors in PHP 7 have been converted to exceptions).

Описание

public Threaded::getTerminationInfo ( void ) : array

Retrieves terminal error information from the referenced object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

array containing the termination conditions of the referenced object

Примеры

Пример #1 Detecting fatal errors in Threads

<?php
class My extends Thread {
    public function run() {
        @not_found();
    }
}

$my = new My();
$my->start();
$my->join();

var_dump($my->isTerminated(), $my->getTerminationInfo());
?>

Результат выполнения данного примера:

bool(true)
array(4) {
  ["scope"]=>
  string(2) "My"
  ["function"]=>
  string(3) "run"
  ["file"]=>
  string(29) "/usr/src/pthreads/sandbox.php"
  ["line"]=>
  int(4)
}


State Detection

  • « Threaded::getTerminationInfo
  • Threaded::isTerminated »
  • PHP Manual
  • Threaded
  • State Detection

Threaded::isRunning

(PECL pthreads >= 2.0.0)

Threaded::isRunning — State Detection

Описание

public Threaded::isRunning ( void ) : bool

Tell if the referenced object is executing

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of state

Замечание:

A object is considered running while executing the run method

Примеры

Пример #1 Detect the state of the referenced object

<?php
class My extends Thread {
    public function run() {
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
var_dump($my->isRunning());
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
?>

Результат выполнения данного примера:

bool(true)


State Detection

  • « Threaded::isRunning
  • Threaded::isWaiting »
  • PHP Manual
  • Threaded
  • State Detection

Threaded::isTerminated

(PECL pthreads >= 2.0.0)

Threaded::isTerminated — State Detection

Описание

public Threaded::isTerminated ( void ) : bool

Tell if the referenced object was terminated during execution; suffered fatal errors, or threw uncaught exceptions

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of state

Примеры

Пример #1 Detect the state of the referenced object

<?php
class My extends Thread {
    public function run() {
        i_do_not_exist();
    }
}
$my = new My();
$my->start();
$my->join();
var_dump($my->isTerminated());
?>

Результат выполнения данного примера:

bool(true)


State Detection

  • « Threaded::isTerminated
  • Threaded::lock »
  • PHP Manual
  • Threaded
  • State Detection

Threaded::isWaiting

(PECL pthreads < 3.0.0)

Threaded::isWaiting — State Detection

Внимание

This method has been removed in pthreads v3.

Описание

public Threaded::isWaiting ( void ) : bool

Tell if the referenced object is waiting for notification

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of state

Примеры

Пример #1 Detect the state of the referenced object

<?php
class My extends Thread {
    public function run() {
        $this->synchronized(function($thread){
            if (!$this->done)
                $thread->wait();
        }, $this);
    }

    protected $done;
}
$my = new My();
$my->start();
$my->synchronized(function($thread){
    var_dump(
        $thread->isWaiting());
    $thread->done = true;
    $thread->notify();
}, $my);
?>

Результат выполнения данного примера:

bool(true)


Synchronization

  • « Threaded::isWaiting
  • Threaded::merge »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::lock

(PECL pthreads < 3.0.0)

Threaded::lock — Synchronization

Внимание

This method has been removed in pthreads v3. The Threaded::synchronized() method should now be used.

Описание

public Threaded::lock ( void ) : bool

Lock the referenced objects property table

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Locking Object Properties

<?php
class My extends Thread {
    public function run() {
        var_dump($this->lock());
        /** nobody can read or write **/
        var_dump($this->unlock());
        /** reading / writing resumed for all other contexts */
    }
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

bool(true)
bool(true)


Manipulation

  • « Threaded::lock
  • Threaded::notify »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::merge

(PECL pthreads >= 2.0.0)

Threaded::merge — Manipulation

Описание

public Threaded::merge ( mixed $from [, bool $overwrite ] ) : bool

Merges data into the current object

Список параметров

from

The data to merge

overwrite

Overwrite existing keys, by default true

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Merging into the property table of a threaded object

<?php
$array = [];

while (count($array) < 10)
    $array[] = count($array);

$stdClass = new stdClass();
$stdClass->foo = "foo";
$stdClass->bar = "bar";
$stdClass->baz = "baz";

$safe = new Threaded();
$safe->merge($array);

$safe->foo = "bar";
$safe->merge($stdClass, false);

var_dump($safe);
?>

Результат выполнения данного примера:

object(Threaded)#2 (13) {
  ["0"]=>
  int(0)
  ["1"]=>
  int(1)
  ["2"]=>
  int(2)
  ["3"]=>
  int(3)
  ["4"]=>
  int(4)
  ["5"]=>
  int(5)
  ["6"]=>
  int(6)
  ["7"]=>
  int(7)
  ["8"]=>
  int(8)
  ["9"]=>
  int(9)
  ["foo"]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "bar"
  ["baz"]=>
  string(3) "baz"
}


Synchronization

  • « Threaded::merge
  • Threaded::notifyOne »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::notify

(PECL pthreads >= 2.0.0)

Threaded::notify — Synchronization

Описание

public Threaded::notify ( void ) : bool

Send notification to the referenced object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Notifications and Waiting

<?php
class My extends Thread {
    public function run() {
        /** cause this thread to wait **/
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
/** send notification to the waiting thread **/
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
var_dump($my->join());
?>

Результат выполнения данного примера:

bool(true)


Synchronization

  • « Threaded::notify
  • Threaded::pop »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::notifyOne

(PECL pthreads >= 3.0.0)

Threaded::notifyOne — Synchronization

Описание

public Threaded::notifyOne ( void ) : bool

Send notification to the referenced object. This unblocks at least one of the blocked threads (as opposed to unblocking all of them, as seen with Threaded::notify()).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Notifications and Waiting

<?php
class My extends Thread {
    public function run() {
        /** cause this thread to wait **/
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
/** send notification to the waiting thread **/
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notifyOne();
}, $my);
var_dump($my->join());
?>

Результат выполнения данного примера:

bool(true)


Manipulation

  • « Threaded::notifyOne
  • Threaded::run »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::pop

(PECL pthreads >= 2.0.0)

Threaded::pop — Manipulation

Описание

public Threaded::pop ( void ) : bool

Pops an item from the objects property table

Возвращаемые значения

The last item from the objects property table

Примеры

Пример #1 Popping the last item from the property table of a threaded object

<?php
$safe = new Threaded();

while (count($safe) < 10)
    $safe[] = count($safe);

var_dump($safe->pop());
?>

Результат выполнения данного примера:

int(9)


Execution

  • « Threaded::pop
  • Threaded::shift »
  • PHP Manual
  • Threaded
  • Execution

Threaded::run

(PECL pthreads >= 2.0.0)

Threaded::run — Execution

Описание

public Threaded::run ( void ) : void

The programmer should always implement the run method for objects that are intended for execution.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The methods return value, if used, will be ignored


Manipulation

  • « Threaded::run
  • Threaded::synchronized »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::shift

(PECL pthreads >= 2.0.0)

Threaded::shift — Manipulation

Описание

public Threaded::shift ( void ) : mixed

Shifts an item from the objects property table

Возвращаемые значения

The first item from the objects property table

Примеры

Пример #1 Shifting the first item from the property table of a threaded object

<?php
$safe = new Threaded();

while (count($safe) < 10)
    $safe[] = count($safe);

var_dump($safe->shift());
?>

Результат выполнения данного примера:

int(0)


Synchronization

  • « Threaded::shift
  • Threaded::unlock »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::synchronized

(PECL pthreads >= 2.0.0)

Threaded::synchronized — Synchronization

Описание

public Threaded::synchronized ( Closure $block [, mixed $... ] ) : mixed

Executes the block while retaining the referenced objects synchronization lock for the calling context

Список параметров

block

The block of code to execute

...

Variable length list of arguments to use as function arguments to the block

Возвращаемые значения

The return value from the block

Примеры

Пример #1 Synchronizing

<?php
class My extends Thread {
    public function run() {
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
var_dump($my->join());
?>

Результат выполнения данного примера:

bool(true)


Synchronization

  • « Threaded::synchronized
  • Threaded::wait »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::unlock

(PECL pthreads < 3.0.0)

Threaded::unlock — Synchronization

Внимание

This method has been removed in pthreads v3. The Threaded::synchronized() method should now be used.

Описание

public Threaded::unlock ( void ) : bool

Unlock the referenced objects storage for the calling context

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Locking the property table of a threaded object

<?php
class My extends Thread {
    public function run() {
        var_dump($this->lock());
        /** nobody can read or write **/
        var_dump($this->unlock());
        /** reading / writing resumed for all other contexts */
    }
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

bool(true)
bool(true)


Synchronization

  • « Threaded::unlock
  • Thread »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::wait

(PECL pthreads >= 2.0.0)

Threaded::wait — Synchronization

Описание

public Threaded::wait ([ int $timeout ] ) : bool

Will cause the calling context to wait for notification from the referenced object

Список параметров

timeout

An optional timeout in microseconds

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Notifications and Waiting

<?php
class My extends Thread {
    public function run() {
        /** cause this thread to wait **/
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
/** send notification to the waiting thread **/
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
var_dump($my->join());
?>

Результат выполнения данного примера:

bool(true)


Класс Thread

(PECL pthreads >= 2.0.0)

Введение

Когда вызван стартовый метод Thread, код метода run будет запущен в отдельном потоке, параллельно.

После отработки метода run, Thread сразу же завершит работу. Он будет присоединен путем создания Thread в нужное время.

Внимание

Если полагаться на движок для определения, когда Thread будет присоединен, можно столкнуться с неожиданным поведением. Поэтому необходимо, по возможности, управлять присоединением в явном виде.

Обзор классов

Thread extends Threaded implements Countable , Traversable , ArrayAccess {
/* Методы */
public detach ( void ) : void
public getCreatorId ( void ) : int
public static getCurrentThread ( void ) : Thread
public static getCurrentThreadId ( void ) : int
public getThreadId ( void ) : int
public static globally ( void ) : mixed
public isJoined ( void ) : bool
public isStarted ( void ) : bool
public join ( void ) : bool
public kill ( void ) : void
public start ([ int $options ] ) : bool
/* Наследуемые методы */
public Threaded::chunk ( int $size , bool $preserve ) : array
public Threaded::count ( void ) : int
public Threaded::extend ( string $class ) : bool
public Threaded::from ( Closure $run [, Closure $construct [, array $args ]] ) : Threaded
public Threaded::getTerminationInfo ( void ) : array
public Threaded::isRunning ( void ) : bool
public Threaded::isTerminated ( void ) : bool
public Threaded::isWaiting ( void ) : bool
public Threaded::lock ( void ) : bool
public Threaded::merge ( mixed $from [, bool $overwrite ] ) : bool
public Threaded::notify ( void ) : bool
public Threaded::notifyOne ( void ) : bool
public Threaded::pop ( void ) : bool
public Threaded::run ( void ) : void
public Threaded::shift ( void ) : mixed
public Threaded::synchronized ( Closure $block [, mixed $... ] ) : mixed
public Threaded::unlock ( void ) : bool
public Threaded::wait ([ int $timeout ] ) : bool
}

Содержание

  • Thread::detach — Execution
  • Thread::getCreatorId — Identification
  • Thread::getCurrentThread — Identification
  • Thread::getCurrentThreadId — Identification
  • Thread::getThreadId — Identification
  • Thread::globally — Execution
  • Thread::isJoined — State Detection
  • Thread::isStarted — State Detection
  • Thread::join — Synchronization
  • Thread::kill — Execution
  • Thread::start — Execution


Execution

  • « Thread
  • Thread::getCreatorId »
  • PHP Manual
  • Thread
  • Execution

Thread::detach

(PECL pthreads < 3.0.0)

Thread::detach — Execution

Внимание

This method has been removed in pthreads v3.

Описание

public Thread::detach ( void ) : void

Detaches the referenced Thread from the calling context, dangerous!

Внимание

This method can cause undefined, unsafe behaviour. It should not usually be used, it is present for completeness and advanced use cases.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Identification

  • « Thread::detach
  • Thread::getCurrentThread »
  • PHP Manual
  • Thread
  • Identification

Thread::getCreatorId

(PECL pthreads >= 2.0.0)

Thread::getCreatorId — Identification

Описание

public Thread::getCreatorId ( void ) : int

Will return the identity of the Thread that created the referenced Thread

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A numeric identity

Примеры

Пример #1 Return the identity of the Thread or Process that created the referenced Thread

<?php
class My extends Thread {
    public function run() {
        printf("%s created by Thread #%lu\n", __CLASS__, $this->getCreatorId());
    }
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

My created by Thread #123456778899


Identification

  • « Thread::getCreatorId
  • Thread::getCurrentThreadId »
  • PHP Manual
  • Thread
  • Identification

Thread::getCurrentThread

(PECL pthreads >= 2.0.0)

Thread::getCurrentThread — Identification

Описание

public static Thread::getCurrentThread ( void ) : Thread

Return a reference to the currently executing Thread

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An object representing the currently executing Thread

Примеры

Пример #1 Return the currently executing Thread

<?php
class My extends Thread {
    public function run() {
        var_dump(Thread::getCurrentThread());
    }
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

object(My)#2 (0) {
}


Identification

  • « Thread::getCurrentThread
  • Thread::getThreadId »
  • PHP Manual
  • Thread
  • Identification

Thread::getCurrentThreadId

(PECL pthreads >= 2.0.0)

Thread::getCurrentThreadId — Identification

Описание

public static Thread::getCurrentThreadId ( void ) : int

Will return the identity of the currently executing Thread

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A numeric identity

Примеры

Пример #1 Return the identity of the currently executing Thread

<?php
class My extends Thread {
    public function run() {
        printf("%s is Thread #%lu\n", __CLASS__, Thread::getCurrentThreadId());
    }
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

My is Thread #123456778899


Identification

  • « Thread::getCurrentThreadId
  • Thread::globally »
  • PHP Manual
  • Thread
  • Identification

Thread::getThreadId

(PECL pthreads >= 2.0.0)

Thread::getThreadId — Identification

Описание

public Thread::getThreadId ( void ) : int

Will return the identity of the referenced Thread

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A numeric identity

Примеры

Пример #1 Return the identity of the referenced Thread

<?php
class My extends Thread {
    public function run() {
        printf("%s is Thread #%lu\n", __CLASS__, $this->getThreadId());
    }
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

My is Thread #123456778899


Execution

  • « Thread::getThreadId
  • Thread::isJoined »
  • PHP Manual
  • Thread
  • Execution

Thread::globally

(PECL pthreads < 3.0.0)

Thread::globally — Execution

Внимание

This method has been removed in pthreads v3.

Описание

public static Thread::globally ( void ) : mixed

Will execute a Callable in the global scope

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The return value of the Callable

Примеры

Пример #1 Execute in the global scope

<?php
class My extends Thread {
    public function run() {
        global $std;

        Thread::globally(function(){
            $std = new stdClass;
        });

        var_dump($std);
    }
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

object(stdClass)#3 (0) {
}


State Detection

  • « Thread::globally
  • Thread::isStarted »
  • PHP Manual
  • Thread
  • State Detection

Thread::isJoined

(PECL pthreads >= 2.0.0)

Thread::isJoined — State Detection

Описание

public Thread::isJoined ( void ) : bool

Tell if the referenced Thread has been joined

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of state

Примеры

Пример #1 Detect the state of the referenced Thread

<?php
class My extends Thread {
    public function run() {
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
var_dump($my->isJoined());
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
?>

Результат выполнения данного примера:

bool(false)


State Detection

  • « Thread::isJoined
  • Thread::join »
  • PHP Manual
  • Thread
  • State Detection

Thread::isStarted

(PECL pthreads >= 2.0.0)

Thread::isStarted — State Detection

Описание

public Thread::isStarted ( void ) : bool

Tell if the referenced Thread was started

Список параметров

У этой функции нет параметров.

Возвращаемые значения

boolean indication of state

Примеры

Пример #1 Tell if the referenced Thread was started

<?php
$worker = new Worker();
$worker->start();
var_dump($worker->isStarted());
?>

Результат выполнения данного примера:

bool(true)


Synchronization

  • « Thread::isStarted
  • Thread::kill »
  • PHP Manual
  • Thread
  • Synchronization

Thread::join

(PECL pthreads >= 2.0.0)

Thread::join — Synchronization

Описание

public Thread::join ( void ) : bool

Causes the calling context to wait for the referenced Thread to finish executing

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Join with the referenced Thread

<?php
class My extends Thread {
    public function run() {
        /* ... */
    }
}
$my = new My();
$my->start();
/* ... */
var_dump($my->join());
/* ... */
?>

Результат выполнения данного примера:

bool(true)


Execution

  • « Thread::join
  • Thread::start »
  • PHP Manual
  • Thread
  • Execution

Thread::kill

(PECL pthreads < 3.0.0)

Thread::kill — Execution

Внимание

This method has been removed in pthreads v3.

Описание

public Thread::kill ( void ) : void

Forces the referenced Thread to terminate

Внимание

The programmer should not ordinarily kill Threads by force

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Kill the referenced Thread

<?php
class T extends Thread {
    public function run() {
        $stdin = fopen("php://stdin", "r");
        while(($line = fgets($stdin))) {
            echo $line;
        }
    }
}

$t = new T();
$t->start();

var_dump($t->kill());
?>

Результат выполнения данного примера:

bool(true)


Execution

  • « Thread::kill
  • Worker »
  • PHP Manual
  • Thread
  • Execution

Thread::start

(PECL pthreads >= 2.0.0)

Thread::start — Execution

Описание

public Thread::start ([ int $options ] ) : bool

Will start a new Thread to execute the implemented run method

Список параметров

options

An optional mask of inheritance constants, by default PTHREADS_INHERIT_ALL

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Starting Threads

<?php
class My extends Thread {
    public function run() {
        /** ... **/
    }
}
$my = new My();
var_dump($my->start());
?>

Результат выполнения данного примера:

bool(true)


Класс Worker

(PECL pthreads >= 2.0.0)

Введение

Рабочие потоки имеют постоянный контекст, поэтому в большинстве случаев их следует использовать поверх потоков.

Когда Worker запущен, будет выполнен метод run, но Thread не завершится, пока не будет выполнено одно из следующих условий:

  • Worker исчезнет из области видимости (не останется ни одной ссылки на него)

  • программист вызовет функцию остановки

  • скрипт завершит работу

Это значит, что программист может переиспользовать контекст во время исполнения. Размещение объекта на стек объекта Worker приведет к запуску метода run этого объекта.

Обзор классов

Worker extends Thread implements Traversable , Countable , ArrayAccess {
/* Методы */
public collect ([ Callable $collector ] ) : int
public getStacked ( void ) : int
public isShutdown ( void ) : bool
public isWorking ( void ) : bool
public shutdown ( void ) : bool
public stack ( Threaded &$work ) : int
public unstack ( void ) : int
/* Наследуемые методы */
public Thread::detach ( void ) : void
public Thread::getCreatorId ( void ) : int
public static Thread::getCurrentThread ( void ) : Thread
public static Thread::getCurrentThreadId ( void ) : int
public Thread::getThreadId ( void ) : int
public static Thread::globally ( void ) : mixed
public Thread::isJoined ( void ) : bool
public Thread::isStarted ( void ) : bool
public Thread::join ( void ) : bool
public Thread::kill ( void ) : void
public Thread::start ([ int $options ] ) : bool
}

Содержание

  • Worker::collect — Collect references to completed tasks
  • Worker::getStacked — Gets the remaining stack size
  • Worker::isShutdown — State Detection
  • Worker::isWorking — State Detection
  • Worker::shutdown — Shutdown the worker
  • Worker::stack — Stacking work
  • Worker::unstack — Unstacking work


Collect references to completed tasks

  • « Worker
  • Worker::getStacked »
  • PHP Manual
  • Worker
  • Collect references to completed tasks

Worker::collect

(PECL pthreads >= 3.0.0)

Worker::collect — Collect references to completed tasks

Описание

public Worker::collect ([ Callable $collector ] ) : int

Allows the worker to collect references determined to be garbage by the optionally given collector.

Список параметров

collector

A Callable collector that returns a boolean on whether the task can be collected or not. Only in rare cases should a custom collector need to be used.

Возвращаемые значения

The number of remaining tasks on the worker's stack to be collected.

Примеры

Пример #1 A basic example of Worker::collect()

<?php
$worker = new Worker();

echo "There are currently {$worker->collect()} tasks on the stack to be collected\n";

for ($i = 0; $i < 15; ++$i) {
    $worker->stack(new class extends Threaded {});
}

echo "There are {$worker->collect()} tasks remaining on the stack to be collected\n";

$worker->start();

while ($worker->collect()); // blocks until all tasks have finished executing

echo "There are now {$worker->collect()} tasks on the stack to be collected\n";

$worker->shutdown();

Результат выполнения данного примера:

There are currently 0 tasks on the stack to be collected
There are 15 tasks remaining on the stack to be collected
There are now 0 tasks on the stack to be collected


Gets the remaining stack size

  • « Worker::collect
  • Worker::isShutdown »
  • PHP Manual
  • Worker
  • Gets the remaining stack size

Worker::getStacked

(PECL pthreads >= 2.0.0)

Worker::getStacked — Gets the remaining stack size

Описание

public Worker::getStacked ( void ) : int

Returns the number of tasks left on the stack

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the number of tasks currently waiting to be executed by the worker

Примеры

Пример #1 A basic example of Worker::getStacked

<?php
$worker = new Worker();

for ($i = 0; $i < 5; ++$i) {
    $worker->stack(new class extends Threaded {});
}

echo "There are {$worker->getStacked()} stacked tasks\n";

Результат выполнения данного примера:

There are 5 stacked tasks


State Detection

  • « Worker::getStacked
  • Worker::isWorking »
  • PHP Manual
  • Worker
  • State Detection

Worker::isShutdown

(PECL pthreads >= 2.0.0)

Worker::isShutdown — State Detection

Описание

public Worker::isShutdown ( void ) : bool

Whether the worker has been shutdown or not.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns whether the worker has been shutdown or not.

Примеры

Пример #1 Detect the state of a worker

<?php
$worker = new Worker();
$worker->start();

var_dump($worker->isShutdown());

$worker->shutdown();

var_dump($worker->isShutdown());

Результат выполнения данного примера:

bool(false)
bool(true)


State Detection

  • « Worker::isShutdown
  • Worker::shutdown »
  • PHP Manual
  • Worker
  • State Detection

Worker::isWorking

(PECL pthreads >= 2.0.0)

Worker::isWorking — State Detection

Внимание

This method has been removed in pthreads v3. The Worker::getStacked() method should be used to see if the worker still has tasks to execute.

Описание

public Worker::isWorking ( void ) : bool

Tell if a Worker is executing Stackables

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of state

Примеры

Пример #1 Detect the state of a Worker

<?php
$my = new Worker();
$my->start();
/* ... */
if ($my->isWorking()) {
    /* ... the Worker is busy executing another object */
}
?>


Shutdown the worker

  • « Worker::isWorking
  • Worker::stack »
  • PHP Manual
  • Worker
  • Shutdown the worker

Worker::shutdown

(PECL pthreads >= 2.0.0)

Worker::shutdown — Shutdown the worker

Описание

public Worker::shutdown ( void ) : bool

Shuts down the worker after executing all of the stacked tasks.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Whether the worker was successfully shutdown or not.

Примеры

Пример #1 Shutdown the referenced worker

<?php
$my = new Worker();
$my->start();
/* stack/execute tasks */
var_dump($my->shutdown());

Результат выполнения данного примера:

bool(true)


Stacking work

  • « Worker::shutdown
  • Worker::unstack »
  • PHP Manual
  • Worker
  • Stacking work

Worker::stack

(PECL pthreads >= 2.0.0)

Worker::stack — Stacking work

Описание

public Worker::stack ( Threaded &$work ) : int

Appends the new work to the stack of the referenced worker.

Список параметров

work

A Threaded object to be executed by the worker.

Возвращаемые значения

The new size of the stack.

Примеры

Пример #1 Stacking a task for execution onto a worker

<?php
$worker = new Worker();
$work = new class extends Threaded {};

var_dump($worker->stack($work));

Результат выполнения данного примера:

int(1)


Unstacking work

  • « Worker::stack
  • Collectable »
  • PHP Manual
  • Worker
  • Unstacking work

Worker::unstack

(PECL pthreads >= 2.0.0)

Worker::unstack — Unstacking work

Описание

public Worker::unstack ( void ) : int

Removes the first task (the oldest one) in the stack.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The new size of the stack.

Список изменений

Версия | Описание
v3 | The parameter to specify the task to unstack has been removed. Now, only the first task in the stack is removed.

Примеры

Пример #1 Removing objects from the stack of Workers

<?php
$my = new Worker();
$work = new class extends Threaded {};

var_dump($my->stack($work));
var_dump($my->unstack());

Результат выполнения данного примера:

int(1)
int(0)


Интерфейс Collectable

(PECL pthreads >= 2.0.8)

Введение

Предостережение

Раньше Collectable был классом (в pthreads v2 и ниже). Теперь, в pthreads v3, это интерфейс, который реализует класс Threaded.

Представляет объект, который можно собрать сборщиком мусора.

Обзор интерфейсов

Collectable {
/* Методы */
public isGarbage ( void ) : bool
public setGarbage ( void ) : void
}

Содержание

  • Collectable::isGarbage — Определяет, помечен ли объект как мусор
  • Collectable::setGarbage — Пометить объект как мусор


Определяет, помечен ли объект как мусор

  • « Collectable
  • Collectable::setGarbage »
  • PHP Manual
  • Collectable
  • Определяет, помечен ли объект как мусор

Collectable::isGarbage

(PECL pthreads >= 2.0.8)

Collectable::isGarbage — Определяет, помечен ли объект как мусор

Описание

public Collectable::isGarbage ( void ) : bool

Можно вызывать в Pool::collect() для определения, является ли объект мусором.

Смотрите также

  • Pool::collect() - Collect references to completed tasks


Пометить объект как мусор

  • « Collectable::isGarbage
  • Модификаторы »
  • PHP Manual
  • Collectable
  • Пометить объект как мусор

Collectable::setGarbage

(PECL pthreads < 3.0.0)

Collectable::setGarbage — Пометить объект как мусор

Внимание

Метод был удален в pthreads v3.

Описание

public Collectable::setGarbage ( void ) : void

Должен вызываться один раз для каждого объекта с которым прекратили работать и на который перестали ссылаться.

Смотрите также

  • Collectable::isGarbage() - Определяет, помечен ли объект как мусор


Модификаторы методов

Внимание

Данная семантика применима только в pthreads v2. В pthreads v3 она удалена.

pthreads переопределяет методы с модификаторами protected и private, чтобы предоставить функциональностью, больше подходящую для работы в режиме многопоточности. pthreads применяет эту функциональность для всех создаваемых объектов Threaded.

Пример #1 Пример метода с модификатором protected: методы с таким модификатором могут вызываться только одним потоков одновременно.

<?php
class ExampleThread extends Thread {
    public function run() {
        /* код потока */
        if ($this->synchronized()) {

        }
    }

    protected function exclusive() {
        /* синхронизированный метод */
    }
}

$thread = new ExampleThread();
if ($thread->start()) {
    $thread->exclusive();
}
?>

Пример #2 Пример метода с модификатором private: приватные методы могут вызываться только Threaded-объектов во время выполнения

<?php
class ExampleThread extends Thread {
    public function run() {
        /* код потока */
        if ($this->insideonly()) {

        }
    }

    private function insideonly() {
        /* синхронизированный метод */
    }
}

$thread = new ExampleThread();
if ($thread->start()) {
    $thread->insideonly();
}
?>


Класс Pool

(PECL pthreads >= 2.0.0)

Введение

Объект Pool является контейнером для хранения объектов Worker, управления ими и регулирования их количества.

Контейнеризация представляет собой высший уровень абстракции над функционалом Worker'ов, включая управление ссылками в корректном для pthreads виде.

Обзор классов

Pool {
/* Свойства */
protected $size ;
protected $class ;
protected $workers ;
protected $ctor ;
protected $last ;
/* Методы */
public collect ([ Callable $collector ] ) : int
public __construct ( int $size [, string $class [, array $ctor ]] ) : Pool
public resize ( int $size ) : void
public shutdown ( void ) : void
public submit ( Threaded $task ) : int
public submitTo ( int $worker , Threaded $task ) : int
}

Свойства

size

максимальное количество объектов Worker

class

класс Worker

workers

ссылки на объекты Worker

ctor

аргументы конструктора новых объектов Worker

last

смещение последнего использованного Worker в workers

Содержание

  • Pool::collect — Collect references to completed tasks
  • Pool::__construct — Creates a new Pool of Workers
  • Pool::resize — Resize the Pool
  • Pool::shutdown — Shutdown all workers
  • Pool::submit — Submits an object for execution
  • Pool::submitTo — Submits a task to a specific worker for execution


Collect references to completed tasks

  • « Pool
  • Pool::__construct »
  • PHP Manual
  • Pool
  • Collect references to completed tasks

Pool::collect

(PECL pthreads >= 2.0.0)

Pool::collect — Collect references to completed tasks

Описание

public Pool::collect ([ Callable $collector ] ) : int

Allows the pool to collect references determined to be garbage by the optionally given collector.

Список параметров

collector

A Callable collector that returns a boolean on whether the task can be collected or not. Only in rare cases should a custom collector need to be used.

Возвращаемые значения

The number of remaining tasks in the pool to be collected.

Список изменений

Версия | Описание
v3 | An integer is now returned, and the collector parameter is now optional.

Примеры

Пример #1 A basic example of Pool::collect()

<?php
$pool = new Pool(4);

for ($i = 0; $i < 15; ++$i) {
    $pool->submit(new class extends Threaded {});
}

while ($pool->collect()); // blocks until all tasks have finished executing

$pool->shutdown();


Creates a new Pool of Workers

  • « Pool::collect
  • Pool::resize »
  • PHP Manual
  • Pool
  • Creates a new Pool of Workers

Pool::__construct

(PECL pthreads >= 2.0.0)

Pool::__construct — Creates a new Pool of Workers

Описание

public Pool::__construct ( int $size [, string $class [, array $ctor ]] ) : Pool

Construct a new pool of workers. Pools lazily create their threads, which means new threads will only be spawned when they are required to execute tasks.

Список параметров

size

The maximum number of workers for this pool to create

class

The class for new Workers. If no class is given, then it defaults to the Worker class.

ctor

An array of arguments to be passed to new workers' constructors

Возвращаемые значения

The new pool

Примеры

Пример #1 Creating Pools

<?php
class MyWorker extends Worker {

    public function __construct(Something $something) {
        $this->something = $something;
    }

    public function run() {
        /** ... **/
    }
}

$pool = new Pool(8, \MyWorker::class, [new Something()]);

var_dump($pool);
?>

Результат выполнения данного примера:

object(Pool)#1 (6) {
  ["size":protected]=>
  int(8)
  ["class":protected]=>
  string(8) "MyWorker"
  ["workers":protected]=>
  NULL
  ["work":protected]=>
  NULL
  ["ctor":protected]=>
  array(1) {
    [0]=>
    object(Something)#2 (0) {
    }
  }
  ["last":protected]=>
  int(0)
}


Resize the Pool

  • « Pool::__construct
  • Pool::shutdown »
  • PHP Manual
  • Pool
  • Resize the Pool

Pool::resize

(PECL pthreads >= 2.0.0)

Pool::resize — Resize the Pool

Описание

public Pool::resize ( int $size ) : void

Resize the Pool

Список параметров

size

The maximum number of Workers this Pool can create

Возвращаемые значения

void


Shutdown all workers

  • « Pool::resize
  • Pool::submit »
  • PHP Manual
  • Pool
  • Shutdown all workers

Pool::shutdown

(PECL pthreads >= 2.0.0)

Pool::shutdown — Shutdown all workers

Описание

public Pool::shutdown ( void ) : void

Shuts down all of the workers in the pool. This will block until all submitted tasks have been executed.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No value is returned.

Примеры

Пример #1 Shutting down a pool

<?php
class Task extends Threaded
{
    public function run()
    {
        usleep(500000);
    }
}

$pool = new Pool(4);

for ($i = 0; $i < 10; ++$i) {
    $pool->submit(new Task());
}

$pool->shutdown(); // blocks until all submitted tasks have finished executing


Submits an object for execution

  • « Pool::shutdown
  • Pool::submitTo »
  • PHP Manual
  • Pool
  • Submits an object for execution

Pool::submit

(PECL pthreads >= 2.0.0)

Pool::submit — Submits an object for execution

Описание

public Pool::submit ( Threaded $task ) : int

Submit the task to the next Worker in the Pool

Список параметров

task

The task for execution

Возвращаемые значения

the identifier of the Worker executing the object

Примеры

Пример #1 Submitting Tasks

<?php
class MyWork extends Threaded {

    public function run() {
        /* ... */
    }
}

class MyWorker extends Worker {

    public function __construct(Something $something) {
        $this->something = $something;
    }

    public function run() {
        /** ... **/
    }
}

$pool = new Pool(8, \MyWorker::class, [new Something()]);
$pool->submit(new MyWork());
var_dump($pool);
?>

Результат выполнения данного примера:

object(Pool)#1 (6) {
  ["size":protected]=>
  int(8)
  ["class":protected]=>
  string(8) "MyWorker"
  ["workers":protected]=>
  array(1) {
    [0]=>
    object(MyWorker)#4 (1) {
      ["something"]=>
      object(Something)#5 (0) {
      }
    }
  }
  ["work":protected]=>
  array(1) {
    [0]=>
    object(MyWork)#3 (1) {
      ["worker"]=>
      object(MyWorker)#5 (1) {
        ["something"]=>
        object(Something)#6 (0) {
        }
      }
    }
  }
  ["ctor":protected]=>
  array(1) {
    [0]=>
    object(Something)#2 (0) {
    }
  }
  ["last":protected]=>
  int(1)
}


Submits a task to a specific worker for execution

  • « Pool::submit
  • Mutex »
  • PHP Manual
  • Pool
  • Submits a task to a specific worker for execution

Pool::submitTo

(PECL pthreads >= 2.0.0)

Pool::submitTo — Submits a task to a specific worker for execution

Описание

public Pool::submitTo ( int $worker , Threaded $task ) : int

Submit a task to the specified worker in the pool. The workers are indexed from 0, and will only exist if the pool has needed to create them (since threads are lazily spawned).

Список параметров

worker

The worker to stack the task onto, indexed from 0.

task

The task for execution.

Возвращаемые значения

The identifier of the worker that accepted the task.

Примеры

Пример #1 Submitting tasks to a specific worker

<?php
class Task extends Threaded {
    public function run() {
        var_dump(Thread::getCurrentThreadID());
    }
}

$pool = new Pool(2);

$pool->submit(new Task());

for ($i = 0; $i < 5; ++$i) {
    $pool->submitTo(0, new Task()); // stack all tasks onto the first worker
}

$pool->submitTo(1, new Task()); // cannot stack the task onto the second worker due to it not existing yet

$pool->shutdown();

Результат выполнения данного примера:

int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)

Fatal error: Uncaught Exception: The selected worker (1) does not exist in %s:%d


Класс Mutex

(PECL pthreads < 3.0.0)

Введение

Внимание

Класс Mutex был удален в pthreads v3.

Статические методы класса предоставляют прямой доступ к функциональности Posix Mutex.

Обзор классов

Mutex {
/* Методы */
final public static create ([ bool $lock ] ) : int
final public static destroy ( int $mutex ) : bool
final public static lock ( int $mutex ) : bool
final public static trylock ( int $mutex ) : bool
final public static unlock ( int $mutex [, bool $destroy ] ) : bool
}

Содержание

  • Mutex::create — Create a Mutex
  • Mutex::destroy — Destroy Mutex
  • Mutex::lock — Acquire Mutex
  • Mutex::trylock — Attempt to Acquire Mutex
  • Mutex::unlock — Release Mutex


Create a Mutex

  • « Mutex
  • Mutex::destroy »
  • PHP Manual
  • Mutex
  • Create a Mutex

Mutex::create

(PECL pthreads < 3.0.0)

Mutex::create — Create a Mutex

Внимание

The Mutex class has been removed in pthreads v3.

Описание

final public static Mutex::create ([ bool $lock ] ) : int

Create, and optionally lock a new Mutex for the caller

Список параметров

lock

Setting lock to true will lock the Mutex for the caller before returning the handle

Возвращаемые значения

A newly created and optionally locked Mutex handle

Примеры

Пример #1 Mutex Creation and Destruction

<?php
/** You cannot use the "new" keyword, a Mutex is not a PHP object **/
$mutex = Mutex::create();
/** You have the physical address of the Mutex **/
var_dump($mutex);
/** Always destroy mutex you have created **/
Mutex::destroy($mutex);
?>

Результат выполнения данного примера:

int(40096976)


Destroy Mutex

  • « Mutex::create
  • Mutex::lock »
  • PHP Manual
  • Mutex
  • Destroy Mutex

Mutex::destroy

(PECL pthreads < 3.0.0)

Mutex::destroy — Destroy Mutex

Внимание

The Mutex class has been removed in pthreads v3.

Описание

final public static Mutex::destroy ( int $mutex ) : bool

Destroying Mutex handles must be carried out explicitly by the programmer when they are finished with the Mutex handle.

Список параметров

mutex

A handle returned by a previous call to Mutex::create(). The handle should not be locked by any Thread when Mutex::destroy() is called.

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Mutex Creation and Destruction

<?php
/** You cannot use the "new" keyword, a Mutex is not a PHP object **/
$mutex = Mutex::create();
/** You have the physical address of the Mutex **/
var_dump($mutex);
/** Always destroy mutex you have created **/
Mutex::destroy($mutex);
?>

Результат выполнения данного примера:

int(40096976)


Acquire Mutex

  • « Mutex::destroy
  • Mutex::trylock »
  • PHP Manual
  • Mutex
  • Acquire Mutex

Mutex::lock

(PECL pthreads < 3.0.0)

Mutex::lock — Acquire Mutex

Внимание

The Mutex class has been removed in pthreads v3.

Описание

final public static Mutex::lock ( int $mutex ) : bool

Attempt to lock the Mutex for the caller.

An attempt to lock a Mutex owned (locked) by another Thread will result in blocking.

Список параметров

mutex

A handle returned by a previous call to Mutex::create().

Возвращаемые значения

A boolean indication of success.

Примеры

Пример #1 Mutex Locking and Unlocking

<?php
/** You cannot use the "new" keyword, a Mutex is not a PHP object **/
$mutex = Mutex::create();
/** You can now lock the mutex in any context **/
var_dump(Mutex::lock($mutex));
/** It is invalid to attempt to destroy a locked Mutex **/
var_dump(Mutex::unlock($mutex));
/** Always destroy mutex you have created **/
Mutex::destroy($mutex);
?>

Результат выполнения данного примера:

bool(true)
bool(true)


Attempt to Acquire Mutex

  • « Mutex::lock
  • Mutex::unlock »
  • PHP Manual
  • Mutex
  • Attempt to Acquire Mutex

Mutex::trylock

(PECL pthreads < 3.0.0)

Mutex::trylock — Attempt to Acquire Mutex

Внимание

The Mutex class has been removed in pthreads v3.

Описание

final public static Mutex::trylock ( int $mutex ) : bool

Attempt to lock the Mutex for the caller without blocking if the Mutex is owned (locked) by another Thread.

Список параметров

mutex

A handle returned by a previous call to Mutex::create().

Возвращаемые значения

A boolean indication of success.

Примеры

Пример #1 Mutex Locking and Unlocking

<?php
/** You cannot use the "new" keyword, a Mutex is not a PHP object **/
$mutex = Mutex::create();
/** You can now try to lock the mutex in any context **/
var_dump(Mutex::trylock($mutex));
/** It is invalid to attempt to destroy a locked Mutex **/
var_dump(Mutex::unlock($mutex));
/** Always destroy mutex you have created **/
Mutex::destroy($mutex);
?>

Результат выполнения данного примера:

bool(true)
bool(true)


Release Mutex

  • « Mutex::trylock
  • Cond »
  • PHP Manual
  • Mutex
  • Release Mutex

Mutex::unlock

(PECL pthreads < 3.0.0)

Mutex::unlock — Release Mutex

Внимание

The Mutex class has been removed in pthreads v3.

Описание

final public static Mutex::unlock ( int $mutex [, bool $destroy ] ) : bool

Attempts to unlock the Mutex for the caller, optionally destroying the Mutex handle. The calling thread should own the Mutex at the time of the call.

Список параметров

mutex

A handle returned by a previous call to Mutex::create().

destroy

When true pthreads will destroy the Mutex after a successful unlock.

Возвращаемые значения

A boolean indication of success.

Примеры

Пример #1 Mutex Locking and Unlocking

<?php
/** You cannot use the "new" keyword, a Mutex is not a PHP object **/
$mutex = Mutex::create();
/** You can now lock the mutex in any context **/
var_dump(Mutex::lock($mutex));
/** It is invalid to attempt to destroy a locked Mutex **/
var_dump(Mutex::unlock($mutex));
/** Always destroy mutex you have created **/
Mutex::destroy($mutex);
?>

Результат выполнения данного примера:

bool(true)
bool(true)


Класс Cond

(PECL pthreads < 3.0.0)

Введение

Внимание

Класс Cond был удален в pthreads v3.

Статические методы этого класса предоставляют прямой доступ к Условным Переменным Posix.

Обзор классов

Cond {
/* Методы */
final public static broadcast ( int $condition ) : bool
final public static create ( void ) : int
final public static destroy ( int $condition ) : bool
final public static signal ( int $condition ) : bool
final public static wait ( int $condition , int $mutex [, int $timeout ] ) : bool
}

Содержание

  • Cond::broadcast — Broadcast a Condition
  • Cond::create — Create a Condition
  • Cond::destroy — Destroy a Condition
  • Cond::signal — Signal a Condition
  • Cond::wait — Wait for Condition


Broadcast a Condition

  • « Cond
  • Cond::create »
  • PHP Manual
  • Cond
  • Broadcast a Condition

Cond::broadcast

(PECL pthreads < 3.0.0)

Cond::broadcast — Broadcast a Condition

Внимание

The Cond class has been removed in pthreads v3.

Описание

final public static Cond::broadcast ( int $condition ) : bool

Broadcast to all Threads blocking on a call to Cond::wait().

Список параметров

condition

A handle to a Condition Variable returned by a previous call to Cond::create()

Возвращаемые значения

A boolean indication of success.

Примеры

Пример #1 Condition Broadcasting

<?php
/** You cannot use the "new" keyword, a Cond is not a PHP object **/
$cond = Cond::create();
/** The caller must lock the associated Mutex before a call to broadcast **/
var_dump(Cond::broadcast($cond));
/** Always destroy Cond you have created **/
Cond::destroy($cond);
?>

Результат выполнения данного примера:

bool(true)


Create a Condition

  • « Cond::broadcast
  • Cond::destroy »
  • PHP Manual
  • Cond
  • Create a Condition

Cond::create

(PECL pthreads < 3.0.0)

Cond::create — Create a Condition

Внимание

The Cond class has been removed in pthreads v3.

Описание

final public static Cond::create ( void ) : int

Creates a new Condition Variable for the caller.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A handle to a Condition Variable

Примеры

Пример #1 Condition Creation and Destruction

<?php
/** You cannot use the "new" keyword, a Cond is not a PHP object **/
$cond = Cond::create();
/** You can now use the Cond in any context **/
var_dump($cond);
/** Always destroy Cond you have created **/
Cond::destroy($cond);
?>

Результат выполнения данного примера:

int(4540682)


Destroy a Condition

  • « Cond::create
  • Cond::signal »
  • PHP Manual
  • Cond
  • Destroy a Condition

Cond::destroy

(PECL pthreads < 3.0.0)

Cond::destroy — Destroy a Condition

Внимание

The Cond class has been removed in pthreads v3.

Описание

final public static Cond::destroy ( int $condition ) : bool

Destroying Condition Variable handles must be carried out explicitly by the programmer when they are finished with the Condition Variable. No Threads should be blocking on a call to Cond::wait() when the call to Cond::destroy() takes place.

Список параметров

condition

A handle to a Condition Variable returned by a previous call to Cond::create()

Возвращаемые значения

A boolean indication of success.

Примеры

Пример #1 Condition Creation and Destruction

<?php
/** You cannot use the "new" keyword, a Cond is not a PHP object **/
$cond = Cond::create();
/** You can now use the Cond in any context **/
var_dump($cond);
/** Always destroy Cond you have created **/
Cond::destroy($cond);
?>

Результат выполнения данного примера:

int(4540682)


Signal a Condition

  • « Cond::destroy
  • Cond::wait »
  • PHP Manual
  • Cond
  • Signal a Condition

Cond::signal

(PECL pthreads < 3.0.0)

Cond::signal — Signal a Condition

Внимание

The Cond class has been removed in pthreads v3.

Описание

final public static Cond::signal ( int $condition ) : bool

Список параметров

condition

A handle returned by a previous call to Cond::create()

Возвращаемые значения

A boolean indication of success.

Примеры

Пример #1 Condition Signalling

<?php
/** You cannot use the "new" keyword, a Cond is not a PHP object **/
$cond = Cond::create();
/** The caller must lock the associated Mutex before a call to broadcast **/
var_dump(Cond::signal($cond));
/** Always destroy Cond you have created **/
Cond::destroy($cond);
?>

Результат выполнения данного примера:

bool(true)


Wait for Condition

  • « Cond::signal
  • Volatile »
  • PHP Manual
  • Cond
  • Wait for Condition

Cond::wait

(PECL pthreads < 3.0.0)

Cond::wait — Wait for Condition

Внимание

The Cond class has been removed in pthreads v3.

Описание

final public static Cond::wait ( int $condition , int $mutex [, int $timeout ] ) : bool

Wait for a signal on a Condition Variable, optionally specifying a timeout to limit waiting time.

Список параметров

condition

A handle returned by a previous call to Cond::create().

mutex

A handle returned by a previous call to Mutex::create() and owned (locked) by the caller.

timeout

An optional timeout, in microseconds ( millionths of a second ).

Возвращаемые значения

A boolean indication of success.

Примеры

Пример #1 Waiting for Conditions

<?php
/** PLEASE NOTE THIS EXAMPLE WILL CAUSE THE PROCESS TO HANG **/
$mutex = Mutex::create(true);
/** You cannot use the "new" keyword, a Cond is not a PHP object **/
$cond = Cond::create();
/** The caller must lock the associated Mutex before a call to broadcast **/
var_dump(Cond::wait($cond, $mutex));
/** Always destroy Cond you have created **/
Cond::destroy($cond);
Mutex::unlock($mutex);
Mutex::destroy($mutex);
?>

Результат выполнения данного примера:

int(49685473)


Класс Volatile

(PECL pthreads >= 3.0.0)

Введение

Класс Volatile появился в pthreads v3. Его введение является следствием новой семантики неизменности Threaded-свойств классов Threaded. Класс Volatile включает иммутабельность их Threaded-свойств и, также, используется для хранения массивов PHP в контексте Threaded.

Обзор классов

Volatile extends Threaded implements Collectable , Traversable {
/* Наследуемые методы */
public Threaded::chunk ( int $size , bool $preserve ) : array
public Threaded::count ( void ) : int
public Threaded::extend ( string $class ) : bool
public Threaded::from ( Closure $run [, Closure $construct [, array $args ]] ) : Threaded
public Threaded::getTerminationInfo ( void ) : array
public Threaded::isRunning ( void ) : bool
public Threaded::isTerminated ( void ) : bool
public Threaded::isWaiting ( void ) : bool
public Threaded::lock ( void ) : bool
public Threaded::merge ( mixed $from [, bool $overwrite ] ) : bool
public Threaded::notify ( void ) : bool
public Threaded::notifyOne ( void ) : bool
public Threaded::pop ( void ) : bool
public Threaded::run ( void ) : void
public Threaded::shift ( void ) : mixed
public Threaded::synchronized ( Closure $block [, mixed $... ] ) : mixed
public Threaded::unlock ( void ) : bool
public Threaded::wait ([ int $timeout ] ) : bool
}

Примеры

Пример #1 Номая семантика иммутабельности Threaded

<?php

class Task extends Threaded
{
    public function __construct()
    {
        $this->data = new Threaded();

        // попытка переопределить Threaded-свойство Threaded-класса (ошибка)
        $this->data = new StdClass();
    }
}

var_dump((new Task())->data);

Результатом выполнения данного примера будет что-то подобное:

RuntimeException: Threaded members previously set to Threaded objects are immutable, cannot overwrite data in %s:%d

Пример #2 Пример использования Volatile

<?php

class Task extends Volatile
{
    public function __construct()
    {
        $this->data = new Threaded();

        // попытка переопределить Threaded-свойство Volatile-класса (корректно)
        $this->data = new StdClass();
    }
}

var_dump((new Task())->data);

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)#3 (0) {
}


pht

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • pht\Thread — The Thread class
    • pht\Thread::addClassTask — Class threading
    • pht\Thread::addFileTask — File threading
    • pht\Thread::addFunctionTask — Function threading
    • pht\Thread::join — Joins a thread
    • pht\Thread::start — Starts the new thread
    • pht\Thread::taskCount — Gets a thread's task count
  • pht\Runnable — The Runnable interface
    • pht\Runnable::run — The entry point of a threaded class
  • pht\HashTable — The HashTable class
    • pht\HashTable::lock — Acquires the hash table's mutex lock
    • pht\HashTable::size — Gets the size of the hash table
    • pht\HashTable::unlock — Releases the hash table's mutex lock
  • pht\Vector — The Vector class
    • pht\Vector::__construct — Vector creation
    • pht\Vector::deleteAt — Deletes a value in the vector
    • pht\Vector::insertAt — Inserts a value into the vector
    • pht\Vector::lock — Acquires the vector's mutex lock
    • pht\Vector::pop — Pops a value to the vector
    • pht\Vector::push — Pushes a value to the vector
    • pht\Vector::resize — Resizes a vector
    • pht\Vector::shift — Shifts a value from the vector
    • pht\Vector::size — Gets the size of the vector
    • pht\Vector::unlock — Releases the vector's mutex lock
    • pht\Vector::unshift — Unshifts a value to the vector front
    • pht\Vector::updateAt — Updates a value in the vector
  • pht\Queue — The Queue class
    • pht\Queue::front — Returns the first value from a queue
    • pht\Queue::lock — Acquires the queue's mutex lock
    • pht\Queue::pop — Pops a value off of the front of a queue
    • pht\Queue::push — Pushes a value to the end of a queue
    • pht\Queue::size — Gets the size of the queue
    • pht\Queue::unlock — Releases the queue's mutex lock
  • pht\AtomicInteger — The AtomicInteger class
    • pht\AtomicInteger::__construct — AtomicInteger creation
    • pht\AtomicInteger::dec — Decrements the atomic integer's value by one
    • pht\AtomicInteger::get — Gets the atomic integer's value
    • pht\AtomicInteger::inc — Increments the atomic integer's value by one
    • pht\AtomicInteger::lock — Acquires the atomic integer's mutex lock
    • pht\AtomicInteger::set — Sets the atomic integer's value
    • pht\AtomicInteger::unlock — Releases the atomic integer's mutex lock
  • pht\Threaded — The Threaded interface
    • pht\Threaded::lock — Acquires the mutex lock
    • pht\Threaded::unlock — Releases the mutex lock


Введение

pht is a new threading extension for PHP. It enables for classes, functions, and even entire files to be threaded. Currently, pht can only be used with PHP 7.2. This is due to ZTS mode being unsafe in PHP 7.0 and 7.1. Support for PHP >7.2 is coming soon.

Внимание

The pht extension should not be used in a web server environment. Threading should be restricted to CLI-based applications only.

The approach to threading that pht takes is to abstract away the thread itself behind a dedicated object (pht\Thread). Tasks are then added to the thread's internal task queue, where they are processed when the thread is started (via pht\Thread::start()).

All thread tasks will execute in isolation inside of the newly spawned thread. For class tasks, this means the spawned objects cannot be passed around between threads. By keeping the threading contexts completely separate from one-another, there becomes no need to serialise the properties of threaded objects (which is a necessary evil if such objects have to operate in multiple threads).

The isolation of threading contexts makes the passing around of data between them somewhat problematic. To solve this problem, threadable data structures (pht\HashTable, pht\Vector, and pht\Queue) have been implemented to allow for a two-way communication style between threads, where they expose mutex locks to control their integrity. These data structures can be safely passed around between threads, and manipulated by multiple threads using the mutex locks that have been packed in with them. They are reference-counted across threads, and so they do not need to be explicitly destroyed. This approach to threading means that only the given built-in data structures need to be safely passed around between threads.

Atomic values are also supported by pht. Currently, only an pht\AtomicInteger class exists. Like the threaded data structures, it too can safely be passed around between threads.


Требования

pht requires a ZTS (Zend Thread Safety) version of PHP. Currently, only PHP 7.2 is supported. Support for PHP 7.3 (which will be released at the end of 2018) will be coming soon. PHP 7.0 and 7.1 are unsafe to support, due to race conditions in ZTS mode.

pht should be compatible for any OS with the pthread library (or pthread-win32 library, which is for Windows).


Установка

pht releases are hosted (along with its source code) on the » pht GitHub repository. Unix developers will need to build from source (» instructions here). Windows developers can download the appropriate .dll file from the » repository's releases page. They will need to ensure that the provided pthreadVC2.dll file (which is distributed alongside the extension's .dll file) is made available in their PATH environment variable.


  • « Установка
  • pht\Thread »
  • PHP Manual
  • Установка и настройка
  • Настройка во время выполнения

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.


The Thread class

(PECL pht >= 0.0.1)

Введение

The pht\Thread class abstracts away a native thread. It has an internal task queue, where the methods pht\Thread::addClassTask(), pht\Thread::addFunctionTask(), and pht\Thread::addFileTask() push new tasks onto this queue. Invoking the pht\Thread::start() method will cause the new thread to be spawned, where it will then begin working through the task queue. A thread may be reused for any number of tasks.

Обзор классов

pht\Thread {
/* Методы */
public addClassTask ( string $className [, mixed $...ctorArgs ] ) : void
public addFileTask ( string $fileName [, mixed $...globals ] ) : void
public addFunctionTask ( callable $func [, mixed $...funcArgs ] ) : void
public join ( void ) : void
public start ( void ) : void
public taskCount ( void ) : int
}

Содержание

  • pht\Thread::addClassTask — Class threading
  • pht\Thread::addFileTask — File threading
  • pht\Thread::addFunctionTask — Function threading
  • pht\Thread::join — Joins a thread
  • pht\Thread::start — Starts the new thread
  • pht\Thread::taskCount — Gets a thread's task count


Class threading

  • « pht\Thread
  • pht\Thread::addFileTask »
  • PHP Manual
  • pht\Thread
  • Class threading

pht\Thread::addClassTask

(PECL pht >= 0.0.1)

pht\Thread::addClassTask — Class threading

Описание

public pht\Thread::addClassTask ( string $className [, mixed $...ctorArgs ] ) : void

Adds a new class task to a pht\Threads internal task queue.

Список параметров

className

The name of the class to be threaded. This class must implement the pht\Runnable interface.

...ctorArgs

An optional list of arguments for the threaded class' constructor. These arguments will be serialised (since they are being passed to another thread).

Возвращаемые значения

No return value.

Примеры

Пример #1 Adding a new class task to a thread

<?php

use pht\{Thread, Runnable};

class Task implements Runnable
{
    private $one;

    public function __construct(int $one)
    {
        $this->one = $one;
    }

    public function run()
    {
        var_dump($this->one);
    }
}

$thread = new Thread();

$thread->addClassTask(Task::class, 1);

$thread->start();
$thread->join();

Результат выполнения данного примера:

int(1)


File threading

  • « pht\Thread::addClassTask
  • pht\Thread::addFunctionTask »
  • PHP Manual
  • pht\Thread
  • File threading

pht\Thread::addFileTask

(PECL pht >= 0.0.1)

pht\Thread::addFileTask — File threading

Описание

public pht\Thread::addFileTask ( string $fileName [, mixed $...globals ] ) : void

Adds a new file task to a pht\Threads internal task queue.

Список параметров

func

The name of the file to be threaded.

...globals

An optional list of arguments for the file. These arguments will be placed into a $_THREAD superglobal, which will be made available inside of the threaded file. All arguments will be serialised (since they are being passed to another thread).

Возвращаемые значения

No return value.

Примеры

Пример #1 Adding a new file task to a thread

<?php

use pht\Thread;

$thread = new Thread();

$thread->addFileTask('file.php', 1, 2, 3);

$thread->start();
$thread->join();

file.php:

<?php

[$one, $two, $three] = $_THREAD;

var_dump($one, $two, $three);

Результат выполнения данного примера:

int(1)
int(2)
int(3)


Function threading

  • « pht\Thread::addFileTask
  • pht\Thread::join »
  • PHP Manual
  • pht\Thread
  • Function threading

pht\Thread::addFunctionTask

(PECL pht >= 0.0.1)

pht\Thread::addFunctionTask — Function threading

Описание

public pht\Thread::addFunctionTask ( callable $func [, mixed $...funcArgs ] ) : void

Adds a new function task to a pht\Threads internal task queue.

Список параметров

func

The function to be threaded. If it is bound to an instance, then $this will become NULL.

...funcArgs

An optional list of arguments for the function. These arguments will be serialised (since they are being passed to another thread).

Возвращаемые значения

No return value.

Примеры

Пример #1 Adding a new function task to a thread

<?php

use pht\Thread;

class Test
{
    public static function run(){var_dump(5);}
    public static function run2(){var_dump(6);}
}

function aFunc(){var_dump(3);}

$thread = new Thread();

$thread->addFunctionTask(static function($one) {var_dump($one);}, 1);
$thread->addFunctionTask(function() {var_dump(2);});
$thread->addFunctionTask('aFunc');
$thread->addFunctionTask('array_map', function ($n) {var_dump($n);}, [4]);
$thread->addFunctionTask(['Test', 'run']);
$thread->addFunctionTask([new Test, 'run2']);

$thread->start();
$thread->join();

Результат выполнения данного примера:

int(1)
int(2)
int(3)
int(4)
int(5)
int(6)


Joins a thread

  • « pht\Thread::addFunctionTask
  • pht\Thread::start »
  • PHP Manual
  • pht\Thread
  • Joins a thread

pht\Thread::join

(PECL pht >= 0.0.1)

pht\Thread::join — Joins a thread

Описание

public pht\Thread::join ( void ) : void

This method will join the spawned thread (though it will first wait for that thread's internal task queue to finish). As a matter of good practice, threads should always be joined. Not joining a thread may lead to undefined behaviour.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No return value.

Примеры

Пример #1 Joining a thread

<?php

use pht\Thread;

$thread = new Thread();

$thread->start();
$thread->join();


Starts the new thread

  • « pht\Thread::join
  • pht\Thread::taskCount »
  • PHP Manual
  • pht\Thread
  • Starts the new thread

pht\Thread::start

(PECL pht >= 0.0.1)

pht\Thread::start — Starts the new thread

Описание

public pht\Thread::start ( void ) : void

This will cause a new thread to be spawned for the associated pht\Thread object, where its internal task queue will begin to be processed.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No return value.

Примеры

Пример #1 Starting a new thread

<?php

use pht\Thread;

$thread = new Thread();

$thread->start();
$thread->join();


Gets a thread's task count

  • « pht\Thread::start
  • pht\Runnable »
  • PHP Manual
  • pht\Thread
  • Gets a thread's task count

pht\Thread::taskCount

(PECL pht >= 0.0.1)

pht\Thread::taskCount — Gets a thread's task count

Описание

public pht\Thread::taskCount ( void ) : int

Retrieves the current task count of a pht\Thread.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The number of tasks remaining to be processed.

Примеры

Пример #1 Getting the task count of a thread

<?php

use pht\Thread;

$thread = new Thread();

$thread->addFunctionTask(function (){});
$thread->addFunctionTask(function (){});
$thread->addFunctionTask(function (){});

var_dump($thread->taskCount());

Результат выполнения данного примера:

int(3)


The Runnable interface

(PECL pht >= 0.0.1)

Введение

The pht\Runnable interface enforces the implementation of a run() method on classes that should be threaded. This method acts as the entry point of the threaded class.

Обзор интерфейсов

pht\Runnable {
/* Методы */
public run ( void ) : void
}

Содержание

  • pht\Runnable::run — The entry point of a threaded class


The entry point of a threaded class

  • « pht\Runnable
  • pht\HashTable »
  • PHP Manual
  • pht\Runnable
  • The entry point of a threaded class

pht\Runnable::run

(PECL pht >= 0.0.1)

pht\Runnable::run — The entry point of a threaded class

Описание

public pht\Runnable::run ( void ) : void

This method acts as the entry point of execution for a threaded class. It must be defined by all classes that will be threaded.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No return value.


The HashTable class

(PECL pht >= 0.0.1)

Введение

The pht\HashTable class is one of the Inter-Thread Communication (ITC) data structures exposed by pht. It can be safely passed around between threads, and manipulated by multiple threads using the mutex locks that have been packed in with the data structure. It is reference-counted across threads, and so it does not need to be explicitly destroyed.

The pht\HashTable class enables for array access upon its objects (along with the isset() and unset() functions). The ArrayAccess interface is not explicitly implemented, however, because it is only needed for such abilities by userland classes.

Обзор классов

pht\HashTable implements pht\Threaded {
/* Методы */
public lock ( void ) : void
public size ( void ) : int
public unlock ( void ) : void
}

Содержание

  • pht\HashTable::lock — Acquires the hash table's mutex lock
  • pht\HashTable::size — Gets the size of the hash table
  • pht\HashTable::unlock — Releases the hash table's mutex lock


Acquires the hash table's mutex lock

  • « pht\HashTable
  • pht\HashTable::size »
  • PHP Manual
  • pht\HashTable
  • Acquires the hash table's mutex lock

pht\HashTable::lock

(PECL pht >= 0.0.1)

pht\HashTable::lock — Acquires the hash table's mutex lock

Описание

public pht\HashTable::lock ( void ) : void

This method will acquire the mutex lock associated with the hash table. The mutex lock should always be acquired when manipulating the hash table if it is being used by multiple threads.

The mutex locks of the Inter-Thread Communication (ITC) data structures are not reentrant. Attempting to reacquire an already-acquired mutex lock by the same thread will therefore cause a deadlock.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No return value.

Примеры

Пример #1 Locking a hash table's mutex lock

<?php

use pht\{Thread, HashTable};

$thread = new Thread();
$hashTable = new HashTable();

$thread->addFunctionTask(function ($hashTable) {
    $hashTable->lock();
    $hashTable['a'] = 1;
    $hashTable->unlock();
}, $hashTable);

$thread->start();

// $hashTable is currently being used by multiple threads
$hashTable->lock();
$hashTable['b'] = 2;
$hashTable->unlock();

$thread->join();


Gets the size of the hash table

  • « pht\HashTable::lock
  • pht\HashTable::unlock »
  • PHP Manual
  • pht\HashTable
  • Gets the size of the hash table

pht\HashTable::size

(PECL pht >= 0.0.1)

pht\HashTable::size — Gets the size of the hash table

Описание

public pht\HashTable::size ( void ) : int

Returns the current size of the hash table. This operation requires a pht\HashTable's mutex lock to be held if it is being used by multiple threads.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The size of the hash table.

Примеры

Пример #1 Getting a hash table's size

<?php

use pht\HashTable;

$hashTable = new HashTable();

$hashTable['a'] = 1;
$hashTable['b'] = 2;

var_dump($hashTable->size());

Результат выполнения данного примера:

int(2)


Releases the hash table's mutex lock

  • « pht\HashTable::size
  • pht\Vector »
  • PHP Manual
  • pht\HashTable
  • Releases the hash table's mutex lock

pht\HashTable::unlock

(PECL pht >= 0.0.1)

pht\HashTable::unlock — Releases the hash table's mutex lock

Описание

public pht\HashTable::unlock ( void ) : void

This method will release the mutex lock associated with the hash table.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No return value.

Примеры

Пример #1 Locking a hash table's mutex lock

<?php

use pht\{Thread, HashTable};

$thread = new Thread();
$hashTable = new HashTable();

$thread->addFunctionTask(function ($hashTable) {
    $hashTable->lock();
    $hashTable['a'] = 1;
    $hashTable->unlock();
}, $hashTable);

$thread->start();

// $hashTable is currently being used by multiple threads
$hashTable->lock();
$hashTable['b'] = 2;
$hashTable->unlock();

$thread->join();


The Vector class

(PECL pht >= 0.0.1)

Введение

The pht\Vector class is one of the Inter-Thread Communication (ITC) data structures exposed by pht. It can be safely passed around between threads, and manipulated by multiple threads using the mutex locks that have been packed in with the data structure. It is reference-counted across threads, and so is does not need to be explicitly destroyed.

The pht\Vector class enables for array access upon its objects (along with the isset() and unset() functions). The ArrayAccess interface is not explicitly implemented, however, because it is only needed for such abilities by userland classes.

Обзор классов

pht\Vector implements pht\Threaded {
/* Методы */
public __construct ([ int $size = 0 [, mixed $value = 0 ]] ) : Vector
public deleteAt ( int $offset ) : void
public insertAt ( mixed $value , int $offset ) : void
public lock ( void ) : void
public pop ( void ) : mixed
public push ( mixed $value ) : void
public resize ( int $size [, mixed $value = 0 ] ) : void
public shift ( void ) : mixed
public size ( void ) : int
public unlock ( void ) : void
public unshift ( mixed $value ) : void
public updateAt ( mixed $value , int $offset ) : void
}

Содержание

  • pht\Vector::__construct — Vector creation
  • pht\Vector::deleteAt — Deletes a value in the vector
  • pht\Vector::insertAt — Inserts a value into the vector
  • pht\Vector::lock — Acquires the vector's mutex lock
  • pht\Vector::pop — Pops a value to the vector
  • pht\Vector::push — Pushes a value to the vector
  • pht\Vector::resize — Resizes a vector
  • pht\Vector::shift — Shifts a value from the vector
  • pht\Vector::size — Gets the size of the vector
  • pht\Vector::unlock — Releases the vector's mutex lock
  • pht\Vector::unshift — Unshifts a value to the vector front
  • pht\Vector::updateAt — Updates a value in the vector


Vector creation

  • « pht\Vector
  • pht\Vector::deleteAt »
  • PHP Manual
  • pht\Vector
  • Vector creation

pht\Vector::__construct

(PECL pht >= 0.0.1)

pht\Vector::__construct — Vector creation

Описание

public pht\Vector::__construct ([ int $size = 0 [, mixed $value = 0 ]] ) : Vector

Handles the creation of a new vector.

Список параметров

size

The size of the vector that will be created.

value

The value to initialise the empty slots in the vector to.

Возвращаемые значения

No return value.

Примеры

Пример #1 Creating a new vector

<?php

use pht\Vector;

$vector1 = new Vector(1);
$vector2 = new Vector(2, 1);

var_dump($vector1, $vector2);

Результат выполнения данного примера:

object(pht\Vector)#1 (1) {
  [0]=>
  int(0)
}
object(pht\Vector)#2 (2) {
  [0]=>
  int(1)
  [1]=>
  int(1)
}


Deletes a value in the vector

  • « pht\Vector::__construct
  • pht\Vector::insertAt »
  • PHP Manual
  • pht\Vector
  • Deletes a value in the vector

pht\Vector::deleteAt

(PECL pht >= 0.0.1)

pht\Vector::deleteAt — Deletes a value in the vector

Описание

public pht\Vector::deleteAt ( int $offset ) : void

This method deletes a value at the specified offset in the vector (in linear time).

Since the pht\Vector class supports array access, deleting values can also be performed using the array subset notation ([]) in combination with the unset() function.

Список параметров

offset

The offset at which the value will be deleted at. This offset must be within the 0..(N-1) range (inclusive), where N is the size of the vector. Attempting to delete at offsets outside of this range will result in an Error exception.

Возвращаемые значения

No return value.

Примеры

Пример #1 Deleting values in a vector

<?php

use pht\Vector;

$vector = new Vector();

$vector[] = 1;
$vector[] = 2;
$vector[] = 3;
$vector[] = 4;

$vector->deleteAt(1);
unset($vector[1]);

var_dump($vector);

Результат выполнения данного примера:

object(pht\Vector)#1 (2) {
  [0]=>
  int(1)
  [1]=>
  int(4)
}


Inserts a value into the vector

  • « pht\Vector::deleteAt
  • pht\Vector::lock »
  • PHP Manual
  • pht\Vector
  • Inserts a value into the vector

pht\Vector::insertAt

(PECL pht >= 0.0.1)

pht\Vector::insertAt — Inserts a value into the vector

Описание

public pht\Vector::insertAt ( mixed $value , int $offset ) : void

This method inserts a value at the specified offset into the vector (in linear time). The vector will automatically be resized if it is not large enough.

Список параметров

value

The value to be inserted into the vector. This value will be serialised (since it may be passed around between threads).

offset

The offset at which the value will be inserted at. This offset must be within the 0..N range (inclusive), where N is the size of the vector. Inserting at position N is the equivalent of using pht\Vector::push(), and inserting at position 0 is the equivalent of using pht\Vector::unshift(). Attempting to insert at offsets outside of this range will result in an Error exception.

Возвращаемые значения

No return value.

Примеры

Пример #1 Inserting a value into a vector

<?php

use pht\Vector;

$vector = new Vector();

$vector->insertAt(3, 0); // insert 3 at start
$vector->insertAt(1, 0); // insert 1 at start (before 3)
$vector->insertAt(2, 1); // insert 2 in middle (after 1 and before 3)

var_dump($vector);

Результат выполнения данного примера:

object(pht\Vector)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Acquires the vector's mutex lock

  • « pht\Vector::insertAt
  • pht\Vector::pop »
  • PHP Manual
  • pht\Vector
  • Acquires the vector's mutex lock

pht\Vector::lock

(PECL pht >= 0.0.1)

pht\Vector::lock — Acquires the vector's mutex lock

Описание

public pht\Vector::lock ( void ) : void

This method will acquire the mutex lock associated with the vector. The mutex lock should always be acquired when manipulating the vector if it is being used by multiple threads.

The mutex locks of the Inter-Thread Communication (ITC) data structures are not reentrant. Attempting to reacquire an already-acquired mutex lock by the same thread will therefore cause a deadlock.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No return value.

Примеры

Пример #1 Locking a vector's mutex lock

<?php

use pht\{Thread, Vector};

$thread = new Thread();
$vector = new Vector();

$thread->addFunctionTask(function ($vector) {
    $vector->lock();
    $vector[] = 1;
    $vector->unlock();
}, $vector);

$thread->start();

// $vector is currently being used by multiple threads
$vector->lock();
$vector[] = 2;
$vector->unlock();

$thread->join();


Pops a value to the vector

  • « pht\Vector::lock
  • pht\Vector::push »
  • PHP Manual
  • pht\Vector
  • Pops a value to the vector

pht\Vector::pop

(PECL pht >= 0.0.1)

pht\Vector::pop — Pops a value to the vector

Описание

public pht\Vector::pop ( void ) : mixed

This method pops a value from the end of a vector (in constant time). Popping a value from an empty vector will result in an Error exception.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The value from the end of the vector.

Примеры

Пример #1 Popping a value from a vector

<?php

use pht\Vector;

$vector = new Vector();

$vector->push(1);
$vector[] = 2;

var_dump($vector->pop());

Результат выполнения данного примера:

int(2)


Pushes a value to the vector

  • « pht\Vector::pop
  • pht\Vector::resize »
  • PHP Manual
  • pht\Vector
  • Pushes a value to the vector

pht\Vector::push

(PECL pht >= 0.0.1)

pht\Vector::push — Pushes a value to the vector

Описание

public pht\Vector::push ( mixed $value ) : void

This method pushes a value onto the end of a vector (in constant time). The vector will automatically be resized if it is not large enough.

Since the pht\Vector class supports array access, new values can also be pushed onto the vector using the empty subset notation ([]).

Список параметров

value

The value to be pushed onto the end of the vector. This value will be serialised (since it may be passed around between threads).

Возвращаемые значения

No return value.

Примеры

Пример #1 Pushing values to a vector

<?php

use pht\Vector;

$vector = new Vector();

$vector->push(1);
$vector[] = 2;

var_dump($vector);

Результат выполнения данного примера:

object(pht\Vector)#1 (2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}


Resizes a vector

  • « pht\Vector::push
  • pht\Vector::shift »
  • PHP Manual
  • pht\Vector
  • Resizes a vector

pht\Vector::resize

(PECL pht >= 0.0.1)

pht\Vector::resize — Resizes a vector

Описание

public pht\Vector::resize ( int $size [, mixed $value = 0 ] ) : void

Resizes the vector. If it is enlarged, then the value parameter will be used to fill in the new slots. If it is made smaller, then the end values will be truncated.

Список параметров

size

The new size of the vector.

value

The value to initialise the empty vector slots to (only used if the vector is enlarged).

Возвращаемые значения

No return value.

Примеры

Пример #1 Resizing a vector

<?php

use pht\Vector;

$vector = new Vector(1);
var_dump($vector);
$vector->resize(2, 1);
var_dump($vector);
$vector->resize(1, 2); // unused second arg
var_dump($vector);

Результат выполнения данного примера:

object(pht\Vector)#1 (1) {
  [0]=>
  int(0)
}
object(pht\Vector)#1 (2) {
  [0]=>
  int(0)
  [1]=>
  int(1)
}
object(pht\Vector)#1 (1) {
  [0]=>
  int(0)
}


Shifts a value from the vector

  • « pht\Vector::resize
  • pht\Vector::size »
  • PHP Manual
  • pht\Vector
  • Shifts a value from the vector

pht\Vector::shift

(PECL pht >= 0.0.1)

pht\Vector::shift — Shifts a value from the vector

Описание

public pht\Vector::shift ( void ) : mixed

This method shifts a value from the front of a vector (in linear time). Shifting a value from an empty vector will result in an Error exception.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The value from the front of the vector.

Примеры

Пример #1 Shifting a value from a vector

<?php

use pht\Vector;

$vector = new Vector();

$vector->push(1);
$vector[] = 2;

var_dump($vector->shift());

Результат выполнения данного примера:

int(1)


Gets the size of the vector

  • « pht\Vector::shift
  • pht\Vector::unlock »
  • PHP Manual
  • pht\Vector
  • Gets the size of the vector

pht\Vector::size

(PECL pht >= 0.0.1)

pht\Vector::size — Gets the size of the vector

Описание

public pht\Vector::size ( void ) : int

Returns the current size of the vector. This operation requires a pht\Vector's mutex lock to be held if it is being used by multiple threads.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The size of the vector.

Примеры

Пример #1 Getting a vector's size

<?php

use pht\Vector;

$vector = new Vector();

$vector[] = 1;
$vector[] = 2;
$vector[] = 3;

var_dump($vector->size());

Результат выполнения данного примера:

int(3)


Releases the vector's mutex lock

  • « pht\Vector::size
  • pht\Vector::unshift »
  • PHP Manual
  • pht\Vector
  • Releases the vector's mutex lock

pht\Vector::unlock

(PECL pht >= 0.0.1)

pht\Vector::unlock — Releases the vector's mutex lock

Описание

public pht\Vector::unlock ( void ) : void

This method will release the mutex lock associated with the vector.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No return value.

Примеры

Пример #1 Locking a vector's mutex lock

<?php

use pht\{Thread, Vector};

$thread = new Thread();
$vector = new Vector();

$thread->addFunctionTask(function ($vector) {
    $vector->lock();
    $vector[] = 1;
    $vector->unlock();
}, $vector);

$thread->start();

// $vector is currently being used by multiple threads
$vector->lock();
$vector[] = 2;
$vector->unlock();

$thread->join();


Unshifts a value to the vector front

  • « pht\Vector::unlock
  • pht\Vector::updateAt »
  • PHP Manual
  • pht\Vector
  • Unshifts a value to the vector front

pht\Vector::unshift

(PECL pht >= 0.0.1)

pht\Vector::unshift — Unshifts a value to the vector front

Описание

public pht\Vector::unshift ( mixed $value ) : void

This method unshifts a value to the front of a vector (in linear time). The vector will automatically be resized if it is not large enough.

Список параметров

value

The value to be pushed onto the beginning of the vector. This value will be serialised (since it may be passed around between threads).

Возвращаемые значения

No return value.

Примеры

Пример #1 Unshifting a value to the front of a vector

<?php

use pht\Vector;

$vector = new Vector();

for ($i = 0; $i < 3; ++$i) {
    $vector->unshift($i); // causes a quadratic runtime, beware
}

var_dump($vector);

Результат выполнения данного примера:

object(pht\Vector)#1 (3) {
  [0]=>
  int(2)
  [1]=>
  int(1)
  [2]=>
  int(0)
}


Updates a value in the vector

  • « pht\Vector::unshift
  • pht\Queue »
  • PHP Manual
  • pht\Vector
  • Updates a value in the vector

pht\Vector::updateAt

(PECL pht >= 0.0.1)

pht\Vector::updateAt — Updates a value in the vector

Описание

public pht\Vector::updateAt ( mixed $value , int $offset ) : void

This method updates a value at the specified offset in the vector (in linear time). The vector will automatically be resized if it is not large enough.

Since the pht\Vector class supports array access, updating values can also be performed using the array subset notation ([]).

Список параметров

value

The value to be inserted into the vector. This value will be serialised (since it may be passed around between threads).

offset

The offset at which the value will be updated at. This offset must be within the 0..(N-1) range (inclusive), where N is the size of the vector. Attempting to update at offsets outside of this range will result in an Error exception.

Возвращаемые значения

No return value.

Примеры

Пример #1 Updating a value in a vector

<?php

use pht\Vector;

$vector = new Vector();

$vector[] = 1;
$vector[] = 2;

$vector->updateAt(3, 0);
$vector[1] = 4;

var_dump($vector);

Результат выполнения данного примера:

object(pht\Vector)#1 (2) {
  [0]=>
  int(3)
  [1]=>
  int(4)
}


The Queue class

(PECL pht >= 0.0.1)

Введение

The pht\Queue class is one of the Inter-Thread Communication (ITC) data structures exposed by pht. It can be safely passed around between threads, and manipulated by multiple threads using the mutex locks that have been packed in with the data structure. It is reference-counted across threads, and so it does not need to be explicitly destroyed.

Обзор классов

pht\Queue implements pht\Threaded {
/* Методы */
public front ( void ) : mixed
public lock ( void ) : void
public pop ( void ) : mixed
public push ( mixed $value ) : void
public size ( void ) : int
public unlock ( void ) : void
}

Содержание

  • pht\Queue::front — Returns the first value from a queue
  • pht\Queue::lock — Acquires the queue's mutex lock
  • pht\Queue::pop — Pops a value off of the front of a queue
  • pht\Queue::push — Pushes a value to the end of a queue
  • pht\Queue::size — Gets the size of the queue
  • pht\Queue::unlock — Releases the queue's mutex lock


Returns the first value from a queue

  • « pht\Queue
  • pht\Queue::lock »
  • PHP Manual
  • pht\Queue
  • Returns the first value from a queue

pht\Queue::front

(PECL pht >= 0.0.1)

pht\Queue::front — Returns the first value from a queue

Описание

public pht\Queue::front ( void ) : mixed

This method will remove a value from the front of the queue (in constant time). Attempting to return the front value from an empty queue will result in an Error exception.

Предостережение

Due to the fact that all values in a pht\Queue are serialised, extracting a value from the queue will require it to be deserialised. This can incur a noticeable performance hit if the inspection of the queue's front value is performed within a loop.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The value on the front of the queue.

Примеры

Пример #1 Retrieving the front value of a queue

<?php

use pht\Queue;

$queue = new Queue();

$queue->push(1);

var_dump($queue->front());

Результат выполнения данного примера:

int(1)

Пример #2 Retrieving the front value in a loop (bad example - don't do this)

<?php

use pht\Queue;

$queue = new Queue();

$queue->push(array_fill(0, 2000, 0));

for ($i = 0; $i < count($queue->front()); ++$i); // quadratic runtime

Пример #3 Retrieving the front value in a loop (good example)

<?php

use pht\Queue;

$queue = new Queue();

$queue->push(array_fill(0, 2000, 0));

$front = $queue->front(); // create a separate variable
for ($i = 0; $i < count($front); ++$i); // linear runtime


Acquires the queue's mutex lock

  • « pht\Queue::front
  • pht\Queue::pop »
  • PHP Manual
  • pht\Queue
  • Acquires the queue's mutex lock

pht\Queue::lock

(PECL pht >= 0.0.1)

pht\Queue::lock — Acquires the queue's mutex lock

Описание

public pht\Queue::lock ( void ) : void

This method will acquire the mutex lock associated with the queue. The mutex lock should always be acquired when manipulating the queue if it is being used by multiple threads.

The mutex locks of the Inter-Thread Communication (ITC) data structures are not reentrant. Attempting to reacquire an already-acquired mutex lock by the same thread will therefore cause a deadlock.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No return value.

Примеры

Пример #1 Locking a queue's mutex lock

<?php

use pht\{Thread, Queue};

$thread = new Thread();
$queue = new Queue();

$thread->addFunctionTask(function ($queue) {
    $queue->lock();
    $queue->push(1);
    $queue->unlock();
}, $queue);

$thread->start();

// $queue is currently being used by multiple threads
$queue->lock();
$queue->push(1);
$queue->unlock();

$thread->join();

// $queue is only being used in this thread now, so no need to lock it
while ($queue->size()) {
    var_dump($queue->pop());
}

Результат выполнения данного примера:

int(1)
int(1)


Pops a value off of the front of a queue

  • « pht\Queue::lock
  • pht\Queue::push »
  • PHP Manual
  • pht\Queue
  • Pops a value off of the front of a queue

pht\Queue::pop

(PECL pht >= 0.0.1)

pht\Queue::pop — Pops a value off of the front of a queue

Описание

public pht\Queue::pop ( void ) : mixed

This method will remove a value from the front of the queue (in constant time). Attempting to pop a value from an empty queue will result in an Error exception.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The value removed from the queue.

Примеры

Пример #1 Popping a value from a queue

<?php

use pht\Queue;

$queue = new Queue();

$queue->push(1);

var_dump($queue->pop());

Результат выполнения данного примера:

int(1)


Pushes a value to the end of a queue

  • « pht\Queue::pop
  • pht\Queue::size »
  • PHP Manual
  • pht\Queue
  • Pushes a value to the end of a queue

pht\Queue::push

(PECL pht >= 0.0.1)

pht\Queue::push — Pushes a value to the end of a queue

Описание

public pht\Queue::push ( mixed $value ) : void

This method will add a value onto the queue.

Список параметров

value

The value to be added to a pht\Queue. This value will be serialised (since it may be passed around between threads).

Возвращаемые значения

No return value.

Примеры

Пример #1 Pushing a value to a queue

<?php

use pht\Queue;

$queue = new Queue();

$queue->push(1);

var_dump($queue);

Результат выполнения данного примера:

object(pht\Queue)#1 (1) {
  [0]=>
  int(1)
}


Gets the size of the queue

  • « pht\Queue::push
  • pht\Queue::unlock »
  • PHP Manual
  • pht\Queue
  • Gets the size of the queue

pht\Queue::size

(PECL pht >= 0.0.1)

pht\Queue::size — Gets the size of the queue

Описание

public pht\Queue::size ( void ) : int

Returns the current size of the queue. This operation requires a pht\Queue's mutex lock to be held if it is being used by multiple threads.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The size of the queue.

Примеры

Пример #1 Getting a queue's size

<?php

use pht\Queue;

$queue = new Queue();

$queue->push(1);
$queue->push(1);

var_dump($queue->size());

Результат выполнения данного примера:

int(2)


Releases the queue's mutex lock

  • « pht\Queue::size
  • pht\AtomicInteger »
  • PHP Manual
  • pht\Queue
  • Releases the queue's mutex lock

pht\Queue::unlock

(PECL pht >= 0.0.1)

pht\Queue::unlock — Releases the queue's mutex lock

Описание

public pht\Queue::unlock ( void ) : void

This method will release the mutex lock associated with the queue.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No return value.

Примеры

Пример #1 Locking a queue's mutex lock

<?php

use pht\{Thread, Queue};

$thread = new Thread();
$queue = new Queue();

$thread->addFunctionTask(function ($queue) {
    $queue->lock();
    $queue->push(1);
    $queue->unlock();
}, $queue);

$thread->start();

// $queue is currently being used by multiple threads
$queue->lock();
$queue->push(1);
$queue->unlock();

$thread->join();

// $queue is only being used in this thread now, so no need to lock it
while ($queue->size()) {
    var_dump($queue->pop());
}

Результат выполнения данного примера:

int(1)
int(1)


The AtomicInteger class

(PECL pht >= 0.0.1)

Введение

The pht\AtomicInteger class is currently the only supported atomic value. It allows for an integer to be safely passed around between, and manipulated, by multiple threads. The methods exposed by this class do not need mutex locking, since they will acquire the internal mutex lock implicitly. pht\AtomicInteger::lock() and pht\AtomicInteger::unlock() are still exposed, however, for when multiple operations involving the same pht\AtomicInteger object need to be grouped together.

The mutex locks of the atomic values are reentrant safe.

Обзор классов

pht\AtomicInteger implements pht\Threaded {
/* Методы */
public __construct ([ int $value = 0 ] ) : AtomicInteger
public dec ( void ) : void
public get ( void ) : int
public inc ( void ) : void
public lock ( void ) : void
public set ( int $value ) : void
public unlock ( void ) : void
}

Содержание

  • pht\AtomicInteger::__construct — AtomicInteger creation
  • pht\AtomicInteger::dec — Decrements the atomic integer's value by one
  • pht\AtomicInteger::get — Gets the atomic integer's value
  • pht\AtomicInteger::inc — Increments the atomic integer's value by one
  • pht\AtomicInteger::lock — Acquires the atomic integer's mutex lock
  • pht\AtomicInteger::set — Sets the atomic integer's value
  • pht\AtomicInteger::unlock — Releases the atomic integer's mutex lock


AtomicInteger creation

  • « pht\AtomicInteger
  • pht\AtomicInteger::dec »
  • PHP Manual
  • pht\AtomicInteger
  • AtomicInteger creation

pht\AtomicInteger::__construct

(PECL pht >= 0.0.1)

pht\AtomicInteger::__construct — AtomicInteger creation

Описание

public pht\AtomicInteger::__construct ([ int $value = 0 ] ) : AtomicInteger

Handles the creation of a new atomic integer.

Список параметров

value

The value to initialise the atomic integer to.

Возвращаемые значения

No return value.

Примеры

Пример #1 Creating a new atomic integer

<?php

use pht\AtomicInteger;

$atomicInteger = new AtomicInteger(100);

var_dump($atomicInteger->get());

Результат выполнения данного примера:

int(100)


Decrements the atomic integer's value by one

  • « pht\AtomicInteger::__construct
  • pht\AtomicInteger::get »
  • PHP Manual
  • pht\AtomicInteger
  • Decrements the atomic integer's value by one

pht\AtomicInteger::dec

(PECL pht >= 0.0.1)

pht\AtomicInteger::dec — Decrements the atomic integer's value by one

Описание

public pht\AtomicInteger::dec ( void ) : void

This method will decrement the atomic integer's value by one. Internally, the mutex lock of the atomic integer will be acquired, and so there is no need to manually acquire it (unless this operation needs to be grouped with other operations on the same atomic integer - see the example in pht\AtomicInteger::lock() for a demonstration of this).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No return value.

Примеры

Пример #1 Decrementing an atomic integer's value

<?php

use pht\AtomicInteger;

$atomicInteger = new AtomicInteger();

$atomicInteger->dec();
$atomicInteger->dec();

var_dump($atomicInteger->get());

Результат выполнения данного примера:

int(-2)


Gets the atomic integer's value

  • « pht\AtomicInteger::dec
  • pht\AtomicInteger::inc »
  • PHP Manual
  • pht\AtomicInteger
  • Gets the atomic integer's value

pht\AtomicInteger::get

(PECL pht >= 0.0.1)

pht\AtomicInteger::get — Gets the atomic integer's value

Описание

public pht\AtomicInteger::get ( void ) : int

This method will fetch the current value of the atomic integer. Internally, the mutex lock of the atomic integer will be acquired, and so there is no need to manually acquire it (unless this operation needs to be grouped with other operations on the same atomic integer - see the example in pht\AtomicInteger::lock() for a demonstration of this).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current integer value of the atomic integer.

Примеры

Пример #1 Getting an atomic integer's value

<?php

use pht\AtomicInteger;

$atomicInteger = new AtomicInteger(2);

var_dump($atomicInteger->get());

Результат выполнения данного примера:

int(2)


Increments the atomic integer's value by one

  • « pht\AtomicInteger::get
  • pht\AtomicInteger::lock »
  • PHP Manual
  • pht\AtomicInteger
  • Increments the atomic integer's value by one

pht\AtomicInteger::inc

(PECL pht >= 0.0.1)

pht\AtomicInteger::inc — Increments the atomic integer's value by one

Описание

public pht\AtomicInteger::inc ( void ) : void

This method will increment the atomic integer's value by one. Internally, the mutex lock of the atomic integer will be acquired, and so there is no need to manually acquire it (unless this operation needs to be grouped with other operations on the same atomic integer - see the example in pht\AtomicInteger::lock() for a demonstration of this).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No return value.

Примеры

Пример #1 Incrementing an atomic integer's value

<?php

use pht\AtomicInteger;

$atomicInteger = new AtomicInteger();

$atomicInteger->inc();
$atomicInteger->inc();

var_dump($atomicInteger->get());

Результат выполнения данного примера:

int(2)


Acquires the atomic integer's mutex lock

  • « pht\AtomicInteger::inc
  • pht\AtomicInteger::set »
  • PHP Manual
  • pht\AtomicInteger
  • Acquires the atomic integer's mutex lock

pht\AtomicInteger::lock

(PECL pht >= 0.0.1)

pht\AtomicInteger::lock — Acquires the atomic integer's mutex lock

Описание

public pht\AtomicInteger::lock ( void ) : void

This method will acquire the mutex lock associated with the atomic integer. The mutex lock only needs to be acquired when needing to group together multiple operations.

The mutex locks of the atomic values are reentrant safe. It is therefore valid for the same thread to reacquire a mutex lock that it has already acquired.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No return value.

Примеры

Пример #1 Grouping together an atomic integer's operations (requiring a mutex lock)

<?php

use pht\AtomicInteger;

$atomicInteger = new AtomicInteger(2);

// assumes $atomicInteger is being used by multiple threads
$atomicInteger->lock();
$atomicInteger->set($atomicInteger->get() * 2); // double the value
$atomicInteger->unlock();

var_dump($atomicInteger->get());

Результат выполнения данного примера:

int(4)


Sets the atomic integer's value

  • « pht\AtomicInteger::lock
  • pht\AtomicInteger::unlock »
  • PHP Manual
  • pht\AtomicInteger
  • Sets the atomic integer's value

pht\AtomicInteger::set

(PECL pht >= 0.0.1)

pht\AtomicInteger::set — Sets the atomic integer's value

Описание

public pht\AtomicInteger::set ( int $value ) : void

This method will set the value of the atomic integer. Internally, the mutex lock of the atomic integer will be acquired, and so there is no need to manually acquire it (unless this operation needs to be grouped with other operations on the same atomic integer - see the example in pht\AtomicInteger::lock() for a demonstration of this).

Список параметров

value

The value to set the atomic integer to.

Возвращаемые значения

No return value.

Примеры

Пример #1 Setting an atomic integer's value

<?php

use pht\AtomicInteger;

$atomicInteger = new AtomicInteger();

$atomicInteger->set(20);

var_dump($atomicInteger->get());

Результат выполнения данного примера:

int(20)


Releases the atomic integer's mutex lock

  • « pht\AtomicInteger::set
  • pht\Threaded »
  • PHP Manual
  • pht\AtomicInteger
  • Releases the atomic integer's mutex lock

pht\AtomicInteger::unlock

(PECL pht >= 0.0.1)

pht\AtomicInteger::unlock — Releases the atomic integer's mutex lock

Описание

public pht\AtomicInteger::unlock ( void ) : void

This method will release the mutex lock associated with the atomic integer.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No return value.

Примеры

Пример #1 Grouping together an atomic integer's operations (requiring a mutex lock)

<?php

use pht\AtomicInteger;

$atomicInteger = new AtomicInteger(2);

// assumes $atomicInteger is being used by multiple threads
$atomicInteger->lock();
$atomicInteger->set($atomicInteger->get() * 2); // double the value
$atomicInteger->unlock();

var_dump($atomicInteger->get());

Результат выполнения данного примера:

int(4)


The Threaded interface

(PECL pht >= 0.0.1)

Введение

The pht\Threaded interface is an internal interface used by the Inter-Thread Communication (ITC) data structures (pht\HashTable, pht\Queue, and pht\Vector). It allows those data structures to be threaded and ensures that the mutex locking API (pht\Threaded::lock() and pht\Threaded::unlock()) is implemented by each of the ITC data structures. It is not implementable by userland classes (since standalone mutex locks are not exposed).

Обзор интерфейсов

pht\Threaded {
/* Методы */
public lock ( void ) : void
public unlock ( void ) : void
}

Содержание

  • pht\Threaded::lock — Acquires the mutex lock
  • pht\Threaded::unlock — Releases the mutex lock


Acquires the mutex lock

  • « pht\Threaded
  • pht\Threaded::unlock »
  • PHP Manual
  • pht\Threaded
  • Acquires the mutex lock

pht\Threaded::lock

(PECL pht >= 0.0.1)

pht\Threaded::lock — Acquires the mutex lock

Описание

public pht\Threaded::lock ( void ) : void

This method will acquire the mutex lock associated with the given class (either a pht\HashTable, pht\Queue, pht\Vector, or pht\AtomicInteger).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No return value.


Releases the mutex lock

  • « pht\Threaded::lock
  • Семафоры »
  • PHP Manual
  • pht\Threaded
  • Releases the mutex lock

pht\Threaded::unlock

(PECL pht >= 0.0.1)

pht\Threaded::unlock — Releases the mutex lock

Описание

public pht\Threaded::unlock ( void ) : void

This method will unlock the mutex lock associated with the given class (either a pht\HashTable, pht\Queue, pht\Vector, or pht\AtomicInteger).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No return value.


Семафоры, разделяемая память и IPC

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции семафоров
    • ftok — Преобразование пути и идентификатора проекта в ключ System V IPC
    • msg_get_queue — Создание или подключение к очереди сообщений
    • msg_queue_exists — Проверка существования очереди сообщений
    • msg_receive — Получение сообщения из очереди сообщений
    • msg_remove_queue — Удаление очереди сообщений
    • msg_send — Отправка сообщения в очередь сообщений
    • msg_set_queue — Установка информации в структуре данных очереди сообщений
    • msg_stat_queue — Получение информации из структуры данных очереди сообщений
    • sem_acquire — Захват семафора
    • sem_get — Получение идентификатора семафора
    • sem_release — Освобождение семафора
    • sem_remove — Удаление семафора
    • 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_has_var — Check whether a specific entry exists
    • 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


Введение

Этот модуль обеспечивает поддержку семейства функций межпроцессного взаимодействия System V. Сюда входят семафоры, разделяемая память и обмен сообщениями между процессами (IPC).

Семафоры могут использоваться для получения эксклюзивного доступа к ресурсам локальной машины или для ограничения числа процессов, одновременно использующих ресурс.

Также этот модуль поддерживает функции для работы с разделяемой памятью System V. Разделяемая память может быть использована для предоставления доступа к глобальным переменным. Различные httpd-демоны и даже другие программы (написанные на Perl, C и т.д.) могут получать доступ к этим данным для осуществления глобального обмена данными. Помните, что разделяемая память НЕ ЗАЩИЩЕНА от одновременного доступа. Используйте семафоры для синхронизации.

Лимиты, наложенные на разделяемую память в Unix OS
SHMMAX | максимальный размер разделяемой памяти, обычно 131072 байт
SHMMIN | минимальный размер разделяемой памяти, обычно 1 байт
SHMMNI | максимальное количество сегментов разделяемой памяти в системе, обычно 100
SHMSEG | максимальное количество сегментов разделяемой памяти на процесс, обычно 6

Функции обмена сообщениями можно использовать для отправки и получения сообщений в/из другой процесс. Они обеспечивают простое и эффективное средство обмена данными между процессами без необходимости создания UNIX-сокетов.

Замечание: Для Windows-платформ это расширение недоступно.


Установка

Поддержка этих функций по умолчанию отключена. Для включения поддержки семафоров System V соберите PHP с опцией --enable-sysvsem . Для включения поддержки разделяемой памяти System V соберите PHP с опцией --enable-sysvshm . Для включения поддержки сообщений System V соберите PHP с опцией --enable-sysvmsg .


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Настройка конфигурации семафоров
Имя | По умолчанию | Место изменения | Список изменений
sysvshm.init_mem | 10000 | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

sysvshm.init_mem int

Размер сегмента разделяемой памяти по умолчанию.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы сообщений System V
Константа | Тип | История
MSG_IPC_NOWAIT | integer |
MSG_EAGAIN | integer | с 5.2.0
MSG_ENOMSG | integer | с 5.2.0
MSG_NOERROR | integer |
MSG_EXCEPT | integer |


Функции семафоров

Содержание

  • ftok — Преобразование пути и идентификатора проекта в ключ System V IPC
  • msg_get_queue — Создание или подключение к очереди сообщений
  • msg_queue_exists — Проверка существования очереди сообщений
  • msg_receive — Получение сообщения из очереди сообщений
  • msg_remove_queue — Удаление очереди сообщений
  • msg_send — Отправка сообщения в очередь сообщений
  • msg_set_queue — Установка информации в структуре данных очереди сообщений
  • msg_stat_queue — Получение информации из структуры данных очереди сообщений
  • sem_acquire — Захват семафора
  • sem_get — Получение идентификатора семафора
  • sem_release — Освобождение семафора
  • sem_remove — Удаление семафора
  • 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_has_var — Check whether a specific entry exists
  • 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


Преобразование пути и идентификатора проекта в ключ System V IPC

  • « Функции семафоров
  • msg_get_queue »
  • PHP Manual
  • Функции семафоров
  • Преобразование пути и идентификатора проекта в ключ System V IPC

ftok

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ftok — Преобразование пути и идентификатора проекта в ключ System V IPC

Описание

ftok ( string $pathname , string $proj ) : int

Функция преобразует pathname существующего, доступного файла и идентификатор проекта в целое для использования, например, в shmop_open() и других ключах System V IPC.

Список параметров

pathname

Путь к файлу

proj

Идентификатор проекта. Это должен быть один символ.

Возвращаемые значения

В случае успешного выполнения возвращается созданное значение ключа, и -1 в случае возникновения ошибки.

Смотрите также

  • shmop_open() - Резервирование или использование блока разделяемой памяти
  • sem_get() - Получение идентификатора семафора


Создание или подключение к очереди сообщений

  • « ftok
  • msg_queue_exists »
  • PHP Manual
  • Функции семафоров
  • Создание или подключение к очереди сообщений

msg_get_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_get_queue — Создание или подключение к очереди сообщений

Описание

msg_get_queue ( int $key [, int $perms = 0666 ] ) : resource

msg_get_queue() возвращает идентификатор, который используется для доступа к очереди сообщений System V с указанным ключом key. Первый вызов создаёт очередь сообщений с необязательными правами perms. Второй и последующие вызовы msg_get_queue() для того же key будут возвращать другие идентификаторы, однако все они будут ссылаться на одну и ту же очередь сообщений.

Список параметров

key

Числовой идентификатор очереди сообщений.

perms

Права доступа к очереди. По умолчанию 0666. Если очередт сообщений уже существует, параметр perms игнорируется.

Возвращаемые значения

Возвращает дескриптор ресурса, который может быть использован для доступа к очереди сообщений System V.

Смотрите также

  • msg_remove_queue() - Удаление очереди сообщений
  • msg_receive() - Получение сообщения из очереди сообщений
  • msg_send() - Отправка сообщения в очередь сообщений
  • msg_stat_queue() - Получение информации из структуры данных очереди сообщений
  • msg_set_queue() - Установка информации в структуре данных очереди сообщений


Проверка существования очереди сообщений

  • « msg_get_queue
  • msg_receive »
  • PHP Manual
  • Функции семафоров
  • Проверка существования очереди сообщений

msg_queue_exists

(PHP 5 >= 5.3.0, PHP 7)

msg_queue_exists — Проверка существования очереди сообщений

Описание

msg_queue_exists ( int $key ) : bool

Проверяет существование очереди сообщений, задаваемой ключом key.

Список параметров

key

Ключ очереди.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msg_remove_queue() - Удаление очереди сообщений
  • msg_receive() - Получение сообщения из очереди сообщений
  • msg_stat_queue() - Получение информации из структуры данных очереди сообщений


Получение сообщения из очереди сообщений

  • « msg_queue_exists
  • msg_remove_queue »
  • PHP Manual
  • Функции семафоров
  • Получение сообщения из очереди сообщений

msg_receive

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_receive — Получение сообщения из очереди сообщений

Описание

msg_receive ( resource $queue , int $desiredmsgtype , int &$msgtype , int $maxsize , mixed &$message [, bool $unserialize = TRUE [, int $flags = 0 [, int &$errorcode ]]] ) : bool

msg_receive() получает первое сообщение из задаваемой параметром queue очереди сообщений с типом, указанным в desiredmsgtype.

Список параметров

queue

Идентификатор ресурса очереди.

desiredmsgtype

Если в desiredmsgtype указано 0, возвращается первое сообщение из очереди. Если desiredmsgtype больше 0, то возвращается первое сообщение с указанным типом. Если desiredmsgtype меньше 0, то возвращается первое сообщение с типом, меньшим или равным по модулю указанному в desiredmsgtype. Если нет сообщений, соответствующих критериям, ваш скрипт ожидает их появления в очереди. Вы можете изменить это поведение, указав MSG_IPC_NOWAIT в параметре flags.

msgtype

В этом параметре сохраняется тип полученного сообщения.

maxsize

Максимальный размер принимаемого сообщения задаётся в maxsize; если сообщение в очереди больше этого размера, то функция завершается ошибкой (если вы не установите flags как описано ниже).

message

Полученное сообщение сохраняется в message, если не было ошибок при получении.

unserialize

Если установлено в TRUE, сообщение рассматривается как сериализованое с использованием того же механизма, что и в модуле сессий. Сообщение десериализуется, а затем возвращается в ваш скрипт. Это позволяет вам легко получать массивы и сложные объекты из других PHP-скриптов, или, если вы используете WDDX-сериализатор, из любых совместимых с WDDX источников.

Если в unserialize указано FALSE, сообщение возвращается в виде бинарно-безопасной строки.

flags

Необязательный параметр flags позволяет вам передать флажки в низкоуровневый системный вызов msgrcv. По умолчанию его значение 0, однако вы можете указать одно или несколько следующих значений (складывая их или выполняя операцию бинарного ИЛИ).

Flag values for msg_receive
MSG_IPC_NOWAIT | Если нет сообщений, удовлетворяющих условиям desiredmsgtype, возвращаться немедленно, а не ждать. Функция завершается ошибкой и возвращает целочисленное значение MSG_ENOMSG.
MSG_EXCEPT | Использование этого флага в комбинации с указынным в desiredmsgtype положительным значением, позволяет получить первое сообщение, тип которого не равен значению desiredmsgtype.
MSG_NOERROR | Если размер сообщения превышает maxsize, то установка этого флага приводит к усечению сообщения до maxsize без сигнализирования об ошибке.

errorcode

Если функция завершается аварийно, необязательный параметр errorcode будет содержать значение системной переменной errno.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

При успешном завершении, структура данных очереди сообшений обновляется следующим образом: msg_lrpid содержит идентификатор вызвавшего процесса, msg_qnum уменьшается на 1 и msg_rtime устанавливается соответственно текущему времени.

Смотрите также

  • msg_remove_queue() - Удаление очереди сообщений
  • msg_send() - Отправка сообщения в очередь сообщений
  • msg_stat_queue() - Получение информации из структуры данных очереди сообщений
  • msg_set_queue() - Установка информации в структуре данных очереди сообщений


Удаление очереди сообщений

  • « msg_receive
  • msg_send »
  • PHP Manual
  • Функции семафоров
  • Удаление очереди сообщений

msg_remove_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_remove_queue — Удаление очереди сообщений

Описание

msg_remove_queue ( resource $queue ) : bool

msg_remove_queue() удаляет очередь сообщений, указанную в параметре queue. Используйте эту функцию только тогда, когда все использовавшие очередь сообщений процессы завершили работу с ней и вам необходимо освободить системняе ресурсы.

Список параметров

queue

Дескриптор ресурса очереди сообщений

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msg_get_queue() - Создание или подключение к очереди сообщений
  • msg_receive() - Получение сообщения из очереди сообщений
  • msg_stat_queue() - Получение информации из структуры данных очереди сообщений
  • msg_set_queue() - Установка информации в структуре данных очереди сообщений


Отправка сообщения в очередь сообщений

  • « msg_remove_queue
  • msg_set_queue »
  • PHP Manual
  • Функции семафоров
  • Отправка сообщения в очередь сообщений

msg_send

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_send — Отправка сообщения в очередь сообщений

Описание

msg_send ( resource $queue , int $msgtype , mixed $message [, bool $serialize = TRUE [, bool $blocking = TRUE [, int &$errorcode ]]] ) : bool

msg_send() отправляет сообщение message с типом msgtype (должно быть больше 0) в очередь сообщений, указанную параметром queue.

Список параметров

queue

Идентификатор ресурса очереди.

msgtype

Тип сообщения. Должно быть больше 0.

message

Тело сообщения.

Замечание:

Если serialize задано как FALSE, ДОЛЖНО быть типа: string, integer, float или bool. Иначе будет выведено предупреждение.

serialize

Необязательный параметр serialize управляет тем, как будет отправлено сообщение message. По умолчанию serialize имеет значение TRUE, что означает сериализацию message перед отправкой тем же механизмом, который используется модулем обработки сессий. Это позволяет отправлять сложные массивы и объекты в другие PHP-скрипты, или, если вы используете сериализацию WDDX, в другие совместимые с WDDX клиенты.

blocking

Если помещаемое в очередь сообщение слишком велико, ваш скрипт будет ожидать прочтения сообщений другим процессом и освобождения места под отправляемое вами сообщение. Это называется блокировкой; вы можете отключить эту возможность, установив для blocking значение FALSE, в этом случае msg_send() будет немедленно возвращать FALSE если сообщение слишком велико, и устанавливать необязательный параметр errorcode в значение MSG_EAGAIN, что будет указывать вам на необходимость попробовать отправить сообщение несколько позже.

errorcode

Если функция отработает неудачно, то этот код будет записан в системную переменную errno.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

При успешном завершении структура данных очереди сообщений обновится следующим образом: msg_lspid будет содержать идентификатор вызвавшего процесса, msg_qnum увеличится на 1, а msg_stime будет содержать текущее время.

Смотрите также

  • msg_remove_queue() - Удаление очереди сообщений
  • msg_receive() - Получение сообщения из очереди сообщений
  • msg_stat_queue() - Получение информации из структуры данных очереди сообщений
  • msg_set_queue() - Установка информации в структуре данных очереди сообщений


Установка информации в структуре данных очереди сообщений

  • « msg_send
  • msg_stat_queue »
  • PHP Manual
  • Функции семафоров
  • Установка информации в структуре данных очереди сообщений

msg_set_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_set_queue — Установка информации в структуре данных очереди сообщений

Описание

msg_set_queue ( resource $queue , array $data ) : bool

msg_set_queue() позволяет вам изменить значения полей msg_perm.uid, msg_perm.gid, msg_perm.mode и msg_qbytes в служебной структуре данных очереди сообщений.

Изменение структуры данных возможно только в том случае, если PHP запущен от пользователя, создавшего очередь, владеющего очередью (определяется полем msg_perm.xxx), или имеющего root-привилегии. Root-привилегии требуются для увеличения значения msg_qbytes выше системных лимитов.

Список параметров

queue

Дескриптор ресурса очереди сообщений.

data

Вы указываете требующие установки значения через соответствующие ключи массива data.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msg_remove_queue() - Удаление очереди сообщений
  • msg_receive() - Получение сообщения из очереди сообщений
  • msg_stat_queue() - Получение информации из структуры данных очереди сообщений
  • msg_get_queue() - Создание или подключение к очереди сообщений


Получение информации из структуры данных очереди сообщений

  • « msg_set_queue
  • sem_acquire »
  • PHP Manual
  • Функции семафоров
  • Получение информации из структуры данных очереди сообщений

msg_stat_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_stat_queue — Получение информации из структуры данных очереди сообщений

Описание

msg_stat_queue ( resource $queue ) : array

msg_stat_queue() возвращает мета-данные очереди сообщений, задаваемой queue. Это полезно, например, для определения процесса-отправителя полученного вами только что сообщения.

Список параметров

queue

Дескриптор ресурса очереди сообщений.

Возвращаемые значения

Возвращаемое значение является массивом, ключи и значения которого означают следующее:

Структура массива для msg_stat_queue
msg_perm.uid | uid владельца очереди
msg_perm.gid | gid владельца очереди.
msg_perm.mode | Режим доступа к очереди.
msg_stime | Время последней отправки сообщения в очередь.
msg_rtime | Время последнего получения сообщаения из очереди.
msg_ctime | Время последнего изменения очереди.
msg_qnum | Количество сообщений в очереди.
msg_qbytes | Максимальное количество байт, допустимое в одной очеди сообщений. В Linux это значение можно получить и изменить через /proc/sys/kernel/msgmnb.
msg_lspid | pid процесса, последним отправившего сообщение в очередь.
msg_lrpid | pid прочесса, последним получившим сообщение из очереди.

Смотрите также

  • msg_remove_queue() - Удаление очереди сообщений
  • msg_receive() - Получение сообщения из очереди сообщений
  • msg_get_queue() - Создание или подключение к очереди сообщений
  • msg_set_queue() - Установка информации в структуре данных очереди сообщений


Захват семафора

  • « msg_stat_queue
  • sem_get »
  • PHP Manual
  • Функции семафоров
  • Захват семафора

sem_acquire

(PHP 4, PHP 5, PHP 7)

sem_acquire — Захват семафора

Описание

sem_acquire ( resource $sem_identifier [, bool $nowait = FALSE ] ) : bool

sem_acquire() блокируется (при необходимости) до момента захвата семафора. Процесс, который попытается захватить семафор уже захваченный им же будет заблокирован навсегда, если будет превышено максимальное значение семафора.

После выполнения запроса, все захваченные, но явно не освобождённые процессом, семафоры освобождаются автоматически и генерируется предупреждение.

Список параметров

sem_identifier

sem_identifier - это ресурс семафора, полученный из sem_get().

nowait

Указывает, должен ли процесс ждать для захвата семафора. Если установлено в true, вызов немедленно вернет false, если семафор не может быть захвачен.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.6.1 | Добавлен параметр $nowait.

Смотрите также

  • sem_get() - Получение идентификатора семафора
  • sem_release() - Освобождение семафора


Получение идентификатора семафора

  • « sem_acquire
  • sem_release »
  • PHP Manual
  • Функции семафоров
  • Получение идентификатора семафора

sem_get

(PHP 4, PHP 5, PHP 7)

sem_get — Получение идентификатора семафора

Описание

sem_get ( int $key [, int $max_acquire = 1 [, int $perm = 0666 [, int $auto_release = 1 ]]] ) : resource

sem_get() возвращает идентификатор, который может быть использован для доступа к семафору System V, по заданному значению key.

Последующие вызовы sem_get() для того же самого ключа будут возвращать другие идентификаторы, однако все они будут ссылаться на один и тот же семафор.

Список параметров

key

max_acquire

Число процессов, которые могут одновременно использовать семафор задаётся через max_acquire.

perm

Права доступа к семафору. В действительности, устанавливается только если процесс является единственным использующим семафор.

auto_release

Определяет, должен ли семафор автоматически освобождаться при завершении работы.

Возвращаемые значения

При успешном завершении возвращается положительный идентификатор семафора, или FALSE в случае возникновения ошибки.

Примечания

Внимание

Когда sem_get() используется для доступа к семафору, созданному вне PHP, обратите внимание на то, что этот семафор должен быть создан как набор из трех семафоров (к примеру, путем указания 3 в качестве параметра nsems во время вызова C-функции semget()), в противном случае, PHP не сможет обратиться к семафору.

Смотрите также

  • sem_acquire() - Захват семафора
  • sem_release() - Освобождение семафора
  • ftok() - Преобразование пути и идентификатора проекта в ключ System V IPC


Освобождение семафора

  • « sem_get
  • sem_remove »
  • PHP Manual
  • Функции семафоров
  • Освобождение семафора

sem_release

(PHP 4, PHP 5, PHP 7)

sem_release — Освобождение семафора

Описание

sem_release ( resource $sem_identifier ) : bool

sem_release() освобождает семафор, если он был захвачен вызывающим процессом, в противном случае генерируется предупреждение.

После освобождения семафор может быть захвачен повторно через вызов sem_acquire().

Список параметров

sem_identifier

Ресурс семафора, возвращённый sem_get().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • sem_get() - Получение идентификатора семафора
  • sem_acquire() - Захват семафора


Удаление семафора

  • « sem_release
  • shm_attach »
  • PHP Manual
  • Функции семафоров
  • Удаление семафора

sem_remove

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

sem_remove — Удаление семафора

Описание

sem_remove ( resource $sem_identifier ) : bool

sem_remove() удаляет указанный семафор.

После удаления семафора он становится недоступным.

Список параметров

sem_identifier

Идентификатор семафора, возвращённый sem_get().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • sem_get() - Получение идентификатора семафора
  • sem_release() - Освобождение семафора
  • sem_acquire() - Захват семафора


Creates or open a shared memory segment

  • « sem_remove
  • shm_detach »
  • PHP Manual
  • Функции семафоров
  • Creates or open a shared memory segment

shm_attach

(PHP 4, PHP 5, PHP 7)

shm_attach — Creates or open a shared memory segment

Описание

shm_attach ( int $key [, int $memsize [, int $perm = 0666 ]] ) : resource

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 and the optional perm-bits perm.

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.

Список параметров

key

A numeric shared memory segment ID

memsize

The memory size. If not provided, default to the sysvshm.init_mem in the php.ini, otherwise 10000 bytes.

perm

The optional permission bits. Default to 0666.

Возвращаемые значения

Returns a shared memory segment identifier.

Список изменений

Версия | Описание
5.3.0 | This function now returns a resource instead of an integer.

Примечания

Замечание:

This function used to return an integer value prior to PHP 5.3.0. To achieve the same value in a portable manner, the return value can be cast to an integer like:

<?php
// Create a temporary file and return its path
$tmp = tempnam('/tmp', 'PHP');

// Get the file token key
$key = ftok($tmp, 'a');

// Attach the SHM resource, notice the cast afterwards
$id = shm_attach($key);

if ($id === false) {
    die('Unable to create the shared memory segment');
}

// Cast to integer, since prior to PHP 5.3.0 the resource id
// is returned which can be exposed when casting a resource
// to an integer
$id = (integer) $id;
?>

Смотрите также

  • shm_detach() - Disconnects from shared memory segment
  • ftok() - Преобразование пути и идентификатора проекта в ключ System V IPC


Disconnects from shared memory segment

  • « shm_attach
  • shm_get_var »
  • PHP Manual
  • Функции семафоров
  • Disconnects from shared memory segment

shm_detach

(PHP 4, PHP 5, PHP 7)

shm_detach — Disconnects from shared memory segment

Описание

shm_detach ( resource $shm_identifier ) : bool

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_identifier

A shared memory resource handle as returned by shm_attach()

Возвращаемые значения

shm_detach() always returns TRUE.

Смотрите также

  • shm_attach() - Creates or open a shared memory segment
  • shm_remove() - Removes shared memory from Unix systems
  • shm_remove_var() - Removes a variable from shared memory


Returns a variable from shared memory

  • « shm_detach
  • shm_has_var »
  • PHP Manual
  • Функции семафоров
  • Returns a variable from shared memory

shm_get_var

(PHP 4, PHP 5, PHP 7)

shm_get_var — Returns a variable from shared memory

Описание

shm_get_var ( resource $shm_identifier , int $variable_key ) : mixed

shm_get_var() returns the variable with a given variable_key, in the given shared memory segment. The variable is still present in the shared memory.

Список параметров

shm_identifier

Shared memory segment, obtained from shm_attach().

variable_key

The variable key.

Возвращаемые значения

Returns the variable with the given key.

Смотрите также

  • shm_has_var() - Check whether a specific entry exists
  • shm_put_var() - Inserts or updates a variable in shared memory


Check whether a specific entry exists

  • « shm_get_var
  • shm_put_var »
  • PHP Manual
  • Функции семафоров
  • Check whether a specific entry exists

shm_has_var

(PHP 5 >= 5.3.0, PHP 7)

shm_has_var — Check whether a specific entry exists

Описание

shm_has_var ( resource $shm_identifier , int $variable_key ) : bool

Checks whether a specific key exists inside a shared memory segment.

Список параметров

shm_identifier

Shared memory segment, obtained from shm_attach().

variable_key

The variable key.

Возвращаемые значения

Returns TRUE if the entry exists, otherwise FALSE

Смотрите также

  • shm_get_var() - Returns a variable from shared memory
  • shm_put_var() - Inserts or updates a variable in shared memory


Inserts or updates a variable in shared memory

  • « shm_has_var
  • shm_remove_var »
  • PHP Manual
  • Функции семафоров
  • Inserts or updates a variable in shared memory

shm_put_var

(PHP 4, PHP 5, PHP 7)

shm_put_var — Inserts or updates a variable in shared memory

Описание

shm_put_var ( resource $shm_identifier , int $variable_key , mixed $variable ) : bool

shm_put_var() inserts or updates the variable with the given variable_key.

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_identifier

A shared memory resource handle as returned by shm_attach()

variable_key

The variable key.

variable

The variable. All variable types that serialize() supports may be used: generally this means all types except for resources and some internal objects that cannot be serialized.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • shm_get_var() - Returns a variable from shared memory
  • shm_has_var() - Check whether a specific entry exists


Removes a variable from shared memory

  • « shm_put_var
  • shm_remove »
  • PHP Manual
  • Функции семафоров
  • Removes a variable from shared memory

shm_remove_var

(PHP 4, PHP 5, PHP 7)

shm_remove_var — Removes a variable from shared memory

Описание

shm_remove_var ( resource $shm_identifier , int $variable_key ) : bool

Removes a variable with a given variable_key and frees the occupied memory.

Список параметров

shm_identifier

The shared memory identifier as returned by shm_attach()

variable_key

The variable key.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • shm_remove() - Removes shared memory from Unix systems


Removes shared memory from Unix systems

  • « shm_remove_var
  • Управление разделяемой памятью »
  • PHP Manual
  • Функции семафоров
  • Removes shared memory from Unix systems

shm_remove

(PHP 4, PHP 5, PHP 7)

shm_remove — Removes shared memory from Unix systems

Описание

shm_remove ( resource $shm_identifier ) : bool

shm_remove() removes the shared memory shm_identifier. All data will be destroyed.

Список параметров

shm_identifier

The shared memory identifier as returned by shm_attach()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • shm_remove_var() - Removes a variable from shared memory


Управление разделяемой памятью

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Базовое использование
  • Разделяемая (shared) память
    • shmop_close — Закрытие блока разделяемой памяти
    • shmop_delete — Удаление блока разделяемой памяти
    • shmop_open — Резервирование или использование блока разделяемой памяти
    • shmop_read — Чтение данных из участка разделяемой памяти
    • shmop_size — Возвращает размер блока в разделяемой памяти
    • shmop_write — Запись данных в разделяемую память


Введение

Набор функций shmop позволяет легко выполнять операции чтения, записи, резервирования и удаления сегментов разделяемой памяти Unix.


Установка

Для использования набора функций shmop необходимо скомпилировать PHP с опцией --enable-shmop в строке конфигурации.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

С PHP 7.0.0, модуль задает тип ресурса shmop, являющийся обработчиком блока разделяемой памяти.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • Управление разделяемой памятью
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Базовое использование »
  • PHP Manual
  • Управление разделяемой памятью
  • Примеры

Примеры

Содержание

  • Базовое использование


Базовое использование

Пример #1 Обзор операций с разделяемой памятью

<?php

// Создание блока с идентификатором 0xff3 и размером в 100 байт.
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if (!$shm_id) {
    echo "Невозможно зарезервировать блок в сегменте памяти\n";
}

// Получение размера блока в разделяемой памяти
$shm_size = shmop_size($shm_id);
echo "Участок памяти, размером: " . $shm_size . ", успешно зарезервирован.\n";

// Проверочная запись некоторой строки в разделяемую память
$shm_bytes_written = shmop_write($shm_id, "Мой маленький блок", 0);
if ($shm_bytes_written != strlen("Мой маленький блок")) {
    echo "Не удалось записать весь размер данных\n";
}

// Получение хранимой строки из разделяемой памяти
$my_string = shmop_read($shm_id, 0, $shm_size);
if (!$my_string) {
    echo "Невозможно прочитать данные из блока памяти\n";
}
echo "Данные, размещенные в разделяемой памяти: " . $my_string . "\n";

// Удаление блока и закрытие сегмента разделяемой памяти
if (!shmop_delete($shm_id)) {
    echo "Невозможно отметить участок памяти для освобождения.";
}
shmop_close($shm_id);

?>


Разделяемая (shared) память

Содержание

  • shmop_close — Закрытие блока разделяемой памяти
  • shmop_delete — Удаление блока разделяемой памяти
  • shmop_open — Резервирование или использование блока разделяемой памяти
  • shmop_read — Чтение данных из участка разделяемой памяти
  • shmop_size — Возвращает размер блока в разделяемой памяти
  • shmop_write — Запись данных в разделяемую память


Закрытие блока разделяемой памяти

  • « Разделяемая (shared) память
  • shmop_delete »
  • PHP Manual
  • Разделяемая (shared) память
  • Закрытие блока разделяемой памяти

shmop_close

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_close — Закрытие блока разделяемой памяти

Описание

shmop_close ( resource $shmid ) : void

shmop_close() используется для завершения доступа к блоку разделяемой памяти.

Список параметров

shmid

Ресурс блока памяти, возвращаемый функцией shmop_open()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
7.0.0 | Тип shmid был изменен с int на resource.

Примеры

Пример #1 Закрытие блока разделяемой памяти

<?php
shmop_close($shm_id);
?>

В данном примере прекращается доступ к блоку памяти, имеющему идентификатор $shm_id.

Смотрите также

  • shmop_open() - Резервирование или использование блока разделяемой памяти


Удаление блока разделяемой памяти

  • « shmop_close
  • shmop_open »
  • PHP Manual
  • Разделяемая (shared) память
  • Удаление блока разделяемой памяти

shmop_delete

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_delete — Удаление блока разделяемой памяти

Описание

shmop_delete ( resource $shmid ) : bool

shmop_delete() используется для удаления блока разделяемой памяти.

Список параметров

shmid

Ресурс блока памяти, возвращаемый функцией shmop_open()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | Тип shmid был изменен с int на resource.

Примеры

Пример #1 Удаление блока разделяемой памяти

<?php
shmop_delete($shm_id);
?>

В приведенном примере показано удаление блока разделяемой памяти, имеющего идентификатор $shm_id.


Резервирование или использование блока разделяемой памяти

  • « shmop_delete
  • shmop_read »
  • PHP Manual
  • Разделяемая (shared) память
  • Резервирование или использование блока разделяемой памяти

shmop_open

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_open — Резервирование или использование блока разделяемой памяти

Описание

shmop_open ( int $key , string $flags , int $mode , int $size ) : resource

shmop_open() резервирует или использует существующий блок разделяемой памяти.

Список параметров

key

Системный идентификатор блока разделяемой памяти. Может быть задан в десятичной или шестнадцатеричной кодировке.

flags

Доступные для использования флаги:

  • "a" для доступа (устанавливает флаг SHM_RDONLY) Следует применять этот флаг, когда необходимо использовать ранее зарезервированный участок разделяемой памяти, уже содержащий какие-либо данные. В этом случае доступ возможен только для операций чтения.
  • "c" для резервирования (устанавливает флаг IPC_CREATE) Следует применять этот флаг для создания нового зарезервированного участка разделяемой памяти. Если участок памяти с таким идентификатором уже существует, выполняется попытка доступа к нему для последующих операций чтения и записи.
  • "w" для выполнения операций чтения и записи Следует применять этот флаг для чтения и записи данных, хранимых в разделяемой памяти. Данный флаг используется в большинстве случаев.
  • "n" для создания в памяти нового сегмента (устанавливает флаг IPC_CREATE|IPC_EXCL) Следует применять этот флаг для создания нового сегмента в разделяемой памяти, но если сегмент уже существует с тем же флагом, происходит отказ. Это полезно в целях безопасности, т.к. позволяет избежать ошибок синхронизации (Race condition exploits).

mode

Права доступа к участку памяти такие же, как к обычному файлу. Их можно указывать в восьмеричном виде, например 0644.

size

Размер резервируемого блока в разделяемой памяти в байтах

Замечание:

Обратите внимание: третий и четвертый параметры должны быть указаны как 0, если необходимо получить доступ к существующему участку памяти.

Возвращаемые значения

При успешном выполнении shmop_open() возвращается роесурс, который может быть в дальнейшем использован для доступа к зарезервированному участку памяти.

Список изменений

Версия | Описание
7.0.0 | Тип shmid был изменен с int на resource.

Примеры

Пример #1 Резервирование участка разделяемой памяти

<?php
$shm_key = ftok(__FILE__, 't');
$shm_id = shmop_open($shm_key, "c", 0644, 100);
?>

В приведенном примере выполняется доступ к блоку с идентификатором, возвращаемым функцией ftok().

Смотрите также

  • shmop_close() - Закрытие блока разделяемой памяти
  • shmop_delete() - Удаление блока разделяемой памяти


Чтение данных из участка разделяемой памяти

  • « shmop_open
  • shmop_size »
  • PHP Manual
  • Разделяемая (shared) память
  • Чтение данных из участка разделяемой памяти

shmop_read

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_read — Чтение данных из участка разделяемой памяти

Описание

shmop_read ( resource $shmid , int $start , int $count ) : string

shmop_read() возвращает строковые данные, хранимые в участке разделяемой памяти.

Список параметров

shmid

Ресурс блока памяти, возвращаемый функцией shmop_open()

start

Определяет, с какой позиции начинать чтение данных.

count

Количество байт для чтения. 0 читает shmop_size($shmid) - $start байт.

Возвращаемые значения

Возвращает строковые данные или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | Тип shmid был изменен с int на resource.

Примеры

Пример #1 Чтение данных из участка разделяемой памяти

<?php
$shm_data = shmop_read($shm_id, 0, 50);
?>

В приведенном примере выполняется чтение 50 байт из участка разделяемой памяти (идентифицируемого по $shm_id) и размещение в $shm_data.

Смотрите также

  • shmop_write() - Запись данных в разделяемую память


Возвращает размер блока в разделяемой памяти

  • « shmop_read
  • shmop_write »
  • PHP Manual
  • Разделяемая (shared) память
  • Возвращает размер блока в разделяемой памяти

shmop_size

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_size — Возвращает размер блока в разделяемой памяти

Описание

shmop_size ( resource $shmid ) : int

shmop_size() используется для получения размера блока разделяемой памяти в байтах.

Список параметров

shmid

Ресурс блока памяти, возвращаемый функцией shmop_open()

Возвращаемые значения

Результатом является целое число, отражающее количество байт, зарезервированных в разделяемой памяти для конкретного блока.

Список изменений

Версия | Описание
7.0.0 | Тип shmid был изменен с int на resource.

Примеры

Пример #1 Получение размера блока разделяемой памяти

<?php
$shm_size = shmop_size($shm_id);
?>

В приведенном примере показано получение размера блока с идентификатором $shm_id и его сохранение в $shm_size.


Запись данных в разделяемую память

  • « shmop_size
  • Sync »
  • PHP Manual
  • Разделяемая (shared) память
  • Запись данных в разделяемую память

shmop_write

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_write — Запись данных в разделяемую память

Описание

shmop_write ( resource $shmid , string $data , int $offset ) : int

shmop_write() записывает строковые данные в участок разделяемой памяти.

Список параметров

shmid

Ресурс блока памяти, возвращаемый функцией shmop_open()

data

Строковые данные для размещения в памяти

offset

Определяет, в каком месте участка памяти следует начать запись данных.

Возвращаемые значения

Размер записанных данных, переданных через параметр data, или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | Тип shmid был изменен с int на resource.

Примеры

Пример #1 Запись данных в участок разделяемой памяти

<?php
$shm_bytes_written = shmop_write($shm_id, $my_string, 0);
?>

В данном примере в память помещается содержимое строковой переменной $my_string, после чего переменная $shm_bytes_written будет содержать размер фактически записанных данных.

Смотрите также

  • shmop_read() - Чтение данных из участка разделяемой памяти


Sync

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • SyncMutex — The SyncMutex class
    • SyncMutex::__construct — Constructs a new SyncMutex object
    • SyncMutex::lock — Waits for an exclusive lock
    • SyncMutex::unlock — Unlocks the mutex
  • SyncSemaphore — The SyncSemaphore class
    • SyncSemaphore::__construct — Constructs a new SyncSemaphore object
    • SyncSemaphore::lock — Decreases the count of the semaphore or waits
    • SyncSemaphore::unlock — Increases the count of the semaphore
  • SyncEvent — The SyncEvent class
    • SyncEvent::__construct — Constructs a new SyncEvent object
    • SyncEvent::fire — Fires/sets the event
    • SyncEvent::reset — Resets a manual event
    • SyncEvent::wait — Waits for the event to be fired/set
  • SyncReaderWriter — The SyncReaderWriter class
    • SyncReaderWriter::__construct — Constructs a new SyncReaderWriter object
    • SyncReaderWriter::readlock — Waits for a read lock
    • SyncReaderWriter::readunlock — Releases a read lock
    • SyncReaderWriter::writelock — Waits for an exclusive write lock
    • SyncReaderWriter::writeunlock — Releases a write lock
  • SyncSharedMemory — The SyncSharedMemory class
    • SyncSharedMemory::__construct — Constructs a new SyncSharedMemory object
    • SyncSharedMemory::first — Check to see if the object is the first instance system-wide of named shared memory
    • SyncSharedMemory::read — Copy data from named shared memory
    • SyncSharedMemory::size — Returns the size of the named shared memory
    • SyncSharedMemory::write — Copy data to named shared memory


Введение

The 'sync' extension introduces cross-platform synchonization objects into PHP. Named and unnamed Mutex, Semaphore, Event, Reader-Writer, and named Shared Memory objects provide OS-level synchronization on both POSIX (e.g. Linux) and Windows platforms.

Automatic cleanup of acquired synchronization objects takes place during extension teardown. This means that if PHP prematurely terminates a script (e.g. script execution time is exceeded), objects will not be left in an unknown state. The only exception to this is if PHP itself crashes (e.g. an internal buffer overflow).

Unnamed synchronization objects don't have a lot of use outside of a multithreaded scenario. Unnamed objects are more useful in conjunction with the pthreads PECL extension.

Замечание:

Named objects require additional care to be used on all systems. If an object is instantiated with a specific set of parameters, it must always be instantiated with those parameters or the object will probably end up in an inconsistent state until the next reboot or a system administrator cleans up the mess.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

A system with support for POSIX shared memory (shm_open()) or running Windows.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/sync.


  • « Типы ресурсов
  • SyncMutex »
  • PHP Manual
  • Sync
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


The SyncMutex class

(PECL sync >= 1.0.0)

Введение

A cross-platform, native implementation of named and unnamed countable mutex objects.

A mutex is a mutual exclusion object that restricts access to a shared resource (e.g. a file) to a single instance. Countable mutexes acquire the mutex a single time and internally track the number of times the mutex is locked. The mutex is unlocked as soon as it goes out of scope or is unlocked the same number of times that it was locked.

Обзор классов

SyncMutex {
/* Методы */
public __construct ([ string $name ] )
public lock ([ int $wait = -1 ] ) : bool
public unlock ([ bool $all = FALSE ] ) : bool
}

Содержание

  • SyncMutex::__construct — Constructs a new SyncMutex object
  • SyncMutex::lock — Waits for an exclusive lock
  • SyncMutex::unlock — Unlocks the mutex


Constructs a new SyncMutex object

  • « SyncMutex
  • SyncMutex::lock »
  • PHP Manual
  • SyncMutex
  • Constructs a new SyncMutex object

SyncMutex::__construct

(PECL sync >= 1.0.0)

SyncMutex::__construct — Constructs a new SyncMutex object

Описание

public SyncMutex::__construct ([ string $name ] )

Constructs a named or unnamed countable mutex.

Список параметров

name

The name of the mutex if this is a named mutex object.

Замечание:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

Возвращаемые значения

The new SyncMutex object. An exception is thrown if the mutex cannot be created or opened.

Примеры

Пример #1 SyncMutex::__construct() named mutex with lock timeout example

<?php
$mutex = new SyncMutex("UniqueName");

if (!$mutex->lock(3000))
{
    echo "Unable to lock mutex.";

    exit();
}

/* ... */

$mutex->unlock();
?>

Пример #2 SyncMutex::__construct() unnamed mutex example

<?php
$mutex = new SyncMutex();

$mutex->lock();

/* ... */

$mutex->unlock();
?>

Смотрите также

  • SyncMutex::lock() - Waits for an exclusive lock
  • SyncMutex::unlock() - Unlocks the mutex


Waits for an exclusive lock

  • « SyncMutex::__construct
  • SyncMutex::unlock »
  • PHP Manual
  • SyncMutex
  • Waits for an exclusive lock

SyncMutex::lock

(PECL sync >= 1.0.0)

SyncMutex::lock — Waits for an exclusive lock

Описание

public SyncMutex::lock ([ int $wait = -1 ] ) : bool

Obtains an exclusive lock on a SyncMutex object. If the lock is already acquired, then this increments an internal counter.

Список параметров

wait

The number of milliseconds to wait for the exclusive lock. A value of -1 is infinite.

Возвращаемые значения

A boolean of TRUE if the lock was obtained, FALSE otherwise.

Примеры

Пример #1 SyncMutex::lock() example

<?php
$mutex = new SyncMutex("UniqueName");

if (!$mutex->lock(3000))
{
    echo "Unable to lock mutex.";

    exit();
}

/* ... */

$mutex->unlock();
?>

Смотрите также

  • SyncMutex::unlock() - Unlocks the mutex


Unlocks the mutex

  • « SyncMutex::lock
  • SyncSemaphore »
  • PHP Manual
  • SyncMutex
  • Unlocks the mutex

SyncMutex::unlock

(PECL sync >= 1.0.0)

SyncMutex::unlock — Unlocks the mutex

Описание

public SyncMutex::unlock ([ bool $all = FALSE ] ) : bool

Decreases the internal counter of a SyncMutex object. When the internal counter reaches zero, the actual lock on the object is released.

Список параметров

all

Specifies whether or not to set the internal counter to zero and therefore release the lock.

Возвращаемые значения

A boolean of TRUE if the unlock operation was successful, FALSE otherwise.

Примеры

Пример #1 SyncMutex::unlock() example

<?php
$mutex = new SyncMutex("UniqueName");

$mutex->lock();

/* ... */

$mutex->unlock();
?>

Смотрите также

  • SyncMutex::lock() - Waits for an exclusive lock


The SyncSemaphore class

(PECL sync >= 1.0.0)

Введение

A cross-platform, native implementation of named and unnamed semaphore objects.

A semaphore restricts access to a limited resource to a limited number of instances. Semaphores differ from mutexes in that they can allow more than one instance to access a resource at one time while a mutex only allows one instance at a time.

Обзор классов

SyncSemaphore {
/* Методы */
public __construct ([ string $name [, int $initialval = 1 [, bool $autounlock = TRUE ]]] )
public lock ([ int $wait = -1 ] ) : bool
public unlock ([ int &$prevcount ] ) : bool
}

Содержание

  • SyncSemaphore::__construct — Constructs a new SyncSemaphore object
  • SyncSemaphore::lock — Decreases the count of the semaphore or waits
  • SyncSemaphore::unlock — Increases the count of the semaphore


Constructs a new SyncSemaphore object

  • « SyncSemaphore
  • SyncSemaphore::lock »
  • PHP Manual
  • SyncSemaphore
  • Constructs a new SyncSemaphore object

SyncSemaphore::__construct

(PECL sync >= 1.0.0)

SyncSemaphore::__construct — Constructs a new SyncSemaphore object

Описание

public SyncSemaphore::__construct ([ string $name [, int $initialval = 1 [, bool $autounlock = TRUE ]]] )

Constructs a named or unnamed semaphore.

Список параметров

name

The name of the semaphore if this is a named semaphore object.

Замечание:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

initialval

The initial value of the semaphore. This is the number of locks that may be obtained.

autounlock

Specifies whether or not to automatically unlock the semaphore at the conclusion of the PHP script.

Внимание

If an object is: A named semaphore with an autounlock of FALSE, the object is locked, and the PHP script concludes before the object is unlocked, then the underlying semaphore will end up in an inconsistent state.

Возвращаемые значения

The new SyncSemaphore object. An exception is thrown if the semaphore cannot be created or opened.

Примеры

Пример #1 SyncSemaphore::__construct() example

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
    echo "Unable to lock semaphore.";

    exit();
}

/* ... */

$semaphore->unlock();
?>

Смотрите также

  • SyncSemaphore::lock() - Decreases the count of the semaphore or waits
  • SyncSemaphore::unlock() - Increases the count of the semaphore


Decreases the count of the semaphore or waits

  • « SyncSemaphore::__construct
  • SyncSemaphore::unlock »
  • PHP Manual
  • SyncSemaphore
  • Decreases the count of the semaphore or waits

SyncSemaphore::lock

(PECL sync >= 1.0.0)

SyncSemaphore::lock — Decreases the count of the semaphore or waits

Описание

public SyncSemaphore::lock ([ int $wait = -1 ] ) : bool

Decreases the count of a SyncSemaphore object or waits until the semaphore becomes non-zero.

Список параметров

wait

The number of milliseconds to wait for the semaphore. A value of -1 is infinite.

Возвращаемые значения

A boolean of TRUE if the lock operation was successful, FALSE otherwise.

Примеры

Пример #1 SyncSemaphore::lock() example

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
    echo "Unable to lock semaphore.";

    exit();
}

/* ... */

$semaphore->unlock();
?>

Смотрите также

  • SyncSemaphore::unlock() - Increases the count of the semaphore


Increases the count of the semaphore

  • « SyncSemaphore::lock
  • SyncEvent »
  • PHP Manual
  • SyncSemaphore
  • Increases the count of the semaphore

SyncSemaphore::unlock

(PECL sync >= 1.0.0)

SyncSemaphore::unlock — Increases the count of the semaphore

Описание

public SyncSemaphore::unlock ([ int &$prevcount ] ) : bool

Increases the count of a SyncSemaphore object.

Список параметров

prevcount

Returns the previous count of the semaphore.

Возвращаемые значения

A boolean of TRUE if the unlock operation was successful, FALSE otherwise.

Примеры

Пример #1 SyncSemaphore::unlock() example

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
    echo "Unable to lock semaphore.";

    exit();
}

/* ... */

$semaphore->unlock();
?>

Смотрите также

  • SyncSemaphore::lock() - Decreases the count of the semaphore or waits


The SyncEvent class

(PECL sync >= 1.0.0)

Введение

A cross-platform, native implementation of named and unnamed event objects. Both automatic and manual event objects are supported.

An event object waits, without polling, for the object to be fired/set. One instance waits on the event object while another instance fires/sets the event. Event objects are useful wherever a long-running process would otherwise poll a resource (e.g. checking to see if uploaded data needs to be processed).

Обзор классов

SyncEvent {
/* Методы */
public __construct ([ string $name [, bool $manual = FALSE [, bool $prefire = FALSE ]]] )
public fire ( void ) : bool
public reset ( void ) : bool
public wait ([ int $wait = -1 ] ) : bool
}

Содержание

  • SyncEvent::__construct — Constructs a new SyncEvent object
  • SyncEvent::fire — Fires/sets the event
  • SyncEvent::reset — Resets a manual event
  • SyncEvent::wait — Waits for the event to be fired/set


Constructs a new SyncEvent object

  • « SyncEvent
  • SyncEvent::fire »
  • PHP Manual
  • SyncEvent
  • Constructs a new SyncEvent object

SyncEvent::__construct

(PECL sync >= 1.0.0)

SyncEvent::__construct — Constructs a new SyncEvent object

Описание

public SyncEvent::__construct ([ string $name [, bool $manual = FALSE [, bool $prefire = FALSE ]]] )

Constructs a named or unnamed event object.

Список параметров

name

The name of the event if this is a named event object.

Замечание:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

manual

Specifies whether or not the event object must be reset manually.

Замечание:

Manual reset event objects allow all waiting processes through until the object is reset.

prefire

Specifies whether or not to prefire (signal) the event object.

Замечание:

Only has impact if the calling process/thread is the first to create the object.

Возвращаемые значения

The new SyncEvent object. An exception is thrown if the event object cannot be created or opened.

Примеры

Пример #1 SyncEvent::__construct() example

<?php
// In a web application:
$event = new SyncEvent("GetAppReport");
$event->fire();

// In a cron job:
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Список изменений

Версия | Описание
1.1.0 | Added prefire.

Смотрите также

  • SyncEvent::fire() - Fires/sets the event
  • SyncEvent::reset() - Resets a manual event
  • SyncEvent::wait() - Waits for the event to be fired/set


Fires/sets the event

  • « SyncEvent::__construct
  • SyncEvent::reset »
  • PHP Manual
  • SyncEvent
  • Fires/sets the event

SyncEvent::fire

(PECL sync >= 1.0.0)

SyncEvent::fire — Fires/sets the event

Описание

public SyncEvent::fire ( void ) : bool

Fires/sets a SyncEvent object. Lets multiple threads through that are waiting if the event object was created with a manual value of TRUE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean of TRUE if the event was fired, FALSE otherwise.

Примеры

Пример #1 SyncEvent::fire() example

<?php
// In a web application:
$event = new SyncEvent("GetAppReport");
$event->fire();

// In a cron job:
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Смотрите также

  • SyncEvent::reset() - Resets a manual event
  • SyncEvent::wait() - Waits for the event to be fired/set


Resets a manual event

  • « SyncEvent::fire
  • SyncEvent::wait »
  • PHP Manual
  • SyncEvent
  • Resets a manual event

SyncEvent::reset

(PECL sync >= 1.0.0)

SyncEvent::reset — Resets a manual event

Описание

public SyncEvent::reset ( void ) : bool

Resets a SyncEvent object that has been fired/set. Only valid for manual event objects.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean value of TRUE if the object was successfully reset, FALSE otherwise.

Примеры

Пример #1 SyncEvent::reset() example

<?php
// In a web application:
$event = new SyncEvent("DemoApplication", true);
$event->wait();

// In a cron job:
$event = new SyncEvent("DemoApplication", true);
$event->reset();
/* ... Do some maintenance task(s) ... */
$event->fire();
?>

Смотрите также

  • SyncEvent::fire() - Fires/sets the event
  • SyncEvent::reset()
  • SyncEvent::wait() - Waits for the event to be fired/set


Waits for the event to be fired/set

  • « SyncEvent::reset
  • SyncReaderWriter »
  • PHP Manual
  • SyncEvent
  • Waits for the event to be fired/set

SyncEvent::wait

(PECL sync >= 1.0.0)

SyncEvent::wait — Waits for the event to be fired/set

Описание

public SyncEvent::wait ([ int $wait = -1 ] ) : bool

Waits for the SyncEvent object to be fired.

Список параметров

wait

The number of milliseconds to wait for the event to be fired. A value of -1 is infinite.

Возвращаемые значения

A boolean of TRUE if the event was fired, FALSE otherwise.

Примеры

Пример #1 SyncEvent::wait() example

<?php
// In a web application:
$event = new SyncEvent("GetAppReport");
$event->fire();

// In a cron job:
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Смотрите также

  • SyncEvent::fire() - Fires/sets the event


The SyncReaderWriter class

(PECL sync >= 1.0.0)

Введение

A cross-platform, native implementation of named and unnamed reader-writer objects.

A reader-writer object allows many readers or one writer to access a resource. This is an efficient solution for managing resources where access will primarily be read-only but exclusive write access is occasionally necessary.

Обзор классов

SyncReaderWriter {
/* Методы */
public __construct ([ string $name [, bool $autounlock = TRUE ]] )
public readlock ([ int $wait = -1 ] ) : bool
public readunlock ( void ) : bool
public writelock ([ int $wait = -1 ] ) : bool
public writeunlock ( void ) : bool
}

Содержание

  • SyncReaderWriter::__construct — Constructs a new SyncReaderWriter object
  • SyncReaderWriter::readlock — Waits for a read lock
  • SyncReaderWriter::readunlock — Releases a read lock
  • SyncReaderWriter::writelock — Waits for an exclusive write lock
  • SyncReaderWriter::writeunlock — Releases a write lock


Constructs a new SyncReaderWriter object

  • « SyncReaderWriter
  • SyncReaderWriter::readlock »
  • PHP Manual
  • SyncReaderWriter
  • Constructs a new SyncReaderWriter object

SyncReaderWriter::__construct

(PECL sync >= 1.0.0)

SyncReaderWriter::__construct — Constructs a new SyncReaderWriter object

Описание

public SyncReaderWriter::__construct ([ string $name [, bool $autounlock = TRUE ]] )

Constructs a named or unnamed reader-writer object.

Список параметров

name

The name of the reader-writer if this is a named reader-writer object.

Замечание:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

autounlock

Specifies whether or not to automatically unlock the reader-writer at the conclusion of the PHP script.

Внимание

If an object is: A named reader-writer with an autounlock of FALSE, the object is locked for either reading or writing, and the PHP script concludes before the object is unlocked, then the underlying objects will end up in an inconsistent state.

Возвращаемые значения

The new SyncReaderWriter object. An exception is thrown if the reader-writer cannot be created or opened.

Примеры

Пример #1 SyncReaderWriter::__construct() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();

$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Смотрите также

  • SyncReaderWriter::readlock() - Waits for a read lock
  • SyncReaderWriter::readunlock() - Releases a read lock
  • SyncReaderWriter::writelock() - Waits for an exclusive write lock
  • SyncReaderWriter::writeunlock() - Releases a write lock


Waits for a read lock

  • « SyncReaderWriter::__construct
  • SyncReaderWriter::readunlock »
  • PHP Manual
  • SyncReaderWriter
  • Waits for a read lock

SyncReaderWriter::readlock

(PECL sync >= 1.0.0)

SyncReaderWriter::readlock — Waits for a read lock

Описание

public SyncReaderWriter::readlock ([ int $wait = -1 ] ) : bool

Obtains a read lock on a SyncReaderWriter object.

Список параметров

wait

The number of milliseconds to wait for a lock. A value of -1 is infinite.

Возвращаемые значения

A boolean of TRUE if the lock was obtained, FALSE otherwise.

Примеры

Пример #1 SyncReaderWriter::readlock() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();
?>

Смотрите также

  • SyncReaderWriter::readunlock() - Releases a read lock


Releases a read lock

  • « SyncReaderWriter::readlock
  • SyncReaderWriter::writelock »
  • PHP Manual
  • SyncReaderWriter
  • Releases a read lock

SyncReaderWriter::readunlock

(PECL sync >= 1.0.0)

SyncReaderWriter::readunlock — Releases a read lock

Описание

public SyncReaderWriter::readunlock ( void ) : bool

Releases a read lock on a SyncReaderWriter object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean of TRUE if the unlock operation was successful, FALSE otherwise.

Примеры

Пример #1 SyncReaderWriter::readunlock() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();
?>

Смотрите также

  • SyncReaderWriter::readlock() - Waits for a read lock


Waits for an exclusive write lock

  • « SyncReaderWriter::readunlock
  • SyncReaderWriter::writeunlock »
  • PHP Manual
  • SyncReaderWriter
  • Waits for an exclusive write lock

SyncReaderWriter::writelock

(PECL sync >= 1.0.0)

SyncReaderWriter::writelock — Waits for an exclusive write lock

Описание

public SyncReaderWriter::writelock ([ int $wait = -1 ] ) : bool

Obtains an exclusive write lock on a SyncReaderWriter object.

Список параметров

wait

The number of milliseconds to wait for a lock. A value of -1 is infinite.

Возвращаемые значения

A boolean of TRUE if the lock was obtained, FALSE otherwise.

Примеры

Пример #1 SyncReaderWriter::writelock() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Смотрите также

  • SyncReaderWriter::writeunlock() - Releases a write lock


Releases a write lock

  • « SyncReaderWriter::writelock
  • SyncSharedMemory »
  • PHP Manual
  • SyncReaderWriter
  • Releases a write lock

SyncReaderWriter::writeunlock

(PECL sync >= 1.0.0)

SyncReaderWriter::writeunlock — Releases a write lock

Описание

public SyncReaderWriter::writeunlock ( void ) : bool

Releases a write lock on a SyncReaderWriter object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean of TRUE if the unlock operation was successful, FALSE otherwise.

Примеры

Пример #1 SyncReaderWriter::writeunlock() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Смотрите также

  • SyncReaderWriter::writelock() - Waits for an exclusive write lock


The SyncSharedMemory class

(PECL sync >= 1.1.0)

Введение

A cross-platform, native, consistent implementation of named shared memory objects.

Shared memory lets two separate processes communicate without the need for complex pipes or sockets. There are several integer-based shared memory implementations for PHP. Named shared memory is an alternative.

Synchronization objects (e.g. SyncMutex) are still required to protect most uses of shared memory.

Обзор классов

SyncSharedMemory {
/* Методы */
public __construct ( string $name , int $size )
public first ( void ) : bool
public read ([ int $start = 0 [, int $length ]] )
public size ( void ) : bool
public write ([ string $string [, int $start = 0 ]] )
}

Содержание

  • SyncSharedMemory::__construct — Constructs a new SyncSharedMemory object
  • SyncSharedMemory::first — Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::read — Copy data from named shared memory
  • SyncSharedMemory::size — Returns the size of the named shared memory
  • SyncSharedMemory::write — Copy data to named shared memory


Constructs a new SyncSharedMemory object

  • « SyncSharedMemory
  • SyncSharedMemory::first »
  • PHP Manual
  • SyncSharedMemory
  • Constructs a new SyncSharedMemory object

SyncSharedMemory::__construct

(PECL sync >= 1.1.0)

SyncSharedMemory::__construct — Constructs a new SyncSharedMemory object

Описание

public SyncSharedMemory::__construct ( string $name , int $size )

Constructs a named shared memory object.

Список параметров

name

The name of the shared memory object.

Замечание:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

size

The size, in bytes, of shared memory to reserve.

Замечание:

The amount of memory cannot be resized later. Request sufficient storage up front.

Возвращаемые значения

The new SyncSharedMemory object. An exception is thrown if the shared memory object cannot be created or opened.

Примеры

Пример #1 SyncSharedMemory::__construct() example

<?php
// You will probably need to protect shared memory with other synchronization objects.
// Shared memory goes away when the last reference to it disappears.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
    // Do first time initialization work here.
}

$result = $mem->write(json_encode(array("name" => "my_report.txt")));
?>

Смотрите также

  • SyncSharedMemory::first() - Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::size() - Returns the size of the named shared memory
  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read() - Copy data from named shared memory


Check to see if the object is the first instance system-wide of named shared memory

  • « SyncSharedMemory::__construct
  • SyncSharedMemory::read »
  • PHP Manual
  • SyncSharedMemory
  • Check to see if the object is the first instance system-wide of named shared memory

SyncSharedMemory::first

(PECL sync >= 1.1.0)

SyncSharedMemory::first — Check to see if the object is the first instance system-wide of named shared memory

Описание

public SyncSharedMemory::first ( void ) : bool

Retrieves the system-wide first instance status of a SyncSharedMemory object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean of TRUE if the object is the first instance system-wide, FALSE otherwise.

Примеры

Пример #1 SyncSharedMemory::first() example

<?php
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
    // Do first time initialization work here.
}

var_dump($mem->first());

$mem2 = new SyncSharedMemory("AppReportName", 1024);

var_dump($mem2->first());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)

Смотрите также

  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read() - Copy data from named shared memory


Copy data from named shared memory

  • « SyncSharedMemory::first
  • SyncSharedMemory::size »
  • PHP Manual
  • SyncSharedMemory
  • Copy data from named shared memory

SyncSharedMemory::read

(PECL sync >= 1.1.0)

SyncSharedMemory::read — Copy data from named shared memory

Описание

public SyncSharedMemory::read ([ int $start = 0 [, int $length ]] )

Copies data from named shared memory.

Список параметров

start

The start/offset, in bytes, to begin reading.

Замечание:

If the value is negative, the starting position will begin at the specified number of bytes from the end of the shared memory segment.

length

The number of bytes to read.

Замечание:

If unspecified, reading will stop at the end of the shared memory segment.

If the value is negative, reading will stop the specified number of bytes from the end of the shared memory segment.

Возвращаемые значения

A string containing the data read from shared memory.

Примеры

Пример #1 SyncSharedMemory::__construct() example

<?php
// You will probably need to protect shared memory with other synchronization objects.
// Shared memory goes away when the last reference to it disappears.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
    // Do first time initialization work here.
}

$result = $mem->write("report.txt");

$result = $mem->read(3, -4);
var_dump($result);
?>

Результатом выполнения данного примера будет что-то подобное:

string(3) "ort"

Смотрите также

  • SyncSharedMemory::__construct() - Constructs a new SyncSharedMemory object
  • SyncSharedMemory::first() - Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read()


Returns the size of the named shared memory

  • « SyncSharedMemory::read
  • SyncSharedMemory::write »
  • PHP Manual
  • SyncSharedMemory
  • Returns the size of the named shared memory

SyncSharedMemory::size

(PECL sync >= 1.1.0)

SyncSharedMemory::size — Returns the size of the named shared memory

Описание

public SyncSharedMemory::size ( void ) : bool

Retrieves the shared memory size of a SyncSharedMemory object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An integer containing the size of the shared memory. This will be the same size that was passed to the constructor.

Примеры

Пример #1 SyncSharedMemory::size() example

<?php
$mem = new SyncSharedMemory("AppReportName", 1024);
var_dump($mem->size());
?>

Результатом выполнения данного примера будет что-то подобное:

int(1024)

Смотрите также

  • SyncSharedMemory::__construct() - Constructs a new SyncSharedMemory object
  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read() - Copy data from named shared memory


Copy data to named shared memory

  • « SyncSharedMemory::size
  • Другие базовые расширения »
  • PHP Manual
  • SyncSharedMemory
  • Copy data to named shared memory

SyncSharedMemory::write

(PECL sync >= 1.1.0)

SyncSharedMemory::write — Copy data to named shared memory

Описание

public SyncSharedMemory::write ([ string $string [, int $start = 0 ]] )

Copies data to named shared memory.

Список параметров

string

The data to write to shared memoy.

Замечание:

If the size of the data exceeds the size of the shared memory, the number of bytes written returned will be less than the length of the input.

start

The start/offset, in bytes, to begin writing.

Замечание:

If the value is negative, the starting position will begin at the specified number of bytes from the end of the shared memory segment.

Возвращаемые значения

An integer containing the number of bytes written to shared memory.

Примеры

Пример #1 SyncSharedMemory::write() example

<?php
// You will probably need to protect shared memory with other synchronization objects.
// Shared memory goes away when the last reference to it disappears.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
    // Do first time initialization work here.
}

$result = $mem->write("report.txt");
var_dump($result);

$result = $mem->write("report.txt", -3);
var_dump($result);
?>

Результатом выполнения данного примера будет что-то подобное:

int(10)
int(3)

Смотрите также

  • SyncSharedMemory::__construct() - Constructs a new SyncSharedMemory object
  • SyncSharedMemory::first() - Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::write()
  • SyncSharedMemory::read() - Copy data from named shared memory


Другие базовые расширения

  • GeoIP — Geo IP Location
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции GeoIP
  • FANN — Быстрая искусственная нейронная сеть (Fast Artificial Neural Network или FANN)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции Fann
    • FANNConnection — Класс FANNConnection
  • JSON — JavaScript Object Notation
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • JsonException — Класс JsonException
    • JsonSerializable — Интерфейс JsonSerializable
    • Функции JSON
  • Judy — Массивы Judy
    • Введение
    • Установка и настройка
    • Judy — Класс Judy
    • Функции Judy
  • Lua
    • Введение
    • Установка и настройка
    • Lua — Класс Lua
    • LuaClosure — Класс LuaClosure
  • LuaSandbox
    • Введение
    • Установка и настройка
    • Differences from Standard Lua
    • Примеры
    • LuaSandbox — The LuaSandbox class
    • LuaSandboxFunction — The LuaSandboxFunction class
    • LuaSandboxError — The LuaSandboxError class
    • LuaSandboxErrorError — The LuaSandboxErrorError class
    • LuaSandboxFatalError — The LuaSandboxFatalError class
    • LuaSandboxMemoryError — The LuaSandboxMemoryError class
    • LuaSandboxRuntimeError — The LuaSandboxRuntimeError class
    • LuaSandboxSyntaxError — The LuaSandboxSyntaxError class
    • LuaSandboxTimeoutError — The LuaSandboxTimeoutError class
  • Misc. — Разные функции
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Разные функции
    • Список изменений
  • Parsekit
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Parsekit
  • Seaslog
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Seaslog Функции
    • SeasLog — The SeasLog class
  • SPL — Стандартная библиотека PHP (SPL)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Структуры данных
    • Итераторы
    • Интерфейсы
    • Исключения
    • Функции SPL
    • Обработка файлов
    • Различные классы и интерфейсы
  • Типы SPL — Обработка типов SPL Type
    • Введение
    • Установка и настройка
    • SplType — Класс SplType
    • SplInt — Класс SplInt
    • SplFloat — Класс SplFloat
    • SplEnum — Класс SplEnum
    • SplBool — Класс SplBool
    • SplString — Класс SplString
  • Потоки
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Потоковые фильтры
    • Контексты потоков
    • Ошибки потока
    • Примеры
    • php_user_filter — Класс php_user_filter
    • streamWrapper — Класс streamWrapper
    • Функции для работы с потоками
  • Swoole
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Swoole
    • Swoole\Async — Класс Swoole\Async
    • Swoole\Atomic — Класс Swoole\Atomic
    • Swoole\Buffer — Класс Swoole\Buffer
    • Swoole\Channel — Класс Swoole\Channel
    • Swoole\Client — Класс Swoole\Client
    • Swoole\Connection\Iterator — Класс Swoole\Connection\Iterator
    • Swoole\Coroutine — Класс Swoole\Coroutine
    • Swoole\Event — Класс Swoole\Event
    • Swoole\Exception — Класс Swoole\Exception
    • Swoole\Http\Client — Класс Swoole\Http\Client
    • Swoole\Http\Request — Класс Swoole\Http\Request
    • Swoole\Http\Response — Класс Swoole\Http\Response
    • Swoole\Http\Server — Класс Swoole\Http\Server
    • Swoole\Lock — Класс Swoole\Lock
    • Swoole\Mmap — Класс Swoole\Mmap
    • Swoole\MySQL — Класс Swoole\MySQL
    • Swoole\MySQL\Exception — Класс Swoole\MySQL\Exception
    • Swoole\Process — Класс Swoole\Process
    • Swoole\Redis\Server — Класс Swoole\Redis\Server
    • Swoole\Serialize — Класс Swoole\Serialize
    • Swoole\Server — Класс Swoole\Server
    • Swoole\Table — Класс Swoole\Table
    • Swoole\Timer — Класс Swoole\Timer
    • Swoole\WebSocket\Frame — Класс Swoole\WebSocket\Frame
    • Swoole\WebSocket\Server — Класс Swoole\WebSocket\Server
  • Tidy
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • tidy — Класс tidy
    • tidyNode — Класс tidyNode
    • Tidy
  • Лексер (Tokenizer)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции PHP-лексера (tokenizer)
  • URL
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции URL
  • V8js — Интеграция V8 Javascript Engine
    • Введение
    • Установка и настройка
    • Примеры
    • V8Js — Класс V8Js
    • V8JsException — Класс V8JsException
  • Yaml — Сериализация данных YAML
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Callback-функции
    • Функции Yaml
  • Yaf — Yet Another Framework
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Конфигурация приложения
    • Yaf_Application — Класс Yaf_Application
    • Yaf_Bootstrap_Abstract — Класс Yaf_Bootstrap_Abstract
    • Yaf_Dispatcher — Класс Yaf_Dispatcher
    • Yaf_Config_Abstract — Класс Yaf_Config_Abstract
    • Yaf_Config_Ini — Класс Yaf_Config_Ini
    • Yaf_Config_Simple — Класс Yaf_Config_Simple
    • Yaf_Controller_Abstract — The Yaf_Controller_Abstract class
    • Yaf_Action_Abstract — Класс Yaf_Action_Abstract
    • Yaf_View_Interface — Класс Yaf_View_Interface
    • Yaf_View_Simple — Класс Yaf_View_Simple
    • Yaf_Loader — The Yaf_Loader class
    • Yaf_Plugin_Abstract — Класс Yaf_Plugin_Abstract
    • Yaf_Registry — Класс Yaf_Registry
    • Yaf_Request_Abstract — Класс Yaf_Request_Abstract
    • Yaf_Request_Http — The Yaf_Request_Http class
    • Yaf_Request_Simple — Класс Yaf_Request_Simple
    • Yaf_Response_Abstract — Класс Yaf_Response_Abstract
    • Yaf_Route_Interface — Класс Yaf_Route_Interface
    • Yaf_Route_Map — The Yaf_Route_Map class
    • Yaf_Route_Regex — Класс Yaf_Route_Regex
    • Yaf_Route_Rewrite — Класс Yaf_Route_Rewrite
    • Yaf_Router — The Yaf_Router class
    • Yaf_Route_Simple — Класс Yaf_Route_Simple
    • Yaf_Route_Static — Класс Yaf_Route_Static
    • Yaf_Route_Supervar — Класс Yaf_Route_Supervar
    • Yaf_Session — Класс Yaf_Session
    • Yaf_Exception — Класс Yaf_Exception
    • Yaf_Exception_TypeError — Класс Yaf_Exception_TypeError
    • Yaf_Exception_StartupError — Класс Yaf_Exception_StartupError
    • Yaf_Exception_DispatchFailed — Класс Yaf_Exception_DispatchFailed
    • Yaf_Exception_RouterFailed — Класс Yaf_Exception_RouterFailed
    • Yaf_Exception_LoadFailed — Класс Yaf_Exception_LoadFailed
    • Yaf_Exception_LoadFailed_Module — Класс Yaf_Exception_LoadFailed_Module
    • Yaf_Exception_LoadFailed_Controller — Класс Yaf_Exception_LoadFailed_Controller
    • Yaf_Exception_LoadFailed_Action — Класс Yaf_Exception_LoadFailed_Action
    • Yaf_Exception_LoadFailed_View — Класс Yaf_Exception_LoadFailed_View
  • Yaconf
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Yaconf — Класс Yaconf
  • Taint
    • Введение
    • Установка и настройка
    • Дополнительные подробности
    • Функции Taint
  • Структуры данных
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Коллекция — Интерфейс Collection
    • Хешируемое — Интерфейс Hashable
    • Последовательность — Интерфейс Sequence
    • Вектор — Класс Vector
    • Двухсторонняя очередь — Класс Deque
    • Коллекция пар ключ-значение — Класс Map
    • Пара — Класс Pair
    • Набор — Класс Set
    • Стек — Класс Stack
    • Очередь — Класс Queue
    • Очередь с приоритетом — Класс PriorityQueue


Geo IP Location

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции GeoIP
    • geoip_asnum_by_name — Получить номер автономной системы (ASN)
    • geoip_continent_code_by_name — Получить двухсимвольный код континента
    • geoip_country_code_by_name — Получить двухсимвольный код страны
    • geoip_country_code3_by_name — Получить трехсимвольный код страны
    • geoip_country_name_by_name — Получить полное название страны
    • geoip_database_info — Возвращает информацию о базе GeoIP
    • geoip_db_avail — Проверяет доступность базы GeoIP
    • geoip_db_filename — Возвращает имя файла соответствующей базы GeoIP
    • geoip_db_get_all_info — Возвращает подробную информацию обо всех типах базы GeoIP
    • geoip_domain_by_name — Получить имя домена второго уровня
    • geoip_id_by_name — Возвращает тип интернет-соединения
    • geoip_isp_by_name — Возвращает имя интернет-провайдера (ISP)
    • geoip_netspeedcell_by_name — Получить скорость соединения с сетью Интернет
    • geoip_org_by_name — Возвращает название организации, владеющей IP-адресом
    • geoip_record_by_name — Возвращает подробную информацию об адресе, найденном в базе GeoIP
    • geoip_region_by_name — Возвращает коды страны и региона
    • geoip_region_name_by_code — Возвращает название региона для выбранной страны и кода региона
    • geoip_setup_custom_directory — Установить пользовательскую директорию для базы данных GeoIP
    • geoip_time_zone_by_country_and_region — Возвращает временную зону для кода страны и региона


Введение

Расширение GeoIP позволяет найти местоположение по IP-адресу. С помощью GeoIP можно получить такую информацию как город, государство, страна, долгота и широта, а также можно узнать, интернет-провайдера и тип соединения.

Внимание

Это расширение не поддерживает базу данных "GeoIP2" от MaxMind, а только файлы базы "GeoIP legacy".


Требования

Это расширение требует наличие установленной библиотеки языка C GeoIP версии 1.4.0 или выше. Вы можете получить данную библиотеку по ссылке » http://www.maxmind.com/app/c и скомпилировать самостоятельно.

По умолчанию, у вас есть доступ только к бесплатным базам GeoIP Country или GeoLite City. Если вы хотите чтобы этот модуль работал с прочими базами GeoIP, необходимо купить коммерческую лицензию » Maxmind.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/geoip.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки GeoIP
Имя | По умолчанию | Место изменения | Список изменений
geoip.custom_directory | "" | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

geoip.custom_directory string

По умолчанию пустая, но может быть установлена для принудительного использования другого пути к базе данных, нежели указанного в библиотеке.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

GEOIP_COUNTRY_EDITION (integer)
GEOIP_REGION_EDITION_REV0 (integer)
GEOIP_CITY_EDITION_REV0 (integer)
GEOIP_ORG_EDITION (integer)
GEOIP_ISP_EDITION (integer)
GEOIP_CITY_EDITION_REV1 (integer)
GEOIP_REGION_EDITION_REV1 (integer)
GEOIP_PROXY_EDITION (integer)
GEOIP_ASNUM_EDITION (integer)
GEOIP_NETSPEED_EDITION (integer)
GEOIP_DOMAIN_EDITION (integer)

Следующие константы предназначены для установки скорости сети:

GEOIP_UNKNOWN_SPEED (integer)
GEOIP_DIALUP_SPEED (integer)
GEOIP_CABLEDSL_SPEED (integer)
GEOIP_CORPORATE_SPEED (integer)


Функции GeoIP

Содержание

  • geoip_asnum_by_name — Получить номер автономной системы (ASN)
  • geoip_continent_code_by_name — Получить двухсимвольный код континента
  • geoip_country_code_by_name — Получить двухсимвольный код страны
  • geoip_country_code3_by_name — Получить трехсимвольный код страны
  • geoip_country_name_by_name — Получить полное название страны
  • geoip_database_info — Возвращает информацию о базе GeoIP
  • geoip_db_avail — Проверяет доступность базы GeoIP
  • geoip_db_filename — Возвращает имя файла соответствующей базы GeoIP
  • geoip_db_get_all_info — Возвращает подробную информацию обо всех типах базы GeoIP
  • geoip_domain_by_name — Получить имя домена второго уровня
  • geoip_id_by_name — Возвращает тип интернет-соединения
  • geoip_isp_by_name — Возвращает имя интернет-провайдера (ISP)
  • geoip_netspeedcell_by_name — Получить скорость соединения с сетью Интернет
  • geoip_org_by_name — Возвращает название организации, владеющей IP-адресом
  • geoip_record_by_name — Возвращает подробную информацию об адресе, найденном в базе GeoIP
  • geoip_region_by_name — Возвращает коды страны и региона
  • geoip_region_name_by_code — Возвращает название региона для выбранной страны и кода региона
  • geoip_setup_custom_directory — Установить пользовательскую директорию для базы данных GeoIP
  • geoip_time_zone_by_country_and_region — Возвращает временную зону для кода страны и региона


Получить номер автономной системы (ASN)

  • « Функции GeoIP
  • geoip_continent_code_by_name »
  • PHP Manual
  • Функции GeoIP
  • Получить номер автономной системы (ASN)

geoip_asnum_by_name

(PECL geoip >= 1.1.0)

geoip_asnum_by_name — Получить номер автономной системы (ASN)

Описание

geoip_asnum_by_name ( string $hostname ) : string

Функция geoip_asnum_by_name() возвращает номера автономной системы, связанные с IP-адресом.

Список параметров

hostname

Имя хоста или IP-адрес.

Возвращаемые значения

В случае успеха возвращает ASN. Если адрес не найден в базе, то возвращается FALSE.

Примеры

Пример #1 Пример использования geoip_asnum_by_name()

Получение ASN для хоста www.example.com.

<?php
$asn = geoip_asnum_by_name('www.example.com');

if ($asn) {
    echo 'ASN равен: '. $asn;
}
?>

Результат выполнения данного примера:

ASN равен: AS15133 EdgeCast Networks, Inc


Получить двухсимвольный код континента

  • « geoip_asnum_by_name
  • geoip_country_code_by_name »
  • PHP Manual
  • Функции GeoIP
  • Получить двухсимвольный код континента

geoip_continent_code_by_name

(PECL geoip >= 1.0.3)

geoip_continent_code_by_name — Получить двухсимвольный код континента

Описание

geoip_continent_code_by_name ( string $hostname ) : string

Функция geoip_continent_code_by_name() возвращает двухсимвольный код континента, соответствующий имени хоста или IP-адресу.

Список параметров

hostname

Имя хоста или IP-адрес, по которому будет вестись поиск.

Возвращаемые значения

Возвращает два символа, содержащих код континента, при нахождении адреса в базе данных, в противном случае FALSE.

Константы кодов
Код | Имя континента
AF | Африка
AN | Антарктика
AS | Азия
EU | Европа
NA | Северная Америка
OC | Океания
SA | Южная Америка

Примеры

Пример #1 Пример использования geoip_continent_code_by_name()

Данный пример выведет расположение хоста example.com.

<?php
$continent = geoip_continent_code_by_name('www.example.com');
if ($continent) {
    echo 'Данный хост расположен в ' . $continent;
}
?>

Результат выполнения данного примера:

Данный хост расположен в NA

Смотрите также

  • geoip_country_code_by_name() - Получить двухсимвольный код страны


Получить двухсимвольный код страны

  • « geoip_continent_code_by_name
  • geoip_country_code3_by_name »
  • PHP Manual
  • Функции GeoIP
  • Получить двухсимвольный код страны

geoip_country_code_by_name

(PECL geoip >= 0.2.0)

geoip_country_code_by_name — Получить двухсимвольный код страны

Описание

geoip_country_code_by_name ( string $hostname ) : string

Функция geoip_country_code_by_name() возвращает двухсимвольный код страны, соответствующий имени хоста или IP-адресу.

Список параметров

hostname

Имя хоста или IP-адрес, по которому будет вестись поиск.

Возвращаемые значения

Возвращает два символа, содержащих код страны по ISO 3166-1, при нахождении адреса в базе данных, в противном случае FALSE.

Примеры

Пример #1 Пример использования geoip_country_code_by_name()

Данный пример выведет расположение хоста example.com.

<?php
$country = geoip_country_code_by_name('www.example.com');
if ($country) {
    echo 'Хост расположен в ' . $country;
}
?>

Результат выполнения данного примера:

Хост расположен в US

Примечания

Предостережение

Пожалуйста, ознакомьтесь с полным списком допустимых возвращаемых значений, в том числе и специальных кодов, здесь » http://www.maxmind.com/en/iso3166.

Смотрите также

  • geoip_country_code3_by_name() - Получить трехсимвольный код страны
  • geoip_country_name_by_name() - Получить полное название страны


Получить трехсимвольный код страны

  • « geoip_country_code_by_name
  • geoip_country_name_by_name »
  • PHP Manual
  • Функции GeoIP
  • Получить трехсимвольный код страны

geoip_country_code3_by_name

(PECL geoip >= 0.2.0)

geoip_country_code3_by_name — Получить трехсимвольный код страны

Описание

geoip_country_code3_by_name ( string $hostname ) : string

Функция geoip_country_code3_by_name() возвращает трехсимвольный код страны, соответствующий имени хоста или IP-адресу.

Список параметров

hostname

Имя хоста или IP-адрес, по которому будет вестись поиск.

Возвращаемые значения

Возвращает три символа, содержащих код континента по ISO 3166-1, при нахождении адреса в базе данных, в противном случае FALSE.

Примеры

Пример #1 Пример использования geoip_country_code3_by_name()

Данный пример выведет расположение хоста example.com.

<?php
$country = geoip_country_code3_by_name('www.example.com');
if ($country) {
    echo 'Хост расположен в ' . $country;
}
?>

Результат выполнения данного примера:

Хост расположен в USA

Смотрите также

  • geoip_country_code_by_name() - Получить двухсимвольный код страны
  • geoip_country_name_by_name() - Получить полное название страны


Получить полное название страны

  • « geoip_country_code3_by_name
  • geoip_database_info »
  • PHP Manual
  • Функции GeoIP
  • Получить полное название страны

geoip_country_name_by_name

(PECL geoip >= 0.2.0)

geoip_country_name_by_name — Получить полное название страны

Описание

geoip_country_name_by_name ( string $hostname ) : string

Функция geoip_country_name_by_name() возвращает полное название страны, соответствующий имени хоста или IP-адресу.

Список параметров

hostname

Имя хоста или IP-адрес, по которому будет вестись поиск.

Возвращаемые значения

Возвращает полное название страны при нахождении адреса в базе данных, в противном случае FALSE.

Примеры

Пример #1 Пример использования geoip_country_name_by_name()

Данный пример выведет расположение хоста example.com.

<?php
$country = geoip_country_name_by_name('www.example.com');
if ($country) {
    echo 'Хост расположен в ' . $country;
}
?>

Результат выполнения данного примера:

Хост расположен в United States

Смотрите также

  • geoip_country_code_by_name() - Получить двухсимвольный код страны
  • geoip_country_code3_by_name() - Получить трехсимвольный код страны


Возвращает информацию о базе GeoIP

  • « geoip_country_name_by_name
  • geoip_db_avail »
  • PHP Manual
  • Функции GeoIP
  • Возвращает информацию о базе GeoIP

geoip_database_info

(PECL geoip >= 0.2.0)

geoip_database_info — Возвращает информацию о базе GeoIP

Описание

geoip_database_info ([ int $database = GEOIP_COUNTRY_EDITION ] ) : string

Функция geoip_database_info() возвращает версию базы GeoIP, соответствующую определению в бинарном файле.

Эта функция вызывается без параметров и возвращает версию базы GeoIP Free Country Edition.

Список параметров

database

Тип базы определяется целым числом (integer). Вы можете использовать разнообразные константы, определённые в этом расширении (т.е.: GEOIP_*_EDITION).

Возвращаемые значения

Возвращает подходящую версию, или NULL при ошибке.

Примеры

Пример #1 Пример использования geoip_database_info()

Пример демонстрирует вывод информации о базе данных.

<?php
print geoip_database_info(GEOIP_COUNTRY_EDITION);
?>

Результат выполнения данного примера:

GEO-106FREE 20060801 Build 1 Copyright (c) 2006 MaxMind LLC All Rights Reserved


Проверяет доступность базы GeoIP

  • « geoip_database_info
  • geoip_db_filename »
  • PHP Manual
  • Функции GeoIP
  • Проверяет доступность базы GeoIP

geoip_db_avail

(PECL geoip >= 1.0.1)

geoip_db_avail — Проверяет доступность базы GeoIP

Описание

geoip_db_avail ( int $database ) : bool

Функция geoip_db_avail() определяет, доступна ли соответствующая база GeoIP и может ли быть открыта на диске.

При этом не сообщается, является ли файл корректной базой данных, только доступность для чтения.

Список параметров

database

Тип базы данных определяется целым числом (integer). Вы можете использовать различные константы, определённые в этом расширении (ie: GEOIP_*_EDITION).

Возвращаемые значения

Возвращает TRUE, если база данных существует, FALSE, если не найдена, или NULL при ошибке.

Примеры

Пример #1 Пример использования geoip_db_avail()

Пример выводит версию текущей базы данных в виде строки.

<?php

if (geoip_db_avail(GEOIP_COUNTRY_EDITION))
    print geoip_database_info(GEOIP_COUNTRY_EDITION);
?>

Результат выполнения данного примера:

GEO-106FREE 20080801 Build 1 Copyright (c) 2006 MaxMind LLC All Rights Reserved


Возвращает имя файла соответствующей базы GeoIP

  • « geoip_db_avail
  • geoip_db_get_all_info »
  • PHP Manual
  • Функции GeoIP
  • Возвращает имя файла соответствующей базы GeoIP

geoip_db_filename

(PECL geoip >= 1.0.1)

geoip_db_filename — Возвращает имя файла соответствующей базы GeoIP

Описание

geoip_db_filename ( int $database ) : string

Функция geoip_db_filename() возвращает имя файла соответствующей базы GeoIP.

Функция не определяет, существует ли файл на диске, только указывает путь, по которому библиотека ищет файл базы.

Список параметров

database

Тип базы определяется целым числом (integer). Вы можете использовать разнообразные константы, определённые в этом расширении (т.е.: GEOIP_*_EDITION).

Возвращаемые значения

Возвращает имя файла соответствующей базы, или NULL при ошибке.

Примеры

Пример #1 Пример использования geoip_db_filename()

Пример отображения имени файла текущей базы в виде строки.

<?php

print geoip_db_filename(GEOIP_COUNTRY_EDITION);

?>

Результат выполнения данного примера:

/usr/share/GeoIP/GeoIP.dat


Возвращает подробную информацию обо всех типах базы GeoIP

  • « geoip_db_filename
  • geoip_domain_by_name »
  • PHP Manual
  • Функции GeoIP
  • Возвращает подробную информацию обо всех типах базы GeoIP

geoip_db_get_all_info

(PECL geoip >= 1.0.1)

geoip_db_get_all_info — Возвращает подробную информацию обо всех типах базы GeoIP

Описание

geoip_db_get_all_info ( void ) : array

Функция geoip_db_get_all_info() возвращает подробную информацию обо всех типах базы GeoIP в виде многомерного массива.

Эта функция доступна даже при отсутствии установленных базы данных. При этом типы будут перечислены и отмечены как недоступные.

Имена различных ключей возвращаемого ассоциативного массива:

  • "available" -- Логический тип, указывает доступна ли база (см. geoip_db_avail())
  • "description" -- Описание базы данных
  • "filename" -- Имя файла базы данных на диске (см. geoip_db_filename())

Возвращаемые значения

Возвращает ассоциативный массив.

Примеры

Пример #1 Пример использования geoip_db_get_all_info()

Выводит массив содержащий всю информацию о базе данных.

<?php
$infos = geoip_db_get_all_info();
if (is_array($infos)) {
    var_dump($infos);
}
?>

Результат выполнения данного примера:

array(11) {
  [1]=>
  array(3) {
    ["available"]=>
    bool(true)
    ["description"]=>
    string(21) "GeoIP Country Edition"
    ["filename"]=>
    string(32) "/usr/share/GeoIP/GeoIP.dat"
  }

[ ... ]

  [11]=>
  array(3) {
    ["available"]=>
    bool(false)
    ["description"]=>
    string(25) "GeoIP Domain Name Edition"
    ["filename"]=>
    string(38) "/usr/share/GeoIP/GeoIPDomain.dat"
  }
}

Пример #2 Пример использования geoip_db_get_all_info()

Вы можете использовать разнообразные константы как ключи для получения только конкретной части информации.

<?php
$infos = geoip_db_get_all_info();
if ($infos[GEOIP_COUNTRY_EDITION]['available']) {
    echo $infos[GEOIP_COUNTRY_EDITION]['description'];
}
?>

Результат выполнения данного примера:

GeoIP Country Edition


Получить имя домена второго уровня

  • « geoip_db_get_all_info
  • geoip_id_by_name »
  • PHP Manual
  • Функции GeoIP
  • Получить имя домена второго уровня

geoip_domain_by_name

(PECL geoip >= 1.1.0)

geoip_domain_by_name — Получить имя домена второго уровня

Описание

geoip_domain_by_name ( string $hostname ) : string

Функция geoip_domain_by_name() возвращает имена доменов второго уровня, связанных с именем хоста или IP-адресом.

Сейчас эта функция доступна только пользователям, купившим коммерческую версию GeoIP Domain Edition. В случае, если корректная база данных не будет найдена, будет выведено предупреждение.

Список параметров

hostname

Имя хоста или IP-адрес.

Возвращаемые значения

В случае успеха возвращает имя домена. Если адрес не найден в базе, то возвращается FALSE.

Примеры

Пример #1 Пример использования geoip_domain_by_name()

Найдем домен, связанный с IP 61.106.139.1.

<?php
$domain = geoip_domain_by_name('61.106.139.1');

if ($domain) {
    echo 'Домен: '. $domain;
}

?>

Результат выполнения данного примера:

Домен: von.co.kr


Возвращает тип интернет-соединения

  • « geoip_domain_by_name
  • geoip_isp_by_name »
  • PHP Manual
  • Функции GeoIP
  • Возвращает тип интернет-соединения

geoip_id_by_name

(PECL geoip >= 0.2.0)

geoip_id_by_name — Возвращает тип интернет-соединения

Описание

geoip_id_by_name ( string $hostname ) : int

Функция geoip_id_by_name() возвращает тип Интернет соединения соответствующего имени хоста или IP-адреса.

Возвращает числовое значение, которое можно сравнить с константами:

  • GEOIP_UNKNOWN_SPEED
  • GEOIP_DIALUP_SPEED
  • GEOIP_CABLEDSL_SPEED
  • GEOIP_CORPORATE_SPEED

Список параметров

hostname

Имя хоста или IP-адрес, соединение с которыми проверяется.

Возвращаемые значения

Возвращает тип соединения.

Примеры

Пример #1 Пример использования geoip_id_by_name()

Выводит тип соединения для хоста example.com.

<?php
$netspeed = geoip_id_by_name('www.example.com');

echo 'Тип Интернет-соединения: ';

switch ($netspeed) {
    case GEOIP_DIALUP_SPEED:
        echo 'dial-up';
        break;
    case GEOIP_CABLEDSL_SPEED:
        echo 'cable or DSL';
        break;
    case GEOIP_CORPORATE_SPEED:
        echo 'corporate';
        break;
    case GEOIP_UNKNOWN_SPEED:
    default:
        echo 'unknown';
}
?>

Результат выполнения данного примера:

Тип Интернет-соединения: corporate


Возвращает имя интернет-провайдера (ISP)

  • « geoip_id_by_name
  • geoip_netspeedcell_by_name »
  • PHP Manual
  • Функции GeoIP
  • Возвращает имя интернет-провайдера (ISP)

geoip_isp_by_name

(PECL geoip >= 1.0.2)

geoip_isp_by_name — Возвращает имя интернет-провайдера (ISP)

Описание

geoip_isp_by_name ( string $hostname ) : string

Функция geoip_isp_by_name() возвращает имя интернет-провайдера (ISP) указанного IP-адреса.

Эта функция доступна только для тех, кто приобрел коммерческую версию GeoIP ISP. Если такая база отсутствует, выводится предупреждение.

Список параметров

hostname

Имя хоста или IP-адрес.

Возвращаемые значения

Возвращает имя ISP при успешном выполнении или FALSE, если адрес не найден в базе данных.

Примеры

Пример #1 Пример использования geoip_isp_by_name()

Выведет имя ISP для хоста example.com.

<?php
$isp = geoip_isp_by_name('www.example.com');
if ($isp) {
    echo 'Этот IP-адрес управляется провайдером: ' . $isp;
}
?>

Результат выполнения данного примера:

Адрес управляется провайдером: ICANN c/o Internet Assigned Numbers Authority


Получить скорость соединения с сетью Интернет

  • « geoip_isp_by_name
  • geoip_org_by_name »
  • PHP Manual
  • Функции GeoIP
  • Получить скорость соединения с сетью Интернет

geoip_netspeedcell_by_name

(PECL geoip >= 1.1.0)

geoip_netspeedcell_by_name — Получить скорость соединения с сетью Интернет

Описание

geoip_netspeedcell_by_name ( string $hostname ) : string

Функция geoip_netspeedcell_by_name() возвращает тип подключения к сети Интернет и его скорость относительно заданного имени хоста или IP-адреса.

Эта функция доступна, только если используется библиотека GeoIP версии 1.4.8 и выше.

Сейчас эта функция доступна только пользователям, купившим коммерческую версию GeoIP Domain Edition. В случае если корректная база данных не будет найдена, будет выведено предупреждение.

Возращается строка. Стандартные значения:

  • Cable/DSL
  • Dialup
  • Cellular
  • Corporate

Список параметров

hostname

Имя хоста или IP-адрес.

Возвращаемые значения

В случае успеха возвращает скорость соединения. Если адрес не найден в базе данных, то возвращается FALSE.

Примеры

Пример #1 Пример использования geoip_netspeedcell_by_name()

Получение скорости соединения с example.com.

<?php
$netspeed = geoip_netspeedcell_by_name('www.example.com');

if ($netspeed) {
    echo 'Тип соединения: '. $netspeed;
}
?>

Результат выполнения данного примера:

Тип соединения: Corporate


Возвращает название организации, владеющей IP-адресом

  • « geoip_netspeedcell_by_name
  • geoip_record_by_name »
  • PHP Manual
  • Функции GeoIP
  • Возвращает название организации, владеющей IP-адресом

geoip_org_by_name

(PECL geoip >= 0.2.0)

geoip_org_by_name — Возвращает название организации, владеющей IP-адресом

Описание

geoip_org_by_name ( string $hostname ) : string

Функция geoip_org_by_name() возвращает название организации, которая владеет указанным IP-адресом.

Эта функция доступна только для тех, кто приобрел коммерческую версию GeoIP Organization, ISP или AS. Если такая база отсутствует, выводится предупреждение.

Список параметров

hostname

Имя хоста или IP-адрес.

Возвращаемые значения

Возвращает имя организации в случае успеха или FALSE, если адрес не может быть найден в базе данных.

Примеры

Пример #1 Пример использованияgeoip_org_by_name()

Будет выведено название организации, которой принадлежит IP-адрес хоста example.com.

<?php
$org = geoip_org_by_name('www.example.com');
if ($org) {
    echo 'Владелец данного адреса: ' . $org;
}
?>

Результат выполнения данного примера:

Владелец данного адреса: ICANN c/o Internet Assigned Numbers Authority


Возвращает подробную информацию об адресе, найденном в базе GeoIP

  • « geoip_org_by_name
  • geoip_region_by_name »
  • PHP Manual
  • Функции GeoIP
  • Возвращает подробную информацию об адресе, найденном в базе GeoIP

geoip_record_by_name

(PECL geoip >= 0.2.0)

geoip_record_by_name — Возвращает подробную информацию об адресе, найденном в базе GeoIP

Описание

geoip_record_by_name ( string $hostname ) : array

Функция geoip_record_by_name() возвращает информацию об адресе, соответствующую имени хоста или IP адреса.

Функция доступна для бесплатной версии GeoLite City Edition и коммерческой GeoIP City Edition. Если необходимые базы отсутствует, выводится предупреждение.

Следующие имена ключей возвращаемого ассоциативного массива:

  • "continent_code" -- Двухбуквенный код континента (с версии 1.0.4 с libgeoip 1.4.3 или более новой)
  • "country_code" -- Двухбуквенный код страны (см. geoip_country_code_by_name())
  • "country_code3" -- Трехбуквенный код страны (см. geoip_country_code3_by_name())
  • "country_name" -- Название страны (см. geoip_country_name_by_name())
  • "region" -- Код региона (например: CA для Калифорнии)
  • "city" -- Город.
  • "postal_code" -- Почтовый индекс, FSA или Zip-код
  • "latitude" -- Широта, знаковое вещественное число (signed double).
  • "longitude" -- Долгота, знаковое вещественное число (signed double).
  • "dma_code" -- Код рыночной зоны (Designated Market Area, DMA), только для США и Канады
  • "area_code" -- Код телефонной сети общего пользования (PSTN), например, 212

Список параметров

hostname

Имя хоста или IP-адрес, данные по которому должны быть получены.

Возвращаемые значения

Возвращает ассоциативный массив в случае успеха или FALSE, если адрес не может быть найден в базе.

Список изменений

Версия | Описание
1.0.4 | Добавлен код континента (continent_code) с GeoIP Library 1.4.3 или более новыми.
1.0.3 | Добавлен трехбуквенный код страны (country_code3) и название страны (country_name).

Примеры

Пример #1 Пример использования geoip_record_by_name()

Выведет массив, содержащий запись о хосте example.com.

<?php
$record = geoip_record_by_name('www.example.com');
if ($record) {
    print_r($record);
}
?>

Результат выполнения данного примера:

Array
(
    [continent_code] => NA
    [country_code] => US
    [country_code3] => USA
    [country_name] => United States
    [region] => CA
    [city] => Marina Del Rey
    [postal_code] =>
    [latitude] => 33.9776992798
    [longitude] => -118.435096741
    [dma_code] => 803
    [area_code] => 310
)


Возвращает коды страны и региона

  • « geoip_record_by_name
  • geoip_region_name_by_code »
  • PHP Manual
  • Функции GeoIP
  • Возвращает коды страны и региона

geoip_region_by_name

(PECL geoip >= 0.2.0)

geoip_region_by_name — Возвращает коды страны и региона

Описание

geoip_region_by_name ( string $hostname ) : array

Функцияgeoip_region_by_name() возвращает коды страны и региона, соответствующих имени хоста или IP-адресу.

Эта функция доступна только для тех, кто приобрел коммерческую версию GeoIP Region. Если такая база отсутствует, выводится предупреждение.

Следующие имена ключей возвращаемого ассоциативного массива:

  • "country_code" -- Двухбуквенный код страны (см. geoip_country_code_by_name())
  • "region" -- Код региона (например, CA для Калифорнии)

Список параметров

hostname

Имя хоста или IP-адрес, данные о стране и регионе, которого необходимо найти.

Возвращаемые значения

Возвращает ассоциативный массив в случае успеха или FALSE, если адрес не будет найден в базе данных.

Примеры

Пример #1 Пример использования geoip_region_by_name()

Выведет массив, состоящий из кода страны и кода региона для хоста example.com.

<?php
$region = geoip_region_by_name('www.example.com');
if ($region) {
    print_r($region);
}
?>

Результат выполнения данного примера:

Array
(
    [country_code] => US
    [region] => CA
)


Возвращает название региона для выбранной страны и кода региона

  • « geoip_region_by_name
  • geoip_setup_custom_directory »
  • PHP Manual
  • Функции GeoIP
  • Возвращает название региона для выбранной страны и кода региона

geoip_region_name_by_code

(PECL geoip >= 1.0.4)

geoip_region_name_by_code — Возвращает название региона для выбранной страны и кода региона

Описание

geoip_region_name_by_code ( string $country_code , string $region_code ) : string

Функция geoip_region_name_by_code() возвращает название региона, соответствующей страны и кода региона.

В США код региона соответствует двухбуквенному сокращению каждому штату. В Канаде код региона соответствует двухбуквенному сокращению имени провинции или территории, присвоенный почтовой службой Канады.

Для остального мира GeoIP использует коды FIPS 10-4 для представления региона. См. также » http://www.maxmind.com/app/fips10_4 -- детальный список кодов FIPS 10-4.

Данная функция всегда доступна при использовании библиотеки GeoIP версии 1.4.1 и новее. Данные берутся непосредственно из библиотеки GeoIP, а не из какой-либо базы.

Список параметров

country_code

Двухбуквенный код страны geoip_country_code_by_name())

region_code

Двухбуквенный (или цифровой) код региона geoip_region_by_name())

Возвращаемые значения

Возвращает название региона в случае успехе или FALSE, если страна и код региона не найдены в базе данных.

Примеры

Пример #1 Пример использования geoip_region_name_by_code() (Для Канады/США)

Будет выведено название региона для страны CA (Канада), региона QC (Квебек).

<?php
$region = geoip_region_name_by_code('CA', 'QC');
if ($region) {
    echo 'Название региона для CA/QC: ' . $region;
}
?>

Результат выполнения данного примера:

Название региона для CA/QC: Quebec

Пример #2 Пример использования geoip_region_name_by_code(), используя коды FIPS

Будет выведено имя региона для страны JP (Япония), региона 01 (префектура Айти).

<?php
$region = geoip_region_name_by_code('JP', '01');
if ($region) {
    echo 'Название региона для JP/01: ' . $region;
}
?>

Результат выполнения данного примера:

Название региона для JP/01: Aichi


Установить пользовательскую директорию для базы данных GeoIP

  • « geoip_region_name_by_code
  • geoip_time_zone_by_country_and_region »
  • PHP Manual
  • Функции GeoIP
  • Установить пользовательскую директорию для базы данных GeoIP

geoip_setup_custom_directory

(PECL geoip >= 1.1.0)

geoip_setup_custom_directory — Установить пользовательскую директорию для базы данных GeoIP

Описание

geoip_setup_custom_directory ( string $path ) : void

Функция geoip_setup_custom_directory() изменяет директорию по умолчанию для базы данных GeoIP. Использование функции эквивалентно изменению geoip.custom_directory.

Список параметров

path

Полный путь до базы данных GeoIP.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования geoip_setup_custom_directory()

Изменим путь до базы данных GeoIP.

<?php

geoip_setup_custom_directory('/some/other/path');

print geoip_db_filename(GEOIP_COUNTRY_EDITION);

?>

Результат выполнения данного примера:

/some/other/path/GeoIP.dat


Возвращает временную зону для кода страны и региона

  • « geoip_setup_custom_directory
  • FANN »
  • PHP Manual
  • Функции GeoIP
  • Возвращает временную зону для кода страны и региона

geoip_time_zone_by_country_and_region

(PECL geoip >= 1.0.4)

geoip_time_zone_by_country_and_region — Возвращает временную зону для кода страны и региона

Описание

geoip_time_zone_by_country_and_region ( string $country_code [, string $region_code ] ) : string

Функция geoip_time_zone_by_country_and_region() вернет временную зону и код региона соответствующей страны.

В США код региона соответствует двухбуквенному сокращению каждого штата. В Канаде код региона соответствует двухбуквенному сокращению провинции или территориальный код соответствующий канадской почте.

Для остальной части мира, для представления регионов GeoIP использует коды FIPS 10-4. Вы можете просмотреть » http://www.maxmind.com/app/fips10_4 для получения полного списка FIPS 10-4 кодов.

Эта функция всегда доступна при использовании библиотеки GeoIP версии 1.4.1 или новее. Данные берутся непосредственно из библиотеки GeoIP, а не из какой-либо базы данных.

Список параметров

country_code

Двухбуквенный код страны (см. geoip_country_code_by_name())

region_code

Двухбуквенный (или цифровой) код региона (см. geoip_region_by_name())

Возвращаемые значения

Возвращает временную зону в случае успеха или FALSE, если страна и одновременно код региона не могут быть найдены.

Примеры

Пример #1 Пример использования geoip_time_zone_by_country_and_region() для кода региона US/Canada

Напечатает временную зону для страны CA (Канада), региона QC (Квебек).

<?php
$timezone = geoip_time_zone_by_country_and_region('CA', 'QC');
if ($timezone) {
    echo 'Временная зона для CA/QC: ' . $timezone;
}
?>

Результат выполнения данного примера:

Временная зона для CA/QC: America/Montreal

Пример #2 Использование geoip_time_zone_by_country_and_region(), используя коды FIPS

Выводит временную зону для страны JP (Япония), регион 01 (Aichi).

<?php
$timezone = geoip_time_zone_by_country_and_region('JP', '01');
if ($timezone) {
    echo 'Временная зона для JP/01: ' . $timezone;
}
?>

Результат выполнения данного примера:

Временная зона для JP/01: Asia/Tokyo


Быстрая искусственная нейронная сеть (Fast Artificial Neural Network или FANN)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Обучение XOR
  • Функции Fann
    • fann_cascadetrain_on_data — Обучение на всем наборе данных в течение определенного периода времени с помощью алгоритма Cascade2
    • fann_cascadetrain_on_file — Обучение на данных прочтенных из файла с помощью алгоритма Cascade2
    • fann_clear_scaling_params — Очистка параметров масштабирования
    • fann_copy — Создает копию структуры fann
    • fann_create_from_file — Создает нейронную сеть с обратным распространением ошибки из конфигурационного файла
    • fann_create_shortcut_array — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_shortcut — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_sparse_array — Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
    • fann_create_sparse — Creates a standard backpropagation neural network, which is not fully connected
    • fann_create_standard_array — Creates a standard fully connected backpropagation neural network using an array of layer sizes
    • fann_create_standard — Creates a standard fully connected backpropagation neural network
    • fann_create_train_from_callback — Creates the training data struct from a user supplied function
    • fann_create_train — Creates an empty training data struct
    • fann_descale_input — Scale data in input vector after get it from ann based on previously calculated parameters
    • fann_descale_output — Scale data in output vector after get it from ann based on previously calculated parameters
    • fann_descale_train — Descale input and output data based on previously calculated parameters
    • fann_destroy_train — Destructs the training data
    • fann_destroy — Destroys the entire network and properly freeing all the associated memory
    • fann_duplicate_train_data — Returns an exact copy of a fann train data
    • fann_get_activation_function — Returns the activation function
    • fann_get_activation_steepness — Returns the activation steepness for supplied neuron and layer number
    • fann_get_bias_array — Get the number of bias in each layer in the network
    • fann_get_bit_fail_limit — Returns the bit fail limit used during training
    • fann_get_bit_fail — The number of fail bits
    • fann_get_cascade_activation_functions_count — Returns the number of cascade activation functions
    • fann_get_cascade_activation_functions — Returns the cascade activation functions
    • fann_get_cascade_activation_steepnesses_count — The number of activation steepnesses
    • fann_get_cascade_activation_steepnesses — Returns the cascade activation steepnesses
    • fann_get_cascade_candidate_change_fraction — Returns the cascade candidate change fraction
    • fann_get_cascade_candidate_limit — Return the candidate limit
    • fann_get_cascade_candidate_stagnation_epochs — Returns the number of cascade candidate stagnation epochs
    • fann_get_cascade_max_cand_epochs — Returns the maximum candidate epochs
    • fann_get_cascade_max_out_epochs — Returns the maximum out epochs
    • fann_get_cascade_min_cand_epochs — Returns the minimum candidate epochs
    • fann_get_cascade_min_out_epochs — Returns the minimum out epochs
    • fann_get_cascade_num_candidate_groups — Returns the number of candidate groups
    • fann_get_cascade_num_candidates — Returns the number of candidates used during training
    • fann_get_cascade_output_change_fraction — Returns the cascade output change fraction
    • fann_get_cascade_output_stagnation_epochs — Returns the number of cascade output stagnation epochs
    • fann_get_cascade_weight_multiplier — Returns the weight multiplier
    • fann_get_connection_array — Get connections in the network
    • fann_get_connection_rate — Get the connection rate used when the network was created
    • fann_get_errno — Returns the last error number
    • fann_get_errstr — Returns the last errstr
    • fann_get_layer_array — Get the number of neurons in each layer in the network
    • fann_get_learning_momentum — Returns the learning momentum
    • fann_get_learning_rate — Returns the learning rate
    • fann_get_MSE — Reads the mean square error from the network
    • fann_get_network_type — Get the type of neural network it was created as
    • fann_get_num_input — Get the number of input neurons
    • fann_get_num_layers — Get the number of layers in the neural network
    • fann_get_num_output — Get the number of output neurons
    • fann_get_quickprop_decay — Returns the decay which is a factor that weights should decrease in each iteration during quickprop training
    • fann_get_quickprop_mu — Returns the mu factor
    • fann_get_rprop_decrease_factor — Returns the increase factor used during RPROP training
    • fann_get_rprop_delta_max — Returns the maximum step-size
    • fann_get_rprop_delta_min — Returns the minimum step-size
    • fann_get_rprop_delta_zero — Returns the initial step-size
    • fann_get_rprop_increase_factor — Returns the increase factor used during RPROP training
    • fann_get_sarprop_step_error_shift — Returns the sarprop step error shift
    • fann_get_sarprop_step_error_threshold_factor — Returns the sarprop step error threshold factor
    • fann_get_sarprop_temperature — Returns the sarprop temperature
    • fann_get_sarprop_weight_decay_shift — Returns the sarprop weight decay shift
    • fann_get_total_connections — Get the total number of connections in the entire network
    • fann_get_total_neurons — Get the total number of neurons in the entire network
    • fann_get_train_error_function — Returns the error function used during training
    • fann_get_train_stop_function — Returns the stop function used during training
    • fann_get_training_algorithm — Returns the training algorithm
    • fann_init_weights — Initialize the weights using Widrow + Nguyen’s algorithm
    • fann_length_train_data — Returns the number of training patterns in the train data
    • fann_merge_train_data — Merges the train data
    • fann_num_input_train_data — Returns the number of inputs in each of the training patterns in the train data
    • fann_num_output_train_data — Returns the number of outputs in each of the training patterns in the train data
    • fann_print_error — Prints the error string
    • fann_randomize_weights — Give each connection a random weight between min_weight and max_weight
    • fann_read_train_from_file — Reads a file that stores training data
    • fann_reset_errno — Resets the last error number
    • fann_reset_errstr — Resets the last error string
    • fann_reset_MSE — Resets the mean square error from the network
    • fann_run — Will run input through the neural network
    • fann_save_train — Save the training structure to a file
    • fann_save — Saves the entire network to a configuration file
    • fann_scale_input_train_data — Scales the inputs in the training data to the specified range
    • fann_scale_input — Scale data in input vector before feed it to ann based on previously calculated parameters
    • fann_scale_output_train_data — Scales the outputs in the training data to the specified range
    • fann_scale_output — Scale data in output vector before feed it to ann based on previously calculated parameters
    • fann_scale_train_data — Scales the inputs and outputs in the training data to the specified range
    • fann_scale_train — Scale input and output data based on previously calculated parameters
    • fann_set_activation_function_hidden — Sets the activation function for all of the hidden layers
    • fann_set_activation_function_layer — Sets the activation function for all the neurons in the supplied layer
    • fann_set_activation_function_output — Sets the activation function for the output layer
    • fann_set_activation_function — Sets the activation function for supplied neuron and layer
    • fann_set_activation_steepness_hidden — Sets the steepness of the activation steepness for all neurons in the all hidden layers
    • fann_set_activation_steepness_layer — Sets the activation steepness for all of the neurons in the supplied layer number
    • fann_set_activation_steepness_output — Sets the steepness of the activation steepness in the output layer
    • fann_set_activation_steepness — Sets the activation steepness for supplied neuron and layer number
    • fann_set_bit_fail_limit — Set the bit fail limit used during training
    • fann_set_callback — Sets the callback function for use during training
    • fann_set_cascade_activation_functions — Sets the array of cascade candidate activation functions
    • fann_set_cascade_activation_steepnesses — Sets the array of cascade candidate activation steepnesses
    • fann_set_cascade_candidate_change_fraction — Sets the cascade candidate change fraction
    • fann_set_cascade_candidate_limit — Sets the candidate limit
    • fann_set_cascade_candidate_stagnation_epochs — Sets the number of cascade candidate stagnation epochs
    • fann_set_cascade_max_cand_epochs — Sets the max candidate epochs
    • fann_set_cascade_max_out_epochs — Sets the maximum out epochs
    • fann_set_cascade_min_cand_epochs — Sets the min candidate epochs
    • fann_set_cascade_min_out_epochs — Sets the minimum out epochs
    • fann_set_cascade_num_candidate_groups — Sets the number of candidate groups
    • fann_set_cascade_output_change_fraction — Sets the cascade output change fraction
    • fann_set_cascade_output_stagnation_epochs — Sets the number of cascade output stagnation epochs
    • fann_set_cascade_weight_multiplier — Sets the weight multiplier
    • fann_set_error_log — Sets where the errors are logged to
    • fann_set_input_scaling_params — Calculate input scaling parameters for future use based on training data
    • fann_set_learning_momentum — Sets the learning momentum
    • fann_set_learning_rate — Sets the learning rate
    • fann_set_output_scaling_params — Calculate output scaling parameters for future use based on training data
    • fann_set_quickprop_decay — Sets the quickprop decay factor
    • fann_set_quickprop_mu — Sets the quickprop mu factor
    • fann_set_rprop_decrease_factor — Sets the decrease factor used during RPROP training
    • fann_set_rprop_delta_max — Sets the maximum step-size
    • fann_set_rprop_delta_min — Sets the minimum step-size
    • fann_set_rprop_delta_zero — Sets the initial step-size
    • fann_set_rprop_increase_factor — Sets the increase factor used during RPROP training
    • fann_set_sarprop_step_error_shift — Sets the sarprop step error shift
    • fann_set_sarprop_step_error_threshold_factor — Sets the sarprop step error threshold factor
    • fann_set_sarprop_temperature — Sets the sarprop temperature
    • fann_set_sarprop_weight_decay_shift — Sets the sarprop weight decay shift
    • fann_set_scaling_params — Calculate input and output scaling parameters for future use based on training data
    • fann_set_train_error_function — Sets the error function used during training
    • fann_set_train_stop_function — Sets the stop function used during training
    • fann_set_training_algorithm — Sets the training algorithm
    • fann_set_weight_array — Создание связей в сети
    • fann_set_weight — Создание связи в сети
    • fann_shuffle_train_data — Перемешивает обучающие данные в случайном порядке
    • fann_subset_train_data — Получить копию подмножества из обучающих данных
    • fann_test_data — Тестирование набора обучающих данных и вычисление MSE для него
    • fann_test — Тестирование с набором входных данных и желаемым результатом
    • fann_train_epoch — Обучение в течение одной эпохи
    • fann_train_on_data — Обучение на всем объеме данных на временном интервале
    • fann_train_on_file — Обучение на полном наборе данных, прочитанном из файла, на временном интервале
    • fann_train — Провести одну итерацию обучения с набором входных данных и желаемым результатом
  • FANNConnection — Класс FANNConnection
    • FANNConnection::__construct — Конструктор связи
    • FANNConnection::getFromNeuron — Возвращает позицию стартового нейрона
    • FANNConnection::getToNeuron — Возвращает позицию конечного нейрона
    • FANNConnection::getWeight — Возвращает вес связи
    • FANNConnection::setWeight — Устанавливает вес связи


Введение

Привязка PHP к библиотеке FANN, которая реализует многослойную искусственную нейронную сеть с поддержкой как полносвязных так и неполносвязных сетей. Модуль включает фреймворк для управления обучающими выборками. Модуль простой в использовании, гибкий, хорошо документированный и быстрый.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

PHP >= 5.2.0 и libfann >= 2.1.0


Установка

Модуль FANN должен работать на любых дистрибутивах Linux.

  • Установка библиотеки FANN
  • Установка из PECL
  • Ручная установка

Установка библиотеки FANN

Перед началом установки убедитесь, что на вашей системе уже установлена библиотека libfann. Она является частью главного репозитория в для большинства дистрибутивов Linux (ищите по слову fann). Вам необходима версия для разработчиков.

Если она не установлена, то вам, все же, придется ее установить. Можете установить ее из репозитория ОС либо скачать с » официального сайта. Например для Fedora:

$ sudo yum install fann-devel
или Ubuntu:

$ sudo apt-get install libfann-dev

Если библиотека переустанавливается вручную, то сперва необходимо удалить старую версию библиотеки, иначе она не будет заменена.

Установка из PECL

Этот модуль доступен в PECL. Установка очень проста, запустите:

$ sudo pecl install fann

Ручная установка

Для разработчиков и людей, заинтересованных в самой свежей версии, есть возможность скомпилировать из самых свежих исходных кодов, которые лежат на » GitHub. Зайтите на GitHub и нажмите "Download ZIP". после этого запустите:

$ unzip php-fann-master.zip
$ cd php-fann-master
$ phpize
$ ./configure
$ make all
$ sudo make install

Внесите следующие изменения в php.ini:

  • Убедитесь, что extension_dir указывает на директорию, в которой находится fann.so. При сборке на экран будет выведено, куда именно устанавливается скомпилированный модуль:

Installing '/usr/lib/php/extensions/no-debug-non-zts-20060613/fann.so'
    Убедитесь, что это путь, в котором лежат модули PHP:

$ php -i | grep extension_dir
  extension_dir => /usr/lib/php/extensions/no-debug-non-zts-20060613 =>
                   /usr/lib/php/extensions/no-debug-non-zts-20060613
    Если это не так, то поменяйте extension_dir в php.ini или просто переместите fann.so куда следует.

  • Для загрузки модуля при запуске PHP, добавьте в php.ini строку:

extension=fann.so


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Обучающие алгоритмы
FANN_TRAIN_INCREMENTAL (integer)
Стандартный алгоритм обратного распространения ошибки, в котором веса обновляются после каждого обучающего шаблона. Это означает, что веса обновляются множество раз в течение одной эпохи. Это приводит к тому, что для некоторых задач обучение будет происходить очень быстро, в то время как с более сложными задачами обучение не будет давать нужного качества.
FANN_TRAIN_BATCH (integer)
Стандартный алгоритм обратного распространения ошибки, в котором веса обновляются после вычисления среднеквадратичная погрешность на всем обучающем наборе. Это означает, что веса обновляются всего один раз в течение одной эпохи. Это приводит к тому, что для некоторых задач обучение будет происходить медленнее. С другой стороны, вычисление среднеквадратичной погрешности более корректно, нежели чем в инкрементальном обучении, что позволяет получить более качественную сеть.
FANN_TRAIN_RPROP (integer)
Более продвинутый алгоритм пакетного обучения, позволяющий достичь хороших результатов для многих задач. Обучающий алгоритм RPROP является адаптивным и, следовательно, не использует learning_rate. Тем не менее можно установить некоторые другие параметры для изменения работы алгоритма RPROP, но это рекомендуется делать только тем, кто понимает принципы работы этого алгоритма. Обучающий алгоритм RPROP описан Редмиллером и Брауном в 1993 г., но тут используется обучающий алгоритм iRPROP, описанный Игелем и Хаскиным в 2000 г., который является вариантом стандартного алгоритма RPROP.
FANN_TRAIN_QUICKPROP (integer)
Более продвинутый алгоритм пакетного обучения, позволяющий достичь хороших результатов для многих задач. Алггоритм quickprop использует параметр learning_rate наряду с другими параметрами, но изменять эти параметры рекомендуется только если вы понимаете, что делаете. Обучающий алгоритм quickprop описан Фальманом в 1988 г.
FANN_TRAIN_SARPROP (integer)
Еще более продвинутый алгоритм тренировки. Только для версии 2.2
Activation functions
FANN_LINEAR (integer)
Линейная функция активации.
FANN_THRESHOLD (integer)
Функция активации по порогу.
FANN_THRESHOLD_SYMMETRIC (integer)
Функция активации по порогу.
FANN_SIGMOID (integer)
Функция активации по сигмоиде.
FANN_SIGMOID_STEPWISE (integer)
Пошаговая линейная апроксимация к сигмоиде.
FANN_SIGMOID_SYMMETRIC (integer)
Функция активации по симметричной сигмоиде, она же tanh (гиперболический тангенс).
FANN_SIGMOID_SYMMETRIC_STEPWISE (integer)
Пошаговая линейная апроксимация к симметричной сигмоиде.
FANN_GAUSSIAN (integer)
Гауссова функция активации.
FANN_GAUSSIAN_SYMMETRIC (integer)
Симметричная гауссова функция активации.
FANN_GAUSSIAN_STEPWISE (integer)
Пошаговая гауссова функция активации.
FANN_ELLIOT (integer)
Быстрая (похожая на сигмоиду) функция активации, описанная Дэвидом Эллиотом.
FANN_ELLIOT_SYMMETRIC (integer)
Быстрая (похожая на симметричную сигмоиду) функция активации, описанная Дэвидом Эллиотом.
FANN_LINEAR_PIECE (integer)
Ограниченная линейная функция активации.
FANN_LINEAR_PIECE_SYMMETRIC (integer)
Ограниченная линейная функция активации.
FANN_SIN_SYMMETRIC (integer)
Периодическая синусоидальная функция активации.
FANN_COS_SYMMETRIC (integer)
Периодическая косинусоидальная функция активации.
FANN_SIN (integer)
Периодическая синусоидальная функция активации.
FANN_COS (integer)
Периодическая косинусоидальная функция активации.
Error function used during training
FANN_ERRORFUNC_LINEAR (integer)
Стандартная линейная функция ошибки.
FANN_ERRORFUNC_TANH (integer)
Функция ошибки на основе гиперболического тангенса (tanh), обычно более качественное, но и более медленное обучение. Эта функция ошибки агрессивно нацелена на результаты сильно отличающиеся от ожидаемых, в то время, как результаты с небольшими отличиями не затрагиваются. Эта функция активации не рекомендована для использования в каскадном и инкрементальном обучении.
Критерий остановки, используемый при обучении
FANN_STOPFUNC_MSE (integer)
Критерий остановки - это значение среднеквадратичной ошибки (Mean Square Error или MSE).
FANN_STOPFUNC_BIT (integer)
Критерий остановки - это количество ошибочных бит. Количество ошибочных бит - это количество отдающих нейронов, количество ошибочных бит, которые более установленного предела (смотрите fann_get_bit_fail_limit, fann_set_bit_fail_limit). Биты считаются во всех обучающих данных, так что это число может быть больше количества обучающих данных.
Определение типов сети используемых fann_get_network_type()
FANN_NETTYPE_LAYER (integer)
Каждый уровень имеет связи только со следующим уровнем.
FANN_NETTYPE_SHORTCUT (integer)
Каждый уровень имеет связи со всеми последующими уровнями.
Ошибки
FANN_E_NO_ERROR (integer)
Нет ошибки.
FANN_E_CANT_OPEN_CONFIG_R (integer)
Невозможно открыть конфигурационный файл на чтение.
FANN_E_CANT_OPEN_CONFIG_W (integer)
Невозможно открыть конфигурационный файл на запись.
FANN_E_WRONG_CONFIG_VERSION (integer)
Неверная версия конфигурационного файла.
FANN_E_CANT_READ_CONFIG (integer)
Ошибка чтения данных из конфигурационного файла.
FANN_E_CANT_READ_NEURON (integer)
Ошибка чтения данных нейрона из конфигурационного файла.
FANN_E_CANT_READ_CONNECTIONS (integer)
Ошибка чтения данных связей из конфигурационного файла.
FANN_E_WRONG_NUM_CONNECTIONS (integer)
Количество связей отличается от ожидаемого.
FANN_E_CANT_OPEN_TD_W (integer)
Невозможно открыть файл с обучающими данными на запись.
FANN_E_CANT_OPEN_TD_R (integer)
Невозможно открыть файл с обучающими данными на чтение.
FANN_E_CANT_READ_TD (integer)
Ошибка чтения обучающих данных из файла.
FANN_E_CANT_ALLOCATE_MEM (integer)
Невозможно выделить память.
FANN_E_CANT_TRAIN_ACTIVATION (integer)
Обучение с заданной функцией активации невозможно.
FANN_E_CANT_USE_ACTIVATION (integer)
Невозможно использовать заданную функцию активации.
FANN_E_TRAIN_DATA_MISMATCH (integer)
Неразрешимые различия между двумя структурами fann_train_data.
FANN_E_CANT_USE_TRAIN_ALG (integer)
Невозможно использовать указанный алгоритм обучения.
FANN_E_TRAIN_DATA_SUBSET (integer)
Попытка взять подмножество отсутствующее в обучающем наборе.
FANN_E_INDEX_OUT_OF_BOUND (integer)
Индекс за пределами допустимого диапазона.
FANN_E_SCALE_NOT_PRESENT (integer)
Не задан параметр масштабирования.
FANN_E_INPUT_NO_MATCH (integer)
Количество входных нейронов в сети и данных не совпадают.
FANN_E_OUTPUT_NO_MATCH (integer)
Число выходных нейронов в сети и данных не совпадают.


  • « Предопределенные константы
  • Обучение XOR »
  • PHP Manual
  • FANN
  • Примеры

Примеры

Содержание

  • Обучение XOR


Обучение XOR

Этот пример показывает, как обучить сеть функции XOR

Пример #1 Файл xor.data

4 2 1
-1 -1
-1
-1 1
1
1 -1
1
1 1
-1

Пример #2 Простое обучение

<?php
$num_input = 2;
$num_output = 1;
$num_layers = 3;
$num_neurons_hidden = 3;
$desired_error = 0.001;
$max_epochs = 500000;
$epochs_between_reports = 1000;

$ann = fann_create_standard($num_layers, $num_input, $num_neurons_hidden, $num_output);

if ($ann) {
    fann_set_activation_function_hidden($ann, FANN_SIGMOID_SYMMETRIC);
    fann_set_activation_function_output($ann, FANN_SIGMOID_SYMMETRIC);

    $filename = dirname(__FILE__) . "/xor.data";
    if (fann_train_on_file($ann, $filename, $max_epochs, $epochs_between_reports, $desired_error))
        fann_save($ann, dirname(__FILE__) . "/xor_float.net");

    fann_destroy($ann);
}
?>

Этот пример показывает, как прочитать из файла тренировочные данные и проверить работу сети.

Пример #3 Тестирование

<?php
$train_file = (dirname(__FILE__) . "/xor_float.net");
if (!is_file($train_file))
    die("The file xor_float.net has not been created! Please run simple_train.php to generate it");

$ann = fann_create_from_file($train_file);
if (!$ann)
    die("ANN could not be created");

$input = array(-1, 1);
$calc_out = fann_run($ann, $input);
printf("xor test (%f,%f) -> %f\n", $input[0], $input[1], $calc_out[0]);
fann_destroy($ann);
?>


Функции Fann

Содержание

  • fann_cascadetrain_on_data — Обучение на всем наборе данных в течение определенного периода времени с помощью алгоритма Cascade2
  • fann_cascadetrain_on_file — Обучение на данных прочтенных из файла с помощью алгоритма Cascade2
  • fann_clear_scaling_params — Очистка параметров масштабирования
  • fann_copy — Создает копию структуры fann
  • fann_create_from_file — Создает нейронную сеть с обратным распространением ошибки из конфигурационного файла
  • fann_create_shortcut_array — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_shortcut — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_sparse_array — Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
  • fann_create_sparse — Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard_array — Creates a standard fully connected backpropagation neural network using an array of layer sizes
  • fann_create_standard — Creates a standard fully connected backpropagation neural network
  • fann_create_train_from_callback — Creates the training data struct from a user supplied function
  • fann_create_train — Creates an empty training data struct
  • fann_descale_input — Scale data in input vector after get it from ann based on previously calculated parameters
  • fann_descale_output — Scale data in output vector after get it from ann based on previously calculated parameters
  • fann_descale_train — Descale input and output data based on previously calculated parameters
  • fann_destroy_train — Destructs the training data
  • fann_destroy — Destroys the entire network and properly freeing all the associated memory
  • fann_duplicate_train_data — Returns an exact copy of a fann train data
  • fann_get_activation_function — Returns the activation function
  • fann_get_activation_steepness — Returns the activation steepness for supplied neuron and layer number
  • fann_get_bias_array — Get the number of bias in each layer in the network
  • fann_get_bit_fail_limit — Returns the bit fail limit used during training
  • fann_get_bit_fail — The number of fail bits
  • fann_get_cascade_activation_functions_count — Returns the number of cascade activation functions
  • fann_get_cascade_activation_functions — Returns the cascade activation functions
  • fann_get_cascade_activation_steepnesses_count — The number of activation steepnesses
  • fann_get_cascade_activation_steepnesses — Returns the cascade activation steepnesses
  • fann_get_cascade_candidate_change_fraction — Returns the cascade candidate change fraction
  • fann_get_cascade_candidate_limit — Return the candidate limit
  • fann_get_cascade_candidate_stagnation_epochs — Returns the number of cascade candidate stagnation epochs
  • fann_get_cascade_max_cand_epochs — Returns the maximum candidate epochs
  • fann_get_cascade_max_out_epochs — Returns the maximum out epochs
  • fann_get_cascade_min_cand_epochs — Returns the minimum candidate epochs
  • fann_get_cascade_min_out_epochs — Returns the minimum out epochs
  • fann_get_cascade_num_candidate_groups — Returns the number of candidate groups
  • fann_get_cascade_num_candidates — Returns the number of candidates used during training
  • fann_get_cascade_output_change_fraction — Returns the cascade output change fraction
  • fann_get_cascade_output_stagnation_epochs — Returns the number of cascade output stagnation epochs
  • fann_get_cascade_weight_multiplier — Returns the weight multiplier
  • fann_get_connection_array — Get connections in the network
  • fann_get_connection_rate — Get the connection rate used when the network was created
  • fann_get_errno — Returns the last error number
  • fann_get_errstr — Returns the last errstr
  • fann_get_layer_array — Get the number of neurons in each layer in the network
  • fann_get_learning_momentum — Returns the learning momentum
  • fann_get_learning_rate — Returns the learning rate
  • fann_get_MSE — Reads the mean square error from the network
  • fann_get_network_type — Get the type of neural network it was created as
  • fann_get_num_input — Get the number of input neurons
  • fann_get_num_layers — Get the number of layers in the neural network
  • fann_get_num_output — Get the number of output neurons
  • fann_get_quickprop_decay — Returns the decay which is a factor that weights should decrease in each iteration during quickprop training
  • fann_get_quickprop_mu — Returns the mu factor
  • fann_get_rprop_decrease_factor — Returns the increase factor used during RPROP training
  • fann_get_rprop_delta_max — Returns the maximum step-size
  • fann_get_rprop_delta_min — Returns the minimum step-size
  • fann_get_rprop_delta_zero — Returns the initial step-size
  • fann_get_rprop_increase_factor — Returns the increase factor used during RPROP training
  • fann_get_sarprop_step_error_shift — Returns the sarprop step error shift
  • fann_get_sarprop_step_error_threshold_factor — Returns the sarprop step error threshold factor
  • fann_get_sarprop_temperature — Returns the sarprop temperature
  • fann_get_sarprop_weight_decay_shift — Returns the sarprop weight decay shift
  • fann_get_total_connections — Get the total number of connections in the entire network
  • fann_get_total_neurons — Get the total number of neurons in the entire network
  • fann_get_train_error_function — Returns the error function used during training
  • fann_get_train_stop_function — Returns the stop function used during training
  • fann_get_training_algorithm — Returns the training algorithm
  • fann_init_weights — Initialize the weights using Widrow + Nguyen’s algorithm
  • fann_length_train_data — Returns the number of training patterns in the train data
  • fann_merge_train_data — Merges the train data
  • fann_num_input_train_data — Returns the number of inputs in each of the training patterns in the train data
  • fann_num_output_train_data — Returns the number of outputs in each of the training patterns in the train data
  • fann_print_error — Prints the error string
  • fann_randomize_weights — Give each connection a random weight between min_weight and max_weight
  • fann_read_train_from_file — Reads a file that stores training data
  • fann_reset_errno — Resets the last error number
  • fann_reset_errstr — Resets the last error string
  • fann_reset_MSE — Resets the mean square error from the network
  • fann_run — Will run input through the neural network
  • fann_save_train — Save the training structure to a file
  • fann_save — Saves the entire network to a configuration file
  • fann_scale_input_train_data — Scales the inputs in the training data to the specified range
  • fann_scale_input — Scale data in input vector before feed it to ann based on previously calculated parameters
  • fann_scale_output_train_data — Scales the outputs in the training data to the specified range
  • fann_scale_output — Scale data in output vector before feed it to ann based on previously calculated parameters
  • fann_scale_train_data — Scales the inputs and outputs in the training data to the specified range
  • fann_scale_train — Scale input and output data based on previously calculated parameters
  • fann_set_activation_function_hidden — Sets the activation function for all of the hidden layers
  • fann_set_activation_function_layer — Sets the activation function for all the neurons in the supplied layer
  • fann_set_activation_function_output — Sets the activation function for the output layer
  • fann_set_activation_function — Sets the activation function for supplied neuron and layer
  • fann_set_activation_steepness_hidden — Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_set_activation_steepness_layer — Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_output — Sets the steepness of the activation steepness in the output layer
  • fann_set_activation_steepness — Sets the activation steepness for supplied neuron and layer number
  • fann_set_bit_fail_limit — Set the bit fail limit used during training
  • fann_set_callback — Sets the callback function for use during training
  • fann_set_cascade_activation_functions — Sets the array of cascade candidate activation functions
  • fann_set_cascade_activation_steepnesses — Sets the array of cascade candidate activation steepnesses
  • fann_set_cascade_candidate_change_fraction — Sets the cascade candidate change fraction
  • fann_set_cascade_candidate_limit — Sets the candidate limit
  • fann_set_cascade_candidate_stagnation_epochs — Sets the number of cascade candidate stagnation epochs
  • fann_set_cascade_max_cand_epochs — Sets the max candidate epochs
  • fann_set_cascade_max_out_epochs — Sets the maximum out epochs
  • fann_set_cascade_min_cand_epochs — Sets the min candidate epochs
  • fann_set_cascade_min_out_epochs — Sets the minimum out epochs
  • fann_set_cascade_num_candidate_groups — Sets the number of candidate groups
  • fann_set_cascade_output_change_fraction — Sets the cascade output change fraction
  • fann_set_cascade_output_stagnation_epochs — Sets the number of cascade output stagnation epochs
  • fann_set_cascade_weight_multiplier — Sets the weight multiplier
  • fann_set_error_log — Sets where the errors are logged to
  • fann_set_input_scaling_params — Calculate input scaling parameters for future use based on training data
  • fann_set_learning_momentum — Sets the learning momentum
  • fann_set_learning_rate — Sets the learning rate
  • fann_set_output_scaling_params — Calculate output scaling parameters for future use based on training data
  • fann_set_quickprop_decay — Sets the quickprop decay factor
  • fann_set_quickprop_mu — Sets the quickprop mu factor
  • fann_set_rprop_decrease_factor — Sets the decrease factor used during RPROP training
  • fann_set_rprop_delta_max — Sets the maximum step-size
  • fann_set_rprop_delta_min — Sets the minimum step-size
  • fann_set_rprop_delta_zero — Sets the initial step-size
  • fann_set_rprop_increase_factor — Sets the increase factor used during RPROP training
  • fann_set_sarprop_step_error_shift — Sets the sarprop step error shift
  • fann_set_sarprop_step_error_threshold_factor — Sets the sarprop step error threshold factor
  • fann_set_sarprop_temperature — Sets the sarprop temperature
  • fann_set_sarprop_weight_decay_shift — Sets the sarprop weight decay shift
  • fann_set_scaling_params — Calculate input and output scaling parameters for future use based on training data
  • fann_set_train_error_function — Sets the error function used during training
  • fann_set_train_stop_function — Sets the stop function used during training
  • fann_set_training_algorithm — Sets the training algorithm
  • fann_set_weight_array — Создание связей в сети
  • fann_set_weight — Создание связи в сети
  • fann_shuffle_train_data — Перемешивает обучающие данные в случайном порядке
  • fann_subset_train_data — Получить копию подмножества из обучающих данных
  • fann_test_data — Тестирование набора обучающих данных и вычисление MSE для него
  • fann_test — Тестирование с набором входных данных и желаемым результатом
  • fann_train_epoch — Обучение в течение одной эпохи
  • fann_train_on_data — Обучение на всем объеме данных на временном интервале
  • fann_train_on_file — Обучение на полном наборе данных, прочитанном из файла, на временном интервале
  • fann_train — Провести одну итерацию обучения с набором входных данных и желаемым результатом


Обучение на всем наборе данных в течение определенного периода времени с помощью алгоритма Cascade2

  • « Функции Fann
  • fann_cascadetrain_on_file »
  • PHP Manual
  • Функции Fann
  • Обучение на всем наборе данных в течение определенного периода времени с помощью алгоритма Cascade2

fann_cascadetrain_on_data

(PECL fann >= 1.0.0)

fann_cascadetrain_on_data — Обучение на всем наборе данных в течение определенного периода времени с помощью алгоритма Cascade2

Описание

fann_cascadetrain_on_data ( resource $ann , resource $data , int $max_neurons , int $neurons_between_reports , float $desired_error ) : bool

Фракция каскадного вывода является числом от 0 до 1 и определяет, насколько сильно должно измениться значение fann_get_MSE() в fann_get_cascade_output_stagnation_epochs() во время обучения выходных соединений, для того, чтобы обучение не стагнировало. Если обучение стагнировало, то обучение выходных соединений будет завершено и будут подготовлены новые кандидаты.

Это обучение использует параметры, установленные fann_set_cascade_..., но также оно использует другой обучающий алгоритм в качестве внутреннего обучающего алгоритма. Этот алгоритм может быть задан как FANN_TRAIN_RPROP или FANN_TRAIN_QUICKPROP с помощью fann_set_training_algorithm(), и параметры, заданные для этих обучающих алгоритмов, также будут учитываться в каскадном обучении.

Список параметров

ann

Ресурс (resource) нейронной сети.

data

Ресурс (resource) обучающих данных нейронной сети.

max_neurons

Максимальное количество нейронов для добавления в сеть.

neurons_between_reports

Печать отчета о статусе будет происходить через заданное в этом параметре число нейронов. Если задан ноль, то печать происходить не будет.

desired_error

Желаемая fann_get_MSE() или fann_get_bit_fail(), в зависимости от выбранной с помощью fann_set_train_stop_function() остановочной функции.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_train_on_data() - Обучение на всем объеме данных на временном интервале
  • fann_cascadetrain_on_file() - Обучение на данных прочтенных из файла с помощью алгоритма Cascade2


Обучение на данных прочтенных из файла с помощью алгоритма Cascade2

  • « fann_cascadetrain_on_data
  • fann_clear_scaling_params »
  • PHP Manual
  • Функции Fann
  • Обучение на данных прочтенных из файла с помощью алгоритма Cascade2

fann_cascadetrain_on_file

(PECL fann >= 1.0.0)

fann_cascadetrain_on_file — Обучение на данных прочтенных из файла с помощью алгоритма Cascade2

Описание

fann_cascadetrain_on_file ( resource $ann , string $filename , int $max_neurons , int $neurons_between_reports , float $desired_error ) : bool

Делает то же, что и fann_cascadetrain_on_data(), но читает данные напрямую из файла.

Список параметров

ann

Ресурс (resource) нейронной сети.

filename

Файл с данными.

max_neurons

Максимальное количество нейронов в сети.

neurons_between_reports

Количество нейронов между выводом отчетов о состоянии. Если задать 0, то отчеты печататься не будут.

desired_error

Выбранные fann_get_MSE() или fann_get_bit_fail(), в зависимости от выбранной с помощью fann_set_train_stop_function() функции остановки.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_train_on_data() - Обучение на всем объеме данных на временном интервале
  • fann_cascadetrain_on_data() - Обучение на всем наборе данных в течение определенного периода времени с помощью алгоритма Cascade2


Очистка параметров масштабирования

  • « fann_cascadetrain_on_file
  • fann_copy »
  • PHP Manual
  • Функции Fann
  • Очистка параметров масштабирования

fann_clear_scaling_params

(PECL fann >= 1.0.0)

fann_clear_scaling_params — Очистка параметров масштабирования

Описание

fann_clear_scaling_params ( resource $ann ) : bool

Очистка параметров масштабирования.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.


Создает копию структуры fann

  • « fann_clear_scaling_params
  • fann_create_from_file »
  • PHP Manual
  • Функции Fann
  • Создает копию структуры fann

fann_copy

(PECL fann >= 1.0.0)

fann_copy — Создает копию структуры fann

Описание

fann_copy ( resource $ann ) : resource

Создает копию структуры fann.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

В случае успешного выполнения возвращает копию ресурса нейронной цепи, или FALSE в случае ошибки.

Смотрите также

  • fann_test() - Тестирование с набором входных данных и желаемым результатом


Создает нейронную сеть с обратным распространением ошибки из конфигурационного файла

  • « fann_copy
  • fann_create_shortcut_array »
  • PHP Manual
  • Функции Fann
  • Создает нейронную сеть с обратным распространением ошибки из конфигурационного файла

fann_create_from_file

(PECL fann >= 1.0.0)

fann_create_from_file — Создает нейронную сеть с обратным распространением ошибки из конфигурационного файла

Описание

fann_create_from_file ( string $configuration_file ) : resource

Создает нейронную сеть с обратным распространением ошибки из конфигурационного файла, созданного ранее с помощью fann_save().

Список параметров

configuration_file

Конфигурационный файл.

Возвращаемые значения

Возвращает ресурс (resource) нейронной сети в случае успешного выполнения, или FALSE в случае ошибки.

Смотрите также

  • fann_save() - Saves the entire network to a configuration file


Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

  • « fann_create_from_file
  • fann_create_shortcut »
  • PHP Manual
  • Функции Fann
  • Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

fann_create_shortcut_array

(PECL fann >= 1.0.0)

fann_create_shortcut_array — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

Описание

fann_create_shortcut_array ( int $num_layers , array $layers ) : resource

Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections using an array of layers sizes.

Список параметров

num_layers

The total number of layers including the input and the output layer.

layers

An array of layers sizes.

Возвращаемые значения

Returns a neural network resource on success, or FALSE on error.

Смотрите также

  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network


Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

  • « fann_create_shortcut_array
  • fann_create_sparse_array »
  • PHP Manual
  • Функции Fann
  • Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

fann_create_shortcut

(PECL fann >= 1.0.0)

fann_create_shortcut — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

Описание

fann_create_shortcut ( int $num_layers , int $num_neurons1 , int $num_neurons2 [, int $... ] ) : resource

Creates a standard backpropagation neural network, which is not fully connected and which also has shortcut connections.

Shortcut connections are connections that skip layers. A fully connected network with shortcut connections, is a network where all neurons are connected to all neurons in later layers. Including direct connections from the input layer to the output layer.

Список параметров

num_layers

The total number of layers including the input and the output layer.

num_neurons1

Number of neurons in the first layer.

num_neurons2

Number of neurons in the second layer.

...

Number of neurons in other layers.

Возвращаемые значения

Returns a neural network resource on success, or FALSE on error.

Смотрите также

  • fann_create_shortcut_array() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network


Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes

  • « fann_create_shortcut
  • fann_create_sparse »
  • PHP Manual
  • Функции Fann
  • Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes

fann_create_sparse_array

(PECL fann >= 1.0.0)

fann_create_sparse_array — Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes

Описание

fann_create_sparse_array ( float $connection_rate , int $num_layers , array $layers ) : resource

Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes.

Список параметров

connection_rate

The connection rate controls how many connections there will be in the network. If the connection rate is set to 1, the network will be fully connected, but if it is set to 0.5 only half of the connections will be set. A connection rate of 1 will yield the same result as fann_create_standard().

num_layers

The total number of layers including the input and the output layer.

layers

An array of layer sizes.

Возвращаемые значения

Returns a neural network resource on success, or FALSE on error.

Смотрите также

  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates a standard backpropagation neural network, which is not fully connected

  • « fann_create_sparse_array
  • fann_create_standard_array »
  • PHP Manual
  • Функции Fann
  • Creates a standard backpropagation neural network, which is not fully connected

fann_create_sparse

(PECL fann >= 1.0.0)

fann_create_sparse — Creates a standard backpropagation neural network, which is not fully connected

Описание

fann_create_sparse ( float $connection_rate , int $num_layers , int $num_neurons1 , int $num_neurons2 [, int $... ] ) : resource

Creates a standard backpropagation neural network, which is not fully connected.

Список параметров

connection_rate

The connection rate controls how many connections there will be in the network. If the connection rate is set to 1, the network will be fully connected, but if it is set to 0.5 only half of the connections will be set. A connection rate of 1 will yield the same result as fann_create_standard().

num_layers

The total number of layers including the input and the output layer.

num_neurons1

Number of neurons in the first layer.

num_neurons2

Number of neurons in the second layer.

...

Number of neurons in other layers.

Возвращаемые значения

Returns a neural network resource on success, or FALSE on error.

Смотрите также

  • fann_create_sparse_array() - Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates a standard fully connected backpropagation neural network using an array of layer sizes

  • « fann_create_sparse
  • fann_create_standard »
  • PHP Manual
  • Функции Fann
  • Creates a standard fully connected backpropagation neural network using an array of layer sizes

fann_create_standard_array

(PECL fann >= 1.0.0)

fann_create_standard_array — Creates a standard fully connected backpropagation neural network using an array of layer sizes

Описание

fann_create_standard_array ( int $num_layers , array $layers ) : resource

Creates a standard fully connected backpropagation neural network.

There will be a bias neuron in each layer (except the output layer), and this bias neuron will be connected to all neurons in the next layer. When running the network, the bias nodes always emits 1.

To destroy a neural network use the fann_destroy() function.

Список параметров

num_layers

The total number of layers including the input and the output layer.

layers

An array of layer sizes.

Возвращаемые значения

Returns a neural network resource on success, or FALSE on error.

Смотрите также

  • fann_create_standard() - Creates a standard fully connected backpropagation neural network
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates a standard fully connected backpropagation neural network

  • « fann_create_standard_array
  • fann_create_train_from_callback »
  • PHP Manual
  • Функции Fann
  • Creates a standard fully connected backpropagation neural network

fann_create_standard

(PECL fann >= 1.0.0)

fann_create_standard — Creates a standard fully connected backpropagation neural network

Описание

fann_create_standard ( int $num_layers , int $num_neurons1 , int $num_neurons2 [, int $... ] ) : resource

Creates a standard fully connected backpropagation neural network.

There will be a bias neuron in each layer (except the output layer), and this bias neuron will be connected to all neurons in the next layer. When running the network, the bias nodes always emits 1.

To destroy a neural network use the fann_destroy() function.

Список параметров

num_layers

The total number of layers including the input and the output layer.

num_neurons1

Number of neurons in the first layer.

num_neurons2

Number of neurons in the second layer.

...

Number of neurons in other layers.

Возвращаемые значения

Returns a neural network resource on success, or FALSE on error.

Смотрите также

  • fann_create_standard_array() - Creates a standard fully connected backpropagation neural network using an array of layer sizes
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates the training data struct from a user supplied function

  • « fann_create_standard
  • fann_create_train »
  • PHP Manual
  • Функции Fann
  • Creates the training data struct from a user supplied function

fann_create_train_from_callback

(PECL fann >= 1.0.0)

fann_create_train_from_callback — Creates the training data struct from a user supplied function

Описание

fann_create_train_from_callback ( int $num_data , int $num_input , int $num_output , callable $user_function ) : resource

Creates the training data struct from a user supplied function. As the training data are numerable (data 1, data 2...), the user must write a function that receives the number of the training data set (input, output) and returns the set.

Список параметров

num_data

The number of training data

num_input

The number of inputs per training data

num_output

The number of ouputs per training data

user_function

The user supplied function with following parameters:

  • num - The number of the training data set
  • num_input - The number of inputs per training data
  • num_output - The number of ouputs per training data

The function should return an associative array with keys input and output and two array values of input and output.

Возвращаемые значения

Возвращает ресурс (resource) обучающих данных, или FALSE в случае ошибки.

Примеры

Пример #1 fann_create_train_from_callback() example

<?php
function create_train_callback($num_data, $num_input, $num_output) {
    return array(
        "input" => array_fill(0, $num_input, 1),
        "output" => array_fill(0, $num_output, 1),
    );
}

$num_data = 3;
$num_input = 2;
$num_output = 1;
$train_data = fann_create_train_from_callback($num_data, $num_input, $num_output, "create_train_callback");
if ($train_data) {
    // Do something with $train_data
}
?>

Смотрите также

  • fann_read_train_from_file() - Reads a file that stores training data
  • fann_train_on_data() - Обучение на всем объеме данных на временном интервале
  • fann_destroy_train() - Destructs the training data
  • fann_save_train() - Save the training structure to a file


Creates an empty training data struct

  • « fann_create_train_from_callback
  • fann_descale_input »
  • PHP Manual
  • Функции Fann
  • Creates an empty training data struct

fann_create_train

(PECL fann >= 1.0.0)

fann_create_train — Creates an empty training data struct

Описание

fann_create_train ( int $num_data , int $num_input , int $num_output ) : resource

Creates an empty training data struct.

Список параметров

num_data

The number of training data

num_input

The number of inputs per training data

num_output

The number of ouputs per training data

Возвращаемые значения

Возвращает ресурс (resource) обучающих данных, или FALSE в случае ошибки.

Смотрите также

  • fann_read_train_from_file() - Reads a file that stores training data
  • fann_train_on_data() - Обучение на всем объеме данных на временном интервале
  • fann_destroy_train() - Destructs the training data
  • fann_save_train() - Save the training structure to a file


Scale data in input vector after get it from ann based on previously calculated parameters

  • « fann_create_train
  • fann_descale_output »
  • PHP Manual
  • Функции Fann
  • Scale data in input vector after get it from ann based on previously calculated parameters

fann_descale_input

(PECL fann >= 1.0.0)

fann_descale_input — Scale data in input vector after get it from ann based on previously calculated parameters

Описание

fann_descale_input ( resource $ann , array $input_vector ) : bool

Scale data in input vector after get it from ann based on previously calculated parameters.

Список параметров

ann

Ресурс (resource) нейронной сети.

input_vector

Input vector that will be descaled

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_scale_input() - Scale data in input vector before feed it to ann based on previously calculated parameters
  • fann_descale_output() - Scale data in output vector after get it from ann based on previously calculated parameters


Scale data in output vector after get it from ann based on previously calculated parameters

  • « fann_descale_input
  • fann_descale_train »
  • PHP Manual
  • Функции Fann
  • Scale data in output vector after get it from ann based on previously calculated parameters

fann_descale_output

(PECL fann >= 1.0.0)

fann_descale_output — Scale data in output vector after get it from ann based on previously calculated parameters

Описание

fann_descale_output ( resource $ann , array $output_vector ) : bool

Scale data in output vector after get it from ann based on previously calculated parameters.

Список параметров

ann

Ресурс (resource) нейронной сети.

output_vector

Output vector that will be descaled

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_scale_output() - Scale data in output vector before feed it to ann based on previously calculated parameters
  • fann_descale_input() - Scale data in input vector after get it from ann based on previously calculated parameters


Descale input and output data based on previously calculated parameters

  • « fann_descale_output
  • fann_destroy_train »
  • PHP Manual
  • Функции Fann
  • Descale input and output data based on previously calculated parameters

fann_descale_train

(PECL fann >= 1.0.0)

fann_descale_train — Descale input and output data based on previously calculated parameters

Описание

fann_descale_train ( resource $ann , resource $train_data ) : bool

Descale input and output data based on previously calculated parameters.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_scale_train() - Scale input and output data based on previously calculated parameters
  • fann_set_scaling_params() - Calculate input and output scaling parameters for future use based on training data


Destructs the training data

  • « fann_descale_train
  • fann_destroy »
  • PHP Manual
  • Функции Fann
  • Destructs the training data

fann_destroy_train

(PECL fann >= 1.0.0)

fann_destroy_train — Destructs the training data

Описание

fann_destroy_train ( resource $train_data ) : bool

Destructs the training data

Список параметров

train_data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.


Destroys the entire network and properly freeing all the associated memory

  • « fann_destroy_train
  • fann_duplicate_train_data »
  • PHP Manual
  • Функции Fann
  • Destroys the entire network and properly freeing all the associated memory

fann_destroy

(PECL fann >= 1.0.0)

fann_destroy — Destroys the entire network and properly freeing all the associated memory

Описание

fann_destroy ( resource $ann ) : bool

Destroys the entire network and properly freeing all the associated memory.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.


Returns an exact copy of a fann train data

  • « fann_destroy
  • fann_get_activation_function »
  • PHP Manual
  • Функции Fann
  • Returns an exact copy of a fann train data

fann_duplicate_train_data

(PECL fann >= 1.0.0)

fann_duplicate_train_data — Returns an exact copy of a fann train data

Описание

fann_duplicate_train_data ( resource $data ) : resource

Returns an exact copy of a fann train data resource.

Список параметров

data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Возвращает ресурс (resource) обучающих данных, или FALSE в случае ошибки.


Returns the activation function

  • « fann_duplicate_train_data
  • fann_get_activation_steepness »
  • PHP Manual
  • Функции Fann
  • Returns the activation function

fann_get_activation_function

(PECL fann >= 1.0.0)

fann_get_activation_function — Returns the activation function

Описание

fann_get_activation_function ( resource $ann , int $layer , int $neuron ) : int

Get the activation function for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to get activation functions for the neurons in the input layer.

The return value is one of the activation functions constants.

Список параметров

ann

Ресурс (resource) нейронной сети.

layer

Layer number.

neuron

Neuron number.

Возвращаемые значения

Learning functions constant or -1 if the neuron is not defined in the neural network, or FALSE on error.

Смотрите также

  • fann_set_activation_function_layer() - Sets the activation function for all the neurons in the supplied layer
  • fann_set_activation_function_hidden() - Sets the activation function for all of the hidden layers
  • fann_set_activation_function_output() - Sets the activation function for the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Returns the activation steepness for supplied neuron and layer number

  • « fann_get_activation_function
  • fann_get_bias_array »
  • PHP Manual
  • Функции Fann
  • Returns the activation steepness for supplied neuron and layer number

fann_get_activation_steepness

(PECL fann >= 1.0.0)

fann_get_activation_steepness — Returns the activation steepness for supplied neuron and layer number

Описание

fann_get_activation_steepness ( resource $ann , int $layer , int $neuron ) : float

Get the activation steepness for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to get activation steepness for the neurons in the input layer.

The steepness of an activation function says something about how fast the activation function goes from the minimum to the maximum. A high value for the activation function will also give a more agressive training.

When training neural networks where the output values should be at the extremes (usually 0 and 1, depending on the activation function), a steep activation function can be used (e.g. 1.0).

The default activation steepness is 0.5.

Список параметров

ann

Ресурс (resource) нейронной сети.

layer

Layer number

neuron

Neuron number

Возвращаемые значения

The activation steepness for the neuron or -1 if the neuron is not defined in the neural network, or FALSE on error.

Смотрите также

  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer
  • fann_set_activation_steepness_layer() - Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_hidden() - Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_set_activation_steepness_output() - Sets the steepness of the activation steepness in the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number


Get the number of bias in each layer in the network

  • « fann_get_activation_steepness
  • fann_get_bit_fail_limit »
  • PHP Manual
  • Функции Fann
  • Get the number of bias in each layer in the network

fann_get_bias_array

(PECL fann >= 1.0.0)

fann_get_bias_array — Get the number of bias in each layer in the network

Описание

fann_get_bias_array ( resource $ann ) : array

Get the number of bias in each layer in the network.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

An array of numbers of bias in each layer


Returns the bit fail limit used during training

  • « fann_get_bias_array
  • fann_get_bit_fail »
  • PHP Manual
  • Функции Fann
  • Returns the bit fail limit used during training

fann_get_bit_fail_limit

(PECL fann >= 1.0.0)

fann_get_bit_fail_limit — Returns the bit fail limit used during training

Описание

fann_get_bit_fail_limit ( resource $ann ) : float

Returns the bit fail limit used during training.

The bit fail limit is used during training where the stop function is set to FANN_STOPFUNC_BIT.

The limit is the maximum accepted difference between the desired output and the actual output during training. Each output that diverges more than this limit is counted as an error bit. This difference is divided by two when dealing with symmetric activation functions, so that symmetric and not symmetric activation functions can use the same limit.

The default bit fail limit is 0.35.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The bit fail limit, or FALSE on error.

Смотрите также

  • fann_set_bit_fail_limit() - Set the bit fail limit used during training


The number of fail bits

  • « fann_get_bit_fail_limit
  • fann_get_cascade_activation_functions_count »
  • PHP Manual
  • Функции Fann
  • The number of fail bits

fann_get_bit_fail

(PECL fann >= 1.0.0)

fann_get_bit_fail — The number of fail bits

Описание

fann_get_bit_fail ( resource $ann ) : int

The number of fail bits; means the number of output neurons which differ more than the bit fail limit (see fann_get_bit_fail_limit(), fann_set_bit_fail_limit()). The bits are counted in all of the training data, so this number can be higher than the number of training data.

This value is reset by fann_reset_MSE() and updated by all the same functions which also updates the MSE value (e.g. fann_test_data(), fann_train_epoch())

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The number of bits fail, or FALSE on error.

Смотрите также

  • fann_get_MSE() - Reads the mean square error from the network
  • fann_reset_MSE() - Resets the mean square error from the network
  • fann_test_data() - Тестирование набора обучающих данных и вычисление MSE для него
  • fann_train_epoch() - Обучение в течение одной эпохи
  • fann_get_bit_fail_limit() - Returns the bit fail limit used during training
  • fann_set_bit_fail_limit() - Set the bit fail limit used during training


Returns the number of cascade activation functions

  • « fann_get_bit_fail
  • fann_get_cascade_activation_functions »
  • PHP Manual
  • Функции Fann
  • Returns the number of cascade activation functions

fann_get_cascade_activation_functions_count

(PECL fann >= 1.0.0)

fann_get_cascade_activation_functions_count — Returns the number of cascade activation functions

Описание

fann_get_cascade_activation_functions_count ( resource $ann ) : int

The number of activation functions in the fann_get_cascade_activation_functions() array.

The default number of activation functions is 6.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The number of cascade activation functions, or FALSE on error.

Смотрите также

  • fann_get_cascade_activation_functions() - Returns the cascade activation functions
  • fann_set_cascade_activation_functions() - Sets the array of cascade candidate activation functions


Returns the cascade activation functions

  • « fann_get_cascade_activation_functions_count
  • fann_get_cascade_activation_steepnesses_count »
  • PHP Manual
  • Функции Fann
  • Returns the cascade activation functions

fann_get_cascade_activation_functions

(PECL fann >= 1.0.0)

fann_get_cascade_activation_functions — Returns the cascade activation functions

Описание

fann_get_cascade_activation_functions ( resource $ann ) : array

The cascade activation functions array is an array of the different activation functions used by the candidates

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

The default activation functions are FANN_SIGMOID, FANN_SIGMOID_SYMMETRIC, FANN_GAUSSIAN, FANN_GAUSSIAN_SYMMETRIC, FANN_ELLIOT, FANN_ELLIOT_SYMMETRIC.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The cascade activation functions, or FALSE on error.

Смотрите также

  • fann_get_cascade_activation_functions_count() - Returns the number of cascade activation functions
  • fann_set_cascade_activation_functions() - Sets the array of cascade candidate activation functions


The number of activation steepnesses

  • « fann_get_cascade_activation_functions
  • fann_get_cascade_activation_steepnesses »
  • PHP Manual
  • Функции Fann
  • The number of activation steepnesses

fann_get_cascade_activation_steepnesses_count

(PECL fann >= 1.0.0)

fann_get_cascade_activation_steepnesses_count — The number of activation steepnesses

Описание

fann_get_cascade_activation_steepnesses_count ( resource $ann ) : int

The number of activation steepnesses in the fann_get_cascade_activation_functions() array.

The default number of activation steepnesses is 4.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The number of activation steepnesses, or FALSE on error.

Смотрите также

  • fann_get_cascade_activation_steepnesses() - Returns the cascade activation steepnesses
  • fann_set_cascade_activation_functions() - Sets the array of cascade candidate activation functions


Returns the cascade activation steepnesses

  • « fann_get_cascade_activation_steepnesses_count
  • fann_get_cascade_candidate_change_fraction »
  • PHP Manual
  • Функции Fann
  • Returns the cascade activation steepnesses

fann_get_cascade_activation_steepnesses

(PECL fann >= 1.0.0)

fann_get_cascade_activation_steepnesses — Returns the cascade activation steepnesses

Описание

fann_get_cascade_activation_steepnesses ( resource $ann ) : array

The cascade activation steepnesses array is an array of the different activation functions used by the candidates.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

The default activation steepnesses are {0.25, 0.50, 0.75, 1.00}.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The cascade activation steepnesses, or FALSE on error.

Смотрите также

  • fann_get_cascade_activation_steepnesses_count() - The number of activation steepnesses
  • fann_set_cascade_activation_steepnesses() - Sets the array of cascade candidate activation steepnesses


Returns the cascade candidate change fraction

  • « fann_get_cascade_activation_steepnesses
  • fann_get_cascade_candidate_limit »
  • PHP Manual
  • Функции Fann
  • Returns the cascade candidate change fraction

fann_get_cascade_candidate_change_fraction

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_change_fraction — Returns the cascade candidate change fraction

Описание

fann_get_cascade_candidate_change_fraction ( resource $ann ) : float

The cascade candidate change fraction is a number between 0 and 1 determining how large a fraction the fann_get_MSE() value should change within fann_get_cascade_candidate_stagnation_epochs() during training of the candidate neurons, in order for the training not to stagnate. If the training stagnates, the training of the candidate neurons will be ended and the best candidate will be selected.

It means that if the MSE does not change by a fraction of fann_get_cascade_candidate_change_fraction() during a period of fann_get_cascade_candidate_stagnation_epochs(), the training of the candidate neurons is stopped because the training has stagnated.

If the cascade candidate change fraction is low, the candidate neurons will be trained more and if the fraction is high they will be trained less.

The default cascade candidate change fraction is 0.01, which is equalent to a 1% change in MSE.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The cascade candidate change fraction, or FALSE on error.

Смотрите также

  • fann_set_cascade_candidate_change_fraction() - Sets the cascade candidate change fraction
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_get_cascade_candidate_stagnation_epochs() - Returns the number of cascade candidate stagnation epochs


Return the candidate limit

  • « fann_get_cascade_candidate_change_fraction
  • fann_get_cascade_candidate_stagnation_epochs »
  • PHP Manual
  • Функции Fann
  • Return the candidate limit

fann_get_cascade_candidate_limit

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_limit — Return the candidate limit

Описание

fann_get_cascade_candidate_limit ( resource $ann ) : float

The candidate limit is a limit for how much the candidate neuron may be trained. The limit is a limit on the proportion between the MSE and candidate score.

Set this to a lower value to avoid overfitting and to a higher if overfitting is not a problem.

The default candidate limit is 1000.0.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The candidate limit, or FALSE on error.

Смотрите также

  • fann_set_cascade_candidate_limit() - Sets the candidate limit


Returns the number of cascade candidate stagnation epochs

  • « fann_get_cascade_candidate_limit
  • fann_get_cascade_max_cand_epochs »
  • PHP Manual
  • Функции Fann
  • Returns the number of cascade candidate stagnation epochs

fann_get_cascade_candidate_stagnation_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_stagnation_epochs — Returns the number of cascade candidate stagnation epochs

Описание

fann_get_cascade_candidate_stagnation_epochs ( resource $ann ) : int

The number of cascade candidate stagnation epochs determines the number of epochs training is allowed to continue without changing the MSE by a fraction of fann_get_cascade_candidate_change_fraction().

See more info about this parameter in fann_get_cascade_candidate_change_fraction().

The default number of cascade candidate stagnation epochs is 12.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The number of cascade candidate stagnation epochs, or FALSE on error.

Смотрите также

  • fann_set_cascade_candidate_stagnation_epochs() - Sets the number of cascade candidate stagnation epochs
  • fann_get_cascade_candidate_change_fraction() - Returns the cascade candidate change fraction


Returns the maximum candidate epochs

  • « fann_get_cascade_candidate_stagnation_epochs
  • fann_get_cascade_max_out_epochs »
  • PHP Manual
  • Функции Fann
  • Returns the maximum candidate epochs

fann_get_cascade_max_cand_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_max_cand_epochs — Returns the maximum candidate epochs

Описание

fann_get_cascade_max_cand_epochs ( resource $ann ) : int

The maximum candidate epochs determines the maximum number of epochs the input connections to the candidates may be trained before adding a new candidate neuron.

The default max candidate epochs is 150.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The maximum candidate epochs, or FALSE on error.

Смотрите также

  • fann_set_cascade_max_cand_epochs() - Sets the max candidate epochs


Returns the maximum out epochs

  • « fann_get_cascade_max_cand_epochs
  • fann_get_cascade_min_cand_epochs »
  • PHP Manual
  • Функции Fann
  • Returns the maximum out epochs

fann_get_cascade_max_out_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_max_out_epochs — Returns the maximum out epochs

Описание

fann_get_cascade_max_out_epochs ( resource $ann ) : int

The maximum out epochs determines the maximum number of epochs the output connections may be trained after adding a new candidate neuron.

The default max out epochs is 150.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The maximum out epochs, or FALSE on error.

Смотрите также

  • fann_set_cascade_max_out_epochs() - Sets the maximum out epochs


Returns the minimum candidate epochs

  • « fann_get_cascade_max_out_epochs
  • fann_get_cascade_min_out_epochs »
  • PHP Manual
  • Функции Fann
  • Returns the minimum candidate epochs

fann_get_cascade_min_cand_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_min_cand_epochs — Returns the minimum candidate epochs

Описание

fann_get_cascade_min_cand_epochs ( resource $ann ) : int

The minimum candidate epochs determines the minimum number of epochs the input connections to the candidates may be trained before adding a new candidate neuron.

The default min candidate epochs is 50.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The minimum candidate epochs, or FALSE on error.

Смотрите также

  • fann_set_cascade_min_cand_epochs() - Sets the min candidate epochs


Returns the minimum out epochs

  • « fann_get_cascade_min_cand_epochs
  • fann_get_cascade_num_candidate_groups »
  • PHP Manual
  • Функции Fann
  • Returns the minimum out epochs

fann_get_cascade_min_out_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_min_out_epochs — Returns the minimum out epochs

Описание

fann_get_cascade_min_out_epochs ( resource $ann ) : int

The minimum out epochs determines the minimum number of epochs the output connections must be trained after adding a new candidate neuron.

The default min out epochs is 50.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The minimum out epochs, or FALSE on error.

Смотрите также

  • fann_set_cascade_min_out_epochs() - Sets the minimum out epochs


Returns the number of candidate groups

  • « fann_get_cascade_min_out_epochs
  • fann_get_cascade_num_candidates »
  • PHP Manual
  • Функции Fann
  • Returns the number of candidate groups

fann_get_cascade_num_candidate_groups

(PECL fann >= 1.0.0)

fann_get_cascade_num_candidate_groups — Returns the number of candidate groups

Описание

fann_get_cascade_num_candidate_groups ( resource $ann ) : int

The number of candidate groups is the number of groups of identical candidates which will be used during training.

This number can be used to have more candidates without having to define new parameters for the candidates.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this parameter.

The default number of candidate groups is 2.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The number of candidate groups, or FALSE on error.

Смотрите также

  • fann_set_cascade_num_candidate_groups() - Sets the number of candidate groups


Returns the number of candidates used during training

  • « fann_get_cascade_num_candidate_groups
  • fann_get_cascade_output_change_fraction »
  • PHP Manual
  • Функции Fann
  • Returns the number of candidates used during training

fann_get_cascade_num_candidates

(PECL fann >= 1.0.0)

fann_get_cascade_num_candidates — Returns the number of candidates used during training

Описание

fann_get_cascade_num_candidates ( resource $ann ) : int

The number of candidates used during training (calculated by multiplying
fann_get_cascade_activation_functions_count(),
fann_get_cascade_activation_steepnesses_count() and
fann_get_cascade_num_candidate_groups()).

The actual candidates is defined by the fann_get_cascade_activation_functions() and fann_get_cascade_activation_steepnesses() arrays. These arrays define the activation functions and activation steepnesses used for the candidate neurons. If there are 2 activation functions in the activation function array and 3 steepnesses in the steepness array, then there will be 2x3=6 different candidates which will be trained. These 6 different candidates can be copied into several candidate groups, where the only difference between these groups is the initial weights. If the number of groups is set to 2, then the number of candidate neurons will be 2x3x2=12. The number of candidate groups is defined by fann_set_cascade_num_candidate_groups().

The default number of candidates is 6x4x2 = 48

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The number of candidates used during training, or FALSE on error.

Смотрите также

  • fann_get_cascade_activation_functions() - Returns the cascade activation functions
  • fann_get_cascade_activation_functions_count() - Returns the number of cascade activation functions
  • fann_get_cascade_activation_steepnesses() - Returns the cascade activation steepnesses
  • fann_get_cascade_activation_steepnesses_count() - The number of activation steepnesses
  • fann_get_cascade_num_candidate_groups() - Returns the number of candidate groups


Returns the cascade output change fraction

  • « fann_get_cascade_num_candidates
  • fann_get_cascade_output_stagnation_epochs »
  • PHP Manual
  • Функции Fann
  • Returns the cascade output change fraction

fann_get_cascade_output_change_fraction

(PECL fann >= 1.0.0)

fann_get_cascade_output_change_fraction — Returns the cascade output change fraction

Описание

fann_get_cascade_output_change_fraction ( resource $ann ) : float

The cascade output change fraction is a number between 0 and 1 determining how large a fraction of the fann_get_MSE() value should change within fann_get_cascade_output_stagnation_epochs() during training of the output connections, in order for the training not to stagnate. If the training stagnates, the training of the output connections will be ended and new candidates will be prepared.

It means that if the MSE does not change by a fraction of fann_get_cascade_output_change_fraction() during a period of fann_get_cascade_output_stagnation_epochs(), the training of the output connections is stopped because the training has stagnated.

If the cascade output change fraction is low, the output connections will be trained more and if the fraction is high, they will be trained less.

The default cascade output change fraction is 0.01, which is equalent to a 1% change in MSE.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The cascade output change fraction, or FALSE on error.

Смотрите также

  • fann_set_cascade_output_change_fraction() - Sets the cascade output change fraction
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_get_cascade_output_stagnation_epochs() - Returns the number of cascade output stagnation epochs


Returns the number of cascade output stagnation epochs

  • « fann_get_cascade_output_change_fraction
  • fann_get_cascade_weight_multiplier »
  • PHP Manual
  • Функции Fann
  • Returns the number of cascade output stagnation epochs

fann_get_cascade_output_stagnation_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_output_stagnation_epochs — Returns the number of cascade output stagnation epochs

Описание

fann_get_cascade_output_stagnation_epochs ( resource $ann ) : int

The number of cascade output stagnation epochs determines the number of epochs training is allowed to continue without changing the MSE by a fraction of fann_get_cascade_output_change_fraction().

See more info about this parameter in fann_get_cascade_output_change_fraction().

The default number of cascade output stagnation epochs is 12.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The number of cascade output stagnation epochs, or FALSE on error.

Смотрите также

  • fann_set_cascade_output_stagnation_epochs() - Sets the number of cascade output stagnation epochs
  • fann_get_cascade_output_change_fraction() - Returns the cascade output change fraction


Returns the weight multiplier

  • « fann_get_cascade_output_stagnation_epochs
  • fann_get_connection_array »
  • PHP Manual
  • Функции Fann
  • Returns the weight multiplier

fann_get_cascade_weight_multiplier

(PECL fann >= 1.0.0)

fann_get_cascade_weight_multiplier — Returns the weight multiplier

Описание

fann_get_cascade_weight_multiplier ( resource $ann ) : float

The weight multiplier is a parameter which is used to multiply the weights from the candidate neuron before adding the neuron to the neural network. This parameter is usually between 0 and 1, and is used to make the training a bit less aggressive.

The default weight multiplier is 0.4.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The weight multiplier, or FALSE on error.

Смотрите также

  • fann_set_cascade_weight_multiplier() - Sets the weight multiplier


Get connections in the network

  • « fann_get_cascade_weight_multiplier
  • fann_get_connection_rate »
  • PHP Manual
  • Функции Fann
  • Get connections in the network

fann_get_connection_array

(PECL fann >= 1.0.0)

fann_get_connection_array — Get connections in the network

Описание

fann_get_connection_array ( resource $ann ) : array

Get connections in the network.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

An array of connections in the network


Get the connection rate used when the network was created

  • « fann_get_connection_array
  • fann_get_errno »
  • PHP Manual
  • Функции Fann
  • Get the connection rate used when the network was created

fann_get_connection_rate

(PECL fann >= 1.0.0)

fann_get_connection_rate — Get the connection rate used when the network was created

Описание

fann_get_connection_rate ( resource $ann ) : float

Get the connection rate used when the network was created.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The connection rate used when the network was created, or FALSE on error.


Returns the last error number

  • « fann_get_connection_rate
  • fann_get_errstr »
  • PHP Manual
  • Функции Fann
  • Returns the last error number

fann_get_errno

(PECL fann >= 1.0.0)

fann_get_errno — Returns the last error number

Описание

fann_get_errno ( resource $errdat ) : int

Returns the last error number.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

The error number, or FALSE on error.

Смотрите также

  • fann_reset_errno() - Resets the last error number
  • fann_get_errstr() - Returns the last errstr


Returns the last errstr

  • « fann_get_errno
  • fann_get_layer_array »
  • PHP Manual
  • Функции Fann
  • Returns the last errstr

fann_get_errstr

(PECL fann >= 1.0.0)

fann_get_errstr — Returns the last errstr

Описание

fann_get_errstr ( resource $errdat ) : string

Returns the last errstr.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

The last error string, or FALSE on error.

Смотрите также

  • fann_reset_errstr() - Resets the last error string
  • fann_get_errno() - Returns the last error number


Get the number of neurons in each layer in the network

  • « fann_get_errstr
  • fann_get_learning_momentum »
  • PHP Manual
  • Функции Fann
  • Get the number of neurons in each layer in the network

fann_get_layer_array

(PECL fann >= 1.0.0)

fann_get_layer_array — Get the number of neurons in each layer in the network

Описание

fann_get_layer_array ( resource $ann ) : array

Get the number of neurons in each layer in the neural network.

Bias is not included so the layers match the fann_create functions.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

An array of numbers of neurons in each leayer


Returns the learning momentum

  • « fann_get_layer_array
  • fann_get_learning_rate »
  • PHP Manual
  • Функции Fann
  • Returns the learning momentum

fann_get_learning_momentum

(PECL fann >= 1.0.0)

fann_get_learning_momentum — Returns the learning momentum

Описание

fann_get_learning_momentum ( resource $ann ) : float

The learning momentum can be used to speed up FANN_TRAIN_INCREMENTAL training. A too high momentum will however not benefit training. Setting momentum to 0 will be the same as not using the momentum parameter. The recommended value of this parameter is between 0.0 and 1.0.

The default momentum is 0.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

The learning momentum, or FALSE on error.

Смотрите также

  • fann_set_learning_momentum() - Sets the learning momentum
  • fann_set_training_algorithm() - Sets the training algorithm


Returns the learning rate

  • « fann_get_learning_momentum
  • fann_get_MSE »
  • PHP Manual
  • Функции Fann
  • Returns the learning rate

fann_get_learning_rate

(PECL fann >= 1.0.0)

fann_get_learning_rate — Returns the learning rate

Описание

fann_get_learning_rate ( resource $ann ) : float

The learning rate is used to determine how aggressive training should be for some of the training algorithms (FANN_TRAIN_INCREMENTAL, FANN_TRAIN_BATCH, FANN_TRAIN_QUICKPROP). Do however note that it is not used in FANN_TRAIN_RPROP.

The default learning rate is 0.7.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The learning rate, or FALSE on error.

Смотрите также

  • fann_set_learning_rate() - Sets the learning rate
  • fann_set_training_algorithm() - Sets the training algorithm


Reads the mean square error from the network

  • « fann_get_learning_rate
  • fann_get_network_type »
  • PHP Manual
  • Функции Fann
  • Reads the mean square error from the network

fann_get_MSE

(PECL fann >= 1.0.0)

fann_get_MSE — Reads the mean square error from the network

Описание

fann_get_MSE ( resource $ann ) : float

Reads the mean square error from the network.

Reads the mean square error from the network. This value is calculated during training or testing and can therefore sometimes be a bit off if the weights have been changed since the last calculation of the value.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The mean square error, or FALSE on error.

Смотрите также

  • fann_test_data() - Тестирование набора обучающих данных и вычисление MSE для него


Get the type of neural network it was created as

  • « fann_get_MSE
  • fann_get_num_input »
  • PHP Manual
  • Функции Fann
  • Get the type of neural network it was created as

fann_get_network_type

(PECL fann >= 1.0.0)

fann_get_network_type — Get the type of neural network it was created as

Описание

fann_get_network_type ( resource $ann ) : int

Get the type of neural network it was created as.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Network type constant, or FALSE on error.


Get the number of input neurons

  • « fann_get_network_type
  • fann_get_num_layers »
  • PHP Manual
  • Функции Fann
  • Get the number of input neurons

fann_get_num_input

(PECL fann >= 1.0.0)

fann_get_num_input — Get the number of input neurons

Описание

fann_get_num_input ( resource $ann ) : int

Get the number of input neurons.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Number of input neurons, or FALSE on error


Get the number of layers in the neural network

  • « fann_get_num_input
  • fann_get_num_output »
  • PHP Manual
  • Функции Fann
  • Get the number of layers in the neural network

fann_get_num_layers

(PECL fann >= 1.0.0)

fann_get_num_layers — Get the number of layers in the neural network

Описание

fann_get_num_layers ( resource $ann ) : int

Get the number of layers in the neural network.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The number of leayers in the neural network, or FALSE on error.


Get the number of output neurons

  • « fann_get_num_layers
  • fann_get_quickprop_decay »
  • PHP Manual
  • Функции Fann
  • Get the number of output neurons

fann_get_num_output

(PECL fann >= 1.0.0)

fann_get_num_output — Get the number of output neurons

Описание

fann_get_num_output ( resource $ann ) : int

Get the number of output neurons.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Number of output neurons, or FALSE on error


Returns the decay which is a factor that weights should decrease in each iteration during quickprop training

  • « fann_get_num_output
  • fann_get_quickprop_mu »
  • PHP Manual
  • Функции Fann
  • Returns the decay which is a factor that weights should decrease in each iteration during quickprop training

fann_get_quickprop_decay

(PECL fann >= 1.0.0)

fann_get_quickprop_decay — Returns the decay which is a factor that weights should decrease in each iteration during quickprop training

Описание

fann_get_quickprop_decay ( resource $ann ) : float

The decay is a small negative valued number which is a factor that the weights should decrease in each iteration during quickprop training. This is used to make sure that the weights do not become too high during training.

The default decay is -0.0001.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The decay, or FALSE on error.

Смотрите также

  • fann_set_quickprop_decay() - Sets the quickprop decay factor


Returns the mu factor

  • « fann_get_quickprop_decay
  • fann_get_rprop_decrease_factor »
  • PHP Manual
  • Функции Fann
  • Returns the mu factor

fann_get_quickprop_mu

(PECL fann >= 1.0.0)

fann_get_quickprop_mu — Returns the mu factor

Описание

fann_get_quickprop_mu ( resource $ann ) : float

The mu factor is used to increase and decrease the step-size during quickprop training. The mu factor should always be above 1, since it would otherwise decrease the step-size when it was suppose to increase it.

The default mu factor is 1.75.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The mu factor, or FALSE on error.

Смотрите также

  • fann_set_quickprop_mu() - Sets the quickprop mu factor


Returns the increase factor used during RPROP training

  • « fann_get_quickprop_mu
  • fann_get_rprop_delta_max »
  • PHP Manual
  • Функции Fann
  • Returns the increase factor used during RPROP training

fann_get_rprop_decrease_factor

(PECL fann >= 1.0.0)

fann_get_rprop_decrease_factor — Returns the increase factor used during RPROP training

Описание

fann_get_rprop_decrease_factor ( resource $ann ) : float

The decrease factor is a value smaller than 1, which is used to decrease the step-size during RPROP training.

The default decrease factor is 0.5.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The decrease factor, or FALSE on error.

Смотрите также

  • fann_set_rprop_decrease_factor() - Sets the decrease factor used during RPROP training


Returns the maximum step-size

  • « fann_get_rprop_decrease_factor
  • fann_get_rprop_delta_min »
  • PHP Manual
  • Функции Fann
  • Returns the maximum step-size

fann_get_rprop_delta_max

(PECL fann >= 1.0.0)

fann_get_rprop_delta_max — Returns the maximum step-size

Описание

fann_get_rprop_delta_max ( resource $ann ) : float

The maximum step-size is a positive number determining how large the maximum step-size may be.

The default delta max is 50.0.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The maximum step-size, or FALSE on error.

Смотрите также

  • fann_set_rprop_delta_max() - Sets the maximum step-size
  • fann_get_rprop_delta_min() - Returns the minimum step-size


Returns the minimum step-size

  • « fann_get_rprop_delta_max
  • fann_get_rprop_delta_zero »
  • PHP Manual
  • Функции Fann
  • Returns the minimum step-size

fann_get_rprop_delta_min

(PECL fann >= 1.0.0)

fann_get_rprop_delta_min — Returns the minimum step-size

Описание

fann_get_rprop_delta_min ( resource $ann ) : float

The minimum step-size is a small positive number determining how small the minimum step-size may be.

The default value delta min is 0.0.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The minimum step-size, or FALSE on error.

Смотрите также

  • fann_set_rprop_delta_min() - Sets the minimum step-size


Returns the initial step-size

  • « fann_get_rprop_delta_min
  • fann_get_rprop_increase_factor »
  • PHP Manual
  • Функции Fann
  • Returns the initial step-size

fann_get_rprop_delta_zero

(PECL fann >= 1.0.0)

fann_get_rprop_delta_zero — Returns the initial step-size

Описание

fann_get_rprop_delta_zero ( resource $ann ) : int

The initial step-size is a positive number determining the initial step size.

The default delta zero is 0.1.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The initial step-size, or FALSE on error.

Смотрите также

  • fann_set_rprop_delta_zero() - Sets the initial step-size
  • fann_get_rprop_delta_min() - Returns the minimum step-size
  • fann_get_rprop_delta_max() - Returns the maximum step-size


Returns the increase factor used during RPROP training

  • « fann_get_rprop_delta_zero
  • fann_get_sarprop_step_error_shift »
  • PHP Manual
  • Функции Fann
  • Returns the increase factor used during RPROP training

fann_get_rprop_increase_factor

(PECL fann >= 1.0.0)

fann_get_rprop_increase_factor — Returns the increase factor used during RPROP training

Описание

fann_get_rprop_increase_factor ( resource $ann ) : float

The increase factor is a value larger than 1, which is used to increase the step-size during RPROP training.

The default increase factor is 1.2.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The increase factor, or FALSE on error.

Смотрите также

  • fann_set_rprop_increase_factor() - Sets the increase factor used during RPROP training


Returns the sarprop step error shift

  • « fann_get_rprop_increase_factor
  • fann_get_sarprop_step_error_threshold_factor »
  • PHP Manual
  • Функции Fann
  • Returns the sarprop step error shift

fann_get_sarprop_step_error_shift

(PECL fann >= 1.0.0)

fann_get_sarprop_step_error_shift — Returns the sarprop step error shift

Описание

fann_get_sarprop_step_error_shift ( resource $ann ) : float

Returns the sarprop step error shift.

The default step error shift is 1.385.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The sarprop step error shift , or FALSE on error.

Смотрите также

  • fann_set_sarprop_step_error_shift() - Sets the sarprop step error shift


Returns the sarprop step error threshold factor

  • « fann_get_sarprop_step_error_shift
  • fann_get_sarprop_temperature »
  • PHP Manual
  • Функции Fann
  • Returns the sarprop step error threshold factor

fann_get_sarprop_step_error_threshold_factor

(PECL fann >= 1.0.0)

fann_get_sarprop_step_error_threshold_factor — Returns the sarprop step error threshold factor

Описание

fann_get_sarprop_step_error_threshold_factor ( resource $ann ) : float

The sarprop step error threshold factor.

The default factor is 0.1.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The sarprop step error threshold factor, or FALSE on error.

Смотрите также

  • fann_set_sarprop_step_error_threshold_factor() - Sets the sarprop step error threshold factor


Returns the sarprop temperature

  • « fann_get_sarprop_step_error_threshold_factor
  • fann_get_sarprop_weight_decay_shift »
  • PHP Manual
  • Функции Fann
  • Returns the sarprop temperature

fann_get_sarprop_temperature

(PECL fann >= 1.0.0)

fann_get_sarprop_temperature — Returns the sarprop temperature

Описание

fann_get_sarprop_temperature ( resource $ann ) : float

Returns the sarprop temperature.

The default temperature is 0.015.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The sarprop temperature, or FALSE on error.

Смотрите также

  • fann_set_sarprop_temperature() - Sets the sarprop temperature


Returns the sarprop weight decay shift

  • « fann_get_sarprop_temperature
  • fann_get_total_connections »
  • PHP Manual
  • Функции Fann
  • Returns the sarprop weight decay shift

fann_get_sarprop_weight_decay_shift

(PECL fann >= 1.0.0)

fann_get_sarprop_weight_decay_shift — Returns the sarprop weight decay shift

Описание

fann_get_sarprop_weight_decay_shift ( resource $ann ) : float

The sarprop weight decay shift.

The default delta max is -6.644.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The sarprop weight decay shift, or FALSE on error.

Смотрите также

  • fann_set_sarprop_weight_decay_shift() - Sets the sarprop weight decay shift


Get the total number of connections in the entire network

  • « fann_get_sarprop_weight_decay_shift
  • fann_get_total_neurons »
  • PHP Manual
  • Функции Fann
  • Get the total number of connections in the entire network

fann_get_total_connections

(PECL fann >= 1.0.0)

fann_get_total_connections — Get the total number of connections in the entire network

Описание

fann_get_total_connections ( resource $ann ) : int

Get the total number of connections in the entire network.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Total number of connections in the entire network, or FALSE on error


Get the total number of neurons in the entire network

  • « fann_get_total_connections
  • fann_get_train_error_function »
  • PHP Manual
  • Функции Fann
  • Get the total number of neurons in the entire network

fann_get_total_neurons

(PECL fann >= 1.0.0)

fann_get_total_neurons — Get the total number of neurons in the entire network

Описание

fann_get_total_neurons ( resource $ann ) : int

Get the total number of neurons in the entire network. This number does also include the bias neurons, so a 2-4-2 network has 2+4+2 +2(bias) = 10 neurons.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Total number of neurons in the entire network, or FALSE on error.


Returns the error function used during training

  • « fann_get_total_neurons
  • fann_get_train_stop_function »
  • PHP Manual
  • Функции Fann
  • Returns the error function used during training

fann_get_train_error_function

(PECL fann >= 1.0.0)

fann_get_train_error_function — Returns the error function used during training

Описание

fann_get_train_error_function ( resource $ann ) : int

Returns the error function used during training.

The error functions are described further in error functions constants.

The default error function is FANN_ERRORFUNC_TANH.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The error function constant, or FALSE on error.

Смотрите также

  • fann_set_train_error_function() - Sets the error function used during training


Returns the stop function used during training

  • « fann_get_train_error_function
  • fann_get_training_algorithm »
  • PHP Manual
  • Функции Fann
  • Returns the stop function used during training

fann_get_train_stop_function

(PECL fann >= 1.0.0)

fann_get_train_stop_function — Returns the stop function used during training

Описание

fann_get_train_stop_function ( resource $ann ) : int

Returns the stop function used during training.

The stop functions are described further in stop functions constants.

The default stop function is FANN_STOPFUNC_MSE.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The stop function constant, or FALSE on error.

Смотрите также

  • fann_set_train_stop_function() - Sets the stop function used during training


Returns the training algorithm

  • « fann_get_train_stop_function
  • fann_init_weights »
  • PHP Manual
  • Функции Fann
  • Returns the training algorithm

fann_get_training_algorithm

(PECL fann >= 1.0.0)

fann_get_training_algorithm — Returns the training algorithm

Описание

fann_get_training_algorithm ( resource $ann ) : int

Returns the training algorithm. This training algorithm is used by fann_train_on_data() and associated functions.

Note that this algorithm is also used during fann_cascadetrain_on_data(), although only FANN_TRAIN_RPROP and FANN_TRAIN_QUICKPROP is allowed during cascade training.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Training algorithm constant, or FALSE on error.

Смотрите также

  • fann_set_training_algorithm() - Sets the training algorithm


Initialize the weights using Widrow + Nguyen’s algorithm

  • « fann_get_training_algorithm
  • fann_length_train_data »
  • PHP Manual
  • Функции Fann
  • Initialize the weights using Widrow + Nguyen’s algorithm

fann_init_weights

(PECL fann >= 1.0.0)

fann_init_weights — Initialize the weights using Widrow + Nguyen's algorithm

Описание

fann_init_weights ( resource $ann , resource $train_data ) : bool

Initialize the weights using Widrow + Nguyen's algorithm.

This function behaves similarly to fann_randomize_weights(). It will use the algorithm developed by Derrick Nguyen and Bernard Widrow to set the weights in such a way as to speed up training. This technique is not always successful, and in some cases can be less efficient than a purely random initialization.

The algorithm requires access to the range of the input data (for example largest and smallest input), and therefore accepts a second argument, data, which is the training data that will be used to train the network.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_randomize_weights() - Give each connection a random weight between min_weight and max_weight
  • fann_read_train_from_file() - Reads a file that stores training data


Returns the number of training patterns in the train data

  • « fann_init_weights
  • fann_merge_train_data »
  • PHP Manual
  • Функции Fann
  • Returns the number of training patterns in the train data

fann_length_train_data

(PECL fann >= 1.0.0)

fann_length_train_data — Returns the number of training patterns in the train data

Описание

fann_length_train_data ( resource $data ) : int

Returns the number of training patterns in the train data resource.

Список параметров

data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Number of elements in the train data resource, or FALSE on error.


Merges the train data

  • « fann_length_train_data
  • fann_num_input_train_data »
  • PHP Manual
  • Функции Fann
  • Merges the train data

fann_merge_train_data

(PECL fann >= 1.0.0)

fann_merge_train_data — Merges the train data

Описание

fann_merge_train_data ( resource $data1 , resource $data2 ) : resource

Merges the data from data1 and data2 into a new train data resource.

Список параметров

data1

Ресурс (resource) обучающих данных нейронной сети.

data2

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

New merged train data resource, or FALSE on error.


Returns the number of inputs in each of the training patterns in the train data

  • « fann_merge_train_data
  • fann_num_output_train_data »
  • PHP Manual
  • Функции Fann
  • Returns the number of inputs in each of the training patterns in the train data

fann_num_input_train_data

(PECL fann >= 1.0.0)

fann_num_input_train_data — Returns the number of inputs in each of the training patterns in the train data

Описание

fann_num_input_train_data ( resource $data ) : int

Returns the number of inputs in each of the training patterns in the train data resource.

Список параметров

data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

The number of inputs, or FALSE on error.

Смотрите также

  • fann_length_train_data() - Returns the number of training patterns in the train data
  • fann_num_output_train_data() - Returns the number of outputs in each of the training patterns in the train data


Returns the number of outputs in each of the training patterns in the train data

  • « fann_num_input_train_data
  • fann_print_error »
  • PHP Manual
  • Функции Fann
  • Returns the number of outputs in each of the training patterns in the train data

fann_num_output_train_data

(PECL fann >= 1.0.0)

fann_num_output_train_data — Returns the number of outputs in each of the training patterns in the train data

Описание

fann_num_output_train_data ( resource $data ) : int

Returns the number of outputs in each of the training patterns in the train data resource.

Список параметров

data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

The number of outputs, or FALSE on error.

Смотрите также

  • fann_length_train_data() - Returns the number of training patterns in the train data
  • fann_num_input_train_data() - Returns the number of inputs in each of the training patterns in the train data


Prints the error string

  • « fann_num_output_train_data
  • fann_randomize_weights »
  • PHP Manual
  • Функции Fann
  • Prints the error string

fann_print_error

(PECL fann >= 1.0.0)

fann_print_error — Prints the error string

Описание

fann_print_error ( resource $errdat ) : void

Prints the error string.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Не возвращает никакого значения.

Смотрите также

  • fann_get_errstr() - Returns the last errstr


Give each connection a random weight between min_weight and max_weight

  • « fann_print_error
  • fann_read_train_from_file »
  • PHP Manual
  • Функции Fann
  • Give each connection a random weight between min_weight and max_weight

fann_randomize_weights

(PECL fann >= 1.0.0)

fann_randomize_weights — Give each connection a random weight between min_weight and max_weight

Описание

fann_randomize_weights ( resource $ann , float $min_weight , float $max_weight ) : bool

Give each connection a random weight between min_weight and max_weight

From the beginning the weights are random between -0.1 and 0.1.

Список параметров

ann

Ресурс (resource) нейронной сети.

min_weight

Minimum weight value

max_weight

Maximum weight value

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_init_weights() - Initialize the weights using Widrow + Nguyen’s algorithm


Reads a file that stores training data

  • « fann_randomize_weights
  • fann_reset_errno »
  • PHP Manual
  • Функции Fann
  • Reads a file that stores training data

fann_read_train_from_file

(PECL fann >= 1.0.0)

fann_read_train_from_file — Reads a file that stores training data

Описание

fann_read_train_from_file ( string $filename ) : resource

Reads a file that stores training data.

Список параметров

filename

The input file in the following format:

num_train_data num_input num_output
inputdata seperated by space
outputdata seperated by space

.
.
.

inputdata seperated by space
outputdata seperated by space

Возвращаемые значения

Возвращает ресурс (resource) обучающих данных, или FALSE в случае ошибки.

Примеры

Пример #1 fann_read_train_from_file() example

<?php
$train_data = fann_read_train_from_file("xor.data");
if ($train_data) {
    // Do something with $train_data for XOR function
}
?>

Contents of xor.data

4 2 1
-1 -1
-1
-1 1
1
1 -1
1
1 1
-1

Смотрите также

  • fann_train_on_data() - Обучение на всем объеме данных на временном интервале
  • fann_destroy_train() - Destructs the training data
  • fann_save_train() - Save the training structure to a file


Resets the last error number

  • « fann_read_train_from_file
  • fann_reset_errstr »
  • PHP Manual
  • Функции Fann
  • Resets the last error number

fann_reset_errno

(PECL fann >= 1.0.0)

fann_reset_errno — Resets the last error number

Описание

fann_reset_errno ( resource $errdat ) : void

Resets the last error number.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Не возвращает никакого значения.

Смотрите также

  • fann_get_errno() - Returns the last error number
  • fann_reset_errstr() - Resets the last error string


Resets the last error string

  • « fann_reset_errno
  • fann_reset_MSE »
  • PHP Manual
  • Функции Fann
  • Resets the last error string

fann_reset_errstr

(PECL fann >= 1.0.0)

fann_reset_errstr — Resets the last error string

Описание

fann_reset_errstr ( resource $errdat ) : void

Resets the last error string.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Не возвращает никакого значения.

Смотрите также

  • fann_get_errstr() - Returns the last errstr
  • fann_reset_errno() - Resets the last error number


Resets the mean square error from the network

  • « fann_reset_errstr
  • fann_run »
  • PHP Manual
  • Функции Fann
  • Resets the mean square error from the network

fann_reset_MSE

(PECL fann >= 1.0.0)

fann_reset_MSE — Resets the mean square error from the network

Описание

fann_reset_MSE ( string $ann ) : bool

Resets the mean square error from the network.

This function also resets the number of bits that fail.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_MSE() - Reads the mean square error from the network
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_bit_fail_limit() - Returns the bit fail limit used during training


Will run input through the neural network

  • « fann_reset_MSE
  • fann_save_train »
  • PHP Manual
  • Функции Fann
  • Will run input through the neural network

fann_run

(PECL fann >= 1.0.0)

fann_run — Will run input through the neural network

Описание

fann_run ( resource $ann , array $input ) : array

Will run input through the neural network, returning an array of outputs, the number of which being equal to the number of neurons in the output layer.

Список параметров

ann

Ресурс (resource) нейронной сети.

input

Array of input values

Возвращаемые значения

Array of output values, or FALSE on error


Save the training structure to a file

  • « fann_run
  • fann_save »
  • PHP Manual
  • Функции Fann
  • Save the training structure to a file

fann_save_train

(PECL fann >= 1.0.0)

fann_save_train — Save the training structure to a file

Описание

fann_save_train ( resource $data , string $file_name ) : bool

Save the training data to a file, with the format as specified in fann_read_train_from_file().

Список параметров

data

Ресурс (resource) обучающих данных нейронной сети.

file_name

The file name of the file where training data is saved to.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_read_train_from_file() - Reads a file that stores training data


Saves the entire network to a configuration file

  • « fann_save_train
  • fann_scale_input_train_data »
  • PHP Manual
  • Функции Fann
  • Saves the entire network to a configuration file

fann_save

(PECL fann >= 1.0.0)

fann_save — Saves the entire network to a configuration file

Описание

fann_save ( resource $ann , string $configuration_file ) : bool

Saves the entire network to a configuration file.

The configuration file contains all information about the neural network and enables fann_create_from_file() to create an exact copy of the neural network and all of the parameters associated with the neural network.

These three parameters (fann_set_callback(), fann_set_error_log(), fann_set_user_data()) are NOT saved to the file because they cannot safely be ported to a different location. Also temporary parameters generated during training like fann_get_MSE() is not saved.

Список параметров

ann

Ресурс (resource) нейронной сети.

configuration_file

The configuration file path.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_create_from_file() - Создает нейронную сеть с обратным распространением ошибки из конфигурационного файла


Scales the inputs in the training data to the specified range

  • « fann_save
  • fann_scale_input »
  • PHP Manual
  • Функции Fann
  • Scales the inputs in the training data to the specified range

fann_scale_input_train_data

(PECL fann >= 1.0.0)

fann_scale_input_train_data — Scales the inputs in the training data to the specified range

Описание

fann_scale_input_train_data ( resource $train_data , float $new_min , float $new_max ) : bool

Scales the inputs in the training data to the specified range.

Список параметров

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_min

New minimum after scaling inputs in training data.

new_max

New maximum after scaling inputs in training data.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_scale_output_train_data() - Scales the outputs in the training data to the specified range
  • fann_scale_train_data() - Scales the inputs and outputs in the training data to the specified range


Scale data in input vector before feed it to ann based on previously calculated parameters

  • « fann_scale_input_train_data
  • fann_scale_output_train_data »
  • PHP Manual
  • Функции Fann
  • Scale data in input vector before feed it to ann based on previously calculated parameters

fann_scale_input

(PECL fann >= 1.0.0)

fann_scale_input — Scale data in input vector before feed it to ann based on previously calculated parameters

Описание

fann_scale_input ( resource $ann , array $input_vector ) : bool

Scale data in input vector before feed it to ann based on previously calculated parameters.

Список параметров

ann

Ресурс (resource) нейронной сети.

input_vector

Input vector that will be scaled

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_descale_input() - Scale data in input vector after get it from ann based on previously calculated parameters
  • fann_scale_output() - Scale data in output vector before feed it to ann based on previously calculated parameters


Scales the outputs in the training data to the specified range

  • « fann_scale_input
  • fann_scale_output »
  • PHP Manual
  • Функции Fann
  • Scales the outputs in the training data to the specified range

fann_scale_output_train_data

(PECL fann >= 1.0.0)

fann_scale_output_train_data — Scales the outputs in the training data to the specified range

Описание

fann_scale_output_train_data ( resource $train_data , float $new_min , float $new_max ) : bool

Scales the outputs in the training data to the specified range.

Список параметров

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_min

New minimum after scaling outputs in training data.

new_max

New maximum after scaling outputs in training data.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_scale_input_train_data() - Scales the inputs in the training data to the specified range
  • fann_scale_train_data() - Scales the inputs and outputs in the training data to the specified range


Scale data in output vector before feed it to ann based on previously calculated parameters

  • « fann_scale_output_train_data
  • fann_scale_train_data »
  • PHP Manual
  • Функции Fann
  • Scale data in output vector before feed it to ann based on previously calculated parameters

fann_scale_output

(PECL fann >= 1.0.0)

fann_scale_output — Scale data in output vector before feed it to ann based on previously calculated parameters

Описание

fann_scale_output ( resource $ann , array $output_vector ) : bool

Scale data in output vector before feed it to ann based on previously calculated parameters.

Список параметров

ann

Ресурс (resource) нейронной сети.

output_vector

Output vector that will be scaled

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_descale_output() - Scale data in output vector after get it from ann based on previously calculated parameters
  • fann_scale_input() - Scale data in input vector before feed it to ann based on previously calculated parameters


Scales the inputs and outputs in the training data to the specified range

  • « fann_scale_output
  • fann_scale_train »
  • PHP Manual
  • Функции Fann
  • Scales the inputs and outputs in the training data to the specified range

fann_scale_train_data

(PECL fann >= 1.0.0)

fann_scale_train_data — Scales the inputs and outputs in the training data to the specified range

Описание

fann_scale_train_data ( resource $train_data , float $new_min , float $new_max ) : bool

Scales the inputs and outputs in the training data to the specified range.

Список параметров

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_min

New minimum after scaling inputs and outputs in training data.

new_max

New maximum after scaling inputs and outputs in training data.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_scale_output_train_data() - Scales the outputs in the training data to the specified range
  • fann_scale_input_train_data() - Scales the inputs in the training data to the specified range


Scale input and output data based on previously calculated parameters

  • « fann_scale_train_data
  • fann_set_activation_function_hidden »
  • PHP Manual
  • Функции Fann
  • Scale input and output data based on previously calculated parameters

fann_scale_train

(PECL fann >= 1.0.0)

fann_scale_train — Scale input and output data based on previously calculated parameters

Описание

fann_scale_train ( resource $ann , resource $train_data ) : bool

Scale input and output data based on previously calculated parameters.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_descale_train() - Descale input and output data based on previously calculated parameters
  • fann_set_scaling_params() - Calculate input and output scaling parameters for future use based on training data


Sets the activation function for all of the hidden layers

  • « fann_scale_train
  • fann_set_activation_function_layer »
  • PHP Manual
  • Функции Fann
  • Sets the activation function for all of the hidden layers

fann_set_activation_function_hidden

(PECL fann >= 1.0.0)

fann_set_activation_function_hidden — Sets the activation function for all of the hidden layers

Описание

fann_set_activation_function_hidden ( resource $ann , int $activation_function ) : bool

Sets the activation function for all of the hidden layers.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_function

The activation functions constant.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer
  • fann_set_activation_function_layer() - Sets the activation function for all the neurons in the supplied layer
  • fann_set_activation_function_output() - Sets the activation function for the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number


Sets the activation function for all the neurons in the supplied layer

  • « fann_set_activation_function_hidden
  • fann_set_activation_function_output »
  • PHP Manual
  • Функции Fann
  • Sets the activation function for all the neurons in the supplied layer

fann_set_activation_function_layer

(PECL fann >= 1.0.0)

fann_set_activation_function_layer — Sets the activation function for all the neurons in the supplied layer

Описание

fann_set_activation_function_layer ( resource $ann , int $activation_function , int $layer ) : bool

Set the activation function for all the neurons in the layer number layer, counting the input layer as layer 0.

It is not possible to set activation functions for the neurons in the input layer.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_function

The activation functions constant.

layer

Layer number.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer
  • fann_set_activation_function_hidden() - Sets the activation function for all of the hidden layers
  • fann_set_activation_function_output() - Sets the activation function for the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number


Sets the activation function for the output layer

  • « fann_set_activation_function_layer
  • fann_set_activation_function »
  • PHP Manual
  • Функции Fann
  • Sets the activation function for the output layer

fann_set_activation_function_output

(PECL fann >= 1.0.0)

fann_set_activation_function_output — Sets the activation function for the output layer

Описание

fann_set_activation_function_output ( resource $ann , int $activation_function ) : bool

Sets the activation function for the output layer.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_function

The activation functions constant.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer
  • fann_set_activation_function_layer() - Sets the activation function for all the neurons in the supplied layer
  • fann_set_activation_function_hidden() - Sets the activation function for all of the hidden layers
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number


Sets the activation function for supplied neuron and layer

  • « fann_set_activation_function_output
  • fann_set_activation_steepness_hidden »
  • PHP Manual
  • Функции Fann
  • Sets the activation function for supplied neuron and layer

fann_set_activation_function

(PECL fann >= 1.0.0)

fann_set_activation_function — Sets the activation function for supplied neuron and layer

Описание

fann_set_activation_function ( resource $ann , int $activation_function , int $layer , int $neuron ) : bool

Set the activation function for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to set activation functions for the neurons in the input layer.

When choosing an activation function it is important to note that the activation functions have different range. FANN_SIGMOID is e.g. in the 0 - 1 range while FANN_SIGMOID_SYMMETRIC is in the -1 - 1 range and FANN_LINEAR is unbound.

The supplied activation_function value must be one of the activation functions constants.

The return value is one of the activation functions constants.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_function

The activation functions constant.

layer

Layer number.

neuron

Neuron number.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_activation_function_layer() - Sets the activation function for all the neurons in the supplied layer
  • fann_set_activation_function_hidden() - Sets the activation function for all of the hidden layers
  • fann_set_activation_function_output() - Sets the activation function for the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_get_activation_function() - Returns the activation function


Sets the steepness of the activation steepness for all neurons in the all hidden layers

  • « fann_set_activation_function
  • fann_set_activation_steepness_layer »
  • PHP Manual
  • Функции Fann
  • Sets the steepness of the activation steepness for all neurons in the all hidden layers

fann_set_activation_steepness_hidden

(PECL fann >= 1.0.0)

fann_set_activation_steepness_hidden — Sets the steepness of the activation steepness for all neurons in the all hidden layers

Описание

fann_set_activation_steepness_hidden ( resource $ann , float $activation_steepness ) : bool

Sets the steepness of the activation steepness for all neurons in the all hidden layers.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_steepness

The activation steepness.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_set_activation_steepness_layer() - Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_output() - Sets the steepness of the activation steepness in the output layer
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Sets the activation steepness for all of the neurons in the supplied layer number

  • « fann_set_activation_steepness_hidden
  • fann_set_activation_steepness_output »
  • PHP Manual
  • Функции Fann
  • Sets the activation steepness for all of the neurons in the supplied layer number

fann_set_activation_steepness_layer

(PECL fann >= 1.0.0)

fann_set_activation_steepness_layer — Sets the activation steepness for all of the neurons in the supplied layer number

Описание

fann_set_activation_steepness_layer ( resource $ann , float $activation_steepness , int $layer ) : bool

Set the activation steepness for all of the neurons in layer number layer, counting the input layer as layer 0.

It is not possible to set activation steepness for the neurons in the input layer.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_steepness

The activation steepness.

layer

Layer number.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_set_activation_steepness_hidden() - Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_set_activation_steepness_output() - Sets the steepness of the activation steepness in the output layer
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Sets the steepness of the activation steepness in the output layer

  • « fann_set_activation_steepness_layer
  • fann_set_activation_steepness »
  • PHP Manual
  • Функции Fann
  • Sets the steepness of the activation steepness in the output layer

fann_set_activation_steepness_output

(PECL fann >= 1.0.0)

fann_set_activation_steepness_output — Sets the steepness of the activation steepness in the output layer

Описание

fann_set_activation_steepness_output ( resource $ann , float $activation_steepness ) : bool

Sets the steepness of the activation steepness in the output layer.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_steepness

The activation steepness.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_set_activation_steepness_layer() - Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_hidden() - Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Sets the activation steepness for supplied neuron and layer number

  • « fann_set_activation_steepness_output
  • fann_set_bit_fail_limit »
  • PHP Manual
  • Функции Fann
  • Sets the activation steepness for supplied neuron and layer number

fann_set_activation_steepness

(PECL fann >= 1.0.0)

fann_set_activation_steepness — Sets the activation steepness for supplied neuron and layer number

Описание

fann_set_activation_steepness ( resource $ann , float $activation_steepness , int $layer , int $neuron ) : bool

Set the activation steepness for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to set activation steepness for the neurons in the input layer.

The steepness of an activation function says something about how fast the activation function goes from the minimum to the maximum. A high value for the activation function will also give a more agressive training.

When training neural networks where the output values should be at the extremes (usually 0 and 1, depending on the activation function), a steep activation function can be used (e.g. 1.0).

The default activation steepness is 0.5.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_steepness

The activation steepness.

layer

Layer number.

neuron

Neuron number.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_activation_steepness_layer() - Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_hidden() - Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_set_activation_steepness_output() - Sets the steepness of the activation steepness in the output layer
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Set the bit fail limit used during training

  • « fann_set_activation_steepness
  • fann_set_callback »
  • PHP Manual
  • Функции Fann
  • Set the bit fail limit used during training

fann_set_bit_fail_limit

(PECL fann >= 1.0.0)

fann_set_bit_fail_limit — Set the bit fail limit used during training

Описание

fann_set_bit_fail_limit ( resource $ann , float $bit_fail_limit ) : bool

Set the bit fail limit used during training.

Список параметров

ann

Ресурс (resource) нейронной сети.

bit_fail_limit

The bit fail limit.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_bit_fail_limit() - Returns the bit fail limit used during training


Sets the callback function for use during training

  • « fann_set_bit_fail_limit
  • fann_set_cascade_activation_functions »
  • PHP Manual
  • Функции Fann
  • Sets the callback function for use during training

fann_set_callback

(PECL fann >= 1.0.0)

fann_set_callback — Sets the callback function for use during training

Описание

fann_set_callback ( resource $ann , callable $callback ) : bool

Sets the callback function for use during training. It means that it is called from fann_train_on_data() or fann_train_on_file().

Список параметров

ann

Ресурс (resource) нейронной сети.

callback

The supplied callback function takes following parameters:

  • ann - The neural network resource
  • train - The train data resource or NULL if called from fann_train_on_file()
  • max_epochs - The maximum number of epochs the training should continue
  • epochs_between_reports - The number of epochs between calling this function
  • desired_error - The desired fann_get_MSE() or fann_get_bit_fail(), depending on the stop function chosen by fann_set_train_stop_function()
  • epochs - The current epoch

The callback should return TRUE. If it returns FALSE, the training will terminate.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_train_on_data() - Обучение на всем объеме данных на временном интервале
  • fann_train_on_file() - Обучение на полном наборе данных, прочитанном из файла, на временном интервале


Sets the array of cascade candidate activation functions

  • « fann_set_callback
  • fann_set_cascade_activation_steepnesses »
  • PHP Manual
  • Функции Fann
  • Sets the array of cascade candidate activation functions

fann_set_cascade_activation_functions

(PECL fann >= 1.0.0)

fann_set_cascade_activation_functions — Sets the array of cascade candidate activation functions

Описание

fann_set_cascade_activation_functions ( resource $ann , array $cascade_activation_functions ) : bool

Sets the array of cascade candidate activation functions.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_activation_functions

The array of cascade candidate activation functions.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_activation_functions_count() - Returns the number of cascade activation functions
  • fann_set_cascade_activation_functions()


Sets the array of cascade candidate activation steepnesses

  • « fann_set_cascade_activation_functions
  • fann_set_cascade_candidate_change_fraction »
  • PHP Manual
  • Функции Fann
  • Sets the array of cascade candidate activation steepnesses

fann_set_cascade_activation_steepnesses

(PECL fann >= 1.0.0)

fann_set_cascade_activation_steepnesses — Sets the array of cascade candidate activation steepnesses

Описание

fann_set_cascade_activation_steepnesses ( resource $ann , array $cascade_activation_steepnesses_count ) : bool

Sets the array of cascade candidate activation steepnesses.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_activation_steepnesses_count

The array of cascade candidate activation steepnesses.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_activation_steepnesses() - Returns the cascade activation steepnesses
  • fann_get_cascade_activation_steepnesses_count() - The number of activation steepnesses


Sets the cascade candidate change fraction

  • « fann_set_cascade_activation_steepnesses
  • fann_set_cascade_candidate_limit »
  • PHP Manual
  • Функции Fann
  • Sets the cascade candidate change fraction

fann_set_cascade_candidate_change_fraction

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_change_fraction — Sets the cascade candidate change fraction

Описание

fann_set_cascade_candidate_change_fraction ( resource $ann , float $cascade_candidate_change_fraction ) : bool

Sets the cascade candidate change fraction.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_candidate_change_fraction

The cascade candidate change fraction.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_candidate_change_fraction() - Returns the cascade candidate change fraction


Sets the candidate limit

  • « fann_set_cascade_candidate_change_fraction
  • fann_set_cascade_candidate_stagnation_epochs »
  • PHP Manual
  • Функции Fann
  • Sets the candidate limit

fann_set_cascade_candidate_limit

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_limit — Sets the candidate limit

Описание

fann_set_cascade_candidate_limit ( resource $ann , float $cascade_candidate_limit ) : bool

Sets the candidate limit.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_candidate_limit

The candidate limit.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_candidate_limit() - Return the candidate limit


Sets the number of cascade candidate stagnation epochs

  • « fann_set_cascade_candidate_limit
  • fann_set_cascade_max_cand_epochs »
  • PHP Manual
  • Функции Fann
  • Sets the number of cascade candidate stagnation epochs

fann_set_cascade_candidate_stagnation_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_stagnation_epochs — Sets the number of cascade candidate stagnation epochs

Описание

fann_set_cascade_candidate_stagnation_epochs ( resource $ann , int $cascade_candidate_stagnation_epochs ) : bool

Sets the number of cascade candidate stagnation epochs.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_candidate_stagnation_epochs

The number of cascade candidate stagnation epochs.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_candidate_stagnation_epochs() - Returns the number of cascade candidate stagnation epochs


Sets the max candidate epochs

  • « fann_set_cascade_candidate_stagnation_epochs
  • fann_set_cascade_max_out_epochs »
  • PHP Manual
  • Функции Fann
  • Sets the max candidate epochs

fann_set_cascade_max_cand_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_max_cand_epochs — Sets the max candidate epochs

Описание

fann_set_cascade_max_cand_epochs ( resource $ann , int $cascade_max_cand_epochs ) : bool

Sets the max candidate epochs.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_max_cand_epochs

The max candidate epochs.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_max_cand_epochs() - Returns the maximum candidate epochs


Sets the maximum out epochs

  • « fann_set_cascade_max_cand_epochs
  • fann_set_cascade_min_cand_epochs »
  • PHP Manual
  • Функции Fann
  • Sets the maximum out epochs

fann_set_cascade_max_out_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_max_out_epochs — Sets the maximum out epochs

Описание

fann_set_cascade_max_out_epochs ( resource $ann , int $cascade_max_out_epochs ) : bool

Sets the maximum out epochs.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_max_out_epochs

The maximum out epochs.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_max_out_epochs() - Returns the maximum out epochs


Sets the min candidate epochs

  • « fann_set_cascade_max_out_epochs
  • fann_set_cascade_min_out_epochs »
  • PHP Manual
  • Функции Fann
  • Sets the min candidate epochs

fann_set_cascade_min_cand_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_min_cand_epochs — Sets the min candidate epochs

Описание

fann_set_cascade_min_cand_epochs ( resource $ann , int $cascade_min_cand_epochs ) : bool

Sets the min candidate epochs.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_min_cand_epochs

The minimum candidate epochs.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_min_cand_epochs() - Returns the minimum candidate epochs


Sets the minimum out epochs

  • « fann_set_cascade_min_cand_epochs
  • fann_set_cascade_num_candidate_groups »
  • PHP Manual
  • Функции Fann
  • Sets the minimum out epochs

fann_set_cascade_min_out_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_min_out_epochs — Sets the minimum out epochs

Описание

fann_set_cascade_min_out_epochs ( resource $ann , int $cascade_min_out_epochs ) : bool

Sets the minimum out epochs.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_min_out_epochs

The minimum out epochs.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_min_out_epochs() - Returns the minimum out epochs


Sets the number of candidate groups

  • « fann_set_cascade_min_out_epochs
  • fann_set_cascade_output_change_fraction »
  • PHP Manual
  • Функции Fann
  • Sets the number of candidate groups

fann_set_cascade_num_candidate_groups

(PECL fann >= 1.0.0)

fann_set_cascade_num_candidate_groups — Sets the number of candidate groups

Описание

fann_set_cascade_num_candidate_groups ( resource $ann , int $cascade_num_candidate_groups ) : bool

Sets the number of candidate groups.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_num_candidate_groups

The number of candidate groups.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_num_candidate_groups() - Returns the number of candidate groups


Sets the cascade output change fraction

  • « fann_set_cascade_num_candidate_groups
  • fann_set_cascade_output_stagnation_epochs »
  • PHP Manual
  • Функции Fann
  • Sets the cascade output change fraction

fann_set_cascade_output_change_fraction

(PECL fann >= 1.0.0)

fann_set_cascade_output_change_fraction — Sets the cascade output change fraction

Описание

fann_set_cascade_output_change_fraction ( resource $ann , float $cascade_output_change_fraction ) : bool

Sets the cascade output change fraction.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_output_change_fraction

The cascade output change fraction.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_output_change_fraction() - Returns the cascade output change fraction


Sets the number of cascade output stagnation epochs

  • « fann_set_cascade_output_change_fraction
  • fann_set_cascade_weight_multiplier »
  • PHP Manual
  • Функции Fann
  • Sets the number of cascade output stagnation epochs

fann_set_cascade_output_stagnation_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_output_stagnation_epochs — Sets the number of cascade output stagnation epochs

Описание

fann_set_cascade_output_stagnation_epochs ( resource $ann , int $cascade_output_stagnation_epochs ) : bool

Sets the number of cascade output stagnation epochs.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_output_stagnation_epochs

The number of cascade output stagnation epochs.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_output_stagnation_epochs() - Returns the number of cascade output stagnation epochs


Sets the weight multiplier

  • « fann_set_cascade_output_stagnation_epochs
  • fann_set_error_log »
  • PHP Manual
  • Функции Fann
  • Sets the weight multiplier

fann_set_cascade_weight_multiplier

(PECL fann >= 1.0.0)

fann_set_cascade_weight_multiplier — Sets the weight multiplier

Описание

fann_set_cascade_weight_multiplier ( resource $ann , float $cascade_weight_multiplier ) : bool

Sets the weight multiplier.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_weight_multiplier

The weight multiplier.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_weight_multiplier() - Returns the weight multiplier


Sets where the errors are logged to

  • « fann_set_cascade_weight_multiplier
  • fann_set_input_scaling_params »
  • PHP Manual
  • Функции Fann
  • Sets where the errors are logged to

fann_set_error_log

(PECL fann >= 1.0.0)

fann_set_error_log — Sets where the errors are logged to

Описание

fann_set_error_log ( resource $errdat , string $log_file ) : void

Sets where the errors are logged to.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

log_file

The log file path.

Возвращаемые значения

Не возвращает никакого значения.


Calculate input scaling parameters for future use based on training data

  • « fann_set_error_log
  • fann_set_learning_momentum »
  • PHP Manual
  • Функции Fann
  • Calculate input scaling parameters for future use based on training data

fann_set_input_scaling_params

(PECL fann >= 1.0.0)

fann_set_input_scaling_params — Calculate input scaling parameters for future use based on training data

Описание

fann_set_input_scaling_params ( resource $ann , resource $train_data , float $new_input_min , float $new_input_max ) : bool

Calculate input scaling parameters for future use based on training data.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_input_min

The desired lower bound in input data after scaling (not strictly followed)

new_input_max

The desired upper bound in input data after scaling (not strictly followed)

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_output_scaling_params() - Calculate output scaling parameters for future use based on training data


Sets the learning momentum

  • « fann_set_input_scaling_params
  • fann_set_learning_rate »
  • PHP Manual
  • Функции Fann
  • Sets the learning momentum

fann_set_learning_momentum

(PECL fann >= 1.0.0)

fann_set_learning_momentum — Sets the learning momentum

Описание

fann_set_learning_momentum ( resource $ann , float $learning_momentum ) : bool

Sets the learning momentum.

More info available in fann_get_learning_momentum().

Список параметров

ann

Ресурс (resource) нейронной сети.

learning_momentum

The learning momentum.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_learning_momentum() - Returns the learning momentum
  • fann_set_training_algorithm() - Sets the training algorithm


Sets the learning rate

  • « fann_set_learning_momentum
  • fann_set_output_scaling_params »
  • PHP Manual
  • Функции Fann
  • Sets the learning rate

fann_set_learning_rate

(PECL fann >= 1.0.0)

fann_set_learning_rate — Sets the learning rate

Описание

fann_set_learning_rate ( resource $ann , float $learning_rate ) : bool

Sets the learning rate.

More info available in fann_get_learning_rate().

Список параметров

ann

Ресурс (resource) нейронной сети.

learning_rate

The learning rate.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_learning_rate() - Returns the learning rate
  • fann_set_training_algorithm() - Sets the training algorithm


Calculate output scaling parameters for future use based on training data

  • « fann_set_learning_rate
  • fann_set_quickprop_decay »
  • PHP Manual
  • Функции Fann
  • Calculate output scaling parameters for future use based on training data

fann_set_output_scaling_params

(PECL fann >= 1.0.0)

fann_set_output_scaling_params — Calculate output scaling parameters for future use based on training data

Описание

fann_set_output_scaling_params ( resource $ann , resource $train_data , float $new_output_min , float $new_output_max ) : bool

Calculate output scaling parameters for future use based on training data.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_output_min

The desired lower bound in output data after scaling (not strictly followed)

new_output_max

The desired upper bound in output data after scaling (not strictly followed)

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_input_scaling_params() - Calculate input scaling parameters for future use based on training data


Sets the quickprop decay factor

  • « fann_set_output_scaling_params
  • fann_set_quickprop_mu »
  • PHP Manual
  • Функции Fann
  • Sets the quickprop decay factor

fann_set_quickprop_decay

(PECL fann >= 1.0.0)

fann_set_quickprop_decay — Sets the quickprop decay factor

Описание

fann_set_quickprop_decay ( resource $ann , float $quickprop_decay ) : bool

Sets the quickprop decay factor.

Список параметров

ann

Ресурс (resource) нейронной сети.

quickprop_decay

The quickprop decay factor.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_quickprop_decay() - Returns the decay which is a factor that weights should decrease in each iteration during quickprop training


Sets the quickprop mu factor

  • « fann_set_quickprop_decay
  • fann_set_rprop_decrease_factor »
  • PHP Manual
  • Функции Fann
  • Sets the quickprop mu factor

fann_set_quickprop_mu

(PECL fann >= 1.0.0)

fann_set_quickprop_mu — Sets the quickprop mu factor

Описание

fann_set_quickprop_mu ( resource $ann , float $quickprop_mu ) : bool

Sets the quickprop mu factor.

Список параметров

ann

Ресурс (resource) нейронной сети.

quickprop_mu

The mu factor.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_quickprop_mu() - Returns the mu factor


Sets the decrease factor used during RPROP training

  • « fann_set_quickprop_mu
  • fann_set_rprop_delta_max »
  • PHP Manual
  • Функции Fann
  • Sets the decrease factor used during RPROP training

fann_set_rprop_decrease_factor

(PECL fann >= 1.0.0)

fann_set_rprop_decrease_factor — Sets the decrease factor used during RPROP training

Описание

fann_set_rprop_decrease_factor ( resource $ann , float $rprop_decrease_factor ) : bool

Sets the decrease factor used during RPROP training.

Список параметров

ann

Ресурс (resource) нейронной сети.

rprop_decrease_factor

The decrease factor.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_rprop_decrease_factor() - Returns the increase factor used during RPROP training


Sets the maximum step-size

  • « fann_set_rprop_decrease_factor
  • fann_set_rprop_delta_min »
  • PHP Manual
  • Функции Fann
  • Sets the maximum step-size

fann_set_rprop_delta_max

(PECL fann >= 1.0.0)

fann_set_rprop_delta_max — Sets the maximum step-size

Описание

fann_set_rprop_delta_max ( resource $ann , float $rprop_delta_max ) : bool

The maximum step-size is a positive number determining how large the maximum step-size may be.

Список параметров

ann

Ресурс (resource) нейронной сети.

rprop_delta_max

The maximum step-size.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_rprop_delta_max() - Returns the maximum step-size
  • fann_get_rprop_delta_min() - Returns the minimum step-size


Sets the minimum step-size

  • « fann_set_rprop_delta_max
  • fann_set_rprop_delta_zero »
  • PHP Manual
  • Функции Fann
  • Sets the minimum step-size

fann_set_rprop_delta_min

(PECL fann >= 1.0.0)

fann_set_rprop_delta_min — Sets the minimum step-size

Описание

fann_set_rprop_delta_min ( resource $ann , float $rprop_delta_min ) : bool

The minimum step-size is a small positive number determining how small the minimum step-size may be.

Список параметров

ann

Ресурс (resource) нейронной сети.

rprop_delta_min

The minimum step-size.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_rprop_delta_min() - Returns the minimum step-size


Sets the initial step-size

  • « fann_set_rprop_delta_min
  • fann_set_rprop_increase_factor »
  • PHP Manual
  • Функции Fann
  • Sets the initial step-size

fann_set_rprop_delta_zero

(PECL fann >= 1.0.0)

fann_set_rprop_delta_zero — Sets the initial step-size

Описание

fann_set_rprop_delta_zero ( resource $ann , float $rprop_delta_zero ) : bool

The initial step-size is a positive number determining the initial step size.

Список параметров

ann

Ресурс (resource) нейронной сети.

rprop_delta_zero

The initial step-size.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_rprop_delta_zero() - Returns the initial step-size
  • fann_get_rprop_delta_min() - Returns the minimum step-size
  • fann_get_rprop_delta_max() - Returns the maximum step-size


Sets the increase factor used during RPROP training

  • « fann_set_rprop_delta_zero
  • fann_set_sarprop_step_error_shift »
  • PHP Manual
  • Функции Fann
  • Sets the increase factor used during RPROP training

fann_set_rprop_increase_factor

(PECL fann >= 1.0.0)

fann_set_rprop_increase_factor — Sets the increase factor used during RPROP training

Описание

fann_set_rprop_increase_factor ( resource $ann , float $rprop_increase_factor ) : bool

Sets the increase factor used during RPROP training.

Список параметров

ann

Ресурс (resource) нейронной сети.

rprop_increase_factor

The increase factor.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_rprop_increase_factor() - Returns the increase factor used during RPROP training


Sets the sarprop step error shift

  • « fann_set_rprop_increase_factor
  • fann_set_sarprop_step_error_threshold_factor »
  • PHP Manual
  • Функции Fann
  • Sets the sarprop step error shift

fann_set_sarprop_step_error_shift

(PECL fann >= 1.0.0)

fann_set_sarprop_step_error_shift — Sets the sarprop step error shift

Описание

fann_set_sarprop_step_error_shift ( resource $ann , float $sarprop_step_error_shift ) : bool

Sets the sarprop step error shift.

Список параметров

ann

Ресурс (resource) нейронной сети.

sarprop_step_error_shift

The sarprop step error shift.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_sarprop_step_error_shift() - Returns the sarprop step error shift


Sets the sarprop step error threshold factor

  • « fann_set_sarprop_step_error_shift
  • fann_set_sarprop_temperature »
  • PHP Manual
  • Функции Fann
  • Sets the sarprop step error threshold factor

fann_set_sarprop_step_error_threshold_factor

(PECL fann >= 1.0.0)

fann_set_sarprop_step_error_threshold_factor — Sets the sarprop step error threshold factor

Описание

fann_set_sarprop_step_error_threshold_factor ( resource $ann , float $sarprop_step_error_threshold_factor ) : bool

Sets the sarprop step error threshold factor.

Список параметров

ann

Ресурс (resource) нейронной сети.

sarprop_step_error_threshold_factor

The sarprop step error threshold factor.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_sarprop_step_error_threshold_factor() - Returns the sarprop step error threshold factor


Sets the sarprop temperature

  • « fann_set_sarprop_step_error_threshold_factor
  • fann_set_sarprop_weight_decay_shift »
  • PHP Manual
  • Функции Fann
  • Sets the sarprop temperature

fann_set_sarprop_temperature

(PECL fann >= 1.0.0)

fann_set_sarprop_temperature — Sets the sarprop temperature

Описание

fann_set_sarprop_temperature ( resource $ann , float $sarprop_temperature ) : bool

Sets the sarprop temperature.

Список параметров

ann

Ресурс (resource) нейронной сети.

sarprop_temperature

The sarprop temperature.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_sarprop_temperature() - Returns the sarprop temperature


Sets the sarprop weight decay shift

  • « fann_set_sarprop_temperature
  • fann_set_scaling_params »
  • PHP Manual
  • Функции Fann
  • Sets the sarprop weight decay shift

fann_set_sarprop_weight_decay_shift

(PECL fann >= 1.0.0)

fann_set_sarprop_weight_decay_shift — Sets the sarprop weight decay shift

Описание

fann_set_sarprop_weight_decay_shift ( resource $ann , float $sarprop_weight_decay_shift ) : bool

Sets the sarprop weight decay shift.

Список параметров

ann

Ресурс (resource) нейронной сети.

sarprop_weight_decay_shift

The sarprop weight decay shift.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_sarprop_weight_decay_shift() - Returns the sarprop weight decay shift


Calculate input and output scaling parameters for future use based on training data

  • « fann_set_sarprop_weight_decay_shift
  • fann_set_train_error_function »
  • PHP Manual
  • Функции Fann
  • Calculate input and output scaling parameters for future use based on training data

fann_set_scaling_params

(PECL fann >= 1.0.0)

fann_set_scaling_params — Calculate input and output scaling parameters for future use based on training data

Описание

fann_set_scaling_params ( resource $ann , resource $train_data , float $new_input_min , float $new_input_max , float $new_output_min , float $new_output_max ) : bool

Calculate input and output scaling parameters for future use based on training data.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_input_min

The desired lower bound in input data after scaling (not strictly followed)

new_input_max

The desired upper bound in input data after scaling (not strictly followed)

new_output_min

The desired lower bound in output data after scaling (not strictly followed)

new_output_max

The desired upper bound in output data after scaling (not strictly followed)

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_input_scaling_params() - Calculate input scaling parameters for future use based on training data
  • fann_set_output_scaling_params() - Calculate output scaling parameters for future use based on training data


Sets the error function used during training

  • « fann_set_scaling_params
  • fann_set_train_stop_function »
  • PHP Manual
  • Функции Fann
  • Sets the error function used during training

fann_set_train_error_function

(PECL fann >= 1.0.0)

fann_set_train_error_function — Sets the error function used during training

Описание

fann_set_train_error_function ( resource $ann , int $error_function ) : bool

Sets the error function used during training.

The error functions are described further in error functions constants.

Список параметров

ann

Ресурс (resource) нейронной сети.

error_function

The error function constant

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_train_error_function() - Returns the error function used during training


Sets the stop function used during training

  • « fann_set_train_error_function
  • fann_set_training_algorithm »
  • PHP Manual
  • Функции Fann
  • Sets the stop function used during training

fann_set_train_stop_function

(PECL fann >= 1.0.0)

fann_set_train_stop_function — Sets the stop function used during training

Описание

fann_set_train_stop_function ( resource $ann , int $stop_function ) : bool

Sets the stop function used during training.

The stop functions are described further in stop functions constants.

Список параметров

ann

Ресурс (resource) нейронной сети.

stop_function

The stop function constant.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_train_stop_function() - Returns the stop function used during training


Sets the training algorithm

  • « fann_set_train_stop_function
  • fann_set_weight_array »
  • PHP Manual
  • Функции Fann
  • Sets the training algorithm

fann_set_training_algorithm

(PECL fann >= 1.0.0)

fann_set_training_algorithm — Sets the training algorithm

Описание

fann_set_training_algorithm ( resource $ann , int $training_algorithm ) : bool

Sets the training algorithm.

More info available in fann_get_training_algorithm().

Список параметров

ann

Ресурс (resource) нейронной сети.

training_algorithm

Training algorithm constant

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_training_algorithm() - Returns the training algorithm


Создание связей в сети

  • « fann_set_training_algorithm
  • fann_set_weight »
  • PHP Manual
  • Функции Fann
  • Создание связей в сети

fann_set_weight_array

(PECL fann >= 1.0.0)

fann_set_weight_array — Создание связей в сети

Описание

fann_set_weight_array ( resource $ann , array $connections ) : bool

Создание связей в сети.

Могут быть изменены только весовые коэффициенты, несуществующие в сети связи и веса будут игнорироваться.

Список параметров

ann

Ресурс (resource) нейронной сети.

connections

Массив объектов FANNConnection

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.


Создание связи в сети

  • « fann_set_weight_array
  • fann_shuffle_train_data »
  • PHP Manual
  • Функции Fann
  • Создание связи в сети

fann_set_weight

(PECL fann >= 1.0.0)

fann_set_weight — Создание связи в сети

Описание

fann_set_weight ( resource $ann , int $from_neuron , int $to_neuron , float $weight ) : bool

Создает связь в сети.

Список параметров

ann

Ресурс (resource) нейронной сети.

from_neuron

Начальный нейрон

to_neuron

Конечный нейрон

weight

Вес связи

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.


Перемешивает обучающие данные в случайном порядке

  • « fann_set_weight
  • fann_subset_train_data »
  • PHP Manual
  • Функции Fann
  • Перемешивает обучающие данные в случайном порядке

fann_shuffle_train_data

(PECL fann >= 1.0.0)

fann_shuffle_train_data — Перемешивает обучающие данные в случайном порядке

Описание

fann_shuffle_train_data ( resource $train_data ) : bool

Перемешивает обучающие данные в случайном порядке. Рекомендуется использовать при инкрементальном обучении, но никак не влияет на пакетное обучение.

Список параметров

train_data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.


Получить копию подмножества из обучающих данных

  • « fann_shuffle_train_data
  • fann_test_data »
  • PHP Manual
  • Функции Fann
  • Получить копию подмножества из обучающих данных

fann_subset_train_data

(PECL fann >= 1.0.0)

fann_subset_train_data — Получить копию подмножества из обучающих данных

Описание

fann_subset_train_data ( resource $data , int $pos , int $length ) : resource

Возвращает копию подмножества из обучающих данных resource, начинающихся с pos и длиной length элементов.

fann_subset_train_data(train_data, 0, fann_length_train_data(train_data)) делает тоже самое, что и fann_duplicate_train_data()

Список параметров

data

Ресурс (resource) обучающих данных нейронной сети.

pos

Начальная позиция.

length

Количество копируемых элементов.

Возвращаемые значения

Возвращает ресурс (resource) обучающих данных, или FALSE в случае ошибки.

Смотрите также

  • fann_duplicate_train_data() - Returns an exact copy of a fann train data


Тестирование набора обучающих данных и вычисление MSE для него

  • « fann_subset_train_data
  • fann_test »
  • PHP Manual
  • Функции Fann
  • Тестирование набора обучающих данных и вычисление MSE для него

fann_test_data

(PECL fann >= 1.0.0)

fann_test_data — Тестирование набора обучающих данных и вычисление MSE для него

Описание

fann_test_data ( resource $ann , resource $data ) : float

Тестирование набора обучающих данных и вычисление MSE для него.

Эта функция обновляет MSE и значения бит неудачи.

Список параметров

ann

Ресурс (resource) нейронной сети.

data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Обновленная MSE, или FALSE в случае возникновения ошибки.

Смотрите также

  • fann_train_on_data() - Обучение на всем объеме данных на временном интервале
  • fann_train_epoch() - Обучение в течение одной эпохи
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_training_algorithm() - Sets the training algorithm


Тестирование с набором входных данных и желаемым результатом

  • « fann_test_data
  • fann_train_epoch »
  • PHP Manual
  • Функции Fann
  • Тестирование с набором входных данных и желаемым результатом

fann_test

(PECL fann >= 1.0.0)

fann_test — Тестирование с набором входных данных и желаемым результатом

Описание

fann_test ( resource $ann , array $input , array $desired_output ) : array

Тестирование с набором входных данных и желаемым результатом. Эта операция обновит среднеквадратичную ошибку, но не поменяет сеть.

Список параметров

ann

Ресурс (resource) нейронной сети.

input

Массив входных данных. Размер массива должен точно соответствовать fann_get_num_input().

desired_output

Массив желаемых результатов. Размер массива должен точно соответствовать fann_get_num_output().

Возвращаемые значения

Возвращает тестовые выводы в случае успешного выполнения или FALSE в случае возникновения ошибки

Смотрите также

  • fann_test_data() - Тестирование набора обучающих данных и вычисление MSE для него
  • fann_train() - Провести одну итерацию обучения с набором входных данных и желаемым результатом
  • fann_get_num_input() - Get the number of input neurons
  • fann_get_num_output() - Get the number of output neurons


Обучение в течение одной эпохи

  • « fann_test
  • fann_train_on_data »
  • PHP Manual
  • Функции Fann
  • Обучение в течение одной эпохи

fann_train_epoch

(PECL fann >= 1.0.0)

fann_train_epoch — Обучение в течение одной эпохи

Описание

fann_train_epoch ( resource $ann , resource $data ) : float

Обучение в течение одной эпохи. Одна эпоха определяет, что все обучающие данные будут использованы ровно один раз.

Эта функция возвращает сообщение об ошибке MSE, рассчитываемой либо до, либо во время фактического обучения. Это не актуальное значение MSE, посчитанное после обучения в течение эпохи, но, так как для его расчета пришлось бы перебрать обучающий набор еще раз, то более удобно будет использовать это значение.

Алгоритм обучения используемый этой функцией выбирается с помощью fann_set_training_algorithm().

Список параметров

ann

Ресурс (resource) нейронной сети.

data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

MSE или FALSE в случае возникновения ошибки.

Смотрите также

  • fann_train_on_data() - Обучение на всем объеме данных на временном интервале
  • fann_test_data() - Тестирование набора обучающих данных и вычисление MSE для него
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_training_algorithm() - Sets the training algorithm


Обучение на всем объеме данных на временном интервале

  • « fann_train_epoch
  • fann_train_on_file »
  • PHP Manual
  • Функции Fann
  • Обучение на всем объеме данных на временном интервале

fann_train_on_data

(PECL fann >= 1.0.0)

fann_train_on_data — Обучение на всем объеме данных на временном интервале

Описание

fann_train_on_data ( resource $ann , resource $data , int $max_epochs , int $epochs_between_reports , float $desired_error ) : bool

Обучение на полном наборе данных, на временном интервале.

Это обучение использует алгоритм, выбранный функцией fann_set_training_algorithm() и набор параметров для этих алгоритмов.

Список параметров

ann

Ресурс (resource) нейронной сети.

data

Ресурс (resource) обучающих данных нейронной сети.

max_epochs

Максимальное количество эпох, которое должно продолжаться обучение

epochs_between_reports

Количество эпох между вызовами пользовательской функции. Если равно нулю, то функция не будет запускаться.

desired_error

Желаемая fann_get_MSE() или fann_get_bit_fail(), в зависимости от выбранной функции остановки fann_set_train_stop_function()

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_train_on_file() - Обучение на полном наборе данных, прочитанном из файла, на временном интервале
  • fann_train_epoch() - Обучение в течение одной эпохи
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_train_stop_function() - Sets the stop function used during training
  • fann_set_training_algorithm() - Sets the training algorithm
  • fann_set_callback() - Sets the callback function for use during training


Обучение на полном наборе данных, прочитанном из файла, на временном интервале

  • « fann_train_on_data
  • fann_train »
  • PHP Manual
  • Функции Fann
  • Обучение на полном наборе данных, прочитанном из файла, на временном интервале

fann_train_on_file

(PECL fann >= 1.0.0)

fann_train_on_file — Обучение на полном наборе данных, прочитанном из файла, на временном интервале

Описание

fann_train_on_file ( resource $ann , string $filename , int $max_epochs , int $epochs_between_reports , float $desired_error ) : bool

Обучение на полном наборе данных, прочитанном из файла, на временном интервале.

Это обучение использует алгоритм, выбранный функцией fann_set_training_algorithm() и набор параметров для этих алгоритмов.

Список параметров

ann

Ресурс (resource) нейронной сети.

filename

Файл, содержащий обучающие данные

max_epochs

Максимальное количество эпох, которое должно продолжаться обучение

epochs_between_reports

Количество эпох между вызовами пользовательской функции. Если равно нулю, то функция не будет запускаться.

desired_error

Желаемая fann_get_MSE() или fann_get_bit_fail(), в зависимости от выбранной функции остановки fann_set_train_stop_function()

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_train_on_data() - Обучение на всем объеме данных на временном интервале
  • fann_train_epoch() - Обучение в течение одной эпохи
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_train_stop_function() - Sets the stop function used during training
  • fann_set_training_algorithm() - Sets the training algorithm
  • fann_set_callback() - Sets the callback function for use during training


Провести одну итерацию обучения с набором входных данных и желаемым результатом

  • « fann_train_on_file
  • FANNConnection »
  • PHP Manual
  • Функции Fann
  • Провести одну итерацию обучения с набором входных данных и желаемым результатом

fann_train

(PECL fann >= 1.0.0)

fann_train — Провести одну итерацию обучения с набором входных данных и желаемым результатом

Описание

fann_train ( resource $ann , array $input , array $desired_output ) : bool

Провести одну итерацию обучения с набором входных данных и желаемым результатом. Это обучение всегда инкрементальное, так как представлена только одна модель.

Список параметров

ann

Ресурс (resource) нейронной сети.

input

Массив входных данных. Размер массива должен точно соответствовать fann_get_num_input().

desired_output

Массив желаемых результатов. Размер массива должен точно соответствовать fann_get_num_output().

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_train_on_data() - Обучение на всем объеме данных на временном интервале
  • fann_train_epoch() - Обучение в течение одной эпохи
  • fann_get_num_input() - Get the number of input neurons
  • fann_get_num_output() - Get the number of output neurons


Класс FANNConnection

(Информация о версии неизвестна, возможно, только в Git)

Введение

FANNConnection используется для связи нейронной сети. Объекты этого класса используются в функциях fann_get_connection_array() и fann_set_weight_array().

Обзор классов

FANNConnection {
/* Свойства */
public $from_neuron ;
public $to_neuron ;
public $weight ;
/* Методы */
public __construct ( int $from_neuron , int $to_neuron , float $weight )
public getFromNeuron ( void ) : int
public getToNeuron ( void ) : int
public getWeight ( void ) : void
public setWeight ( float $weight ) : void
}

Свойства

from_neuron

Первый нейрон (начальный)

to_neuron

Второй нейрон (конечный)

weight

Вес связи

Содержание

  • FANNConnection::__construct — Конструктор связи
  • FANNConnection::getFromNeuron — Возвращает позицию стартового нейрона
  • FANNConnection::getToNeuron — Возвращает позицию конечного нейрона
  • FANNConnection::getWeight — Возвращает вес связи
  • FANNConnection::setWeight — Устанавливает вес связи


Конструктор связи

  • « FANNConnection
  • FANNConnection::getFromNeuron »
  • PHP Manual
  • FANNConnection
  • Конструктор связи

FANNConnection::__construct

(PECL fann >= 1.0.0)

FANNConnection::__construct — Конструктор связи

Описание

public FANNConnection::__construct ( int $from_neuron , int $to_neuron , float $weight )

Создает новую связь и инициализирует ее параметры. После создания связи можно будет изменить только ее вес.

Список параметров

from_neuron

Позиция стартового нейрона.

to_neuron

Позиция конечного нейрона.

weight

Вес связи.


Возвращает позицию стартового нейрона

  • « FANNConnection::__construct
  • FANNConnection::getToNeuron »
  • PHP Manual
  • FANNConnection
  • Возвращает позицию стартового нейрона

FANNConnection::getFromNeuron

(PECL fann >= 1.0.0)

FANNConnection::getFromNeuron — Возвращает позицию стартового нейрона

Описание

public FANNConnection::getFromNeuron ( void ) : int

Возвращает позицию стартового нейрона.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Позиция стартового нейрона.


Возвращает позицию конечного нейрона

  • « FANNConnection::getFromNeuron
  • FANNConnection::getWeight »
  • PHP Manual
  • FANNConnection
  • Возвращает позицию конечного нейрона

FANNConnection::getToNeuron

(PECL fann >= 1.0.0)

FANNConnection::getToNeuron — Возвращает позицию конечного нейрона

Описание

public FANNConnection::getToNeuron ( void ) : int

Возвращает позицию конечного нейрона.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Позиция конечного нейрона.


Возвращает вес связи

  • « FANNConnection::getToNeuron
  • FANNConnection::setWeight »
  • PHP Manual
  • FANNConnection
  • Возвращает вес связи

FANNConnection::getWeight

(PECL fann >= 1.0.0)

FANNConnection::getWeight — Возвращает вес связи

Описание

public FANNConnection::getWeight ( void ) : void

Возвращает вес связи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Вес связи.


Устанавливает вес связи

  • « FANNConnection::getWeight
  • JSON »
  • PHP Manual
  • FANNConnection
  • Устанавливает вес связи

FANNConnection::setWeight

(PECL fann >= 1.0.0)

FANNConnection::setWeight — Устанавливает вес связи

Описание

public FANNConnection::setWeight ( float $weight ) : void

Устанавливает вес связи.

Этот метод отличается от fann_set_weight(). Он не обновляет значения веса в сети. Значение в сети обновится только после вызова fann_set_weight_array().

Список параметров

weight

Вес связи.

Возвращаемые значения

Не возвращает никакого значения.


JavaScript Object Notation

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • JsonException — Класс JsonException
  • JsonSerializable — Интерфейс JsonSerializable
    • JsonSerializable::jsonSerialize — Задает данные, которые должны быть сериализованы в JSON
  • Функции JSON
    • json_decode — Декодирует строку JSON
    • json_encode — Возвращает JSON-представление данных
    • json_last_error_msg — Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()
    • json_last_error — Возвращает последнюю ошибку


Введение

Модуль реализует работу с текстовым форматом обмена данными » JavaScript Object Notation (JSON) Обработка в PHP5 осуществляется парсером, построенном на JSON_checker от Дугласа Крокфорда (Douglas Crockford). В PHP 7 используется полностью новый и улучшенный парсер, написанный специально для PHP и под его лицензией.

Замечание:

PHP реализует надмножество JSON, который описан в первоначальном » RFC 7159.


Установка

Начиная с PHP 5.2.0, расширение JSON по умолчанию входит в поставку PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/json


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Следующие константы указывают на тип ошибки, возвращенной функцией json_last_error() или хранящейся, как code в JsonException.

JSON_ERROR_NONE (integer)
Не произошло никаких ошибок. Доступна начиная с PHP 5.3.0.
JSON_ERROR_DEPTH (integer)
Была превышена максимальная глубина стека. Доступно с PHP 5.3.0.
JSON_ERROR_STATE_MISMATCH (integer)
Неверный или поврежденный JSON. Доступно с PHP 5.3.0.
JSON_ERROR_CTRL_CHAR (integer)
Ошибка управляющих символов, вероятно, из-за неверного кодирования. Доступно с PHP 5.3.0.
JSON_ERROR_SYNTAX (integer)
Синтаксическая ошибка. Доступно с PHP 5.3.0.
JSON_ERROR_UTF8 (integer)
Поврежденные символы UTF-8, вероятно, из-за неверного кодирования. Доступно с PHP 5.3.3.
JSON_ERROR_RECURSION (integer)
Объект или массив, переданный в функцию json_encode() включает рекурсивные ссылки и не может быть закодирован. Если была передана опция JSON_PARTIAL_OUTPUT_ON_ERROR, то на месте рекурсивных ссылок будет выведен NULL. Доступно с PHP 5.5.0.
JSON_ERROR_INF_OR_NAN (integer)
Значение, переданное в функцию json_encode(), включает либо NAN, либо INF. Если была указана константа JSON_PARTIAL_OUTPUT_ON_ERROR, то вместо указанных особых значений будет выведен 0. Доступно с PHP 5.5.0.
JSON_ERROR_UNSUPPORTED_TYPE (integer)
В функцию json_encode() было передано значение неподдерживаемого типа, например, resource. Если была указана константа JSON_PARTIAL_OUTPUT_ON_ERROR, то вместо неподдерживаемого значения будет выводиться NULL. Доступно с PHP 5.5.0.
JSON_ERROR_INVALID_PROPERTY_NAME (integer)
В строке переданной в json_decode() был ключ, начинающийся с символа \u0000. Доступно с PHP 7.0.0.
JSON_ERROR_UTF16 (integer)
Один непарный суррогат UTF-16 в экранированной последовательности Unicode в строке JSON, переданной в json_decode(). Доступно с PHP 7.0.0.

Можно комбинировать следующие константы для передачи в json_decode().

JSON_BIGINT_AS_STRING (integer)
Декодирует большие целые числа в качестве исходного значения строки. Доступно с PHP 5.4.0.
JSON_OBJECT_AS_ARRAY (integer)
Преобразует объекты JSON в массив PHP. Эта опция может быть задана автоматически, если вызвать json_decode() указав вторым параметром TRUE. Доступно с PHP 5.4.0.

Следующие константы можно комбинировать для использования в json_encode().

JSON_HEX_TAG (integer)
Все < и > кодируются в \u003C и \u003E. Доступно с PHP 5.3.0.
JSON_HEX_AMP (integer)
Все & кодируются в \u0026. Доступно с PHP 5.3.0.
JSON_HEX_APOS (integer)
Все символы ' кодируются в \u0027. Доступно с PHP 5.3.0.
JSON_HEX_QUOT (integer)
Все символы " кодируются в \u0022. Доступно с PHP 5.3.0.
JSON_FORCE_OBJECT (integer)
Выдавать объект вместо массива при использовании неассоциативного массива. Это полезно, когда принимающая программа или код ожидают объект, а массив пуст. Доступно с PHP 5.3.0.
JSON_NUMERIC_CHECK (integer)
Кодирование строк, содержащих числа, как числа. Доступно с PHP 5.3.3.
JSON_PRETTY_PRINT (integer)
Использовать пробельные символы в возвращаемых данных для их форматирования. Доступно с PHP 5.4.0.
JSON_UNESCAPED_SLASHES (integer)
Не экранировать /. Доступно с PHP 5.4.0.
JSON_UNESCAPED_UNICODE (integer)
Не кодировать многобайтовые символы Unicode (по умолчанию они кодируются как \uXXXX). Доступно с PHP 5.4.0.
JSON_PARTIAL_OUTPUT_ON_ERROR (integer)
Позволяет избежать возникновения ошибок при использовании функции json_encode. Осуществляет подстановку значений по умолчанию вместо некодируемых. Доступно с PHP 5.5.0.
JSON_PRESERVE_ZERO_FRACTION (integer)
Гарантирует, что значение типа float будет преобразовано именно в значение типа float в случае, если дробная часть равна 0. Доступно с PHP 5.6.6.
JSON_UNESCAPED_LINE_TERMINATORS (integer)
Символы конца строки не будут экранироваться, если задана константа JSON_UNESCAPED_UNICODE. Поведение будет таким же, какое оно было до PHP 7.1 без этой константы. Доступно с PHP 7.1.0.

Следующие константы можно комбинировать для использования в json_encode().

JSON_INVALID_UTF8_IGNORE (integer)
Игнорировать некорректные символы UTF-8. Доступно с PHP 7.2.0.
JSON_INVALID_UTF8_SUBSTITUTE (integer)
Преобразовывать некорректные символы UTF-8 в \0xfffd (Символ Юниокда 'REPLACEMENT CHARACTER') Доступно с PHP 7.2.0.
JSON_THROW_ON_ERROR (integer)
Выбрасывается исключение JsonException в случае возникновения ошибок вместо установки глобального состояния ошибки, которое может быть получено с помощью функции json_last_error() и json_last_error_msg(). Константа JSON_PARTIAL_OUTPUT_ON_ERROR имеет приоритет над JSON_THROW_ON_ERROR. Доступно с PHP 7.3.0.


Класс JsonException

(PHP 7 >= 7.3.0)

Введение

Данное исключение выбрасывается, если опция JSON_THROW_ON_ERROR
установлена для функции json_encode() или
json_decode(). code содержит тип
ошибки, смотрите возможные значения json_last_error().

Обзор классов

JsonException extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Интерфейс JsonSerializable

(PHP 5 >= 5.4.0, PHP 7)

Введение

Объекты, реализующие интерфейс JsonSerializable, могут модифицировать свое JSON-представление при кодировании с помощью json_encode().

Обзор интерфейсов

JsonSerializable {
/* Методы */
abstract public jsonSerialize ( void ) : mixed
}

Содержание

  • JsonSerializable::jsonSerialize — Задает данные, которые должны быть сериализованы в JSON


Задает данные, которые должны быть сериализованы в JSON

  • « JsonSerializable
  • Функции JSON »
  • PHP Manual
  • JsonSerializable
  • Задает данные, которые должны быть сериализованы в JSON

JsonSerializable::jsonSerialize

(PHP 5 >= 5.4.0, PHP 7)

JsonSerializable::jsonSerialize — Задает данные, которые должны быть сериализованы в JSON

Описание

abstract public JsonSerializable::jsonSerialize ( void ) : mixed

Сериализует объект в значение, которое изначально может быть сериализовано функцией json_encode().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные, которые могут быть сериализованы json_encode(), которые являются значением любого типа, кроме resource.

Примеры

Пример #1 Пример использования JsonSerializable::jsonSerialize(), возвращающий массив (array)

<?php
class ArrayValue implements JsonSerializable {
    public function __construct(array $array) {
        $this->array = $array;
    }

    public function jsonSerialize() {
        return $this->array;
    }
}

$array = [1, 2, 3];
echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT);
?>

Результат выполнения данного примера:

[
    1,
    2,
    3
]

Пример #2 Пример использования JsonSerializable::jsonSerialize(), возвращающий ассоциативный массив (array)

<?php
class ArrayValue implements JsonSerializable {
    public function __construct(array $array) {
        $this->array = $array;
    }

    public function jsonSerialize() {
        return $this->array;
    }
}

$array = ['foo' => 'bar', 'quux' => 'baz'];
echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT);
?>

Результат выполнения данного примера:

{
    "foo": "bar",
    "quux": "baz"
}

Пример #3 Пример использования JsonSerializable::jsonSerialize(), возвращающий целое значение (integer)

<?php
class IntegerValue implements JsonSerializable {
    public function __construct($number) {
        $this->number = (integer) $number;
    }

    public function jsonSerialize() {
        return $this->number;
    }
}

echo json_encode(new IntegerValue(1), JSON_PRETTY_PRINT);
?>

Результат выполнения данного примера:

1

Пример #4 Пример использования JsonSerializable::jsonSerialize(), возвращающий строку (string)

<?php
class StringValue implements JsonSerializable {
    public function __construct($string) {
        $this->string = (string) $string;
    }

    public function jsonSerialize() {
        return $this->string;
    }
}

echo json_encode(new StringValue('Hello!'), JSON_PRETTY_PRINT);
?>

Результат выполнения данного примера:

"Hello!"


Функции JSON

Содержание

  • json_decode — Декодирует строку JSON
  • json_encode — Возвращает JSON-представление данных
  • json_last_error_msg — Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()
  • json_last_error — Возвращает последнюю ошибку


Декодирует строку JSON

  • « Функции JSON
  • json_encode »
  • PHP Manual
  • Функции JSON
  • Декодирует строку JSON

json_decode

(PHP 5 >= 5.2.0, PHP 7, PECL json >= 1.2.0)

json_decode — Декодирует строку JSON

Описание

json_decode ( string $json [, bool $assoc = FALSE [, int $depth = 512 [, int $options = 0 ]]] ) : mixed

Принимает закодированную в JSON строку и преобразует ее в переменную PHP.

Список параметров

json

Строка (string) json для декодирования.

Эта функция работает только со строками в кодировке UTF-8.

Замечание:

PHP реализует надмножество JSON, который описан в первоначальном » RFC 7159.

assoc

Если TRUE, возвращаемые объекты будут преобразованы в ассоциативные массивы.

depth

Указывает глубину рекурсии.

options

Битовая маска из констант JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR. Поведение этих констант описаны на странице JSON-констант.

Возвращаемые значения

Возвращает данные json, преобразованные в соответствующие типы PHP. Значения true, false и null возвращаются как TRUE, FALSE и NULL соответственно. NULL также возвращается, если json не может быть преобразован или закодированные данные содержат вложенных уровней больше, чем допустимый предел для рекурсий.

Список изменений

Версия | Описание
7.3.0 | Добавлена константа JSON_THROW_ON_ERROR для параметра options.
7.2.0 | Добавлены константы JSON_INVALID_UTF8_IGNORE и JSON_INVALID_UTF8_SUBSTITUTE для параметра options.
7.1.0 | Пустой ключ JSON ("") будет преобразован в пустое свойство объекта, а не в свойство со значением _empty_.
7.0.0 | Отклонен несовместимый с RFC 7159 формат чисел - верхний уровень (07, 0xff, .1, -.1) и все уровни ([1.], [1.e1])
7.0.0 | Пустая строка PHP или значение, которое после преобразования к строке становится пустой строкой (NULL, FALSE) приводит к ошибке синтаксиса JSON.
5.6.0 | Некорректные варианты написания true, false и null(не в нижнем регистре) более не являются допустимыми значениями и вызовут предупреждение.
5.4.0 | Добавлены константы JSON_BIGINT_AS_STRING и JSON_OBJECT_AS_ARRAY для параметра options.
5.4.0 | Добавлен параметр options.
5.3.0 | Добавлен необязательный параметр depth. Значение глубины рекурсии по умолчанию изменено с 128 на 512
5.2.3 | Предел вложенности изменен с 20 на 128
5.2.1 | Добавлена поддержка декодирования базовых типов.

Примеры

Пример #1 Примеры использования json_decode()

<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));
var_dump(json_decode($json, true));

?>

Результат выполнения данного примера:

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

Пример #2 Доступ к свойствам объектов с неправильными именами

Доступ к элементам объекта, которые содержат символы, недопустимые в соответствии с соглашением об именах PHP (то есть дефис), может быть выполнен путем обрамления имени элемента фигурными скобками и апострофами.

<?php

$json = '{"foo-bar": 12345}';

$obj = json_decode($json);
print $obj->{'foo-bar'}; // 12345

?>

Пример #3 Распространенная ошибка при использовании json_decode()

<?php

// Следующие строки являются валидным кодом JavaScript, но не валидными JSON-данными

// Имя и значение должны помещаться в двойные кавычки
// Одинарные кавычки использовать нельзя
$bad_json = "{ 'bar': 'baz' }";
json_decode($bad_json); // null

// Имя должно обрамляться в двойные кавычки
$bad_json = '{ bar: "baz" }';
json_decode($bad_json); // null

// Не должно быть завершающей запятой (без последующего элемента)
$bad_json = '{ bar: "baz", }';
json_decode($bad_json); // null

?>

Пример #4 Ошибки с глубиной вложенных объектов (depth)

<?php
// Кодирование данных.
$json = json_encode(
    array(
        1 => array(
            'English' => array(
                'One',
                'January'
            ),
            'French' => array(
                'Une',
                'Janvier'
            )
        )
    )
);

// Создаем массив с ошибками.
$constants = get_defined_constants(true);
$json_errors = array();
foreach ($constants["json"] as $name => $value) {
    if (!strncmp($name, "JSON_ERROR_", 11)) {
        $json_errors[$value] = $name;
    }
}

// Отображаем ошибки для разных глубин рекурсий
foreach (range(4, 3, -1) as $depth) {
    var_dump(json_decode($json, true, $depth));
    echo 'Последняя ошибка: ', $json_errors[json_last_error()], PHP_EOL, PHP_EOL;
}
?>

Результат выполнения данного примера:

array(1) {
  [1]=>
  array(2) {
    ["English"]=>
    array(2) {
      [0]=>
      string(3) "One"
      [1]=>
      string(7) "January"
    }
    ["French"]=>
    array(2) {
      [0]=>
      string(3) "Une"
      [1]=>
      string(7) "Janvier"
    }
  }
}
Последняя ошибка: JSON_ERROR_NONE

NULL
Последняя ошибка: JSON_ERROR_DEPTH

Пример #5 json_decode() с большими целыми числами

<?php
$json = '{"number": 12345678901234567890}';

var_dump(json_decode($json));
var_dump(json_decode($json, false, 512, JSON_BIGINT_AS_STRING));

?>

Результат выполнения данного примера:

object(stdClass)#1 (1) {
  ["number"]=>
  float(1.2345678901235E+19)
}
object(stdClass)#1 (1) {
  ["number"]=>
  string(20) "12345678901234567890"
}

Примечания

Замечание:

Спецификация JSON - это не JavaScript, а его подмножество.

Замечание:

В случае ошибки декодирования можно использовать json_last_error() для определения ее причины.

Смотрите также

  • json_encode() - Возвращает JSON-представление данных
  • json_last_error() - Возвращает последнюю ошибку


Возвращает JSON-представление данных

  • « json_decode
  • json_last_error_msg »
  • PHP Manual
  • Функции JSON
  • Возвращает JSON-представление данных

json_encode

(PHP 5 >= 5.2.0, PHP 7, PECL json >= 1.2.0)

json_encode — Возвращает JSON-представление данных

Описание

json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] ) : string

Возвращает строку, содержащую JSON-представление для указанного value.

На кодирование влияет параметр options и, кроме того, кодирование значений типа float зависит от значения serialize_precision.

Список параметров

value

value - значение, которое будет закодировано. Может быть любого типа, кроме resource.

Функция работает только с кодировкой UTF-8.

Замечание:

PHP реализует надмножество JSON, который описан в первоначальном » RFC 7159.

options

Битовая маска, составляемая из значений JSON_FORCE_OBJECT, JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_NUMERIC_CHECK, JSON_PARTIAL_OUTPUT_ON_ERROR, JSON_PRESERVE_ZERO_FRACTION, JSON_PRETTY_PRINT, JSON_UNESCAPED_LINE_TERMINATORS, JSON_UNESCAPED_SLASHES, JSON_UNESCAPED_UNICODE, JSON_THROW_ON_ERROR. Смысл этих констант объясняется на странице JSON констант.

depth

Устанавливает максимальную глубину. Должен быть больше нуля.

Возвращаемые значения

Возвращает строку (string), закодированную JSON или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3.0 | Добавлена константа JSON_THROW_ON_ERROR для параметра options.
7.2.0 | Добавлены константы JSON_INVALID_UTF8_IGNORE и JSON_INVALID_UTF8_SUBSTITUTE для параметра options.
7.1.0 | Добавлена константа JSON_UNESCAPED_LINE_TERMINATORS для параметра options.
7.1.0 | При кодировании чисел с плавающей запятой используется serialize_precision вместо precision.
5.6.6 | Добавлена константа JSON_PRESERVE_ZERO_FRACTION для параметра options.
5.5.0 | Добавлен параметр depth.
5.5.0 | Добавлена константа JSON_PARTIAL_OUTPUT_ON_ERROR для параметра options.
5.5.0 | Возвращаемое значение в случае неудачи изменено со строки null на FALSE.
5.4.0 | Для options были добавлены константы JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES и JSON_UNESCAPED_UNICODE.
5.3.3 | Добавлена константа JSON_NUMERIC_CHECK для параметра options.
5.3.0 | Добавлены константы JSON_FORCE_OBJECT, JSON_HEX_AMP, JSON_HEX_APOS, JSON_HEX_QUOT и JSON_HEX_TAG, для параметра options.
5.3.0 | Был добавлен параметр options.

Примеры

Пример #1 Пример использования json_encode()

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

Результат выполнения данного примера:

{"a":1,"b":2,"c":3,"d":4,"e":5}

Пример #2 Пример использования json_encode() с опциями

<?php
$a = array('<foo>',"'bar'",'"baz"','&blong&', "\xc3\xa9");

echo "Обычно: ",     json_encode($a), "\n";
echo "Теги: ",       json_encode($a, JSON_HEX_TAG), "\n";
echo "Апострофы: ",  json_encode($a, JSON_HEX_APOS), "\n";
echo "Кавычки: ",    json_encode($a, JSON_HEX_QUOT), "\n";
echo "Амперсанды: ", json_encode($a, JSON_HEX_AMP), "\n";
echo "Юникод: ",     json_encode($a, JSON_UNESCAPED_UNICODE), "\n";
echo "Все: ",        json_encode($a, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE), "\n\n";

$b = array();

echo "Отображение пустого массива как массива: ", json_encode($b), "\n";
echo "Отображение неассоциативного массива как объекта: ", json_encode($b, JSON_FORCE_OBJECT), "\n\n";

$c = array(array(1,2,3));

echo "Отображение неассоциативного массива как массива: ", json_encode($c), "\n";
echo "Отображение неассоциативного массива как объекта: ", json_encode($c, JSON_FORCE_OBJECT), "\n\n";

$d = array('foo' => 'bar', 'baz' => 'long');

echo "Ассоциативный массив всегда отображается как объект: ", json_encode($d), "\n";
echo "Ассоциативный массив всегда отображается как объект: ", json_encode($d, JSON_FORCE_OBJECT), "\n\n";
?>

Результат выполнения данного примера:

Обычно: ["<foo>","'bar'","\"baz\"","&blong&","\u00e9"]
Теги: ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&","\u00e9"]
Апострофы: ["<foo>","\u0027bar\u0027","\"baz\"","&blong&","\u00e9"]
Кавычки: ["<foo>","'bar'","\u0022baz\u0022","&blong&","\u00e9"]
Амперсанды: ["<foo>","'bar'","\"baz\"","\u0026blong\u0026","\u00e9"]
Юникод: ["<foo>","'bar'","\"baz\"","&blong&","e"]
Все: ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026","e"]

Отображение пустого массива как массива: []
Отображение неассоциативного массива как объекта: {}

Отображение неассоциативного массива как массива: [[1,2,3]]
Отображение неассоциативного массива как объекта: {"0":{"0":1,"1":2,"2":3}}

Ассоциативный массив всегда отображается как объект: {"foo":"bar","baz":"long"}
Ассоциативный массив всегда отображается как объект: {"foo":"bar","baz":"long"}

Пример #3 Пример использования опции JSON_NUMERIC_CHECK

<?php
echo "Строки, содержащие числа преобразуются в числа".PHP_EOL;
$numbers = array('+123123', '-123123', '1.2e3', '0.00001');
var_dump(
 $numbers,
 json_encode($numbers, JSON_NUMERIC_CHECK)
);
echo "Строки, содержащие некорректно заданные числа".PHP_EOL;
$strings = array('+a33123456789', 'a123');
var_dump(
 $strings,
 json_encode($strings, JSON_NUMERIC_CHECK)
);
?>

Результатом выполнения данного примера будет что-то подобное:

Строки, содержащие числа преобразуются в числа
array(4) {
  [0]=>
  string(7) "+123123"
  [1]=>
  string(7) "-123123"
  [2]=>
  string(5) "1.2e3"
  [3]=>
  string(7) "0.00001"
}
string(28) "[123123,-123123,1200,1.0e-5]"
Строки, содержащие некорректно заданные числа
array(2) {
  [0]=>
  string(13) "+a33123456789"
  [1]=>
  string(4) "a123"
}
string(24) "["+a33123456789","a123"]"

Пример #4 Пример с последовательными индексами, начинающимися с нуля, и непоследовательными индексами массивов

<?php
echo "Последовательный массив".PHP_EOL;
$sequential = array("foo", "bar", "baz", "blong");
var_dump(
 $sequential,
 json_encode($sequential)
);

echo PHP_EOL."Непоследовательный массив".PHP_EOL;
$nonsequential = array(1=>"foo", 2=>"bar", 3=>"baz", 4=>"blong");
var_dump(
 $nonsequential,
 json_encode($nonsequential)
);

echo PHP_EOL."Последовательный массив с одним удаленным индексом".PHP_EOL;
unset($sequential[1]);
var_dump(
 $sequential,
 json_encode($sequential)
);
?>

Результат выполнения данного примера:

Последовательный массив
array(4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(27) "["foo","bar","baz","blong"]"

Непоследовательный массив
array(4) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(3) "baz"
  [4]=>
  string(5) "blong"
}
string(43) "{"1":"foo","2":"bar","3":"baz","4":"blong"}"

Последовательный массив с одним удаленным индексом
array(3) {
  [0]=>
  string(3) "foo"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(33) "{"0":"foo","2":"baz","3":"blong"}"

Пример #5 Пример использования опции JSON_PRESERVE_ZERO_FRACTION

<?php
var_dump(json_encode(12.0, JSON_PRESERVE_ZERO_FRACTION));
var_dump(json_encode(12.0));
?>

Результат выполнения данного примера:

string(4) "12.0"
string(2) "12"

Примечания

Замечание:

В случае ошибки кодирования можно использовать json_last_error() для определения точной ошибки.

Замечание:

При кодировании массива в случае, если его индексы не являются последовательными числами от нуля, то все индексы кодируются в строковые ключи для каждой пары индекс-значение.

Замечание:

Как и эталонный кодировщик JSON, json_encode() будет создавать JSON в виде простого значения (то есть не объект и не массив), если ему переданы типы string, integer, float или boolean в качестве входящего значения value. Большинство декодеров воспринимают эти значения как правильный JSON, но некоторые нет, потому что спецификация неоднозначна на этот счет.

Всегда проверяйте, что ваш декодер JSON может правильно обрабатывать данные, которые вы создаете с помощью json_encode().

Смотрите также

  • JsonSerializable
  • json_decode() - Декодирует строку JSON
  • json_last_error() - Возвращает последнюю ошибку
  • serialize() - Генерирует пригодное для хранения представление переменной


Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()

  • « json_encode
  • json_last_error »
  • PHP Manual
  • Функции JSON
  • Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()

json_last_error_msg

(PHP 5 >= 5.5.0, PHP 7)

json_last_error_msg — Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()

Описание

json_last_error_msg ( void ) : string

Возвращает текстовое описание последней ошибки, произошедшей при выполнении json_encode() или json_decode() без флага JSON_THROW_ON_ERROR.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сообщение об ошибке в случае успешного выполнения, "No error", если ошибки не произошло, или FALSE в случае возникновения ошибки.

Смотрите также

  • json_last_error() - Возвращает последнюю ошибку


Возвращает последнюю ошибку

  • « json_last_error_msg
  • Judy »
  • PHP Manual
  • Функции JSON
  • Возвращает последнюю ошибку

json_last_error

(PHP 5 >= 5.3.0, PHP 7)

json_last_error — Возвращает последнюю ошибку

Описание

json_last_error ( void ) : int

Возвращает последнюю ошибку (если она есть), произошедшую во время последнего кодирования/декодирования JSON если при вызове не использовался флаг JSON_THROW_ON_ERROR.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленное значение, которое может быть одной из следующих констант:

Коды ошибок JSON
Константа | Значение | Доступность
JSON_ERROR_NONE | Ошибок нет |
JSON_ERROR_DEPTH | Достигнута максимальная глубина стека |
JSON_ERROR_STATE_MISMATCH | Неверный или некорректный JSON |
JSON_ERROR_CTRL_CHAR | Ошибка управляющего символа, возможно неверная кодировка |
JSON_ERROR_SYNTAX | Синтаксическая ошибка |
JSON_ERROR_UTF8 | Некорректные символы UTF-8, возможно неверная кодировка | PHP 5.3.3
JSON_ERROR_RECURSION | Одна или несколько зацикленных ссылок в кодируемом значении | PHP 5.5.0
JSON_ERROR_INF_OR_NAN | Одно или несколько значений NAN или INF в кодируемом значении | PHP 5.5.0
JSON_ERROR_UNSUPPORTED_TYPE | Передано значение с неподдерживаемым типом | PHP 5.5.0
JSON_ERROR_INVALID_PROPERTY_NAME | Имя свойства не может быть закодировано | PHP 7.0.0
JSON_ERROR_UTF16 | Некорректный символ UTF-16, возможно некорректно закодирован | PHP 7.0.0

Примеры

Пример #1 Пример использования json_last_error()

<?php
// Верная json-строка
$json[] = '{"Organization": "PHP Documentation Team"}';

// Неверная json-строка, которая вызовет синтаксическую ошибку,
// здесь в качестве кавычек мы используем ' вместо "
$json[] = "{'Organization': 'PHP Documentation Team'}";

foreach ($json as $string) {
    echo 'Декодируем: ' . $string;
    json_decode($string);

    switch (json_last_error()) {
        case JSON_ERROR_NONE:
            echo ' - Ошибок нет';
        break;
        case JSON_ERROR_DEPTH:
            echo ' - Достигнута максимальная глубина стека';
        break;
        case JSON_ERROR_STATE_MISMATCH:
            echo ' - Некорректные разряды или несоответствие режимов';
        break;
        case JSON_ERROR_CTRL_CHAR:
            echo ' - Некорректный управляющий символ';
        break;
        case JSON_ERROR_SYNTAX:
            echo ' - Синтаксическая ошибка, некорректный JSON';
        break;
        case JSON_ERROR_UTF8:
            echo ' - Некорректные символы UTF-8, возможно неверно закодирован';
        break;
        default:
            echo ' - Неизвестная ошибка';
        break;
    }

    echo PHP_EOL;
}
?>

Результат выполнения данного примера:

Декодируем: {"Organization": "PHP Documentation Team"} - Ошибок нет
Декодируем: {'Organization': 'PHP Documentation Team'} - Синтаксическая ошибка, некорректный JSON

Пример #2 Совместное использование json_last_error() и json_encode()

<?php
// Некорректная последовательность UTF8
$text = "\xB1\x31";

$json  = json_encode($text);
$error = json_last_error();

var_dump($json, $error === JSON_ERROR_UTF8);
?>

Результат выполнения данного примера:

string(4) "null"
bool(true)

Пример #3 json_last_error() и JSON_THROW_ON_ERROR

<?php
// Некорректная последовательность UTF8, вызывающая JSON_ERROR_UTF8
json_encode("\xB1\x31");

// Не вызовет ошибки JSON
json_encode('okay', JSON_THROW_ON_ERROR);

// Глобальное состояние не будет изменено json_encode()
var_dump(json_last_error() === JSON_ERROR_UTF8);
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • json_last_error_msg() - Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()
  • json_decode() - Декодирует строку JSON
  • json_encode() - Возвращает JSON-представление данных


Массивы Judy

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Judy — Класс Judy
    • Judy::byCount — Найти N-ный по счету индекс в массиве Judy
    • Judy::__construct — Конструктор объекта Judy
    • Judy::count — Посчитать количество элементов в массиве Judy
    • Judy::__destruct — Уничтожить объект Judy
    • Judy::first — Ищет первый индекс в массиве Judy
    • Judy::firstEmpty — Поиск первого отсутствующего индекса в массиве Judy
    • Judy::free — Очищает весь массив Judy
    • Judy::getType — Возвращает тип текущего массива Judy
    • Judy::last — Поиск последнего индекса массива Judy
    • Judy::lastEmpty — Поиск последнего отсутствующего индекса в массиве Judy
    • Judy::memoryUsage — Возвращает количество памяти, использованное массивом Judy
    • Judy::next — Поиск следующего индекса в массиве Judy
    • Judy::nextEmpty — Ищет следующий отсутствующий индекс в массиве Judy
    • Judy::offsetExists — Определяет, существует ли смещение
    • Judy::offsetGet — Вернуть значение по указанному смещению
    • Judy::offsetSet — Установить значение по указанному смещению
    • Judy::offsetUnset — Удаляет элемент по указанному смещению
    • Judy::prev — Ищет предыдущий индекс в массиве Judy
    • Judy::prevEmpty — Ищет предыдущий отсутствующий индекс в массиве Judy
    • Judy::size — Возвращает размер текущего массива Judy
  • Функции Judy
    • judy_type — Возвращает тип массива Judy
    • judy_version — Возвращает и печатает версию Judy PHP


Введение

PHP Judy - это расширение PECL для » библиотеки Judy C , реализующей динамические разреженные массивы.

Массивы Judy представляют собой сложные, но очень быстрые структуры данных в виде ассоциативных массивов, предназначенные для хранения и доступа к данным по числовым либо строковым ключам. В отличие от обычных массивов, массивы Judy могут быть разреженными; то есть могут иметь большие диапазоны неназначенных индексов.

Массивы Judy потребляют память только при заполнении и могут расти до использования всей доступной памяти. Основные преимущества: масштабируемость, скорость, эффективное использование памяти и легкость в использовании. Эти массивы спроектированы таким образом, чтобы сохранять эффективность на очень больших размерах (вплоть до квадрилиона элементов), масштабируясь по O(log по основанию 256), то есть 1 дополнительное обращение к памяти для каждых дополнительных 256 элементов.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Это расширение требует наличия » библиотеки C Judy.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/judy

Установка на Linux

Из исходных кодов

Загрузите и установите » libJudy, после этого :

     phpize
     ./configure --with-judy[=DIR]
     make
     make test
     make install

Ubuntu/Debian

libJudy можно поставить с помощью apt-get:

     apt-get install libjudydebian1 libjudy-dev
После чего установите расширение Judy из PECL или из исходных кодов.

Установка на Windows

Загрузите » libJudy, потом разархивируйте исходные коды, откройте командную строку Visual Studio и перейдите в каталог с ними. После этого запустите:

build
Создастся "Judy.lib", который надо скопировать в директорию с библиотеками php-sdk переименовав в "libJudy.lib". После этого скопируйте "judy.h" в каталог php-sdk, содержащий прочие .h файлы.

После этого можно установить расширение из PECL или из исходных кодов, разархивировав их в вам каталог с исходными кодами и собрав таким образом:

    C:\php\pecl\judy\
Если исходники PHP лежат в:
    C:\php\src\
Остальные шаги аналогичны для сборки всех остальных расширений:
    buildconf
    configure --with-judy=shared
    nmake

Установка на macOS

Загрузите и установите » libJudy. После чего установите расширение Judy из PECL или из исходных кодов.


  • « Настройка во время выполнения
  • Judy »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Класс Judy

(PECL judy >= 0.1.1)

Введение

Класс Judy реализует интерфейсы ArrayAccess и Iterator. К этому классу можно обращаться, используя синтаксис массивов PHP.

Объект Judy (или Массив Judy) может быть одного из следующих типов:

  • Judy::BITSET
  • Judy::INT_TO_INT
  • Judy::INT_TO_MIXED
  • Judy::STRING_TO_INT
  • Judy::STRING_TO_MIXED

Пример #1 Пример массива Judy

<?php
    $judy = new Judy(Judy::INT_TO_MIXED);
    $judy[1] = "one";
    $judy[2] = array('a', 'b', 'c');
    $judy[3] = new Judy(Judy::BITSET);
?>

Обзор классов

Judy implements ArrayAccess , Iterator {
/* Константы */
const integer BITSET = 1 ;
const integer INT_TO_INT = 2 ;
const integer INT_TO_MIXED = 3 ;
const integer STRING_TO_INT = 4 ;
const integer STRING_TO_MIXED = 5 ;
/* Методы */
public byCount ( int $nth_index ) : int
public __construct ( int $judy_type )
public count ([ int $index_start = 0 [, int $index_end = -1 ]] ) : int
public __destruct ( void ) : void
public first ([ mixed $index ] ) : mixed
public firstEmpty ([ mixed $index = 0 ] ) : int
public free ( void ) : int
public getType ( void ) : int
public last ([ string $index ] ) : void
public lastEmpty ([ int $index = -1 ] ) : int
public memoryUsage ( void ) : int
public next ( mixed $index ) : mixed
public nextEmpty ( int $index ) : int
public offsetExists ( mixed $offset ) : bool
public offsetGet ( mixed $offset ) : mixed
public offsetSet ( mixed $offset , mixed $value ) : bool
public offsetUnset ( mixed $offset ) : bool
public prev ( mixed $index ) : mixed
public prevEmpty ( mixed $index ) : int
public size ( void ) : void
}

Предопределенные константы

Judy::BITSET

Определяет массив Judy как Bitset с ключами Integer и значениями Boolean.

Judy::INT_TO_INT

Определяет массив Judy как массив с ключами Integer и значениями Integer.

Judy::INT_TO_MIXED

Определяет массив Judy как массив с ключами Integer и значениями любого типа.

Judy::STRING_TO_INT

Определяет массив Judy как массив с ключами Integer и String и значениями Integer.

Judy::STRING_TO_MIXED

Определяет массив Judy как массив с ключами Integer и String и значениями любого типа.

Содержание

  • Judy::byCount — Найти N-ный по счету индекс в массиве Judy
  • Judy::__construct — Конструктор объекта Judy
  • Judy::count — Посчитать количество элементов в массиве Judy
  • Judy::__destruct — Уничтожить объект Judy
  • Judy::first — Ищет первый индекс в массиве Judy
  • Judy::firstEmpty — Поиск первого отсутствующего индекса в массиве Judy
  • Judy::free — Очищает весь массив Judy
  • Judy::getType — Возвращает тип текущего массива Judy
  • Judy::last — Поиск последнего индекса массива Judy
  • Judy::lastEmpty — Поиск последнего отсутствующего индекса в массиве Judy
  • Judy::memoryUsage — Возвращает количество памяти, использованное массивом Judy
  • Judy::next — Поиск следующего индекса в массиве Judy
  • Judy::nextEmpty — Ищет следующий отсутствующий индекс в массиве Judy
  • Judy::offsetExists — Определяет, существует ли смещение
  • Judy::offsetGet — Вернуть значение по указанному смещению
  • Judy::offsetSet — Установить значение по указанному смещению
  • Judy::offsetUnset — Удаляет элемент по указанному смещению
  • Judy::prev — Ищет предыдущий индекс в массиве Judy
  • Judy::prevEmpty — Ищет предыдущий отсутствующий индекс в массиве Judy
  • Judy::size — Возвращает размер текущего массива Judy


Найти N-ный по счету индекс в массиве Judy

  • « Judy
  • Judy::__construct »
  • PHP Manual
  • Judy
  • Найти N-ный по счету индекс в массиве Judy

Judy::byCount

(PECL judy >= 0.1.1)

Judy::byCount — Найти N-ный по счету индекс в массиве Judy

Описание

public Judy::byCount ( int $nth_index ) : int

Найти N-ный по счету индекс в массиве Judy.

Список параметров

nth_index

Номер индекса для поиска. Если равно 1, то вернется первый индекс массива.

Возвращаемые значения

Возвращает индекс из указанной позиции.


Конструктор объекта Judy

  • « Judy::byCount
  • Judy::count »
  • PHP Manual
  • Judy
  • Конструктор объекта Judy

Judy::__construct

(PECL judy >= 0.1.1)

Judy::__construct — Конструктор объекта Judy

Описание

public Judy::__construct ( int $judy_type )

Создает новый объект Judy. С объектами Judy можно работать, используя синтаксис доступа к массиву.

Список параметров

judy_type

Тип создаваемого массива.

Возвращаемые значения

Возвращает новый экземпляр Judy.


Посчитать количество элементов в массиве Judy

  • « Judy::__construct
  • Judy::__destruct »
  • PHP Manual
  • Judy
  • Посчитать количество элементов в массиве Judy

Judy::count

(PECL judy >= 0.1.1)

Judy::count — Посчитать количество элементов в массиве Judy

Описание

public Judy::count ([ int $index_start = 0 [, int $index_end = -1 ]] ) : int

Считает количество элементов в массиве Judy.

Список параметров

index_start

Начинать считать с указанного индекса. По умолчанию с начала массива.

index_end

Остановить подсчет по достижении этого индекса. По умолчанию до конца массива.

Возвращаемые значения

Возвращает количество элементов.


Уничтожить объект Judy

  • « Judy::count
  • Judy::first »
  • PHP Manual
  • Judy
  • Уничтожить объект Judy

Judy::__destruct

(PECL judy >= 0.1.1)

Judy::__destruct — Уничтожить объект Judy

Описание

public Judy::__destruct ( void ) : void

Уничтожает объект Judy.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Ищет первый индекс в массиве Judy

  • « Judy::__destruct
  • Judy::firstEmpty »
  • PHP Manual
  • Judy
  • Ищет первый индекс в массиве Judy

Judy::first

(PECL judy >= 0.1.1)

Judy::first — Ищет первый индекс в массиве Judy

Описание

public Judy::first ([ mixed $index ] ) : mixed

Ищет (включая) первый индекс, который равен или больше переданного.

Список параметров

index

Индекс может быть как числом, так и строкой, в зависимости от типа массива.

Возвращаемые значения

Возвращает соответствующий индекс массива.


Поиск первого отсутствующего индекса в массиве Judy

  • « Judy::first
  • Judy::free »
  • PHP Manual
  • Judy
  • Поиск первого отсутствующего индекса в массиве Judy

Judy::firstEmpty

(PECL judy >= 0.1.1)

Judy::firstEmpty — Поиск первого отсутствующего индекса в массиве Judy

Описание

public Judy::firstEmpty ([ mixed $index = 0 ] ) : int

Поиск (включая) первый отсутствующий в массиве индекс, равный или больший переданного.

Список параметров

index

Индекс может быть как числом, так и строкой, в зависимости от типа массива.

Возвращаемые значения

Возвращает соответствующий индекс массива.


Очищает весь массив Judy

  • « Judy::firstEmpty
  • Judy::getType »
  • PHP Manual
  • Judy
  • Очищает весь массив Judy

Judy::free

(PECL judy >= 0.1.1)

Judy::free — Очищает весь массив Judy

Описание

public Judy::free ( void ) : int

Очищает весь массив Judy.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Возвращает тип текущего массива Judy

  • « Judy::free
  • Judy::last »
  • PHP Manual
  • Judy
  • Возвращает тип текущего массива Judy

Judy::getType

(PECL judy >= 0.1.1)

Judy::getType — Возвращает тип текущего массива Judy

Описание

public Judy::getType ( void ) : int

Возвращает целое число, соответствующее типу массива Judy.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число, соответствующее типу массива Judy.


Поиск последнего индекса массива Judy

  • « Judy::getType
  • Judy::lastEmpty »
  • PHP Manual
  • Judy
  • Поиск последнего индекса массива Judy

Judy::last

(PECL judy >= 0.1.1)

Judy::last — Поиск последнего индекса массива Judy

Описание

public Judy::last ([ string $index ] ) : void

Ищет (включая) последний индекс в массиве, равный или меньший переданного.

Список параметров

index

Индекс может быть как числом, так и строкой, в зависимости от типа массива.

Возвращаемые значения

Возвращает соответствующий индекс массива.


Поиск последнего отсутствующего индекса в массиве Judy

  • « Judy::last
  • Judy::memoryUsage »
  • PHP Manual
  • Judy
  • Поиск последнего отсутствующего индекса в массиве Judy

Judy::lastEmpty

(PECL judy >= 0.1.1)

Judy::lastEmpty — Поиск последнего отсутствующего индекса в массиве Judy

Описание

public Judy::lastEmpty ([ int $index = -1 ] ) : int

Ищет (включая) последний отсутствующий индекс, равный или меньше переданного.

Список параметров

index

Индекс может быть как числом, так и строкой, в зависимости от типа массива.

Возвращаемые значения

Возвращает соответствующий индекс массива.


Возвращает количество памяти, использованное массивом Judy

  • « Judy::lastEmpty
  • Judy::next »
  • PHP Manual
  • Judy
  • Возвращает количество памяти, использованное массивом Judy

Judy::memoryUsage

(PECL judy >= 0.1.1)

Judy::memoryUsage — Возвращает количество памяти, использованное массивом Judy

Описание

public Judy::memoryUsage ( void ) : int

Возвращает количество памяти, использованное массивом Judy.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество памяти в байтах.


Поиск следующего индекса в массиве Judy

  • « Judy::memoryUsage
  • Judy::nextEmpty »
  • PHP Manual
  • Judy
  • Поиск следующего индекса в массиве Judy

Judy::next

(PECL judy >= 0.1.1)

Judy::next — Поиск следующего индекса в массиве Judy

Описание

public Judy::next ( mixed $index ) : mixed

Ищет (исключая) следующий индекс, больший переданного.

Список параметров

index

Индекс может быть как числом, так и строкой, в зависимости от типа массива.

Возвращаемые значения

Возвращает соответствующий индекс массива.


Ищет следующий отсутствующий индекс в массиве Judy

  • « Judy::next
  • Judy::offsetExists »
  • PHP Manual
  • Judy
  • Ищет следующий отсутствующий индекс в массиве Judy

Judy::nextEmpty

(PECL judy >= 0.1.1)

Judy::nextEmpty — Ищет следующий отсутствующий индекс в массиве Judy

Описание

public Judy::nextEmpty ( int $index ) : int

Ищет (исключая) следующий отсутствующий в массиве индекс, больший переданного.

Список параметров

index

Индекс может быть как числом, так и строкой, в зависимости от типа массива.

Возвращаемые значения

Возвращает соответствующий индекс массива.


Определяет, существует ли смещение

  • « Judy::nextEmpty
  • Judy::offsetGet »
  • PHP Manual
  • Judy
  • Определяет, существует ли смещение

Judy::offsetExists

(PECL judy >= 0.1.1)

Judy::offsetExists — Определяет, существует ли смещение

Описание

public Judy::offsetExists ( mixed $offset ) : bool

Определяет, существует ли данное смещение.

Список параметров

offset

Смещение.

Возвращаемые значения

Возвращает TRUE или FALSE.


Вернуть значение по указанному смещению

  • « Judy::offsetExists
  • Judy::offsetSet »
  • PHP Manual
  • Judy
  • Вернуть значение по указанному смещению

Judy::offsetGet

(PECL judy >= 0.1.1)

Judy::offsetGet — Вернуть значение по указанному смещению

Описание

public Judy::offsetGet ( mixed $offset ) : mixed

Возвращает значение по указанному смещению.

Список параметров

offset

Смещение для извлечения.

Возвращаемые значения

Может возвращать значения любого типа.


Установить значение по указанному смещению

  • « Judy::offsetGet
  • Judy::offsetUnset »
  • PHP Manual
  • Judy
  • Установить значение по указанному смещению

Judy::offsetSet

(PECL judy >= 0.1.1)

Judy::offsetSet — Установить значение по указанному смещению

Описание

public Judy::offsetSet ( mixed $offset , mixed $value ) : bool

Задает значение по указанному смещению.

Список параметров

offset

Смещение.

value

Значение.

Возвращаемые значения

Ничего не возвращает.


Удаляет элемент по указанному смещению

  • « Judy::offsetSet
  • Judy::prev »
  • PHP Manual
  • Judy
  • Удаляет элемент по указанному смещению

Judy::offsetUnset

(PECL judy >= 0.1.1)

Judy::offsetUnset — Удаляет элемент по указанному смещению

Описание

public Judy::offsetUnset ( mixed $offset ) : bool

Удаляет элемент по указанному смещению.

Список параметров

offset

Смещение.

Возвращаемые значения

Ничего не возвращает.


Ищет предыдущий индекс в массиве Judy

  • « Judy::offsetUnset
  • Judy::prevEmpty »
  • PHP Manual
  • Judy
  • Ищет предыдущий индекс в массиве Judy

Judy::prev

(PECL judy >= 0.1.1)

Judy::prev — Ищет предыдущий индекс в массиве Judy

Описание

public Judy::prev ( mixed $index ) : mixed

Ищет (исключая) предыдущий индекс, меньший переданного.

Список параметров

index

Индекс может быть как числом, так и строкой, в зависимости от типа массива.

Возвращаемые значения

Возвращает соответствующий индекс массива.


Ищет предыдущий отсутствующий индекс в массиве Judy

  • « Judy::prev
  • Judy::size »
  • PHP Manual
  • Judy
  • Ищет предыдущий отсутствующий индекс в массиве Judy

Judy::prevEmpty

(PECL judy >= 0.1.1)

Judy::prevEmpty — Ищет предыдущий отсутствующий индекс в массиве Judy

Описание

public Judy::prevEmpty ( mixed $index ) : int

Ищет (исключая) предыдущий отсутствующий в массиве индекс, меньший переданного.

Список параметров

index

Индекс может быть как числом, так и строкой, в зависимости от типа массива.

Возвращаемые значения

Возвращает соответствующий индекс массива.


Возвращает размер текущего массива Judy

  • « Judy::prevEmpty
  • Функции Judy »
  • PHP Manual
  • Judy
  • Возвращает размер текущего массива Judy

Judy::size

(PECL judy >= 0.1.1)

Judy::size — Возвращает размер текущего массива Judy

Описание

public Judy::size ( void ) : void

Этот метод является псевдонимом: Judy::count().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число.


Функции Judy

Содержание

  • judy_type — Возвращает тип массива Judy
  • judy_version — Возвращает и печатает версию Judy PHP


Возвращает тип массива Judy

  • « Функции Judy
  • judy_version »
  • PHP Manual
  • Функции Judy
  • Возвращает тип массива Judy

judy_type

(PECL judy >= 0.1.1)

judy_type — Возвращает тип массива Judy

Описание

judy_type ( Judy $array ) : int

judy_type() возвращает целое число, соответствующее типу Judy указанного массива Judy array.

Список параметров

array

Массив Judy для проверки.

Возвращаемые значения

Возвращает целое число, соответствующее типу типов Judy.


Возвращает и печатает версию Judy PHP

  • « judy_type
  • Lua »
  • PHP Manual
  • Функции Judy
  • Возвращает и печатает версию Judy PHP

judy_version

(PECL judy >= 0.1.1)

judy_version — Возвращает и печатает версию Judy PHP

Описание

judy_version ( void ) : string

Возвращает строку с текущей версией Judy PHP. Если возвращаемое значение не будет использоваться, то оно просто напечатается.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку с версией Judy PHP.


Lua

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Lua — Класс Lua
    • Lua::assign — Присвоить PHP-переменной Lua
    • Lua::call — Вызвать функции Lua
    • Lua::__construct — Конструктор Lua
    • Lua::eval — Разбирает строку как код Lua
    • Lua::getVersion — Возвращает версию
    • Lua::include — Разбирает файл содержащий скрипт Lua
    • Lua::registerCallback — Зарегистрировать функцию PHP в Lua
  • LuaClosure — Класс LuaClosure
    • LuaClosure::__invoke — Вызов замыкания Lua


Введение

"Lua - это мощный, быстрый, легковесный, встраиваемый скриптовый язык." Это расширение встраивает интерпретатор Lua и предоставляет OO-API для переменных и функций lua.


Требования

Для использования этого расширения вам необходимо установить Lua. Дистрибутив доступен на » домашней странице Lua


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/lua.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Настройка во время выполнения
  • Lua »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Класс Lua

(PECL lua >=0.9.0)

Введение

Обзор классов

Lua {
/* Константы */
const string LUA_VERSION = Lua 5.1.4 ;
/* Методы */
public assign ( string $name , string $value ) : mixed
public call ( callable $lua_func [, array $args [, int $use_self = 0 ]] ) : mixed
public __call ( callable $lua_func [, array $args [, int $use_self = 0 ]] ) : mixed
public __construct ( string $lua_script_file = NULL )
public eval ( string $statements ) : mixed
public getVersion ( void ) : string
public include ( string $file ) : mixed
public registerCallback ( string $name , callable $function ) : mixed
}

Предопределенные константы

Lua::LUA_VERSION

Содержание

  • Lua::assign — Присвоить PHP-переменной Lua
  • Lua::call — Вызвать функции Lua
  • Lua::__construct — Конструктор Lua
  • Lua::eval — Разбирает строку как код Lua
  • Lua::getVersion — Возвращает версию
  • Lua::include — Разбирает файл содержащий скрипт Lua
  • Lua::registerCallback — Зарегистрировать функцию PHP в Lua


Присвоить PHP-переменной Lua

  • « Lua
  • Lua::call »
  • PHP Manual
  • Lua
  • Присвоить PHP-переменной Lua

Lua::assign

(PECL lua >=0.9.0)

Lua::assign — Присвоить PHP-переменной Lua

Описание

public Lua::assign ( string $name , string $value ) : mixed

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения

Возвращает $this или NULL в случае ошибки.

Примеры

Пример #1 Пример использования Lua::assign()

<?php
$lua = new Lua();
$lua->assign("php_var", array(1=>1, 2, 3)); // индексы таблицы lua начинаются с 1
$lua->eval(<<<CODE
    print(php_var);
CODE
);
?>

Результат выполнения данного примера:

Array
 (
     [1] => 1
     [2] => 2
     [3] => 3
 )


Вызвать функции Lua

  • « Lua::assign
  • Lua::__construct »
  • PHP Manual
  • Lua
  • Вызвать функции Lua

Lua::call

Lua::__call

(PECL lua >=0.9.0)

Lua::call -- Lua::__call — Вызвать функции Lua

Описание

public Lua::call ( callable $lua_func [, array $args [, int $use_self = 0 ]] ) : mixed
public Lua::__call ( callable $lua_func [, array $args [, int $use_self = 0 ]] ) : mixed

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

lua_func

Имя функции lua

args

Передаваемые аргументы

use_self

Использовать ли self

Возвращаемые значения

Возвращает результат выполнившейся функции, NULL в случае некорректных аргументов, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Lua::call()

<?php
$lua = new Lua();
$lua->eval(<<<CODE
    function dummy(foo, bar)
        print(foo, ",", bar)
    end
CODE
);
$lua->call("dummy", array("Lua", "geiliable\n"));
$lua->dummy("Lua", "geiliable"); // __call()
var_dump($lua->call(array("table", "concat"), array(array(1=>1, 2=>2, 3=>3), "-")));
?>

Результат выполнения данного примера:

Lua,geiliable
Lua,geiliable
string(5) "1-2-3"

Смотрите также

  • __call()


Конструктор Lua

  • « Lua::call
  • Lua::eval »
  • PHP Manual
  • Lua
  • Конструктор Lua

Lua::__construct

(PECL lua >=0.9.0)

Lua::__construct — Конструктор Lua

Описание

public Lua::__construct ( string $lua_script_file = NULL )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

lua_script_file

Возвращаемые значения


Разбирает строку как код Lua

  • « Lua::__construct
  • Lua::getVersion »
  • PHP Manual
  • Lua
  • Разбирает строку как код Lua

Lua::eval

(PECL lua >=0.9.0)

Lua::eval — Разбирает строку как код Lua

Описание

public Lua::eval ( string $statements ) : mixed

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

statements

Возвращаемые значения

Возвращает результат выполненного кода, NULL в случае некорректных аргументов и FALSE в случае ошибки.

Примеры

Пример #1 Пример использования Lua::eval()

<?php
$lua = new Lua();
$lua->eval(<<<CODE
    print(2);
CODE
);
?>

Результат выполнения данного примера:

2


Возвращает версию

  • « Lua::eval
  • Lua::include »
  • PHP Manual
  • Lua
  • Возвращает версию

Lua::getVersion

(PECL lua >=0.9.0)

Lua::getVersion — Возвращает версию

Описание

public Lua::getVersion ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает Lua::LUA_VERSION.


Разбирает файл содержащий скрипт Lua

  • « Lua::getVersion
  • Lua::registerCallback »
  • PHP Manual
  • Lua
  • Разбирает файл содержащий скрипт Lua

Lua::include

(PECL lua >=0.9.0)

Lua::include — Разбирает файл содержащий скрипт Lua

Описание

public Lua::include ( string $file ) : mixed

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Возвращаемые значения

Возвращает результат выполненного кода, NULL в случае некорректных аргументов, FALSE в случае ошибки.


Зарегистрировать функцию PHP в Lua

  • « Lua::include
  • LuaClosure »
  • PHP Manual
  • Lua
  • Зарегистрировать функцию PHP в Lua

Lua::registerCallback

(Информация о версии неизвестна, возможно, только в Git)

Lua::registerCallback — Зарегистрировать функцию PHP в Lua

Описание

public Lua::registerCallback ( string $name , callable $function ) : mixed

Регистрирует функцию PHP в Lua с именем "$name"

Список параметров

name

function

Корректная функция обратного вызова PHP

Возвращаемые значения

Возвращает $this, NULL в случае некорректных аргументов, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования Lua::registerCallback()

<?php
$lua = new Lua();
$lua->registerCallback("echo", "var_dump");
$lua->eval(<<<CODE
    echo({1, 2, 3});
CODE
);
?>

Результат выполнения данного примера:

array(3) {
  [1]=>
  float(1)
  [2]=>
  float(2)
  [3]=>
  float(3)
}


Класс LuaClosure

(PECL lua >=0.9.0)

Введение

LuaClosure - это класс обертка для LUA_TFUNCTION, которая может быть возвращена при вызове функции Lua.

Обзор классов

LuaClosure {
/* Методы */
public __invoke ([ mixed $... ] ) : void
}

Содержание

  • LuaClosure::__invoke — Вызов замыкания Lua


Вызов замыкания Lua

  • « LuaClosure
  • LuaSandbox »
  • PHP Manual
  • LuaClosure
  • Вызов замыкания Lua

LuaClosure::__invoke

(PECL lua >=0.9.0)

LuaClosure::__invoke — Вызов замыкания Lua

Описание

public LuaClosure::__invoke ([ mixed $... ] ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

...

Возвращаемые значения

Примеры

Пример #1 Пример использованияLuaClosure::__invoke()

<?php
$lua = new Lua();
$closure = $lua->eval(<<<CODE
    return (function ()
        print("hello world")
    end)
CODE
);

$lua->call($closure);
/* after PHP 5.3 */
$closure();
?>

Результат выполнения данного примера:

hello worldhello world


LuaSandbox

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Differences from Standard Lua
  • Примеры
    • Basic usage for LuaSandbox
  • LuaSandbox — The LuaSandbox class
    • LuaSandbox::callFunction — Call a function in a Lua global variable
    • LuaSandbox::disableProfiler — Disable the profiler
    • LuaSandbox::enableProfiler — Enable the profiler.
    • LuaSandbox::getCPUUsage — Fetch the current CPU time usage of the Lua environment
    • LuaSandbox::getMemoryUsage — Fetch the current memory usage of the Lua environment
    • LuaSandbox::getPeakMemoryUsage — Fetch the peak memory usage of the Lua environment
    • LuaSandbox::getProfilerFunctionReport — Fetch profiler data
    • LuaSandbox::getVersionInfo — Return the versions of LuaSandbox and Lua
    • LuaSandbox::loadBinary — Load a precompiled binary chunk into the Lua environment
    • LuaSandbox::loadString — Load Lua code into the Lua environment
    • LuaSandbox::pauseUsageTimer — Pause the CPU usage timer
    • LuaSandbox::registerLibrary — Register a set of PHP functions as a Lua library
    • LuaSandbox::setCPULimit — Set the CPU time limit for the Lua environment
    • LuaSandbox::setMemoryLimit — Set the memory limit for the Lua environment
    • LuaSandbox::unpauseUsageTimer — Unpause the timer paused by LuaSandbox::pauseUsageTimer
    • LuaSandbox::wrapPhpFunction — Wrap a PHP callable in a LuaSandboxFunction
  • LuaSandboxFunction — The LuaSandboxFunction class
    • LuaSandboxFunction::call — Call a Lua function
    • LuaSandboxFunction::__construct — Unused
    • LuaSandboxFunction::dump — Dump the function as a binary blob
  • LuaSandboxError — The LuaSandboxError class
  • LuaSandboxErrorError — The LuaSandboxErrorError class
  • LuaSandboxFatalError — The LuaSandboxFatalError class
  • LuaSandboxMemoryError — The LuaSandboxMemoryError class
  • LuaSandboxRuntimeError — The LuaSandboxRuntimeError class
  • LuaSandboxSyntaxError — The LuaSandboxSyntaxError class
  • LuaSandboxTimeoutError — The LuaSandboxTimeoutError class


Введение

LuaSandbox is an extension for PHP 5, PHP 7, and HHVM to allow safely running untrusted Lua 5.1 code from within PHP.

Differences compared to the Lua extension:

  • LuaSandbox has support for time and memory limits.

  • LuaSandbox provides a default-safe environment for running untrusted code. Stock Lua functions were reviewed for security, and several were patched accordingly.

  • LuaSandbox has a PHP interface which is more complex, precise and powerful, but it is less convenient for developers.

  • LuaSandbox supports only Lua 5.1. It is difficult to change this, because LuaSandbox uses heavily modified Lua standard libraries, and due to the lack of backwards compatibility between major Lua versions. LuaSandbox aims to maximise backwards compatibility with user-supplied scripts.


Требования

To use this extension, Lua 5.1 will need to be installed, available on the » Lua homepage.

To make full use of the timer features, LuaSandbox should be installed on Linux.

If FreeBSD or Mac OS X is used, only real (wall-clock) time is supported, the functions purporting to return CPU time will actually return wall clock time.

If Windows is used, no timer functions will be supported. The time limits will be inoperable.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/luasandbox.

If the operating system is Debian 9 or later, or Ubuntu 18.04 or later, then LuaSandbox should typically be installed from the package php-luasandbox:

sudo apt-get install php-luasandbox

Debian 9 users may need to add

deb http://ftp.debian.org/debian stretch-backports main
to their » sources.list.


  • « Настройка во время выполнения
  • Differences from Standard Lua »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Differences from Standard Lua

LuaSandbox provides a sandboxed environment which differs in some ways from standard Lua 5.1.

Features that are not available

  • dofile(), loadfile(), and the io package, as they allow direct filesystem access. If needed, filesystem access should be done via PHP callbacks.

  • The package package, including require() and module(), as it depends heavily on direct filesystem access. A pure-Lua rewrite such as that used in the MediaWiki Scribunto extension may be used instead.

  • load() and loadstring(), to allow for static analysis of Lua code.

  • print(), since it outputs to standard output. If needed, output should be done via PHP callbacks.

  • Most of the os package, as it allows manipulation of the process and executing of other processes.

    • os.clock(), os.date(), os.difftime(), and os.time() remain available.

  • Most of the debug package, as it allows manipulation of Lua state and metadata in ways that can break sandboxing.

    • debug.traceback() remains available.

  • string.dump(), as it may expose internal data.

  • collectgarbage(), gcinfo(), and the coroutine package have not been reviewed for security.

Features that have been modified

  • pcall() and xpcall() cannot catch certain errors, particularly timeout errors.

  • tostring() does not include pointer addresses.

  • string.match() has been patched to limit the recursion depth and to periodically check for a timeout.

  • math.random() and math.randomseed() are replaced with versions that don't share state with PHP's rand().

  • The Lua 5.2 __pairs and __ipairs metamethods are supported by pairs() and ipairs().


  • « Differences from Standard Lua
  • Basic usage for LuaSandbox »
  • PHP Manual
  • LuaSandbox
  • Примеры

Примеры

Содержание

  • Basic usage for LuaSandbox


Basic usage for LuaSandbox

Once you've compiled PHP with LuaSandbox support, you can begin using LuaSandbox to safely run user-provided Lua code.

Пример #1 Execute some Lua code

<?php

$sandbox = new LuaSandbox;
$sandbox->setMemoryLimit( 50 * 1024 * 1024 );
$sandbox->setCPULimit( 10 );

// Register some functions in the Lua environment

function frobnosticate( $v ) {
    return [ $v + 42 ];
}

$sandbox->registerLibrary( 'php', [
    'frobnosticate' => 'frobnosticate',
    'output' => function ( $string ) {
        echo "$string\n";
    },
    'error' => function () {
        throw new LuaSandboxRuntimeError( "Something is wrong" );
    }
] );

// Execute some Lua code, including callbacks into PHP and into Lua

$luaCode = <<<EOF
php.output( "Hello, world" );

return "Hi", function ( v )
    return php.frobnosticate( v + 200 )
end
EOF;

list( $hi, $frob ) = $sandbox->loadString( $luaCode )->call();
assert( $frob->call( 4000 ) === [ 4242 ] );

// PHP-thrown LuaSandboxRuntimeError exceptions can be caught inside Lua

list( $ok, $message ) = $sandbox->loadString( 'return pcall( php.error )' )->call();
assert( !$ok );
assert( $message === 'Something is wrong' );

?>


The LuaSandbox class

(PECL luasandbox >= 1.0.0)

Введение

The LuaSandbox class creates a Lua environment and allows for execution of Lua code.

Обзор классов

LuaSandbox {
/* Constants */
const integer SAMPLES = 0 ;
const integer SECONDS = 1 ;
const integer PERCENT = 2 ;
/* Методы */
public callFunction ( string $name [, mixed $... ] ) : array|bool
public disableProfiler ( void ) : void
public enableProfiler ([ float $period = 0.02 ] ) : bool
public getCPUUsage ( void ) : float
public getMemoryUsage ( void ) : int
public getPeakMemoryUsage ( void ) : int
public getProfilerFunctionReport ([ int $units = LuaSandbox::SECONDS ] ) : array
public static getVersionInfo ( void ) : array
public loadBinary ( string $code [, string $chunkName = '' ] ) : LuaSandboxFunction
public loadString ( string $code [, string $chunkName = '' ] ) : LuaSandboxFunction
public pauseUsageTimer ( void ) : bool
public registerLibrary ( string $libname , array $functions ) : void
public setCPULimit ( float|bool $limit ) : void
public setMemoryLimit ( int $limit ) : void
public unpauseUsageTimer ( void ) : void
public wrapPhpFunction ( callable $function ) : LuaSandboxFunction
}

Предопределенные константы

LuaSandbox::SAMPLES

Used with LuaSandbox::getProfilerFunctionReport() to return timings in samples.

LuaSandbox::SECONDS

Used with LuaSandbox::getProfilerFunctionReport() to return timings in seconds.

LuaSandbox::PERCENT

Used with LuaSandbox::getProfilerFunctionReport() to return timings in percentages of the total.

Содержание

  • LuaSandbox::callFunction — Call a function in a Lua global variable
  • LuaSandbox::disableProfiler — Disable the profiler
  • LuaSandbox::enableProfiler — Enable the profiler.
  • LuaSandbox::getCPUUsage — Fetch the current CPU time usage of the Lua environment
  • LuaSandbox::getMemoryUsage — Fetch the current memory usage of the Lua environment
  • LuaSandbox::getPeakMemoryUsage — Fetch the peak memory usage of the Lua environment
  • LuaSandbox::getProfilerFunctionReport — Fetch profiler data
  • LuaSandbox::getVersionInfo — Return the versions of LuaSandbox and Lua
  • LuaSandbox::loadBinary — Load a precompiled binary chunk into the Lua environment
  • LuaSandbox::loadString — Load Lua code into the Lua environment
  • LuaSandbox::pauseUsageTimer — Pause the CPU usage timer
  • LuaSandbox::registerLibrary — Register a set of PHP functions as a Lua library
  • LuaSandbox::setCPULimit — Set the CPU time limit for the Lua environment
  • LuaSandbox::setMemoryLimit — Set the memory limit for the Lua environment
  • LuaSandbox::unpauseUsageTimer — Unpause the timer paused by LuaSandbox::pauseUsageTimer
  • LuaSandbox::wrapPhpFunction — Wrap a PHP callable in a LuaSandboxFunction


Call a function in a Lua global variable

  • « LuaSandbox
  • LuaSandbox::disableProfiler »
  • PHP Manual
  • LuaSandbox
  • Call a function in a Lua global variable

LuaSandbox::callFunction

(PECL luasandbox >= 1.0.0)

LuaSandbox::callFunction — Call a function in a Lua global variable

Описание

public LuaSandbox::callFunction ( string $name [, mixed $... ] ) : array|bool

Calls a function in a Lua global variable.

If the name contains "." characters, the function is located via recursive table accesses, as if the name were a Lua expression.

If the variable does not exist, or is not a function, false will be returned and a warning issued.

For more information about calling Lua functions and the return values, see LuaSandboxFunction::call().

Список параметров

name

Lua variable name.

...

Arguments to the function.

Возвращаемые значения

Returns an array of values returned by the Lua function, which may be empty, or false in case of failure.

Примеры

Пример #1 Calling a Lua function

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// Call Lua's string.match
$captures = $sandbox->callFunction( 'string.match', $string, $pattern );

?>


Disable the profiler

  • « LuaSandbox::callFunction
  • LuaSandbox::enableProfiler »
  • PHP Manual
  • LuaSandbox
  • Disable the profiler

LuaSandbox::disableProfiler

(PECL luasandbox >= 1.1.0)

LuaSandbox::disableProfiler — Disable the profiler

Описание

public LuaSandbox::disableProfiler ( void ) : void

Disables the profiler.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • LuaSandbox::enableProfiler() - Enable the profiler.
  • LuaSandbox::getProfilerFunctionReport() - Fetch profiler data


Enable the profiler.

  • « LuaSandbox::disableProfiler
  • LuaSandbox::getCPUUsage »
  • PHP Manual
  • LuaSandbox
  • Enable the profiler.

LuaSandbox::enableProfiler

(PECL luasandbox >= 1.1.0)

LuaSandbox::enableProfiler — Enable the profiler.

Описание

public LuaSandbox::enableProfiler ([ float $period = 0.02 ] ) : bool

Enables the profiler. Profiling will begin when Lua code is entered.

The profiler periodically samples the Lua environment to record the running function. Testing indicates that at least on Linux, setting a period less than 1ms will lead to a high overrun count but no performance problems.

Список параметров

period

Sampling period in seconds.

Возвращаемые значения

Returns a boolean indicating whether the profiler is enabled.

Смотрите также

  • LuaSandbox::disableProfiler() - Disable the profiler
  • LuaSandbox::getProfilerFunctionReport() - Fetch profiler data


Fetch the current CPU time usage of the Lua environment

  • « LuaSandbox::enableProfiler
  • LuaSandbox::getMemoryUsage »
  • PHP Manual
  • LuaSandbox
  • Fetch the current CPU time usage of the Lua environment

LuaSandbox::getCPUUsage

(PECL luasandbox >= 1.0.0)

LuaSandbox::getCPUUsage — Fetch the current CPU time usage of the Lua environment

Описание

public LuaSandbox::getCPUUsage ( void ) : float

Fetches the current CPU time usage of the Lua environment.

This includes time spent in PHP callbacks.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current CPU time usage in seconds.

Замечание:

On Windows, this function always returns zero. On operating systems that do not support CLOCK_THREAD_CPUTIME_ID, such as FreeBSD and Mac OS X, this function will return the elapsed wall-clock time, not CPU time.

Смотрите также

  • LuaSandbox::getMemoryUsage() - Fetch the current memory usage of the Lua environment
  • LuaSandbox::getPeakMemoryUsage() - Fetch the peak memory usage of the Lua environment
  • LuaSandbox::setCPULimit() - Set the CPU time limit for the Lua environment


Fetch the current memory usage of the Lua environment

  • « LuaSandbox::getCPUUsage
  • LuaSandbox::getPeakMemoryUsage »
  • PHP Manual
  • LuaSandbox
  • Fetch the current memory usage of the Lua environment

LuaSandbox::getMemoryUsage

(PECL luasandbox >= 1.0.0)

LuaSandbox::getMemoryUsage — Fetch the current memory usage of the Lua environment

Описание

public LuaSandbox::getMemoryUsage ( void ) : int

Fetches the current memory usage of the Lua environment.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current memory usage in bytes.

Смотрите также

  • LuaSandbox::getPeakMemoryUsage() - Fetch the peak memory usage of the Lua environment
  • LuaSandbox::getCPUUsage() - Fetch the current CPU time usage of the Lua environment
  • LuaSandbox::setMemoryLimit() - Set the memory limit for the Lua environment


Fetch the peak memory usage of the Lua environment

  • « LuaSandbox::getMemoryUsage
  • LuaSandbox::getProfilerFunctionReport »
  • PHP Manual
  • LuaSandbox
  • Fetch the peak memory usage of the Lua environment

LuaSandbox::getPeakMemoryUsage

(PECL luasandbox >= 1.0.0)

LuaSandbox::getPeakMemoryUsage — Fetch the peak memory usage of the Lua environment

Описание

public LuaSandbox::getPeakMemoryUsage ( void ) : int

Fetches the peak memory usage of the Lua environment.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the peak memory usage in bytes.

Смотрите также

  • LuaSandbox::getMemoryUsage() - Fetch the current memory usage of the Lua environment
  • LuaSandbox::getCPUUsage() - Fetch the current CPU time usage of the Lua environment
  • LuaSandbox::setMemoryLimit() - Set the memory limit for the Lua environment


Fetch profiler data

  • « LuaSandbox::getPeakMemoryUsage
  • LuaSandbox::getVersionInfo »
  • PHP Manual
  • LuaSandbox
  • Fetch profiler data

LuaSandbox::getProfilerFunctionReport

(PECL luasandbox >= 1.1.0)

LuaSandbox::getProfilerFunctionReport — Fetch profiler data

Описание

public LuaSandbox::getProfilerFunctionReport ([ int $units = LuaSandbox::SECONDS ] ) : array

For a profiling instance previously started by LuaSandbox::enableProfiler(), get a report of the cost of each function.

The measurement unit used for the cost is determined by the $units parameter:

LuaSandbox::SAMPLES

Measure in number of samples.

LuaSandbox::SECONDS

Measure in seconds of CPU time.

LuaSandbox::PERCENT

Measure percentage of CPU time.

Список параметров

units

Measurement unit constant.

Возвращаемые значения

Returns profiler measurements, sorted in descending order, as an associative array. Keys are the Lua function names (with source file and line defined in angle brackets), values are the measurements as integer or float.

Замечание:

On Windows, this function always returns an empty array. On operating systems that do not support CLOCK_THREAD_CPUTIME_ID, such as FreeBSD and Mac OS X, this function will report the elapsed wall-clock time, not CPU time.

Примеры

Пример #1 Profiling Lua code

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// Start the profiler
$sandbox->enableProfiler( 0.01 );

// ... Execute some Lua code here ...

// Fetch the profiler data
$data = $sandbox->getProfilerFunctionReport();

?>


Return the versions of LuaSandbox and Lua

  • « LuaSandbox::getProfilerFunctionReport
  • LuaSandbox::loadBinary »
  • PHP Manual
  • LuaSandbox
  • Return the versions of LuaSandbox and Lua

LuaSandbox::getVersionInfo

(PECL luasandbox >= 1.6.0)

LuaSandbox::getVersionInfo — Return the versions of LuaSandbox and Lua

Описание

public static LuaSandbox::getVersionInfo ( void ) : array

Returns the versions of LuaSandbox and Lua.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array with two keys:

element | type | description
LuaSandbox | string | The version of the LuaSandbox extension.
Lua | string | The library name and version as defined by the LUA_RELEASE macro, for example, "Lua 5.1.5".


Load a precompiled binary chunk into the Lua environment

  • « LuaSandbox::getVersionInfo
  • LuaSandbox::loadString »
  • PHP Manual
  • LuaSandbox
  • Load a precompiled binary chunk into the Lua environment

LuaSandbox::loadBinary

(PECL luasandbox >= 1.0.0)

LuaSandbox::loadBinary — Load a precompiled binary chunk into the Lua environment

Описание

public LuaSandbox::loadBinary ( string $code [, string $chunkName = '' ] ) : LuaSandboxFunction

Loads data generated by LuaSandboxFunction::dump().

Список параметров

code

Data from LuaSandboxFunction::dump().

chunkName

Name for the loaded function.

Возвращаемые значения

Returns a LuaSandboxFunction.

Смотрите также

  • LuaSandbox::loadString() - Load Lua code into the Lua environment


Load Lua code into the Lua environment

  • « LuaSandbox::loadBinary
  • LuaSandbox::pauseUsageTimer »
  • PHP Manual
  • LuaSandbox
  • Load Lua code into the Lua environment

LuaSandbox::loadString

(PECL luasandbox >= 1.0.0)

LuaSandbox::loadString — Load Lua code into the Lua environment

Описание

public LuaSandbox::loadString ( string $code [, string $chunkName = '' ] ) : LuaSandboxFunction

Loads Lua code into the Lua environment.

This is the equivalent of standard Lua's loadstring() function.

Список параметров

code

Lua code.

chunkName

Name for the loaded chunk, for use in error traces.

Возвращаемые значения

Returns a LuaSandboxFunction which, when executed, will execute the passed $code.

Примеры

Пример #1 Loading code into Lua

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// Load the code
$function = $sandbox->loadString(
<<<CODE
    return "Hello, world"
CODE
);

// Execute the loaded code
var_dump( $function->call() );

?>

Результат выполнения данного примера:

array(1) {
  [0]=>
  string(12) "Hello, world"
}

Смотрите также

  • LuaSandbox::registerLibrary() - Register a set of PHP functions as a Lua library
  • LuaSandbox::wrapPhpFunction() - Wrap a PHP callable in a LuaSandboxFunction


Pause the CPU usage timer

  • « LuaSandbox::loadString
  • LuaSandbox::registerLibrary »
  • PHP Manual
  • LuaSandbox
  • Pause the CPU usage timer

LuaSandbox::pauseUsageTimer

(PECL luasandbox >= 1.4.0)

LuaSandbox::pauseUsageTimer — Pause the CPU usage timer

Описание

public LuaSandbox::pauseUsageTimer ( void ) : bool

Pauses the CPU usage timer.

This only has effect when called from within a callback from Lua. When execution returns to Lua, the timer will be automatically unpaused. If a new call into Lua is made, the timer will be unpaused for the duration of that call.

If a PHP callback calls into Lua again with timer not paused, and then that Lua function calls into PHP again, the second PHP call will not be able to pause the timer. The logic is that even though the second PHP call would avoid counting the CPU usage against the limit, the first call still counts it.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean indicating whether the timer is now paused.

Примеры

Пример #1 Manipulating the usage timer

<?php

// create a new LuaSandbox and set a CPU limit
$sandbox = new LuaSandbox();
$sandbox->setCPULimit( 1 );

function doWait( $t ) {
    $end = microtime( true ) + $t;
    while ( microtime( true ) < $end ) {
        // waste CPU cycles
    }
}

// Register a PHP callback
$sandbox->registerLibrary( 'php', [
    'test' => function () use ( $sandbox ) {
        $sandbox->pauseUsageTimer();
        doWait( 5 );

        $sandbox->unpauseUsageTimer();
        doWait( 0.1 );
    },
    'test2' => function () use ( $sandbox ) {
        $sandbox->pauseUsageTimer();
        $sandbox->unpauseUsageTimer();
        doWait( 1.1 );
    }
] );

echo "This should not time out...\n";
$sandbox->loadString( 'php.test()' )->call();

echo "This should time out.\n";
try {
    $sandbox->loadString( 'php.test2()' )->call();
    echo "It did not?\n";
} catch ( LuaSandboxTimeoutError $ex ) {
    echo "It did! " . $ex->getMessage() . "\n";
}

?>

Результат выполнения данного примера:

This should not time out...
This should time out.
It did! The maximum execution time for this script was exceeded

Смотрите также

  • LuaSandbox::setCPULimit() - Set the CPU time limit for the Lua environment
  • LuaSandbox::unpauseUsageTimer() - Unpause the timer paused by LuaSandbox::pauseUsageTimer


Register a set of PHP functions as a Lua library

  • « LuaSandbox::pauseUsageTimer
  • LuaSandbox::setCPULimit »
  • PHP Manual
  • LuaSandbox
  • Register a set of PHP functions as a Lua library

LuaSandbox::registerLibrary

(PECL luasandbox >= 1.0.0)

LuaSandbox::registerLibrary — Register a set of PHP functions as a Lua library

Описание

public LuaSandbox::registerLibrary ( string $libname , array $functions ) : void

Registers a set of PHP functions as a Lua library, so that Lua can call the relevant PHP code.

For more information about calling Lua functions and the return values, see LuaSandboxFunction::call().

Список параметров

libname

The name of the library. In the Lua state, the global variable of this name will be set to the table of functions. If the table already exists, the new functions will be added to it.

functions

An array, where each key is a function name, and each value is a corresponding PHP callable.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Registering PHP functions to call from Lua

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// Register some functions in the Lua environment

function frobnosticate( $v ) {
    return [ $v + 42 ];
}

$sandbox->registerLibrary( 'php', [
    'frobnosticate' => 'frobnosticate',
    'output' => function ( $string ) {
        echo "$string\n";
    },
    'error' => function () {
        throw new LuaSandboxRuntimeError( "Something is wrong" );
    }
] );

?>

Смотрите также

  • LuaSandbox::loadString() - Load Lua code into the Lua environment
  • LuaSandbox::wrapPhpFunction() - Wrap a PHP callable in a LuaSandboxFunction


Set the CPU time limit for the Lua environment

  • « LuaSandbox::registerLibrary
  • LuaSandbox::setMemoryLimit »
  • PHP Manual
  • LuaSandbox
  • Set the CPU time limit for the Lua environment

LuaSandbox::setCPULimit

(PECL luasandbox >= 1.0.0)

LuaSandbox::setCPULimit — Set the CPU time limit for the Lua environment

Описание

public LuaSandbox::setCPULimit ( float|bool $limit ) : void

Sets the CPU time limit for the Lua environment.

If the total user and system time used by the environment after the call to this method exceeds this limit, a LuaSandboxTimeoutError exception is thrown.

Time used in PHP callbacks is included in the limit.

Setting the time limit from a callback while Lua is running causes the timer to be reset, or started if it was not already running.

Замечание:

On Windows, the CPU limit will be ignored. On operating systems that do not support CLOCK_THREAD_CPUTIME_ID, such as FreeBSD and Mac OS X, wall-clock time rather than CPU time will be limited.

Список параметров

limit

Limit as a float in seconds, or false for no limit.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Calling a Lua function

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// set a time limit
$sandbox->setCPULimit( 2 );

// Run Lua code
$sandbox->loadString( 'while true do end' )->call();

?>

Результатом выполнения данного примера будет что-то подобное:

PHP Fatal error:  Uncaught LuaSandboxTimeoutError: The maximum execution time for this script was exceeded

Смотрите также

  • LuaSandbox::getCPUUsage() - Fetch the current CPU time usage of the Lua environment
  • LuaSandbox::setMemoryLimit() - Set the memory limit for the Lua environment


Set the memory limit for the Lua environment

  • « LuaSandbox::setCPULimit
  • LuaSandbox::unpauseUsageTimer »
  • PHP Manual
  • LuaSandbox
  • Set the memory limit for the Lua environment

LuaSandbox::setMemoryLimit

(PECL luasandbox >= 1.0.0)

LuaSandbox::setMemoryLimit — Set the memory limit for the Lua environment

Описание

public LuaSandbox::setMemoryLimit ( int $limit ) : void

Sets the memory limit for the Lua environment.

If this limit is exceeded, a LuaSandboxMemoryError exception is thrown.

Список параметров

limit

Memory limit in bytes.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Calling a Lua function

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// set a memory limit
$sandbox->setMemoryLimit( 50 * 1024 * 1024 );

// Run Lua code
$sandbox->loadString( 'local x = "x"; while true do x = x .. x; end' )->call();

?>

Результатом выполнения данного примера будет что-то подобное:

PHP Fatal error:  Uncaught LuaSandboxMemoryError: not enough memory

Смотрите также

  • LuaSandbox::getMemoryUsage() - Fetch the current memory usage of the Lua environment
  • LuaSandbox::getPeakMemoryUsage() - Fetch the peak memory usage of the Lua environment
  • LuaSandbox::setCPULimit() - Set the CPU time limit for the Lua environment


Unpause the timer paused by LuaSandbox::pauseUsageTimer

  • « LuaSandbox::setMemoryLimit
  • LuaSandbox::wrapPhpFunction »
  • PHP Manual
  • LuaSandbox
  • Unpause the timer paused by LuaSandbox::pauseUsageTimer

LuaSandbox::unpauseUsageTimer

(PECL luasandbox >= 1.4.0)

LuaSandbox::unpauseUsageTimer — Unpause the timer paused by LuaSandbox::pauseUsageTimer()

Описание

public LuaSandbox::unpauseUsageTimer ( void ) : void

Unpauses the timer paused by LuaSandbox::pauseUsageTimer().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • LuaSandbox::pauseUsageTimer() - Pause the CPU usage timer
  • LuaSandbox::setCPULimit() - Set the CPU time limit for the Lua environment


Wrap a PHP callable in a LuaSandboxFunction

  • « LuaSandbox::unpauseUsageTimer
  • LuaSandboxFunction »
  • PHP Manual
  • LuaSandbox
  • Wrap a PHP callable in a LuaSandboxFunction

LuaSandbox::wrapPhpFunction

(PECL luasandbox >= 1.2.0)

LuaSandbox::wrapPhpFunction — Wrap a PHP callable in a LuaSandboxFunction

Описание

public LuaSandbox::wrapPhpFunction ( callable $function ) : LuaSandboxFunction

Wraps a PHP callable in a LuaSandboxFunction, so it can be passed into Lua as an anonymous function.

The function must return either an array of values (which may be empty), or NULL which is equivalent to returning the empty array.

Exceptions will be raised as errors in Lua, however only LuaSandboxRuntimeError exceptions may be caught inside Lua with pcall() or xpcall().

For more information about calling Lua functions and the return values, see LuaSandboxFunction::call().

Список параметров

function

Callable to wrap.

Возвращаемые значения

Returns a LuaSandboxFunction.

Смотрите также

  • LuaSandbox::loadString() - Load Lua code into the Lua environment
  • LuaSandbox::registerLibrary() - Register a set of PHP functions as a Lua library


The LuaSandboxFunction class

(PECL luasandbox >= 1.0.0)

Введение

Represents a Lua function, allowing it to be called from PHP.

A LuaSandboxFunction may be obtained as a return value from Lua, as a parameter
passed to a callback from Lua, or by using
LuaSandbox::wrapPhpFunction(),
LuaSandbox::loadString(), or
LuaSandbox::loadBinary().

Обзор классов

LuaSandboxFunction {
/* Методы */
public call ([ string $... ] ) : array|bool
public dump ( void ) : string
}

Содержание

  • LuaSandboxFunction::call — Call a Lua function
  • LuaSandboxFunction::__construct — Unused
  • LuaSandboxFunction::dump — Dump the function as a binary blob


Call a Lua function

  • « LuaSandboxFunction
  • LuaSandboxFunction::__construct »
  • PHP Manual
  • LuaSandboxFunction
  • Call a Lua function

LuaSandboxFunction::call

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::call — Call a Lua function

Описание

public LuaSandboxFunction::call ([ string $... ] ) : array|bool

Calls a Lua function.

Errors considered to be the fault of the PHP code will result in the function returning false and E_WARNING being raised, for example, a resource type being used as an argument. Lua errors will result in a LuaSandboxRuntimeError exception being thrown.

PHP and Lua types are converted as follows:

  • PHP NULL is Lua nil, and vice versa.

  • PHP integers and floats are converted to Lua numbers. Infinity and NAN are supported.

  • Lua numbers without a fractional part between approximately -2**53 and 2**53 are converted to PHP integers, with others being converted to PHP floats.

  • PHP booleans are Lua booleans, and vice versa.

  • PHP strings are Lua strings, and vice versa.

  • Lua functions are PHP LuaSandboxFunction objects, and vice versa. General PHP callables are not supported.

  • PHP arrays are converted to Lua tables, and vice versa.

    • Note that Lua typically indexes arrays from 1, while PHP indexes arrays from 0. No adjustment is made for these differing conventions.

    • Self-referential arrays are not supported in either direction.

    • PHP references are dereferenced.

    • Lua __pairs and __ipairs are processed. __index is ignored.

    • When converting from PHP to Lua, integer keys between -2**53 and 2**53 are represented as Lua numbers. All other keys are represented as Lua strings.

    • When converting from Lua to PHP, keys other than strings and numbers will result in an error, as will collisions when converting numbers to strings or vice versa (since PHP considers things like $a[0] and $a["0"] as being equivalent).

  • All other types are unsupported and will raise an error/exception, including general PHP objects and Lua userdata and thread types.

Lua functions inherently return a list of results. So on success, this method returns an array containing all of the values returned by Lua, with integer keys starting from zero. Lua may return no results, in which case an empty array is returned.

Список параметров

...

Arguments passed to the function.

Возвращаемые значения

Returns an array of values returned by the function, which may be empty, or false on error.


Unused

  • « LuaSandboxFunction::call
  • LuaSandboxFunction::dump »
  • PHP Manual
  • LuaSandboxFunction
  • Unused

LuaSandboxFunction::__construct

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::__construct — Unused

Описание

final private LuaSandboxFunction::__construct ( void )

LuaSandboxFunction are obtained as a return value from Lua,
as a parameter passed to a callback from Lua, or by using
LuaSandbox::wrapPhpFunction(),
LuaSandbox::loadString(), or
LuaSandbox::loadBinary(). They cannot be constructed directly.

Список параметров

У этой функции нет параметров.


Dump the function as a binary blob

  • « LuaSandboxFunction::__construct
  • LuaSandboxError »
  • PHP Manual
  • LuaSandboxFunction
  • Dump the function as a binary blob

LuaSandboxFunction::dump

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::dump — Dump the function as a binary blob

Описание

public LuaSandboxFunction::dump ( void ) : string

Dumps the function as a binary blob.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string that may be passed to LuaSandbox::loadBinary().


The LuaSandboxError class

(PECL luasandbox >= 1.0.0)

Введение

Base class for LuaSandbox exceptions

Обзор классов

LuaSandboxError extends Exception {
/* Constants */
const integer RUN = 2 ;
const integer SYNTAX = 3 ;
const integer MEM = 4 ;
const integer ERR = 5 ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Предопределенные константы

LuaSandboxError::RUN

LuaSandboxError::SYNTAX

LuaSandboxError::MEM

LuaSandboxError::ERR


The LuaSandboxErrorError class

(PECL luasandbox >= 1.0.0)

Введение

Exception thrown when Lua encounters an error inside an error handler.

Обзор классов

LuaSandboxErrorError extends LuaSandboxFatalError {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


The LuaSandboxFatalError class

(PECL luasandbox >= 1.0.0)

Введение

Uncatchable LuaSandbox exceptions.

These may not be caught inside Lua using pcall() or xpcall().

Обзор классов

LuaSandboxFatalError extends LuaSandboxError {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


The LuaSandboxMemoryError class

(PECL luasandbox >= 1.0.0)

Введение

Exception thrown when Lua cannot allocate memory.

Обзор классов

LuaSandboxMemoryError extends LuaSandboxFatalError {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Смотрите также

  • LuaSandbox::setMemoryLimit()


The LuaSandboxRuntimeError class

(PECL luasandbox >= 1.0.0)

Введение

Catchable LuaSandbox runtime exceptions.

These may be caught inside Lua using pcall() or xpcall().

Обзор классов

LuaSandboxRuntimeError extends LuaSandboxError {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


The LuaSandboxSyntaxError class

(PECL luasandbox >= 1.0.0)

Введение

Exception thrown when Lua code cannot be parsed.

Обзор классов

LuaSandboxSyntaxError extends LuaSandboxFatalError {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


The LuaSandboxTimeoutError class

(PECL luasandbox >= 1.0.0)

Введение

Exception thrown when the configured CPU time limit is exceeded.

Обзор классов

LuaSandboxTimeoutError extends LuaSandboxFatalError {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Смотрите также

  • LuaSandbox::setCPULimit()


Разные функции

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Разные функции
    • connection_aborted — Проверить, отключен ли клиент
    • connection_status — Возвращает статус соединения в битах
    • constant — Возвращает значение константы
    • define — Определяет именованную константу
    • defined — Проверяет существование указанной именованной константы
    • die — Эквивалент функции exit
    • eval — Выполняет код PHP, содержащейся в строке
    • exit — Вывести сообщение и прекратить выполнение текущего скрипта
    • get_browser — Сообщает о возможностях браузера пользователя
    • __halt_compiler — Останавливает работу компилятора
    • highlight_file — Подсветка синтаксиса файла
    • highlight_string — Подсветка синтаксиса строки
    • hrtime — Получить системное время высокого разрешения
    • ignore_user_abort — Установить, должно ли отключение клиента прерывать выполнение скрипта
    • pack — Упаковать данные в бинарную строку
    • php_check_syntax — Проверить PHP-синтаксис (и запустить) указанного файла
    • php_strip_whitespace — Возвращает исходный код без комментариев и пробелов
    • sapi_windows_cp_conv — Преобразовать строку из одной кодовой страницы в другую
    • sapi_windows_cp_get — Получить кодовую страницу процесса
    • sapi_windows_cp_is_utf8 — Указывает, совместима ли кодовая страница с UTF-8
    • sapi_windows_cp_set — Установить кодовую страницу процесса
    • sapi_windows_generate_ctrl_event — Send a CTRL event to another process
    • sapi_windows_set_ctrl_handler — Set or remove a CTRL event handler
    • sapi_windows_vt100_support — Получить или установить поддержку VT100 для заданного потока, свазанного с буфером вывода консоли Windows
    • show_source — Псевдоним highlight_file
    • sleep — Задержка выполнения
    • sys_getloadavg — Получает среднюю загрузку системы
    • time_nanosleep — Задержка на заданное число секунд и наносекунд
    • time_sleep_until — Откладывает исполнение скрипта до заданного времени
    • uniqid — Сгенерировать уникальный ID
    • unpack — Распаковать данные из бинарной строки
    • usleep — Задержка выполнения в микросекундах
  • Список изменений


Введение

Эти функции помещены сюда, поскольку не подходят ни к одной из категорий.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настроек разных функций
Имя | По умолчанию | Место изменения | Список изменений
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 | Удалено в PHP 5.4.0.
highlight.default | "#0000BB" | PHP_INI_ALL |
highlight.html | "#000000" | PHP_INI_ALL |
browscap | NULL | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

ignore_user_abort boolean

FALSE по умолчанию. Если изменяется на TRUE, то скрипты не будут прерваны после того, как клиент разорвет соединение.

См. также ignore_user_abort().

highlight.bg string
highlight.comment string
highlight.default string
highlight.html string
highlight.keyword string
highlight.string string

Цвета для режима подсвечивания (Syntax Highlighting). Всё, что приемлемо в <font color="??????">, будет работать.

browscap string

Имя (например, browscap.ini) и расположение файла возможностей браузера. См. также get_browser().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

CONNECTION_ABORTED (integer)
CONNECTION_NORMAL (integer)
CONNECTION_TIMEOUT (integer)
__COMPILER_HALT_OFFSET__ (integer)
Добавлено в PHP 5.1.


Разные функции

Содержание

  • connection_aborted — Проверить, отключен ли клиент
  • connection_status — Возвращает статус соединения в битах
  • constant — Возвращает значение константы
  • define — Определяет именованную константу
  • defined — Проверяет существование указанной именованной константы
  • die — Эквивалент функции exit
  • eval — Выполняет код PHP, содержащейся в строке
  • exit — Вывести сообщение и прекратить выполнение текущего скрипта
  • get_browser — Сообщает о возможностях браузера пользователя
  • __halt_compiler — Останавливает работу компилятора
  • highlight_file — Подсветка синтаксиса файла
  • highlight_string — Подсветка синтаксиса строки
  • hrtime — Получить системное время высокого разрешения
  • ignore_user_abort — Установить, должно ли отключение клиента прерывать выполнение скрипта
  • pack — Упаковать данные в бинарную строку
  • php_check_syntax — Проверить PHP-синтаксис (и запустить) указанного файла
  • php_strip_whitespace — Возвращает исходный код без комментариев и пробелов
  • sapi_windows_cp_conv — Преобразовать строку из одной кодовой страницы в другую
  • sapi_windows_cp_get — Получить кодовую страницу процесса
  • sapi_windows_cp_is_utf8 — Указывает, совместима ли кодовая страница с UTF-8
  • sapi_windows_cp_set — Установить кодовую страницу процесса
  • sapi_windows_generate_ctrl_event — Send a CTRL event to another process
  • sapi_windows_set_ctrl_handler — Set or remove a CTRL event handler
  • sapi_windows_vt100_support — Получить или установить поддержку VT100 для заданного потока, свазанного с буфером вывода консоли Windows
  • show_source — Псевдоним highlight_file
  • sleep — Задержка выполнения
  • sys_getloadavg — Получает среднюю загрузку системы
  • time_nanosleep — Задержка на заданное число секунд и наносекунд
  • time_sleep_until — Откладывает исполнение скрипта до заданного времени
  • uniqid — Сгенерировать уникальный ID
  • unpack — Распаковать данные из бинарной строки
  • usleep — Задержка выполнения в микросекундах


Проверить, отключен ли клиент

  • « Разные функции
  • connection_status »
  • PHP Manual
  • Разные функции
  • Проверить, отключен ли клиент

connection_aborted

(PHP 4, PHP 5, PHP 7)

connection_aborted — Проверить, отключен ли клиент

Описание

connection_aborted ( void ) : int

Проверяет, отключен ли клиент.

Возвращаемые значения

Возвращает 1, если клиент отключен, 0 в противном случае.

Смотрите также

  • connection_status() - Возвращает статус соединения в битах
  • ignore_user_abort() - Установить, должно ли отключение клиента прерывать выполнение скрипта
  • См. Управление подключениями для получения полного описания управления подключениями в PHP.


Возвращает статус соединения в битах

  • « connection_aborted
  • constant »
  • PHP Manual
  • Разные функции
  • Возвращает статус соединения в битах

connection_status

(PHP 4, PHP 5, PHP 7)

connection_status — Возвращает статус соединения в битах

Описание

connection_status ( void ) : int

Получает статус соединения в битах.

Возвращаемые значения

Возвращает статус соединения в битах, который можно использовать в константах CONNECTION_XXX для определения статуса соединения.

Смотрите также

  • connection_aborted() - Проверить, отключен ли клиент
  • ignore_user_abort() - Установить, должно ли отключение клиента прерывать выполнение скрипта
  • См. Управление соединением для полной информации об управлении соединением в PHP.


Возвращает значение константы

  • « connection_status
  • define »
  • PHP Manual
  • Разные функции
  • Возвращает значение константы

constant

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

constant — Возвращает значение константы

Описание

constant ( string $name ) : mixed

Возвращает значение константы, указанной в параметре name.

Функция constant() полезна, если вам необходимо получить значение константы, но неизвестно её имя. Например, если оно хранится в переменной или возвращается функцией.

Данная функция также работает с константами классов.

Список параметров

name

Имя константы.

Возвращаемые значения

Возвращает значение константы или NULL, если константа не определена.

Ошибки

Если константа не определена, генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 Пример функции constant()

<?php

define("MAXSIZE", 100);

echo MAXSIZE;
echo constant("MAXSIZE"); // результат аналогичен предыдущему выводу

interface bar {
    const test = 'foobar!';
}

class foo {
    const test = 'foobar!';
}

$const = 'test';

var_dump(constant('bar::'. $const)); // string(7) "foobar!"
var_dump(constant('foo::'. $const)); // string(7) "foobar!"

?>

Смотрите также

  • define() - Определяет именованную константу
  • defined() - Проверяет существование указанной именованной константы
  • См. раздел Константы


Определяет именованную константу

  • « constant
  • defined »
  • PHP Manual
  • Разные функции
  • Определяет именованную константу

define

(PHP 4, PHP 5, PHP 7)

define — Определяет именованную константу

Описание

define ( string $name , mixed $value [, bool $case_insensitive = FALSE ] ) : bool

Определяет именованную константу во время выполнения.

Список параметров

name

Имя константы.

Замечание:

Возможно определить константы с помощью функции define() зарезервированными или даже некорректными именами, значения которых могут быть (только) получены через функцию constant(). Однако, делать это не рекомендуется.

value

Значение константы. В PHP 5 value должно быть скалярным значением (integer, float, string, boolean или NULL). В PHP 7 также возможно использовать тип array.

Внимание

Хотя возможно определить константы с типом resource, не рекомендуется это делать, поскольку может привести к непредсказуемому поведению.

case_insensitive

Если параметр установлен как TRUE, то константа будет определена без учета регистра. По умолчанию константа чувствительна к регистру, то есть CONSTANT и Constant представляют разные значения.

Внимание

Начиная с PHP 7.3.0, определение нечувствительных к регистру констант объявлено устаревшим.

Замечание:

Нечувствительные к регистру константы хранятся в нижнем регистре.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3.0 | Параметр case_insensitive объявлен устаревшим и будет удален в версии 8.0.0.
7.0.0 | Допустимы значения типа array.

Примеры

Пример #1 Определение констант

<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // выводит "Hello world."
echo Constant; // выводит "Constant" и выдает уведомление.

define("GREETING", "Hello you.", true);
echo GREETING; // выводит "Hello you."
echo Greeting; // выводит "Hello you."

// Начиная с PHP 7
define('ANIMALS', array(
    'собака',
    'кошка',
    'птица'
));
echo ANIMALS[1]; // выводит "кошка"

?>

Пример #2 Определение констант зарезервированными именами

Этот пример демонстрирует возможность определения константы с тем же именем, что и магическая константа. Поскольку это, очевидно, сбивающее с толку поведение, не рекомендуется делать это на практике.

<?php
var_dump(defined('__LINE__'));
var_dump(define('__LINE__', 'test'));
var_dump(constant('__LINE__'));
var_dump(__LINE__);
?>

Результат выполнения данного примера:

bool(false)
bool(true)
string(4) "test"
int(5)

Смотрите также

  • defined() - Проверяет существование указанной именованной константы
  • constant() - Возвращает значение константы
  • См. раздел Константы


Проверяет существование указанной именованной константы

  • « define
  • die »
  • PHP Manual
  • Разные функции
  • Проверяет существование указанной именованной константы

defined

(PHP 4, PHP 5, PHP 7)

defined — Проверяет существование указанной именованной константы

Описание

defined ( string $name ) : bool

Проверяет существование и наличие значения указанной константы.

Замечание:

Если необходимо узнать о существовании переменной, то используйте isset(), так как defined() применима лишь для констант. Если вам необходимо узнать о существовании функции, то используйте function_exists().

Список параметров

name

Имя константы.

Возвращаемые значения

Возвращает TRUE, если именованная константа, указанная в параметре name, была определена, FALSE в противном случае.

Примеры

Пример #1 Проверка констант

<?php
/* Важно учесть необходимость использования кавычек. Данный пример проверяет,
 * является ли строка 'TEST' именем константы TEST. */
if (defined('TEST')) {
    echo TEST;
}
?>

Смотрите также

  • define() - Определяет именованную константу
  • constant() - Возвращает значение константы
  • get_defined_constants() - Возвращает ассоциативный массив с именами всех констант и их значений
  • function_exists() - Возвращает TRUE, если указанная функция определена
  • См. раздел Константы


Эквивалент функции exit

  • « defined
  • eval »
  • PHP Manual
  • Разные функции
  • Эквивалент функции exit

die

(PHP 4, PHP 5, PHP 7)

die — Эквивалент функции exit

Описание

Данная функция эквивалентна функции exit().


Выполняет код PHP, содержащейся в строке

  • « die
  • exit »
  • PHP Manual
  • Разные функции
  • Выполняет код PHP, содержащейся в строке

eval

(PHP 4, PHP 5, PHP 7)

eval — Выполняет код PHP, содержащейся в строке

Описание

eval ( string $code ) : mixed

Выполняет строку, переданную в параметре code, как код PHP.

Предостережение

Языковая конструкция eval() может быть очень опасной, поскольку позволяет выполнить произвольный код. Использование данной функции не рекомендуется. Если вы полностью убеждены, что нет другого способа, кроме использования этой конструкции, обратите особое внимание на то, чтобы не передавать какие-либо данные, предоставленые пользователем, без предварительной проверки.

Список параметров

code

Выполняемая строка кода PHP.

Код не должен быть обернут открывающимся и закрывающимся тегами PHP, то есть строка должна быть, например, такой 'echo "Привет!";', но не такой '<?php echo "Привет!"; >'. Возможно переключаться между режимами PHP- и HTML-кода, например 'echo "Код PHP!"; ?>Код HTML<?php echo "Снова код PHP!";'.

Передаваемый код должен быть верным исполняемым кодом PHP. Это значит, что операторы должны быть разделены точкой с запятой (;). При исполнении строки 'echo "Привет!"' будет сгенерирована ошибка, а строка 'echo "Привет!";' будет успешно выполнена.

Указание в коде ключевого слова return прекращает исполнение кода в строке.

Исполняемый код из строки будет выполняться в области видимости кода, вызвавшего eval(). Таким образом, любые переменные, определенные или измененные в вызове eval(), будут доступны после его выполнения в теле программы.

Возвращаемые значения

Функция eval() возвращает NULL, если не вызывается return, в случае чего возвращается значение, переданное return. С PHP 7, если в исполняемом коде присутствует ошибка, то eval() вызывает исключение "ParseError". До PHP 7 в этом случае возвращается FALSE и продолжается нормальное выполнение последующего кода. Невозможно поймать ошибку парсера в eval(), используя set_error_handler().

Примеры

Пример #1 Пример функции eval() - простое слияние текста

<?php
$string = 'чашка';
$name = 'кофе';
$str = 'Это $string с моим $name.';
echo $str. "\n";
eval("\$str = \"$str\";");
echo $str. "\n";
?>

Результат выполнения данного примера:

Это $string с моим $name.
Это чашка с моим кофе.

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.

Подсказка

Как и с любой другой функцией, осуществляющей вывод непосредственно в браузер, вы можете использовать функции контроля вывода, чтобы перехватывать выводимые этой функцией данные и сохранять их, например, в строку (string).

Замечание:

В случае фатальной ошибки в исполняемом коде прекращается исполнение всего скрипта.

Смотрите также

  • call_user_func() - Вызывает callback-функцию, заданную в первом параметре


Вывести сообщение и прекратить выполнение текущего скрипта

  • « eval
  • get_browser »
  • PHP Manual
  • Разные функции
  • Вывести сообщение и прекратить выполнение текущего скрипта

exit

(PHP 4, PHP 5, PHP 7)

exit — Вывести сообщение и прекратить выполнение текущего скрипта

Описание

exit ([ string $status ] ) : void
exit ( int $status ) : void

Прекращает выполнение скрипта. Функции отключения и деструкторы объекта будут запущены, даже если была вызвана конструкция exit.

exit - это конструкция языка, и она может быть вызвана без круглых скобок, если не передается параметр status.

Список параметров

status

Если status задан в виде строки, то эта функция выведет содержимое status перед выходом.

Если status задан в виде целого числа (integer), то это значение будет использовано как статус выхода и не будет выведено. Статусы выхода должны быть в диапазоне от 0 до 254, статус выхода 255 зарезервирован PHP и не должен использоваться. Статус выхода 0 используется для успешного завершения программы.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования exit

<?php

$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
    or exit("Невозможно открыть файл ($filename)");

?>

Пример #2 Пример использования exit со статусом выхода

<?php

//обычный выход из программы
exit;
exit();
exit(0);

//выход с кодом ошибки
exit(1);
exit(0376); //восьмеричный

?>

Пример #3 Функции выключения и деструкторы выполняются независимо

<?php
class Foo
{
    public function __destruct()
    {
        echo 'Деинициализировать: ' . __METHOD__ . '()' . PHP_EOL;
    }
}

function shutdown()
{
    echo 'Завершить: ' . __FUNCTION__ . '()' . PHP_EOL;
}

$foo = new Foo();
register_shutdown_function('shutdown');

exit();
echo 'Эта строка не будет выведена.';
?>

Результат выполнения данного примера:

 Завершить: shutdown()
 Деинициализировать: Foo::__destruct()

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.

Замечание:

Эта языковая конструкция эквивалентна функции die().

Смотрите также

  • register_shutdown_function() - Регистрирует функцию, которая выполнится при завершении работы скрипта


Сообщает о возможностях браузера пользователя

  • « exit
  • __halt_compiler »
  • PHP Manual
  • Разные функции
  • Сообщает о возможностях браузера пользователя

get_browser

(PHP 4, PHP 5, PHP 7)

get_browser — Сообщает о возможностях браузера пользователя

Описание

get_browser ([ string $user_agent [, bool $return_array = FALSE ]] ) : mixed

Пытается определить возможности браузера пользователя, производя поиск информации о браузере в файле browscap.ini.

Список параметров

user_agent

Анализируемая строка с User Agent. По умолчанию используется значение HTTP User-Agent. Тем не менее, этот параметр можно пропустить для получения дополнительной информации о браузере.

Параметр может быть пропущен, если его значение будет равно NULL.

return_array

Если равен TRUE, то функция вернет массив (array) вместо объекта (object).

Возвращаемые значения

Информация возвращается в виде объекта, либо в виде архива, который содержит различные данные, к примеру, мажорную и минорную версию браузера и строку ID; значения с TRUE/FALSE для таких функций браузера, таких как фреймы, JavaScript, cookies и т.д.

Наличие cookies означает, что браузер имеет возможность приёма cookies, а не сообщает о том, включил ли пользователь возможность приёма cookies или нет. Единственным способом проверки возможности браузера принимать cookies является установка cookie с помощью setcookie(), обновление страницы и проверка значения.

Примеры

Пример #1 Вывод информации о браузере пользователя

<?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
    [cssversion] => 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] =>
)

Примечания

Замечание:

Для работы этой функции необходимо, чтобы в установке browscap в настройках php.ini был установлен корректный путь к файлу browscap.ini в вашей системе.

browscap.ini не поставляется с PHP, но вы можете последнюю его версию здесь: » php_browscap.ini.

browscap.ini содержит информацию о большинстве браузеров, он требует обновлений для поддержания его базы актуальной Формат файла довольно очевиден.


Останавливает работу компилятора

  • « get_browser
  • highlight_file »
  • PHP Manual
  • Разные функции
  • Останавливает работу компилятора

__halt_compiler

(PHP 5 >= 5.1.0, PHP 7)

__halt_compiler — Останавливает работу компилятора

Описание

__halt_compiler ( void ) : void

Останавливает работу компилятора. Эта функция может быть полезна при внедрении данных в PHP-скрипты, например, в файлы установки.

Начальная позиция данных в байтах может быть определена константой __COMPILER_HALT_OFFSET__, которая может быть определена, только если в файле имеется функция __halt_compiler().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования __halt_compiler()

<?php

// открыть указанный файл
$fp = fopen(__FILE__, 'r');

// искать в указателе файла данные
fseek($fp, __COMPILER_HALT_OFFSET__);

// и вывести их
var_dump(stream_get_contents($fp));

// останавливает работу скрипта
__halt_compiler(); the installation data (eg. tar, gz, PHP, etc.)

Примечания

Замечание:

Функция __halt_compiler() может быть использована только извне.


Подсветка синтаксиса файла

  • « __halt_compiler
  • highlight_string »
  • PHP Manual
  • Разные функции
  • Подсветка синтаксиса файла

highlight_file

(PHP 4, PHP 5, PHP 7)

highlight_file — Подсветка синтаксиса файла

Описание

highlight_file ( string $filename [, bool $return = FALSE ] ) : mixed

Выводит или возвращает версию с подсветкой синтаксиса кода, содержащегося в файле filename, используя цвета, определенные во встроенной подсветке синтаксиса PHP.

Большинство серверов сконфигурированы автоматически подсвечивать файлы с расширением phps. К примеру, при отображении файла example.phps будет выведен код с подсветкой синтаксиса. Для включения добавьте следующую строку в httpd.conf:

AddType application/x-httpd-php-source .phps

Список параметров

filename

Путь к подсвечиваемому файлу PHP.

return

Установите в этот параметр TRUE для того, чтобы функция вернула подсвеченный код.

Возвращаемые значения

Если в return установлено TRUE, то подсвеченный код возвращается в виде строки, а отображает его. В другом случае будет возвращено TRUE, либо FALSE при ошибке.

Примечания

Предостережение

Необходимо пользоваться функцией highlight_file() с должным вниманием, с тем чтобы по неосторожности не раскрыть конфиденциальную информацию, такую как пароли или любую другую информацию, которая может создать потенциальную угрозу безопасности.

Замечание:

При использовании параметра return данная функция использует внутреннюю буферизацию вывода, поэтому она не может быть использована внутри callback-функции ob_start().

Смотрите также

  • highlight_string() - Подсветка синтаксиса строки
  • Подсвечивание директив INI


Подсветка синтаксиса строки

  • « highlight_file
  • hrtime »
  • PHP Manual
  • Разные функции
  • Подсветка синтаксиса строки

highlight_string

(PHP 4, PHP 5, PHP 7)

highlight_string — Подсветка синтаксиса строки

Описание

highlight_string ( string $str [, bool $return = FALSE ] ) : mixed

Выводит или возвращает код PHP с html-разметкой c подсвеченным синтаксисом, используя цвета, определенные во встроенном обработчике подсветки синтаксиса PHP.

Список параметров

str

Подсвечиваемый PHP-код. Должен включать открывающий тег.

return

При установке этого параметра равным TRUE, функция возвращает код с подсветкой синтаксиса.

Возвращаемые значения

Если параметр return равен TRUE, то вместо вывода в виде строки возвращается код с подсветкой синтаксиса. В противном случае возвращает TRUE или FALSE при ошибке.

Примеры

Пример #1 Пример использования highlight_string()

<?php
highlight_string('<?php phpinfo(); ?>');
?>

Результат выполнения данного примера:

<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>

Примечания

Замечание:

При использовании параметра return данная функция использует внутреннюю буферизацию вывода, поэтому она не может быть использована внутри callback-функции ob_start().

Сгенерированная разметка HTML может быть изменена.

Смотрите также

  • highlight_file() - Подсветка синтаксиса файла
  • Подсветка директив INI


Получить системное время высокого разрешения

  • « highlight_string
  • ignore_user_abort »
  • PHP Manual
  • Разные функции
  • Получить системное время высокого разрешения

hrtime

(PHP 7 >= 7.3.0)

hrtime — Получить системное время высокого разрешения

Описание

hrtime ([ bool $get_as_number = FALSE ] ) : mixed

Возвращает время высокого разрешения системы, отсчитываемое с произвольной точки времени. Полученная временная метка неизменна и не может быть отрегулирована.

Список параметров

get_as_number

Должно ли время высокого разрешения возвращаться в виде массива (array) или числа.

Возвращаемые значения

Возвращает массив целых чисел в формате [секунды, наносекунды], если параметр get_as_number равен false. В противном случае наносекунды возвращаются в виде целого числа (integer) (для 64-битных систем) или float (для 32-битных систем).

Примеры

Пример #1 Пример использования hrtime()

<?php
echo hrtime(true), PHP_EOL;
print_r(hrtime());
?>

Результатом выполнения данного примера будет что-то подобное:

10444739687370679
Array
(
    [0] => 10444739
    [1] => 687464812
)

Смотрите также

  • Расширение Время высокого разрешения


Установить, должно ли отключение клиента прерывать выполнение скрипта

  • « hrtime
  • pack »
  • PHP Manual
  • Разные функции
  • Установить, должно ли отключение клиента прерывать выполнение скрипта

ignore_user_abort

(PHP 4, PHP 5, PHP 7)

ignore_user_abort — Установить, должно ли отключение клиента прерывать выполнение скрипта

Описание

ignore_user_abort ([ bool $value ] ) : int

Устанавливает, необходимо ли прерывать работу скрипта при отключении клиента.

При работе с PHP-скриптом в командной строке, когда терминал скрипта отключается без прерывания работы скрипта, скрипт будет остановлен, если параметр value не равен TRUE

Список параметров

value

Если параметр задан, то эта функция устанавливает ini-настройку ignore_user_abort, заданным значением параметра value. Если же параметр не задан, функция вернет предыдущее значение опции без его изменения.

Возвращаемые значения

Возвращает предыдущее значение в виде целого числа.

Примеры

Пример #1 Пример использования ignore_user_abort()

<?php
// Игнорирует отключение пользователя и позволяет скрипту
// быть запущенным постоянно
ignore_user_abort(true);
set_time_limit(0);

echo 'Тестирование обработки соединения в PHP';

// Запуск бесконечного цикла,
// который будет завершен при выходе со страницы,
// либо при нажатии кнопки "Stop".
while(1)
{
    // Завершено ли соединение?
    if(connection_status() != CONNECTION_NORMAL)
    {
        break;
    }

    // Пауза на 10 секунд
    sleep(10);
}

// Если скрипт достиг этой строки, то была
// выполнена функция 'break' из цикла while

// Здесь можно производить журналирование, либо
// выполнять другие необходимые операции независимо
// от браузера.
?>

Примечания

PHP не обнаружит, что пользователь прервал соединение до тех пор, пока не будет произведена попытка отправки информации клиенту. Простое использование выражения echo не гарантирует отправку информации, см. функцию flush().

Смотрите также

  • connection_aborted() - Проверить, отключен ли клиент
  • connection_status() - Возвращает статус соединения в битах
  • См. Управление Соединением для получения более детальной информации по управлению соединениями в PHP.


Упаковать данные в бинарную строку

  • « ignore_user_abort
  • php_check_syntax »
  • PHP Manual
  • Разные функции
  • Упаковать данные в бинарную строку

pack

(PHP 4, PHP 5, PHP 7)

pack — Упаковать данные в бинарную строку

Описание

pack ( string $format [, mixed $... ] ) : string

Упаковывает заданные аргументы в бинарную строку в соответствии с форматом в параметре format.

Идея этой функции была заимствована из Perl и все коды форматирования работают так же. Однако, есть некоторые отсутствующие коды форматирования, такие как код формата Perl "u".

Необходимо иметь в виду, что отличие между знаковыми и беззнаковыми значениями влияет только на функцию unpack(), тогда как функция pack() дает одинаковый результат для знаковых и беззнаковых кодов формата.

Список параметров

format

Параметр format задается в виде строки и состоит из кодов формата и опционального аргумента повторения. Аргумент может быть целочисленным, либо * для повторения до конца введенных данных. Для a, A, h, H число повторений определяет то, сколько символов взято от одного аргумента данных, для @ - это абсолютная позиция для размещения следующих данных, для всего остального число повторений определяет как много аргументов данных было обработано и упаковано в результирующую бинарную строку.

Работающие на данный момент форматы:

Символы форматов функции pack()
Код | Описание
a | Строка (string) с NUL-заполнением
A | Строка (string) со SPACE-заполнением
h | Hex-строка (Hex string), с нижнего разряда
H | Hex-строка (Hex string), с верхнего разряда
c | знаковый символ (char)
C | беззнаковый символ (char)
s | знаковый short (всегда 16 бит, машинный байтовый порядок)
S | беззнаковый short (всегда 16 бит, машинный байтовый порядок)
n | беззнаковый short (всегда 16 бит, порядок big endian)
v | беззнаковый short (всегда 16 бит, порядок little endian)
i | знаковый integer (машинно-зависимый размер и порядок)
I | беззнаковый integer (машинно-зависимый размер и порядок)
l | знаковый long (всегда 32 бит, машинный порядок)
L | беззнаковый long (всегда 32 бит, машинный порядок)
N | беззнаковый long (всегда 32 бит, порядок big endian)
V | беззнаковый long (всегда 32 бит, порядок little endian)
q | signed long long (всегда 64 bit, машинный порядок)
Q | беззнаковый long long (всегда 64 bit, машинный порядок)
J | беззнаковый long long (всегда 64 bit, порядок big endian)
P | беззнаковый long long (всегда 64 bit, порядок little endian)
f | float (машинно-зависимые размер и представление)
g | float (машинно-зависимые размер, порядок байт little endian)
G | float (машинно-зависимые размер, порядок байт big endian)
d | double (машинно-зависимые размер и представление)
e | double (машинно-зависимые размер, порядок байт little endian)
E | double (машинно-зависимые размер, порядок байт big endian)
x | байт NUL
X | Резервирование одного байта
Z | Строка (string) с NUL-заполнением (добавлено в PHP 5.5)
@ NUL-заполнение до абсолютной позиции

...

Возвращаемые значения

Возвращает бинарную строку, содержащую данные.

Список изменений

Версия | Описание
7.2.0 | Типы float и double поддерживают как обратный, так и прямой порядок передачи байтов.
7.0.15,7.1.1 | Добавлены коды "e", "E", "g" и "G" для поддержки принудительного указания порядка байт для float и double.
5.6.3 | Добавлены коды "q", "Q", "J" и "P" для поддержки 64-bit чисел.
5.5.0 | Добавлен код "Z", работающий аналогично "a" для совместимости с Perl.

Примеры

Пример #1 Пример использования pack()

<?php
$binarydata = pack("nvc*", 0x1234, 0x5678, 65, 66);
?>

Полученная бинарная строка длиной 6 байт будет содержать последовательность байтов 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.

Примечания

Предостережение

Необходимо отметить, что PHP сохраняет значения типа integer как знаковые с машинно-зависимым размером (C тип long). Все числа, переданные как integer, но выходящие за границы этого типа будут сохранены с типом float. При упаковке этих float как integer, они будут переданы с типом integer. Это может как совпадать, так и нет с заданным шаблоном.

Наиболее частым является случай, когда упаковываются беззнаковые числа типа integer. В системах, где integer имеет размер в 32 бита, число обычно передается по тому же шаблону, как если бы integer был беззнаковым (хотя, это зависит от определенных преобразований из знаковое в беззнаковое, согласно стандарту С). В системах, где тип integer имеет размер в 64 бита, тип float не имеет мантиссы, достаточной по размеру для хранения значения без потери точности. Если эти системы также имеют простой 64-битный С тип int (большинство UNIX систем не имеют), то единственным путем для использования формата I в верхнем разряде является создание отрицательных integer значений с тем же представлением как и в определенном беззнаковом значении.

Смотрите также

  • unpack() - Распаковать данные из бинарной строки


Проверить PHP-синтаксис (и запустить) указанного файла

  • « pack
  • php_strip_whitespace »
  • PHP Manual
  • Разные функции
  • Проверить PHP-синтаксис (и запустить) указанного файла

php_check_syntax

(PHP 5 < 5.0.5)

php_check_syntax — Проверить PHP-синтаксис (и запустить) указанного файла

Описание

php_check_syntax ( string $filename [, string &$error_message ] ) : bool

Выполняет проверку синтаксиса (производит верификацию) файла, указанного в filename на ошибки в коде.

Действие похоже на использование php -l из командной строки, исключая то, что эта функция запустит (но не выведет) проверяемый файл из filename.

К примеру, если функция определена в filename, то эта функция будет доступна в файле, из которого производится запуск функции php_check_syntax(), но вывод из файла, указанного в filename, будет подавлен.

Замечание:

По техническим причинам эта функция устарела и удалена из PHP. Вместо этой функции используйте php -l somefile.php из командной строки.

Список параметров

filename

Имя проверяемого файла.

error_message

Если используется параметр error_message, то в нем будет содержаться сообщение об ошибке, сформированное при проверке синтаксиса. error_message передается по ссылке.

Возвращаемые значения

Возвращает TRUE если проверка пройдена, и FALSE если возникла ошибка или файл из filename недоступен.

Список изменений

Версия | Описание
5.0.5 | Эта функция была удалена из PHP.
5.0.3 | Вызов функции exit() после php_check_syntax() передает результат в Segfault.
5.0.1 | error_message передается по ссылке.

Примеры

php -l somefile.php

Результатом выполнения данного примера будет что-то подобное:

PHP Parse error: unexpected T_STRING in /tmp/somefile.php on line 81

Смотрите также

  • include - include
  • is_readable() - Определяет существование файла и доступен ли он для чтения


Возвращает исходный код без комментариев и пробелов

  • « php_check_syntax
  • sapi_windows_cp_conv »
  • PHP Manual
  • Разные функции
  • Возвращает исходный код без комментариев и пробелов

php_strip_whitespace

(PHP 5, PHP 7)

php_strip_whitespace — Возвращает исходный код без комментариев и пробелов

Описание

php_strip_whitespace ( string $filename ) : string

Возвращает исходный код PHP в файл (filename) с удаленными комментариями и пробелами. Эта функция может быть полезной для определения фактиченого объема чистого кода в скриптах по сравнению с количеством комментариев. Функция аналогична использованию php -w из командной строки.

Список параметров

filename

Путь к файлу PHP.

Возвращаемые значения

Возвращает очищенный исходный код при успешном выполнении или пустую строку в случае ошибки.

Замечание:

Эта функция принимает во внимание значение INI-директивы short_open_tag.

Замечание:

Эта функция работает как описано в PHP 5.0.1. Перед этим может быть возвращена пустая строка. Для более детальной информации смотрите отчет об ошибке » #29606.

Примеры

Пример #1 Пример использования php_strip_whitespace()

<?php
// PHP комментарий

/*
 * Другой PHP комментарий
 */

echo        php_strip_whitespace(__FILE__);
// Символы новой строки считаются пробелами, и также удаляются:
do_nothing();
?>

Результат выполнения данного примера:

<?php
 echo php_strip_whitespace(__FILE__); do_nothing(); ?>

В результате выполнения примера выведен исходный код PHP без комментариев, пробелов и пустых строк.


Преобразовать строку из одной кодовой страницы в другую

  • « php_strip_whitespace
  • sapi_windows_cp_get »
  • PHP Manual
  • Разные функции
  • Преобразовать строку из одной кодовой страницы в другую

sapi_windows_cp_conv

(PHP 7 >= 7.1.0)

sapi_windows_cp_conv — Преобразовать строку из одной кодовой страницы в другую

Описание

sapi_windows_cp_conv ( int|string $in_codepage , int|string $out_codepage , string $subject ) : string

Преобразовать строку из одной кодовой страницы в другую.

Список параметров

in_codepage

Кодовая страница строки subject. Либо имя или идентификатор кодовой страницы.

out_codepage

Кодовая страница для преобразования строки subject. Либо имя или идентификатор кодовой страницы.

subject

Строка для преобразования.

Возвращаемые значения

Строка subject, преобразованная в out_codepage или NULL при сбое.

Ошибки

Эта функция выдаст ошибки уровня E_WARNING, если переданы недопустмые кодовые страницы, или если строка в параметре subject некорректная для in_codepage.

Смотрите также

  • sapi_windows_cp_get() - Получить кодовую страницу процесса
  • iconv() - Преобразование строки в требуемую кодировку


Получить кодовую страницу процесса

  • « sapi_windows_cp_conv
  • sapi_windows_cp_is_utf8 »
  • PHP Manual
  • Разные функции
  • Получить кодовую страницу процесса

sapi_windows_cp_get

(PHP 7 >= 7.1.0)

sapi_windows_cp_get — Получить кодовую страницу процесса

Описание

sapi_windows_cp_get ( string $kind ) : int

Получить идентификатор кодовой страницы текущей страницы.

Список параметров

kind

Тип кодовой страницы: либо 'ansi' или 'oem'.

Возвращаемые значения

Возвращает идентификатор кодовой страницы.

Смотрите также

  • sapi_windows_cp_set() - Установить кодовую страницу процесса


Указывает, совместима ли кодовая страница с UTF-8

  • « sapi_windows_cp_get
  • sapi_windows_cp_set »
  • PHP Manual
  • Разные функции
  • Указывает, совместима ли кодовая страница с UTF-8

sapi_windows_cp_is_utf8

(PHP 7 >= 7.1.0)

sapi_windows_cp_is_utf8 — Указывает, совместима ли кодовая страница с UTF-8

Описание

sapi_windows_cp_is_utf8 ( void ) : bool

Указывает, совместима ли кодовая страница текущего процесса с UTF-8.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает, совместима ли кодовая страница текущего процесса с UTF-8.

Смотрите также

  • sapi_windows_cp_get() - Получить кодовую страницу процесса


Установить кодовую страницу процесса

  • « sapi_windows_cp_is_utf8
  • sapi_windows_generate_ctrl_event »
  • PHP Manual
  • Разные функции
  • Установить кодовую страницу процесса

sapi_windows_cp_set

(PHP 7 >= 7.1.0)

sapi_windows_cp_set — Установить кодовую страницу процесса

Описание

sapi_windows_cp_set ( int $cp ) : bool

Установить кодовую страницу текущего процесса.

Список параметров

cp

Идентификатор кодовой страницы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • sapi_windows_cp_get() - Получить кодовую страницу процесса


Send a CTRL event to another process

  • « sapi_windows_cp_set
  • sapi_windows_set_ctrl_handler »
  • PHP Manual
  • Разные функции
  • Send a CTRL event to another process

sapi_windows_generate_ctrl_event

(PHP 7 >= 7.4.0)

sapi_windows_generate_ctrl_event — Send a CTRL event to another process

Описание

sapi_windows_generate_ctrl_event ( int $event [, int $pid = 0 ] ) : bool

Sends a CTRL event to another process in the same process group.

Список параметров

event

The CTRL even to send; either PHP_WINDOWS_EVENT_CTRL_C or PHP_WINDOWS_EVENT_CTRL_BREAK.

pid

The ID of the process to which to send the event to. If 0 is given, the event is sent to all processes of the process group.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Basic sapi_windows_generate_ctrl_event() Usage

This example shows how to pass along CTRL+BREAK events to a child process. In this case the child process echoes I'm still alive every second, until the user presses CTRL+BREAK, what causes only the child process to be terminated.

<?php
// forward CTRL+BREAK events to the child process
sapi_windows_set_ctrl_handler('sapi_windows_generate_ctrl_event');

// create a child process which echoes every second
$cmd = ['php', '-r', 'while (true) { echo "I\'m still alive\n"; sleep(1); }'];
$descspec = array(['pipe', 'r'], ['pipe', 'w'], ['pipe', 'w']);
$options = ['create_process_group' => true];
$proc = proc_open($cmd, $descspec, $pipes, null, null, $options);
while (true) {
    echo fgets($pipes[1]);
}
?>

Смотрите также

  • proc_open() - Выполнить команду и открыть указатель на файл для ввода/вывода
  • sapi_windows_set_ctrl_handler() - Set or remove a CTRL event handler


Set or remove a CTRL event handler

  • « sapi_windows_generate_ctrl_event
  • sapi_windows_vt100_support »
  • PHP Manual
  • Разные функции
  • Set or remove a CTRL event handler

sapi_windows_set_ctrl_handler

(PHP 7 >= 7.4.0)

sapi_windows_set_ctrl_handler — Set or remove a CTRL event handler

Описание

sapi_windows_set_ctrl_handler ( callable $callable [, bool $add = TRUE ] ) : bool

Sets or removes a CTRL event handler, which allows Windows CLI processes to intercept or ignore CTRL+C and CTRL+BREAK events. Note that in multithreaded environments, this is only possible when called from the main thread.

Список параметров

callable

A callback function to set or remove. If set, this function will be called whenever a CTRL+C or CTRL+BREAK event occurs. The function is supposed to have the following signature:

handler ( int $event ) : void
event
The CTRL event which has been received; either PHP_WINDOWS_EVENT_CTRL_C or PHP_WINDOWS_EVENT_CTRL_BREAK.
Setting a NULL callable causes the process to ignore CTRL+C events, but not CTRL+BREAK events.

add

If TRUE, the handler is set. If FALSE, the handler is removed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Basic sapi_windows_set_ctrl_handler() Usage

This example shows how to intercept CTRL events.

<?php
function ctrl_handler(int $event)
{
    switch ($event) {
        case PHP_WINDOWS_EVENT_CTRL_C:
            echo "You have pressed CTRL+C\n";
            break;
        case PHP_WINDOWS_EVENT_CTRL_BREAK:
            echo "You have pressed CTRL+BREAK\n";
            break;
    }
}

sapi_windows_set_ctrl_handler('ctrl_handler');
while (true); // infinite loop, so the handler can be triggered
?>

Смотрите также

  • sapi_windows_generate_ctrl_event() - Send a CTRL event to another process


Получить или установить поддержку VT100 для заданного потока, свазанного с буфером вывода консоли Windows

  • « sapi_windows_set_ctrl_handler
  • show_source »
  • PHP Manual
  • Разные функции
  • Получить или установить поддержку VT100 для заданного потока, свазанного с буфером вывода консоли Windows

sapi_windows_vt100_support

(PHP 7 >= 7.2.0)

sapi_windows_vt100_support — Получить или установить поддержку VT100 для заданного потока, свазанного с буфером вывода консоли Windows

Описание

sapi_windows_vt100_support ( resource $stream [, bool $enable ] ) : bool

Если параметр enable опущен, функция возвращает TRUE или FALSE в зависимости от того, разрешены или нет управляющие последовательности VT100 для stream

Если параметр enable задан, функция попытается включить или выключить функционал VT100 для потока stream. В этом случае функция вернет TRUE или FALSE в зависимости от успешности выполнения.

При старте, PHP пытается включить VT100 для потоков STDOUT и STDERR. Но если, например, эти потоки перенаправлены в файл, то поддержка VT100 может не включиться.

Если включена поддержка VT100, то можно использовать управляющие последовательности, так как они известны терминалу. Они позволяют изменять вывод терминала. В Windows эти последовательности известны как "Console Virtual Terminal Sequences".

Внимание

Эта функция использует реализацию флага ENABLE_VIRTUAL_TERMINAL_PROCESSING в Windows 10 API, следовательно функционал VT100 может быть недоступен в более старых версиях Windows.

Список параметров

stream

Поток, с которым будет работать функция.

enable

Если задано, то должно быть либо TRUE, либо FALSE, для включения и отключения VT100 соответственно.

Возвращаемые значения

Если параметр enable опущен, функция возвращает TRUE или FALSE в зависимости от того, разрешены или нет управляющие последовательности VT100

Если параметр enable задан: Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Состояние sapi_windows_vt100_support() по умолчанию

По умолчанию, для STDOUT и STDERR поддержка VT100 включена.

php -r "var_export(sapi_windows_vt100_support(STDOUT));echo ' ';var_export(sapi_windows_vt100_support(STDERR));"

Результатом выполнения данного примера будет что-то подобное:

true true

Если поток перенаправлен, то поддержка VT100 будет отключена:

php -r "var_export(sapi_windows_vt100_support(STDOUT));echo ' ';var_export(sapi_windows_vt100_support(STDERR));" 2>NUL

Результатом выполнения данного примера будет что-то подобное:

true false

Пример #2 Изменение состояния с помощью sapi_windows_vt100_support()

Вы не можете включить поддержку VT100 для STDOUT или STDERR если эти потоки перенаправлены.

php -r "var_export(sapi_windows_vt100_support(STDOUT, true));echo ' ';var_export(sapi_windows_vt100_support(STDERR, true));" 2>NUL

Результатом выполнения данного примера будет что-то подобное:

true false

Пример #3 Пример использования с поддержкой VT100

<?php
$out = fopen('php://stdout','w');
fwrite($out, 'Just forgot a lettr.');
// Переместить курсор на две позиции назад
fwrite($out, "\033[2D");
// Вставляет один пробел, сдвигая существующий текст вправо -> Просто забыли букву.
fwrite($out, "\033[1@");
fwrite($out, 'e');
?>

Результат выполнения данного примера:

Just forgot a letter.


Псевдоним highlight_file

  • « sapi_windows_vt100_support
  • sleep »
  • PHP Manual
  • Разные функции
  • Псевдоним highlight_file

show_source

(PHP 4, PHP 5, PHP 7)

show_source — Псевдоним highlight_file()

Описание

Эта функция является псевдонимом: highlight_file().


Задержка выполнения

  • « show_source
  • sys_getloadavg »
  • PHP Manual
  • Разные функции
  • Задержка выполнения

sleep

(PHP 4, PHP 5, PHP 7)

sleep — Задержка выполнения

Описание

sleep ( int $seconds ) : int

Откладывает исполнение программы на число секунд, указанное в параметре seconds.

Список параметров

seconds

Время остановки в секундах.

Возвращаемые значения

Возвращает 0 при успешном выполнении или FALSE при ошибке.

Если вызов был прерван сигналом, функция sleep() возвратит значение, не равное нулю. В Windows это значение всегда будет равно 192 (значение константы Windows API WAIT_IO_COMPLETION). На других платформах возвращаемом значением будет количество секунд, оставшихся до задержки.

Ошибки

Если указанное число секунд в параметре seconds отрицательное, то функция сгенерирует ошибку уровня E_WARNING.

Список изменений

Версия | Описание
5.3.4 | До PHP 5.3.4 функция sleep() в Windows всегда возвращала NULL после завершения ожидания, независимо от того было ли прервано выполнение функции или нет.

Примеры

Пример #1 Пример использования sleep()

<?php

// текущее время
echo date('h:i:s') . "\n";

// ожидание в течениe 10 секунд
sleep(10);

// завершение ожидания
echo date('h:i:s') . "\n";

?>

Этот пример выведет (через 10 секунд)

05:31:23
05:31:33

Смотрите также

  • usleep() - Задержка выполнения в микросекундах
  • time_nanosleep() - Задержка на заданное число секунд и наносекунд
  • time_sleep_until() - Откладывает исполнение скрипта до заданного времени
  • set_time_limit() - Ограничение времени выполнения скрипта


Получает среднюю загрузку системы

  • « sleep
  • time_nanosleep »
  • PHP Manual
  • Разные функции
  • Получает среднюю загрузку системы

sys_getloadavg

(PHP 5 >= 5.1.3, PHP 7)

sys_getloadavg — Получает среднюю загрузку системы

Описание

sys_getloadavg ( void ) : array

Возвращает три образца, представляющих среднюю загрузку системы (число процессов в очереди системных процессов) за последние 1, 5 и 15 минут, соответственно.

Возвращаемые значения

Возвращает массив (array) с тремя образцами (последние 1, 5 и 15 минут).

Примеры

Пример #1 Пример использования sys_getloadavg()

<?php
$load = sys_getloadavg();
if ($load[0] > 0.80) {
    header('HTTP/1.1 503 Too busy, try again later');
    die('Server too busy. Please try again later.');
}
?>

Примечания

Замечание: Для Windows-платформ эта функция не реализована.


Задержка на заданное число секунд и наносекунд

  • « sys_getloadavg
  • time_sleep_until »
  • PHP Manual
  • Разные функции
  • Задержка на заданное число секунд и наносекунд

time_nanosleep

(PHP 5, PHP 7)

time_nanosleep — Задержка на заданное число секунд и наносекунд

Описание

time_nanosleep ( int $seconds , int $nanoseconds ) : mixed

Откладывает исполнение программы на заданные в параметрах seconds и nanoseconds число секунд и наносекунд соответственно.

Список параметров

seconds

Должно быть целым положительным числом.

nanoseconds

Должно быть целым положительным числом, меньшим одного миллиарда.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Если отложенное исполнение было прервано сигналом, то возвращается ассоциативный массив со следующими компонентами:

  • seconds - число оставшихся секунд
  • nanoseconds - число оставшихся наносекунд

Список изменений

Версия | Описание
5.3.0 | Эта функция теперь доступна на платформах Windows.

Примеры

Пример #1 Пример использования time_nanosleep()

<?php
// Внимание! Если будет возвращен массив, то такая функция не сработает, как ожидалось
if (time_nanosleep(0, 500000000)) {
    echo "Задержка на полсекунды.\n";
}

// Так лучше:
if (time_nanosleep(0, 500000000) === true) {
    echo "Задержка на полсекунды.\n";
}

// А так лучше всего:
$nano = time_nanosleep(2, 100000);

if ($nano === true) {
    echo "Задержка на 2 секунды, 100 микросекунд.\n";
} elseif ($nano === false) {
    echo "Задержка не удалась.\n";
} elseif (is_array($nano)) {
    $seconds = $nano['seconds'];
    $nanoseconds = $nano['nanoseconds'];
    echo "Прервано сигналом.\n";
    echo "Осталось: $seconds секунд, $nanoseconds наносекунд.";
}
?>

Смотрите также

  • sleep() - Задержка выполнения
  • usleep() - Задержка выполнения в микросекундах
  • time_sleep_until() - Откладывает исполнение скрипта до заданного времени
  • set_time_limit() - Ограничение времени выполнения скрипта


Откладывает исполнение скрипта до заданного времени

  • « time_nanosleep
  • uniqid »
  • PHP Manual
  • Разные функции
  • Откладывает исполнение скрипта до заданного времени

time_sleep_until

(PHP 5 >= 5.1.0, PHP 7)

time_sleep_until — Откладывает исполнение скрипта до заданного времени

Описание

time_sleep_until ( float $timestamp ) : bool

Откладывает исполнение скрипта до заданной временной метки, указанной в параметре timestamp.

Список параметров

timestamp

Временная метка продолжения исполнения скрипта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Эта функция теперь доступна на платформах Windows.

Ошибки

Если указанная временная метка timestamp просрочена, то функция сгенерирует E_WARNING.

Примеры

Пример #1 Пример использования time_sleep_until()

<?php

//возвращает false и выводит предупреждение
var_dump(time_sleep_until(time()-1));

// может работать только на быстродействующих компьютерах, выполнение отложено до 0.2 секунд
var_dump(time_sleep_until(microtime(true)+0.2));

?>

Примечания

Замечание: Все сигналы будут доставлены после продолжения исполнения скрипта.

Смотрите также

  • sleep() - Задержка выполнения
  • usleep() - Задержка выполнения в микросекундах
  • time_nanosleep() - Задержка на заданное число секунд и наносекунд
  • set_time_limit() - Ограничение времени выполнения скрипта


Сгенерировать уникальный ID

  • « time_sleep_until
  • unpack »
  • PHP Manual
  • Разные функции
  • Сгенерировать уникальный ID

uniqid

(PHP 4, PHP 5, PHP 7)

uniqid — Сгенерировать уникальный ID

Описание

uniqid ([ string $prefix = "" [, bool $more_entropy = FALSE ]] ) : string

Получает уникальный идентификатор с префиксом, основанный на текущем времени в микросекундах.

Предостережение

Данная функция не генерирует криптографически безопасные значения и не должна использоваться в криптографических целях. Если вам требуется криптографически безопасное значение, подумайте об использовании функций random_int(), random_bytes() или openssl_random_pseudo_bytes() вместо данной.

Внимание

Эта функция не гарантирует получения уникального значения. Большинство операционных систем синхронизирует время с NTP, либо его аналогами, так что системное время постоянно меняется. Следовательно возможна ситуация, когда эта функция вернет неуникальный идентификатор для процесса/потока. Для увеличения вероятности получения уникального значения используйте параметр more_entropy.

Список параметров

prefix

Может быть полезно, к примеру, если идентификаторы генерируются одновременно на нескольких хостах и генерация идентификаторов производится в одну и ту же микросекунду.

С пустым параметром prefix, возвращаемая строка будет длиной в 13 символов. Если параметр more_entropy равен TRUE, то строка будет длиной в 23 символа.

more_entropy

Если равен TRUE, то функция uniqid() добавит дополнительную энтропию (используя комбинированный линейный конгруэнтный генератор) в конце возвращаемого значения, что увеличивает вероятность уникальности результата.

Возвращаемые значения

Возвращает уникальный идентификатор в виде строки.

Внимание

Эта функция пытается создать уникальный идентификатор, но не дает 100% гарантии уникальности.

Примеры

Пример #1 Пример использования uniqid()

<?php
/* Уникальный id, например: 4b3403665fea6 */
printf("uniqid(): %s\r\n", uniqid());

/* Префикс к уникальному id можно добавить одним
 * из следующих способов:
 *
 * $uniqid = $prefix . uniqid();
 * $uniqid = uniqid($prefix);
 */
printf("uniqid('php_'): %s\r\n", uniqid('php_'));

/* Также можно активировать параметр большей энтропии, который
 * требуется на некоторых системах, таких как Cygwin. Таким образом
 * функция uniqid() сгенерирует значение: 4b340550242239.64159797
 */
printf("uniqid('', true): %s\r\n", uniqid('', true));
?>

Примечания

Замечание:

В Cygwin параметр more_entropy должен быть задан как TRUE для работы этой функции.


Распаковать данные из бинарной строки

  • « uniqid
  • usleep »
  • PHP Manual
  • Разные функции
  • Распаковать данные из бинарной строки

unpack

(PHP 4, PHP 5, PHP 7)

unpack — Распаковать данные из бинарной строки

Описание

unpack ( string $format , string $data [, int $offset = 0 ] ) : array

Распаковывает данные из бинарной строки в массив в соответствии с заданным в format формате.

Распакованные данные хранятся в ассоциативном массиве. Для осуществления этого необходимо обозначить различные коды форматов и разделить их с помощью слеша /. Можно также передать замещающий аргумент, с помощью которого каждый ключ массива будет иметь порядковый номер после заданного имени.

Список параметров

format

См. функцию pack() для разъяснения кодов форматов.

data

Упакованные данные.

offset

Смещение, с которого необходимо начать распаковку.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий распакованные элементы бинарной строки.

Список изменений

Версия | Описание
7.2.0 | Типы float и double поддерживают как обратный, так и прямой порядок передачи байтов.
7.1.0 | Добавлен необязательный параметр offset.
5.5.0 | Для поддержания совместимости с Perl сделано следующее: Код "a" теперь сохраняет завершающие NULL-байты. Код "A" теперь удаляет все завершающие пробельные символы ASCII (пробелы, табуляцию, переносы строк, возврат каретки, и NULL-байты). Код "Z" добавлен для NULL-дополненными строками и удаляет завершающие NULL-байты.

Примеры

Пример #1 Пример использования unpack()

<?php
$binarydata = "\x04\x00\xa0\x00";
$array = unpack("cchars/nint", $binarydata);
print_r($array);
?>

Результат выполнения данного примера:

Array
(
    [chars] => 4
    [int] => 160
)

Пример #2 Пример использования unpack() с замещающим аргументом

<?php
$binarydata = "\x04\x00\xa0\x00";
$array = unpack("c2chars/nint", $binarydata);
print_r($array);
?>

Результат выполнения данного примера:

Array
(
    [chars1] => 4
    [chars2] => 0
    [int] => 40960
)

Примечания

Предостережение

Необходимо отметить, что PHP хранит целые значения со знаком (signed). Если распаковать значение типа large unsigned long и оно будет иметь тот же размер, что и хранимое значение PHP, то результатом будет отрицательное число, даже если было указано распаковывать без знака (unsigned).

Предостережение

Если не назвать элемент, то будут использованы числовые индексы, начиная с 1. Если не обозначить более одного элемента, то это значит, что некоторые данные будут перезаписаны, так как нумерация перезапускается с 1 для каждого такого элемента.

Пример #3 Пример использования unpack() с безымянными ключами

<?php
$binarydata = "\x32\x42\x00\xa0";
$array = unpack("c2/n", $binarydata);
var_dump($array);
?>

Результат выполнения данного примера:

array(2) {
  [1]=>
  int(160)
  [2]=>
  int(66)
}

Обратите внимание, что первое значение из спецификатора c перезаписывается первым значением из спецификатора n.

Смотрите также

  • pack() - Упаковать данные в бинарную строку


Задержка выполнения в микросекундах

  • « unpack
  • Список изменений »
  • PHP Manual
  • Разные функции
  • Задержка выполнения в микросекундах

usleep

(PHP 4, PHP 5, PHP 7)

usleep — Задержка выполнения в микросекундах

Описание

usleep ( int $micro_seconds ) : void

Откладывает выполнение программы на указанное число микросекунд.

Список параметров

micro_seconds

Время откладываемого исполнения в микросекундах. Микросекунда - это одна миллионная секунды.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования usleep()

<?php

// Текущее время
echo date('h:i:s') . "\n";

// ждать 2 секунды
usleep(2000000);

// вернуться к исполнению
echo date('h:i:s') . "\n";

?>

Результат выполнения данного примера:

11:13:28
11:13:30

Смотрите также

  • sleep() - Задержка выполнения
  • time_nanosleep() - Задержка на заданное число секунд и наносекунд
  • time_sleep_until() - Откладывает исполнение скрипта до заданного времени
  • set_time_limit() - Ограничение времени выполнения скрипта


Список изменений

Следующие изменения были произведены с классами/функциями/методами данного расширения.

Version | Function | Description
7.3.0 | define | Параметр case_insensitive объявлен устаревшим и будет удален в версии 8.0.0.
7.2.0 | pack | Типы float и double поддерживают как обратный, так и прямой порядок передачи байтов.
 | unpack | Типы float и double поддерживают как обратный, так и прямой порядок передачи байтов.
7.1.0 | unpack | Добавлен необязательный параметр offset.
7.0.15,7.1.1 | pack | Добавлены коды "e", "E", "g" и "G" для поддержки принудительного указания порядка байт для float и double.
7.0.0 | define | Допустимы значения типа array.
5.6.3 | pack | Добавлены коды "q", "Q", "J" и "P" для поддержки 64-bit чисел.
5.5.0 | pack | Добавлен код "Z", работающий аналогично "a" для совместимости с Perl.
 | unpack | Для поддержания совместимости с Perl сделано следующее: Код "a" теперь сохраняет завершающие NULL-байты. Код "A" теперь удаляет все завершающие пробельные символы ASCII (пробелы, табуляцию, переносы строк, возврат каретки, и NULL-байты). Код "Z" добавлен для NULL-дополненными строками и удаляет завершающие NULL-байты.
5.3.4 | sleep | До PHP 5.3.4 функция sleep в Windows всегда возвращала NULL после завершения ожидания, независимо от того было ли прервано выполнение функции или нет.
5.3.0 | time_nanosleep | Эта функция теперь доступна на платформах Windows.
 | time_sleep_until | Эта функция теперь доступна на платформах Windows.
5.0.5 | php_check_syntax | Эта функция была удалена из PHP.
5.0.3 | php_check_syntax | Вызов функции exit после php_check_syntax передает результат в Segfault.
5.0.1 | php_check_syntax | error_message передается по ссылке.


Parsekit

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Parsekit
    • parsekit_compile_file — Компилирует скрипт PHP и возвращает результат в виде массива
    • parsekit_compile_string — Компилирует строку PHP-кода и возвращает результат в виде массива
    • parsekit_func_arginfo — Возвращает информацию об аргументах функции


Введение

Функции позволяют анализировать скомпилированные опкоды PHP-скриптов во время выполнения.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/parsekit.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

PARSEKIT_QUIET (int)
Возвращать все подробности, но без ненужных NULL-записей.
PARSEKIT_SIMPLE (int)
Возвращать сокращенную нотацию опкодов.
PARSEKIT_EXTENDED_VALUE (int)
Флаг узла операции
PARSEKIT_RESULT_CONST (int)
Флаг узла операции
PARSEKIT_RESULT_EA_TYPE (int)
Флаг узла операции
PARSEKIT_RESULT_JMP_ADDR (int)
Флаг узла операции
PARSEKIT_RESULT_OPARRAY (int)
Флаг узла операции
PARSEKIT_RESULT_OPLINE (int)
Флаг узла операции
PARSEKIT_RESULT_VAR (int)
Флаг узла операции
PARSEKIT_USAGE_UNKNOWN (int)
Флаг узла операции
PARSEKIT_ZEND_INTERNAL_CLASS (int)
Тип класса
PARSEKIT_ZEND_USER_CLASS (int)
Тип класса
PARSEKIT_ZEND_EVAL_CODE (int)
Тип функции
PARSEKIT_ZEND_INTERNAL_FUNCTION (int)
Тип функции
PARSEKIT_ZEND_OVERLOADED_FUNCTION (int)
Тип функции
PARSEKIT_ZEND_OVERLOADED_FUNCTION_TEMPORARY (int) PHP >= 5.0.0
Тип функции
PARSEKIT_ZEND_USER_FUNCTION (int)
Тип функции
PARSEKIT_IS_CONST (int)
Тип узла
PARSEKIT_IS_TMP_VAR (int)
Тип узла
PARSEKIT_IS_UNUSED (int)
Тип узла
PARSEKIT_IS_VAR (int)
Тип узла
PARSEKIT_ZEND_ADD (int)
Опкод
PARSEKIT_ZEND_ADD_ARRAY_ELEMENT (int)
Опкод
PARSEKIT_ZEND_ADD_CHAR (int)
Опкод
PARSEKIT_ZEND_ADD_INTERFACE (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_ADD_STRING (int)
Опкод
PARSEKIT_ZEND_ADD_VAR (int)
Опкод
PARSEKIT_ZEND_ASSIGN (int)
Опкод
PARSEKIT_ZEND_ASSIGN_ADD (int)
Опкод
PARSEKIT_ZEND_ASSIGN_BW_AND (int)
Опкод
PARSEKIT_ZEND_ASSIGN_BW_OR (int)
Опкод
PARSEKIT_ZEND_ASSIGN_BW_XOR (int)
Опкод
PARSEKIT_ZEND_ASSIGN_CONCAT (int)
Опкод
PARSEKIT_ZEND_ASSIGN_DIM (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_ASSIGN_DIV (int)
Опкод
PARSEKIT_ZEND_ASSIGN_MOD (int)
Опкод
PARSEKIT_ZEND_ASSIGN_MUL (int)
Опкод
PARSEKIT_ZEND_ASSIGN_OBJ (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_ASSIGN_REF (int)
Опкод
PARSEKIT_ZEND_ASSIGN_SL (int)
Опкод
PARSEKIT_ZEND_ASSIGN_SR (int)
Опкод
PARSEKIT_ZEND_ASSIGN_SUB (int)
Опкод
PARSEKIT_ZEND_BEGIN_SILENCE (int)
Опкод
PARSEKIT_ZEND_BOOL (int)
Опкод
PARSEKIT_ZEND_BOOL_NOT (int)
Опкод
PARSEKIT_ZEND_BOOL_XOR (int)
Опкод
PARSEKIT_ZEND_BRK (int)
Опкод
PARSEKIT_ZEND_BW_AND (int)
Опкод
PARSEKIT_ZEND_BW_NOT (int)
Опкод
PARSEKIT_ZEND_BW_OR (int)
Опкод
PARSEKIT_ZEND_BW_XOR (int)
Опкод
PARSEKIT_ZEND_CASE (int)
Опкод
PARSEKIT_ZEND_CAST (int)
Опкод
PARSEKIT_ZEND_CATCH (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_CLONE (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_CONCAT (int)
Опкод
PARSEKIT_ZEND_CONT (int)
Опкод
PARSEKIT_ZEND_DECLARE_CLASS (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_DECLARE_FUNCTION (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_DECLARE_INHERITED_CLASS (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_DIV (int)
Опкод
PARSEKIT_ZEND_DO_FCALL (int)
Опкод
PARSEKIT_ZEND_DO_FCALL_BY_NAME (int)
Опкод
PARSEKIT_ZEND_ECHO (int)
Опкод
PARSEKIT_ZEND_END_SILENCE (int)
Опкод
PARSEKIT_ZEND_EXIT (int)
Опкод
PARSEKIT_ZEND_EXT_FCALL_BEGIN (int)
Опкод
PARSEKIT_ZEND_EXT_FCALL_END (int)
Опкод
PARSEKIT_ZEND_EXT_NOP (int)
Опкод
PARSEKIT_ZEND_EXT_STMT (int)
Опкод
PARSEKIT_ZEND_FETCH_CLASS (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_FETCH_CONSTANT (int)
Опкод
PARSEKIT_ZEND_FETCH_DIM_FUNC_ARG (int)
Опкод
PARSEKIT_ZEND_FETCH_DIM_IS (int)
Опкод
PARSEKIT_ZEND_FETCH_DIM_R (int)
Опкод
PARSEKIT_ZEND_FETCH_DIM_RW (int)
Опкод
PARSEKIT_ZEND_FETCH_DIM_TMP_VAR (int)
Опкод
PARSEKIT_ZEND_FETCH_DIM_UNSET (int)
Опкод
PARSEKIT_ZEND_FETCH_DIM_W (int)
Опкод
PARSEKIT_ZEND_FETCH_FUNC_ARG (int)
Опкод
PARSEKIT_ZEND_FETCH_IS (int)
Опкод
PARSEKIT_ZEND_FETCH_OBJ_FUNC_ARG (int)
Опкод
PARSEKIT_ZEND_FETCH_OBJ_IS (int)
Опкод
PARSEKIT_ZEND_FETCH_OBJ_R (int)
Опкод
PARSEKIT_ZEND_FETCH_OBJ_RW (int)
Опкод
PARSEKIT_ZEND_FETCH_OBJ_UNSET (int)
Опкод
PARSEKIT_ZEND_FETCH_OBJ_W (int)
Опкод
PARSEKIT_ZEND_FETCH_R (int)
Опкод
PARSEKIT_ZEND_FETCH_RW (int)
Опкод
PARSEKIT_ZEND_FETCH_UNSET (int)
Опкод
PARSEKIT_ZEND_FETCH_W (int)
Опкод
PARSEKIT_ZEND_FE_FETCH (int)
Опкод
PARSEKIT_ZEND_FE_RESET (int)
Опкод
PARSEKIT_ZEND_FREE (int)
Опкод
PARSEKIT_ZEND_HANDLE_EXCEPTION (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_IMPORT_CLASS (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_IMPORT_CONST (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_IMPORT_FUNCTION (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_INCLUDE_OR_EVAL (int)
Опкод
PARSEKIT_ZEND_INIT_ARRAY (int)
Опкод
PARSEKIT_ZEND_INIT_CTOR_CALL (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_INIT_FCALL_BY_NAME (int)
Опкод
PARSEKIT_ZEND_INIT_METHOD_CALL (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_INIT_STATIC_METHOD_CALL (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_INIT_STRING (int)
Опкод
PARSEKIT_ZEND_INSTANCEOF (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_ISSET_ISEMPTY (int) PHP < 5.0.0
Опкод
PARSEKIT_ZEND_ISSET_ISEMPTY_DIM_OBJ (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_ISSET_ISEMPTY_PROP_OBJ (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_ISSET_ISEMPTY_VAR (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_IS_EQUAL (int)
Опкод
PARSEKIT_ZEND_IS_IDENTICAL (int)
Опкод
PARSEKIT_ZEND_IS_NOT_EQUAL (int)
Опкод
PARSEKIT_ZEND_IS_NOT_IDENTICAL (int)
Опкод
PARSEKIT_ZEND_IS_SMALLER (int)
Опкод
PARSEKIT_ZEND_IS_SMALLER_OR_EQUAL (int)
Опкод
PARSEKIT_ZEND_JMP (int)
Опкод
PARSEKIT_ZEND_JMPNZ (int)
Опкод
PARSEKIT_ZEND_JMPNZ_EX (int)
Опкод
PARSEKIT_ZEND_JMPZ (int)
Опкод
PARSEKIT_ZEND_JMPZNZ (int)
Опкод
PARSEKIT_ZEND_JMPZ_EX (int)
Опкод
PARSEKIT_ZEND_JMP_NO_CTOR (int)
Опкод
PARSEKIT_ZEND_MOD (int)
Опкод
PARSEKIT_ZEND_MUL (int)
Опкод
PARSEKIT_ZEND_NEW (int)
Опкод
PARSEKIT_ZEND_NOP (int)
Опкод
PARSEKIT_ZEND_OP_DATA (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_POST_DEC (int)
Опкод
PARSEKIT_ZEND_POST_DEC_OBJ (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_POST_INC (int)
Опкод
PARSEKIT_ZEND_POST_INC_OBJ (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_PRE_DEC (int)
Опкод
PARSEKIT_ZEND_PRE_DEC_OBJ (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_PRE_INC (int)
Опкод
PARSEKIT_ZEND_PRE_INC_OBJ (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_PRINT (int)
Опкод
PARSEKIT_ZEND_QM_ASSIGN (int)
Опкод
PARSEKIT_ZEND_RAISE_ABSTRACT_ERROR (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_RECV (int)
Опкод
PARSEKIT_ZEND_RECV_INIT (int)
Опкод
PARSEKIT_ZEND_RETURN (int)
Опкод
PARSEKIT_ZEND_SEND_REF (int)
Опкод
PARSEKIT_ZEND_SEND_VAL (int)
Опкод
PARSEKIT_ZEND_SEND_VAR (int)
Опкод
PARSEKIT_ZEND_SEND_VAR_NO_REF (int)
Опкод
PARSEKIT_ZEND_SL (int)
Опкод
PARSEKIT_ZEND_SR (int)
Опкод
PARSEKIT_ZEND_SUB (int)
Опкод
PARSEKIT_ZEND_SWITCH_FREE (int)
Опкод
PARSEKIT_ZEND_THROW (int) PHP >= 5.0.0
Опкод
PARSEKIT_ZEND_TICKS (int)
Опкод
PARSEKIT_ZEND_UNSET_DIM_OBJ (int)
Опкод
PARSEKIT_ZEND_UNSET_VAR (int)
Опкод
PARSEKIT_ZEND_VERIFY_ABSTRACT_CLASS (int) PHP >= 5.0.0
Опкод


Функции Parsekit

Содержание

  • parsekit_compile_file — Компилирует скрипт PHP и возвращает результат в виде массива
  • parsekit_compile_string — Компилирует строку PHP-кода и возвращает результат в виде массива
  • parsekit_func_arginfo — Возвращает информацию об аргументах функции


Компилирует скрипт PHP и возвращает результат в виде массива

  • « Функции Parsekit
  • parsekit_compile_string »
  • PHP Manual
  • Функции Parsekit
  • Компилирует скрипт PHP и возвращает результат в виде массива

parsekit_compile_file

(PECL parsekit >= 0.2.0)

parsekit_compile_file — Компилирует скрипт PHP и возвращает результат в виде массива

Описание

parsekit_compile_file ( string $filename [, array &$errors [, int $options = PARSEKIT_QUIET ]] ) : array
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

filename

Строка, содержащая путь к файлу скрипта. Аналогично как для include.

errors

2D хеш ошибок (включая фатальные) обнаруженных во время компиляции. Передается по ссылке.

options

PARSEKIT_QUIET или PARSEKIT_SIMPLE. Влияет на уровень детализации результата.

Возвращаемые значения

Возвращает массив, содержащий сложную многоразмерную структуру, как показано ниже.

Примеры

Пример #1 Пример использования parsekit_compile_file()

<?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() - Компилирует строку PHP-кода и возвращает результат в виде массива


Компилирует строку PHP-кода и возвращает результат в виде массива

  • « parsekit_compile_file
  • parsekit_func_arginfo »
  • PHP Manual
  • Функции Parsekit
  • Компилирует строку PHP-кода и возвращает результат в виде массива

parsekit_compile_string

(PECL parsekit >= 0.2.0)

parsekit_compile_string — Компилирует строку PHP-кода и возвращает результат в виде массива

Описание

parsekit_compile_string ( string $phpcode [, array &$errors [, int $options = PARSEKIT_QUIET ]] ) : array
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

phpcode

Строка, содержащая код PHP. Аналогично как аргумент для eval().

errors

2D хеш ошибок (включая фатальные) обнаруженных во время компиляции. Передается по ссылке.

options

PARSEKIT_QUIET или PARSEKIT_SIMPLE. Влияет на уровень детализации результата.

Возвращаемые значения

Возвращает массив, содержащий сложную многоразмерную структуру, как показано ниже.

Примеры

Пример #1 Пример использования parsekit_compile_string()

<?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() - Компилирует скрипт PHP и возвращает результат в виде массива


Возвращает информацию об аргументах функции

  • « parsekit_compile_string
  • Seaslog »
  • PHP Manual
  • Функции Parsekit
  • Возвращает информацию об аргументах функции

parsekit_func_arginfo

(PECL parsekit >= 0.3.0)

parsekit_func_arginfo — Возвращает информацию об аргументах функции

Описание

parsekit_func_arginfo ( mixed $function ) : array
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

function

Строка, описывающая функцию или массив, описывающий класс/метод.

Возвращаемые значения

Возвращает массив, содержащий информацию об аргументах.

Примеры

Пример #1 Пример использования parsekit_func_arginfo()

<?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)
  }
}


Seaslog

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Seaslog Функции
    • seaslog_get_author — Get SeasLog author.
    • seaslog_get_version — Get SeasLog version.
  • SeasLog — The SeasLog class
    • SeasLog::alert — Record alert log information
    • SeasLog::analyzerCount — Get log count by level, log_path and key_word
    • SeasLog::analyzerDetail — Get log detail by level, log_path, key_word, start, limit, order
    • SeasLog::closeLoggerStream — Manually release stream flow from logger
    • SeasLog::__construct — Description
    • SeasLog::critical — Record critical log information
    • SeasLog::debug — Record debug log information
    • SeasLog::__destruct — Description
    • SeasLog::emergency — Record emergency log information
    • SeasLog::error — Record error log information
    • SeasLog::flushBuffer — Flush logs buffer, dump to appender file, or send to remote api with tcp/udp
    • SeasLog::getBasePath — Get SeasLog base path.
    • SeasLog::getBuffer — Get the logs buffer in memory as array
    • SeasLog::getBufferEnabled — Determin if buffer enabled
    • SeasLog::getDatetimeFormat — Get SeasLog datetime format style
    • SeasLog::getLastLogger — Get SeasLog last logger path
    • SeasLog::getRequestID — Get SeasLog request_id differentiated requests
    • SeasLog::getRequestVariable — Get SeasLog request variable
    • SeasLog::info — Record info log information
    • SeasLog::log — The Common Record Log Function
    • SeasLog::notice — Record notice log information
    • SeasLog::setBasePath — Set SeasLog base path
    • SeasLog::setDatetimeFormat — Set SeasLog datetime format style
    • SeasLog::setLogger — Set SeasLog logger name
    • SeasLog::setRequestID — Set SeasLog request_id differentiated requests
    • SeasLog::setRequestVariable — Manually set SeasLog request variable
    • SeasLog::warning — Record warning log information


Введение

The Seaslog is an effective,fast,stable log extension for PHP.

SeasLog requires PHP 5.2.0 or greater. Earlier versions may not work.

The log journal,which is usually the operate record of the system, software and the application record. Through the analysis of the log,it can facilitate users to understand the operation of the system, software and the application situation. If your application log is rich enough, it can also analyze the previous use's operation behavior,type, regional distribution or other more information. The application log also points the multiple levels at the same time, you can easily get the application analysis of health status, timely find problems and quick positioning, and solve the problem, remedy the loss.

The error_log, syslog function which built in PHP is powerful and excellent performance, but due to various defects (error_log have no error level, no fixed format, syslog regardless of module, and mix with system log ), reducing a lot of flexibility , and can't meet the application requirements.

The good news is that there are a number of third-party log class library established to make up for the defects, such as log4php, plog, monolog (of course, there are many applications in the project development of the log class).

So is there a log of libraries meet the following requirements:

  • Modules, classification
  • Simple configuration(preferably without configuration)
  • Clear log format and easy understanding
  • Simple application and well performance
Seaslog just meet these demands.

What is provided at present:

  • In the PHP project, record the log specification and repidly.
  • Configure the default log directory and module
  • Specified log directory and capture current configuration
  • Preliminary analysis of the early warning framework
  • Efficient log buffer and convenient buffer debug
  • Follow the PSR-3 log interface specification
  • Automatically record error information
  • Automatically record abnormal information
  • Support Connect the TCP port, send with RFC5424
  • Support Connect the UDP port, send with RFC5424
  • Support RequestId differentiated requests
  • Support for log template customizations

Read More » SeasLog Document at Github.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/seaslog


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Seaslog Опции настройки
Имя | По умолчанию | Место изменения | Список изменений
seaslog.appender | 1 | PHP_INI_SYSTEM |
seaslog.appender_retry | 0 | PHP_INI_ALL |
seaslog.level | 8 | PHP_INI_ALL |
seaslog.remote_host | 127.0.0.1 | PHP_INI_ALL |
seaslog.remote_port | 514 | PHP_INI_ALL |
seaslog.remote_timeout | 1 | PHP_INI_SYSTEM |
seaslog.default_basepath | /var/log/www | PHP_INI_SYSTEM |
seaslog.default_logger | default | PHP_INI_SYSTEM |
seaslog.default_template | %T | %L | %P | %Q | %t | %M | PHP_INI_SYSTEM |
seaslog.default_datetime_format | Y-m-d H:i:s | PHP_INI_SYSTEM |
seaslog.trace_error | 1 | PHP_INI_ALL |
seaslog.trace_exception | 0 | PHP_INI_SYSTEM |
seaslog.trace_notice | 0 | PHP_INI_ALL |
seaslog.trace_warning | 0 | PHP_INI_ALL |
seaslog.use_buffer | 0 | PHP_INI_SYSTEM |
seaslog.buffer_size | 0 | PHP_INI_ALL |
seaslog.buffer_disabled_in_cli | 0 | PHP_INI_SYSTEM |
seaslog.disting_type | 0 | PHP_INI_SYSTEM |
seaslog.disting_folder | 1 | PHP_INI_SYSTEM |
seaslog.disting_by_hour | 0 | PHP_INI_SYSTEM |
seaslog.recall_depth | 0 | PHP_INI_ALL |
seaslog.trim_wrap | 0 | PHP_INI_ALL |
seaslog.ignore_warning | 1 | PHP_INI_ALL |
seaslog.throw_exception | 1 | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

seaslog.appender integer

Switch the Record Log Data Store. 1File 2TCP 3UDP (Switch default 1)

SeasLog will send log to tcp://remote_host:remote_port or udp://remote_host:remote_port server, when seaslog.appender configured to `2 (TCP)` or `3 (UDP)`.

When SeasLog send log to TCP/UDP,style follow RFC5424. The `{logInfo}` affected by seaslog.default_template.

The log style finally formatted such as:
<15>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | DEBUG | 21423 | 599157af4e937 | 1466787583.322 | this is a neeke debug
<14>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | INFO | 21423 | 599157af4e937 | 1466787583.323 | this is a info log
<13>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | NOTICE | 21423 | 599157af4e937 | 1466787583.324 | this is a notice log
seaslog.appender_retry integer

Record Log Retry Count. Default 0 (Do Not Retry)

seaslog.buffer_disabled_in_cli integer

Disable buffer in cli. 1-Y 0-N(Default)

Switch the configure buffer_disabled_in_cli on. The buffer_disabled_in_cli switch default off. If switch buffer_disabled_in_cli on, and running in cli, seaslog.use_buffer setting will be discarded, Seaslog write to the Data Store IMMEDIATELY.

seaslog.buffer_size integer

Configure the buffer_size with 100. The buffer_size default 0, it's meaning don't use buffer. If buffer_size > 0,SeasLog will rewritten down into the Data Store when the prerecorded log in memory count >= this buffer_size,and then refresh the memory poll.

seaslog.default_basepath string

Default Log Base Path. Defult "/var/log/www".

seaslog.default_datetime_format string

The DateTime Style. Default "Y-m-d H:i:s".

seaslog.default_logger string

Default Logger Path. Default "default".

seaslog.disting_by_hour integer

Switch use the logger with hour. 1-Y 0-N(Default)

Замечание:

seaslog.disting_by_hour = 1 Switch use Logger DisTing by hour. It's meaning SeasLog will create the file each one hour.

seaslog.disting_folder integer

Switch use the logger with folder. 1-Y(Default) 0-N

Замечание:

seaslog.disting_folder = 1 Switch use Logger DisTing by folder, it's meaning SeasLog will create the file deistic by folder, and when this configure close SeasLog will create file use underline connect Logger and Time like default_20180211.log.

seaslog.disting_type integer

Switch use the logger with type. 1-Y 0-N(Default)

Замечание:

seaslog.disting_type = 1 Switch use Logger DisTing by type, it's meaning SeasLog will create the file deistic info\warn\error and the other type.

seaslog.ignore_warning integer

Switch ignore SeasLog warning. 1-On(Default) 0-Off

Замечание:

seaslog.ignore_warning = 1 Open a warning to ignore SeasLog itself. When directory permissions or receive server ports are blocked, they are ignored; when closed, a warning is thrown.

seaslog.level integer

Record logger level. Default 8 (All of them). 0-EMERGENCY 1-ALERT 2-CRITICAL 3-ERROR 4-WARNING 5-NOTICE 6-INFO 7-DEBUG 8-ALL

Замечание:

Tips: The configuration item has changed since the 1.7.0 version. Before the 1.7.0 version, the smaller the value, the more logs are taken according to the level: 0-all 1-debug 2-info 3-notice 4-warning 5-error 6-critical 7-alert 8-emergency Before the 1.7.0 version, Default 0 (All of them).

seaslog.recall_depth integer

Log function recall depth.Will affected variable `LineNo` in `%F`. Default 0

seaslog.remote_host string

If you use Record TCP or UDP, configure this remote ip. Default "127.0.0.1"

seaslog.remote_port integer

If you use Record TCP or UDP, configure this remote port. Default 514

seaslog.remote_timeout integer

If you use Record TCP or UDP, configure this remote timeout. Default 1 second

seaslog.throw_exception integer

Switch throw SeasLog exception. 1-On(Default) 0-Off

Замечание:

seaslog.throw_exception = 1 Open an exception that throws the SeasLog to throw itself. When the directory authority or the receive server port is blocked, throw an exception; do not throw an exception when closed.

seaslog.trace_error integer

Automatic Record final error with default logger. 1-Y(Default) 0-N

seaslog.trace_exception integer

Automatic Record exception with default logger. 1-Y 0-N(Default)

seaslog.trace_notice integer

Automatic Record notice with default logger. 1-Y 0-N(Default)

seaslog.trace_warning integer

Automatic Record warning with default logger. 1-Y 0-N(Default)

seaslog.trim_wrap integer

Trim the \n and \r in log message. 1-On 0-Off(Default)

seaslog.use_buffer integer

Switch use the log buffer with memory. 1-Y 0-N(Default)

Замечание:

seaslog.use_buffer = 1 Switch the configure use_buffer on. The use_buffer switch default off. If switch use_buffer on, SeasLog prerecord the log with memory, and them would be rewritten down into the Data Store by request shutdown or php process exit (PHP RSHUTDOWN or PHP MSHUTDOWN).

seaslog.default_template string

Default Log template. Default "%T | %L | %P | %Q | %t | %M".

Замечание:

`SeasLog`The following default variables are provided, which can be used directly in the log template and replaced as a corresponding value when the log is eventually generated.

Default log template is:`seaslog.default_template = "%T | %L | %P | %Q | %t | %M"`, that's mean,default log style is:`{dateTime} | {level} | {pid} | {uniqid} | {timeStamp} | {logInfo}`

If you custom log template, such as:`seaslog.default_template = "[%T]:%L %P %Q %t %M" `, that's will mean,log style was custom as:`[{dateTime}]:{level} {pid} {uniqid} {timeStamp} {logInfo}`

Seaslog Default Variable Table
Variable Name | Description
%L | Level.
%M | Message.
%T | DateTime. Such as`2017-08-16 19:15:02`,affected by `seaslog.default_datetime_format`.
%t | Timestamp. Such as`1502882102.862`,accurate to milliseconds.
%Q | RequestId. To distinguish a single request, such as not invoking the `SeasLog::setRequestId($string)` function, the unique value generated by the built-in `static char *get_uniqid ()` function is used when the request is initialized.
%H | HostName.
%P | ProcessId.
%D | Domain:Port. Such as`www.cloudwise.com:80`; When Cli, Such as `cli`.
%R | Request URI. Such as`/app/user/signin`; When Cli it's the index script, Such as `CliIndex.php`.
%m | Request Method. Such as`Get`; When Cli it's the command script, Such as `/bin/bash`.
%I | Client IP; When Cli it's `local`. Priority value: HTTP_X_REAL_IP > HTTP_X_FORWARDED_FOR > REMOTE_ADDR
%F | FileName:LineNo. Such as `UserService.php:118`.
%U | MemoryUsage. byte. Call `zend_memory_usage`.
%u | PeakMemoryUsage. byte. Call `zend_memory_peak_usage`.
%C | `TODO` Class::Action. Such as `UserService::getUserInfo`


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SEASLOG_VERSION (string)
SEASLOG_AUTHOR (string)
SEASLOG_ALL (string)
"ALL"
SEASLOG_DEBUG (string)
"DEBUG" - Detailed debug information.Fine-grained information events.
SEASLOG_INFO (string)
"INFO" - Interesting events.Emphasizes the running process of the application.
SEASLOG_NOTICE (string)
"NOTICE" - Normal but significant events.Information that is more important than the INFO level during execution.
SEASLOG_WARNING (string)
"WARNING" - Exceptional occurrences that are not errors.Potentially aberrant information that needs attention and needs to be repaired.
SEASLOG_ERROR (string)
"ERROR" - Runtime errors that do not require immediate action but should typically.
SEASLOG_CRITICAL (string)
"CRITICAL" - Critical conditions.Need to be repaired immediately, and the program component is unavailable.
SEASLOG_ALERT (string)
"ALERT" - Action must be taken immediately.Immediate attention should be given to relevant personnel for emergency repairs.
SEASLOG_EMERGENCY (string)
"EMERGENCY" - System is unusable.
SEASLOG_DETAIL_ORDER_ASC (integer)
1
SEASLOG_DETAIL_ORDER_DESC (integer)
2
SEASLOG_APPENDER_FILE (integer)
1
SEASLOG_APPENDER_TCP (integer)
2
SEASLOG_APPENDER_UDP (integer)
3
SEASLOG_CLOSE_LOGGER_STREAM_MOD_ALL (integer)
1
SEASLOG_CLOSE_LOGGER_STREAM_MOD_ASSIGN (integer)
2
SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT (integer)
1
SEASLOG_REQUEST_VARIABLE_REQUEST_URI (integer)
2
SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD (integer)
3
SEASLOG_REQUEST_VARIABLE_CLIENT_IP (integer)
4


Примеры

Пример #1 Get and set base path

<?php
  $basePath1 = SeasLog::getBasePath();

  SeasLog::setBasePath('/log/base_test');
  $basePath2 = SeasLog::getBasePath();

  var_dump($basePath1,$basePath2);

  ?>

Результатом выполнения данного примера будет что-то подобное:

  string(12) "/var/log/www"
  string(14) "/log/base_test"

Пример #2 Get and set logger

<?php
$lastLogger1 = SeasLog::getLastLogger();

SeasLog::setLogger('testModule/app1');
$lastLogger2 = SeasLog::getLastLogger();

var_dump($lastLogger1,$lastLogger2);

?>

Результатом выполнения данного примера будет что-то подобное:

string(7) "default"
string(15) "testModule/app1"

Пример #3 Fast write log

<?php
SeasLog::log(SEASLOG_ERROR,'this is a error test by ::log');
SeasLog::debug('this is a {userName} debug',array('{userName}' => 'neeke'));
SeasLog::info('this is a info log');
SeasLog::notice('this is a notice log');
SeasLog::warning('your {website} was down,please {action} it ASAP!',array('{website}' => 'github.com','{action}' => 'rboot'));
SeasLog::error('a error log');
SeasLog::critical('some thing was critical');
SeasLog::alert('yes this is a {messageName}',array('{messageName}' => 'alertMSG'));
SeasLog::emergency('Just now, the house next door was completely burnt out! {note}',array('{note}' => 'it`s a joke'));
?>

As the default, seaslog.default_template = "%T | %L | %P | %Q | %t | %M". That's mean,as the default,log record style is: `{dateTime} | {level} | {pid} | {uniqid} | {timeStamp} | {logInfo}`.

Результатом выполнения данного примера будет что-то подобное:

seaslog.appender = 1

2014-07-27 08:53:52 | ERROR | 23625 | 599159975a9ff | 1406422432.786 | this is a error test by log
2014-07-27 08:53:52 | DEBUG | 23625 | 599159975a9ff | 1406422432.786 | this is a neeke debug
2014-07-27 08:53:52 | INFO | 23625 | 599159975a9ff | 1406422432.787 | this is a info log
2014-07-27 08:53:52 | NOTICE | 23625 | 599159975a9ff | 1406422432.787 | this is a notice log
2014-07-27 08:53:52 | WARNING | 23625 | 599159975a9ff | 1406422432.787 | your github.com was down,please rboot it ASAP!
2014-07-27 08:53:52 | ERROR | 23625 | 599159975a9ff | 1406422432.787 | a error log
2014-07-27 08:53:52 | CRITICAL | 23625 | 599159975a9ff | 1406422432.787 | some thing was critical
2014-07-27 08:53:52 | EMERGENCY | 23625 | 599159975a9ff | 1406422432.787 | Just now, the house next door was completely burnt out! it is a joke

Результатом выполнения данного примера будет что-то подобное:

seaslog.appender = 2 or seaslog.appender = 3

The log style finally formatted such as:
<15>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | DEBUG | 21423 | 599157af4e937 | 1466787583.322 | this is a neeke debug
<14>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | INFO | 21423 | 599157af4e937 | 1466787583.323 | this is a info log
<13>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | NOTICE | 21423 | 599157af4e937 | 1466787583.324 | this is a notice log

Пример #4 Fast count some type of log count value

SeasLog get count value of `grep -wc` use system pipe and return to PHP (array or int).

<?php
$countResult1 = SeasLog::analyzerCount();
$countResult2 = SeasLog::analyzerCount(SEASLOG_WARNING);
$countResult3 = SeasLog::analyzerCount(SEASLOG_ERROR,date('Ymd',time()));

var_dump($countResult1,$countResult2,$countResult3);

?>

Результатом выполнения данного примера будет что-то подобное:

array(8) {
  ["DEBUG"]=>
  int(3)
  ["INFO"]=>
  int(3)
  ["NOTICE"]=>
  int(3)
  ["WARNING"]=>
  int(3)
  ["ERROR"]=>
  int(6)
  ["CRITICAL"]=>
  int(3)
  ["ALERT"]=>
  int(3)
  ["EMERGENCY"]=>
  int(3)
}
int(7)
int(1)

Пример #5 Acquisit some type of log list

SeasLog get count value of `grep -w` use system pipe and return array to PHP.

<?php
$detailErrorArray = SeasLog::analyzerDetail(SEASLOG_ERROR);
var_dump($detailErrorArray);

var_dump(SeasLog::analyzerDetail(SEASLOG_ERROR,date('Ymd',time())));
?>

Результатом выполнения данного примера будет что-то подобное:

array(6) {
  [0] =>
  string(83) "2014-02-24 00:14:02 | ERROR | 8568 | 599157af4e937 | 1393172042.717 | test error 3 "
  [1] =>
  string(83) "2014-02-24 00:14:04 | ERROR | 8594 | 5991576584446 | 1393172044.104 | test error 3 "
  [2] =>
  string(83) "2014-02-24 00:14:04 | ERROR | 8620 | 1502697015147 | 1393172044.862 | test error 3 "
  [3] =>
  string(83) "2014-02-24 00:14:05 | ERROR | 8646 | 599159975a9ff | 1393172045.989 | test error 3 "
  [4] =>
  string(83) "2014-02-24 00:14:07 | ERROR | 8672 | 599159986ec28 | 1393172047.882 | test error 3 "
  [5] =>
  string(83) "2014-02-24 00:14:08 | ERROR | 8698 | 5991599981cec | 1393172048.736 | test error 3 "
}

array(2) {
  [0] =>
  string(83) "2014-02-24 00:14:02 | ERROR | 8568 | 599157af4e937 | 1393172042.717 | test error 3 "
  [1] =>
  string(83) "2014-02-24 00:14:04 | ERROR | 8594 | 5991576584446 | 1393172044.104 | test error 3 "
}


Seaslog Функции

Содержание

  • seaslog_get_author — Get SeasLog author.
  • seaslog_get_version — Get SeasLog version.


Get SeasLog author.

  • « Seaslog Функции
  • seaslog_get_version »
  • PHP Manual
  • Seaslog Функции
  • Get SeasLog author.

seaslog_get_author

(PECL seaslog >=1.0.0)

seaslog_get_author — Get SeasLog author.

Описание

seaslog_get_author ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return SeasLog author as string.

Примеры

Пример #1 seaslog_get_author() example

<?php

var_dump(seaslog_get_author());

?>

Результатом выполнения данного примера будет что-то подобное:

string(29) "Chitao.Gao  [ neeke@php.net ]"


Get SeasLog version.

  • « seaslog_get_author
  • SeasLog »
  • PHP Manual
  • Seaslog Функции
  • Get SeasLog version.

seaslog_get_version

(PECL seaslog >=1.0.0)

seaslog_get_version — Get SeasLog version.

Описание

seaslog_get_version ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return SeasLog version (SEASLOG_VERSION) as string.

Примеры

Пример #1 seaslog_get_version() example

<?php

var_dump(seaslog_get_version());

?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "1.8.4"


The SeasLog class

(PECL seaslog >=1.0.0)

Введение

Обзор классов

SeasLog {
/* Методы */
public static alert ( string $message [, array $content [, string $logger ]] ) : bool
public static analyzerCount ( string $level [, string $log_path [, string $key_word ]] ) : mixed
public static analyzerDetail ( string $level [, string $log_path [, string $key_word [, int $start [, int $limit [, int $order ]]]]] ) : mixed
public static closeLoggerStream ( int $model , string $logger ) : bool
public static critical ( string $message [, array $content [, string $logger ]] ) : bool
public static debug ( string $message [, array $content [, string $logger ]] ) : bool
public __destruct ( void )
public static emergency ( string $message [, array $content [, string $logger ]] ) : bool
public static error ( string $message [, array $content [, string $logger ]] ) : bool
public static flushBuffer ( void ) : bool
public static Seaslog::getBasePath ( void ) : string
public static getBuffer ( void ) : array
public static getBufferEnabled ( void ) : bool
public static getDatetimeFormat ( void ) : string
public static getLastLogger ( void ) : string
public static getRequestID ( void ) : string
public static getRequestVariable ( int $key ) : bool
public static info ( string $message [, array $content [, string $logger ]] ) : bool
public static log ( string $level [, string $message [, array $content [, string $logger ]]] ) : bool
public static notice ( string $message [, array $content [, string $logger ]] ) : bool
public static setBasePath ( string $base_path ) : bool
public static setDatetimeFormat ( string $format ) : bool
public static setLogger ( string $logger ) : bool
public static setRequestID ( string $request_id ) : bool
public static setRequestVariable ( int $key , string $value ) : bool
public static warning ( string $message [, array $content [, string $logger ]] ) : bool
}

Содержание

  • SeasLog::alert — Record alert log information
  • SeasLog::analyzerCount — Get log count by level, log_path and key_word
  • SeasLog::analyzerDetail — Get log detail by level, log_path, key_word, start, limit, order
  • SeasLog::closeLoggerStream — Manually release stream flow from logger
  • SeasLog::__construct — Description
  • SeasLog::critical — Record critical log information
  • SeasLog::debug — Record debug log information
  • SeasLog::__destruct — Description
  • SeasLog::emergency — Record emergency log information
  • SeasLog::error — Record error log information
  • SeasLog::flushBuffer — Flush logs buffer, dump to appender file, or send to remote api with tcp/udp
  • SeasLog::getBasePath — Get SeasLog base path.
  • SeasLog::getBuffer — Get the logs buffer in memory as array
  • SeasLog::getBufferEnabled — Determin if buffer enabled
  • SeasLog::getDatetimeFormat — Get SeasLog datetime format style
  • SeasLog::getLastLogger — Get SeasLog last logger path
  • SeasLog::getRequestID — Get SeasLog request_id differentiated requests
  • SeasLog::getRequestVariable — Get SeasLog request variable
  • SeasLog::info — Record info log information
  • SeasLog::log — The Common Record Log Function
  • SeasLog::notice — Record notice log information
  • SeasLog::setBasePath — Set SeasLog base path
  • SeasLog::setDatetimeFormat — Set SeasLog datetime format style
  • SeasLog::setLogger — Set SeasLog logger name
  • SeasLog::setRequestID — Set SeasLog request_id differentiated requests
  • SeasLog::setRequestVariable — Manually set SeasLog request variable
  • SeasLog::warning — Record warning log information


Record alert log information

  • « SeasLog
  • SeasLog::analyzerCount »
  • PHP Manual
  • SeasLog
  • Record alert log information

SeasLog::alert

(PECL seaslog >=1.0.0)

SeasLog::alert — Record alert log information

Описание

public static SeasLog::alert ( string $message [, array $content [, string $logger ]] ) : bool

Record alert log information.

Замечание:

"ALERT" - Action must be taken immediately. Immediate attention should be given to relevant personnel for emergency repairs.

Список параметров

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Возвращаемые значения

Return TRUE on record log information success, FALSE on failure.

Примеры

Пример #1 SeasLog::alert() example

<?php

var_dump(SeasLog::alert('log message'));

//with content
var_dump(SeasLog::alert('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::alert('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | ALERT | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | ALERT | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | ALERT | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Смотрите также

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Get log count by level, log_path and key_word

  • « SeasLog::alert
  • SeasLog::analyzerDetail »
  • PHP Manual
  • SeasLog
  • Get log count by level, log_path and key_word

SeasLog::analyzerCount

(PECL seaslog >=1.1.6)

SeasLog::analyzerCount — Get log count by level, log_path and key_word

Описание

public static SeasLog::analyzerCount ( string $level [, string $log_path [, string $key_word ]] ) : mixed

`SeasLog` get count value of `grep -ai '{level}' | grep -aic '{key_word}'` use system pipe and return to PHP (array or int).

Список параметров

level

String. The log information level.

log_path

String. The log information path.

key_word

String. The search key word for log information.

Возвращаемые значения

If `level` is SEASLOG_ALL or Empty, return all levels count as `array`. If `level` is SEASLOG_INFO or the other level, return count as `int`.

Примеры

Пример #1 SeasLog::analyzerCount() example

<?php

$countResult1 = SeasLog::analyzerCount();

//with `level`
$countResult2 = SeasLog::analyzerCount(SEASLOG_DEBUG);

//with `level` and `log_path`
$countResult3 = SeasLog::analyzerCount(SEASLOG_ERROR,date('Ymd',time()));

//with `level` and `key_word`
$countResult4 = SeasLog::analyzerCount(SEASLOG_DEBUG,NULL,'accessToken');

var_dump($countResult1,$countResult2,$countResult3,$countResult4);

?>

Результатом выполнения данного примера будет что-то подобное:

array(8) {
  ["DEBUG"]=>
  int(180)
  ["INFO"]=>
  int(214)
  ["NOTICE"]=>
  int(0)
  ["WARNING"]=>
  int(0)
  ["ERROR"]=>
  int(228)
  ["CRITICAL"]=>
  int(244)
  ["ALERT"]=>
  int(1)
  ["EMERGENCY"]=>
  int(0)
}

int(180)

int(228)

int(29)

Смотрите также

  • SeasLog::analyzerDetail() - Get log detail by level, log_path, key_word, start, limit, order


Get log detail by level, log_path, key_word, start, limit, order

  • « SeasLog::analyzerCount
  • SeasLog::closeLoggerStream »
  • PHP Manual
  • SeasLog
  • Get log detail by level, log_path, key_word, start, limit, order

SeasLog::analyzerDetail

(PECL seaslog >=1.1.6)

SeasLog::analyzerDetail — Get log detail by level, log_path, key_word, start, limit, order

Описание

public static SeasLog::analyzerDetail ( string $level [, string $log_path [, string $key_word [, int $start [, int $limit [, int $order ]]]]] ) : mixed

`SeasLog` get results of `grep -ai '{level}' | grep -ai '{key_word}' | sed -n '{start},{limit}'p` use system pipe and return array to PHP.

Список параметров

level

String. The log information level.

log_path

String. The log information path.

key_word

String. The search key word for log information.

start

Int. Default is `1`.

limit

Int. Default is `20`.

order

Int. Default is SEASLOG_DETAIL_ORDER_ASC. See also:

  • SEASLOG_DETAIL_ORDER_ASC
  • SEASLOG_DETAIL_ORDER_DESC

Возвращаемые значения

Return results as array.

Замечание:

When `start`,`limit` is not NULL and in Windows, SeasLog will threw exception with message 'Param start and limit don't support Windows'.

Примеры

Пример #1 SeasLog::analyzerDetail() example

<?php

$result1 = SeasLog::analyzerDetail(SEASLOG_ERROR);

//with `logger` and `key_word`
$result2 = SeasLog::analyzerDetail(SEASLOG_ERROR,'test/logger/','neeke');

//with `start` and `limit`
$result3 = SeasLog::analyzerDetail(SEASLOG_ERROR,'test/logger/','neeke',1,2);

var_dump($result1,$result2,$result3);
?>

Результатом выполнения данного примера будет что-то подобное:

array(20) {
  [0]=>
  string(93) "2018-07-09 12:52:53 | ERROR | 12247 | 5b42ea2580e51 | 1531111973.528 | log message from neeke"
  [1]=>
  string(93) "2018-07-09 12:52:54 | ERROR | 12256 | 5b42ea26d6657 | 1531111974.878 | log message from neeke"
  [2]=>
  string(93) "2018-07-09 12:52:55 | ERROR | 12265 | 5b42ea277b8d4 | 1531111975.506 | log message from neeke"
  [3]=>
  string(104) "2018-07-09 12:52:55 | ERROR | 12274 | 5b42ea27db5dc | 1531111975.898 | log message from the other people"
...
}

array(3) {
  [0]=>
  string(93) "2018-07-09 12:52:53 | ERROR | 12247 | 5b42ea2580e51 | 1531111973.528 | log message from neeke"
  [1]=>
  string(93) "2018-07-09 12:52:54 | ERROR | 12256 | 5b42ea26d6657 | 1531111974.878 | log message from neeke"
  [2]=>
  string(93) "2018-07-09 12:52:55 | ERROR | 12265 | 5b42ea277b8d4 | 1531111975.506 | log message from neeke"
}

array(2) {
  [0]=>
  string(93) "2018-07-09 12:52:53 | ERROR | 12247 | 5b42ea2580e51 | 1531111973.528 | log message from neeke"
  [1]=>
  string(93) "2018-07-09 12:52:54 | ERROR | 12256 | 5b42ea26d6657 | 1531111974.878 | log message from neeke"
}

Смотрите также

  • SeasLog::analyzerCount() - Get log count by level, log_path and key_word


Manually release stream flow from logger

  • « SeasLog::analyzerDetail
  • SeasLog::__construct »
  • PHP Manual
  • SeasLog
  • Manually release stream flow from logger

SeasLog::closeLoggerStream

(PECL seaslog >=1.8.6)

SeasLog::closeLoggerStream — Manually release stream flow from logger

Описание

public static SeasLog::closeLoggerStream ( int $model , string $logger ) : bool

Manually release stream flow from logger. SeasLog caches the stream handle opened by the log logger to save the overhead of creating a stream. The handle will be automatically released at the end of the request. If in CLI mode, the process will also automatically release when it exits. Or you can use the following functions to manually release(manually release function needs to update SeasLog 1.8.6 or updated version).

Список параметров

model

Constant int.

  • SEASLOG_CLOSE_LOGGER_STREAM_MOD_ALL
  • SEASLOG_CLOSE_LOGGER_STREAM_MOD_ASSIGN

logger

The logger name.

Возвращаемые значения

Return TRUE on released stream flow success, FALSE on failure.

Примеры

Пример #1 SeasLog::closeLoggerStream() example

<?php

var_dump(SeasLog::closeLoggerStream());
var_dump(SeasLog::closeLoggerStream(SEASLOG_CLOSE_LOGGER_STREAM_MOD_ALL));
var_dump(SeasLog::closeLoggerStream(SEASLOG_CLOSE_LOGGER_STREAM_MOD_ASSIGN, 'logger_name'));

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(true)

Смотрите также

  • SeasLog::setLogger() - Set SeasLog logger name
  • SeasLog::getLastLogger() - Get SeasLog last logger path


Description

  • « SeasLog::closeLoggerStream
  • SeasLog::critical »
  • PHP Manual
  • SeasLog
  • Description

SeasLog::__construct

(PECL seaslog >=1.0.0)

SeasLog::__construct — Description

Описание

public SeasLog::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 SeasLog::__construct() example

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Record critical log information

  • « SeasLog::__construct
  • SeasLog::debug »
  • PHP Manual
  • SeasLog
  • Record critical log information

SeasLog::critical

(PECL seaslog >=1.0.0)

SeasLog::critical — Record critical log information

Описание

public static SeasLog::critical ( string $message [, array $content [, string $logger ]] ) : bool

Record critical log information.

Замечание:

"CRITICAL" - Critical conditions.Need to be repaired immediately, and the program component is unavailable.

Список параметров

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Возвращаемые значения

Return TRUE on record log information success, FALSE on failure.

Примеры

Пример #1 SeasLog::critical() example

<?php

var_dump(SeasLog::critical('log message'));

//with content
var_dump(SeasLog::critical('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::critical('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | CRITICAL | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | CRITICAL | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | CRITICAL | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Смотрите также

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Record debug log information

  • « SeasLog::critical
  • SeasLog::__destruct »
  • PHP Manual
  • SeasLog
  • Record debug log information

SeasLog::debug

(PECL seaslog >=1.0.0)

SeasLog::debug — Record debug log information

Описание

public static SeasLog::debug ( string $message [, array $content [, string $logger ]] ) : bool

Record debug log information.

Замечание:

"DEBUG" - Detailed debug information.Fine-grained information events.

Список параметров

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Возвращаемые значения

Return TRUE on record log information success, FALSE on failure.

Примеры

Пример #1 SeasLog::debug() example

<?php

var_dump(SeasLog::debug('log message'));

//with content
var_dump(SeasLog::debug('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::debug('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | DEBUG | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | DEBUG | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | DEBUG | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Смотрите также

  • seaslog.default_template
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Description

  • « SeasLog::debug
  • SeasLog::emergency »
  • PHP Manual
  • SeasLog
  • Description

SeasLog::__destruct

(PECL seaslog >=1.0.0)

SeasLog::__destruct — Description

Описание

public SeasLog::__destruct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 SeasLog::__destruct() example

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Record emergency log information

  • « SeasLog::__destruct
  • SeasLog::error »
  • PHP Manual
  • SeasLog
  • Record emergency log information

SeasLog::emergency

(PECL seaslog >=1.0.0)

SeasLog::emergency — Record emergency log information

Описание

public static SeasLog::emergency ( string $message [, array $content [, string $logger ]] ) : bool

Record emergency log information.

Замечание:

"EMERGENCY" - System is unusable.

Список параметров

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Возвращаемые значения

Return TRUE on record log information success, FALSE on failure.

Примеры

Пример #1 SeasLog::emergency() example

<?php

var_dump(SeasLog::emergency('log message'));

//with content
var_dump(SeasLog::emergency('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::emergency('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | EMERGENCY | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | EMERGENCY | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | EMERGENCY | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Смотрите также

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::log() - The Common Record Log Function


Record error log information

  • « SeasLog::emergency
  • SeasLog::flushBuffer »
  • PHP Manual
  • SeasLog
  • Record error log information

SeasLog::error

(PECL seaslog >=1.0.0)

SeasLog::error — Record error log information

Описание

public static SeasLog::error ( string $message [, array $content [, string $logger ]] ) : bool

Record error log information.

Замечание:

"ERROR" - Runtime errors that do not require immediate action but should typically.

Список параметров

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Возвращаемые значения

Return TRUE on record log information success, FALSE on failure.

Примеры

Пример #1 SeasLog::error() example

<?php

var_dump(SeasLog::error('log message'));

//with content
var_dump(SeasLog::error('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::error('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | ERROR | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | ERROR | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | ERROR | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Смотрите также

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Flush logs buffer, dump to appender file, or send to remote api with tcp/udp

  • « SeasLog::error
  • SeasLog::getBasePath »
  • PHP Manual
  • SeasLog
  • Flush logs buffer, dump to appender file, or send to remote api with tcp/udp

SeasLog::flushBuffer

(PECL seaslog >=1.0.0)

SeasLog::flushBuffer — Flush logs buffer, dump to appender file, or send to remote api with tcp/udp

Описание

public static SeasLog::flushBuffer ( void ) : bool

Flush logs buffer by seaslog.appender: dump to file, or send to remote api with tcp/udp.

Замечание:

See also: seaslog.appender_retry seaslog.remote_host seaslog.remote_port

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return TRUE on flush buffer success, FALSE on failure.

Примеры

Пример #1 SeasLog::flushBuffer() example

<?php

SeasLog::info('info log');
SeasLog::debug('debug log');
var_dump(SeasLog::getBuffer());
var_dump(SeasLog::flushBuffer());
var_dump(SeasLog::getBuffer());

?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(79) "2018-07-07 10:47:58 | INFO | 71910 | 5b4029ded6009 | 1530931678.877 | info log
"
    [1]=>
    string(81) "2018-07-07 10:47:58 | DEBUG | 71910 | 5b4029ded6009 | 1530931678.877 | debug log
"
  }
}
bool(true)
array(0) {
}

Смотрите также

  • seaslog.use_buffer
  • seaslog.buffer_size
  • seaslog.buffer_disabled_in_cli
  • SeasLog::getBufferEnabled() - Determin if buffer enabled
  • SeasLog::getBuffer() - Get the logs buffer in memory as array


Get SeasLog base path.

  • « SeasLog::flushBuffer
  • SeasLog::getBuffer »
  • PHP Manual
  • SeasLog
  • Get SeasLog base path.

SeasLog::getBasePath

(PECL seaslog >=1.0.0)

SeasLog::getBasePath — Get SeasLog base path.

Описание

public static Seaslog::getBasePath ( void ) : string

Use the Function SeasLog::getBasePath() will get the value of seaslog.default_basepath what configured in php.ini(seaslog.ini).

If you use Seaslog::setBasePath(), will change the result.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return seaslog.default_basepath as string.

Примеры

Пример #1 SeasLog::getBasePath() example

<?php

var_dump(SeasLog::getBasePath());

?>

Результатом выполнения данного примера будет что-то подобное:

string(12) "/var/log/www"


Get the logs buffer in memory as array

  • « SeasLog::getBasePath
  • SeasLog::getBufferEnabled »
  • PHP Manual
  • SeasLog
  • Get the logs buffer in memory as array

SeasLog::getBuffer

(PECL seaslog >=1.0.0)

SeasLog::getBuffer — Get the logs buffer in memory as array

Описание

public static SeasLog::getBuffer ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return an array from logs buffer in memory.

Примеры

Пример #1 SeasLog::getBuffer() example

<?php

var_dump(SeasLog::info('info log'));
var_dump(SeasLog::debug('debug log'));
var_dump(SeasLog::getBuffer());

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(79) "2018-07-07 10:43:32 | INFO | 71785 | 5b4028d4c58d5 | 1530931412.810 | info log
"
    [1]=>
    string(81) "2018-07-07 10:43:32 | DEBUG | 71785 | 5b4028d4c58d5 | 1530931412.810 | debug log
"
  }
}

Смотрите также

  • seaslog.use_buffer
  • seaslog.buffer_size
  • seaslog.buffer_disabled_in_cli
  • SeasLog::getBufferEnabled() - Determin if buffer enabled
  • SeasLog::flushBuffer() - Flush logs buffer, dump to appender file, or send to remote api with tcp/udp


Determin if buffer enabled

  • « SeasLog::getBuffer
  • SeasLog::getDatetimeFormat »
  • PHP Manual
  • SeasLog
  • Determin if buffer enabled

SeasLog::getBufferEnabled

(PECL seaslog >=1.0.0)

SeasLog::getBufferEnabled — Determin if buffer enabled

Описание

public static SeasLog::getBufferEnabled ( void ) : bool

Result join seaslog.use_buffer and seaslog.buffer_disabled_in_cli.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return TRUE on seaslog.use_buffer is true. If switch seaslog.buffer_disabled_in_cli on, and running in cli, seaslog.use_buffer setting will be discarded, Seaslog write to the Data Store IMMEDIATELY.

Примеры

Пример #1 SeasLog::getBufferEnabled() example

<?php

var_dump(SeasLog::getBufferEnabled());

?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)

Смотрите также

  • seaslog.use_buffer
  • seaslog.buffer_size
  • seaslog.buffer_disabled_in_cli
  • SeasLog::getBuffer() - Get the logs buffer in memory as array
  • SeasLog::flushBuffer() - Flush logs buffer, dump to appender file, or send to remote api with tcp/udp


Get SeasLog datetime format style

  • « SeasLog::getBufferEnabled
  • SeasLog::getLastLogger »
  • PHP Manual
  • SeasLog
  • Get SeasLog datetime format style

SeasLog::getDatetimeFormat

(PECL seaslog >=1.0.0)

SeasLog::getDatetimeFormat — Get SeasLog datetime format style

Описание

public static SeasLog::getDatetimeFormat ( void ) : string

Get SeasLog datetime format style. Use the Function SeasLog::getDatetimeFormat() will get the value of seaslog.default_datetime_format what configured in php.ini(seaslog.ini).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Get SeasLog datetime format style of seaslog.default_datetime_format. Use the Function SeasLog::setDatetimeFormat() will change this value.

Примеры

Пример #1 SeasLog::getDatetimeFormat() example

<?php

var_dump(SeasLog::getDateTimeFormat());
var_dump(SeasLog::setDateTimeFormat('Ymd His'));
var_dump(SeasLog::getDateTimeFormat());

?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "Y-m-d H:i:s"
bool(true)
string(7) "Ymd His"

Смотрите также

  • SeasLog::setDatetimeFormat() - Set SeasLog datetime format style


Get SeasLog last logger path

  • « SeasLog::getDatetimeFormat
  • SeasLog::getRequestID »
  • PHP Manual
  • SeasLog
  • Get SeasLog last logger path

SeasLog::getLastLogger

(PECL seaslog >=1.0.0)

SeasLog::getLastLogger — Get SeasLog last logger path

Описание

public static SeasLog::getLastLogger ( void ) : string

Use the Function SeasLog::getLastLogger() will get the value of seaslog.default_logger what configured in php.ini(seaslog.ini).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Use the Function SeasLog::setLogger() will change the value of function SeasLog::getLastLogger().

Примеры

Пример #1 SeasLog::getLastLogger() example

<?php

var_dump(SeasLog::getLastLogger());
SeasLog::setLogger('theNewLogger');
var_dump(SeasLog::getLastLogger());
?>

Результатом выполнения данного примера будет что-то подобное:

string(7) "default"
string(12) "theNewLogger"

Смотрите также

  • SeasLog::setLogger() - Set SeasLog logger name


Get SeasLog request_id differentiated requests

  • « SeasLog::getLastLogger
  • SeasLog::getRequestVariable »
  • PHP Manual
  • SeasLog
  • Get SeasLog request_id differentiated requests

SeasLog::getRequestID

(PECL seaslog >=1.0.0)

SeasLog::getRequestID — Get SeasLog request_id differentiated requests

Описание

public static SeasLog::getRequestID ( void ) : string

To distinguish a single request, such as not invoking the SeasLog::setRequestId() function, the unique value generated by the built-in `static char *get_uniqid ()` function is used when the request is initialized.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return string generated by the built-in `static char *get_uniqid ()` function, or setted by SeasLog::setRequestId() function.

Примеры

Пример #1 SeasLog::getRequestID() example

<?php

var_dump(SeasLog::getRequestID());
var_dump(SeasLog::setRequestID('reqeust_id_test_'.time()))
var_dump(SeasLog::getRequestID());

?>

Результатом выполнения данного примера будет что-то подобное:

string(13) "5b3f21a209519"
bool(true)
string(26) "reqeust_id_test_1530864034"

Смотрите также

  • SeasLog::setRequestID() - Set SeasLog request_id differentiated requests
  • The Variable `%Q` in Seaslog Default Variable Table.


Get SeasLog request variable

  • « SeasLog::getRequestID
  • SeasLog::info »
  • PHP Manual
  • SeasLog
  • Get SeasLog request variable

SeasLog::getRequestVariable

(PECL seaslog >=1.9.0)

SeasLog::getRequestVariable — Get SeasLog request variable

Описание

public static SeasLog::getRequestVariable ( int $key ) : bool

Get SeasLog request variable.

Список параметров

key

Constant int.

  • SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT
  • SEASLOG_REQUEST_VARIABLE_REQUEST_URI
  • SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD
  • SEASLOG_REQUEST_VARIABLE_CLIENT_IP

Возвращаемые значения

Return request variable value on set success.

Примеры

Пример #1 SeasLog::getRequestVariable() example

<?php

$sDomainPort = 'domain:port';
$sRequestUri = 'uri';
$sRequestMethod = 'method';
$sClientIp = 'client_ip';

$iErrorKey = 1000;

$oSeasLog = new SeasLog();

var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT, $sDomainPort));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_URI, $sRequestUri));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD, $sRequestMethod));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_CLIENT_IP, $sClientIp));

var_dump($oSeasLog->setRequestVariable($iErrorKey,NULL));

var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT) == $sDomainPort);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_URI) == $sRequestUri);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD) == $sRequestMethod);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_CLIENT_IP) == $sClientIp);

var_dump($oSeasLog->getRequestVariable($iErrorKey));

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)

Смотрите также

  • SeasLog::setRequestVariable() - Manually set SeasLog request variable


Record info log information

  • « SeasLog::getRequestVariable
  • SeasLog::log »
  • PHP Manual
  • SeasLog
  • Record info log information

SeasLog::info

(PECL seaslog >=1.0.0)

SeasLog::info — Record info log information

Описание

public static SeasLog::info ( string $message [, array $content [, string $logger ]] ) : bool

Record info log information.

Замечание:

"INFO" - Interesting events.Emphasizes the running process of the application.

Список параметров

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Возвращаемые значения

Return TRUE on record log information success, FALSE on failure.

Примеры

Пример #1 SeasLog::info() example

<?php

var_dump(SeasLog::info('log message'));

//with content
var_dump(SeasLog::info('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::info('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | INFO | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | INFO | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | INFO | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Смотрите также

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


The Common Record Log Function

  • « SeasLog::info
  • SeasLog::notice »
  • PHP Manual
  • SeasLog
  • The Common Record Log Function

SeasLog::log

(PECL seaslog >=1.0.0)

SeasLog::log — The Common Record Log Function

Описание

public static SeasLog::log ( string $level [, string $message [, array $content [, string $logger ]]] ) : bool

The Common Record Log Function.

Список параметров

level

Can use level in:

  • SEASLOG_DEBUG
  • SEASLOG_INFO
  • SEASLOG_NOTICE
  • SEASLOG_WARNING
  • SEASLOG_ERROR
  • SEASLOG_CRITICAL
  • SEASLOG_ALERT
  • SEASLOG_EMERGENCY
Or you can create a new level self-help.

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Возвращаемые значения

Return TRUE on record log information success, FALSE on failure.

Примеры

Пример #1 SeasLog::log() example

<?php

var_dump(SeasLog::log(SEASLOG_INFO,'info log'));
var_dump(SeasLog::getBuffer());

//create a new level self-help.
var_dump(SeasLog::log('MySelfLevel','info log'));
var_dump(SeasLog::getBuffer());

//with `content`
var_dump(SeasLog::log('MySelfLevel','info log {NAME}',array('NAME' => 'neeke')));
var_dump(SeasLog::getBuffer());

//with `logger`
var_dump(SeasLog::log('MySelfLevel','info log {NAME}',array('NAME' => 'neeke'),'tmp_logger'));
var_dump(SeasLog::getBuffer());

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(1) {
    [0]=>
    string(79) "2018-07-07 11:12:37 | INFO | 72427 | 5b402fa56a2ea | 1530933157.436 | info log
"
  }
}

bool(true)
array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(1) {
    [0]=>
    string(86) "2018-07-07 11:13:59 | MySelfLevel | 72470 | 5b402ff781c5e | 1530933239.532 | info log
"
  }
}

bool(true)
array(1) {
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:28:12 | MySelfLevel | 72833 | 5b40334ce6a2f | 1530934092.946 | info log neeke
"
  }
}

bool(true)
array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(1) {
    [0]=>
    string(86) "2018-07-07 11:20:12 | INFO | 72616 | 5b40316c3641e | 1530933612.222 | info log neeke
"
  }
}

Смотрите также

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information


Record notice log information

  • « SeasLog::log
  • SeasLog::setBasePath »
  • PHP Manual
  • SeasLog
  • Record notice log information

SeasLog::notice

(PECL seaslog >=1.0.0)

SeasLog::notice — Record notice log information

Описание

public static SeasLog::notice ( string $message [, array $content [, string $logger ]] ) : bool

Record notice log information.

Замечание:

"NOTICE" - Normal but significant events.Information that is more important than the INFO level during execution.

Список параметров

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Возвращаемые значения

Return TRUE on record log information success, FALSE on failure.

Примеры

Пример #1 SeasLog::notice() example

<?php

var_dump(SeasLog::notice('log message'));

//with content
var_dump(SeasLog::notice('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::notice('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | NOTICE | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | NOTICE | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | NOTICE | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Смотрите также

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Set SeasLog base path

  • « SeasLog::notice
  • SeasLog::setDatetimeFormat »
  • PHP Manual
  • SeasLog
  • Set SeasLog base path

SeasLog::setBasePath

(PECL seaslog >=1.0.0)

SeasLog::setBasePath — Set SeasLog base path

Описание

public static SeasLog::setBasePath ( string $base_path ) : bool

Set SeasLog base path.

Список параметров

base_path

String.

Возвращаемые значения

Return TRUE on setted base path success, FALSE on failure.

Примеры

Пример #1 SeasLog::setBasePath() example

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Set SeasLog datetime format style

  • « SeasLog::setBasePath
  • SeasLog::setLogger »
  • PHP Manual
  • SeasLog
  • Set SeasLog datetime format style

SeasLog::setDatetimeFormat

(PECL seaslog >=1.0.0)

SeasLog::setDatetimeFormat — Set SeasLog datetime format style

Описание

public static SeasLog::setDatetimeFormat ( string $format ) : bool

Set SeasLog datetime format style.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

format

String. Such as `Y-m-d H:i:s` or `Ymd His`. See also first param `format` at date().

Возвращаемые значения

Return TRUE on setted datetime format success, FALSE on failure.

Примеры

Пример #1 SeasLog::setDatetimeFormat() example

<?php

var_dump(SeasLog::setDateTimeFormat('Ymd His'));

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)

Смотрите также

  • SeasLog::getDateTimeFormat() - Get SeasLog datetime format style


Set SeasLog logger name

  • « SeasLog::setDatetimeFormat
  • SeasLog::setRequestID »
  • PHP Manual
  • SeasLog
  • Set SeasLog logger name

SeasLog::setLogger

(PECL seaslog >=1.0.0)

SeasLog::setLogger — Set SeasLog logger name

Описание

public static SeasLog::setLogger ( string $logger ) : bool

Use the Function SeasLog::setLogger() will change the value of function SeasLog::getLastLogger(). Than's mean, SeasLog will record loginfo into the logger directory.

Список параметров

logger

Logger name.

Возвращаемые значения

Return TRUE on created logger disectory success, FALSE on failure.

Примеры

Пример #1 SeasLog::setLogger() example

<?php

var_dump(SeasLog::setLogger('testModule/testLogger'));

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)

Смотрите также

  • SeasLog::getLastLogger() - Get SeasLog last logger path
  • SeasLog::closeLoggerStream() - Manually release stream flow from logger


Set SeasLog request_id differentiated requests

  • « SeasLog::setLogger
  • SeasLog::setRequestVariable »
  • PHP Manual
  • SeasLog
  • Set SeasLog request_id differentiated requests

SeasLog::setRequestID

(PECL seaslog >=1.0.0)

SeasLog::setRequestID — Set SeasLog request_id differentiated requests

Описание

public static SeasLog::setRequestID ( string $request_id ) : bool

To distinguish a single request, such as not invoking the SeasLog::setRequestId() function, the unique value generated by the built-in `static char *get_uniqid ()` function is used when the request is initialized.

Список параметров

request_id

String.

Возвращаемые значения

Return TRUE on set request_id success, FALSE on failure.

Примеры

Пример #1 SeasLog::setRequestID() example

<?php

var_dump(SeasLog::setRequestID(time() . rand()));

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)

Смотрите также

  • SeasLog::getRequestID() - Get SeasLog request_id differentiated requests


Manually set SeasLog request variable

  • « SeasLog::setRequestID
  • SeasLog::warning »
  • PHP Manual
  • SeasLog
  • Manually set SeasLog request variable

SeasLog::setRequestVariable

(PECL seaslog >=1.9.0)

SeasLog::setRequestVariable — Manually set SeasLog request variable

Описание

public static SeasLog::setRequestVariable ( int $key , string $value ) : bool

Manually set SeasLog request variable.

Список параметров

key

Constant int.

  • SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT
  • SEASLOG_REQUEST_VARIABLE_REQUEST_URI
  • SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD
  • SEASLOG_REQUEST_VARIABLE_CLIENT_IP

value

The request variable value.

Возвращаемые значения

Return TRUE on set success, FALSE on failure.

Примеры

Пример #1 SeasLog::setRequestVariable() example

<?php

$sDomainPort = 'domain:port';
$sRequestUri = 'uri';
$sRequestMethod = 'method';
$sClientIp = 'client_ip';

$iErrorKey = 1000;

$oSeasLog = new SeasLog();

var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT, $sDomainPort));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_URI, $sRequestUri));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD, $sRequestMethod));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_CLIENT_IP, $sClientIp));

var_dump($oSeasLog->setRequestVariable($iErrorKey,NULL));

var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT) == $sDomainPort);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_URI) == $sRequestUri);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD) == $sRequestMethod);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_CLIENT_IP) == $sClientIp);

var_dump($oSeasLog->getRequestVariable($iErrorKey));

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)

Смотрите также

  • SeasLog::getRequestVariable() - Get SeasLog request variable


Record warning log information

  • « SeasLog::setRequestVariable
  • SPL »
  • PHP Manual
  • SeasLog
  • Record warning log information

SeasLog::warning

(PECL seaslog >=1.0.0)

SeasLog::warning — Record warning log information

Описание

public static SeasLog::warning ( string $message [, array $content [, string $logger ]] ) : bool

Record warning log information.

Замечание:

"WARNING" - Exceptional occurrences that are not errors. Potentially aberrant information that needs attention and needs to be repaired.

Список параметров

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Возвращаемые значения

Return TRUE on record log information success, FALSE on failure.

Примеры

Пример #1 SeasLog::warning() example

<?php

var_dump(SeasLog::warning('log message'));

//with content
var_dump(SeasLog::warning('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::warning('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | WARNING | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | WARNING | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | WARNING | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Смотрите также

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Стандартная библиотека PHP (SPL)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Структуры данных
    • SplDoublyLinkedList — Класс SplDoublyLinkedList
    • SplStack — Класс SplStack
    • SplQueue — Класс SplQueue
    • SplHeap — Класс SplHeap
    • SplMaxHeap — Класс SplMaxHeap
    • SplMinHeap — Класс SplMinHeap
    • SplPriorityQueue — Класс SplPriorityQueue
    • SplFixedArray — Класс SplFixedArray
    • SplObjectStorage — Класс SplObjectStorage
  • Итераторы
    • AppendIterator — Класс AppendIterator
    • ArrayIterator — Класс ArrayIterator
    • CachingIterator — Класс CachingIterator
    • CallbackFilterIterator — Класс CallbackFilterIterator
    • DirectoryIterator — Класс DirectoryIterator
    • EmptyIterator — Класс EmptyIterator
    • FilesystemIterator — Класс FilesystemIterator
    • FilterIterator — Класс FilterIterator
    • GlobIterator — Класс GlobIterator
    • InfiniteIterator — Класс InfiniteIterator
    • IteratorIterator — Класс IteratorIterator
    • LimitIterator — Класс LimitIterator
    • MultipleIterator — Класс MultipleIterator
    • NoRewindIterator — Класс NoRewindIterator
    • ParentIterator — Класс ParentIterator
    • RecursiveArrayIterator — Класс RecursiveArrayIterator
    • RecursiveCachingIterator — Класс RecursiveCachingIterator
    • RecursiveCallbackFilterIterator — Класс RecursiveCallbackFilterIterator
    • RecursiveDirectoryIterator — Класс RecursiveDirectoryIterator
    • RecursiveFilterIterator — Класс RecursiveFilterIterator
    • RecursiveIteratorIterator — Класс RecursiveIteratorIterator
    • RecursiveRegexIterator — Класс RecursiveRegexIterator
    • RecursiveTreeIterator — Класс RecursiveTreeIterator
    • RegexIterator — Класс RegexIterator
  • Интерфейсы
    • Countable — Интерфейс Countable
    • OuterIterator — Интерфейс OuterIterator
    • RecursiveIterator — Интерфейс RecursiveIterator
    • SeekableIterator — Интерфейс SeekableIterator
  • Исключения
    • BadFunctionCallException — Класс BadFunctionCallException
    • BadMethodCallException — Класс BadMethodCallException
    • DomainException — Класс DomainException
    • InvalidArgumentException — Класс InvalidArgumentException
    • LengthException — Класс LengthException
    • LogicException — Класс LogicException
    • OutOfBoundsException — Класс OutOfBoundsException
    • OutOfRangeException — Класс OutOfRangeException
    • OverflowException — Класс OverflowException
    • RangeException — Класс RangeException
    • RuntimeException — Класс RuntimeException
    • UnderflowException — Класс UnderflowException
    • UnexpectedValueException — Класс UnexpectedValueException
  • Функции SPL
    • class_implements — Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе
    • class_parents — Возвращает список родительских классов заданного класса
    • class_uses — Возвращает список трейтов, используемых заданным классом
    • iterator_apply — Вызывает функцию для каждого элемента в итераторе
    • iterator_count — Подсчитывает количество элементов в итераторе
    • iterator_to_array — Копирует итератор в массив
    • spl_autoload_call — Попытка загрузить класс всеми зарегистрированными функциями __autoload()
    • spl_autoload_extensions — Регистрация и вывод расширений файлов для spl_autoload
    • spl_autoload_functions — Получение списка всех зарегистрированных функций __autoload()
    • spl_autoload_register — Регистрирует заданную функцию в качестве реализации метода __autoload()
    • spl_autoload_unregister — Отмена регистрации функции в качестве реализации метода __autoload()
    • spl_autoload — Реализация по умолчанию метода __autoload()
    • spl_classes — Возвращает доступные классы SPL
    • spl_object_hash — Возвращает хеш-идентификатор для объекта
    • spl_object_id — Получить целочисленный идентификатор объекта
  • Обработка файлов
    • SplFileInfo — Класс SplFileInfo
    • SplFileObject — Класс SplFileObject
    • SplTempFileObject — Класс SplTempFileObject
  • Различные классы и интерфейсы
    • ArrayObject — Класс ArrayObject
    • SplObserver — Интерфейс SplObserver
    • SplSubject — Интерфейс SplSubject


Введение

Стандартная библиотека PHP (SPL) - это набор интерфейсов и классов, предназначенных для решения стандартных задач.

Не требуется никаких внешних библиотек для сборки этого расширения, и оно доступно по умолчанию в PHP 5.0.0 и выше.

SPL предоставляет ряд стандартных структур данных, итераторов для оббегания объектов, интерфейсов, стандартных исключений, некоторое количество классов для работы с файлами и предоставляет ряд функций, например spl_autoload_register().


Установка

Это расширение доступно и включено по умолчанию начиная с PHP 5.0.0.

Замечание:

Начиная с PHP 5.3.0 данное расширение не может быть отключено и доступно всегда.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Внимание

Начиная с PHP 5.1 в SPL используются константы класса. В предыдущих версиях используются глобальные константы вида RIT_LEAVES_ONLY.


Структуры данных

Содержание

  • SplDoublyLinkedList
  • SplStack
  • SplQueue
  • SplHeap
  • SplMaxHeap
  • SplMinHeap
  • SplPriorityQueue
  • SplFixedArray
  • SplObjectStorage

SPL предоставляет набор стандартных структур данных. Они сгруппированы здесь по своей базовой реализации, которая обычно определяет их общую область применения.

Двусвязные списки

Двусвязный список (DLL) - это список узлов, связанных в обоих направлениях друг с другом. Операции итератора, доступ к обоим концам, добавление или удаление узлов стоимостью O(1), когда основная структура является DLL. Следовательно, они обеспечивает хорошую реализацию для стеков и очередей.

  • SplDoublyLinkedList
    • SplStack
    • SplQueue

Кучи

Кучи - это древовидные структуры, которые следуют свойствам кучи: каждый узел больше или равен своим потомкам, при этом для сравнения используется внедренный метод сравнения, который является общим для всей кучи.

  • SplHeap
    • SplMaxHeap
    • SplMinHeap
  • SplPriorityQueue

Массивы

Массивы - структуры, которые хранят данные в непрерывном виде, доступные через индексы. Не путайте их с массивами PHP: последние на самом деле реализованы в виде упорядоченных хеш-таблиц.

  • SplFixedArray

Карта

Карта - это структура данных, содержащая пары ключ-значение. Массивы PHP можно рассматривать как карты, отображающие целые/строковые данные в их значения. SPL предоставляет карту, отображающую объекты к данным. Эта карта также может быть использована как множество объектов.

  • SplObjectStorage


Класс SplDoublyLinkedList

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplDoublyLinkedList обеспечивает основные функциональные возможности двусвязного списка.

Обзор классов

SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
/* Константы */
const integer IT_MODE_LIFO = 2 ;
const integer IT_MODE_FIFO = 0 ;
const integer IT_MODE_DELETE = 1 ;
const integer IT_MODE_KEEP = 0 ;
/* Методы */
public __construct ( void )
public add ( mixed $index , mixed $newval ) : void
public bottom ( void ) : mixed
public count ( void ) : int
public current ( void ) : mixed
public getIteratorMode ( void ) : int
public isEmpty ( void ) : bool
public key ( void ) : mixed
public next ( void ) : void
public offsetExists ( mixed $index ) : bool
public offsetGet ( mixed $index ) : mixed
public offsetSet ( mixed $index , mixed $newval ) : void
public offsetUnset ( mixed $index ) : void
public pop ( void ) : mixed
public prev ( void ) : void
public push ( mixed $value ) : void
public rewind ( void ) : void
public serialize ( void ) : string
public setIteratorMode ( int $mode ) : void
public shift ( void ) : mixed
public top ( void ) : mixed
public unserialize ( string $serialized ) : void
public unshift ( mixed $value ) : void
public valid ( void ) : bool
}

Предопределенные константы

Направление итерации

SplDoublyLinkedList::IT_MODE_LIFO

Список будет повторяться по порядку "последним пришел - первым вышел", как стек.

SplDoublyLinkedList::IT_MODE_FIFO

Список будет повторяться по порядку "первым пришел - первым вышел", как очередь.

Поведение итерации

SplDoublyLinkedList::IT_MODE_DELETE

Итерация удалит повторяющиеся элементы.

SplDoublyLinkedList::IT_MODE_KEEP

Итерация не удалит повторяющиеся элементы.

Содержание

  • SplDoublyLinkedList::add — Добавляет/вставляет новое значение по указанному индексу
  • SplDoublyLinkedList::bottom — Получает узел, находящийся в начале двусвязного списка
  • SplDoublyLinkedList::__construct — Создает новый двусвязный список
  • SplDoublyLinkedList::count — Подсчитывает количество элементов в двусвязном списке
  • SplDoublyLinkedList::current — Возвращает текущий элемент массива
  • SplDoublyLinkedList::getIteratorMode — Возвращает режим итерации
  • SplDoublyLinkedList::isEmpty — Проверяет, является ли двусвязный список пустым
  • SplDoublyLinkedList::key — Возвращает индекс текущего узла
  • SplDoublyLinkedList::next — Перемещает итератор к следующему элементу
  • SplDoublyLinkedList::offsetExists — Проверяет, существует ли запрашиваемый индекс
  • SplDoublyLinkedList::offsetGet — Возвращает значение по указанному индексу
  • SplDoublyLinkedList::offsetSet — Устанавливает значение по заданному индексу $index в $newval
  • SplDoublyLinkedList::offsetUnset — Удаляет значение по указанному индексу $index
  • SplDoublyLinkedList::pop — Удаляет (выталкивает) узел, находящийся в конце двусвязного списка
  • SplDoublyLinkedList::prev — Перемещает итератор к предыдущему элементу
  • SplDoublyLinkedList::push — Помещает элемент в конец двусвязного списка
  • SplDoublyLinkedList::rewind — Возвращает итератор в начало
  • SplDoublyLinkedList::serialize — Сериализует хранилище
  • SplDoublyLinkedList::setIteratorMode — Устанавливает режим итерации
  • SplDoublyLinkedList::shift — Удаляет узел, находящийся в начале двусвязного списка
  • SplDoublyLinkedList::top — Получает узел, находящийся в конце двусвязного списка
  • SplDoublyLinkedList::unserialize — Десериализует хранилище
  • SplDoublyLinkedList::unshift — Вставляет элемент в начало двусвязного списка
  • SplDoublyLinkedList::valid — Проверяет, содержит ли узлы двусвязный список


Добавляет/вставляет новое значение по указанному индексу

  • « SplDoublyLinkedList
  • SplDoublyLinkedList::bottom »
  • PHP Manual
  • SplDoublyLinkedList
  • Добавляет/вставляет новое значение по указанному индексу

SplDoublyLinkedList::add

(PHP 5 >= 5.5.0, PHP 7)

SplDoublyLinkedList::add — Добавляет/вставляет новое значение по указанному индексу

Описание

public SplDoublyLinkedList::add ( mixed $index , mixed $newval ) : void

Вставляет значение newval по указанному индексу index. Предыдущее значение (и все последующие), смещаются вверх по списку.

Список параметров

index

Индекс, по которому надо вставить значение.

newval

Значение, которое надо вставить по индексу index.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение OutOfRangeException, если index за пределами списка, либо если index не может быть представлен в виде целого числа.


Получает узел, находящийся в начале двусвязного списка

  • « SplDoublyLinkedList::add
  • SplDoublyLinkedList::__construct »
  • PHP Manual
  • SplDoublyLinkedList
  • Получает узел, находящийся в начале двусвязного списка

SplDoublyLinkedList::bottom

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::bottom — Получает узел, находящийся в начале двусвязного списка

Описание

public SplDoublyLinkedList::bottom ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение первого узла.

Ошибки

Выбрасывает исключение RuntimeException, когда структура данных пуста.


Создает новый двусвязный список

  • « SplDoublyLinkedList::bottom
  • SplDoublyLinkedList::count »
  • PHP Manual
  • SplDoublyLinkedList
  • Создает новый двусвязный список

SplDoublyLinkedList::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::__construct — Создает новый двусвязный список

Описание

public SplDoublyLinkedList::__construct ( void )

Создает новый пустой двусвязный список.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplDoublyLinkedList::__construct()

<?php
$dll = new SplDoublyLinkedList();

$dll->push(2);
$dll->push(3);
$dll->unshift(5);

var_dump($dll);
?>

Результат выполнения данного примера:

object(SplDoublyLinkedList)#1 (2) {
  ["flags":"SplDoublyLinkedList":private]=>
  int(0)
  ["dllist":"SplDoublyLinkedList":private]=>
  array(3) {
    [0]=>
    int(5)
    [1]=>
    int(2)
    [2]=>
    int(3)
  }
}


Подсчитывает количество элементов в двусвязном списке

  • « SplDoublyLinkedList::__construct
  • SplDoublyLinkedList::current »
  • PHP Manual
  • SplDoublyLinkedList
  • Подсчитывает количество элементов в двусвязном списке

SplDoublyLinkedList::count

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::count — Подсчитывает количество элементов в двусвязном списке

Описание

public SplDoublyLinkedList::count ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество элементов в двусвязном списке.


Возвращает текущий элемент массива

  • « SplDoublyLinkedList::count
  • SplDoublyLinkedList::getIteratorMode »
  • PHP Manual
  • SplDoublyLinkedList
  • Возвращает текущий элемент массива

SplDoublyLinkedList::current

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::current — Возвращает текущий элемент массива

Описание

public SplDoublyLinkedList::current ( void ) : mixed

Получает текущий узел двусвязного списка.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение текущего узла.


Возвращает режим итерации

  • « SplDoublyLinkedList::current
  • SplDoublyLinkedList::isEmpty »
  • PHP Manual
  • SplDoublyLinkedList
  • Возвращает режим итерации

SplDoublyLinkedList::getIteratorMode

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::getIteratorMode — Возвращает режим итерации

Описание

public SplDoublyLinkedList::getIteratorMode ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает различные режимы и флаги, влияющие на итерацию.


Проверяет, является ли двусвязный список пустым

  • « SplDoublyLinkedList::getIteratorMode
  • SplDoublyLinkedList::key »
  • PHP Manual
  • SplDoublyLinkedList
  • Проверяет, является ли двусвязный список пустым

SplDoublyLinkedList::isEmpty

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::isEmpty — Проверяет, является ли двусвязный список пустым

Описание

public SplDoublyLinkedList::isEmpty ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает результат проверки двусвязного списка на пустоту.


Возвращает индекс текущего узла

  • « SplDoublyLinkedList::isEmpty
  • SplDoublyLinkedList::next »
  • PHP Manual
  • SplDoublyLinkedList
  • Возвращает индекс текущего узла

SplDoublyLinkedList::key

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::key — Возвращает индекс текущего узла

Описание

public SplDoublyLinkedList::key ( void ) : mixed

Возвращает индекс текущего узла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Индекс текущего узла.


Перемещает итератор к следующему элементу

  • « SplDoublyLinkedList::key
  • SplDoublyLinkedList::offsetExists »
  • PHP Manual
  • SplDoublyLinkedList
  • Перемещает итератор к следующему элементу

SplDoublyLinkedList::next

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::next — Перемещает итератор к следующему элементу

Описание

public SplDoublyLinkedList::next ( void ) : void

Перемещает итератор к следующему узлу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Проверяет, существует ли запрашиваемый индекс

  • « SplDoublyLinkedList::next
  • SplDoublyLinkedList::offsetGet »
  • PHP Manual
  • SplDoublyLinkedList
  • Проверяет, существует ли запрашиваемый индекс

SplDoublyLinkedList::offsetExists

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::offsetExists — Проверяет, существует ли запрашиваемый индекс

Описание

public SplDoublyLinkedList::offsetExists ( mixed $index ) : bool

Список параметров

index

Проверяемый индекс.

Возвращаемые значения

TRUE, если запрашиваемый индекс index существует, в противном случае FALSE


Возвращает значение по указанному индексу

  • « SplDoublyLinkedList::offsetExists
  • SplDoublyLinkedList::offsetSet »
  • PHP Manual
  • SplDoublyLinkedList
  • Возвращает значение по указанному индексу

SplDoublyLinkedList::offsetGet

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::offsetGet — Возвращает значение по указанному индексу

Описание

public SplDoublyLinkedList::offsetGet ( mixed $index ) : mixed

Список параметров

index

Индекс.

Возвращаемые значения

Значение указанного индекса index.

Ошибки

Выбрасывает исключение OutOfRangeException, когда index выходит за границы, или когда index не может быть представлен в виде целого числа.


Устанавливает значение по заданному индексу $index в $newval

  • « SplDoublyLinkedList::offsetGet
  • SplDoublyLinkedList::offsetUnset »
  • PHP Manual
  • SplDoublyLinkedList
  • Устанавливает значение по заданному индексу $index в $newval

SplDoublyLinkedList::offsetSet

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::offsetSet — Устанавливает значение по заданному индексу $index в $newval

Описание

public SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval ) : void

Устанавливает значение по заданному индексу index в newval.

Список параметров

index

Индекс.

newval

Новое значение для индекса index.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение OutOfRangeException, когда index выходит за границы, или когда index не может быть представлен в виде целого числа.


Удаляет значение по указанному индексу $index

  • « SplDoublyLinkedList::offsetSet
  • SplDoublyLinkedList::pop »
  • PHP Manual
  • SplDoublyLinkedList
  • Удаляет значение по указанному индексу $index

SplDoublyLinkedList::offsetUnset

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::offsetUnset — Удаляет значение по указанному индексу $index

Описание

public SplDoublyLinkedList::offsetUnset ( mixed $index ) : void

Удаляет значение по указанному индексу.

Список параметров

index

Индекс, для которого удаляется значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение OutOfRangeException, когда index выходит за границы, или когда index не может быть представлен в виде целого числа.


Удаляет (выталкивает) узел, находящийся в конце двусвязного списка

  • « SplDoublyLinkedList::offsetUnset
  • SplDoublyLinkedList::prev »
  • PHP Manual
  • SplDoublyLinkedList
  • Удаляет (выталкивает) узел, находящийся в конце двусвязного списка

SplDoublyLinkedList::pop

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::pop — Удаляет (выталкивает) узел, находящийся в конце двусвязного списка

Описание

public SplDoublyLinkedList::pop ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение удаленного узла.

Ошибки

Выбрасывает исключение RuntimeException, когда структура данных пуста.


Перемещает итератор к предыдущему элементу

  • « SplDoublyLinkedList::pop
  • SplDoublyLinkedList::push »
  • PHP Manual
  • SplDoublyLinkedList
  • Перемещает итератор к предыдущему элементу

SplDoublyLinkedList::prev

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::prev — Перемещает итератор к предыдущему элементу

Описание

public SplDoublyLinkedList::prev ( void ) : void

Перемещает итератор к предыдущему узлу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Помещает элемент в конец двусвязного списка

  • « SplDoublyLinkedList::prev
  • SplDoublyLinkedList::rewind »
  • PHP Manual
  • SplDoublyLinkedList
  • Помещает элемент в конец двусвязного списка

SplDoublyLinkedList::push

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::push — Помещает элемент в конец двусвязного списка

Описание

public SplDoublyLinkedList::push ( mixed $value ) : void

Помещает value в конец двусвязного списка.

Список параметров

value

Значения для добавления.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает итератор в начало

  • « SplDoublyLinkedList::push
  • SplDoublyLinkedList::serialize »
  • PHP Manual
  • SplDoublyLinkedList
  • Возвращает итератор в начало

SplDoublyLinkedList::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::rewind — Возвращает итератор в начало

Описание

public SplDoublyLinkedList::rewind ( void ) : void

Возвращает итератор в начало.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Сериализует хранилище

  • « SplDoublyLinkedList::rewind
  • SplDoublyLinkedList::setIteratorMode »
  • PHP Manual
  • SplDoublyLinkedList
  • Сериализует хранилище

SplDoublyLinkedList::serialize

(PHP 5 >= 5.4.0, PHP 7)

SplDoublyLinkedList::serialize — Сериализует хранилище

Описание

public SplDoublyLinkedList::serialize ( void ) : string

Сериализует хранилище.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сериализованная строка.

Смотрите также

  • SplDoublyLinkedList::unserialize() - Десериализует хранилище


Устанавливает режим итерации

  • « SplDoublyLinkedList::serialize
  • SplDoublyLinkedList::shift »
  • PHP Manual
  • SplDoublyLinkedList
  • Устанавливает режим итерации

SplDoublyLinkedList::setIteratorMode

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::setIteratorMode — Устанавливает режим итерации

Описание

public SplDoublyLinkedList::setIteratorMode ( int $mode ) : void

Список параметров

mode

Существуют два ортогональных набора режимов, которые могут быть установлены:

  • Направление итерации (одно из двух):
    • SplDoublyLinkedList::IT_MODE_LIFO (Стек)
    • SplDoublyLinkedList::IT_MODE_FIFO (Очередь)
  • Поведение итератора (одно из двух):
    • SplDoublyLinkedList::IT_MODE_DELETE (Элементы удаляются итератором)
    • SplDoublyLinkedList::IT_MODE_KEEP (Итератор обходит элементы, не удаляя их)

По умолчанию используется режим: SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_KEEP

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Удаляет узел, находящийся в начале двусвязного списка

  • « SplDoublyLinkedList::setIteratorMode
  • SplDoublyLinkedList::top »
  • PHP Manual
  • SplDoublyLinkedList
  • Удаляет узел, находящийся в начале двусвязного списка

SplDoublyLinkedList::shift

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::shift — Удаляет узел, находящийся в начале двусвязного списка

Описание

public SplDoublyLinkedList::shift ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение удаленного узла.

Ошибки

Выбрасывает исключение RuntimeException, когда структура данных пуста.


Получает узел, находящийся в конце двусвязного списка

  • « SplDoublyLinkedList::shift
  • SplDoublyLinkedList::unserialize »
  • PHP Manual
  • SplDoublyLinkedList
  • Получает узел, находящийся в конце двусвязного списка

SplDoublyLinkedList::top

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::top — Получает узел, находящийся в конце двусвязного списка

Описание

public SplDoublyLinkedList::top ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение последнего узла.

Ошибки

Выбрасывает исключение RuntimeException, когда структура данных пуста.


Десериализует хранилище

  • « SplDoublyLinkedList::top
  • SplDoublyLinkedList::unshift »
  • PHP Manual
  • SplDoublyLinkedList
  • Десериализует хранилище

SplDoublyLinkedList::unserialize

(PHP 5 >= 5.4.0, PHP 7)

SplDoublyLinkedList::unserialize — Десериализует хранилище

Описание

public SplDoublyLinkedList::unserialize ( string $serialized ) : void

Десериализует хранилище из строкового представления, полученного с помощью SplDoublyLinkedList::serialize().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

serialized

Сериализованная строка.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SplDoublyLinkedList::serialize() - Сериализует хранилище


Вставляет элемент в начало двусвязного списка

  • « SplDoublyLinkedList::unserialize
  • SplDoublyLinkedList::valid »
  • PHP Manual
  • SplDoublyLinkedList
  • Вставляет элемент в начало двусвязного списка

SplDoublyLinkedList::unshift

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::unshift — Вставляет элемент в начало двусвязного списка

Описание

public SplDoublyLinkedList::unshift ( mixed $value ) : void

Вставляет value в начало двусвязного списка.

Список параметров

value

Значение, добавляемое в начало.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Проверяет, содержит ли узлы двусвязный список

  • « SplDoublyLinkedList::unshift
  • SplStack »
  • PHP Manual
  • SplDoublyLinkedList
  • Проверяет, содержит ли узлы двусвязный список

SplDoublyLinkedList::valid

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::valid — Проверяет, содержит ли узлы двусвязный список

Описание

public SplDoublyLinkedList::valid ( void ) : bool

Проверяет, содержит ли еще узлы двусвязный список.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если двусвязный список содержит узлы после текущего указателя, FALSE в противном случае.


Класс SplStack

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplStack предоставляет основные функциональные возможности стека, реализованные с использованием двусвязного списка.

Обзор классов

SplStack extends SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
/* Методы */
__construct ( void )
setIteratorMode ( int $mode ) : void
/* Наследуемые методы */
public SplDoublyLinkedList::add ( mixed $index , mixed $newval ) : void
public SplDoublyLinkedList::bottom ( void ) : mixed
public SplDoublyLinkedList::count ( void ) : int
public SplDoublyLinkedList::current ( void ) : mixed
public SplDoublyLinkedList::getIteratorMode ( void ) : int
public SplDoublyLinkedList::isEmpty ( void ) : bool
public SplDoublyLinkedList::key ( void ) : mixed
public SplDoublyLinkedList::next ( void ) : void
public SplDoublyLinkedList::offsetExists ( mixed $index ) : bool
public SplDoublyLinkedList::offsetGet ( mixed $index ) : mixed
public SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval ) : void
public SplDoublyLinkedList::offsetUnset ( mixed $index ) : void
public SplDoublyLinkedList::pop ( void ) : mixed
public SplDoublyLinkedList::prev ( void ) : void
public SplDoublyLinkedList::push ( mixed $value ) : void
public SplDoublyLinkedList::rewind ( void ) : void
public SplDoublyLinkedList::serialize ( void ) : string
public SplDoublyLinkedList::setIteratorMode ( int $mode ) : void
public SplDoublyLinkedList::shift ( void ) : mixed
public SplDoublyLinkedList::top ( void ) : mixed
public SplDoublyLinkedList::unserialize ( string $serialized ) : void
public SplDoublyLinkedList::unshift ( mixed $value ) : void
public SplDoublyLinkedList::valid ( void ) : bool
}

Содержание

  • SplStack::__construct — Создает новый стек, реализованный с использованием двусвязного списка
  • SplStack::setIteratorMode — Устанавливает режим итератора


Создает новый стек, реализованный с использованием двусвязного списка

  • « SplStack
  • SplStack::setIteratorMode »
  • PHP Manual
  • SplStack
  • Создает новый стек, реализованный с использованием двусвязного списка

SplStack::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplStack::__construct — Создает новый стек, реализованный с использованием двусвязного списка

Описание

SplStack::__construct ( void )

Создаёт новый пустой стек.

Замечание:

Метод автоматически устанавливает режим итератора SplDoublyLinkedList::IT_MODE_LIFO.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplStack::__construct()

<?php
$q = new SplStack();

$q[] = 1;
$q[] = 2;
$q[] = 3;

foreach ($q as $elem)  {
 echo $elem."\n";
}
?>

Результат выполнения данного примера:

3
2
1


Устанавливает режим итератора

  • « SplStack::__construct
  • SplQueue »
  • PHP Manual
  • SplStack
  • Устанавливает режим итератора

SplStack::setIteratorMode

(PHP 5 >= 5.3.0, PHP 7)

SplStack::setIteratorMode — Устанавливает режим итератора

Описание

SplStack::setIteratorMode ( int $mode ) : void

Список параметров

mode

Можно изменить только один параметр итератора.

  • Поведение итератора (либо одно, либо другое):
    • SplDoublyLinkedList::IT_MODE_DELETE (Элементы удаляются итератором)
    • SplDoublyLinkedList::IT_MODE_KEEP (Итератор обходит элементы, не удаляя их)

По умолчанию используется режим 0x2 : SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyLinkedList::IT_MODE_KEEP

Внимание

Направление итерации не может быть изменено для объектов SplStack. Попытка сделать это приведет к тому, что будет выброшено RuntimeException.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс SplQueue

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplQueue предоставляет основные функциональные возможности очереди, реализованные с использованием двусвязного списка.

Обзор классов

SplQueue extends SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
/* Методы */
__construct ( void )
dequeue ( void ) : mixed
enqueue ( mixed $value ) : void
setIteratorMode ( int $mode ) : void
/* Наследуемые методы */
public SplDoublyLinkedList::add ( mixed $index , mixed $newval ) : void
public SplDoublyLinkedList::bottom ( void ) : mixed
public SplDoublyLinkedList::count ( void ) : int
public SplDoublyLinkedList::current ( void ) : mixed
public SplDoublyLinkedList::getIteratorMode ( void ) : int
public SplDoublyLinkedList::isEmpty ( void ) : bool
public SplDoublyLinkedList::key ( void ) : mixed
public SplDoublyLinkedList::next ( void ) : void
public SplDoublyLinkedList::offsetExists ( mixed $index ) : bool
public SplDoublyLinkedList::offsetGet ( mixed $index ) : mixed
public SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval ) : void
public SplDoublyLinkedList::offsetUnset ( mixed $index ) : void
public SplDoublyLinkedList::pop ( void ) : mixed
public SplDoublyLinkedList::prev ( void ) : void
public SplDoublyLinkedList::push ( mixed $value ) : void
public SplDoublyLinkedList::rewind ( void ) : void
public SplDoublyLinkedList::serialize ( void ) : string
public SplDoublyLinkedList::setIteratorMode ( int $mode ) : void
public SplDoublyLinkedList::shift ( void ) : mixed
public SplDoublyLinkedList::top ( void ) : mixed
public SplDoublyLinkedList::unserialize ( string $serialized ) : void
public SplDoublyLinkedList::unshift ( mixed $value ) : void
public SplDoublyLinkedList::valid ( void ) : bool
}

Содержание

  • SplQueue::__construct — Создает новую очередь, реализованную с использованием двусвязного списка
  • SplQueue::dequeue — Удаляет элемент из очереди
  • SplQueue::enqueue — Добавляет элемент в очередь
  • SplQueue::setIteratorMode — Устанавливает режим итератора


Создает новую очередь, реализованную с использованием двусвязного списка

  • « SplQueue
  • SplQueue::dequeue »
  • PHP Manual
  • SplQueue
  • Создает новую очередь, реализованную с использованием двусвязного списка

SplQueue::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplQueue::__construct — Создает новую очередь, реализованную с использованием двусвязного списка

Описание

SplQueue::__construct ( void )

Создаёт новую пустую очередь.

Замечание:

Метод автоматически устанавливает режим итератора SplDoublyLinkedList::IT_MODE_FIFO.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplQueue::__construct()

<?php
$q = new SplQueue();

$q[] = 1;
$q[] = 2;
$q[] = 3;

foreach ($q as $elem)  {
 echo $elem."\n";
}
?>

Результат выполнения данного примера:

1
2
3

Пример #2 Эффективная обработка задач с помощью SplQueue

<?php
$q = new SplQueue();
$q->setIteratorMode(SplQueue::IT_MODE_DELETE);

// ... поставить несколько задач в очередь ...

// обработать их
foreach ($q as $task) {
    // ... обработать $task ...

    // добавить новые задачи в очередь
    $q[] = $newTask;
    // ...
}
?>


Удаляет элемент из очереди

  • « SplQueue::__construct
  • SplQueue::enqueue »
  • PHP Manual
  • SplQueue
  • Удаляет элемент из очереди

SplQueue::dequeue

(PHP 5 >= 5.3.0, PHP 7)

SplQueue::dequeue — Удаляет элемент из очереди

Описание

SplQueue::dequeue ( void ) : mixed

Удаляет value из начала очереди.

Замечание:

SplQueue::dequeue() - псевдоним SplDoublyLinkedList::shift().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение удаленного из очереди элемента.


Добавляет элемент в очередь

  • « SplQueue::dequeue
  • SplQueue::setIteratorMode »
  • PHP Manual
  • SplQueue
  • Добавляет элемент в очередь

SplQueue::enqueue

(PHP 5 >= 5.3.0, PHP 7)

SplQueue::enqueue — Добавляет элемент в очередь

Описание

SplQueue::enqueue ( mixed $value ) : void

Добавляет value в конец очереди.

Замечание:

SplQueue::enqueue() - псевдоним SplDoublyLinkedList::push().

Список параметров

value

Значение для постановки в очередь.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает режим итератора

  • « SplQueue::enqueue
  • SplHeap »
  • PHP Manual
  • SplQueue
  • Устанавливает режим итератора

SplQueue::setIteratorMode

(PHP 5 >= 5.3.0, PHP 7)

SplQueue::setIteratorMode — Устанавливает режим итератора

Описание

SplQueue::setIteratorMode ( int $mode ) : void

Список параметров

mode

Можно изменить только один параметр итератора.

  • Поведение итератора (либо одно, либо другое):
    • SplDoublyLinkedList::IT_MODE_DELETE (Элементы удаляются итератором)
    • SplDoublyLinkedList::IT_MODE_KEEP (Итератор обходит элементы, не удаляя их)

По умолчанию используется режим: SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_KEEP

Внимание

Направление итерации не может быть изменено для объектов SplQueue, оно всегда равно SplDoublyLinkedList::IT_MODE_FIFO.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает RuntimeException при попытке изменить направление итерации на отличное от SplDoublyLinkedList::IT_MODE_LIFO.


Класс SplHeap

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplHeap предоставляет основные функциональные возможности кучи.

Обзор классов

abstract SplHeap implements Iterator , Countable {
/* Методы */
public __construct ( void )
abstract protected compare ( mixed $value1 , mixed $value2 ) : int
public count ( void ) : int
public current ( void ) : mixed
public extract ( void ) : mixed
public insert ( mixed $value ) : void
public isCorrupted ( void ) : bool
public isEmpty ( void ) : bool
public key ( void ) : mixed
public next ( void ) : void
public recoverFromCorruption ( void ) : void
public rewind ( void ) : void
public top ( void ) : mixed
public valid ( void ) : bool
}

Содержание

  • SplHeap::compare — Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче
  • SplHeap::__construct — Создает новую пустую кучу
  • SplHeap::count — Определяет количество элементов в куче
  • SplHeap::current — Возвращает текущий узел, на который указывает итератор
  • SplHeap::extract — Извлекает узел из кучи и пересортирует ее
  • SplHeap::insert — Вставляет элемент в кучу и пересортирует ее
  • SplHeap::isCorrupted — Указывает, находится ли куча в поврежденном состоянии
  • SplHeap::isEmpty — Проверка, пуста ли куча
  • SplHeap::key — Возвращает индекс текущего узла
  • SplHeap::next — Переход к следующему узлу
  • SplHeap::recoverFromCorruption — Восстанавливает корректное состояние кучи
  • SplHeap::rewind — Перевод итератора на начало
  • SplHeap::top — Возвращает узел, находящийся на вершине кучи
  • SplHeap::valid — Проверяет, содержит ли куча еще элементы


Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

  • « SplHeap
  • SplHeap::__construct »
  • PHP Manual
  • SplHeap
  • Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

SplHeap::compare

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::compare — Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

Описание

abstract protected SplHeap::compare ( mixed $value1 , mixed $value2 ) : int

Сравнивает value1 с value2.

Внимание

Выбрасывание исключений в методе SplHeap::compare() может нарушить целостность кучи и перевести ее в заблокированное состояние. Разблокировать кучу можно методом SplHeap::recoverFromCorruption(). Однако, некоторые элементы могут быть помещены некорректно, что нарушит сортировку внутри кучи.

Список параметров

value1

Значение первого сравниваемого узла.

value2

Значение второго сравниваемого узла.

Возвращаемые значения

Метод должен возвращать положительное значение, когда value1 больше value2, 0 если они равны, и отрицательное в остальных случаях.

Замечание:

Помещению в кучу одинаковых элементов нежелательно, так как невозможно будет отследить точное положение конкретного элемента.


Создает новую пустую кучу

  • « SplHeap::compare
  • SplHeap::count »
  • PHP Manual
  • SplHeap
  • Создает новую пустую кучу

SplHeap::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::__construct — Создает новую пустую кучу

Описание

public SplHeap::__construct ( void )

Создает новую пустую кучу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Определяет количество элементов в куче

  • « SplHeap::__construct
  • SplHeap::current »
  • PHP Manual
  • SplHeap
  • Определяет количество элементов в куче

SplHeap::count

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::count — Определяет количество элементов в куче

Описание

public SplHeap::count ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество элементов в куче.


Возвращает текущий узел, на который указывает итератор

  • « SplHeap::count
  • SplHeap::extract »
  • PHP Manual
  • SplHeap
  • Возвращает текущий узел, на который указывает итератор

SplHeap::current

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::current — Возвращает текущий узел, на который указывает итератор

Описание

public SplHeap::current ( void ) : mixed

Получает текущий элемент, представляющий собой структуру данных.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущее значение узла.


Извлекает узел из кучи и пересортирует ее

  • « SplHeap::current
  • SplHeap::insert »
  • PHP Manual
  • SplHeap
  • Извлекает узел из кучи и пересортирует ее

SplHeap::extract

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::extract — Извлекает узел из кучи и пересортирует ее

Описание

public SplHeap::extract ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение извлеченного узла.

Ошибки

Если структура данных узла окажется пустой, будет выброшено исключение RuntimeException.


Вставляет элемент в кучу и пересортирует ее

  • « SplHeap::extract
  • SplHeap::isCorrupted »
  • PHP Manual
  • SplHeap
  • Вставляет элемент в кучу и пересортирует ее

SplHeap::insert

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::insert — Вставляет элемент в кучу и пересортирует ее

Описание

public SplHeap::insert ( mixed $value ) : void

Вставляет value в кучу.

Список параметров

value

Значение, которое требуется вставить.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Указывает, находится ли куча в поврежденном состоянии

  • « SplHeap::insert
  • SplHeap::isEmpty »
  • PHP Manual
  • SplHeap
  • Указывает, находится ли куча в поврежденном состоянии

SplHeap::isCorrupted

(PHP 7)

SplHeap::isCorrupted — Указывает, находится ли куча в поврежденном состоянии

Описание

public SplHeap::isCorrupted ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если куча в поврежденном состоянии, FALSE в противном случае.


Проверка, пуста ли куча

  • « SplHeap::isCorrupted
  • SplHeap::key »
  • PHP Manual
  • SplHeap
  • Проверка, пуста ли куча

SplHeap::isEmpty

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::isEmpty — Проверка, пуста ли куча

Описание

public SplHeap::isEmpty ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Определяет, есть ли в куче элементы.


Возвращает индекс текущего узла

  • « SplHeap::isEmpty
  • SplHeap::next »
  • PHP Manual
  • SplHeap
  • Возвращает индекс текущего узла

SplHeap::key

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::key — Возвращает индекс текущего узла

Описание

public SplHeap::key ( void ) : mixed

Возвращает индекс текущего узла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Индекс текущего узла.


Переход к следующему узлу

  • « SplHeap::key
  • SplHeap::recoverFromCorruption »
  • PHP Manual
  • SplHeap
  • Переход к следующему узлу

SplHeap::next

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::next — Переход к следующему узлу

Описание

public SplHeap::next ( void ) : void

Переход к следующему узлу. Также удалит узел на вершине кучи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Восстанавливает корректное состояние кучи

  • « SplHeap::next
  • SplHeap::rewind »
  • PHP Manual
  • SplHeap
  • Восстанавливает корректное состояние кучи

SplHeap::recoverFromCorruption

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::recoverFromCorruption — Восстанавливает корректное состояние кучи

Описание

public SplHeap::recoverFromCorruption ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Перевод итератора на начало

  • « SplHeap::recoverFromCorruption
  • SplHeap::top »
  • PHP Manual
  • SplHeap
  • Перевод итератора на начало

SplHeap::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::rewind — Перевод итератора на начало

Описание

public SplHeap::rewind ( void ) : void

Метод переводит итератор на начало кучи. На самом деле итератор является виртуальным и никуда не двигается с вершины кучи. Так что никаких операций над данными этот метод не совершает.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает узел, находящийся на вершине кучи

  • « SplHeap::rewind
  • SplHeap::valid »
  • PHP Manual
  • SplHeap
  • Возвращает узел, находящийся на вершине кучи

SplHeap::top

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::top — Возвращает узел, находящийся на вершине кучи

Описание

public SplHeap::top ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Узел, находящийся на вершине кучи.

Ошибки

Если структура данных узла окажется пустой, будет выброшено исключение RuntimeException.


Проверяет, содержит ли куча еще элементы

  • « SplHeap::top
  • SplMaxHeap »
  • PHP Manual
  • SplHeap
  • Проверяет, содержит ли куча еще элементы

SplHeap::valid

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::valid — Проверяет, содержит ли куча еще элементы

Описание

public SplHeap::valid ( void ) : bool

Проверяет, содержит ли куча еще элементы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если элементы в куче еще есть, FALSE в противном случае.


Класс SplMaxHeap

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplMaxHeap предоставляет основные функциональные возможности кучи, сохраняя максимальный элемент наверху.

Обзор классов

SplMaxHeap extends SplHeap implements Iterator , Countable {
/* Методы */
protected compare ( mixed $value1 , mixed $value2 ) : int
/* Наследуемые методы */
abstract protected SplHeap::compare ( mixed $value1 , mixed $value2 ) : int
public SplHeap::count ( void ) : int
public SplHeap::current ( void ) : mixed
public SplHeap::extract ( void ) : mixed
public SplHeap::insert ( mixed $value ) : void
public SplHeap::isCorrupted ( void ) : bool
public SplHeap::isEmpty ( void ) : bool
public SplHeap::key ( void ) : mixed
public SplHeap::next ( void ) : void
public SplHeap::recoverFromCorruption ( void ) : void
public SplHeap::rewind ( void ) : void
public SplHeap::top ( void ) : mixed
public SplHeap::valid ( void ) : bool
}

Содержание

  • SplMaxHeap::compare — Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче


Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

  • « SplMaxHeap
  • SplMinHeap »
  • PHP Manual
  • SplMaxHeap
  • Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

SplMaxHeap::compare

(PHP 5 >= 5.3.0, PHP 7)

SplMaxHeap::compare — Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

Описание

protected SplMaxHeap::compare ( mixed $value1 , mixed $value2 ) : int

Сравнивает value1 с value2.

Список параметров

value1

Значение первого сравниваемого узла.

value2

Значение второго сравниваемого узла.

Возвращаемые значения

Метод возвращает положительное значение, когда value1 больше value2, 0 если они равны, и отрицательное в остальных случаях.

Замечание:

Наличие нескольких элементов с одинаковым значением в куче не рекомендуется, так как невозможно будет отследить точное положение конкретного элемента.


Класс SplMinHeap

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplMinHeap предоставляет основные функциональные возможности кучи, сохраняя минимальный элемент наверху.

Обзор классов

SplMinHeap extends SplHeap implements Iterator , Countable {
/* Методы */
protectedcompare ( mixed $value1 , mixed $value2 ) : int
/* Наследуемые методы */
abstract protected SplHeap::compare ( mixed $value1 , mixed $value2 ) : int
public SplHeap::count ( void ) : int
public SplHeap::current ( void ) : mixed
public SplHeap::extract ( void ) : mixed
public SplHeap::insert ( mixed $value ) : void
public SplHeap::isCorrupted ( void ) : bool
public SplHeap::isEmpty ( void ) : bool
public SplHeap::key ( void ) : mixed
public SplHeap::next ( void ) : void
public SplHeap::recoverFromCorruption ( void ) : void
public SplHeap::rewind ( void ) : void
public SplHeap::top ( void ) : mixed
public SplHeap::valid ( void ) : bool
}

Содержание

  • SplMinHeap::compare — Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче


Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

  • « SplMinHeap
  • SplPriorityQueue »
  • PHP Manual
  • SplMinHeap
  • Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

SplMinHeap::compare

(PHP 5 >= 5.3.0, PHP 7)

SplMinHeap::compare — Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

Описание

protectedSplMinHeap::compare ( mixed $value1 , mixed $value2 ) : int

Сравнивает value1 с value2.

Список параметров

value1

Значение первого сравниваемого узла.

value2

Значение второго сравниваемого узла.

Возвращаемые значения

Метод возвращает положительное значение, когда value1 больше value2, 0 если они равны, и отрицательное в остальных случаях.

Замечание:

Наличие нескольких элементов с одинаковым значением в куче не рекомендуется, так как невозможно будет отследить точное положение конкретного элемента.


Класс SplPriorityQueue

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplPriorityQueue обеспечивает основные функциональные возможности приоритетной очереди, реализованный при помощи кучи с максимальным элементом наверху (max-heap).

Замечание: Порядок элементов с одинаковым приоритетом неопределен. Он может отличаться от порядка, в котором элементы были вставлены.

Обзор классов

SplPriorityQueue implements Iterator , Countable {
/* Методы */
public __construct ( void )
public compare ( mixed $priority1 , mixed $priority2 ) : int
public count ( void ) : int
public current ( void ) : mixed
public extract ( void ) : mixed
public getExtractFlags ( void ) : int
public insert ( mixed $value , mixed $priority ) : bool
public isCorrupted ( void ) : bool
public isEmpty ( void ) : bool
public key ( void ) : mixed
public next ( void ) : void
public recoverFromCorruption ( void ) : void
public rewind ( void ) : void
public setExtractFlags ( int $flags ) : void
public top ( void ) : mixed
public valid ( void ) : bool
}

Содержание

  • SplPriorityQueue::compare — Сравнивает приоритеты для корректного помещения элементов в очередь
  • SplPriorityQueue::__construct — Создает новую пустую очередь
  • SplPriorityQueue::count — Производит подсчет элементов в очереди
  • SplPriorityQueue::current — Возвращает текущий узел, на который указывает итератор
  • SplPriorityQueue::extract — Извлекает узел из начала очереди и пересортирует ее
  • SplPriorityQueue::getExtractFlags — Получить флаги извлечения
  • SplPriorityQueue::insert — Добавляет элемент в очередь и пересортирует ее
  • SplPriorityQueue::isCorrupted — Указывает, находится ли приоритетная очередь в поврежденном состоянии
  • SplPriorityQueue::isEmpty — Проверяет, является ли очередь пустой
  • SplPriorityQueue::key — Возвращает индекс текущего узла
  • SplPriorityQueue::next — Переход к следующему узлу
  • SplPriorityQueue::recoverFromCorruption — Восстанавливает корректное состояние очереди
  • SplPriorityQueue::rewind — Переводит итератор на начало очереди
  • SplPriorityQueue::setExtractFlags — Задает режим извлечения узлов
  • SplPriorityQueue::top — Возвращает узел, находящийся в начале очереди
  • SplPriorityQueue::valid — Проверяет, есть ли в очереди еще элементы


Сравнивает приоритеты для корректного помещения элементов в очередь

  • « SplPriorityQueue
  • SplPriorityQueue::__construct »
  • PHP Manual
  • SplPriorityQueue
  • Сравнивает приоритеты для корректного помещения элементов в очередь

SplPriorityQueue::compare

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::compare — Сравнивает приоритеты для корректного помещения элементов в очередь

Описание

public SplPriorityQueue::compare ( mixed $priority1 , mixed $priority2 ) : int

Сравнивает priority1 с priority2.

Список параметров

priority1

Приоритет первого узла.

priority2

Приоритет второго узла.

Возвращаемые значения

Результат сравнения, положительное число, когда priority1 больше priority2, 0 если они равны, и отрицательное число в остальных случаях.

Замечание:

При добавлении нескольких элементов с одинаковым приоритетом точный порядок следования этих элементов в очереди не определен.


Создает новую пустую очередь

  • « SplPriorityQueue::compare
  • SplPriorityQueue::count »
  • PHP Manual
  • SplPriorityQueue
  • Создает новую пустую очередь

SplPriorityQueue::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::__construct — Создает новую пустую очередь

Описание

public SplPriorityQueue::__construct ( void )

Создает новую пустую очередь.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Производит подсчет элементов в очереди

  • « SplPriorityQueue::__construct
  • SplPriorityQueue::current »
  • PHP Manual
  • SplPriorityQueue
  • Производит подсчет элементов в очереди

SplPriorityQueue::count

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::count — Производит подсчет элементов в очереди

Описание

public SplPriorityQueue::count ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество элементов в очереди.


Возвращает текущий узел, на который указывает итератор

  • « SplPriorityQueue::count
  • SplPriorityQueue::extract »
  • PHP Manual
  • SplPriorityQueue
  • Возвращает текущий узел, на который указывает итератор

SplPriorityQueue::current

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::current — Возвращает текущий узел, на который указывает итератор

Описание

public SplPriorityQueue::current ( void ) : mixed

Возвращает структуру данных текущего узла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение или приоритет (или и то, и другое) текущего узла в зависимости от заданного флага.


Извлекает узел из начала очереди и пересортирует ее

  • « SplPriorityQueue::current
  • SplPriorityQueue::getExtractFlags »
  • PHP Manual
  • SplPriorityQueue
  • Извлекает узел из начала очереди и пересортирует ее

SplPriorityQueue::extract

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::extract — Извлекает узел из начала очереди и пересортирует ее

Описание

public SplPriorityQueue::extract ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение или приоритет (или и то, и другое) текущего узла в зависимости от заданного флага.


Получить флаги извлечения

  • « SplPriorityQueue::extract
  • SplPriorityQueue::insert »
  • PHP Manual
  • SplPriorityQueue
  • Получить флаги извлечения

SplPriorityQueue::getExtractFlags

(PHP 7)

SplPriorityQueue::getExtractFlags — Получить флаги извлечения

Описание

public SplPriorityQueue::getExtractFlags ( void ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Добавляет элемент в очередь и пересортирует ее

  • « SplPriorityQueue::getExtractFlags
  • SplPriorityQueue::isCorrupted »
  • PHP Manual
  • SplPriorityQueue
  • Добавляет элемент в очередь и пересортирует ее

SplPriorityQueue::insert

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::insert — Добавляет элемент в очередь и пересортирует ее

Описание

public SplPriorityQueue::insert ( mixed $value , mixed $priority ) : bool

Добавляет значение value с приоритетом priority в очередь.

Список параметров

value

Добавляемое значение.

priority

Приоритет значения.

Возвращаемые значения

Возвращает TRUE.


Указывает, находится ли приоритетная очередь в поврежденном состоянии

  • « SplPriorityQueue::insert
  • SplPriorityQueue::isEmpty »
  • PHP Manual
  • SplPriorityQueue
  • Указывает, находится ли приоритетная очередь в поврежденном состоянии

SplPriorityQueue::isCorrupted

(Информация о версии неизвестна, возможно, только в Git)

SplPriorityQueue::isCorrupted — Указывает, находится ли приоритетная очередь в поврежденном состоянии

Описание

public SplPriorityQueue::isCorrupted ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если состояние приоритетной очереди повреждено, и FALSE в противном случае.


Проверяет, является ли очередь пустой

  • « SplPriorityQueue::isCorrupted
  • SplPriorityQueue::key »
  • PHP Manual
  • SplPriorityQueue
  • Проверяет, является ли очередь пустой

SplPriorityQueue::isEmpty

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::isEmpty — Проверяет, является ли очередь пустой

Описание

public SplPriorityQueue::isEmpty ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает результат проверки очереди на пустоту.


Возвращает индекс текущего узла

  • « SplPriorityQueue::isEmpty
  • SplPriorityQueue::next »
  • PHP Manual
  • SplPriorityQueue
  • Возвращает индекс текущего узла

SplPriorityQueue::key

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::key — Возвращает индекс текущего узла

Описание

public SplPriorityQueue::key ( void ) : mixed

Возвращает индекс текущего узла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Индекс текущего узла.


Переход к следующему узлу

  • « SplPriorityQueue::key
  • SplPriorityQueue::recoverFromCorruption »
  • PHP Manual
  • SplPriorityQueue
  • Переход к следующему узлу

SplPriorityQueue::next

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::next — Переход к следующему узлу

Описание

public SplPriorityQueue::next ( void ) : void

Переводит итератор на следующий узел.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Восстанавливает корректное состояние очереди

  • « SplPriorityQueue::next
  • SplPriorityQueue::rewind »
  • PHP Manual
  • SplPriorityQueue
  • Восстанавливает корректное состояние очереди

SplPriorityQueue::recoverFromCorruption

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::recoverFromCorruption — Восстанавливает корректное состояние очереди

Описание

public SplPriorityQueue::recoverFromCorruption ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Переводит итератор на начало очереди

  • « SplPriorityQueue::recoverFromCorruption
  • SplPriorityQueue::setExtractFlags »
  • PHP Manual
  • SplPriorityQueue
  • Переводит итератор на начало очереди

SplPriorityQueue::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::rewind — Переводит итератор на начало очереди

Описание

public SplPriorityQueue::rewind ( void ) : void

Переводит итератор на начало очереди.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Задает режим извлечения узлов

  • « SplPriorityQueue::rewind
  • SplPriorityQueue::top »
  • PHP Manual
  • SplPriorityQueue
  • Задает режим извлечения узлов

SplPriorityQueue::setExtractFlags

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::setExtractFlags — Задает режим извлечения узлов

Описание

public SplPriorityQueue::setExtractFlags ( int $flags ) : void

Список параметров

flags

Определяет, что будет извлекаться методами SplPriorityQueue::current(),
SplPriorityQueue::top() и
SplPriorityQueue::extract().

  • SplPriorityQueue::EXTR_DATA (0x00000001): Извлекать данные
  • SplPriorityQueue::EXTR_PRIORITY (0x00000002): Извлекать приоритет
  • SplPriorityQueue::EXTR_BOTH (0x00000003): Извлекать данные и приоритет в виде массива

По умолчанию работает режим SplPriorityQueue::EXTR_DATA.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает узел, находящийся в начале очереди

  • « SplPriorityQueue::setExtractFlags
  • SplPriorityQueue::valid »
  • PHP Manual
  • SplPriorityQueue
  • Возвращает узел, находящийся в начале очереди

SplPriorityQueue::top

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::top — Возвращает узел, находящийся в начале очереди

Описание

public SplPriorityQueue::top ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение или приоритет узла (или и то, и другое) в зависимости от установленного флага.


Проверяет, есть ли в очереди еще элементы

  • « SplPriorityQueue::top
  • SplFixedArray »
  • PHP Manual
  • SplPriorityQueue
  • Проверяет, есть ли в очереди еще элементы

SplPriorityQueue::valid

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::valid — Проверяет, есть ли в очереди еще элементы

Описание

public SplPriorityQueue::valid ( void ) : bool

Проверяет, есть ли в очереди еще элементы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если в очереди еще есть доступные элементы, и FALSE в противном случае.


Класс SplFixedArray

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplFixedArray обеспечивает базовую функциональность, предоставляемую массивами. Главное различие между SplFixedArray и обычным массивом PHP в том, что SplFixedArray имеет фиксированную длину, а в качестве индексов могут выступать только целочисленные значения. Преимущество данных ограничений заключается в меньшем использовании памяти, чем стандартный array.

Обзор классов

SplFixedArray implements Iterator , ArrayAccess , Countable {
/* Методы */
public __construct ([ int $size = 0 ] )
public count ( void ) : int
public current ( void ) : mixed
public static fromArray ( array $array [, bool $save_indexes = TRUE ] ) : SplFixedArray
public getSize ( void ) : int
public key ( void ) : int
public next ( void ) : void
public offsetExists ( int $index ) : bool
public offsetGet ( int $index ) : mixed
public offsetSet ( int $index , mixed $newval ) : void
public offsetUnset ( int $index ) : void
public rewind ( void ) : void
public setSize ( int $size ) : bool
public toArray ( void ) : array
public valid ( void ) : bool
public __wakeup ( void ) : void
}

Примеры

Пример #1 Пример использования SplFixedArray

<?php
// Инициализация массива фиксированной длиной
$array = new SplFixedArray(5);

$array[1] = 2;
$array[4] = "foo";

var_dump($array[0]); // NULL
var_dump($array[1]); // int(2)

var_dump($array["4"]); // string(3) "foo"

// Увеличение размера массива до 10
$array->setSize(10);

$array[9] = "asdf";

// Сокращаем размер массива до 2-х
$array->setSize(2);

// Следующий код вызывает исключение RuntimeException: Index invalid or out of range
try {
    var_dump($array["non-numeric"]);
} catch(RuntimeException $re) {
    echo "RuntimeException: ".$re->getMessage()."\n";
}

try {
    var_dump($array[-1]);
} catch(RuntimeException $re) {
    echo "RuntimeException: ".$re->getMessage()."\n";
}

try {
    var_dump($array[5]);
} catch(RuntimeException $re) {
    echo "RuntimeException: ".$re->getMessage()."\n";
}
?>

Результат выполнения данного примера:

NULL
int(2)
string(3) "foo"
RuntimeException: Index invalid or out of range
RuntimeException: Index invalid or out of range
RuntimeException: Index invalid or out of range

Содержание

  • SplFixedArray::__construct — Создает новый массив фиксированной длины
  • SplFixedArray::count — Возвращает размер массива
  • SplFixedArray::current — Возвращает текущий элемент массива
  • SplFixedArray::fromArray — Импортирует PHP-массив в объект класса SplFixedArray
  • SplFixedArray::getSize — Получает размер массива
  • SplFixedArray::key — Возвращает индекс текущего элемента массива
  • SplFixedArray::next — Переходит к следующему элементу массива
  • SplFixedArray::offsetExists — Возвращает факт наличия указанного индекса массива
  • SplFixedArray::offsetGet — Возвращает значение по указанному индексу
  • SplFixedArray::offsetSet — Устанавливает новое значение по заданному индексу
  • SplFixedArray::offsetUnset — Удаляет значение по индексу $index
  • SplFixedArray::rewind — Устанавливает итератор массива в начало
  • SplFixedArray::setSize — Изменяет размер массива
  • SplFixedArray::toArray — Возвращает обычный PHP-массив со значениями фиксированного массива
  • SplFixedArray::valid — Проверяет массив на наличие элементов
  • SplFixedArray::__wakeup — Переинициализация массива после десериализации


Создает новый массив фиксированной длины

  • « SplFixedArray
  • SplFixedArray::count »
  • PHP Manual
  • SplFixedArray
  • Создает новый массив фиксированной длины

SplFixedArray::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::__construct — Создает новый массив фиксированной длины

Описание

public SplFixedArray::__construct ([ int $size = 0 ] )

Создает фиксированный массив с числом NULL значений, равных size.

Список параметров

size

Размер фиксированного массива. Ожидается значение между 0 и PHP_INT_MAX.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение InvalidArgumentException, когда параметр size отрицателен.

Вызывает ошибку уровня E_WARNING, когда size нельзя распознать как число.

Примеры

Пример #1 Пример использования SplFixedArray::__construct()

<?php
$array = new SplFixedArray(5);

$array[1] = 2;
$array[4] = "foo";

foreach($array as $v) {
  var_dump($v);
}
?>

Результат выполнения данного примера:

NULL
int(2)
NULL
NULL
string(3) "foo"


Возвращает размер массива

  • « SplFixedArray::__construct
  • SplFixedArray::current »
  • PHP Manual
  • SplFixedArray
  • Возвращает размер массива

SplFixedArray::count

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::count — Возвращает размер массива

Описание

public SplFixedArray::count ( void ) : int

Возвращает размер массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер массива.

Примеры

Пример #1 Пример SplFixedArray::count()

<?php
$array = new SplFixedArray(5);
echo $array->count() . "\n";
echo count($array) . "\n";
?>

Результат выполнения данного примера:

5
5

Примечания

Замечание:

Этот метод эквивалентен SplFixedArray::getSize().

Замечание:

Число элементов всегда равно заданному размеру, т.к. все значения первоначально инициализируются как NULL.

Смотрите также

  • SplFixedArray::getSize() - Получает размер массива


Возвращает текущий элемент массива

  • « SplFixedArray::count
  • SplFixedArray::fromArray »
  • PHP Manual
  • SplFixedArray
  • Возвращает текущий элемент массива

SplFixedArray::current

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::current — Возвращает текущий элемент массива

Описание

public SplFixedArray::current ( void ) : mixed

Получает текущий элемент массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий элемент массива.

Ошибки

Выбрасывает исключение RuntimeException, когда внутренний указатель массива указывает на неверный индекс или вышел за допустимые пределы.


Импортирует PHP-массив в объект класса SplFixedArray

  • « SplFixedArray::current
  • SplFixedArray::getSize »
  • PHP Manual
  • SplFixedArray
  • Импортирует PHP-массив в объект класса SplFixedArray

SplFixedArray::fromArray

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::fromArray — Импортирует PHP-массив в объект класса SplFixedArray

Описание

public static SplFixedArray::fromArray ( array $array [, bool $save_indexes = TRUE ] ) : SplFixedArray

Импортирует PHP-массив array в новый объект класса SplFixedArray

Список параметров

array

Массив, который следует импортировать.

save_indexes

По возможности сохранить численные индексы, заданные в оригинальном массиве.

Возвращаемые значения

Возвращает объект класса SplFixedArray, содержащий данные из импортированного массива.

Примеры

Пример #1 Пример использования SplFixedArray::fromArray()

<?php
$fa = SplFixedArray::fromArray(array(1 => 1, 0 => 2, 3 => 3));

var_dump($fa);

$fa = SplFixedArray::fromArray(array(1 => 1, 0 => 2, 3 => 3), false);

var_dump($fa);
?>

Результат выполнения данного примера:

object(SplFixedArray)#1 (4) {
  [0]=>
  int(2)
  [1]=>
  int(1)
  [2]=>
  NULL
  [3]=>
  int(3)
}
object(SplFixedArray)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Получает размер массива

  • « SplFixedArray::fromArray
  • SplFixedArray::key »
  • PHP Manual
  • SplFixedArray
  • Получает размер массива

SplFixedArray::getSize

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::getSize — Получает размер массива

Описание

public SplFixedArray::getSize ( void ) : int

Получает размер массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер массива как integer.

Примеры

Пример #1 Пример использования SplFixedArray::getSize()

<?php
$array = new SplFixedArray(5);
echo $array->getSize()."\n";
$array->setSize(10);
echo $array->getSize()."\n";
?>

Результат выполнения данного примера:

5
10

Примечания

Замечание:

Данный метод эквивалентен SplFixedArray::count()

Смотрите также

  • SplFixedArray::count() - Возвращает размер массива


Возвращает индекс текущего элемента массива

  • « SplFixedArray::getSize
  • SplFixedArray::next »
  • PHP Manual
  • SplFixedArray
  • Возвращает индекс текущего элемента массива

SplFixedArray::key

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::key — Возвращает индекс текущего элемента массива

Описание

public SplFixedArray::key ( void ) : int

Возвращает индекс текущего элемента массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Индекс текущего элемента массива.


Переходит к следующему элементу массива

  • « SplFixedArray::key
  • SplFixedArray::offsetExists »
  • PHP Manual
  • SplFixedArray
  • Переходит к следующему элементу массива

SplFixedArray::next

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::next — Переходит к следующему элементу массива

Описание

public SplFixedArray::next ( void ) : void

Перемещает итератор на следующий элемент массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает факт наличия указанного индекса массива

  • « SplFixedArray::next
  • SplFixedArray::offsetGet »
  • PHP Manual
  • SplFixedArray
  • Возвращает факт наличия указанного индекса массива

SplFixedArray::offsetExists

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::offsetExists — Возвращает факт наличия указанного индекса массива

Описание

public SplFixedArray::offsetExists ( int $index ) : bool

Проверяет существование индекса index в массиве.

Список параметров

index

Индекс, который необходимо проверить.

Возвращаемые значения

TRUE, если требуемый index существует, в противном случае FALSE


Возвращает значение по указанному индексу

  • « SplFixedArray::offsetExists
  • SplFixedArray::offsetSet »
  • PHP Manual
  • SplFixedArray
  • Возвращает значение по указанному индексу

SplFixedArray::offsetGet

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::offsetGet — Возвращает значение по указанному индексу

Описание

public SplFixedArray::offsetGet ( int $index ) : mixed

Возвращает значение по индексу index.

Список параметров

index

Индекс.

Возвращаемые значения

Значение по индексу index.

Ошибки

Выбрасывает исключение RuntimeException, когда параметр index выходит за рамки заданного размера массива или когда index нельзя распознать как целое число.


Устанавливает новое значение по заданному индексу

  • « SplFixedArray::offsetGet
  • SplFixedArray::offsetUnset »
  • PHP Manual
  • SplFixedArray
  • Устанавливает новое значение по заданному индексу

SplFixedArray::offsetSet

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::offsetSet — Устанавливает новое значение по заданному индексу

Описание

public SplFixedArray::offsetSet ( int $index , mixed $newval ) : void

По индексу index устанавливает значение newval.

Список параметров

index

Индекс, по которому устанавливается значение.

newval

Новое значение для индекса index.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение RuntimeException, когда index превышает заданный размер массива или когда index нельзя распознать как целое число.


Удаляет значение по индексу $index

  • « SplFixedArray::offsetSet
  • SplFixedArray::rewind »
  • PHP Manual
  • SplFixedArray
  • Удаляет значение по индексу $index

SplFixedArray::offsetUnset

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::offsetUnset — Удаляет значение по индексу $index

Описание

public SplFixedArray::offsetUnset ( int $index ) : void

Удаляет значение по заданному индексу.

Список параметров

index

Индекс, по которому удаляется значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение RuntimeException, когда index превышает заданный размер массива или когда index нельзя распознать как целое число.


Устанавливает итератор массива в начало

  • « SplFixedArray::offsetUnset
  • SplFixedArray::setSize »
  • PHP Manual
  • SplFixedArray
  • Устанавливает итератор массива в начало

SplFixedArray::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::rewind — Устанавливает итератор массива в начало

Описание

public SplFixedArray::rewind ( void ) : void

Устанавливает итератор массива в начало.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Изменяет размер массива

  • « SplFixedArray::rewind
  • SplFixedArray::toArray »
  • PHP Manual
  • SplFixedArray
  • Изменяет размер массива

SplFixedArray::setSize

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::setSize — Изменяет размер массива

Описание

public SplFixedArray::setSize ( int $size ) : bool

Устанавливает размер массива в значение size. Если size меньше текущего размера массива, то все лишние значения отбрасываются. Если же size больше текущего размера массива, то массив будет дополнен NULL значениями.

Список параметров

size

Новое значение размера массива. Ожидается значение между 0 и PHP_INT_MAX.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Выбрасывает исключение InvalidArgumentException, когда size меньше нуля.

Вызывает ошибку уровня E_WARNING, когда size нельзя обработать как число.

Примеры

Пример #1 Пример использования SplFixedArray::setSize()

<?php
   $array = new SplFixedArray(5);
   echo $array->getSize()."\n";
   $array->setSize(10);
   echo $array->getSize()."\n";
?>

Результат выполнения данного примера:

5
10


Возвращает обычный PHP-массив со значениями фиксированного массива

  • « SplFixedArray::setSize
  • SplFixedArray::valid »
  • PHP Manual
  • SplFixedArray
  • Возвращает обычный PHP-массив со значениями фиксированного массива

SplFixedArray::toArray

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::toArray — Возвращает обычный PHP-массив со значениями фиксированного массива

Описание

public SplFixedArray::toArray ( void ) : array

Возвращает обычный PHP-массив со значениями фиксированного массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает PHP-массив (array), составленный из значений фиксированного массива.

Примеры

Пример #1 Пример использования SplFixedArray::toArray()

<?php
$fa = new SplFixedArray(3);
$fa[0] = 0;
$fa[2] = 2;
var_dump($fa->toArray());
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  int(0)
  [1]=>
  NULL
  [2]=>
  int(2)
}


Проверяет массив на наличие элементов

  • « SplFixedArray::toArray
  • SplFixedArray::__wakeup »
  • PHP Manual
  • SplFixedArray
  • Проверяет массив на наличие элементов

SplFixedArray::valid

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::valid — Проверяет массив на наличие элементов

Описание

public SplFixedArray::valid ( void ) : bool

Проверяет массив на наличие элементов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если массив содержит хотя бы один элемент, и FALSE в противном случае.


Переинициализация массива после десериализации

  • « SplFixedArray::valid
  • SplObjectStorage »
  • PHP Manual
  • SplFixedArray
  • Переинициализация массива после десериализации

SplFixedArray::__wakeup

(PHP 5 >= 5.5.0, PHP 7)

SplFixedArray::__wakeup — Переинициализация массива после десериализации

Описание

public SplFixedArray::__wakeup ( void ) : void

Переинициализирует массив после десериализации.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс SplObjectStorage

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplObjectStorage предоставляет отображение объектов в данные или набор объектов, игнорируя данные. Эта двойная цель может быть полезна во многих случаях, включая необходимость уникальной идентификации объектов.

Обзор классов

SplObjectStorage implements Countable , Iterator , Serializable , ArrayAccess {
/* Методы */
public addAll ( SplObjectStorage $storage ) : void
public attach ( object $object [, mixed $data = NULL ] ) : void
public contains ( object $object ) : bool
public count ( void ) : int
public current ( void ) : object
public detach ( object $object ) : void
public getHash ( object $object ) : string
public getInfo ( void ) : mixed
public key ( void ) : int
public next ( void ) : void
public offsetExists ( object $object ) : bool
public offsetGet ( object $object ) : mixed
public offsetSet ( object $object [, mixed $data = NULL ] ) : void
public offsetUnset ( object $object ) : void
public removeAll ( SplObjectStorage $storage ) : void
public removeAllExcept ( SplObjectStorage $storage ) : void
public rewind ( void ) : void
public serialize ( void ) : string
public setInfo ( mixed $data ) : void
public unserialize ( string $serialized ) : void
public valid ( void ) : bool
}

Примеры

Пример #1 Класс SplObjectStorage как набор объектов

<?php
// Набор объектов
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;
$o3 = new StdClass;

$s->attach($o1);
$s->attach($o2);

var_dump($s->contains($o1));
var_dump($s->contains($o2));
var_dump($s->contains($o3));

$s->detach($o2);

var_dump($s->contains($o1));
var_dump($s->contains($o2));
var_dump($s->contains($o3));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Пример #2 Класс SplObjectStorage как отображение объектов в данные

<?php
// Как отображение объектов к данным
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;
$o3 = new StdClass;

$s[$o1] = "данные для объекта 1";
$s[$o2] = array(1,2,3);

if (isset($s[$o2])) {
    var_dump($s[$o2]);
}
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

Содержание

  • SplObjectStorage::addAll — Добавляет все объекты из другого контейнера
  • SplObjectStorage::attach — Добавляет объект в контейнер
  • SplObjectStorage::contains — Проверяет, содержит ли контейнер заданный объект
  • SplObjectStorage::count — Возвращает количество объектов в контейнере
  • SplObjectStorage::current — Возвращает текущий объект
  • SplObjectStorage::detach — Удаляет объект object из контейнера
  • SplObjectStorage::getHash — Вычисляет уникальный идентификатор для объектов контейнера
  • SplObjectStorage::getInfo — Возвращает данные, ассоциированные с текущим объектом
  • SplObjectStorage::key — Возвращает индекс текущего положения итератора
  • SplObjectStorage::next — Переход к следующему объекту
  • SplObjectStorage::offsetExists — Проверяет, существует ли объект в контейнере
  • SplObjectStorage::offsetGet — Возвращает данные, ассоциированные с объектом object
  • SplObjectStorage::offsetSet — Ассоциирует данные с объектом в контейнере
  • SplObjectStorage::offsetUnset — Удаляет объект из контейнера
  • SplObjectStorage::removeAll — Удаляет из текущего контейнера объекты, которые есть в другом контейнере
  • SplObjectStorage::removeAllExcept — Удаляет из текущего контейнера все объекты, которых нет в другом контейнере
  • SplObjectStorage::rewind — Переводит итератор на первый элемент контейнера
  • SplObjectStorage::serialize — Сериализует контейнер
  • SplObjectStorage::setInfo — Ассоциирует данные с текущим объектом контейнера
  • SplObjectStorage::unserialize — Восстанавливает сериализованый контейнер из строки
  • SplObjectStorage::valid — Определяет, допустимо ли текущее значение итератора


Добавляет все объекты из другого контейнера

  • « SplObjectStorage
  • SplObjectStorage::attach »
  • PHP Manual
  • SplObjectStorage
  • Добавляет все объекты из другого контейнера

SplObjectStorage::addAll

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::addAll — Добавляет все объекты из другого контейнера

Описание

public SplObjectStorage::addAll ( SplObjectStorage $storage ) : void

Добавляет все пары объект-данные из другого контейнера в текущий.

Список параметров

storage

Контейнер объектов, из которого требуется импортировать данные.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::addAll()

<?php
$o = new StdClass;
$a = new SplObjectStorage();
$a[$o] = "hello";

$b = new SplObjectStorage();
$b->addAll($a);
echo $b[$o]."\n";
?>

Результатом выполнения данного примера будет что-то подобное:

hello

Смотрите также

  • SplObjectStorage::removeAll() - Удаляет из текущего контейнера объекты, которые есть в другом контейнере


Добавляет объект в контейнер

  • « SplObjectStorage::addAll
  • SplObjectStorage::contains »
  • PHP Manual
  • SplObjectStorage
  • Добавляет объект в контейнер

SplObjectStorage::attach

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::attach — Добавляет объект в контейнер

Описание

public SplObjectStorage::attach ( object $object [, mixed $data = NULL ] ) : void

Добавляет объект object в контейнер и дополнительно может ассоциировать этот объект с какими-то данными.

Список параметров

object

Добавляемый объект object.

data

Данные, с которыми требуется ассоциировать объект object.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::attach()

<?php
$o1 = new StdClass;
$o2 = new StdClass;
$s = new SplObjectStorage();
$s->attach($o1); // то же, что и $s[$o1] = NULL;
$s->attach($o2, "hello"); // то же, что и $s[$o2] = "hello";

var_dump($s[$o1]);
var_dump($s[$o2]);

?>

Результатом выполнения данного примера будет что-то подобное:

NULL
string(5) "hello"

Список изменений

Версия | Описание
5.3.0 | Добавлен аргумент data.

Смотрите также

  • SplObjectStorage::detach() - Удаляет объект object из контейнера
  • SplObjectStorage::offsetSet() - Ассоциирует данные с объектом в контейнере


Проверяет, содержит ли контейнер заданный объект

  • « SplObjectStorage::attach
  • SplObjectStorage::count »
  • PHP Manual
  • SplObjectStorage
  • Проверяет, содержит ли контейнер заданный объект

SplObjectStorage::contains

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::contains — Проверяет, содержит ли контейнер заданный объект

Описание

public SplObjectStorage::contains ( object $object ) : bool

Проверяет, содержит ли контейнер заданный объект object.

Список параметров

object

Искомый объект object.

Возвращаемые значения

Возвращает TRUE, если object находится в контейнере, и FALSE в противном случае.

Примеры

Пример #1 Пример использования SplObjectStorage::contains()

<?php
$o1 = new StdClass;
$o2 = new StdClass;

$s = new SplObjectStorage();

$s[$o1] = "hello";
var_dump($s->contains($o1));
var_dump($s->contains($o2));
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)

Смотрите также

  • SplObjectStorage::offsetExists() - Проверяет, существует ли объект в контейнере


Возвращает количество объектов в контейнере

  • « SplObjectStorage::contains
  • SplObjectStorage::current »
  • PHP Manual
  • SplObjectStorage
  • Возвращает количество объектов в контейнере

SplObjectStorage::count

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::count — Возвращает количество объектов в контейнере

Описание

public SplObjectStorage::count ( void ) : int

Производит подсчет объектов в контейнере.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество объектов в контейнере.

Примеры

Пример #1 Пример использования SplObjectStorage::count()

<?php
$s = new SplObjectStorage();
$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1);
$s->attach($o2);
$s->attach($o1);
var_dump($s->count());
var_dump(count($s));
?>

Результатом выполнения данного примера будет что-то подобное:

int(2)
int(2)

Смотрите также

  • SplObjectStorage::attach() - Добавляет объект в контейнер
  • SplObjectStorage::detach() - Удаляет объект object из контейнера


Возвращает текущий объект

  • « SplObjectStorage::count
  • SplObjectStorage::detach »
  • PHP Manual
  • SplObjectStorage
  • Возвращает текущий объект

SplObjectStorage::current

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::current — Возвращает текущий объект

Описание

public SplObjectStorage::current ( void ) : object

Возвращает текущий объект.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект object на который указывает итератор контейнера.

Примеры

Пример #1 Пример использования SplObjectStorage::current()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // аналогично current($s)
    $data   = $s->getInfo();

    var_dump($object);
    var_dump($data);
    $s->next();
}
?>

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)#2 (0) {
}
string(2) "d1"
object(stdClass)#3 (0) {
}
string(2) "d2"

Смотрите также

  • SplObjectStorage::rewind() - Переводит итератор на первый элемент контейнера
  • SplObjectStorage::key() - Возвращает индекс текущего положения итератора
  • SplObjectStorage::next() - Переход к следующему объекту
  • SplObjectStorage::valid() - Определяет, допустимо ли текущее значение итератора
  • SplObjectStorage::getInfo() - Возвращает данные, ассоциированные с текущим объектом


Удаляет объект object из контейнера

  • « SplObjectStorage::current
  • SplObjectStorage::getHash »
  • PHP Manual
  • SplObjectStorage
  • Удаляет объект object из контейнера

SplObjectStorage::detach

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::detach — Удаляет объект object из контейнера

Описание

public SplObjectStorage::detach ( object $object ) : void

Удаляет объект object из контейнера.

Список параметров

object

Удаляемый объект object.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::detach()

<?php
$o = new StdClass;
$s = new SplObjectStorage();
$s->attach($o);
var_dump(count($s));
$s->detach($o);
var_dump(count($s));
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)
int(0)

Смотрите также

  • SplObjectStorage::attach() - Добавляет объект в контейнер
  • SplObjectStorage::removeAll() - Удаляет из текущего контейнера объекты, которые есть в другом контейнере


Вычисляет уникальный идентификатор для объектов контейнера

  • « SplObjectStorage::detach
  • SplObjectStorage::getInfo »
  • PHP Manual
  • SplObjectStorage
  • Вычисляет уникальный идентификатор для объектов контейнера

SplObjectStorage::getHash

(PHP 5 >= 5.4.0, PHP 7)

SplObjectStorage::getHash — Вычисляет уникальный идентификатор для объектов контейнера

Описание

public SplObjectStorage::getHash ( object $object ) : string

Метод вычисляет уникальный идентификатор для объектов, добавляемых в контейнер SplObjectStorage.

Реализация SplObjectStorage возвращает то же значение, что и функция spl_object_hash().

В одном контейнере никогда не появится двух объектов с одинаковыми идентификаторами. Таким образом, с помощью контейнера можно реализовать множество (коллекцию значений, каждое из которых представлено в единственном экземпляре), в котором уникальность объектов будет определяться этим идентификатором.

Список параметров

object

Объект, чей идентификатор требуется вычислить.

Возвращаемые значения

Строка string с результатом вычисления.

Ошибки

Метод выбрасывает исключение RuntimeException, когда тип возвращаемого значения не является строкой (string).

Примеры

Пример #1 Пример использования SplObjectStorage::getHash()

<?php
class OneSpecimenPerClassStorage extends SplObjectStorage {
    public function getHash($o) {
        return get_class($o);
    }
}
class A {}

$s = new OneSpecimenPerClassStorage;
$o1 = new stdClass;
$o2 = new stdClass;
$o3 = new A;

$s[$o1] = 1;
//$o2 предполагается равным $o1, соответственно значение замещается
$s[$o2] = 2;
$s[$o3] = 3;

//предполагаем, что следующие объекты эквивалентны приведенным выше
//таким образом, их можно использовать для извлечения данных из контейнера
$p1 = new stdClass;
$p2 = new A;
echo $s[$p1], "\n";
echo $s[$p2], "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

2
3

Смотрите также

  • spl_object_hash() - Возвращает хеш-идентификатор для объекта


Возвращает данные, ассоциированные с текущим объектом

  • « SplObjectStorage::getHash
  • SplObjectStorage::key »
  • PHP Manual
  • SplObjectStorage
  • Возвращает данные, ассоциированные с текущим объектом

SplObjectStorage::getInfo

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::getInfo — Возвращает данные, ассоциированные с текущим объектом

Описание

public SplObjectStorage::getInfo ( void ) : mixed

Возвращает данные, ассоциированные с объектом на который указывает итератор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Данные, ассоциированные с объектом.

Примеры

Пример #1 Пример использования SplObjectStorage::getInfo()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // аналогично current($s)
    $data   = $s->getInfo();

    var_dump($object);
    var_dump($data);
    $s->next();
}
?>

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)#2 (0) {
}
string(2) "d1"
object(stdClass)#3 (0) {
}
string(2) "d2"

Смотрите также

  • SplObjectStorage::current() - Возвращает текущий объект
  • SplObjectStorage::rewind() - Переводит итератор на первый элемент контейнера
  • SplObjectStorage::key() - Возвращает индекс текущего положения итератора
  • SplObjectStorage::next() - Переход к следующему объекту
  • SplObjectStorage::valid() - Определяет, допустимо ли текущее значение итератора
  • SplObjectStorage::setInfo() - Ассоциирует данные с текущим объектом контейнера


Возвращает индекс текущего положения итератора

  • « SplObjectStorage::getInfo
  • SplObjectStorage::next »
  • PHP Manual
  • SplObjectStorage
  • Возвращает индекс текущего положения итератора

SplObjectStorage::key

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::key — Возвращает индекс текущего положения итератора

Описание

public SplObjectStorage::key ( void ) : int

Возвращает индекс текущего положения итератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Индекс текущего положения итератора.

Примеры

Пример #1 Пример использования SplObjectStorage::key()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // аналогично current($s)

    var_dump($index);
    var_dump($object);
    $s->next();
}
?>

Результатом выполнения данного примера будет что-то подобное:

int(0)
object(stdClass)#2 (0) {
}
int(1)
object(stdClass)#3 (0) {
}

Смотрите также

  • SplObjectStorage::rewind() - Переводит итератор на первый элемент контейнера
  • SplObjectStorage::current() - Возвращает текущий объект
  • SplObjectStorage::next() - Переход к следующему объекту
  • SplObjectStorage::valid() - Определяет, допустимо ли текущее значение итератора


Переход к следующему объекту

  • « SplObjectStorage::key
  • SplObjectStorage::offsetExists »
  • PHP Manual
  • SplObjectStorage
  • Переход к следующему объекту

SplObjectStorage::next

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::next — Переход к следующему объекту

Описание

public SplObjectStorage::next ( void ) : void

Перемещает итератор на следующий объект object в контейнере.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::next()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // аналогично current($s)

    var_dump($index);
    var_dump($object);
    $s->next();
}
?>

Результатом выполнения данного примера будет что-то подобное:

int(0)
object(stdClass)#2 (0) {
}
int(1)
object(stdClass)#3 (0) {
}

Смотрите также

  • SPLObjectStorage::rewind() - Переводит итератор на первый элемент контейнера


Проверяет, существует ли объект в контейнере

  • « SplObjectStorage::next
  • SplObjectStorage::offsetGet »
  • PHP Manual
  • SplObjectStorage
  • Проверяет, существует ли объект в контейнере

SplObjectStorage::offsetExists

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::offsetExists — Проверяет, существует ли объект в контейнере

Описание

public SplObjectStorage::offsetExists ( object $object ) : bool

Проверяет, существует ли объект object в контейнере.

Замечание:

SplObjectStorage::offsetExists() является псевдонимом метода SplObjectStorage::contains().

Список параметров

object

Искомый объект object.

Возвращаемые значения

Возвращает TRUE, если объект object есть в контейнере, и FALSE в противном случае.

Примеры

Пример #1 Пример использования SplObjectStorage::offsetExists()

<?php
$s = new SplObjectStorage;
$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1);

var_dump($s->offsetExists($o1)); // аналогично isset($s[$o1])
var_dump($s->offsetExists($o2)); // аналогично isset($s[$o2])
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)

Смотрите также

  • SplObjectStorage::offsetSet() - Ассоциирует данные с объектом в контейнере
  • SplObjectStorage::offsetGet() - Возвращает данные, ассоциированные с объектом object
  • SplObjectStorage::offsetUnset() - Удаляет объект из контейнера


Возвращает данные, ассоциированные с объектом object

  • « SplObjectStorage::offsetExists
  • SplObjectStorage::offsetSet »
  • PHP Manual
  • SplObjectStorage
  • Возвращает данные, ассоциированные с объектом object

SplObjectStorage::offsetGet

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::offsetGet — Возвращает данные, ассоциированные с объектом object

Описание

public SplObjectStorage::offsetGet ( object $object ) : mixed

Возвращает данные, ассоциированные с объектом object.

Список параметров

object

Искомый объект object.

Возвращаемые значения

Данные, ассоциированные с объектом object.

Ошибки

Выбрасывает исключение UnexpectedValueException, если объект object не удалось найти.

Примеры

Пример #1 Пример использования SplObjectStorage::offsetGet()

<?php
$s = new SplObjectStorage;

$o1 = new StdClass;
$o2 = new StdClass;

$s[$o1] = "hello";
$s->attach($o2);

var_dump($s->offsetGet($o1)); //  $s[$o1]
var_dump($s->offsetGet($o2)); //  $s[$o2]
?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "hello"
NULL

Смотрите также

  • SplObjectStorage::offsetSet() - Ассоциирует данные с объектом в контейнере
  • SplObjectStorage::offsetExists() - Проверяет, существует ли объект в контейнере
  • SplObjectStorage::offsetUnset() - Удаляет объект из контейнера


Ассоциирует данные с объектом в контейнере

  • « SplObjectStorage::offsetGet
  • SplObjectStorage::offsetUnset »
  • PHP Manual
  • SplObjectStorage
  • Ассоциирует данные с объектом в контейнере

SplObjectStorage::offsetSet

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::offsetSet — Ассоциирует данные с объектом в контейнере

Описание

public SplObjectStorage::offsetSet ( object $object [, mixed $data = NULL ] ) : void

Ассоциирует данные с объектом object в контейнере.

Замечание:

SplObjectStorage::offsetSet() является псевдонимом метода SplObjectStorage::attach().

Список параметров

object

Объект object с которым требуется связать данные.

data

Данные, которые требуется связать с объектом object.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::offsetSet()

<?php
$s = new SplObjectStorage;

$o1 = new StdClass;

$s->offsetSet($o1, "hello"); // $s[$o1] = "hello";

var_dump($s[$o1]);
?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "hello"

Смотрите также

  • SplObjectStorage::attach() - Добавляет объект в контейнер
  • SplObjectStorage::offsetGet() - Возвращает данные, ассоциированные с объектом object
  • SplObjectStorage::offsetExists() - Проверяет, существует ли объект в контейнере
  • SplObjectStorage::offsetUnset() - Удаляет объект из контейнера


Удаляет объект из контейнера

  • « SplObjectStorage::offsetSet
  • SplObjectStorage::removeAll »
  • PHP Manual
  • SplObjectStorage
  • Удаляет объект из контейнера

SplObjectStorage::offsetUnset

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::offsetUnset — Удаляет объект из контейнера

Описание

public SplObjectStorage::offsetUnset ( object $object ) : void

Удаляет объект object из контейнера.

Замечание:

SplObjectStorage::offsetUnset() является псевдонимом метода SplObjectStorage::detach().

Список параметров

object

Удаляемый объект object.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::offsetUnset()

<?php
$o = new StdClass;
$s = new SplObjectStorage();
$s->attach($o);
var_dump(count($s));
$s->offsetUnset($o); // аналогично unset($s[$o])
var_dump(count($s));
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)
int(0)

Смотрите также

  • SplObjectStorage::offsetGet() - Возвращает данные, ассоциированные с объектом object
  • SplObjectStorage::offsetSet() - Ассоциирует данные с объектом в контейнере
  • SplObjectStorage::offsetExists() - Проверяет, существует ли объект в контейнере


Удаляет из текущего контейнера объекты, которые есть в другом контейнере

  • « SplObjectStorage::offsetUnset
  • SplObjectStorage::removeAllExcept »
  • PHP Manual
  • SplObjectStorage
  • Удаляет из текущего контейнера объекты, которые есть в другом контейнере

SplObjectStorage::removeAll

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::removeAll — Удаляет из текущего контейнера объекты, которые есть в другом контейнере

Описание

public SplObjectStorage::removeAll ( SplObjectStorage $storage ) : void

Удаляет из текущего контейнера объекты, которые есть в другом контейнере.

Список параметров

storage

Контейнер, содержащий элементы, которые требуется удалить.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::removeAll()

<?php
$o1 = new StdClass;
$o2 = new StdClass;
$a = new SplObjectStorage();
$a[$o1] = "foo";

$b = new SplObjectStorage();
$b[$o1] = "bar";
$b[$o2] = "gee";

var_dump(count($b));
$b->removeAll($a);
var_dump(count($b));
?>

Результатом выполнения данного примера будет что-то подобное:

int(2)
int(1)

Смотрите также

  • SplObjectStorage::addAll() - Добавляет все объекты из другого контейнера


Удаляет из текущего контейнера все объекты, которых нет в другом контейнере

  • « SplObjectStorage::removeAll
  • SplObjectStorage::rewind »
  • PHP Manual
  • SplObjectStorage
  • Удаляет из текущего контейнера все объекты, которых нет в другом контейнере

SplObjectStorage::removeAllExcept

(PHP 5 >= 5.3.6, PHP 7)

SplObjectStorage::removeAllExcept — Удаляет из текущего контейнера все объекты, которых нет в другом контейнере

Описание

public SplObjectStorage::removeAllExcept ( SplObjectStorage $storage ) : void

Удаляет из текущего контейнера все объекты, которых нет в другом контейнере.

Список параметров

storage

Контейнер, содержащий элементы, которые должны остаться в текущем контейнере.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::removeAllExcept()

<?php
$a = (object) 'a';
$b = (object) 'b';
$c = (object) 'c';

$foo = new SplObjectStorage;
$foo->attach($a);
$foo->attach($b);

$bar = new SplObjectStorage;
$bar->attach($b);
$bar->attach($c);

$foo->removeAllExcept($bar);
var_dump($foo->contains($a));
var_dump($foo->contains($b));
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Переводит итератор на первый элемент контейнера

  • « SplObjectStorage::removeAllExcept
  • SplObjectStorage::serialize »
  • PHP Manual
  • SplObjectStorage
  • Переводит итератор на первый элемент контейнера

SplObjectStorage::rewind

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::rewind — Переводит итератор на первый элемент контейнера

Описание

public SplObjectStorage::rewind ( void ) : void

Переводит итератор на первый элемент контейнера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::rewind()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // аналогично current($s)
    $data   = $s->getInfo();

    var_dump($object);
    var_dump($data);
    $s->next();
}
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)
int(0)

Смотрите также

  • SplObjectStorage::next() - Переход к следующему объекту


Сериализует контейнер

  • « SplObjectStorage::rewind
  • SplObjectStorage::setInfo »
  • PHP Manual
  • SplObjectStorage
  • Сериализует контейнер

SplObjectStorage::serialize

(PHP 5 >= 5.2.2, PHP 7)

SplObjectStorage::serialize — Сериализует контейнер

Описание

public SplObjectStorage::serialize ( void ) : string

Возвращает строковое представление контейнера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строковое представление контейнера.

Примеры

Пример #1 Пример использования SplObjectStorage::serialize()

<?php
$s = new SplObjectStorage;
$o = new StdClass;
$s[$o] = "data";

echo $s->serialize()."\n";
?>

Результатом выполнения данного примера будет что-то подобное:

x:i:1;O:8:"stdClass":0:{},s:4:"data";;m:a:0:{}

Смотрите также

  • SplObjectStorage::unserialize() - Восстанавливает сериализованый контейнер из строки


Ассоциирует данные с текущим объектом контейнера

  • « SplObjectStorage::serialize
  • SplObjectStorage::unserialize »
  • PHP Manual
  • SplObjectStorage
  • Ассоциирует данные с текущим объектом контейнера

SplObjectStorage::setInfo

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::setInfo — Ассоциирует данные с текущим объектом контейнера

Описание

public SplObjectStorage::setInfo ( mixed $data ) : void

Ассоциирует данные с текущим объектом контейнера на который указывает итератор.

Список параметров

data

Данные, которые требуется связать с текущим объектом.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::setInfo()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $s->setInfo("new");
    $s->next();
}
var_dump($s[$o1]);
var_dump($s[$o2]);
?>

Результатом выполнения данного примера будет что-то подобное:

string(3) "new"
string(3) "new"

Смотрите также

  • SplObjectStorage::current() - Возвращает текущий объект
  • SplObjectStorage::rewind() - Переводит итератор на первый элемент контейнера
  • SplObjectStorage::key() - Возвращает индекс текущего положения итератора
  • SplObjectStorage::next() - Переход к следующему объекту
  • SplObjectStorage::valid() - Определяет, допустимо ли текущее значение итератора
  • SplObjectStorage::getInfo() - Возвращает данные, ассоциированные с текущим объектом


Восстанавливает сериализованый контейнер из строки

  • « SplObjectStorage::setInfo
  • SplObjectStorage::valid »
  • PHP Manual
  • SplObjectStorage
  • Восстанавливает сериализованый контейнер из строки

SplObjectStorage::unserialize

(PHP 5 >= 5.2.2, PHP 7)

SplObjectStorage::unserialize — Восстанавливает сериализованый контейнер из строки

Описание

public SplObjectStorage::unserialize ( string $serialized ) : void

Восстанавливает данные контейнера из строки и добавляет их в текущий контейнер.

Список параметров

serialized

Сериализованное представление контейнера.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::unserialize()

<?php
$s1 = new SplObjectStorage;
$s2 = new SplObjectStorage;
$o = new StdClass;
$s1[$o] = "data";

$s2->unserialize($s1->serialize());

var_dump(count($s2));
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)

Смотрите также

  • SplObjectStorage::serialize() - Сериализует контейнер


Определяет, допустимо ли текущее значение итератора

  • « SplObjectStorage::unserialize
  • Итераторы »
  • PHP Manual
  • SplObjectStorage
  • Определяет, допустимо ли текущее значение итератора

SplObjectStorage::valid

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::valid — Определяет, допустимо ли текущее значение итератора

Описание

public SplObjectStorage::valid ( void ) : bool

Определяет, допустимо ли текущее значение итератора, то есть возможна ли работа с этим объектом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если текущий объект допустим и FALSE в противном случае.

Примеры

Пример #1 Пример использования SplObjectStorage::valid()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    echo $s->key()."\n";
    $s->next();
}
?>

Результатом выполнения данного примера будет что-то подобное:

0
1

Смотрите также

  • SplObjectStorage::current() - Возвращает текущий объект
  • SplObjectStorage::getInfo() - Возвращает данные, ассоциированные с текущим объектом


Итераторы

Содержание

  • AppendIterator
  • ArrayIterator
  • CachingIterator
  • CallbackFilterIterator
  • DirectoryIterator
  • EmptyIterator
  • FilesystemIterator
  • FilterIterator
  • GlobIterator
  • InfiniteIterator
  • IteratorIterator
  • LimitIterator
  • MultipleIterator
  • NoRewindIterator
  • ParentIterator
  • RecursiveArrayIterator
  • RecursiveCachingIterator
  • RecursiveCallbackFilterIterator
  • RecursiveDirectoryIterator
  • RecursiveFilterIterator
  • RecursiveIteratorIterator
  • RecursiveRegexIterator
  • RecursiveTreeIterator
  • RegexIterator

SPL обеспечивает набор итераторов для обхода объектов.

Дерево классов итераторов SPL

  • ArrayIterator
    • RecursiveArrayIterator
  • EmptyIterator
  • IteratorIterator
    • AppendIterator
    • CachingIterator
      • RecursiveCachingIterator
    • FilterIterator
      • CallbackFilterIterator
        • RecursiveCallbackFilterIterator
      • RecursiveFilterIterator
        • ParentIterator
      • RegexIterator
        • RecursiveRegexIterator
    • InfiniteIterator
    • LimitIterator
    • NoRewindIterator
  • MultipleIterator
  • RecursiveIteratorIterator
    • RecursiveTreeIterator
  • DirectoryIterator (наследует класс SplFileInfo)
    • FilesystemIterator
      • GlobIterator
      • RecursiveDirectoryIterator


Класс AppendIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Итератор, который выполняет несколько других итераторов один за другим

Обзор классов

AppendIterator extends IteratorIterator implements OuterIterator {
/* Методы */
public __construct ( void )
public append ( Iterator $iterator ) : void
public current ( void ) : mixed
public getArrayIterator ( void ) : ArrayIterator
public getInnerIterator ( void ) : Iterator
public getIteratorIndex ( void ) : int
public key ( void ) : scalar
public next ( void ) : void
public rewind ( void ) : void
public valid ( void ) : bool
/* Наследуемые методы */
public IteratorIterator::__construct ( Traversable $iterator )
public IteratorIterator::current ( void ) : mixed
public IteratorIterator::getInnerIterator ( void ) : Traversable
public IteratorIterator::key ( void ) : mixed
public IteratorIterator::next ( void ) : void
public IteratorIterator::rewind ( void ) : void
public IteratorIterator::valid ( void ) : bool
}

Содержание

  • AppendIterator::append — Добавляет итератор
  • AppendIterator::__construct — Создает AppendIterator
  • AppendIterator::current — Возвращает текущее значение
  • AppendIterator::getArrayIterator — Возвращает класс итератора массива ArrayIterator
  • AppendIterator::getInnerIterator — Возвращает внутренний итератор
  • AppendIterator::getIteratorIndex — Возвращает индекс итератора
  • AppendIterator::key — Возвращает текущий ключ
  • AppendIterator::next — Переходит к следующему элементу
  • AppendIterator::rewind — Перематывает итератор
  • AppendIterator::valid — Проверяет срок действия текущего элемента


Добавляет итератор

  • « AppendIterator
  • AppendIterator::__construct »
  • PHP Manual
  • AppendIterator
  • Добавляет итератор

AppendIterator::append

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::append — Добавляет итератор

Описание

public AppendIterator::append ( Iterator $iterator ) : void

Добавляет итератор.

Список параметров

iterator

Итератор для добавления.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использованияAppendIterator::append()

<?php
$array_a = new ArrayIterator(array('a', 'b', 'c'));
$array_b = new ArrayIterator(array('d', 'e', 'f'));

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

foreach ($iterator as $current) {
    echo $current;
}
?>

Результат выполнения данного примера:

abcdef

Смотрите также

  • AppendIterator::__construct() - Создает AppendIterator


Создает AppendIterator

  • « AppendIterator::append
  • AppendIterator::current »
  • PHP Manual
  • AppendIterator
  • Создает AppendIterator

AppendIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::__construct — Создает AppendIterator

Описание

public AppendIterator::__construct ( void )

Создает AppendIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Итерация AppendIterator с помощью foreach

<?php
$pizzas   = new ArrayIterator(array('Margarita', 'Siciliana', 'Hawaii'));
$toppings = new ArrayIterator(array('Cheese', 'Anchovies', 'Olives', 'Pineapple', 'Ham'));

$appendIterator = new AppendIterator;
$appendIterator->append($pizzas);
$appendIterator->append($toppings);

foreach ($appendIterator as $key => $item) {
    echo $key . ' => ' . $item . PHP_EOL;
}
?>

Результат выполнения данного примера:

0 => Margarita
1 => Siciliana
2 => Hawaii
0 => Cheese
1 => Anchovies
2 => Olives
3 => Pineapple
4 => Ham

Пример #2 Итерация AppendIterator с помощью AppendIterator API

<?php
$pizzas   = new ArrayIterator(array('Margarita', 'Siciliana', 'Hawaii'));
$toppings = new ArrayIterator(array('Cheese', 'Anchovies', 'Olives', 'Pineapple', 'Ham'));

$appendIterator = new AppendIterator;
$appendIterator->append($pizzas);
$appendIterator->append($toppings);

while ($appendIterator->valid()) {
    printf(
        '%s => %s => %s%s',
        $appendIterator->getIteratorIndex(),
        $appendIterator->key(),
        $appendIterator->current(),
        PHP_EOL
    );
    $appendIterator->next();
}
?>

Результат выполнения данного примера:

0 => 0 => Margarita
0 => 1 => Siciliana
0 => 2 => Hawaii
1 => 0 => Cheese
1 => 1 => Anchovies
1 => 2 => Olives
1 => 3 => Pineapple
1 => 4 => Ham

Примечания

Предостережение

При использовании функции iterator_to_array() для копирования значения AppendIterator в массив, вам необходимо установить дополнительный аргумент use_key в значение FALSE. Когда use_key не принимает значение FALSE, какие-либо ключи, повторно встречающиеся во внутренних итераторах, будут перезаписаны в возвращаемый массив. Сохранить оригинальные ключи невозможно.

Смотрите также

  • AppendIterator::append() - Добавляет итератор


Возвращает текущее значение

  • « AppendIterator::__construct
  • AppendIterator::getArrayIterator »
  • PHP Manual
  • AppendIterator
  • Возвращает текущее значение

AppendIterator::current

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::current — Возвращает текущее значение

Описание

public AppendIterator::current ( void ) : mixed

Возвращает текущее значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущее значение, если оно действительное, или NULL в противном случае.

Смотрите также

  • Iterator::current() - Возврат текущего элемента
  • AppendIterator::key() - Возвращает текущий ключ
  • AppendIterator::valid() - Проверяет срок действия текущего элемента
  • AppendIterator::next() - Переходит к следующему элементу
  • AppendIterator::rewind() - Перематывает итератор


Возвращает класс итератора массива ArrayIterator

  • « AppendIterator::current
  • AppendIterator::getInnerIterator »
  • PHP Manual
  • AppendIterator
  • Возвращает класс итератора массива ArrayIterator

AppendIterator::getArrayIterator

(PHP 5 >= 5.2.0, PHP 7)

AppendIterator::getArrayIterator — Возвращает класс итератора массива ArrayIterator

Описание

public AppendIterator::getArrayIterator ( void ) : ArrayIterator

Этот метод получает класс ArrayIterator, который используется для хранения итераторов, добавленных с помощью метода AppendIterator::append().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает класс ArrayIterator, содержащий добавленные итераторы.

Смотрите также

  • AppendIterator::getInnerIterator() - Возвращает внутренний итератор


Возвращает внутренний итератор

  • « AppendIterator::getArrayIterator
  • AppendIterator::getIteratorIndex »
  • PHP Manual
  • AppendIterator
  • Возвращает внутренний итератор

AppendIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::getInnerIterator — Возвращает внутренний итератор

Описание

public AppendIterator::getInnerIterator ( void ) : Iterator

Этот метод возвращает текущий внутренний итератор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий внутренний итератор или NULL, если таковой отсутствует.

Примеры

Пример #1 Пример использования AppendIterator::getInnerIterator()

<?php
$array_a = new ArrayIterator(array('a' => 'aardwolf', 'b' => 'bear', 'c' => 'capybara'));
$array_b = new RegexIterator($array_a, '/^[ac]/');

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

foreach ($iterator as $current) {
    $inner = $iterator->getInnerIterator();
    if ($inner instanceOf RegexIterator) {
        echo 'Отфильтрованный: ';
    } else {
        echo 'Оригинальный: ';
    }
    echo $current . PHP_EOL;
}
?>

Результат выполнения данного примера:

Оригинальный: aardwolf
Оригинальный: bear
Оригинальный: capybara
Отфильтрованный: aardwolf
Отфильтрованный: capybara

Смотрите также

  • AppendIterator::getIteratorIndex() - Возвращает индекс итератора


Возвращает индекс итератора

  • « AppendIterator::getInnerIterator
  • AppendIterator::key »
  • PHP Manual
  • AppendIterator
  • Возвращает индекс итератора

AppendIterator::getIteratorIndex

(PHP 5 >= 5.2.0, PHP 7)

AppendIterator::getIteratorIndex — Возвращает индекс итератора

Описание

public AppendIterator::getIteratorIndex ( void ) : int

Возвращает индекс текущего внутреннего итератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает число (integer), которое является индексом, начинающегося с нуля, текущего внутреннего итератора.

Примеры

Пример #1 Пример использования AppendIterator.getIteratorIndex()

<?php
$array_a = new ArrayIterator(array('a' => 'aardwolf', 'b' => 'bear', 'c' => 'capybara'));
$array_b = new ArrayIterator(array('apple', 'orange', 'lemon'));

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

foreach ($iterator as $key => $current) {
    echo $iterator->getIteratorIndex() . '  ' . $key . ' ' . $current . PHP_EOL;
}
?>

Результат выполнения данного примера:

0  a aardwolf
0  b bear
0  c capybara
1  0 apple
1  1 orange
1  2 lemon

Смотрите также

  • AppendIterator::getInnerIterator() - Возвращает внутренний итератор
  • AppendIterator::getArrayIterator() - Возвращает класс итератора массива ArrayIterator


Возвращает текущий ключ

  • « AppendIterator::getIteratorIndex
  • AppendIterator::next »
  • PHP Manual
  • AppendIterator
  • Возвращает текущий ключ

AppendIterator::key

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::key — Возвращает текущий ключ

Описание

public AppendIterator::key ( void ) : scalar

Возвращает текущий ключ.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий ключ, если он является действительным, или NULL в противном случае.

Примеры

Пример #1 Пример использования AppendIterator::key()

<?php
$array_a = new ArrayIterator(array('a' => 'aardwolf', 'b' => 'bear', 'c' => 'capybara'));
$array_b = new ArrayIterator(array('apple', 'orange', 'lemon'));

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

// Ручная итерация
$iterator->rewind();
while ($iterator->valid()) {
    echo $iterator->key() . ' ' . $iterator->current() . PHP_EOL;
    $iterator->next();
}

echo PHP_EOL;

// С конструкцией foreach
foreach ($iterator as $key => $current) {
    echo $key . ' ' . $current . PHP_EOL;
}
?>

Результат выполнения данного примера:

a aardwolf
b bear
c capybara
0 apple
1 orange
2 lemon

a aardwolf
b bear
c capybara
0 apple
1 orange
2 lemon

Смотрите также

  • Iterator::key() - Возврат ключа текущего элемента
  • AppendIterator::current() - Возвращает текущее значение
  • AppendIterator::valid() - Проверяет срок действия текущего элемента
  • AppendIterator::next() - Переходит к следующему элементу
  • AppendIterator::rewind() - Перематывает итератор


Переходит к следующему элементу

  • « AppendIterator::key
  • AppendIterator::rewind »
  • PHP Manual
  • AppendIterator
  • Переходит к следующему элементу

AppendIterator::next

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::next — Переходит к следующему элементу

Описание

public AppendIterator::next ( void ) : void

Переходит к следующему элементу. Если элемент - это другой итератор, то перематывает этот итератор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Iterator::next() - Переход к следующему элементу
  • AppendIterator::current() - Возвращает текущее значение
  • AppendIterator::key() - Возвращает текущий ключ
  • AppendIterator::valid() - Проверяет срок действия текущего элемента
  • AppendIterator::rewind() - Перематывает итератор


Перематывает итератор

  • « AppendIterator::next
  • AppendIterator::valid »
  • PHP Manual
  • AppendIterator
  • Перематывает итератор

AppendIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::rewind — Перематывает итератор

Описание

public AppendIterator::rewind ( void ) : void

Перемотка на первый элемент первого внутреннего итератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Iterator::rewind() - Перемотать итератор на первый элемент
  • AppendIterator::current() - Возвращает текущее значение
  • AppendIterator::key() - Возвращает текущий ключ
  • AppendIterator::next() - Переходит к следующему элементу
  • AppendIterator::valid() - Проверяет срок действия текущего элемента


Проверяет срок действия текущего элемента

  • « AppendIterator::rewind
  • ArrayIterator »
  • PHP Manual
  • AppendIterator
  • Проверяет срок действия текущего элемента

AppendIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::valid — Проверяет срок действия текущего элемента

Описание

public AppendIterator::valid ( void ) : bool

Проверяет срок действия текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если текущая итерация допустима и FALSE в противном случае.

Смотрите также

  • AppendIterator::current() - Возвращает текущее значение
  • AppendIterator::key() - Возвращает текущий ключ
  • AppendIterator::next() - Переходит к следующему элементу
  • AppendIterator::rewind() - Перематывает итератор


Класс ArrayIterator

(PHP 5, PHP 7)

Введение

Этот итератор позволяет сбрасывать и модифицировать значения и ключи в процессе итерации по массивам и объектам.

Когда вы хотите перебрать один и тот же массив несколько раз, вам нужно создать экземпляр ArrayObject и создать для него объекты ArrayIterator, ссылающиеся на него либо при помощи foreach или при вызове метода getIterator() вручную.

Обзор классов

ArrayIterator implements ArrayAccess , SeekableIterator , Countable , Serializable {
/* Константы */
const integer STD_PROP_LIST = 1 ;
const integer ARRAY_AS_PROPS = 2 ;
/* Методы */
public append ( mixed $value ) : void
public asort ( void ) : void
public __construct ([ mixed $array = array() [, int $flags = 0 ]] )
public count ( void ) : int
public current ( void ) : mixed
public getArrayCopy ( void ) : array
public getFlags ( void ) : int
public key ( void ) : mixed
public ksort ( void ) : void
public natcasesort ( void ) : void
public natsort ( void ) : void
public next ( void ) : void
public offsetExists ( mixed $index ) : bool
public offsetGet ( mixed $index ) : mixed
public offsetSet ( mixed $index , mixed $newval ) : void
public offsetUnset ( mixed $index ) : void
public rewind ( void ) : void
public seek ( int $position ) : void
public serialize ( void ) : string
public setFlags ( string $flags ) : void
public uasort ( callable $cmp_function ) : void
public uksort ( callable $cmp_function ) : void
public unserialize ( string $serialized ) : void
public valid ( void ) : bool
}

Предопределенные константы

Флаги ArrayIterator

ArrayIterator::STD_PROP_LIST

Свойства имеют обычную функциональность при доступе в виде списке (var_dump, foreach и т.д.).

ArrayIterator::ARRAY_AS_PROPS

Записи могут быть доступны как свойства (чтение и запись).

Содержание

  • ArrayIterator::append — Добавить элемент
  • ArrayIterator::asort — Сортирует массив по значениям
  • ArrayIterator::__construct — Создает ArrayIterator
  • ArrayIterator::count — Посчитать количество элементов
  • ArrayIterator::current — Возвращает текущий элемент в массиве
  • ArrayIterator::getArrayCopy — Возвращает копию массива
  • ArrayIterator::getFlags — Получает флаги поведения
  • ArrayIterator::key — Возвращает ключ текущего элемента массива
  • ArrayIterator::ksort — Сортирует массив по ключам
  • ArrayIterator::natcasesort — Сортирует массив "натурально", с учетом регистра
  • ArrayIterator::natsort — Сортирует массив "натурально"
  • ArrayIterator::next — Перемещает указатель за следующую запись
  • ArrayIterator::offsetExists — Проверяет существует ли смещение
  • ArrayIterator::offsetGet — Получает значение для смещения
  • ArrayIterator::offsetSet — Устанавливает значение для смещения
  • ArrayIterator::offsetUnset — Сбрасывает значение по смещению
  • ArrayIterator::rewind — Перемещает указатель в начало массива
  • ArrayIterator::seek — Перемещает указатель на выбранную позицию
  • ArrayIterator::serialize — Сериализует массив
  • ArrayIterator::setFlags — Устанавливает флаги, изменяющие поведение ArrayIterator
  • ArrayIterator::uasort — Сортировка с помощью заданной пользователем функции и сохранением ключей
  • ArrayIterator::uksort — Сортировка по ключам с помощью заданной функции сравнения
  • ArrayIterator::unserialize — Десериализация
  • ArrayIterator::valid — Проверяет, содержит ли массив еще записи


Добавить элемент

  • « ArrayIterator
  • ArrayIterator::asort »
  • PHP Manual
  • ArrayIterator
  • Добавить элемент

ArrayIterator::append

(PHP 5, PHP 7)

ArrayIterator::append — Добавить элемент

Описание

public ArrayIterator::append ( mixed $value ) : void

Добавляет значение value, как последний элемент массива.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

value

Значение, которое нужно добавить.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание:

Этот метод не может быть вызван, если ArrayIterator указывает на object.

Смотрите также

  • ArrayIterator::next() - Перемещает указатель за следующую запись


Сортирует массив по значениям

  • « ArrayIterator::append
  • ArrayIterator::__construct »
  • PHP Manual
  • ArrayIterator
  • Сортирует массив по значениям

ArrayIterator::asort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::asort — Сортирует массив по значениям

Описание

public ArrayIterator::asort ( void ) : void

Сортирует массив по значениям.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::ksort() - Сортирует массив по ключам
  • ArrayIterator::natcasesort() - Сортирует массив "натурально", с учетом регистра
  • ArrayIterator::natsort() - Сортирует массив "натурально"


Создает ArrayIterator

  • « ArrayIterator::asort
  • ArrayIterator::count »
  • PHP Manual
  • ArrayIterator
  • Создает ArrayIterator

ArrayIterator::__construct

(PHP 5, PHP 7)

ArrayIterator::__construct — Создает ArrayIterator

Описание

public ArrayIterator::__construct ([ mixed $array = array() [, int $flags = 0 ]] )

Создает ArrayIterator типа object.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

array

Массив или объект, который может быть итерирован.

flags

Флаги для управления поведением объекта ArrayIterator. Смотрите ArrayIterator::setFlags().

Возвращаемые значения

ArrayIterator object.

Ошибки

ArrayIterator::__construct() выбрасывает исключение типа InvalidArgumentException, если передано что-то кроме массива или объекта.

Смотрите также

  • ArrayIterator::getArrayCopy() - Возвращает копию массива


Посчитать количество элементов

  • « ArrayIterator::__construct
  • ArrayIterator::current »
  • PHP Manual
  • ArrayIterator
  • Посчитать количество элементов

ArrayIterator::count

(PHP 5, PHP 7)

ArrayIterator::count — Посчитать количество элементов

Описание

public ArrayIterator::count ( void ) : int

Возвращает количество элементов в массиве (array) или количество публичных свойств объекта (object).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество элементов или публичных свойств в ассоциативном массиве (array) или объекте (object) соответственно.

Смотрите также

  • ArrayIterator::getFlags() - Получает флаги поведения


Возвращает текущий элемент в массиве

  • « ArrayIterator::count
  • ArrayIterator::getArrayCopy »
  • PHP Manual
  • ArrayIterator
  • Возвращает текущий элемент в массиве

ArrayIterator::current

(PHP 5, PHP 7)

ArrayIterator::current — Возвращает текущий элемент в массиве

Описание

public ArrayIterator::current ( void ) : mixed

Возвращает текущий элемент в массиве (array).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий элемент в массиве (array).

Примеры

Пример #1 Пример использования ArrayIterator::current()

<?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


Возвращает копию массива

  • « ArrayIterator::current
  • ArrayIterator::getFlags »
  • PHP Manual
  • ArrayIterator
  • Возвращает копию массива

ArrayIterator::getArrayCopy

(PHP 5, PHP 7)

ArrayIterator::getArrayCopy — Возвращает копию массива

Описание

public ArrayIterator::getArrayCopy ( void ) : array

Возвращает копию массива.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Копия массива (array) или массив публичных свойств, если ArrayIterator указывает на объект (object).

Смотрите также

  • ArrayIterator::valid() - Проверяет, содержит ли массив еще записи


Получает флаги поведения

  • « ArrayIterator::getArrayCopy
  • ArrayIterator::key »
  • PHP Manual
  • ArrayIterator
  • Получает флаги поведения

ArrayIterator::getFlags

(PHP 5 >= 5.1.0, PHP 7)

ArrayIterator::getFlags — Получает флаги поведения

Описание

public ArrayIterator::getFlags ( void ) : int

Получает флаги поведения ArrayIterator. Смотрите метод ArrayIterator::setFlags для просмотра списка доступных флагов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает флаги поведения ArrayIterator.

Смотрите также

  • >ArrayIterator::setFlags()
  • ArrayIterator::valid() - Проверяет, содержит ли массив еще записи


Возвращает ключ текущего элемента массива

  • « ArrayIterator::getFlags
  • ArrayIterator::ksort »
  • PHP Manual
  • ArrayIterator
  • Возвращает ключ текущего элемента массива

ArrayIterator::key

(PHP 5, PHP 7)

ArrayIterator::key — Возвращает ключ текущего элемента массива

Описание

public ArrayIterator::key ( void ) : mixed

Эта функция возвращает ключ текущего элемента массива

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ключ текущего элемента в массиве (array).

Примеры

Пример #1 Пример использования ArrayIterator::key()

<?php
$array = array('key' => 'value');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

echo $iterator->key(); //key
?>


Сортирует массив по ключам

  • « ArrayIterator::key
  • ArrayIterator::natcasesort »
  • PHP Manual
  • ArrayIterator
  • Сортирует массив по ключам

ArrayIterator::ksort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::ksort — Сортирует массив по ключам

Описание

public ArrayIterator::ksort ( void ) : void

Сортирует массив по ключам.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::asort() - Сортирует массив по значениям
  • ArrayIterator::natcasesort() - Сортирует массив "натурально", с учетом регистра
  • ArrayIterator::natsort() - Сортирует массив "натурально"


Сортирует массив "натурально", с учетом регистра

  • « ArrayIterator::ksort
  • ArrayIterator::natsort »
  • PHP Manual
  • ArrayIterator
  • Сортирует массив "натурально", с учетом регистра

ArrayIterator::natcasesort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::natcasesort — Сортирует массив "натурально", с учетом регистра

Описание

public ArrayIterator::natcasesort ( void ) : void

Сортирует записи в массиве по значениям, используя алгоритм натуральной сортировки с учетом регистра.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::asort() - Сортирует массив по значениям
  • ArrayIterator::ksort() - Сортирует массив по ключам
  • ArrayIterator::natsort() - Сортирует массив "натурально"
  • natcasesort() - Сортирует массив, используя алгоритм "natural order" без учета регистра символов


Сортирует массив "натурально"

  • « ArrayIterator::natcasesort
  • ArrayIterator::next »
  • PHP Manual
  • ArrayIterator
  • Сортирует массив "натурально"

ArrayIterator::natsort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::natsort — Сортирует массив "натурально"

Описание

public ArrayIterator::natsort ( void ) : void

Сортирует записи в массиве по значениям, используя алгоритм натуральной сортировки.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::asort() - Сортирует массив по значениям
  • ArrayIterator::ksort() - Сортирует массив по ключам
  • ArrayIterator::natcasesort() - Сортирует массив "натурально", с учетом регистра
  • natsort() - Сортирует массив, используя алгоритм "natural order"


Перемещает указатель за следующую запись

  • « ArrayIterator::natsort
  • ArrayIterator::offsetExists »
  • PHP Manual
  • ArrayIterator
  • Перемещает указатель за следующую запись

ArrayIterator::next

(PHP 5, PHP 7)

ArrayIterator::next — Перемещает указатель за следующую запись

Описание

public ArrayIterator::next ( void ) : void

Перемещает указатель на следующую запись в массиве.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayIterator::next()

<?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::next
  • ArrayIterator::offsetGet »
  • PHP Manual
  • ArrayIterator
  • Проверяет существует ли смещение

ArrayIterator::offsetExists

(PHP 5, PHP 7)

ArrayIterator::offsetExists — Проверяет существует ли смещение

Описание

public ArrayIterator::offsetExists ( mixed $index ) : bool

Проверяет существует ли смещение.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Проверяемое смещение.

Возвращаемые значения

Возвращает TRUE, если смещение существует, в противном случае - FALSE

Смотрите также

  • ArrayIterator::valid() - Проверяет, содержит ли массив еще записи


Получает значение для смещения

  • « ArrayIterator::offsetExists
  • ArrayIterator::offsetSet »
  • PHP Manual
  • ArrayIterator
  • Получает значение для смещения

ArrayIterator::offsetGet

(PHP 5, PHP 7)

ArrayIterator::offsetGet — Получает значение для смещения

Описание

public ArrayIterator::offsetGet ( mixed $index ) : mixed

Получает значение из предоставленного смещения.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Смещение, из которого необходимо получить значения.

Возвращаемые значения

Значение по смещению index.

Смотрите также

  • ArrayIterator::offsetSet() - Устанавливает значение для смещения
  • ArrayIterator::offsetUnset() - Сбрасывает значение по смещению


Устанавливает значение для смещения

  • « ArrayIterator::offsetGet
  • ArrayIterator::offsetUnset »
  • PHP Manual
  • ArrayIterator
  • Устанавливает значение для смещения

ArrayIterator::offsetSet

(PHP 5, PHP 7)

ArrayIterator::offsetSet — Устанавливает значение для смещения

Описание

public ArrayIterator::offsetSet ( mixed $index , mixed $newval ) : void

Устанавливает значение для данного смещения.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Индекс для установки значения.

newval

Новое значение для хранения в индексе.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::offsetGet() - Получает значение для смещения
  • ArrayIterator::offsetUnset() - Сбрасывает значение по смещению


Сбрасывает значение по смещению

  • « ArrayIterator::offsetSet
  • ArrayIterator::rewind »
  • PHP Manual
  • ArrayIterator
  • Сбрасывает значение по смещению

ArrayIterator::offsetUnset

(PHP 5, PHP 7)

ArrayIterator::offsetUnset — Сбрасывает значение по смещению

Описание

public ArrayIterator::offsetUnset ( mixed $index ) : void

Сбрасывает значение по смещению.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Смещение для сброса.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::offsetGet() - Получает значение для смещения
  • ArrayIterator::offsetSet() - Устанавливает значение для смещения


Перемещает указатель в начало массива

  • « ArrayIterator::offsetUnset
  • ArrayIterator::seek »
  • PHP Manual
  • ArrayIterator
  • Перемещает указатель в начало массива

ArrayIterator::rewind

(PHP 5, PHP 7)

ArrayIterator::rewind — Перемещает указатель в начало массива

Описание

public ArrayIterator::rewind ( void ) : void

Перемещает указатель на первый элемент в массиве

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayIterator::rewind()

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'ноль';
$arrayobject[] = 'один';
$arrayobject[] = 'два';

$iterator = $arrayobject->getIterator();

$iterator->next();
echo $iterator->key(); //1

$iterator->rewind(); // перемещает указатель в начало массива
echo $iterator->key(); //0
?>


Перемещает указатель на выбранную позицию

  • « ArrayIterator::rewind
  • ArrayIterator::serialize »
  • PHP Manual
  • ArrayIterator
  • Перемещает указатель на выбранную позицию

ArrayIterator::seek

(PHP 5, PHP 7)

ArrayIterator::seek — Перемещает указатель на выбранную позицию

Описание

public ArrayIterator::seek ( int $position ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

position

Позиция, на которую нужно переместить указатель.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Сериализует массив

  • « ArrayIterator::seek
  • ArrayIterator::setFlags »
  • PHP Manual
  • ArrayIterator
  • Сериализует массив

ArrayIterator::serialize

(PHP 5 >= 5.3.0, PHP 7)

ArrayIterator::serialize — Сериализует массив

Описание

public ArrayIterator::serialize ( void ) : string

Сериализует массив.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сериализованный ArrayIterator.

Смотрите также

  • ArrayIterator::unserialize() - Десериализация


Устанавливает флаги, изменяющие поведение ArrayIterator

  • « ArrayIterator::serialize
  • ArrayIterator::uasort »
  • PHP Manual
  • ArrayIterator
  • Устанавливает флаги, изменяющие поведение ArrayIterator

ArrayIterator::setFlags

(PHP 5 >= 5.1.0, PHP 7)

ArrayIterator::setFlags — Устанавливает флаги, изменяющие поведение ArrayIterator

Описание

public ArrayIterator::setFlags ( string $flags ) : void

Устанавливает флаги, управляющие поведением.

Список параметров

flags

Поведение нового ArrayIterator. Принимает либо битовую маску, либо именованные константы. Использование именованных констант настоятельно рекомендуется для обеспечения совместимости с будущими версиями.

Доступные флаги поведения перечислены ниже. Фактический смысл этих флагов описан в предопределенных константах.

Флаги поведения ArrayIterator
значение | константа
1 | ArrayIterator::STD_PROP_LIST
2 | ArrayIterator::ARRAY_AS_PROPS

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::getFlags() - Получает флаги поведения


Сортировка с помощью заданной пользователем функции и сохранением ключей

  • « ArrayIterator::setFlags
  • ArrayIterator::uksort »
  • PHP Manual
  • ArrayIterator
  • Сортировка с помощью заданной пользователем функции и сохранением ключей

ArrayIterator::uasort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::uasort — Сортировка с помощью заданной пользователем функции и сохранением ключей

Описание

public ArrayIterator::uasort ( callable $cmp_function ) : void

Сортирует записи в массиве по значениям, используя функцию сортировки, определенную пользователем и сохраняя связь ключ-значение.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

cmp_function

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::asort() - Сортирует массив по значениям
  • ArrayIterator::uksort() - Сортировка по ключам с помощью заданной функции сравнения
  • usort() - Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов


Сортировка по ключам с помощью заданной функции сравнения

  • « ArrayIterator::uasort
  • ArrayIterator::unserialize »
  • PHP Manual
  • ArrayIterator
  • Сортировка по ключам с помощью заданной функции сравнения

ArrayIterator::uksort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::uksort — Сортировка по ключам с помощью заданной функции сравнения

Описание

public ArrayIterator::uksort ( callable $cmp_function ) : void

Сортирует записи в массиве по ключам, используя функцию сортировки, определенную пользователем.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

cmp_function

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::ksort() - Сортирует массив по ключам
  • ArrayIterator::uasort() - Сортировка с помощью заданной пользователем функции и сохранением ключей
  • uksort() - Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей


Десериализация

  • « ArrayIterator::uksort
  • ArrayIterator::valid »
  • PHP Manual
  • ArrayIterator
  • Десериализация

ArrayIterator::unserialize

(PHP 5 >= 5.3.0, PHP 7)

ArrayIterator::unserialize — Десериализация

Описание

public ArrayIterator::unserialize ( string $serialized ) : void

Десериализация.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

serialized

Сериализованный объект ArrayIterator, который предстоит десериализовать.

Возвращаемые значения

ArrayIterator.

Смотрите также

  • ArrayIterator::serialize() - Сериализует массив


Проверяет, содержит ли массив еще записи

  • « ArrayIterator::unserialize
  • CachingIterator »
  • PHP Manual
  • ArrayIterator
  • Проверяет, содержит ли массив еще записи

ArrayIterator::valid

(PHP 5, PHP 7)

ArrayIterator::valid — Проверяет, содержит ли массив еще записи

Описание

public ArrayIterator::valid ( void ) : bool

Проверяет, содержит ли массив array еще записи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если итератор действительный и FALSE в противном случае.

Примеры

Пример #1 Пример использования ArrayIterator::valid()

<?php
$array = array('1' => 'one');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

var_dump($iterator->valid()); //bool(true)

$iterator->next(); // перемещаем указатель на следующий элемент

//bool(false) потому что в массиве только один элемент
var_dump($iterator->valid());
?>


Класс CachingIterator

(PHP 5, PHP 7)

Введение

Этот объект поддерживает кеширование итерации над другим итератором.

Обзор классов

CachingIterator extends IteratorIterator implements OuterIterator , ArrayAccess , Countable {
/* Константы */
const integer CALL_TOSTRING = 1 ;
const integer CATCH_GET_CHILD = 16 ;
const integer TOSTRING_USE_KEY = 2 ;
const integer TOSTRING_USE_CURRENT = 4 ;
const integer TOSTRING_USE_INNER = 8 ;
const integer FULL_CACHE = 256 ;
/* Методы */
public __construct ( Iterator $iterator [, int $flags = self::CALL_TOSTRING ] )
public count ( void ) : int
public current ( void ) : mixed
public getCache ( void ) : array
public getFlags ( void ) : void
public getInnerIterator ( void ) : Iterator
public hasNext ( void ) : void
public key ( void ) : scalar
public next ( void ) : void
public offsetExists ( mixed $index ) : void
public offsetGet ( string $index ) : void
public offsetSet ( mixed $index , mixed $newval ) : void
public offsetUnset ( string $index ) : void
public rewind ( void ) : void
public setFlags ( int $flags ) : void
public __toString ( void ) : void
public valid ( void ) : void
}

Предопределенные константы

CachingIterator::CALL_TOSTRING

Преобразует каждый элемент в строку.

CachingIterator::CATCH_GET_CHILD

Не выбрасывать исключения при доступе к дочерним элементам.

CachingIterator::TOSTRING_USE_KEY

Использовать ключ при преобразовании в строку.

CachingIterator::TOSTRING_USE_CURRENT

Использовать текущий элемент при преобразовании в строку.

CachingIterator::TOSTRING_USE_INNER

Использовать внутренний итератор при преобразовании в строку.

CachingIterator::FULL_CACHE

Кеширование всей прочтенной информации.

Содержание

  • CachingIterator::__construct — Создает новый объект CachingIterator для итератора
  • CachingIterator::count — Возвращает число элементов в итераторе
  • CachingIterator::current — Возвращает текущий элемент
  • CachingIterator::getCache — Получение содержимого кеша
  • CachingIterator::getFlags — Получает используемые флаги
  • CachingIterator::getInnerIterator — Возвращает внутренний итератор
  • CachingIterator::hasNext — Проверяет, имеет ли внутренний итератор допустимый следующий элемент
  • CachingIterator::key — Возвращает ключ для текущего элемента
  • CachingIterator::next — Перемещает итератор к следующему элементу
  • CachingIterator::offsetExists — Назначение offsetExists
  • CachingIterator::offsetGet — Назначение offsetGet
  • CachingIterator::offsetSet — Назначение offsetSet
  • CachingIterator::offsetUnset — Назначение offsetUnset
  • CachingIterator::rewind — Возвращает итератор в начало
  • CachingIterator::setFlags — Устанавливает флаги для объекта CachingIterator
  • CachingIterator::__toString — Возвращает строковое представление текущего элемента
  • CachingIterator::valid — Проверяет, является ли текущий элемент допустимым


Создает новый объект CachingIterator для итератора

  • « CachingIterator
  • CachingIterator::count »
  • PHP Manual
  • CachingIterator
  • Создает новый объект CachingIterator для итератора

CachingIterator::__construct

(PHP 5, PHP 7)

CachingIterator::__construct — Создает новый объект CachingIterator для итератора

Описание

public CachingIterator::__construct ( Iterator $iterator [, int $flags = self::CALL_TOSTRING ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Iterator для кеширования

flags

Битовые маски флагов.


Возвращает число элементов в итераторе

  • « CachingIterator::__construct
  • CachingIterator::current »
  • PHP Manual
  • CachingIterator
  • Возвращает число элементов в итераторе

CachingIterator::count

(PHP 5 >= 5.2.2, PHP 7)

CachingIterator::count — Возвращает число элементов в итераторе

Описание

public CachingIterator::count ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает число элементов в итераторе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество проитерированных элементов.


Возвращает текущий элемент

  • « CachingIterator::count
  • CachingIterator::getCache »
  • PHP Manual
  • CachingIterator
  • Возвращает текущий элемент

CachingIterator::current

(PHP 5, PHP 7)

CachingIterator::current — Возвращает текущий элемент

Описание

public CachingIterator::current ( void ) : mixed
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает текущий элемент в итерации.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Mixed

Смотрите также

  • Iterator::current() - Возврат текущего элемента


Получение содержимого кеша

  • « CachingIterator::current
  • CachingIterator::getFlags »
  • PHP Manual
  • CachingIterator
  • Получение содержимого кеша

CachingIterator::getCache

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::getCache — Получение содержимого кеша

Описание

public CachingIterator::getCache ( void ) : array

Получение содержимого кэша.

Замечание:

Должен использоваться флаг CachingIterator::FULL_CACHE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив array содержащий элементы кеша.

Ошибки

Выбрасывает BadMethodCallException в случае, если не установлен флаг CachingIterator::FULL_CACHE.

Примеры

Пример #1 Пример использования CachingIterator::getCache()

<?php
$iterator = new ArrayIterator(array(1, 2, 3));
$cache    = new CachingIterator($iterator, CachingIterator::FULL_CACHE);

$cache->next();
$cache->next();
var_dump($cache->getCache());

$cache->next();
var_dump($cache->getCache());
?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Получает используемые флаги

  • « CachingIterator::getCache
  • CachingIterator::getInnerIterator »
  • PHP Manual
  • CachingIterator
  • Получает используемые флаги

CachingIterator::getFlags

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::getFlags — Получает используемые флаги

Описание

public CachingIterator::getFlags ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Получает битовую маску флагов, используемых для данного экземпляра CachingIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Описание...


Возвращает внутренний итератор

  • « CachingIterator::getFlags
  • CachingIterator::hasNext »
  • PHP Manual
  • CachingIterator
  • Возвращает внутренний итератор

CachingIterator::getInnerIterator

(PHP 5, PHP 7)

CachingIterator::getInnerIterator — Возвращает внутренний итератор

Описание

public CachingIterator::getInnerIterator ( void ) : Iterator
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает итератор, переданный конструктору.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект, реализующий интерфейс итератора (Iterator).


Проверяет, имеет ли внутренний итератор допустимый следующий элемент

  • « CachingIterator::getInnerIterator
  • CachingIterator::key »
  • PHP Manual
  • CachingIterator
  • Проверяет, имеет ли внутренний итератор допустимый следующий элемент

CachingIterator::hasNext

(PHP 5, PHP 7)

CachingIterator::hasNext — Проверяет, имеет ли внутренний итератор допустимый следующий элемент

Описание

public CachingIterator::hasNext ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает ключ для текущего элемента

  • « CachingIterator::hasNext
  • CachingIterator::next »
  • PHP Manual
  • CachingIterator
  • Возвращает ключ для текущего элемента

CachingIterator::key

(PHP 5, PHP 7)

CachingIterator::key — Возвращает ключ для текущего элемента

Описание

public CachingIterator::key ( void ) : scalar
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Этот метод может вернуть ключ для текущего элемента.

Список параметров

У этой функции нет параметров.


Перемещает итератор к следующему элементу

  • « CachingIterator::key
  • CachingIterator::offsetExists »
  • PHP Manual
  • CachingIterator
  • Перемещает итератор к следующему элементу

CachingIterator::next

(PHP 5, PHP 7)

CachingIterator::next — Перемещает итератор к следующему элементу

Описание

public CachingIterator::next ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Перемещает итератор к следующему элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Назначение offsetExists

  • « CachingIterator::next
  • CachingIterator::offsetGet »
  • PHP Manual
  • CachingIterator
  • Назначение offsetExists

CachingIterator::offsetExists

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::offsetExists — Назначение offsetExists

Описание

public CachingIterator::offsetExists ( mixed $index ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Индекс, который должен быть проверен.

Возвращаемые значения

Возвращает TRUE, если элемент с указанным смещением существует, FALSE - в противном случае.


Назначение offsetGet

  • « CachingIterator::offsetExists
  • CachingIterator::offsetSet »
  • PHP Manual
  • CachingIterator
  • Назначение offsetGet

CachingIterator::offsetGet

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::offsetGet — Назначение offsetGet

Описание

public CachingIterator::offsetGet ( string $index ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Описание...

Возвращаемые значения

Описание...


Назначение offsetSet

  • « CachingIterator::offsetGet
  • CachingIterator::offsetUnset »
  • PHP Manual
  • CachingIterator
  • Назначение offsetSet

CachingIterator::offsetSet

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::offsetSet — Назначение offsetSet

Описание

public CachingIterator::offsetSet ( mixed $index , mixed $newval ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Индекс элемента.

newval

Новое значение для элемента с индексомindex.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Назначение offsetUnset

  • « CachingIterator::offsetSet
  • CachingIterator::rewind »
  • PHP Manual
  • CachingIterator
  • Назначение offsetUnset

CachingIterator::offsetUnset

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::offsetUnset — Назначение offsetUnset

Описание

public CachingIterator::offsetUnset ( string $index ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Индекс элемента, который будет удален.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает итератор в начало

  • « CachingIterator::offsetUnset
  • CachingIterator::setFlags »
  • PHP Manual
  • CachingIterator
  • Возвращает итератор в начало

CachingIterator::rewind

(PHP 5, PHP 7)

CachingIterator::rewind — Возвращает итератор в начало

Описание

public CachingIterator::rewind ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает итератор в начало.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает флаги для объекта CachingIterator

  • « CachingIterator::rewind
  • CachingIterator::__toString »
  • PHP Manual
  • CachingIterator
  • Устанавливает флаги для объекта CachingIterator

CachingIterator::setFlags

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::setFlags — Устанавливает флаги для объекта CachingIterator

Описание

public CachingIterator::setFlags ( int $flags ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Устанавливает флаги для объекта CachingIterator.

Список параметров

flags

Битовая маска флагов для установки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает строковое представление текущего элемента

  • « CachingIterator::setFlags
  • CachingIterator::valid »
  • PHP Manual
  • CachingIterator
  • Возвращает строковое представление текущего элемента

CachingIterator::__toString

(PHP 5, PHP 7)

CachingIterator::__toString — Возвращает строковое представление текущего элемента

Описание

public CachingIterator::__toString ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Получает строковое представление текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строковое (string) представление текущего элемента.


Проверяет, является ли текущий элемент допустимым

  • « CachingIterator::__toString
  • CallbackFilterIterator »
  • PHP Manual
  • CachingIterator
  • Проверяет, является ли текущий элемент допустимым

CachingIterator::valid

(PHP 5, PHP 7)

CachingIterator::valid — Проверяет, является ли текущий элемент допустимым

Описание

public CachingIterator::valid ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Проверяет, является ли текущий элемент допустимым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Класс CallbackFilterIterator

(PHP 5 >= 5.4.0, PHP 7)

Введение

Обзор классов

CallbackFilterIterator extends FilterIterator implements OuterIterator {
/* Методы */
public __construct ( Iterator $iterator , callable $callback )
public accept ( void ) : bool
/* Наследуемые методы */
public abstract FilterIterator::accept ( void ) : bool
public FilterIterator::__construct ( Iterator $iterator )
public FilterIterator::current ( void ) : mixed
public FilterIterator::getInnerIterator ( void ) : Iterator
public FilterIterator::key ( void ) : mixed
public FilterIterator::next ( void ) : void
public FilterIterator::rewind ( void ) : void
public FilterIterator::valid ( void ) : bool
}

Примеры

Callback-функция может принимать до трех аргументов: текущий элемент, текущий ключ и итератор соответственно.

Пример #1 Доступные аргументы обратного вызова

<?php

/**
 * Callback-функция для CallbackFilterIterator
 *
 * @param $current   Значение текущего элемента
 * @param $key       Ключ текущего элемента
 * @param $iterator  Фильтруемый итератор
 * @return boolean   TRUE для принятия текущего элемента, иначе - FALSE
 */
function my_callback($current, $key, $iterator) {
    // Код фильтрации
}

?>

Любая callback-функция типа callable может быть использована. Например, строка, содержащая имя функции, массив для метода или анонимная функция.

Пример #2 Основные примеры обратного вызова

<?php

$dir = new FilesystemIterator(__DIR__);

// Фильтр больших файлов ( > 100MB)
function is_large_file($current) {
    return $current->isFile() && $current->getSize() > 104857600;
}
$large_files = new CallbackFilterIterator($dir, 'is_large_file');

// Фильтр каталогов
$files = new CallbackFilterIterator($dir, function ($current, $key, $iterator) {
    return $current->isDir() && ! $iterator->isDot();
});

?>

Содержание

  • CallbackFilterIterator::accept — Вызывает callback-функцию и передает ей в качестве аргументов текущее значение, текущий ключ и внутренний указатель
  • CallbackFilterIterator::__construct — Создает фильтрующий итератор на основе другого итератора


Вызывает callback-функцию и передает ей в качестве аргументов текущее значение, текущий ключ и внутренний указатель

  • « CallbackFilterIterator
  • CallbackFilterIterator::__construct »
  • PHP Manual
  • CallbackFilterIterator
  • Вызывает callback-функцию и передает ей в качестве аргументов текущее значение, текущий ключ и внутренний указатель

CallbackFilterIterator::accept

(PHP 5 >= 5.4.0, PHP 7)

CallbackFilterIterator::accept — Вызывает callback-функцию и передает ей в качестве аргументов текущее значение, текущий ключ и внутренний указатель

Описание

public CallbackFilterIterator::accept ( void ) : bool

Вызывает callback-функцию и передает ей в качестве аргументов текущее значение, текущий ключ и внутренний указатель.

Callback-функция должна возвращать TRUE, если текущий элемент прошел фильтр, FALSE в противном случае.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если текущий элемент прошел фильтр, FALSE в противном случае.

Смотрите также

  • Примеры использования CallbackFilterIterator
  • CallbackFilterIterator::__construct() - Создает фильтрующий итератор на основе другого итератора


Создает фильтрующий итератор на основе другого итератора

  • « CallbackFilterIterator::accept
  • DirectoryIterator »
  • PHP Manual
  • CallbackFilterIterator
  • Создает фильтрующий итератор на основе другого итератора

CallbackFilterIterator::__construct

(PHP 5 >= 5.4.0, PHP 7)

CallbackFilterIterator::__construct — Создает фильтрующий итератор на основе другого итератора

Описание

public CallbackFilterIterator::__construct ( Iterator $iterator , callable $callback )

Создает фильтрующий итератор, используя функцию callback для отбора или отклонения элементов.

Список параметров

iterator

Итератор, к которому применяется фильтр.

callback

Callback-функция, которая должна возвращать TRUE, если текущий элемент прошел фильтр, и FALSE, если элемент отклонен. Смотрите примеры.

Может быть любым callable значением.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Примеры использования CallbackFilterIterator
  • CallbackFilterIterator::accept() - Вызывает callback-функцию и передает ей в качестве аргументов текущее значение, текущий ключ и внутренний указатель


Класс DirectoryIterator

(PHP 5, PHP 7)

Введение

Класс DirectoryIterator предоставляет простой интерфейс для просмотра содержимого каталогов файловой системы.

Обзор классов

DirectoryIterator extends SplFileInfo implements SeekableIterator {
/* Методы */
public __construct ( string $path )
public current ( void ) : DirectoryIterator
public getATime ( void ) : int
public getBasename ([ string $suffix ] ) : string
public getCTime ( void ) : int
public getExtension ( void ) : string
public getFilename ( void ) : string
public getGroup ( void ) : int
public getInode ( void ) : int
public getMTime ( void ) : int
public getOwner ( void ) : int
public getPath ( void ) : string
public getPathname ( void ) : string
public getPerms ( void ) : int
public getSize ( void ) : int
public getType ( void ) : string
public isDir ( void ) : bool
public isDot ( void ) : bool
public isExecutable ( void ) : bool
public isFile ( void ) : bool
public isLink ( void ) : bool
public isReadable ( void ) : bool
public isWritable ( void ) : bool
public key ( void ) : string
public next ( void ) : void
public rewind ( void ) : void
public seek ( int $position ) : void
public __toString ( void ) : string
public valid ( void ) : bool
}

Список изменений

Версия | Описание
5.1.2 | DirectoryIterator наследует класс SplFileInfo.

Содержание

  • DirectoryIterator::__construct — Создаёт новый итератор директорий по пути
  • DirectoryIterator::current — Возвращает текущий элемент DirectoryIterator
  • DirectoryIterator::getATime — Возвращает время последнего доступа к текущему элементу DirectoryIterator
  • DirectoryIterator::getBasename — Возвращает имя файла (без расширения) текущего элемента DirectoryIterator
  • DirectoryIterator::getCTime — Возвращает время последнего изменения inode текущего элемента DirectoryIterator
  • DirectoryIterator::getExtension — Возвращает расширение файла
  • DirectoryIterator::getFilename — Возвращает имя файла текущего элемента DirectoryIterator
  • DirectoryIterator::getGroup — Возвращает идентификатор группы текущего элемента DirectoryIterator
  • DirectoryIterator::getInode — Возвращает inode текущего элемента DirectoryIterator
  • DirectoryIterator::getMTime — Возвращает время последнего изменения текущего элемента DirectoryIterator
  • DirectoryIterator::getOwner — Возвращает идентификатор владельца текущего элемента DirectoryIterator
  • DirectoryIterator::getPath — Возвращает путь к текущему элементу DirectoryIterator без имени файла
  • DirectoryIterator::getPathname — Возвращает путь и имя файла текущего элемента DirectoryIterator
  • DirectoryIterator::getPerms — Возвращает набор прав для текущего элемента DirectoryIterator item
  • DirectoryIterator::getSize — Возвращает размер текущего элемента DirectoryIterator
  • DirectoryIterator::getType — Определяет тип текущего элемента DirectoryIterator
  • DirectoryIterator::isDir — Определяет, является ли текущий элемент DirectoryIterator директорией
  • DirectoryIterator::isDot — Определяет, является ли текущий элемент DirectoryIterator '.' или '..'
  • DirectoryIterator::isExecutable — Определяет, является ли текущий элемент DirectoryIterator исполняемым
  • DirectoryIterator::isFile — Определяет, является ли текущий элемент DirectoryIterator обычным файлом
  • DirectoryIterator::isLink — Определяет, является ли текущий элемент DirectoryIterator символической ссылкой
  • DirectoryIterator::isReadable — Определяет, доступен ли текущий элемент DirectoryIterator для чтения
  • DirectoryIterator::isWritable — Определяет, доступен ли текущий элемент DirectoryIterator для записи
  • DirectoryIterator::key — Возвращает ключ текущего элемента DirectoryIterator
  • DirectoryIterator::next — Перемещает указатель на следующий элемент DirectoryIterator
  • DirectoryIterator::rewind — Устанавливает указатель на первый элемент DirectoryIterator
  • DirectoryIterator::seek — Перемещает указатель DirectoryIterator на определённую позицию
  • DirectoryIterator::__toString — Возвращает имя файла в виде строки
  • DirectoryIterator::valid — Проверяет, является ли текущий элемент DirectoryIterator допустимым файлом


Создаёт новый итератор директорий по пути

  • « DirectoryIterator
  • DirectoryIterator::current »
  • PHP Manual
  • DirectoryIterator
  • Создаёт новый итератор директорий по пути

DirectoryIterator::__construct

(PHP 5, PHP 7)

DirectoryIterator::__construct — Создаёт новый итератор директорий по пути

Описание

public DirectoryIterator::__construct ( string $path )

Создаёт новый итератор директорий по пути.

Список параметров

path

Путь к директории для прохода.

Ошибки

Выбрасывается исключение UnexpectedValueException в случае, если параметр path не может быть открыт.

Выбрасывается исключение RuntimeException в случае, если параметр path содержит пустую строку.

Список изменений

Версия | Описание
5.3.0 | Выбрасывается исключение UnexpectedValueException, если путь path не может быть открыт.
5.1.3 | Выбрасывается исключение RuntimeException, если параметр path содержит пустую строку.
5.1.0 | Выбрасывается исключение RuntimeException при возникновении ошибки. Раньше выбрасывалось исключение Exception.

Примеры

Пример #1 Пример использования DirectoryIterator::__construct()

Пример выведет список содержимого директории, содержащей выполняемый скрипт.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    if (!$fileinfo->isDot()) {
        var_dump($fileinfo->getFilename());
    }
}
?>

Смотрите также

  • SplFileInfo
  • Iterator


Возвращает текущий элемент DirectoryIterator

  • « DirectoryIterator::__construct
  • DirectoryIterator::getATime »
  • PHP Manual
  • DirectoryIterator
  • Возвращает текущий элемент DirectoryIterator

DirectoryIterator::current

(PHP 5, PHP 7)

DirectoryIterator::current — Возвращает текущий элемент DirectoryIterator

Описание

public DirectoryIterator::current ( void ) : DirectoryIterator

Возвращает текущий элемент DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий элемент DirectoryIterator.

Примеры

Пример #1 Пример использования DirectoryIterator::current()

Пример выведет список содержимого директории, содержащей выполняемый скрипт.

<?php
$iterator = new DirectoryIterator(__DIR__);
while($iterator->valid()) {
    $file = $iterator->current();
    echo $iterator->key() . " => " . $file->getFilename() . "\n";
    $iterator->next();
}
?>

Результатом выполнения данного примера будет что-то подобное:

0 => .
1 => ..
2 => apple.jpg
3 => banana.jpg
4 => index.php
5 => pear.jpg

Смотрите также

  • DirectoryIterator::key() - Возвращает ключ текущего элемента DirectoryIterator
  • DirectoryIterator::next() - Перемещает указатель на следующий элемент DirectoryIterator
  • DirectoryIterator::rewind() - Устанавливает указатель на первый элемент DirectoryIterator
  • DirectoryIterator::valid() - Проверяет, является ли текущий элемент DirectoryIterator допустимым файлом
  • Iterator::current() - Возврат текущего элемента


Возвращает время последнего доступа к текущему элементу DirectoryIterator

  • « DirectoryIterator::current
  • DirectoryIterator::getBasename »
  • PHP Manual
  • DirectoryIterator
  • Возвращает время последнего доступа к текущему элементу DirectoryIterator

DirectoryIterator::getATime

(PHP 5, PHP 7)

DirectoryIterator::getATime — Возвращает время последнего доступа к текущему элементу DirectoryIterator

Описание

public DirectoryIterator::getATime ( void ) : int

Возвращает время последнего доступа к текущему элементу DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает время, когда в последний раз был осуществлен доступ к указанному файлу. Время возвращается в формате отметки времени Unix.

Примеры

Пример #1 Пример использования DirectoryIterator::getATime()

Пример выведет список файлов директории, содержащей выполняемый скрипт, и время последнего доступа к ним.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . " " . $fileinfo->getATime() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg 1240047118
banana.jpg 1240065176
index.php 1240047208
pear.jpg 12240047979

Смотрите также

  • DirectoryIterator::getCTime() - Возвращает время последнего изменения inode текущего элемента DirectoryIterator
  • DirectoryIterator::getMTime() - Возвращает время последнего изменения текущего элемента DirectoryIterator
  • fileatime() - Возвращает время последнего доступа к файлу


Возвращает имя файла (без расширения) текущего элемента DirectoryIterator

  • « DirectoryIterator::getATime
  • DirectoryIterator::getCTime »
  • PHP Manual
  • DirectoryIterator
  • Возвращает имя файла (без расширения) текущего элемента DirectoryIterator

DirectoryIterator::getBasename

(PHP 5 >= 5.2.2, PHP 7)

DirectoryIterator::getBasename — Возвращает имя файла (без расширения) текущего элемента DirectoryIterator

Описание

public DirectoryIterator::getBasename ([ string $suffix ] ) : string

Возвращает имя файла (без расширения) текущего элемента DirectoryIterator.

Список параметров

suffix

Если имя файла оканчивается на suffix, то он будет отброшен.

Возвращаемые значения

Имя файла текущего элемента DirectoryIterator.

Примеры

Пример #1 Пример использования DirectoryIterator::getBasename()

Пример выведет список имён файлов директории, содержащей выполняемый скрипт. Если имя файла заканчивается на .jpg, данный суффикс будет отброшен.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getBasename() . "\n";
        echo $fileinfo->getBasename('.jpg') . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg
apple
banana.jpg
banana
index.php
index.php
pear.jpg
pear

Смотрите также

  • DirectoryIterator::getFilename() - Возвращает имя файла текущего элемента DirectoryIterator
  • DirectoryIterator::getPath() - Возвращает путь к текущему элементу DirectoryIterator без имени файла
  • DirectoryIterator::getPathname() - Возвращает путь и имя файла текущего элемента DirectoryIterator
  • basename() - Возвращает последний компонент имени из указанного пути
  • pathinfo() - Возвращает информацию о пути к файлу


Возвращает время последнего изменения inode текущего элемента DirectoryIterator

  • « DirectoryIterator::getBasename
  • DirectoryIterator::getExtension »
  • PHP Manual
  • DirectoryIterator
  • Возвращает время последнего изменения inode текущего элемента DirectoryIterator

DirectoryIterator::getCTime

(PHP 5, PHP 7)

DirectoryIterator::getCTime — Возвращает время последнего изменения inode текущего элемента DirectoryIterator

Описание

public DirectoryIterator::getCTime ( void ) : int

Возвращает время последнего изменения inode текущего элемента DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает время последнего изменения файла, в формате отметки времени Unix.

Примеры

Пример #1 Пример использования DirectoryIterator::getCTime()

Пример выведет список файлов директории, содержащей выполняемый скрипт и время их последнего изменения.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . " изменялся в " . $fileinfo->getCTime() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg изменялся в 1240398312
banana.jpg изменялся в 1238605440
index.php изменялся в 1240398935
pear.jpg изменялся в 1237423740

Смотрите также

  • DirectoryIterator::getATime() - Возвращает время последнего доступа к текущему элементу DirectoryIterator
  • DirectoryIterator::getMTime() - Возвращает время последнего изменения текущего элемента DirectoryIterator
  • filectime() - Возвращает время изменения индексного дескриптора файла


Возвращает расширение файла

  • « DirectoryIterator::getCTime
  • DirectoryIterator::getFilename »
  • PHP Manual
  • DirectoryIterator
  • Возвращает расширение файла

DirectoryIterator::getExtension

(PHP 5 >= 5.3.6, PHP 7)

DirectoryIterator::getExtension — Возвращает расширение файла

Описание

public DirectoryIterator::getExtension ( void ) : string

Возвращает расширение файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string), содержащую расширение файла или пустую строку (string), если файл его не имеет.

Примеры

Пример #1 Пример использования DirectoryIterator::getExtension()

<?php

$directory = new DirectoryIterator(__DIR__);
foreach ($directory as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getExtension() . "\n";
    }
}

?>

Результатом выполнения данного примера будет что-то подобное:

php
txt
jpg
gz

Примечания

Замечание:

Данный метод доступен только в PHP 5.3.6. Другим доступным решением может быть функция pathinfo().

<?php
$extension = pathinfo($fileinfo->getFilename(), PATHINFO_EXTENSION);
?>

Смотрите также

  • DirectoryIterator::getFilename() - Возвращает имя файла текущего элемента DirectoryIterator
  • DirectoryIterator::getBasename() - Возвращает имя файла (без расширения) текущего элемента DirectoryIterator
  • pathinfo() - Возвращает информацию о пути к файлу


Возвращает имя файла текущего элемента DirectoryIterator

  • « DirectoryIterator::getExtension
  • DirectoryIterator::getGroup »
  • PHP Manual
  • DirectoryIterator
  • Возвращает имя файла текущего элемента DirectoryIterator

DirectoryIterator::getFilename

(PHP 5, PHP 7)

DirectoryIterator::getFilename — Возвращает имя файла текущего элемента DirectoryIterator

Описание

public DirectoryIterator::getFilename ( void ) : string

Возвращает имя файла текущего элемента DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла текущего элемента DirectoryIterator.

Примеры

Пример #1 Пример использования DirectoryIterator::getFilename()

Пример выведет список содержимого директории, содержащей выполняемый скрипт.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    echo $fileinfo->getFilename() . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

.
..
apple.jpg
banana.jpg
index.php
pear.jpg

Смотрите также

  • DirectoryIterator::getBasename() - Возвращает имя файла (без расширения) текущего элемента DirectoryIterator
  • DirectoryIterator::getPath() - Возвращает путь к текущему элементу DirectoryIterator без имени файла
  • DirectoryIterator::getPathname() - Возвращает путь и имя файла текущего элемента DirectoryIterator
  • pathinfo() - Возвращает информацию о пути к файлу


Возвращает идентификатор группы текущего элемента DirectoryIterator

  • « DirectoryIterator::getFilename
  • DirectoryIterator::getInode »
  • PHP Manual
  • DirectoryIterator
  • Возвращает идентификатор группы текущего элемента DirectoryIterator

DirectoryIterator::getGroup

(PHP 5, PHP 7)

DirectoryIterator::getGroup — Возвращает идентификатор группы текущего элемента DirectoryIterator

Описание

public DirectoryIterator::getGroup ( void ) : int

Возвращает идентификатор группы текущего файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор группы текущего элемента DirectoryIterator в числовом формате.

Примеры

Пример #1 Пример использования DirectoryIterator::getGroup()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
$groupid  = $iterator->getGroup();
echo 'Директория принадлежит группе ' . $groupid . "\n";
print_r(posix_getgrgid($groupid));
?>

Результатом выполнения данного примера будет что-то подобное:

Директория принадлежит группе 42
Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Смотрите также

  • DirectoryIterator::getiNode() - Возвращает inode текущего элемента DirectoryIterator
  • DirectoryIterator::getOwner() - Возвращает идентификатор владельца текущего элемента DirectoryIterator
  • DirectoryIterator::getPerms() - Возвращает набор прав для текущего элемента DirectoryIterator item
  • filegroup() - Получает идентификатор группы файла
  • posix_getgrgid() - Возвращает информацию о группе по её ID


Возвращает inode текущего элемента DirectoryIterator

  • « DirectoryIterator::getGroup
  • DirectoryIterator::getMTime »
  • PHP Manual
  • DirectoryIterator
  • Возвращает inode текущего элемента DirectoryIterator

DirectoryIterator::getInode

(PHP 5, PHP 7)

DirectoryIterator::getInode — Возвращает inode текущего элемента DirectoryIterator

Описание

public DirectoryIterator::getInode ( void ) : int

Возвращает inode текущего элемента DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает inode файла.

Примеры

Пример #1 Пример использования DirectoryIterator::getInode()

Пример выведет inode директории, содержащей выполняемый скрипт.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
echo $iterator->getInode();
?>

Смотрите также

  • DirectoryIterator::getGroup() - Возвращает идентификатор группы текущего элемента DirectoryIterator
  • DirectoryIterator::getOwner() - Возвращает идентификатор владельца текущего элемента DirectoryIterator
  • DirectoryIterator::getPerms() - Возвращает набор прав для текущего элемента DirectoryIterator item
  • fileinode() - Возвращает индексный дескриптор файла


Возвращает время последнего изменения текущего элемента DirectoryIterator

  • « DirectoryIterator::getInode
  • DirectoryIterator::getOwner »
  • PHP Manual
  • DirectoryIterator
  • Возвращает время последнего изменения текущего элемента DirectoryIterator

DirectoryIterator::getMTime

(PHP 5, PHP 7)

DirectoryIterator::getMTime — Возвращает время последнего изменения текущего элемента DirectoryIterator

Описание

public DirectoryIterator::getMTime ( void ) : int

Возвращает время последнего изменения текущего элемента DirectoryIterator в формате отметки времени Unix.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Время последнего изменения файла в формате отметки времени Unix.

Примеры

Пример #1 Пример использования DirectoryIterator::getMTime()

Пример выведет список файлов директории, содержащей выполняемый скрипт и время их последней модификации.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . " " . $fileinfo->getMTime() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg 1240047118
banana.jpg 1240065176
index.php 1240047208
pear.jpg 12240047979

Смотрите также

  • DirectoryIterator::getATime() - Возвращает время последнего доступа к текущему элементу DirectoryIterator
  • DirectoryIterator::getCTime() - Возвращает время последнего изменения inode текущего элемента DirectoryIterator
  • filemtime() - Возвращает время последнего изменения файла


Возвращает идентификатор владельца текущего элемента DirectoryIterator

  • « DirectoryIterator::getMTime
  • DirectoryIterator::getPath »
  • PHP Manual
  • DirectoryIterator
  • Возвращает идентификатор владельца текущего элемента DirectoryIterator

DirectoryIterator::getOwner

(PHP 5, PHP 7)

DirectoryIterator::getOwner — Возвращает идентификатор владельца текущего элемента DirectoryIterator

Описание

public DirectoryIterator::getOwner ( void ) : int

Возвращает идентификатор владельца текущего элемента DirectoryIterator в числовом формате.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Владелец файла, в числовом формате.

Примеры

Пример #1 Пример использования DirectoryIterator::getOwner()

Пример показывает владельца директории, содержащей выполняемый скрипт.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
print_r(posix_getpwuid($iterator->getOwner()));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name] => tom
    [passwd] => x
    [uid] => 501
    [gid] => 42
    [gecos] => Tom Cat
    [dir] => /home/tom
    [shell] => /bin/bash
)

Смотрите также

  • DirectoryIterator::getGroup() - Возвращает идентификатор группы текущего элемента DirectoryIterator
  • DirectoryIterator::getiNode() - Возвращает inode текущего элемента DirectoryIterator
  • DirectoryIterator::getPerms() - Возвращает набор прав для текущего элемента DirectoryIterator item
  • posix_getpwuid() - Возвращает информацию о пользователе, используя его ID


Возвращает путь к текущему элементу DirectoryIterator без имени файла

  • « DirectoryIterator::getOwner
  • DirectoryIterator::getPathname »
  • PHP Manual
  • DirectoryIterator
  • Возвращает путь к текущему элементу DirectoryIterator без имени файла

DirectoryIterator::getPath

(PHP 5, PHP 7)

DirectoryIterator::getPath — Возвращает путь к текущему элементу DirectoryIterator без имени файла

Описание

public DirectoryIterator::getPath ( void ) : string

Возвращает путь к текущему элементу DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь до файла (без имени файла и завершающего слеша).

Примеры

Пример #1 Пример использования DirectoryIterator::getPath()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
echo $iterator->getPath();
?>

Результатом выполнения данного примера будет что-то подобное:

/home/examples/public_html

Смотрите также

  • DirectoryIterator::getBasename() - Возвращает имя файла (без расширения) текущего элемента DirectoryIterator
  • DirectoryIterator::getFilename() - Возвращает имя файла текущего элемента DirectoryIterator
  • DirectoryIterator::getPathname() - Возвращает путь и имя файла текущего элемента DirectoryIterator
  • pathinfo() - Возвращает информацию о пути к файлу


Возвращает путь и имя файла текущего элемента DirectoryIterator

  • « DirectoryIterator::getPath
  • DirectoryIterator::getPerms »
  • PHP Manual
  • DirectoryIterator
  • Возвращает путь и имя файла текущего элемента DirectoryIterator

DirectoryIterator::getPathname

(PHP 5, PHP 7)

DirectoryIterator::getPathname — Возвращает путь и имя файла текущего элемента DirectoryIterator

Описание

public DirectoryIterator::getPathname ( void ) : string

Возвращает путь и имя текущего файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь и имя текущего файла. Директория не будет содержать завершающего слеша.

Примеры

Пример #1 Пример использования DirectoryIterator::getPathname()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    echo $fileinfo->getPathname() . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

/home/examples/.
/home/examples/..
/home/examples/apple.jpg
/home/examples/banana.jpg
/home/examples/getpathname.php
/home/examples/pear.jpg

Смотрите также

  • DirectoryIterator::getBasename() - Возвращает имя файла (без расширения) текущего элемента DirectoryIterator
  • DirectoryIterator::getFilename() - Возвращает имя файла текущего элемента DirectoryIterator
  • DirectoryIterator::getPath() - Возвращает путь к текущему элементу DirectoryIterator без имени файла
  • pathinfo() - Возвращает информацию о пути к файлу


Возвращает набор прав для текущего элемента DirectoryIterator item

  • « DirectoryIterator::getPathname
  • DirectoryIterator::getSize »
  • PHP Manual
  • DirectoryIterator
  • Возвращает набор прав для текущего элемента DirectoryIterator item

DirectoryIterator::getPerms

(PHP 5, PHP 7)

DirectoryIterator::getPerms — Возвращает набор прав для текущего элемента DirectoryIterator item

Описание

public DirectoryIterator::getPerms ( void ) : int

Возвращает набор прав для текущего элемента DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает набор прав для текущего файла в виде десятичного числа integer.

Примеры

Пример #1 Пример использования DirectoryIterator::getPerms()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if (!$fileinfo->isDot()) {
        $octal_perms = substr(sprintf('%o', $fileinfo->getPerms()), -4);
        echo $fileinfo->getFilename() . " " . $octal_perms . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg 0644
banana.jpg 0644
index.php 0744
pear.jpg 0644

Смотрите также

  • DirectoryIterator::isExecutable() - Определяет, является ли текущий элемент DirectoryIterator исполняемым
  • DirectoryIterator::isReadable() - Определяет, доступен ли текущий элемент DirectoryIterator для чтения
  • DirectoryIterator::isWritable() - Определяет, доступен ли текущий элемент DirectoryIterator для записи


Возвращает размер текущего элемента DirectoryIterator

  • « DirectoryIterator::getPerms
  • DirectoryIterator::getType »
  • PHP Manual
  • DirectoryIterator
  • Возвращает размер текущего элемента DirectoryIterator

DirectoryIterator::getSize

(PHP 5, PHP 7)

DirectoryIterator::getSize — Возвращает размер текущего элемента DirectoryIterator

Описание

public DirectoryIterator::getSize ( void ) : int

Возвращает объем занимаемого дискового пространства для текущего элемента DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер файла, в байтах.

Примеры

Пример #1 Пример использования DirectoryIterator::getSize()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . " " . $fileinfo->getSize() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg 15385
banana.jpg 15190
example.php 170
pear.jpg 34406

Смотрите также

  • filesize() - Возвращает размер файла


Определяет тип текущего элемента DirectoryIterator

  • « DirectoryIterator::getSize
  • DirectoryIterator::isDir »
  • PHP Manual
  • DirectoryIterator
  • Определяет тип текущего элемента DirectoryIterator

DirectoryIterator::getType

(PHP 5, PHP 7)

DirectoryIterator::getType — Определяет тип текущего элемента DirectoryIterator

Описание

public DirectoryIterator::getType ( void ) : string

Определяет к какому типу принадлежит текущей элемент DirectoryIterator. Возможные варианты: file (файл), link (ссылка), или dir (директория).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string), содержащую тип файла. Возможные варианты: file (файл), link (ссылка), или dir (директория).

Примеры

Пример #1 Пример использования DirectoryIterator::getType()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    echo $fileinfo->getFilename() . " " . $fileinfo->getType() . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

. dir
.. dir
apple.jpg file
banana.jpg file
example.php file
pear.jpg file

Смотрите также

  • DirectoryIterator::isDir() - Определяет, является ли текущий элемент DirectoryIterator директорией
  • DirectoryIterator::isDot() - Определяет, является ли текущий элемент DirectoryIterator '.' или '..'
  • DirectoryIterator::isFile() - Определяет, является ли текущий элемент DirectoryIterator обычным файлом
  • DirectoryIterator::isLink() - Определяет, является ли текущий элемент DirectoryIterator символической ссылкой


Определяет, является ли текущий элемент DirectoryIterator директорией

  • « DirectoryIterator::getType
  • DirectoryIterator::isDot »
  • PHP Manual
  • DirectoryIterator
  • Определяет, является ли текущий элемент DirectoryIterator директорией

DirectoryIterator::isDir

(PHP 5, PHP 7)

DirectoryIterator::isDir — Определяет, является ли текущий элемент DirectoryIterator директорией

Описание

public DirectoryIterator::isDir ( void ) : bool

Определяет, является ли текущий элемент DirectoryIterator директорией.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если элемент является директорией, иначе возвращает FALSE

Примеры

Пример #1 Пример использования DirectoryIterator::isDir()

Пример выведет список вложенных директорий в директории, содержащей выполняемый скрипт.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isDir()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

.
..
apples
bananas
pears

Смотрите также

  • DirectoryIterator::getType() - Определяет тип текущего элемента DirectoryIterator
  • DirectoryIterator::isDot() - Определяет, является ли текущий элемент DirectoryIterator '.' или '..'
  • DirectoryIterator::isFile() - Определяет, является ли текущий элемент DirectoryIterator обычным файлом
  • DirectoryIterator::isLink() - Определяет, является ли текущий элемент DirectoryIterator символической ссылкой


Определяет, является ли текущий элемент DirectoryIterator '.' или '..'

  • « DirectoryIterator::isDir
  • DirectoryIterator::isExecutable »
  • PHP Manual
  • DirectoryIterator
  • Определяет, является ли текущий элемент DirectoryIterator '.' или '..'

DirectoryIterator::isDot

(PHP 5, PHP 7)

DirectoryIterator::isDot — Определяет, является ли текущий элемент DirectoryIterator '.' или '..'

Описание

public DirectoryIterator::isDot ( void ) : bool

Определяет, является ли текущий элемент DirectoryIterator . или ..

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если элемент является . или .., иначе возвращает FALSE

Примеры

Пример #1 Пример использования DirectoryIterator::isDot()

Пример выведет список всех файлов в директории, кроме . и ..

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if (!$fileinfo->isDot()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg
banana.jpg
example.php
pears.jpg

Смотрите также

  • DirectoryIterator::getType() - Определяет тип текущего элемента DirectoryIterator
  • DirectoryIterator::isDir() - Определяет, является ли текущий элемент DirectoryIterator директорией
  • DirectoryIterator::isFile() - Определяет, является ли текущий элемент DirectoryIterator обычным файлом
  • DirectoryIterator::isLink() - Определяет, является ли текущий элемент DirectoryIterator символической ссылкой


Определяет, является ли текущий элемент DirectoryIterator исполняемым

  • « DirectoryIterator::isDot
  • DirectoryIterator::isFile »
  • PHP Manual
  • DirectoryIterator
  • Определяет, является ли текущий элемент DirectoryIterator исполняемым

DirectoryIterator::isExecutable

(PHP 5, PHP 7)

DirectoryIterator::isExecutable — Определяет, является ли текущий элемент DirectoryIterator исполняемым

Описание

public DirectoryIterator::isExecutable ( void ) : bool

Определяет, является ли текущий элемент DirectoryIterator исполняемым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если файл является исполняемым, иначе возвращает FALSE

Примеры

Пример #1 Пример использования DirectoryIterator::isExecutable()

Пример показывает список исполняемых файлов в директории, содержащей выполняемый скрипт.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isExecutable()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

example.php
myscript.sh

Смотрите также

  • DirectoryIterator::isReadable() - Определяет, доступен ли текущий элемент DirectoryIterator для чтения
  • DirectoryIterator::isWritable() - Определяет, доступен ли текущий элемент DirectoryIterator для записи
  • DirectoryIterator::getPerms() - Возвращает набор прав для текущего элемента DirectoryIterator item


Определяет, является ли текущий элемент DirectoryIterator обычным файлом

  • « DirectoryIterator::isExecutable
  • DirectoryIterator::isLink »
  • PHP Manual
  • DirectoryIterator
  • Определяет, является ли текущий элемент DirectoryIterator обычным файлом

DirectoryIterator::isFile

(PHP 5, PHP 7)

DirectoryIterator::isFile — Определяет, является ли текущий элемент DirectoryIterator обычным файлом

Описание

public DirectoryIterator::isFile ( void ) : bool

Определяет, является ли текущий элемент DirectoryIterator обычным файлом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если файл существует и является обычным файлом (т.е. не является ссылкой или директорией), иначе возвращает FALSE

Примеры

Пример #1 Пример использования DirectoryIterator::isFile()

Пример выведет список всех файлов в директории, содержащей выполняемый скрипт.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg
banana.jpg
example.php
pears.jpg

Смотрите также

  • DirectoryIterator::getType() - Определяет тип текущего элемента DirectoryIterator
  • DirectoryIterator::isDir() - Определяет, является ли текущий элемент DirectoryIterator директорией
  • DirectoryIterator::isDot() - Определяет, является ли текущий элемент DirectoryIterator '.' или '..'
  • DirectoryIterator::isLink() - Определяет, является ли текущий элемент DirectoryIterator символической ссылкой


Определяет, является ли текущий элемент DirectoryIterator символической ссылкой

  • « DirectoryIterator::isFile
  • DirectoryIterator::isReadable »
  • PHP Manual
  • DirectoryIterator
  • Определяет, является ли текущий элемент DirectoryIterator символической ссылкой

DirectoryIterator::isLink

(PHP 5, PHP 7)

DirectoryIterator::isLink — Определяет, является ли текущий элемент DirectoryIterator символической ссылкой

Описание

public DirectoryIterator::isLink ( void ) : bool

Определяет, является ли текущий элемент DirectoryIterator символической ссылкой.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если элемент является символической ссылкой, иначе возвращает FALSE

Примеры

Пример #1 Пример использования DirectoryIterator::isLink()

Пример содержит рекурсивную функцию для удаления дерева каталогов.

<?php
/**
 * Данная функция рекурсивно удаляет все файлы, символические ссылки и директории
 * по указанному пути.
 *
 * @param string $path Путь к директории для удаления.
 */
function removeDir($path) {
    $dir = new DirectoryIterator($path);
    foreach ($dir as $fileinfo) {
        if ($fileinfo->isFile() || $fileinfo->isLink()) {
            unlink($fileinfo->getPathName());
        } elseif (!$fileinfo->isDot() && $fileinfo->isDir()) {
            removeDir($fileinfo->getPathName());
        }
    }
    rmdir($path);
}

removeDir('foo');
?>

Смотрите также

  • DirectoryIterator::getType() - Определяет тип текущего элемента DirectoryIterator
  • DirectoryIterator::isDir() - Определяет, является ли текущий элемент DirectoryIterator директорией
  • DirectoryIterator::isDot() - Определяет, является ли текущий элемент DirectoryIterator '.' или '..'
  • DirectoryIterator::isFile() - Определяет, является ли текущий элемент DirectoryIterator обычным файлом


Определяет, доступен ли текущий элемент DirectoryIterator для чтения

  • « DirectoryIterator::isLink
  • DirectoryIterator::isWritable »
  • PHP Manual
  • DirectoryIterator
  • Определяет, доступен ли текущий элемент DirectoryIterator для чтения

DirectoryIterator::isReadable

(PHP 5, PHP 7)

DirectoryIterator::isReadable — Определяет, доступен ли текущий элемент DirectoryIterator для чтения

Описание

public DirectoryIterator::isReadable ( void ) : bool

Определяет, доступен ли текущий элемент DirectoryIterator для чтения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если файл доступен для чтения, иначе возвращает FALSE

Примеры

Пример #1 Пример использования DirectoryIterator::isReadable()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isReadable()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg
banana.jpg
example.php
pears.jpg

Смотрите также

  • DirectoryIterator::isExecutable() - Определяет, является ли текущий элемент DirectoryIterator исполняемым
  • DirectoryIterator::isWritable() - Определяет, доступен ли текущий элемент DirectoryIterator для записи
  • DirectoryIterator::getPerms() - Возвращает набор прав для текущего элемента DirectoryIterator item


Определяет, доступен ли текущий элемент DirectoryIterator для записи

  • « DirectoryIterator::isReadable
  • DirectoryIterator::key »
  • PHP Manual
  • DirectoryIterator
  • Определяет, доступен ли текущий элемент DirectoryIterator для записи

DirectoryIterator::isWritable

(PHP 5, PHP 7)

DirectoryIterator::isWritable — Определяет, доступен ли текущий элемент DirectoryIterator для записи

Описание

public DirectoryIterator::isWritable ( void ) : bool

Определяет, доступен ли текущий элемент DirectoryIterator для записи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если файл или директория доступны для записи, иначе возвращает FALSE

Примеры

Пример #1 Пример использования DirectoryIterator::isWritable()

Пример показывает список файлов и директорий, которые могут быть открыты для записи, расположенные в директории, содержащей выполняемый скрипт.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isWritable()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apples.txt
bananas.html
pears

Смотрите также

  • DirectoryIterator::getPerms() - Возвращает набор прав для текущего элемента DirectoryIterator item
  • DirectoryIterator::isExecutable() - Определяет, является ли текущий элемент DirectoryIterator исполняемым
  • DirectoryIterator::isReadable() - Определяет, доступен ли текущий элемент DirectoryIterator для чтения


Возвращает ключ текущего элемента DirectoryIterator

  • « DirectoryIterator::isWritable
  • DirectoryIterator::next »
  • PHP Manual
  • DirectoryIterator
  • Возвращает ключ текущего элемента DirectoryIterator

DirectoryIterator::key

(PHP 5, PHP 7)

DirectoryIterator::key — Возвращает ключ текущего элемента DirectoryIterator

Описание

public DirectoryIterator::key ( void ) : string

Возвращает ключ текущего элемента DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ключ текущего элемента DirectoryIterator.

Примеры

Пример #1 Пример использования DirectoryIterator::key()

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    if (!$fileinfo->isDot()) {
        echo $fileinfo->key() . " => " . $fileinfo->getFilename() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

0 => apple.jpg
1 => banana.jpg
2 => index.php
3 => pear.jpg

Смотрите также

  • DirectoryIterator::current() - Возвращает текущий элемент DirectoryIterator
  • DirectoryIterator::next() - Перемещает указатель на следующий элемент DirectoryIterator
  • DirectoryIterator::rewind() - Устанавливает указатель на первый элемент DirectoryIterator
  • DirectoryIterator::valid() - Проверяет, является ли текущий элемент DirectoryIterator допустимым файлом
  • Iterator::key() - Возврат ключа текущего элемента


Перемещает указатель на следующий элемент DirectoryIterator

  • « DirectoryIterator::key
  • DirectoryIterator::rewind »
  • PHP Manual
  • DirectoryIterator
  • Перемещает указатель на следующий элемент DirectoryIterator

DirectoryIterator::next

(PHP 5, PHP 7)

DirectoryIterator::next — Перемещает указатель на следующий элемент DirectoryIterator

Описание

public DirectoryIterator::next ( void ) : void

Перемещает указатель на следующий элемент DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования DirectoryIterator::next()

Вывод списка содержимого директории с помощью цикла while

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
while($iterator->valid()) {
    echo $iterator->getFilename() . "\n";
    $iterator->next();
}
?>

Результатом выполнения данного примера будет что-то подобное:

.
..
apple.jpg
banana.jpg
index.php
pear.jpg

Смотрите также

  • DirectoryIterator::current() - Возвращает текущий элемент DirectoryIterator
  • DirectoryIterator::key() - Возвращает ключ текущего элемента DirectoryIterator
  • DirectoryIterator::rewind() - Устанавливает указатель на первый элемент DirectoryIterator
  • DirectoryIterator::valid() - Проверяет, является ли текущий элемент DirectoryIterator допустимым файлом
  • Iterator::next() - Переход к следующему элементу


Устанавливает указатель на первый элемент DirectoryIterator

  • « DirectoryIterator::next
  • DirectoryIterator::seek »
  • PHP Manual
  • DirectoryIterator
  • Устанавливает указатель на первый элемент DirectoryIterator

DirectoryIterator::rewind

(PHP 5, PHP 7)

DirectoryIterator::rewind — Устанавливает указатель на первый элемент DirectoryIterator

Описание

public DirectoryIterator::rewind ( void ) : void

Устанавливает указатель на первый элемент DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования DirectoryIterator::rewind()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));

$iterator->next();
echo $iterator->key(); //1

$iterator->rewind(); //переход к началу
echo $iterator->key(); //0
?>

Смотрите также

  • DirectoryIterator::current() - Возвращает текущий элемент DirectoryIterator
  • DirectoryIterator::key() - Возвращает ключ текущего элемента DirectoryIterator
  • DirectoryIterator::next() - Перемещает указатель на следующий элемент DirectoryIterator
  • DirectoryIterator::valid() - Проверяет, является ли текущий элемент DirectoryIterator допустимым файлом
  • Iterator::rewind() - Перемотать итератор на первый элемент


Перемещает указатель DirectoryIterator на определённую позицию

  • « DirectoryIterator::rewind
  • DirectoryIterator::__toString »
  • PHP Manual
  • DirectoryIterator
  • Перемещает указатель DirectoryIterator на определённую позицию

DirectoryIterator::seek

(PHP 5 >= 5.3.0, PHP 7)

DirectoryIterator::seek — Перемещает указатель DirectoryIterator на определённую позицию

Описание

public DirectoryIterator::seek ( int $position ) : void

Перемещает указатель DirectoryIterator на определённую позицию.

Список параметров

position

Номер позиции для перемещения. Нумерация начинается с нуля.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования DirectoryIterator::seek()

Перейти к четвертому элементу в директории, содержащей выполняемый скрипт. Первые два, как правило . и ...

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
$iterator->seek(3);
if ($iterator->valid()) {
    echo $iterator->getFilename();
} else {
    echo 'Нет третьего элемента в директории';
}
?>

Смотрите также

  • DirectoryIterator::rewind() - Устанавливает указатель на первый элемент DirectoryIterator
  • DirectoryIterator::next() - Перемещает указатель на следующий элемент DirectoryIterator
  • SeekableIterator::seek() - Перемещается к позиции


Возвращает имя файла в виде строки

  • « DirectoryIterator::seek
  • DirectoryIterator::valid »
  • PHP Manual
  • DirectoryIterator
  • Возвращает имя файла в виде строки

DirectoryIterator::__toString

(PHP 5, PHP 7)

DirectoryIterator::__toString — Возвращает имя файла в виде строки

Описание

public DirectoryIterator::__toString ( void ) : string

Возвращает имя файла текущего элемента DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла текущего элемента DirectoryIterator.

Примеры

Пример #1 Пример использования DirectoryIterator::__toString()

Пример выведет список содержимого директории, содержащей выполняемый скрипт.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    echo $fileinfo;
}
?>

Результатом выполнения данного примера будет что-то подобное:

.
..
apple.jpg
banana.jpg
index.php
pear.jpg

Смотрите также

  • DirectoryIterator::getFilename() - Возвращает имя файла текущего элемента DirectoryIterator
  • Магический метод __toString()


Проверяет, является ли текущий элемент DirectoryIterator допустимым файлом

  • « DirectoryIterator::__toString
  • EmptyIterator »
  • PHP Manual
  • DirectoryIterator
  • Проверяет, является ли текущий элемент DirectoryIterator допустимым файлом

DirectoryIterator::valid

(PHP 5, PHP 7)

DirectoryIterator::valid — Проверяет, является ли текущий элемент DirectoryIterator допустимым файлом

Описание

public DirectoryIterator::valid ( void ) : bool

Проверяет, является ли текущий элемент DirectoryIterator допустимым файлом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если элемент является допустимым, иначе возвращает FALSE

Примеры

Пример #1 Пример использования DirectoryIterator::valid()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));

// Цикл до конца итератора
while($iterator->valid()) {
    $iterator->next();
}

$iterator->valid(); // FALSE
$iterator->rewind();
$iterator->valid(); // TRUE

?>

Смотрите также

  • DirectoryIterator::current() - Возвращает текущий элемент DirectoryIterator
  • DirectoryIterator::key() - Возвращает ключ текущего элемента DirectoryIterator
  • DirectoryIterator::next() - Перемещает указатель на следующий элемент DirectoryIterator
  • DirectoryIterator::rewind() - Устанавливает указатель на первый элемент DirectoryIterator
  • Iterator::valid() - Проверяет корректность текущей позиции


Класс EmptyIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Класс EmptyIterator для пустого итератора.

Обзор классов

EmptyIterator implements Iterator {
/* Методы */
public current ( void ) : mixed
public key ( void ) : scalar
public next ( void ) : void
public rewind ( void ) : void
public valid ( void ) : bool
}

Содержание

  • EmptyIterator::current — Метод current()
  • EmptyIterator::key — Метод key()
  • EmptyIterator::next — Метод next()
  • EmptyIterator::rewind — Метод rewind()
  • EmptyIterator::valid — Метод valid()


Метод current()

  • « EmptyIterator
  • EmptyIterator::key »
  • PHP Manual
  • EmptyIterator
  • Метод current()

EmptyIterator::current

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::current — Метод current()

Описание

public EmptyIterator::current ( void ) : mixed

Функция не должна вызываться. Выбрасывает исключение при попытке доступа.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Ошибки

Выбрасывает исключение Exception при вызове.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Метод key()

  • « EmptyIterator::current
  • EmptyIterator::next »
  • PHP Manual
  • EmptyIterator
  • Метод key()

EmptyIterator::key

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::key — Метод key()

Описание

public EmptyIterator::key ( void ) : scalar

Эта функция не должна вызываться. Вызывает исключение при попытке доступа.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Ошибки

Вызывает исключение Exception при вызове.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Метод next()

  • « EmptyIterator::key
  • EmptyIterator::rewind »
  • PHP Manual
  • EmptyIterator
  • Метод next()

EmptyIterator::next

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::next — Метод next()

Описание

public EmptyIterator::next ( void ) : void

Нет действия. Ничего не делает.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Метод rewind()

  • « EmptyIterator::next
  • EmptyIterator::valid »
  • PHP Manual
  • EmptyIterator
  • Метод rewind()

EmptyIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::rewind — Метод rewind()

Описание

public EmptyIterator::rewind ( void ) : void

Нет действия. Ничего не делает.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Метод valid()

  • « EmptyIterator::rewind
  • FilesystemIterator »
  • PHP Manual
  • EmptyIterator
  • Метод valid()

EmptyIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::valid — Метод valid()

Описание

public EmptyIterator::valid ( void ) : bool

Метод valid() класса EmptyIterator.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

FALSE


Класс FilesystemIterator

(PHP 5 >= 5.3.0, PHP 7)

Введение

Итератор файловой системы

Обзор классов

FilesystemIterator extends DirectoryIterator implements SeekableIterator {
/* Константы */
const integer CURRENT_AS_PATHNAME = 32 ;
const integer CURRENT_AS_FILEINFO = 0 ;
const integer CURRENT_AS_SELF = 16 ;
const integer CURRENT_MODE_MASK = 240 ;
const integer KEY_AS_PATHNAME = 0 ;
const integer KEY_AS_FILENAME = 256 ;
const integer FOLLOW_SYMLINKS = 512 ;
const integer KEY_MODE_MASK = 3840 ;
const integer NEW_CURRENT_AND_KEY = 256 ;
const integer SKIP_DOTS = 4096 ;
const integer UNIX_PATHS = 8192 ;
/* Методы */
public __construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS ] )
public current ( void ) : mixed
public getFlags ( void ) : int
public key ( void ) : string
public next ( void ) : void
public rewind ( void ) : void
public setFlags ([ int $flags ] ) : void
/* Наследуемые методы */
public DirectoryIterator::current ( void ) : DirectoryIterator
public DirectoryIterator::getATime ( void ) : int
public DirectoryIterator::getBasename ([ string $suffix ] ) : string
public DirectoryIterator::getCTime ( void ) : int
public DirectoryIterator::getExtension ( void ) : string
public DirectoryIterator::getFilename ( void ) : string
public DirectoryIterator::getGroup ( void ) : int
public DirectoryIterator::getInode ( void ) : int
public DirectoryIterator::getMTime ( void ) : int
public DirectoryIterator::getOwner ( void ) : int
public DirectoryIterator::getPath ( void ) : string
public DirectoryIterator::getPathname ( void ) : string
public DirectoryIterator::getPerms ( void ) : int
public DirectoryIterator::getSize ( void ) : int
public DirectoryIterator::getType ( void ) : string
public DirectoryIterator::isDir ( void ) : bool
public DirectoryIterator::isDot ( void ) : bool
public DirectoryIterator::isExecutable ( void ) : bool
public DirectoryIterator::isFile ( void ) : bool
public DirectoryIterator::isLink ( void ) : bool
public DirectoryIterator::isReadable ( void ) : bool
public DirectoryIterator::isWritable ( void ) : bool
public DirectoryIterator::key ( void ) : string
public DirectoryIterator::next ( void ) : void
public DirectoryIterator::rewind ( void ) : void
public DirectoryIterator::seek ( int $position ) : void
public DirectoryIterator::__toString ( void ) : string
public DirectoryIterator::valid ( void ) : bool
}

Предопределенные константы

FilesystemIterator::CURRENT_AS_PATHNAME

Заставляет метод FilesystemIterator::current() вернуть путь.

FilesystemIterator::CURRENT_AS_FILEINFO

Заставляет метод FilesystemIterator::current() вернуть экземпляр SplFileInfo.

FilesystemIterator::CURRENT_AS_SELF

Заставляет метод FilesystemIterator::current() вернуть $this (FilesystemIterator).

FilesystemIterator::CURRENT_MODE_MASK

Маскирует FilesystemIterator::current()

FilesystemIterator::KEY_AS_PATHNAME

Заставляет метод FilesystemIterator::key() вернуть путь.

FilesystemIterator::KEY_AS_FILENAME

Заставляет метод FilesystemIterator::key() вернуть имя файла.

FilesystemIterator::FOLLOW_SYMLINKS

Заставляет метод RecursiveDirectoryIterator::hasChildren() следовать символическим ссылкам.

FilesystemIterator::KEY_MODE_MASK

Маскирует FilesystemIterator::key()

FilesystemIterator::NEW_CURRENT_AND_KEY

То же, что FilesystemIterator::KEY_AS_FILENAME | FilesystemIterator::CURRENT_AS_FILEINFO.

FilesystemIterator::SKIP_DOTS

Пропускает точечные файлы (. и ..).

FilesystemIterator::UNIX_PATHS

Заставляет все пути использовать обратный слеш в Unix-стиле, независимо от настроек системы по умолчанию. Обратите внимание, что path, переданный в конструктор, не меняется.

Список изменений

Версия | Описание
5.3.1 | Добавлена константа FilesystemIterator::FOLLOW_SYMLINKS

Содержание

  • FilesystemIterator::__construct — Создает новый итератор файловой системы
  • FilesystemIterator::current — Текущий файл
  • FilesystemIterator::getFlags — Получение флагов настроек объекта
  • FilesystemIterator::key — Определение ключа текущего файла
  • FilesystemIterator::next — Перемещение указателя на следующий файл
  • FilesystemIterator::rewind — Перемещение указателя на начало
  • FilesystemIterator::setFlags — Задание флагов обработки


Создает новый итератор файловой системы

  • « FilesystemIterator
  • FilesystemIterator::current »
  • PHP Manual
  • FilesystemIterator
  • Создает новый итератор файловой системы

FilesystemIterator::__construct

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::__construct — Создает новый итератор файловой системы

Описание

public FilesystemIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS ] )

Создает новый объект итератора файловой системы на основе аргумента path.

Список параметров

path

Путь к объекту файловой системы по которому требуется навигация.

flags

Поведение некоторых методов можно задать с помощью флагов. Список этих флагов можно найти на странице предопределенных констант FilesystemIterator. Также их можно задать позже методом FilesystemIterator::setFlags().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение UnexpectedValueException, если найти путь path оказалось невозможным.

Примеры

Пример #1 Пример использования FilesystemIterator::__construct()

<?php
$it = new FilesystemIterator(dirname(__FILE__));
foreach ($it as $fileinfo) {
    echo $fileinfo->getFilename() . "\n";
}
?>

Результат выполнения данного примера:

apples.jpg
banana.jpg
example.php

Смотрите также

  • FilesystemIterator::setFlags() - Задание флагов обработки
  • DirectoryIterator::__construct() - Создаёт новый итератор директорий по пути


Текущий файл

  • « FilesystemIterator::__construct
  • FilesystemIterator::getFlags »
  • PHP Manual
  • FilesystemIterator
  • Текущий файл

FilesystemIterator::current

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::current — Текущий файл

Описание

public FilesystemIterator::current ( void ) : mixed

Извлекает информацию о текущем файле.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя файла, информация о файле, либо $this, в зависимости от установленных флагов. Смотрите Константы FilesystemIterator.

Примеры

Пример #1 Пример использования FilesystemIterator::current()

В этом примере будет выведен список содержимого директории в которой находится выполняемый скрипт.

<?php
$iterator = new FilesystemIterator(__DIR__, FilesystemIterator::CURRENT_AS_PATHNAME);
foreach ($iterator as $fileinfo) {
    echo $iterator->current() . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

/www/examples/apple.jpg
/www/examples/banana.jpg
/www/examples/example.php

Смотрите также

  • Константы FilesystemIterator
  • DirectoryIterator::current() - Возвращает текущий элемент DirectoryIterator
  • DirectoryIterator::getFileName() - Возвращает имя файла текущего элемента DirectoryIterator


Получение флагов настроек объекта

  • « FilesystemIterator::current
  • FilesystemIterator::key »
  • PHP Manual
  • FilesystemIterator
  • Получение флагов настроек объекта

FilesystemIterator::getFlags

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::getFlags — Получение флагов настроек объекта

Описание

public FilesystemIterator::getFlags ( void ) : int

Получает значения флагов настроек объекта в том виде, как они были заданы методами FilesystemIterator::__construct() или FilesystemIterator::setFlags().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Целое число, представляющее заданные флаги.

Смотрите также

  • FilesystemIterator::__construct() - Создает новый итератор файловой системы
  • FilesystemIterator::setFlags() - Задание флагов обработки


Определение ключа текущего файла

  • « FilesystemIterator::getFlags
  • FilesystemIterator::next »
  • PHP Manual
  • FilesystemIterator
  • Определение ключа текущего файла

FilesystemIterator::key

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::key — Определение ключа текущего файла

Описание

public FilesystemIterator::key ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь или имя файла в зависимости от установленных флагов. Смотрите Константы FilesystemIterator.

Примеры

Пример #1 Пример использования FilesystemIterator::key()

Этот пример выведет список содержимого директории в которой расположен скрипт.

<?php
$iterator = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_FILENAME);
foreach ($iterator as $fileinfo) {
    echo $iterator->key() . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg
banana.jpg
example.php

Смотрите также

  • FilesystemIterator constants
  • DirectoryIterator::key() - Возвращает ключ текущего элемента DirectoryIterator
  • DirectoryIterator::getFilename() - Возвращает имя файла текущего элемента DirectoryIterator
  • DirectoryIterator::getPathname() - Возвращает путь и имя файла текущего элемента DirectoryIterator


Перемещение указателя на следующий файл

  • « FilesystemIterator::key
  • FilesystemIterator::rewind »
  • PHP Manual
  • FilesystemIterator
  • Перемещение указателя на следующий файл

FilesystemIterator::next

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::next — Перемещение указателя на следующий файл

Описание

public FilesystemIterator::next ( void ) : void

Переход к следующему файлу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования FilesystemIterator::next()

Вывод списка содержимого директории, используя цикл while.

<?php
$iterator = new FilesystemIterator(dirname(__FILE__));
while($iterator->valid()) {
    echo $iterator->getFilename() . "\n";
    $iterator->next();
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg
banana.jpg
example.php

Смотрите также

  • DirectoryIterator::next() - Перемещает указатель на следующий элемент DirectoryIterator


Перемещение указателя на начало

  • « FilesystemIterator::next
  • FilesystemIterator::setFlags »
  • PHP Manual
  • FilesystemIterator
  • Перемещение указателя на начало

FilesystemIterator::rewind

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::rewind — Перемещение указателя на начало

Описание

public FilesystemIterator::rewind ( void ) : void

Переводит указатель на начало директории.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования FilesystemIterator::rewind()

<?php
$iterator = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_FILENAME);

echo $iterator->key() . "\n";

$iterator->next();
echo $iterator->key() . "\n";

$iterator->rewind();
echo $iterator->key() . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg
banana.jpg
apple.jpg

Смотрите также

  • DirectoryIterator::rewind() - Устанавливает указатель на первый элемент DirectoryIterator


Задание флагов обработки

  • « FilesystemIterator::rewind
  • FilterIterator »
  • PHP Manual
  • FilesystemIterator
  • Задание флагов обработки

FilesystemIterator::setFlags

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::setFlags — Задание флагов обработки

Описание

public FilesystemIterator::setFlags ([ int $flags ] ) : void

Задает настройки итератора.

Список параметров

flags

Флаги, которые необходимо установить. Смотрите Константы FilesystemIterator.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования FilesystemIterator::key()

Пример демонстрирует различия между флагами FilesystemIterator::KEY_AS_PATHNAME и FilesystemIterator::KEY_AS_FILENAME.

<?php
$iterator = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_PATHNAME);
echo "Ключом является путь к файлу:\n";
foreach ($iterator as $key => $fileinfo) {
    echo $key . "\n";
}

$iterator->setFlags(FilesystemIterator::KEY_AS_FILENAME);
echo "\nКлючом является имя файла:\n";
foreach ($iterator as $key => $fileinfo) {
    echo $key . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Ключом является путь к файлу:
/www/examples/apple.jpg
/www/examples/banana.jpg
/www/examples/example.php

Ключом является имя файла:
apple.jpg
banana.jpg
example.php

Смотрите также

  • FilesystemIterator::__construct() - Создает новый итератор файловой системы
  • FilesystemIterator::getFlags() - Получение флагов настроек объекта


Класс FilterIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Этот абстрактный итератор фильтрует нежелательные значения. Этот класс следует расширить для реализации пользовательских фильтров итератора. Метод FilterIterator::accept() должен быть реализован в подклассе.

Обзор классов

abstract FilterIterator extends IteratorIterator implements OuterIterator {
/* Методы */
public abstract accept ( void ) : bool
public __construct ( Iterator $iterator )
public current ( void ) : mixed
public getInnerIterator ( void ) : Iterator
public key ( void ) : mixed
public next ( void ) : void
public rewind ( void ) : void
public valid ( void ) : bool
}

Содержание

  • FilterIterator::accept — Проверяет, является ли текущий элемент итератора допустимым
  • FilterIterator::__construct — Конструктор класса FilterIterator
  • FilterIterator::current — Получает значение текущего элемента
  • FilterIterator::getInnerIterator — Получает внутренний итератор
  • FilterIterator::key — Получает текущий ключ
  • FilterIterator::next — Перемещает итератор к следующему элементу
  • FilterIterator::rewind — Возвращает итератор в начало
  • FilterIterator::valid — Проверяет, является ли текущий элемент допустимым


Проверяет, является ли текущий элемент итератора допустимым

  • « FilterIterator
  • FilterIterator::__construct »
  • PHP Manual
  • FilterIterator
  • Проверяет, является ли текущий элемент итератора допустимым

FilterIterator::accept

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::accept — Проверяет, является ли текущий элемент итератора допустимым

Описание

public abstract FilterIterator::accept ( void ) : bool

Проверяет, является ли текущий элемент итератора допустимым для данного фильтра.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE если текущий элемент допустим, в противном случае FALSE.

Примеры

Пример #1 Пример использования FilterIterator::accept()

<?php
// Этот итератор фильтрует все значения с длиной менее 10 символов
class LengthFilterIterator extends FilterIterator {

    public function accept() {
        // Допускает строки с длиной 10 символов и более
        return strlen(parent::current()) >= 10;
    }

}

$arrayIterator = new ArrayIterator(array('тест1', 'больше 10 символов'));
$lengthFilter = new LengthFilterIterator($arrayIterator);

foreach ($lengthFilter as $value) {
    echo $value . "\n";
}
?>

Результат выполнения данного примера:

больше 10 символов


Конструктор класса FilterIterator

  • « FilterIterator::accept
  • FilterIterator::current »
  • PHP Manual
  • FilterIterator
  • Конструктор класса FilterIterator

FilterIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::__construct — Конструктор класса FilterIterator

Описание

public FilterIterator::__construct ( Iterator $iterator )

Создает объект класса FilterIterator, который состоит из итератора, переданного в параметре iterator, и фильтров, применяемых к нему.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Фильтруемый итератор.

Возвращаемые значения

Объект класса FilterIterator.

Смотрите также

  • LimitIterator::__construct() - Конструктор класса LimitIterator


Получает значение текущего элемента

  • « FilterIterator::__construct
  • FilterIterator::getInnerIterator »
  • PHP Manual
  • FilterIterator
  • Получает значение текущего элемента

FilterIterator::current

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::current — Получает значение текущего элемента

Описание

public FilterIterator::current ( void ) : mixed
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Получает значение текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение текущего элемента.

Смотрите также

  • FilterIterator::key() - Получает текущий ключ
  • FilterIterator::next() - Перемещает итератор к следующему элементу


Получает внутренний итератор

  • « FilterIterator::current
  • FilterIterator::key »
  • PHP Manual
  • FilterIterator
  • Получает внутренний итератор

FilterIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::getInnerIterator — Получает внутренний итератор

Описание

public FilterIterator::getInnerIterator ( void ) : Iterator
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Получает внутренний итератор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Внутренний итератор.


Получает текущий ключ

  • « FilterIterator::getInnerIterator
  • FilterIterator::next »
  • PHP Manual
  • FilterIterator
  • Получает текущий ключ

FilterIterator::key

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::key — Получает текущий ключ

Описание

public FilterIterator::key ( void ) : mixed
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Получает текущий ключ.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий ключ.

Смотрите также

  • FilterIterator::next() - Перемещает итератор к следующему элементу
  • FilterIterator::current() - Получает значение текущего элемента


Перемещает итератор к следующему элементу

  • « FilterIterator::key
  • FilterIterator::rewind »
  • PHP Manual
  • FilterIterator
  • Перемещает итератор к следующему элементу

FilterIterator::next

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::next — Перемещает итератор к следующему элементу

Описание

public FilterIterator::next ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Перемещает итератор к следующему элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • FilterIterator::current() - Получает значение текущего элемента
  • FilterIterator::key() - Получает текущий ключ


Возвращает итератор в начало

  • « FilterIterator::next
  • FilterIterator::valid »
  • PHP Manual
  • FilterIterator
  • Возвращает итератор в начало

FilterIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::rewind — Возвращает итератор в начало

Описание

public FilterIterator::rewind ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает итератор в начало.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • FilterIterator::current() - Получает значение текущего элемента
  • FilterIterator::key() - Получает текущий ключ
  • FilterIterator::next() - Перемещает итератор к следующему элементу


Проверяет, является ли текущий элемент допустимым

  • « FilterIterator::rewind
  • GlobIterator »
  • PHP Manual
  • FilterIterator
  • Проверяет, является ли текущий элемент допустимым

FilterIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::valid — Проверяет, является ли текущий элемент допустимым

Описание

public FilterIterator::valid ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Проверяет, является ли текущий элемент допустимым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если текущий элемент допустим, в противном случае FALSE


Класс GlobIterator

(PHP 5 >= 5.3.0, PHP 7)

Введение

Итерирует через файловую систему похожим образом, как работает glob().

Обзор классов

GlobIterator extends FilesystemIterator implements SeekableIterator , Countable {
/* Наследуемые константы */
const integer FilesystemIterator::CURRENT_AS_PATHNAME = 32 ;
const integer FilesystemIterator::CURRENT_AS_FILEINFO = 0 ;
const integer FilesystemIterator::CURRENT_AS_SELF = 16 ;
const integer FilesystemIterator::CURRENT_MODE_MASK = 240 ;
const integer FilesystemIterator::KEY_AS_PATHNAME = 0 ;
const integer FilesystemIterator::KEY_AS_FILENAME = 256 ;
const integer FilesystemIterator::FOLLOW_SYMLINKS = 512 ;
const integer FilesystemIterator::KEY_MODE_MASK = 3840 ;
const integer FilesystemIterator::NEW_CURRENT_AND_KEY = 256 ;
const integer FilesystemIterator::SKIP_DOTS = 4096 ;
const integer FilesystemIterator::UNIX_PATHS = 8192 ;
/* Методы */
public __construct ( string $pattern [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO ] )
public count ( void ) : int
/* Наследуемые методы */
public FilesystemIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS ] )
public FilesystemIterator::current ( void ) : mixed
public FilesystemIterator::getFlags ( void ) : int
public FilesystemIterator::key ( void ) : string
public FilesystemIterator::next ( void ) : void
public FilesystemIterator::rewind ( void ) : void
public FilesystemIterator::setFlags ([ int $flags ] ) : void
}

Содержание

  • GlobIterator::__construct — Создает итератор директории, используя glob-выражение
  • GlobIterator::count — Определяет количество директорий и файлов


Создает итератор директории, используя glob-выражение

  • « GlobIterator
  • GlobIterator::count »
  • PHP Manual
  • GlobIterator
  • Создает итератор директории, используя glob-выражение

GlobIterator::__construct

(PHP 5 >= 5.3.0, PHP 7)

GlobIterator::__construct — Создает итератор директории, используя glob-выражение

Описание

public GlobIterator::__construct ( string $pattern [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO ] )

Создает новый итератор директории на основе glob-выражения.

Список параметров

pattern

Шаблон glob().

flags

Флаги настроек. Флаги можно задавать битовой маской констант FilesystemIterator.

Примеры

Пример #1 Пример использования GlobIterator

<?php
$iterator = new GlobIterator('*.dll', FilesystemIterator::KEY_AS_FILENAME);

if (!$iterator->count()) {
    echo 'Нет совпадений';
} else {
    $n = 0;

    printf("Найдено элементов: %d \r\n", $iterator->count());

    foreach ($iterator as $item) {
        printf("[%d] %s\r\n", ++$n, $iterator->key());
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

Найдено элементов: 2
[1] php5ts.dll
[2] php_gd2.dll

Смотрите также

  • DirectoryIterator::__construct() - Создаёт новый итератор директорий по пути
  • GlobIterator::count() - Определяет количество директорий и файлов
  • glob() - Находит файловые пути, совпадающие с шаблоном


Определяет количество директорий и файлов

  • « GlobIterator::__construct
  • InfiniteIterator »
  • PHP Manual
  • GlobIterator
  • Определяет количество директорий и файлов

GlobIterator::count

(PHP 5 >= 5.3.0, PHP 7)

GlobIterator::count — Определяет количество директорий и файлов

Описание

public GlobIterator::count ( void ) : int

Определяет количество директорий и файлов, совпадающих с glob-выражением.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество директорий и файлов в виде целого числа (integer).

Примеры

Пример #1 Пример использования GlobIterator::count()

<?php
$iterator = new GlobIterator('*.xml');

printf("Найдено элементов: %d \r\n", $iterator->count());
?>

Результатом выполнения данного примера будет что-то подобное:

Найдено элементов: 8

Смотрите также

  • GlobIterator::__construct() - Создает итератор директории, используя glob-выражение
  • count() - Подсчитывает количество элементов массива или чего-либо в объекте
  • glob() - Находит файловые пути, совпадающие с шаблоном


Класс InfiniteIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Класс InfiniteIterator позволяет сделать бесконечный перебор итератора без необходимости вручную перебирать итератор до момента достижения его конца.

Обзор классов

InfiniteIterator extends IteratorIterator implements OuterIterator {
/* Методы */
public __construct ( Iterator $iterator )
public next ( void ) : void
/* Наследуемые методы */
public IteratorIterator::__construct ( Traversable $iterator )
public IteratorIterator::current ( void ) : mixed
public IteratorIterator::getInnerIterator ( void ) : Traversable
public IteratorIterator::key ( void ) : mixed
public IteratorIterator::next ( void ) : void
public IteratorIterator::rewind ( void ) : void
public IteratorIterator::valid ( void ) : bool
}

Содержание

  • InfiniteIterator::__construct — Конструктор класса InfiniteIterator
  • InfiniteIterator::next — Перемещает итератор на одну позицию вперед или в начало


Конструктор класса InfiniteIterator

  • « InfiniteIterator
  • InfiniteIterator::next »
  • PHP Manual
  • InfiniteIterator
  • Конструктор класса InfiniteIterator

InfiniteIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

InfiniteIterator::__construct — Конструктор класса InfiniteIterator

Описание

public InfiniteIterator::__construct ( Iterator $iterator )

Создает новый объект класса InfiniteIterator на основе объекта-итератора Iterator.

Список параметров

iterator

Бесконечный итератор.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение E_RECOVERABLE_ERROR, если переданный параметр iterator не является объектом класса Iterator.

Примеры

Пример #1 Пример использования InfiniteIterator::__construct()

<?php
$arrayit  = new ArrayIterator(array('cat','dog'));
$infinite = new InfiniteIterator($arrayit);
$limit    = new LimitIterator($infinite, 0, 7);
foreach($limit as $value)
{
    echo "$value\n";
}
?>

Результат выполнения данного примера:

cat
dog
cat
dog
cat
dog
cat

Смотрите также

  • InfiniteIterator::next() - Перемещает итератор на одну позицию вперед или в начало


Перемещает итератор на одну позицию вперед или в начало

  • « InfiniteIterator::__construct
  • IteratorIterator »
  • PHP Manual
  • InfiniteIterator
  • Перемещает итератор на одну позицию вперед или в начало

InfiniteIterator::next

(PHP 5 >= 5.1.0, PHP 7)

InfiniteIterator::next — Перемещает итератор на одну позицию вперед или в начало

Описание

public InfiniteIterator::next ( void ) : void

Перемещает внутренний указатель объекта Iterator на следующий элемент или на первый элемент, если текущий элемент был последним.

Замечание:

Итератор InfiniteIterator останавливается, когда хранящийся внутри объект Iterator оказывается пустым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • InfiniteIterator::__construct() - Конструктор класса InfiniteIterator


Класс IteratorIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Этот итератор-обертка позволяет преобразовывать все, что является "обходимым" (Traversable) в итераторе. Важно понимать, что большинство классов, которые не реализуют итераторы, имеют на то причины, так как, скорее всего, они не позволяют реализовать полный набор возможностей итератора. Если так, то должны быть предприняты меры для предотвращения неправильного использования, иначе можно ожидать исключений или фатальных ошибок.

Обзор классов

IteratorIterator implements OuterIterator {
/* Методы */
public __construct ( Traversable $iterator )
public current ( void ) : mixed
public getInnerIterator ( void ) : Traversable
public key ( void ) : mixed
public next ( void ) : void
public rewind ( void ) : void
public valid ( void ) : bool
}

Примечания

Замечание:

Этот класс разрешает доступ к методам внутреннего итератора через магический метод __call.

Содержание

  • IteratorIterator::__construct — Создает итератор из чего-либо, что является обходимым (traversable)
  • IteratorIterator::current — Получает текущее значение
  • IteratorIterator::getInnerIterator — Получает внутренний итератор
  • IteratorIterator::key — Получает ключ текущего элемента
  • IteratorIterator::next — Перемещает итератор к следующему элементу
  • IteratorIterator::rewind — Возвращает итератор к первому элементу
  • IteratorIterator::valid — Проверяет, является ли итератор допустимым


Создает итератор из чего-либо, что является обходимым (traversable)

  • « IteratorIterator
  • IteratorIterator::current »
  • PHP Manual
  • IteratorIterator
  • Создает итератор из чего-либо, что является обходимым (traversable)

IteratorIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::__construct — Создает итератор из чего-либо, что является обходимым (traversable)

Описание

public IteratorIterator::__construct ( Traversable $iterator )

Создает итератор из чего-либо, что является обходимым (traversable).

Список параметров

iterator

Обходимый (traversable) итератор.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Traversable


Получает текущее значение

  • « IteratorIterator::__construct
  • IteratorIterator::getInnerIterator »
  • PHP Manual
  • IteratorIterator
  • Получает текущее значение

IteratorIterator::current

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::current — Получает текущее значение

Описание

public IteratorIterator::current ( void ) : mixed

Получает значение текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение текущего элемента.

Смотрите также

  • IteratorIterator::key() - Получает ключ текущего элемента


Получает внутренний итератор

  • « IteratorIterator::current
  • IteratorIterator::key »
  • PHP Manual
  • IteratorIterator
  • Получает внутренний итератор

IteratorIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::getInnerIterator — Получает внутренний итератор

Описание

public IteratorIterator::getInnerIterator ( void ) : Traversable

Получает внутренний итератор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Внутренний итератор, который был передан методу IteratorIterator::__construct().

Смотрите также

  • Iterator
  • OuterIterator


Получает ключ текущего элемента

  • « IteratorIterator::getInnerIterator
  • IteratorIterator::next »
  • PHP Manual
  • IteratorIterator
  • Получает ключ текущего элемента

IteratorIterator::key

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::key — Получает ключ текущего элемента

Описание

public IteratorIterator::key ( void ) : mixed

Получает ключ текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ключ текущего элемента.

Смотрите также

  • IteratorIterator::current() - Получает текущее значение


Перемещает итератор к следующему элементу

  • « IteratorIterator::key
  • IteratorIterator::rewind »
  • PHP Manual
  • IteratorIterator
  • Перемещает итератор к следующему элементу

IteratorIterator::next

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::next — Перемещает итератор к следующему элементу

Описание

public IteratorIterator::next ( void ) : void

Перемещает итератор к следующему элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • IteratorIterator::rewind() - Возвращает итератор к первому элементу
  • IteratorIterator::valid() - Проверяет, является ли итератор допустимым


Возвращает итератор к первому элементу

  • « IteratorIterator::next
  • IteratorIterator::valid »
  • PHP Manual
  • IteratorIterator
  • Возвращает итератор к первому элементу

IteratorIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::rewind — Возвращает итератор к первому элементу

Описание

public IteratorIterator::rewind ( void ) : void

Возвращает итератор к первому элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • IteratorIterator::next() - Перемещает итератор к следующему элементу
  • IteratorIterator::valid() - Проверяет, является ли итератор допустимым


Проверяет, является ли итератор допустимым

  • « IteratorIterator::rewind
  • LimitIterator »
  • PHP Manual
  • IteratorIterator
  • Проверяет, является ли итератор допустимым

IteratorIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::valid — Проверяет, является ли итератор допустимым

Описание

public IteratorIterator::valid ( void ) : bool

Проверяет, является ли итератор допустимым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если итератор является допустимым, в противном случае возвращает FALSE

Смотрите также

  • iterator_count() - Подсчитывает количество элементов в итераторе
  • IteratorIterator::current() - Получает текущее значение


Класс LimitIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Класс LimitIterator позволяет сделать перебор ограниченного количества элементов в Iterator.

Обзор классов

LimitIterator extends IteratorIterator implements OuterIterator {
/* Методы */
public __construct ( Iterator $iterator [, int $offset = 0 [, int $count = -1 ]] )
public current ( void ) : mixed
public getInnerIterator ( void ) : Iterator
public getPosition ( void ) : int
public key ( void ) : mixed
public next ( void ) : void
public rewind ( void ) : void
public seek ( int $position ) : int
public valid ( void ) : bool
}

Примеры

Пример #1 Пример использования LimitIterator

<?php

// Создать итератор для ограничения
$fruits = new ArrayIterator(array(
    'apple',
    'banana',
    'cherry',
    'damson',
    'elderberry'
));

// Цикл только по первым трем фруктам
foreach (new LimitIterator($fruits, 0, 3) as $fruit) {
    var_dump($fruit);
}

echo "\n";

// Цикл, начиная с третьего фрукта и до конца
// Примечание: смещение начинается с нуля для яблока
foreach (new LimitIterator($fruits, 2) as $fruit) {
    var_dump($fruit);
}

?>

Результат выполнения данного примера:

string(5) "apple"
string(6) "banana"
string(6) "cherry"

string(6) "cherry"
string(6) "damson"
string(10) "elderberry"

Содержание

  • LimitIterator::__construct — Конструктор класса LimitIterator
  • LimitIterator::current — Получение текущего элемента
  • LimitIterator::getInnerIterator — Получение внутреннего объекта-итератора
  • LimitIterator::getPosition — Возвращает текущую позицию
  • LimitIterator::key — Получение текущего ключа
  • LimitIterator::next — Перемещение к следующей позиции
  • LimitIterator::rewind — Перемещает указатель на начальную позицию
  • LimitIterator::seek — Перемещает итератор на заданную позицию
  • LimitIterator::valid — Проверяет валидность текущего элемента


Конструктор класса LimitIterator

  • « LimitIterator
  • LimitIterator::current »
  • PHP Manual
  • LimitIterator
  • Конструктор класса LimitIterator

LimitIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::__construct — Конструктор класса LimitIterator

Описание

public LimitIterator::__construct ( Iterator $iterator [, int $offset = 0 [, int $count = -1 ]] )

Создает новый объект класса LimitIterator на основе заданного объекта iterator, начального смещения offset и максимального числа итераций count.

Список параметров

iterator

Объект-итератор Iterator, число итераций которого требуется ограничить.

offset

Необязательное начальное смещение.

count

Необязательное ограничение количества итераций.

Возвращаемые значения

Новый объект-итератор LimitIterator.

Ошибки

Выбрасывает исключение OutOfRangeException, если смещение offset окажется меньше 0, либо если count окажется меньше -1.

Примеры

Пример #1 Пример использования LimitIterator::__construct()

<?php
$ait = new ArrayIterator(array('a', 'b', 'c', 'd', 'e'));
$lit = new LimitIterator($ait, 1, 3);
foreach ($lit as $value) {
    echo $value . "\n";
}
?>

Результат выполнения данного примера:

b
c
d

Смотрите также

  • Примеры использования LimitIterator


Получение текущего элемента

  • « LimitIterator::__construct
  • LimitIterator::getInnerIterator »
  • PHP Manual
  • LimitIterator
  • Получение текущего элемента

LimitIterator::current

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::current — Получение текущего элемента

Описание

public LimitIterator::current ( void ) : mixed

Получает текущий элемент, на который ссылается внутренний указатель Iterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий элемент или NULL, если такового нет.

Смотрите также

  • LimitIterator::key() - Получение текущего ключа
  • LimitIterator::next() - Перемещение к следующей позиции
  • LimitIterator::rewind() - Перемещает указатель на начальную позицию
  • LimitIterator::seek() - Перемещает итератор на заданную позицию
  • LimitIterator::valid() - Проверяет валидность текущего элемента


Получение внутреннего объекта-итератора

  • « LimitIterator::current
  • LimitIterator::getPosition »
  • PHP Manual
  • LimitIterator
  • Получение внутреннего объекта-итератора

LimitIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::getInnerIterator — Получение внутреннего объекта-итератора

Описание

public LimitIterator::getInnerIterator ( void ) : Iterator

Возвращает объект-итератор Iterator скрытый внутри объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Внутренний объект-итератор, переданный конструктору LimitIterator::__construct().

Смотрите также

  • LimitIterator::__construct() - Конструктор класса LimitIterator
  • IteratorIterator::getInnerIterator() - Получает внутренний итератор


Возвращает текущую позицию

  • « LimitIterator::getInnerIterator
  • LimitIterator::key »
  • PHP Manual
  • LimitIterator
  • Возвращает текущую позицию

LimitIterator::getPosition

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::getPosition — Возвращает текущую позицию

Описание

public LimitIterator::getPosition ( void ) : int

Возвращает текущую позицию (начиная с 0) внутреннего объекта-итератора Iterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая позиция.

Примеры

Пример #1 Пример использования LimitIterator::getPosition()

<?php
$fruits = array(
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cherry',
    'd' => 'damson',
    'e' => 'elderberry'
);
$array_it = new ArrayIterator($fruits);
$limit_it = new LimitIterator($array_it, 2, 3);
foreach ($limit_it as $item) {
    echo $limit_it->getPosition() . ' ' . $item . "\n";
}
?>

Результат выполнения данного примера:

2 cherry
3 damson
4 elderberry

Смотрите также

  • FilterIterator::key() - Получает текущий ключ


Получение текущего ключа

  • « LimitIterator::getPosition
  • LimitIterator::next »
  • PHP Manual
  • LimitIterator
  • Получение текущего ключа

LimitIterator::key

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::key — Получение текущего ключа

Описание

public LimitIterator::key ( void ) : mixed

Возвращает ключ текущего элемента на который указывает внутренний объект-итератор Iterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ключ текущего элемента.

Смотрите также

  • LimitIterator::getPosition() - Возвращает текущую позицию
  • LimitIterator::current() - Получение текущего элемента
  • LimitIterator::next() - Перемещение к следующей позиции
  • LimitIterator::rewind() - Перемещает указатель на начальную позицию
  • LimitIterator::seek() - Перемещает итератор на заданную позицию
  • LimitIterator::valid() - Проверяет валидность текущего элемента


Перемещение к следующей позиции

  • « LimitIterator::key
  • LimitIterator::rewind »
  • PHP Manual
  • LimitIterator
  • Перемещение к следующей позиции

LimitIterator::next

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::next — Перемещение к следующей позиции

Описание

public LimitIterator::next ( void ) : void

Перемещает итератор к следующей позиции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • LimitIterator::current() - Получение текущего элемента
  • LimitIterator::key() - Получение текущего ключа
  • LimitIterator::rewind() - Перемещает указатель на начальную позицию
  • LimitIterator::seek() - Перемещает итератор на заданную позицию
  • LimitIterator::valid() - Проверяет валидность текущего элемента


Перемещает указатель на начальную позицию

  • « LimitIterator::next
  • LimitIterator::seek »
  • PHP Manual
  • LimitIterator
  • Перемещает указатель на начальную позицию

LimitIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::rewind — Перемещает указатель на начальную позицию

Описание

public LimitIterator::rewind ( void ) : void

Перемещает итератор на начальную позицию, заданную при создании объекта конструктором LimitIterator::__construct().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • LimitIterator::current() - Получение текущего элемента
  • LimitIterator::key() - Получение текущего ключа
  • LimitIterator::next() - Перемещение к следующей позиции
  • LimitIterator::seek() - Перемещает итератор на заданную позицию
  • LimitIterator::valid() - Проверяет валидность текущего элемента


Перемещает итератор на заданную позицию

  • « LimitIterator::rewind
  • LimitIterator::valid »
  • PHP Manual
  • LimitIterator
  • Перемещает итератор на заданную позицию

LimitIterator::seek

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::seek — Перемещает итератор на заданную позицию

Описание

public LimitIterator::seek ( int $position ) : int

Перемещает указатель на заданную позицию position.

Список параметров

position

Позиция, на которую требуется переместить указатель.

Возвращаемые значения

Возвращает смещение от начальной позиции после перемещения.

Ошибки

Выбрасывает исключение OutOfBoundsException, если заданная позиция выходит за пределы, переданные конструктору LimitIterator::__construct().

Смотрите также

  • LimitIterator::current() - Получение текущего элемента
  • LimitIterator::key() - Получение текущего ключа
  • LimitIterator::rewind() - Перемещает указатель на начальную позицию
  • LimitIterator::next() - Перемещение к следующей позиции
  • LimitIterator::valid() - Проверяет валидность текущего элемента


Проверяет валидность текущего элемента

  • « LimitIterator::seek
  • MultipleIterator »
  • PHP Manual
  • LimitIterator
  • Проверяет валидность текущего элемента

LimitIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::valid — Проверяет валидность текущего элемента

Описание

public LimitIterator::valid ( void ) : bool

Проверяет, имеет ли текущий элемент допустимое значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • LimitIterator::current() - Получение текущего элемента
  • LimitIterator::key() - Получение текущего ключа
  • LimitIterator::rewind() - Перемещает указатель на начальную позицию
  • LimitIterator::next() - Перемещение к следующей позиции
  • LimitIterator::seek() - Перемещает итератор на заданную позицию


Класс MultipleIterator

(PHP 5 >= 5.3.0, PHP 7)

Введение

Итератор, который последовательно перебирает по всем присоединенным итераторам

Обзор классов

MultipleIterator implements Iterator {
/* Константы */
const integer MIT_NEED_ANY = 0 ;
const integer MIT_NEED_ALL = 1 ;
const integer MIT_KEYS_NUMERIC = 0 ;
const integer MIT_KEYS_ASSOC = 2 ;
/* Методы */
public __construct ([ int $flags = MultipleIterator::MIT_NEED_ALL|MultipleIterator::MIT_KEYS_NUMERIC ] )
public attachIterator ( Iterator $iterator [, string $infos ] ) : void
public containsIterator ( Iterator $iterator ) : bool
public countIterators ( void ) : int
public current ( void ) : array
public detachIterator ( Iterator $iterator ) : void
public getFlags ( void ) : int
public key ( void ) : array
public next ( void ) : void
public rewind ( void ) : void
public setFlags ( int $flags ) : void
public valid ( void ) : bool
}

Предопределенные константы

MultipleIterator::MIT_NEED_ANY

Не требовать, чтобы все подытераторы были действительными в итерации.

MultipleIterator::MIT_NEED_ALL

Требовать, чтобы все подытераторы были действительными в итерации.

MultipleIterator::MIT_KEYS_NUMERIC

Ключи создаются из позиции подытераторов.

MultipleIterator::MIT_KEYS_ASSOC

Ключи создаются из связанной с подытераторами информации.

Содержание

  • MultipleIterator::attachIterator — Присоединяет итератор
  • MultipleIterator::__construct — Создает новый MultipleIterator
  • MultipleIterator::containsIterator — Проверяет, присоединен ли итератор
  • MultipleIterator::countIterators — Получает число присоединенных итераторов
  • MultipleIterator::current — Получает зарегистрированные итераторы
  • MultipleIterator::detachIterator — Отсоединяет итератор
  • MultipleIterator::getFlags — Получает информацию о флагах
  • MultipleIterator::key — Получает зарегистрированные итераторы
  • MultipleIterator::next — Перемещает все присоединенные итераторы к своим следующим элементам
  • MultipleIterator::rewind — Возвращает в начало все присоединенные итераторы
  • MultipleIterator::setFlags — Устанавливает флаги
  • MultipleIterator::valid — Проверяет корректность подытераторов


Присоединяет итератор

  • « MultipleIterator
  • MultipleIterator::__construct »
  • PHP Manual
  • MultipleIterator
  • Присоединяет итератор

MultipleIterator::attachIterator

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::attachIterator — Присоединяет итератор

Описание

public MultipleIterator::attachIterator ( Iterator $iterator [, string $infos ] ) : void

Присоединяет итератор.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Новый итератор для присоединения.

infos

Ассоциативная информация для итератора (Iterator), которая должна быть представлена целым числом (integer), строкой (string), или NULL.

Возвращаемые значения

Описание...

Ошибки

IllegalValueException, если параметр iterator недействителен, или если infos содержит уже ассоциированную информацию.

Смотрите также

  • MultipleIterator::__construct() - Создает новый MultipleIterator


Создает новый MultipleIterator

  • « MultipleIterator::attachIterator
  • MultipleIterator::containsIterator »
  • PHP Manual
  • MultipleIterator
  • Создает новый MultipleIterator

MultipleIterator::__construct

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::__construct — Создает новый MultipleIterator

Описание

public MultipleIterator::__construct ([ int $flags = MultipleIterator::MIT_NEED_ALL|MultipleIterator::MIT_KEYS_NUMERIC ] )

Создает новый MultipleIterator.

Список параметров

flags

Флаги для установки, согласно Предопределенным константам.

  • MultipleIterator::MIT_NEED_ALL или MultipleIterator::MIT_NEED_ANY
  • MultipleIterator::MIT_KEYS_NUMERIC или MultipleIterator::MIT_KEYS_ASSOC

По умолчанию MultipleIterator::MIT_NEED_ALL|MultipleIterator::MIT_KEYS_NUMERIC.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Итерирование MultipleIterator

<?php
$people = new ArrayIterator(array('John', 'Jane', 'Jack', 'Judy'));
$roles  = new ArrayIterator(array('Developer', 'Scrum Master', 'Project Owner'));

$team = new MultipleIterator($flags);
$team->attachIterator($people, 'person');
$team->attachIterator($roles, 'role');

foreach ($team as $member) {
    print_r($member);
}
?>

Вывод с $flags = MIT_NEED_ALL|MIT_KEYS_NUMERIC

Array
(
    [0] => John
    [1] => Developer
)
Array
(
    [0] => Jane
    [1] => Scrum Master
)
Array
(
    [0] => Jack
    [1] => Project Owner
)

Вывод с $flags = MIT_NEED_ANY|MIT_KEYS_NUMERIC

Array
(
    [0] => John
    [1] => Developer
)
Array
(
    [0] => Jane
    [1] => Scrum Master
)
Array
(
    [0] => Jack
    [1] => Project Owner
)
Array
(
    [0] => Judy
    [1] =>
)

Вывод с $flags = MIT_NEED_ALL|MIT_KEYS_ASSOC

Array
(
    [person] => John
    [role] => Developer
)
Array
(
    [person] => Jane
    [role] => Scrum Master
)
Array
(
    [person] => Jack
    [role] => Project Owner
)

Вывод с $flags = MIT_NEED_ANY|MIT_KEYS_ASSOC

Array
(
    [person] => John
    [role] => Developer
)
Array
(
    [person] => Jane
    [role] => Scrum Master
)
Array
(
    [person] => Jack
    [role] => Project Owner
)
Array
(
    [person] => Judy
    [role] =>
)

Смотрите также

  • Предопределенные константы
  • MultipleIterator::valid() - Проверяет корректность подытераторов


Проверяет, присоединен ли итератор

  • « MultipleIterator::__construct
  • MultipleIterator::countIterators »
  • PHP Manual
  • MultipleIterator
  • Проверяет, присоединен ли итератор

MultipleIterator::containsIterator

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::containsIterator — Проверяет, присоединен ли итератор

Описание

public MultipleIterator::containsIterator ( Iterator $iterator ) : bool

Проверяет, присоединен итератор, или нет.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Итератор для проверки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • MultipleIterator::valid() - Проверяет корректность подытераторов


Получает число присоединенных итераторов

  • « MultipleIterator::containsIterator
  • MultipleIterator::current »
  • PHP Manual
  • MultipleIterator
  • Получает число присоединенных итераторов

MultipleIterator::countIterators

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::countIterators — Получает число присоединенных итераторов

Описание

public MultipleIterator::countIterators ( void ) : int

Получает число присоединенных итераторов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Число присоединенных итераторов (в виде integer).

Смотрите также

  • MultipleIterator::containsIterator() - Проверяет, присоединен ли итератор


Получает зарегистрированные итераторы

  • « MultipleIterator::countIterators
  • MultipleIterator::detachIterator »
  • PHP Manual
  • MultipleIterator
  • Получает зарегистрированные итераторы

MultipleIterator::current

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::current — Получает зарегистрированные итераторы

Описание

public MultipleIterator::current ( void ) : array

Получает результат выполнения current() зарегистрированных итераторов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) всех текущих значений каждого присоединенного итератора, или FALSE, если нет присоединенных подытераторов.

Ошибки

RuntimeException, если установлен режим MIT_NEED_ALL и хотя бы один присоединенный итератор недействителен. Или IllegalValueException, если ключ имеет значение NULL, а флаг MIT_KEYS_ASSOC установлен.

Смотрите также

  • MultipleIterator::valid() - Проверяет корректность подытераторов


Отсоединяет итератор

  • « MultipleIterator::current
  • MultipleIterator::getFlags »
  • PHP Manual
  • MultipleIterator
  • Отсоединяет итератор

MultipleIterator::detachIterator

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::detachIterator — Отсоединяет итератор

Описание

public MultipleIterator::detachIterator ( Iterator $iterator ) : void

Отсоединяет итератор.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Отсоединяемый итератор.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • MultipleIterator::attachIterator() - Присоединяет итератор


Получает информацию о флагах

  • « MultipleIterator::detachIterator
  • MultipleIterator::key »
  • PHP Manual
  • MultipleIterator
  • Получает информацию о флагах

MultipleIterator::getFlags

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::getFlags — Получает информацию о флагах

Описание

public MultipleIterator::getFlags ( void ) : int

Получает информацию о флагах.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Информация о флагах, в виде integer.

Смотрите также

  • Предопределенные константы
  • MultipleIterator::__construct() - Создает новый MultipleIterator
  • MultipleIterator::setFlags() - Устанавливает флаги


Получает зарегистрированные итераторы

  • « MultipleIterator::getFlags
  • MultipleIterator::next »
  • PHP Manual
  • MultipleIterator
  • Получает зарегистрированные итераторы

MultipleIterator::key

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::key — Получает зарегистрированные итераторы

Описание

public MultipleIterator::key ( void ) : array

Получает результат выполнения key() зарегистрированных итераторов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) всех зарегистрированных итераторов, или FALSE, если нет присоединенных подытераторов.

Ошибки

LogicException, если установлен режим MIT_NEED_ALL, и хотя бы один присоединенный итератор недействителен.

Вызов этого метода из foreach вызовет предупреждение "Возвращен неверный тип" ("Illegal type returned").

Смотрите также

  • MultipleIterator::current() - Получает зарегистрированные итераторы


Перемещает все присоединенные итераторы к своим следующим элементам

  • « MultipleIterator::key
  • MultipleIterator::rewind »
  • PHP Manual
  • MultipleIterator
  • Перемещает все присоединенные итераторы к своим следующим элементам

MultipleIterator::next

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::next — Перемещает все присоединенные итераторы к своим следующим элементам

Описание

public MultipleIterator::next ( void ) : void

Перемещает все присоединенные итераторы к своим следующим элементам.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • MultipleIterator::rewind() - Возвращает в начало все присоединенные итераторы


Возвращает в начало все присоединенные итераторы

  • « MultipleIterator::next
  • MultipleIterator::setFlags »
  • PHP Manual
  • MultipleIterator
  • Возвращает в начало все присоединенные итераторы

MultipleIterator::rewind

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::rewind — Возвращает в начало все присоединенные итераторы

Описание

public MultipleIterator::rewind ( void ) : void

Возвращает в начало все присоединенные итераторы.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • MultipleIterator::next() - Перемещает все присоединенные итераторы к своим следующим элементам


Устанавливает флаги

  • « MultipleIterator::rewind
  • MultipleIterator::valid »
  • PHP Manual
  • MultipleIterator
  • Устанавливает флаги

MultipleIterator::setFlags

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::setFlags — Устанавливает флаги

Описание

public MultipleIterator::setFlags ( int $flags ) : void

Устанавливает флаги.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

flags

Флаги для установки, согласно Предопределенным константам

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Предопределенные константы
  • MultipleIterator::__construct() - Создает новый MultipleIterator
  • MultipleIterator::getFlags() - Получает информацию о флагах


Проверяет корректность подытераторов

  • « MultipleIterator::setFlags
  • NoRewindIterator »
  • PHP Manual
  • MultipleIterator
  • Проверяет корректность подытераторов

MultipleIterator::valid

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::valid — Проверяет корректность подытераторов

Описание

public MultipleIterator::valid ( void ) : bool

Проверяет корректность подытераторов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если один или все (в зависимости от флагов) подытераторы действительны; в противном случае - FALSE

Смотрите также

  • MultipleIterator::__construct() - Создает новый MultipleIterator


Класс NoRewindIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Итератор игнорирует операции перемотки. Это позволяет обрабатывать итератор в нескольких частичных циклах foreach.

Обзор классов

NoRewindIterator extends IteratorIterator {
/* Методы */
public __construct ( Iterator $iterator )
public current ( void ) : mixed
public getInnerIterator ( void ) : iterator
public key ( void ) : mixed
public next ( void ) : void
public rewind ( void ) : void
public valid ( void ) : bool
/* Наследуемые методы */
public IteratorIterator::__construct ( Traversable $iterator )
public IteratorIterator::current ( void ) : mixed
public IteratorIterator::getInnerIterator ( void ) : Traversable
public IteratorIterator::key ( void ) : mixed
public IteratorIterator::next ( void ) : void
public IteratorIterator::rewind ( void ) : void
public IteratorIterator::valid ( void ) : bool
}

Содержание

  • NoRewindIterator::__construct — Создает новый объект NoRewindIterator
  • NoRewindIterator::current — Получает текущее значение
  • NoRewindIterator::getInnerIterator — Получает внутренний итератор
  • NoRewindIterator::key — Получает текущий ключ
  • NoRewindIterator::next — Перемещает итератор к следующему элементу
  • NoRewindIterator::rewind — Предотвращает возврат внутреннего итератора в начало
  • NoRewindIterator::valid — Проверяет итератор


Создает новый объект NoRewindIterator

  • « NoRewindIterator
  • NoRewindIterator::current »
  • PHP Manual
  • NoRewindIterator
  • Создает новый объект NoRewindIterator

NoRewindIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::__construct — Создает новый объект NoRewindIterator

Описание

public NoRewindIterator::__construct ( Iterator $iterator )

Создает новый объект NoRewindIterator.

Список параметров

iterator

Используемый итератор.

Возвращаемые значения

Объект NoRewindIterator(), основанный на итераторе, переданном в параметре iterator.

Примеры

Пример #1 Пример использования NoRewindIterator::__construct()

Второй цикл ничего не выведет, поскольку итератор используется только один раз и не может быть возвращен в начало.

<?php
$fruit = array('яблоко', 'банан', 'клюква');

$arr = new ArrayObject($fruit);
$it  = new NoRewindIterator($arr->getIterator());

echo "Фрукт А:\n";
foreach( $it as $item ) {
    echo $item . "\n";
}

echo "Фрукт Б:\n";
foreach( $it as $item ) {
    echo $item . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Фрукт А:
яблоко
банан
клюква
Фрукт Б:

Смотрите также

  • NoRewindIterator::valid() - Проверяет итератор


Получает текущее значение

  • « NoRewindIterator::__construct
  • NoRewindIterator::getInnerIterator »
  • PHP Manual
  • NoRewindIterator
  • Получает текущее значение

NoRewindIterator::current

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::current — Получает текущее значение

Описание

public NoRewindIterator::current ( void ) : mixed

Получает текущее значение.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущее значение.

Смотрите также

  • NoRewindIterator::key() - Получает текущий ключ


Получает внутренний итератор

  • « NoRewindIterator::current
  • NoRewindIterator::key »
  • PHP Manual
  • NoRewindIterator
  • Получает внутренний итератор

NoRewindIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::getInnerIterator — Получает внутренний итератор

Описание

public NoRewindIterator::getInnerIterator ( void ) : iterator

Получает внутренний итератор, который был передан в NoRewindIterator.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Внутренний итератор, переданный в NoRewindIterator::__construct().

Смотрите также

  • NoRewindIterator::valid() - Проверяет итератор


Получает текущий ключ

  • « NoRewindIterator::getInnerIterator
  • NoRewindIterator::next »
  • PHP Manual
  • NoRewindIterator
  • Получает текущий ключ

NoRewindIterator::key

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::key — Получает текущий ключ

Описание

public NoRewindIterator::key ( void ) : mixed

Получает текущий ключ.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий ключ.

Смотрите также

  • NoRewindIterator::next() - Перемещает итератор к следующему элементу


Перемещает итератор к следующему элементу

  • « NoRewindIterator::key
  • NoRewindIterator::rewind »
  • PHP Manual
  • NoRewindIterator
  • Перемещает итератор к следующему элементу

NoRewindIterator::next

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::next — Перемещает итератор к следующему элементу

Описание

public NoRewindIterator::next ( void ) : void

Перемещает итератор к следующему элементу.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • NoRewindIterator::rewind() - Предотвращает возврат внутреннего итератора в начало


Предотвращает возврат внутреннего итератора в начало

  • « NoRewindIterator::next
  • NoRewindIterator::valid »
  • PHP Manual
  • NoRewindIterator
  • Предотвращает возврат внутреннего итератора в начало

NoRewindIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::rewind — Предотвращает возврат внутреннего итератора в начало

Описание

public NoRewindIterator::rewind ( void ) : void

Предотвращает возврат внутреннего итератора в начало.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования NoRewindIterator::rewind()

Пример показывает, что вызов операции возврата в начало над объектом NoRewindIterator не имеет никакого эффекта.

<?php
$fruits = array("лимон", "апельсин", "яблоко", "груша");

$noRewindIterator = new NoRewindIterator(new ArrayIterator($fruits));

echo $noRewindIterator->current() . "\n";
$noRewindIterator->next();
// возврат итератора в начало (ничего не должно случиться)
$noRewindIterator->rewind();
echo $noRewindIterator->current() . "\n";
?>

Результат выполнения данного примера:

лимон
апельсин


Проверяет итератор

  • « NoRewindIterator::rewind
  • ParentIterator »
  • PHP Manual
  • NoRewindIterator
  • Проверяет итератор

NoRewindIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::valid — Проверяет итератор

Описание

public NoRewindIterator::valid ( void ) : bool

Проверяет, является ли итератор допустимым.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • NoRewindIterator::getInnerIterator() - Получает внутренний итератор


Класс ParentIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Это расширенный класс от FilterIterator, позволяющий осуществить рекурсивную итерацию, используя класс RecursiveIteratorIterator, который показывает только те элементы, которые имеют потомков.

Обзор классов

ParentIterator extends RecursiveFilterIterator implements RecursiveIterator , OuterIterator {
/* Методы */
public accept ( void ) : bool
public __construct ( RecursiveIterator $iterator )
public getChildren ( void ) : ParentIterator
public hasChildren ( void ) : bool
public next ( void ) : void
public rewind ( void ) : void
/* Наследуемые методы */
public OuterIterator::getInnerIterator ( void ) : Iterator
}

Содержание

  • ParentIterator::accept — Определение доступности
  • ParentIterator::__construct — Конструктор класса ParentIterator
  • ParentIterator::getChildren — Возвращает дочерние объекты итератора, хранящегося внутри ParentIterator
  • ParentIterator::hasChildren — Проверяет, имеет ли внутренний объект-итератор дочерние объекты
  • ParentIterator::next — Перемещает указатель на одну позицию вперед
  • ParentIterator::rewind — Переводит итератор на начало


Определение доступности

  • « ParentIterator
  • ParentIterator::__construct »
  • PHP Manual
  • ParentIterator
  • Определение доступности

ParentIterator::accept

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::accept — Определение доступности

Описание

public ParentIterator::accept ( void ) : bool

Определяет, имеет ли элемент дочерние элементы.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если элемент доступен, FALSE в противном случае.

Смотрите также

  • ParentIterator::hasChildren() - Проверяет, имеет ли внутренний объект-итератор дочерние объекты
  • FilterIterator::accept() - Проверяет, является ли текущий элемент итератора допустимым


Конструктор класса ParentIterator

  • « ParentIterator::accept
  • ParentIterator::getChildren »
  • PHP Manual
  • ParentIterator
  • Конструктор класса ParentIterator

ParentIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::__construct — Конструктор класса ParentIterator

Описание

public ParentIterator::__construct ( RecursiveIterator $iterator )

Создает новый объект класса ParentIterator на основе объекта-итератора.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Объект-итератор, на основе которого создается новый объект.

Возвращаемые значения

Объект ParentIterator.


Возвращает дочерние объекты итератора, хранящегося внутри ParentIterator

  • « ParentIterator::__construct
  • ParentIterator::hasChildren »
  • PHP Manual
  • ParentIterator
  • Возвращает дочерние объекты итератора, хранящегося внутри ParentIterator

ParentIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::getChildren — Возвращает дочерние объекты итератора, хранящегося внутри ParentIterator

Описание

public ParentIterator::getChildren ( void ) : ParentIterator

Возвращает дочерние объекты итератора, хранящегося внутри ParentIterator.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект (object).


Проверяет, имеет ли внутренний объект-итератор дочерние объекты

  • « ParentIterator::getChildren
  • ParentIterator::next »
  • PHP Manual
  • ParentIterator
  • Проверяет, имеет ли внутренний объект-итератор дочерние объекты

ParentIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::hasChildren — Проверяет, имеет ли внутренний объект-итератор дочерние объекты

Описание

public ParentIterator::hasChildren ( void ) : bool

Проверяет, имеет ли внутренний объект-итератор дочерние объекты.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Перемещает указатель на одну позицию вперед

  • « ParentIterator::hasChildren
  • ParentIterator::rewind »
  • PHP Manual
  • ParentIterator
  • Перемещает указатель на одну позицию вперед

ParentIterator::next

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::next — Перемещает указатель на одну позицию вперед

Описание

public ParentIterator::next ( void ) : void

Перемещает указатель на одну позицию вперед.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Переводит итератор на начало

  • « ParentIterator::next
  • RecursiveArrayIterator »
  • PHP Manual
  • ParentIterator
  • Переводит итератор на начало

ParentIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::rewind — Переводит итератор на начало

Описание

public ParentIterator::rewind ( void ) : void

Перемещает указатель на начальную позицию.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс RecursiveArrayIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Этот итератор позволяет сбросить и изменить значения и ключи во время прохода по массивам и объектам таким же образом, как и ArrayIterator. Кроме того, можно перебирать текущие записи итератора.

Обзор классов

RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator {
/* Наследуемые константы */
const integer STD_PROP_LIST = 1 ;
const integer ARRAY_AS_PROPS = 2 ;
/* Константы */
const integer CHILD_ARRAYS_ONLY = 4 ;
/* Методы */
public getChildren ( void ) : RecursiveArrayIterator
public hasChildren ( void ) : bool
/* Наследуемые методы */
public ArrayIterator::append ( mixed $value ) : void
public ArrayIterator::asort ( void ) : void
public ArrayIterator::__construct ([ mixed $array = array() [, int $flags = 0 ]] )
public ArrayIterator::count ( void ) : int
public ArrayIterator::current ( void ) : mixed
public ArrayIterator::getArrayCopy ( void ) : array
public ArrayIterator::getFlags ( void ) : int
public ArrayIterator::key ( void ) : mixed
public ArrayIterator::ksort ( void ) : void
public ArrayIterator::natcasesort ( void ) : void
public ArrayIterator::natsort ( void ) : void
public ArrayIterator::next ( void ) : void
public ArrayIterator::offsetExists ( mixed $index ) : bool
public ArrayIterator::offsetGet ( mixed $index ) : mixed
public ArrayIterator::offsetSet ( mixed $index , mixed $newval ) : void
public ArrayIterator::offsetUnset ( mixed $index ) : void
public ArrayIterator::rewind ( void ) : void
public ArrayIterator::seek ( int $position ) : void
public ArrayIterator::serialize ( void ) : string
public ArrayIterator::setFlags ( string $flags ) : void
public ArrayIterator::uasort ( callable $cmp_function ) : void
public ArrayIterator::uksort ( callable $cmp_function ) : void
public ArrayIterator::unserialize ( string $serialized ) : void
public ArrayIterator::valid ( void ) : bool
}

Предопределенные константы

Флаги RecursiveArrayIterator

RecursiveArrayIterator::CHILD_ARRAYS_ONLY

Применим только к массивам (не к объектам) как имеющих детей для итерации.

Список изменений

Версия | Описание
5.3.0 | Добавлен флаг CHILD_ARRAYS_ONLY.

Содержание

  • RecursiveArrayIterator::getChildren — Возвращает итератор для текущего элемента, если этот элемент является массивом (array) или объектом (object)
  • RecursiveArrayIterator::hasChildren — Определяет, является ли текущий элемент массивом или объектом


Возвращает итератор для текущего элемента, если этот элемент является массивом (array) или объектом (object)

  • « RecursiveArrayIterator
  • RecursiveArrayIterator::hasChildren »
  • PHP Manual
  • RecursiveArrayIterator
  • Возвращает итератор для текущего элемента, если этот элемент является массивом (array) или объектом (object)

RecursiveArrayIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveArrayIterator::getChildren — Возвращает итератор для текущего элемента, если этот элемент является массивом (array) или объектом (object)

Описание

public RecursiveArrayIterator::getChildren ( void ) : RecursiveArrayIterator

Возвращает итератор для текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Итератор для текущего элемента, если этот элемент является массивом (array) или объектом (object).

Ошибки

Метод выбрасывает исключение InvalidArgumentException, если текущий элемент не содержит массивов (array) или объектов (object).

Примеры

Пример #1 Пример использования RecursiveArrayIterator::getChildren()

<?php
$fruits = array("a" => "lemon", "b" => "orange", array("a" => "apple", "p" => "pear"));

$iterator = new RecursiveArrayIterator($fruits);

while ($iterator->valid()) {

    if ($iterator->hasChildren()) {
        // выводим информацию о всех дочерних элементах
        foreach ($iterator->getChildren() as $key => $value) {
            echo $key . ' : ' . $value . "\n";
        }
    } else {
        echo "Дочерних элементов не обнаружено.\n";
    }

    $iterator->next();
}
?>

Результат выполнения данного примера:

Дочерних элементов не обнаружено.
Дочерних элементов не обнаружено.
a : apple
p : pear

Смотрите также

  • RecursiveArrayIterator::hasChildren() - Определяет, является ли текущий элемент массивом или объектом


Определяет, является ли текущий элемент массивом или объектом

  • « RecursiveArrayIterator::getChildren
  • RecursiveCachingIterator »
  • PHP Manual
  • RecursiveArrayIterator
  • Определяет, является ли текущий элемент массивом или объектом

RecursiveArrayIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveArrayIterator::hasChildren — Определяет, является ли текущий элемент массивом или объектом

Описание

public RecursiveArrayIterator::hasChildren ( void ) : bool

Определяет, является ли текущий элемент массивом (array) или объектом (object). Эти сведения необходимо проверять, прежде чем вызывать метод RecursiveArrayIterator::getChildren().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если текущий элемент является массивом (array) или объектом (object), FALSE в противном случае.

Примеры

Пример #1 Пример использования RecursiveArrayIterator::hasChildren()

<?php
$fruits = array("a" => "lemon", "b" => "orange", array("a" => "apple", "p" => "pear"));

$iterator = new RecursiveArrayIterator($fruits);

while ($iterator->valid()) {

    // проверим, есть ли дочерние элементы
    if ($iterator->hasChildren()) {
        // выведем информацию о дочерних элементах
        foreach ($iterator->getChildren() as $key => $value) {
            echo $key . ' : ' . $value . "\n";
        }
    } else {
        echo "Дочерних элементов нет.\n";
    }

    $iterator->next();
}
?>

Результат выполнения данного примера:

Дочерних элементов нет.
Дочерних элементов нет.
a : apple
p : pear

Смотрите также

  • RecursiveArrayIterator::getChildren() - Возвращает итератор для текущего элемента, если этот элемент является массивом (array) или объектом (object)


Класс RecursiveCachingIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

...

Обзор классов

RecursiveCachingIterator extends CachingIterator implements Countable , ArrayAccess , OuterIterator , RecursiveIterator {
/* Наследуемые константы */
const integer CachingIterator::CALL_TOSTRING = 1 ;
const integer CachingIterator::CATCH_GET_CHILD = 16 ;
const integer CachingIterator::TOSTRING_USE_KEY = 2 ;
const integer CachingIterator::TOSTRING_USE_CURRENT = 4 ;
const integer CachingIterator::TOSTRING_USE_INNER = 8 ;
const integer CachingIterator::FULL_CACHE = 256 ;
/* Методы */
public __construct ( Iterator $iterator [, int $flags = self::CALL_TOSTRING ] )
public getChildren ( void ) : RecursiveCachingIterator
public hasChildren ( void ) : bool
/* Наследуемые методы */
public CachingIterator::__construct ( Iterator $iterator [, int $flags = self::CALL_TOSTRING ] )
public CachingIterator::count ( void ) : int
public CachingIterator::current ( void ) : mixed
public CachingIterator::getCache ( void ) : array
public CachingIterator::getFlags ( void ) : void
public CachingIterator::getInnerIterator ( void ) : Iterator
public CachingIterator::hasNext ( void ) : void
public CachingIterator::key ( void ) : scalar
public CachingIterator::next ( void ) : void
public CachingIterator::offsetExists ( mixed $index ) : void
public CachingIterator::offsetGet ( string $index ) : void
public CachingIterator::offsetSet ( mixed $index , mixed $newval ) : void
public CachingIterator::offsetUnset ( string $index ) : void
public CachingIterator::rewind ( void ) : void
public CachingIterator::setFlags ( int $flags ) : void
public CachingIterator::__toString ( void ) : void
public CachingIterator::valid ( void ) : void
}

Содержание

  • RecursiveCachingIterator::__construct — Конструктор
  • RecursiveCachingIterator::getChildren — Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveCachingIterator
  • RecursiveCachingIterator::hasChildren — Проверяет, имеет ли текущий элемент внутреннего итератора дочерние элементы


Конструктор

  • « RecursiveCachingIterator
  • RecursiveCachingIterator::getChildren »
  • PHP Manual
  • RecursiveCachingIterator
  • Конструктор

RecursiveCachingIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

RecursiveCachingIterator::__construct — Конструктор

Описание

public RecursiveCachingIterator::__construct ( Iterator $iterator [, int $flags = self::CALL_TOSTRING ] )

Создает новый RecursiveCachingIterator, который состоит из переданного итератора (iterator).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Используемый итератор.

flags

Флаги. Используйте CALL_TOSTRING для того, чтобы вызвать RecursiveCachingIterator::__toString() для каждого элемента (по умолчанию), и/или CATCH_GET_CHILD для перехвата исключений при попытке получения дочерних элементов.

Возвращаемые значения

RecursiveCachingIterator.

Смотрите также

  • CachingIterator::__construct() - Создает новый объект CachingIterator для итератора


Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveCachingIterator

  • « RecursiveCachingIterator::__construct
  • RecursiveCachingIterator::hasChildren »
  • PHP Manual
  • RecursiveCachingIterator
  • Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveCachingIterator

RecursiveCachingIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveCachingIterator::getChildren — Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveCachingIterator

Описание

public RecursiveCachingIterator::getChildren ( void ) : RecursiveCachingIterator
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Дочерние элементы внутреннего итератора, в виде объекта RecursiveCachingIterator.


Проверяет, имеет ли текущий элемент внутреннего итератора дочерние элементы

  • « RecursiveCachingIterator::getChildren
  • RecursiveCallbackFilterIterator »
  • PHP Manual
  • RecursiveCachingIterator
  • Проверяет, имеет ли текущий элемент внутреннего итератора дочерние элементы

RecursiveCachingIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveCachingIterator::hasChildren — Проверяет, имеет ли текущий элемент внутреннего итератора дочерние элементы

Описание

public RecursiveCachingIterator::hasChildren ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если внутренний итератор имеет дочерние элементы; в противном случае - FALSE


Класс RecursiveCallbackFilterIterator

(PHP 5 >= 5.4.0, PHP 7)

Введение

Обзор классов

RecursiveCallbackFilterIterator extends CallbackFilterIterator implements OuterIterator , RecursiveIterator {
/* Методы */
public __construct ( RecursiveIterator $iterator , string $callback )
public getChildren ( void ) : RecursiveCallbackFilterIterator
public hasChildren ( void ) : bool
/* Наследуемые методы */
public CallbackFilterIterator::accept ( void ) : bool
}

Примеры

Callback-функция может принимать до трех аргументов: текущий элемент, текущий ключ и итератор, соответственно.

Пример #1 Доступные аргументы callback-функции

<?php

/**
 * Callback-функция для RecursiveCallbackFilterIterator
 *
 * @param $current   Значение текущего элемента
 * @param $key       Ключ текущего элемента
 * @param $iterator  Итератор, который фильтруется
 * @return boolean   TRUE для приема текущего элемента или FALSE - в ином случае.
 */
function my_callback($current, $key, $iterator) {
    // Здесь ваш код фильтрации
}

?>

Фильтрация рекурсивного итератора обычно включает в себя два условия. Первое заключается в том, чтобы разрешить рекурсию. Callback-функция должна возвращать TRUE, если текущий элемент итератора имеет потомков. Второе - это нормальное условие фильтра, например, проверка размера файла или расширения, как в примере ниже.

Пример #2 Простой пример рекурсивного обратного вызова

<?php

$dir = new RecursiveDirectoryIterator(__DIR__);

// Фильтр больших файлов ( > 100MB)
$files = new RecursiveCallbackFilterIterator($dir, function ($current, $key, $iterator) {
    // Разрешить рекурсию
    if ($iterator->hasChildren()) {
        return TRUE;
    }
    // Проверка больших файлов
    if ($current->isFile() && $current->getSize() > 104857600) {
        return TRUE;
    }
    return FALSE;
});

foreach (new RecursiveIteratorIterator($files) as $file) {
    echo $file->getPathname() . PHP_EOL;
}

?>

Содержание

  • RecursiveCallbackFilterIterator::__construct — Создает объект класса RecursiveCallbackFilterIterator на основе объекта RecursiveIterator
  • RecursiveCallbackFilterIterator::getChildren — Возвращает дочерние элементы итератора, хранящегося внутри RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::hasChildren — Проверяет, содержит ли текущий элемент внутреннего итератора дочерние элементы


Создает объект класса RecursiveCallbackFilterIterator на основе объекта RecursiveIterator

  • « RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::getChildren »
  • PHP Manual
  • RecursiveCallbackFilterIterator
  • Создает объект класса RecursiveCallbackFilterIterator на основе объекта RecursiveIterator

RecursiveCallbackFilterIterator::__construct

(PHP 5 >= 5.4.0, PHP 7)

RecursiveCallbackFilterIterator::__construct — Создает объект класса RecursiveCallbackFilterIterator на основе объекта RecursiveIterator

Описание

public RecursiveCallbackFilterIterator::__construct ( RecursiveIterator $iterator , string $callback )

Создает фильтрующий итератор на основе объекта-итератора RecursiveIterator, используя функцию callback для отбора нужных элементов.

Список параметров

iterator

Рекурсивный итератор, к которому нужно применить фильтр.

callback

Callback-функция, которая должна возвращать TRUE, если текущий элемент подходит под условия фильтра, и FALSE, если элемент нужно исключить из перебора. Смотрите Примеры.

Может быть любым допустимым callable значением.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Примеры использования RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::getChildren() - Возвращает дочерние элементы итератора, хранящегося внутри RecursiveCallbackFilterIterator
  • RecursiveCallbackFilteriterator::hasChildren() - Проверяет, содержит ли текущий элемент внутреннего итератора дочерние элементы


Возвращает дочерние элементы итератора, хранящегося внутри RecursiveCallbackFilterIterator

  • « RecursiveCallbackFilterIterator::__construct
  • RecursiveCallbackFilterIterator::hasChildren »
  • PHP Manual
  • RecursiveCallbackFilterIterator
  • Возвращает дочерние элементы итератора, хранящегося внутри RecursiveCallbackFilterIterator

RecursiveCallbackFilterIterator::getChildren

(PHP 5 >= 5.4.0, PHP 7)

RecursiveCallbackFilterIterator::getChildren — Возвращает дочерние элементы итератора, хранящегося внутри RecursiveCallbackFilterIterator

Описание

public RecursiveCallbackFilterIterator::getChildren ( void ) : RecursiveCallbackFilterIterator

Выбирает дочерние элементы внутреннего итератора, подходящие под условия фильтра.

Прежде чем вызывать метод, необходимо удостовериться, что внутренний итератор содержит дочерние элементы. Сделать это можно с помощью метода RecursiveCallbackFilterIterator::hasChildren().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект RecursiveCallbackFilterIterator, содержащий дочерние элементы внутреннего итератора.

Смотрите также

  • Примеры использования RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::__construct() - Создает объект класса RecursiveCallbackFilterIterator на основе объекта RecursiveIterator
  • RecursiveCallbackFilteriterator::hasChildren() - Проверяет, содержит ли текущий элемент внутреннего итератора дочерние элементы


Проверяет, содержит ли текущий элемент внутреннего итератора дочерние элементы

  • « RecursiveCallbackFilterIterator::getChildren
  • RecursiveDirectoryIterator »
  • PHP Manual
  • RecursiveCallbackFilterIterator
  • Проверяет, содержит ли текущий элемент внутреннего итератора дочерние элементы

RecursiveCallbackFilterIterator::hasChildren

(PHP 5 >= 5.4.0, PHP 7)

RecursiveCallbackFilterIterator::hasChildren — Проверяет, содержит ли текущий элемент внутреннего итератора дочерние элементы

Описание

public RecursiveCallbackFilterIterator::hasChildren ( void ) : bool

Возвращает TRUE, если у текущего элемента есть дочерние элементы и FALSE, если нет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если у текущего элемента есть дочерние элеементы и FALSE, если нет.

Примеры

Пример #1 Пример использования RecursiveCallbackFilterIterator::hasChildren()

<?php

$dir = new RecursiveDirectoryIterator(__DIR__);

// Рекурсивный обход XML файлов
$files = new RecursiveCallbackFilterIterator($dir, function ($current, $key, $iterator) {
    // просматривать директории
    if ($iterator->hasChildren()) {
        return TRUE;
    }
    // отбор XML файлов
    if (!strcasecmp($current->getExtension(), 'xml')) {
        return TRUE;
    }
    return FALSE;
});

?>

Смотрите также

  • Примеры использования RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::__construct() - Создает объект класса RecursiveCallbackFilterIterator на основе объекта RecursiveIterator
  • RecursiveCallbackFilteriterator::getChildren() - Возвращает дочерние элементы итератора, хранящегося внутри RecursiveCallbackFilterIterator


Класс RecursiveDirectoryIterator

(PHP 5, PHP 7)

Введение

Класс RecursiveDirectoryIterator предоставляет интерфейс для рекурсивного перебора каталогов файловой системы.

Обзор классов

RecursiveDirectoryIterator extends FilesystemIterator implements SeekableIterator , RecursiveIterator {
/* Наследуемые константы */
const integer FilesystemIterator::CURRENT_AS_PATHNAME = 32 ;
const integer FilesystemIterator::CURRENT_AS_FILEINFO = 0 ;
const integer FilesystemIterator::CURRENT_AS_SELF = 16 ;
const integer FilesystemIterator::CURRENT_MODE_MASK = 240 ;
const integer FilesystemIterator::KEY_AS_PATHNAME = 0 ;
const integer FilesystemIterator::KEY_AS_FILENAME = 256 ;
const integer FilesystemIterator::FOLLOW_SYMLINKS = 512 ;
const integer FilesystemIterator::KEY_MODE_MASK = 3840 ;
const integer FilesystemIterator::NEW_CURRENT_AND_KEY = 256 ;
const integer FilesystemIterator::SKIP_DOTS = 4096 ;
const integer FilesystemIterator::UNIX_PATHS = 8192 ;
/* Методы */
public __construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO ] )
public getChildren ( void ) : mixed
public getSubPath ( void ) : string
public getSubPathname ( void ) : string
public hasChildren ([ bool $allow_links = FALSE ] ) : bool
public key ( void ) : string
public next ( void ) : void
public rewind ( void ) : void
/* Наследуемые методы */
public FilesystemIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS ] )
public FilesystemIterator::current ( void ) : mixed
public FilesystemIterator::getFlags ( void ) : int
public FilesystemIterator::key ( void ) : string
public FilesystemIterator::next ( void ) : void
public FilesystemIterator::rewind ( void ) : void
public FilesystemIterator::setFlags ([ int $flags ] ) : void
}

Список изменений

Версия | Описание
5.3.0 | Класс FilesystemIterator был введен в качестве родительского класса. Ранее родителем был DirectoryIterator.
5.3.0 | Осуществляет SeekableIterator.
5.2.11, 5.3.1 | Добавлено RecursiveDirectoryIterator::FOLLOW_SYMLINKS

Содержание

  • RecursiveDirectoryIterator::__construct — Конструктор класса RecursiveDirectoryIterator
  • RecursiveDirectoryIterator::getChildren — Если текущий элемент является директорией, метод возвращает для нее итератор
  • RecursiveDirectoryIterator::getSubPath — Возвращает путь к поддиректории
  • RecursiveDirectoryIterator::getSubPathname — Возвращает путь к поддиректории и имя файла
  • RecursiveDirectoryIterator::hasChildren — Определяет, является ли текущий элемент директорией
  • RecursiveDirectoryIterator::key — Возвращает путь и имя файла текущего элемента
  • RecursiveDirectoryIterator::next — Переход к следующему элементу
  • RecursiveDirectoryIterator::rewind — Переводит итератор на начало директории


Конструктор класса RecursiveDirectoryIterator

  • « RecursiveDirectoryIterator
  • RecursiveDirectoryIterator::getChildren »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Конструктор класса RecursiveDirectoryIterator

RecursiveDirectoryIterator::__construct

(PHP 5 >= 5.1.2, PHP 7)

RecursiveDirectoryIterator::__construct — Конструктор класса RecursiveDirectoryIterator

Описание

public RecursiveDirectoryIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO ] )

Создает новый объект класса RecursiveDirectoryIterator(), используя заданный путь path.

Список параметров

path

Путь к директории, по которой будет осуществляться навигация.

flags

Можно установить несколько флагов от которых будет зависеть поведение некоторых методов. Список возможных флагов можно найти на странице Предопределенных констант класса FilesystemIterator. Флаги можно задать позднее методом FilesystemIterator::setFlags().

Возвращаемые значения

Возвращает новый объект-итератор класса RecursiveDirectoryIterator.

Ошибки

Выбрасывает исключение UnexpectedValueException, если переданный путь path не удалось найти или он не является директорией.

Примеры

Пример #1 Пример использования RecursiveDirectoryIterator

<?php

$directory = '/tmp';

$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));

$it->rewind();
while($it->valid()) {

    if (!$it->isDot()) {
        echo 'Имя файла: ' . $it->getSubPathName() . "\n";
        echo 'Поддиректория: ' . $it->getSubPath() . "\n";
        echo 'Ключ: ' . $it->key() . "\n\n";
    }

    $it->next();
}

?>

Результатом выполнения данного примера будет что-то подобное:

Имя файла: fruit/apple.xml
Поддиректория: fruit
Ключ: /tmp/fruit/apple.xml

Имя файла: stuff.xml
Поддиректория:
Ключ: /tmp/stuff.xml

Имя файла: veggies/carrot.xml
Поддиректория: veggies
Ключ: /tmp/veggies/carrot.xml

Смотрите также

  • FilesystemIterator::__construct() - Создает новый итератор файловой системы
  • RecursiveIteratorIterator::__construct() - Конструктор класса RecursiveIteratorIterator
  • Предопределенные константы класса FilesystemIterator


Если текущий элемент является директорией, метод возвращает для нее итератор

  • « RecursiveDirectoryIterator::__construct
  • RecursiveDirectoryIterator::getSubPath »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Если текущий элемент является директорией, метод возвращает для нее итератор

RecursiveDirectoryIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveDirectoryIterator::getChildren — Если текущий элемент является директорией, метод возвращает для нее итератор

Описание

public RecursiveDirectoryIterator::getChildren ( void ) : mixed
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя файла, информация о файле или ссылка на объект $this. Что именно будет возвращаться зависит от флагов настроек. Смотрите дополнительно Константы FilesystemIterator.


Возвращает путь к поддиректории

  • « RecursiveDirectoryIterator::getChildren
  • RecursiveDirectoryIterator::getSubPathname »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Возвращает путь к поддиректории

RecursiveDirectoryIterator::getSubPath

(PHP 5 >= 5.1.0, PHP 7)

RecursiveDirectoryIterator::getSubPath — Возвращает путь к поддиректории

Описание

public RecursiveDirectoryIterator::getSubPath ( void ) : string

Возвращает путь к поддиректории относительно директории, заданной в конструкторе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Путь к поддиректории.

Примеры

Пример #1 Пример использования getSubPath()

$directory = '/tmp';

      $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));

      foreach ($it as $file) {
          echo 'Имя файла: ' . $it->getSubPathName() . "\n";
          echo 'Поддиректория: ' . $it->getSubPath() . "\n\n";
      }

Результатом выполнения данного примера будет что-то подобное:

     Имя файла: fruit/apple.xml
     Поддиректория: fruit

     Имя файла: stuff.xml
     Поддиректория:

     Имя файла: veggies/carrot.xml
     Поддиректория: veggies

Смотрите также

  • RecursiveDirectoryIterator::getSubPathName() - Возвращает путь к поддиректории и имя файла
  • RecursiveDirectoryIterator::key() - Возвращает путь и имя файла текущего элемента


Возвращает путь к поддиректории и имя файла

  • « RecursiveDirectoryIterator::getSubPath
  • RecursiveDirectoryIterator::hasChildren »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Возвращает путь к поддиректории и имя файла

RecursiveDirectoryIterator::getSubPathname

(PHP 5 >= 5.1.0, PHP 7)

RecursiveDirectoryIterator::getSubPathname — Возвращает путь к поддиректории и имя файла

Описание

public RecursiveDirectoryIterator::getSubPathname ( void ) : string

Возвращает путь к поддиректории и имя файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь к поддиректории и имя файла.

Примеры

Пример #1 Пример использования getSubPathname()

$directory = '/tmp';

      $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));

      foreach ($it as $file) {
          echo 'Имя файла: ' . $it->getSubPathName() . "\n";
          echo 'Поддиректория: ' . $it->getSubPath() . "\n\n";
      }

Результатом выполнения данного примера будет что-то подобное:

     Имя файла: fruit/apple.xml
     Поддиректория: fruit

     Имя файла: stuff.xml
     Поддиректория:

     Имя файла: veggies/carrot.xml
     Поддиректория: veggies

Смотрите также

  • RecursiveDirectoryIterator::getSubPath() - Возвращает путь к поддиректории
  • RecursiveDirectoryIterator::key() - Возвращает путь и имя файла текущего элемента


Определяет, является ли текущий элемент директорией

  • « RecursiveDirectoryIterator::getSubPathname
  • RecursiveDirectoryIterator::key »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Определяет, является ли текущий элемент директорией

RecursiveDirectoryIterator::hasChildren

(PHP 5, PHP 7)

RecursiveDirectoryIterator::hasChildren — Определяет, является ли текущий элемент директорией

Описание

public RecursiveDirectoryIterator::hasChildren ([ bool $allow_links = FALSE ] ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

allow_links

Возвращаемые значения

Возвращает true, если текущий элемент является директорией, причем отличной от '.' и '..'


Возвращает путь и имя файла текущего элемента

  • « RecursiveDirectoryIterator::hasChildren
  • RecursiveDirectoryIterator::next »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Возвращает путь и имя файла текущего элемента

RecursiveDirectoryIterator::key

(PHP 5, PHP 7)

RecursiveDirectoryIterator::key — Возвращает путь и имя файла текущего элемента

Описание

public RecursiveDirectoryIterator::key ( void ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь и имя файла текущего элемента.


Переход к следующему элементу

  • « RecursiveDirectoryIterator::key
  • RecursiveDirectoryIterator::rewind »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Переход к следующему элементу

RecursiveDirectoryIterator::next

(PHP 5, PHP 7)

RecursiveDirectoryIterator::next — Переход к следующему элементу

Описание

public RecursiveDirectoryIterator::next ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Переводит итератор на начало директории

  • « RecursiveDirectoryIterator::next
  • RecursiveFilterIterator »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Переводит итератор на начало директории

RecursiveDirectoryIterator::rewind

(PHP 5, PHP 7)

RecursiveDirectoryIterator::rewind — Переводит итератор на начало директории

Описание

public RecursiveDirectoryIterator::rewind ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс RecursiveFilterIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Этот абстрактный итератор отфильтровывает нежелательные значения для RecursiveIterator. Этот класс следует расширять для реализации пользовательских фильтров. Метод RecursiveFilterIterator::accept() необходимо реализовывать в подклассе.

Обзор классов

abstract RecursiveFilterIterator extends FilterIterator implements OuterIterator , RecursiveIterator {
/* Методы */
public __construct ( RecursiveIterator $iterator )
public getChildren ( void ) : RecursiveFilterIterator
public hasChildren ( void ) : bool
/* Наследуемые методы */
public abstract FilterIterator::accept ( void ) : bool
public FilterIterator::__construct ( Iterator $iterator )
public FilterIterator::current ( void ) : mixed
public FilterIterator::getInnerIterator ( void ) : Iterator
public FilterIterator::key ( void ) : mixed
public FilterIterator::next ( void ) : void
public FilterIterator::rewind ( void ) : void
public FilterIterator::valid ( void ) : bool
}

Содержание

  • RecursiveFilterIterator::__construct — Создает объект RecursiveFilterIterator на основе объекта-итератора RecursiveIterator
  • RecursiveFilterIterator::getChildren — Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator
  • RecursiveFilterIterator::hasChildren — Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы


Создает объект RecursiveFilterIterator на основе объекта-итератора RecursiveIterator

  • « RecursiveFilterIterator
  • RecursiveFilterIterator::getChildren »
  • PHP Manual
  • RecursiveFilterIterator
  • Создает объект RecursiveFilterIterator на основе объекта-итератора RecursiveIterator

RecursiveFilterIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

RecursiveFilterIterator::__construct — Создает объект RecursiveFilterIterator на основе объекта-итератора RecursiveIterator

Описание

public RecursiveFilterIterator::__construct ( RecursiveIterator $iterator )

Создает итератор RecursiveFilterIterator на основе RecursiveIterator.

Список параметров

iterator

Объект-итератор RecursiveIterator, элементы которого требуется отфильтровать.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования RecursiveFilterIterator()

<?php
class TestsOnlyFilter extends RecursiveFilterIterator {
    public function accept() {
        // текущий элемент пройдет фильтр, если имеет дочерние элементы или
        // его значение начинается со строки "test"
        return $this->hasChildren() || (strpos($this->current(), "test") !== FALSE);
    }
}

$array    = array("test1", array("taste2", "test3", "test4"), "test5");
$iterator = new RecursiveArrayIterator($array);
$filter   = new TestsOnlyFilter($iterator);

foreach(new RecursiveIteratorIterator($filter) as $key => $value)
{
    echo $value . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

test1
test3
test4
test5

Пример #2 Еще пример с RecursiveFilterIterator()

<?php
class StartsWithFilter extends RecursiveFilterIterator {

    protected $word;

    public function __construct(RecursiveIterator $rit, $word) {
        $this->word = $word;
        parent::__construct($rit);
    }

    public function accept() {
        return $this->hasChildren() OR strpos($this->current(), $this->word) === 0;
    }

    public function getChildren() {
        return new self($this->getInnerIterator()->getChildren(), $this->word);
    }
}

$array    = array("test1", array("taste2", "test3", "test4"), "test5");
$iterator = new RecursiveArrayIterator($array);
$filter   = new StartsWithFilter($iterator, "test");

foreach(new RecursiveIteratorIterator($filter) as $key => $value)
{
    echo $value . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

test1
test3
test4
test5

Смотрите также

  • RecursiveFilterIterator::getChildren() - Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator
  • RecursiveFilterIterator::hasChildren() - Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы
  • FilterIterator::accept() - Проверяет, является ли текущий элемент итератора допустимым


Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator

  • « RecursiveFilterIterator::__construct
  • RecursiveFilterIterator::hasChildren »
  • PHP Manual
  • RecursiveFilterIterator
  • Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator

RecursiveFilterIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveFilterIterator::getChildren — Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator

Описание

public RecursiveFilterIterator::getChildren ( void ) : RecursiveFilterIterator

Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает RecursiveFilterIterator, содержащий дочерние элементы текущего элемента внутреннего итератора.

Смотрите также

  • RecursiveFilterIterator::hasChildren() - Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы
  • RecursiveIterator::getChildren() - Возвращает итератор для текущего элемента


Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы

  • « RecursiveFilterIterator::getChildren
  • RecursiveIteratorIterator »
  • PHP Manual
  • RecursiveFilterIterator
  • Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы

RecursiveFilterIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveFilterIterator::hasChildren — Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы

Описание

public RecursiveFilterIterator::hasChildren ( void ) : bool

Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если у текущего элемента внутреннего итератора есть дочерние элементы, FALSE в противно случае.

Смотрите также

  • RecursiveFilterIterator::getChildren() - Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator
  • RecursiveIterator::hasChildren() - Определяет, можно ли для текущего элемента создать итератор


Класс RecursiveIteratorIterator

(PHP 5, PHP 7)

Введение

Может быть использован для перебора рекурсивных итераторов.

Обзор классов

RecursiveIteratorIterator implements OuterIterator {
/* Константы */
const integer LEAVES_ONLY = 0 ;
const integer SELF_FIRST = 1 ;
const integer CHILD_FIRST = 2 ;
const integer CATCH_GET_CHILD = 16 ;
/* Методы */
public beginChildren ( void ) : void
public beginIteration ( void ) : void
public callGetChildren ( void ) : RecursiveIterator
public callHasChildren ( void ) : bool
public __construct ( Traversable $iterator [, int $mode = RecursiveIteratorIterator::LEAVES_ONLY [, int $flags = 0 ]] )
public current ( void ) : mixed
public endChildren ( void ) : void
public endIteration ( void ) : void
public getDepth ( void ) : int
public getInnerIterator ( void ) : iterator
public getMaxDepth ( void ) : mixed
public getSubIterator ([ int $level ] ) : RecursiveIterator
public key ( void ) : mixed
public next ( void ) : void
public nextElement ( void ) : void
public rewind ( void ) : void
public setMaxDepth ([ int $max_depth = -1 ] ) : void
public valid ( void ) : bool
/* Наследуемые методы */
public OuterIterator::getInnerIterator ( void ) : Iterator
}

Предопределенные константы

RecursiveIteratorIterator::LEAVES_ONLY

RecursiveIteratorIterator::SELF_FIRST

RecursiveIteratorIterator::CHILD_FIRST

RecursiveIteratorIterator::CATCH_GET_CHILD

Содержание

  • RecursiveIteratorIterator::beginChildren — Переход к первому дочернему элементу
  • RecursiveIteratorIterator::beginIteration — Начало итерации
  • RecursiveIteratorIterator::callGetChildren — Получение дочерних элементов
  • RecursiveIteratorIterator::callHasChildren — Проверка, есть ли у элемента дочерние элементы
  • RecursiveIteratorIterator::__construct — Конструктор класса RecursiveIteratorIterator
  • RecursiveIteratorIterator::current — Получает значение текущего элемента
  • RecursiveIteratorIterator::endChildren — Окончание дочерних элементов
  • RecursiveIteratorIterator::endIteration — Окончание итерации
  • RecursiveIteratorIterator::getDepth — Определяет текущую глубину рекурсии
  • RecursiveIteratorIterator::getInnerIterator — Получение ссылки на внутренний итератор
  • RecursiveIteratorIterator::getMaxDepth — Получение максимальной глубины рекурсии
  • RecursiveIteratorIterator::getSubIterator — Получение активного вложенного итератора
  • RecursiveIteratorIterator::key — Получение ключа текущего элемента
  • RecursiveIteratorIterator::next — Перемещение итератора к следующему элементу
  • RecursiveIteratorIterator::nextElement — Следующий элемент
  • RecursiveIteratorIterator::rewind — Перемещает итератор на первый элемент самого верхнего уровня вложенности внутреннего итератора
  • RecursiveIteratorIterator::setMaxDepth — Установка максимальной глубины вложенности
  • RecursiveIteratorIterator::valid — Проверка допустимости текущей позиции


Переход к первому дочернему элементу

  • « RecursiveIteratorIterator
  • RecursiveIteratorIterator::beginIteration »
  • PHP Manual
  • RecursiveIteratorIterator
  • Переход к первому дочернему элементу

RecursiveIteratorIterator::beginChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::beginChildren — Переход к первому дочернему элементу

Описание

public RecursiveIteratorIterator::beginChildren ( void ) : void

Метод вызывается после выполнения RecursiveIteratorIterator::getChildren(), а результат его работы аналогичен вызову RecursiveIteratorIterator::rewind().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Начало итерации

  • « RecursiveIteratorIterator::beginChildren
  • RecursiveIteratorIterator::callGetChildren »
  • PHP Manual
  • RecursiveIteratorIterator
  • Начало итерации

RecursiveIteratorIterator::beginIteration

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::beginIteration — Начало итерации

Описание

public RecursiveIteratorIterator::beginIteration ( void ) : void

Вызывается, чтобы начать итерацию (после первого вызова RecursiveIteratorIterator::rewind()).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Получение дочерних элементов

  • « RecursiveIteratorIterator::beginIteration
  • RecursiveIteratorIterator::callHasChildren »
  • PHP Manual
  • RecursiveIteratorIterator
  • Получение дочерних элементов

RecursiveIteratorIterator::callGetChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::callGetChildren — Получение дочерних элементов

Описание

public RecursiveIteratorIterator::callGetChildren ( void ) : RecursiveIterator

Получает дочерние элементы текущего элемента итератора.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса RecursiveIterator().


Проверка, есть ли у элемента дочерние элементы

  • « RecursiveIteratorIterator::callGetChildren
  • RecursiveIteratorIterator::__construct »
  • PHP Manual
  • RecursiveIteratorIterator
  • Проверка, есть ли у элемента дочерние элементы

RecursiveIteratorIterator::callHasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::callHasChildren — Проверка, есть ли у элемента дочерние элементы

Описание

public RecursiveIteratorIterator::callHasChildren ( void ) : bool

Вызывается для каждого элемента, чтобы проверить, есть ли у него дочерние элементы.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если элемент имеет дочерние элементы, FALSE в противном случае.


Конструктор класса RecursiveIteratorIterator

  • « RecursiveIteratorIterator::callHasChildren
  • RecursiveIteratorIterator::current »
  • PHP Manual
  • RecursiveIteratorIterator
  • Конструктор класса RecursiveIteratorIterator

RecursiveIteratorIterator::__construct

(PHP 5 >= 5.1.3, PHP 7)

RecursiveIteratorIterator::__construct — Конструктор класса RecursiveIteratorIterator

Описание

public RecursiveIteratorIterator::__construct ( Traversable $iterator [, int $mode = RecursiveIteratorIterator::LEAVES_ONLY [, int $flags = 0 ]] )

Создает новый объект класса RecursiveIteratorIterator на основе объекта RecursiveIterator.

Список параметров

iterator

Объект-итератор, на основе которого требуется построить данный экземпляр. Это может быть объект класса RecursiveIterator или класса IteratorAggregate.

mode

Необязательный параметр. Задание режима работы конструктора. Возможные значения:

  • RecursiveIteratorIterator::LEAVES_ONLY - По умолчанию. Итерация будет осуществляться только по листам дерева элементов.
  • RecursiveIteratorIterator::SELF_FIRST - Итерация будет осуществляться по всему дереву элементов, причем первыми будут идти родительские элементы.
  • RecursiveIteratorIterator::CHILD_FIRST - Итерация будет осуществляться по всему дереву элементов, причем первыми будут идти дочерние элементы.

flags

Необязательный настроечный флаг. Возможное значение RecursiveIteratorIterator::CATCH_GET_CHILD дает предписание объекту не принимать во внимание исключения, которые вызывает метод RecursiveIteratorIterator::getChildren().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Итерация по дереву элементов с помощью RecursiveIteratorIterator

<?php
$array = array(
    array(
        array(
            array(
                'leaf-0-0-0-0',
                'leaf-0-0-0-1'
            ),
            'leaf-0-0-0'
        ),
        array(
            array(
                'leaf-0-1-0-0',
                'leaf-0-1-0-1'
            ),
            'leaf-0-1-0'
        ),
        'leaf-0-0'
    )
);

$iterator = new RecursiveIteratorIterator(
    new RecursiveArrayIterator($array),
    $mode
);
foreach ($iterator as $key => $leaf) {
    echo "$key => $leaf", PHP_EOL;
}
?>

Вывод примера в режиме $mode = RecursiveIteratorIterator::LEAVES_ONLY

0 => leaf-0-0-0-0
1 => leaf-0-0-0-1
0 => leaf-0-0-0
0 => leaf-0-1-0-0
1 => leaf-0-1-0-1
0 => leaf-0-1-0
0 => leaf-0-0

Вывод примера в режиме $mode = RecursiveIteratorIterator::SELF_FIRST

0 => Array
0 => Array
0 => Array
0 => leaf-0-0-0-0
1 => leaf-0-0-0-1
1 => leaf-0-0-0
1 => Array
0 => Array
0 => leaf-0-1-0-0
1 => leaf-0-1-0-1
1 => leaf-0-1-0
2 => leaf-0-0

Вывод примера в режиме $mode = RecursiveIteratorIterator::CHILD_FIRST

0 => leaf-0-0-0-0
1 => leaf-0-0-0-1
0 => Array
1 => leaf-0-0-0
0 => Array
0 => leaf-0-1-0-0
1 => leaf-0-1-0-1
0 => Array
1 => leaf-0-1-0
1 => Array
2 => leaf-0-0
0 => Array


Получает значение текущего элемента

  • « RecursiveIteratorIterator::__construct
  • RecursiveIteratorIterator::endChildren »
  • PHP Manual
  • RecursiveIteratorIterator
  • Получает значение текущего элемента

RecursiveIteratorIterator::current

(PHP 5, PHP 7)

RecursiveIteratorIterator::current — Получает значение текущего элемента

Описание

public RecursiveIteratorIterator::current ( void ) : mixed
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение текущего элемента.


Окончание дочерних элементов

  • « RecursiveIteratorIterator::current
  • RecursiveIteratorIterator::endIteration »
  • PHP Manual
  • RecursiveIteratorIterator
  • Окончание дочерних элементов

RecursiveIteratorIterator::endChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::endChildren — Окончание дочерних элементов

Описание

public RecursiveIteratorIterator::endChildren ( void ) : void

Вызывается, когда закончились элементы, находящиеся на одном уровне родства.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Окончание итерации

  • « RecursiveIteratorIterator::endChildren
  • RecursiveIteratorIterator::getDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • Окончание итерации

RecursiveIteratorIterator::endIteration

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::endIteration — Окончание итерации

Описание

public RecursiveIteratorIterator::endIteration ( void ) : void

Вызывается по завершении итерации (когда метод RecursiveIteratorIterator::valid() впервые вернет FALSE).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Определяет текущую глубину рекурсии

  • « RecursiveIteratorIterator::endIteration
  • RecursiveIteratorIterator::getInnerIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Определяет текущую глубину рекурсии

RecursiveIteratorIterator::getDepth

(PHP 5, PHP 7)

RecursiveIteratorIterator::getDepth — Определяет текущую глубину рекурсии

Описание

public RecursiveIteratorIterator::getDepth ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая глубина рекурсии навигации.


Получение ссылки на внутренний итератор

  • « RecursiveIteratorIterator::getDepth
  • RecursiveIteratorIterator::getMaxDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • Получение ссылки на внутренний итератор

RecursiveIteratorIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::getInnerIterator — Получение ссылки на внутренний итератор

Описание

public RecursiveIteratorIterator::getInnerIterator ( void ) : iterator

Получает ссылку на активный в данный момент внутренний итератор.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ссылка на внутренний объект-итератор.


Получение максимальной глубины рекурсии

  • « RecursiveIteratorIterator::getInnerIterator
  • RecursiveIteratorIterator::getSubIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Получение максимальной глубины рекурсии

RecursiveIteratorIterator::getMaxDepth

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::getMaxDepth — Получение максимальной глубины рекурсии

Описание

public RecursiveIteratorIterator::getMaxDepth ( void ) : mixed

Определяет максимальную допустимую глубину вложенности элементов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Максимальная глубина рекурсии или FALSE, если глубина не ограничена.

Смотрите также

  • RecursiveIteratorIterator::setMaxDepth() - Установка максимальной глубины вложенности


Получение активного вложенного итератора

  • « RecursiveIteratorIterator::getMaxDepth
  • RecursiveIteratorIterator::key »
  • PHP Manual
  • RecursiveIteratorIterator
  • Получение активного вложенного итератора

RecursiveIteratorIterator::getSubIterator

(PHP 5, PHP 7)

RecursiveIteratorIterator::getSubIterator — Получение активного вложенного итератора

Описание

public RecursiveIteratorIterator::getSubIterator ([ int $level ] ) : RecursiveIterator
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

level

Возвращаемые значения

Активный вложенный итератор.


Получение ключа текущего элемента

  • « RecursiveIteratorIterator::getSubIterator
  • RecursiveIteratorIterator::next »
  • PHP Manual
  • RecursiveIteratorIterator
  • Получение ключа текущего элемента

RecursiveIteratorIterator::key

(PHP 5, PHP 7)

RecursiveIteratorIterator::key — Получение ключа текущего элемента

Описание

public RecursiveIteratorIterator::key ( void ) : mixed
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий ключ.


Перемещение итератора к следующему элементу

  • « RecursiveIteratorIterator::key
  • RecursiveIteratorIterator::nextElement »
  • PHP Manual
  • RecursiveIteratorIterator
  • Перемещение итератора к следующему элементу

RecursiveIteratorIterator::next

(PHP 5, PHP 7)

RecursiveIteratorIterator::next — Перемещение итератора к следующему элементу

Описание

public RecursiveIteratorIterator::next ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Следующий элемент

  • « RecursiveIteratorIterator::next
  • RecursiveIteratorIterator::rewind »
  • PHP Manual
  • RecursiveIteratorIterator
  • Следующий элемент

RecursiveIteratorIterator::nextElement

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::nextElement — Следующий элемент

Описание

public RecursiveIteratorIterator::nextElement ( void ) : void

Вызывается, когда следующий элемент становится доступен.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Перемещает итератор на первый элемент самого верхнего уровня вложенности внутреннего итератора

  • « RecursiveIteratorIterator::nextElement
  • RecursiveIteratorIterator::setMaxDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • Перемещает итератор на первый элемент самого верхнего уровня вложенности внутреннего итератора

RecursiveIteratorIterator::rewind

(PHP 5, PHP 7)

RecursiveIteratorIterator::rewind — Перемещает итератор на первый элемент самого верхнего уровня вложенности внутреннего итератора

Описание

public RecursiveIteratorIterator::rewind ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Установка максимальной глубины вложенности

  • « RecursiveIteratorIterator::rewind
  • RecursiveIteratorIterator::valid »
  • PHP Manual
  • RecursiveIteratorIterator
  • Установка максимальной глубины вложенности

RecursiveIteratorIterator::setMaxDepth

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::setMaxDepth — Установка максимальной глубины вложенности

Описание

public RecursiveIteratorIterator::setMaxDepth ([ int $max_depth = -1 ] ) : void

Задает максимальную глубину вложенности элементов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

max_depth

Максимально допустимая глубина вложенности. -1 снимает ограничение на глубину рекурсии.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение Exception, если аргумент max_depth меньше -1.


Проверка допустимости текущей позиции

  • « RecursiveIteratorIterator::setMaxDepth
  • RecursiveRegexIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Проверка допустимости текущей позиции

RecursiveIteratorIterator::valid

(PHP 5, PHP 7)

RecursiveIteratorIterator::valid — Проверка допустимости текущей позиции

Описание

public RecursiveIteratorIterator::valid ( void ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если текущая позиция допустима, FALSE в противном случае.


Класс RecursiveRegexIterator

(PHP 5 >= 5.2.0, PHP 7)

Введение

Этот рекурсивный итератор может фильтровать другой рекурсивный итератор с помощью регулярных выражений.

Обзор классов

RecursiveRegexIterator extends RegexIterator implements RecursiveIterator {
/* Наследуемые константы */
const integer MATCH = 0 ;
const integer GET_MATCH = 1 ;
const integer ALL_MATCHES = 2 ;
const integer SPLIT = 3 ;
const integer REPLACE = 4 ;
const integer USE_KEY = 1 ;
/* Методы */
public __construct ( RecursiveIterator $iterator , string $regex [, int $mode = self::MATCH [, int $flags = 0 [, int $preg_flags = 0 ]]] )
public getChildren ( void ) : RecursiveRegexIterator
public hasChildren ( void ) : bool
/* Наследуемые методы */
public RecursiveIterator::getChildren ( void ) : RecursiveIterator
public RecursiveIterator::hasChildren ( void ) : bool
public RegexIterator::accept ( void ) : bool
public RegexIterator::getFlags ( void ) : int
public RegexIterator::getMode ( void ) : int
public RegexIterator::getPregFlags ( void ) : int
public RegexIterator::getRegex ( void ) : string
public RegexIterator::setFlags ( int $flags ) : void
public RegexIterator::setMode ( int $mode ) : void
public RegexIterator::setPregFlags ( int $preg_flags ) : void
}

Содержание

  • RecursiveRegexIterator::__construct — Конструктор класса RecursiveRegexIterator
  • RecursiveRegexIterator::getChildren — Возвращает итератор для текущего элемента
  • RecursiveRegexIterator::hasChildren — Определяет, возможна ли навигация по содержимому текущего элемента


Конструктор класса RecursiveRegexIterator

  • « RecursiveRegexIterator
  • RecursiveRegexIterator::getChildren »
  • PHP Manual
  • RecursiveRegexIterator
  • Конструктор класса RecursiveRegexIterator

RecursiveRegexIterator::__construct

(PHP 5 >= 5.2.0, PHP 7)

RecursiveRegexIterator::__construct — Конструктор класса RecursiveRegexIterator

Описание

public RecursiveRegexIterator::__construct ( RecursiveIterator $iterator , string $regex [, int $mode = self::MATCH [, int $flags = 0 [, int $preg_flags = 0 ]]] )

Создает новый объект-итератор регулярного выражения.

Список параметров

iterator

Рекурсивный итератор к которому требуется применить фильтр на основе регулярного выражения.

regex

Регулярное выражение.

mode

Режим работы, список доступных режимов приведен в описании метода RegexIterator::setMode().

flags

Специальные флаги. Список доступных флагов приведен в описании метода RegexIterator::setFlags().

preg_flags

Флаги регулярного выражения. Список флагов зависит от режима работы:

RegexIterator preg_flags
режим работы | доступные флаги
RecursiveRegexIterator::ALL_MATCHES | Смотрите preg_match_all().
RecursiveRegexIterator::GET_MATCH | Смотрите preg_match().
RecursiveRegexIterator::MATCH | Смотрите preg_match().
RecursiveRegexIterator::REPLACE | нет
RecursiveRegexIterator::SPLIT | Смотрите preg_split().

Примеры

Пример #1 Пример использования RecursiveRegexIterator::__construct()

Создает новый объект-итератор RegexIterator, который выбирает все строки, которые начинаются со слова 'test'.

<?php
$rArrayIterator = new RecursiveArrayIterator(array('test1', array('tet3', 'test4', 'test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator, '/^test/',
    RecursiveRegexIterator::ALL_MATCHES);

foreach ($rRegexIterator as $key1 => $value1) {

    if ($rRegexIterator->hasChildren()) {

        // выведем все дочерние элементы
        echo "Дочерние элементы: ";
        foreach ($rRegexIterator->getChildren() as $key => $value) {
            echo $value . " ";
        }
        echo "\n";
    } else {
        echo "Нет дочерних элементов\n";
    }

}
?>

Результатом выполнения данного примера будет что-то подобное:

Нет дочерних элементов
Дочерние элементы: test4 test5

Смотрите также

  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • preg_match_all() - Выполняет глобальный поиск шаблона в строке
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • preg_split() - Разбивает строку по регулярному выражению


Возвращает итератор для текущего элемента

  • « RecursiveRegexIterator::__construct
  • RecursiveRegexIterator::hasChildren »
  • PHP Manual
  • RecursiveRegexIterator
  • Возвращает итератор для текущего элемента

RecursiveRegexIterator::getChildren

(PHP 5 >= 5.2.0, PHP 7)

RecursiveRegexIterator::getChildren — Возвращает итератор для текущего элемента

Описание

public RecursiveRegexIterator::getChildren ( void ) : RecursiveRegexIterator

Возвращает итератор для текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Итератор для текущего элемента, если возможна навигация по содержимому внутреннего итератора.

Ошибки

Если внутренний итератор указывает на элемент, который не содержит дочерних элементов, будет выброшено исключение InvalidArgumentException.

Примеры

Пример #1 Пример использования RecursiveRegexIterator::getChildren()

<?php
$rArrayIterator = new RecursiveArrayIterator(array('test1', array('tet3', 'test4', 'test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator, '/^test/',
    RecursiveRegexIterator::ALL_MATCHES);

foreach ($rRegexIterator as $key1 => $value1) {

    if ($rRegexIterator->hasChildren()) {

        // выведем все дочерние элементы
        echo "Дочерние элементы: ";
        foreach ($rRegexIterator->getChildren() as $key => $value) {
            echo $value . " ";
        }
        echo "\n";
    } else {
        echo "Нет дочерних элементов\n";
    }

}
?>

Результат выполнения данного примера:

Нет дочерних элементов
Дочерние элементы: test4 test5

Смотрите также

  • RecursiveRegexIterator::hasChildren() - Определяет, возможна ли навигация по содержимому текущего элемента


Определяет, возможна ли навигация по содержимому текущего элемента

  • « RecursiveRegexIterator::getChildren
  • RecursiveTreeIterator »
  • PHP Manual
  • RecursiveRegexIterator
  • Определяет, возможна ли навигация по содержимому текущего элемента

RecursiveRegexIterator::hasChildren

(PHP 5 >= 5.2.0, PHP 7)

RecursiveRegexIterator::hasChildren — Определяет, возможна ли навигация по содержимому текущего элемента

Описание

public RecursiveRegexIterator::hasChildren ( void ) : bool

Определяет, возможна ли навигация по содержимому текущего элемента. В случае, если текущий элемент имеет дочерние элементы, итератор для них можно получить методом RecursiveRegexIterator::getChildren().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если возможна навигация по содержимому текущего элемента, FALSE в противном случае.

Примеры

Пример #1 Пример использования RecursiveRegexIterator::hasChildren()

<?php
$rArrayIterator = new RecursiveArrayIterator(array('test1', array('tet3', 'test4', 'test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator, '/^test/',
    RecursiveRegexIterator::ALL_MATCHES);

foreach ($rRegexIterator as $value) {
    var_dump($rRegexIterator->hasChildren());
}
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • RecursiveRegexIterator::getChildren() - Возвращает итератор для текущего элемента


Класс RecursiveTreeIterator

(PHP 5 >= 5.3.0, PHP 7)

Введение

Позволяет производить итерации по RecursiveIterator для генерации графического дерева в ASCII.

Обзор классов

RecursiveTreeIterator extends RecursiveIteratorIterator implements OuterIterator {
/* Наследуемые константы */
const integer RecursiveIteratorIterator::LEAVES_ONLY = 0 ;
const integer RecursiveIteratorIterator::SELF_FIRST = 1 ;
const integer RecursiveIteratorIterator::CHILD_FIRST = 2 ;
const integer RecursiveIteratorIterator::CATCH_GET_CHILD = 16 ;
/* Константы */
const integer BYPASS_CURRENT = 4 ;
const integer BYPASS_KEY = 8 ;
const integer PREFIX_LEFT = 0 ;
const integer PREFIX_MID_HAS_NEXT = 1 ;
const integer PREFIX_MID_LAST = 2 ;
const integer PREFIX_END_HAS_NEXT = 3 ;
const integer PREFIX_END_LAST = 4 ;
const integer PREFIX_RIGHT = 5 ;
/* Методы */
public beginChildren ( void ) : void
public beginIteration ( void ) : RecursiveIterator
public callGetChildren ( void ) : RecursiveIterator
public callHasChildren ( void ) : bool
public __construct ( RecursiveIterator|IteratorAggregate $it [, int $flags = RecursiveTreeIterator::BYPASS_KEY [, int $cit_flags = CachingIterator::CATCH_GET_CHILD [, int $mode = RecursiveIteratorIterator::SELF_FIRST ]]] )
public current ( void ) : string
public endChildren ( void ) : void
public endIteration ( void ) : void
public getEntry ( void ) : string
public getPostfix ( void ) : string
public getPrefix ( void ) : string
public key ( void ) : string
public next ( void ) : void
public nextElement ( void ) : void
public rewind ( void ) : void
public setPostfix ( string $postfix ) : void
public setPrefixPart ( int $part , string $value ) : void
public valid ( void ) : bool
/* Наследуемые методы */
public RecursiveIteratorIterator::beginChildren ( void ) : void
public RecursiveIteratorIterator::beginIteration ( void ) : void
public RecursiveIteratorIterator::callGetChildren ( void ) : RecursiveIterator
public RecursiveIteratorIterator::callHasChildren ( void ) : bool
public RecursiveIteratorIterator::__construct ( Traversable $iterator [, int $mode = RecursiveIteratorIterator::LEAVES_ONLY [, int $flags = 0 ]] )
public RecursiveIteratorIterator::current ( void ) : mixed
public RecursiveIteratorIterator::endChildren ( void ) : void
public RecursiveIteratorIterator::endIteration ( void ) : void
public RecursiveIteratorIterator::getDepth ( void ) : int
public RecursiveIteratorIterator::getInnerIterator ( void ) : iterator
public RecursiveIteratorIterator::getMaxDepth ( void ) : mixed
public RecursiveIteratorIterator::getSubIterator ([ int $level ] ) : RecursiveIterator
public RecursiveIteratorIterator::key ( void ) : mixed
public RecursiveIteratorIterator::next ( void ) : void
public RecursiveIteratorIterator::nextElement ( void ) : void
public RecursiveIteratorIterator::rewind ( void ) : void
public RecursiveIteratorIterator::setMaxDepth ([ int $max_depth = -1 ] ) : void
public RecursiveIteratorIterator::valid ( void ) : bool
}

Предопределенные константы

RecursiveTreeIterator::BYPASS_CURRENT

RecursiveTreeIterator::BYPASS_KEY

RecursiveTreeIterator::PREFIX_LEFT

RecursiveTreeIterator::PREFIX_MID_HAS_NEXT

RecursiveTreeIterator::PREFIX_MID_LAST

RecursiveTreeIterator::PREFIX_END_HAS_NEXT

RecursiveTreeIterator::PREFIX_END_LAST

RecursiveTreeIterator::PREFIX_RIGHT

Содержание

  • RecursiveTreeIterator::beginChildren — Начало навигации по потомкам элемента
  • RecursiveTreeIterator::beginIteration — Начало навигации
  • RecursiveTreeIterator::callGetChildren — Получение дочерних элементов
  • RecursiveTreeIterator::callHasChildren — Проверка, есть ли у текущего элемента потомки
  • RecursiveTreeIterator::__construct — Конструктор класса RecursiveTreeIterator
  • RecursiveTreeIterator::current — Получение текущего элемента
  • RecursiveTreeIterator::endChildren — Завершение навигации по потомкам элемента
  • RecursiveTreeIterator::endIteration — Завершение навигации
  • RecursiveTreeIterator::getEntry — Получение поддерева, корнем которого является текущий элемент
  • RecursiveTreeIterator::getPostfix — Получение суффикса
  • RecursiveTreeIterator::getPrefix — Получение префикса
  • RecursiveTreeIterator::key — Получение ключа текущего элемента
  • RecursiveTreeIterator::next — Переход к следующему элементу
  • RecursiveTreeIterator::nextElement — Следующий элемент
  • RecursiveTreeIterator::rewind — Перевод итератора в начало
  • RecursiveTreeIterator::setPostfix — Установка постфикса
  • RecursiveTreeIterator::setPrefixPart — Задание части префикса
  • RecursiveTreeIterator::valid — Проверка допустимости элемента


Начало навигации по потомкам элемента

  • « RecursiveTreeIterator
  • RecursiveTreeIterator::beginIteration »
  • PHP Manual
  • RecursiveTreeIterator
  • Начало навигации по потомкам элемента

RecursiveTreeIterator::beginChildren

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::beginChildren — Начало навигации по потомкам элемента

Описание

public RecursiveTreeIterator::beginChildren ( void ) : void

Вызывается, когда обход дерева спускается на один уровень вниз.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Начало навигации

  • « RecursiveTreeIterator::beginChildren
  • RecursiveTreeIterator::callGetChildren »
  • PHP Manual
  • RecursiveTreeIterator
  • Начало навигации

RecursiveTreeIterator::beginIteration

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::beginIteration — Начало навигации

Описание

public RecursiveTreeIterator::beginIteration ( void ) : RecursiveIterator

Вызывается, когда начинается навигация по элементам (после первого вызова метода RecursiveTreeIterator::rewind()).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект RecursiveIterator.


Получение дочерних элементов

  • « RecursiveTreeIterator::beginIteration
  • RecursiveTreeIterator::callHasChildren »
  • PHP Manual
  • RecursiveTreeIterator
  • Получение дочерних элементов

RecursiveTreeIterator::callGetChildren

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::callGetChildren — Получение дочерних элементов

Описание

public RecursiveTreeIterator::callGetChildren ( void ) : RecursiveIterator

Возвращает итератор для элементов-потомков текущего элемента.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект RecursiveIterator.


Проверка, есть ли у текущего элемента потомки

  • « RecursiveTreeIterator::callGetChildren
  • RecursiveTreeIterator::__construct »
  • PHP Manual
  • RecursiveTreeIterator
  • Проверка, есть ли у текущего элемента потомки

RecursiveTreeIterator::callHasChildren

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::callHasChildren — Проверка, есть ли у текущего элемента потомки

Описание

public RecursiveTreeIterator::callHasChildren ( void ) : bool

Проверяет, есть ли у текущего элемента потомки.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если у текущего элемента есть дочерние, FALSE в противном случае.


Конструктор класса RecursiveTreeIterator

  • « RecursiveTreeIterator::callHasChildren
  • RecursiveTreeIterator::current »
  • PHP Manual
  • RecursiveTreeIterator
  • Конструктор класса RecursiveTreeIterator

RecursiveTreeIterator::__construct

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::__construct — Конструктор класса RecursiveTreeIterator

Описание

 public RecursiveTreeIterator::__construct
  ( RecursiveIterator|IteratorAggregate $it
 [, int $flags = RecursiveTreeIterator::BYPASS_KEY
 [, int $cit_flags = CachingIterator::CATCH_GET_CHILD
 [, int $mode = RecursiveIteratorIterator::SELF_FIRST
]]] )

Создает новый объект класса RecursiveTreeIterator на основе рекурсивного объекта-итератора.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

it

Объект класса RecursiveIterator или класса IteratorAggregate.

flags

Флаги влияют на поведение некоторых методов класса. Список возможных флагов можно найти на странице Предопределенных констант RecursiveTreeIterator.

caching_it_flags

Флаги для настройки внутреннего объекта RecursiveCachingIterator.

mode

Флаги для настройки внутреннего объекта RecursiveIteratorIterator.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Получение текущего элемента

  • « RecursiveTreeIterator::__construct
  • RecursiveTreeIterator::endChildren »
  • PHP Manual
  • RecursiveTreeIterator
  • Получение текущего элемента

RecursiveTreeIterator::current

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::current — Получение текущего элемента

Описание

public RecursiveTreeIterator::current ( void ) : string

Возвращает текущий элемент с префиксом и суффиксом.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий элемент с префиксом и суфиксом.


Завершение навигации по потомкам элемента

  • « RecursiveTreeIterator::current
  • RecursiveTreeIterator::endIteration »
  • PHP Manual
  • RecursiveTreeIterator
  • Завершение навигации по потомкам элемента

RecursiveTreeIterator::endChildren

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::endChildren — Завершение навигации по потомкам элемента

Описание

public RecursiveTreeIterator::endChildren ( void ) : void

Вызывается, когда дочерние элементы одного уровня закончились.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Завершение навигации

  • « RecursiveTreeIterator::endChildren
  • RecursiveTreeIterator::getEntry »
  • PHP Manual
  • RecursiveTreeIterator
  • Завершение навигации

RecursiveTreeIterator::endIteration

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::endIteration — Завершение навигации

Описание

public RecursiveTreeIterator::endIteration ( void ) : void

Вызывается по завершении навигации (когда метод RecursiveTreeIterator::valid() впервые вернет FALSE).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Получение поддерева, корнем которого является текущий элемент

  • « RecursiveTreeIterator::endIteration
  • RecursiveTreeIterator::getPostfix »
  • PHP Manual
  • RecursiveTreeIterator
  • Получение поддерева, корнем которого является текущий элемент

RecursiveTreeIterator::getEntry

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::getEntry — Получение поддерева, корнем которого является текущий элемент

Описание

public RecursiveTreeIterator::getEntry ( void ) : string

Получает поддерево, корнем которого является текущий элемент.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает поддерево, корнем которого является текущий элемент.


Получение суффикса

  • « RecursiveTreeIterator::getEntry
  • RecursiveTreeIterator::getPrefix »
  • PHP Manual
  • RecursiveTreeIterator
  • Получение суффикса

RecursiveTreeIterator::getPostfix

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::getPostfix — Получение суффикса

Описание

public RecursiveTreeIterator::getPostfix ( void ) : string

Получает строку для помещения после текущего элемента.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку для помещения после текущего элемента.


Получение префикса

  • « RecursiveTreeIterator::getPostfix
  • RecursiveTreeIterator::key »
  • PHP Manual
  • RecursiveTreeIterator
  • Получение префикса

RecursiveTreeIterator::getPrefix

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::getPrefix — Получение префикса

Описание

public RecursiveTreeIterator::getPrefix ( void ) : string

Получает строку для помещения перед текущим элементом.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку для помещения перед текущим элементом.


Получение ключа текущего элемента

  • « RecursiveTreeIterator::getPrefix
  • RecursiveTreeIterator::next »
  • PHP Manual
  • RecursiveTreeIterator
  • Получение ключа текущего элемента

RecursiveTreeIterator::key

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::key — Получение ключа текущего элемента

Описание

public RecursiveTreeIterator::key ( void ) : string

Получает ключ текущего элемента с префиксом и суффиксом.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ключ текущего элемента с префиксом и суффиксом.


Переход к следующему элементу

  • « RecursiveTreeIterator::key
  • RecursiveTreeIterator::nextElement »
  • PHP Manual
  • RecursiveTreeIterator
  • Переход к следующему элементу

RecursiveTreeIterator::next

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::next — Переход к следующему элементу

Описание

public RecursiveTreeIterator::next ( void ) : void

Переход к следующему элементу.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Следующий элемент

  • « RecursiveTreeIterator::next
  • RecursiveTreeIterator::rewind »
  • PHP Manual
  • RecursiveTreeIterator
  • Следующий элемент

RecursiveTreeIterator::nextElement

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::nextElement — Следующий элемент

Описание

public RecursiveTreeIterator::nextElement ( void ) : void

Вызывается, когда следующий элемент становится доступным.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Перевод итератора в начало

  • « RecursiveTreeIterator::nextElement
  • RecursiveTreeIterator::setPostfix »
  • PHP Manual
  • RecursiveTreeIterator
  • Перевод итератора в начало

RecursiveTreeIterator::rewind

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::rewind — Перевод итератора в начало

Описание

public RecursiveTreeIterator::rewind ( void ) : void

Переводит итератор на первый элемент верхнего уровня элементов внутреннего итератора.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Установка постфикса

  • « RecursiveTreeIterator::rewind
  • RecursiveTreeIterator::setPrefixPart »
  • PHP Manual
  • RecursiveTreeIterator
  • Установка постфикса

RecursiveTreeIterator::setPostfix

(PHP 5 >= 5.5.3, PHP 7)

RecursiveTreeIterator::setPostfix — Установка постфикса

Описание

public RecursiveTreeIterator::setPostfix ( string $postfix ) : void

Устанавливает постфикс, используемый в RecursiveTreeIterator::getPostfix().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

postfix

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Задание части префикса

  • « RecursiveTreeIterator::setPostfix
  • RecursiveTreeIterator::valid »
  • PHP Manual
  • RecursiveTreeIterator
  • Задание части префикса

RecursiveTreeIterator::setPrefixPart

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::setPrefixPart — Задание части префикса

Описание

public RecursiveTreeIterator::setPrefixPart ( int $part , string $value ) : void

Устанавливает часть префикса, которая используется для построения графа.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

part

Одна из констант RecursiveTreeIterator::PREFIX_*.

value

Значение, которое требуется присвоить части префикса part.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Проверка допустимости элемента

  • « RecursiveTreeIterator::setPrefixPart
  • RegexIterator »
  • PHP Manual
  • RecursiveTreeIterator
  • Проверка допустимости элемента

RecursiveTreeIterator::valid

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::valid — Проверка допустимости элемента

Описание

public RecursiveTreeIterator::valid ( void ) : bool

Проверяет, имеет ли текущий элемент допустимое значение.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если текущий элемент валиден, FALSE в противном случае.


Класс RegexIterator

(PHP 5 >= 5.2.0, PHP 7)

Введение

Этот итератор может быть использован для фильтрации другого итератора на основе регулярных выражений.

Обзор классов

RegexIterator extends FilterIterator {
/* Константы */
const integer MATCH = 0 ;
const integer GET_MATCH = 1 ;
const integer ALL_MATCHES = 2 ;
const integer SPLIT = 3 ;
const integer REPLACE = 4 ;
const integer USE_KEY = 1 ;
/* Методы */
public __construct ( Iterator $iterator , string $regex [, int $mode = self::MATCH [, int $flags = 0 [, int $preg_flags = 0 ]]] )
public accept ( void ) : bool
public getFlags ( void ) : int
public getMode ( void ) : int
public getPregFlags ( void ) : int
public getRegex ( void ) : string
public setFlags ( int $flags ) : void
public setMode ( int $mode ) : void
public setPregFlags ( int $preg_flags ) : void
/* Наследуемые методы */
public abstract FilterIterator::accept ( void ) : bool
public FilterIterator::__construct ( Iterator $iterator )
public FilterIterator::current ( void ) : mixed
public FilterIterator::getInnerIterator ( void ) : Iterator
public FilterIterator::key ( void ) : mixed
public FilterIterator::next ( void ) : void
public FilterIterator::rewind ( void ) : void
public FilterIterator::valid ( void ) : bool
}

Предопределенные константы

Режимы работы RegexIterator

RegexIterator::ALL_MATCHES

Возвращать все совпадения для текущий записи (см. preg_match_all()).

RegexIterator::GET_MATCH

Возвращать первое совпадение для текущей записи (см. preg_match()).

RegexIterator::MATCH

Только выполнение сравнения (фильтра) для текущей записи (см. preg_match()).

RegexIterator::REPLACE

Заменить текущую запись (см. preg_replace(); Полностью пока не реализовано)

RegexIterator::SPLIT

Возвращать разделенные значения для текущей записи (см. preg_split()).

Флаги RegexIterator

RegexIterator::USE_KEY

Специальный флаг: Сравнивать ключ записи вместо значения записи.

Содержание

  • RegexIterator::accept — Проверка соответствия регулярному выражению
  • RegexIterator::__construct — Конструктор класса RegexIterator
  • RegexIterator::getFlags — Получение флагов настройки
  • RegexIterator::getMode — Возвращает режим работы
  • RegexIterator::getPregFlags — Возвращает флаги регулярного выражения
  • RegexIterator::getRegex — Возвращает строку текущего регулярного выражения
  • RegexIterator::setFlags — Установка флагов
  • RegexIterator::setMode — Установка режима работы
  • RegexIterator::setPregFlags — Задание флагов регулярного выражения


Проверка соответствия регулярному выражению

  • « RegexIterator
  • RegexIterator::__construct »
  • PHP Manual
  • RegexIterator
  • Проверка соответствия регулярному выражению

RegexIterator::accept

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::accept — Проверка соответствия регулярному выражению

Описание

public RegexIterator::accept ( void ) : bool

Проверяет соответствие строки (string), которую вернул
метод RegexIterator::current()
(или RegexIterator::key(), если установлен флаг
RegexIterator::USE_KEY),
регулярному выражению.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если значение элемента соответствует регулярному выражению, FALSE в противном случае.

Примеры

Пример #1 Пример использования RegexIterator::accept()

В этом примере будет осуществляться навигация только по тем элементам, значения которых соответствуют регулярному выражению.

<?php
$names = new ArrayIterator(array('Ann', 'Bob', 'Charlie', 'David'));
$filter = new RegexIterator($names, '/^[B-D]/');
foreach ($filter as $name) {
    echo $name . PHP_EOL;
}
?>

Результат выполнения данного примера:

Bob
Charlie
David

Смотрите также

  • Константы RegexIterator
  • RegexIterator::setFlags() - Установка флагов


Конструктор класса RegexIterator

  • « RegexIterator::accept
  • RegexIterator::getFlags »
  • PHP Manual
  • RegexIterator
  • Конструктор класса RegexIterator

RegexIterator::__construct

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::__construct — Конструктор класса RegexIterator

Описание

public RegexIterator::__construct ( Iterator $iterator , string $regex [, int $mode = self::MATCH [, int $flags = 0 [, int $preg_flags = 0 ]]] )

Создает новый объект класса RegexIterator, который фильтрует элементы итератора Iterator основываясь на регулярном выражении.

Список параметров

iterator

Итератор, к элементам которого требуется применить фильтр.

regex

Регулярное выражение, на основе которого проводится отбор элементов.

mode

Режим работы. Список возможных режимов можно посмотреть в описании к методу RegexIterator::setMode().

flags

Специальные флаги. Список возможных флагов приведен в описании к методу RegexIterator::setFlags().

preg_flags

Флаги регулярного выражения. Список возможных флагов зависит от режима работы:

RegexIterator preg_flags
режим работы | доступные флаги
RegexIterator::ALL_MATCHES | Смотрите preg_match_all().
RegexIterator::GET_MATCH | Смотрите preg_match().
RegexIterator::MATCH | Смотрите preg_match().
RegexIterator::REPLACE | нет
RegexIterator::SPLIT | Смотрите preg_split().

Ошибки

Выбрасывает исключение InvalidArgumentException, если regex задан некорректно.

Примеры

Пример #1 Пример использования RegexIterator::__construct()

Создает новый объект RegexIterator, который отбирает строки, начинающиеся со слова 'test'.

<?php
$arrayIterator = new ArrayIterator(array('test 1', 'another test', 'test 123'));
$regexIterator = new RegexIterator($arrayIterator, '/^test/');

foreach ($regexIterator as $value) {
    echo $value . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

test 1
test 123

Смотрите также

  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • preg_match_all() - Выполняет глобальный поиск шаблона в строке
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • preg_split() - Разбивает строку по регулярному выражению


Получение флагов настройки

  • « RegexIterator::__construct
  • RegexIterator::getMode »
  • PHP Manual
  • RegexIterator
  • Получение флагов настройки

RegexIterator::getFlags

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::getFlags — Получение флагов настройки

Описание

public RegexIterator::getFlags ( void ) : int

Возвращает флаги настройки. Список возможных флагов приведен в описании метода RegexIterator::setFlags().

Возвращаемые значения

Возвращает набор флагов.

Примеры

Пример #1 Пример использования RegexIterator::getFlags()

<?php

$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^test/');
$regexIterator->setFlags(RegexIterator::USE_KEY);

if ($regexIterator->getFlags() & RegexIterator::USE_KEY) {
    echo 'Фильтрация на основе ключей массива.';
} else {
    echo 'Фильтрация на основе значений массива.';
}
?>

Результат выполнения данного примера:

Фильтрация на основе ключей массива.

Смотрите также

  • RegexIterator::setFlags() - Установка флагов


Возвращает режим работы

  • « RegexIterator::getFlags
  • RegexIterator::getPregFlags »
  • PHP Manual
  • RegexIterator
  • Возвращает режим работы

RegexIterator::getMode

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::getMode — Возвращает режим работы

Описание

public RegexIterator::getMode ( void ) : int

Возвращает режим работы. Список возможных режимов приведен на странице RegexIterator::setMode().

Возвращаемые значения

Возвращает режим работы.

Примеры

Пример #1 Пример использования RegexIterator::getMode()

<?php

$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^[a-z]+/', RegexIterator::GET_MATCH);

$mode = $regexIterator->getMode();
if ($mode & RegexIterator::GET_MATCH) {
    echo 'Проверка соответствий для каждого элемента.';
} elseif ($mode & RegexIterator::ALL_MATCHES) {
    echo 'Получение всех соответствий для каждого элемента.';
} elseif ($mode & RegexIterator::MATCH) {
    echo 'Получение элементов, прошедших отбор.';
} elseif ($mode & RegexIterator::SPLIT) {
    echo 'Получение отдельных частей каждого элемента.';
}
?>

Результат выполнения данного примера:

Проверка соответствий для каждого элемента.

Смотрите также

  • RegexIterator::setMode() - Установка режима работы


Возвращает флаги регулярного выражения

  • « RegexIterator::getMode
  • RegexIterator::getRegex »
  • PHP Manual
  • RegexIterator
  • Возвращает флаги регулярного выражения

RegexIterator::getPregFlags

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::getPregFlags — Возвращает флаги регулярного выражения

Описание

public RegexIterator::getPregFlags ( void ) : int

Возвращает флаги регулярного выражения. Список возможных флагов приведен в описании метода RegexIterator::__construct().

Возвращаемые значения

Возвращает битовую маску флагов регулярного выражения.

Примеры

Пример #1 Пример использования RegexIterator::getPregFlags()

<?php

$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/\s/', RegexIterator::SPLIT);
$regexIterator->setPregFlags(PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE);

if ($regexIterator->getPregFlags() & PREG_SPLIT_NO_EMPTY) {
    echo 'Не принимать во внимание пустые участки';
} else {
    echo 'Рассматривать пустые участки';
}

?>

Результат выполнения данного примера:

Не принимать во внимание пустые участки

Смотрите также

  • RegexIterator::setPregFlags() - Задание флагов регулярного выражения


Возвращает строку текущего регулярного выражения

  • « RegexIterator::getPregFlags
  • RegexIterator::setFlags »
  • PHP Manual
  • RegexIterator
  • Возвращает строку текущего регулярного выражения

RegexIterator::getRegex

(PHP 5 >= 5.4.0, PHP 7)

RegexIterator::getRegex — Возвращает строку текущего регулярного выражения

Описание

public RegexIterator::getRegex ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Установка флагов

  • « RegexIterator::getRegex
  • RegexIterator::setMode »
  • PHP Manual
  • RegexIterator
  • Установка флагов

RegexIterator::setFlags

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::setFlags — Установка флагов

Описание

public RegexIterator::setFlags ( int $flags ) : void

Задает флаги настройки.

Список параметров

flags

Флаги, битовая маска констант класса.

Ниже перечислены доступные флаги. Смысл и значения флагов описаны в разделе предопределенных констант.

Флаги RegexIterator
значение | константа
1 | RegexIterator::USE_KEY

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования RegexIterator::setFlags()

Создает новый объект-итератор, отбирающий элементы, ключи которых начинаются со слова 'test'.

<?php
$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^test/');
$regexIterator->setFlags(RegexIterator::USE_KEY);

foreach ($regexIterator as $key => $value) {
    echo $key . ' => ' . $value . "\n";
}
?>

Результат выполнения данного примера:

teststr2 => another test

Смотрите также

  • RegexIterator::getFlags() - Получение флагов настройки


Установка режима работы

  • « RegexIterator::setFlags
  • RegexIterator::setPregFlags »
  • PHP Manual
  • RegexIterator
  • Установка режима работы

RegexIterator::setMode

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::setMode — Установка режима работы

Описание

public RegexIterator::setMode ( int $mode ) : void

Задает режим работы.

Список параметров

mode

Режим работы.

Ниже перечислены возможные режимы. Смысл и значения режимов описаны в разделе предопределенных констант.

Режимы работы RegexIterator
значение | константа
0 | RegexIterator::MATCH
1 | RegexIterator::GET_MATCH
2 | RegexIterator::ALL_MATCHES
3 | RegexIterator::SPLIT
4 | RegexIterator::REPLACE

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования RegexIterator::setMode()

<?php
$test = array ('str1' => 'test 1', 'test str2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
// Отбор всех элементов, которые начинаются со слова 'test ', за которым идут числа
$regexIterator = new RegexIterator($arrayIterator, '/^test (\d+)/');
// Режим работы: Замена совпавших строк
$regexIterator->setMode(RegexIterator::GET_MATCH);

foreach ($regexIterator as $key => $value) {
    // вывод совпавших чисел
    echo $key . ' => ' . $value[1] . PHP_EOL;
}
?>

Результатом выполнения данного примера будет что-то подобное:

str1 => 1
str3 => 123

Смотрите также

  • RegexIterator::getMode() - Возвращает режим работы


Задание флагов регулярного выражения

  • « RegexIterator::setMode
  • Интерфейсы »
  • PHP Manual
  • RegexIterator
  • Задание флагов регулярного выражения

RegexIterator::setPregFlags

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::setPregFlags — Задание флагов регулярного выражения

Описание

public RegexIterator::setPregFlags ( int $preg_flags ) : void

Устанавливает флаги регулярного выражения.

Список параметров

preg_flags

Флаги настройки регулярного выражения. Список возможных флагов приведен в описании метода RegexIterator::__construct().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования RegexIterator::setPregFlags()

Создает новый объект RegexIterator, отбирающий элементы массива, ключи которых начинаются со слова 'test'.

<?php
$test = array ('test 1', 'another test', 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^test/', RegexIterator::GET_MATCH);

$regexIterator->setPregFlags(PREG_OFFSET_CAPTURE);

foreach ($regexIterator as $key => $value) {
    var_dump($value);
}
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(4) "test"
    [1]=>
    int(0)
  }
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(4) "test"
    [1]=>
    int(0)
  }
}

Смотрите также

  • RegexIterator::getPregFlags() - Возвращает флаги регулярного выражения


Интерфейсы

Содержание

  • Countable
  • OuterIterator
  • RecursiveIterator
  • SeekableIterator

SPL обеспечивает набор интерфейсов.

Смотрите также Встроенные интерфейсы и классы

Список интерфейсов

  • Countable
  • OuterIterator
  • RecursiveIterator
  • SeekableIterator
  • SplObserver
  • SplSubject


Интерфейс Countable

(PHP 5 >= 5.1.0, PHP 7)

Введение

Классы, реализующие интерфейс Countable, могут быть использованы с функцией count().

Обзор интерфейсов

Countable {
/* Методы */
abstract public count ( void ) : int
}

Содержание

  • Countable::count — Количество элементов объекта


Количество элементов объекта

  • « Countable
  • OuterIterator »
  • PHP Manual
  • Countable
  • Количество элементов объекта

Countable::count

(PHP 5 >= 5.1.0, PHP 7)

Countable::count — Количество элементов объекта

Описание

abstract public Countable::count ( void ) : int

Этот метод выполняется при использовании count() на объекте, реализующем интерфейс Countable.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Пользовательское значение типа integer.

Замечание:

Возвращаемое значение приводится к типу integer.

Примеры

Пример #1 Пример использования Countable::count()

<?php
class myCounter implements Countable {
    private $count = 0;
    public function count() {
        return ++$this->count;
    }
}

$counter = new myCounter;

for($i=0; $i<10; ++$i) {
    echo "Я посчитан " . count($counter) . " раз\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Я посчитан 1 раз
Я посчитан 2 раз
Я посчитан 3 раз
Я посчитан 4 раз
Я посчитан 5 раз
Я посчитан 6 раз
Я посчитан 7 раз
Я посчитан 8 раз
Я посчитан 9 раз
Я посчитан 10 раз


Интерфейс OuterIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Классы, реализующие OuterIterator, могут быть использованы для перебора итераторов.

Обзор интерфейсов

OuterIterator extends Iterator {
/* Методы */
public getInnerIterator ( void ) : Iterator
/* Наследуемые методы */
abstract public Iterator::current ( void ) : mixed
abstract public Iterator::key ( void ) : scalar
abstract public Iterator::next ( void ) : void
abstract public Iterator::rewind ( void ) : void
abstract public Iterator::valid ( void ) : bool
}

Содержание

  • OuterIterator::getInnerIterator — Возвращает внутренний итератор для текущего элемента


Возвращает внутренний итератор для текущего элемента

  • « OuterIterator
  • RecursiveIterator »
  • PHP Manual
  • OuterIterator
  • Возвращает внутренний итератор для текущего элемента

OuterIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

OuterIterator::getInnerIterator — Возвращает внутренний итератор для текущего элемента

Описание

public OuterIterator::getInnerIterator ( void ) : Iterator

Возвращает внутренний итератор для текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Внутренний итератор для текущего элемента.


Интерфейс RecursiveIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Классы, реализующие RecursiveIterator, могут быть использованы для рекурсивного перебора итераторов.

Обзор интерфейсов

RecursiveIterator extends Iterator {
/* Методы */
public getChildren ( void ) : RecursiveIterator
public hasChildren ( void ) : bool
/* Наследуемые методы */
abstract public Iterator::current ( void ) : mixed
abstract public Iterator::key ( void ) : scalar
abstract public Iterator::next ( void ) : void
abstract public Iterator::rewind ( void ) : void
abstract public Iterator::valid ( void ) : bool
}

Содержание

  • RecursiveIterator::getChildren — Возвращает итератор для текущего элемента
  • RecursiveIterator::hasChildren — Определяет, можно ли для текущего элемента создать итератор


Возвращает итератор для текущего элемента

  • « RecursiveIterator
  • RecursiveIterator::hasChildren »
  • PHP Manual
  • RecursiveIterator
  • Возвращает итератор для текущего элемента

RecursiveIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIterator::getChildren — Возвращает итератор для текущего элемента

Описание

public RecursiveIterator::getChildren ( void ) : RecursiveIterator

Возвращает итератор для текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Итератор для текущего элемента.

Смотрите также

  • RecursiveIterator::hasChildren() - Определяет, можно ли для текущего элемента создать итератор


Определяет, можно ли для текущего элемента создать итератор

  • « RecursiveIterator::getChildren
  • SeekableIterator »
  • PHP Manual
  • RecursiveIterator
  • Определяет, можно ли для текущего элемента создать итератор

RecursiveIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIterator::hasChildren — Определяет, можно ли для текущего элемента создать итератор

Описание

public RecursiveIterator::hasChildren ( void ) : bool

Определяет, можно ли для текущего элемента создать итератор методом RecursiveIterator::getChildren().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если по текущему элементу можно осуществлять итерацию, FALSE в противном случае.

Смотрите также

  • RecursiveIterator::getChildren() - Возвращает итератор для текущего элемента


Интерфейс SeekableIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Итератор Seekable.

Обзор интерфейсов

SeekableIterator extends Iterator {
/* Методы */
abstract public seek ( int $position ) : void
/* Наследуемые методы */
abstract public Iterator::current ( void ) : mixed
abstract public Iterator::key ( void ) : scalar
abstract public Iterator::next ( void ) : void
abstract public Iterator::rewind ( void ) : void
abstract public Iterator::valid ( void ) : bool
}

Пример #1 Простое использование

Этот пример демонстрирует создание пользовательского итератора SeekableIterator, который ищет позицию и обрабатывает недействительную позицию.

<?php
class MySeekableIterator implements SeekableIterator {

    private $position;

    private $array = array(
        "первый элемент",
        "второй элемент",
        "третий элемент",
        "четвертый элемент"
    );

    /* Метод, требуемый для интерфейса SeekableIterator */

    public function seek($position) {
      if (!isset($this->array[$position])) {
          throw new OutOfBoundsException("недействительная позиция ($position)");
      }

      $this->position = $position;
    }

    /*  Методы, требуемые для интерфейса Iterator */

    public function rewind() {
        $this->position = 0;
    }

    public function current() {
        return $this->array[$this->position];
    }

    public function key() {
        return $this->position;
    }

    public function next() {
        ++$this->position;
    }

    public function valid() {
        return isset($this->array[$this->position]);
    }
}

try {

    $it = new MySeekableIterator;
    echo $it->current(), "\n";

    $it->seek(2);
    echo $it->current(), "\n";

    $it->seek(1);
    echo $it->current(), "\n";

    $it->seek(10);

} catch (OutOfBoundsException $e) {
    echo $e->getMessage();
}
?>

Результатом выполнения данного примера будет что-то подобное:

первый элемент
третий элемент
второй элемент
недействительная позиция (10)

Содержание

  • SeekableIterator::seek — Перемещается к позиции


Перемещается к позиции

  • « SeekableIterator
  • Исключения »
  • PHP Manual
  • SeekableIterator
  • Перемещается к позиции

SeekableIterator::seek

(PHP 5 >= 5.1.0, PHP 7)

SeekableIterator::seek — Перемещается к позиции

Описание

abstract public SeekableIterator::seek ( int $position ) : void

Перемещается к заданной позиции в итераторе.

Список параметров

position

Позиция, к которой нужно переместиться.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Реализации должны выбрасывать исключение OutOfBoundsException, если position недействительна.

Примеры

Пример #1 Пример использования SeekableIterator::seek()

Перемещение к элементу на 3-ей позиции в итераторе (ArrayIterator реализует SeekableIterator).

<?php
$array = array("яблоко", "банан", "вишня", "чернослив", "ягода бузины");
$iterator = new ArrayIterator($array);
$iterator->seek(3);
echo $iterator->current();
?>

Результатом выполнения данного примера будет что-то подобное:

чернослив

Смотрите также

  • SeekableIterator
  • Iterator


Исключения

Содержание

  • BadFunctionCallException
  • BadMethodCallException
  • DomainException
  • InvalidArgumentException
  • LengthException
  • LogicException
  • OutOfBoundsException
  • OutOfRangeException
  • OverflowException
  • RangeException
  • RuntimeException
  • UnderflowException
  • UnexpectedValueException

SPL обеспечивает набор стандартных исключений.

Смотрите также Предопределённые исключения

Иерархия классов исключений SPL

  • LogicException (extends Exception)
    • BadFunctionCallException
      • BadMethodCallException
    • DomainException
    • InvalidArgumentException
    • LengthException
    • OutOfRangeException
  • RuntimeException (extends Exception)
    • OutOfBoundsException
    • OverflowException
    • RangeException
    • UnderflowException
    • UnexpectedValueException


Класс BadFunctionCallException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Создается исключение, если callback-функция относится к неопределенной функции или если некоторые аргументы отсутствуют.

Обзор классов

BadFunctionCallException extends LogicException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс BadMethodCallException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Создается исключение, если callback-функция относится к неопределенному методу или если некоторые аргументы отсутствуют.

Обзор классов

BadMethodCallException extends BadFunctionCallException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс DomainException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Создается исключение, если значение не соответствует определенным допустимым данным домена.

Обзор классов

DomainException extends LogicException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс InvalidArgumentException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Создается исключение, если аргумент не соответствует ожидаемому типу.

Обзор классов

InvalidArgumentException extends LogicException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс LengthException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Создается исключение, если длина недопустима.

Обзор классов

LengthException extends LogicException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс LogicException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Исключение, которое представляет ошибку в логике программы. Такой тип исключений должен непосредственно привести к исправлениям в вашем коде.

Обзор классов

LogicException extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс OutOfBoundsException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Выбрасывается исключение, если значение не является действительным ключом. Это представляет ошибки, которые не могут быть обнаружены во время компиляции.

Обзор классов

OutOfBoundsException extends RuntimeException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс OutOfRangeException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Выбрасывается исключение при запросе несуществующего индекса. Это представляет ошибки, которые должны быть обнаружены во время компиляции.

Обзор классов

OutOfRangeException extends LogicException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс OverflowException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Выбрасывается исключение при добавлении элемента в полный контейнер.

Обзор классов

OverflowException extends RuntimeException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс RangeException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Выбрасывается исключение, чтобы указать ошибки диапазона во время выполнения программы. Как правило, это означает, что была арифметическая ошибка, отличная от недополнения/ переполнения. Это версия DomainException, предназначенная для времени выполнения.

Обзор классов

RangeException extends RuntimeException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс RuntimeException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Выбрасывается исключение в случае ошибки, которая может быть найдена только во время выполнения.

Обзор классов

RuntimeException extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс UnderflowException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Выбрасывается исключение при попытке произвести недопустимую операцию над пустым контейнером. Например, такую, как удаление элемента из пустого контейнера.

Обзор классов

UnderflowException extends RuntimeException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс UnexpectedValueException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Выбрасывается исключение, если значение не совпадает с набором значений. Обычно это происходит, когда функция вызывает другую функцию и ожидает, что возвращаемое значение будет определенного типа или значением, не включая арифметические ошибки, или ошибки, связанные с буфером.

Обзор классов

UnexpectedValueException extends RuntimeException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Функции SPL

Содержание

  • class_implements — Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе
  • class_parents — Возвращает список родительских классов заданного класса
  • class_uses — Возвращает список трейтов, используемых заданным классом
  • iterator_apply — Вызывает функцию для каждого элемента в итераторе
  • iterator_count — Подсчитывает количество элементов в итераторе
  • iterator_to_array — Копирует итератор в массив
  • spl_autoload_call — Попытка загрузить класс всеми зарегистрированными функциями __autoload()
  • spl_autoload_extensions — Регистрация и вывод расширений файлов для spl_autoload
  • spl_autoload_functions — Получение списка всех зарегистрированных функций __autoload()
  • spl_autoload_register — Регистрирует заданную функцию в качестве реализации метода __autoload()
  • spl_autoload_unregister — Отмена регистрации функции в качестве реализации метода __autoload()
  • spl_autoload — Реализация по умолчанию метода __autoload()
  • spl_classes — Возвращает доступные классы SPL
  • spl_object_hash — Возвращает хеш-идентификатор для объекта
  • spl_object_id — Получить целочисленный идентификатор объекта


Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе

  • « Функции SPL
  • class_parents »
  • PHP Manual
  • Функции SPL
  • Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе

class_implements

(PHP 5, PHP 7)

class_implements — Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе

Описание

class_implements ( mixed $class [, bool $autoload = TRUE ] ) : array

Функция возвращает массив имен интерфейсов, реализованных в заданном классе class и его родительских классах.

Список параметров

class

Объект (экземпляр класса) или строка (имя класса или интерфейса).

autoload

Разрешить функции автоматически загрузить класс с помощью магического метода __autoload().

Возвращаемые значения

В случае успешного выполнения будет возвращен массив. В случае возникновения ошибки - FALSE.

Список изменений

Версия | Описание
5.1.0 | Добавлена возможность передавать строку в качестве аргумента class. Добавлен аргумент autoload.

Примеры

Пример #1 Пример использования class_implements()

<?php

interface foo { }
class bar implements foo {}

print_r(class_implements(new bar));

// начиная с версии PHP 5.1.0 можно передавать имя класса вместо объекта
print_r(class_implements('bar'));

function __autoload($class_name) {
   require_once $class_name . '.php';
}

// использование __autoload для загрузки еще незагруженного класса 'not_loaded'
print_r(class_implements('not_loaded', true));

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [foo] => foo
)

Array
(
    [interface_of_not_loaded] => interface_of_not_loaded
)

Смотрите также

  • class_parents() - Возвращает список родительских классов заданного класса
  • get_declared_interfaces() - Возвращает массив всех объявленных интерфейсов


Возвращает список родительских классов заданного класса

  • « class_implements
  • class_uses »
  • PHP Manual
  • Функции SPL
  • Возвращает список родительских классов заданного класса

class_parents

(PHP 5, PHP 7)

class_parents — Возвращает список родительских классов заданного класса

Описание

class_parents ( mixed $class [, bool $autoload = TRUE ] ) : array

Эта функция возвращает массив с именами родительских классов заданного класса class.

Список параметров

class

Объект (экземпляр класса) или строка (имя класса).

autoload

Разрешить функции автоматически загрузить класс с помощью магического метода __autoload().

Возвращаемые значения

В случае успеха будет возвращен массив. В случае ошибки - FALSE.

Список изменений

Версия | Описание
5.1.0 | Добавлена возможность передавать строку в качестве аргумента class. Добавлен аргумент autoload.

Примеры

Пример #1 Пример использования class_parents()

<?php

class foo { }
class bar extends foo {}

print_r(class_parents(new bar));

// начиная с версии PHP 5.1.0 можно передавать имя класса вместо объекта
print_r(class_parents('bar'));

function __autoload($class_name) {
   require_once $class_name . '.php';
}

// использование __autoload для загрузки еще незагруженного класса 'not_loaded'
print_r(class_parents('not_loaded', true));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [foo] => foo
)

Array
(
    [parent_of_not_loaded] => parent_of_not_loaded
)

Смотрите также

  • class_implements() - Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе


Возвращает список трейтов, используемых заданным классом

  • « class_parents
  • iterator_apply »
  • PHP Manual
  • Функции SPL
  • Возвращает список трейтов, используемых заданным классом

class_uses

(PHP 5 >= 5.4.0, PHP 7)

class_uses — Возвращает список трейтов, используемых заданным классом

Описание

class_uses ( mixed $class [, bool $autoload = TRUE ] ) : array

Эта функция возвращает массив с именами трейтов, которые использует заданный класс class. В этот массив, однако, не попадут трейты, используемые в классах-родителях.

Список параметров

class

Объект (экземпляр класса) или строка (имя класса).

autoload

Разрешить функции автоматически загрузить класс с помощью магического метода __autoload().

Возвращаемые значения

В случае успеха будет возвращен массив. В случае ошибки - FALSE.

Примеры

Пример #1 Пример использования class_uses()

<?php

trait foo { }
class bar {
  use foo;
}

print_r(class_uses(new bar));

print_r(class_uses('bar'));

function __autoload($class_name) {
   require_once $class_name . '.php';
}

// использование __autoload для загрузки еще незагруженного класса 'not_loaded'
print_r(class_uses('not_loaded', true));

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [foo] => foo
)

Array
(
    [foo] => foo
)

Array
(
    [trait_of_not_loaded] => trait_of_not_loaded
)

Смотрите также

  • class_parents() - Возвращает список родительских классов заданного класса
  • get_declared_traits() - Возвращает массив со всеми объявленными трейтами


Вызывает функцию для каждого элемента в итераторе

  • « class_uses
  • iterator_count »
  • PHP Manual
  • Функции SPL
  • Вызывает функцию для каждого элемента в итераторе

iterator_apply

(PHP 5 >= 5.1.0, PHP 7)

iterator_apply — Вызывает функцию для каждого элемента в итераторе

Описание

iterator_apply ( Traversable $iterator , callable $function [, array $args = NULL ] ) : int

Вызывает функцию для каждого элемента в итераторе.

Список параметров

iterator

Объект итератора для перебора.

function

Функция обратного вызова, которая применяется к каждому элементу. Эта функция принимает только переданный args, поэтому он null по умолчанию. Например, если count($args) === 3, функция обратного вызова - тернарная.

Замечание: Функция должна возвращать TRUE для того, чтобы продолжать процесс итерации над iterator.

args

Аргументы для передачи в функцию обратного вызова. Массив (array) аргументов; каждый элемент args передается в функцию обратной функции (function) в виде отдельного аргумента.

Возвращаемые значения

Возвращает количество итераций.

Примеры

Пример #1 Пример использования iterator_apply()

<?php
function print_caps(Iterator $iterator) {
    echo strtoupper($iterator->current()) . "\n";
    return TRUE;
}

$it = new ArrayIterator(array("Apples", "Bananas", "Cherries"));
iterator_apply($it, "print_caps", array($it));
?>

Результат выполнения данного примера:

APPLES
BANANAS
CHERRIES

Смотрите также

  • array_walk() - Применяет заданную пользователем функцию к каждому элементу массива


Подсчитывает количество элементов в итераторе

  • « iterator_apply
  • iterator_to_array »
  • PHP Manual
  • Функции SPL
  • Подсчитывает количество элементов в итераторе

iterator_count

(PHP 5 >= 5.1.0, PHP 7)

iterator_count — Подсчитывает количество элементов в итераторе

Описание

iterator_count ( Traversable $iterator ) : int

Подсчитывает количество элементов в итераторе. iterator_count() не гарантирует сохранение текущей позиции iterator.

Список параметров

iterator

Итератор, в котором производится подсчет.

Возвращаемые значения

Количество элементов в итераторе (iterator).

Примеры

Пример #1 Пример использования iterator_count()

<?php
$iterator = new ArrayIterator(array('recipe'=>'pancakes', 'egg', 'milk', 'flour'));
var_dump(iterator_count($iterator));
?>

Результат выполнения данного примера:

int(4)

Пример #2 iterator_count() модифицирует позицию

<?php
$iterator = new ArrayIterator(['one', 'two', 'three']);
var_dump($iterator->current());
var_dump(iterator_count($iterator));
var_dump($iterator->current());
?>

Результат выполнения данного примера:

string(3) "one"
int(3)
NULL

Пример #3 iterator_count() в цикле foreach

<?php
$iterator = new ArrayIterator(['one', 'two', 'three']);
foreach ($iterator as $key => $value) {
    echo "$key: $value (", iterator_count($iterator), ")\n";
}?>

Результат выполнения данного примера:

0: one (3)


Копирует итератор в массив

  • « iterator_count
  • spl_autoload_call »
  • PHP Manual
  • Функции SPL
  • Копирует итератор в массив

iterator_to_array

(PHP 5 >= 5.1.0, PHP 7)

iterator_to_array — Копирует итератор в массив

Описание

iterator_to_array ( Traversable $iterator [, bool $use_keys = TRUE ] ) : array

Копирует элементы итератора в массив.

Список параметров

iterator

Копируемый итератор.

use_keys

Следует ли использовать ключи элементов итератора как индексы.

В PHP 5.5 и новее, если ключ является массивом (array) или объектом (object), то бросается предупреждение. Ключи со значением NULL преобразуются в пустую строку, ключи в виде чисел с плавающей точкой (float) обрезаются до их целочисленных (integer) частей, ключи с ресурсами (resource) бросают предупреждение и преобразуются в их идентификаторы ресурса, а логические (boolean) ключи преобразуются в целые числа.

Замечание:

Если параметр не задан, либо задан как TRUE, дублирующиеся ключи будут перезаписаны. Последнее значение с заданным ключем будет в результирующем массиве. Установите этот параметр равным FALSE для получения всех значений.

Возвращаемые значения

Массив, содержащий элементы iterator.

Список изменений

Версия | Описание
5.5.0 | iterator_to_array() стал поддерживать ключи с типами, отличными от integer и string, если включен параметр use_keys.
5.2.1 | Добавлен параметр use_keys.

Примеры

Пример #1 Пример использования iterator_to_array()

<?php
$iterator = new ArrayIterator(array('recipe'=>'pancakes', 'egg', 'milk', 'flour'));
var_dump(iterator_to_array($iterator, true));
var_dump(iterator_to_array($iterator, false));
?>

Результат выполнения данного примера:

array(4) {
  ["recipe"]=>
  string(8) "pancakes"
  [0]=>
  string(3) "egg"
  [1]=>
  string(4) "milk"
  [2]=>
  string(5) "flour"
}
array(4) {
  [0]=>
  string(8) "pancakes"
  [1]=>
  string(3) "egg"
  [2]=>
  string(4) "milk"
  [3]=>
  string(5) "flour"
}


Попытка загрузить класс всеми зарегистрированными функциями __autoload()

  • « iterator_to_array
  • spl_autoload_extensions »
  • PHP Manual
  • Функции SPL
  • Попытка загрузить класс всеми зарегистрированными функциями __autoload()

spl_autoload_call

(PHP 5 >= 5.1.0, PHP 7)

spl_autoload_call — Попытка загрузить класс всеми зарегистрированными функциями __autoload()

Описание

spl_autoload_call ( string $class_name ) : void

Эту функцию можно использовать для ручного поиска класса или интерфейса, используя все зарегистрированные методы __autoload.

Список параметров

class_name

Имя искомого класса.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Регистрация и вывод расширений файлов для spl_autoload

  • « spl_autoload_call
  • spl_autoload_functions »
  • PHP Manual
  • Функции SPL
  • Регистрация и вывод расширений файлов для spl_autoload

spl_autoload_extensions

(PHP 5 >= 5.1.0, PHP 7)

spl_autoload_extensions — Регистрация и вывод расширений файлов для spl_autoload

Описание

spl_autoload_extensions ([ string $file_extensions ] ) : string

Эта функция может задавать расширения файлов, в которых callback-функция __autoload() будет искать классы и интерфейсы. spl_autoload() будет вызывать функцию __autoload и передавать ему эти расширения. Также эта функция может выводить уже зарегистрированные расширения файлов.

Замечание: Между заданными расширениями файлов не должно быть пробелов.

Список параметров

file_extensions

При вызове без параметров функция просто выведет список зарегистрированных на данный момент расширений, перечисленных через запятую. Чтобы изменить этот список, необходимо вызывать функцию, передав ей строку с расширениями, также перечисленными через запятую.

Возвращаемые значения

Список перечисленных через запятую расширений файлов для функции spl_autoload().

Примеры

Пример #1 Пример использования spl_autoload_extensions()

<?php
spl_autoload_extensions(".php,.inc");
?>


Получение списка всех зарегистрированных функций __autoload()

  • « spl_autoload_extensions
  • spl_autoload_register »
  • PHP Manual
  • Функции SPL
  • Получение списка всех зарегистрированных функций __autoload()

spl_autoload_functions

(PHP 5 >= 5.1.0, PHP 7)

spl_autoload_functions — Получение списка всех зарегистрированных функций __autoload()

Описание

spl_autoload_functions ( void ) : array

Получает список всех зарегистрированных функций __autoload().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) всех зарегистрированных в __autoload функций. Если очередь автозагрузки не активирована, вернет FALSE. Если ни одна функция не зарегистрирована, вернет пустой массив.


Регистрирует заданную функцию в качестве реализации метода __autoload()

  • « spl_autoload_functions
  • spl_autoload_unregister »
  • PHP Manual
  • Функции SPL
  • Регистрирует заданную функцию в качестве реализации метода __autoload()

spl_autoload_register

(PHP 5 >= 5.1.0, PHP 7)

spl_autoload_register — Регистрирует заданную функцию в качестве реализации метода __autoload()

Описание

spl_autoload_register ([ callable $autoload_function [, bool $throw = TRUE [, bool $prepend = FALSE ]]] ) : bool

Регистрирует функцию __autoload в предоставляемой SPL очереди. В результате очередь будет активирована, даже если ранее она была выключена.

Если в вашем скрипте реализована функция __autoload(), ее
необходимо явно зарегистрировать в очереди __autoload. Это необходимо,
т.к. spl_autoload_register() полностью заменяет механизм
кеширования __autoload() функциями
spl_autoload() и
spl_autoload_call().

spl_autoload_register() позволяет задать несколько реализаций метода автозагрузки. Она создает очередь из функций автозагрузки в порядке их определения в скрипте, тогда как встроенная функция __autoload() может иметь только одну реализацию.

Список параметров

autoload_function

Имя функции, реализующей метод spl_autoload(). Если аргумент не задан, будет зарегистрирована реализация по умолчанию.

throw

Этот параметр определяет, должна ли spl_autoload_register() выбрасывать исключение, если зарегистрировать autoload_function оказалось невозможным.

prepend

Если передано значение true, spl_autoload_register() поместит указанную функцию в начало очереди вместо добавления в конец.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Добавлена поддержка пространств имен.
5.3.0 | Добавлен аргумент prepend.

Примеры

Пример #1 spl_autoload_register() как альтернатива функции __autoload()

<?php

// function __autoload($class) {
//     include 'classes/' . $class . '.class.php';
// }

function my_autoloader($class) {
    include 'classes/' . $class . '.class.php';
}

spl_autoload_register('my_autoloader');

// Начиная с версии PHP 5.3.0 можно использовать анонимные функции
spl_autoload_register(function ($class) {
    include 'classes/' . $class . '.class.php';
});

?>

Пример #2 Пример использования spl_autoload_register() в случае, если класс не загрузился

<?php

namespace Foobar;

class Foo {
    static public function test($name) {
        print '[['. $name .']]';
    }
}

spl_autoload_register(__NAMESPACE__ .'\Foo::test'); // С PHP 5.3.0

new InexistentClass;

?>

Результатом выполнения данного примера будет что-то подобное:

[[Foobar\InexistentClass]]
Fatal error: Class 'Foobar\InexistentClass' not found in ...

Смотрите также

  • __autoload() - Попытка загрузить неопределенный класс


Отмена регистрации функции в качестве реализации метода __autoload()

  • « spl_autoload_register
  • spl_autoload »
  • PHP Manual
  • Функции SPL
  • Отмена регистрации функции в качестве реализации метода __autoload()

spl_autoload_unregister

(PHP 5 >= 5.1.0, PHP 7)

spl_autoload_unregister — Отмена регистрации функции в качестве реализации метода __autoload()

Описание

spl_autoload_unregister ( mixed $autoload_function ) : bool

Удаляет функцию из очереди автозагрузки. Если очередь была активна и после удаления функции окажется пустой, она будет автоматически деактивирована.

Когда эта функция приводит к деактивации очереди, любая функция __autoload, которая ранее существовала, не будет повторно активирована.

Список параметров

autoload_function

Функция автозагрузки, регистрацию которой требуется снять.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Реализация по умолчанию метода __autoload()

  • « spl_autoload_unregister
  • spl_classes »
  • PHP Manual
  • Функции SPL
  • Реализация по умолчанию метода __autoload()

spl_autoload

(PHP 5 >= 5.1.0, PHP 7)

spl_autoload — Реализация по умолчанию метода __autoload()

Описание

spl_autoload ( string $class_name [, string $file_extensions = spl_autoload_extensions() ] ) : void

Эта функция представляет из себя базовую реализацию метода __autoload(). Если она не указана и spl_autoload_register() вызывается без каких-либо параметров, то при каждом последующем вызове __autoload() будет использоваться именно эта функция.

Список параметров

class_name

Имя класса (и пространства имен) в нижнем регистре, которое требуется загрузить.

file_extensions

По умолчанию функция будет искать файлы с расширениями .inc и .php. по всем include-путям, где может располагаться искомый класс.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Вызывает исключение LogicException, если класс не найден и отсутствуют другие зарегистрированные автозагрузчики.


Возвращает доступные классы SPL

  • « spl_autoload
  • spl_object_hash »
  • PHP Manual
  • Функции SPL
  • Возвращает доступные классы SPL

spl_classes

(PHP 5, PHP 7)

spl_classes — Возвращает доступные классы SPL

Описание

spl_classes ( void ) : array

Эта функция возвращает массив c доступными в настоящее время классами SPL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив (array) c доступными в настоящее время классами SPL.

Примеры

Пример #1 Пример использования spl_classes()

<?php

print_r(spl_classes());

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [ArrayObject] => ArrayObject
    [ArrayIterator] => ArrayIterator
    [CachingIterator] => CachingIterator
    [RecursiveCachingIterator] => RecursiveCachingIterator
    [DirectoryIterator] => DirectoryIterator
    [FilterIterator] => FilterIterator
    [LimitIterator] => LimitIterator
    [ParentIterator] => ParentIterator
    [RecursiveDirectoryIterator] => RecursiveDirectoryIterator
    [RecursiveIterator] => RecursiveIterator
    [RecursiveIteratorIterator] => RecursiveIteratorIterator
    [SeekableIterator] => SeekableIterator
    [SimpleXMLIterator] => SimpleXMLIterator
)


Возвращает хеш-идентификатор для объекта

  • « spl_classes
  • spl_object_id »
  • PHP Manual
  • Функции SPL
  • Возвращает хеш-идентификатор для объекта

spl_object_hash

(PHP 5 >= 5.2.0, PHP 7)

spl_object_hash — Возвращает хеш-идентификатор для объекта

Описание

spl_object_hash ( object $obj ) : string

Эта функция возвращает уникальный идентификатор для заданного объекта. Этот идентификатор можно использовать в качестве хеш-ключа для хранения объектов или для идентификации объектов, пока объект не будет уничтожен. Как только объект будет уничтожен, его хеш может быть повторно использован для других объектов.

Список параметров

object

Какой-либо объект.

Возвращаемые значения

Уникальная строка символов для каждого существующего на данный момент объекта и всегда одинаковая для каждого конкретного объекта.

Примеры

Пример #1 Пример использования spl_object_hash()

<?php
$id = spl_object_hash($object);
$storage[$id] = $object;
?>

Примечания

Замечание:

После уничтожения объекта, его хеш-идентификатор может быть использован для других объектов.


Получить целочисленный идентификатор объекта

  • « spl_object_hash
  • Обработка файлов »
  • PHP Manual
  • Функции SPL
  • Получить целочисленный идентификатор объекта

spl_object_id

(PHP 7 >= 7.2.0)

spl_object_id — Получить целочисленный идентификатор объекта

Описание

spl_object_id ( object $obj ) : int

Эта функция возвращает уникальный идентификатор объекта. Идентификатор объекта уникален в течение жизни объекта. Когда объект будет уничтожен, его идентификатор может быть повторно использован для других объектов. Это поведение похоже на spl_object_hash().

Список параметров

object

Любой объект.

Возвращаемые значения

Целочисленный идентификатор, который является уникальным для каждого существующего объекта в текущее время и всегда одинаковый для каждого объекта.

Примеры

Пример #1 Пример использования spl_object_id()

<?php
$id = spl_object_id($object);
$storage[$id] = $object;
?>

Примечания

Замечание:

Когда объект будет уничтожен, его идентификатор может быть повторно использован для других объектов.


Обработка файлов

Содержание

  • SplFileInfo
  • SplFileObject
  • SplTempFileObject

SPL обеспечивает несколько классов для работы с файлами.


Класс SplFileInfo

(PHP 5 >= 5.1.2, PHP 7)

Введение

Класс SplFileInfo предлагает высокоуровневый объектно-ориентированный интерфейс к информации для отдельного файла.

Обзор классов

SplFileInfo {
/* Методы */
public __construct ( string $file_name )
public getATime ( void ) : int
public getBasename ([ string $suffix ] ) : string
public getCTime ( void ) : int
public getExtension ( void ) : string
public getFileInfo ([ string $class_name ] ) : SplFileInfo
public getFilename ( void ) : string
public getGroup ( void ) : int
public getInode ( void ) : int
public getLinkTarget ( void ) : string
public getMTime ( void ) : int
public getOwner ( void ) : int
public getPath ( void ) : string
public getPathInfo ([ string $class_name ] ) : SplFileInfo
public getPathname ( void ) : string
public getPerms ( void ) : int
public getRealPath ( void ) : string
public getSize ( void ) : int
public getType ( void ) : string
public isDir ( void ) : bool
public isExecutable ( void ) : bool
public isFile ( void ) : bool
public isLink ( void ) : bool
public isReadable ( void ) : bool
public isWritable ( void ) : bool
public openFile ([ string $open_mode = "r" [, bool $use_include_path = FALSE [, resource $context = NULL ]]] ) : SplFileObject
public setFileClass ([ string $class_name = "SplFileObject" ] ) : void
public setInfoClass ([ string $class_name = "SplFileInfo" ] ) : void
public __toString ( void ) : string
}

Содержание

  • SplFileInfo::__construct — Создать новый объект SplFileInfo
  • SplFileInfo::getATime — Получает время последнего доступа к файлу
  • SplFileInfo::getBasename — Получает базовое имя файла
  • SplFileInfo::getCTime — Возвращает время последнего изменения индексного дескриптора файла
  • SplFileInfo::getExtension — Получает расширение файла
  • SplFileInfo::getFileInfo — Получает объект SplFileInfo для файла
  • SplFileInfo::getFilename — Получает имя файла
  • SplFileInfo::getGroup — Получает группу файла
  • SplFileInfo::getInode — Получает индексный дескриптор для файла
  • SplFileInfo::getLinkTarget — Получает путь ссылки
  • SplFileInfo::getMTime — Получает время последнего изменения
  • SplFileInfo::getOwner — Получает владельца файла
  • SplFileInfo::getPath — Получает путь без имени файла
  • SplFileInfo::getPathInfo — Получает объект SplFileInfo для заданного пути
  • SplFileInfo::getPathname — Получает путь к файлу
  • SplFileInfo::getPerms — Получает список разрешений
  • SplFileInfo::getRealPath — Получает абсолютный путь к файлу
  • SplFileInfo::getSize — Получает размер файла
  • SplFileInfo::getType — Получает тип файла
  • SplFileInfo::isDir — Указывает, является ли файл каталогом
  • SplFileInfo::isExecutable — Указывает, является ли файл исполняемым
  • SplFileInfo::isFile — Указывает, ссылается ли объект на обычный файл
  • SplFileInfo::isLink — Указывает, является ли файл ссылкой
  • SplFileInfo::isReadable — Указывает, является ли файл доступным для чтения
  • SplFileInfo::isWritable — Указывает, является ли файл доступным для записи
  • SplFileInfo::openFile — Получает объект SplFileObject для файла
  • SplFileInfo::setFileClass — Задает имя класса, который будет использоваться методом SplFileInfo::openFile
  • SplFileInfo::setInfoClass — Задает имя класса, объекты которого будут создаваться методами SplFileInfo::getFileInfo и SplFileInfo::getPathInfo
  • SplFileInfo::__toString — Возвращает путь к файлу в виде строки


Создать новый объект SplFileInfo

  • « SplFileInfo
  • SplFileInfo::getATime »
  • PHP Manual
  • SplFileInfo
  • Создать новый объект SplFileInfo

SplFileInfo::__construct

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::__construct — Создать новый объект SplFileInfo

Описание

public SplFileInfo::__construct ( string $file_name )

Создаёт новый объект SplFileInfo для указанного имени файла. Файл не обязательно должен существовать или быть доступным для чтения.

Список параметров

file_name

Путь к файлу.

Примеры

Пример #1 Пример использования SplFileInfo::__construct()

<?php
$info = new SplFileInfo('example.php');
if ($info->isFile()) {
    echo $info->getRealPath();
}
?>


Получает время последнего доступа к файлу

  • « SplFileInfo::__construct
  • SplFileInfo::getBasename »
  • PHP Manual
  • SplFileInfo
  • Получает время последнего доступа к файлу

SplFileInfo::getATime

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getATime — Получает время последнего доступа к файлу

Описание

public SplFileInfo::getATime ( void ) : int

Получает время последнего доступа к файлу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает время последнего обращения к файлу.

Ошибки

Выбрасывает RunTimeException в случае ошибки.

Смотрите также

  • fileatime() - Возвращает время последнего доступа к файлу


Получает базовое имя файла

  • « SplFileInfo::getATime
  • SplFileInfo::getCTime »
  • PHP Manual
  • SplFileInfo
  • Получает базовое имя файла

SplFileInfo::getBasename

(PHP 5 >= 5.2.2, PHP 7)

SplFileInfo::getBasename — Получает базовое имя файла

Описание

public SplFileInfo::getBasename ([ string $suffix ] ) : string

Этот метод возвращает базовое имя файла, каталога или ссылки без информации о пути.

Список параметров

suffix

Необязательный суффикс, который будет исключен из базового имени.

Предостережение

SplFileInfo::getBasename() учитывает локаль, поэтому, чтобы увидеть корректное базовое имя файла с многобайтовыми символами в пути, соответствующая локаль должна быть установлена с помощью функции setlocale().

Возвращаемые значения

Возвращает базовое имя без информации о пути.

Примеры

Пример #1 Пример использования SplFileInfo::getBasename()

<?php
$info = new SplFileInfo('file.txt');
var_dump($info->getBasename());

$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename());

$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename('.txt'));
?>

Результатом выполнения данного примера будет что-то подобное:

string(8) "file.txt"
string(8) "file.txt"
string(4) "file"

Смотрите также

  • SplFileInfo::getFilename() - Получает имя файла


Возвращает время последнего изменения индексного дескриптора файла

  • « SplFileInfo::getBasename
  • SplFileInfo::getExtension »
  • PHP Manual
  • SplFileInfo
  • Возвращает время последнего изменения индексного дескриптора файла

SplFileInfo::getCTime

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getCTime — Возвращает время последнего изменения индексного дескриптора файла

Описание

public SplFileInfo::getCTime ( void ) : int

Возвращает время последнего изменения индексного дескриптора файла. Возвращает временную метку Unix.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Время последнего изменения в виде временной метки Unix.

Ошибки

В случае ошибки выбрасывает исключение RunTimeException.

Примеры

Пример #1 Пример использования SplFileInfo::getCTime()

<?php
$info = new SplFileInfo(__FILE__);
echo 'Время последнего изменения ' . date('g:i a', $info->getCTime());
?>

Результатом выполнения данного примера будет что-то подобное:

Время последнего изменения 1:49 pm

Смотрите также

  • filectime() - Возвращает время изменения индексного дескриптора файла


Получает расширение файла

  • « SplFileInfo::getCTime
  • SplFileInfo::getFileInfo »
  • PHP Manual
  • SplFileInfo
  • Получает расширение файла

SplFileInfo::getExtension

(PHP 5 >= 5.3.6, PHP 7)

SplFileInfo::getExtension — Получает расширение файла

Описание

public SplFileInfo::getExtension ( void ) : string

Возвращает расширение файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string), содержащую расширение файла, или пустую строку (string), если у файла нет расширения.

Примеры

Пример #1 Пример использования SplFileInfo::getExtension()

<?php

$info = new SplFileInfo('foo.txt');
var_dump($info->getExtension());

$info = new SplFileInfo('photo.jpg');
var_dump($info->getExtension());

$info = new SplFileInfo('something.tar.gz');
var_dump($info->getExtension());

?>

Результат выполнения данного примера:

string(3) "txt"
string(3) "jpg"
string(2) "gz"

Примечания

Замечание:

Этот метод доступен только в PHP 5.3.6. Другой способ для получения расширения - использование функции pathinfo().

<?php
$extension = pathinfo($info->getFilename(), PATHINFO_EXTENSION);
?>

Смотрите также

  • SplFileInfo::getFilename() - Получает имя файла
  • SplFileInfo::getBasename() - Получает базовое имя файла
  • pathinfo() - Возвращает информацию о пути к файлу


Получает объект SplFileInfo для файла

  • « SplFileInfo::getExtension
  • SplFileInfo::getFilename »
  • PHP Manual
  • SplFileInfo
  • Получает объект SplFileInfo для файла

SplFileInfo::getFileInfo

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getFileInfo — Получает объект SplFileInfo для файла

Описание

public SplFileInfo::getFileInfo ([ string $class_name ] ) : SplFileInfo

Этот метод получает объект SplFileInfo для указанного файла.

Список параметров

class_name

Имя производного от SplFileInfo класса для использования.

Возвращаемые значения

Объект SplFileInfo, созданный для файла.

Смотрите также

  • SplFileInfo::setInfoClass() - Задает имя класса, объекты которого будут создаваться методами SplFileInfo::getFileInfo и SplFileInfo::getPathInfo


Получает имя файла

  • « SplFileInfo::getFileInfo
  • SplFileInfo::getGroup »
  • PHP Manual
  • SplFileInfo
  • Получает имя файла

SplFileInfo::getFilename

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getFilename — Получает имя файла

Описание

public SplFileInfo::getFilename ( void ) : string

Получает имя файла без информации о пути к нему.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя файла.

Примеры

Пример #1 Пример использования SplFileInfo::getFilename()

<?php
$info = new SplFileInfo('foo.txt');
var_dump($info->getFilename());

$info = new SplFileInfo('/path/to/foo.txt');
var_dump($info->getFilename());

$info = new SplFileInfo('http://www.php.net/');
var_dump($info->getFilename());

$info = new SplFileInfo('http://www.php.net/svn.php');
var_dump($info->getFilename());
?>

Результатом выполнения данного примера будет что-то подобное:

string(7) "foo.txt"
string(7) "foo.txt"
string(0) ""
string(7) "svn.php"

Смотрите также

  • SplFileInfo::getBasename() - Получает базовое имя файла


Получает группу файла

  • « SplFileInfo::getFilename
  • SplFileInfo::getInode »
  • PHP Manual
  • SplFileInfo
  • Получает группу файла

SplFileInfo::getGroup

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getGroup — Получает группу файла

Описание

public SplFileInfo::getGroup ( void ) : int

Получает группу файла. Идентификатор группы возвращается в числовом формате.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Идентификатор группы в числовом формате.

Ошибки

Выбрасывает RuntimeException в случае ошибки.

Примеры

Пример #1 Пример использования SplFileInfo::getGroup()

<?php
$info = new SplFileInfo(__FILE__);
print_r(posix_getgrgid($info->getGroup()));
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • posix_getgrgid() - Возвращает информацию о группе по её ID


Получает индексный дескриптор для файла

  • « SplFileInfo::getGroup
  • SplFileInfo::getLinkTarget »
  • PHP Manual
  • SplFileInfo
  • Получает индексный дескриптор для файла

SplFileInfo::getInode

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getInode — Получает индексный дескриптор для файла

Описание

public SplFileInfo::getInode ( void ) : int

Получает номер индексного дескриптора для объекта файловой системы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает номер индексного дескриптора для объекта файловой системы.

Ошибки

В случае ошибки выбрасывает исключение RuntimeException.

Смотрите также

  • fileinode() - Возвращает индексный дескриптор файла


Получает путь ссылки

  • « SplFileInfo::getInode
  • SplFileInfo::getMTime »
  • PHP Manual
  • SplFileInfo
  • Получает путь ссылки

SplFileInfo::getLinkTarget

(PHP 5 >= 5.2.2, PHP 7)

SplFileInfo::getLinkTarget — Получает путь ссылки

Описание

public SplFileInfo::getLinkTarget ( void ) : string

Получает целевой путь ссылки файловой системы.

Замечание:

Этот путь может не быть реальным расположением в файловой системе. Чтобы получить реальный путь файловой системы, используйте метод SplFileInfo::getRealPath().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целевой путь ссылки файловой системы.

Ошибки

В случае ошибки выбрасывает исключение RuntimeException.

Примеры

Пример #1 Пример использования SplFileInfo::getLinkTarget()

<?php
$info = new SplFileInfo('/Users/bbieber/workspace');
if ($info->isLink()) {
    var_dump($info->getLinkTarget());
    var_dump($info->getRealPath());
}
?>

Результатом выполнения данного примера будет что-то подобное:

string(19) "Documents/workspace"
string(34) "/Users/bbieber/Documents/workspace"

Смотрите также

  • SplFileInfo::isLink() - Указывает, является ли файл ссылкой
  • SplFileInfo::getRealPath() - Получает абсолютный путь к файлу


Получает время последнего изменения

  • « SplFileInfo::getLinkTarget
  • SplFileInfo::getOwner »
  • PHP Manual
  • SplFileInfo
  • Получает время последнего изменения

SplFileInfo::getMTime

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getMTime — Получает время последнего изменения

Описание

public SplFileInfo::getMTime ( void ) : int

Возвращает время, когда содержимое файла было изменено. Время возвращается в формате временной метки Unix.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает время последнего изменения файла в формате временной метки Unix.

Смотрите также

  • filemtime() - Возвращает время последнего изменения файла


Получает владельца файла

  • « SplFileInfo::getMTime
  • SplFileInfo::getPath »
  • PHP Manual
  • SplFileInfo
  • Получает владельца файла

SplFileInfo::getOwner

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getOwner — Получает владельца файла

Описание

public SplFileInfo::getOwner ( void ) : int

Получает владельца файла. Идентификатор владельца возвращается в числовом формате.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Идентификатор владельца файла в виде числа.

Ошибки

В случае ошибки выбрасывает исключение RuntimeException.

Примеры

Пример #1 Пример использования SplFileInfo::getOwner()

<?php
$info = new SplFileInfo('file.txt');
print_r(posix_getpwuid($info->getOwner()));
?>

Смотрите также

  • posix_getpwuid() - Возвращает информацию о пользователе, используя его ID
  • SplFileInfo::getGroup() - Получает группу файла


Получает путь без имени файла

  • « SplFileInfo::getOwner
  • SplFileInfo::getPathInfo »
  • PHP Manual
  • SplFileInfo
  • Получает путь без имени файла

SplFileInfo::getPath

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getPath — Получает путь без имени файла

Описание

public SplFileInfo::getPath ( void ) : string

Возвращает путь к файлу, исключая имя файла и завершающий слеш.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь к файлу.

Примеры

Пример #1 Пример использования SplFileInfo::getPath()

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->getPath());

$info = new SplFileInfo('/usr/');
var_dump($info->getPath());?>

Результатом выполнения данного примера будет что-то подобное:

string(8) "/usr/bin"
string(4) "/usr"

Смотрите также

  • SplFileInfo::getRealPath() - Получает абсолютный путь к файлу
  • SplFileInfo::getFilename() - Получает имя файла
  • SplFileInfo::getPathInfo() - Получает объект SplFileInfo для заданного пути


Получает объект SplFileInfo для заданного пути

  • « SplFileInfo::getPath
  • SplFileInfo::getPathname »
  • PHP Manual
  • SplFileInfo
  • Получает объект SplFileInfo для заданного пути

SplFileInfo::getPathInfo

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getPathInfo — Получает объект SplFileInfo для заданного пути

Описание

public SplFileInfo::getPathInfo ([ string $class_name ] ) : SplFileInfo

Получает объект класса SplFileInfo для пути текущего файла.

Список параметров

class_name

Имя производного от SplFileInfo класса для использования.

Возвращаемые значения

Возвращает объект класса SplFileInfo для родительского пути файла.

Примеры

Пример #1 Пример использования SplFileInfo::getPathInfo()

<?php
$info = new SplFileInfo('/usr/bin/php');
$parent_info = $info->getPathInfo();
var_dump($parent_info->getRealPath());
?>

Результатом выполнения данного примера будет что-то подобное:

string(8) "/usr/bin"

Смотрите также

  • SplFileInfo::setInfoClass() - Задает имя класса, объекты которого будут создаваться методами SplFileInfo::getFileInfo и SplFileInfo::getPathInfo


Получает путь к файлу

  • « SplFileInfo::getPathInfo
  • SplFileInfo::getPerms »
  • PHP Manual
  • SplFileInfo
  • Получает путь к файлу

SplFileInfo::getPathname

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getPathname — Получает путь к файлу

Описание

public SplFileInfo::getPathname ( void ) : string

Возвращает путь к файлу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Путь к файлу.

Примеры

Пример #1 Пример использования SplFileInfo::getPathname()

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->getPathname());
?>

Результатом выполнения данного примера будет что-то подобное:

string(12) "/usr/bin/php"

Смотрите также

  • SplFileInfo::getRealPath() - Получает абсолютный путь к файлу


Получает список разрешений

  • « SplFileInfo::getPathname
  • SplFileInfo::getRealPath »
  • PHP Manual
  • SplFileInfo
  • Получает список разрешений

SplFileInfo::getPerms

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getPerms — Получает список разрешений

Описание

public SplFileInfo::getPerms ( void ) : int

Получает список разрешений для файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает список разрешений для файла.

Примеры

Пример #1 Пример использования SplFileInfo::getPerms()

<?php
$info = new SplFileInfo('/tmp');
echo substr(sprintf('%o', $info->getPerms()), -4);

$info = new SplFileInfo(__FILE__);
echo substr(sprintf('%o', $info->getPerms()), -4);
?>

Результатом выполнения данного примера будет что-то подобное:

1777
0644


Получает абсолютный путь к файлу

  • « SplFileInfo::getPerms
  • SplFileInfo::getSize »
  • PHP Manual
  • SplFileInfo
  • Получает абсолютный путь к файлу

SplFileInfo::getRealPath

(PHP 5 >= 5.2.2, PHP 7)

SplFileInfo::getRealPath — Получает абсолютный путь к файлу

Описание

public SplFileInfo::getRealPath ( void ) : string

Этот метод распаковывает все символические ссылки, разрешает относительные пути и возвращает абсолютный путь к файлу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь к файлу или FALSE, если файл не существует.

Примеры

Пример #1 Пример использования SplFileInfo::getRealPath()

<?php
$info = new SplFileInfo('/..//./../../'.__FILE__);
var_dump($info->getRealPath());

$info = new SplFileInfo('/tmp');
var_dump($info->getRealPath());

$info = new SplFileInfo('/I/Do/Not/Exist');
var_dump($info->getRealPath());

$info = new SplFileInfo('php://output');
var_dump($info->getRealPath());

$info = new SplFileInfo("");
var_dump($info->getRealPath());
?>

Результатом выполнения данного примера будет что-то подобное:

string(28) "/private/tmp/phptempfile.php"
string(12) "/private/tmp"
bool(false)
bool(false)
string(12) "/private/tmp"

Смотрите также

  • SplFileInfo::isLink() - Указывает, является ли файл ссылкой
  • realpath() - Возвращает канонизированный абсолютный путь к файлу


Получает размер файла

  • « SplFileInfo::getRealPath
  • SplFileInfo::getType »
  • PHP Manual
  • SplFileInfo
  • Получает размер файла

SplFileInfo::getSize

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getSize — Получает размер файла

Описание

public SplFileInfo::getSize ( void ) : int

Возвращает размер файла в байтах.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Размер файла в байтах.

Ошибки

Будет выброшено исключение RuntimeException, если файл не существует или возникла ошибка.

Смотрите также

  • filesize() - Возвращает размер файла


Получает тип файла

  • « SplFileInfo::getSize
  • SplFileInfo::isDir »
  • PHP Manual
  • SplFileInfo
  • Получает тип файла

SplFileInfo::getType

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getType — Получает тип файла

Описание

public SplFileInfo::getType ( void ) : string

Возвращает тип указанного файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка (string), представляющая тип элемента. Возможны следующие значения: file, link или dir.

Ошибки

Выбрасывает RuntimeException в случае ошибки.

Примеры

Пример #1 Пример использования SplFileInfo::getType()

<?php

$info = new SplFileInfo(__FILE__);
echo $info->getType().PHP_EOL;

$info = new SplFileInfo(dirname(__FILE__));
echo $info->getType();

?>

Результатом выполнения данного примера будет что-то подобное:

file
dir


Указывает, является ли файл каталогом

  • « SplFileInfo::getType
  • SplFileInfo::isExecutable »
  • PHP Manual
  • SplFileInfo
  • Указывает, является ли файл каталогом

SplFileInfo::isDir

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isDir — Указывает, является ли файл каталогом

Описание

public SplFileInfo::isDir ( void ) : bool

Этот метод можно использовать для определения того, является ли файл каталогом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если каталог; FALSE в противном случае.

Примеры

Пример #1 Пример использования SplFileInfo::isDir()

<?php
$d = new SplFileInfo(dirname(__FILE__));
var_dump($d->isDir());

$d = new SplFileInfo(__FILE__);
var_dump($d->isDir());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)


Указывает, является ли файл исполняемым

  • « SplFileInfo::isDir
  • SplFileInfo::isFile »
  • PHP Manual
  • SplFileInfo
  • Указывает, является ли файл исполняемым

SplFileInfo::isExecutable

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isExecutable — Указывает, является ли файл исполняемым

Описание

public SplFileInfo::isExecutable ( void ) : bool

Проверяет, является ли файл исполняемым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если файл является исполняемым; FALSE в противном случае.

Примеры

Пример #1 Пример использования SplFileInfo::isExecutable()

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->isExecutable());

$info = new SplFileInfo('/usr/bin');
var_dump($info->isExecutable());

$info = new SplFileInfo('foo');
var_dump($info->isExecutable());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(false)


Указывает, ссылается ли объект на обычный файл

  • « SplFileInfo::isExecutable
  • SplFileInfo::isLink »
  • PHP Manual
  • SplFileInfo
  • Указывает, ссылается ли объект на обычный файл

SplFileInfo::isFile

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isFile — Указывает, ссылается ли объект на обычный файл

Описание

public SplFileInfo::isFile ( void ) : bool

Проверяет, существует ли файл, на который ссылается объект SplFileInfo, и является ли он обычным файлом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если файл существует и является обычным файлом (а не ссылкой), FALSE в противном случае.

Примеры

Пример #1 Пример использования SplFileInfo::isFile()

<?php
$info = new SplFileInfo(__FILE__);
var_dump($info->isFile());

$info = new SplFileInfo(dirname(__FILE__));
var_dump($info->isFile());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)


Указывает, является ли файл ссылкой

  • « SplFileInfo::isFile
  • SplFileInfo::isReadable »
  • PHP Manual
  • SplFileInfo
  • Указывает, является ли файл ссылкой

SplFileInfo::isLink

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isLink — Указывает, является ли файл ссылкой

Описание

public SplFileInfo::isLink ( void ) : bool

Используйте этот метод, чтобы проверить, является ли файл, на который ссылается объект SplFileInfo, ссылкой.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если файл является ссылкой; FALSE в противном случае.

Примеры

Пример #1 Пример использования SplFileInfo::isLink()

<?php
$info = new SplFileInfo('/path/to/symlink');
if ($info->isLink()) {
    echo 'Реальный путь: '.$info->getRealPath();
}
?>

Смотрите также

  • SplFileInfo::getRealPath() - Получает абсолютный путь к файлу


Указывает, является ли файл доступным для чтения

  • « SplFileInfo::isLink
  • SplFileInfo::isWritable »
  • PHP Manual
  • SplFileInfo
  • Указывает, является ли файл доступным для чтения

SplFileInfo::isReadable

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isReadable — Указывает, является ли файл доступным для чтения

Описание

public SplFileInfo::isReadable ( void ) : bool

Проверяет, является ли файл доступным для чтения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если файл доступен для чтения; FALSE в противном случае.

Примеры

Пример #1 Пример использования SplFileInfo::isReadable()

<?php
$info = new SplFileInfo(__FILE__);
var_dump($info->isReadable());

$info = new SplFileInfo('foo');
var_dump($info->isReadable());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)


Указывает, является ли файл доступным для записи

  • « SplFileInfo::isReadable
  • SplFileInfo::openFile »
  • PHP Manual
  • SplFileInfo
  • Указывает, является ли файл доступным для записи

SplFileInfo::isWritable

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isWritable — Указывает, является ли файл доступным для записи

Описание

public SplFileInfo::isWritable ( void ) : bool

Проверяет, является ли текущий файл доступным для записи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если файл доступен для записи; FALSE в противном случае.


Получает объект SplFileObject для файла

  • « SplFileInfo::isWritable
  • SplFileInfo::setFileClass »
  • PHP Manual
  • SplFileInfo
  • Получает объект SplFileObject для файла

SplFileInfo::openFile

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::openFile — Получает объект SplFileObject для файла

Описание

public SplFileInfo::openFile ([ string $open_mode = "r" [, bool $use_include_path = FALSE [, resource $context = NULL ]]] ) : SplFileObject

Создает объект (object) SplFileObject файла. Это полезно, потому что SplFileObject содержит дополнительные методы для работы с файлом, в то время как SplFileInfo полезен только для получения информации, например, доступен ли файл для записи.

Список параметров

open_mode

Режим открытия файла. См. документацию по fopen() с описанием возможных режимов. По умолчанию только для чтения.

use_include_path

Если установлено в TRUE, имя файла также ищется в include_path

context

Для описания контекстов обратитесь к следующему разделу руководства: контекст.

Возвращаемые значения

Открытый файл как объект (object) SplFileObject.

Ошибки

Выбрасывает RuntimeException, если файл не может быть открыт (например, недостаточно прав доступа).

Примеры

Пример #1 Пример использования SplFileInfo::openFile()

<?php
$fileinfo = new SplFileInfo('/tmp/foo.txt');

if ($fileinfo->isWritable()) {

    $fileobj = $fileinfo->openFile('a');

    $fileobj->fwrite("образец текста");
}
?>

Смотрите также

  • SplFileObject
  • stream_context_create() - Создаёт контекст потока
  • fopen() - Открывает файл или URL


Задает имя класса, который будет использоваться методом SplFileInfo::openFile

  • « SplFileInfo::openFile
  • SplFileInfo::setInfoClass »
  • PHP Manual
  • SplFileInfo
  • Задает имя класса, который будет использоваться методом SplFileInfo::openFile

SplFileInfo::setFileClass

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::setFileClass — Задает имя класса, который будет использоваться методом SplFileInfo::openFile()

Описание

public SplFileInfo::setFileClass ([ string $class_name = "SplFileObject" ] ) : void

Задает имя класса, которое будет использовать метод SplFileInfo::openFile(). Этим классом должен быть SplFileObject или наследник класса SplFileObject.

Список параметров

class_name

Имя класса для метода SplFileInfo::openFile().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplFileInfo::setFileClass()

<?php
// Создать класс, расширяющий SplFileObject
class MyFoo extends SplFileObject {}

$info = new SplFileInfo(__FILE__);
// Установить имя класса для использования
$info->setFileClass('MyFoo');
var_dump($info->openFile());
?>

Результатом выполнения данного примера будет что-то подобное:

object(MyFoo)#2 (0) { }

Смотрите также

  • SplFileInfo::openFile() - Получает объект SplFileObject для файла


Задает имя класса, объекты которого будут создаваться методами SplFileInfo::getFileInfo и SplFileInfo::getPathInfo

  • « SplFileInfo::setFileClass
  • SplFileInfo::__toString »
  • PHP Manual
  • SplFileInfo
  • Задает имя класса, объекты которого будут создаваться методами SplFileInfo::getFileInfo и SplFileInfo::getPathInfo

SplFileInfo::setInfoClass

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::setInfoClass — Задает имя класса, объекты которого будут создаваться методами SplFileInfo::getFileInfo() и SplFileInfo::getPathInfo()

Описание

public SplFileInfo::setInfoClass ([ string $class_name = "SplFileInfo" ] ) : void

Задает имя класса, объекты которого будут создаваться при вызове методов SplFileInfo::getFileInfo() и SplFileInfo::getPathInfo(). Класс должен быть SplFileInfo или классом, производным от SplFileInfo.

Список параметров

class_name

Имя класса, который будет использоваться при вызове SplFileInfo::getFileInfo() и SplFileInfo::getPathInfo().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplFileInfo::setFileClass()

<?php
// Определить класс, который расширяет SplFileInfo
class MyFoo extends SplFileInfo {}

$info = new SplFileInfo('foo');
// Установить имя класса для использования
$info->setInfoClass('MyFoo');
var_dump($info->getFileInfo());
?>

Результатом выполнения данного примера будет что-то подобное:

object(MyFoo)#2 (0) { }

Смотрите также

  • SplFileInfo::getFileInfo() - Получает объект SplFileInfo для файла


Возвращает путь к файлу в виде строки

  • « SplFileInfo::setInfoClass
  • SplFileObject »
  • PHP Manual
  • SplFileInfo
  • Возвращает путь к файлу в виде строки

SplFileInfo::__toString

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::__toString — Возвращает путь к файлу в виде строки

Описание

public SplFileInfo::__toString ( void ) : string

Этот метод вернет имя указанного файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь к файлу.

Примеры

Пример #1 Пример использования SplFileInfo::__toString()

<?php
$info = new SplFileInfo('foo');
var_dump($info->__toString());
echo $info.PHP_EOL;

$info = new SplFileInfo('/usr/bin/php');
var_dump($info->__toString());
echo $info.PHP_EOL;
?>

Результатом выполнения данного примера будет что-то подобное:

string(3) "foo"
foo
string(12) "/usr/bin/php"
/usr/bin/php


Класс SplFileObject

(PHP 5 >= 5.1.0, PHP 7)

Введение

Класс SplFileObject предоставляет объектно-ориентированный интерфейс для файла.

Обзор классов

SplFileObject extends SplFileInfo implements RecursiveIterator , SeekableIterator {
/* Константы */
const integer DROP_NEW_LINE = 1 ;
const integer READ_AHEAD = 2 ;
const integer SKIP_EMPTY = 4 ;
const integer READ_CSV = 8 ;
/* Методы */
public __construct ( string $filename [, string $open_mode = "r" [, bool $use_include_path = FALSE [, resource $context ]]] )
public current ( void ) : string|array
public eof ( void ) : bool
public fflush ( void ) : bool
public fgetc ( void ) : string
 public fgetcsv
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] ) : array
public fgets ( void ) : string
public fgetss ([ string $allowable_tags ] ) : string
public flock ( int $operation [, int &$wouldblock ] ) : bool
public fpassthru ( void ) : int
public fputcsv ( array $fields [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\\" ]]] ) : int
public fread ( int $length ) : string
public fscanf ( string $format [, mixed &$... ] ) : mixed
public fseek ( int $offset [, int $whence = SEEK_SET ] ) : int
public fstat ( void ) : array
public ftell ( void ) : int
public ftruncate ( int $size ) : bool
public fwrite ( string $str [, int $length ] ) : int
public getChildren ( void ) : void
public getCsvControl ( void ) : array
public getFlags ( void ) : int
public getMaxLineLen ( void ) : int
public hasChildren ( void ) : bool
public key ( void ) : int
public next ( void ) : void
public rewind ( void ) : void
public seek ( int $line_pos ) : void
 public setCsvControl
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] ) : void
public setFlags ( int $flags ) : void
public setMaxLineLen ( int $max_len ) : void
public valid ( void ) : bool
/* Наследуемые методы */
public SplFileInfo::getATime ( void ) : int
public SplFileInfo::getBasename ([ string $suffix ] ) : string
public SplFileInfo::getCTime ( void ) : int
public SplFileInfo::getExtension ( void ) : string
public SplFileInfo::getFileInfo ([ string $class_name ] ) : SplFileInfo
public SplFileInfo::getFilename ( void ) : string
public SplFileInfo::getGroup ( void ) : int
public SplFileInfo::getInode ( void ) : int
public SplFileInfo::getLinkTarget ( void ) : string
public SplFileInfo::getMTime ( void ) : int
public SplFileInfo::getOwner ( void ) : int
public SplFileInfo::getPath ( void ) : string
public SplFileInfo::getPathInfo ([ string $class_name ] ) : SplFileInfo
public SplFileInfo::getPathname ( void ) : string
public SplFileInfo::getPerms ( void ) : int
public SplFileInfo::getRealPath ( void ) : string
public SplFileInfo::getSize ( void ) : int
public SplFileInfo::getType ( void ) : string
public SplFileInfo::isDir ( void ) : bool
public SplFileInfo::isExecutable ( void ) : bool
public SplFileInfo::isFile ( void ) : bool
public SplFileInfo::isLink ( void ) : bool
public SplFileInfo::isReadable ( void ) : bool
public SplFileInfo::isWritable ( void ) : bool
public SplFileInfo::openFile ([ string $open_mode = "r" [, bool $use_include_path = FALSE [, resource $context = NULL ]]] ) : SplFileObject
public SplFileInfo::setFileClass ([ string $class_name = "SplFileObject" ] ) : void
public SplFileInfo::setInfoClass ([ string $class_name = "SplFileInfo" ] ) : void
public SplFileInfo::__toString ( void ) : string
}

Предопределенные константы

SplFileObject::DROP_NEW_LINE

Удаляет символы переноса в конце строки.

SplFileObject::READ_AHEAD

Читает при использовании функций rewind/next.

SplFileObject::SKIP_EMPTY

Пропускает пустые строки с файле. Для правильной работы требуется включить флаг READ_AHEAD.

SplFileObject::READ_CSV

Читает строки в формате CSV.

Список изменений

Версия | Описание
5.3.9 | Значение SplFileObject::SKIP_EMPTY изменено на 4. Раньше значение было равным 6.

Содержание

  • SplFileObject::__construct — Создает объект SplFileObject
  • SplFileObject::current — Получить текущую строки файла
  • SplFileObject::eof — Проверяет, достигнут ли конец файла
  • SplFileObject::fflush — Сбрасывает буфер вывода в файл
  • SplFileObject::fgetc — Получает символ из файла
  • SplFileObject::fgetcsv — Получить строку из файла и ее разбор как поля CSV
  • SplFileObject::fgets — Получает строку из файла
  • SplFileObject::fgetss — Получить строку из файла и удалить теги HTML
  • SplFileObject::flock — Портируемая блокировка файла
  • SplFileObject::fpassthru — Выводит всё оставшееся содержимое файла в выходной поток
  • SplFileObject::fputcsv — Записать массив полей в виде строки CSV
  • SplFileObject::fread — Чтение из файла
  • SplFileObject::fscanf — Разбирает строку файла в соответствии с заданным форматом
  • SplFileObject::fseek — Перевод файлового указателя на заданную позицию
  • SplFileObject::fstat — Получает информацию о файле
  • SplFileObject::ftell — Вернуть текущую позицию файлового указателя
  • SplFileObject::ftruncate — Обрезает файл до заданной длины
  • SplFileObject::fwrite — Запись в файл
  • SplFileObject::getChildren — Метод-заглушка
  • SplFileObject::getCsvControl — Получает символы разделителя, обертывания и экранирования для CSV
  • SplFileObject::getCurrentLine — Псевдоним метода SplFileObject::fgets
  • SplFileObject::getFlags — Получает флаги настройки объекта SplFileObject
  • SplFileObject::getMaxLineLen — Получить максимальную длину строки
  • SplFileObject::hasChildren — Класс SplFileObject не имеет наследников
  • SplFileObject::key — Получить номер строки
  • SplFileObject::next — Читать следующую строку
  • SplFileObject::rewind — Перемотка файлового указателя в начало файла
  • SplFileObject::seek — Перевод файлового указателя на заданную строку
  • SplFileObject::setCsvControl — Устанавливает символы разделителя, обертывания и экранирования для CSV
  • SplFileObject::setFlags — Устанавливает флаги для SplFileObject
  • SplFileObject::setMaxLineLen — Установить максимальную длину строки
  • SplFileObject::__toString — Псевдоним SplFileObject::fgets
  • SplFileObject::valid — Проверяет, достигнут ли конец файла (EOF)


Создает объект SplFileObject

  • « SplFileObject
  • SplFileObject::current »
  • PHP Manual
  • SplFileObject
  • Создает объект SplFileObject

SplFileObject::__construct

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::__construct — Создает объект SplFileObject

Описание

public SplFileObject::__construct ( string $filename [, string $open_mode = "r" [, bool $use_include_path = FALSE [, resource $context ]]] )

Создает новый файловый объект.

Список параметров

filename

Файл, который требуется прочитать.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.

open_mode

Режим работы с файлом. Список возможных режимов работы приведен в описании функции fopen().

use_include_path

Требуется ли просматривать include_path во время поиска файла filename.

context

Допустимый ресурс контекста, созданный функцией stream_context_create().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение RuntimeException, если файл filename невозможно открыть.

Выбрасывает исключение LogicException, если filename является каталогом.

Примеры

Пример #1 Пример использования SplFileObject::__construct()

Этот пример открывает текущий файл и осуществляет перебор его строк.

<?php
$file = new SplFileObject(__FILE__);
foreach ($file as $line_num => $line) {
    echo "Строка $line_num: $line";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Строка 0: <?php
Строка 1: $file = new SplFileObject(__FILE__);
Строка 2: foreach ($file as $line_num => $line) {
Строка 3:     echo "Line $line_num is $line";
Строка 4: }
Строка 5: ?>

Смотрите также

  • SplFileInfo::openFile() - Получает объект SplFileObject для файла
  • fopen() - Открывает файл или URL


Получить текущую строки файла

  • « SplFileObject::__construct
  • SplFileObject::eof »
  • PHP Manual
  • SplFileObject
  • Получить текущую строки файла

SplFileObject::current

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::current — Получить текущую строки файла

Описание

public SplFileObject::current ( void ) : string|array

Извлекает текущую строку файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Извлекает текущую строку файла. Если задан флаг SplFileObject::READ_CSV, этот метод будет разбирать строку, как данные CSV, и вернет массив.

Примеры

Пример #1 Пример использования SplFileObject::current()

<?php
$file = new SplFileObject(__FILE__);
foreach ($file as $k => $line) {
   echo ($file->key() + 1) . ': ' . $file->current();
}
?>

Результатом выполнения данного примера будет что-то подобное:

1: <?php
2: $file = new SplFileObject(__FILE__);
3: foreach ($file as $line) {
4:     echo ($file->key() + 1) . ': ' . $file->current();
5: }
6: ?>

Смотрите также

  • SplFileObject::key() - Получить номер строки
  • SplFileObject::seek() - Перевод файлового указателя на заданную строку
  • SplFileObject::next() - Читать следующую строку
  • SplFileObject::rewind() - Перемотка файлового указателя в начало файла
  • SplFileObject::valid() - Проверяет, достигнут ли конец файла (EOF)


Проверяет, достигнут ли конец файла

  • « SplFileObject::current
  • SplFileObject::fflush »
  • PHP Manual
  • SplFileObject
  • Проверяет, достигнут ли конец файла

SplFileObject::eof

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::eof — Проверяет, достигнут ли конец файла

Описание

public SplFileObject::eof ( void ) : bool

Определяет, был ли достигнут конец файла

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если конец файла был достигнут; FALSE в противном случае.

Примеры

Пример #1 Пример использования SplFileObject::eof()

<?php
$file = new SplFileObject("fruits.txt");
while ( ! $file->eof()) {
    echo $file->fgets();
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple
banana
cherry
date
elderberry

Смотрите также

  • SplFileObject::valid() - Проверяет, достигнут ли конец файла (EOF)
  • feof() - Проверяет, достигнут ли конец файла


Сбрасывает буфер вывода в файл

  • « SplFileObject::eof
  • SplFileObject::fgetc »
  • PHP Manual
  • SplFileObject
  • Сбрасывает буфер вывода в файл

SplFileObject::fflush

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fflush — Сбрасывает буфер вывода в файл

Описание

public SplFileObject::fflush ( void ) : bool

Принудительная запись всех буферизованных данных в файл.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SplFileObject::fflush()

<?php
$file = new SplFileObject('misc.txt', 'r+');
$file->rewind();
$file->fwrite("Foo");
$file->fflush();
$file->ftruncate($file->ftell());
?>

Смотрите также

  • SplFileObject::fwrite() - Запись в файл


Получает символ из файла

  • « SplFileObject::fflush
  • SplFileObject::fgetcsv »
  • PHP Manual
  • SplFileObject
  • Получает символ из файла

SplFileObject::fgetc

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgetc — Получает символ из файла

Описание

public SplFileObject::fgetc ( void ) : string

Получает символ из файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, содержащую один символ, прочитанный из файла, или FALSE при достижении конца файла (EOF).

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Пример использования SplFileObject::fgetc()

<?php
$file = new SplFileObject('file.txt');
while (false !== ($char = $file->fgetc())) {
    echo "$char\n";
}
?>

Смотрите также

  • SplFileObject::fgets() - Получает строку из файла


Получить строку из файла и ее разбор как поля CSV

  • « SplFileObject::fgetc
  • SplFileObject::fgets »
  • PHP Manual
  • SplFileObject
  • Получить строку из файла и ее разбор как поля CSV

SplFileObject::fgetcsv

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgetcsv — Получить строку из файла и ее разбор как поля CSV

Описание

 public SplFileObject::fgetcsv
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] ) : array

Получает строку из файла и разбирает ее в соответствии с форматом CSV. Результаты разбора возвращает в виде массива.

Замечание:

Эта функция принимает во внимание настройки локали. К примеру, если LC_CTYPE установлена в en_US.UTF-8, то файлы в однобайтовой кодировке будут неправильно прочитаны этой функцией.

Список параметров

delimiter

Разделитель полей (только один символ). По умолчанию это запятая или символ, который был задан методом SplFileObject::setCsvControl().

enclosure

Символ ограничителя полей (максимум один символ). По умолчанию это двойная кавычка или символ, который был задан методом SplFileObject::setCsvControl(). Пустая строка ("") отключает проприетарный механизм экранирования.

Замечание: Обычно символ enclosure экранируется внутри поля путем его удваивания; однако, символ escape в качестве альтернативы. Поэтому значения по умолчанию этих параметров "" и \" имеют одинаковое значение. Помимо разрешения экранировать символ enclosure символ escape не имеет особого смысла; он даже не предназначен для самого экранирования.

escape

Экранирующий символ (только один символ). По умолчанию это обратный слеш (\) или символ, который был задан методом SplFileObject::setCsvControl().

Возвращаемые значения

Возвращает массив содержащий данные прочитанной строки или FALSE в случае ошибки.

Замечание:

Пустая строка CSV-файла будет возвращаться в виде массива, содержащего единственный элемент NULL, если не используется SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE, и в этом случае пустые строки пропускаются.

Список изменений

Версия | Описание
7.4.0 | Теперь параметр escape может принимать пустую строку для отключения проприетарного механизма экранирования.

Примеры

Пример #1 Пример использования SplFileObject::fgetcsv()

<?php
$file = new SplFileObject("data.csv");
while (!$file->eof()) {
    var_dump($file->fgetcsv());
}
?>

Пример #2 Пример использования SplFileObject::READ_CSV

<?php
$file = new SplFileObject("animals.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $row) {
    list($animal, $class, $legs) = $row;
    printf("A %s is a %s with %d legs\n", $animal, $class, $legs);
}
?>

Contents of animals.csv

crocodile,reptile,4
dolphin,mammal,0
duck,bird,2
koala,mammal,4
salmon,fish,0

Результатом выполнения данного примера будет что-то подобное:

A crocodile is a reptile with 4 legs
A dolphin is a mammal with 0 legs
A duck is a bird with 2 legs
A koala is a mammal with 4 legs
A salmon is a fish with 0 legs

Смотрите также

  • SplFileObject::setCsvControl() - Устанавливает символы разделителя, обертывания и экранирования для CSV
  • SplFileObject::setFlags() - Устанавливает флаги для SplFileObject
  • SplFileObject::READ_CSV
  • SplFileObject::current() - Получить текущую строки файла


Получает строку из файла

  • « SplFileObject::fgetcsv
  • SplFileObject::fgetss »
  • PHP Manual
  • SplFileObject
  • Получает строку из файла

SplFileObject::fgets

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgets — Получает строку из файла

Описание

public SplFileObject::fgets ( void ) : string

Получает строку из файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, содержащую следующую строку из файла, или FALSE в случае ошибки.

Ошибки

Выбрасывает RuntimeException, если файл не может быть прочитан.

Примеры

Пример #1 Пример использования SplFileObject::fgets()

Этот пример построчно выводит содержимое file.txt.

<?php
$file = new SplFileObject("file.txt");
while (!$file->eof()) {
    echo $file->fgets();
}
?>

Смотрите также

  • fgets() - Читает строку из файла
  • SplFileObject::fgetss() - Получить строку из файла и удалить теги HTML
  • SplFileObject::fgetc() - Получает символ из файла
  • SplFileObject::current() - Получить текущую строки файла


Получить строку из файла и удалить теги HTML

  • « SplFileObject::fgets
  • SplFileObject::flock »
  • PHP Manual
  • SplFileObject
  • Получить строку из файла и удалить теги HTML

SplFileObject::fgetss

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgetss — Получить строку из файла и удалить теги HTML

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.3.0 и ее использование крайне не рекомендовано.

Описание

public SplFileObject::fgetss ([ string $allowable_tags ] ) : string

Работа функции идентична SplFileObject::fgets() за исключением того, что SplFileObject::fgetss() пытается очистить строку от любых тегов HTML и PHP. The function retains the parsing state from call to call, and as such is not equivalent to calling strip_tags() on the return value of SplFileObject::fgets(). Функция сохраняет состояние синтаксического анализа от вызова к вызову и поэтому не эквивалентна вызову strip_tags() для возвращаемого значения SplFileObject::fgets().

Список параметров

allowable_tags

Необязательный параметр для указания тегов, которые не следует удалять.

Возвращаемые значения

Возвращает строку из файла, очищенную от HTML- и PHP-кода, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования SplFileObject::fgetss()

<?php
$str = <<<EOD
<html><body>
 <p>Добро пожаловать! Сегодня <?php echo(date('jS')); ?> <?= date('F'); ?>.</p>
</body></html>
Текст вне блока HTML.
EOD;
file_put_contents("sample.php", $str);

$file = new SplFileObject("sample.php");
while (!$file->eof()) {
    echo $file->fgetss();
}
?>

Результатом выполнения данного примера будет что-то подобное:

 Добро пожаловать! Сегодня .

Текст вне блока HTML.

Смотрите также

  • fgetss() - Читает строку из файла и удаляет HTML-теги
  • SplFileObject::fgets() - Получает строку из файла
  • SplFileObject::fgetc() - Получает символ из файла
  • SplFileObject::current() - Получить текущую строки файла
  • Фильтр string.strip_tags


Портируемая блокировка файла

  • « SplFileObject::fgetss
  • SplFileObject::fpassthru »
  • PHP Manual
  • SplFileObject
  • Портируемая блокировка файла

SplFileObject::flock

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::flock — Портируемая блокировка файла

Описание

public SplFileObject::flock ( int $operation [, int &$wouldblock ] ) : bool

Блокирует или разблокирует файл тем же портируемым способом, что и flock().

Список параметров

operation

operation может принимать следующие значения:

  • LOCK_SH для получения разделяемой блокировки (чтение).
  • LOCK_EX для получения эксклюзивной блокировки (запись).
  • LOCK_UN для снятия блокировки (разделяемой или эксклюзивной).
  • LOCK_NB чтобы не ждать, пока будет получена блокировка.

wouldblock

Будет установлен TRUE, если блокировка будет блокирующей (код ошибки EWOULDBLOCK).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SplFileObject::flock()

<?php
$file = new SplFileObject("/tmp/lock.txt", "w");
if ($file->flock(LOCK_EX)) { // выполняем эксклюзивную блокировку
    $file->ftruncate(0);     // очищаем файл
    $file->fwrite("Что-нибудь пишем сюда\n");
    $file->flock(LOCK_UN);   // снимаем блокировку
} else {
    echo "Не удалось получить блокировку!";
}
?>

Список изменений

Версия | Описание
5.5.22, 5.6.6 | Добавлена поддержка параметра wouldblock в Windows.
5.3.2 | Удалена автоматическая разблокировка при закрытии ресурса обработчика файла. Теперь разблокировку всегда придется делать самостоятельно.

Смотрите также

  • flock() - Портируемая консультативная блокировка файлов


Выводит всё оставшееся содержимое файла в выходной поток

  • « SplFileObject::flock
  • SplFileObject::fputcsv »
  • PHP Manual
  • SplFileObject
  • Выводит всё оставшееся содержимое файла в выходной поток

SplFileObject::fpassthru

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fpassthru — Выводит всё оставшееся содержимое файла в выходной поток

Описание

public SplFileObject::fpassthru ( void ) : int

Читает данные из файла с текущей позиции до конца файла и помещает их в буфер выходного потока.

Если вы уже записали какие-то данные в файл и вам необходимо вернуться на начальную позицию, файловый указатель можно сбросить методом SplFileObject::rewind().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество символов, прочитанных с дескриптора handle и переданных на вывод.

Примеры

Пример #1 Пример использования SplFileObject::fpassthru()

<?php

// Открыть файл в режиме чтения двоичных данных
$file = new SplFileObject("./img/ok.png", "rb");

// Отправить правильные заголовки
header("Content-Type: image/png");
header("Content-Length: " . $file->getSize());

// Вывести изображение и завершить работу скрипта
$file->fpassthru();
exit;

?>

Смотрите также

  • fpassthru() - Выводит все оставшиеся данные из файлового указателя


Записать массив полей в виде строки CSV

  • « SplFileObject::fpassthru
  • SplFileObject::fread »
  • PHP Manual
  • SplFileObject
  • Записать массив полей в виде строки CSV

SplFileObject::fputcsv

(PHP 5 >= 5.4.0, PHP 7)

SplFileObject::fputcsv — Записать массив полей в виде строки CSV

Описание

 public SplFileObject::fputcsv
  ( array $fields
 [, string $delimiter = ","
 [, string $enclosure = '"'
 [, string $escape = "\\"
]]] ) : int

Записывает массив fields в файл как строку CSV.

Список параметров

fields

Массив значений

delimiter

Необязательный параметр delimiter устанавливает разделитель полей (только один символ).

enclosure

Необязательный параметр enclosure (только один символ). Символ обертывания используется для помещения в него значений полей. Например строка 'строка' обернута в одиночные кавычки (').

escape

Необязательный параметр escape устанавливает символ экранирования (максимум один символ). Пустая строка ("") отключает проприетарный механизм экранирования.

Замечание:

Если символ enclosure содержится в поле, он будет экранирован путем его удвоения, если ему не предшествует escape_char.

Возвращаемые значения

Возвращает длину записанной строки или FALSE в случае возникновения ошибки.

Возвращает FALSE и не производит запись в файл, если параметры delimiter или enclosure содержат больше одного символа.

Ошибки

Вызывает ошибку уровня E_WARNING, если параметры delimiter или enclosure содержат больше одного символа.

Список изменений

Версия | Описание
7.4.0 | Теперь параметр escape может принимать пустую строку для отключения проприетарного механизма экранирования.
5.5.21, 5.6.5 | Добавлен параметр escape.

Примеры

Пример #1 Пример SplFileObject::fputcsv()

<?php

$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'),
    array('123', '456', '789'),
    array('"aaa"', '"bbb"')
);

$file = new SplFileObject('file.csv', 'w');

foreach ($list as $fields) {
    $file->fputcsv($fields);
}

?>

Пример выше записывает следующие строки в file.csv:

aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""

Смотрите также

  • fputcsv() - Форматирует строку в виде CSV и записывает её в файловый указатель
  • SplFileObject::fgetcsv() - Получить строку из файла и ее разбор как поля CSV


Чтение из файла

  • « SplFileObject::fputcsv
  • SplFileObject::fscanf »
  • PHP Manual
  • SplFileObject
  • Чтение из файла

SplFileObject::fread

(PHP 5 >= 5.5.11, PHP 7)

SplFileObject::fread — Чтение из файла

Описание

public SplFileObject::fread ( int $length ) : string

Считывает заданное количества байт из файла.

Список параметров

length

Количество байт для чтения.

Возвращаемые значения

Возвращает строку, прочитанную из файла или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример SplFileObject::fread()

<?php
// Чтение контента файла в строку
$filename = "/usr/local/something.txt";
$file = new SplFileObject($filename, "r");
$contents = $file->fread($file->getSize());
?>

Примечания

Замечание:

Обратите внимание, что SplFileObject::fread() читает с текущей позиции указателя файла. Используйте SplFileObject::ftell() для поиска текущей позиции указателя и SplFileObject::rewind() (или SplFileObject::fseek()) для изменения его позиции.

Смотрите также

  • fread() - Бинарно-безопасное чтение файла


Разбирает строку файла в соответствии с заданным форматом

  • « SplFileObject::fread
  • SplFileObject::fseek »
  • PHP Manual
  • SplFileObject
  • Разбирает строку файла в соответствии с заданным форматом

SplFileObject::fscanf

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fscanf — Разбирает строку файла в соответствии с заданным форматом

Описание

public SplFileObject::fscanf ( string $format [, mixed &$... ] ) : mixed

Читает строку из файла и разбирает ее в соответствии с заданным форматом format. Спецификация формата приведена в документации к функции sprintf().

Любые пробелы в строке format соответствует любому пробелу в строке из файла. Это означает, что символ табуляции \t в строке формата может соответствовать одному пробелу в строке файла.

Список параметров

format

Строка формата состоит из нуля или более директив: обычные символы (за исключением %), которые просто выводятся без изменения и спецификаторы преобразования, каждый из которых требует передачи своего параметра.

Спецификаторы преобразования имеют следующий формат: %[argnum$][flags][width][.precision]specifier.

Argnum

Целое число, за которым следует знак доллара $, чтобы указать, какой числовой аргумент обрабатывать при преобразовании.

Флаги
Флаг | Описание
- Выравнивание по левому краю в пределах заданной ширины поля; По умолчанию выравнивание происходит по правому краю.
+ Печатает плюс + у не отрицательных чисел; По умолчанию знак печатается только у отрицательных чисел.
(space) | Дополняет результат пробелами. Это поведение по умолчанию.
0 | Дополняет числа нулями (только слева). Со спецификатором s также может дополнять нулями справа.
'(char) | Дополняет результат символом (char).

Ширина

Целое число, определяющее минимальное количество символов, которое будет напечатано.

Точность

Точка . с последующим целым числом, работающая по разному для разных спецификаторов:

  • Для спецификаторов e, E, f и F: задает количество цифр после десятичной запятой (по умолчанию 6).
  • Для спецификаторов g и G: задает максимальное значение печатаемых значащих цифр.
  • Для спецификатора s: задает ограничение максимального количества символов в строке, которые будут выведены.

Замечание: Если указана точка без последующего значения точности, то точность будет считаться за 0.

Замечание: Попытка использовать спецификатор позиции со значением больше, чем PHP_INT_MAX приведет к выводу предупреждения.

Спецификаторы
Спецификатор | Описание
% Символ процента. Аргументы не требуются.
b | Аргумент рассматривается как целое число и печатается в бинарном представлении.
c | Аргумент рассматривается как целое число и печатается как символ из таблицы ASCII с соответствующим кодом.
d | Аргумент рассматривается как целое число и печатается как целое число со знаком.
e | Аргумент считается за число в научной нотации (т.е. 1.2e+2). Начиная с PHP 5.2.1, спецификатор точности задает количество цифр после десятичной запятой. В более ранних версиях он задавал общее количество значащих цифр (т.е. после запятой выводилось на 1 символ меньше).
E | Аналогично спецификатору e, но использует заглавные символы (т.е. 1.2E+2).
f | Аргумент считается за число с плавающей точкой (с учетом локали).
F | Аргумент считается за число с плавающей точкой (без учета локали). Доступно с PHP 5.0.3.
g

Общий формат.

Пусть P равно точности, если она не равно нулю, 6 - если точность не задана и 1, если точность задана как 0. Тогда, если преобразование со стилем "E" будет иметь показатель степени X:

Если P > X ? ?4, преобразование будет в стиле "f" и точность будет P ? (X + 1). В обратном случае, преобразование будет в стиле "e" и точность будет P ? 1.

G | Аналогично спецификатору g, но использует E и F.
o | Аргумент рассматривается как целое число и печатается в восмеричном представлении.
s | Аргумент рассматривается и печатается как строка.
u | Аргумент рассматривается как целое число и печатается как беззаковое целое число.
x | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в нижнем регистре).
X | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в верхнем регистре).

Внимание

Спецификатор c игнорирует значения ширины и дополнения

Внимание

Попытка использовать спецификаторы с указанием ширины для строки в многобайтовой кодировке может привести к неожиданным результатам.

Переменные будут приведены к подходящему для спецификатора типу:

Обработка типов
Тип | Спецификатор
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

...

Дополнительные строки форматирования.

Возвращаемые значения

Если передан только один параметр, распознанные в строке значения будут помещены в массив. Если переданы дополнительные строки форматирования, функция вернет количество шаблонов, с которыми совпала строка. Необязательные параметры должны передаваться по ссылке.

Примеры

Пример #1 Пример использования SplFileObject::fscanf()

<?php
$file = new SplFileObject("misc.txt");
while ($userinfo = $file->fscanf("%s %s %s")) {
    list ($name, $profession, $countrycode) = $userinfo;
    // Работаем с $name $profession $countrycode
}
?>

Содержимое файла users.txt

javier   argonaut    pe
hiroshi  sculptor    jp
robert   slacker     us
luigi    florist     it

Смотрите также

  • fscanf() - Обрабатывает данные из файла в соответствии с форматом
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • printf() - Выводит отформатированную строку
  • sprintf() - Возвращает отформатированную строку


Перевод файлового указателя на заданную позицию

  • « SplFileObject::fscanf
  • SplFileObject::fstat »
  • PHP Manual
  • SplFileObject
  • Перевод файлового указателя на заданную позицию

SplFileObject::fseek

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fseek — Перевод файлового указателя на заданную позицию

Описание

public SplFileObject::fseek ( int $offset [, int $whence = SEEK_SET ] ) : int

Перемещает файловый указатель на указанное в параметре offset количество байт. За позицию, от которой будет отсчитываться смещение отвечает параметр whence.

Список параметров

offset

Смещение. Отрицательная величина смещения используется, когда нужно перемещаться по файлу от конца к началу, т.е. когда в качестве аргумента whence передано значение SEEK_END.

whence

Возможные значения параметра whence:

  • SEEK_SET - Установить указатель на позицию offset байт от начала файла.
  • SEEK_CUR - Переместить указатель на offset байт относительно текущего положения.
  • SEEK_END - Установить указатель на позицию offset байт от конца файла.

Если параметр whence опущен, функция будет работать в режиме SEEK_SET.

Возвращаемые значения

Возвращает 0, если перемещение прошло успешно, и -1 в противном случае. Следует помнить, что перемещение за конец файла не рассматривается как ошибка.

Примеры

Пример #1 Пример использования SplFileObject::fseek()

<?php
$file = new SplFileObject("somefile.txt");

// Чтение первой строки
$data = $file->fgets();

// Перемещаемся снова в начало файла
// То же, что и $file->rewind();
$file->fseek(0);
?>

Смотрите также

  • fseek() - Устанавливает смещение в файловом указателе


Получает информацию о файле

  • « SplFileObject::fseek
  • SplFileObject::ftell »
  • PHP Manual
  • SplFileObject
  • Получает информацию о файле

SplFileObject::fstat

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fstat — Получает информацию о файле

Описание

public SplFileObject::fstat ( void ) : array

Собирает статистическую информацию о файле. Поведение идентично fstat().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив со статистической информацией о файле; формат массива подробно описан на странице функции stat().

Примеры

Пример #1 Пример использования SplFileObject::fstat()

<?php
$file = new SplFileObject("/etc/passwd");
$stat = $file->fstat();

// Печать только ассоциативной части
print_r(array_slice($stat, 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
)

Смотрите также

  • fstat() - Получает информацию о файле, используя открытый файловый указатель
  • stat() - Возвращает информацию о файле


Вернуть текущую позицию файлового указателя

  • « SplFileObject::fstat
  • SplFileObject::ftruncate »
  • PHP Manual
  • SplFileObject
  • Вернуть текущую позицию файлового указателя

SplFileObject::ftell

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::ftell — Вернуть текущую позицию файлового указателя

Описание

public SplFileObject::ftell ( void ) : int

Возвращает текущую позицию файлового указателя, которая представляет текущее смещение в файловом потоке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает позицию файлового указателя в виде целого числа или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования SplFileObject::ftell()

<?php
$file = new SplFileObject("/etc/passwd");

// Читаем первую строку
$data = $file->fgets();

// Определяем, где мы?
echo $file->ftell();
?>

Смотрите также

  • ftell() - Возвращает текущую позицию указателя чтения/записи файла


Обрезает файл до заданной длины

  • « SplFileObject::ftell
  • SplFileObject::fwrite »
  • PHP Manual
  • SplFileObject
  • Обрезает файл до заданной длины

SplFileObject::ftruncate

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::ftruncate — Обрезает файл до заданной длины

Описание

public SplFileObject::ftruncate ( int $size ) : bool

Отбрасывает все данные в файле после байта size.

Список параметров

size

Размер, под который требуется подогнать файл.

Замечание:

Если size больше текущего размера файла, в конец будут добавлены нулевые байты.

Если size меньше размера файла, лишние данные будут потеряны.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SplFileObject::ftruncate()

<?php
// Создать файл, содержащий "Hello World!"
$file = new SplFileObject("/tmp/ftruncate", "w+");
$file->fwrite("Hello World!");

// Обрезать до 5 байт
$file->ftruncate(5);

// Перемотка к началу файла и чтение данные
$file->rewind();
echo $file->fgets();
?>

Результатом выполнения данного примера будет что-то подобное:

Hello

Смотрите также

  • ftruncate() - Урезает файл до указанной длины


Запись в файл

  • « SplFileObject::ftruncate
  • SplFileObject::getChildren »
  • PHP Manual
  • SplFileObject
  • Запись в файл

SplFileObject::fwrite

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fwrite — Запись в файл

Описание

public SplFileObject::fwrite ( string $str [, int $length ] ) : int

Записывает содержимое строки string в файл

Список параметров

str

Строка, которая будет записана в файл.

length

Если задан аргумент length, запись остановится после того, как length байт будут записаны или будет достигнут конец строки string, в зависимости от того, что случится раньше.

Возвращаемые значения

Возвращает количество записанных байт или 0 в случае ошибки.

Примеры

Пример #1 Пример использования SplFileObject::fwrite()

<?php
$file = new SplFileObject("fwrite.txt", "w");
$written = $file->fwrite("12345");
echo "В файл записано $written байт";
?>

Результатом выполнения данного примера будет что-то подобное:

В файл записано 5 байт

Смотрите также

  • fwrite() - Бинарно-безопасная запись в файл


Метод-заглушка

  • « SplFileObject::fwrite
  • SplFileObject::getCsvControl »
  • PHP Manual
  • SplFileObject
  • Метод-заглушка

SplFileObject::getChildren

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::getChildren — Метод-заглушка

Описание

public SplFileObject::getChildren ( void ) : void

Класс SplFileObject не имеет дочерних элементов, поэтому этот метод возвращает NULL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • RecursiveIterator::getChildren() - Возвращает итератор для текущего элемента


Получает символы разделителя, обертывания и экранирования для CSV

  • « SplFileObject::getChildren
  • SplFileObject::getCurrentLine »
  • PHP Manual
  • SplFileObject
  • Получает символы разделителя, обертывания и экранирования для CSV

SplFileObject::getCsvControl

(PHP 5 >= 5.2.0, PHP 7)

SplFileObject::getCsvControl — Получает символы разделителя, обертывания и экранирования для CSV

Описание

public SplFileObject::getCsvControl ( void ) : array

Получает символы разделителя, обертывания и экранирования для CSV. Символ обертывания используется для помещения в него значений полей. Например строка 'строка' обернута в одиночные кавычки (').

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает индексный массив, содержащий символы разделителя и ограничителя.

Список изменений

Версия | Описание
7.4.0 | В качестве символа экранирования можно использовать пустую строку.
5.6.25, 7.0.10 | Добавлен символ экранирования в результирующий массив.

Примеры

Пример #1 Пример использования SplFileObject::getCsvControl()

<?php
$file = new SplFileObject("data.txt");
print_r($file->getCsvControl());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => ,
    [1] => "
    [2] => \
)

Смотрите также

  • SplFileObject::setCsvControl() - Устанавливает символы разделителя, обертывания и экранирования для CSV
  • SplFileObject::fgetcsv() - Получить строку из файла и ее разбор как поля CSV


Псевдоним метода SplFileObject::fgets

  • « SplFileObject::getCsvControl
  • SplFileObject::getFlags »
  • PHP Manual
  • SplFileObject
  • Псевдоним метода SplFileObject::fgets

SplFileObject::getCurrentLine

(PHP 5 >= 5.1.2, PHP 7)

SplFileObject::getCurrentLine — Псевдоним метода SplFileObject::fgets()

Описание

Этот метод является псевдонимом: SplFileObject::fgets().


Получает флаги настройки объекта SplFileObject

  • « SplFileObject::getCurrentLine
  • SplFileObject::getMaxLineLen »
  • PHP Manual
  • SplFileObject
  • Получает флаги настройки объекта SplFileObject

SplFileObject::getFlags

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::getFlags — Получает флаги настройки объекта SplFileObject

Описание

public SplFileObject::getFlags ( void ) : int

Получает флаги настройки объекта SplFileObject в виде целого числа типа integer.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает число типа integer, представляющее набор флагов.

Примеры

Пример #1 Пример использования SplFileObject::getFlags()

<?php
$file = new SplFileObject(__FILE__, "r");

if ($file->getFlags() & SplFileObject::SKIP_EMPTY) {
    echo "Пропускать пустые строки\n";
} else {
    echo "Не пропускать пустые строки\n";
}

$file->setFlags(SplFileObject::SKIP_EMPTY);

if ($file->getFlags() & SplFileObject::SKIP_EMPTY) {
    echo "Пропускать пустые строки\n";
} else {
    echo "Не пропускать пустые строки\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Не пропускать пустые строки
Пропускать пустые строки

Смотрите также

  • SplFileObject::setFlags() - Устанавливает флаги для SplFileObject


Получить максимальную длину строки

  • « SplFileObject::getFlags
  • SplFileObject::hasChildren »
  • PHP Manual
  • SplFileObject
  • Получить максимальную длину строки

SplFileObject::getMaxLineLen

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::getMaxLineLen — Получить максимальную длину строки

Описание

public SplFileObject::getMaxLineLen ( void ) : int

Получает максимальную длину строки, установленную с помощью SplFileObject::setMaxLineLen().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает максимальную длину строки, если она была установлена с помощью SplFileObject::setMaxLineLen(), по умолчанию 0.

Примеры

Пример #1 Пример использования SplFileObject::getMaxLineLen()

<?php
$file = new SplFileObject("file.txt");
var_dump($file->getMaxLineLen());

$file->setMaxLineLen(20);
var_dump($file->getMaxLineLen());
?>

Результатом выполнения данного примера будет что-то подобное:

int(0)
int(20)

Смотрите также

  • Classname::Method()


Класс SplFileObject не имеет наследников

  • « SplFileObject::getMaxLineLen
  • SplFileObject::key »
  • PHP Manual
  • SplFileObject
  • Класс SplFileObject не имеет наследников

SplFileObject::hasChildren

(PHP 5 >= 5.1.2, PHP 7)

SplFileObject::hasChildren — Класс SplFileObject не имеет наследников

Описание

public SplFileObject::hasChildren ( void ) : bool

Класс SplFileObject не имеет дочерних элементов, поэтому метод всегда возвращает FALSE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает FALSE

Смотрите также

  • RecursiveIterator::hasChildren() - Определяет, можно ли для текущего элемента создать итератор


Получить номер строки

  • « SplFileObject::hasChildren
  • SplFileObject::next »
  • PHP Manual
  • SplFileObject
  • Получить номер строки

SplFileObject::key

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::key — Получить номер строки

Описание

public SplFileObject::key ( void ) : int

Получает номер текущей строки.

Замечание:

Этот номер может отличаться от реального положения файлового указателя, когда читаются строки фиксированной длины с заданием этой длины методом SplFileObject::setMaxLineLen().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает номер текущей строки файла.

Примеры

Пример #1 Пример использования SplFileObject::key()

<?php
$file = new SplFileObject("lipsum.txt");
foreach ($file as $line) {
    echo $file->key() . ". " . $line;
}
?>

Результатом выполнения данного примера будет что-то подобное:

0. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
1. Duis nec sapien felis, ac sodales nisl.
2. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Пример #2 Пример использования SplFileObject::key() при задании длины строки методом SplFileObject::setMaxLineLen()

<?php
$file = new SplFileObject("lipsum.txt");
$file->setMaxLineLen(20);
foreach ($file as $line) {
    echo $file->key() . ". " . $line . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

0. Lorem ipsum dolor s
1. it amet, consectetu
2. r adipiscing elit.
3.

4. Duis nec sapien fel
5. is, ac sodales nisl
6. .

7. Lorem ipsum dolor s
8. it amet, consectetu
9. r adipiscing elit.

Смотрите также

  • SplFileObject::current() - Получить текущую строки файла
  • SplFileObject::seek() - Перевод файлового указателя на заданную строку
  • SplFileObject::next() - Читать следующую строку
  • SplFileObject::rewind() - Перемотка файлового указателя в начало файла
  • SplFileObject::valid() - Проверяет, достигнут ли конец файла (EOF)


Читать следующую строку

  • « SplFileObject::key
  • SplFileObject::rewind »
  • PHP Manual
  • SplFileObject
  • Читать следующую строку

SplFileObject::next

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::next — Читать следующую строку

Описание

public SplFileObject::next ( void ) : void

Переход к следующей строке в файле.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplFileObject::next()

<?php
// Читаем файл построчно
$file = new SplFileObject("misc.txt");
while (!$file->eof()) {
    echo $file->current();
    $file->next();
}
?>

Смотрите также

  • SplFileObject::current() - Получить текущую строки файла
  • SplFileObject::key() - Получить номер строки
  • SplFileObject::seek() - Перевод файлового указателя на заданную строку
  • SplFileObject::rewind() - Перемотка файлового указателя в начало файла
  • SplFileObject::valid() - Проверяет, достигнут ли конец файла (EOF)


Перемотка файлового указателя в начало файла

  • « SplFileObject::next
  • SplFileObject::seek »
  • PHP Manual
  • SplFileObject
  • Перемотка файлового указателя в начало файла

SplFileObject::rewind

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::rewind — Перемотка файлового указателя в начало файла

Описание

public SplFileObject::rewind ( void ) : void

Перематывает файловый указатель в начало файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Если указатель нельзя перемотать, будет выброшено исключение RuntimeException.

Примеры

Пример #1 Пример использования SplFileObject::rewind()

<?php
$file = new SplFileObject("misc.txt");

// Проход по всему файлу
foreach ($file as $line) { }

// Перемотка на первую строку
$file->rewind();

// Вывод первой строки
echo $file->current();
?>

Смотрите также

  • SplFileObject::current() - Получить текущую строки файла
  • SplFileObject::key() - Получить номер строки
  • SplFileObject::seek() - Перевод файлового указателя на заданную строку
  • SplFileObject::next() - Читать следующую строку
  • SplFileObject::valid() - Проверяет, достигнут ли конец файла (EOF)


Перевод файлового указателя на заданную строку

  • « SplFileObject::rewind
  • SplFileObject::setCsvControl »
  • PHP Manual
  • SplFileObject
  • Перевод файлового указателя на заданную строку

SplFileObject::seek

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::seek — Перевод файлового указателя на заданную строку

Описание

public SplFileObject::seek ( int $line_pos ) : void

Переводит файловый указатель на заданную строку.

Список параметров

line_pos

Номер строки, начиная с 0, на которую требуется перейти.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение LogicException, если аргумент line_pos принимает отрицательное значение.

Примеры

Пример #1 Пример использования SplFileObject::seek()

Этот пример выводит третью строку скрипта, находящуюся на 2-й позиции.

<?php
$file = new SplFileObject(__FILE__);
$file->seek(2);
echo $file->current();
?>

Результатом выполнения данного примера будет что-то подобное:

$file->seek(2);

Смотрите также

  • SplFileObject::current() - Получить текущую строки файла
  • SplFileObject::key() - Получить номер строки
  • SplFileObject::next() - Читать следующую строку
  • SplFileObject::rewind() - Перемотка файлового указателя в начало файла
  • SplFileObject::valid() - Проверяет, достигнут ли конец файла (EOF)


Устанавливает символы разделителя, обертывания и экранирования для CSV

  • « SplFileObject::seek
  • SplFileObject::setFlags »
  • PHP Manual
  • SplFileObject
  • Устанавливает символы разделителя, обертывания и экранирования для CSV

SplFileObject::setCsvControl

(PHP 5 >= 5.2.0, PHP 7)

SplFileObject::setCsvControl — Устанавливает символы разделителя, обертывания и экранирования для CSV

Описание

 public SplFileObject::setCsvControl
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] ) : void

Устанавливает символы разделителя, ограничителя и экранирования для CSV. Символ ограничителя используется для помещения в него значений полей. Например строка 'строка' обернута в одиночные кавычки (').

Список параметров

delimiter

Разделитель поля (только один символ).

enclosure

Символ ограничителя поля (только один символ).

escape

Экранирующий символ (максимум один символ). Пустая строка ("") отключает проприетарный механизм экранирования.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
7.4.0 | Теперь параметр escape может принимать пустую строку для отключения проприетарного механизма экранирования.
5.3.0 | Добавлен параметр escape.

Примеры

Пример #1 Пример использования SplFileObject::setCsvControl()

<?php
$file = new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
$file->setCsvControl('|');
foreach ($file as $row) {
    list ($fruit, $quantity) = $row;
    // Что-то делаем со значениями
}
?>

Содержимое data.csv

<?php
apples|20
bananas|14
cherries|87
?>

Смотрите также

  • SplFileObject::getCsvControl() - Получает символы разделителя, обертывания и экранирования для CSV
  • SplFileObject::fgetcsv() - Получить строку из файла и ее разбор как поля CSV


Устанавливает флаги для SplFileObject

  • « SplFileObject::setCsvControl
  • SplFileObject::setMaxLineLen »
  • PHP Manual
  • SplFileObject
  • Устанавливает флаги для SplFileObject

SplFileObject::setFlags

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::setFlags — Устанавливает флаги для SplFileObject

Описание

public SplFileObject::setFlags ( int $flags ) : void

Устанавливает флаги, которые будут использоваться SplFileObject.

Список параметров

flags

Битовая маска флагов для установки. Смотрите константы SplFileObject для получения списка доступных флагов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplFileObject::setFlags()

<?php
$file = new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $fields) {
    var_dump($fields);
}
?>

Смотрите также

  • SplFileObject::getFlags() - Получает флаги настройки объекта SplFileObject


Установить максимальную длину строки

  • « SplFileObject::setFlags
  • SplFileObject::__toString »
  • PHP Manual
  • SplFileObject
  • Установить максимальную длину строки

SplFileObject::setMaxLineLen

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::setMaxLineLen — Установить максимальную длину строки

Описание

public SplFileObject::setMaxLineLen ( int $max_len ) : void

Устанавливает максимальную длину строки для чтения.

Список параметров

max_len

Максимальная длина строки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает DomainException, если значение max_len меньше нуля.

Примеры

Пример #1 Пример использования SplFileObject::setMaxLineLen()

<?php
$file = new SplFileObject("lipsum.txt");
$file->setMaxLineLen(20);
foreach ($file as $line) {
    echo $line . "\n";
}
?>

Содержимое lipsum.txt

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Duis nec sapien felis, ac sodales nisl.
Nulla vitae magna vitae purus aliquet consequat.

Результатом выполнения данного примера будет что-то подобное:

Lorem ipsum dolor s
it amet, consectetu
r adipiscing elit.

Duis nec sapien fel
is, ac sodales nisl
.

Nulla vitae magna v
itae purus aliquet
consequat.

Смотрите также

  • Classname::Method()


Псевдоним SplFileObject::fgets

  • « SplFileObject::setMaxLineLen
  • SplFileObject::valid »
  • PHP Manual
  • SplFileObject
  • Псевдоним SplFileObject::fgets

SplFileObject::__toString

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::__toString — Псевдоним SplFileObject::fgets()

Описание

Этот метод является псевдонимом: SplFileObject::fgets().

Список изменений

Версия | Описание
7.2.19, 7.3.6 | Изменен псевдоним с SplFileObject::current() на SplFileObject::fgets().


Проверяет, достигнут ли конец файла (EOF)

  • « SplFileObject::__toString
  • SplTempFileObject »
  • PHP Manual
  • SplFileObject
  • Проверяет, достигнут ли конец файла (EOF)

SplFileObject::valid

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::valid — Проверяет, достигнут ли конец файла (EOF)

Описание

public SplFileObject::valid ( void ) : bool

Проверяет, был ли достигнут конец файла (EOF).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если EOF не достигнут, FALSE в противном случае.

Примеры

Пример #1 Пример использования SplFileObject::valid()

<?php
// Цикл по файлу
$file = new SplFileObject("file.txt");
while ($file->valid()) {
    echo $file->fgets();
}
?>

Смотрите также

  • SplFileObject::current() - Получить текущую строки файла
  • SplFileObject::key() - Получить номер строки
  • SplFileObject::seek() - Перевод файлового указателя на заданную строку
  • SplFileObject::next() - Читать следующую строку
  • SplFileObject::rewind() - Перемотка файлового указателя в начало файла


Класс SplTempFileObject

(PHP 5 >= 5.1.2, PHP 7)

Введение

Класс SplTempFileObject предлагает объектно-ориентированный интерфейс для работы с временным файлом.

Обзор классов

SplTempFileObject extends SplFileObject implements SeekableIterator , RecursiveIterator {
/* Наследуемые константы */
const integer SplFileObject::DROP_NEW_LINE = 1 ;
const integer SplFileObject::READ_AHEAD = 2 ;
const integer SplFileObject::SKIP_EMPTY = 4 ;
const integer SplFileObject::READ_CSV = 8 ;
/* Методы */
public __construct ([ int $max_memory ] )
/* Наследуемые методы */
public SplFileObject::current ( void ) : string|array
public SplFileObject::eof ( void ) : bool
public SplFileObject::fflush ( void ) : bool
public SplFileObject::fgetc ( void ) : string
 public SplFileObject::fgetcsv
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] ) : array
public SplFileObject::fgets ( void ) : string
public SplFileObject::fgetss ([ string $allowable_tags ] ) : string
public SplFileObject::flock ( int $operation [, int &$wouldblock ] ) : bool
public SplFileObject::fpassthru ( void ) : int
 public SplFileObject::fputcsv
  ( array $fields
 [, string $delimiter = ","
 [, string $enclosure = '"'
 [, string $escape = "\\"
]]] ) : int
public SplFileObject::fread ( int $length ) : string
public SplFileObject::fscanf ( string $format [, mixed &$... ] ) : mixed
public SplFileObject::fseek ( int $offset [, int $whence = SEEK_SET ] ) : int
public SplFileObject::fstat ( void ) : array
public SplFileObject::ftell ( void ) : int
public SplFileObject::ftruncate ( int $size ) : bool
public SplFileObject::fwrite ( string $str [, int $length ] ) : int
public SplFileObject::getChildren ( void ) : void
public SplFileObject::getCsvControl ( void ) : array
public SplFileObject::getFlags ( void ) : int
public SplFileObject::getMaxLineLen ( void ) : int
public SplFileObject::hasChildren ( void ) : bool
public SplFileObject::key ( void ) : int
public SplFileObject::next ( void ) : void
public SplFileObject::rewind ( void ) : void
public SplFileObject::seek ( int $line_pos ) : void
 public SplFileObject::setCsvControl
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] ) : void
public SplFileObject::setFlags ( int $flags ) : void
public SplFileObject::setMaxLineLen ( int $max_len ) : void
public SplFileObject::valid ( void ) : bool
}

Содержание

  • SplTempFileObject::__construct — Создает новый объект временного файла


Создает новый объект временного файла

  • « SplTempFileObject
  • Различные классы и интерфейсы »
  • PHP Manual
  • SplTempFileObject
  • Создает новый объект временного файла

SplTempFileObject::__construct

(PHP 5 >= 5.1.2, PHP 7)

SplTempFileObject::__construct — Создает новый объект временного файла

Описание

public SplTempFileObject::__construct ([ int $max_memory ] )

Создает новый объект, представляющий временный файл.

Список параметров

max_memory

Максимальный объем памяти (в байтах, по умолчанию равен 2 МБ) для временного файла. Если временный файл превысит этот размер, он будет перемещен в файл в системной папке временных файлов.

Если значение max_memory отрицательное, будет использоваться только память. Если значение max_memory равно нулю, то память не будет использоваться.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение RuntimeException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SplTempFileObject()

Этот пример создает в памяти временный файл, в который можно записать данные и прочитать их.

<?php
$temp = new SplTempFileObject();
$temp->fwrite("Первая строка\n");
$temp->fwrite("А это вторая.\n");
echo "Во временный файл записано " . $temp->ftell() . " байт.\n\n";

// Перемотка в начало и чтение того, что было записано
$temp->rewind();
foreach ($temp as $line) {
    echo $line;
}
?>

Результатом выполнения данного примера будет что-то подобное:

Во временный файл записано 28 байт.

Первая строка
А это вторая.

Смотрите также

  • SplFileObject
  • потоки ввода-вывода PHP (дляphp://temp и php://memory)


Различные классы и интерфейсы

Содержание

  • ArrayObject
  • SplObserver
  • SplSubject

Классы и интерфейсы, не входящие в другие категории SPL.


Класс ArrayObject

(PHP 5, PHP 7)

Введение

Данный класс позволяет объектам работать как массивы.

Обзор классов

ArrayObject implements IteratorAggregate , ArrayAccess , Serializable , Countable {
/* Константы */
const integer STD_PROP_LIST = 1 ;
const integer ARRAY_AS_PROPS = 2 ;
/* Методы */
public __construct ([ mixed $input = array() [, int $flags = 0 [, string $iterator_class = "ArrayIterator" ]]] )
public append ( mixed $value ) : void
public asort ( void ) : void
public count ( void ) : int
public exchangeArray ( mixed $input ) : array
public getArrayCopy ( void ) : array
public getFlags ( void ) : int
public getIterator ( void ) : ArrayIterator
public getIteratorClass ( void ) : string
public ksort ( void ) : void
public natcasesort ( void ) : void
public natsort ( void ) : void
public offsetExists ( mixed $index ) : bool
public offsetGet ( mixed $index ) : mixed
public offsetSet ( mixed $index , mixed $newval ) : void
public offsetUnset ( mixed $index ) : void
public serialize ( void ) : string
public setFlags ( int $flags ) : void
public setIteratorClass ( string $iterator_class ) : void
public uasort ( callable $cmp_function ) : void
public uksort ( callable $cmp_function ) : void
public unserialize ( string $serialized ) : void
}

Предопределенные константы

Опции ArrayObject

ArrayObject::STD_PROP_LIST

Свойства объекта получают стандартное поведение при доступе в виде списка (var_dump, foreach и т.д.).

ArrayObject::ARRAY_AS_PROPS

Записи могут быть доступны как свойства (для чтения и записи).

Список изменений

Версия | Описание
5.3.0 | Реализует Serializable.

Содержание

  • ArrayObject::append — Добавляет значение в конец массива
  • ArrayObject::asort — Сортировать записи по значению
  • ArrayObject::__construct — Создает новый объект массива
  • ArrayObject::count — Получить количество общедоступных свойств ArrayObject
  • ArrayObject::exchangeArray — Заменить массив на другой
  • ArrayObject::getArrayCopy — Создаёт копию ArrayObject
  • ArrayObject::getFlags — Получает флаги поведения
  • ArrayObject::getIterator — Создать новый итератор из экземпляра ArrayObject
  • ArrayObject::getIteratorClass — Получает имя класса итератора для ArrayObject
  • ArrayObject::ksort — Сортировать записи по ключам
  • ArrayObject::natcasesort — Сортировать массив, используя регистронезависимый алгоритм "natural order"
  • ArrayObject::natsort — Сортировать массив, используя алгоритм "natural order"
  • ArrayObject::offsetExists — Возвращает, существует ли указанный индекс
  • ArrayObject::offsetGet — Возвращает значение по указанному индексу
  • ArrayObject::offsetSet — Устанавливает новое значение по указанному индексу
  • ArrayObject::offsetUnset — Удаляет значение по указанному индексу
  • ArrayObject::serialize — Сериализовать ArrayObject
  • ArrayObject::setFlags — Устанавливает флаги поведения
  • ArrayObject::setIteratorClass — Устанавливает имя класса итератора для ArrayObject
  • ArrayObject::uasort — Сортировать записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение
  • ArrayObject::uksort — Сортировать массив по ключам, используя пользовательскую функцию для сравнения
  • ArrayObject::unserialize — Десериализовать ArrayObject


Добавляет значение в конец массива

  • « ArrayObject
  • ArrayObject::asort »
  • PHP Manual
  • ArrayObject
  • Добавляет значение в конец массива

ArrayObject::append

(PHP 5, PHP 7)

ArrayObject::append — Добавляет значение в конец массива

Описание

public ArrayObject::append ( mixed $value ) : void

Добавляет новое значение в конец массива.

Замечание:

Этот метод не может быть вызван, если ArrayObject был создан из объекта. В этом случае используйте вместо него ArrayObject::offsetSet().

Список параметров

value

Значение, которое должно быть добавлено.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::append()

<?php
$arrayobj = new ArrayObject(array('first','second','third'));
$arrayobj->append('fourth');
$arrayobj->append(array('five', 'six'));
var_dump($arrayobj);
?>

Результат выполнения данного примера:

object(ArrayObject)#1 (5) {
  [0]=>
  string(5) "first"
  [1]=>
  string(6) "second"
  [2]=>
  string(5) "third"
  [3]=>
  string(6) "fourth"
  [4]=>
  array(2) {
    [0]=>
    string(4) "five"
    [1]=>
    string(3) "six"
  }
}

Смотрите также

  • ArrayObject::offsetSet() - Устанавливает новое значение по указанному индексу


Сортировать записи по значению

  • « ArrayObject::append
  • ArrayObject::__construct »
  • PHP Manual
  • ArrayObject
  • Сортировать записи по значению

ArrayObject::asort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::asort — Сортировать записи по значению

Описание

public ArrayObject::asort ( void ) : void

Сортирует элементы массива таким образом, что сохраняются отношения между ключами и значениями. Это используется в основном при сортировке ассоциативных массивов, где важно сохранить отношение ключ => значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::asort()

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
$fruitArrayObject = new ArrayObject($fruits);
$fruitArrayObject->asort();

foreach ($fruitArrayObject as $key => $val) {
    echo "$key = $val\n";
}
?>

Результат выполнения данного примера:

c = apple
b = banana
d = lemon
a = orange

Названия фруктов были отсортированы в алфавитном порядке, и ключ, связанный с каждой записью, был сохранен.

Смотрите также

  • ArrayObject::ksort() - Сортировать записи по ключам
  • ArrayObject::natsort() - Сортировать массив, используя алгоритм "natural order"
  • ArrayObject::natcasesort() - Сортировать массив, используя регистронезависимый алгоритм "natural order"
  • ArrayObject::uasort() - Сортировать записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение
  • ArrayObject::uksort() - Сортировать массив по ключам, используя пользовательскую функцию для сравнения


Создает новый объект массива

  • « ArrayObject::asort
  • ArrayObject::count »
  • PHP Manual
  • ArrayObject
  • Создает новый объект массива

ArrayObject::__construct

(PHP 5, PHP 7)

ArrayObject::__construct — Создает новый объект массива

Описание

public ArrayObject::__construct ([ mixed $input = array() [, int $flags = 0 [, string $iterator_class = "ArrayIterator" ]]] )

Создает новый объект (object) массива.

Список параметров

input

Параметр input принимает значение типа array или Object.

flags

Флаги для управления поведением объекта ArrayObject. См. ArrayObject::setFlags().

iterator_class

Указывает класс, который будет использоваться в качестве итератора объекта ArrayObject.

Возвращаемые значения

Возвращает ArrayObject при успешном выполнении.

Ошибки

Выбрасывает InvalidArgumentException, когда:

  • input не является массивом или объектом
  • flags не является целым числом
  • iterator_class не является объектом, который реализует Iterator

Примеры

Пример #1 Пример использования ArrayObject::__construct()

<?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::setflags() - Устанавливает флаги поведения


Получить количество общедоступных свойств ArrayObject

  • « ArrayObject::__construct
  • ArrayObject::exchangeArray »
  • PHP Manual
  • ArrayObject
  • Получить количество общедоступных свойств ArrayObject

ArrayObject::count

(PHP 5, PHP 7)

ArrayObject::count — Получить количество общедоступных свойств ArrayObject

Описание

public ArrayObject::count ( void ) : int

Получить количество общедоступных свойств ArrayObject.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество общедоступных свойств ArrayObject.

Замечание:

Если ArrayObject создается из массива, то все свойства являются общедоступными.

Примеры

Пример #1 Пример использования ArrayObject::count()

<?php
class Example {
    public $public = 'prop:public';
    private $prv   = 'prop:private';
    protected $prt = 'prop:protected';
}

$arrayobj = new ArrayObject(new Example());
var_dump($arrayobj->count());

$arrayobj = new ArrayObject(array('first','second','third'));
var_dump($arrayobj->count());
?>

Результат выполнения данного примера:

int(1)
int(3)


Заменить массив на другой

  • « ArrayObject::count
  • ArrayObject::getArrayCopy »
  • PHP Manual
  • ArrayObject
  • Заменить массив на другой

ArrayObject::exchangeArray

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::exchangeArray — Заменить массив на другой

Описание

public ArrayObject::exchangeArray ( mixed $input ) : array

Заменяет текущий массив (array) на другой массив (array) или объект (object).

Список параметров

input

Новый массив (array) или объект (object) для замены текущего массива.

Возвращаемые значения

Возвращает старый массив (array).

Примеры

Пример #1 Пример использования ArrayObject::exchangeArray()

<?php
// Массив с количеством фруктов
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);
// Массив мест в Европе
$locations = array('Amsterdam', 'Paris', 'London');

$fruitsArrayObject = new ArrayObject($fruits);

// Сейчас заменим фрукты на места
$old = $fruitsArrayObject->exchangeArray($locations);
print_r($old);
print_r($fruitsArrayObject);

?>

Результат выполнения данного примера:

Array
(
    [lemons] => 1
    [oranges] => 4
    [bananas] => 5
    [apples] => 10
)
ArrayObject Object
(
    [0] => Amsterdam
    [1] => Paris
    [2] => London
)


Создаёт копию ArrayObject

  • « ArrayObject::exchangeArray
  • ArrayObject::getFlags »
  • PHP Manual
  • ArrayObject
  • Создаёт копию ArrayObject

ArrayObject::getArrayCopy

(PHP 5, PHP 7)

ArrayObject::getArrayCopy — Создаёт копию ArrayObject

Описание

public ArrayObject::getArrayCopy ( void ) : array

Экспортирует ArrayObject в массив.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает копию массива. Если ArrayObject ссылается на объект, то будет возвращен массив общедоступных свойств данного объекта.

Примеры

Пример #1 Пример использования ArrayObject::getArrayCopy()

<?php
// Массив с количеством фруктов
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);
$fruitsArrayObject['pears'] = 4;

// Создать копию массива
$copy = $fruitsArrayObject->getArrayCopy();
print_r($copy);

?>

Результат выполнения данного примера:

Array
(
    [lemons] => 1
    [oranges] => 4
    [bananas] => 5
    [apples] => 10
    [pears] => 4
)


Получает флаги поведения

  • « ArrayObject::getArrayCopy
  • ArrayObject::getIterator »
  • PHP Manual
  • ArrayObject
  • Получает флаги поведения

ArrayObject::getFlags

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::getFlags — Получает флаги поведения

Описание

public ArrayObject::getFlags ( void ) : int

Получает флаги поведения ArrayObject. Смотрите метод ArrayObject::setFlags для просмотра списка возможных флагов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает флаги поведения ArrayObject.

Примеры

Пример #1 Пример использования ArrayObject::getFlags()

<?php
// Массив с количеством фруктов
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Получение текущих флагов
$flags = $fruitsArrayObject->getFlags();
var_dump($flags);

// Установка новых флагов
$fruitsArrayObject->setFlags(ArrayObject::ARRAY_AS_PROPS);

// Получение новых флагов
$flags = $fruitsArrayObject->getFlags();
var_dump($flags);
?>

Результат выполнения данного примера:

int(0)
int(2)

Смотрите также

  • Метод ArrayObject::setFlags() - Устанавливает флаги поведения


Создать новый итератор из экземпляра ArrayObject

  • « ArrayObject::getFlags
  • ArrayObject::getIteratorClass »
  • PHP Manual
  • ArrayObject
  • Создать новый итератор из экземпляра ArrayObject

ArrayObject::getIterator

(PHP 5, PHP 7)

ArrayObject::getIterator — Создать новый итератор из экземпляра ArrayObject

Описание

public ArrayObject::getIterator ( void ) : ArrayIterator

Создать новый итератор из экземпляра ArrayObject.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Итератор из ArrayObject.

Примеры

Пример #1 Пример использования ArrayObject::getIterator()

<?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();
}
?>

Результат выполнения данного примера:

1 => one
2 => two
3 => three


Получает имя класса итератора для ArrayObject

  • « ArrayObject::getIterator
  • ArrayObject::ksort »
  • PHP Manual
  • ArrayObject
  • Получает имя класса итератора для ArrayObject

ArrayObject::getIteratorClass

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::getIteratorClass — Получает имя класса итератора для ArrayObject

Описание

public ArrayObject::getIteratorClass ( void ) : string

Получает имя класса итератора массива, который используется ArrayObject::getIterator().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя класса итератора массива, который используется для итерации по этому объекту.

Примеры

Пример #1 Пример использования ArrayObject::getIteratorClass()

<?php
// Пользовательский ArrayIterator (включает в себя ArrayIterator)
class MyArrayIterator extends ArrayIterator {
    // пользовательская реализация
}

// Массив доступных фруктов
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Получить текущее имя класса итератора
$className = $fruitsArrayObject->getIteratorClass();
var_dump($className);

// Установить новое имя класса итератора
$fruitsArrayObject->setIteratorClass('MyArrayIterator');

// Получить новое имя класса итератора
$className = $fruitsArrayObject->getIteratorClass();
var_dump($className);
?>

Результат выполнения данного примера:

string(13) "ArrayIterator"
string(15) "MyArrayIterator"

Смотрите также

  • ArrayObject::setIteratorClass


Сортировать записи по ключам

  • « ArrayObject::getIteratorClass
  • ArrayObject::natcasesort »
  • PHP Manual
  • ArrayObject
  • Сортировать записи по ключам

ArrayObject::ksort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::ksort — Сортировать записи по ключам

Описание

public ArrayObject::ksort ( void ) : void

Сортирует массив по ключам, сохраняя отношения между ключами и значениями. Это полезно в основном для работы с ассоциативными массивами.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::ksort()

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
$fruitArrayObject = new ArrayObject($fruits);
$fruitArrayObject->ksort();

foreach ($fruitArrayObject as $key => $val) {
    echo "$key = $val\n";
}
 ?>

Результат выполнения данного примера:

a = orange
b = banana
c = apple
d = lemon

Смотрите также

  • ArrayObject::asort() - Сортировать записи по значению
  • ArrayObject::natsort() - Сортировать массив, используя алгоритм "natural order"
  • ArrayObject::natcasesort() - Сортировать массив, используя регистронезависимый алгоритм "natural order"
  • ArrayObject::uasort() - Сортировать записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение
  • ArrayObject::uksort() - Сортировать массив по ключам, используя пользовательскую функцию для сравнения


Сортировать массив, используя регистронезависимый алгоритм "natural order"

  • « ArrayObject::ksort
  • ArrayObject::natsort »
  • PHP Manual
  • ArrayObject
  • Сортировать массив, используя регистронезависимый алгоритм "natural order"

ArrayObject::natcasesort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::natcasesort — Сортировать массив, используя регистронезависимый алгоритм "natural order"

Описание

public ArrayObject::natcasesort ( void ) : void

Этот метод является регистронезависимой версией ArrayObject::natsort.

Этот метод реализует алгоритм сортировки, при котором порядок буквенно-цифровых строк будет привычным для человека, сохраняя при этом связь ключ/значение. Такой алгоритм называется "естественный порядок" (natural ordering).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::natcasesort()

<?php
$array = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png');

$arr1 = new ArrayObject($array);
$arr2 = clone $arr1;

$arr1->asort();
echo "Стандартная сортировка\n";
print_r($arr1);

$arr2->natcasesort();
echo "\nСортировка в естественном порядке (без учета регистра)\n";
print_r($arr2);
?>

Результат выполнения данного примера:

Стандартная сортировка
ArrayObject Object
(
    [0] => IMG0.png
    [5] => IMG3.png
    [4] => img1.png
    [2] => img10.png
    [1] => img12.png
    [3] => img2.png
)

Сортировка в естественном порядке (без учета регистра)
ArrayObject Object
(
    [0] => IMG0.png
    [4] => img1.png
    [3] => img2.png
    [5] => IMG3.png
    [2] => img10.png
    [1] => img12.png
)

Для более подробной информации смотрите страницу Мартина Пула (Martin Pool) » Natural Order String Comparison.

Смотрите также

  • ArrayObject::asort() - Сортировать записи по значению
  • ArrayObject::ksort() - Сортировать записи по ключам
  • ArrayObject::natsort() - Сортировать массив, используя алгоритм "natural order"
  • ArrayObject::uasort() - Сортировать записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение
  • ArrayObject::uksort() - Сортировать массив по ключам, используя пользовательскую функцию для сравнения


Сортировать массив, используя алгоритм "natural order"

  • « ArrayObject::natcasesort
  • ArrayObject::offsetExists »
  • PHP Manual
  • ArrayObject
  • Сортировать массив, используя алгоритм "natural order"

ArrayObject::natsort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::natsort — Сортировать массив, используя алгоритм "natural order"

Описание

public ArrayObject::natsort ( void ) : void

Этот метод реализует алгоритм сортировки, при котором порядок буквенно-цифровых строк будет привычным для человека, сохраняя при этом связь ключ/значение. Такой алгоритм называется "естественный порядок" (natural ordering). Пример разницы между этим алгоритмом и обычными алгоритмами сортировки, (используются в ArrayObject::asort) можно увидеть в примере ниже.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::natsort()

<?php
$array = array("img12.png", "img10.png", "img2.png", "img1.png");

$arr1 = new ArrayObject($array);
$arr2 = clone $arr1;

$arr1->asort();
echo "Стандартная сортировка\n";
print_r($arr1);

$arr2->natsort();
echo "\nСортировка в естественном порядке\n";
print_r($arr2);
?>

Результат выполнения данного примера:

Стандартная сортировка
ArrayObject Object
(
    [3] => img1.png
    [1] => img10.png
    [0] => img12.png
    [2] => img2.png
)

Сортировка в естественном порядке
ArrayObject Object
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

Для более подробной информации смотрите страницу Мартина Пула (Martin Pool) » Natural Order String Comparison.

Смотрите также

  • ArrayObject::asort() - Сортировать записи по значению
  • ArrayObject::ksort() - Сортировать записи по ключам
  • ArrayObject::natcasesort() - Сортировать массив, используя регистронезависимый алгоритм "natural order"
  • ArrayObject::uasort() - Сортировать записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение
  • ArrayObject::uksort() - Сортировать массив по ключам, используя пользовательскую функцию для сравнения


Возвращает, существует ли указанный индекс

  • « ArrayObject::natsort
  • ArrayObject::offsetGet »
  • PHP Manual
  • ArrayObject
  • Возвращает, существует ли указанный индекс

ArrayObject::offsetExists

(PHP 5, PHP 7)

ArrayObject::offsetExists — Возвращает, существует ли указанный индекс

Описание

public ArrayObject::offsetExists ( mixed $index ) : bool

Список параметров

index

Индекс, который должен быть проверен.

Возвращаемые значения

TRUE, если указанный индекс существует, в противном случае FALSE

Примеры

Пример #1 Пример использования ArrayObject::offsetExists()

<?php
$arrayobj = new ArrayObject(array('zero', 'one', 'example'=>'e.g.'));
var_dump($arrayobj->offsetExists(1));
var_dump($arrayobj->offsetExists('example'));
var_dump($arrayobj->offsetExists('notfound'));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)


Возвращает значение по указанному индексу

  • « ArrayObject::offsetExists
  • ArrayObject::offsetSet »
  • PHP Manual
  • ArrayObject
  • Возвращает значение по указанному индексу

ArrayObject::offsetGet

(PHP 5, PHP 7)

ArrayObject::offsetGet — Возвращает значение по указанному индексу

Описание

public ArrayObject::offsetGet ( mixed $index ) : mixed

Список параметров

index

Индекс, ссылающийся на значение.

Возвращаемые значения

Значение по указанному индексу или NULL.

Ошибки

Вызывает ошибку уровня E_NOTICE, если указанный индекс не существует.

Примеры

Пример #1 Пример использования ArrayObject::offsetGet()

<?php
$arrayobj = new ArrayObject(array('zero', 7, 'example'=>'e.g.'));
var_dump($arrayobj->offsetGet(1));
var_dump($arrayobj->offsetGet('example'));
var_dump($arrayobj->offsetExists('notfound'));
?>

Результат выполнения данного примера:

int(7)
string(4) "e.g."
bool(false)


Устанавливает новое значение по указанному индексу

  • « ArrayObject::offsetGet
  • ArrayObject::offsetUnset »
  • PHP Manual
  • ArrayObject
  • Устанавливает новое значение по указанному индексу

ArrayObject::offsetSet

(PHP 5, PHP 7)

ArrayObject::offsetSet — Устанавливает новое значение по указанному индексу

Описание

public ArrayObject::offsetSet ( mixed $index , mixed $newval ) : void

Устанавливает новое значение по указанному индексу.

Список параметров

index

Индекс для установки значения.

newval

Новое значение для index.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::offsetSet()

<?php
class Example {
    public $property = 'prop:public';
}
$arrayobj = new ArrayObject(new Example());
$arrayobj->offsetSet(4, 'four');
$arrayobj->offsetSet('group', array('g1', 'g2'));
var_dump($arrayobj);

$arrayobj = new ArrayObject(array('zero','one'));
$arrayobj->offsetSet(null, 'last');
var_dump($arrayobj);
?>

Результат выполнения данного примера:

object(ArrayObject)#1 (3) {
  ["property"]=>
  string(11) "prop:public"
  [4]=>
  string(4) "four"
  ["group"]=>
  array(2) {
    [0]=>
    string(2) "g1"
    [1]=>
    string(2) "g2"
  }
}
object(ArrayObject)#3 (3) {
  [0]=>
  string(4) "zero"
  [1]=>
  string(3) "one"
  [2]=>
  string(4) "last"
}

Смотрите также

  • ArrayObject::append() - Добавляет значение в конец массива


Удаляет значение по указанному индексу

  • « ArrayObject::offsetSet
  • ArrayObject::serialize »
  • PHP Manual
  • ArrayObject
  • Удаляет значение по указанному индексу

ArrayObject::offsetUnset

(PHP 5, PHP 7)

ArrayObject::offsetUnset — Удаляет значение по указанному индексу

Описание

public ArrayObject::offsetUnset ( mixed $index ) : void

Удаляет значение по указанному индексу.

Список параметров

index

Индекс, значение которого необходимо удалить.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::offsetUnset()

<?php
$arrayobj = new ArrayObject(array(0=>'zero',2=>'two'));
$arrayobj->offsetUnset(2);
var_dump($arrayobj);
?>

Результат выполнения данного примера:

object(ArrayObject)#1 (1) {
  [0]=>
  string(4) "zero"
}


Сериализовать ArrayObject

  • « ArrayObject::offsetUnset
  • ArrayObject::setFlags »
  • PHP Manual
  • ArrayObject
  • Сериализовать ArrayObject

ArrayObject::serialize

(PHP 5 >= 5.3.0, PHP 7)

ArrayObject::serialize — Сериализовать ArrayObject

Описание

public ArrayObject::serialize ( void ) : string

Сериализует ArrayObject.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сериализованное представление ArrayObject.

Примеры

Пример #1 Пример использования ArrayObject::serialize()

<?php
$o = new ArrayObject();

$s1 = serialize($o);
$s2 = $o->serialize();

var_dump($s1);
var_dump($s2);
?>

Результат выполнения данного примера:

string(45) "C:11:"ArrayObject":21:{x:i:0;a:0:{};m:a:0:{}}"
string(21) "x:i:0;a:0:{};m:a:0:{}"

Смотрите также

  • ArrayObject::unserialize() - Десериализовать ArrayObject
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Устанавливает флаги поведения

  • « ArrayObject::serialize
  • ArrayObject::setIteratorClass »
  • PHP Manual
  • ArrayObject
  • Устанавливает флаги поведения

ArrayObject::setFlags

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::setFlags — Устанавливает флаги поведения

Описание

public ArrayObject::setFlags ( int $flags ) : void

Устанавливает флаги, которые влияют на поведение ArrayObject.

Список параметров

flags

Новое поведение ArrayObject. Допускается либо битовая маска, либо именованные константы. Использование именованных констант настоятельно рекомендуется для обеспечения совместимости с будущими версиями.

Доступные флаги поведения перечислены ниже. Фактические значения этих флагов описаны в разделе предопределенные константы.

Флаги поведения ArrayObject
Значение | Константа
1 | ArrayObject::STD_PROP_LIST
2 | ArrayObject::ARRAY_AS_PROPS

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::setFlags()

<?php
// Массив с доступными фруктами
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Попытка использовать ключ массива как свойство
var_dump($fruitsArrayObject->lemons);
// Установка флага, позволяющего использовать ключи массива как свойства ArrayObject
$fruitsArrayObject->setFlags(ArrayObject::ARRAY_AS_PROPS);
// Новая попытка
var_dump($fruitsArrayObject->lemons);
?>

Результат выполнения данного примера:

NULL
int(1)


Устанавливает имя класса итератора для ArrayObject

  • « ArrayObject::setFlags
  • ArrayObject::uasort »
  • PHP Manual
  • ArrayObject
  • Устанавливает имя класса итератора для ArrayObject

ArrayObject::setIteratorClass

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::setIteratorClass — Устанавливает имя класса итератора для ArrayObject

Описание

public ArrayObject::setIteratorClass ( string $iterator_class ) : void

Устанавливает имя класса итератора массива, которое используется ArrayObject::getIterator().

Список параметров

iterator_class

Имя класса итератора массива, который будет использоваться при итерации по этому объекту.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::setIteratorClass()

<?php
// Пользовательский ArrayIterator (включает в себя ArrayIterator)
class MyArrayIterator extends ArrayIterator {
    // пользовательская реализация
}

// Массив с количеством фруктов
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Устанавливает новое имя класса итератора
$fruitsArrayObject->setIteratorClass('MyArrayIterator');
print_r($fruitsArrayObject->getIterator());

?>

Результат выполнения данного примера:

MyArrayIterator Object
(
    [lemons] => 1
    [oranges] => 4
    [bananas] => 5
    [apples] => 10
)


Сортировать записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение

  • « ArrayObject::setIteratorClass
  • ArrayObject::uksort »
  • PHP Manual
  • ArrayObject
  • Сортировать записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение

ArrayObject::uasort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::uasort — Сортировать записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение

Описание

public ArrayObject::uasort ( callable $cmp_function ) : void

Эта функция сортирует значения с сохранением ключей, используя пользовательскую функцию сравнения.

Функция используется в основном при сортировке ассоциативных массивов, в которых важен актуальный порядок элементов.

Список параметров

cmp_function

Функция cmp_function должна принимать два параметра, которым будут присвоены значения пары элементов. Функция сравнения должна возвращать целое число меньшее, равное или большее нуля, если первый параметр меньше, равен или больше второго параметра.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::uasort()

<?php
// Функция сравнения
function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

// Массив для сортировки
$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);
$arrayObject = new ArrayObject($array);
print_r($arrayObject);

// Сортировка и вывод массива
$arrayObject->uasort('cmp');
print_r($arrayObject);
?>

Результат выполнения данного примера:

Array
(
    [a] => 4
    [b] => 8
    [c] => -1
    [d] => -9
    [e] => 2
    [f] => 5
    [g] => 3
    [h] => -4
)
Array
(
    [d] => -9
    [h] => -4
    [c] => -1
    [e] => 2
    [g] => 3
    [a] => 4
    [f] => 5
    [b] => 8
)

Смотрите также

  • ArrayObject::asort() - Сортировать записи по значению
  • ArrayObject::ksort() - Сортировать записи по ключам
  • ArrayObject::natsort() - Сортировать массив, используя алгоритм "natural order"
  • ArrayObject::natcasesort() - Сортировать массив, используя регистронезависимый алгоритм "natural order"
  • ArrayObject::uksort() - Сортировать массив по ключам, используя пользовательскую функцию для сравнения


Сортировать массив по ключам, используя пользовательскую функцию для сравнения

  • « ArrayObject::uasort
  • ArrayObject::unserialize »
  • PHP Manual
  • ArrayObject
  • Сортировать массив по ключам, используя пользовательскую функцию для сравнения

ArrayObject::uksort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::uksort — Сортировать массив по ключам, используя пользовательскую функцию для сравнения

Описание

public ArrayObject::uksort ( callable $cmp_function ) : void

Эта функция сортирует ключи записей, используя предоставленную пользователем функцию. Отношения между ключами и элементами сохраняются.

Список параметров

cmp_function

Callback-функция, используемая для сравнения.

Функция cmp_function должна принимать два параметра, которым будут присвоены значения пары элементов. Функция сравнения должна возвращать целое число меньшее, равное или большее нуля, если первый параметр меньше, равен или больше второго параметра.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::uksort()

<?php
function cmp($a, $b) {
    $a = preg_replace('@^(a|an|the) @', '', $a);
    $b = preg_replace('@^(a|an|the) @', '', $b);
    return strcasecmp($a, $b);
}

$array = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);
$arrayObject = new ArrayObject($array);
$arrayObject->uksort('cmp');

foreach ($arrayObject as $key => $value) {
    echo "$key: $value\n";
}
?>

Результат выполнения данного примера:

an apple: 3
a banana: 4
the Earth: 2
John: 1

Смотрите также

  • ArrayObject::asort() - Сортировать записи по значению
  • ArrayObject::ksort() - Сортировать записи по ключам
  • ArrayObject::natsort() - Сортировать массив, используя алгоритм "natural order"
  • ArrayObject::natcasesort() - Сортировать массив, используя регистронезависимый алгоритм "natural order"
  • ArrayObject::uasort() - Сортировать записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение


Десериализовать ArrayObject

  • « ArrayObject::uksort
  • SplObserver »
  • PHP Manual
  • ArrayObject
  • Десериализовать ArrayObject

ArrayObject::unserialize

(PHP 5 >= 5.3.0, PHP 7)

ArrayObject::unserialize — Десериализовать ArrayObject

Описание

public ArrayObject::unserialize ( string $serialized ) : void

Десериализует сериализованный объект ArrayObject.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

serialized

Сериализованный объект ArrayObject.

Возвращаемые значения

Десериализированный ArrayObject.

Смотрите также

  • ArrayIterator::serialize() - Сериализует массив
  • unserialize() - Создает PHP-значение из хранимого представления
  • Сериализация объектов


Интерфейс SplObserver

(PHP 5 >= 5.1.0, PHP 7)

Введение

Интерфейс SplObserver используется совместно с SplSubject для реализации шаблона проектирования Наблюдатель (Observer).

Обзор интерфейсов

SplObserver {
/* Методы */
abstract public update ( SplSubject $subject ) : void
}

Содержание

  • SplObserver::update — Получить обновление от субъекта


Получить обновление от субъекта

  • « SplObserver
  • SplSubject »
  • PHP Manual
  • SplObserver
  • Получить обновление от субъекта

SplObserver::update

(PHP 5 >= 5.1.0, PHP 7)

SplObserver::update — Получить обновление от субъекта

Описание

abstract public SplObserver::update ( SplSubject $subject ) : void

Этот метод вызывается, когда любой SplSubject, к которому присоединен наблюдатель, вызывает SplSubject::notify().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

subject

SplSubject, уведомляющий наблюдателя об обновлении.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Интерфейс SplSubject

(PHP 5 >= 5.1.0, PHP 7)

Введение

Интерфейс SplSubject используется совместно с SplObserver для реализации шаблона проектирования Наблюдатель (Observer).

Обзор интерфейсов

SplSubject {
/* Методы */
abstract public attach ( SplObserver $observer ) : void
abstract public detach ( SplObserver $observer ) : void
abstract public notify ( void ) : void
}

Содержание

  • SplSubject::attach — Присоединить наблюдателя (объект класса SplObserver)
  • SplSubject::detach — Отсоединить наблюдателя
  • SplSubject::notify — Уведомить наблюдателя


Присоединить наблюдателя (объект класса SplObserver)

  • « SplSubject
  • SplSubject::detach »
  • PHP Manual
  • SplSubject
  • Присоединить наблюдателя (объект класса SplObserver)

SplSubject::attach

(PHP 5 >= 5.1.0, PHP 7)

SplSubject::attach — Присоединить наблюдателя (объект класса SplObserver)

Описание

abstract public SplSubject::attach ( SplObserver $observer ) : void

Присоединяет SplObserver, чтобы он мог получать уведомления об обновлениях.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

observer

Объект класса SplObserver для присоединения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Отсоединить наблюдателя

  • « SplSubject::attach
  • SplSubject::notify »
  • PHP Manual
  • SplSubject
  • Отсоединить наблюдателя

SplSubject::detach

(PHP 5 >= 5.1.0, PHP 7)

SplSubject::detach — Отсоединить наблюдателя

Описание

abstract public SplSubject::detach ( SplObserver $observer ) : void

Отсоединяет наблюдателя от субъекта, чтобы больше не уведомлять его об обновлениях.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

observer

Объект класса SplObserver для отсоединения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Уведомить наблюдателя

  • « SplSubject::detach
  • Типы SPL »
  • PHP Manual
  • SplSubject
  • Уведомить наблюдателя

SplSubject::notify

(PHP 5 >= 5.1.0, PHP 7)

SplSubject::notify — Уведомить наблюдателя

Описание

abstract public SplSubject::notify ( void ) : void

Посылает уведомление всем присоединенным наблюдателям.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Обработка типов SPL Type

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • SplType — Класс SplType
    • SplType::__construct — Создать новое значение некоторого типа
  • SplInt — Класс SplInt
  • SplFloat — Класс SplFloat
  • SplEnum — Класс SplEnum
    • SplEnum::getConstList — Возвратить все константы (возможные значения) в виде массива
  • SplBool — Класс SplBool
  • SplString — Класс SplString


Введение

Это расширение стремится помогать людям, делающим PHP более сильным типизированным языком и может быть хорошей альтернативой скалярному выводу подсказок типа. Это обеспечивается различными классами обработки типа, таких как integer, float, bool, enum and string

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/SPL_Types.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Настройка во время выполнения
  • SplType »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Класс SplType

(PECL spl_types >= 0.1.0)

Введение

Родительский класс для всех типов SPL.

Обзор классов

abstract SplType {
/* Константы */
const NULL __default = NULL ;
/* Методы */
__construct ([ mixed $initial_value [, bool $strict ]] )
}

Предопределенные константы

SplType::__default

Содержание

  • SplType::__construct — Создать новое значение некоторого типа


Создать новое значение некоторого типа

  • « SplType
  • SplInt »
  • PHP Manual
  • SplType
  • Создать новое значение некоторого типа

SplType::__construct

(PECL spl_types >= 0.1.0)

SplType::__construct — Создать новое значение некоторого типа

Описание

SplType::__construct ([ mixed $initial_value [, bool $strict ]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

initial_value

Тип и значение по умолчания зависят от расширения класса.

strict

Установить ли объектную строгость.

Ошибки

Выбрасывает UnexpectedValueException если задан несовместимый тип.


Класс SplInt

(PECL spl_types >= 0.1.0)

Введение

Класс SplInt используется для обеспечения сильной типизации целочисленного типа.

Обзор классов

SplInt extends SplType {
/* Константы */
const integer __default = 0 ;
/* Наследуемые методы */
SplType::__construct ([ mixed $initial_value [, bool $strict ]] )
}

Предопределенные константы

SplInt::__default

Примеры

Пример #1 Пример использования SplInt

<?php
$int = new SplInt(94);

try {
    $int = 'Try to cast a string value for fun';
} catch (UnexpectedValueException $uve) {
    echo $uve->getMessage() . PHP_EOL;
}

echo $int . PHP_EOL;
?>

Результат выполнения данного примера:

Value not an integer
94


Класс SplFloat

(PECL spl_types >= 0.1.0)

Введение

Класс SplFloat используется для обеспечения сильной типизации типа числа с плавающей запятой.

Обзор классов

SplFloat extends SplType {
/* Константы */
const float __default = 0 ;
/* Наследуемые методы */
SplType::__construct ([ mixed $initial_value [, bool $strict ]] )
}

Предопределенные константы

SplFloat::__default

Примеры

Пример #1 Пример использования SplFloat

<?php
$float = new SplFloat(3.154);
$newFloat = new SplFloat(3);

try {
    $float = 'Try to cast a string value for fun';
} catch (UnexpectedValueException $uve) {
    echo $e->getMessage() . PHP_EOL;
}

echo $float . PHP_EOL;
echo $newFloat . PHP_EOL;
?>

Результат выполнения данного примера:

Value not a float
3.154
3


Класс SplEnum

(PECL spl_types >= 0.1.0)

Введение

SplEnum дает возможность эмулировать и создать объекты перечисления непосредственно в PHP.

Обзор классов

SplEnum extends SplType {
/* Константы */
const NULL __default = NULL ;
/* Методы */
public getConstList ([ bool $include_default = FALSE ] ) : array
/* Наследуемые методы */
SplType::__construct ([ mixed $initial_value [, bool $strict ]] )
}

Предопределенные константы

SplEnum::__default

Примеры

Пример #1 Пример использования SplEnum

<?php
class Month extends SplEnum {
    const __default = self::January;

    const January = 1;
    const February = 2;
    const March = 3;
    const April = 4;
    const May = 5;
    const June = 6;
    const July = 7;
    const August = 8;
    const September = 9;
    const October = 10;
    const November = 11;
    const December = 12;
}

echo new Month(Month::June) . PHP_EOL;

try {
    new Month(13);
} catch (UnexpectedValueException $uve) {
    echo $uve->getMessage() . PHP_EOL;
}
?>

Результат выполнения данного примера:

6
Value not a const in enum Month

Содержание

  • SplEnum::getConstList — Возвратить все константы (возможные значения) в виде массива


Возвратить все константы (возможные значения) в виде массива

  • « SplEnum
  • SplBool »
  • PHP Manual
  • SplEnum
  • Возвратить все константы (возможные значения) в виде массива

SplEnum::getConstList

(PECL spl_types >= 0.1.0)

SplEnum::getConstList — Возвратить все константы (возможные значения) в виде массива

Описание

public SplEnum::getConstList ([ bool $include_default = FALSE ] ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

include_default

Включать ли свойство __default.

Возвращаемые значения

Примеры

Пример #1 Пример использования SplEnum::getConstList()

<?php
$bool = new SplBool;
var_dump($bool->getConstList(true));
?>

Результат выполнения данного примера:

array(3) {
  ["__default"]=>
  bool(false)
  ["false"]=>
  bool(false)
  ["true"]=>
  bool(true)
}


Класс SplBool

(PECL spl_types >= 0.1.0)

Введение

Класс SplBool используется для обеспечения сильной типизации булева типа .

Обзор классов

SplBool extends SplEnum {
/* Константы */
const boolean __default = FALSE ;
const boolean false = FALSE ;
const boolean true = TRUE ;
/* Наследуемые методы */
public SplEnum::getConstList ([ bool $include_default = FALSE ] ) : array
}

Предопределенные константы

SplBool::__default

SplBool::false

SplBool::true

Примеры

Пример #1 Пример использования SplBool

<?php
$true = new SplBool(true);
if ($true) {
    echo "TRUE\n";
}

$false = new SplBool;
if ($false) {
    echo "FALSE\n";
}
?>

Результат выполнения данного примера:

TRUE


Класс SplString

(PECL spl_types >= 0.1.0)

Введение

Класс SplString используется для обеспечения сильной типизации строкового типа.

Обзор классов

SplString extends SplType {
/* Константы */
const string __default = '' ;
/* Наследуемые методы */
SplType::__construct ([ mixed $initial_value [, bool $strict ]] )
}

Предопределенные константы

SplString::__default

Примеры

Пример #1 Пример использования SplString

<?php
$string = new SplString("Testing");

try {
    $string = array();
} catch (UnexpectedValueException $uve) {
    echo $uve->getMessage() . PHP_EOL;
}

var_dump($string);
echo $string; // Outputs "Testing"
?>

Результат выполнения данного примера:

Value not a string
object(SplString)#1 (1) {
  ["__default"]=>
  string(7) "Testing"
}
Testing


Потоки

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Классы для работы с потоками
  • Предопределенные константы
  • Потоковые фильтры
  • Контексты потоков
  • Ошибки потока
  • Примеры
    • Пример класса, зарегистрированного в качестве обертки потока
  • php_user_filter — Класс php_user_filter
    • php_user_filter::filter — Вызывается, как только применяется фильтр
    • php_user_filter::onClose — Вызывается при закрытии фильтра
    • php_user_filter::onCreate — Вызывается при создании объекта фильтра
  • streamWrapper — Класс streamWrapper
    • streamWrapper::__construct — Создает новый объект обертки потока
    • streamWrapper::__destruct — Уничтожает существующую обертку потока
    • streamWrapper::dir_closedir — Закрыть дескриптор директории
    • streamWrapper::dir_opendir — Открыть дескриптор директории
    • streamWrapper::dir_readdir — Чтение записи из дескриптора директории
    • streamWrapper::dir_rewinddir — Дескриптор директории перемещения на её в начало
    • streamWrapper::mkdir — Создание директории
    • streamWrapper::rename — Переименовывает файл или директорию
    • streamWrapper::rmdir — Удаляет директорию
    • streamWrapper::stream_cast — Получает ресурс уровнем ниже
    • streamWrapper::stream_close — Закрывает ресурс
    • streamWrapper::stream_eof — Проверяет достижение конца файла по файловому указателю
    • streamWrapper::stream_flush — Сбрасывает вывод
    • streamWrapper::stream_lock — Консультативная блокировка файла
    • streamWrapper::stream_metadata — Изменяет метаданные потока
    • streamWrapper::stream_open — Открывает файл или URL
    • streamWrapper::stream_read — Читает из потока
    • streamWrapper::stream_seek — Перемещение на заданную позицию в потоке
    • streamWrapper::stream_set_option — Изменение настроек потока
    • streamWrapper::stream_stat — Получение информации о файловом ресурсе
    • streamWrapper::stream_tell — Определение текущей позиции потока
    • streamWrapper::stream_truncate — Усечение потока
    • streamWrapper::stream_write — Запись в поток
    • streamWrapper::unlink — Удаление файла
    • streamWrapper::url_stat — Получение информации о файле
  • Функции для работы с потоками
    • set_socket_blocking — Псевдоним stream_set_blocking
    • stream_bucket_append — Добавить ведро (bucket) в бригаду (brigade)
    • stream_bucket_make_writeable — Вернуть объект ведра из бригады для дальнейшей работы с ним
    • stream_bucket_new — Создать новое ведро для использования в текущем потоке
    • stream_bucket_prepend — Добавить ведро в начало бригады
    • stream_context_create — Создаёт контекст потока
    • stream_context_get_default — Получает контекст потока по умолчанию
    • stream_context_get_options — Получает опции для потока/обёртки/контекста
    • stream_context_get_params — Получает параметры из контекста
    • stream_context_set_default — Установить контекст потока по умолчанию
    • 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_is_local — Проверяет, является ли поток локальным потоком
    • stream_isatty — Проверяет, является ли поток TTY
    • stream_notification_callback — Callback-функция для параметра контекста notification
    • stream_register_wrapper — Псевдоним stream_wrapper_register
    • stream_resolve_include_path — Преобразовать полное имя файла, используя пути включения
    • stream_select — Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec
    • stream_set_blocking — Установить блокирующий/неблокирующий режим в потоке
    • stream_set_chunk_size — Установить размер фрагмента данных потока
    • stream_set_read_buffer — Установить буферизацию чтения файла на указанном потоке
    • stream_set_timeout — Установить значение тайм-аута для потока
    • stream_set_write_buffer — Устанавливает буферизацию файла при записи в указанный поток
    • stream_socket_accept — Принимать соединение в сокете, созданном c помощью функции stream_socket_server
    • stream_socket_client — Открыть соединение с интернет-сокетом или с доменным сокетом Unix
    • stream_socket_enable_crypto — Включает или отключает шифрование на уже подключённом сокете
    • stream_socket_get_name — Получить название локального или удалённого сокета
    • stream_socket_pair — Создаёт пару подключённых, неразличимых потоков сокетов
    • stream_socket_recvfrom — Получает данные из сокета, подключённого или нет
    • stream_socket_sendto — Отправляет сообщение в сокет, независимо от того, подсоединён он или нет
    • stream_socket_server — Создаёт интернет-сокет или доменный сокет Unix
    • stream_socket_shutdown — Закрыть полнодуплексное соединение
    • stream_supports_lock — Определяет, поддерживает ли поток блокировку
    • stream_wrapper_register — Регистрирует обёртку URL, реализованную в виде PHP-класса
    • stream_wrapper_restore — Восстанавливает отменённую ранее встроенную обёртку
    • stream_wrapper_unregister — Отменяет регистрацию обёртки URL


Введение

Потоки были введены как инструмент для работы с файлами, сетевого обмена, сжатия данных и выполнения других операций с помощью одного общего набора функций. Выражаясь простыми понятиями, поток (stream) - это ресурс (resource), который ведет себя как источник непрерывной последовательности данных. Это означает, что из потока можно последовательно читать данные, равно как и записывать в него. Также возможно перемещаться (fseek()) в разные позиции внутри потока.

Обертка (wrapper) - дополнительный код, который объясняет потоку особенности работы со специфичными протоколами или кодировками. Например, обертка http знает, как преобразовать URL в HTTP/1.0-запрос для файла на удаленном сервере. Существует множество оберток, как встроенных в PHP изначально (см. Поддерживаемые протоколы и обертки), так и дополнительных. Дополнительные обертки можно добавлять либо отдельным скриптом с помощью функции stream_wrapper_register(), либо напрямую из расширения, используя API Working with streams. Добавлять можно произвольное количество оберток, что делает возможности работы с потоками практически безграничными. Посмотреть список зарегистрированных на данный момент оберток можно с помощью функции stream_get_wrappers().

Ссылка на поток записывается в следующем виде: scheme://target

  • scheme (строка) - Название обертки. Например, file, http, https, ftp, ftps, compress.zlib, compress.bz2, php. Список встроенных оберток можно посмотреть здесь Поддерживаемые протоколы и обертки. Если название обертки не указано, каждая функция, работающая с потоком, использует обертку по умолчанию (обычно это file://).
  • target - Зависит от того, какая обертка используется. Для потоков, связанных с файловой системой это обычно путь и имя файла. Для сетевых потоков это, как правило, имя хоста (зачастую с добавлением к нему пути). Описания целей для встроенных оберток приведены в Поддерживаемые протоколы и обертки.

Замечание:

Информация об использовании потоков внутри исходного кода PHP приведена в Streams API for PHP Extension Authors reference.


Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения
  • Классы для работы с потоками


  • « Установка
  • Классы для работы с потоками »
  • PHP Manual
  • Установка и настройка
  • Настройка во время выполнения

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.


Классы для работы с потоками

Пользовательские обертки можно разрабатывать, используя определения классов показанные на этой странице руководства, а затем регистрировать функцией stream_wrapper_register().

Класс php_user_filter предопределен и является абстрактным базовым классом для создания пользовательских фильтров. Дополнительную информацию, касающуюся их реализации, можно почерпнуть из руководства к функции stream_filter_register().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константа | Описание
STREAM_FILTER_READ | Используется в функциях stream_filter_append() и stream_filter_prepend(). Указывает на то, что заданный фильтр может использоваться только в операциях чтения (reading)
STREAM_FILTER_WRITE | Используется в функциях stream_filter_append() и stream_filter_prepend(). Указывает на то, что заданный фильтр может использоваться только в операциях записи (writing)
STREAM_FILTER_ALL | Эквивалентно записи STREAM_FILTER_READ | STREAM_FILTER_WRITE
PSFS_PASS_ON | Return Code указывает, что пользовательский фильтр вернул бакеты (buckets) в $out.
PSFS_FEED_ME | Return Code указывает, что пользовательский фильтр не вернул бакеты (buckets) в $out. (т.е. нет доступных данных).
PSFS_ERR_FATAL | Return Code указывает, что пользовательский фильтр вызвал необрабатываемую ошибку (т.е. получены неверные данные).
PSFS_FLAG_NORMAL | Нормальное чтение/запись.
PSFS_FLAG_FLUSH_INC | Добавочное архивирование.
PSFS_FLAG_FLUSH_CLOSE | Сохранение на диск перед закрытием.
STREAM_USE_PATH | Флаг (Flag), указывающий, что stream использует подключаемый путь (include path).
STREAM_REPORT_ERRORS | Флаг (Flag) указывающий, что wrapper может выбрасывать исключения в процессе открытия потока функцией trigger_error() Если этот флаг не установлен, вызывать ошибки не стоит.
STREAM_CLIENT_ASYNC_CONNECT | Асинхронное открытие соединения с клиентским сокетом. Эта настройка должна использоваться совместно с флагом STREAM_CLIENT_CONNECT. Используется в функции stream_socket_client().
STREAM_CLIENT_CONNECT | Открытие соединения с клиентским сокетом. Клиентские сокеты всегда должны включать этот флаг. Используется функцией stream_socket_client().
STREAM_CLIENT_PERSISTENT | Клиентский сокет, открытый функцией stream_socket_client() будет оставаться открытым между загрузками страниц.
STREAM_SERVER_BIND | Сообщает потоку, созданному функцией stream_socket_server(), связаться с заданной целью. Серверные сокеты всегда должны включать этот флаг.
STREAM_SERVER_LISTEN | Указывает потоку, созданному функцией stream_socket_server() и связанному флагом STREAM_SERVER_BIND, начать слушать сокет. Передачи данных, устанавливающие соединение (как TCP), должны использовать этот флаг, иначе сокет не включится. Использование этого флага при передаче без установления соединения (как UDP) вызовет ошибку.
STREAM_NOTIFY_RESOLVE | Требуемый для потока адрес удаленного ресурса определен, либо это определение завершилось неудачей. Чтобы узнать, что именно произошло, см. severity.
STREAM_NOTIFY_CONNECT | Соединение с внешним ресурсом установлено.
STREAM_NOTIFY_AUTH_REQUIRED | Для доступа к заданному ресурсу необходима дополнительная авторизация. Обычно выдается в ошибке уровня severity STREAM_NOTIFY_SEVERITY_ERR.
STREAM_NOTIFY_MIME_TYPE_IS | mime-type ресурса идентифицирован. Описание найденного типа можно посмотреть в параметре message.
STREAM_NOTIFY_FILE_SIZE_IS | Размер (size) ресурса определен.
STREAM_NOTIFY_REDIRECTED | Внешний ресурс перенаправил поток в другое место. Дополнительно смотри message.
STREAM_NOTIFY_PROGRESS | Индикатор текущего процесса передачи данных через поток. Можно узнать, сколько передано (bytes_transferred), и сколько всего байт (bytes_max).
STREAM_NOTIFY_COMPLETED | В потоке больше нет доступных данных.
STREAM_NOTIFY_FAILURE | Общая ошибка при работе с потоком. Детали смотрите в message и message_code.
STREAM_NOTIFY_AUTH_RESULT | Авторизация завершена (независимо от успеха авторизации).
STREAM_NOTIFY_SEVERITY_INFO | Обычное уведомление, не относящееся к ошибкам.
STREAM_NOTIFY_SEVERITY_WARN | Некритичная ошибка. Возможно продолжить работу.
STREAM_NOTIFY_SEVERITY_ERR | Критичная ошибка. Продолжение работы невозможно.
STREAM_IPPROTO_ICMP + | Предоставляет ICMP-сокет.
STREAM_IPPROTO_IP + | Предоставляет IP-сокет.
STREAM_IPPROTO_RAW + | Предоставляет RAW сокет.
STREAM_IPPROTO_TCP + | Предоставляет TCP-сокет.
STREAM_IPPROTO_UDP + | Предоставляет UDP-сокет.
STREAM_PF_INET + | Интернет протокол 4 версии (IPv4).
STREAM_PF_INET6 + | Интернет протокол 6 версии (IPv6).
STREAM_PF_UNIX + | Внутренние протоколы Unix.
STREAM_SOCK_DGRAM + | Предоставляет датаграммы - сообщения без установления соединения (UDP, например).
STREAM_SOCK_RAW + | Предоставляет необработанный (raw) сокет, который дает доступ к внутренним сетевым протоколам и интерфейсам. Обычно сокеты этого типа доступны только root-пользователям.
STREAM_SOCK_RDM + | Предоставляет сокет RDM (Reliably-delivered messages).
STREAM_SOCK_SEQPACKET + | Предоставляет сокет последовательного потока пакетов.
STREAM_SOCK_STREAM + | Предоставляет последовательные двунаправленные байтовые потоки с механизмом передачи связанных данных (TCP, например).
STREAM_SHUT_RD | Используется функцией stream_socket_shutdown() для отключения дальнейшего приема данных. Добавлено в PHP 5.2.1.
STREAM_SHUT_WR | Используется функцией stream_socket_shutdown() для отключения дальнейшей передачи данных. Добавлено в PHP 5.2.1.
STREAM_SHUT_RDWR | Используется функцией stream_socket_shutdown() для отключения дальнейших приема и передачи данных. Добавлено в PHP 5.2.1.
STREAM_CAST_FOR_SELECT | Распределение потоков, используется, когда функция stream_select() вызывает stream_cast().
STREAM_CAST_AS_STREAM | Распределение потоков, используется, когда функция stream_cast() вызывается из другого места (см. выше).
STREAM_META_TOUCH | Используется в функции stream_metadata() для задания вызова touch().
STREAM_META_OWNER | Используется в функции stream_metadata() для задания вызова chown().
STREAM_META_OWNER_NAME | Используется в функции stream_metadata() для задания вызова chown().
STREAM_META_GROUP | Используется в функции stream_metadata() для задания вызова chgrp().
STREAM_META_GROUP_NAME | Используется в функции stream_metadata() для задания вызова chgrp().
STREAM_META_ACCESS | Используется в функции stream_metadata() для задания вызова chmod().

Замечание: Константы, отмеченные +, доступны с версии PHP 5.1.0 и предназначены для использования в функции stream_socket_pair(). Учитывайте, что некоторые из констант могут быть недоступны в вашей системе.

Замечание: Константы STREAM_META_* доступны с версии PHP 5.4.0 и предназначены для использования в функции stream_metadata().


Потоковые фильтры

Фильтр (filter) - рабочий код, который может осуществлять операции с данными, читаемыми из потока или записываемыми в него. На каждый поток можно надстроить несколько фильтров. Пользовательские фильтры можно регистрировать либо в PHP скрипте функцией stream_filter_register(), либо в расширении, используя справку по API в Working with streams. Чтобы посмотреть список зарегистрированных на данный момент фильтров, воспользуйтесь функцией stream_get_filters().


Контексты потоков

Контекст - это набор параметров и зависящих от контекста опций, который изменяет или расширяет поведение потока. Контексты создаются при помощи функции stream_context_create() и могут быть переданы большинству функций файловой системы, связанных с созданием потоков (например, fopen(), file(), file_get_contents(), и т. д...).

Опции могут быть определены при вызове функции stream_context_create(), или позже, используя функцию stream_context_set_option(). Список возможных опций в данном контексте может быть найден в главе Контекстные опции и параметры.

Параметры могут быть определены для контекстов, используя функцию stream_context_set_params().


Ошибки потока

Как и любая другая функция, работающая с файлами и сокетами, потоковая операция может завершиться неудачей по причинам, независящим от правильности разработки скрипта (ошибки: невозможно подключиться к удаленному хосту, не найден файл и т.п.). Также, вызов работающих с потоками функций, может аварийно завершится из-за того, что ожидаемый поток не зарегистрирован в системе. Чтобы предупредить подобные ошибки, ознакомьтесь со списком потоков, которые поддерживает ваша сборка PHP. Список можно получить с помощью функции stream_get_wrappers(). Как и для большинства встроенных функций PHP, в исключительных ситуациях генерируется сообщение E_WARNING с описанием характера ошибки.


Примеры

Содержание

  • Пример класса, зарегистрированного в качестве обертки потока

Пример #1 Использование file_get_contents() для получения данных из различных источников

<?php
/* Чтение локального файла из /home/bar */
$localfile = file_get_contents("/home/bar/foo.txt");

/* То же самое с явным заданием схемы FILE */
$localfile = file_get_contents("file:///home/bar/foo.txt");

/* Чтение удаленного файла по адресу from www.example.com, используя HTTP */
$httpfile  = file_get_contents("http://www.example.com/foo.txt");

/* Чтение удаленного файла по адресу www.example.com, используя HTTPS */
$httpsfile = file_get_contents("https://www.example.com/foo.txt");

/* Чтение удаленного файла по адресу ftp.example.com, используя FTP */
$ftpfile   = file_get_contents("ftp://user:pass@ftp.example.com/foo.txt");

/* Чтение удаленного файла по адресу ftp.example.com, используя FTPS */
$ftpsfile  = file_get_contents("ftps://user:pass@ftp.example.com/foo.txt");
?>

Пример #2 Осуществление POST-запроса к https-серверу

<?php
/* Посылаем POST запрос на адрес https://secure.example.com/form_action.php
* Включаем элементы формы "foo" и "bar" с подходящими данными
*/

$sock = fsockopen("ssl://secure.example.com", 443, $errno, $errstr, 30);
if (!$sock) die("$errstr ($errno)\n");

$data = "foo=" . urlencode("Значение Foo") . "&bar=" . urlencode("Значение 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);

$headers = "";
while ($str = trim(fgets($sock, 4096)))
$headers .= "$str\n";

echo "\n";

$body = "";
while (!feof($sock))
$body .= fgets($sock, 4096);

fclose($sock);
?>

Пример #3 Запись данных в сжатый файл

<?php
/* Создаем сжатый файл с различными данными
* Файл можно прочитать с помощью потока compress.zlib или
* просто разархивировать из командной строки 'gzip -d foo-bar.txt.gz'
*/
$fp = fopen("compress.zlib://foo-bar.txt.gz", "wb");
if (!$fp) die("Невозможно создать файл.");

fwrite($fp, "Тестовые данные.\n");

fclose($fp);
?>


Пример класса, зарегистрированного в качестве обертки потока

Пример ниже реализует обработчик протокола var://, который позволяет читать/писать в именованную глобальную переменную, используя стандартные потоковые функции, работающие с файловой системой, такие как fread(). Протокол var:// при передаче URL "var://foo" будет читать/писать из/в $GLOBALS["foo"].

Пример #1 Поток для чтения/записи глобальных переменных

<?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;
        }
    }

    function stream_metadata($path, $option, $var)
    {
        if($option == STREAM_META_TOUCH) {
            $url = parse_url($path);
            $varname = $url["host"];
            if(!isset($GLOBALS[$varname])) {
                $GLOBALS[$varname] = '';
            }
            return true;
        }
        return false;
    }
}

stream_wrapper_register("var", "VariableStream")
    or die("Не удалось зарегистрировать обертку");

$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);

?>

Результат выполнения данного примера:

line1
line2
line3
string(18) "line1
line2
line3
"


Класс php_user_filter

(PHP 5, PHP 7)

Введение

Потомки этого класса передаются в функцию stream_filter_register().

Обзор классов

php_user_filter {
/* Свойства */
public $filtername ;
public $params ;
/* Методы */
public filter ( resource $in , resource $out , int &$consumed , bool $closing ) : int
public onClose ( void ) : void
public onCreate ( void ) : bool
}

Свойства

filtername

Имя фильтра, зарегистрированного функцией stream_filter_append().

params

Содержание

  • php_user_filter::filter — Вызывается, как только применяется фильтр
  • php_user_filter::onClose — Вызывается при закрытии фильтра
  • php_user_filter::onCreate — Вызывается при создании объекта фильтра


Вызывается, как только применяется фильтр

  • « php_user_filter
  • php_user_filter::onClose »
  • PHP Manual
  • php_user_filter
  • Вызывается, как только применяется фильтр

php_user_filter::filter

(PHP 5, PHP 7)

php_user_filter::filter — Вызывается, как только применяется фильтр

Описание

public php_user_filter::filter ( resource $in , resource $out , int &$consumed , bool $closing ) : int

Этот метод вызывается всякий раз, когда данные читаются из присоединенного потока или записываются в него (такими функциями, как fread() или fwrite()).

Список параметров

in

in - ресурс, указывающий на bucket brigade, которая содержит один или несколько объектов bucket содержащих фильтруемые данные.

out

out - ресурс, указывающий на другой объект bucket brigade, в который будут помещаться модифицированные бакеты.

consumed

consumed, который должен всегда передаваться по ссылке, должен увеличиваться на размер данных, которые фильтр читает и изменяет. В большинстве случаев это значит, что Вы сами будете увеличивать значение consumed на $bucket->datalen для каждого $bucket.

closing

Если поток закрывается (следовательно, это последний фильтр в цепочке), аргумент closing примет значение TRUE.

Возвращаемые значения

Метод filter() должен возвращать одно из трех значений.

Возвращаемое значение | Описание
PSFS_PASS_ON | Фильтр отработал успешно, данные доступны через аргумент out bucket brigade.
PSFS_FEED_ME | Фильтр отработал успешно, однако доступных для вывода данных нет. Требуются еще данные из потока или предыдущего фильтра.
PSFS_ERR_FATAL (по умолчанию) | Фильтр вызвал необрабатываемую ошибку и не может продолжить выполнение.


Вызывается при закрытии фильтра

  • « php_user_filter::filter
  • php_user_filter::onCreate »
  • PHP Manual
  • php_user_filter
  • Вызывается при закрытии фильтра

php_user_filter::onClose

(PHP 5, PHP 7)

php_user_filter::onClose — Вызывается при закрытии фильтра

Описание

public php_user_filter::onClose ( void ) : void

Этот метод вызывается, когда фильтр завершает работу (обычно вместе с закрытием потока), и выполняется после вызова метода flush. Если какие-либо ресурсы были выделены во время выполнения метода onCreate(), то это время, когда их пора уничтожать.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращаемое значение игнорируется.


Вызывается при создании объекта фильтра

  • « php_user_filter::onClose
  • streamWrapper »
  • PHP Manual
  • php_user_filter
  • Вызывается при создании объекта фильтра

php_user_filter::onCreate

(PHP 5, PHP 7)

php_user_filter::onCreate — Вызывается при создании объекта фильтра

Описание

public php_user_filter::onCreate ( void ) : bool

Этот метод вызывается при создании фильтра во время создания экземпляра класса. В этом методе можно выделять необходимые ресурсы и инициализировать объекты (например, различные буферы).

Когда фильтр сначала создается и вызывается метод yourfilter->onCreate(), будет доступен ряд следующих свойств, которые описаны в таблице.

Свойство | Содержание
FilterClass->filtername | Строка, содержащая имя фильтра, присвоенное ему при создании. Фильтры можно регистрировать под разными именами или спецсимволами. Это свойство можно использовать для определения, какое имя было использовано.
FilterClass->params | Содержимое аргумента params передается в функцию stream_filter_append() или stream_filter_prepend().
FilterClass->stream | Ресурс потока, который будет фильтроваться. Свойство доступно, только если метод filter() вызывается, когда параметр closing равен FALSE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ваша реализация метода должна возвращать FALSE при неудачном завершении работы или TRUE при успешном.


Класс streamWrapper

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

Введение

Позволяет реализовывать собственные обработчики протоколов и потоков для дальнейшего использования со всеми функциями по работе с файловой системой (такими как fopen(), fread() и т.п.).

Замечание:

Это НЕ реальный класс, а лишь прототип, предоставленный в качестве наглядного пособия.

Замечание:

Реализация методов, отличная от описанной здесь, может привести к неопределенному поведению.

Объект класса инициализируется в тот момент, когда потоковая функция пытается получить доступ к протоколу, с которым этот класс ассоциирован.

Обзор классов

streamWrapper {
/* Свойства */
public resource $context ;
/* Методы */
__construct ( void )
__destruct ( void )
public dir_closedir ( void ) : bool
public dir_opendir ( string $path , int $options ) : bool
public dir_readdir ( void ) : string
public dir_rewinddir ( void ) : bool
public mkdir ( string $path , int $mode , int $options ) : bool
public rename ( string $path_from , string $path_to ) : bool
public rmdir ( string $path , int $options ) : bool
public stream_cast ( int $cast_as ) : resource
public stream_close ( void ) : void
public stream_eof ( void ) : bool
public stream_flush ( void ) : bool
public stream_lock ( int $operation ) : bool
public stream_metadata ( string $path , int $option , mixed $value ) : bool
public stream_open ( string $path , string $mode , int $options , string &$opened_path ) : bool
public stream_read ( int $count ) : string
public stream_seek ( int $offset , int $whence = SEEK_SET ) : bool
public stream_set_option ( int $option , int $arg1 , int $arg2 ) : bool
public stream_stat ( void ) : array
public stream_tell ( void ) : int
public stream_truncate ( int $new_size ) : bool
public stream_write ( string $data ) : int
public unlink ( string $path ) : bool
public url_stat ( string $path , int $flags ) : array
}

Свойства

resource context

Текущий контекст или NULL, если в вызывающую функцию не было передано никакого контекста.

Используйте функцию stream_context_get_options() для анализа и разбора контекста.

Замечание:

Это свойство должно быть общедоступным (иметь модификатор public), чтобы PHP мог ассоциировать его с актуальным контекстом.

Смотрите также

  • Пример класса, зарегистрированного в качестве обертки потока
  • stream_wrapper_register()
  • stream_wrapper_unregister()
  • stream_wrapper_restore()

Содержание

  • streamWrapper::__construct — Создает новый объект обертки потока
  • streamWrapper::__destruct — Уничтожает существующую обертку потока
  • streamWrapper::dir_closedir — Закрыть дескриптор директории
  • streamWrapper::dir_opendir — Открыть дескриптор директории
  • streamWrapper::dir_readdir — Чтение записи из дескриптора директории
  • streamWrapper::dir_rewinddir — Дескриптор директории перемещения на её в начало
  • streamWrapper::mkdir — Создание директории
  • streamWrapper::rename — Переименовывает файл или директорию
  • streamWrapper::rmdir — Удаляет директорию
  • streamWrapper::stream_cast — Получает ресурс уровнем ниже
  • streamWrapper::stream_close — Закрывает ресурс
  • streamWrapper::stream_eof — Проверяет достижение конца файла по файловому указателю
  • streamWrapper::stream_flush — Сбрасывает вывод
  • streamWrapper::stream_lock — Консультативная блокировка файла
  • streamWrapper::stream_metadata — Изменяет метаданные потока
  • streamWrapper::stream_open — Открывает файл или URL
  • streamWrapper::stream_read — Читает из потока
  • streamWrapper::stream_seek — Перемещение на заданную позицию в потоке
  • streamWrapper::stream_set_option — Изменение настроек потока
  • streamWrapper::stream_stat — Получение информации о файловом ресурсе
  • streamWrapper::stream_tell — Определение текущей позиции потока
  • streamWrapper::stream_truncate — Усечение потока
  • streamWrapper::stream_write — Запись в поток
  • streamWrapper::unlink — Удаление файла
  • streamWrapper::url_stat — Получение информации о файле


Создает новый объект обертки потока

  • « streamWrapper
  • streamWrapper::__destruct »
  • PHP Manual
  • streamWrapper
  • Создает новый объект обертки потока

streamWrapper::__construct

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::__construct — Создает новый объект обертки потока

Описание

streamWrapper::__construct ( void )

Вызывается при открытии обертки потока непосредственно перед вызовом метода streamWrapper::stream_open().

Список параметров

У этой функции нет параметров.


Уничтожает существующую обертку потока

  • « streamWrapper::__construct
  • streamWrapper::dir_closedir »
  • PHP Manual
  • streamWrapper
  • Уничтожает существующую обертку потока

streamWrapper::__destruct

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::__destruct — Уничтожает существующую обертку потока

Описание

streamWrapper::__destruct ( void )

Вызывается во время закрытия обертки потока непосредственно перед вызовом метода streamWrapper::stream_flush().

Список параметров

У этой функции нет параметров.


Закрыть дескриптор директории

  • « streamWrapper::__destruct
  • streamWrapper::dir_opendir »
  • PHP Manual
  • streamWrapper
  • Закрыть дескриптор директории

streamWrapper::dir_closedir

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::dir_closedir — Закрыть дескриптор директории

Описание

public streamWrapper::dir_closedir ( void ) : bool

Этот метод вызывается в процессе выполнения closedir().

Все ресурсы, заблокированные или выделенные во время открытия и использования потока директории, необходимо освободить.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • closedir() - Закрывает дескриптор каталога
  • streamWrapper::dir_opendir() - Открыть дескриптор директории


Открыть дескриптор директории

  • « streamWrapper::dir_closedir
  • streamWrapper::dir_readdir »
  • PHP Manual
  • streamWrapper
  • Открыть дескриптор директории

streamWrapper::dir_opendir

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::dir_opendir — Открыть дескриптор директории

Описание

public streamWrapper::dir_opendir ( string $path , int $options ) : bool

Этот метод вызывается в процессе выполнения opendir().

Список параметров

path

Задает URL, который был передан в opendir().

Замечание:

URL можно разделить на части с помощью parse_url().

options

Требуется ли принудительно включить безопасный режим (0x04).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • opendir() - Открывает дескриптор каталога
  • streamWrapper::dir_closedir() - Закрыть дескриптор директории
  • parse_url() - Разбирает URL и возвращает его компоненты


Чтение записи из дескриптора директории

  • « streamWrapper::dir_opendir
  • streamWrapper::dir_rewinddir »
  • PHP Manual
  • streamWrapper
  • Чтение записи из дескриптора директории

streamWrapper::dir_readdir

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::dir_readdir — Чтение записи из дескриптора директории

Описание

public streamWrapper::dir_readdir ( void ) : string

Этот метод вызывается в процессе выполнения readdir().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Должна возвращать строку (string), представляющую имя следующего файла, либо FALSE, если следующего файла нет.

Замечание:

Возвращаемое значение будет приведено к типу string.

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Примеры

Пример #1 Получение списка файлов из tar-архивов

<?php
class streamWrapper {
    protected $fp;

    public function dir_opendir($path, $options) {
        $url = parse_url($path);

        $path = $url["host"] . $url["path"];

        if (!is_readable($path)) {
            trigger_error("Не могу прочитать $path ", E_USER_NOTICE);
            return false;
        }
        if (!is_file($path)) {
            trigger_error("$path не является файлом", E_USER_NOTICE);
            return false;
        }

        $this->fp = fopen($path, "rb");
        return true;
    }

    public function dir_readdir() {
        // Извлечение заголовка
        $header      = fread($this->fp, 512);
        $data = unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1filetype/a100link/a100linkedfile", $header);

        // Убираем лишние пробелы в имени файла и его размере
        $filename    = trim($data["filename"]);

        // Нет файла? Значит мы дошли до конца архива
        if (!$filename) {
            return false;
        }

        $octal_bytes = trim($data["size"]);
        // Размер файла определен в восьмеричной системе
        $bytes       = octdec($octal_bytes);

        // tar округляет размеры файлов, чтобы они были
        // кратными 512 байтам (с заполнением нулями)
        $rest        = $bytes % 512;
        if ($rest > 0) {
            $bytes      += 512 - $rest;
        }

        // Перемещаемся внутри файла
        fseek($this->fp, $bytes, SEEK_CUR);

        return $filename;
    }

    public function dir_closedir() {
        return fclose($this->fp);
    }

    public function dir_rewinddir() {
        return fseek($this->fp, 0, SEEK_SET);
    }
}

stream_wrapper_register("tar", "streamWrapper");
$handle = opendir("tar://example.tar");
while (false !== ($file = readdir($handle))) {
    var_dump($file);
}

echo "Перемотка в начало..\n";
rewind($handle);
var_dump(readdir($handle));

closedir($handle);
?>

Результатом выполнения данного примера будет что-то подобное:

string(13) "construct.xml"
string(16) "dir-closedir.xml"
string(15) "dir-opendir.xml"
string(15) "dir-readdir.xml"
string(17) "dir-rewinddir.xml"
string(9) "mkdir.xml"
string(10) "rename.xml"
string(9) "rmdir.xml"
string(15) "stream-cast.xml"
string(16) "stream-close.xml"
string(14) "stream-eof.xml"
string(16) "stream-flush.xml"
string(15) "stream-lock.xml"
string(15) "stream-open.xml"
string(15) "stream-read.xml"
string(15) "stream-seek.xml"
string(21) "stream-set-option.xml"
string(15) "stream-stat.xml"
string(15) "stream-tell.xml"
string(16) "stream-write.xml"
string(10) "unlink.xml"
string(12) "url-stat.xml"
Rewinding..
string(13) "construct.xml"

Смотрите также

  • readdir() - Получает элемент каталога по его дескриптору


Дескриптор директории перемещения на её в начало

  • « streamWrapper::dir_readdir
  • streamWrapper::mkdir »
  • PHP Manual
  • streamWrapper
  • Дескриптор директории перемещения на её в начало

streamWrapper::dir_rewinddir

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::dir_rewinddir — Дескриптор директории перемещения на её в начало

Описание

public streamWrapper::dir_rewinddir ( void ) : bool

Этот метод вызывается в процессе выполнения rewinddir().

Должен сбрасывать текущий вывод, генерируемый методом streamWrapper::dir_readdir(). Т.е. при следующем вызове метод streamWrapper::dir_readdir() должен возвращать первую запись в директории, определенной методом streamWrapper::dir_opendir().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • rewinddir() - Сбросить дескриптор каталога
  • streamWrapper::dir_readdir() - Чтение записи из дескриптора директории


Создание директории

  • « streamWrapper::dir_rewinddir
  • streamWrapper::rename »
  • PHP Manual
  • streamWrapper
  • Создание директории

streamWrapper::mkdir

(PHP 5, PHP 7)

streamWrapper::mkdir — Создание директории

Описание

public streamWrapper::mkdir ( string $path , int $mode , int $options ) : bool

Этот метод вызывается в процессе выполнения mkdir().

Замечание:

Чтобы сообщения об ошибках соответствовали реальным ошибкам, этот метод не нужно определять в случаях, когда обертка не поддерживает создание директорий.

Список параметров

path

Создаваемая директория.

mode

Значение, переданное в mkdir().

options

Битовая маска, составленная из констант, вроде STREAM_MKDIR_RECURSIVE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Примечания

Замечание:

Свойство streamWrapper::$context будет обновлено, если корректный контекст был передан в вызываемую функцию.

Смотрите также

  • mkdir() - Создаёт директорию
  • streamwrapper::rmdir() - Удаляет директорию


Переименовывает файл или директорию

  • « streamWrapper::mkdir
  • streamWrapper::rmdir »
  • PHP Manual
  • streamWrapper
  • Переименовывает файл или директорию

streamWrapper::rename

(PHP 5, PHP 7)

streamWrapper::rename — Переименовывает файл или директорию

Описание

public streamWrapper::rename ( string $path_from , string $path_to ) : bool

Этот метод вызывается в процессе выполнения rename().

Должен попытаться переименовать path_from в path_to

Замечание:

Чтобы сообщения об ошибках соответствовали реальным ошибкам, этот метод не нужно определять в случаях, когда обертка не поддерживает переименование файлов.

Список параметров

path_from

URL текущего файла.

path_to

URL, в который path_from должен переименован.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Примечания

Замечание:

Свойство streamWrapper::$context будет обновлено, если корректный контекст был передан в вызываемую функцию.

Смотрите также

  • rename() - Переименовывает файл или директорию


Удаляет директорию

  • « streamWrapper::rename
  • streamWrapper::stream_cast »
  • PHP Manual
  • streamWrapper
  • Удаляет директорию

streamWrapper::rmdir

(PHP 5, PHP 7)

streamWrapper::rmdir — Удаляет директорию

Описание

public streamWrapper::rmdir ( string $path , int $options ) : bool

Этот метод вызывается в процессе выполнения rmdir().

Замечание:

Чтобы сообщения об ошибках соответствовали реальным ошибкам, этот метод не нужно определять в случаях, когда обертка не поддерживает удаление директорий.

Список параметров

path

URL удаляемой директории.

options

Битовая маска, составленная из констант, вроде STREAM_MKDIR_RECURSIVE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Примечания

Замечание:

Свойство streamWrapper::$context будет обновлено, если корректный контекст был передан в вызываемую функцию.

Смотрите также

  • rmdir() - Удаляет директорию
  • streamwrapper::mkdir() - Создание директории
  • streamwrapper::unlink() - Удаление файла


Получает ресурс уровнем ниже

  • « streamWrapper::rmdir
  • streamWrapper::stream_close »
  • PHP Manual
  • streamWrapper
  • Получает ресурс уровнем ниже

streamWrapper::stream_cast

(PHP 5 >= 5.3.0, PHP 7)

streamWrapper::stream_cast — Получает ресурс уровнем ниже

Описание

public streamWrapper::stream_cast ( int $cast_as ) : resource

Этот метод вызывается в процессе выполнения stream_select().

Список параметров

cast_as

Может быть STREAM_CAST_FOR_SELECT, когда stream_select() вызывает stream_cast(), либо STREAM_CAST_AS_STREAM, когда stream_cast() вызывается для других целей.

Возвращаемые значения

Должен вернуть ресурс потока, лежащего уровнем ниже, или FALSE.

Смотрите также

  • stream_select() - Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec


Закрывает ресурс

  • « streamWrapper::stream_cast
  • streamWrapper::stream_eof »
  • PHP Manual
  • streamWrapper
  • Закрывает ресурс

streamWrapper::stream_close

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_close — Закрывает ресурс

Описание

public streamWrapper::stream_close ( void ) : void

Этот метод вызывается в процессе выполнения fclose().

Все ресурсы, выделенные или заблокированные оберткой, должны быть освобождены.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • fclose() - Закрывает открытый дескриптор файла
  • streamWrapper::dir_closedir() - Закрыть дескриптор директории


Проверяет достижение конца файла по файловому указателю

  • « streamWrapper::stream_close
  • streamWrapper::stream_flush »
  • PHP Manual
  • streamWrapper
  • Проверяет достижение конца файла по файловому указателю

streamWrapper::stream_eof

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_eof — Проверяет достижение конца файла по файловому указателю

Описание

public streamWrapper::stream_eof ( void ) : bool

Этот метод вызывается в результате вызова feof().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Должен вернуть TRUE, если позиция чтения/записи находится в конце потока и доступных для чтения данных больше нет. В остальных случаях возвращается FALSE.

Примечания

Внимание

При чтении файла целиком (например, функцией
file_get_contents()), PHP будет вызывает
streamWrapper::stream_read() и вместе с ним
streamWrapper::stream_eof() в цикле, пока
streamWrapper::stream_read() возвращает
непустую строку. Возвращаемое из
streamWrapper::stream_eof() значение при этом
игнорируется.

Смотрите также

  • feof() - Проверяет, достигнут ли конец файла


Сбрасывает вывод

  • « streamWrapper::stream_eof
  • streamWrapper::stream_lock »
  • PHP Manual
  • streamWrapper
  • Сбрасывает вывод

streamWrapper::stream_flush

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_flush — Сбрасывает вывод

Описание

public streamWrapper::stream_flush ( void ) : bool

Этот метод вызывается в процессе выполнения fflush(), если поток закрывается имея несброшенные данные, записанные в него ранее.

Если в потоке есть кешированные и еще неиспользованные данные, в этом методе самое место передать их на низлежащий уровень.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Должен возвращать TRUE, если кешированные данные успешно сохранены (или их вообще нет), либо FALSE, если данные не могут быть сохранены.

Примечания

Замечание:

Если метод не реализован, в качестве возвращаемого значения полагается FALSE.

Смотрите также

  • fflush() - Сбрасывает буфер вывода в файл


Консультативная блокировка файла

  • « streamWrapper::stream_flush
  • streamWrapper::stream_metadata »
  • PHP Manual
  • streamWrapper
  • Консультативная блокировка файла

streamWrapper::stream_lock

(PHP 5, PHP 7)

streamWrapper::stream_lock — Консультативная блокировка файла

Описание

public streamWrapper::stream_lock ( int $operation ) : bool

Этот метод вызывается в ответ на flock(), когда вызывается file_put_contents() (если flags содержит LOCK_EX), stream_set_blocking() или при закрытии потока (LOCK_UN).

Список параметров

operation

operation может принимать одно из следующих значений:

  • LOCK_SH установить общую блокировку (для чтения).
  • LOCK_EX установить эксклюзивную блокировку (для записи).
  • LOCK_UN снять блокировку (общую или эксклюзивную).
  • LOCK_NB, если вы не хотите, чтобы flock() не блокировался во время работы. (не поддерживается в Windows)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает ошибку E_WARNING, если вызов метода не удался (то есть метод не реализован).

Смотрите также

  • stream_set_blocking() - Установить блокирующий/неблокирующий режим в потоке
  • flock() - Портируемая консультативная блокировка файлов


Изменяет метаданные потока

  • « streamWrapper::stream_lock
  • streamWrapper::stream_open »
  • PHP Manual
  • streamWrapper
  • Изменяет метаданные потока

streamWrapper::stream_metadata

(PHP 5 >= 5.4.0, PHP 7)

streamWrapper::stream_metadata — Изменяет метаданные потока

Описание

public streamWrapper::stream_metadata ( string $path , int $option , mixed $value ) : bool

Этот метод вызывается для установки метаданных потока. Он работает, когда над URL потока выполняется одна из следующих операций:

  • touch()
  • chmod()
  • chown()
  • chgrp()
Следует помнить, что некоторые из этих операций могут быть недоступны в вашей системе.

Список параметров

path

Путь к файлу или URL для задания метаданных. URL должен быть отделен символами :// Другие форматы URL не поддерживаются.

option

Одно из значений:

  • STREAM_META_TOUCH (Метод вызывается в результате вызова touch())
  • STREAM_META_OWNER_NAME (Метод вызывается в результате вызова chown() со строковым аргументом)
  • STREAM_META_OWNER (Метод вызывается в результате вызова chown())
  • STREAM_META_GROUP_NAME (Метод вызывается в результате вызова chgrp())
  • STREAM_META_GROUP (Метод вызывается в результате вызова chgrp())
  • STREAM_META_ACCESS (Метод вызывается в результате вызова chmod())

value

Если option принимает значение

  • STREAM_META_TOUCH: Массив (Array) состоящий из двух аргументов функции touch().
  • STREAM_META_OWNER_NAME или STREAM_META_GROUP_NAME: Имя владельца/группы в виде строки (string).
  • STREAM_META_OWNER или STREAM_META_GROUP: Значение владельца/группу в виде числа (integer).
  • STREAM_META_ACCESS: Аргумент функции chmod() в виде целого числа (integer).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если option не реализован, метод должен вернуть FALSE.

Смотрите также

  • touch() - Устанавливает время доступа и модификации файла
  • chmod() - Изменяет режим доступа к файлу
  • chown() - Изменяет владельца файла
  • chgrp() - Изменяет группу файла


Открывает файл или URL

  • « streamWrapper::stream_metadata
  • streamWrapper::stream_read »
  • PHP Manual
  • streamWrapper
  • Открывает файл или URL

streamWrapper::stream_open

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_open — Открывает файл или URL

Описание

public streamWrapper::stream_open ( string $path , string $mode , int $options , string &$opened_path ) : bool

Этот метод вызывается сразу после инициализации обертки (например, fopen() и file_get_contents()).

Список параметров

path

Задает URL, который будет передан в вызывающую функцию.

Замечание:

URL можно разделить на части функцией parse_url(). URL должен быть отделен символами ://. Символы : и :/ пока работают, но дальнейшая поддержка не гарантируется.

mode

Режим открытия файла, аналогичен режимам для fopen().

Замечание:

Не забывайте проверять, поддерживается ли режим mode файлом path.

options

Хранит дополнительные флаги, задаваемые API потоков. Может содержать одно или несколько значений, объединенных операцией ИЛИ. Значения приведены ниже.

Флаг | Описание
STREAM_USE_PATH | Если путь path относительный, требуется искать ресурс, используя include_path.
STREAM_REPORT_ERRORS | Если этот флаг задан, Вы можете вызывать ошибки функцией trigger_error() во время открытия потока. Если флаг не задан, ошибки вызывать нельзя.

opened_path

Если path успешно открыт, и STREAM_USE_PATH задана в options, то в аргументе opened_path необходимо сохранить полный путь к открытому файлу или ресурсу.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Примечания

Замечание:

Свойство streamWrapper::$context будет обновлено, если корректный контекст был передан в вызываемую функцию.

Смотрите также

  • fopen() - Открывает файл или URL
  • parse_url() - Разбирает URL и возвращает его компоненты


Читает из потока

  • « streamWrapper::stream_open
  • streamWrapper::stream_seek »
  • PHP Manual
  • streamWrapper
  • Читает из потока

streamWrapper::stream_read

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_read — Читает из потока

Описание

public streamWrapper::stream_read ( int $count ) : string

Этот метод вызывается в процессе выполнения функций fread() и fgets().

Замечание:

Не забывайте обновлять позицию чтения/записи в потоке (на количество успешно прочитанных байт).

Список параметров

count

Сколько байт данных от текущей позиции должно быть возвращено.

Возвращаемые значения

Если в потоке количество доступных байт меньше, чем count, будет возвращено столько данных, сколько доступно. Если доступных данных больше нет, возвращает либо FALSE, либо пустую строку.

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Замечание:

Если возвращаемое значение будет больше, чем count, то будет вызвана ошибка E_WARNING, и данные более указанного количества будут потеряны.

Примечания

Замечание:

streamWrapper::stream_eof() вызывается сразу после вызова streamWrapper::stream_read(), чтобы проверить, достигнут ли конец файла EOF. Если метод не реализован, то полагается, что конец файла EOF достигнут.

Внимание

При чтении файла целиком (например, функцией
file_get_contents()), PHP будет вызывать
streamWrapper::stream_read() и вместе с ним
streamWrapper::stream_eof() в цикле, пока
streamWrapper::stream_read() возвращает
непустую строку. Возвращаемое из
streamWrapper::stream_eof() значение при этом
игнорируется.

Смотрите также

  • fread() - Бинарно-безопасное чтение файла
  • fgets() - Читает строку из файла


Перемещение на заданную позицию в потоке

  • « streamWrapper::stream_read
  • streamWrapper::stream_set_option »
  • PHP Manual
  • streamWrapper
  • Перемещение на заданную позицию в потоке

streamWrapper::stream_seek

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_seek — Перемещение на заданную позицию в потоке

Описание

public streamWrapper::stream_seek ( int $offset , int $whence = SEEK_SET ) : bool

Этот метод вызывается в процессе выполнения fseek().

Позицию чтения/записи в потоке необходимо обновлять в соответствии с аргументами offset и whence.

Список параметров

offset

Смещение в потоке, на которое требуется переместиться.

whence

Возможные значения:

  • SEEK_SET - Переместиться на позицию offset байт от начала файла.
  • SEEK_CUR - Переместиться на offset байт относительно текущей позиции.
  • SEEK_END - Переместиться на позицию offset байт от конца файла.

Возвращаемые значения

Возвращает TRUE, если позиция обновлена, FALSE в остальных случаях.

Примечания

Замечание:

Если не реализован, в качестве возвращаемого значения принимается FALSE.

Замечание:

В случае успеха
streamWrapper::stream_tell() будет вызвана сразу
после того, как streamWrapper::stream_seek() отработает.
Если выполнение streamWrapper::stream_tell() завершится
неудачей, то в вызывающую функцию будет возвращено значение FALSE

Замечание:

Не все операции перемещения в потоке приведут к вызову этой функции. В PHP по умолчанию включена буферизация потоков (см. также stream_set_read_buffer()), поэтому перемещение в потоке может означать лишь перемещение указателя в буфере.

Смотрите также

  • fseek() - Устанавливает смещение в файловом указателе


Изменение настроек потока

  • « streamWrapper::stream_seek
  • streamWrapper::stream_stat »
  • PHP Manual
  • streamWrapper
  • Изменение настроек потока

streamWrapper::stream_set_option

(PHP 5 >= 5.3.0, PHP 7)

streamWrapper::stream_set_option — Изменение настроек потока

Описание

public streamWrapper::stream_set_option ( int $option , int $arg1 , int $arg2 ) : bool

Этот метод вызывается при установке настроек потока.

Список параметров

option

Одно из значений:

  • STREAM_OPTION_BLOCKING (Метод вызван в результате вызова функции stream_set_blocking())
  • STREAM_OPTION_READ_TIMEOUT (Метод вызван в результате вызова функции stream_set_timeout())
  • STREAM_OPTION_WRITE_BUFFER (Метод вызван в результате вызова функции stream_set_write_buffer())

arg1

Если option принимает значение:

  • STREAM_OPTION_BLOCKING: запрошен режим блокировки (1 - блокировать, 0 - не блокировать).
  • STREAM_OPTION_READ_TIMEOUT: тайм-аут в секундах.
  • STREAM_OPTION_WRITE_BUFFER: режим буферизации (STREAM_BUFFER_NONE или STREAM_BUFFER_FULL).

arg2

Если option принимает занчение:

  • STREAM_OPTION_BLOCKING: это значение ни на что не влияет.
  • STREAM_OPTION_READ_TIMEOUT: тайм-аут в миллисекундах.
  • STREAM_OPTION_WRITE_BUFFER: требуемый размер буфера.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если option не реализован, метод должен возвращать FALSE.

Смотрите также

  • stream_set_blocking() - Установить блокирующий/неблокирующий режим в потоке
  • stream_set_timeout() - Установить значение тайм-аута для потока
  • stream_set_write_buffer() - Устанавливает буферизацию файла при записи в указанный поток


Получение информации о файловом ресурсе

  • « streamWrapper::stream_set_option
  • streamWrapper::stream_tell »
  • PHP Manual
  • streamWrapper
  • Получение информации о файловом ресурсе

streamWrapper::stream_stat

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_stat — Получение информации о файловом ресурсе

Описание

public streamWrapper::stream_stat ( void ) : array

Этот метод вызывается в результате вызова функции fstat().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

См. stat().

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Смотрите также

  • stat() - Возвращает информацию о файле
  • streamwrapper::url_stat() - Получение информации о файле


Определение текущей позиции потока

  • « streamWrapper::stream_stat
  • streamWrapper::stream_truncate »
  • PHP Manual
  • streamWrapper
  • Определение текущей позиции потока

streamWrapper::stream_tell

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_tell — Определение текущей позиции потока

Описание

public streamWrapper::stream_tell ( void ) : int

Этот метод вызывается в процессе выполнения fseek() для определения текущей позиции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Должен возвращать текущую позицию потока.

Смотрите также

  • streamWrapper::stream_tell()


Усечение потока

  • « streamWrapper::stream_tell
  • streamWrapper::stream_write »
  • PHP Manual
  • streamWrapper
  • Усечение потока

streamWrapper::stream_truncate

(PHP 5 >= 5.4.0, PHP 7)

streamWrapper::stream_truncate — Усечение потока

Описание

public streamWrapper::stream_truncate ( int $new_size ) : bool

Будет срабатывать при усечении потока функцией ftruncate().

Список параметров

new_size

Новый размер.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ftruncate() - Урезает файл до указанной длины


Запись в поток

  • « streamWrapper::stream_truncate
  • streamWrapper::unlink »
  • PHP Manual
  • streamWrapper
  • Запись в поток

streamWrapper::stream_write

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_write — Запись в поток

Описание

public streamWrapper::stream_write ( string $data ) : int

Этот метод вызывается в результате запуска функции fwrite().

Замечание:

Не забывайте изменять текущую позицию потока на количество успешно записанных байт.

Список параметров

data

Эти данные должны передаваться потоку уровнем ниже.

Замечание:

Если нижележащий поток не способен принять все данные, передавайте сколько возможно.

Возвращаемые значения

Должен возвращать количество успешно записанных байт или 0, если ничего записать не удалось.

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Замечание:

Если возвращаемое значение окажется больше размера данных data, будет вызвана ошибка уровня E_WARNING, а возвращаемое значение будет усечено до этого размера.

Смотрите также

  • fwrite() - Бинарно-безопасная запись в файл


Удаление файла

  • « streamWrapper::stream_write
  • streamWrapper::url_stat »
  • PHP Manual
  • streamWrapper
  • Удаление файла

streamWrapper::unlink

(PHP 5, PHP 7)

streamWrapper::unlink — Удаление файла

Описание

public streamWrapper::unlink ( string $path ) : bool

Этот метод вызывается в процессе выполнения unlink().

Замечание:

Чтобы сообщения об ошибках соответствовали реальным ошибкам, этот метод не нужно определять в случаях, когда обертка не поддерживает удаление файлов.

Список параметров

path

URL удаляемого файла.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Примечания

Замечание:

Свойство streamWrapper::$context будет обновлено, если корректный контекст был передан в вызываемую функцию.

Смотрите также

  • unlink() - Удаляет файл
  • streamWrapper::rmdir() - Удаляет директорию


Получение информации о файле

  • « streamWrapper::unlink
  • Функции для работы с потоками »
  • PHP Manual
  • streamWrapper
  • Получение информации о файле

streamWrapper::url_stat

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::url_stat — Получение информации о файле

Описание

public streamWrapper::url_stat ( string $path , int $flags ) : array

Этот метод вызывается в процессе выполнения любой из stat() функций, таких как:

  • chmod() (только в безопасном режиме)
  • copy()
  • fileperms()
  • fileinode()
  • filesize()
  • fileowner()
  • filegroup()
  • fileatime()
  • filemtime()
  • filectime()
  • filetype()
  • is_writable()
  • is_readable()
  • is_executable()
  • is_file()
  • is_dir()
  • is_link()
  • file_exists()
  • lstat()
  • stat()
  • SplFileInfo::getPerms()
  • SplFileInfo::getInode()
  • SplFileInfo::getSize()
  • SplFileInfo::getOwner()
  • SplFileInfo::getGroup()
  • SplFileInfo::getATime()
  • SplFileInfo::getMTime()
  • SplFileInfo::getCTime()
  • SplFileInfo::getType()
  • SplFileInfo::isWritable()
  • SplFileInfo::isReadable()
  • SplFileInfo::isExecutable()
  • SplFileInfo::isFile()
  • SplFileInfo::isDir()
  • SplFileInfo::isLink()
  • RecursiveDirectoryIterator::hasChildren()

Список параметров

path

Путь к файлу или его URL. Помните, что URL должен быть отделен символами :// , другие формы URL не поддерживаются.

flags

Хранит дополнительные флаги, установленные API потоков. Может хранить одно или несколько приведенных ниже значений, объединенных операцией ИЛИ.

Флаг | Описание
STREAM_URL_STAT_LINK | Для ресурсов, которые могут ссылаться на другие ресурсы (как например HTTP Location: forward, или символические ссылки файловой системы). Этот флаг указывает, что возвращаемая информация относится к самой ссылке, а не к ресурсу, на который она указывает. Этот используется при вызове функций lstat(), is_link() или filetype().
STREAM_URL_STAT_QUIET | Если флаг установлен, обертка не должна вызывать никаких ошибок. Если нет, можно вызывать сообщения об ошибках с помощью функции trigger_error().

Возвращаемые значения

Должна возвращать столько элементов, сколько возвращает вызывающая stat(). Неизвестные или недоступные значения необходимо приводить к разумным значениям (обычно к 0). Обратите особое внимание на mode, как описано в разделе stat().

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Примечания

Замечание:

Свойство streamWrapper::$context будет обновлено, если корректный контекст был передан в вызываемую функцию.

Смотрите также

  • stat() - Возвращает информацию о файле
  • streamwrapper::stream_stat() - Получение информации о файловом ресурсе


Функции для работы с потоками

Содержание

  • set_socket_blocking — Псевдоним stream_set_blocking
  • stream_bucket_append — Добавить ведро (bucket) в бригаду (brigade)
  • stream_bucket_make_writeable — Вернуть объект ведра из бригады для дальнейшей работы с ним
  • stream_bucket_new — Создать новое ведро для использования в текущем потоке
  • stream_bucket_prepend — Добавить ведро в начало бригады
  • stream_context_create — Создаёт контекст потока
  • stream_context_get_default — Получает контекст потока по умолчанию
  • stream_context_get_options — Получает опции для потока/обёртки/контекста
  • stream_context_get_params — Получает параметры из контекста
  • stream_context_set_default — Установить контекст потока по умолчанию
  • 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_is_local — Проверяет, является ли поток локальным потоком
  • stream_isatty — Проверяет, является ли поток TTY
  • stream_notification_callback — Callback-функция для параметра контекста notification
  • stream_register_wrapper — Псевдоним stream_wrapper_register
  • stream_resolve_include_path — Преобразовать полное имя файла, используя пути включения
  • stream_select — Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec
  • stream_set_blocking — Установить блокирующий/неблокирующий режим в потоке
  • stream_set_chunk_size — Установить размер фрагмента данных потока
  • stream_set_read_buffer — Установить буферизацию чтения файла на указанном потоке
  • stream_set_timeout — Установить значение тайм-аута для потока
  • stream_set_write_buffer — Устанавливает буферизацию файла при записи в указанный поток
  • stream_socket_accept — Принимать соединение в сокете, созданном c помощью функции stream_socket_server
  • stream_socket_client — Открыть соединение с интернет-сокетом или с доменным сокетом Unix
  • stream_socket_enable_crypto — Включает или отключает шифрование на уже подключённом сокете
  • stream_socket_get_name — Получить название локального или удалённого сокета
  • stream_socket_pair — Создаёт пару подключённых, неразличимых потоков сокетов
  • stream_socket_recvfrom — Получает данные из сокета, подключённого или нет
  • stream_socket_sendto — Отправляет сообщение в сокет, независимо от того, подсоединён он или нет
  • stream_socket_server — Создаёт интернет-сокет или доменный сокет Unix
  • stream_socket_shutdown — Закрыть полнодуплексное соединение
  • stream_supports_lock — Определяет, поддерживает ли поток блокировку
  • stream_wrapper_register — Регистрирует обёртку URL, реализованную в виде PHP-класса
  • stream_wrapper_restore — Восстанавливает отменённую ранее встроенную обёртку
  • stream_wrapper_unregister — Отменяет регистрацию обёртки URL


Псевдоним stream_set_blocking

  • « Функции для работы с потоками
  • stream_bucket_append »
  • PHP Manual
  • Функции для работы с потоками
  • Псевдоним stream_set_blocking

set_socket_blocking

(PHP 4, PHP 5)

set_socket_blocking — Псевдоним stream_set_blocking()

Внимание

Этот псевдоним считается УСТАРЕВШИМ с PHP 5.3.0 и УДАЛЕН в PHP 7.0.0.

Описание

Эта функция является псевдонимом: stream_set_blocking()


Добавить ведро (bucket) в бригаду (brigade)

  • « set_socket_blocking
  • stream_bucket_make_writeable »
  • PHP Manual
  • Функции для работы с потоками
  • Добавить ведро (bucket) в бригаду (brigade)

stream_bucket_append

(PHP 5, PHP 7)

stream_bucket_append — Добавить ведро (bucket) в бригаду (brigade)

Описание

stream_bucket_append ( resource $brigade , object $bucket ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Вернуть объект ведра из бригады для дальнейшей работы с ним

  • « stream_bucket_append
  • stream_bucket_new »
  • PHP Manual
  • Функции для работы с потоками
  • Вернуть объект ведра из бригады для дальнейшей работы с ним

stream_bucket_make_writeable

(PHP 5, PHP 7)

stream_bucket_make_writeable — Вернуть объект ведра из бригады для дальнейшей работы с ним

Описание

stream_bucket_make_writeable ( resource $brigade ) : object
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Создать новое ведро для использования в текущем потоке

  • « stream_bucket_make_writeable
  • stream_bucket_prepend »
  • PHP Manual
  • Функции для работы с потоками
  • Создать новое ведро для использования в текущем потоке

stream_bucket_new

(PHP 5, PHP 7)

stream_bucket_new — Создать новое ведро для использования в текущем потоке

Описание

stream_bucket_new ( resource $stream , string $buffer ) : object
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Добавить ведро в начало бригады

  • « stream_bucket_new
  • stream_context_create »
  • PHP Manual
  • Функции для работы с потоками
  • Добавить ведро в начало бригады

stream_bucket_prepend

(PHP 5, PHP 7)

stream_bucket_prepend — Добавить ведро в начало бригады

Описание

stream_bucket_prepend ( resource $brigade , object $bucket ) : void

Эта функция может использоваться для добавления ведра в начало бригады ведер. Обычно она вызывается из php_user_filter::filter().

Список параметров

brigade

brigade - ресурс, указывающий на бригаду ведер, которая содержит один или несколько объектов bucket.

bucket

Ведро.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Примеры использования stream_bucket_prepend()

<?php

class foo extends php_user_filter {
  protected $calls = 0;
  public function filter($in, $out, &$consumed, $closing) {
    while ($bucket = stream_bucket_make_writeable($in)) {
      $consumed += $bucket->datalen;
      if ($this->calls++ == 2) {
        // Это ведро снова появится перед любым другим ведром.
        stream_bucket_prepend($in, $bucket);
      }
    }
    return PSFS_FEED_ME;
  }
}
stream_filter_register('test', 'foo');
print  file_get_contents('php://filter/read=test/resource=foo');
?>


Создаёт контекст потока

  • « stream_bucket_prepend
  • stream_context_get_default »
  • PHP Manual
  • Функции для работы с потоками
  • Создаёт контекст потока

stream_context_create

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_context_create — Создаёт контекст потока

Описание

stream_context_create ([ array $options [, array $params ]] ) : resource

Создаёт и возвращает контекст потока с опциями, указанными в массиве options.

Список параметров

options

Должен быть ассоциативным массивом в формате $arr['wrapper']['option'] = $value. Список доступных обёрток и опций смотрите в разделе Опции контекста

Значение по умолчанию - пустой массив.

params

Должен быть ассоциативным массивом в формате $arr['parameter'] = $value. Обратитесь к разделу Опции контекста за списком стандартных параметров потока.

Возвращаемые значения

Ресурс (resource) контекста потока.

Список изменений

Версия | Описание
5.3.0 | Добавлен необязательный аргумент params.

Примеры

Пример #1 Использование 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);

/* Отправляет http-запрос на домен www.example.com
   с дополнительными заголовкам, показанными выше */
$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>

Смотрите также

  • stream_context_set_option() - Устанавливает опцию для потока/обёртки/контекста
  • Список поддерживаемых обёрток (Поддерживаемые протоколы и обертки)
  • Опции контекста (Контекстные опции и параметры)


Получает контекст потока по умолчанию

  • « stream_context_create
  • stream_context_get_options »
  • PHP Manual
  • Функции для работы с потоками
  • Получает контекст потока по умолчанию

stream_context_get_default

(PHP 5 >= 5.1.0, PHP 7)

stream_context_get_default — Получает контекст потока по умолчанию

Описание

stream_context_get_default ([ array $options ] ) : resource

Возвращает контекст потока по умолчанию, который используется в любых файловых операциях (fopen(), file_get_contents() и т.д.), вызванных без параметра контекста. Опции для контекста по умолчанию могут быть опционально указаны с помощью этой функцией используя тот же синтаксис, что и для stream_context_create().

Список параметров

options
options должен быть ассоциативным массивом ассоциативных массивов в формате $arr['wrapper']['option'] = $value.

Замечание:

Начиная с PHP 5.3.0, функция stream_context_set_default() может быть использована для установки контекста по умолчанию.

Возвращаемые значения

Ресурс (resource) контекста потока.

Примеры

Пример #1 Пример использования 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);

/* Отправляет обычный GET-запрос на прокси-сервер 10.54.1.39
 * Для www.example.com используются опции контекста, указанные в $default_opts
 */
readfile('http://www.example.com');

/* Отправляет POST-запрос напрямую к www.example.com
 * Используемые опции контекста определены в $alternate_opts
 */
readfile('http://www.example.com', false, $alternate);

?>

Смотрите также

  • stream_context_create() - Создаёт контекст потока
  • Список поддерживаемых обёрток с опциями контекста (Поддерживаемые протоколы и обертки).


Получает опции для потока/обёртки/контекста

  • « stream_context_get_default
  • stream_context_get_params »
  • PHP Manual
  • Функции для работы с потоками
  • Получает опции для потока/обёртки/контекста

stream_context_get_options

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_context_get_options — Получает опции для потока/обёртки/контекста

Описание

stream_context_get_options ( resource $stream_or_context ) : array

Возвращает массив опций в указанном потоке или контексте.

Список параметров

stream_or_context

Поток (stream) или контекст (context), у которого будут получены настройки

Возвращаемые значения

Возвращает ассоциативный массив с опциями.

Примеры

Пример #1 Пример использования stream_context_get_options()

<?php
$params = array("method" => "POST");

stream_context_set_default(array("http" => $params));

var_dump(stream_context_get_options(stream_context_get_default()));

?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  ["http"]=>
  array(1) {
    ["method"]=>
    string(4) "POST"
  }
}


Получает параметры из контекста

  • « stream_context_get_options
  • stream_context_set_default »
  • PHP Manual
  • Функции для работы с потоками
  • Получает параметры из контекста

stream_context_get_params

(PHP 5 >= 5.3.0, PHP 7)

stream_context_get_params — Получает параметры из контекста

Описание

stream_context_get_params ( resource $stream_or_context ) : array

Возвращает информацию о параметрах и опциях из потока или контекста.

Список параметров

stream_or_context

Ресурс (resource) потока или ресурс (resource) контекста

Возвращаемые значения

Возвращает ассоциативный массив, содержащий все опции и параметры контекста.

Примеры

Пример #1 Пример использования stream_context_get_params()

Пример простого использования

<?php
$ctx = stream_context_create();
$params = array("notification" => "stream_notification_callback");
stream_context_set_params($ctx, $params);

var_dump(stream_context_get_params($ctx));
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["notification"]=>
  string(28) "stream_notification_callback"
  ["options"]=>
  array(0) {
  }
}

Смотрите также

  • stream_context_set_option() - Устанавливает опцию для потока/обёртки/контекста
  • stream_context_set_params() - Устанавливает параметры для потока/обёртки/контекста


Установить контекст потока по умолчанию

  • « stream_context_get_params
  • stream_context_set_option »
  • PHP Manual
  • Функции для работы с потоками
  • Установить контекст потока по умолчанию

stream_context_set_default

(PHP 5 >= 5.3.0, PHP 7)

stream_context_set_default — Установить контекст потока по умолчанию

Описание

stream_context_set_default ( array $options ) : resource

Установить контекст потока по умолчанию, который будет использоваться всякий раз, когда файловые операции (fopen(), file_get_contents() и т.д.) вызываются без параметра контекста. Используется тот же синтаксис, что и в stream_context_create().

Список параметров

options

Опции для установки для контекста по умолчанию.

Замечание:

Параметр options должен быть ассоциативным массивом ассоциативных массивов в формате $arr['wrapper']['option'] = $value.

Возвращаемые значения

Возвращает контекст потока по умолчанию.

Примеры

Пример #1 stream_context_set_default() example

<?php
$default_opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar",
    'proxy'=>"tcp://10.54.1.39:8000"
  )
);

$default = stream_context_set_default($default_opts);

/* Отправляет обычный GET-запрос к прокси-серверу по адресу 10.54.1.39
 * Для www.example.com используются опции контекста, указанные в $default_opts
 */
readfile('http://www.example.com');
?>

Смотрите также

  • stream_context_create() - Создаёт контекст потока
  • stream_context_get_default() - Получает контекст потока по умолчанию
  • Listing of supported wrappers with context options (Поддерживаемые протоколы и обертки).


Устанавливает опцию для потока/обёртки/контекста

  • « stream_context_set_default
  • stream_context_set_params »
  • PHP Manual
  • Функции для работы с потоками
  • Устанавливает опцию для потока/обёртки/контекста

stream_context_set_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_context_set_option — Устанавливает опцию для потока/обёртки/контекста

Описание

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 ) : bool

Устанавливает опцию в указанном контексте. Значение value устанавливается в option для wrapper

Список параметров

stream_or_context

Поток или ресурс контекста, к которому будут применены опции.

options

Опции, которые будут применены к stream_or_context.

Замечание:

Параметр options должен быть ассоциативным массивом ассоциативных массивов в формате $arr['wrapper']['option'] = $value.

Обратитесь к разделу опции и параметры контекста, чтобы получить список опций потока.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Устанавливает параметры для потока/обёртки/контекста

  • « stream_context_set_option
  • stream_copy_to_stream »
  • PHP Manual
  • Функции для работы с потоками
  • Устанавливает параметры для потока/обёртки/контекста

stream_context_set_params

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_context_set_params — Устанавливает параметры для потока/обёртки/контекста

Описание

stream_context_set_params ( resource $stream_or_context , array $params ) : bool

Устанавливает параметры для указанного контекста.

Список параметров

stream_or_context

Поток или контекст, к которому будут применены параметры.

params

Массив параметров, которые будут установлены.

Замечание:

Массив params должен быть ассоциативным массивом со следующей структурой: $params['paramname'] = "paramvalue";.

Поддерживаемые параметры

Параметры | Назначение
notification | Название определённой пользователем callback-функции, которая будет вызвана, когда потоком посылается уведомление. Поддерживается только для обёрток потоков http:// и ftp://.
options | Массив опций и параметров контекста.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • stream_notification_callback() - Callback-функция для параметра контекста notification


Копирует данные из одного потока в другой

  • « stream_context_set_params
  • stream_filter_append »
  • PHP Manual
  • Функции для работы с потоками
  • Копирует данные из одного потока в другой

stream_copy_to_stream

(PHP 5, PHP 7)

stream_copy_to_stream — Копирует данные из одного потока в другой

Описание

stream_copy_to_stream ( resource $source , resource $dest [, int $maxlength = -1 [, int $offset = 0 ]] ) : int

Делает копию до maxlength байт данных от текущей позиции (или от позиции offset, если указана) потока source в поток dest. Если maxlength не указан, будет скопировано всё оставшееся содержимое из source.

Список параметров

source

Исходный поток

dest

Поток назначения

maxlength

Максимальное количество байт для копирования

offset

Смещение, с которого будут копироваться данные

Возвращаемые значения

Возвращает общее количество скопированных байт, или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр offset

Примеры

Пример #1 Пример использования stream_copy_to_stream()

<?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) . " байт скопировано в first1k.txt\n";
echo stream_copy_to_stream($src, $dest2) . " байт скопировано в remainder.txt\n";

?>

Смотрите также

  • copy() - Копирует файл


Прикрепить фильтр к потоку

  • « stream_copy_to_stream
  • stream_filter_prepend »
  • PHP Manual
  • Функции для работы с потоками
  • Прикрепить фильтр к потоку

stream_filter_append

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_filter_append — Прикрепить фильтр к потоку

Описание

stream_filter_append ( resource $stream , string $filtername [, int $read_write [, mixed $params ]] ) : resource

Добавляет filtername в список фильтров, прикреплённых к stream.

Список параметров

stream

Целевой поток.

filtername

Название фильтра.

read_write

По умолчанию stream_filter_append() будет прикреплять фильтр к цепочке фильтров чтения, если файл был открыт для чтения (т. е. режим файла: r, и/или +). Фильтр также будет прикреплён к цепочке фильтров записи, если файл был открыт для записи (т. е. режим файла: w, a, и/или +). Константы STREAM_FILTER_READ, STREAM_FILTER_WRITE и/или STREAM_FILTER_ALL также могут быть переданы в параметре read_write, чтобы переопределить это поведение.

params

Этот фильтр будет добавлен с указанными params к концу списка и, таким образом, будет вызван последним в списке потоковых операций. Чтобы добавить фильтр в начало списка, используйте stream_filter_prepend().

Возвращаемые значения

Возвращает ресурс в случае успеха или FALSE при неудаче. Ресурс должен быть использован для ссылки на этот экземпляр фильтра во время вызова stream_filter_remove().

Вернет FALSE, если stream не является ресурсом или если filtername не найден.

Список изменений

Версия | Описание
5.1.0 | До PHP 5.1.0 эта функция возвращает TRUE в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Контроль применения фильтров

<?php
/* Открываем тестовый файл для чтения и записи */
$fp = fopen('test.txt', 'w+');

/* Прикрепляем фильтр ROT13 к
 * цепочке фильтров записи, но не к
 * цепочке фильтров чтения */
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);

/* Запишем простую строку в файл
 * она будет преобразована при помощи ROT13
 * на выходе */
fwrite($fp, "Это тест\n");

/* Назад к началу файла */
rewind($fp);

/* Прочитаем содержимое файла.
 * Если фильтр также был бы прикреплён к
 * цепочке фильтров чтения, мы бы увидели
 * преобразованный при помощи ROT13 текст в исходном состоянии */
fpassthru($fp);

fclose($fp);

/* Ожидаемый вывод
   ---------------

Guvf vf n grfg

 */
?>

Примечания

Замечание: При использовании пользовательских фильтров
Сначала должна быть вызвана функция stream_filter_register() для того, чтобы зарегистрировать желаемый пользовательский фильтр на имя filtername.

Замечание: Потоковые данные читаются из ресурсов (как локальных, так удалённых) по кускам, и любые невостребованные данные сохраняются во внутренних буферах. Когда новый фильтр добавляется в конец потока, то данные во внутренних буферах обрабатываются через новый фильтр. Это отличается от поведения функции stream_filter_prepend().

Замечание: Когда фильтр добавляется для чтения и записи, создаются два экземпляра фильтра. Функция stream_filter_append() должна быть вызвана дважды с STREAM_FILTER_READ и STREAM_FILTER_WRITE чтобы получить оба ресурса фильтра.

Смотрите также

  • stream_filter_register() - Регистрирует потоковый фильтр, определённый пользователем
  • stream_filter_prepend() - Прикрепляет фильтр к потоку
  • stream_get_filters() - Получить список зарегистрированных фильтров


Прикрепляет фильтр к потоку

  • « stream_filter_append
  • stream_filter_register »
  • PHP Manual
  • Функции для работы с потоками
  • Прикрепляет фильтр к потоку

stream_filter_prepend

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_filter_prepend — Прикрепляет фильтр к потоку

Описание

stream_filter_prepend ( resource $stream , string $filtername [, int $read_write [, mixed $params ]] ) : resource

Добавляет filtername к списку фильтров, прикреплённых к потоку stream.

Список параметров

stream

Целевой поток.

filtername

Название потока.

read_write

По умолчанию, функция stream_filter_prepend() будет прикреплять фильтр к цепочке фильтров чтения, если файл был открыт для чтения (т.е. режим файла: r, и/или +). Фильтр также будет прикреплён к цепочке фильтров записи, если файл был открыт для записи (т.е. режим файла: w, a, и/или +). Константы STREAM_FILTER_READ, STREAM_FILTER_WRITE и/или STREAM_FILTER_ALL также могут быть переданы в параметре read_write, чтобы переопределить это поведение. Смотрите функцию stream_filter_append() для примера использования этого параметра.

params

Этот фильтр будет добавлен с указанными параметрами params к началу списка и, таким образом, будет вызван первым во время потоковых операций. Для того, чтобы добавить фильтр к концу списка, используйте stream_filter_append().

Возвращаемые значения

Возвращает ресурс в случае успешного выполнения или FALSE в случае возникновения ошибки. Ресурс должен быть использован для ссылки на этот экземпляр фильтра во время вызова stream_filter_remove().

Вернет FALSE, если stream не является ресурсом или если filtername не найден.

Список изменений

Версия | Описание
5.1.0 | До PHP 5.1.0 эта функция возвращает TRUE в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примечания

Замечание: При использовании пользовательских фильтров
Сначала должна быть вызвана функция stream_filter_register() для того, чтобы зарегистрировать желаемый пользовательский фильтр на имя filtername.

Замечание: Потоковые данные читаются из ресурсов (как локальных, так удалённых) по кускам, и любые невостребованные данные сохраняются во внутренних буферах. Когда новый фильтр добавляется в начало потока, данные во внутренних буферах, который уже были обработаны через другие фильтры, не будут обработаны через новый фильтр. Это отличается от поведения функции stream_filter_append().

Замечание: Когда фильтр добавляется для чтения и записи, создаются два экземпляра фильтра. Функция stream_filter_append() должна быть вызвана дважды с STREAM_FILTER_READ и STREAM_FILTER_WRITE чтобы получить оба ресурса фильтра.

Смотрите также

  • stream_filter_register() - Регистрирует потоковый фильтр, определённый пользователем
  • stream_filter_append() - Прикрепить фильтр к потоку


Регистрирует потоковый фильтр, определённый пользователем

  • « stream_filter_prepend
  • stream_filter_remove »
  • PHP Manual
  • Функции для работы с потоками
  • Регистрирует потоковый фильтр, определённый пользователем

stream_filter_register

(PHP 5, PHP 7)

stream_filter_register — Регистрирует потоковый фильтр, определённый пользователем

Описание

stream_filter_register ( string $filtername , string $classname ) : bool

stream_filter_register() позволяет вам реализовать собственный фильтр для любого зарегистрированного потока, используемого со всеми другими функциями файловой системы (такими как fopen(), fread() и т. д.).

Список параметров

filtername

Название регистрируемого фильтра.

classname

Чтобы реализовать фильтр, вам нужно определить класс как расширение php_user_filter c целым рядом функций-членов. При выполнении операций чтения/записи на потоке, к которому прикреплён ваш фильтр, PHP будет передавать данные через ваш фильтр (и через любые другие фильтры, прикреплённые к потоку), так что данные могут быть изменены как требуется. Вам необходимо реализовать методы точно как описано в php_user_filter. Иная реализация приведёт к непредсказуемому поведению.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

stream_filter_register() будет возвращать FALSE, если фильтр с именем filtername уже определён.

Примеры

Пример #1 Фильтр для перевода букв в верхний регистр в потоке foo-bar.txt

Пример ниже реализует фильтр с названием strtoupper на файловом потоке foo-bar.txt, который будет переводить в заглавные все буквы, которые пишутся/читаются из этого потока.

<?php

/* Определяем наш класс фильтра */
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;
  }
}

/* Регистрируем наш фильтр в  PHP */
stream_filter_register("strtoupper", "strtoupper_filter")
    or die("Не удалось зарегистрировать фильтр");

$fp = fopen("foo-bar.txt", "w");

/* Присоединяем зарегистрированный фильтр к только что открытому потоку */
stream_filter_append($fp, "strtoupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Читаем содержимое снова
 */
readfile("foo-bar.txt");

?>

Результат выполнения данного примера:

LINE1
WORD - 2
EASY AS 123

Пример #2 Регистрация стандартного фильтра, соответствующего множественным именам фильтров.

<?php

/* Определяем наш класс фильтра */
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 {
      /* Был вызван какой-то другой фильтр str.*,
         возвращаем ошибку, чтобы  PHP мог продолжить его поиск */
      return false;
    }

    return true;
  }
}

/* Регистрируем наш фильтр в  PHP */
stream_filter_register("str.*", "string_filter")
    or die("Не удалось зарегистрировать фильтр");

$fp = fopen("foo-bar.txt", "w");

/* Присоединяем зарегистрированный фильтр к только что открытому потоку
   Мы могли бы использовать здесь  str.tolower */
stream_filter_append($fp, "str.toupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Читаем содержимое снова
 */
readfile("foo-bar.txt");
?>

Результат выполнения данного примера:

LINE1
WORD - 2
EASY AS 123

Смотрите также

  • stream_wrapper_register() - Регистрирует обёртку URL, реализованную в виде PHP-класса
  • stream_filter_append() - Прикрепить фильтр к потоку
  • stream_filter_prepend() - Прикрепляет фильтр к потоку


Удалить фильтр из потока

  • « stream_filter_register
  • stream_get_contents »
  • PHP Manual
  • Функции для работы с потоками
  • Удалить фильтр из потока

stream_filter_remove

(PHP 5 >= 5.1.0, PHP 7)

stream_filter_remove — Удалить фильтр из потока

Описание

stream_filter_remove ( resource $stream_filter ) : bool

Удаляет потоковый фильтр, ранее добавленный к потоку при помощи функции stream_filter_prepend() или stream_filter_append(). Любые данные, оставшиеся во внутреннем буфере фильтра, будут отправлены в следующий фильтр до его удаления.

Список параметров

stream_filter

Потоковый фильтр для удаления.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Динамическое изменение фильтров потока

<?php
/* Открытие тестового файла для чтения и записи */
$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);

?>

Результат выполнения данного примера:

Guvf vf a test

Смотрите также

  • stream_filter_register() - Регистрирует потоковый фильтр, определённый пользователем
  • stream_filter_append() - Прикрепить фильтр к потоку
  • stream_filter_prepend() - Прикрепляет фильтр к потоку


Читает оставшуюся часть потока в строку

  • « stream_filter_remove
  • stream_get_filters »
  • PHP Manual
  • Функции для работы с потоками
  • Читает оставшуюся часть потока в строку

stream_get_contents

(PHP 5, PHP 7)

stream_get_contents — Читает оставшуюся часть потока в строку

Описание

stream_get_contents ( resource $handle [, int $maxlength = -1 [, int $offset = -1 ]] ) : string

Похожа на функцию file_get_contents(), за исключением того, что stream_get_contents() работает с уже открытым ресурсом потока и возвращает оставшуюся часть содержимого в строку размером до maxlength байт и начиная с указанного смещения offset.

Список параметров

handle (resource)

Ресурс потока (например, полученный при помощи функции fopen())

maxlength (integer)

Максимальное количество байт для чтения. По умолчанию -1 (прочитать весь оставшийся буфер).

offset (integer)

Перейти к указанному смещению перед чтением. Если это число отрицательное, то переход не произойдёт и чтение начнётся с текущей позиции.

Возвращаемые значения

Возвращает строку или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.1.0 | Был добавлен параметр offset.

Примеры

Пример #1 Пример использования stream_get_contents()

<?php

if ($stream = fopen('http://www.example.com', 'r')) {
    // вывести всю страницу начиная со смещения 10
    echo stream_get_contents($stream, -1, 10);

    fclose($stream);
}

if ($stream = fopen('http://www.example.net', 'r')) {
    // вывести первые 5 байт
    echo stream_get_contents($stream, 5);

    fclose($stream);
}

?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • fgets() - Читает строку из файла
  • fread() - Бинарно-безопасное чтение файла
  • fpassthru() - Выводит все оставшиеся данные из файлового указателя


Получить список зарегистрированных фильтров

  • « stream_get_contents
  • stream_get_line »
  • PHP Manual
  • Функции для работы с потоками
  • Получить список зарегистрированных фильтров

stream_get_filters

(PHP 5, PHP 7)

stream_get_filters — Получить список зарегистрированных фильтров

Описание

stream_get_filters ( void ) : array

Получить список зарегистрированных фильтров на запущенной системе.

Возвращаемые значения

Возвращает индексированный массив, содержащий названия всех доступных системных фильтров потока.

Примеры

Пример #1 Пример использования функции stream_get_filters()

<?php
$streamlist = stream_get_filters();
print_r($streamlist);
?>

Результатом выполнения данного примера будет что-то подобное:

Array (
  [0] => string.rot13
  [1] => string.toupper
  [2] => string.tolower
  [3] => string.base64
  [4] => string.quoted-printable
)

Смотрите также

  • stream_filter_register() - Регистрирует потоковый фильтр, определённый пользователем
  • stream_get_wrappers() - Получить список зарегистрированных потоков


Получает строку из потокового ресурса до указанного разделителя

  • « stream_get_filters
  • stream_get_meta_data »
  • PHP Manual
  • Функции для работы с потоками
  • Получает строку из потокового ресурса до указанного разделителя

stream_get_line

(PHP 5, PHP 7)

stream_get_line — Получает строку из потокового ресурса до указанного разделителя

Описание

stream_get_line ( resource $handle , int $length [, string $ending ] ) : string

Получает строку из указанного дескриптора.

Чтение заканчивается, когда прочитано length количество байт и когда найдена строка, указанная в параметре ending (она не включается в возвращаемое значение) или достигнут EOF (смотря что произойдет раньше).

Функция очень похожа на функцию fgets(), кроме того, что она позволяет использовать разделители строк, отличающиеся от стандартных \n, \r, и \r\n, и не возвращает сам разделитель.

Список параметров

handle

Допустимый дескриптор файла.

length

Количество байт для чтения из дескриптора.

ending

Необязательный разделитель строки.

Возвращаемые значения

Возвращает строку длиной до length байт, прочитанную из файла указанного параметром handle.

Если возникает ошибка, возвращает FALSE.

Смотрите также

  • fread() - Бинарно-безопасное чтение файла
  • fgets() - Читает строку из файла
  • fgetc() - Считывает символ из файла


Извлекает заголовок/метаданные из потоков/файловых указателей

  • « stream_get_line
  • stream_get_transports »
  • PHP Manual
  • Функции для работы с потоками
  • Извлекает заголовок/метаданные из потоков/файловых указателей

stream_get_meta_data

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_get_meta_data — Извлекает заголовок/метаданные из потоков/файловых указателей

Описание

stream_get_meta_data ( resource $stream ) : array

Получает информацию о существующем потоке stream.

Список параметров

stream

Параметр stream может быть любым потоком, созданным при помощи функций fopen(), fsockopen() и pfsockopen().

Возвращаемые значения

Получаемый массив содержит следующие элементы:

  • timed_out (bool) - TRUE, если поток превысил время ожидания данных во время последнего вызова функции fread() или fgets().

  • blocked (bool) - TRUE, если поток находится в режиме блокирующего ввода-вывода. Смотрите функцию stream_set_blocking().

  • eof (bool) - TRUE, если поток достиг конца файла. Заметьте, что для потоков типа socket этот член может быть равен TRUE, даже когда unread_bytes не равно нулю. Для того, чтобы определить есть ли ещё данные для чтения, используйте feof() вместо чтения этого элемента.

  • unread_bytes (int) - количество байт, находящихся сейчас в собственном внутреннем буфере PHP.

    Замечание: Вы не должны использовать это значение в скрипте.

  • stream_type (string) - метка, описывающая внутреннюю реализацию потока.

  • wrapper_type (string) - метка, описывающая реализацию обёртки протокола, наложенного на поток. Смотрите раздел Поддерживаемые протоколы и обертки для подробной информации об обёртках.

  • wrapper_data (mixed) - специфические для обёртки данные, прикреплённые к этому потоку. Смотрите раздел Поддерживаемые протоколы и обертки для подробной информации об обёртках и их данных.

  • mode (string) - тип доступа, требуемый для этого потока (смотрите таблицу 1 в описании функции fopen())

  • seekable (bool) - можно ли перемещаться по текущему потоку.

  • uri (string) - URI/имя файла, связанное с этим потоком.

Примеры

Пример #1 Пример использования функцииstream_get_meta_data()

<?php
$url = 'http://www.example.com/';

if (!$fp = fopen($url, 'r')) {
    trigger_error("Невозможно открыть URL ($url)", E_USER_ERROR);
}

$meta = stream_get_meta_data($fp);

print_r($meta);

fclose($fp);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [wrapper_data] => Array
        (
            [0] => HTTP/1.1 200 OK
            [1] => Server: Apache/2.2.3 (Red Hat)
            [2] => Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT
            [3] => ETag: "b300b4-1b6-4059a80bfd280"
            [4] => Accept-Ranges: bytes
            [5] => Content-Type: text/html; CHARSET=Windows-1251
            [6] => Set-Cookie: FOO=BAR; expires=Fri, 21-Dec-2012 12:00:00 GMT; path=/; domain=.example.com
            [6] => Connection: close
            [7] => Date: Fri, 16 Oct 2009 12:00:00 GMT
            [8] => Age: 1164
            [9] => Content-Length: 438
        )

    [wrapper_type] => http
    [stream_type] => tcp_socket/ssl
    [mode] => r
    [unread_bytes] => 438
    [seekable] =>
    [uri] => http://www.example.com/
    [timed_out] =>
    [blocked] => 1
    [eof] =>
)

Примечания

Замечание:

Эта функция НЕ будет работать с сокетами, созданными при помощи расширения Socket.

Смотрите также

  • get_headers() - Возвращает все заголовки из ответа сервера на HTTP-запрос
  • $http_response_header


Получить список зарегистрированных транспортов сокета

  • « stream_get_meta_data
  • stream_get_wrappers »
  • PHP Manual
  • Функции для работы с потоками
  • Получить список зарегистрированных транспортов сокета

stream_get_transports

(PHP 5, PHP 7)

stream_get_transports — Получить список зарегистрированных транспортов сокета

Описание

stream_get_transports ( void ) : array

Возвращает индексированный массив, содержащий названия всех транспортов сокета, доступных на запущенной системе.

Возвращаемые значения

Возвращает индексированный массив названий транспортов сокета.

Примеры

Пример #1 Пример использования stream_get_transports()

<?php
$xportlist = stream_get_transports();
print_r($xportlist);
?>

Результатом выполнения данного примера будет что-то подобное:

Array (
  [0] => tcp
  [1] => udp
  [2] => unix
  [3] => udg
)

Смотрите также

  • stream_get_filters() - Получить список зарегистрированных фильтров
  • stream_get_wrappers() - Получить список зарегистрированных потоков


Получить список зарегистрированных потоков

  • « stream_get_transports
  • stream_is_local »
  • PHP Manual
  • Функции для работы с потоками
  • Получить список зарегистрированных потоков

stream_get_wrappers

(PHP 5, PHP 7)

stream_get_wrappers — Получить список зарегистрированных потоков

Описание

stream_get_wrappers ( void ) : array

Извлекает список зарегистрированных потоков, доступных на запущенной системе.

Возвращаемые значения

Возвращает индексированный массив, содержащий названия всех обёрток потоков, доступных на запущенной системе.

Примеры

Пример #1 Пример использования stream_get_wrappers()

<?php
print_r(stream_get_wrappers());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => php
    [1] => file
    [2] => http
    [3] => ftp
    [4] => compress.bzip2
    [5] => compress.zlib
)

Пример #2 Проверка существования обёртки потока

<?php
// Проверяет существование обёртки потока bzip2
if (in_array('compress.bzip2', stream_get_wrappers())) {
    echo 'compress.bzip2:// поддержка включена.';
} else {
    echo 'compress.bzip2:// поддержка не включена.';
}
?>

Смотрите также

  • stream_wrapper_register() - Регистрирует обёртку URL, реализованную в виде PHP-класса


Проверяет, является ли поток локальным потоком

  • « stream_get_wrappers
  • stream_isatty »
  • PHP Manual
  • Функции для работы с потоками
  • Проверяет, является ли поток локальным потоком

stream_is_local

(PHP 5 >= 5.2.4, PHP 7)

stream_is_local — Проверяет, является ли поток локальным потоком

Описание

stream_is_local ( mixed $stream_or_url ) : bool

Проверяет, является ли поток или URL локальным или нет.

Список параметров

stream_or_url

Ресурс (resource) потока или URL для проверки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример выполненияstream_is_local()

Пример простого использования.

<?php
var_dump(stream_is_local("http://example.com"));
var_dump(stream_is_local("/etc"));
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Проверяет, является ли поток TTY

  • « stream_is_local
  • stream_notification_callback »
  • PHP Manual
  • Функции для работы с потоками
  • Проверяет, является ли поток TTY

stream_isatty

(PHP 7 >= 7.2.0)

stream_isatty — Проверяет, является ли поток TTY

Описание

stream_isatty ( resource $stream ) : bool

Определяет, относится ли поток stream к действительному устройству терминального типа. Это более переносимая версия posix_isatty(), поскольку она работает и в системах Windows.

Список параметров

stream

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример выполнения stream_isatty()

Эта команда может использоваться для определения того, перенаправлен ли стандартный поток данных / стандартный поток ошибок в файл.

php -r "var_export(stream_isatty(STDERR));"

Результатом выполнения данного примера будет что-то подобное:

true
php -r "var_export(stream_isatty(STDERR));" 2>output.txt

Результатом выполнения данного примера будет что-то подобное:

false


Callback-функция для параметра контекста notification

  • « stream_isatty
  • stream_register_wrapper »
  • PHP Manual
  • Функции для работы с потоками
  • Callback-функция для параметра контекста notification

stream_notification_callback

(PHP 5 >= 5.2.0, PHP 7)

stream_notification_callback — Callback-функция для параметра контекста notification

Описание

stream_notification_callback ( int $notification_code , int $severity , string $message , int $message_code , int $bytes_transferred , int $bytes_max ) : void

Callback-функция типа callable, используемая параметром контекста notification, вызываемая во время события.

Замечание:

Это не настоящая функция, а только прототип того, как должна быть реализована функция.

Список параметров

notification_code

Одна из констант оповещения STREAM_NOTIFY_*.

severity

Одна из констант оповещения STREAM_NOTIFY_SEVERITY_*.

message

Передаётся, если для события доступно описывающее сообщение.

message_code

Передаётся, если для события доступен код описывающего сообщения.

Значение данной величины зависит от используемой обёртки.

bytes_transferred

Если доступно, то параметр bytes_transferred будет заполнен.

bytes_max

Если доступно, то параметр bytes_max будет заполнен.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования stream_notification_callback()

<?php
function stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) {

    switch($notification_code) {
        case STREAM_NOTIFY_RESOLVE:
        case STREAM_NOTIFY_AUTH_REQUIRED:
        case STREAM_NOTIFY_COMPLETED:
        case STREAM_NOTIFY_FAILURE:
        case STREAM_NOTIFY_AUTH_RESULT:
            var_dump($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max);
            /* Игнорируем */
            break;

        case STREAM_NOTIFY_REDIRECTED:
            echo "Перенаправлены на: ", $message;
            break;

        case STREAM_NOTIFY_CONNECT:
            echo "Подсоединились...";
            break;

        case STREAM_NOTIFY_FILE_SIZE_IS:
            echo "Получили размер файла: ", $bytes_max;
            break;

        case STREAM_NOTIFY_MIME_TYPE_IS:
            echo "Получили mime-тип файла: ", $message;
            break;

        case STREAM_NOTIFY_PROGRESS:
            echo "Пошёл прогресс, пока загружено ", $bytes_transferred, " байт";
            break;
    }
    echo "\n";
}

$ctx = stream_context_create();
stream_context_set_params($ctx, array("notification" => "stream_notification_callback"));

file_get_contents("http://php.net/contact", false, $ctx);
?>

Результатом выполнения данного примера будет что-то подобное:

Подсоединились...
Получили mime-тип файла: text/html; CHARSET=Windows-1251
Перенаправлены на: http://no.php.net/contact
Подсоединились...
Получили размер файла: 0
Получили mime-тип файла: text/html; CHARSET=Windows-1251
Перенаправлены на: http://no.php.net/contact.php
Подсоединились...
Получили размер файла: 4589
Получили mime-тип файла: text/html;CHARSET=Windows-1251
Пошёл прогресс, пока загружено 0 байт
Пошёл прогресс, пока загружено 0 байт
Пошёл прогресс, пока загружено 0 байт
Пошёл прогресс, пока загружено 1440 байт
Пошёл прогресс, пока загружено 2880 байт
Пошёл прогресс, пока загружено 4320 байт
Пошёл прогресс, пока загружено 5760 байт
Пошёл прогресс, пока загружено 6381 байт
Пошёл прогресс, пока загружено 7002 байт

Пример #2 Простой индикатор для загрузчика файлов из командной строки

<?php
function usage($argv) {
    echo "Использование:\n";
    printf("\tphp %s <http://example.com/file> <localfile>\n", $argv[0]);
    exit(1);
}

function stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) {
    static $filesize = null;

    switch($notification_code) {
    case STREAM_NOTIFY_RESOLVE:
    case STREAM_NOTIFY_AUTH_REQUIRED:
    case STREAM_NOTIFY_COMPLETED:
    case STREAM_NOTIFY_FAILURE:
    case STREAM_NOTIFY_AUTH_RESULT:
        /* Игнорируем */
        break;

    case STREAM_NOTIFY_REDIRECTED:
        echo "Перенаправлены на: ", $message, "\n";
        break;

    case STREAM_NOTIFY_CONNECT:
        echo "Подсоединились...\n";
        break;

    case STREAM_NOTIFY_FILE_SIZE_IS:
        $filesize = $bytes_max;
        echo "Размер файла: ", $filesize, "\n";
        break;

    case STREAM_NOTIFY_MIME_TYPE_IS:
        echo "Mime-тип файла: ", $message, "\n";
        break;

    case STREAM_NOTIFY_PROGRESS:
        if ($bytes_transferred > 0) {
            if (!isset($filesize)) {
                printf("\rНеизвестный размер файла.. Закачано %2d Кб..", $bytes_transferred/1024);
            } else {
                $length = (int)(($bytes_transferred/$filesize)*100);
                printf("\r[%-100s] %d%% (%2d/%2d kb)", str_repeat("=", $length). ">", $length, ($bytes_transferred/1024), $filesize/1024);
            }
        }
        break;
    }
}

isset($argv[1], $argv[2]) or usage($argv);

$ctx = stream_context_create();
stream_context_set_params($ctx, array("notification" => "stream_notification_callback"));

$fp = fopen($argv[1], "r", false, $ctx);
if (is_resource($fp) && file_put_contents($argv[2], $fp)) {
    echo "\nГотово!\n";
    exit(0);
}

$err = error_get_last();
echo "\nОшшшшибкка..\n", $err["message"], "\n";
exit(1);
?>

Выполнение вышеприведённого примера со следующими опциями: php -n fetch.php http://no2.php.net/get/php-5-LATEST.tar.bz2/from/this/mirror php-latest.tar.bz2 выведет что-то похожее на это:

Подсоединились...
Mime-тип файла: text/html; CHARSET=Windows-1251
Перенаправлены на: http://no2.php.net/distributions/php-5.2.5.tar.bz2
Подсоединились...
Размер файла: 7773024
Mime-тип файла: application/octet-stream
[========================================>                                                           ] 40% (3076/7590 kb)

Смотрите также

  • Параметры контекста


Псевдоним stream_wrapper_register

  • « stream_notification_callback
  • stream_resolve_include_path »
  • PHP Manual
  • Функции для работы с потоками
  • Псевдоним stream_wrapper_register

stream_register_wrapper

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_register_wrapper — Псевдоним stream_wrapper_register()

Описание

Эта функция является псевдонимом: stream_wrapper_register().


Преобразовать полное имя файла, используя пути включения

  • « stream_register_wrapper
  • stream_select »
  • PHP Manual
  • Функции для работы с потоками
  • Преобразовать полное имя файла, используя пути включения

stream_resolve_include_path

(PHP 5 >= 5.3.2, PHP 7)

stream_resolve_include_path — Преобразовать полное имя файла, используя пути включения

Описание

stream_resolve_include_path ( string $filename ) : string

Преобразовать полное имя файла из параметра filename, используя пути включения в соответствии с теми же правилами, что и функции fopen()/include.

Список параметров

filename

Имя файла, которое необходимо преобразовать.

Возвращаемые значения

Возвращает строку (string), содержащую полученное абсолютное имя файла, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования stream_resolve_include_path()

Основной пример использования.

<?php
var_dump(stream_resolve_include_path("test.php"));
?>

Результатом выполнения данного примера будет что-то подобное:

string(22) "/var/www/html/test.php"


Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec

  • « stream_resolve_include_path
  • stream_set_blocking »
  • PHP Manual
  • Функции для работы с потоками
  • Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec

stream_select

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_select — Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec

Описание

stream_select ( array &$read , array &$write , array &$except , int $tv_sec [, int $tv_usec = 0 ] ) : int

Функция stream_select() получает массивы потоков и ждёт изменения их статуса. Её работа эквивалентна работе функции socket_select(), за исключением того, что она работает с потоками.

Список параметров

read

Потоки, перечисленные в массиве read будут отслеживаться на предмет появления символов, доступных для чтения (точнее, чтобы убедиться, что чтение не будет блокироваться - в частности, потоковый ресурс также готов для чтения в конце файла, но в этом случае функция fread() будет возвращать строку нулевой длины).

write

Потоки, перечисленные в массиве write, будут отслеживаться на предмет того, что запись в них не будет блокироваться.

except

Потоки, перечисленные в массиве except, будут отслеживаться на предмет поступления высокоприоритетных исключительных (внеполосных или "out-of-band") данных.

Замечание:

Когда stream_select() возвращается, массивы read, write и except изменяются для того, чтобы указать, какие потоковые ресурсы на самом деле изменили статус.

Вам нет необходимости передавать каждый массив функции stream_select(). Вы можете использовать вместо этого пустые массивы или NULL. Также не забывайте, что эти массивы передаются по ссылке и будут изменены после выполнения функцииstream_select().
tv_sec

Параметры tv_sec и tv_usec вместе формируют параметр timeout, tv_sec указывает число секунд, а tv_usec - число микросекунд. Параметр timeout - это верхняя граница времени, которое функция stream_select() будет ожидать до возвращения. Если параметры tv_sec и tv_usec оба установлены в 0, то функция stream_select() не будет ожидать данных - вместо этого она вернётся немедленно, указывая текущий статус потоков.

Если параметр tv_sec равен NULL, то функция stream_select() может выполняться неопределённое время, возвращаясь только тогда, когда происходит событие на одном из отслеживаемых потоков (или если системный вызов прерывается сигналом).

Внимание

Использование значения тайм-аута 0 позволяет вам мгновенно опросить статус потоков, однако ПЛОХАЯ идея использовать значение тайм-аута 0 в цикле, так как это заставит ваш скрипт потреблять слишком много процессорного времени.

Гораздо лучше указать значение тайм-аута в несколько секунд, хотя если вам нужно проверять и одновременно запускать другой код, использование тайм-аута как минимум 200000 микросекунд поможет уменьшить использование процессорного времени вашим скриптом.

Запомните, что значение тайм-аута - это максимальное время, которое будет затрачено. Функция stream_select() вернётся как только запрошенные потоки будут готовы к использованию.

tv_usec

Смотрите описание параметра tv_sec.

Возвращаемые значения

В случае успеха функция stream_select() возвращает количество потоковых ресурсов, содержащееся в изменённых массивах, которое может равно нулю, если истёк тайм-аут до того, как произошло что-то интересное. В случае ошибки возвращается FALSE и возникает предупреждение (это может случится, если системный вызов прерывается входящим сигналом).

Примеры

Пример #1 Пример использования stream_select()

Этот пример проверяет, что получены данные для чтения на потоках $stream1 или $stream2. Так как значение тайм-аута равно 0, функция возвратится немедленно:

<?php
/* Подготовить массив для чтения */
$read   = array($stream1, $stream2);
$write  = NULL;
$except = NULL;
if (false === ($num_changed_streams = stream_select($read, $write, $except, 0))) {
    /* Обработка ошибок */
} elseif ($num_changed_streams > 0) {
    /* Как минимум на одном из потоков произошло что-то интересное */
}
?>

Примечания

Замечание:

По причине ограничения в текущем Zend Engine невозможно передать постоянную NULL непосредственно как параметр в функцию, которая ожидает, что этот параметр будет передан по ссылке. Вместо этого используйте временную переменную или выражение, в котором крайний левый член будет временной переменной:

<?php
$e = NULL;
stream_select($r, $w, $e, 0);
?>

Замечание:

Убедитесь, что используете оператор === при проверке на ошибку. Так как функция stream_select() может возвращать 0, сравнение с использованием == может возвращать TRUE:

<?php
$e = NULL;
if (false === stream_select($r, $w, $e, 0)) {
    echo "Произошла ошибка при вызове stream_select()\n";
}
?>

Замечание:

Если вы читаете/пишете в поток, возвращаемый в массивах, знайте, что они не обязательно читают/пишут полное количество данных, которое вы запросили. Будьте готовы к тому, чтобы иметь возможность читать/писать даже по одному байту.

Замечание:

Некоторые потоки (например, zlib) не могут быть выбраны этой функцией.

Замечание:

Совместимость с Windows: функция stream_select(), используемая на канале, возвращённом из функции proc_open(), может вызвать потерю данных под Windows 98.

Использование функции stream_select() на файловых дескрипторах, возвращённых функцией proc_open() не удастся и возвратит FALSE под Windows.

Смотрите также

  • stream_set_blocking() - Установить блокирующий/неблокирующий режим в потоке


Установить блокирующий/неблокирующий режим в потоке

  • « stream_select
  • stream_set_chunk_size »
  • PHP Manual
  • Функции для работы с потоками
  • Установить блокирующий/неблокирующий режим в потоке

stream_set_blocking

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_set_blocking — Установить блокирующий/неблокирующий режим в потоке

Описание

stream_set_blocking ( resource $stream , bool $mode ) : bool

Устанавливает блокирующий или неблокирующий режим в потоке stream.

Эта функция работает для любого потока, который поддерживает неблокирующий режим (в настоящее время это обычные файлы и сокетные потоки).

Список параметров

stream

Поток.

mode

Если параметр mode равен FALSE, указанный поток будет переключен в неблокирующий режим, а если он равен TRUE, поток будет переключен в блокирующий режим. Это влияет на такие вызовы, как fgets() и fread(), которые читают из потока. В неблокирующем режиме вызов функции fgets() будет всегда возвращаться сразу, тогда как в блокирующем режиме он будет ожидать, пока данные станут доступны на потоке.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Эта функция раньше вызывалась через set_socket_blocking() и позднее socket_set_blocking(), но это использование устарело.

Замечание:

В Windows эта функция не влияет на локальные файлы. Неблокирующий IO для локальных файлов не поддерживается в Windows.

Смотрите также

  • stream_select() - Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec


Установить размер фрагмента данных потока

  • « stream_set_blocking
  • stream_set_read_buffer »
  • PHP Manual
  • Функции для работы с потоками
  • Установить размер фрагмента данных потока

stream_set_chunk_size

(PHP 5 >= 5.4.0, PHP 7)

stream_set_chunk_size — Установить размер фрагмента данных потока

Описание

stream_set_chunk_size ( resource $fp , int $chunk_size ) : int

Установить размер фрагмента обрабатываемых данных потока.

Список параметров

fp

Поток.

chunk_size

Желаемый размер фрагмента.

Возвращаемые значения

Возвращает предыдущий размер фрагмента в случае успеха.

Вернет FALSE, если chunk_size меньше 1 или больше PHP_INT_MAX.

Ошибки

Вызывает ошибку уровня E_WARNING, если chunk_size меньше 1 или больше PHP_INT_MAX.


Установить буферизацию чтения файла на указанном потоке

  • « stream_set_chunk_size
  • stream_set_timeout »
  • PHP Manual
  • Функции для работы с потоками
  • Установить буферизацию чтения файла на указанном потоке

stream_set_read_buffer

(PHP 5 >= 5.3.3, PHP 7)

stream_set_read_buffer — Установить буферизацию чтения файла на указанном потоке

Описание

stream_set_read_buffer ( resource $stream , int $buffer ) : int

Устанавливает буфер чтения. Это эквивалент функции stream_set_write_buffer(), но для операций чтения.

Список параметров

stream

Файловый указатель.

buffer

Число байт для буферизации. Если аргумент buffer равен 0, то операции чтения не буферизуются. Это гарантирует, что все операции чтения при помощи функции fread() будут завершены до того, как остальным процессам будет позволено читать из входного потока.

Возвращаемые значения

Возвращает 0 в случае удачи, или другое значение, если запрос не может быть выполнен.

Смотрите также

  • stream_set_write_buffer() - Устанавливает буферизацию файла при записи в указанный поток


Установить значение тайм-аута для потока

  • « stream_set_read_buffer
  • stream_set_write_buffer »
  • PHP Manual
  • Функции для работы с потоками
  • Установить значение тайм-аута для потока

stream_set_timeout

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_set_timeout — Установить значение тайм-аута для потока

Описание

stream_set_timeout ( resource $stream , int $seconds [, int $microseconds = 0 ] ) : bool

Устанавливает значение тайм-аута в потоке stream, равное сумме параметров seconds и microseconds.

Когда время работы потока истекает, ключ 'timed_out' массива, возвращаемого функцией stream_get_meta_data(), устанавливается в значение TRUE, хотя ошибка или предупреждение не генерируется.

Список параметров

stream

Целевой поток.

seconds

Секунды в устанавливаемом тайм-ауте.

microseconds

Микросекунды в устанавливаемом тайм-ауте.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования stream_set_timeout()

<?php
$fp = fsockopen("www.example.com", 80);
if (!$fp) {
    echo "Невозможно открыть сокет\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 'Истекло время соединения!';
    } else {
        echo $res;
    }

}
?>

Примечания

Замечание:

Эта функция не работает с продвинутыми операциями, такими, как stream_socket_recvfrom(). Используйте вместо неё stream_select() с параметром тайм-аута

Эта функция раньше вызывалась через set_socket_timeout() и позднее через socket_set_timeout(), но это использование устарело.

Смотрите также

  • fsockopen() - Открывает соединение с интернет-сокетом или доменным сокетом Unix
  • fopen() - Открывает файл или URL


Устанавливает буферизацию файла при записи в указанный поток

  • « stream_set_timeout
  • stream_socket_accept »
  • PHP Manual
  • Функции для работы с потоками
  • Устанавливает буферизацию файла при записи в указанный поток

stream_set_write_buffer

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_set_write_buffer — Устанавливает буферизацию файла при записи в указанный поток

Описание

stream_set_write_buffer ( resource $stream , int $buffer ) : int

Устанавливает буферизацию для операций записи на заданном потоке stream в число buffer байт.

Список параметров

stream

Файловый указатель.

buffer

Число байт для буферизации. Если аргумент buffer равен 0, то операции записи не буферизуются. Это гарантирует, что все операции записи с использованием функции fwrite() будут завершены перед тем, как другим процессам будет разрешено записывать в поток вывода.

Возвращаемые значения

Возвращает 0 в случае успеха, или другое значение в случае, если запрос не может быть выполнен.

Примеры

Пример #1 Пример использования stream_set_write_buffer()

Следующий пример демонстрирует использование функции stream_set_write_buffer() для создания небуферизуемого потока.

<?php
$fp = fopen($file, "w");
if ($fp) {
   if (stream_set_write_buffer($fp, 0) !== 0) {
      // не удалось внести изменение
  }
  fwrite($fp, $output);
  fclose($fp);
}
?>

Смотрите также

  • fopen() - Открывает файл или URL
  • fwrite() - Бинарно-безопасная запись в файл


Принимать соединение в сокете, созданном c помощью функции stream_socket_server

  • « stream_set_write_buffer
  • stream_socket_client »
  • PHP Manual
  • Функции для работы с потоками
  • Принимать соединение в сокете, созданном c помощью функции stream_socket_server

stream_socket_accept

(PHP 5, PHP 7)

stream_socket_accept — Принимать соединение в сокете, созданном c помощью функции stream_socket_server()

Описание

stream_socket_accept ( resource $server_socket [, float $timeout = ini_get("default_socket_timeout") [, string &$peername ]] ) : resource

Принимать соединение в сокете, предварительно созданном с помощью функции stream_socket_server().

Список параметров

server_socket

Серверный сокет для принятия соединения.

timeout

Переопределять тайм-аут подключения сокета по умолчанию. Время должно быть указано в секундах.

peername

Будет присвоено имя (адрес) клиента, который подсоединился, если оно содержится и доступно из выбранного транспорта.

Замечание:

Может быть определено позже, используя функцию stream_socket_get_name().

Возвращаемые значения

Возвращает поток принятого соединения с сокетом или FALSE в случае возникновения ошибки.

Примечания

Внимание

Эта функция не должна использоваться с серверными сокетами UDP. Вместо этого используйте stream_socket_recvfrom() и stream_socket_sendto().

Смотрите также

  • stream_socket_server() - Создаёт интернет-сокет или доменный сокет Unix
  • stream_socket_get_name() - Получить название локального или удалённого сокета
  • stream_set_blocking() - Установить блокирующий/неблокирующий режим в потоке
  • stream_set_timeout() - Установить значение тайм-аута для потока
  • fgets() - Читает строку из файла
  • fgetss() - Читает строку из файла и удаляет HTML-теги
  • fwrite() - Бинарно-безопасная запись в файл
  • fclose() - Закрывает открытый дескриптор файла
  • feof() - Проверяет, достигнут ли конец файла
  • Функции cURL


Открыть соединение с интернет-сокетом или с доменным сокетом Unix

  • « stream_socket_accept
  • stream_socket_enable_crypto »
  • PHP Manual
  • Функции для работы с потоками
  • Открыть соединение с интернет-сокетом или с доменным сокетом Unix

stream_socket_client

(PHP 5, PHP 7)

stream_socket_client — Открыть соединение с интернет-сокетом или с доменным сокетом Unix

Описание

stream_socket_client ( string $remote_socket [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") [, int $flags = STREAM_CLIENT_CONNECT [, resource $context ]]]]] ) : resource

Начинает соединение потока или датаграммы с удалённым сокетом, указанным параметром remote_socket. Тип создаваемого сокета определяется по транспорту, указанному с использованием стандартного форматирования URL: transport://target. Для интернет-сокетов, (AF_INET) таких, как TCP и UDP, часть target параметра remote_socket должна состоять из имени хоста или IP-адреса, за которым следует двоеточие и номер порта. Для доменных сокетов Unix, часть target должна указывать на файл сокета в файловой системе.

Замечание:

По умолчанию поток будет открыт в блокирующем режиме. Вы можете переключить его в неблокирующий режим, используя функцию stream_set_blocking().

Список параметров

remote_socket

Адрес удалённого сокета для соединения.

errno

Будет присвоен номер системной ошибки, если соединение не удалось установить.

errstr

Будет присвоено сообщение о системной ошибке, если соединение не удалось установить.

timeout

Число секунд, в течение которых должен произойти тайм-аут системного вызова connect().

Замечание: Этот параметр применяется только если не происходит попытка асинхронного соединения.

Замечание:

Чтобы указать тайм-аут для чтения/записи данных через сокет, используйте функцию stream_set_timeout(), так как параметр timeout применяется только при создании соединения через сокет.

flags

Поле битовой маски, которое может принимать значение любой комбинации флагов соединения. В настоящее время набор флагов соединения ограничен следующими значениями STREAM_CLIENT_CONNECT (по умолчанию), STREAM_CLIENT_ASYNC_CONNECT и STREAM_CLIENT_PERSISTENT.

context

Действующий ресурс контекста, созданный при помощи функции stream_context_create().

Возвращаемые значения

В случае успешного выполнения возвращается ресурс потока, который может быть использован с другими файловыми функциями (такими, как fgets(), fgetss(), fwrite(), fclose(), и feof()), в случае возникновения ошибки возвращается FALSE.

Ошибки

В случае неудачного вызова функции аргументы errno и errstr будут заполнены системной ошибкой, которая произошла при системном вызове connect(). Если значение, возвращённое в аргументе errno равно 0 и функция возвратила значение FALSE, это означает, что ошибка произошла до вызова connect(). Это произошло скорее всего из-за проблемы инициализации сокета. Примите во внимание, что аргументы errno и errstr всегда будут передаваться по ссылке.

Примеры

Пример #1 Пример использования stream_socket_client()

<?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);
}
?>

Пример #2 Использование UDP-соединения

Получения дня и времени от UDP-сервиса "daytime" (порт 13) на localhost.

<?php
$fp = stream_socket_client("udp://127.0.0.1:13", $errno, $errstr);
if (!$fp) {
    echo "ОШИБКА: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>

Примечания

Внимание

UDP-сокеты иногда могут открываться без ошибки, даже если удалённый хост недоступен. Ошибка станет заметной только когда вы будете читать или писать данные из/в сокет. Причина этого в том, что UDP - это протокол без соединения, что означает, что операционная система не пытается установить соединение с сокетом до тех пор, пока ей в действительности не нужно отправить или получить данные.

Замечание: При указании числового адреса IPv6 (например, fe80::1) вы должны заключать его в квадратные скобки. Например, tcp://[fe80::1]:80.

Замечание:

В зависимости от окружения, Unix-домены или произвольный таймаут соединения могут быть недоступны. Список доступных транспортов может быть получен используя функцию stream_get_transports(). Смотрите список встроенных транспортов на странице Список поддерживаемых транспортных протоколов.

Смотрите также

  • stream_socket_server() - Создаёт интернет-сокет или доменный сокет Unix
  • stream_set_blocking() - Установить блокирующий/неблокирующий режим в потоке
  • stream_set_timeout() - Установить значение тайм-аута для потока
  • stream_select() - Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec
  • fgets() - Читает строку из файла
  • fgetss() - Читает строку из файла и удаляет HTML-теги
  • fwrite() - Бинарно-безопасная запись в файл
  • fclose() - Закрывает открытый дескриптор файла
  • feof() - Проверяет, достигнут ли конец файла
  • Функции cURL


Включает или отключает шифрование на уже подключённом сокете

  • « stream_socket_client
  • stream_socket_get_name »
  • PHP Manual
  • Функции для работы с потоками
  • Включает или отключает шифрование на уже подключённом сокете

stream_socket_enable_crypto

(PHP 5 >= 5.1.0, PHP 7)

stream_socket_enable_crypto — Включает или отключает шифрование на уже подключённом сокете

Описание

stream_socket_enable_crypto ( resource $stream , bool $enable [, int $crypto_type [, resource $session_stream ]] ) : mixed

Включает или отключает шифрование на потоке.

После настройки шифрования, криптография может быть включена или выключена динамически при помощи передачи значения TRUE или FALSE параметру enable.

Список параметров

stream

Потоковый ресурс.

enable

Включить/отключить криптографию на потоке.

crypto_type

Включить шифрование на потоке. Допустимые методы

  • STREAM_CRYPTO_METHOD_SSLv2_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv3_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv23_CLIENT
  • STREAM_CRYPTO_METHOD_ANY_CLIENT
  • STREAM_CRYPTO_METHOD_TLS_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv2_SERVER
  • STREAM_CRYPTO_METHOD_SSLv3_SERVER
  • STREAM_CRYPTO_METHOD_SSLv23_SERVER
  • STREAM_CRYPTO_METHOD_ANY_SERVER
  • STREAM_CRYPTO_METHOD_TLS_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_0_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_1_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_2_SERVER

Если не указан, то будет использован параметр crypto_method из SSL контекста потока.

session_stream

Использовать в потоке настройки из session_stream.

Возвращаемые значения

Возвращает TRUE в случае успеха, FALSE, если не удалось установить шифрование или 0, если недостаточно данных и вы должны попытаться ещё раз (только для неблокирующих сокетов).

Список изменений

Версия | Описание
5.6.0 | Добавлены константы STREAM_CRYPTO_METHOD_ANY_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT, STREAM_CRYPTO_METHOD_ANY_SERVER, STREAM_CRYPTO_METHOD_TLSv1_0_SERVER, STREAM_CRYPTO_METHOD_TLSv1_1_SERVER, STREAM_CRYPTO_METHOD_TLSv1_2_SERVER.
5.6.0 | Параметр crypto_type теперь необязателен.

Примеры

Пример #1 Пример использования stream_socket_enable_crypto()

<?php
$fp = stream_socket_client("tcp://myproto.example.com:31337", $errno, $errstr, 30);
if (!$fp) {
    die("Не могу соединиться: $errstr ($errno)");
}

/* Включить шифрование для этапа входа в систему */
stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);
fwrite($fp, "USER бог\r\n");
fwrite($fp, "PASS секрет\r\n");

/* Отключить шифрование для всего остального */
stream_socket_enable_crypto($fp, false);

while ($motd = fgets($fp)) {
    echo $motd;
}

fclose($fp);
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • Функции OpenSSL
    •

  • Список поддерживаемых транспортных протоколов
    •


Получить название локального или удалённого сокета

  • « stream_socket_enable_crypto
  • stream_socket_pair »
  • PHP Manual
  • Функции для работы с потоками
  • Получить название локального или удалённого сокета

stream_socket_get_name

(PHP 5, PHP 7)

stream_socket_get_name — Получить название локального или удалённого сокета

Описание

stream_socket_get_name ( resource $handle , bool $want_peer ) : string

Возвращает локальное или удалённое название указанного сокетного соединения.

Список параметров

handle

Сокет, название которого нужно получить.

want_peer

Если установлено в TRUE, то будет возвращено удалённое название сокета, если установлено в FALSE, то будет возвращено локальное название.

Возвращаемые значения

Название сокета.

Смотрите также

  • stream_socket_accept() - Принимать соединение в сокете, созданном c помощью функции stream_socket_server


Создаёт пару подключённых, неразличимых потоков сокетов

  • « stream_socket_get_name
  • stream_socket_recvfrom »
  • PHP Manual
  • Функции для работы с потоками
  • Создаёт пару подключённых, неразличимых потоков сокетов

stream_socket_pair

(PHP 5 >= 5.1.0, PHP 7)

stream_socket_pair — Создаёт пару подключённых, неразличимых потоков сокетов

Описание

stream_socket_pair ( int $domain , int $type , int $protocol ) : array

stream_socket_pair() создаёт пару подключённых, неразличимых потоков советов. Эта функция обычно используется в IPC (межпроцессном взаимодействии).

Список параметров

domain

Используемое семейство протоколов: STREAM_PF_INET, STREAM_PF_INET6 или STREAM_PF_UNIX

type

Используемый тип взаимодействия: STREAM_SOCK_DGRAM, STREAM_SOCK_RAW, STREAM_SOCK_RDM, STREAM_SOCK_SEQPACKET или STREAM_SOCK_STREAM

protocol

Используемый протокол: STREAM_IPPROTO_ICMP, STREAM_IPPROTO_IP, STREAM_IPPROTO_RAW, STREAM_IPPROTO_TCP or STREAM_IPPROTO_UDP

Замечание: Пожалуйста, обратитесь к разделу Список потоковых констант за подробной информацией по каждой константе.

Возвращаемые значения

Возвращает массив (array) с двумя потоковыми ресурсами в случае успеха, или FALSE в случае неудачи.

Список изменений

Версия | Описание
5.3.0 | Теперь эта функция доступна на Windows платформах.

Примеры

Пример #1 Пример использования stream_socket_pair()

Этот пример демонстрирует основы использования функции stream_socket_pair() в межпроцессном взаимодействии.

<?php

$sockets = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, STREAM_IPPROTO_IP);
$pid     = pcntl_fork();

if ($pid == -1) {
     die('не удалось создать процесс');

} else if ($pid) {
     /* родительский процесс */
    fclose($sockets[0]);

    fwrite($sockets[1], "дочерний PID: $pid\n");
    echo fgets($sockets[1]);

    fclose($sockets[1]);

} else {
    /* дочерний процесс */
    fclose($sockets[1]);

    fwrite($sockets[0], "сообщение от дочернего процесса\n");
    echo fgets($sockets[0]);

    fclose($sockets[0]);
}

?>

Результатом выполнения данного примера будет что-то подобное:

дочерний PID: 1378
сообщение от дочернего процесса


Получает данные из сокета, подключённого или нет

  • « stream_socket_pair
  • stream_socket_sendto »
  • PHP Manual
  • Функции для работы с потоками
  • Получает данные из сокета, подключённого или нет

stream_socket_recvfrom

(PHP 5, PHP 7)

stream_socket_recvfrom — Получает данные из сокета, подключённого или нет

Описание

stream_socket_recvfrom ( resource $socket , int $length [, int $flags = 0 [, string &$address ]] ) : string

stream_socket_recvfrom() принимает данные из удалённого сокета размером до length байт.

Список параметров

socket

Удалённый сокет.

length

Количество байт для получения из параметра socket.

flags

Значение параметра flags может быть любой комбинацией из следующего:

Возможные значения для параметра flags
STREAM_OOB | Обрабатывать данные OOB (out-of-band).
STREAM_PEEK | Получать данные из сокета, но не расходовать буфер. Последующие вызовы функций fread() или stream_socket_recvfrom() получат те же самые данные.

address

Если указан параметр address, он будет заполнен адресом удалённого сокета.

Возвращаемые значения

Возвращает прочитанные данные в виде строки

Примеры

Пример #1 Пример использования функции stream_socket_recvfrom()

<?php
/* Открывает серверный сокет на 1234-м порту на localhost */
$server = stream_socket_server('tcp://127.0.0.1:1234');

/* Принимает соединение */
$socket = stream_socket_accept($server);

/* Получает пакет (обычный размер MTU 1500) OOB-данных */
echo "Получены данные OOB (Out-Of-Band): '" . stream_socket_recvfrom($socket, 1500, STREAM_OOB) . "'\n";

/* Получить обычные данные, но не расходовать их. */
echo "Данные: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n";

/* Получить тот же самый пакет снова, но в этот раз удалить его из буфера данных. */
echo "Данные: '" . stream_socket_recvfrom($socket, 1500) . "'\n";

/* Закрыть сокет */
fclose($socket);
fclose($server);
?>

Примечания

Замечание:

Если получено сообщение длиной больше, чем параметр length, лишние байты могут быть пропущены в зависимости от типа сокета, из которого получено сообщение (такого, как UDP).

Замечание:

Вызовы функции stream_socket_recvfrom() на потоках, основанных на сокетах, после вызовов потоковых функций, основанных на буферах (таких как fread() или stream_get_line()) читают данные непосредственно из сокета и пропускают потоковый буфер.

Смотрите также

  • stream_socket_sendto() - Отправляет сообщение в сокет, независимо от того, подсоединён он или нет
  • stream_socket_client() - Открыть соединение с интернет-сокетом или с доменным сокетом Unix
  • stream_socket_server() - Создаёт интернет-сокет или доменный сокет Unix


Отправляет сообщение в сокет, независимо от того, подсоединён он или нет

  • « stream_socket_recvfrom
  • stream_socket_server »
  • PHP Manual
  • Функции для работы с потоками
  • Отправляет сообщение в сокет, независимо от того, подсоединён он или нет

stream_socket_sendto

(PHP 5, PHP 7)

stream_socket_sendto — Отправляет сообщение в сокет, независимо от того, подсоединён он или нет

Описание

stream_socket_sendto ( resource $socket , string $data [, int $flags = 0 [, string $address ]] ) : int

Отправляет указанные данные data через сокет socket.

Список параметров

socket

Сокет для отправки данных data.

data

Отправляемые данные.

flags

Значение параметра flags может быть любой из следующих комбинаций:

возможные значения для параметра flags
STREAM_OOB Обрабатывать OOB (out-of-band, внеполосные) данные.

address

Адрес, указанный при создании потокового сокета, будет использоваться до тех пор, пока не указан альтернативный адрес в параметре address.

Если указан, он должен быть в формате ipv4 или ipv6.

Возвращаемые значения

Возвращает код результата, как целое число.

Примеры

Пример #1 Пример использования stream_socket_sendto()

<?php
/* Открыть сокет на 1234-м порту на localhost */
$socket = stream_socket_client('tcp://127.0.0.1:1234');

/* Отправить обычные данные через обычные каналы. */
fwrite($socket, "Передача обычных данных.");

/* Отправляем внеполосные данные. */
stream_socket_sendto($socket, "Внеполосные данные.", STREAM_OOB);

/* Закрыть сокет */
fclose($socket);
?>

Смотрите также

  • stream_socket_recvfrom() - Получает данные из сокета, подключённого или нет
  • stream_socket_client() - Открыть соединение с интернет-сокетом или с доменным сокетом Unix
  • stream_socket_server() - Создаёт интернет-сокет или доменный сокет Unix


Создаёт интернет-сокет или доменный сокет Unix

  • « stream_socket_sendto
  • stream_socket_shutdown »
  • PHP Manual
  • Функции для работы с потоками
  • Создаёт интернет-сокет или доменный сокет Unix

stream_socket_server

(PHP 5, PHP 7)

stream_socket_server — Создаёт интернет-сокет или доменный сокет Unix

Описание

stream_socket_server ( string $local_socket [, int &$errno [, string &$errstr [, int $flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN [, resource $context ]]]] ) : resource

Создаёт сокет потока или датаграммы на указанном local_socket.

Эта функция только создаёт сокет. Чтобы начать принимать соединения используйте stream_socket_accept().

Список параметров

local_socket

Тип создаваемого сокета определяется по транспорту, указанному с использованием стандартного форматирования URL: transport://target.

Для доменных сокетов интернета (AF_INET), таких как TCP и UDP, часть target параметра remote_socket должна состоять из имени хоста или IP-адреса с последующим двоеточием и номера порта. Для доменных сокетов Unix часть target должна указывать на файл сокета в файловой системе.

В зависимости от окружения, доменные сокеты Unix могут быть недоступны. Список доступных транспортов может быть получен при помощи функции stream_get_transports(). Смотрите Список поддерживаемых транспортных протоколов для списка встроенных транспортов.

errno

Если необязательные аргументы errno и errstr присутствуют, то они будут установлены для указания действительного уровня системной ошибки, которая происходит при системных вызовах socket(), bind() и listen(). Если значение, возвращаемое в errno, равно 0 и функция возвратила FALSE, это означает, что ошибка произошла до вызова bind(). Скорее всего это произошло из-за проблемы инициализации сокета. Примите во внимание, что аргументы errno и errstr должны всегда передаваться по ссылке.

errstr

Смотрите описание параметра errno.

flags

Битовая маска, которая может быть установлена в любую комбинацию флагов для создания сокета.

Замечание:

Для UDP-сокетов вы должны использовать STREAM_SERVER_BIND в качестве параметра flags.

context

Возвращаемые значения

Возвращает созданный поток или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования серверных сокетов TCP

<?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, 'Локальное время ' . date('n/j/Y g:i a') . "\n");
    fclose($conn);
  }
  fclose($socket);
}
?>

Пример ниже показывает, как работать в качестве сервера времени, который может отвечать на запросы времени, как показано в примере функции stream_socket_client().

Замечание: Большинство систем требуют доступа с правами root для создания серверного сокета на порту ниже, чем 1024.

Пример #2 Пример использования серверных сокетов UDP

<?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.

Смотрите также

  • stream_socket_client() - Открыть соединение с интернет-сокетом или с доменным сокетом Unix
  • stream_set_blocking() - Установить блокирующий/неблокирующий режим в потоке
  • stream_set_timeout() - Установить значение тайм-аута для потока
  • fgets() - Читает строку из файла
  • fgetss() - Читает строку из файла и удаляет HTML-теги
  • fwrite() - Бинарно-безопасная запись в файл
  • fclose() - Закрывает открытый дескриптор файла
  • feof() - Проверяет, достигнут ли конец файла
  • Расширение curl


Закрыть полнодуплексное соединение

  • « stream_socket_server
  • stream_supports_lock »
  • PHP Manual
  • Функции для работы с потоками
  • Закрыть полнодуплексное соединение

stream_socket_shutdown

(PHP 5 >= 5.2.1, PHP 7)

stream_socket_shutdown — Закрыть полнодуплексное соединение

Описание

stream_socket_shutdown ( resource $stream , int $how ) : bool

Закрывает (частично или нет) полнодуплексное соединение.

Замечание:

Ассоциированные буферы, или буферы, могут быть закрыты, а могут и нет.

Список параметров

stream

Открытый поток (например, открытый при помощи функции stream_socket_client())

how

Одна из следующих констант: STREAM_SHUT_RD (отключает последующее получение данных), STREAM_SHUT_WR (отключает последующую передачу данных) или STREAM_SHUT_RDWR (отключает последующие получение и передачу данных).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования stream_socket_shutdown()

<?php

$server = stream_socket_server('tcp://127.0.0.1:1337');
$client = stream_socket_client('tcp://127.0.0.1:1337');

var_dump(fputs($client, "привет"));

stream_socket_shutdown($client, STREAM_SHUT_WR);
var_dump(fputs($client, "привет")); // не работает сейчас

?>

Результатом выполнения данного примера будет что-то подобное:

int(5)

Notice: fputs(): send of 6 bytes failed with errno=32 Broken pipe in test.php on line 9
int(0)

Смотрите также

  • fclose() - Закрывает открытый дескриптор файла


Определяет, поддерживает ли поток блокировку

  • « stream_socket_shutdown
  • stream_wrapper_register »
  • PHP Manual
  • Функции для работы с потоками
  • Определяет, поддерживает ли поток блокировку

stream_supports_lock

(PHP 5 >= 5.3.0, PHP 7)

stream_supports_lock — Определяет, поддерживает ли поток блокировку

Описание

stream_supports_lock ( resource $stream ) : bool

Определяет, поддерживает ли поток блокировку с использованием flock().

Список параметров

stream

Поток для проверки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • flock() - Портируемая консультативная блокировка файлов


Регистрирует обёртку URL, реализованную в виде PHP-класса

  • « stream_supports_lock
  • stream_wrapper_restore »
  • PHP Manual
  • Функции для работы с потоками
  • Регистрирует обёртку URL, реализованную в виде PHP-класса

stream_wrapper_register

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

stream_wrapper_register — Регистрирует обёртку URL, реализованную в виде PHP-класса

Описание

stream_wrapper_register ( string $protocol , string $classname [, int $flags = 0 ] ) : bool

Позволяет вам реализовать ваши собственные обработчики протоколов и потоков для использования со всеми другими функциями файловой системы (такими как fopen(), fread() и т.д.).

Список параметров

protocol

Название регистрируемой обёртки.

classname

Название класса, который реализует протокол protocol.

flags

Должно быть установлено в STREAM_IS_URL, если параметр protocol является протоколом URL. По умолчанию 0, локальный поток.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

stream_wrapper_register() будет возвращать FALSE, если протокол protocol уже имеет обработчик.

Список изменений

Версия | Описание
5.2.4 | Добавлен параметр flags.

Примеры

Пример #1 Как зарегистрировать обёртку потока

<?php
$existed = in_array("var", stream_get_wrappers());
if ($existed) {
    stream_wrapper_unregister("var");
}
stream_wrapper_register("var", "VariableStream");
$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);

if ($existed) {
    stream_wrapper_restore("var");
}

?>

Результат выполнения данного примера:

line1
line2
line3
string(18) "line1
line2
line3
"

Смотрите также

  • Класс-прототип streamWrapper
  • Пример класса, зарегистрированного в качестве обертки потока
  • stream_wrapper_unregister() - Отменяет регистрацию обёртки URL
  • stream_wrapper_restore() - Восстанавливает отменённую ранее встроенную обёртку
  • stream_get_wrappers() - Получить список зарегистрированных потоков


Восстанавливает отменённую ранее встроенную обёртку

  • « stream_wrapper_register
  • stream_wrapper_unregister »
  • PHP Manual
  • Функции для работы с потоками
  • Восстанавливает отменённую ранее встроенную обёртку

stream_wrapper_restore

(PHP 5 >= 5.1.0, PHP 7)

stream_wrapper_restore — Восстанавливает отменённую ранее встроенную обёртку

Описание

stream_wrapper_restore ( string $protocol ) : bool

Восстанавливает встроенную обёртку, регистрация которой раньше была отменена при помощи stream_wrapper_unregister().

Список параметров

protocol

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Отменяет регистрацию обёртки URL

  • « stream_wrapper_restore
  • Swoole »
  • PHP Manual
  • Функции для работы с потоками
  • Отменяет регистрацию обёртки URL

stream_wrapper_unregister

(PHP 5 >= 5.1.0, PHP 7)

stream_wrapper_unregister — Отменяет регистрацию обёртки URL

Описание

stream_wrapper_unregister ( string $protocol ) : bool

Позволяет вам отключить уже определённую обёртку потока. Как только обёртка будет отключена, вы можете перезаписать её пользовательской обёрткой, используя stream_wrapper_register() или включить её повторно, используя stream_wrapper_restore().

Список параметров

protocol

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Swoole

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Swoole
    • swoole_async_dns_lookup — Асинхронный и неблокирующий поиск имени хоста или IP-адреса
    • swoole_async_read — Асинхронное чтение потока файла
    • swoole_async_readfile — Асинхронное чтение файла
    • swoole_async_set — Обновление опций асинхронного ввода-вывода
    • swoole_async_write — Асинхронная запись данных в поток файла
    • swoole_async_writefile — Асинхронная запись данных в файл
    • swoole_client_select — Получить описание файла, готового к чтению/записи или ошибке
    • swoole_cpu_num — Получить количество CPU
    • swoole_errno — Получить код ошибки последнего системного вызова
    • swoole_event_add — Добавить новых callback-функций сокета в цикл событий
    • swoole_event_defer — Добавить callback-функцию в следующий цикл событий
    • swoole_event_del — Удалить все callback-функции сокета
    • swoole_event_exit — Закрыть цикл событий, доступный только на стороне клиента
    • swoole_event_set — Обновить callback-функции события сокета
    • swoole_event_wait — Запустить цикл событий
    • swoole_event_write — Записать данные в сокет
    • swoole_get_local_ip — Получить IP-адреса в формате IPv4 каждой сетевой платы (NIC) компьютера
    • swoole_last_error — Получить последнее сообщение об ошибке
    • swoole_load_module — Загрузить модуль swoole
    • swoole_select — Выбрать описания файлов, которые готовы к чтению/записи или ошибке в цикл событий
    • swoole_set_process_name — Установить имя процесса
    • swoole_strerror — Сконвертировать Errno в сообщения об ошибках
    • swoole_timer_after — Запуск callback-функции один раз в будущем
    • swoole_timer_exists — Проверить, существует ли callback-функция таймера
    • swoole_timer_tick — Вызвать callback-функцию таймера тактов через определенный промежуток времени
    • swoole_version — Получить версию Swoole
  • Swoole\Async — Класс Swoole\Async
    • Swoole\Async::dnsLookup — Асинхронный и неблокирующий поиск IP по имени хоста
    • Swoole\Async::read — Асинхронное чтение файлового потока
    • Swoole\Async::readFile — Асинхронное чтение файла
    • Swoole\Async::set — Обновляет параметры асинхронного ввода-вывода
    • Swoole\Async::write — Асинхронно записывает данные в файловый поток
    • Swoole\Async::writeFile — Описание
  • Swoole\Atomic — Класс Swoole\Atomic
    • Swoole\Atomic::add — Добавляет число к значению атомарного объекта
    • Swoole\Atomic::cmpset — Сравнивает и устанавливает значение атомарного объекта
    • Swoole\Atomic::__construct — Создает атомарный объект swoole
    • Swoole\Atomic::get — Получает текущее значение атомарного объекта
    • Swoole\Atomic::set — Устанавливает новое значение для атомарного объекта
    • Swoole\Atomic::sub — Вычитает число из значения атомарного объекта
  • Swoole\Buffer — Класс Swoole\Buffer
    • Swoole\Buffer::append — Добавляет строку или двоичные данные в конец буфера памяти и возвращает новый размер выделенной памяти
    • Swoole\Buffer::clear — Сбрасывает буфер памяти
    • Swoole\Buffer::__construct — Фиксированный размер блока памяти
    • Swoole\Buffer::__destruct — Уничтожает буфер памяти Swoole
    • Swoole\Buffer::expand — Расширяет размер буфера памяти
    • Swoole\Buffer::read — Читает данные из буфера памяти на основе смещения и длины
    • Swoole\Buffer::recycle — Освобождает память для ОС, которая не используется буфером памяти
    • Swoole\Buffer::substr — Считывает данные из буфера памяти на основе смещения и длины. Или удаляет данные из буфера памяти
    • Swoole\Buffer::__toString — Получает строковое значение буфера памяти
    • Swoole\Buffer::write — Записывает данные в буфер памяти. Память, выделенная для буфера, не будет изменена
  • Swoole\Channel — Класс Swoole\Channel
    • Swoole\Channel::__construct — Construct a Swoole Channel
    • Swoole\Channel::__destruct — Destruct a Swoole channel.
    • Swoole\Channel::pop — Read and pop data from swoole channel.
    • Swoole\Channel::push — Write and push data into Swoole channel.
    • Swoole\Channel::stats — Get stats of swoole channel.
  • Swoole\Client — Класс Swoole\Client
    • Swoole\Client::close — Close the connection established.
    • Swoole\Client::connect — Connect to the remote TCP or UDP port.
    • Swoole\Client::__construct — Create Swoole sync or async TCP/UDP client, with or without SSL.
    • Swoole\Client::__destruct — Destruct the Swoole client.
    • Swoole\Client::getpeername — Get the remote socket name of the connection.
    • Swoole\Client::getsockname — Get the local socket name of the connection.
    • Swoole\Client::isConnected — Check if the connection is established.
    • Swoole\Client::on — Add callback functions triggered by events.
    • Swoole\Client::pause — Pause receiving data.
    • Swoole\Client::pipe — Redirect the data to another file descriptor.
    • Swoole\Client::recv — Receive data from the remote socket.
    • Swoole\Client::resume — Resume receiving data.
    • Swoole\Client::send — Send data to the remote TCP socket.
    • Swoole\Client::sendfile — Send file to the remote TCP socket.
    • Swoole\Client::sendto — Send data to the remote UDP address.
    • Swoole\Client::set — Set the Swoole client parameters before the connection is established.
    • Swoole\Client::sleep — Remove the TCP client from system event loop.
    • Swoole\Client::wakeup — Add the TCP client back into the system event loop.
  • Swoole\Connection\Iterator — Класс Swoole\Connection\Iterator
    • Swoole\Connection\Iterator::count — Считает соединения
    • Swoole\Connection\Iterator::current — Возвращает текущую запись соединения
    • Swoole\Connection\Iterator::key — Возвращает ключ текущего соединения
    • Swoole\Connection\Iterator::next — Переходит к следующему соединению
    • Swoole\Connection\Iterator::offsetExists — Проверяет, существует ли смещение
    • Swoole\Connection\Iterator::offsetGet — Смещение для извлечения
    • Swoole\Connection\Iterator::offsetSet — Назначает соединение для указанного смещения
    • Swoole\Connection\Iterator::offsetUnset — Сбрасывает смещение
    • Swoole\Connection\Iterator::rewind — Перематывает итератор
    • Swoole\Connection\Iterator::valid — Проверяет правильность текущей позиции
  • Swoole\Coroutine — Класс Swoole\Coroutine
    • Swoole\Coroutine::call_user_func_array — Call a callback with an array of parameters
    • Swoole\Coroutine::call_user_func — Call a callback given by the first parameter
    • Swoole\Coroutine::cli_wait — Description
    • Swoole\Coroutine::create — Description
    • Swoole\Coroutine\Client::close — Описание
    • Swoole\Coroutine\Client::connect — Описание
    • Swoole\Coroutine\Client::__construct — Описание
    • Swoole\Coroutine\Client::__destruct — Описание
    • Swoole\Coroutine\Client::getpeername — Описание
    • Swoole\Coroutine\Client::getsockname — Описание
    • Swoole\Coroutine\Client::isConnected — Описание
    • Swoole\Coroutine\Client::recv — Описание
    • Swoole\Coroutine\Client::send — Описание
    • Swoole\Coroutine\Client::sendfile — Описание
    • Swoole\Coroutine\Client::sendto — Описание
    • Swoole\Coroutine\Client::set — Описание
    • Swoole\Coroutine\Http\Client::addFile — Описание
    • Swoole\Coroutine\Http\Client::close — Описание
    • Swoole\Coroutine\Http\Client::__construct — Описание
    • Swoole\Coroutine\Http\Client::__destruct — Описание
    • Swoole\Coroutine\Http\Client::execute — Описание
    • Swoole\Coroutine\Http\Client::get — Описание
    • Swoole\Coroutine\Http\Client::getDefer — Описание
    • Swoole\Coroutine\Http\Client::isConnected — Описание
    • Swoole\Coroutine\Http\Client::post — Описание
    • Swoole\Coroutine\Http\Client::recv — Описание
    • Swoole\Coroutine\Http\Client::set — Описание
    • Swoole\Coroutine\Http\Client::setCookies — Описание
    • Swoole\Coroutine\Http\Client::setData — Описание
    • Swoole\Coroutine\Http\Client::setDefer — Описание
    • Swoole\Coroutine\Http\Client::setHeaders — Описание
    • Swoole\Coroutine\Http\Client::setMethod — Описание
    • Swoole\Coroutine\MySQL::close — Описание
    • Swoole\Coroutine\MySQL::connect — Описание
    • Swoole\Coroutine\MySQL::__construct — Описание
    • Swoole\Coroutine\MySQL::__destruct — Описание
    • Swoole\Coroutine\MySQL::getDefer — Описание
    • Swoole\Coroutine\MySQL::query — Описание
    • Swoole\Coroutine\MySQL::recv — Описание
    • Swoole\Coroutine\MySQL::setDefer — Описание
    • Swoole\Coroutine::getuid — Description
    • Swoole\Coroutine::resume — Description
    • Swoole\Coroutine::suspend — Description
  • Swoole\Event — Класс Swoole\Event
    • Swoole\Event::add — Добавляет новые callback-функции сокета в EventLoop
    • Swoole\Event::defer — Добавляет callback-функцию в следующий цикл событий
    • Swoole\Event::del — Удаляет все callback-функции события сокета
    • Swoole\Event::exit — Выходит из цикла событий, доступо только на стороне клиента
    • Swoole\Event::set — Обновляет callback-функции события сокета
    • Swoole\Event::wait — Описание
    • Swoole\Event::write — Записывает данные в сокет
  • Swoole\Exception — Класс Swoole\Exception
  • Swoole\Http\Client — Класс Swoole\Http\Client
    • Swoole\Http\Client::addFile — Добавляет файл в форму сообщения
    • Swoole\Http\Client::close — Закрывает http-соединение
    • Swoole\Http\Client::__construct — Создает асинхронный HTTP-клиент
    • Swoole\Http\Client::__destruct — Уничтожает HTTP-клиент
    • Swoole\Http\Client::download — Загружает файл с удаленного сервера
    • Swoole\Http\Client::execute — Посылает HTTP-запрос после установки параметров
    • Swoole\Http\Client::get — Отправляет HTTP-запрос GET на удаленный сервер
    • Swoole\Http\Client::isConnected — Проверяет, подключено ли соединение HTTP
    • Swoole\Http\Client::on — Регистрирует callback-функцию по имени события
    • Swoole\Http\Client::post — Отправляет HTTP-запрос POST на удаленный сервер
    • Swoole\Http\Client::push — Передает данные в клиент websocket
    • Swoole\Http\Client::set — Обновляет параметры HTTP-клиента
    • Swoole\Http\Client::setCookies — Устанавливает cookies для HTTP-запроса
    • Swoole\Http\Client::setData — Устанавливает данные тела HTTP-запроса
    • Swoole\Http\Client::setHeaders — Устанавливает заголовки HTTP-запроса
    • Swoole\Http\Client::setMethod — Устанавливает метод HTTP-запроса
    • Swoole\Http\Client::upgrade — Обновление до протокола websocket
  • Swoole\Http\Request — Класс Swoole\Http\Request
    • Swoole\Http\Request::__destruct — Уничтожает HTTP-запрос
    • Swoole\Http\Request::rawcontent — Получает необработанное тело HTTP POST
  • Swoole\Http\Response — Класс Swoole\Http\Response
    • Swoole\Http\Response::cookie — Устанавливает cookie HTTP-ответа
    • Swoole\Http\Response::__destruct — Уничтожает HTTP-ответ
    • Swoole\Http\Response::end — Отправляет данные HTTP-запроса и завершает ответ
    • Swoole\Http\Response::gzip — Включает gzip-сжатие содержимого ответа.
    • Swoole\Http\Response::header — Устанавливает заголовки HTTP-ответа
    • Swoole\Http\Response::initHeader — Инициировать заголовок HTTP-ответа
    • Swoole\Http\Response::rawcookie — Устанавливает необработанные cookie в HTTP-ответ
    • Swoole\Http\Response::sendfile — Отправляет файл через HTTP-ответ
    • Swoole\Http\Response::status — Устанавливает код состояния HTTP-ответа
    • Swoole\Http\Response::write — Добавляет содержимое тела HTTP в HTTP-ответ
  • Swoole\Http\Server — Класс Swoole\Http\Server
    • Swoole\Http\Server::on — Привязывает callback-функцию к HTTP-серверу по имени события
    • Swoole\Http\Server::start — Запускает http-сервер swoole
  • Swoole\Lock — Класс Swoole\Lock
    • Swoole\Lock::__construct — Construct a memory lock.
    • Swoole\Lock::__destruct — Destory a Swoole memory lock.
    • Swoole\Lock::lock_read — Lock a read-write lock for reading.
    • Swoole\Lock::lock — Try to acquire the lock. It will block if the lock is not available.
    • Swoole\Lock::trylock_read — Try to lock a read-write lock for reading and return straight away even the lock is not available.
    • Swoole\Lock::trylock — Try to acquire the lock and return straight away even the lock is not available.
    • Swoole\Lock::unlock — Release the lock.
  • Swoole\Mmap — Класс Swoole\Mmap
    • Swoole\Mmap::open — Отобразить файл в память и вернуть ресурс потока, который может использоваться операциями потока PHP
  • Swoole\MySQL — Класс Swoole\MySQL
    • Swoole\MySQL::close — Закрывает асинхронное соединение MySQL
    • Swoole\MySQL::connect — Подключается к удаленному серверу MySQL
    • Swoole\MySQL::__construct — Создает асинхронный клиент MySQL
    • Swoole\MySQL::__destruct — Уничтожает асинхронный клиент MySQL
    • Swoole\MySQL::getBuffer — Описание
    • Swoole\MySQL::on — Регистрирует callback-функцию на основе имени события
    • Swoole\MySQL::query — Выполняет запрос SQL
  • Swoole\MySQL\Exception — Класс Swoole\MySQL\Exception
  • Swoole\Process — Класс Swoole\Process
    • Swoole\Process::alarm — Таймер высокой точности, который запускает сигнал с фиксированным интервалом
    • Swoole\Process::close — Закрывает канал для дочернего процесса
    • Swoole\Process::__construct — Создает процесс
    • Swoole\Process::daemon — Изменяет процесс на процесс-демон
    • Swoole\Process::__destruct — Уничтожает процесс
    • Swoole\Process::exec — Выполняет системные команды
    • Swoole\Process::exit — Останавливает дочерние процессы
    • Swoole\Process::freeQueue — Уничтожает очередь сообщений, созданную swoole_process::useQueue
    • Swoole\Process::kill — Посылает сигнал дочернему процессу
    • Swoole\Process::name — Устанавливает название процесса
    • Swoole\Process::pop — Читает и извлекает данные из очереди сообщений
    • Swoole\Process::push — Записывает и помещает данные в очередь сообщений
    • Swoole\Process::read — Читает данные отправки в процесс
    • Swoole\Process::signal — Посылает сигнал дочерним процессам
    • Swoole\Process::start — Запускает процесс
    • Swoole\Process::statQueue — Получает статистику очереди сообщений, используемой в качестве метода связи между процессами
    • Swoole\Process::useQueue — Создает очередь сообщений в качестве метода связи между родительским процессом и дочерними процессами
    • Swoole\Process::wait — Ожидает событий дочерних процессов
    • Swoole\Process::write — Записывает данные в канал и связывается с родительским процессом или дочерними процессами
  • Swoole\Redis\Server — Класс Swoole\Redis\Server
    • Swoole\Redis\Server::format — Описание
    • Swoole\Redis\Server::setHandler — Описание
    • Swoole\Redis\Server::start — Описание
  • Swoole\Serialize — Класс Swoole\Serialize
    • Swoole\Serialize::pack — Сериализовать данные
    • Swoole\Serialize::unpack — Десериализовать данные
  • Swoole\Server — Класс Swoole\Server
    • Swoole\Server::addlistener — Добавляет нового слушателя на сервер
    • Swoole\Server::addProcess — Добавляет определенный пользователем swoole_process на сервер
    • Swoole\Server::after — Запускает callback-функцию по истечении определенного периода времени
    • Swoole\Server::bind — Привязывает соединение к указанному идентификатору пользователя
    • Swoole\Server::clearTimer — Останавливает и уничтожает таймер
    • Swoole\Server::close — Закрывает соединение с клиентом
    • Swoole\Server::confirm — Проверяет состояние соединения
    • Swoole\Server::connection_info — Получает информацию о соединении по описанию файла
    • Swoole\Server::connection_list — Получает все установленные соединения
    • Swoole\Server::__construct — Создает сервер Swoole
    • Swoole\Server::defer — Откладывает выполнение callback-функции в конце текущего EventLoop
    • Swoole\Server\Port::__construct — Создает порт сервера
    • Swoole\Server\Port::__destruct — Уничтожает порт сервера
    • Swoole\Server\Port::on — Регистрирует callback-функции по событию
    • Swoole\Server\Port::set — Устанавливает протокол порта сервера
    • Swoole\Server::exist — Проверяет, существует ли соединение
    • Swoole\Server::finish — Используется в процессе задачи для отправки результата в рабочий процесс после завершения задачи
    • Swoole\Server::getClientInfo — Получает информацию о соединении по описанию файла
    • Swoole\Server::getClientList — Получает все установленные соединения
    • Swoole\Server::getLastError — Получает код самой последней ошибки
    • Swoole\Server::heartbeat — Проверяет все соединения на сервере
    • Swoole\Server::listen — Слушает по заданному IP и порту, тип сокета
    • Swoole\Server::on — Регистрирует callback-функцию по имени события
    • Swoole\Server::pause — Прекращает получение данных от соединения
    • Swoole\Server::protect — Устанавливает соединение в защищенный режим
    • Swoole\Server::reload — Перезапускает все рабочие процессы
    • Swoole\Server::resume — Начинает получать данные из соединения
    • Swoole\Server::send — Отправляет данные клиенту
    • Swoole\Server::sendfile — Отправляет файл на соединение
    • Swoole\Server::sendMessage — Отправляет сообщение рабочим процессам по идентификатору
    • Swoole\Server::sendto — Отправляет данные на удаленный UDP-адрес
    • Swoole\Server::sendwait — Отправляет данные в удаленный сокет блокирующим способом
    • Swoole\Server::set — Устанавливает настройки времени выполнения сервера swoole
    • Swoole\Server::shutdown — Завершает процесс главного сервера, функцию можно вызывать в рабочих процессах
    • Swoole\Server::start — Запускает сервер Swoole
    • Swoole\Server::stats — Получает статистику сервера Swoole
    • Swoole\Server::stop — Останавливает сервер Swoole
    • Swoole\Server::task — Отправляет данные в рабочие процессы задачи
    • Swoole\Server::taskwait — Посылает данные рабочим процессам задачи блокирующим способом
    • Swoole\Server::taskWaitMulti — Выполняет несколько задач одновременно
    • Swoole\Server::tick — Повторяет данную функцию в каждый заданный интервал времени
  • Swoole\Table — Класс Swoole\Table
    • Swoole\Table::column — Set the data type and size of the columns.
    • Swoole\Table::__construct — Construct a Swoole memory table with fixed size.
    • Swoole\Table::count — Count the rows in the table, or count all the elements in the table if $mode = 1.
    • Swoole\Table::create — Create the swoole memory table.
    • Swoole\Table::current — Get the current row.
    • Swoole\Table::decr — Decrement the value in the Swoole table by $row_key and $column_key.
    • Swoole\Table::del — Delete a row in the Swoole table by $row_key.
    • Swoole\Table::destroy — Destroy the Swoole table.
    • Swoole\Table::exist — Check if a row is existed by $row_key.
    • Swoole\Table::get — Get the value in the Swoole table by $row_key and $column_key.
    • Swoole\Table::incr — Increment the value by $row_key and $column_key.
    • Swoole\Table::key — Get the key of current row.
    • Swoole\Table::next — Iterator the next row.
    • Swoole\Table::rewind — Rewind the iterator.
    • Swoole\Table::set — Update a row of the table by $row_key.
    • Swoole\Table::valid — Check current if the current row is valid.
  • Swoole\Timer — Класс Swoole\Timer
    • Swoole\Timer::after — Запускает callback-функцию через определенный промежуток времени
    • Swoole\Timer::clear — Удаляет таймер по идентификатору
    • Swoole\Timer::exists — Проверяет, существует ли таймер
    • Swoole\Timer::tick — Повторяет данную функцию в каждый заданный интервал времени
  • Swoole\WebSocket\Frame — Класс Swoole\WebSocket\Frame
  • Swoole\WebSocket\Server — Класс Swoole\WebSocket\Server
    • Swoole\WebSocket\Server::exist — Проверяет, существует ли описание файла
    • Swoole\WebSocket\Server::on — Зарегистрировать callback-функцию события
    • Swoole\WebSocket\Server::pack — Получение пакета двоичных данных для отправки в одной группе данных (frame)
    • Swoole\WebSocket\Server::push — Отправить данные удаленному клиенту
    • Swoole\WebSocket\Server::unpack — Распаковать двоичные данные, полученные от клиента


Введение

Swoole — это высокопроизводительный сетевой фреймворк, использующий управляемую событиями асинхронную неблокирующую модель ввода-вывода. Он может использоваться для разработки высокопроизводительных, масштабируемых, параллельных TCP, UDP, сокетов Unix, HTTP, Websocket сервисов. Для начала, пожалуйста, посмотрите » Документацию Swoole.

Замечание: Для Windows-платформ это расширение недоступно.


Установка

Используйте --with-swoole[=DIR] при компиляции PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/swoole


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Swoole
Имя | По умолчанию | Место изменения | Список изменений
swoole.aio_thread_num | 2 | PHP_INI_ALL |
swoole.display_errors | On | PHP_INI_ALL |
swoole.fast_serialize | Off | PHP_INI_ALL |
swoole.unixsock_buffer_size | 8388608 | PHP_INI_ALL |
swoole.use_namespace | On | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

swoole.aio_thread_num integer

Номер потока асинхронного ввода/вывода POSIX

swoole.display_errors string

Определяет, должны ли ошибки Swoole выводиться на экран.

swoole.fast_serialize string

Определяет, включать ли Swoole fast_serialize.

swoole.unixsock_buffer_size integer

Размер буфера сокета Unix.

swoole.use_namespace string

Определяет, ипользовать ли пространства имен PHP.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SWOOLE_BASE (integer)
SWOOLE_THREAD (integer)
SWOOLE_PROCESS (integer)
SWOOLE_IPC_UNSOCK (integer)
SWOOLE_IPC_MSGQUEUE (integer)
SWOOLE_IPC_PREEMPTIVE (integer)
SWOOLE_SOCK_TCP (integer)
SWOOLE_SOCK_TCP6 (integer)
SWOOLE_SOCK_UDP (integer)
SWOOLE_SOCK_UDP6 (integer)
SWOOLE_SOCK_UNIX_DGRAM (integer)
SWOOLE_SOCK_UNIX_STREAM (integer)
SWOOLE_TCP (integer)
SWOOLE_TCP6 (integer)
SWOOLE_UDP (integer)
SWOOLE_UDP6 (integer)
SWOOLE_UNIX_DGRAM (integer)
SWOOLE_UNIX_STREAM (integer)
SWOOLE_SOCK_SYNC (integer)
SWOOLE_SOCK_ASYNC (integer)
SWOOLE_SYNC (integer)
SWOOLE_ASYNC (integer)
SWOOLE_KEEP (integer)
SWOOLE_EVENT_READ (integer)
SWOOLE_EVENT_WRITE (integer)
SWOOLE_VERSION (string)
SWOOLE_AIO_BASE (integer)
SWOOLE_AIO_LINUX (integer)
SWOOLE_FILELOCK (integer)
SWOOLE_MUTEX (integer)
SWOOLE_SEM (integer)
SWOOLE_RWLOCK (integer)
WEBSOCKET_OPCODE_TEXT (integer)
WEBSOCKET_OPCODE_BINARY (integer)
WEBSOCKET_OPCODE_PING (integer)
WEBSOCKET_STATUS_CONNECTION (integer)
WEBSOCKET_STATUS_HANDSHAKE (integer)
WEBSOCKET_STATUS_FRAME (integer)
WEBSOCKET_STATUS_ACTIVE (integer)
SWOOLE_FAST_PACK (integer)


Функции Swoole

Содержание

  • swoole_async_dns_lookup — Асинхронный и неблокирующий поиск имени хоста или IP-адреса
  • swoole_async_read — Асинхронное чтение потока файла
  • swoole_async_readfile — Асинхронное чтение файла
  • swoole_async_set — Обновление опций асинхронного ввода-вывода
  • swoole_async_write — Асинхронная запись данных в поток файла
  • swoole_async_writefile — Асинхронная запись данных в файл
  • swoole_client_select — Получить описание файла, готового к чтению/записи или ошибке
  • swoole_cpu_num — Получить количество CPU
  • swoole_errno — Получить код ошибки последнего системного вызова
  • swoole_event_add — Добавить новых callback-функций сокета в цикл событий
  • swoole_event_defer — Добавить callback-функцию в следующий цикл событий
  • swoole_event_del — Удалить все callback-функции сокета
  • swoole_event_exit — Закрыть цикл событий, доступный только на стороне клиента
  • swoole_event_set — Обновить callback-функции события сокета
  • swoole_event_wait — Запустить цикл событий
  • swoole_event_write — Записать данные в сокет
  • swoole_get_local_ip — Получить IP-адреса в формате IPv4 каждой сетевой платы (NIC) компьютера
  • swoole_last_error — Получить последнее сообщение об ошибке
  • swoole_load_module — Загрузить модуль swoole
  • swoole_select — Выбрать описания файлов, которые готовы к чтению/записи или ошибке в цикл событий
  • swoole_set_process_name — Установить имя процесса
  • swoole_strerror — Сконвертировать Errno в сообщения об ошибках
  • swoole_timer_after — Запуск callback-функции один раз в будущем
  • swoole_timer_exists — Проверить, существует ли callback-функция таймера
  • swoole_timer_tick — Вызвать callback-функцию таймера тактов через определенный промежуток времени
  • swoole_version — Получить версию Swoole


Асинхронный и неблокирующий поиск имени хоста или IP-адреса

  • « Функции Swoole
  • swoole_async_read »
  • PHP Manual
  • Функции Swoole
  • Асинхронный и неблокирующий поиск имени хоста или IP-адреса

swoole_async_dns_lookup

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_async_dns_lookup — Асинхронный и неблокирующий поиск имени хоста или IP-адреса

Описание

swoole_async_dns_lookup ( string $hostname , callable $callback ) : bool

Список параметров

hostname

Имя хоста.

callback
callback ( string $hostname , string $ip ) : mixed
hostname

Имя хоста

IP

IP-адрес.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Асинхронное чтение потока файла

  • « swoole_async_dns_lookup
  • swoole_async_readfile »
  • PHP Manual
  • Функции Swoole
  • Асинхронное чтение потока файла

swoole_async_read

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_async_read — Асинхронное чтение потока файла

Описание

swoole_async_read ( string $filename , callable $callback [, int $chunk_size = 65536 [, int $offset = 0 ]] ) : bool

Список параметров

filename

Имя файла для чтения.

callback
callback ( string $filename , string $content ) : mixed
filename

Название файла.

content

Содержимое, считанное из файлового потока.

chunk_size

Длина блока.

offset

Смещение.

Возвращаемые значения

Было ли чтение выполнено успешно или возникла ошибка.


Асинхронное чтение файла

  • « swoole_async_read
  • swoole_async_set »
  • PHP Manual
  • Функции Swoole
  • Асинхронное чтение файла

swoole_async_readfile

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_async_readfile — Асинхронное чтение файла

Описание

swoole_async_readfile ( string $filename , callable $callback ) : bool

Список параметров

filename

Имя файла для чтения.

callback
callback ( string $filename , string $content ) : mixed
filename

Имя файла.

content

Содержимое, считанное из файла.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Обновление опций асинхронного ввода-вывода

  • « swoole_async_readfile
  • swoole_async_write »
  • PHP Manual
  • Функции Swoole
  • Обновление опций асинхронного ввода-вывода

swoole_async_set

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_async_set — Обновление опций асинхронного ввода-вывода

Описание

swoole_async_set ( array $settings ) : void

Список параметров

settings


Асинхронная запись данных в поток файла

  • « swoole_async_set
  • swoole_async_writefile »
  • PHP Manual
  • Функции Swoole
  • Асинхронная запись данных в поток файла

swoole_async_write

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_async_write — Асинхронная запись данных в поток файла

Описание

swoole_async_write ( string $filename , string $content [, integer $offset [, callable $callback ]] ) : bool

Список параметров

filename

Имя файла, в который будет произведена запись

content

Содержимое, записываемое в файл.

offset

Смещение.

callback

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Асинхронная запись данных в файл

  • « swoole_async_write
  • swoole_client_select »
  • PHP Manual
  • Функции Swoole
  • Асинхронная запись данных в файл

swoole_async_writefile

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_async_writefile — Асинхронная запись данных в файл

Описание

swoole_async_writefile ( string $filename , string $content [, callable $callback [, int $flags = 0 ]] ) : bool

Список параметров

filename

Имя файла, в который будет произведена запись.

content

Содержимое, записываемое в файл.

callback

flags

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Получить описание файла, готового к чтению/записи или ошибке

  • « swoole_async_writefile
  • swoole_cpu_num »
  • PHP Manual
  • Функции Swoole
  • Получить описание файла, готового к чтению/записи или ошибке

swoole_client_select

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_client_select — Получить описание файла, готового к чтению/записи или ошибке

Описание

swoole_client_select ( array &$read_array , array &$write_array , array &$error_array [, float $timeout = 0.5 ] ) : int

Список параметров

read_array

write_array

error_array

timeout

Возвращаемые значения


Получить количество CPU

  • « swoole_client_select
  • swoole_errno »
  • PHP Manual
  • Функции Swoole
  • Получить количество CPU

swoole_cpu_num

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_cpu_num — Получить количество CPU

Описание

swoole_cpu_num ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество CPU.


Получить код ошибки последнего системного вызова

  • « swoole_cpu_num
  • swoole_event_add »
  • PHP Manual
  • Функции Swoole
  • Получить код ошибки последнего системного вызова

swoole_errno

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_errno — Получить код ошибки последнего системного вызова

Описание

swoole_errno ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Добавить новых callback-функций сокета в цикл событий

  • « swoole_errno
  • swoole_event_defer »
  • PHP Manual
  • Функции Swoole
  • Добавить новых callback-функций сокета в цикл событий

swoole_event_add

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_event_add — Добавить новых callback-функций сокета в цикл событий

Описание

swoole_event_add ( int $fd [, callable $read_callback [, callable $write_callback [, int $events = 0 ]]] ) : int

Список параметров

fd

read_callback

write_callback

events

Возвращаемые значения


Добавить callback-функцию в следующий цикл событий

  • « swoole_event_add
  • swoole_event_del »
  • PHP Manual
  • Функции Swoole
  • Добавить callback-функцию в следующий цикл событий

swoole_event_defer

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_event_defer — Добавить callback-функцию в следующий цикл событий

Описание

swoole_event_defer ( callable $callback ) : bool

Список параметров

callback

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Удалить все callback-функции сокета

  • « swoole_event_defer
  • swoole_event_exit »
  • PHP Manual
  • Функции Swoole
  • Удалить все callback-функции сокета

swoole_event_del

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_event_del — Удалить все callback-функции сокета

Описание

swoole_event_del ( int $fd ) : bool

Список параметров

fd

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Закрыть цикл событий, доступный только на стороне клиента

  • « swoole_event_del
  • swoole_event_set »
  • PHP Manual
  • Функции Swoole
  • Закрыть цикл событий, доступный только на стороне клиента

swoole_event_exit

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_event_exit — Закрыть цикл событий, доступный только на стороне клиента

Описание

swoole_event_exit ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Обновить callback-функции события сокета

  • « swoole_event_exit
  • swoole_event_wait »
  • PHP Manual
  • Функции Swoole
  • Обновить callback-функции события сокета

swoole_event_set

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_event_set — Обновить callback-функции события сокета

Описание

swoole_event_set ( int $fd [, callable $read_callback [, callable $write_callback [, int $events = 0 ]]] ) : bool

Список параметров

fd

read_callback

write_callback

events

Возвращаемые значения


Запустить цикл событий

  • « swoole_event_set
  • swoole_event_write »
  • PHP Manual
  • Функции Swoole
  • Запустить цикл событий

swoole_event_wait

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_event_wait — Запустить цикл событий

Описание

swoole_event_wait ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Записать данные в сокет

  • « swoole_event_wait
  • swoole_get_local_ip »
  • PHP Manual
  • Функции Swoole
  • Записать данные в сокет

swoole_event_write

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_event_write — Записать данные в сокет

Описание

swoole_event_write ( int $fd , string $data ) : bool

Список параметров

fd

data

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Получить IP-адреса в формате IPv4 каждой сетевой платы (NIC) компьютера

  • « swoole_event_write
  • swoole_last_error »
  • PHP Manual
  • Функции Swoole
  • Получить IP-адреса в формате IPv4 каждой сетевой платы (NIC) компьютера

swoole_get_local_ip

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_get_local_ip — Получить IP-адреса в формате IPv4 каждой сетевой платы (NIC) компьютера

Описание

swoole_get_local_ip ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить последнее сообщение об ошибке

  • « swoole_get_local_ip
  • swoole_load_module »
  • PHP Manual
  • Функции Swoole
  • Получить последнее сообщение об ошибке

swoole_last_error

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_last_error — Получить последнее сообщение об ошибке

Описание

swoole_last_error ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Загрузить модуль swoole

  • « swoole_last_error
  • swoole_select »
  • PHP Manual
  • Функции Swoole
  • Загрузить модуль swoole

swoole_load_module

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_load_module — Загрузить модуль swoole

Описание

swoole_load_module ( string $filename ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Выбрать описания файлов, которые готовы к чтению/записи или ошибке в цикл событий

  • « swoole_load_module
  • swoole_set_process_name »
  • PHP Manual
  • Функции Swoole
  • Выбрать описания файлов, которые готовы к чтению/записи или ошибке в цикл событий

swoole_select

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_select — Выбрать описания файлов, которые готовы к чтению/записи или ошибке в цикл событий

Описание

swoole_select ( array &$read_array , array &$write_array , array &$error_array [, float $timeout ] ) : int

Список параметров

read_array

write_array

error_array

timeout

Возвращаемые значения


Установить имя процесса

  • « swoole_select
  • swoole_strerror »
  • PHP Manual
  • Функции Swoole
  • Установить имя процесса

swoole_set_process_name

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_set_process_name — Установить имя процесса

Описание

swoole_set_process_name ( string $process_name [, int $size = 128 ] ) : void

Список параметров

process_name

Возвращаемые значения


Сконвертировать Errno в сообщения об ошибках

  • « swoole_set_process_name
  • swoole_timer_after »
  • PHP Manual
  • Функции Swoole
  • Сконвертировать Errno в сообщения об ошибках

swoole_strerror

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_strerror — Сконвертировать Errno в сообщения об ошибках

Описание

swoole_strerror ( int $errno [, int $error_type = 0 ] ) : string

Список параметров

errno

Возвращаемые значения


Запуск callback-функции один раз в будущем

  • « swoole_strerror
  • swoole_timer_exists »
  • PHP Manual
  • Функции Swoole
  • Запуск callback-функции один раз в будущем

swoole_timer_after

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_timer_after — Запуск callback-функции один раз в будущем

Описание

swoole_timer_after ( int $ms , callable $callback [, mixed $param ] ) : int

Список параметров

ms

callback

param

Возвращаемые значения


Проверить, существует ли callback-функция таймера

  • « swoole_timer_after
  • swoole_timer_tick »
  • PHP Manual
  • Функции Swoole
  • Проверить, существует ли callback-функция таймера

swoole_timer_exists

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_timer_exists — Проверить, существует ли callback-функция таймера

Описание

swoole_timer_exists ( int $timer_id ) : bool

Список параметров

timer_id

Возвращаемые значения


Вызвать callback-функцию таймера тактов через определенный промежуток времени

  • « swoole_timer_exists
  • swoole_version »
  • PHP Manual
  • Функции Swoole
  • Вызвать callback-функцию таймера тактов через определенный промежуток времени

swoole_timer_tick

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_timer_tick — Вызвать callback-функцию таймера тактов через определенный промежуток времени

Описание

swoole_timer_tick ( int $ms , callable $callback [, mixed $param ] ) : int

Список параметров

ms

callback

Возвращаемые значения


Получить версию Swoole

  • « swoole_timer_tick
  • Swoole\Async »
  • PHP Manual
  • Функции Swoole
  • Получить версию Swoole

swoole_version

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

swoole_version — Получить версию Swoole

Описание

swoole_version ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Версия Swoole.


Класс Swoole\Async

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Async {
/* Методы */
public static dnsLookup ( string $hostname , callable $callback ) : void
public static read ( string $filename , callable $callback [, integer $chunk_size [, integer $offset ]] ) : bool
public static readFile ( string $filename , callable $callback ) : void
public static set ( array $settings ) : void
public static write ( string $filename , string $content [, integer $offset [, callable $callback ]] ) : void
public static writeFile ( string $filename , string $content [, callable $callback [, string $flags ]] ) : void
}

Содержание

  • Swoole\Async::dnsLookup — Асинхронный и неблокирующий поиск IP по имени хоста
  • Swoole\Async::read — Асинхронное чтение файлового потока
  • Swoole\Async::readFile — Асинхронное чтение файла
  • Swoole\Async::set — Обновляет параметры асинхронного ввода-вывода
  • Swoole\Async::write — Асинхронно записывает данные в файловый поток
  • Swoole\Async::writeFile — Описание


Асинхронный и неблокирующий поиск IP по имени хоста

  • « Swoole\Async
  • Swoole\Async::read »
  • PHP Manual
  • Swoole\Async
  • Асинхронный и неблокирующий поиск IP по имени хоста

Swoole\Async::dnsLookup

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Async::dnsLookup — Асинхронный и неблокирующий поиск IP по имени хоста

Описание

public static Swoole\Async::dnsLookup ( string $hostname , callable $callback ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

hostname

Имя хоста.

callback
callback ( string $hostname , string $ip ) : mixed
hostname

Имя хоста.

IP

IP-адрес.


Асинхронное чтение файлового потока

  • « Swoole\Async::dnsLookup
  • Swoole\Async::readFile »
  • PHP Manual
  • Swoole\Async
  • Асинхронное чтение файлового потока

Swoole\Async::read

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Async::read — Асинхронное чтение файлового потока

Описание

public static Swoole\Async::read ( string $filename , callable $callback [, integer $chunk_size [, integer $offset ]] ) : bool

Список параметров

filename

Название файла.

callback
callback ( string $filename , string $content ) : mixed
filename

Название файла.

content

Содержимое, прочитанное из файлового потока.

chunk_size

Длина части.

offset

Смещение.

Возвращаемые значения

Успешно ли прочитано.


Асинхронное чтение файла

  • « Swoole\Async::read
  • Swoole\Async::set »
  • PHP Manual
  • Swoole\Async
  • Асинхронное чтение файла

Swoole\Async::readFile

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Async::readFile — Асинхронное чтение файла

Описание

public static Swoole\Async::readFile ( string $filename , callable $callback ) : void

Список параметров

filename

Имя читаемого файла.

callback
callback ( string $filename , string $content ) : mixed
filename

Имя читаемого файла.

content

Содержание, прочитаное из файла.


Обновляет параметры асинхронного ввода-вывода

  • « Swoole\Async::readFile
  • Swoole\Async::write »
  • PHP Manual
  • Swoole\Async
  • Обновляет параметры асинхронного ввода-вывода

Swoole\Async::set

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Async::set — Обновляет параметры асинхронного ввода-вывода

Описание

public static Swoole\Async::set ( array $settings ) : void

Список параметров

settings


Асинхронно записывает данные в файловый поток

  • « Swoole\Async::set
  • Swoole\Async::writeFile »
  • PHP Manual
  • Swoole\Async
  • Асинхронно записывает данные в файловый поток

Swoole\Async::write

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Async::write — Асинхронно записывает данные в файловый поток

Описание

public static Swoole\Async::write ( string $filename , string $content [, integer $offset [, callable $callback ]] ) : void

Список параметров

filename

Имя файла для записи.

content

Содержание для записи в файл.

offset

Смещение.

callback


Описание

  • « Swoole\Async::write
  • Swoole\Atomic »
  • PHP Manual
  • Swoole\Async
  • Описание

Swoole\Async::writeFile

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Async::writeFile — Описание

Описание

public static Swoole\Async::writeFile ( string $filename , string $content [, callable $callback [, string $flags ]] ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

filename

Имя файла для записи.

content

Содержание для записи в файл.

callback

flags


Класс Swoole\Atomic

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Atomic {
/* Методы */
public add ([ integer $add_value ] ) : integer
public cmpset ( integer $cmp_value , integer $new_value ) : integer
public get ( void ) : integer
public set ( integer $value ) : integer
public sub ([ integer $sub_value ] ) : integer
}

Содержание

  • Swoole\Atomic::add — Добавляет число к значению атомарного объекта
  • Swoole\Atomic::cmpset — Сравнивает и устанавливает значение атомарного объекта
  • Swoole\Atomic::__construct — Создает атомарный объект swoole
  • Swoole\Atomic::get — Получает текущее значение атомарного объекта
  • Swoole\Atomic::set — Устанавливает новое значение для атомарного объекта
  • Swoole\Atomic::sub — Вычитает число из значения атомарного объекта


Добавляет число к значению атомарного объекта

  • « Swoole\Atomic
  • Swoole\Atomic::cmpset »
  • PHP Manual
  • Swoole\Atomic
  • Добавляет число к значению атомарного объекта

Swoole\Atomic::add

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Atomic::add — Добавляет число к значению атомарного объекта

Описание

public Swoole\Atomic::add ([ integer $add_value ] ) : integer

Добавляет число к значению атомарного объекта.

Список параметров

add_value

Значение, которое будет добавлено к текущему значению.

Возвращаемые значения

Новое значение атомарного объекта.


Сравнивает и устанавливает значение атомарного объекта

  • « Swoole\Atomic::add
  • Swoole\Atomic::__construct »
  • PHP Manual
  • Swoole\Atomic
  • Сравнивает и устанавливает значение атомарного объекта

Swoole\Atomic::cmpset

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Atomic::cmpset — Сравнивает и устанавливает значение атомарного объекта

Описание

public Swoole\Atomic::cmpset ( integer $cmp_value , integer $new_value ) : integer

Список параметров

cmp_value

Значение для сравнения с текущим значением атомарного объекта.

new_value

Значение, устанавливаемое для атомарного объекта, если значение cmp_value совпадает с текущим значением атомарного объекта.

Возвращаемые значения

Новое значение атомарного объекта.


Создает атомарный объект swoole

  • « Swoole\Atomic::cmpset
  • Swoole\Atomic::get »
  • PHP Manual
  • Swoole\Atomic
  • Создает атомарный объект swoole

Swoole\Atomic::__construct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Atomic::__construct — Создает атомарный объект swoole

Описание

public Swoole\Atomic::__construct ([ integer $value ] )

Атомарный объект Swoole - это целочисленная переменная, которая позволяет любому процессору атомарно тестировать и модифицировать. Он реализован на основе атомарных инструкций процессора. Атомарные переменные Swoole должны быть определены до swoole_server->start.

Сравнение и замена (CAS) - это атомарная инструкция, используемая в многопоточности для достижения синхронизации. Она сравнивает содержимое области памяти с заданным значением и, только если они совпадают, изменяет содержимое этой области памяти на новое заданное значение.

Список параметров

value

Значение атомарного объекта.


Получает текущее значение атомарного объекта

  • « Swoole\Atomic::__construct
  • Swoole\Atomic::set »
  • PHP Manual
  • Swoole\Atomic
  • Получает текущее значение атомарного объекта

Swoole\Atomic::get

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Atomic::get — Получает текущее значение атомарного объекта

Описание

public Swoole\Atomic::get ( void ) : integer

Получает текущее значение атомарного объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущее значение атомарного объекта.


Устанавливает новое значение для атомарного объекта

  • « Swoole\Atomic::get
  • Swoole\Atomic::sub »
  • PHP Manual
  • Swoole\Atomic
  • Устанавливает новое значение для атомарного объекта

Swoole\Atomic::set

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Atomic::set — Устанавливает новое значение для атомарного объекта

Описание

public Swoole\Atomic::set ( integer $value ) : integer

Устанавливает новое значение для атомарного объекта.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

value

Значение, устанавливаемое для атомарного объекта.

Возвращаемые значения

Текущее значение атомарного объекта.


Вычитает число из значения атомарного объекта

  • « Swoole\Atomic::set
  • Swoole\Buffer »
  • PHP Manual
  • Swoole\Atomic
  • Вычитает число из значения атомарного объекта

Swoole\Atomic::sub

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Atomic::sub — Вычитает число из значения атомарного объекта

Описание

public Swoole\Atomic::sub ([ integer $sub_value ] ) : integer

Вычитает число из значения атомарного объекта.

Список параметров

sub_value

Значение, которое будет вычтено из текущего значения.

Возвращаемые значения

Текущее значение атомарного объекта.


Класс Swoole\Buffer

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Buffer {
/* Методы */
public append ( string $data ) : integer
public clear ( void ) : void
public __destruct ( void ) : void
public expand ( integer $size ) : integer
public read ( integer $offset , integer $length ) : string
public recycle ( void ) : void
public substr ( integer $offset [, integer $length [, bool $remove ]] ) : string
public __toString ( void ) : string
public write ( integer $offset , string $data ) : void
}

Содержание

  • Swoole\Buffer::append — Добавляет строку или двоичные данные в конец буфера памяти и возвращает новый размер выделенной памяти
  • Swoole\Buffer::clear — Сбрасывает буфер памяти
  • Swoole\Buffer::__construct — Фиксированный размер блока памяти
  • Swoole\Buffer::__destruct — Уничтожает буфер памяти Swoole
  • Swoole\Buffer::expand — Расширяет размер буфера памяти
  • Swoole\Buffer::read — Читает данные из буфера памяти на основе смещения и длины
  • Swoole\Buffer::recycle — Освобождает память для ОС, которая не используется буфером памяти
  • Swoole\Buffer::substr — Считывает данные из буфера памяти на основе смещения и длины. Или удаляет данные из буфера памяти
  • Swoole\Buffer::__toString — Получает строковое значение буфера памяти
  • Swoole\Buffer::write — Записывает данные в буфер памяти. Память, выделенная для буфера, не будет изменена


Добавляет строку или двоичные данные в конец буфера памяти и возвращает новый размер выделенной памяти

  • « Swoole\Buffer
  • Swoole\Buffer::clear »
  • PHP Manual
  • Swoole\Buffer
  • Добавляет строку или двоичные данные в конец буфера памяти и возвращает новый размер выделенной памяти

Swoole\Buffer::append

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Buffer::append — Добавляет строку или двоичные данные в конец буфера памяти и возвращает новый размер выделенной памяти

Описание

public Swoole\Buffer::append ( string $data ) : integer

Список параметров

data

Строка или двоичные данные, добавляемые в конец буфера памяти.

Возвращаемые значения

Новый размер буфера памяти.


Сбрасывает буфер памяти

  • « Swoole\Buffer::append
  • Swoole\Buffer::__construct »
  • PHP Manual
  • Swoole\Buffer
  • Сбрасывает буфер памяти

Swoole\Buffer::clear

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Buffer::clear — Сбрасывает буфер памяти

Описание

public Swoole\Buffer::clear ( void ) : void

Список параметров

У этой функции нет параметров.


Фиксированный размер блока памяти

  • « Swoole\Buffer::clear
  • Swoole\Buffer::__destruct »
  • PHP Manual
  • Swoole\Buffer
  • Фиксированный размер блока памяти

Swoole\Buffer::__construct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Buffer::__construct — Фиксированный размер блока памяти

Описание

public Swoole\Buffer::__construct ([ integer $size ] )

Список параметров

size

Размер памяти для выделения.


Уничтожает буфер памяти Swoole

  • « Swoole\Buffer::__construct
  • Swoole\Buffer::expand »
  • PHP Manual
  • Swoole\Buffer
  • Уничтожает буфер памяти Swoole

Swoole\Buffer::__destruct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Buffer::__destruct — Уничтожает буфер памяти Swoole

Описание

public Swoole\Buffer::__destruct ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.


Расширяет размер буфера памяти

  • « Swoole\Buffer::__destruct
  • Swoole\Buffer::read »
  • PHP Manual
  • Swoole\Buffer
  • Расширяет размер буфера памяти

Swoole\Buffer::expand

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Buffer::expand — Расширяет размер буфера памяти

Описание

public Swoole\Buffer::expand ( integer $size ) : integer

Список параметров

size

Новый размер буфера памяти.

Возвращаемые значения

Новый размер буфера памяти.


Читает данные из буфера памяти на основе смещения и длины

  • « Swoole\Buffer::expand
  • Swoole\Buffer::recycle »
  • PHP Manual
  • Swoole\Buffer
  • Читает данные из буфера памяти на основе смещения и длины

Swoole\Buffer::read

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Buffer::read — Читает данные из буфера памяти на основе смещения и длины

Описание

public Swoole\Buffer::read ( integer $offset , integer $length ) : string

Список параметров

offset

Смещение.

length

Длина.

Возвращаемые значения

Данные, считаные из буфера памяти.


Освобождает память для ОС, которая не используется буфером памяти

  • « Swoole\Buffer::read
  • Swoole\Buffer::substr »
  • PHP Manual
  • Swoole\Buffer
  • Освобождает память для ОС, которая не используется буфером памяти

Swoole\Buffer::recycle

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Buffer::recycle — Освобождает память для ОС, которая не используется буфером памяти

Описание

public Swoole\Buffer::recycle ( void ) : void

Список параметров

У этой функции нет параметров.


Считывает данные из буфера памяти на основе смещения и длины. Или удаляет данные из буфера памяти

  • « Swoole\Buffer::recycle
  • Swoole\Buffer::__toString »
  • PHP Manual
  • Swoole\Buffer
  • Считывает данные из буфера памяти на основе смещения и длины. Или удаляет данные из буфера памяти

Swoole\Buffer::substr

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Buffer::substr — Считывает данные из буфера памяти на основе смещения и длины. Или удаляет данные из буфера памяти

Описание

public Swoole\Buffer::substr ( integer $offset [, integer $length [, bool $remove ]] ) : string

Если для $remove установлено значение true, а для $offset установлено значение 0, данные будут удалены из буфера. Память для хранения данных будет освобождена при уничтожении объекта буфера.

Список параметров

offset

Смещение.

length

Длина.

remove

Определяет, удалить ли данные из буфера памяти.

Возвращаемые значения

Данные или строка, прочитанные из буфера памяти.


Получает строковое значение буфера памяти

  • « Swoole\Buffer::substr
  • Swoole\Buffer::write »
  • PHP Manual
  • Swoole\Buffer
  • Получает строковое значение буфера памяти

Swoole\Buffer::__toString

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Buffer::__toString — Получает строковое значение буфера памяти

Описание

public Swoole\Buffer::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строковое значение буфера памяти.


Записывает данные в буфер памяти. Память, выделенная для буфера, не будет изменена

  • « Swoole\Buffer::__toString
  • Swoole\Channel »
  • PHP Manual
  • Swoole\Buffer
  • Записывает данные в буфер памяти. Память, выделенная для буфера, не будет изменена

Swoole\Buffer::write

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Buffer::write — Записывает данные в буфер памяти. Память, выделенная для буфера, не будет изменена

Описание

public Swoole\Buffer::write ( integer $offset , string $data ) : void

Список параметров

offset

Смещение.

data

Данные для записи в буфер памяти.

Возвращаемые значения


Класс Swoole\Channel

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Channel {
/* Методы */
public __destruct ( void ) : void
public pop ( void ) : mixed
public push ( string $data ) : bool
public stats ( void ) : array
}

Содержание

  • Swoole\Channel::__construct — Construct a Swoole Channel
  • Swoole\Channel::__destruct — Destruct a Swoole channel.
  • Swoole\Channel::pop — Read and pop data from swoole channel.
  • Swoole\Channel::push — Write and push data into Swoole channel.
  • Swoole\Channel::stats — Get stats of swoole channel.


Construct a Swoole Channel

  • « Swoole\Channel
  • Swoole\Channel::__destruct »
  • PHP Manual
  • Swoole\Channel
  • Construct a Swoole Channel

Swoole\Channel::__construct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Channel::__construct — Construct a Swoole Channel

Описание

public Swoole\Channel::__construct ( string $size )

Swoole channel is memory data structure works like Chan in Golang, implemented based on shared memory and mutex locks. It can be used as high performance message queue in memory. Construct a swoole channel with a fixed size. The minimum size of a swoole channel is 64KB. Exceptions will be thrown if there is not enough memory.

Список параметров

size

The size of the Swoole channel.


Destruct a Swoole channel.

  • « Swoole\Channel::__construct
  • Swoole\Channel::pop »
  • PHP Manual
  • Swoole\Channel
  • Destruct a Swoole channel.

Swoole\Channel::__destruct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Channel::__destruct — Destruct a Swoole channel.

Описание

public Swoole\Channel::__destruct ( void ) : void

Список параметров

У этой функции нет параметров.


Read and pop data from swoole channel.

  • « Swoole\Channel::__destruct
  • Swoole\Channel::push »
  • PHP Manual
  • Swoole\Channel
  • Read and pop data from swoole channel.

Swoole\Channel::pop

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Channel::pop — Read and pop data from swoole channel.

Описание

public Swoole\Channel::pop ( void ) : mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

If the channel is empty, the function will return false, or return the unserialized data.


Write and push data into Swoole channel.

  • « Swoole\Channel::pop
  • Swoole\Channel::stats »
  • PHP Manual
  • Swoole\Channel
  • Write and push data into Swoole channel.

Swoole\Channel::push

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Channel::push — Write and push data into Swoole channel.

Описание

public Swoole\Channel::push ( string $data ) : bool

Data can be any non-empty PHP variable, the variable will be serialized if it is not string type.

If size of the data is more than 8KB, swoole channel will use temp files storage.

The function will return true if the write operation is succeeded, or return false if there is not enough space.

Список параметров

data

The data to push into the Swoole channel.

Возвращаемые значения

Wheter the data is pushed into he Swoole channel.


Get stats of swoole channel.

  • « Swoole\Channel::push
  • Swoole\Client »
  • PHP Manual
  • Swoole\Channel
  • Get stats of swoole channel.

Swoole\Channel::stats

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Channel::stats — Get stats of swoole channel.

Описание

public Swoole\Channel::stats ( void ) : array

Get the numbers of queued elements and total size of the memory used by the queue.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The stats of the Swoole channel.


Класс Swoole\Client

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Client {
/* Constants */
const integer MSG_OOB = 1 ;
const integer MSG_PEEK = 2 ;
const integer MSG_DONTWAIT = 128 ;
const integer MSG_WAITALL = 64 ;
/* Свойства */
public $errCode ;
public $sock ;
public $reuse ;
public $reuseCount ;
/* Методы */
public close ([ bool $force ] ) : bool
public connect ( string $host [, integer $port [, integer $timeout [, integer $flag ]]] ) : bool
public __destruct ( void ) : void
public getpeername ( void ) : array
public getsockname ( void ) : array
public isConnected ( void ) : bool
public on ( string $event , callable $callback ) : void
public pause ( void ) : void
public pipe ( string $socket ) : void
public recv ([ string $size [, string $flag ]] ) : void
public resume ( void ) : void
public send ( string $data [, string $flag ] ) : integer
public sendfile ( string $filename [, int $offset ] ) : boolean
public sendto ( string $ip , integer $port , string $data ) : boolean
public set ( array $settings ) : void
public sleep ( void ) : void
public wakeup ( void ) : void
}

Свойства

errCode

sock

reuse

reuseCount

Предопределенные константы

Swoole\Client::MSG_OOB

Swoole\Client::MSG_PEEK

Swoole\Client::MSG_DONTWAIT

Swoole\Client::MSG_WAITALL

Содержание

  • Swoole\Client::close — Close the connection established.
  • Swoole\Client::connect — Connect to the remote TCP or UDP port.
  • Swoole\Client::__construct — Create Swoole sync or async TCP/UDP client, with or without SSL.
  • Swoole\Client::__destruct — Destruct the Swoole client.
  • Swoole\Client::getpeername — Get the remote socket name of the connection.
  • Swoole\Client::getsockname — Get the local socket name of the connection.
  • Swoole\Client::isConnected — Check if the connection is established.
  • Swoole\Client::on — Add callback functions triggered by events.
  • Swoole\Client::pause — Pause receiving data.
  • Swoole\Client::pipe — Redirect the data to another file descriptor.
  • Swoole\Client::recv — Receive data from the remote socket.
  • Swoole\Client::resume — Resume receiving data.
  • Swoole\Client::send — Send data to the remote TCP socket.
  • Swoole\Client::sendfile — Send file to the remote TCP socket.
  • Swoole\Client::sendto — Send data to the remote UDP address.
  • Swoole\Client::set — Set the Swoole client parameters before the connection is established.
  • Swoole\Client::sleep — Remove the TCP client from system event loop.
  • Swoole\Client::wakeup — Add the TCP client back into the system event loop.


Close the connection established.

  • « Swoole\Client
  • Swoole\Client::connect »
  • PHP Manual
  • Swoole\Client
  • Close the connection established.

Swoole\Client::close

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::close — Close the connection established.

Описание

public Swoole\Client::close ([ bool $force ] ) : bool

Список параметров

force

Whether force to close the connection.

Возвращаемые значения

Whether the connection is closed.


Connect to the remote TCP or UDP port.

  • « Swoole\Client::close
  • Swoole\Client::__construct »
  • PHP Manual
  • Swoole\Client
  • Connect to the remote TCP or UDP port.

Swoole\Client::connect

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::connect — Connect to the remote TCP or UDP port.

Описание

public Swoole\Client::connect ( string $host [, integer $port [, integer $timeout [, integer $flag ]]] ) : bool

Список параметров

host

The host name of the remote address.

port

The port number of the remote address.

timeout

The timeout(second) of connect/send/recv, the dafault value is 0.1s

flag

If the type of client is UDP, the $flag means if to enable the configuration udp_connect. If the configuration udp_connect is enabled, the client will only receive the data from specified ip:port. If the type of client is TCP and the $flag is set to 1, it must use swoole_client_select to check the connection status before send/recv.

Возвращаемые значения

Whether the connection is established.


Create Swoole sync or async TCP/UDP client, with or without SSL.

  • « Swoole\Client::connect
  • Swoole\Client::__destruct »
  • PHP Manual
  • Swoole\Client
  • Create Swoole sync or async TCP/UDP client, with or without SSL.

Swoole\Client::__construct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::__construct — Create Swoole sync or async TCP/UDP client, with or without SSL.

Описание

public Swoole\Client::__construct ( int $sock_type [, integer $is_async ] )

Список параметров

sock_type

The type of socket: SWOOLE_TCP, SWOOLE_UDP, SWOOLE_ASYNC, SWOOLE_SSL, SWOOLE_KEEP.

is_async

Synchronous or asynchronous client.


Destruct the Swoole client.

  • « Swoole\Client::__construct
  • Swoole\Client::getpeername »
  • PHP Manual
  • Swoole\Client
  • Destruct the Swoole client.

Swoole\Client::__destruct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::__destruct — Destruct the Swoole client.

Описание

public Swoole\Client::__destruct ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.


Get the remote socket name of the connection.

  • « Swoole\Client::__destruct
  • Swoole\Client::getsockname »
  • PHP Manual
  • Swoole\Client
  • Get the remote socket name of the connection.

Swoole\Client::getpeername

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::getpeername — Get the remote socket name of the connection.

Описание

public Swoole\Client::getpeername ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The host and port of the remote socket.


Get the local socket name of the connection.

  • « Swoole\Client::getpeername
  • Swoole\Client::isConnected »
  • PHP Manual
  • Swoole\Client
  • Get the local socket name of the connection.

Swoole\Client::getsockname

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::getsockname — Get the local socket name of the connection.

Описание

public Swoole\Client::getsockname ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The host and port of the local socket.


Check if the connection is established.

  • « Swoole\Client::getsockname
  • Swoole\Client::on »
  • PHP Manual
  • Swoole\Client
  • Check if the connection is established.

Swoole\Client::isConnected

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::isConnected — Check if the connection is established.

Описание

public Swoole\Client::isConnected ( void ) : bool

This method returns the connection status of application layer.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Whether the connection is established.


Add callback functions triggered by events.

  • « Swoole\Client::isConnected
  • Swoole\Client::pause »
  • PHP Manual
  • Swoole\Client
  • Add callback functions triggered by events.

Swoole\Client::on

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::on — Add callback functions triggered by events.

Описание

public Swoole\Client::on ( string $event , callable $callback ) : void

Список параметров

event

callback


Pause receiving data.

  • « Swoole\Client::on
  • Swoole\Client::pipe »
  • PHP Manual
  • Swoole\Client
  • Pause receiving data.

Swoole\Client::pause

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::pause — Pause receiving data.

Описание

public Swoole\Client::pause ( void ) : void

Список параметров

У этой функции нет параметров.


Redirect the data to another file descriptor.

  • « Swoole\Client::pause
  • Swoole\Client::recv »
  • PHP Manual
  • Swoole\Client
  • Redirect the data to another file descriptor.

Swoole\Client::pipe

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::pipe — Redirect the data to another file descriptor.

Описание

public Swoole\Client::pipe ( string $socket ) : void

Список параметров

socket


Receive data from the remote socket.

  • « Swoole\Client::pipe
  • Swoole\Client::resume »
  • PHP Manual
  • Swoole\Client
  • Receive data from the remote socket.

Swoole\Client::recv

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::recv — Receive data from the remote socket.

Описание

public Swoole\Client::recv ([ string $size [, string $flag ]] ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

size

flag

Возвращаемые значения


Resume receiving data.

  • « Swoole\Client::recv
  • Swoole\Client::send »
  • PHP Manual
  • Swoole\Client
  • Resume receiving data.

Swoole\Client::resume

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::resume — Resume receiving data.

Описание

public Swoole\Client::resume ( void ) : void

Список параметров

У этой функции нет параметров.


Send data to the remote TCP socket.

  • « Swoole\Client::resume
  • Swoole\Client::sendfile »
  • PHP Manual
  • Swoole\Client
  • Send data to the remote TCP socket.

Swoole\Client::send

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::send — Send data to the remote TCP socket.

Описание

public Swoole\Client::send ( string $data [, string $flag ] ) : integer

Список параметров

data

The data to send which can be string or binary

flag

Возвращаемые значения

If the client sends data successfully, it returns the length of data sent. Or it returns false and sets $swoole_client->errCode. For sync client, there is no limit for the data to send. For async client, The limit for the data to send is socket_buffer_size.


Send file to the remote TCP socket.

  • « Swoole\Client::send
  • Swoole\Client::sendto »
  • PHP Manual
  • Swoole\Client
  • Send file to the remote TCP socket.

Swoole\Client::sendfile

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::sendfile — Send file to the remote TCP socket.

Описание

public Swoole\Client::sendfile ( string $filename [, int $offset ] ) : boolean

This is a wrapper of the Linux sendfile system call.

Список параметров

filename

File path of the file to send.

offset

Offset of the file to send

Возвращаемые значения


Send data to the remote UDP address.

  • « Swoole\Client::sendfile
  • Swoole\Client::set »
  • PHP Manual
  • Swoole\Client
  • Send data to the remote UDP address.

Swoole\Client::sendto

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::sendto — Send data to the remote UDP address.

Описание

public Swoole\Client::sendto ( string $ip , integer $port , string $data ) : boolean

The swoole client should be type of SWOOLE_SOCK_UDP or SWOOLE_SOCK_UDP6.

Список параметров

ip

The IP address of remote host, IPv4 or IPv6.

port

The port number of remote host.

data

The data to send which should be less-than 64K.

Возвращаемые значения


Set the Swoole client parameters before the connection is established.

  • « Swoole\Client::sendto
  • Swoole\Client::sleep »
  • PHP Manual
  • Swoole\Client
  • Set the Swoole client parameters before the connection is established.

Swoole\Client::set

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::set — Set the Swoole client parameters before the connection is established.

Описание

public Swoole\Client::set ( array $settings ) : void

Список параметров

settings

Возвращаемые значения


Remove the TCP client from system event loop.

  • « Swoole\Client::set
  • Swoole\Client::wakeup »
  • PHP Manual
  • Swoole\Client
  • Remove the TCP client from system event loop.

Swoole\Client::sleep

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::sleep — Remove the TCP client from system event loop.

Описание

public Swoole\Client::sleep ( void ) : void

Remove the TCP client from system event loop.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Add the TCP client back into the system event loop.

  • « Swoole\Client::sleep
  • Swoole\Connection\Iterator »
  • PHP Manual
  • Swoole\Client
  • Add the TCP client back into the system event loop.

Swoole\Client::wakeup

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Client::wakeup — Add the TCP client back into the system event loop.

Описание

public Swoole\Client::wakeup ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Swoole\Connection\Iterator

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Connection\Iterator implements Iterator , Countable , ArrayAccess {
/* Методы */
public count ( void ) : int
public current ( void ) : Connection
public key ( void ) : int
public next ( void ) : Connection
public offsetExists ( int $index ) : boolean
public offsetGet ( string $index ) : Connection
public offsetSet ( int $offset , mixed $connection ) : void
public offsetUnset ( int $offset ) : void
public rewind ( void ) : void
public valid ( void ) : boolean
}

Содержание

  • Swoole\Connection\Iterator::count — Считает соединения
  • Swoole\Connection\Iterator::current — Возвращает текущую запись соединения
  • Swoole\Connection\Iterator::key — Возвращает ключ текущего соединения
  • Swoole\Connection\Iterator::next — Переходит к следующему соединению
  • Swoole\Connection\Iterator::offsetExists — Проверяет, существует ли смещение
  • Swoole\Connection\Iterator::offsetGet — Смещение для извлечения
  • Swoole\Connection\Iterator::offsetSet — Назначает соединение для указанного смещения
  • Swoole\Connection\Iterator::offsetUnset — Сбрасывает смещение
  • Swoole\Connection\Iterator::rewind — Перематывает итератор
  • Swoole\Connection\Iterator::valid — Проверяет правильность текущей позиции


Считает соединения

  • « Swoole\Connection\Iterator
  • Swoole\Connection\Iterator::current »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Считает соединения

Swoole\Connection\Iterator::count

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::count — Считает соединения

Описание

public Swoole\Connection\Iterator::count ( void ) : int

Получает количество соединений.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество соединений.


Возвращает текущую запись соединения

  • « Swoole\Connection\Iterator::count
  • Swoole\Connection\Iterator::key »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Возвращает текущую запись соединения

Swoole\Connection\Iterator::current

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::current — Возвращает текущую запись соединения

Описание

public Swoole\Connection\Iterator::current ( void ) : Connection

Получает текущую запись соединения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая запись соединения.


Возвращает ключ текущего соединения

  • « Swoole\Connection\Iterator::current
  • Swoole\Connection\Iterator::next »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Возвращает ключ текущего соединения

Swoole\Connection\Iterator::key

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::key — Возвращает ключ текущего соединения

Описание

public Swoole\Connection\Iterator::key ( void ) : int

Функция возвращает ключ текущего соединения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ключ текущего соединения.


Переходит к следующему соединению

  • « Swoole\Connection\Iterator::key
  • Swoole\Connection\Iterator::offsetExists »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Переходит к следующему соединению

Swoole\Connection\Iterator::next

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::next — Переходит к следующему соединению

Описание

public Swoole\Connection\Iterator::next ( void ) : Connection

Итератор для следующего соединения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверяет, существует ли смещение

  • « Swoole\Connection\Iterator::next
  • Swoole\Connection\Iterator::offsetGet »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Проверяет, существует ли смещение

Swoole\Connection\Iterator::offsetExists

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::offsetExists — Проверяет, существует ли смещение

Описание

public Swoole\Connection\Iterator::offsetExists ( int $index ) : boolean

Проверяет, существует ли смещение.

Список параметров

index

Смещение, которое необходимо проверить.

Возвращаемые значения

Возвращает TRUE, если смещение существует, в противном случае FALSE.


Смещение для извлечения

  • « Swoole\Connection\Iterator::offsetExists
  • Swoole\Connection\Iterator::offsetSet »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Смещение для извлечения

Swoole\Connection\Iterator::offsetGet

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::offsetGet — Смещение для извлечения

Описание

public Swoole\Connection\Iterator::offsetGet ( string $index ) : Connection

Возвращает соединение с указанным смещением.

Список параметров

index

Смещение для извлечения.

Возвращаемые значения


Назначает соединение для указанного смещения

  • « Swoole\Connection\Iterator::offsetGet
  • Swoole\Connection\Iterator::offsetUnset »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Назначает соединение для указанного смещения

Swoole\Connection\Iterator::offsetSet

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::offsetSet — Назначает соединение для указанного смещения

Описание

public Swoole\Connection\Iterator::offsetSet ( int $offset , mixed $connection ) : void

Назначает соединение для указанного смещения.

Список параметров

offset

Смещение для которого назначить соединение.

connection

Соединение для установки.

Возвращаемые значения


Сбрасывает смещение

  • « Swoole\Connection\Iterator::offsetSet
  • Swoole\Connection\Iterator::rewind »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Сбрасывает смещение

Swoole\Connection\Iterator::offsetUnset

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::offsetUnset — Сбрасывает смещение

Описание

public Swoole\Connection\Iterator::offsetUnset ( int $offset ) : void

Сбрасывает смещение.

Список параметров

offset

Смещение для сбрасывания.

Возвращаемые значения


Перематывает итератор

  • « Swoole\Connection\Iterator::offsetUnset
  • Swoole\Connection\Iterator::valid »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Перематывает итератор

Swoole\Connection\Iterator::rewind

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::rewind — Перематывает итератор

Описание

public Swoole\Connection\Iterator::rewind ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверяет правильность текущей позиции

  • « Swoole\Connection\Iterator::rewind
  • Swoole\Coroutine »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Проверяет правильность текущей позиции

Swoole\Connection\Iterator::valid

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::valid — Проверяет правильность текущей позиции

Описание

public Swoole\Connection\Iterator::valid ( void ) : boolean

Проверяет правильность текущей позиции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если текущая позиция итератора верна, иначе FALSE.


Класс Swoole\Coroutine

(PHP 7, PECL swoole >= 2.0.0)

Введение

Обзор классов

Swoole\Coroutine {
/* Методы */
public static call_user_func_array ( callable $callback , array $param_array ) : mixed
public static call_user_func ( callable $callback [, mixed $... ] ) : mixed
public static cli_wait ( void ) : ReturnType
public static create ( void ) : ReturnType
public Swoole\Coroutine\Client::close ( void ) : ReturnType
public Swoole\Coroutine\Client::connect ( void ) : ReturnType
public Swoole\Coroutine\Client::__destruct ( void ) : ReturnType
public Swoole\Coroutine\Client::getpeername ( void ) : ReturnType
public Swoole\Coroutine\Client::getsockname ( void ) : ReturnType
public Swoole\Coroutine\Client::isConnected ( void ) : ReturnType
public Swoole\Coroutine\Client::recv ( void ) : ReturnType
public Swoole\Coroutine\Client::send ( void ) : ReturnType
public Swoole\Coroutine\Client::sendfile ( void ) : ReturnType
public Swoole\Coroutine\Client::sendto ( void ) : ReturnType
public Swoole\Coroutine\Client::set ( void ) : ReturnType
public Swoole\Coroutine\Http\Client::addFile ( void ) : ReturnType
public Swoole\Coroutine\Http\Client::close ( void ) : ReturnType
public Swoole\Coroutine\Http\Client::__destruct ( void ) : ReturnType
public Swoole\Coroutine\Http\Client::execute ( void ) : ReturnType
public Swoole\Coroutine\Http\Client::get ( void ) : ReturnType
public Swoole\Coroutine\Http\Client::getDefer ( void ) : ReturnType
public Swoole\Coroutine\Http\Client::isConnected ( void ) : ReturnType
public Swoole\Coroutine\Http\Client::post ( void ) : ReturnType
public Swoole\Coroutine\Http\Client::recv ( void ) : ReturnType
public Swoole\Coroutine\Http\Client::set ( void ) : ReturnType
public Swoole\Coroutine\Http\Client::setCookies ( void ) : ReturnType
public Swoole\Coroutine\Http\Client::setData ( void ) : ReturnType
public Swoole\Coroutine\Http\Client::setDefer ( void ) : ReturnType
public Swoole\Coroutine\Http\Client::setHeaders ( void ) : ReturnType
public Swoole\Coroutine\Http\Client::setMethod ( void ) : ReturnType
public Swoole\Coroutine\MySQL::close ( void ) : ReturnType
public Swoole\Coroutine\MySQL::connect ( void ) : ReturnType
public Swoole\Coroutine\MySQL::__destruct ( void ) : ReturnType
public Swoole\Coroutine\MySQL::getDefer ( void ) : ReturnType
public Swoole\Coroutine\MySQL::query ( void ) : ReturnType
public Swoole\Coroutine\MySQL::recv ( void ) : ReturnType
public Swoole\Coroutine\MySQL::setDefer ( void ) : ReturnType
public static getuid ( void ) : ReturnType
public static resume ( void ) : ReturnType
public static suspend ( void ) : ReturnType
}

Содержание

  • Swoole\Coroutine::call_user_func_array — Call a callback with an array of parameters
  • Swoole\Coroutine::call_user_func — Call a callback given by the first parameter
  • Swoole\Coroutine::cli_wait — Description
  • Swoole\Coroutine::create — Description
  • Swoole\Coroutine\Client::close — Описание
  • Swoole\Coroutine\Client::connect — Описание
  • Swoole\Coroutine\Client::__construct — Описание
  • Swoole\Coroutine\Client::__destruct — Описание
  • Swoole\Coroutine\Client::getpeername — Описание
  • Swoole\Coroutine\Client::getsockname — Описание
  • Swoole\Coroutine\Client::isConnected — Описание
  • Swoole\Coroutine\Client::recv — Описание
  • Swoole\Coroutine\Client::send — Описание
  • Swoole\Coroutine\Client::sendfile — Описание
  • Swoole\Coroutine\Client::sendto — Описание
  • Swoole\Coroutine\Client::set — Описание
  • Swoole\Coroutine\Http\Client::addFile — Описание
  • Swoole\Coroutine\Http\Client::close — Описание
  • Swoole\Coroutine\Http\Client::__construct — Описание
  • Swoole\Coroutine\Http\Client::__destruct — Описание
  • Swoole\Coroutine\Http\Client::execute — Описание
  • Swoole\Coroutine\Http\Client::get — Описание
  • Swoole\Coroutine\Http\Client::getDefer — Описание
  • Swoole\Coroutine\Http\Client::isConnected — Описание
  • Swoole\Coroutine\Http\Client::post — Описание
  • Swoole\Coroutine\Http\Client::recv — Описание
  • Swoole\Coroutine\Http\Client::set — Описание
  • Swoole\Coroutine\Http\Client::setCookies — Описание
  • Swoole\Coroutine\Http\Client::setData — Описание
  • Swoole\Coroutine\Http\Client::setDefer — Описание
  • Swoole\Coroutine\Http\Client::setHeaders — Описание
  • Swoole\Coroutine\Http\Client::setMethod — Описание
  • Swoole\Coroutine\MySQL::close — Описание
  • Swoole\Coroutine\MySQL::connect — Описание
  • Swoole\Coroutine\MySQL::__construct — Описание
  • Swoole\Coroutine\MySQL::__destruct — Описание
  • Swoole\Coroutine\MySQL::getDefer — Описание
  • Swoole\Coroutine\MySQL::query — Описание
  • Swoole\Coroutine\MySQL::recv — Описание
  • Swoole\Coroutine\MySQL::setDefer — Описание
  • Swoole\Coroutine::getuid — Description
  • Swoole\Coroutine::resume — Description
  • Swoole\Coroutine::suspend — Description


Call a callback with an array of parameters

  • « Swoole\Coroutine
  • Swoole\Coroutine::call_user_func »
  • PHP Manual
  • Swoole\Coroutine
  • Call a callback with an array of parameters

Swoole\Coroutine::call_user_func_array

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine::call_user_func_array — Call a callback with an array of parameters

Описание

public static Swoole\Coroutine::call_user_func_array ( callable $callback , array $param_array ) : mixed

Calls the callback given by the first parameter with the parameters in param_array.

Список параметров

callback

The callable to be called.

param_array

Zero or more parameters in the array to be passed to the callback.

Возвращаемые значения


Call a callback given by the first parameter

  • « Swoole\Coroutine::call_user_func_array
  • Swoole\Coroutine::cli_wait »
  • PHP Manual
  • Swoole\Coroutine
  • Call a callback given by the first parameter

Swoole\Coroutine::call_user_func

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine::call_user_func — Call a callback given by the first parameter

Описание

public static Swoole\Coroutine::call_user_func ( callable $callback [, mixed $... ] ) : mixed

Calls the callback given by the first parameter and passes the remaining parameters as arguments.

Список параметров

callback

The callable to be called.

...

Zero or more parameters to be passed to the callback.

Возвращаемые значения


Description

  • « Swoole\Coroutine::call_user_func
  • Swoole\Coroutine::create »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine::cli_wait

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine::cli_wait — Description

Описание

public static Swoole\Coroutine::cli_wait ( void ) : ReturnType

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Description

  • « Swoole\Coroutine::cli_wait
  • Swoole\Coroutine\Client::close »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine::create

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine::create — Description

Описание

public static Swoole\Coroutine::create ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine::create
  • Swoole\Coroutine\Client::connect »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::close

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::close — Описание

Описание

public Swoole\Coroutine\Client::close ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::close
  • Swoole\Coroutine\Client::__construct »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::connect

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::connect — Описание

Описание

public Swoole\Coroutine\Client::connect ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::connect
  • Swoole\Coroutine\Client::__destruct »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::__construct

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::__construct — Описание

Описание

public Swoole\Coroutine\Client::__construct ( void )

Список параметров

У этой функции нет параметров.


Описание

  • « Swoole\Coroutine\Client::__construct
  • Swoole\Coroutine\Client::getpeername »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::__destruct

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::__destruct — Описание

Описание

public Swoole\Coroutine\Client::__destruct ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::__destruct
  • Swoole\Coroutine\Client::getsockname »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::getpeername

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::getpeername — Описание

Описание

public Swoole\Coroutine\Client::getpeername ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::getpeername
  • Swoole\Coroutine\Client::isConnected »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::getsockname

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::getsockname — Описание

Описание

public Swoole\Coroutine\Client::getsockname ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::getsockname
  • Swoole\Coroutine\Client::recv »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::isConnected

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::isConnected — Описание

Описание

public Swoole\Coroutine\Client::isConnected ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::isConnected
  • Swoole\Coroutine\Client::send »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::recv

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::recv — Описание

Описание

public Swoole\Coroutine\Client::recv ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::recv
  • Swoole\Coroutine\Client::sendfile »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::send

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::send — Описание

Описание

public Swoole\Coroutine\Client::send ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::send
  • Swoole\Coroutine\Client::sendto »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::sendfile

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::sendfile — Описание

Описание

public Swoole\Coroutine\Client::sendfile ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::sendfile
  • Swoole\Coroutine\Client::set »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::sendto

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::sendto — Описание

Описание

public Swoole\Coroutine\Client::sendto ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::sendto
  • Swoole\Coroutine\Http\Client::addFile »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::set

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::set — Описание

Описание

public Swoole\Coroutine\Client::set ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::set
  • Swoole\Coroutine\Http\Client::close »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::addFile

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::addFile — Описание

Описание

public Swoole\Coroutine\Http\Client::addFile ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::addFile
  • Swoole\Coroutine\Http\Client::__construct »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::close

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::close — Описание

Описание

public Swoole\Coroutine\Http\Client::close ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::close
  • Swoole\Coroutine\Http\Client::__destruct »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::__construct

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::__construct — Описание

Описание

public Swoole\Coroutine\Http\Client::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.


Описание

  • « Swoole\Coroutine\Http\Client::__construct
  • Swoole\Coroutine\Http\Client::execute »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::__destruct

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::__destruct — Описание

Описание

public Swoole\Coroutine\Http\Client::__destruct ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::__destruct
  • Swoole\Coroutine\Http\Client::get »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::execute

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::execute — Описание

Описание

public Swoole\Coroutine\Http\Client::execute ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::execute
  • Swoole\Coroutine\Http\Client::getDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::get

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::get — Описание

Описание

public Swoole\Coroutine\Http\Client::get ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::get
  • Swoole\Coroutine\Http\Client::isConnected »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::getDefer

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::getDefer — Описание

Описание

public Swoole\Coroutine\Http\Client::getDefer ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::getDefer
  • Swoole\Coroutine\Http\Client::post »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::isConnected

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::isConnected — Описание

Описание

public Swoole\Coroutine\Http\Client::isConnected ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::isConnected
  • Swoole\Coroutine\Http\Client::recv »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::post

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::post — Описание

Описание

public Swoole\Coroutine\Http\Client::post ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::post
  • Swoole\Coroutine\Http\Client::set »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::recv

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::recv — Описание

Описание

public Swoole\Coroutine\Http\Client::recv ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::recv
  • Swoole\Coroutine\Http\Client::setCookies »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::set

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::set — Описание

Описание

public Swoole\Coroutine\Http\Client::set ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::set
  • Swoole\Coroutine\Http\Client::setData »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::setCookies

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setCookies — Описание

Описание

public Swoole\Coroutine\Http\Client::setCookies ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::setCookies
  • Swoole\Coroutine\Http\Client::setDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::setData

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setData — Описание

Описание

public Swoole\Coroutine\Http\Client::setData ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::setData
  • Swoole\Coroutine\Http\Client::setHeaders »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::setDefer

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setDefer — Описание

Описание

public Swoole\Coroutine\Http\Client::setDefer ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::setDefer
  • Swoole\Coroutine\Http\Client::setMethod »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::setHeaders

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setHeaders — Описание

Описание

public Swoole\Coroutine\Http\Client::setHeaders ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::setHeaders
  • Swoole\Coroutine\MySQL::close »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::setMethod

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setMethod — Описание

Описание

public Swoole\Coroutine\Http\Client::setMethod ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::setMethod
  • Swoole\Coroutine\MySQL::connect »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\MySQL::close

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::close — Описание

Описание

public Swoole\Coroutine\MySQL::close ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\MySQL::close
  • Swoole\Coroutine\MySQL::__construct »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\MySQL::connect

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::connect — Описание

Описание

public Swoole\Coroutine\MySQL::connect ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\MySQL::connect
  • Swoole\Coroutine\MySQL::__destruct »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\MySQL::__construct

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::__construct — Описание

Описание

public Swoole\Coroutine\MySQL::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.


Описание

  • « Swoole\Coroutine\MySQL::__construct
  • Swoole\Coroutine\MySQL::getDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\MySQL::__destruct

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::__destruct — Описание

Описание

public Swoole\Coroutine\MySQL::__destruct ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\MySQL::__destruct
  • Swoole\Coroutine\MySQL::query »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\MySQL::getDefer

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::getDefer — Описание

Описание

public Swoole\Coroutine\MySQL::getDefer ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\MySQL::getDefer
  • Swoole\Coroutine\MySQL::recv »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\MySQL::query

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::query — Описание

Описание

public Swoole\Coroutine\MySQL::query ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\MySQL::query
  • Swoole\Coroutine\MySQL::setDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\MySQL::recv

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::recv — Описание

Описание

public Swoole\Coroutine\MySQL::recv ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\MySQL::recv
  • Swoole\Coroutine::getuid »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\MySQL::setDefer

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::setDefer — Описание

Описание

public Swoole\Coroutine\MySQL::setDefer ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Description

  • « Swoole\Coroutine\MySQL::setDefer
  • Swoole\Coroutine::resume »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine::getuid

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine::getuid — Description

Описание

public static Swoole\Coroutine::getuid ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Description

  • « Swoole\Coroutine::getuid
  • Swoole\Coroutine::suspend »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine::resume

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine::resume — Description

Описание

public static Swoole\Coroutine::resume ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Description

  • « Swoole\Coroutine::resume
  • Swoole\Event »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine::suspend

(PHP 7, PECL swoole >= 2.0.0)

Swoole\Coroutine::suspend — Description

Описание

public static Swoole\Coroutine::suspend ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Swoole\Event

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Event {
/* Методы */
public static add ( int $fd , callable $read_callback [, callable $write_callback [, string $events ]] ) : boolean
public static defer ( mixed $callback ) : void
public static del ( string $fd ) : boolean
public static exit ( void ) : void
public static set ( int $fd [, string $read_callback [, string $write_callback [, string $events ]]] ) : boolean
public static wait ( void ) : void
public static write ( string $fd , string $data ) : void
}

Содержание

  • Swoole\Event::add — Добавляет новые callback-функции сокета в EventLoop
  • Swoole\Event::defer — Добавляет callback-функцию в следующий цикл событий
  • Swoole\Event::del — Удаляет все callback-функции события сокета
  • Swoole\Event::exit — Выходит из цикла событий, доступо только на стороне клиента
  • Swoole\Event::set — Обновляет callback-функции события сокета
  • Swoole\Event::wait — Описание
  • Swoole\Event::write — Записывает данные в сокет


Добавляет новые callback-функции сокета в EventLoop

  • « Swoole\Event
  • Swoole\Event::defer »
  • PHP Manual
  • Swoole\Event
  • Добавляет новые callback-функции сокета в EventLoop

Swoole\Event::add

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Event::add — Добавляет новые callback-функции сокета в EventLoop

Описание

public static Swoole\Event::add ( int $fd , callable $read_callback [, callable $write_callback [, string $events ]] ) : boolean

Список параметров

fd

read_callback

write_callback

events

Возвращаемые значения


Добавляет callback-функцию в следующий цикл событий

  • « Swoole\Event::add
  • Swoole\Event::del »
  • PHP Manual
  • Swoole\Event
  • Добавляет callback-функцию в следующий цикл событий

Swoole\Event::defer

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Event::defer — Добавляет callback-функцию в следующий цикл событий

Описание

public static Swoole\Event::defer ( mixed $callback ) : void

Список параметров

callback

Возвращаемые значения


Удаляет все callback-функции события сокета

  • « Swoole\Event::defer
  • Swoole\Event::exit »
  • PHP Manual
  • Swoole\Event
  • Удаляет все callback-функции события сокета

Swoole\Event::del

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Event::del — Удаляет все callback-функции события сокета

Описание

public static Swoole\Event::del ( string $fd ) : boolean

Список параметров

fd

Возвращаемые значения


Выходит из цикла событий, доступо только на стороне клиента

  • « Swoole\Event::del
  • Swoole\Event::set »
  • PHP Manual
  • Swoole\Event
  • Выходит из цикла событий, доступо только на стороне клиента

Swoole\Event::exit

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Event::exit — Выходит из цикла событий, доступо только на стороне клиента

Описание

public static Swoole\Event::exit ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Обновляет callback-функции события сокета

  • « Swoole\Event::exit
  • Swoole\Event::wait »
  • PHP Manual
  • Swoole\Event
  • Обновляет callback-функции события сокета

Swoole\Event::set

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Event::set — Обновляет callback-функции события сокета

Описание

public static Swoole\Event::set ( int $fd [, string $read_callback [, string $write_callback [, string $events ]]] ) : boolean

Список параметров

fd

read_callback

write_callback

events

Возвращаемые значения


Описание

  • « Swoole\Event::set
  • Swoole\Event::write »
  • PHP Manual
  • Swoole\Event
  • Описание

Swoole\Event::wait

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Event::wait — Описание

Описание

public static Swoole\Event::wait ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Записывает данные в сокет

  • « Swoole\Event::wait
  • Swoole\Exception »
  • PHP Manual
  • Swoole\Event
  • Записывает данные в сокет

Swoole\Event::write

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Event::write — Записывает данные в сокет

Описание

public static Swoole\Event::write ( string $fd , string $data ) : void

Список параметров

fd

data

Возвращаемые значения


Класс Swoole\Exception

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Exception extends Exception implements Throwable {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}


Класс Swoole\Http\Client

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Http\Client {
/* Свойства */
public $errCode ;
public $sock ;
/* Методы */
public addFile ( string $path , string $name [, string $type [, string $filename [, string $offset ]]] ) : void
public close ( void ) : void
public __destruct ( void ) : void
public download ( string $path , string $file , callable $callback [, integer $offset ] ) : void
public execute ( string $path , string $callback ) : void
public get ( string $path , callable $callback ) : void
public isConnected ( void ) : boolean
public on ( string $event_name , callable $callback ) : void
public post ( string $path , string $data , callable $callback ) : void
public push ( string $data [, string $opcode [, string $finish ]] ) : void
public set ( array $settings ) : void
public setCookies ( array $cookies ) : void
public setData ( string $data ) : ReturnType
public setHeaders ( array $headers ) : void
public setMethod ( string $method ) : void
public upgrade ( string $path , string $callback ) : void
}

Свойства

errCode

sock

Содержание

  • Swoole\Http\Client::addFile — Добавляет файл в форму сообщения
  • Swoole\Http\Client::close — Закрывает http-соединение
  • Swoole\Http\Client::__construct — Создает асинхронный HTTP-клиент
  • Swoole\Http\Client::__destruct — Уничтожает HTTP-клиент
  • Swoole\Http\Client::download — Загружает файл с удаленного сервера
  • Swoole\Http\Client::execute — Посылает HTTP-запрос после установки параметров
  • Swoole\Http\Client::get — Отправляет HTTP-запрос GET на удаленный сервер
  • Swoole\Http\Client::isConnected — Проверяет, подключено ли соединение HTTP
  • Swoole\Http\Client::on — Регистрирует callback-функцию по имени события
  • Swoole\Http\Client::post — Отправляет HTTP-запрос POST на удаленный сервер
  • Swoole\Http\Client::push — Передает данные в клиент websocket
  • Swoole\Http\Client::set — Обновляет параметры HTTP-клиента
  • Swoole\Http\Client::setCookies — Устанавливает cookies для HTTP-запроса
  • Swoole\Http\Client::setData — Устанавливает данные тела HTTP-запроса
  • Swoole\Http\Client::setHeaders — Устанавливает заголовки HTTP-запроса
  • Swoole\Http\Client::setMethod — Устанавливает метод HTTP-запроса
  • Swoole\Http\Client::upgrade — Обновление до протокола websocket


Добавляет файл в форму сообщения

  • « Swoole\Http\Client
  • Swoole\Http\Client::close »
  • PHP Manual
  • Swoole\Http\Client
  • Добавляет файл в форму сообщения

Swoole\Http\Client::addFile

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Client::addFile — Добавляет файл в форму сообщения

Описание

public Swoole\Http\Client::addFile ( string $path , string $name [, string $type [, string $filename [, string $offset ]]] ) : void

Список параметров

path

name

type

filename

offset

Возвращаемые значения


Закрывает http-соединение

  • « Swoole\Http\Client::addFile
  • Swoole\Http\Client::__construct »
  • PHP Manual
  • Swoole\Http\Client
  • Закрывает http-соединение

Swoole\Http\Client::close

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Client::close — Закрывает http-соединение

Описание

public Swoole\Http\Client::close ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Создает асинхронный HTTP-клиент

  • « Swoole\Http\Client::close
  • Swoole\Http\Client::__destruct »
  • PHP Manual
  • Swoole\Http\Client
  • Создает асинхронный HTTP-клиент

Swoole\Http\Client::__construct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Client::__construct — Создает асинхронный HTTP-клиент

Описание

public Swoole\Http\Client::__construct ( string $host [, string $port [, boolean $ssl ]] )

Список параметров

host

Имя удаленного хоста.

port

Номер порта удаленного хоста.

ssl

Определяет, поддержку SSL.


Уничтожает HTTP-клиент

  • « Swoole\Http\Client::__construct
  • Swoole\Http\Client::download »
  • PHP Manual
  • Swoole\Http\Client
  • Уничтожает HTTP-клиент

Swoole\Http\Client::__destruct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Client::__destruct — Уничтожает HTTP-клиент

Описание

public Swoole\Http\Client::__destruct ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Загружает файл с удаленного сервера

  • « Swoole\Http\Client::__destruct
  • Swoole\Http\Client::execute »
  • PHP Manual
  • Swoole\Http\Client
  • Загружает файл с удаленного сервера

Swoole\Http\Client::download

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Client::download — Загружает файл с удаленного сервера

Описание

public Swoole\Http\Client::download ( string $path , string $file , callable $callback [, integer $offset ] ) : void

Список параметров

path

file

callback

offset

Возвращаемые значения


Посылает HTTP-запрос после установки параметров

  • « Swoole\Http\Client::download
  • Swoole\Http\Client::get »
  • PHP Manual
  • Swoole\Http\Client
  • Посылает HTTP-запрос после установки параметров

Swoole\Http\Client::execute

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Client::execute — Посылает HTTP-запрос после установки параметров

Описание

public Swoole\Http\Client::execute ( string $path , string $callback ) : void

Список параметров

path

callback

Возвращаемые значения


Отправляет HTTP-запрос GET на удаленный сервер

  • « Swoole\Http\Client::execute
  • Swoole\Http\Client::isConnected »
  • PHP Manual
  • Swoole\Http\Client
  • Отправляет HTTP-запрос GET на удаленный сервер

Swoole\Http\Client::get

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Client::get — Отправляет HTTP-запрос GET на удаленный сервер

Описание

public Swoole\Http\Client::get ( string $path , callable $callback ) : void

Список параметров

path

callback

Возвращаемые значения


Проверяет, подключено ли соединение HTTP

  • « Swoole\Http\Client::get
  • Swoole\Http\Client::on »
  • PHP Manual
  • Swoole\Http\Client
  • Проверяет, подключено ли соединение HTTP

Swoole\Http\Client::isConnected

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Client::isConnected — Проверяет, подключено ли соединение HTTP

Описание

public Swoole\Http\Client::isConnected ( void ) : boolean

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Регистрирует callback-функцию по имени события

  • « Swoole\Http\Client::isConnected
  • Swoole\Http\Client::post »
  • PHP Manual
  • Swoole\Http\Client
  • Регистрирует callback-функцию по имени события

Swoole\Http\Client::on

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Client::on — Регистрирует callback-функцию по имени события

Описание

public Swoole\Http\Client::on ( string $event_name , callable $callback ) : void

Список параметров

event_name

callback

Возвращаемые значения


Отправляет HTTP-запрос POST на удаленный сервер

  • « Swoole\Http\Client::on
  • Swoole\Http\Client::push »
  • PHP Manual
  • Swoole\Http\Client
  • Отправляет HTTP-запрос POST на удаленный сервер

Swoole\Http\Client::post

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Client::post — Отправляет HTTP-запрос POST на удаленный сервер

Описание

public Swoole\Http\Client::post ( string $path , string $data , callable $callback ) : void

Список параметров

path

data

callback

Возвращаемые значения


Передает данные в клиент websocket

  • « Swoole\Http\Client::post
  • Swoole\Http\Client::set »
  • PHP Manual
  • Swoole\Http\Client
  • Передает данные в клиент websocket

Swoole\Http\Client::push

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Client::push — Передает данные в клиент websocket

Описание

public Swoole\Http\Client::push ( string $data [, string $opcode [, string $finish ]] ) : void

Список параметров

data

opcode

finish

Возвращаемые значения


Обновляет параметры HTTP-клиента

  • « Swoole\Http\Client::push
  • Swoole\Http\Client::setCookies »
  • PHP Manual
  • Swoole\Http\Client
  • Обновляет параметры HTTP-клиента

Swoole\Http\Client::set

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Client::set — Обновляет параметры HTTP-клиента

Описание

public Swoole\Http\Client::set ( array $settings ) : void

Список параметров

settings

Возвращаемые значения


Устанавливает cookies для HTTP-запроса

  • « Swoole\Http\Client::set
  • Swoole\Http\Client::setData »
  • PHP Manual
  • Swoole\Http\Client
  • Устанавливает cookies для HTTP-запроса

Swoole\Http\Client::setCookies

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Client::setCookies — Устанавливает cookies для HTTP-запроса

Описание

public Swoole\Http\Client::setCookies ( array $cookies ) : void

Список параметров

cookies

Возвращаемые значения


Устанавливает данные тела HTTP-запроса

  • « Swoole\Http\Client::setCookies
  • Swoole\Http\Client::setHeaders »
  • PHP Manual
  • Swoole\Http\Client
  • Устанавливает данные тела HTTP-запроса

Swoole\Http\Client::setData

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Client::setData — Устанавливает данные тела HTTP-запроса

Описание

public Swoole\Http\Client::setData ( string $data ) : ReturnType

Метод HTTP будет изменен на POST.

Список параметров

data

Возвращаемые значения


Устанавливает заголовки HTTP-запроса

  • « Swoole\Http\Client::setData
  • Swoole\Http\Client::setMethod »
  • PHP Manual
  • Swoole\Http\Client
  • Устанавливает заголовки HTTP-запроса

Swoole\Http\Client::setHeaders

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Client::setHeaders — Устанавливает заголовки HTTP-запроса

Описание

public Swoole\Http\Client::setHeaders ( array $headers ) : void

Список параметров

headers

Возвращаемые значения


Устанавливает метод HTTP-запроса

  • « Swoole\Http\Client::setHeaders
  • Swoole\Http\Client::upgrade »
  • PHP Manual
  • Swoole\Http\Client
  • Устанавливает метод HTTP-запроса

Swoole\Http\Client::setMethod

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Client::setMethod — Устанавливает метод HTTP-запроса

Описание

public Swoole\Http\Client::setMethod ( string $method ) : void

Список параметров

method

Возвращаемые значения


Обновление до протокола websocket

  • « Swoole\Http\Client::setMethod
  • Swoole\Http\Request »
  • PHP Manual
  • Swoole\Http\Client
  • Обновление до протокола websocket

Swoole\Http\Client::upgrade

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Client::upgrade — Обновление до протокола websocket

Описание

public Swoole\Http\Client::upgrade ( string $path , string $callback ) : void

Список параметров

path

callback

Возвращаемые значения


Класс Swoole\Http\Request

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Http\Request {
/* Методы */
public __destruct ( void ) : void
public rawcontent ( void ) : string
}

Содержание

  • Swoole\Http\Request::__destruct — Уничтожает HTTP-запрос
  • Swoole\Http\Request::rawcontent — Получает необработанное тело HTTP POST


Уничтожает HTTP-запрос

  • « Swoole\Http\Request
  • Swoole\Http\Request::rawcontent »
  • PHP Manual
  • Swoole\Http\Request
  • Уничтожает HTTP-запрос

Swoole\Http\Request::__destruct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Request::__destruct — Уничтожает HTTP-запрос

Описание

public Swoole\Http\Request::__destruct ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает необработанное тело HTTP POST

  • « Swoole\Http\Request::__destruct
  • Swoole\Http\Response »
  • PHP Manual
  • Swoole\Http\Request
  • Получает необработанное тело HTTP POST

Swoole\Http\Request::rawcontent

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Request::rawcontent — Получает необработанное тело HTTP POST

Описание

public Swoole\Http\Request::rawcontent ( void ) : string

Метод используется для данных POST, которые не имеют форму `application/x-www-form-urlencoded`.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Swoole\Http\Response

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Http\Response {
/* Методы */
public cookie ( string $name [, string $value [, string $expires [, string $path [, string $domain [, string $secure [, string $httponly ]]]]]] ) : string
public __destruct ( void ) : void
public end ([ string $content ] ) : void
public gzip ([ string $compress_level ] ) : ReturnType
public header ( string $key , string $value [, string $ucwords ] ) : void
public initHeader ( void ) : ReturnType
public rawcookie ( string $name [, string $value [, string $expires [, string $path [, string $domain [, string $secure [, string $httponly ]]]]]] ) : ReturnType
public sendfile ( string $filename [, int $offset ] ) : ReturnType
public status ( string $http_code ) : ReturnType
public write ( string $content ) : void
}

Содержание

  • Swoole\Http\Response::cookie — Устанавливает cookie HTTP-ответа
  • Swoole\Http\Response::__destruct — Уничтожает HTTP-ответ
  • Swoole\Http\Response::end — Отправляет данные HTTP-запроса и завершает ответ
  • Swoole\Http\Response::gzip — Включает gzip-сжатие содержимого ответа.
  • Swoole\Http\Response::header — Устанавливает заголовки HTTP-ответа
  • Swoole\Http\Response::initHeader — Инициировать заголовок HTTP-ответа
  • Swoole\Http\Response::rawcookie — Устанавливает необработанные cookie в HTTP-ответ
  • Swoole\Http\Response::sendfile — Отправляет файл через HTTP-ответ
  • Swoole\Http\Response::status — Устанавливает код состояния HTTP-ответа
  • Swoole\Http\Response::write — Добавляет содержимое тела HTTP в HTTP-ответ


Устанавливает cookie HTTP-ответа

  • « Swoole\Http\Response
  • Swoole\Http\Response::__destruct »
  • PHP Manual
  • Swoole\Http\Response
  • Устанавливает cookie HTTP-ответа

Swoole\Http\Response::cookie

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Response::cookie — Устанавливает cookie HTTP-ответа

Описание

public Swoole\Http\Response::cookie ( string $name [, string $value [, string $expires [, string $path [, string $domain [, string $secure [, string $httponly ]]]]]] ) : string

Список параметров

name

value

expires

path

domain

secure

httponly

Возвращаемые значения


Уничтожает HTTP-ответ

  • « Swoole\Http\Response::cookie
  • Swoole\Http\Response::end »
  • PHP Manual
  • Swoole\Http\Response
  • Уничтожает HTTP-ответ

Swoole\Http\Response::__destruct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Response::__destruct — Уничтожает HTTP-ответ

Описание

public Swoole\Http\Response::__destruct ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Отправляет данные HTTP-запроса и завершает ответ

  • « Swoole\Http\Response::__destruct
  • Swoole\Http\Response::gzip »
  • PHP Manual
  • Swoole\Http\Response
  • Отправляет данные HTTP-запроса и завершает ответ

Swoole\Http\Response::end

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Response::end — Отправляет данные HTTP-запроса и завершает ответ

Описание

public Swoole\Http\Response::end ([ string $content ] ) : void

Список параметров

content

Возвращаемые значения


Включает gzip-сжатие содержимого ответа.

  • « Swoole\Http\Response::end
  • Swoole\Http\Response::header »
  • PHP Manual
  • Swoole\Http\Response
  • Включает gzip-сжатие содержимого ответа.

Swoole\Http\Response::gzip

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Response::gzip — Включает gzip-сжатие содержимого ответа.

Описание

public Swoole\Http\Response::gzip ([ string $compress_level ] ) : ReturnType

Заголовок о Content-Encoding будет добавлен автоматически.

Список параметров

compress_level

Возвращаемые значения


Устанавливает заголовки HTTP-ответа

  • « Swoole\Http\Response::gzip
  • Swoole\Http\Response::initHeader »
  • PHP Manual
  • Swoole\Http\Response
  • Устанавливает заголовки HTTP-ответа

Swoole\Http\Response::header

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Response::header — Устанавливает заголовки HTTP-ответа

Описание

public Swoole\Http\Response::header ( string $key , string $value [, string $ucwords ] ) : void

Список параметров

key

value

ucwords

Возвращаемые значения


Инициировать заголовок HTTP-ответа

  • « Swoole\Http\Response::header
  • Swoole\Http\Response::rawcookie »
  • PHP Manual
  • Swoole\Http\Response
  • Инициировать заголовок HTTP-ответа

Swoole\Http\Response::initHeader

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Response::initHeader — Инициировать заголовок HTTP-ответа

Описание

public Swoole\Http\Response::initHeader ( void ) : ReturnType

Инициировать заголовок HTTP-ответа.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Устанавливает необработанные cookie в HTTP-ответ

  • « Swoole\Http\Response::initHeader
  • Swoole\Http\Response::sendfile »
  • PHP Manual
  • Swoole\Http\Response
  • Устанавливает необработанные cookie в HTTP-ответ

Swoole\Http\Response::rawcookie

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Response::rawcookie — Устанавливает необработанные cookie в HTTP-ответ

Описание

public Swoole\Http\Response::rawcookie ( string $name [, string $value [, string $expires [, string $path [, string $domain [, string $secure [, string $httponly ]]]]]] ) : ReturnType

Список параметров

name

value

expires

path

domain

secure

httponly

Возвращаемые значения


Отправляет файл через HTTP-ответ

  • « Swoole\Http\Response::rawcookie
  • Swoole\Http\Response::status »
  • PHP Manual
  • Swoole\Http\Response
  • Отправляет файл через HTTP-ответ

Swoole\Http\Response::sendfile

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Response::sendfile — Отправляет файл через HTTP-ответ

Описание

public Swoole\Http\Response::sendfile ( string $filename [, int $offset ] ) : ReturnType

Отправляет файл через HTTP-ответ.

Список параметров

filename

offset

Возвращаемые значения


Устанавливает код состояния HTTP-ответа

  • « Swoole\Http\Response::sendfile
  • Swoole\Http\Response::write »
  • PHP Manual
  • Swoole\Http\Response
  • Устанавливает код состояния HTTP-ответа

Swoole\Http\Response::status

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Response::status — Устанавливает код состояния HTTP-ответа

Описание

public Swoole\Http\Response::status ( string $http_code ) : ReturnType

Устанавливает код состояния HTTP-ответа.

Список параметров

http_code

Возвращаемые значения


Добавляет содержимое тела HTTP в HTTP-ответ

  • « Swoole\Http\Response::status
  • Swoole\Http\Server »
  • PHP Manual
  • Swoole\Http\Response
  • Добавляет содержимое тела HTTP в HTTP-ответ

Swoole\Http\Response::write

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Response::write — Добавляет содержимое тела HTTP в HTTP-ответ

Описание

public Swoole\Http\Response::write ( string $content ) : void

Добавляет содержимое тела HTTP в HTTP-ответ.

Список параметров

content

Возвращаемые значения


Класс Swoole\Http\Server

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Http\Server extends Swoole\Server {
/* Методы */
public on ( string $event_name , callable $callback ) : void
public start ( void ) : void
/* Наследуемые методы */
public Swoole\Server::addlistener ( string $host , integer $port , string $socket_type ) : void
public Swoole\Server::addProcess ( swoole_process $process ) : boolean
public Swoole\Server::after ( integer $after_time_ms , callable $callback [, string $param ] ) : ReturnType
public Swoole\Server::bind ( integer $fd , integer $uid ) : boolean
public Swoole\Server::clearTimer ( integer $timer_id ) : void
swoole_timer_clear ( integer $timer_id ) : void
public Swoole\Server::close ( integer $fd [, boolean $reset ] ) : boolean
public Swoole\Server::confirm ( integer $fd ) : boolean
public Swoole\Server::connection_info ( integer $fd [, integer $reactor_id ] ) : array
public Swoole\Server::connection_list ( integer $start_fd [, integer $pagesize ] ) : array
public Swoole\Server::defer ( callable $callback ) : void
public Swoole\Server\Port::__destruct ( void ) : void
public Swoole\Server\Port::on ( string $event_name , callable $callback ) : ReturnType
public Swoole\Server\Port::set ( array $settings ) : void
public Swoole\Server::exist ( integer $fd ) : boolean
public Swoole\Server::finish ( string $data ) : void
public Swoole\Server::getClientInfo ( integer $fd [, integer $reactor_id ] ) : ReturnType
public Swoole\Server::getClientList ( integer $start_fd [, integer $pagesize ] ) : array
public Swoole\Server::getLastError ( void ) : integer
public Swoole\Server::heartbeat ( boolean $if_close_connection ) : mixed
public Swoole\Server::listen ( string $host , integer $port , string $socket_type ) : boolean
public Swoole\Server::on ( string $event_name , callable $callback ) : void
public Swoole\Server::pause ( integer $fd ) : void
public Swoole\Server::protect ( integer $fd [, boolean $is_protected ] ) : void
public Swoole\Server::reload ( void ) : boolean
public Swoole\Server::resume ( integer $fd ) : void
public Swoole\Server::send ( integer $fd , string $data [, integer $reactor_id ] ) : boolean
public Swoole\Server::sendfile ( integer $fd , string $filename [, integer $offset ] ) : boolean
public Swoole\Server::sendMessage ( integer $worker_id , string $data ) : boolean
public Swoole\Server::sendto ( string $ip , integer $port , string $data [, string $server_socket ] ) : boolean
public Swoole\Server::sendwait ( integer $fd , string $data ) : boolean
public Swoole\Server::set ( array $settings ) : ReturnType
public Swoole\Server::shutdown ( void ) : void
public Swoole\Server::start ( void ) : void
public Swoole\Server::stats ( void ) : array
public Swoole\Server::stop ([ integer $worker_id ] ) : boolean
public Swoole\Server::task ( string $data [, integer $dst_worker_id [, callable $callback ]] ) : mixed
public Swoole\Server::taskwait ( string $data [, float $timeout [, integer $worker_id ]] ) : void
public Swoole\Server::taskWaitMulti ( array $tasks [, double $timeout_ms ] ) : void
public Swoole\Server::tick ( integer $interval_ms , callable $callback ) : void
}

Содержание

  • Swoole\Http\Server::on — Привязывает callback-функцию к HTTP-серверу по имени события
  • Swoole\Http\Server::start — Запускает http-сервер swoole


Привязывает callback-функцию к HTTP-серверу по имени события

  • « Swoole\Http\Server
  • Swoole\Http\Server::start »
  • PHP Manual
  • Swoole\Http\Server
  • Привязывает callback-функцию к HTTP-серверу по имени события

Swoole\Http\Server::on

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Server::on — Привязывает callback-функцию к HTTP-серверу по имени события

Описание

public Swoole\Http\Server::on ( string $event_name , callable $callback ) : void

Привязывает callback-функцию к HTTP-серверу по имени события.

Список параметров

event_name

callback

Возвращаемые значения


Запускает http-сервер swoole

  • « Swoole\Http\Server::on
  • Swoole\Lock »
  • PHP Manual
  • Swoole\Http\Server
  • Запускает http-сервер swoole

Swoole\Http\Server::start

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Http\Server::start — Запускает http-сервер swoole

Описание

public Swoole\Http\Server::start ( void ) : void

Запускает http-сервер swoole.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Swoole\Lock

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Lock {
/* Методы */
public __destruct ( void ) : void
public lock_read ( void ) : void
public lock ( void ) : void
public trylock_read ( void ) : void
public trylock ( void ) : void
public unlock ( void ) : void
}

Содержание

  • Swoole\Lock::__construct — Construct a memory lock.
  • Swoole\Lock::__destruct — Destory a Swoole memory lock.
  • Swoole\Lock::lock_read — Lock a read-write lock for reading.
  • Swoole\Lock::lock — Try to acquire the lock. It will block if the lock is not available.
  • Swoole\Lock::trylock_read — Try to lock a read-write lock for reading and return straight away even the lock is not available.
  • Swoole\Lock::trylock — Try to acquire the lock and return straight away even the lock is not available.
  • Swoole\Lock::unlock — Release the lock.


Construct a memory lock.

  • « Swoole\Lock
  • Swoole\Lock::__destruct »
  • PHP Manual
  • Swoole\Lock
  • Construct a memory lock.

Swoole\Lock::__construct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Lock::__construct — Construct a memory lock.

Описание

public Swoole\Lock::__construct ([ string $type [, string $file_lock_location ]] )

Swoole lock is used for data synchronization between multiple theads or processes.

Список параметров

type

file_lock_location


Destory a Swoole memory lock.

  • « Swoole\Lock::__construct
  • Swoole\Lock::lock_read »
  • PHP Manual
  • Swoole\Lock
  • Destory a Swoole memory lock.

Swoole\Lock::__destruct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Lock::__destruct — Destory a Swoole memory lock.

Описание

public Swoole\Lock::__destruct ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Lock a read-write lock for reading.

  • « Swoole\Lock::__destruct
  • Swoole\Lock::lock »
  • PHP Manual
  • Swoole\Lock
  • Lock a read-write lock for reading.

Swoole\Lock::lock_read

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Lock::lock_read — Lock a read-write lock for reading.

Описание

public Swoole\Lock::lock_read ( void ) : void

Lock a read-write lock for reading.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Try to acquire the lock. It will block if the lock is not available.

  • « Swoole\Lock::lock_read
  • Swoole\Lock::trylock_read »
  • PHP Manual
  • Swoole\Lock
  • Try to acquire the lock. It will block if the lock is not available.

Swoole\Lock::lock

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Lock::lock — Try to acquire the lock. It will block if the lock is not available.

Описание

public Swoole\Lock::lock ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Try to lock a read-write lock for reading and return straight away even the lock is not available.

  • « Swoole\Lock::lock
  • Swoole\Lock::trylock »
  • PHP Manual
  • Swoole\Lock
  • Try to lock a read-write lock for reading and return straight away even the lock is not available.

Swoole\Lock::trylock_read

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Lock::trylock_read — Try to lock a read-write lock for reading and return straight away even the lock is not available.

Описание

public Swoole\Lock::trylock_read ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Try to acquire the lock and return straight away even the lock is not available.

  • « Swoole\Lock::trylock_read
  • Swoole\Lock::unlock »
  • PHP Manual
  • Swoole\Lock
  • Try to acquire the lock and return straight away even the lock is not available.

Swoole\Lock::trylock

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Lock::trylock — Try to acquire the lock and return straight away even the lock is not available.

Описание

public Swoole\Lock::trylock ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Release the lock.

  • « Swoole\Lock::trylock
  • Swoole\Mmap »
  • PHP Manual
  • Swoole\Lock
  • Release the lock.

Swoole\Lock::unlock

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Lock::unlock — Release the lock.

Описание

public Swoole\Lock::unlock ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Swoole\Mmap

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Mmap {
/* Методы */
public static open ( string $filename [, string $size [, string $offset ]] ) : ReturnType
}

Содержание

  • Swoole\Mmap::open — Отобразить файл в память и вернуть ресурс потока, который может использоваться операциями потока PHP


Отобразить файл в память и вернуть ресурс потока, который может использоваться операциями потока PHP

  • « Swoole\Mmap
  • Swoole\MySQL »
  • PHP Manual
  • Swoole\Mmap
  • Отобразить файл в память и вернуть ресурс потока, который может использоваться операциями потока PHP

Swoole\Mmap::open

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Mmap::open — Отобразить файл в память и вернуть ресурс потока, который может использоваться операциями потока PHP

Описание

public static Swoole\Mmap::open ( string $filename [, string $size [, string $offset ]] ) : ReturnType

Список параметров

filename

size

offset

Возвращаемые значения


Класс Swoole\MySQL

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\MySQL {
/* Методы */
public close ( void ) : void
public connect ( array $server_config , callable $callback ) : void
public __destruct ( void ) : void
public getBuffer ( void ) : ReturnType
public on ( string $event_name , callable $callback ) : void
public query ( string $sql , callable $callback ) : ReturnType
}

Содержание

  • Swoole\MySQL::close — Закрывает асинхронное соединение MySQL
  • Swoole\MySQL::connect — Подключается к удаленному серверу MySQL
  • Swoole\MySQL::__construct — Создает асинхронный клиент MySQL
  • Swoole\MySQL::__destruct — Уничтожает асинхронный клиент MySQL
  • Swoole\MySQL::getBuffer — Описание
  • Swoole\MySQL::on — Регистрирует callback-функцию на основе имени события
  • Swoole\MySQL::query — Выполняет запрос SQL


Закрывает асинхронное соединение MySQL

  • « Swoole\MySQL
  • Swoole\MySQL::connect »
  • PHP Manual
  • Swoole\MySQL
  • Закрывает асинхронное соединение MySQL

Swoole\MySQL::close

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\MySQL::close — Закрывает асинхронное соединение MySQL

Описание

public Swoole\MySQL::close ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Подключается к удаленному серверу MySQL

  • « Swoole\MySQL::close
  • Swoole\MySQL::__construct »
  • PHP Manual
  • Swoole\MySQL
  • Подключается к удаленному серверу MySQL

Swoole\MySQL::connect

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\MySQL::connect — Подключается к удаленному серверу MySQL

Описание

public Swoole\MySQL::connect ( array $server_config , callable $callback ) : void

Подключается к удаленному серверу MySQL.

Список параметров

server_config

callback

Возвращаемые значения


Создает асинхронный клиент MySQL

  • « Swoole\MySQL::connect
  • Swoole\MySQL::__destruct »
  • PHP Manual
  • Swoole\MySQL
  • Создает асинхронный клиент MySQL

Swoole\MySQL::__construct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\MySQL::__construct — Создает асинхронный клиент MySQL

Описание

public Swoole\MySQL::__construct ( void )

Создает асинхронный клиент MySQL.

Список параметров

У этой функции нет параметров.


Уничтожает асинхронный клиент MySQL

  • « Swoole\MySQL::__construct
  • Swoole\MySQL::getBuffer »
  • PHP Manual
  • Swoole\MySQL
  • Уничтожает асинхронный клиент MySQL

Swoole\MySQL::__destruct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\MySQL::__destruct — Уничтожает асинхронный клиент MySQL

Описание

public Swoole\MySQL::__destruct ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\MySQL::__destruct
  • Swoole\MySQL::on »
  • PHP Manual
  • Swoole\MySQL
  • Описание

Swoole\MySQL::getBuffer

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\MySQL::getBuffer — Описание

Описание

public Swoole\MySQL::getBuffer ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Регистрирует callback-функцию на основе имени события

  • « Swoole\MySQL::getBuffer
  • Swoole\MySQL::query »
  • PHP Manual
  • Swoole\MySQL
  • Регистрирует callback-функцию на основе имени события

Swoole\MySQL::on

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\MySQL::on — Регистрирует callback-функцию на основе имени события

Описание

public Swoole\MySQL::on ( string $event_name , callable $callback ) : void

Регистрирует callback-функцию на основе имени события, на данный момент поддерживается только событие 'close'.

Список параметров

event_name

callback

Возвращаемые значения


Выполняет запрос SQL

  • « Swoole\MySQL::on
  • Swoole\MySQL\Exception »
  • PHP Manual
  • Swoole\MySQL
  • Выполняет запрос SQL

Swoole\MySQL::query

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\MySQL::query — Выполняет запрос SQL

Описание

public Swoole\MySQL::query ( string $sql , callable $callback ) : ReturnType

Список параметров

sql

callback

Возвращаемые значения


Класс Swoole\MySQL\Exception

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\MySQL\Exception extends Exception implements Throwable {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}


Класс Swoole\Process

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Process {
/* Константы */
const integer IPC_NOWAIT = 256 ;
/* Методы */
public static alarm ( integer $interval_usec ) : void
public close ( void ) : void
public static daemon ([ boolean $nochdir [, boolean $noclose ]] ) : void
public __destruct ( void ) : void
public exec ( string $exec_file , string $args ) : ReturnType
public exit ([ string $exit_code ] ) : void
public freeQueue ( void ) : void
public static kill ( integer $pid [, string $signal_no ] ) : void
public name ( string $process_name ) : void
public pop ([ integer $maxsize ] ) : mixed
public push ( string $data ) : boolean
public read ([ integer $maxsize ] ) : string
public static signal ( string $signal_no , callable $callback ) : void
public start ( void ) : void
public statQueue ( void ) : array
public useQueue ( integer $key [, integer $mode ] ) : boolean
public static wait ([ boolean $blocking ] ) : array
public write ( string $data ) : integer
}

Предопределенные константы

Swoole\Process::IPC_NOWAIT

Содержание

  • Swoole\Process::alarm — Таймер высокой точности, который запускает сигнал с фиксированным интервалом
  • Swoole\Process::close — Закрывает канал для дочернего процесса
  • Swoole\Process::__construct — Создает процесс
  • Swoole\Process::daemon — Изменяет процесс на процесс-демон
  • Swoole\Process::__destruct — Уничтожает процесс
  • Swoole\Process::exec — Выполняет системные команды
  • Swoole\Process::exit — Останавливает дочерние процессы
  • Swoole\Process::freeQueue — Уничтожает очередь сообщений, созданную swoole_process::useQueue
  • Swoole\Process::kill — Посылает сигнал дочернему процессу
  • Swoole\Process::name — Устанавливает название процесса
  • Swoole\Process::pop — Читает и извлекает данные из очереди сообщений
  • Swoole\Process::push — Записывает и помещает данные в очередь сообщений
  • Swoole\Process::read — Читает данные отправки в процесс
  • Swoole\Process::signal — Посылает сигнал дочерним процессам
  • Swoole\Process::start — Запускает процесс
  • Swoole\Process::statQueue — Получает статистику очереди сообщений, используемой в качестве метода связи между процессами
  • Swoole\Process::useQueue — Создает очередь сообщений в качестве метода связи между родительским процессом и дочерними процессами
  • Swoole\Process::wait — Ожидает событий дочерних процессов
  • Swoole\Process::write — Записывает данные в канал и связывается с родительским процессом или дочерними процессами


Таймер высокой точности, который запускает сигнал с фиксированным интервалом

  • « Swoole\Process
  • Swoole\Process::close »
  • PHP Manual
  • Swoole\Process
  • Таймер высокой точности, который запускает сигнал с фиксированным интервалом

Swoole\Process::alarm

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::alarm — Таймер высокой точности, который запускает сигнал с фиксированным интервалом

Описание

public static Swoole\Process::alarm ( integer $interval_usec ) : void

Список параметров

interval_usec

Возвращаемые значения


Закрывает канал для дочернего процесса

  • « Swoole\Process::alarm
  • Swoole\Process::__construct »
  • PHP Manual
  • Swoole\Process
  • Закрывает канал для дочернего процесса

Swoole\Process::close

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::close — Закрывает канал для дочернего процесса

Описание

public Swoole\Process::close ( void ) : void

Закрывает канал для дочернего процесса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Создает процесс

  • « Swoole\Process::close
  • Swoole\Process::daemon »
  • PHP Manual
  • Swoole\Process
  • Создает процесс

Swoole\Process::__construct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::__construct — Создает процесс

Описание

public Swoole\Process::__construct ( callable $callback [, boolean $redirect_stdin_and_stdout [, integer $pipe_type ]] )

Список параметров

callback

redirect_stdin_and_stdout

pipe_type


Изменяет процесс на процесс-демон

  • « Swoole\Process::__construct
  • Swoole\Process::__destruct »
  • PHP Manual
  • Swoole\Process
  • Изменяет процесс на процесс-демон

Swoole\Process::daemon

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::daemon — Изменяет процесс на процесс-демон

Описание

public static Swoole\Process::daemon ([ boolean $nochdir [, boolean $noclose ]] ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

nochdir

noclose

Возвращаемые значения


Уничтожает процесс

  • « Swoole\Process::daemon
  • Swoole\Process::exec »
  • PHP Manual
  • Swoole\Process
  • Уничтожает процесс

Swoole\Process::__destruct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::__destruct — Уничтожает процесс

Описание

public Swoole\Process::__destruct ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Выполняет системные команды

  • « Swoole\Process::__destruct
  • Swoole\Process::exit »
  • PHP Manual
  • Swoole\Process
  • Выполняет системные команды

Swoole\Process::exec

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::exec — Выполняет системные команды

Описание

public Swoole\Process::exec ( string $exec_file , string $args ) : ReturnType

Процесс будет заменен на системный командный процесс, но канал к родительскому процессу будет сохранен.

Список параметров

exec_file

args

Возвращаемые значения


Останавливает дочерние процессы

  • « Swoole\Process::exec
  • Swoole\Process::freeQueue »
  • PHP Manual
  • Swoole\Process
  • Останавливает дочерние процессы

Swoole\Process::exit

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::exit — Останавливает дочерние процессы

Описание

public Swoole\Process::exit ([ string $exit_code ] ) : void

Список параметров

exit_code

Возвращаемые значения


Уничтожает очередь сообщений, созданную swoole_process::useQueue

  • « Swoole\Process::exit
  • Swoole\Process::kill »
  • PHP Manual
  • Swoole\Process
  • Уничтожает очередь сообщений, созданную swoole_process::useQueue

Swoole\Process::freeQueue

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::freeQueue — Уничтожает очередь сообщений, созданную swoole_process::useQueue

Описание

public Swoole\Process::freeQueue ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Посылает сигнал дочернему процессу

  • « Swoole\Process::freeQueue
  • Swoole\Process::name »
  • PHP Manual
  • Swoole\Process
  • Посылает сигнал дочернему процессу

Swoole\Process::kill

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::kill — Посылает сигнал дочернему процессу

Описание

public static Swoole\Process::kill ( integer $pid [, string $signal_no ] ) : void

Посылает сигнал дочернему процессу.

Список параметров

pid

signal_no

Возвращаемые значения


Устанавливает название процесса

  • « Swoole\Process::kill
  • Swoole\Process::pop »
  • PHP Manual
  • Swoole\Process
  • Устанавливает название процесса

Swoole\Process::name

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::name — Устанавливает название процесса

Описание

public Swoole\Process::name ( string $process_name ) : void

Список параметров

process_name

Возвращаемые значения


Читает и извлекает данные из очереди сообщений

  • « Swoole\Process::name
  • Swoole\Process::push »
  • PHP Manual
  • Swoole\Process
  • Читает и извлекает данные из очереди сообщений

Swoole\Process::pop

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::pop — Читает и извлекает данные из очереди сообщений

Описание

public Swoole\Process::pop ([ integer $maxsize ] ) : mixed

Список параметров

maxsize

Возвращаемые значения


Записывает и помещает данные в очередь сообщений

  • « Swoole\Process::pop
  • Swoole\Process::read »
  • PHP Manual
  • Swoole\Process
  • Записывает и помещает данные в очередь сообщений

Swoole\Process::push

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::push — Записывает и помещает данные в очередь сообщений

Описание

public Swoole\Process::push ( string $data ) : boolean

Список параметров

data

Возвращаемые значения


Читает данные отправки в процесс

  • « Swoole\Process::push
  • Swoole\Process::signal »
  • PHP Manual
  • Swoole\Process
  • Читает данные отправки в процесс

Swoole\Process::read

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::read — Читает данные отправки в процесс

Описание

public Swoole\Process::read ([ integer $maxsize ] ) : string

Список параметров

maxsize

Возвращаемые значения


Посылает сигнал дочерним процессам

  • « Swoole\Process::read
  • Swoole\Process::start »
  • PHP Manual
  • Swoole\Process
  • Посылает сигнал дочерним процессам

Swoole\Process::signal

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::signal — Посылает сигнал дочерним процессам

Описание

public static Swoole\Process::signal ( string $signal_no , callable $callback ) : void

Список параметров

signal_no

callback

Возвращаемые значения

В случае успешной отправки сигнала, возвращает TRUE, в противном случае возвращает FALSE.


Запускает процесс

  • « Swoole\Process::signal
  • Swoole\Process::statQueue »
  • PHP Manual
  • Swoole\Process
  • Запускает процесс

Swoole\Process::start

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::start — Запускает процесс

Описание

public Swoole\Process::start ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает статистику очереди сообщений, используемой в качестве метода связи между процессами

  • « Swoole\Process::start
  • Swoole\Process::useQueue »
  • PHP Manual
  • Swoole\Process
  • Получает статистику очереди сообщений, используемой в качестве метода связи между процессами

Swoole\Process::statQueue

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::statQueue — Получает статистику очереди сообщений, используемой в качестве метода связи между процессами

Описание

public Swoole\Process::statQueue ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив состояния очереди сообщений.


Создает очередь сообщений в качестве метода связи между родительским процессом и дочерними процессами

  • « Swoole\Process::statQueue
  • Swoole\Process::wait »
  • PHP Manual
  • Swoole\Process
  • Создает очередь сообщений в качестве метода связи между родительским процессом и дочерними процессами

Swoole\Process::useQueue

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::useQueue — Создает очередь сообщений в качестве метода связи между родительским процессом и дочерними процессами

Описание

public Swoole\Process::useQueue ( integer $key [, integer $mode ] ) : boolean

Список параметров

key

mode

Возвращаемые значения


Ожидает событий дочерних процессов

  • « Swoole\Process::useQueue
  • Swoole\Process::write »
  • PHP Manual
  • Swoole\Process
  • Ожидает событий дочерних процессов

Swoole\Process::wait

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::wait — Ожидает событий дочерних процессов

Описание

public static Swoole\Process::wait ([ boolean $blocking ] ) : array

Список параметров

blocking

Возвращаемые значения


Записывает данные в канал и связывается с родительским процессом или дочерними процессами

  • « Swoole\Process::wait
  • Swoole\Redis\Server »
  • PHP Manual
  • Swoole\Process
  • Записывает данные в канал и связывается с родительским процессом или дочерними процессами

Swoole\Process::write

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Process::write — Записывает данные в канал и связывается с родительским процессом или дочерними процессами

Описание

public Swoole\Process::write ( string $data ) : integer

Список параметров

data

Возвращаемые значения


Класс Swoole\Redis\Server

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Redis\Server extends Swoole\Server {
/* Константы */
const integer NIL = 1 ;
const integer ERROR = 0 ;
const integer STATUS = 2 ;
const integer INT = 3 ;
const integer STRING = 4 ;
const integer SET = 5 ;
const integer MAP = 6 ;
/* Методы */
public static format ( string $type [, string $value ] ) : ReturnType
public setHandler ( string $command , string $callback [, string $number_of_string_param [, string $type_of_array_param ]] ) : ReturnType
public start ( void ) : ReturnType
/* Наследуемые методы */
public Swoole\Server::addlistener ( string $host , integer $port , string $socket_type ) : void
public Swoole\Server::addProcess ( swoole_process $process ) : boolean
public Swoole\Server::after ( integer $after_time_ms , callable $callback [, string $param ] ) : ReturnType
public Swoole\Server::bind ( integer $fd , integer $uid ) : boolean
public Swoole\Server::clearTimer ( integer $timer_id ) : void
swoole_timer_clear ( integer $timer_id ) : void
public Swoole\Server::close ( integer $fd [, boolean $reset ] ) : boolean
public Swoole\Server::confirm ( integer $fd ) : boolean
public Swoole\Server::connection_info ( integer $fd [, integer $reactor_id ] ) : array
public Swoole\Server::connection_list ( integer $start_fd [, integer $pagesize ] ) : array
public Swoole\Server::defer ( callable $callback ) : void
public Swoole\Server\Port::__destruct ( void ) : void
public Swoole\Server\Port::on ( string $event_name , callable $callback ) : ReturnType
public Swoole\Server\Port::set ( array $settings ) : void
public Swoole\Server::exist ( integer $fd ) : boolean
public Swoole\Server::finish ( string $data ) : void
public Swoole\Server::getClientInfo ( integer $fd [, integer $reactor_id ] ) : ReturnType
public Swoole\Server::getClientList ( integer $start_fd [, integer $pagesize ] ) : array
public Swoole\Server::getLastError ( void ) : integer
public Swoole\Server::heartbeat ( boolean $if_close_connection ) : mixed
public Swoole\Server::listen ( string $host , integer $port , string $socket_type ) : boolean
public Swoole\Server::on ( string $event_name , callable $callback ) : void
public Swoole\Server::pause ( integer $fd ) : void
public Swoole\Server::protect ( integer $fd [, boolean $is_protected ] ) : void
public Swoole\Server::reload ( void ) : boolean
public Swoole\Server::resume ( integer $fd ) : void
public Swoole\Server::send ( integer $fd , string $data [, integer $reactor_id ] ) : boolean
public Swoole\Server::sendfile ( integer $fd , string $filename [, integer $offset ] ) : boolean
public Swoole\Server::sendMessage ( integer $worker_id , string $data ) : boolean
public Swoole\Server::sendto ( string $ip , integer $port , string $data [, string $server_socket ] ) : boolean
public Swoole\Server::sendwait ( integer $fd , string $data ) : boolean
public Swoole\Server::set ( array $settings ) : ReturnType
public Swoole\Server::shutdown ( void ) : void
public Swoole\Server::start ( void ) : void
public Swoole\Server::stats ( void ) : array
public Swoole\Server::stop ([ integer $worker_id ] ) : boolean
public Swoole\Server::task ( string $data [, integer $dst_worker_id [, callable $callback ]] ) : mixed
public Swoole\Server::taskwait ( string $data [, float $timeout [, integer $worker_id ]] ) : void
public Swoole\Server::taskWaitMulti ( array $tasks [, double $timeout_ms ] ) : void
public Swoole\Server::tick ( integer $interval_ms , callable $callback ) : void
}

Предопределенные константы

Swoole\Redis\Server::NIL

Swoole\Redis\Server::ERROR

Swoole\Redis\Server::STATUS

Swoole\Redis\Server::INT

Swoole\Redis\Server::STRING

Swoole\Redis\Server::SET

Swoole\Redis\Server::MAP

Содержание

  • Swoole\Redis\Server::format — Описание
  • Swoole\Redis\Server::setHandler — Описание
  • Swoole\Redis\Server::start — Описание


Описание

  • « Swoole\Redis\Server
  • Swoole\Redis\Server::setHandler »
  • PHP Manual
  • Swoole\Redis\Server
  • Описание

Swoole\Redis\Server::format

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Redis\Server::format — Описание

Описание

public static Swoole\Redis\Server::format ( string $type [, string $value ] ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

type

value

Возвращаемые значения


Описание

  • « Swoole\Redis\Server::format
  • Swoole\Redis\Server::start »
  • PHP Manual
  • Swoole\Redis\Server
  • Описание

Swoole\Redis\Server::setHandler

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Redis\Server::setHandler — Описание

Описание

public Swoole\Redis\Server::setHandler ( string $command , string $callback [, string $number_of_string_param [, string $type_of_array_param ]] ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

command

callback

number_of_string_param

type_of_array_param

Возвращаемые значения


Описание

  • « Swoole\Redis\Server::setHandler
  • Swoole\Serialize »
  • PHP Manual
  • Swoole\Redis\Server
  • Описание

Swoole\Redis\Server::start

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Redis\Server::start — Описание

Описание

public Swoole\Redis\Server::start ( void ) : ReturnType

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Swoole\Serialize

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Serialize {
/* Методы */
public static pack ( string $data [, int $is_fast ] ) : ReturnType
public static unpack ( string $data [, string $args ] ) : ReturnType
}

Содержание

  • Swoole\Serialize::pack — Сериализовать данные
  • Swoole\Serialize::unpack — Десериализовать данные


Сериализовать данные

  • « Swoole\Serialize
  • Swoole\Serialize::unpack »
  • PHP Manual
  • Swoole\Serialize
  • Сериализовать данные

Swoole\Serialize::pack

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Serialize::pack — Сериализовать данные

Описание

public static Swoole\Serialize::pack ( string $data [, int $is_fast ] ) : ReturnType

Swoolle обеспечивает быстрый и высокопроизводительный модуль сериализации.

Список параметров

data

is_fast

Возвращаемые значения


Десериализовать данные

  • « Swoole\Serialize::pack
  • Swoole\Server »
  • PHP Manual
  • Swoole\Serialize
  • Десериализовать данные

Swoole\Serialize::unpack

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Serialize::unpack — Десериализовать данные

Описание

public static Swoole\Serialize::unpack ( string $data [, string $args ] ) : ReturnType

Десериализовать данные.

Список параметров

string

args

Возвращаемые значения


Класс Swoole\Server

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Server {
/* Методы */
public addlistener ( string $host , integer $port , string $socket_type ) : void
public addProcess ( swoole_process $process ) : boolean
public after ( integer $after_time_ms , callable $callback [, string $param ] ) : ReturnType
public bind ( integer $fd , integer $uid ) : boolean
public clearTimer ( integer $timer_id ) : void
swoole_timer_clear ( integer $timer_id ) : void
public close ( integer $fd [, boolean $reset ] ) : boolean
public confirm ( integer $fd ) : boolean
public connection_info ( integer $fd [, integer $reactor_id ] ) : array
public connection_list ( integer $start_fd [, integer $pagesize ] ) : array
public defer ( callable $callback ) : void
public Swoole\Server\Port::__destruct ( void ) : void
public Swoole\Server\Port::on ( string $event_name , callable $callback ) : ReturnType
public Swoole\Server\Port::set ( array $settings ) : void
public exist ( integer $fd ) : boolean
public finish ( string $data ) : void
public getClientInfo ( integer $fd [, integer $reactor_id ] ) : ReturnType
public getClientList ( integer $start_fd [, integer $pagesize ] ) : array
public getLastError ( void ) : integer
public heartbeat ( boolean $if_close_connection ) : mixed
public listen ( string $host , integer $port , string $socket_type ) : boolean
public on ( string $event_name , callable $callback ) : void
public pause ( integer $fd ) : void
public protect ( integer $fd [, boolean $is_protected ] ) : void
public reload ( void ) : boolean
public resume ( integer $fd ) : void
public send ( integer $fd , string $data [, integer $reactor_id ] ) : boolean
public sendfile ( integer $fd , string $filename [, integer $offset ] ) : boolean
public sendMessage ( integer $worker_id , string $data ) : boolean
public sendto ( string $ip , integer $port , string $data [, string $server_socket ] ) : boolean
public sendwait ( integer $fd , string $data ) : boolean
public set ( array $settings ) : ReturnType
public shutdown ( void ) : void
public start ( void ) : void
public stats ( void ) : array
public stop ([ integer $worker_id ] ) : boolean
public task ( string $data [, integer $dst_worker_id [, callable $callback ]] ) : mixed
public taskwait ( string $data [, float $timeout [, integer $worker_id ]] ) : void
public taskWaitMulti ( array $tasks [, double $timeout_ms ] ) : void
public tick ( integer $interval_ms , callable $callback ) : void
}

Содержание

  • Swoole\Server::addlistener — Добавляет нового слушателя на сервер
  • Swoole\Server::addProcess — Добавляет определенный пользователем swoole_process на сервер
  • Swoole\Server::after — Запускает callback-функцию по истечении определенного периода времени
  • Swoole\Server::bind — Привязывает соединение к указанному идентификатору пользователя
  • Swoole\Server::clearTimer — Останавливает и уничтожает таймер
  • Swoole\Server::close — Закрывает соединение с клиентом
  • Swoole\Server::confirm — Проверяет состояние соединения
  • Swoole\Server::connection_info — Получает информацию о соединении по описанию файла
  • Swoole\Server::connection_list — Получает все установленные соединения
  • Swoole\Server::__construct — Создает сервер Swoole
  • Swoole\Server::defer — Откладывает выполнение callback-функции в конце текущего EventLoop
  • Swoole\Server\Port::__construct — Создает порт сервера
  • Swoole\Server\Port::__destruct — Уничтожает порт сервера
  • Swoole\Server\Port::on — Регистрирует callback-функции по событию
  • Swoole\Server\Port::set — Устанавливает протокол порта сервера
  • Swoole\Server::exist — Проверяет, существует ли соединение
  • Swoole\Server::finish — Используется в процессе задачи для отправки результата в рабочий процесс после завершения задачи
  • Swoole\Server::getClientInfo — Получает информацию о соединении по описанию файла
  • Swoole\Server::getClientList — Получает все установленные соединения
  • Swoole\Server::getLastError — Получает код самой последней ошибки
  • Swoole\Server::heartbeat — Проверяет все соединения на сервере
  • Swoole\Server::listen — Слушает по заданному IP и порту, тип сокета
  • Swoole\Server::on — Регистрирует callback-функцию по имени события
  • Swoole\Server::pause — Прекращает получение данных от соединения
  • Swoole\Server::protect — Устанавливает соединение в защищенный режим
  • Swoole\Server::reload — Перезапускает все рабочие процессы
  • Swoole\Server::resume — Начинает получать данные из соединения
  • Swoole\Server::send — Отправляет данные клиенту
  • Swoole\Server::sendfile — Отправляет файл на соединение
  • Swoole\Server::sendMessage — Отправляет сообщение рабочим процессам по идентификатору
  • Swoole\Server::sendto — Отправляет данные на удаленный UDP-адрес
  • Swoole\Server::sendwait — Отправляет данные в удаленный сокет блокирующим способом
  • Swoole\Server::set — Устанавливает настройки времени выполнения сервера swoole
  • Swoole\Server::shutdown — Завершает процесс главного сервера, функцию можно вызывать в рабочих процессах
  • Swoole\Server::start — Запускает сервер Swoole
  • Swoole\Server::stats — Получает статистику сервера Swoole
  • Swoole\Server::stop — Останавливает сервер Swoole
  • Swoole\Server::task — Отправляет данные в рабочие процессы задачи
  • Swoole\Server::taskwait — Посылает данные рабочим процессам задачи блокирующим способом
  • Swoole\Server::taskWaitMulti — Выполняет несколько задач одновременно
  • Swoole\Server::tick — Повторяет данную функцию в каждый заданный интервал времени


Добавляет нового слушателя на сервер

  • « Swoole\Server
  • Swoole\Server::addProcess »
  • PHP Manual
  • Swoole\Server
  • Добавляет нового слушателя на сервер

Swoole\Server::addlistener

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::addlistener — Добавляет нового слушателя на сервер

Описание

public Swoole\Server::addlistener ( string $host , integer $port , string $socket_type ) : void

Список параметров

host

port

socket_type

Возвращаемые значения


Добавляет определенный пользователем swoole_process на сервер

  • « Swoole\Server::addlistener
  • Swoole\Server::after »
  • PHP Manual
  • Swoole\Server
  • Добавляет определенный пользователем swoole_process на сервер

Swoole\Server::addProcess

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::addProcess — Добавляет определенный пользователем swoole_process на сервер

Описание

public Swoole\Server::addProcess ( swoole_process $process ) : boolean

Список параметров

process

Возвращаемые значения


Запускает callback-функцию по истечении определенного периода времени

  • « Swoole\Server::addProcess
  • Swoole\Server::bind »
  • PHP Manual
  • Swoole\Server
  • Запускает callback-функцию по истечении определенного периода времени

Swoole\Server::after

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::after — Запускает callback-функцию по истечении определенного периода времени

Описание

public Swoole\Server::after ( integer $after_time_ms , callable $callback [, string $param ] ) : ReturnType

Список параметров

after_time_ms

callback

param

Возвращаемые значения


Привязывает соединение к указанному идентификатору пользователя

  • « Swoole\Server::after
  • Swoole\Server::clearTimer »
  • PHP Manual
  • Swoole\Server
  • Привязывает соединение к указанному идентификатору пользователя

Swoole\Server::bind

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::bind — Привязывает соединение к указанному идентификатору пользователя

Описание

public Swoole\Server::bind ( integer $fd , integer $uid ) : boolean

Список параметров

fd

uid

Возвращаемые значения


Останавливает и уничтожает таймер

  • « Swoole\Server::bind
  • Swoole\Server::close »
  • PHP Manual
  • Swoole\Server
  • Останавливает и уничтожает таймер

Swoole\Server::clearTimer

swoole_timer_clear

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::clearTimer -- swoole_timer_clear — Останавливает и уничтожает таймер

Описание

Объектно-ориентированный стиль (method):

public Swoole\Server::clearTimer ( integer $timer_id ) : void

Процедурный стиль:

swoole_timer_clear ( integer $timer_id ) : void

Останавливает и уничтожает таймер

Список параметров

timer_id

Возвращаемые значения


Закрывает соединение с клиентом

  • « Swoole\Server::clearTimer
  • Swoole\Server::confirm »
  • PHP Manual
  • Swoole\Server
  • Закрывает соединение с клиентом

Swoole\Server::close

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::close — Закрывает соединение с клиентом

Описание

public Swoole\Server::close ( integer $fd [, boolean $reset ] ) : boolean

Список параметров

fd

reset

Возвращаемые значения


Проверяет состояние соединения

  • « Swoole\Server::close
  • Swoole\Server::connection_info »
  • PHP Manual
  • Swoole\Server
  • Проверяет состояние соединения

Swoole\Server::confirm

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::confirm — Проверяет состояние соединения

Описание

public Swoole\Server::confirm ( integer $fd ) : boolean

Список параметров

fd

Возвращаемые значения


Получает информацию о соединении по описанию файла

  • « Swoole\Server::confirm
  • Swoole\Server::connection_list »
  • PHP Manual
  • Swoole\Server
  • Получает информацию о соединении по описанию файла

Swoole\Server::connection_info

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::connection_info — Получает информацию о соединении по описанию файла

Описание

public Swoole\Server::connection_info ( integer $fd [, integer $reactor_id ] ) : array

Список параметров

fd

reactor_id

Возвращаемые значения


Получает все установленные соединения

  • « Swoole\Server::connection_info
  • Swoole\Server::__construct »
  • PHP Manual
  • Swoole\Server
  • Получает все установленные соединения

Swoole\Server::connection_list

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::connection_list — Получает все установленные соединения

Описание

public Swoole\Server::connection_list ( integer $start_fd [, integer $pagesize ] ) : array

Список параметров

start_fd

pagesize

Возвращаемые значения


Создает сервер Swoole

  • « Swoole\Server::connection_list
  • Swoole\Server::defer »
  • PHP Manual
  • Swoole\Server
  • Создает сервер Swoole

Swoole\Server::__construct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::__construct — Создает сервер Swoole

Описание

public Swoole\Server::__construct ( string $host [, integer $port [, integr $mode [, integer $sock_type ]]] )

Список параметров

host

port

mode

sock_type


Откладывает выполнение callback-функции в конце текущего EventLoop

  • « Swoole\Server::__construct
  • Swoole\Server\Port::__construct »
  • PHP Manual
  • Swoole\Server
  • Откладывает выполнение callback-функции в конце текущего EventLoop

Swoole\Server::defer

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::defer — Откладывает выполнение callback-функции в конце текущего EventLoop

Описание

public Swoole\Server::defer ( callable $callback ) : void

Список параметров

callback

Возвращаемые значения


Создает порт сервера

  • « Swoole\Server::defer
  • Swoole\Server\Port::__destruct »
  • PHP Manual
  • Swoole\Server
  • Создает порт сервера

Swoole\Server\Port::__construct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server\Port::__construct — Создает порт сервера

Описание

private Swoole\Server\Port::__construct ( void )

Список параметров

У этой функции нет параметров.


Уничтожает порт сервера

  • « Swoole\Server\Port::__construct
  • Swoole\Server\Port::on »
  • PHP Manual
  • Swoole\Server
  • Уничтожает порт сервера

Swoole\Server\Port::__destruct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server\Port::__destruct — Уничтожает порт сервера

Описание

public Swoole\Server\Port::__destruct ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Регистрирует callback-функции по событию

  • « Swoole\Server\Port::__destruct
  • Swoole\Server\Port::set »
  • PHP Manual
  • Swoole\Server
  • Регистрирует callback-функции по событию

Swoole\Server\Port::on

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server\Port::on — Регистрирует callback-функции по событию

Описание

public Swoole\Server\Port::on ( string $event_name , callable $callback ) : ReturnType

Список параметров

event_name

callback

Возвращаемые значения


Устанавливает протокол порта сервера

  • « Swoole\Server\Port::on
  • Swoole\Server::exist »
  • PHP Manual
  • Swoole\Server
  • Устанавливает протокол порта сервера

Swoole\Server\Port::set

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server\Port::set — Устанавливает протокол порта сервера

Описание

public Swoole\Server\Port::set ( array $settings ) : void

Список параметров

settings

Возвращаемые значения


Проверяет, существует ли соединение

  • « Swoole\Server\Port::set
  • Swoole\Server::finish »
  • PHP Manual
  • Swoole\Server
  • Проверяет, существует ли соединение

Swoole\Server::exist

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::exist — Проверяет, существует ли соединение

Описание

public Swoole\Server::exist ( integer $fd ) : boolean

Список параметров

fd

Возвращаемые значения


Используется в процессе задачи для отправки результата в рабочий процесс после завершения задачи

  • « Swoole\Server::exist
  • Swoole\Server::getClientInfo »
  • PHP Manual
  • Swoole\Server
  • Используется в процессе задачи для отправки результата в рабочий процесс после завершения задачи

Swoole\Server::finish

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::finish — Используется в процессе задачи для отправки результата в рабочий процесс после завершения задачи

Описание

public Swoole\Server::finish ( string $data ) : void

Список параметров

data

Возвращаемые значения


Получает информацию о соединении по описанию файла

  • « Swoole\Server::finish
  • Swoole\Server::getClientList »
  • PHP Manual
  • Swoole\Server
  • Получает информацию о соединении по описанию файла

Swoole\Server::getClientInfo

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::getClientInfo — Получает информацию о соединении по описанию файла

Описание

public Swoole\Server::getClientInfo ( integer $fd [, integer $reactor_id ] ) : ReturnType

Список параметров

fd

reactor_id

Возвращаемые значения


Получает все установленные соединения

  • « Swoole\Server::getClientInfo
  • Swoole\Server::getLastError »
  • PHP Manual
  • Swoole\Server
  • Получает все установленные соединения

Swoole\Server::getClientList

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::getClientList — Получает все установленные соединения

Описание

public Swoole\Server::getClientList ( integer $start_fd [, integer $pagesize ] ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

start_fd

pagesize

Возвращаемые значения


Получает код самой последней ошибки

  • « Swoole\Server::getClientList
  • Swoole\Server::heartbeat »
  • PHP Manual
  • Swoole\Server
  • Получает код самой последней ошибки

Swoole\Server::getLastError

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::getLastError — Получает код самой последней ошибки

Описание

public Swoole\Server::getLastError ( void ) : integer

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверяет все соединения на сервере

  • « Swoole\Server::getLastError
  • Swoole\Server::listen »
  • PHP Manual
  • Swoole\Server
  • Проверяет все соединения на сервере

Swoole\Server::heartbeat

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::heartbeat — Проверяет все соединения на сервере

Описание

public Swoole\Server::heartbeat ( boolean $if_close_connection ) : mixed

Список параметров

if_close_connection

Возвращаемые значения


Слушает по заданному IP и порту, тип сокета

  • « Swoole\Server::heartbeat
  • Swoole\Server::on »
  • PHP Manual
  • Swoole\Server
  • Слушает по заданному IP и порту, тип сокета

Swoole\Server::listen

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::listen — Слушает по заданному IP и порту, тип сокета

Описание

public Swoole\Server::listen ( string $host , integer $port , string $socket_type ) : boolean

Список параметров

host

port

socket_type

Возвращаемые значения


Регистрирует callback-функцию по имени события

  • « Swoole\Server::listen
  • Swoole\Server::pause »
  • PHP Manual
  • Swoole\Server
  • Регистрирует callback-функцию по имени события

Swoole\Server::on

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::on — Регистрирует callback-функцию по имени события

Описание

public Swoole\Server::on ( string $event_name , callable $callback ) : void

Список параметров

event_name

callback

Возвращаемые значения


Прекращает получение данных от соединения

  • « Swoole\Server::on
  • Swoole\Server::protect »
  • PHP Manual
  • Swoole\Server
  • Прекращает получение данных от соединения

Swoole\Server::pause

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::pause — Прекращает получение данных от соединения

Описание

public Swoole\Server::pause ( integer $fd ) : void

Список параметров

fd

Возвращаемые значения


Устанавливает соединение в защищенный режим

  • « Swoole\Server::pause
  • Swoole\Server::reload »
  • PHP Manual
  • Swoole\Server
  • Устанавливает соединение в защищенный режим

Swoole\Server::protect

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::protect — Устанавливает соединение в защищенный режим

Описание

public Swoole\Server::protect ( integer $fd [, boolean $is_protected ] ) : void

Список параметров

fd

is_protected

Возвращаемые значения


Перезапускает все рабочие процессы

  • « Swoole\Server::protect
  • Swoole\Server::resume »
  • PHP Manual
  • Swoole\Server
  • Перезапускает все рабочие процессы

Swoole\Server::reload

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::reload — Перезапускает все рабочие процессы

Описание

public Swoole\Server::reload ( void ) : boolean

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Начинает получать данные из соединения

  • « Swoole\Server::reload
  • Swoole\Server::send »
  • PHP Manual
  • Swoole\Server
  • Начинает получать данные из соединения

Swoole\Server::resume

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::resume — Начинает получать данные из соединения

Описание

public Swoole\Server::resume ( integer $fd ) : void

Список параметров

fd

Возвращаемые значения


Отправляет данные клиенту

  • « Swoole\Server::resume
  • Swoole\Server::sendfile »
  • PHP Manual
  • Swoole\Server
  • Отправляет данные клиенту

Swoole\Server::send

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::send — Отправляет данные клиенту

Описание

public Swoole\Server::send ( integer $fd , string $data [, integer $reactor_id ] ) : boolean

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

fd

data

reactor_id

Возвращаемые значения


Отправляет файл на соединение

  • « Swoole\Server::send
  • Swoole\Server::sendMessage »
  • PHP Manual
  • Swoole\Server
  • Отправляет файл на соединение

Swoole\Server::sendfile

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::sendfile — Отправляет файл на соединение

Описание

public Swoole\Server::sendfile ( integer $fd , string $filename [, integer $offset ] ) : boolean

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

fd

filename

offset

Возвращаемые значения


Отправляет сообщение рабочим процессам по идентификатору

  • « Swoole\Server::sendfile
  • Swoole\Server::sendto »
  • PHP Manual
  • Swoole\Server
  • Отправляет сообщение рабочим процессам по идентификатору

Swoole\Server::sendMessage

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::sendMessage — Отправляет сообщение рабочим процессам по идентификатору

Описание

public Swoole\Server::sendMessage ( integer $worker_id , string $data ) : boolean

Список параметров

dst_worker_id

data

Возвращаемые значения


Отправляет данные на удаленный UDP-адрес

  • « Swoole\Server::sendMessage
  • Swoole\Server::sendwait »
  • PHP Manual
  • Swoole\Server
  • Отправляет данные на удаленный UDP-адрес

Swoole\Server::sendto

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::sendto — Отправляет данные на удаленный UDP-адрес

Описание

public Swoole\Server::sendto ( string $ip , integer $port , string $data [, string $server_socket ] ) : boolean

Список параметров

ip

port

data

server_socket

Возвращаемые значения


Отправляет данные в удаленный сокет блокирующим способом

  • « Swoole\Server::sendto
  • Swoole\Server::set »
  • PHP Manual
  • Swoole\Server
  • Отправляет данные в удаленный сокет блокирующим способом

Swoole\Server::sendwait

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::sendwait — Отправляет данные в удаленный сокет блокирующим способом

Описание

public Swoole\Server::sendwait ( integer $fd , string $data ) : boolean

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

fd

data

Возвращаемые значения


Устанавливает настройки времени выполнения сервера swoole

  • « Swoole\Server::sendwait
  • Swoole\Server::shutdown »
  • PHP Manual
  • Swoole\Server
  • Устанавливает настройки времени выполнения сервера swoole

Swoole\Server::set

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::set — Устанавливает настройки времени выполнения сервера swoole

Описание

public Swoole\Server::set ( array $settings ) : ReturnType

Устанавливает настройки времени выполнения сервера swoole. Доступ к настройкам можно получить с помощью $server->setting после запуска сервера swoole.

Список параметров

settings

Возвращаемые значения


Завершает процесс главного сервера, функцию можно вызывать в рабочих процессах

  • « Swoole\Server::set
  • Swoole\Server::start »
  • PHP Manual
  • Swoole\Server
  • Завершает процесс главного сервера, функцию можно вызывать в рабочих процессах

Swoole\Server::shutdown

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::shutdown — Завершает процесс главного сервера, функцию можно вызывать в рабочих процессах

Описание

public Swoole\Server::shutdown ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Запускает сервер Swoole

  • « Swoole\Server::shutdown
  • Swoole\Server::stats »
  • PHP Manual
  • Swoole\Server
  • Запускает сервер Swoole

Swoole\Server::start

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::start — Запускает сервер Swoole

Описание

public Swoole\Server::start ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает статистику сервера Swoole

  • « Swoole\Server::start
  • Swoole\Server::stop »
  • PHP Manual
  • Swoole\Server
  • Получает статистику сервера Swoole

Swoole\Server::stats

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::stats — Получает статистику сервера Swoole

Описание

public Swoole\Server::stats ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Останавливает сервер Swoole

  • « Swoole\Server::stats
  • Swoole\Server::task »
  • PHP Manual
  • Swoole\Server
  • Останавливает сервер Swoole

Swoole\Server::stop

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::stop — Останавливает сервер Swoole

Описание

public Swoole\Server::stop ([ integer $worker_id ] ) : boolean

Список параметров

worker_id

Возвращаемые значения


Отправляет данные в рабочие процессы задачи

  • « Swoole\Server::stop
  • Swoole\Server::taskwait »
  • PHP Manual
  • Swoole\Server
  • Отправляет данные в рабочие процессы задачи

Swoole\Server::task

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::task — Отправляет данные в рабочие процессы задачи

Описание

public Swoole\Server::task ( string $data [, integer $dst_worker_id [, callable $callback ]] ) : mixed

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

dst_worker_id

callback

Возвращаемые значения


Посылает данные рабочим процессам задачи блокирующим способом

  • « Swoole\Server::task
  • Swoole\Server::taskWaitMulti »
  • PHP Manual
  • Swoole\Server
  • Посылает данные рабочим процессам задачи блокирующим способом

Swoole\Server::taskwait

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::taskwait — Посылает данные рабочим процессам задачи блокирующим способом

Описание

public Swoole\Server::taskwait ( string $data [, float $timeout [, integer $worker_id ]] ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

timeout

worker_id

Возвращаемые значения


Выполняет несколько задач одновременно

  • « Swoole\Server::taskwait
  • Swoole\Server::tick »
  • PHP Manual
  • Swoole\Server
  • Выполняет несколько задач одновременно

Swoole\Server::taskWaitMulti

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::taskWaitMulti — Выполняет несколько задач одновременно

Описание

public Swoole\Server::taskWaitMulti ( array $tasks [, double $timeout_ms ] ) : void

Список параметров

tasks

timeout_ms

Возвращаемые значения


Повторяет данную функцию в каждый заданный интервал времени

  • « Swoole\Server::taskWaitMulti
  • Swoole\Table »
  • PHP Manual
  • Swoole\Server
  • Повторяет данную функцию в каждый заданный интервал времени

Swoole\Server::tick

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Server::tick — Повторяет данную функцию в каждый заданный интервал времени

Описание

public Swoole\Server::tick ( integer $interval_ms , callable $callback ) : void

Список параметров

interval_ms

callback

Возвращаемые значения


Класс Swoole\Table

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Table implements Iterator , Countable {
/* Константы */
const integer TYPE_INT = 1 ;
const integer TYPE_STRING = 7 ;
const integer TYPE_FLOAT = 6 ;
/* Методы */
public column ( string $name , string $type [, integer $size ] ) : ReturnType
public count ( void ) : integer
public create ( void ) : void
public current ( void ) : array
public decr ( string $key , string $column [, integer $decrby ] ) : ReturnType
public del ( string $key ) : void
public destroy ( void ) : void
public exist ( string $key ) : boolean
public get ( string $row_key , string $column_key ) : integer
public incr ( string $key , string $column [, integer $incrby ] ) : void
public key ( void ) : string
public next ( void ) : ReturnType
public rewind ( void ) : void
public set ( string $key , array $value ) : VOID
public valid ( void ) : boolean
}

Предопределенные константы

Swoole\Table::TYPE_INT

Swoole\Table::TYPE_STRING

Swoole\Table::TYPE_FLOAT

Содержание

  • Swoole\Table::column — Set the data type and size of the columns.
  • Swoole\Table::__construct — Construct a Swoole memory table with fixed size.
  • Swoole\Table::count — Count the rows in the table, or count all the elements in the table if $mode = 1.
  • Swoole\Table::create — Create the swoole memory table.
  • Swoole\Table::current — Get the current row.
  • Swoole\Table::decr — Decrement the value in the Swoole table by $row_key and $column_key.
  • Swoole\Table::del — Delete a row in the Swoole table by $row_key.
  • Swoole\Table::destroy — Destroy the Swoole table.
  • Swoole\Table::exist — Check if a row is existed by $row_key.
  • Swoole\Table::get — Get the value in the Swoole table by $row_key and $column_key.
  • Swoole\Table::incr — Increment the value by $row_key and $column_key.
  • Swoole\Table::key — Get the key of current row.
  • Swoole\Table::next — Iterator the next row.
  • Swoole\Table::rewind — Rewind the iterator.
  • Swoole\Table::set — Update a row of the table by $row_key.
  • Swoole\Table::valid — Check current if the current row is valid.


Set the data type and size of the columns.

  • « Swoole\Table
  • Swoole\Table::__construct »
  • PHP Manual
  • Swoole\Table
  • Set the data type and size of the columns.

Swoole\Table::column

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Table::column — Set the data type and size of the columns.

Описание

public Swoole\Table::column ( string $name , string $type [, integer $size ] ) : ReturnType

Список параметров

name

type

size

Возвращаемые значения


Construct a Swoole memory table with fixed size.

  • « Swoole\Table::column
  • Swoole\Table::count »
  • PHP Manual
  • Swoole\Table
  • Construct a Swoole memory table with fixed size.

Swoole\Table::__construct

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Table::__construct — Construct a Swoole memory table with fixed size.

Описание

public Swoole\Table::__construct ( integer $table_size )

Список параметров

table_size


Count the rows in the table, or count all the elements in the table if $mode = 1.

  • « Swoole\Table::__construct
  • Swoole\Table::create »
  • PHP Manual
  • Swoole\Table
  • Count the rows in the table, or count all the elements in the table if $mode = 1.

Swoole\Table::count

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Table::count — Count the rows in the table, or count all the elements in the table if $mode = 1.

Описание

public Swoole\Table::count ( void ) : integer

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Create the swoole memory table.

  • « Swoole\Table::count
  • Swoole\Table::current »
  • PHP Manual
  • Swoole\Table
  • Create the swoole memory table.

Swoole\Table::create

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Table::create — Create the swoole memory table.

Описание

public Swoole\Table::create ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get the current row.

  • « Swoole\Table::create
  • Swoole\Table::decr »
  • PHP Manual
  • Swoole\Table
  • Get the current row.

Swoole\Table::current

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Table::current — Get the current row.

Описание

public Swoole\Table::current ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Decrement the value in the Swoole table by $row_key and $column_key.

  • « Swoole\Table::current
  • Swoole\Table::del »
  • PHP Manual
  • Swoole\Table
  • Decrement the value in the Swoole table by $row_key and $column_key.

Swoole\Table::decr

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Table::decr — Decrement the value in the Swoole table by $row_key and $column_key.

Описание

public Swoole\Table::decr ( string $key , string $column [, integer $decrby ] ) : ReturnType

Список параметров

key

column

decrby

Возвращаемые значения


Delete a row in the Swoole table by $row_key.

  • « Swoole\Table::decr
  • Swoole\Table::destroy »
  • PHP Manual
  • Swoole\Table
  • Delete a row in the Swoole table by $row_key.

Swoole\Table::del

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Table::del — Delete a row in the Swoole table by $row_key.

Описание

public Swoole\Table::del ( string $key ) : void

Список параметров

key

Возвращаемые значения


Destroy the Swoole table.

  • « Swoole\Table::del
  • Swoole\Table::exist »
  • PHP Manual
  • Swoole\Table
  • Destroy the Swoole table.

Swoole\Table::destroy

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Table::destroy — Destroy the Swoole table.

Описание

public Swoole\Table::destroy ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Check if a row is existed by $row_key.

  • « Swoole\Table::destroy
  • Swoole\Table::get »
  • PHP Manual
  • Swoole\Table
  • Check if a row is existed by $row_key.

Swoole\Table::exist

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Table::exist — Check if a row is existed by $row_key.

Описание

public Swoole\Table::exist ( string $key ) : boolean

Список параметров

key

Возвращаемые значения


Get the value in the Swoole table by $row_key and $column_key.

  • « Swoole\Table::exist
  • Swoole\Table::incr »
  • PHP Manual
  • Swoole\Table
  • Get the value in the Swoole table by $row_key and $column_key.

Swoole\Table::get

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Table::get — Get the value in the Swoole table by $row_key and $column_key.

Описание

public Swoole\Table::get ( string $row_key , string $column_key ) : integer

Список параметров

row_key

column_key

Возвращаемые значения


Increment the value by $row_key and $column_key.

  • « Swoole\Table::get
  • Swoole\Table::key »
  • PHP Manual
  • Swoole\Table
  • Increment the value by $row_key and $column_key.

Swoole\Table::incr

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Table::incr — Increment the value by $row_key and $column_key.

Описание

public Swoole\Table::incr ( string $key , string $column [, integer $incrby ] ) : void

Список параметров

key

column

incrby

Возвращаемые значения


Get the key of current row.

  • « Swoole\Table::incr
  • Swoole\Table::next »
  • PHP Manual
  • Swoole\Table
  • Get the key of current row.

Swoole\Table::key

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Table::key — Get the key of current row.

Описание

public Swoole\Table::key ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Iterator the next row.

  • « Swoole\Table::key
  • Swoole\Table::rewind »
  • PHP Manual
  • Swoole\Table
  • Iterator the next row.

Swoole\Table::next

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Table::next — Iterator the next row.

Описание

public Swoole\Table::next ( void ) : ReturnType

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Rewind the iterator.

  • « Swoole\Table::next
  • Swoole\Table::set »
  • PHP Manual
  • Swoole\Table
  • Rewind the iterator.

Swoole\Table::rewind

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Table::rewind — Rewind the iterator.

Описание

public Swoole\Table::rewind ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Update a row of the table by $row_key.

  • « Swoole\Table::rewind
  • Swoole\Table::valid »
  • PHP Manual
  • Swoole\Table
  • Update a row of the table by $row_key.

Swoole\Table::set

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Table::set — Update a row of the table by $row_key.

Описание

public Swoole\Table::set ( string $key , array $value ) : VOID

Список параметров

key

value

Возвращаемые значения


Check current if the current row is valid.

  • « Swoole\Table::set
  • Swoole\Timer »
  • PHP Manual
  • Swoole\Table
  • Check current if the current row is valid.

Swoole\Table::valid

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Table::valid — Check current if the current row is valid.

Описание

public Swoole\Table::valid ( void ) : boolean

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Swoole\Timer

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\Timer {
/* Методы */
public static after ( int $after_time_ms , callable $callback ) : void
public static clear ( integer $timer_id ) : void
public static exists ( integer $timer_id ) : boolean
public static tick ( integer $interval_ms , callable $callback [, string $param ] ) : void
}

Содержание

  • Swoole\Timer::after — Запускает callback-функцию через определенный промежуток времени
  • Swoole\Timer::clear — Удаляет таймер по идентификатору
  • Swoole\Timer::exists — Проверяет, существует ли таймер
  • Swoole\Timer::tick — Повторяет данную функцию в каждый заданный интервал времени


Запускает callback-функцию через определенный промежуток времени

  • « Swoole\Timer
  • Swoole\Timer::clear »
  • PHP Manual
  • Swoole\Timer
  • Запускает callback-функцию через определенный промежуток времени

Swoole\Timer::after

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Timer::after — Запускает callback-функцию через определенный промежуток времени

Описание

public static Swoole\Timer::after ( int $after_time_ms , callable $callback ) : void

Запускает callback-функцию через определенный промежуток времени.

Список параметров

after_time_ms

callback

Возвращаемые значения


Удаляет таймер по идентификатору

  • « Swoole\Timer::after
  • Swoole\Timer::exists »
  • PHP Manual
  • Swoole\Timer
  • Удаляет таймер по идентификатору

Swoole\Timer::clear

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Timer::clear — Удаляет таймер по идентификатору

Описание

public static Swoole\Timer::clear ( integer $timer_id ) : void

Удаляет таймер по идентификатору.

Список параметров

timer_id

Возвращаемые значения


Проверяет, существует ли таймер

  • « Swoole\Timer::clear
  • Swoole\Timer::tick »
  • PHP Manual
  • Swoole\Timer
  • Проверяет, существует ли таймер

Swoole\Timer::exists

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Timer::exists — Проверяет, существует ли таймер

Описание

public static Swoole\Timer::exists ( integer $timer_id ) : boolean

Проверяет, существует ли таймер.

Список параметров

timer_id

Возвращаемые значения


Повторяет данную функцию в каждый заданный интервал времени

  • « Swoole\Timer::exists
  • Swoole\WebSocket\Frame »
  • PHP Manual
  • Swoole\Timer
  • Повторяет данную функцию в каждый заданный интервал времени

Swoole\Timer::tick

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\Timer::tick — Повторяет данную функцию в каждый заданный интервал времени

Описание

public static Swoole\Timer::tick ( integer $interval_ms , callable $callback [, string $param ] ) : void

Список параметров

interval_ms

callback

param

Возвращаемые значения


Класс Swoole\WebSocket\Frame

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\WebSocket\Frame {
/* Методы */
}


Класс Swoole\WebSocket\Server

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Введение

Обзор классов

Swoole\WebSocket\Server extends Swoole\Http\Server {
/* Методы */
public exist ( integer $fd ) : boolean
public on ( string $event_name , callable $callback ) : ReturnType
public static pack ( string $data [, string $opcode [, string $finish [, string $mask ]]] ) : binary
public push ( string $fd , string $data [, string $opcode [, string $finish ]] ) : void
public static unpack ( binary $data ) : string
/* Наследуемые методы */
public Swoole\Http\Server::on ( string $event_name , callable $callback ) : void
public Swoole\Http\Server::start ( void ) : void
}

Содержание

  • Swoole\WebSocket\Server::exist — Проверяет, существует ли описание файла
  • Swoole\WebSocket\Server::on — Зарегистрировать callback-функцию события
  • Swoole\WebSocket\Server::pack — Получение пакета двоичных данных для отправки в одной группе данных (frame)
  • Swoole\WebSocket\Server::push — Отправить данные удаленному клиенту
  • Swoole\WebSocket\Server::unpack — Распаковать двоичные данные, полученные от клиента


Проверяет, существует ли описание файла

  • « Swoole\WebSocket\Server
  • Swoole\WebSocket\Server::on »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Проверяет, существует ли описание файла

Swoole\WebSocket\Server::exist

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::exist — Проверяет, существует ли описание файла

Описание

public Swoole\WebSocket\Server::exist ( integer $fd ) : boolean

Список параметров

fd

Возвращаемые значения


Зарегистрировать callback-функцию события

  • « Swoole\WebSocket\Server::exist
  • Swoole\WebSocket\Server::pack »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Зарегистрировать callback-функцию события

Swoole\WebSocket\Server::on

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::on — Зарегистрировать callback-функцию события

Описание

public Swoole\WebSocket\Server::on ( string $event_name , callable $callback ) : ReturnType

Зарегистрировать callback-функцию события

Список параметров

event_name

callback

Возвращаемые значения


Получение пакета двоичных данных для отправки в одной группе данных (frame)

  • « Swoole\WebSocket\Server::on
  • Swoole\WebSocket\Server::push »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Получение пакета двоичных данных для отправки в одной группе данных (frame)

Swoole\WebSocket\Server::pack

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::pack — Получение пакета двоичных данных для отправки в одной группе данных (frame)

Описание

public static Swoole\WebSocket\Server::pack ( string $data [, string $opcode [, string $finish [, string $mask ]]] ) : binary

Список параметров

data

opcode

finish

mask

Возвращаемые значения


Отправить данные удаленному клиенту

  • « Swoole\WebSocket\Server::pack
  • Swoole\WebSocket\Server::unpack »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Отправить данные удаленному клиенту

Swoole\WebSocket\Server::push

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::push — Отправить данные удаленному клиенту

Описание

public Swoole\WebSocket\Server::push ( string $fd , string $data [, string $opcode [, string $finish ]] ) : void

Список параметров

fd

data

opcode

finish

Возвращаемые значения


Распаковать двоичные данные, полученные от клиента

  • « Swoole\WebSocket\Server::push
  • Tidy »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Распаковать двоичные данные, полученные от клиента

Swoole\WebSocket\Server::unpack

(PHP 5 >= 5.2.0, PHP 7, PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::unpack — Распаковать двоичные данные, полученные от клиента

Описание

public static Swoole\WebSocket\Server::unpack ( binary $data ) : string

Список параметров

data

Возвращаемые значения


Tidy

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Пример использования Tidy
  • tidy — Класс tidy
    • tidy::body — Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева
    • tidy::cleanRepair — Выполнить настроенную очистку и восстановление разобранной разметки
    • tidy::__construct — Создает новый tidy-объект
    • tidy::diagnose — Запуск настроенной диагностики для разобранной и восстановленной разметки
    • tidy::$errorBuffer — Возвращает предупреждения и ошибки, возникшие при разборе указанного документа
    • tidy::getConfig — Получает текущую конфигурацию Tidy
    • tidy::getHtmlVer — Получает обнаруженную HTML версию для указанного документа
    • tidy::getOpt — Возвращает значение указанного параметра конфигурации для документа tidy
    • tidy::getOptDoc — Возвращает описание для опции с указанным названием
    • tidy::getRelease — Получить дату релиза (версию) для библиотеки Tidy
    • tidy::getStatus — Получает статус указанного документа
    • tidy::head — Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева
    • tidy::html — Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева
    • tidy::isXhtml — Определяет, является ли документ XHTML-документом
    • tidy::isXml — Определяет, является ли документ общим XML-документом (не HTML/XHTML)
    • tidy::parseFile — Разбор разметки в файле или URI
    • tidy::parseString — Разбор документа, хранимого в строке
    • tidy::repairFile — Восстанавливает разметку файла и возвращает его в виде строки
    • tidy::repairString — Восстанавливает строку, используя по возможности конфигурационный файл
    • tidy::root — Возвращает объект tidyNode, представляющий вершину разобранного tidy-дерева
  • tidyNode — Класс tidyNode
    • tidyNode::__construct — Приватный конструктор, делающий невозможным прямое создание объекта
    • tidyNode::getParent — Возвращает родительский узел текущего узла
    • tidyNode::hasChildren — Проверяет существование потомков у узла
    • tidyNode::hasSiblings — Проверяет существование соседних узлов
    • tidyNode::isAsp — Проверяет текущий узел на соответствие ASP
    • tidyNode::isComment — Проверяет, является ли узел комментарием
    • tidyNode::isHtml — Проверяет, является ли текущий узел частью HTML-документа
    • tidyNode::isJste — Проверяет текущий узел на соответствие JSTE
    • tidyNode::isPhp — Проверяет, является ли текущий узел PHP-кодом
    • tidyNode::isText — Проверяет, является ли текущий узел обычным текстом (не разметкой)
  • Tidy
    • ob_tidyhandler — Функция обратного вызова ob_start для восстановление буфера
    • tidy_access_count — Возвращает число доступных предупреждений Tidy, встретившихся в рассмотренном документе
    • tidy_config_count — Возвращает число ошибок конфигурации Tidy, встретившихся при рассмотрении документа
    • tidy_error_count — Возвращает число ошибок Tidy, встретившихся при рассмотрении документа
    • tidy_get_output — Возвращает строку, представляющую разобранную tidy-разметку
    • tidy_warning_count — Возвращает число Tidy-предупреждений, встреченных в указанном документе


Введение

Tidy является интерфейсом к утилите очистки и восстановления Tidy HTML, которая позволяет помимо очистки и восстановления также манипулировать документами HTML, XHTML и XML, а также перемещаться по дереву документа в том числе встроенными скриптовыми языками, такими как PHP или ASP с использованием объектно-ориентированного подхода.


Требования

Использование Tidy требует установленной библиотеки libtidy, доступной на домашней странице tidy » http://tidy.sourceforge.net/. Начиная с PHP 7.1.0, понимающая HTML5 библиотека » libtidy5 может использоваться в качестве альтернативы. Начиная с PHP 7.3.0, другой вариант заключается в использовании » libtidyp.


Установка

Это расширение поставляется вместе с PHP 5 и выше, а устанавливается с помощью параметра конфигурации --with-tidy .


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации Tidy
Имя | По умолчанию | Место изменения | Список изменений
tidy.default_config | "" | PHP_INI_SYSTEM |
tidy.clean_output | "0" | PHP_INI_USER | PHP_INI_PERDIR до PHP 5.4.0
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

tidy.default_config string

Путь по умолчанию к конфигурационному файлу Tidy.

tidy.clean_output boolean

Включает/выключает восстановление потока вывода средствами Tidy.

Внимание

Не следует включать tidy.clean_output в случае генерации контента, отличного от html, такого как динамические изображения.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Каждая константа вида TIDY_TAG_XXX представляет HTML-тег. Например,TIDY_TAG_A представляет тег "<a href="XX">link</a>".

В расширении определены следующие константы:

Константы Tidy, соответствующие тэгам
Константа | Примечания
TIDY_TAG_UNKNOWN |
TIDY_TAG_A |
TIDY_TAG_ABBR |
TIDY_TAG_ACRONYM |
TIDY_TAG_ALIGN |
TIDY_TAG_APPLET |
TIDY_TAG_AREA |
TIDY_TAG_ARTICLE | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_ASIDE | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_AUDIO | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_B |
TIDY_TAG_BASE |
TIDY_TAG_BASEFONT |
TIDY_TAG_BDI | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
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_CANVAS | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_CAPTION |
TIDY_TAG_CENTER |
TIDY_TAG_CITE |
TIDY_TAG_CODE |
TIDY_TAG_COL |
TIDY_TAG_COLGROUP |
TIDY_TAG_COMMAND | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_COMMENT |
TIDY_TAG_DATALIST | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_DD |
TIDY_TAG_DEL |
TIDY_TAG_DETAILS | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_DFN |
TIDY_TAG_DIALOG | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_DIR |
TIDY_TAG_DIV |
TIDY_TAG_DL |
TIDY_TAG_DT |
TIDY_TAG_EM |
TIDY_TAG_EMBED |
TIDY_TAG_FIELDSET |
TIDY_TAG_FIGCAPTION | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_FIGURE | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_FONT |
TIDY_TAG_FOOTER | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
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_HEADER | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_HGROUP | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
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_MAIN | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_MAP |
TIDY_TAG_MARK | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_MARQUEE |
TIDY_TAG_MENU |
TIDY_TAG_MENUITEM | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_META |
TIDY_TAG_METER | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_MULTICOL |
TIDY_TAG_NAV | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_NOBR |
TIDY_TAG_NOEMBED |
TIDY_TAG_NOFRAMES |
TIDY_TAG_NOLAYER |
TIDY_TAG_NOSAVE |
TIDY_TAG_NOSCRIPT |
TIDY_TAG_OBJECT |
TIDY_TAG_OL |
TIDY_TAG_OPTGROUP |
TIDY_TAG_OPTION |
TIDY_TAG_OUTPUT | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_P |
TIDY_TAG_PARAM |
TIDY_TAG_PLAINTEXT |
TIDY_TAG_PRE |
TIDY_TAG_PROGRESS | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_Q |
TIDY_TAG_RB |
TIDY_TAG_RBC |
TIDY_TAG_RP |
TIDY_TAG_RT |
TIDY_TAG_RTC |
TIDY_TAG_RUBY |
TIDY_TAG_S |
TIDY_TAG_SAMP |
TIDY_TAG_SCRIPT |
TIDY_TAG_SECTION | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_SELECT |
TIDY_TAG_SERVER |
TIDY_TAG_SERVLET |
TIDY_TAG_SMALL |
TIDY_TAG_SOURCE | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_SPACER |
TIDY_TAG_SPAN |
TIDY_TAG_STRIKE |
TIDY_TAG_STRONG |
TIDY_TAG_STYLE |
TIDY_TAG_SUB |
TIDY_TAG_SUMMARY | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_SUP |
TIDY_TAG_TABLE |
TIDY_TAG_TBODY |
TIDY_TAG_TD |
TIDY_TAG_TEMPLATE | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_TEXTAREA |
TIDY_TAG_TFOOT |
TIDY_TAG_TH |
TIDY_TAG_THEAD |
TIDY_TAG_TIME | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_TITLE |
TIDY_TAG_TR |
TIDY_TAG_TRACK | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_TT |
TIDY_TAG_U |
TIDY_TAG_UL |
TIDY_TAG_VAR |
TIDY_TAG_VIDEO | Добавлено в libtidy 5.0.0. Доступно с PHP 7.4.0.
TIDY_TAG_WBR |
TIDY_TAG_XMP |

Константы Tidy, соответствующие типам узлов
Константа | Описание
TIDY_NODETYPE_ROOT | Корневой узел
TIDY_NODETYPE_DOCTYPE | Тип документа
TIDY_NODETYPE_COMMENT | HTML-комментарий
TIDY_NODETYPE_PROCINS | Инструкции по обработке в потоке вывода
TIDY_NODETYPE_TEXT | Текст
TIDY_NODETYPE_START | Открывающий тег
TIDY_NODETYPE_END | Закрывающий тег
TIDY_NODETYPE_STARTEND | Пустой тег
TIDY_NODETYPE_CDATA | Символьные данные
TIDY_NODETYPE_SECTION | Раздел XML
TIDY_NODETYPE_ASP | ASP-код
TIDY_NODETYPE_JSTE | JSTE-код
TIDY_NODETYPE_PHP | PHP-код
TIDY_NODETYPE_XMLDECL | Объявление XML


  • « Предопределенные константы
  • Пример использования Tidy »
  • PHP Manual
  • Tidy
  • Примеры

Примеры

Содержание

  • Пример использования Tidy


Пример использования Tidy

Простой пример, демонстрирующий базовые возможности использования Tidy.

Пример #1 Базовые возможности использования Tidy

<?php
ob_start();
?>
<html>a html document</html>
<?php
$html = ob_get_clean();

// Установка конфигурации
$config = array(
           'indent'         => true,
           'output-xhtml'   => true,
           'wrap'           => 200);

// Tidy
$tidy = new tidy;
$tidy->parseString($html, $config, 'utf8');
$tidy->cleanRepair();

// Вывод
echo $tidy;
?>


Класс tidy

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

Введение

HTML-узел в HTML-файле, обнаруженный Tidy.

Обзор классов

tidy {
/* Свойства */
public string $errorBuffer;
/* Методы */
public body ( void ) : tidyNode
public cleanRepair ( void ) : bool
public __construct ([ string $filename [, mixed $config [, string $encoding [, bool $use_include_path ]]]] )
public diagnose ( void ) : bool
public getConfig ( void ) : array
public getHtmlVer ( void ) : int
public getOpt ( string $option ) : mixed
public getOptDoc ( string $optname ) : string
public getRelease ( void ) : string
public getStatus ( void ) : int
public head ( void ) : tidyNode
public html ( void ) : tidyNode
public isXhtml ( void ) : bool
public isXml ( void ) : bool
public parseFile ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = FALSE ]]] ) : bool
public parseString ( string $input [, mixed $config [, string $encoding ]] ) : bool
public repairFile ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = FALSE ]]] ) : string
public repairString ( string $data [, mixed $config [, string $encoding ]] ) : string
public root ( void ) : tidyNode
}

Содержание

  • tidy::body — Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева
  • tidy::cleanRepair — Выполнить настроенную очистку и восстановление разобранной разметки
  • tidy::__construct — Создает новый tidy-объект
  • tidy::diagnose — Запуск настроенной диагностики для разобранной и восстановленной разметки
  • tidy::$errorBuffer — Возвращает предупреждения и ошибки, возникшие при разборе указанного документа
  • tidy::getConfig — Получает текущую конфигурацию Tidy
  • tidy::getHtmlVer — Получает обнаруженную HTML версию для указанного документа
  • tidy::getOpt — Возвращает значение указанного параметра конфигурации для документа tidy
  • tidy::getOptDoc — Возвращает описание для опции с указанным названием
  • tidy::getRelease — Получить дату релиза (версию) для библиотеки Tidy
  • tidy::getStatus — Получает статус указанного документа
  • tidy::head — Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева
  • tidy::html — Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева
  • tidy::isXhtml — Определяет, является ли документ XHTML-документом
  • tidy::isXml — Определяет, является ли документ общим XML-документом (не HTML/XHTML)
  • tidy::parseFile — Разбор разметки в файле или URI
  • tidy::parseString — Разбор документа, хранимого в строке
  • tidy::repairFile — Восстанавливает разметку файла и возвращает его в виде строки
  • tidy::repairString — Восстанавливает строку, используя по возможности конфигурационный файл
  • tidy::root — Возвращает объект tidyNode, представляющий вершину разобранного tidy-дерева


Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева

  • « tidy
  • tidy::cleanRepair »
  • PHP Manual
  • tidy
  • Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева

tidy::body

tidy_get_body

(PHP 5, PHP 7, PECL tidy 0.5.2-1.0)

tidy::body -- tidy_get_body — Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева

Описание

Объектно-ориентированный стиль

public tidy::body ( void ) : tidyNode

Процедурный стиль

tidy_get_body ( tidy $object ) : tidyNode

Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева.

Примеры

Пример #1 Пример использования tidy::getBody()

<?php
$html = '
<html>
  <head>
    <title>тест</title>
  </head>
  <body>
    <p>параграф</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$body = $tidy->Body();
echo $body->value;
?>

Результат выполнения данного примера:

<body>
<p>параграф</p>
</body>

Смотрите также

  • tidy::head() - Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева
  • tidy::html() - Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева


Выполнить настроенную очистку и восстановление разобранной разметки

  • « tidy::body
  • tidy::__construct »
  • PHP Manual
  • tidy
  • Выполнить настроенную очистку и восстановление разобранной разметки

tidy::cleanRepair

tidy_clean_repair

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::cleanRepair -- tidy_clean_repair — Выполнить настроенную очистку и восстановление разобранной разметки

Описание

Объектно-ориентированный стиль

public tidy::cleanRepair ( void ) : bool

Процедурный стиль

tidy_clean_repair ( tidy $object ) : bool

Функция очищает и восстанавливает полученный tidy-объект object.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования tidy::cleanrepair()

<?php
$html = '<p>тест</I>';

$tidy = tidy_parse_string($html);
$tidy->cleanRepair();

echo $tidy;
?>

Результат выполнения данного примера:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>тест</p>
</body>
</html>

Смотрите также

  • tidy::repairFile() - Восстанавливает разметку файла и возвращает его в виде строки
  • tidy::repairString() - Восстанавливает строку, используя по возможности конфигурационный файл


Создает новый tidy-объект

  • « tidy::cleanRepair
  • tidy::diagnose »
  • PHP Manual
  • tidy
  • Создает новый tidy-объект

tidy::__construct

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::__construct — Создает новый tidy-объект

Описание

public tidy::__construct ([ string $filename [, mixed $config [, string $encoding [, bool $use_include_path ]]]] )

Создает новый tidy-объект.

Список параметров

filename

Если задан параметр filename, то эта функция прочитает файл и инициализирует объект с этим файлом, действуя как функция tidy_parse_file().

config

Настройки config могут быть заданы в виде массива или строки. Если задана строка, то это интерпретируется как имя файла конфигурации, в противном случае, параметр интерпретируется как сами настройки.

Описание каждого параметра можно найти тут: » http://tidy.sourceforge.net/docs/quickref.html.

encoding

Параметр encoding устанавливает кодировку для входных/выходных документов. Возможные значения: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, и shiftjis.

use_include_path

Поиск файла в include_path.

Возвращаемые значения

Возвращает новый экземпляр tidy.

Примеры

Пример #1 Пример использования tidy::__construct()

<?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>параграф <bt />
текст</p>
</body></html>

HTML;

$tidy = new tidy();
$tidy->ParseString($html);

$tidy->cleanRepair();

if ($tidy->errorBuffer) {
    echo "Были обнаружены следующие ошибки:\n";
    echo $tidy->errorBuffer;
}

?>

Результат выполнения данного примера:

Были обнаружены следующие ошибки:
line 8 column 14 - Error: <bt> is not recognized!
line 8 column 14 - Warning: discarding unexpected <bt>

Смотрите также

  • tidy::parseFile() - Разбор разметки в файле или URI
  • tidy::parseString() - Разбор документа, хранимого в строке


Запуск настроенной диагностики для разобранной и восстановленной разметки

  • « tidy::__construct
  • tidy::$errorBuffer »
  • PHP Manual
  • tidy
  • Запуск настроенной диагностики для разобранной и восстановленной разметки

tidy::diagnose

tidy_diagnose

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::diagnose -- tidy_diagnose — Запуск настроенной диагностики для разобранной и восстановленной разметки

Описание

Объектно-ориентированный стиль

public tidy::diagnose ( void ) : bool

Процедурный стиль

tidy_diagnose ( tidy $object ) : bool

Выполняет диагностические тесты полученного tidy-объекта object, добавляя некоторую информацию о документе в буфер ошибок.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования tidy::diagnose()

<?php

$html = <<< HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<p>параграф</p>
HTML;

$tidy = tidy_parse_string($html);
$tidy->cleanRepair();

// обратите внимание на разницу между двумя выводами
echo $tidy->errorBuffer . "\n";

$tidy->diagnose();
echo $tidy->errorBuffer;

?>

Результат выполнения данного примера:

line 4 column 1 - Warning: <p> isn't allowed in <head> elements
line 4 column 1 - Warning: inserting missing 'title' element
line 4 column 1 - Warning: <p> isn't allowed in <head> elements
line 4 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!

Смотрите также

  • tidy::errorBuffer()


Возвращает предупреждения и ошибки, возникшие при разборе указанного документа

  • « tidy::diagnose
  • tidy::getConfig »
  • PHP Manual
  • tidy
  • Возвращает предупреждения и ошибки, возникшие при разборе указанного документа

tidy::$errorBuffer

tidy_get_error_buffer

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::$errorBuffer -- tidy_get_error_buffer — Возвращает предупреждения и ошибки, возникшие при разборе указанного документа

Описание

Объектно-ориентированный стиль (property):

public string $tidy->errorBuffer;

Процедурный стиль:

tidy_get_error_buffer ( tidy $tidy ) : string

Возвращает предупреждения и ошибки, возникшие при разборе указанного документа.

Список параметров

tidy

Объект Tidy.

Возвращаемые значения

Возвращает буфер ошибки в виде строки.

Примеры

Пример #1 Пример использования tidy_get_error_buffer()

<?php
$html = '<p>параграф</p>';

$tidy = tidy_parse_string($html);

echo tidy_get_error_buffer($tidy);
/* или в ООП стиле: */
echo $tidy->errorBuffer;
?>

Результат выполнения данного примера:

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 1 - Warning: inserting missing 'title' element

Смотрите также

  • tidy_access_count() - Возвращает число доступных предупреждений Tidy, встретившихся в рассмотренном документе
  • tidy_error_count() - Возвращает число ошибок Tidy, встретившихся при рассмотрении документа
  • tidy_warning_count() - Возвращает число Tidy-предупреждений, встреченных в указанном документе


Получает текущую конфигурацию Tidy

  • « tidy::$errorBuffer
  • tidy::getHtmlVer »
  • PHP Manual
  • tidy
  • Получает текущую конфигурацию Tidy

tidy::getConfig

tidy_get_config

(PHP 5, PHP 7, PECL tidy >= 0.7.0)

tidy::getConfig -- tidy_get_config — Получает текущую конфигурацию Tidy

Описание

Объектно-ориентированный стиль

public tidy::getConfig ( void ) : array

Процедурный стиль

tidy_get_config ( tidy $object ) : array

Получает список используемых опций конфигурации в указанном объекте tidy object.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает массив опций конфигурации.

Информацию о каждом параметре можно получить тут: » http://tidy.sourceforge.net/docs/quickref.html.

Примеры

Пример #1 Пример использования tidy::getConfig()

<?php
$html = '<p>тест</p>';
$config = array('indent' => TRUE,
                'output-xhtml' => TRUE,
                'wrap' => 200);

$tidy = tidy_parse_string($html, $config);

print_r($tidy->getConfig());
?>

Результат выполнения данного примера:

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
)

Смотрите также

  • tidy_reset_config()
  • tidy_save_config()


Получает обнаруженную HTML версию для указанного документа

  • « tidy::getConfig
  • tidy::getOpt »
  • PHP Manual
  • tidy
  • Получает обнаруженную HTML версию для указанного документа

tidy::getHtmlVer

tidy_get_html_ver

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::getHtmlVer -- tidy_get_html_ver — Получает обнаруженную HTML версию для указанного документа

Описание

Объектно-ориентированный стиль

public tidy::getHtmlVer ( void ) : int

Процедурный стиль

tidy_get_html_ver ( tidy $object ) : int

Возвращает обнаруженную HTML версию для указанного объекта tidy object.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает обнаруженную HTML версию.

Внимание

Функция еще не реализована в самом Tidylib, поэтому всегда возвращается 0.


Возвращает значение указанного параметра конфигурации для документа tidy

  • « tidy::getHtmlVer
  • tidy::getOptDoc »
  • PHP Manual
  • tidy
  • Возвращает значение указанного параметра конфигурации для документа tidy

tidy::getOpt

tidy_getopt

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::getOpt -- tidy_getopt — Возвращает значение указанного параметра конфигурации для документа tidy

Описание

Объектно-ориентированный стиль

public tidy::getOpt ( string $option ) : mixed

Процедурный стиль

tidy_getopt ( tidy $object , string $option ) : mixed

Возвращает значение указанного параметра option для указанного объекта tidy object.

Список параметров

object

Объект Tidy.

option

Вы можете найти список из каждой опции конфигурации с типом здесь: » http://tidy.sourceforge.net/docs/quickref.html.

Возвращаемые значения

Возвращает значение указанной опции option. Тип возвращаемого значения зависит от типа указанной опции.

Примеры

Пример #1 Пример использования tidy_getopt()

<?php

$html ='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html><head><title>Заголовок</title></head>
<body>

<p><img src="img.png"></p>

</body></html>';

$config = array('accessibility-check' => 3,
                'alt-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) "какой-то текст"


Возвращает описание для опции с указанным названием

  • « tidy::getOpt
  • tidy::getRelease »
  • PHP Manual
  • tidy
  • Возвращает описание для опции с указанным названием

tidy::getOptDoc

tidy_get_opt_doc

(PHP 5 >= 5.1.0, PHP 7)

tidy::getOptDoc -- tidy_get_opt_doc — Возвращает описание для опции с указанным названием

Описание

Объектно-ориентированный стиль

public tidy::getOptDoc ( string $optname ) : string

Процедурный стиль

tidy_get_opt_doc ( tidy $object , string $optname ) : string

Функция tidy_get_opt_doc() возвращает описание для опции с указанным названием.

Замечание:

Для использования этой функции вам потребуется библиотека libtidy минимум от 25 Апреля 2005 г.

Список параметров

object

Объект Tidy.

optname

Название опции

Возвращаемые значения

Возвращается строка существующей опции и имеющееся описание, в противном случае возвращается FALSE.

Примеры

Пример #1 Печать всех опций вместе с описанием и значением по умолчанию

<?php

$tidy = new tidy;
$config = $tidy->getConfig();

ksort($config);

foreach ($config as $opt => $val) {

    if (!$doc = $tidy->getOptDoc($opt))
        $doc = 'документация не существует!';

    $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::getconfig() - Получает текущую конфигурацию Tidy
  • tidy::getopt() - Возвращает значение указанного параметра конфигурации для документа tidy


Получить дату релиза (версию) для библиотеки Tidy

  • « tidy::getOptDoc
  • tidy::getStatus »
  • PHP Manual
  • tidy
  • Получить дату релиза (версию) для библиотеки Tidy

tidy::getRelease

tidy_get_release

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::getRelease -- tidy_get_release — Получить дату релиза (версию) для библиотеки Tidy

Описание

Объектно-ориентированный стиль

public tidy::getRelease ( void ) : string

Процедурный стиль

tidy_get_release ( void ) : string

Получает дату релиза для библиотеки Tidy.

Возвращаемые значения

Возвращает строку с датой релиза библиотеки Tidy, которая может быть 'unknown'.


Получает статус указанного документа

  • « tidy::getRelease
  • tidy::head »
  • PHP Manual
  • tidy
  • Получает статус указанного документа

tidy::getStatus

tidy_get_status

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::getStatus -- tidy_get_status — Получает статус указанного документа

Описание

Объектно-ориентированный стиль

public tidy::getStatus ( void ) : int

Процедурный стиль

tidy_get_status ( tidy $object ) : int

Возвращает статус указанного tidy-объекта object.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает 0, если не было ошибок/предупреждений, 1 - для предупреждений или возможных ошибок или 2 - для ошибок.

Примеры

Пример #1 Пример использования tidy::getStatus()

<?php
$html = '<p>параграф</i>';
$tidy = new tidy();
$tidy->parseString($html);

$tidy2 = new tidy();
$html2 = '<bogus>тест</bogus>';
$tidy2->parseString($html2);

echo $tidy->getStatus(); //1

echo $tidy2->getStatus(); //2
?>


Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева

  • « tidy::getStatus
  • tidy::html »
  • PHP Manual
  • tidy
  • Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева

tidy::head

tidy_get_head

(PHP 5, PHP 7, PECL tidy 0.5.2-1.0.0)

tidy::head -- tidy_get_head — Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева

Описание

Объектно-ориентированный стиль

public tidy::head ( void ) : tidyNode

Процедурный стиль

tidy_get_head ( tidy $object ) : tidyNode

Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает объект tidyNode.

Примеры

Пример #1 Пример использования tidy::head()

<?php
$html = '
<html>
  <head>
    <title>тест</title>
  </head>
  <body>
    <p>параграф</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$head = $tidy->head();
echo $head->value;
?>

Результат выполнения данного примера:

<head>
<title>тест</title>
</head>

Смотрите также

  • tidy::body() - Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева
  • tidy::html() - Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева


Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева

  • « tidy::head
  • tidy::isXhtml »
  • PHP Manual
  • tidy
  • Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева

tidy::html

tidy_get_html

(PHP 5, PHP 7, PECL tidy 0.5.2-1.0.0)

tidy::html -- tidy_get_html — Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева

Описание

Объектно-ориентированный стиль

public tidy::html ( void ) : tidyNode

Процедурный стиль

tidy_get_html ( tidy $object ) : tidyNode

Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает объект tidyNode.

Примеры

Пример #1 Пример использования tidy::html()

<?php
$html = '
<html>
  <head>
    <title>тест</title>
  </head>
  <body>
    <p>параграф</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$html = $tidy->html();
echo $html->value;
?>

Результат выполнения данного примера:

<html>
<head>
<title>тест</title>
</head>
<body>
<p>параграф</p>
</body>
</html>

Смотрите также

  • tidy::body() - Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева
  • tidy::head() - Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева


Определяет, является ли документ XHTML-документом

  • « tidy::html
  • tidy::isXml »
  • PHP Manual
  • tidy
  • Определяет, является ли документ XHTML-документом

tidy::isXhtml

tidy_is_xhtml

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::isXhtml -- tidy_is_xhtml — Определяет, является ли документ XHTML-документом

Описание

Объектно-ориентированный стиль

public tidy::isXhtml ( void ) : bool

Процедурный стиль

tidy_is_xhtml ( tidy $object ) : bool

Определяет, является ли документ XHTML-документом.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Эта функция возвращает TRUE, если указанный tidy-объект object является XHTML-документом, или FALSE в противном случае.

Внимание

Эта функция еще не реализована в самом Tidylib, поэтому всегда возвращается FALSE.


Определяет, является ли документ общим XML-документом (не HTML/XHTML)

  • « tidy::isXhtml
  • tidy::parseFile »
  • PHP Manual
  • tidy
  • Определяет, является ли документ общим XML-документом (не HTML/XHTML)

tidy::isXml

tidy_is_xml

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::isXml -- tidy_is_xml — Определяет, является ли документ общим XML-документом (не HTML/XHTML)

Описание

Объектно-ориентированный стиль

public tidy::isXml ( void ) : bool

Процедурный стиль

tidy_is_xml ( tidy $object ) : bool

Определяет, является ли документ общим XML-документом (не HTML/XHTML).

Список параметров

object

Объект Tidy.

Возвращаемые значения

Эта функция возвращает TRUE, если указанный tidy-объект object является общим XML-документом (не HTML/XHTML), или FALSE в противном случае.

Внимание

Эта функция еще не реализована в самом Tidylib, поэтому всегда возвращается FALSE.


Разбор разметки в файле или URI

  • « tidy::isXml
  • tidy::parseString »
  • PHP Manual
  • tidy
  • Разбор разметки в файле или URI

tidy::parseFile

tidy_parse_file

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::parseFile -- tidy_parse_file — Разбор разметки в файле или URI

Описание

Объектно-ориентированный стиль

public tidy::parseFile ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = FALSE ]]] ) : bool

Процедурный стиль

tidy_parse_file ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = FALSE ]]] ) : tidy

Разбор полученного файла.

Список параметров

filename

Если получен параметр filename, то функция прочитает этот файл и инициализирует объект с этим файлом, так же как делает это функция tidy_parse_file().

config

Настройки config могут быть заданы в виде массива или строки. Если задана строка, то она интерпретируется как имя файла конфигурации, в противном случае, параметр интерпретируется как сами настройки.

Информацию о каждом параметре можно найти тут: » http://tidy.sourceforge.net/docs/quickref.html.

encoding

Параметр encoding устанавливает кодировку для входных/выходных документов. Возможные значения: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, и shiftjis.

use_include_path

Поиск файла в include_path.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования tidy::parseFile()

<?php
$tidy = new tidy();
$tidy->parseFile('file.html');

$tidy->cleanRepair();

if(!empty($tidy->errorBuffer)) {
    echo "Возникли следующие ошибки или предупреждения:\n";
    echo $tidy->errorBuffer;
}
?>

Смотрите также

  • tidy::parsestring() - Разбор документа, хранимого в строке
  • tidy::repairfile() - Восстанавливает разметку файла и возвращает его в виде строки
  • tidy::repairstring() - Восстанавливает строку, используя по возможности конфигурационный файл


Разбор документа, хранимого в строке

  • « tidy::parseFile
  • tidy::repairFile »
  • PHP Manual
  • tidy
  • Разбор документа, хранимого в строке

tidy::parseString

tidy_parse_string

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::parseString -- tidy_parse_string — Разбор документа, хранимого в строке

Описание

Объектно-ориентированный стиль

public tidy::parseString ( string $input [, mixed $config [, string $encoding ]] ) : bool

Процедурный стиль

tidy_parse_string ( string $input [, mixed $config [, string $encoding ]] ) : tidy

Разбор документа, хранимого в строке.

Список параметров

input

Данные для разбора.

config

Настройки config могут быть заданы в виде массива или строки. Если задана строка, то она интерпретируется как имя файла конфигурации, в противном случае, параметр интерпретируется как сами настройки.

Информацию о каждом параметре можно найти тут: » http://tidy.sourceforge.net/docs/quickref.html.

encoding

Параметр encoding устанавливает кодировку для входных/выходных документов. Возможные значения: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, и shiftjis.

Возвращаемые значения

Возвращает новый экземпляр tidy.

Примеры

Пример #1 Пример использования tidy::parseString()

<?php
ob_start();
?>

<html>
  <head>
   <title>тест</title>
  </head>
  <body>
   <p>ошибка<br>другая линия</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>
      тест
    </title>
  </head>
  <body>
    <p>
      ошибка<br />
      другая линия
    </p>
  </body>
</html>

Смотрите также

  • tidy::parseFile() - Разбор разметки в файле или URI
  • tidy::repairFile() - Восстанавливает разметку файла и возвращает его в виде строки
  • tidy::repairString() - Восстанавливает строку, используя по возможности конфигурационный файл


Восстанавливает разметку файла и возвращает его в виде строки

  • « tidy::parseString
  • tidy::repairString »
  • PHP Manual
  • tidy
  • Восстанавливает разметку файла и возвращает его в виде строки

tidy::repairFile

tidy_repair_file

(PHP 5, PHP 7, PECL tidy >= 0.7.0)

tidy::repairFile -- tidy_repair_file — Восстанавливает разметку файла и возвращает его в виде строки

Описание

Объектно-ориентированный стиль

public tidy::repairFile ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = FALSE ]]] ) : string

Процедурный стиль

tidy_repair_file ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = FALSE ]]] ) : string

Воcстанавливает полученный файл и возвращает его в виде строки.

Список параметров

filename

Имя файла для восстановления.

config

Настройки config могут быть заданы в виде массива или строки. Если задана строка, то она интерпретируется как имя файла конфигурации, в противном случае, параметр интерпретируется как сами настройки.

Информацию о каждом параметре можно найти тут: http://tidy.sourceforge.net/docs/quickref.html.

encoding

Параметр encoding устанавливает кодировку для входных/выходных документов. Возможные значения: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, и shiftjis.

use_include_path

Поиск файла в include_path.

Возвращаемые значения

Возвращает восстановленный документ в виде строки.

Примеры

Пример #1 Пример использования tidy::repairFile()

<?php
$file = 'file.html';

$tidy = new tidy();
$repaired = $tidy->repairfile($file);
rename($file, $file . '.bak');

file_put_contents($file, $repaired);
?>

Смотрите также

  • tidy::parseFile() - Разбор разметки в файле или URI
  • tidy::parseString() - Разбор документа, хранимого в строке
  • tidy::repairString() - Восстанавливает строку, используя по возможности конфигурационный файл


Восстанавливает строку, используя по возможности конфигурационный файл

  • « tidy::repairFile
  • tidy::root »
  • PHP Manual
  • tidy
  • Восстанавливает строку, используя по возможности конфигурационный файл

tidy::repairString

tidy_repair_string

(PHP 5, PHP 7, PECL tidy >= 0.7.0)

tidy::repairString -- tidy_repair_string — Восстанавливает строку, используя по возможности конфигурационный файл

Описание

Объектно-ориентированный стиль

public tidy::repairString ( string $data [, mixed $config [, string $encoding ]] ) : string

Процедурный стиль

tidy_repair_string ( string $data [, mixed $config [, string $encoding ]] ) : string

Восстанавливает полученную строку.

Список параметров

data

Данные для восстановления.

config

Настройки config могут быть заданы в виде массива или строки. Если задана строка, то она интерпретируется как имя файла конфигурации, в противном случае, параметр интерпретируется как сами настройки.

Информацию о каждом параметре можно найти тут: » http://tidy.sourceforge.net/docs/quickref.html.

encoding

Параметр encoding устанавливает кодировку для входных/выходных документов. Возможные значения: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, и shiftjis.

Возвращаемые значения

Возвращает восстановленную строку.

Примеры

Пример #1 Пример использования tidy::repairString()

<?php
ob_start();
?>

<html>
  <head>
    <title>тест</title>
  </head>
  <body>
    <p>ошибка</i>
  </body>
</html>

<?php

$buffer = ob_get_clean();
$tidy = new tidy();
$clean = $tidy->repairString($buffer);

echo $clean;
?>

Результат выполнения данного примера:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>тест</title>
</head>
<body>
<p>ошибка</p>
</body>
</html>

Смотрите также

  • tidy::parseFile() - Разбор разметки в файле или URI
  • tidy::parseString() - Разбор документа, хранимого в строке
  • tidy::repairFile() - Восстанавливает разметку файла и возвращает его в виде строки


Возвращает объект tidyNode, представляющий вершину разобранного tidy-дерева

  • « tidy::repairString
  • tidyNode »
  • PHP Manual
  • tidy
  • Возвращает объект tidyNode, представляющий вершину разобранного tidy-дерева

tidy::root

tidy_get_root

(PHP 5, PHP 7, PECL tidy 0.5.2-1.0.0)

tidy::root -- tidy_get_root — Возвращает объект tidyNode, представляющий вершину разобранного tidy-дерева

Описание

Объектно-ориентированный стиль

public tidy::root ( void ) : tidyNode

Процедурный стиль

tidy_get_root ( tidy $object ) : tidyNode

Возвращает объект tidyNode, представляющий вершину разобранного tidy-дерева.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает объект tidyNode.

Примеры

Пример #1 Пример использования tidy::root()

<?php

$html = <<< HTML
<html><body>

<p>параграф</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
........"параграф"
......br


Класс tidyNode

(PHP 5, PHP 7)

Введение

An HTML node in an HTML file, as detected by tidy.

Обзор классов

final
tidyNode {
/* Свойства */
public string $value;
public string $name;
public int $type;
public int $line;
public int $column;
public bool $proprietary;
public int $id;
public array $attribute;
public array $child;
/* Методы */
private __construct ( void )
public getParent ( void ) : tidyNode
public hasChildren ( void ) : bool
public hasSiblings ( void ) : bool
public isAsp ( void ) : bool
public isComment ( void ) : bool
public isHtml ( void ) : bool
public isJste ( void ) : bool
public isPhp ( void ) : bool
public isText ( void ) : bool
}

Свойства

value

HTML-представление узла, включая окружающие теги.

name

Название HTML-узла

type

Тип тэга (одна из констант, описанных выше, например TIDY_NODETYPE_PHP)

line

Номер строки, на которой расположен тег в файле

column

Номер столбца, на котором расположен тег в файле

proprietary

Признак проприетарности тега

id

Идентификатор тега (одна из констант, описанных выше, например TIDY_TAG_FRAME)

attribute

Массив строк, представляющих имена атрибутов (в качестве ключей) текущего узла.

child

Массив, состоящий из экземпляров tidyNode, представляющий детей текущего узла.

Версия | Описание
5.1.0 | Были добавлены line, column и proprietary

Содержание

  • tidyNode::__construct — Приватный конструктор, делающий невозможным прямое создание объекта
  • tidyNode::getParent — Возвращает родительский узел текущего узла
  • tidyNode::hasChildren — Проверяет существование потомков у узла
  • tidyNode::hasSiblings — Проверяет существование соседних узлов
  • tidyNode::isAsp — Проверяет текущий узел на соответствие ASP
  • tidyNode::isComment — Проверяет, является ли узел комментарием
  • tidyNode::isHtml — Проверяет, является ли текущий узел частью HTML-документа
  • tidyNode::isJste — Проверяет текущий узел на соответствие JSTE
  • tidyNode::isPhp — Проверяет, является ли текущий узел PHP-кодом
  • tidyNode::isText — Проверяет, является ли текущий узел обычным текстом (не разметкой)


Приватный конструктор, делающий невозможным прямое создание объекта

  • « tidyNode
  • tidyNode::getParent »
  • PHP Manual
  • tidyNode
  • Приватный конструктор, делающий невозможным прямое создание объекта

tidyNode::__construct

(PHP 5, PHP 7)

tidyNode::__construct — Приватный конструктор, делающий невозможным прямое создание объекта

Описание

private tidyNode::__construct ( void )

Список параметров

У этой функции нет параметров.


Возвращает родительский узел текущего узла

  • « tidyNode::__construct
  • tidyNode::hasChildren »
  • PHP Manual
  • tidyNode
  • Возвращает родительский узел текущего узла

tidyNode::getParent

(PHP 5 >= 5.2.2, PHP 7)

tidyNode::getParent — Возвращает родительский узел текущего узла

Описание

public tidyNode::getParent ( void ) : tidyNode

Возвращает родительский узел текущего узла.

Примеры

Пример #1 Пример использования функции tidyNode::getParent()

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>заголовок</title>'; ?>
<#
  /* JSTE-код */
  alert('Hello World');
#>
 </head>
 <body>
 Hello World
 </body>
</html>

HTML;

$tidy = tidy_parse_string($html);
$num = 0;

$node = $tidy->html()->child[0]->child[0];

var_dump($node->getparent()->name);
?>

Результат выполнения данного примера:

string(4) "head"

Возвращаемые значения

Возвращает объект tidyNode, если узел имеет родителя, в противном случае возвращает NULL.


Проверяет существование потомков у узла

  • « tidyNode::getParent
  • tidyNode::hasSiblings »
  • PHP Manual
  • tidyNode
  • Проверяет существование потомков у узла

tidyNode::hasChildren

(PHP 5, PHP 7)

tidyNode::hasChildren — Проверяет существование потомков у узла

Описание

public tidyNode::hasChildren ( void ) : bool

Сообщает, есть ли у заданного узла потомки.

Возвращаемые значения

Возвращает TRUE, если у узла есть потомки, в противном случае возвращает FALSE.

Примеры

Пример #1 Пример использования функции tidyNode::hasChildren()

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>заголовок</title>'; ?>
<#
  /* JSTE-код */
  alert('Привет Мир');
#>
</head>
<body>

<?php
  // PHP код
  echo 'привет мир!';
?>

<%
  /* ASP код */
  response.write("Привет Мир!")
%>

<!-- Комментарии -->
Привет Мир
</body></html>
За пределами HTML кода
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

// тег head
var_dump($tidy->html()->child[0]->hasChildren());

// php внутри тега head
var_dump($tidy->html()->child[0]->child[0]->hasChildren());

?>

Результат выполнения данного примера:

bool(true)
bool(false)


Проверяет существование соседних узлов

  • « tidyNode::hasChildren
  • tidyNode::isAsp »
  • PHP Manual
  • tidyNode
  • Проверяет существование соседних узлов

tidyNode::hasSiblings

(PHP 5, PHP 7)

tidyNode::hasSiblings — Проверяет существование соседних узлов

Описание

public tidyNode::hasSiblings ( void ) : bool

Проверяет существование соседних узлов.

Возвращаемые значения

Возвращает TRUE, если существуют соседние узлы, в противном случае возвращает FALSE.

Примеры

Пример #1 Пример использования функции tidyNode::hasSiblings()

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>заголовок</title>'; ?>
<#
  /* JSTE код */
  alert('Привет Мир');
#>
</head>
<body>

<?php
  // PHP код
  echo 'привет мир!';
?>

<%
  /* ASP код */
  response.write("Привет Мир!")
%>

<!-- Комментарии -->
Привет Мир
</body></html>
За пределами HTML кода
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

// тег html
var_dump($tidy->html()->hasSiblings());

// тег head
var_dump($tidy->html()->child[0]->hasSiblings());

?>

Результат выполнения данного примера:

bool(false)
bool(true)


Проверяет текущий узел на соответствие ASP

  • « tidyNode::hasSiblings
  • tidyNode::isComment »
  • PHP Manual
  • tidyNode
  • Проверяет текущий узел на соответствие ASP

tidyNode::isAsp

(PHP 5, PHP 7)

tidyNode::isAsp — Проверяет текущий узел на соответствие ASP

Описание

public tidyNode::isAsp ( void ) : bool

Проверяет текущий узел на соответствие ASP.

Возвращаемые значения

Возвращает TRUE, если узел является ASP, в противном случае возвращает FALSE.

Примеры

Пример #1 Извлечение кода ASP из смешанного HTML-документа

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>заголовок</title>'; ?>
<#
  /* JSTE код */
  alert('Привет Мир');
#>
</head>
<body>

<?php
  // PHP код
  echo 'привет мир!';
?>

<%
  /* ASP код */
  response.write("Привет Мир!")
%>

<!-- Комментарии -->
Привет Мир
</body></html>
За пределами HTML кода
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

    // проверяет текущий узел на соответствие требуемому типу
    if($node->isAsp()) {
        echo "\n\n# asp узел #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // проверяет существование потомков у текущего узла
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

Результат выполнения данного примера:

# asp нода #1
<%
  /* ASP код */
  response.write("Привет Мир!")
%>


Проверяет, является ли узел комментарием

  • « tidyNode::isAsp
  • tidyNode::isHtml »
  • PHP Manual
  • tidyNode
  • Проверяет, является ли узел комментарием

tidyNode::isComment

(PHP 5, PHP 7)

tidyNode::isComment — Проверяет, является ли узел комментарием

Описание

public tidyNode::isComment ( void ) : bool

Проверяет, является ли узел комментарием.

Возвращаемые значения

Возвращает TRUE, если узел является комментарием, в противном случае возвращает FALSE.

Примеры

Пример #1 Извлечение комментариев из смешанного HTML-документа

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>заголовок</title>'; ?>
<#
  /* JSTE код */
  alert('Привет Мир');
#>
</head>
<body>

<?php
  // PHP код
  echo 'привет мир!';
?>

<%
  /* ASP код */
  response.write("Привет Мир!")
%>

<!-- Комментарии -->
Привет Мир
</body></html>
За пределами HTML кода
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

    // проверяет текущий узел на соответствие требуемому типу
    if($node->isComment()) {
        echo "\n\n# узел комментария #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // проверяет существование потомков у текущего узла
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

Результат выполнения данного примера:

# узел комментария #1
<!-- Комментарии -->


Проверяет, является ли текущий узел частью HTML-документа

  • « tidyNode::isComment
  • tidyNode::isJste »
  • PHP Manual
  • tidyNode
  • Проверяет, является ли текущий узел частью HTML-документа

tidyNode::isHtml

(PHP 5, PHP 7)

tidyNode::isHtml — Проверяет, является ли текущий узел частью HTML-документа

Описание

public tidyNode::isHtml ( void ) : bool

Проверяет, является ли текущий узел частью HTML-документа.

Возвращаемые значения

Возвращает TRUE, если узел является частью HTML-документа, в противном случае возвращает FALSE.

Примеры

Пример #1 Извлечение HTML-кода из смешанного HTML-документа

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>заголовок</title>'; ?>
<#
  /* JSTE код */
  alert('Привет Мир');
#>
</head>
<body>

<?php
  // PHP код
  echo 'привет мир!';
?>

<%
  /* ASP код */
  response.write("Привет Мир!")
%>

<!-- Комментарии -->
Привет Мир
</body></html>
За пределами HTML кода
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {
    // проверяет текущий узел на соответствие требуемому типу
    if($node->isHtml()) {
        echo "\n\n# html нода #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // проверяет существование потомков у текущего узла
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

Результат выполнения данного примера:

# html узел #1
<html>
<head>
<?php echo '<title>заголовок</title>'; ?><#
  /* JSTE код */
  alert('Привет Мир');
#>
<title></title>
</head>
<body>
<?php
  // PHP код
  echo 'привет мир!';
?><%
  /* ASP код */
  response.write("Привет Мир!")
%><!-- Комментарии -->
Привет МирЗа пределами HTML кода
</body>
</html>

# html узел #2
<head>
<?php echo '<title>заголовок</title>'; ?><#
  /* JSTE код */
  alert('Привет Мир');
#>
<title></title>
</head>

# html узел #3
<?php echo '<title>заголовок</title>'; ?>

# html узел #4
<#
  /* JSTE код */
  alert('Привет Мир');
#>

# html узел #5
<title></title>

# html узел #6
<body>
<?php
  // PHP код
  echo 'привет мир!';
?><%
  /* ASP код */
  response.write("Привет Мир!")
%><!-- Комментарии -->
Привет МирЗа пределами HTML кода
</body>

# html узел #7
<?php
  // PHP код
  echo 'привет мир!';
?>

# html узел #8
<%
  /* ASP код */
  response.write("Привет Мир!")
%>

# html узел #9
<!-- Комментарии -->

# html узел #10
Привет Мир

# html узел #11
За пределами HTML кода


Проверяет текущий узел на соответствие JSTE

  • « tidyNode::isHtml
  • tidyNode::isPhp »
  • PHP Manual
  • tidyNode
  • Проверяет текущий узел на соответствие JSTE

tidyNode::isJste

(PHP 5, PHP 7)

tidyNode::isJste — Проверяет текущий узел на соответствие JSTE

Описание

public tidyNode::isJste ( void ) : bool

Сообщает, если узел соответствует JSTE.

Возвращаемые значения

Возвращает TRUE, если узел является JSTE, в противном случае возвращает FALSE.

Примеры

Пример #1 Извлечение JSTE-кода из смешанного HTML-документа

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>заголовок</title>'; ?>
<#
  /* JSTE код */
  alert('Привет Мир');
#>
</head>
<body>

<?php
  // PHP код
  echo 'привет мир!';
?>

<%
  /* ASP код */
  response.write("Привет Мир!")
%>

<!-- Комментарии -->
Привет Мир
</body></html>
За пределами HTML кода
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

    // проверяет текущий узел на соответствие требуемому типу
    if($node->isJste()) {
        echo "\n\n# jste-узел #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // проверяет существование потомков у текущего узла
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

Результат выполнения данного примера:

# jste-узел #1
<#
  /* JSTE-код */
  alert('Привет Мир');
#>


Проверяет, является ли текущий узел PHP-кодом

  • « tidyNode::isJste
  • tidyNode::isText »
  • PHP Manual
  • tidyNode
  • Проверяет, является ли текущий узел PHP-кодом

tidyNode::isPhp

(PHP 5, PHP 7)

tidyNode::isPhp — Проверяет, является ли текущий узел PHP-кодом

Описание

public tidyNode::isPhp ( void ) : bool

Проверяет, является ли текущий узел PHP-кодом.

Возвращаемые значения

Возвращает TRUE, если узел является PHP-кодом, в противном случае возвращает FALSE.

Примеры

Пример #1 Извлечение PHP-кода из смешанного HTML-документа

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>заголовок</title>'; ?>
<#
  /* JSTE код */
  alert('Привет Мир');
#>
</head>
<body>

<?php
  // PHP код
  echo 'привет мир!';
?>

<%
  /* ASP код */
  response.write("Привет Мир!")
%>

<!-- Комментарии -->
Привет Мир
</body></html>
За пределами HTML кода
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

    // проверяет текущий узел на соответствие требуемому типу
    if($node->isPhp()) {
        echo "\n\n# php-узел #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // проверяет существование потомков у текущего узла
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

Результат выполнения данного примера:

# php-узел #1
<?php echo '<title>заголовок</title>'; ?>

# php-узел #2
<?php
  // PHP код
  echo 'привет мир!';
?>


Проверяет, является ли текущий узел обычным текстом (не разметкой)

  • « tidyNode::isPhp
  • Tidy »
  • PHP Manual
  • tidyNode
  • Проверяет, является ли текущий узел обычным текстом (не разметкой)

tidyNode::isText

(PHP 5, PHP 7)

tidyNode::isText — Проверяет, является ли текущий узел обычным текстом (не разметкой)

Описание

public tidyNode::isText ( void ) : bool

Проверяет, является ли текущий узел обычным текстом (без какой-либо разметки).

Возвращаемые значения

Возвращает TRUE, если узел представляет собой текст, в противном случае возвращает FALSE.

Примеры

Пример #1 Извлечение обычного текста из смешанного HTML-документа

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>заголовок</title>'; ?>
<#
  /* JSTE код */
  alert('Привет Мир');
#>
</head>
<body>

<?php
  // PHP код
  echo 'привет мир!';
?>

<%
  /* ASP код */
  response.write("Привет Мир!")
%>

<!-- Комментарии -->
Привет Мир
</body></html>
За пределами HTML кода
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

    // проверяет текущий узел на соответствие требуемому типу
    if($node->isText()) {
        echo "\n\n# текстовый узел #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // проверяет существование потомков у текущего узла
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

Результат выполнения данного примера:

# текстовый узел #1
Привет Мир

# текстовый узел #2
За пределами HTML кода


Tidy

Содержание

  • ob_tidyhandler — Функция обратного вызова ob_start для восстановление буфера
  • tidy_access_count — Возвращает число доступных предупреждений Tidy, встретившихся в рассмотренном документе
  • tidy_config_count — Возвращает число ошибок конфигурации Tidy, встретившихся при рассмотрении документа
  • tidy_error_count — Возвращает число ошибок Tidy, встретившихся при рассмотрении документа
  • tidy_get_output — Возвращает строку, представляющую разобранную tidy-разметку
  • tidy_warning_count — Возвращает число Tidy-предупреждений, встреченных в указанном документе


Функция обратного вызова ob_start для восстановление буфера

  • « Tidy
  • tidy_access_count »
  • PHP Manual
  • Tidy
  • Функция обратного вызова ob_start для восстановление буфера

ob_tidyhandler

(PHP 5, PHP 7)

ob_tidyhandler — Функция обратного вызова ob_start для восстановление буфера

Описание

ob_tidyhandler ( string $input [, int $mode ] ) : string

Функция обратного вызова ob_start() для восстановление буфера.

Список параметров

input

Буфер.

mode

Режим буфера.

Возвращаемые значения

Возвращает видоизмененный буфер.

Примеры

Пример #1 Пример использования ob_tidyhandler()

<?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>

Смотрите также

  • ob_start() - Включение буферизации вывода


Возвращает число доступных предупреждений Tidy, встретившихся в рассмотренном документе

  • « ob_tidyhandler
  • tidy_config_count »
  • PHP Manual
  • Tidy
  • Возвращает число доступных предупреждений Tidy, встретившихся в рассмотренном документе

tidy_access_count

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy_access_count — Возвращает число доступных предупреждений Tidy, встретившихся в рассмотренном документе

Описание

tidy_access_count ( tidy $object ) : int

tidy_access_count() возвращает число доступных предупреждений, найденных в рассмотренном документе.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает число предупреждений.

Примеры

Пример #1 Пример использования tidy_access_count()

<?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>';

// выбирается уровень проверки доступности: 1, 2 или 3
$config = array('accessibility-check' => 3);

$tidy = new tidy();
$tidy->parseString($html, $config);
$tidy->cleanRepair();

/* Нельзя забывать про этот вызов! */
$tidy->diagnose();

echo tidy_access_count($tidy); //5

?>

Примечания

Замечание:

В соответствии с дизайном TidyLib, следует вызывать tidy_diagnose() до tidy_access_count() или последний будет всегда возвращать 0. Необходимо также указывать параметр конфигурации accessibility-check.

Смотрите также

  • tidy_error_count() - Возвращает число ошибок Tidy, встретившихся при рассмотрении документа
  • tidy_warning_count() - Возвращает число Tidy-предупреждений, встреченных в указанном документе


Возвращает число ошибок конфигурации Tidy, встретившихся при рассмотрении документа

  • « tidy_access_count
  • tidy_error_count »
  • PHP Manual
  • Tidy
  • Возвращает число ошибок конфигурации Tidy, встретившихся при рассмотрении документа

tidy_config_count

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy_config_count — Возвращает число ошибок конфигурации Tidy, встретившихся при рассмотрении документа

Описание

tidy_config_count ( tidy $object ) : int

Возвращает число ошибок в конфигурации заданного объекта tidy.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает число ошибок.

Примеры

Пример #1 Пример использования tidy_config_count()

<?php
$html = '<p>test</I>';

$config = array('doctype' => 'bogus');

$tidy = tidy_parse_string($html, $config);

/* Выведет 1, потому как 'bogus' некорректное объявление типа документа */
echo tidy_config_count($tidy);
?>


Возвращает число ошибок Tidy, встретившихся при рассмотрении документа

  • « tidy_config_count
  • tidy_get_output »
  • PHP Manual
  • Tidy
  • Возвращает число ошибок Tidy, встретившихся при рассмотрении документа

tidy_error_count

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy_error_count — Возвращает число ошибок Tidy, встретившихся при рассмотрении документа

Описание

tidy_error_count ( tidy $object ) : int

Возвращает число ошибок Tidy, встретившихся при рассмотрении документа.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает число ошибок Tidy.

Примеры

Пример #1 Пример использования tidy_error_count()

<?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

Смотрите также

  • tidy_access_count() - Возвращает число доступных предупреждений Tidy, встретившихся в рассмотренном документе
  • tidy_warning_count() - Возвращает число Tidy-предупреждений, встреченных в указанном документе


Возвращает строку, представляющую разобранную tidy-разметку

  • « tidy_error_count
  • tidy_warning_count »
  • PHP Manual
  • Tidy
  • Возвращает строку, представляющую разобранную tidy-разметку

tidy_get_output

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy_get_output — Возвращает строку, представляющую разобранную tidy-разметку

Описание

tidy_get_output ( tidy $object ) : string

Получить строку с восстановленным html.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает разобранную tidy-разметку.

Примеры

Пример #1 Пример использования tidy_get_output()

<?php

$html = '<p>параграф</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>параграф</p>
</body>
</html>


Возвращает число Tidy-предупреждений, встреченных в указанном документе

  • « tidy_get_output
  • Лексер (Tokenizer) »
  • PHP Manual
  • Tidy
  • Возвращает число Tidy-предупреждений, встреченных в указанном документе

tidy_warning_count

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy_warning_count — Возвращает число Tidy-предупреждений, встреченных в указанном документе

Описание

tidy_warning_count ( tidy $object ) : int

Возвращает число Tidy-предупреждений, встреченных в указанном документе.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает число предупреждений.

Примеры

Пример #1 Пример использования tidy_warning_count()

<?php
$html = '<p>тест</i>
<bogustag>фикция</bogustag>';

$tidy = tidy_parse_string($html);

echo tidy_error_count($tidy) . "\n"; //1
echo tidy_warning_count($tidy) . "\n"; //5
?>

Смотрите также

  • tidy_error_count() - Возвращает число ошибок Tidy, встретившихся при рассмотрении документа
  • tidy_access_count() - Возвращает число доступных предупреждений Tidy, встретившихся в рассмотренном документе


Лексер (Tokenizer)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции PHP-лексера (tokenizer)
    • token_get_all — Разбивает переданный исходный код на PHP-лексемы
    • token_name — Получить символьное имя для переданной PHP-лексемы


Введение

Лексические функции предоставляют интерфейс ко встроенному в Zend Engine PHP-лексеру (tokenizer). Используя эти функции, вы можете писать собственные утилиты анализа или модификации исходного кода на PHP без необходимости иметь дело с языковой спецификацией на лексическом уровне.

Смотрите также приложение со списком лексем.


Установка

Эти функции включены по умолчанию. Можно отключить поддержку лексера (tokenizer) с --disable-tokenizer .

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.


Предопределенные константы

Когда расширение скомпилировано в PHP или динамически загружено во время выполнения, лексемы, перечисленные в Список меток (tokens) парсера определены как константы.


Примеры

Простой пример PHP-скрипта, использующего tokenizer (лексер), который читает PHP-файл, удаляет все комментарии из исходного кода и выводит только чистый код.

Пример #1 Удаление комментариев лексером

<?php
$source = file_get_contents('example.php');
$tokens = token_get_all($source);

foreach ($tokens as $token) {
   if (is_string($token)) {
       // простая однабуквенная лексема
       echo $token;
   } else {
       // массив с лексемой
       list($id, $text) = $token;

       switch ($id) {
           case T_DOC_COMMENT:
               // нет действий для комментариев
               break;

           default:
               // все остальное -> выводим как есть
               echo $text;
               break;
       }
   }
}
?>


Функции PHP-лексера (tokenizer)

Содержание

  • token_get_all — Разбивает переданный исходный код на PHP-лексемы
  • token_name — Получить символьное имя для переданной PHP-лексемы


Разбивает переданный исходный код на PHP-лексемы

  • « Функции PHP-лексера (tokenizer)
  • token_name »
  • PHP Manual
  • Функции PHP-лексера (tokenizer)
  • Разбивает переданный исходный код на PHP-лексемы

token_get_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

token_get_all — Разбивает переданный исходный код на PHP-лексемы

Описание

token_get_all ( string $source [, int $flags = 0 ] ) : array

Функция token_get_all() разбирает переданную строку source в языковые лексемы PHP, используя лексический сканер Zend Engine.

Список лексем смотрите в Список меток (tokens) парсера или используйте token_name() для перевода значения лексемы в строковое представление.

Список параметров

source

Исходный код PHP для разбора.

flags

Корректные флаги:

  • TOKEN_PARSE - Распознает возможность использования зарезервированных слов в определенных контекстах.

Возвращаемые значения

Массив идентификаторов лексем. Каждый индивидуальный идентификатор лексемы это или одиночный символ (например, ;, ., >, !, другие...), или трехэлементный массив, содержащий индекс лексемы в нулевом элементе, строку с оригинальным содержимым лексемы в первом элементе и номером строки во втором элементе.

Список изменений

Версия | Описание
7.0.0 | Добавлен необязательный параметр flags, который может принимать значение TOKEN_PARSE.
5.2.2 | Номера строк возвращаются в элементе 2.

Примеры

Пример #1 token_get_all() example

<?php
$tokens = token_get_all('<?php echo; ?>');

foreach ($tokens as $token) {
    if (is_array($token)) {
        echo "Строка {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

Строка 1: T_OPEN_TAG ('<?php ')
Строка 1: T_ECHO ('echo')
Строка 1: T_WHITESPACE (' ')
Строка 1: T_CLOSE_TAG ('?>')

Пример #2 Пример неправильного использования token_get_all()

<?php
$tokens = token_get_all('/* комментарий */');

foreach ($tokens as $token) {
    if (is_array($token)) {
        echo "Строка {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

Строка 1: T_INLINE_HTML ('/* комментарий */')
Обратите внимание, в приведенном примере строка разбирается как T_INLINE_HTML вместо ожидаемого T_COMMENT. Это связано с тем, что не используется открывающий тег в коде. Это было бы эквиалентно помещению комментариев вне тегов PHP в обычном файле.

Пример #3 Пример использования token_get_all() с классом, использующим зарезервированные слова

<?php

$source = <<<'code'
<?php

class A
{
    const PUBLIC = 1;
}
code;

$tokens = token_get_all($source, TOKEN_PARSE);

foreach ($tokens as $token) {
    if (is_array($token)) {
        echo token_name($token[0]) , PHP_EOL;
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

T_OPEN_TAG
T_WHITESPACE
T_CLASS
T_WHITESPACE
T_STRING
T_CONST
T_WHITESPACE
T_STRING
T_LNUMBER
Без флага TOKEN_PARSE, предпоследний токен (T_STRING) был бы T_PUBLIC.

Смотрите также

  • token_name() - Получить символьное имя для переданной PHP-лексемы


Получить символьное имя для переданной PHP-лексемы

  • « token_get_all
  • URL »
  • PHP Manual
  • Функции PHP-лексера (tokenizer)
  • Получить символьное имя для переданной PHP-лексемы

token_name

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

token_name — Получить символьное имя для переданной PHP-лексемы

Описание

token_name ( int $token ) : string

Функция token_name() получает символьное имя для значения PHP-лексемы token.

Список параметров

token

Значение лексемы.

Возвращаемые значения

Символьное значение для переданной лексемы token.

Примеры

Пример #1 Пример использования token_name()

<?php
// 260 - значение для лексемы T_EVAL
echo token_name(260);        // -> "T_EVAL"

// Константа лексемы сопоставима с его собственным именем
echo token_name(T_FUNCTION); // -> "T_FUNCTION"
?>

Смотрите также

  • Список лексем


URL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции URL
    • base64_decode — Декодирует данные, закодированные MIME base64
    • base64_encode — Кодирует данные в формат MIME base64
    • get_headers — Возвращает все заголовки из ответа сервера на HTTP-запрос
    • get_meta_tags — Извлекает содержимое всех метатегов из файла и возвращает массив
    • http_build_query — Генерирует URL-кодированную строку запроса
    • parse_url — Разбирает URL и возвращает его компоненты
    • rawurldecode — Декодирование URL-кодированной строки
    • rawurlencode — URL-кодирование строки согласно RFC 3986
    • urldecode — Декодирование URL-кодированной строки
    • urlencode — URL-кодирование строки


  • « URL
  • Установка и настройка »
  • PHP Manual
  • URL
  • Введение

Введение

Работа со строками URL: кодирование, декодирование и разбор.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Следующие константы доступны для использования с parse_url(), начиная с PHP 5.1.2.

PHP_URL_SCHEME (integer)
PHP_URL_HOST (integer)
Вывод имени из хоста разобранного URL.
PHP_URL_PORT (integer)
Вывод порта из разобранного URL.
PHP_URL_USER (integer)
Вывод пользователя из разобранного URL.
PHP_URL_PASS (integer)
Вывод пароля из разобранного URL.
PHP_URL_PATH (integer)
Вывод пути из разобранного URL.
PHP_URL_QUERY (integer)
Вывод строки запроса из разобранного URL.
PHP_URL_FRAGMENT (integer)
Вывод фрагмента (строка после символа #) из разобранного URL.

Следующие константы предназначены для использования с http_build_query().

PHP_QUERY_RFC1738 (integer)
Кодирование выполняется в соответствии с » RFC 1738 и типом данных application/x-www-form-urlencoded. Это означает, что пробелы заменяются символом плюс (+).
PHP_QUERY_RFC3986 (integer)
Кодирование производится в соответствии с » RFC 3986, и пробелы кодируются как %20.


Функции URL

Содержание

  • base64_decode — Декодирует данные, закодированные MIME base64
  • base64_encode — Кодирует данные в формат MIME base64
  • get_headers — Возвращает все заголовки из ответа сервера на HTTP-запрос
  • get_meta_tags — Извлекает содержимое всех метатегов из файла и возвращает массив
  • http_build_query — Генерирует URL-кодированную строку запроса
  • parse_url — Разбирает URL и возвращает его компоненты
  • rawurldecode — Декодирование URL-кодированной строки
  • rawurlencode — URL-кодирование строки согласно RFC 3986
  • urldecode — Декодирование URL-кодированной строки
  • urlencode — URL-кодирование строки


Декодирует данные, закодированные MIME base64

  • « Функции URL
  • base64_encode »
  • PHP Manual
  • Функции URL
  • Декодирует данные, закодированные MIME base64

base64_decode

(PHP 4, PHP 5, PHP 7)

base64_decode — Декодирует данные, закодированные MIME base64

Описание

base64_decode ( string $data [, bool $strict = FALSE ] ) : string

Декодирует строку data, закодированную при помощи base64.

Список параметров

data

Закодированные данные.

strict

Если параметр strict задан как TRUE, функция base64_decode() вернет FALSE в случае, если входные данные содержат символы, не входящие в алфавит base64. В противном случае такие символы будут отброшены.

Возвращаемые значения

Возвращает декодированные данные или FALSE в случае возникновения ошибки. Возвращаемые данные могут быть бинарными.

Список изменений

Версия | Описание
5.2.0 | Добавлен параметр strict

Примеры

Пример #1 Пример использования base64_decode()

<?php
$str = '0K3RgtC+INC30LDQutC+0LTQuNGA0L7QstCw0L3QvdCw0Y8g0YHRgtGA0L7QutCw';
echo base64_decode($str);
?>

Результат выполнения данного примера:

Это закодированная строка

Смотрите также

  • base64_encode() - Кодирует данные в формат MIME base64
  • » RFC 2045 раздел 6.8


Кодирует данные в формат MIME base64

  • « base64_decode
  • get_headers »
  • PHP Manual
  • Функции URL
  • Кодирует данные в формат MIME base64

base64_encode

(PHP 4, PHP 5, PHP 7)

base64_encode — Кодирует данные в формат MIME base64

Описание

base64_encode ( string $data ) : string

Кодирует data с base64.

Эта кодировка предназначена для корректной передачи бинарных данных по протоколам, не поддерживающим 8-битную передачу, например, для отправки тела письма.

Данные, закодированные base64 занимают на 33% больше места по сравнению с оригинальными данными.

Список параметров

data

Данные для кодирования.

Возвращаемые значения

Кодированные данные в виде строки.

Примеры

Пример #1 Пример использования base64_encode()

<?php
$str = 'Это закодированная строка';
echo base64_encode($str);
?>

Результат выполнения данного примера:

0K3RgtC+INC30LDQutC+0LTQuNGA0L7QstCw0L3QvdCw0Y8g0YHRgtGA0L7QutCw

Смотрите также

  • base64_decode() - Декодирует данные, закодированные MIME base64
  • chunk_split() - Разбивает строку на фрагменты
  • convert_uuencode() - Кодирует строку в формат uuencode
  • » RFC 2045 раздел 6.8


Возвращает все заголовки из ответа сервера на HTTP-запрос

  • « base64_encode
  • get_meta_tags »
  • PHP Manual
  • Функции URL
  • Возвращает все заголовки из ответа сервера на HTTP-запрос

get_headers

(PHP 5, PHP 7)

get_headers — Возвращает все заголовки из ответа сервера на HTTP-запрос

Описание

get_headers ( string $url [, int $format = 0 [, resource $context ]] ) : array

get_headers() возвращает массив с заголовками из ответа сервера на HTTP-запрос.

Список параметров

url

Целевой URL.

format

Если необязательный параметр format установлен в ненулевое значение, get_headers() разберет ответ сервера и установит ключи для возвращаемого массива.

context

Корректный контекст ресурса, созданный с помощью stream_context_create().

Возвращаемые значения

Возвращает индексированный или ассоциативный массив с заголовками ответа или FALSE при возникновении ошибки.

Список изменений

Версия | Описание
7.1.0 | Добавлен параметр context.
5.1.3 | Эта функция теперь использует контекст потока по умолчанию, который может быть установлен или изменен при помощи функции stream_context_set_default().

Примеры

Пример #1 Пример использования get_headers()

<?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
)

Пример #2 Пример использования запроса HEAD в функцииget_headers()

<?php
// По умолчанию функция get_headers использует GET-запрос для получения заголовков. Если
// вы хотите вместо него отправить HEAD-запрос, то это можно сделать, используя контекста потока:
stream_context_set_default(
    array(
        'http' => array(
            'method' => 'HEAD'
        )
    )
);
$headers = get_headers('http://example.com');
?>

Смотрите также

  • apache_request_headers() - Получает список всех заголовков HTTP-запроса


Извлекает содержимое всех метатегов из файла и возвращает массив

  • « get_headers
  • http_build_query »
  • PHP Manual
  • Функции URL
  • Извлекает содержимое всех метатегов из файла и возвращает массив

get_meta_tags

(PHP 4, PHP 5, PHP 7)

get_meta_tags — Извлекает содержимое всех метатегов из файла и возвращает массив

Описание

get_meta_tags ( string $filename [, bool $use_include_path = FALSE ] ) : array

Открывает filename и разбирает его по строкам в поисках тегов <meta>. Разбор файла останавливается на теге </head>.

Список параметров

filename

Путь к HTML-файлу в виде строки. Может быть как локальным файлом, так и URL.

Пример #1 Что обрабатывает функция get_meta_tags()

<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> <!-- разбор файла будет остановлен здесь -->
(обратите внимание на символы конца строки: PHP использует для разбора строк функции, встроенные в операционную систему, поэтому файлы, созданные в MacOS не будут правильно обрабатываться на Unix).

use_include_path

Если use_include_path равен TRUE, PHP будет искать файл используя стандартные пути поиска из директивы php.ini include_path. Это актуально только для локальных файлов, но не для URL.

Возвращаемые значения

Возвращает ассоциативный массив со значениями разобранных метатегов.

Значение атрибута name становится ключом массива, а значение атрибута content - значением этого элемента. Вы можете использовать стандартные функции работы с массивами для обхода или доступа к конкретным значениям. Специальные символы в именах (ключах массива) заменяются на '_', и ключи приводятся к нижнему регистру. Если два метатега имеют одинаковые имена, будет возвращен только последний.

Примеры

Пример #2 Что возвращает функция get_meta_tags()

<?php
// Предположим, что указанные выше метатеги расположены на www.example.com
$tags = get_meta_tags('http://www.example.com/');

// Обратите внимание, что ключи приведены к нижнему регистру,
// а точки ('.') в ключах заменены на '_'
echo $tags['author'];       // name
echo $tags['keywords'];     // php documentation
echo $tags['description'];  // a php manual
echo $tags['geo_position']; // 49.33;-86.59
?>

Примечания

Замечание:

Обрабатываются только метатеги с атрибутом name. Кавычки не требуются.

Смотрите также

  • htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
  • urlencode() - URL-кодирование строки


Генерирует URL-кодированную строку запроса

  • « get_meta_tags
  • parse_url »
  • PHP Manual
  • Функции URL
  • Генерирует URL-кодированную строку запроса

http_build_query

(PHP 5, PHP 7)

http_build_query — Генерирует URL-кодированную строку запроса

Описание

http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] ) : string

Генерирует URL-кодированную строку запроса из предоставленного ассоциативного (или индексированного) массива.

Список параметров

query_data

Может быть массив или объект, содержащий свойства.

Если query_data массив, то он может быть простой одномерной структурой или массивом массивов (который, в свою очередь, может содержать другие массивы).

Если query_data объект, тогда только общедоступные свойства будут включены в результат.

numeric_prefix

Если числовые индексы используются в базовом массиве и этот параметр указан, то он будет добавлен к числовому индексу для элементов только в базовом массиве.

Это позволяет обеспечить допустимые имена переменных, в которые позже данные будут декодированы PHP или другим CGI-приложением.

arg_separator

arg_separator.output используется в качестве разделителя аргументов, но может быть переопределен путем указания этого параметра.

enc_type

По умолчанию PHP_QUERY_RFC1738.

Если enc_type равен PHP_QUERY_RFC1738, тогда кодирование осуществляется по » RFC 1738 и типу контента application/x-www-form-urlencoded, что подразумевает, что пробелы кодируются как символы "плюс" (+).

Если enc_type равен PHP_QUERY_RFC3986, тогда кодирование осуществляется в соответствии с » RFC 3986, а пробелы будут закодированы в процентах (%20).

Возвращаемые значения

Возвращает URL-кодированную строку.

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр enc_type.
5.1.3 | Квадратные скобки экранируются.
5.1.2 | Добавлен параметр arg_separator.

Примеры

Пример #1 Простой пример использования http_build_query()

<?php
$data = array(
    'foo' => 'bar',
    'baz' => 'boom',
    'cow' => 'milk',
    'php' => 'hypertext processor'
);

echo http_build_query($data) . "\n";
echo http_build_query($data, '', '&amp;');

?>

Результат выполнения данного примера:

foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor

Пример #2 Пример использования http_build_query() с числовыми индексами элементов.

<?php
$data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' => 'hypertext processor');

echo http_build_query($data) . "\n";
echo http_build_query($data, 'myvar_');
?>

Результат выполнения данного примера:

0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor

Пример #3 Пример использования http_build_query() с многомерными массивами

<?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_');
?>

Результат выполнения данных примеров: (символы перенесены для удобства чтения)

user%5Bname%5D=Bob+Smith&user%5Bage%5D=47&user%5Bsex%5D=M&
user%5Bdob%5D=5%2F12%2F1956&pastimes%5B0%5D=golf&pastimes%5B1%5D=opera&
pastimes%5B2%5D=poker&pastimes%5B3%5D=rap&children%5Bbobby%5D%5Bage%5D=12&
children%5Bbobby%5D%5Bsex%5D=M&children%5Bsally%5D%5Bage%5D=8&
children%5Bsally%5D%5Bsex%5D=F&flags_0=CEO

Замечание:

Только числовой индексированный элемент "CEO" в базовом массиве получил префикс. Другие числовые индексы, найденные в pastimes, не требуют строкового префикса, чтобы быть допустимыми именами переменных.

Пример #4 Пример использования http_build_query() с объектом

<?php
class parentClass {
    public    $pub      = 'publicParent';
    protected $prot     = 'protectedParent';
    private   $priv     = 'privateParent';
    public    $pub_bar  = Null;
    protected $prot_bar = Null;
    private   $priv_bar = Null;

    public function __construct(){
        $this->pub_bar  = new childClass();
        $this->prot_bar = new childClass();
        $this->priv_bar = new childClass();
    }
}

class childClass {
    public    $pub  = 'publicChild';
    protected $prot = 'protectedChild';
    private   $priv = 'privateChild';
}

$parent = new parentClass();

echo http_build_query($parent);
?>

Результат выполнения данного примера:

pub=publicParent&pub_bar%5Bpub%5D=publicChild

Смотрите также

  • parse_str() - Разбирает строку в переменные
  • parse_url() - Разбирает URL и возвращает его компоненты
  • urlencode() - URL-кодирование строки
  • array_walk() - Применяет заданную пользователем функцию к каждому элементу массива


Разбирает URL и возвращает его компоненты

  • « http_build_query
  • rawurldecode »
  • PHP Manual
  • Функции URL
  • Разбирает URL и возвращает его компоненты

parse_url

(PHP 4, PHP 5, PHP 7)

parse_url — Разбирает URL и возвращает его компоненты

Описание

parse_url ( string $url [, int $component = -1 ] ) : mixed

Эта функция разбирает URL и возвращает ассоциативный массив, содержащий все компоненты URL, которые в нём присутствуют. Элементы массива не будут декодированы как URL.

Эта функция не предназначена для проверки на корректность данного URL, она только разбивает его на нижеперечисленные части. Частичные URL также принимаются, parse_url() пытается сделать всё возможное, чтобы разобрать их корректно.

Список параметров

url

URL для разбора. Недопустимые символы будут заменены на знаки подчёркивания _.

component

Укажите одну из констант PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY или PHP_URL_FRAGMENT, чтобы получить только конкретный компонент URL в виде строки (string). Исключением является указание PHP_URL_PORT, в этом случае возвращаемое значение будет типа integer.

Возвращаемые значения

При разборе значительно некорректных URL-адресов parse_url() может вернуть FALSE.

Если параметр component будет опущен, функция возвратит ассоциативный массив (array). В массиве будет находиться по крайней мере один элемент. Возможные ключи в этом массиве:

  • scheme - например, http
  • host
  • port
  • user
  • pass
  • path
  • query - после знака вопроса ?
  • fragment - после знака решётки #

Если параметр component определён, функция parse_url() вернёт строку (string) (или число (integer), в случае PHP_URL_PORT) вместо массива (array). Если запрошенный компонент не существует в данном URL, будет возвращён NULL.

Список изменений

Версия | Описание
5.4.7 | Исправлено распознавание host, если в URL отсутствовал компонент scheme и использовался ведущий разделитель компонентов.
5.3.3 | Удалено E_WARNING, которое сообщало о невозможности разбора URL.
5.1.2 | Добавлен параметр component.

Примеры

Пример #1 Пример использования parse_url()

<?php
$url = 'http://username:password@hostname:9090/path?arg=value#anchor';

var_dump(parse_url($url));
var_dump(parse_url($url, PHP_URL_SCHEME));
var_dump(parse_url($url, PHP_URL_USER));
var_dump(parse_url($url, PHP_URL_PASS));
var_dump(parse_url($url, PHP_URL_HOST));
var_dump(parse_url($url, PHP_URL_PORT));
var_dump(parse_url($url, PHP_URL_PATH));
var_dump(parse_url($url, PHP_URL_QUERY));
var_dump(parse_url($url, PHP_URL_FRAGMENT));
?>

Результат выполнения данного примера:

array(8) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(8) "hostname"
  ["port"]=>
  int(9090)
  ["user"]=>
  string(8) "username"
  ["pass"]=>
  string(8) "password"
  ["path"]=>
  string(5) "/path"
  ["query"]=>
  string(9) "arg=value"
  ["fragment"]=>
  string(6) "anchor"
}
string(4) "http"
string(8) "username"
string(8) "password"
string(8) "hostname"
int(9090)
string(5) "/path"
string(9) "arg=value"
string(6) "anchor"

Пример #2 Пример использования parse_url() при отсутствии протокола

<?php
$url = '//www.example.com/path?googleguy=googley';

// До 5.4.7 в path выводилось "//www.example.com/path"
var_dump(parse_url($url));
?>

Результат выполнения данного примера:

array(3) {
  ["host"]=>
  string(15) "www.example.com"
  ["path"]=>
  string(5) "/path"
  ["query"]=>
  string(17) "googleguy=googley"
}

Примечания

Замечание:

Эта функция может выдать некорректный результат для относительных URL.

Замечание:

Эта функция предназначена специально для разбора URL-адресов, а не URI. Однако, чтобы соответствовать требованиям обратной совместимости PHP, она делает исключение для протокола file://, в которой допускаются тройные слеши (file:///...). Для любого другого протокола это недопустимо.

Смотрите также

  • pathinfo() - Возвращает информацию о пути к файлу
  • parse_str() - Разбирает строку в переменные
  • http_build_query() - Генерирует URL-кодированную строку запроса
  • dirname() - Возвращает имя родительского каталога из указанного пути
  • basename() - Возвращает последний компонент имени из указанного пути
  • » RFC 3986


Декодирование URL-кодированной строки

  • « parse_url
  • rawurlencode »
  • PHP Manual
  • Функции URL
  • Декодирование URL-кодированной строки

rawurldecode

(PHP 4, PHP 5, PHP 7)

rawurldecode — Декодирование URL-кодированной строки

Описание

rawurldecode ( string $str ) : string

Возвращает строку, в которой последовательность знаков процента (%) и следующие за ним два шестнадцатеричных числа заменены буквальными символами.

Список параметров

str

URL, который должен быть декодирован.

Возвращаемые значения

Возвращает декодированный URL в виде строки.

Примеры

Пример #1 Пример использования rawurldecode()

<?php

echo rawurldecode('foo%20bar%40baz'); // foo bar@baz

?>

Примечания

Замечание:

rawurldecode() не декодирует символ сложения ('+') в пробелы. Это делает urldecode().

Смотрите также

  • rawurlencode() - URL-кодирование строки согласно RFC 3986
  • urldecode() - Декодирование URL-кодированной строки
  • urlencode() - URL-кодирование строки
  • » RFC 3986


URL-кодирование строки согласно RFC 3986

  • « rawurldecode
  • urldecode »
  • PHP Manual
  • Функции URL
  • URL-кодирование строки согласно RFC 3986

rawurlencode

(PHP 4, PHP 5, PHP 7)

rawurlencode — URL-кодирование строки согласно RFC 3986

Описание

rawurlencode ( string $str ) : string

Кодирует строку согласно » RFC 3986.

Список параметров

str

URL, который должен быть закодирован.

Возвращаемые значения

Возвращает строку, в которой все не цифро-буквенные символы, кроме -_.~, должны быть заменены знаком процента (%), за которым следует два шестнадцатеричных числа. Это кодирование, описанное в » RFC 3986, служит для защиты буквенных символов от интерпретации в качестве специальных разграничителей URL и защищает URL от искажения при передаче символов с последующей конвертацией (как в некоторых почтовых системах).

Замечание:

До версии PHP 5.3.0 rawurlencode кодировал символ "тильда" (~) в соответствии с » RFC 1738.

Список изменений

Версия | Описание
5.3.4 | Символы "тильда" больше не кодируются, когда rawurlencode() используется с EBCDIC-строками.
5.3.0 | Теперь соответствует » RFC 3986.

Примеры

Пример #1 Пример использования rawurlencode для включение пароля в URL FTP

<?php
echo '<a href="ftp://user:', rawurlencode('foo @+%/'),
     '@ftp.example.com/x.txt">';
?>

Результат выполнения данного примера:

<a href="ftp://user:foo%20%40%2B%25%2F@ftp.example.com/x.txt">

Или, если вы передаете информацию как часть URL:

Пример #2 Пример использования rawurlencode()

<?php
echo '<a href="http://example.com/department_list_script/',
    rawurlencode('sales and marketing/Miami'), '">';
?>

Результат выполнения данного примера:

<a href="http://example.com/department_list_script/sales%20and%20marketing%2FMiami">

Смотрите также

  • rawurldecode() - Декодирование URL-кодированной строки
  • urldecode() - Декодирование URL-кодированной строки
  • urlencode() - URL-кодирование строки
  • » RFC 3986


Декодирование URL-кодированной строки

  • « rawurlencode
  • urlencode »
  • PHP Manual
  • Функции URL
  • Декодирование URL-кодированной строки

urldecode

(PHP 4, PHP 5, PHP 7)

urldecode — Декодирование URL-кодированной строки

Описание

urldecode ( string $str ) : string

Декодирует любые кодированные последовательности %## в данной строке. Символ "плюс" ('+') декодируется в символ пробела.

Список параметров

str

Строка, которая должна быть декодирована.

Возвращаемые значения

Возвращает декодированную строку.

Примеры

Пример #1 Пример использования urldecode()

<?php
$query = "my=apples&are=green+and+red";

foreach (explode('&', $query) as $chunk) {
    $param = explode("=", $chunk);

    if ($param) {
        printf("Значение параметра \"%s\" - \"%s\"<br/>\n", urldecode($param[0]), urldecode($param[1]));
    }
}
?>

Примечания

Внимание

Переменные в суперглобальных массивах $_GET и $_REQUEST уже декодированы. Применение urldecode() к элементам $_GET или $_REQUEST может привести к неожиданным и опасным результатам.

Смотрите также

  • urlencode() - URL-кодирование строки
  • rawurlencode() - URL-кодирование строки согласно RFC 3986
  • rawurldecode() - Декодирование URL-кодированной строки
  • » RFC 3986


URL-кодирование строки

  • « urldecode
  • V8js »
  • PHP Manual
  • Функции URL
  • URL-кодирование строки

urlencode

(PHP 4, PHP 5, PHP 7)

urlencode — URL-кодирование строки

Описание

urlencode ( string $str ) : string

Эта функция удобна, когда закодированная строка будет использоваться в запросе, как часть URL, в качестве удобного способа передачи переменных на следующую страницу.

Список параметров

str

Строка, которая должна быть закодирована.

Возвращаемые значения

Возвращает строку, в которой все не цифро-буквенные символы, кроме -_. должны быть заменены знаком процента (%), за которым следует два шестнадцатеричных числа, а пробелы закодированы как знак сложения (+). Строка кодируется тем же способом, что и POST-данные веб-формы, то есть по типу контента application/x-www-form-urlencoded. Это отличается от кодирования по » RFC 3986 (см. rawurlencode() ) в том, что по историческим причинам, пробелы кодируются как знак "плюс" (+).

Примеры

Пример #1 Пример использования urlencode()

<?php
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>

Пример #2 Пример использования urlencode() и htmlentities()

<?php
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>

Примечания

Замечание:

Будьте внимательны с переменными, которые могут совпадать с элементами HTML. Такие сущности как &amp, &copy и &pound разбираются браузером и используется как реальная сущность, а не желаемое имя переменной. Это очевидный конфликт, на который W3C указывает в течение многих лет. См. подробности: » http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2

PHP поддерживает изменение разделителя аргументов на рекомендуемый W3C символ "точку с запятой" путём изменения директивы arg_separator в .ini файле. К сожалению, большинство пользовательских приложений не отправляют данные формы в формате с разделителем "точка с запятой". Более переносимый способ решить эту проблему - это использовать &amp; вместо & в качестве разделителя. Вам не нужно будет для этого изменять PHP-директиву arg_separator. Оставьте разделитель как &, но кодируйте ваши URL с помощью htmlentities() или htmlspecialchars().

Смотрите также

  • urldecode() - Декодирование URL-кодированной строки
  • htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
  • rawurlencode() - URL-кодирование строки согласно RFC 3986
  • rawurldecode() - Декодирование URL-кодированной строки
  • » RFC 3986


Интеграция V8 Javascript Engine

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Примеры
  • V8Js — Класс V8Js
    • V8Js::__construct — Создает новый объект V8Js
    • V8Js::executeString — Выполнить строку как код Javascript
    • V8Js::getExtensions — Возвращает массив зарегистрированных модулей
    • V8Js::getPendingException — Возвращает ожидающее непойманное исключение Javascript
    • V8Js::registerExtension — Регистрация модуля Javascript для V8Js
  • V8JsException — Класс V8JsException
    • V8JsException::getJsFileName — Получить имя файла JavaScript
    • V8JsException::getJsLineNumber — Получить номер строки
    • V8JsException::getJsSourceLine — Получить исходную строку JavaScript
    • V8JsException::getJsTrace — Получить стек вызовов


  • « V8js
  • Установка и настройка »
  • PHP Manual
  • V8js
  • Введение

Введение

Модуль включает » V8 Javascript Engine в PHP.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

PHP 5.3.3+, библиотеки и заголовочные файлы V8 установленные по правильному пути.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/v8js


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки V8js
Имя | По умолчанию | Место изменения | Список изменений
v8js.max_disposed_contexts | 25 | PHP_INI_ALL |
v8js.flags |  | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

v8js.max_disposed_contexts integer

Устанавливает предел размещенного контекста, после которого V8 принудительно запустит сборщик мусора.

v8js.flags string

Устанавливает флаги командной строки V8. Список доступных флагов можно посмотреть в режиме CLI, задав параметр --help. Пример:

$ php -r 'ini_set("v8js.flags", "--help"); new V8Js;' | less

Замечание:

Для эффективного управления флагами во время исполнения используйте ini_set() перед тем, как создавать объекты V8Js!


Примеры

Основы использования

Пример #1 Запуск Javascript

<?php

$v8 = new V8Js();

/* basic.js */
$JS = <<< EOT
len = print('Hello' + ' ' + 'World!' + "\\n");
len;
EOT;

try {
  var_dump($v8->executeString($JS, 'basic.js'));
} catch (V8JsException $e) {
  var_dump($e);
}

?>

Результат выполнения данного примера:

Hello World!
int(13)


Класс V8Js

(PECL v8js >= 0.1.0)

Введение

Это основной класс модуля V8Js. Каждый экземпляр этого класса имеет собственный контекст в котором будет скомпилирован и запущен JavaScript.

Также смотрите V8Js::__construct().

Обзор классов

V8Js {
/* Константы */
const string V8_VERSION ;
const integer FLAG_NONE = 1 ;
const integer FLAG_FORCE_ARRAY = 2 ;
/* Методы */
public __construct ([ string $object_name = "PHP" [, array $variables = array() [, array $extensions = array() [, bool $report_uncaught_exceptions = TRUE ]]]] )
public executeString ( string $script [, string $identifier = "V8Js::executeString()" [, int $flags = V8Js::FLAG_NONE ]] ) : mixed
public static getExtensions ( void ) : array
public getPendingException ( void ) : V8JsException
public static registerExtension ( string $extension_name , string $script [, array $dependencies = array() [, bool $auto_enable = FALSE ]] ) : bool
}

Предопределенные константы

V8Js::V8_VERSION

Версия движка V8 Javascript.

V8Js::FLAG_NONE

Без флагов.

V8Js::FLAG_FORCE_ARRAY

Принуждает объекты JS быть ассоциативными массивами PHP.

Содержание

  • V8Js::__construct — Создает новый объект V8Js
  • V8Js::executeString — Выполнить строку как код Javascript
  • V8Js::getExtensions — Возвращает массив зарегистрированных модулей
  • V8Js::getPendingException — Возвращает ожидающее непойманное исключение Javascript
  • V8Js::registerExtension — Регистрация модуля Javascript для V8Js


Создает новый объект V8Js

  • « V8Js
  • V8Js::executeString »
  • PHP Manual
  • V8Js
  • Создает новый объект V8Js

V8Js::__construct

(PECL v8js >= 0.1.0)

V8Js::__construct — Создает новый объект V8Js

Описание

 public V8Js::__construct
  ([ string $object_name = "PHP"
 [, array $variables = array()
 [, array $extensions = array()
 [, bool $report_uncaught_exceptions = TRUE
]]]] )

Создает новый объект V8Js.

Список параметров

object_name

Имя объекта, передаваемого в Javascript.

variables

Список переменных PHP, которые должны быть доступны в Javascript. Ассоциативный массив формата array("name-for-js" => "name-of-php-variable"). По умолчанию пустой массив.

extensions

Список зарегистрированных через V8Js::registerExtension() модулей, которые должны быть доступны в контексте созданного объекта V8Js.

Замечание:

Модули, зарегистрированные как доступные автоматически, не нужно перечислять в этом массиве. Также, если модуль имеет какие-либо зависимости, то их тоже не нужно перечислять. По умолчанию пустой массив.

report_uncaught_exceptions

Определяет, будут ли сообщаться о непойманных исключениях JavaScript сразу или нет. По умолчанию TRUE. Если установить в FALSE, то эти исключения будут доступны с помощью V8Js::getPendingException().

Возвращаемые значения

Возвращает новый объект V8Js.


Выполнить строку как код Javascript

  • « V8Js::__construct
  • V8Js::getExtensions »
  • PHP Manual
  • V8Js
  • Выполнить строку как код Javascript

V8Js::executeString

(PECL v8js >= 0.1.0)

V8Js::executeString — Выполнить строку как код Javascript

Описание

public V8Js::executeString ( string $script [, string $identifier = "V8Js::executeString()" [, int $flags = V8Js::FLAG_NONE ]] ) : mixed

Компилирует и выполняет строку, переданную в параметр script, как код Javascript.

Список параметров

script

Строка, содержащая код для выполнения.

identifier

Строка идентификатор для запущенного кода. Используется для отладки.

flags

Флаги запуска. Значение должно быть одной из констант V8Js::FLAG_*, по умолчанию V8Js::FLAG_NONE.

  • V8Js::FLAG_NONE: без флагов

  • V8Js::FLAG_FORCE_ARRAY: принуждает объекты JS быть ассоциативными массивами PHP

Возвращаемые значения

Возвращает последнюю переменную, созданную в коде Javascript, предварительно сконвертировав ее в подходящий тип PHP.


Возвращает массив зарегистрированных модулей

  • « V8Js::executeString
  • V8Js::getPendingException »
  • PHP Manual
  • V8Js
  • Возвращает массив зарегистрированных модулей

V8Js::getExtensions

(PECL v8js >= 0.1.0)

V8Js::getExtensions — Возвращает массив зарегистрированных модулей

Описание

public static V8Js::getExtensions ( void ) : array

Возвращает массив зарегистрированных с помощью V8Js::registerExtension() модулей Javascript.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив зарегистрированных модулей или пустой массив, если их нет.


Возвращает ожидающее непойманное исключение Javascript

  • « V8Js::getExtensions
  • V8Js::registerExtension »
  • PHP Manual
  • V8Js
  • Возвращает ожидающее непойманное исключение Javascript

V8Js::getPendingException

(PECL v8js >= 0.1.0)

V8Js::getPendingException — Возвращает ожидающее непойманное исключение Javascript

Описание

public V8Js::getPendingException ( void ) : V8JsException

Возвращает ожидающее непойманное исключение Javascript в виде V8JsException, оставшееся от предыдущих запусков V8Js::executeString().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

V8JsException или NULL.


Регистрация модуля Javascript для V8Js

  • « V8Js::getPendingException
  • V8JsException »
  • PHP Manual
  • V8Js
  • Регистрация модуля Javascript для V8Js

V8Js::registerExtension

(PECL v8js >= 0.1.0)

V8Js::registerExtension — Регистрация модуля Javascript для V8Js

Описание

public static V8Js::registerExtension ( string $extension_name , string $script [, array $dependencies = array() [, bool $auto_enable = FALSE ]] ) : bool

Регистрация переданного в script Javascript как модуля для использования V8Js.

Список параметров

extension_name

Имя регистрируемого модуля.

script

Код Javascript для регистрации.

dependencies

Массив имен модулей, от которых зависит регистрируемый модуль. Каждый из этих модулей будет включен автоматически при загрузке этого модуля.

Замечание:

Все модули, включая зависимости, должны быть зарегистрированы до создания любых V8Js, которые их используют.

auto_enable

Если установлено в TRUE, модуль будет включен автоматически для любого контекста V8Js.

Возвращаемые значения

Возвращает TRUE если модуль успешно зарегистрирован или FALSE в обратном случае.


Класс V8JsException

(PECL v8js >= 0.1.0)

Введение

Обзор классов

V8JsException extends Exception {
/* Свойства */
protected $JsFileName ;
protected $JsLineNumber ;
protected $JsSourceLine ;
protected $JsTrace ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
final public getJsFileName ( void ) : string
final public getJsLineNumber ( void ) : int
final public getJsSourceLine ( void ) : string
final public getJsTrace ( void ) : string
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Свойства

JsFileName

JsLineNumber

JsSourceLine

JsTrace

Содержание

  • V8JsException::getJsFileName — Получить имя файла JavaScript
  • V8JsException::getJsLineNumber — Получить номер строки
  • V8JsException::getJsSourceLine — Получить исходную строку JavaScript
  • V8JsException::getJsTrace — Получить стек вызовов


Получить имя файла JavaScript

  • « V8JsException
  • V8JsException::getJsLineNumber »
  • PHP Manual
  • V8JsException
  • Получить имя файла JavaScript

V8JsException::getJsFileName

(PECL v8js >= 0.1.0)

V8JsException::getJsFileName — Получить имя файла JavaScript

Описание

final public V8JsException::getJsFileName ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить номер строки

  • « V8JsException::getJsFileName
  • V8JsException::getJsSourceLine »
  • PHP Manual
  • V8JsException
  • Получить номер строки

V8JsException::getJsLineNumber

(PECL v8js >= 0.1.0)

V8JsException::getJsLineNumber — Получить номер строки

Описание

final public V8JsException::getJsLineNumber ( void ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить исходную строку JavaScript

  • « V8JsException::getJsLineNumber
  • V8JsException::getJsTrace »
  • PHP Manual
  • V8JsException
  • Получить исходную строку JavaScript

V8JsException::getJsSourceLine

(PECL v8js >= 0.1.0)

V8JsException::getJsSourceLine — Получить исходную строку JavaScript

Описание

final public V8JsException::getJsSourceLine ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить стек вызовов

  • « V8JsException::getJsSourceLine
  • Yaml »
  • PHP Manual
  • V8JsException
  • Получить стек вызовов

V8JsException::getJsTrace

(PECL v8js >= 0.1.0)

V8JsException::getJsTrace — Получить стек вызовов

Описание

final public V8JsException::getJsTrace ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Сериализация данных YAML

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Callback-функции
    • Callback-функции парсинга
    • Публикующие callback-функции
  • Функции Yaml
    • yaml_emit_file — Отправляет YAML-представление значения в файл
    • yaml_emit — Возвращает YAML-представление значения
    • yaml_parse_file — Разбирает YAML-поток из файла
    • yaml_parse_url — Разбирает YAML-поток из URL
    • yaml_parse — Разбирает поток YAML


Введение

Это расширение реализует стандарт сериализации данных » YAML Ain't Markup Language (YAML). Для обработки данных используется » библиотека LibYAML .


Требования

Для работы этого расширения необходима установленная » библиотека C LibYAML версии 0.1.0 или выше.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/yaml.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Yaml
Имя | По умолчанию | Место изменения | Список изменений
yaml.decode_binary | 0 | PHP_INI_ALL |
yaml.decode_php | 0 | PHP_INI_ALL | Добавлено в 1.2.0, до версии 2.0.0 значение по умолчанию было 1
yaml.decode_timestamp | 0 | PHP_INI_ALL |
yaml.output_canonical | 0 | PHP_INI_ALL |
yaml.output_indent | 2 | PHP_INI_ALL |
yaml.output_width | 80 | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

yaml.decode_binary boolean

По умолчанию Off. Если установить как On, то будут декодироваться бинарные записи кодированные в base64 и имеющие тег "tag:yaml.org,2002:binary".

yaml.decode_php boolean

По умолчанию Off. Если задать как On, то сериализованные объекты PHP с явно заданным тегом "!php/object" будут десериализованы.

yaml.decode_timestamp integer

Контролирует декодирование явных и неявных скаляров "tag:yaml.org,2002:timestamp" в потоке документов YAML. Значение по умолчанию равно 0, что означает отсутствие декодирования. Если задать 1, то для разбора временной метки Unix будет использоваться strtotime(). Если задать 2, то для разбора временной метки убдет использоваться date_create(), создающая объект DateTime.

yaml.output_canonical boolean

По умолчанию Off. Если задать как On, то будет использоваться каноничный вывод форм.

yaml.output_indent integer

Количество пробелов для разделения секций. Должно быть в диапазоне от 1 до 10.

yaml.output_width integer

Задает предпочтительную ширину строки. -1 для неограниченной длины.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Скалярные стлил сущностей, которые можно использовать в callback-методах yaml_parse().
YAML_ANY_SCALAR_STYLE (integer)
YAML_PLAIN_SCALAR_STYLE (integer)
YAML_SINGLE_QUOTED_SCALAR_STYLE (integer)
YAML_DOUBLE_QUOTED_SCALAR_STYLE (integer)
YAML_LITERAL_SCALAR_STYLE (integer)
YAML_FOLDED_SCALAR_STYLE (integer)
Стандартные теги, которые можно использовать в callback-методах yaml_parse().
YAML_NULL_TAG (string)
"tag:yaml.org,2002:null"
YAML_BOOL_TAG (string)
"tag:yaml.org,2002:bool"
YAML_STR_TAG (string)
"tag:yaml.org,2002:str"
YAML_INT_TAG (string)
"tag:yaml.org,2002:int"
YAML_FLOAT_TAG (string)
"tag:yaml.org,2002:float"
YAML_TIMESTAMP_TAG (string)
"tag:yaml.org,2002:timestamp"
YAML_SEQ_TAG (string)
"tag:yaml.org,2002:seq"
YAML_MAP_TAG (string)
"tag:yaml.org,2002:map"
YAML_PHP_TAG (string)
"!php/object"
Типы кодировок для yaml_emit()
YAML_ANY_ENCODING (integer)
Позволить источнику выбрать кодировку.
YAML_UTF8_ENCODING (integer)
UTF8
YAML_UTF16LE_ENCODING (integer)
UTF16LE
YAML_UTF16BE_ENCODING (integer)
UTF16BE
Типы конца строк для yaml_emit()
YAML_ANY_BREAK (integer)
Позволить источнику выбрать символ конца строки.
YAML_CR_BREAK (integer)
Использовать \r (стиль Mac).
YAML_LN_BREAK (integer)
Использовать \n (стиль Unix).
YAML_CRLN_BREAK (integer)
Использовать \r\n (стиль DOS/Windows).


Примеры

Пример #1 Пример работы с Yaml

<?php
$addr = array(
    "given" => "Chris",
    "family"=> "Dumars",
    "address"=> array(
        "lines"=> "458 Walkman Dr.
        Suite #292",
        "city"=> "Royal Oak",
        "state"=> "MI",
        "postal"=> 48046,
      ),
  );
$invoice = array (
    "invoice"=> 34843,
    "date"=> "2001-01-23",
    "bill-to"=> $addr,
    "ship-to"=> $addr,
    "product"=> array(
        array(
            "sku"=> "BL394D",
            "quantity"=> 4,
            "description"=> "Basketball",
            "price"=> 450,
          ),
        array(
            "sku"=> "BL4438H",
            "quantity"=> 1,
            "description"=> "Super Hoop",
            "price"=> 2392,
          ),
      ),
    "tax"=> 251.42,
    "total"=> 4443.52,
    "comments"=> "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.",
    );

// создание YAML-представления заказа
$yaml = yaml_emit($invoice);
var_dump($yaml);

// преобразование YAML обратно в PHP-переменную
$parsed = yaml_parse($yaml);

// проверка на соответствие оригинала и результата конвертации в YAML и обратно
var_dump($parsed == $invoice);
?>

Результатом выполнения данного примера будет что-то подобное:

string(631) "---
invoice: 34843
date: "2001-01-23"
bill-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
ship-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
product:
- sku: BL394D
  quantity: 4
  description: Basketball
  price: 450
- sku: BL4438H
  quantity: 1
  description: Super Hoop
  price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
"
bool(true)


Callback-функции

Содержание

  • Callback-функции парсинга
  • Публикующие callback-функции


Callback-функции парсинга

Функций обратного вызова (callback) для парсинга вызывается функциями yaml_parse(), yaml_parse_file() или yaml_parse_url() при обнаружении зарегистрированного тега YAML. В callback-функцию передается значение тегированной записи, сам тег и флаги, определяющие скалярный тип записи. Callback-функция должна вернуть данные, которые парсер YAML должен использовать для этой записи.

Пример #1 Пример использования callback-функции парсинга

<?php
/**
 * Callback-функция парсинга для тегов yaml.
 * @param mixed $value Данные из файла yaml
 * @param string $tag Тег, для которого срабатывает функция
 * @param int $flags Стиль скаляра записи (см. YAML_*_SCALAR_STYLE)
 * @return mixed Значение, которое должен выдать парсер YAML
 */
function tag_callback ($value, $tag, $flags) {
  var_dump(func_get_args()); // отладка
  return "Hello {$value}";
}

$yaml = <<<YAML
greeting: !example/hello World
YAML;

$result = yaml_parse($yaml, 0, $ndocs, array(
    '!example/hello' => 'tag_callback',
  ));

var_dump($result);
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  [0]=>
  string(5) "World"
  [1]=>
  string(14) "!example/hello"
  [2]=>
  int(1)
}
array(1) {
  ["greeting"]=>
  string(11) "Hello World"
}


Публикующие callback-функции

Публикующие callback-функции вызываются тогда, когда с помощью yaml_emit() или yaml_emit_file() публикуются экземпляры зарегистрированных классов . В функцию передается публикуемый объект. Callback-функция должна вернуть массив с двумя ключами: "tag" и "data". Значение, связанное с ключем "tag" должно быть строкой, содержащей тег YAML для вывода. Значение, связанное с ключем "data" должно быть закодировано как YAML и опубликовано вместо перехваченного объекта.

Пример #1 Пример публикующей callback-функции

<?php
class EmitExample {
  public $data;    // данные должны быть понятного pecl/yaml типа

  public function __construct ($d) {
    $this->data = $d;
  }

  /**
   * Публикующая callback-функция Yaml.
   *
   * Ожидается возвращение массива с двумя значениями 2:
   *   - 'tag': пользовательский тег для этой сериализации
   *   - 'data': значение для преобразование в yaml (массив, строка, логическое, число)
   *
   * @param object $obj Публикуемый объект
   * @return array Тег и замещающие данные для публикации
   */
  public static function yamlEmit (EmitExample $obj) {
    return array(
      'tag' => '!example/emit',
      'data' => $obj->data,
    );
  }
}

$emit_callbacks = array(
  'EmitExample' => array('EmitExample', 'yamlEmit')
);

$t = new EmitExample(array('a','b','c'));
$yaml = yaml_emit(
  array(
    'example' => $t,
  ),
  YAML_ANY_ENCODING,
  YAML_ANY_BREAK,
  $emit_callbacks
);
var_dump($yaml);
?>

Результатом выполнения данного примера будет что-то подобное:

string(43) "---
example: !example/emit
- a
- b
- c
...
"


Функции Yaml

Содержание

  • yaml_emit_file — Отправляет YAML-представление значения в файл
  • yaml_emit — Возвращает YAML-представление значения
  • yaml_parse_file — Разбирает YAML-поток из файла
  • yaml_parse_url — Разбирает YAML-поток из URL
  • yaml_parse — Разбирает поток YAML


Отправляет YAML-представление значения в файл

  • « Функции Yaml
  • yaml_emit »
  • PHP Manual
  • Функции Yaml
  • Отправляет YAML-представление значения в файл

yaml_emit_file

(PECL yaml >= 0.5.0)

yaml_emit_file — Отправляет YAML-представление значения в файл

Описание

yaml_emit_file ( string $filename , mixed $data [, int $encoding = YAML_ANY_ENCODING [, int $linebreak = YAML_ANY_BREAK [, array $callbacks = NULL ]]] ) : bool

Генерирует YAML-представление из данных data и отправляет в filename.

Список параметров

filename

Путь к файлу.

data

Параметр data будет кодирован. Допускается любой тип данных кроме ресурса (resource).

encoding

Кодировка вывода выбирается из YAML_ANY_ENCODING, YAML_UTF8_ENCODING, YAML_UTF16LE_ENCODING, YAML_UTF16BE_ENCODING.

linebreak

Символ конца строки вывода выбирается из YAML_ANY_BREAK, YAML_CR_BREAK, YAML_LN_BREAK, YAML_CRLN_BREAK.

callbacks

Обработчики контента для создания узлов YAML. Ассоциативный массив (array), где в качестве ключей используются имена классов, а в качестве значений callback-функции (callable), которые будут создавать узлы для этих классов. Больше подробностей можно узнать в разделе про публикующие callback-функции.

Возвращаемые значения

Возвращает TRUE в случае успеха.

Список изменений

Версия | Описание
1.1.0 | Добавлен аргумент callbacks.

Смотрите также

  • yaml_emit() - Возвращает YAML-представление значения
  • yaml_parse() - Разбирает поток YAML


Возвращает YAML-представление значения

  • « yaml_emit_file
  • yaml_parse_file »
  • PHP Manual
  • Функции Yaml
  • Возвращает YAML-представление значения

yaml_emit

(PECL yaml >= 0.5.0)

yaml_emit — Возвращает YAML-представление значения

Описание

yaml_emit ( mixed $data [, int $encoding = YAML_ANY_ENCODING [, int $linebreak = YAML_ANY_BREAK [, array $callbacks = NULL ]]] ) : string

Возвращает YAML-представление переданных в параметре data данных.

Список параметров

data

Данные data для кодирования. Параметр может быть любого типа, за исключением ресурса (resource).

encoding

Выходная кодировка выбираемая из YAML_ANY_ENCODING, YAML_UTF8_ENCODING, YAML_UTF16LE_ENCODING, YAML_UTF16BE_ENCODING.

linebreak

Символ перевода строки в выводе YAML_ANY_BREAK, YAML_CR_BREAK, YAML_LN_BREAK, YAML_CRLN_BREAK.

callbacks

Обработчики контента для создания узлов YAML. Ассоциативный массив (array), где в качестве ключей используются имена классов, а в качестве значений callback-функции (callable), которые будут создавать узлы для этих классов. Больше подробностей можно узнать в разделе про публикующие callback-функции.

Возвращаемые значения

Возвращает YAML-закодированную строку (string) при успешной обработке.

Список изменений

Версия | Описание
1.1.0 | Добавлен параметр callbacks.

Примеры

Пример #1 Пример использования yaml_emit()

<?php
$addr = array(
    "given" => "Chris",
    "family"=> "Dumars",
    "address"=> array(
        "lines"=> "458 Walkman Dr.
        Suite #292",
        "city"=> "Royal Oak",
        "state"=> "MI",
        "postal"=> 48046,
      ),
  );
$invoice = array (
    "invoice"=> 34843,
    "date"=> 980208000,
    "bill-to"=> $addr,
    "ship-to"=> $addr,
    "product"=> array(
        array(
            "sku"=> "BL394D",
            "quantity"=> 4,
            "description"=> "Basketball",
            "price"=> 450,
          ),
        array(
            "sku"=> "BL4438H",
            "quantity"=> 1,
            "description"=> "Super Hoop",
            "price"=> 2392,
          ),
      ),
    "tax"=> 251.42,
    "total"=> 4443.52,
    "comments"=> "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.",
  );
var_dump(yaml_emit($invoice));
?>

Результатом выполнения данного примера будет что-то подобное:

string(628) "---
invoice: 34843
date: 980208000
bill-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
ship-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
product:
- sku: BL394D
  quantity: 4
  description: Basketball
  price: 450
- sku: BL4438H
  quantity: 1
  description: Super Hoop
  price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
"

Смотрите также

  • yaml_emit_file() - Отправляет YAML-представление значения в файл
  • yaml_parse() - Разбирает поток YAML


Разбирает YAML-поток из файла

  • « yaml_emit
  • yaml_parse_url »
  • PHP Manual
  • Функции Yaml
  • Разбирает YAML-поток из файла

yaml_parse_file

(PECL yaml >= 0.4.0)

yaml_parse_file — Разбирает YAML-поток из файла

Описание

yaml_parse_file ( string $filename [, int $pos = 0 [, int &$ndocs [, array $callbacks = NULL ]]] ) : mixed

Конвертирует полностью или частично поток YAML-документов, читаемых из файла, в переменную PHP.

Список параметров

filename

Путь к файлу.

pos

Индекс документа для извлечения из потока (-1 для всех документов, 0 для первого документа, ...).

ndocs

Если ndocs передан, то он будет заполнен количеством документов, найденных в потоке.

callbacks

Обработчики содержимого для узлов YAML. Ассоциативный массив (array), ключи которого являются тегами YAML, а значения callback-функциями (callable), которые будут их обрабатывать. Более подробно этот механизм описан в разделе callback-функции разбора.

Возвращаемые значения

Возвращает значение, закодированное в input, в соответствующем PHP типе или FALSE в случае возникновения ошибки. Если параметр pos равен -1, то будет возвращен массив (array), содержащий по одной записи для каждого документа, найденного в потоке.

Примечания

Внимание

Обрабатывать непроверенный пользовательский ввод с помощью функции yaml_parse_file() в случае, если разрешено использовать unserialize() для узлов с тегом !php/object - крайне опасно. Такое поведение может быть запрещено с помощью ini-настройки yaml.decode_php.

Смотрите также

  • yaml_parse() - Разбирает поток YAML
  • yaml_parse_url() - Разбирает YAML-поток из URL
  • yaml_emit() - Возвращает YAML-представление значения


Разбирает YAML-поток из URL

  • « yaml_parse_file
  • yaml_parse »
  • PHP Manual
  • Функции Yaml
  • Разбирает YAML-поток из URL

yaml_parse_url

(PECL yaml >= 0.4.0)

yaml_parse_url — Разбирает YAML-поток из URL

Описание

yaml_parse_url ( string $url [, int $pos = 0 [, int &$ndocs [, array $callbacks = NULL ]]] ) : mixed

Конвертирует полностью или частично поток YAML-документов, читаемых из URL, в переменную PHP.

Список параметров

url

url должен быть в форме "scheme://...". PHP будет искать обработчик протокола (также известная как обертка) для указанной схемы. Если адаптеры для этого протокола не зарегистрированы, PHP сгенерирует уведомление, чтобы помочь вам отследить потенциальные проблемы в вашем скрипте, а затем продолжит выполнение так, как будто был указан обычный файл.

pos

Индекс документа для извлечения из потока (-1 для всех документов, 0 для первого документа, ...).

ndocs

Если ndocs передан, то он будет заполнен количеством документов, найденных в потоке.

callbacks

Обработчики содержимого для узлов YAML. Ассоциативный массив (array), ключи которого являются тегами YAML, а значения callback-функциями (callable), которые будут их обрабатывать. Более подробно этот механизм описан в разделе callback-функции разбора.

Возвращаемые значения

Возвращает значение, закодированное в input, в соответствующем PHP типе или FALSE в случае возникновения ошибки. Если параметр pos равен -1, то будет возвращен массив (array), содержащий по одной записи для каждого документа, найденного в потоке.

Примечания

Внимание

Обрабатывать непроверенный пользовательский ввод с помощью функции yaml_parse_file() в случае, если разрешено использовать unserialize() для узлов с тегом !php/object - крайне опасно. Такое поведение может быть запрещено с помощью ini-настройки yaml.decode_php.

Смотрите также

  • yaml_parse() - Разбирает поток YAML
  • yaml_parse_file() - Разбирает YAML-поток из файла
  • yaml_emit() - Возвращает YAML-представление значения


Разбирает поток YAML

  • « yaml_parse_url
  • Yaf »
  • PHP Manual
  • Функции Yaml
  • Разбирает поток YAML

yaml_parse

(PECL yaml >= 0.4.0)

yaml_parse — Разбирает поток YAML

Описание

yaml_parse ( string $input [, int $pos = 0 [, int &$ndocs [, array $callbacks = NULL ]]] ) : mixed

Конвертирует весь поток YAML или его часть и записывает в переменную.

Список параметров

input

Строка для парсинга как поток YAML.

pos

Документ для разбора (-1 для всех документов, 0 для первого документа, ...).

ndocs

Если ndocs найден, тогда он будет заменен на количество документов в потоке YAML.

callbacks

Обработчики содержимого для узлов YAML. Ассоциативный массив (array), ключи которого являются тегами YAML, а значения callback-функциями (callable), которые будут их обрабатывать. Более подробно этот механизм описан в разделе callback-функции разбора.

Возвращаемые значения

Возвращает значение, закодированое в input, в соответствующем типе PHP или FALSE в случае возникновения ошибки. Если параметр pos равен -1, будет возвращен массив, содержащий по одной записи для каждого документа, найденого в потоке.

Примеры

Пример #1 Пример использования yaml_parse()

<?php
$yaml = <<<EOD
---
invoice: 34843
date: "2001-01-23"
bill-to: &id001
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
    site: zxibit.esy.es
ship-to: *id001
product:
- sku: BL394D
  quantity: 4
  description: Basketball
  price: 450
- sku: BL4438H
  quantity: 1
  description: Super Hoop
  price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
EOD;

$parsed = yaml_parse($yaml);
var_dump($parsed);
?>

Результатом выполнения данного примера будет что-то подобное:

array(8) {
  ["invoice"]=>
  int(34843)
  ["date"]=>
  string(10) "2001-01-23"
  ["bill-to"]=>
  &array(3) {
    ["given"]=>
    string(5) "Chris"
    ["family"]=>
    string(6) "Dumars"
    ["address"]=>
    array(4) {
      ["lines"]=>
      string(34) "458 Walkman Dr.
        Suite #292"
      ["city"]=>
      string(9) "Royal Oak"
      ["state"]=>
      string(2) "MI"
      ["postal"]=>
      int(48046)
    }
  }
  ["ship-to"]=>
  &array(3) {
    ["given"]=>
    string(5) "Chris"
    ["family"]=>
    string(6) "Dumars"
    ["address"]=>
    array(4) {
      ["lines"]=>
      string(34) "458 Walkman Dr.
        Suite #292"
      ["city"]=>
      string(9) "Royal Oak"
      ["state"]=>
      string(2) "MI"
      ["postal"]=>
      int(48046)
    }
  }
  ["product"]=>
  array(2) {
    [0]=>
    array(4) {
      ["sku"]=>
      string(6) "BL394D"
      ["quantity"]=>
      int(4)
      ["description"]=>
      string(10) "Basketball"
      ["price"]=>
      int(450)
    }
    [1]=>
    array(4) {
      ["sku"]=>
      string(7) "BL4438H"
      ["quantity"]=>
      int(1)
      ["description"]=>
      string(10) "Super Hoop"
      ["price"]=>
      int(2392)
    }
  }
  ["tax"]=>
  float(251.42)
  ["total"]=>
  float(4443.52)
  ["comments"]=>
  string(68) "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338."
}

Примечания

Внимание

Обрабатывать непроверенный пользовательский ввод, в случае когда для узлов YAML, использующих тег !php/object, разрешено использование функции unserialize(), крайне опасно. Это поведение можно отключить с помощью ini-настройки yaml.decode_php.

Смотрите также

  • yaml_parse_file() - Разбирает YAML-поток из файла
  • yaml_parse_url() - Разбирает YAML-поток из URL
  • yaml_emit() - Возвращает YAML-представление значения


Yet Another Framework

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Конфигурация приложения
  • Yaf_Application — Класс Yaf_Application
    • Yaf_Application::app — Извлечь экземпляр приложения
    • Yaf_Application::bootstrap — Вызвать bootstrap
    • Yaf_Application::clearLastError — Очистка информации по последней ошибке
    • Yaf_Application::__clone — Yaf_Application нельзя клонировать
    • Yaf_Application::__construct — Конструктор класса Yaf_Application
    • Yaf_Application::__destruct — Деструктор Yaf_Application
    • Yaf_Application::environ — Получить значение окружения
    • Yaf_Application::execute — Запустить callback-функцию
    • Yaf_Application::getAppDirectory — Получить директорию приложения
    • Yaf_Application::getConfig — Получить экземпляр класса конфигурации
    • Yaf_Application::getDispatcher — Получить экземпляр класса Yaf_Dispatcher
    • Yaf_Application::getLastErrorMsg — Получить последнее сообщение об ошибке
    • Yaf_Application::getLastErrorNo — Получить код последней ошибки
    • Yaf_Application::getModules — Получить имена заявленных модулей
    • Yaf_Application::run — Запустить Yaf_Application
    • Yaf_Application::setAppDirectory — Изменить директорию приложения
    • Yaf_Application::__sleep — Yaf_Application нельзя сериализовывать
    • Yaf_Application::__wakeup — Yaf_Application нельзя десериализовывать
  • Yaf_Bootstrap_Abstract — Класс Yaf_Bootstrap_Abstract
  • Yaf_Dispatcher — Класс Yaf_Dispatcher
    • Yaf_Dispatcher::autoRender — Switch on/off autorendering
    • Yaf_Dispatcher::catchException — Switch on/off exception catching
    • Yaf_Dispatcher::__clone — Yaf_Dispatcher can not be cloned
    • Yaf_Dispatcher::__construct — Yaf_Dispatcher constructor
    • Yaf_Dispatcher::disableView — Disable view rendering
    • Yaf_Dispatcher::dispatch — Dispatch a request
    • Yaf_Dispatcher::enableView — Enable view rendering
    • Yaf_Dispatcher::flushInstantly — Switch on/off the instant flushing
    • Yaf_Dispatcher::getApplication — Retrive the application
    • Yaf_Dispatcher::getInstance — Retrive the dispatcher instance
    • Yaf_Dispatcher::getRequest — Retrive the request instance
    • Yaf_Dispatcher::getRouter — Retrive router instance
    • Yaf_Dispatcher::initView — Initialize view and return it
    • Yaf_Dispatcher::registerPlugin — Register a plugin
    • Yaf_Dispatcher::returnResponse — The returnResponse purpose
    • Yaf_Dispatcher::setDefaultAction — Change default action name
    • Yaf_Dispatcher::setDefaultController — Change default controller name
    • Yaf_Dispatcher::setDefaultModule — Change default module name
    • Yaf_Dispatcher::setErrorHandler — Set error handler
    • Yaf_Dispatcher::setRequest — The setRequest purpose
    • Yaf_Dispatcher::setView — Set a custom view engine
    • Yaf_Dispatcher::__sleep — Yaf_Dispatcher can not be serialized
    • Yaf_Dispatcher::throwException — Switch on/off exception throwing
    • Yaf_Dispatcher::__wakeup — Yaf_Dispatcher can not be unserialized
  • Yaf_Config_Abstract — Класс Yaf_Config_Abstract
    • Yaf_Config_Abstract::get — Getter
    • Yaf_Config_Abstract::readonly — Find a config whether readonly
    • Yaf_Config_Abstract::set — Setter
    • Yaf_Config_Abstract::toArray — Cast to array
  • Yaf_Config_Ini — Класс Yaf_Config_Ini
    • Yaf_Config_Ini::__construct — Yaf_Config_Ini constructor
    • Yaf_Config_Ini::count — Count all elements in Yaf_Config.ini
    • Yaf_Config_Ini::current — Retrieve the current value
    • Yaf_Config_Ini::__get — Retrieve a element
    • Yaf_Config_Ini::__isset — Determine if a key is exists
    • Yaf_Config_Ini::key — Fetch current element's key
    • Yaf_Config_Ini::next — Advance the internal pointer
    • Yaf_Config_Ini::offsetExists — The offsetExists purpose
    • Yaf_Config_Ini::offsetGet — The offsetGet purpose
    • Yaf_Config_Ini::offsetSet — The offsetSet purpose
    • Yaf_Config_Ini::offsetUnset — The offsetUnset purpose
    • Yaf_Config_Ini::readonly — The readonly purpose
    • Yaf_Config_Ini::rewind — The rewind purpose
    • Yaf_Config_Ini::__set — The __set purpose
    • Yaf_Config_Ini::toArray — Return config as a PHP array
    • Yaf_Config_Ini::valid — The valid purpose
  • Yaf_Config_Simple — Класс Yaf_Config_Simple
    • Yaf_Config_Simple::__construct — The __construct purpose
    • Yaf_Config_Simple::count — The count purpose
    • Yaf_Config_Simple::current — The current purpose
    • Yaf_Config_Simple::__get — The __get purpose
    • Yaf_Config_Simple::__isset — The __isset purpose
    • Yaf_Config_Simple::key — The key purpose
    • Yaf_Config_Simple::next — The next purpose
    • Yaf_Config_Simple::offsetExists — The offsetExists purpose
    • Yaf_Config_Simple::offsetGet — The offsetGet purpose
    • Yaf_Config_Simple::offsetSet — The offsetSet purpose
    • Yaf_Config_Simple::offsetUnset — The offsetUnset purpose
    • Yaf_Config_Simple::readonly — The readonly purpose
    • Yaf_Config_Simple::rewind — The rewind purpose
    • Yaf_Config_Simple::__set — The __set purpose
    • Yaf_Config_Simple::toArray — Returns a PHP array
    • Yaf_Config_Simple::valid — The valid purpose
  • Yaf_Controller_Abstract — The Yaf_Controller_Abstract class
    • Yaf_Controller_Abstract::__clone — Yaf_Controller_Abstract can not be cloned
    • Yaf_Controller_Abstract::__construct — Yaf_Controller_Abstract constructor
    • Yaf_Controller_Abstract::display — The display purpose
    • Yaf_Controller_Abstract::forward — Foward to another action
    • Yaf_Controller_Abstract::getInvokeArg — The getInvokeArg purpose
    • Yaf_Controller_Abstract::getInvokeArgs — The getInvokeArgs purpose
    • Yaf_Controller_Abstract::getModuleName — Get module name
    • Yaf_Controller_Abstract::getRequest — Retrieve current request object
    • Yaf_Controller_Abstract::getResponse — Retrieve current response object
    • Yaf_Controller_Abstract::getView — Retrieve the view engine
    • Yaf_Controller_Abstract::getViewpath — The getViewpath purpose
    • Yaf_Controller_Abstract::init — Controller initializer
    • Yaf_Controller_Abstract::initView — The initView purpose
    • Yaf_Controller_Abstract::redirect — Redirect to a URL
    • Yaf_Controller_Abstract::render — Render view template
    • Yaf_Controller_Abstract::setViewpath — The setViewpath purpose
  • Yaf_Action_Abstract — Класс Yaf_Action_Abstract
    • Yaf_Action_Abstract::execute — Точка входа для Action-классов
    • Yaf_Action_Abstract::getController — Получить объект контроллер
  • Yaf_View_Interface — Класс Yaf_View_Interface
    • Yaf_View_Interface::assign — Assign value to View engine
    • Yaf_View_Interface::display — Render and output a template
    • Yaf_View_Interface::getScriptPath — The getScriptPath purpose
    • Yaf_View_Interface::render — Render a template
    • Yaf_View_Interface::setScriptPath — The setScriptPath purpose
  • Yaf_View_Simple — Класс Yaf_View_Simple
    • Yaf_View_Simple::assign — Assign values
    • Yaf_View_Simple::assignRef — The assignRef purpose
    • Yaf_View_Simple::clear — Clear Assigned values
    • Yaf_View_Simple::__construct — Constructor of Yaf_View_Simple
    • Yaf_View_Simple::display — Render and display
    • Yaf_View_Simple::eval — Render template
    • Yaf_View_Simple::__get — Retrieve assigned variable
    • Yaf_View_Simple::getScriptPath — Get templates directory
    • Yaf_View_Simple::__isset — The __isset purpose
    • Yaf_View_Simple::render — Render template
    • Yaf_View_Simple::__set — Set value to engine
    • Yaf_View_Simple::setScriptPath — Set tempaltes directory
  • Yaf_Loader — The Yaf_Loader class
    • Yaf_Loader::autoload — The autoload purpose
    • Yaf_Loader::clearLocalNamespace — The clearLocalNamespace purpose
    • Yaf_Loader::__clone — The __clone purpose
    • Yaf_Loader::__construct — The __construct purpose
    • Yaf_Loader::getInstance — The getInstance purpose
    • Yaf_Loader::getLibraryPath — Get the library path
    • Yaf_Loader::getLocalNamespace — The getLocalNamespace purpose
    • Yaf_Loader::import — The import purpose
    • Yaf_Loader::isLocalName — The isLocalName purpose
    • Yaf_Loader::registerLocalNamespace — Register local class prefix
    • Yaf_Loader::setLibraryPath — Change the library path
    • Yaf_Loader::__sleep — The __sleep purpose
    • Yaf_Loader::__wakeup — The __wakeup purpose
  • Yaf_Plugin_Abstract — Класс Yaf_Plugin_Abstract
    • Yaf_Plugin_Abstract::dispatchLoopShutdown — The dispatchLoopShutdown purpose
    • Yaf_Plugin_Abstract::dispatchLoopStartup — Hook before dispatch loop
    • Yaf_Plugin_Abstract::postDispatch — The postDispatch purpose
    • Yaf_Plugin_Abstract::preDispatch — The preDispatch purpose
    • Yaf_Plugin_Abstract::preResponse — The preResponse purpose
    • Yaf_Plugin_Abstract::routerShutdown — The routerShutdown purpose
    • Yaf_Plugin_Abstract::routerStartup — RouterStartup hook
  • Yaf_Registry — Класс Yaf_Registry
    • Yaf_Registry::__clone — The __clone purpose
    • Yaf_Registry::__construct — Yaf_Registry implements singleton
    • Yaf_Registry::del — Remove an item from registry
    • Yaf_Registry::get — Retrieve an item from registry
    • Yaf_Registry::has — Check whether an item exists
    • Yaf_Registry::set — Add an item into registry
  • Yaf_Request_Abstract — Класс Yaf_Request_Abstract
    • Yaf_Request_Abstract::getActionName — The getActionName purpose
    • Yaf_Request_Abstract::getBaseUri — The getBaseUri purpose
    • Yaf_Request_Abstract::getControllerName — The getControllerName purpose
    • Yaf_Request_Abstract::getEnv — Retrieve ENV varialbe
    • Yaf_Request_Abstract::getException — The getException purpose
    • Yaf_Request_Abstract::getLanguage — Retrieve client's prefered language
    • Yaf_Request_Abstract::getMethod — Retrieve the request method
    • Yaf_Request_Abstract::getModuleName — The getModuleName purpose
    • Yaf_Request_Abstract::getParam — Retrieve calling parameter
    • Yaf_Request_Abstract::getParams — Retrieve all calling parameters
    • Yaf_Request_Abstract::getRequestUri — The getRequestUri purpose
    • Yaf_Request_Abstract::getServer — Retrieve SERVER variable
    • Yaf_Request_Abstract::isCli — Determine if request is CLI request
    • Yaf_Request_Abstract::isDispatched — Determin if the request is dispatched
    • Yaf_Request_Abstract::isGet — Determine if request is GET request
    • Yaf_Request_Abstract::isHead — Determine if request is HEAD request
    • Yaf_Request_Abstract::isOptions — Determine if request is OPTIONS request
    • Yaf_Request_Abstract::isPost — Determine if request is POST request
    • Yaf_Request_Abstract::isPut — Determine if request is PUT request
    • Yaf_Request_Abstract::isRouted — Determin if request has been routed
    • Yaf_Request_Abstract::isXmlHttpRequest — Determine if request is AJAX request
    • Yaf_Request_Abstract::setActionName — The setActionName purpose
    • Yaf_Request_Abstract::setBaseUri — Set base URI
    • Yaf_Request_Abstract::setControllerName — The setControllerName purpose
    • Yaf_Request_Abstract::setDispatched — The setDispatched purpose
    • Yaf_Request_Abstract::setModuleName — The setModuleName purpose
    • Yaf_Request_Abstract::setParam — Set a calling parameter to a request
    • Yaf_Request_Abstract::setRequestUri — The setRequestUri purpose
    • Yaf_Request_Abstract::setRouted — The setRouted purpose
  • Yaf_Request_Http — The Yaf_Request_Http class
    • Yaf_Request_Http::__clone — Yaf_Request_Http can not be cloned
    • Yaf_Request_Http::__construct — Constructor of Yaf_Request_Http
    • Yaf_Request_Http::get — Retrieve variable from client
    • Yaf_Request_Http::getCookie — Retrieve Cookie variable
    • Yaf_Request_Http::getFiles — The getFiles purpose
    • Yaf_Request_Http::getPost — Retrieve POST variable
    • Yaf_Request_Http::getQuery — Fetch a query parameter
    • Yaf_Request_Http::getRaw — Retrieve Raw request body
    • Yaf_Request_Http::getRequest — The getRequest purpose
    • Yaf_Request_Http::isXmlHttpRequest — Determin if request is Ajax Request
  • Yaf_Request_Simple — Класс Yaf_Request_Simple
    • Yaf_Request_Simple::__clone — The __clone purpose
    • Yaf_Request_Simple::__construct — Constructor of Yaf_Request_Simple
    • Yaf_Request_Simple::get — The get purpose
    • Yaf_Request_Simple::getCookie — The getCookie purpose
    • Yaf_Request_Simple::getFiles — The getFiles purpose
    • Yaf_Request_Simple::getPost — The getPost purpose
    • Yaf_Request_Simple::getQuery — The getQuery purpose
    • Yaf_Request_Simple::getRequest — The getRequest purpose
    • Yaf_Request_Simple::isXmlHttpRequest — Determin if request is AJAX request
  • Yaf_Response_Abstract — Класс Yaf_Response_Abstract
    • Yaf_Response_Abstract::appendBody — Append to response body
    • Yaf_Response_Abstract::clearBody — Discard all exists response body
    • Yaf_Response_Abstract::clearHeaders — Discard all set headers
    • Yaf_Response_Abstract::__clone — The __clone purpose
    • Yaf_Response_Abstract::__construct — The __construct purpose
    • Yaf_Response_Abstract::__destruct — The __destruct purpose
    • Yaf_Response_Abstract::getBody — Retrieve a exists content
    • Yaf_Response_Abstract::getHeader — The getHeader purpose
    • Yaf_Response_Abstract::prependBody — The prependBody purpose
    • Yaf_Response_Abstract::response — Send response
    • Yaf_Response_Abstract::setAllHeaders — The setAllHeaders purpose
    • Yaf_Response_Abstract::setBody — Set content to response
    • Yaf_Response_Abstract::setHeader — Set reponse header
    • Yaf_Response_Abstract::setRedirect — The setRedirect purpose
    • Yaf_Response_Abstract::__toString — Retrieve all bodys as string
  • Yaf_Route_Interface — Класс Yaf_Route_Interface
    • Yaf_Route_Interface::assemble — Assemble a request
    • Yaf_Route_Interface::route — Route a request
  • Yaf_Route_Map — The Yaf_Route_Map class
    • Yaf_Route_Map::assemble — Assemble a url
    • Yaf_Route_Map::__construct — The __construct purpose
    • Yaf_Route_Map::route — The route purpose
  • Yaf_Route_Regex — Класс Yaf_Route_Regex
    • Yaf_Route_Regex::assemble — Сформировать URL-адрес
    • Yaf_Route_Regex::__construct — Конструктор класса Yaf_Route_Regex
    • Yaf_Route_Regex::route — Цель маршрута
  • Yaf_Route_Rewrite — Класс Yaf_Route_Rewrite
    • Yaf_Route_Rewrite::assemble — Assemble a url
    • Yaf_Route_Rewrite::__construct — Yaf_Route_Rewrite constructor
    • Yaf_Route_Rewrite::route — The route purpose
  • Yaf_Router — The Yaf_Router class
    • Yaf_Router::addConfig — Add config-defined routes into Router
    • Yaf_Router::addRoute — Add new Route into Router
    • Yaf_Router::__construct — Yaf_Router constructor
    • Yaf_Router::getCurrentRoute — Get the effective route name
    • Yaf_Router::getRoute — Retrieve a route by name
    • Yaf_Router::getRoutes — Retrieve registered routes
    • Yaf_Router::route — The route purpose
  • Yaf_Route_Simple — Класс Yaf_Route_Simple
    • Yaf_Route_Simple::assemble — Assemble a url
    • Yaf_Route_Simple::__construct — Yaf_Route_Simple constructor
    • Yaf_Route_Simple::route — Route a request
  • Yaf_Route_Static — Класс Yaf_Route_Static
    • Yaf_Route_Static::assemble — Assemble a url
    • Yaf_Route_Static::match — The match purpose
    • Yaf_Route_Static::route — Route a request
  • Yaf_Route_Supervar — Класс Yaf_Route_Supervar
    • Yaf_Route_Supervar::assemble — Assemble a url
    • Yaf_Route_Supervar::__construct — The __construct purpose
    • Yaf_Route_Supervar::route — The route purpose
  • Yaf_Session — Класс Yaf_Session
    • Yaf_Session::__clone — The __clone purpose
    • Yaf_Session::__construct — Constructor of Yaf_Session
    • Yaf_Session::count — The count purpose
    • Yaf_Session::current — The current purpose
    • Yaf_Session::del — The del purpose
    • Yaf_Session::__get — The __get purpose
    • Yaf_Session::getInstance — The getInstance purpose
    • Yaf_Session::has — The has purpose
    • Yaf_Session::__isset — The __isset purpose
    • Yaf_Session::key — The key purpose
    • Yaf_Session::next — The next purpose
    • Yaf_Session::offsetExists — The offsetExists purpose
    • Yaf_Session::offsetGet — The offsetGet purpose
    • Yaf_Session::offsetSet — The offsetSet purpose
    • Yaf_Session::offsetUnset — The offsetUnset purpose
    • Yaf_Session::rewind — The rewind purpose
    • Yaf_Session::__set — The __set purpose
    • Yaf_Session::__sleep — The __sleep purpose
    • Yaf_Session::start — The start purpose
    • Yaf_Session::__unset — The __unset purpose
    • Yaf_Session::valid — The valid purpose
    • Yaf_Session::__wakeup — The __wakeup purpose
  • Yaf_Exception — Класс Yaf_Exception
    • Yaf_Exception::__construct — Конструктор класса Yaf_Exception
    • Yaf_Exception::getPrevious — Получить предыдущее исключение
  • Yaf_Exception_TypeError — Класс Yaf_Exception_TypeError
  • Yaf_Exception_StartupError — Класс Yaf_Exception_StartupError
  • Yaf_Exception_DispatchFailed — Класс Yaf_Exception_DispatchFailed
  • Yaf_Exception_RouterFailed — Класс Yaf_Exception_RouterFailed
  • Yaf_Exception_LoadFailed — Класс Yaf_Exception_LoadFailed
  • Yaf_Exception_LoadFailed_Module — Класс Yaf_Exception_LoadFailed_Module
  • Yaf_Exception_LoadFailed_Controller — Класс Yaf_Exception_LoadFailed_Controller
  • Yaf_Exception_LoadFailed_Action — Класс Yaf_Exception_LoadFailed_Action
  • Yaf_Exception_LoadFailed_View — Класс Yaf_Exception_LoadFailed_View


Введение

Модуль Yet Another Framework (Yaf) является PHP-фреймворком для разработки веб-приложений.

Для Yaf требуется PHP 5.2.1 и выше. В более ранних версиях может не работать.

Простой тест производительности Yaf можно найти на » Yaf Performance.

Краткое руководство описано в разделе Учебник.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/yaf.

Бинарные файлы Windows (файлы DLL) для этого расширения PECL доступны на сайте PECL.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Yaf
Имя | По умолчанию | Место изменения | Список изменений
yaf.library |  | PHP_INI_ALL |
yaf.action_prefer | 0 | PHP_INI_ALL |
yaf.lowcase_path | 0 | PHP_INI_ALL |
yaf.use_spl_autoload | 0 | PHP_INI_ALL |
yaf.forward_limit | 5 | PHP_INI_ALL |
yaf.name_suffix | 1 | PHP_INI_ALL |
yaf.name_separator |  | PHP_INI_ALL |
yaf.cache_config | 0 | PHP_INI_SYSTEM |
yaf.environ | product | PHP_INI_SYSTEM |
yaf.use_namespace | 0 | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

yaf.library string

Путь к глобальным библиотекам, Yaf_loader будет искать глобальные библиотеки тут.

yaf.action_prefer integer

Если в PATH_INFO только одна часть, ее следует рассмотреть в качестве контроллера или действия.

Если задана как On, она будет рассматриваться как имя действия (Action).

yaf.lowcase_path integer

Рассматривать ли все пути в нижнем регистре при автозагрузке классов.

yaf.use_spl_autoload integer

Если задано как On, то, если Yaf_Loader не может найти класс, он вернет FALSE, тем самым предоставляя возможность вызова другой функции автозагрузки.

Если задано как Off, то, если Yaf_Loader не найдет класс, он вернет TRUE и прервет дальнейшие действия по автозагрузке.

Замечание:

Yaf регистрирует загрузчик классов при создании экземпляра класса Yaf_Application, так что какие-либо другие автозагрузчики, зарегистрированные до инстанциации этого класса, будут запущены до Yaf_Loader::autoload().

Если задано как Off(по умолчанию), Yaf_Loader::autoload() будет всегда возвращать TRUE.

yaf.forward_limit integer

Максимальное количество перенаправлений, по умолчанию 5. Это означает, что стек перенаправлений не может быть глубже 5.

Это сделано для предотвращения рекурсии в Yaf_Controller_Abstract::forward().

yaf.name_suffix integer

Если задано как On, Yaf_Loader будет идентифицировать по его суффиксу, для определения, является ли он классом MVC.

Если задано как Off, Yaf_Loader будет смотреть на префикс.

yaf.name_separator string

Если не пусто, Yaf_Loader, при идентификации класса, будет искать суффикс учитывая заданный символ как разделитель.

К примеру, если задать равным "_", Yaf_Loader идентифицирует Index_Controller как класс контроллер, а IndexController как обычный класс.

yaf.cache_config integer

Если задано как On, и в то же время вы используете конфигурационный ini-файл как параметр Yaf_Application(), то результат компиляции этого ini-файла будет закеширован в процессе PHP.

Замечание:

Yaf проверяет mtime ini-файла и, если значение изменилось с момента последней компиляции, перекомпилирует его.

Внимание

Yaf использует путь к ini-файлу как ключ закешированной записи, из-за этого рекомендуется использовать полные, абсолютные пути, чтобы не произошло конфликта между двумя приложениями, использующими ini-файлы с одинаковыми именами, но разным содержимым.

yaf.environ string

По умолчанию равно "product" и используется Yaf для извлечения нужной секции из ini-файла.

Так что, если параметр равен "product", Yaf будет использовать секцию "product" в ini-файле (первый параметр Yaf_Application) в качестве конфигурации Yaf_Application.

yaf.use_namespace integer

Работает начиная с PHP 5.3, если задано как On, все классы Yaf именуются с использованием пространств имен.

Например:

Yaf_Route_Rewrite => \Yaf\Route\Rewrite
Yaf_Request_Http  => \Yaf\Request\Http
Есть исключения для классов типа Yaf_Controller_Abstract. Последний компонент имени является ключевым словом PHP и не может использоваться в качестве имени класса, так что он будет выглядеть так:
Yaf_Controller_Abstract => \Yaf\Controller_Abstract
Yaf_Route_Static => \Yaf\Route_Static


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

YAF_VERSION (string)
YAF_ENVIRON (string)
YAF_ERR_STARTUP_FAILED (integer)
YAF_ERR_ROUTE_FAILED (integer)
YAF_ERR_DISPATCH_FAILED (integer)
YAF_ERR_AUTOLOAD_FAILED (integer)
YAF_ERR_NOTFOUND_MODULE (integer)
YAF_ERR_NOTFOUND_CONTROLLER (integer)
YAF_ERR_NOTFOUND_ACTION (integer)
YAF_ERR_NOTFOUND_VIEW (integer)
YAF_ERR_CALL_FAILED (integer)
YAF_ERR_TYPE_ERROR (integer)


Примеры

Пример #1 Классический пример каталога для приложения

- index.php
- .htaccess
+ conf
  |- application.ini //Файл настроек
- application/
  - Bootstrap.php
  + controllers
     - Index.php //Контроллер по умолчанию
  + views
     |+ index
        - index.phtml //Шаблон вывода для действия по умолчанию
  + modules
  - library
  - models
  - plugins

Пример #2 Введение

index.php единственная точка входа в приложение, все запросы вы должны направлять через него (например, при помощи .htaccess в Apache + php_mod)

<?php
define("APPLICATION_PATH",  dirname(__FILE__));

$app  = new Yaf_Application(APPLICATION_PATH . "/conf/application.ini");
$app->bootstrap() //Выполнение методов, опрделенных в Bootstrap.php
 ->run();
?>

Пример #3 Правила перенаправления

#для apache (.htaccess)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php

#для nginx
server {
  listen ****;
  server_name  domain.com;
  root   document_root;
  index  index.php index.html index.htm;

  if (!-e $request_filename) {
    rewrite ^/(.*)  /index.php/$1 last;
  }
}

#для lighttpd
$HTTP["host"] =~ "(www.)?domain.com$" {
  url.rewrite = (
     "^/(.+)/?$"  => "/index.php/$1",
  )
}

Пример #4 Конфигурация приложения

[yaf]
;APPLICATION_PATH должна быть определена в index.php
application.directory=APPLICATION_PATH "/application/"

;product секция должна наследовать yaf
[product:yaf]
foo=bar

Пример #5 Контроллер по умолчанию

<?php
class IndexController extends Yaf_Controller_Abstract {
   /* действие по умолчанию */
   public function indexAction() {
       $this->_view->word = "hello world";
       //или
       // $this->getView()->word = "hello world";
   }
}
?>

Пример #6 Шаблон вывода по умолчанию

<html>
 <head>
   <title>Hello World</title>
 </head>
 <body>
   <?php echo $word;?>
 </body>
</html>

Пример #7 Запуск приложения

Результатом выполнения данного примера будет что-то подобное:

<html>
 <head>
   <title>Hello World</title>
 </head>
 <body>
   hello world
 </body>
</html>

Замечание:

Пример выше можно также создать с помощью генератора кода Yaf который можно найти здесь yaf@github.


Конфигурация приложения

Вы должны задать конфигурацию в виде массива или INI файла (Смотрите Yaf_Config_Ini) в конструкторе Yaf_Application::__construct().

Yaf автоматически объединит параметры приложения и пользовательские параметры. Конфигурация приложений имеет префикс "yaf." или "application.". Если указанны оба "yaf." и "application.", преимущество будет отдано "application.".

Пример #1 Пример PHP массива

<?php
    $configs = array(
            "application" => array(
                "directory" => dirname(__FILE__),
                "dispatcher" => array(
                      "catchException" => 0,
                    ),
                "view" => array(
                       "ext" => "phtml",
                    ),
                ),
           );
    $app = new Yaf_Application($config);
?>

Пример #2 Пример INI файла

[yaf]
yaf.directory = APPLICATION_PATH "/appliation"
yaf.dispatcher.catchException = 0

[product : yaf]
; user configuration list here

Конфигурация Yaf приложения
Имя | По умолчанию | Список изменений
application.directory |  |
application.ext | "php" |
application.view.ext | "phtml" |
application.modules | "index" |
application.library | application.directory . "/library" |
application.library.directory | application.directory . "/library" |
application.library.namespace | "" |
application.bootstrap | application.directory . "/Bootstrap" . application.ext |
application.baseUri | "" |
application.dispatcher.defaultRoute |  |
application.dispatcher.throwException | 1 |
application.dispatcher.catchException | 0 |
application.dispatcher.defaultModule | "index" |
application.dispatcher.defaultController | "index" |
application.dispatcher.defaultAction | "index" |
application.system |  |

Краткое разъяснение конфигурационных директив.

application.directory string

Директория, которая содержит папки "controllers"(контроллеры), "views"(шаблоны вывода), "models"(модели), "plugins"(плагины).

Замечание:

Это единственная конфигурация которая не имеет параметров по умолчанию. Вы должны ввести ее вручную.

application.ext string

Расширения файлов PHP скриптов, использующихся в классе автозагрузки ( Yaf_Loader).

application.view.ext string

Расширения файлов шаблонов вывода.

application.modules string

Список зарегистрированных модулей, разделенных запятыми, используемых в маршрутизации, особенно если в PATH_INFO более трех сегментов,

Yaf должен иметь возможность понять, является ли первый сегмент именем модуля или нет.

application.library string

Локальный каталог с библиотеками, смотрите Yaf_Loader и yaf.library.

Замечание:

После Yaf 2.1.6, эта настройка должна представлять из себя массив. Путь к библиотекам будет пытаться использовать элементы application.library.directory

application.library.directory string

Псевдоним для application.library. Добавлено в Yaf 2.1.6

application.library.namespace string

Префиксы пространств имен локальных библиотек, перечисленные через запятую.

Добавлено в Yaf 2.1.6

application.bootstrap string

Абсолютный путь к скрипту класса Bootstrap.

application.baseUri string

Используется для удаления фиксированного префикса URI запроса в процессе маршрутизации. К примеру, пришел запрос к "/prefix/controller/action". Если вы зададите application.baseUri равным "/prefix", то в процессе маршрутизации, в качестве PATH_INFO будет использоваться только "/controller/action".

В целом, это довольно бесполезная настройка.

application.dispatcher.throwException bool

Если установлено как On, Yaf будет выбрасывать исключения в случае возникновения ошибок. Также смотрите Yaf_Dispatcher::throwException().

application.dispatcher.catchException bool

Если установлено как On, Yaf будет посылать не обработанные исключения в контроллер Ошибок/Действий. Также смотрите Yaf_Dispatcher::catchException().

application.dispatcher.defaultRoute string

Маршрутизация по умолчанию, если не задано, то, по умолчанию, будет использован маршрут Static. Смотрите: Yaf_Router::addRoute().

application.dispatcher.defaultModule string

Имя модуля по умолчанию, также смотрите Yaf_Dispatcher::setDefaultModule().

application.dispatcher.defaultController string

Имя контроллера по умолчанию, также смотрите Yaf_Dispatcher::setDefaultController().

application.dispatcher.defaultAction string

Имя действия по умолчанию, также смотрите Yaf_Dispatcher::setDefaultAction().

application.system string

Устанавливает конфигурацию времени исполнения yaf в application.ini, типа: application.system.lowcase_path

Замечание:

только PHP_INI_ALL опции могут быть установлены таким образом


Класс Yaf_Application

(Информация о версии неизвестна, возможно, только в Git)

Введение

Yaf_Application обеспечивает инициализацию объекта для приложений которые предостовляют переиспользуемые ресурсы, общие и модульные bootstrap-классы и проверки зависимостей.

Замечание:

Yaf_Application реализует шаблоном singleton, и Yaf_Application не может быть сериализован или десериализован что вызывает проблемы когда вы пытетесь использовать PHPUnit чтобы написать некоторые тесты для Yaf.

Вы можете использовать @backupGlobals анотации PHPUnit для контроля бэкапов и операций восстановления глобальных переменных. Таким образом можно решить эту проблему.

Обзор классов

final Yaf_Application {
/* Свойства */
protected $config ;
protected $dispatcher ;
protected static $_app ;
protected $_modules ;
protected $_running ;
protected $_environ ;
/* Методы */
public staticapp ( void ) : mixed
public bootstrap ([ Yaf_Bootstrap_Abstract $bootstrap ] ) : void
public clearLastError ( void ) : Yaf_Application
private __clone ( void ) : void
public __construct ( mixed $config [, string $envrion ] )
public __destruct ( void ) : void
public environ ( void ) : void
public execute ( callable $entry , string $... ) : void
public getAppDirectory ( void ) : Yaf_Application
public getConfig ( void ) : Yaf_Config_Abstract
public getDispatcher ( void ) : Yaf_Dispatcher
public getLastErrorMsg ( void ) : string
public getLastErrorNo ( void ) : int
public getModules ( void ) : array
public run ( void ) : void
public setAppDirectory ( string $directory ) : Yaf_Application
private __sleep ( void ) : void
private __wakeup ( void ) : void
}

Свойства

config

dispatcher

_app

_modules

_running

_environ

Содержание

  • Yaf_Application::app — Извлечь экземпляр приложения
  • Yaf_Application::bootstrap — Вызвать bootstrap
  • Yaf_Application::clearLastError — Очистка информации по последней ошибке
  • Yaf_Application::__clone — Yaf_Application нельзя клонировать
  • Yaf_Application::__construct — Конструктор класса Yaf_Application
  • Yaf_Application::__destruct — Деструктор Yaf_Application
  • Yaf_Application::environ — Получить значение окружения
  • Yaf_Application::execute — Запустить callback-функцию
  • Yaf_Application::getAppDirectory — Получить директорию приложения
  • Yaf_Application::getConfig — Получить экземпляр класса конфигурации
  • Yaf_Application::getDispatcher — Получить экземпляр класса Yaf_Dispatcher
  • Yaf_Application::getLastErrorMsg — Получить последнее сообщение об ошибке
  • Yaf_Application::getLastErrorNo — Получить код последней ошибки
  • Yaf_Application::getModules — Получить имена заявленных модулей
  • Yaf_Application::run — Запустить Yaf_Application
  • Yaf_Application::setAppDirectory — Изменить директорию приложения
  • Yaf_Application::__sleep — Yaf_Application нельзя сериализовывать
  • Yaf_Application::__wakeup — Yaf_Application нельзя десериализовывать


Извлечь экземпляр приложения

  • « Yaf_Application
  • Yaf_Application::bootstrap »
  • PHP Manual
  • Yaf_Application
  • Извлечь экземпляр приложения

Yaf_Application::app

(Yaf >=1.0.0)

Yaf_Application::app — Извлечь экземпляр приложения

Описание

public staticYaf_Application::app ( void ) : mixed

Извлекает экземпляр класса Yaf_Application. Также для этого вы можете использовать Yaf_Dispatcher::getApplication().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Экземпляр класса Yaf_Application, если ни одного Yaf_Application еще не инициализировано, будет возвращен NULL.

Смотрите также

  • Yaf_Dispatcher::getApplication() - Retrive the application


Вызвать bootstrap

  • « Yaf_Application::app
  • Yaf_Application::clearLastError »
  • PHP Manual
  • Yaf_Application
  • Вызвать bootstrap

Yaf_Application::bootstrap

(Yaf >=1.0.0)

Yaf_Application::bootstrap — Вызвать bootstrap

Описание

public Yaf_Application::bootstrap ([ Yaf_Bootstrap_Abstract $bootstrap ] ) : void

Запускает Bootstrap, все методы определенные в Bootstrap и именованные с префиксом "_init" будут вызваны в порядке их определения. Если параметр bootstrap не задан, Yaf будет его искать по пути, указанному в application.directory.

Список параметров

bootstrap

Экземпляр класса Yaf_Bootstrap_Abstract

Возвращаемые значения

Экземпляр класса Yaf_Application

Примеры

Пример #1 Пример использования Bootstrap()

<?php
/**
 * Этот файл должен находиться по пути APPLICATION_PATH . "/application/"
 * (который определен в конфигурационном файле приложения Yaf_Application).
 * и называться Bootstrap.php, чтобы Yaf_Application смог его найти
 */
class Bootstrap extends Yaf_Bootstrap_Abstract {
    function _initConfig(Yaf_Dispatcher $dispatcher) {
        echo "первый метод вызван\n";
    }

    function _initPlugin($dispatcher) {
        echo "второй метод вызван\n";
    }
}
?>

Пример #2 Пример использования Yaf_Application::bootstrap()

<?php

defined('APPLICATION_PATH')                  // Будет использован APPLICATION_PATH
    || define('APPLICATION_PATH', __DIR__)); //__DIR__ был добавлен после PHP 5.3

$application = new Yaf_Application(APPLICATION_PATH.'/conf/application.ini');
$application->bootstrap();
?>

Результатом выполнения данного примера будет что-то подобное:

первый метод вызван
второй метод вызван

Смотрите также

  • Yaf_Bootstrap_Abstract


Очистка информации по последней ошибке

  • « Yaf_Application::bootstrap
  • Yaf_Application::__clone »
  • PHP Manual
  • Yaf_Application
  • Очистка информации по последней ошибке

Yaf_Application::clearLastError

(Yaf >=2.1.2)

Yaf_Application::clearLastError — Очистка информации по последней ошибке

Описание

public Yaf_Application::clearLastError ( void ) : Yaf_Application

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Application::clearLastError()

<?php
function error_handler($errno, $errstr, $errfile, $errline) {
   Yaf_Application::app()->clearLastError();
   var_dump(Yaf_Application::app()->getLastErrorNo());
}

$config = array(
 "application" => array(
   "directory" => "/tmp/notexists",
     "dispatcher" => array(
       "throwException" => 0, //вызывать ошибку вместо исключения
      ),
  ),
);

$app = new Yaf_Application($config);
$app->getDispatcher()->setErrorHandler("error_handler", E_RECOVERABLE_ERROR);
$app->run();
?>

Результатом выполнения данного примера будет что-то подобное:

int(0)


Yaf_Application нельзя клонировать

  • « Yaf_Application::clearLastError
  • Yaf_Application::__construct »
  • PHP Manual
  • Yaf_Application
  • Yaf_Application нельзя клонировать

Yaf_Application::__clone

(Yaf >=1.0.0)

Yaf_Application::__clone — Yaf_Application нельзя клонировать

Описание

private Yaf_Application::__clone ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Конструктор класса Yaf_Application

  • « Yaf_Application::__clone
  • Yaf_Application::__destruct »
  • PHP Manual
  • Yaf_Application
  • Конструктор класса Yaf_Application

Yaf_Application::__construct

(Yaf >=1.0.0)

Yaf_Application::__construct — Конструктор класса Yaf_Application

Описание

public Yaf_Application::__construct ( mixed $config [, string $envrion ] )

Экземпляр Yaf_Application.

Список параметров

config

Путь к конфигурационному ini-файлу или массив с настройками

Если это путь к ini-файлу, то в нем должен присутствовать раздел с именем yaf.environ, являющийся по умолчанию "product".

Замечание:

Если вы используете ini-файл, то, для улучшения производительности, разрешите опцию yaf.cache_config.

Параметры конфигурации(и их значения по умолчанию):

Пример #1 Пример ini-файла

[product]
;Эта опция не имеет значения по умолчанию и обязательно должна быть задана вами
application.directory=APPLICATION_PATH

;Следующие параметры имеют значение по умолчанию, вам можно их не трогать
application.library = APPLICATION_PATH . "/library"
application.dispatcher.throwException=1
application.dispatcher.catchException=1

application.baseUri=""

;расширение php-скриптов
ap.ext=php

;расширение файлов шаблонов
ap.view.ext=phtml

ap.dispatcher.defaultModuel=Index
ap.dispatcher.defaultController=Index
ap.dispatcher.defaultAction=index

;Определенные модули
ap.modules=Index

envrion

Какой раздел будет загружен как окончательная конфигурация

Возвращаемые значения

Примеры

Пример #2 Пример использования Yaf_Application::__construct()

<?php
defined('APPLICATION_PATH')                  // APPLICATION_PATH will be used in the ini config file
    || define('APPLICATION_PATH', __DIR__)); //__DIR__ был добавлен в PHP 5.3

$application = new Yaf_Application(APPLICATION_PATH.'/conf/application.ini');
$application->bootstrap()->run();
?>

Результатом выполнения данного примера будет что-то подобное:

Пример #3 Пример использования Yaf_Application::__construct()

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
$application->bootstrap()->run();
?>

Результатом выполнения данного примера
будет что-то подобное:

Смотрите также

  • Yaf_Config_Ini
    •


Деструктор Yaf_Application

  • « Yaf_Application::__construct
  • Yaf_Application::environ »
  • PHP Manual
  • Yaf_Application
  • Деструктор Yaf_Application

Yaf_Application::__destruct

(Yaf >=1.0.0)

Yaf_Application::__destruct — Деструктор Yaf_Application

Описание

public Yaf_Application::__destruct ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить значение окружения

  • « Yaf_Application::__destruct
  • Yaf_Application::execute »
  • PHP Manual
  • Yaf_Application
  • Получить значение окружения

Yaf_Application::environ

(Yaf >=1.0.0)

Yaf_Application::environ — Получить значение окружения

Описание

public Yaf_Application::environ ( void ) : void

Получить значение окружения из yaf.environ, которое по умолчанию равно "product".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Application::environ()

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->environ());
?>

Результатом выполнения данного примера будет что-то подобное:

product


Запустить callback-функцию

  • « Yaf_Application::environ
  • Yaf_Application::getAppDirectory »
  • PHP Manual
  • Yaf_Application
  • Запустить callback-функцию

Yaf_Application::execute

(Yaf >=1.0.0)

Yaf_Application::execute — Запустить callback-функцию

Описание

public Yaf_Application::execute ( callable $entry , string $... ) : void

Этот метод обычно используется для запуска Yaf_Application через планировщик (crontab). Задача в crontab также может использовать механизмы autoloader и Bootstrap.

Список параметров

entry

Callback-функция

...

Параметры, которые надо передать в эту функцию

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Application::execute()

<?php
function main($argc, $argv) {
}

$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
$application->execute("main", $argc,  $argv);
?>

Результатом выполнения данного примера будет что-то подобное:


Получить директорию приложения

  • « Yaf_Application::execute
  • Yaf_Application::getConfig »
  • PHP Manual
  • Yaf_Application
  • Получить директорию приложения

Yaf_Application::getAppDirectory

(Yaf >=2.1.4)

Yaf_Application::getAppDirectory — Получить директорию приложения

Описание

public Yaf_Application::getAppDirectory ( void ) : Yaf_Application

Список параметров

directory

Возвращаемые значения


Получить экземпляр класса конфигурации

  • « Yaf_Application::getAppDirectory
  • Yaf_Application::getDispatcher »
  • PHP Manual
  • Yaf_Application
  • Получить экземпляр класса конфигурации

Yaf_Application::getConfig

(Yaf >=1.0.0)

Yaf_Application::getConfig — Получить экземпляр класса конфигурации

Описание

public Yaf_Application::getConfig ( void ) : Yaf_Config_Abstract

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Экземпляр класса Yaf_Config_Abstract

Примеры

Пример #1 Пример использования Yaf_Application::getConfig()

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->getConfig());
?>

Результатом выполнения данного примера будет что-то подобное:

Yaf_Config_Simple Object
(
    [_config:protected] => Array
        (
            [application] => Array
                (
                    [directory] => /home/laruence/local/www/htdocs/application
                )

        )

    [_readonly:protected] => 1
)


Получить экземпляр класса Yaf_Dispatcher

  • « Yaf_Application::getConfig
  • Yaf_Application::getLastErrorMsg »
  • PHP Manual
  • Yaf_Application
  • Получить экземпляр класса Yaf_Dispatcher

Yaf_Application::getDispatcher

(Yaf >=1.0.0)

Yaf_Application::getDispatcher — Получить экземпляр класса Yaf_Dispatcher

Описание

public Yaf_Application::getDispatcher ( void ) : Yaf_Dispatcher

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Application::getDispatcher()

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->getDispatcher());
?>

Результатом выполнения данного примера будет что-то подобное:

Yaf_Dispatcher Object
(
    [_router:protected] => Yaf_Router Object
        (
            [_routes:protected] => Array
                (
                    [_default] => Yaf_Route_Static Object
                        (
                        )

                )

            [_current:protected] =>
        )

    [_view:protected] =>
    [_request:protected] => Yaf_Request_Http Object
        (
            [module] =>
            [controller] =>
            [action] =>
            [method] => Cli
            [params:protected] => Array
                (
                )

            [language:protected] =>
            [_exception:protected] =>
            [_base_uri:protected] =>
            [uri:protected] =>
            [dispatched:protected] =>
            [routed:protected] =>
        )

    [_plugins:protected] => Array
        (
        )

    [_auto_render:protected] => 1
    [_return_response:protected] =>
    [_instantly_flush:protected] =>
    [_default_module:protected] => Index
    [_default_controller:protected] => Index
    [_default_action:protected] => index
    [_response] => Yaf_Response_Cli Object
        (
            [_header:protected] => Array
                (
                )

            [_body:protected] =>
            [_sendheader:protected] =>
        )

)


Получить последнее сообщение об ошибке

  • « Yaf_Application::getDispatcher
  • Yaf_Application::getLastErrorNo »
  • PHP Manual
  • Yaf_Application
  • Получить последнее сообщение об ошибке

Yaf_Application::getLastErrorMsg

(Yaf >=2.1.2)

Yaf_Application::getLastErrorMsg — Получить последнее сообщение об ошибке

Описание

public Yaf_Application::getLastErrorMsg ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Application::getLastErrorMsg()

<?php
function error_handler($errno, $errstr, $errfile, $errline) {
   var_dump(Yaf_Application::app()->getLastErrorMsg());
}

$config = array(
 "application" => array(
   "directory" => "/tmp/notexists",
     "dispatcher" => array(
       "throwException" => 0, //вызывать ошибку вместо исключения
      ),
  ),
);

$app = new Yaf_Application($config);
$app->getDispatcher()->setErrorHandler("error_handler", E_RECOVERABLE_ERROR);
$app->run();
?>

Результатом выполнения данного примера будет что-то подобное:

string(69) "Could not find controller script /tmp/notexists/controllers/Index.php"


Получить код последней ошибки

  • « Yaf_Application::getLastErrorMsg
  • Yaf_Application::getModules »
  • PHP Manual
  • Yaf_Application
  • Получить код последней ошибки

Yaf_Application::getLastErrorNo

(Yaf >=2.1.2)

Yaf_Application::getLastErrorNo — Получить код последней ошибки

Описание

public Yaf_Application::getLastErrorNo ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Application::getLastErrorNo()

<?php
function error_handler($errno, $errstr, $errfile, $errline) {
   var_dump(Yaf_Application::app()->getLastErrorNo());
   var_dump(Yaf_Application::app()->getLastErrorNo() == YAF_ERR_NOTFOUND_CONTROLLER);
}

$config = array(
  "application" => array(
   "directory" => "/tmp/notexists",
     "dispatcher" => array(
       "throwException" => 0, //вызывать ошибку вместо исключения
      ),
  ),
);

$app = new Yaf_Application($config);
$app->getDispatcher()->setErrorHandler("error_handler", E_RECOVERABLE_ERROR);
$app->run();
?>

Результатом выполнения данного примера будет что-то подобное:

int(516)
bool(true)


Получить имена заявленных модулей

  • « Yaf_Application::getLastErrorNo
  • Yaf_Application::run »
  • PHP Manual
  • Yaf_Application
  • Получить имена заявленных модулей

Yaf_Application::getModules

(Yaf >=1.0.0)

Yaf_Application::getModules — Получить имена заявленных модулей

Описание

public Yaf_Application::getModules ( void ) : array

Получить список модулей, заданных в конфигурационном файле. Если ни одного модуля не задано, то в вашем распоряжении всегда есть модуль "Index".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Application::getModules()

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->getModules());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Index
)


Запустить Yaf_Application

  • « Yaf_Application::getModules
  • Yaf_Application::setAppDirectory »
  • PHP Manual
  • Yaf_Application
  • Запустить Yaf_Application

Yaf_Application::run

(Yaf >=1.0.0)

Yaf_Application::run — Запустить Yaf_Application

Описание

public Yaf_Application::run ( void ) : void

Запускает Yaf_Application, позволяя Yaf_Application принимать запросы и маршрутизировать их, направлять в контроллер/действие(Action) и отрисовывать. И, в конце концов, отправлять ответ клиенту.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Изменить директорию приложения

  • « Yaf_Application::run
  • Yaf_Application::__sleep »
  • PHP Manual
  • Yaf_Application
  • Изменить директорию приложения

Yaf_Application::setAppDirectory

(Yaf >=2.1.4)

Yaf_Application::setAppDirectory — Изменить директорию приложения

Описание

public Yaf_Application::setAppDirectory ( string $directory ) : Yaf_Application

Список параметров

directory

Возвращаемые значения


Yaf_Application нельзя сериализовывать

  • « Yaf_Application::setAppDirectory
  • Yaf_Application::__wakeup »
  • PHP Manual
  • Yaf_Application
  • Yaf_Application нельзя сериализовывать

Yaf_Application::__sleep

(Yaf >=1.0.0)

Yaf_Application::__sleep — Yaf_Application нельзя сериализовывать

Описание

private Yaf_Application::__sleep ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Yaf_Application нельзя десериализовывать

  • « Yaf_Application::__sleep
  • Yaf_Bootstrap_Abstract »
  • PHP Manual
  • Yaf_Application
  • Yaf_Application нельзя десериализовывать

Yaf_Application::__wakeup

(Yaf >=1.0.0)

Yaf_Application::__wakeup — Yaf_Application нельзя десериализовывать

Описание

private Yaf_Application::__wakeup ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Yaf_Bootstrap_Abstract

(Информация о версии неизвестна, возможно, только в Git)

Введение

Bootstrap является механизмом, который используется для начального конфигурирования чего-либо до запуска приложения.

Пользователь может определить свой собственный Bootstrap класс, унаследовав Yaf_Bootstrap_Abstract

Любой метод, объявленный в классе Bootstrap начинающийся на "_init", будет вызван Yaf_Application::bootstrap() один за другим в соответсвии с заданной последовательностью.

Примеры

Пример #1 Пример использования Bootstrap

<?php
   /* класс bootstrap должен быть задан в ./application/Bootstrap.php */
   class Bootstrap extends Yaf_Bootstrap_Abstract {
        public function _initConfig(Yaf_Dispatcher $dispatcher) {
            var_dump(__METHOD__);
        }
        public function _initPlugin(Yaf_Dispatcher $dispatcher) {
            var_dump(__METHOD__);
        }
   }

   $config = array(
       "application" => array(
           "directory" => dirname(__FILE__) . "/application/",
       ),
   );

   $app = new Yaf_Application($config);
   $app->bootstrap();
?>

Результатом выполнения данного примера будет что-то подобное:

string(22) "Bootstrap::_initConfig"
string(22) "Bootstrap::_initPlugin"

Обзор классов

abstract Yaf_Bootstrap_Abstract {
/* Свойства */
/* Методы */
}


Класс Yaf_Dispatcher

(Yaf >=1.0.0)

Введение

Yaf_Dispatcher предназначен для инициализации окружения запроса, маршрутизации входящего запроса, и последующей отправки любых обнаруженых задач; агрегирует все ответы и возвращает их по завершению процесса.

Yaf_Dispatcher реализует шаблон проектирования Singleton, это значит что только один экземпляр класса может быть доступен в любое время. Это позволяет ему также выступать в качестве реестра в который другие объекты в процессе диспетчеризации могут подтягиваться.

Обзор классов

final Yaf_Dispatcher {
/* Свойства */
protected $_router ;
protected $_view ;
protected $_request ;
protected $_plugins ;
protected static $_instance ;
protected $_auto_render ;
protected $_return_response ;
protected $_instantly_flush ;
protected $_default_module ;
protected $_default_controller ;
protected $_default_action ;
/* Методы */
public autoRender ([ bool $flag ] ) : Yaf_Dispatcher
public catchException ([ bool $flag ] ) : Yaf_Dispatcher
private __clone ( void ) : void
public __construct ( void )
public disableView ( void ) : bool
public dispatch ( Yaf_Request_Abstract $request ) : Yaf_Response_Abstract
public enableView ( void ) : Yaf_Dispatcher
public flushInstantly ([ bool $flag ] ) : Yaf_Dispatcher
public getApplication ( void ) : Yaf_Application
public static getInstance ( void ) : Yaf_Dispatcher
public getRequest ( void ) : Yaf_Request_Abstract
public getRouter ( void ) : Yaf_Router
public initView ( string $templates_dir [, array $options ] ) : Yaf_View_Interface
public registerPlugin ( Yaf_Plugin_Abstract $plugin ) : Yaf_Dispatcher
public returnResponse ( bool $flag ) : Yaf_Dispatcher
public setDefaultAction ( string $action ) : Yaf_Dispatcher
public setDefaultController ( string $controller ) : Yaf_Dispatcher
public setDefaultModule ( string $module ) : Yaf_Dispatcher
public setErrorHandler ( call $callback , int $error_types ) : Yaf_Dispatcher
public setRequest ( Yaf_Request_Abstract $request ) : Yaf_Dispatcher
public setView ( Yaf_View_Interface $view ) : Yaf_Dispatcher
private __sleep ( void ) : void
public throwException ([ bool $flag ] ) : Yaf_Dispatcher
private __wakeup ( void ) : void
}

Свойства

_router

_view

_request

_plugins

_instance

_auto_render

_return_response

_instantly_flush

_default_module

_default_controller

_default_action

Содержание

  • Yaf_Dispatcher::autoRender — Switch on/off autorendering
  • Yaf_Dispatcher::catchException — Switch on/off exception catching
  • Yaf_Dispatcher::__clone — Yaf_Dispatcher can not be cloned
  • Yaf_Dispatcher::__construct — Yaf_Dispatcher constructor
  • Yaf_Dispatcher::disableView — Disable view rendering
  • Yaf_Dispatcher::dispatch — Dispatch a request
  • Yaf_Dispatcher::enableView — Enable view rendering
  • Yaf_Dispatcher::flushInstantly — Switch on/off the instant flushing
  • Yaf_Dispatcher::getApplication — Retrive the application
  • Yaf_Dispatcher::getInstance — Retrive the dispatcher instance
  • Yaf_Dispatcher::getRequest — Retrive the request instance
  • Yaf_Dispatcher::getRouter — Retrive router instance
  • Yaf_Dispatcher::initView — Initialize view and return it
  • Yaf_Dispatcher::registerPlugin — Register a plugin
  • Yaf_Dispatcher::returnResponse — The returnResponse purpose
  • Yaf_Dispatcher::setDefaultAction — Change default action name
  • Yaf_Dispatcher::setDefaultController — Change default controller name
  • Yaf_Dispatcher::setDefaultModule — Change default module name
  • Yaf_Dispatcher::setErrorHandler — Set error handler
  • Yaf_Dispatcher::setRequest — The setRequest purpose
  • Yaf_Dispatcher::setView — Set a custom view engine
  • Yaf_Dispatcher::__sleep — Yaf_Dispatcher can not be serialized
  • Yaf_Dispatcher::throwException — Switch on/off exception throwing
  • Yaf_Dispatcher::__wakeup — Yaf_Dispatcher can not be unserialized


Switch on/off autorendering

  • « Yaf_Dispatcher
  • Yaf_Dispatcher::catchException »
  • PHP Manual
  • Yaf_Dispatcher
  • Switch on/off autorendering

Yaf_Dispatcher::autoRender

(Yaf >=1.0.0)

Yaf_Dispatcher::autoRender — Switch on/off autorendering

Описание

public Yaf_Dispatcher::autoRender ([ bool $flag ] ) : Yaf_Dispatcher

Yaf_Dispatcher will render automatically after dispatches a incoming request, you can prevent the rendering by calling this method with flag TRUE

Замечание:

you can simply return FALSE in a action to prevent the auto-rendering of that action

Список параметров

flag

bool

Замечание:

since 2.2.0, if this parameter is not given, then the current state will be renturned

Возвращаемые значения

Примеры

Пример #1 Yaf_Dispatcher::autoRender()example

<?php
class IndexController extends Yaf_Controller_Abstract {
     /* init method will be called as soon as a controller is initialized */
     public function init() {
         if ($this->getRequest()->isXmlHttpRequest()) {
             //do not call render for ajax request
             //we will outpu a json string
             Yaf_Dispatcher::getInstance()->autoRender(FALSE);
         }
     }

}
?>

Результатом выполнения данного примера будет что-то подобное:


Switch on/off exception catching

  • « Yaf_Dispatcher::autoRender
  • Yaf_Dispatcher::__clone »
  • PHP Manual
  • Yaf_Dispatcher
  • Switch on/off exception catching

Yaf_Dispatcher::catchException

(Yaf >=1.0.0)

Yaf_Dispatcher::catchException — Switch on/off exception catching

Описание

public Yaf_Dispatcher::catchException ([ bool $flag ] ) : Yaf_Dispatcher

While the application.dispatcher.throwException is On(you can also calling to Yaf_Dispatcher::throwException(TRUE)() to enable it), Yaf will throw Exception whe error occurrs instead of trigger error.

then if you enable Yaf_Dispatcher::catchException()(also can enabled by set application.dispatcher.catchException), all uncaught Exceptions will be caught by ErrorController::error if you have defined one.

Список параметров

flag

bool

Возвращаемые значения

Примеры

Пример #1 Yaf_Dispatcher::catchException()example

/* if you defined a ErrorController like following */
<?php
class ErrorController extends Yaf_Controller_Abstract {
     /**
      * you can also call to Yaf_Request_Abstract::getException to get the
      * un-caught exception.
      */
     public function errorAction($exception) {
        /* error occurs */
        switch ($exception->getCode()) {
            case YAF_ERR_NOTFOUND_MODULE:
            case YAF_ERR_NOTFOUND_CONTROLLER:
            case YAF_ERR_NOTFOUND_ACTION:
            case YAF_ERR_NOTFOUND_VIEW:
                echo 404, ":", $exception->getMessage();
                break;
            default :
                $message = $exception->getMessage();
                echo 0, ":", $exception->getMessage();
                break;
        }
     }
}
?>

Результатом выполнения данного примера будет что-то подобное:

/* now if some error occur, assuming access a non-exists controller(or you can throw a exception yourself): */
404:Could not find controller script **/application/controllers/No-exists-controller.php

Смотрите также

  • Yaf_Dispatcher::throwException() - Switch on/off exception throwing
  • Yaf_Dispatcher::setErrorHandler() - Set error handler


Yaf_Dispatcher can not be cloned

  • « Yaf_Dispatcher::catchException
  • Yaf_Dispatcher::__construct »
  • PHP Manual
  • Yaf_Dispatcher
  • Yaf_Dispatcher can not be cloned

Yaf_Dispatcher::__clone

(Yaf >=1.0.0)

Yaf_Dispatcher::__clone — Yaf_Dispatcher can not be cloned

Описание

private Yaf_Dispatcher::__clone ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Yaf_Dispatcher constructor

  • « Yaf_Dispatcher::__clone
  • Yaf_Dispatcher::disableView »
  • PHP Manual
  • Yaf_Dispatcher
  • Yaf_Dispatcher constructor

Yaf_Dispatcher::__construct

(Yaf >=1.0.0)

Yaf_Dispatcher::__construct — Yaf_Dispatcher constructor

Описание

public Yaf_Dispatcher::__construct ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Disable view rendering

  • « Yaf_Dispatcher::__construct
  • Yaf_Dispatcher::dispatch »
  • PHP Manual
  • Yaf_Dispatcher
  • Disable view rendering

Yaf_Dispatcher::disableView

(Yaf >=1.0.0)

Yaf_Dispatcher::disableView — Disable view rendering

Описание

public Yaf_Dispatcher::disableView ( void ) : bool

disable view engine, used in some app that user will output by theirself

Замечание:

you can simply return FALSE in a action to prevent the auto-rendering of that action

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Dispatch a request

  • « Yaf_Dispatcher::disableView
  • Yaf_Dispatcher::enableView »
  • PHP Manual
  • Yaf_Dispatcher
  • Dispatch a request

Yaf_Dispatcher::dispatch

(Yaf >=1.0.0)

Yaf_Dispatcher::dispatch — Dispatch a request

Описание

public Yaf_Dispatcher::dispatch ( Yaf_Request_Abstract $request ) : Yaf_Response_Abstract

This method does the heavy work of the Yaf_Dispatcher. It take a request object.

The dispatch process has three distinct events:

  • Routing
  • Dispatching
  • Response
Routing takes place exactly once, using the values in the request object when dispatch() is called. Dispatching takes place in a loop; a request may either indicate multiple actions to dispatch, or the controller or a plugin may reset the request object to force additional actions to dispatch(see Yaf_Plugin_Abstract. When all is done, the Yaf_Dispatcher returns a response.

Список параметров

request

Возвращаемые значения


Enable view rendering

  • « Yaf_Dispatcher::dispatch
  • Yaf_Dispatcher::flushInstantly »
  • PHP Manual
  • Yaf_Dispatcher
  • Enable view rendering

Yaf_Dispatcher::enableView

(Yaf >=1.0.0)

Yaf_Dispatcher::enableView — Enable view rendering

Описание

public Yaf_Dispatcher::enableView ( void ) : Yaf_Dispatcher

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Switch on/off the instant flushing

  • « Yaf_Dispatcher::enableView
  • Yaf_Dispatcher::getApplication »
  • PHP Manual
  • Yaf_Dispatcher
  • Switch on/off the instant flushing

Yaf_Dispatcher::flushInstantly

(Yaf >=1.0.0)

Yaf_Dispatcher::flushInstantly — Switch on/off the instant flushing

Описание

public Yaf_Dispatcher::flushInstantly ([ bool $flag ] ) : Yaf_Dispatcher

Список параметров

flag

bool

Замечание:

since 2.2.0, if this parameter is not given, then the current state will be renturned

Возвращаемые значения


Retrive the application

  • « Yaf_Dispatcher::flushInstantly
  • Yaf_Dispatcher::getInstance »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive the application

Yaf_Dispatcher::getApplication

(Yaf >=1.0.0)

Yaf_Dispatcher::getApplication — Retrive the application

Описание

public Yaf_Dispatcher::getApplication ( void ) : Yaf_Application

Retrive the Yaf_Application instance. same as Yaf_Application::app().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Application::app() - Извлечь экземпляр приложения


Retrive the dispatcher instance

  • « Yaf_Dispatcher::getApplication
  • Yaf_Dispatcher::getRequest »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive the dispatcher instance

Yaf_Dispatcher::getInstance

(Yaf >=1.0.0)

Yaf_Dispatcher::getInstance — Retrive the dispatcher instance

Описание

public static Yaf_Dispatcher::getInstance ( void ) : Yaf_Dispatcher

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrive the request instance

  • « Yaf_Dispatcher::getInstance
  • Yaf_Dispatcher::getRouter »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive the request instance

Yaf_Dispatcher::getRequest

(Yaf >=1.0.0)

Yaf_Dispatcher::getRequest — Retrive the request instance

Описание

public Yaf_Dispatcher::getRequest ( void ) : Yaf_Request_Abstract

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrive router instance

  • « Yaf_Dispatcher::getRequest
  • Yaf_Dispatcher::initView »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive router instance

Yaf_Dispatcher::getRouter

(Yaf >=1.0.0)

Yaf_Dispatcher::getRouter — Retrive router instance

Описание

public Yaf_Dispatcher::getRouter ( void ) : Yaf_Router

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Initialize view and return it

  • « Yaf_Dispatcher::getRouter
  • Yaf_Dispatcher::registerPlugin »
  • PHP Manual
  • Yaf_Dispatcher
  • Initialize view and return it

Yaf_Dispatcher::initView

(Yaf >=1.0.0)

Yaf_Dispatcher::initView — Initialize view and return it

Описание

public Yaf_Dispatcher::initView ( string $templates_dir [, array $options ] ) : Yaf_View_Interface

Список параметров

templates_dir

options

Возвращаемые значения


Register a plugin

  • « Yaf_Dispatcher::initView
  • Yaf_Dispatcher::returnResponse »
  • PHP Manual
  • Yaf_Dispatcher
  • Register a plugin

Yaf_Dispatcher::registerPlugin

(Yaf >=1.0.0)

Yaf_Dispatcher::registerPlugin — Register a plugin

Описание

public Yaf_Dispatcher::registerPlugin ( Yaf_Plugin_Abstract $plugin ) : Yaf_Dispatcher

Register a plugin(see Yaf_Plugin_Abstract). Generally, we register plugins in Bootstrap(see Yaf_Bootstrap_Abstract).

Список параметров

plugin

Возвращаемые значения

Примеры

Пример #1 Yaf_Dispatcher::registerPlugin()example

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract {
  public function _initPlugin(Yaf_Dispatcher $dispatcher) {
    /**
    * Yaf assumes plugin scripts under [application.directory] .  "/plugins"
    * for this case, it will be:
    * [application.directory] . "/plugins/" . "User" . [application.ext]
    */
    $user = new UserPlugin();
    $dispatcher->registerPlugin($user);
  }
}
?>

Смотрите также

  • Yaf_Plugin_Abstract
  • Yaf_Bootstrap_Abstract


The returnResponse purpose

  • « Yaf_Dispatcher::registerPlugin
  • Yaf_Dispatcher::setDefaultAction »
  • PHP Manual
  • Yaf_Dispatcher
  • The returnResponse purpose

Yaf_Dispatcher::returnResponse

(Yaf >=1.0.0)

Yaf_Dispatcher::returnResponse — The returnResponse purpose

Описание

public Yaf_Dispatcher::returnResponse ( bool $flag ) : Yaf_Dispatcher

Список параметров

flag

Возвращаемые значения


Change default action name

  • « Yaf_Dispatcher::returnResponse
  • Yaf_Dispatcher::setDefaultController »
  • PHP Manual
  • Yaf_Dispatcher
  • Change default action name

Yaf_Dispatcher::setDefaultAction

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultAction — Change default action name

Описание

public Yaf_Dispatcher::setDefaultAction ( string $action ) : Yaf_Dispatcher

Список параметров

action

Возвращаемые значения


Change default controller name

  • « Yaf_Dispatcher::setDefaultAction
  • Yaf_Dispatcher::setDefaultModule »
  • PHP Manual
  • Yaf_Dispatcher
  • Change default controller name

Yaf_Dispatcher::setDefaultController

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultController — Change default controller name

Описание

public Yaf_Dispatcher::setDefaultController ( string $controller ) : Yaf_Dispatcher

Список параметров

controller

Возвращаемые значения


Change default module name

  • « Yaf_Dispatcher::setDefaultController
  • Yaf_Dispatcher::setErrorHandler »
  • PHP Manual
  • Yaf_Dispatcher
  • Change default module name

Yaf_Dispatcher::setDefaultModule

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultModule — Change default module name

Описание

public Yaf_Dispatcher::setDefaultModule ( string $module ) : Yaf_Dispatcher

Список параметров

module

Возвращаемые значения


Set error handler

  • « Yaf_Dispatcher::setDefaultModule
  • Yaf_Dispatcher::setRequest »
  • PHP Manual
  • Yaf_Dispatcher
  • Set error handler

Yaf_Dispatcher::setErrorHandler

(Yaf >=1.0.0)

Yaf_Dispatcher::setErrorHandler — Set error handler

Описание

public Yaf_Dispatcher::setErrorHandler ( call $callback , int $error_types ) : Yaf_Dispatcher

Set error handler for Yaf. when application.dispatcher.throwException is off, Yaf will trigger catchable error while unexpected errors occrred.

Thus, this error handler will be called while the error raise.

Список параметров

callback

A callable callback

error_types

Возвращаемые значения

Смотрите также

  • Yaf_Dispatcher::throwException() - Switch on/off exception throwing
  • Yaf_Application::getLastErrorNo() - Получить код последней ошибки
  • Yaf_Application::getLastErrorMsg() - Получить последнее сообщение об ошибке


The setRequest purpose

  • « Yaf_Dispatcher::setErrorHandler
  • Yaf_Dispatcher::setView »
  • PHP Manual
  • Yaf_Dispatcher
  • The setRequest purpose

Yaf_Dispatcher::setRequest

(Yaf >=1.0.0)

Yaf_Dispatcher::setRequest — The setRequest purpose

Описание

public Yaf_Dispatcher::setRequest ( Yaf_Request_Abstract $request ) : Yaf_Dispatcher

Список параметров

plugin

Возвращаемые значения


Set a custom view engine

  • « Yaf_Dispatcher::setRequest
  • Yaf_Dispatcher::__sleep »
  • PHP Manual
  • Yaf_Dispatcher
  • Set a custom view engine

Yaf_Dispatcher::setView

(Yaf >=1.0.0)

Yaf_Dispatcher::setView — Set a custom view engine

Описание

public Yaf_Dispatcher::setView ( Yaf_View_Interface $view ) : Yaf_Dispatcher

This method proviods a solution for that if you want use a custom view engine instead of Yaf_View_Simple

Список параметров

view

A Yaf_View_Interface instance

Возвращаемые значения

Примеры

Пример #1 A custom View engine()example

<?php
require "/path/to/smarty/Smarty.class.php";

class Smarty_Adapter implements Yaf_View_Interface
{
    /**
     * Smarty object
     * @var Smarty
     */
    public $_smarty;

    /**
     * Constructor
     *
     * @param string $tmplPath
     * @param array $extraParams
     * @return void
     */
    public function __construct($tmplPath = null, $extraParams = array()) {
        $this->_smarty = new Smarty;

        if (null !== $tmplPath) {
            $this->setScriptPath($tmplPath);
        }

        foreach ($extraParams as $key => $value) {
            $this->_smarty->$key = $value;
        }
    }

    /**
     * Set the path to the templates
     *
     * @param string $path The directory to set as the path.
     * @return void
     */
    public function setScriptPath($path)
    {
        if (is_readable($path)) {
            $this->_smarty->template_dir = $path;
            return;
        }

        throw new Exception('Invalid path provided');
    }

    /**
     * Assign a variable to the template
     *
     * @param string $key The variable name.
     * @param mixed $val The variable value.
     * @return void
     */
    public function __set($key, $val)
    {
        $this->_smarty->assign($key, $val);
    }

    /**
     * Allows testing with empty() and isset() to work
     *
     * @param string $key
     * @return boolean
     */
    public function __isset($key)
    {
        return (null !== $this->_smarty->get_template_vars($key));
    }

    /**
     * Allows unset() on object properties to work
     *
     * @param string $key
     * @return void
     */
    public function __unset($key)
    {
        $this->_smarty->clear_assign($key);
    }

    /**
     * Assign variables to the template
     *
     * Allows setting a specific key to the specified value, OR passing
     * an array of key => value pairs to set en masse.
     *
     * @see __set()
     * @param string|array $spec The assignment strategy to use (key or
     * array of key => value pairs)
     * @param mixed $value (Optional) If assigning a named variable,
     * use this as the value.
     * @return void
     */
    public function assign($spec, $value = null) {
        if (is_array($spec)) {
            $this->_smarty->assign($spec);
            return;
        }

        $this->_smarty->assign($spec, $value);
    }

    /**
     * Clear all assigned variables
     *
     * Clears all variables assigned to Yaf_View either via
     * {@link assign()} or property overloading
     * ({@link __get()}/{@link __set()}).
     *
     * @return void
     */
    public function clearVars() {
        $this->_smarty->clear_all_assign();
    }

    /**
     * Processes a template and returns the output.
     *
     * @param string $name The template to process.
     * @return string The output.
     */
    public function render($name, $value = NULL) {
        return $this->_smarty->fetch($name);
    }

    public function display($name, $value = NULL) {
        echo $this->_smarty->fetch($name);
    }

}
?>

Пример #2 Yaf_Dispatcher::setView()example

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract {

    /**
     * there are some config for smarty in the config:
     *
     * smarty.left_delimiter   = "{{"
     * smarty.right_delimiter  = "}}"
     * smarty.template_dir     = APPLICATION_PATH "/views/scripts/"
     * smarty.compile_dir      = APPLICATION_PATH "/views/templates_c/"
     * smarty.cache_dir        = APPLICATION_PATH "/views/templates_d/"
     *
     */
    public function _initConfig() {
        $config = Yaf_Application::app()->getConfig();
        Yaf_Registry::set("config", $config);
    }

    public function _initLocalName() {
        /** we put class Smarty_Adapter under the local library directory */
        Yaf_Loader::getInstance()->registerLocalNamespace('Smarty');
    }

    public function _initSmarty(Yaf_Dispatcher $dispatcher) {
        $smarty = new Smarty_Adapter(null, Yaf_Registry::get("config")->get("smarty"));
        $dispatcher->setView($smarty);
        /* now the Smarty view engine become the default view engine of Yaf */
    }
}
?>

Смотрите также

  • Yaf_View_Interface
  • Yaf_View_Simple


Yaf_Dispatcher can not be serialized

  • « Yaf_Dispatcher::setView
  • Yaf_Dispatcher::throwException »
  • PHP Manual
  • Yaf_Dispatcher
  • Yaf_Dispatcher can not be serialized

Yaf_Dispatcher::__sleep

(Yaf >=1.0.0)

Yaf_Dispatcher::__sleep — Yaf_Dispatcher can not be serialized

Описание

private Yaf_Dispatcher::__sleep ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Switch on/off exception throwing

  • « Yaf_Dispatcher::__sleep
  • Yaf_Dispatcher::__wakeup »
  • PHP Manual
  • Yaf_Dispatcher
  • Switch on/off exception throwing

Yaf_Dispatcher::throwException

(Yaf >=1.0.0)

Yaf_Dispatcher::throwException — Switch on/off exception throwing

Описание

public Yaf_Dispatcher::throwException ([ bool $flag ] ) : Yaf_Dispatcher

Siwtch on/off exception throwing while unexpected error occurring. When this is on, Yaf will throwing exceptions instead of triggering catchable errors.

You can also use application.dispatcher.throwException to achieve the same purpose.

Список параметров

flag

bool

Возвращаемые значения

Примеры

Пример #1 Yaf_Dispatcher::throwexception()example

<?php

$config = array(
    'application' => array(
        'directory' => dirname(__FILE__),
    ),
);
$app = new Yaf_Application($config);

$app->getDispatcher()->throwException(true);

try {
    $app->run();
} catch (Yaf_Exception $e) {
    var_dump($e->getMessage());
}
?>

Результатом выполнения данного примера будет что-то подобное:

string(59) "Could not find controller script /tmp/controllers/Index.php"

Пример #2 Yaf_Dispatcher::throwexception()example

<?php

$config = array(
    'application' => array(
        'directory' => dirname(__FILE__),
    ),
);
$app = new Yaf_Application($config);

$app->getDispatcher()->throwException(false);

$app->run();
?>

Результатом выполнения данного примера будет что-то подобное:

PHP Catchable fatal error:  Yaf_Application::run(): Could not find controller script /tmp/controllers/Index.php in /tmp/1.php on line 12

Смотрите также

  • Yaf_Dispatcher::catchException() - Switch on/off exception catching
  • Yaf_Exception


Yaf_Dispatcher can not be unserialized

  • « Yaf_Dispatcher::throwException
  • Yaf_Config_Abstract »
  • PHP Manual
  • Yaf_Dispatcher
  • Yaf_Dispatcher can not be unserialized

Yaf_Dispatcher::__wakeup

(Yaf >=1.0.0)

Yaf_Dispatcher::__wakeup — Yaf_Dispatcher can not be unserialized

Описание

private Yaf_Dispatcher::__wakeup ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Yaf_Config_Abstract

(Yaf >=1.0.0)

Введение

Обзор классов

abstract Yaf_Config_Abstract {
/* Свойства */
protected $_config ;
protected $_readonly ;
/* Методы */
abstract public get ( string $name , mixed $value ) : mixed
abstract public readonly ( void ) : bool
abstract public set ( void ) : Yaf_Config_Abstract
abstract public toArray ( void ) : array
}

Свойства

_config

_readonly

Содержание

  • Yaf_Config_Abstract::get — Getter
  • Yaf_Config_Abstract::readonly — Find a config whether readonly
  • Yaf_Config_Abstract::set — Setter
  • Yaf_Config_Abstract::toArray — Cast to array


Getter

  • « Yaf_Config_Abstract
  • Yaf_Config_Abstract::readonly »
  • PHP Manual
  • Yaf_Config_Abstract
  • Getter

Yaf_Config_Abstract::get

(Yaf >=1.0.0)

Yaf_Config_Abstract::get — Getter

Описание

abstract public Yaf_Config_Abstract::get ( string $name , mixed $value ) : mixed

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Find a config whether readonly

  • « Yaf_Config_Abstract::get
  • Yaf_Config_Abstract::set »
  • PHP Manual
  • Yaf_Config_Abstract
  • Find a config whether readonly

Yaf_Config_Abstract::readonly

(Yaf >=1.0.0)

Yaf_Config_Abstract::readonly — Find a config whether readonly

Описание

abstract public Yaf_Config_Abstract::readonly ( void ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Setter

  • « Yaf_Config_Abstract::readonly
  • Yaf_Config_Abstract::toArray »
  • PHP Manual
  • Yaf_Config_Abstract
  • Setter

Yaf_Config_Abstract::set

(Yaf >=1.0.0)

Yaf_Config_Abstract::set — Setter

Описание

abstract public Yaf_Config_Abstract::set ( void ) : Yaf_Config_Abstract

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Cast to array

  • « Yaf_Config_Abstract::set
  • Yaf_Config_Ini »
  • PHP Manual
  • Yaf_Config_Abstract
  • Cast to array

Yaf_Config_Abstract::toArray

(Yaf >=1.0.0)

Yaf_Config_Abstract::toArray — Cast to array

Описание

abstract public Yaf_Config_Abstract::toArray ( void ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Yaf_Config_Ini

(Yaf >=1.0.0)

Введение

Yaf_Config_Ini позволяет разработчикам хранить конфигурационные данные в известном INI формате и читать их в приложении с использованием синтаксиса вложенных свойств объекта. INI формат специализируется на обеспечении возможности иметь иерархию ключей конфигурационных данных и наследовании между разделами конфигурационных данных. Иерархия конфигурационных данных поддерживается путем разделения ключей с точкой ("."). Разделы можно расширять или наследовать от других разделов путем проставления после имени раздела двоеточия (":") и названия раздела от которого данные унаследованы.

Замечание:

Yaf_Config_Ini использует функцию parse_ini_file(). Пожалуйста изучите документацию для понимания ее поведения, которое наследует Yaf_Config_Ini, такого как обработка специальных значений "TRUE", "FALSE", "yes", "no", и "NULL".

Обзор классов

Yaf_Config_Ini extends Yaf_Config_Abstract implements Iterator , ArrayAccess , Countable {
/* Свойства */
/* Методы */
public __construct ( string $config_file [, string $section ] )
public count ( void ) : void
public current ( void ) : void
public __get ([ string $name ] ) : void
public __isset ( string $name ) : void
public key ( void ) : void
public next ( void ) : void
public offsetExists ( string $name ) : void
public offsetGet ( string $name ) : void
public offsetSet ( string $name , string $value ) : void
public offsetUnset ( string $name ) : void
public readonly ( void ) : void
public rewind ( void ) : void
public __set ( string $name , mixed $value ) : void
public toArray ( void ) : array
public valid ( void ) : void
/* Наследуемые методы */
abstract public Yaf_Config_Abstract::get ( string $name , mixed $value ) : mixed
abstract public Yaf_Config_Abstract::readonly ( void ) : bool
abstract public Yaf_Config_Abstract::set ( void ) : Yaf_Config_Abstract
abstract public Yaf_Config_Abstract::toArray ( void ) : array
}

Свойства

_config

_readonly

Примеры

Пример #1 Yaf_Config_Ini()example

Этот пример раскрывает базовые особенности использования Yaf_Config_Ini при загрузке данных из INI-файла. В этом примере задается конфигурация для промышленной и демонстрационной среды. Так как конфигурация демо-среды очень похожа на конфигурацию промышленной, то она наследует от нее. Но вы в своих приложениях вольны поступать как хотите. В общем, вот такая конфигурация задана в /path/to/config.ini:

; Промышленная среда
[production]
webhost                  = www.example.com
database.adapter         = pdo_mysql
database.params.host     = db.example.com
database.params.username = dbuser
database.params.password = secret
database.params.dbname   = dbname

; Демо-среда. Наследует конфигурацию промышленной с некоторыми поправками
[staging : production]
database.params.host     = dev.example.com
database.params.username = devuser
database.params.password = devsecret
<?php
$config = new Yaf_Config_Ini('/path/to/config.ini', 'staging');

var_dump($config->database->params->host);
var_dump($config->database->params->dbname);
var_dump($config->get("database.params.username"));
?>

Результатом выполнения данного примера будет что-то подобное:

string(15) "dev.example.com"
string(6) "dbname"
string(7) "devuser

Содержание

  • Yaf_Config_Ini::__construct — Yaf_Config_Ini constructor
  • Yaf_Config_Ini::count — Count all elements in Yaf_Config.ini
  • Yaf_Config_Ini::current — Retrieve the current value
  • Yaf_Config_Ini::__get — Retrieve a element
  • Yaf_Config_Ini::__isset — Determine if a key is exists
  • Yaf_Config_Ini::key — Fetch current element's key
  • Yaf_Config_Ini::next — Advance the internal pointer
  • Yaf_Config_Ini::offsetExists — The offsetExists purpose
  • Yaf_Config_Ini::offsetGet — The offsetGet purpose
  • Yaf_Config_Ini::offsetSet — The offsetSet purpose
  • Yaf_Config_Ini::offsetUnset — The offsetUnset purpose
  • Yaf_Config_Ini::readonly — The readonly purpose
  • Yaf_Config_Ini::rewind — The rewind purpose
  • Yaf_Config_Ini::__set — The __set purpose
  • Yaf_Config_Ini::toArray — Return config as a PHP array
  • Yaf_Config_Ini::valid — The valid purpose


Yaf_Config_Ini constructor

  • « Yaf_Config_Ini
  • Yaf_Config_Ini::count »
  • PHP Manual
  • Yaf_Config_Ini
  • Yaf_Config_Ini constructor

Yaf_Config_Ini::__construct

(Yaf >=1.0.0)

Yaf_Config_Ini::__construct — Yaf_Config_Ini constructor

Описание

public Yaf_Config_Ini::__construct ( string $config_file [, string $section ] )

Yaf_Config_Ini constructor

Список параметров

config_file

path to an INI configure file

section

which section in that INI file you want to be parsed

Возвращаемые значения


Count all elements in Yaf_Config.ini

  • « Yaf_Config_Ini::__construct
  • Yaf_Config_Ini::current »
  • PHP Manual
  • Yaf_Config_Ini
  • Count all elements in Yaf_Config.ini

Yaf_Config_Ini::count

(Yaf >=1.0.0)

Yaf_Config_Ini::count — Count all elements in Yaf_Config.ini

Описание

public Yaf_Config_Ini::count ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieve the current value

  • « Yaf_Config_Ini::count
  • Yaf_Config_Ini::__get »
  • PHP Manual
  • Yaf_Config_Ini
  • Retrieve the current value

Yaf_Config_Ini::current

(Yaf >=1.0.0)

Yaf_Config_Ini::current — Retrieve the current value

Описание

public Yaf_Config_Ini::current ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieve a element

  • « Yaf_Config_Ini::current
  • Yaf_Config_Ini::__isset »
  • PHP Manual
  • Yaf_Config_Ini
  • Retrieve a element

Yaf_Config_Ini::__get

(Yaf >=1.0.0)

Yaf_Config_Ini::__get — Retrieve a element

Описание

public Yaf_Config_Ini::__get ([ string $name ] ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Determine if a key is exists

  • « Yaf_Config_Ini::__get
  • Yaf_Config_Ini::key »
  • PHP Manual
  • Yaf_Config_Ini
  • Determine if a key is exists

Yaf_Config_Ini::__isset

(Yaf >=1.0.0)

Yaf_Config_Ini::__isset — Determine if a key is exists

Описание

public Yaf_Config_Ini::__isset ( string $name ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Fetch current element's key

  • « Yaf_Config_Ini::__isset
  • Yaf_Config_Ini::next »
  • PHP Manual
  • Yaf_Config_Ini
  • Fetch current element's key

Yaf_Config_Ini::key

(Yaf >=1.0.0)

Yaf_Config_Ini::key — Fetch current element's key

Описание

public Yaf_Config_Ini::key ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Advance the internal pointer

  • « Yaf_Config_Ini::key
  • Yaf_Config_Ini::offsetExists »
  • PHP Manual
  • Yaf_Config_Ini
  • Advance the internal pointer

Yaf_Config_Ini::next

(Yaf >=1.0.0)

Yaf_Config_Ini::next — Advance the internal pointer

Описание

public Yaf_Config_Ini::next ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The offsetExists purpose

  • « Yaf_Config_Ini::next
  • Yaf_Config_Ini::offsetGet »
  • PHP Manual
  • Yaf_Config_Ini
  • The offsetExists purpose

Yaf_Config_Ini::offsetExists

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetExists — The offsetExists purpose

Описание

public Yaf_Config_Ini::offsetExists ( string $name ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The offsetGet purpose

  • « Yaf_Config_Ini::offsetExists
  • Yaf_Config_Ini::offsetSet »
  • PHP Manual
  • Yaf_Config_Ini
  • The offsetGet purpose

Yaf_Config_Ini::offsetGet

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetGet — The offsetGet purpose

Описание

public Yaf_Config_Ini::offsetGet ( string $name ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The offsetSet purpose

  • « Yaf_Config_Ini::offsetGet
  • Yaf_Config_Ini::offsetUnset »
  • PHP Manual
  • Yaf_Config_Ini
  • The offsetSet purpose

Yaf_Config_Ini::offsetSet

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetSet — The offsetSet purpose

Описание

public Yaf_Config_Ini::offsetSet ( string $name , string $value ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


The offsetUnset purpose

  • « Yaf_Config_Ini::offsetSet
  • Yaf_Config_Ini::readonly »
  • PHP Manual
  • Yaf_Config_Ini
  • The offsetUnset purpose

Yaf_Config_Ini::offsetUnset

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetUnset — The offsetUnset purpose

Описание

public Yaf_Config_Ini::offsetUnset ( string $name ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The readonly purpose

  • « Yaf_Config_Ini::offsetUnset
  • Yaf_Config_Ini::rewind »
  • PHP Manual
  • Yaf_Config_Ini
  • The readonly purpose

Yaf_Config_Ini::readonly

(Yaf >=1.0.0)

Yaf_Config_Ini::readonly — The readonly purpose

Описание

public Yaf_Config_Ini::readonly ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The rewind purpose

  • « Yaf_Config_Ini::readonly
  • Yaf_Config_Ini::__set »
  • PHP Manual
  • Yaf_Config_Ini
  • The rewind purpose

Yaf_Config_Ini::rewind

(Yaf >=1.0.0)

Yaf_Config_Ini::rewind — The rewind purpose

Описание

public Yaf_Config_Ini::rewind ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __set purpose

  • « Yaf_Config_Ini::rewind
  • Yaf_Config_Ini::toArray »
  • PHP Manual
  • Yaf_Config_Ini
  • The __set purpose

Yaf_Config_Ini::__set

(Yaf >=1.0.0)

Yaf_Config_Ini::__set — The __set purpose

Описание

public Yaf_Config_Ini::__set ( string $name , mixed $value ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


Return config as a PHP array

  • « Yaf_Config_Ini::__set
  • Yaf_Config_Ini::valid »
  • PHP Manual
  • Yaf_Config_Ini
  • Return config as a PHP array

Yaf_Config_Ini::toArray

(Yaf >=1.0.0)

Yaf_Config_Ini::toArray — Return config as a PHP array

Описание

public Yaf_Config_Ini::toArray ( void ) : array

Returns a PHP array from the Yaf_Config_Ini

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The valid purpose

  • « Yaf_Config_Ini::toArray
  • Yaf_Config_Simple »
  • PHP Manual
  • Yaf_Config_Ini
  • The valid purpose

Yaf_Config_Ini::valid

(Yaf >=1.0.0)

Yaf_Config_Ini::valid — The valid purpose

Описание

public Yaf_Config_Ini::valid ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Yaf_Config_Simple

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Config_Simple extends Yaf_Config_Abstract implements Iterator , ArrayAccess , Countable {
/* Свойства */
protected $_readonly ;
/* Методы */
public __construct ( string $config_file [, string $section ] )
public count ( void ) : void
public current ( void ) : void
public __get ([ string $name ] ) : void
public __isset ( string $name ) : void
public key ( void ) : void
public next ( void ) : void
public offsetExists ( string $name ) : void
public offsetGet ( string $name ) : void
public offsetSet ( string $name , string $value ) : void
public offsetUnset ( string $name ) : void
public readonly ( void ) : void
public rewind ( void ) : void
public __set ( string $name , string $value ) : void
public toArray ( void ) : array
public valid ( void ) : void
/* Наследуемые методы */
abstract public Yaf_Config_Abstract::get ( string $name , mixed $value ) : mixed
abstract public Yaf_Config_Abstract::readonly ( void ) : bool
abstract public Yaf_Config_Abstract::set ( void ) : Yaf_Config_Abstract
abstract public Yaf_Config_Abstract::toArray ( void ) : array
}

Свойства

_config

_readonly

Содержание

  • Yaf_Config_Simple::__construct — The __construct purpose
  • Yaf_Config_Simple::count — The count purpose
  • Yaf_Config_Simple::current — The current purpose
  • Yaf_Config_Simple::__get — The __get purpose
  • Yaf_Config_Simple::__isset — The __isset purpose
  • Yaf_Config_Simple::key — The key purpose
  • Yaf_Config_Simple::next — The next purpose
  • Yaf_Config_Simple::offsetExists — The offsetExists purpose
  • Yaf_Config_Simple::offsetGet — The offsetGet purpose
  • Yaf_Config_Simple::offsetSet — The offsetSet purpose
  • Yaf_Config_Simple::offsetUnset — The offsetUnset purpose
  • Yaf_Config_Simple::readonly — The readonly purpose
  • Yaf_Config_Simple::rewind — The rewind purpose
  • Yaf_Config_Simple::__set — The __set purpose
  • Yaf_Config_Simple::toArray — Returns a PHP array
  • Yaf_Config_Simple::valid — The valid purpose


The __construct purpose

  • « Yaf_Config_Simple
  • Yaf_Config_Simple::count »
  • PHP Manual
  • Yaf_Config_Simple
  • The __construct purpose

Yaf_Config_Simple::__construct

(Yaf >=1.0.0)

Yaf_Config_Simple::__construct — The __construct purpose

Описание

public Yaf_Config_Simple::__construct ( string $config_file [, string $section ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

config_file

section

Возвращаемые значения


The count purpose

  • « Yaf_Config_Simple::__construct
  • Yaf_Config_Simple::current »
  • PHP Manual
  • Yaf_Config_Simple
  • The count purpose

Yaf_Config_Simple::count

(Yaf >=1.0.0)

Yaf_Config_Simple::count — The count purpose

Описание

public Yaf_Config_Simple::count ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The current purpose

  • « Yaf_Config_Simple::count
  • Yaf_Config_Simple::__get »
  • PHP Manual
  • Yaf_Config_Simple
  • The current purpose

Yaf_Config_Simple::current

(Yaf >=1.0.0)

Yaf_Config_Simple::current — The current purpose

Описание

public Yaf_Config_Simple::current ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __get purpose

  • « Yaf_Config_Simple::current
  • Yaf_Config_Simple::__isset »
  • PHP Manual
  • Yaf_Config_Simple
  • The __get purpose

Yaf_Config_Simple::__get

(Yaf >=1.0.0)

Yaf_Config_Simple::__get — The __get purpose

Описание

public Yaf_Config_Simple::__get ([ string $name ] ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The __isset purpose

  • « Yaf_Config_Simple::__get
  • Yaf_Config_Simple::key »
  • PHP Manual
  • Yaf_Config_Simple
  • The __isset purpose

Yaf_Config_Simple::__isset

(Yaf >=1.0.0)

Yaf_Config_Simple::__isset — The __isset purpose

Описание

public Yaf_Config_Simple::__isset ( string $name ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The key purpose

  • « Yaf_Config_Simple::__isset
  • Yaf_Config_Simple::next »
  • PHP Manual
  • Yaf_Config_Simple
  • The key purpose

Yaf_Config_Simple::key

(Yaf >=1.0.0)

Yaf_Config_Simple::key — The key purpose

Описание

public Yaf_Config_Simple::key ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The next purpose

  • « Yaf_Config_Simple::key
  • Yaf_Config_Simple::offsetExists »
  • PHP Manual
  • Yaf_Config_Simple
  • The next purpose

Yaf_Config_Simple::next

(Yaf >=1.0.0)

Yaf_Config_Simple::next — The next purpose

Описание

public Yaf_Config_Simple::next ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The offsetExists purpose

  • « Yaf_Config_Simple::next
  • Yaf_Config_Simple::offsetGet »
  • PHP Manual
  • Yaf_Config_Simple
  • The offsetExists purpose

Yaf_Config_Simple::offsetExists

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetExists — The offsetExists purpose

Описание

public Yaf_Config_Simple::offsetExists ( string $name ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The offsetGet purpose

  • « Yaf_Config_Simple::offsetExists
  • Yaf_Config_Simple::offsetSet »
  • PHP Manual
  • Yaf_Config_Simple
  • The offsetGet purpose

Yaf_Config_Simple::offsetGet

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetGet — The offsetGet purpose

Описание

public Yaf_Config_Simple::offsetGet ( string $name ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The offsetSet purpose

  • « Yaf_Config_Simple::offsetGet
  • Yaf_Config_Simple::offsetUnset »
  • PHP Manual
  • Yaf_Config_Simple
  • The offsetSet purpose

Yaf_Config_Simple::offsetSet

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetSet — The offsetSet purpose

Описание

public Yaf_Config_Simple::offsetSet ( string $name , string $value ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


The offsetUnset purpose

  • « Yaf_Config_Simple::offsetSet
  • Yaf_Config_Simple::readonly »
  • PHP Manual
  • Yaf_Config_Simple
  • The offsetUnset purpose

Yaf_Config_Simple::offsetUnset

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetUnset — The offsetUnset purpose

Описание

public Yaf_Config_Simple::offsetUnset ( string $name ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The readonly purpose

  • « Yaf_Config_Simple::offsetUnset
  • Yaf_Config_Simple::rewind »
  • PHP Manual
  • Yaf_Config_Simple
  • The readonly purpose

Yaf_Config_Simple::readonly

(Yaf >=1.0.0)

Yaf_Config_Simple::readonly — The readonly purpose

Описание

public Yaf_Config_Simple::readonly ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The rewind purpose

  • « Yaf_Config_Simple::readonly
  • Yaf_Config_Simple::__set »
  • PHP Manual
  • Yaf_Config_Simple
  • The rewind purpose

Yaf_Config_Simple::rewind

(Yaf >=1.0.0)

Yaf_Config_Simple::rewind — The rewind purpose

Описание

public Yaf_Config_Simple::rewind ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __set purpose

  • « Yaf_Config_Simple::rewind
  • Yaf_Config_Simple::toArray »
  • PHP Manual
  • Yaf_Config_Simple
  • The __set purpose

Yaf_Config_Simple::__set

(Yaf >=1.0.0)

Yaf_Config_Simple::__set — The __set purpose

Описание

public Yaf_Config_Simple::__set ( string $name , string $value ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


Returns a PHP array

  • « Yaf_Config_Simple::__set
  • Yaf_Config_Simple::valid »
  • PHP Manual
  • Yaf_Config_Simple
  • Returns a PHP array

Yaf_Config_Simple::toArray

(Yaf >=1.0.0)

Yaf_Config_Simple::toArray — Returns a PHP array

Описание

public Yaf_Config_Simple::toArray ( void ) : array

Returns a PHP array from the Yaf_Config_Simple

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The valid purpose

  • « Yaf_Config_Simple::toArray
  • Yaf_Controller_Abstract »
  • PHP Manual
  • Yaf_Config_Simple
  • The valid purpose

Yaf_Config_Simple::valid

(Yaf >=1.0.0)

Yaf_Config_Simple::valid — The valid purpose

Описание

public Yaf_Config_Simple::valid ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The Yaf_Controller_Abstract class

(Yaf >=1.0.0)

Введение

Yaf_Controller_Abstract is the heart of Yaf's system. MVC stands for Model-View-Controller and is a design pattern targeted at separating application logic from display logic.

Every custom controller shall inherit Yaf_Controller_Abstract.

You will find that you can not define __construct function for your custom controller, thus, Yaf_Controller_Abstract provides a magic method: Yaf_Controller_Abstract::init().

If you have defined a init() method in your custom controller, it will be called as long as the controller was instantiated.

Action may have arguments, when a request coming, if there are the same name variable in the request parameters(see Yaf_Request_Abstract::getParam()) after routed, Yaf will pass them to the action method (see Yaf_Action_Abstract::execute()).

Замечание:

These arguments are directly fetched without filtering, it should be carefully processed before use them.

Обзор классов

abstract Yaf_Controller_Abstract {
/* Свойства */
public $actions ;
protected $_module ;
protected $_name ;
protected $_request ;
protected $_response ;
protected $_invoke_args ;
protected $_view ;
/* Методы */
final private __clone ( void ) : void
final private __construct ( void )
protected display ( string $tpl [, array $parameters ] ) : bool
public forward ( string $action [, array $paramters ] ) : void
public getInvokeArg ( string $name ) : void
public getInvokeArgs ( void ) : void
public getModuleName ( void ) : string
public getRequest ( void ) : Yaf_Request_Abstract
public getResponse ( void ) : Yaf_Response_Abstract
public getView ( void ) : Yaf_View_Interface
public getViewpath ( void ) : string
public init ( void ) : void
public initView ([ array $options ] ) : void
public redirect ( string $url ) : bool
protected render ( string $tpl [, array $parameters ] ) : string
public setViewpath ( string $view_directory ) : void
}

Свойства

actions

You can also define a action method in a separate PHP script by using this property and Yaf_Action_Abstract.

Пример #1 define action in a separate file

<?php
class IndexController extends Yaf_Controller_Abstract {
    protected $actions = array(
        /** now dummyAction is defined in a separate file */
        "dummy" => "actions/Dummy_action.php",
    );

    /* action method may have arguments */
    public indexAction($name, $id) {
       /* $name and $id are unsafe raw data */
       assert($name == $this->getRequest()->getParam("name"));
       assert($id   == $this->_request->getParam("id"));
    }
}
?>

Пример #2 Dummy_action.php

<?php
class DummyAction extends Yaf_Action_Abstract {
    /* a action class shall define this method  as the entry point */
    public execute() {
    }
}
?>

_module

module name

_name

controller name

_request

current request object

_response

current response object

_invoke_args

_view

view engine object

Содержание

  • Yaf_Controller_Abstract::__clone — Yaf_Controller_Abstract can not be cloned
  • Yaf_Controller_Abstract::__construct — Yaf_Controller_Abstract constructor
  • Yaf_Controller_Abstract::display — The display purpose
  • Yaf_Controller_Abstract::forward — Foward to another action
  • Yaf_Controller_Abstract::getInvokeArg — The getInvokeArg purpose
  • Yaf_Controller_Abstract::getInvokeArgs — The getInvokeArgs purpose
  • Yaf_Controller_Abstract::getModuleName — Get module name
  • Yaf_Controller_Abstract::getRequest — Retrieve current request object
  • Yaf_Controller_Abstract::getResponse — Retrieve current response object
  • Yaf_Controller_Abstract::getView — Retrieve the view engine
  • Yaf_Controller_Abstract::getViewpath — The getViewpath purpose
  • Yaf_Controller_Abstract::init — Controller initializer
  • Yaf_Controller_Abstract::initView — The initView purpose
  • Yaf_Controller_Abstract::redirect — Redirect to a URL
  • Yaf_Controller_Abstract::render — Render view template
  • Yaf_Controller_Abstract::setViewpath — The setViewpath purpose


Yaf_Controller_Abstract can not be cloned

  • « Yaf_Controller_Abstract
  • Yaf_Controller_Abstract::__construct »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Yaf_Controller_Abstract can not be cloned

Yaf_Controller_Abstract::__clone

(Yaf >=1.0.0)

Yaf_Controller_Abstract::__clone — Yaf_Controller_Abstract can not be cloned

Описание

final private Yaf_Controller_Abstract::__clone ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Yaf_Controller_Abstract constructor

  • « Yaf_Controller_Abstract::__clone
  • Yaf_Controller_Abstract::display »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Yaf_Controller_Abstract constructor

Yaf_Controller_Abstract::__construct

(Yaf >=1.0.0)

Yaf_Controller_Abstract::__construct — Yaf_Controller_Abstract constructor

Описание

final private Yaf_Controller_Abstract::__construct ( void )

Yaf_Controller_Abstract::__construct() is final, which means it can not be overridden. You may want to see Yaf_Controller_Abstract::init() instead.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Controller_Abstract::init() - Controller initializer


The display purpose

  • « Yaf_Controller_Abstract::__construct
  • Yaf_Controller_Abstract::forward »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The display purpose

Yaf_Controller_Abstract::display

(Yaf >=1.0.0)

Yaf_Controller_Abstract::display — The display purpose

Описание

protected Yaf_Controller_Abstract::display ( string $tpl [, array $parameters ] ) : bool

Список параметров

tpl

parameters

Возвращаемые значения


Foward to another action

  • « Yaf_Controller_Abstract::display
  • Yaf_Controller_Abstract::getInvokeArg »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Foward to another action

Yaf_Controller_Abstract::forward

(Yaf >=1.0.0)

Yaf_Controller_Abstract::forward — Foward to another action

Описание

public Yaf_Controller_Abstract::forward ( string $action [, array $paramters ] ) : void
public Yaf_Controller_Abstract::forward ( string $controller , string $action [, array $paramters ] ) : void
public Yaf_Controller_Abstract::forward ( string $module , string $controller , string $action [, array $paramters ] ) : void

forward current execution process to other action.

Замечание:

this method doesn't switch to the destination action immediately, it will take place after current flow finish.

Список параметров

module

destination module name, if NULL was given, then default module name is assumed

controller

destination controller name

action

destination action name

paramters

calling arguments

Примеры

Пример #1 Yaf_Controller_Abstract::forward()example

<?php
class IndexController extends Yaf_Controller_Abstract
{
    public function indexAction(){
         $logined = $_SESSION["login"];
         if (!$logined) {
             $this->forward("login", array("from" => "Index")); // forward to login action
             return FALSE;  // this is important, this finish current working flow
                            // and tell the Yaf do not doing auto-render
         }

         // other processes
    }

    public function loginAction() {
         echo "login, redirected from ", $this->_request->getParam("from") , " action";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

   login, redirected from Index action

Возвращаемые значения

return FALSE on failure

Смотрите также

  • Yaf_Request_Abstrace::getParam()


The getInvokeArg purpose

  • « Yaf_Controller_Abstract::forward
  • Yaf_Controller_Abstract::getInvokeArgs »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The getInvokeArg purpose

Yaf_Controller_Abstract::getInvokeArg

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getInvokeArg — The getInvokeArg purpose

Описание

public Yaf_Controller_Abstract::getInvokeArg ( string $name ) : void

Список параметров

name

Возвращаемые значения


The getInvokeArgs purpose

  • « Yaf_Controller_Abstract::getInvokeArg
  • Yaf_Controller_Abstract::getModuleName »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The getInvokeArgs purpose

Yaf_Controller_Abstract::getInvokeArgs

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getInvokeArgs — The getInvokeArgs purpose

Описание

public Yaf_Controller_Abstract::getInvokeArgs ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get module name

  • « Yaf_Controller_Abstract::getInvokeArgs
  • Yaf_Controller_Abstract::getRequest »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Get module name

Yaf_Controller_Abstract::getModuleName

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getModuleName — Get module name

Описание

public Yaf_Controller_Abstract::getModuleName ( void ) : string

get the controller's module name

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieve current request object

  • « Yaf_Controller_Abstract::getModuleName
  • Yaf_Controller_Abstract::getResponse »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Retrieve current request object

Yaf_Controller_Abstract::getRequest

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getRequest — Retrieve current request object

Описание

public Yaf_Controller_Abstract::getRequest ( void ) : Yaf_Request_Abstract

retrieve current request object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Yaf_Request_Abstract instance


Retrieve current response object

  • « Yaf_Controller_Abstract::getRequest
  • Yaf_Controller_Abstract::getView »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Retrieve current response object

Yaf_Controller_Abstract::getResponse

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getResponse — Retrieve current response object

Описание

public Yaf_Controller_Abstract::getResponse ( void ) : Yaf_Response_Abstract

retrieve current response object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Yaf_Response_Abstract instance


Retrieve the view engine

  • « Yaf_Controller_Abstract::getResponse
  • Yaf_Controller_Abstract::getViewpath »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Retrieve the view engine

Yaf_Controller_Abstract::getView

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getView — Retrieve the view engine

Описание

public Yaf_Controller_Abstract::getView ( void ) : Yaf_View_Interface

retrieve view engine

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getViewpath purpose

  • « Yaf_Controller_Abstract::getView
  • Yaf_Controller_Abstract::init »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The getViewpath purpose

Yaf_Controller_Abstract::getViewpath

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getViewpath — The getViewpath purpose

Описание

public Yaf_Controller_Abstract::getViewpath ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Controller initializer

  • « Yaf_Controller_Abstract::getViewpath
  • Yaf_Controller_Abstract::initView »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Controller initializer

Yaf_Controller_Abstract::init

(Yaf >=1.0.0)

Yaf_Controller_Abstract::init — Controller initializer

Описание

public Yaf_Controller_Abstract::init ( void ) : void

Yaf_Controller_Abstract::__construct() is final, which means users can not override it. but users can define Yaf_Controller_Abstract::init(), which will be called after controller object is instantiated.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Controller_Abstract::__construct() - Yaf_Controller_Abstract constructor


The initView purpose

  • « Yaf_Controller_Abstract::init
  • Yaf_Controller_Abstract::redirect »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The initView purpose

Yaf_Controller_Abstract::initView

(Yaf >=1.0.0)

Yaf_Controller_Abstract::initView — The initView purpose

Описание

public Yaf_Controller_Abstract::initView ([ array $options ] ) : void

Список параметров

options

Возвращаемые значения


Redirect to a URL

  • « Yaf_Controller_Abstract::initView
  • Yaf_Controller_Abstract::render »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Redirect to a URL

Yaf_Controller_Abstract::redirect

(Yaf >=1.0.0)

Yaf_Controller_Abstract::redirect — Redirect to a URL

Описание

public Yaf_Controller_Abstract::redirect ( string $url ) : bool

redirect to a URL by sending a 302 header

Список параметров

url

a location URL

Возвращаемые значения

bool


Render view template

  • « Yaf_Controller_Abstract::redirect
  • Yaf_Controller_Abstract::setViewpath »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Render view template

Yaf_Controller_Abstract::render

(Yaf >=1.0.0)

Yaf_Controller_Abstract::render — Render view template

Описание

protected Yaf_Controller_Abstract::render ( string $tpl [, array $parameters ] ) : string

Список параметров

tpl

parameters

Возвращаемые значения


The setViewpath purpose

  • « Yaf_Controller_Abstract::render
  • Yaf_Action_Abstract »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The setViewpath purpose

Yaf_Controller_Abstract::setViewpath

(Yaf >=1.0.0)

Yaf_Controller_Abstract::setViewpath — The setViewpath purpose

Описание

public Yaf_Controller_Abstract::setViewpath ( string $view_directory ) : void

Список параметров

view_directory

Возвращаемые значения


Класс Yaf_Action_Abstract

(Yaf >=1.0.0)

Введение

Действие должно определяться в отдельном файле в Yaf (смотрите Yaf_Controller_Abstract). Также, все классы действия должны расширять Yaf_Action_Abstract.

Так как необходима точка входа, которую смог бы использовать Yaf (с PHP 5.3, существует новый магический метод __invoke, но, так как Yaf работает не только с PHP 5.3+, в Yaf для этих целей используется метод execute), вы, в вашем класе, должны реализовать метод Yaf_Action_Abstract::execute().

Обзор классов

Yaf_Action_Abstract extends Yaf_Controller_Abstract {
/* Свойства */
protected $_controller ;
/* Методы */
abstract publicexecute ([ mixed $arg [, mixed $... ]] ) : mixed
publicgetController ( void ) : Yaf_Controller_Abstract
/* Наследуемые методы */
final private Yaf_Controller_Abstract::__clone ( void ) : void
final private Yaf_Controller_Abstract::__construct ( void )
protected Yaf_Controller_Abstract::display ( string $tpl [, array $parameters ] ) : bool
public Yaf_Controller_Abstract::forward ( string $action [, array $paramters ] ) : void
public Yaf_Controller_Abstract::getInvokeArg ( string $name ) : void
public Yaf_Controller_Abstract::getInvokeArgs ( void ) : void
public Yaf_Controller_Abstract::getModuleName ( void ) : string
public Yaf_Controller_Abstract::getRequest ( void ) : Yaf_Request_Abstract
public Yaf_Controller_Abstract::getResponse ( void ) : Yaf_Response_Abstract
public Yaf_Controller_Abstract::getView ( void ) : Yaf_View_Interface
public Yaf_Controller_Abstract::getViewpath ( void ) : string
public Yaf_Controller_Abstract::init ( void ) : void
public Yaf_Controller_Abstract::initView ([ array $options ] ) : void
public Yaf_Controller_Abstract::redirect ( string $url ) : bool
protected Yaf_Controller_Abstract::render ( string $tpl [, array $parameters ] ) : string
public Yaf_Controller_Abstract::setViewpath ( string $view_directory ) : void
}

Свойства

_module

_name

_request

_response

_invoke_args

_view

_controller

Содержание

  • Yaf_Action_Abstract::execute — Точка входа для Action-классов
  • Yaf_Action_Abstract::getController — Получить объект контроллер


Точка входа для Action-классов

  • « Yaf_Action_Abstract
  • Yaf_Action_Abstract::getController »
  • PHP Manual
  • Yaf_Action_Abstract
  • Точка входа для Action-классов

Yaf_Action_Abstract::execute

(Yaf >=1.0.0)

Yaf_Action_Abstract::execute — Точка входа для Action-классов

Описание

abstract publicYaf_Action_Abstract::execute ([ mixed $arg [, mixed $... ]] ) : mixed

Пользователь должен опредлелять этот метод для Action-классов, он является точкой входа в Action. Yaf_Action_Abstract::execute() может принимать аргументы.

Замечание:

Значение, извлекаемое из запроса не безопасно. Вы должны самостоятельно проверять его перед использованием.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Action_Abstract::execute()

<?php
/**
 * Пример контроллера
 */
class ProductController extends Yaf_Controller_Abstract {
      protected $actions = array(
          "index" => "actions/Index.php",
      );
}
?>

Пример #2 Пример использования Yaf_Action_Abstract::execute()

<?php
/**
 * ListAction
 */
class ListAction extends Yaf_Action_Abstract {
     public function execute ($name, $id) {
         assert($name == $this->getRequest()->getParam("name"));
         assert($id   == $this->getRequest()->getParam("id"));
     }
}
?>

Результатом выполнения данного примера будет что-то подобное:

/**
 * Now assuming we are using the Yaf_Route_Static route
 * for request: http://yourdomain/product/list/name/yaf/id/22
 * will result:
 */
 bool(true)
 bool(true)

Смотрите также


Получить объект контроллер

  • « Yaf_Action_Abstract::execute
  • Yaf_View_Interface »
  • PHP Manual
  • Yaf_Action_Abstract
  • Получить объект контроллер

Yaf_Action_Abstract::getController

(Yaf >=1.0.0)

Yaf_Action_Abstract::getController — Получить объект контроллер

Описание

publicYaf_Action_Abstract::getController ( void ) : Yaf_Controller_Abstract

Получить текущий объект контроллер.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса Yaf_Controller_Abstract


Класс Yaf_View_Interface

(Yaf >=1.0.0)

Введение

Yaf предоставляет разработчикам возможность использовать их собственный движок отображения, отличающийся от встроенного Yaf_View_Simple. Пример реализации смотрите в описании Yaf_Dispatcher::setView().

Обзор классов

Yaf_View_Interface {
/* Методы */
abstract public assign ( string $name [, string $value ] ) : bool
abstract public display ( string $tpl [, array $tpl_vars ] ) : bool
abstract public getScriptPath ( void ) : void
abstract public render ( string $tpl [, array $tpl_vars ] ) : string
abstract public setScriptPath ( string $template_dir ) : void
}

Содержание

  • Yaf_View_Interface::assign — Assign value to View engine
  • Yaf_View_Interface::display — Render and output a template
  • Yaf_View_Interface::getScriptPath — The getScriptPath purpose
  • Yaf_View_Interface::render — Render a template
  • Yaf_View_Interface::setScriptPath — The setScriptPath purpose


Assign value to View engine

  • « Yaf_View_Interface
  • Yaf_View_Interface::display »
  • PHP Manual
  • Yaf_View_Interface
  • Assign value to View engine

Yaf_View_Interface::assign

(Yaf >=1.0.0)

Yaf_View_Interface::assign — Assign value to View engine

Описание

abstract public Yaf_View_Interface::assign ( string $name [, string $value ] ) : bool

Assigan values to View engine, then the value can access directly by name in template.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


Render and output a template

  • « Yaf_View_Interface::assign
  • Yaf_View_Interface::getScriptPath »
  • PHP Manual
  • Yaf_View_Interface
  • Render and output a template

Yaf_View_Interface::display

(Yaf >=1.0.0)

Yaf_View_Interface::display — Render and output a template

Описание

abstract public Yaf_View_Interface::display ( string $tpl [, array $tpl_vars ] ) : bool

Render a template and output the result immediatly.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

tpl

tpl_vars

Возвращаемые значения


The getScriptPath purpose

  • « Yaf_View_Interface::display
  • Yaf_View_Interface::render »
  • PHP Manual
  • Yaf_View_Interface
  • The getScriptPath purpose

Yaf_View_Interface::getScriptPath

(Yaf >=1.0.0)

Yaf_View_Interface::getScriptPath — The getScriptPath purpose

Описание

abstract public Yaf_View_Interface::getScriptPath ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Render a template

  • « Yaf_View_Interface::getScriptPath
  • Yaf_View_Interface::setScriptPath »
  • PHP Manual
  • Yaf_View_Interface
  • Render a template

Yaf_View_Interface::render

(Yaf >=1.0.0)

Yaf_View_Interface::render — Render a template

Описание

abstract public Yaf_View_Interface::render ( string $tpl [, array $tpl_vars ] ) : string

Render a template and return the result.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

tpl

tpl_vars

Возвращаемые значения


The setScriptPath purpose

  • « Yaf_View_Interface::render
  • Yaf_View_Simple »
  • PHP Manual
  • Yaf_View_Interface
  • The setScriptPath purpose

Yaf_View_Interface::setScriptPath

(Yaf >=1.0.0)

Yaf_View_Interface::setScriptPath — The setScriptPath purpose

Описание

abstract public Yaf_View_Interface::setScriptPath ( string $template_dir ) : void

Set the templates base directory, this is usually called by Yaf_Dispatcher

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

template_dir

A absolute path to the template directory, by default, Yaf_Dispatcher use application.directory . "/views" as this paramter.

Возвращаемые значения


Класс Yaf_View_Simple

(Yaf >=1.0.0)

Введение

Yaf_View_Simple - это встроенный шаблонный движок Yaf. Он простой, но быстрый и поддерживает только шаблоны PHP скриптов.

Обзор классов

Yaf_View_Simple implements Yaf_View_Interface {
/* Свойства */
protected $_tpl_vars ;
protected $_tpl_dir ;
/* Методы */
public assign ( string $name [, mixed $value ] ) : bool
public assignRef ( string $name , mixed &$value ) : bool
public clear ([ string $name ] ) : bool
final public __construct ( string $template_dir [, array $options ] )
public display ( string $tpl [, array $tpl_vars ] ) : bool
public eval ( string $tpl_content [, array $tpl_vars ] ) : string
public __get ([ string $name ] ) : void
public getScriptPath ( void ) : string
public __isset ( string $name ) : void
public render ( string $tpl [, array $tpl_vars ] ) : string
public __set ( string $name , mixed $value ) : void
public setScriptPath ( string $template_dir ) : bool
}

Свойства

_tpl_vars

_tpl_dir

Содержание

  • Yaf_View_Simple::assign — Assign values
  • Yaf_View_Simple::assignRef — The assignRef purpose
  • Yaf_View_Simple::clear — Clear Assigned values
  • Yaf_View_Simple::__construct — Constructor of Yaf_View_Simple
  • Yaf_View_Simple::display — Render and display
  • Yaf_View_Simple::eval — Render template
  • Yaf_View_Simple::__get — Retrieve assigned variable
  • Yaf_View_Simple::getScriptPath — Get templates directory
  • Yaf_View_Simple::__isset — The __isset purpose
  • Yaf_View_Simple::render — Render template
  • Yaf_View_Simple::__set — Set value to engine
  • Yaf_View_Simple::setScriptPath — Set tempaltes directory


Assign values

  • « Yaf_View_Simple
  • Yaf_View_Simple::assignRef »
  • PHP Manual
  • Yaf_View_Simple
  • Assign values

Yaf_View_Simple::assign

(Yaf >=1.0.0)

Yaf_View_Simple::assign — Assign values

Описание

public Yaf_View_Simple::assign ( string $name [, mixed $value ] ) : bool

assign variable to view engine

Список параметров

name

A string or an array.

if is string, then the next argument $value is required.

value

mixed value

Возвращаемые значения

Примеры

Пример #1 Yaf_View_Simple::assign()example

<?php
class IndexController extends Yaf_Controller_Abstract {
    public function indexAction() {
        $this->getView()->assign("foo", "bar");
        $this->_view->assign( array( "key" => "value", "name" => "value"));
    }
?>

Пример #2 template()example

<html>
 <head>
  <title><?php echo $foo; ?></title>
 </head>
<body>
  <?php
    foreach ($this->_tpl_vars as $name => value) {
         echo $$name; // or echo $this->_tpl_vars[$name];
    }
  ?>
</body>
</html>

Смотрите также

  • Yaf_View_Simple::assignRef() - The assignRef purpose
  • Yaf_View_Interface::clear()
  • Yaf_View_Simple::__set() - Set value to engine


The assignRef purpose

  • « Yaf_View_Simple::assign
  • Yaf_View_Simple::clear »
  • PHP Manual
  • Yaf_View_Simple
  • The assignRef purpose

Yaf_View_Simple::assignRef

(Yaf >=1.0.0)

Yaf_View_Simple::assignRef — The assignRef purpose

Описание

public Yaf_View_Simple::assignRef ( string $name , mixed &$value ) : bool

unlike Yaf_View_Simple::assign(), this method assign a ref value to engine.

Список параметров

name

A string name which will be used to access the value in the tempalte.

value

mixed value

Возвращаемые значения

Примеры

Пример #1 Yaf_View_Simple::assignRef()example

<?php
class IndexController extends Yaf_Controller_Abstract {
    public function indexAction() {
        $value = "bar";
        $this->getView()->assign("foo", $value);

        /* plz note that there was a bug before Yaf 2.1.4,
         * which make following output "bar";
         */
        $dummy = $this->getView()->render("index/index.phtml");
        echo $value;

        //prevent the auto-render
        Yaf_Dispatcher::getInstance()->autoRender(FALSE);
    }
?>

Пример #2 template()example

<html>
 <head>
  <title><?php echo $foo;  $foo = "changed"; ?></title>
 </head>
<body>
</body>
</html>

Результатом выполнения данного примера будет что-то подобное:

/* access the index controller will result: */
changed

Смотрите также

  • Yaf_View_Simple::assign() - Assign values
  • Yaf_View_Simple::__set() - Set value to engine


Clear Assigned values

  • « Yaf_View_Simple::assignRef
  • Yaf_View_Simple::__construct »
  • PHP Manual
  • Yaf_View_Simple
  • Clear Assigned values

Yaf_View_Simple::clear

(Yaf >=2.2.0)

Yaf_View_Simple::clear — Clear Assigned values

Описание

public Yaf_View_Simple::clear ([ string $name ] ) : bool

clear assigned variable

Список параметров

name

assigned variable name

if empty, will clear all assigned variables

Возвращаемые значения

Примеры

Пример #1 Yaf_View_Simple::clear()example

<?php
class IndexController extends Yaf_Controller_Abstract {
    public function indexAction() {
        $this->getView()->clear("foo")->clear("bar"); // clear "foo" and "bar"
        $this->_view->clear(); //clear all assigned variables
    }
?>

Смотрите также

  • Yaf_View_Simple::assignRef() - The assignRef purpose
  • Yaf_View_Interface::assign() - Assign value to View engine
  • Yaf_View_Simple::__set() - Set value to engine


Constructor of Yaf_View_Simple

  • « Yaf_View_Simple::clear
  • Yaf_View_Simple::display »
  • PHP Manual
  • Yaf_View_Simple
  • Constructor of Yaf_View_Simple

Yaf_View_Simple::__construct

(Yaf >=1.0.0)

Yaf_View_Simple::__construct — Constructor of Yaf_View_Simple

Описание

final public Yaf_View_Simple::__construct ( string $template_dir [, array $options ] )

Список параметров

template_dir

The base directory of the templates, by default, it is APPLICATOIN . "/views" for Yaf.

options

Options for the engine, as of Yaf 2.1.13, you can use short tag
      "<?=$var?>" in your template(regardless of "short_open_tag"),
      so comes a option named "short_tag",  you can switch this off
      to prevent use short_tag in template.

Примеры

Пример #1 Yaf_View_Simple::__constructor()example

<?php
   define ("TEMPLATE_DIRECTORY", APPLICATOIN_PATH . '/views');
   $view = new Yaf_View_Simple(TEMPLATE_DIRECTORY, array(
                           'short_tag' => false //doesn't allow use short tag in template
   ));
?>

Возвращаемые значения


Render and display

  • « Yaf_View_Simple::__construct
  • Yaf_View_Simple::eval »
  • PHP Manual
  • Yaf_View_Simple
  • Render and display

Yaf_View_Simple::display

(Yaf >=1.0.0)

Yaf_View_Simple::display — Render and display

Описание

public Yaf_View_Simple::display ( string $tpl [, array $tpl_vars ] ) : bool

Render a template and display the result instantly.

Список параметров

tpl

tpl_vars

Возвращаемые значения


Render template

  • « Yaf_View_Simple::display
  • Yaf_View_Simple::__get »
  • PHP Manual
  • Yaf_View_Simple
  • Render template

Yaf_View_Simple::eval

(Yaf >=2.2.0)

Yaf_View_Simple::eval — Render template

Описание

public Yaf_View_Simple::eval ( string $tpl_content [, array $tpl_vars ] ) : string

Render a string tempalte and return the result.

Список параметров

tpl_content

string template

tpl_vars

Возвращаемые значения


Retrieve assigned variable

  • « Yaf_View_Simple::eval
  • Yaf_View_Simple::getScriptPath »
  • PHP Manual
  • Yaf_View_Simple
  • Retrieve assigned variable

Yaf_View_Simple::__get

(Yaf >=1.0.0)

Yaf_View_Simple::__get — Retrieve assigned variable

Описание

public Yaf_View_Simple::__get ([ string $name ] ) : void

Retrieve assigned varaiable

Замечание:

parameter can be empty since 2.1.11

Список параметров

name

the assigned variable name

if this is empty, all assigned variables will be returned

Возвращаемые значения


Get templates directory

  • « Yaf_View_Simple::__get
  • Yaf_View_Simple::__isset »
  • PHP Manual
  • Yaf_View_Simple
  • Get templates directory

Yaf_View_Simple::getScriptPath

(Yaf >=1.0.0)

Yaf_View_Simple::getScriptPath — Get templates directory

Описание

public Yaf_View_Simple::getScriptPath ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __isset purpose

  • « Yaf_View_Simple::getScriptPath
  • Yaf_View_Simple::render »
  • PHP Manual
  • Yaf_View_Simple
  • The __isset purpose

Yaf_View_Simple::__isset

(Yaf >=1.0.0)

Yaf_View_Simple::__isset — The __isset purpose

Описание

public Yaf_View_Simple::__isset ( string $name ) : void

Список параметров

name

Возвращаемые значения


Render template

  • « Yaf_View_Simple::__isset
  • Yaf_View_Simple::__set »
  • PHP Manual
  • Yaf_View_Simple
  • Render template

Yaf_View_Simple::render

(Yaf >=1.0.0)

Yaf_View_Simple::render — Render template

Описание

public Yaf_View_Simple::render ( string $tpl [, array $tpl_vars ] ) : string

Render a template and return the result.

Список параметров

tpl

tpl_vars

Возвращаемые значения


Set value to engine

  • « Yaf_View_Simple::render
  • Yaf_View_Simple::setScriptPath »
  • PHP Manual
  • Yaf_View_Simple
  • Set value to engine

Yaf_View_Simple::__set

(Yaf >=1.0.0)

Yaf_View_Simple::__set — Set value to engine

Описание

public Yaf_View_Simple::__set ( string $name , mixed $value ) : void

This is a alternative and easier way to Yaf_View_Simple::assign().

Список параметров

name

A string value name.

value

Mixed value.

Возвращаемые значения

Примеры

Пример #1 Yaf_View_Simple::__set()example

<?php
class IndexController extends Yaf_Controller_Abstract {
    public function indexAction() {
        $this->getView()->foo = "bar"; // same as assign("foo", "bar");
    }
?>

Смотрите также

  • Yaf_View_Simple::assignRef() - The assignRef purpose
  • Yaf_View_Interface::assign() - Assign value to View engine


Set tempaltes directory

  • « Yaf_View_Simple::__set
  • Yaf_Loader »
  • PHP Manual
  • Yaf_View_Simple
  • Set tempaltes directory

Yaf_View_Simple::setScriptPath

(Yaf >=1.0.0)

Yaf_View_Simple::setScriptPath — Set tempaltes directory

Описание

public Yaf_View_Simple::setScriptPath ( string $template_dir ) : bool

Список параметров

template_dir

Возвращаемые значения


The Yaf_Loader class

(Yaf >=1.0.0)

Введение

Yaf_Loader introduces a comprehensive autoloading solution for Yaf.

The first time an instance of Yaf_Application is retrieved, Yaf_Loader will instance a singleton, and registers itself with spl_autoload. You retrieve an instance using the Yaf_Loader::getInstance()

Yaf_Loader attempt to load a class only one shot, if failed, depend on yaf.use_spl_auload, if this config is On Yaf_Loader::autoload() will return FALSE, thus give the chance to other autoload function. if it is Off (by default), Yaf_Loader::autoload() will return TRUE, and more important is that a very useful warning will be triggered (very useful to find out why a class could not be loaded).

Замечание:

Please keep yaf.use_spl_autoload Off unless there is some library have their own autoload mechanism and impossible to rewrite it.

By default, Yaf_Loader assume all library (class defined script) store in the global library directory, which is defined in the php.ini(yaf.library).

If you want Yaf_Loader search some classes(libraries) in the local class directory(which is defined in application.ini, and by default, it is application.directory . "/library"), you should register the class prefix using the Yaf_Loader::registerLocalNameSpace()

Let's see some examples(assuming APPLICATION_PATH is application.directory):

Пример #1 Config example

// Assuming the following configure in php.ini:
yaf.library = "/global_dir"

//Assuming the following configure in application.ini
application.library = APPLICATION_PATH "/library"
Assuming the following local name space is registered:

Пример #2 Register localnamespace

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
     public function _initLoader($dispatcher) {
          Yaf_Loader::getInstance()->registerLocalNameSpace(array("Foo", "Bar"));
     }
?>
Then the autoload examples:

Пример #3 Load class example

class Foo_Bar_Test =>
  // APPLICATION_PATH/library/Foo/Bar/Test.php

class GLO_Name  =>
  // /global_dir/Glo/Name.php

class BarNon_Test
  // /global_dir/Barnon/Test.php
As of PHP 5.3, you can use namespace:

Пример #4 Load namespace class example

class \Foo\Bar\Dummy =>
   // APPLICATION_PATH/library/Foo/Bar/Dummy.php

class \FooBar\Bar\Dummy =>
   // /global_dir/FooBar/Bar/Dummy.php

You may noticed that all the folder with the first letter capitalized, you can make them lowercase by set yaf.lowcase_path = On in php.ini

Yaf_Loader is also designed to load the MVC classes, and the rule is:

Пример #5 MVC class loading example

Controller Classes =>
// APPLICATION_PATH/controllers/

Model Classes =>
// APPLICATION_PATH/models/

Plugin Classes =>
// APPLICATION_PATH/plugins/
Yaf identify a class's suffix(this is by default, you can also change to the prefix by change the configure yaf.name_suffix) to decide whether it is a MVC class:

Пример #6 MVC class distinctions

Controller Classes =>
    // ***Controller

Model Classes =>
    // ***Model

Plugin Classes =>
    // ***Plugin
some examples:

Пример #7 MVC loading example

class IndexController
    // APPLICATION_PATH/controllers/Index.php

class DataModel =>
   // APPLICATION_PATH/models/Data.php

class DummyPlugin =>
  // APPLICATION_PATH/plugins/Dummy.php

class A_B_TestModel =>
  // APPLICATION_PATH/models/A/B/Test.php

Замечание:

As of 2.1.18, Yaf supports Controllers autoloading for user script side, (which means the autoloading triggered by user php script, eg: access a controller static property in Bootstrap or Plugins), but autoloader only try to locate controller class script under the default module folder, which is "APPLICATION_PATH/controllers/".

also, the directory will be affected by yaf.lowcase_path.

Обзор классов

Yaf_Loader {
/* Свойства */
protected $_local_ns ;
protected $_library ;
protected $_global_library ;
static $_instance ;
/* Методы */
public autoload ( void ) : void
public clearLocalNamespace ( void ) : void
private __clone ( void ) : void
private __construct ( void )
public static getInstance ( void ) : void
public getLibraryPath ([ bool $is_global = FALSE ] ) : Yaf_Loader
public getLocalNamespace ( void ) : void
public static import ( void ) : void
public isLocalName ( void ) : void
public registerLocalNamespace ( mixed $prefix ) : void
public setLibraryPath ( string $directory [, bool $is_global = FALSE ] ) : Yaf_Loader
private __sleep ( void ) : void
private __wakeup ( void ) : void
}

Свойства

_local_ns

_library

By default, this value is application.directory . "/library", you can change this either in the application.ini(application.library) or call to Yaf_Loader::setLibraryPath()

_global_library

_instance

Содержание

  • Yaf_Loader::autoload — The autoload purpose
  • Yaf_Loader::clearLocalNamespace — The clearLocalNamespace purpose
  • Yaf_Loader::__clone — The __clone purpose
  • Yaf_Loader::__construct — The __construct purpose
  • Yaf_Loader::getInstance — The getInstance purpose
  • Yaf_Loader::getLibraryPath — Get the library path
  • Yaf_Loader::getLocalNamespace — The getLocalNamespace purpose
  • Yaf_Loader::import — The import purpose
  • Yaf_Loader::isLocalName — The isLocalName purpose
  • Yaf_Loader::registerLocalNamespace — Register local class prefix
  • Yaf_Loader::setLibraryPath — Change the library path
  • Yaf_Loader::__sleep — The __sleep purpose
  • Yaf_Loader::__wakeup — The __wakeup purpose


The autoload purpose

  • « Yaf_Loader
  • Yaf_Loader::clearLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • The autoload purpose

Yaf_Loader::autoload

(Yaf >=1.0.0)

Yaf_Loader::autoload — The autoload purpose

Описание

public Yaf_Loader::autoload ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The clearLocalNamespace purpose

  • « Yaf_Loader::autoload
  • Yaf_Loader::__clone »
  • PHP Manual
  • Yaf_Loader
  • The clearLocalNamespace purpose

Yaf_Loader::clearLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::clearLocalNamespace — The clearLocalNamespace purpose

Описание

public Yaf_Loader::clearLocalNamespace ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __clone purpose

  • « Yaf_Loader::clearLocalNamespace
  • Yaf_Loader::__construct »
  • PHP Manual
  • Yaf_Loader
  • The __clone purpose

Yaf_Loader::__clone

(Yaf >=1.0.0)

Yaf_Loader::__clone — The __clone purpose

Описание

private Yaf_Loader::__clone ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __construct purpose

  • « Yaf_Loader::__clone
  • Yaf_Loader::getInstance »
  • PHP Manual
  • Yaf_Loader
  • The __construct purpose

Yaf_Loader::__construct

(Yaf >=1.0.0)

Yaf_Loader::__construct — The __construct purpose

Описание

private Yaf_Loader::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getInstance purpose

  • « Yaf_Loader::__construct
  • Yaf_Loader::getLibraryPath »
  • PHP Manual
  • Yaf_Loader
  • The getInstance purpose

Yaf_Loader::getInstance

(Yaf >=1.0.0)

Yaf_Loader::getInstance — The getInstance purpose

Описание

public static Yaf_Loader::getInstance ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get the library path

  • « Yaf_Loader::getInstance
  • Yaf_Loader::getLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • Get the library path

Yaf_Loader::getLibraryPath

(Yaf >=2.1.4)

Yaf_Loader::getLibraryPath — Get the library path

Описание

public Yaf_Loader::getLibraryPath ([ bool $is_global = FALSE ] ) : Yaf_Loader

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getLocalNamespace purpose

  • « Yaf_Loader::getLibraryPath
  • Yaf_Loader::import »
  • PHP Manual
  • Yaf_Loader
  • The getLocalNamespace purpose

Yaf_Loader::getLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::getLocalNamespace — The getLocalNamespace purpose

Описание

public Yaf_Loader::getLocalNamespace ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The import purpose

  • « Yaf_Loader::getLocalNamespace
  • Yaf_Loader::isLocalName »
  • PHP Manual
  • Yaf_Loader
  • The import purpose

Yaf_Loader::import

(Yaf >=1.0.0)

Yaf_Loader::import — The import purpose

Описание

public static Yaf_Loader::import ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The isLocalName purpose

  • « Yaf_Loader::import
  • Yaf_Loader::registerLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • The isLocalName purpose

Yaf_Loader::isLocalName

(Yaf >=1.0.0)

Yaf_Loader::isLocalName — The isLocalName purpose

Описание

public Yaf_Loader::isLocalName ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Register local class prefix

  • « Yaf_Loader::isLocalName
  • Yaf_Loader::setLibraryPath »
  • PHP Manual
  • Yaf_Loader
  • Register local class prefix

Yaf_Loader::registerLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::registerLocalNamespace — Register local class prefix

Описание

public Yaf_Loader::registerLocalNamespace ( mixed $prefix ) : void

Register local class prefix name, Yaf_Loader search classes in two library directories, the one is configured via application.library.directory(in application.ini) which is called local libraray directory; the other is configured via yaf.library (in php.ini) which is callled global library directory, since it can be shared by many applications in the same server.

When an autloading is trigger, Yaf_Loader will determine which library directory should be searched in by exame the prefix name of the missed classname. If the prefix name is registered as a localnamespack then look for it in local library directory, otherwise look for it in global library directory.

Замечание:

If yaf.library is not configured, then the global library directory is assumed to be the local library directory. in that case, all autoloading will look for local library directory. But if you want your Yaf application be strong, then always register your own classes as local classes.

Список параметров

prefix

a string or a array of class name prefix. all class prefix with these prefix will be loaded in local library path.

Возвращаемые значения

bool

Примеры

Пример #1 Yaf_Loader::registerLocalNamespace()example

<?php
$loader = Yaf_Loader::getInstance('/local/library/', '/global/library');
$loader->registerLocalNamespace("Baidu");
$loader->registerLocalNamespace(array("Sina", "Weibo"));

$loader->autoload("Baidu_Name"); // search in '/local/library/'
$loader->autoload("Sina");       // search '/local/library/'
$loader->autoload("Global_Name");// search in '/global/library/'
$loader->autoload("Foo_Bar");    // search in '/global/library/'

?>


Change the library path

  • « Yaf_Loader::registerLocalNamespace
  • Yaf_Loader::__sleep »
  • PHP Manual
  • Yaf_Loader
  • Change the library path

Yaf_Loader::setLibraryPath

(Yaf >=2.1.4)

Yaf_Loader::setLibraryPath — Change the library path

Описание

public Yaf_Loader::setLibraryPath ( string $directory [, bool $is_global = FALSE ] ) : Yaf_Loader

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __sleep purpose

  • « Yaf_Loader::setLibraryPath
  • Yaf_Loader::__wakeup »
  • PHP Manual
  • Yaf_Loader
  • The __sleep purpose

Yaf_Loader::__sleep

(Yaf >=1.0.0)

Yaf_Loader::__sleep — The __sleep purpose

Описание

private Yaf_Loader::__sleep ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __wakeup purpose

  • « Yaf_Loader::__sleep
  • Yaf_Plugin_Abstract »
  • PHP Manual
  • Yaf_Loader
  • The __wakeup purpose

Yaf_Loader::__wakeup

(Yaf >=1.0.0)

Yaf_Loader::__wakeup — The __wakeup purpose

Описание

private Yaf_Loader::__wakeup ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Yaf_Plugin_Abstract

(Yaf >=1.0.0)

Введение

Плагины позволяют легко расширять и настраивать фреймворк.

Плагины являются классами. Определение класса будет меняться в зависимости от компонента - вам может понадобиться реализовать этот интерфейс, но факт остается фактом, плагин сам является классом.

Плагин должен быть загружен в Yaf с использованием Yaf_Dispatcher::registerPlugin(). После регистрации, все методы, реализованные плагином в соответствии с этим интерфейсом, будут вызываться вовремя.

Примеры

Пример #1 Пример плагина

<?php
   /* Класс bootstrap должен быть определен как ./application/Bootstrap.php */
   class Bootstrap extends Yaf_Bootstrap_Abstract {
        public function _initPlugin(Yaf_Dispatcher $dispatcher) {
            /* регистрируем плагин */
            $dispatcher->registerPlugin(new TestPlugin());
        }
   }

   /* класс плагина должен лежать в ./application/plugins/ */
   class TestPlugin extends Yaf_Plugin_Abstract {
        public function routerStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            /* перед тем, как приступит к работе маршрутизатор,
                пользователь может сам поработать с перезаписью URL */
            var_dump("routerStartup");
        }
        public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            /* Маршрутизатор отработал, следовательно можно перейти к проверке логина */
            var_dump("routerShutdown");
        }
        public function dispatchLoopStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            var_dump("dispatchLoopStartup");
        }
        public function preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            var_dump("preDispatch");
        }
        public function postDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            var_dump("postDispatch");
        }
        public function dispatchLoopShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            /* последняя возможность для пользователя что-то сделать */
            var_dump("dispatchLoopShutdown");
        }
   }

   Class IndexController extends Yaf_Controller_Abstract {
        public function indexAction() {
            return FALSE; //предотвращаем рендеринг
        }
   }

   $config = array(
       "application" => array(
           "directory" => dirname(__FILE__) . "/application/",
       ),
   );

   $app = new Yaf_Application($config);
   $app->bootstrap()->run();
?>

Результатом выполнения данного примера будет что-то подобное:

string(13) "routerStartup"
string(14) "routerShutdown"
string(19) "dispatchLoopStartup"
string(11) "preDispatch"
string(12) "postDispatch"
string(20) "dispatchLoopShutdown"

Обзор классов

Yaf_Plugin_Abstract {
/* Методы */
public dispatchLoopShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void
public dispatchLoopStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void
public postDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void
public preDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void
public preResponse ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void
public routerShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void
public routerStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void
}

Содержание

  • Yaf_Plugin_Abstract::dispatchLoopShutdown — The dispatchLoopShutdown purpose
  • Yaf_Plugin_Abstract::dispatchLoopStartup — Hook before dispatch loop
  • Yaf_Plugin_Abstract::postDispatch — The postDispatch purpose
  • Yaf_Plugin_Abstract::preDispatch — The preDispatch purpose
  • Yaf_Plugin_Abstract::preResponse — The preResponse purpose
  • Yaf_Plugin_Abstract::routerShutdown — The routerShutdown purpose
  • Yaf_Plugin_Abstract::routerStartup — RouterStartup hook


The dispatchLoopShutdown purpose

  • « Yaf_Plugin_Abstract
  • Yaf_Plugin_Abstract::dispatchLoopStartup »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The dispatchLoopShutdown purpose

Yaf_Plugin_Abstract::dispatchLoopShutdown

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::dispatchLoopShutdown — The dispatchLoopShutdown purpose

Описание

public Yaf_Plugin_Abstract::dispatchLoopShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void

This is the latest hook in Yaf plugin hook system, if a custom plugin implement this method, then it will be called after the dispatch loop finished.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения

Смотрите также

  • Yaf_Plugin_Abstract::routerStartup() - RouterStartup hook
  • Yaf_Plugin_Abstract::routerShutdown() - The routerShutdown purpose
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - Hook before dispatch loop
  • Yaf_Plugin_Abstract::preDispatch() - The preDispatch purpose
  • Yaf_Plugin_Abstract::postDispatch() - The postDispatch purpose


Hook before dispatch loop

  • « Yaf_Plugin_Abstract::dispatchLoopShutdown
  • Yaf_Plugin_Abstract::postDispatch »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Hook before dispatch loop

Yaf_Plugin_Abstract::dispatchLoopStartup

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::dispatchLoopStartup — Hook before dispatch loop

Описание

public Yaf_Plugin_Abstract::dispatchLoopStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void

Список параметров

request

response

Возвращаемые значения


The postDispatch purpose

  • « Yaf_Plugin_Abstract::dispatchLoopStartup
  • Yaf_Plugin_Abstract::preDispatch »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The postDispatch purpose

Yaf_Plugin_Abstract::postDispatch

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::postDispatch — The postDispatch purpose

Описание

public Yaf_Plugin_Abstract::postDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения


The preDispatch purpose

  • « Yaf_Plugin_Abstract::postDispatch
  • Yaf_Plugin_Abstract::preResponse »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The preDispatch purpose

Yaf_Plugin_Abstract::preDispatch

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::preDispatch — The preDispatch purpose

Описание

public Yaf_Plugin_Abstract::preDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения


The preResponse purpose

  • « Yaf_Plugin_Abstract::preDispatch
  • Yaf_Plugin_Abstract::routerShutdown »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The preResponse purpose

Yaf_Plugin_Abstract::preResponse

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::preResponse — The preResponse purpose

Описание

public Yaf_Plugin_Abstract::preResponse ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения


The routerShutdown purpose

  • « Yaf_Plugin_Abstract::preResponse
  • Yaf_Plugin_Abstract::routerStartup »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The routerShutdown purpose

Yaf_Plugin_Abstract::routerShutdown

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::routerShutdown — The routerShutdown purpose

Описание

public Yaf_Plugin_Abstract::routerShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void

This hook will be trigged after the route process finished, this hook is usually used for login check.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения

Примеры

Пример #1 Yaf_Plugin_Abstract::routerShutdown()example

<?php
class UserInitPlugin extends Yaf_Plugin_Abstract {

    public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
        $controller = $request->getControllerName();

        /**
         * Use access controller is unecessary for APIs
         */
        if (in_array(strtolower($controller), array(
            'api',
        ))) {
            return TRUE;
        }

        if (Yaf_Session::getInstance()->has("login")) {
            return TRUE;
        }

        /* Use access check failed, need to login */
        $response->redirect("http://yourdomain.com/login/");
        return FALSE;
    }
?>

Смотрите также

  • Yaf_Plugin_Abstract::routerStartup() - RouterStartup hook
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - Hook before dispatch loop
  • Yaf_Plugin_Abstract::preDispatch() - The preDispatch purpose
  • Yaf_Plugin_Abstract::postDispatch() - The postDispatch purpose
  • Yaf_Plugin_Abstract::dispatchLoopShutdown() - The dispatchLoopShutdown purpose


RouterStartup hook

  • « Yaf_Plugin_Abstract::routerShutdown
  • Yaf_Registry »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • RouterStartup hook

Yaf_Plugin_Abstract::routerStartup

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::routerStartup — RouterStartup hook

Описание

public Yaf_Plugin_Abstract::routerStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void

This is the earliest hook in Yaf plugin hook system, if a custom plugin implement this method, then it will be called before routing a request.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения

Смотрите также

  • Yaf_Plugin_Abstract::routerShutdown() - The routerShutdown purpose
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - Hook before dispatch loop
  • Yaf_Plugin_Abstract::preDispatch() - The preDispatch purpose
  • Yaf_Plugin_Abstract::postDispatch() - The postDispatch purpose
  • Yaf_Plugin_Abstract::dispatchLoopShutdown() - The dispatchLoopShutdown purpose


Класс Yaf_Registry

(Yaf >=1.0.0)

Введение

Все методы Yaf_Registry определены как статичные, делая их универсально доступными. Это предоставляет возможности прочитать или записать какие-либо данные из любого места в вашем приложении.

Обзор классов

Yaf_Registry {
/* Свойства */
static $_instance ;
protected $_entries ;
/* Методы */
private __clone ( void ) : void
private __construct ( void )
public static del ( string $name ) : void
public static get ( string $name ) : mixed
public static has ( string $name ) : bool
public static set ( string $name , string $value ) : bool
}

Свойства

_instance

_entries

Содержание

  • Yaf_Registry::__clone — The __clone purpose
  • Yaf_Registry::__construct — Yaf_Registry implements singleton
  • Yaf_Registry::del — Remove an item from registry
  • Yaf_Registry::get — Retrieve an item from registry
  • Yaf_Registry::has — Check whether an item exists
  • Yaf_Registry::set — Add an item into registry


The __clone purpose

  • « Yaf_Registry
  • Yaf_Registry::__construct »
  • PHP Manual
  • Yaf_Registry
  • The __clone purpose

Yaf_Registry::__clone

(Yaf >=1.0.0)

Yaf_Registry::__clone — The __clone purpose

Описание

private Yaf_Registry::__clone ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Yaf_Registry implements singleton

  • « Yaf_Registry::__clone
  • Yaf_Registry::del »
  • PHP Manual
  • Yaf_Registry
  • Yaf_Registry implements singleton

Yaf_Registry::__construct

(Yaf >=1.0.0)

Yaf_Registry::__construct — Yaf_Registry implements singleton

Описание

private Yaf_Registry::__construct ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Remove an item from registry

  • « Yaf_Registry::__construct
  • Yaf_Registry::get »
  • PHP Manual
  • Yaf_Registry
  • Remove an item from registry

Yaf_Registry::del

(Yaf >=1.0.0)

Yaf_Registry::del — Remove an item from registry

Описание

public static Yaf_Registry::del ( string $name ) : void

Remove an item from registry

Список параметров

name

Возвращаемые значения


Retrieve an item from registry

  • « Yaf_Registry::del
  • Yaf_Registry::has »
  • PHP Manual
  • Yaf_Registry
  • Retrieve an item from registry

Yaf_Registry::get

(Yaf >=1.0.0)

Yaf_Registry::get — Retrieve an item from registry

Описание

public static Yaf_Registry::get ( string $name ) : mixed

Retrieve an item from registry

Список параметров

name

Возвращаемые значения


Check whether an item exists

  • « Yaf_Registry::get
  • Yaf_Registry::set »
  • PHP Manual
  • Yaf_Registry
  • Check whether an item exists

Yaf_Registry::has

(Yaf >=1.0.0)

Yaf_Registry::has — Check whether an item exists

Описание

public static Yaf_Registry::has ( string $name ) : bool

Check whether an item exists

Список параметров

name

Возвращаемые значения


Add an item into registry

  • « Yaf_Registry::has
  • Yaf_Request_Abstract »
  • PHP Manual
  • Yaf_Registry
  • Add an item into registry

Yaf_Registry::set

(Yaf >=1.0.0)

Yaf_Registry::set — Add an item into registry

Описание

public static Yaf_Registry::set ( string $name , string $value ) : bool

Add an item into registry

Список параметров

name

value

Возвращаемые значения


Класс Yaf_Request_Abstract

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Request_Abstract {
/* Константы */
const string SCHEME_HTTP = http ;
const string SCHEME_HTTPS = https ;
/* Свойства */
public $module ;
public $controller ;
public $action ;
public $method ;
protected $params ;
protected $language ;
protected $_exception ;
protected $_base_uri ;
protected $uri ;
protected $dispatched ;
protected $routed ;
/* Методы */
public getActionName ( void ) : void
public getBaseUri ( void ) : void
public getControllerName ( void ) : void
public getEnv ( string $name [, string $default ] ) : void
public getException ( void ) : void
public getLanguage ( void ) : void
public getMethod ( void ) : string
public getModuleName ( void ) : void
public getParam ( string $name [, string $default ] ) : mixed
public getParams ( void ) : array
public getRequestUri ( void ) : void
public getServer ( string $name [, string $default ] ) : void
public isCli ( void ) : bool
public isDispatched ( void ) : bool
public isGet ( void ) : bool
public isHead ( void ) : bool
public isOptions ( void ) : bool
public isPost ( void ) : bool
public isPut ( void ) : bool
public isRouted ( void ) : bool
public isXmlHttpRequest ( void ) : bool
public setActionName ( string $action ) : void
public setBaseUri ( string $uir ) : bool
public setControllerName ( string $controller ) : void
public setDispatched ( void ) : void
public setModuleName ( string $module ) : void
public setParam ( string $name [, string $value ] ) : bool
public setRequestUri ( string $uir ) : void
public setRouted ([ string $flag ] ) : void
}

Свойства

module

controller

action

method

params

language

_exception

_base_uri

uri

dispatched

routed

Предопределенные константы

Yaf_Request_Abstract::SCHEME_HTTP

Yaf_Request_Abstract::SCHEME_HTTPS

Содержание

  • Yaf_Request_Abstract::getActionName — The getActionName purpose
  • Yaf_Request_Abstract::getBaseUri — The getBaseUri purpose
  • Yaf_Request_Abstract::getControllerName — The getControllerName purpose
  • Yaf_Request_Abstract::getEnv — Retrieve ENV varialbe
  • Yaf_Request_Abstract::getException — The getException purpose
  • Yaf_Request_Abstract::getLanguage — Retrieve client's prefered language
  • Yaf_Request_Abstract::getMethod — Retrieve the request method
  • Yaf_Request_Abstract::getModuleName — The getModuleName purpose
  • Yaf_Request_Abstract::getParam — Retrieve calling parameter
  • Yaf_Request_Abstract::getParams — Retrieve all calling parameters
  • Yaf_Request_Abstract::getRequestUri — The getRequestUri purpose
  • Yaf_Request_Abstract::getServer — Retrieve SERVER variable
  • Yaf_Request_Abstract::isCli — Determine if request is CLI request
  • Yaf_Request_Abstract::isDispatched — Determin if the request is dispatched
  • Yaf_Request_Abstract::isGet — Determine if request is GET request
  • Yaf_Request_Abstract::isHead — Determine if request is HEAD request
  • Yaf_Request_Abstract::isOptions — Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isPost — Determine if request is POST request
  • Yaf_Request_Abstract::isPut — Determine if request is PUT request
  • Yaf_Request_Abstract::isRouted — Determin if request has been routed
  • Yaf_Request_Abstract::isXmlHttpRequest — Determine if request is AJAX request
  • Yaf_Request_Abstract::setActionName — The setActionName purpose
  • Yaf_Request_Abstract::setBaseUri — Set base URI
  • Yaf_Request_Abstract::setControllerName — The setControllerName purpose
  • Yaf_Request_Abstract::setDispatched — The setDispatched purpose
  • Yaf_Request_Abstract::setModuleName — The setModuleName purpose
  • Yaf_Request_Abstract::setParam — Set a calling parameter to a request
  • Yaf_Request_Abstract::setRequestUri — The setRequestUri purpose
  • Yaf_Request_Abstract::setRouted — The setRouted purpose


The getActionName purpose

  • « Yaf_Request_Abstract
  • Yaf_Request_Abstract::getBaseUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getActionName purpose

Yaf_Request_Abstract::getActionName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getActionName — The getActionName purpose

Описание

public Yaf_Request_Abstract::getActionName ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getBaseUri purpose

  • « Yaf_Request_Abstract::getActionName
  • Yaf_Request_Abstract::getControllerName »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getBaseUri purpose

Yaf_Request_Abstract::getBaseUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::getBaseUri — The getBaseUri purpose

Описание

public Yaf_Request_Abstract::getBaseUri ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getControllerName purpose

  • « Yaf_Request_Abstract::getBaseUri
  • Yaf_Request_Abstract::getEnv »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getControllerName purpose

Yaf_Request_Abstract::getControllerName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getControllerName — The getControllerName purpose

Описание

public Yaf_Request_Abstract::getControllerName ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieve ENV varialbe

  • « Yaf_Request_Abstract::getControllerName
  • Yaf_Request_Abstract::getException »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve ENV varialbe

Yaf_Request_Abstract::getEnv

(Yaf >=1.0.0)

Yaf_Request_Abstract::getEnv — Retrieve ENV varialbe

Описание

public Yaf_Request_Abstract::getEnv ( string $name [, string $default ] ) : void

Retrieve ENV variable

Список параметров

name

the variable name

default

if this parameter is provide, this will be returned if the varialbe can not be found

Возвращаемые значения

Returns string

Смотрите также

  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


The getException purpose

  • « Yaf_Request_Abstract::getEnv
  • Yaf_Request_Abstract::getLanguage »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getException purpose

Yaf_Request_Abstract::getException

(Yaf >=1.0.0)

Yaf_Request_Abstract::getException — The getException purpose

Описание

public Yaf_Request_Abstract::getException ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieve client's prefered language

  • « Yaf_Request_Abstract::getException
  • Yaf_Request_Abstract::getMethod »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve client's prefered language

Yaf_Request_Abstract::getLanguage

(Yaf >=1.0.0)

Yaf_Request_Abstract::getLanguage — Retrieve client's prefered language

Описание

public Yaf_Request_Abstract::getLanguage ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string


Retrieve the request method

  • « Yaf_Request_Abstract::getLanguage
  • Yaf_Request_Abstract::getModuleName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve the request method

Yaf_Request_Abstract::getMethod

(Yaf >=1.0.0)

Yaf_Request_Abstract::getMethod — Retrieve the request method

Описание

public Yaf_Request_Abstract::getMethod ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return a string, like "POST", "GET" etc.

Смотрите также

  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


The getModuleName purpose

  • « Yaf_Request_Abstract::getMethod
  • Yaf_Request_Abstract::getParam »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getModuleName purpose

Yaf_Request_Abstract::getModuleName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getModuleName — The getModuleName purpose

Описание

public Yaf_Request_Abstract::getModuleName ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieve calling parameter

  • « Yaf_Request_Abstract::getModuleName
  • Yaf_Request_Abstract::getParams »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve calling parameter

Yaf_Request_Abstract::getParam

(Yaf >=1.0.0)

Yaf_Request_Abstract::getParam — Retrieve calling parameter

Описание

public Yaf_Request_Abstract::getParam ( string $name [, string $default ] ) : mixed

Список параметров

name

default

Возвращаемые значения

Смотрите также

  • Yaf_Request_Abstract::setParam() - Set a calling parameter to a request


Retrieve all calling parameters

  • « Yaf_Request_Abstract::getParam
  • Yaf_Request_Abstract::getRequestUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve all calling parameters

Yaf_Request_Abstract::getParams

(Yaf >=1.0.0)

Yaf_Request_Abstract::getParams — Retrieve all calling parameters

Описание

public Yaf_Request_Abstract::getParams ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Request_Abstract::setParam() - Set a calling parameter to a request


The getRequestUri purpose

  • « Yaf_Request_Abstract::getParams
  • Yaf_Request_Abstract::getServer »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getRequestUri purpose

Yaf_Request_Abstract::getRequestUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::getRequestUri — The getRequestUri purpose

Описание

public Yaf_Request_Abstract::getRequestUri ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieve SERVER variable

  • « Yaf_Request_Abstract::getRequestUri
  • Yaf_Request_Abstract::isCli »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve SERVER variable

Yaf_Request_Abstract::getServer

(Yaf >=1.0.0)

Yaf_Request_Abstract::getServer — Retrieve SERVER variable

Описание

public Yaf_Request_Abstract::getServer ( string $name [, string $default ] ) : void

Retrieve SERVER variable

Список параметров

name

the variable name

default

if this parameter is provide, this will be returned if the variable can not be found

Возвращаемые значения

Смотрите также

  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter
  • Yaf_Request_Abstract::getEnv() - Retrieve ENV varialbe


Determine if request is CLI request

  • « Yaf_Request_Abstract::getServer
  • Yaf_Request_Abstract::isDispatched »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is CLI request

Yaf_Request_Abstract::isCli

(Yaf >=1.0.0)

Yaf_Request_Abstract::isCli — Determine if request is CLI request

Описание

public Yaf_Request_Abstract::isCli ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

bolean

Смотрите также

  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isGet() - Determine if request is GET request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


Determin if the request is dispatched

  • « Yaf_Request_Abstract::isCli
  • Yaf_Request_Abstract::isGet »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determin if the request is dispatched

Yaf_Request_Abstract::isDispatched

(Yaf >=1.0.0)

Yaf_Request_Abstract::isDispatched — Determin if the request is dispatched

Описание

public Yaf_Request_Abstract::isDispatched ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

boolean

Смотрите также

  • Yaf_Dispatcher::dispatch() - Dispatch a request


Determine if request is GET request

  • « Yaf_Request_Abstract::isDispatched
  • Yaf_Request_Abstract::isHead »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is GET request

Yaf_Request_Abstract::isGet

(Yaf >=1.0.0)

Yaf_Request_Abstract::isGet — Determine if request is GET request

Описание

public Yaf_Request_Abstract::isGet ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

boolean

Смотрите также

  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


Determine if request is HEAD request

  • « Yaf_Request_Abstract::isGet
  • Yaf_Request_Abstract::isOptions »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is HEAD request

Yaf_Request_Abstract::isHead

(Yaf >=1.0.0)

Yaf_Request_Abstract::isHead — Determine if request is HEAD request

Описание

public Yaf_Request_Abstract::isHead ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

boolean

Смотрите также

  • Yaf_Request_Abstract::isGet() - Determine if request is GET request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


Determine if request is OPTIONS request

  • « Yaf_Request_Abstract::isHead
  • Yaf_Request_Abstract::isPost »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is OPTIONS request

Yaf_Request_Abstract::isOptions

(Yaf >=1.0.0)

Yaf_Request_Abstract::isOptions — Determine if request is OPTIONS request

Описание

public Yaf_Request_Abstract::isOptions ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

boolean


Determine if request is POST request

  • « Yaf_Request_Abstract::isOptions
  • Yaf_Request_Abstract::isPut »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is POST request

Yaf_Request_Abstract::isPost

(Yaf >=1.0.0)

Yaf_Request_Abstract::isPost — Determine if request is POST request

Описание

public Yaf_Request_Abstract::isPost ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

boolean

Смотрите также

  • Yaf_Request_Abstract::isGet() - Determine if request is GET request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


Determine if request is PUT request

  • « Yaf_Request_Abstract::isPost
  • Yaf_Request_Abstract::isRouted »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is PUT request

Yaf_Request_Abstract::isPut

(Yaf >=1.0.0)

Yaf_Request_Abstract::isPut — Determine if request is PUT request

Описание

public Yaf_Request_Abstract::isPut ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

boolean

Смотрите также

  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isGet() - Determine if request is GET request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


Determin if request has been routed

  • « Yaf_Request_Abstract::isPut
  • Yaf_Request_Abstract::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determin if request has been routed

Yaf_Request_Abstract::isRouted

(Yaf >=1.0.0)

Yaf_Request_Abstract::isRouted — Determin if request has been routed

Описание

public Yaf_Request_Abstract::isRouted ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

boolean


Determine if request is AJAX request

  • « Yaf_Request_Abstract::isRouted
  • Yaf_Request_Abstract::setActionName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is AJAX request

Yaf_Request_Abstract::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Abstract::isXmlHttpRequest — Determine if request is AJAX request

Описание

public Yaf_Request_Abstract::isXmlHttpRequest ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

boolean

Смотрите также

  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isGet() - Determine if request is GET request


The setActionName purpose

  • « Yaf_Request_Abstract::isXmlHttpRequest
  • Yaf_Request_Abstract::setBaseUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setActionName purpose

Yaf_Request_Abstract::setActionName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setActionName — The setActionName purpose

Описание

public Yaf_Request_Abstract::setActionName ( string $action ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

action

Возвращаемые значения


Set base URI

  • « Yaf_Request_Abstract::setActionName
  • Yaf_Request_Abstract::setControllerName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Set base URI

Yaf_Request_Abstract::setBaseUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::setBaseUri — Set base URI

Описание

public Yaf_Request_Abstract::setBaseUri ( string $uir ) : bool

Set base URI, base URI is used when doing routing, in routing phase request URI is used to route a request, while base URI is used to skip the leadding part(base URI) of request URI. That is, if comes a request with request URI a/b/c, then if you set base URI to "a/b", only "/c" will be used in routing phase.

Замечание:

generally, you don't need to set this, Yaf will determine it automatically.

Список параметров

uir

base URI

Возвращаемые значения

bool


The setControllerName purpose

  • « Yaf_Request_Abstract::setBaseUri
  • Yaf_Request_Abstract::setDispatched »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setControllerName purpose

Yaf_Request_Abstract::setControllerName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setControllerName — The setControllerName purpose

Описание

public Yaf_Request_Abstract::setControllerName ( string $controller ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

controller

Возвращаемые значения


The setDispatched purpose

  • « Yaf_Request_Abstract::setControllerName
  • Yaf_Request_Abstract::setModuleName »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setDispatched purpose

Yaf_Request_Abstract::setDispatched

(Yaf >=1.0.0)

Yaf_Request_Abstract::setDispatched — The setDispatched purpose

Описание

public Yaf_Request_Abstract::setDispatched ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The setModuleName purpose

  • « Yaf_Request_Abstract::setDispatched
  • Yaf_Request_Abstract::setParam »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setModuleName purpose

Yaf_Request_Abstract::setModuleName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setModuleName — The setModuleName purpose

Описание

public Yaf_Request_Abstract::setModuleName ( string $module ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

module

Возвращаемые значения


Set a calling parameter to a request

  • « Yaf_Request_Abstract::setModuleName
  • Yaf_Request_Abstract::setRequestUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Set a calling parameter to a request

Yaf_Request_Abstract::setParam

(Yaf >=1.0.0)

Yaf_Request_Abstract::setParam — Set a calling parameter to a request

Описание

public Yaf_Request_Abstract::setParam ( string $name [, string $value ] ) : bool

Set a parameter to request, which can be retrieved by Yaf_Request_Abstract::getParam()

Список параметров

name

value

Возвращаемые значения

Смотрите также

  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter
  • Yaf_Request_Abstract::getParams() - Retrieve all calling parameters


The setRequestUri purpose

  • « Yaf_Request_Abstract::setParam
  • Yaf_Request_Abstract::setRouted »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setRequestUri purpose

Yaf_Request_Abstract::setRequestUri

(Yaf >=2.1.0)

Yaf_Request_Abstract::setRequestUri — The setRequestUri purpose

Описание

public Yaf_Request_Abstract::setRequestUri ( string $uir ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

uir

Возвращаемые значения


The setRouted purpose

  • « Yaf_Request_Abstract::setRequestUri
  • Yaf_Request_Http »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setRouted purpose

Yaf_Request_Abstract::setRouted

(Yaf >=1.0.0)

Yaf_Request_Abstract::setRouted — The setRouted purpose

Описание

public Yaf_Request_Abstract::setRouted ([ string $flag ] ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

flag

Возвращаемые значения


The Yaf_Request_Http class

(Yaf >=1.0.0)

Введение

Any request from client is initialized as a Yaf_Request_Http. you can get the request information like, uri query and post parameters via methods of this class.

Замечание:

For security, $_GET/$_POST are readonly in Yaf, which means if you set a value to these global variables, you can not get it from Yaf_Request_Http::getQuery() or Yaf_Request_Http::getPost().

But there do is some usage need such feature, like unit testing. thus Yaf can be built with --enable-yaf-debug, which will allow Yaf read the value user set via script.

in such case, Yaf will throw a E_STRICT warning to remind you about that: Strict Standards: you are running yaf in debug mode

Обзор классов

Yaf_Request_Http extends Yaf_Request_Abstract {
/* Свойства */
/* Методы */
private __clone ( void ) : void
public __construct ([ string $request_uri [, string $base_uri ]] )
public get ( string $name [, string $default ] ) : mixed
public getCookie ( string $name [, string $default ] ) : mixed
public getFiles ( void ) : void
public getPost ( string $name [, string $default ] ) : mixed
public getQuery ( string $name [, string $default ] ) : mixed
public getRaw ( void ) : mixed
public getRequest ( void ) : void
public isXmlHttpRequest ( void ) : bool
/* Наследуемые методы */
public Yaf_Request_Abstract::getActionName ( void ) : void
public Yaf_Request_Abstract::getBaseUri ( void ) : void
public Yaf_Request_Abstract::getControllerName ( void ) : void
public Yaf_Request_Abstract::getEnv ( string $name [, string $default ] ) : void
public Yaf_Request_Abstract::getException ( void ) : void
public Yaf_Request_Abstract::getLanguage ( void ) : void
public Yaf_Request_Abstract::getMethod ( void ) : string
public Yaf_Request_Abstract::getModuleName ( void ) : void
public Yaf_Request_Abstract::getParam ( string $name [, string $default ] ) : mixed
public Yaf_Request_Abstract::getParams ( void ) : array
public Yaf_Request_Abstract::getRequestUri ( void ) : void
public Yaf_Request_Abstract::getServer ( string $name [, string $default ] ) : void
public Yaf_Request_Abstract::isCli ( void ) : bool
public Yaf_Request_Abstract::isDispatched ( void ) : bool
public Yaf_Request_Abstract::isGet ( void ) : bool
public Yaf_Request_Abstract::isHead ( void ) : bool
public Yaf_Request_Abstract::isOptions ( void ) : bool
public Yaf_Request_Abstract::isPost ( void ) : bool
public Yaf_Request_Abstract::isPut ( void ) : bool
public Yaf_Request_Abstract::isRouted ( void ) : bool
public Yaf_Request_Abstract::isXmlHttpRequest ( void ) : bool
public Yaf_Request_Abstract::setActionName ( string $action ) : void
public Yaf_Request_Abstract::setBaseUri ( string $uir ) : bool
public Yaf_Request_Abstract::setControllerName ( string $controller ) : void
public Yaf_Request_Abstract::setDispatched ( void ) : void
public Yaf_Request_Abstract::setModuleName ( string $module ) : void
public Yaf_Request_Abstract::setParam ( string $name [, string $value ] ) : bool
public Yaf_Request_Abstract::setRequestUri ( string $uir ) : void
public Yaf_Request_Abstract::setRouted ([ string $flag ] ) : void
}

Свойства

module

controller

action

method

params

language

_exception

_base_uri

uri

dispatched

routed

Содержание

  • Yaf_Request_Http::__clone — Yaf_Request_Http can not be cloned
  • Yaf_Request_Http::__construct — Constructor of Yaf_Request_Http
  • Yaf_Request_Http::get — Retrieve variable from client
  • Yaf_Request_Http::getCookie — Retrieve Cookie variable
  • Yaf_Request_Http::getFiles — The getFiles purpose
  • Yaf_Request_Http::getPost — Retrieve POST variable
  • Yaf_Request_Http::getQuery — Fetch a query parameter
  • Yaf_Request_Http::getRaw — Retrieve Raw request body
  • Yaf_Request_Http::getRequest — The getRequest purpose
  • Yaf_Request_Http::isXmlHttpRequest — Determin if request is Ajax Request


Yaf_Request_Http can not be cloned

  • « Yaf_Request_Http
  • Yaf_Request_Http::__construct »
  • PHP Manual
  • Yaf_Request_Http
  • Yaf_Request_Http can not be cloned

Yaf_Request_Http::__clone

(Yaf >=1.0.0)

Yaf_Request_Http::__clone — Yaf_Request_Http can not be cloned

Описание

private Yaf_Request_Http::__clone ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Constructor of Yaf_Request_Http

  • « Yaf_Request_Http::__clone
  • Yaf_Request_Http::get »
  • PHP Manual
  • Yaf_Request_Http
  • Constructor of Yaf_Request_Http

Yaf_Request_Http::__construct

(Yaf >=1.0.0)

Yaf_Request_Http::__construct — Constructor of Yaf_Request_Http

Описание

public Yaf_Request_Http::__construct ([ string $request_uri [, string $base_uri ]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieve variable from client

  • « Yaf_Request_Http::__construct
  • Yaf_Request_Http::getCookie »
  • PHP Manual
  • Yaf_Request_Http
  • Retrieve variable from client

Yaf_Request_Http::get

(Yaf >=1.0.0)

Yaf_Request_Http::get — Retrieve variable from client

Описание

public Yaf_Request_Http::get ( string $name [, string $default ] ) : mixed

Retrieve variable from client, this method will search the name in request pramas, if the name is not found, then will search in POST, GET, Cookie, Server

Список параметров

name

the variable name

default

if this parameter is provide, this will be returned if the varialbe can not be found

Возвращаемые значения

Смотрите также

  • Yaf_Request_Http::getQuery() - Fetch a query parameter
  • Yaf_Request_Http::getPost() - Retrieve POST variable
  • Yaf_Request_Http::getCookie() - Retrieve Cookie variable
  • Yaf_Request_Http::getRaw() - Retrieve Raw request body
  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


Retrieve Cookie variable

  • « Yaf_Request_Http::get
  • Yaf_Request_Http::getFiles »
  • PHP Manual
  • Yaf_Request_Http
  • Retrieve Cookie variable

Yaf_Request_Http::getCookie

(Yaf >=1.0.0)

Yaf_Request_Http::getCookie — Retrieve Cookie variable

Описание

public Yaf_Request_Http::getCookie ( string $name [, string $default ] ) : mixed

Retrieve Cookie variable

Список параметров

name

the cookie name

default

if this parameter is provide, this will be returned if the cookie can not be found

Возвращаемые значения

Смотрите также

  • Yaf_Request_Http::get() - Retrieve variable from client
  • Yaf_Request_Http::getQuery() - Fetch a query parameter
  • Yaf_Request_Http::getPost() - Retrieve POST variable
  • Yaf_Request_Http::getRaw() - Retrieve Raw request body
  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


The getFiles purpose

  • « Yaf_Request_Http::getCookie
  • Yaf_Request_Http::getPost »
  • PHP Manual
  • Yaf_Request_Http
  • The getFiles purpose

Yaf_Request_Http::getFiles

(Yaf >=1.0.0)

Yaf_Request_Http::getFiles — The getFiles purpose

Описание

public Yaf_Request_Http::getFiles ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieve POST variable

  • « Yaf_Request_Http::getFiles
  • Yaf_Request_Http::getQuery »
  • PHP Manual
  • Yaf_Request_Http
  • Retrieve POST variable

Yaf_Request_Http::getPost

(Yaf >=1.0.0)

Yaf_Request_Http::getPost — Retrieve POST variable

Описание

public Yaf_Request_Http::getPost ( string $name [, string $default ] ) : mixed

Retrieve POST variable

Список параметров

name

the variable name

default

if this parameter is provide, this will be returned if the varialbe can not be found

Возвращаемые значения

Смотрите также

  • Yaf_Request_Http::get() - Retrieve variable from client
  • Yaf_Request_Http::getQuery() - Fetch a query parameter
  • Yaf_Request_Http::getCookie() - Retrieve Cookie variable
  • Yaf_Request_Http::getRaw() - Retrieve Raw request body
  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


Fetch a query parameter

  • « Yaf_Request_Http::getPost
  • Yaf_Request_Http::getRaw »
  • PHP Manual
  • Yaf_Request_Http
  • Fetch a query parameter

Yaf_Request_Http::getQuery

(Yaf >=1.0.0)

Yaf_Request_Http::getQuery — Fetch a query parameter

Описание

public Yaf_Request_Http::getQuery ( string $name [, string $default ] ) : mixed

Retrieve GET variable

Список параметров

name

the variable name

default

if this parameter is provide, this will be returned if the variable can not be found

Возвращаемые значения

Смотрите также

  • Yaf_Request_Http::get() - Retrieve variable from client
  • Yaf_Request_Http::getPost() - Retrieve POST variable
  • Yaf_Request_Http::getCookie() - Retrieve Cookie variable
  • Yaf_Request_Http::getRaw() - Retrieve Raw request body
  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


Retrieve Raw request body

  • « Yaf_Request_Http::getQuery
  • Yaf_Request_Http::getRequest »
  • PHP Manual
  • Yaf_Request_Http
  • Retrieve Raw request body

Yaf_Request_Http::getRaw

(Yaf >=3.0.7)

Yaf_Request_Http::getRaw — Retrieve Raw request body

Описание

public Yaf_Request_Http::getRaw ( void ) : mixed

Retrieve Raw request body

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return string on success, FALSE on failure.

Смотрите также

  • Yaf_Request_Http::get() - Retrieve variable from client
  • Yaf_Request_Http::getPost() - Retrieve POST variable
  • Yaf_Request_Http::getCookie() - Retrieve Cookie variable
  • Yaf_Request_Http::getQuery() - Fetch a query parameter
  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


The getRequest purpose

  • « Yaf_Request_Http::getRaw
  • Yaf_Request_Http::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Http
  • The getRequest purpose

Yaf_Request_Http::getRequest

(Yaf >=1.0.0)

Yaf_Request_Http::getRequest — The getRequest purpose

Описание

public Yaf_Request_Http::getRequest ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Determin if request is Ajax Request

  • « Yaf_Request_Http::getRequest
  • Yaf_Request_Simple »
  • PHP Manual
  • Yaf_Request_Http
  • Determin if request is Ajax Request

Yaf_Request_Http::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Http::isXmlHttpRequest — Determin if request is Ajax Request

Описание

public Yaf_Request_Http::isXmlHttpRequest ( void ) : bool

Check the request whether it is a Ajax Request.

Замечание:

This method depends on the request header: HTTP_X_REQUESTED_WITH, some Javascript library doesn't set this header while doing Ajax request

Список параметров

У этой функции нет параметров.

Возвращаемые значения

boolean


Класс Yaf_Request_Simple

(Yaf >=1.0.0)

Введение

Yaf_Request_Simple обычно используется в целях тестирования. Например, для эмуляции специальных запросов из режима CLI.

Обзор классов

Yaf_Request_Simple extends Yaf_Request_Abstract {
/* Константы */
const string SCHEME_HTTP = http ;
const string SCHEME_HTTPS = https ;
/* Свойства */
/* Методы */
private __clone ( void ) : void
public __construct ([ string $method [, string $module [, string $controller [, string $action [, array $params ]]]]] )
public get ( void ) : void
public getCookie ( void ) : void
public getFiles ( void ) : void
public getPost ( void ) : void
public getQuery ( void ) : void
public getRequest ( void ) : void
public isXmlHttpRequest ( void ) : void
/* Наследуемые методы */
public Yaf_Request_Abstract::getActionName ( void ) : void
public Yaf_Request_Abstract::getBaseUri ( void ) : void
public Yaf_Request_Abstract::getControllerName ( void ) : void
public Yaf_Request_Abstract::getEnv ( string $name [, string $default ] ) : void
public Yaf_Request_Abstract::getException ( void ) : void
public Yaf_Request_Abstract::getLanguage ( void ) : void
public Yaf_Request_Abstract::getMethod ( void ) : string
public Yaf_Request_Abstract::getModuleName ( void ) : void
public Yaf_Request_Abstract::getParam ( string $name [, string $default ] ) : mixed
public Yaf_Request_Abstract::getParams ( void ) : array
public Yaf_Request_Abstract::getRequestUri ( void ) : void
public Yaf_Request_Abstract::getServer ( string $name [, string $default ] ) : void
public Yaf_Request_Abstract::isCli ( void ) : bool
public Yaf_Request_Abstract::isDispatched ( void ) : bool
public Yaf_Request_Abstract::isGet ( void ) : bool
public Yaf_Request_Abstract::isHead ( void ) : bool
public Yaf_Request_Abstract::isOptions ( void ) : bool
public Yaf_Request_Abstract::isPost ( void ) : bool
public Yaf_Request_Abstract::isPut ( void ) : bool
public Yaf_Request_Abstract::isRouted ( void ) : bool
public Yaf_Request_Abstract::isXmlHttpRequest ( void ) : bool
public Yaf_Request_Abstract::setActionName ( string $action ) : void
public Yaf_Request_Abstract::setBaseUri ( string $uir ) : bool
public Yaf_Request_Abstract::setControllerName ( string $controller ) : void
public Yaf_Request_Abstract::setDispatched ( void ) : void
public Yaf_Request_Abstract::setModuleName ( string $module ) : void
public Yaf_Request_Abstract::setParam ( string $name [, string $value ] ) : bool
public Yaf_Request_Abstract::setRequestUri ( string $uir ) : void
public Yaf_Request_Abstract::setRouted ([ string $flag ] ) : void
}

Свойства

module

controller

action

method

params

language

_exception

_base_uri

uri

dispatched

routed

Предопределенные константы

Yaf_Request_Simple::SCHEME_HTTP

Yaf_Request_Simple::SCHEME_HTTPS

Содержание

  • Yaf_Request_Simple::__clone — The __clone purpose
  • Yaf_Request_Simple::__construct — Constructor of Yaf_Request_Simple
  • Yaf_Request_Simple::get — The get purpose
  • Yaf_Request_Simple::getCookie — The getCookie purpose
  • Yaf_Request_Simple::getFiles — The getFiles purpose
  • Yaf_Request_Simple::getPost — The getPost purpose
  • Yaf_Request_Simple::getQuery — The getQuery purpose
  • Yaf_Request_Simple::getRequest — The getRequest purpose
  • Yaf_Request_Simple::isXmlHttpRequest — Determin if request is AJAX request


The __clone purpose

  • « Yaf_Request_Simple
  • Yaf_Request_Simple::__construct »
  • PHP Manual
  • Yaf_Request_Simple
  • The __clone purpose

Yaf_Request_Simple::__clone

(Yaf >=1.0.0)

Yaf_Request_Simple::__clone — The __clone purpose

Описание

private Yaf_Request_Simple::__clone ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Constructor of Yaf_Request_Simple

  • « Yaf_Request_Simple::__clone
  • Yaf_Request_Simple::get »
  • PHP Manual
  • Yaf_Request_Simple
  • Constructor of Yaf_Request_Simple

Yaf_Request_Simple::__construct

(Yaf >=1.0.0)

Yaf_Request_Simple::__construct — Constructor of Yaf_Request_Simple

Описание

public Yaf_Request_Simple::__construct ([ string $method [, string $module [, string $controller [, string $action [, array $params ]]]]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The get purpose

  • « Yaf_Request_Simple::__construct
  • Yaf_Request_Simple::getCookie »
  • PHP Manual
  • Yaf_Request_Simple
  • The get purpose

Yaf_Request_Simple::get

(Yaf >=1.0.0)

Yaf_Request_Simple::get — The get purpose

Описание

public Yaf_Request_Simple::get ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getCookie purpose

  • « Yaf_Request_Simple::get
  • Yaf_Request_Simple::getFiles »
  • PHP Manual
  • Yaf_Request_Simple
  • The getCookie purpose

Yaf_Request_Simple::getCookie

(Yaf >=1.0.0)

Yaf_Request_Simple::getCookie — The getCookie purpose

Описание

public Yaf_Request_Simple::getCookie ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getFiles purpose

  • « Yaf_Request_Simple::getCookie
  • Yaf_Request_Simple::getPost »
  • PHP Manual
  • Yaf_Request_Simple
  • The getFiles purpose

Yaf_Request_Simple::getFiles

(Yaf >=1.0.0)

Yaf_Request_Simple::getFiles — The getFiles purpose

Описание

public Yaf_Request_Simple::getFiles ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getPost purpose

  • « Yaf_Request_Simple::getFiles
  • Yaf_Request_Simple::getQuery »
  • PHP Manual
  • Yaf_Request_Simple
  • The getPost purpose

Yaf_Request_Simple::getPost

(Yaf >=1.0.0)

Yaf_Request_Simple::getPost — The getPost purpose

Описание

public Yaf_Request_Simple::getPost ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getQuery purpose

  • « Yaf_Request_Simple::getPost
  • Yaf_Request_Simple::getRequest »
  • PHP Manual
  • Yaf_Request_Simple
  • The getQuery purpose

Yaf_Request_Simple::getQuery

(Yaf >=1.0.0)

Yaf_Request_Simple::getQuery — The getQuery purpose

Описание

public Yaf_Request_Simple::getQuery ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getRequest purpose

  • « Yaf_Request_Simple::getQuery
  • Yaf_Request_Simple::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Simple
  • The getRequest purpose

Yaf_Request_Simple::getRequest

(Yaf >=1.0.0)

Yaf_Request_Simple::getRequest — The getRequest purpose

Описание

public Yaf_Request_Simple::getRequest ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Determin if request is AJAX request

  • « Yaf_Request_Simple::getRequest
  • Yaf_Response_Abstract »
  • PHP Manual
  • Yaf_Request_Simple
  • Determin if request is AJAX request

Yaf_Request_Simple::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Simple::isXmlHttpRequest — Determin if request is AJAX request

Описание

public Yaf_Request_Simple::isXmlHttpRequest ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Always returns false for Yaf_Request_Simple

Смотрите также

  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request
  • Yaf_Request_Http::isXmlHTTPRequest() - Determin if request is Ajax Request


Класс Yaf_Response_Abstract

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Response_Abstract {
/* Константы */
const string DEFAULT_BODY = "content" ;
/* Свойства */
protected $_header ;
protected $_body ;
protected $_sendheader ;
/* Методы */
public appendBody ( string $content [, string $key ] ) : bool
public clearBody ([ string $key ] ) : bool
public clearHeaders ( void ) : void
private __clone ( void ) : void
public __construct ( void )
public __destruct ( void ) : void
public getBody ([ string $key ] ) : mixed
public getHeader ( void ) : void
public prependBody ( string $content [, string $key ] ) : bool
public response ( void ) : void
protected setAllHeaders ( void ) : void
public setBody ( string $content [, string $key ] ) : bool
public setHeader ( string $name , string $value [, bool $replace ] ) : bool
public setRedirect ( void ) : void
private __toString ( void ) : string
}

Свойства

_header

_body

_sendheader

Содержание

  • Yaf_Response_Abstract::appendBody — Append to response body
  • Yaf_Response_Abstract::clearBody — Discard all exists response body
  • Yaf_Response_Abstract::clearHeaders — Discard all set headers
  • Yaf_Response_Abstract::__clone — The __clone purpose
  • Yaf_Response_Abstract::__construct — The __construct purpose
  • Yaf_Response_Abstract::__destruct — The __destruct purpose
  • Yaf_Response_Abstract::getBody — Retrieve a exists content
  • Yaf_Response_Abstract::getHeader — The getHeader purpose
  • Yaf_Response_Abstract::prependBody — The prependBody purpose
  • Yaf_Response_Abstract::response — Send response
  • Yaf_Response_Abstract::setAllHeaders — The setAllHeaders purpose
  • Yaf_Response_Abstract::setBody — Set content to response
  • Yaf_Response_Abstract::setHeader — Set reponse header
  • Yaf_Response_Abstract::setRedirect — The setRedirect purpose
  • Yaf_Response_Abstract::__toString — Retrieve all bodys as string


Append to response body

  • « Yaf_Response_Abstract
  • Yaf_Response_Abstract::clearBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • Append to response body

Yaf_Response_Abstract::appendBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::appendBody — Append to response body

Описание

public Yaf_Response_Abstract::appendBody ( string $content [, string $key ] ) : bool

Append a content to a exists content block

Список параметров

body

content string

key

the content key, you can set a content with a key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used

Замечание:

this parameter is introduced as of 2.2.0

Возвращаемые значения

bool

Примеры

Пример #1 Yaf_Response_Abstract::appendBody()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->prependBody(" World");

echo $response;
?>

Результатом выполнения данного примера будет что-то подобное:

Hello World

Смотрите также

  • Yaf_Config_Ini

Смотрите также

  • Yaf_Response_Abstract::getBody() - Retrieve a exists content
  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::prependBody() - The prependBody purpose
  • Yaf_Response_Abstract::clearBody() - Discard all exists response body


Discard all exists response body

  • « Yaf_Response_Abstract::appendBody
  • Yaf_Response_Abstract::clearHeaders »
  • PHP Manual
  • Yaf_Response_Abstract
  • Discard all exists response body

Yaf_Response_Abstract::clearBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::clearBody — Discard all exists response body

Описание

public Yaf_Response_Abstract::clearBody ([ string $key ] ) : bool

Clear existsed content

Список параметров

key

the content key, if you don't specific, then all contents will be cleared.

Замечание:

this parameter is introduced as of 2.2.0

Возвращаемые значения

Смотрите также

  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::appendBody() - Append to response body
  • Yaf_Response_Abstract::prependBody() - The prependBody purpose
  • Yaf_Response_Abstract::getBody() - Retrieve a exists content


Discard all set headers

  • « Yaf_Response_Abstract::clearBody
  • Yaf_Response_Abstract::__clone »
  • PHP Manual
  • Yaf_Response_Abstract
  • Discard all set headers

Yaf_Response_Abstract::clearHeaders

(Yaf >=1.0.0)

Yaf_Response_Abstract::clearHeaders — Discard all set headers

Описание

public Yaf_Response_Abstract::clearHeaders ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Response_Abstract::getHeader() - The getHeader purpose
  • Yaf_Response_Abstract::setHeader() - Set reponse header


The __clone purpose

  • « Yaf_Response_Abstract::clearHeaders
  • Yaf_Response_Abstract::__construct »
  • PHP Manual
  • Yaf_Response_Abstract
  • The __clone purpose

Yaf_Response_Abstract::__clone

(Yaf >=1.0.0)

Yaf_Response_Abstract::__clone — The __clone purpose

Описание

private Yaf_Response_Abstract::__clone ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __construct purpose

  • « Yaf_Response_Abstract::__clone
  • Yaf_Response_Abstract::__destruct »
  • PHP Manual
  • Yaf_Response_Abstract
  • The __construct purpose

Yaf_Response_Abstract::__construct

(Yaf >=1.0.0)

Yaf_Response_Abstract::__construct — The __construct purpose

Описание

public Yaf_Response_Abstract::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __destruct purpose

  • « Yaf_Response_Abstract::__construct
  • Yaf_Response_Abstract::getBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • The __destruct purpose

Yaf_Response_Abstract::__destruct

(Yaf >=1.0.0)

Yaf_Response_Abstract::__destruct — The __destruct purpose

Описание

public Yaf_Response_Abstract::__destruct ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieve a exists content

  • « Yaf_Response_Abstract::__destruct
  • Yaf_Response_Abstract::getHeader »
  • PHP Manual
  • Yaf_Response_Abstract
  • Retrieve a exists content

Yaf_Response_Abstract::getBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::getBody — Retrieve a exists content

Описание

public Yaf_Response_Abstract::getBody ([ string $key ] ) : mixed

Retrieve a exists content

Список параметров

key

the content key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used. if you pass in a NULL, then all contents will be returned as a array

Замечание:

this parameter is introduced as of 2.2.0

Возвращаемые значения

Примеры

Пример #1 Yaf_Response_Abstract::getBody()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->setBody(" World", "footer");

var_dump($response->getBody()); //default
var_dump($response->getBody(Yaf_Response_Abstract::DEFAULT_BODY)); //same as above
var_dump($response->getBody("footer"));
var_dump($response->getBody(NULL)); //get all
?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "Hello"
string(5) "Hello"
string(6) " World"
array(2) {
  ["content"]=>
  string(5) "Hello"
  ["footer"]=>
  string(6) " World"
}

Смотрите также

  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::appendBody() - Append to response body
  • Yaf_Response_Abstract::prependBody() - The prependBody purpose
  • Yaf_Response_Abstract::clearBody() - Discard all exists response body


The getHeader purpose

  • « Yaf_Response_Abstract::getBody
  • Yaf_Response_Abstract::prependBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • The getHeader purpose

Yaf_Response_Abstract::getHeader

(Yaf >=1.0.0)

Yaf_Response_Abstract::getHeader — The getHeader purpose

Описание

public Yaf_Response_Abstract::getHeader ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Response_Abstract::setHeader() - Set reponse header
  • Yaf_Response_Abstract::cleanHeaders()


The prependBody purpose

  • « Yaf_Response_Abstract::getHeader
  • Yaf_Response_Abstract::response »
  • PHP Manual
  • Yaf_Response_Abstract
  • The prependBody purpose

Yaf_Response_Abstract::prependBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::prependBody — The prependBody purpose

Описание

public Yaf_Response_Abstract::prependBody ( string $content [, string $key ] ) : bool

prepend a content to a exists content block

Список параметров

body

content string

key

the content key, you can set a content with a key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used

Замечание:

this parameter is introduced as of 2.2.0

Возвращаемые значения

bool

Примеры

Пример #1 Yaf_Response_Abstract::prependBody()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("World")->prependBody("Hello ");

echo $response;
?>

Результатом выполнения данного примера будет что-то подобное:

Hello World

Смотрите также

  • Yaf_Response_Abstract::getBody() - Retrieve a exists content
  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::appendBody() - Append to response body
  • Yaf_Response_Abstract::clearBody() - Discard all exists response body


Send response

  • « Yaf_Response_Abstract::prependBody
  • Yaf_Response_Abstract::setAllHeaders »
  • PHP Manual
  • Yaf_Response_Abstract
  • Send response

Yaf_Response_Abstract::response

(Yaf >=1.0.0)

Yaf_Response_Abstract::response — Send response

Описание

public Yaf_Response_Abstract::response ( void ) : void

send response

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Yaf_Response_Abstract::response()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->setBody(" World", "footer");

$response->response();
?>

Результатом выполнения данного примера будет что-то подобное:

Hello World

Смотрите также

  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::clearBody() - Discard all exists response body


The setAllHeaders purpose

  • « Yaf_Response_Abstract::response
  • Yaf_Response_Abstract::setBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • The setAllHeaders purpose

Yaf_Response_Abstract::setAllHeaders

(Yaf >=1.0.0)

Yaf_Response_Abstract::setAllHeaders — The setAllHeaders purpose

Описание

protected Yaf_Response_Abstract::setAllHeaders ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Set content to response

  • « Yaf_Response_Abstract::setAllHeaders
  • Yaf_Response_Abstract::setHeader »
  • PHP Manual
  • Yaf_Response_Abstract
  • Set content to response

Yaf_Response_Abstract::setBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::setBody — Set content to response

Описание

public Yaf_Response_Abstract::setBody ( string $content [, string $key ] ) : bool

Set content to response

Список параметров

body

content string

key

the content key, you can set a content with a key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used

Замечание:

this parameter is introduced as of 2.2.0

Возвращаемые значения

Примеры

Пример #1 Yaf_Response_Abstract::setBody()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->setBody(" World", "footer");

print_r($response);
echo $response;
?>

Результатом выполнения данного примера будет что-то подобное:

Yaf_Response_Http Object
(
    [_header:protected] => Array
        (
        )

    [_body:protected] => Array
        (
            [content] => Hello
            [footer] =>  World
        )

    [_sendheader:protected] => 1
    [_response_code:protected] => 200
)
Hello World

Смотрите также

  • Yaf_Response_Abstract::getBody() - Retrieve a exists content
  • Yaf_Response_Abstract::appendBody() - Append to response body
  • Yaf_Response_Abstract::prependBody() - The prependBody purpose
  • Yaf_Response_Abstract::clearBody() - Discard all exists response body


Set reponse header

  • « Yaf_Response_Abstract::setBody
  • Yaf_Response_Abstract::setRedirect »
  • PHP Manual
  • Yaf_Response_Abstract
  • Set reponse header

Yaf_Response_Abstract::setHeader

(Yaf >=1.0.0)

Yaf_Response_Abstract::setHeader — Set reponse header

Описание

public Yaf_Response_Abstract::setHeader ( string $name , string $value [, bool $replace ] ) : bool

Used to send a HTTP header

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Response_Abstract::getHeader() - The getHeader purpose
  • Yaf_Response_Abstract::cleanHeaders()


The setRedirect purpose

  • « Yaf_Response_Abstract::setHeader
  • Yaf_Response_Abstract::__toString »
  • PHP Manual
  • Yaf_Response_Abstract
  • The setRedirect purpose

Yaf_Response_Abstract::setRedirect

(Yaf >=1.0.0)

Yaf_Response_Abstract::setRedirect — The setRedirect purpose

Описание

public Yaf_Response_Abstract::setRedirect ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieve all bodys as string

  • « Yaf_Response_Abstract::setRedirect
  • Yaf_Route_Interface »
  • PHP Manual
  • Yaf_Response_Abstract
  • Retrieve all bodys as string

Yaf_Response_Abstract::__toString

(Yaf >=1.0.0)

Yaf_Response_Abstract::__toString — Retrieve all bodys as string

Описание

private Yaf_Response_Abstract::__toString ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Yaf_Route_Interface

(Yaf >=1.0.0)

Введение

Yaf_Route_Interface используется для задания собственной маршрутизации.

Обзор классов

Yaf_Route_Interface {
/* Методы */
abstract public assemble ( array $info [, array $query ] ) : string
abstract public route ( Yaf_Request_Abstract $request ) : bool
}

Содержание

  • Yaf_Route_Interface::assemble — Assemble a request
  • Yaf_Route_Interface::route — Route a request


Assemble a request

  • « Yaf_Route_Interface
  • Yaf_Route_Interface::route »
  • PHP Manual
  • Yaf_Route_Interface
  • Assemble a request

Yaf_Route_Interface::assemble

(Yaf >=2.3.0)

Yaf_Route_Interface::assemble — Assemble a request

Описание

abstract public Yaf_Route_Interface::assemble ( array $info [, array $query ] ) : string

this method returns a url according to the argument info, and append query strings to the url according to the argument query.

a route should implement this method according to its own route rules, and do a reverse progress.

Список параметров

info

query

Возвращаемые значения


Route a request

  • « Yaf_Route_Interface::assemble
  • Yaf_Route_Map »
  • PHP Manual
  • Yaf_Route_Interface
  • Route a request

Yaf_Route_Interface::route

(Yaf >=1.0.0)

Yaf_Route_Interface::route — Route a request

Описание

abstract public Yaf_Route_Interface::route ( Yaf_Request_Abstract $request ) : bool

Yaf_Route_Interface::route() is the only method that a custom route should implement.

Замечание:

since of 2.3.0, there is another method should also be implemented, see Yaf_Route_Interface::assemble().

if this method return TRUE, then the route process will be end. otherwise, Yaf_Router will call next route in the route stack to route request.

This method would set the route result to the parameter request, by
calling Yaf_Request_Abstract::setControllerName(),
Yaf_Request_Abstract::setActionName() and
Yaf_Request_Abstract::setModuleName().

This method should also call Yaf_Request_Abstract::setRouted() to make the request routed at last.

Список параметров

request

A Yaf_Request_Abstract instance.

Возвращаемые значения


The Yaf_Route_Map class

(Yaf >=1.0.0)

Введение

Yaf_Route_Map is a built-in route, it simply convert a URI endpoint (that part of the URI which comes after the base URI: see Yaf_Request_Abstract::setBaseUri()) to a controller name or action name(depends on the parameter passed to Yaf_Route_Map::__construct()) in following rule: A => controller A. A/B/C => controller A_B_C. A/B/C/D/E => controller A_B_C_D_E.

If the second parameter of Yaf_Route_Map::__construct() is specified, then only the part before delimiter of URI will used to routing, the part after it is used to routing request parameters (see the example section of Yaf_Route_Map::__construct()).

Обзор классов

Yaf_Route_Map implements Yaf_Route_Interface {
/* Свойства */
protected $_ctl_router ;
protected $_delimiter ;
/* Методы */
public assemble ( array $info [, array $query ] ) : string
public __construct ([ string $controller_prefer = FALSE [, string $delimiter = "" ]] )
public route ( Yaf_Request_Abstract $request ) : bool
}

Свойства

_ctl_router

_delimiter

Содержание

  • Yaf_Route_Map::assemble — Assemble a url
  • Yaf_Route_Map::__construct — The __construct purpose
  • Yaf_Route_Map::route — The route purpose


Assemble a url

  • « Yaf_Route_Map
  • Yaf_Route_Map::__construct »
  • PHP Manual
  • Yaf_Route_Map
  • Assemble a url

Yaf_Route_Map::assemble

(Yaf >=2.3.0)

Yaf_Route_Map::assemble — Assemble a url

Описание

public Yaf_Route_Map::assemble ( array $info [, array $query ] ) : string

Assemble a url.

Список параметров

info

query

Примеры

Пример #1 Yaf_Route_Map::assemble()example

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Map();

$router->addRoute("map", $route);

var_dump($router->getRoute('map')->assemble(
                        array(
                                ':c' => 'foo_bar'
                        ),
                        array(
                                'tkey1' => 'tval1',
                                'tkey2' => 'tval2'
                        )
                   )
);

$route = new Yaf_Route_Map(true, '_');
$router->addRoute("map", $route);

var_dump($router->getRoute('map')->assemble(
                        array(
                                ':a' => 'foo_bar'
                        ),
                        array(
                                'tkey1' => 'tval1',
                                'tkey2' => 'tval2'
                        )
                   )
);

Результатом выполнения данного примера будет что-то подобное:

string(%d) "/foo/bar?tkey1=tval1&tkey2=tval2"
string(%d) "/foo/bar/_/tkey1/tval1/tkey2/tval2"

Возвращаемые значения


The __construct purpose

  • « Yaf_Route_Map::assemble
  • Yaf_Route_Map::route »
  • PHP Manual
  • Yaf_Route_Map
  • The __construct purpose

Yaf_Route_Map::__construct

(Yaf >=1.0.0)

Yaf_Route_Map::__construct — The __construct purpose

Описание

public Yaf_Route_Map::__construct ([ string $controller_prefer = FALSE [, string $delimiter = "" ]] )

Список параметров

controller_prefer

Whether the result should considering as controller or action

delimiter

Возвращаемые значения

Примеры

Пример #1 Yaf_Route_Map()example

<?php
   /**
    * Add a map route to Yaf_Router route stack
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Map());
?>

Результатом выполнения данного примера будет что-то подобное:

/* for http://yourdomain.com/product/foo/bar
 * route will result in following values:
 */
array(
  "controller" => "product_foo_bar",
)

Пример #2 Yaf_Route_Map()example

<?php
   /**
    * Add a map route to Yaf_Router route stack
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Map(true, "_"));
?>

Результатом выполнения данного примера будет что-то подобное:

/* for http://yourdomain.com/user/list/_/foo/22
 * route will result in following values:
 */
array(
    "action" => "user_list",
)

/**
 * and request parameters:
 */
array(
  "foo"   => 22,
)

Пример #3 Yaf_Route_Map()example

<?php
   /**
    * Add a map route to Yaf_Router route stack by calling addconfig
    */
    $config = array(
        "name" => array(
           "type"  => "map",         //Yaf_Route_Map route
           "controllerPrefer" => FALSE,
           "delimiter"        => "#!",
           ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

Смотрите также

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite


The route purpose

  • « Yaf_Route_Map::__construct
  • Yaf_Route_Regex »
  • PHP Manual
  • Yaf_Route_Map
  • The route purpose

Yaf_Route_Map::route

(Yaf >=1.0.0)

Yaf_Route_Map::route — The route purpose

Описание

public Yaf_Route_Map::route ( Yaf_Request_Abstract $request ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

Возвращаемые значения


Класс Yaf_Route_Regex

(Yaf >=1.0.0)

Введение

Yaf_Route_Regex - самый гибкий маршрутизатор из всех встроенных маршрутизаторов Yaf.

Обзор классов

Yaf_Route_Regex extends Yaf_Route_Interface implements Yaf_Route_Interface {
/* Свойства */
protected $_route ;
protected $_default ;
protected $_maps ;
protected $_verify ;
/* Методы */
public assemble ( array $info [, array $query ] ) : string
public __construct ( string $match , array $route [, array $map [, array $verify [, string $reverse ]]] )
public route ( Yaf_Request_Abstract $request ) : bool
/* Наследуемые методы */
abstract public Yaf_Route_Interface::assemble ( array $info [, array $query ] ) : string
abstract public Yaf_Route_Interface::route ( Yaf_Request_Abstract $request ) : bool
}

Свойства

_route

_default

_maps

_verify

Содержание

  • Yaf_Route_Regex::assemble — Сформировать URL-адрес
  • Yaf_Route_Regex::__construct — Конструктор класса Yaf_Route_Regex
  • Yaf_Route_Regex::route — Цель маршрута


Сформировать URL-адрес

  • « Yaf_Route_Regex
  • Yaf_Route_Regex::__construct »
  • PHP Manual
  • Yaf_Route_Regex
  • Сформировать URL-адрес

Yaf_Route_Regex::assemble

(Yaf >=2.3.0)

Yaf_Route_Regex::assemble — Сформировать URL-адрес

Описание

public Yaf_Route_Regex::assemble ( array $info [, array $query ] ) : string

Сформировать URL-адрес.

Список параметров

info

query

Примеры

Пример #1 Пример использования Yaf_Route_Regex::assemble()

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Regex(
            "#^/product/([^/]+)/([^/])+#",
            array(
                'controller' => "product",  //маршрут на контроллер product,
                ),
            array(),
            array(),
            '/:m/:c/:a'
        );

$router->addRoute("regex", $route);

var_dump($router->getRoute('regex')->assemble(
            array(
                ':m' => 'module',
                ':c' => 'controller',
                ':a' => 'action'
                ),
            array(
                'tkey1' => 'tval1',
                'tkey2' =>
                'tval2'
                )
            )
        );

Результатом выполнения данного примера будет что-то подобное:

string(49) "/module/controller/action?tkey1=tval1&tkey2=tval2"

Возвращаемые значения


Конструктор класса Yaf_Route_Regex

  • « Yaf_Route_Regex::assemble
  • Yaf_Route_Regex::route »
  • PHP Manual
  • Yaf_Route_Regex
  • Конструктор класса Yaf_Route_Regex

Yaf_Route_Regex::__construct

(Yaf >=1.0.0)

Yaf_Route_Regex::__construct — Конструктор класса Yaf_Route_Regex

Описание

public Yaf_Route_Regex::__construct ( string $match , array $route [, array $map [, array $verify [, string $reverse ]]] )

Список параметров

match

Готовый шаблон регулярного выражения будет использоваться для проверки соответствия URI запроса; если не совпадает, Yaf_Route_Regex вернет FALSE.

route

Когда шаблон соответствия соответствует URI запроса, Yaf_Route_Regex будет решать, к какому маршруту m/c/a он относится.

Любой из m/c/a в этом массиве - необязательный, если вы не назначите какое-либо значение, он перенаправит на маршрут по умолчанию.

map

Массив для назначения имени совпадениям (captures).

verify

reverse

Строка, используемая для формирования URL, смотрите Yaf_Route_Regex::assemble().

Замечание:

Этот параметр был представлен в версии 2.3.0

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Route_Regex()

<?php
   /**
    * Добавить маршрут регулярного выражения в стек маршрута Yaf_Router Yaf_Router
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/([^/]+)/([^/])+#", // совпадение с URI запроса, начинающегося с "/product"
           array(
               'controller' => "product",  // маршрут на контроллер product,
           ),
           array(
              1 => "name",   // теперь вы можете вызвать $request->getParam("name")
              2 => "id",     // для получения первого совпадения в шаблоне.
           )
        )
    );
?>

Пример #2 Пример использования Yaf_Route_Regex (с версии 2.3.0)()

<?php
   /**
    * Использовать результат совпадения в качестве имени MVC
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/([^/]+)/([^/])+#i", // совпадение с URI запроса, начинающегося с "/product"
           array(
              'controller' => ":name", // маршрут на :name, которому соответствует $1 в результате совпадения как имя контроллера
           ),
           array(
              1 => "name",   // теперь вы можете вызвать $request->getParam("name")
              2 => "id",     // для получения первого совпадения в шаблоне.
           )
        )
    );
?>

Пример #3 Пример использования Yaf_Route_Regex с именованными совпадениями (с версии 2.3.0)()

<?php
   /**
    * Использовать результат совпадения в качестве имени MVC
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/(?<name>[^/]+)/([^/])+#i", //match request uri leading "/product"
           array(
           'controller' => ":name", // маршрут на :name,
                                    // который называется именем группы совпадения 'name' в результате совпадения как имя контроллера
           ),
           array(
              2 => "id",     // для получения первого совпадения в шаблоне.
           )
        )
    );
?>

Пример #4 Пример использования Yaf_Route_Regex()

<?php
   /**
    * Добавить маршрут регулярного выражения в стек маршрута Yaf_Router, вызвав addconfig
    */
    $config = array(
        "name" => array(
           "type"  => "regex",          // маршрут Yaf_Route_Regex
           "match" => "#(.*)#",         // совпадение с произвольным запросом URI
           "route" => array(
               'controller' => "product",  // маршрут на контроллер product,
               'action'     => "dummy",    // маршрут на действие dummy
           ),
           "map" => array(
              1 => "uri",   // теперь вы можете вызвать $request->getParam("uri")
           ),
        ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

Смотрите также

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Router::addConfig() - Add config-defined routes into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


Цель маршрута

  • « Yaf_Route_Regex::__construct
  • Yaf_Route_Rewrite »
  • PHP Manual
  • Yaf_Route_Regex
  • Цель маршрута

Yaf_Route_Regex::route

(Yaf >=1.0.0)

Yaf_Route_Regex::route — Цель маршрута

Описание

public Yaf_Route_Regex::route ( Yaf_Request_Abstract $request ) : bool

Перенаправить входящий запрос.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

Возвращаемые значения

Если шаблон задан первым параметром Yaf_Route_Regex::_construct() проводит соответствие с запросом URI, возвращая TRUE, в противном случае - FALSE.


Класс Yaf_Route_Rewrite

(Yaf >=1.0.0)

Введение

Пример использования смотрите в разделе примеров Yaf_Route_Rewrite::__construct()

Обзор классов

Yaf_Route_Rewrite extends Yaf_Route_Interface implements Yaf_Route_Interface {
/* Свойства */
protected $_route ;
protected $_default ;
protected $_verify ;
/* Методы */
public assemble ( array $info [, array $query ] ) : string
public __construct ( string $match , array $route [, array $verify ] )
public route ( Yaf_Request_Abstract $request ) : bool
/* Наследуемые методы */
abstract public Yaf_Route_Interface::assemble ( array $info [, array $query ] ) : string
abstract public Yaf_Route_Interface::route ( Yaf_Request_Abstract $request ) : bool
}

Свойства

_route

_default

_verify

Содержание

  • Yaf_Route_Rewrite::assemble — Assemble a url
  • Yaf_Route_Rewrite::__construct — Yaf_Route_Rewrite constructor
  • Yaf_Route_Rewrite::route — The route purpose


Assemble a url

  • « Yaf_Route_Rewrite
  • Yaf_Route_Rewrite::__construct »
  • PHP Manual
  • Yaf_Route_Rewrite
  • Assemble a url

Yaf_Route_Rewrite::assemble

(Yaf >=2.3.0)

Yaf_Route_Rewrite::assemble — Assemble a url

Описание

public Yaf_Route_Rewrite::assemble ( array $info [, array $query ] ) : string

Assemble a url.

Список параметров

info

query

Примеры

Пример #1 Yaf_Route_Rewrite::assemble()example

router = new Yaf_Router();

$route  = new Yaf_Route_Rewrite(
                "/product/:name/:id/*",
                array(
                        'controller' => "product",
                ),
                array()
);

$router->addRoute("rewrite", $route);

var_dump($router->getRoute('rewrite')->assemble(
                        array(
                                ':name' => 'foo',
                                ':id' => 'bar',
                                ':tmpkey1' => 'tmpval1'
                        ),
                        array(
                                'tkey1' => 'tval1',
                                'tkey2' => 'tval2'
                             )
                        )
);

Результатом выполнения данного примера будет что-то подобное:

string(57) "/product/foo/bar/tmpkey1/tmpval1/?tkey1=tval1&tkey2=tval2"

Возвращаемые значения


Yaf_Route_Rewrite constructor

  • « Yaf_Route_Rewrite::assemble
  • Yaf_Route_Rewrite::route »
  • PHP Manual
  • Yaf_Route_Rewrite
  • Yaf_Route_Rewrite constructor

Yaf_Route_Rewrite::__construct

(Yaf >=1.0.0)

Yaf_Route_Rewrite::__construct — Yaf_Route_Rewrite constructor

Описание

public Yaf_Route_Rewrite::__construct ( string $match , array $route [, array $verify ] )

Список параметров

match

A pattern, will be used to match a request uri, if it doesn't match, Yaf_Route_Rewrite will return FALSE.

You can use :name style to name segments matched, and use * to match the rest of the URL segments.

route

When the match pattern matches the request uri, Yaf_Route_Rewrite will use this to decide which module/controller/action is the destination.

Either of module/controller/action in this array is optional, if you don't assign a specific value, it will be routed to default.

verify

Возвращаемые значения

Примеры

Пример #1 Yaf_Route_Rewrite()example

<?php
   /**
    * Add a rewrite route to Yaf_Router route stack
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_rewrite(
           "/product/:name/:id/*", //match request uri leading "/product"
           array(
               'controller' => "product",  //route to product controller,
           ),
        )
    );
?>

Результатом выполнения данного примера будет что-то подобное:

/* for http://yourdomain.com/product/foo/22/foo/bar
 * route will result in following values:
 */
array(
  "controller" => "product",
  "module"     => "index", //(default)
  "action"     => "index", //(default)
)

/**
 * and request parameters:
 */
array(
  "name" => "foo",
  "id"   => 22,
  "foo"  => bar
)

Пример #2 Yaf_Route_Rewrite()example

<?php
   /**
    * Add a rewrite route to Yaf_Router route stack by calling addconfig
    */
    $config = array(
        "name" => array(
           "type"  => "rewrite",        //Yaf_Route_Rewrite route
           "match" => "/user-list/:id", //match only /user/list/?/
           "route" => array(
               'controller' => "user",  //route to user controller,
               'action'     => "list",  //route to list action
           ),
        ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

Результатом выполнения данного примера будет что-то подобное:

/* for http://yourdomain.com/user-list/22
 * route will result in following values:
 */
array(
  "controller" => "user",
  "action"     => "list",
  "module"     => "index", //(default)
)

/**
 * and request parameters:
 */
array(
  "id"   => 22,
)

Пример #3 Yaf_Route_Rewrite(as of 2.3.0)()example

<?php
   /**
    * Add a rewrite route use match result as m/c/a name
    */
    $config = array(
        "name" => array(
           "type"  => "rewrite",
           "match" => "/user-list/:a/:id", //match only /user-list/*
           "route" => array(
               'controller' => "user",   //route to user controller,
               'action'     => ":a",     //route to :a action
           ),
        ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

Результатом выполнения данного примера будет что-то подобное:

/* for http://yourdomain.com/user-list/list/22
 * route will result in following values:
 */
array(
  "controller" => "user",
  "action"     => "list",
  "module"     => "index", //(default)
)

/**
 * and request parameters:
 */
array(
  "id"   => 22,
)

Смотрите также

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Router::addConfig() - Add config-defined routes into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Map


The route purpose

  • « Yaf_Route_Rewrite::__construct
  • Yaf_Router »
  • PHP Manual
  • Yaf_Route_Rewrite
  • The route purpose

Yaf_Route_Rewrite::route

(Yaf >=1.0.0)

Yaf_Route_Rewrite::route — The route purpose

Описание

public Yaf_Route_Rewrite::route ( Yaf_Request_Abstract $request ) : bool

Список параметров

request

Возвращаемые значения


The Yaf_Router class

(Yaf >=1.0.0)

Введение

Yaf_Router is the standard framework router. Routing is the process of taking a URI endpoint (that part of the URI which comes after the base URI: see Yaf_Request_Abstract::setBaseUri()) and decomposing it into parameters to determine which module, controller, and action of that controller should receive the request. This values of the module, controller, action and other parameters are packaged into a Yaf_Request_Abstract object which is then processed by Yaf_Dispatcher. Routing occurs only once: when the request is initially received and before the first controller is dispatched. Yaf_Router is designed to allow for mod_rewrite-like functionality using pure PHP structures. It is very loosely based on Ruby on Rails routing and does not require any prior knowledge of webserver URL rewriting. It is designed to work with a single Apache mod_rewrite rule (one of):

Пример #1 Rewrite rule for Apache

RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css|html)$ index.php
or (preferred):

Пример #2 Rewrite rule for Apache

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
If using Lighttpd, the following rewrite rule is valid:

Пример #3 Rewrite rule for Lighttpd

url.rewrite-once = (
  ".*\?(.*)$" => "/index.php?$1",
  ".*\.(js|ico|gif|jpg|png|css|html)$" => "$0",
  "" => "/index.php"
)
If using Nginx, use the following rewrite rule:

Пример #4 Rewrite rule for Nginx

server {
  listen ****;
  server_name  yourdomain.com;
  root   document_root;
  index  index.php index.html;

  if (!-e $request_filename) {
    rewrite ^/(.*)  /index.php/$1 last;
  }
}

Default route

Yaf_Router comes preconfigured with a default route Yaf_Route_Static, which will match URIs in the shape of controller/action. Additionally, a module name may be specified as the first path element, allowing URIs of the form module/controller/action. Finally, it will also match any additional parameters appended to the URI by default - controller/action/var1/value1/var2/value2.

Замечание:

Module name must be defined in config, considering application.module="Index,Foo,Bar", in this case, only index, foo and bar can be considered as a module name. if doesn't config, there is only one module named "Index".

Some examples of how such routes are matched:

Пример #5 Yaf_Route_Static(default route)example

// Assuming the following configure:
$conf = array(
   "application" => array(
      "modules" => "Index,Blog",
   ),
);

Controller only:
http://example/news
    controller == news
Action only(when defined yaf.action_prefer=1 in php.ini)
    action  == news

Invalid module maps to controller name:
http://example/foo
    controller == foo

Module + controller:
http://example/blog/archive
    module     == blog
    controller == archive

Module + controller + action:
http://example/blog/archive/list
    module     == blog
    controller == archive
    action     == list

Module + controller + action + params:
http://example/blog/archive/list/sort/alpha/date/desc
    module     == blog
    controller == archive
    action     == list
    sort       == alpha
    date       == desc

Обзор классов

Yaf_Router {
/* Свойства */
protected $_routes ;
protected $_current ;
/* Методы */
public addConfig ( Yaf_Config_Abstract $config ) : bool
public addRoute ( string $name , Yaf_Route_Abstract $route ) : bool
public __construct ( void )
public getCurrentRoute ( void ) : string
public getRoute ( string $name ) : Yaf_Route_Interface
public getRoutes ( void ) : mixed
public route ( Yaf_Request_Abstract $request ) : bool
}

Свойства

_routes

registered routes stack

_current

after routing phase, this indicated the name of which route is used to route current request. you can get this name by Yaf_Router::getCurrentRoute().

Содержание

  • Yaf_Router::addConfig — Add config-defined routes into Router
  • Yaf_Router::addRoute — Add new Route into Router
  • Yaf_Router::__construct — Yaf_Router constructor
  • Yaf_Router::getCurrentRoute — Get the effective route name
  • Yaf_Router::getRoute — Retrieve a route by name
  • Yaf_Router::getRoutes — Retrieve registered routes
  • Yaf_Router::route — The route purpose


Add config-defined routes into Router

  • « Yaf_Router
  • Yaf_Router::addRoute »
  • PHP Manual
  • Yaf_Router
  • Add config-defined routes into Router

Yaf_Router::addConfig

(Yaf >=1.0.0)

Yaf_Router::addConfig — Add config-defined routes into Router

Описание

public Yaf_Router::addConfig ( Yaf_Config_Abstract $config ) : bool

Add routes defined by configs into Yaf_Router's route stack

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An Yaf_Config_Abstract instance, which should contains one or more valid route configs

Примеры

Пример #1 application.ini()example

;the order is very important, the prior one will be called first

;a rewrite route match request /product/*/*
routes.route_name.type="rewrite"
routes.route_name.match="/product/:name/:value"
routes.route_name.route.controller=product
routes.route_name.route.action=info

;a regex route match request /list/*/*
routes.route_name1.type="regex"
routes.route_name1.match="#^list/([^/]*)/([^/]*)#"
routes.route_name1.route.controller=Index
routes.route_name1.route.action=action
routes.route_name1.map.1=name
routes.route_name1.map.2=value

;a simple route match /**?c=controller&a=action&m=module
routes.route_name2.type="simple"
routes.route_name2.controller=c
routes.route_name2.module=m
routes.route_name2.action=a

;a simple router match /**?r=PATH_INFO
routes.route_name3.type="supervar"
routes.route_name3.varname=r

;a map route match any request to controller
routes.route_name4.type="map"
routes.route_name4.controllerPrefer=TRUE
routes.route_namer.delimiter="#!"

Пример #2 Yaf_Dispatcher::autoConfig()example

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
    public function _initConfig() {
        $config = Yaf_Application::app()->getConfig();
        Yaf_Registry::set("config", $config);
    }

    public function _initRoute(Yaf_Dispatcher $dispatcher) {
        $router = $dispatcher->getRouter();
        /**
         * we can add some pre-defined routes in application.ini
         */
        $router->addConfig(Yaf_Registry::get("config")->routes);
    }
?>

Смотрите также

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


Add new Route into Router

  • « Yaf_Router::addConfig
  • Yaf_Router::__construct »
  • PHP Manual
  • Yaf_Router
  • Add new Route into Router

Yaf_Router::addRoute

(Yaf >=1.0.0)

Yaf_Router::addRoute — Add new Route into Router

Описание

public Yaf_Router::addRoute ( string $name , Yaf_Route_Abstract $route ) : bool

defaultly, Yaf_Router using a Yaf_Route_Static as its defualt route. you can add new routes into router's route stack by calling this method.

the newer route will be called before the older(route stack), and if the newer router return TRUE, the router process will be end. otherwise, the older one will be called.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Yaf_Dispatcher::autoRender()example

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
    public function _initConfig() {
        $config = Yaf_Application::app()->getConfig();
        Yaf_Registry::set("config", $config);
    }

    public function _initRoute(Yaf_Dispatcher $dispatcher) {
        $router = $dispatcher->getRouter();
        /**
         * we can add some pre-defined routes in application.ini
         */
        $router->addConfig(Yaf_Registry::get("config")->routes);
        /**
         * add a Rewrite route, then for a request uri:
         * http://***/product/list/22/foo
         * will be matched by this route, and result:
         *
         *  [module] =>
         *  [controller] => product
         *  [action] => info
         *  [method] => GET
         *  [params:protected] => Array
         *      (
         *          [id] => 22
         *          [name] => foo
         *      )
         *
         */
        $route  = new Yaf_Route_Rewrite(
            "/product/list/:id/:name",
            array(
                "controller" => "product",
                "action"     => "info",
            )
        );

        $router->addRoute('dummy', $route);
    }
?>

Смотрите также

  • Yaf_Router::addConfig() - Add config-defined routes into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


Yaf_Router constructor

  • « Yaf_Router::addRoute
  • Yaf_Router::getCurrentRoute »
  • PHP Manual
  • Yaf_Router
  • Yaf_Router constructor

Yaf_Router::__construct

(Yaf >=1.0.0)

Yaf_Router::__construct — Yaf_Router constructor

Описание

public Yaf_Router::__construct ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get the effective route name

  • « Yaf_Router::__construct
  • Yaf_Router::getRoute »
  • PHP Manual
  • Yaf_Router
  • Get the effective route name

Yaf_Router::getCurrentRoute

(Yaf >=1.0.0)

Yaf_Router::getCurrentRoute — Get the effective route name

Описание

public Yaf_Router::getCurrentRoute ( void ) : string

Get the name of the route which is effective in the route process.

Замечание:

You should call this method after the route process finished, since before that, this method will always return NULL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

String, the name of the effective route.

Примеры

Пример #1 Register some routes in Bootstrap

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
    public function _initConfig() {
        $config = Yaf_Application::app()->getConfig();
        Yaf_Registry::set("config", $config);
    }

    public function _initRoute(Yaf_Dispatcher $dispatcher) {
        $router = $dispatcher->getRouter();
        $rewrite_route  = new Yaf_Route_Rewrite(
            "/product/list/:page",
            array(
                "controller" => "product",
                "action"     => "list",
            )
        );

        $regex_route  = new Yaf_Route_Rewrite(
            "#^/product/info/(\d+)",
            array(
                "controller" => "product",
                "action"     => "info",
            )
        );

        $router->addRoute('rewrite', $rewrite_route)->addRoute('regex', $regex_route);
    }

    /**
     * register plugin
     */
    public function __initPlugins(Yaf_Dispatcher $dispatcher) {
        $dispatcher->registerPlugin(new DummyPlugin());
    }
?>

Пример #2 plugin Dummy.php (under application.directory/plugins)

<?php
class DummyPlugin extends Yaf_Plugin_Abstract {

    public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
         var_dump(Yaf_Dispatcher::getInstance()->getRouter()->getCurrentRoute());
    }
?>
?>

Результатом выполнения данного примера будет что-то подобное:

/* for http://yourdomain.com/product/list/1
 * DummyPlugin will output:
 */
string(7) "rewrite"

/* for http://yourdomain.com/product/info/34
 * DummyPlugin will output:
 */
string(5) "regex"

/* for other request URI
 * DummyPlugin will output:
 */
string(8) "_default"

Смотрите также

  • Yaf_Bootstrap_Abstract
  • Yaf_Plugin_Abstract
  • Yaf_Router::addRoute() - Add new Route into Router


Retrieve a route by name

  • « Yaf_Router::getCurrentRoute
  • Yaf_Router::getRoutes »
  • PHP Manual
  • Yaf_Router
  • Retrieve a route by name

Yaf_Router::getRoute

(Yaf >=1.0.0)

Yaf_Router::getRoute — Retrieve a route by name

Описание

public Yaf_Router::getRoute ( string $name ) : Yaf_Route_Interface

Retrieve a route by name, see also Yaf_Router::getCurrentRoute()

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Bootstrap_Abstract
  • Yaf_Plugin_Abstract
  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Router::getCurrentRoute() - Get the effective route name


Retrieve registered routes

  • « Yaf_Router::getRoute
  • Yaf_Router::route »
  • PHP Manual
  • Yaf_Router
  • Retrieve registered routes

Yaf_Router::getRoutes

(Yaf >=1.0.0)

Yaf_Router::getRoutes — Retrieve registered routes

Описание

public Yaf_Router::getRoutes ( void ) : mixed

Retrieve registered routes

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The route purpose

  • « Yaf_Router::getRoutes
  • Yaf_Route_Simple »
  • PHP Manual
  • Yaf_Router
  • The route purpose

Yaf_Router::route

(Yaf >=1.0.0)

Yaf_Router::route — The route purpose

Описание

public Yaf_Router::route ( Yaf_Request_Abstract $request ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Yaf_Route_Simple

(Yaf >=1.0.0)

Введение

Yaf_Route_Simple будет сравнивать строку запроса и выдавать информацию по соответствующему маршруту.

Все, что вам нужно сделать, это сказать Yaf_Route_Simple, какой ключ в $_GET является модулем, какой контроллером, а какой действием.

Yaf_Route_Simple::route() всегда возвращает TRUE, так что важно поместить Yaf_Route_Simple в начало стека маршрутизации, иначе никакие другие маршрутизаторы не будут вызваны.

Обзор классов

Yaf_Route_Simple implements Yaf_Route_Interface {
/* Свойства */
protected $controller ;
protected $module ;
protected $action ;
/* Методы */
public assemble ( array $info [, array $query ] ) : string
public __construct ( string $module_name , string $controller_name , string $action_name )
public route ( Yaf_Request_Abstract $request ) : bool
}

Свойства

controller

module

action

Содержание

  • Yaf_Route_Simple::assemble — Assemble a url
  • Yaf_Route_Simple::__construct — Yaf_Route_Simple constructor
  • Yaf_Route_Simple::route — Route a request


Assemble a url

  • « Yaf_Route_Simple
  • Yaf_Route_Simple::__construct »
  • PHP Manual
  • Yaf_Route_Simple
  • Assemble a url

Yaf_Route_Simple::assemble

(Yaf >=2.3.0)

Yaf_Route_Simple::assemble — Assemble a url

Описание

public Yaf_Route_Simple::assemble ( array $info [, array $query ] ) : string

Assemble a url.

Список параметров

info

query

Примеры

Пример #1 Yaf_Route_Simple::assemble()example

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Simple('m', 'c', 'a');

$router->addRoute("simple", $route);

var_dump($router->getRoute('simple')->assemble(
            array(
                ':a' => 'yafaction',
                'tkey' => 'tval',
                ':c' => 'yafcontroller',
                ':m' => 'yafmodule'
                ),
            array(
                'tkey1' => 'tval1',
                'tkey2' => 'tval2'
                )
            ));

Результатом выполнения данного примера будет что-то подобное:

string(64) "?m=yafmodule&c=yafcontroller&a=yafaction&tkey1=tval1&tkey2=tval2"

Возвращаемые значения


Yaf_Route_Simple constructor

  • « Yaf_Route_Simple::assemble
  • Yaf_Route_Simple::route »
  • PHP Manual
  • Yaf_Route_Simple
  • Yaf_Route_Simple constructor

Yaf_Route_Simple::__construct

(Yaf >=1.0.0)

Yaf_Route_Simple::__construct — Yaf_Route_Simple constructor

Описание

public Yaf_Route_Simple::__construct ( string $module_name , string $controller_name , string $action_name )

Yaf_Route_Simple will get route info from query string. and the parameters of this constructor will used as keys while searching for the route info in $_GET.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

module_name

The key name of the module info.

controller_name

the key name of the controller info.

action_name

the key name of the action info.

Возвращаемые значения

Always return TRUE.

Примеры

Пример #1 Yaf_Route_Simple::route()example

<?php
   $route = new Yaf_Route_Simple("m", "controller", "act");
   Yaf_Router::getInstance()->addRoute("simple", $route);
?>

Пример #2 Yaf_Route_Simple::route()example

Request: http://yourdomain.com/path/?controller=a&act=b
=> module = default(index), controller = a, action = b

Request: http://yourdomain.com/path
=> module = default(index), controller = default(index), action = default(index)

Смотрите также

  • Yaf_Route_Supervar::route() - The route purpose
  • Yaf_Route_Static::route() - Route a request
  • Yaf_Route_Regex::route() - Цель маршрута
  • Yaf_Route_Rewrite::route() - The route purpose
  • Yaf_Route_Map::route() - The route purpose


Route a request

  • « Yaf_Route_Simple::__construct
  • Yaf_Route_Static »
  • PHP Manual
  • Yaf_Route_Simple
  • Route a request

Yaf_Route_Simple::route

(Yaf >=1.0.0)

Yaf_Route_Simple::route — Route a request

Описание

public Yaf_Route_Simple::route ( Yaf_Request_Abstract $request ) : bool

see Yaf_Route_Simple::__construct()

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

Возвращаемые значения

always be TRUE

Смотрите также

  • Yaf_Route_Supervar::route() - The route purpose
  • Yaf_Route_Static::route() - Route a request
  • Yaf_Route_Regex::route() - Цель маршрута
  • Yaf_Route_Rewrite::route() - The route purpose
  • Yaf_Route_Map::route() - The route purpose


Класс Yaf_Route_Static

(Yaf >=1.0.0)

Введение

По умолчанию, Yaf_Router содержит только Yaf_Route_Static.

И Yaf_Route_Static спроектирован таким образом, чтобы покрывать 80% всех возможных потребностей в маршрутизации.

Пожалуйста *ОБРАТИТЕ ВНИМАНИЕ*, что не нужно инстанциировать Yaf_Route_Static, также не нужно добавлять его в стек Yaf_Router, так как он есть в стеке маршрутизации Yaf_Router по умолчанию и всегда будет вызываться последним.

Обзор классов

Yaf_Route_Static implements Yaf_Router {
/* Методы */
public assemble ( array $info [, array $query ] ) : string
public match ( string $uri ) : void
public route ( Yaf_Request_Abstract $request ) : bool
}

Содержание

  • Yaf_Route_Static::assemble — Assemble a url
  • Yaf_Route_Static::match — The match purpose
  • Yaf_Route_Static::route — Route a request


Assemble a url

  • « Yaf_Route_Static
  • Yaf_Route_Static::match »
  • PHP Manual
  • Yaf_Route_Static
  • Assemble a url

Yaf_Route_Static::assemble

(Yaf >=2.3.0)

Yaf_Route_Static::assemble — Assemble a url

Описание

public Yaf_Route_Static::assemble ( array $info [, array $query ] ) : string

Assemble a url.

Список параметров

info

query

Примеры

Пример #1 Yaf_Route_Static::assemble()example

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Static();

$router->addRoute("static", $route);

var_dump($router->getRoute('static')->assemble(
            array(
                ':a' => 'yafaction',
                'tkey' => 'tval',
                ':c' => 'yafcontroller',
                ':m' => 'yafmodule'
            ),
        )
);

var_dump($router->getRoute('static')->assemble(
            array(
                ':a' => 'yafaction',
                'tkey' => 'tval',
                ':c' => 'yafcontroller',
                ':m' => 'yafmodule'
            ),
            array(
                'tkey1' => 'tval1',
                'tkey2' => 'tval2'
            )
        )
);

Результатом выполнения данного примера будет что-то подобное:

string(%d) "/yafmodule/yafcontroller/yafaction"
string(%d) "/yafmodule/yafcontroller/yafaction?tkey1=tval1&tkey2=tval2"

Возвращаемые значения


The match purpose

  • « Yaf_Route_Static::assemble
  • Yaf_Route_Static::route »
  • PHP Manual
  • Yaf_Route_Static
  • The match purpose

Yaf_Route_Static::match

(Yaf >=1.0.0)

Yaf_Route_Static::match — The match purpose

Описание

public Yaf_Route_Static::match ( string $uri ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

uri

Возвращаемые значения


Route a request

  • « Yaf_Route_Static::match
  • Yaf_Route_Supervar »
  • PHP Manual
  • Yaf_Route_Static
  • Route a request

Yaf_Route_Static::route

(Yaf >=1.0.0)

Yaf_Route_Static::route — Route a request

Описание

public Yaf_Route_Static::route ( Yaf_Request_Abstract $request ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

Возвращаемые значения

always be TRUE

Примеры

Пример #1 Yaf_Route_Static::route()example

// assuming there is only one module defined:Index
Request: http://yourdomain.com/a/b
=> module = index, controller=a, action=b

//assuming ap.action_prefer = On
Request: http://yourdomain.com/b
=> module = default(index), controller = default(index), action = b

//assuming ap.action_prefer = Off
Request: http://yourdomain.com/b
=> module = default(index), controller = b, action = default(index)

Request: http://yourdomain.com/a/b/foo/bar/test/a/id/4
=> module = default(index), controller = a, action = b, request parameters: foo = bar, test = a, id = 4

Смотрите также

  • Yaf_Route_Supervar::route() - The route purpose
  • Yaf_Route_Simple::route() - Route a request
  • Yaf_Route_Regex::route() - Цель маршрута
  • Yaf_Route_Rewrite::route() - The route purpose
  • Yaf_Route_Map::route() - The route purpose


Класс Yaf_Route_Supervar

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Route_Supervar implements Yaf_Route_Interface {
/* Свойства */
protected $_var_name ;
/* Методы */
public assemble ( array $info [, array $query ] ) : string
public __construct ( string $supervar_name )
public route ( Yaf_Request_Abstract $request ) : bool
}

Свойства

_var_name

Содержание

  • Yaf_Route_Supervar::assemble — Assemble a url
  • Yaf_Route_Supervar::__construct — The __construct purpose
  • Yaf_Route_Supervar::route — The route purpose


Assemble a url

  • « Yaf_Route_Supervar
  • Yaf_Route_Supervar::__construct »
  • PHP Manual
  • Yaf_Route_Supervar
  • Assemble a url

Yaf_Route_Supervar::assemble

(Yaf >=2.3.0)

Yaf_Route_Supervar::assemble — Assemble a url

Описание

public Yaf_Route_Supervar::assemble ( array $info [, array $query ] ) : string

Assemble a url.

Список параметров

info

query

Примеры

Пример #1 Yaf_Route_Supervar::assemble()example

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Supervar('r');

$router->addRoute("supervar", $route);

var_dump($router->getRoute('supervar')->assemble(
        array(
              ':a' => 'yafaction',
              'tkey' => 'tval',
              ':c' => 'yafcontroller',
              ':m' => 'yafmodule'
        ),
        array(
              'tkey1' => 'tval1',
              'tkey2' => 'tval2'
        )
));

try {
var_dump($router->getRoute('supervar')->assemble(
        array(
              ':a' => 'yafaction',
              'tkey' => 'tval',
              ':m' => 'yafmodule'
        ),
        array(
              'tkey1' => 'tval1',
              'tkey2' => 'tval2',
              1 => array(),
        )
));
} catch (Exception $e) {
    var_dump($e->getMessage());
}

Результатом выполнения данного примера будет что-то подобное:

string(%d) "?r=/yafmodule/yafcontroller/yafaction&tkey1=tval1&tkey2=tval2"
string(%d) "You need to specify the controller by ':c'"

Возвращаемые значения


The __construct purpose

  • « Yaf_Route_Supervar::assemble
  • Yaf_Route_Supervar::route »
  • PHP Manual
  • Yaf_Route_Supervar
  • The __construct purpose

Yaf_Route_Supervar::__construct

(Yaf >=1.0.0)

Yaf_Route_Supervar::__construct — The __construct purpose

Описание

public Yaf_Route_Supervar::__construct ( string $supervar_name )

Yaf_Route_Supervar is similar with Yaf_Route_Static, the difference is Yaf_Route_Supervar will look for path info in query string, and the parameter supervar_name is the key.

Список параметров

supervar_name

The name of key.

Возвращаемые значения

Примеры

Пример #1 Yaf_Route_Supervar()example

<?php
   /**
    * Add a supervar route to Yaf_Router route stack
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Supervar("r"));
    );
?>

Результатом выполнения данного примера будет что-то подобное:

/** for request: http://yourdomain.com/xx/oo/?r=/ctr/act/var/value
  * will result in following:
  */
  array (
    "module"   => index(default),
    "controller" => ctr,
    "action"     => act,
    "params"     => array(
          "var" => value,
     )
  )

Смотрите также

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Router::addConfig() - Add config-defined routes into Router
  • Yaf_Route_Static
  • Yaf_Route_Regex
  • Yaf_Route_Simple
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


The route purpose

  • « Yaf_Route_Supervar::__construct
  • Yaf_Session »
  • PHP Manual
  • Yaf_Route_Supervar
  • The route purpose

Yaf_Route_Supervar::route

(Yaf >=1.0.0)

Yaf_Route_Supervar::route — The route purpose

Описание

public Yaf_Route_Supervar::route ( Yaf_Request_Abstract $request ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

Возвращаемые значения

If there is a key(which was defined in Yaf_Route_Supervar::__construct()) in $_GET, return TRUE. otherwise return FALSE.


Класс Yaf_Session

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Session implements Iterator , ArrayAccess , Countable {
/* Свойства */
protected static $_instance ;
protected $_session ;
protected $_started ;
/* Методы */
private __clone ( void ) : void
private __construct ( void )
public count ( void ) : void
public current ( void ) : void
public del ( string $name ) : void
public __get ( string $name ) : void
public static getInstance ( void ) : void
public has ( string $name ) : void
public __isset ( string $name ) : void
public key ( void ) : void
public next ( void ) : void
public offsetExists ( string $name ) : void
public offsetGet ( string $name ) : void
public offsetSet ( string $name , string $value ) : void
public offsetUnset ( string $name ) : void
public rewind ( void ) : void
public __set ( string $name , string $value ) : void
private __sleep ( void ) : void
public start ( void ) : void
public __unset ( string $name ) : void
public valid ( void ) : void
private __wakeup ( void ) : void
}

Свойства

_instance

_session

_started

Содержание

  • Yaf_Session::__clone — The __clone purpose
  • Yaf_Session::__construct — Constructor of Yaf_Session
  • Yaf_Session::count — The count purpose
  • Yaf_Session::current — The current purpose
  • Yaf_Session::del — The del purpose
  • Yaf_Session::__get — The __get purpose
  • Yaf_Session::getInstance — The getInstance purpose
  • Yaf_Session::has — The has purpose
  • Yaf_Session::__isset — The __isset purpose
  • Yaf_Session::key — The key purpose
  • Yaf_Session::next — The next purpose
  • Yaf_Session::offsetExists — The offsetExists purpose
  • Yaf_Session::offsetGet — The offsetGet purpose
  • Yaf_Session::offsetSet — The offsetSet purpose
  • Yaf_Session::offsetUnset — The offsetUnset purpose
  • Yaf_Session::rewind — The rewind purpose
  • Yaf_Session::__set — The __set purpose
  • Yaf_Session::__sleep — The __sleep purpose
  • Yaf_Session::start — The start purpose
  • Yaf_Session::__unset — The __unset purpose
  • Yaf_Session::valid — The valid purpose
  • Yaf_Session::__wakeup — The __wakeup purpose


The __clone purpose

  • « Yaf_Session
  • Yaf_Session::__construct »
  • PHP Manual
  • Yaf_Session
  • The __clone purpose

Yaf_Session::__clone

(Yaf >=1.0.0)

Yaf_Session::__clone — The __clone purpose

Описание

private Yaf_Session::__clone ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Constructor of Yaf_Session

  • « Yaf_Session::__clone
  • Yaf_Session::count »
  • PHP Manual
  • Yaf_Session
  • Constructor of Yaf_Session

Yaf_Session::__construct

(Yaf >=1.0.0)

Yaf_Session::__construct — Constructor of Yaf_Session

Описание

private Yaf_Session::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The count purpose

  • « Yaf_Session::__construct
  • Yaf_Session::current »
  • PHP Manual
  • Yaf_Session
  • The count purpose

Yaf_Session::count

(Yaf >=1.0.0)

Yaf_Session::count — The count purpose

Описание

public Yaf_Session::count ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The current purpose

  • « Yaf_Session::count
  • Yaf_Session::del »
  • PHP Manual
  • Yaf_Session
  • The current purpose

Yaf_Session::current

(Yaf >=1.0.0)

Yaf_Session::current — The current purpose

Описание

public Yaf_Session::current ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The del purpose

  • « Yaf_Session::current
  • Yaf_Session::__get »
  • PHP Manual
  • Yaf_Session
  • The del purpose

Yaf_Session::del

(Yaf >=1.0.0)

Yaf_Session::del — The del purpose

Описание

public Yaf_Session::del ( string $name ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The __get purpose

  • « Yaf_Session::del
  • Yaf_Session::getInstance »
  • PHP Manual
  • Yaf_Session
  • The __get purpose

Yaf_Session::__get

(Yaf >=1.0.0)

Yaf_Session::__get — The __get purpose

Описание

public Yaf_Session::__get ( string $name ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The getInstance purpose

  • « Yaf_Session::__get
  • Yaf_Session::has »
  • PHP Manual
  • Yaf_Session
  • The getInstance purpose

Yaf_Session::getInstance

(Yaf >=1.0.0)

Yaf_Session::getInstance — The getInstance purpose

Описание

public static Yaf_Session::getInstance ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The has purpose

  • « Yaf_Session::getInstance
  • Yaf_Session::__isset »
  • PHP Manual
  • Yaf_Session
  • The has purpose

Yaf_Session::has

(Yaf >=1.0.0)

Yaf_Session::has — The has purpose

Описание

public Yaf_Session::has ( string $name ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The __isset purpose

  • « Yaf_Session::has
  • Yaf_Session::key »
  • PHP Manual
  • Yaf_Session
  • The __isset purpose

Yaf_Session::__isset

(Yaf >=1.0.0)

Yaf_Session::__isset — The __isset purpose

Описание

public Yaf_Session::__isset ( string $name ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The key purpose

  • « Yaf_Session::__isset
  • Yaf_Session::next »
  • PHP Manual
  • Yaf_Session
  • The key purpose

Yaf_Session::key

(Yaf >=1.0.0)

Yaf_Session::key — The key purpose

Описание

public Yaf_Session::key ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The next purpose

  • « Yaf_Session::key
  • Yaf_Session::offsetExists »
  • PHP Manual
  • Yaf_Session
  • The next purpose

Yaf_Session::next

(Yaf >=1.0.0)

Yaf_Session::next — The next purpose

Описание

public Yaf_Session::next ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The offsetExists purpose

  • « Yaf_Session::next
  • Yaf_Session::offsetGet »
  • PHP Manual
  • Yaf_Session
  • The offsetExists purpose

Yaf_Session::offsetExists

(Yaf >=1.0.0)

Yaf_Session::offsetExists — The offsetExists purpose

Описание

public Yaf_Session::offsetExists ( string $name ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The offsetGet purpose

  • « Yaf_Session::offsetExists
  • Yaf_Session::offsetSet »
  • PHP Manual
  • Yaf_Session
  • The offsetGet purpose

Yaf_Session::offsetGet

(Yaf >=1.0.0)

Yaf_Session::offsetGet — The offsetGet purpose

Описание

public Yaf_Session::offsetGet ( string $name ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The offsetSet purpose

  • « Yaf_Session::offsetGet
  • Yaf_Session::offsetUnset »
  • PHP Manual
  • Yaf_Session
  • The offsetSet purpose

Yaf_Session::offsetSet

(Yaf >=1.0.0)

Yaf_Session::offsetSet — The offsetSet purpose

Описание

public Yaf_Session::offsetSet ( string $name , string $value ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


The offsetUnset purpose

  • « Yaf_Session::offsetSet
  • Yaf_Session::rewind »
  • PHP Manual
  • Yaf_Session
  • The offsetUnset purpose

Yaf_Session::offsetUnset

(Yaf >=1.0.0)

Yaf_Session::offsetUnset — The offsetUnset purpose

Описание

public Yaf_Session::offsetUnset ( string $name ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The rewind purpose

  • « Yaf_Session::offsetUnset
  • Yaf_Session::__set »
  • PHP Manual
  • Yaf_Session
  • The rewind purpose

Yaf_Session::rewind

(Yaf >=1.0.0)

Yaf_Session::rewind — The rewind purpose

Описание

public Yaf_Session::rewind ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __set purpose

  • « Yaf_Session::rewind
  • Yaf_Session::__sleep »
  • PHP Manual
  • Yaf_Session
  • The __set purpose

Yaf_Session::__set

(Yaf >=1.0.0)

Yaf_Session::__set — The __set purpose

Описание

public Yaf_Session::__set ( string $name , string $value ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


The __sleep purpose

  • « Yaf_Session::__set
  • Yaf_Session::start »
  • PHP Manual
  • Yaf_Session
  • The __sleep purpose

Yaf_Session::__sleep

(Yaf >=1.0.0)

Yaf_Session::__sleep — The __sleep purpose

Описание

private Yaf_Session::__sleep ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The start purpose

  • « Yaf_Session::__sleep
  • Yaf_Session::__unset »
  • PHP Manual
  • Yaf_Session
  • The start purpose

Yaf_Session::start

(Yaf >=1.0.0)

Yaf_Session::start — The start purpose

Описание

public Yaf_Session::start ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __unset purpose

  • « Yaf_Session::start
  • Yaf_Session::valid »
  • PHP Manual
  • Yaf_Session
  • The __unset purpose

Yaf_Session::__unset

(Yaf >=1.0.0)

Yaf_Session::__unset — The __unset purpose

Описание

public Yaf_Session::__unset ( string $name ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The valid purpose

  • « Yaf_Session::__unset
  • Yaf_Session::__wakeup »
  • PHP Manual
  • Yaf_Session
  • The valid purpose

Yaf_Session::valid

(Yaf >=1.0.0)

Yaf_Session::valid — The valid purpose

Описание

public Yaf_Session::valid ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __wakeup purpose

  • « Yaf_Session::valid
  • Yaf_Exception »
  • PHP Manual
  • Yaf_Session
  • The __wakeup purpose

Yaf_Session::__wakeup

(Yaf >=1.0.0)

Yaf_Session::__wakeup — The __wakeup purpose

Описание

private Yaf_Session::__wakeup ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Yaf_Exception

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
public __construct ( void )
public getPrevious ( void ) : void
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Содержание

  • Yaf_Exception::__construct — Конструктор класса Yaf_Exception
  • Yaf_Exception::getPrevious — Получить предыдущее исключение


Конструктор класса Yaf_Exception

  • « Yaf_Exception
  • Yaf_Exception::getPrevious »
  • PHP Manual
  • Yaf_Exception
  • Конструктор класса Yaf_Exception

Yaf_Exception::__construct

(Yaf >=1.0.0)

Yaf_Exception::__construct — Конструктор класса Yaf_Exception

Описание

public Yaf_Exception::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить предыдущее исключение

  • « Yaf_Exception::__construct
  • Yaf_Exception_TypeError »
  • PHP Manual
  • Yaf_Exception
  • Получить предыдущее исключение

Yaf_Exception::getPrevious

(Yaf >=1.0.0)

Yaf_Exception::getPrevious — Получить предыдущее исключение

Описание

public Yaf_Exception::getPrevious ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Yaf_Exception_TypeError

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_TypeError extends Yaf_Exception {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public Yaf_Exception::getPrevious ( void ) : void
}


Класс Yaf_Exception_StartupError

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_StartupError extends Yaf_Exception {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public Yaf_Exception::getPrevious ( void ) : void
}


Класс Yaf_Exception_DispatchFailed

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_DispatchFailed extends Yaf_Exception {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public Yaf_Exception::getPrevious ( void ) : void
}


Класс Yaf_Exception_RouterFailed

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_RouterFailed extends Yaf_Exception {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public Yaf_Exception::getPrevious ( void ) : void
}


Класс Yaf_Exception_LoadFailed

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_LoadFailed extends Yaf_Exception {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public Yaf_Exception::getPrevious ( void ) : void
}


Класс Yaf_Exception_LoadFailed_Module

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_LoadFailed_Module extends Yaf_Exception_LoadFailed {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public Yaf_Exception::getPrevious ( void ) : void
}


Класс Yaf_Exception_LoadFailed_Controller

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_LoadFailed_Controller extends Yaf_Exception_LoadFailed {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public Yaf_Exception::getPrevious ( void ) : void
}


Класс Yaf_Exception_LoadFailed_Action

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_LoadFailed_Action extends Yaf_Exception_LoadFailed {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public Yaf_Exception::getPrevious ( void ) : void
}


Класс Yaf_Exception_LoadFailed_View

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_LoadFailed_View extends Yaf_Exception_LoadFailed {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public Yaf_Exception::getPrevious ( void ) : void
}


Yaconf

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Yaconf — Класс Yaconf
    • Yaconf::get — Извлечь элемент
    • Yaconf::has — Определить, существует ли элемент


Введение

Еще один контейнер конфигураций (Yet Another Configurations Container, Yaconf) - контейнер конфигураций, который разбирает INI-файлы и сохраняет результат в PHP при его запуске, результат хранится на протяжении всего жизненного цикла PHP.

Yaconf сохраняет все конфигурации в качестве интернированной строки или неизменяемого массив, что означает, что они не могут быть подсчитаны по ссылке, таким образом, при извлечении конфигураций из yaconf, его можно рассматривать как zero-copy очень быстро.

Yaconf поддерживает разделы и наследование разделов в INI-файлах. Если PHP собран без поддержки ZTS, Yaconf также поддерживает автоматическую перезагрузку после изменений INI-файлов.

Yaconf требует PHP 7.0 или выше.

Пример #1 Пример INI

;простая пара ключ-значение
key=val
;хеш
hash.a=val
;массив
arr.0=val
;или так
arr[]=val
;использование констант PHP
version=PHP_VERION
;использование переменных среды
env=${PATH}

Пример #2 Пример INI с разделами

[SectionA]
key=val
hash.a=val

;SectionB наследуется от SectionA
[SectionB:SectionA]
;переопределение key из раздела SectionA
key=new_val


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Yaconf требует PHP 7.0 и выше.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Yaconf
Имя | По умолчанию | Место изменения | Список изменений
yaconf.check_delay | 300 | PHP_INI_SYSTEM |
yaconf.directory | /tmp/conf/ | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

yaconf.check_delay integer

Интервал времени, в течение которого Yaconf будет определять изменение файла ini (по времени изменения директории), если установлен ноль, требуется перезапуск PHP для перезагрузки конфигураций.

yaconf.directory string

Путь к директории, в которой находятся все файлы конфигурации INI.


  • « Типы ресурсов
  • Yaconf »
  • PHP Manual
  • Yaconf
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Класс Yaconf

(PECL yaconf >= 1.0.0)

Введение

Yaconf - контейнер конфигураций, он разбирает конфигурационные файлы, хранит результат в PHP при запуске PHP, результат сохраняется на протяжении всего жизненного цикла PHP.

Обзор классов

Yaconf {
/* Методы */
public static get ( string $name [, mixed $default_value = NULL ] ) : mixed
public static has ( string $name ) : bool
}

Содержание

  • Yaconf::get — Извлечь элемент
  • Yaconf::has — Определить, существует ли элемент


Извлечь элемент

  • « Yaconf
  • Yaconf::has »
  • PHP Manual
  • Yaconf
  • Извлечь элемент

Yaconf::get

(PECL yaconf >= 1.0.0)

Yaconf::get — Извлечь элемент

Описание

public static Yaconf::get ( string $name [, mixed $default_value = NULL ] ) : mixed

Список параметров

name

Ключ конфигурации, ключ может быть вида "filename.key" или "filename.sectionName,key".

default_value

Если ключа не существует, Yaconf::get вернет значение этого параметра.

Возвращаемые значения

Возвращает результат конфигурации (строка или массив), если ключ существует, возвращает default_value, если его нет.

Примеры

Пример #1 Пример INI()

;файл foo.ini, находящийся в директории, заданной yaconf.directory
[SectionA]
;пара ключ-значение
key=val
;хеш
hash.a=val
;массив
arr.0=val
;или так
arr[]=val

;SectionB наследуется от SectionA
[SectionB:SectionA]
;переопределить конфигурацию key из раздела SectionA
key=new_val

Результатом выполнения данного примера будет что-то подобное:

php7 -r 'var_dump(Yaconf::get("foo.SectionA.key"));'
//string(3) "val"

php7 -r 'var_dump(Yaconf::get("foo.SectionB.key"));'
//string(7) "new_val"

php7 -r 'var_dump(Yaconf::get("foo")["SectionA"]["hash"]);'
//array(1)


Определить, существует ли элемент

  • « Yaconf::get
  • Taint »
  • PHP Manual
  • Yaconf
  • Определить, существует ли элемент

Yaconf::has

(PECL yaconf >= 1.0.0)

Yaconf::has — Определить, существует ли элемент

Описание

public static Yaconf::has ( string $name ) : bool

Список параметров

name

Возвращаемые значения


Taint

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Дополнительные подробности
    • Функции и операторы, которые могут распространять сомнительный символ испорченной строки
    • Функции и операторы, которые проверяют испорченные строки
    • Функции, которые не будут обрабатывать испорченную строку
  • Функции Taint
    • is_tainted — Проверяет, испорчена ли строка
    • taint — Испортить строку
    • untaint — Исправить строку


Введение

Taint - расширение, используемое для определения кодов XSS (испорченные или подозрительные строки, tainted strings). Также может использоваться для выявления попыток использования SQL-инъекций, shell-инъекций и т.д.

Если расширение включено, то когда вы передаете подозрительную строку (из $_GET, $_POST или $_COOKIE) некоторым функциям, будет выдано предупреждение.

Пример #1 Пример использования Taint()

<?php
$a = trim($_GET['a']);

$file_name = '/tmp' .  $a;
$output    = "Welcome, {$a} !!!";
$var       = "output";
$sql       = "Select *  from " . $a;
$sql      .= "ooxx";

echo $output;

print $$var;

include($file_name);

mysql_query($sql);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: main() [function.echo]: Attempt to echo a string that might be tainted

Warning: main() [function.echo]: Attempt to print a string that might be tainted

Warning: include() [function.include]: File path contains data that might be tainted

Warning: mysql_query() [function.mysql-query]: SQL statement contains data that might be tainted


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/taint.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Taint
Имя | По умолчанию | Место изменения | Список изменений
taint.enable | 0 | PHP_INI_SYSTEM |
taint.error_level | E_WARNING | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

taint.enable integer

Включено ли расширение.

taint.error_level integer

Тип ошибки, который будет возвращать расширение при обнаружении подозрительной строки.


  • « Настройка во время выполнения
  • Дополнительные подробности »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Дополнительные подробности

Содержание

  • Функции и операторы, которые могут распространять сомнительный символ испорченной строки
  • Функции и операторы, которые проверяют испорченные строки
  • Функции, которые не будут обрабатывать испорченную строку


Функции и операторы, которые могут распространять сомнительный символ испорченной строки

Функция/Оператор | Мин. версия
= (присваивание) | 0.1.0
. (конкатенация) | 0.1.0
"{$var}" (подстановка переменных) | 0.1.0
.= (присваивание с конкатенацией) | 0.1.0
strval | 0.3.0
explode/split | 0.3.0
implode/join | 0.3.0
sprintf | 0.3.0
vsprintf | 0.3.0
trim | 0.4.0
rtrim | 0.4.0
ltrim | 0.4.0
strstr | 0.5.0
str_pad | 0.5.0
str_replace | 0.5.0
substr | 0.5.0
strtolower | 0.5.0
strtoupper | 0.5.0


Функции и операторы, которые проверяют испорченные строки

Функция/Оператор | Мин. версия
Основные выражения
eval | 0.1.0
include/include_once | 0.1.0
require/require_once | 0.1.0
Функции вывода
echo | 0.1.0
print | 0.1.0
printf | 0.1.0
file_put_contents | 0.1.0
Функции файловой системы
fopen | 0.2.0
opendir | 0.2.0
basename | 0.2.0
dirname | 0.2.0
file | 0.2.0
pathinfo | 0.2.0
Соответствующие функции базы данных
mysql_query | 0.2.0
mysqli_query/MySQLi::query | 0.2.0
sqlite_query/SqliteDataBase::query | 0.3.0
sqlite_single_query/SqliteDataBase::singleQuery | 0.3.0
oci_parse | 0.3.0
PDO::query | 0.3.0
PDO::prepare | 0.3.0
SQLite3::query | 2.0.1
SQLite3::prepare | 2.0.1
Соответствующие функции командной строки
system | 0.1.0
exec | 0.1.0
proc_open | 0.1.0
passthru | 0.1.0
shell_exec | 0.3.0


Функции, которые не будут обрабатывать испорченную строку

Функция/Оператор | Мин. версия
addslashes | 0.1.0
addcslashes | 0.1.0
htmlspecialchars | 0.1.0
htmlentities | 0.1.0
escapeshellcmd | 0.1.0
mysql_escape_string | 0.1.0
mysql_real_escape_string | 0.1.0
mysqli_escape_string/MySQLi::escape_string | 0.1.0
mysqli_real_escape_string/MySQLi::real_escape_string | 0.1.0
sqlite_escape_string/SqliteDataBase::escapeString | 0.3.0
PDO::quote | 0.3.0


Функции Taint

Содержание

  • is_tainted — Проверяет, испорчена ли строка
  • taint — Испортить строку
  • untaint — Исправить строку


Проверяет, испорчена ли строка

  • « Функции Taint
  • taint »
  • PHP Manual
  • Функции Taint
  • Проверяет, испорчена ли строка

is_tainted

(PECL taint >=0.1.0)

is_tainted — Проверяет, испорчена ли строка

Описание

is_tainted ( string $string ) : bool

Проверяет, является ли строка испорченной

Список параметров

string

Возвращаемые значения

Возвращает TRUE, если строка испорчена или FALSE в противном случае.


Испортить строку

  • « is_tainted
  • untaint »
  • PHP Manual
  • Функции Taint
  • Испортить строку

taint

(PECL taint >=0.1.0)

taint — Испортить строку

Описание

taint ( string &$string [, string $... ] ) : bool

Делает строку испорченной строку. Используется в целях отладки.

Список параметров

string

...

Возвращаемые значения

Возвращает TRUE, если преобразование строки выполнено. Всегда возвращает TRUE, если расширение taint не включено.


Исправить строку

  • « taint
  • Структуры данных »
  • PHP Manual
  • Функции Taint
  • Исправить строку

untaint

(PECL taint >=0.1.0)

untaint — Исправить строку

Описание

untaint ( string &$string [, string $... ] ) : bool

Исправляет испорченную строку

Список параметров

string

...

Возвращаемые значения


Структуры данных

  • Введение
  • Установка и настройка
    • Требования
    • Установка
  • Предопределенные константы
  • Примеры
  • Коллекция — Интерфейс Collection
    • Ds\Collection::clear — Удаляет все значения
    • Ds\Collection::copy — Возвращает копию коллекции
    • Ds\Collection::isEmpty — Проверяет, пуста ли коллекция
    • Ds\Collection::toArray — Преобразует коллекцию в массив (array)
  • Хешируемое — Интерфейс Hashable
    • Ds\Hashable::equals — Определяет, равен ли текущий экземпляр переданному объекту
    • Ds\Hashable::hash — Возвращает скалярное значение для использования в качестве значения хеша
  • Последовательность — Интерфейс Sequence
    • Ds\Sequence::allocate — Выделение памяти под указанную вместимость
    • Ds\Sequence::apply — Обновление всех значений применением к ним переданной callback-функции
    • Ds\Sequence::capacity — Возвращает текущую вместимость
    • Ds\Sequence::contains — Проверяет, содержатся ли в коллекции заданные значения
    • Ds\Sequence::filter — Создает новую последовательность из элементов, выбранных с помощью заданной callback-функции
    • Ds\Sequence::find — Поиск индекса по значению
    • Ds\Sequence::first — Возвращает первый элемент коллекции
    • Ds\Sequence::get — Возвращает значение по индексу
    • Ds\Sequence::insert — Вставляет значения по указанному индексу
    • Ds\Sequence::join — Склеивает все значения в строку
    • Ds\Sequence::last — Возвращает последнее значение коллекции
    • Ds\Sequence::map — Возвращает результат применения callback-функции ко всем значениям коллекции
    • Ds\Sequence::merge — Возвращает результат добавления всех заданных значений в коллекцию
    • Ds\Sequence::pop — Удаляет и возвращает последнее значение
    • Ds\Sequence::push — Добавляет значения в конец последовательности
    • Ds\Sequence::reduce — Схлопывает коллекцию до одного значения используя callback-функцию
    • Ds\Sequence::remove — Удаляет и возвращает значение по индексу
    • Ds\Sequence::reverse — Переворачивает текущую коллекцию
    • Ds\Sequence::reversed — Возвращает перевернутую копию коллекции
    • Ds\Sequence::rotate — Перематывает последовательность на заданное число значений
    • Ds\Sequence::set — Заменяет значение по указанному индексу
    • Ds\Sequence::shift — Удаляет и возвращает первое значение
    • Ds\Sequence::slice — Возвращает под-коллекцию из заданного диапазона
    • Ds\Sequence::sort — Сортирует коллекцию
    • Ds\Sequence::sorted — Возвращает отсортированную по значению копию коллекции
    • Ds\Sequence::sum — Возвращает сумму всех значений коллекции
    • Ds\Sequence::unshift — Добавляет значения в начало последовательности
  • Вектор — Класс Vector
    • Ds\Vector::allocate — Выделяет память под указанную вместимость
    • Ds\Vector::apply — Обновляет все значения, применяя к ним переданную callback-функцию
    • Ds\Vector::capacity — Возвращает текущую вместимость
    • Ds\Vector::clear — Удаляет все значения
    • Ds\Vector::__construct — Создает новый экземпляр
    • Ds\Vector::contains — Проверяет, содержится ли в векторе заданные значения
    • Ds\Vector::copy — Возвращает поверхностную копию вектора
    • Ds\Vector::count — Возвращает количество элементов вектора
    • Ds\Vector::filter — Создает новый вектор из элементов, выбранных с помощью заданной callback-функции
    • Ds\Vector::find — Поиск индекса по значению
    • Ds\Vector::first — Возвращает первый элемент вектора
    • Ds\Vector::get — Возвращает значение по индексу
    • Ds\Vector::insert — Вставляет значения по указанному индексу
    • Ds\Vector::isEmpty — Проверяет, пуст ли вектор
    • Ds\Vector::join — Склеивает все значения в строку
    • Ds\Vector::jsonSerialize — Возвращает вектор в JSON-представлении
    • Ds\Vector::last — Возвращает последнее значение вектора
    • Ds\Vector::map — Возвращает результат применения callback-функции ко всем значениям вектора
    • Ds\Vector::merge — Возвращает результат добавления всех заданных значений в вектор
    • Ds\Vector::pop — Удаляет и возвращает последнее значение
    • Ds\Vector::push — Добавляет значения в конец вектора
    • Ds\Vector::reduce — Уменьшает вектор до одного значения, используя callback-функцию
    • Ds\Vector::remove — Удаляет и возвращает значение по индексу
    • Ds\Vector::reverse — Переворачивает текущий вектор
    • Ds\Vector::reversed — Возвращает перевернутую копию вектора
    • Ds\Vector::rotate — Перематывает вектор на заданное число значений
    • Ds\Vector::set — Заменяет значение по указанному индексу
    • Ds\Vector::shift — Удаляет и возвращает первое значение
    • Ds\Vector::slice — Возвращает подвектор из заданного диапазона
    • Ds\Vector::sort — Сортирует вектор
    • Ds\Vector::sorted — Возвращает отсортированную по значению копию коллекции
    • Ds\Vector::sum — Возвращает сумму всех значений коллекции
    • Ds\Vector::toArray — Преобразует коллекцию в массив (array)
    • Ds\Vector::unshift — Добавляет значения в начало вектора
  • Двухсторонняя очередь — Класс Deque
    • Ds\Deque::allocate — Выделяет память под указанную вместимость
    • Ds\Deque::apply — Обновляет все значения, применяя callback-функцию к каждому значению
    • Ds\Deque::capacity — Возвращает текущую вместимость
    • Ds\Deque::clear — Удаляет все значения из двухсторонней очереди
    • Ds\Deque::__construct — Создает новый экземпляр
    • Ds\Deque::contains — Проверяет, содержится ли в двухсторонней очереди заданные значения
    • Ds\Deque::copy — Возвращает поверхностную копию коллекции
    • Ds\Deque::count — Возвращает количество элементов двухсторонней очереди
    • Ds\Deque::filter — Создает новую двухстороннюю очередь из элементов, выбранных с помощью заданной callback-функции
    • Ds\Deque::find — Поиск индекса по значению
    • Ds\Deque::first — Возвращает первый элемент двухсторонней очереди
    • Ds\Deque::get — Возвращает значение по индексу
    • Ds\Deque::insert — Вставляет значения по указанному индексу
    • Ds\Deque::isEmpty — Проверяет, пуста ли двухсторонняя очередь
    • Ds\Deque::join — Склеивает все значения в строку
    • Ds\Deque::jsonSerialize — Возвращает коллекцию в JSON-представлении
    • Ds\Deque::last — Возвращает последнее значение двухсторонней очереди
    • Ds\Deque::map — Возвращает результат применения callback-функции ко всем значениям двухсторонней очереди
    • Ds\Deque::merge — Возвращает результат добавления всех заданных значений в двухстороннюю очередь
    • Ds\Deque::pop — Удаляет и возвращает последнее значение
    • Ds\Deque::push — Добавляет значения в конец двухсторонней очереди
    • Ds\Deque::reduce — Уменьшает коллекцию до одного значения, используя callback-функцию
    • Ds\Deque::remove — Удаляет и возвращает значение по индексу
    • Ds\Deque::reverse — Переворачивает текущую двухстороннюю очередь
    • Ds\Deque::reversed — Возвращает перевернутую копию двухсторонней очереди
    • Ds\Deque::rotate — Перематывает двухстороннюю очередь на заданное число значений
    • Ds\Deque::set — Заменяет значение по указанному индексу
    • Ds\Deque::shift — Удаляет и возвращает первое значение
    • Ds\Deque::slice — Возвращает подочередь из заданного диапазона
    • Ds\Deque::sort — Сортирует двухстороннюю очередь
    • Ds\Deque::sorted — Возвращает отсортированную по значению копию двухсторонней очереди
    • Ds\Deque::sum — Возвращает сумму всех значений двухсторонней очереди
    • Ds\Deque::toArray — Преобразует двухстороннюю очередь в массив (array)
    • Ds\Deque::unshift — Добавляет значения в начало двухсторонней очереди
  • Коллекция пар ключ-значение — Класс Map
    • Ds\Map::allocate — Выделяет необходимое количество памяти под требуюмую вместимость
    • Ds\Map::apply — Обновление всех значений применением к ним переданной callback-функции
    • Ds\Map::capacity — Возвращает текущую вместимость
    • Ds\Map::clear — Удаляет все значения из коллекции
    • Ds\Map::__construct — Создает новый экземпляр
    • Ds\Map::copy — Возвращает поверхностную копию коллекции
    • Ds\Map::count — Возвращает количество элементов коллекции
    • Ds\Map::diff — Создает новую коллекцию пар с элементами, ключей которых нет в другой коллекции пар
    • Ds\Map::filter — Создает новую коллекцию пар из элементов, выбранных с помощью заданной callback-функции
    • Ds\Map::first — Возвращает первый элемент коллекции
    • Ds\Map::get — Возвращает значение по ключу
    • Ds\Map::hasKey — Проверяет, содержит ли коллекция заданный ключ
    • Ds\Map::hasValue — Проверяет, содержит ли коллекция заданное значение
    • Ds\Map::intersect — Создает новую коллекцию пар, созданную пересечением с другой коллекцией пар
    • Ds\Map::isEmpty — Проверяет, пуста ли коллекция
    • Ds\Map::jsonSerialize — Возвращает коллекцию в JSON-представлении
    • Ds\Map::keys — Возвращает набор ключей коллекции
    • Ds\Map::ksort — Сортирует текущую коллекцию по ключам
    • Ds\Map::ksorted — Возвращает копию коллекции, отсортированной по ключам
    • Ds\Map::last — Возвращает последнюю пару коллекции
    • Ds\Map::map — Возвращает результат применения callback-функции ко всем значениям коллекции
    • Ds\Map::merge — Возвращает результат добавления всех заданных элементов в коллекцию
    • Ds\Map::pairs — Возвращает последовательность, содержащую все пары коллекции
    • Ds\Map::put — Установка значения по заданному ключу
    • Ds\Map::putAll — Связывает с коллекцией все пары ключ-значение из объекта класса traversable или массива
    • Ds\Map::reduce — Уменьшает коллекцию до одного значения, используя callback-функцию
    • Ds\Map::remove — Удаляет и возвращает значение по ключу
    • Ds\Map::reverse — Переворачивает текущую коллекцию
    • Ds\Map::reversed — Возвращает перевернутую копию коллекции
    • Ds\Map::skip — Возвращает пару по индексу позиции
    • Ds\Map::slice — Возвращает подмножество коллекции из заданного диапазона
    • Ds\Map::sort — Сортирует коллекцию по значениям
    • Ds\Map::sorted — Возвращает отсортированную по значению копию коллекции
    • Ds\Map::sum — Возвращает сумму всех значений коллекции
    • Ds\Map::toArray — Преобразует коллекцию в array
    • Ds\Map::union — Создает новую коллекцию пар из элементов двух коллекций
    • Ds\Map::values — Возвращает последовательность значений коллекции
    • Ds\Map::xor — Создает новую коллекцию пар из элементов, которые есть в одной из коллекций, но не в обеих одновременно
  • Пара — Класс Pair
    • Ds\Pair::clear — Удаляет все значения
    • Ds\Pair::__construct — Создает экземпляр класса
    • Ds\Pair::copy — Возвращает поверхностную копию пары
    • Ds\Pair::isEmpty — Проверяет, является ли пара пустой
    • Ds\Pair::jsonSerialize — Возвращает пару в представлении JSON
    • Ds\Pair::toArray — Преобразует пару в массив (array)
  • Набор — Класс Set
    • Ds\Set::add — Добавляет значения в набор
    • Ds\Set::allocate — Выделяет память под указанную вместимость
    • Ds\Set::capacity — Возвращает текущую вместимость
    • Ds\Set::clear — Удаляет все значения из коллекции
    • Ds\Set::__construct — Создает новый экземпляр класса
    • Ds\Set::contains — Проверяет, содержится ли в коллекции заданные значения
    • Ds\Set::copy — Возвращает поверхностную копию коллекции
    • Ds\Set::count — Возвращает количество элементов коллекции
    • Ds\Set::diff — Создает новый набор с элементами, которых нет в другом наборе
    • Ds\Set::filter — Создает новый список из элементов, выбранных с помощью заданной callback-функции
    • Ds\Set::first — Возвращает первый элемент коллекции
    • Ds\Set::get — Возвращает значение по индексу
    • Ds\Set::intersect — Создает новый набор, созданный пересечением с другим набором
    • Ds\Set::isEmpty — Проверяет, пуста ли коллекция
    • Ds\Set::join — Склеивает все значения в строку
    • Ds\Set::jsonSerialize — Возвращает коллекцию в JSON-представлении
    • Ds\Set::last — Возвращает последнее значение коллекции
    • Ds\Set::merge — Возвращает результат добавления всех заданных значений в набор
    • Ds\Set::reduce — Уменьшает коллекцию до одного значения, используя callback-функцию
    • Ds\Set::remove — Удаляет все заданные значения из набора
    • Ds\Set::reverse — Переворачивает текущую коллекцию
    • Ds\Set::reversed — Возвращает перевернутую копию коллекции
    • Ds\Set::slice — Возвращает поднабор из заданного диапазона
    • Ds\Set::sort — Сортирует коллекцию
    • Ds\Set::sorted — Возвращает отсортированную по значению копию коллекции
    • Ds\Set::sum — Возвращает сумму всех значений коллекции
    • Ds\Set::toArray — Преобразует коллекцию в массив (array)
    • Ds\Set::union — Создает новый набор из элементов текущего и переданного наборов
    • Ds\Set::xor — Создает новый набор из значений, которые есть в одном из наборов, но не в обоих одновременно
  • Стек — Класс Stack
    • Ds\Stack::allocate — Выделяет память под указанную вместимость
    • Ds\Stack::capacity — Возвращает текущую вместимость
    • Ds\Stack::clear — Удаляет все значения из коллекции
    • Ds\Stack::__construct — Создает новый экземпляр класса
    • Ds\Stack::copy — Возвращает поверхностную копию коллекции
    • Ds\Stack::count — Возвращает количество элементов коллекции
    • Ds\Stack::isEmpty — Проверяет, пуста ли коллекция
    • Ds\Stack::jsonSerialize — Возвращает коллекцию в JSON-представлении
    • Ds\Stack::peek — Возвращает значение с вершины стека
    • Ds\Stack::pop — Удаляет и возвращает значение с вершины стека
    • Ds\Stack::push — Добавляет значения в стек
    • Ds\Stack::toArray — Преобразует коллекцию в массив (array)
  • Очередь — Класс Queue
    • Ds\Queue::allocate — Выделяет память под указанную вместимость
    • Ds\Queue::capacity — Возвращает текущую вместимость
    • Ds\Queue::clear — Удаляет все значения
    • Ds\Queue::__construct — Создает новый экземпляр
    • Ds\Queue::copy — Возвращает поверхностную копию очереди
    • Ds\Queue::count — Возвращает количество элементов очереди
    • Ds\Queue::isEmpty — Проверяет, пуста ли коллекция
    • Ds\Queue::jsonSerialize — Возвращает коллекцию в JSON-представлении
    • Ds\Queue::peek — Возвращает значение из начала очереди
    • Ds\Queue::pop — Удаляет и возвращает значение из начала очереди
    • Ds\Queue::push — Добавляет значения в очередь
    • Ds\Queue::toArray — Преобразует коллекцию в массив (array)
  • Очередь с приоритетом — Класс PriorityQueue
    • Ds\PriorityQueue::allocate — Выделяет память под указанную вместимость
    • Ds\PriorityQueue::capacity — Возвращает текущую вместимость
    • Ds\PriorityQueue::clear — Удаляет все значения
    • Ds\PriorityQueue::__construct — Создает новый экземпляр
    • Ds\PriorityQueue::copy — Возвращает поверхностную копию очереди
    • Ds\PriorityQueue::count — Возвращает количество элементов в очереди
    • Ds\PriorityQueue::isEmpty — Проверяет, пуста ли коллекция
    • Ds\PriorityQueue::jsonSerialize — Возвращает коллекцию в JSON-представление
    • Ds\PriorityQueue::peek — Возвращает значение из начала очереди
    • Ds\PriorityQueue::pop — Удаляет и возвращает значение с наивысшим приоритетом
    • Ds\PriorityQueue::push — Добавляет значение в очередь
    • Ds\PriorityQueue::toArray — Преобразует очередь в массив (array)


Введение

Эффективные структуры данных для PHP 7, представленные как альтернативы для типа array.

Сравнения производительности, дискуссии и часто задаваемые вопросы смотрите в » этом посте в блоге.


  • « Введение
  • Требования »
  • PHP Manual
  • Структуры данных
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Требуется PHP 7, как для самого модуля, так и для полизаполнения.


Установка

Самый простой способ установки, через » PECL

pecl install ds

Также вы можете самостоятельно собрать его из исходников:

# Зависимости, которые, возможно, придется установить
# sudo apt-get install git build-essential php7.0-dev

git clone https://github.com/php-ds/extension "php-ds"
cd php-ds

# Сборка и установка модуля
phpize
./configure
make
make install

# Очистка оставшихся артефактов
make clean
phpize --clean

Если вы используете Windows, вы можете загрузить » готовую библиотеку .dll из PECL

Замечание:

Если вы используете Composer, крайне рекомендуется включить » php-ds/php-ds в ваш проект, чтобы ваш код оставался рабочим, безотносительно того, установлен модуль или нет.


  • « Установка
  • Примеры »
  • PHP Manual
  • Структуры данных
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Пример #1 Vector

<?php

$vector = new \Ds\Vector();

$vector->push('a');
$vector->push('b', 'c');

$vector[] = 'd';

print_r($vector);

?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
)

Пример #2 Map

<?php

$map = new \Ds\Map();

$map->put('a', 1);
$map->put('b', 2);

$map['c'] = 3;

print_r($map);

?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


Интерфейс Collection

(Информация о версии неизвестна, возможно, только в Git)

Введение

Collection - это базовый интерфейс, который покрывает функциональность общую для всех структур данных в этой библиотеке. Он гарантирует, что все структуры обходимы, счетны и могут быть преобразованы в JSON с помощью функции json_encode().

Обзор интерфейсов

Ds\Collection implements Traversable , Countable , JsonSerializable {
/* Методы */
abstract public clear ( void ) : void
abstract public copy ( void ) : Ds\Collection
abstract public isEmpty ( void ) : bool
abstract public toArray ( void ) : array
}

Содержание

  • Ds\Collection::clear — Удаляет все значения
  • Ds\Collection::copy — Возвращает копию коллекции
  • Ds\Collection::isEmpty — Проверяет, пуста ли коллекция
  • Ds\Collection::toArray — Преобразует коллекцию в массив (array)


Удаляет все значения

  • « Коллекция
  • Ds\Collection::copy »
  • PHP Manual
  • Коллекция
  • Удаляет все значения

Ds\Collection::clear

(PECL ds >= 1.0.0)

Ds\Collection::clear — Удаляет все значения

Описание

abstract public Ds\Collection::clear ( void ) : void

Удаляет все значения из коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример Ds\Collection::clear()

<?php
$collection = new \Ds\Vector([1, 2, 3]);
print_r($collection);

$collection->clear();
print_r($collection);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
)


Возвращает копию коллекции

  • « Ds\Collection::clear
  • Ds\Collection::isEmpty »
  • PHP Manual
  • Коллекция
  • Возвращает копию коллекции

Ds\Collection::copy

(PECL ds >= 1.0.0)

Ds\Collection::copy — Возвращает копию коллекции

Описание

abstract public Ds\Collection::copy ( void ) : Ds\Collection

Возвращает копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает копию коллекции.

Примеры

Пример #1 Пример Ds\Collection::copy()

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = $a->copy();

$b->push(4);

print_r($a);
print_r($b);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Проверяет, пуста ли коллекция

  • « Ds\Collection::copy
  • Ds\Collection::toArray »
  • PHP Manual
  • Коллекция
  • Проверяет, пуста ли коллекция

Ds\Collection::isEmpty

(PECL ds >= 1.0.0)

Ds\Collection::isEmpty — Проверяет, пуста ли коллекция

Описание

abstract public Ds\Collection::isEmpty ( void ) : bool

Проверяет, пуста ли коллекция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если коллекция пуста, и FALSE в противном случае.

Примеры

Пример #1 Пример Ds\Collection::isEmpty()

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = new \Ds\Vector();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Преобразует коллекцию в массив (array)

  • « Ds\Collection::isEmpty
  • Хешируемое »
  • PHP Manual
  • Коллекция
  • Преобразует коллекцию в массив (array)

Ds\Collection::toArray

(PECL ds >= 1.0.0)

Ds\Collection::toArray — Преобразует коллекцию в массив (array)

Описание

abstract public Ds\Collection::toArray ( void ) : array

Преобразует коллекцию в array.

Замечание:

Приведение к массиву (array) на данный момент не поддерживается.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array), содержащий все элементы коллекции в том же порядке.

Примеры

Пример #1 Пример Ds\Collection::toArray()

<?php
$collection = new \Ds\Vector([1, 2, 3]);

var_dump($collection->toArray());
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Интерфейс Hashable

(Информация о версии неизвестна, возможно, только в Git)

Введение

Hashable - это интерфейс, который позволяет использовать объекты в качестве ключей. Это альтернатива функции spl_object_hash(), которая вычисляет хеш объекта в соответствии с его обработчиком: это значит, что два объекта могут быть одинаковы по своему состоянию, но не считаются одинаковыми из-за того, что являются разными экземплярами одного класса.

Функция hash() используется для вычисления скалярного значения, характеризующего хеш объекта и определяющего его положение в хеш-таблице. Хотя это значение необязательно должно быть уникальным, одинаковые объекты должны иметь одно и то же значение хеша.

Функция equals() используется для определения идентичности двух объектов. Она гарантирует, что два объекта являются одним и тем же экземпляром класса.

Обзор интерфейсов

Ds\Hashable {
/* Методы */
abstract public equals ( object $obj ) : bool
abstract public hash ( void ) : mixed
}

Содержание

  • Ds\Hashable::equals — Определяет, равен ли текущий экземпляр переданному объекту
  • Ds\Hashable::hash — Возвращает скалярное значение для использования в качестве значения хеша


Определяет, равен ли текущий экземпляр переданному объекту

  • « Хешируемое
  • Ds\Hashable::hash »
  • PHP Manual
  • Хешируемое
  • Определяет, равен ли текущий экземпляр переданному объекту

Ds\Hashable::equals

(PECL ds >= 1.0.0)

Ds\Hashable::equals — Определяет, равен ли текущий экземпляр переданному объекту

Описание

abstract public Ds\Hashable::equals ( object $obj ) : bool

Определяет, являются ли текущий экземпляр эквивалентным переданному другому объекту.

Этот метод позволяет использовать объекты в качестве ключей в таких структурах, как Ds\Map и Ds\Set или любых других структурах, распознающих этот интерфейс.

Замечание:

Гарантирует, что obj является экземпляром того же класса.

Предостережение

Чтобы объекты считались идентичными, необходимо, что бы у них был одинаковый хеш. Смотрите описание функции Ds\Hashable::hash().

Список параметров

obj

Объект для сравнения с текущим объектом.

Возвращаемые значения

TRUE, если идентичны, FALSE в противном случае.


Возвращает скалярное значение для использования в качестве значения хеша

  • « Ds\Hashable::equals
  • Последовательность »
  • PHP Manual
  • Хешируемое
  • Возвращает скалярное значение для использования в качестве значения хеша

Ds\Hashable::hash

(PECL ds >= 1.0.0)

Ds\Hashable::hash — Возвращает скалярное значение для использования в качестве значения хеша

Описание

abstract public Ds\Hashable::hash ( void ) : mixed

Возвращает скалярное значение, которое будет использоваться в качестве значение хеша объектов.

В то время как значение хеша само по себе не гарантирует идентичность объектов, но все же все объекты, равные при проверке с помощью функции Ds\Hashable::equals(), должны иметь одно и то же значение хеша. Значение хешей для одинаковых объектов не обязаны быть уникальными, к примеру вы можете просто возвращать TRUE для всех объектов и ничего не сломается. Единственным последствием будет то, что ваша хеш-таблица превратится в связанный список, потому что хеши всех объектов будут содержаться в одном блоке. Из этого следует, что важно выбирать хорошее значение хеша, например уникальный идентификатор или адрес электронной почты.

Этот метод позволяет использовать объекты в качестве ключей в таких структурах как Ds\Map и Ds\Set или любых других структурах, распознающих этот интерфейс.

Предостережение

Не выбираейте значение, которое может измениться, например, из общедоступных свойств. Поиск в хеш-таблице завершится неудачей, если это значение изменится.

Предостережение

Все одинаковые объекты должны иметь одно и то же значение хеша.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Скалярное значение для использования как значение хеша.

Примеры

Пример #1 Пример использованияDs\Hashable::hash()

<?php
class HashableObject implements \Ds\Hashable
{
    private $name;
    private $email;

    public function __construct($name, $email)
    {
        $this->name  = $name;
        $this->email = $email;
    }

    /**
     * Должно возвращать одинаковое значение для всех объектов, которые
     * должны считаться идентичными. Это значение не должно использоваться
     * в простом сравнении для определения идентичности объектов.
     */
    public function hash()
    {
        return $this->email;
    }

    /**
     * Функция определения идентичности объектов. Обычно проверяют, что
     * значения хешей обоих объектов совпадают. Но можно добавить
     * дополнительные проверки.
     */
    public function equals($obj): bool
    {
        return $this->name  === $obj->name
            && $this->hash() === $obj->hash();
    }
}
?>


Интерфейс Sequence

(Информация о версии неизвестна, возможно, только в Git)

Введение

Последовательность описывает поведение, при котором значения распределены в одном, линейном порядке. В некоторых языках данное поведение описывается как "List". Это похоже на массив, в котором используются целочисленные ключи, за исключением нескольких моментов:

  • Значения всегда проиндексированы по порядку [0, 1, 2, ..., size - 1].
  • Можно обращаться только к значениям индексированным в диапазоне [0, size - 1].

В каких случаях используется:

  • Если вы хотите использовать массив, как список (не обращая внимания на ключи).
  • Более эффективная альтернатива для SplDoublyLinkedList и SplFixedArray.

Обзор интерфейсов

Ds\Sequence implements Ds\Collection {
/* Методы */
abstract public allocate ( int $capacity ) : void
abstract public apply ( callable $callback ) : void
abstract public capacity ( void ) : int
abstract public contains ([ mixed $...values ] ) : bool
abstract public filter ([ callable $callback ] ) : Ds\Sequence
abstract public find ( mixed $value ) : mixed
abstract public first ( void ) : mixed
abstract public get ( int $index ) : mixed
abstract public insert ( int $index [, mixed $...values ] ) : void
abstract public join ([ string $glue ] ) : string
abstract public last ( void ) : mixed
abstract public map ( callable $callback ) : Ds\Sequence
abstract public merge ( mixed $values ) : Ds\Sequence
abstract public pop ( void ) : mixed
abstract public push ([ mixed $...values ] ) : void
abstract public reduce ( callable $callback [, mixed $initial ] ) : mixed
abstract public remove ( int $index ) : mixed
abstract public reverse ( void ) : void
abstract public reversed ( void ) : Ds\Sequence
abstract public rotate ( int $rotations ) : void
abstract public set ( int $index , mixed $value ) : void
abstract public shift ( void ) : mixed
abstract public slice ( int $index [, int $length ] ) : Ds\Sequence
abstract public sort ([ callable $comparator ] ) : void
abstract public sorted ([ callable $comparator ] ) : Ds\Sequence
abstract public sum ( void ) : number
abstract public unshift ([ mixed $values ] ) : void
}

Содержание

  • Ds\Sequence::allocate — Выделение памяти под указанную вместимость
  • Ds\Sequence::apply — Обновление всех значений применением к ним переданной callback-функции
  • Ds\Sequence::capacity — Возвращает текущую вместимость
  • Ds\Sequence::contains — Проверяет, содержатся ли в коллекции заданные значения
  • Ds\Sequence::filter — Создает новую последовательность из элементов, выбранных с помощью заданной callback-функции
  • Ds\Sequence::find — Поиск индекса по значению
  • Ds\Sequence::first — Возвращает первый элемент коллекции
  • Ds\Sequence::get — Возвращает значение по индексу
  • Ds\Sequence::insert — Вставляет значения по указанному индексу
  • Ds\Sequence::join — Склеивает все значения в строку
  • Ds\Sequence::last — Возвращает последнее значение коллекции
  • Ds\Sequence::map — Возвращает результат применения callback-функции ко всем значениям коллекции
  • Ds\Sequence::merge — Возвращает результат добавления всех заданных значений в коллекцию
  • Ds\Sequence::pop — Удаляет и возвращает последнее значение
  • Ds\Sequence::push — Добавляет значения в конец последовательности
  • Ds\Sequence::reduce — Схлопывает коллекцию до одного значения используя callback-функцию
  • Ds\Sequence::remove — Удаляет и возвращает значение по индексу
  • Ds\Sequence::reverse — Переворачивает текущую коллекцию
  • Ds\Sequence::reversed — Возвращает перевернутую копию коллекции
  • Ds\Sequence::rotate — Перематывает последовательность на заданное число значений
  • Ds\Sequence::set — Заменяет значение по указанному индексу
  • Ds\Sequence::shift — Удаляет и возвращает первое значение
  • Ds\Sequence::slice — Возвращает под-коллекцию из заданного диапазона
  • Ds\Sequence::sort — Сортирует коллекцию
  • Ds\Sequence::sorted — Возвращает отсортированную по значению копию коллекции
  • Ds\Sequence::sum — Возвращает сумму всех значений коллекции
  • Ds\Sequence::unshift — Добавляет значения в начало последовательности


Выделение памяти под указанную вместимость

  • « Последовательность
  • Ds\Sequence::apply »
  • PHP Manual
  • Последовательность
  • Выделение памяти под указанную вместимость

Ds\Sequence::allocate

(PECL ds >= 1.0.0)

Ds\Sequence::allocate — Выделение памяти под указанную вместимость

Описание

abstract public Ds\Sequence::allocate ( int $capacity ) : void

Гарантирует, что выделено достаточно памяти под заданную вместимость (количество значений). Позволяет избежать динамического добавления памяти при добавлении значений.

Список параметров

capacity

Вместимость. Предполагаемое количество значений.

Замечание:

Если новое значение вместимости меньше текущего, то она не изменится.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Sequence::allocate()

<?php
$sequence = new \Ds\Vector();
var_dump($sequence->capacity());

$vector->allocate(100);
var_dump($sequence->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(10)
int(100)


Обновление всех значений применением к ним переданной callback-функции

  • « Ds\Sequence::allocate
  • Ds\Sequence::capacity »
  • PHP Manual
  • Последовательность
  • Обновление всех значений применением к ним переданной callback-функции

Ds\Sequence::apply

(PECL ds >= 1.0.0)

Ds\Sequence::apply — Обновление всех значений применением к ним переданной callback-функции

Описание

abstract public Ds\Sequence::apply ( callable $callback ) : void

Обновление всех значений применением к ним переданной callback-функции.

Список параметров

callback

callback ( mixed $value ) : mixed

Объект типа callable.

Callback-функция должна возвращать новое значение, которое заменит текущее.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Sequence::apply()

<?php
$sequence = new \Ds\Sequence([1, 2, 3]);
$sequence->apply(function($value) { return $value * 2; });

print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Возвращает текущую вместимость

  • « Ds\Sequence::apply
  • Ds\Sequence::contains »
  • PHP Manual
  • Последовательность
  • Возвращает текущую вместимость

Ds\Sequence::capacity

(PECL ds >= 1.0.0)

Ds\Sequence::capacity — Возвращает текущую вместимость

Описание

abstract public Ds\Sequence::capacity ( void ) : int

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.

Примеры

Пример #1 Пример использования Ds\Sequence::capacity()

<?php
$sequence = new \Ds\Vector();
var_dump($sequence->capacity());

$sequence->push(...range(1, 50));
var_dump($sequence->capacity());

$sequence[] = "a";
var_dump($sequence->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(10)
int(50)
int(75)


Проверяет, содержатся ли в коллекции заданные значения

  • « Ds\Sequence::capacity
  • Ds\Sequence::filter »
  • PHP Manual
  • Последовательность
  • Проверяет, содержатся ли в коллекции заданные значения

Ds\Sequence::contains

(PECL ds >= 1.0.0)

Ds\Sequence::contains — Проверяет, содержатся ли в коллекции заданные значения

Описание

abstract public Ds\Sequence::contains ([ mixed $...values ] ) : bool

Проверяет, содержатся ли в коллекции заданные значения.

Список параметров

values

Значения для проверки.

Возвращаемые значения

Возвращает FALSE, если хотя бы одно значение из values не найдено в коллекции и TRUE в противном случае.

Примеры

Пример #1 Пример использования Ds\Sequence::contains()

<?php
$sequence = new \Ds\Vector(['a', 'b', 'c', 1, 2, 3]);

var_dump($sequence->contains('a'));                // true
var_dump($sequence->contains('a', 'b'));           // true
var_dump($sequence->contains('c', 'd'));           // false

var_dump($sequence->contains(...['c', 'b', 'a'])); // true

// Всегда строгая проверка
var_dump($sequence->contains(1));                  // true
var_dump($sequence->contains('1'));                // false

var_dump($sequece->contains(...[]));               // true
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(false)
bool(true)


Создает новую последовательность из элементов, выбранных с помощью заданной callback-функции

  • « Ds\Sequence::contains
  • Ds\Sequence::find »
  • PHP Manual
  • Последовательность
  • Создает новую последовательность из элементов, выбранных с помощью заданной callback-функции

Ds\Sequence::filter

(PECL ds >= 1.0.0)

Ds\Sequence::filter — Создает новую последовательность из элементов, выбранных с помощью заданной callback-функции

Описание

abstract public Ds\Sequence::filter ([ callable $callback ] ) : Ds\Sequence

Создает новую последовательность из элементов, выбранных с помощью заданной callback-функции.

Список параметров

callback

callback ( mixed $value ) : bool

Необязательный аргумент типа callable, который возвращает TRUE, если значение должно быть включено и FALSE, если нет.

Если callback-функция не задана, то будут включены только элементы, которые приводятся к логическому значению TRUE (смотри приведение к boolean).

Возвращаемые значения

Новая последовательность, содержащая значения, для которых функция callback вернула TRUE, или все элементы, которые при приведении к логическому типу становятся TRUE, если параметр callback не задан.

Примеры

Пример #1 Пример использования Ds\Sequence::filter() с callback-функцией

<?php
$sequence = new \Ds\Vector([1, 2, 3, 4, 5]);

var_dump($sequence->filter(function($value) {
    return $value % 2 == 0;
}));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Пример #2 Пример использования Ds\Sequence::filter() без callback-функции

<?php
$sequence = new \Ds\Vector([0, 1, 'a', true, false]);

var_dump($sequence->filter());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Поиск индекса по значению

  • « Ds\Sequence::filter
  • Ds\Sequence::first »
  • PHP Manual
  • Последовательность
  • Поиск индекса по значению

Ds\Sequence::find

(PECL ds >= 1.0.0)

Ds\Sequence::find — Поиск индекса по значению

Описание

abstract public Ds\Sequence::find ( mixed $value ) : mixed

Возвращает индекс значения value, или FALSE, если ничего не найдено.

Список параметров

value

Искомое значение.

Возвращаемые значения

Индекс элемента, или FALSE, если значение не найдено.

Замечание:

Элементы сравниваются строго, по типу и значению.

Примеры

Пример #1 Пример использования Ds\Sequence::find()

<?php
$sequence = new \Ds\Vector(["a", 1, true]);

var_dump($sequence->find("a")); // 0
var_dump($sequence->find("b")); // false
var_dump($sequence->find("1")); // false
var_dump($sequence->find(1));   // 1
?>

Результатом выполнения данного примера будет что-то подобное:

int(0)
bool(false)
bool(false)
int(1)


Возвращает первый элемент коллекции

  • « Ds\Sequence::find
  • Ds\Sequence::get »
  • PHP Manual
  • Последовательность
  • Возвращает первый элемент коллекции

Ds\Sequence::first

(PECL ds >= 1.0.0)

Ds\Sequence::first — Возвращает первый элемент коллекции

Описание

abstract public Ds\Sequence::first ( void ) : mixed

Возвращает первый элемент коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Первый элемент коллекции.

Ошибки

Выбрасывает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Sequence::first()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);
var_dump($sequence->first());
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)


Возвращает значение по индексу

  • « Ds\Sequence::first
  • Ds\Sequence::insert »
  • PHP Manual
  • Последовательность
  • Возвращает значение по индексу

Ds\Sequence::get

(PECL ds >= 1.0.0)

Ds\Sequence::get — Возвращает значение по индексу

Описание

abstract public Ds\Sequence::get ( int $index ) : mixed

Возвращает значение по заданному индексу.

Список параметров

index

Индекс. Первый элемент имеет индекс 0.

Возвращаемые значения

Значение по заданному индексу.

Ошибки

Выбрасывает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Sequence::get()

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence->get(0));
var_dump($sequence->get(1));
var_dump($sequence->get(2));
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"

Пример #2 Пример использования Ds\Sequence::get() с синтаксисом массива

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence[0]);
var_dump($sequence[1]);
var_dump($sequence[2]);
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Вставляет значения по указанному индексу

  • « Ds\Sequence::get
  • Ds\Sequence::join »
  • PHP Manual
  • Последовательность
  • Вставляет значения по указанному индексу

Ds\Sequence::insert

(PECL ds >= 1.0.0)

Ds\Sequence::insert — Вставляет значения по указанному индексу

Описание

abstract public Ds\Sequence::insert ( int $index [, mixed $...values ] ) : void

Вставляет значения по указанному индексу.

Список параметров

index

Индекс, по которому необходимо осуществить вставку. 0 <= index <= count

Замечание:

Можно указывать индекс, равный количеству элементов коллекции.

values

Значение или значения для вставки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение OutOfRangeException в случае некорректного индекса.

Примеры

Пример #1 Пример использования Ds\Sequence::insert()

<?php
$sequence = new \Ds\Vector();

$sequence->insert(0, "e");             // [e]
$sequence->insert(1, "f");             // [e, f]
$sequence->insert(2, "g");             // [e, f, g]
$sequence->insert(0, "a", "b");        // [a, b, e, f, g]
$sequence->insert(2, ...["c", "d"]);   // [a, b, c, d, e, f, g]

var_dump($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#1 (7) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
  [5]=>
  string(1) "f"
  [6]=>
  string(1) "g"
}


Склеивает все значения в строку

  • « Ds\Sequence::insert
  • Ds\Sequence::last »
  • PHP Manual
  • Последовательность
  • Склеивает все значения в строку

Ds\Sequence::join

(PECL ds >= 1.0.0)

Ds\Sequence::join — Склеивает все значения в строку

Описание

abstract public Ds\Sequence::join ([ string $glue ] ) : string

Склеивает все значения в строку, опционально используя заданный разделитель.

Список параметров

glue

Необязательный параметр, задающий разделитель между значениями.

Возвращаемые значения

Все значения коллекции, склеенные в одну строку.

Примеры

Пример #1 Пример использования Ds\Sequence::join() с разделителем

<?php
$sequence = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($sequence->join("|"));
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "a|b|c|1|2|3"

Пример #2 Пример использования Ds\Sequence::join() без разделителя

<?php
$sequence = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($sequence->join());
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "abc123"


Возвращает последнее значение коллекции

  • « Ds\Sequence::join
  • Ds\Sequence::map »
  • PHP Manual
  • Последовательность
  • Возвращает последнее значение коллекции

Ds\Sequence::last

(PECL ds >= 1.0.0)

Ds\Sequence::last — Возвращает последнее значение коллекции

Описание

abstract public Ds\Sequence::last ( void ) : mixed

Возвращает последнее значение коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последний элемент коллекции.

Ошибки

Выбрасывает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Sequence::last()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);
var_dump($sequence->last());
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)


Возвращает результат применения callback-функции ко всем значениям коллекции

  • « Ds\Sequence::last
  • Ds\Sequence::merge »
  • PHP Manual
  • Последовательность
  • Возвращает результат применения callback-функции ко всем значениям коллекции

Ds\Sequence::map

(PECL ds >= 1.0.0)

Ds\Sequence::map — Возвращает результат применения callback-функции ко всем значениям коллекции

Описание

abstract public Ds\Sequence::map ( callable $callback ) : Ds\Sequence

Возвращает результат применения callback-функции, переданной в callback, ко всем значениям коллекции.

Список параметров

callback

callback ( mixed $value ) : mixed

Аргумент типа callable.

Эта функция должна возвращать новое значение для каждого элемента коллекции.

Возвращаемые значения

Результат применения callback к каждому значению коллекции.

Замечание:

Значения в текущей коллекции останутся неизменными.

Примеры

Пример #1 Пример использования Ds\Sequence::map()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

print_r($sequence->map(function($value) { return $value * 2; }));
print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Возвращает результат добавления всех заданных значений в коллекцию

  • « Ds\Sequence::map
  • Ds\Sequence::pop »
  • PHP Manual
  • Последовательность
  • Возвращает результат добавления всех заданных значений в коллекцию

Ds\Sequence::merge

(PECL ds >= 1.0.0)

Ds\Sequence::merge — Возвращает результат добавления всех заданных значений в коллекцию

Описание

abstract public Ds\Sequence::merge ( mixed $values ) : Ds\Sequence

Возвращает результат добавления всех заданных значений в коллекцию.

Список параметров

values

Объект класса traversable или array.

Возвращаемые значения

Результат добавления всех переданных значений в коллекцию. Фактически делается копия коллекции, в которую добавляются значения.

Замечание:

Текущий экземпляр коллекции останется нетронутым.

Примеры

Пример #1 Пример использования Ds\Sequence::merge()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

var_dump($sequence->merge([4, 5, 6]));
var_dump($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
}
object(Ds\Vector)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Удаляет и возвращает последнее значение

  • « Ds\Sequence::merge
  • Ds\Sequence::push »
  • PHP Manual
  • Последовательность
  • Удаляет и возвращает последнее значение

Ds\Sequence::pop

(PECL ds >= 1.0.0)

Ds\Sequence::pop — Удаляет и возвращает последнее значение

Описание

abstract public Ds\Sequence::pop ( void ) : mixed

Удаляет и возвращает последнее значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последнее удаленное значение.

Ошибки

Выбрасывает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Sequence::pop()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

var_dump($sequence->pop());
var_dump($sequence->pop());
var_dump($sequence->pop());
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)
int(2)
int(1)


Добавляет значения в конец последовательности

  • « Ds\Sequence::pop
  • Ds\Sequence::reduce »
  • PHP Manual
  • Последовательность
  • Добавляет значения в конец последовательности

Ds\Sequence::push

(PECL ds >= 1.0.0)

Ds\Sequence::push — Добавляет значения в конец последовательности

Описание

abstract public Ds\Sequence::push ([ mixed $...values ] ) : void

Добавляет значения в конец последовательности.

Список параметров

values

Добавляемые значения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Sequence::push()

<?php
$sequence = new \Ds\Vector();

$sequence->push("a");
$sequence->push("b");
$sequence->push("c", "d");
$sequence->push(...["e", "f"]);

print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Схлопывает коллекцию до одного значения используя callback-функцию

  • « Ds\Sequence::push
  • Ds\Sequence::remove »
  • PHP Manual
  • Последовательность
  • Схлопывает коллекцию до одного значения используя callback-функцию

Ds\Sequence::reduce

(PECL ds >= 1.0.0)

Ds\Sequence::reduce — Схлопывает коллекцию до одного значения используя callback-функцию

Описание

abstract public Ds\Sequence::reduce ( callable $callback [, mixed $initial ] ) : mixed

Схлопывает коллекцию до одного значения используя callback-функцию.

Список параметров

callback
callback ( mixed $carry , mixed $value ) : mixed
carry

Значение, возвращенное предыдущим запуском функции или initial, если функция запущена первый раз.

value

Значение текущей итерации.

initial

Начальное значение параметра carry. Можно указать NULL.

Возвращаемые значения

Значение, возвращенное финальным запуском callback-функции.

Примеры

Пример #1 Пример использования Ds\Sequence::reduce() с начальным значением

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

$callback = function($carry, $value) {
    return $carry * $value;
};

var_dump($sequence->reduce($callback, 5));

// Итерации:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

Результатом выполнения данного примера будет что-то подобное:

int(30)

Пример #2 Пример использования Ds\Sequence::reduce() без начального значения

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

var_dump($sequence->reduce(function($carry, $value) {
    return $carry + $value + 5;
}));

// Итерации:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

Результатом выполнения данного примера будет что-то подобное:

int(21)


Удаляет и возвращает значение по индексу

  • « Ds\Sequence::reduce
  • Ds\Sequence::reverse »
  • PHP Manual
  • Последовательность
  • Удаляет и возвращает значение по индексу

Ds\Sequence::remove

(PECL ds >= 1.0.0)

Ds\Sequence::remove — Удаляет и возвращает значение по индексу

Описание

abstract public Ds\Sequence::remove ( int $index ) : mixed

Удаляет и возвращает значение по индексу.

Список параметров

index

Индекс, по которому необходимо удалить значение.

Возвращаемые значения

Удаленное значение.

Ошибки

Выбрасывает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Sequence::remove()

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence->remove(1));
var_dump($sequence->remove(0));
var_dump($sequence->remove(0));
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "b"
string(1) "a"
string(1) "c"


Переворачивает текущую коллекцию

  • « Ds\Sequence::remove
  • Ds\Sequence::reversed »
  • PHP Manual
  • Последовательность
  • Переворачивает текущую коллекцию

Ds\Sequence::reverse

(PECL ds >= 1.0.0)

Ds\Sequence::reverse — Переворачивает текущую коллекцию

Описание

abstract public Ds\Sequence::reverse ( void ) : void

Переворачивает текущую коллекцию.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Sequence::reverse()

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);
$sequence->reverse();

print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)


Возвращает перевернутую копию коллекции

  • « Ds\Sequence::reverse
  • Ds\Sequence::rotate »
  • PHP Manual
  • Последовательность
  • Возвращает перевернутую копию коллекции

Ds\Sequence::reversed

(PECL ds >= 1.0.0)

Ds\Sequence::reversed — Возвращает перевернутую копию коллекции

Описание

abstract public Ds\Sequence::reversed ( void ) : Ds\Sequence

Возвращает перевернутую копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Перевернутая копия коллекции.

Замечание:

Текущая коллекция не изменится.

Примеры

Пример #1 Пример использования Ds\Sequence::reversed()

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

print_r($sequence->reversed());
print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
)


Перематывает последовательность на заданное число значений

  • « Ds\Sequence::reversed
  • Ds\Sequence::set »
  • PHP Manual
  • Последовательность
  • Перематывает последовательность на заданное число значений

Ds\Sequence::rotate

(PECL ds >= 1.0.0)

Ds\Sequence::rotate — Перематывает последовательность на заданное число значений

Описание

abstract public Ds\Sequence::rotate ( int $rotations ) : void

Перематывает последовательность на заданное число значений. Данная операция аналогична выполнению заданного количество раз кода $sequence->push($sequence->shift()), если число оборотов положительно и $sequence->unshift($sequence->pop()), если отрицательно.

Список параметров

rotations

Количество значений, которые надо "перемотать".

Возвращаемые значения

Эта функция не возвращает значения после выполнения.. Будет изменена текущая последовательность.

Примеры

Пример #1 Пример использования Ds\Sequence::rotate()

<?php
$sequence = new \Ds\Vector(["a", "b", "c", "d"]);

$sequence->rotate(1);  // Аналогично $a = $sequence->shift(); $sequence->push($a);
print_r($sequence);

$sequence->rotate(2);
print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

(
    [0] => b
    [1] => c
    [2] => d
    [3] => a
)
Ds\Vector Object
(
    [0] => d
    [1] => a
    [2] => b
    [3] => c
)


Заменяет значение по указанному индексу

  • « Ds\Sequence::rotate
  • Ds\Sequence::shift »
  • PHP Manual
  • Последовательность
  • Заменяет значение по указанному индексу

Ds\Sequence::set

(PECL ds >= 1.0.0)

Ds\Sequence::set — Заменяет значение по указанному индексу

Описание

abstract public Ds\Sequence::set ( int $index , mixed $value ) : void

Заменяет значение по указанному индексу.

Список параметров

index

Индекс, по которому надо заменить значение.

value

Новое значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Sequence::set()

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

$sequence->set(1, "_");
print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)

Пример #2 Пример использования Ds\Sequence::set() с синтаксисом массива

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

$sequence[1] = "_";
print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)


Удаляет и возвращает первое значение

  • « Ds\Sequence::set
  • Ds\Sequence::slice »
  • PHP Manual
  • Последовательность
  • Удаляет и возвращает первое значение

Ds\Sequence::shift

(PECL ds >= 1.0.0)

Ds\Sequence::shift — Удаляет и возвращает первое значение

Описание

abstract public Ds\Sequence::shift ( void ) : mixed

Удаляет и возвращает первое значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Первое удаленное значение.

Ошибки

Выбрасывает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Sequence::shift()

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence->shift());
var_dump($sequence->shift());
var_dump($sequence->shift());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Возвращает под-коллекцию из заданного диапазона

  • « Ds\Sequence::shift
  • Ds\Sequence::sort »
  • PHP Manual
  • Последовательность
  • Возвращает под-коллекцию из заданного диапазона

Ds\Sequence::slice

(PECL ds >= 1.0.0)

Ds\Sequence::slice — Возвращает под-коллекцию из заданного диапазона

Описание

abstract public Ds\Sequence::slice ( int $index [, int $length ] ) : Ds\Sequence

Возвращает под-коллекцию из диапазона, заданного начальным индексом index и длиной length.

Список параметров

index

Индекс, задающий начало диапазона.

Если положительный, то будет отсчитываться от начала коллекции. Если отрицательный, то от конца.

length

Положительное значение определяет, сколько элементов будет взято. Если количество элементов коллекции меньше заданного значения, вернется столько элементов, сколько есть. Отрицательное значение задаст индекс, отсчитанный от конца коллекции, определяющий конец диапазона. Если длина не задана, то будут возвращены все элементы коллекции от заданного индекса до конца коллекции.

Возвращаемые значения

Под-коллекция из заданного диапазона.

Примеры

Пример #1 Пример использования Ds\Sequence::slice()

<?php
$sequence = new \Ds\Vector(["a", "b", "c", "d", "e"]);

// Диапазон от 2 до конца
print_r($sequence->slice(2));

// Диапазон от 1 с длиной 3
print_r($sequence->slice(1, 3));

// Диапазон от 1 до конца
print_r($sequence->slice(1));

// Диапазон от 2 с конца до начала
print_r($sequence->slice(-2));

// Диапазон от 1 от 1 с конца
print_r($sequence->slice(1, -1));
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Vector Object
(
    [0] => d
    [1] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)


Сортирует коллекцию

  • « Ds\Sequence::slice
  • Ds\Sequence::sorted »
  • PHP Manual
  • Последовательность
  • Сортирует коллекцию

Ds\Sequence::sort

(PECL ds >= 1.0.0)

Ds\Sequence::sort — Сортирует коллекцию

Описание

abstract public Ds\Sequence::sort ([ callable $comparator ] ) : void

Сортирует коллекцию, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int
Предостережение

Не целое значение возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Sequence::sort()

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);
$sequence->sort();

print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Пример #2 Пример использования Ds\Sequence::sort() с callback-функцией сравнения

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);

$sequence->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Возвращает отсортированную по значению копию коллекции

  • « Ds\Sequence::sort
  • Ds\Sequence::sum »
  • PHP Manual
  • Последовательность
  • Возвращает отсортированную по значению копию коллекции

Ds\Sequence::sorted

(PECL ds >= 1.0.0)

Ds\Sequence::sorted — Возвращает отсортированную по значению копию коллекции

Описание

abstract public Ds\Sequence::sorted ([ callable $comparator ] ) : Ds\Sequence

Возвращает отсортированную копию коллекции, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int
Предостережение

Не целое значение возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Возвращает отсортированную по значению копию коллекции.

Примеры

Пример #1 Пример использования Ds\Sequence::sorted()

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);

print_r($sequence->sorted());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Пример #2 Пример использования Ds\Sequence::sorted() с callback-функцией сравнения

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);

$sorted = $sequence->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Возвращает сумму всех значений коллекции

  • « Ds\Sequence::sorted
  • Ds\Sequence::unshift »
  • PHP Manual
  • Последовательность
  • Возвращает сумму всех значений коллекции

Ds\Sequence::sum

(PECL ds >= 1.0.0)

Ds\Sequence::sum — Возвращает сумму всех значений коллекции

Описание

abstract public Ds\Sequence::sum ( void ) : number

Возвращает сумму всех значений коллекции.

Замечание:

Массивы и объекты считаются за ноль.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сумма всех значений коллекции типов float или int, в зависимости от значений коллекции.

Примеры

Пример #1 Пример использования Ds\Sequence::sum() с целочисленными значениями

<?php
$sequence = new \Ds\Vector([1, 2, 3]);
var_dump($sequence->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

int(6)

Пример #2 Пример использования Ds\Sequence::sum() со значениями типа float

<?php
$sequence = new \Ds\Vector([1, 2.5, 3]);
var_dump($sequence->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

float(6.5)


Добавляет значения в начало последовательности

  • « Ds\Sequence::sum
  • Вектор »
  • PHP Manual
  • Последовательность
  • Добавляет значения в начало последовательности

Ds\Sequence::unshift

(PECL ds >= 1.0.0)

Ds\Sequence::unshift — Добавляет значения в начало последовательности

Описание

abstract public Ds\Sequence::unshift ([ mixed $values ] ) : void

Добавляет значения в начало последовательности, перемещая все текущие значения вперед, чтобы освободить место для новых значений.

Список параметров

values

Добавляемые значения.

Замечание:

Множество значений добавляются в том порядке, как они были переданы.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Sequence::unshift()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

$sequence->unshift("a");
$sequence->unshift("b", "c");

print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => a
    [3] => 1
    [4] => 2
    [5] => 3
)


Класс Vector

(Информация о версии неизвестна, возможно, только в Git)

Введение

Вектор - это последовательность значений в непрерывном буфере, который растет и обрезается автоматически. Это наиболее эффективная последовательная структура, поскольку индексы значений прямо отображаются на их индекс в буфере, и фактор роста не влияет на сложность доступа.

Сильные стороны

  • Поддерживает синтаксис массива (квадратные скобки).
  • Использует меньше памяти, чем массив (array) с тем же количеством элементов.
  • Автоматически высвобождает память, когда количество элементов уменьшается.
  • Вместимость не ограничена степенями двойки.
  • get(),
set(),
push() и
pop() имеют сложность O(1).

Слабые стороны

  • shift(),
unshift(),
insert() и
remove() имеют сложность O(n).

Обзор классов

Ds\Vector implements Ds\Sequence {
/* Константы */
const int MIN_CAPACITY = 10 ;
/* Методы */
public allocate ( int $capacity ) : void
public apply ( callable $callback ) : void
public capacity ( void ) : int
public clear ( void ) : void
public contains ([ mixed $...values ] ) : bool
public copy ( void ) : Ds\Vector
public filter ([ callable $callback ] ) : Ds\Vector
public find ( mixed $value ) : mixed
public first ( void ) : mixed
public get ( int $index ) : mixed
public insert ( int $index [, mixed $...values ] ) : void
public isEmpty ( void ) : bool
public join ([ string $glue ] ) : string
public last ( void ) : mixed
public map ( callable $callback ) : Ds\Vector
public merge ( mixed $values ) : Ds\Vector
public pop ( void ) : mixed
public push ([ mixed $...values ] ) : void
public reduce ( callable $callback [, mixed $initial ] ) : mixed
public remove ( int $index ) : mixed
public reverse ( void ) : void
public reversed ( void ) : Ds\Vector
public rotate ( int $rotations ) : void
public set ( int $index , mixed $value ) : void
public shift ( void ) : mixed
public slice ( int $index [, int $length ] ) : Ds\Vector
public sort ([ callable $comparator ] ) : void
public sorted ([ callable $comparator ] ) : Ds\Vector
public sum ( void ) : number
public toArray ( void ) : array
public unshift ([ mixed $values ] ) : void
}

Предопределенные константы

Ds\Vector::MIN_CAPACITY

Содержание

  • Ds\Vector::allocate — Выделяет память под указанную вместимость
  • Ds\Vector::apply — Обновляет все значения, применяя к ним переданную callback-функцию
  • Ds\Vector::capacity — Возвращает текущую вместимость
  • Ds\Vector::clear — Удаляет все значения
  • Ds\Vector::__construct — Создает новый экземпляр
  • Ds\Vector::contains — Проверяет, содержится ли в векторе заданные значения
  • Ds\Vector::copy — Возвращает поверхностную копию вектора
  • Ds\Vector::count — Возвращает количество элементов вектора
  • Ds\Vector::filter — Создает новый вектор из элементов, выбранных с помощью заданной callback-функции
  • Ds\Vector::find — Поиск индекса по значению
  • Ds\Vector::first — Возвращает первый элемент вектора
  • Ds\Vector::get — Возвращает значение по индексу
  • Ds\Vector::insert — Вставляет значения по указанному индексу
  • Ds\Vector::isEmpty — Проверяет, пуст ли вектор
  • Ds\Vector::join — Склеивает все значения в строку
  • Ds\Vector::jsonSerialize — Возвращает вектор в JSON-представлении
  • Ds\Vector::last — Возвращает последнее значение вектора
  • Ds\Vector::map — Возвращает результат применения callback-функции ко всем значениям вектора
  • Ds\Vector::merge — Возвращает результат добавления всех заданных значений в вектор
  • Ds\Vector::pop — Удаляет и возвращает последнее значение
  • Ds\Vector::push — Добавляет значения в конец вектора
  • Ds\Vector::reduce — Уменьшает вектор до одного значения, используя callback-функцию
  • Ds\Vector::remove — Удаляет и возвращает значение по индексу
  • Ds\Vector::reverse — Переворачивает текущий вектор
  • Ds\Vector::reversed — Возвращает перевернутую копию вектора
  • Ds\Vector::rotate — Перематывает вектор на заданное число значений
  • Ds\Vector::set — Заменяет значение по указанному индексу
  • Ds\Vector::shift — Удаляет и возвращает первое значение
  • Ds\Vector::slice — Возвращает подвектор из заданного диапазона
  • Ds\Vector::sort — Сортирует вектор
  • Ds\Vector::sorted — Возвращает отсортированную по значению копию коллекции
  • Ds\Vector::sum — Возвращает сумму всех значений коллекции
  • Ds\Vector::toArray — Преобразует коллекцию в массив (array)
  • Ds\Vector::unshift — Добавляет значения в начало вектора


Выделяет память под указанную вместимость

  • « Вектор
  • Ds\Vector::apply »
  • PHP Manual
  • Вектор
  • Выделяет память под указанную вместимость

Ds\Vector::allocate

(PECL ds >= 1.0.0)

Ds\Vector::allocate — Выделяет память под указанную вместимость

Описание

public Ds\Vector::allocate ( int $capacity ) : void

Гарантирует, что выделено достаточно памяти под заданную вместимость (количество значений). Позволяет избежать динамического перераспределения памяти при добавлении значений.

Список параметров

capacity

Вместимость. Предполагаемое количество значений.

Замечание:

Вместимость останется неизменной, если её значение меньше или равно текущей вместимости.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Vector::allocate()

<?php
$vector = new \Ds\Vector();
var_dump($vector->capacity());

$vector->allocate(100);
var_dump($vector->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(10)
int(100)


Обновляет все значения, применяя к ним переданную callback-функцию

  • « Ds\Vector::allocate
  • Ds\Vector::capacity »
  • PHP Manual
  • Вектор
  • Обновляет все значения, применяя к ним переданную callback-функцию

Ds\Vector::apply

(PECL ds >= 1.0.0)

Ds\Vector::apply — Обновляет все значения, применяя к ним переданную callback-функцию

Описание

public Ds\Vector::apply ( callable $callback ) : void

Обновляет все значения, применяя к ним переданную callback-функцию.

Список параметров

callback

callback ( mixed $value ) : mixed

Объект типа callable.

Callback-функция должна возвращать новое значение, которое заменит текущее.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Vector::apply()

<?php
$vector = new \Ds\Vector([1, 2, 3]);
$vector->apply(function($value) { return $value * 2; });

print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Возвращает текущую вместимость

  • « Ds\Vector::apply
  • Ds\Vector::clear »
  • PHP Manual
  • Вектор
  • Возвращает текущую вместимость

Ds\Vector::capacity

(PECL ds >= 1.0.0)

Ds\Vector::capacity — Возвращает текущую вместимость

Описание

public Ds\Vector::capacity ( void ) : int

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.

Примеры

Пример #1 Пример использования Ds\Vector::capacity()

<?php
$vector = new \Ds\Vector();
var_dump($vector->capacity());

$vector->push(...range(1, 50));
var_dump($vector->capacity());

$vector[] = "a";
var_dump($vector->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(10)
int(50)
int(75)


Удаляет все значения

  • « Ds\Vector::capacity
  • Ds\Vector::__construct »
  • PHP Manual
  • Вектор
  • Удаляет все значения

Ds\Vector::clear

(PECL ds >= 1.0.0)

Ds\Vector::clear — Удаляет все значения

Описание

public Ds\Vector::clear ( void ) : void

Удаляет все значения из вектора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Vector::clear()

<?php
$vector = new \Ds\Vector([1, 2, 3]);
print_r($vector);

$vector->clear();
print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
)


Создает новый экземпляр

  • « Ds\Vector::clear
  • Ds\Vector::contains »
  • PHP Manual
  • Вектор
  • Создает новый экземпляр

Ds\Vector::__construct

(PECL ds >= 1.0.0)

Ds\Vector::__construct — Создает новый экземпляр

Описание

public Ds\Vector::__construct ([ mixed $values ] )

Создает новый экземпляр, используя либо объект реализующий traversable, либо массив, переданные в качестве параметра values.

Список параметров

values

Объект, реализующий интерфейс traversable или массив.

Примеры

Пример #1 Пример использования Ds\Vector::__construct()

<?php
$vector = new \Ds\Vector();
var_dump($vector);

$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#2 (0) {
}
object(Ds\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Проверяет, содержится ли в векторе заданные значения

  • « Ds\Vector::__construct
  • Ds\Vector::copy »
  • PHP Manual
  • Вектор
  • Проверяет, содержится ли в векторе заданные значения

Ds\Vector::contains

(PECL ds >= 1.0.0)

Ds\Vector::contains — Проверяет, содержится ли в векторе заданные значения

Описание

public Ds\Vector::contains ([ mixed $...values ] ) : bool

Проверяет, содержится ли в векторе заданные значения.

Список параметров

values

Значения для проверки.

Возвращаемые значения

Возвращает FALSE, если хотя бы одно значение из values не найдено в векторе и TRUE в противном случае.

Примеры

Пример #1 Пример использования Ds\Vector::contains()

<?php
$vector = new \Ds\Vector(['a', 'b', 'c', 1, 2, 3]);

var_dump($vector->contains('a'));                // true
var_dump($vector->contains('a', 'b'));           // true
var_dump($vector->contains('c', 'd'));           // false

var_dump($vector->contains(...['c', 'b', 'a'])); // true

// Всегда строгая проверка
var_dump($vector->contains(1));                  // true
var_dump($vector->contains('1'));                // false

var_dump($sequece->contains(...[]));               // true
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(false)
bool(true)


Возвращает поверхностную копию вектора

  • « Ds\Vector::contains
  • Ds\Vector::count »
  • PHP Manual
  • Вектор
  • Возвращает поверхностную копию вектора

Ds\Vector::copy

(PECL ds >= 1.0.0)

Ds\Vector::copy — Возвращает поверхностную копию вектора

Описание

public Ds\Vector::copy ( void ) : Ds\Vector

Возвращает поверхностную копию вектора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Поверхностная копия вектора.

Примеры

Пример #1 Пример использования Ds\Vector::copy()

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = $a->copy();

// Изменение копии не отражается на оригинале
$b->push(4);

print_r($a);
print_r($b);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Возвращает количество элементов вектора

  • « Ds\Vector::copy
  • Ds\Vector::filter »
  • PHP Manual
  • Вектор
  • Возвращает количество элементов вектора

Ds\Vector::count

(PECL ds >= 1.0.0)

Ds\Vector::count — Возвращает количество элементов вектора

См. Countable::count()


Создает новый вектор из элементов, выбранных с помощью заданной callback-функции

  • « Ds\Vector::count
  • Ds\Vector::find »
  • PHP Manual
  • Вектор
  • Создает новый вектор из элементов, выбранных с помощью заданной callback-функции

Ds\Vector::filter

(PECL ds >= 1.0.0)

Ds\Vector::filter — Создает новый вектор из элементов, выбранных с помощью заданной callback-функции

Описание

public Ds\Vector::filter ([ callable $callback ] ) : Ds\Vector

Создает новый вектор из элементов, выбранных с помощью заданной callback-функции.

Список параметров

callback

callback ( mixed $value ) : bool

Опциональный аргумент типа callable, который возвращает TRUE, если значение должно быть включено и FALSE, если нет.

Если callback-функция не задана, то будут включены только элементы, которые приводятся к логическому значению TRUE (см. приведение к boolean).

Возвращаемые значения

Новый вектор, содержащий значения, для которых функция callback вернула TRUE, либо все элементы, которые при приведении к логическому типу становятся TRUE, если параметр callback не задан.

Примеры

Пример #1 Пример Ds\Vector::filter() с использованием callback-функции

<?php
$vector = new \Ds\Vector([1, 2, 3, 4, 5]);

var_dump($vector->filter(function($value) {
    return $value % 2 == 0;
}));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Пример #2 Пример Ds\Vector::filter() без callback-функции

<?php
$vector = new \Ds\Vector([0, 1, 'a', true, false]);

var_dump($vector->filter());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Поиск индекса по значению

  • « Ds\Vector::filter
  • Ds\Vector::first »
  • PHP Manual
  • Вектор
  • Поиск индекса по значению

Ds\Vector::find

(PECL ds >= 1.0.0)

Ds\Vector::find — Поиск индекса по значению

Описание

public Ds\Vector::find ( mixed $value ) : mixed

Возвращает индекс значения value или FALSE, если ничего не найдено.

Список параметров

value

Искомое значение.

Возвращаемые значения

Индекс элемента или FALSE, если значение не найдено.

Замечание:

Элементы сравниваются строго (по типу и значению).

Примеры

Пример #1 Пример использования Ds\Vector::find()

<?php
$vector = new \Ds\Vector(["a", 1, true]);

var_dump($vector->find("a")); // 0
var_dump($vector->find("b")); // false
var_dump($vector->find("1")); // false
var_dump($vector->find(1));   // 1
?>

Результатом выполнения данного примера будет что-то подобное:

int(0)
bool(false)
bool(false)
int(1)


Возвращает первый элемент вектора

  • « Ds\Vector::find
  • Ds\Vector::get »
  • PHP Manual
  • Вектор
  • Возвращает первый элемент вектора

Ds\Vector::first

(PECL ds >= 1.0.0)

Ds\Vector::first — Возвращает первый элемент вектора

Описание

public Ds\Vector::first ( void ) : mixed

Возвращает первый элемент вектора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Первый элемент вектора.

Ошибки

Выбрасывает исключение UnderflowException, если вектор пуст.

Примеры

Пример #1 Пример использования Ds\Vector::first()

<?php
$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector->first());
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)


Возвращает значение по индексу

  • « Ds\Vector::first
  • Ds\Vector::insert »
  • PHP Manual
  • Вектор
  • Возвращает значение по индексу

Ds\Vector::get

(PECL ds >= 1.0.0)

Ds\Vector::get — Возвращает значение по индексу

Описание

public Ds\Vector::get ( int $index ) : mixed

Возвращает значение по заданному индексу.

Список параметров

index

Индекс. Первый элемент имеет индекс 0.

Возвращаемые значения

Значение по заданному индексу.

Ошибки

Выбрасывает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Vector::get()

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector->get(0));
var_dump($vector->get(1));
var_dump($vector->get(2));
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"

Пример #2 Пример использования Ds\Vector::get() с синтаксисом массива

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector[0]);
var_dump($vector[1]);
var_dump($vector[2]);
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Вставляет значения по указанному индексу

  • « Ds\Vector::get
  • Ds\Vector::isEmpty »
  • PHP Manual
  • Вектор
  • Вставляет значения по указанному индексу

Ds\Vector::insert

(PECL ds >= 1.0.0)

Ds\Vector::insert — Вставляет значения по указанному индексу

Описание

public Ds\Vector::insert ( int $index [, mixed $...values ] ) : void

Вставляет значения по указанному индексу.

Список параметров

index

Индекс, по которому необходимо осуществить вставку. 0 <= index <= count

Замечание:

Можно указать индекс, равный количеству элементов вектора.

values

Значение или значения для вставки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение OutOfRangeException в случае некорректного индекса.

Примеры

Пример #1 Пример использования Ds\Vector::insert()

<?php
$vector = new \Ds\Vector();

$vector->insert(0, "e");             // [e]
$vector->insert(1, "f");             // [e, f]
$vector->insert(2, "g");             // [e, f, g]
$vector->insert(0, "a", "b");        // [a, b, e, f, g]
$vector->insert(2, ...["c", "d"]);   // [a, b, c, d, e, f, g]

var_dump($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#1 (7) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
  [5]=>
  string(1) "f"
  [6]=>
  string(1) "g"
}


Проверяет, пуст ли вектор

  • « Ds\Vector::insert
  • Ds\Vector::join »
  • PHP Manual
  • Вектор
  • Проверяет, пуст ли вектор

Ds\Vector::isEmpty

(PECL ds >= 1.0.0)

Ds\Vector::isEmpty — Проверяет, пуст ли вектор

Описание

public Ds\Vector::isEmpty ( void ) : bool

Проверяет, пуст ли вектор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если вектор пуст, FALSE в противном случае.

Примеры

Пример #1 Пример использования Ds\Vector::isEmpty()

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = new \Ds\Vector();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Склеивает все значения в строку

  • « Ds\Vector::isEmpty
  • Ds\Vector::jsonSerialize »
  • PHP Manual
  • Вектор
  • Склеивает все значения в строку

Ds\Vector::join

(PECL ds >= 1.0.0)

Ds\Vector::join — Склеивает все значения в строку

Описание

public Ds\Vector::join ([ string $glue ] ) : string

Склеивает все значения в строку, опционально используя заданный разделитель.

Список параметров

glue

Необязательный параметр, задающий разделитель между значениями.

Возвращаемые значения

Все значения вектора, склееные в одну строку.

Примеры

Пример #1 Пример использования Ds\Vector::join() с разделителем

<?php
$vector = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($vector->join("|"));
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "a|b|c|1|2|3"

Пример #2 Пример использования Ds\Vector::join() без разделителя

<?php
$vector = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($vector->join());
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "abc123"


Возвращает вектор в JSON-представлении

  • « Ds\Vector::join
  • Ds\Vector::last »
  • PHP Manual
  • Вектор
  • Возвращает вектор в JSON-представлении

Ds\Vector::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Vector::jsonSerialize — Возвращает вектор в JSON-представлении

См. JsonSerializable::jsonSerialize()

Замечание:

Никогда не используйте эту функцию напрямую.


Возвращает последнее значение вектора

  • « Ds\Vector::jsonSerialize
  • Ds\Vector::map »
  • PHP Manual
  • Вектор
  • Возвращает последнее значение вектора

Ds\Vector::last

(PECL ds >= 1.0.0)

Ds\Vector::last — Возвращает последнее значение вектора

Описание

public Ds\Vector::last ( void ) : mixed

Возвращает последнее значение вектора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последний элемент вектора.

Ошибки

Выбрасывает исключение UnderflowException, если вектор пустой.

Примеры

Пример #1 Пример использования Ds\Vector::last()

<?php
$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector->last());
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)


Возвращает результат применения callback-функции ко всем значениям вектора

  • « Ds\Vector::last
  • Ds\Vector::merge »
  • PHP Manual
  • Вектор
  • Возвращает результат применения callback-функции ко всем значениям вектора

Ds\Vector::map

(PECL ds >= 1.0.0)

Ds\Vector::map — Возвращает результат применения callback-функции ко всем значениям вектора

Описание

public Ds\Vector::map ( callable $callback ) : Ds\Vector

Возвращает результат применения callback-функции, переданной в callback, ко всем значениям вектора.

Список параметров

callback

callback ( mixed $value ) : mixed

Аргумент типа callable.

Эта функция должна возвращать новое значение для каждого элемента вектора.

Возвращаемые значения

Результат применения callback к каждому значению вектора.

Замечание:

Значения в текущей коллекции останутся неизменными.

Примеры

Пример #1 Пример использования Ds\Vector::map()

<?php
$vector = new \Ds\Vector([1, 2, 3]);

print_r($vector->map(function($value) { return $value * 2; }));
print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Возвращает результат добавления всех заданных значений в вектор

  • « Ds\Vector::map
  • Ds\Vector::pop »
  • PHP Manual
  • Вектор
  • Возвращает результат добавления всех заданных значений в вектор

Ds\Vector::merge

(PECL ds >= 1.0.0)

Ds\Vector::merge — Возвращает результат добавления всех заданных значений в вектор

Описание

public Ds\Vector::merge ( mixed $values ) : Ds\Vector

Возвращает результат добавления всех заданных значений в вектор.

Список параметров

values

Объект класса traversable или массив (array).

Возвращаемые значения

Результат добавления всех переданных значений в вектор. Фактически делается копия вектора, в который добавляются значения.

Замечание:

Текущий экземпляр вектора останется нетронутым.

Примеры

Пример #1 Пример использования Ds\Vector::merge()

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->merge([4, 5, 6]));
var_dump($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
}
object(Ds\Vector)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Удаляет и возвращает последнее значение

  • « Ds\Vector::merge
  • Ds\Vector::push »
  • PHP Manual
  • Вектор
  • Удаляет и возвращает последнее значение

Ds\Vector::pop

(PECL ds >= 1.0.0)

Ds\Vector::pop — Удаляет и возвращает последнее значение

Описание

public Ds\Vector::pop ( void ) : mixed

Удаляет и возвращает последнее значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последнее удаленное значение.

Ошибки

Выбрасывает исключение UnderflowException, если вектор пустой.

Примеры

Пример #1 Пример использования Ds\Vector::pop()

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->pop());
var_dump($vector->pop());
var_dump($vector->pop());
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)
int(2)
int(1)


Добавляет значения в конец вектора

  • « Ds\Vector::pop
  • Ds\Vector::reduce »
  • PHP Manual
  • Вектор
  • Добавляет значения в конец вектора

Ds\Vector::push

(PECL ds >= 1.0.0)

Ds\Vector::push — Добавляет значения в конец вектора

Описание

public Ds\Vector::push ([ mixed $...values ] ) : void

Добавляет значения в конец вектора.

Список параметров

values

Добавляемые значения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Vector::push()

<?php
$vector = new \Ds\Vector();

$vector->push("a");
$vector->push("b");
$vector->push("c", "d");
$vector->push(...["e", "f"]);

print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Уменьшает вектор до одного значения, используя callback-функцию

  • « Ds\Vector::push
  • Ds\Vector::remove »
  • PHP Manual
  • Вектор
  • Уменьшает вектор до одного значения, используя callback-функцию

Ds\Vector::reduce

(PECL ds >= 1.0.0)

Ds\Vector::reduce — Уменьшает вектор до одного значения, используя callback-функцию

Описание

public Ds\Vector::reduce ( callable $callback [, mixed $initial ] ) : mixed

Схлопывает вектор до одного значения, используя callback-функцию.

Список параметров

callback
callback ( mixed $carry , mixed $value ) : mixed
carry

Значение, возвращенное предыдущим запуском функции или initial, если функция запущена первый раз.

value

Значение текущей итерации.

initial

Начальное значение параметра carry. Можно указать NULL.

Возвращаемые значения

Значение возвращенное окончательным запуском callback-функции.

Примеры

Пример #1 Пример использования Ds\Vector::reduce() с начальным значением

<?php
$vector = new \Ds\Vector([1, 2, 3]);

$callback = function($carry, $value) {
    return $carry * $value;
};

var_dump($vector->reduce($callback, 5));

// Iterations:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

Результатом выполнения данного примера будет что-то подобное:

int(30)

Пример #2 Пример использования Ds\Vector::reduce() без начального значения

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->reduce(function($carry, $value) {
    return $carry + $value + 5;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

Результатом выполнения данного примера будет что-то подобное:

int(21)


Удаляет и возвращает значение по индексу

  • « Ds\Vector::reduce
  • Ds\Vector::reverse »
  • PHP Manual
  • Вектор
  • Удаляет и возвращает значение по индексу

Ds\Vector::remove

(PECL ds >= 1.0.0)

Ds\Vector::remove — Удаляет и возвращает значение по индексу

Описание

public Ds\Vector::remove ( int $index ) : mixed

Удаляет и возвращает значение по индексу.

Список параметров

index

Индекс, по которому необходимо удалить значение.

Возвращаемые значения

Удаленное значение.

Ошибки

Выбрасывает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Vector::remove()

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector->remove(1));
var_dump($vector->remove(0));
var_dump($vector->remove(0));
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "b"
string(1) "a"
string(1) "c"


Переворачивает текущий вектор

  • « Ds\Vector::remove
  • Ds\Vector::reversed »
  • PHP Manual
  • Вектор
  • Переворачивает текущий вектор

Ds\Vector::reverse

(PECL ds >= 1.0.0)

Ds\Vector::reverse — Переворачивает текущий вектор

Описание

public Ds\Vector::reverse ( void ) : void

Переворачивает текущий вектор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Vector::reverse()

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);
$vector->reverse();

print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)


Возвращает перевернутую копию вектора

  • « Ds\Vector::reverse
  • Ds\Vector::rotate »
  • PHP Manual
  • Вектор
  • Возвращает перевернутую копию вектора

Ds\Vector::reversed

(PECL ds >= 1.0.0)

Ds\Vector::reversed — Возвращает перевернутую копию вектора

Описание

public Ds\Vector::reversed ( void ) : Ds\Vector

Возвращает перевернутую копию вектора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Перевернутая копия вектора.

Замечание:

Текущий вектор не изменится.

Примеры

Пример #1 Пример использования Ds\Vector::reversed()

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

print_r($vector->reversed());
print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
)


Перематывает вектор на заданное число значений

  • « Ds\Vector::reversed
  • Ds\Vector::set »
  • PHP Manual
  • Вектор
  • Перематывает вектор на заданное число значений

Ds\Vector::rotate

(PECL ds >= 1.0.0)

Ds\Vector::rotate — Перематывает вектор на заданное число значений

Описание

public Ds\Vector::rotate ( int $rotations ) : void

Перематывает вектор на заданное число значений. Данная операция аналогична выполнению заданное количество раз кода $vector->push($vector->shift()), если число оборотов положительно и $vector->unshift($vector->pop()), если отрицательно.

Список параметров

rotations

Количество значений, которые надо "перемотать".

Возвращаемые значения

Эта функция не возвращает значения после выполнения.. Будет изменен текущий вектор.

Примеры

Пример #1 Пример использования Ds\Vector::rotate()

<?php
$vector = new \Ds\Vector(["a", "b", "c", "d"]);

$vector->rotate(1); // Аналогично $a = $vector->shift(); $vector->push($a);
print_r($vector);

$vector->rotate(2);
print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

(
    [0] => b
    [1] => c
    [2] => d
    [3] => a
)
Ds\Vector Object
(
    [0] => d
    [1] => a
    [2] => b
    [3] => c
)


Заменяет значение по указанному индексу

  • « Ds\Vector::rotate
  • Ds\Vector::shift »
  • PHP Manual
  • Вектор
  • Заменяет значение по указанному индексу

Ds\Vector::set

(PECL ds >= 1.0.0)

Ds\Vector::set — Заменяет значение по указанному индексу

Описание

public Ds\Vector::set ( int $index , mixed $value ) : void

Заменяет значение по указанному индексу.

Список параметров

index

Индекс, по которому надо заменить значение.

value

Новое значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Vector::set()

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

$vector->set(1, "_");
print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)

Пример #2 Пример использования Ds\Vector::set() с синтаксисом массива

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

$vector[1] = "_";
print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)


Удаляет и возвращает первое значение

  • « Ds\Vector::set
  • Ds\Vector::slice »
  • PHP Manual
  • Вектор
  • Удаляет и возвращает первое значение

Ds\Vector::shift

(PECL ds >= 1.0.0)

Ds\Vector::shift — Удаляет и возвращает первое значение

Описание

public Ds\Vector::shift ( void ) : mixed

Удаляет и возвращает первое значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Первое удаленное значение.

Ошибки

Выбрасывает исключение UnderflowException, если вектор пуст.

Примеры

Пример #1 Пример использования Ds\Vector::shift()

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector->shift());
var_dump($vector->shift());
var_dump($vector->shift());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Возвращает подвектор из заданного диапазона

  • « Ds\Vector::shift
  • Ds\Vector::sort »
  • PHP Manual
  • Вектор
  • Возвращает подвектор из заданного диапазона

Ds\Vector::slice

(PECL ds >= 1.0.0)

Ds\Vector::slice — Возвращает подвектор из заданного диапазона

Описание

public Ds\Vector::slice ( int $index [, int $length ] ) : Ds\Vector

Возвращает подвектор из диапазона заданного начальным индексом index и длиной length.

Список параметров

index

Индекс, задающий начало диапазона.

Если положительный, то будет отсчитываться от начала вектора. Если отрицательный, то от конца.

length

Положительное значение определяет, сколько элементов будет взято. Если количество элементов вектора меньше заданного значения, вернется столько элементов, сколько есть. Отрицательное значение задаст индекс, отсчитанный от конца вектора, определяющий конец диапазона. Если длина не задана, то будут возвращены все элементы вектора от заданного индекса до конца вектора.

Возвращаемые значения

Подвектор из заданного диапазона.

Примеры

Пример #1 Пример использования Ds\Vector::slice()

<?php
$vector = new \Ds\Vector(["a", "b", "c", "d", "e"]);

// Slice from 2 onwards
print_r($vector->slice(2));

// Slice from 1, for a length of 3
print_r($vector->slice(1, 3));

// Slice from 1 onwards
print_r($vector->slice(1));

// Slice from 2 from the end onwards
print_r($vector->slice(-2));

// Slice from 1 to 1 from the end
print_r($vector->slice(1, -1));
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Vector Object
(
    [0] => d
    [1] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)


Сортирует вектор

  • « Ds\Vector::slice
  • Ds\Vector::sorted »
  • PHP Manual
  • Вектор
  • Сортирует вектор

Ds\Vector::sort

(PECL ds >= 1.0.0)

Ds\Vector::sort — Сортирует вектор

Описание

public Ds\Vector::sort ([ callable $comparator ] ) : void

Сортирует вектор, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int
Предостережение

Не целое значение, возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Vector::sort()

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);
$vector->sort();

print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Пример #2 Пример использования Ds\Vector::sort() с callback-функцией сравнения

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);

$vector->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Возвращает отсортированную по значению копию коллекции

  • « Ds\Vector::sort
  • Ds\Vector::sum »
  • PHP Manual
  • Вектор
  • Возвращает отсортированную по значению копию коллекции

Ds\Vector::sorted

(PECL ds >= 1.0.0)

Ds\Vector::sorted — Возвращает отсортированную по значению копию коллекции

Описание

public Ds\Vector::sorted ([ callable $comparator ] ) : Ds\Vector

Возвращает отсортированную копию коллекции, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int
Предостережение

Не целое значение, возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Возвращает отсортированную по значению копию коллекции.

Примеры

Пример #1 Пример использования Ds\Vector::sorted()

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);

print_r($vector->sorted());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Пример #2 Пример использования Ds\Vector::sorted() с callback-функцией сравнения

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);

$sorted = $vector->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Возвращает сумму всех значений коллекции

  • « Ds\Vector::sorted
  • Ds\Vector::toArray »
  • PHP Manual
  • Вектор
  • Возвращает сумму всех значений коллекции

Ds\Vector::sum

(PECL ds >= 1.0.0)

Ds\Vector::sum — Возвращает сумму всех значений коллекции

Описание

public Ds\Vector::sum ( void ) : number

Возвращает сумму всех значений коллекции.

Замечание:

Массивы и объекты считаются за ноль.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сумма всех значений коллекции типов float или int, в зависимости от значений коллекции.

Примеры

Пример #1 Пример использования Ds\Vector::sum() с целочисленными значениями

<?php
$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

int(6)

Пример #2 Пример использования Ds\Vector::sum() со значениями типа float

<?php
$vector = new \Ds\Vector([1, 2.5, 3]);
var_dump($vector->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

float(6.5)


Преобразует коллекцию в массив (array)

  • « Ds\Vector::sum
  • Ds\Vector::unshift »
  • PHP Manual
  • Вектор
  • Преобразует коллекцию в массив (array)

Ds\Vector::toArray

(PECL ds >= 1.0.0)

Ds\Vector::toArray — Преобразует коллекцию в массив (array)

Описание

public Ds\Vector::toArray ( void ) : array

Преобразует коллекцию в массив (array).

Замечание:

Приведение к типу array пока не поддерживается.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array), содержащий все элементы коллекции с сохранением их порядка.

Примеры

Пример #1 Пример использования Ds\Vector::toArray()

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->toArray());
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Добавляет значения в начало вектора

  • « Ds\Vector::toArray
  • Двухсторонняя очередь »
  • PHP Manual
  • Вектор
  • Добавляет значения в начало вектора

Ds\Vector::unshift

(PECL ds >= 1.0.0)

Ds\Vector::unshift — Добавляет значения в начало вектора

Описание

public Ds\Vector::unshift ([ mixed $values ] ) : void

Добавляет значения в начало вектора, сдвигая все элементы вперед, чтобы освободить место для новых.

Список параметров

values

Добавляемые значения.

Замечание:

Множество значений добавляются в том порядке, как они были переданы.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Vector::unshift()

<?php
$vector = new \Ds\Vector([1, 2, 3]);

$vector->unshift("a");
$vector->unshift("b", "c");

print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => a
    [3] => 1
    [4] => 2
    [5] => 3
)


Класс Deque

(Информация о версии неизвестна, возможно, только в Git)

Введение

Двухсторонняя очередь - это последовательность значений в непрерывном буфере, который растет и уменьшаются автоматически. Deque (произносится как "deck") является аббривиатурой от "double-ended queue" и используется внутри Ds\Queue.

Два указателя используются для отслеживания начала и конца. Указатели могут "обернуть" конец очереди, что позволяет избежать перемещения значений для освобождения места. Это делает операции shift и unshift такими быстрыми, что Ds\Vector не может с этим соперничать.

Доступ к элементу по индексу требует пересчета в зависимости от его индекса в буфере: ((head + position) % capacity).

Сильные стороны

  • Поддерживает синтаксис массива (квадратные скобки).
  • Требует меньше памяти, чем массив (array) с тем же количеством значений.
  • Автоматически освобождает память, когда количество элементов уменьшается.
  • get(),
set(),
push(),
pop(),
shift() и
unshift() имеют сложность O(1).

Слабые стороны

  • Вместимость ограничена степенями двойки.
  • insert() и remove() имеют сложность O(n).

Обзор классов

Ds\Deque implements Ds\Sequence {
/* Константы */
const int MIN_CAPACITY = 8 ;
/* Методы */
public allocate ( int $capacity ) : void
public apply ( callable $callback ) : void
public capacity ( void ) : int
public clear ( void ) : void
public contains ([ mixed $...values ] ) : bool
public copy ( void ) : Ds\Deque
public filter ([ callable $callback ] ) : Ds\Deque
public find ( mixed $value ) : mixed
public first ( void ) : mixed
public get ( int $index ) : mixed
public insert ( int $index [, mixed $...values ] ) : void
public isEmpty ( void ) : bool
public join ([ string $glue ] ) : string
public last ( void ) : mixed
public map ( callable $callback ) : Ds\Deque
public merge ( mixed $values ) : Ds\Deque
public pop ( void ) : mixed
public push ([ mixed $...values ] ) : void
public reduce ( callable $callback [, mixed $initial ] ) : mixed
public remove ( int $index ) : mixed
public reverse ( void ) : void
public reversed ( void ) : Ds\Deque
public rotate ( int $rotations ) : void
public set ( int $index , mixed $value ) : void
public shift ( void ) : mixed
public slice ( int $index [, int $length ] ) : Ds\Deque
public sort ([ callable $comparator ] ) : void
public sorted ([ callable $comparator ] ) : Ds\Deque
public sum ( void ) : number
public toArray ( void ) : array
public unshift ([ mixed $values ] ) : void
}

Предопределенные константы

Ds\Deque::MIN_CAPACITY

Содержание

  • Ds\Deque::allocate — Выделяет память под указанную вместимость
  • Ds\Deque::apply — Обновляет все значения, применяя callback-функцию к каждому значению
  • Ds\Deque::capacity — Возвращает текущую вместимость
  • Ds\Deque::clear — Удаляет все значения из двухсторонней очереди
  • Ds\Deque::__construct — Создает новый экземпляр
  • Ds\Deque::contains — Проверяет, содержится ли в двухсторонней очереди заданные значения
  • Ds\Deque::copy — Возвращает поверхностную копию коллекции
  • Ds\Deque::count — Возвращает количество элементов двухсторонней очереди
  • Ds\Deque::filter — Создает новую двухстороннюю очередь из элементов, выбранных с помощью заданной callback-функции
  • Ds\Deque::find — Поиск индекса по значению
  • Ds\Deque::first — Возвращает первый элемент двухсторонней очереди
  • Ds\Deque::get — Возвращает значение по индексу
  • Ds\Deque::insert — Вставляет значения по указанному индексу
  • Ds\Deque::isEmpty — Проверяет, пуста ли двухсторонняя очередь
  • Ds\Deque::join — Склеивает все значения в строку
  • Ds\Deque::jsonSerialize — Возвращает коллекцию в JSON-представлении
  • Ds\Deque::last — Возвращает последнее значение двухсторонней очереди
  • Ds\Deque::map — Возвращает результат применения callback-функции ко всем значениям двухсторонней очереди
  • Ds\Deque::merge — Возвращает результат добавления всех заданных значений в двухстороннюю очередь
  • Ds\Deque::pop — Удаляет и возвращает последнее значение
  • Ds\Deque::push — Добавляет значения в конец двухсторонней очереди
  • Ds\Deque::reduce — Уменьшает коллекцию до одного значения, используя callback-функцию
  • Ds\Deque::remove — Удаляет и возвращает значение по индексу
  • Ds\Deque::reverse — Переворачивает текущую двухстороннюю очередь
  • Ds\Deque::reversed — Возвращает перевернутую копию двухсторонней очереди
  • Ds\Deque::rotate — Перематывает двухстороннюю очередь на заданное число значений
  • Ds\Deque::set — Заменяет значение по указанному индексу
  • Ds\Deque::shift — Удаляет и возвращает первое значение
  • Ds\Deque::slice — Возвращает подочередь из заданного диапазона
  • Ds\Deque::sort — Сортирует двухстороннюю очередь
  • Ds\Deque::sorted — Возвращает отсортированную по значению копию двухсторонней очереди
  • Ds\Deque::sum — Возвращает сумму всех значений двухсторонней очереди
  • Ds\Deque::toArray — Преобразует двухстороннюю очередь в массив (array)
  • Ds\Deque::unshift — Добавляет значения в начало двухсторонней очереди


Выделяет память под указанную вместимость

  • « Двухсторонняя очередь
  • Ds\Deque::apply »
  • PHP Manual
  • Двухсторонняя очередь
  • Выделяет память под указанную вместимость

Ds\Deque::allocate

(PECL ds >= 1.0.0)

Ds\Deque::allocate — Выделяет память под указанную вместимость

Описание

public Ds\Deque::allocate ( int $capacity ) : void

Гарантирует, что выделено достаточно памяти под заданную вместимость (количество значений). Позволяет избежать динамического перераспределения памяти при добавлении значений.

Список параметров

capacity

Вместимость. Предполагаемое количество значений.

Замечание:

Если новое значение вместимости меньше текущего, то она не изменится.

Замечание:

Значение вместимости округляется до ближайшей степени двойки (т.е. 8, 16, 32, 64, 128 и т.д.)

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Deque::allocate()

<?php
$deque = new \Ds\Deque();
var_dump($deque->capacity());

$deque->allocate(100);
var_dump($deque->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(8)
int(128)


Обновляет все значения, применяя callback-функцию к каждому значению

  • « Ds\Deque::allocate
  • Ds\Deque::capacity »
  • PHP Manual
  • Двухсторонняя очередь
  • Обновляет все значения, применяя callback-функцию к каждому значению

Ds\Deque::apply

(PECL ds >= 1.0.0)

Ds\Deque::apply — Обновляет все значения, применяя callback-функцию к каждому значению

Описание

public Ds\Deque::apply ( callable $callback ) : void

Обновляет все значения, применяя callback-функцию к каждому значению.

Список параметров

callback

callback ( mixed $value ) : mixed

Объект типа callable.

Callback-функция должна возвращать новое значение, которое заменит текущее.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Deque::apply()

<?php
$deque = new \Ds\Deque([1, 2, 3]);
$deque->apply(function($value) { return $value * 2; });

print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Возвращает текущую вместимость

  • « Ds\Deque::apply
  • Ds\Deque::clear »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает текущую вместимость

Ds\Deque::capacity

(PECL ds >= 1.0.0)

Ds\Deque::capacity — Возвращает текущую вместимость

Описание

public Ds\Deque::capacity ( void ) : int

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.

Примеры

Пример #1 Пример использования Ds\Deque::capacity()

<?php
$deque = new \Ds\Deque();
var_dump($deque->capacity());

$deque->push(...range(1, 50));
var_dump($deque->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(8)
int(64)


Удаляет все значения из двухсторонней очереди

  • « Ds\Deque::capacity
  • Ds\Deque::__construct »
  • PHP Manual
  • Двухсторонняя очередь
  • Удаляет все значения из двухсторонней очереди

Ds\Deque::clear

(PECL ds >= 1.0.0)

Ds\Deque::clear — Удаляет все значения из двухсторонней очереди

Описание

public Ds\Deque::clear ( void ) : void

Удаляет все значения из двухсторонней очереди.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Deque::clear()

<?php
$deque = new \Ds\Deque([1, 2, 3]);
print_r($deque);

$deque->clear();
print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Deque Object
(
)


Создает новый экземпляр

  • « Ds\Deque::clear
  • Ds\Deque::contains »
  • PHP Manual
  • Двухсторонняя очередь
  • Создает новый экземпляр

Ds\Deque::__construct

(PECL ds >= 1.0.0)

Ds\Deque::__construct — Создает новый экземпляр

Описание

public Ds\Deque::__construct ([ mixed $values ] )

Создает новый экземпляр, используя либо объект, реализующий traversable, либо массив, переданные в качестве параметра values.

Список параметров

values

Объект, реализующий интерфейс traversable или массив.

Примеры

Пример #1 Пример использования Ds\Deque::__construct()

<?php
$deque = new \Ds\Deque();
var_dump($deque);

$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Deque)#2 (0) {
}
object(Ds\Deque)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Проверяет, содержится ли в двухсторонней очереди заданные значения

  • « Ds\Deque::__construct
  • Ds\Deque::copy »
  • PHP Manual
  • Двухсторонняя очередь
  • Проверяет, содержится ли в двухсторонней очереди заданные значения

Ds\Deque::contains

(PECL ds >= 1.0.0)

Ds\Deque::contains — Проверяет, содержится ли в двухсторонней очереди заданные значения

Описание

public Ds\Deque::contains ([ mixed $...values ] ) : bool

Проверяет, содержится ли в двухсторонней очереди заданные значения.

Список параметров

values

Значения для проверки.

Возвращаемые значения

Возвращает FALSE, если хотя бы одно значение из values не найдено в коллекции и TRUE в противном случае.

Примеры

Пример #1 Пример использования Ds\Deque::contains()

<?php
$deque = new \Ds\Deque(['a', 'b', 'c', 1, 2, 3]);

var_dump($deque->contains('a'));                // true
var_dump($deque->contains('a', 'b'));           // true
var_dump($deque->contains('c', 'd'));           // false

var_dump($deque->contains(...['c', 'b', 'a'])); // true

// Всегда строгая проверка
var_dump($deque->contains(1));                  // true
var_dump($deque->contains('1'));                // false

var_dump($sequece->contains(...[]));               // true
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(false)
bool(true)


Возвращает поверхностную копию коллекции

  • « Ds\Deque::contains
  • Ds\Deque::count »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает поверхностную копию коллекции

Ds\Deque::copy

(PECL ds >= 1.0.0)

Ds\Deque::copy — Возвращает поверхностную копию коллекции

Описание

public Ds\Deque::copy ( void ) : Ds\Deque

Возвращает поверхностную копию двухсторонней очереди.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Поверхностная копия двухсторонней очереди.

Примеры

Пример #1 Пример использования Ds\Deque::copy()

<?php
$a = new \Ds\Deque([1, 2, 3]);
$b = $a->copy();

$b->push(4);

print_r($a);
print_r($b);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Возвращает количество элементов двухсторонней очереди

  • « Ds\Deque::copy
  • Ds\Deque::filter »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает количество элементов двухсторонней очереди

Ds\Deque::count

(PECL ds >= 1.0.0)

Ds\Deque::count — Возвращает количество элементов двухсторонней очереди

См. Countable::count()


Создает новую двухстороннюю очередь из элементов, выбранных с помощью заданной callback-функции

  • « Ds\Deque::count
  • Ds\Deque::find »
  • PHP Manual
  • Двухсторонняя очередь
  • Создает новую двухстороннюю очередь из элементов, выбранных с помощью заданной callback-функции

Ds\Deque::filter

(PECL ds >= 1.0.0)

Ds\Deque::filter — Создает новую двухстороннюю очередь из элементов, выбранных с помощью заданной callback-функции

Описание

public Ds\Deque::filter ([ callable $callback ] ) : Ds\Deque

Создает новую двухстороннюю очередь из элементов, выбранных с помощью заданной callback-функции.

Список параметров

callback

callback ( mixed $value ) : bool

Опциональный аргумент типа callable, который возвращает TRUE, если значение должно быть включено и FALSE, если нет.

Если callback-функция не задана, то будут включены только элементы, которые приводятся к логическому значению TRUE (см. приведение к boolean).

Возвращаемые значения

Новая двухсторонняя очередь, содержащая значения, для которых функция callback вернула TRUE, либо все элементы, которые при приведении к логическому типу становятся TRUE, если параметр callback не задан.

Примеры

Пример #1 Пример Ds\Deque::filter() с использованием callback-функции

<?php
$deque = new \Ds\Deque([1, 2, 3, 4, 5]);

var_dump($deque->filter(function($value) {
    return $value % 2 == 0;
}));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Deque)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Пример #2 Пример Ds\Deque::filter() без callback-функции

<?php
$deque = new \Ds\Deque([0, 1, 'a', true, false]);

var_dump($deque->filter());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Deque)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Поиск индекса по значению

  • « Ds\Deque::filter
  • Ds\Deque::first »
  • PHP Manual
  • Двухсторонняя очередь
  • Поиск индекса по значению

Ds\Deque::find

(PECL ds >= 1.0.0)

Ds\Deque::find — Поиск индекса по значению

Описание

public Ds\Deque::find ( mixed $value ) : mixed

Возвращает индекс значения value или FALSE, если ничего не найдено.

Список параметров

value

Искомое значение.

Возвращаемые значения

Индекс элемента или FALSE, если значение не найдено.

Замечание:

Элементы сравниваются строго (по типу и значению).

Примеры

Пример #1 Пример использования Ds\Deque::find()

<?php
$deque = new \Ds\Deque(["a", 1, true]);

var_dump($deque->find("a")); // 0
var_dump($deque->find("b")); // false
var_dump($deque->find("1")); // false
var_dump($deque->find(1));   // 1
?>

Результатом выполнения данного примера будет что-то подобное:

int(0)
bool(false)
bool(false)
int(1)


Возвращает первый элемент двухсторонней очереди

  • « Ds\Deque::find
  • Ds\Deque::get »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает первый элемент двухсторонней очереди

Ds\Deque::first

(PECL ds >= 1.0.0)

Ds\Deque::first — Возвращает первый элемент двухсторонней очереди

Описание

public Ds\Deque::first ( void ) : mixed

Возвращает первый элемент двухсторонней очереди.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Первый элемент двухсторонней очереди.

Ошибки

Выбрасывает исключение UnderflowException, если двухсторонняя очередь пуста.

Примеры

Пример #1 Пример использования Ds\Deque::first()

<?php
$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque->first());
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)


Возвращает значение по индексу

  • « Ds\Deque::first
  • Ds\Deque::insert »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает значение по индексу

Ds\Deque::get

(PECL ds >= 1.0.0)

Ds\Deque::get — Возвращает значение по индексу

Описание

public Ds\Deque::get ( int $index ) : mixed

Возвращает значение по заданному индексу.

Список параметров

index

Индекс. Первый элемент имеет индекс 0.

Возвращаемые значения

Значение по заданному индексу.

Ошибки

Выбрасывает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Deque::get()

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque->get(0));
var_dump($deque->get(1));
var_dump($deque->get(2));
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"

Пример #2 Пример использования Ds\Deque::get() с синтаксисом массива

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque[0]);
var_dump($deque[1]);
var_dump($deque[2]);
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Вставляет значения по указанному индексу

  • « Ds\Deque::get
  • Ds\Deque::isEmpty »
  • PHP Manual
  • Двухсторонняя очередь
  • Вставляет значения по указанному индексу

Ds\Deque::insert

(PECL ds >= 1.0.0)

Ds\Deque::insert — Вставляет значения по указанному индексу

Описание

public Ds\Deque::insert ( int $index [, mixed $...values ] ) : void

Вставляет значения по указанному индексу.

Список параметров

index

Индекс, по которому необходимо осуществить вставку. 0 <= index <= count

Замечание:

Можно указывать индекс, равный количеству элементов двухсторонней очереди.

values

Значение или значения для вставки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение OutOfRangeException в случае некорректного индекса.

Примеры

Пример #1 Пример использования Ds\Deque::insert()

<?php
$deque = new \Ds\Deque();

$deque->insert(0, "e");             // [e]
$deque->insert(1, "f");             // [e, f]
$deque->insert(2, "g");             // [e, f, g]
$deque->insert(0, "a", "b");        // [a, b, e, f, g]
$deque->insert(2, ...["c", "d"]);   // [a, b, c, d, e, f, g]

var_dump($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Deque)#1 (7) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
  [5]=>
  string(1) "f"
  [6]=>
  string(1) "g"
}


Проверяет, пуста ли двухсторонняя очередь

  • « Ds\Deque::insert
  • Ds\Deque::join »
  • PHP Manual
  • Двухсторонняя очередь
  • Проверяет, пуста ли двухсторонняя очередь

Ds\Deque::isEmpty

(PECL ds >= 1.0.0)

Ds\Deque::isEmpty — Проверяет, пуста ли двухсторонняя очередь

Описание

public Ds\Deque::isEmpty ( void ) : bool

Проверяет, пуста ли двухсторонняя очередь.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если двухсторонняя очередь пуста, FALSE в противном случае.

Примеры

Пример #1 Пример использования Ds\Deque::isEmpty()

<?php
$a = new \Ds\Deque([1, 2, 3]);
$b = new \Ds\Deque();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Склеивает все значения в строку

  • « Ds\Deque::isEmpty
  • Ds\Deque::jsonSerialize »
  • PHP Manual
  • Двухсторонняя очередь
  • Склеивает все значения в строку

Ds\Deque::join

(PECL ds >= 1.0.0)

Ds\Deque::join — Склеивает все значения в строку

Описание

public Ds\Deque::join ([ string $glue ] ) : string

Склеивает все значения в строку, опционально используя заданный разделитель.

Список параметров

glue

Необязательный параметр, задающий разделитель между значениями.

Возвращаемые значения

Все значения коллекции склееные в одну строку.

Примеры

Пример #1 Пример использования Ds\Deque::join() с разделителем

<?php
$deque = new \Ds\Deque(["a", "b", "c", 1, 2, 3]);

var_dump($deque->join("|"));
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "a|b|c|1|2|3"

Пример #2 Пример использования Ds\Deque::join() без разделителя

<?php
$deque = new \Ds\Deque(["a", "b", "c", 1, 2, 3]);

var_dump($deque->join());
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "abc123"


Возвращает коллекцию в JSON-представлении

  • « Ds\Deque::join
  • Ds\Deque::last »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает коллекцию в JSON-представлении

Ds\Deque::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Deque::jsonSerialize — Возвращает коллекцию в JSON-представлении

См. JsonSerializable::jsonSerialize()

Замечание:

Никогда не используйте эту функцию напрямую.


Возвращает последнее значение двухсторонней очереди

  • « Ds\Deque::jsonSerialize
  • Ds\Deque::map »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает последнее значение двухсторонней очереди

Ds\Deque::last

(PECL ds >= 1.0.0)

Ds\Deque::last — Возвращает последнее значение двухсторонней очереди

Описание

public Ds\Deque::last ( void ) : mixed

Возвращает последнее значение двухсторонней очереди.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последний элемент двухсторонней очереди.

Ошибки

Выбрасывает исключение UnderflowException, если двухсторонней очереди пуста.

Примеры

Пример #1 Пример использования Ds\Deque::last()

<?php
$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque->last());
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)


Возвращает результат применения callback-функции ко всем значениям двухсторонней очереди

  • « Ds\Deque::last
  • Ds\Deque::merge »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает результат применения callback-функции ко всем значениям двухсторонней очереди

Ds\Deque::map

(PECL ds >= 1.0.0)

Ds\Deque::map — Возвращает результат применения callback-функции ко всем значениям двухсторонней очереди

Описание

public Ds\Deque::map ( callable $callback ) : Ds\Deque

Возвращает результат применения callback-функции, переданной в callback, ко всем значениям двухсторонней очереди.

Список параметров

callback

callback ( mixed $value ) : mixed

Аргумент типа callable.

Эта функция должна возвращать новое значение для каждого элемента двухсторонней очереди.

Возвращаемые значения

Результат применения callback-функции к каждому значению двухсторонней очереди.

Замечание:

Значения в текущей двухсторонней очереди останутся неизменными.

Примеры

Пример #1 Пример использования Ds\Deque::map()

<?php
$deque = new \Ds\Deque([1, 2, 3]);

print_r($deque->map(function($value) { return $value * 2; }));
print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)
Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Возвращает результат добавления всех заданных значений в двухстороннюю очередь

  • « Ds\Deque::map
  • Ds\Deque::pop »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает результат добавления всех заданных значений в двухстороннюю очередь

Ds\Deque::merge

(PECL ds >= 1.0.0)

Ds\Deque::merge — Возвращает результат добавления всех заданных значений в двухстороннюю очередь

Описание

public Ds\Deque::merge ( mixed $values ) : Ds\Deque

Возвращает результат добавления всех заданных значений в двухстороннюю очередь.

Список параметров

values

Объект класса traversable или array.

Возвращаемые значения

Результат добавления всех переданных значений в двухстороннюю очередь. Фактически делается копия двухсторонней очереди, в которую добавляются значения.

Замечание:

Текущий экземпляр двухсторонней очереди останется нетронутым.

Примеры

Пример #1 Пример использования Ds\Deque::merge()

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->merge([4, 5, 6]));
var_dump($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Deque)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
}
object(Ds\Deque)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Удаляет и возвращает последнее значение

  • « Ds\Deque::merge
  • Ds\Deque::push »
  • PHP Manual
  • Двухсторонняя очередь
  • Удаляет и возвращает последнее значение

Ds\Deque::pop

(PECL ds >= 1.0.0)

Ds\Deque::pop — Удаляет и возвращает последнее значение

Описание

public Ds\Deque::pop ( void ) : mixed

Удаляет и возвращает последнее значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последнее удаленное значение.

Ошибки

Выбрасывает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Deque::pop()

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->pop());
var_dump($deque->pop());
var_dump($deque->pop());
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)
int(2)
int(1)


Добавляет значения в конец двухсторонней очереди

  • « Ds\Deque::pop
  • Ds\Deque::reduce »
  • PHP Manual
  • Двухсторонняя очередь
  • Добавляет значения в конец двухсторонней очереди

Ds\Deque::push

(PECL ds >= 1.0.0)

Ds\Deque::push — Добавляет значения в конец двухсторонней очереди

Описание

public Ds\Deque::push ([ mixed $...values ] ) : void

Добавляет значения в конец двухсторонней очереди.

Список параметров

values

Добавляемые значения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Deque::push()

<?php
$deque = new \Ds\Deque();

$deque->push("a");
$deque->push("b");
$deque->push("c", "d");
$deque->push(...["e", "f"]);

print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Уменьшает коллекцию до одного значения, используя callback-функцию

  • « Ds\Deque::push
  • Ds\Deque::remove »
  • PHP Manual
  • Двухсторонняя очередь
  • Уменьшает коллекцию до одного значения, используя callback-функцию

Ds\Deque::reduce

(PECL ds >= 1.0.0)

Ds\Deque::reduce — Уменьшает коллекцию до одного значения, используя callback-функцию

Описание

public Ds\Deque::reduce ( callable $callback [, mixed $initial ] ) : mixed

Уменьшает коллекцию до одного значения, используя callback-функцию.

Список параметров

callback
callback ( mixed $carry , mixed $value ) : mixed
carry

Значение, возвращенное предыдущим запуском функции или initial, если функция запущена в первый раз.

value

Значение текущей итерации.

initial

Начальное значение параметра carry. Можно указать NULL.

Возвращаемые значения

Значение, возвращенное окончательным запуском callback-функции.

Примеры

Пример #1 Пример использования Ds\Deque::reduce() с начальным значением

<?php
$deque = new \Ds\Deque([1, 2, 3]);

$callback = function($carry, $value) {
    return $carry * $value;
};

var_dump($deque->reduce($callback, 5));

// Iterations:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

Результатом выполнения данного примера будет что-то подобное:

int(30)

Пример #2 Пример использования Ds\Deque::reduce() без начального значения

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->reduce(function($carry, $value) {
    return $carry + $value + 5;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

Результатом выполнения данного примера будет что-то подобное:

int(21)


Удаляет и возвращает значение по индексу

  • « Ds\Deque::reduce
  • Ds\Deque::reverse »
  • PHP Manual
  • Двухсторонняя очередь
  • Удаляет и возвращает значение по индексу

Ds\Deque::remove

(PECL ds >= 1.0.0)

Ds\Deque::remove — Удаляет и возвращает значение по индексу

Описание

public Ds\Deque::remove ( int $index ) : mixed

Удаляет и возвращает значение по индексу.

Список параметров

index

Индекс, по которому необходимо удалить значение.

Возвращаемые значения

Удаленное значение.

Ошибки

Выбрасывает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Deque::remove()

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque->remove(1));
var_dump($deque->remove(0));
var_dump($deque->remove(0));
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "b"
string(1) "a"
string(1) "c"


Переворачивает текущую двухстороннюю очередь

  • « Ds\Deque::remove
  • Ds\Deque::reversed »
  • PHP Manual
  • Двухсторонняя очередь
  • Переворачивает текущую двухстороннюю очередь

Ds\Deque::reverse

(PECL ds >= 1.0.0)

Ds\Deque::reverse — Переворачивает текущую двухстороннюю очередь

Описание

public Ds\Deque::reverse ( void ) : void

Переворачивает текущую двухстороннюю очередь.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Deque::reverse()

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);
$deque->reverse();

print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => c
    [1] => b
    [2] => a
)


Возвращает перевернутую копию двухсторонней очереди

  • « Ds\Deque::reverse
  • Ds\Deque::rotate »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает перевернутую копию двухсторонней очереди

Ds\Deque::reversed

(PECL ds >= 1.0.0)

Ds\Deque::reversed — Возвращает перевернутую копию двухсторонней очереди

Описание

public Ds\Deque::reversed ( void ) : Ds\Deque

Возвращает перевернутую копию двухсторонней очереди.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Перевернутая копия двухсторонней очереди.

Замечание:

Текущая двухсторонняя очередь не изменится.

Примеры

Пример #1 Пример использования Ds\Deque::reversed()

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

print_r($deque->reversed());
print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Deque Object
(
    [0] => a
    [1] => b
    [2] => c
)


Перематывает двухстороннюю очередь на заданное число значений

  • « Ds\Deque::reversed
  • Ds\Deque::set »
  • PHP Manual
  • Двухсторонняя очередь
  • Перематывает двухстороннюю очередь на заданное число значений

Ds\Deque::rotate

(PECL ds >= 1.0.0)

Ds\Deque::rotate — Перематывает двухстороннюю очередь на заданное число значений

Описание

public Ds\Deque::rotate ( int $rotations ) : void

Перематывает двухстороннюю очередь на заданное число значений. Данная операция аналогична выполнению заданное количество раз кода $deque->push($deque->shift()), если число оборотов положительно и $deque->unshift($deque->pop()), если отрицательно.

Список параметров

rotations

Количество значений, которые надо "перемотать".

Возвращаемые значения

Эта функция не возвращает значения после выполнения.. Будет изменена текущая двухсторонняя очередь.

Примеры

Пример #1 Пример использования Ds\Deque::rotate()

<?php
$deque = new \Ds\Deque(["a", "b", "c", "d"]);

$deque->rotate(1);  // Аналогично $a = $sequence->deque(); $deque->push($a);
print_r($deque);

$deque->rotate(2);
print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

(
    [0] => b
    [1] => c
    [2] => d
    [3] => a
)
Ds\Deque Object
(
    [0] => d
    [1] => a
    [2] => b
    [3] => c
)


Заменяет значение по указанному индексу

  • « Ds\Deque::rotate
  • Ds\Deque::shift »
  • PHP Manual
  • Двухсторонняя очередь
  • Заменяет значение по указанному индексу

Ds\Deque::set

(PECL ds >= 1.0.0)

Ds\Deque::set — Заменяет значение по указанному индексу

Описание

public Ds\Deque::set ( int $index , mixed $value ) : void

Заменяет значение по указанному индексу.

Список параметров

index

Индекс, по которому надо заменить значение.

value

Новое значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Deque::set()

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

$deque->set(1, "_");
print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => a
    [1] => _
    [2] => c
)

Пример #2 Пример использования Ds\Deque::set() с синтаксисом массива

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

$deque[1] = "_";
print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => a
    [1] => _
    [2] => c
)


Удаляет и возвращает первое значение

  • « Ds\Deque::set
  • Ds\Deque::slice »
  • PHP Manual
  • Двухсторонняя очередь
  • Удаляет и возвращает первое значение

Ds\Deque::shift

(PECL ds >= 1.0.0)

Ds\Deque::shift — Удаляет и возвращает первое значение

Описание

public Ds\Deque::shift ( void ) : mixed

Удаляет и возвращает первое значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Первое удаленное значение.

Ошибки

Выбрасывает исключение UnderflowException, если двухсторонняя очередь пуста.

Примеры

Пример #1 Пример использования Ds\Deque::shift()

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque->shift());
var_dump($deque->shift());
var_dump($deque->shift());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Возвращает подочередь из заданного диапазона

  • « Ds\Deque::shift
  • Ds\Deque::sort »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает подочередь из заданного диапазона

Ds\Deque::slice

(PECL ds >= 1.0.0)

Ds\Deque::slice — Возвращает подочередь из заданного диапазона

Описание

public Ds\Deque::slice ( int $index [, int $length ] ) : Ds\Deque

Возвращает подочередь из диапазона заданного начальным индексом index и длиной length.

Список параметров

index

Индекс, задающий начало диапазона.

Если положительный, то будет отсчитываться от начала коллекции. Если отрицательный, то от конца.

length

Положительное значение определяет, сколько элементов бцдет взято. Если количество элементов двухсторонней очереди меньше заданного значения, вернется столько элементов, сколько есть. Отрицательное значение задаст индекс, отсчитанный от конца двухсторонней очереди, определяющий конец диапазона. Если длина не задана, то будут возвращены все элементы двухсторонней очереди от заданного индекса до конца коллекции.

Возвращаемые значения

Подочередь из заданного диапазона.

Примеры

Пример #1 Пример использования Ds\Deque::slice()

<?php
$deque = new \Ds\Deque(["a", "b", "c", "d", "e"]);

// Slice from 2 onwards
print_r($deque->slice(2));

// Slice from 1, for a length of 3
print_r($deque->slice(1, 3));

// Slice from 1 onwards
print_r($deque->slice(1));

// Slice from 2 from the end onwards
print_r($deque->slice(-2));

// Slice from 1 to 1 from the end
print_r($deque->slice(1, -1));
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Deque Object
(
    [0] => d
    [1] => e
)
Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => d
)


Сортирует двухстороннюю очередь

  • « Ds\Deque::slice
  • Ds\Deque::sorted »
  • PHP Manual
  • Двухсторонняя очередь
  • Сортирует двухстороннюю очередь

Ds\Deque::sort

(PECL ds >= 1.0.0)

Ds\Deque::sort — Сортирует двухстороннюю очередь

Описание

public Ds\Deque::sort ([ callable $comparator ] ) : void

Сортирует двухстороннюю очередь, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int
Предостережение

Не целое значение, возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Deque::sort()

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);
$deque->sort();

print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Пример #2 Пример использования Ds\Deque::sort() с callback-функцией сравнения

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);

$deque->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Возвращает отсортированную по значению копию двухсторонней очереди

  • « Ds\Deque::sort
  • Ds\Deque::sum »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает отсортированную по значению копию двухсторонней очереди

Ds\Deque::sorted

(PECL ds >= 1.0.0)

Ds\Deque::sorted — Возвращает отсортированную по значению копию двухсторонней очереди

Описание

public Ds\Deque::sorted ([ callable $comparator ] ) : Ds\Deque

Возвращает отсортированную копию двухсторонней очереди, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int
Предостережение

Не целое значение, возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Возвращает отсортированную по значению копию двухсторонней очереди.

Примеры

Пример #1 Пример использования Ds\Deque::sorted()

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);

print_r($deque->sorted());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Пример #2 Пример использования Ds\Deque::sorted() с callback-функцией сравнения

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);

$sorted = $deque->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Возвращает сумму всех значений двухсторонней очереди

  • « Ds\Deque::sorted
  • Ds\Deque::toArray »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает сумму всех значений двухсторонней очереди

Ds\Deque::sum

(PECL ds >= 1.0.0)

Ds\Deque::sum — Возвращает сумму всех значений двухсторонней очереди

Описание

public Ds\Deque::sum ( void ) : number

Возвращает сумму всех значений двухсторонней очереди.

Замечание:

Массивы и объекты считаются за ноль.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сумма всех значений двухсторонней очереди типов float или int, в зависимости от значений двухсторонней очереди.

Примеры

Пример #1 Пример использования Ds\Deque::sum() с целочисленными значениями

<?php
$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

int(6)

Пример #2 Пример использования Ds\Deque::sum() со значениями типа float

<?php
$deque = new \Ds\Deque([1, 2.5, 3]);
var_dump($deque->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

float(6.5)


Преобразует двухстороннюю очередь в массив (array)

  • « Ds\Deque::sum
  • Ds\Deque::unshift »
  • PHP Manual
  • Двухсторонняя очередь
  • Преобразует двухстороннюю очередь в массив (array)

Ds\Deque::toArray

(PECL ds >= 1.0.0)

Ds\Deque::toArray — Преобразует двухстороннюю очередь в массив (array)

Описание

public Ds\Deque::toArray ( void ) : array

Преобразует двухстороннюю очередь в массив (array).

Замечание:

Приведение к типу array пока не поддерживается.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array), содержащий все элементы двухсторонней очереди с сохранением их порядка.

Примеры

Пример #1 Пример использования Ds\Deque::toArray()

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->toArray());
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Добавляет значения в начало двухсторонней очереди

  • « Ds\Deque::toArray
  • Коллекция пар ключ-значение »
  • PHP Manual
  • Двухсторонняя очередь
  • Добавляет значения в начало двухсторонней очереди

Ds\Deque::unshift

(PECL ds >= 1.0.0)

Ds\Deque::unshift — Добавляет значения в начало двухсторонней очереди

Описание

public Ds\Deque::unshift ([ mixed $values ] ) : void

Добавляет значения в начало двухсторонней очереди, сдвигая все элементы вперед, чтобы освободить место для новых.

Список параметров

values

Добавляемые значения.

Замечание:

Множество значений добавляются в том порядке, как они были переданы.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Deque::unshift()

<?php
$deque = new \Ds\Deque([1, 2, 3]);

$deque->unshift("a");
$deque->unshift("b", "c");

print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => a
    [3] => 1
    [4] => 2
    [5] => 3
)


Класс Map

(Информация о версии неизвестна, возможно, только в Git)

Введение

Коллекция пар - это последовательная коллекция, содержащая пары ключ-значение, практически идентичная массиву и используется для тех же целей. Ключи могут быть любого типа, но должны быть уникальными. Если добавить пару с уже существующим ключем, то она будет заменена.

Сильные стороны

  • Ключи и значения могут быть любого типа, включая объекты.
  • Поддерживает синтаксис массива (квадратные скобки).
  • Сохраняется порядок вставки.
  • Скорость и потребление памяти сравнимо с использованием массива.
  • Автоматически освобождает память, когда количество элементов уменьшается.

Слабые стороны

  • Не может быть сконвертирована в массив, если в качестве ключей используются объекты.

Обзор классов

Ds\Map implements Ds\Collection {
/* Константы */
const int MIN_CAPACITY = 16 ;
/* Методы */
public allocate ( int $capacity ) : void
public apply ( callable $callback ) : void
public capacity ( void ) : int
public clear ( void ) : void
public copy ( void ) : Ds\Map
public diff ( Ds\Map $map ) : Ds\Map
public filter ([ callable $callback ] ) : Ds\Map
public first ( void ) : Ds\Pair
public get ( mixed $key [, mixed $default ] ) : mixed
public hasKey ( mixed $key ) : bool
public hasValue ( mixed $value ) : bool
public intersect ( Ds\Map $map ) : Ds\Map
public isEmpty ( void ) : bool
public keys ( void ) : Ds\Set
public ksort ([ callable $comparator ] ) : void
public ksorted ([ callable $comparator ] ) : Ds\Map
public last ( void ) : Ds\Pair
public map ( callable $callback ) : Ds\Map
public merge ( mixed $values ) : Ds\Map
public pairs ( void ) : Ds\Sequence
public put ( mixed $key , mixed $value ) : void
public putAll ( mixed $pairs ) : void
public reduce ( callable $callback [, mixed $initial ] ) : mixed
public remove ( mixed $key [, mixed $default ] ) : mixed
public reverse ( void ) : void
public reversed ( void ) : Ds\Map
public skip ( int $position ) : Ds\Pair
public slice ( int $index [, int $length ] ) : Ds\Map
public sort ([ callable $comparator ] ) : void
public sorted ([ callable $comparator ] ) : Ds\Map
public sum ( void ) : number
public toArray ( void ) : array
public union ( Ds\Map $map ) : Ds\Map
public values ( void ) : Ds\Sequence
public xor ( Ds\Map $map ) : Ds\Map
}

Предопределенные константы

Ds\Map::MIN_CAPACITY

Содержание

  • Ds\Map::allocate — Выделяет необходимое количество памяти под требуюмую вместимость
  • Ds\Map::apply — Обновление всех значений применением к ним переданной callback-функции
  • Ds\Map::capacity — Возвращает текущую вместимость
  • Ds\Map::clear — Удаляет все значения из коллекции
  • Ds\Map::__construct — Создает новый экземпляр
  • Ds\Map::copy — Возвращает поверхностную копию коллекции
  • Ds\Map::count — Возвращает количество элементов коллекции
  • Ds\Map::diff — Создает новую коллекцию пар с элементами, ключей которых нет в другой коллекции пар
  • Ds\Map::filter — Создает новую коллекцию пар из элементов, выбранных с помощью заданной callback-функции
  • Ds\Map::first — Возвращает первый элемент коллекции
  • Ds\Map::get — Возвращает значение по ключу
  • Ds\Map::hasKey — Проверяет, содержит ли коллекция заданный ключ
  • Ds\Map::hasValue — Проверяет, содержит ли коллекция заданное значение
  • Ds\Map::intersect — Создает новую коллекцию пар, созданную пересечением с другой коллекцией пар
  • Ds\Map::isEmpty — Проверяет, пуста ли коллекция
  • Ds\Map::jsonSerialize — Возвращает коллекцию в JSON-представлении
  • Ds\Map::keys — Возвращает набор ключей коллекции
  • Ds\Map::ksort — Сортирует текущую коллекцию по ключам
  • Ds\Map::ksorted — Возвращает копию коллекции, отсортированной по ключам
  • Ds\Map::last — Возвращает последнюю пару коллекции
  • Ds\Map::map — Возвращает результат применения callback-функции ко всем значениям коллекции
  • Ds\Map::merge — Возвращает результат добавления всех заданных элементов в коллекцию
  • Ds\Map::pairs — Возвращает последовательность, содержащую все пары коллекции
  • Ds\Map::put — Установка значения по заданному ключу
  • Ds\Map::putAll — Связывает с коллекцией все пары ключ-значение из объекта класса traversable или массива
  • Ds\Map::reduce — Уменьшает коллекцию до одного значения, используя callback-функцию
  • Ds\Map::remove — Удаляет и возвращает значение по ключу
  • Ds\Map::reverse — Переворачивает текущую коллекцию
  • Ds\Map::reversed — Возвращает перевернутую копию коллекции
  • Ds\Map::skip — Возвращает пару по индексу позиции
  • Ds\Map::slice — Возвращает подмножество коллекции из заданного диапазона
  • Ds\Map::sort — Сортирует коллекцию по значениям
  • Ds\Map::sorted — Возвращает отсортированную по значению копию коллекции
  • Ds\Map::sum — Возвращает сумму всех значений коллекции
  • Ds\Map::toArray — Преобразует коллекцию в array
  • Ds\Map::union — Создает новую коллекцию пар из элементов двух коллекций
  • Ds\Map::values — Возвращает последовательность значений коллекции
  • Ds\Map::xor — Создает новую коллекцию пар из элементов, которые есть в одной из коллекций, но не в обеих одновременно


Выделяет необходимое количество памяти под требуюмую вместимость

  • « Коллекция пар ключ-значение
  • Ds\Map::apply »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Выделяет необходимое количество памяти под требуюмую вместимость

Ds\Map::allocate

(PECL ds >= 1.0.0)

Ds\Map::allocate — Выделяет необходимое количество памяти под требуюмую вместимость

Описание

public Ds\Map::allocate ( int $capacity ) : void

Выделяет необходимое количество памяти под требуюмую вместимость.

Список параметров

capacity

Вместимость (количество значений), под хранение которых запрашивается память.

Замечание:

Значение остается неизменным, если текущее значение больше или равно заданному.

Замечание:

Вместимость всегда округляется вверх до ближайшей степени двойки. (т.е. 16, 32, 64, 128 и т.д)

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Map::allocate()

<?php
$map = new \Ds\Map();
var_dump($map->capacity());

$map->allocate(100);
var_dump($map->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(16)
int(128)


Обновление всех значений применением к ним переданной callback-функции

  • « Ds\Map::allocate
  • Ds\Map::capacity »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Обновление всех значений применением к ним переданной callback-функции

Ds\Map::apply

(PECL ds >= 1.0.0)

Ds\Map::apply — Обновление всех значений применением к ним переданной callback-функции

Описание

public Ds\Map::apply ( callable $callback ) : void

Обновление всех значений применением к ним переданной callback-функции.

Список параметров

callback

callback ( mixed $key , mixed $value ) : mixed

Объект типа callable.

Callback-функция должна возвращать новое значение, которое заменит текущее.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Map::apply()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$map->apply(function($key, $value) { return $value * 2; });

print_r($map);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 4
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 6
        )

)


Возвращает текущую вместимость

  • « Ds\Map::apply
  • Ds\Map::clear »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает текущую вместимость

Ds\Map::capacity

(PECL ds >= 1.0.0)

Ds\Map::capacity — Возвращает текущую вместимость

Описание

public Ds\Map::capacity ( void ) : int

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.

Примеры

Пример #1 Пример использования Ds\Map::capacity()

<?php
$map = new \Ds\Map();
var_dump($map->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(16)


Удаляет все значения из коллекции

  • « Ds\Map::capacity
  • Ds\Map::__construct »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Удаляет все значения из коллекции

Ds\Map::clear

(PECL ds >= 1.0.0)

Ds\Map::clear — Удаляет все значения из коллекции

Описание

public Ds\Map::clear ( void ) : void

Удаляет все значения из коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Map::clear()

<?php
$map = new \Ds\Map([
    "a" => 1,
    "b" => 2,
    "c" => 3,
]);
print_r($map);

$map->clear();
print_r($map);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)
Ds\Map Object
(
)


Создает новый экземпляр

  • « Ds\Map::clear
  • Ds\Map::copy »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Создает новый экземпляр

Ds\Map::__construct

(PECL ds >= 1.0.0)

Ds\Map::__construct — Создает новый экземпляр

Описание

public Ds\Map::__construct ([ mixed $...values ] )

Создает новый экземпляр, используя либо объект, реализующий traversable, либо массив, переданный в качестве параметра values.

Список параметров

values

Объект, реализующий интерфейс traversable или массив.

Примеры

Пример #1 Пример использования Ds\Map::__construct()

<?php
$map = new \Ds\Map();
var_dump($map);

$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Map)#1 (0) {
}
object(Ds\Map)#2 (3) {
  [0]=>
  object(Ds\Pair)#1 (2) {
    ["key"]=>
    string(1) "a"
    ["value"]=>
    int(1)
  }
  [1]=>
  object(Ds\Pair)#3 (2) {
    ["key"]=>
    string(1) "b"
    ["value"]=>
    int(2)
  }
  [2]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    string(1) "c"
    ["value"]=>
    int(3)
  }
}


Возвращает поверхностную копию коллекции

  • « Ds\Map::__construct
  • Ds\Map::count »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает поверхностную копию коллекции

Ds\Map::copy

(PECL ds >= 1.0.0)

Ds\Map::copy — Возвращает поверхностную копию коллекции

Описание

public Ds\Map::copy ( void ) : Ds\Map

Возвращает поверхностную копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Поверхностная копия коллекции.

Примеры

Пример #1 Пример использования Ds\Map::copy()

<?php
$map = new \Ds\Map([
    "a" => 1,
    "b" => 2,
    "c" => 3,
]);

print_r($map->copy());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


Возвращает количество элементов коллекции

  • « Ds\Map::copy
  • Ds\Map::diff »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает количество элементов коллекции

Ds\Map::count

(PECL ds >= 1.0.0)

Ds\Map::count — Возвращает количество элементов коллекции

См. описание функции Countable::count()


Создает новую коллекцию пар с элементами, ключей которых нет в другой коллекции пар

  • « Ds\Map::count
  • Ds\Map::filter »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Создает новую коллекцию пар с элементами, ключей которых нет в другой коллекции пар

Ds\Map::diff

(PECL ds >= 1.0.0)

Ds\Map::diff — Создает новую коллекцию пар с элементами, ключей которых нет в другой коллекции пар

Описание

public Ds\Map::diff ( Ds\Map $map ) : Ds\Map

Возвращает новую коллекцию пар, не содержащую элементов с ключами, которые присутствуют в коллекции пар, переданной в map.

A \ B = {x ? A | x ? B}

Список параметров

map

Коллекция пар, содержащая элементы с ключами, которых не должно быть в новой коллекции пар.

Возвращаемые значения

Результат удаления всех элементов, ключи которых присутствуют в коллекции пар, переданной в map.

Смотри также

  • » Расзость массивов на Wikipedia

Примеры

Пример #1 Пример использования Ds\Map::diff()

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 4, "c" => 5, "d" => 6]);

var_dump($a->diff($b));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Map)#3 (1) {
  [0]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    string(1) "a"
    ["value"]=>
    int(1)
  }
}


Создает новую коллекцию пар из элементов, выбранных с помощью заданной callback-функции

  • « Ds\Map::diff
  • Ds\Map::first »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Создает новую коллекцию пар из элементов, выбранных с помощью заданной callback-функции

Ds\Map::filter

(PECL ds >= 1.0.0)

Ds\Map::filter — Создает новую коллекцию пар из элементов, выбранных с помощью заданной callback-функции

Описание

public Ds\Map::filter ([ callable $callback ] ) : Ds\Map

Создает новую коллекцию пар из элементов, выбранных с помощью заданной callback-функции.

Список параметров

callback

callback ( mixed $key , mixed $value ) : bool

Опциональный аргумент типа callable, который возвращает TRUE, если пара должна быть включена и FALSE, если нет.

Если callback-функция не задана, то будут включены только элементы, которые приводятся к логическому значению TRUE (смотрите раздел с приведением к boolean).

Возвращаемые значения

Новая коллекция пар, содержащая значения, для которых callback-функция вернула TRUE, или все элементы, которые при приведении к логическому типу становятся TRUE, если параметр callback не задан.

Примеры

Пример #1 Пример Ds\Map::filter() с использованием callback-функции

<?php
$map = new \Ds\Map(["a", "b", "c", "d", "e"]);

var_dump($map->filter(function($key, $value) {
    return $key % 2 == 0;
}));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Map)#3 (3) {
  [0]=>
  object(Ds\Pair)#2 (2) {
    ["key"]=>
    int(0)
    ["value"]=>
    string(1) "a"
  }
  [1]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    int(2)
    ["value"]=>
    string(1) "c"
  }
  [2]=>
  object(Ds\Pair)#5 (2) {
    ["key"]=>
    int(4)
    ["value"]=>
    string(1) "e"
  }
}

Пример #2 Пример Ds\Map::filter() без callback-функции

<?php
$map = new \Ds\Map(["a" => 0, "b" => 1, "c" => true, "d" => false]);

var_dump($map->filter());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Map)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Возвращает первый элемент коллекции

  • « Ds\Map::filter
  • Ds\Map::get »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает первый элемент коллекции

Ds\Map::first

(PECL ds >= 1.0.0)

Ds\Map::first — Возвращает первый элемент коллекции

Описание

public Ds\Map::first ( void ) : Ds\Pair

Возвращает первый элемент коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Первый элемент коллекции.

Ошибки

Выбрасывает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Map::first()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->first());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Pair)#2 (2) {
  ["key"]=>
  string(1) "a"
  ["value"]=>
  int(1)
}


Возвращает значение по ключу

  • « Ds\Map::first
  • Ds\Map::hasKey »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает значение по ключу

Ds\Map::get

(PECL ds >= 1.0.0)

Ds\Map::get — Возвращает значение по ключу

Описание

public Ds\Map::get ( mixed $key [, mixed $default ] ) : mixed

Возвращает значение по заданному ключу, или необязательное значение по умолчанию, если ключ не найден.

Замечание:

Поддерживаются значения типа object. Если объект реализует интерфейс Ds\Hashable, проверка производится путем вызова метода объекта equals. Если объект не реализует интерфейс Ds\Hashable, объекты должны ссылаться на один и тот же экземпляр класса.

Замечание:

Вы можете использовать синтаксис массива для доступа к значениям, т.е. $map["key"].

Предостережение

Будьте осторожны при использовании синтаксиса массива. Скалярные ключи будут приведены к целым движком PHP. К примеру, $map["1"] будет пытаться обратиться к int(1), тогда как $map->get("1") обратится к правильному элементу.

Смотрите раздел Массивы.

Список параметров

key

Ключ.

default

Необязательное значение, которое вернется, если элемент с заданным ключем отсутствует.

Возвращаемые значения

Значение по ключу key, или значение default, если ключ не найден.

Ошибки

Выбрасывает исключение OutOfBoundsException если ключе не найден и значение по умолчанию не задано.

Примеры

Пример #1 Пример использования Ds\Map::get()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->get("a"));       // 1
var_dump($map->get("d", 10));   // 10 (используется по умолчанию)
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)
int(10)

Пример #2 Пример использования Ds\Map::get() с синтаксисом массива

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map["a"])); // 1
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)


Проверяет, содержит ли коллекция заданный ключ

  • « Ds\Map::get
  • Ds\Map::hasValue »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Проверяет, содержит ли коллекция заданный ключ

Ds\Map::hasKey

(PECL ds >= 1.0.0)

Ds\Map::hasKey — Проверяет, содержит ли коллекция заданный ключ

Описание

public Ds\Map::hasKey ( mixed $key ) : bool

Проверяет, содержит ли коллекция заданный ключ.

Список параметров

key

Проверяемый ключ.

Возвращаемые значения

Возвращает TRUE, если ключ найден, иначе FALSE.

Примеры

Пример #1 Пример использования Ds\Map::hasKey()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->hasKey("a")); // true
var_dump($map->hasKey("e")); // false
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)


Проверяет, содержит ли коллекция заданное значение

  • « Ds\Map::hasKey
  • Ds\Map::intersect »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Проверяет, содержит ли коллекция заданное значение

Ds\Map::hasValue

(PECL ds >= 1.0.0)

Ds\Map::hasValue — Проверяет, содержит ли коллекция заданное значение

Описание

public Ds\Map::hasValue ( mixed $value ) : bool

Проверяет, содержит ли коллекция заданное значение.

Список параметров

value

Значение для проверки.

Возвращаемые значения

Возвращает TRUE, если ключ найден, иначе FALSE.

Примеры

Пример #1 Пример использования Ds\Map::hasValue()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->hasValue(1)); // true
var_dump($map->hasValue(4)); // false
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)


Создает новую коллекцию пар, созданную пересечением с другой коллекцией пар

  • « Ds\Map::hasValue
  • Ds\Map::isEmpty »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Создает новую коллекцию пар, созданную пересечением с другой коллекцией пар

Ds\Map::intersect

(PECL ds >= 1.0.0)

Ds\Map::intersect — Создает новую коллекцию пар, созданную пересечением с другой коллекцией пар

Описание

public Ds\Map::intersect ( Ds\Map $map ) : Ds\Map

Создает новую коллекцию пар из текущей, содержащую элементы, ключи которых присутствуют как в текущей коллекции, так и в переданной в параметре map. Другими словами, возвращает копию текущей коллекции, из которой удалены все элементы, ключи которых отсутствуют в коллекции из map.

A ? B = {x : x ? A ? x ? B}

Замечание:

Значения берутся из текущей коллекции пар.

Список параметров

map

Новая коллекция типа Map.

Возвращаемые значения

Пересечение текущей коллекции и переданной в map.

Также смотрите

  • » Пересечение на Википедия

Примеры

Пример #1 Пример использования Ds\Map::intersect()

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 4, "c" => 5, "d" => 6]);

var_dump($a->intersect($b));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Map)#3 (2) {
  [0]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    string(1) "b"
    ["value"]=>
    int(2)
  }
  [1]=>
  object(Ds\Pair)#5 (2) {
    ["key"]=>
    string(1) "c"
    ["value"]=>
    int(3)
  }
}


Проверяет, пуста ли коллекция

  • « Ds\Map::intersect
  • Ds\Map::jsonSerialize »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Проверяет, пуста ли коллекция

Ds\Map::isEmpty

(PECL ds >= 1.0.0)

Ds\Map::isEmpty — Проверяет, пуста ли коллекция

Описание

public Ds\Map::isEmpty ( void ) : bool

Проверяет, пуста ли коллекция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если коллекция пуста, и FALSE в противном случае.

Примеры

Пример #1 Пример использования Ds\Map::isEmpty()

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Возвращает коллекцию в JSON-представлении

  • « Ds\Map::isEmpty
  • Ds\Map::keys »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает коллекцию в JSON-представлении

Ds\Map::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Map::jsonSerialize — Возвращает коллекцию в JSON-представлении

Смотри JsonSerializable::jsonSerialize()

Замечание:

Никогда не используйте эту функцию напрямую.


Возвращает набор ключей коллекции

  • « Ds\Map::jsonSerialize
  • Ds\Map::ksort »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает набор ключей коллекции

Ds\Map::keys

(PECL ds >= 1.0.0)

Ds\Map::keys — Возвращает набор ключей коллекции

Описание

public Ds\Map::keys ( void ) : Ds\Set

Возвращает набор ключей коллекции, с сохранением их порядка.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Коллекция Ds\Set, содержащая все ключи текущей коллекции.

Примеры

Пример #1 Пример использования Ds\Map::keys()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->keys());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#2 (3) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
}


Сортирует текущую коллекцию по ключам

  • « Ds\Map::keys
  • Ds\Map::ksorted »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Сортирует текущую коллекцию по ключам

Ds\Map::ksort

(PECL ds >= 1.0.0)

Ds\Map::ksort — Сортирует текущую коллекцию по ключам

Описание

public Ds\Map::ksort ([ callable $comparator ] ) : void

Сортирует текущую коллекцию по ключам, опционально используя callback-функцию comparator для сравнения элементов.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int
Предостережение

Не целое значение, возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Map::ksort()

<?php
$map = new \Ds\Map(["b" => 2, "c" => 3, "a" => 1]);
$map->ksort();

print_r($map);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)

Пример #2 Пример использования Ds\Map::ksort() с callback-функцией сравнения

<?php
$map = new \Ds\Map([1 => "x", 2 => "y", 0 => "z"]);

// Обратный порядок
$map->ksort(function($a, $b) {
    return $b <=> $a;
});

print_r($map);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 2
            [value] => y
        )

    [1] => Ds\Pair Object
        (
            [key] => 1
            [value] => x
        )

    [2] => Ds\Pair Object
        (
            [key] => 0
            [value] => z
        )

)


Возвращает копию коллекции, отсортированной по ключам

  • « Ds\Map::ksort
  • Ds\Map::last »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает копию коллекции, отсортированной по ключам

Ds\Map::ksorted

(Информация о версии неизвестна, возможно, только в Git)

Ds\Map::ksorted — Возвращает копию коллекции, отсортированной по ключам

Описание

public Ds\Map::ksorted ([ callable $comparator ] ) : Ds\Map

Возвращает копию коллекции, отсортированной по ключам, опционально используя callback-функцию comparator для сравнения элементов.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int
Предостережение

Возврат не целого значение из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Возвращает копию коллекции, отсортированной по ключам.

Примеры

Пример #1 Пример использования Ds\Map::ksorted()

<?php
$map = new \Ds\Map(["b" => 2, "c" => 3, "a" => 1]);

print_r($map->ksorted());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)

Пример #2 Пример использования Ds\Map::ksorted() с callback-функцией сравнения

<?php
$map = new \Ds\Map([1 => "x", 2 => "y", 0 => "z"]);

// Обратный порядок
$sorted = $map->ksorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 2
            [value] => y
        )

    [1] => Ds\Pair Object
        (
            [key] => 1
            [value] => x
        )

    [2] => Ds\Pair Object
        (
            [key] => 0
            [value] => z
        )

)


Возвращает последнюю пару коллекции

  • « Ds\Map::ksorted
  • Ds\Map::map »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает последнюю пару коллекции

Ds\Map::last

(PECL ds >= 1.0.0)

Ds\Map::last — Возвращает последнюю пару коллекции

Описание

public Ds\Map::last ( void ) : Ds\Pair

Возвращает последнюю пару коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последний элемент коллекции.

Ошибки

Выбрасывает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Map::last()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->last());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Pair)#2 (2) {
  ["key"]=>
  string(1) "c"
  ["value"]=>
  int(3)
}


Возвращает результат применения callback-функции ко всем значениям коллекции

  • « Ds\Map::last
  • Ds\Map::merge »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает результат применения callback-функции ко всем значениям коллекции

Ds\Map::map

(PECL ds >= 1.0.0)

Ds\Map::map — Возвращает результат применения callback-функции ко всем значениям коллекции

Описание

public Ds\Map::map ( callable $callback ) : Ds\Map

Возвращает результат применения callback-функции, переданной в callback, ко всем значениям коллекции.

Список параметров

callback

callback ( mixed $key , mixed $value ) : mixed

Аргумент типа callable.

Эта функция должна возвращать новое значение для каждого элемента коллекции.

Возвращаемые значения

Результат применения callback к каждому значению коллекции.

Замечание:

Значения в текущей коллекции останутся неизменными.

Примеры

Пример #1 Пример использования Ds\Map::map()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

print_r($map->map(function($key, $value) { return $value * 2; }));
print_r($map);
?>

Результатом выполнения данного примера будет что-то подобное:

(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 4
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 6
        )

)
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


Возвращает результат добавления всех заданных элементов в коллекцию

  • « Ds\Map::map
  • Ds\Map::pairs »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает результат добавления всех заданных элементов в коллекцию

Ds\Map::merge

(PECL ds >= 1.0.0)

Ds\Map::merge — Возвращает результат добавления всех заданных элементов в коллекцию

Описание

public Ds\Map::merge ( mixed $values ) : Ds\Map

Возвращает результат добавления всех ключей переданного объекта класса traversable или массива (array) с соответствующими значениями в текущую коллекцию.

Замечание:

Значения текущей коллекции будут перезаписаны, если переданные ключи уже существуют.

Список параметров

values

Объект класса traversable или array.

Возвращаемые значения

Возвращает результат добавления всех ключей переданного объекта класса traversable или массива с соответствующими значениями в текущую коллекцию

Замечание:

Текущий экземпляр коллекции останется нетронутым.

Примеры

Пример #1 Пример использования Ds\Map::merge()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

print_r($map->merge(["a" => 10, "e" => 50]));
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 10
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

    [3] => Ds\Pair Object
        (
            [key] => e
            [value] => 50
        )

)


Возвращает последовательность, содержащую все пары коллекции

  • « Ds\Map::merge
  • Ds\Map::put »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает последовательность, содержащую все пары коллекции

Ds\Map::pairs

(PECL ds >= 1.0.0)

Ds\Map::pairs — Возвращает последовательность, содержащую все пары коллекции

Описание

public Ds\Map::pairs ( void ) : Ds\Sequence

Возвращает Ds\Sequence, содержащую все пары коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ds\Sequence, содержащая все пары исходной коллекции.

Примеры

Пример #1 Пример использования Ds\Map::pairs()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->pairs());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Map)#8 (3) {
  [0]=>
  object(Ds\Pair)#5 (2) {
    ["key"]=>
    string(1) "a"
    ["value"]=>
    int(1)
  }
  [1]=>
  object(Ds\Pair)#6 (2) {
    ["key"]=>
    string(1) "b"
    ["value"]=>
    int(2)
  }
  [2]=>
  object(Ds\Pair)#7 (2) {
    ["key"]=>
    string(1) "c"
    ["value"]=>
    int(3)
  }
}
p


Установка значения по заданному ключу

  • « Ds\Map::pairs
  • Ds\Map::putAll »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Установка значения по заданному ключу

Ds\Map::put

(PECL ds >= 1.0.0)

Ds\Map::put — Установка значения по заданному ключу

Описание

public Ds\Map::put ( mixed $key , mixed $value ) : void

Связывает ключ key со значением value, если элемент с таким ключем уже существует - его значение перезаписывается.

Замечание:

Поддерживаются значения типа object. Если объект реализует интерфейс Ds\Hashable, проверка производится путем вызова метода объекта equals. Если объект не реализует интерфейс Ds\Hashable, объекты должны ссылаться на один и тот же экземпляр класса.

Замечание:

Вы можете использовать синтаксис массива для доступа к значениям, т.е. $map["key"].

Предостережение

Будьте осторожны при использовании синтаксиса массива. Скалярные ключи будут приведены к целым движком PHP. К примеру, $map["1"] будет пытаться обратиться к int(1), тогда как $map->get("1") обратится к правильному элементу.

Смотрите раздел Массивы.

Список параметров

key

Ключ.

value

Значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Map::put()

<?php
$map = new \Ds\Map();

$map->put("a", 1);
$map->put("b", 2);
$map->put("c", 3);

print_r($map);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)

Пример #2 Пример использования Ds\Map::put() с объектами в качестве ключей

<?php
class HashableObject implements \Ds\Hashable
{
    /**
     * Значение, которое мы будем использовать в качестве хеша. Не определяет идентичность.
     */
    private $value;

    public function __construct($value)
    {
        $this->value = $value;
    }

    public function hash()
    {
        return $this->value;
    }

    public function equals($obj): bool
    {
        return $this->value === $obj->value;
    }
}

$map = new \Ds\Map();

$obj = new \ArrayIterator([]);

// Использование одного и того же экземпляра объекта несколько раз будет каждый раз
// перезаписывать значение
$map->put($obj, 1);
$map->put($obj, 2);

// Использование разных экземпляров одного и того же класса будет создавать новые
// элементы
$map->put(new \stdClass(), 3);
$map->put(new \stdClass(), 4);

// Использование одинаковых hashable-экземпляров несколько раз будет перезаписывать
// предыдущие значения
$map->put(new \HashableObject(1), 5);
$map->put(new \HashableObject(1), 6);
$map->put(new \HashableObject(2), 7);
$map->put(new \HashableObject(2), 8);

var_dump($map);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Map)#1 (5) {
  [0]=>
  object(Ds\Pair)#7 (2) {
    ["key"]=>
    object(ArrayIterator)#2 (1) {
      ["storage":"ArrayIterator":private]=>
      array(0) {
      }
    }
    ["value"]=>
    int(2)
  }
  [1]=>
  object(Ds\Pair)#8 (2) {
    ["key"]=>
    object(stdClass)#3 (0) {
    }
    ["value"]=>
    int(3)
  }
  [2]=>
  object(Ds\Pair)#9 (2) {
    ["key"]=>
    object(stdClass)#4 (0) {
    }
    ["value"]=>
    int(4)
  }
  [3]=>
  object(Ds\Pair)#10 (2) {
    ["key"]=>
    object(HashableObject)#5 (1) {
      ["value":"HashableObject":private]=>
      int(1)
    }
    ["value"]=>
    int(6)
  }
  [4]=>
  object(Ds\Pair)#11 (2) {
    ["key"]=>
    object(HashableObject)#6 (1) {
      ["value":"HashableObject":private]=>
      int(2)
    }
    ["value"]=>
    int(8)
  }
}


Связывает с коллекцией все пары ключ-значение из объекта класса traversable или массива

  • « Ds\Map::put
  • Ds\Map::reduce »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Связывает с коллекцией все пары ключ-значение из объекта класса traversable или массива

Ds\Map::putAll

(PECL ds >= 1.0.2)

Ds\Map::putAll — Связывает с коллекцией все пары ключ-значение из объекта класса traversable или массива

Описание

public Ds\Map::putAll ( mixed $pairs ) : void

Связывает с коллекцией все пары ключ-значение pairs из объекта класса traversable или array.

Замечание:

Поддерживаются значения типа object. Если объект реализует интерфейс Ds\Hashable, проверка производится путем вызова метода объекта equals. Если объект не реализует интерфейс Ds\Hashable, объекты должны ссылаться на один и тот же экземпляр класса.

Список параметров

pairs

Объект класса traversable или array.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Map::putAll()

<?php
$map = new \Ds\Map();

$map->putAll([
    "a" => 1,
    "b" => 2,
    "c" => 3,
]);

print_r($map);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


Уменьшает коллекцию до одного значения, используя callback-функцию

  • « Ds\Map::putAll
  • Ds\Map::remove »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Уменьшает коллекцию до одного значения, используя callback-функцию

Ds\Map::reduce

(PECL ds >= 1.0.0)

Ds\Map::reduce — Уменьшает коллекцию до одного значения, используя callback-функцию

Описание

public Ds\Map::reduce ( callable $callback [, mixed $initial ] ) : mixed

Уменьшает коллекцию до одного значения, используя callback-функцию.

Список параметров

callback
callback ( mixed $carry , mixed $key , mixed $value ) : mixed
carry

Значение, возвращенное предыдущим запуском функции или initial, если функция запущена в первый раз.

key

Ключ текущей итерации.

value

Значение текущей итерации.

initial

Начальное значение для параметра carry. Можно указать NULL.

Возвращаемые значения

Значение, возвращенное окончательным запуском callback-функции.

Примеры

Пример #1 Пример использования Ds\Map::reduce() с начальным значением

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

$callback = function($carry, $key, $value) {
    return $carry * $value;
};

var_dump($map->reduce($callback, 5));

// Итерации:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

Результатом выполнения данного примера будет что-то подобное:

int(30)

Пример #2 Пример использования Ds\Map::reduce() без начального значения

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->reduce(function($carry, $key, $value) {
    return $carry + $value + 5;
}));

// Итерации:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

Результатом выполнения данного примера будет что-то подобное:

int(21)


Удаляет и возвращает значение по ключу

  • « Ds\Map::reduce
  • Ds\Map::reverse »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Удаляет и возвращает значение по ключу

Ds\Map::remove

(PECL ds >= 1.0.0)

Ds\Map::remove — Удаляет и возвращает значение по ключу

Описание

public Ds\Map::remove ( mixed $key [, mixed $default ] ) : mixed

Удаляет и возвращает значение по ключу, либо возвращает необязательное значение по умолчанию, если ключ не найден.

Замечание:

Поддерживаются значения типа object. Если объект реализует интерфейс Ds\Hashable, проверка производится путем вызова метода объекта equals. Если объект не реализует интерфейс Ds\Hashable, объекты должны ссылаться на один и тот же экземпляр класса.

Замечание:

Вы можете использовать синтаксис массива для доступа к значениям, т.е. $map["key"].

Предостережение

Будьте осторожны при использовании синтаксиса массива. Скалярные ключи будут приведены к целым движком PHP. К примеру, $map["1"] будет пытаться обратиться к int(1), тогда как $map->get("1") обратится к правильному элементу.

Смотрите раздел Массивы.

Список параметров

key

Ключ для удаления.

default

Необязательный параметр, устанавливающий возвращаемое значение по умолчанию, если ключ не найден.

Возвращаемые значения

Удаленное значение или default, если он указан, а ключ key не найден.

Ошибки

Выбрасывает исключение OutOfRangeException, если ключ не найден и не задано значение по умолчанию.

Примеры

Пример #1 Пример использования Ds\Map::remove()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->remove("a"));      //  1
var_dump($map->remove("e", 10));  // 10 (используется по умолчанию)
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)
int(10)


Переворачивает текущую коллекцию

  • « Ds\Map::remove
  • Ds\Map::reversed »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Переворачивает текущую коллекцию

Ds\Map::reverse

(PECL ds >= 1.0.0)

Ds\Map::reverse — Переворачивает текущую коллекцию

Описание

public Ds\Map::reverse ( void ) : void

Переворачивает текущую коллекцию.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Map::reverse()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$map->reverse();

print_r($map);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

)


Возвращает перевернутую копию коллекции

  • « Ds\Map::reverse
  • Ds\Map::skip »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает перевернутую копию коллекции

Ds\Map::reversed

(PECL ds >= 1.0.0)

Ds\Map::reversed — Возвращает перевернутую копию коллекции

Описание

public Ds\Map::reversed ( void ) : Ds\Map

Возвращает перевернутую копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Перевернутая копия коллекции.

Замечание:

Текущая коллекция не изменится.

Примеры

Пример #1 Пример использования Ds\Map::reversed()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

print_r($map->reversed());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

)


Возвращает пару по индексу позиции

  • « Ds\Map::reversed
  • Ds\Map::slice »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает пару по индексу позиции

Ds\Map::skip

(PECL ds >= 1.0.0)

Ds\Map::skip — Возвращает пару по индексу позиции

Описание

public Ds\Map::skip ( int $position ) : Ds\Pair

Возвращает пару по индексу позиции position, первая пара имеет индекс 0.

Список параметров

position

Индекс позиции.

Возвращаемые значения

Возвращает Ds\Pair из заданой позиции position.

Ошибки

Выбрасывает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Map::skip()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->skip(1));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Pair)#2 (2) {
  ["key"]=>
  string(1) "b"
  ["value"]=>
  int(2)
}


Возвращает подмножество коллекции из заданного диапазона

  • « Ds\Map::skip
  • Ds\Map::sort »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает подмножество коллекции из заданного диапазона

Ds\Map::slice

(PECL ds >= 1.0.0)

Ds\Map::slice — Возвращает подмножество коллекции из заданного диапазона

Описание

public Ds\Map::slice ( int $index [, int $length ] ) : Ds\Map

Возвращает подмножество коллекции из диапазона, заданного начальным индексом index и длиной length.

Список параметров

index

Индекс, задающий начало диапазона.

Если положительный, то будет отсчитываться от начала коллекции. Если отрицательный, то от конца.

length

Положительное значение определяет, сколько элементов будет взято. Если количество элементов коллекции меньше заданного значения, вернется столько элементов, сколько есть. Отрицательное значение установит индекс, отсчитанный от конца коллекции, определяющий конец диапазона. Если длина не задана, то будут возвращены все элементы коллекции от заданного индекса до конца коллекции.

Возвращаемые значения

Подмножество коллекции из заданного диапазона.

Примеры

Пример #1 Пример использования Ds\Map::slice()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5]);

// Подмножество после индекса 2
print_r($map->slice(2)->toArray());

// Подмножество, начиная с индекса 1 с длиной 3
print_r($map->slice(1, 3)->toArray());

// Подмножество после индекса 1
print_r($map->slice(1)->toArray());

// Подмножество после индекса 2 с конца
print_r($map->slice(-2)->toArray());

// Подмножество после индекса 1, отсчитывая с конца
print_r($map->slice(1, -1)->toArray());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [c] => 3
    [d] => 4
    [e] => 5
)
Array
(
    [b] => 2
    [c] => 3
    [d] => 4
)
Array
(
    [b] => 2
    [c] => 3
    [d] => 4
    [e] => 5
)
Array
(
    [d] => 4
    [e] => 5
)
Array
(
    [b] => 2
    [c] => 3
    [d] => 4
)


Сортирует коллекцию по значениям

  • « Ds\Map::slice
  • Ds\Map::sorted »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Сортирует коллекцию по значениям

Ds\Map::sort

(PECL ds >= 1.0.0)

Ds\Map::sort — Сортирует коллекцию по значениям

Описание

public Ds\Map::sort ([ callable $comparator ] ) : void

Сортирует коллекцию по значениям, необязательно используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int
Предостережение

Не целое значение, возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Map::sort()

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);
$map->sort();

print_r($map);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

)

Пример #2 Пример использования Ds\Map::sort() с callback-функцией сравнения

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);

$map->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($map);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

)


Возвращает отсортированную по значению копию коллекции

  • « Ds\Map::sort
  • Ds\Map::sum »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает отсортированную по значению копию коллекции

Ds\Map::sorted

(PECL ds >= 1.0.0)

Ds\Map::sorted — Возвращает отсортированную по значению копию коллекции

Описание

public Ds\Map::sorted ([ callable $comparator ] ) : Ds\Map

Возвращает отсортированную по значению копию коллекции, необязательно используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int
Предостережение

Не целое значение, возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Возвращает отсортированную по значению копию коллекции.

Примеры

Пример #1 Пример использования Ds\Map::sort()

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);

print_r($map->sorted());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

)

Пример #2 Пример использования Ds\Map::sort() с callback-функцией сравнения

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);

// Reverse
$sorted = $map->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

)


Возвращает сумму всех значений коллекции

  • « Ds\Map::sorted
  • Ds\Map::toArray »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает сумму всех значений коллекции

Ds\Map::sum

(Информация о версии неизвестна, возможно, только в Git)

Ds\Map::sum — Возвращает сумму всех значений коллекции

Описание

public Ds\Map::sum ( void ) : number

Возвращает сумму всех значений коллекции.

Замечание:

Массивы и объекты считаются за ноль.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сумма всех значений коллекции типов float или int, в зависимости от значений коллекции.

Примеры

Пример #1 Пример использования Ds\Map::sum() с целочисленными значениями

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

int(6)

Пример #2 Пример использования Ds\Map::sum() со значениями типа float

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2.5, "c" => 3]);
var_dump($map->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

float(6.5)


Преобразует коллекцию в array

  • « Ds\Map::sum
  • Ds\Map::union »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Преобразует коллекцию в array

Ds\Map::toArray

(PECL ds >= 1.0.0)

Ds\Map::toArray — Преобразует коллекцию в array

Описание

public Ds\Map::toArray ( void ) : array

Преобразует коллекцию в array.

Предостережение

Коллекции пар, содержащие нескалярные ключи не могут быть преобразованы в массив (array).

Предостережение

Массив (array) будет считать все числовые ключи за целочисленные, т.е. оба ключа "1" и 1 будут восприняты как 1 и только один из элементов попадет в результирующий массив.

Замечание:

Приведение к типу array пока не поддерживается.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array), содержащий все элементы коллекции с сохранением их порядка.

Примеры

Пример #1 Пример использования Ds\Map::toArray()

<?php
$map = new \Ds\Map([
    "a" => 1,
    "b" => 2,
    "c" => 3,
]);

var_dump($map->toArray());
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}


Создает новую коллекцию пар из элементов двух коллекций

  • « Ds\Map::toArray
  • Ds\Map::values »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Создает новую коллекцию пар из элементов двух коллекций

Ds\Map::union

(PECL ds >= 1.0.0)

Ds\Map::union — Создает новую коллекцию пар из элементов двух коллекций

Описание

public Ds\Map::union ( Ds\Map $map ) : Ds\Map

Создает новую коллекцию пар, содержащую пары текущей и переданной в map коллекций.

A ? B = {x: x ? A ? x ? B}

Замечание:

В случае совпадения ключей, значения элементов будут браться из переданной коллекции.

Список параметров

map

Новая коллекция, для объединения с текущей.

Возвращаемые значения

Новая коллекция пар, являющийся объединением текущей и переданной в map.

Также смотрите

  • » Объединение в Википедия

Примеры

Пример #1 Пример использования Ds\Map::union()

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 3, "c" => 4, "d" => 5]);

print_r($a->union($b));
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 4
        )

    [3] => Ds\Pair Object
        (
            [key] => d
            [value] => 5
        )

)


Возвращает последовательность значений коллекции

  • « Ds\Map::union
  • Ds\Map::xor »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Возвращает последовательность значений коллекции

Ds\Map::values

(PECL ds >= 1.0.0)

Ds\Map::values — Возвращает последовательность значений коллекции

Описание

public Ds\Map::values ( void ) : Ds\Sequence

Возвращает последовательность значений коллекции, сохраняя их порядок.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последовательность (Ds\Sequence), содержащая все значения коллекции.

Примеры

Пример #1 Пример использования Ds\Map::values()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->values());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Map)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Создает новую коллекцию пар из элементов, которые есть в одной из коллекций, но не в обеих одновременно

  • « Ds\Map::values
  • Пара »
  • PHP Manual
  • Коллекция пар ключ-значение
  • Создает новую коллекцию пар из элементов, которые есть в одной из коллекций, но не в обеих одновременно

Ds\Map::xor

(PECL ds >= 1.0.0)

Ds\Map::xor — Создает новую коллекцию пар из элементов, которые есть в одной из коллекций, но не в обеих одновременно

Описание

public Ds\Map::xor ( Ds\Map $map ) : Ds\Map

Создает новую коллекцию пар из элементов, ключи которых есть в текущей коллекции, либо в переданной в map, но не в обеих одновременно.

A ? B = {x : x ? (A \ B) ? (B \ A)}

Список параметров

map

Вторая коллекция пар.

Возвращаемые значения

Новая коллекция пар из элементов, ключи которых есть в текущей коллекции, либо в переданной в map, но не в обеих одновременно.

Также смотрите

  • » Симметрическая разность в Википедия

Примеры

Пример #1 Пример использования Ds\Map::xor()

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 4, "c" => 5, "d" => 6]);

print_r($a->xor($b));
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => d
            [value] => 6
        )

)


Класс Pair

(Информация о версии неизвестна, возможно, только в Git)

Введение

Пары используются классом Ds\Map для хранения пар ключ-значение.

Обзор классов

Ds\Pair implements JsonSerializable {
/* Методы */
public __construct ([ mixed $key [, mixed $value ]] )
public clear ( void ) : void
public copy ( void ) : Ds\Pair
public isEmpty ( void ) : bool
public toArray ( void ) : array
}

Содержание

  • Ds\Pair::clear — Удаляет все значения
  • Ds\Pair::__construct — Создает экземпляр класса
  • Ds\Pair::copy — Возвращает поверхностную копию пары
  • Ds\Pair::isEmpty — Проверяет, является ли пара пустой
  • Ds\Pair::jsonSerialize — Возвращает пару в представлении JSON
  • Ds\Pair::toArray — Преобразует пару в массив (array)


Удаляет все значения

  • « Пара
  • Ds\Pair::__construct »
  • PHP Manual
  • Пара
  • Удаляет все значения

Ds\Pair::clear

(Информация о версии неизвестна, возможно, только в Git)

Ds\Pair::clear — Удаляет все значения

Описание

public Ds\Pair::clear ( void ) : void

Удаляет все значения из пары.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Pair::clear()

<?php
$pair = new \Ds\Pair("a", 1);
print_r($pair);

$pair->clear();
print_r($pair);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Pair Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Pair Object
(
)


Создает экземпляр класса

  • « Ds\Pair::clear
  • Ds\Pair::copy »
  • PHP Manual
  • Пара
  • Создает экземпляр класса

Ds\Pair::__construct

(PECL ds >= 1.0.0)

Ds\Pair::__construct — Создает экземпляр класса

Описание

public Ds\Pair::__construct ([ mixed $key [, mixed $value ]] )

Создание экземпляр класса с заданными ключем key и значением value.

Список параметров

key

Ключ.

value

Значение.


Возвращает поверхностную копию пары

  • « Ds\Pair::__construct
  • Ds\Pair::isEmpty »
  • PHP Manual
  • Пара
  • Возвращает поверхностную копию пары

Ds\Pair::copy

(Информация о версии неизвестна, возможно, только в Git)

Ds\Pair::copy — Возвращает поверхностную копию пары

Описание

public Ds\Pair::copy ( void ) : Ds\Pair

Возвращает поверхностную копию пары.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

.

Примеры

Пример #1 Пример использования Ds\Pair::copy()

<?php
$a = new \Ds\Pair("a", 1);
$b = $a->copy();

$a->key = "x";

print_r($a);
print_r($b);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Pair Object
(
    [key] => x
    [value] => 1
)
Ds\Pair Object
(
    [key] => a
    [value] => 1
)


Проверяет, является ли пара пустой

  • « Ds\Pair::copy
  • Ds\Pair::jsonSerialize »
  • PHP Manual
  • Пара
  • Проверяет, является ли пара пустой

Ds\Pair::isEmpty

(Информация о версии неизвестна, возможно, только в Git)

Ds\Pair::isEmpty — Проверяет, является ли пара пустой

Описание

public Ds\Pair::isEmpty ( void ) : bool

Определяет, является ли пара пустой.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если пара пустая и FALSE в противном случае.

Примеры

Пример #1 Пример использования Ds\Pair::isEmpty()

<?php
$a = new \Ds\Pair("a", 1);
$b = new \Ds\Pair();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Возвращает пару в представлении JSON

  • « Ds\Pair::isEmpty
  • Ds\Pair::toArray »
  • PHP Manual
  • Пара
  • Возвращает пару в представлении JSON

Ds\Pair::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Pair::jsonSerialize — Возвращает пару в представлении JSON

Смотрите функцию JsonSerializable::jsonSerialize()

Замечание:

Вы не должны вызывать этот метод напрямую.


Преобразует пару в массив (array)

  • « Ds\Pair::jsonSerialize
  • Набор »
  • PHP Manual
  • Пара
  • Преобразует пару в массив (array)

Ds\Pair::toArray

(PECL ds >= 1.0.0)

Ds\Pair::toArray — Преобразует пару в массив (array)

Описание

public Ds\Pair::toArray ( void ) : array

Преобразует пару в массив (array).

Замечание:

Приведение к массиву пока не поддерживается.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив, содержащий элементы в том же порядке, как они были в паре.

Примеры

Пример #1 Пример использования Ds\Pair::toArray()

<?php
$pair = new \Ds\Pair("a", 1);

var_dump($pair->toArray());
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["key"]=>
  string(1) "a"
  ["value"]=>
  int(1)
}


Класс Set

(Информация о версии неизвестна, возможно, только в Git)

Введение

Set - это последовательность уникальных значений. Реализация использует ту же хеш-таблицу, что и Ds\Map, в которой значения используются в качестве ключей, а связанные значения игнорируются.

Сильные стороны

  • Значения могут быть любого типа, включая объекты.
  • Поддерживает синтаксис массива (квадратные скобки).
  • Сохраняется порядок вставки.
  • Автоматически высвобождает память, когда количество элементов значительно уменьшается.
  • add(),
remove() и
contains() имеют сложность O(1).

Слабые стороны

  • Не поддерживает
      push(),
      pop(),
      insert(),
      shift() и
      unshift().
  • get() имеет сложность O(n), если есть удаленные значения в буфере, до значения, к которому происходит доступ. Иначе O(1).

Обзор классов

Ds\Set implements Ds\Collection {
/* Константы */
const int MIN_CAPACITY = 16 ;
/* Методы */
public add ([ mixed $...values ] ) : void
public allocate ( int $capacity ) : void
public capacity ( void ) : int
public clear ( void ) : void
public contains ([ mixed $...values ] ) : bool
public copy ( void ) : Ds\Set
public diff ( Ds\Set $set ) : Ds\Set
public filter ([ callable $callback ] ) : Ds\Set
public first ( void ) : mixed
public get ( int $index ) : mixed
public intersect ( Ds\Set $set ) : Ds\Set
public isEmpty ( void ) : bool
public join ([ string $glue ] ) : string
public last ( void ) : void
public merge ( mixed $values ) : Ds\Set
public reduce ( callable $callback [, mixed $initial ] ) : mixed
public remove ([ mixed $...values ] ) : void
public reverse ( void ) : void
public reversed ( void ) : Ds\Set
public slice ( int $index [, int $length ] ) : Ds\Set
public sort ([ callable $comparator ] ) : void
public sorted ([ callable $comparator ] ) : Ds\Set
public sum ( void ) : number
public toArray ( void ) : array
public union ( Ds\Set $set ) : Ds\Set
public xor ( Ds\Set $set ) : Ds\Set
}

Предопределенные константы

Ds\Set::MIN_CAPACITY

Содержание

  • Ds\Set::add — Добавляет значения в набор
  • Ds\Set::allocate — Выделяет память под указанную вместимость
  • Ds\Set::capacity — Возвращает текущую вместимость
  • Ds\Set::clear — Удаляет все значения из коллекции
  • Ds\Set::__construct — Создает новый экземпляр класса
  • Ds\Set::contains — Проверяет, содержится ли в коллекции заданные значения
  • Ds\Set::copy — Возвращает поверхностную копию коллекции
  • Ds\Set::count — Возвращает количество элементов коллекции
  • Ds\Set::diff — Создает новый набор с элементами, которых нет в другом наборе
  • Ds\Set::filter — Создает новый список из элементов, выбранных с помощью заданной callback-функции
  • Ds\Set::first — Возвращает первый элемент коллекции
  • Ds\Set::get — Возвращает значение по индексу
  • Ds\Set::intersect — Создает новый набор, созданный пересечением с другим набором
  • Ds\Set::isEmpty — Проверяет, пуста ли коллекция
  • Ds\Set::join — Склеивает все значения в строку
  • Ds\Set::jsonSerialize — Возвращает коллекцию в JSON-представлении
  • Ds\Set::last — Возвращает последнее значение коллекции
  • Ds\Set::merge — Возвращает результат добавления всех заданных значений в набор
  • Ds\Set::reduce — Уменьшает коллекцию до одного значения, используя callback-функцию
  • Ds\Set::remove — Удаляет все заданные значения из набора
  • Ds\Set::reverse — Переворачивает текущую коллекцию
  • Ds\Set::reversed — Возвращает перевернутую копию коллекции
  • Ds\Set::slice — Возвращает поднабор из заданного диапазона
  • Ds\Set::sort — Сортирует коллекцию
  • Ds\Set::sorted — Возвращает отсортированную по значению копию коллекции
  • Ds\Set::sum — Возвращает сумму всех значений коллекции
  • Ds\Set::toArray — Преобразует коллекцию в массив (array)
  • Ds\Set::union — Создает новый набор из элементов текущего и переданного наборов
  • Ds\Set::xor — Создает новый набор из значений, которые есть в одном из наборов, но не в обоих одновременно


Добавляет значения в набор

  • « Набор
  • Ds\Set::allocate »
  • PHP Manual
  • Набор
  • Добавляет значения в набор

Ds\Set::add

(PECL ds >= 1.0.0)

Ds\Set::add — Добавляет значения в набор

Описание

public Ds\Set::add ([ mixed $...values ] ) : void

Добавляет все заданные значения в набор, если они ранее не были добавлены.

Замечание:

Поддерживаются значения типа object. Если объект реализует интерфейс Ds\Hashable, проверка производится путем вызова метода объекта equals. Если объект не реализует интерфейс Ds\Hashable, объекты должны ссылаться на один и тот же экземпляр класса.

Предостережение

Все сравнения строгие (по типу и значению).

Список параметров

values

Добавляемые значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Set::add() со скалярными значениями

<?php
$set = new \Ds\Set();

$set->add(1);
$set->add(1);
$set->add(2);
$set->add(3);

// Производится строгое сравнение, поэтому "1" не приведется к int(1)
$set->add("1");
$set->add(true);

var_dump($set);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#1 (5) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  string(1) "1"
  [4]=>
  bool(true)
}

Пример #2 Пример использования Ds\Set::add() с объектами

<?php
class HashableObject implements \Ds\Hashable
{
    /**
     * Произвольное значение для использования в качестве значения хеша.
     * Не определяет равенство.
     */
    private $value;

    public function __construct($value)
    {
        $this->value = $value;
    }

    public function hash()
    {
        return $this->value;
    }

    public function equals($obj): bool
    {
        return $this->value === $obj->value;
    }
}

$set = new \Ds\Set();

$obj = new \ArrayIterator([]);

// При добавлении одного и того же экземпляря несколько раз, добавится только первый.
$set->add($obj);
$set->add($obj);

// При добавлении нескольких экземпляров одного и того же объекта, они все добавятся.
$set->add(new \stdClass());
$set->add(new \stdClass());

// При добавлении объектов с одинаковым хешем несколько раз, добавится только первый.
$set->add(new \HashableObject(1));
$set->add(new \HashableObject(1));
$set->add(new \HashableObject(2));
$set->add(new \HashableObject(2));

var_dump($set);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#1 (5) {
  [0]=>
  object(ArrayIterator)#2 (1) {
    ["storage":"ArrayIterator":private]=>
    array(0) {
    }
  }
  [1]=>
  object(stdClass)#3 (0) {
  }
  [2]=>
  object(stdClass)#4 (0) {
  }
  [3]=>
  object(HashableObject)#5 (1) {
    ["value":"HashableObject":private]=>
    int(1)
  }
  [4]=>
  object(HashableObject)#6 (1) {
    ["value":"HashableObject":private]=>
    int(2)
  }
}


Выделяет память под указанную вместимость

  • « Ds\Set::add
  • Ds\Set::capacity »
  • PHP Manual
  • Набор
  • Выделяет память под указанную вместимость

Ds\Set::allocate

(PECL ds >= 1.0.0)

Ds\Set::allocate — Выделяет память под указанную вместимость

Описание

public Ds\Set::allocate ( int $capacity ) : void

Выделяет память под указанную вместимость.

Список параметров

capacity

Вместимость. Предполагаемое количество значений.

Замечание:

Если новое значение вместимости меньше текущего, то оно не изменится.

Замечание:

Значение вместимости округляется вверх до ближайшей степени двойки (т.е 8, 16, 32, 64, 128 и т.д.)

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Set::allocate()

<?php
$set = new \Ds\Set();
var_dump($set->capacity());

$set->allocate(100);
var_dump($set->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(16)
int(128)


Возвращает текущую вместимость

  • « Ds\Set::allocate
  • Ds\Set::clear »
  • PHP Manual
  • Набор
  • Возвращает текущую вместимость

Ds\Set::capacity

(PECL ds >= 1.0.0)

Ds\Set::capacity — Возвращает текущую вместимость

Описание

public Ds\Set::capacity ( void ) : int

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.

Примеры

Пример #1 Пример использования Ds\Set::capacity()

<?php
$set = new \Ds\Set();
var_dump($set->capacity());

$set->push(...range(1, 50));
var_dump($set->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(16)
int(64)


Удаляет все значения из коллекции

  • « Ds\Set::capacity
  • Ds\Set::__construct »
  • PHP Manual
  • Набор
  • Удаляет все значения из коллекции

Ds\Set::clear

(PECL ds >= 1.0.0)

Ds\Set::clear — Удаляет все значения из коллекции

Описание

public Ds\Set::clear ( void ) : void

Удаляет все значения из коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Set::clear()

<?php
$set = new \Ds\Set([1, 2, 3]);
print_r($set);

$set->clear();
print_r($set);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Set Object
(
)


Создает новый экземпляр класса

  • « Ds\Set::clear
  • Ds\Set::contains »
  • PHP Manual
  • Набор
  • Создает новый экземпляр класса

Ds\Set::__construct

(PECL ds >= 1.0.0)

Ds\Set::__construct — Создает новый экземпляр класса

Описание

public Ds\Set::__construct ([ mixed $...values ] )

Создает новый экземпляр класса, используя либо объект, реализующий traversable, либо массив, переданные в качестве параметра values.

Список параметров

values

Объект, реализующий интерфейс traversable или массив.

Примеры

Пример #1 Пример использования Ds\Set::__construct()

<?php
$set = new \Ds\Set();
var_dump($set);

$set = new \Ds\Set([1, 2, 3]);
var_dump($set);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#1 (0) {
}
object(Ds\Set)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Проверяет, содержится ли в коллекции заданные значения

  • « Ds\Set::__construct
  • Ds\Set::copy »
  • PHP Manual
  • Набор
  • Проверяет, содержится ли в коллекции заданные значения

Ds\Set::contains

(PECL ds >= 1.0.0)

Ds\Set::contains — Проверяет, содержится ли в коллекции заданные значения

Описание

public Ds\Set::contains ([ mixed $...values ] ) : bool

Проверяет, содержится ли в коллекции заданные значения.

Замечание:

Поддерживаются значения типа object. Если объект реализует интерфейс Ds\Hashable, проверка производится путем вызова метода объекта equals. Если объект не реализует интерфейс Ds\Hashable, объекты должны ссылаться на один и тот же экземпляр класса.

Предостережение

Все сравнения строгие, по типу и значению.

Список параметров

values

Значения для проверки.

Возвращаемые значения

Возвращает FALSE, если хотя бы одно значение из values не найдено в коллекции и TRUE в противном случае.

Примеры

Пример #1 Пример использования Ds\Set::contains()

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->contains(1));                // true
var_dump($set->contains(1, 2));             // true
var_dump($set->contains(...[1, 2]));        // true

var_dump($set->contains("1"));              // false
var_dump($set->contains(...[1, 2, 3, 4]));  // false

var_dump($set->contains(...[]));            // true
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(true)


Возвращает поверхностную копию коллекции

  • « Ds\Set::contains
  • Ds\Set::count »
  • PHP Manual
  • Набор
  • Возвращает поверхностную копию коллекции

Ds\Set::copy

(PECL ds >= 1.0.0)

Ds\Set::copy — Возвращает поверхностную копию коллекции

Описание

public Ds\Set::copy ( void ) : Ds\Set

Возвращает поверхностную копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Поверхностная копия коллекции.

Примеры

Пример #1 Пример использования Ds\Set::copy()

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = $a->copy();

// Изменение копии не отражается на оригинале
$b->add(4);

print_r($a);
print_r($b);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Возвращает количество элементов коллекции

  • « Ds\Set::copy
  • Ds\Set::diff »
  • PHP Manual
  • Набор
  • Возвращает количество элементов коллекции

Ds\Set::count

(PECL ds >= 1.0.0)

Ds\Set::count — Возвращает количество элементов коллекции

Смотрите описание функции Countable::count()


Создает новый набор с элементами, которых нет в другом наборе

  • « Ds\Set::count
  • Ds\Set::filter »
  • PHP Manual
  • Набор
  • Создает новый набор с элементами, которых нет в другом наборе

Ds\Set::diff

(PECL ds >= 1.0.0)

Ds\Set::diff — Создает новый набор с элементами, которых нет в другом наборе

Описание

public Ds\Set::diff ( Ds\Set $set ) : Ds\Set

Создает новый набор с элементами, которых нет в другом наборе.

A \ B = {x ? A | x ? B}

Список параметров

set

Набор, содержащий элементы, которые надо исключить из нового набора.

Возвращаемые значения

Новый набор, содержащий все элементы, которые есть в текущем наборе и отсутствуют в переданном set.

Смотрите также

  • » Разность множеств на Википедия

Примеры

Пример #1 Пример использованияDs\Set::diff()

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->diff($b));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#3 (2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}


Создает новый список из элементов, выбранных с помощью заданной callback-функции

  • « Ds\Set::diff
  • Ds\Set::first »
  • PHP Manual
  • Набор
  • Создает новый список из элементов, выбранных с помощью заданной callback-функции

Ds\Set::filter

(PECL ds >= 1.0.0)

Ds\Set::filter — Создает новый список из элементов, выбранных с помощью заданной callback-функции

Описание

public Ds\Set::filter ([ callable $callback ] ) : Ds\Set

Создает новый набор из элементов, выбранных с помощью заданной callback-функции.

Список параметров

callback

callback ( mixed $value ) : bool

Опциональный аргумент типа callable, который возвращает TRUE, если значение должно быть включено и FALSE, если нет.

Если callback-функция не задана, то будут включены только элементы, которые приводятся к логическому значению TRUE (смотреть приведение к boolean).

Возвращаемые значения

Новый набор, содержащий значения, для которых функция callback вернула TRUE, либо все элементы, которые при приведении к логическому типу становятся TRUE, если параметр callback не задан.

Примеры

Пример #1 Пример Ds\Set::filter() с использованием callback-функции

<?php
$set = new \Ds\Set([1, 2, 3, 4, 5]);

var_dump($set->filter(function($value) {
    return $value % 2 == 0;
}));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Пример #2 Пример Ds\Set::filter() без callback-функции

<?php
$set = new \Ds\Set([0, 1, 'a', true, false]);

var_dump($set->filter());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Возвращает первый элемент коллекции

  • « Ds\Set::filter
  • Ds\Set::get »
  • PHP Manual
  • Набор
  • Возвращает первый элемент коллекции

Ds\Set::first

(PECL ds >= 1.0.0)

Ds\Set::first — Возвращает первый элемент коллекции

Описание

public Ds\Set::first ( void ) : mixed

Возвращает первый элемент коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Первый элемент коллекции.

Ошибки

Выбрасывает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Set::first()

<?php
$set = new \Ds\Set([1, 2, 3]);
var_dump($set->first());
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)


Возвращает значение по индексу

  • « Ds\Set::first
  • Ds\Set::intersect »
  • PHP Manual
  • Набор
  • Возвращает значение по индексу

Ds\Set::get

(PECL ds >= 1.0.0)

Ds\Set::get — Возвращает значение по индексу

Описание

public Ds\Set::get ( int $index ) : mixed

Возвращает значение по заданному индексу.

Список параметров

index

Индекс. Первый элемент имеет индекс 0.

Возвращаемые значения

Значение по заданному индексу.

Ошибки

Выбрасывает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Set::get()

<?php
$set = new \Ds\Set(["a", "b", "c"]);

var_dump($set->get(0));
var_dump($set->get(1));
var_dump($set->get(2));
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"

Пример #2 Пример использования Ds\Set::get() с синтаксисом массива

<?php
$set = new \Ds\Set(["a", "b", "c"]);

var_dump($set[0]);
var_dump($set[1]);
var_dump($set[2]);
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Создает новый набор, созданный пересечением с другим набором

  • « Ds\Set::get
  • Ds\Set::isEmpty »
  • PHP Manual
  • Набор
  • Создает новый набор, созданный пересечением с другим набором

Ds\Set::intersect

(PECL ds >= 1.0.0)

Ds\Set::intersect — Создает новый набор, созданный пересечением с другим набором

Описание

public Ds\Set::intersect ( Ds\Set $set ) : Ds\Set

Создает новый набор, содержащий значения, которые присутствуют в текущем наборе и наборе, переданном параметром set.

A ? B = {x : x ? A ? x ? B}

Список параметров

set

Новый набор типа Set.

Возвращаемые значения

Пересечение текущего набора и переданного в set.

Также смотрите

  • » Пересечение на Википедия

Примеры

Пример #1 Пример использования Ds\Set::intersect()

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->intersect($b));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#3 (1) {
  [0]=>
  int(3)
}


Проверяет, пуста ли коллекция

  • « Ds\Set::intersect
  • Ds\Set::join »
  • PHP Manual
  • Набор
  • Проверяет, пуста ли коллекция

Ds\Set::isEmpty

(PECL ds >= 1.0.0)

Ds\Set::isEmpty — Проверяет, пуста ли коллекция

Описание

public Ds\Set::isEmpty ( void ) : bool

Проверяет, пуста ли коллекция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если коллекция пуста, FALSE в противном случае.

Примеры

Пример #1 Пример использования Ds\Set::isEmpty()

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Склеивает все значения в строку

  • « Ds\Set::isEmpty
  • Ds\Set::jsonSerialize »
  • PHP Manual
  • Набор
  • Склеивает все значения в строку

Ds\Set::join

(PECL ds >= 1.0.0)

Ds\Set::join — Склеивает все значения в строку

Описание

public Ds\Set::join ([ string $glue ] ) : string

Склеивает все значения в строку, опционально используя заданный разделитель.

Список параметров

glue

Необязательный параметр, задающий разделитель между значениями.

Возвращаемые значения

Все значения коллекции, склееные в одну строку.

Примеры

Пример #1 Пример использования Ds\Set::join() с разделителем

<?php
$set = new \Ds\Set(["a", "b", "c", 1, 2, 3]);

var_dump($set->join("|"));
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "a|b|c|1|2|3"

Пример #2 Пример использования Ds\Set::join() без разделителя

<?php
$set = new \Ds\Set(["a", "b", "c", 1, 2, 3]);

var_dump($set->join());
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "abc123"


Возвращает коллекцию в JSON-представлении

  • « Ds\Set::join
  • Ds\Set::last »
  • PHP Manual
  • Набор
  • Возвращает коллекцию в JSON-представлении

Ds\Set::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Set::jsonSerialize — Возвращает коллекцию в JSON-представлении

Смотрите JsonSerializable::jsonSerialize()

Замечание:

Никогда не используйте эту функцию напрямую.


Возвращает последнее значение коллекции

  • « Ds\Set::jsonSerialize
  • Ds\Set::merge »
  • PHP Manual
  • Набор
  • Возвращает последнее значение коллекции

Ds\Set::last

(PECL ds >= 1.0.0)

Ds\Set::last — Возвращает последнее значение коллекции

Описание

public Ds\Set::last ( void ) : void

Возвращает последнее значение коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последний элемент коллекции.

Ошибки

Выбрасывает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Set::last()

<?php
$set = new \Ds\Set([1, 2, 3]);
var_dump($set->last());
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)


Возвращает результат добавления всех заданных значений в набор

  • « Ds\Set::last
  • Ds\Set::reduce »
  • PHP Manual
  • Набор
  • Возвращает результат добавления всех заданных значений в набор

Ds\Set::merge

(PECL ds >= 1.0.3)

Ds\Set::merge — Возвращает результат добавления всех заданных значений в набор

Описание

public Ds\Set::merge ( mixed $values ) : Ds\Set

Возвращает результат добавления всех заданных значений в набор.

Список параметров

values

Объект класса traversable или массив (array).

Возвращаемые значения

Результат добавления всех переданных значений в набор. Фактически делается копия набора, в которую добавляются значения.

Замечание:

Текущий экземпляр набора останется нетронутым.

Примеры

Пример #1 Пример использования Ds\Set::merge()

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->merge([3, 4, 5]));
var_dump($set);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
}
object(Ds\Set)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Уменьшает коллекцию до одного значения, используя callback-функцию

  • « Ds\Set::merge
  • Ds\Set::remove »
  • PHP Manual
  • Набор
  • Уменьшает коллекцию до одного значения, используя callback-функцию

Ds\Set::reduce

(PECL ds >= 1.0.0)

Ds\Set::reduce — Уменьшает коллекцию до одного значения, используя callback-функцию

Описание

public Ds\Set::reduce ( callable $callback [, mixed $initial ] ) : mixed

Уменьшает коллекцию до одного значения, используя callback-функцию.

Список параметров

callback
callback ( mixed $carry , mixed $value ) : mixed
carry

Значение, возвращенное предыдущим запуском функции или initial, если функция запущена первый раз.

value

Значение текущей итерации.

initial

Начальное значение параметра carry. Можно указать NULL.

Возвращаемые значения

Значение, возвращенное окончательным запуском callback-функции.

Примеры

Пример #1 Пример использования Ds\Set::reduce() с начальным значением

<?php
$set = new \Ds\Set([1, 2, 3]);

$callback = function($carry, $value) {
    return $carry * $value;
};

var_dump($set->reduce($callback, 5));

// Итерации:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

Результатом выполнения данного примера будет что-то подобное:

int(30)

Пример #2 Пример использования Ds\Set::reduce() без начального значения

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->reduce(function($carry, $value) {
    return $carry + $value + 5;
}));

// Итерации:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

Результатом выполнения данного примера будет что-то подобное:

int(21)


Удаляет все заданные значения из набора

  • « Ds\Set::reduce
  • Ds\Set::reverse »
  • PHP Manual
  • Набор
  • Удаляет все заданные значения из набора

Ds\Set::remove

(PECL ds >= 1.0.0)

Ds\Set::remove — Удаляет все заданные значения из набора

Описание

public Ds\Set::remove ([ mixed $...values ] ) : void

Удаляет все заданные значения values из набора. Значения, которые отсутствуют в наборе, будут проигнорированы.

Список параметров

values

Значения для удаления.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Set::remove()

<?php
$set = new \Ds\Set([1, 2, 3, 4, 5]);

$set->remove(1);            // Удалить 1
$set->remove(1, 2);         // Невозможно найти 1, но удалить 2
$set->remove(...[3, 4]);    // Удалить 3 и 4

var_dump($set);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#1 (1) {
  [0]=>
  int(5)
}


Переворачивает текущую коллекцию

  • « Ds\Set::remove
  • Ds\Set::reversed »
  • PHP Manual
  • Набор
  • Переворачивает текущую коллекцию

Ds\Set::reverse

(PECL ds >= 1.0.0)

Ds\Set::reverse — Переворачивает текущую коллекцию

Описание

public Ds\Set::reverse ( void ) : void

Переворачивает текущую коллекцию.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Set::reverse()

<?php
$set = new \Ds\Set(["a", "b", "c"]);
$set->reverse();

print_r($set);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Set Object
(
    [0] => c
    [1] => b
    [2] => a
)


Возвращает перевернутую копию коллекции

  • « Ds\Set::reverse
  • Ds\Set::slice »
  • PHP Manual
  • Набор
  • Возвращает перевернутую копию коллекции

Ds\Set::reversed

(PECL ds >= 1.0.0)

Ds\Set::reversed — Возвращает перевернутую копию коллекции

Описание

public Ds\Set::reversed ( void ) : Ds\Set

Возвращает перевернутую копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Перевернутая копия коллекции.

Замечание:

Текущая коллекция не изменится.

Примеры

Пример #1 Пример использования Ds\Set::reversed()

<?php
$set = new \Ds\Set(["a", "b", "c"]);

print_r($set->reversed());
print_r($set);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Set Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Set Object
(
    [0] => a
    [1] => b
    [2] => c
)


Возвращает поднабор из заданного диапазона

  • « Ds\Set::reversed
  • Ds\Set::sort »
  • PHP Manual
  • Набор
  • Возвращает поднабор из заданного диапазона

Ds\Set::slice

(PECL ds >= 1.0.0)

Ds\Set::slice — Возвращает поднабор из заданного диапазона

Описание

public Ds\Set::slice ( int $index [, int $length ] ) : Ds\Set

Возвращает поднабор из диапазона, заданного начальным индексом index и длиной length.

Список параметров

index

Индекс, задающий начало диапазона.

Если положительный, то будет отсчитываться от начала коллекции. Если отрицательный, то от конца.

length

Положительное значение определяет, сколько элементов бцдет взято. Если количество элементов коллекции меньше заданного значения, вернется столько элементов, сколько есть. Отрицательное значение задаст индекс, отсчитанный от конца коллекции, определяющий конец диапазона. Если длина не задана, то будут возвращены все элементы коллекции от заданного индекса до конца коллекции.

Возвращаемые значения

Под-коллекция из заданного диапазона.

Примеры

Пример #1 Пример использования Ds\Set::slice()

<?php
$set = new \Ds\Set(["a", "b", "c", "d", "e"]);

// Поднабор с индекса 2
print_r($set->slice(2));

// Поднабор с индекса 1 с длиной 3
print_r($set->slice(1, 3));

// Поднабор с индекса 1
print_r($set->slice(1));

// Поднабор с индекса 2 с конца
print_r($set->slice(-2));

// Поднабор от индекса 1 с начала до индекса 1 с конца
print_r($set->slice(1, -1));
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Set Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Set Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Set Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Set Object
(
    [0] => d
    [1] => e
)
Ds\Set Object
(
    [0] => b
    [1] => c
    [2] => d
)


Сортирует коллекцию

  • « Ds\Set::slice
  • Ds\Set::sorted »
  • PHP Manual
  • Набор
  • Сортирует коллекцию

Ds\Set::sort

(PECL ds >= 1.0.0)

Ds\Set::sort — Сортирует коллекцию

Описание

public Ds\Set::sort ([ callable $comparator ] ) : void

Сортирует коллекцию, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int
Предостережение

Не целое значение, возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Set::sort()

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);
$set->sort();

print_r($set);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Пример #2 Пример использования Ds\Set::sort() с callback-функцией сравнения

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);

$set->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($set);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Set Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Возвращает отсортированную по значению копию коллекции

  • « Ds\Set::sort
  • Ds\Set::sum »
  • PHP Manual
  • Набор
  • Возвращает отсортированную по значению копию коллекции

Ds\Set::sorted

(PECL ds >= 1.0.0)

Ds\Set::sorted — Возвращает отсортированную по значению копию коллекции

Описание

public Ds\Set::sorted ([ callable $comparator ] ) : Ds\Set

Возвращает отсортированную копию коллекции, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int
Предостережение

Не целое значение, возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Возвращает отсортированную по значению копию коллекции.

Примеры

Пример #1 Пример использования Ds\Set::sorted()

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);

print_r($set->sorted());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Пример #2 Пример использования Ds\Set::sorted() с callback-функцией сравнения

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);

$sorted = $set->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Set Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Возвращает сумму всех значений коллекции

  • « Ds\Set::sorted
  • Ds\Set::toArray »
  • PHP Manual
  • Набор
  • Возвращает сумму всех значений коллекции

Ds\Set::sum

(PECL ds >= 1.0.0)

Ds\Set::sum — Возвращает сумму всех значений коллекции

Описание

public Ds\Set::sum ( void ) : number

Возвращает сумму всех значений коллекции.

Замечание:

Массивы и объекты считаются за ноль.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сумма всех значений коллекции типов float или int, в зависимости от значений коллекции.

Примеры

Пример #1 Пример использования Ds\Set::sum() с целочисленными значениями

<?php
$set = new \Ds\Set([1, 2, 3]);
var_dump($set->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

int(6)

Пример #2 Пример использования Ds\Set::sum() со значениями типа float

<?php
$set = new \Ds\Set([1, 2.5, 3]);
var_dump($set->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

float(6.5)


Преобразует коллекцию в массив (array)

  • « Ds\Set::sum
  • Ds\Set::union »
  • PHP Manual
  • Набор
  • Преобразует коллекцию в массив (array)

Ds\Set::toArray

(PECL ds >= 1.0.0)

Ds\Set::toArray — Преобразует коллекцию в массив (array)

Описание

public Ds\Set::toArray ( void ) : array

Преобразует коллекцию в массив (array).

Замечание:

Приведение к типу array пока не поддерживается.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array), содержащий все элементы коллекции с сохранением их порядка.

Примеры

Пример #1 Пример использования Ds\Set::toArray()

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->toArray());
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Создает новый набор из элементов текущего и переданного наборов

  • « Ds\Set::toArray
  • Ds\Set::xor »
  • PHP Manual
  • Набор
  • Создает новый набор из элементов текущего и переданного наборов

Ds\Set::union

(PECL ds >= 1.0.0)

Ds\Set::union — Создает новый набор из элементов текущего и переданного наборов

Описание

public Ds\Set::union ( Ds\Set $set ) : Ds\Set

Создает новый набор из элементов текущего и переданного в set наборов.

A ? B = {x: x ? A ? x ? B}

Список параметров

set

Новый набор для объединения с текущим.

Возвращаемые значения

Новый набор, являющийся объединением текущего и переданного в set.

Также смотрите

  • » Объединение в Википедия

Примеры

Пример #1 Пример использования Ds\Set::union()

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->union($b));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#3 (5) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
}


Создает новый набор из значений, которые есть в одном из наборов, но не в обоих одновременно

  • « Ds\Set::union
  • Стек »
  • PHP Manual
  • Набор
  • Создает новый набор из значений, которые есть в одном из наборов, но не в обоих одновременно

Ds\Set::xor

(PECL ds >= 1.0.0)

Ds\Set::xor — Создает новый набор из значений, которые есть в одном из наборов, но не в обоих одновременно

Описание

public Ds\Set::xor ( Ds\Set $set ) : Ds\Set

Создает новый набор из значений, которые есть в текущем наборе, либо в наборе заданном в set, но не в обоих одновременно.

A ? B = {x : x ? (A \ B) ? (B \ A)}

Список параметров

set

Второй набор.

Возвращаемые значения

Новый набор из значений, которые есть в текущем наборе, либо в наборе заданном в set, но не в обоих одновременно.

Также смотрите

  • » Симметрическая разность в Википедия

Примеры

Пример #1 Пример использования Ds\Set::xor()

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->xor($b));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#3 (4) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(4)
  [3]=>
  int(5)
}


Класс Stack

(Информация о версии неизвестна, возможно, только в Git)

Введение

Стек - это коллекция типа "Последний вошел, первый вышел" (Last In, First Out или LIFO), которая позволяет работать только с самым верхним (последним) значением. Итерация происходит от конца к началу с удалением взятого элемента.

Внутри себя использует класс Ds\Vector.

Обзор классов

Ds\Stack implements Ds\Collection {
/* Методы */
public allocate ( int $capacity ) : void
public capacity ( void ) : int
public clear ( void ) : void
public copy ( void ) : Ds\Stack
public isEmpty ( void ) : bool
public peek ( void ) : mixed
public pop ( void ) : mixed
public push ([ mixed $...values ] ) : void
public toArray ( void ) : array
}

Содержание

  • Ds\Stack::allocate — Выделяет память под указанную вместимость
  • Ds\Stack::capacity — Возвращает текущую вместимость
  • Ds\Stack::clear — Удаляет все значения из коллекции
  • Ds\Stack::__construct — Создает новый экземпляр класса
  • Ds\Stack::copy — Возвращает поверхностную копию коллекции
  • Ds\Stack::count — Возвращает количество элементов коллекции
  • Ds\Stack::isEmpty — Проверяет, пуста ли коллекция
  • Ds\Stack::jsonSerialize — Возвращает коллекцию в JSON-представлении
  • Ds\Stack::peek — Возвращает значение с вершины стека
  • Ds\Stack::pop — Удаляет и возвращает значение с вершины стека
  • Ds\Stack::push — Добавляет значения в стек
  • Ds\Stack::toArray — Преобразует коллекцию в массив (array)


Выделяет память под указанную вместимость

  • « Стек
  • Ds\Stack::capacity »
  • PHP Manual
  • Стек
  • Выделяет память под указанную вместимость

Ds\Stack::allocate

(PECL ds >= 1.0.0)

Ds\Stack::allocate — Выделяет память под указанную вместимость

Описание

public Ds\Stack::allocate ( int $capacity ) : void

Гарантирует, что выделено достаточно памяти под заданную вместимость (количество значений). Позволяет избежать динамического перераспределения памяти при добавлении значений.

Список параметров

capacity

Вместимость. Предполагаемое количество значений.

Замечание:

Если новое значение вместимости меньше текущего, то оно не изменится.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает текущую вместимость

  • « Ds\Stack::allocate
  • Ds\Stack::clear »
  • PHP Manual
  • Стек
  • Возвращает текущую вместимость

Ds\Stack::capacity

(PECL ds >= 1.0.0)

Ds\Stack::capacity — Возвращает текущую вместимость

Описание

public Ds\Stack::capacity ( void ) : int

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.


Удаляет все значения из коллекции

  • « Ds\Stack::capacity
  • Ds\Stack::__construct »
  • PHP Manual
  • Стек
  • Удаляет все значения из коллекции

Ds\Stack::clear

(PECL ds >= 1.0.0)

Ds\Stack::clear — Удаляет все значения из коллекции

Описание

public Ds\Stack::clear ( void ) : void

Удаляет все значения из коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Stack::clear()

<?php
$stack = new \Ds\Stack([1, 2, 3]);
print_r($stack);

$stack->clear();
print_r($stack);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Stack Object
(
    [0] => 3
    [1] => 2
    [2] => 1
)
Ds\Stack Object
(
)


Создает новый экземпляр класса

  • « Ds\Stack::clear
  • Ds\Stack::copy »
  • PHP Manual
  • Стек
  • Создает новый экземпляр класса

Ds\Stack::__construct

(PECL ds >= 1.0.0)

Ds\Stack::__construct — Создает новый экземпляр класса

Описание

public Ds\Stack::__construct ([ mixed $values ] )

Создает новый экземпляр класса, используя либо объект реализующий traversable, либо массив, переданные в качестве параметра values.

Список параметров

values

Объект, реализующий интерфейс traversable или массив.

Примеры

Пример #1 Пример использования Ds\Stack::__construct()

<?php
$stack = new \Ds\Stack();
print_r($stack);

$stack = new \Ds\Stack([1, 2, 3]);
print_r($stack);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Stack Object
(
)
Ds\Stack Object
(
    [0] => 3
    [1] => 2
    [2] => 1
)


Возвращает поверхностную копию коллекции

  • « Ds\Stack::__construct
  • Ds\Stack::count »
  • PHP Manual
  • Стек
  • Возвращает поверхностную копию коллекции

Ds\Stack::copy

(PECL ds >= 1.0.0)

Ds\Stack::copy — Возвращает поверхностную копию коллекции

Описание

public Ds\Stack::copy ( void ) : Ds\Stack

Возвращает поверхностную копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Поверхностная копия коллекции.

Примеры

Пример #1 Пример использования Ds\Stack::copy()

<?php
$a = new \Ds\Stack([1, 2, 3]);
$b = $a->copy();

// Изменение копии не отражается на оригинале
$b->push(4);

print_r($a);
print_r($b);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Stack Object
(
    [0] => 3
    [1] => 2
    [2] => 1
)
Ds\Stack Object
(
    [0] => 4
    [1] => 3
    [2] => 2
    [3] => 1
)


Возвращает количество элементов коллекции

  • « Ds\Stack::copy
  • Ds\Stack::isEmpty »
  • PHP Manual
  • Стек
  • Возвращает количество элементов коллекции

Ds\Stack::count

(PECL ds >= 1.0.0)

Ds\Stack::count — Возвращает количество элементов коллекции

Смотрите описание функции Countable::count()


Проверяет, пуста ли коллекция

  • « Ds\Stack::count
  • Ds\Stack::jsonSerialize »
  • PHP Manual
  • Стек
  • Проверяет, пуста ли коллекция

Ds\Stack::isEmpty

(PECL ds >= 1.0.0)

Ds\Stack::isEmpty — Проверяет, пуста ли коллекция

Описание

public Ds\Stack::isEmpty ( void ) : bool

Проверяет, пуста ли коллекция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если коллекция пуста, и FALSE в противном случае.

Примеры

Пример #1 Пример использования Ds\Stack::isEmpty()

<?php
$a = new \Ds\Stack([1, 2, 3]);
$b = new \Ds\Stack();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Возвращает коллекцию в JSON-представлении

  • « Ds\Stack::isEmpty
  • Ds\Stack::peek »
  • PHP Manual
  • Стек
  • Возвращает коллекцию в JSON-представлении

Ds\Stack::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Stack::jsonSerialize — Возвращает коллекцию в JSON-представлении

Смотри JsonSerializable::jsonSerialize()

Замечание:

Никогда не используйте эту функцию напрямую.


Возвращает значение с вершины стека

  • « Ds\Stack::jsonSerialize
  • Ds\Stack::pop »
  • PHP Manual
  • Стек
  • Возвращает значение с вершины стека

Ds\Stack::peek

(PECL ds >= 1.0.0)

Ds\Stack::peek — Возвращает значение с вершины стека

Описание

public Ds\Stack::peek ( void ) : mixed

Возвращает значение с вершины стека, но не удаляет его.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение с вершины стека.

Ошибки

Выбрасывает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Stack::peek()

<?php
$stack = new \Ds\Stack();

$stack->push("a");
$stack->push("b");
$stack->push("c");

var_dump($stack->peek());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "c"


Удаляет и возвращает значение с вершины стека

  • « Ds\Stack::peek
  • Ds\Stack::push »
  • PHP Manual
  • Стек
  • Удаляет и возвращает значение с вершины стека

Ds\Stack::pop

(PECL ds >= 1.0.0)

Ds\Stack::pop — Удаляет и возвращает значение с вершины стека

Описание

public Ds\Stack::pop ( void ) : mixed

Удаляет и возвращает значение с вершины стека.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Удаленное с вершины стека значение.

Ошибки

Выбрасывает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Stack::pop()

<?php
$stack = new \Ds\Stack();

$stack->push("a");
$stack->push("b");
$stack->push("c");

var_dump($stack->pop());
var_dump($stack->pop());
var_dump($stack->pop());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "c"
string(1) "b"
string(1) "a"


Добавляет значения в стек

  • « Ds\Stack::pop
  • Ds\Stack::toArray »
  • PHP Manual
  • Стек
  • Добавляет значения в стек

Ds\Stack::push

(PECL ds >= 1.0.0)

Ds\Stack::push — Добавляет значения в стек

Описание

public Ds\Stack::push ([ mixed $...values ] ) : void

Добавляет значения values в стек

Список параметров

values

Добавляемые значения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Stack::push()

<?php
$stack = new \Ds\Stack();

$stack->push("a");
$stack->push("b");
$stack->push("c", "d");
$stack->push(...["e", "f"]);

print_r($stack);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Stack Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Преобразует коллекцию в массив (array)

  • « Ds\Stack::push
  • Очередь »
  • PHP Manual
  • Стек
  • Преобразует коллекцию в массив (array)

Ds\Stack::toArray

(PECL ds >= 1.0.0)

Ds\Stack::toArray — Преобразует коллекцию в массив (array)

Описание

public Ds\Stack::toArray ( void ) : array

Преобразует коллекцию в array.

Замечание:

Приведение к типу array пока не поддерживается.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array), содержащий все элементы коллекции с сохранением их порядка.

Примеры

Пример #1 Пример использования Ds\Stack::toArray()

<?php
$stack = new \Ds\Stack([1, 2, 3]);

var_dump($stack->toArray());
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  [0]=>
  int(3)
  [1]=>
  int(2)
  [2]=>
  int(1)
}


Класс Queue

(Информация о версии неизвестна, возможно, только в Git)

Введение

Очередь - это коллекция типа "Первый вошел, первый вышел" (First In, First Out или FIFO), которая позволяет работать только с самым первым значением. Итерация происходит от начала к концу с удалением взятого элемента.

Обзор классов

Ds\Queue implements Ds\Collection {
/* Константы */
const int MIN_CAPACITY = 8 ;
/* Методы */
public allocate ( int $capacity ) : void
public capacity ( void ) : int
public clear ( void ) : void
public copy ( void ) : Ds\Queue
public isEmpty ( void ) : bool
public peek ( void ) : mixed
public pop ( void ) : mixed
public push ([ mixed $...values ] ) : void
public toArray ( void ) : array
}

Предопределенные константы

Ds\Queue::MIN_CAPACITY

Содержание

  • Ds\Queue::allocate — Выделяет память под указанную вместимость
  • Ds\Queue::capacity — Возвращает текущую вместимость
  • Ds\Queue::clear — Удаляет все значения
  • Ds\Queue::__construct — Создает новый экземпляр
  • Ds\Queue::copy — Возвращает поверхностную копию очереди
  • Ds\Queue::count — Возвращает количество элементов очереди
  • Ds\Queue::isEmpty — Проверяет, пуста ли коллекция
  • Ds\Queue::jsonSerialize — Возвращает коллекцию в JSON-представлении
  • Ds\Queue::peek — Возвращает значение из начала очереди
  • Ds\Queue::pop — Удаляет и возвращает значение из начала очереди
  • Ds\Queue::push — Добавляет значения в очередь
  • Ds\Queue::toArray — Преобразует коллекцию в массив (array)


Выделяет память под указанную вместимость

  • « Очередь
  • Ds\Queue::capacity »
  • PHP Manual
  • Очередь
  • Выделяет память под указанную вместимость

Ds\Queue::allocate

(PECL ds >= 1.0.0)

Ds\Queue::allocate — Выделяет память под указанную вместимость

Описание

public Ds\Queue::allocate ( int $capacity ) : void

Гарантирует, что выделено достаточно памяти под заданную вместимость (количество значений). Позволяет избежать динамического перераспределения памяти при добавлении значений.

Замечание:

Значение вместимости округляется до ближайшей степени двойки (т.е. 8, 16, 32, 64, 128 и т.д.)

Список параметров

capacity

Вместимость. Предполагаемое количество значений.

Замечание:

Если новое значение вместимости меньше текущего, то она не изменится.

Замечание:

Значение вместимости округляется до ближайшей степени двойки (т.е. 8, 16, 32, 64, 128 и т.д.)

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Queue::allocate()

<?php
$queue = new \Ds\Queue();
var_dump($queue->capacity());

$queue->allocate(100);
var_dump($queue->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(8)
int(128)


Возвращает текущую вместимость

  • « Ds\Queue::allocate
  • Ds\Queue::clear »
  • PHP Manual
  • Очередь
  • Возвращает текущую вместимость

Ds\Queue::capacity

(PECL ds >= 1.0.0)

Ds\Queue::capacity — Возвращает текущую вместимость

Описание

public Ds\Queue::capacity ( void ) : int

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.

Примеры

Пример #1 Пример использования Ds\Queue::capacity()

<?php
$queue = new \Ds\Queue();
var_dump($queue->capacity());

$queue->push(...range(1, 50));
var_dump($queue->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(8)
int(64)


Удаляет все значения

  • « Ds\Queue::capacity
  • Ds\Queue::__construct »
  • PHP Manual
  • Очередь
  • Удаляет все значения

Ds\Queue::clear

(PECL ds >= 1.0.0)

Ds\Queue::clear — Удаляет все значения

Описание

public Ds\Queue::clear ( void ) : void

Удаляет все значения из очереди.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Queue::clear()

<?php
$queue = new \Ds\Queue([1, 2, 3]);
print_r($queue);

$queue->clear();
print_r($queue);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Queue Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Queue Object
(
)


Создает новый экземпляр

  • « Ds\Queue::clear
  • Ds\Queue::copy »
  • PHP Manual
  • Очередь
  • Создает новый экземпляр

Ds\Queue::__construct

(PECL ds >= 1.0.0)

Ds\Queue::__construct — Создает новый экземпляр

Описание

public Ds\Queue::__construct ([ mixed $values ] )

Создает новый экземпляр, используя либо объект, реализующий traversable, либо массив, переданные в качестве параметра values.

Список параметров

values

Объект, реализующий интерфейс traversable или массив.

Примеры

Пример #1 Пример использования Ds\Queue::__construct()

<?php
$queue = new \Ds\Queue();
var_dump($queue);

$queue = new \Ds\Queue([1, 2, 3]);
var_dump($queue);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Queue)#2 (0) {
}
object(Ds\Queue)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Возвращает поверхностную копию очереди

  • « Ds\Queue::__construct
  • Ds\Queue::count »
  • PHP Manual
  • Очередь
  • Возвращает поверхностную копию очереди

Ds\Queue::copy

(PECL ds >= 1.0.0)

Ds\Queue::copy — Возвращает поверхностную копию очереди

Описание

public Ds\Queue::copy ( void ) : Ds\Queue

Возвращает поверхностную копию очереди.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Поверхностная копия очереди.

Примеры

Пример #1 Пример использования Ds\Queue::copy()

<?php
$a = new \Ds\Queue([1, 2, 3]);
$b = $a->copy();

// Изменение копии не отражается на оригинале
$b->push(4);

print_r($a);
print_r($b);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Queue Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Queue Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Возвращает количество элементов очереди

  • « Ds\Queue::copy
  • Ds\Queue::isEmpty »
  • PHP Manual
  • Очередь
  • Возвращает количество элементов очереди

Ds\Queue::count

(PECL ds >= 1.0.0)

Ds\Queue::count — Возвращает количество элементов очереди

См. Countable::count()


Проверяет, пуста ли коллекция

  • « Ds\Queue::count
  • Ds\Queue::jsonSerialize »
  • PHP Manual
  • Очередь
  • Проверяет, пуста ли коллекция

Ds\Queue::isEmpty

(PECL ds >= 1.0.0)

Ds\Queue::isEmpty — Проверяет, пуста ли коллекция

Описание

public Ds\Queue::isEmpty ( void ) : bool

Проверяет, пуста ли коллекция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если коллекция пуста, FALSE в противном случае.

Примеры

Пример #1 Пример использования Ds\Queue::isEmpty()

<?php
$a = new \Ds\Queue([1, 2, 3]);
$b = new \Ds\Queue();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Возвращает коллекцию в JSON-представлении

  • « Ds\Queue::isEmpty
  • Ds\Queue::peek »
  • PHP Manual
  • Очередь
  • Возвращает коллекцию в JSON-представлении

Ds\Queue::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Queue::jsonSerialize — Возвращает коллекцию в JSON-представлении

См. JsonSerializable::jsonSerialize()

Замечание:

Никогда не используйте эту функцию напрямую.


Возвращает значение из начала очереди

  • « Ds\Queue::jsonSerialize
  • Ds\Queue::pop »
  • PHP Manual
  • Очередь
  • Возвращает значение из начала очереди

Ds\Queue::peek

(PECL ds >= 1.0.0)

Ds\Queue::peek — Возвращает значение из начала очереди

Описание

public Ds\Queue::peek ( void ) : mixed

Возвращает значение из начала очереди, но не удаляет его.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение из начала очереди.

Ошибки

Выбрасывает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Queue::peek()

<?php
$queue = new \Ds\Queue();

$queue->push("a");
$queue->push("b");
$queue->push("c");

var_dump($queue->peek());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"


Удаляет и возвращает значение из начала очереди

  • « Ds\Queue::peek
  • Ds\Queue::push »
  • PHP Manual
  • Очередь
  • Удаляет и возвращает значение из начала очереди

Ds\Queue::pop

(PECL ds >= 1.0.0)

Ds\Queue::pop — Удаляет и возвращает значение из начала очереди

Описание

public Ds\Queue::pop ( void ) : mixed

Удаляет и возвращает значение из начала очереди.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Удаленное значение из начала очереди.

Ошибки

Выбрасывает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Queue::pop()

<?php
$queue = new \Ds\Queue();

$queue->push("a");
$queue->push("b");
$queue->push("c");

var_dump($queue->pop());
var_dump($queue->pop());
var_dump($queue->pop());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Добавляет значения в очередь

  • « Ds\Queue::pop
  • Ds\Queue::toArray »
  • PHP Manual
  • Очередь
  • Добавляет значения в очередь

Ds\Queue::push

(PECL ds >= 1.0.0)

Ds\Queue::push — Добавляет значения в очередь

Описание

public Ds\Queue::push ([ mixed $...values ] ) : void

Добавляет значения values в очередь.

Список параметров

values

Добавляемые значения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Queue::push()

<?php
$queue = new \Ds\Queue();

$queue->push("a");
$queue->push("b");
$queue->push("c", "d");
$queue->push(...["e", "f"]);

print_r($queue);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Queue Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Преобразует коллекцию в массив (array)

  • « Ds\Queue::push
  • Очередь с приоритетом »
  • PHP Manual
  • Очередь
  • Преобразует коллекцию в массив (array)

Ds\Queue::toArray

(PECL ds >= 1.0.0)

Ds\Queue::toArray — Преобразует коллекцию в массив (array)

Описание

public Ds\Queue::toArray ( void ) : array

Преобразует коллекцию в массив (array).

Замечание:

Приведение к типу array пока не поддерживается.

Замечание:

Этот метод не является разрушительным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array), содержащий все элементы коллекции с сохранением их порядка.

Примеры

Пример #1 Пример использования Ds\Queue::toArray()

<?php
$queue = new \Ds\Queue([1, 2, 3]);

var_dump($queue->toArray());
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Класс PriorityQueue

(Информация о версии неизвестна, возможно, только в Git)

Введение

Очередь с приоритетом очень похожа на обычную очередь. Значения добавляются в очередь с заданным приоритетом, и значения с более высоким приоритетом всегда будут находиться ближе к началу.

Реализована с использованием максимальной кучи.

Замечание:

Порядок FIFO сохраняется у значений с одинаковым приоритетом.

Замечание:

Итерация через очередь происходит с удалением взятого элемента. Эквивалентно использованию оператора pop, пока очередь не станет пустой.

Обзор классов

Ds\PriorityQueue implements Ds\Collection {
/* Константы */
const int MIN_CAPACITY = 8 ;
/* Методы */
public allocate ( int $capacity ) : void
public capacity ( void ) : int
public clear ( void ) : void
public copy ( void ) : Ds\PriorityQueue
public isEmpty ( void ) : bool
public peek ( void ) : mixed
public pop ( void ) : mixed
public push ( mixed $value , int $priority ) : void
public toArray ( void ) : array
}

Предопределенные константы

Ds\PriorityQueue::MIN_CAPACITY

Содержание

  • Ds\PriorityQueue::allocate — Выделяет память под указанную вместимость
  • Ds\PriorityQueue::capacity — Возвращает текущую вместимость
  • Ds\PriorityQueue::clear — Удаляет все значения
  • Ds\PriorityQueue::__construct — Создает новый экземпляр
  • Ds\PriorityQueue::copy — Возвращает поверхностную копию очереди
  • Ds\PriorityQueue::count — Возвращает количество элементов в очереди
  • Ds\PriorityQueue::isEmpty — Проверяет, пуста ли коллекция
  • Ds\PriorityQueue::jsonSerialize — Возвращает коллекцию в JSON-представление
  • Ds\PriorityQueue::peek — Возвращает значение из начала очереди
  • Ds\PriorityQueue::pop — Удаляет и возвращает значение с наивысшим приоритетом
  • Ds\PriorityQueue::push — Добавляет значение в очередь
  • Ds\PriorityQueue::toArray — Преобразует очередь в массив (array)


Выделяет память под указанную вместимость

  • « Очередь с приоритетом
  • Ds\PriorityQueue::capacity »
  • PHP Manual
  • Очередь с приоритетом
  • Выделяет память под указанную вместимость

Ds\PriorityQueue::allocate

(PECL ds >= 1.0.0)

Ds\PriorityQueue::allocate — Выделяет память под указанную вместимость

Описание

public Ds\PriorityQueue::allocate ( int $capacity ) : void

Гарантирует, что выделено достаточно памяти под заданную вместимость (количество значений). Позволяет избежать динамического перераспределения памяти при добавлении значений.

Список параметров

capacity

Вместимость. Предполагаемое количество значений.

Замечание:

Если новое значение вместимости меньше текущего, то оно не изменится.

Замечание:

Значение вместимости округляется вверх до ближайшей степени двойки (т.е. 8, 16, 32, 64, 128 и т.д.)

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\PriorityQueue::allocate()

<?php
$queue = new \Ds\PriorityQueue();
var_dump($queue->capacity());

$queue->allocate(100);
var_dump($queue->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(8)
int(128)


Возвращает текущую вместимость

  • « Ds\PriorityQueue::allocate
  • Ds\PriorityQueue::clear »
  • PHP Manual
  • Очередь с приоритетом
  • Возвращает текущую вместимость

Ds\PriorityQueue::capacity

(PECL ds >= 1.0.0)

Ds\PriorityQueue::capacity — Возвращает текущую вместимость

Описание

public Ds\PriorityQueue::capacity ( void ) : int

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.

Примеры

Пример #1 Пример использования Ds\PriorityQueue::capacity()

<?php
$queue = new \Ds\PriorityQueue();
var_dump($queue->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(8)


Удаляет все значения

  • « Ds\PriorityQueue::capacity
  • Ds\PriorityQueue::__construct »
  • PHP Manual
  • Очередь с приоритетом
  • Удаляет все значения

Ds\PriorityQueue::clear

(PECL ds >= 1.0.0)

Ds\PriorityQueue::clear — Удаляет все значения

Описание

public Ds\PriorityQueue::clear ( void ) : void

Удаляет все значения из очереди.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\PriorityQueue::clear()

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

$queue->clear();
print_r($queue);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\PriorityQueue Object
(
)


Создает новый экземпляр

  • « Ds\PriorityQueue::clear
  • Ds\PriorityQueue::copy »
  • PHP Manual
  • Очередь с приоритетом
  • Создает новый экземпляр

Ds\PriorityQueue::__construct

(PECL ds >= 1.0.0)

Ds\PriorityQueue::__construct — Создает новый экземпляр

Описание

public Ds\PriorityQueue::__construct ( void )

Создает новый экземпляр.

Примеры

Пример #1 Пример использования Ds\PriorityQueue::__construct()

<?php
$queue = new \Ds\PriorityQueue();
var_dump($queue);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\PriorityQueue)#1 (0) {
}


Возвращает поверхностную копию очереди

  • « Ds\PriorityQueue::__construct
  • Ds\PriorityQueue::count »
  • PHP Manual
  • Очередь с приоритетом
  • Возвращает поверхностную копию очереди

Ds\PriorityQueue::copy

(PECL ds >= 1.0.0)

Ds\PriorityQueue::copy — Возвращает поверхностную копию очереди

Описание

public Ds\PriorityQueue::copy ( void ) : Ds\PriorityQueue

Возвращает поверхностную копию очереди.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Поверхностная копия очереди.

Примеры

Пример #1 Пример использования Ds\PriorityQueue::copy()

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

print_r($queue->copy());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\PriorityQueue Object
(
    [0] => b
    [1] => c
    [2] => a
)


Возвращает количество элементов в очереди

  • « Ds\PriorityQueue::copy
  • Ds\PriorityQueue::isEmpty »
  • PHP Manual
  • Очередь с приоритетом
  • Возвращает количество элементов в очереди

Ds\PriorityQueue::count

(PECL ds >= 1.0.0)

Ds\PriorityQueue::count — Возвращает количество элементов в очереди

Смотрите Countable::count()


Проверяет, пуста ли коллекция

  • « Ds\PriorityQueue::count
  • Ds\PriorityQueue::jsonSerialize »
  • PHP Manual
  • Очередь с приоритетом
  • Проверяет, пуста ли коллекция

Ds\PriorityQueue::isEmpty

(PECL ds >= 1.0.0)

Ds\PriorityQueue::isEmpty — Проверяет, пуста ли коллекция

Описание

public Ds\PriorityQueue::isEmpty ( void ) : bool

Проверяет, пуста ли коллекция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если очередь пуста, FALSE в противном случае.

Примеры

Пример #1 Пример использования Ds\PriorityQueue::isEmpty()

<?php
$a = new \Ds\PriorityQueue();
$b = new \Ds\PriorityQueue();

$a->push("a",  5);
$a->push("b", 15);
$a->push("c", 10);

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Возвращает коллекцию в JSON-представление

  • « Ds\PriorityQueue::isEmpty
  • Ds\PriorityQueue::peek »
  • PHP Manual
  • Очередь с приоритетом
  • Возвращает коллекцию в JSON-представление

Ds\PriorityQueue::jsonSerialize

(PECL ds >= 1.0.0)

Ds\PriorityQueue::jsonSerialize — Возвращает коллекцию в JSON-представление

См. JsonSerializable::jsonSerialize()

Замечание:

Никогда не используйте эту функцию напрямую.


Возвращает значение из начала очереди

  • « Ds\PriorityQueue::jsonSerialize
  • Ds\PriorityQueue::pop »
  • PHP Manual
  • Очередь с приоритетом
  • Возвращает значение из начала очереди

Ds\PriorityQueue::peek

(PECL ds >= 1.0.0)

Ds\PriorityQueue::peek — Возвращает значение из начала очереди

Описание

public Ds\PriorityQueue::peek ( void ) : mixed

Возвращает значение из начала очереди, но не удаляет его.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение из начала очереди.

Ошибки

Выбрасывает исключение UnderflowException, если очередь пуста.

Примеры

Пример #1 Пример использования Ds\PriorityQueue::peek()

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

var_dump($queue->peek());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "b"


Удаляет и возвращает значение с наивысшим приоритетом

  • « Ds\PriorityQueue::peek
  • Ds\PriorityQueue::push »
  • PHP Manual
  • Очередь с приоритетом
  • Удаляет и возвращает значение с наивысшим приоритетом

Ds\PriorityQueue::pop

(PECL ds >= 1.0.0)

Ds\PriorityQueue::pop — Удаляет и возвращает значение с наивысшим приоритетом

Описание

public Ds\PriorityQueue::pop ( void ) : mixed

Удаляет и возвращает значение из начала очереди, т.е. значение с наивысшим приоритетом.

Замечание:

Значения с одинаковым приоритетом возвращаются по принципу FIFO.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Удаленное значение из начала очереди.

Ошибки

Выбрасывает исключение UnderflowException, если очередь пуста.

Примеры

Пример #1 Пример использования Ds\PriorityQueue::pop()

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

print_r($queue->pop());
print_r($queue->pop());
print_r($queue->pop());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Добавляет значение в очередь

  • « Ds\PriorityQueue::pop
  • Ds\PriorityQueue::toArray »
  • PHP Manual
  • Очередь с приоритетом
  • Добавляет значение в очередь

Ds\PriorityQueue::push

(PECL ds >= 1.0.0)

Ds\PriorityQueue::push — Добавляет значение в очередь

Описание

public Ds\PriorityQueue::push ( mixed $value , int $priority ) : void

Добавляет value с заданным приоритетом priority в очередь.

Список параметров

value

Добавляемое значение.

priority

Приоритет, с которым добавляется значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\PriorityQueue::push()

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

print_r($queue->pop());
print_r($queue->pop());
print_r($queue->pop());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "b"
string(1) "c"
string(1) "a"


Преобразует очередь в массив (array)

  • « Ds\PriorityQueue::push
  • Другие службы »
  • PHP Manual
  • Очередь с приоритетом
  • Преобразует очередь в массив (array)

Ds\PriorityQueue::toArray

(PECL ds >= 1.0.0)

Ds\PriorityQueue::toArray — Преобразует очередь в массив (array)

Описание

public Ds\PriorityQueue::toArray ( void ) : array

Преобразует очередь в массив (array).

Замечание:

Этот метод не является разрушительным.

Замечание:

Приведение к типу array пока не поддерживается.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array), содержащий все элементы очереди с сохранением их порядка.

Примеры

Пример #1 Пример использования Ds\PriorityQueue::toArray()

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

var_dump($queue->toArray());
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  [0]=>
  string(1) "b"
  [1]=>
  string(1) "c"
  [2]=>
  string(1) "a"
}


Другие службы

  • chdb — Хеш-база данных констант (CHDB)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • chdb — Класс chdb
    • Функции chdb
  • cURL — Клиентская библиотека работы с URL
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции cURL
  • Event
    • Введение
    • Установка и настройка
    • Примеры
    • Флаги событий
    • О постоянных(persistent) событиях
    • Callback-функции
    • Создание событий для сигналов
    • Event — Класс Event
    • EventBase — Класс EventBase
    • EventBuffer — Класс EventBuffer
    • EventBufferEvent — Класс EventBufferEvent
    • О callback-функциях событийного буфера
    • EventConfig — Класс EventConfig
    • EventDnsBase — Класс EventDnsBase
    • EventHttp — Класс EventHttp
    • EventHttpConnection — Класс EventHttpConnection
    • EventHttpRequest — Класс EventHttpRequest
    • EventListener — Класс EventListener
    • EventSslContext — Класс EventSslContext
    • EventUtil — Класс EventUtil
  • FAM — File Alteration Monitor
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции FAM
  • FTP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции FTP
  • Gearman
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • GearmanClient — Класс GearmanClient
    • GearmanJob — Класс GearmanJob
    • GearmanTask — Класс GearmanTask
    • GearmanWorker — Класс GearmanWorker
    • GearmanException — Класс GearmanException
  • Gopher — Net Gopher
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции Gopher
  • Gupnp
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции Gupnp
  • Hyperwave API
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Integration with Apache
    • Hyperwave API Функции
  • LDAP — Облегчённый протокол доступа к каталогам (LDAP)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Использование вызовов PHP LDAP
    • Управляющие объекты LDAP
    • Примеры
    • Функции LDAP
  • Memcache
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Memcache — Класс Memcache
    • Функции Memcache
  • Memcached
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Время хранения объекта
    • Функции обратного вызова
    • Поддержка сессий
    • Memcached — Класс Memcached
    • MemcachedException — Класс MemcachedException
  • mqseries
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции mqseries
  • Сеть
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Сетевые функции
  • RRD — RRDtool
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции RRD
    • RRDCreator — Класс RRDCreator
    • RRDGraph — Класс RRDGraph
    • RRDUpdater — Класс RRDUpdater
  • SAM — Simple Asynchronous Messaging
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • SAM Функции
  • ScoutAPM
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Scoutapm Функции
  • SNMP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции SNMP
    • SNMP — Класс SNMP
    • SNMPException — Класс SNMPException
  • Сокеты
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Ошибки сокетов
    • Функции сокета
  • SSH2 — Secure Shell2
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции SSH2
  • Stomp — Stomp Client
    • Введение
    • Установка и настройка
    • Примеры
    • Stomp
    • Stomp — Класс Stomp
    • StompFrame — Класс StompFrame
    • StompException — Класс StompException
  • SVM — Support Vector Machine (Вспомогательная векторная машина)
    • Введение
    • Установка и настройка
    • Примеры
    • SVM — Класс SVM
    • SVMModel — Класс SVMModel
  • SVN — Subversion
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции SVN
  • TCP — Обертки TCP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции TCP
  • Varnish
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • VarnishAdmin — Класс VarnishAdmin
    • VarnishStat — Класс VarnishStat
    • VarnishLog — Класс VarnishLog
  • YAZ
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции YAZ
  • YP/NIS
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции YP/NIS
  • Обмен сообщениями 0MQ — ZMQ
    • Введение
    • Установка и настройка
    • ZMQ — Класс ZMQ
    • ZMQContext — Класс ZMQContext
    • ZMQSocket — Класс ZMQSocket
    • ZMQPoll — Класс ZMQPoll
    • ZMQDevice — Класс ZMQDevice
  • ZooKeeper
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции ZooKeeper
    • Zookeeper — Класс Zookeeper
    • ZookeeperConfig — Класс ZookeeperConfig
    • ZookeeperException — Класс ZookeeperException
    • ZookeeperAuthenticationException — Класс ZookeeperAuthenticationException
    • ZookeeperConnectionException — Класс ZookeeperConnectionException
    • ZookeeperMarshallingException — Класс ZookeeperMarshallingException
    • ZookeeperNoNodeException — Класс ZookeeperNoNodeException
    • ZookeeperOperationTimeoutException — Класс ZookeeperOperationTimeoutException
    • ZookeeperSessionException — Класс ZookeeperSessionException


Хеш-база данных констант (CHDB)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • chdb — Класс chdb
    • chdb::__construct — Создает экземпляр chdb
    • chdb::get — Получает значение по ключу
  • Функции chdb
    • chdb_create — Создает файл chdb


Введение

CHDB (constant hash database) - это быстрая база данных типа ключ-значение для неизменяемых данных. Реализуется путем файла отображенного в память и предоставляет следующий функционал:

  • Чрезвычайно быстрая первоначальная загрузка, независимо от размера базы данных.

  • В память загружены только те страницы файла, которые в данный момент используются.

  • Как только страница загружена, она становится доступна любому количеству процессов.

  • Загруженные страницы кешируются между запросами и процессами.

Стандартное использование CHDB - это быстрая альтернатива заданию множества констант в PHP.

Внутри CHDB устроена как хеш-таблица, использующая функцию » идеального хеширования, гарантируя тем самым время поиска O(1) в худшем случае.


Требования

Расширение использует » cmph версии 0.9 для предоставления функции » идеального хеширования.

Для установки этого расширения требуется cmph 0.9.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/chdb

Для установки этого расширения требуется » cmph версии 0.9. Если cmph установлена в нестандартную директорию, используйте опцию --with-libcmph-dir=DIR во время компиляции для указания пути установки cmph.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • chdb
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Пример #1 Создание файла chdb

<?php

$data = array(
    'key1' => 'value1',
    'key2' => 'value2',
    // ...
);
chdb_create('data.chdb', $data);

?>

В примере выше создается файл chdb с именем data.chdb, содержащий пары ключ-значение, указанные в $data.

Пример #2 Загрузка и поиск в файле chdb

<?php

$chdb = new chdb('data.chdb');
$value1 = $chdb->get('key1');
$value2 = $chdb->get('key2');

echo $value1, PHP_EOL;
echo $value2, PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

value1
value2


Класс chdb

(PECL chdb >= 0.1.0)

Введение

Представляет загруженный файл chdb.

Обзор классов

chdb {
/* Методы */
public __construct ( string $pathname )
public get ( string $key ) : string
}

Содержание

  • chdb::__construct — Создает экземпляр chdb
  • chdb::get — Получает значение по ключу


Создает экземпляр chdb

  • « chdb
  • chdb::get »
  • PHP Manual
  • chdb
  • Создает экземпляр chdb

chdb::__construct

(PECL chdb >= 0.1.0)

chdb::__construct — Создает экземпляр chdb

Описание

public chdb::__construct ( string $pathname )

Разружает файл chdb, путем отображения его в память.

Замечание:

В то время как производятся некоторые проверки целостности данных в этом файле, они, в основном, проверяют на наличие наиболее распространенных ошибок (например, загрузка файла, который не является базой данных chdb, или если что-то несовместимо с текущей системой). Таким образом, вредоносный файл chdb может быть опасен, поэтому файлы chdb должны быть надежны и к ним следует относиться с тем же уровенем защиты, как и к разделяемым библиотекам PHP.

Список параметров

pathname

Имя файла.

Ошибки

Выбрасывает исключение, если не удалось загрузить файл.

Замечание:

Корректный файл может не загрузиться, если он был создан на архитектуре, использующей другой порядок байт, с помощью другой версии chdb, или если файл слишком большой для отображения в память (в основном это касается огромных файлов и 32-битных архитектур). В таких случаях загрузка закончится вызовом исключения и не допустит выполнения каких-либо некорректных операций.


Получает значение по ключу

  • « chdb::__construct
  • Функции chdb »
  • PHP Manual
  • chdb
  • Получает значение по ключу

chdb::get

(PECL chdb >= 0.1.0)

chdb::get — Получает значение по ключу

Описание

public chdb::get ( string $key ) : string

Получает значение, связанной с ключом из базы данных chdb.

Список параметров

key

Ключ, для которого нужно получить значение

Возвращаемые значения

Возвращает строку, содержащую значение, связанное с заданным ключом key, или NULL если ничего не найдено.

Примеры

Пример #1 Пример использования chdb::get()

<?php

$data = array(
    'key1' => 'value1',
    'key2' => 'value2',
    // ...
);
chdb_create('data.chdb', $data);

$chdb = new chdb('data.chdb');
$value1 = $chdb->get('key1');
$value2 = $chdb->get('key2');

echo $value1, PHP_EOL;
echo $value2, PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

value1
value2


  • « chdb::get
  • chdb_create »
  • PHP Manual
  • chdb
  • Функции chdb

Функции chdb

Содержание

  • chdb_create — Создает файл chdb


Создает файл chdb

  • « Функции chdb
  • cURL »
  • PHP Manual
  • Функции chdb
  • Создает файл chdb

chdb_create

(PECL chdb >= 0.1.0)

chdb_create — Создает файл chdb

Описание

chdb_create ( string $pathname , array $data ) : bool

chdb_create() создает файл chdb, содержащий указанные пары ключ-значение.

Замечание:

Файлы chdb не переносимы между окружениями прямого (little-endian) и обратного (big-endian) порядка байт. Но зато они переносимы между разными архитектурами. Также не гарантируется совместимость между разными версиями chdb.

Список параметров

pathname

Имя создаваемого файла.

Если указанный файл уже существует, то он будет перезаписан.

data

Массив пар ключ-значение для записи в файл.

Ключи и значения будут преобразованы в строки, перед тем, как будут записаны, так как chdb поддерживает только строковый тип. Обратите внимание, что бинарные строки также поддерживаются, как для значений, так и для ключей.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает исключение, если не удалось создать файл.

Примеры

Пример #1 Пример chdb_create()

<?php

$data = array(
    'key1' => 'value1',
    'key2' => 'value2',
    // ...
);
chdb_create('data.chdb', $data);

?>

В примере выше создается файл chdb с именем data.chdb и содержащий пары ключ/значение из массива $data.


Клиентская библиотека работы с URL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Простой пример использования curl
  • Функции cURL
    • curl_close — Завершает сеанс cURL
    • curl_copy_handle — Копирует дескриптор cURL вместе со всеми его настройками
    • curl_errno — Возвращает код последней ошибки
    • curl_error — Возвращает строку с описанием последней ошибки текущего сеанса
    • curl_escape — Кодирует заданную строку как URL
    • curl_exec — Выполняет запрос cURL
    • curl_file_create — Создает объект CURLFile
    • curl_getinfo — Возвращает информацию об определенной операции
    • curl_init — Инициализирует сеанс cURL
    • curl_multi_add_handle — Добавляет обычный cURL-дескриптор к набору cURL-дескрипторов
    • curl_multi_close — Закрывает набор cURL-дескрипторов
    • curl_multi_errno — Возвращает код последней ошибки множественного 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_multi соединении
    • curl_multi_setopt — Установить опции для множественного дескриптора cURL
    • curl_multi_strerror — Возвращает строку, описывающую ошибку
    • curl_pause — Приостановить и возобновить соединение
    • curl_reset — Сбросить все настройки обработчика сессии libcurl
    • curl_setopt_array — Устанавливает несколько параметров для сеанса cURL
    • curl_setopt — Устанавливает параметр для сеанса CURL
    • curl_share_close — Закрыть разделяемый обработчик cURL
    • curl_share_errno — Возвращает код последней ошибки разделяемого обработчика curl
    • curl_share_init — Инициализация разделяемого обработчика cURL
    • curl_share_setopt — Установить опции разделяемого обработчика cURL
    • curl_share_strerror — Возвращает описание для заданного кода ошибки
    • curl_strerror — Получить текстовое описание для кода ошибки
    • curl_unescape — Декодирует закодированную URL-строку
    • curl_version — Возвращает версию cURL


Введение

В PHP включена поддержка libcurl - библиотека функций, написанной Дэниелом Стенбергом (Daniel Stenberg), которая позволяет взаимодействовать с множеством различных серверов по многим различным протоколам. В настоящее время libcurl поддерживает протоколы http, https, ftp, gopher, telnet, dict, file и ldap. libcurl также умеет работать с сертификатами HTTPS, посылать запросы к HTTP-серверам методами POST и PUT, загружать файлы по протоколам HTTP и FTP (последнее можно сделать с помощью модуля FTP), использовать прокси-серверы, cookies и аутентификацию пользователей.


Требования

Для использования функций cURL в PHP необходимо установить пакет » libcurl. Необходимо использовать версию libcurl 7.10.5 или новее.


Установка

Для использования cURL необходимо собрать PHP с опцией --with-curl[=DIR] , где DIR - имя каталога, содержащего подкаталоги lib и include. Каталог include должен содержать подкаталог curl с файлами easy.h и curl.h. В каталоге lib должен быть файл libcurl.a. До PHP 5.5.0 с помощью опции --with-curlwrappers можно было сконфигурировать PHP для использования cURL при работе с обертками URL.

Замечание: Замечание для пользователей Win32
Для работы с этим модулем в Windows файлы libeay32.dll и ssleay32.dll, либо, начиная с OpenSSL 1.1, libcrypto-*.dll и libssl-*.dll, должны существовать в системной переменной окружения PATH. Также libssh2.dll должен присутствовать в вашей переменной окружения PATH. Вам не требуется файл libcurl.dll с сайта cURL.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Настройки конфигурации cURL
Имя | По умолчанию | Место изменения | Список изменений
curl.cainfo | NULL | PHP_INI_SYSTEM | Доступно с PHP 5.3.7.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

curl.cainfo string

Значение по умолчанию для директивы CURLOPT_CAINFO. Данное значение должно быть указано в виде абсолютного пути.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Это расширение определяет два типа ресурсов: дескриптор cURL и мультидескриптор cURL.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Описания и примеры применения этих констант описаны в документации функций curl_setopt(), curl_multi_setopt() и curl_getinfo().

CURLOPT_AUTOREFERER (integer)
Доступно с PHP 5.1.0
CURLOPT_COOKIESESSION (integer)
Доступно с PHP 5.1.0
CURLOPT_DNS_USE_GLOBAL_CACHE (integer)
CURLOPT_DNS_CACHE_TIMEOUT (integer)
CURLOPT_FTP_SSL (integer)
Доступно с PHP 5.2.0
CURLFTP_CREATE_DIR (integer)
Доступно с PHP 7.0.7 и cURL 7.19.3
CURLFTP_CREATE_DIR_NONE (integer)
Доступно с PHP 7.0.7 и cURL 7.19.3
CURLFTP_CREATE_DIR_RETRY (integer)
Доступно с PHP 7.0.7 и cURL 7.19.3
CURLFTPSSL_TRY (integer)
Доступно с PHP 5.2.0
CURLFTPSSL_ALL (integer)
Доступно с PHP 5.2.0
CURLFTPSSL_CONTROL (integer)
Доступно с PHP 5.2.0
CURLFTPSSL_NONE (integer)
Доступно с PHP 5.2.0
CURLOPT_PRIVATE (integer)
Доступно с PHP 5.2.4
CURLOPT_FTPSSLAUTH (integer)
Доступно с PHP 5.1.0
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_FTP_CREATE_MISSING_DIRS (integer)
CURLOPT_NETRC (integer)
CURLOPT_FOLLOWLOCATION (integer)
Эта опция недоступна, если разрешены open_basedir или safe_mode.
CURLOPT_FTPASCII (integer)
CURLOPT_PUT (integer)
CURLOPT_MUTE (integer)
CURLOPT_USERPWD (integer)
CURLOPT_PROXYUSERPWD (integer)
CURLOPT_RANGE (integer)
CURLOPT_TIMEOUT (integer)
CURLOPT_TIMEOUT_MS (integer)
CURLOPT_TCP_NODELAY (integer)
Доступно с PHP 5.2.1
CURLOPT_POSTFIELDS (integer)
CURLOPT_PROGRESSFUNCTION (integer)
Доступно с PHP 5.3.0
CURLOPT_REFERER (integer)
CURLOPT_USERAGENT (integer)
CURLOPT_FTPPORT (integer)
CURLOPT_FTP_USE_EPSV (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)
CURL_SSLVERSION_DEFAULT (integer)
CURL_SSLVERSION_TLSv1 (integer)
CURL_SSLVERSION_SSLv2 (integer)
CURL_SSLVERSION_SSLv3 (integer)
CURL_SSLVERSION_TLSv1_0 (integer)
Доступно с PHP 5.5.19 и 5.6.3
CURL_SSLVERSION_TLSv1_1 (integer)
Доступно с PHP 5.5.19 и 5.6.3
CURL_SSLVERSION_TLSv1_2 (integer)
Доступно с PHP 5.5.19 и 5.6.3
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)
Удалено в PHP 5.6.0.
CURLOPT_FRESH_CONNECT (integer)
CURLOPT_FORBID_REUSE (integer)
CURLOPT_RANDOM_FILE (integer)
CURLOPT_EGDSOCKET (integer)
CURLOPT_CONNECTTIMEOUT (integer)
CURLOPT_CONNECTTIMEOUT_MS (integer)
CURLOPT_SSL_VERIFYPEER (integer)
CURLOPT_CAINFO (integer)
CURLOPT_CAPATH (integer)
CURLOPT_COOKIEJAR (integer)
CURLOPT_SSL_CIPHER_LIST (integer)
CURLOPT_BINARYTRANSFER (integer)
CURLOPT_NOSIGNAL (integer)
CURLOPT_PROXYTYPE (integer)
Доступно с cURL 7.10.
CURLOPT_BUFFERSIZE (integer)
CURLOPT_HTTPGET (integer)
CURLOPT_HTTP_VERSION (integer)
CURLOPT_SSLKEY (integer)
CURLOPT_SSLKEYTYPE (integer)
CURLOPT_SSLKEYPASSWD (integer)
CURLOPT_SSLENGINE (integer)
CURLOPT_SSLENGINE_DEFAULT (integer)
CURLOPT_SSLCERTTYPE (integer)
CURLOPT_CRLF (integer)
CURLOPT_ENCODING (integer)
CURLOPT_PROXYPORT (integer)
CURLOPT_UNRESTRICTED_AUTH (integer)
CURLOPT_FTP_USE_EPRT (integer)
CURLOPT_HTTP200ALIASES (integer)
CURLOPT_HTTPAUTH (integer)
CURLAUTH_BASIC (integer)
CURLAUTH_DIGEST (integer)
CURLAUTH_GSSNEGOTIATE (integer)
CURLAUTH_NEGOTIATE (integer)
Доступно с PHP 7.0.7 и cURL 7.38.0.
CURLAUTH_NTLM (integer)
CURLAUTH_NTLM_WB (integer)
Доступно с PHP 7.0.7 и cURL 7.22.0
CURLAUTH_ANY (integer)
CURLAUTH_ANYSAFE (integer)
CURLOPT_PROXYAUTH (integer)
CURLOPT_MAX_RECV_SPEED_LARGE (integer)
Доступно с PHP 5.4.0 и cURL 7.15.5
CURLOPT_MAX_SEND_SPEED_LARGE (integer)
Доступно с PHP 5.4.0 и cURL 7.15.5
CURLOPT_HEADEROPT (integer)
Доступно с PHP 7.0.7 и cURL 7.37.0
CURLOPT_PROXYHEADER (integer)
Доступно с PHP 7.0.7 и cURL 7.37.0
CURLCLOSEPOLICY_LEAST_RECENTLY_USED (integer)
Удалено в PHP 5.6.0.
CURLCLOSEPOLICY_LEAST_TRAFFIC (integer)
Удалено в PHP 5.6.0.
CURLCLOSEPOLICY_SLOWEST (integer)
Удалено в PHP 5.6.0.
CURLCLOSEPOLICY_CALLBACK (integer)
Удалено в PHP 5.6.0.
CURLCLOSEPOLICY_OLDEST (integer)
Удалено в PHP 5.6.0.
CURLINFO_PRIVATE (integer)
Доступно с PHP 5.2.4
CURLINFO_EFFECTIVE_URL (integer)
CURLINFO_HTTP_CODE (integer)
Начиная с PHP 5.5.0 и cURL 7.10.8, это устаревший псевдоним CURLINFO_RESPONSE_CODE
CURLINFO_RESPONSE_CODE (integer)
Доступно с PHP 5.5.0 и cURL 7.10.8
CURLINFO_HEADER_OUT (integer)
Доступно с PHP 5.1.3
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)
CURLINFO_STARTTRANSFER_TIME (integer)
CURLINFO_CONTENT_TYPE (integer)
CURLINFO_REDIRECT_TIME (integer)
CURLINFO_REDIRECT_COUNT (integer)
CURLINFO_REDIRECT_URL (string)
Доступно с PHP 5.3.7
CURLINFO_PRIMARY_IP (string)
Доступно с PHP 5.4.7
CURLINFO_PRIMARY_PORT (integer)
Доступно с PHP 5.4.7
CURLINFO_LOCAL_IP (string)
Доступно с PHP 5.4.7
CURLINFO_LOCAL_PORT (integer)
Доступно с PHP 5.4.7
CURL_PUSH_OK (integer)
Доступно с PHP 7.1.0 и cURL 7.44.0
CURL_PUSH_DENY (integer)
Доступно с PHP 7.1.0 и cURL 7.44.0
CURL_REDIR_POST_301 (integer)
Доступно с PHP 7.0.7 и cURL 7.18.2
CURL_REDIR_POST_302 (integer)
Доступно с PHP 7.0.7 и cURL 7.18.2
CURL_REDIR_POST_303 (integer)
Доступно с PHP 7.0.7 и cURL 7.25.1
CURL_REDIR_POST_ALL (integer)
Доступно с PHP 7.0.7 и cURL 7.18.2
CURL_TIMECOND_IFMODSINCE (integer)
CURL_TIMECOND_IFUNMODSINCE (integer)
CURL_TIMECOND_LASTMOD (integer)
CURL_VERSION_ALTSVC (integer)
Доступно с PHP 7.3.6 и cURL 7.64.1
CURL_VERSION_ASYNCHDNS (integer)
Доступно с PHP 7.3.0 и cURL 7.10.7
CURL_VERSION_BROTLI (integer)
Доступно с PHP 7.3.0 и cURL 7.57.0
CURL_VERSION_CONV (integer)
Доступно с PHP 7.3.0 и cURL 7.15.4
CURL_VERSION_CURLDEBUG (integer)
Доступно с PHP 7.3.6 и cURL 7.19.6
CURL_VERSION_DEBUG (integer)
Доступно с PHP 7.3.0 и cURL 7.10.6
CURL_VERSION_GSSAPI (integer)
Доступно с PHP 7.3.0 и cURL 7.38.0
CURL_VERSION_GSSNEGOTIATE (integer)
Доступно с PHP 7.3.0 и cURL 7.10.6 (объявлено устаревшим с 7.38.0)
CURL_VERSION_IDN (integer)
Доступно с PHP 7.3.0 и cURL 7.12.0
CURL_VERSION_MULTI_SSL (integer)
Доступно с PHP 7.3.0 и cURL 7.56.0
CURL_VERSION_NTLM (integer)
Доступно с PHP 7.3.0 и cURL 7.10.6
CURL_VERSION_NTLM_WB (integer)
Доступно с PHP 7.3.0 и cURL 7.22.0
CURL_VERSION_IPV6 (integer)
CURL_VERSION_KERBEROS4 (integer)
CURL_VERSION_KERBEROS5 (integer)
Доступно с PHP 7.0.7 и cURL 7.40.0
CURL_VERSION_HTTP2 (integer)
Доступно с PHP 5.5.24 и 5.6.8 и cURL 7.33.0
CURL_VERSION_PSL (integer)
Доступно с PHP 7.3.6 и cURL 7.47.0
CURL_VERSION_SPNEGO (integer)
Доступно с PHP 7.3.0 и cURL 7.10.8
CURL_VERSION_SSPI (integer)
Доступно с PHP 7.3.0 и cURL 7.13.2
CURL_VERSION_SSL (integer)
CURL_VERSION_TLSAUTH_SRP (integer)
Доступно с PHP 7.3.0 и cURL 7.21.4
CURL_VERSION_UNIX_SOCKETS (integer)
Доступно с PHP 7.0.7 и cURL 7.40.0
CURL_VERSION_LIBZ (integer)
CURLVERSION_NOW (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)
CURLE_GOT_NOTHING (integer)
CURLE_SSL_ENGINE_NOTFOUND (integer)
CURLE_SSL_ENGINE_SETFAILED (integer)
CURLE_SEND_ERROR (integer)
CURLE_RECV_ERROR (integer)
CURLE_SHARE_IN_USE (integer)
CURLE_SSL_CERTPROBLEM (integer)
CURLE_SSL_CIPHER (integer)
CURLE_SSL_CACERT (integer)
CURLE_BAD_CONTENT_ENCODING (integer)
CURLE_LDAP_INVALID_URL (integer)
CURLE_FILESIZE_EXCEEDED (integer)
CURLE_FTP_SSL_FAILED (integer)
CURLE_SSH (integer)
Доступно с PHP 5.3.0 и cURL 7.16.1.
CURLFTPAUTH_DEFAULT (integer)
Доступно с PHP 5.1.0
CURLFTPAUTH_SSL (integer)
Доступно с PHP 5.1.0
CURLFTPAUTH_TLS (integer)
Доступно с PHP 5.1.0
CURLPROXY_HTTP (integer)
Доступно с cURL 7.10.
CURLPROXY_HTTP_1_0 (integer)
Доступно с PHP 7.0.7 и cURL 7.19.3
CURLPROXY_SOCKS4 (integer)
Доступно с PHP 5.2.10 и cURL 7.10.
CURLPROXY_SOCKS5 (integer)
Доступно с cURL 7.10.
CURL_NETRC_OPTIONAL (integer)
CURL_NETRC_IGNORED (integer)
CURL_NETRC_REQUIRED (integer)
CURL_HTTP_VERSION_NONE (integer)
CURL_HTTP_VERSION_1_0 (integer)
CURL_HTTP_VERSION_1_1 (integer)
CURL_HTTP_VERSION_2 (integer)
Доступно с PHP 7.0.7 и cURL 7.43.0
CURL_HTTP_VERSION_2_0 (integer)
Доступно с PHP 5.5.24, 5.6.8 и cURL 7.33.0
CURL_HTTP_VERSION_2TLS (integer)
Доступно с PHP 7.0.7 и cURL 7.47.0
CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (integer)
Доступно с PHP 7.0.7 и cURL 7.49.0
CURLM_CALL_MULTI_PERFORM (integer)
CURLM_OK (integer)
CURLM_BAD_HANDLE (integer)
CURLM_BAD_EASY_HANDLE (integer)
CURLM_OUT_OF_MEMORY (integer)
CURLM_INTERNAL_ERROR (integer)
CURLMSG_DONE (integer)
CURLOPT_KEYPASSWD (integer)
CURLOPT_SSH_AUTH_TYPES (integer)
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 (integer)
CURLOPT_SSH_PRIVATE_KEYFILE (integer)
CURLOPT_SSH_PUBLIC_KEYFILE (integer)
CURLOPT_SSL_OPTIONS (integer)
Доступно с PHP 5.5.0 и cURL 7.25.0
CURLSSLOPT_ALLOW_BEAST (integer)
Доступно с PHP 5.5.0 и cURL 7.25.0
CURLSSLOPT_NO_REVOKE (integer)
Доступно с PHP 7.0.7 и cURL 7.44.0
CURLOPT_USERNAME (integer)
Доступно с PHP 5.5.0 и cURL 7.19.1
CURLOPT_SASL_IR (integer)
Доступно с PHP 7.0.7 и cURL 7.31.0
CURLOPT_DNS_INTERFACE (integer)
Доступно с PHP 7.0.7 и cURL 7.33.0
CURLOPT_DNS_LOCAL_IP4 (integer)
Доступно с PHP 7.0.7 и cURL 7.33.0
CURLOPT_DNS_LOCAL_IP6 (integer)
Доступно с PHP 7.0.7 и cURL 7.33.0
CURLOPT_XOAUTH2_BEARER (integer)
Доступно с PHP 7.0.7 и cURL 7.33.0
CURLOPT_LOGIN_OPTIONS (integer)
Доступно с PHP 7.0.7 и cURL 7.34.0
CURLOPT_EXPECT_100_TIMEOUT_MS (integer)
Доступно с PHP 7.0.7 и cURL 7.36.0
CURLOPT_SSL_ENABLE_ALPN (integer)
Доступно с PHP 7.0.7 и cURL 7.36.0
CURLOPT_SSL_ENABLE_NPN (integer)
Доступно с PHP 7.0.7 и cURL 7.36.0
CURLOPT_PINNEDPUBLICKEY (integer)
Доступно с PHP 7.0.7 и cURL 7.39.0
CURLOPT_UNIX_SOCKET_PATH (integer)
Доступно с PHP 7.0.7 и cURL 7.40.0
CURLOPT_SSL_VERIFYSTATUS (integer)
Доступно с PHP 7.0.7 и cURL 7.41.0
CURLOPT_PATH_AS_IS (integer)
Доступно с PHP 7.0.7 и cURL 7.42.0
CURLOPT_SSL_FALSESTART (integer)
Доступно с PHP 7.0.7 и cURL 7.42.0
CURLOPT_PIPEWAIT (integer)
Доступно с PHP 7.0.7 и cURL 7.43.0
CURLOPT_PROXY_SERVICE_NAME (integer)
Доступно с PHP 7.0.7 и cURL 7.43.0
CURLOPT_SERVICE_NAME (integer)
Доступно с PHP 7.0.7 и cURL 7.43.0
CURLOPT_DEFAULT_PROTOCOL (integer)
Доступно с PHP 7.0.7 и cURL 7.45.0
CURLOPT_STREAM_WEIGHT (integer)
Доступно с PHP 7.0.7 и cURL 7.46.0
CURLOPT_TFTP_NO_OPTIONS (integer)
Доступно с PHP 7.0.7 и cURL 7.48.0
CURLOPT_CONNECT_TO (integer)
Доступно с PHP 7.0.7 и cURL 7.49.0
CURLOPT_TCP_FASTOPEN (integer)
Доступно с PHP 7.0.7 и cURL 7.49.0
CURLMOPT_PIPELINING (integer)
Доступно с PHP 5.5.0 и cURL 7.16.0.
CURLMOPT_MAXCONNECTS (integer)
Доступно с PHP 5.5.0 и cURL 7.16.3.
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE (integer)
Доступно с PHP 7.0.7 и cURL 7.30.0
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE (integer)
Доступно с PHP 7.0.7 и cURL 7.30.0
CURLMOPT_MAX_HOST_CONNECTIONS (integer)
Доступно с PHP 7.0.7 и cURL 7.30.0
CURLMOPT_MAX_PIPELINE_LENGTH (integer)
Доступно с PHP 7.0.7 и cURL 7.30.0
CURLMOPT_MAX_TOTAL_CONNECTIONS (integer)
Доступно с PHP 7.0.7 и cURL 7.30.0
CURLMOPT_PUSHFUNCTION (integer)
Доступно с PHP 7.1.0 и cURL 7.44.0
CURLSSH_AUTH_AGENT (integer)
Доступно с PHP 7.0.7 и cURL 7.28.0
CURLSSH_AUTH_ANY (integer)
CURLSSH_AUTH_DEFAULT (integer)
CURLSSH_AUTH_HOST (integer)
CURLSSH_AUTH_KEYBOARD (integer)
CURLSSH_AUTH_NONE (integer)
CURLSSH_AUTH_PASSWORD (integer)
CURLSSH_AUTH_PUBLICKEY (integer)
CURL_WRAPPERS_ENABLED (integer)
Определена в PHP с помощью --with-curlwrappers . Перемещено в PECL в PHP 5.5.0.
CURLPAUSE_ALL (integer)
Доступно с PHP 5.5.0 и cURL 7.18.0.
CURLPAUSE_CONT (integer)
Доступно с PHP 5.5.0 и cURL 7.18.0.
CURLPAUSE_RECV (integer)
Доступно с PHP 5.5.0 и cURL 7.18.0.
CURLPAUSE_RECV_CONT (integer)
Доступно с PHP 5.5.0 и cURL 7.18.0.
CURLPAUSE_SEND (integer)
Доступно с PHP 5.5.0 и cURL 7.18.0.
CURLPAUSE_SEND_CONT (integer)
Доступно с PHP 5.5.0 и cURL 7.18.0.
CURLPIPE_NOTHING (integer)
Доступно с PHP 7.0.0 и cURL 7.43.0.
CURLPIPE_HTTP1 (integer)
Доступно с PHP 7.0.0 и cURL 7.43.0.
CURLPIPE_MULTIPLEX (integer)
Доступно с PHP 7.0.0 и cURL 7.43.0.
CURLPROXY_SOCKS4A (integer)
Доступно с PHP 5.5.23 и PHP 5.6.7 и cURL 7.18.0.
CURLPROXY_SOCKS5_HOSTNAME (integer)
Доступно с PHP 5.5.23 и PHP 5.6.7 и cURL 7.18.0.
CURLHEADER_SEPARATE (integer)
Доступно с PHP 7.0.7 и cURL 7.37.0.
CURLHEADER_UNIFIED (integer)
Доступно с PHP 7.0.7 и cURL 7.37.0.
CURLPROTO_SMB (integer)
Доступно с PHP 7.0.7 и cURL 7.40.0.
CURLPROTO_SMBS (integer)
Доступно с PHP 7.0.7 и cURL 7.40.0.
CURLOPT_REQUEST_TARGET (integer)
Доступно с PHP 7.3.0 и cURL 7.55.0.
CURLAUTH_GSSAPI (integer)
Доступно с версии PHP 7.3.0 и cURL 7.54.1
CURLE_WEIRD_SERVER_REPLY (integer)
Доступно с версии PHP 7.3.0 и cURL 7.51.0
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T (integer)
Доступно с версии PHP 7.3.0 и cURL 7.55.0
CURLINFO_CONTENT_LENGTH_UPLOAD_T (integer)
Доступно с версии PHP 7.3.0 и cURL 7.55.0
CURLINFO_HTTP_VERSION (integer)
Доступно с версии PHP 7.3.0 и cURL 7.50.0
CURLINFO_PROTOCOL (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLINFO_PROXY_SSL_VERIFYRESULT (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLINFO_SCHEME (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLINFO_SIZE_DOWNLOAD_T (integer)
Доступно с версии PHP 7.3.0 и cURL 7.50.0
CURLINFO_SIZE_UPLOAD_T (integer)
Доступно с версии PHP 7.3.0 и cURL 7.50.0
CURLINFO_SPEED_DOWNLOAD_T (integer)
Доступно с версии PHP 7.3.0 и cURL 7.50.0
CURLINFO_SPEED_UPLOAD_T (integer)
Доступно с версии PHP 7.3.0 и cURL 7.50.0
CURL_MAX_READ_SIZE (integer)
Доступно с версии PHP 7.3.0 и cURL 7.53.0
CURLOPT_ABSTRACT_UNIX_SOCKET (integer)
Доступно с версии PHP 7.3.0 и cURL 7.53.0
CURLOPT_KEEP_SENDING_ON_ERROR (integer)
Доступно с версии PHP 7.3.0 и cURL 7.51.0
CURLOPT_PRE_PROXY (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_PROXY_CAINFO (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_PROXY_CAPATH (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_PROXY_CRLFILE (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_PROXY_KEYPASSWD (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_PROXY_PINNEDPUBLICKEY (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_PROXY_SSLCERT (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_PROXY_SSLCERTTYPE (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_PROXY_SSL_CIPHER_LIST (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_PROXY_SSLKEY (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_PROXY_SSLKEYTYPE (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_PROXY_SSL_OPTIONS (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_PROXY_SSL_VERIFYHOST (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_PROXY_SSL_VERIFYPEER (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_PROXY_SSLVERSION (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_PROXY_TLSAUTH_PASSWORD (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_PROXY_TLSAUTH_TYPE (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_PROXY_TLSAUTH_USERNAME (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLOPT_SOCKS5_AUTH (integer)
Доступно с версии PHP 7.3.0 и cURL 7.55.0
CURLOPT_SUPPRESS_CONNECT_HEADERS (integer)
Доступно с версии PHP 7.3.0 и cURL 7.54.0
CURLPROXY_HTTPS (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURL_SSLVERSION_MAX_DEFAULT (integer)
Доступно с версии PHP 7.3.0 и cURL 7.54.0
CURL_SSLVERSION_MAX_NONE (integer)
Доступно с версии PHP 7.3.0 и cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_0 (integer)
Доступно с версии PHP 7.3.0 и cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_1 (integer)
Доступно с версии PHP 7.3.0 и cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_2 (integer)
Доступно с версии PHP 7.3.0 и cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_3 (integer)
Доступно с версии PHP 7.3.0 и cURL 7.54.0
CURL_SSLVERSION_TLSv1_3 (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURL_VERSION_HTTPS_PROXY (integer)
Доступно с версии PHP 7.3.0 и cURL 7.52.0
CURLAUTH_BEARER (integer)
Доступно с версии PHP 7.3.0 и cURL 7.61.0
CURLINFO_APPCONNECT_TIME_T (integer)
Доступно с версии PHP 7.3.0 и cURL 7.61.0
CURLINFO_CONNECT_TIME_T (integer)
Доступно с версии PHP 7.3.0 и cURL 7.61.0
CURLINFO_FILETIME_T (integer)
Доступно с версии PHP 7.3.0 и cURL 7.59.0
CURLINFO_NAMELOOKUP_TIME_T (integer)
Доступно с версии PHP 7.3.0 и cURL 7.61.0
CURLINFO_PRETRANSFER_TIME_T (integer)
Доступно с версии PHP 7.3.0 и cURL 7.61.0
CURLINFO_REDIRECT_TIME_T (integer)
Доступно с версии PHP 7.3.0 и cURL 7.61.0
CURLINFO_STARTTRANSFER_TIME_T (integer)
Доступно с версии PHP 7.3.0 и cURL 7.61.0
CURLINFO_TOTAL_TIME_T (integer)
Доступно с версии PHP 7.3.0 и cURL 7.61.0
CURL_LOCK_DATA_CONNECT (integer)
Доступно с версии PHP 7.3.0 и cURL 7.10.0
CURL_LOCK_DATA_PSL (integer)
Доступно с версии PHP 7.3.0 и cURL 7.61.0
CURLOPT_DISALLOW_USERNAME_IN_URL (integer)
Доступно с версии PHP 7.3.0 и cURL 7.61.0
CURLOPT_DNS_SHUFFLE_ADDRESSES (integer)
Доступно с версии PHP 7.3.0 и cURL 7.60.0
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS (integer)
Доступно с версии PHP 7.3.0 и cURL 7.59.0
CURLOPT_HAPROXYPROTOCOL (integer)
Доступно с версии PHP 7.3.0 и cURL 7.60.0
CURLOPT_PROXY_TLS13_CIPHERS (integer)
Доступно с версии PHP 7.3.0 и cURL 7.61.0
CURLOPT_SSH_COMPRESSION (integer)
Доступно с версии PHP 7.3.0 и cURL 7.56.0
CURLOPT_TIMEVALUE_LARGE (integer)
Доступно с версии PHP 7.3.0 и cURL 7.59.0
CURLOPT_TLS13_CIPHERS (integer)
Доступно с версии PHP 7.3.0 и cURL 7.61.0
CURLSSH_AUTH_GSSAPI (integer)
Доступно с версии PHP 7.3.0 и cURL 7.58.0
CURLOPT_HTTP09_ALLOWED (integer)
Доступно с версии PHP 7.3.15 и 7.4.3, соответственно, и cURL 7.64.0


  • « Предопределенные константы
  • Простой пример использования curl »
  • PHP Manual
  • cURL
  • Примеры

Примеры

Содержание

  • Простой пример использования curl


Простой пример использования curl

Как только вы собрали PHP с поддержкой cURL уже можно использовать функции cURL. Работа с 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);
if(curl_error($ch)) {
    fwrite($fp, curl_error($ch));
}
curl_close($ch);
fclose($fp);
?>


Функции cURL

Содержание

  • curl_close — Завершает сеанс cURL
  • curl_copy_handle — Копирует дескриптор cURL вместе со всеми его настройками
  • curl_errno — Возвращает код последней ошибки
  • curl_error — Возвращает строку с описанием последней ошибки текущего сеанса
  • curl_escape — Кодирует заданную строку как URL
  • curl_exec — Выполняет запрос cURL
  • curl_file_create — Создает объект CURLFile
  • curl_getinfo — Возвращает информацию об определенной операции
  • curl_init — Инициализирует сеанс cURL
  • curl_multi_add_handle — Добавляет обычный cURL-дескриптор к набору cURL-дескрипторов
  • curl_multi_close — Закрывает набор cURL-дескрипторов
  • curl_multi_errno — Возвращает код последней ошибки множественного 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_multi соединении
  • curl_multi_setopt — Установить опции для множественного дескриптора cURL
  • curl_multi_strerror — Возвращает строку, описывающую ошибку
  • curl_pause — Приостановить и возобновить соединение
  • curl_reset — Сбросить все настройки обработчика сессии libcurl
  • curl_setopt_array — Устанавливает несколько параметров для сеанса cURL
  • curl_setopt — Устанавливает параметр для сеанса CURL
  • curl_share_close — Закрыть разделяемый обработчик cURL
  • curl_share_errno — Возвращает код последней ошибки разделяемого обработчика curl
  • curl_share_init — Инициализация разделяемого обработчика cURL
  • curl_share_setopt — Установить опции разделяемого обработчика cURL
  • curl_share_strerror — Возвращает описание для заданного кода ошибки
  • curl_strerror — Получить текстовое описание для кода ошибки
  • curl_unescape — Декодирует закодированную URL-строку
  • curl_version — Возвращает версию cURL


Завершает сеанс cURL

  • « Функции cURL
  • curl_copy_handle »
  • PHP Manual
  • Функции cURL
  • Завершает сеанс cURL

curl_close

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_close — Завершает сеанс cURL

Описание

curl_close ( resource $ch ) : void

Завершает сеанс cURL и освобождает все ресурсы. Дескриптор ch также уничтожается.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Инициализация сеанса cURL и загрузка веб-страницы

<?php
// создание нового ресурса cURL
$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
  • curl_multi_close() - Закрывает набор cURL-дескрипторов


Копирует дескриптор cURL вместе со всеми его настройками

  • « curl_close
  • curl_errno »
  • PHP Manual
  • Функции cURL
  • Копирует дескриптор cURL вместе со всеми его настройками

curl_copy_handle

(PHP 5, PHP 7)

curl_copy_handle — Копирует дескриптор cURL вместе со всеми его настройками

Описание

curl_copy_handle ( resource $ch ) : resource

Копирует дескриптор cURL, сохраняя его настройки.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает новый дескриптор cURL.

Примеры

Пример #1 Копирование дескриптора cURL

<?php
// создание нового ресурса cURL
$ch = curl_init();

// установка URL и других соответствующих параметров
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/');
curl_setopt($ch, CURLOPT_HEADER, 0);

// копирование дескриптора
$ch2 = curl_copy_handle($ch);

// загрузка URL (http://www.example.com/) и ее передача в браузер
curl_exec($ch2);

// закрытие ресурсов cURL и освобождение системных ресурсов
curl_close($ch2);
curl_close($ch);
?>


Возвращает код последней ошибки

  • « curl_copy_handle
  • curl_error »
  • PHP Manual
  • Функции cURL
  • Возвращает код последней ошибки

curl_errno

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

curl_errno — Возвращает код последней ошибки

Описание

curl_errno ( resource $ch ) : int

Возвращает код ошибки последней операции cURL.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает номер ошибки или 0 (ноль), если ошибки не произошло.

Примеры

Пример #1 Пример использования curl_errno()

<?php
// Создаем дескриптор curl к несуществующему адресу
$ch = curl_init('http://404.php.net/');

// Запускаем
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);

// Проверяем наличие ошибки
if(curl_errno($ch))
{
    echo 'Ошибка curl: ' . curl_error($ch);
}

// Закрываем дескриптор
curl_close($ch);
?>

Смотрите также

  • curl_error() - Возвращает строку с описанием последней ошибки текущего сеанса
  • » Коды ошибок cURL


Возвращает строку с описанием последней ошибки текущего сеанса

  • « curl_errno
  • curl_escape »
  • PHP Manual
  • Функции cURL
  • Возвращает строку с описанием последней ошибки текущего сеанса

curl_error

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

curl_error — Возвращает строку с описанием последней ошибки текущего сеанса

Описание

curl_error ( resource $ch ) : string

Возвращает понятное сообщение об ошибке для последней операции cURL.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает сообщение об ошибке или '' (пустую строку), если ошибки не произошло.

Примеры

Пример #1 Пример использования curl_error()

<?php
// Создаем дескриптор curl к несуществующему адресу
$ch = curl_init('http://404.php.net/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

if(curl_exec($ch) === false)
{
    echo 'Ошибка curl: ' . curl_error($ch);
}
else
{
    echo 'Операция завершена без каких-либо ошибок';
}

// Закрываем дескриптор
curl_close($ch);
?>

Смотрите также

  • curl_errno() - Возвращает код последней ошибки
  • » Коды ошибок cURL


Кодирует заданную строку как URL

  • « curl_error
  • curl_exec »
  • PHP Manual
  • Функции cURL
  • Кодирует заданную строку как URL

curl_escape

(PHP 5 >= 5.5.0, PHP 7)

curl_escape — Кодирует заданную строку как URL

Описание

curl_escape ( resource $ch , string $str ) : string

Кодирует строку согласно » RFC 3986.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

str

Строка для кодирования.

Возвращаемые значения

Возвращает экранированную строку или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования curl_escape()

<?php
// Создаем обработчик curl
$ch = curl_init();

// Экранируем строку, которую хотим передать методом GET
$location = curl_escape($ch, 'Hofbrauhaus / Munchen');
// Результат: Hofbr%C3%A4uhaus%20%2F%20M%C3%BCnchen

// Собираем URL по частям
$url = "http://example.com/add_location.php?location={$location}";
// Результат: http://example.com/add_location.php?location=Hofbr%C3%A4uhaus%20%2F%20M%C3%BCnchen

// Посылаем запрос HTTP и закрываем обработчик
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);
?>

Смотрите также

  • curl_unescape() - Декодирует закодированную URL-строку
  • urlencode() - URL-кодирование строки
  • rawurlencode() - URL-кодирование строки согласно RFC 3986
  • » RFC 3986


Выполняет запрос cURL

  • « curl_escape
  • curl_file_create »
  • PHP Manual
  • Функции cURL
  • Выполняет запрос cURL

curl_exec

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_exec — Выполняет запрос cURL

Описание

curl_exec ( resource $ch ) : mixed

Выполняет запрос cURL.

Эта функция должна вызываться после инициализации сеанса и установки всех необходимых параметров.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Однако, если установлена опция CURLOPT_RETURNTRANSFER, при успешном завершении будет возвращен результат, а при неудаче - FALSE.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Замечание:

Обратите внимание, что коды состояния ответа, указывающие на ошибки (например, 404 Not found), не рассматриваются как неудача. Функция curl_getinfo() может использоваться для проверки таких ошибок.

Примеры

Пример #1 Загрузка веб-страницы

<?php
// создание нового cURL ресурса
$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_exec() - Запускает подсоединения текущего дескриптора cURL


Создает объект CURLFile

  • « curl_exec
  • curl_getinfo »
  • PHP Manual
  • Функции cURL
  • Создает объект CURLFile

curl_file_create

(PHP 5 >= 5.5.0, PHP 7)

curl_file_create — Создает объект CURLFile

Описание

Эта функция является псевдонимом: CURLFile::__construct()


Возвращает информацию об определенной операции

  • « curl_file_create
  • curl_init »
  • PHP Manual
  • Функции cURL
  • Возвращает информацию об определенной операции

curl_getinfo

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

curl_getinfo — Возвращает информацию об определенной операции

Описание

curl_getinfo ( resource $ch [, int $opt ] ) : mixed

Возвращает информацию о последней операции.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

opt

Одна из перечисленных констант:

  • CURLINFO_EFFECTIVE_URL - Последний использованный URL
  • CURLINFO_HTTP_CODE - Последний код ответа. Начиная с PHP 5.5.0 и cURL 7.10.8, это устаревший псевдоним CURLINFO_RESPONSE_CODE
  • CURLINFO_FILETIME - Удаленная (серверная) дата загруженного документа, если включена опция CURLOPT_FILETIME; если получено -1, значит это время неизвестно
  • CURLINFO_TOTAL_TIME - Общее время выполнения транзакции в секундах последней передачи
  • CURLINFO_NAMELOOKUP_TIME - Время разрешения имени сервера в секундах
  • CURLINFO_CONNECT_TIME - Время в секундах, затраченное на установку соединения
  • CURLINFO_PRETRANSFER_TIME - Время в секундах, прошедшее от начала операции до готовности к фактической передаче данных
  • CURLINFO_STARTTRANSFER_TIME - Время в секундах до передачи первого байта данных
  • CURLINFO_REDIRECT_COUNT - Число перенаправлений с включенной опцией CURLOPT_FOLLOWLOCATION
  • CURLINFO_REDIRECT_TIME - Общее время в секундах, затраченное на перенаправления до начала последней транзакции с включенной опцией CURLOPT_FOLLOWLOCATION
  • CURLINFO_REDIRECT_URL - При отключенной опции CURLOPT_FOLLOWLOCATION: URL перенаправления, найденный в прошлой итерации, который необходимо запрашивать вручную. Если опция CURLOPT_FOLLOWLOCATION включена: пустое значение. URL перенаправления в этом случае доступен в CURLINFO_EFFECTIVE_URL
  • CURLINFO_PRIMARY_IP - IP-адрес последнего соединения
  • CURLINFO_PRIMARY_PORT - Порт получателя последнего соединения
  • CURLINFO_LOCAL_IP - Локальный (исходящий) IP адрес последнего соединения
  • CURLINFO_LOCAL_PORT - Локальный (исходящий) порт последнего соединения
  • CURLINFO_SIZE_UPLOAD - Общее количество байт при закачке
  • CURLINFO_SIZE_DOWNLOAD - Общее количество байт при загрузке
  • CURLINFO_SPEED_DOWNLOAD - Средняя скорость загрузки
  • CURLINFO_SPEED_UPLOAD - Средняя скорость закачки
  • CURLINFO_HEADER_SIZE - Суммарный размер всех полученных заголовков
  • CURLINFO_HEADER_OUT - Посылаемая строка запроса. Для работы этого параметра, добавьте опцию CURLINFO_HEADER_OUT к дескриптору с помощью вызова curl_setopt()
  • 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, то сервер не послал правильный заголовок Content-Type:
  • CURLINFO_PRIVATE - Внутренние данные, связанные с данным cURL-обработчиком, ранее установленные с помощью опции CURLOPT_PRIVATE в функции curl_setopt()
  • CURLINFO_RESPONSE_CODE - Последний код возврата
  • CURLINFO_HTTP_CONNECTCODE - Код ответа операции CONNECT
  • CURLINFO_HTTPAUTH_AVAIL - Битовая маска, показывающая возможные методы аутентификации, доступные при предыдущем ответе
  • CURLINFO_PROXYAUTH_AVAIL - Битовая маска, показывающая возможные методы аутентификации на прокси, доступные при предыдущем ответе
  • CURLINFO_OS_ERRNO - Номер ошибки при попытке соединения. Код может различаться в зависимости от системы и ОС
  • CURLINFO_NUM_CONNECTS - Количество соединений, совершенных curl для обеспечения предыдущей передачи
  • CURLINFO_SSL_ENGINES - Поддержка OpenSSL
  • CURLINFO_COOKIELIST - Все известные куки
  • CURLINFO_FTP_ENTRY_PATH - Путь входа на FTP-сервер
  • CURLINFO_APPCONNECT_TIME - Время в секундах от начала и до установления SSL/SSH connect/handshake с удаленным хостом
  • CURLINFO_CERTINFO - связка ключей TLS
  • CURLINFO_CONDITION_UNMET - информация о неудовлетворенных временных условиях
  • CURLINFO_RTSP_CLIENT_CSEQ - Следующий RTSP клиентского CSeq
  • CURLINFO_RTSP_CSEQ_RECV - Недавно полученный CSeq
  • CURLINFO_RTSP_SERVER_CSEQ - Следующий RTSP серверного CSeq
  • CURLINFO_RTSP_SESSION_ID - ID сессии RTSP
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD_T - Content-length загрузки. Это значение считывается из поля Content-Type:. -1 если размер не известен
  • CURLINFO_CONTENT_LENGTH_UPLOAD_T - Указанный размер загрузки. -1 если размер не известен
  • CURLINFO_HTTP_VERSION - Версия, использованная в последнем HTTP-соединении. Возвращаемое значение будет одной из определенных констант CURL_HTTP_VERSION_* или 0, если версия не может быть определена
  • CURLINFO_PROTOCOL - Протокол, использованный в последнем HTTP-соединении. Возвращаемое значение будет точно одним из значений CURLPROTO_*
  • CURLINFO_PROXY_SSL_VERIFYRESULT - Результат проверки сертификата, который был запрошен (с использованием параметра CURLOPT_PROXY_SSL_VERIFYPEER). Используется только для HTTPS-прокси
  • CURLINFO_SCHEME - Схема URL, используемая для самого последнего соединения
  • CURLINFO_SIZE_DOWNLOAD_T - Общее количество скачанных байтов. Номер предназначен только для последней передачи и будет сбрасываться для каждой новой передачи.
  • CURLINFO_SIZE_UPLOAD_T - Общее количество загруженных байтов
  • CURLINFO_SPEED_DOWNLOAD_T - Средняя скорость скачивания в байтах/секунду, измеренная для полного скачивания
  • CURLINFO_SPEED_UPLOAD_T - Средняя скорость загрузки в байтах/секунду, измеренная для полной загрузки
  • CURLINFO_APPCONNECT_TIME_T - Время в микросекундах, которое прошло с самого начала до тех пор, пока соединение/рукопожатие SSL/SSH не было завершено
  • CURLINFO_CONNECT_TIME_T - Общее время, затрачиваемое в микросекундах с начала до момента подключения к удаленному хосту (или прокси-серверу)
  • CURLINFO_FILETIME_T - Удаленное время извлеченного документа (как метка времени Unix), альтернатива CURLINFO_FILETIME, чтобы разрешить системам с 32-битными long-переменными извлекать даты вне диапазона 32-битных временных меток
  • CURLINFO_NAMELOOKUP_TIME_T -в Время в микросекундах от начала до разрешения имени
  • CURLINFO_PRETRANSFER_TIME_T - Время в микросекундах, затраченное с самого начала до начала передачи файла
  • CURLINFO_REDIRECT_TIME_T - Общее время в микросекундах, которое потребовалось для всех шагов перенаправления, включая поиск имени, подключение, предварительный перенос и передачу до запуска окончательной транзакции
  • CURLINFO_STARTTRANSFER_TIME_T - Время в микросекундах, которое прошло с начала до получения первого байта
  • CURLINFO_TOTAL_TIME_T - Общее время в микросекундах для предыдущей передачи, включая разрешение имен, TCP-соединение и т. д.

Возвращаемые значения

Если параметр opt указан, то возвращается его значение. Иначе возвращается ассоциативный массив со следующими элементами (которые соответствуют значениям аргумента opt) или FALSE в случае ошибки:

  • "url"
  • "content_type"
  • "http_code"
  • "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"
  • "certinfo"
  • "primary_ip"
  • "primary_port"
  • "local_ip"
  • "local_port"
  • "redirect_url"
  • "request_header" (возвращается только при установленной опции CURLINFO_HEADER_OUT с помощью вызова curl_setopt() до выполнения запроса)
Учтите, что внутренние данные не добавляются в ассоциативный массив и должны получаться отдельно с помощью опции CURLINFO_PRIVATE.

Список изменений

Версия | Описание
7.3.0 | Добавлены CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, CURLINFO_CONTENT_LENGTH_UPLOAD_T, CURLINFO_HTTP_VERSION, CURLINFO_PROTOCOL, CURLINFO_PROXY_SSL_VERIFYRESULT, CURLINFO_SCHEME, CURLINFO_SIZE_DOWNLOAD_T, CURLINFO_SIZE_UPLOAD_T, CURLINFO_SPEED_DOWNLOAD_T, CURLINFO_SPEED_UPLOAD_T, CURLINFO_APPCONNECT_TIME_T, CURLINFO_CONNECT_TIME_T, CURLINFO_FILETIME_T, CURLINFO_NAMELOOKUP_TIME_T, CURLINFO_PRETRANSFER_TIME_T, CURLINFO_REDIRECT_TIME_T, CURLINFO_STARTTRANSFER_TIME_T, CURLINFO_TOTAL_TIME_T.
5.5.0 | Добавлены CURLINFO_RESPONSE_CODE, CURLINFO_HTTP_CONNECTCODE, CURLINFO_HTTPAUTH_AVAIL, CURLINFO_PROXYAUTH_AVAIL, CURLINFO_OS_ERRNO, CURLINFO_NUM_CONNECTS, CURLINFO_SSL_ENGINES, CURLINFO_COOKIELIST, CURLINFO_FTP_ENTRY_PATH, CURLINFO_APPCONNECT_TIME, CURLINFO_CONDITION_UNMET, CURLINFO_RTSP_CLIENT_CSEQ, CURLINFO_RTSP_CSEQ_RECV, CURLINFO_RTSP_SERVER_CSEQ и CURLINFO_RTSP_SESSION_ID.
5.4.7 | Добавлены CURLINFO_PRIMARY_IP, CURLINFO_PRIMARY_PORT, CURLINFO_LOCAL_IP и CURLINFO_LOCAL_PORT.
5.3.7 | Добавлена CURLINFO_REDIRECT_URL.
5.3.0 | Добавлена CURLINFO_CERTINFO.
5.2.4 | Добавлена CURLINFO_PRIVATE.
5.1.3 | Добавлена CURLINFO_HEADER_OUT.

Примеры

Пример #1 Пример использования curl_getinfo()

<?php
// Создаем дескриптор cURL
$ch = curl_init('http://www.example.com/');

// Запускаем
curl_exec($ch);

// Проверяем наличие ошибок
if (!curl_errno($ch)) {
  $info = curl_getinfo($ch);
  echo 'Прошло ', $info['total_time'], ' секунд во время запроса к ', $info['url'], "\n";
}

// Закрываем дескриптор
curl_close($ch);
?>

Пример #2 Пример использования curl_getinfo() с параметром opt

<?php
// Создаем дескриптор cURL
$ch = curl_init('http://www.example.com/');

// Запускаем
curl_exec($ch);

// Проверяем наличие ошибок
if (!curl_errno($ch)) {
  switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
    case 200:  # OK
      break;
    default:
      echo 'Неожиданный код HTTP: ', $http_code, "\n";
  }
}

// Закрываем дескриптор
curl_close($ch);
?>

Примечания

Замечание:

Информация, собранная этой функцией, будет сохранена при дальнейшем использовании дескриптора. Это означает, что если статистика не будет перезаписана самой функцией, будет возвращаться информация по предыдущему запросу.


Инициализирует сеанс cURL

  • « curl_getinfo
  • curl_multi_add_handle »
  • PHP Manual
  • Функции cURL
  • Инициализирует сеанс cURL

curl_init

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_init — Инициализирует сеанс cURL

Описание

curl_init ([ string $url = NULL ] ) : resource

Инициализирует новый сеанс cURL и возвращает дескриптор, который используется с функциями curl_setopt(), curl_exec() и curl_close().

Список параметров

url

Если указан, опция CURLOPT_URL будет автоматически установлена в значение этого аргумента. Вы можете вручную установить эту опцию с помощью функции curl_setopt().

Замечание:

Протокол file становится недоступным в cURL, если задана опция open_basedir.

Возвращаемые значения

Возвращает дескриптор cURL при удаче, и FALSE в случае ошибки.

Примеры

Пример #1 Инициализация нового сеанса cURL и загрузка веб-страницы

<?php
// создание нового ресурса cURL
$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
  • curl_multi_init() - Создает набор cURL-дескрипторов


Добавляет обычный cURL-дескриптор к набору cURL-дескрипторов

  • « curl_init
  • curl_multi_close »
  • PHP Manual
  • Функции cURL
  • Добавляет обычный cURL-дескриптор к набору cURL-дескрипторов

curl_multi_add_handle

(PHP 5, PHP 7)

curl_multi_add_handle — Добавляет обычный cURL-дескриптор к набору cURL-дескрипторов

Описание

curl_multi_add_handle ( resource $mh , resource $ch ) : int

Добавляет дескриптор ch к набору дескрипторов mh

Список параметров

mh

Мультидескриптор cURL, полученный из curl_multi_init().

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает 0 при успехе, или один из кодов ошибок CURLM_XXX.

Примеры

Пример #1 Пример использования curl_multi_add_handle()

Этот пример создаст два дескриптора cURL, добавит их в набор дескрипторов, а затем запустит их асинхронно.

<?php
// создаем оба ресурса cURL
$ch1 = curl_init();
$ch2 = curl_init();

// устанавливаем URL и другие соответствующие опции
curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

//создаем набор дескрипторов cURL
$mh = curl_multi_init();

//добавляем два дескриптора
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

//запускаем множественный обработчик
do {
    $status = curl_multi_exec($mh, $active);
    if ($active) {
        curl_multi_select($mh);
    }
} while ($active && $status == CURLM_OK);

//закрываем все дескрипторы
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
?>

Смотрите также

  • curl_multi_remove_handle() - Удаляет cURL дескриптор из набора cURL дескрипторов
  • curl_multi_init() - Создает набор cURL-дескрипторов
  • curl_init() - Инициализирует сеанс cURL


Закрывает набор cURL-дескрипторов

  • « curl_multi_add_handle
  • curl_multi_errno »
  • PHP Manual
  • Функции cURL
  • Закрывает набор cURL-дескрипторов

curl_multi_close

(PHP 5, PHP 7)

curl_multi_close — Закрывает набор cURL-дескрипторов

Описание

curl_multi_close ( resource $mh ) : void

Закрывает набор дескрипторов cURL.

Список параметров

mh

Мультидескриптор cURL, полученный из curl_multi_init().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования curl_multi_close()

Этот пример создаст два дескриптора cURL, добавит их в набор дескрипторов, а затем запустит их асинхронно.

<?php
// создаем оба ресурса cURL
$ch1 = curl_init();
$ch2 = curl_init();

// устанавливаем URL и другие соответствующие опции
curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

//создаем набор дескрипторов cURL
$mh = curl_multi_init();

//добавляем два дескриптора
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

//запускаем множественный обработчик
do {
    $status = curl_multi_exec($mh, $active);
    if ($active) {
        curl_multi_select($mh);
    }
} while ($active && $status == CURLM_OK);

//закрываем все дескрипторы
curl_multi_remove_handle($mh, $ch1);
curl_close($ch1);
curl_multi_remove_handle($mh, $ch2);
curl_close($ch2);
curl_multi_close($mh);

?>

Смотрите также

  • curl_multi_init() - Создает набор cURL-дескрипторов
  • curl_close() - Завершает сеанс cURL


Возвращает код последней ошибки множественного curl

  • « curl_multi_close
  • curl_multi_exec »
  • PHP Manual
  • Функции cURL
  • Возвращает код последней ошибки множественного curl

curl_multi_errno

(PHP 7 >= 7.1.0)

curl_multi_errno — Возвращает код последней ошибки множественного curl

Описание

curl_multi_errno ( resource $mh ) : int

Возвращает код последней ошибки множественного curl в виде целого числа.

Список параметров

mh

Мультидескриптор cURL, полученный из curl_multi_init().

Возвращаемые значения

Возвращает код последней ошибки множественного curl в виде целого числа, или FALSE в случае возникновения ошибки.

Смотрите также

  • curl_errno() - Возвращает код последней ошибки


Запускает подсоединения текущего дескриптора cURL

  • « curl_multi_errno
  • curl_multi_getcontent »
  • PHP Manual
  • Функции cURL
  • Запускает подсоединения текущего дескриптора cURL

curl_multi_exec

(PHP 5, PHP 7)

curl_multi_exec — Запускает подсоединения текущего дескриптора cURL

Описание

curl_multi_exec ( resource $mh , int &$still_running ) : int

Обрабатывает каждый дескриптор в стеке. Этот метод может быть вызван вне зависимости от необходимости дескриптора читать или записывать данные.

Список параметров

mh

Мультидескриптор cURL, полученный из curl_multi_init().

still_running

Ссылка на флаг, указывающий, идут ли еще какие-либо действия.

Возвращаемые значения

Код cURL, указанный в предопределенных константах cURL.

Замечание:

Здесь возвращаются ошибки, относящиеся только ко всему стеку. Проблемы все еще могут произойти на индивидуальных запросах, даже когда эта функция возвращает CURLM_OK.

Примеры

Пример #1 Пример использования curl_multi_exec()

Этот пример создаст два дескриптора cURL, добавит их в набор дескрипторов, а затем запустит их асинхронно.

<?php
// создаем оба ресурса cURL
$ch1 = curl_init();
$ch2 = curl_init();

// устанавливаем URL и другие соответствующие опции
curl_setopt($ch1, CURLOPT_URL, "http://example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

//создаем набор дескрипторов cURL
$mh = curl_multi_init();

//добавляем два дескриптора
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

//запускаем множественный обработчик
do {
    $status = curl_multi_exec($mh, $active);
    if ($active) {
        // Ждем какое-то время для оживления активности
        curl_multi_select($mh);
    }
} while ($active && $status == CURLM_OK);

//закрываем дескрипторы
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

?>

Смотрите также

  • curl_multi_init() - Создает набор cURL-дескрипторов
  • curl_multi_select() - Ждет активности на любом curl_multi соединении
  • curl_exec() - Выполняет запрос cURL


Возвращает результат операции, если была установлена опция CURLOPT_RETURNTRANSFER

  • « curl_multi_exec
  • curl_multi_info_read »
  • PHP Manual
  • Функции cURL
  • Возвращает результат операции, если была установлена опция CURLOPT_RETURNTRANSFER

curl_multi_getcontent

(PHP 5, PHP 7)

curl_multi_getcontent — Возвращает результат операции, если была установлена опция CURLOPT_RETURNTRANSFER

Описание

curl_multi_getcontent ( resource $ch ) : string

Если для определенного дескриптора была установлена опция CURLOPT_RETURNTRANSFER, то эта функция вернет содержимое этого cURL-дескриптора в виде строки.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает содержимое cURL-дескриптора, если была использована опция CURLOPT_RETURNTRANSFER.

Смотрите также

  • curl_multi_init() - Создает набор cURL-дескрипторов


Возвращает информацию о текущих операциях

  • « curl_multi_getcontent
  • curl_multi_init »
  • PHP Manual
  • Функции cURL
  • Возвращает информацию о текущих операциях

curl_multi_info_read

(PHP 5, PHP 7)

curl_multi_info_read — Возвращает информацию о текущих операциях

Описание

curl_multi_info_read ( resource $mh [, int &$msgs_in_queue = NULL ] ) : array

Опрашивает набор дескрипторов о наличии сообщений или информации от индивидуальных передач. Сообщения могут включать такую информацию как код ошибки передачи или просто факт завершения передачи.

Повторяющиеся вызовы этой функции будут каждый раз возвращать новый результат, пока не будет возвращено FALSE в качестве сигнала окончания сообщений. Целое число, содержащееся в msgs_in_queue, указывает количество оставшихся сообщений после вызова данной функции.

Внимание

Данные, на которые указывает возвращаемый ресурс, будут затерты вызовом curl_multi_remove_handle().

Список параметров

mh

Мультидескриптор cURL, полученный из curl_multi_init().

msgs_in_queue

Количество оставшихся сообщений в очереди

Возвращаемые значения

В случае успеха возвращает ассоциативный массив сообщений, или FALSE в случае неудачи.

Содержимое возвращаемого массива
Ключ: | Значение:
msg | Константа CURLMSG_DONE. Остальные возвращаемые значения пока недоступны.
result | Одна из констант CURLE_*. Если все хорошо, результатом будет константа CURLE_OK.
handle | Ресурс типа curl, указывающий на дескриптор, к которому он относится.

Примеры

Пример #1 Пример использования curl_multi_info_read()

<?php

$urls = array(
   "http://www.cnn.com/",
   "http://www.bbc.co.uk/",
   "http://www.yahoo.com/"
);

$mh = curl_multi_init();

foreach ($urls as $i => $url) {
    $conn[$i] = curl_init($url);
    curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1);
    curl_multi_add_handle($mh, $conn[$i]);
}

do {
    $status = curl_multi_exec($mh, $active);
    if ($active) {
        curl_multi_select($mh);
    }
    $info = curl_multi_info_read($mh);
    if (false !== $info) {
        var_dump($info);
    }
} while ($active && $status == CURLM_OK);

foreach ($urls as $i => $url) {
    $res[$i] = curl_multi_getcontent($conn[$i]);
    curl_close($conn[$i]);
}

var_dump(curl_multi_info_read($mh));

?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(5) of type (curl)
}
array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(7) of type (curl)
}
array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(6) of type (curl)
}
bool(false)

Список изменений

Версия | Описание
5.2.0 | Добавлен параметр msgs_in_queue.

Смотрите также

  • curl_multi_init() - Создает набор cURL-дескрипторов


Создает набор cURL-дескрипторов

  • « curl_multi_info_read
  • curl_multi_remove_handle »
  • PHP Manual
  • Функции cURL
  • Создает набор cURL-дескрипторов

curl_multi_init

(PHP 5, PHP 7)

curl_multi_init — Создает набор cURL-дескрипторов

Описание

curl_multi_init ( void ) : resource

Позволяет асинхронную обработку множества cURL-дескрипторов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает набор cURL-дескрипторов в случае успеха, или FALSE в случае неудачи.

Примеры

Пример #1 Пример использования curl_multi_init()

Этот пример создаст два дескриптора cURL, добавит их в набор дескрипторов, а затем запустит их асинхронно.

<?php
// создаем оба ресурса cURL
$ch1 = curl_init();
$ch2 = curl_init();

// устанавливаем URL и другие соответствующие опции
curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

//создаем набор дескрипторов cURL
$mh = curl_multi_init();

//добавляем два дескриптора
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

//запускаем множественный обработчик
do {
    $status = curl_multi_exec($mh, $active);
    if ($active) {
        curl_multi_select($mh);
    }
} while ($active && $status == CURLM_OK);

//закрываем все дескрипторы
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

?>

Смотрите также

  • curl_init() - Инициализирует сеанс cURL
  • curl_multi_close() - Закрывает набор cURL-дескрипторов


Удаляет cURL дескриптор из набора cURL дескрипторов

  • « curl_multi_init
  • curl_multi_select »
  • PHP Manual
  • Функции cURL
  • Удаляет cURL дескриптор из набора cURL дескрипторов

curl_multi_remove_handle

(PHP 5, PHP 7)

curl_multi_remove_handle — Удаляет cURL дескриптор из набора cURL дескрипторов

Описание

curl_multi_remove_handle ( resource $mh , resource $ch ) : int

Удаляет указанный дескриптор ch из указанного набора дескрипторов mh. После того, как дескриптор ch удален, его можно снова совершенно легально использовать в функции curl_exec(). Удаление дескриптора ch во время использования также остановит текущую передачу, идущую на этом дескрипторе.

Список параметров

mh

Мультидескриптор cURL, полученный из curl_multi_init().

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

В случае успеха возвращает 0 или одну из констант CURLM_XXX, где XXX - код ошибки.

Смотрите также

  • curl_init() - Инициализирует сеанс cURL
  • curl_multi_init() - Создает набор cURL-дескрипторов
  • curl_multi_add_handle() - Добавляет обычный cURL-дескриптор к набору cURL-дескрипторов


Ждет активности на любом curl_multi соединении

  • « curl_multi_remove_handle
  • curl_multi_setopt »
  • PHP Manual
  • Функции cURL
  • Ждет активности на любом curl_multi соединении

curl_multi_select

(PHP 5, PHP 7)

curl_multi_select — Ждет активности на любом curl_multi соединении

Описание

curl_multi_select ( resource $mh [, float $timeout = 1.0 ] ) : int

Блокирует выполнение скрипта, пока какое-либо из соединений curl_multi не станет активным.

Список параметров

mh

Мультидескриптор cURL, полученный из curl_multi_init().

timeout

Время в секундах для ожидания ответа.

Возвращаемые значения

В случае успеха возвращает количество дескрипторов, содержащихся в наборах дескрипторов. Может вернуть 0, если не было активности ни на одном дескрипторе. В случае неудачи эта функция вернет -1 при ошибке выборки (из нижележащего системного вызова выборки).

Смотрите также

  • curl_multi_init() - Создает набор cURL-дескрипторов


Установить опции для множественного дескриптора cURL

  • « curl_multi_select
  • curl_multi_strerror »
  • PHP Manual
  • Функции cURL
  • Установить опции для множественного дескриптора cURL

curl_multi_setopt

(PHP 5 >= 5.5.0, PHP 7)

curl_multi_setopt — Установить опции для множественного дескриптора cURL

Описание

curl_multi_setopt ( resource $mh , int $option , mixed $value ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

mh

option

Одна из констант CURLMOPT_*.

value

Значение, которое необходимол установить для option.

value должно быть типа int для следующих значений параметра option:

Опция | Установить value в
CURLMOPT_PIPELINING | 1 для включения и 0 для отключения. Разрешает конвейер для множественного дескриптора, что приведет к попытке использовать конвейера HTTP, если это возможно, для передачи с использованием этого дескриптора. Это значит, что если вы добавите второй запрос, который может использовать уже существующее соединение, то он будет передан "по конвейеру" этому соединению. Начиная с cURL 7.43.0 значение является битовой маской и вы можете передать 2 для попытки мультиплицирования новой передачи с помощью существующего соединения HTTP/2, если это возможно. Передача 3 инструктирует cURL запрашивать конвейеризацию и мультиплексирование независимо друг от друга. Начиная с cURL 7.62.0, установка бита конвейера не имеет никакого эффекта. Вместо численных значений вы можете использовать константы CURLPIPE_*, если они доступны.
CURLMOPT_MAXCONNECTS | Задает число максимального количества одновременно открытых соединений, которые libcurl может закешировать. По умолчанию это значение задается как число дескрипторов добавленных через curl_multi_add_handle(), умноженное на 4. Когда кеш заполнится, curl закроет самые старые соединения в кеше, предотвращая увеличение количества открытых соединений.
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE | Задает пороговое значение длины пакета для конвейера в байтах.
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE | Задает пороговое значение размера для "штрафа" конвейера в байтах.
CURLMOPT_MAX_HOST_CONNECTIONS | Величина, определяющая максимальное количество соединений с одним хостом.
CURLMOPT_MAX_PIPELINE_LENGTH | Величина, определяющая максимальное количество запросов в конвеере.
CURLMOPT_MAX_TOTAL_CONNECTIONS | Величина, определяющая максимальное количество одновременно открытых соединений.
CURLMOPT_PUSHFUNCTION Передает callable, который будет зарегистрирован для обработки пушей от сервера и должен иметь следующую сигнатуру:
pushfunction ( resource $parent_ch , resource $pushed_ch , array $headers ) : int
parent_ch

Родительский обработчик cURL (запрос сделанный клиентом).

pushed_ch

Новый обработчик cURL для обработки пушей.

headers

Заголовки ожидаемого пуша.

Функция должна возвращать CURL_PUSH_OK, если может обработать пуш, или CURL_PUSH_DENY, если отклонит его.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.0 | Добавлена константа CURLMOPT_PUSHFUNCTION.
7.0.7 | Добавлены константы CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH и CURLMOPT_MAX_TOTAL_CONNECTIONS.


Возвращает строку, описывающую ошибку

  • « curl_multi_setopt
  • curl_pause »
  • PHP Manual
  • Функции cURL
  • Возвращает строку, описывающую ошибку

curl_multi_strerror

(PHP 5 >= 5.5.0, PHP 7)

curl_multi_strerror — Возвращает строку, описывающую ошибку

Описание

curl_multi_strerror ( int $errornum ) : string

Возвращает текст сообщения об ошибке, соответствующей заданному коду ошибки CURLM.

Список параметров

errornum

Одна и констант » кодов ошибок CURLM.

Возвращаемые значения

Возвращает строку с описанием ошибки и NULL, если переданный код некорректен.

Примеры

Пример #1 Пример использования curl_multi_strerror()

<?php
// Создаем обработчики curl
$ch1 = curl_init("http://example.com"/);
$ch2 = curl_init("http://php.net/");

// Создаем множественный обработчик cURL
$mh = curl_multi_init();

// Добавляем дескрипторы в набор дескрипторов
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);

// Запускаем множественный обработчик
do {
    $status = curl_multi_exec($mh, $active);
    if ($active) {
        curl_multi_select($mh);
    }
} while ($active && $status === CURLM_OK);

// Проверяем на ошибки
if ($status != CURLM_OK) {
    // Выводим ошибку
    echo "ОШИБКА!\n " . curl_multi_strerror($status);
}
?>

Смотрите также

  • curl_strerror() - Получить текстовое описание для кода ошибки
  • » коды ошибок cURL


Приостановить и возобновить соединение

  • « curl_multi_strerror
  • curl_reset »
  • PHP Manual
  • Функции cURL
  • Приостановить и возобновить соединение

curl_pause

(PHP 5 >= 5.5.0, PHP 7)

curl_pause — Приостановить и возобновить соединение

Описание

curl_pause ( resource $ch , int $bitmask ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

bitmask

Одна из констант CURLPAUSE_*.

Возвращаемые значения

Возвращает один из кодов возврата (CURLE_OK если ошибок нет).


Сбросить все настройки обработчика сессии libcurl

  • « curl_pause
  • curl_setopt_array »
  • PHP Manual
  • Функции cURL
  • Сбросить все настройки обработчика сессии libcurl

curl_reset

(PHP 5 >= 5.5.0, PHP 7)

curl_reset — Сбросить все настройки обработчика сессии libcurl

Описание

curl_reset ( resource $ch ) : void

Эта функция переинициализирует все настройки заданного обработчика сессии cURL значениями по умолчанию.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования curl_reset()

<?php
// Создаем обработчик curl
$ch = curl_init();

// Устанавливаем опцию CURLOPT_USERAGENT
curl_setopt($ch, CURLOPT_USERAGENT, "My test user-agent");

// Сбрасываем все установленные опции
curl_reset($ch);

// Посылаем запрос HTTP
curl_setopt($ch, CURLOPT_URL, 'http://example.com/');
curl_exec($ch); // установленный ранее user-agent сброшен

// Закрываем обработчик
curl_close($ch);
?>

Примечания

Замечание:

curl_reset() также сбрасывает URL, заданный в качестве параметра curl_init().

Смотрите также

  • curl_setopt() - Устанавливает параметр для сеанса CURL


Устанавливает несколько параметров для сеанса cURL

  • « curl_reset
  • curl_setopt »
  • PHP Manual
  • Функции cURL
  • Устанавливает несколько параметров для сеанса cURL

curl_setopt_array

(PHP 5 >= 5.1.3, PHP 7)

curl_setopt_array — Устанавливает несколько параметров для сеанса cURL

Описание

curl_setopt_array ( resource $ch , array $options ) : bool

Устанавливает несколько параметров для сеанса cURL. Эта функция полезна при установке большого количества cURL-параметров без необходимости постоянно вызывать curl_setopt().

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

options

Массив (array), определяющий устанавливаемые параметры и их значения. Ключи должны быть корректными константами для функции curl_setopt() или их целочисленными эквивалентами.

Возвращаемые значения

Возвращает TRUE, если все параметры были успешно установлены. Если не удалось успешно установить какой-либо параметр, немедленно возвращается значение FALSE, а последующие параметры в массиве options будут проигнорированы.

Примеры

Пример #1 Инициализация новой сессии cURL и загрузка веб-страницы

<?php
// создание нового ресурса cURL
$ch = curl_init();

// установка URL и других соответствующих параметров
$options = array(CURLOPT_URL => 'http://www.example.com/',
                 CURLOPT_HEADER => false
                );

curl_setopt_array($ch, $options);

// загрузка URL и ее выдача в браузер
curl_exec($ch);

// закрытие ресурса cURL и освобождение системных ресурсов
curl_close($ch);
?>

До версии PHP 5.1.3 вместо этой функции можно было использовать следующий код:

Пример #2 Наша собственная реализация curl_setopt_array()

<?php
if (!function_exists('curl_setopt_array')) {
   function curl_setopt_array(&$ch, $curl_options)
   {
       foreach ($curl_options as $option => $value) {
           if (!curl_setopt($ch, $option, $value)) {
               return false;
           }
       }
       return true;
   }
}
?>

Примечания

Замечание:

Как и при работе с curl_setopt(), передача массива в параметр CURLOPT_POST закодирует все данные с помощью multipart/form-data, тогда как передача URL-кодированной строки будет использовать кодировку application/x-www-form-urlencoded.

Смотрите также

  • curl_setopt() - Устанавливает параметр для сеанса CURL


Устанавливает параметр для сеанса CURL

  • « curl_setopt_array
  • curl_share_close »
  • PHP Manual
  • Функции cURL
  • Устанавливает параметр для сеанса CURL

curl_setopt

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_setopt — Устанавливает параметр для сеанса CURL

Описание

curl_setopt ( resource $ch , int $option , mixed $value ) : bool

Устанавливает параметр для указанного сеанса cURL.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

option

Устанавливаемый параметр CURLOPT_XXX.

value

Значение параметра option.

Для следующих значений параметра option, параметр value должен быть типа bool:

Параметр | Устанавливаемое значение value | Замечания
CURLOPT_AUTOREFERER | TRUE для автоматической установки поля Referer: в запросах, перенаправленных заголовком Location:.
CURLOPT_BINARYTRANSFER | TRUE для возврата необработанного ответа при использовании константы CURLOPT_RETURNTRANSFER. | С PHP 5.1.3 эта опция больше не требуется: необработанный вывод всегда возвращается при использовании опции CURLOPT_RETURNTRANSFER.
CURLOPT_COOKIESESSION | TRUE для указания текущему сеансу начать новую "сессию" cookies. Это заставит libcurl проигнорировать все "сессионные" cookies, которые она должна была бы загрузить, полученные из предыдущей сессии. По умолчанию libcurl всегда сохраняет и загружает все cookies, вне зависимости от того, являются ли они "сессионными" или нет. "Сессионные" cookies - это cookies без срока истечения, которые должны существовать только для текущей "сессии".
CURLOPT_CERTINFO | TRUE для вывода информации о сертификате SSL в поток STDERR при безопасных соединениях. | Добавлена в cURL 7.19.1. Доступна, начиная с версии PHP 5.3.2. Для корректной работы требует включенной опции CURLOPT_VERBOSE.
CURLOPT_CONNECT_ONLY | TRUE сообщает библиотеке, чтобы она провела необходимые аутентификацию прокси и настройку соединения, но не передавала данные. Эта опция реализована для HTTP, SMTP и POP3. | Добавлена в 7.15.2. Доступна с PHP 5.5.0.
CURLOPT_CRLF | TRUE для преобразования концов строк Unix в CRLF.
CURLOPT_DISALLOW_USERNAME_IN_URL | TRUE для запрета URL-адресов, содержащих имя пользователя. Имена пользователей по умолчанию разрешены (0). | Добавлено в cURL 7.61.0. Доступно с PHP 7.3.0.
CURLOPT_DNS_SHUFFLE_ADDRESSES | TRUE для перетасовки порядка всех возвращенных адресов, чтобы они использовались в случайном порядке, когда имя разрешено и возвращается более одного IP-адреса. TRUE to shuffle the order of all returned addresses so that they will be used in a random order, when a name is resolved and more than one IP address is returned. Это может привести к тому, что IPv4 будет использоваться до IPv6 или наоборот. | Добавлено в cURL 7.60.0. Доступно с PHP 7.3.0.
CURLOPT_HAPROXYPROTOCOL | TRUE для отправки заголовка протокола HAProxy PROXY v1 в начале соединения. Действие по умолчанию - не отправлять заголовок. | Добавлено в cURL 7.60.0. Доступно с PHP 7.3.0.
CURLOPT_SSH_COMPRESSION | TRUE для включения встроенного сжатия SSH. Это запрос, а указание; сервер может это и не выполнить. | Добавлено в cURL 7.56.0. Доступно с PHP 7.3.0.
CURLOPT_DNS_USE_GLOBAL_CACHE | TRUE для использования глобального кеша DNS. Этот параметр не является потокобезопасным. Он по умолчанию включен если PHP собран для потоконебезопасного использования (CLI, FCGI, Apache2-Prefork, и т.д.).
CURLOPT_FAILONERROR | TRUE для подробного отчета при неудаче, если полученный HTTP-код больше или равен 400. Поведение по умолчанию возвращает страницу как обычно, игнорируя код.
CURLOPT_SSL_FALSESTART | TRUE для разрешения ложного старта TLS. | Добавлено cURL 7.42.0. Доступно с PHP 7.0.7.
CURLOPT_FILETIME | TRUE для попытки получения даты модификации удаленного документа. Это значение может быть получено с помощью параметра CURLINFO_FILETIME из функции curl_getinfo().
CURLOPT_FOLLOWLOCATION | TRUE для следования любому заголовку "Location: ", отправленному сервером в своем ответе (учтите, что это происходит рекурсивно, PHP будет следовать за всеми посылаемыми заголовками "Location: ", за исключением случая, когда установлена константа CURLOPT_MAXREDIRS).
CURLOPT_FORBID_REUSE | TRUE для принудительного закрытия соединения после завершения его обработки так, чтобы его нельзя было использовать повторно.
CURLOPT_FRESH_CONNECT | TRUE для принудительного использования нового соединения вместо закешированного.
CURLOPT_FTP_USE_EPRT | TRUE для использования EPRT (и LPRT) при активных FTP-загрузках. Используйте FALSE для того, чтобы отключить EPRT и LPRT и использовать только PORT.
CURLOPT_FTP_USE_EPSV | TRUE для первоначальной пробы команды EPSV при FTP-передачах. Если команда не удалась, будет произведен обратный откат к PASV. Установите в FALSE для отключения EPSV.
CURLOPT_FTP_CREATE_MISSING_DIRS | TRUE для создания отсутствующих директорий, если FTP-операция обнаруживает несуществующий путь.
CURLOPT_FTPAPPEND | TRUE для записи в конец удаленного файла, вместо перезаписывания.
CURLOPT_TCP_NODELAY | TRUE для отключения алгоритма Нейгла, который пытается уменьшить количество мелких пакетов в сети. | Доступна с версии PHP 5.2.1 для версий собранных с libcurl 7.11.2 или новее.
CURLOPT_FTPASCII | Псевдоним CURLOPT_TRANSFERTEXT. Используйте его вместо этого.
CURLOPT_FTPLISTONLY | TRUE для возврата только списка имен из FTP-директории.
CURLOPT_HEADER | TRUE для включения заголовков в вывод.
CURLINFO_HEADER_OUT | TRUE для отслеживания строки запроса дескриптора. | Доступен, начиная с версии PHP 5.1.3. Префикс CURLINFO_ используется специально.
CURLOPT_HTTP09_ALLOWED | Определяет разрешить ли ответы HTTP/0.9. По умолчанию FALSE c версии libcurl 7.66.0; ранее по умолчанию было TRUE. | Available since PHP 7.3.15 and 7.4.3, respectively, if built against libcurl >= 7.64.0
CURLOPT_HTTPGET | TRUE для сброса метода HTTP-запроса на метод GET. Так как GET используется по умолчанию, этот параметр необходим только в случае, если метод запроса был ранее изменен.
CURLOPT_HTTPPROXYTUNNEL | TRUE для туннелирования через указанный HTTP-прокси.
CURLOPT_HTTP_CONTENT_DECODING | FALSE для получения необработанного тела HTTP-ответа. | Доступно с PHP 5.5.0, если собран с libcurl >= 7.16.2.
CURLOPT_KEEP_SENDING_ON_ERROR | TRUE для продолжения посылать тело запроса, если возвращаемый HTTP-код равен или больше 300. Действие по умолчанию - остановить отправку и закрыть поток или соединение. Подходит для ручной аутентификации NTLM. Большинству приложений эта опция не нужна. | Доступно с PHP 7.3.0, если собран с libcurl >= 7.51.0.
CURLOPT_MUTE | TRUE для полного отключения сообщений функций cURL. | Удалена в cURL 7.15.5 (Можно использовать опцию CURLOPT_RETURNTRANSFER)
CURLOPT_NETRC | TRUE для считывания файла ~/.netrc, чтобы найти логин и пароль для удаленного сайта, с которым устанавливается соединение.
CURLOPT_NOBODY | TRUE для исключения тела ответа из вывода. Метод запроса устанавливается в HEAD. Смена этого параметра в FALSE не меняет его обратно в GET.
CURLOPT_NOPROGRESS

TRUE для отмены индикатора прогресса при передачах cURL.

Замечание:

PHP автоматически устанавливает этот параметр в TRUE, меняйте его только для отладочных целей.

CURLOPT_NOSIGNAL | TRUE для игнорирования любой функции cURL, посылающей сигналы PHP процессу. Этот параметр включен по умолчанию в многопоточных SAPI для корректной работы параметров тайм-аута. | Добавлен в cURL 7.10.
CURLOPT_PATH_AS_IS | TRUE для игнорирования последовательностей с двумя точками. | Добавлено в cURL 7.42.0. Доступно с PHP 7.0.7.
CURLOPT_PIPEWAIT | TRUE для ожидания конвеера/мультиплексирования. | Добавлено в cURL 7.43.0. Доступно с PHP 7.0.7.
CURLOPT_POST | TRUE для использования обычного HTTP POST. Данный метод POST использует обычный application/x-www-form-urlencoded, обычно используемый в HTML-формах.
CURLOPT_PUT | TRUE для загрузки файла методом HTTP PUT. Используемый файл должен быть установлен с помощью параметров CURLOPT_INFILE и CURLOPT_INFILESIZE.
CURLOPT_RETURNTRANSFER | TRUE для возврата результата передачи в качестве строки из curl_exec() вместо прямого вывода в браузер.
CURLOPT_SAFE_UPLOAD | TRUE для отключения поддержки префикса @ для загружаемых файлов в CURLOPT_POSTFIELDS, который означает, что значения, переданные с @ могут безопасно передаваться в виде полей. Вместо префикса можно использовать опцию CURLFile. | Добавлена в PHP 5.5.0 со значением по умолчанию FALSE. В PHP 5.6.0 стала по умолчанию равна TRUE. В PHP 7 эта опция удалена. Для загрузки файлов необходимо использовать интерфейс CURLFile.
CURLOPT_SASL_IR | TRUE для разрешения отправки инициирующего ответа в первом пакете. | Добавлено в cURL 7.31.10. Доступно с PHP 7.0.7.
CURLOPT_SSL_ENABLE_ALPN | FALSE для отключения ALPN в SSL handshake (если на бекенде SSL libcurl собран с ее поддержкой), это можно использовать при соединении http2. | Добавлено в cURL 7.36.0. Доступно с PHP 7.0.7.
CURLOPT_SSL_ENABLE_NPN | FALSE для отключения ALPN в SSL handshake (если на бэкенде SSL libcurl собран с ее поддержкой), это можно использовать при соединении http2. | Добавлено в cURL 7.36.0. Доступно с PHP 7.0.7.
CURLOPT_SSL_VERIFYPEER | FALSE для остановки cURL от проверки сертификата узла сети. Альтернативные сертификаты дл проверки могут быть указаны с помощью параметра CURLOPT_CAINFO, или директории с сертификатами, указываемой параметром CURLOPT_CAPATH. | По умолчанию равно TRUE, начиная с версии cURL 7.10. Дистрибутив по умолчанию устанавливается с версией cURL 7.10.
CURLOPT_SSL_VERIFYSTATUS | TRUE для проверки статуса сертификата. | Добавлено в cURL 7.41.0. Доступно с PHP 7.0.7.
CURLOPT_PROXY_SSL_VERIFYPEER | FALSE для остановки cURL от проверки сертификата пира. Альтернативные сертификаты для проверки могут быть указаны с помощью параметра CURLOPT_CAINFO, а каталог сертификатов может быть указан с помощью параметра CURLOPT_CAPATH. Если установлено значение false, проверка сертификата однорангового узла завершается успешно несмотря ни на что. | TRUE по умолчанию. Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_SUPPRESS_CONNECT_HEADERS | TRUE для подавления заголовков ответов прокси-сервера CONNECT из пользовательских callback-функци CURLOPT_HEADERFUNCTION и CURLOPT_WRITEFUNCTION, когда используется CURLOPT_HTTPPROXYTUNNEL и выполняется запрос CONNECT. | Добавлено в cURL 7.54.0. Доступно с PHP 7.3.0.
CURLOPT_TCP_FASTOPEN | TRUE для разрешения TCP Fast Open. | Добавлено в cURL 7.49.0. Доступно с PHP 7.0.7.
CURLOPT_TFTP_NO_OPTIONS | TRUE для запрета посылки запроса TFTP опций. | Добавлено в cURL 7.48.0. Доступно с PHP 7.0.7.
CURLOPT_TRANSFERTEXT | TRUE для использования ASCII-режима при FTP-передачах. При использовании LDAP данные возвращаются простым текстом вместо HTML. В Windows системах поток STDOUT не устанавливается в бинарный режим.
CURLOPT_UNRESTRICTED_AUTH | TRUE для продолжения отправки логина и пароля при редиректах (используя CURLOPT_FOLLOWLOCATION), даже при изменении имени хоста.
CURLOPT_UPLOAD | TRUE для подготовки к загрузке файла на сервер.
CURLOPT_VERBOSE | TRUE для вывода дополнительной информации. Записывает вывод в поток STDERR, или файл, указанный параметром CURLOPT_STDERR.

Для следующих значений параметра option, параметр value должен быть типа integer:

Параметр | Устанавливаемое значение value | Замечания
CURLOPT_BUFFERSIZE | Размер буфера, используемого при каждом чтении. Однако, нет никакой гарантии что данный запрос будет завершен. | Добавлен в версии cURL 7.10.
CURLOPT_CLOSEPOLICY Одна из констант CURLCLOSEPOLICY_*.

Замечание:

Эта опция устарела, так как никогда не была реализована в cURL и не работала.

Удалена в PHP 5.6.0.
CURLOPT_CONNECTTIMEOUT | Количество секунд ожидания при попытке соединения. Используйте 0 для бесконечного ожидания.
CURLOPT_CONNECTTIMEOUT_MS | Количество миллисекунд ожидания при попытке соединения. Используйте 0 для бесконечного ожидания. Если библиотека libcurl скомпилирована с использованием стандартного системного преобразователя имен, то соединение будет по-прежнему использовать полносекундное ожидание в качестве тайм-аута с минимально допустимым тайм-аутом в 1 секунду. | Добавлен в версии cURL 7.16.2. Доступно, начиная с PHP 5.2.3.
CURLOPT_DNS_CACHE_TIMEOUT | Количество секунд, в течение которых в памяти хранятся DNS-записи. По умолчанию этот параметр равен 120 (2 минуты).
CURLOPT_EXPECT_100_TIMEOUT_MS | Таймаут для ответов с заголовком Expect: 100-continue в миллисекундах. По умолчанию - 1000 миллисекунд. | Добавлено в cURL 7.36.0. Доступно с PHP 7.0.7.
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS | Начало для ipv6 для алгоритма счастливые eyeballs. Счастливые eyeballs пытаются подключиться как к адресам IPv4, так и к адресам IPv6 для хостов с двумя стеками, предпочитая сначала IPv6 на время ожидания в миллисекундах. По умолчанию используется CURL_HET_DEFAULT, который в настоящее время составляет 200 миллисекунд. | Добавлено в cURL 7.59.0. Доступно с PHP 7.3.0.
CURLOPT_FTPSSLAUTH | Метод FTP-аутентификации (в активном режиме): CURLFTPAUTH_SSL (сначала проверяется SSL), CURLFTPAUTH_TLS (сначала проверяется TLS) или CURLFTPAUTH_DEFAULT (cURL решает сама). | Добавлен в cURL 7.12.2.
CURLOPT_HEADEROPT | Что делать с заголовками. Одна из следующих опций: CURLHEADER_UNIFIED: заголовки, указанные в CURLOPT_HTTPHEADER будут использованы в запросах к серверам и прокси. Если разрешена эта опция, CURLOPT_PROXYHEADER не будет иметь эффекта. CURLHEADER_SEPARATE: заголовки CURLOPT_HTTPHEADER будут отсылаться только на сервер, но не на прокси. На прокси заголовки должны посылаться CURLOPT_PROXYHEADER. Обратите внимание, что если запросы типа non-CONNECT будут слаться на прокси, то libcurl будет посылать как серверные, так и прокси заголовки. Если же происходит CONNECT, libcurl пошлет на прокси только заголовки CURLOPT_PROXYHEADER, а потом заголовки CURLOPT_HTTPHEADER только на сервер. По умолчанию CURLHEADER_SEPARATE, начиная с cURL 7.42.1, и CURLHEADER_UNIFIED до него. | Добавлено в cURL 7.37.0. Доступно с PHP 7.0.7.
CURLOPT_HTTP_VERSION | CURL_HTTP_VERSION_NONE (по умолчанию CURL сам выбирает используемую версию), CURL_HTTP_VERSION_1_0 (принудительное использование HTTP/1.0), CURL_HTTP_VERSION_1_1 (принудительное использование HTTP/1.1), CURL_HTTP_VERSION_2_0 (принудительное использование HTTP/2.0, доступно с PHP 5.5), CURL_HTTP_VERSION_2 (принудительное использование HTTP/2.0, доступно с PHP 7.0, алиас CURL_HTTP_VERSION_2_0), CURL_HTTP_VERSION_2TLS (принудительное использование HTTP/2.0 только по TLS (HTTPS), доступно с PHP 7.0), CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (принудительное использование HTTP/2.0 HTTP запросы без TLS, доступно с PHP 7.0).
CURLOPT_HTTPAUTH

Используемые HTTP-методы авторизации. Используемые параметры: CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_ANY и CURLAUTH_ANYSAFE.

Можно использовать побитовый оператор | (или) для комбинации нескольких методов вместе. В этом случае cURL опросит сервер на предмет поддерживаемых методов авторизации и выберет лучший из них.

CURLAUTH_ANY - это псевдоним CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLAUTH_ANYSAFE - это псевдоним CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLOPT_INFILESIZE | Ожидаемый размер файла в байтах при загрузке файла на удаленный сервер. Учтите, что использование этой опции не остановит дальнейшую посылку данных, превышающих это значение, так как посылаемые данные зависят от результата CURLOPT_READFUNCTION.
CURLOPT_LOW_SPEED_LIMIT | Верхний порог скорости передачи данных, в байтах в секунду. Проверка происходит в течение CURLOPT_LOW_SPEED_TIME секунд, после чего PHP считает передачу слишком медленной и прерывает ее.
CURLOPT_LOW_SPEED_TIME | Максимальное количество секунд, в течение которых скорость передачи не должна превышать CURLOPT_LOW_SPEED_LIMIT, иначе PHP пометит передачу как слишком медленную и прекратит ее.
CURLOPT_MAXCONNECTS | Максимальное количество постоянных соединений. При достижении лимита для определения закрываемого соединения используется параметр CURLOPT_CLOSEPOLICY.
CURLOPT_MAXREDIRS | Максимальное количество принимаемых редиректов. Используйте этот параметр вместе с параметром CURLOPT_FOLLOWLOCATION.
CURLOPT_PORT | Альтернативный порт соединения.
CURLOPT_POSTREDIR | Битовая маска, содержащая 1 (301 Moved Permanently), 2 (302 Found) и 4 (303 See Other), чтобы задавать должен ли метод HTTP POST обрабатываться при включенной опции CURLOPT_FOLLOWLOCATION, если произошел указанный тип перенаправления. | Добавлено в cURL 7.19.1. Доступно с PHP 5.3.2.
CURLOPT_PROTOCOLS

Битовая маска из значений CURLPROTO_*. Данная маска ограничивает используемые libcurl протоколы. Это позволяет иметь libcurl, работающую с большим количеством протоколов, и ограничивать работу определенных передач только для некоторого их набора. По умолчанию libcurl использует все поддерживаемые протоколы. Смотрите также параметр CURLOPT_REDIR_PROTOCOLS.

Корректные значения протоколов: CURLPROTO_HTTP, CURLPROTO_HTTPS, CURLPROTO_FTP, CURLPROTO_FTPS, CURLPROTO_SCP, CURLPROTO_SFTP, CURLPROTO_TELNET, CURLPROTO_LDAP, CURLPROTO_LDAPS, CURLPROTO_DICT, CURLPROTO_FILE, CURLPROTO_TFTP, CURLPROTO_ALL

Добавлен в cURL 7.19.4.
CURLOPT_PROXYAUTH | Методы авторизации HTTP, используемые при соединении с прокси-сервером. Используйте те же самые битовые маски, которые были описаны у параметра CURLOPT_HTTPAUTH. В данный момент для авторизации прокси поддерживаются только CURLAUTH_BASIC и CURLAUTH_NTLM. | Добавлен в версии cURL 7.10.7.
CURLOPT_PROXYPORT | Номер порта прокси-сервера, к которому осуществляется соединение. Этот номер также может быть установлен с помощью параметра CURLOPT_PROXY.
CURLOPT_PROXYTYPE | Либо CURLPROXY_HTTP (по умолчанию), либо CURLPROXY_SOCKS4, CURLPROXY_SOCKS5, CURLPROXY_SOCKS4A или CURLPROXY_SOCKS5_HOSTNAME. | Добавлен в версии cURL 7.10.
CURLOPT_REDIR_PROTOCOLS | Битовая маска из значений CURLPROTO_*. Данная битовая масска ограничивает протоколы, используемые libcurl при редиректе (при включенном параметре CURLOPT_FOLLOWLOCATION). Это позволяет ограничить набор используемых протоколов при редиректах для некоторых передач. По умолчанию, libcurl поддерживает все протоколы, кроме FILE и SCP. В версиях, предшествовавших 7.19.4, перенаправление использовалось для всех протоколов без исключения. Смотрите также описание параметра CURLOPT_PROTOCOLS для списка констант со значениями протоколов. | Добавлен в версии cURL 7.19.4.
CURLOPT_RESUME_FROM | Смещение в байтах для возобновления передачи.
CURLOPT_SOCKS5_AUTH

Метод аутентификации SOCKS5, который нужно использовать. Варианты: CURLAUTH_BASIC, CURLAUTH_GSSAPI, CURLAUTH_NONE.

Побитовый оператор | (или) можно использовать для объединения нескольких методов. Если это будет сделано, cURL будет опрашивать сервер, чтобы выяснить, какие методы он поддерживает, и выбрать налучший.

CURLAUTH_BASIC разрешает аутентификацию по имени пользователя/пароля.

CURLAUTH_GSSAPI разрешает аутентификацию GSS-API.

CURLAUTH_NONE не разрешает аутентификацию.

По умолчанию CURLAUTH_BASIC|CURLAUTH_GSSAPI. Установите действительное имя пользователя и пароль с помощью параметра CURLOPT_PROXYUSERPWD. Доступно с 7.3.0 и curl >= 7.55.0.
CURLOPT_SSL_OPTIONS | Устанавливает опции поведения SSL. Битовая маска из следующих констант: CURLSSLOPT_ALLOW_BEAST: не пытаться найти обходной путь для изъяна в безопасности протоколов SSL3 и TLS1.0. CURLSSLOPT_NO_REVOKE: не производить проверку, отозван ли сертификат, для тех SSL бэкендов, где оно есть. | Добавлено в cURL 7.25.0. Доступно с PHP 7.0.7.
CURLOPT_SSL_VERIFYHOST | Используйте 1 для проверки существования общего имени в сертификате SSL. Используйте 2 для проверки существования общего имени и также его совпадения с указанным хостом. 0 чтобы не проверять имена. В боевом окружении значение этого параметра должно быть 2 (установлено по умолчанию). | Поддержка значения 1 убрана в cURL 7.28.1
CURLOPT_SSLVERSION Одна из констант CURL_SSLVERSION_DEFAULT (0), CURL_SSLVERSION_TLSv1 (1), CURL_SSLVERSION_SSLv2 (2), CURL_SSLVERSION_SSLv3 (3), CURL_SSLVERSION_TLSv1_0 (4), CURL_SSLVERSION_TLSv1_1 (5) или CURL_SSLVERSION_TLSv1_2 (6).

Замечание:

Рекомендуется не устанавливать эту опцию и оставить значение по умолчанию. Установка в 2 или 3 опасно и допускает применение известных уязвимостей в SSLv2 и SSLv3.

CURLOPT_PROXY_SSL_OPTIONS | Задайте параметры поведения SSL прокси, которые являются битовой маской любой из следующих констант: CURLSSLOPT_ALLOW_BEAST: не пытайтесь использовать обходные пути для устранения уязвимости в протоколах SSL3 и TLS1.0. CURLSSLOPT_NO_REVOKE: отключите проверки отзыва сертификатов для тех бекэндов SSL, где такое поведение присутствует. (curl >= 7.44.0) CURLSSLOPT_NO_PARTIALCHAIN: не принимайте "частичные" цепочки сертификатов, что в противном случае делается по умолчанию. (curl >= 7.68.0) | Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSL_VERIFYHOST | Установите значение 2 для проверки в полях имени сертификата прокси-сервера HTTPS по отношению к имени прокси-сервера. Когда установлено значение 0, соединение успешно выполняется независимо от имен, используемых в сертификате. Используйте эту способность с осторожностью! 1 рассматривается как опция отладки в curl 7.28.0 и более ранних версиях. С версии curl 7.28.1 до 7.65.3 возвращена CURLE_BAD_FUNCTION_ARGUMENT. Начиная с curl 7.66.0 и далее 1 и 2 обрабатываются как одно и то же значение. В продакшене значение этой опции должно быть 2 (значение по умолчанию). | Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSLVERSION Одна из CURL_SSLVERSION_DEFAULT, CURL_SSLVERSION_TLSv1, CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1, CURL_SSLVERSION_TLSv1_2, CURL_SSLVERSION_TLSv1_3, CURL_SSLVERSION_MAX_DEFAULT, CURL_SSLVERSION_MAX_TLSv1_0, CURL_SSLVERSION_MAX_TLSv1_2, CURL_SSLVERSION_MAX_TLSv1_2, CURL_SSLVERSION_MAX_TLSv1_3 или CURL_SSLVERSION_SSLv3.

Замечание:

Лучше всего не устанавливать это и разрешать использовать значение по умолчанию CURL_SSLVERSION_DEFAULT, которое попытается выяснить версию протокола удаленного SSL.

Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_STREAM_WEIGHT | Установить вес цифрового потока (число между 1 и 256). | Добавлено в cURL 7.46.0. Доступно с PHP 7.0.7.
CURLOPT_TIMECONDITION | Способ трактовки параметра CURLOPT_TIMEVALUE. Используйте CURL_TIMECOND_IFMODSINCE для возвращения страницы, только если она была изменена со времени, указанного в параметре CURLOPT_TIMEVALUE. Если страница не была изменена, вернется заголовок "304 Not Modified", подразумевая, что параметрCURLOPT_HEADER установлен в TRUE. Используйте CURL_TIMECOND_IFUNMODSINCE для обратного эффекта. По умолчанию используется CURL_TIMECOND_IFMODSINCE.
CURLOPT_TIMEOUT | Максимально позволенное количество секунд для выполнения cURL-функций.
CURLOPT_TIMEOUT_MS | Максимально позволенное количество миллисекунд для выполнения cURL-функций. Если libcurl собрана с использованием обычного системного распознавателя имен, то этот промежуток соединения все еще будет использовать секундное округление тайм-аутов, с минимально разрешенным тайм-аутом в одну секунду. | Добавлен в версии cURL 7.16.2. Доступен, начиная с PHP 5.2.3.
CURLOPT_TIMEVALUE | Количество секунд, начиная с 1 января 1970 года. Это время будет использовано параметром CURLOPT_TIMECONDITION. По умолчанию, используется параметр CURL_TIMECOND_IFMODSINCE.
CURLOPT_TIMEVALUE_LARGE | Время в секундах с 1 января 1970 года. Время будет использовано CURLOPT_TIMECONDITION. По умолчанию ноль. Разница между этой опцией и CURLOPT_TIMEVALUE заключается в типе аргумента. В системах, где 'long' имеет размер всего 32 бита, этот параметр необходимо использовать для установки дат после 2038 года. | Добавлено в cURL 7.59.0. Доступно с PHP 7.3.0.
CURLOPT_MAX_RECV_SPEED_LARGE | Если скорость скачки превысит это значение (указанное в байтах в секунду) в среднем в течение всей передачи, то скачка будет приостановлена для поддержания средней скорости меньше либо равной данному параметру. По умолчанию скорость не ограничивается. | Добавлен в версии cURL 7.15.5. Доступен, начиная с PHP 5.4.0.
CURLOPT_MAX_SEND_SPEED_LARGE | Если загрузка на сервер превысит это значение (указанное в байтах в секунду) в среднем в течение всей передачи, то загрузка будет приостановлена для поддержания средней скорости меньше либо равной данному параметру. По умолчанию скорость не ограничивается. | Добавлен в версии cURL 7.15.5. Доступен, начиная с PHP 5.4.0.
CURLOPT_SSH_AUTH_TYPES | Битовая маска, состоящая из одной или более констант: CURLSSH_AUTH_PUBLICKEY, CURLSSH_AUTH_PASSWORD, CURLSSH_AUTH_HOST, CURLSSH_AUTH_KEYBOARD. Установите CURLSSH_AUTH_ANY, чтобы libcurl сам выбрал одну из них. | Добавлено в cURL 7.16.1.
CURLOPT_IPRESOLVE | Позволяет приложению выбрать вид IP-адреса, с которым определяется имя хоста. Это необходимо, если используется имя хоста, которое получается с использованием более одной версии IP адреса. Возможными значениями могут быть CURL_IPRESOLVE_WHATEVER, CURL_IPRESOLVE_V4, CURL_IPRESOLVE_V6, и по умолчанию CURL_IPRESOLVE_WHATEVER. | Добавлено в cURL 7.10.8.
CURLOPT_FTP_FILEMETHOD | Какой метод использовать, чтобы достать файл на сервере FTP. Варианты: CURLFTPMETHOD_MULTICWD, CURLFTPMETHOD_NOCWD и CURLFTPMETHOD_SINGLECWD. | Добавлено в cURL 7.15.1. Доступно с PHP 5.3.0.

Для следующих значений параметра option, параметр value должен быть типа string:

Параметр | Устанавливаемое значение value | Замечания
CURLOPT_ABSTRACT_UNIX_SOCKET | Позволяет использовать абстрактный доменный сокет Unix вместо установления TCP-соединения с хостом и устанавливает путь к указанной строке (string). Эта опция использует ту же семантику, что и CURLOPT_UNIX_SOCKET_PATH. Эти два параметра совместно используют одно и то же хранилище, поэтому для каждого дескриптора можно установить только один из них. | Доступно с PHP 7.3.0 и cURL 7.53.0
CURLOPT_CAINFO | Имя файла, содержащего один или более сертификатов, с которыми будут сверяться узлы. Этот параметр имеет смысл только при использовании совместно с CURLOPT_SSL_VERIFYPEER. | Может потребоваться абсолютный путь.
CURLOPT_CAPATH | Директория, содержащая несколько CA сертификатов. Используйте этот параметр совместно с CURLOPT_SSL_VERIFYPEER.
CURLOPT_COOKIE | Содержимое заголовка "Cookie: ", используемого в HTTP-запросе. Обратите внимание, что несколько cookies разделяются точкой с запятой с последующим пробелом (например, "fruit=apple; colour=red")
CURLOPT_COOKIEFILE | Имя файла, содержащего cookies. Данный файл должен быть в формате Netscape или просто заголовками HTTP, записанными в файл. Если в качестве имени файла передана пустая строка, то cookies сохраняться не будут, но их обработка все еще будет включена.
CURLOPT_COOKIEJAR | Имя файла, в котором будут сохранены все внутренние cookies текущей передачи после закрытия дескриптора, например, после вызова curl_close.
CURLOPT_CUSTOMREQUEST

Собственный метод запроса, используемый вместо "GET" или "HEAD" при выполнении HTTP-запроса. Это полезно при запросах "DELETE" или других, более редких HTTP-запросах. Корректными значениями будут такие как "GET", "POST", "CONNECT" и так далее; т.е. не вводите здесь всю строку с HTTP-запросом. Например, указание "GET /index.html HTTP/1.0\r\n\r\n" будет неправильным.

Замечание:

Не используйте эту возможность пока не убедитесь, что сервер поддерживает данный тип запроса.

CURLOPT_DEFAULT_PROTOCOL

Протокол по умолчанию, если он отсутствует в схеме URL.

Добавлено в cURL 7.45.0. Доступно с PHP 7.0.7.
CURLOPT_DNS_INTERFACE

Устанавливает имя сетевого интерфейса, к которому привязан DNS. Это должно быть имя интерфейса, а не адрес.

Добавлено в cURL 7.33.0. Доступно с PHP 7.0.7.
CURLOPT_DNS_LOCAL_IP4

Установить локальный IPv4-адрес, по которому доступне DNS. Адрес должен быть представлен в виде строки, содержащий одно число.

Добавлено в cURL 7.33.0. Доступно с PHP 7.0.7.
CURLOPT_DNS_LOCAL_IP6

Установить локальный IPv6-адрес, по которому доступне DNS. Адрес должен быть представлен в виде строки, содержащий одно число.

Добавлено в cURL 7.33.0. Доступно с PHP 7.0.7.
CURLOPT_EGDSOCKET | Наподобие CURLOPT_RANDOM_FILE, за исключением того, что имя файла устанавливается в сокет Entropy Gathering Daemon.
CURLOPT_ENCODING | Содержимое заголовка "Accept-Encoding: ". Это позволяет декодировать запрос. Поддерживаемыми кодировками являются "identity", "deflate" и "gzip". Если передана пустая строка, "", посылается заголовок, содержащий все поддерживаемые типы кодировок. | Добавлен в версии cURL 7.10.
CURLOPT_FTPPORT | Значение, которое будет использоваться для определения IP-адреса для команды "PORT" FTP-протокола. Команда "PORT" сообщает серверу, с каким IP-адресом он должен устанавливать соединение. Это может быть IP-адрес, имя хоста, имя сетевого интерфейса (под Unix) или просто '-' для использования системного IP-адреса по умолчанию.
CURLOPT_INTERFACE | Имя используемого сетевого интерфейса. Может быть именем интерфейса, IP адресом или именем хоста.
CURLOPT_KEYPASSWD | Пароль, который требуется для использования закрытого ключа CURLOPT_SSLKEY или CURLOPT_SSH_PRIVATE_KEYFILE. | Добавлено в cURL 7.16.1.
CURLOPT_KRB4LEVEL | Уровень безопасности KRB4 (Kerberos 4). Любое из следующих значений (в порядке от слабого к самому сильному) корректно: "clear", "safe", "confidential", "private".. Если указанная строка отличается от данных значений, будет использовано значение "private". Установка этого параметра в NULL полностью отключит безопасность KRB4. На данный момент безопасность KRB4 работает только с FTP-транзакциями.
CURLOPT_LOGIN_OPTIONS | Используется для установки специфичных для протокола настроек логина, таких как предпочитаемый механизм аутентификации "AUTH=NTLM" или "AUTH=*", и должна использоваться совместно с CURLOPT_USERNAME. | Добавлено в cURL 7.34.0. Доступно с PHP 7.0.7.
CURLOPT_PINNEDPUBLICKEY | Устанавливает зафиксированный открытый ключ. Строка должны содержать имя файла, в котором лежит ваш зафиксированный открытый ключ. Ожидается формат файла "PEM" или "DEX". Строка также может быть числом в формате base64, закодированным sha256 с префиксом "sha256//" и разделенная точкой с запятой ";". | Добавлено в cURL 7.39.0. Доступно с PHP 7.0.7.
CURLOPT_POSTFIELDS | Все данные, передаваемые в HTTP POST-запросе. Для передачи файла, укажите перед именем файла @, а также используйте полный путь к файлу. Тип файла также может быть указан с помощью формата ';type=mimetype', следующим за именем файла. Этот параметр может быть передан как в качестве url-закодированной строки, наподобие 'para1=val1&para2=val2&...', так и в виде массива, ключами которого будут имена полей, а значениями - их содержимое. Если value является массивом, заголовок Content-Type будет установлен в значение multipart/form-data. Начиная с PHP 5.2.0, при передаче файлов с префиксом @, value должен быть массивом. С PHP 5.5.0 префикс @ устарел и файлы можно отправлять с помощью CURLFile. Префикс @ можно отключить, чтобы можно было передавать значения, начинающиеся с @, задав опцию CURLOPT_SAFE_UPLOAD в значение TRUE.
CURLOPT_PRIVATE | Любые данные, которые должны связаны с этим дескриптором cURL. Эти данные могут быть выбраны подзапросом опции CURLINFO_PRIVATE функции curl_getinfo(). cURL ничего не делает с этими данными. Если используется множество дескрипторов cURL, эти данные обычно используются как уникальный ключ для определения дескриптора cURL. | Добавлено в cURL 7.10.3.
CURLOPT_PRE_PROXY | Задайте строку (string), содержащую имя хоста или IP-адрес, который будет использоваться в качестве прокси-сервера, к которому подключается curl, прежде чем он подключится к прокси-серверу HTTP(S), указанному в опции CURLOPT_PROXY для предстоящего запроса. Предварительный прокси-сервер может быть только SOCKS-прокси, и перед ним должен стоять префикс [scheme]://, чтобы указать, какой тип socks используется. Числовой адрес IPv6 должен быть написан в [скобках]. Установка препрокси в пустую строку явно отключает использование препрокси. Чтобы указать номер порта в этой строке, добавьте :[port] в конец имени хоста. Номер порта прокси-сервера может быть дополнительно указан с помощью отдельной опции CURLOPT_PROXYPORT. По умолчанию используется порт 1080 для прокси, если порт не указан. | Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_PROXY | HTTP-прокси, через который будут направляться запросы.
CURLOPT_PROXY_SERVICE_NAME | Имя сервиса аутентификации прокси. | Добавлено в cURL 7.34.0. Доступно с PHP 7.0.7.
CURLOPT_PROXY_CAINFO | Путь к прокси-серверу центра сертификации. Задайте путь в виде строки (string) с именем файла, содержащего один или несколько сертификатов для проверки прокси с помощью HTTPS. Этот параметр предназначен для подключения к прокси-серверу HTTPS, а не к серверу HTTPS. По умолчанию задан системный путь, где предполагается хранить пакет cacert libcurl. | Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_PROXY_CAPATH | Каталог, содержащий несколько сертификатов центра сертификации для проверки прокси HTTPS. | Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_PROXY_CRLFILE | Задайте имя файла с помощью конкатенации CRL (списка отзыва сертификатов) в формате PEM для использования при проверке сертификата, которая происходит во время обмена SSL. | Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_PROXY_KEYPASSWD | Установите строку, используемую в качестве пароля, необходимого для использования закрытого ключа CURLOPT_PROXY_SSLKEY. Вам не нужен пароль для загрузки сертификата, но вам нужен пароль для загрузки вашего закрытого ключа. Этот параметр предназначен для подключения к прокси-серверу HTTPS, а не к серверу HTTPS. | Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_PROXY_PINNEDPUBLICKEY | Установите закрепленный открытый ключ для HTTPS-прокси. Строка может быть именем файла вашего закрепленного открытого ключа. Ожидаемый формат файла: "PEM" или "DER". Строка также может быть любым количеством закодированных в base64 хешей sha256, которым предшествует "sha256//" и разделяются ";" | Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSLCERT | Имя файла вашего клиентского сертификата, используемого для подключения к прокси HTTPS. Формат по умолчанию - "P12" в Secure Transport и "PEM" в других движках; его можно изменить с помощью CURLOPT_PROXY_SSLCERTTYPE. С NSS или Secure Transport это также может быть псевдоним сертификата, с которым вы хотите пройти аутентификацию, так как он назван в базе данных безопасности. Если вы хотите использовать файл из текущего каталога, пожалуйста, добавьте к нему префикс "./", чтобы избежать путаницы с псевдонимом. | Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSLCERTTYPE | Формат сертификата вашего клиента, используемый при подключении к HTTPS-прокси. Поддерживаемые форматы: "PEM" и "DER", за исключением Secure Transport. OpenSSL (версии 0.9.3 и новее) и Secure Transport (в iOS 5 или новее или OS X 10.7 или новее) также поддерживают "P12" для файлов в кодировке PKCS#12. По умолчанию "PEM". | Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSL_CIPHER_LIST | Список шифров, используемых для подключения к прокси HTTPS. Список должен быть синтаксически правильным, он состоит из одной или нескольких строк шифров, разделенных двоеточиями. Запятые или пробелы также являются допустимыми разделителями, но обычно качестве операторов используются двоеточия, !, - и +. | Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLS13_CIPHERS | Список наборов шифров, которые будут использоваться для подключения TLS 1.3 к прокси. Список должен быть синтаксически правильным, он состоит из одной или нескольких строк набора шифров, разделенных двоеточиями. Эта опция в настоящее время используется только тогда, когда curl собран для использования OpenSSL 1.1.1 или новее. Если вы используете другой бекэнд SSL, вы можете попытаться установить наборы шифров TLS 1.3, используя параметр CURLOPT_PROXY_SSL_CIPHER_LIST. | Доступно с PHP 7.3.0 и libcurl >= cURL 7.61.0. Доступно при сборке с OpenSSL >= 1.1.1.
CURLOPT_PROXY_SSLKEY | Имя файла вашего личного ключа, используемого для подключения к прокси HTTPS. Формат по умолчанию - "PEM", и его можно изменить с помощью CURLOPT_PROXY_SSLKEYTYPE. (Только для iOS и Mac OS X). Этот параметр игнорируется, если curl был создан для Secure Transport. | Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0. Доступно, если включен встроенный TLS.
CURLOPT_PROXY_SSLKEYTYPE | Формат вашего закрытого ключа. Поддерживаемые форматы: "PEM", "DER" и "ENG". | Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_PASSWORD | Пароль, используемый для метода аутентификации TLS, указанного в параметре CURLOPT_PROXY_TLSAUTH_TYPE. Требует, чтобы также был установлен параметр CURLOPT_PROXY_TLSAUTH_USERNAME. | Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_TYPE Метод аутентификации TLS, используемый для соединения HTTPS. Поддерживаемый метод - "SRP".

Замечание:

Аутентификация Secure Remote Password (SRP) для TLS обеспечивает взаимную аутентификацию, если обе стороны имеют общий секрет. Чтобы использовать TLS-SRP, вы также должны установить параметры CURLOPT_PROXY_TLSAUTH_USERNAME и CURLOPT_PROXY_TLSAUTH_PASSWORD.

Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_USERNAME | Имя пользователя, которое будет использоваться для метода аутентификации TLS прокси-сервера HTTPS, указанного в параметре CURLOPT_PROXY_TLSAUTH_TYPE. Требует, чтобы параметр CURLOPT_PROXY_TLSAUTH_PASSWORD также был установлен. | Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_PROXYUSERPWD | Логин и пароль, записанные в виде "[username]:[password]", используемые при соединении через прокси.
CURLOPT_RANDOM_FILE | Имя файла, используемого для инициализации генератора случайных чисел для SSL.
CURLOPT_RANGE | Диапазон данных, которые нужно загрузить, в формате "X-Y", причем либо X, либо Y могут быть опущены. Протокол HTTP также поддерживает передачу нескольких диапазонов, разделенных запятыми, они задаются в формате "X-Y,N-M".
CURLOPT_REFERER | Содержимое заголовка "Referer: ", который будет использован в HTTP-запросе.
CURLOPT_SERVICE_NAME | Имя сервиса аутентификации. | Добавлено в cURL 7.43.0. доступно с PHP 7.0.7.
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 | Строка, содержащая 32 шестнадцатеричных цифры. Строка должна являться контрольной суммой по алгоритму MD5 открытого ключа удаленного компьютера и libcurl будет сбрасывать соединение к удаленному хосту до тех пор, пока контрольная сумма не будет соответствовать публичному ключу. Эта опция предназначена только для передачи данных с помощью SCP и SFTP. | Добавлено в cURL 7.17.1.
CURLOPT_SSH_PUBLIC_KEYFILE | Имя файла для вашего публичного ключа. Если не задано, то libcurl использует по умолчанию файл $HOME/.ssh/id_dsa.pub, если переменная окружения HOME установлена и файл "id_dsa.pub" в текущей директории, если переменная HOME не установлена. | Добавлено в cURL 7.16.1.
CURLOPT_SSH_PRIVATE_KEYFILE | Имя файла для вашего приватного ключа. Если не задано, то libcurl использует по умолчанию файл $HOME/.ssh/id_dsa, если переменная окружения HOME установлена и файл "id_dsa" в текущей директории, если переменная HOME не установлена. Если файл защищен паролем, установите пароль с помощью CURLOPT_KEYPASSWD. | Добавлено в cURL 7.16.1.
CURLOPT_SSL_CIPHER_LIST | Список шифров, используемый в SSL-передачах. Например, RC4-SHA и TLSv1 являются корректными списками шифров.
CURLOPT_SSLCERT | Имя файла с корректно отформатированным PEM-сертификатом.
CURLOPT_SSLCERTPASSWD | Пароль, необходимый для использования сертификата CURLOPT_SSLCERT.
CURLOPT_SSLCERTTYPE | Формат сертификата. Поддерживаются форматы "PEM" (по умолчанию), "DER" и "ENG". | Добавлен в версии cURL 7.9.3.
CURLOPT_SSLENGINE | Идентификатор механизма шифрования для закрытого ключа SSL, указанного в параметре CURLOPT_SSLKEY.
CURLOPT_SSLENGINE_DEFAULT | Идентификатор механизма шифрования, используемого для ассиметричных операций шифрования.
CURLOPT_SSLKEY | Имя файла с закрытым ключом SSL.
CURLOPT_SSLKEYPASSWD

Тайный пароль, необходимый для использования закрытого ключа SSL, указанного параметром CURLOPT_SSLKEY.

Замечание:

Так как этот параметр содержит ценный пароль, помните, что данный PHP-скрипт нужно хранить в безопасном месте.

CURLOPT_SSLKEYTYPE | Тип закрытого ключа SSL, указанного в параметре CURLOPT_SSLKEY. Поддерживаются следующие типы ключей: "PEM" (по умолчанию), "DER" и "ENG".
CURLOPT_TLS13_CIPHERS | Список комплектов шифров для использования в соединении TLS 1.3. Список должен быть синтаксически правильным, он состоит из одной или нескольких строк набора шифров, разделенных двоеточиями. Эта опция в настоящее время используется только тогда, когда curl собран для использования OpenSSL 1.1.1 или новее. Если вы используете другой бекэнд SSL, вы можете попробовать установить наборы шифров TLS 1.3, используя параметр CURLOPT_SSL_CIPHER_LIST. | Available since PHP 7.3.0 and libcurl >= cURL 7.61.0. Available when built with OpenSSL >= 1.1.1.
CURLOPT_UNIX_SOCKET_PATH | Разрешает использовать доменные сокеты UNIX в качестве конечной точки для соединения и устанавливает путь к ним равным заданной строке (string). | Добавлено в cURL 7.40.0. Доступно с PHP 7.0.7.
CURLOPT_URL | Загружаемый URL. Данный параметр может быть также установлен при инициализации сеанса с помощью curl_init().
CURLOPT_USERAGENT | Содержимое заголовка "User-Agent: ", посылаемого в HTTP-запросе.
CURLOPT_USERNAME | Ипя пользователя для аутентификации. | Добавлено в cURL 7.19.1. Доступно с PHP 5.5.0.
CURLOPT_USERPWD | Логин и пароль, используемые при соединении, указанные в формате "[username]:[password]".
CURLOPT_XOAUTH2_BEARER | Задает токен доступа OAuth 2.0. | Добавлено в cURL 7.33.0. Доступно с PHP 7.0.7.

Для следующих значений параметра option, параметр value должен быть массивом:

Параметр | Устанавливаемое значение value | Замечания
CURLOPT_CONNECT_TO | Соединяться с указанный хостом по указанному порту, игнорируя URL. Принимает массив строк формата HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT. | Добавлено в cURL 7.49.0. Доступно с PHP 7.0.7.
CURLOPT_HTTP200ALIASES | Массив HTTP 200 ответов, которые будут трактоваться корректными ответами, а не ошибочными. | Добавлен в cURL 7.10.3.
CURLOPT_HTTPHEADER | Массив устанавливаемых HTTP-заголовков, в формате array('Content-type: text/plain', 'Content-length: 100')
CURLOPT_POSTQUOTE | Массив FTP-команд, выполняемых на сервере, после выполнения FTP-запроса.
CURLOPT_PROXYHEADER | Массив пользовательских HTTP-заголовков для отправки на прокси | Добавлено в cURL 7.37.0. Доступно с PHP 7.0.7.
CURLOPT_QUOTE | Массив FTP-команд, выполняемых на сервере, перед выполнением FTP-запроса.
CURLOPT_RESOLVE | Предоставляет адрес для определенной пары хоста и порта. Массив, содержащий строки состоящие из имени хоста, порат и IP-адреса, разделенных двоеточием. Пример: array("example.com:80:127.0.0.1") | Добавлено в cURL 7.21.3. Доступно с PHP 5.5.0.

Для следующих значений параметра option, параметр value должен быть потоковым дескриптором (возвращаемым, например, функцией fopen()):

Параметр | Устанавливаемое значение value
CURLOPT_FILE | Файл, в который будет записан результат передачи. По умолчанию используется поток вывода STDOUT (окно браузера).
CURLOPT_INFILE | Файл, из которого должно идти чтение данных, при загрузке на сервер.
CURLOPT_STDERR | Альтернативный файл для вывода ошибок, используемый вместо потока ошибок STDERR.
CURLOPT_WRITEHEADER | Файл, в который будут записаны заголовки текущей операции.

Для следующих значений параметра option, параметр value должен быть правильным именем функции или замыканием:

Параметр | Устанавливаемое значение value
CURLOPT_HEADERFUNCTION | Callback-функция принимает два параметра. Первым параметром является дескриптор cURL, вторым параметром является строка с записываемыми заголовками. Заголовки должны быть записаны с помощью данной callback-функции. Должна возвратить количество записанных байт.
CURLOPT_PASSWDFUNCTION | Callback-функция принимает три параметра. Первым параметром является дескриптор cURL, вторым параметром является строка с запросом пароля, третьим параметром является максимальная длина пароля. Должна возвратить строку, содержащую пароль.
CURLOPT_PROGRESSFUNCTION

Callback-функция принимает пять параметров. Первый является декскриптором cURL, второй - общим количеством байт, которое ожидается загрузить с сервера, третий - количество уже загруженных байт, четвертый - общее количество байт, которое ожидается отправить на сервер, и пятый - количество уже отправленных байт.

Замечание:

Callback-функция вызывается только, если опция CURLOPT_NOPROGRESS установлена в значение FALSE.

Можно вернуть ненулевое значение, чтобы отменить передачу. В этом случае будет выдана ошибка CURLE_ABORTED_BY_CALLBACK.

CURLOPT_READFUNCTION | Callback-функция принимает три параметра. Первым параметром является дескриптор cURL, вторым параметром является ресурс потока, переданный cURL через опцию CURLOPT_INFILE, а третьим параметром является максимально разрешенное количество данных для чтения. Callback-функция должна возвратить строку с длиной, не превышающей запрошенного количества данных, обычно с помощью чтения из переданного потокового ресурса. Должна возвратить пустую строку для сигнала о конце файла EOF.
CURLOPT_WRITEFUNCTION | Callback-функция принимает два параметра. Первым параметром является дескриптор cURL, а вторым параметром является строка с записываемыми данными. Данные должны быть сохранены с помощью данной функции. Она должна возвратить точное количество записанных байт, иначе закачка будет прервана с ошибкой.

Другие значения:

Параметр | Устанавливаемое значение value
CURLOPT_SHARE | Результат выполнения функции curl_share_init(). Позволяет обработчику cURL использовать данные из общего обработчика.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3.15, 7.4.3 | Добавлено CURLOPT_HTTP09_ALLOWED.
7.3.0 | Введенны CURLOPT_ABSTRACT_UNIX_SOCKET, CURLOPT_KEEP_SENDING_ON_ERROR, CURLOPT_PRE_PROXY, CURLOPT_PROXY_CAINFO, CURLOPT_PROXY_CAPATH, CURLOPT_PROXY_CRLFILE, CURLOPT_PROXY_KEYPASSWD, CURLOPT_PROXY_PINNEDPUBLICKEY, CURLOPT_PROXY_SSLCERT, CURLOPT_PROXY_SSLCERTTYPE, CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOPT_PROXY_SSLKEY, CURLOPT_PROXY_SSLKEYTYPE, CURLOPT_PROXY_SSL_OPTIONS, CURLOPT_PROXY_SSL_VERIFYHOST, CURLOPT_PROXY_SSL_VERIFYPEER, CURLOPT_PROXY_SSLVERSION, CURLOPT_PROXY_TLSAUTH_PASSWORD, CURLOPT_PROXY_TLSAUTH_TYPE, CURLOPT_PROXY_TLSAUTH_USERNAME, CURLOPT_SOCKS5_AUTH, CURLOPT_SUPPRESS_CONNECT_HEADERS, CURLOPT_DISALLOW_USERNAME_IN_URL, CURLOPT_DNS_SHUFFLE_ADDRESSES, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, CURLOPT_HAPROXYPROTOCOL, CURLOPT_PROXY_TLS13_CIPHERS, CURLOPT_SSH_COMPRESSION, CURLOPT_TIMEVALUE_LARGE и CURLOPT_TLS13_CIPHERS.
7.0.7 | Добавлены CURL_HTTP_VERSION_2, CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, CURL_HTTP_VERSION_2TLS, CURL_REDIR_POST_301, CURL_REDIR_POST_302, CURL_REDIR_POST_303, CURL_REDIR_POST_ALL, CURL_VERSION_KERBEROS5, CURL_VERSION_PSL, CURL_VERSION_UNIX_SOCKETS, CURLAUTH_NEGOTIATE, CURLAUTH_NTLM_WB, CURLFTP_CREATE_DIR, CURLFTP_CREATE_DIR_NONE, CURLFTP_CREATE_DIR_RETRY, CURLHEADER_SEPARATE, CURLHEADER_UNIFIED, CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH, CURLMOPT_MAX_TOTAL_CONNECTIONS, CURLOPT_CONNECT_TO, CURLOPT_DEFAULT_PROTOCOL, CURLOPT_DNS_INTERFACE, CURLOPT_DNS_LOCAL_IP4, CURLOPT_DNS_LOCAL_IP6, CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOPT_HEADEROPT, CURLOPT_LOGIN_OPTIONS, CURLOPT_PATH_AS_IS, CURLOPT_PINNEDPUBLICKEY, CURLOPT_PIPEWAIT, CURLOPT_PROXY_SERVICE_NAME, CURLOPT_PROXYHEADER, CURLOPT_SASL_IR, CURLOPT_SERVICE_NAME, CURLOPT_SSL_ENABLE_ALPN, CURLOPT_SSL_ENABLE_NPN, CURLOPT_SSL_FALSESTART, CURLOPT_SSL_VERIFYSTATUS, CURLOPT_STREAM_WEIGHT, CURLOPT_TCP_FASTOPEN, CURLOPT_TFTP_NO_OPTIONS, CURLOPT_UNIX_SOCKET_PATH, CURLOPT_XOAUTH2_BEARER, CURLPROTO_SMB, CURLPROTO_SMBS, CURLPROXY_HTTP_1_0, CURLSSH_AUTH_AGENT и CURLSSLOPT_NO_REVOKE.
7.0.0 | Поддержка отключения опции CURLOPT_SAFE_UPLOAD была удалена. Все загрузки файлов с помощью curl должны использовать CURLFile.
5.6.0 | Опция CURLOPT_SAFE_UPLOAD теперь имеет значение по умолчанию равное TRUE.
5.6.0 | Удалена опция CURLOPT_CLOSEPOLICY и связанные с ней значения.
5.5.0 | Ресурс cURL добавлен первым аргументом в callback-функцию CURLOPT_PROGRESSFUNCTION.
5.5.0 | Добавлена опция CURLOPT_SHARE.
5.3.0 | Добавлена опция CURLOPT_PROGRESSFUNCTION.
5.2.10 | Добавлены параметры CURLOPT_PROTOCOLS и CURLOPT_REDIR_PROTOCOLS.
5.2.4 | Добавлено CURLOPT_PRIVATE.
5.1.0 | Добавлены параметры CURLOPT_AUTOREFERER, CURLOPT_BINARYTRANSFER, CURLOPT_FTPSSLAUTH, CURLOPT_PROXYAUTH и CURLOPT_TIMECONDITION.
5.0.0 | Добавлены параметры CURLOPT_FTP_USE_EPRT, CURLOPT_NOSIGNAL, CURLOPT_UNRESTRICTED_AUTH, CURLOPT_BUFFERSIZE, CURLOPT_HTTPAUTH, CURLOPT_PROXYPORT, CURLOPT_PROXYTYPE, CURLOPT_SSLCERTTYPE и CURLOPT_HTTP200ALIASES.

Примеры

Пример #1 Инициализация сеанса CURL и загрузка веб-страницы

<?php
// создание нового ресурса cURL
$ch = curl_init();

// установка URL и других необходимых параметров
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, false);

// загрузка страницы и выдача её браузеру
curl_exec($ch);

// завершение сеанса и освобождение ресурсов
curl_close($ch);
?>

Пример #2 Закачка файла (устарело с PHP 5.5.0)

<?php

/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/

$ch = curl_init();

$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');

curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); // требуется с PHP 5.6.0
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_exec($ch);
?>

Результат выполнения данного примера:

Array
(
    [name] => Foo
)
Array
(
    [file] => Array
        (
            [name] => test.png
            [type] => image/png
            [tmp_name] => /tmp/phpcpjNeQ
            [error] => 0
            [size] => 279
        )

)

Примечания

Замечание:

Передача массива в CURLOPT_POSTFIELDS закодирует данные в виде multipart/form-data, тогда как передача URL-кодированной строки закодирует данные в виде application/x-www-form-urlencoded.

Смотрите также

  • curl_setopt_array() - Устанавливает несколько параметров для сеанса cURL


Закрыть разделяемый обработчик cURL

  • « curl_setopt
  • curl_share_errno »
  • PHP Manual
  • Функции cURL
  • Закрыть разделяемый обработчик cURL

curl_share_close

(PHP 5 >= 5.5.0, PHP 7)

curl_share_close — Закрыть разделяемый обработчик cURL

Описание

curl_share_close ( resource $sh ) : void

Закрывает разделяемый обработчик cURL и высвобождает все его ресурсы.

Список параметров

sh

Обреботчик cURL, полученый из curl_share_init()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования curl_share_setopt()

В этом примере мы создаем разделяемый обработчик cURL, добавляем в него два обычных обработчика и запускаем их. Они будут использовать одни и те же куки.

<?php
// Создаем разделяемый обработчик и настраиваем его на обмен куками
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

// Инициализируем первый обработчик cURL и связываем его с разделяемым
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);

// Запускаем первый запрос
curl_exec($ch1);

// Инициализируем второй обработчик cURL и связываем его с разделяемым
$ch2 = curl_init("http://php.net/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// Запускаем второй обработчик.
// Ему будут доступны все куки от первого обработчика $ch1
curl_exec($ch2);

// Закрываем разделяемый обработчик
curl_share_close($sh);

// Закрываем оба обычных обработчика
curl_close($ch1);
curl_close($ch2);
?>

Смотрите также

  • curl_share_init() - Инициализация разделяемого обработчика cURL


Возвращает код последней ошибки разделяемого обработчика curl

  • « curl_share_close
  • curl_share_init »
  • PHP Manual
  • Функции cURL
  • Возвращает код последней ошибки разделяемого обработчика curl

curl_share_errno

(PHP 7 >= 7.1.0)

curl_share_errno — Возвращает код последней ошибки разделяемого обработчика curl

Описание

curl_share_errno ( resource $sh ) : int

Возвращает код последней ошибки разделяемого обработчика curl в виде целого числа.

Список параметров

sh

Разделяемый обработчик cURL, полученный с помощью curl_share_init().

Возвращаемые значения

Возвращает код последней ошибки разделяемого обработчика curl в виде целого числа, или FALSE в случае возникновения ошибки.

Смотрите также

  • curl_errno() - Возвращает код последней ошибки


Инициализация разделяемого обработчика cURL

  • « curl_share_errno
  • curl_share_setopt »
  • PHP Manual
  • Функции cURL
  • Инициализация разделяемого обработчика cURL

curl_share_init

(PHP 5 >= 5.5.0, PHP 7)

curl_share_init — Инициализация разделяемого обработчика cURL

Описание

curl_share_init ( void ) : resource

Позволяет разным обработчикам cURL делиться данными друг с другом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ресурс типа "cURL Share Handle".

Примеры

Пример #1 Пример использования curl_share_init()

В этом примере мы создаем разделяемый обработчик cURL, добавляем в него два обычных обработчика и запускаем их. Они будут использовать одни и те же куки.

<?php
// Создаем разделяемый обработчик и настраиваем его на обмен куками
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

// Инициализируем первый обработчик cURL и связываем его с разделяемым
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);

// Запускаем первый запрос
curl_exec($ch1);

// Инициализируем второй обработчик cURL и связываем его с разделяемым
$ch2 = curl_init("http://php.net/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// Запускаем второй обработчик.
//  Ему будут доступны все куки от первого обработчика $ch1
curl_exec($ch2);

// Закрываем разделяемый обработчик
curl_share_close($sh);

// Закрываем оба обычных обработчика
curl_close($ch1);
curl_close($ch2);
?>

Смотрите также

  • curl_share_setopt() - Установить опции разделяемого обработчика cURL
  • curl_share_close() - Закрыть разделяемый обработчик cURL


Установить опции разделяемого обработчика cURL

  • « curl_share_init
  • curl_share_strerror »
  • PHP Manual
  • Функции cURL
  • Установить опции разделяемого обработчика cURL

curl_share_setopt

(PHP 5 >= 5.5.0, PHP 7)

curl_share_setopt — Установить опции разделяемого обработчика cURL

Описание

curl_share_setopt ( resource $sh , int $option , string $value ) : bool

Устанавливает опции разделяемого обработчика cURL.

Список параметров

sh

Обработчик cURL, полученный из curl_share_init()

option

Опция | Описание
CURLSHOPT_SHARE | Задает тип данных, которые необходимо разделять.
CURLSHOPT_UNSHARE | Задает тип данных, которые больше не надо разделять.

value

Значение | Описание
CURL_LOCK_DATA_COOKIE | Разделяет данные cookie.
CURL_LOCK_DATA_DNS | Разделяет кеш DNS. Обратите внимание, что если вы используете множественный обработчик cURL, то все добавленные обработчики по умолчанмю будут разделять DNS-кеш.
CURL_LOCK_DATA_SSL_SESSION | Разделяет идентификаторы сессии SSL, сокращая время, затрачиваемое на подтверждение (handshake) SSL при повторном соединении к тому же самому серверу. Обратите внимание, что идентификаторы сессии SSL будут по умолчанию переиспользоваться тем же самым обработчиком.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования curl_share_setopt()

В этом примере мы создаем разделяемый обработчик cURL, добавляем в него два обычных обработчика и запускаем их. Они будут использовать одни и те же куки.

<?php
// Создаем разделяемый обработчик и настраиваем его на обмен куками
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

// Инициализируем первый обработчик cURL и связываем его с разделяемым
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);

// Запускаем первый запрос
curl_exec($ch1);

// Инициализируем второй обработчик cURL и связываем его с разделяемым
$ch2 = curl_init("http://php.net/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// Запускаем второй обработчик.
//  Ему будут доступны все куки от первого обработчика $ch1
curl_exec($ch2);

// Закрываем разделяемый обработчик
curl_share_close($sh);

// Закрываем оба обычных обработчика
curl_close($ch1);
curl_close($ch2);
?>


Возвращает описание для заданного кода ошибки

  • « curl_share_setopt
  • curl_strerror »
  • PHP Manual
  • Функции cURL
  • Возвращает описание для заданного кода ошибки

curl_share_strerror

(PHP 7 >= 7.1.0)

curl_share_strerror — Возвращает описание для заданного кода ошибки

Описание

curl_share_strerror ( int $errornum ) : string

Возвращает описание для заданного кода ошибки.

Список параметров

errornum

Одна из констант: » Коды ошибок cURL.

Возвращаемые значения

Возвращает описание для заданного кода ошибки или NULL, если такого кода не существует.

Смотрите также

  • curl_share_errno() - Возвращает код последней ошибки разделяемого обработчика curl
  • curl_strerror() - Получить текстовое описание для кода ошибки


Получить текстовое описание для кода ошибки

  • « curl_share_strerror
  • curl_unescape »
  • PHP Manual
  • Функции cURL
  • Получить текстовое описание для кода ошибки

curl_strerror

(PHP 5 >= 5.5.0, PHP 7)

curl_strerror — Получить текстовое описание для кода ошибки

Описание

curl_strerror ( int $errornum ) : string

Возвращает текстовое описание заданного кода ошибки.

Список параметров

errornum

Одна из констант » кодов ошибок cURL.

Возвращаемые значения

Возвращает описание ошибки или NULL, если такой ошибки нет.

Примеры

Пример #1 Пример использования curl_errno()

<?php
// Создаем обработчик curl с некорректным указанием протокола в URL
$ch = curl_init("htp://example.com/");

// Посылаем запрос
curl_exec($ch);

// Проверяем на ошибки и выводим их описание
if($errno = curl_errno($ch)) {
    $error_message = curl_strerror($errno);
    echo "cURL error ({$errno}):\n {$error_message}";
}

// Закрываем обработчик
curl_close($ch);
?>

Результат выполнения данного примера:

cURL error (1):
 Unsupported protocol

Смотрите также

  • curl_errno() - Возвращает код последней ошибки
  • curl_error() - Возвращает строку с описанием последней ошибки текущего сеанса
  • » Коды ошибок Curl


Декодирует закодированную URL-строку

  • « curl_strerror
  • curl_version »
  • PHP Manual
  • Функции cURL
  • Декодирует закодированную URL-строку

curl_unescape

(PHP 5 >= 5.5.0, PHP 7)

curl_unescape — Декодирует закодированную URL-строку

Описание

curl_unescape ( resource $ch , string $str ) : string

Эта функция декодирует закодированную URL-строку.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

str

Закодированая строка.

Возвращаемые значения

Возвращает декодированную строку или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования curl_escape()

<?php
// Создаем обработчик curl
$ch = curl_init('http://example.com/redirect.php');

// Посылаем HTTP-запрос
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec($ch);

// Получаем последний использованный URL
$effective_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
// например "http://example.com/show_location.php?loc=M%C3%BCnchen"

// Декодируем
$effective_url_decoded = curl_unescape($ch, $effective_url);
// "http://example.com/show_location.php?loc=Munchen"

// Закрываем обработчик
curl_close($ch);
?>

Примечания

Замечание:

curl_unescape() не преобразует плюс (+) в пробел. Это делает функция urldecode().

Смотрите также

  • curl_escape() - Кодирует заданную строку как URL
  • urlencode() - URL-кодирование строки
  • urldecode() - Декодирование URL-кодированной строки
  • rawurlencode() - URL-кодирование строки согласно RFC 3986
  • rawurldecode() - Декодирование URL-кодированной строки


Возвращает версию cURL

  • « curl_unescape
  • Event »
  • PHP Manual
  • Функции cURL
  • Возвращает версию cURL

curl_version

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_version — Возвращает версию cURL

Описание

curl_version ([ int $age = CURLVERSION_NOW ] ) : array

Возвращает информацию о версии cURL.

Список параметров

age

Возвращаемые значения

Возвращает ассоциативный массив со следующими элементами:

Ключ | Описание значения
version_number | 24-битный номер версии cURL
version | Номер версии cURL, в виде строки
ssl_version_number | 24-битный номер версии OpenSSL
ssl_version | Номер версии OpenSSL, в виде строки
libz_version | Номер версии zlib, в виде строки
host | Информация о хосте, где была собрана cURL
age |
features | Битовая маска констант CURL_VERSION_XXX
protocols | Массив поддерживаемых протоколов cURL

Примеры

Пример #1 Пример использования curl_version()

Этот пример проверит, какие возможности поддерживает данная сборка cURL с помощью битовой маски 'features', возвращаемой функцией curl_version().

<?php
// Получаем массив с информацией о версии curl
$version = curl_version();

// Это битовые поля, которые можно использовать
// для проверки возможностей сборки curl
$bitfields = Array(
            'CURL_VERSION_IPV6',
            'CURL_VERSION_KERBEROS4',
            'CURL_VERSION_SSL',
            'CURL_VERSION_LIBZ'
            );

foreach($bitfields as $feature)
{
    echo $feature . ($version['features'] & constant($feature) ? ' есть' : ' нет');
    echo PHP_EOL;
}
?>


Event

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Примеры
  • Флаги событий
  • О постоянных(persistent) событиях
  • Callback-функции
  • Создание событий для сигналов
  • Event — Класс Event
    • Event::add — Перести событие в состояние ожидания
    • Event::addSignal — Перевести событие сигнала в состояние ожидания
    • Event::addTimer — Перевести событие таймера в состояние ожидания
    • Event::__construct — Конструктор объекта Event
    • Event::del — Перевести событие в пассивное состояние
    • Event::delSignal — Перевести событие сигнала в пассивное состояние
    • Event::delTimer — Перевести событие таймера в пассивное состояние
    • Event::free — Перевести событие в пассивное состояние и высвободить все выделенные для него ресурсы
    • Event::getSupportedMethods — Получить массив с именами методов, поддерживаемых в текущей версии Libevent
    • Event::pending — Проверить, что событие находится в состоянии ожидания либо что оно запланировано
    • Event::set — Переконфигурировать событие
    • Event::setPriority — Задать приоритет событию
    • Event::setTimer — Переконфигурация события таймера
    • Event::signal — Создать объект события сигнала
    • Event::timer — Создать объект события таймера
  • EventBase — Класс EventBase
    • EventBase::__construct — Конструктор объекта EventBase
    • EventBase::dispatch — Отправляет ожидающие события
    • EventBase::exit — Прекращает отправку событий
    • EventBase::free — Освобождает ресурсы, выделенные для этой базы событий
    • EventBase::getFeatures — Возвращает битовую маску поддерживаемых функций
    • EventBase::getMethod — Возвращает используемый метод события
    • EventBase::getTimeOfDayCached — Возвращает текущее время базовы событий
    • EventBase::gotExit — Проверяет, был ли цикл обработки событий завершен
    • EventBase::gotStop — Проверяет, был ли цикл обработки событий завершен
    • EventBase::loop — Отправка ожидающих событий
    • EventBase::priorityInit — Устанавливает количество приоритетов на базу событий
    • EventBase::reInit — Повторная инициализация базы событий (после разветвления)
    • EventBase::stop — Сообщает event_base прекратить отправку событий
  • EventBuffer — Класс EventBuffer
    • EventBuffer::add — Добавляет данные в конец буфера событий
    • EventBuffer::addBuffer — Перемещает все данные из буфера экземпляру EventBuffer
    • EventBuffer::appendFrom — Перемещает указанное количество байтов из исходного буфера в конец текущего буфера
    • EventBuffer::__construct — Создает объект EventBuffer
    • EventBuffer::copyout — Копирует указанное количество байтов с начала буфера
    • EventBuffer::drain — Удаляет указанное количество байтов с начала буфера, никуда не копируя
    • EventBuffer::enableLocking — Описание
    • EventBuffer::expand — Резервирует пространство в буфере
    • EventBuffer::freeze — Prevent calls that modify an event buffer from succeeding
    • EventBuffer::lock — Получает блокировку буфера
    • EventBuffer::prepend — Prepend data to the front of the buffer
    • EventBuffer::prependBuffer — Moves all data from source buffer to the front of current buffer
    • EventBuffer::pullup — Linearizes data within buffer and returns it's contents as a string
    • EventBuffer::read — Read data from an evbuffer and drain the bytes read
    • EventBuffer::readFrom — Read data from a file onto the end of the buffer
    • EventBuffer::readLine — Extracts a line from the front of the buffer
    • EventBuffer::search — Scans the buffer for an occurrence of a string
    • EventBuffer::searchEol — Scans the buffer for an occurrence of an end of line
    • EventBuffer::substr — Substracts a portion of the buffer data
    • EventBuffer::unfreeze — Re-enable calls that modify an event buffer
    • EventBuffer::unlock — Снимает блокировку, установленную EventBuffer::lock
    • EventBuffer::write — Write contents of the buffer to a file or socket
  • EventBufferEvent — Класс EventBufferEvent
    • EventBufferEvent::close — Closes file descriptor associated with the current buffer event
    • EventBufferEvent::connect — Connect buffer event's file descriptor to given address or UNIX socket
    • EventBufferEvent::connectHost — Connects to a hostname with optionally asyncronous DNS resolving
    • EventBufferEvent::__construct — Constructs EventBufferEvent object
    • EventBufferEvent::createPair — Creates two buffer events connected to each other
    • EventBufferEvent::disable — Disable events read, write, or both on a buffer event
    • EventBufferEvent::enable — Enable events read, write, or both on a buffer event
    • EventBufferEvent::free — Free a buffer event
    • EventBufferEvent::getDnsErrorString — Returns string describing the last failed DNS lookup attempt
    • EventBufferEvent::getEnabled — Returns bitmask of events currently enabled on the buffer event
    • EventBufferEvent::getInput — Returns underlying input buffer associated with current buffer event
    • EventBufferEvent::getOutput — Returns underlying output buffer associated with current buffer event
    • EventBufferEvent::read — Read buffer's data
    • EventBufferEvent::readBuffer — Drains the entire contents of the input buffer and places them into buf
    • EventBufferEvent::setCallbacks — Assigns read, write and event(status) callbacks
    • EventBufferEvent::setPriority — Assign a priority to a bufferevent
    • EventBufferEvent::setTimeouts — Set the read and write timeout for a buffer event
    • EventBufferEvent::setWatermark — Adjusts read and/or write watermarks
    • EventBufferEvent::sslError — Возвращает последнюю ошибку OpenSSL, сообщенную буферному событию
    • EventBufferEvent::sslFilter — Create a new SSL buffer event to send its data over another buffer event
    • EventBufferEvent::sslGetCipherInfo — Возвращает текстовое описание шифра
    • EventBufferEvent::sslGetCipherName — Возвращает текущее имя шифра соединения SSL
    • EventBufferEvent::sslGetCipherVersion — Возвращает версию шифра, используемого текущим SSL-соединением
    • EventBufferEvent::sslGetProtocol — Возвращает имя протокола, используемого для текущего соединения SSL
    • EventBufferEvent::sslRenegotiate — Сообщает буферному событию начать пересмотр SSL
    • EventBufferEvent::sslSocket — Создает новое буферное событие SSL для отправки своих данных через SSL в сокет
    • EventBufferEvent::write — Добавляет данные в буфер вывода буферного события
    • EventBufferEvent::writeBuffer — Добавляет содержимое всего буфера в буфер вывода буферного события
  • О callback-функциях событийного буфера
  • EventConfig — Класс EventConfig
    • EventConfig::avoidMethod — Попросить libevent не использовать определенный метод события
    • EventConfig::__construct — Создать объект EventConfig
    • EventConfig::requireFeatures — Ввести требуемые приложением свойства метода события
    • EventConfig::setMaxDispatchInterval — Предотвратить инверсию приоритетов
  • EventDnsBase — Класс EventDnsBase
    • EventDnsBase::addNameserverIp — Добавляет сервер имен в базу DNS
    • EventDnsBase::addSearch — Добавляет домен в список поисковых доменов
    • EventDnsBase::clearSearch — Удаляет все текущие суффиксы поиска
    • EventDnsBase::__construct — Конструктор объекта EventDnsBase
    • EventDnsBase::countNameservers — Получает количество настроенных серверов имен
    • EventDnsBase::loadHosts — Загружает файл hosts (в том же формате, что и /etc/hosts) из файла hosts
    • EventDnsBase::parseResolvConf — Сканирует файл в формате resolv.conf
    • EventDnsBase::setOption — Устанавливает значение параметра конфигурации
    • EventDnsBase::setSearchNdots — Устанавливает параметр 'ndots' для поиска
  • EventHttp — Класс EventHttp
    • EventHttp::accept — Заставляет HTTP-сервер принимать соединения с указанным потоком сокета или ресурсом
    • EventHttp::addServerAlias — Добавляет псевдоним сервера к объекту HTTP-сервера
    • EventHttp::bind — Привязывает HTTP-сервер к указанному адресу и порту
    • EventHttp::__construct — Создает объект EventHttp (HTTP-сервер)
    • EventHttp::removeServerAlias — Удаляет псевдоним сервера
    • EventHttp::setAllowedMethods — Устанавливает, какие методы HTTP поддерживаются в запросах, принятых этим сервером и переданных callback-функции пользователя
    • EventHttp::setCallback — Устанавливает callback-функцию для указанного URI
    • EventHttp::setDefaultCallback — Устанавливает callback-функцию по умолчанию для обработки запросов, которые не перехватываются конкретными callback-функциями
    • EventHttp::setMaxBodySize — Устанавливает максимальный размер тела запроса
    • EventHttp::setMaxHeadersSize — Устанавливает максимальный размер HTTP-заголовка
    • EventHttp::setTimeout — Устанавливает время ожидания для HTTP-запроса
  • EventHttpConnection — Класс EventHttpConnection
    • EventHttpConnection::__construct — Конструктор объекта EventHttpConnection
    • EventHttpConnection::getBase — Возвращает базу событий, связанную с соединением
    • EventHttpConnection::getPeer — Получает удаленный адрес и порт, связанный с соединением
    • EventHttpConnection::makeRequest — Делает HTTP-запрос по указанному соединению
    • EventHttpConnection::setCloseCallback — Устанавливает callback-функцию при закрытии соединения
    • EventHttpConnection::setLocalAddress — Устанавливает IP-адрес, с которого происходят HTTP-соединения
    • EventHttpConnection::setLocalPort — Устанавливает локальный порт, с которого производятся соединения
    • EventHttpConnection::setMaxBodySize — Устанавливает максимальный размер тела для подключения
    • EventHttpConnection::setMaxHeadersSize — Устанавливает максимальный размер заголовка
    • EventHttpConnection::setRetries — Устанавливает максимальное количество повторов для соединения
    • EventHttpConnection::setTimeout — Устанавливает время ожидания для соединения
  • EventHttpRequest — Класс EventHttpRequest
    • EventHttpRequest::addHeader — Добавляет заголовок HTTP к заголовкам запроса
    • EventHttpRequest::cancel — Отменяет ожидающий HTTP-запрос
    • EventHttpRequest::clearHeaders — Удаляет все выходные заголовки из списка заголовков запроса
    • EventHttpRequest::closeConnection — Закрывает связанное HTTP-соединение
    • EventHttpRequest::__construct — Конструктор объекта EventHttpRequest
    • EventHttpRequest::findHeader — Получает значение заголовка
    • EventHttpRequest::free — Освобождает объект и удаляет связанные события
    • EventHttpRequest::getBufferEvent — Возвращает объект EventBufferEvent
    • EventHttpRequest::getCommand — Возвращает команду запроса (метод)
    • EventHttpRequest::getConnection — Возвращает объект EventHttpConnection
    • EventHttpRequest::getHost — Возвращает хост запроса
    • EventHttpRequest::getInputBuffer — Возвращает входной буфер
    • EventHttpRequest::getInputHeaders — Возвращает ассоциативный массив входных заголовков
    • EventHttpRequest::getOutputBuffer — Возвращает выходной буфер запроса
    • EventHttpRequest::getOutputHeaders — Возвращает ассоциативный массив выходных заголовков
    • EventHttpRequest::getResponseCode — Возвращает код ответа
    • EventHttpRequest::getUri — Возвращает URI запроса
    • EventHttpRequest::removeHeader — Удаляет заголовок HTTP из заголовков запроса
    • EventHttpRequest::sendError — Отправляет HTML-сообщение об ошибке клиенту
    • EventHttpRequest::sendReply — Отправляет HTML-ответ клиенту
    • EventHttpRequest::sendReplyChunk — Отправляет блок данных, как часть текущего фрагментированного ответа
    • EventHttpRequest::sendReplyEnd — Заполняет фрагментарный ответ, освобождая запрос соответствующим образом
    • EventHttpRequest::sendReplyStart — Инициирует фрагментарный ответ
  • EventListener — Класс EventListener
    • EventListener::__construct — Создать новый слушатель соединения, связанный с событийной базой
    • EventListener::disable — Отключает событие подключения к объекту слушателя
    • EventListener::enable — Включает событие подключения к объекту слушателя
    • EventListener::getBase — Возвращает базу событий, связанную со слушателем событий
    • EventListener::getSocketName — Получает текущий адрес, к которому привязан сокет слушателя
    • EventListener::setCallback — Цель setCallback
    • EventListener::setErrorCallback — Устанавливает callback-функцию ошибки слушателя событий
  • EventSslContext — Класс EventSslContext
    • EventSslContext::__construct — Конструктор контекста OpenSSL для использования в классах Event
  • EventUtil — Класс EventUtil
    • EventUtil::__construct — Абстрактный конструктор
    • EventUtil::getLastSocketErrno — Получить номер последней возникшей ошибки сокета
    • EventUtil::getLastSocketError — Получить последнюю возникшую ошибку сокета
    • EventUtil::getSocketFd — Получить числовой файловый дескриптор сокета или потока
    • EventUtil::getSocketName — Получить текущий адрес, к которому привязан сокет
    • EventUtil::setSocketOption — Установить опции сокета
    • EventUtil::sslRandPoll — Сгенерировать энтропию с помощью RAND_poll() из OpenSSL


Введение

Модуль для эффективного мониторинга процессов ввода/вывода, и событий таймера и сигналов, использующий лучший из доступных для конкретной платформы механизмов уведомления о событиях ввода/вывода. Модуль является переписанной для PHP библиотеки libevent.

Замечание:

Обратите внимание, что поддержка Windows появилась в event-1.9.0.

В версии 1.0.0 добавлено новое объектно-ориентированное API (ломающее обратную совместимость) и поддержка libevent 2+, включая HTTP, DNS, OpenSSL и перехватчик сигналов.

Замечание:

Обратите внимание, что event-1.0.0 и выше не совместимы с предыдущими версиями.


Требования

Модулю требуется библиотека » libevent. Библиотека присутствует в большинстве современных дистрибутивов.

Для функционала OpenSSL требуется библиотека » OpenSSL.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/event .


Примеры

Пример #1 Простой клиент HTTP

<?php
// Функция обратного вызова обработки чтения
function readcb($bev, $base) {
    //$input = $bev->input; //$bev->getInput();

    //$pos = $input->search("TTP");
    $pos = $bev->input->search("TTP");

    while (($n = $bev->input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}

// Функция обратного вызова обработки события
function eventcb($bev, $events, $base) {
    if ($events & EventBufferEvent::CONNECTED) {
        echo "Соединение установлено.\n";
    } elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Ошибка DNS: ", $bev->getDnsErrorString(), PHP_EOL;
        }

        echo "Закрываем соединение\n";
        $base->exit();
        exit("Готово\n");
    }
}

if ($argc != 3) {
    echo <<<EOS
Trivial HTTP 0.x client
Syntax: php {$argv[0]} [hostname] [resource]
Example: php {$argv[0]} www.google.com /

EOS;
    exit();
}

$base = new EventBase();

$dns_base = new EventDnsBase($base, TRUE); // Используем асинхронный запрос к DNS
if (!$dns_base) {
    exit("Failed to init DNS Base\n");
}

$bev = new EventBufferEvent($base, /* используем внутренний сокет */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
    "readcb", /* writecb */ NULL, "eventcb"
);
if (!$bev) {
    exit("Ошибка создания сокета bufferevent\n");
}

//$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

$output = $bev->output; //$bev->getOutput();
if (!$output->add(
    "GET {$argv[2]} HTTP/1.0\r\n".
    "Host: {$argv[1]}\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Ошибка добавления запроса в буфер вывода\n");
}

if (!$bev->connectHost($dns_base, $argv[1], 80, EventUtil::AF_UNSPEC)) {
    exit("Невозможно установить соединение с {$argv[1]}\n");
}

$base->dispatch();
?>

Результатом выполнения данного примера будет что-то подобное:

Соединение установлено.
HTTP/1.1 301 Moved Permanently
Date: Fri, 01 Mar 2013 18:47:48 GMT
Location: http://www.google.co.uk/
Content-Type: text/html; CHARSET=Windows-1251
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 221
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Age: 133438
Expires: Sat, 30 Mar 2013 05:39:28 GMT
Connection: close

<HTML><HEAD><meta http-equiv="content-type" content="text/html;CHARSET=Windows-1251">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.co.uk/">here</A>.
</BODY></HTML>
Закрываем соединение
Готово

Пример #2 HTTP клиент с асинхронным запросом к DNS

<?php
/*
 * 1. Соединяемся с 127.0.0.1 на порту 80
 * посредством EventBufferEvent::connect().
 *
 * 2. Запрашиваем /index.cphp по протоколу HTTP/1.0
 * используя буфер вывода.
 *
 * 3. Асинхорнно читаем ответ и выводим его в stdout.
 */

// Функция обратного вызова обработки чтения
function readcb($bev, $base) {
    $input = $bev->getInput();

    while (($n = $input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}

// Функция обратного вызова обработки события
function eventcb($bev, $events, $base) {
    if ($events & EventBufferEvent::CONNECTED) {
        echo "Соединение установлено.\n";
    } elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Ошибка DNS: ", $bev->getDnsErrorString(), PHP_EOL;
        }

        echo "Закрываем соединение\n";
        $base->exit();
        exit("Готово\n");
    }
}

$base = new EventBase();

echo "step 1\n";
$bev = new EventBufferEvent($base, /* используем внутренний сокет*/ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS);
if (!$bev) {
    exit("Ошибка создания сокета bufferevent\n");
}

echo "step 2\n";
$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

echo "step 3\n";
// Посылаем запрос
$output = $bev->getOutput();
if (!$output->add(
    "GET /index.cphp HTTP/1.0\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Ошибка добавления запроса в буфер вывода\n");
}

/* Синхронно соединяемся с хостом.
Мы знаем IP и не нуждаемся в запросе к DNS. */
if (!$bev->connect("127.0.0.1:80")) {
    exit("Не удалось установить соединение\n");
}

// Обрабатываем ожидающие события
$base->dispatch();
?>

Пример #3 Эхо-сервер

<?php
/*
 * Простой эхо-сервер на базе слушателя соединений libevent
 *
 * Использование:
 * 1) В первом терминальном окне запускаем:
 *
 * $ php listener.php 9881
 *
 * 2) Во втором терминальном окне открываем соединение:
 *
 * $ nc 127.0.0.1 9881
 *
 * 3) Начинаем печатать. Сервер должен повторять наш ввод.
 */

class MyListenerConnection {
    private $bev, $base;

    public function __destruct() {
        $this->bev->free();
    }

    public function __construct($base, $fd) {
        $this->base = $base;

        $this->bev = new EventBufferEvent($base, $fd, EventBufferEvent::OPT_CLOSE_ON_FREE);

        $this->bev->setCallbacks(array($this, "echoReadCallback"), NULL,
            array($this, "echoEventCallback"), NULL);

        if (!$this->bev->enable(Event::READ)) {
            echo "Не удалось разрешить чтение (READ)\n";
            return;
        }
    }

    public function echoReadCallback($bev, $ctx) {
        // Копируем все данные из буфера ввода в буфер вывода

        // Вариант #1
        $bev->output->addBuffer($bev->input);

        /* Вариант #2 */
        /*
        $input    = $bev->getInput();
        $output = $bev->getOutput();
        $output->addBuffer($input);
        */
    }

    public function echoEventCallback($bev, $events, $ctx) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Ошибка bufferevent\n";
        }

        if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
            //$bev->free();
            $this->__destruct();
        }
    }
}

class MyListener {
    public $base,
        $listener,
        $socket;
    private $conn = array();

    public function __destruct() {
        foreach ($this->conn as &$c) $c = NULL;
    }

    public function __construct($port) {
        $this->base = new EventBase();
        if (!$this->base) {
            echo "Не удается создать EventBase";
            exit(1);
        }

        // Вариант #1
        /*
        $this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
        if (!socket_bind($this->socket, '0.0.0.0', $port)) {
            echo "Невозможно назначить сокет\n";
            exit(1);
        }
        $this->listener = new EventListener($this->base,
            array($this, "acceptConnCallback"), $this->base,
            EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
            -1, $this->socket);
         */

        // Вариант #2
         $this->listener = new EventListener($this->base,
             array($this, "acceptConnCallback"), $this->base,
             EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE, -1,
             "0.0.0.0:$port");

        if (!$this->listener) {
            echo "Невозможно создать слушателя";
            exit(1);
        }

        $this->listener->setErrorCallback(array($this, "accept_error_cb"));
    }

    public function dispatch() {
        $this->base->dispatch();
    }

    // Эта функция обратного вызова будет вызвана, если в $bev есть данные для чтения
    public function acceptConnCallback($listener, $fd, $address, $ctx) {
        // У нас новое соединение! Настроим bufferevent для него. */
        $base = $this->base;
        $this->conn[] = new MyListenerConnection($base, $fd);
    }

    public function accept_error_cb($listener, $ctx) {
        $base = $this->base;

        fprintf(STDERR, "Ошибка слушателя: %d (%s). "
            ."Аварийная остановка.\n",
            EventUtil::getLastSocketErrno(),
            EventUtil::getLastSocketError());

        $base->exit(NULL);
    }
}

$port = 9808;

if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Некорректный порт");
}

$l = new MyListener($port);
$l->dispatch();
?>

Пример #4 SSL эхо-сервер

<?php
/*
 * SSL эхо-сервер
 *
 * Для тестирования:
 * 1) Запустите:
 * $ php examples/ssl-echo-server/server.php 9998
 *
 * 2) В другом окне:
 * $ socat - SSL:127.0.0.1:9998,verify=1,cafile=examples/ssl-echo-server/cert.pem
 */

class MySslEchoServer {
    public $port,
        $base,
        $bev,
        $listener,
        $ctx;

    function __construct ($port, $host = "127.0.0.1") {
        $this->port = $port;
        $this->ctx = $this->init_ssl();
        if (!$this->ctx) {
            exit("Невозможно создать контекст SSL\n");
        }

        $this->base = new EventBase();
        if (!$this->base) {
            exit("Невозможно создать EventBase\n");
        }

        $this->listener = new EventListener($this->base,
            array($this, "ssl_accept_cb"), $this->ctx,
            EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
            -1, "$host:$port");
        if (!$this->listener) {
            exit("невозможно создать слушателя\n");
        }

        $this->listener->setErrorCallback(array($this, "accept_error_cb"));
    }
    function dispatch() {
        $this->base->dispatch();
    }

    // Эта функция обратного вызова будет вызвана, если в $bev есть данные для чтения
    function ssl_read_cb($bev, $ctx) {
        $in = $bev->input; //$bev->getInput();

        printf("Received %zu bytes\n", $in->length);
        printf("----- data ----\n");
        printf("%ld:\t%s\n", (int) $in->length, $in->pullup(-1));

        $bev->writeBuffer($in);
    }

    // Эта функция обратного вызова будет вызвана, если на слушателя придет событие,
    // например если закроется соединение или произойдет ошибка
    function ssl_event_cb($bev, $events, $ctx) {
        if ($events & EventBufferEvent::ERROR) {
            // Извлекаем ошибку из стека ошибок SSL
            while ($err = $bev->sslError()) {
                fprintf(STDERR, "Ошибка bufferevent: %s.\n", $err);
            }
        }

        if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
            $bev->free();
        }
    }

    // Эта функция обратного вызова будет вызвана, когда клиент примет новое соединение
    function ssl_accept_cb($listener, $fd, $address, $ctx) {
        // У нас новое соединение! Настроим bufferevent для него.
        $this->bev = EventBufferEvent::sslSocket($this->base, $fd, $this->ctx,
            EventBufferEvent::SSL_ACCEPTING, EventBufferEvent::OPT_CLOSE_ON_FREE);

        if (!$this->bev) {
            echo "Failed creating ssl buffer\n";
            $this->base->exit(NULL);
            exit(1);
        }

        $this->bev->enable(Event::READ);
        $this->bev->setCallbacks(array($this, "ssl_read_cb"), NULL,
            array($this, "ssl_event_cb"), NULL);
    }

    // Эта функция обратного вызова будет вызвана, если не удастся создать новое соединение
    function accept_error_cb($listener, $ctx) {
        fprintf(STDERR, "Ошибка слушателя: %d (%s). "
            ."Shutting down.\n",
            EventUtil::getLastSocketErrno(),
            EventUtil::getLastSocketError());

        $this->base->exit(NULL);
    }

    // Инициализируем структуры SSL, создаем EventSslContext
    // Опционально создаем самоподписанный сертификат
    function init_ssl() {
        // Нам *необходима* энтропия. Иначе в криптографии нет смысла.
        if (!EventUtil::sslRandPoll()) {
            exit("EventUtil::sslRandPoll failed\n");
        }

        $local_cert = __DIR__."/cert.pem";
        $local_pk   = __DIR__."/privkey.pem";

        if (!file_exists($local_cert) || !file_exists($local_pk)) {
            echo "Невозможно прочитать $local_cert или $local_pk file.  Для генерации ключа\n",
                "и самоподписанного сертификата, запустите:\n",
                "  openssl genrsa -out $local_pk 2048\n",
                "  openssl req -new -key $local_pk -out cert.req\n",
                "  openssl x509 -req -days 365 -in cert.req -signkey $local_pk -out $local_cert\n";

            return FALSE;
        }

        $ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, array (
             EventSslContext::OPT_LOCAL_CERT  => $local_cert,
             EventSslContext::OPT_LOCAL_PK    => $local_pk,
             //EventSslContext::OPT_PASSPHRASE  => "echo server",
             EventSslContext::OPT_VERIFY_PEER => true,
             EventSslContext::OPT_ALLOW_SELF_SIGNED => false,
        ));

        return $ctx;
    }
}

// Разрешаем переопределение порта
$port = 9999;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Некорректный порт\n");
}

$l = new MySslEchoServer($port);
$l->dispatch();
?>

Пример #5 Обработчик сигналов

<?php
/*
Запустите в терминальном окне:

$ php examples/signal.php

В другом терминальном окне найдите pid этого процесса и пошлите ему сигнал SIGTERM:

$ ps aux | grep examp
ruslan    3976  0.2  0.0 139896 11256 pts/1    S+   10:25   0:00 php examples/signal.php
ruslan    3978  0.0  0.0   9572   864 pts/2    S+   10:26   0:00 grep --color=auto examp
$ kill -TERM 3976

В первом окне вы должны увидить следующее::

Пойман сигнал 15
*/

class MyEventSignal {
    private $base;

    function __construct($base) {
        $this->base = $base;
    }

    function eventSighandler($no, $c) {
        echo "Пойман сигнал $no\n";
        event_base_loopexit($c->base);
    }
}

$base = event_base_new();
$c    = new MyEventSignal($base);
$no   = SIGTERM;
$ev   = evsignal_new($base, $no, array($c,'eventSighandler'), $c);

evsignal_add($ev);

event_base_loop($base);
?>

Пример #6 Использование цикла libevent для обработки запросов расширения `eio'

<?php
// Функция обратного вызова для eio_nop()
function my_nop_cb($d, $r) {
    echo "step 6\n";
}

$dir = "/tmp/abc-eio-temp";
if (file_exists($dir)) {
    rmdir($dir);
}

echo "step 1\n";

$base = new EventBase();

echo "step 2\n";

eio_init();

eio_mkdir($dir, 0750, EIO_PRI_DEFAULT, "my_nop_cb");

$event = new Event($base, eio_get_event_stream(),
    Event::READ | Event::PERSIST, function ($fd, $events, $base) {
    echo "step 5\n";

    while (eio_nreqs()) {
        eio_poll();
    }

    $base->stop();
}, $base);

echo "step 3\n";

$event->add();

echo "step 4\n";

$base->dispatch();

echo "Готово\n";
?>

Пример #7 Разное

<?php
/* {{{ Конфигурация и поддерживаемые методы */
echo "Поддерживаемые методы:\n";
foreach (Event::getSupportedMethods() as $m) {
    echo $m, PHP_EOL;
}

// Избегаем метода "select"
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "Метод `select' исключен\n";
}

// Создаем event_base связанный с конфигурацией
$base = new EventBase($cfg);
echo "Используется событийный метод: ", $base->getMethod(), PHP_EOL;

echo "Способы:\n";
$features = $base->getFeatures();
($features & EventConfig::FEATURE_ET) and print("ET - одноразовое срабатывание при пересечении порога (edge-triggered IO)\n");
($features & EventConfig::FEATURE_O1) and print("O1 - операции добавления/удаления событий со сложностью O(1)\n");
($features & EventConfig::FEATURE_FDS) and print("FDS - обычные дескрипторы файлов, а не только сокеты\n");

// Запрашиваем способ FDS
if ($cfg->requireFeatures(EventConfig::FEATURE_FDS)) {
    echo "Запрошен способ FDS\n";

    $base = new EventBase($cfg);
    ($base->getFeatures() & EventConfig::FEATURE_FDS)
        and print("FDS - обычные дескрипторы файлов, а не только сокеты\n");
}
/* }}} */

/* {{{ Base */
$base = new EventBase();
$event = new Event($base, STDIN, Event::READ | Event::PERSIST, function ($fd, $events, $arg) {
    static $max_iterations = 0;

    if (++$max_iterations >= 5) {
        /* выход после 5 итераций с паузами в 2.33 секунды */
        echo "Останавливаемся...\n";
        $arg[0]->exit(2.33);
    }

    echo fgets($fd);
}, array (&$base));

$event->add();
$base->loop();
/* Base }}} */
?>

Пример #8 Простой HTTP-сервер

<?php
/*
 * Простой HTTP-сервер.
 *
 * Для проверки:
 * 1) Запускаете на любом порту, например:
 * $ php examples/http.php 8010
 * 2) В другом терминальном окне устанавливаете к нему соединение
 * и делаете GET или POST запрос(другие запросы не реализованы):
 * $ nc -t 127.0.0.1 8010
 * POST /about HTTP/1.0
 * Content-Type: text/plain
 * Content-Length: 4
 * Connection: close
 * (нажимаете Enter)
 *
 * Должно вывести:
 * a=12
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * $ nc -t 127.0.0.1 8010
 * GET /dump HTTP/1.0
 * Content-Type: text/plain
 * Content-Encoding: UTF-8
 * Connection: close
 * (нажимаете Enter)
 *
 * IДолжно вывести:
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 * (нажимаете Enter)
 *
 * $ nc -t 127.0.0.1 8010
 * GET /unknown HTTP/1.0
 * Connection: close
 *
 * Должно вывести:
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * 3) Смотрите, что выводится в окне, в котором вы запустили сервер.
 */

function _http_dump($req, $data) {
    static $counter      = 0;
    static $max_requests = 2;

    if (++$counter >= $max_requests)  {
        echo "Счетчик запросов достиг максимума $max_requests. Выходим\n";
        exit();
    }

    echo __METHOD__, " метод\n";
    echo "запрос:"; var_dump($req);
    echo "данные:"; var_dump($data);

    echo "\n===== DUMP =====\n";
    echo "Команда:", $req->getCommand(), PHP_EOL;
    echo "URI:", $req->getUri(), PHP_EOL;
    echo "Входящие заголовки:"; var_dump($req->getInputHeaders());
    echo "Исходящие заголовки:"; var_dump($req->getOutputHeaders());

    echo "\n >> Посылаем ответ ...";
    $req->sendReply(200, "OK");
    echo "OK\n";

    echo "\n >> Читаем входной буфер ...\n";
    $buf = $req->getInputBuffer();
    while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
        echo $s, PHP_EOL;
    }
    echo "В буфере больше нет данных\n";
}

function _http_about($req) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Посылаем ответ ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_default($req, $data) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Посылаем ответ ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

$port = 8010;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Некорректный порт");
}

$base = new EventBase();
$http = new EventHttp($base);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);

$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setDefaultCallback("_http_default", "custom data value");

$http->bind("0.0.0.0", 8010);
$base->loop();
?>

Результатом выполнения данного примера будет что-то подобное:

a=12
HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close
(жмем Enter)

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

Пример #9 Простой HTTPS-сервер

<?php
/*
 * Простой HTTPS-сервер.
 *
 * 1) Запустите сервер: `php examples/https.php 9999`
 * 2) Протестируйте его: `php examples/ssl-connection.php 9999`
 */

function _http_dump($req, $data) {
    static $counter      = 0;
    static $max_requests = 200;

    if (++$counter >= $max_requests)  {
        echo "Счетчик запросов достиг максимума $max_requests. Выходим\n";
        exit();
    }

    echo __METHOD__, " called\n";
    echo "запрос:"; var_dump($req);
    echo "данные:"; var_dump($data);

    echo "\n===== DUMP =====\n";
    echo "Команда:", $req->getCommand(), PHP_EOL;
    echo "URI:", $req->getUri(), PHP_EOL;
    echo "Входящие заголовки:"; var_dump($req->getInputHeaders());
    echo "Исходящие заголовки:"; var_dump($req->getOutputHeaders());

    echo "\n >> Отправляем ответ ...";
    $req->sendReply(200, "OK");
    echo "OK\n";

    $buf = $req->getInputBuffer();
    echo "\n >> Читаем входящий буфер (", $buf->length, ") ...\n";
    while ($s = $buf->read(1024)) {
        echo $s;
    }
    echo "\nВ буфере больше нет данных\n";
}

function _http_about($req) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Отправляем ответ ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_default($req, $data) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Отправляем ответ ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_400($req) {
    $req->sendError(400);
}

function _init_ssl() {
    $local_cert = __DIR__."/ssl-echo-server/cert.pem";
    $local_pk   = __DIR__."/ssl-echo-server/privkey.pem";

    $ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, array (
        EventSslContext::OPT_LOCAL_CERT  => $local_cert,
        EventSslContext::OPT_LOCAL_PK    => $local_pk,
        //EventSslContext::OPT_PASSPHRASE  => "test",
        EventSslContext::OPT_ALLOW_SELF_SIGNED => true,
    ));

    return $ctx;
}

$port = 9999;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Некорректный порт");
}
$ip = '0.0.0.0';

$base = new EventBase();
$ctx  = _init_ssl();
$http = new EventHttp($base, $ctx);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);

$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setCallback("/err400", "_http_400");
$http->setDefaultCallback("_http_default", "custom data value");

$http->bind($ip, $port);
$base->dispatch();

Пример #10 OpenSSL соединение

<?php
/*
 * Простой OpenSSL клиент.
 *
 * Использование:
 * 1) Запускаем сервер, например так:
 * $ php examples/https.php 9999
 *
 * 2) Запускаем клиента в другом окне:
 * $ php examples/ssl-connection.php 9999
 */

function _request_handler($req, $base) {
    echo __FUNCTION__, PHP_EOL;

    if (is_null($req)) {
        echo "Превышен интервал ожидания\n";
    } else {
        $response_code = $req->getResponseCode();

        if ($response_code == 0) {
            echo "В соединении отказано\n";
        } elseif ($response_code != 200) {
            echo "Неожиданный ответ: $response_code\n";
        } else {
            echo "Соединение успешно: $response_code\n";
            $buf = $req->getInputBuffer();
            echo "Body:\n";
            while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
                echo $s, PHP_EOL;
            }
        }
    }

    $base->exit(NULL);
}

function _init_ssl() {
    $ctx = new EventSslContext(EventSslContext::SSLv3_CLIENT_METHOD, array ());

    return $ctx;
}

// Разрешаем переопределять порт
$port = 9999;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Некорректный порт\n");
}
$host = '127.0.0.1';

$ctx = _init_ssl();
if (!$ctx) {
    trigger_error("Не удалось создать контекст SSL", E_USER_ERROR);
}

$base = new EventBase();
if (!$base) {
    trigger_error("Не удалось инициализировать обработчик событий", E_USER_ERROR);
}

$conn = new EventHttpConnection($base, NULL, $host, $port, $ctx);
$conn->setTimeout(50);

$req = new EventHttpRequest("_request_handler", $base);
$req->addHeader("Host", $host, EventHttpRequest::OUTPUT_HEADER);
$buf = $req->getOutputBuffer();
$buf->add("<html>HTML TEST</html>");
//$req->addHeader("Content-Length", $buf->length, EventHttpRequest::OUTPUT_HEADER);
//$req->addHeader("Connection", "close", EventHttpRequest::OUTPUT_HEADER);
$conn->makeRequest($req, EventHttpRequest::CMD_POST, "/dump");

$base->dispatch();
echo "END\n";
?>

Пример #11 Пример использования EventHttpConnection::makeRequest()

<?php
function _request_handler($req, $base) {
    echo __FUNCTION__, PHP_EOL;

    if (is_null($req)) {
        echo "Timed out\n";
    } else {
        $response_code = $req->getResponseCode();

        if ($response_code == 0) {
            echo "В соединении отказано\n";
        } elseif ($response_code != 200) {
            echo "Неожиданный ответ: $response_code\n";
        } else {
            echo "Успешное соединение: $response_code\n";
            $buf = $req->getInputBuffer();
            echo "Данные:\n";
            while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
                echo $s, PHP_EOL;
            }
        }
    }

    $base->exit(NULL);
}

$address = "127.0.0.1";
$port = 80;

$base = new EventBase();
$conn = new EventHttpConnection($base, NULL, $address, $port);
$conn->setTimeout(5);
$req = new EventHttpRequest("_request_handler", $base);

$req->addHeader("Host", $address, EventHttpRequest::OUTPUT_HEADER);
$req->addHeader("Content-Length", "0", EventHttpRequest::OUTPUT_HEADER);
$conn->makeRequest($req, EventHttpRequest::CMD_GET, "/index.cphp");

$base->loop();
?>

Результатом выполнения данного примера будет что-то подобное:

_request_handler
Success: 200
Body:
PHP, date:
2013-03-13T20:27:52+05:00

Пример #12 Слушатель соединений на базе сокетов UNIX

<?php
/*
 * Простой echo-сервер на базе слушателя соединений libevent.
 *
 * Использование:
 * 1) В первом окне запустите слушатель:
 *
 * $ php unix-domain-listener.php [путь к сокету]
 *
 * 2) Во втором окне откройте соединение к сокету:
 *
 * $ socat - GOPEN:/tmp/1.sock
 *
 * 3) Начните печататью Сервер должен повторять ввод.
 */

class MyListenerConnection {
    private $bev, $base;

    public function __destruct() {
        if ($this->bev) {
            $this->bev->free();
        }
    }

    public function __construct($base, $fd) {
        $this->base = $base;

        $this->bev = new EventBufferEvent($base, $fd, EventBufferEvent::OPT_CLOSE_ON_FREE);

        $this->bev->setCallbacks(array($this, "echoReadCallback"), NULL,
            array($this, "echoEventCallback"), NULL);

        if (!$this->bev->enable(Event::READ)) {
            echo "Не удалось разрешить чтение (READ)\n";
            return;
        }
    }

    public function echoReadCallback($bev, $ctx) {
        // Копируем все данные из входящего буфера в исходящий буфер
        $bev->output->addBuffer($bev->input);
    }

    public function echoEventCallback($bev, $events, $ctx) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Ошибка в bufferevent\n";
        }

        if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
            $bev->free();
            $bev = NULL;
        }
    }
}

class MyListener {
    public $base,
        $listener,
        $socket;
    private $conn = array();

    public function __destruct() {
        foreach ($this->conn as &$c) $c = NULL;
    }

    public function __construct($sock_path) {
        $this->base = new EventBase();
        if (!$this->base) {
            echo "Не удается открыть обработчик ошибок";
            exit(1);
        }

        if (file_exists($sock_path)) {
            unlink($sock_path);
        }

         $this->listener = new EventListener($this->base,
             array($this, "acceptConnCallback"), $this->base,
             EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE, -1,
             "unix:$sock_path");

        if (!$this->listener) {
            trigger_error("Невозможно создать слушатель", E_USER_ERROR);
        }

        $this->listener->setErrorCallback(array($this, "accept_error_cb"));
    }

    public function dispatch() {
        $this->base->dispatch();
    }

    // Эта callback-функция будет запущена, когда в $bev появятся данные для чтения
    public function acceptConnCallback($listener, $fd, $address, $ctx) {
        // Появилось новое соединение! Настроем для него bufferevent. */
        $base = $this->base;
        $this->conn[] = new MyListenerConnection($base, $fd);
    }

    public function accept_error_cb($listener, $ctx) {
        $base = $this->base;

        fprintf(STDERR, "Ошибка слушателя: %d (%s). "
            ."Shutting down.\n",
            EventUtil::getLastSocketErrno(),
            EventUtil::getLastSocketError());

        $base->exit(NULL);
    }
}

if ($argc <= 1) {
    exit("Не указан сокет\n");
}
$sock_path = $argv[1];

$l = new MyListener($sock_path);
$l->dispatch();
?>

Пример #13 Простой SMTP-сервер

<?php
 /*
 * Автор: Andrew Rose <hello at andrewrose dot co dot uk>
 *
 * Usage:
 * 1) Подготовим файлы сертификата cert.pem и приватного ключа privkey.pem.
 * 2) Запустим скрипт сервера
 * 3) Откроем TLS-соединение, например:
 *      $ openssl s_client -connect localhost:25 -starttls smtp -crlf
 * 4) Протестируем команды, описанные в метода `cmd`.
 */

class Handler {
    public $domainName = FALSE;
    public $connections = [];
    public $buffers = [];
    public $maxRead = 256000;

    public function __construct() {
        $this->ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, [
            EventSslContext::OPT_LOCAL_CERT  => 'cert.pem',
            EventSslContext::OPT_LOCAL_PK    => 'privkey.pem',
            //EventSslContext::OPT_PASSPHRASE  => '',
            EventSslContext::OPT_VERIFY_PEER => false, // для корректного сертификата укажите true
            EventSslContext::OPT_ALLOW_SELF_SIGNED => true // для корректного сертификата укажите false
        ]);

        $this->base = new EventBase();
        if (!$this->base) {
            exit("Не удалось открыть обработчик событий\n");
        }

        if (!$this->listener = new EventListener($this->base,
            [$this, 'ev_accept'],
            $this->ctx,
            EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
            -1,
            '0.0.0.0:25'))
        {
            exit("Невозможно создать слушателя\n");
        }

        $this->listener->setErrorCallback([$this, 'ev_error']);
        $this->base->dispatch();
    }

    public function ev_accept($listener, $fd, $address, $ctx) {
        static $id = 0;
        $id += 1;

        $this->connections[$id]['clientData'] = '';
        $this->connections[$id]['cnx'] = new EventBufferEvent($this->base, $fd,
            EventBufferEvent::OPT_CLOSE_ON_FREE);

        if (!$this->connections[$id]['cnx']) {
            echo "Failed creating buffer\n";
            $this->base->exit(NULL);
            exit(1);
        }

        $this->connections[$id]['cnx']->setCallbacks([$this, "ev_read"], NULL,
            [$this, 'ev_error'], $id);
        $this->connections[$id]['cnx']->enable(Event::READ | Event::WRITE);

        $this->ev_write($id, '220 '.$this->domainName." wazzzap?\r\n");
    }

    function ev_error($listener, $ctx) {
        $errno = EventUtil::getLastSocketErrno();

        fprintf(STDERR, "Ошибка слушателя: %d (%s). Аварийное завершение работы.\n",
            $errno, EventUtil::getLastSocketError());

        if ($errno != 0) {
            $this->base->exit(NULL);
            exit();
        }
    }

    public function ev_close($id) {
        $this->connections[$id]['cnx']->disable(Event::READ | Event::WRITE);
        unset($this->connections[$id]);
    }

    protected function ev_write($id, $string) {
        echo 'S('.$id.'): '.$string;
        $this->connections[$id]['cnx']->write($string);
    }

    public function ev_read($buffer, $id) {
        while($buffer->input->length > 0) {
            $this->connections[$id]['clientData'] .= $buffer->input->read($this->maxRead);
            $clientDataLen = strlen($this->connections[$id]['clientData']);

            if($this->connections[$id]['clientData'][$clientDataLen-1] == "\n"
                && $this->connections[$id]['clientData'][$clientDataLen-2] == "\r")
            {
                // удаляем все завершающие \r\n
                $line = substr($this->connections[$id]['clientData'], 0,
                    strlen($this->connections[$id]['clientData']) - 2);

                $this->connections[$id]['clientData'] = '';
                $this->cmd($buffer, $id, $line);
            }
        }
    }

    protected function cmd($buffer, $id, $line) {
        switch ($line) {
            case strncmp('EHLO ', $line, 4):
                $this->ev_write($id, "250-STARTTLS\r\n");
                $this->ev_write($id, "250 OK ehlo\r\n");
                break;

            case strncmp('HELO ', $line, 4):
                $this->ev_write($id, "250-STARTTLS\r\n");
                $this->ev_write($id, "250 OK helo\r\n");
                break;

            case strncmp('QUIT', $line, 3):
                $this->ev_write($id, "250 OK quit\r\n");
                $this->ev_close($id);
                break;

            case strncmp('STARTTLS', $line, 3):
                $this->ev_write($id, "220 Ready to start TLS\r\n");
                $this->connections[$id]['cnx'] = EventBufferEvent::sslFilter($this->base,
                    $this->connections[$id]['cnx'], $this->ctx,
                    EventBufferEvent::SSL_ACCEPTING,
                    EventBufferEvent::OPT_CLOSE_ON_FREE);
                $this->connections[$id]['cnx']->setCallbacks([$this, "ev_read"], NULL, [$this, 'ev_error'], $id);
                $this->connections[$id]['cnx']->enable(Event::READ | Event::WRITE);
                break;

            default:
                echo 'неизвестная команда: '.$line."\n";
                break;
        }
    }
}

new Handler();


Флаги событий

Флаг Event::READ указывает событие, которое становится активным, когда предоставленный файл (обычно потоковый ресурс или сокет) готов к чтению.

Флаг Event::WRITE указывает событие, которое становится активным, когда предоставленный файл (обычно потоковый ресурс или сокет) готов к записи.

Флаг Event::SIGNAL используется для реализации отслеживания системных сигналов. Смотрите "Создание событий для сигналов" ниже.

Флаг Event::TIMEOUT означает, что активировалось событие по истечению ожидания (timeout). Флаг Event::TIMEOUT игнорируется при создании события: его можно установить при добавлении. Он задается в аргументе $what callback-функции, если произошло событие этого типа.

Также почитайте » Fast portable non-blocking network programming with Libevent, Working with events, Event flags


О постоянных(persistent) событиях

По умолчанию, когда ожидающее событие становится активным (так как их файловый дескриптор становится доступен для записи или чтения, или истек период ожидания), у него снимается статус ожидающего ровно перед тем, как будет запущена его функция обратного вызова. Таким образом, чтобы снова перевести его в статус ожидания, необходимо выполнить для него Event::add() из его callback-функции.

Если же на событии установлен флаг Event::PERSIST, то событие становится постоянным. Это означает, что событие остается в статусе ожидания даже если запущена его функция обратного вызова. Для того, чтобы убрать у события флаг постоянства, необходимо выполнить для него Event::del().

Таймаут для постоянного события сбрасывается каждый раз, когда запускается его callback-функция. Таким образом, если для события установлены флаги Event::READ | Event::PERSIST и таймаут в 5 секунд, событие станет активно в следующих случаях:

  1. Всякий раз, когда сокет или дескриптор файла готов к чтению.

  2. Всякий раз, когда прошло пять секунд с момента последнего события.

См. также » Fast Быстрое, переносимое, неблокирующее сетевое програмирование с Libevent, о постоянных событиях


Callback-функции

Если для события зарегистрирована callback-функция, она будет вызвана когда событие перейдет в активный статус. Для привязывания функции к событию, необходимо передать ее как параметр callable в Event::__construct() или Event::set() или в один из фабричных методов, таких как Event::timer() .

Функция должна соответствовать следующему прототипу:

callback ([ mixed $fd = NULL [, int $what [, mixed $arg = NULL ]]] ) : void

fd

Дескриптор файла, потокового ресурса или сокета, связанный с событием. Для событий сигналов fd совпадает с номером сигнала.

what

Побитовая маска всех обрабатываемых событий.

arg

Пользовательские данные.

Для Event::timer() callback-функция должна соответствовать следующему прототипу:

callback ([ mixed $arg = NULL ] ) : void

arg

Пользовательские данные.

Для Event::signal() callback-функция должна соответствовать следующему прототипу:

callback ([ int $signum [, mixed $arg = NULL ]] ) : void

signum

Номер сигнала (например, SIGTERM ).

arg

Пользовательские данные.


Создание событий для сигналов

Event может отслеживать сигналы в стиле POSIX. Для создания обработчика для сигнала используйте конструктор Event::__construct() с флагом Event::SIGNAL или фабричный метод Event::signal().

Пример #1 Обработка сигнала SIGTERM

<?php
/*
Запускайте в окне терминала:

$ php examples/signal.php

В другом терминальном окне отыщите этот процесс и
пошлите ему сигнал SIGTERM:

$ ps aux | grep examp
ruslan    3976  0.2  0.0 139896 11256 pts/1    S+   10:25   0:00 php examples/signal.php
ruslan    3978  0.0  0.0   9572   864 pts/2    S+   10:26   0:00 grep --color=auto examp
$ kill -TERM 3976

В первом терминале вы увидите следующее:

Пойман сигнал 15
*/
class MyEventSignal {
    private $base, $ev;

    public function __construct($base) {
        $this->base = $base;
        $this->ev = Event::signal($base, SIGTERM, array($this, 'eventSighandler'));
        $this->ev->add();
    }

    public function eventSighandler($no, $c) {
        echo "Пойман сигнал $no\n";
        $this->base->exit();
    }
}

$base = new EventBase();
$c    = new MyEventSignal($base);

$base->loop();
?>

Обратите внимание, что функции обратного вызова запускаются внутри событийного цикла после получения сигнала, так что для них вполне безопасно вызывать функции, которые не следует запускать из обычных обработчиков сигналов POSIX.

Также почитайте » Fast portable non-blocking network programming with Libevent, Constructing Signal Events .


Класс Event

(PECL event >= 1.2.6-beta)

Введение

Класс Event представляет и срабатывает на следующие события: файловый дескриптор готов к чтению или записи; становится готов к чтению или записи (только edge-triggered I/O (единовременное срабатывание)); заканчивается ожидание; получен системный сигнал; произошло пользовательское событие.

Каждое событие связано с EventBase . Однако событие не будет обработано, пока не будет добавлено с помощью метода Event::add(). Добавленное событие находится в статусе ожидания pending, пока оно не произошло. После этого оно переходит в статус активно (active). Для обработки событий пользователь может зарегистрировать функцию обратного вызова, которая будет вызвана в момент перехода события в активный статус. Если событие настроено как постоянное (persistent), оно вернется в статус ожидания. Если оно не постоянное, то оно выйдет из режима ожидания после запуска функции обратного вызова. Метод Event::del() удаляет, соответственно выводя его из статуса ожидания. Добавить его по новой можно с помощью метода Event::add().

Обзор классов

final Event {
/* Константы */
const integer ET = 32 ;
const integer PERSIST = 16 ;
const integer READ = 2 ;
const integer WRITE = 4 ;
const integer SIGNAL = 8 ;
const integer TIMEOUT = 1 ;
/* Свойства */
public readonly bool $pending ;
/* Методы */
public add ([ float $timeout ] ) : bool
public addSignal ([ float $timeout ] ) : bool
public addTimer ([ float $timeout ] ) : bool
public __construct ( EventBase $base , mixed $fd , int $what , callable $cb [, mixed $arg = NULL ] )
public del ( void ) : bool
public delSignal ( void ) : bool
public delTimer ( void ) : bool
public free ( void ) : void
public static getSupportedMethods ( void ) : array
public pending ( int $flags ) : bool
public set ( EventBase $base , mixed $fd [, int $what [, callable $cb [, mixed $arg ]]] ) : bool
public setPriority ( int $priority ) : bool
public setTimer ( EventBase $base , callable $cb [, mixed $arg ] ) : bool
public static signal ( EventBase $base , int $signum , callable $cb [, mixed $arg ] ) : Event
public static timer ( EventBase $base , callable $cb [, mixed $arg ] ) : Event
}

Свойства

pending

Обозначает, что событие в состоянии ожидания. См. О постоянных событиях .

Предопределенные константы

Event::ET

Означает, что событие должно срабатывать один раз при изменении статуса (edge-triggered), если используемый бекенд поддерживает такое поведение. Это влияет на семантику Event::READ и Event::WRITE .

Event::PERSIST

Обозначает, что событие постоянное. См. О постоянных событиях .

Event::READ

Этот флаг указывает событие, которое становится активным, когда предоставленный файл (обычно потоковый ресурс или сокет) готов к чтению.

Event::WRITE

Этот флаг указывает событие, которое становится активным, когда предоставленный файл (обычно потоковый ресурс или сокет) готов к записи.

Event::SIGNAL

Используется для реализации отслеживания системных сигналов. См. "Создание событий для сигналов" ниже.

Event::TIMEOUT

Флаг означает, что активировалось событие по истечению ожидания (timeout).

Флаг Event::TIMEOUT игнорируется при создании события: его можно установить при добавлении. Он задается в аргументе $what функции обратного вызова, если произошло событие этого типа.

Содержание

  • Event::add — Перести событие в состояние ожидания
  • Event::addSignal — Перевести событие сигнала в состояние ожидания
  • Event::addTimer — Перевести событие таймера в состояние ожидания
  • Event::__construct — Конструктор объекта Event
  • Event::del — Перевести событие в пассивное состояние
  • Event::delSignal — Перевести событие сигнала в пассивное состояние
  • Event::delTimer — Перевести событие таймера в пассивное состояние
  • Event::free — Перевести событие в пассивное состояние и высвободить все выделенные для него ресурсы
  • Event::getSupportedMethods — Получить массив с именами методов, поддерживаемых в текущей версии Libevent
  • Event::pending — Проверить, что событие находится в состоянии ожидания либо что оно запланировано
  • Event::set — Переконфигурировать событие
  • Event::setPriority — Задать приоритет событию
  • Event::setTimer — Переконфигурация события таймера
  • Event::signal — Создать объект события сигнала
  • Event::timer — Создать объект события таймера


Перести событие в состояние ожидания

  • « Event
  • Event::addSignal »
  • PHP Manual
  • Event
  • Перести событие в состояние ожидания

Event::add

(PECL libevent >= 0.0.1)

Event::add — Перести событие в состояние ожидания

Описание

public Event::add ([ float $timeout ] ) : bool

Переводит событие в состояние ожидания. Не ожидающие события никогда не сработают и не вызовут callback-функцию. В сочетании с Event::del(), событие может быть перезапланированно пользователем в любое время.

Если метод Event::add() вызван для уже ожидающего события, libevent оставит его в состоянии ожидания и перезапланирует его в соответствии с заданным таймаутом (если он задан). Если таймаут не задан, то Event::add() не возымеет какого-либо эффекта.

Список параметров

timeout

Таймаут с секундах.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • Event::addSignal() - Перевести событие сигнала в состояние ожидания
  • Event::addTimer() - Перевести событие таймера в состояние ожидания
  • Event::del() - Перевести событие в пассивное состояние


Перевести событие сигнала в состояние ожидания

  • « Event::add
  • Event::addTimer »
  • PHP Manual
  • Event
  • Перевести событие сигнала в состояние ожидания

Event::addSignal

(PECL event >= 1.2.6-beta)

Event::addSignal — Перевести событие сигнала в состояние ожидания

Описание

public Event::addSignal ([ float $timeout ] ) : bool

Метод Event::addSignal() является псевдонимом для Event::add()

Примеры

Пример #1 Пример использования Event::addSignal()

<?php
/*
Запустите в окне терминала:

$ php examples/signal.php

В другом окне терминала найдите pid и отправьте SIGTERM, например:

$ ps aux | grep examp
ruslan    3976  0.2  0.0 139896 11256 pts/1    S+   10:25   0:00 php examples/signal.php
ruslan    3978  0.0  0.0   9572   864 pts/2    S+   10:26   0:00 grep --color=auto examp
$ kill -TERM 3976

В первом окне терминала вы должны увидеть следующее:

Поймал сигнал 15
*/
class MyEventSignal {
    private $base, $ev;

    public function __construct($base) {
        $this->base = $base;
        $this->ev = Event::signal($base, SIGTERM, array($this, 'eventSighandler'));
        $this->ev->addSignal();
    }

    public function eventSighandler($no, $c) {
        echo "Поймал сигнал $no\n";
        $this->base->exit();
    }
}

$base = new EventBase();
$c    = new MyEventSignal($base);

$base->loop();
?>

Результатом выполнения данного примера будет что-то подобное:

Поймал сигнал 15

Смотрите также

  • Event::add() - Перести событие в состояние ожидания
  • Event::del() - Перевести событие в пассивное состояние
  • Event::delSignal() - Перевести событие сигнала в пассивное состояние
  • Event::signal() - Создать объект события сигнала


Перевести событие таймера в состояние ожидания

  • « Event::addSignal
  • Event::__construct »
  • PHP Manual
  • Event
  • Перевести событие таймера в состояние ожидания

Event::addTimer

(PECL event >= 1.2.6-beta)

Event::addTimer — Перевести событие таймера в состояние ожидания

Описание

public Event::addTimer ([ float $timeout ] ) : bool

Метод Event::addTimer() является псевдонимом для Event::add()

Возвращаемые значения

Примеры

Пример #1 Пример использования Event::addTimer()

<?php
$base = new EventBase();
$n = 2;
$e = Event::timer($base, function($n) use (&$e) {
    echo "Прошло секунд: $n\n";
    $e->delTimer();
}, $n);
$e->addTimer($n);
$base->loop();
?>

Результатом выполнения данного примера будет что-то подобное:

Прошло секунд: 2

Смотрите также

  • Event::add() - Перести событие в состояние ожидания
  • Event::del() - Перевести событие в пассивное состояние
  • Event::delTimer() - Перевести событие таймера в пассивное состояние


Конструктор объекта Event

  • « Event::addTimer
  • Event::del »
  • PHP Manual
  • Event
  • Конструктор объекта Event

Event::__construct

(PECL event >= 1.2.6-beta)

Event::__construct — Конструктор объекта Event

Описание

public Event::__construct ( EventBase $base , mixed $fd , int $what , callable $cb [, mixed $arg = NULL ] )

Создает объект Event.

Список параметров

base

Событийная база, к которой необходимо привязать событие.

fd

Ресурс потока, сокета или числовой дескриптор файла. Для событий таймера укажите -1. Для события сигнала задайте его номер, например SIGHUP.

what

См. Флаги событий .

cb

Функция обратного вызова. См. Функции обратного вызова для событий .

arg

Пользовательские данные, связанные с событием. Если заданы, то они будут переданы в функцию обратного вызова когда произойдет событие.

Возвращаемые значения

Возвращает объект Event.

Смотрите также

  • Event::signal() - Создать объект события сигнала
  • Event::timer() - Создать объект события таймера


Перевести событие в пассивное состояние

  • « Event::__construct
  • Event::delSignal »
  • PHP Manual
  • Event
  • Перевести событие в пассивное состояние

Event::del

(PECL libevent >= 0.0.1)

Event::del — Перевести событие в пассивное состояние

Описание

public Event::del ( void ) : bool

Удаляет событие из набора отслеживаемых событий, т.е. переводит его в состояние не-ожидания.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • Event::add() - Перести событие в состояние ожидания


Перевести событие сигнала в пассивное состояние

  • « Event::del
  • Event::delTimer »
  • PHP Manual
  • Event
  • Перевести событие сигнала в пассивное состояние

Event::delSignal

(PECL event >= 1.2.6-beta)

Event::delSignal — Перевести событие сигнала в пассивное состояние

Описание

public Event::delSignal ( void ) : bool

Метод Event::delSignal() является псевдонимом для Event::del()

Смотрите также

  • Event::del() - Перевести событие в пассивное состояние


Перевести событие таймера в пассивное состояние

  • « Event::delSignal
  • Event::free »
  • PHP Manual
  • Event
  • Перевести событие таймера в пассивное состояние

Event::delTimer

(PECL event >= 1.2.6-beta)

Event::delTimer — Перевести событие таймера в пассивное состояние

Описание

public Event::delTimer ( void ) : bool

Event::delTimer() является псевдонимом для Event::del() .

Смотрите также

  • Event::del() - Перевести событие в пассивное состояние


Перевести событие в пассивное состояние и высвободить все выделенные для него ресурсы

  • « Event::delTimer
  • Event::getSupportedMethods »
  • PHP Manual
  • Event
  • Перевести событие в пассивное состояние и высвободить все выделенные для него ресурсы

Event::free

(PECL libevent >= 0.0.1)

Event::free — Перевести событие в пассивное состояние и высвободить все выделенные для него ресурсы

Описание

public Event::free ( void ) : void

Удаляет событие из набора отслеживаемых libevent событий и высвобождает все выделенные для него ресурсы.

Внимание

В настоящее время метод Event::free() не уничтожает сам объект. Для уничтожения объекта события используйте функцию unset() или присвойте ему NULL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Event::__construct() - Конструктор объекта Event


Получить массив с именами методов, поддерживаемых в текущей версии Libevent

  • « Event::free
  • Event::pending »
  • PHP Manual
  • Event
  • Получить массив с именами методов, поддерживаемых в текущей версии Libevent

Event::getSupportedMethods

(PECL event >= 1.2.6-beta)

Event::getSupportedMethods — Получить массив с именами методов, поддерживаемых в текущей версии Libevent

Описание

public static Event::getSupportedMethods ( void ) : array

Возвращает массив с именами методов(бэкендов), поддерживаемых в текущей версии Libevent.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив строк.

Смотрите также

  • EventConfig


Проверить, что событие находится в состоянии ожидания либо что оно запланировано

  • « Event::getSupportedMethods
  • Event::set »
  • PHP Manual
  • Event
  • Проверить, что событие находится в состоянии ожидания либо что оно запланировано

Event::pending

(PECL event >= 1.2.6-beta)

Event::pending — Проверить, что событие находится в состоянии ожидания либо что оно запланировано

Описание

public Event::pending ( int $flags ) : bool

Проверяет, что событие находится в состоянии ожидания либо что оно запланировано.

Список параметров

flags

Одна, либо несколько констант, объединенных логическим ИЛИ: Event::READ , Event::WRITE , Event::TIMEOUT , Event::SIGNAL .

Возвращаемые значения

Возвращает TRUE, если событие запланировано, либо находится в состоянии ожидания и FALSE, если нет.


Переконфигурировать событие

  • « Event::pending
  • Event::setPriority »
  • PHP Manual
  • Event
  • Переконфигурировать событие

Event::set

(PECL libevent >= 0.0.1)

Event::set — Переконфигурировать событие

Описание

public Event::set ( EventBase $base , mixed $fd [, int $what [, callable $cb [, mixed $arg ]]] ) : bool

Переконфигурирует событие. Обратите внимание, что эта функция не вызывает устаревшую функцию event_set библиотеки libevent. Вместо этого она вызывает event_assign.

Список параметров

base

Событийная база, к которой необходимо привязать событие.

fd

Поток, сокет или числовой дескриптор файла. Для событий таймера укажите -1, а для событий сигнала - номер сигнала, например SIGHUP.

what

См. Флаги событий .

cb

Функция обратного вызова. См. Функции обратного вызова для событий .

arg

Пользовательские данные, связанные с событием. Они будут переданы в функцию обратного вызова когда произойдет событие.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Задать приоритет событию

  • « Event::set
  • Event::setTimer »
  • PHP Manual
  • Event
  • Задать приоритет событию

Event::setPriority

(PECL event >= 1.2.6-beta)

Event::setPriority — Задать приоритет событию

Описание

public Event::setPriority ( int $priority ) : bool

Устанавливает приоритет событию.

Список параметров

priority

Приоритет.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Переконфигурация события таймера

  • « Event::setPriority
  • Event::signal »
  • PHP Manual
  • Event
  • Переконфигурация события таймера

Event::setTimer

(PECL event >= 1.2.6-beta)

Event::setTimer — Переконфигурация события таймера

Описание

public Event::setTimer ( EventBase $base , callable $cb [, mixed $arg ] ) : bool

Переконфигурирует событие таймера. Обратите внимание, что эта функция не вызывает устаревшую функцию event_set библиотеки libevent. Вместо этого она вызывает event_assign.

Список параметров

base

Событийная база, к которой необходимо привязать событие.

cb

Функция обратного вызова события таймера. См. Функции обратного вызова для событий .

arg

Пользовательские данные, связанные с событием. Они будут переданы в функцию обратного вызова когда произойдет событие.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • Event::__construct() - Конструктор объекта Event
  • Event::timer() - Создать объект события таймера


Создать объект события сигнала

  • « Event::setTimer
  • Event::timer »
  • PHP Manual
  • Event
  • Создать объект события сигнала

Event::signal

(PECL event >= 1.2.6-beta)

Event::signal — Создать объект события сигнала

Описание

public static Event::signal ( EventBase $base , int $signum , callable $cb [, mixed $arg ] ) : Event

Создает объект события сигнала. Это облегченный метод для создания события сигнала. Обратите внимание, что штатный конструктор Event::__construct() также может создавать события сигнала.

Список параметров

base

Событийная база, к которой необходимо привязать событие.

signum

Номер сигнала.

cb

Функция обратного вызова события сигнала. См. Функции обратного вызова для событий .

arg

Пользовательские данные, связанные с событием. Они будут переданы в функцию обратного вызова когда произойдет событие.

Возвращаемые значения

Возвращает объект Event. В случае ошибки возвращает FALSE.

Смотрите также

  • Создание событий сигнала


Создать объект события таймера

  • « Event::signal
  • EventBase »
  • PHP Manual
  • Event
  • Создать объект события таймера

Event::timer

(PECL event >= 1.2.6-beta)

Event::timer — Создать объект события таймера

Описание

public static Event::timer ( EventBase $base , callable $cb [, mixed $arg ] ) : Event

Создает объект события таймера. Это облегченный метод для создания события сигнала. Обратите внимание, что штатный конструктор Event::__construct() также может создавать события таймера.

Список параметров

base

Событийная база, к которой необходимо привязать событие.

cb

Функция обратного вызова события таймера. См. Функции обратного вызова для событий .

arg

Пользовательские данные, связанные с событием. Они будут переданы в функцию обратного вызова когда произойдет событие.

Возвращаемые значения

Возвращает объект Event. В случае ошибки возвращает FALSE.


Класс EventBase

(PECL event >= 1.2.6-beta)

Введение

Класс EventBase представляет структуру событийной базы libevent. Он содержит набор событий и может их опрашивать для определения, какие из них активны.

Каждая событийная база имеет метод или бекэнд, которые используются для определения готовых событий. Используемые методы: select , poll , epoll , kqueue , devpoll , evport и win32 .

Для настройки событийной базы или для исключения определенных бекэндов можно использовать класс EventConfig.

Внимание

НЕ разрушайте объект EventBase пока не освобождены связанные с Event ресурсы. В противном случае это приведет к непредсказуемым результатам!

Обзор классов

final EventBase {
/* Константы */
const integer LOOP_ONCE = 1 ;
const integer LOOP_NONBLOCK = 2 ;
const integer NOLOCK = 1 ;
const integer STARTUP_IOCP = 4 ;
const integer NO_CACHE_TIME = 8 ;
const integer EPOLL_USE_CHANGELIST = 16 ;
/* Методы */
public __construct ([ EventConfig $cfg ] )
public dispatch ( void ) : void
public exit ([ float $timeout ] ) : bool
public free ( void ) : void
public getFeatures ( void ) : int
public getMethod ( void ) : string
public getTimeOfDayCached ( void ) : float
public gotExit ( void ) : bool
public gotStop ( void ) : bool
public loop ([ int $flags ] ) : bool
public priorityInit ( int $n_priorities ) : bool
public reInit ( void ) : bool
public stop ( void ) : bool
}

Предопределенные константы

EventBase::LOOP_ONCE

Флаг используется с методом EventBase::loop() и означает: "блокировать, пока libevent не получит активное событие, а затем выйти после того, как будут завершены функции обратного вызова для всех активных событий".

EventBase::LOOP_NONBLOCK

Флаг используется с методом EventBase::loop() и означает: "не блокировать: посмотреть, какие события уже готовы, запустить обратные вызовы с наивысшим приоритетом, затем выйти".

EventBase::NOLOCK

Флаг конфигурации. Не выделять блокировку для событийной базы, даже если блокирование настроено.

EventBase::STARTUP_IOCP

Флаг конфигурации только для Windows. Разрешает диспетчер IOCP при старте.

EventBase::NO_CACHE_TIME

Флаг конфигурации. Вместо проверки текущего времени каждый раз, когда цикл готов запустить функцию обратного вызова по таймеру, проверять его после каждого вызова такой функции.

EventBase::EPOLL_USE_CHANGELIST

Если используется бекэнд epoll , этот флаг сообщает, что можно безопасно использовать внутренний код списка изменений Libevent для пакетного добавления и удаления в целях минимизации количества системных вызовов.

Установка этого флага может повысить производительность, но может привести к проявлению бага Linux: не безопасно использовать этот флаг, если любой из файловых дескрипторов был клонирован с помощью dup() или его аналогов. Может привести к странным и трудно диагностируемым ошибкам.

Этот флаг также может быть активирован установкой переменной окружения EVENT_EPOLL_USE_CHANGELIST.

Этот флаг не действует, если вы используете любой бекэнд, кроме epoll .

Содержание

  • EventBase::__construct — Конструктор объекта EventBase
  • EventBase::dispatch — Отправляет ожидающие события
  • EventBase::exit — Прекращает отправку событий
  • EventBase::free — Освобождает ресурсы, выделенные для этой базы событий
  • EventBase::getFeatures — Возвращает битовую маску поддерживаемых функций
  • EventBase::getMethod — Возвращает используемый метод события
  • EventBase::getTimeOfDayCached — Возвращает текущее время базовы событий
  • EventBase::gotExit — Проверяет, был ли цикл обработки событий завершен
  • EventBase::gotStop — Проверяет, был ли цикл обработки событий завершен
  • EventBase::loop — Отправка ожидающих событий
  • EventBase::priorityInit — Устанавливает количество приоритетов на базу событий
  • EventBase::reInit — Повторная инициализация базы событий (после разветвления)
  • EventBase::stop — Сообщает event_base прекратить отправку событий


Конструктор объекта EventBase

  • « EventBase
  • EventBase::dispatch »
  • PHP Manual
  • EventBase
  • Конструктор объекта EventBase

EventBase::__construct

(PECL event >= 1.2.6-beta)

EventBase::__construct — Конструктор объекта EventBase

Описание

public EventBase::__construct ([ EventConfig $cfg ] )

Конструктор объекта EventBase

Список параметров

cfg

Необязательный объект EventConfig.

Возвращаемые значения

Возвращает объект EventBase.

Смотрите также

  • EventConfig


Отправляет ожидающие события

  • « EventBase::__construct
  • EventBase::exit »
  • PHP Manual
  • EventBase
  • Отправляет ожидающие события

EventBase::dispatch

(PECL event >= 1.2.6-beta)

EventBase::dispatch — Отправляет ожидающие события

Описание

public EventBase::dispatch ( void ) : void

Ожидает, пока события станут активными, и запускает их callback-функции. Также, как EventBase::loop() без установленных флагов.

Внимание

НЕ разрушайте объект EventBase пока не освобождены связанные с Event ресурсы. В противном случае это приведет к непредсказуемым результатам!

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Смотрите также

  • EventBase::loop() - Отправка ожидающих событий


Прекращает отправку событий

  • « EventBase::dispatch
  • EventBase::free »
  • PHP Manual
  • EventBase
  • Прекращает отправку событий

EventBase::exit

(PECL event >= 1.2.6-beta)

EventBase::exit — Прекращает отправку событий

Описание

public EventBase::exit ([ float $timeout ] ) : bool

Сообщает, что база событий должна прекратить отправку событий через указанное количество секунд.

Список параметров

timeout

Необязательный параметр. Количество секунд, после которого база событий должна прекратить отправку событий.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Смотрите также

  • EventBase::stop() - Сообщает event_base прекратить отправку событий


Освобождает ресурсы, выделенные для этой базы событий

  • « EventBase::exit
  • EventBase::getFeatures »
  • PHP Manual
  • EventBase
  • Освобождает ресурсы, выделенные для этой базы событий

EventBase::free

(PECL event >= 1.10.0)

EventBase::free — Освобождает ресурсы, выделенные для этой базы событий

Описание

public EventBase::free ( void ) : void

Освобождает ресурсы, выделенные libevent для объекта EventBase.

Внимание

Метод EventBase::free() не разрушает сам объект. Чтобы полностью уничтожить объект, вызовите unset() или присвойте NULL.

Этот метод не освобождает и не отсоединяет какие-либо события, которые в данный момент связаны с объектом EventBase, и не закрывает их сокеты - будьте осторожны.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventBase::__construct() - Конструктор объекта EventBase


Возвращает битовую маску поддерживаемых функций

  • « EventBase::free
  • EventBase::getMethod »
  • PHP Manual
  • EventBase
  • Возвращает битовую маску поддерживаемых функций

EventBase::getFeatures

(PECL event >= 1.2.6-beta)

EventBase::getFeatures — Возвращает битовую маску поддерживаемых функций

Описание

public EventBase::getFeatures ( void ) : int

Возвращает битовую маску поддерживаемых функций

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает битовую маску поддерживаемых функций. Смотрите константы EventConfig::FEATURE_* .

Примеры

Пример #1 Пример использования EventBase::getFeatures()

<?php
// Avoiding "select" method
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "`select' method avoided\n";
}

$base = new EventBase($cfg);

echo "Характеристики:\n";
$features = $base->getFeatures();
($features & EventConfig::FEATURE_ET) and print("ET - edge-triggered IO\n");
($features & EventConfig::FEATURE_O1) and print("O1 - O(1) operation for adding/deletting events\n");
($features & EventConfig::FEATURE_FDS) and print("FDS - arbitrary file descriptor types, and not just sockets\n");
?>

Смотрите также

  • EventBase::getMethod() - Возвращает используемый метод события
  • EventConfig


Возвращает используемый метод события

  • « EventBase::getFeatures
  • EventBase::getTimeOfDayCached »
  • PHP Manual
  • EventBase
  • Возвращает используемый метод события

EventBase::getMethod

(PECL event >= 1.2.6-beta)

EventBase::getMethod — Возвращает используемый метод события

Описание

public EventBase::getMethod ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка, представляющая используемый метод события (backend).

Примеры

Пример #1 Пример EventBase::getMethod()

<?php
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "`select' method avoided\n";
}

// Создаем базу событий, с конфигурацией
$base = new EventBase($cfg);
echo "Используемый метод события: ", $base->getMethod(), PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

`select' method avoided
Используемый метод события: epoll

Смотрите также

  • EventBase::getFeatures() - Возвращает битовую маску поддерживаемых функций


Возвращает текущее время базовы событий

  • « EventBase::getMethod
  • EventBase::gotExit »
  • PHP Manual
  • EventBase
  • Возвращает текущее время базовы событий

EventBase::getTimeOfDayCached

(PECL event >= 1.2.6-beta)

EventBase::getTimeOfDayCached — Возвращает текущее время базовы событий

Описание

public EventBase::getTimeOfDayCached ( void ) : float

При успешном завершении возвращает текущее время (как результат функции gettimeofday()), просматривая кэшированное значение в base, если это возможно, и вызывая gettimeofday() или clock_gettime(), в зависимости от ситуации, если нет кэшированного времени.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущее время базы событий. В случае ошибки возвращает NULL.


Проверяет, был ли цикл обработки событий завершен

  • « EventBase::getTimeOfDayCached
  • EventBase::gotStop »
  • PHP Manual
  • EventBase
  • Проверяет, был ли цикл обработки событий завершен

EventBase::gotExit

(PECL event >= 1.2.6-beta)

EventBase::gotExit — Проверяет, был ли цикл обработки событий завершен

Описание

public EventBase::gotExit ( void ) : bool

Проверяет, был ли цикл обработки событий завершен с помощью EventBase::exit() .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если цикл обработки событий завершен с помощью EventBase::exit() . В иных случаях - FALSE.

Смотрите также

  • EventBase::exit() - Прекращает отправку событий
  • EventBase::stop() - Сообщает event_base прекратить отправку событий
  • EventBase::gotStop() - Проверяет, был ли цикл обработки событий завершен


Проверяет, был ли цикл обработки событий завершен

  • « EventBase::gotExit
  • EventBase::loop »
  • PHP Manual
  • EventBase
  • Проверяет, был ли цикл обработки событий завершен

EventBase::gotStop

(PECL event >= 1.2.6-beta)

EventBase::gotStop — Проверяет, был ли цикл обработки событий завершен

Описание

public EventBase::gotStop ( void ) : bool

Проверяет, был ли цикл обработки событий завершен с помощью EventBase::stop() .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если цикл обработки событий был завершен с помощью EventBase::stop() . В противном случае - FALSE.

Смотрите также

  • EventBase::exit() - Прекращает отправку событий
  • EventBase::stop() - Сообщает event_base прекратить отправку событий
  • EventBase::gotExit() - Проверяет, был ли цикл обработки событий завершен


Отправка ожидающих событий

  • « EventBase::gotStop
  • EventBase::priorityInit »
  • PHP Manual
  • EventBase
  • Отправка ожидающих событий

EventBase::loop

(PECL event >= 1.2.6-beta)

EventBase::loop — Отправка ожидающих событий

Описание

public EventBase::loop ([ int $flags ] ) : bool

Ожидает, пока события станут активными, и запускает их callback-функции.

Внимание

НЕ разрушайте объект EventBase пока не освобождены связанные с Event ресурсы. В противном случае это приведет к непредсказуемым результатам!

Список параметров

flags

Необязательные флаги. Одна из констант EventBase::LOOP_*. Смотрите EventBase константы.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Смотрите также

  • EventBase::dispatch() - Отправляет ожидающие события


Устанавливает количество приоритетов на базу событий

  • « EventBase::loop
  • EventBase::reInit »
  • PHP Manual
  • EventBase
  • Устанавливает количество приоритетов на базу событий

EventBase::priorityInit

(PECL event >= 1.2.6-beta)

EventBase::priorityInit — Устанавливает количество приоритетов на базу событий

Описание

public EventBase::priorityInit ( int $n_priorities ) : bool

Устанавливает количество приоритетов на базу событий

Список параметров

n_priorities

Количество приоритетов на базу событий.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Смотрите также

  • Event::setPriority() - Задать приоритет событию


Повторная инициализация базы событий (после разветвления)

  • « EventBase::priorityInit
  • EventBase::stop »
  • PHP Manual
  • EventBase
  • Повторная инициализация базы событий (после разветвления)

EventBase::reInit

(PECL event >= 1.2.6-beta)

EventBase::reInit — Повторная инициализация базы событий (после разветвления)

Описание

public EventBase::reInit ( void ) : bool

Повторная инициализация базы событий (после разветвления)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.


Сообщает event_base прекратить отправку событий

  • « EventBase::reInit
  • EventBuffer »
  • PHP Manual
  • EventBase
  • Сообщает event_base прекратить отправку событий

EventBase::stop

(PECL event >= 1.2.6-beta)

EventBase::stop — Сообщает event_base прекратить отправку событий

Описание

public EventBase::stop ( void ) : bool

Сообщает event_base прекратить отправку событий

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Смотрите также

  • EventBase::exit() - Прекращает отправку событий
  • EventBase::gotStop() - Проверяет, был ли цикл обработки событий завершен


Класс EventBuffer

(PECL event >= 1.5.0)

Введение

EventBuffer представляет событийный буфер библиотеки Libevent - вспомогательный функционал для буферезированного ввода/вывода.

Буферы событий обычно полезны для организации "буферной" части буферизированного сетевого ввода/вывода.

Обзор классов

EventBuffer {
/* Константы */
const integer EOL_ANY = 0 ;
const integer EOL_CRLF = 1 ;
const integer EOL_CRLF_STRICT = 2 ;
const integer EOL_LF = 3 ;
const integer PTR_SET = 0 ;
const integer PTR_ADD = 1 ;
/* Свойства */
public readonly int $length ;
public readonly int $contiguous_space ;
/* Методы */
public add ( string $data ) : bool
public addBuffer ( EventBuffer $buf ) : bool
public appendFrom ( EventBuffer $buf , int $len ) : int
public __construct ( void )
public copyout ( string &$data , int $max_bytes ) : int
public drain ( int $len ) : bool
public enableLocking ( void ) : void
public expand ( int $len ) : bool
public freeze ( bool $at_front ) : bool
public lock ( void ) : void
public prepend ( string $data ) : bool
public prependBuffer ( EventBuffer $buf ) : bool
public pullup ( int $size ) : string
public read ( int $max_bytes ) : string
public read ( mixed $fd , int $howmuch ) : int
public readLine ( int $eol_style ) : string
public search ( string $what [, int $start = -1 [, int $end = -1 ]] ) : mixed
public searchEol ([ int $start = -1 [, int $eol_style = EventBuffer::EOL_ANY ]] ) : mixed
public substr ( int $start [, int $length ] ) : string
public unfreeze ( bool $at_front ) : bool
public unlock ( void ) : bool
public write ( mixed $fd [, int $howmuch ] ) : int
}

Свойства

length

Количество байт в буфере событий.

contiguous_space

Количество байтов, хранящихся смежно в передней части буфера. Байты в буфере могут располагаться в разных кусках памяти; свойство возвращает количество байт находящихся, в текущий момент, в первом куске.

Предопределенные константы

EventBuffer::EOL_ANY

Конец строки является любой последовательностью любого числа символов перевода строки и возврата каретки. Этот формат не особо полезен и существует только для обеспечения обратной совместимости.

EventBuffer::EOL_CRLF

Конец строки является последовательностью из необязательного возврата каретки и перевода строки. (Другими словами либо "\r\n" либо "\n" .) Этот формат полезен при разборе текстовых Интернет-протоколов, поскольку стандарты обычно предписывают обозначать конец строки как "\r\n", но многие клиенты используют просто "\n" .

EventBuffer::EOL_CRLF_STRICT

Конец строки является последовательностью из символов возврата каретки и перевода строки. (Т.е. "\r\n" . ASCII-коды 0x0D 0x0A ).

EventBuffer::EOL_LF

Конец строки является обозначается символом перевода строки. (т.е. "\n" . ASCII-код 0x0A .)

EventBuffer::PTR_SET

Флаг используется как аргумент метода EventBuffer::setPosition(). Если флаг установлен, то указатель позиции перемещается на абсолютную позицию в буфере.

EventBuffer::PTR_ADD

То же, что и EventBuffer::PTR_SET , за исключением, что флаг указывает методу EventBuffer::setPosition() переместить позицию вперед на указанное количество байт.

Содержание

  • EventBuffer::add — Добавляет данные в конец буфера событий
  • EventBuffer::addBuffer — Перемещает все данные из буфера экземпляру EventBuffer
  • EventBuffer::appendFrom — Перемещает указанное количество байтов из исходного буфера в конец текущего буфера
  • EventBuffer::__construct — Создает объект EventBuffer
  • EventBuffer::copyout — Копирует указанное количество байтов с начала буфера
  • EventBuffer::drain — Удаляет указанное количество байтов с начала буфера, никуда не копируя
  • EventBuffer::enableLocking — Описание
  • EventBuffer::expand — Резервирует пространство в буфере
  • EventBuffer::freeze — Prevent calls that modify an event buffer from succeeding
  • EventBuffer::lock — Получает блокировку буфера
  • EventBuffer::prepend — Prepend data to the front of the buffer
  • EventBuffer::prependBuffer — Moves all data from source buffer to the front of current buffer
  • EventBuffer::pullup — Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::read — Read data from an evbuffer and drain the bytes read
  • EventBuffer::readFrom — Read data from a file onto the end of the buffer
  • EventBuffer::readLine — Extracts a line from the front of the buffer
  • EventBuffer::search — Scans the buffer for an occurrence of a string
  • EventBuffer::searchEol — Scans the buffer for an occurrence of an end of line
  • EventBuffer::substr — Substracts a portion of the buffer data
  • EventBuffer::unfreeze — Re-enable calls that modify an event buffer
  • EventBuffer::unlock — Снимает блокировку, установленную EventBuffer::lock
  • EventBuffer::write — Write contents of the buffer to a file or socket


Добавляет данные в конец буфера событий

  • « EventBuffer
  • EventBuffer::addBuffer »
  • PHP Manual
  • EventBuffer
  • Добавляет данные в конец буфера событий

EventBuffer::add

(PECL event >= 1.2.6-beta)

EventBuffer::add — Добавляет данные в конец буфера событий

Описание

public EventBuffer::add ( string $data ) : bool

Добавляет данные в конец буфера событий

Список параметров

data

Строка, которая будет добавлена в конец буфера.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Смотрите также

  • EventBuffer::addBuffer() - Перемещает все данные из буфера экземпляру EventBuffer


Перемещает все данные из буфера экземпляру EventBuffer

  • « EventBuffer::add
  • EventBuffer::appendFrom »
  • PHP Manual
  • EventBuffer
  • Перемещает все данные из буфера экземпляру EventBuffer

EventBuffer::addBuffer

(PECL event >= 1.2.6-beta)

EventBuffer::addBuffer — Перемещает все данные из буфера экземпляру EventBuffer

Описание

public EventBuffer::addBuffer ( EventBuffer $buf ) : bool

Перемещает все данные из буфера, указанного в параметре buf, в конец текущего EventBuffer. Это разрушительное дополнение. Данные из одного буфера перемещаются в другой буфер. Однако ненужных копий памяти не происходит.

Список параметров

buf

Исходный объект EventBuffer.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Смотрите также

  • EventBuffer::add() - Добавляет данные в конец буфера событий


Перемещает указанное количество байтов из исходного буфера в конец текущего буфера

  • « EventBuffer::addBuffer
  • EventBuffer::__construct »
  • PHP Manual
  • EventBuffer
  • Перемещает указанное количество байтов из исходного буфера в конец текущего буфера

EventBuffer::appendFrom

(PECL event >= 1.6.0)

EventBuffer::appendFrom — Перемещает указанное количество байтов из исходного буфера в конец текущего буфера

Описание

public EventBuffer::appendFrom ( EventBuffer $buf , int $len ) : int

Перемещает указанное количество байтов из исходного буфера в конец текущего буфера. Если количество байтов меньше, перемещает все байты, доступные из исходного буфера.

Список параметров

buf

Исходный буфер.

len

Возвращаемые значения

Возвращает количество прочитанных байтов.

Список изменений

Версия | Описание
1.6.0 | Переименован EventBuffer::appendFrom()(старое имя метода) в EventBuffer::appendFrom().

Смотрите также

  • EventBuffer::copyout() - Копирует указанное количество байтов с начала буфера
  • EventBuffer::drain() - Удаляет указанное количество байтов с начала буфера, никуда не копируя
  • EventBuffer::pullup() - Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::readLine() - Extracts a line from the front of the buffer
  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read


Создает объект EventBuffer

  • « EventBuffer::appendFrom
  • EventBuffer::copyout »
  • PHP Manual
  • EventBuffer
  • Создает объект EventBuffer

EventBuffer::__construct

(PECL event >= 1.2.6-beta)

EventBuffer::__construct — Создает объект EventBuffer

Описание

public EventBuffer::__construct ( void )

Создает объект EventBuffer

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект EventBuffer.


Копирует указанное количество байтов с начала буфера

  • « EventBuffer::__construct
  • EventBuffer::drain »
  • PHP Manual
  • EventBuffer
  • Копирует указанное количество байтов с начала буфера

EventBuffer::copyout

(PECL event >= 1.2.6-beta)

EventBuffer::copyout — Копирует указанное количество байтов с начала буфера

Описание

public EventBuffer::copyout ( string &$data , int $max_bytes ) : int

Ведет себя так же, как EventBuffer::read(), но не выводит данные из буфера. То есть он копирует первые байты max_bytes с начала буфера в data. Если доступно меньше max_bytes, функция копирует все имеющиеся байты.

Список параметров

data

Выходная строка.

max_bytes

Количество байтов для копирования.

Возвращаемые значения

Возвращает количество скопированных байтов или -1 при ошибке.

Смотрите также

  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read
  • EventBuffer::appendFrom() - Перемещает указанное количество байтов из исходного буфера в конец текущего буфера


Удаляет указанное количество байтов с начала буфера, никуда не копируя

  • « EventBuffer::copyout
  • EventBuffer::enableLocking »
  • PHP Manual
  • EventBuffer
  • Удаляет указанное количество байтов с начала буфера, никуда не копируя

EventBuffer::drain

(PECL event >= 1.2.6-beta)

EventBuffer::drain — Удаляет указанное количество байтов с начала буфера, никуда не копируя

Описание

public EventBuffer::drain ( int $len ) : bool

Ведет себя, как EventBuffer::read(), за исключением того, что он не копирует данные: просто удаляет их из начала буфера.

Список параметров

len

Количество байтов для удаления из буфера.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Смотрите также

  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read
  • EventBuffer::appendFrom() - Перемещает указанное количество байтов из исходного буфера в конец текущего буфера


Описание

  • « EventBuffer::drain
  • EventBuffer::expand »
  • PHP Manual
  • EventBuffer
  • Описание

EventBuffer::enableLocking

(PECL event >= 1.2.6-beta)

EventBuffer::enableLocking —

Описание

public EventBuffer::enableLocking ( void ) : void

Включает блокировку для EventBuffer, чтобы он мог безопасно использоваться несколькими потоками одновременно. Когда блокировка включена, она будет удерживаться при вызове callback-функций. Это может привести к тупику, если вы не будете осторожны. Планируйте соответственно!

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • » Evbuffers и Thread-безопасность


Резервирует пространство в буфере

  • « EventBuffer::enableLocking
  • EventBuffer::freeze »
  • PHP Manual
  • EventBuffer
  • Резервирует пространство в буфере

EventBuffer::expand

(PECL event >= 1.2.6-beta)

EventBuffer::expand — Резервирует пространство в буфере

Описание

public EventBuffer::expand ( int $len ) : bool

Изменяет последний фрагмент памяти в буфере или добавляет новый фрагмент, чтобы буфер был достаточно велик, для содержания len байтов без каких-либо дополнительных выделений.

Список параметров

len

Количество байтов, резервируемых для буфера

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.


Prevent calls that modify an event buffer from succeeding

  • « EventBuffer::expand
  • EventBuffer::lock »
  • PHP Manual
  • EventBuffer
  • Prevent calls that modify an event buffer from succeeding

EventBuffer::freeze

(PECL event >= 1.2.6-beta)

EventBuffer::freeze — Prevent calls that modify an event buffer from succeeding

Описание

public EventBuffer::freeze ( bool $at_front ) : bool

Prevent calls that modify an event buffer from succeeding

Список параметров

at_front

Whether to disable changes to the front or end of the buffer.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBuffer::unfreeze() - Re-enable calls that modify an event buffer


Получает блокировку буфера

  • « EventBuffer::freeze
  • EventBuffer::prepend »
  • PHP Manual
  • EventBuffer
  • Получает блокировку буфера

EventBuffer::lock

(PECL event >= 1.2.6-beta)

EventBuffer::lock — Получает блокировку буфера

Описание

public EventBuffer::lock ( void ) : void

Получает блокировку буфера. Может использоваться в паре с EventBuffer::unlock(), чтобы сделать набор операций атомарным, то есть потокобезопасным. Обратите внимание, что нет необходимости блокировать буферы для отдельных операций. Когда блокировка включена (см. EventBuffer::enableLocking()), отдельные операции над буферами событий уже являются атомарными.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventBuffer::unlock() - Снимает блокировку, установленную EventBuffer::lock


Prepend data to the front of the buffer

  • « EventBuffer::lock
  • EventBuffer::prependBuffer »
  • PHP Manual
  • EventBuffer
  • Prepend data to the front of the buffer

EventBuffer::prepend

(PECL event >= 1.2.6-beta)

EventBuffer::prepend — Prepend data to the front of the buffer

Описание

public EventBuffer::prepend ( string $data ) : bool

Prepend data to the front of the buffer.

Список параметров

data

String to be prepended to the front of the buffer.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBuffer::prependBuffer() - Moves all data from source buffer to the front of current buffer
  • EventBuffer::add() - Добавляет данные в конец буфера событий
  • EventBuffer::addBuffer() - Перемещает все данные из буфера экземпляру EventBuffer


Moves all data from source buffer to the front of current buffer

  • « EventBuffer::prepend
  • EventBuffer::pullup »
  • PHP Manual
  • EventBuffer
  • Moves all data from source buffer to the front of current buffer

EventBuffer::prependBuffer

(PECL event >= 1.2.6-beta)

EventBuffer::prependBuffer — Moves all data from source buffer to the front of current buffer

Описание

public EventBuffer::prependBuffer ( EventBuffer $buf ) : bool

Behaves as EventBuffer::addBuffer() , except that it moves data to the front of the buffer.

Список параметров

buf

Source buffer.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBuffer::add() - Добавляет данные в конец буфера событий
  • EventBuffer::addBuffer() - Перемещает все данные из буфера экземпляру EventBuffer
  • EventBuffer::prepend() - Prepend data to the front of the buffer


Linearizes data within buffer and returns it's contents as a string

  • « EventBuffer::prependBuffer
  • EventBuffer::read »
  • PHP Manual
  • EventBuffer
  • Linearizes data within buffer and returns it's contents as a string

EventBuffer::pullup

(PECL event >= 1.2.6-beta)

EventBuffer::pullup — Linearizes data within buffer and returns it's contents as a string

Описание

public EventBuffer::pullup ( int $size ) : string

"Linearizes" the first size bytes of the buffer, copying or moving them as needed to ensure that they are all contiguous and occupying the same chunk of memory. If size is negative, the function linearizes the entire buffer.

Внимание

Calling EventBuffer::pullup() with a large size can be quite slow, since it potentially needs to copy the entire buffer's contents.

Список параметров

size

The number of bytes required to be contiguous within the buffer.

Возвращаемые значения

If size is greater than the number of bytes in the buffer, the function returns NULL. Otherwise, EventBuffer::pullup() returns string.

Смотрите также

  • EventBuffer::copyout() - Копирует указанное количество байтов с начала буфера
  • EventBuffer::drain() - Удаляет указанное количество байтов с начала буфера, никуда не копируя
  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read
  • EventBuffer::readLine() - Extracts a line from the front of the buffer
  • EventBuffer::appendFrom() - Перемещает указанное количество байтов из исходного буфера в конец текущего буфера


Read data from an evbuffer and drain the bytes read

  • « EventBuffer::pullup
  • EventBuffer::readFrom »
  • PHP Manual
  • EventBuffer
  • Read data from an evbuffer and drain the bytes read

EventBuffer::read

(PECL event >= 1.6.0)

EventBuffer::read — Read data from an evbuffer and drain the bytes read

Описание

public EventBuffer::read ( int $max_bytes ) : string

Read the first max_bytes from the buffer and drain the bytes read. If more max_bytes are requested than are available in the buffer, it only extracts as many bytes as available.

Список параметров

max_bytes

Maxmimum number of bytes to read from the buffer.

Возвращаемые значения

Returns string read, or FALSE on failure.

Список изменений

Версия | Описание
1.6.0 | Renamed EventBuffer::read()(the old method name) to EventBuffer::read(). EventBuffer::read() now takes only max_bytes argument; returns string instead of integer.

Смотрите также

  • EventBuffer::copyout() - Копирует указанное количество байтов с начала буфера
  • EventBuffer::drain() - Удаляет указанное количество байтов с начала буфера, никуда не копируя
  • EventBuffer::pullup() - Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::readLine() - Extracts a line from the front of the buffer
  • EventBuffer::appendFrom() - Перемещает указанное количество байтов из исходного буфера в конец текущего буфера


Read data from a file onto the end of the buffer

  • « EventBuffer::read
  • EventBuffer::readLine »
  • PHP Manual
  • EventBuffer
  • Read data from a file onto the end of the buffer

EventBuffer::readFrom

(PECL event >= 1.7.0)

EventBuffer::readFrom — Read data from a file onto the end of the buffer

Описание

public EventBuffer::read ( mixed $fd , int $howmuch ) : int

Read data from the file specified by fd onto the end of the buffer.

Список параметров

fd

Socket resource, stream, or numeric file descriptor.

howmuch

Maxmimum number of bytes to read.

Возвращаемые значения

Returns the number of bytes read, or FALSE on failure.

Смотрите также

  • EventBuffer::copyout() - Копирует указанное количество байтов с начала буфера
  • EventBuffer::drain() - Удаляет указанное количество байтов с начала буфера, никуда не копируя
  • EventBuffer::pullup() - Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::readLine() - Extracts a line from the front of the buffer
  • EventBuffer::appendFrom() - Перемещает указанное количество байтов из исходного буфера в конец текущего буфера


Extracts a line from the front of the buffer

  • « EventBuffer::readFrom
  • EventBuffer::search »
  • PHP Manual
  • EventBuffer
  • Extracts a line from the front of the buffer

EventBuffer::readLine

(PECL event >= 1.2.6-beta)

EventBuffer::readLine — Extracts a line from the front of the buffer

Описание

public EventBuffer::readLine ( int $eol_style ) : string

Extracts a line from the front of the buffer and returns it in a newly allocated string. If there is not a whole line to read, the function returns NULL. The line terminator is not included in the copied string.

Список параметров

eol_style

One of EventBuffer:EOL_* constants .

Возвращаемые значения

On success returns the line read from the buffer, otherwise NULL.

Смотрите также

  • EventBuffer::copyout() - Копирует указанное количество байтов с начала буфера
  • EventBuffer::drain() - Удаляет указанное количество байтов с начала буфера, никуда не копируя
  • EventBuffer::pullup() - Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read
  • EventBuffer::appendFrom() - Перемещает указанное количество байтов из исходного буфера в конец текущего буфера


Scans the buffer for an occurrence of a string

  • « EventBuffer::readLine
  • EventBuffer::searchEol »
  • PHP Manual
  • EventBuffer
  • Scans the buffer for an occurrence of a string

EventBuffer::search

(PECL event >= 1.2.6-beta)

EventBuffer::search — Scans the buffer for an occurrence of a string

Описание

public EventBuffer::search ( string $what [, int $start = -1 [, int $end = -1 ]] ) : mixed

Scans the buffer for an occurrence of the string what . It returns numeric position of the string, or FALSE if the string was not found.

If the start argument is provided, it points to the position at which the search should begin; otherwise, the search is performed from the start of the string. If end argument provided, the search is performed between start and end buffer positions.

Список параметров

what

String to search.

start

Start search position.

end

End search position.

Возвращаемые значения

Returns numeric position of the first occurance of the string in the buffer, or FALSE if string is not found.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 EventBuffer::search() example

<?php
// Count total occurances of 'str' in 'buf'
function count_instances($buf, $str) {
    $total = 0;
    $p     = 0;
    $i     = 0;

    while (1) {
        $p = $buf->search($str, $p);
        if ($p === FALSE) {
            break;
        }
        ++$total;
        ++$p;
    }

    return $total;
}

$buf = new EventBuffer();
$buf->add("Some string within a string inside another string");
var_dump(count_instances($buf, "str"));
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)

Смотрите также

  • EventBuffer::searchEol() - Scans the buffer for an occurrence of an end of line


Scans the buffer for an occurrence of an end of line

  • « EventBuffer::search
  • EventBuffer::substr »
  • PHP Manual
  • EventBuffer
  • Scans the buffer for an occurrence of an end of line

EventBuffer::searchEol

(PECL event >= 1.5.0)

EventBuffer::searchEol — Scans the buffer for an occurrence of an end of line

Описание

public EventBuffer::searchEol ([ int $start = -1 [, int $eol_style = EventBuffer::EOL_ANY ]] ) : mixed

Scans the buffer for an occurrence of an end of line specified by eol_style parameter . It returns numeric position of the string, or FALSE if the string was not found.

If the start argument is provided, it represents the position at which the search should begin; otherwise, the search is performed from the start of the string. If end argument provided, the search is performed between start and end buffer positions.

Список параметров

start

Start search position.

eol_style

One of EventBuffer:EOL_* constants .

Возвращаемые значения

Returns numeric position of the first occurance of end-of-line symbol in the buffer, or FALSE if not found.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Смотрите также

  • EventBuffer::search() - Scans the buffer for an occurrence of a string


Substracts a portion of the buffer data

  • « EventBuffer::searchEol
  • EventBuffer::unfreeze »
  • PHP Manual
  • EventBuffer
  • Substracts a portion of the buffer data

EventBuffer::substr

(PECL event >= 1.6.0)

EventBuffer::substr — Substracts a portion of the buffer data

Описание

public EventBuffer::substr ( int $start [, int $length ] ) : string

Substracts up to length bytes of the buffer data beginning at start position.

Список параметров

start

The start position of data to be substracted.

length

Maximum number of bytes to substract.

Возвращаемые значения

Returns the data substracted as a string on success, or FALSE on failure.

Смотрите также

  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read


Re-enable calls that modify an event buffer

  • « EventBuffer::substr
  • EventBuffer::unlock »
  • PHP Manual
  • EventBuffer
  • Re-enable calls that modify an event buffer

EventBuffer::unfreeze

(PECL event >= 1.2.6-beta)

EventBuffer::unfreeze — Re-enable calls that modify an event buffer

Описание

public EventBuffer::unfreeze ( bool $at_front ) : bool

Re-enable calls that modify an event buffer.

Список параметров

at_front

Whether to enable events at the front or at the end of the buffer.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBuffer::freeze() - Prevent calls that modify an event buffer from succeeding


Снимает блокировку, установленную EventBuffer::lock

  • « EventBuffer::unfreeze
  • EventBuffer::write »
  • PHP Manual
  • EventBuffer
  • Снимает блокировку, установленную EventBuffer::lock

EventBuffer::unlock

(PECL event >= 1.2.6-beta)

EventBuffer::unlock — Снимает блокировку, установленную EventBuffer::lock

Описание

public EventBuffer::unlock ( void ) : bool

Снимает блокировку, установленную EventBuffer::lock() .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Смотрите также

  • EventBuffer::lock() - Получает блокировку буфера


Write contents of the buffer to a file or socket

  • « EventBuffer::unlock
  • EventBufferEvent »
  • PHP Manual
  • EventBuffer
  • Write contents of the buffer to a file or socket

EventBuffer::write

(PECL event >= 1.6.0)

EventBuffer::write — Write contents of the buffer to a file or socket

Описание

public EventBuffer::write ( mixed $fd [, int $howmuch ] ) : int

Write contents of the buffer to a file descriptor. The buffer will be drained after the bytes have been successfully written.

Список параметров

fd

Socket resource, stream or numeric file descriptor associated normally associated with a socket.

howmuch

The maximum number of bytes to write.

Возвращаемые значения

Returns the number of bytes written, or FALSE on error.

Смотрите также

  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read


Класс EventBufferEvent

(PECL event >= 1.2.6-beta)

Введение

Представляет буферезированное событие Libevent.

Обычно приложению необходимо произвести буферизацию некоторого количества данных в дополнение к тому, чтоб просто реагировать на события. Когда мы, к примеру, хотим записывать данные, обычный алгоритм выглядит так:

  1. Решаем, что нам надо записать данные в соединение; складываем данные в буфер

  2. Ожидаем, когда соединение станет доступным для записи

  3. Записываем столько данных, сколько можем

  4. Запоминаем, сколько данных записали и, если остались недозаписанные данные, ждем, когда соединение снова станет доступно для записи.

Это шаблон буферезированного вводы/вывода настолько распространен, что Libevent предоставляет встроенный механизм для него. "Буферезированное событие" состоит из транспорта (например сокета), буфера чтения и буфера записи. В отличие от стандартных событий, которые используют функцию обратного вызова когда транспорт становится доступен для чтения или записи, буферизованное событие вызывает функцию обратного вызова тогда, когда прочитает или запишет достаточное количество данных.

Обзор классов

final EventBufferEvent {
/* Константы */
const integer READING = 1 ;
const integer WRITING = 2 ;
const integer EOF = 16 ;
const integer ERROR = 32 ;
const integer TIMEOUT = 64 ;
const integer CONNECTED = 128 ;
const integer OPT_CLOSE_ON_FREE = 1 ;
const integer OPT_THREADSAFE = 2 ;
const integer OPT_DEFER_CALLBACKS = 4 ;
const integer OPT_UNLOCK_CALLBACKS = 8 ;
const integer SSL_OPEN = 0 ;
const integer SSL_CONNECTING = 1 ;
const integer SSL_ACCEPTING = 2 ;
/* Свойства */
public integer $fd ;
public integer $priority ;
public readonly EventBuffer $input ;
public readonly EventBuffer $output ;
/* Методы */
public close ( void ) : void
public connect ( string $addr ) : bool
public connectHost ( EventDnsBase $dns_base , string $hostname , int $port [, int $family = EventUtil::AF_UNSPEC ] ) : bool
public __construct ( EventBase $base [, mixed $socket = NULL [, int $options = 0 [, callable $readcb = NULL [, callable $writecb = NULL [, callable $eventcb = NULL ]]]]] )
public static createPair ( EventBase $base [, int $options = 0 ] ) : array
public disable ( int $events ) : bool
public enable ( int $events ) : bool
public free ( void ) : void
public getDnsErrorString ( void ) : string
public getEnabled ( void ) : int
public getInput ( void ) : EventBuffer
public getOutput ( void ) : EventBuffer
public read ( int $size ) : string
public readBuffer ( EventBuffer $buf ) : bool
public setCallbacks ( callable $readcb , callable $writecb , callable $eventcb [, string $arg ] ) : void
public setPriority ( int $priority ) : bool
public setTimeouts ( float $timeout_read , float $timeout_write ) : bool
public setWatermark ( int $events , int $lowmark , int $highmark ) : void
public sslError ( void ) : string
public static sslFilter ( EventBase $base , EventBufferEvent $underlying , EventSslContext $ctx , int $state [, int $options = 0 ] ) : EventBufferEvent
public sslGetCipherInfo ( void ) : string
public sslGetCipherName ( void ) : string
public sslGetCipherVersion ( void ) : string
public sslGetProtocol ( void ) : string
public sslRenegotiate ( void ) : void
public static sslSocket ( EventBase $base , mixed $socket , EventSslContext $ctx , int $state [, int $options ] ) : EventBufferEvent
public write ( string $data ) : bool
public writeBuffer ( EventBuffer $buf ) : bool
}

Свойства

fd

Числовой файловый дескриптор связанный с буферезированным сокетом. Обычно является связанным сокетом. Равен NULL, если отсутствует файловый дескриптор(сокет) связанный с буферизированным событием.

priority

Приоритет событий, используемых для реализации буферизованных событий.

input

Нижележащий объект входящего буфера ( EventBuffer )

output

Нижележащий объект исходящего буфера ( EventBuffer )

Предопределенные константы

EventBufferEvent::READING

Событие произошло в момент операции чтения из bufferevent. Проверьте другие флаги для этого события.

EventBufferEvent::WRITING

Событие произошло в момент операции записи в bufferevent. Проверьте другие флаги для этого события.

EventBufferEvent::EOF

Получен признак конца файла для буферизированного события.

EventBufferEvent::ERROR

Произошла ошибка во время операции с bufferevent. Подробную информацию об ошибке можно получить с помощью методов EventUtil::getLastSocketErrno() и/или EventUtil::getLastSocketError() .

EventBufferEvent::TIMEOUT

EventBufferEvent::CONNECTED

Запрошенное соединение с bufferevent установлено.

EventBufferEvent::OPT_CLOSE_ON_FREE

Закрыть нижележащий транспорт, когда объект буферизированного события уничтожен. Будет закрыт сокет, уничтожен буфер и т.д.

EventBufferEvent::OPT_THREADSAFE

Автоматически размещать блокировки для bufferevent, что позволяет безопасно использовать многопоточность.

EventBufferEvent::OPT_DEFER_CALLBACKS

Когда флаг установлен, bufferevent откладывает все свои функции обратного вызова. См. » Быстрое, переносимое, неблокирующее сетевое програмирование с Libevent и отложенными функциями обратного вызова (Deferred callbacks) .

EventBufferEvent::OPT_UNLOCK_CALLBACKS

По умолчанию, когда bufferevent настроен как потокобезопасный, для буферизированного события будут сохраняться блокировки при запуске любых пользовательских функций обратного вызова. Установка этого флага говорит Libevent убирать блокировки при вызове этих callback-функций.

EventBufferEvent::SSL_OPEN

Подтверждение SSL завершено

EventBufferEvent::SSL_CONNECTING

В текущий момент SSL участвует в установлении соединения как клиент

EventBufferEvent::SSL_ACCEPTING

В текущий момент SSL участвует в установлении соединения как сервер

Содержание

  • EventBufferEvent::close — Closes file descriptor associated with the current buffer event
  • EventBufferEvent::connect — Connect buffer event's file descriptor to given address or UNIX socket
  • EventBufferEvent::connectHost — Connects to a hostname with optionally asyncronous DNS resolving
  • EventBufferEvent::__construct — Constructs EventBufferEvent object
  • EventBufferEvent::createPair — Creates two buffer events connected to each other
  • EventBufferEvent::disable — Disable events read, write, or both on a buffer event
  • EventBufferEvent::enable — Enable events read, write, or both on a buffer event
  • EventBufferEvent::free — Free a buffer event
  • EventBufferEvent::getDnsErrorString — Returns string describing the last failed DNS lookup attempt
  • EventBufferEvent::getEnabled — Returns bitmask of events currently enabled on the buffer event
  • EventBufferEvent::getInput — Returns underlying input buffer associated with current buffer event
  • EventBufferEvent::getOutput — Returns underlying output buffer associated with current buffer event
  • EventBufferEvent::read — Read buffer's data
  • EventBufferEvent::readBuffer — Drains the entire contents of the input buffer and places them into buf
  • EventBufferEvent::setCallbacks — Assigns read, write and event(status) callbacks
  • EventBufferEvent::setPriority — Assign a priority to a bufferevent
  • EventBufferEvent::setTimeouts — Set the read and write timeout for a buffer event
  • EventBufferEvent::setWatermark — Adjusts read and/or write watermarks
  • EventBufferEvent::sslError — Возвращает последнюю ошибку OpenSSL, сообщенную буферному событию
  • EventBufferEvent::sslFilter — Create a new SSL buffer event to send its data over another buffer event
  • EventBufferEvent::sslGetCipherInfo — Возвращает текстовое описание шифра
  • EventBufferEvent::sslGetCipherName — Возвращает текущее имя шифра соединения SSL
  • EventBufferEvent::sslGetCipherVersion — Возвращает версию шифра, используемого текущим SSL-соединением
  • EventBufferEvent::sslGetProtocol — Возвращает имя протокола, используемого для текущего соединения SSL
  • EventBufferEvent::sslRenegotiate — Сообщает буферному событию начать пересмотр SSL
  • EventBufferEvent::sslSocket — Создает новое буферное событие SSL для отправки своих данных через SSL в сокет
  • EventBufferEvent::write — Добавляет данные в буфер вывода буферного события
  • EventBufferEvent::writeBuffer — Добавляет содержимое всего буфера в буфер вывода буферного события


Closes file descriptor associated with the current buffer event

  • « EventBufferEvent
  • EventBufferEvent::connect »
  • PHP Manual
  • EventBufferEvent
  • Closes file descriptor associated with the current buffer event

EventBufferEvent::close

(PECL event >= 1.10.0)

EventBufferEvent::close — Closes file descriptor associated with the current buffer event

Описание

public EventBufferEvent::close ( void ) : void

Closes file descriptor associated with the current buffer event.

This method may be used in cases when the EventBufferEvent::OPT_CLOSE_ON_FREE option is not appropriate.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Connect buffer event's file descriptor to given address or UNIX socket

  • « EventBufferEvent::close
  • EventBufferEvent::connectHost »
  • PHP Manual
  • EventBufferEvent
  • Connect buffer event's file descriptor to given address or UNIX socket

EventBufferEvent::connect

(PECL event >= 1.2.6-beta)

EventBufferEvent::connect — Connect buffer event's file descriptor to given address or UNIX socket

Описание

public EventBufferEvent::connect ( string $addr ) : bool

Connect buffer event's file descriptor to given address(optionally with port), or a UNIX domain socket.

If socket is not assigned to the buffer event, this function allocates a new socket and makes it non-blocking internally.

To resolve DNS names(asyncronously), use EventBufferEvent::connectHost() method.

Список параметров

addr

Should contain an IP address with optional port number, or a path to UNIX domain socket. Recognized formats are:

[IPv6Address]:port
[IPv6Address]
IPv6Address
IPv4Address:port
IPv4Address
unix:path
Note, 'unix:' prefix is currently not case sensitive.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Примеры

Пример #1 EventBufferEvent::connect() example

<?php
/*
 * 1. Connect to 127.0.0.1 at port 80
 * by means of EventBufferEvent::connect().
 *
 * 2. Request /index.cphp via HTTP/1.0
 * using the output buffer.
 *
 * 3. Asyncronously read the response and print it to stdout.
 */

/* Read callback */
function readcb($bev, $base) {
    $input = $bev->getInput();

    while (($n = $input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}

/* Event callback */
function eventcb($bev, $events, $base) {
    if ($events & EventBufferEvent::CONNECTED) {
        echo "Connected.\n";
    } elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
        if ($events & EventBufferEvent::ERROR) {
            echo "DNS error: ", $bev->getDnsErrorString(), PHP_EOL;
        }

        echo "Closing\n";
        $base->exit();
        exit("Done\n");
    }
}

$base = new EventBase();

echo "step 1\n";
$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS);
if (!$bev) {
    exit("Failed creating bufferevent socket\n");
}

echo "step 2\n";
$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

echo "step 3\n";
/* Send request */
$output = $bev->getOutput();
if (!$output->add(
    "GET /index.cphp HTTP/1.0\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Failed adding request to output buffer\n");
}

/* Connect to the host syncronously.
 * We know the IP, and don't need to resolve DNS. */
if (!$bev->connect("127.0.0.1:80")) {
    exit("Can't connect to host\n");
}

/* Dispatch pending events */
$base->dispatch();

Результатом выполнения данного примера будет что-то подобное:

step 1
step 2
step 3
Connected.
HTTP/1.1 200 OK
Server: nginx/1.2.6
Date: Sat, 09 Mar 2013 10:06:58 GMT
Content-Type: text/html; CHARSET=Windows-1251
Connection: close
X-Powered-By: PHP/5.4.11--pl2-gentoo

sdfsdfsf
Closing
Done

Пример #2 Connect to UNIX domain socket which presumably is served by a server, read response from the server and output it to the console

<?php
class MyUnixSocketClient {
    private $base, $bev;

    function __construct($base, $sock_path) {
        $this->base = $base;
        $this->bev = new EventBufferEvent($base, NULL, EventBufferEvent::OPT_CLOSE_ON_FREE,
            array ($this, "read_cb"), NULL, array ($this, "event_cb"));

        if (!$this->bev->connect("unix:$sock_path")) {
            trigger_error("Failed to connect to socket `$sock_path'", E_USER_ERROR);
        }

        $this->bev->enable(Event::READ);
    }

    function __destruct() {
        if ($this->bev) {
            $this->bev->free();
            $this->bev = NULL;
        }
    }

    function dispatch() {
        $this->base->dispatch();
    }

    function read_cb($bev, $unused) {
        $in = $bev->input;

        printf("Received %ld bytes\n", $in->length);
        printf("----- data ----\n");
        printf("%ld:\t%s\n", (int) $in->length, $in->pullup(-1));

        $this->bev->free();
        $this->bev = NULL;
        $this->base->exit(NULL);
    }

    function event_cb($bev, $events, $unused) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Error from bufferevent\n";
        }

        if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
            $bev->free();
            $bev = NULL;
        } elseif ($events & EventBufferEvent::CONNECTED) {
            $bev->output->add("test\n");
        }
    }
}

if ($argc <= 1) {
    exit("Socket path is not provided\n");
}
$sock_path = $argv[1];

$base = new EventBase();
$cl = new MyUnixSocketClient($base, $sock_path);
$cl->dispatch();
?>

Результатом выполнения данного примера будет что-то подобное:

Received 5 bytes
----- data ----
5:  test

Смотрите также

  • EventBufferEvent::connectHost() - Connects to a hostname with optionally asyncronous DNS resolving


Connects to a hostname with optionally asyncronous DNS resolving

  • « EventBufferEvent::connect
  • EventBufferEvent::__construct »
  • PHP Manual
  • EventBufferEvent
  • Connects to a hostname with optionally asyncronous DNS resolving

EventBufferEvent::connectHost

(PECL event >= 1.2.6-beta)

EventBufferEvent::connectHost — Connects to a hostname with optionally asyncronous DNS resolving

Описание

public EventBufferEvent::connectHost ( EventDnsBase $dns_base , string $hostname , int $port [, int $family = EventUtil::AF_UNSPEC ] ) : bool

Resolves the DNS name hostname, looking for addresses of type family ( EventUtil::AF_* constants). If the name resolution fails, it invokes the event callback with an error event. If it succeeds, it launches a connection attempt just as EventBufferEvent::connect() would.

dns_base is optional. May be NULL, or an object created with EventDnsBase::__construct() . For asyncronous hostname resolving pass a valid event dns base resource. Otherwise the hostname resolving will block.

Замечание:

EventDnsBase is available only if Event configured --with-event-extra ( event_extra library, libevent protocol-specific functionality support including HTTP, DNS, and RPC ).

Замечание:

EventBufferEvent::connectHost() requires libevent-2.0.3-alpha or greater.

Список параметров

dns_base

Object of EventDnsBase in case if DNS is to be resolved asyncronously. Otherwise NULL.

hostname

Hostname to connect to. Recognized formats are:

www.example.com (hostname)
 1.2.3.4 (ipv4address)
 ::1 (ipv6address)
[::1] ([ipv6address])

port

Port number

family

Address family. EventUtil::AF_UNSPEC , EventUtil::AF_INET , or EventUtil::AF_INET6 . See EventUtil constants .

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Примеры

Пример #1 EventBufferEvent::connectHost() example

<?php
/* Read callback */
function readcb($bev, $base) {
    //$input = $bev->input; //$bev->getInput();

    //$pos = $input->search("TTP");
    $pos = $bev->input->search("TTP");

    while (($n = $bev->input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}

/* Event callback */
function eventcb($bev, $events, $base) {
    if ($events & EventBufferEvent::CONNECTED) {
        echo "Connected.\n";
    } elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
        if ($events & EventBufferEvent::ERROR) {
            echo "DNS error: ", $bev->getDnsErrorString(), PHP_EOL;
        }

        echo "Closing\n";
        $base->exit();
        exit("Done\n");
    }
}

$base = new EventBase();

$dns_base = new EventDnsBase($base, TRUE); // We'll use async DNS resolving
if (!$dns_base) {
    exit("Failed to init DNS Base\n");
}

$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
    "readcb", /* writecb */ NULL, "eventcb", $base
);
if (!$bev) {
    exit("Failed creating bufferevent socket\n");
}

//$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

$output = $bev->output; //$bev->getOutput();
if (!$output->add(
    "GET {$argv[2]} HTTP/1.0\r\n".
    "Host: {$argv[1]}\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Failed adding request to output buffer\n");
}

if (!$bev->connectHost($dns_base, $argv[1], 80, EventUtil::AF_UNSPEC)) {
    exit("Can't connect to host {$argv[1]}\n");
}

$base->dispatch();
?>

Результатом выполнения данного примера будет что-то подобное:

Connected.
HTTP/1.0 301 Moved Permanently
Location: http://www.google.co.uk/
Content-Type: text/html; CHARSET=Windows-1251
Date: Sat, 09 Mar 2013 12:21:19 GMT
Expires: Mon, 08 Apr 2013 12:21:19 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 221
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN

<HTML><HEAD><meta http-equiv="content-type" content="text/html;CHARSET=Windows-1251">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.co.uk/">here</A>.
</BODY></HTML>
Closing
Done

Смотрите также

  • EventBufferEvent::connect() - Connect buffer event's file descriptor to given address or UNIX socket


Constructs EventBufferEvent object

  • « EventBufferEvent::connectHost
  • EventBufferEvent::createPair »
  • PHP Manual
  • EventBufferEvent
  • Constructs EventBufferEvent object

EventBufferEvent::__construct

(PECL event >= 1.2.6-beta)

EventBufferEvent::__construct — Constructs EventBufferEvent object

Описание

public EventBufferEvent::__construct ( EventBase $base [, mixed $socket = NULL [, int $options = 0 [, callable $readcb = NULL [, callable $writecb = NULL [, callable $eventcb = NULL ]]]]] )

Create a buffer event on a socket, stream or a file descriptor. Passing NULL to socket means that the socket should be created later, e.g. by means of EventBufferEvent::connect() .

Список параметров

base

Event base that should be associated with the new buffer event.

socket

May be created as a stream(not necessarily by means of sockets extension)

options

One of EventBufferEvent::OPT_* constants , or 0 .

readcb

Read event callback. See About buffer event callbacks .

writecb

Write event callback. See About buffer event callbacks .

eventcb

Status-change event callback. See About buffer event callbacks .

arg

A variable that will be passed to all the callbacks.

Возвращаемые значения

Returns buffer event resource optionally associated with socket resource. */

Смотрите также

  • EventBufferEvent::sslFilter() - Create a new SSL buffer event to send its data over another buffer event
  • EventBufferEvent::sslSocket() - Создает новое буферное событие SSL для отправки своих данных через SSL в сокет


Creates two buffer events connected to each other

  • « EventBufferEvent::__construct
  • EventBufferEvent::disable »
  • PHP Manual
  • EventBufferEvent
  • Creates two buffer events connected to each other

EventBufferEvent::createPair

(PECL event >= 1.2.6-beta)

EventBufferEvent::createPair — Creates two buffer events connected to each other

Описание

public static EventBufferEvent::createPair ( EventBase $base [, int $options = 0 ] ) : array

Returns array of two EventBufferEvent objects connected to each other. All the usual options are supported, except for EventBufferEvent::OPT_CLOSE_ON_FREE , which has no effect, and EventBufferEvent::OPT_DEFER_CALLBACKS , which is always on.

Список параметров

base

Associated event base

options

EventBufferEvent::OPT_* constants combined with bitwise OR operator.

Возвращаемые значения

Returns array of two EventBufferEvent objects connected to each other.

Список изменений

Версия | Описание
1.9.0 | Method made static.


Disable events read, write, or both on a buffer event

  • « EventBufferEvent::createPair
  • EventBufferEvent::enable »
  • PHP Manual
  • EventBufferEvent
  • Disable events read, write, or both on a buffer event

EventBufferEvent::disable

(PECL event >= 1.2.6-beta)

EventBufferEvent::disable — Disable events read, write, or both on a buffer event

Описание

public EventBufferEvent::disable ( int $events ) : bool

Disable events Event::READ , Event::WRITE , or Event::READ | Event::WRITE on a buffer event.

Список параметров

events

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBufferEvent::enable() - Enable events read, write, or both on a buffer event


Enable events read, write, or both on a buffer event

  • « EventBufferEvent::disable
  • EventBufferEvent::free »
  • PHP Manual
  • EventBufferEvent
  • Enable events read, write, or both on a buffer event

EventBufferEvent::enable

(PECL event >= 1.2.6-beta)

EventBufferEvent::enable — Enable events read, write, or both on a buffer event

Описание

public EventBufferEvent::enable ( int $events ) : bool

Enable events Event::READ , Event::WRITE , or Event::READ | Event::WRITE on a buffer event.

Список параметров

events

Event::READ , Event::WRITE , or Event::READ | Event::WRITE on a buffer event.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBufferEvent::disable() - Disable events read, write, or both on a buffer event


Free a buffer event

  • « EventBufferEvent::enable
  • EventBufferEvent::getDnsErrorString »
  • PHP Manual
  • EventBufferEvent
  • Free a buffer event

EventBufferEvent::free

(PECL event >= 1.2.6-beta)

EventBufferEvent::free — Free a buffer event

Описание

public EventBufferEvent::free ( void ) : void

Free resources allocated by buffer event.

Usually there is no need to call this method, since normally it is done within internal object destructors. However, sometimes we have a long-time script allocating lots of instances, or a script with a heavy memory usage, where we need to free resources as soon as possible. In such cases EventBufferEvent::free() may be used to protect the script against running up to the memory_limit .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Returns string describing the last failed DNS lookup attempt

  • « EventBufferEvent::free
  • EventBufferEvent::getEnabled »
  • PHP Manual
  • EventBufferEvent
  • Returns string describing the last failed DNS lookup attempt

EventBufferEvent::getDnsErrorString

(PECL event >= 1.2.6-beta)

EventBufferEvent::getDnsErrorString — Returns string describing the last failed DNS lookup attempt

Описание

public EventBufferEvent::getDnsErrorString ( void ) : string

Returns string describing the last failed DNS lookup attempt made by EventBufferEvent::connectHost() , or an empty string, if there is no DNS error detected.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string describing DNS lookup error, or an empty string for no error.

Смотрите также

  • EventBufferEvent::connectHost() - Connects to a hostname with optionally asyncronous DNS resolving


Returns bitmask of events currently enabled on the buffer event

  • « EventBufferEvent::getDnsErrorString
  • EventBufferEvent::getInput »
  • PHP Manual
  • EventBufferEvent
  • Returns bitmask of events currently enabled on the buffer event

EventBufferEvent::getEnabled

(PECL event >= 1.2.6-beta)

EventBufferEvent::getEnabled — Returns bitmask of events currently enabled on the buffer event

Описание

public EventBufferEvent::getEnabled ( void ) : int

Returns bitmask of events currently enabled on the buffer event

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns integer representing a bitmask of events currently enabled on the buffer event

Смотрите также

  • EventBufferEvent::enable() - Enable events read, write, or both on a buffer event
  • EventBufferEvent::disable() - Disable events read, write, or both on a buffer event


Returns underlying input buffer associated with current buffer event

  • « EventBufferEvent::getEnabled
  • EventBufferEvent::getOutput »
  • PHP Manual
  • EventBufferEvent
  • Returns underlying input buffer associated with current buffer event

EventBufferEvent::getInput

(PECL event >= 1.2.6-beta)

EventBufferEvent::getInput — Returns underlying input buffer associated with current buffer event

Описание

public EventBufferEvent::getInput ( void ) : EventBuffer

Returns underlying input buffer associated with current buffer event. An input buffer is a storage for data to read.

Note, there is also input property of EventBufferEvent class.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns instance of EventBuffer input buffer associated with current buffer event.

Примеры

Пример #1 Buffer event's read callback

<?php
function readcb($bev, $base) {
    $input = $bev->input; //$bev->getInput();

    while (($n = $input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}
?>

Смотрите также

  • EventBufferEvent::getOutput() - Returns underlying output buffer associated with current buffer event


Returns underlying output buffer associated with current buffer event

  • « EventBufferEvent::getInput
  • EventBufferEvent::read »
  • PHP Manual
  • EventBufferEvent
  • Returns underlying output buffer associated with current buffer event

EventBufferEvent::getOutput

(PECL event >= 1.2.6-beta)

EventBufferEvent::getOutput — Returns underlying output buffer associated with current buffer event

Описание

public EventBufferEvent::getOutput ( void ) : EventBuffer

Returns underlying output buffer associated with current buffer event. An output buffer is a storage for data to be written.

Note, there is also output property of EventBufferEvent class.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns instance of EventBuffer output buffer associated with current buffer event.

Примеры

Пример #1 EventBufferEvent::getOutput() example

<?php
$base = new EventBase();

$dns_base = new EventDnsBase($base, TRUE); // Use async DNS resolving
if (!$dns_base) {
    exit("Failed to init DNS Base\n");
}

$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
    "readcb", /* writecb */ NULL, "eventcb", $base
);
if (!$bev) {
    exit("Failed creating bufferevent socket\n");
}

$bev->enable(Event::READ | Event::WRITE);

$output = $bev->getOutput();
if (!$output->add(
    "GET {$argv[2]} HTTP/1.0\r\n".
    "Host: {$argv[1]}\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Failed adding request to output buffer\n");
}

/* ... */
?>

Смотрите также

  • EventBufferEvent::getInput() - Returns underlying input buffer associated with current buffer event


Read buffer's data

  • « EventBufferEvent::getOutput
  • EventBufferEvent::readBuffer »
  • PHP Manual
  • EventBufferEvent
  • Read buffer's data

EventBufferEvent::read

(PECL event >= 1.2.6-beta)

EventBufferEvent::read — Read buffer's data

Описание

public EventBufferEvent::read ( int $size ) : string

Removes up to size bytes from the input buffer. Returns a string of data read from the input buffer.

Список параметров

size

Maximum number of bytes to read

Возвращаемые значения

Returns string of data read from the input buffer.

Смотрите также

  • EventBufferEvent::readBuffer() - Drains the entire contents of the input buffer and places them into buf


Drains the entire contents of the input buffer and places them into buf

  • « EventBufferEvent::read
  • EventBufferEvent::setCallbacks »
  • PHP Manual
  • EventBufferEvent
  • Drains the entire contents of the input buffer and places them into buf

EventBufferEvent::readBuffer

(PECL event >= 1.2.6-beta)

EventBufferEvent::readBuffer — Drains the entire contents of the input buffer and places them into buf

Описание

public EventBufferEvent::readBuffer ( EventBuffer $buf ) : bool

Drains the entire contents of the input buffer and places them into buf .

Список параметров

buf

Target buffer

Возвращаемые значения

Returns TRUE on success; Otherwise FALSE.

Смотрите также

  • EventBufferEvent::read() - Read buffer's data


Assigns read, write and event(status) callbacks

  • « EventBufferEvent::readBuffer
  • EventBufferEvent::setPriority »
  • PHP Manual
  • EventBufferEvent
  • Assigns read, write and event(status) callbacks

EventBufferEvent::setCallbacks

(PECL event >= 1.2.6-beta)

EventBufferEvent::setCallbacks — Assigns read, write and event(status) callbacks

Описание

public EventBufferEvent::setCallbacks ( callable $readcb , callable $writecb , callable $eventcb [, string $arg ] ) : void

Assigns read, write and event(status) callbacks.

Список параметров

readcb

Read event callback. See About buffer event callbacks .

writecb

Write event callback. See About buffer event callbacks .

eventcb

Status-change event callback. See About buffer event callbacks .

arg

A variable that will be passed to all the callbacks.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventBufferEvent::__construct() - Constructs EventBufferEvent object


Assign a priority to a bufferevent

  • « EventBufferEvent::setCallbacks
  • EventBufferEvent::setTimeouts »
  • PHP Manual
  • EventBufferEvent
  • Assign a priority to a bufferevent

EventBufferEvent::setPriority

(PECL event >= 1.2.6-beta)

EventBufferEvent::setPriority — Assign a priority to a bufferevent

Описание

public EventBufferEvent::setPriority ( int $priority ) : bool

Assign a priority to a bufferevent

Внимание

Only supported for socket buffer events

Список параметров

priority

Priority value.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.


Set the read and write timeout for a buffer event

  • « EventBufferEvent::setPriority
  • EventBufferEvent::setWatermark »
  • PHP Manual
  • EventBufferEvent
  • Set the read and write timeout for a buffer event

EventBufferEvent::setTimeouts

(PECL event >= 1.2.6-beta)

EventBufferEvent::setTimeouts — Set the read and write timeout for a buffer event

Описание

public EventBufferEvent::setTimeouts ( float $timeout_read , float $timeout_write ) : bool

Set the read and write timeout for a buffer event

Список параметров

timeout_read

Read timeout

timeout_write

Write timeout

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.


Adjusts read and/or write watermarks

  • « EventBufferEvent::setTimeouts
  • EventBufferEvent::sslError »
  • PHP Manual
  • EventBufferEvent
  • Adjusts read and/or write watermarks

EventBufferEvent::setWatermark

(PECL event >= 1.2.6-beta)

EventBufferEvent::setWatermark — Adjusts read and/or write watermarks

Описание

public EventBufferEvent::setWatermark ( int $events , int $lowmark , int $highmark ) : void

Adjusts the read watermarks, the write watermarks , or both, of a single buffer event.

A buffer event watermark is an edge, a value specifying number of bytes to be read or written before callback is invoked. By default every read/write event triggers a callback invokation. See » Fast portable non-blocking network programming with Libevent: Callbacks and watermarks

Список параметров

events

Bitmask of Event::READ , Event::WRITE , or both.

lowmark

Minimum watermark value.

highmark

Maximum watermark value. 0 means "unlimited".

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает последнюю ошибку OpenSSL, сообщенную буферному событию

  • « EventBufferEvent::setWatermark
  • EventBufferEvent::sslFilter »
  • PHP Manual
  • EventBufferEvent
  • Возвращает последнюю ошибку OpenSSL, сообщенную буферному событию

EventBufferEvent::sslError

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslError — Возвращает последнюю ошибку OpenSSL, сообщенную буферному событию

Описание

public EventBufferEvent::sslError ( void ) : string

Возвращает последнюю ошибку OpenSSL, сообщенную буферному событию.

Замечание:

Функция доступна, только если Event скомпилирован с поддержкой OpenSSL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку ошибки OpenSSL, о которой сообщалось в буферном событии, или FALSE, если больше нет ошибок для возврата.

Примеры

Пример #1 Пример использования EventBufferEvent::sslError()

<?php
// Эта callbac-функция вызывается, когда какое-либо событие происходит в приемнике событий,
// например, соединение закрыто или произошла ошибка
function ssl_event_cb($bev, $events, $ctx) {
    if ($events & EventBufferEvent::ERROR) {
        // Извлекаем ошибки из стека ошибок SSL
        while ($err = $bev->sslError()) {
            fprintf(STDERR, "Bufferevent error %s.\n", $err);
        }
    }

    if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
        $bev->free();
    }
}
?>

Смотрите также

  • EventBufferEvent::sslRenegotiate() - Сообщает буферному событию начать пересмотр SSL


Create a new SSL buffer event to send its data over another buffer event

  • « EventBufferEvent::sslError
  • EventBufferEvent::sslGetCipherInfo »
  • PHP Manual
  • EventBufferEvent
  • Create a new SSL buffer event to send its data over another buffer event

EventBufferEvent::sslFilter

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslFilter — Create a new SSL buffer event to send its data over another buffer event

Описание

public static EventBufferEvent::sslFilter ( EventBase $base , EventBufferEvent $underlying , EventSslContext $ctx , int $state [, int $options = 0 ] ) : EventBufferEvent

Create a new SSL buffer event to send its data over another buffer event

Замечание:

This function is available only if Event is compiled with OpenSSL support.

Список параметров

base

Associated event base.

underlying

A socket buffer event to use for this SSL.

ctx

Object of EventSslContext class.

state

The current state of SSL connection: EventBufferEvent::SSL_OPEN , EventBufferEvent::SSL_ACCEPTING or EventBufferEvent::SSL_CONNECTING .

options

One or more buffer event options.

Возвращаемые значения

Returns a new SSL EventBufferEvent object.

Примеры

Пример #1 Простой SMTP-сервер

<?php
 /*
 * Автор: Andrew Rose <hello at andrewrose dot co dot uk>
 *
 * Usage:
 * 1) Подготовим файлы сертификата cert.pem и приватного ключа privkey.pem.
 * 2) Запустим скрипт сервера
 * 3) Откроем TLS-соединение, например:
 *      $ openssl s_client -connect localhost:25 -starttls smtp -crlf
 * 4) Протестируем команды, описанные в метода `cmd`.
 */

class Handler {
    public $domainName = FALSE;
    public $connections = [];
    public $buffers = [];
    public $maxRead = 256000;

    public function __construct() {
        $this->ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, [
            EventSslContext::OPT_LOCAL_CERT  => 'cert.pem',
            EventSslContext::OPT_LOCAL_PK    => 'privkey.pem',
            //EventSslContext::OPT_PASSPHRASE  => '',
            EventSslContext::OPT_VERIFY_PEER => false, // для корректного сертификата укажите true
            EventSslContext::OPT_ALLOW_SELF_SIGNED => true // для корректного сертификата укажите false
        ]);

        $this->base = new EventBase();
        if (!$this->base) {
            exit("Не удалось открыть обработчик событий\n");
        }

        if (!$this->listener = new EventListener($this->base,
            [$this, 'ev_accept'],
            $this->ctx,
            EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
            -1,
            '0.0.0.0:25'))
        {
            exit("Невозможно создать слушателя\n");
        }

        $this->listener->setErrorCallback([$this, 'ev_error']);
        $this->base->dispatch();
    }

    public function ev_accept($listener, $fd, $address, $ctx) {
        static $id = 0;
        $id += 1;

        $this->connections[$id]['clientData'] = '';
        $this->connections[$id]['cnx'] = new EventBufferEvent($this->base, $fd,
            EventBufferEvent::OPT_CLOSE_ON_FREE);

        if (!$this->connections[$id]['cnx']) {
            echo "Failed creating buffer\n";
            $this->base->exit(NULL);
            exit(1);
        }

        $this->connections[$id]['cnx']->setCallbacks([$this, "ev_read"], NULL,
            [$this, 'ev_error'], $id);
        $this->connections[$id]['cnx']->enable(Event::READ | Event::WRITE);

        $this->ev_write($id, '220 '.$this->domainName." wazzzap?\r\n");
    }

    function ev_error($listener, $ctx) {
        $errno = EventUtil::getLastSocketErrno();

        fprintf(STDERR, "Ошибка слушателя: %d (%s). Аварийное завершение работы.\n",
            $errno, EventUtil::getLastSocketError());

        if ($errno != 0) {
            $this->base->exit(NULL);
            exit();
        }
    }

    public function ev_close($id) {
        $this->connections[$id]['cnx']->disable(Event::READ | Event::WRITE);
        unset($this->connections[$id]);
    }

    protected function ev_write($id, $string) {
        echo 'S('.$id.'): '.$string;
        $this->connections[$id]['cnx']->write($string);
    }

    public function ev_read($buffer, $id) {
        while($buffer->input->length > 0) {
            $this->connections[$id]['clientData'] .= $buffer->input->read($this->maxRead);
            $clientDataLen = strlen($this->connections[$id]['clientData']);

            if($this->connections[$id]['clientData'][$clientDataLen-1] == "\n"
                && $this->connections[$id]['clientData'][$clientDataLen-2] == "\r")
            {
                // удаляем все завершающие \r\n
                $line = substr($this->connections[$id]['clientData'], 0,
                    strlen($this->connections[$id]['clientData']) - 2);

                $this->connections[$id]['clientData'] = '';
                $this->cmd($buffer, $id, $line);
            }
        }
    }

    protected function cmd($buffer, $id, $line) {
        switch ($line) {
            case strncmp('EHLO ', $line, 4):
                $this->ev_write($id, "250-STARTTLS\r\n");
                $this->ev_write($id, "250 OK ehlo\r\n");
                break;

            case strncmp('HELO ', $line, 4):
                $this->ev_write($id, "250-STARTTLS\r\n");
                $this->ev_write($id, "250 OK helo\r\n");
                break;

            case strncmp('QUIT', $line, 3):
                $this->ev_write($id, "250 OK quit\r\n");
                $this->ev_close($id);
                break;

            case strncmp('STARTTLS', $line, 3):
                $this->ev_write($id, "220 Ready to start TLS\r\n");
                $this->connections[$id]['cnx'] = EventBufferEvent::sslFilter($this->base,
                    $this->connections[$id]['cnx'], $this->ctx,
                    EventBufferEvent::SSL_ACCEPTING,
                    EventBufferEvent::OPT_CLOSE_ON_FREE);
                $this->connections[$id]['cnx']->setCallbacks([$this, "ev_read"], NULL, [$this, 'ev_error'], $id);
                $this->connections[$id]['cnx']->enable(Event::READ | Event::WRITE);
                break;

            default:
                echo 'неизвестная команда: '.$line."\n";
                break;
        }
    }
}

new Handler();

Смотрите также

  • EventBufferEvent::sslSocket() - Создает новое буферное событие SSL для отправки своих данных через SSL в сокет


Возвращает текстовое описание шифра

  • « EventBufferEvent::sslFilter
  • EventBufferEvent::sslGetCipherName »
  • PHP Manual
  • EventBufferEvent
  • Возвращает текстовое описание шифра

EventBufferEvent::sslGetCipherInfo

(PECL event >= 1.10.0)

EventBufferEvent::sslGetCipherInfo — Возвращает текстовое описание шифра

Описание

public EventBufferEvent::sslGetCipherInfo ( void ) : string

Получает описание текущего шифра с помощью функции SSL API SSL_CIPHER_description (смотрите справочную страницу SSL_CIPHER_get_name(3)).

Замечание:

Функция доступна, только если Event скомпилирован с поддержкой OpenSSL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текстовое описание шифра в случае успешного выполнения или FALSE в случае ошибки.


Возвращает текущее имя шифра соединения SSL

  • « EventBufferEvent::sslGetCipherInfo
  • EventBufferEvent::sslGetCipherVersion »
  • PHP Manual
  • EventBufferEvent
  • Возвращает текущее имя шифра соединения SSL

EventBufferEvent::sslGetCipherName

(PECL event >= 1.10.0)

EventBufferEvent::sslGetCipherName — Возвращает текущее имя шифра соединения SSL

Описание

public EventBufferEvent::sslGetCipherName ( void ) : string

Получает имя шифра, используемого текущим соединением SSL.

Замечание:

Функция доступна, только если Event скомпилирован с поддержкой OpenSSL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущее имя шифра SSL-соединения или FALSE в случае ошибки.


Возвращает версию шифра, используемого текущим SSL-соединением

  • « EventBufferEvent::sslGetCipherName
  • EventBufferEvent::sslGetProtocol »
  • PHP Manual
  • EventBufferEvent
  • Возвращает версию шифра, используемого текущим SSL-соединением

EventBufferEvent::sslGetCipherVersion

(PECL event >= 1.10.0)

EventBufferEvent::sslGetCipherVersion — Возвращает версию шифра, используемого текущим SSL-соединением

Описание

public EventBufferEvent::sslGetCipherVersion ( void ) : string

Получает версию шифра, используемого текущим соединением SSL.

Замечание:

Функция доступна, только если Event скомпилирован с поддержкой OpenSSL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущую версию шифрованного соединения SSL или FALSE в случае ошибки.


Возвращает имя протокола, используемого для текущего соединения SSL

  • « EventBufferEvent::sslGetCipherVersion
  • EventBufferEvent::sslRenegotiate »
  • PHP Manual
  • EventBufferEvent
  • Возвращает имя протокола, используемого для текущего соединения SSL

EventBufferEvent::sslGetProtocol

(PECL event >= 1.10.0)

EventBufferEvent::sslGetProtocol — Возвращает имя протокола, используемого для текущего соединения SSL

Описание

public EventBufferEvent::sslGetProtocol ( void ) : string

Возвращает имя протокола, используемого для текущего соединения SSL.

Замечание:

Функция доступна, только если Event скомпилирован с поддержкой OpenSSL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя протокола, используемого для текущего соединения SSL.


Сообщает буферному событию начать пересмотр SSL

  • « EventBufferEvent::sslGetProtocol
  • EventBufferEvent::sslSocket »
  • PHP Manual
  • EventBufferEvent
  • Сообщает буферному событию начать пересмотр SSL

EventBufferEvent::sslRenegotiate

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslRenegotiate — Сообщает буферному событию начать пересмотр SSL

Описание

public EventBufferEvent::sslRenegotiate ( void ) : void

Сообщает буферному событию начать пересмотр SSL.

Внимание

Вызов этой функции пересмотрит SSL и вызовет соответствующие callback-функции буферного события. Это сложная тема; этого, как правило, следует избегать, если только вы действительно знаете, что делаете, тем более что во многих версиях SSL были известны проблемы безопасности, связанные с пересмотром.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Создает новое буферное событие SSL для отправки своих данных через SSL в сокет

  • « EventBufferEvent::sslRenegotiate
  • EventBufferEvent::write »
  • PHP Manual
  • EventBufferEvent
  • Создает новое буферное событие SSL для отправки своих данных через SSL в сокет

EventBufferEvent::sslSocket

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslSocket — Создает новое буферное событие SSL для отправки своих данных через SSL в сокет

Описание

public static EventBufferEvent::sslSocket ( EventBase $base , mixed $socket , EventSslContext $ctx , int $state [, int $options ] ) : EventBufferEvent

Создает новое буферное событие SSL для отправки своих данных через SSL в сокет.

Список параметров

base

Связанная база событий.

socket

Сокет, чтобы использовать для SSL. Может быть ресурсом потока или сокета, числовым дескриптором файла или NULL. Если socket равен NULL, предполагается, что файловый дескриптор для сокета будет назначен позже, например, с помощью метода EventBufferEvent::connectHost().

ctx

Объект класса EventSslContext.

state

Текущее состояние соединения SSL:
EventBufferEvent::SSL_OPEN,
EventBufferEvent::SSL_ACCEPTING
или EventBufferEvent::SSL_CONNECTING.

options

Параметры буферного события.

Возвращаемые значения

Возвращает объект EventBufferEvent.

Смотрите также

  • EventBufferEvent::sslFilter() - Create a new SSL buffer event to send its data over another buffer event


Добавляет данные в буфер вывода буферного события

  • « EventBufferEvent::sslSocket
  • EventBufferEvent::writeBuffer »
  • PHP Manual
  • EventBufferEvent
  • Добавляет данные в буфер вывода буферного события

EventBufferEvent::write

(PECL event >= 1.2.6-beta)

EventBufferEvent::write — Добавляет данные в буфер вывода буферного события

Описание

public EventBufferEvent::write ( string $data ) : bool

Добавляет data в буфер вывода буферного события

Список параметров

data

Данные для добавления в базовый буфер.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Смотрите также

  • EventBufferEvent::writeBuffer() - Добавляет содержимое всего буфера в буфер вывода буферного события


Добавляет содержимое всего буфера в буфер вывода буферного события

  • « EventBufferEvent::write
  • О callback-функциях событийного буфера »
  • PHP Manual
  • EventBufferEvent
  • Добавляет содержимое всего буфера в буфер вывода буферного события

EventBufferEvent::writeBuffer

(PECL event >= 1.2.6-beta)

EventBufferEvent::writeBuffer — Добавляет содержимое всего буфера в буфер вывода буферного события

Описание

public EventBufferEvent::writeBuffer ( EventBuffer $buf ) : bool

Добавляет содержимое всего буфера в буфер вывода буферного события.

Список параметров

buf

Исходный объект EventBuffer.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Смотрите также

  • EventBufferEvent::write() - Добавляет данные в буфер вывода буферного события


О callback-функциях событийного буфера

Объект класса EventBufferEvent представляет событийный буфер. Асинхронная природа ввода/вывода выполняемого Libevent подразумевает, что сокет (или какой другой файловый дескриптор) не всегда доступен. Модуль вызывает соответствующие callback-функции когда ресурс готов к чтению или записи, либо когда произошло какое-либо событие (например, ошибка, или конец файла и т.д.).

Callback-функции чтения и записи должны соответствовать следующему прототипу:

callback ([ EventBufferEvent $bev = NULL [, mixed $arg = NULL ]] ) : void

bev

Связанный объект EventBufferEvent.

arg

Пользовательские данные привязанные ко всем callback-функциям через EventBufferEvent::__construct() или EventBufferEvent::setCallbacks() .

Callback-функции событий должны соответствовать следующему прототипу:

callback ([ EventBufferEvent $bev = NULL [, int $events = 0 [, mixed $arg = NULL ]]] ) : void

bev

Связанный объект EventBufferEvent.

events

Битовая маска событий: EventBufferEvent::READING , EventBufferEvent::WRITING , EventBufferEvent::EOL , EventBufferEvent::ERROR и EventBufferEvent::TIMEOUT . Смотрите Константы EventBufferEvent

arg

Пользовательские данные привязанные ко всем callback-функциям через EventBufferEvent::__construct() или EventBufferEvent::setCallbacks() .


Класс EventConfig

(PECL event >= 1.2.6-beta)

Введение

Представляет структуру, которую можно использовать при создании EventBase .

Обзор классов

final EventConfig {
/* Константы */
const integer FEATURE_ET = 1 ;
const integer FEATURE_O1 = 2 ;
const integer FEATURE_FDS = 4 ;
/* Методы */
public avoidMethod ( string $method ) : bool
public __construct ( void )
public requireFeatures ( int $feature ) : bool
public setMaxDispatchInterval ( int $max_interval , int $max_callbacks , int $min_priority ) : void
}

Предопределенные константы

EventConfig::FEATURE_ET

Требуется метод бекэнда, поддерживающий однократное срабатывание при длительном событии (edge-triggered I/O).

EventConfig::FEATURE_O1

Требуется метод бекэнда, для которого удаление, добавление или переключение события в активный статус имеет сложность O(1).

EventConfig::FEATURE_FDS

Требуется метод бекэнда, поддерживающий обычные файловые дескрипторы, а не только сокеты.

Содержание

  • EventConfig::avoidMethod — Попросить libevent не использовать определенный метод события
  • EventConfig::__construct — Создать объект EventConfig
  • EventConfig::requireFeatures — Ввести требуемые приложением свойства метода события
  • EventConfig::setMaxDispatchInterval — Предотвратить инверсию приоритетов


Попросить libevent не использовать определенный метод события

  • « EventConfig
  • EventConfig::__construct »
  • PHP Manual
  • EventConfig
  • Попросить libevent не использовать определенный метод события

EventConfig::avoidMethod

(PECL event >= 1.2.6-beta)

EventConfig::avoidMethod — Попросить libevent не использовать определенный метод события

Описание

public EventConfig::avoidMethod ( string $method ) : bool

Попросить libevent не использовать определенный метод события (бэкенд). Смотрите » Создание базы события.

Список параметров

method

Метод бэкенда, который нужно игнорировать. Смотрите константы EventConfig .

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения и FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования EventConfig::avoidMethod()

<?php
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "Метод `select' будет игнорироваться\n";
}
?>

Смотрите также

  • EventBase::__construct() - Конструктор объекта EventBase


Создать объект EventConfig

  • « EventConfig::avoidMethod
  • EventConfig::requireFeatures »
  • PHP Manual
  • EventConfig
  • Создать объект EventConfig

EventConfig::__construct

(PECL event >= 1.2.6-beta)

EventConfig::__construct — Создать объект EventConfig

Описание

public EventConfig::__construct ( void )

Создает объект EventConfig, который можно передать в конструктор EventBase::__construct().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект EventConfig.

Примеры

Пример #1 Пример использования EventConfig::__construct()

<?php
// Игнорируем метод "select"
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "Метод `select' будет игнорироваться\n";
}

// Создаем event_base, связанный с этим конфигом
$base = new EventBase($cfg);

/* Теперь $base настроен на игнорирование метода select (бэкенд) */
?>

Смотрите также

  • EventBase::__construct() - Конструктор объекта EventBase


Ввести требуемые приложением свойства метода события

  • « EventConfig::__construct
  • EventConfig::setMaxDispatchInterval »
  • PHP Manual
  • EventConfig
  • Ввести требуемые приложением свойства метода события

EventConfig::requireFeatures

(PECL event >= 1.2.6-beta)

EventConfig::requireFeatures — Ввести требуемые приложением свойства метода события

Описание

public EventConfig::requireFeatures ( int $feature ) : bool

Вводит требуемый приложением функционал метода события

Список параметров

feature

Битовая маска требуемых свойств. Смотрите константы EventConfig::FEATURE_*

Возвращаемые значения

Примеры

Пример #1 Пример использования EventConfig::requireFeatures()

<?php
$cfg = new EventConfig();

// Создаем event_base, связанный с конфигом $cfg
$base = new EventBase($cfg);

// Запрашиваем свойство FDS
if ($cfg->requireFeatures(EventConfig::FEATURE_FDS)) {
    echo "Свойство FDS запрошено\n";

    $base = new EventBase($cfg);
    ($base->getFeatures() & EventConfig::FEATURE_FDS)
        and print("FDS - произвольные типы дескрипторов файлов, а не только сокеты\n");
}
?>

Результатом выполнения данного примера будет что-то подобное:

Свойство FDS запрошено
FDS - произвольные типы дескрипторов файлов, а не только сокеты

Смотрите также

  • EventBase::getFeatures() - Возвращает битовую маску поддерживаемых функций


Предотвратить инверсию приоритетов

  • « EventConfig::requireFeatures
  • EventDnsBase »
  • PHP Manual
  • EventConfig
  • Предотвратить инверсию приоритетов

EventConfig::setMaxDispatchInterval

(Информация о версии неизвестна, возможно, только в Git)

EventConfig::setMaxDispatchInterval — Предотвратить инверсию приоритетов

Описание

public EventConfig::setMaxDispatchInterval ( int $max_interval , int $max_callbacks , int $min_priority ) : void

Предотвратить инверсию приоритетов путем ограничения числа обрабатываемых низкоприоритетных событий перед очередной проверкой на присутствие более приоритетных.

Замечание:

Доступно с libevent 2.1.0-alpha.

Список параметров

max_interval

Интервал, после которого Libevent обязан прекратить запускать callback-функции и проверить наличие новых событий, либо 0, чтобы не использовать такой функционал.

max_callbacks

Количество запущенных callback-функций, после которого Libevent приостановит их запуск и проверит, есть ли новые события. -1, чтобы не использовать такой функционал.

min_priority

Приоритет, ниже которого max_interval и max_callbacks не должны применяться. Если установлено как 0, данные ограничения будут применяться к событиям с любым приоритетом; Если установлено в 1 , ограничения будут применяться к событиям приоритета 1 и выше. И так далее.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения и FALSE в случае возникновения ошибки.


Класс EventDnsBase

(PECL event >= 1.2.6-beta)

Введение

Представляет структуру DNS библиотеки Libevent. Используется для асинхронного разрешения DNS, разбора конфигурационного файла resolv.conf и т.д.

Обзор классов

final EventDnsBase {
/* Константы */
const integer OPTION_SEARCH = 1 ;
const integer OPTION_NAMESERVERS = 2 ;
const integer OPTION_MISC = 4 ;
const integer OPTION_HOSTSFILE = 8 ;
const integer OPTIONS_ALL = 15 ;
/* Методы */
public addNameserverIp ( string $ip ) : bool
public addSearch ( string $domain ) : void
public clearSearch ( void ) : void
public __construct ( EventBase $base , bool $initialize )
public countNameservers ( void ) : int
public loadHosts ( string $hosts ) : bool
public parseResolvConf ( int $flags , string $filename ) : bool
public setOption ( string $option , string $value ) : bool
public setSearchNdots ( int $ndots ) : bool
}

Предопределенные константы

EventDnsBase::OPTION_SEARCH

Указывает читать домен и поисковые поля из файла resolv.conf и опции ndots и использовать их для определения доменов (если есть), в которых будет производиться поиск по короткому имени хоста.

EventDnsBase::OPTION_NAMESERVERS

Указывает использовать сервера имен (nameservers) из файла resolv.conf.

EventDnsBase::OPTION_MISC

EventDnsBase::OPTION_HOSTSFILE

Указывает брать список хостов из файла /etc/hosts при загрузке resolv.conf.

EventDnsBase::OPTIONS_ALL

Указывает использовать все, что только возможно из файла resolv.conf.

Содержание

  • EventDnsBase::addNameserverIp — Добавляет сервер имен в базу DNS
  • EventDnsBase::addSearch — Добавляет домен в список поисковых доменов
  • EventDnsBase::clearSearch — Удаляет все текущие суффиксы поиска
  • EventDnsBase::__construct — Конструктор объекта EventDnsBase
  • EventDnsBase::countNameservers — Получает количество настроенных серверов имен
  • EventDnsBase::loadHosts — Загружает файл hosts (в том же формате, что и /etc/hosts) из файла hosts
  • EventDnsBase::parseResolvConf — Сканирует файл в формате resolv.conf
  • EventDnsBase::setOption — Устанавливает значение параметра конфигурации
  • EventDnsBase::setSearchNdots — Устанавливает параметр 'ndots' для поиска


Добавляет сервер имен в базу DNS

  • « EventDnsBase
  • EventDnsBase::addSearch »
  • PHP Manual
  • EventDnsBase
  • Добавляет сервер имен в базу DNS

EventDnsBase::addNameserverIp

(PECL event >= 1.2.6-beta)

EventDnsBase::addNameserverIp — Добавляет сервер имен в базу DNS

Описание

public EventDnsBase::addNameserverIp ( string $ip ) : bool

Добавляет сервер имен в базу evdns_base.

Список параметров

ip

Строка сервера имен в виде адреса IPv4, адреса IPv6, адреса IPv4 с портом (IPv4:Port) или адреса IPv6 с портом ([IPv6]:Port).

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.


Добавляет домен в список поисковых доменов

  • « EventDnsBase::addNameserverIp
  • EventDnsBase::clearSearch »
  • PHP Manual
  • EventDnsBase
  • Добавляет домен в список поисковых доменов

EventDnsBase::addSearch

(PECL event >= 1.2.6-beta)

EventDnsBase::addSearch — Добавляет домен в список поисковых доменов

Описание

public EventDnsBase::addSearch ( string $domain ) : void

Добавляет домен в список поисковых доменов

Список параметров

domain

Поисковой домен.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Удаляет все текущие суффиксы поиска

  • « EventDnsBase::addSearch
  • EventDnsBase::__construct »
  • PHP Manual
  • EventDnsBase
  • Удаляет все текущие суффиксы поиска

EventDnsBase::clearSearch

(PECL event >= 1.2.6-beta)

EventDnsBase::clearSearch — Удаляет все текущие суффиксы поиска

Описание

public EventDnsBase::clearSearch ( void ) : void

Удаляет все текущие суффиксы поиска из базы DNS; функция EventDnsBase::addSearch() добавляет суффикс.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventDnsBase::addSearch() - Добавляет домен в список поисковых доменов


Конструктор объекта EventDnsBase

  • « EventDnsBase::clearSearch
  • EventDnsBase::countNameservers »
  • PHP Manual
  • EventDnsBase
  • Конструктор объекта EventDnsBase

EventDnsBase::__construct

(PECL event >= 1.2.6-beta)

EventDnsBase::__construct — Конструктор объекта EventDnsBase

Описание

public EventDnsBase::__construct ( EventBase $base , bool $initialize )

Конструктор объекта EventDnsBase.

Список параметров

base

База событий.

initialize

Если аргумент initialize имеет значение TRUE, он пытается разумно настроить базу DNS с учетом параметров операционной системы по умолчанию. В противном случае база DNS-событий остается пустой, без настроенных серверов имен или параметров. В последнем случае база DNS должна быть настроена вручную, например, с помощью EventDnsBase::parseResolvConf().

Возвращаемые значения

Возвращает объект EventDnsBase.


Получает количество настроенных серверов имен

  • « EventDnsBase::__construct
  • EventDnsBase::loadHosts »
  • PHP Manual
  • EventDnsBase
  • Получает количество настроенных серверов имен

EventDnsBase::countNameservers

(PECL event >= 1.2.6-beta)

EventDnsBase::countNameservers — Получает количество настроенных серверов имен

Описание

public EventDnsBase::countNameservers ( void ) : int

Получает количество настроенных серверов имен

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество настроенных серверов имен (не обязательно количество запущенных серверов имен). Это можно использовать для дополнительной проверки того, были ли успешными вызовы различных функций конфигурации сервера имен.


Загружает файл hosts (в том же формате, что и /etc/hosts) из файла hosts

  • « EventDnsBase::countNameservers
  • EventDnsBase::parseResolvConf »
  • PHP Manual
  • EventDnsBase
  • Загружает файл hosts (в том же формате, что и /etc/hosts) из файла hosts

EventDnsBase::loadHosts

(PECL event >= 1.2.6-beta)

EventDnsBase::loadHosts — Загружает файл hosts (в том же формате, что и /etc/hosts) из файла hosts

Описание

public EventDnsBase::loadHosts ( string $hosts ) : bool

Загружает файл hosts (в том же формате, что и /etc/hosts) из файла hosts.

Список параметров

hosts

Путь к файлу хостов.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.


Сканирует файл в формате resolv.conf

  • « EventDnsBase::loadHosts
  • EventDnsBase::setOption »
  • PHP Manual
  • EventDnsBase
  • Сканирует файл в формате resolv.conf

EventDnsBase::parseResolvConf

(PECL event >= 1.2.6-beta)

EventDnsBase::parseResolvConf — Сканирует файл в формате resolv.conf

Описание

public EventDnsBase::parseResolvConf ( int $flags , string $filename ) : bool

Сканирует файл в формате resolv.conf, хранящийся в filename, и считывает все параметры из него, которые перечислены во флагах.

Список параметров

flags

Определяет, какая информация анализируется из файла resolv.conf. Смотрите справочную страницу resolv.conf по формату этого файла.

Следующие директивы не анализируются из файла: sortlist, rotate, no-check-names, inet6, debug.

Если функция обнаруживает ошибку, возможные возвращаемые значения:

  • 1 = не удалось открыть файл
  • 2 = не удалось определить размер файла
  • 3 = файл слишком большой
  • 4 = недостаточно памяти
  • 5 = краткое чтение из файла
  • 6 = в файле нет серверов имен

filename

Путь до resolv.conf файла.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.


Устанавливает значение параметра конфигурации

  • « EventDnsBase::parseResolvConf
  • EventDnsBase::setSearchNdots »
  • PHP Manual
  • EventDnsBase
  • Устанавливает значение параметра конфигурации

EventDnsBase::setOption

(PECL event >= 1.2.6-beta)

EventDnsBase::setOption — Устанавливает значение параметра конфигурации

Описание

public EventDnsBase::setOption ( string $option , string $value ) : bool

Устанавливает значение параметра конфигурации.

Список параметров

option

В настоящее время доступны следующие параметры конфигурации: "ndots", "timeout", "max-timeouts", "max-inflight" и "attempts".

value

Значение параметра.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.


Устанавливает параметр 'ndots' для поиска

  • « EventDnsBase::setOption
  • EventHttp »
  • PHP Manual
  • EventDnsBase
  • Устанавливает параметр 'ndots' для поиска

EventDnsBase::setSearchNdots

(PECL event >= 1.2.6-beta)

EventDnsBase::setSearchNdots — Устанавливает параметр 'ndots' для поиска

Описание

public EventDnsBase::setSearchNdots ( int $ndots ) : bool

Устанавливает параметр 'ndots' для поиска. Устанавливает количество точек, которое при нахождении в имени приводит к тому, что первый запрос не имеет поискового домена.

Список параметров

ndots

Количество точек.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.


Класс EventHttp

(PECL event >= 1.4.0-beta)

Введение

Представляет сервер HTTP.

Обзор классов

final EventHttp {
/* Методы */
public accept ( mixed $socket ) : bool
public addServerAlias ( string $alias ) : bool
public bind ( string $address , int $port ) : void
public __construct ( EventBase $base [, EventSslContext $ctx = NULL ] )
public removeServerAlias ( string $alias ) : bool
public setAllowedMethods ( int $methods ) : void
public setCallback ( string $path , string $cb [, string $arg ] ) : void
public setDefaultCallback ( string $cb [, string $arg ] ) : void
public setMaxBodySize ( int $value ) : void
public setMaxHeadersSize ( int $value ) : void
public setTimeout ( int $value ) : void
}

Содержание

  • EventHttp::accept — Заставляет HTTP-сервер принимать соединения с указанным потоком сокета или ресурсом
  • EventHttp::addServerAlias — Добавляет псевдоним сервера к объекту HTTP-сервера
  • EventHttp::bind — Привязывает HTTP-сервер к указанному адресу и порту
  • EventHttp::__construct — Создает объект EventHttp (HTTP-сервер)
  • EventHttp::removeServerAlias — Удаляет псевдоним сервера
  • EventHttp::setAllowedMethods — Устанавливает, какие методы HTTP поддерживаются в запросах, принятых этим сервером и переданных callback-функции пользователя
  • EventHttp::setCallback — Устанавливает callback-функцию для указанного URI
  • EventHttp::setDefaultCallback — Устанавливает callback-функцию по умолчанию для обработки запросов, которые не перехватываются конкретными callback-функциями
  • EventHttp::setMaxBodySize — Устанавливает максимальный размер тела запроса
  • EventHttp::setMaxHeadersSize — Устанавливает максимальный размер HTTP-заголовка
  • EventHttp::setTimeout — Устанавливает время ожидания для HTTP-запроса


Заставляет HTTP-сервер принимать соединения с указанным потоком сокета или ресурсом

  • « EventHttp
  • EventHttp::addServerAlias »
  • PHP Manual
  • EventHttp
  • Заставляет HTTP-сервер принимать соединения с указанным потоком сокета или ресурсом

EventHttp::accept

(PECL event >= 1.2.6-beta)

EventHttp::accept — Заставляет HTTP-сервер принимать соединения с указанным потоком сокета или ресурсом

Описание

public EventHttp::accept ( mixed $socket ) : bool

Заставляет HTTP-сервер принимать соединения с указанным потоком сокета или ресурсом. Сокет должен быть готов к приему соединений.

Может вызываться несколько раз, чтобы принимать соединения на разных сокетах.

Замечание:

Чтобы связать сокет, прослушать и принять соединения на сокете в одном вызове, используйте EventHttp::bind(). EventHttp::accept() требуется только в том случае, если у одного вызова уже есть сокет, готовый для принятия соединений.

Список параметров

socket

Ресурс сокета, потоковый или числовой дескриптор файла, представляющий сокет, готовый принимать соединения.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Примеры

Пример #1 Пример использования EventHttp::accept()

<?php
$base = new EventBase();
$http = new EventHttp($base);

$addresses = array (
     8091 => "127.0.0.1",
     8092 => "127.0.0.2",
);
$i = 0;

$socket = array();

foreach ($addresses as $port => $ip) {
    echo $ip, " ", $port, PHP_EOL;
    $socket[$i] = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    if (!socket_bind($socket[$i], $ip, $port)) {
        exit("ошибка socket_bind\n");
    }
    socket_listen($socket[$i], 0);
    socket_set_nonblock($socket[$i]);

    if (!$http->accept($socket[$i])) {
        echo "Принять не удалось\n";
        exit(1);
    }

    ++$i;
}

$http->setCallback("/some-page", function() {
 echo "(some-page)\n";
    echo "URI: ", $req->getUri(), PHP_EOL;
    $req->sendReply(200, "OK");
    echo "OK\n";
});

$http->setDefaultCallback(function($req) {
    echo "URI: ", $req->getUri(), PHP_EOL;
    $req->sendReply(200, "OK");
    echo "OK\n";
});

$signal = Event::signal($base, SIGINT, function () use ($base) {
    echo "Пойман SIGINT. Останавливаем...\n";
    $base->stop();
});
$signal->add();

$base->dispatch();
echo "конец\n";
// Мы не закрывали сокеты, так как Libevent
// уже установил флаги CLOSE_ON_FREE и CLOSE_ON_EXEC
// в дескрипторе файла, связанном с сокетами.
?>

Результатом выполнения данного примера будет что-то подобное:

Client:
$ nc 127.0.0.1 8091
GET /about HTTP/1.0
Connection: close

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

Server:
127.0.0.1 8091
127.0.0.2 8092
URI: /about
OK

Смотрите также

  • EventHttp::bind() - Привязывает HTTP-сервер к указанному адресу и порту


Добавляет псевдоним сервера к объекту HTTP-сервера

  • « EventHttp::accept
  • EventHttp::bind »
  • PHP Manual
  • EventHttp
  • Добавляет псевдоним сервера к объекту HTTP-сервера

EventHttp::addServerAlias

(PECL event >= 1.4.0-beta)

EventHttp::addServerAlias — Добавляет псевдоним сервера к объекту HTTP-сервера

Описание

public EventHttp::addServerAlias ( string $alias ) : bool

Добавляет псевдоним сервера к объекту HTTP-сервера.

Список параметров

alias

Псевдоним для добавления.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Примеры

Пример #1 Пример использования EventHttp::addServerAlias()

<?php
$base = new EventBase();
$http = new EventHttp($base);

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!$http->bind("127.0.0.1", 8088)) {
    exit("bind(1) ошибка\n");
};

if (!$http->addServerAlias("local.net")) {
    exit("Не удалось добавить псевдоним сервера\n");
}

$http->setCallback("/about", function($req) {
    echo "URI: ", $req->getUri(), PHP_EOL;
    $req->sendReply(200, "OK");
});
$base->dispatch();
?>

Смотрите также

  • EventHttp::removeServerAlias() - Удаляет псевдоним сервера


Привязывает HTTP-сервер к указанному адресу и порту

  • « EventHttp::addServerAlias
  • EventHttp::__construct »
  • PHP Manual
  • EventHttp
  • Привязывает HTTP-сервер к указанному адресу и порту

EventHttp::bind

(PECL event >= 1.2.6-beta)

EventHttp::bind — Привязывает HTTP-сервер к указанному адресу и порту

Описание

public EventHttp::bind ( string $address , int $port ) : void

Привязывает HTTP-сервер к указанному адресу и порту.

Может вызываться несколько раз для привязки одного и того же HTTP-сервера к нескольким разным портам.

Список параметров

address

Строка, содержащая IP-адрес для прослушивания(2).

port

Номер порта для прослушивания.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Примеры

Пример #1 Пример использования EventHttp::bind()

<?php
$base = new EventBase();
$http = new EventHttp($base);

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!$http->bind("127.0.0.1", 8088)) {
    exit("связать(1) не удалось\n");
};
if (!$http->bind("127.0.0.1", 8089)) {
    exit("связать(2) не удалось\n");
};

$http->setCallback("/about", function($req) {
    echo "URI: ", $req->getUri(), PHP_EOL;
    $req->sendReply(200, "OK");
    echo "OK\n";
});

$base->dispatch();
?>

Результатом выполнения данного примера будет что-то подобное:

Client:

$ nc 127.0.0.1 8088
GET /about HTTP/1.0
Connection: close

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

$ nc 127.0.0.1 8089
GET /unknown HTTP/1.0
Connection: close

HTTP/1.1 404 Not Found
Content-Type: text/html
Date: Wed, 13 Mar 2013 04:14:41 GMT
Content-Length: 149
Connection: close

<html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL /unknown was not found on this server.</p></body></html>

Server:
URI: /about
OK

Смотрите также

  • EventHttp::accept() - Заставляет HTTP-сервер принимать соединения с указанным потоком сокета или ресурсом


Создает объект EventHttp (HTTP-сервер)

  • « EventHttp::bind
  • EventHttp::removeServerAlias »
  • PHP Manual
  • EventHttp
  • Создает объект EventHttp (HTTP-сервер)

EventHttp::__construct

(PECL event >= 1.2.6-beta)

EventHttp::__construct — Создает объект EventHttp (HTTP-сервер)

Описание

public EventHttp::__construct ( EventBase $base [, EventSslContext $ctx = NULL ] )

Создает объект HTTP-сервера.

Список параметров

base

Связанная база событий.

ctx

Объект класса EventSslContext. Превращает простой HTTP-сервер в HTTPS-сервер. Это значит, что если ctx настроен правильно, то основные события буфера будут основаны на сокетах OpenSSL. Таким образом, весь трафик будет проходить через SSL или TLS.

Замечание:

Этот параметр доступен, только если Event скомпилирован с поддержкой OpenSSL и только с Libevent 2.1.0-alpha и выше.

Возвращаемые значения

Возвращает объект EventHttp.

Список изменений

Версия | Описание
1.9.0 | Добавлена поддержка OpenSSL (ctx).

Примеры

Пример #1 Простой HTTP-сервер

<?php
/*
 * Простой HTTP-сервер.
 *
 * Чтобы проверить:
 * 1) Запустите его на выбранном вами порту, например:
 * $ php examples/http.php 8010
 * 2) В другом терминале подключитесь к какому-либо адресу на этом порту
 * и сделайте запрос GET или POST (другие здесь отключены), например:
 * $ nc -t 127.0.0.1 8010
 * POST /about HTTP/1.0
 * Content-Type: text/plain
 * Content-Length: 4
 * Connection: close
 * (press Enter)
 *
 * Будет выведено:
 * a=12
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * $ nc -t 127.0.0.1 8010
 * GET /dump HTTP/1.0
 * Content-Type: text/plain
 * Content-Encoding: UTF-8
 * Connection: close
 * (press Enter)
 *
 * Будет выведено:
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 * (press Enter)
 *
 * $ nc -t 127.0.0.1 8010
 * GET /unknown HTTP/1.0
 * Connection: close
 *
 * Будет выведено:
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * 3) Посмотрите, что сервер выводит в предыдущем окне терминала.
 */

function _http_dump($req, $data) {
    static $counter      = 0;
    static $max_requests = 2;

    if (++$counter >= $max_requests)  {
        echo "Счетчик достиг максимальных запросов $max_requests. Выходим\n";
        exit();
    }

    echo __METHOD__, " called\n";
    echo "запрос:"; var_dump($req);
    echo "данные:"; var_dump($data);

    echo "\n===== DUMP =====\n";
    echo "Команда:", $req->getCommand(), PHP_EOL;
    echo "URI:", $req->getUri(), PHP_EOL;
    echo "Заголовки ввода:"; var_dump($req->getInputHeaders());
    echo "Выходные заголовки:"; var_dump($req->getOutputHeaders());

    echo "\n >> Отправка ответа ...";
    $req->sendReply(200, "OK");
    echo "OK\n";

    echo "\n >> Чтение входного буфера ...\n";
    $buf = $req->getInputBuffer();
    while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
        echo $s, PHP_EOL;
    }
    echo "Нет больше данных в буфере\n";
}

function _http_about($req) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Отправка ответа ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_default($req, $data) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Отправка ответа ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

$port = 8010;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Неверный порт");
}

$base = new EventBase();
$http = new EventHttp($base);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);

$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setDefaultCallback("_http_default", "пользовательские данные");

$http->bind("0.0.0.0", 8010);
$base->loop();
?>

Результатом выполнения данного примера будет что-то подобное:

a=12
HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close
(press Enter)

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close


Удаляет псевдоним сервера

  • « EventHttp::__construct
  • EventHttp::setAllowedMethods »
  • PHP Manual
  • EventHttp
  • Удаляет псевдоним сервера

EventHttp::removeServerAlias

(PECL event >= 1.4.0-beta)

EventHttp::removeServerAlias — Удаляет псевдоним сервера

Описание

public EventHttp::removeServerAlias ( string $alias ) : bool

Удаляет псевдоним сервера, добавленный с помощью EventHttp::addServerAlias()

Список параметров

alias

Псевдоним для удаления.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Смотрите также

  • EventHttp::addServerAlias() - Добавляет псевдоним сервера к объекту HTTP-сервера


Устанавливает, какие методы HTTP поддерживаются в запросах, принятых этим сервером и переданных callback-функции пользователя

  • « EventHttp::removeServerAlias
  • EventHttp::setCallback »
  • PHP Manual
  • EventHttp
  • Устанавливает, какие методы HTTP поддерживаются в запросах, принятых этим сервером и переданных callback-функции пользователя

EventHttp::setAllowedMethods

(PECL event >= 1.4.0-beta)

EventHttp::setAllowedMethods — Устанавливает, какие методы HTTP поддерживаются в запросах, принятых этим сервером и переданных callback-функции пользователя

Описание

public EventHttp::setAllowedMethods ( int $methods ) : void

Устанавливает, какие методы HTTP поддерживаются в запросах, принятых этим сервером и переданных callback-функции пользователя.

Если не поддерживается, выдаст в ответ "405 Method not allowed".

По умолчанию разрешены следующие методы: GET , POST , HEAD , PUT , DELETE . Смотрите константы EventHttpRequest::CMD_*.

Список параметров

methods

Битовая маска констант EventHttpRequest::CMD_* .

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает callback-функцию для указанного URI

  • « EventHttp::setAllowedMethods
  • EventHttp::setDefaultCallback »
  • PHP Manual
  • EventHttp
  • Устанавливает callback-функцию для указанного URI

EventHttp::setCallback

(PECL event >= 1.4.0-beta)

EventHttp::setCallback — Устанавливает callback-функцию для указанного URI

Описание

public EventHttp::setCallback ( string $path , string $cb [, string $arg ] ) : void

Устанавливает callback-функцию для указанного URI.

Список параметров

path

Путь для вызова callback-функции.

cb

Callback-функция callable, которая вызывается по запрошенному path. Должна соответствовать следующему прототипу:

callback ([ EventHttpRequest $req = NULL [, mixed $arg = NULL ]] ) : void

req

Объект EventHttpRequest.

arg

Пользовательские данные.

arg

Пользовательские данные.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Примеры

Пример #1 Пример использования EventHttp::setCallback()

<?php
/*
 * Простой HTTP-сервер.
 *
 * Чтобы проверить:
 * 1) Запустите его на выбранном вами порту, например:
 * $ php examples/http.php 8010
 * 2) В другом терминале подключитесь к какому-либо адресу на этом порту
 * и сделайте запрос GET или POST (другие здесь отключены), например:
 * $ nc -t 127.0.0.1 8010
 * POST /about HTTP/1.0
 * Content-Type: text/plain
 * Content-Length: 4
 * Connection: close
 * (press Enter)
 *
 * Будет выводено
 * a=12
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * 3) Посмотрите, что сервер выводит в предыдущем окне терминала.
 */

function _http_dump($req, $data) {
    static $counter      = 0;
    static $max_requests = 2;

    if (++$counter >= $max_requests)  {
        echo "Счетчик достиг максимальных запросов $max_requests. Выходим\n";
        exit();
    }

    echo __METHOD__, " called\n";
    echo "запрос:"; var_dump($req);
    echo "данные:"; var_dump($data);

    echo "\n===== DUMP =====\n";
    echo "команда:", $req->getCommand(), PHP_EOL;
    echo "URI:", $req->getUri(), PHP_EOL;
    echo "Заголовки ввода:"; var_dump($req->getInputHeaders());
    echo "Выходные заголовки:"; var_dump($req->getOutputHeaders());

    echo "\n >> Отправка ответа ...";
    $req->sendReply(200, "OK");
    echo "OK\n";

    echo "\n >> Чтение входного буфера ...\n";
    $buf = $req->getInputBuffer();
    while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
        echo $s, PHP_EOL;
    }
    echo "Нет больше данных в буфере\n";
}

function _http_about($req) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Отправка ответа ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_default($req, $data) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Отправка ответа ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

$port = 8010;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Неверный порт");
}

$base = new EventBase();
$http = new EventHttp($base);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);

$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setDefaultCallback("_http_default", "пользовательские данные");

$http->bind("0.0.0.0", 8010);
$base->loop();
?>

Результатом выполнения данного примера будет что-то подобное:

a=12
HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

Смотрите также

  • EventHttp::setDefaultCallback() - Устанавливает callback-функцию по умолчанию для обработки запросов, которые не перехватываются конкретными callback-функциями


Устанавливает callback-функцию по умолчанию для обработки запросов, которые не перехватываются конкретными callback-функциями

  • « EventHttp::setCallback
  • EventHttp::setMaxBodySize »
  • PHP Manual
  • EventHttp
  • Устанавливает callback-функцию по умолчанию для обработки запросов, которые не перехватываются конкретными callback-функциями

EventHttp::setDefaultCallback

(PECL event >= 1.4.0-beta)

EventHttp::setDefaultCallback — Устанавливает callback-функцию по умолчанию для обработки запросов, которые не перехватываются конкретными callback-функциями

Описание

public EventHttp::setDefaultCallback ( string $cb [, string $arg ] ) : void

Устанавливает callback-функцию по умолчанию для обработки запросов, которые не перехватываются конкретными callback-функциями

Список параметров

cb

Callback-функция callable. Должна соответствовать следующему прототипу:

callback ([ EventHttpRequest $req = NULL [, mixed $arg = NULL ]] ) : void

req

Объект EventHttpRequest.

arg

Пользовательские данные.

arg

Пользовательские данные, который передаются в callback-функцию.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Примеры

Пример #1 Пример использования EventHttp::setDefaultCallback()

<?php
$base = new EventBase();
$http = new EventHttp($base);

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!$http->bind("127.0.0.1", 8088)) {
    exit("bind(1) failed\n");
};

$http->setDefaultCallback(function($req) {
    echo "URI: ", $req->getUri(), PHP_EOL;
    $req->sendReply(200, "OK");
});

$base->dispatch();
?>

Смотрите также

  • EventHttp::setCallback() - Устанавливает callback-функцию для указанного URI


Устанавливает максимальный размер тела запроса

  • « EventHttp::setDefaultCallback
  • EventHttp::setMaxHeadersSize »
  • PHP Manual
  • EventHttp
  • Устанавливает максимальный размер тела запроса

EventHttp::setMaxBodySize

(PECL event >= 1.4.0-beta)

EventHttp::setMaxBodySize — Устанавливает максимальный размер тела запроса

Описание

public EventHttp::setMaxBodySize ( int $value ) : void

Устанавливает максимальный размер тела запроса.

Список параметров

value

Размер тела в байтах.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttp::setMaxHeadersSize() - Устанавливает максимальный размер HTTP-заголовка


Устанавливает максимальный размер HTTP-заголовка

  • « EventHttp::setMaxBodySize
  • EventHttp::setTimeout »
  • PHP Manual
  • EventHttp
  • Устанавливает максимальный размер HTTP-заголовка

EventHttp::setMaxHeadersSize

(PECL event >= 1.4.0-beta)

EventHttp::setMaxHeadersSize — Устанавливает максимальный размер HTTP-заголовка

Описание

public EventHttp::setMaxHeadersSize ( int $value ) : void

Устанавливает максимальный размер HTTP-заголовка

Список параметров

value

Размер заголовка в байтах.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttp::setMaxHeadersSize()


Устанавливает время ожидания для HTTP-запроса

  • « EventHttp::setMaxHeadersSize
  • EventHttpConnection »
  • PHP Manual
  • EventHttp
  • Устанавливает время ожидания для HTTP-запроса

EventHttp::setTimeout

(PECL event >= 1.4.0-beta)

EventHttp::setTimeout — Устанавливает время ожидания для HTTP-запроса

Описание

public EventHttp::setTimeout ( int $value ) : void

Устанавливает время ожидания для HTTP-запроса

Список параметров

value

Время ожидания в секундах.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс EventHttpConnection

(PECL event >= 1.4.0-beta)

Введение

Представляет HTTP-соединение.

Обзор классов

EventHttpConnection {
/* Методы */
public __construct ( EventBase $base , EventDnsBase $dns_base , string $address , int $port [, EventSslContext $ctx = NULL ] )
public getBase ( void ) : EventBase
public getPeer ( string &$address , int &$port ) : void
public makeRequest ( EventHttpRequest $req , int $type , string $uri ) : bool
public setCloseCallback ( callable $callback [, mixed $data ] ) : void
public setLocalAddress ( string $address ) : void
public setLocalPort ( int $port ) : void
public setMaxBodySize ( string $max_size ) : void
public setMaxHeadersSize ( string $max_size ) : void
public setRetries ( int $retries ) : void
public setTimeout ( int $timeout ) : void
}

Содержание

  • EventHttpConnection::__construct — Конструктор объекта EventHttpConnection
  • EventHttpConnection::getBase — Возвращает базу событий, связанную с соединением
  • EventHttpConnection::getPeer — Получает удаленный адрес и порт, связанный с соединением
  • EventHttpConnection::makeRequest — Делает HTTP-запрос по указанному соединению
  • EventHttpConnection::setCloseCallback — Устанавливает callback-функцию при закрытии соединения
  • EventHttpConnection::setLocalAddress — Устанавливает IP-адрес, с которого происходят HTTP-соединения
  • EventHttpConnection::setLocalPort — Устанавливает локальный порт, с которого производятся соединения
  • EventHttpConnection::setMaxBodySize — Устанавливает максимальный размер тела для подключения
  • EventHttpConnection::setMaxHeadersSize — Устанавливает максимальный размер заголовка
  • EventHttpConnection::setRetries — Устанавливает максимальное количество повторов для соединения
  • EventHttpConnection::setTimeout — Устанавливает время ожидания для соединения


Конструктор объекта EventHttpConnection

  • « EventHttpConnection
  • EventHttpConnection::getBase »
  • PHP Manual
  • EventHttpConnection
  • Конструктор объекта EventHttpConnection

EventHttpConnection::__construct

(PECL event >= 1.2.6-beta)

EventHttpConnection::__construct — Конструктор объекта EventHttpConnection

Описание

public EventHttpConnection::__construct ( EventBase $base , EventDnsBase $dns_base , string $address , int $port [, EventSslContext $ctx = NULL ] )

Конструктор объекта EventHttpConnection.

Список параметров

base

Связанная база событий.

dns_base

Если параметр dns_base равен NULL, разрешение имени хоста будет заблокировано.

address

Адрес для подключения.

port

Порт для подключения.

ctx

Объект класса EventSslContext. Включает OpenSSL.

Замечание:

Этот параметр доступен, только если Event скомпилирован с поддержкой OpenSSL и только с Libevent 2.1.0-alpha и выше.

Возвращаемые значения

Возвращает объект EventHttpConnection.

Список изменений

Версия | Описание
1.9.0 | Добавлена поддержка OpenSSL (ctx).


Возвращает базу событий, связанную с соединением

  • « EventHttpConnection::__construct
  • EventHttpConnection::getPeer »
  • PHP Manual
  • EventHttpConnection
  • Возвращает базу событий, связанную с соединением

EventHttpConnection::getBase

(PECL event >= 1.2.6-beta)

EventHttpConnection::getBase — Возвращает базу событий, связанную с соединением

Описание

public EventHttpConnection::getBase ( void ) : EventBase

Возвращает базу событий, связанную с соединением.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успеха возвращает объект EventBase, связанный с соединением. В противном случае - FALSE.


Получает удаленный адрес и порт, связанный с соединением

  • « EventHttpConnection::getBase
  • EventHttpConnection::makeRequest »
  • PHP Manual
  • EventHttpConnection
  • Получает удаленный адрес и порт, связанный с соединением

EventHttpConnection::getPeer

(PECL event >= 1.2.6-beta)

EventHttpConnection::getPeer — Получает удаленный адрес и порт, связанный с соединением

Описание

public EventHttpConnection::getPeer ( string &$address , int &$port ) : void

Получает удаленный адрес и порт, связанный с соединением

Список параметров

address

Адрес, связанный с соединением.

port

Порт, связанный с соединением.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Делает HTTP-запрос по указанному соединению

  • « EventHttpConnection::getPeer
  • EventHttpConnection::setCloseCallback »
  • PHP Manual
  • EventHttpConnection
  • Делает HTTP-запрос по указанному соединению

EventHttpConnection::makeRequest

(PECL event >= 1.4.0-beta)

EventHttpConnection::makeRequest — Делает HTTP-запрос по указанному соединению

Описание

public EventHttpConnection::makeRequest ( EventHttpRequest $req , int $type , string $uri ) : bool

Делает HTTP-запрос по указанному соединению. type одна из констант EventHttpRequest::CMD_* .

Список параметров

req

Объект подключения, через который отправляется запрос.

type

одна из констант EventHttpRequest::CMD_* .

uri

URI, связанный с запросом.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Примеры

Пример #1 Пример использования EventHttpConnection::makeRequest()

<?php
function _request_handler($req, $base) {
    echo __FUNCTION__, PHP_EOL;

    if (is_null($req)) {
        echo "Время вышло\n";
    } else {
        $response_code = $req->getResponseCode();

        if ($response_code == 0) {
            echo "Соединение разорвано\n";
        } elseif ($response_code != 200) {
            echo "Неожиданный ответ: $response_code\n";
        } else {
            echo "Успешно: $response_code\n";
            $buf = $req->getInputBuffer();
            echo "Тело ответа:\n";
            while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
                echo $s, PHP_EOL;
            }
        }
    }

    $base->exit(NULL);
}

$address = "127.0.0.1";
$port = 80;

$base = new EventBase();
$conn = new EventHttpConnection($base, NULL, $address, $port);
$conn->setTimeout(5);
$req = new EventHttpRequest("_request_handler", $base);

$req->addHeader("Host", $address, EventHttpRequest::OUTPUT_HEADER);
$req->addHeader("Content-Length", "0", EventHttpRequest::OUTPUT_HEADER);
$conn->makeRequest($req, EventHttpRequest::CMD_GET, "/index.cphp");

$base->loop();
?>

Результатом выполнения данного примера будет что-то подобное:

_request_handler
Success: 200
Body:
PHP, date:
2013-03-13T20:27:52+05:00

Смотрите также

  • EventHttpRequest::addHeader() - Добавляет заголовок HTTP к заголовкам запроса


Устанавливает callback-функцию при закрытии соединения

  • « EventHttpConnection::makeRequest
  • EventHttpConnection::setLocalAddress »
  • PHP Manual
  • EventHttpConnection
  • Устанавливает callback-функцию при закрытии соединения

EventHttpConnection::setCloseCallback

(PECL event >= 1.8.0)

EventHttpConnection::setCloseCallback — Устанавливает callback-функцию при закрытии соединения

Описание

public EventHttpConnection::setCloseCallback ( callable $callback [, mixed $data ] ) : void

Устанавливает callback-функцию при закрытии соединения.

Список параметров

callback

Устанавливает callback-функцию при закрытии соединения, которая должна соответствовать прототипу:

callback ([ EventHttpConnection $conn = NULL [, mixed $arg = NULL ]] ) : void

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования EventHttpConnection::setCloseCallback()

<?php
/*
 * Устанавливаем callback-функцию, при закрытии соединения
 *
 * Скрипт обрабатывает закрытые соединения, используя HTTP API.
 *
 * Использование:
 * 1) Запустите сервер:
 * $ php examples/http_closecb.php 4242
 *
 * 2) Запустите клиента в другом терминале. Наподобие Telnet
 * Сессия должна выглядеть следующим образом:
 *
 * $ nc -t 127.0.0.1 4242
 * GET / HTTP/1.0
 * Connection: close
 *
 * Сервер выведет что-то похожее на следующее:
 *
 * HTTP/1.0 200 OK
 * Content-Type: multipart/x-mixed-replace;boundary=boundarydonotcross
 * Connection: close
 *
 * <html>
 *
 * 3) Завершите соединение с клиентом внезапно,
 * то есть завершите процесс, или просто нажмите Ctrl-C
 *
 * 4) Проверьте, вызывается ли _close_callback.
 * Скрипт должен вывести строку "_close_callback" стандартным выводом.
 *
 * 5) Проверьте, не имеет ли процесс сервера потерянных соединений,
 * например с утилитой `lsof`.
 */

function _close_callback($conn)
{
    echo __FUNCTION__, PHP_EOL;
}

function _http_default($req, $dummy)
{
    $conn = $req->getConnection();
    $conn->setCloseCallback('_close_callback', NULL);

    /*
    Включив Event::READ, мы защищаем сервер от незакрытых соединений.
    Это особенность Libevent. Библиотека отключает события Event::READ для текущего соединения
    и сервер не уведомляется о разорванных соединениях.

    Таким образом, каждый раз, когда клиент прерывает соединение, мы получаем потерянное соединение.
    Например, следующее является частью `lsof -p $PID | grep TCP` после того,
    как клиент разорвал соединение:

    57-php     15057 ruslan  6u  unix 0xffff8802fb59c780   0t0  125187 socket
    58:php     15057 ruslan  7u  IPv4             125189   0t0     TCP *:4242 (LISTEN)
    59:php     15057 ruslan  8u  IPv4             124342   0t0     TCP localhost:4242->localhost:37375 (CLOSE_WAIT)

    где $PID - наш ID процесса.

    Следующий блок кода исправляет такие потерянные соединения.
     */
    $bev = $req->getBufferEvent();
    $bev->enable(Event::READ);
    // Мы должны явно это освободить. Смотрите
EventHttpRequest::getConnection()
$bev->free(); // освобождаем

    $req->addHeader(
        'Content-Type',
        'multipart/x-mixed-replace;boundary=boundarydonotcross',
        EventHttpRequest::OUTPUT_HEADER
    );

    $buf = new EventBuffer();
    $buf->add('<html>');

    $req->sendReply(200, "OK");
    $req->sendReplyChunk($buf);
}

$port = 4242;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port");
}

$base = new EventBase();
$http = new EventHttp($base);

$http->setDefaultCallback("_http_default", NULL);
$http->bind("0.0.0.0", $port);
$base->loop();

?>


Устанавливает IP-адрес, с которого происходят HTTP-соединения

  • « EventHttpConnection::setCloseCallback
  • EventHttpConnection::setLocalPort »
  • PHP Manual
  • EventHttpConnection
  • Устанавливает IP-адрес, с которого происходят HTTP-соединения

EventHttpConnection::setLocalAddress

(PECL event >= 1.2.6-beta)

EventHttpConnection::setLocalAddress — Устанавливает IP-адрес, с которого происходят HTTP-соединения

Описание

public EventHttpConnection::setLocalAddress ( string $address ) : void

Устанавливает IP-адрес, с которого происходят HTTP-соединения.

Список параметров

address

IP-адрес, с которого происходят HTTP-соединения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttpConnection::setLocalPort() - Устанавливает локальный порт, с которого производятся соединения


Устанавливает локальный порт, с которого производятся соединения

  • « EventHttpConnection::setLocalAddress
  • EventHttpConnection::setMaxBodySize »
  • PHP Manual
  • EventHttpConnection
  • Устанавливает локальный порт, с которого производятся соединения

EventHttpConnection::setLocalPort

(PECL event >= 1.2.6-beta)

EventHttpConnection::setLocalPort — Устанавливает локальный порт, с которого производятся соединения

Описание

public EventHttpConnection::setLocalPort ( int $port ) : void

Устанавливает локальный порт, с которого производятся соединения.

Список параметров

port

Номер порта.

Возвращаемые значения

Смотрите также

  • EventHttpConnection::setLocalAddress() - Устанавливает IP-адрес, с которого происходят HTTP-соединения


Устанавливает максимальный размер тела для подключения

  • « EventHttpConnection::setLocalPort
  • EventHttpConnection::setMaxHeadersSize »
  • PHP Manual
  • EventHttpConnection
  • Устанавливает максимальный размер тела для подключения

EventHttpConnection::setMaxBodySize

(PECL event >= 1.2.6-beta)

EventHttpConnection::setMaxBodySize — Устанавливает максимальный размер тела для подключения

Описание

public EventHttpConnection::setMaxBodySize ( string $max_size ) : void

Устанавливает максимальный размер тела для подключения.

Список параметров

max_size

Максимальный размер тела в байтах.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttpConnection::setMaxHeadersSize() - Устанавливает максимальный размер заголовка


Устанавливает максимальный размер заголовка

  • « EventHttpConnection::setMaxBodySize
  • EventHttpConnection::setRetries »
  • PHP Manual
  • EventHttpConnection
  • Устанавливает максимальный размер заголовка

EventHttpConnection::setMaxHeadersSize

(PECL event >= 1.2.6-beta)

EventHttpConnection::setMaxHeadersSize — Устанавливает максимальный размер заголовка

Описание

public EventHttpConnection::setMaxHeadersSize ( string $max_size ) : void

Устанавливает максимальный размер заголовка для соединения.

Список параметров

max_size

Максимальный размер заголовка в байтах.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttpConnection::setMaxBodySize() - Устанавливает максимальный размер тела для подключения


Устанавливает максимальное количество повторов для соединения

  • « EventHttpConnection::setMaxHeadersSize
  • EventHttpConnection::setTimeout »
  • PHP Manual
  • EventHttpConnection
  • Устанавливает максимальное количество повторов для соединения

EventHttpConnection::setRetries

(PECL event >= 1.2.6-beta)

EventHttpConnection::setRetries — Устанавливает максимальное количество повторов для соединения

Описание

public EventHttpConnection::setRetries ( int $retries ) : void

Устанавливает максимальное количество повторов для соединения

Список параметров

retries

Количество повторов. -1 означает бесконечное количество.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает время ожидания для соединения

  • « EventHttpConnection::setRetries
  • EventHttpRequest »
  • PHP Manual
  • EventHttpConnection
  • Устанавливает время ожидания для соединения

EventHttpConnection::setTimeout

(PECL event >= 1.2.6-beta)

EventHttpConnection::setTimeout — Устанавливает время ожидания для соединения

Описание

public EventHttpConnection::setTimeout ( int $timeout ) : void

Устанавливает время ожидания для соединения

Список параметров

timeout

Время ожидания в секундах

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс EventHttpRequest

(PECL event >= 1.4.0-beta)

Введение

Представляет HTTP-запрос.

Обзор классов

EventHttpRequest {
/* Константы */
const integer CMD_GET = 1 ;
const integer CMD_POST = 2 ;
const integer CMD_HEAD = 4 ;
const integer CMD_PUT = 8 ;
const integer CMD_DELETE = 16 ;
const integer CMD_OPTIONS = 32 ;
const integer CMD_TRACE = 64 ;
const integer CMD_CONNECT = 128 ;
const integer CMD_PATCH = 256 ;
const integer INPUT_HEADER = 1 ;
const integer OUTPUT_HEADER = 2 ;
/* Методы */
public addHeader ( string $key , string $value , int $type ) : bool
public cancel ( void ) : void
public clearHeaders ( void ) : void
public closeConnection ( void ) : void
public __construct ( callable $callback [, mixed $data = NULL ] )
public findHeader ( string $key , string $type ) : void
public free ( void ) : void
public closeConnection ( void ) : EventBufferEvent
public getCommand ( void ) : void
public closeConnection ( void ) : EventHttpConnection
public getHost ( void ) : string
public getInputBuffer ( void ) : EventBuffer
public getInputHeaders ( void ) : array
public getOutputBuffer ( void ) : EventBuffer
public getOutputHeaders ( void ) : void
public getResponseCode ( void ) : int
public getUri ( void ) : string
public removeHeader ( string $key , string $type ) : void
public sendError ( int $error [, string $reason = NULL ] ) : void
public sendReply ( int $code , string $reason [, EventBuffer $buf ] ) : void
public sendReplyChunk ( EventBuffer $buf ) : void
public sendReplyEnd ( void ) : void
public sendReplyStart ( int $code , string $reason ) : void
}

Предопределенные константы

EventHttpRequest::CMD_GET

Метод GET (команда)

EventHttpRequest::CMD_POST

Метод POST (команда)

EventHttpRequest::CMD_HEAD

Метод HEAD (команда)

EventHttpRequest::CMD_PUT

Метод PUT (команда)

EventHttpRequest::CMD_DELETE

Метод DELETE (команда)

EventHttpRequest::CMD_OPTIONS

Метод OPTIONS (команда)

EventHttpRequest::CMD_TRACE

Метод TRACE (команда)

EventHttpRequest::CMD_CONNECT

Метод CONNECT (команда)

EventHttpRequest::CMD_PATCH

Метод PATCH (команда)

EventHttpRequest::INPUT_HEADER

Тип входящего заголовка запроса.

EventHttpRequest::OUTPUT_HEADER

Тип исходящего заголовка запроса.

Содержание

  • EventHttpRequest::addHeader — Добавляет заголовок HTTP к заголовкам запроса
  • EventHttpRequest::cancel — Отменяет ожидающий HTTP-запрос
  • EventHttpRequest::clearHeaders — Удаляет все выходные заголовки из списка заголовков запроса
  • EventHttpRequest::closeConnection — Закрывает связанное HTTP-соединение
  • EventHttpRequest::__construct — Конструктор объекта EventHttpRequest
  • EventHttpRequest::findHeader — Получает значение заголовка
  • EventHttpRequest::free — Освобождает объект и удаляет связанные события
  • EventHttpRequest::getBufferEvent — Возвращает объект EventBufferEvent
  • EventHttpRequest::getCommand — Возвращает команду запроса (метод)
  • EventHttpRequest::getConnection — Возвращает объект EventHttpConnection
  • EventHttpRequest::getHost — Возвращает хост запроса
  • EventHttpRequest::getInputBuffer — Возвращает входной буфер
  • EventHttpRequest::getInputHeaders — Возвращает ассоциативный массив входных заголовков
  • EventHttpRequest::getOutputBuffer — Возвращает выходной буфер запроса
  • EventHttpRequest::getOutputHeaders — Возвращает ассоциативный массив выходных заголовков
  • EventHttpRequest::getResponseCode — Возвращает код ответа
  • EventHttpRequest::getUri — Возвращает URI запроса
  • EventHttpRequest::removeHeader — Удаляет заголовок HTTP из заголовков запроса
  • EventHttpRequest::sendError — Отправляет HTML-сообщение об ошибке клиенту
  • EventHttpRequest::sendReply — Отправляет HTML-ответ клиенту
  • EventHttpRequest::sendReplyChunk — Отправляет блок данных, как часть текущего фрагментированного ответа
  • EventHttpRequest::sendReplyEnd — Заполняет фрагментарный ответ, освобождая запрос соответствующим образом
  • EventHttpRequest::sendReplyStart — Инициирует фрагментарный ответ


Добавляет заголовок HTTP к заголовкам запроса

  • « EventHttpRequest
  • EventHttpRequest::cancel »
  • PHP Manual
  • EventHttpRequest
  • Добавляет заголовок HTTP к заголовкам запроса

EventHttpRequest::addHeader

(PECL event >= 1.4.0-beta)

EventHttpRequest::addHeader — Добавляет заголовок HTTP к заголовкам запроса

Описание

public EventHttpRequest::addHeader ( string $key , string $value , int $type ) : bool

Добавляет заголовок HTTP к заголовкам запроса.

Список параметров

key

Наименование заголовка.

value

Значение заголовка.

type

Одна из констант EventHttpRequest::*_HEADER .

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Смотрите также

  • EventHttpRequest::removeHeader() - Удаляет заголовок HTTP из заголовков запроса


Отменяет ожидающий HTTP-запрос

  • « EventHttpRequest::addHeader
  • EventHttpRequest::clearHeaders »
  • PHP Manual
  • EventHttpRequest
  • Отменяет ожидающий HTTP-запрос

EventHttpRequest::cancel

(PECL event >= 1.4.0-beta)

EventHttpRequest::cancel — Отменяет ожидающий HTTP-запрос

Описание

public EventHttpRequest::cancel ( void ) : void

Отменяет ожидающий HTTP-запрос.

Отменяет текущий HTTP-запрос. Callback-функция, связанная с этим запросом, не выполнится, объект запроса освобождается. Если запрос в настоящее время обрабатывается, например, непрерывный запрос, соответствующий объект EventHttpConnection будет сброшен.

Запрос не может быть отменен, если его callback-функция уже выполнена. Запрос может быть аннулирован повторно из его фрагментированной callback-функции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Удаляет все выходные заголовки из списка заголовков запроса

  • « EventHttpRequest::cancel
  • EventHttpRequest::closeConnection »
  • PHP Manual
  • EventHttpRequest
  • Удаляет все выходные заголовки из списка заголовков запроса

EventHttpRequest::clearHeaders

(PECL event >= 1.4.0-beta)

EventHttpRequest::clearHeaders — Удаляет все выходные заголовки из списка заголовков запроса

Описание

public EventHttpRequest::clearHeaders ( void ) : void

Удаляет все выходные заголовки из списка заголовков запроса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttpRequest::addHeader() - Добавляет заголовок HTTP к заголовкам запроса


Закрывает связанное HTTP-соединение

  • « EventHttpRequest::clearHeaders
  • EventHttpRequest::__construct »
  • PHP Manual
  • EventHttpRequest
  • Закрывает связанное HTTP-соединение

EventHttpRequest::closeConnection

(PECL event >= 1.8.0)

EventHttpRequest::closeConnection — Закрывает связанное HTTP-соединение

Описание

public EventHttpRequest::closeConnection ( void ) : void

Закрывает связанное HTTP-соединение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Конструктор объекта EventHttpRequest

  • « EventHttpRequest::closeConnection
  • EventHttpRequest::findHeader »
  • PHP Manual
  • EventHttpRequest
  • Конструктор объекта EventHttpRequest

EventHttpRequest::__construct

(PECL event >= 1.4.0-beta)

EventHttpRequest::__construct — Конструктор объекта EventHttpRequest

Описание

public EventHttpRequest::__construct ( callable $callback [, mixed $data = NULL ] )

Конструктор объекта EventHttpRequest.

Список параметров

callback

Вызывается при запросе пути. Должен соответствовать следующему прототипу:

callback ([ EventHttpRequest $req = NULL [, mixed $arg = NULL ]] ) : void
data

Пользовательские данные, которые передаются в callback-функцию.

Возвращаемые значения

Возвращает объект EventHttpRequest.

Примеры

Пример #1 Пример EventHttpRequest::__construct()

<?php

function _request_handler($req, $base) {
    echo __FUNCTION__, PHP_EOL;

    if (is_null($req)) {
        echo "Время вышло\n";
    } else {
        $response_code = $req->getResponseCode();

        if ($response_code == 0) {
            echo "Соединение разорвано\n";
        } elseif ($response_code != 200) {
            echo "Неожиданный ответ: $response_code\n";
        } else {
            echo "Успешно: $response_code\n";
            $buf = $req->getInputBuffer();
            echo "Тело ответа:\n";
            while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
                echo $s, PHP_EOL;
            }
        }
    }

    $base->exit(NULL);
}

$address = "127.0.0.1";
$port = 80;

$base = new EventBase();
$conn = new EventHttpConnection($base, NULL, $address, $port);
$conn->setTimeout(5);
$req = new EventHttpRequest("_request_handler", $base);

$req->addHeader("Host", $address, EventHttpRequest::OUTPUT_HEADER);
$req->addHeader("Content-Length", "0", EventHttpRequest::OUTPUT_HEADER);
$conn->makeRequest($req, EventHttpRequest::CMD_GET, "/index.cphp");

$base->loop();
?>

Смотрите также

  • EventHttpRequest::cancel() - Отменяет ожидающий HTTP-запрос
  • EventHttpRequest::addHeader() - Добавляет заголовок HTTP к заголовкам запроса


Получает значение заголовка

  • « EventHttpRequest::__construct
  • EventHttpRequest::free »
  • PHP Manual
  • EventHttpRequest
  • Получает значение заголовка

EventHttpRequest::findHeader

(PECL event >= 1.4.0-beta)

EventHttpRequest::findHeader — Получает значение заголовка

Описание

public EventHttpRequest::findHeader ( string $key , string $type ) : void

Получает значение заголовка

Список параметров

key

Наименование заголовка.

type

Одна из констант EventHttpRequest::*_HEADER .

Возвращаемые значения

Возвращает NULL, если заголовок не найден.

Смотрите также

  • EventHttpRequest::addHeader() - Добавляет заголовок HTTP к заголовкам запроса


Освобождает объект и удаляет связанные события

  • « EventHttpRequest::findHeader
  • EventHttpRequest::getBufferEvent »
  • PHP Manual
  • EventHttpRequest
  • Освобождает объект и удаляет связанные события

EventHttpRequest::free

(PECL event >= 1.4.0-beta)

EventHttpRequest::free — Освобождает объект и удаляет связанные события

Описание

public EventHttpRequest::free ( void ) : void

Освобождает объект и удаляет связанные события.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает объект EventBufferEvent

  • « EventHttpRequest::free
  • EventHttpRequest::getCommand »
  • PHP Manual
  • EventHttpRequest
  • Возвращает объект EventBufferEvent

EventHttpRequest::getBufferEvent

(PECL event >= 1.8.0)

EventHttpRequest::getBufferEvent — Возвращает объект EventBufferEvent

Описание

public EventHttpRequest::closeConnection ( void ) : EventBufferEvent

Возвращает объект EventBufferEvent, представляющий буферное событие, которое использует соединение.

Внимание

Счетчик ссылок возвращаемого объекта будет увеличен на единицу для защиты внутренних структур от преждевременного разрушения при вызове метода из callback-функции пользователя. Таким образом, объект EventBufferEvent должен быть явно освобожден с помощью метода EventBufferEvent::free(). В противном случае будет утечка памяти.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект EventBufferEvent.

Смотрите также

  • EventHttpRequest::getConnection() - Возвращает объект EventHttpConnection


Возвращает команду запроса (метод)

  • « EventHttpRequest::getBufferEvent
  • EventHttpRequest::getConnection »
  • PHP Manual
  • EventHttpRequest
  • Возвращает команду запроса (метод)

EventHttpRequest::getCommand

(PECL event >= 1.4.0-beta)

EventHttpRequest::getCommand — Возвращает команду запроса (метод)

Описание

public EventHttpRequest::getCommand ( void ) : void

Возвращает команду запроса, одну из констант EventHttpRequest::CMD_* .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает команду запроса, одну из констант EventHttpRequest::CMD_* .


Возвращает объект EventHttpConnection

  • « EventHttpRequest::getCommand
  • EventHttpRequest::getHost »
  • PHP Manual
  • EventHttpRequest
  • Возвращает объект EventHttpConnection

EventHttpRequest::getConnection

(PECL event >= 1.8.0)

EventHttpRequest::getConnection — Возвращает объект EventHttpConnection

Описание

public EventHttpRequest::closeConnection ( void ) : EventHttpConnection

Возвращает объект EventHttpConnection, представляющий HTTP-соединение, связанное с запросом.

Внимание

Libevent API позволяет объектам HTTP-запроса не привязываться ни к какому HTTP-соединению. Поэтому мы не можем однозначно связать EventHttpRequest с EventHttpConnection. Таким образом, мы создаем объект EventHttpConnection на лету. Не имея информации о базе событий, базе DNS и callback-функциях при закрытии соединения, мы просто оставляем эти поля незаполненными.

Метод EventHttpRequest::getConnection() обычно полезен, когда нам нужно реализовать callback-функцию, при закрытии соединения. Смотрите EventHttpConnection::setCloseCallback().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект EventHttpConnection.

Смотрите также

  • EventHttpConnection::setCloseCallback() - Устанавливает callback-функцию при закрытии соединения
  • EventHttpRequest::getBufferEvent() - Возвращает объект EventBufferEvent


Возвращает хост запроса

  • « EventHttpRequest::getConnection
  • EventHttpRequest::getInputBuffer »
  • PHP Manual
  • EventHttpRequest
  • Возвращает хост запроса

EventHttpRequest::getHost

(PECL event >= 1.4.0-beta)

EventHttpRequest::getHost — Возвращает хост запроса

Описание

public EventHttpRequest::getHost ( void ) : string

Возвращает хост запроса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает хост запроса.

Смотрите также

  • EventHttpRequest::getUri() - Возвращает URI запроса
  • EventHttpRequest::getCommand() - Возвращает команду запроса (метод)


Возвращает входной буфер

  • « EventHttpRequest::getHost
  • EventHttpRequest::getInputHeaders »
  • PHP Manual
  • EventHttpRequest
  • Возвращает входной буфер

EventHttpRequest::getInputBuffer

(PECL event >= 1.4.0-beta)

EventHttpRequest::getInputBuffer — Возвращает входной буфер

Описание

public EventHttpRequest::getInputBuffer ( void ) : EventBuffer

Возвращает входной буфер.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает входной буфер.

Смотрите также

  • EventHttpRequest::getOutputBuffer() - Возвращает выходной буфер запроса


Возвращает ассоциативный массив входных заголовков

  • « EventHttpRequest::getInputBuffer
  • EventHttpRequest::getOutputBuffer »
  • PHP Manual
  • EventHttpRequest
  • Возвращает ассоциативный массив входных заголовков

EventHttpRequest::getInputHeaders

(PECL event >= 1.4.0-beta)

EventHttpRequest::getInputHeaders — Возвращает ассоциативный массив входных заголовков

Описание

public EventHttpRequest::getInputHeaders ( void ) : array

Возвращает ассоциативный массив входных заголовков.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив входных заголовков.

Смотрите также

  • EventHttpRequest::getOutputHeaders() - Возвращает ассоциативный массив выходных заголовков


Возвращает выходной буфер запроса

  • « EventHttpRequest::getInputHeaders
  • EventHttpRequest::getOutputHeaders »
  • PHP Manual
  • EventHttpRequest
  • Возвращает выходной буфер запроса

EventHttpRequest::getOutputBuffer

(PECL event >= 1.4.0-beta)

EventHttpRequest::getOutputBuffer — Возвращает выходной буфер запроса

Описание

public EventHttpRequest::getOutputBuffer ( void ) : EventBuffer

Возвращает выходной буфер запроса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает выходной буфер запроса.

Смотрите также

  • EventHttpRequest::getInputBuffer() - Возвращает входной буфер


Возвращает ассоциативный массив выходных заголовков

  • « EventHttpRequest::getOutputBuffer
  • EventHttpRequest::getResponseCode »
  • PHP Manual
  • EventHttpRequest
  • Возвращает ассоциативный массив выходных заголовков

EventHttpRequest::getOutputHeaders

(PECL event >= 1.4.0-beta)

EventHttpRequest::getOutputHeaders — Возвращает ассоциативный массив выходных заголовков

Описание

public EventHttpRequest::getOutputHeaders ( void ) : void

Возвращает ассоциативный массив выходных заголовков.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • EventHttpRequest::getInputHeaders() - Возвращает ассоциативный массив входных заголовков


Возвращает код ответа

  • « EventHttpRequest::getOutputHeaders
  • EventHttpRequest::getUri »
  • PHP Manual
  • EventHttpRequest
  • Возвращает код ответа

EventHttpRequest::getResponseCode

(PECL event >= 1.4.0-beta)

EventHttpRequest::getResponseCode — Возвращает код ответа

Описание

public EventHttpRequest::getResponseCode ( void ) : int

Возвращает код ответа.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код ответа запроса.

Смотрите также

  • EventHttpRequest::getCommand() - Возвращает команду запроса (метод)
  • EventHttpRequest::getHost() - Возвращает хост запроса
  • EventHttpRequest::getUri() - Возвращает URI запроса


Возвращает URI запроса

  • « EventHttpRequest::getResponseCode
  • EventHttpRequest::removeHeader »
  • PHP Manual
  • EventHttpRequest
  • Возвращает URI запроса

EventHttpRequest::getUri

(PECL event >= 1.4.0-beta)

EventHttpRequest::getUri — Возвращает URI запроса

Описание

public EventHttpRequest::getUri ( void ) : string

Возвращает URI запроса

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает URI запроса

Смотрите также

  • EventHttpRequest::getCommand() - Возвращает команду запроса (метод)
  • EventHttpRequest::getHost() - Возвращает хост запроса
  • EventHttpRequest::getResponseCode() - Возвращает код ответа


Удаляет заголовок HTTP из заголовков запроса

  • « EventHttpRequest::getUri
  • EventHttpRequest::sendError »
  • PHP Manual
  • EventHttpRequest
  • Удаляет заголовок HTTP из заголовков запроса

EventHttpRequest::removeHeader

(PECL event >= 1.4.0-beta)

EventHttpRequest::removeHeader — Удаляет заголовок HTTP из заголовков запроса

Описание

public EventHttpRequest::removeHeader ( string $key , string $type ) : void

Удаляет заголовок HTTP из заголовков запроса.

Список параметров

key

Наименование заголовка.

type

type одна из констант EventHttpRequest::*_HEADER .

Возвращаемые значения

Удаляет заголовок HTTP из заголовков запроса.

Смотрите также

  • EventHttpRequest::addHeader() - Добавляет заголовок HTTP к заголовкам запроса


Отправляет HTML-сообщение об ошибке клиенту

  • « EventHttpRequest::removeHeader
  • EventHttpRequest::sendReply »
  • PHP Manual
  • EventHttpRequest
  • Отправляет HTML-сообщение об ошибке клиенту

EventHttpRequest::sendError

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendError — Отправляет HTML-сообщение об ошибке клиенту

Описание

public EventHttpRequest::sendError ( int $error [, string $reason = NULL ] ) : void

Отправляет HTML-сообщение об ошибке клиенту.

Список параметров

error

HTTP-код ошибки.

reason

Краткое описание ошибки. Если NULL, будет использоваться стандартное значение кода ошибки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования EventHttpRequest::sendError()

<?php
function _http_400($req) {
    $req->sendError(400);
}

$base = new EventBase();
$http = new EventHttp($base);

$http->setCallback("/err400", "_http_400");

$http->bind("0.0.0.0", 8010);
$base->loop();
?>

Смотрите также

  • EventHttpRequest::sendReply() - Отправляет HTML-ответ клиенту


Отправляет HTML-ответ клиенту

  • « EventHttpRequest::sendError
  • EventHttpRequest::sendReplyChunk »
  • PHP Manual
  • EventHttpRequest
  • Отправляет HTML-ответ клиенту

EventHttpRequest::sendReply

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReply — Отправляет HTML-ответ клиенту

Описание

public EventHttpRequest::sendReply ( int $code , string $reason [, EventBuffer $buf ] ) : void

Отправляет HTML0ответ клиенту. Тело ответа состоит из данных в необязательном параметре buf.

Список параметров

code

Код ответа HTTP для отправки.

reason

Краткое сообщение для отправки с кодом ответа.

buf

Тело ответа.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttpRequest::sendError() - Отправляет HTML-сообщение об ошибке клиенту
  • EventHttpRequest::sendReplyChunk() - Отправляет блок данных, как часть текущего фрагментированного ответа


Отправляет блок данных, как часть текущего фрагментированного ответа

  • « EventHttpRequest::sendReply
  • EventHttpRequest::sendReplyEnd »
  • PHP Manual
  • EventHttpRequest
  • Отправляет блок данных, как часть текущего фрагментированного ответа

EventHttpRequest::sendReplyChunk

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReplyChunk — Отправляет блок данных, как часть текущего фрагментированного ответа

Описание

public EventHttpRequest::sendReplyChunk ( EventBuffer $buf ) : void

Отправляет блок данных, как часть текущего фрагментированного ответа. После вызова этого метода, параметр buf будет пустым.

Список параметров

buf

Фрагмент данных для отправки, как часть ответа.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttpRequest::sendReplyStart() - Инициирует фрагментарный ответ
  • EventHttpRequest::sendReplyEnd() - Заполняет фрагментарный ответ, освобождая запрос соответствующим образом


Заполняет фрагментарный ответ, освобождая запрос соответствующим образом

  • « EventHttpRequest::sendReplyChunk
  • EventHttpRequest::sendReplyStart »
  • PHP Manual
  • EventHttpRequest
  • Заполняет фрагментарный ответ, освобождая запрос соответствующим образом

EventHttpRequest::sendReplyEnd

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReplyEnd — Заполняет фрагментарный ответ, освобождая запрос соответствующим образом

Описание

public EventHttpRequest::sendReplyEnd ( void ) : void

Заполняет фрагментарный ответ, освобождая запрос соответствующим образом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttpRequest::sendReplyStart() - Инициирует фрагментарный ответ
  • EventHttpRequest::sendReplyChunk() - Отправляет блок данных, как часть текущего фрагментированного ответа


Инициирует фрагментарный ответ

  • « EventHttpRequest::sendReplyEnd
  • EventListener »
  • PHP Manual
  • EventHttpRequest
  • Инициирует фрагментарный ответ

EventHttpRequest::sendReplyStart

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReplyStart — Инициирует фрагментарный ответ

Описание

public EventHttpRequest::sendReplyStart ( int $code , string $reason ) : void

Инициирует ответ, который использует Transfer-Encoding chunked.

Это позволяет вызывающей стороне передавать ответ обратно клиенту. Это будет полезно, когда-либо не все данные ответа доступны сразу, либо при отправке очень больших ответов.

Вызывающая сторона должна предоставить фрагменты данных с помощью EventHttpRequest::sendReplyChunk() и завершить ответ, вызвав EventHttpRequest::sendReplyEnd().

Список параметров

code

Код ответа HTTP для отправки.

reason

Краткое сообщение для отправки с кодом ответа.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttpRequest::sendReplyChunk() - Отправляет блок данных, как часть текущего фрагментированного ответа
  • EventHttpRequest::sendReplyEnd() - Заполняет фрагментарный ответ, освобождая запрос соответствующим образом


Класс EventListener

(PECL event >= 1.5.0)

Введение

Представляет слушатель соединения.

Обзор классов

final EventListener {
/* Константы */
const integer OPT_LEAVE_SOCKETS_BLOCKING = 1 ;
const integer OPT_CLOSE_ON_FREE = 2 ;
const integer OPT_CLOSE_ON_EXEC = 4 ;
const integer OPT_REUSEABLE = 8 ;
const integer OPT_THREADSAFE = 16 ;
/* Свойства */
public readonly int $fd ;
/* Методы */
public __construct ( EventBase $base , callable $cb , mixed $data , int $flags , int $backlog , mixed $target )
public disable ( void ) : bool
public enable ( void ) : bool
public getBase ( void ) : void
public static getSocketName ( string &$address [, mixed &$port ] ) : bool
public setCallback ( callable $cb [, mixed $arg = NULL ] ) : void
public setErrorCallback ( string $cb ) : void
}

Свойства

fd

Числовой файловый дескриптор для нижележащего сокета. (Добавлено в event-1.6.0 .)

Предопределенные константы

EventListener::OPT_LEAVE_SOCKETS_BLOCKING

по умолчанию, Libevent переключает нижележащий файловый дескриптор или сокет в неблокирующий режим. Этот флаг сообщает Libevent, что следует оставить их в блокирующем режиме.

EventListener::OPT_CLOSE_ON_FREE

Если этот флаг установлен, слушатель соединения закроет сокет когда объект EventListener будет уничтожен.

EventListener::OPT_CLOSE_ON_EXEC

Если этот флаг установлен, слушатель соединения установит флаг close-on-exec на сокет. Смотрите документацию по fcntl и FD_CLOEXEC для вашей платформы.

EventListener::OPT_REUSEABLE

На некоторых платформах, по умолчанию, после закрытия сокета, другие сокеты не смогут привязаться к тому же порту, пока не пройдет некоторое время. Данный флаг говорит Libevent помечать сокет как переиспользуемый, что позволит открывать другие сокеты на том же порту после его закрытия.

EventListener::OPT_THREADSAFE

Выделяет блокировки для слушателя, что позволяет безопасно использовать его в многопоточном варианте.

Содержание

  • EventListener::__construct — Создать новый слушатель соединения, связанный с событийной базой
  • EventListener::disable — Отключает событие подключения к объекту слушателя
  • EventListener::enable — Включает событие подключения к объекту слушателя
  • EventListener::getBase — Возвращает базу событий, связанную со слушателем событий
  • EventListener::getSocketName — Получает текущий адрес, к которому привязан сокет слушателя
  • EventListener::setCallback — Цель setCallback
  • EventListener::setErrorCallback — Устанавливает callback-функцию ошибки слушателя событий


Создать новый слушатель соединения, связанный с событийной базой

  • « EventListener
  • EventListener::disable »
  • PHP Manual
  • EventListener
  • Создать новый слушатель соединения, связанный с событийной базой

EventListener::__construct

(PECL event >= 1.2.6-beta)

EventListener::__construct — Создать новый слушатель соединения, связанный с событийной базой

Описание

public EventListener::__construct ( EventBase $base , callable $cb , mixed $data , int $flags , int $backlog , mixed $target )

Создает новый слушатель соединения, связанный с событийной базой.

Список параметров

base

Событийная база.

cb

Callback-функция (callable), которая будет вызвана при получении соединения.

data

Пользовательские данные, которые будут передаваться в cb .

flags

Битовая маска из констант EventListener::OPT_*. Смотрите константы EventListener .

backlog

Устанавливает максимальное количество ожидающих соединений, которым, сетевым стеком, позволено ожидать в состоянии еще-не-принято. Более подробно смотрите в документации по системной функции listen. Если значение backlog отрицательно, Libevent попытается самостоятельно выбрать наилучшее значение для backlog. Если равно нулю, Event будет считать, что listen уже вызвана на сокете( target )

target

Может быть строкой, ресурсом сокета или потоком, связанным с сокетом. Если target является строкой, то она будет разбираться как сетевой адрес. Она будет интерпретироваться как путь сокета домена UNIX, если будет иметь префикс 'unix:' , например, 'unix:/tmp/my.sock' .

Возвращаемые значения

Возвращает объект EventListener, представляющий слушатель события соединения.

Список изменений

Версия | Описание
1.5.0 | Добавлена поддержка сокетов домена UNIX.

Примеры

Пример #1 Пример использования EventListener::__construct()

<?php
/*
 * Простой сервер на основе прослушивателя соединений libevent.
 *
 * Использование:
 * 1) В одном окне терминала запустите:
 *
 * $ php listener.php 9881
 *
 * 2) В другом окне терминала откройте соединение, например:
 *
 * $ nc 127.0.0.1 9881
 *
 * 3) начните печатать. Сервер должен повторить ввод.
 */

class MyListenerConnection {
    private $bev, $base;

    public function __destruct() {
        $this->bev->free();
    }

    public function __construct($base, $fd) {
        $this->base = $base;

        $this->bev = new EventBufferEvent($base, $fd, EventBufferEvent::OPT_CLOSE_ON_FREE);

        $this->bev->setCallbacks(array($this, "echoReadCallback"), NULL,
            array($this, "echoEventCallback"), NULL);

        if (!$this->bev->enable(Event::READ)) {
            echo "Не удалось включить READ\n";
            return;
        }
    }

    public function echoReadCallback($bev, $ctx) {
        // Скопируйте все данные из входного буфера в выходной буфер

        // Вариант #1
        $bev->output->addBuffer($bev->input);

        /* Вариант #2 */
        /*
        $input    = $bev->getInput();
        $output = $bev->getOutput();
        $output->addBuffer($input);
        */
    }

    public function echoEventCallback($bev, $events, $ctx) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Ошибка bufferevent\n";
        }

        if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
            //$bev->free();
            $this->__destruct();
        }
    }
}

class MyListener {
    public $base,
        $listener,
        $socket;
    private $conn = array();

    public function __destruct() {
        foreach ($this->conn as &$c) $c = NULL;
    }

    public function __construct($port) {
        $this->base = new EventBase();
        if (!$this->base) {
            echo "Не удалось открыть событийную базу";
            exit(1);
        }

        // Вариант #1
        /*
        $this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
        if (!socket_bind($this->socket, '0.0.0.0', $port)) {
            echo "Невозможно связать сокет\n";
            exit(1);
        }
        $this->listener = new EventListener($this->base,
            array($this, "acceptConnCallback"), $this->base,
            EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
            -1, $this->socket);
         */

        // Вариант #2
         $this->listener = new EventListener($this->base,
             array($this, "acceptConnCallback"), $this->base,
             EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE, -1,
             "0.0.0.0:$port");

        if (!$this->listener) {
            echo "Не удалось создать слушателя";
            exit(1);
        }

        $this->listener->setErrorCallback(array($this, "accept_error_cb"));
    }

    public function dispatch() {
        $this->base->dispatch();
    }

    // Этот callback вызывается, когда есть данные для чтения на $bev
    public function acceptConnCallback($listener, $fd, $address, $ctx) {
        // Мы получили новое соединение! Создайте для этого все необходимое. */
        $base = $this->base;
        $this->conn[] = new MyListenerConnection($base, $fd);
    }

    public function accept_error_cb($listener, $ctx) {
        $base = $this->base;

        fprintf(STDERR, "Получил ошибку %d (%s) на слушателе."
            ."Выключение.\n",
            EventUtil::getLastSocketErrno(),
            EventUtil::getLastSocketError());

        $base->exit(NULL);
    }
}

$port = 9808;

if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port");
}

$l = new MyListener($port);
$l->dispatch();
?>


Отключает событие подключения к объекту слушателя

  • « EventListener::__construct
  • EventListener::enable »
  • PHP Manual
  • EventListener
  • Отключает событие подключения к объекту слушателя

EventListener::disable

(PECL event >= 1.2.6-beta)

EventListener::disable — Отключает событие подключения к объекту слушателя

Описание

public EventListener::disable ( void ) : bool

Отключает событие подключения к объекту слушателя

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Смотрите также

  • EventListener::enable() - Включает событие подключения к объекту слушателя


Включает событие подключения к объекту слушателя

  • « EventListener::disable
  • EventListener::getBase »
  • PHP Manual
  • EventListener
  • Включает событие подключения к объекту слушателя

EventListener::enable

(PECL event >= 1.2.6-beta)

EventListener::enable — Включает событие подключения к объекту слушателя

Описание

public EventListener::enable ( void ) : bool

Включает событие подключения к объекту слушателя

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.

Смотрите также

  • EventListener::disable() - Отключает событие подключения к объекту слушателя


Возвращает базу событий, связанную со слушателем событий

  • « EventListener::enable
  • EventListener::getSocketName »
  • PHP Manual
  • EventListener
  • Возвращает базу событий, связанную со слушателем событий

EventListener::getBase

(PECL event >= 1.2.6-beta)

EventListener::getBase — Возвращает базу событий, связанную со слушателем событий

Описание

public EventListener::getBase ( void ) : void

Возвращает базу событий, связанную со слушателем событий.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает базу событий, связанную со слушателем событий.


Получает текущий адрес, к которому привязан сокет слушателя

  • « EventListener::getBase
  • EventListener::setCallback »
  • PHP Manual
  • EventListener
  • Получает текущий адрес, к которому привязан сокет слушателя

EventListener::getSocketName

(PECL event >= 1.5.0)

EventListener::getSocketName — Получает текущий адрес, к которому привязан сокет слушателя

Описание

public static EventListener::getSocketName ( string &$address [, mixed &$port ] ) : bool

Получает текущий адрес, к которому привязан сокет слушателя.

Список параметров

address

Выходной параметр. IP-адрес в зависимости от семейства адресов сокетов.

port

Выходной параметр. Порт, к которому привязан сокет.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.


Цель setCallback

  • « EventListener::getSocketName
  • EventListener::setErrorCallback »
  • PHP Manual
  • EventListener
  • Цель setCallback

EventListener::setCallback

(PECL event >= 1.2.6-beta)

EventListener::setCallback — Цель setCallback

Описание

public EventListener::setCallback ( callable $cb [, mixed $arg = NULL ] ) : void

Настройте callback-функцию слушателя события и, по необходимости, callback-аргумент.

Список параметров

cb

Новая callback-функция для новых подключений. Игнорируется, если NULL.

Должна соответствовать прототипу:

callback ([ EventListener $listener = NULL [, mixed $fd = NULL [, array $address = NULL [, mixed $arg = NULL ]]]] ) : void

listener

Объект EventListener.

fd

Файловый дескриптор или ресурс, связанный со слушателем.

address

Массив из двух элементов: IP-адрес и порт server.

arg

Пользовательские данные, прикрепленные к callback-функции.

arg

Пользовательские данные, прикрепленные к callback-функции. Игнорируется, если NULL.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает callback-функцию ошибки слушателя событий

  • « EventListener::setCallback
  • EventSslContext »
  • PHP Manual
  • EventListener
  • Устанавливает callback-функцию ошибки слушателя событий

EventListener::setErrorCallback

(PECL event >= 1.2.6-beta)

EventListener::setErrorCallback — Устанавливает callback-функцию ошибки слушателя событий

Описание

public EventListener::setErrorCallback ( string $cb ) : void

Устанавливает callback-функцию ошибки слушателя событий

Список параметров

cb

Callback-функция ошибки. Должна соответствовать следующему прототипу:

callback ([ EventListener $listener = NULL [, mixed $data = NULL ]] ) : void

listener

Объект EventListener.

data

Пользовательские данные, прикрепленные к callback-функции.

Возвращаемые значения

Смотрите также

  • EventListener::setCallback() - Цель setCallback


Класс EventSslContext

(PECL event >= 1.2.6-beta)

Введение

Представляет структуру SSL_CTX. Предоставляет методы и свойства для настройки контекста SSL.

Обзор классов

final EventSslContext {
/* Константы */
const integer SSLv2_CLIENT_METHOD = 1 ;
const integer SSLv3_CLIENT_METHOD = 2 ;
const integer SSLv23_CLIENT_METHOD = 3 ;
const integer TLS_CLIENT_METHOD = 4 ;
const integer SSLv2_SERVER_METHOD = 5 ;
const integer SSLv3_SERVER_METHOD = 6 ;
const integer SSLv23_SERVER_METHOD = 7 ;
const integer TLS_SERVER_METHOD = 8 ;
const integer OPT_LOCAL_CERT = 1 ;
const integer OPT_LOCAL_PK = 2 ;
const integer OPT_PASSPHRASE = 3 ;
const integer OPT_CA_FILE = 4 ;
const integer OPT_CA_PATH = 5 ;
const integer OPT_ALLOW_SELF_SIGNED = 6 ;
const integer OPT_VERIFY_PEER = 7 ;
const integer OPT_VERIFY_DEPTH = 8 ;
const integer OPT_CIPHERS = 9 ;
/* Свойства */
public string $local_cert ;
public string $local_pk ;
/* Методы */
public __construct ( string $method , string $options )
}

Свойства

local_cert

Путь до локального файла сертификата. Это должен быть файл в формате PEM, содержащий сертификат. Опционально может содержать цепочку сертификатов эмитентов.

local_pk

Путь до локального файла с приватным ключем

Предопределенные константы

EventSslContext::SSLv2_CLIENT_METHOD

Метод клиента SSLv2. См. руководство по SSL_CTX_new(3).

EventSslContext::SSLv3_CLIENT_METHOD

Метод клиента SSLv3. См. руководство по SSL_CTX_new(3).

EventSslContext::SSLv23_CLIENT_METHOD

Метод клиента SSLv23. См. руководство по SSL_CTX_new(3).

EventSslContext::TLS_CLIENT_METHOD

Метод клиента TLS. См. руководство по SSL_CTX_new(3).

EventSslContext::SSLv2_SERVER_METHOD

Метод сервера SSLv2. См. руководство по SSL_CTX_new(3).

EventSslContext::SSLv3_SERVER_METHOD

Метод сервера SSLv3. См. руководство по SSL_CTX_new(3).

EventSslContext::SSLv23_SERVER_METHOD

Метод сервера SSLv23. См. руководство по SSL_CTX_new(3).

EventSslContext::TLS_SERVER_METHOD

Метод сервера TLS. См. руководство по SSL_CTX_new(3).

EventSslContext::OPT_LOCAL_CERT

Ключ элемента в массиве опций, переданном в EventSslContext::__construct() . Опция указывает на путь локального сертификата.

EventSslContext::OPT_LOCAL_PK

Ключ элемента в массиве опций, переданном в EventSslContext::__construct() . Опция указывает на путь локального приватного ключа.

EventSslContext::OPT_PASSPHRASE

Ключ элемента в массиве опций, переданном в EventSslContext::__construct() . Представляет пароль сертификата.

EventSslContext::OPT_CA_FILE

Ключ элемента в массиве опций, переданном в EventSslContext::__construct() . Представляет путь к файлу центра сертификации.

EventSslContext::OPT_CA_PATH

Ключ элемента в массиве опций, переданном в EventSslContext::__construct() . Представляет путь, по которому нужно искать файл центра сертификации.

EventSslContext::OPT_ALLOW_SELF_SIGNED

Ключ элемента в массиве опций, переданном в EventSslContext::__construct() . Представляет опцию, разрешающуб использовать самоподписанные сертификаты.

EventSslContext::OPT_VERIFY_PEER

Ключ элемента в массиве опций, переданном в EventSslContext::__construct() . Представляет опцию, указывающую расширению Event проверять узлы.

EventSslContext::OPT_VERIFY_DEPTH

Ключ элемента в массиве опций, переданном в EventSslContext::__construct() . Представляет максимальную глубину проверки цепочки сертификатов, допустимую для контекста SSL.

EventSslContext::OPT_CIPHERS

Ключ элемента в массиве опций, переданном в EventSslContext::__construct() . Представляет список шифров для контекста SSL.

Содержание

  • EventSslContext::__construct — Конструктор контекста OpenSSL для использования в классах Event


Конструктор контекста OpenSSL для использования в классах Event

  • « EventSslContext
  • EventUtil »
  • PHP Manual
  • EventSslContext
  • Конструктор контекста OpenSSL для использования в классах Event

EventSslContext::__construct

(PECL event >= 1.2.6-beta)

EventSslContext::__construct — Конструктор контекста OpenSSL для использования в классах Event

Описание

public EventSslContext::__construct ( string $method , string $options )

Создает контекст SSL содержащий указатель на SSL_CTX (смотрите системное руководство).

Список параметров

method

Одна из констант EventSslContext::*_METHOD .

options

Ассоциативный массив опций контекста SSL. Константы EventSslContext::OPT_* .

Возвращаемые значения

Возвращает объект EventSslContext.

Примеры

Пример #1 Пример использования EventSslContext::__construct()

<?php
$ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, array(
     EventSslContext::OPT_LOCAL_CERT        => $local_cert,
     EventSslContext::OPT_LOCAL_PK          => $local_pk,
     EventSslContext::OPT_PASSPHRASE        => "echo server",
     EventSslContext::OPT_VERIFY_PEER       => true,
     EventSslContext::OPT_ALLOW_SELF_SIGNED => false,
));
?>


Класс EventUtil

(PECL event >= 1.5.0)

Введение

EventUtil - класс синглтон, содержащий вспомогательные методы и константы.

Обзор классов

final EventUtil {
/* Константы */
const integer AF_INET = 2 ;
const integer AF_INET6 = 10 ;
const integer AF_UNSPEC = 0 ;
const integer LIBEVENT_VERSION_NUMBER = 33559808 ;
const integer SO_DEBUG = 1 ;
const integer SO_REUSEADDR = 2 ;
const integer SO_KEEPALIVE = 9 ;
const integer SO_DONTROUTE = 5 ;
const integer SO_LINGER = 13 ;
const integer SO_BROADCAST = 6 ;
const integer SO_OOBINLINE = 10 ;
const integer SO_SNDBUF = 7 ;
const integer SO_RCVBUF = 8 ;
const integer SO_SNDLOWAT = 19 ;
const integer SO_RCVLOWAT = 18 ;
const integer SO_SNDTIMEO = 21 ;
const integer SO_RCVTIMEO = 20 ;
const integer SO_TYPE = 3 ;
const integer SO_ERROR = 4 ;
const integer SOL_SOCKET = 1 ;
const integer SOL_TCP = 6 ;
const integer SOL_UDP = 17 ;
const integer IPPROTO_IP = 0 ;
const integer IPPROTO_IPV6 = 41 ;
/* Методы */
abstract public __construct ( void )
public static getLastSocketErrno ([ mixed $socket = NULL ] ) : int
public static getLastSocketError ([ mixed $socket ] ) : string
public static getSocketFd ( mixed $socket ) : int
public static getSocketName ( mixed $socket , string &$address [, mixed &$port ] ) : bool
public static setSocketOption ( mixed $socket , int $level , int $optname , mixed $optval ) : bool
public static sslRandPoll ( void ) : void
}

Предопределенные константы

EventUtil::AF_INET

Семейство IPv4 адресов

EventUtil::AF_INET6

Семейство IPv6 адресов

EventUtil::AF_UNSPEC

Неопределенное семейство IP-адресов

EventUtil::SO_DEBUG

Опция сокета. Разрешает отладку сокета. Допустимо только для процессов с возможностью CAP_NET_ADMIN или для пользователя с эффективным идентификатором 0 . (Добавлено в event-1.6.0.)

EventUtil::SO_REUSEADDR

Опция сокета. Указывает, что правила, используемые при проверке адресов, задаваемые в вызове bind(2) позволяют переиспользовать локальные адреса. Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::SO_KEEPALIVE

Опция сокета. Разрешает посылать сообщения keep-alive на сокетах, ориентированных на соединение. Ожидается целочисленный логический флаг. Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::SO_DONTROUTE

Опция сокета. Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::SO_LINGER

Опция сокета. Если разрешено, то вызовы close(2) или shutdown(2) не будут завершены, пока все сообщения в очереди для сокета не будут успешно отправлены, либо пока не будет превышен таймаут ожидания. В противном случае вызов немедленно завершается, а закрытие выполняется в фоновом режиме. Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::SO_BROADCAST

Опция сокета. Указывает, разрешена ли передача широковещательных сообщений. Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::SO_OOBINLINE

Опция сокета. Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::SO_SNDBUF

Опция сокета. Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::SO_RCVBUF

Опция сокета. Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::SO_SNDLOWAT

Опция сокета. Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::SO_RCVLOWAT

Опция сокета. Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::SO_SNDTIMEO

Опция сокета. Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::SO_RCVTIMEO

Опция сокета. Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::SO_TYPE

Опция сокета. Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::SO_ERROR

Опция сокета. Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::SOL_SOCKET

Опция сокета level. Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::SOL_TCP

Опция сокета level. Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::SOL_UDP

Опция сокета level. Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::IPPROTO_IP

Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::IPPROTO_IPV6

Смотрите руководство по socket(7). (Добавлено в event-1.6.0.)

EventUtil::LIBEVENT_VERSION_NUMBER

Номер версии libevent с которой компилировался модуль.

Содержание

  • EventUtil::__construct — Абстрактный конструктор
  • EventUtil::getLastSocketErrno — Получить номер последней возникшей ошибки сокета
  • EventUtil::getLastSocketError — Получить последнюю возникшую ошибку сокета
  • EventUtil::getSocketFd — Получить числовой файловый дескриптор сокета или потока
  • EventUtil::getSocketName — Получить текущий адрес, к которому привязан сокет
  • EventUtil::setSocketOption — Установить опции сокета
  • EventUtil::sslRandPoll — Сгенерировать энтропию с помощью RAND_poll() из OpenSSL


Абстрактный конструктор

  • « EventUtil
  • EventUtil::getLastSocketErrno »
  • PHP Manual
  • EventUtil
  • Абстрактный конструктор

EventUtil::__construct

(PECL event >= 1.2.6-beta)

EventUtil::__construct — Абстрактный конструктор

Описание

abstract public EventUtil::__construct ( void )

Класс EventUtil является синглтоном. Следовательно, создать объект этого класса с помощью конструктора невозможно.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Получить номер последней возникшей ошибки сокета

  • « EventUtil::__construct
  • EventUtil::getLastSocketError »
  • PHP Manual
  • EventUtil
  • Получить номер последней возникшей ошибки сокета

EventUtil::getLastSocketErrno

(PECL event >= 1.2.6-beta)

EventUtil::getLastSocketErrno — Получить номер последней возникшей ошибки сокета

Описание

public static EventUtil::getLastSocketErrno ([ mixed $socket = NULL ] ) : int

Возвращает номер последней возникшей ошибки сокета ( errno ).

Список параметров

socket

Ресурс сокета, потока или файловый дескриптор сокета.

Возвращаемые значения

Возвращает номер последней возникшей ошибки сокета ( errno ).

Смотрите также

  • EventUtil::getLastSocketError() - Получить последнюю возникшую ошибку сокета


Получить последнюю возникшую ошибку сокета

  • « EventUtil::getLastSocketErrno
  • EventUtil::getSocketFd »
  • PHP Manual
  • EventUtil
  • Получить последнюю возникшую ошибку сокета

EventUtil::getLastSocketError

(PECL event >= 1.2.6-beta)

EventUtil::getLastSocketError — Получить последнюю возникшую ошибку сокета

Описание

public static EventUtil::getLastSocketError ([ mixed $socket ] ) : string

Возвращает последнюю возникшую ошибку сокета.

Список параметров

socket

Ресурс сокета, потока или файловый дескриптор сокета.

Возвращаемые значения

Возвращает последнюю возникшую ошибку сокета.

Смотрите также

  • EventUtil::getLastSocketErrno() - Получить номер последней возникшей ошибки сокета


Получить числовой файловый дескриптор сокета или потока

  • « EventUtil::getLastSocketError
  • EventUtil::getSocketName »
  • PHP Manual
  • EventUtil
  • Получить числовой файловый дескриптор сокета или потока

EventUtil::getSocketFd

(PECL event >= 1.7.0)

EventUtil::getSocketFd — Получить числовой файловый дескриптор сокета или потока

Описание

public static EventUtil::getSocketFd ( mixed $socket ) : int

Возвращает числовой файловый дескриптор сокета или потока, заданный параметром socket, таким же образом как это делает модуль Event для всех методов, принимающих ресурсы сокета или потока.

Список параметров

socket

Ресурс сокета или потока.

Возвращаемые значения

Возвращает числовой файловый дескриптор. EventUtil::getSocketFd() возвращает FALSE, если не удалось определить тип нижележащего файла, либо если файловый дескриптор, связанный с socket некорректен.


Получить текущий адрес, к которому привязан сокет

  • « EventUtil::getSocketFd
  • EventUtil::setSocketOption »
  • PHP Manual
  • EventUtil
  • Получить текущий адрес, к которому привязан сокет

EventUtil::getSocketName

(PECL event >= 1.5.0)

EventUtil::getSocketName — Получить текущий адрес, к которому привязан сокет

Описание

public static EventUtil::getSocketName ( mixed $socket , string &$address [, mixed &$port ] ) : bool

Возвращает текущий адрес, к которому привязан сокет socket.

Список параметров

socket

Ресурс сокета, потока или файловый дескриптор, связанный с сокетом.

address

Выходной параметр. IP-адрес либо путь к доменному сокету UNIX.

port

Выходной параметр. Порт, к которому привязан сокет. Не имеет смысла для доменных сокетов UNIX.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установить опции сокета

  • « EventUtil::getSocketName
  • EventUtil::sslRandPoll »
  • PHP Manual
  • EventUtil
  • Установить опции сокета

EventUtil::setSocketOption

(PECL event >= 1.6.0)

EventUtil::setSocketOption — Установить опции сокета

Описание

public static EventUtil::setSocketOption ( mixed $socket , int $level , int $optname , mixed $optval ) : bool

Устанавливает опции сокета.

Список параметров

socket

Ресурс сокета, потока или файловый дескриптор, связанный с сокетом.

level

Одна из констант EventUtil::SOL_*. Задает уровень протокола, к которому относится параметр. К примеру, для работы с уровнем сокета, параметр level должен быть выставлен как EventUtil::SOL_SOCKET. Прочие уровни, такие как TCP, можно использовать указав соответствующую константу. Уровени протокола можно посмотреть с помощью функции getprotobyname(). Смотрите константы EventUtil .

optname

Имя опции (тип). То же самое, что и соответствующий параметр функции socket_get_option(). Смотрите константы EventUtil .

optval

Принимает те же значения, что и параметр optval функции socket_get_option().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • socket_get_option() - Получает опции потока для сокета
  • socket_set_option() - Устанавливает опции для сокета


Сгенерировать энтропию с помощью RAND_poll() из OpenSSL

  • « EventUtil::setSocketOption
  • FAM »
  • PHP Manual
  • EventUtil
  • Сгенерировать энтропию с помощью RAND_poll() из OpenSSL

EventUtil::sslRandPoll

(PECL event >= 1.2.6-beta)

EventUtil::sslRandPoll — Сгенерировать энтропию с помощью RAND_poll() из OpenSSL

Описание

public static EventUtil::sslRandPoll ( void ) : void

Генерирует энтропию с помощью RAND_poll() из OpenSSL. (см. соответствующую документацию).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


File Alteration Monitor

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции FAM
    • fam_cancel_monitor — Прекратить мониторинг
    • fam_close — Закрыть соединение с FAM
    • fam_monitor_collection — Мониторинг изменений файлов в директории
    • fam_monitor_directory — Мониторинг изменения директории
    • fam_monitor_file — Отслеживать изменения обычного файла
    • fam_next_event — Получить следующее ожидающее событие FAM
    • fam_open — Создает соединение к сервису FAM
    • fam_pending — Проверяет на наличие ожидающих событий FAM
    • fam_resume_monitor — Возобновить приостановленный мониторинг
    • fam_suspend_monitor — Временно приостанавливает мониторинг


Введение

FAM отслеживает файлы и директории, оповещая заинтересованные приложения об изменениях. Подробное описание FAM доступно по ссылке » https://web.archive.org/web/20050827202326/http://oss.sgi.com:80/projects/fam/.

PHP-скрипт может задать FAM список файлов для отслеживания используя функции, предоставляемые этим расширением.

Процесс FAM начинает работать когда к нему поступил первый запрос на соединения от любого приложения и завершает работу, когда все соединения будут закрыты.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0.

Замечание: Для Windows-платформ это расширение недоступно.


Требования

Это расширение использует функции библиотеки » FAM, разработанной SGI. Следовательно необходимо скачать и установить эту библиотеку.


Установка

Это расширение не поддерживается и считается умершим. Однако, его исходный код все еще доступен в PECL SVN вот здесь: » https://svn.php.net/viewvc/pecl/fam.

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0


Типы ресурсов

Расширение FAM использует два типа ресурсов. Первый - обработчик соединения к сервису FAM, возвращенный функцией fam_open(). Второй - ресурс мониторинга, возвращенный одной из функций fam_monitor_XXX.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы событий FAM
Константа | Описание
FAMChanged (integer) | Какие-либо значения, полученные с помощью fstat(1) для файла или директории, изменились.
FAMDeleted (integer) | Файл или директория были удалены, либо переименованы.
FAMStartExecuting (integer) | Выполняемый файл был запущен.
FAMStopExecuting (integer) | ЗАпущенный ранее исполняемый файл прекратил работу.
FAMCreated (integer) | В директории создан файл.
FAMMoved (integer) | Это событие никогда не происходит.
FAMAcknowledge (integer) | Событие в ответ на fam_cancel_monitor().
FAMExists (integer) | Событие в ответ на запрос отслеживать файл или директорию. Если запрашивается отслеживание директории, то это событие вызывается для самой директории и для всех файлов внутри нее.
FAMEndExist (integer) | Событие завершающее последовательность событий FAMEExists.


Функции FAM

Содержание

  • fam_cancel_monitor — Прекратить мониторинг
  • fam_close — Закрыть соединение с FAM
  • fam_monitor_collection — Мониторинг изменений файлов в директории
  • fam_monitor_directory — Мониторинг изменения директории
  • fam_monitor_file — Отслеживать изменения обычного файла
  • fam_next_event — Получить следующее ожидающее событие FAM
  • fam_open — Создает соединение к сервису FAM
  • fam_pending — Проверяет на наличие ожидающих событий FAM
  • fam_resume_monitor — Возобновить приостановленный мониторинг
  • fam_suspend_monitor — Временно приостанавливает мониторинг


Прекратить мониторинг

  • « Функции FAM
  • fam_close »
  • PHP Manual
  • Функции FAM
  • Прекратить мониторинг

fam_cancel_monitor

(PHP 5 < 5.1.0)

fam_cancel_monitor — Прекратить мониторинг

Описание

fam_cancel_monitor ( resource $fam , resource $fam_monitor ) : bool

Прекратить мониторинг ресурса.

Дополнительно возникает событие FAMAcknowledge.

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

fam_monitor

Ресурс, возвращенный одной из функций fam_monitor_XXX

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fam_monitor_file() - Отслеживать изменения обычного файла
  • fam_monitor_directory() - Мониторинг изменения директории
  • fam_monitor_collection() - Мониторинг изменений файлов в директории
  • fam_suspend_monitor() - Временно приостанавливает мониторинг


Закрыть соединение с FAM

  • « fam_cancel_monitor
  • fam_monitor_collection »
  • PHP Manual
  • Функции FAM
  • Закрыть соединение с FAM

fam_close

(PHP 5 < 5.1.0)

fam_close — Закрыть соединение с FAM

Описание

fam_close ( resource $fam ) : void

Закрывает соединение с сервисом FAM.

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • fam_monitor_open()


Мониторинг изменений файлов в директории

  • « fam_close
  • fam_monitor_directory »
  • PHP Manual
  • Функции FAM
  • Мониторинг изменений файлов в директории

fam_monitor_collection

(PHP 5 < 5.1.0)

fam_monitor_collection — Мониторинг изменений файлов в директории

Описание

fam_monitor_collection ( resource $fam , string $dirname , int $depth , string $mask ) : resource

Запрашивает мониторинг коллекции файлов в директории.

При изменении статуса файлов будет послано событие FAM. Возможные коды событий перечислены в секции Константы этого раздела.

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

dirname

Путь к директории с файлами

depth

Максимальная глубина (depth) поиска, начиная с указанной директории.

mask

Шаблон mask, определяющий маску для поиска файлов

Возвращаемые значения

Возвращает ресурс мониторинга, либо FALSE в случае ошибки.

Смотрите также

  • fam_monitor_file() - Отслеживать изменения обычного файла
  • fam_monitor_directory() - Мониторинг изменения директории
  • fam_cancel_monitor() - Прекратить мониторинг
  • fam_suspend_monitor() - Временно приостанавливает мониторинг
  • fam_resume_monitor() - Возобновить приостановленный мониторинг


Мониторинг изменения директории

  • « fam_monitor_collection
  • fam_monitor_file »
  • PHP Manual
  • Функции FAM
  • Мониторинг изменения директории

fam_monitor_directory

(PHP 5 < 5.1.0)

fam_monitor_directory — Мониторинг изменения директории

Описание

fam_monitor_directory ( resource $fam , string $dirname ) : resource

Запрашивает мониторинг для директории и всех содержащихся в нем файлов.

Когда статус директории изменится (т.е. результат функции stat() для этой директории) или будет изменен ее контент (т.е. результат вызова readdir()) будет создано событие FAM.

Возможные коды событий перечислены в секции Константы этого раздела.

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

dirname

Путь к директории

Возвращаемые значения

Возвращает ресурс мониторинга, либо FALSE в случае ошибки.

Смотрите также

  • fam_monitor_file() - Отслеживать изменения обычного файла
  • fam_monitor_collection() - Мониторинг изменений файлов в директории
  • fam_cancel_monitor() - Прекратить мониторинг
  • fam_suspend_monitor() - Временно приостанавливает мониторинг
  • fam_resume_monitor() - Возобновить приостановленный мониторинг


Отслеживать изменения обычного файла

  • « fam_monitor_directory
  • fam_next_event »
  • PHP Manual
  • Функции FAM
  • Отслеживать изменения обычного файла

fam_monitor_file

(PHP 5 < 5.1.0)

fam_monitor_file — Отслеживать изменения обычного файла

Описание

fam_monitor_file ( resource $fam , string $filename ) : resource

Запрос мониторинга для одного файла. Когда статус файла изменится (т.е. результат функции stat() для этого файла), будет создано событие.

Возможные коды событий перечислены в секции Константы этого раздела.

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

filename

Путь к файлу

Возвращаемые значения

Возвращает ресурс мониторинга, либо FALSE в случае ошибки.

Смотрите также

  • fam_monitor_directory() - Мониторинг изменения директории
  • fam_monitor_collection() - Мониторинг изменений файлов в директории
  • fam_cancel_monitor() - Прекратить мониторинг
  • fam_suspend_monitor() - Временно приостанавливает мониторинг
  • fam_resume_monitor() - Возобновить приостановленный мониторинг


Получить следующее ожидающее событие FAM

  • « fam_monitor_file
  • fam_open »
  • PHP Manual
  • Функции FAM
  • Получить следующее ожидающее событие FAM

fam_next_event

(PHP 5 < 5.1.0)

fam_next_event — Получить следующее ожидающее событие FAM

Описание

fam_next_event ( resource $fam ) : array

Возвращает следующее ожидающее событие FAM.

Функция будет заблокирована, пока не будет доступно событие, которое может быть проверено с использованием функции fam_pending().

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

Возвращаемые значения

Возвращает ассоциативный массив, содержащий событие FAM. В поле 'code' будет содержаться кон события. В поле 'filename' будет содержаться путь к файлу. В поле 'hostname' будет опционально содержаться имя хоста.

Возможные коды событий перечислены в секции Константы этого раздела.

Смотрите также

  • fam_pending() - Проверяет на наличие ожидающих событий FAM


Создает соединение к сервису FAM

  • « fam_next_event
  • fam_pending »
  • PHP Manual
  • Функции FAM
  • Создает соединение к сервису FAM

fam_open

(PHP 5 < 5.1.0)

fam_open — Создает соединение к сервису FAM

Описание

fam_open ([ string $appname ] ) : resource

Создает соединение к сервису FAM.

Список параметров

appname

Строковый идентификатор приложения, для которого запрашивается мониторинг

Возвращаемые значения

Возвращает ресурс, представляющий соединение к сервису FAM, либо FALSE, в случае ошибки.

Смотрите также

  • fam_close() - Закрыть соединение с FAM


Проверяет на наличие ожидающих событий FAM

  • « fam_open
  • fam_resume_monitor »
  • PHP Manual
  • Функции FAM
  • Проверяет на наличие ожидающих событий FAM

fam_pending

(PHP 5 < 5.1.0)

fam_pending — Проверяет на наличие ожидающих событий FAM

Описание

fam_pending ( resource $fam ) : int

Проверяет на наличие ожидающих событий FAM.

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

Возвращаемые значения

Возвращает не ноль, если есть ожидающие события, доступные для разбора функцией fam_next_event(), и ноль, если нет.

Смотрите также

  • fam_next_event() - Получить следующее ожидающее событие FAM


Возобновить приостановленный мониторинг

  • « fam_pending
  • fam_suspend_monitor »
  • PHP Manual
  • Функции FAM
  • Возобновить приостановленный мониторинг

fam_resume_monitor

(PHP 5 < 5.1.0)

fam_resume_monitor — Возобновить приостановленный мониторинг

Описание

fam_resume_monitor ( resource $fam , resource $fam_monitor ) : bool

Возобновляет мониторинг, приостановленный функцией fam_suspend_monitor().

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

fam_monitor

Ресурс, возвращенный одной из функций fam_monitor_XXX

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fam_suspend_monitor() - Временно приостанавливает мониторинг


Временно приостанавливает мониторинг

  • « fam_resume_monitor
  • FTP »
  • PHP Manual
  • Функции FAM
  • Временно приостанавливает мониторинг

fam_suspend_monitor

(PHP 5 < 5.1.0)

fam_suspend_monitor — Временно приостанавливает мониторинг

Описание

fam_suspend_monitor ( resource $fam , resource $fam_monitor ) : bool

fam_suspend_monitor() временно приостанавливает мониторинг ресурса.

В дальнейшем этот мониторинг можно возобновить с помощью функции fam_resume_monitor() без запроса нового ресурса мониторинга.

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

fam_monitor

Ресурс, возвращенный одной из функций fam_monitor_XXX

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fam_cancel_monitor() - Прекратить мониторинг
  • fam_resume_monitor() - Возобновить приостановленный мониторинг


FTP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Простое использование
  • Функции FTP
    • ftp_alloc — Резервирует место на диске для закачиваемого файла
    • ftp_append — Добавляет содержимое файла в конец другого файла на FTP-сервере
    • 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_mlsd — Возвращает список файлов в заданной директории
    • 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-сервера


Введение

Функции этого модуля обеспечивают доступ к серверам по протоколу FTP (File Transfer Protocol), определенному в » http://www.faqs.org/rfcs/rfc959. Модуль позволяет выполнять множество довольно сложных операций. Если требуется лишь прочитать или записать файл на сервере FTP, можно воспользоваться ftp:// оберткой и функциями для работы с файловой системой, которые более просты в использовании.


Установка

Для использования FTP функций вы должны указать директиву --enable-ftp во время установки PHP.

Версия PHP 5 для Windows содержит это расширение по умолчанию и вам не нужно подгружать дополнительные расширения для использования его функций.

Начиная с PHP 7.0.0 для Windows это расширение всегда собрано как разделяемое (shared) и должно быть включено в php.ini.


Типы ресурсов

Этот модуль использует один тип ресурса - идентификатор соединения с FTP-сервером, возвращаемый функцией ftp_connect() или ftp_ssl_connect().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

FTP_ASCII (integer)

FTP_AUTOSEEK (integer)

Смотрите описание функции ftp_set_option().

FTP_AUTORESUME (integer)

Автоматическое определение позиции старта и возобновления запросов PUT и GET (работает только если разрешен FTP_AUTOSEEK)

FTP_FAILED (integer)

Асинхронная передача не удалась.

FTP_FINISHED (integer)

Асинхронная передача завершена.

FTP_MOREDATA (integer)

Асинхронная передача все еще активна.

FTP_TEXT (integer)

Синоним для FTP_ASCII

FTP_BINARY (integer)

FTP_IMAGE (integer)

Синоним для FTP_BINARY.

FTP_TIMEOUT_SEC (integer)

Смотрите описание функции ftp_set_option().

FTP_USEPASVADDRESS (bool)

Смотрите описание к функции ftp_set_option() для получения информации. Доступно с PHP 5.6.0.


  • « Предопределенные константы
  • Простое использование »
  • PHP Manual
  • FTP
  • Примеры

Примеры

Содержание

  • Простое использование


Простое использование

Пример #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

Содержание

  • ftp_alloc — Резервирует место на диске для закачиваемого файла
  • ftp_append — Добавляет содержимое файла в конец другого файла на FTP-сервере
  • 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_mlsd — Возвращает список файлов в заданной директории
  • 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-сервера


Резервирует место на диске для закачиваемого файла

  • « Функции FTP
  • ftp_append »
  • PHP Manual
  • Функции FTP
  • Резервирует место на диске для закачиваемого файла

ftp_alloc

(PHP 5, PHP 7)

ftp_alloc — Резервирует место на диске для закачиваемого файла

Описание

ftp_alloc ( resource $ftp_stream , int $filesize [, string &$result ] ) : bool

Посылает команду ALLO FTP-серверу для резервирования места под загружаемый файл.

Замечание:

Многие FTP-серверы не поддерживают эту команду. Такие серверы возвращают код неудачи (FALSE), что означает отсутствие поддержки этой команды, или код успешного выполнения (TRUE), означающий, что в резервировании нет необходимости и клиенту следует продолжать, будто операция была выполнена успешно. По этой причине эту функцию следует использовать с серверами, которые требуют обязательного резервирования.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

filesize

Количество резервируемых байт.

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-сервер
  • ftp_fput() - Загружает предварительно открытый файл на FTP-сервер


Добавляет содержимое файла в конец другого файла на FTP-сервере

  • « ftp_alloc
  • ftp_cdup »
  • PHP Manual
  • Функции FTP
  • Добавляет содержимое файла в конец другого файла на FTP-сервере

ftp_append

(PHP 7 >= 7.2.0)

ftp_append — Добавляет содержимое файла в конец другого файла на FTP-сервере

Описание

ftp_append ( resource $ftp , string $remote_file , string $local_file [, int $mode = FTP_BINARY ] ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ftp

remote_file

local_file

mode

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Переходит в родительскую директорию

  • « ftp_append
  • ftp_chdir »
  • PHP Manual
  • Функции FTP
  • Переходит в родительскую директорию

ftp_cdup

(PHP 4, PHP 5, PHP 7)

ftp_cdup — Переходит в родительскую директорию

Описание

ftp_cdup ( resource $ftp_stream ) : bool

Переходит в родительскую директорию.

Список параметров

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-сервере
  • ftp_pwd() - Возвращает имя текущей директории


Изменяет текущую директорию на FTP-сервере

  • « ftp_cdup
  • ftp_chmod »
  • PHP Manual
  • Функции FTP
  • Изменяет текущую директорию на FTP-сервере

ftp_chdir

(PHP 4, PHP 5, PHP 7)

ftp_chdir — Изменяет текущую директорию на FTP-сервере

Описание

ftp_chdir ( resource $ftp_stream , string $directory ) : bool

Меняет текущую директорию на заданную аргументом.

Список параметров

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_chdir
  • ftp_close »
  • PHP Manual
  • Функции FTP
  • Устанавливает права доступа к файлу

ftp_chmod

(PHP 5, PHP 7)

ftp_chmod — Устанавливает права доступа к файлу

Описание

ftp_chmod ( resource $ftp_stream , int $mode , string $filename ) : int

Устанавливает права доступа к указанному удалённому файлу в значение 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-сервером

  • « ftp_chmod
  • ftp_connect »
  • PHP Manual
  • Функции FTP
  • Закрывает соединение с FTP-сервером

ftp_close

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ftp_close — Закрывает соединение с FTP-сервером

Описание

ftp_close ( resource $ftp_stream ) : bool

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-сервером


Устанавливает соединение с FTP-сервером

  • « ftp_close
  • ftp_delete »
  • PHP Manual
  • Функции FTP
  • Устанавливает соединение с FTP-сервером

ftp_connect

(PHP 4, PHP 5, PHP 7)

ftp_connect — Устанавливает соединение с FTP-сервером

Описание

ftp_connect ( string $host [, int $port = 21 [, int $timeout = 90 ]] ) : resource

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");

?>

Смотрите также

  • ftp_close() - Закрывает соединение с FTP-сервером
  • ftp_ssl_connect() - Устанавливает соединение с FTP-сервером через SSL


Удаляет файл на FTP-сервере

  • « ftp_connect
  • ftp_exec »
  • PHP Manual
  • Функции FTP
  • Удаляет файл на FTP-сервере

ftp_delete

(PHP 4, PHP 5, PHP 7)

ftp_delete — Удаляет файл на FTP-сервере

Описание

ftp_delete ( resource $ftp_stream , string $path ) : bool

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-сервере

  • « ftp_delete
  • ftp_fget »
  • PHP Manual
  • Функции FTP
  • Запрашивает выполнение команды на FTP-сервере

ftp_exec

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

ftp_exec — Запрашивает выполнение команды на FTP-сервере

Описание

ftp_exec ( resource $ftp_stream , string $command ) : bool

Посылает команду 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 выполнена успешно\n";
} else {
    echo "Не удалось выполнить $command\n";
}

// закрываем соединение
ftp_close($conn_id);

?>

Смотрите также

  • ftp_raw() - Отправляет произвольную команду FTP-серверу


Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле

  • « ftp_exec
  • ftp_fput »
  • PHP Manual
  • Функции FTP
  • Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле

ftp_fget

(PHP 4, PHP 5, PHP 7)

ftp_fget — Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле

Описание

ftp_fget ( resource $ftp_stream , resource $handle , string $remote_file [, int $mode = FTP_BINARY [, int $resumepos = 0 ]] ) : bool

ftp_fget() загружает файл remote_file с FTP-сервера и записывает его в переданный файловый дескриптор.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

handle

Открытый файловый дескриптор, в который будут сохранены данные.

remote_file

Путь к удалённому файлу.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

resumepos

Позиция начала загрузки в удаленном файле.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3.0 | Теперь параметр mode опционален. Раньше он был обязательным.

Примеры

Пример #1 Пример использования ftp_fget()

<?php

// путь к удаленному файлу
$remote_file = 'somefile.txt';
$local_file = 'localfile.txt';

// открываем файл для записи
$handle = fopen($local_file, 'w');

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// пытаемся скачать файл и сохранить его в $handle
if (ftp_fget($conn_id, $handle, $remote_file, FTP_ASCII, 0)) {
 echo "Произведена запись в $local_file\n";
} else {
 echo "При скачивании $remote_file в $local_file произошла проблема\n";
}

// закрытие соединения и локального файла
ftp_close($conn_id);
fclose($handle);
?>

Смотрите также

  • ftp_get() - Скачивает файл с FTP-сервера
  • ftp_nb_get() - Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в локальный файл
  • ftp_nb_fget() - Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в предварительно открытом файле


Загружает предварительно открытый файл на FTP-сервер

  • « ftp_fget
  • ftp_get_option »
  • PHP Manual
  • Функции FTP
  • Загружает предварительно открытый файл на FTP-сервер

ftp_fput

(PHP 4, PHP 5, PHP 7)

ftp_fput — Загружает предварительно открытый файл на FTP-сервер

Описание

ftp_fput ( resource $ftp_stream , string $remote_file , resource $handle [, int $mode = FTP_BINARY [, int $startpos = 0 ]] ) : bool

ftp_fput() загружает данные из файлового дескриптора в удалённый файл на FTP-сервере.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

remote_file

Путь к удалённому файлу.

handle

Открытый файловый дескриптор локального файла. Чтение прекращается при достижении конца файла.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

startpos

Позиция начала загрузки в удаленном файле.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3.0 | Теперь параметр mode опционален. Раньше он был обязательным.

Примеры

Пример #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";
}

// закрываем соединение и дескриптор файла
ftp_close($conn_id);
fclose($fp);

?>

Смотрите также

  • ftp_put() - Загружает файл на FTP-сервер
  • ftp_nb_fput() - Загружает предварительно открытый файл на FTP-сервер в асинхронном режиме
  • ftp_nb_put() - Загружает файл на FTP-сервер в асинхронном режиме


Получает текущие параметры FTP-соединения

  • « ftp_fput
  • ftp_get »
  • PHP Manual
  • Функции FTP
  • Получает текущие параметры FTP-соединения

ftp_get_option

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ftp_get_option — Получает текущие параметры FTP-соединения

Описание

ftp_get_option ( resource $ftp_stream , int $option ) : mixed

Эта функция возвращает значение запрошенной опции option для указанного FTP-соединения.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

option

На текущий момент, поддерживаются следующие опции:

Поддерживаемые текущие опции 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-сервером


Скачивает файл с FTP-сервера

  • « ftp_get_option
  • ftp_login »
  • PHP Manual
  • Функции FTP
  • Скачивает файл с FTP-сервера

ftp_get

(PHP 4, PHP 5, PHP 7)

ftp_get — Скачивает файл с FTP-сервера

Описание

ftp_get ( resource $ftp_stream , string $local_file , string $remote_file [, int $mode = FTP_BINARY [, int $resumepos = 0 ]] ) : bool

ftp_get() загружает удалённый файл с FTP-сервера и сохраняет его локально.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

local_file

Путь к локальному файлу (файл будет перезаписан, если уже существует).

remote_file

Путь к удалённому файлу.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

resumepos

Позиция начала загрузки в удаленном файле.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3.0 | Теперь параметр mode опционален. Раньше он был обязательным.

Примеры

Пример #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);

?>

Смотрите также

  • ftp_pasv() - Включает или выключает пассивный режим
  • ftp_fget() - Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле
  • ftp_nb_get() - Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в локальный файл
  • ftp_nb_fget() - Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в предварительно открытом файле


Выполняет вход на FTP-сервер

  • « ftp_get
  • ftp_mdtm »
  • PHP Manual
  • Функции FTP
  • Выполняет вход на FTP-сервер

ftp_login

(PHP 4, PHP 5, PHP 7)

ftp_login — Выполняет вход на FTP-сервер

Описание

ftp_login ( resource $ftp_stream , string $username , string $password ) : bool

Выполняет вход на 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";
}

// закрыть соединение
ftp_close($conn_id);
?>


Возвращает время последней модификации файла

  • « ftp_login
  • ftp_mkdir »
  • PHP Manual
  • Функции FTP
  • Возвращает время последней модификации файла

ftp_mdtm

(PHP 4, PHP 5, PHP 7)

ftp_mdtm — Возвращает время последней модификации файла

Описание

ftp_mdtm ( resource $ftp_stream , string $remote_file ) : int

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_mdtm
  • ftp_mlsd »
  • PHP Manual
  • Функции FTP
  • Создаёт директорию

ftp_mkdir

(PHP 4, PHP 5, PHP 7)

ftp_mkdir — Создаёт директорию

Описание

ftp_mkdir ( resource $ftp_stream , string $directory ) : string

Создает директорию 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_mkdir
  • ftp_nb_continue »
  • PHP Manual
  • Функции FTP
  • Возвращает список файлов в заданной директории

ftp_mlsd

(PHP 7 >= 7.2.0)

ftp_mlsd — Возвращает список файлов в заданной директории

Описание

ftp_mlsd ( resource $ftp_stream , string $directory ) : array

Список параметров

ftp_stream

Идентификатор соединения FTP.

directory

Директория, список файлов которой будет возвращен.

Возвращаемые значения

Возвращает массив массивов с информацией о файлах из указанной директории в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ftp_mlsd()

<?php

// установить основное соединение
$conn_id = ftp_connect($ftp_server);

// авторизоваться на сервере, используя имя пользователя и пароль
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// получить содержимое текущей директории
$contents = ftp_mlsd($conn_id, ".");

// вывод $contents
var_dump($contents);

?>

Результатом выполнения данного примера будет что-то подобное:

array(5) {
  [0]=>
  array(8) {
    ["name"]=>
    string(1) "."
    ["modify"]=>
    string(14) "20171212154511"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(4) "cdir"
    ["unique"]=>
    string(11) "811U5740002"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [1]=>
  array(8) {
    ["name"]=>
    string(2) ".."
    ["modify"]=>
    string(14) "20171212154511"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(4) "pdir"
    ["unique"]=>
    string(11) "811U5740002"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [2]=>
  array(8) {
    ["name"]=>
    string(11) "public_html"
    ["modify"]=>
    string(14) "20171211171525"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(3) "dir"
    ["unique"]=>
    string(11) "811U5740525"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [3]=>
  array(8) {
    ["name"]=>
    string(10) "public_ftp"
    ["modify"]=>
    string(14) "20171211174536"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(3) "dir"
    ["unique"]=>
    string(11) "811U57405EE"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [4]=>
  array(8) {
    ["name"]=>
    string(3) "www"
    ["modify"]=>
    string(14) "www"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(3) "dir"
    ["unique"]=>
    string(11) "811U5740780"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
}

Смотрите также

  • ftp_rawlist() - Возвращает подробный список файлов в заданной директории
  • ftp_nlist() - Возвращает список файлов в заданной директории


Продолжает асинхронную операцию

  • « ftp_mlsd
  • ftp_nb_fget »
  • PHP Manual
  • Функции FTP
  • Продолжает асинхронную операцию

ftp_nb_continue

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_nb_continue — Продолжает асинхронную операцию

Описание

ftp_nb_continue ( resource $ftp_stream ) : int

Продолжает отправку или получение файла в асинхронном режиме.

Список параметров

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-сервера в асинхронном режиме и сохраняет его в предварительно открытом файле

  • « ftp_nb_continue
  • ftp_nb_fput »
  • PHP Manual
  • Функции FTP
  • Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в предварительно открытом файле

ftp_nb_fget

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_nb_fget — Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в предварительно открытом файле

Описание

ftp_nb_fget ( resource $ftp_stream , resource $handle , string $remote_file [, int $mode = FTP_BINARY [, int $resumepos = 0 ]] ) : int

ftp_nb_fget() скачивает удалённый файл с FTP-сервера.

Разница между этой функцией и ftp_fget() заключается в том, что эта функция получает файл асинхронно, так что ваша программа может совершать другие операции, пока файл скачивается.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

handle

Открытый файловый дескриптор для сохранения данных.

remote_file

Путь к удалённому файлу.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

resumepos

Позиция начала загрузки в удаленном файле.

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Список изменений

Версия | Описание
7.3.0 | Теперь параметр mode опционален. Раньше он был обязательным.

Примеры

Пример #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-сервера в асинхронном режиме и сохраняет его в локальный файл
  • ftp_nb_continue() - Продолжает асинхронную операцию
  • ftp_fget() - Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле
  • ftp_get() - Скачивает файл с FTP-сервера


Загружает предварительно открытый файл на FTP-сервер в асинхронном режиме

  • « ftp_nb_fget
  • ftp_nb_get »
  • PHP Manual
  • Функции FTP
  • Загружает предварительно открытый файл на FTP-сервер в асинхронном режиме

ftp_nb_fput

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_nb_fput — Загружает предварительно открытый файл на FTP-сервер в асинхронном режиме

Описание

ftp_nb_fput ( resource $ftp_stream , string $remote_file , resource $handle [, int $mode = FTP_BINARY [, int $startpos = 0 ]] ) : int

ftp_nb_fput() закачивает данные из дескриптора файла в удалённый файл на FTP-сервере.

Разница между этой функцией и ftp_fput() заключается в том, что эта функция загружает файл асинхронно, так что ваша программа может совершать другие операции, пока файл закачивается.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

remote_file

Путь к удалённому файлу.

handle

Открытый файловый дескриптор локального файла. Чтение прекращается при достижении конца файла.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

startpos

Позиция начала загрузки в удаленном файле.

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Список изменений

Версия | Описание
7.3.0 | Теперь параметр mode опционален. Раньше он был обязательным.

Примеры

Пример #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-сервер в асинхронном режиме
  • ftp_nb_continue() - Продолжает асинхронную операцию
  • ftp_put() - Загружает файл на FTP-сервер
  • ftp_fput() - Загружает предварительно открытый файл на FTP-сервер


Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в локальный файл

  • « ftp_nb_fput
  • ftp_nb_put »
  • PHP Manual
  • Функции FTP
  • Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в локальный файл

ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_nb_get — Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в локальный файл

Описание

ftp_nb_get ( resource $ftp_stream , string $local_file , string $remote_file [, int $mode = FTP_BINARY [, int $resumepos = 0 ]] ) : int

ftp_nb_get() скачивает удалённый файл с FTP-сервера и сохраняет его в локальный файл.

Разница между этой функцией и ftp_get() заключается в том, что эта функция получает файл асинхронно, так что ваша программа может совершать другие операции, пока файл скачивается.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

local_file

Путь к локальному файлу (файл будет перезаписан, если уже существует).

remote_file

Путь к удалённому файлу.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

resumepos

Позиция начала загрузки в удаленном файле.

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Список изменений

Версия | Описание
7.3.0 | Теперь параметр mode опционален. Раньше он был обязательным.

Примеры

Пример #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-сервера в асинхронном режиме и сохраняет его в предварительно открытом файле
  • ftp_nb_continue() - Продолжает асинхронную операцию
  • ftp_fget() - Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле
  • ftp_get() - Скачивает файл с FTP-сервера


Загружает файл на FTP-сервер в асинхронном режиме

  • « ftp_nb_get
  • ftp_nlist »
  • PHP Manual
  • Функции FTP
  • Загружает файл на FTP-сервер в асинхронном режиме

ftp_nb_put

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_nb_put — Загружает файл на FTP-сервер в асинхронном режиме

Описание

ftp_nb_put ( resource $ftp_stream , string $remote_file , string $local_file [, int $mode = FTP_BINARY [, int $startpos = 0 ]] ) : int

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.

Список изменений

Версия | Описание
7.3.0 | Теперь параметр mode опционален. Раньше он был обязательным.

Примеры

Пример #1 Пример использования ftp_nb_put()

<?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-сервер в асинхронном режиме
  • ftp_nb_continue() - Продолжает асинхронную операцию
  • ftp_put() - Загружает файл на FTP-сервер
  • ftp_fput() - Загружает предварительно открытый файл на FTP-сервер


Возвращает список файлов в заданной директории

  • « ftp_nb_put
  • ftp_pasv »
  • PHP Manual
  • Функции FTP
  • Возвращает список файлов в заданной директории

ftp_nlist

(PHP 4, PHP 5, PHP 7)

ftp_nlist — Возвращает список файлов в заданной директории

Описание

ftp_nlist ( resource $ftp_stream , string $directory ) : array

Список параметров

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_mlsd() - Возвращает список файлов в заданной директории


Включает или выключает пассивный режим

  • « ftp_nlist
  • ftp_put »
  • PHP Manual
  • Функции FTP
  • Включает или выключает пассивный режим

ftp_pasv

(PHP 4, PHP 5, PHP 7)

ftp_pasv — Включает или выключает пассивный режим

Описание

ftp_pasv ( resource $ftp_stream , bool $pasv ) : bool

ftp_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-сервер

  • « ftp_pasv
  • ftp_pwd »
  • PHP Manual
  • Функции FTP
  • Загружает файл на FTP-сервер

ftp_put

(PHP 4, PHP 5, PHP 7)

ftp_put — Загружает файл на FTP-сервер

Описание

ftp_put ( resource $ftp_stream , string $remote_file , string $local_file [, int $mode = FTP_BINARY [, int $startpos = 0 ]] ) : bool

ftp_put() загружает локальный файл на FTP-сервер.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

remote_file

Путь к файлу на FTP-сервере.

local_file

Путь к локальному файлу.

mode

Задает режим передачи. Может принимать значения FTP_ASCII или FTP_BINARY.

startpos

Задает позицию в удаленном файле, в которую начнется загрузка

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3.0 | Теперь параметр mode опционален. Раньше он был обязательным.

Примеры

Пример #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_pasv() - Включает или выключает пассивный режим
  • ftp_fput() - Загружает предварительно открытый файл на FTP-сервер
  • ftp_nb_fput() - Загружает предварительно открытый файл на FTP-сервер в асинхронном режиме
  • ftp_nb_put() - Загружает файл на FTP-сервер в асинхронном режиме


Возвращает имя текущей директории

  • « ftp_put
  • ftp_quit »
  • PHP Manual
  • Функции FTP
  • Возвращает имя текущей директории

ftp_pwd

(PHP 4, PHP 5, PHP 7)

ftp_pwd — Возвращает имя текущей директории

Описание

ftp_pwd ( resource $ftp_stream ) : string

Список параметров

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_chdir() - Изменяет текущую директорию на FTP-сервере
  • ftp_cdup() - Переходит в родительскую директорию


Псевдоним ftp_close

  • « ftp_pwd
  • ftp_raw »
  • PHP Manual
  • Функции FTP
  • Псевдоним ftp_close

ftp_quit

(PHP 4, PHP 5, PHP 7)

ftp_quit — Псевдоним ftp_close()

Описание

Эта функция является псевдонимом: ftp_close().


Отправляет произвольную команду FTP-серверу

  • « ftp_quit
  • ftp_rawlist »
  • PHP Manual
  • Функции FTP
  • Отправляет произвольную команду FTP-серверу

ftp_raw

(PHP 5, PHP 7)

ftp_raw — Отправляет произвольную команду FTP-серверу

Описание

ftp_raw ( resource $ftp_stream , string $command ) : array

Отправляет произвольную команду 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-сервере


Возвращает подробный список файлов в заданной директории

  • « ftp_raw
  • ftp_rename »
  • PHP Manual
  • Функции FTP
  • Возвращает подробный список файлов в заданной директории

ftp_rawlist

(PHP 4, PHP 5, PHP 7)

ftp_rawlist — Возвращает подробный список файлов в заданной директории

Описание

ftp_rawlist ( resource $ftp_stream , string $directory [, bool $recursive = FALSE ] ) : array

ftp_rawlist() отправляет FTP-серверу команду LIST и возвращает результат в виде массива.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

directory

Имя директории на сервере. Может включать аргументы для команды LIST.

recursive

Если передано значение TRUE, серверу будет отправлена команда LIST -R.

Возвращаемые значения

Возвращает массив, каждый элемент которого содержит одну строку ответа сервера. Возвращает FALSE, если переданная директория directory не валидна.

Ответ сервера никак не обрабатывается. Для определения того, как следует интерпретировать результат, можно использовать результат работы функции 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"
}

Смотрите также

  • ftp_nlist() - Возвращает список файлов в заданной директории
  • ftp_mlsd() - Возвращает список файлов в заданной директории


Переименовывает файл или директорию на FTP-сервере

  • « ftp_rawlist
  • ftp_rmdir »
  • PHP Manual
  • Функции FTP
  • Переименовывает файл или директорию на FTP-сервере

ftp_rename

(PHP 4, PHP 5, PHP 7)

ftp_rename — Переименовывает файл или директорию на FTP-сервере

Описание

ftp_rename ( resource $ftp_stream , string $oldname , string $newname ) : bool

ftp_rename() переименовывает файл или директорию на FTP-сервере.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

oldname

Старое имя файла/директории.

newname

Новое имя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. В случае ошибки (например при попытке переименовать несуществующий файл) будет вызвана ошибка уровня E_WARNING.

Примеры

Пример #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_rename
  • ftp_set_option »
  • PHP Manual
  • Функции FTP
  • Удаляет директорию

ftp_rmdir

(PHP 4, PHP 5, PHP 7)

ftp_rmdir — Удаляет директорию

Описание

ftp_rmdir ( resource $ftp_stream , string $directory ) : bool

Удаляет директорию 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-сервером

  • « ftp_rmdir
  • ftp_site »
  • PHP Manual
  • Функции FTP
  • Устанавливает параметры соединения с FTP-сервером

ftp_set_option

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ftp_set_option — Устанавливает параметры соединения с FTP-сервером

Описание

ftp_set_option ( resource $ftp_stream , int $option , mixed $value ) : bool

Эта функция устанавливает параметры соединения с FTP-сервером.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

option

В настоящее время поддерживаются следующие параметры:

Поддерживаемые параметры
FTP_TIMEOUT_SEC | Устанавливает тайм-аут сетевых операций, в секундах. Аргумент value должен быть целым, больше 0. По умолчанию тайм-аут равен 90 секунд.
FTP_AUTOSEEK | При установке этого параметра перед выполнением запросов GET или PUT с параметром resumepos или startpos указатель файла будет установлен на запрошенную позицию. Этот параметр установлен по умолчанию.
FTP_USEPASVADDRESS | Если отключено, то PHP будет игнорировать IP-адрес, возвращенный сервером в ответ на команду PASV и вместо него будет использовать IP-адрес, переданный в ftp_connect(). Параметр value должен содержать логическое значение.

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-соединения


Отправляет серверу команду SITE

  • « ftp_set_option
  • ftp_size »
  • PHP Manual
  • Функции FTP
  • Отправляет серверу команду SITE

ftp_site

(PHP 4, PHP 5, PHP 7)

ftp_site — Отправляет серверу команду SITE

Описание

ftp_site ( resource $ftp_stream , string $command ) : bool

ftp_site() отправляет указанную команду SITE 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-серверу


Возвращает размер указанного файла

  • « ftp_site
  • ftp_ssl_connect »
  • PHP Manual
  • Функции FTP
  • Возвращает размер указанного файла

ftp_size

(PHP 4, PHP 5, PHP 7)

ftp_size — Возвращает размер указанного файла

Описание

ftp_size ( resource $ftp_stream , string $remote_file ) : int

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-сервером через SSL

  • « ftp_size
  • ftp_systype »
  • PHP Manual
  • Функции FTP
  • Устанавливает соединение с FTP-сервером через SSL

ftp_ssl_connect

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_ssl_connect — Устанавливает соединение с FTP-сервером через SSL

Описание

ftp_ssl_connect ( string $host [, int $port = 21 [, int $timeout = 90 ]] ) : resource

ftp_ssl_connect() устанавливает явное SSL соединение с FTP-сервером, заданным аргументом host. Это означает, что ftp_ssl_connect() будет успешным даже если сервер не настроен для SSL-FTP, или его сертификат недействителен. Только когда будет вызвана функция ftp_login(), клиент пошлет необходимую комманду AUTH FTP, так что в указанных случаях ftp_login() завершится ошибкой.

Замечание: Почему эта функция может быть не определена

Функция ftp_ssl_connect() доступна только в том случае, если PHP был собран с поддержкой OpenSSL. Это означает что под Windows эта функция не будет определена в официальном дистрибутиве. Чтобы использовать эту функцию под Windows, вам придется собрать PHP самостоятельно для включения поддержки OpenSSL.

Замечание:

ftp_ssl_connect() не предназначена для использования по протоколу sFTP. Для использования sFTP из PHP смотрите функцию ssh2_sftp().

Список параметров

host

Адрес FTP-сервера. Этот параметр не должен содержать слеши в конце и префикс ftp:// в начале.

port

Задает порт, на котором устанавливается соединение. Если равен нулю или опущен, по умолчанию используется стандартный для протокола FTP - порт 21.

timeout

Задает тайм-аут для всех операций с этим соединением. По умолчанию тайм-аут устанавливается в 90 секунд. Получить и установить значение тайм-аута можно также с помощью функций ftp_set_option() и ftp_get_option().

Возвращаемые значения

Возвращает SSL-FTP поток в случае успеха или FALSE при возникновении ошибки.

Список изменений

Версия | Описание
5.2.2 | Эта функция теперь возвращает FALSE, если не удалось установить SSL-соединение, вместо прежнего поведения, когда устанавливалось обычное, не SSL-соединение.

Примеры

Пример #1 Пример использования функции ftp_ssl_connect()

<?php

// установка ssl-соединения
$conn_id = ftp_ssl_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if (!$login_result) {
    // В этом случае PHP уже выбросил сообщение уровня E_WARNING
    die("can't login");
}

echo ftp_pwd($conn_id); // /

// закрытие ssl-соединения
ftp_close($conn_id);
?>

Смотрите также

  • ftp_connect() - Устанавливает соединение с FTP-сервером


Возвращает тип операционной системы FTP-сервера

  • « ftp_ssl_connect
  • Gearman »
  • PHP Manual
  • Функции FTP
  • Возвращает тип операционной системы FTP-сервера

ftp_systype

(PHP 4, PHP 5, PHP 7)

ftp_systype — Возвращает тип операционной системы FTP-сервера

Описание

ftp_systype ( resource $ftp_stream ) : string

Возвращает тип операционной системы 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


Gearman

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Базовое использование
    • Базовый клиент и обработчик Gearman, фоновый режим
    • Базовые клиент и обработчик Gearman, отправка задач
  • GearmanClient — Класс GearmanClient
    • GearmanClient::addOptions — Добавить клиентские опции
    • GearmanClient::addServer — Добавить сервер задач для клиента
    • GearmanClient::addServers — Добавить список серверов задач для клиента
    • GearmanClient::addTask — Добавить задачу, которая будет выполнена в параллельном режиме
    • GearmanClient::addTaskBackground — Добавить фоновую задачу для работы в параллельном режиме
    • GearmanClient::addTaskHigh — Добавить высокоприоритетную задачу для работы в параллельном режиме
    • GearmanClient::addTaskHighBackground — Добавить высокоприоритетную фоновую задачу для работы в параллельном режиме
    • GearmanClient::addTaskLow — Добавить низкоприоритетную задачу для работы в параллельном режиме
    • GearmanClient::addTaskLowBackground — Добавить низкоприоритетную фоновую задачу для работы в параллельном режиме
    • GearmanClient::addTaskStatus — Добавить задачу для получения статуса
    • GearmanClient::clearCallbacks — Очистить все функции обратного вызова данной задачи
    • GearmanClient::clone — Создать копию объекта GearmanClient
    • GearmanClient::__construct — Создать экземпляр GearmanClient
    • GearmanClient::context — Возвращает контекст приложения
    • GearmanClient::data — Возвращает данные приложения (функция устарела)
    • GearmanClient::do — Выполняет одну задачу и возвращает результат [Устаревший метод]
    • GearmanClient::doBackground — Запускает выполнение задачи в фоновом режиме
    • GearmanClient::doHigh — Запускает на выполнение задачу с высоким приоритетом
    • GearmanClient::doHighBackground — Запускает на выполнение с высоким приоритетом задачу в фоновом режиме
    • GearmanClient::doJobHandle — Получить дескриптор выполняющейся задачи
    • GearmanClient::doLow — Запускает на выполнение задачу с низким приоритетом
    • GearmanClient::doLowBackground — Запускает на выполнение с низким приоритетом задачу в фоновом режиме
    • GearmanClient::doNormal — Выполняет одиночное задание и возвращает результат
    • GearmanClient::doStatus — Получение статуса выполняющейся задачи
    • GearmanClient::echo — Отправляет данные всем серверам заданий, чтобы проверить отклик [Устаревший метод]
    • GearmanClient::error — Вернуть строку ошибки для последней обнаруженной ошибки
    • GearmanClient::getErrno — Получить значение errno
    • GearmanClient::jobStatus — Получение статуса выполнения фонового задания
    • GearmanClient::ping — Отправляет данные на все серверы, чтобы проверить, какие из них выведут эти данные
    • GearmanClient::removeOptions — Удалить клиентские опции
    • GearmanClient::returnCode — Получить последний код возврата Gearman
    • GearmanClient::runTasks — Запустить список задач в параллельном режиме
    • GearmanClient::setClientCallback — Установить функцию обратного вызова, когда есть пакет данных для задачи (устаревший метод)
    • GearmanClient::setCompleteCallback — Установите функцию, которая будет вызвана по завершении задачи
    • GearmanClient::setContext — Установить контекст приложения
    • GearmanClient::setCreatedCallback — Установить функцию обратного вызова, когда задача ставится в очередь
    • GearmanClient::setData — Установить данные приложения (устаревший метод)
    • GearmanClient::setDataCallback — Задает callback-функцию для обработки переданных данных
    • GearmanClient::setExceptionCallback — Установка функции обратного вызова для перехвата исключений обработчика заданий
    • GearmanClient::setFailCallback — Установка callback-функции для обработки ситуации, когда задание не удалось выполнить
    • GearmanClient::setOptions — Установка настроек клиента
    • GearmanClient::setStatusCallback — Задание callback-функции, собирающей информацию о состоянии обработчика заданий
    • GearmanClient::setTimeout — Установка тайм-аута для операций ввода/вывода
    • GearmanClient::setWarningCallback — Установка callback-функции, обслуживающей предупреждения обработчика заданий
    • GearmanClient::setWorkloadCallback — Установка callback-функции, принимающей промежуточные результаты от обработчика заданий
    • GearmanClient::timeout — Получение значения тайм-аута операций ввода/вывода
  • GearmanJob — Класс GearmanJob
    • GearmanJob::complete — Отправка результата и статуса завершения (устаревший метод)
    • GearmanJob::__construct — Создание объекта GearmanJob
    • GearmanJob::data — Отправка данных (устаревший метод)
    • GearmanJob::exception — Отправка исключения (устаревший метод)
    • GearmanJob::fail — Отправка статуса неудачной операции (устаревший метод)
    • GearmanJob::functionName — Получение имени функции
    • GearmanJob::handle — Получение дескриптора объекта задания
    • GearmanJob::returnCode — Получение последнего кода возврата
    • GearmanJob::sendComplete — Отправка результата и статуса завершения
    • GearmanJob::sendData — Отправка данных выполняющемуся заданию
    • GearmanJob::sendException — Отправка исключения выполняющемуся заданию
    • GearmanJob::sendFail — Отправка статуса неудачной операции
    • GearmanJob::sendStatus — Отправка статуса
    • GearmanJob::sendWarning — Отправка предупреждения
    • GearmanJob::setReturn — Установка возвращаемого значения
    • GearmanJob::status — Отправка статуса задания (устаревший метод)
    • GearmanJob::unique — Получение уникального идентификатора
    • GearmanJob::warning — Отправка предупреждения (устаревший метод)
    • GearmanJob::workload — Получение данных для обработки
    • GearmanJob::workloadSize — Получение размера обрабатываемых данных
  • GearmanTask — Класс GearmanTask
    • GearmanTask::__construct — Создает объект GearmanTask
    • GearmanTask::create — Создает задачу (устаревший метод)
    • GearmanTask::data — Получить данные, возвращенные для задачи
    • GearmanTask::dataSize — Получить размер возвращаемых данных
    • GearmanTask::function — Получить имя связанной функции (устаревший метод)
    • GearmanTask::functionName — Получить имя функции
    • GearmanTask::isKnown — Определение, известно ли серверу об этой задачи
    • GearmanTask::isRunning — Проверяет, выполняется ли задача в данный момент
    • GearmanTask::jobHandle — Получить дескриптор задания
    • GearmanTask::recvData — Чтение данных работы или результата задачи в буфер
    • GearmanTask::returnCode — Получить последний код возврата
    • GearmanTask::sendData — Отправка данных задачи (устаревший метод)
    • GearmanTask::sendWorkload — Отправка данных задачи
    • GearmanTask::taskDenominator — Получить знаменатель процента выполненной работы
    • GearmanTask::taskNumerator — Получение числителя процента выполненной работы
    • GearmanTask::unique — Получение уникального идентификатора задачи
    • GearmanTask::uuid — Получение уникального идентификатора задачи (устаревший метод)
  • GearmanWorker — Класс GearmanWorker
    • GearmanWorker::addFunction — Регистрация и добавление callback-функции
    • GearmanWorker::addOptions — Добавление настроек обработчика
    • GearmanWorker::addServer — Добавление сервера заданий
    • GearmanWorker::addServers — Добавление серверов заданий
    • GearmanWorker::clone — Создание копии обработчика
    • GearmanWorker::__construct — Создание объекта GearmanWorker
    • GearmanWorker::echo — Проверка отклика серверов заданий
    • GearmanWorker::error — Получение последней обнаруженной ошибки
    • GearmanWorker::getErrno — Получение номера ошибки
    • GearmanWorker::options — Получение настроек обработчика
    • GearmanWorker::register — Регистрация функции на сервере заданий
    • GearmanWorker::removeOptions — Удаление настроек обработчика
    • GearmanWorker::returnCode — Получение последнего кода возврата Gearman
    • GearmanWorker::setId — Назначает обработчику идентификатор, чтобы в дальнейшем иметь возможность опросить все доступные обработчики
    • GearmanWorker::setOptions — Установка настроек обработчика
    • GearmanWorker::setTimeout — Задание тайм-аута ожидания ввода/вывода на сокете
    • GearmanWorker::timeout — Получение значения тайм-аута ожидания запросов на сокете
    • GearmanWorker::unregister — Удалить регистрацию имени функции на всех серверах заданий
    • GearmanWorker::unregisterAll — Удаление регистрации всех имен функций на серверах заданий
    • GearmanWorker::wait — Ожидание запроса с одного из сервера задач
    • GearmanWorker::work — Ожидание и выполнение заданий
  • GearmanException — Класс GearmanException


Введение

» Gearman это универсальный фреймворк разработки приложений для раздачи работ множеству машин или процессов. Это позволяет приложениям выполнять задачи параллельно, распределяя нагрузку и использовать функции различных языков. Фреймворк может использоваться во множестве приложений, от высоконадежных веб-сайтов до транспорта событий репликации базы данных.

Это расширение предоставляет классы для написания клиентов и обработчиков Gearman.


Требования

Это расширение требует библиотеки » libgearman, » libevent и » uuid и запущенного Gearman сервера.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/gearman


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Возвращаемые значения. Всегда проверяйте значение GearmanClient::error() или GearmanWorker(), содержащее строку с описанием ошибки, так как в этой строке может содержаться более детальная информация о последней операции:

GEARMAN_SUCCESS (integer)
Операция была завершена успешно.
GEARMAN_IO_WAIT (integer)
В режиме без блокировок событие ожидает установку блокировки.
GEARMAN_ERRNO (integer)
Системная ошибка. Чтобы получить код ошибки, воспользуйтесь функцией GearmanClient::errno() или GearmanWorker::errno().
GEARMAN_NO_ACTIVE_FDS (integer)
На момент вызова GearmanClient::wait() или GearmanWorker() не было активных подключений.
GEARMAN_UNEXPECTED_PACKET (integer)
Означает, что что-то пошло совсем не так, как должно было. Применимо только к GearmanWorker.
GEARMAN_GETADDRINFO (integer)
Неудачная операция разрешения имен DNS (неверный порт, хост и т.п.).
GEARMAN_NO_SERVERS (integer)
Перед отправкой задания или задачи не был вызван метод GearmanClient::addServer().
GEARMAN_LOST_CONNECTION (integer)
Во время обработки запроса прервалось соединение.
GEARMAN_MEMORY_ALLOCATION_FAILURE (integer)
Не удалось выделить память (недостаточно памяти).
GEARMAN_SERVER_ERROR (integer)
На сервере Gearman произошел сбой, и сервер не смог обработать запрос.
GEARMAN_WORK_DATA (integer)
Код возврата уведомления, который можно получить методом GearmanClient::returnCode() во время работы GearmanClient::do(). Выполняющий задание обработчик (worker) посылает этот код, когда ему требуется обновить данные на клиенте, передать часть результатов работы или сбросить данные во время выполнения долгих заданий.
GEARMAN_WORK_WARNING (integer)
Код возврата уведомления, который можно получить методом GearmanClient::returnCode() во время работы GearmanClient::do(). Обновляет клиент с отправкой предупреждением. Поведение те же, что и в случае GEARMAN_WORK_DATA, однако этот код следует интерпретировать как предупреждение вместо обычных данных ответа.
GEARMAN_WORK_STATUS (integer)
Код возврата уведомления, который можно получить методом GearmanClient::returnCode() во время работы GearmanClient::do(). Обработчик задания посылает этот код, чтобы обновить статус долго выполняемого задания. Используйте GearmanClient::doStatus() для получения процента завершения работы.
GEARMAN_WORK_EXCEPTION (integer)
Код возврата уведомления, который можно получить методом GearmanClient::returnCode() во время работы GearmanClient::do(). Указывает, что выполнение задания завершилось неудачей с заданным исключением.
GEARMAN_WORK_FAIL (integer)
Код возврата уведомления, который можно получить методом GearmanClient::returnCode() во время работы GearmanClient::do(). Указывает, что задание выполнить не удалось.
GEARMAN_COULD_NOT_CONNECT (integer)
Не удалось подключиться к серверу.
GEARMAN_INVALID_FUNCTION_NAME (integer)
Это значение возвращается при попытке зарегистрировать NULL в качестве имени функции или при использовании callback-интерфейса без указания callback-функций.
GEARMAN_INVALID_WORKER_FUNCTION (integer)
Попытка зарегистрировать в обработчике функцию, передавая NULL в качестве callback-функции.
GEARMAN_NO_REGISTERED_FUNCTIONS (integer)
Когда обработчик получил задание для функции, которая в нем не зарегистрирована.
GEARMAN_NO_JOBS (integer)
Для неблокирующего обработчика, когда GearmanWorker::work() не имеет активных заданий.
GEARMAN_ECHO_DATA_CORRUPTION (integer)
Указывает, что после вызова GearmanClient::echo() или GearmanWorker::echo() возвращенные данные не соответствуют переданным.
GEARMAN_NEED_WORKLOAD_FN (integer)
Когда клиент выбрал потоковый режим передачи данных для обработки, но не задал callback-функцию для обработки данных из этого потока.
GEARMAN_PAUSE (integer)
При работе в неблокирующем режиме, это значение может вернуть callback-функция, чтобы приостановить обработку задания и выйти из метода GearmanClient::runTasks(). Чтобы продолжить работу, следует еще раз вызвать метод GearmanClient::runTasks().
GEARMAN_UNKNOWN_STATE (integer)
Внутренняя ошибка клиента/обработчика.
GEARMAN_SEND_BUFFER_TOO_SMALL (integer)
Внутренняя ошибка: попытка передать больше данных, чем помещается в один чанк. Размеры буфера жестко заданы и не подлежат изменению.
GEARMAN_TIMEOUT (integer)
Превышен тайм-аут ожидания, заданный клиентом/обработчиком.

Настройки GearmanClient:

GEARMAN_CLIENT_GENERATE_UNIQUE (integer)
Создавать уникальный идентификатор (UUID) для каждой задачи.
GEARMAN_CLIENT_NON_BLOCKING (integer)
Запускать клиента в неблокирующем режиме.
GEARMAN_CLIENT_UNBUFFERED_RESULT (integer)
Позволять клиенту читать данные и посылать их обратно в чанках вместо буферизации данных целиком средствами библиотеки.
GEARMAN_CLIENT_FREE_TASKS (integer)
Автоматически уничтожать объекты задач после их выполнения. Эта настройка используется по умолчанию, чтобы предотвратить утечки памяти.

Настройки GearmanWorker:

GEARMAN_WORKER_NON_BLOCKING (integer)
Запускать обработчик заданий в неблокирующем режиме.
GEARMAN_WORKER_GRAB_UNIQ (integer)
Возвращать клиенту уникальный идентификатор в дополнение к дескриптору задания.

Базовая конфигурация Gearman:

GEARMAN_DEFAULT_TCP_HOST (string)
GEARMAN_DEFAULT_TCP_PORT (integer)
GEARMAN_DEFAULT_SOCKET_TIMEOUT (integer)
GEARMAN_DEFAULT_SOCKET_SEND_SIZE (integer)
GEARMAN_DEFAULT_SOCKET_RECV_SIZE (integer)
GEARMAN_MAX_ERROR_SIZE (integer)
GEARMAN_PACKET_HEADER_SIZE (integer)
GEARMAN_JOB_HANDLE_SIZE (integer)
GEARMAN_OPTION_SIZE (integer)
GEARMAN_UNIQUE_SIZE (integer)
GEARMAN_MAX_COMMAND_ARGS (integer)
GEARMAN_ARGS_BUFFER_SIZE (integer)
GEARMAN_SEND_BUFFER_SIZE (integer)
GEARMAN_RECV_BUFFER_SIZE (integer)
GEARMAN_WORKER_WAIT_TIMEOUT (integer)


Примеры

Содержание

  • Базовое использование
  • Базовый клиент и обработчик Gearman, фоновый режим
  • Базовые клиент и обработчик Gearman, отправка задач


Базовое использование

Пример #1 Базовый клиент и обработчик Gearman

Этот пример демонстрирует базовую работу с клиентом и его обработчиком. Клиент отправляет строку серверу заданий, обработчик переворачивает строку и отсылает ее назад. Операция выполняется синхронно.

<?php

# Создание клиентского объекта
$gmclient= new GearmanClient();

# Указание сервера по умолчанию (localhost).
$gmclient->addServer();

echo "Sending job\n";

# Отправка задания обратно
do
{
  $result = $gmclient->doNormal("reverse", "Hello!");

  # Проверка на различные возвращаемые пакеты и ошибки.
  switch($gmclient->returnCode())
  {
    case GEARMAN_WORK_DATA:
      echo "Data: $result\n";
      break;
    case GEARMAN_WORK_STATUS:
      list($numerator, $denominator)= $gmclient->doStatus();
      echo "Status: $numerator/$denominator complete\n";
      break;
    case GEARMAN_WORK_FAIL:
      echo "Failed\n";
      exit;
    case GEARMAN_SUCCESS:
      echo "Success: $result\n";
      break;
    default:
      echo "RET: " . $gmclient->returnCode() . "\n";
      exit;
  }
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

?>
<?php

echo "Starting\n";

# Создание нового обработчика.
$gmworker= new GearmanWorker();

# Добавление сервера по умолчанию (localhost).
$gmworker->addServer();

# Регистрация функции "reverse" на сервере. Изменение функции обработчика на
# "reverse_fn_fast" для более быстрой обработки без вывода.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Received job: " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Workload: $workload ($workload_size)\n";

  # Этот цикл не является необходимым, но показывает как выполняется работа
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Sending status: " . ($x + 1) . "/$workload_size complete\n";
    $job->sendStatus($x, $workload_size);
    sleep(1);
  }

  $result= strrev($workload);
  echo "Result: $result\n";

  # Возвращаем, когда необходимо отправить результат обратно клиенту.
  return $result;
}

# Гораздо более простая и менее подробная версия вышеприведенной функции выглядит так:
function reverse_fn_fast($job)
{
  return strrev($job->workload());
}

?>

Результатом выполнения данного примера будет что-то подобное:

% php reverse_worker.php
Starting
Waiting for job...
Received job: H:foo.local:36
Workload: Hello! (6)
Sending status: 1/6 complete
Sending status: 2/6 complete
Sending status: 3/6 complete
Sending status: 4/6 complete
Sending status: 5/6 complete
Sending status: 6/6 complete
Result: !olleH

% php reverse_client.php
Starting
Sending job
Status: 1/6 complete
Status: 2/6 complete
Status: 3/6 complete
Status: 4/6 complete
Status: 5/6 complete
Status: 6/6 complete
Success: !olleH


Базовый клиент и обработчик Gearman, фоновый режим

Пример #1 Базовый клиент и обработчик Gearman, фоновый режим

Этот пример демонстрирует базовую работу с клиентом и его обработчиком. Клиент отправляет строку серверу выполнения заданий в виде фоновой задачи, а обработчик переворачивает строку. Обратите внимание, что работа выполняется асинхронно, т.е. клиент не ждет завершения задания, а сразу отключается (а значит и не получает результат).

<?php

# создание объекта
$gmclient= new GearmanClient();

# указание сервера по умолчанию (localhost)
$gmclient->addServer();

# выполнение в фоновом режиме
$job_handle = $gmclient->doBackground("reverse", "this is a test");

if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
  echo "bad return code\n";
  exit;
}

echo "done!\n";

?>
<?php

echo "Starting\n";

# Создание обработчика.
$gmworker= new GearmanWorker();

# Указание сервера по умолчанию (localhost).
$gmworker->addServer();

# Регистрация функции "reverse" на сервере. Изменение функции обработчика на
# "reverse_fn_fast" для более быстрой обработки без вывода.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Received job: " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Workload: $workload ($workload_size)\n";

  # Этот цикл не является необходимым, но показывает как выполняется работа
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Sending status: " . ($x + 1) . "/$workload_size complete\n";
    $job->sendStatus($x, $workload_size);
    sleep(1);
  }

  $result= strrev($workload);
  echo "Result: $result\n";

  # Возвращаем, когда необходимо отправить результат обратно клиенту.
  return $result;
}

# Гораздо более простая и менее подробная версия вышеприведенной функции выглядит так:
function reverse_fn_fast($job)
{
  return strrev($job->workload());
}

?>

Результатом выполнения данного примера будет что-то подобное:

% php reverse_worker.php
Starting
Waiting for job...
Received job: H:foo.local:41
Workload: this is a test (14)
1/14 complete
2/14 complete
3/14 complete
4/14 complete
5/14 complete
6/14 complete
7/14 complete
8/14 complete
9/14 complete
10/14 complete
11/14 complete
12/14 complete
13/14 complete
14/14 complete
Result: tset a si siht

% php reverse_client_bg.php
done!


Базовые клиент и обработчик Gearman, отправка задач

Пример #1 Базовые клиент и обработчик Gearman, отправка задач

В этом примере наш базовый клиент переворачивания строки расширен так, чтобы выполнять две задачи параллельно. Обработчик переворачивания строки не изменен, за исключением добавления отправляемых обратно данных во время обработки.

<?php

# создание клиента gearman
$gmc= new GearmanClient();

# указание сервера по умолчанию (localhost)
$gmc->addServer();

# регистрация функций обратного вызова
$gmc->setCreatedCallback("reverse_created");
$gmc->setDataCallback("reverse_data");
$gmc->setStatusCallback("reverse_status");
$gmc->setCompleteCallback("reverse_complete");
$gmc->setFailCallback("reverse_fail");

# указание неких произвольных данных
$data['foo'] = 'bar';

# добавление двух заданий
$task= $gmc->addTask("reverse", "foo", $data);
$task2= $gmc->addTaskLow("reverse", "bar", NULL);

# выполнение заданий параллельно (использование двух обработчиков)
if (! $gmc->runTasks())
{
    echo "ERROR " . $gmc->error() . "\n";
    exit;
}

echo "DONE\n";

function reverse_created($task)
{
    echo "CREATED: " . $task->jobHandle() . "\n";
}

function reverse_status($task)
{
    echo "STATUS: " . $task->jobHandle() . " - " . $task->taskNumerator() .
         "/" . $task->taskDenominator() . "\n";
}

function reverse_complete($task)
{
    echo "COMPLETE: " . $task->jobHandle() . ", " . $task->data() . "\n";
}

function reverse_fail($task)
{
    echo "FAILED: " . $task->jobHandle() . "\n";
}

function reverse_data($task)
{
    echo "DATA: " . $task->data() . "\n";
}

?>
<?php

echo "Starting\n";

# Создание обработчика.
$gmworker= new GearmanWorker();

# Указание сервера по умолчанию  (localhost).
$gmworker->addServer();

# Регистрация функции "reverse" на сервере. Изменение функции обработчика на
# "reverse_fn_fast" для более быстрой обработки без вывода.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Received job: " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Workload: $workload ($workload_size)\n";

  # Этот цикл не является необходимым, но показывает как выполняется работа
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Sending status: " . ($x + 1) . "/$workload_size complete\n";
    $job->sendStatus($x+1, $workload_size);
    $job->sendData(substr($workload, $x, 1));
    sleep(1);
  }

  $result= strrev($workload);
  echo "Result: $result\n";

  # Возвращаем, когда необходимо отправить результат обратно клиенту.
  return $result;
}

# Гораздо более простая и менее подробная версия вышеприведенной функции выглядит так:
function reverse_fn_fast($job)
{
  return strrev($job->workload());
}

?>

Результатом выполнения данного примера будет что-то подобное:

% php reverse_worker.php
Starting
Waiting for job...
Received job: H:foo.local:45
Workload: foo (3)
1/3 complete
2/3 complete
3/3 complete
Result: oof
Received job: H:foo.local:44
Workload: bar (3)
1/3 complete
2/3 complete
3/3 complete
Result: rab

% php reverse_client_task.php
CREATED: H:foo.local:44
CREATED: H:foo.local:45
STATUS: H:foo.local:45 - 1/3
DATA: f
STATUS: H:foo.local:45 - 2/3
DATA: o
STATUS: H:foo.local:45 - 3/3
DATA: o
COMPLETE: H:foo.local:45, oof
STATUS: H:foo.local:44 - 1/3
DATA: b
STATUS: H:foo.local:44 - 2/3
DATA: a
STATUS: H:foo.local:44 - 3/3
DATA: r
COMPLETE: H:foo.local:44, rab
DONE


Класс GearmanClient

(PECL gearman >= 0.5.0)

Введение

Представляет собой класс для подключения к серверу заданий Gearman и создания запросов для выполнения некоторой функции по предоставленным данным. Выполняемая функция должна быть зарегистрирована обработчиком (worker) Gearman и передаваемые данные являются непрозрачными для сервера заданий.

Обзор классов

GearmanClient {
/* Методы */
public addOptions ( int $options ) : bool
public addServer ([ string $host = 127.0.0.1 [, int $port = 4730 ]] ) : bool
public addServers ([ string $servers = 127.0.0.1:4730 ] ) : bool
public addTask ( string $function_name , string $workload [, mixed &$context [, string $unique ]] ) : GearmanTask
public addTaskBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] ) : GearmanTask
public addTaskHigh ( string $function_name , string $workload [, mixed &$context [, string $unique ]] ) : GearmanTask
public addTaskHighBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] ) : GearmanTask
public addTaskLow ( string $function_name , string $workload [, mixed &$context [, string $unique ]] ) : GearmanTask
public addTaskLowBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] ) : GearmanTask
public addTaskStatus ( string $job_handle [, string &$context ] ) : GearmanTask
public clearCallbacks ( void ) : bool
public clone ( void ) : GearmanClient
public __construct ( void )
public context ( void ) : string
public data ( void ) : string
public do ( string $function_name , string $workload [, string $unique ] ) : string
public doBackground ( string $function_name , string $workload [, string $unique ] ) : string
public doHigh ( string $function_name , string $workload [, string $unique ] ) : string
public doHighBackground ( string $function_name , string $workload [, string $unique ] ) : string
public doJobHandle ( void ) : string
public doLow ( string $function_name , string $workload [, string $unique ] ) : string
public doLowBackground ( string $function_name , string $workload [, string $unique ] ) : string
public doNormal ( string $function_name , string $workload [, string $unique ] ) : string
public doStatus ( void ) : array
public echo ( string $workload ) : bool
public error ( void ) : string
public getErrno ( void ) : int
public jobStatus ( string $job_handle ) : array
public ping ( string $workload ) : bool
public removeOptions ( int $options ) : bool
public returnCode ( void ) : int
public runTasks ( void ) : bool
public setClientCallback ( callable $callback ) : void
public setCompleteCallback ( callable $callback ) : bool
public setContext ( string $context ) : bool
public setCreatedCallback ( string $callback ) : bool
public setData ( string $data ) : bool
public setDataCallback ( callable $callback ) : bool
public setExceptionCallback ( callable $callback ) : bool
public setFailCallback ( callable $callback ) : bool
public setOptions ( int $options ) : bool
public setStatusCallback ( callable $callback ) : bool
public setTimeout ( int $timeout ) : bool
public setWarningCallback ( callable $callback ) : bool
public setWorkloadCallback ( callable $callback ) : bool
public timeout ( void ) : int
}

Содержание

  • GearmanClient::addOptions — Добавить клиентские опции
  • GearmanClient::addServer — Добавить сервер задач для клиента
  • GearmanClient::addServers — Добавить список серверов задач для клиента
  • GearmanClient::addTask — Добавить задачу, которая будет выполнена в параллельном режиме
  • GearmanClient::addTaskBackground — Добавить фоновую задачу для работы в параллельном режиме
  • GearmanClient::addTaskHigh — Добавить высокоприоритетную задачу для работы в параллельном режиме
  • GearmanClient::addTaskHighBackground — Добавить высокоприоритетную фоновую задачу для работы в параллельном режиме
  • GearmanClient::addTaskLow — Добавить низкоприоритетную задачу для работы в параллельном режиме
  • GearmanClient::addTaskLowBackground — Добавить низкоприоритетную фоновую задачу для работы в параллельном режиме
  • GearmanClient::addTaskStatus — Добавить задачу для получения статуса
  • GearmanClient::clearCallbacks — Очистить все функции обратного вызова данной задачи
  • GearmanClient::clone — Создать копию объекта GearmanClient
  • GearmanClient::__construct — Создать экземпляр GearmanClient
  • GearmanClient::context — Возвращает контекст приложения
  • GearmanClient::data — Возвращает данные приложения (функция устарела)
  • GearmanClient::do — Выполняет одну задачу и возвращает результат [Устаревший метод]
  • GearmanClient::doBackground — Запускает выполнение задачи в фоновом режиме
  • GearmanClient::doHigh — Запускает на выполнение задачу с высоким приоритетом
  • GearmanClient::doHighBackground — Запускает на выполнение с высоким приоритетом задачу в фоновом режиме
  • GearmanClient::doJobHandle — Получить дескриптор выполняющейся задачи
  • GearmanClient::doLow — Запускает на выполнение задачу с низким приоритетом
  • GearmanClient::doLowBackground — Запускает на выполнение с низким приоритетом задачу в фоновом режиме
  • GearmanClient::doNormal — Выполняет одиночное задание и возвращает результат
  • GearmanClient::doStatus — Получение статуса выполняющейся задачи
  • GearmanClient::echo — Отправляет данные всем серверам заданий, чтобы проверить отклик [Устаревший метод]
  • GearmanClient::error — Вернуть строку ошибки для последней обнаруженной ошибки
  • GearmanClient::getErrno — Получить значение errno
  • GearmanClient::jobStatus — Получение статуса выполнения фонового задания
  • GearmanClient::ping — Отправляет данные на все серверы, чтобы проверить, какие из них выведут эти данные
  • GearmanClient::removeOptions — Удалить клиентские опции
  • GearmanClient::returnCode — Получить последний код возврата Gearman
  • GearmanClient::runTasks — Запустить список задач в параллельном режиме
  • GearmanClient::setClientCallback — Установить функцию обратного вызова, когда есть пакет данных для задачи (устаревший метод)
  • GearmanClient::setCompleteCallback — Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setContext — Установить контекст приложения
  • GearmanClient::setCreatedCallback — Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setData — Установить данные приложения (устаревший метод)
  • GearmanClient::setDataCallback — Задает callback-функцию для обработки переданных данных
  • GearmanClient::setExceptionCallback — Установка функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback — Установка callback-функции для обработки ситуации, когда задание не удалось выполнить
  • GearmanClient::setOptions — Установка настроек клиента
  • GearmanClient::setStatusCallback — Задание callback-функции, собирающей информацию о состоянии обработчика заданий
  • GearmanClient::setTimeout — Установка тайм-аута для операций ввода/вывода
  • GearmanClient::setWarningCallback — Установка callback-функции, обслуживающей предупреждения обработчика заданий
  • GearmanClient::setWorkloadCallback — Установка callback-функции, принимающей промежуточные результаты от обработчика заданий
  • GearmanClient::timeout — Получение значения тайм-аута операций ввода/вывода


Добавить клиентские опции

  • « GearmanClient
  • GearmanClient::addServer »
  • PHP Manual
  • GearmanClient
  • Добавить клиентские опции

GearmanClient::addOptions

(PECL gearman >= 0.6.0)

GearmanClient::addOptions — Добавить клиентские опции

Описание

public GearmanClient::addOptions ( int $options ) : bool

Добавляет одну или несколько опций к уже установленным.

Список параметров

options

Опции для добавления. Одна из следующих констант или их комбинация с помощью двоичного оператора OR (|): GEARMAN_CLIENT_GENERATE_UNIQUE, GEARMAN_CLIENT_NON_BLOCKING, GEARMAN_CLIENT_UNBUFFERED_RESULT или GEARMAN_CLIENT_FREE_TASKS.

Возвращаемые значения

Всегда возвращает TRUE.


Добавить сервер задач для клиента

  • « GearmanClient::addOptions
  • GearmanClient::addServers »
  • PHP Manual
  • GearmanClient
  • Добавить сервер задач для клиента

GearmanClient::addServer

(PECL gearman >= 0.5.0)

GearmanClient::addServer — Добавить сервер задач для клиента

Описание

public GearmanClient::addServer ([ string $host = 127.0.0.1 [, int $port = 4730 ]] ) : bool

Добавляет сервер задач к списку серверов, которые могут использоваться для выполнения задачи. Никаких операций ввода-вывода c сокетом здесь не происходит. Сервер просто добавляется к списку.

Список параметров

host

Имя хоста сервера задач.

port

Порт сервера задач.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Добавление двух серверов задач

<?php

# Создаем клиентский объект
$gmclient= new GearmanClient();

# Добавляем два сервера задач, первый из них работает по умолчанию на порту 4730
$gmclient->addServer("10.0.0.1");
$gmclient->addServer("10.0.0.2", 7003);

?>

Смотрите также

  • GearmanClient::addServers() - Добавить список серверов задач для клиента


Добавить список серверов задач для клиента

  • « GearmanClient::addServer
  • GearmanClient::addTask »
  • PHP Manual
  • GearmanClient
  • Добавить список серверов задач для клиента

GearmanClient::addServers

(PECL gearman >= 0.5.0)

GearmanClient::addServers — Добавить список серверов задач для клиента

Описание

public GearmanClient::addServers ([ string $servers = 127.0.0.1:4730 ] ) : bool

Добавляет список серверов задач, которые могут использоваться для выполнения задачи. Никаких операций ввода-вывода c сокетом здесь не происходит. Сервера просто добавляются к полному списку серверов.

Список параметров

servers

Список серверов, разделенных запятыми. Каждый сервер указан в формате 'host:port'.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Добавление двух серверов задач

<?php

# Создаем наш клиентский объект
$gmclient= new GearmanClient();

# Добавляем несколько серверов задач, первый из них работает по умолчанию на порту 4730
$gmclient->addServers("10.0.0.1,10.0.0.2:7003");

?>

Смотрите также

  • GearmanClient::addServer() - Добавить сервер задач для клиента


Добавить задачу, которая будет выполнена в параллельном режиме

  • « GearmanClient::addServers
  • GearmanClient::addTaskBackground »
  • PHP Manual
  • GearmanClient
  • Добавить задачу, которая будет выполнена в параллельном режиме

GearmanClient::addTask

(PECL gearman >= 0.5.0)

GearmanClient::addTask — Добавить задачу, которая будет выполнена в параллельном режиме

Описание

public GearmanClient::addTask ( string $function_name , string $workload [, mixed &$context [, string $unique ]] ) : GearmanTask

Добавляет задачу для параллельной работы с другими задачами. Вызовите этот метод для всех задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ. Обратите внимание, что должно быть достаточное количество обработчиков для одновременного выполнения всех задач.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Объект GearmanTask или FALSE, если задача не может быть добавлена.

Примеры

Пример #1 Основное представление двух задач

<?php

# Создаем нашего клиента
$gmclient= new GearmanClient();

# Добавляем сервер задач по умолчанию
$gmclient->addServer();

# Устанавливаем функцию, которая будет вызвана по завершению работы
$gmclient->setCompleteCallback("complete");

# Добавляем задачу для выполнения функции reverse, переворачивающей строку "Hello World!"
$gmclient->addTask("reverse", "Hello World!", null, "1");

# Добавляем другую задачу, для выполнения функции reverse, переворачивающей строку "!dlroW olleH"
$gmclient->addTask("reverse", "!dlroW olleH", null, "2");

# Выполняем задачи
$gmclient->runTasks();

function complete($task)
{
  print "Выполнено: " . $task->unique() . ", " . $task->data() . "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Выполнено: 2, Hello World!
Выполнено: 1, !dlroW olleH

Пример #2 Основное представление двух задач с передачей контекста приложения

<?php

$client = new GearmanClient();
$client->addServer();

# Устанавливаем функцию, которая будет вызвана по завершению работы
$client->setCompleteCallback("reverse_complete");

# Добавим несколько задач и местоположение результатов
$results = array();
$client->addTask("reverse", "Hello World!", &$results, "t1");
$client->addTask("reverse", "!dlroW olleH", &$results, "t2");

$client->runTasks();

# Результаты должны быть заполнены из callback-функций
foreach ($results as $id => $result)
   echo $id . ": " . $result['handle'] . ", " . $result['data'] . "\n";

function reverse_complete($task, $results)
{
   $results[$task->unique()] = array("handle"=>$task->jobHandle(), "data"=>$task->data());
}

?>

Результатом выполнения данного примера будет что-то подобное:

t2: H.foo:21, Hello World!
t1: H:foo:22, !dlroW olleH

Смотрите также

  • GearmanClient::addTaskHigh() - Добавить высокоприоритетную задачу для работы в параллельном режиме
  • GearmanClient::addTaskLow() - Добавить низкоприоритетную задачу для работы в параллельном режиме
  • GearmanClient::addTaskBackground() - Добавить фоновую задачу для работы в параллельном режиме
  • GearmanClient::addTaskHighBackground() - Добавить высокоприоритетную фоновую задачу для работы в параллельном режиме
  • GearmanClient::addTaskLowBackground() - Добавить низкоприоритетную фоновую задачу для работы в параллельном режиме
  • GearmanClient::runTasks() - Запустить список задач в параллельном режиме


Добавить фоновую задачу для работы в параллельном режиме

  • « GearmanClient::addTask
  • GearmanClient::addTaskHigh »
  • PHP Manual
  • GearmanClient
  • Добавить фоновую задачу для работы в параллельном режиме

GearmanClient::addTaskBackground

(PECL gearman >= 0.5.0)

GearmanClient::addTaskBackground — Добавить фоновую задачу для работы в параллельном режиме

Описание

public GearmanClient::addTaskBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] ) : GearmanTask

Добавляет фоновую задачу для параллельной работы с другими задачами. Вызовите этот метод для всех задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Объект GearmanTask или FALSE, если задача не может быть добавлена.

Примеры

Пример #1 Две задачи, одна в фоновом режиме, а другая нет

Этот пример иллюстрирует различие между выполнением фоновой задачи и обычной задачей. Клиент добавляет две задачи для выполнения одних и тех же функций, но одна добавлена с помощью addTaskBackground(). Callback-функция установлена так, чтобы выполнение задания можно было проследить. Простой обработчик с искусственной задержкой сообщает статус выполнения задания, и клиент понимает это посредством вызова callback-функции. Два обработчика запущены для этого примера. Обратите внимание, что фоновая задача не показывается в клиентском выводе.

<?php

# Клиентский скрипт

# Создание нашего клиента
$gmc= new GearmanClient();

# Добавление сервера задач по умолчанию
$gmc->addServer();

# Установка нескольких callback-функций. Таким образом, мы сможем отслеживать выполнение
$gmc->setCompleteCallback("reverse_complete");
$gmc->setStatusCallback("reverse_status");

# Добавление задачи для функции reverse
$task= $gmc->addTask("reverse", "Hello World!", null, "1");

# Добавление другой задачи, но она предназначена для запуска в фоновом режиме
$task= $gmc->addTaskBackground("reverse", "!dlroW olleH", null, "2");

if (! $gmc->runTasks())
{
    echo "Ошибка " . $gmc->error() . "\n";
    exit;
}

echo "Выполнено\n";

function reverse_status($task)
{
    echo "Статус: " . $task->unique() . ", " . $task->jobHandle() . " - " . $task->taskNumerator() .
         "/" . $task->taskDenominator() . "\n";
}

function reverse_complete($task)
{
    echo "Завершено: " . $task->unique() . ", " . $task->data() . "\n";
}

?>
<?php

# Скрипт обработчика

echo "Начало\n";

# Создаем наш объект обработчика
$gmworker= new GearmanWorker();

# Добавление сервера задач по умолчанию (localhost).
$gmworker->addServer();

# Регистрируем функцию reverse на сервере
$gmworker->addFunction("reverse", "reverse_fn");

print "Ожидание задачи...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "код возврата: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Полученная задача: " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Рабочая нагрузка: $workload ($workload_size)\n";

  # В этом цикле для отображения статуса нет необходимости. Просто для демонстрации, как это работает
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Отправка статуса: " . ($x + 1) . "/$workload_size выполнено\n";
    $job->sendStatus($x+1, $workload_size);
    $job->sendData(substr($workload, $x, 1));
    sleep(1);
  }

  $result= strrev($workload);
  echo "Результат: $result\n";

  # Возвращаем то, что мы хотим вернуть клиенту
  return $result;
}

?>

Вывод рабочего для двух запущенных работников:

Полученная задача: H:foo.local:65
Рабочая нагрузка: !dlroW olleH (12)
1/12 выполнено
Полученная задача: H:foo.local:66
Рабочая нагрузка: Hello World! (12)
Отправка статуса: 1/12 выполнено
Отправка статуса: 2/12 выполнено
Отправка статуса: 2/12 выполнено
Отправка статуса: 3/12 выполнено
Отправка статуса: 3/12 выполнено
Отправка статуса: 4/12 выполнено
Отправка статуса: 4/12 выполнено
Отправка статуса: 5/12 выполнено
Отправка статуса: 5/12 выполнено
Отправка статуса: 6/12 выполнено
Отправка статуса: 6/12 выполнено
Отправка статуса: 7/12 выполнено
Отправка статуса: 7/12 выполнено
Отправка статуса: 8/12 выполнено
Отправка статуса: 8/12 выполнено
Отправка статуса: 9/12 выполнено
Отправка статуса: 9/12 выполнено
Отправка статуса: 10/12 выполнено
Отправка статуса: 10/12 выполнено
Отправка статуса: 11/12 выполнено
Отправка статуса: 11/12 выполнено
Отправка статуса: 12/12 выполнено
Отправка статуса: 12/12 выполнено
Результат: !dlroW olleH
Результат: Hello World!

Клиент выводит:

Статус: 1, H:foo.local:66 - 1/12
Статус: 1, H:foo.local:66 - 2/12
Статус: 1, H:foo.local:66 - 3/12
Статус: 1, H:foo.local:66 - 4/12
Статус: 1, H:foo.local:66 - 5/12
Статус: 1, H:foo.local:66 - 6/12
Статус: 1, H:foo.local:66 - 7/12
Статус: 1, H:foo.local:66 - 8/12
Статус: 1, H:foo.local:66 - 9/12
Статус: 1, H:foo.local:66 - 10/12
Статус: 1, H:foo.local:66 - 11/12
Статус: 1, H:foo.local:66 - 12/12
Завершено: 1, !dlroW olleH
Выполнено

Смотрите также

  • GearmanClient::addTask() - Добавить задачу, которая будет выполнена в параллельном режиме
  • GearmanClient::addTaskHigh() - Добавить высокоприоритетную задачу для работы в параллельном режиме
  • GearmanClient::addTaskLow() - Добавить низкоприоритетную задачу для работы в параллельном режиме
  • GearmanClient::addTaskHighBackground() - Добавить высокоприоритетную фоновую задачу для работы в параллельном режиме
  • GearmanClient::addTaskLowBackground() - Добавить низкоприоритетную фоновую задачу для работы в параллельном режиме
  • GearmanClient::runTasks() - Запустить список задач в параллельном режиме


Добавить высокоприоритетную задачу для работы в параллельном режиме

  • « GearmanClient::addTaskBackground
  • GearmanClient::addTaskHighBackground »
  • PHP Manual
  • GearmanClient
  • Добавить высокоприоритетную задачу для работы в параллельном режиме

GearmanClient::addTaskHigh

(PECL gearman >= 0.5.0)

GearmanClient::addTaskHigh — Добавить высокоприоритетную задачу для работы в параллельном режиме

Описание

public GearmanClient::addTaskHigh ( string $function_name , string $workload [, mixed &$context [, string $unique ]] ) : GearmanTask

Добавляет высокоприоритетную задачу для параллельной работы с другими задачами. Вызовите этот метод для всех высокоприоритетных задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ. Задачи с высоким приоритетом будут выбраны из очереди раньше задач с нормальным или низким приоритетом.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Объект GearmanTask или FALSE, если задача не может быть добавлена.

Примеры

Пример #1 Высокоприоритетная задача вместе с двумя обычными задачами

Высокоприоритетная задача включена в число двух других задач. Доступен единственный обработчик, так что задачи запускаются одна за другой, высокоприоритетные задачи выполняются в первую очередь.

<?php

# создание клиента
$gmc= new GearmanClient();

# добавление сервера задач по умолчанию
$gmc->addServer();

# установка callback-функции для уведомления о завершении задачи
$gmc->setCompleteCallback("reverse_complete");

# добавление задач, одна из которых высокоприоритетная
$task= $gmc->addTask("reverse", "Hello World!", null, "1");
$task= $gmc->addTaskHigh("reverse", "!dlroW olleH", null, "2");
$task= $gmc->addTask("reverse", "Hello World!", null, "3");

if (! $gmc->runTasks())
{
    echo "Ошибка " . $gmc->error() . "\n";
    exit;
}
echo "Выполнено\n";

function reverse_complete($task)
{
    echo "Завершено: " . $task->unique() . ", " . $task->data() . "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Завершено: 2, Hello World!
Завершено: 3, !dlroW olleH
Завершено: 1, !dlroW olleH
Выполнено

Смотрите также

  • GearmanClient::addTask() - Добавить задачу, которая будет выполнена в параллельном режиме
  • GearmanClient::addTaskLow() - Добавить низкоприоритетную задачу для работы в параллельном режиме
  • GearmanClient::addTaskBackground() - Добавить фоновую задачу для работы в параллельном режиме
  • GearmanClient::addTaskHighBackground() - Добавить высокоприоритетную фоновую задачу для работы в параллельном режиме
  • GearmanClient::addTaskLowBackground() - Добавить низкоприоритетную фоновую задачу для работы в параллельном режиме
  • GearmanClient::runTasks() - Запустить список задач в параллельном режиме


Добавить высокоприоритетную фоновую задачу для работы в параллельном режиме

  • « GearmanClient::addTaskHigh
  • GearmanClient::addTaskLow »
  • PHP Manual
  • GearmanClient
  • Добавить высокоприоритетную фоновую задачу для работы в параллельном режиме

GearmanClient::addTaskHighBackground

(PECL gearman >= 0.5.0)

GearmanClient::addTaskHighBackground — Добавить высокоприоритетную фоновую задачу для работы в параллельном режиме

Описание

public GearmanClient::addTaskHighBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] ) : GearmanTask

Добавляет высокоприоритетную фоновую задачу для параллельной работы с другими задачами. Вызовите этот метод для всех задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ. Задачи с высоким приоритетом будут выбраны из очереди раньше задач с нормальным или низким приоритетом.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Объект GearmanTask или FALSE, если задача не может быть добавлена.

Смотрите также

  • GearmanClient::addTask() - Добавить задачу, которая будет выполнена в параллельном режиме
  • GearmanClient::addTaskHigh() - Добавить высокоприоритетную задачу для работы в параллельном режиме
  • GearmanClient::addTaskLow() - Добавить низкоприоритетную задачу для работы в параллельном режиме
  • GearmanClient::addTaskBackground() - Добавить фоновую задачу для работы в параллельном режиме
  • GearmanClient::addTaskLowBackground() - Добавить низкоприоритетную фоновую задачу для работы в параллельном режиме
  • GearmanClient::runTasks() - Запустить список задач в параллельном режиме


Добавить низкоприоритетную задачу для работы в параллельном режиме

  • « GearmanClient::addTaskHighBackground
  • GearmanClient::addTaskLowBackground »
  • PHP Manual
  • GearmanClient
  • Добавить низкоприоритетную задачу для работы в параллельном режиме

GearmanClient::addTaskLow

(PECL gearman >= 0.5.0)

GearmanClient::addTaskLow — Добавить низкоприоритетную задачу для работы в параллельном режиме

Описание

public GearmanClient::addTaskLow ( string $function_name , string $workload [, mixed &$context [, string $unique ]] ) : GearmanTask

Добавляет низкоприоритетную задачу для параллельной работы с другими задачами. Вызовите этот метод для всех задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ. Задачи с низким приоритетом будут выбраны из очереди после задач с нормальным или высоким приоритетом.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Объект GearmanTask или FALSE, если задача не может быть добавлена.

Примеры

Пример #1 Низкоприоритетная задача вместе с двумя обычными задачами

Низкоприоритетная задача включена среди двух других задач. Единственный обработчик доступен, так что задачи запускаются одна за другой, низкоприоритетные задачи выполняются в последнюю очередь.

<?php

# создание клиента
$gmc= new GearmanClient();

# добавление сервера задач по умолчанию
$gmc->addServer();

# установка функции обратного вызова по завершению задачи
$gmc->setCompleteCallback("reverse_complete");

# добавление задач, одна из которых с низким приоритетом
$task= $gmc->addTask("reverse", "Hello World!", null, "1");
$task= $gmc->addTaskLow("reverse", "!dlroW olleH", null, "2");
$task= $gmc->addTask("reverse", "Hello World!", null, "3");

if (! $gmc->runTasks())
{
    echo "Ошибка " . $gmc->error() . "\n";
    exit;
}
echo "Готово\n";

function reverse_complete($task)
{
    echo "Выполнено: " . $task->unique() . ", " . $task->data() . "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Выполнено: 3, !dlroW olleH
Выполнено: 1, !dlroW olleH
Выполнено: 2, Hello World!
Готово

Смотрите также

  • GearmanClient::addTask() - Добавить задачу, которая будет выполнена в параллельном режиме
  • GearmanClient::addTaskHigh() - Добавить высокоприоритетную задачу для работы в параллельном режиме
  • GearmanClient::addTaskBackground() - Добавить фоновую задачу для работы в параллельном режиме
  • GearmanClient::addTaskHighBackground() - Добавить высокоприоритетную фоновую задачу для работы в параллельном режиме
  • GearmanClient::addTaskLowBackground() - Добавить низкоприоритетную фоновую задачу для работы в параллельном режиме
  • GearmanClient::runTasks() - Запустить список задач в параллельном режиме


Добавить низкоприоритетную фоновую задачу для работы в параллельном режиме

  • « GearmanClient::addTaskLow
  • GearmanClient::addTaskStatus »
  • PHP Manual
  • GearmanClient
  • Добавить низкоприоритетную фоновую задачу для работы в параллельном режиме

GearmanClient::addTaskLowBackground

(PECL gearman >= 0.5.0)

GearmanClient::addTaskLowBackground — Добавить низкоприоритетную фоновую задачу для работы в параллельном режиме

Описание

public GearmanClient::addTaskLowBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] ) : GearmanTask

Добавляет низкоприоритетную фоновую задачу для параллельной работы с другими задачами. Вызовите этот метод для всех задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ. Задачи с низким приоритетом будут выбраны из очереди после задач с нормальным или высоким приоритетом.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Объект GearmanTask или FALSE, если задача не может быть добавлена.

Смотрите также

  • GearmanClient::addTask() - Добавить задачу, которая будет выполнена в параллельном режиме
  • GearmanClient::addTaskHigh() - Добавить высокоприоритетную задачу для работы в параллельном режиме
  • GearmanClient::addTaskLow() - Добавить низкоприоритетную задачу для работы в параллельном режиме
  • GearmanClient::addTaskBackground() - Добавить фоновую задачу для работы в параллельном режиме
  • GearmanClient::addTaskHighBackground() - Добавить высокоприоритетную фоновую задачу для работы в параллельном режиме
  • GearmanClient::runTasks() - Запустить список задач в параллельном режиме


Добавить задачу для получения статуса

  • « GearmanClient::addTaskLowBackground
  • GearmanClient::clearCallbacks »
  • PHP Manual
  • GearmanClient
  • Добавить задачу для получения статуса

GearmanClient::addTaskStatus

(PECL gearman >= 0.5.0)

GearmanClient::addTaskStatus — Добавить задачу для получения статуса

Описание

public GearmanClient::addTaskStatus ( string $job_handle [, string &$context ] ) : GearmanTask

Используется для запроса информации о состоянии с сервера Gearman, который будет вызывать указанный callback-функцию статуса (заданную через GearmanClient::setStatusCallback()).

Список параметров

job_handle

Дескриптор задания для получения статуса задачи

context

Данные, которые будут переданы обратному вызову. Обычно ссылка на массив или объект

Возвращаемые значения

Объект GearmanTask.

Примеры

Пример #1 Мониторинг завершения нескольких фоновых задач

В этом примере представлена искусственная задержка в обработчике, чтобы смоделировать долгий рабочий процесс. Есть только один обработчик, запущенный для этого примера.

<?php

/* создание клиентского объекта */
$gmclient= new GearmanClient();

/* добавление сервера задач по умолчанию */
$gmclient->addServer();

/* запуск некоторых фоновых задач и сохранение дескрипторов */
$handles = array();
$handles[0] = $gmclient->doBackground("reverse", "Hello World!");
$handles[1] = $gmclient->doBackground("reverse", "!dlroW olleH");

$gmclient->setStatusCallback("reverse_status");

/* Опрос сервера с целью определения, когда завершатся фоновые задачи; */
/* лучшим методом может быть установка callback-функций на события */
do
{
   /* используем контекстные переменные для отслеживания за тем, сколько задач выполнилось */
   $done = 0;
   $gmclient->addTaskStatus($handles[0], &$done);
   $gmclient->addTaskStatus($handles[1], &$done);
   $gmclient->runTasks();
   echo "Выполнено: $done\n";
   sleep(1);
}
while ($done != 2);

function reverse_status($task, $done)
{
   if (!$task->isKnown())
      $done++;
}

?>

Результатом выполнения данного примера будет что-то подобное:

Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 2

Смотрите также

  • GearmanClient::setStatusCallback() - Задание callback-функции, собирающей информацию о состоянии обработчика заданий


Очистить все функции обратного вызова данной задачи

  • « GearmanClient::addTaskStatus
  • GearmanClient::clone »
  • PHP Manual
  • GearmanClient
  • Очистить все функции обратного вызова данной задачи

GearmanClient::clearCallbacks

(PECL gearman >= 0.5.0)

GearmanClient::clearCallbacks — Очистить все функции обратного вызова данной задачи

Описание

public GearmanClient::clearCallbacks ( void ) : bool

Очищает все callback-функции задачи, которые были ранее установлены.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Всегда возвращает TRUE.

Смотрите также

  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setExceptionCallback() - Установка функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Установка callback-функции для обработки ситуации, когда задание не удалось выполнить
  • GearmanClient::setStatusCallback() - Задание callback-функции, собирающей информацию о состоянии обработчика заданий
  • GearmanClient::setWarningCallback() - Установка callback-функции, обслуживающей предупреждения обработчика заданий
  • GearmanClient::setWorkloadCallback() - Установка callback-функции, принимающей промежуточные результаты от обработчика заданий


Создать копию объекта GearmanClient

  • « GearmanClient::clearCallbacks
  • GearmanClient::__construct »
  • PHP Manual
  • GearmanClient
  • Создать копию объекта GearmanClient

GearmanClient::clone

(PECL gearman >= 0.5.0)

GearmanClient::clone — Создать копию объекта GearmanClient

Описание

public GearmanClient::clone ( void ) : GearmanClient

Создаёт копию объекта GearmanClient.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

GearmanClient в случае успеха, FALSE в случае неудачи.


Создать экземпляр GearmanClient

  • « GearmanClient::clone
  • GearmanClient::context »
  • PHP Manual
  • GearmanClient
  • Создать экземпляр GearmanClient

GearmanClient::__construct

(PECL gearman >= 0.5.0)

GearmanClient::__construct — Создать экземпляр GearmanClient

Описание

public GearmanClient::__construct ( void )

Создаёт экземпляр GearmanClient, представляющий клиента, который соединяется с сервером заданий и отправляет задачи для выполнения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект GearmanClient.

Смотрите также

  • GearmanClient::clone() - Создать копию объекта GearmanClient


Возвращает контекст приложения

  • « GearmanClient::__construct
  • GearmanClient::data »
  • PHP Manual
  • GearmanClient
  • Возвращает контекст приложения

GearmanClient::context

(PECL gearman >= 0.6.0)

GearmanClient::context — Возвращает контекст приложения

Описание

public GearmanClient::context ( void ) : string

Возвращает контекст, ранее установленный с помощью GearmanClient::setContext().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Та же самая структура данных контекста, приведенная в GearmanClient::setContext()

Смотрите также

  • GearmanClient::setContext() - Установить контекст приложения


Возвращает данные приложения (функция устарела)

  • « GearmanClient::context
  • GearmanClient::do »
  • PHP Manual
  • GearmanClient
  • Возвращает данные приложения (функция устарела)

GearmanClient::data

(PECL gearman <= 0.5.0)

GearmanClient::data — Возвращает данные приложения (функция устарела)

Описание

public GearmanClient::data ( void ) : string

Возвращает данные приложения, установленные ранее с помощью GearmanClient::setData().

Замечание:

Этот метод был заменён на GearmanClient::setContext() в версии 0.6.0 расширения Gearman.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Некие строковые данные, установленные GearmanClient::setData().

Смотрите также

  • GearmanClient::setData() - Установить данные приложения (устаревший метод)


Выполняет одну задачу и возвращает результат [Устаревший метод]

  • « GearmanClient::data
  • GearmanClient::doBackground »
  • PHP Manual
  • GearmanClient
  • Выполняет одну задачу и возвращает результат [Устаревший метод]

GearmanClient::do

(PECL gearman >= 0.5.0)

GearmanClient::do — Выполняет одну задачу и возвращает результат [Устаревший метод]

Описание

public GearmanClient::do ( string $function_name , string $workload [, string $unique ] ) : string

Метод GearmanClient::do() устарел, начиная с pecl/gearman 1.0.0. Используйте GearmanClient::doNormal().

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Результат выполнения задачи в виде строки.

Примеры

Пример #1 Простое представление задания с непосредственным возвратом

<?php

# Код клиента

echo "Начало\n";

# Создание клиента
$gmclient= new GearmanClient();

# Указание сервера по умолчанию (localhost).
$gmclient->addServer();

echo "Отправка задания\n";

$result = $gmclient->doNormal("reverse", "Hello!");

echo "Успешно: $result\n";

?>
<?php

echo "Начало\n";

# Создание экземпляра обработчика
$gmworker= new GearmanWorker();

# Указание сервера по умолчанию (localhost).
$gmworker->addServer();

# Регистрация функции "reverse" на сервере. Изменение функции обработчика на
# "reverse_fn_fast" для более быстрой обработки без вывода.
$gmworker->addFunction("reverse", "reverse_fn");

print "Ожидание задания...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  return strrev($job->workload());
}

?>

Результатом выполнения данного примера будет что-то подобное:

Начало
Отправка задания
Успешно: !olleH

Пример #2 Передача задания и получение инкрементного состояния

Отправляется задание и устанавливается цикл для получения информации об изменении статуса. У обработчика указана искусственная задержка для моделирования длительного выполнения задания и задана отправка состояния и данных во время обработки. Каждый последующий вызов GearmanClient::do() выводит информацию о статусе выполнения текущего задания.

<?php

# Код клиента

# Создание экземпляра клиента Gearman
$gmclient= new GearmanClient();

# Указание сервера по умолчанию (localhost).
$gmclient->addServer();

echo "Отправка задания\n";

# Отправка задания reverse
do
{
  $result = $gmclient->doNormal("reverse", "Hello!");
  # Проверка на различные возвращаемые форматы и ошибки

  switch($gmclient->returnCode())
  {
    case GEARMAN_WORK_DATA:
      echo "Данные: $result\n";
      break;
    case GEARMAN_WORK_STATUS:
      list($numerator, $denominator)= $gmclient->doStatus();
      echo "Статус: $numerator/$denominator выполнено\n";
      break;
    case GEARMAN_WORK_FAIL:
      echo "Ошибка\n";
      exit;
    case GEARMAN_SUCCESS:
      break;
    default:
      echo "RET: " . $gmclient->returnCode() . "\n";
      echo "Error: " . $gmclient->error() . "\n";
      echo "Errno: " . $gmclient->getErrno() . "\n";
      exit;
  }
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

echo "Успешно: $result\n";

?>
<?php

# Код обработчика

echo "Начало\n";

# Создание экземпляра обработчика.
$gmworker= new GearmanWorker();

# Указание сервера по умолчанию  (localhost).
$gmworker->addServer();

# Регистрация функции "reverse" на сервере.
$gmworker->addFunction("reverse", "reverse_fn");

print "Ожидание задания...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Полученное задание: " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Рабочая нагрузка: $workload ($workload_size)\n";

  # Данный цикл не является необходимым, только иллюстрирует процесс
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Отправка статуса: " + $x + 1 . "/$workload_size выполнено\n";
    $job->sendStatus($x+1, $workload_size);
    $job->sendData(substr($workload, $x, 1));
    sleep(1);
  }

  $result= strrev($workload);
  echo "Результат: $result\n";

  # Возврат результата, отправляемого клиенту
  return $result;
}

?>

Результатом выполнения данного примера будет что-то подобное:

Вывод обработчика:

Начало
Ожидание задания...
Полученное задание: H:foo.local:106
Рабочая нагрузка: Hello! (6)
1/6 выполнено
2/6 выполнено
3/6 выполнено
4/6 выполнено
5/6 выполнено
6/6 выполнено
Результат: !olleH

Вывод клиента:

Начало
Отправка задания
Статус: 1/6 выполнено
Данные: H
Статус: 2/6 выполнено
Данные: e
Статус: 3/6 выполнено
Данные: l
Статус: 4/6 выполнено
Данные: l
Статус: 5/6 выполнено
Данные: o
Статус: 6/6 выполнено
Данные: !
Успешно: !olleH

Смотрите также

  • GearmanClient::doHigh() - Запускает на выполнение задачу с высоким приоритетом
  • GearmanClient::doLow() - Запускает на выполнение задачу с низким приоритетом
  • GearmanClient::doBackground() - Запускает выполнение задачи в фоновом режиме
  • GearmanClient::doHighBackground() - Запускает на выполнение с высоким приоритетом задачу в фоновом режиме
  • GearmanClient::doLowBackground() - Запускает на выполнение с низким приоритетом задачу в фоновом режиме


Запускает выполнение задачи в фоновом режиме

  • « GearmanClient::do
  • GearmanClient::doHigh »
  • PHP Manual
  • GearmanClient
  • Запускает выполнение задачи в фоновом режиме

GearmanClient::doBackground

(PECL gearman >= 0.5.0)

GearmanClient::doBackground — Запускает выполнение задачи в фоновом режиме

Описание

public GearmanClient::doBackground ( string $function_name , string $workload [, string $unique ] ) : string

Запускает выполнение задачи в фоновом режиме, возвращая дескриптор задания, который может быть использован для запроса состояния выполняющейся задачи.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Дескриптор задания для отправленной задачи.

Примеры

Пример #1 Отправляет и отслеживает фоновое задание

Обработчик в этом примере имеет искусственную задержку, чтобы смоделировать длительное выполнение задания. Клиент периодически проверяет состояние выполняющегося задания.

<?php

/* создание объекта */
$gmclient= new GearmanClient();

/* указание сервера по умолчанию */
$gmclient->addServer();

/* запуск выполнение клиента */
$job_handle = $gmclient->doBackground("reverse", "this is a test");

if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
  echo "неуспешный код возврата\n";
  exit;
}

$done = false;
do
{
   sleep(3);
   $stat = $gmclient->jobStatus($job_handle);
   if (!$stat[0]) // задание известно, но не выполнено
      $done = true;
   echo "Выполняется: " . ($stat[1] ? "true" : "false") . ", числитель: " . $stat[2] . ", знаменатель: " . $stat[3] . "\n";
}
while(!$done);

echo "завершено!\n";

?>

Результатом выполнения данного примера будет что-то подобное:

Выполняется: true, числитель: 3, знаменатель: 14
Выполняется: true, числитель: 6, знаменатель: 14
Выполняется: true, числитель: 9, знаменатель: 14
Выполняется: true, числитель: 12, знаменатель: 14
Выполняется: false, числитель: 0, знаменатель: 0
завершено!

Смотрите также

  • GearmanClient::doNormal() - Выполняет одиночное задание и возвращает результат
  • GearmanClient::doHigh() - Запускает на выполнение задачу с высоким приоритетом
  • GearmanClient::doLow() - Запускает на выполнение задачу с низким приоритетом
  • GearmanClient::doHighBackground() - Запускает на выполнение с высоким приоритетом задачу в фоновом режиме
  • GearmanClient::doLowBackground() - Запускает на выполнение с низким приоритетом задачу в фоновом режиме


Запускает на выполнение задачу с высоким приоритетом

  • « GearmanClient::doBackground
  • GearmanClient::doHighBackground »
  • PHP Manual
  • GearmanClient
  • Запускает на выполнение задачу с высоким приоритетом

GearmanClient::doHigh

(PECL gearman >= 0.5.0)

GearmanClient::doHigh — Запускает на выполнение задачу с высоким приоритетом

Описание

public GearmanClient::doHigh ( string $function_name , string $workload [, string $unique ] ) : string

Запускает на выполнение одиночную высокоприоритетную задачу и возвращает строку, содержащую результат. Функция зависит от GearmanClient и GearmanWorker, поскольку необходимо обеспечить единый формат результата. Высокоприоритетные задачи имеют преимущество над нормальными и низкоприоритетными задачам в очереди заданий.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Строка, содержащая результат выполнения задачи.

Смотрите также

  • GearmanClient::doNormal() - Выполняет одиночное задание и возвращает результат
  • GearmanClient::doLow() - Запускает на выполнение задачу с низким приоритетом
  • GearmanClient::doBackground() - Запускает выполнение задачи в фоновом режиме
  • GearmanClient::doHighBackground() - Запускает на выполнение с высоким приоритетом задачу в фоновом режиме
  • GearmanClient::doLowBackground() - Запускает на выполнение с низким приоритетом задачу в фоновом режиме


Запускает на выполнение с высоким приоритетом задачу в фоновом режиме

  • « GearmanClient::doHigh
  • GearmanClient::doJobHandle »
  • PHP Manual
  • GearmanClient
  • Запускает на выполнение с высоким приоритетом задачу в фоновом режиме

GearmanClient::doHighBackground

(PECL gearman >= 0.5.0)

GearmanClient::doHighBackground — Запускает на выполнение с высоким приоритетом задачу в фоновом режиме

Описание

public GearmanClient::doHighBackground ( string $function_name , string $workload [, string $unique ] ) : string

Запускает на выполнение с высоким приоритетом задачу в фоновом режиме, возвращая дескриптор задания, который может быть в дальнейшем использован для запроса состояния выполняющейся задачи. Задачи высокого приоритета имеют преимущество над нормальными и низкоприоритетными задачам в очереди заданий.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Дескриптор отправленной задачи.

Смотрите также

  • GearmanClient::doNormal() - Выполняет одиночное задание и возвращает результат
  • GearmanClient::doHigh() - Запускает на выполнение задачу с высоким приоритетом
  • GearmanClient::doLow() - Запускает на выполнение задачу с низким приоритетом
  • GearmanClient::doBackground() - Запускает выполнение задачи в фоновом режиме
  • GearmanClient::doLowBackground() - Запускает на выполнение с низким приоритетом задачу в фоновом режиме


Получить дескриптор выполняющейся задачи

  • « GearmanClient::doHighBackground
  • GearmanClient::doLow »
  • PHP Manual
  • GearmanClient
  • Получить дескриптор выполняющейся задачи

GearmanClient::doJobHandle

(PECL gearman >= 0.5.0)

GearmanClient::doJobHandle — Получить дескриптор выполняющейся задачи

Описание

public GearmanClient::doJobHandle ( void ) : string

Получает дескриптор задания для выполняющейся задачи. Этот метод должен использоваться между повторным вызовами GearmanClient::doNormal(). Дескриптор задания может использоваться для получения информации о задаче.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Дескриптор задания для выполняющейся задачи.

Смотрите также

  • GearmanClient::jobStatus() - Получение статуса выполнения фонового задания


Запускает на выполнение задачу с низким приоритетом

  • « GearmanClient::doJobHandle
  • GearmanClient::doLowBackground »
  • PHP Manual
  • GearmanClient
  • Запускает на выполнение задачу с низким приоритетом

GearmanClient::doLow

(PECL gearman >= 0.5.0)

GearmanClient::doLow — Запускает на выполнение задачу с низким приоритетом

Описание

public GearmanClient::doLow ( string $function_name , string $workload [, string $unique ] ) : string

Запускает на выполнение задачу с низким приоритетом и возвращает строку, содержащую результат. Функция зависит от GearmanClient и GearmanWorker, поскольку необходимо обеспечить единый формат результата. Высокоприоритетные задачи имеют преимущество над обычными и низкоприоритетными задачам в очереди заданий. Задачи нормального и высокого приоритета имеют преимущество над низкоприоритетными задачами в очереди заданий.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Строка, содержащая результат выполнения задачи.

Смотрите также

  • GearmanClient::doNormal() - Выполняет одиночное задание и возвращает результат
  • GearmanClient::doHigh() - Запускает на выполнение задачу с высоким приоритетом
  • GearmanClient::doBackground() - Запускает выполнение задачи в фоновом режиме
  • GearmanClient::doHighBackground() - Запускает на выполнение с высоким приоритетом задачу в фоновом режиме
  • GearmanClient::doLowBackground() - Запускает на выполнение с низким приоритетом задачу в фоновом режиме


Запускает на выполнение с низким приоритетом задачу в фоновом режиме

  • « GearmanClient::doLow
  • GearmanClient::doNormal »
  • PHP Manual
  • GearmanClient
  • Запускает на выполнение с низким приоритетом задачу в фоновом режиме

GearmanClient::doLowBackground

(PECL gearman >= 0.5.0)

GearmanClient::doLowBackground — Запускает на выполнение с низким приоритетом задачу в фоновом режиме

Описание

public GearmanClient::doLowBackground ( string $function_name , string $workload [, string $unique ] ) : string

Запускает на выполнение с низким приоритетом задачу в фоновом режиме, возвращая дескриптор задания, который может быть использован для запроса состояния выполняющейся задачи. Задачи нормального и высокого приоритета имеют преимущество над низкоприоритетными задачам в очереди заданий.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Дескриптор отправленной задачи.

Смотрите также

  • GearmanClient::doNormal() - Выполняет одиночное задание и возвращает результат
  • GearmanClient::doHigh() - Запускает на выполнение задачу с высоким приоритетом
  • GearmanClient::doLow() - Запускает на выполнение задачу с низким приоритетом
  • GearmanClient::doBackground() - Запускает выполнение задачи в фоновом режиме
  • GearmanClient::doHighBackground() - Запускает на выполнение с высоким приоритетом задачу в фоновом режиме


Выполняет одиночное задание и возвращает результат

  • « GearmanClient::doLowBackground
  • GearmanClient::doStatus »
  • PHP Manual
  • GearmanClient
  • Выполняет одиночное задание и возвращает результат

GearmanClient::doNormal

(Информация о версии неизвестна, возможно, только в Git)

GearmanClient::doNormal — Выполняет одиночное задание и возвращает результат

Описание

public GearmanClient::doNormal ( string $function_name , string $workload [, string $unique ] ) : string

Выполняет одиночное задание и возвращает строковое представление результата. Формат возвращаемого результата определяют объекты GearmanClient и GearmanWorker.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Строка, представляющая результат выполнения задания.

Примеры

Пример #1 Выполнение простого задания с немедленным возвратом

<?php

?>
<?php

# Код клиента

echo "Запуск\n";

# Создание клиента.
$gmclient= new GearmanClient();

# Добавление сервера по умолчанию (localhost).
$gmclient->addServer();

echo "Отправка задания\n";

$result = $gmclient->doNormal("reverse", "Hello!");

echo "Задание выполнено: $result\n";

?>
<?php

echo "Запуск\n";

# Создание объекта обработчика заданий.
$gmworker= new GearmanWorker();

# Добавление сервера по умолчанию (localhost).
$gmworker->addServer();

# Регистрация функции "reverse" на сервере. Замена обрабатывающей функции
# на "reverse_fn_fast" для быстрой обработки без вывода
$gmworker->addFunction("reverse", "reverse_fn");

print "Ожидание задания...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "Код возврата: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  return strrev($job->workload());
}

?>

Результатом выполнения данного примера будет что-то подобное:

Запуск
Отправка задания
Задание выполнено: !olleH

Пример #2 Отправка задания на обработку и мониторинг состояния

После отправки задания скрипт в цикле запрашивает текущий прогресс обработки. В обработчик введена искусственная задержка, чтобы смоделировать долго выполняющееся задание. Обработчик посылает клиенту свое текущее состояние, как только завершена обработка очередной порции данных. Последовательные вызовы GearmanClient::doNormal() запрашивают текущее состояние выполняющегося задания.

<?php

# Код клиента

# Создание клиента.
$gmclient= new GearmanClient();

# Добавление сервера по умолчанию (localhost).
$gmclient->addServer();

echo "Отправка задания\n";

# Отправка задания перевернуть строку
do
{
  $result = $gmclient->doNormal("reverse", "Hello!");
  # Проверка состояния на ошибки или возвращаемые данные.

  switch($gmclient->returnCode())
  {
    case GEARMAN_WORK_DATA:
      echo "Данные: $result\n";
      break;
    case GEARMAN_WORK_STATUS:
      list($numerator, $denominator)= $gmclient->doStatus();
      echo "Статус: $numerator/$denominator complete\n";
      break;
    case GEARMAN_WORK_FAIL:
      echo "Ошибка\n";
      exit;
    case GEARMAN_SUCCESS:
      break;
    default:
      echo "Код возврата: " . $gmclient->returnCode() . "\n";
      echo "Ошибка: " . $gmclient->error() . "\n";
      echo "Номер ошибки: " . $gmclient->getErrno() . "\n";
      exit;
  }
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

echo "Обработка завершена: $result\n";

?>
<?php

# Код обработчика

echo "Запуск\n";

# Создаем свой объект обработчика.
$gmworker= new GearmanWorker();

# Добавление сервера по умолчанию (localhost).
$gmworker->addServer();

# Регистрируем функцию "reverse" на сервере.
$gmworker->addFunction("reverse", "reverse_fn");

print "Ожидание задания...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "Код возврата: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Получено задание: " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Загружены данные: $workload ($workload_size)\n";

  # Этот цикл не является необходимым, просто показывает, как все работает
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Отправка статуса: " + $x + 1 . "/$workload_size завершено\n";
    $job->sendStatus($x+1, $workload_size);
    $job->sendData(substr($workload, $x, 1));
    sleep(1);
  }

  $result= strrev($workload);
  echo "Результат: $result\n";

  # Возвращаем то, что хотим отправить клиенту
  return $result;
}

?>

Результатом выполнения данного примера будет что-то подобное:

Вывод обработчика:

Запуск
Ожидание задания...
Получено задание: H:foo.local:106
Загружены данные: Hello! (6)
1/6 завершено
2/6 завершено
3/6 завершено
4/6 завершено
5/6 завершено
6/6 завершено
Результат: !olleH

Вывод клиента:

Запуск
Отправка задания
Состояние: 1/6 завершено
Данные: H
Состояние: 2/6 завершено
Данные: e
Состояние: 3/6 завершено
Данные: l
Состояние: 4/6 завершено
Данные: l
Состояние: 5/6 завершено
Данные: o
Состояние: 6/6 завершено
Данные: !
Обработка завершена: !olleH

Смотрите также

  • GearmanClient::doHigh() - Запускает на выполнение задачу с высоким приоритетом
  • GearmanClient::doLow() - Запускает на выполнение задачу с низким приоритетом
  • GearmanClient::doBackground() - Запускает выполнение задачи в фоновом режиме
  • GearmanClient::doHighBackground() - Запускает на выполнение с высоким приоритетом задачу в фоновом режиме
  • GearmanClient::doLowBackground() - Запускает на выполнение с низким приоритетом задачу в фоновом режиме


Получение статуса выполняющейся задачи

  • « GearmanClient::doNormal
  • GearmanClient::echo »
  • PHP Manual
  • GearmanClient
  • Получение статуса выполняющейся задачи

GearmanClient::doStatus

(PECL gearman >= 0.5.0)

GearmanClient::doStatus — Получение статуса выполняющейся задачи

Описание

public GearmanClient::doStatus ( void ) : array

Возвращает статус обработки запущенной задачи. Этот метод вызывается между повторяющимися вызовами GearmanClient::doNormal().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив, представляющий процентное отношение выполненной работы. Первый элемент соответствует количеству обработанных чанков, второй - общее количество данных.

Примеры

Пример #1 Получение состояния выполнения долгого задания

В этом примере в обработчик, переворачивающий строку, внедрена задержка, чтобы смоделировать долго выполняющееся задание. После каждой паузы обработчик выполняет GearmanJob::status(), результат которого подхватывается клиентом.

<?php

echo "Запуск\n";

# Создаем объект клиента.
$gmclient= new GearmanClient();

# Добавляем сервер по умолчанию (localhost).
$gmclient->addServer();

echo "Отправка задание\n";

# Отправляем задание перевернуть строку
do
{
  $result = $gmclient->doNormal("reverse", "Hello!");

  # Проверяем, есть ли ошибки или готовые данные.
  switch($gmclient->returnCode())
  {
    case GEARMAN_WORK_DATA:
      break;
    case GEARMAN_WORK_STATUS:
      # получить статус выполнения задания
      list($numerator, $denominator)= $gmclient->doStatus();
      echo "Статус: $numerator/$denominator завершено\n";
      break;
    case GEARMAN_WORK_FAIL:
      echo "Ошибка\n";
      exit;
    case GEARMAN_SUCCESS:
      break;
    default:
      echo "Код возврата: " . $gmclient->returnCode() . "\n";
      exit;
  }
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

echo "Успешно: $result\n";

?>

Результатом выполнения данного примера будет что-то подобное:

Запуск
Отправка задания
Состояние: 1/6 завершено
Состояние: 2/6 завершено
Состояние: 3/6 завершено
Состояние: 4/6 завершено
Состояние: 5/6 завершено
Состояние: 6/6 завершено
Успешно: !olleH

Смотрите также

  • GearmanClient::doNormal() - Выполняет одиночное задание и возвращает результат
  • GearmanJob::status() - Отправка статуса задания (устаревший метод)


Отправляет данные всем серверам заданий, чтобы проверить отклик [Устаревший метод]

  • « GearmanClient::doStatus
  • GearmanClient::error »
  • PHP Manual
  • GearmanClient
  • Отправляет данные всем серверам заданий, чтобы проверить отклик [Устаревший метод]

GearmanClient::echo

(PECL gearman >= 0.5.0)

GearmanClient::echo — Отправляет данные всем серверам заданий, чтобы проверить отклик [Устаревший метод]

Описание

public GearmanClient::echo ( string $workload ) : bool

Метод GearmanClient::echo() устарел начиная с pecl/gearman 1.0.0. Используйте GearmanClient::ping().

Список параметров

workload

Некоторые произвольные сериализированные данные для получения отклика

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Вернуть строку ошибки для последней обнаруженной ошибки

  • « GearmanClient::echo
  • GearmanClient::getErrno »
  • PHP Manual
  • GearmanClient
  • Вернуть строку ошибки для последней обнаруженной ошибки

GearmanClient::error

(PECL gearman >= 0.5.0)

GearmanClient::error — Вернуть строку ошибки для последней обнаруженной ошибки

Описание

public GearmanClient::error ( void ) : string

Возвращает строку ошибки для последней обнаруженной ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Удобочитаемая строка ошибки.

Смотрите также

  • GearmanClient::getErrno() - Получить значение errno


Получить значение errno

  • « GearmanClient::error
  • GearmanClient::jobStatus »
  • PHP Manual
  • GearmanClient
  • Получить значение errno

GearmanClient::getErrno

(PECL gearman >= 0.5.0)

GearmanClient::getErrno — Получить значение errno

Описание

public GearmanClient::getErrno ( void ) : int

Значение ERRNO в случае возвращаемого значения GEARMAN_ERRNO.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Допустимый Gearman errno.

Смотрите также

  • GearmanClient::error() - Вернуть строку ошибки для последней обнаруженной ошибки


Получение статуса выполнения фонового задания

  • « GearmanClient::getErrno
  • GearmanClient::ping »
  • PHP Manual
  • GearmanClient
  • Получение статуса выполнения фонового задания

GearmanClient::jobStatus

gearman_job_status

(PECL gearman >= 0.5.0)

GearmanClient::jobStatus -- gearman_job_status — Получение статуса выполнения фонового задания

Описание

Объектно-ориентированный стиль (method):

public GearmanClient::jobStatus ( string $job_handle ) : array

Получает текущее состояние выполнения задания, запущенного в фоновом режиме. Информация о состоянии включает данные о том, что задание известно обработчику, выполняется ли задание в данный момент, а также процент обработанных данных.

Список параметров

job_handle

Дескриптор задачи, который присваевается сервером Gearman

Возвращаемые значения

Массив, содержащий информацию о задании, соответствующем заданному дескриптору задания. Первый элемент массива указывает, знает ли обработчик об этом задании. Второй элемент указывает, выполняется ли задание в данный момент. Третий и четвертый элементы отвечают за долю выполненной работы и общий объем данных, соответственно.

Примеры

Пример #1 Мониторинг процесса обработки долго выполняющегося в фоновом режиме задания

<?php

/* создаем клиента */
$gmclient= new GearmanClient();

/* добавляем сервер по умолчанию */
$gmclient->addServer();

/* запускаем клиент */
$job_handle = $gmclient->doBackground("reverse", "this is a test");

if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
  echo "Не удалось выполнить задание\n";
  exit;
}

$done = false;
do
{
   sleep(3);
   $stat = $gmclient->jobStatus($job_handle);
   if (!$stat[0]) // задание известно обработчику, но еще не завершено
      $done = true;
   echo "Выполняется: " . ($stat[1] ? "true" : "false") . ", обработано: " . $stat[2] . ", всего: " . $stat[3] . "\n";
}
while(!$done);

echo "завершено!\n";

?>

Результатом выполнения данного примера будет что-то подобное:

Выполняется: true, обработано: 3, всего: 14
Выполняется: true, обработано: 6, всего: 14
Выполняется: true, обработано: 9, всего: 14
Выполняется: true, обработано: 12, всего: 14
Выполняется: false, обработано: 0, всего: 0
завершено!

Смотрите также

  • GearmanClient::doStatus() - Получение статуса выполняющейся задачи


Отправляет данные на все серверы, чтобы проверить, какие из них выведут эти данные

  • « GearmanClient::jobStatus
  • GearmanClient::removeOptions »
  • PHP Manual
  • GearmanClient
  • Отправляет данные на все серверы, чтобы проверить, какие из них выведут эти данные

GearmanClient::ping

(Информация о версии неизвестна, возможно, только в Git)

GearmanClient::ping — Отправляет данные на все серверы, чтобы проверить, какие из них выведут эти данные

Описание

public GearmanClient::ping ( string $workload ) : bool

Посылает данные на все сервера и определяет, какие из них выведут эти данные в выходной поток. Посылаемые данные никак не обрабатываются. Метод используется для тестирования и отладки.

Список параметров

workload

Данные, которые можно вывести в выходной поток.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Удалить клиентские опции

  • « GearmanClient::ping
  • GearmanClient::returnCode »
  • PHP Manual
  • GearmanClient
  • Удалить клиентские опции

GearmanClient::removeOptions

(PECL gearman >= 0.6.0)

GearmanClient::removeOptions — Удалить клиентские опции

Описание

public GearmanClient::removeOptions ( int $options ) : bool

Удаляет одну или несколько клиентских опций.

Список параметров

options

Опции, которые должны быть удалены.

Возвращаемые значения

Всегда возвращает TRUE.


Получить последний код возврата Gearman

  • « GearmanClient::removeOptions
  • GearmanClient::runTasks »
  • PHP Manual
  • GearmanClient
  • Получить последний код возврата Gearman

GearmanClient::returnCode

(PECL gearman >= 0.5.0)

GearmanClient::returnCode — Получить последний код возврата Gearman

Описание

public GearmanClient::returnCode ( void ) : int

Возвращает последний код возврата Gearman.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Допустимый код возврата Gearman.


Запустить список задач в параллельном режиме

  • « GearmanClient::returnCode
  • GearmanClient::setClientCallback »
  • PHP Manual
  • GearmanClient
  • Запустить список задач в параллельном режиме

GearmanClient::runTasks

(PECL gearman >= 0.5.0)

GearmanClient::runTasks — Запустить список задач в параллельном режиме

Описание

public GearmanClient::runTasks ( void ) : bool

Для набора задач, ранее добавленных с помощью GearmanClient::addTask(), GearmanClient::addTaskHigh(), GearmanClient::addTaskLow(), GearmanClient::addTaskBackground(), GearmanClient::addTaskHighBackground() или GearmanClient::addTaskLowBackground(), этот вызов начинает выполнение в параллельном режиме.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::addTask() - Добавить задачу, которая будет выполнена в параллельном режиме


Установить функцию обратного вызова, когда есть пакет данных для задачи (устаревший метод)

  • « GearmanClient::runTasks
  • GearmanClient::setCompleteCallback »
  • PHP Manual
  • GearmanClient
  • Установить функцию обратного вызова, когда есть пакет данных для задачи (устаревший метод)

GearmanClient::setClientCallback

(PECL gearman <= 0.5.0)

GearmanClient::setClientCallback — Установить функцию обратного вызова, когда есть пакет данных для задачи (устаревший метод)

Описание

public GearmanClient::setClientCallback ( callable $callback ) : void

Устанавливает функцию обратного вызова для принятия пакетов данных для задачи. Функция обратного вызова должна принимать единственный параметр - объект GearmanTask.

Замечание:

Этот метод был заменён на GearmanClient::setDataCallback() в версии 0.6.0 расширения Gearman.

Список параметров

callback

Функция или метод, которые должны быть вызваны.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setExceptionCallback() - Установка функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Установка callback-функции для обработки ситуации, когда задание не удалось выполнить
  • GearmanClient::setStatusCallback() - Задание callback-функции, собирающей информацию о состоянии обработчика заданий
  • GearmanClient::setWarningCallback() - Установка callback-функции, обслуживающей предупреждения обработчика заданий
  • GearmanClient::setWorkloadCallback() - Установка callback-функции, принимающей промежуточные результаты от обработчика заданий


Установите функцию, которая будет вызвана по завершении задачи

  • « GearmanClient::setClientCallback
  • GearmanClient::setContext »
  • PHP Manual
  • GearmanClient
  • Установите функцию, которая будет вызвана по завершении задачи

GearmanClient::setCompleteCallback

(PECL gearman >= 0.5.0)

GearmanClient::setCompleteCallback — Установите функцию, которая будет вызвана по завершении задачи

Описание

public GearmanClient::setCompleteCallback ( callable $callback ) : bool

Используется для установки функции, которая будет вызвана, когда GearmanTask будет выполнен, или когда обработчик вызовет GearmanJob::sendComplete(), в зависимости от того, что случится раньше.

Эта callback-функция запускается только когда GearmanTask запущен с использованием GearmanClient::runTasks(). Это не используется для индивидуальной работы.

Список параметров

callback

Функция, которая должна быть вызвана.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setExceptionCallback() - Установка функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Установка callback-функции для обработки ситуации, когда задание не удалось выполнить
  • GearmanClient::setStatusCallback() - Задание callback-функции, собирающей информацию о состоянии обработчика заданий
  • GearmanClient::setWarningCallback() - Установка callback-функции, обслуживающей предупреждения обработчика заданий
  • GearmanClient::setWorkloadCallback() - Установка callback-функции, принимающей промежуточные результаты от обработчика заданий


Установить контекст приложения

  • « GearmanClient::setCompleteCallback
  • GearmanClient::setCreatedCallback »
  • PHP Manual
  • GearmanClient
  • Установить контекст приложения

GearmanClient::setContext

(PECL gearman >= 0.6.0)

GearmanClient::setContext — Установить контекст приложения

Описание

public GearmanClient::setContext ( string $context ) : bool

Устанавливает произвольную строку для предоставления контекста приложения, которая может быть позже получена с помощью GearmanClient::context().

Список параметров

context

Произвольные данные контекста

Возвращаемые значения

Всегда возвращает TRUE.

Смотрите также

  • GearmanClient::context() - Возвращает контекст приложения


Установить функцию обратного вызова, когда задача ставится в очередь

  • « GearmanClient::setContext
  • GearmanClient::setData »
  • PHP Manual
  • GearmanClient
  • Установить функцию обратного вызова, когда задача ставится в очередь

GearmanClient::setCreatedCallback

(PECL gearman >= 0.5.0)

GearmanClient::setCreatedCallback — Установить функцию обратного вызова, когда задача ставится в очередь

Описание

public GearmanClient::setCreatedCallback ( string $callback ) : bool

Устанавливает функцию, которая будет вызвана, когда задача получена и поставлена в очередь сервером задач Gearman. Функция обратного вызова должна принимать единственный параметр - объект GearmanTask.

Список параметров

callback

Функция, которая должна быть вызвана.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setExceptionCallback() - Установка функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Установка callback-функции для обработки ситуации, когда задание не удалось выполнить
  • GearmanClient::setStatusCallback() - Задание callback-функции, собирающей информацию о состоянии обработчика заданий
  • GearmanClient::setWarningCallback() - Установка callback-функции, обслуживающей предупреждения обработчика заданий
  • GearmanClient::setWorkloadCallback() - Установка callback-функции, принимающей промежуточные результаты от обработчика заданий


Установить данные приложения (устаревший метод)

  • « GearmanClient::setCreatedCallback
  • GearmanClient::setDataCallback »
  • PHP Manual
  • GearmanClient
  • Установить данные приложения (устаревший метод)

GearmanClient::setData

(PECL gearman <= 0.5.0)

GearmanClient::setData — Установить данные приложения (устаревший метод)

Описание

public GearmanClient::setData ( string $data ) : bool

Устанавливает некоторые произвольные данные приложения, которые впоследствии могут быть извлечены GearmanClient::data().

Замечание:

Этот метод был заменён на GearmanCient::setContext() в версии 0.6.0 расширения Gearman.

Список параметров

data

Возвращаемые значения

Всегда возвращает TRUE.

Смотрите также

  • GearmanClient::data() - Возвращает данные приложения (функция устарела)


Задает callback-функцию для обработки переданных данных

  • « GearmanClient::setData
  • GearmanClient::setExceptionCallback »
  • PHP Manual
  • GearmanClient
  • Задает callback-функцию для обработки переданных данных

GearmanClient::setDataCallback

(PECL gearman >= 0.6.0)

GearmanClient::setDataCallback — Задает callback-функцию для обработки переданных данных

Описание

public GearmanClient::setDataCallback ( callable $callback ) : bool

Задает callback-функцию, которая будет обрабатывать данные задания. Эта функция должна принимать один аргумент типа GearmanTask.

Список параметров

callback

Функция или метод для обратного вызова.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setExceptionCallback() - Установка функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Установка callback-функции для обработки ситуации, когда задание не удалось выполнить
  • GearmanClient::setStatusCallback() - Задание callback-функции, собирающей информацию о состоянии обработчика заданий
  • GearmanClient::setWarningCallback() - Установка callback-функции, обслуживающей предупреждения обработчика заданий
  • GearmanClient::setWorkloadCallback() - Установка callback-функции, принимающей промежуточные результаты от обработчика заданий


Установка функции обратного вызова для перехвата исключений обработчика заданий

  • « GearmanClient::setDataCallback
  • GearmanClient::setFailCallback »
  • PHP Manual
  • GearmanClient
  • Установка функции обратного вызова для перехвата исключений обработчика заданий

GearmanClient::setExceptionCallback

(PECL gearman >= 0.5.0)

GearmanClient::setExceptionCallback — Установка функции обратного вызова для перехвата исключений обработчика заданий

Описание

public GearmanClient::setExceptionCallback ( callable $callback ) : bool

Задает функцию, которая будет вызываться, когда обработчик задания отправит исключение.

Список параметров

callback

Функция для перехвата исключения, выброшенного обработчиком заданий.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setFailCallback() - Установка callback-функции для обработки ситуации, когда задание не удалось выполнить
  • GearmanClient::setStatusCallback() - Задание callback-функции, собирающей информацию о состоянии обработчика заданий
  • GearmanClient::setWarningCallback() - Установка callback-функции, обслуживающей предупреждения обработчика заданий
  • GearmanClient::setWorkloadCallback() - Установка callback-функции, принимающей промежуточные результаты от обработчика заданий


Установка callback-функции для обработки ситуации, когда задание не удалось выполнить

  • « GearmanClient::setExceptionCallback
  • GearmanClient::setOptions »
  • PHP Manual
  • GearmanClient
  • Установка callback-функции для обработки ситуации, когда задание не удалось выполнить

GearmanClient::setFailCallback

(PECL gearman >= 0.5.0)

GearmanClient::setFailCallback — Установка callback-функции для обработки ситуации, когда задание не удалось выполнить

Описание

public GearmanClient::setFailCallback ( callable $callback ) : bool

Задает функцию обратного вызова для обработки ситуации, когда задание выполнить не удалось. Принимает один аргумент типа GearmanTask.

Список параметров

callback

Функция для вызова.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setExceptionCallback() - Установка функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setStatusCallback() - Задание callback-функции, собирающей информацию о состоянии обработчика заданий
  • GearmanClient::setWarningCallback() - Установка callback-функции, обслуживающей предупреждения обработчика заданий
  • GearmanClient::setWorkloadCallback() - Установка callback-функции, принимающей промежуточные результаты от обработчика заданий


Установка настроек клиента

  • « GearmanClient::setFailCallback
  • GearmanClient::setStatusCallback »
  • PHP Manual
  • GearmanClient
  • Установка настроек клиента

GearmanClient::setOptions

(PECL gearman >= 0.5.0)

GearmanClient::setOptions — Установка настроек клиента

Описание

public GearmanClient::setOptions ( int $options ) : bool

Устанавливает одну или несколько настроек клиента.

Список параметров

options

Задаваемые настройки

Возвращаемые значения

Всегда возвращает TRUE.


Задание callback-функции, собирающей информацию о состоянии обработчика заданий

  • « GearmanClient::setOptions
  • GearmanClient::setTimeout »
  • PHP Manual
  • GearmanClient
  • Задание callback-функции, собирающей информацию о состоянии обработчика заданий

GearmanClient::setStatusCallback

(PECL gearman >= 0.5.0)

GearmanClient::setStatusCallback — Задание callback-функции, собирающей информацию о состоянии обработчика заданий

Описание

public GearmanClient::setStatusCallback ( callable $callback ) : bool

Задает callback-функцию, которая будет принимать и обрабатывать информацию о состоянии задания, передаваемую обработчиком заданий. Функция должна принимать один аргумент типа GearmanTask.

Список параметров

callback

Функция для вызова

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setExceptionCallback() - Установка функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Установка callback-функции для обработки ситуации, когда задание не удалось выполнить
  • GearmanClient::setWarningCallback() - Установка callback-функции, обслуживающей предупреждения обработчика заданий
  • GearmanClient::setWorkloadCallback() - Установка callback-функции, принимающей промежуточные результаты от обработчика заданий


Установка тайм-аута для операций ввода/вывода

  • « GearmanClient::setStatusCallback
  • GearmanClient::setWarningCallback »
  • PHP Manual
  • GearmanClient
  • Установка тайм-аута для операций ввода/вывода

GearmanClient::setTimeout

(PECL gearman >= 0.6.0)

GearmanClient::setTimeout — Установка тайм-аута для операций ввода/вывода

Описание

public GearmanClient::setTimeout ( int $timeout ) : bool

Устанавливает тайм-аут для операций ввода/вывода.

Список параметров

timeout

Временной интервал в миллисекундах

Возвращаемые значения

Всегда возвращает TRUE.


Установка callback-функции, обслуживающей предупреждения обработчика заданий

  • « GearmanClient::setTimeout
  • GearmanClient::setWorkloadCallback »
  • PHP Manual
  • GearmanClient
  • Установка callback-функции, обслуживающей предупреждения обработчика заданий

GearmanClient::setWarningCallback

(PECL gearman >= 0.5.0)

GearmanClient::setWarningCallback — Установка callback-функции, обслуживающей предупреждения обработчика заданий

Описание

public GearmanClient::setWarningCallback ( callable $callback ) : bool

Задает функцию, которая будет вызываться, когда обработчик заданий пришлет предупреждение. Функция должна принимать один аргумент типа GearmanTask.

Список параметров

callback

Функция для обратного вызова

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setExceptionCallback() - Установка функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Установка callback-функции для обработки ситуации, когда задание не удалось выполнить
  • GearmanClient::setStatusCallback() - Задание callback-функции, собирающей информацию о состоянии обработчика заданий
  • GearmanClient::setWorkloadCallback() - Установка callback-функции, принимающей промежуточные результаты от обработчика заданий


Установка callback-функции, принимающей промежуточные результаты от обработчика заданий

  • « GearmanClient::setWarningCallback
  • GearmanClient::timeout »
  • PHP Manual
  • GearmanClient
  • Установка callback-функции, принимающей промежуточные результаты от обработчика заданий

GearmanClient::setWorkloadCallback

(PECL gearman >= 0.5.0)

GearmanClient::setWorkloadCallback — Установка callback-функции, принимающей промежуточные результаты от обработчика заданий

Описание

public GearmanClient::setWorkloadCallback ( callable $callback ) : bool

Задает функцию, которая будет вызываться, когда обработчику задания необходимо передать промежуточные результаты клиенту до завершения всей обработки. Обработчику заданий может потребоваться такая пересылка, если нужно передать клиенту какие-либо обновления, частично отправить результаты обработки или освободить память во время выполнения долгих заданий. Функция должна принимать один аргумент типа GearmanTask.

Список параметров

callback

Функция для обратного вызова

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setExceptionCallback() - Установка функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Установка callback-функции для обработки ситуации, когда задание не удалось выполнить
  • GearmanClient::setStatusCallback() - Задание callback-функции, собирающей информацию о состоянии обработчика заданий
  • GearmanClient::setWarningCallback() - Установка callback-функции, обслуживающей предупреждения обработчика заданий


Получение значения тайм-аута операций ввода/вывода

  • « GearmanClient::setWorkloadCallback
  • GearmanJob »
  • PHP Manual
  • GearmanClient
  • Получение значения тайм-аута операций ввода/вывода

GearmanClient::timeout

(PECL gearman >= 0.6.0)

GearmanClient::timeout — Получение значения тайм-аута операций ввода/вывода

Описание

public GearmanClient::timeout ( void ) : int

Возвращает тайм-аут операций ввода/вывода в миллисекундах.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Тайм-аут в миллисекундах. Отрицательное значение означает отсутствие ограничения.

Смотрите также

  • GearmanClient::setTimeout() - Установка тайм-аута для операций ввода/вывода


Класс GearmanJob

(PECL gearman >= 0.5.0)

Введение

Обзор классов

GearmanJob {
/* Методы */
public complete ( string $result ) : bool
public __construct ( void )
public data ( string $data ) : bool
public exception ( string $exception ) : bool
public fail ( void ) : bool
public functionName ( void ) : string
public handle ( void ) : string
public returnCode ( void ) : int
public sendComplete ( string $result ) : bool
public sendData ( string $data ) : bool
public sendException ( string $exception ) : bool
public sendFail ( void ) : bool
public sendStatus ( int $numerator , int $denominator ) : bool
public sendWarning ( string $warning ) : bool
public setReturn ( int $gearman_return_t ) : bool
public status ( int $numerator , int $denominator ) : bool
public unique ( void ) : string
public warning ( string $warning ) : bool
public workload ( void ) : string
public workloadSize ( void ) : int
}

Содержание

  • GearmanJob::complete — Отправка результата и статуса завершения (устаревший метод)
  • GearmanJob::__construct — Создание объекта GearmanJob
  • GearmanJob::data — Отправка данных (устаревший метод)
  • GearmanJob::exception — Отправка исключения (устаревший метод)
  • GearmanJob::fail — Отправка статуса неудачной операции (устаревший метод)
  • GearmanJob::functionName — Получение имени функции
  • GearmanJob::handle — Получение дескриптора объекта задания
  • GearmanJob::returnCode — Получение последнего кода возврата
  • GearmanJob::sendComplete — Отправка результата и статуса завершения
  • GearmanJob::sendData — Отправка данных выполняющемуся заданию
  • GearmanJob::sendException — Отправка исключения выполняющемуся заданию
  • GearmanJob::sendFail — Отправка статуса неудачной операции
  • GearmanJob::sendStatus — Отправка статуса
  • GearmanJob::sendWarning — Отправка предупреждения
  • GearmanJob::setReturn — Установка возвращаемого значения
  • GearmanJob::status — Отправка статуса задания (устаревший метод)
  • GearmanJob::unique — Получение уникального идентификатора
  • GearmanJob::warning — Отправка предупреждения (устаревший метод)
  • GearmanJob::workload — Получение данных для обработки
  • GearmanJob::workloadSize — Получение размера обрабатываемых данных


Отправка результата и статуса завершения (устаревший метод)

  • « GearmanJob
  • GearmanJob::__construct »
  • PHP Manual
  • GearmanJob
  • Отправка результата и статуса завершения (устаревший метод)

GearmanJob::complete

(PECL gearman <= 0.5.0)

GearmanJob::complete — Отправка результата и статуса завершения (устаревший метод)

Описание

public GearmanJob::complete ( string $result ) : bool

Отправляет результаты обработки клиенту и обновляет статус работы на завершенный.

Замечание:

Этот метод был заменен на GearmanJob::sendComplete() в выпуске расширения Gearman 0.6.0.

Список параметров

result

Сериализованные результаты обработки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanJob::sendFail() - Отправка статуса неудачной операции
  • GearmanJob::setReturn() - Установка возвращаемого значения


Создание объекта GearmanJob

  • « GearmanJob::complete
  • GearmanJob::data »
  • PHP Manual
  • GearmanJob
  • Создание объекта GearmanJob

GearmanJob::__construct

(PECL gearman >= 0.5.0)

GearmanJob::__construct — Создание объекта GearmanJob

Описание

public GearmanJob::__construct ( void )

Создает объект класса GearmanJob, представляющий задание для обработчика.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект GearmanJob.


Отправка данных (устаревший метод)

  • « GearmanJob::__construct
  • GearmanJob::exception »
  • PHP Manual
  • GearmanJob
  • Отправка данных (устаревший метод)

GearmanJob::data

(PECL gearman <= 0.5.0)

GearmanJob::data — Отправка данных (устаревший метод)

Описание

public GearmanJob::data ( string $data ) : bool

Отправляет данные серверу заданий (и всем слушающим клиентам).

Замечание:

Этот метод был заменен на GearmanJob::sendData() в выпуске 0.6.0 расширения Gearman.

Список параметров

data

Сериализованные данные.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanJob::workload() - Получение данных для обработки
  • GearmanTask::data() - Получить данные, возвращенные для задачи


Отправка исключения (устаревший метод)

  • « GearmanJob::data
  • GearmanJob::fail »
  • PHP Manual
  • GearmanJob
  • Отправка исключения (устаревший метод)

GearmanJob::exception

(PECL gearman <= 0.5.0)

GearmanJob::exception — Отправка исключения (устаревший метод)

Описание

public GearmanJob::exception ( string $exception ) : bool

Посылает исключение, возникшее во время выполнения работы.

Замечание:

Этот метод был заменен на GearmanJob::sendException() в расширении Gearman версии 0.6.0.

Список параметров

exception

Описание исключения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanJob::setReturn() - Установка возвращаемого значения
  • GearmanJob::sendStatus() - Отправка статуса
  • GearmanJob::sendWarning() - Отправка предупреждения


Отправка статуса неудачной операции (устаревший метод)

  • « GearmanJob::exception
  • GearmanJob::functionName »
  • PHP Manual
  • GearmanJob
  • Отправка статуса неудачной операции (устаревший метод)

GearmanJob::fail

(PECL gearman <= 0.5.0)

GearmanJob::fail — Отправка статуса неудачной операции (устаревший метод)

Описание

public GearmanJob::fail ( void ) : bool

Посылает статус о неудачной обработки, указывая, что задание завершилось неудачно по известным причинам (в отличие от неудачного завершения, когда выбрасывается исключение).

Замечание:

Этот метод был заменен на GearmanJob::sendFail() в версии 0.6.0 расширения Gearman.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanJob::sendException() - Отправка исключения выполняющемуся заданию
  • GearmanJob::setReturn() - Установка возвращаемого значения
  • GearmanJob::sendStatus() - Отправка статуса
  • GearmanJob::sendWarning() - Отправка предупреждения


Получение имени функции

  • « GearmanJob::fail
  • GearmanJob::handle »
  • PHP Manual
  • GearmanJob
  • Получение имени функции

GearmanJob::functionName

(PECL gearman >= 0.5.0)

GearmanJob::functionName — Получение имени функции

Описание

public GearmanJob::functionName ( void ) : string

Возвращает имя функции, обрабатывающей данные, то есть функции, которая будет вызвана для выполнения задания.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя функции.

Смотрите также

  • GearmanTask::function() - Получить имя связанной функции (устаревший метод)


Получение дескриптора объекта задания

  • « GearmanJob::functionName
  • GearmanJob::returnCode »
  • PHP Manual
  • GearmanJob
  • Получение дескриптора объекта задания

GearmanJob::handle

(PECL gearman >= 0.5.0)

GearmanJob::handle — Получение дескриптора объекта задания

Описание

public GearmanJob::handle ( void ) : string

Возвращает дескриптор задания, присвоенный сервером.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Дескриптор задания.

Смотрите также

  • GearmanTask::jobHandle() - Получить дескриптор задания


Получение последнего кода возврата

  • « GearmanJob::handle
  • GearmanJob::sendComplete »
  • PHP Manual
  • GearmanJob
  • Получение последнего кода возврата

GearmanJob::returnCode

(PECL gearman >= 0.5.0)

GearmanJob::returnCode — Получение последнего кода возврата

Описание

public GearmanJob::returnCode ( void ) : int

Возвращает последний выданный сервером заданий код возврата.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Допустимый в Gearman код возврата.

Смотрите также

  • GearmanTask::returnCode() - Получить последний код возврата


Отправка результата и статуса завершения

  • « GearmanJob::returnCode
  • GearmanJob::sendData »
  • PHP Manual
  • GearmanJob
  • Отправка результата и статуса завершения

GearmanJob::sendComplete

(PECL gearman >= 0.6.0)

GearmanJob::sendComplete — Отправка результата и статуса завершения

Описание

public GearmanJob::sendComplete ( string $result ) : bool

Отправляет результаты работы клиенту и обновляет статус объекта на завершенный.

Список параметров

result

Сериализованные результаты работы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanJob::sendFail() - Отправка статуса неудачной операции
  • GearmanJob::setReturn() - Установка возвращаемого значения


Отправка данных выполняющемуся заданию

  • « GearmanJob::sendComplete
  • GearmanJob::sendException »
  • PHP Manual
  • GearmanJob
  • Отправка данных выполняющемуся заданию

GearmanJob::sendData

(PECL gearman >= 0.6.0)

GearmanJob::sendData — Отправка данных выполняющемуся заданию

Описание

public GearmanJob::sendData ( string $data ) : bool

Отправляет данные серверу заданий (и всем слушающим клиентам).

Список параметров

data

Сериализованные данные.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanJob::workload() - Получение данных для обработки
  • GearmanTask::data() - Получить данные, возвращенные для задачи


Отправка исключения выполняющемуся заданию

  • « GearmanJob::sendData
  • GearmanJob::sendFail »
  • PHP Manual
  • GearmanJob
  • Отправка исключения выполняющемуся заданию

GearmanJob::sendException

(PECL gearman >= 0.6.0)

GearmanJob::sendException — Отправка исключения выполняющемуся заданию

Описание

public GearmanJob::sendException ( string $exception ) : bool

Посылает исключение, возникшее во время выполнения работы.

Список параметров

exception

Описание исключения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanJob::setReturn() - Установка возвращаемого значения
  • GearmanJob::sendStatus() - Отправка статуса
  • GearmanJob::sendWarning() - Отправка предупреждения


Отправка статуса неудачной операции

  • « GearmanJob::sendException
  • GearmanJob::sendStatus »
  • PHP Manual
  • GearmanJob
  • Отправка статуса неудачной операции

GearmanJob::sendFail

(PECL gearman >= 0.6.0)

GearmanJob::sendFail — Отправка статуса неудачной операции

Описание

public GearmanJob::sendFail ( void ) : bool

Посылает статус о неудачной обработки, указывая, что задание завершилось неудачно по известным причинам (в отличие от неудачного завершения, когда выбрасывается исключение).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanJob::sendException() - Отправка исключения выполняющемуся заданию
  • GearmanJob::setReturn() - Установка возвращаемого значения
  • GearmanJob::sendStatus() - Отправка статуса
  • GearmanJob::sendWarning() - Отправка предупреждения


Отправка статуса

  • « GearmanJob::sendFail
  • GearmanJob::sendWarning »
  • PHP Manual
  • GearmanJob
  • Отправка статуса

GearmanJob::sendStatus

(PECL gearman >= 0.6.0)

GearmanJob::sendStatus — Отправка статуса

Описание

public GearmanJob::sendStatus ( int $numerator , int $denominator ) : bool

Посылает на сервер задач и всем слушающим клиентам статус текущей работы. С помощью этого метода можно узнать, какой процент задания выполнен.

Список параметров

numerator

Доля выполненной работы.

denominator

Количество всей работы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::jobStatus() - Получение статуса выполнения фонового задания
  • GearmanTask::taskDenominator() - Получить знаменатель процента выполненной работы
  • GearmanTask::taskNumerator() - Получение числителя процента выполненной работы


Отправка предупреждения

  • « GearmanJob::sendStatus
  • GearmanJob::setReturn »
  • PHP Manual
  • GearmanJob
  • Отправка предупреждения

GearmanJob::sendWarning

(PECL gearman >= 0.6.0)

GearmanJob::sendWarning — Отправка предупреждения

Описание

public GearmanJob::sendWarning ( string $warning ) : bool

Во время выполнения работы отправляет предупреждение.

Список параметров

warning

Сообщение предупреждения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanJob::sendComplete() - Отправка результата и статуса завершения
  • GearmanJob::sendException() - Отправка исключения выполняющемуся заданию
  • GearmanJob::sendFail() - Отправка статуса неудачной операции


Установка возвращаемого значения

  • « GearmanJob::sendWarning
  • GearmanJob::status »
  • PHP Manual
  • GearmanJob
  • Установка возвращаемого значения

GearmanJob::setReturn

(PECL gearman >= 0.5.0)

GearmanJob::setReturn — Установка возвращаемого значения

Описание

public GearmanJob::setReturn ( int $gearman_return_t ) : bool

Задает возвращаемое значение для текущего задания. Это значение указывает, как завершилось задание.

Список параметров

gearman_return_t

Допустимое в Gearman возвращаемое значение.

Возвращаемые значения

Описание...


Отправка статуса задания (устаревший метод)

  • « GearmanJob::setReturn
  • GearmanJob::unique »
  • PHP Manual
  • GearmanJob
  • Отправка статуса задания (устаревший метод)

GearmanJob::status

(PECL gearman <= 0.5.0)

GearmanJob::status — Отправка статуса задания (устаревший метод)

Описание

public GearmanJob::status ( int $numerator , int $denominator ) : bool

Посылает на сервер задач и всем слушающим клиентам статус текущей работы. С помощью этого метода можно узнать, какой процент задания выполнен.

Замечание:

Этот метод был заменен на GearmanJob::sendStatus() в версии 0.6.0 расширения Gearman.

Список параметров

numerator

Доля выполненной работы.

denominator

Количество всей работы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::jobStatus() - Получение статуса выполнения фонового задания
  • GearmanTask::taskDenominator() - Получить знаменатель процента выполненной работы
  • GearmanTask::taskNumerator() - Получение числителя процента выполненной работы


Получение уникального идентификатора

  • « GearmanJob::status
  • GearmanJob::warning »
  • PHP Manual
  • GearmanJob
  • Получение уникального идентификатора

GearmanJob::unique

(PECL gearman >= 0.5.0)

GearmanJob::unique — Получение уникального идентификатора

Описание

public GearmanJob::unique ( void ) : string

Возвращает уникальный идентификатор задания, присвоенный клиентом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Уникальный идентификатор.

Смотрите также

  • GearmanClient::do() - Выполняет одну задачу и возвращает результат [Устаревший метод]
  • GearmanTask::uuid() - Получение уникального идентификатора задачи (устаревший метод)


Отправка предупреждения (устаревший метод)

  • « GearmanJob::unique
  • GearmanJob::workload »
  • PHP Manual
  • GearmanJob
  • Отправка предупреждения (устаревший метод)

GearmanJob::warning

(PECL gearman <= 0.5.0)

GearmanJob::warning — Отправка предупреждения (устаревший метод)

Описание

public GearmanJob::warning ( string $warning ) : bool

Во время выполнения задания отправляет предупреждение.

Замечание:

Этот метод был заменен на GearmanJob::sendWarning() в версии 0.6.0 расширения Gearman.

Список параметров

warning

Сообщение предупреждения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanJob::sendComplete() - Отправка результата и статуса завершения
  • GearmanJob::sendException() - Отправка исключения выполняющемуся заданию
  • GearmanJob::sendFail() - Отправка статуса неудачной операции


Получение данных для обработки

  • « GearmanJob::warning
  • GearmanJob::workloadSize »
  • PHP Manual
  • GearmanJob
  • Получение данных для обработки

GearmanJob::workload

(PECL gearman >= 0.5.0)

GearmanJob::workload — Получение данных для обработки

Описание

public GearmanJob::workload ( void ) : string

Возвращает данные, переданные для обработки. Это сериализованные данные, с которыми будет работать обработчик.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сериализованные данные.

Смотрите также

  • GearmanClient::do() - Выполняет одну задачу и возвращает результат [Устаревший метод]
  • GearmanJob::workloadSize() - Получение размера обрабатываемых данных


Получение размера обрабатываемых данных

  • « GearmanJob::workload
  • GearmanTask »
  • PHP Manual
  • GearmanJob
  • Получение размера обрабатываемых данных

GearmanJob::workloadSize

(PECL gearman >= 0.5.0)

GearmanJob::workloadSize — Получение размера обрабатываемых данных

Описание

public GearmanJob::workloadSize ( void ) : int

Возвращает размер данных, которые должен переработать обработчик заданий, в байтах.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Размер в байтах.

Смотрите также

  • GearmanJob::workload() - Получение данных для обработки


Класс GearmanTask

(PECL gearman >= 0.5.0)

Введение

Обзор классов

GearmanTask {
/* Методы */
public __construct ( void )
public create ( void ) : GearmanTask
public data ( void ) : string
public dataSize ( void ) : int
public function ( void ) : string
public functionName ( void ) : string
public isKnown ( void ) : bool
public isRunning ( void ) : bool
public jobHandle ( void ) : string
public recvData ( int $data_len ) : array
public returnCode ( void ) : int
public sendData ( string $data ) : int
public sendWorkload ( string $data ) : int
public taskDenominator ( void ) : int
public taskNumerator ( void ) : int
public unique ( void ) : string
public uuid ( void ) : string
}

Содержание

  • GearmanTask::__construct — Создает объект GearmanTask
  • GearmanTask::create — Создает задачу (устаревший метод)
  • GearmanTask::data — Получить данные, возвращенные для задачи
  • GearmanTask::dataSize — Получить размер возвращаемых данных
  • GearmanTask::function — Получить имя связанной функции (устаревший метод)
  • GearmanTask::functionName — Получить имя функции
  • GearmanTask::isKnown — Определение, известно ли серверу об этой задачи
  • GearmanTask::isRunning — Проверяет, выполняется ли задача в данный момент
  • GearmanTask::jobHandle — Получить дескриптор задания
  • GearmanTask::recvData — Чтение данных работы или результата задачи в буфер
  • GearmanTask::returnCode — Получить последний код возврата
  • GearmanTask::sendData — Отправка данных задачи (устаревший метод)
  • GearmanTask::sendWorkload — Отправка данных задачи
  • GearmanTask::taskDenominator — Получить знаменатель процента выполненной работы
  • GearmanTask::taskNumerator — Получение числителя процента выполненной работы
  • GearmanTask::unique — Получение уникального идентификатора задачи
  • GearmanTask::uuid — Получение уникального идентификатора задачи (устаревший метод)


Создает объект GearmanTask

  • « GearmanTask
  • GearmanTask::create »
  • PHP Manual
  • GearmanTask
  • Создает объект GearmanTask

GearmanTask::__construct

(PECL gearman >= 0.5.0)

GearmanTask::__construct — Создает объект GearmanTask

Описание

public GearmanTask::__construct ( void )

Создает объект GearmanTask, представляющий задачу на обработку, которая в дальнейшем будет отправлена на сервер.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса GearmanTask.


Создает задачу (устаревший метод)

  • « GearmanTask::__construct
  • GearmanTask::data »
  • PHP Manual
  • GearmanTask
  • Создает задачу (устаревший метод)

GearmanTask::create

(PECL gearman <= 0.5.0)

GearmanTask::create — Создает задачу (устаревший метод)

Описание

public GearmanTask::create ( void ) : GearmanTask

Возвращает новый объект класса GearmanTask.

Замечание:

Этот метод был удален в версии 0.6.0 расширения Gearman.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса GearmanTask или FALSE в случае возникновения ошибки.


Получить данные, возвращенные для задачи

  • « GearmanTask::create
  • GearmanTask::dataSize »
  • PHP Manual
  • GearmanTask
  • Получить данные, возвращенные для задачи

GearmanTask::data

(PECL gearman >= 0.5.0)

GearmanTask::data — Получить данные, возвращенные для задачи

Описание

public GearmanTask::data ( void ) : string

Получает данные, возвращаемые обработчиком по завершении работы задачи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сериализованные данные или FALSE, если обработчик не предоставил данных.

Смотрите также

  • GearmanTask::dataSize() - Получить размер возвращаемых данных


Получить размер возвращаемых данных

  • « GearmanTask::data
  • GearmanTask::function »
  • PHP Manual
  • GearmanTask
  • Получить размер возвращаемых данных

GearmanTask::dataSize

(PECL gearman >= 0.5.0)

GearmanTask::dataSize — Получить размер возвращаемых данных

Описание

public GearmanTask::dataSize ( void ) : int

Возвращает размер данных задачи, которые вернул обработчик.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Размер данных или FALSE, если данных предоставлено не было.

Смотрите также

  • GearmanTask::data() - Получить данные, возвращенные для задачи


Получить имя связанной функции (устаревший метод)

  • « GearmanTask::dataSize
  • GearmanTask::functionName »
  • PHP Manual
  • GearmanTask
  • Получить имя связанной функции (устаревший метод)

GearmanTask::function

(PECL gearman <= 0.5.0)

GearmanTask::function — Получить имя связанной функции (устаревший метод)

Описание

public GearmanTask::function ( void ) : string

Возвращает имя функции, с которой связано эта задача. Эту функцию вызывает обработчик в процессе работы с данными.

Замечание:

Этот метод был заменен на GearmanTask::functionName() в версии 0.6.0 расширения Gearman.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя функции.


Получить имя функции

  • « GearmanTask::function
  • GearmanTask::isKnown »
  • PHP Manual
  • GearmanTask
  • Получить имя функции

GearmanTask::functionName

(PECL gearman >= 0.6.0)

GearmanTask::functionName — Получить имя функции

Описание

public GearmanTask::functionName ( void ) : string

Возвращает имя функции, с которой связана задача. Эту функцию вызывает обработчик в процессе работы с данными.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя функции.


Определение, известно ли серверу об этой задачи

  • « GearmanTask::functionName
  • GearmanTask::isRunning »
  • PHP Manual
  • GearmanTask
  • Определение, известно ли серверу об этой задачи

GearmanTask::isKnown

(PECL gearman >= 0.5.0)

GearmanTask::isKnown — Определение, известно ли серверу об этой задачи

Описание

public GearmanTask::isKnown ( void ) : bool

Определяет, известно ли серверу заданий об этой задачи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если задача известна, FALSE в противном случае.


Проверяет, выполняется ли задача в данный момент

  • « GearmanTask::isKnown
  • GearmanTask::jobHandle »
  • PHP Manual
  • GearmanTask
  • Проверяет, выполняется ли задача в данный момент

GearmanTask::isRunning

(PECL gearman >= 0.5.0)

GearmanTask::isRunning — Проверяет, выполняется ли задача в данный момент

Описание

public GearmanTask::isRunning ( void ) : bool

Указывает, выполняется ли в данное время задача.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если задача выполняется, FALSE в противном случае.


Получить дескриптор задания

  • « GearmanTask::isRunning
  • GearmanTask::recvData »
  • PHP Manual
  • GearmanTask
  • Получить дескриптор задания

GearmanTask::jobHandle

gearman_job_handle

(PECL gearman >= 0.5.0)

GearmanTask::jobHandle -- gearman_job_handle — Получить дескриптор задания

Описание

public GearmanTask::jobHandle ( void ) : string

Возвращает дескриптор задания для этой задачи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Описатель объекта работы.

Смотрите также

  • GearmanClient::doJobHandle() - Получить дескриптор выполняющейся задачи


Чтение данных работы или результата задачи в буфер

  • « GearmanTask::jobHandle
  • GearmanTask::returnCode »
  • PHP Manual
  • GearmanTask
  • Чтение данных работы или результата задачи в буфер

GearmanTask::recvData

(PECL gearman >= 0.5.0)

GearmanTask::recvData — Чтение данных работы или результата задачи в буфер

Описание

public GearmanTask::recvData ( int $data_len ) : array

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

data_len

Размер данных для чтения.

Возвращаемые значения

Массив, в котором первый элемент представляет размер прочитанных данных, а второй - буферизованные данные. В случае неудачи при чтении, метод вернет FALSE.

Смотрите также

  • GearmanTask::sendData() - Отправка данных задачи (устаревший метод)


Получить последний код возврата

  • « GearmanTask::recvData
  • GearmanTask::sendData »
  • PHP Manual
  • GearmanTask
  • Получить последний код возврата

GearmanTask::returnCode

(PECL gearman >= 0.5.0)

GearmanTask::returnCode — Получить последний код возврата

Описание

public GearmanTask::returnCode ( void ) : int

Возвращает последний код возврата для этой задачи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Допустимый в Gearman код возврата.

Смотрите также

  • GearmanClient::returnCode() - Получить последний код возврата Gearman


Отправка данных задачи (устаревший метод)

  • « GearmanTask::returnCode
  • GearmanTask::sendWorkload »
  • PHP Manual
  • GearmanTask
  • Отправка данных задачи (устаревший метод)

GearmanTask::sendData

(PECL gearman <= 0.5.0)

GearmanTask::sendData — Отправка данных задачи (устаревший метод)

Описание

public GearmanTask::sendData ( string $data ) : int

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

data

Передаваемые обработчику данные.

Возвращаемые значения

Размер переданных данных или FALSE в случае неудачи.

Смотрите также

  • GearmanTask::recvData() - Чтение данных работы или результата задачи в буфер


Отправка данных задачи

  • « GearmanTask::sendData
  • GearmanTask::taskDenominator »
  • PHP Manual
  • GearmanTask
  • Отправка данных задачи

GearmanTask::sendWorkload

(PECL gearman >= 0.6.0)

GearmanTask::sendWorkload — Отправка данных задачи

Описание

public GearmanTask::sendWorkload ( string $data ) : int

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

data

Передаваемые обработчику данные.

Возвращаемые значения

Размер переданных данных или FALSE в случае неудачи.

Смотрите также

  • GearmanTask::recvData() - Чтение данных работы или результата задачи в буфер


Получить знаменатель процента выполненной работы

  • « GearmanTask::sendWorkload
  • GearmanTask::taskNumerator »
  • PHP Manual
  • GearmanTask
  • Получить знаменатель процента выполненной работы

GearmanTask::taskDenominator

(PECL gearman >= 0.5.0)

GearmanTask::taskDenominator — Получить знаменатель процента выполненной работы

Описание

public GearmanTask::taskDenominator ( void ) : int

Получает знаменатель дроби, который используется для определения процента выполненной работы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Число от 0 до 100 или FALSE, если определить значение не удалось.

Смотрите также

  • GearmanTask::taskNumerator() - Получение числителя процента выполненной работы


Получение числителя процента выполненной работы

  • « GearmanTask::taskDenominator
  • GearmanTask::unique »
  • PHP Manual
  • GearmanTask
  • Получение числителя процента выполненной работы

GearmanTask::taskNumerator

(PECL gearman >= 0.5.0)

GearmanTask::taskNumerator — Получение числителя процента выполненной работы

Описание

public GearmanTask::taskNumerator ( void ) : int

Возвращает числитель дроби, которая используется для вычисления процента выполненной работы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Число от 0 до 100 или FALSE, если значение определить не удалось.

Смотрите также

  • GearmanTask::taskDenominator() - Получить знаменатель процента выполненной работы


Получение уникального идентификатора задачи

  • « GearmanTask::taskNumerator
  • GearmanTask::uuid »
  • PHP Manual
  • GearmanTask
  • Получение уникального идентификатора задачи

GearmanTask::unique

(PECL gearman >= 0.6.0)

GearmanTask::unique — Получение уникального идентификатора задачи

Описание

public GearmanTask::unique ( void ) : string

Возвращает уникальный идентификатор этой задачи. Этот идентификатор присваивает GearmanClient, в отличие от дескриптора задания, который устанавливает сервер заданий Gearman.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Уникальный идентификатор или FALSE, если идентификатор не присвоен.

Смотрите также

  • GearmanClient::do() - Выполняет одну задачу и возвращает результат [Устаревший метод]
  • GearmanClient::addTask() - Добавить задачу, которая будет выполнена в параллельном режиме


Получение уникального идентификатора задачи (устаревший метод)

  • « GearmanTask::unique
  • GearmanWorker »
  • PHP Manual
  • GearmanTask
  • Получение уникального идентификатора задачи (устаревший метод)

GearmanTask::uuid

(PECL gearman <= 0.5.0)

GearmanTask::uuid — Получение уникального идентификатора задачи (устаревший метод)

Описание

public GearmanTask::uuid ( void ) : string

Возвращает уникальный идентификатор этой задачи. Этот идентификатор присваивает GearmanClient, в отличие от идентификатора объекта задания, который устанавливает сервер задач.

Замечание:

Этот метод был заменен на GearmanTask::unique() в версии 0.6.0 расширения Gearman.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Уникальный идентификатор или FALSE, если идентификатор не назначен.

Смотрите также

  • GearmanClient::do() - Выполняет одну задачу и возвращает результат [Устаревший метод]
  • GearmanClient::addTask() - Добавить задачу, которая будет выполнена в параллельном режиме


Класс GearmanWorker

(PECL gearman >= 0.5.0)

Введение

Обзор классов

GearmanWorker {
/* Методы */
public addFunction ( string $function_name , callable $function [, mixed &$context [, int $timeout ]] ) : bool
public addOptions ( int $option ) : bool
public addServer ([ string $host = 127.0.0.1 [, int $port = 4730 ]] ) : bool
public addServers ( string $servers = 127.0.0.1:4730 ) : bool
public clone ( void ) : void
public __construct ( void )
public echo ( string $workload ) : bool
public error ( void ) : string
public getErrno ( void ) : int
public options ( void ) : int
public register ( string $function_name [, int $timeout ] ) : bool
public removeOptions ( int $option ) : bool
public returnCode ( void ) : int
public setId ( string $id ) : bool
public setOptions ( int $option ) : bool
public setTimeout ( int $timeout ) : bool
public timeout ( void ) : int
public unregister ( string $function_name ) : bool
public unregisterAll ( void ) : bool
public wait ( void ) : bool
public work ( void ) : bool
}

Содержание

  • GearmanWorker::addFunction — Регистрация и добавление callback-функции
  • GearmanWorker::addOptions — Добавление настроек обработчика
  • GearmanWorker::addServer — Добавление сервера заданий
  • GearmanWorker::addServers — Добавление серверов заданий
  • GearmanWorker::clone — Создание копии обработчика
  • GearmanWorker::__construct — Создание объекта GearmanWorker
  • GearmanWorker::echo — Проверка отклика серверов заданий
  • GearmanWorker::error — Получение последней обнаруженной ошибки
  • GearmanWorker::getErrno — Получение номера ошибки
  • GearmanWorker::options — Получение настроек обработчика
  • GearmanWorker::register — Регистрация функции на сервере заданий
  • GearmanWorker::removeOptions — Удаление настроек обработчика
  • GearmanWorker::returnCode — Получение последнего кода возврата Gearman
  • GearmanWorker::setId — Назначает обработчику идентификатор, чтобы в дальнейшем иметь возможность опросить все доступные обработчики
  • GearmanWorker::setOptions — Установка настроек обработчика
  • GearmanWorker::setTimeout — Задание тайм-аута ожидания ввода/вывода на сокете
  • GearmanWorker::timeout — Получение значения тайм-аута ожидания запросов на сокете
  • GearmanWorker::unregister — Удалить регистрацию имени функции на всех серверах заданий
  • GearmanWorker::unregisterAll — Удаление регистрации всех имен функций на серверах заданий
  • GearmanWorker::wait — Ожидание запроса с одного из сервера задач
  • GearmanWorker::work — Ожидание и выполнение заданий


Регистрация и добавление callback-функции

  • « GearmanWorker
  • GearmanWorker::addOptions »
  • PHP Manual
  • GearmanWorker
  • Регистрация и добавление callback-функции

GearmanWorker::addFunction

(PECL gearman >= 0.5.0)

GearmanWorker::addFunction — Регистрация и добавление callback-функции

Описание

public GearmanWorker::addFunction ( string $function_name , callable $function [, mixed &$context [, int $timeout ]] ) : bool

Регистрирует имя функции на сервере заданий и добавляет ссылку на эту функцию для обратного вызова. Необязательно можно задать дополнительные данные контекста, которые будет использоваться во время вызова callback-функции и тайм-ауте.

Список параметров

function_name

Имя функции, которое необходимо зарегистрировать на сервере заданий.

function

Callback-функция, которая будет вызываться, когда сервер получит задание для зарегистрированного имени.

context

Ссылка на произвольные данные контекста приложения, к которым нужно обеспечить доступ из функции.

timeout

Временной интервал в секундах

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Простой обработчик использует дополнительные данные контекста приложения

<?php

# получаем обработчик gearman
$worker= new GearmanWorker();

# добавляем сервер по умолчанию (localhost)
$worker->addServer();

# определяем переменную, в которой будут храниться данные приложения
$count= 0;

# добавляем функцию "reverse"
$worker->addFunction("reverse", "reverse_cb", $count);

# запускаем обработчик
while ($worker->work());

function reverse_cb($job, &$count)
{
  $count++;
  return "$count: " . strrev($job->workload());
}

?>

Если клиент пошлет два задания для функции reverse, то вывод будет следующим:

1: olleh
2: dlrow

Смотрите также

  • GearmanClient::do() - Выполняет одну задачу и возвращает результат [Устаревший метод]


Добавление настроек обработчика

  • « GearmanWorker::addFunction
  • GearmanWorker::addServer »
  • PHP Manual
  • GearmanWorker
  • Добавление настроек обработчика

GearmanWorker::addOptions

(PECL gearman >= 0.6.0)

GearmanWorker::addOptions — Добавление настроек обработчика

Описание

public GearmanWorker::addOptions ( int $option ) : bool

Добавляет одну или несколько настроек к ранее установленным.

Список параметров

option

Добавляемые настройки

Возвращаемые значения

Всегда возвращает TRUE.

Смотрите также

  • GearmanWorker::options() - Получение настроек обработчика
  • GearmanClient::setOptions() - Установка настроек клиента
  • GearmanClient::removeOptions() - Удалить клиентские опции


Добавление сервера заданий

  • « GearmanWorker::addOptions
  • GearmanWorker::addServers »
  • PHP Manual
  • GearmanWorker
  • Добавление сервера заданий

GearmanWorker::addServer

(PECL gearman >= 0.5.0)

GearmanWorker::addServer — Добавление сервера заданий

Описание

public GearmanWorker::addServer ([ string $host = 127.0.0.1 [, int $port = 4730 ]] ) : bool

Добавляет сервер заданий в обработчик. Обработчик хранит список серверов, от которых он может получать задания на обработку. Метод просто добавляет информацию о сервере в этот список, никакого обмена данными между сервером и обработчиком в этот момент не происходит.

Список параметров

host

Имя хоста сервера задач.

port

Порт сервера задач.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Добавление альтернативных Gearman серверов

<?php
$worker= new GearmanWorker();
$worker->addServer("10.0.0.1");
$worker->addServer("10.0.0.2", 7003);
?>

Смотрите также

  • GearmanWorker::addServers() - Добавление серверов заданий


Добавление серверов заданий

  • « GearmanWorker::addServer
  • GearmanWorker::clone »
  • PHP Manual
  • GearmanWorker
  • Добавление серверов заданий

GearmanWorker::addServers

(PECL gearman >= 0.5.0)

GearmanWorker::addServers — Добавление серверов заданий

Описание

public GearmanWorker::addServers ( string $servers = 127.0.0.1:4730 ) : bool

Добавляет один или несколько серверов задач в данный обработчик. Обработчик хранит список серверов, от которых он может получать задания на обработку. Метод просто добавляет информацию о серверах в этот список, никакого обмена данными между сервером и обработчиком в этот момент не происходит.

Список параметров

servers

Список разделенных запятой серверов в формате хост:порт. Если порт не указан, по умолчанию принимается номер 4730.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Добавление двух серверов заданий

<?php

$worker= new GearmanWorker();
$worker->addServers("10.0.0.1,10.0.0.2:7003");

?>

Смотрите также

  • GearmanWorker::addServer() - Добавление сервера заданий


Создание копии обработчика

  • « GearmanWorker::addServers
  • GearmanWorker::__construct »
  • PHP Manual
  • GearmanWorker
  • Создание копии обработчика

GearmanWorker::clone

(PECL gearman >= 0.5.0)

GearmanWorker::clone — Создание копии обработчика

Описание

public GearmanWorker::clone ( void ) : void

Создает копию обработчика.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса GearmanWorker.


Создание объекта GearmanWorker

  • « GearmanWorker::clone
  • GearmanWorker::echo »
  • PHP Manual
  • GearmanWorker
  • Создание объекта GearmanWorker

GearmanWorker::__construct

(PECL gearman >= 0.5.0)

GearmanWorker::__construct — Создание объекта GearmanWorker

Описание

public GearmanWorker::__construct ( void )

Создает объект GearmanWorker, представляющий обработчик, который подключается к серверу задач и принимает задачи для выполнения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса GearmanWorker.

Смотрите также

  • GearmanWorker::clone() - Создание копии обработчика


Проверка отклика серверов заданий

  • « GearmanWorker::__construct
  • GearmanWorker::error »
  • PHP Manual
  • GearmanWorker
  • Проверка отклика серверов заданий

GearmanWorker::echo

(PECL gearman >= 0.6.0)

GearmanWorker::echo — Проверка отклика серверов заданий

Описание

public GearmanWorker::echo ( string $workload ) : bool

Посылает данные всем серверам задач, чтобы проверить, какие из серверов ответят. Это отладочная функция, для проверки отклика серверов.

Список параметров

workload

Произвольные сериализованные данные

Возвращаемые значения

Стандартное для Gearman возвращаемое значение.

Смотрите также

  • GearmanClient::echo() - Отправляет данные всем серверам заданий, чтобы проверить отклик [Устаревший метод]


Получение последней обнаруженной ошибки

  • « GearmanWorker::echo
  • GearmanWorker::getErrno »
  • PHP Manual
  • GearmanWorker
  • Получение последней обнаруженной ошибки

GearmanWorker::error

(PECL gearman >= 0.5.0)

GearmanWorker::error — Получение последней обнаруженной ошибки

Описание

public GearmanWorker::error ( void ) : string

Возвращает строку с сообщением о последней обнаруженной ошибке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка с описанием ошибки.

Смотрите также

  • GearmanWorker::getErrno() - Получение номера ошибки


Получение номера ошибки

  • « GearmanWorker::error
  • GearmanWorker::options »
  • PHP Manual
  • GearmanWorker
  • Получение номера ошибки

GearmanWorker::getErrno

(PECL gearman >= 0.5.0)

GearmanWorker::getErrno — Получение номера ошибки

Описание

public GearmanWorker::getErrno ( void ) : int

Возвращает номер ошибки, когда какой-либо метод вернул значение GEARMAN_ERRNO.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Допустимый номер ошибки.

Смотрите также

  • GearmanWorker::error() - Получение последней обнаруженной ошибки


Получение настроек обработчика

  • « GearmanWorker::getErrno
  • GearmanWorker::register »
  • PHP Manual
  • GearmanWorker
  • Получение настроек обработчика

GearmanWorker::options

(PECL gearman >= 0.6.0)

GearmanWorker::options — Получение настроек обработчика

Описание

public GearmanWorker::options ( void ) : int

Получает настройки обработчика, ранее установленные для него.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущие настройки обработчика.

Смотрите также

  • GearmanWorker::setOptions() - Установка настроек обработчика


Регистрация функции на сервере заданий

  • « GearmanWorker::options
  • GearmanWorker::removeOptions »
  • PHP Manual
  • GearmanWorker
  • Регистрация функции на сервере заданий

GearmanWorker::register

(PECL gearman >= 0.6.0)

GearmanWorker::register — Регистрация функции на сервере заданий

Описание

public GearmanWorker::register ( string $function_name [, int $timeout ] ) : bool

Регистрирует имя функции на сервере заданий и дополнительно задает тайм-аут. Тайм-аут определяет, сколько секунд сервер будет ждать, после чего объявит задание проваленным. Нулевое значение тайм-аута означает отсутствие ограничения.

Список параметров

function_name

Имя функции, которое необходимо зарегистрировать на сервере.

timeout

Временной интервал в секундах.

Возвращаемые значения

Стандартное возвращаемое значение Gearman.

Смотрите также

  • GearmanWorker::unregister() - Удалить регистрацию имени функции на всех серверах заданий
  • GearmanWorker::unregisterAll() - Удаление регистрации всех имен функций на серверах заданий


Удаление настроек обработчика

  • « GearmanWorker::register
  • GearmanWorker::returnCode »
  • PHP Manual
  • GearmanWorker
  • Удаление настроек обработчика

GearmanWorker::removeOptions

(PECL gearman >= 0.6.0)

GearmanWorker::removeOptions — Удаление настроек обработчика

Описание

public GearmanWorker::removeOptions ( int $option ) : bool

Удаляет одну или несколько настроек обработчика.

Список параметров

option

Настройки, которые необходимо удалить.

Возвращаемые значения

Всегда возвращает TRUE.

Смотрите также

  • GearmanWorker::options() - Получение настроек обработчика
  • GearmanWorker::setOptions() - Установка настроек обработчика
  • GearmanWorker::addOptions() - Добавление настроек обработчика


Получение последнего кода возврата Gearman

  • « GearmanWorker::removeOptions
  • GearmanWorker::setId »
  • PHP Manual
  • GearmanWorker
  • Получение последнего кода возврата Gearman

GearmanWorker::returnCode

(PECL gearman >= 0.5.0)

GearmanWorker::returnCode — Получение последнего кода возврата Gearman

Описание

public GearmanWorker::returnCode ( void ) : int

Извлекает последний код возврата Gearman.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Допустимый возвращаемый код Gearman.

Смотрите также

  • GearmanWorker::error() - Получение последней обнаруженной ошибки
  • GearmanWorker::getErrno() - Получение номера ошибки


Назначает обработчику идентификатор, чтобы в дальнейшем иметь возможность опросить все доступные обработчики

  • « GearmanWorker::returnCode
  • GearmanWorker::setOptions »
  • PHP Manual
  • GearmanWorker
  • Назначает обработчику идентификатор, чтобы в дальнейшем иметь возможность опросить все доступные обработчики

GearmanWorker::setId

(Информация о версии неизвестна, возможно, только в Git)

GearmanWorker::setId — Назначает обработчику идентификатор, чтобы в дальнейшем иметь возможность опросить все доступные обработчики

Описание

public GearmanWorker::setId ( string $id ) : bool

Назначает обработчику идентификатор.

Список параметров

id

Строковый идентификатор.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования GearmanWorker::setId()

Задание идентификатора для простого обработчика.

<?php
$worker= new GearmanWorker();
$worker->setId('test');
?>

Результатом выполнения данного примера будет что-то подобное:

Run the following command:
gearadmin --workers

Output:
30 ::3a3a:3361:3361:3a33%976303667 - : test


Установка настроек обработчика

  • « GearmanWorker::setId
  • GearmanWorker::setTimeout »
  • PHP Manual
  • GearmanWorker
  • Установка настроек обработчика

GearmanWorker::setOptions

(PECL gearman >= 0.5.0)

GearmanWorker::setOptions — Установка настроек обработчика

Описание

public GearmanWorker::setOptions ( int $option ) : bool

Устанавливает значения одной или нескольких настроек.

Список параметров

option

Настройки, которые необходимо установить.

Возвращаемые значения

Всегда возвращает TRUE.

Смотрите также

  • GearmanWorker::options() - Получение настроек обработчика
  • GearmanWorker::addOptions() - Добавление настроек обработчика
  • GearmanWorker::removeOptions() - Удаление настроек обработчика
  • GearmanClient::setOptions() - Установка настроек клиента


Задание тайм-аута ожидания ввода/вывода на сокете

  • « GearmanWorker::setOptions
  • GearmanWorker::timeout »
  • PHP Manual
  • GearmanWorker
  • Задание тайм-аута ожидания ввода/вывода на сокете

GearmanWorker::setTimeout

(PECL gearman >= 0.6.0)

GearmanWorker::setTimeout — Задание тайм-аута ожидания ввода/вывода на сокете

Описание

public GearmanWorker::setTimeout ( int $timeout ) : bool

Устанавливает тайм-аут ожидания активности на сокете.

Список параметров

timeout

Временной интервал в миллисекундах. Отрицательное значение указывает на отсутствие ограничений.

Возвращаемые значения

Всегда возвращает TRUE.

Примеры

Пример #1 Простой обработчик с пятисекундным тайм-аутом

<?php

echo "Запуск\n";

# создаем объект обработчика.
$gmworker= new GearmanWorker();

# добавляем сервер по умолчанию (localhost).
$gmworker->addServer();

# регистрируем функцию "reverse" на сервере
$gmworker->addFunction("reverse", "reverse_fn");

# устанавливаем тайм-аут ожидания 5 секунд
$gmworker->setTimeout(5000);

echo "Ожидание задания...\n";
while(@$gmworker->work() || $gmworker->returnCode() == GEARMAN_TIMEOUT)
{
  if ($gmworker->returnCode() == GEARMAN_TIMEOUT)
  {
    # Обычно хотелось бы сделать что-то полезное здесь ...
    echo "Время вышло. Ожидание следующего задания...\n";
    continue;
  }

  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "Код возврата: " . $gmworker->returnCode() . "\n";
    break;
  }
}

echo "Готово\n";

function reverse_fn($job)
{
  return strrev($job->workload());
}

?>

Если запустить этот обработчик и не передавать ему заданий, вывод будет примерно таким:

Запуск
Ожидание задания...
Время вышло. Ожидание следующего задания...
Время вышло. Ожидание следующего задания...
Время вышло. Ожидание следующего задания...

Смотрите также

  • GearmanWorker::timeout() - Получение значения тайм-аута ожидания запросов на сокете


Получение значения тайм-аута ожидания запросов на сокете

  • « GearmanWorker::setTimeout
  • GearmanWorker::unregister »
  • PHP Manual
  • GearmanWorker
  • Получение значения тайм-аута ожидания запросов на сокете

GearmanWorker::timeout

(PECL gearman >= 0.6.0)

GearmanWorker::timeout — Получение значения тайм-аута ожидания запросов на сокете

Описание

public GearmanWorker::timeout ( void ) : int

Возвращает текущее значение тайм-аута, то есть время, в течение которого обработчик ожидает запрос от сервера заданий.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Временной интервал в миллисекундах. Отрицательное значение указывает на бесконечный тайм-аут.

Смотрите также

  • GearmanWorker::setTimeout() - Задание тайм-аута ожидания ввода/вывода на сокете


Удалить регистрацию имени функции на всех серверах заданий

  • « GearmanWorker::timeout
  • GearmanWorker::unregisterAll »
  • PHP Manual
  • GearmanWorker
  • Удалить регистрацию имени функции на всех серверах заданий

GearmanWorker::unregister

(PECL gearman >= 0.6.0)

GearmanWorker::unregister — Удалить регистрацию имени функции на всех серверах заданий

Описание

public GearmanWorker::unregister ( string $function_name ) : bool

Снимает регистрацию имени функции на всех серверах заданий. Это значит, что этому обработчику (этой функции) задания посылаться больше не будут.

Список параметров

function_name

Имя функции, регистрацию которой требуется снять.

Возвращаемые значения

Стандартное возвращаемое значение Gearman.

Смотрите также

  • GearmanWorker::register() - Регистрация функции на сервере заданий
  • GearmanWorker::unregisterAll() - Удаление регистрации всех имен функций на серверах заданий


Удаление регистрации всех имен функций на серверах заданий

  • « GearmanWorker::unregister
  • GearmanWorker::wait »
  • PHP Manual
  • GearmanWorker
  • Удаление регистрации всех имен функций на серверах заданий

GearmanWorker::unregisterAll

(PECL gearman >= 0.6.0)

GearmanWorker::unregisterAll — Удаление регистрации всех имен функций на серверах заданий

Описание

public GearmanWorker::unregisterAll ( void ) : bool

Снимает регистрацию всех ранее зарегистрированных функций на всех серверах заданий. Это значит, что этому обработчику больше не будут поступать никакие задачи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Стандартное возвращаемое значение Gearman.

Смотрите также

  • GearmanWorker::register() - Регистрация функции на сервере заданий
  • GearmanWorker::unregister() - Удалить регистрацию имени функции на всех серверах заданий


Ожидание запроса с одного из сервера задач

  • « GearmanWorker::unregisterAll
  • GearmanWorker::work »
  • PHP Manual
  • GearmanWorker
  • Ожидание запроса с одного из сервера задач

GearmanWorker::wait

(PECL gearman >= 0.6.0)

GearmanWorker::wait — Ожидание запроса с одного из сервера задач

Описание

public GearmanWorker::wait ( void ) : bool

При работе в неблокирующем режиме ввода/вывода заставляет обработчика ожидать задания от какого-либо сервера заданий Gearman. В случае отказа будет выдано предупреждение E_WARNING с указанием последней произошедшей ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Запуск обработчика в неблокирующем режиме

<?php

echo "Запуск\n";

# создание объекта обработчика
$worker= new GearmanWorker();

# включение неблокирующего режима
$worker->addOptions(GEARMAN_WORKER_NON_BLOCKING);

# добавление сервера по умолчанию (localhost на порту 4730)
$worker->addServer();

# добавление callback-функции
$worker->addFunction('reverse', 'reverse_fn');

# попробуем получить задание
while (@$worker->work() ||
       $worker->returnCode() == GEARMAN_IO_WAIT ||
       $worker->returnCode() == GEARMAN_NO_JOBS)
{
  if ($worker->returnCode() == GEARMAN_SUCCESS)
    continue;

  echo "Ожидание следующего задания...\n";
  if (!@$worker->wait())
  {
    if ($worker->returnCode() == GEARMAN_NO_ACTIVE_FDS)
    {
      # мы не подключены ни к одному из серверов, подождем немного
      # и попробуем переподключиться
      sleep(5);
      continue;
    }
    break;
  }
}

echo "Ошибка в обработчике: " . $worker->error() . "\n";

function reverse_fn($job)
{
  return strrev($job->workload());
}

?>

Смотрите также

  • GearmanWorker::work() - Ожидание и выполнение заданий


Ожидание и выполнение заданий

  • « GearmanWorker::wait
  • GearmanException »
  • PHP Manual
  • GearmanWorker
  • Ожидание и выполнение заданий

GearmanWorker::work

(PECL gearman >= 0.5.0)

GearmanWorker::work — Ожидание и выполнение заданий

Описание

public GearmanWorker::work ( void ) : bool

Ждет от сервера задание, а затем вызывает соответствующую callback-функцию для его обработки. Вызывает ошибку уровня E_WARNING с информацией о последней ошибке Gearman в случаях, когда код возврата функции отличается от GEARMAN_SUCCESS, GEARMAN_IO_WAIT или GEARMAN_WORK_FAIL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования GearmanWorker::work()

<?php

# создаем обработчик
$worker = new GearmanWorker();

# добавляем сервер заданий по умолчанию (localhost)
$worker->addServer();

# добавляем callback-функцию
$worker->addFunction("reverse", "my_reverse_function");

# запускаем обработчик, ожидающий заданий от сервера
while ($worker->work());

function my_reverse_function($job)
{
  return strrev($job->workload());
}

?>

Смотрите также

  • GearmanWorker::addFunction() - Регистрация и добавление callback-функции


Класс GearmanException

(PECL gearman >= 0.5.0)

Введение

Обзор классов

GearmanException extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Net Gopher

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Простой пример
  • Функции Gopher
    • gopher_parsedir — Преобразует директорию в формате gopher в ассоциативный массив


Введение

Протокол gopher, как определено в » RFC 1436, в целом считается предком современного протокола HTTP. Тем не менее, gopher также был предназначен для предоставления ссылок на ресурсы, отличные от gopher, включая telnet, wais, nntp и даже http. Это расширение добавляет поддержку gopher для оберток URL PHP, и предоставляет вспомогательную функцию gopher_parsedir() для определения списков каталога в формате gopher.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/net_gopher


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы Net_Gopher
Константа | Значение | Описание
GOPHER_DOCUMENT | 0 | Стандартный документ text/plain.
GOPHER_DIRECTORY | 1 | Ресурс содержащий список директории в формате gopher.
GOPHER_BINHEX | 4 | Бинарный файл кодированный BinHex.
GOPHER_DOSBINARY | 5 | Бинарный архив в формате DOS.
GOPHER_UUENCODED | 6 | Файл кодированный UUEncod.
GOPHER_BINARY | 9 | Обычный бинарный файл.
GOPHER_INFO | 255 | Информационная запись
GOPHER_HTTP | 254 | Ссылка на ресурс HTTP.
GOPHER_UNKNOWN | -1 | Неопознанная запись.


  • « Предопределенные константы
  • Простой пример »
  • PHP Manual
  • Gopher
  • Примеры

Примеры

Содержание

  • Простой пример


  • « Примеры
  • Функции Gopher »
  • PHP Manual
  • Примеры
  • Простой пример

Простой пример

<?php
readfile("gopher://gopher.example.com/somedocument");
?>


Функции Gopher

Содержание

  • gopher_parsedir — Преобразует директорию в формате gopher в ассоциативный массив


Преобразует директорию в формате gopher в ассоциативный массив

  • « Функции Gopher
  • Gupnp »
  • PHP Manual
  • Функции Gopher
  • Преобразует директорию в формате gopher в ассоциативный массив

gopher_parsedir

(PECL net_gopher >= 0.1)

gopher_parsedir — Преобразует директорию в формате gopher в ассоциативный массив

Описание

gopher_parsedir ( string $dirent ) : array

gopher_parsedir() разбирает директорию в формате gopher в ассоциативный массив.

В то время как gopher возвращает text/plain документы для обычного запроса. При запросе директории (например /) возвращается специальным образом кодированный набор строк, каждая из которых является является одной записью директории или информационной строкой.

Список параметров

dirent

Запись директории.

Возвращаемые значения

Возвращает ассоциативный массив со следующими записями:

  • type - одна из констант GOPHER_XXX.
  • title - имя ресурса.
  • path - путь ресурса.
  • host - доменное имя хоста, содержащего данный документ (или директорию).
  • port - порт, по которому установлено соединение с host.

В случае неудачи, дополнительная запись data в возвращаемом массиве будет содержать разбираемую строку.

Примеры

Пример #1 Гипотетический вывод с 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

В примере выше, корневая директория на gopher.example.com знает об одном DOCUMENT с идентификатором 0, расположенном по адресу gopher://gopher.example.com:70/allabout.txt. Также она она знает о двух других директориях gopher://gopher.exmaple.com:70/stories и gopher://gopher.ejemplo.co.es:70/. В дополнение тут есть бинарный файл, ссылка на HTTP URL и несколько информационных строк.

Передавая каждую строку вывода в функцию gopher_parsedir(), мы получим ассоциативный массив, содержащий разобранные данные.

Пример #2 Пример использования gopher_parsedir()

<?php
$directory = file("gopher://gopher.example.com");

foreach($directory as $dirent) {
    print_r(gopher_parsedir($dirent));
}
?>

Результат выполнения данного примера:

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
)


Gupnp

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Просмотр устройств и сервисов
    • Реализация устройства BinaryLight
  • Функции Gupnp
    • gupnp_context_get_host_ip — Get the IP address
    • gupnp_context_get_port — Get the port
    • gupnp_context_get_subscription_timeout — Get the event subscription timeout
    • gupnp_context_host_path — Start hosting
    • gupnp_context_new — Create a new context
    • gupnp_context_set_subscription_timeout — Sets the event subscription timeout
    • gupnp_context_timeout_add — Sets a function to be called at regular intervals
    • gupnp_context_unhost_path — Stop hosting
    • gupnp_control_point_browse_start — Start browsing
    • gupnp_control_point_browse_stop — Stop browsing
    • gupnp_control_point_callback_set — Set control point callback
    • gupnp_control_point_new — Create a new control point
    • gupnp_device_action_callback_set — Set device callback function
    • gupnp_device_info_get_service — Get the service with type
    • gupnp_device_info_get — Get info of root device
    • gupnp_root_device_get_available — Check whether root device is available
    • gupnp_root_device_get_relative_location — Get the relative location of root device
    • gupnp_root_device_new — Create a new root device
    • gupnp_root_device_set_available — Set whether or not root_device is available
    • gupnp_root_device_start — Start main loop
    • gupnp_root_device_stop — Stop main loop
    • gupnp_service_action_get — Retrieves the specified action arguments
    • gupnp_service_action_return_error — Return error code
    • gupnp_service_action_return — Return successfully
    • gupnp_service_action_set — Sets the specified action return values
    • gupnp_service_freeze_notify — Freeze new notifications
    • gupnp_service_info_get_introspection — Get resource introspection of service
    • gupnp_service_info_get — Get full info of service
    • gupnp_service_introspection_get_state_variable — Returns the state variable data
    • gupnp_service_notify — Notifies listening clients
    • gupnp_service_proxy_action_get — Send action to the service and get value
    • gupnp_service_proxy_action_set — Send action to the service and set value
    • gupnp_service_proxy_add_notify — Sets up callback for variable change notification
    • gupnp_service_proxy_callback_set — Set service proxy callback for signal
    • gupnp_service_proxy_get_subscribed — Check whether subscription is valid to the service
    • gupnp_service_proxy_remove_notify — Cancels the variable change notification
    • gupnp_service_proxy_send_action — Send action with multiple parameters synchronously
    • gupnp_service_proxy_set_subscribed — (Un)subscribes to the service
    • gupnp_service_thaw_notify — Sends out any pending notifications and stops queuing of new ones


Введение

GUPnP - это открытый, объектно-ориентированный фреймворк, предназначенный для создания UPnP устройств и контрольных точек, написанный на C с использованием GObject и libsoup. Модуль является оберткой над GUPnP и предоставляет аналогичное API. Исходные коды и дополнительная документация доступны на » официальном сайте


Требования

Для использования модуля PECL/Gupnp необходимо установить » библиотеку gUPnP версии 0.12.7 или выше. Ей потребуется glib-2.0, gssdp-1.0, libsoup-2.4 или выше.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/gupnp

Замечание: Если скрипт ./configure не сможет найти файлов libgupnp (например, они установлены в нестандартный каталог), используйте ./configure --with-gupnp=$PREFIX, где $PREFIX указывает на директорию с libgupnp.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

GUPNP_TYPE_BOOLEAN (integer)
GUPNP_TYPE_INT (integer)
GUPNP_TYPE_LONG (integer)
GUPNP_TYPE_DOUBLE (integer)
GUPNP_TYPE_FLOAT (integer)
GUPNP_TYPE_STRING (integer)
GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE (integer)
GUPNP_SIGNAL_DEVICE_PROXY_UNAVAILABLE (integer)
GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE (integer)
GUPNP_SIGNAL_SERVICE_PROXY_UNAVAILABLE (integer)
GUPNP_SIGNAL_ACTION_INVOKED (integer)
GUPNP_SIGNAL_NOTIFY_FAILED (integer)
GUPNP_SIGNAL_SUBSCRIPTION_LOST (integer)
GUPNP_CONTROL_ERROR_INVALID_ACTION (integer)
GUPNP_CONTROL_ERROR_INVALID_ARGS (integer)
GUPNP_CONTROL_ERROR_OUT_OF_SYNC (integer)
GUPNP_CONTROL_ERROR_ACTION_FAILED (integer)


  • « Предопределенные константы
  • Просмотр устройств и сервисов »
  • PHP Manual
  • Gupnp
  • Примеры

Примеры

Содержание

  • Просмотр устройств и сервисов
  • Реализация устройства BinaryLight


Просмотр устройств и сервисов

Пример демонстрирует как получить информацию обо всех устройствах и сервисах. В нем мы запускаем бесконечный цикл (используя CLI) и, если будут найдены устройства или сервисы, будем вызывать callback-функцию.

Пример #1 Поиск всех устройств и сервисов UPnP.

<?php

/* Callback-функция для устройств */
function device_proxy_available_cb($proxy, $arg)
{
    $info = gupnp_device_info_get($proxy);

    $type = $info['device_type'];
    $location = $info['location'];

    printf("Устройство доступно:\n");
    printf("\tтип:     %s\n", $type);
    printf("\tместоположение: %s\n", $location);
}

/* Callback-функция для  сервисов */
function service_proxy_available_cb($proxy, $arg)
{
    $info = gupnp_service_info_get($proxy);

    $type = $info['service_type'];
    $location = $info['location'];

    printf("Сервис доступен:\n");
    printf("\tтип:     %s\n", $type);
    printf("\tместоположение: %s\n", $location);
}

/* Создаем контекст UPnP */
$context = gupnp_context_new();
if (!$context) {
    printf("Ошибка создания контекста GUPnP\n");
    exit(-1);
}

/* Нам интересно ВСЁ!!! */
$cp = gupnp_control_point_new($context, "ssdp:all");

/* Устанавливаем callback-функции */
gupnp_control_point_callback_set($cp,
    GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE, 'device_proxy_available_cb');
gupnp_control_point_callback_set($cp,
    GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE, 'service_proxy_available_cb');

/* Запускаем поиск (бесконечный цикл, нажмите Ctrl-C для выхода) */
gupnp_control_point_browse_start($cp);

?>


Реализация устройства BinaryLight

Пример устройства/сервиса UPnP, реализующего устройство BinaryLight и сервис SwitchPower для эмуляции выключателя света.

Пользовательский интерфейс сделан максимально простым для демонстрации базовых концепций и методов.

Пример #1 Реализация сервера управления освещением

<?php

/* SetTarget */
function set_target_cb($service, $action, $arg)
{
    /* Получаем новое целевое значение */
    $target = gupnp_service_action_get($action, 'NewTargetValue', GUPNP_TYPE_BOOLEAN);

    /* Если новая цель не соответствует текущему состоянию, изменить состояние и послать
        уведомление о том, что статус изменился. */
    if ($target != $GLOBALS['status']) {
        $GLOBALS['status'] = $target;
        gupnp_service_notify($service, 'Status', GUPNP_TYPE_BOOLEAN, $GLOBALS['status']);
        printf("Свет сейчас %s.\n", $GLOBALS['status'] ? "включен" : "выключен");
    }

    /* Вернуть коиенту статус успеха */
    gupnp_service_action_return($action);
}

/* GetTarget */
function get_target_cb($service, $action, $arg)
{
    gupnp_service_action_set($action, 'RetTargetValue', GUPNP_TYPE_BOOLEAN, $GLOBALS['status']);
    gupnp_service_action_return($action);
}

/* GetStatus */
function get_status_cb($service, $action, $arg)
{
    gupnp_service_action_set($action, 'ResultStatus', GUPNP_TYPE_BOOLEAN, $GLOBALS['status']);
    gupnp_service_action_return($action);
}

/* По умолчанию свет выключен */
$GLOBALS['status'] = false;
printf("Свет сейчас %s.\n", $GLOBALS['status'] ? "включен" : "выключен");

/* Создаем контекст UPnP */
$context = gupnp_context_new();
if (!$context) {
    printf("Ошибка создания контекста GUPnP\n");
    exit(-1);
}

/* Директория, содержащая файлы описания устройства и сервиса */
gupnp_context_host_path($context, "./web", "");

/* Создаем корневое устройство */
$location = "/BinaryLight.xml";
$dev = gupnp_root_device_new($context, $location);
gupnp_root_device_set_available($dev, true);

/* Получение сервиса переключения из корневого устройства */
$service_type = "urn:schemas-upnp-org:service:SwitchPower:1";
$service = gupnp_device_info_get_service($dev, $service_type);
if (!$service) {
    die("Не удается получить сервис SwitchPower1\n");
}

/* Устанавливаем callback для GetStatus */
gupnp_device_action_callback_set($service, GUPNP_SIGNAL_ACTION_INVOKED, "GetStatus",
    "get_status_cb", "action data, GetStatus");

/* Устанавливаем callback для GetTarget */
gupnp_device_action_callback_set($service, GUPNP_SIGNAL_ACTION_INVOKED, "GetTarget",
    "get_target_cb", "action data, GetTarget");

/* Устанавливаем callback для SetTarget */
gupnp_device_action_callback_set($service, GUPNP_SIGNAL_ACTION_INVOKED, "SetTarget",
    "set_target_cb", "action data, SetTarget");

/* Запускаем главный цикл */
gupnp_root_device_start($dev);

?>

Пример #2 Реализация клиента управления освещением

<?php

function service_proxy_available_cb($proxy, $arg)
{
    $mode = $arg['mode'];

    printf("Установить подписку\n");
    gupnp_service_proxy_set_subscribed($proxy, true);

    /* Добавляем оповещение при изменении статуса */
    if (!gupnp_service_proxy_add_notify($proxy, "Status",
            GUPNP_TYPE_BOOLEAN, "status_changed_cb", NULL)) {
        printf("Не удалось добавить уведомление\n");
    }

    if ($mode == 'TOGGLE') {
        /* При переключении для начала выясняем текущий статус */
        $target = gupnp_service_proxy_action_get($proxy, 'GetStatus', 'ResultStatus', GUPNP_TYPE_BOOLEAN);

        /* А потом меняем его */
        $target = ! $target;
    } else {
        /* Режим - это логическое значение */
        $target = ($mode == 'ON') ? true : false;
    }

    /* Устанавливаем цель */
    if (!gupnp_service_proxy_action_set($proxy, 'SetTarget', 'NewTargetValue', $target, GUPNP_TYPE_BOOLEAN)) {
        printf("Невозможно установить переключатель\n");
    } else {
        printf("Установите переключатель в %s.\n", $target ? "включен" : "выключен");
    }

    /* Останавливаем просмотр */
    gupnp_control_point_browse_stop($arg['cp']);
}

function status_changed_cb($variable, $value, $arg)
{
    printf("Статус был изменен\n");
    printf("\tимя переменной: %s\n", $variable);
    printf("\tзначение: %s\n", (int)$value);
    printf("\n");
}

/* Разбираем аргументы командной строки */
if (count($argv) != 2) {
    printf("Использование: light-client.php [on|off|toggle]\n");
    exit(-1);
}

if ($argv[1] == "on") {
    $mode = 'ON';
} elseif ($argv[1] == "off") {
    $mode = 'OFF';
} elseif ($argv[1] == "toggle") {
    $mode = 'TOGGLE';
} else {
    usage ();
    exit(-1);
}

/* Создаем контекст UPnP */
$context = gupnp_context_new();
if (!$context) {
    printf("Ошибка создания контекста GUPnP\n");
    exit(-1);
}

/* Создаем контрольную точку, ищем сервис SwitchPower */
$cp = gupnp_control_point_new ($context,
        "urn:schemas-upnp-org:service:SwitchPower:1");

/* Соединяемся с callback-функцией поиска сервиса */
$cb = "service_proxy_available_cb";
$arg = array('mode' => $mode, 'cp' => $cp);
gupnp_control_point_callback_set($cp, GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE, $cb, $arg);

/* Начинаем просмотр */
gupnp_control_point_browse_start($cp);

?>


Функции Gupnp

Содержание

  • gupnp_context_get_host_ip — Get the IP address
  • gupnp_context_get_port — Get the port
  • gupnp_context_get_subscription_timeout — Get the event subscription timeout
  • gupnp_context_host_path — Start hosting
  • gupnp_context_new — Create a new context
  • gupnp_context_set_subscription_timeout — Sets the event subscription timeout
  • gupnp_context_timeout_add — Sets a function to be called at regular intervals
  • gupnp_context_unhost_path — Stop hosting
  • gupnp_control_point_browse_start — Start browsing
  • gupnp_control_point_browse_stop — Stop browsing
  • gupnp_control_point_callback_set — Set control point callback
  • gupnp_control_point_new — Create a new control point
  • gupnp_device_action_callback_set — Set device callback function
  • gupnp_device_info_get_service — Get the service with type
  • gupnp_device_info_get — Get info of root device
  • gupnp_root_device_get_available — Check whether root device is available
  • gupnp_root_device_get_relative_location — Get the relative location of root device
  • gupnp_root_device_new — Create a new root device
  • gupnp_root_device_set_available — Set whether or not root_device is available
  • gupnp_root_device_start — Start main loop
  • gupnp_root_device_stop — Stop main loop
  • gupnp_service_action_get — Retrieves the specified action arguments
  • gupnp_service_action_return_error — Return error code
  • gupnp_service_action_return — Return successfully
  • gupnp_service_action_set — Sets the specified action return values
  • gupnp_service_freeze_notify — Freeze new notifications
  • gupnp_service_info_get_introspection — Get resource introspection of service
  • gupnp_service_info_get — Get full info of service
  • gupnp_service_introspection_get_state_variable — Returns the state variable data
  • gupnp_service_notify — Notifies listening clients
  • gupnp_service_proxy_action_get — Send action to the service and get value
  • gupnp_service_proxy_action_set — Send action to the service and set value
  • gupnp_service_proxy_add_notify — Sets up callback for variable change notification
  • gupnp_service_proxy_callback_set — Set service proxy callback for signal
  • gupnp_service_proxy_get_subscribed — Check whether subscription is valid to the service
  • gupnp_service_proxy_remove_notify — Cancels the variable change notification
  • gupnp_service_proxy_send_action — Send action with multiple parameters synchronously
  • gupnp_service_proxy_set_subscribed — (Un)subscribes to the service
  • gupnp_service_thaw_notify — Sends out any pending notifications and stops queuing of new ones


Get the IP address

  • « Функции Gupnp
  • gupnp_context_get_port »
  • PHP Manual
  • Функции Gupnp
  • Get the IP address

gupnp_context_get_host_ip

(PECL gupnp >= 0.1.0)

gupnp_context_get_host_ip — Get the IP address

Описание

gupnp_context_get_host_ip ( resource $context ) : string

Get the IP address we advertise ourselves as using.

Список параметров

context

A context identifier, returned by gupnp_context_new().

Возвращаемые значения

Returns the IP address for the current context and FALSE on error.

Примеры

Пример #1 Create new UPnP context and get IP address of the host

<?php

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

/* Get IP address for the UPnP context */
$ip = gupnp_context_get_host_ip($context);
echo $ip;

?>

Смотрите также

  • gupnp_context_new() - Create a new context
  • gupnp_context_get_port() - Get the port


Get the port

  • « gupnp_context_get_host_ip
  • gupnp_context_get_subscription_timeout »
  • PHP Manual
  • Функции Gupnp
  • Get the port

gupnp_context_get_port

(PECL gupnp >= 0.1.0)

gupnp_context_get_port — Get the port

Описание

gupnp_context_get_port ( resource $context ) : int

Get the port that the SOAP server is running on.

Список параметров

context

A context identifier, returned by gupnp_context_new().

Возвращаемые значения

Returns the port number for the current context and FALSE on error.

Примеры

Пример #1 Create new UPnP context and get port number

<?php

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

/* Get the port number for the UPnP context */
$port = gupnp_context_get_port($context);
echo $port;

?>

Смотрите также

  • gupnp_context_new() - Create a new context
  • gupnp_context_get_host_ip() - Get the IP address


Get the event subscription timeout

  • « gupnp_context_get_port
  • gupnp_context_host_path »
  • PHP Manual
  • Функции Gupnp
  • Get the event subscription timeout

gupnp_context_get_subscription_timeout

(PECL gupnp >= 0.1.0)

gupnp_context_get_subscription_timeout — Get the event subscription timeout

Описание

gupnp_context_get_subscription_timeout ( resource $context ) : int

Get the event subscription timeout (in seconds), or 0 meaning there is no timeout.

Список параметров

context

A context identifier, returned by gupnp_context_new().

Возвращаемые значения

The event subscription timeout in seconds.

Смотрите также

  • gupnp_context_new() - Create a new context
  • gupnp_context_set_subscription_timeout() - Sets the event subscription timeout


Start hosting

  • « gupnp_context_get_subscription_timeout
  • gupnp_context_new »
  • PHP Manual
  • Функции Gupnp
  • Start hosting

gupnp_context_host_path

(PECL gupnp >= 0.1.0)

gupnp_context_host_path — Start hosting

Описание

gupnp_context_host_path ( resource $context , string $local_path , string $server_path ) : bool

Start hosting local_path at server_path. Files with the path local_path.LOCALE (if they exist) will be served up when LOCALE is specified in the request's Accept-Language header.

Список параметров

context

A context identifier, returned by gupnp_context_new().

local_path

Path to the local file or folder to be hosted.

server_path

Web server path where local_path should be hosted.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Create new UPnP context and set host path

<?php

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

/* Host current directory */
gupnp_context_host_path($context, "./web", "");

?>

Смотрите также

  • gupnp_context_new() - Create a new context
  • gupnp_context_unhost_path() - Stop hosting


Create a new context

  • « gupnp_context_host_path
  • gupnp_context_set_subscription_timeout »
  • PHP Manual
  • Функции Gupnp
  • Create a new context

gupnp_context_new

(PECL gupnp >= 0.1.0)

gupnp_context_new — Create a new context

Описание

gupnp_context_new ([ string $host_ip [, int $port = 0 ]] ) : resource

Create a new context with the specified host_ip and port.

Список параметров

host_ip

The local host's IP address, or NULL to use the IP address of the first non-loopback network interface.

port

Port to run on, or 0 if you don't care what port is used.

Возвращаемые значения

A context identifier.

Примеры

Пример #1 Create new UPnP context

<?php

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

?>

Ошибки

Issues E_WARNING with unable to create context.


Sets the event subscription timeout

  • « gupnp_context_new
  • gupnp_context_timeout_add »
  • PHP Manual
  • Функции Gupnp
  • Sets the event subscription timeout

gupnp_context_set_subscription_timeout

(PECL gupnp >= 0.1.0)

gupnp_context_set_subscription_timeout — Sets the event subscription timeout

Описание

gupnp_context_set_subscription_timeout ( resource $context , int $timeout ) : void

Sets the event subscription timeout (in seconds) to time out. Note that any client side subscriptions will automatically be renewed.

Список параметров

context

A context identifier, returned by gupnp_context_new().

timeout

The event subscription timeout in seconds. Use 0 if you don't want subscriptions to time out.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • gupnp_context_new() - Create a new context
  • gupnp_context_get_subscription_timeout() - Get the event subscription timeout


Sets a function to be called at regular intervals

  • « gupnp_context_set_subscription_timeout
  • gupnp_context_unhost_path »
  • PHP Manual
  • Функции Gupnp
  • Sets a function to be called at regular intervals

gupnp_context_timeout_add

(PECL gupnp >= 0.1.0)

gupnp_context_timeout_add — Sets a function to be called at regular intervals

Описание

gupnp_context_timeout_add ( resource $context , int $timeout , mixed $callback [, mixed $arg ] ) : bool

Sets a function to be called at regular intervals.

Список параметров

context

A context identifier, returned by gupnp_context_new().

timeout

A timeout in miliseconds.

callback

The callback function calling every timeout period of time. Typically, callback function takes on arg parameter.

arg

User data for callback.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Create new UPnP context and set callback

<?php

$user_data = "user data";

function timeout_cb($arg)
{
    printf("Call timeout_cb, user data: '%s'", $arg);
    return true;
}

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

/* Create root device */
$dev = gupnp_root_device_new($context, "/devicedesc.xml");

/* Set callback for timeout */
gupnp_context_timeout_add($context, 5000, "timeout_cb", $user_data);

/* Run the main loop */
gupnp_root_device_start($dev);

?>

Ошибки

Issues E_WARNING with not valid callback function.

Смотрите также

  • gupnp_context_new() - Create a new context


Stop hosting

  • « gupnp_context_timeout_add
  • gupnp_control_point_browse_start »
  • PHP Manual
  • Функции Gupnp
  • Stop hosting

gupnp_context_unhost_path

(PECL gupnp >= 0.1.0)

gupnp_context_unhost_path — Stop hosting

Описание

gupnp_context_unhost_path ( resource $context , string $server_path ) : bool

Stop hosting the file or folder at server_path.

Список параметров

context

A context identifier, returned by gupnp_context_new().

server_path

Web server path where the file or folder is hosted.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_context_new() - Create a new context
  • gupnp_context_host_path() - Start hosting


Start browsing

  • « gupnp_context_unhost_path
  • gupnp_control_point_browse_stop »
  • PHP Manual
  • Функции Gupnp
  • Start browsing

gupnp_control_point_browse_start

(PECL gupnp >= 0.1.0)

gupnp_control_point_browse_start — Start browsing

Описание

gupnp_control_point_browse_start ( resource $cpoint ) : bool

Start the search and calls user-defined callback.

Список параметров

cpoint

A control point identifier, returned by gupnp_control_point_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Create new UPnP context and start browsing

<?php

function device_proxy_available_cb($proxy, $arg)
{
    $info = gupnp_device_info_get($proxy);

    $type = $info['device_type'];
    $location = $info['location'];

    printf("Device available:\n");
    printf("type:     %s\n", $type);
    printf("location: %s\n", $location);
}

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

/* We're interested in everything */
$cp = gupnp_control_point_new($context, "ssdp:all");

gupnp_control_point_callback_set($cp,
    GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE, 'device_proxy_available_cb');

/* Start for browsing */
gupnp_control_point_browse_start($cp);

?>

Смотрите также

  • gupnp_control_point_new() - Create a new control point
  • gupnp_control_point_browse_stop() - Stop browsing


Stop browsing

  • « gupnp_control_point_browse_start
  • gupnp_control_point_callback_set »
  • PHP Manual
  • Функции Gupnp
  • Stop browsing

gupnp_control_point_browse_stop

(PECL gupnp >= 0.1.0)

gupnp_control_point_browse_stop — Stop browsing

Описание

gupnp_control_point_browse_stop ( resource $cpoint ) : bool

Stop the search and calls user-defined callback.

Список параметров

cpoint

A control point identifier, returned by gupnp_control_point_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_control_point_new() - Create a new control point
  • gupnp_control_point_browse_start() - Start browsing


Set control point callback

  • « gupnp_control_point_browse_stop
  • gupnp_control_point_new »
  • PHP Manual
  • Функции Gupnp
  • Set control point callback

gupnp_control_point_callback_set

(PECL gupnp >= 0.1.0)

gupnp_control_point_callback_set — Set control point callback

Описание

gupnp_control_point_callback_set ( resource $cpoint , int $signal , mixed $callback [, mixed $arg ] ) : bool

Set control point callback function for signal.

Список параметров

cpoint

A control point identifier, returned by gupnp_control_point_new().

signal

The value of signal. Signal can be one of the following values:

GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE
Emitted whenever a new device has become available.
GUPNP_SIGNAL_DEVICE_PROXY_UNAVAILABLE
Emitted whenever a device is not available any more.
GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE
Emitted whenever a new service has become available.
GUPNP_SIGNAL_SERVICE_PROXY_UNAVAILABLE
Emitted whenever a service is not available any more.

callback

The callback function for the certain signal. Typically, callback function takes on two parameters. The proxy parameter's identifier being the first, and the arg second.

arg

User data for callback.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Create new UPnP context and start browsing

<?php

function device_proxy_available_cb($proxy, $arg)
{
    $info = gupnp_device_info_get($proxy);

    $type = $info['device_type'];
    $location = $info['location'];

    printf("Device available:\n");
    printf("type:     %s\n", $type);
    printf("location: %s\n", $location);
}

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

/* We're interested in everything */
$cp = gupnp_control_point_new($context, "ssdp:all");

gupnp_control_point_callback_set($cp,
    GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE, 'device_proxy_available_cb');

/* Start for browsing */
gupnp_control_point_browse_start($cp);

?>

Ошибки

Issues E_WARNING with not valid callback function.

Смотрите также

  • gupnp_control_point_new() - Create a new control point
  • gupnp_control_point_browse_start() - Start browsing


Create a new control point

  • « gupnp_control_point_callback_set
  • gupnp_device_action_callback_set »
  • PHP Manual
  • Функции Gupnp
  • Create a new control point

gupnp_control_point_new

(PECL gupnp >= 0.1.0)

gupnp_control_point_new — Create a new control point

Описание

gupnp_control_point_new ( resource $context , string $target ) : resource

Create a new control point with the specified target.

Список параметров

context

A context identifier, returned by gupnp_context_new().

target

The search target. target should be a service or device name, such as urn:schemas-upnp-org:service:WANIPConnection:1 or urn:schemas-upnp-org:device:MediaRenderer:1.

Возвращаемые значения

A control point identifier.


Set device callback function

  • « gupnp_control_point_new
  • gupnp_device_info_get_service »
  • PHP Manual
  • Функции Gupnp
  • Set device callback function

gupnp_device_action_callback_set

(PECL gupnp >= 0.1.0)

gupnp_device_action_callback_set — Set device callback function

Описание

gupnp_device_action_callback_set ( resource $root_device , int $signal , string $action_name , mixed $callback [, mixed $arg ] ) : bool

Set device callback function for signal and action.

Список параметров

root_device

A root device identifier, returned by gupnp_root_device_new().

signal

The value of signal. Signal can be one of the following values:

GUPNP_SIGNAL_ACTION_INVOKED
Emitted whenever an action is invoked. Handler should process action and must call either gupnp_service_action_return() or gupnp_service_action_return_error().
GUPNP_SIGNAL_NOTIFY_FAILED
Emitted whenever notification of a client fails.

action_name

The name of action.

callback

The callback function for the certain signal. Typically, callback function takes on three parameters. The service parameter's identifier being the first, action parameter's identifier (in case GUPNP_SIGNAL_ACTION_INVOKED signal) or error parameter's message (in case GUPNP_SIGNAL_NOTIFY_FAILED signal) being the second, and the arg is third.

arg

User data for callback.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Issues E_WARNING either with not valid callback function or with not valid signal.

Смотрите также

  • gupnp_root_device_new() - Create a new root device


Get the service with type

  • « gupnp_device_action_callback_set
  • gupnp_device_info_get »
  • PHP Manual
  • Функции Gupnp
  • Get the service with type

gupnp_device_info_get_service

(PECL gupnp >= 0.1.0)

gupnp_device_info_get_service — Get the service with type

Описание

gupnp_device_info_get_service ( resource $root_device , string $type ) : resource

Get the service with type or false if no such device was found.

Список параметров

root_device

A root device identifier, returned by gupnp_root_device_new().

type

The type of the service to be retrieved.

Возвращаемые значения

A service identifier.

Примеры

Пример #1 Create new UPnP context and get device info service

<?php

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

/* Create root device */
$location = "/BinaryLight1.xml";
$dev = gupnp_root_device_new($context, $location);

/* Set root device is available */
gupnp_root_device_set_available($dev, true);

/* Get the switch service from the root device */
$service_type = "urn:schemas-upnp-org:service:SwitchPower:1";
$service = gupnp_device_info_get_service($dev, $service_type);
if (!$service) {
    die("Cannot get SwitchPower1 service\n");
}

?>


Get info of root device

  • « gupnp_device_info_get_service
  • gupnp_root_device_get_available »
  • PHP Manual
  • Функции Gupnp
  • Get info of root device

gupnp_device_info_get

(PECL gupnp >= 0.1.0)

gupnp_device_info_get — Get info of root device

Описание

gupnp_device_info_get ( resource $root_device ) : array

Get info of root device.

Список параметров

root_device

A root device identifier, returned by gupnp_root_device_new().

Возвращаемые значения

Return array wich contains the information of the root device (like location, url, udn and etc).


Check whether root device is available

  • « gupnp_device_info_get
  • gupnp_root_device_get_relative_location »
  • PHP Manual
  • Функции Gupnp
  • Check whether root device is available

gupnp_root_device_get_available

(PECL gupnp >= 0.1.0)

gupnp_root_device_get_available — Check whether root device is available

Описание

gupnp_root_device_get_available ( resource $root_device ) : bool

Get whether or not root_device is available (announcing its presence).

Список параметров

root_device

A root device identifier, returned by gupnp_root_device_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_root_device_set_available() - Set whether or not root_device is available


Get the relative location of root device

  • « gupnp_root_device_get_available
  • gupnp_root_device_new »
  • PHP Manual
  • Функции Gupnp
  • Get the relative location of root device

gupnp_root_device_get_relative_location

(PECL gupnp >= 0.1.0)

gupnp_root_device_get_relative_location — Get the relative location of root device

Описание

gupnp_root_device_get_relative_location ( resource $root_device ) : string

Get the relative location of root device.

Список параметров

root_device

A root device identifier, returned by gupnp_root_device_new().

Возвращаемые значения

The relative location of root device


Create a new root device

  • « gupnp_root_device_get_relative_location
  • gupnp_root_device_set_available »
  • PHP Manual
  • Функции Gupnp
  • Create a new root device

gupnp_root_device_new

(PECL gupnp >= 0.1.0)

gupnp_root_device_new — Create a new root device

Описание

gupnp_root_device_new ( resource $context , string $location , string $description_dir ) : resource

Create a new root device, automatically downloading and parsing location.

Список параметров

context

A context identifier, returned by gupnp_context_new().

location

Location of the description file for this device, relative to the HTTP root

Возвращаемые значения

A root device identifier.

Примеры

Пример #1 Create new UPnP context and get device info service

<?php

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

/* Create root device */
$location = "/BinaryLight1.xml";
$dev = gupnp_root_device_new($context, $location);

?>

Смотрите также

  • gupnp_root_device_set_available() - Set whether or not root_device is available
  • gupnp_root_device_start() - Start main loop
  • gupnp_root_device_stop() - Stop main loop


Set whether or not root_device is available

  • « gupnp_root_device_new
  • gupnp_root_device_start »
  • PHP Manual
  • Функции Gupnp
  • Set whether or not root_device is available

gupnp_root_device_set_available

(PECL gupnp >= 0.1.0)

gupnp_root_device_set_available — Set whether or not root_device is available

Описание

gupnp_root_device_set_available ( resource $root_device , bool $available ) : bool

Controls whether or not root_device is available (announcing its presence).

Список параметров

root_device

A root device identifier, returned by gupnp_root_device_new().

available

Set TRUE if root_device should be available.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_root_device_get_available() - Check whether root device is available


Start main loop

  • « gupnp_root_device_set_available
  • gupnp_root_device_stop »
  • PHP Manual
  • Функции Gupnp
  • Start main loop

gupnp_root_device_start

(PECL gupnp >= 0.1.0)

gupnp_root_device_start — Start main loop

Описание

gupnp_root_device_start ( resource $root_device ) : bool

Start root server's main loop.

Список параметров

root_device

A root device identifier, returned by gupnp_root_device_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_root_device_stop() - Stop main loop


Stop main loop

  • « gupnp_root_device_start
  • gupnp_service_action_get »
  • PHP Manual
  • Функции Gupnp
  • Stop main loop

gupnp_root_device_stop

(PECL gupnp >= 0.1.0)

gupnp_root_device_stop — Stop main loop

Описание

gupnp_root_device_stop ( resource $root_device ) : bool

Stop root server's main loop.

Список параметров

root_device

A root device identifier, returned by gupnp_root_device_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_root_device_start() - Start main loop


Retrieves the specified action arguments

  • « gupnp_root_device_stop
  • gupnp_service_action_return_error »
  • PHP Manual
  • Функции Gupnp
  • Retrieves the specified action arguments

gupnp_service_action_get

(PECL gupnp >= 0.1.0)

gupnp_service_action_get — Retrieves the specified action arguments

Описание

gupnp_service_action_get ( resource $action , string $name , int $type ) : mixed

Retrieves the specified action arguments.

Список параметров

action

A service action identifier.

name

The name of the variable to retrieve.

type

The type of the variable to retrieve. Type can be one of the following values:

GUPNP_TYPE_BOOLEAN
Type of the variable is boolean.
GUPNP_TYPE_INT
Type of the variable is integer.
GUPNP_TYPE_LONG
Type of the variable is long.
GUPNP_TYPE_DOUBLE
Type of the variable is double.
GUPNP_TYPE_FLOAT
Type of the variable is float.
GUPNP_TYPE_STRING
Type of the variable is string.

Возвращаемые значения

The value of the variable.

Ошибки

Issues E_WARNING with not correctly defined type of the variable.

Смотрите также

  • gupnp_service_action_set() - Sets the specified action return values


Return error code

  • « gupnp_service_action_get
  • gupnp_service_action_return »
  • PHP Manual
  • Функции Gupnp
  • Return error code

gupnp_service_action_return_error

(PECL gupnp >= 0.1.0)

gupnp_service_action_return_error — Return error code

Описание

gupnp_service_action_return_error ( resource $action , int $error_code [, string $error_description ] ) : bool

Return error code.

Список параметров

action

A service action identifier.

error_code

The error code. Signal can be one of the following values or user defined:

GUPNP_CONTROL_ERROR_INVALID_ACTION
The action name was invalid.
GUPNP_CONTROL_ERROR_INVALID_ARGS
The action arguments were invalid.
GUPNP_CONTROL_ERROR_OUT_OF_SYNC
Out of sync (deprecated).
GUPNP_CONTROL_ERROR_ACTION_FAILED
The action failed.

error_description

The error description.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_service_action_return() - Return successfully


Return successfully

  • « gupnp_service_action_return_error
  • gupnp_service_action_set »
  • PHP Manual
  • Функции Gupnp
  • Return successfully

gupnp_service_action_return

(PECL gupnp >= 0.1.0)

gupnp_service_action_return — Return successfully

Описание

gupnp_service_action_return ( resource $action ) : bool

Return successfully.

Список параметров

action

A service action identifier.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_service_action_return_error() - Return error code


Sets the specified action return values

  • « gupnp_service_action_return
  • gupnp_service_freeze_notify »
  • PHP Manual
  • Функции Gupnp
  • Sets the specified action return values

gupnp_service_action_set

(PECL gupnp >= 0.1.0)

gupnp_service_action_set — Sets the specified action return values

Описание

gupnp_service_action_set ( resource $action , string $name , int $type , mixed $value ) : bool

Sets the specified action return values.

Список параметров

action

A service action identifier.

name

The name of the variable to retrieve.

type

The type of the variable to retrieve. Type can be one of the following values:

GUPNP_TYPE_BOOLEAN
Type of the variable is boolean.
GUPNP_TYPE_INT
Type of the variable is integer.
GUPNP_TYPE_LONG
Type of the variable is long.
GUPNP_TYPE_DOUBLE
Type of the variable is double.
GUPNP_TYPE_FLOAT
Type of the variable is float.
GUPNP_TYPE_STRING
Type of the variable is string.

value

The value of the variable to retrieve.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Issues E_WARNING with neither not correctly defined type of the variable or the value is not corresponding to the defined type.

Смотрите также

  • gupnp_service_action_get() - Retrieves the specified action arguments


Freeze new notifications

  • « gupnp_service_action_set
  • gupnp_service_info_get_introspection »
  • PHP Manual
  • Функции Gupnp
  • Freeze new notifications

gupnp_service_freeze_notify

(PECL gupnp >= 0.1.0)

gupnp_service_freeze_notify — Freeze new notifications

Описание

gupnp_service_freeze_notify ( resource $service ) : bool

Causes new notifications to be queued up until gupnp_service_thaw_notify() is called.

Список параметров

service

A service identifier.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_service_notify() - Notifies listening clients
  • gupnp_service_thaw_notify() - Sends out any pending notifications and stops queuing of new ones


Get resource introspection of service

  • « gupnp_service_freeze_notify
  • gupnp_service_info_get »
  • PHP Manual
  • Функции Gupnp
  • Get resource introspection of service

gupnp_service_info_get_introspection

(PECL gupnp >= 0.1.0)

gupnp_service_info_get_introspection — Get resource introspection of service

Описание

gupnp_service_info_get_introspection ( resource $proxy [, mixed $callback [, mixed $arg ]] ) : mixed

Get resource introspection of service or register callback if corresponding parameter was passed.

Список параметров

proxy

A service proxy identifier.

callback

The callback function to be called when introspection object is ready. Typically, callback function takes on three parameters. The introspection parameter's identifier being the first, error parameter's message being the second, and the arg is third.

arg

User data for callback.

Возвращаемые значения

Return true if callback function was defined. Return introspection identifier if callback function was omited.

Ошибки

Issues E_WARNING with not valid callback function.


Get full info of service

  • « gupnp_service_info_get_introspection
  • gupnp_service_introspection_get_state_variable »
  • PHP Manual
  • Функции Gupnp
  • Get full info of service

gupnp_service_info_get

(PECL gupnp >= 0.1.0)

gupnp_service_info_get — Get full info of service

Описание

gupnp_service_info_get ( resource $proxy ) : array

Get full info of service.

Список параметров

proxy

A service proxy identifier.

Возвращаемые значения

Return array wich contains the information of the service (like location, url, udn and etc).


Returns the state variable data

  • « gupnp_service_info_get
  • gupnp_service_notify »
  • PHP Manual
  • Функции Gupnp
  • Returns the state variable data

gupnp_service_introspection_get_state_variable

(PECL gupnp >= 0.1.0)

gupnp_service_introspection_get_state_variable — Returns the state variable data

Описание

gupnp_service_introspection_get_state_variable ( resource $introspection , string $variable_name ) : array

Returns the state variable data by the name variable_name in this service.

Список параметров

introspection

A introspection identifier.

variable_name

The name of the variable to retreive.

Возвращаемые значения

Return the state variable data or FALSE.


Notifies listening clients

  • « gupnp_service_introspection_get_state_variable
  • gupnp_service_proxy_action_get »
  • PHP Manual
  • Функции Gupnp
  • Notifies listening clients

gupnp_service_notify

(PECL gupnp >= 0.1.0)

gupnp_service_notify — Notifies listening clients

Описание

gupnp_service_notify ( resource $service , string $name , int $type , mixed $value ) : bool

Notifies listening clients that the property have changed to the specified values.

Список параметров

service

A service identifier.

name

The name of the variable.

type

The type of the variable. Type can be one of the following values:

GUPNP_TYPE_BOOLEAN
Type of the variable is boolean.
GUPNP_TYPE_INT
Type of the variable is integer.
GUPNP_TYPE_LONG
Type of the variable is long.
GUPNP_TYPE_DOUBLE
Type of the variable is double.
GUPNP_TYPE_FLOAT
Type of the variable is float.
GUPNP_TYPE_STRING
Type of the variable is string.

value

The value of the variable.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Issues E_WARNING with either not correctly defined type of the variable or the value is not corresponding to the defined type.

Смотрите также

  • gupnp_service_freeze_notify() - Freeze new notifications
  • gupnp_service_thaw_notify() - Sends out any pending notifications and stops queuing of new ones


Send action to the service and get value

  • « gupnp_service_notify
  • gupnp_service_proxy_action_set »
  • PHP Manual
  • Функции Gupnp
  • Send action to the service and get value

gupnp_service_proxy_action_get

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_action_get — Send action to the service and get value

Описание

gupnp_service_proxy_action_get ( resource $proxy , string $action , string $name , int $type ) : mixed

Send action with parameters to the service exposed by proxy synchronously and get value.

Список параметров

proxy

A service proxy identifier.

action

An action.

name

The action name.

type

The type of the variable to retrieve. Type can be one of the following values:

GUPNP_TYPE_BOOLEAN
Type of the variable is boolean.
GUPNP_TYPE_INT
Type of the variable is integer.
GUPNP_TYPE_LONG
Type of the variable is long.
GUPNP_TYPE_DOUBLE
Type of the variable is double.
GUPNP_TYPE_FLOAT
Type of the variable is float.
GUPNP_TYPE_STRING
Type of the variable is string.

Возвращаемые значения

Return value of the action.

Ошибки

Issues E_WARNING with either not correctly defined type of the action or unable to send action.

Смотрите также

  • gupnp_service_proxy_action_set() - Send action to the service and set value
  • gupnp_service_proxy_send_action() - Send action with multiple parameters synchronously


Send action to the service and set value

  • « gupnp_service_proxy_action_get
  • gupnp_service_proxy_add_notify »
  • PHP Manual
  • Функции Gupnp
  • Send action to the service and set value

gupnp_service_proxy_action_set

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_action_set — Send action to the service and set value

Описание

gupnp_service_proxy_action_set ( resource $proxy , string $action , string $name , mixed $value , int $type ) : bool

Send action with parameters to the service exposed by proxy synchronously and set value.

Список параметров

proxy

A service proxy identifier.

action

An action.

name

The action name.

value

The action value.

type

The type of the action. Type can be one of the following values:

GUPNP_TYPE_BOOLEAN
Type of the variable is boolean.
GUPNP_TYPE_INT
Type of the variable is integer.
GUPNP_TYPE_LONG
Type of the variable is long.
GUPNP_TYPE_DOUBLE
Type of the variable is double.
GUPNP_TYPE_FLOAT
Type of the variable is float.
GUPNP_TYPE_STRING
Type of the variable is string.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Issues E_WARNING with either not correctly defined type of the action or unable to send action.

Смотрите также

  • gupnp_service_proxy_action_get() - Send action to the service and get value
  • gupnp_service_proxy_send_action() - Send action with multiple parameters synchronously


Sets up callback for variable change notification

  • « gupnp_service_proxy_action_set
  • gupnp_service_proxy_callback_set »
  • PHP Manual
  • Функции Gupnp
  • Sets up callback for variable change notification

gupnp_service_proxy_add_notify

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_add_notify — Sets up callback for variable change notification

Описание

gupnp_service_proxy_add_notify ( resource $proxy , string $value , int $type , mixed $callback [, mixed $arg ] ) : bool

Sets up callback to be called whenever a change notification for variable is recieved.

Список параметров

proxy

A service proxy identifier.

value

The variable to add notification for.

type

The type of the variable. Type can be one of the following values:

GUPNP_TYPE_BOOLEAN
Type of the variable is boolean.
GUPNP_TYPE_INT
Type of the variable is integer.
GUPNP_TYPE_LONG
Type of the variable is long.
GUPNP_TYPE_DOUBLE
Type of the variable is double.
GUPNP_TYPE_FLOAT
Type of the variable is float.
GUPNP_TYPE_STRING
Type of the variable is string.

callback

The callback to call when variable changes. Typically, callback function takes on three parameters. The variable parameter being the first, value parameter being the second, and the arg is third.

arg

User data for callback.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_service_proxy_remove_notify() - Cancels the variable change notification


Set service proxy callback for signal

  • « gupnp_service_proxy_add_notify
  • gupnp_service_proxy_get_subscribed »
  • PHP Manual
  • Функции Gupnp
  • Set service proxy callback for signal

gupnp_service_proxy_callback_set

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_callback_set — Set service proxy callback for signal

Описание

gupnp_service_proxy_callback_set ( resource $proxy , int $signal , mixed $callback [, mixed $arg ] ) : bool

Set service proxy callback for signal.

Список параметров

proxy

A service proxy identifier.

signal

The value of signal.

GUPNP_SIGNAL_SUBSCRIPTION_LOST
Emitted whenever the subscription to this service has been lost due to an error condition.

callback

The callback function for the certain signal. Typically, callback function takes on two parameters. error parameter's message being the first, and the arg is second.

arg

User data for callback.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Issues E_WARNING either with not valid callback function or with not valid signal.


Check whether subscription is valid to the service

  • « gupnp_service_proxy_callback_set
  • gupnp_service_proxy_remove_notify »
  • PHP Manual
  • Функции Gupnp
  • Check whether subscription is valid to the service

gupnp_service_proxy_get_subscribed

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_get_subscribed — Check whether subscription is valid to the service

Описание

gupnp_service_proxy_get_subscribed ( resource $proxy ) : bool

Check whether subscription is valid to the service.

Список параметров

proxy

A service proxy identifier.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_service_proxy_set_subscribed() - (Un)subscribes to the service


Cancels the variable change notification

  • « gupnp_service_proxy_get_subscribed
  • gupnp_service_proxy_send_action »
  • PHP Manual
  • Функции Gupnp
  • Cancels the variable change notification

gupnp_service_proxy_remove_notify

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_remove_notify — Cancels the variable change notification

Описание

gupnp_service_proxy_remove_notify ( resource $proxy , string $value ) : bool

Cancels the variable change notification.

Список параметров

proxy

A service proxy identifier.

value

The variable to add notification for.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_service_proxy_add_notify() - Sets up callback for variable change notification


Send action with multiple parameters synchronously

  • « gupnp_service_proxy_remove_notify
  • gupnp_service_proxy_set_subscribed »
  • PHP Manual
  • Функции Gupnp
  • Send action with multiple parameters synchronously

gupnp_service_proxy_send_action

(PECL gupnp >= 0.2.0)

gupnp_service_proxy_send_action — Send action with multiple parameters synchronously

Описание

gupnp_service_proxy_send_action ( resource $proxy , string $action , array $in_params , array $out_params ) : array

Send action with parameters in_params to the service exposed by proxy synchronously and return out_params with values or FALSE on error.

Список параметров

proxy

A service proxy identifier.

action

An action.

in_params

An array of in parameters. Each entry in in_params is supposed to an array containing name, type and value of the parameters.

out_params

An array of out parameters. Each entry in out_params is supposed to an array containing name and type of the parameters.

Возвращаемые значения

Return out_params array with values or FALSE on error.

Ошибки

Issues E_WARNING with either not correctly defined in_params and out_params or unable to send action.

Смотрите также

  • gupnp_service_proxy_action_get() - Send action to the service and get value
  • gupnp_service_proxy_action_set() - Send action to the service and set value


(Un)subscribes to the service

  • « gupnp_service_proxy_send_action
  • gupnp_service_thaw_notify »
  • PHP Manual
  • Функции Gupnp
  • (Un)subscribes to the service

gupnp_service_proxy_set_subscribed

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_set_subscribed — (Un)subscribes to the service

Описание

gupnp_service_proxy_set_subscribed ( resource $proxy , bool $subscribed ) : bool

(Un)subscribes to the service.

Список параметров

proxy

A service proxy identifier.

subscribed

Set TRUE to subscribe to this service.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_service_proxy_get_subscribed() - Check whether subscription is valid to the service


Sends out any pending notifications and stops queuing of new ones

  • « gupnp_service_proxy_set_subscribed
  • Hyperwave API »
  • PHP Manual
  • Функции Gupnp
  • Sends out any pending notifications and stops queuing of new ones

gupnp_service_thaw_notify

(PECL gupnp >= 0.1.0)

gupnp_service_thaw_notify — Sends out any pending notifications and stops queuing of new ones

Описание

gupnp_service_thaw_notify ( resource $service ) : bool

Sends out any pending notifications and stops queuing of new ones.

Список параметров

service

A service identifier.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_service_notify() - Notifies listening clients
  • gupnp_service_freeze_notify() - Freeze new notifications


Hyperwave API

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Integration with Apache
  • Hyperwave API Функции
    • 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 — 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::find — Search for objects
    • hw_api::ftstat — Returns statistics about fulltext server
    • 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::object — Retrieve attribute information
    • hw_api::objectbyanchor — Returns the object an anchor belongs to
    • hw_api::parents — Returns parents of an object
    • 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_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_content::mimetype — Returns mimetype
    • hw_api_content::read — Read content
    • hw_api_error::count — Returns number of reasons
    • hw_api_error::reason — Returns reason of error
    • 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::remove — Removes attribute
    • hw_api_object::title — Returns the title attribute
    • hw_api_object::value — Returns value of attribute
    • hw_api_reason::description — Returns description of reason
    • hw_api_reason::type — Returns type of reason
    • hwapi_attribute_new — Creates instance of class hw_api_attribute
    • hwapi_content_new — Create new instance of class hw_api_content
    • hwapi_hgcsp — Returns object of class hw_api
    • hwapi_object_new — Creates a new instance of class hwapi_object_new


Введение

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).

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.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.2.0.


Требования

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.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/hwapi.

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.2.0

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Hyperwave API configuration options
Имя | По умолчанию | Место изменения | Список изменений
hwapi.allow_persistent | "0" | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.


  • « Типы ресурсов
  • Integration with Apache »
  • PHP Manual
  • Hyperwave API
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


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.


Hyperwave API Функции

Integration with Apache

The integration with Apache and possible other servers has been described in the separate chapter.

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::checkin — Checks in an object
  • hw_api::checkout — Checks out an object
  • hw_api::children — Returns children of an object
  • 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::find — Search for objects
  • hw_api::ftstat — Returns statistics about fulltext server
  • 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::object — Retrieve attribute information
  • hw_api::objectbyanchor — Returns the object an anchor belongs to
  • hw_api::parents — Returns parents of an object
  • 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_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_content::mimetype — Returns mimetype
  • hw_api_content::read — Read content
  • hw_api_error::count — Returns number of reasons
  • hw_api_error::reason — Returns reason of error
  • 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::remove — Removes attribute
  • hw_api_object::title — Returns the title attribute
  • hw_api_object::value — Returns value of attribute
  • hw_api_reason::description — Returns description of reason
  • hw_api_reason::type — Returns type of reason
  • hwapi_attribute_new — Creates instance of class hw_api_attribute
  • hwapi_content_new — Create new instance of class hw_api_content
  • hwapi_hgcsp — Returns object of class hw_api
  • hwapi_object_new — Creates a new instance of class hwapi_object_new


Checks in an object

  • « Hyperwave API Функции
  • hw_api::checkout »
  • PHP Manual
  • Hyperwave API Функции
  • Checks in an object

hw_api::checkin

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::checkin — Checks in an object

Описание

hw_api::checkin ( array $parameter ) : bool

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.

Список параметров

parameter

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • hw_api::checkout


Checks out an object

  • « hw_api::checkin
  • hw_api::children »
  • PHP Manual
  • Hyperwave API Функции
  • Checks out an object

hw_api::checkout

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::checkout — Checks out an object

Описание

hw_api::checkout ( array $parameter ) : bool

This function checks out an object or a whole hierarchy of objects.

Список параметров

parameter

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.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • hw_api::checkin


Returns children of an object

  • « hw_api::checkout
  • hw_api::content »
  • PHP Manual
  • Hyperwave API Функции
  • Returns children of an object

hw_api::children

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::children — Returns children of an object

Описание

hw_api::children ( array $parameter ) : array

Retrieves the children of a collection or the attributes of a document. The children can be further filtered by specifying an object query.

Список параметров

parameter

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.

Смотрите также

  • hw_api::parents


Returns content of an object

  • « hw_api::children
  • hw_api::copy »
  • PHP Manual
  • Hyperwave API Функции
  • Returns content of an object

hw_api::content

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::content — Returns content of an object

Описание

hw_api::content ( array $parameter ) : HW_API_Content

This function returns the content of a document as an object of type hw_api_content.

Список параметров

parameter

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 this method to insert only reachable links and HW_API_CONTENT_PLAIN will lead to document without any links.

Возвращаемые значения

Returns an instance of hw_api_content.


Copies physically

  • « hw_api::content
  • hw_api::dbstat »
  • PHP Manual
  • Hyperwave API Функции
  • Copies physically

hw_api::copy

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::copy — Copies physically

Описание

hw_api::copy ( array $parameter ) : hw_api_content

This function will make a physical copy including the content if it exists and returns the new object or an error object.

Список параметров

parameter

The parameter array contains the required elements 'objectIdentifier' and 'destinationParentIdentifier'. The optional parameter is 'attributeSelector'`

Возвращаемые значения

Returns the copied object.

Смотрите также

  • hw_api::move
  • hw_api::link


Returns statistics about database server

  • « hw_api::copy
  • hw_api::dcstat »
  • PHP Manual
  • Hyperwave API Функции
  • Returns statistics about database server

hw_api::dbstat

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::dbstat — Returns statistics about database server

Описание

hw_api::dbstat ( array $parameter ) : hw_api_object

Returns statistics about database server.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::dcstat
  • hw_api::hwstat
  • hw_api::ftstat


Returns statistics about document cache server

  • « hw_api::dbstat
  • hw_api::dstanchors »
  • PHP Manual
  • Hyperwave API Функции
  • Returns statistics about document cache server

hw_api::dcstat

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::dcstat — Returns statistics about document cache server

Описание

hw_api::dcstat ( array $parameter ) : hw_api_object

Returns statistics about document cache server.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::dbstat
  • hw_api::hwstat
  • hw_api::ftstat


Returns a list of all destination anchors

  • « hw_api::dcstat
  • hw_api::dstofsrcanchor »
  • PHP Manual
  • Hyperwave API Функции
  • Returns a list of all destination anchors

hw_api::dstanchors

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::dstanchors — Returns a list of all destination anchors

Описание

hw_api::dstanchors ( array $parameter ) : array

Retrieves all destination anchors of an object.

Список параметров

parameter

The parameter array contains the required element 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

Возвращаемые значения

Смотрите также

  • hw_api::srcanchors


Returns destination of a source anchor

  • « hw_api::dstanchors
  • hw_api::find »
  • PHP Manual
  • Hyperwave API Функции
  • Returns destination of a source anchor

hw_api::dstofsrcanchor

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::dstofsrcanchor — Returns destination of a source anchor

Описание

hw_api::dstofsrcanchor ( array $parameter ) : hw_api_object

Retrieves the destination object pointed by the specified source anchors. The destination object can either be a destination anchor or a whole document.

Список параметров

parameter

The parameters array contains the required element 'objectIdentifier' and the optional element 'attributeSelector'.

Возвращаемые значения

Смотрите также

  • hw_api::srcanchors
  • hw_api::dstanchors
  • hw_api::objectbyanchor


Search for objects

  • « hw_api::dstofsrcanchor
  • hw_api::ftstat »
  • PHP Manual
  • Hyperwave API Функции
  • Search for objects

hw_api::find

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::find — Search for objects

Описание

hw_api::find ( array $parameter ) : array

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.

Список параметров

parameter

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.

Возвращаемые значения


Returns statistics about fulltext server

  • « hw_api::find
  • hw_api::hwstat »
  • PHP Manual
  • Hyperwave API Функции
  • Returns statistics about fulltext server

hw_api::ftstat

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::ftstat — Returns statistics about fulltext server

Описание

hw_api::ftstat ( array $parameter ) : hw_api_object

Returns statistics about fulltext server.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::dcstat
  • hw_api::dbstat
  • hw_api::hwstat


Returns statistics about Hyperwave server

  • « hw_api::ftstat
  • hw_api::identify »
  • PHP Manual
  • Hyperwave API Функции
  • Returns statistics about Hyperwave server

hw_api::hwstat

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::hwstat — Returns statistics about Hyperwave server

Описание

hw_api::hwstat ( array $parameter ) : hw_api_object

Returns statistics about Hyperwave server.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::dcstat
  • hw_api::dbstat
  • hw_api::ftstat


Log into Hyperwave Server

  • « hw_api::hwstat
  • hw_api::info »
  • PHP Manual
  • Hyperwave API Функции
  • Log into Hyperwave Server

hw_api::identify

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::identify — Log into Hyperwave Server

Описание

hw_api::identify ( array $parameter ) : bool

Logs into the Hyperwave Server.

Список параметров

parameter

The parameter array must contain the elements 'username' and 'password'.

Возвращаемые значения

Returns an object of typeHW_API_Error if identification failed or TRUE if it was successful.


Returns information about server configuration

  • « hw_api::identify
  • hw_api::insert »
  • PHP Manual
  • Hyperwave API Функции
  • Returns information about server configuration

hw_api::info

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::info — Returns information about server configuration

Описание

hw_api::info ( array $parameter ) : array

Returns information about server configuration.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::dcstat
  • hw_api::dbstat
  • hw_api::ftstat
  • hw_api::hwstat


Inserts a new object

  • « hw_api::info
  • hw_api::insertanchor »
  • PHP Manual
  • Hyperwave API Функции
  • Inserts a new object

hw_api::insert

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::insert — Inserts a new object

Описание

hw_api::insert ( array $parameter ) : hw_api_object

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.

Список параметров

parameter

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

Возвращаемые значения

Смотрите также

  • hw_api::replace


Inserts a new object of type anchor

  • « hw_api::insert
  • hw_api::insertcollection »
  • PHP Manual
  • Hyperwave API Функции
  • Inserts a new object of type anchor

hw_api::insertanchor

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::insertanchor — Inserts a new object of type anchor

Описание

hw_api::insertanchor ( array $parameter ) : hw_api_object

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.

Список параметров

parameter

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.

Возвращаемые значения

Смотрите также

  • hw_api::insert
  • hw_api::insertdocument
  • hw_api::insertcollection


Inserts a new object of type collection

  • « hw_api::insertanchor
  • hw_api::insertdocument »
  • PHP Manual
  • Hyperwave API Функции
  • Inserts a new object of type collection

hw_api::insertcollection

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::insertcollection — Inserts a new object of type collection

Описание

hw_api::insertcollection ( array $parameter ) : hw_api_object

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.

Список параметров

parameter

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.

Возвращаемые значения

Смотрите также

  • hw_api::insert
  • hw_api::insertdocument
  • hw_api::insertanchor


Inserts a new object of type document

  • « hw_api::insertcollection
  • hw_api::link »
  • PHP Manual
  • Hyperwave API Функции
  • Inserts a new object of type document

hw_api::insertdocument

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::insertdocument — Inserts a new object of type document

Описание

hw_api::insertdocument ( array $parameter ) : hw_api_object

This function is a shortcut for hwapi_insert(). It inserts an object with content and sets some of the attributes required for a document.

Список параметров

parameter

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.

Возвращаемые значения

Смотрите также

  • hw_api::insert
  • hw_api::insertcollection
  • hw_api::insertanchor


Creates a link to an object

  • « hw_api::insertdocument
  • hw_api::lock »
  • PHP Manual
  • Hyperwave API Функции
  • Creates a link to an object

hw_api::link

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::link — Creates a link to an object

Описание

hw_api::link ( array $parameter ) : bool

Creates a link to an object. Accessing this link is like accessing the object to links points to.

Список параметров

parameter

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.

Смотрите также

  • hw_api::copy


Locks an object

  • « hw_api::link
  • hw_api::move »
  • PHP Manual
  • Hyperwave API Функции
  • Locks an object

hw_api::lock

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::lock — Locks an object

Описание

hw_api::lock ( array $parameter ) : bool

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.

Список параметров

parameter

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.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • hw_api::unlock


Moves object between collections

  • « hw_api::lock
  • hw_api::object »
  • PHP Manual
  • Hyperwave API Функции
  • Moves object between collections

hw_api::move

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::move — Moves object between collections

Описание

hw_api::move ( array $parameter ) : bool

Moves object between collections.

Список параметров

parameter

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • hw_objrec2array()


Retrieve attribute information

  • « hw_api::move
  • hw_api::objectbyanchor »
  • PHP Manual
  • Hyperwave API Функции
  • Retrieve attribute information

hw_api::object

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::object — Retrieve attribute information

Описание

hw_api::object ( array $parameter ) : hw_api_object

This function retrieves the attribute information of an object of any version. It will not return the document content.

Список параметров

parameter

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);
?>

Смотрите также

  • hw_api::content


Returns the object an anchor belongs to

  • « hw_api::object
  • hw_api::parents »
  • PHP Manual
  • Hyperwave API Функции
  • Returns the object an anchor belongs to

hw_api::objectbyanchor

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::objectbyanchor — Returns the object an anchor belongs to

Описание

hw_api::objectbyanchor ( array $parameter ) : hw_api_object

This function retrieves an object the specified anchor belongs to.

Список параметров

parameter

The parameter array contains the required element 'objectIdentifier' and the optional element 'attributeSelector'.

Возвращаемые значения

Смотрите также

  • hw_api::dstofsrcanchor
  • hw_api::srcanchors
  • hw_api::dstanchors


Returns parents of an object

  • « hw_api::objectbyanchor
  • hw_api::remove »
  • PHP Manual
  • Hyperwave API Функции
  • Returns parents of an object

hw_api::parents

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::parents — Returns parents of an object

Описание

hw_api::parents ( array $parameter ) : array

Retrieves the parents of an object. The parents can be further filtered by specifying an object query.

Список параметров

parameter

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.

Смотрите также

  • hw_api::children


Delete an object

  • « hw_api::parents
  • hw_api::replace »
  • PHP Manual
  • Hyperwave API Функции
  • Delete an object

hw_api::remove

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::remove — Delete an object

Описание

hw_api::remove ( array $parameter ) : bool

Removes an object from the specified parent. Collections will be removed recursively.

Список параметров

parameter

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.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • hw_api::move


Replaces an object

  • « hw_api::remove
  • hw_api::setcommittedversion »
  • PHP Manual
  • Hyperwave API Функции
  • Replaces an object

hw_api::replace

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::replace — Replaces an object

Описание

hw_api::replace ( array $parameter ) : hw_api_object

Replaces the attributes and the content of an object.

Список параметров

parameter

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

Возвращаемые значения

Смотрите также

  • hw_api::insert


Commits version other than last version

  • « hw_api::replace
  • hw_api::srcanchors »
  • PHP Manual
  • Hyperwave API Функции
  • Commits version other than last version

hw_api::setcommittedversion

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::setcommittedversion — Commits version other than last version

Описание

hw_api::setcommittedversion ( array $parameter ) : hw_api_object

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.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::checkin
  • hw_api::checkout


Returns a list of all source anchors

  • « hw_api::setcommittedversion
  • hw_api::srcsofdst »
  • PHP Manual
  • Hyperwave API Функции
  • Returns a list of all source anchors

hw_api::srcanchors

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::srcanchors — Returns a list of all source anchors

Описание

hw_api::srcanchors ( array $parameter ) : array

Retrieves all source anchors of an object.

Список параметров

parameter

The parameter array contains the required element 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

Возвращаемые значения

Смотрите также

  • hw_api::dstanchors


Returns source of a destination object

  • « hw_api::srcanchors
  • hw_api::unlock »
  • PHP Manual
  • Hyperwave API Функции
  • Returns source of a destination object

hw_api::srcsofdst

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::srcsofdst — Returns source of a destination object

Описание

hw_api::srcsofdst ( array $parameter ) : array

Retrieves all the source anchors pointing to the specified destination. The destination object can either be a destination anchor or a whole document.

Список параметров

parameter

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.

Возвращаемые значения

Смотрите также

  • hw_api::dstofsrcanchor


Unlocks a locked object

  • « hw_api::srcsofdst
  • hw_api::user »
  • PHP Manual
  • Hyperwave API Функции
  • Unlocks a locked object

hw_api::unlock

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::unlock — Unlocks a locked object

Описание

hw_api::unlock ( array $parameter ) : bool

Unlocks a locked object. Only the user who has locked the object and the system user may unlock an object.

Список параметров

parameter

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.

Смотрите также

  • hw_api::lock


Returns the own user object

  • « hw_api::unlock
  • hw_api::userlist »
  • PHP Manual
  • Hyperwave API Функции
  • Returns the own user object

hw_api::user

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::user — Returns the own user object

Описание

hw_api::user ( array $parameter ) : hw_api_object

Returns the own user object.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::userlist


Returns a list of all logged in users

  • « hw_api::user
  • hw_api_attribute::key »
  • PHP Manual
  • Hyperwave API Функции
  • Returns a list of all logged in users

hw_api::userlist

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::userlist — Returns a list of all logged in users

Описание

hw_api::userlist ( array $parameter ) : array

Returns a list of all logged in users.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::user


Returns key of the attribute

  • « hw_api::userlist
  • hw_api_attribute::langdepvalue »
  • PHP Manual
  • Hyperwave API Функции
  • Returns key of the attribute

hw_api_attribute::key

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_attribute::key — Returns key of the attribute

Описание

hw_api_attribute::key ( void ) : string

Returns the name of the attribute.

Возвращаемые значения

Returns the name of the attribute as a string.

Смотрите также

  • hw_api_attribute::value


Returns value for a given language

  • « hw_api_attribute::key
  • hw_api_attribute::value »
  • PHP Manual
  • Hyperwave API Функции
  • Returns value for a given language

hw_api_attribute::langdepvalue

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_attribute::langdepvalue — Returns value for a given language

Описание

hw_api_attribute::langdepvalue ( string $language ) : string

Returns the value in the given language of the attribute.

Список параметров

language

Возвращаемые значения

Returns the value of the attribute as a string.

Смотрите также

  • hw_api_attribute::value


Returns value of the attribute

  • « hw_api_attribute::langdepvalue
  • hw_api_attribute::values »
  • PHP Manual
  • Hyperwave API Функции
  • Returns value of the attribute

hw_api_attribute::value

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_attribute::value — Returns value of the attribute

Описание

hw_api_attribute::value ( void ) : string

Gets the value of the attribute.

Возвращаемые значения

Returns the value, as a string.

Смотрите также

  • hw_api_attribute::key
  • hw_api_attribute::values


Returns all values of the attribute

  • « hw_api_attribute::value
  • hw_api_content::mimetype »
  • PHP Manual
  • Hyperwave API Функции
  • Returns all values of the attribute

hw_api_attribute::values

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_attribute::values — Returns all values of the attribute

Описание

hw_api_attribute::values ( void ) : array

Gets all values of the attribute.

Возвращаемые значения

Returns an array of attribute values.

Смотрите также

  • hw_api_attribute::value


Returns mimetype

  • « hw_api_attribute::values
  • hw_api_content::read »
  • PHP Manual
  • Hyperwave API Функции
  • Returns mimetype

hw_api_content::mimetype

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_content::mimetype — Returns mimetype

Описание

hw_api_content::mimetype ( void ) : string

Returns the mimetype of the content.

Возвращаемые значения

Returns the mimetype as a string.


Read content

  • « hw_api_content::mimetype
  • hw_api_error::count »
  • PHP Manual
  • Hyperwave API Функции
  • Read content

hw_api_content::read

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_content::read — Read content

Описание

hw_api_content::read ( string $buffer , int $len ) : string

Reads len bytes from the content into the given buffer.

Список параметров

buffer

len

Number of bytes to read.

Возвращаемые значения


Returns number of reasons

  • « hw_api_content::read
  • hw_api_error::reason »
  • PHP Manual
  • Hyperwave API Функции
  • Returns number of reasons

hw_api_error::count

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_error::count — Returns number of reasons

Описание

hw_api_error::count ( void ) : int

Returns the number of error reasons.

Возвращаемые значения

Returns the number of errors, as an integer.

Смотрите также

  • hw_api_error::reason


Returns reason of error

  • « hw_api_error::count
  • hw_api_object::assign »
  • PHP Manual
  • Hyperwave API Функции
  • Returns reason of error

hw_api_error::reason

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_error::reason — Returns reason of error

Описание

hw_api_error::reason ( void ) : HW_API_Reason

Returns the first error reason.

Возвращаемые значения

Смотрите также

  • hw_api_error::count


Clones object

  • « hw_api_error::reason
  • hw_api_object::attreditable »
  • PHP Manual
  • Hyperwave API Функции
  • Clones object

hw_api_object::assign

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::assign — Clones object

Описание

hw_api_object::assign ( array $parameter ) : bool

Clones the attributes of an object.

Список параметров

parameter

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Checks whether an attribute is editable

  • « hw_api_object::assign
  • hw_api_object::count »
  • PHP Manual
  • Hyperwave API Функции
  • Checks whether an attribute is editable

hw_api_object::attreditable

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::attreditable — Checks whether an attribute is editable

Описание

hw_api_object::attreditable ( array $parameter ) : bool

Checks whether an attribute is editable.

Список параметров

parameter

Возвращаемые значения

Returns TRUE if the attribute is editable, FALSE otherwise.


Returns number of attributes

  • « hw_api_object::attreditable
  • hw_api_object::insert »
  • PHP Manual
  • Hyperwave API Функции
  • Returns number of attributes

hw_api_object::count

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::count — Returns number of attributes

Описание

hw_api_object::count ( array $parameter ) : int

Returns the number of attributes.

Список параметров

parameter

Возвращаемые значения

Returns the number as an integer.


Inserts new attribute

  • « hw_api_object::count
  • hw_api_object::remove »
  • PHP Manual
  • Hyperwave API Функции
  • Inserts new attribute

hw_api_object::insert

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::insert — Inserts new attribute

Описание

hw_api_object::insert ( HW_API_Attribute $attribute ) : bool

Adds an attribute to the object.

Список параметров

attribute

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • hw_api_object::remove


Removes attribute

  • « hw_api_object::insert
  • hw_api_object::title »
  • PHP Manual
  • Hyperwave API Функции
  • Removes attribute

hw_api_object::remove

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::remove — Removes attribute

Описание

hw_api_object::remove ( string $name ) : bool

Removes the attribute with the given name.

Список параметров

name

The attribute name.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • hw_api_object::insert


Returns the title attribute

  • « hw_api_object::remove
  • hw_api_object::value »
  • PHP Manual
  • Hyperwave API Функции
  • Returns the title attribute

hw_api_object::title

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::title — Returns the title attribute

Описание

hw_api_object::title ( array $parameter ) : string

Returns the title attribute.

Список параметров

parameter

Возвращаемые значения

Returns the title as a string.


Returns value of attribute

  • « hw_api_object::title
  • hw_api_reason::description »
  • PHP Manual
  • Hyperwave API Функции
  • Returns value of attribute

hw_api_object::value

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::value — Returns value of attribute

Описание

hw_api_object::value ( string $name ) : string

Returns value of an attribute.

Список параметров

name

The attribute name.

Возвращаемые значения

Returns the value of the attribute with the given name or FALSE if an error occurred.


Returns description of reason

  • « hw_api_object::value
  • hw_api_reason::type »
  • PHP Manual
  • Hyperwave API Функции
  • Returns description of reason

hw_api_reason::description

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_reason::description — Returns description of reason

Описание

hw_api_reason::description ( void ) : string

Returns the description of a reason

Возвращаемые значения

Returns the description, as a string.


Returns type of reason

  • « hw_api_reason::description
  • hwapi_attribute_new »
  • PHP Manual
  • Hyperwave API Функции
  • Returns type of reason

hw_api_reason::type

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_reason::type — Returns type of reason

Описание

hw_api_reason::type ( void ) : HW_API_Reason

Returns the type of a reason.

Возвращаемые значения

Returns an instance of HW_API_Reason.


Creates instance of class hw_api_attribute

  • « hw_api_reason::type
  • hwapi_content_new »
  • PHP Manual
  • Hyperwave API Функции
  • Creates instance of class hw_api_attribute

hwapi_attribute_new

(PHP 5 < 5.2.0)

hwapi_attribute_new — Creates instance of class hw_api_attribute

Описание

hwapi_attribute_new ([ string $name [, string $value ]] ) : HW_API_Attribute

Creates a new instance of hw_api_attribute with the given name and value.

Список параметров

name

The attribute name.

value

The attribute value.

Возвращаемые значения

Returns an instance of hw_api_attribute.


Create new instance of class hw_api_content

  • « hwapi_attribute_new
  • hwapi_hgcsp »
  • PHP Manual
  • Hyperwave API Функции
  • Create new instance of class hw_api_content

hwapi_content_new

(PHP 5 < 5.2.0)

hwapi_content_new — Create new instance of class hw_api_content

Описание

hwapi_content_new ( string $content , string $mimetype ) : HW_API_Content

Creates a new content object from the string content.

Список параметров

content

mimetype

The mimetype for the contents.

Возвращаемые значения


Returns object of class hw_api

  • « hwapi_content_new
  • hwapi_object_new »
  • PHP Manual
  • Hyperwave API Функции
  • Returns object of class hw_api

hwapi_hgcsp

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hwapi_hgcsp — Returns object of class hw_api

Описание

hwapi_hgcsp ( string $hostname [, int $port ] ) : HW_API

Opens a connection to the Hyperwave server on host hostname. The protocol used is HGCSP.

Список параметров

hostname

The host name.

port

If you do not pass a port number, 418 is used.

Возвращаемые значения

Returns an instance of HW_API.


Creates a new instance of class hwapi_object_new

  • « hwapi_hgcsp
  • LDAP »
  • PHP Manual
  • Hyperwave API Функции
  • Creates a new instance of class hwapi_object_new

hwapi_object_new

(PHP 5 < 5.2.0)

hwapi_object_new — Creates a new instance of class hwapi_object_new

Описание

hwapi_object_new ( array $parameter ) : hw_api_object

Creates a new instance of the class hw_api_object.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::lock


Облегчённый протокол доступа к каталогам (LDAP)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Использование вызовов PHP LDAP
  • Управляющие объекты LDAP
  • Примеры
    • Базовое использование
    • LDAP Controls
  • Функции LDAP
    • ldap_8859_to_t61 — Переводит символы из кодировки ISO-8859 в t61
    • ldap_add_ext — Добавить записи в каталог LDAP
    • ldap_add — Добавить запись в LDAP директорию
    • ldap_bind_ext — Привязать к директории LDAP
    • ldap_bind — Привязать к LDAP директории
    • ldap_close — Псевдоним ldap_unbind
    • ldap_compare — Сравнить значение атрибута, найденного в записи определённой DN
    • ldap_connect — Подключиться к серверу LDAP
    • ldap_control_paged_result_response — Получить указатель на текущую страницу результирующего набора LDAP
    • ldap_control_paged_result — Послать серверу LDAP данные для использования постраничного извлечения результата
    • ldap_count_entries — Посчитать число записей в результатах поиска
    • ldap_delete_ext — Удалить запись из директории
    • ldap_delete — Удаляет запись из директории LDAP
    • ldap_dn2ufn — Преобразовать DN в удобный для пользователя формат именования
    • ldap_err2str — Преобразовать код ошибки LDAP в строковое сообщение об ошибке
    • ldap_errno — Возвратить номер ошибки LDAP последней команды
    • ldap_error — Возвратить сообщение об ошибке LDAP последней команды
    • ldap_escape — Экранирование строки для использования в фильтре LDAP или в DN
    • ldap_exop_passwd — Обертка для расширенной операции PASSWD
    • ldap_exop_refresh — Обертка для расширенной операции Refresh
    • ldap_exop_whoami — Обертка для расширенной операции WHOAMI
    • ldap_exop — Выполнить расширенную операцию
    • ldap_explode_dn — Разделить DN на его составные части
    • ldap_first_attribute — Вернуть первый атрибут
    • ldap_first_entry — Возвратить первый идентификатор результата
    • ldap_first_reference — Возвращает первую справку
    • ldap_free_result — Освободить память результата
    • ldap_get_attributes — Получает атрибуты из записи в результатах поиска
    • ldap_get_dn — Получить DN результирующей записи
    • ldap_get_entries — Получает все записи результата
    • ldap_get_option — Получить текущее значение данной опции
    • ldap_get_values_len — Получить все бинарные значения из записи результата
    • ldap_get_values — Получает все значения из записи результата
    • ldap_list — Одноуровневый поиск
    • ldap_mod_add_ext — Добавить значения атрибута к текущим атрибутам
    • ldap_mod_add — Добавить значения атрибута к текущим атрибутам
    • ldap_mod_del_ext — Удалить значения атрибутов из текущих атрибутов
    • ldap_mod_del — Удалить значения атрибута из текущих атрибутов
    • ldap_mod_replace_ext — Заменить значения атрибута на новые
    • ldap_mod_replace — Заменить значения атрибутов на новые
    • ldap_modify_batch — Формирования и запуск пакетного изменения записи LDAP
    • ldap_modify — Псевдоним ldap_mod_replace
    • ldap_next_attribute — Получить следующий атрибут из результата
    • ldap_next_entry — Получить следующую запись результата
    • ldap_next_reference — Возвращает следующую справку
    • ldap_parse_exop — Разбор результирующего объекта выполнения расширенной операции LDAP
    • ldap_parse_reference — Извлекает информацию из справочника
    • ldap_parse_result — Извлечь информацию из результата
    • ldap_read — Читает запись
    • ldap_rename_ext — Модифицировать название записи
    • ldap_rename — Изменить имя записи
    • ldap_sasl_bind — Привязать к LDAP директории, используя SASL
    • ldap_search — Поиск по LDAP дереву
    • ldap_set_option — Установить значение данной опции
    • ldap_set_rebind_proc — Установить функцию обратного вызова для повторного связывания при ссылочном поиске
    • ldap_sort — Сортирует записи LDAP
    • ldap_start_tls — Запускает TLS
    • ldap_t61_to_8859 — Переводит символы из кодировки t61 в ISO-8859
    • ldap_unbind — Разорвать привязку к директории LDAP


Введение

LDAP - это облегчённый протокол доступа к каталогам, используемый для получения доступа к серверам каталогов. Каталог - специальный вид базы данных, которая содержит информацию в древовидной структуре.

Концепция похожа на структуру каталогов на жестком диске, за исключением того, что в этом контексте корневой каталог - это "Мир", и первый уровень подкаталогов - "Страны". Более низшие уровни структуры каталогов содержат записи для компаний, организаций или мест, в то время как еще ниже мы находим записи каталога для людей, и возможно, оборудования или документов.

Для обращения к файлу в подкаталоге на вашем жестком диске, вы могли бы использовать что-нибудь наподобие этого:

   /usr/local/myapp/docs

Слеш отмечает каждое подразделение в ссылке, и последовательность читается слева направо.

Эквивалентом полностью определенной ссылки на файл в LDAP является так называемое отличительное имя, упомянутое просто как "dn". К примеру, dn может быть таким:

   cn=John Smith,ou=Accounts,o=My Company,c=US

Запятая отмечает каждое подразделение в ссылке, и последовательность читается справа налево. Вы читали бы этот dn как:

   Страна (country) = US
   Организация (organization) = My Company
   Подразделение (organizationalUnit) = Accounts
   Имя (commonName) = John Smith

Таким образом, также как нет жестких правил для организации структуры каталогов жесткого диска, так и менеджер сервера каталогов может настроить любую структуру, которая является значимой для поставленных цели. Однако есть некоторые соглашения, которые используются.

Много информации о LDAP можно найти на

  • » Mozilla

  • » OpenLDAP Project

  • Internet Engineering Taskforce RFCs с » 4510 по » 4519.

Netscape SDK содержит полезное » Руководство программиста в HTML формате.


Требования

Необходимо получить и скомпилировать клиентские библиотеки LDAP из » OpenLDAP или » Bind9.net для того, чтобы скомпилировать РНР с поддержкой LDAP. Начиная с PHP 5.6 вы должны использовать OpenLDAP 2.4 или более свежий.


Установка

Поддержка LDAP в PHP не доступна по умолчанию. Для активации нужно использовать опцию --with-ldap[=DIR] при компиляции PHP, где DIR - это каталог установки базы LDAP. Для включения поддержки SASL, убедитесь что использована опция --with-ldap-sasl[=DIR] , и что sasl.h существует в системе.

Замечание: Примечание для пользователей Win32

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: libeay32.dll и ssleay32.dll, либо, начиная с OpenSSL 1.1, libcrypto-*.dll и libssl-*.dll.

Для того чтобы использовать библиотеки Oracle LDAP, должны быть установлены надлежащие параметры окружающей среды Oracle.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции конфигурации LDAP
Имя | По умолчанию | Место изменения | Список изменений
ldap.max_links | "-1" | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

ldap.max_links integer

Максимальное колиечство LDAP соединений на процесс.


Типы ресурсов

Большинство LDAP функций работает с возвращаемыми ресурсами (например. ldap_connect() возвращает положительный идентификатор ссылки LDAP, требуемый большинством функций LDAP).


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

LDAP_DEREF_NEVER (integer)
Правило разыменования псевдонимов - Never.
LDAP_DEREF_SEARCHING (integer)
Правило разыменования псевдонимов - Searching.
LDAP_DEREF_FINDING (integer)
Правило разыменования псевдонимов - Finding.
LDAP_DEREF_ALWAYS (integer)
Правило разыменования псевдонимов - Always.
LDAP_OPT_DEREF (integer)
Определяет альтернативные правила для следующих псевдонимов на сервере.
LDAP_OPT_SIZELIMIT (integer)

Определяет максимальное количество записей, которые могут быть возвращены при операции поиска.

Замечание: Предел фактического размера для операций также ограничен максимальным количеством возвращаемых записей, которое задаётся конфигурацией сервера. Меньшее из этих двух параметров является фактическим ограничением размера.

LDAP_OPT_TIMELIMIT (integer)
Определяет количество секунд для ожидания результатов поиска.

Замечание: Предел фактического времени выполнения для операций также ограничен максимальным временем, которое задаётся конфигурацией сервера. Меньшее из этих двух параметров является фактическим ограничением времени выполнения.

LDAP_OPT_NETWORK_TIMEOUT (integer)
Опция для ldap_set_option разрешает настройку сетевого таймаута. (Доступна с PHP 5.3.0)
LDAP_OPT_PROTOCOL_VERSION (integer)
Определяет используемый протокол LDAP (V2 или V3).
LDAP_OPT_ERROR_NUMBER (integer)
Последний код ошибки сессии.
LDAP_OPT_REFERRALS (integer)
Определяет, следовать ли автоматически рефералам, возвращенным сервером LDAP.
LDAP_OPT_RESTART (integer)
Определяет, следует ли неявно перезапустить соединение.
LDAP_OPT_HOST_NAME (integer)
Устанавливает/получает разделенные пробелами хосты при попытке подключения.
LDAP_OPT_ERROR_STRING (integer)
Псевдоним для LDAP_OPT_DIAGNOSTIC_MESSAGE.
LDAP_OPT_DIAGNOSTIC_MESSAGE (integer)
Последнее сообщение об ошибке в сессии.
LDAP_OPT_MATCHED_DN (integer)
Устанавливает/получает проверяемые DN связанные с соединением.
LDAP_OPT_SERVER_CONTROLS (integer)
Определяет список серверных элементов управления по умолчанию, который должен быть отправлен с каждым запросом.
LDAP_OPT_CLIENT_CONTROLS (integer)
Определяет список клиентских элементов управления по умолчанию, которые должны обрабатываться с каждым запросом.
LDAP_OPT_DEBUG_LEVEL (integer)
Определяет поразрядный уровень для отладочных трассировок.
LDAP_OPT_X_KEEPALIVE_IDLE (integer)
Определяет число секунд, в течение которого соединение должно быть неактивным, прежде чем начнут посылаться пакеты keepalive.
LDAP_OPT_X_KEEPALIVE_PROBES (integer)
Определяет максимальное количество пакетов keepalive, которое должно быть послано, прежде чем соединение будет разорвано.
LDAP_OPT_X_KEEPALIVE_INTERVAL (integer)
Определяет интервал в секундах между посылками keepalive.
LDAP_OPT_X_TLS_CACERTDIR (string)
Определяет путь к директории, в которой лежат сертификаты CA.
LDAP_OPT_X_TLS_CACERTFILE (string)
Определяет полный путь к файлу сертификата CA.
LDAP_OPT_X_TLS_CERTFILE (string)
Определяет полный путь к файлу сертификата.
LDAP_OPT_X_TLS_CIPHER_SUITE (string)
Задает допустимый набор шифров.
LDAP_OPT_X_TLS_CRLCHECK (integer)
Определяет стратегию оценки CRL. Одна из констант: LDAP_OPT_X_TLS_CRL_NONE,LDAP_OPT_X_TLS_CRL_PEER, LDAP_OPT_X_TLS_CRL_ALL.

Замечание: Эта опция корректна только для OpenSSL.

LDAP_OPT_X_TLS_CRLFILE (string)
Определяет полный путь к файлу CRL.

Замечание: Эта опция корректна только для GnuTLS.

LDAP_OPT_X_TLS_DHFILE (string)
Определяет полный путь к файлу, содержащему параметры Протокола Диффи-Хеллмана.

Замечание: Эта опция игнорируется GnuTLS и Mozilla NSS.

LDAP_OPT_X_TLS_KEYFILE (string)
Определяет полный путь к файлю ключа сертификата.
LDAP_OPT_X_TLS_PROTOCOL_MIN (integer)
Определяет минимальную версию протокола. Одна из констант: LDAP_OPT_X_TLS_PROTOCOL_SSL2, LDAP_OPT_X_TLS_PROTOCOL_SSL3, LDAP_OPT_X_TLS_PROTOCOL_TLS1_0, LDAP_OPT_X_TLS_PROTOCOL_TLS1_1, LDAP_OPT_X_TLS_PROTOCOL_TLS1_2
LDAP_OPT_X_TLS_RANDOM_FILE (string)
Устанавливает/получает случайный файл когда один из системных файлов по умолчанию не доступен.
LDAP_OPT_X_TLS_REQUIRE_CERT (integer)
Определяет стратегию проверки сертификата. Одна из констант: LDAP_OPT_X_TLS_NEVER, LDAP_OPT_X_TLS_HARD, LDAP_OPT_X_TLS_DEMAND, LDAP_OPT_X_TLS_ALLOW, LDAP_OPT_X_TLS_TRY. (Доступно с PHP 7.0.0)
GSLC_SSL_NO_AUTH (integer)
Режим аутентификации SSL - аутентификация не требуется (Только для Oracle LDAP)
GSLC_SSL_ONEWAY_AUTH (integer)
Режим аутентификации SSL - требуется только серверная аутентификация (Только для Oracle LDAP)
GSLC_SSL_TWOWAY_AUTH (integer)
Режим аутентификации SSL - требуется как серверная, так и клиентская аутентификация (Только для Oracle LDAP)
LDAP_EXOP_START_TLS (integer)
Константа расширенной операции - Start TLS (» RFC 4511).
LDAP_EXOP_MODIFY_PASSWD (string)
Константа расширенной операции - Modify password (» RFC 3062).
LDAP_EXOP_REFRESH (string)
Константа расширенной операции - Refresh (» RFC 2589).
LDAP_EXOP_WHO_AM_I (string)
Константа расширенной операции - WHOAMI (» RFC 4532).
LDAP_EXOP_TURN (string)
Константа расширенной операции - Turn (» RFC 4531).
LDAP_CONTROL_MANAGEDSAIT (string)
Управляющая константа - управление DSA IT (» RFC 3296). Доступно с PHP 7.3.0.
LDAP_CONTROL_PROXY_AUTHZ (string)
Управляющая константа - прокси-авторизация (» RFC 4370). Доступно с PHP 7.3.0.
LDAP_CONTROL_SUBENTRIES (string)
Управляющая константа - подразделы (» RFC 3672). Доступно с PHP 7.3.0.
LDAP_CONTROL_VALUESRETURNFILTER (string)
Управляющая константа - фильтрация возвращаемых значений (» RFC 3876). Доступно с PHP 7.3.0.
LDAP_CONTROL_ASSERT (string)
Управляющая константа - контроль утверждений (» RFC 4528). Доступно с PHP 7.3.0.
LDAP_CONTROL_PRE_READ (string)
Управляющая константа - возврат изначального значения (» RFC 4527). Доступно с PHP 7.3.0.
LDAP_CONTROL_POST_READ (string)
Управляющая константа - возврат итогового значения (» RFC 4527). Доступно с PHP 7.3.0.
LDAP_CONTROL_SORTREQUEST (string)
Управляющая константа - запрос сортировки (» RFC 2891). Доступно с PHP 7.3.0.
LDAP_CONTROL_SORTRESPONSE (string)
Управляющая константа - ответ на запрос сортировки (RFC 2891).
LDAP_CONTROL_PAGEDRESULTS (string)
Управляющая константа - пагинация результата (» RFC 2696). Доступно с PHP 7.3.0.
LDAP_CONTROL_AUTHZID_REQUEST (string)
Управляющая константа - запрос идентификации авторизации (» RFC 3829). Доступно с PHP 7.3.0.
LDAP_CONTROL_AUTHZID_RESPONSE (string)
Управляющая константа - ответ на запрос идентификации авторизации (» RFC 3829). Доступно с PHP 7.3.0.
LDAP_CONTROL_SYNC (string)
Управляющая константа - операция синхронизации контента (» RFC 4533). Доступно с PHP 7.3.0.
LDAP_CONTROL_SYNC_STATE (string)
Управляющая константа - состояние операции синхронизации контента (» RFC 4533). Доступно с PHP 7.3.0.
LDAP_CONTROL_SYNC_DONE (string)
Управляющая константа - операция синхронизации контента завершена (» RFC 4533). Доступно с PHP 7.3.0.
LDAP_CONTROL_DONTUSECOPY (string)
Управляющая константа - не использовать копию (» RFC 6171). Доступно с PHP 7.3.0.
LDAP_CONTROL_PASSWORDPOLICYREQUEST (string)
Управляющая константа - запрос парольной политики Доступно с PHP 7.3.0.
LDAP_CONTROL_PASSWORDPOLICYRESPONSE (string)
Управляющая константа - ответ на запрос парольной политики Доступно с PHP 7.3.0.
LDAP_CONTROL_X_INCREMENTAL_VALUES (string)
Управляющая константа - инкрементные значения Active Directory Доступно с PHP 7.3.0.
LDAP_CONTROL_X_DOMAIN_SCOPE (string)
Управляющая константа - доменная область Active Directory Доступно с PHP 7.3.0.
LDAP_CONTROL_X_PERMISSIVE_MODIFY (string)
Управляющая константа - изменение разрешений Active Directory Доступно с PHP 7.3.0.
LDAP_CONTROL_X_SEARCH_OPTIONS (string)
Управляющая константа - опции поиска Active Directory Доступно с PHP 7.3.0.
LDAP_CONTROL_X_TREE_DELETE (string)
Управляющая константа - удаление дерева в Active Directory Доступно с PHP 7.3.0.
LDAP_CONTROL_X_EXTENDED_DN (string)
Управляющая константа - расширенный DN Active Directory Доступно с PHP 7.3.0.
LDAP_CONTROL_VLVREQUEST (string)
Управляющая константа - запрос просмотра вертуального списка Доступно с PHP 7.3.0.
LDAP_CONTROL_VLVRESPONSE (string)
Управляющая константа - ответ на запрос просмотра вертуального списка Доступно с PHP 7.3.0.


Использование вызовов PHP LDAP

Прежде чем использовать вызовы LDAP вам нужно знать следующее:

  • Имя или адрес сервера каталогов, который вы будете использовать

  • "base dn" сервера (часть мирового каталога, который хранится на этом сервере, который может быть "o=MyCompany,c=US")

  • Возможно нужен пароль, чтобы получить доступ к серверу (много серверов обеспечивает доступ для чтения для "анонимный привязки", но требуют пароль для чего-либо еще)

Типичная последовательность LDAP-вызовов, которые вы будете делать в приложении следуя этой схеме:

  ldap_connect()    // установить соединение с сервером
     |
  ldap_bind()       // анонимный вход или аутентификация по "login"
     |
  выполнение каких-либо действий, таких как поиск или обновление каталога
  и отображение результатов
     |
  ldap_close()      // закрытие соединения


Управляющие объекты LDAP

Управляющие объекты - это специальные объекты, которые могут быть переданы совместно с запросом к LDAP для изменения его поведения на время исполнения запроса. Также это могут быть объекты присылаемые сервером совместно с ответом на запрос, обычно в качестве ответов на управляющие объекты пришедшие с запросом, для предоставления дополнительной информации.

Замечание:

Не все управляющие оъекты поддерживаются всеми серверами LDAP. Для определения, какие из них поддерживаются вашим сервером, выполните запрос корневого DSE путем чтения пустого dn с фильтром (objectClass=*).

Пример #1 Тестирование поддержки управления пагинацией результата

<?php

// $ds - корректный идентификатор соединения с сервером каталогов

$result = ldap_read($ds, '', '(objectClass=*)', ['supportedControl']);
if (!in_array(LDAP_CONTROL_PAGEDRESULTS, ldap_get_entries($ds, $result)[0]['supportedcontrol'])) {
  die("Этот сервер не поддерживает управление пагинацией");
}

?>

Начиная с PHP 7.3, вы можете посылать управляющие объекты параллельно с запросом для всех функций запросов, принимающих параметр serverctrls. Если существует "ext" версия функции, то, для получения полного доступа ко всем объектам ответа и возможности разобрать ответ с помощью ldap_parse_result(), используйте именно ее.

Параметр serverctrls должен содержать массив, содержащий массив для каждого посылаемого управляющего объекта со следующими ключами:

oid (string)
OID управляющего объекта. Используйте константы LDAP_CONTROL_. См. константы LDAP.
iscritical (boolean)
Если управляющий оъект должен быть помечен как критичный. Запрос завершится ошибкой, если подобный управляющий объект не поддерживается сервером, либо если его невозможно применить. Обратите внимание, что некоторые объекты всегда должны быть помечены как критичные, как описано в соответствующем RFC. По умолчанию FALSE.
value (mixed)
Если применимо, то значение управляющего объекта. Более подробно читайте далее.

Большинство значений отсылаются на сервер закодированными BER. Вы можете заниматься кодированием самостоятельно, либо использовать массивы с корректными ключами и тогда все произойдет автоматически. Поддерживаемые управляющие объекты:

  • LDAP_CONTROL_PAGEDRESULTS Ожидаемые ключи [size] и [cookie]

  • LDAP_CONTROL_ASSERT Ожидаемый ключ - filter

  • LDAP_CONTROL_VALUESRETURNFILTER Ожидаемый ключ - filter

  • LDAP_CONTROL_PRE_READ Ожидаемый ключ - attrs

  • LDAP_CONTROL_POST_READ Ожидаемый ключ - attrs

  • LDAP_CONTROL_SORTREQUEST Ожидается массив массивов с ключами: attr, [oid], [reverse].

  • LDAP_CONTROL_VLVREQUEST Ожидаемые ключи: before, after, attrvalue|(offset, count), [context]

Для следующих управляющих объектов значения не нужны:

  • LDAP_CONTROL_PASSWORDPOLICYREQUEST

  • LDAP_CONTROL_MANAGEDSAIT

  • LDAP_CONTROL_DONTUSECOPY

Объект LDAP_CONTROL_PROXY_AUTHZ - уникальный случай, так как его значение не нужно кодировать BER, так что вы можете использовать обыкновенную строку.

Если управляющие объекты переданы в функцию ldap_parse_result(), значения будут преобразованы в массив, если поддерживаются. Поддерживается следующее:

  • LDAP_CONTROL_PASSWORDPOLICYRESPONSE Ключи: expire, grace, [error]

  • LDAP_CONTROL_PAGEDRESULTS Ключи: size, cookie

  • LDAP_CONTROL_PRE_READ Ключи: dn и имена аттрибутов LDAP

  • LDAP_CONTROL_POST_READ Ключи: dn и имена аттрибутов LDAP

  • LDAP_CONTROL_SORTRESPONSE Ключи: errcode, [attribute]

  • LDAP_CONTROL_VLVRESPONSE Ключи: target, count, errcode, context


  • « Управляющие объекты LDAP
  • Базовое использование »
  • PHP Manual
  • LDAP
  • Примеры

Примеры

Содержание

  • Базовое использование
  • LDAP Controls


Базовое использование

Получить информацию для всех записей, где фамилия начинается с "S" из сервера каталогов, показывая в результате имя и адрес электронной почты.

Пример #1 Пример LDAP поиска

<?php
// базовая последовательность работы с LDAP:
// подключение, привязка, поиск, интерпретация результата, закрытие подключения

echo "<h3>Проверочный запрос к LDAP</h3>";
echo "Подключение ...";
$ds=ldap_connect("localhost");  // Необходимо указать корректный LDAP сервер
echo "Результат подключения: " . $ds . "<br />";

if ($ds) {
    echo "Привязка ...";
    $r=ldap_bind($ds);     // "анонимная" привязка,
                           // доступ только для чтения
    echo "Результат привязки: " . $r . "<br />";

    echo "Поиск (sn=S*) ...";
    // Поиск по фамилиям записей
    $sr=ldap_search($ds, "o=My Company, c=US", "sn=S*");
    echo "Результат поиска: " . $sr . "<br />";

    echo "Получено количество записей " . ldap_count_entries($ds, $sr) . "<br />";

    echo "Получение элементов ...<p>";
    $info = ldap_get_entries($ds, $sr);
    echo "Элемент: " . $info["count"] . " Данные:<p>";

    for ($i=0; $i<$info["count"]; $i++) {
        echo "dn: " . $info[$i]["dn"] . "<br />";
        echo "первый cn: " . $info[$i]["cn"][0] . "<br />";
        echo "первый email: " . $info[$i]["mail"][0] . "<br /><hr />";
    }

    echo "Закрытие соединения";
    ldap_close($ds);

} else {
    echo "<h4>Невозможно подключиться к серверу LDAP</h4>";
}
?>


LDAP Controls

Ниже показаны несколько примеы использования LDAP Controls с использованием PHP >= 7.3.0.

Пример #1 Привязка с информацией ppolicy

<?php

$user   = 'cn=admin,dc=example,dc=com';
$passwd = 'adminpassword';

$ds = ldap_connect('ldap://localhost');

if ($ds) {
  $r = ldap_bind_ext($ds, $user, $passwd, [['oid' => LDAP_CONTROL_PASSWORDPOLICYREQUEST]]);

  if (ldap_parse_result($ds, $r, $errcode, $matcheddn, $errmsg, $referrals, $ctrls)) {
    if ($errcode != 0) {
      die("Ошибки: $errmsg ($errcode)");
    }
    if (isset($ctrls[LDAP_CONTROL_PASSWORDPOLICYRESPONSE])) {
      $value = $ctrls[LDAP_CONTROL_PASSWORDPOLICYRESPONSE]['value'];
      echo "Истекает: ".$value['expire']." seconds\n";
      echo "Количество оставшихся аутентификаций: ".$value['grace']."\n";
      if (isset($value['error'])) {
        echo "Код ошибки Ppolicy: ".$value['error'];
      }
    }
  }
} else {
  die("Невозможно подключиться к серверу LDAP");
}
?>

Пример #2 Изменение описания, только если оно не пустое

<?php
  // $link - это LDAP-соединение

  $result = ldap_mod_replace_ext(
    $link,
    'o=test,dc=example,dc=com',
    ['description' => 'New description'],
    [
      [
        'oid'         => LDAP_CONTROL_ASSERT,
        'iscritical'  => TRUE,
        'value'       => ['filter' => '(!(description=*))']
      ]
    ]
  );

  // Затем используйте ldap_parse_result
?>

Пример #3 Чтение определенных значений перед удалением

<?php
  // $link - это LDAP-соединение

  $result = ldap_delete_ext(
    $link,
    'o=test,dc=example,dc=com',
    [
      [
        'oid'         => LDAP_CONTROL_PRE_READ,
        'iscritical'  => TRUE,
        'value'       => ['attrs' => ['o', 'description']]
      ]
    ]
  );

  // Затем используйте ldap_parse_result
?>

Пример #4 Удаление ссылки

<?php
  // $link - это LDAP-соединение

  // Без управления он удалит ссылочный узел
  // Обязательно настройте управление так, чтобы избежать этого.
  $result = ldap_delete_ext(
    $link,
    'cn=reference,dc=example,dc=com',
    [['oid' => LDAP_CONTROL_MANAGEDSAIT, 'iscritical' => TRUE]]
  );

  // Затем используйте ldap_parse_result
?>

Пример #5 Использование пагинации для поиска

<?php
  // $link - это LDAP-соединение

  $cookie = '';

  do {
    $result = ldap_search(
      $link, 'dc=example,dc=base', '(cn=*)', ['cn'], 0, 0, 0, LDAP_DEREF_NEVER,
      [['oid' => LDAP_CONTROL_PAGEDRESULTS, 'value' => ['size' => 2, 'cookie' => $cookie]]]
    );
    ldap_parse_result($link, $result, $errcode , $matcheddn , $errmsg , $referrals, $controls);
    // Чтобы сохранить пример, короткие ошибки не проверяются
    $entries = ldap_get_entries($link, $result);
    foreach ($entries as $entry) {
      echo "cn: ".$entry['cn'][0]."\n";
    }
    if (isset($controls[LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'])) {
      // Вам необходимо передать cookie с последнего вызова на следующий
      $cookie = $controls[LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'];
    } else {
      $cookie = '';
    }
    // Пустой cookie означает последнюю страницу
  } while (!empty($cookie));
?>


Функции LDAP

Содержание

  • ldap_8859_to_t61 — Переводит символы из кодировки ISO-8859 в t61
  • ldap_add_ext — Добавить записи в каталог LDAP
  • ldap_add — Добавить запись в LDAP директорию
  • ldap_bind_ext — Привязать к директории LDAP
  • ldap_bind — Привязать к LDAP директории
  • ldap_close — Псевдоним ldap_unbind
  • ldap_compare — Сравнить значение атрибута, найденного в записи определённой DN
  • ldap_connect — Подключиться к серверу LDAP
  • ldap_control_paged_result_response — Получить указатель на текущую страницу результирующего набора LDAP
  • ldap_control_paged_result — Послать серверу LDAP данные для использования постраничного извлечения результата
  • ldap_count_entries — Посчитать число записей в результатах поиска
  • ldap_delete_ext — Удалить запись из директории
  • ldap_delete — Удаляет запись из директории LDAP
  • ldap_dn2ufn — Преобразовать DN в удобный для пользователя формат именования
  • ldap_err2str — Преобразовать код ошибки LDAP в строковое сообщение об ошибке
  • ldap_errno — Возвратить номер ошибки LDAP последней команды
  • ldap_error — Возвратить сообщение об ошибке LDAP последней команды
  • ldap_escape — Экранирование строки для использования в фильтре LDAP или в DN
  • ldap_exop_passwd — Обертка для расширенной операции PASSWD
  • ldap_exop_refresh — Обертка для расширенной операции Refresh
  • ldap_exop_whoami — Обертка для расширенной операции WHOAMI
  • ldap_exop — Выполнить расширенную операцию
  • ldap_explode_dn — Разделить DN на его составные части
  • ldap_first_attribute — Вернуть первый атрибут
  • ldap_first_entry — Возвратить первый идентификатор результата
  • ldap_first_reference — Возвращает первую справку
  • ldap_free_result — Освободить память результата
  • ldap_get_attributes — Получает атрибуты из записи в результатах поиска
  • ldap_get_dn — Получить DN результирующей записи
  • ldap_get_entries — Получает все записи результата
  • ldap_get_option — Получить текущее значение данной опции
  • ldap_get_values_len — Получить все бинарные значения из записи результата
  • ldap_get_values — Получает все значения из записи результата
  • ldap_list — Одноуровневый поиск
  • ldap_mod_add_ext — Добавить значения атрибута к текущим атрибутам
  • ldap_mod_add — Добавить значения атрибута к текущим атрибутам
  • ldap_mod_del_ext — Удалить значения атрибутов из текущих атрибутов
  • ldap_mod_del — Удалить значения атрибута из текущих атрибутов
  • ldap_mod_replace_ext — Заменить значения атрибута на новые
  • ldap_mod_replace — Заменить значения атрибутов на новые
  • ldap_modify_batch — Формирования и запуск пакетного изменения записи LDAP
  • ldap_modify — Псевдоним ldap_mod_replace
  • ldap_next_attribute — Получить следующий атрибут из результата
  • ldap_next_entry — Получить следующую запись результата
  • ldap_next_reference — Возвращает следующую справку
  • ldap_parse_exop — Разбор результирующего объекта выполнения расширенной операции LDAP
  • ldap_parse_reference — Извлекает информацию из справочника
  • ldap_parse_result — Извлечь информацию из результата
  • ldap_read — Читает запись
  • ldap_rename_ext — Модифицировать название записи
  • ldap_rename — Изменить имя записи
  • ldap_sasl_bind — Привязать к LDAP директории, используя SASL
  • ldap_search — Поиск по LDAP дереву
  • ldap_set_option — Установить значение данной опции
  • ldap_set_rebind_proc — Установить функцию обратного вызова для повторного связывания при ссылочном поиске
  • ldap_sort — Сортирует записи LDAP
  • ldap_start_tls — Запускает TLS
  • ldap_t61_to_8859 — Переводит символы из кодировки t61 в ISO-8859
  • ldap_unbind — Разорвать привязку к директории LDAP


Переводит символы из кодировки ISO-8859 в t61

  • « Функции LDAP
  • ldap_add_ext »
  • PHP Manual
  • Функции LDAP
  • Переводит символы из кодировки ISO-8859 в t61

ldap_8859_to_t61

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ldap_8859_to_t61 — Переводит символы из кодировки ISO-8859 в t61

Описание

ldap_8859_to_t61 ( string $value ) : string

Переводит символы из кодировки ISO-8859 в t61.

Эта функция полезна, если необходимо работать с устаревшим сервером LDAPv2.

Список параметров

value

Текст, которые должен быть переведён.

Возвращаемые значения

Возвращает кодированный в t61 параметр value.

Смотрите также

  • ldap_t61_to_8859() - Переводит символы из кодировки t61 в ISO-8859


Добавить записи в каталог LDAP

  • « ldap_8859_to_t61
  • ldap_add »
  • PHP Manual
  • Функции LDAP
  • Добавить записи в каталог LDAP

ldap_add_ext

(PHP 7 >= 7.3.0)

ldap_add_ext — Добавить записи в каталог LDAP

Описание

ldap_add_ext ( resource $link_identifier , string $dn , array $entry [, array $serverctrls = array() ] ) : resource

Делает то же самое, что и ldap_add(), но возвращает ресурс результата LDAP для разбора с помощью ldap_parse_result().

Список параметров

Смотрите ldap_add()

Возвращаемые значения

Возвращает идентификатор ресурса LDAP или FALSE в случае возникновения ошибки.

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • ldap_add() - Добавить запись в LDAP директорию
  • ldap_parse_result() - Извлечь информацию из результата


Добавить запись в LDAP директорию

  • « ldap_add_ext
  • ldap_bind_ext »
  • PHP Manual
  • Функции LDAP
  • Добавить запись в LDAP директорию

ldap_add

(PHP 4, PHP 5, PHP 7)

ldap_add — Добавить запись в LDAP директорию

Описание

ldap_add ( resource $link_identifier , string $dn , array $entry [, array $serverctrls = array() ] ) : bool

Добавляет запись в LDAP-директорию.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

dn

Отличительное имя LDAP-объекта.

entry

Массив, который определяет информацию о записи. Значения в записи индексируются индивидуальными атрибутами. В случае множественных значений для атрибута, они индексируются с использованием целых чисел, начиная с 0.

<?php
$entry["attribute1"] = "value";
$entry["attribute2"][0] = "value1";
$entry["attribute2"][1] = "value2";
?>

serverctrls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3 | Добавлена поддержка параметра serverctrls

Примеры

Пример #1 Полный пример с проверкой подлинности привязки

<?php
$ds = ldap_connect("localhost");  // предположим, что сервер LDAP находится тут

if ($ds) {
    // привязка к соответствующему dn для возможности обновления
    $r = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");

    // подготовить данные
    $info["cn"] = "John Jones";
    $info["sn"] = "Jones";
    $info["objectclass"] = "person";

    // добавить данные
    $r = ldap_add($ds, "cn=John Jones, o=My Company, c=US", $info);

    ldap_close($ds);
} else {
    echo "Невозможно соединиться с сервером LDAP";
}
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • ldap_add_ext() - Добавить записи в каталог LDAP
  • ldap_delete() - Удаляет запись из директории LDAP


Привязать к директории LDAP

  • « ldap_add
  • ldap_bind »
  • PHP Manual
  • Функции LDAP
  • Привязать к директории LDAP

ldap_bind_ext

(PHP 7 >= 7.3.0)

ldap_bind_ext — Привязать к директории LDAP

Описание

ldap_bind_ext ( resource $link_identifier [, string $bind_rdn = NULL [, string $bind_password = NULL [, array $serverctrls = array() ]]] ) : resource

Делает то же самое, что и ldap_bind(), но возвращает ресурс результата LDAP для разбора с помощью ldap_parse_result().

Список параметров

См. ldap_bind()

Возвращаемые значения

Возвращает идентификатор ресурса LDAP или FALSE в случае возникновения ошибки.

Смотрите также

  • ldap_bind() - Привязать к LDAP директории
  • ldap_parse_result() - Извлечь информацию из результата


Привязать к LDAP директории

  • « ldap_bind_ext
  • ldap_close »
  • PHP Manual
  • Функции LDAP
  • Привязать к LDAP директории

ldap_bind

(PHP 4, PHP 5, PHP 7)

ldap_bind — Привязать к LDAP директории

Описание

ldap_bind ( resource $link_identifier [, string $bind_rdn = NULL [, string $bind_password = NULL ]] ) : bool

Связывает LDAP-директорию с указанным RDN и паролем.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

bind_rdn

bind_password

Если bind_password не определен, то будет попытка анонимной привязки. Также для анонимной привязки можно оставить пустым bind_rdn, как определено в https://tools.ietf.org/html/rfc2251#section-4.2.2

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования привязки LDAP

<?php

// используется ldap-привязка
$ldaprdn  = 'uname';     // ldap rdn или dn
$ldappass = 'password';  // ассоциированный пароль

// соединение с сервером
$ldapconn = ldap_connect("ldap://ldap.example.com")
    or die("Не могу соединиться с сервером LDAP.");

if ($ldapconn) {

    // привязка к ldap-серверу
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

    // проверка привязки
    if ($ldapbind) {
        echo "LDAP-привязка успешна...";
    } else {
        echo "LDAP-привязка не удалась...";
    }

}

?>

Пример #2 Использование анонимной привязки LDAP

<?php

//анонимное использование ldap-привязки

// соединение с сервером ldap
$ldapconn = ldap_connect("ldap://ldap.example.com")
    or die("Не могу соединиться с сервером LDAP.");

if ($ldapconn) {

    // анонимная привязка
    $ldapbind = ldap_bind($ldapconn);

    if ($ldapbind) {
        echo "Анонимная привязка LDAP прошла успешно...";
    } else {
        echo "Анонимная привязка LDAP не удалась...";
    }

}

?>

Смотрите также

  • ldap_bind_ext() - Привязать к директории LDAP
  • ldap_unbind() - Разорвать привязку к директории LDAP


Псевдоним ldap_unbind

  • « ldap_bind
  • ldap_compare »
  • PHP Manual
  • Функции LDAP
  • Псевдоним ldap_unbind

ldap_close

(PHP 4, PHP 5, PHP 7)

ldap_close — Псевдоним ldap_unbind()

Описание

Эта функция является псевдонимом: ldap_unbind().


Сравнить значение атрибута, найденного в записи определённой DN

  • « ldap_close
  • ldap_connect »
  • PHP Manual
  • Функции LDAP
  • Сравнить значение атрибута, найденного в записи определённой DN

ldap_compare

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ldap_compare — Сравнить значение атрибута, найденного в записи определённой DN

Описание

ldap_compare ( resource $link_identifier , string $dn , string $attribute , string $value [, array $serverctrls = array() ] ) : mixed

Сравнивает значение (value) атрибута (attribute) со значением того же атрибута в записи LDAP-директории.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

dn

Отличительное имя LDAP-объекта.

attribute

Имя атрибута.

value

Сравниваемое значение.

serverctrls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает TRUE если value совпадают в противном случае FALSE. Возвращает -1 в случае ошибки.

Список изменений

Версия | Описание
7.3 | Добавлена поддержка параметра serverctrls

Примеры

Следующий пример демонстрирует, как проверить, совпадает ли данный пароль с тем, который определен в указанной записи DN.

Пример #1 Полный пример проверки пароля

<?php

$ds=ldap_connect("localhost");  // Предположим, что LDAP сервер находится по этому адресу

if ($ds) {

    // bind
    if (ldap_bind($ds)) {

        // подготовка данных
        $dn = "cn=Matti Meikku, ou=My Unit, o=My Company, c=FI";
        $value = "secretpassword";
        $attr = "password";

        // сравнение данных
        $r=ldap_compare($ds, $dn, $attr, $value);

        if ($r === -1) {
            echo "Ошибка: " . ldap_error($ds);
        } elseif ($r === true) {
            echo "Пароль верный.";
        } elseif ($r === false) {
            echo "Неправильное предположение! Пароль не верен.";
        }

    } else {
        echo "Невозможно привязаться к серверу LDAP.";
    }

    ldap_close($ds);

} else {
    echo "Невозможно соединиться с сервером LDAP.";
}
?>

Примечания

Внимание

ldap_compare() не может быть использована для сравнения бинарных (BINARY) значений!


Подключиться к серверу LDAP

  • « ldap_compare
  • ldap_control_paged_result_response »
  • PHP Manual
  • Функции LDAP
  • Подключиться к серверу LDAP

ldap_connect

(PHP 4, PHP 5, PHP 7)

ldap_connect — Подключиться к серверу LDAP

Описание

ldap_connect ([ string $ldap_uri = NULL ] ) : resource
Внимание

Следующий синтаксис все еще поддерживается для обеспечения обратной совместимости, но он объявлен устаревшим и больше не должен использоваться!

ldap_connect ([ string $host = NULL [, int $port = 389 ]] ) : resource

Создает идентификатор соединения LDAP и проверяет правдоподобность заданных hostname и port.

Замечание: Эта функция НЕ открывает соединение. Она проверяет, правдоподобны ли заданные параметры и могут ли они использоваться для подключения, когда в нем возникнет нужна.

Список параметров

ldap_uri

Полный LDAP URI вида ldap://hostname:port или ldaps://hostname:port.

Также вы можете указать несколько LDAP-URI, разделенных пробелом.

Обратите внимание, что hostname:port - это неподдерживаемый LDAP URI, так как отсутствует схема.

host

Имя сервера для соединения.

port

Порт для соединения.

Возвращаемые значения

Возвращает положительный идентификатор ссылки LDAP, если LDAP URI правдоподобен. Она производит синтаксический разбор и проверку переданных параметров, но соединения с сервером не происходит. Если проверка синтаксиса провалилась - возвращается FALSE. ldap_connect() будет всегда возвращать resource, поскольку она фактически не соединяется, а только инициализирует параметры соединения. Фактическое подключение происходит при последующих вызовах ldap_* функций, обычно при вызове ldap_bind().

Если никакие параметры не будут определены, тогда будет возвращен идентификатор уже открытой ссылки.

Примеры

Пример #1 Пример подключения к серверу LDAP.

<?php

// LDAP переменные
$ldapuri = "ldap://ldap.example.com:389";  // ldap-uri

// Соединение с LDAP
$ldapconn = ldap_connect($ldapuri)
          or die("LDAP-URI некорректен");

?>

Пример #2 Пример безопасного подключения к серверу LDAP.

<?php

// Убедитесь, что ваш хост корректный и
// что вы выдали ему сертификат безопасности
$ldaphost = "ldaps://ldap.example.com/";

// Соединение с LDAP
$ldapconn = ldap_connect($ldaphost)
          or die("LDAP-URI некорректен");

?>

Смотрите также

  • ldap_bind() - Привязать к LDAP директории


Получить указатель на текущую страницу результирующего набора LDAP

  • « ldap_connect
  • ldap_control_paged_result »
  • PHP Manual
  • Функции LDAP
  • Получить указатель на текущую страницу результирующего набора LDAP

ldap_control_paged_result_response

(PHP 5 >= 5.4.0, PHP 7)

ldap_control_paged_result_response — Получить указатель на текущую страницу результирующего набора LDAP

Внимание

Эта функция объявлена УСТАРЕВШИМ, начиная с PHP 7.4.0 и ее использование крайне не рекомендовано.

Описание

ldap_control_paged_result_response ( resource $link , resource $result [, string &$cookie [, int &$estimated ]] ) : bool

Получить указатель на текущую страницу результирующего набора LDAP.

Список параметров

link

Идентификатор соединения LDAP, возвращенный ldap_connect().

result

cookie

Непрозрачная структура полученая с сервера.

estimated

Предполагаемое количество записей для извлечения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.4.0 | Функция объявлена устаревшей.

Смотрите также

  • ldap_control_paged_result() - Послать серверу LDAP данные для использования постраничного извлечения результата
  • » RFC2696 : Управляющее расширение LDAP для простых манипуляций постранично возвращаемым результатом


Послать серверу LDAP данные для использования постраничного извлечения результата

  • « ldap_control_paged_result_response
  • ldap_count_entries »
  • PHP Manual
  • Функции LDAP
  • Послать серверу LDAP данные для использования постраничного извлечения результата

ldap_control_paged_result

(PHP 5 >= 5.4.0, PHP 7)

ldap_control_paged_result — Послать серверу LDAP данные для использования постраничного извлечения результата

Внимание

Эта функция объявлена УСТАРЕВШИМ, начиная с PHP 7.4.0 и ее использование крайне не рекомендовано.

Описание

ldap_control_paged_result ( resource $link , int $pagesize [, bool $iscritical = FALSE [, string $cookie = "" ]] ) : bool

Разрешает работу с LDAP в постраничном режиме, путем отправки желаемых настроек (размер страницы, куки и т.д.)

Список параметров

link

Идентификатор соединения LDAP, возвращенный ldap_connect().

pagesize

Количество записей на страницу.

iscritical

Определяет, является ли постраничный режим критичным или нет. Если TRUE и если сервер не поддерживает постраничную работу, поиск вернет пустой результат.

cookie

Непрозрачная структура, посылаемая сервером (ldap_control_paged_result_response()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.4.0 | Функция объявлена устаревшей.

Примеры

Пример ниже демонстрирует извлечение первой страницы результата поиска с использованием размера страницы равного одной записи.

Пример #1 Постраничная работа с LDAP

<?php
     // $ds - идентификатор соединения (см. ldap_connect)
     ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

     $dn        = 'ou=example,dc=org';
     $filter    = '(|(sn=Doe*)(givenname=John*))';
     $justthese = array('ou', 'sn', 'givenname', 'mail');

     // разрешаем постраничную работу с размером страницы равному одной записи.
     ldap_control_paged_result($ds, 1);

     $sr = ldap_search($ds, $dn, $filter, $justthese);

     $info = ldap_get_entries($ds, $sr);

     echo $info['count'] . ' записей возвращено' . PHP_EOL;

Пример ниже демонстрирует извлечение первой страницы результата поиска с использованием размера страницы равного ста записям.

Пример #2 Постраничная работа с LDAP

<?php
     // $ds - идентификатор соединения (см. ldap_connect)
     ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

     $dn        = 'ou=example,dc=org';
     $filter    = '(|(sn=Doe*)(givenname=John*))';
     $justthese = array('ou', 'sn', 'givenname', 'mail');

     // разрешаем постраничную работу с размером страницы равному ста записям.
     $pageSize = 100;

     $cookie = '';
     do {
         ldap_control_paged_result($ds, $pageSize, true, $cookie);

         $result  = ldap_search($ds, $dn, $filter, $justthese);
         $entries = ldap_get_entries($ds, $result);

         foreach ($entries as $e) {
             echo $e['dn'] . PHP_EOL;
         }

         ldap_control_paged_result_response($ds, $result, $cookie);

     } while($cookie !== null && $cookie != '');

Примечания

Замечание:

Постраничный режим появился в версии протокола LDAPv3.

Смотрите также

  • ldap_control_paged_result_response() - Получить указатель на текущую страницу результирующего набора LDAP
  • » RFC2696 : Управляющее расширение LDAP для простых манипуляций постранично возвращаемым результатом


Посчитать число записей в результатах поиска

  • « ldap_control_paged_result
  • ldap_delete_ext »
  • PHP Manual
  • Функции LDAP
  • Посчитать число записей в результатах поиска

ldap_count_entries

(PHP 4, PHP 5, PHP 7)

ldap_count_entries — Посчитать число записей в результатах поиска

Описание

ldap_count_entries ( resource $link_identifier , resource $result_identifier ) : int

Возвращает число записей, сохраненных в результате предыдущей операции поиска.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный функцией ldap_connect().

result_identifier

Внутренний результат LDAP.

Возвращаемые значения

Возвращает число записей в результате или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования функции ldap-count-entries()

Получение числа записей в результате.

// $ds - действительный идентификатор соединения (см. ldap_connect)

     $dn        = 'ou=example,dc=org';
     $filter    = '(|(sn=Doe*)(givenname=John*))';
     $justthese = array('ou', 'sn', 'givenname', 'mail');

     $sr = ldap_search($ds, $dn, $filter, $justthese);

     var_dump(ldap_count_entries($ds, $sr));

Результатом выполнения данного примера будет что-то подобное:

     int(1)


Удалить запись из директории

  • « ldap_count_entries
  • ldap_delete »
  • PHP Manual
  • Функции LDAP
  • Удалить запись из директории

ldap_delete_ext

(PHP 7 >= 7.3.0)

ldap_delete_ext — Удалить запись из директории

Описание

ldap_delete_ext ( resource $link_identifier , string $dn [, array $serverctrls = array() ] ) : resource

Делает то же самое, что и ldap_delete(), но возвращает ресурс результата LDAP для разбора с помощью ldap_parse_result().

Список параметров

См. ldap_delete()

Возвращаемые значения

Возвращает идентификатор ресурса LDAP или FALSE в случае ошибки.

Смотрите также

  • ldap_delete() - Удаляет запись из директории LDAP
  • ldap_parse_result() - Извлечь информацию из результата


Удаляет запись из директории LDAP

  • « ldap_delete_ext
  • ldap_dn2ufn »
  • PHP Manual
  • Функции LDAP
  • Удаляет запись из директории LDAP

ldap_delete

(PHP 4, PHP 5, PHP 7)

ldap_delete — Удаляет запись из директории LDAP

Описание

ldap_delete ( resource $link_identifier , string $dn [, array $serverctrls = array() ] ) : bool

Удаление конкретной записи из директории LDAP.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращаемый ldap_connect().

dn

Уникальное имя LDAP-записи.

serverctrls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3 | Добавлена поддержка параметра serverctrls

Смотрите также

  • ldap_delete_ext() - Удалить запись из директории
  • ldap_add() - Добавить запись в LDAP директорию


Преобразовать DN в удобный для пользователя формат именования

  • « ldap_delete
  • ldap_err2str »
  • PHP Manual
  • Функции LDAP
  • Преобразовать DN в удобный для пользователя формат именования

ldap_dn2ufn

(PHP 4, PHP 5, PHP 7)

ldap_dn2ufn — Преобразовать DN в удобный для пользователя формат именования

Описание

ldap_dn2ufn ( string $dn ) : string

Переключает указанный dn в более удобную для пользователя форму, снимая изоляцию с имен типов.

Список параметров

dn

Отличительное имя объекта LDAP.

Возвращаемые значения

Возвращает удобное для пользователя имя.


Преобразовать код ошибки LDAP в строковое сообщение об ошибке

  • « ldap_dn2ufn
  • ldap_errno »
  • PHP Manual
  • Функции LDAP
  • Преобразовать код ошибки LDAP в строковое сообщение об ошибке

ldap_err2str

(PHP 4, PHP 5, PHP 7)

ldap_err2str — Преобразовать код ошибки LDAP в строковое сообщение об ошибке

Описание

ldap_err2str ( int $errno ) : string

Возвращает строковое сообщение об ошибке, объясняющее код ошибки errno. В то время как LDAP числа errno стандартизированы, различные библиотеки возвращают отличающиеся или даже локализованные текстовые сообщения об ошибках. Никогда не проверяйте на определенный текст сообщения об ошибке, всегда пользуйтесь кодами ошибок для проверки.

Список параметров

errno

Номер ошибки.

Возвращаемые значения

Возвращает сообщение ошибки в виде строки.

Примеры

Пример #1 Перечисление всех сообщений об ошибках LDAP

<?php
  for ($i=0; $i<100; $i++) {
    printf("Ошибка $i: %s<br />\n", ldap_err2str($i));
  }
?>

Смотрите также

  • ldap_errno() - Возвратить номер ошибки LDAP последней команды
  • ldap_error() - Возвратить сообщение об ошибке LDAP последней команды


Возвратить номер ошибки LDAP последней команды

  • « ldap_err2str
  • ldap_error »
  • PHP Manual
  • Функции LDAP
  • Возвратить номер ошибки LDAP последней команды

ldap_errno

(PHP 4, PHP 5, PHP 7)

ldap_errno — Возвратить номер ошибки LDAP последней команды

Описание

ldap_errno ( resource $link_identifier ) : int

Возвращает стандартизированный код ошибки, возвращенный последней командой LDAP. Это число может быть преобразовано в текстовое сообщение об ошибке, используя ldap_err2str().

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

Возвращаемые значения

Возвращает код ошибки LDAP последней команды для этой ссылки.

Примеры

Если вы не снизите достаточно уровень предупреждений в php.ini, или префикс ваших LDAP-команд не будет с символом @ для подавления вывода предупреждений, генерируемые ошибки будут также отображаться в вашем HTML выводе.

Пример #1 Генерирование и фиксация ошибки

<?php
// Этот пример содержит ошибку, которую мы поймаем
$ld = ldap_connect("localhost");
$bind = ldap_bind($ld);
// синтаксическая ошибка в выражении фильтра (errno 87),
// должно быть "objectclass=*" для того, чтобы это работало.
$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"] . " подходящих записей.<br />\n";
?>

Смотрите также

  • ldap_err2str() - Преобразовать код ошибки LDAP в строковое сообщение об ошибке
  • ldap_error() - Возвратить сообщение об ошибке LDAP последней команды


Возвратить сообщение об ошибке LDAP последней команды

  • « ldap_errno
  • ldap_escape »
  • PHP Manual
  • Функции LDAP
  • Возвратить сообщение об ошибке LDAP последней команды

ldap_error

(PHP 4, PHP 5, PHP 7)

ldap_error — Возвратить сообщение об ошибке LDAP последней команды

Описание

ldap_error ( resource $link_identifier ) : string

Возвращает строковое сообщение об ошибке, объясняя ошибку, сгенерированную последней командой LDAP для данного идентификатора соединения link_identifier. В то время как LDAP errno числа стандартизированы, различные библиотеки возвращают отличающийся или даже локализованные текстовые сообщения об ошибках. Никогда не проверяйте на определенный текст сообщения об ошибке, всегда используйте кодами ошибок для проверки.

Если вы не снизите достаточно уровень предупреждений в php.ini, или префикс ваших LDAP-команд не будет с символом @ для подавления вывода предупреждений, генерируемые ошибки будут также отображаться в вашем HTML выводе.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

Возвращаемые значения

Возвращает сообщение ошибки в виде строки.

Смотрите также

  • ldap_err2str() - Преобразовать код ошибки LDAP в строковое сообщение об ошибке
  • ldap_errno() - Возвратить номер ошибки LDAP последней команды


Экранирование строки для использования в фильтре LDAP или в DN

  • « ldap_error
  • ldap_exop_passwd »
  • PHP Manual
  • Функции LDAP
  • Экранирование строки для использования в фильтре LDAP или в DN

ldap_escape

(PHP 5 >= 5.6.0, PHP 7)

ldap_escape — Экранирование строки для использования в фильтре LDAP или в DN

Описание

ldap_escape ( string $value [, string $ignore = "" [, int $flags = 0 ]] ) : string

Экранирует value для использования в контексте заданном в flags.

Список параметров

value

Значение для экранирования.

ignore

Символы, которые необходимо игнорировать при экранировании.

flags

Контекст, для которого экранируется строка: LDAP_ESCAPE_FILTER для фильтров, используемых в ldap_search() или LDAP_ESCAPE_DN для DN. Если не переданы никакие флаги, то все символы будут экранированы.

Возвращаемые значения

возвращает экранированную строку.

Примеры

При построении фильтра LDAP, вы должны использовать ldap_escape с флагом LDAP_ESCAPE_FILTER.

Пример #1 Поиск по email-адресу

<?php
// $ds - идентификатор сервера каталогов

// $mail - email-адрес, предоставленный пользователем

$base   = "o=My Company, c=US";
$filter = "(mail=".ldap_escape($mail, "", LDAP_ESCAPE_FILTER).")";

$sr = ldap_search($ds, $base, $filter, array("sn", "givenname", "mail"));

$info = ldap_get_entries($ds, $sr);

echo $info["count"]." записей возвращено\n";
?>


Обертка для расширенной операции PASSWD

  • « ldap_escape
  • ldap_exop_refresh »
  • PHP Manual
  • Функции LDAP
  • Обертка для расширенной операции PASSWD

ldap_exop_passwd

(PHP 7 >= 7.2.0)

ldap_exop_passwd — Обертка для расширенной операции PASSWD

Описание

ldap_exop_passwd ( resource $link [, string $user = "" [, string $oldpw = "" [, string $newpw = "" [, array &$serverctrls ]]]] ) : mixed

Выполняет расширенную операцию PASSWD.

Список параметров

link

Идентификатор соединения LDAP, полученный из ldap_connect().

user

Уникальное имя (DN) пользователя, для которого меняется пароль.

oldpw

Старый пароль. В зависимости от конфигурации может быть опущен.

newpw

Новый пароль. Может быть опущен, либо задан пустым для автогенерации пароля.

serverctrls

Если задано, то с запросом будет передан запрос парольной политики и это поле будет заполнено массивом управляющих констант LDAP, возвращенным запросом.

Возвращаемые значения

Возвращает новыый пароль, если параметр newpw не задан, либо задан пустым. Иначе возвращает TRUE или FALSE, в зависимости от успешности выполнения.

Список изменений

Версия | Описание
7.3 | Добавлена поддержка параметра serverctrls

Примеры

Пример #1 Расширенная операция PASSWD

<?php
$ds = ldap_connect("localhost");  // предположим, что сервер LDAP запущен локально

if ($ds) {
    // Привязываемся к нужному DN
    $bind = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");
    if (!$bind) {
      echo "Невозможно осуществить привязку LDAP";
      exit;
    }

    // Используем PASSWD EXOP для смены пароля пользователя на новый случайный
    $genpw = ldap_exop_passwd($ds, "cn=root, o=My Company, c=US", "secret");
    if ($genpw) {
      // Используем для привязки новый пароль
      $bind = ldap_bind($ds, "cn=root, o=My Company, c=US", $genpw);
    }

    // Возвращаем старый пароль "secret"
    ldap_exop_passwd($ds, "cn=root, o=My Company, c=US", $genpw, "secret");

    ldap_close($ds);
} else {
    echo "Невозможно соединиться с сервером LDAP";
}
?>

Смотрите также

  • ldap_exop() - Выполнить расширенную операцию
  • ldap_parse_exop() - Разбор результирующего объекта выполнения расширенной операции LDAP


Обертка для расширенной операции Refresh

  • « ldap_exop_passwd
  • ldap_exop_whoami »
  • PHP Manual
  • Функции LDAP
  • Обертка для расширенной операции Refresh

ldap_exop_refresh

(PHP 7 >= 7.3.0)

ldap_exop_refresh — Обертка для расширенной операции Refresh

Описание

ldap_exop_refresh ( resource $link , string $dn , int $ttl ) : int

Выполняет расширенную операцию Performs и возвращает результат.

Список параметров

link

Идентификатор соединения LDAP, полученный из ldap_connect().

dn

Уникальное имя (DN) записи для которой выполняется операция.

ttl

Время в секундах (от 1 до 31557600) существования записи в каталоге, запрошенное клиентом. По истечении этого времени она будет автоматически удалена.

Возвращаемые значения

Из RFC: Поле responseTtl содержит время в секундах считаемое сервером временем жизни записи. Оно не может быть меньше запрошенного клиентом, но может быть больше. Однако, чтобы позволить серверам поддерживать каталог в относительно консистентном состоянии и для предотвращения злоупотребления клиентами постоянным продлением, серверу дозволено уменьшать запрошенное клиентом значение до, но не меньше чем, 86400 секунд (один день). В случае ошибки вернет FALSE.

Смотрите также

  • ldap_exop() - Выполнить расширенную операцию


Обертка для расширенной операции WHOAMI

  • « ldap_exop_refresh
  • ldap_exop »
  • PHP Manual
  • Функции LDAP
  • Обертка для расширенной операции WHOAMI

ldap_exop_whoami

(PHP 7 >= 7.2.0)

ldap_exop_whoami — Обертка для расширенной операции WHOAMI

Описание

ldap_exop_whoami ( resource $link ) : string

Выполняет расширенную операцию WHOAMI и возвращает данные.

Список параметров

link

Идентификатор соединения LDAP, полученный из ldap_connect().

Возвращаемые значения

Данные, возвращенные сервером, либо FALSE.

Смотрите также

  • ldap_exop() - Выполнить расширенную операцию


Выполнить расширенную операцию

  • « ldap_exop_whoami
  • ldap_explode_dn »
  • PHP Manual
  • Функции LDAP
  • Выполнить расширенную операцию

ldap_exop

(PHP 7 >= 7.2.0)

ldap_exop — Выполнить расширенную операцию

Описание

ldap_exop ( resource $link , string $reqoid [, string $reqdata = NULL [, array $serverctrls = NULL [, string &$retdata [, string &$retoid ]]]] ) : mixed

Выполняет расширенную операцию для заданного link с OID операции reqoid и данными reqdata.

Список параметров

link

Идентификатор соединения LDAP, полученный из ldap_connect().

reqoid

Идентификатор расширенной операции OID. Можно использовать одну из констант LDAP_EXOP_START_TLS, LDAP_EXOP_MODIFY_PASSWD, LDAP_EXOP_REFRESH, LDAP_EXOP_WHO_AM_I, LDAP_EXOP_TURN или строку с OID необходимой операции.

reqdata

Данные для запроса расширенной операции. Может быть NULL для операций типа LDAP_EXOP_WHO_AM_I. Может потребоваться закодировать BER.

serverctrls

Массив управляющих констант LDAP для посылки в запросе.

retdata

Если задано, то будет заполнено данными, полученными в результате выполнения операции. Если не задано, то для получения данных можно использовать ldap_parse_exop для полученного объекта.

retoid

Если задано, то будет заполнено OID ответа. Обычно совпадает с OID запроса.

Возвращаемые значения

Если используется с retdata, то возвращает TRUE или FALSE. Если используется без retdata, то возвращает идентификатор ресурса или FALSE.

Список изменений

Версия | Описание
7.3 | Добавлена поддержка serverctrls

Примеры

Пример #1 Расширенная операция Whoami

<?php
$ds = ldap_connect("localhost");   // предположим, что сервер LDAP запущен локально

if ($ds) {
    // Привязываемся к нужному DN
    $bind = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");
    if (!$bind) {
     echo "Невозможно осуществить привязку LDAP";
      exit;
    }

    // Вызываем WHOAMI EXOP
    $r = ldap_exop($ds, LDAP_EXOP_WHO_AM_I);

    // Разбираем полученный ответ
    ldap_parse_exop($ds, $r, $retdata);
    // Вывод: string(31) "dn:cn=root, o=My Company, c=US"
    var_dump($retdata);

    // То же самое, но с параметром $retdata
    $success = ldap_exop($ds, LDAP_EXOP_WHO_AM_I, NULL, NULL, $retdata, $retoid);
    if ($success) {
      var_dump($retdata);
    }

    ldap_close($ds);
} else {
    echo "Невозможно соединиться с сервером LDAP";
}
?>

Смотрите также

  • ldap_parse_result() - Извлечь информацию из результата
  • ldap_parse_exop() - Разбор результирующего объекта выполнения расширенной операции LDAP
  • ldap_exop_whoami() - Обертка для расширенной операции WHOAMI
  • ldap_exop_refresh() - Обертка для расширенной операции Refresh
  • ldap_exop_passwd() - Обертка для расширенной операции PASSWD


Разделить DN на его составные части

  • « ldap_exop
  • ldap_first_attribute »
  • PHP Manual
  • Функции LDAP
  • Разделить DN на его составные части

ldap_explode_dn

(PHP 4, PHP 5, PHP 7)

ldap_explode_dn — Разделить DN на его составные части

Описание

ldap_explode_dn ( string $dn , int $with_attrib ) : array

Разделяет DN, возвращенный функцией ldap_get_dn(), и разбивает его на составные части. Каждая часть известна как относительное отличительное имя или RDN.

Список параметров

dn

Отличительное имя объекта LDAP.

with_attrib

Используется для запроса, если RDNs возвращены только со значениями или также с их атрибутами. Для получения RDNs с атрибутами (то есть в формате attribute=value) установите параметр with_attrib в 0 и для получения только значений установите его в 1.

Возвращаемые значения

Возвращает массив всех компонентов DN, или FALSE в случае возникновения ошибки. У первого элемента в этом массиве есть ключ count, и он представляет собой число возвращенных значений. Следующие элементы - это компоненты DN с цифровыми индексами.


Вернуть первый атрибут

  • « ldap_explode_dn
  • ldap_first_entry »
  • PHP Manual
  • Функции LDAP
  • Вернуть первый атрибут

ldap_first_attribute

(PHP 4, PHP 5, PHP 7)

ldap_first_attribute — Вернуть первый атрибут

Описание

ldap_first_attribute ( resource $link_identifier , resource $result_entry_identifier ) : string

Получает первый атрибут в данной записи. Остающиеся атрибуты получаются последовательным вызовом ldap_next_attribute().

Подобно чтению записей, атрибуты также читаются один за другим из отдельного элемента.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_entry_identifier

ber_identifier

ber_identifier является идентификатором внутреннего указателя ячейки памяти. Он передается по ссылке. Также ber_identifier передается в ldap_next_attribute(), которая изменяет этот указатель.

Замечание:

Этот параметр больше не используется, поскольку теперь автоматически обрабатывается PHP. Для целей обратной совместимости, PHP не выдает ошибку, если этот параметр все же передаётся.

Возвращаемые значения

Возвращает первый атрибут в записи, в случае успеха, и FALSE в случае ошибки.

Список изменений

Версия | Описание
5.2.4 | Параметр ber_identifier был удалён. В настоящее время обрабатывается PHP автоматически.

Смотрите также

  • ldap_next_attribute() - Получить следующий атрибут из результата
  • ldap_get_attributes() - Получает атрибуты из записи в результатах поиска


Возвратить первый идентификатор результата

  • « ldap_first_attribute
  • ldap_first_reference »
  • PHP Manual
  • Функции LDAP
  • Возвратить первый идентификатор результата

ldap_first_entry

(PHP 4, PHP 5, PHP 7)

ldap_first_entry — Возвратить первый идентификатор результата

Описание

ldap_first_entry ( resource $link_identifier , resource $result_identifier ) : resource

Возвращает идентификатор для первой записи в результате. Этот идентификатор затем используется в функции ldap_next_entry(), для последовательного получения записей из результата.

Записи в LDAP результате считываются последовательно используя функции ldap_first_entry() и ldap_next_entry().

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_identifier

Возвращаемые значения

Возвращает результирующий идентификатор для первой записи в случае успеха и FALSE в случае ошибки.

Смотрите также

  • ldap_get_entries() - Получает все записи результата


Возвращает первую справку

  • « ldap_first_entry
  • ldap_free_result »
  • PHP Manual
  • Функции LDAP
  • Возвращает первую справку

ldap_first_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ldap_first_reference — Возвращает первую справку

Описание

ldap_first_reference ( resource $link , resource $result ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Освободить память результата

  • « ldap_first_reference
  • ldap_get_attributes »
  • PHP Manual
  • Функции LDAP
  • Освободить память результата

ldap_free_result

(PHP 4, PHP 5, PHP 7)

ldap_free_result — Освободить память результата

Описание

ldap_free_result ( resource $result_identifier ) : bool

Освобождает память, внутренне выделенную для хранения результата. Вся память результата будет автоматически освобождена, когда сценарий завершится.

Обычно вся память, выделенная для результата LDAP, освобождается в конце сценария. В случае, если сценарий делает последовательные операции поиска, которые возвращают большие наборы результатов, ldap_free_result() может быть вызвана, чтобы сохранить небольшое использование памяти по время выполнения сценария.

Список параметров

result_identifier

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Получает атрибуты из записи в результатах поиска

  • « ldap_free_result
  • ldap_get_dn »
  • PHP Manual
  • Функции LDAP
  • Получает атрибуты из записи в результатах поиска

ldap_get_attributes

(PHP 4, PHP 5, PHP 7)

ldap_get_attributes — Получает атрибуты из записи в результатах поиска

Описание

ldap_get_attributes ( resource $link_identifier , resource $result_entry_identifier ) : array

Читает атрибуты и значения из записи в результатах поиска.

Определив местоположение определенной записи в каталоге, вы можете узнать, какая информация хранится для этой записи используя эту функцию. Вы должны использовать эту функцию для приложения, которое "просматривает" записи каталога и/или где структура записей каталога неизвестна. Во многих приложениях вы будете искать определенный атрибут, такой как адрес электронной почты или фамилия, не затрагивая другие данные.

return_value["count"] = число атрибутов в записи
return_value[0] = первый атрибут
return_value[n] = n-ый атрибут

return_value["attribute"]["count"] = число значений атрибута
return_value["attribute"][0] = первое значение атрибута
return_value["attribute"][i] = (i+1)-ое значение атрибута

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_entry_identifier

Возвращаемые значения

Возвращает полную информацию записи в многомерный массив в случае успеха и FALSE в случае ошибки.

Примеры

Пример #1 Показывает список атрибутов, соответствующие определенной записи директории

<?php
// $ds - идентификатор ссылки для директории

// $sr - действительный результат поиска из запроса
// к директории ldap

$entry = ldap_first_entry($ds, $sr);

$attrs = ldap_get_attributes($ds, $entry);

echo $attrs["count"] . " атрибуты, соответствующие этой записи:<p>";

for ($i=0; $i < $attrs["count"]; $i++) {
    echo $attrs[$i] . "<br />";
}
?>

Смотрите также

  • ldap_first_attribute() - Вернуть первый атрибут
  • ldap_next_attribute() - Получить следующий атрибут из результата


Получить DN результирующей записи

  • « ldap_get_attributes
  • ldap_get_entries »
  • PHP Manual
  • Функции LDAP
  • Получить DN результирующей записи

ldap_get_dn

(PHP 4, PHP 5, PHP 7)

ldap_get_dn — Получить DN результирующей записи

Описание

ldap_get_dn ( resource $link_identifier , resource $result_entry_identifier ) : string

Обнаружить DN записи в результате.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_entry_identifier

Возвращаемые значения

Возвращает DN записи результата и FALSE в случае ошибки.


Получает все записи результата

  • « ldap_get_dn
  • ldap_get_option »
  • PHP Manual
  • Функции LDAP
  • Получает все записи результата

ldap_get_entries

(PHP 4, PHP 5, PHP 7)

ldap_get_entries — Получает все записи результата

Описание

ldap_get_entries ( resource $link_identifier , resource $result_identifier ) : array

Читает множественные записи из заданного результата, и затем читает атрибуты и множественные значения.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_identifier

Возвращаемые значения

Возвращает полную информацию о результате в виде многомерного массива в случае успеха, и FALSE в случае ошибки.

Структура массива следующая: Индекс атрибута преобразован в нижний регистр. (Атрибуты для серверов каталогов являются нечувствительными к регистру, но не тогда, когда они используются в качестве индексов массива.)

return_value["count"] = число записей в результате
return_value[0] : ссылается на информацию о первой записи

return_value[i]["dn"] =  DN i-ой записи в результате

return_value[i]["count"] = число атрибутов в i-ой записи
return_value[i][j] = NAME j-ого атрибута в i-ой записи результата

return_value[i]["attribute"]["count"] = число значений атрибута в
                                        i-ой записи
return_value[i]["attribute"][j] = j-ое значение атрибута i-ой записи

Смотрите также

  • ldap_first_entry() - Возвратить первый идентификатор результата
  • ldap_next_entry() - Получить следующую запись результата


Получить текущее значение данной опции

  • « ldap_get_entries
  • ldap_get_values_len »
  • PHP Manual
  • Функции LDAP
  • Получить текущее значение данной опции

ldap_get_option

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ldap_get_option — Получить текущее значение данной опции

Описание

ldap_get_option ( resource $link_identifier , int $option , mixed &$retval ) : bool

Устанавливает retval в значение указанной опции.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

option

Опция option может быть одной из:

Опция | Тип | Начиная с версии
LDAP_OPT_DEREF | integer
LDAP_OPT_SIZELIMIT | integer
LDAP_OPT_TIMELIMIT | integer
LDAP_OPT_NETWORK_TIMEOUT | integer
LDAP_OPT_PROTOCOL_VERSION | integer
LDAP_OPT_ERROR_NUMBER | integer
LDAP_OPT_DIAGNOSTIC_MESSAGE | integer
LDAP_OPT_REFERRALS | bool
LDAP_OPT_RESTART | bool
LDAP_OPT_HOST_NAME | string
LDAP_OPT_ERROR_STRING | string
LDAP_OPT_MATCHED_DN | string
LDAP_OPT_SERVER_CONTROLS | array
LDAP_OPT_CLIENT_CONTROLS | array
LDAP_OPT_X_KEEPALIVE_IDLE | int | 7.1
LDAP_OPT_X_KEEPALIVE_PROBES | int | 7.1
LDAP_OPT_X_KEEPALIVE_INTERVAL | int | 7.1
LDAP_OPT_X_TLS_CACERTDIR | string | 7.1
LDAP_OPT_X_TLS_CACERTFILE | string | 7.1
LDAP_OPT_X_TLS_CERTFILE | string | 7.1
LDAP_OPT_X_TLS_CIPHER_SUITE | string | 7.1
LDAP_OPT_X_TLS_CRLCHECK | integer | 7.1
LDAP_OPT_X_TLS_CRL_NONE | integer | 7.1
LDAP_OPT_X_TLS_CRL_PEER | integer | 7.1
LDAP_OPT_X_TLS_CRL_ALL | integer | 7.1
LDAP_OPT_X_TLS_CRLFILE | string | 7.1
LDAP_OPT_X_TLS_DHFILE | string | 7.1
LDAP_OPT_X_TLS_KEYILE | string | 7.1
LDAP_OPT_X_TLS_PACKAGE | string | 7.1
LDAP_OPT_X_TLS_PROTOCOL_MIN | integer | 7.1
LDAP_OPT_X_TLS_RANDOM_FILE | string | 7.1
LDAP_OPT_X_TLS_REQUIRE_CERT | integer | 7.1

retval

Будет установлен в значение опции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Проверка версии протокола

<?php
// $ds - действительный идентификатор связи с LDAP-сервером
if (ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version)) {
    echo "Используется версия протокола $version\n";
} else {
    echo "Невозможно определить версию протокола\n";
}
?>

Примечания

Замечание:

Эта функция доступна только когда используется OpenLDAP 2.x.x или Netscape Directory SDK x.x.

Смотрите также

  • ldap_set_option() - Установить значение данной опции


Получить все бинарные значения из записи результата

  • « ldap_get_option
  • ldap_get_values »
  • PHP Manual
  • Функции LDAP
  • Получить все бинарные значения из записи результата

ldap_get_values_len

(PHP 4, PHP 5, PHP 7)

ldap_get_values_len — Получить все бинарные значения из записи результата

Описание

ldap_get_values_len ( resource $link_identifier , resource $result_entry_identifier , string $attribute ) : array

Читает все значения атрибута в записи результата.

Эта функция используется точно также как и ldap_get_values() за исключением того, что обрабатывает двоичные данные, а не строковые.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_entry_identifier

attribute

Возвращаемые значения

Возвращает массив значений для атрибута в случае успеха и FALSE в случае ошибки. Отдельные значения доступны по целочисленному индексу в массиве. Первый индекс 0. Число значений может быть найдено по индексу "count" в результирующем массиве.

Смотрите также

  • ldap_get_values() - Получает все значения из записи результата


Получает все значения из записи результата

  • « ldap_get_values_len
  • ldap_list »
  • PHP Manual
  • Функции LDAP
  • Получает все значения из записи результата

ldap_get_values

(PHP 4, PHP 5, PHP 7)

ldap_get_values — Получает все значения из записи результата

Описание

ldap_get_values ( resource $link_identifier , resource $result_entry_identifier , string $attribute ) : array

Читает все значения атрибута в записи результата.

Эта функция требует result_entry_identifier, а следовательно, перед ней должны быть запущена одна из функций ldap поиска и один из результатов их вызова для получения отдельной записи.

В создаваемом приложении необходимо будет использовать сложные конструкции для поиска определённых атрибутов (таких как "фамилия" или "почта") или необходимо будет использовать функцию ldap_get_attributes(), чтобы разобрать, какие атрибуты существуют для данной записи.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_entry_identifier

attribute

Возвращаемые значения

Возвращает массив значений для атрибута в случае успеха, и FALSE в случае ошибки. Число значений может быть найдено по индексу "count" в результирующем массиве. Отдельные значения могут быть доступны по целочисленным индексам в массиве. Первый индекс 0.

LDAP позволяет хранить больше чем одну запись для атрибута, таким образом, можно, например, сохранить много адресов электронной почты для записи каталога одного человека, все маркированные атрибутом "mail"

     return_value["count"] = число значений атрибута
     return_value[0] = первое значение атрибута
     return_value[i] = i-ое значение атрибута

Примеры

Пример #1 Список всех значений атрибута "mail" для записи каталога

<?php
// $ds верный идентификатор ссылки на сервер директории

// $sr верный результат поиска в директории ldap

// $entry верный идентификатор записи из вызова функции
//        вернувшей запись директории

$values = ldap_get_values($ds, $entry, "mail");

echo $values["count"] . " адреса email для этой записи.<br />";

for ($i=0; $i < $values["count"]; $i++) {
    echo $values[$i] . "<br />";
}
?>

Смотрите также

  • ldap_get_values_len() - Получить все бинарные значения из записи результата


Одноуровневый поиск

  • « ldap_get_values
  • ldap_mod_add_ext »
  • PHP Manual
  • Функции LDAP
  • Одноуровневый поиск

ldap_list

(PHP 4, PHP 5, PHP 7)

ldap_list — Одноуровневый поиск

Описание

ldap_list ( resource $link_identifier , string $base_dn , string $filter [, array $attributes = array("*") [, int $attrsonly = 0 [, int $sizelimit = -1 [, int $timelimit = -1 [, int $deref = LDAP_DEREF_NEVER [, array $serverctrls = array() ]]]]]] ) : resource

Выполняет поиск для указанного filter в директории в рамках LDAP_SCOPE_ONELEVEL.

LDAP_SCOPE_ONELEVEL означает, что поиск должен возвратить только информацию, которая является следующим уровнем ниже base_dn, заданного при вызове. (Эквивалент вводу "ls" и получения списка файлов и папок в текущем рабочем каталоге.)

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

base_dn

Базовое DN для каталога.

filter

attributes

Массив необходимых атрибутов, например, array("mail", "sn", "cn"). Обратите внимание, что "dn" возвращается всегда, независимо от того, какие типы атрибутов требуются.

Использование этого параметра намного более эффективно чем действие по умолчанию (которое должно возвратить все атрибуты и их присвоенные значения). Поэтому использование этого параметра нужно считать хорошей практикой.

attrsonly

Должен быть равен 1, только если требуются типы атрибута. Если установлено 0, то, по умолчанию, выбираются и типы атрибутов и значения атрибута.

sizelimit

Позволяет ограничить количество выбранных записей. Установка этого параметра как 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку sizelimit на стороне сервера. Хотя его можно установить ниже.

Некоторые хосты серверов каталогов будут сконфигурированы так, чтобы возвратить не больше, чем предварительно установленное число записей. Если это произойдет, то сервер укажет, что возвратил только частичный набор результатов. Это также происходит, если Вы используете этот параметр, чтобы ограничить количество выбранных записей.

timelimit

Устанавливает число секунд, ограничивающее процесс поиска. Установка этого параметра как 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку timelimit на стороне сервера. Хотя его можно установить ниже.

deref

Определяет, как псевдонимы должны быть обработаны во время поиска. Может быть одним из следующих:

  • LDAP_DEREF_NEVER - (по умолчанию) псевдонимы никогда не разыменовываться.
  • LDAP_DEREF_SEARCHING - псевдонимы должны быть разыменованы во время поиска, но не при определении местоположения базового объекта поиска.
  • LDAP_DEREF_FINDING - псевдонимы должны быть разыменованы при определении местоположения базового объекта, но не во время поиска.
  • LDAP_DEREF_ALWAYS - псевдонимы должны всегда разыменовываться всегда.

serverctrls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает идентификатор результата поиска или FALSE в случае ошибки.

Список изменений

Версия | Описание
7.3 | Добавлена поддержка параметра serverctrls

Примеры

Пример #1 Выводит список всех организационных единиц организации

<?php
// $ds верный идентификатор ссылки на сервер директории

$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];
}
?>

Смотрите также

  • ldap_search() - Поиск по LDAP дереву


Добавить значения атрибута к текущим атрибутам

  • « ldap_list
  • ldap_mod_add »
  • PHP Manual
  • Функции LDAP
  • Добавить значения атрибута к текущим атрибутам

ldap_mod_add_ext

(PHP 7 >= 7.3.0)

ldap_mod_add_ext — Добавить значения атрибута к текущим атрибутам

Описание

ldap_mod_add_ext ( resource $link_identifier , string $dn , array $entry [, array $serverctrls = array() ] ) : resource

Делает то же самое, что и ldap_mod_add(), но возвращает ресурс результата LDAP для разбора с помощью ldap_parse_result().

Список параметров

Смотрите ldap_mod_add()

Возвращаемые значения

Возвращает идентификатор ресурса LDAP или FALSE в случае возникновения ошибки.

Смотрите также

  • ldap_mod_add() - Добавить значения атрибута к текущим атрибутам
  • ldap_parse_result() - Извлечь информацию из результата


Добавить значения атрибута к текущим атрибутам

  • « ldap_mod_add_ext
  • ldap_mod_del_ext »
  • PHP Manual
  • Функции LDAP
  • Добавить значения атрибута к текущим атрибутам

ldap_mod_add

(PHP 4, PHP 5, PHP 7)

ldap_mod_add — Добавить значения атрибута к текущим атрибутам

Описание

ldap_mod_add ( resource $link_identifier , string $dn , array $entry [, array $serverctrls = array() ] ) : bool

Добавляет один или более атрибутов к указанному dn. Для добавления полноценного нового объекта используйте ldap_add().

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

dn

Отличительное имя LDAP-объекта.

entry

Ассоциативный массив со списком добавляемых значений атрибутов. Если какой-либо атрибут еще не существует, то он будет добавлен. Если атрибут уже существует, то вы можете только добавить к нему значение, если он поддерживает множественные значения.

serverctrls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3 | Добавлена поддержка параметра serverctrls

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • ldap_mod_add_ext() - Добавить значения атрибута к текущим атрибутам
  • ldap_mod_del() - Удалить значения атрибута из текущих атрибутов
  • ldap_mod_replace() - Заменить значения атрибутов на новые
  • ldap_modify_batch() - Формирования и запуск пакетного изменения записи LDAP


Удалить значения атрибутов из текущих атрибутов

  • « ldap_mod_add
  • ldap_mod_del »
  • PHP Manual
  • Функции LDAP
  • Удалить значения атрибутов из текущих атрибутов

ldap_mod_del_ext

(PHP 7 >= 7.3.0)

ldap_mod_del_ext — Удалить значения атрибутов из текущих атрибутов

Описание

ldap_mod_del_ext ( resource $link_identifier , string $dn , array $entry [, array $serverctrls = array() ] ) : resource

Делает то же самое, что и ldap_mod_del(), но возвращает ресурс результата LDAP для разбора с помощью ldap_parse_result().

Список параметров

Смотрите ldap_mod_del()

Возвращаемые значения

Возвращает идентификатор ресурса LDAP или FALSE в случае возникновения ошибки.

Смотрите также

  • ldap_mod_del() - Удалить значения атрибута из текущих атрибутов
  • ldap_parse_result() - Извлечь информацию из результата


Удалить значения атрибута из текущих атрибутов

  • « ldap_mod_del_ext
  • ldap_mod_replace_ext »
  • PHP Manual
  • Функции LDAP
  • Удалить значения атрибута из текущих атрибутов

ldap_mod_del

(PHP 4, PHP 5, PHP 7)

ldap_mod_del — Удалить значения атрибута из текущих атрибутов

Описание

ldap_mod_del ( resource $link_identifier , string $dn , array $entry [, array $serverctrls = array() ] ) : bool

Удаляет один или более атрибутов из указанного dn. Удаление объектов осуществляется функцией ldap_delete().

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

dn

Отличительное имя LDAP-объекта.

entry

serverctrls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3 | Добавлена поддержка параметра serverctrls

Смотрите также

  • ldap_mod_del_ext() - Удалить значения атрибутов из текущих атрибутов
  • ldap_mod_add() - Добавить значения атрибута к текущим атрибутам
  • ldap_mod_replace() - Заменить значения атрибутов на новые
  • ldap_modify_batch() - Формирования и запуск пакетного изменения записи LDAP


Заменить значения атрибута на новые

  • « ldap_mod_del
  • ldap_mod_replace »
  • PHP Manual
  • Функции LDAP
  • Заменить значения атрибута на новые

ldap_mod_replace_ext

(PHP 7 >= 7.3.0)

ldap_mod_replace_ext — Заменить значения атрибута на новые

Описание

ldap_mod_replace_ext ( resource $link_identifier , string $dn , array $entry [, array $serverctrls = array() ] ) : resource

Делает то же самое, что и ldap_mod_replace(), но возвращает ресурс результата LDAP для разбора с помощью ldap_parse_result().

Список параметров

Смотрите ldap_mod_replace()

Возвращаемые значения

Возвращает идентификатор ресурса LDAP или FALSE в случае возникновения ошибки.

Смотрите также

  • ldap_mod_replace() - Заменить значения атрибутов на новые
  • ldap_parse_result() - Извлечь информацию из результата


Заменить значения атрибутов на новые

  • « ldap_mod_replace_ext
  • ldap_modify_batch »
  • PHP Manual
  • Функции LDAP
  • Заменить значения атрибутов на новые

ldap_mod_replace

(PHP 4, PHP 5, PHP 7)

ldap_mod_replace — Заменить значения атрибутов на новые

Описание

ldap_mod_replace ( resource $link_identifier , string $dn , array $entry [, array $serverctrls = array() ] ) : bool

Заменяет один или более атрибутов из указанного dn. Также ее можно использовать для удаления или добавления атрибутов.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

dn

Отличительное имя LDAP-объекта.

entry

Ассоциативный массив со списком заменяемых атрибутов. Если задать пустой массив, то атрибут будет удален. Если какой либо атрибут отсутствует, то он будет добавлен.

serverctrls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3 | Добавлена поддержка параметра serverctrls

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • ldap_mod_replace_ext() - Заменить значения атрибута на новые
  • ldap_mod_del() - Удалить значения атрибута из текущих атрибутов
  • ldap_mod_add() - Добавить значения атрибута к текущим атрибутам
  • ldap_modify_batch() - Формирования и запуск пакетного изменения записи LDAP


Формирования и запуск пакетного изменения записи LDAP

  • « ldap_mod_replace
  • ldap_modify »
  • PHP Manual
  • Функции LDAP
  • Формирования и запуск пакетного изменения записи LDAP

ldap_modify_batch

(PHP 5.4 >= 5.4.26, PHP 5.5 >= 5.5.10, PHP 5.6 >= 5.6.0, PHP 7)

ldap_modify_batch — Формирования и запуск пакетного изменения записи LDAP

Описание

ldap_modify_batch ( resource $link_identifier , string $dn , array $entry [, array $serverctrls = array() ] ) : bool

Модифицирует существующую запись в каталоге LDAP. Допустимо детальное описание модификации.

Список параметров

link_identifier

Идентификатор соединения LDAP, возвращенный ldap_connect().

dn

Характерное имя объекта LDAP.

entry

Массив, описывающий необходимую модификацию. Каждая запись этого массива представляет собой ассоциативный массив с двумя или тремя ключами: attrib задает имя аттрибута для изменения, modtype задает тип модификации и (в зависимости от типа модификации) values задает массив значений аттрибутов, соответствующий данной модификации.

Допустимые значения для modtype:

LDAP_MODIFY_BATCH_ADD

Каждое значение заданное в values будет добавлено (как дополнительное значение) к аттрибуту attrib.

LDAP_MODIFY_BATCH_REMOVE

Каждое значение заданное в values будет удалено из аттрибута заданного вattrib. Ни одно значение не указанное в values не будет затронуто.

LDAP_MODIFY_BATCH_REMOVE_ALL

Все значения будут удалены у аттрибута attrib. Параметр values не нужен.

LDAP_MODIFY_BATCH_REPLACE

Все существующие значения аттрибута attrib будут заменены значениями указанными в values.

Обратите внимание, что все значения attrib должны быть строками, все значения values должны быть массивами строк и любые значения modtype должны быть одной из констант LDAP_MODIFY_BATCH_*, перечисленных выше.

serverctrls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3 | Добавлена поддержка параметра serverctrls

Примеры

Пример #1 Добавление контакту телефонного номера

<?php
$dn = "cn=John Smith,ou=Wizards,dc=example,dc=com";
$modifs = [
    [
        "attrib"  => "telephoneNumber",
        "modtype" => LDAP_MODIFY_BATCH_ADD,
        "values"  => ["+1 555 555 1717"],
    ],
];
ldap_modify_batch($connection, $dn, $modifs);
?>

Пример #2 Переименование пользователя

<?php
$dn = "cn=John Smith,ou=Wizards,dc=example,dc=com";
$modifs = [
    [
        "attrib"  => "sn",
        "modtype" => LDAP_MODIFY_BATCH_REPLACE,
        "values"  => ["Smith-Jones"],
    ],
    [
        "attrib"  => "givenName",
        "modtype" => LDAP_MODIFY_BATCH_REPLACE,
        "values"  => ["Jack"],
    ],
];
ldap_modify_batch($connection, $dn, $modifs);
ldap_rename($connection, $dn, "cn=Jack Smith-Jones", NULL, TRUE);
?>

Пример #3 Добавление пользователю двух e-mail адресов

<?php
$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=example,dc=com";
$modifs = [
    [
        "attrib"  => "mail",
        "modtype" => LDAP_MODIFY_BATCH_ADD,
        "values"  => [
            "jack.smith@example.com",
            "jack.smith-jones@example.com",
        ],
    ],
];
ldap_modify_batch($connection, $dn, $modifs);
?>

Пример #4 Изменение пароля пользователя

<?php
$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=example,dc=com";
$modifs = [
    [
        "attrib"  => "userPassword",
        "modtype" => LDAP_MODIFY_BATCH_REMOVE,
        "values"  => ["Tr0ub4dor&3"],
    ],
    [
        "attrib"  => "userPassword",
        "modtype" => LDAP_MODIFY_BATCH_ADD,
        "values"  => ["correct horse battery staple"],
    ],
];
ldap_modify_batch($connection, $dn, $modifs);
?>

Пример #5 Изменение пароля пользователя (Active Directory)

<?php
function adifyPw($pw)
{
    return iconv("UTF-8", "UTF-16LE", '"' . $pw . '"');
}

$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=ad,dc=example,dc=com";
$modifs = [
    [
        "attrib"  => "unicodePwd",
        "modtype" => LDAP_MODIFY_BATCH_REMOVE,
        "values"  => [adifyPw("Tr0ub4dor&3")],
    ],
    [
        "attrib"  => "unicodePwd",
        "modtype" => LDAP_MODIFY_BATCH_ADD,
        "values"  => [adifyPw("correct horse battery staple")],
    ],
];
ldap_modify_batch($connection, $dn, $modifs);


Псевдоним ldap_mod_replace

  • « ldap_modify_batch
  • ldap_next_attribute »
  • PHP Manual
  • Функции LDAP
  • Псевдоним ldap_mod_replace

ldap_modify

(PHP 4, PHP 5, PHP 7)

ldap_modify — Псевдоним ldap_mod_replace()

Описание

Эта функция является псевдонимом: ldap_mod_replace().

Смотрите также

  • ldap_rename() - Изменить имя записи


Получить следующий атрибут из результата

  • « ldap_modify
  • ldap_next_entry »
  • PHP Manual
  • Функции LDAP
  • Получить следующий атрибут из результата

ldap_next_attribute

(PHP 4, PHP 5, PHP 7)

ldap_next_attribute — Получить следующий атрибут из результата

Описание

ldap_next_attribute ( resource $link_identifier , resource $result_entry_identifier ) : string

Возвращает атрибуты записи. Первый вызов ldap_next_attribute() производится с параметром result_entry_identifier, который возвращается ldap_first_attribute().

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_entry_identifier

ber_identifier

Внутреннее состояние указателя сохраняется этим параметром.

Замечание:

Параметр больше не используется, поскольку это теперь обрабатывается автоматически PHP. Для обратной совместимости PHP не будет выбрасывать ошибку, если этот параметр будет передан.

Возвращаемые значения

Возвращает следующий атрибут записи в случае успешного выполнения и FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.2.4 | Параметр ber_identifier был удалён. Теперь это обрабатывается PHP автоматически.

Смотрите также

  • ldap_get_attributes() - Получает атрибуты из записи в результатах поиска


Получить следующую запись результата

  • « ldap_next_attribute
  • ldap_next_reference »
  • PHP Manual
  • Функции LDAP
  • Получить следующую запись результата

ldap_next_entry

(PHP 4, PHP 5, PHP 7)

ldap_next_entry — Получить следующую запись результата

Описание

ldap_next_entry ( resource $link_identifier , resource $result_entry_identifier ) : resource

Получить записи, хранящиеся в результате. Последующие вызовы ldap_next_entry()
возвращают по одной записи, пока не останется больше записей.
Первый вызов ldap_next_entry() производится
после вызова ldap_first_entry() с параметром
result_entry_identifier, который был возвращён ldap_first_entry().

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_entry_identifier

Возвращаемые значения

Возвращает идентификатор для следующей записи в результате, содержимое которого начинают читаться, запуская ldap_first_entry(). Если нет больше записей в результате, тогда возвращается FALSE.

Смотрите также

  • ldap_get_entries() - Получает все записи результата


Возвращает следующую справку

  • « ldap_next_entry
  • ldap_parse_exop »
  • PHP Manual
  • Функции LDAP
  • Возвращает следующую справку

ldap_next_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ldap_next_reference — Возвращает следующую справку

Описание

ldap_next_reference ( resource $link , resource $entry ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Разбор результирующего объекта выполнения расширенной операции LDAP

  • « ldap_next_reference
  • ldap_parse_reference »
  • PHP Manual
  • Функции LDAP
  • Разбор результирующего объекта выполнения расширенной операции LDAP

ldap_parse_exop

(PHP 7 >= 7.2.0)

ldap_parse_exop — Разбор результирующего объекта выполнения расширенной операции LDAP

Описание

ldap_parse_exop ( resource $link , resource $result [, string &$retdata [, string &$retoid ]] ) : bool

Разбирает result, полученный после выполнения расширенной операции LDAP

Список параметров

link

Идентификатор соединения LDAP, полученный из ldap_connect().

result

Ресурс LDAP, полученный из ldap_exop().

retdata

Будет заполнен разобранными данными.

retoid

Будет заполнен возвращенным OID.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ldap_exop() - Выполнить расширенную операцию


Извлекает информацию из справочника

  • « ldap_parse_exop
  • ldap_parse_result »
  • PHP Manual
  • Функции LDAP
  • Извлекает информацию из справочника

ldap_parse_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ldap_parse_reference — Извлекает информацию из справочника

Описание

ldap_parse_reference ( resource $link , resource $entry , array &$referrals ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Извлечь информацию из результата

  • « ldap_parse_reference
  • ldap_read »
  • PHP Manual
  • Функции LDAP
  • Извлечь информацию из результата

ldap_parse_result

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ldap_parse_result — Извлечь информацию из результата

Описание

ldap_parse_result ( resource $link , resource $result , int &$errcode [, string &$matcheddn [, string &$errmsg [, array &$referrals [, array &$serverctrls ]]]] ) : bool

Обрабатывает результат поиска LDAP.

Список параметров

link

Идентификатор LDAP-соединения, возвращаемый функцией ldap_connect().

result_identifier

Ресурс LDAP результата, возвращаемый функциями ldap_list() или ldap_search().

errcode

Ссылка на переменную, которой присваивается код ошибки LDAP, или 0, если нет ошибки.

matcheddn

Ссылка на переменную, которой присваивается найденный DN, если он определяется в запросе, иначе присваивается NULL.

errmsg

Ссылка на переменную, которой присваивается сообщение об LDAP-ошибке, или пустая строка, если нет ошибки.

referrals

Ссылка на переменную, которой присваивается массив (array) со всеми отсылками (referral) в виде строк, или пустой массив, если они не были возвращены.

serverctrls

Массив (array) LDAP Controls, которые были отправлены вместо с ответом.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3 | Добавлена поддержка параметра serverctrls

Примеры

Пример #1 Пример использования ldap_parse_result()

<?php
$result = ldap_search($link, "cn=userref,dc=my-domain,dc=com", "(cn=user*)");
$errcode = $dn = $errmsg = $refs =  null;
if (ldap_parse_result($link, $result, $errcode, $dn, $errmsg, $refs)) {
    // различные операции с $errcode, $dn, $errmsg и $refs
}
?>


Читает запись

  • « ldap_parse_result
  • ldap_rename_ext »
  • PHP Manual
  • Функции LDAP
  • Читает запись

ldap_read

(PHP 4, PHP 5, PHP 7)

ldap_read — Читает запись

Описание

ldap_read ( resource $link_identifier , string $base_dn , string $filter [, array $attributes = array("*") [, int $attrsonly = 0 [, int $sizelimit = -1 [, int $timelimit = -1 [, int $deref = LDAP_DEREF_NEVER [, array $serverctrls = array() ]]]]]] ) : resource

Выполняет поиск для указанного filter в директории в рамках LDAP_SCOPE_BASE. Эквивалентно чтению записи из директории.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

base_dn

Базовое DN для каталога.

filter

Пустой фильтр не допустим. Если необходимо получить абсолютно всю информацию для этой записи, используйте фильтр objectClass=*. Если известно какие типы записи используются на сервере каталогов, то можно использовать соответствующий фильтр, такой как objectClass=inetOrgPerson.

attributes

Массив необходимых атрибутов, например, array("mail", "sn", "cn"). Обратите внимание, что "dn" всегда возвращается, независимо от того, какие типы атрибутов требуются.

Использование этого параметра намного более эффективно чем действие по умолчанию (которое возвращает все атрибуты и их присвоенные значения). Поэтому использование этого параметра нужно считать хорошей практикой.

attrsonly

Должен быть равен 1, только если требуются типы атрибута. Если равен 0, то, по умолчанию, выбираются и типы атрибутов и значения.

sizelimit

Позволяет ограничить количество выбранных записей. Установка этого параметра равным 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку sizelimit на стороне сервера. Хотя его можно установить ниже.

Некоторые хосты серверов каталогов будут сконфигурированы так, чтобы возвратить не больше, чем предварительно установленное число записей. Если это произойдет, то сервер укажет, что только возвратил частичный набор результатов. Это также происходит, если используется этот параметр, чтобы ограничить количество выбранных записей.

timelimit

Устанавливает число секунд, ограничивающее процесс поиска. Установка этого параметра равным 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку timelimit на стороне сервера. Хотя его можно установить ниже.

deref

Определяет то, как псевдонимы должны быть обработаны во время поиска. Может быть одним из следующих:

  • LDAP_DEREF_NEVER - (по умолчанию) псевдонимы никогда не разыменовываются.
  • LDAP_DEREF_SEARCHING - псевдонимы должны быть разыменованы во время поиска, но не при определении местоположения базового объекта поиска.
  • LDAP_DEREF_FINDING - псевдонимы должны быть разыменованы при определении местоположения базового объекта, но не во время поиска.
  • LDAP_DEREF_ALWAYS - псевдонимы должны всегда разыменовываться.

serverctrls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает идентификатор результата поиска или FALSE в случае ошибки.

Список изменений

Версия | Описание
4.0.5 | Была добавлена поддержка параллельного поиска. Для более подробной информации см. ldap_search().
7.3 | Добавлена поддержка параметра serverctrls


Модифицировать название записи

  • « ldap_read
  • ldap_rename »
  • PHP Manual
  • Функции LDAP
  • Модифицировать название записи

ldap_rename_ext

(PHP 7 >= 7.3.0)

ldap_rename_ext — Модифицировать название записи

Описание

ldap_rename_ext ( resource $link_identifier , string $dn , string $newrdn , string $newparent , bool $deleteoldrdn [, array $serverctrls = array() ] ) : resource

Делает то же самое, что и ldap_rename(), но возвращает ресурс результата LDAP для разбора с помощью ldap_parse_result().

Список параметров

Смотрите ldap_rename()

Возвращаемые значения

Возвращает идентификатор ресурса LDAP или FALSE в случае возникновения ошибки.

Смотрите также

  • ldap_rename() - Изменить имя записи
  • ldap_parse_result() - Извлечь информацию из результата


Изменить имя записи

  • « ldap_rename_ext
  • ldap_sasl_bind »
  • PHP Manual
  • Функции LDAP
  • Изменить имя записи

ldap_rename

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ldap_rename — Изменить имя записи

Описание

ldap_rename ( resource $link_identifier , string $dn , string $newrdn , string $newparent , bool $deleteoldrdn [, array $serverctrls = array() ] ) : bool

Переименование/перемещение записи, определённой dn.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

dn

Отличительное имя LDAP-объекта.

newrdn

Новое RDN.

newparent

Новая родительская/превосходящая запись.

deleteoldrdn

Если TRUE, старые значения RDN удаляются, иначе старые значения RDN сохраняются как неуникальные значения записи.

serverctrls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3 | Добавлена поддержка параметра serverctrls

Примечания

Замечание:

Эта функция в настоящее время работает только с LDAPv3. Возможно, вам придется использовать ldap_set_option() перед привязкой, используя LDAPv3. Эта функция доступна только при использовании OpenLDAP 2.xx или Netscape Directory SDK x.x.

Смотрите также

  • ldap_rename_ext() - Модифицировать название записи
  • ldap_modify() - Псевдоним ldap_mod_replace


Привязать к LDAP директории, используя SASL

  • « ldap_rename
  • ldap_search »
  • PHP Manual
  • Функции LDAP
  • Привязать к LDAP директории, используя SASL

ldap_sasl_bind

(PHP 5, PHP 7)

ldap_sasl_bind — Привязать к LDAP директории, используя SASL

Описание

ldap_sasl_bind ( resource $link [, string $binddn = NULL [, string $password = NULL [, string $sasl_mech = NULL [, string $sasl_realm = NULL [, string $sasl_authc_id = NULL [, string $sasl_authz_id = NULL [, string $props = NULL ]]]]]]] ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Требование
ldap_sasl_bind() требует SASL поддержки (sasl.h). Проверьте, что вы использовали --with-ldap-sasl при конфигурировании PHP, в противном случае эта функция будет не определена.

Список изменений

Версия | Описание
5.3.3 | Добавлена поддержка в Windows.


Поиск по LDAP дереву

  • « ldap_sasl_bind
  • ldap_set_option »
  • PHP Manual
  • Функции LDAP
  • Поиск по LDAP дереву

ldap_search

(PHP 4, PHP 5, PHP 7)

ldap_search — Поиск по LDAP дереву

Описание

ldap_search ( resource $link_identifier , string $base_dn , string $filter [, array $attributes = array("*") [, int $attrsonly = 0 [, int $sizelimit = -1 [, int $timelimit = -1 [, int $deref = LDAP_DEREF_NEVER [, array $serverctrls = array() ]]]]]] ) : resource

Выполняет поиск для указанного фильтра в директории с границами LDAP_SCOPE_SUBTREE. Эквивалентно поиску по всему каталогу.

Начиная с 4.0.5 также возможно производить параллельный поиск. Чтобы это сделать, необходимо использовать в качестве первого параметра массив идентификаторов ссылок, а не единственный идентификатор. Если необходимости использовать то же самое основное DN и тот же самый фильтр для всех поисков нет, то можно использовать массив базовых DN и/или массив фильтров. Эти массивы должны иметь такой же размер, как и массив идентификаторов ссылок, так как первые записи массивов используются для одного поиска, вторые записи используются для другого и так далее. При выполнении параллельного поиска возвращается массив идентификаторов результатов поиска, кроме ошибочных случаев, тогда запись, соответствующая поиску, будет равна FALSE. Это похоже на обычный поиск, когда возвращается значение, за исключением того, что идентификатор результата всегда возвращается после проведения поиска. Есть некоторые редкие случаи, когда обычный поиск возвращает FALSE, в то время как параллельный поиск возвращает идентификатор.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

base_dn

Базовое DN для каталога.

filter

Поисковый фильтр может быть простым или расширенным, используя булевы операторы в формате, описанном в документации LDAP (см. » Netscape Directory SDK или » RFC4515 для полной информации о фильтрах).

attributes

Массив необходимых атрибутов, например, array("mail", "sn", "cn"). Обратите внимание, что "dn" всегда возвращается, независимо от того, какие типы атрибутов требуются.

Использование этого параметра намного более эффективно, чем действие по умолчанию (которое должно возвратить все атрибуты и присвоенные им значения). Поэтому использование этого параметра считается хорошей практикой.

attrsonly

Должен быть равен 1, если требуются только типы атрибута. Если равен 0, то, по умолчанию, выбираются и типы атрибутов и значения.

sizelimit

Позволяет ограничить количество выбранных записей. Установка этого параметра равным 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку sizelimit на стороне сервера. Хотя его можно установить ниже.

Некоторые хосты серверов каталогов будут сконфигурированы так, чтобы возвратить не больше, чем предварительно установленное число записей. Если это произойдет, то сервер укажет, что возвратил только частичный набор результатов. Это также происходит, если Вы используете этот параметр чтобы ограничить количество выбранных записей.

timelimit

Устанавливает число секунд, ограничивающее процесс поиска. Установка этого параметра равным 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку timelimit на стороне сервера. Хотя его можно установить ниже.

deref

Определяет как псевдонимы должны быть обработаны во время поиска. Может быть одним из следующих:

  • LDAP_DEREF_NEVER - (по умолчанию) псевдонимы никогда не разыменовываются.
  • LDAP_DEREF_SEARCHING - псевдонимы должны быть разыменованы во время поиска, но не при определении местоположения базового объекта поиска.
  • LDAP_DEREF_FINDING - псевдонимы должны быть разыменованы при определении местоположения базового объекта, но не во время поиска.
  • LDAP_DEREF_ALWAYS - псевдонимы должны разыменовываться всегда.

serverctrls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает идентификатор результата поиска или FALSE в случае ошибки.

Список изменений

Версия | Описание
7.3 | Добавлена поддержка параметра serverctrls

Примеры

Пример ниже получает организационную единицу, фамилию, имя и адрес электронной почты для всех людей в "My Company", где фамилия или имя содержат подстроку $person. Этот пример использует логический фильтр, чтобы сказать серверу, что нужно искать информацию больше, чем в одном атрибуте.

Пример #1 LDAP поиск

<?php
// $ds верный идентификатор ссылки на сервер директории

// $person всё или часть имени человека, н-р "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"]." записей возвращено\n";
?>


Установить значение данной опции

  • « ldap_search
  • ldap_set_rebind_proc »
  • PHP Manual
  • Функции LDAP
  • Установить значение данной опции

ldap_set_option

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ldap_set_option — Установить значение данной опции

Описание

ldap_set_option ( resource $link_identifier , int $option , mixed $newval ) : bool

Устанавливает значение указанной опции в newval.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

option

Опция option может быть одной из:

Опция | Тип | Доступна с
LDAP_OPT_DEREF | integer
LDAP_OPT_SIZELIMIT | integer
LDAP_OPT_TIMELIMIT | integer
LDAP_OPT_NETWORK_TIMEOUT | integer | PHP 5.3.0
LDAP_OPT_PROTOCOL_VERSION | integer
LDAP_OPT_ERROR_NUMBER | integer
LDAP_OPT_REFERRALS | bool
LDAP_OPT_RESTART | bool
LDAP_OPT_HOST_NAME | string
LDAP_OPT_ERROR_STRING | string
LDAP_OPT_DIAGNOSTIC_MESSAGE | string
LDAP_OPT_MATCHED_DN | string
LDAP_OPT_SERVER_CONTROLS | array
LDAP_OPT_CLIENT_CONTROLS | array
LDAP_OPT_X_KEEPALIVE_IDLE | int | PHP 7.1.0
LDAP_OPT_X_KEEPALIVE_PROBES | int | PHP 7.1.0
LDAP_OPT_X_KEEPALIVE_INTERVAL | int | PHP 7.1.0
LDAP_OPT_X_TLS_CACERTDIR | string | PHP 7.1.0
LDAP_OPT_X_TLS_CACERTFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_CERTFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_CIPHER_SUITE | string | PHP 7.1.0
LDAP_OPT_X_TLS_CRLCHECK | integer | PHP 7.1.0
LDAP_OPT_X_TLS_CRLFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_DHFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_KEYFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_PROTOCOL_MIN | integer | PHP 7.1.0
LDAP_OPT_X_TLS_RANDOM_FILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_REQUIRE_CERT | integer | PHP 7.0.5

LDAP_OPT_SERVER_CONTROLS и LDAP_OPT_CLIENT_CONTROLS требуют список элементов управления. Это означает, что значение должно быть массивом элементов управления. Элемент управления состоит из oid, определяющего элемент управления, опционального значения, и дополнительного флага для критичности. В PHP элемент управления задается массивом, содержащим элемент с ключом oid и строковым значением, и двумя необязательными элементами. Необязательные элементы являются ключом value со строковым значением и ключом iscritical с логическим значением. iscritical по умолчанию устанавливается в FALSE, если не указан. Для более подробной информации смотрите » draft-ietf-ldapext-ldap-c-api-xx.txt. Смотрите также второй пример, расположенный ниже.

newval

Новое значение для указанной option (опции).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Устанавливает версию протокола

<?php
// $ds - действительный идентификатор связи с LDAP-сервером
if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {
    echo "Используется LDAPv3";
} else {
    echo "Не удалось установить версию протокола в 3";
}
?>

Пример #2 Устанавливает управление сервером

<?php
// $ds - действительный идентификатор связи с LDAP-сервером
// элемент управления с отсутствующим значением
$ctrl1 = array("oid" => "1.2.752.58.10.1", "iscritical" => true);
// iscritical по умолчанию FALSE
$ctrl2 = array("oid" => "1.2.752.58.1.10", "value" => "magic");
// попытка установить оба элемента управления
if (!ldap_set_option($ds, LDAP_OPT_SERVER_CONTROLS, array($ctrl1, $ctrl2))) {
    echo "Не удалось установить серверные элементы управления";
}
?>

Примечания

Замечание:

Эта функция доступна только, когда используется OpenLDAP 2.x.x или Netscape Directory SDK x.x.

Смотрите также

  • ldap_get_option() - Получить текущее значение данной опции


Установить функцию обратного вызова для повторного связывания при ссылочном поиске

  • « ldap_set_option
  • ldap_sort »
  • PHP Manual
  • Функции LDAP
  • Установить функцию обратного вызова для повторного связывания при ссылочном поиске

ldap_set_rebind_proc

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ldap_set_rebind_proc — Установить функцию обратного вызова для повторного связывания при ссылочном поиске

Описание

ldap_set_rebind_proc ( resource $link , callable $callback ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Сортирует записи LDAP

  • « ldap_set_rebind_proc
  • ldap_start_tls »
  • PHP Manual
  • Функции LDAP
  • Сортирует записи LDAP

ldap_sort

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ldap_sort — Сортирует записи LDAP

Описание

ldap_sort ( resource $link , resource $result , string $sortfilter ) : bool

Сортирует результат запроса LDAP, возвращаемый функцией ldap_search().

Так как эта функция сортирует результат на клиентской стороне, вы можете получить не те результаты, которые ожидали в случае, если был превышен лимит sizelimit на стороне сервера либо указанный в ldap_search().

Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 7.0.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

Список параметров

link

Дескриптор соединения LDAP, возвращаемый функцией ldap_connect().

result

Дескриптор результата поиска, возвращаемый функцией ldap_search().

sortfilter

Атрибут, используемый в качестве ключа при сортировке.

Примеры

Сортировка результата поиска.

Пример #1 Сортировка LDAP

<?php
     // $ds - активный дескриптор соединения (см. ldap_connect)

     $dn        = 'ou=example,dc=org';
     $filter    = '(|(sn=Doe*)(givenname=John*))';
     $justthese = array('ou', 'sn', 'givenname', 'mail');

     $sr = ldap_search($ds, $dn, $filter, $justthese);

     // Сортировка
     ldap_sort($ds, $sr, 'sn');

     // Получение данных
     $info = ldap_get_entries($ds, $sr);


Запускает TLS

  • « ldap_sort
  • ldap_t61_to_8859 »
  • PHP Manual
  • Функции LDAP
  • Запускает TLS

ldap_start_tls

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ldap_start_tls — Запускает TLS

Описание

ldap_start_tls ( resource $link ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Переводит символы из кодировки t61 в ISO-8859

  • « ldap_start_tls
  • ldap_unbind »
  • PHP Manual
  • Функции LDAP
  • Переводит символы из кодировки t61 в ISO-8859

ldap_t61_to_8859

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ldap_t61_to_8859 — Переводит символы из кодировки t61 в ISO-8859

Описание

ldap_t61_to_8859 ( string $value ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Разорвать привязку к директории LDAP

  • « ldap_t61_to_8859
  • Memcache »
  • PHP Manual
  • Функции LDAP
  • Разорвать привязку к директории LDAP

ldap_unbind

(PHP 4, PHP 5, PHP 7)

ldap_unbind — Разорвать привязку к директории LDAP

Описание

ldap_unbind ( resource $link_identifier ) : bool

Разрывает привязку к LDAP-директории.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ldap_bind() - Привязать к LDAP директории


Memcache

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Базовое использование
  • Memcache — Класс Memcache
    • Memcache::add — Добавить элемент с указанным ключем
    • Memcache::addServer — Добавляет сервер memcached в пул соединений
    • Memcache::close — Закрыть соединение с сервером memcached
    • Memcache::connect — Открывает соединение с сервером memcached
    • Memcache::decrement — Декрементировать значение элемента
    • Memcache::delete — Удалить элемент с сервера
    • Memcache::flush — Сбросить все существующие элементы на сервере
    • Memcache::get — Извлечь элемент с сервера
    • Memcache::getExtendedStats — Получить статистику со всех серверов в пуле
    • Memcache::getServerStatus — Возвращает статус сервера
    • Memcache::getStats — Получить статистику сервера
    • Memcache::getVersion — Вернуть версию сервера
    • Memcache::increment — Увеличить значение элемента
    • Memcache::pconnect — Открывает постоянное соединение с сервером memcached
    • Memcache::replace — Заменить значение существующего элемента
    • Memcache::set — Сохранить данные на сервере
    • Memcache::setCompressThreshold — Включить автоматическое сжатие для больших значений
    • Memcache::setServerParams — Изменяет параметры сервера и статус во время выполнения
  • Функции Memcache
    • memcache_debug — Включить/выключить вывод отладочной информации


Введение

Модуль Memcache предоставляет удобный процедурный и объектно-ориентированный интерфейс к memcached, высокоэффективному кеширующему демону, который был специально разработан для снижения нагрузки на базу данных в динамических веб приложениях.

Модуль Memcache также предоставляет дескриптор сессий (memcache).

Больше информации о memcached вы сможете найти на » http://www.memcached.org/.


Требования

Этот модуль использует функции » zlib для поддержки сжатия "на лету". В связи с этим Zlib необходим для установки данного модуля.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/memcache.

Замечание:

Существует возможность запретить использование memcache в качестве обработчика сессий (session handler). Команда 'pecl install' выдает об этом запрос (по умолчанию включено). Кроме того, при статической компиляции в PHP для этой цели возможно использование опции конфигурации --disable-memcache-session .


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Конфигурационные параметры Memcache
Имя | По умолчанию | Место изменения | Список изменений
memcache.allow_failover | "1" | PHP_INI_ALL | Доступно с memcache 2.0.2.
memcache.max_failover_attempts | "20" | PHP_INI_ALL | Доступно с memcache 2.1.0.
memcache.chunk_size | "8192" | PHP_INI_ALL | Доступно с memcache 2.0.2.
memcache.default_port | "11211" | PHP_INI_ALL | Доступно с memcache 2.0.2.
memcache.hash_strategy | "standard" | PHP_INI_ALL | Доступно с memcache 2.2.0.
memcache.hash_function | "crc32" | PHP_INI_ALL | Доступно с memcache 2.2.0.
session.save_handler | "files" | PHP_INI_ALL | Поддерживается с memcache 2.1.2
session.save_path | "" | PHP_INI_ALL | Поддерживается с memcache 2.1.2
memcache.protocol | ascii | >PHP_INI_ALL | Поддерживается с memcache 3.0.0
memcache.redundancy | 1 | >PHP_INI_ALL | Поддерживается с memcache 3.0.0
memcache.session_redundancy | 2 | >PHP_INI_ALL | Поддерживается с memcache 3.0.0
memcache.compress_threshold | 20000 | >PHP_INI_ALL | Поддерживается с memcache 3.0.3
memcache.lock_timeout | 15 | >PHP_INI_ALL | Поддерживается с memcache 3.0.4
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

memcache.allow_failover boolean

Разрешение прозрачного переключения (failover) на другие сервера при возникновении ошибок.

memcache.max_failover_attempts integer

Устанавливает число попыток чтения и записи данных. Используется только в сочетании с memcache.allow_failover.

memcache.chunk_size integer

Устанавливает размер передаваемых блоков данных. Использование малых значений приводит к повышению сетевой активности. В случае неожиданного замедления работы попробуйте увеличить значение до 32768.

memcache.default_port string

Устанавливает номер TCP-порта по умолчанию для подключения к серверу memcached, если явно не указан иной.

memcache.hash_strategy string

Контролирует стратегию функций отображения ключей на сервера. Установите этот параметр в consistent для включения последовательного хеширования, которое не требует переназначения ключей кеша при добавлении и удалении серверов из пула. Установка же этого параметра в standard приводит к использованию старой стратегии.

memcache.hash_function string

Устанавливает хеш-функцию для отображения ключей на сервера. При значении crc32 будет использоваться стандартный CRC32 хеш, а при fnv - FNV-1a.

session.save_handler string

Установите этот параметр в memcache для использования memcache в качестве обработчика сессий.

session.save_path string

Устанавливает список адресов серверов, разделенных запятой, для хранений сессий. Например, "tcp://host1:11211, tcp://host2:11211".

Каждый адрес может содержать параметры, аналогичные используемым в методе Memcache::addServer(), которые будут применены сервером. Например, "tcp://host1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

memcache.protocol string

memcache.redundancy integer

memcache.session_redundancy integer

memcache.compress_threshold integer

memcache.lock_timeout integer


Типы ресурсов

Существует всего один тип ресурсов, используемых в модуле memcache - это идентификатор ссылки для подключения к кеш-серверу.


Предопределенные константы

Константы Memcache
Имя | Описание
MEMCACHE_COMPRESSED (integer) | Используется для включения сжатия данных "на лету" для следующих методов: Memcache::set(), Memcache::add() и Memcache::replace().
MEMCACHE_HAVE_SESSION (integer) | 1, если соединение с Memcache установлено, иначе 0.
MEMCACHE_USER1 (integer) | Используется для включения пользовательского флага приложения для Memcache::set(), Memcache::add() и Memcache::replace().
MEMCACHE_USER2 (integer) | Используется для включения пользовательского флага приложения для Memcache::set(), Memcache::add() и Memcache::replace().
MEMCACHE_USER3 (integer) | Используется для включения пользовательского флага приложения для Memcache::set(), Memcache::add() и Memcache::replace().
MEMCACHE_USER4 (integer) | Используется для включения пользовательского флага приложения для Memcache::set(), Memcache::add() и Memcache::replace().


  • « Предопределенные константы
  • Базовое использование »
  • PHP Manual
  • Memcache
  • Примеры

Примеры

Содержание

  • Базовое использование


Базовое использование

Пример #1 Пример использования расширения memcache

В этом примере происходит сохранение объекта в кеше и его последующее чтение. Объекты и другие нескалярные типы сериализируются перед сохранением, что делает невозможным хранение ресурсов (например, идентификаторов подключений и др.) в кеше.

<?php

$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Не могу подключиться");

$version = $memcache->getVersion();
echo "Версия сервера: ".$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 ("Ошибка при сохранении данных на сервере");
echo "Данные сохранены в кеше. (время жизни данных 10 секунд)<br/>\n";

$get_result = $memcache->get('key');
echo "Данные из кеша:<br/>\n";

var_dump($get_result);

?>

Пример #2 Использование memcache в качестве обработчика сессий

<?php

$session_save_path = "tcp://$host:$port?persistent=1&weight=2&timeout=2&retry_interval=10,  ,tcp://$host:$port  ";
ini_set('session.save_handler', 'memcache');
ini_set('session.save_path', $session_save_path);

?>


Класс Memcache

(PECL memcache >= 0.2.0)

Введение

Представляет подключение к набору серверов memcache.

Обзор классов

Memcache {
add ( string $key , mixed $var [, int $flag [, int $expire ]] ) : bool
addServer ( string $host [, int $port = 11211 [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, callable $failure_callback [, int $timeoutms ]]]]]]]] ) : bool
close ( void ) : bool
connect ( string $host [, int $port [, int $timeout ]] ) : bool
decrement ( string $key [, int $value = 1 ] ) : int
delete ( string $key [, int $timeout = 0 ] ) : bool
flush ( void ) : bool
get ( string $key [, int &$flags ] ) : string
getExtendedStats ([ string $type [, int $slabid [, int $limit = 100 ]]] ) : array
getServerStatus ( string $host [, int $port = 11211 ] ) : int
getStats ([ string $type [, int $slabid [, int $limit = 100 ]]] ) : array
getVersion ( void ) : string
increment ( string $key [, int $value = 1 ] ) : int
pconnect ( string $host [, int $port [, int $timeout ]] ) : mixed
replace ( string $key , mixed $var [, int $flag [, int $expire ]] ) : bool
set ( string $key , mixed $var [, int $flag [, int $expire ]] ) : bool
setCompressThreshold ( int $threshold [, float $min_savings ] ) : bool
setServerParams ( string $host [, int $port = 11211 [, int $timeout [, int $retry_interval = FALSE [, bool $status [, callable $failure_callback ]]]]] ) : bool
}

Содержание

  • Memcache::add — Добавить элемент с указанным ключем
  • Memcache::addServer — Добавляет сервер memcached в пул соединений
  • Memcache::close — Закрыть соединение с сервером memcached
  • Memcache::connect — Открывает соединение с сервером memcached
  • Memcache::decrement — Декрементировать значение элемента
  • Memcache::delete — Удалить элемент с сервера
  • Memcache::flush — Сбросить все существующие элементы на сервере
  • Memcache::get — Извлечь элемент с сервера
  • Memcache::getExtendedStats — Получить статистику со всех серверов в пуле
  • Memcache::getServerStatus — Возвращает статус сервера
  • Memcache::getStats — Получить статистику сервера
  • Memcache::getVersion — Вернуть версию сервера
  • Memcache::increment — Увеличить значение элемента
  • Memcache::pconnect — Открывает постоянное соединение с сервером memcached
  • Memcache::replace — Заменить значение существующего элемента
  • Memcache::set — Сохранить данные на сервере
  • Memcache::setCompressThreshold — Включить автоматическое сжатие для больших значений
  • Memcache::setServerParams — Изменяет параметры сервера и статус во время выполнения


Добавить элемент с указанным ключем

  • « Memcache
  • Memcache::addServer »
  • PHP Manual
  • Memcache
  • Добавить элемент с указанным ключем

Memcache::add

(PECL memcache >= 0.2.0)

Memcache::add — Добавить элемент с указанным ключем

Описание

Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] ) : bool

Memcache::add() записывает элемент var с указанным ключем key только если указанный ключ еще не существует на сервере. Также вы можете использовать функцию memcache_add().

Список параметров

key

Ключ, с которым будет связан элемент.

var

Переменная для сохранения. Строковые и числовые значения сохраняются как есть, а остальные типы сериализируются.

flag

Используйте MEMCACHE_COMPRESSED для записи элемента со сжатием (используется zlib).

expire

Время жизни элемента. Если равно нулю, элемент никогда не устаревает. Также вы можете использовать метку времени Unix или число секунд, начиная с текущего момента, однако, в этом случае число секунд не может быть больше 2592000 (30 дней).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Возвращает FALSE, если такой ключ уже существует. В остальных случаях поведение Memcache::add() аналогично Memcache::set().

Примеры

Пример #1 Пример использования Memcache::add()

<?php

$memcache_obj = memcache_connect("localhost", 11211);

/* процедурное API */
memcache_add($memcache_obj, 'var_key', 'test variable', false, 30);

/* объектно-ориентированное API */
$memcache_obj->add('var_key', 'test variable', false, 30);

?>

Смотрите также

  • Memcache::set() - Сохранить данные на сервере
  • Memcache::replace() - Заменить значение существующего элемента


Добавляет сервер memcached в пул соединений

  • « Memcache::add
  • Memcache::close »
  • PHP Manual
  • Memcache
  • Добавляет сервер memcached в пул соединений

Memcache::addServer

(PECL memcache >= 2.0.0)

Memcache::addServer — Добавляет сервер memcached в пул соединений

Описание

Memcache::addServer ( string $host [, int $port = 11211 [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, callable $failure_callback [, int $timeoutms ]]]]]]]] ) : bool

Memcache::addServer() добавляет сервер в пул соединений. Вы также можеет использовать функцию memcache_add_server().

При использовании этого метода (в отличие от Memcache::connect() и Memcache::pconnect()) сетевое соединение не будет установлено, пока в нем не возникнет необходимость. В связи с этим можно не опасаться снижения производительности при добавлении большого количества серверов в пул, так как, возможно, они никогда не будут использованы.

Потребность в обеспечении отказоустойчивости может возникнуть на любом этапе в любом методе и если при этом будут доступен хотя бы один сервер из пула - пользователь не получит какого-либо оповещения. Любой тип ошибки сокета или сервера Memcached (за исключением ошибки переполнения памяти) может включить протокол обеспечения отказоустойчивости. Обычные клиентские ошибки, такие как добавление существующего ключа, не вызовут подобного поведения.

Замечание:

Эта функция была добавлена в Memcache версии 2.0.0.

Список параметров

host

Указывает на хост с запущенным сервисом memcached. Этот параметр можно задать в виде unix:///path/to/memcached.sock для использования сокетов Unix, но в таком случае будет необходимо установить параметр port, равным 0.

port

Указывает порт, по которому доступен сервис memcached. Необходимо установить равным 0 если используются сокеты Unix.

Пожалуйста обратите внимание: port по умолчанию равен memcache.default_port. Поэтому рекомендуется всегда указывать номер порта при использовании этого метода.

persistent

Использовать ли постоянное соединение. По умолчанию TRUE.

weight

Необходимое количество созданных пакетов данных для этого сервера, что, в свою очередь, определяет вероятность его выбора. Вероятность рассчитывается относительно общего веса всех серверов.

timeout

Тайм-аут в секундах для установления соединения с сервером. Дважды подумайте предже чем устанавливать это значение больше чем 1. Это может нивелировать всю пользу от использования memcached.

retry_interval

Управляет частотой проверки доступности отказавшего сервера, по умолчанию 15 секунд. Если задать значение "-1", то попыток проверить джоступность сервера предприниматься не будет. Ни этот параметр, ни параметр persistent не оказывают никакого влияния, если расширение загружено динамически через функцию dl().

Каждая провалившаяся структура соединения имеет собственное значение тайм-аута и, пока он не пройдет, структура будет пропущена, после чего попробует выбрать другой сервер для обслуживания запроса. После того, как время соединения истекло, оно либо удачно пересоединится, либо будет помечено провалившимся и будет ждать еще retry_interval секунд. Обычно эффект заключается в том, что каждый процесс веб-сервера будет ожидать retry_interval секунд при обслуживании запроса.

status

Определяет, должен ли сервер помечен флагом как "онлайн". Установка этого параметра в FALSE и retry_interval в -1 позволит сохранить сервер в пуле, но не использовать его в алгоритме распределения ключей. Запрос к этому серверу либо запустит механизм обеспечения отказоустойчивости, либо сразу же прервется с ошибкой, в зависимости от настройки memcache.allow_failover. По умолчанию равно TRUE, что означает, что сервер активен и готов принимать запросы.

failure_callback

Позволяет пользователю задать функцию обратного вызова, которая запустится в случае какой-либо ошибки. Эта функция будет вызвана раньше, чем будет запущен механизм обеспечения отказоустойчивости. Функция принимает два параметра - имя хоста и порт отказавшего сервера.

timeoutms

Примечания

Внимание

Когда значение port не указано, этот метод использует значение, указанное в ini-директиве PHP memcache.default_port. Если это значение было изменено где-нибудь еще в вашем приложении, то это может дать непредсказуемые результаты. По этой причине лучше всегда явно указывать порт при вызове метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::addServer()

<?php

/* объектно-ориентированное API */

$memcache = new Memcache;
$memcache->addServer('memcache_host', 11211);
$memcache->addServer('memcache_host2', 11211);

/* процедурное API */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_add_server($memcache_obj, 'memcache_host2', 11211);

?>

Смотрите также

  • Memcache::connect() - Открывает соединение с сервером memcached
  • Memcache::pconnect() - Открывает постоянное соединение с сервером memcached
  • Memcache::close() - Закрыть соединение с сервером memcached
  • Memcache::setServerParams() - Изменяет параметры сервера и статус во время выполнения
  • Memcache::getServerStatus() - Возвращает статус сервера


Закрыть соединение с сервером memcached

  • « Memcache::addServer
  • Memcache::connect »
  • PHP Manual
  • Memcache
  • Закрыть соединение с сервером memcached

Memcache::close

(PECL memcache >= 0.4.0)

Memcache::close — Закрыть соединение с сервером memcached

Описание

Memcache::close ( void ) : bool

Memcache::close() закрывает соединение с сервером memcached. Эта функция не закрывает постоянное соединение, которое закрывается только во время завершения работы/перезапуска веб-сервера. Вы также можете использовать функцию memcache_close().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::close()

<?php

/* процедурное API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/*
сделать что-нибудь здесь ..
*/
memcache_close($memcache_obj);

/* объектно-ориентированное API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/*
сделать что-нибудь здесь ..
*/
$memcache_obj->close();

?>

Смотрите также

  • Memcache::connect() - Открывает соединение с сервером memcached
  • Memcache::pconnect() - Открывает постоянное соединение с сервером memcached


Открывает соединение с сервером memcached

  • « Memcache::close
  • Memcache::decrement »
  • PHP Manual
  • Memcache
  • Открывает соединение с сервером memcached

Memcache::connect

(PECL memcache >= 0.2.0)

Memcache::connect — Открывает соединение с сервером memcached

Описание

Memcache::connect ( string $host [, int $port [, int $timeout ]] ) : bool

Memcache::connect() устанавливает соединение с сервером memcached. Соединение, открытое с помощью Memcache::connect(), автоматически закрывается по окончанию выполнения скрипта. Также вы можете закрыть соединение при помощи Memcache::close(). Также вы можете использовать функцию memcache_connect().

Список параметров

host

Определяет хост, на котором memcached ожидает подключений. Этот параметр также может задавать другой транспорт, например unix:///path/to/memcached.sock для использования сокетов Unix. В таком случае, port должен быть задан как 0.

port

Определяет порт, на котором слушает memcached. Установите этот параметр равным 0, если используете сокеты Unix.

Обратите внимание: port, если не задан, по умолчанию будет равен memcache.default_port. По этой причине имеет смысл указать порт явно при вызове метода.

timeout

Значение в секундах, которое будет использовано для подключения к демону. Дважды подумайте, прежде чем изменить значение по умолчанию с 1 секунды - вы можете потерять все преимущества от кеширование, если ваше соединение очень медленное.

Примечания

Внимание

Если порт port не задан, этот метод использует значение по умолчанию, заданное в ini-настройке memcache.default_port. Если это значение изменится где нибудь в вашем приложении - это может привести к неожиданным результатам. По этой причине имеет смысл всегда указать порт явно при вызове метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::connect()

<?php

/* процедурное API */

$memcache_obj = memcache_connect('memcache_host', 11211);

/* объектно-ориентированное API */

$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);

?>

Смотрите также

  • Memcache::pconnect() - Открывает постоянное соединение с сервером memcached
  • Memcache::close() - Закрыть соединение с сервером memcached


Декрементировать значение элемента

  • « Memcache::connect
  • Memcache::delete »
  • PHP Manual
  • Memcache
  • Декрементировать значение элемента

Memcache::decrement

(PECL memcache >= 0.2.0)

Memcache::decrement — Декрементировать значение элемента

Описание

Memcache::decrement ( string $key [, int $value = 1 ] ) : int

Memcache::decrement() уменьшает значение элемента на величину value. Аналогично Memcache::increment(), текущее значение элемента приводится к числовому и после этого из него вычитается value.

Замечание:

Новое значение элемента не может быть меньше нуля.

Замечание:

Не используйте Memcache::decrement() с элементами, которые были сохранены с использованием сжатия, потому что соответствующий вызов Memcache::get() обернется неудачей.

Memcache::decrement() не создает элемент, если он до этого не существовал. Также вы можете использовать функцию memcache_decrement().

Список параметров

key

Ключ декрементируемого элемента.

value

Уменьшение элемента на величину value.

Возвращаемые значения

При успешном выполнении возвращает новое значение элемента или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::decrement()

<?php

/* процедурное API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* декрементировать на 2 */
$new_value = memcache_decrement($memcache_obj, 'test_item', 2);

/* объектно-ориентированное API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/* декрементировать на 3 */
$new_value = $memcache_obj->decrement('test_item', 3);
?>

Смотрите также

  • Memcache::increment() - Увеличить значение элемента
  • Memcache::replace() - Заменить значение существующего элемента


Удалить элемент с сервера

  • « Memcache::decrement
  • Memcache::flush »
  • PHP Manual
  • Memcache
  • Удалить элемент с сервера

Memcache::delete

(PECL memcache >= 0.2.0)

Memcache::delete — Удалить элемент с сервера

Описание

Memcache::delete ( string $key [, int $timeout = 0 ] ) : bool

Memcache::delete() удаляет элемент с указанным ключем key.

Список параметров

key

Ключ удаляемого элемента.

timeout

Это устаревший параметр и в настоящее время не используется. Значение по умолчанию 0 секунд. Не используйте этот параметр.

Список изменений

Версия | Описание
Неизвестно | Не рекомендуется использование параметра timeout. Поведение будет различаться в разных версиях memcache, однако его установка в 0 безопасна. Другие значения этого параметра могу привести к ошибкам при удалении элемента.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::delete()

<?php

/* процедурное API */
$memcache_obj = memcache_connect('memcache_host', 11211);

/* элемент будет удален сервером */
memcache_delete($memcache_obj, 'key_to_delete');

/* объектно-ориентированное API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->delete('key_to_delete');

?>

Смотрите также

  • Memcache::set() - Сохранить данные на сервере
  • Memcache::replace() - Заменить значение существующего элемента


Сбросить все существующие элементы на сервере

  • « Memcache::delete
  • Memcache::get »
  • PHP Manual
  • Memcache
  • Сбросить все существующие элементы на сервере

Memcache::flush

(PECL memcache >= 1.0.0)

Memcache::flush — Сбросить все существующие элементы на сервере

Описание

Memcache::flush ( void ) : bool

Memcache::flush() немедленно аннулириет все существующие элементы. Memcache::flush() фактически не освобождает ресурсы, а только помечает все элементы как истекшие, поэтому занятая память будет перезаписана новыми элементами. Вы также можно использовать функцию memcache_flush().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::flush()

<?php

/* процедурное API */
$memcache_obj = memcache_connect('memcache_host', 11211);

memcache_flush($memcache_obj);

/* объектно-ориентированное API */

$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->flush();

?>


Извлечь элемент с сервера

  • « Memcache::flush
  • Memcache::getExtendedStats »
  • PHP Manual
  • Memcache
  • Извлечь элемент с сервера

Memcache::get

(PECL memcache >= 0.2.0)

Memcache::get — Извлечь элемент с сервера

Описание

Memcache::get ( string $key [, int &$flags ] ) : string
Memcache::get ( array $keys [, array &$flags ] ) : array

Memcache::get() возвращает ранее сохраненный элемент с ключем key, если он в данный момент существует на сервере.

Вы можете передать массив ключей в Memcache::get(), чтобы получить массив элементов. Результирующий массив будет содержать только существующие пары ключ-значение.

Список параметров

key

Ключ или массив ключей для чтения.

flags

Если задан, флаги, полученные вместе со значениями, будут записаны в этот параметр. Это в точности те флаги, что и переданные, например в Memcache::set(). Младший байт значения зарезервирован для внутреннего использования pecl/memcache (например для индикации сжатия или сериализации статуса).

Возвращаемые значения

Возвращает значение, связанное с ключом key или массив найденых пар ключ-значение, если в key задан массив. Возвращает FALSE при ошибке или если указанный ключ key не был найден или является пустым массивом.

Примеры

Пример #1 Пример использования Memcache::get()

<?php

/* процедурное API */
$memcache_obj = memcache_connect('memcache_host', 11211);
$var = memcache_get($memcache_obj, 'some_key');

/* объектно-ориентированное API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$var = $memcache_obj->get('some_key');

/*
Также в качестве параметра вы можете использовать массив ключей.
Если элемент не будет найден, то в результирующий массив просто не будет
включен этот ключ.
*/

/* процедурное API */
$memcache_obj = memcache_connect('memcache_host', 11211);
$var = memcache_get($memcache_obj, Array('some_key', 'another_key'));

/* объектно-ориентированное API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$var = $memcache_obj->get(Array('some_key', 'second_key'));

?>


Получить статистику со всех серверов в пуле

  • « Memcache::get
  • Memcache::getServerStatus »
  • PHP Manual
  • Memcache
  • Получить статистику со всех серверов в пуле

Memcache::getExtendedStats

(PECL memcache >= 2.0.0)

Memcache::getExtendedStats — Получить статистику со всех серверов в пуле

Описание

Memcache::getExtendedStats ([ string $type [, int $slabid [, int $limit = 100 ]]] ) : array

Memcache::getExtendedStats() возвращает двумерный ассоциативный массив, содержащий статистику сервера. Ключи массива соответствуют host:port сервера, а значения содержат статистику по данному серверу. Если не удалось извлечь данные для какого-либо сервера, то соответствующее значение будет выставлено в FALSE. Вы также можете использовать функцию memcache_get_extended_stats().

Замечание:

Эта функция была добавлена в Memcache версии 2.0.0.

Список параметров

type

Тип статистики для извлечения. Корректные значения: reset, malloc, maps, cachedump, slabs, items, sizes. В соответствии со спецификацией протокола memcached, эти дополнительные аргументы "могут быть изменены для удобства разработчиков memcache".

slabid

Используется совместно с type для указания из какого slab-файла делать выгрузку. Используется только в целях отладки. Команда cachedump пытается запустить сервер и должна использоваться только для отладки.

limit

Используется вместе с type для ограничения количества извлекаемых записей.

Внимание

Тип статистики cachedump был удален из демона memcached для безопасности.

Возвращаемые значения

Возвращает двумерный ассоциативный массив, содержащий статистику по серверам или FALSE в случае неудачи.

Примеры

Пример #1 Пример использования Memcache::getExtendedStats()

<?php
    $memcache_obj = new Memcache;
    $memcache_obj->addServer('memcache_host', 11211);
    $memcache_obj->addServer('failed_host', 11211);

    $stats = $memcache_obj->getExtendedStats();
    print_r($stats);
?>

Результат выполнения данного примера:

Array
(
    [memcache_host:11211] => Array
        (
            [pid] => 3756
            [uptime] => 603011
            [time] => 1133810435
            [version] => 1.1.12
            [rusage_user] => 0.451931
            [rusage_system] => 0.634903
            [curr_items] => 2483
            [total_items] => 3079
            [bytes] => 2718136
            [curr_connections] => 2
            [total_connections] => 807
            [connection_structures] => 13
            [cmd_get] => 9748
            [cmd_set] => 3096
            [get_hits] => 5976
            [get_misses] => 3772
            [bytes_read] => 3448968
            [bytes_written] => 2318883
            [limit_maxbytes] => 33554432
        )

    [failed_host:11211] => false
)

Смотрите также

  • Memcache::getVersion() - Вернуть версию сервера
  • Memcache::getStats() - Получить статистику сервера


Возвращает статус сервера

  • « Memcache::getExtendedStats
  • Memcache::getStats »
  • PHP Manual
  • Memcache
  • Возвращает статус сервера

Memcache::getServerStatus

(PECL memcache >= 2.1.0)

Memcache::getServerStatus — Возвращает статус сервера

Описание

Memcache::getServerStatus ( string $host [, int $port = 11211 ] ) : int

Memcache::getServerStatus() возвращает статус онлайн/офлайн серверов. Вы также можете использовать функцию memcache_get_server_status().

Замечание:

Эта функция была добавлена в Memcache версии 2.1.0.

Список параметров

host

Указывает на хост, на котором memcached прослушивает соединения.

port

Указывает на порт, на котором memcached прослушивает соединения.

Возвращаемые значения

Возвращает статус серверов. 0, если сервер потерпел неудачу, и значение, отличное от нуля, в противном случае

Примеры

Пример #1 Пример использования Memcache::getServerStatus()

<?php

/* объектно-ориентированное API */
$memcache = new Memcache;
$memcache->addServer('memcache_host', 11211);
echo $memcache->getServerStatus('memcache_host', 11211);

/* процедурное API */
$memcache = memcache_connect('memcache_host', 11211);
echo memcache_get_server_status($memcache, 'memcache_host', 11211);

?>

Смотрите также

  • Memcache::addServer() - Добавляет сервер memcached в пул соединений
  • Memcache::setServerParams() - Изменяет параметры сервера и статус во время выполнения


Получить статистику сервера

  • « Memcache::getServerStatus
  • Memcache::getVersion »
  • PHP Manual
  • Memcache
  • Получить статистику сервера

Memcache::getStats

(PECL memcache >= 0.2.0)

Memcache::getStats — Получить статистику сервера

Описание

Memcache::getStats ([ string $type [, int $slabid [, int $limit = 100 ]]] ) : array

Memcache::getStats() возращает ассоциативный массив, содержащий статистику сервера. Ключи массива соответствуют параметрам статистики, а значения - значениям параметров. Также вы можете использовать функцию memcache_get_stats().

Список параметров

type

Тип статистики для извлечения. Корректные значения: reset, malloc, maps, cachedump, slabs, items, sizes. В соответствии со спецификацией протокола memcached, эти дополнительные аргументы "могут быть изменены для удобства разработчиков memcache".

slabid

Используется совместно с type для указания из какого slab-файла делать выгрузку. Используется только в целях отладки. Команда cachedump пытается запустить сервер и должна использоваться только для отладки.

limit

Используется вместе с type для ограничения количества извлекаемых записей.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий статистику сервера или FALSE в случае возникновения ошибки.

Смотрите также

  • Memcache::getVersion() - Вернуть версию сервера
  • Memcache::getExtendedStats() - Получить статистику со всех серверов в пуле


Вернуть версию сервера

  • « Memcache::getStats
  • Memcache::increment »
  • PHP Manual
  • Memcache
  • Вернуть версию сервера

Memcache::getVersion

(PECL memcache >= 0.2.0)

Memcache::getVersion — Вернуть версию сервера

Описание

Memcache::getVersion ( void ) : string

Memcache::getVersion() возвращает строку с номером версии сервера. Также вы можете использовать функцию memcache_get_version().

Возвращаемые значения

Возвращает строку с номером версии сервера или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::getVersion()

<?php

/* объектно-ориентированное API */
$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);
echo $memcache->getVersion();

/* процедурное API */
$memcache = memcache_connect('memcache_host', 11211);
echo memcache_get_version($memcache);

?>

Смотрите также

  • Memcache::getExtendedStats() - Получить статистику со всех серверов в пуле
  • Memcache::getStats() - Получить статистику сервера


Увеличить значение элемента

  • « Memcache::getVersion
  • Memcache::pconnect »
  • PHP Manual
  • Memcache
  • Увеличить значение элемента

Memcache::increment

(PECL memcache >= 0.2.0)

Memcache::increment — Увеличить значение элемента

Описание

Memcache::increment ( string $key [, int $value = 1 ] ) : int

Memcache::increment() увеличивает значение элмента на величину value. Если элемент с указанным ключем key не числовой и не может быть приведен к числу, то его значение будет установлено в value. Memcache::increment() не создает элемент, если он до этого не существовал.

Замечание:

Не используйте Memcache::increment() с элементами, которые были сохранены с использованием сжатия, потому что соответствующий вызов Memcache::get() обернется неудачей.

Также вы можете использовать функцию memcache_increment().

Список параметров

key

Ключ элемента.

value

Увеличение значения на величину value.

Возвращаемые значения

При успешном выполнении возвращает новое значение элемента или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::increment()

<?php

/* процедурное API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* инкрементировать счетчик на 2 */
$current_value = memcache_increment($memcache_obj, 'counter', 2);

/* объектно-ориентированное API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/* инкрементировать счетчик на 3 */
$current_value = $memcache_obj->increment('counter', 3);

?>

Смотрите также

  • Memcache::decrement() - Декрементировать значение элемента
  • Memcache::replace() - Заменить значение существующего элемента


Открывает постоянное соединение с сервером memcached

  • « Memcache::increment
  • Memcache::replace »
  • PHP Manual
  • Memcache
  • Открывает постоянное соединение с сервером memcached

Memcache::pconnect

(PECL memcache >= 0.4.0)

Memcache::pconnect — Открывает постоянное соединение с сервером memcached

Описание

Memcache::pconnect ( string $host [, int $port [, int $timeout ]] ) : mixed

Memcache::pconnect() аналогична Memcache::connect() с той разницей, что соединение устанавливается постоянным. Это соединение не закрывается после завершения выполнения скрипта и функцией Memcache::close(). Вы также можете использовать функцию memcache_pconnect().

Список параметров

host

Указывает на хост, на котором memcached прослушивает соединения. Этот параметр также может указывать на другой транспорт, такой как unix:///path/to/memcached.sock, для использования сокетов домена UNIX, в этом случае port должен установлен в 0.

port

Указывает на порт, на котором memcached прослушивает соединения. Установите этот параметр на 0, когда используются сокеты домена UNIX.

timeout

Значение в секундах, которое будет использоваться для подключения к домену. Подумайте дважды, прежде чем менять значение по умолчанию в 1 секунду - вы можете потерять все преимущества кеширования, если ваше соединение слишком медленное.

Возвращаемые значения

Возвращает объект Memcache или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::pconnect()

<?php

/* процедурное API */
$memcache_obj = memcache_pconnect('memcache_host', 11211);

/* объектно-ориентированное API */
$memcache_obj = new Memcache;
$memcache_obj->pconnect('memcache_host', 11211);

?>

Смотрите также

  • Memcache::connect() - Открывает соединение с сервером memcached


Заменить значение существующего элемента

  • « Memcache::pconnect
  • Memcache::set »
  • PHP Manual
  • Memcache
  • Заменить значение существующего элемента

Memcache::replace

(PECL memcache >= 0.2.0)

Memcache::replace — Заменить значение существующего элемента

Описание

Memcache::replace ( string $key , mixed $var [, int $flag [, int $expire ]] ) : bool

Memcache::replace() используется для замены значения существующего элемента с данным ключом key. В случае, если элемент с таким ключом не найден, Memcache::replace() возвращает FALSE. В остальных случаях Memcache::replace() работает аналогично Memcache::set(). Вы также можете использовать функцию memcache_replace().

Список параметров

key

Ключ, связанный с элементом.

var

Сохраняемое значение. Строки и числа сохраняются как есть, остальные типы серилиазируются.

flag

Используйте MEMCACHE_COMPRESSED для сохранения элемента сжатым (используется zlib).

expire

Срок жизни элемента. Если равен нулю, срок жизни никогда не истечет. Вы также можете использовать временную метку Unix, или число секунд, начиная с текущего времени, однако в этом случае количество секунд не может быть больше 2592000 (30 дней).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::replace()

<?php

$memcache_obj = memcache_connect('memcache_host', 11211);

/* процедурное API */
memcache_replace($memcache_obj, "test_key", "some variable", false, 30);

/* объектно-ориентированное API */
$memcache_obj->replace("test_key", "some variable", false, 30);

?>

Смотрите также

  • Memcache::set() - Сохранить данные на сервере
  • Memcache::add() - Добавить элемент с указанным ключем


Сохранить данные на сервере

  • « Memcache::replace
  • Memcache::setCompressThreshold »
  • PHP Manual
  • Memcache
  • Сохранить данные на сервере

Memcache::set

(PECL memcache >= 0.2.0)

Memcache::set — Сохранить данные на сервере

Описание

Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] ) : bool

Memcache::set() записывает элемент со значением var на сервере memcache с указанным ключом key. Параметр expire задает время жизни элемента. Если он развен 0, то элемент никогда не устареет (но сервер memcached не гарантирует что элемент будет постоянно храниться в кеше и он может быть удален для освобождения места для новых элементов). Вы можете использовать константу MEMCACHE_COMPRESSED в качестве значения для параметра flag, если вам требуется сжатие "на лету" (используется zlib).

Замечание:

Помните, что ресурсы (например дескрипторы файлов или подключений) не могут быть сохранены в кеше, потому что они не могут быть сериализованы.

Также вы можете использовать функцию memcache_set().

Список параметров

key

Ключ, с которым будет связано значение элемента.

var

Переменная для сохранения. Строковые и числовые значения сохраняются как есть, а остальные типы сериализируются.

flag

Используйте MEMCACHE_COMPRESSED для сохранения элементов с использованием сжатия (используется zlib).

expire

Время жизни элемента. Если равно нулю, элемент никогда не устаревает. Также вы можете использовать метку времени Unix или число секунд, начиная с текущего момента, однако, в этом случае число секунд не может быть больше 2592000 (30 дней).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::set()

<?php
/* процедурное API */

/* подключение к серверу memcached */
$memcache_obj = memcache_connect('memcache_host', 11211);

/*
установить значение элемента с ключом 'var_key',
используя 0 в flag, без использования сжатия со
временем жизни 30 секунд
*/
memcache_set($memcache_obj, 'var_key', 'some variable', 0, 30);

echo memcache_get($memcache_obj, 'var_key');

?>

Пример #2 Пример использования Memcache::set()

<?php
/* объектно-ориентированное API */

$memcache_obj = new Memcache;

/* подключение к серверу memcached */
$memcache_obj->connect('memcache_host', 11211);

/*
установить значение элемента с ключом 'var_key',
используя сжатие "на лету" и временем жизни 50 секунд.
*/
$memcache_obj->set('var_key', 'some really big variable', MEMCACHE_COMPRESSED, 50);

echo $memcache_obj->get('var_key');

?>

Смотрите также

  • Memcache::add() - Добавить элемент с указанным ключем
  • Memcache::replace() - Заменить значение существующего элемента


Включить автоматическое сжатие для больших значений

  • « Memcache::set
  • Memcache::setServerParams »
  • PHP Manual
  • Memcache
  • Включить автоматическое сжатие для больших значений

Memcache::setCompressThreshold

(PECL memcache >= 2.0.0)

Memcache::setCompressThreshold — Включить автоматическое сжатие для больших значений

Описание

Memcache::setCompressThreshold ( int $threshold [, float $min_savings ] ) : bool

Memcache::setCompressThreshold() включает автоматическое сжатие для больших значений. Вы также можете использовать функцию memcache_set_compress_threshold().

Замечание:

Эта функция была добавлена в Memcache версии 2.0.0.

Список параметров

threshold

Задает минимальный размер элментов для попыток автоматического сжатия.

min_saving

Указывает минимальный размер сэкономленного размера. Переданное значение должно быть в пределах от 0 до 1. Значение по умолчанию 0.2, что задает минимальный размер сэкомленного размера в 20%.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::setCompressThreshold()

<?php

/* объектно-ориентированное API */

$memcache_obj = new Memcache;
$memcache_obj->addServer('memcache_host', 11211);
$memcache_obj->setCompressThreshold(20000, 0.2);

/* процедурное API */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set_compress_threshold($memcache_obj, 20000, 0.2);

?>


Изменяет параметры сервера и статус во время выполнения

  • « Memcache::setCompressThreshold
  • Функции Memcache »
  • PHP Manual
  • Memcache
  • Изменяет параметры сервера и статус во время выполнения

Memcache::setServerParams

(PECL memcache >= 2.1.0)

Memcache::setServerParams — Изменяет параметры сервера и статус во время выполнения

Описание

Memcache::setServerParams ( string $host [, int $port = 11211 [, int $timeout [, int $retry_interval = FALSE [, bool $status [, callable $failure_callback ]]]]] ) : bool

Memcache::setServerParams() изменяет параметры сервера во время выполнения. Вы также можете использовать функцию memcache_set_server_params().

Замечание:

Эта функцию была добавлена в Memcache версии 2.1.0.

Список параметров

host

Указывает на хост, на котором memcached прослушивает соединения.

port

Указывает на порт, на котором memcached прослушивает соединения.

timeout

Значение в секундах, которое будет использоваться для подключения к домену. Подумайте дважды, прежде чем менять значение по умолчанию в 1 секунду - вы можете потерять все преимущества кеширования, если ваше соединение слишком медленное.

retry_interval

Управляет частотой проверки доступности отказавшего сервера, по умолчанию 15 секунд. Если задать значение "-1", то попыток проверить джоступность сервера предприниматься не будет. Ни этот параметр, ни параметр persistent не оказывают никакого влияния, если расширение загружено динамически через функцию dl().

status

Определяет, должен ли сервер помечен флагом как "онлайн". Установка этого параметра в FALSE и retry_interval в -1 позволит сохранить сервер в пуле, но не использовать его в алгоритме распределения ключей. Запрос к этому серверу либо запустит механизм обеспечения отказоустойчивости, либо сразу же прервется с ошибкой, в зависимости от настройки memcache.allow_failover. По умолчанию равно TRUE, что означает, что сервер активен и готов принимать запросы.

failure_callback

Позволяет пользователю задать функцию обратного вызова, которая запустится в случае какой-либо ошибки. Эта функция будет вызвана раньше, чем будет запущен механизм обеспечения отказоустойчивости. Функция принимает два параметра - имя хоста и порт отказавшего сервера.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::setServerParams()

<?php

function _callback_memcache_failure($host, $port) {
    print "неудачное подключение memcache - '$host:$port'";
}

/* объектно-ориентированное API */

$memcache = new Memcache;

// Добавить сервер в офлайн-режим
$memcache->addServer('memcache_host', 11211, false, 1, 1, -1, false);

// Перевести сервер обратно в онлайн
$memcache->setServerParams('memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');

/* процедурное API */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set_server_params($memcache_obj, 'memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');

?>

Смотрите также

  • Memcache::addServer() - Добавляет сервер memcached в пул соединений
  • Memcache::getServerStatus() - Возвращает статус сервера


  • « Memcache::setServerParams
  • memcache_debug »
  • PHP Manual
  • Memcache
  • Функции Memcache

Функции Memcache

Содержание

  • memcache_debug — Включить/выключить вывод отладочной информации


Включить/выключить вывод отладочной информации

  • « Функции Memcache
  • Memcached »
  • PHP Manual
  • Функции Memcache
  • Включить/выключить вывод отладочной информации

memcache_debug

(PECL memcache >= 0.2.0)

memcache_debug — Включить/выключить вывод отладочной информации

Описание

memcache_debug ( bool $on_off ) : bool

memcache_debug() включает вывод отладочной информации, если on_off установлен в TRUE и выключает, если в FALSE.

Замечание:

Функция memcache_debug() доступна, только если PHP был собран с использованием опции --enable-debug и в этом случае всегда возвращает TRUE. Иначе вызов этой функции ничего не делает и возвращает FALSE.

Список параметров

on_off

Включает вывод отладочной информации, если установлено в TRUE. Выключает вывод отладочной информации, если установлено в FALSE.

Возвращаемые значения

Возвращает TRUE, если PHP был собран с опцией --enable-debug, иначе - FALSE.


Memcached

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Время хранения объекта
  • Функции обратного вызова
    • Функции обратного вызова для результирующего набора
    • Функции обратного вызова сквозного чтения кеша
  • Поддержка сессий
  • Memcached — Класс Memcached
    • Memcached::add — Добавляет элемент с новым ключом
    • Memcached::addByKey — Добавляет новый элемент на заданный сервер
    • Memcached::addServer — Добавляет сервер в пул
    • Memcached::addServers — Добавляет несколько серверов в пул
    • Memcached::append — Добавляет данные к существующей записи
    • Memcached::appendByKey — Добавляет данные к существующей записи на заданном сервере
    • Memcached::cas — Сравнивает и устанавливает значение для записи
    • Memcached::casByKey — Сравнивает и устанавливает значение для записи на конкретном сервере
    • Memcached::__construct — Создает экземпляр класса Memcached
    • Memcached::decrement — Уменьшает числовое значение записи
    • Memcached::decrementByKey — Уменьшает числовое значение записи, хранящееся на определенном сервере
    • Memcached::delete — Удаляет запись
    • Memcached::deleteByKey — Удаляет запись с указанного сервера
    • Memcached::deleteMulti — Удаляет несколько записей
    • Memcached::deleteMultiByKey — Удаляет несколько записей с указанного сервера
    • Memcached::fetch — Извлекает следующий результат
    • Memcached::fetchAll — Извлекает все полученные записи
    • Memcached::flush — Аннулирует все записи в кеше
    • Memcached::get — Получение записи
    • Memcached::getAllKeys — Получает все ключи, хранящиеся на серверах
    • Memcached::getByKey — Получает запись с определенного сервера
    • Memcached::getDelayed — Запрашивает несколько записей
    • Memcached::getDelayedByKey — Запрашивает несколько записей с указанного сервера
    • Memcached::getMulti — Получает несколько записей
    • Memcached::getMultiByKey — Получает несколько записей с указанного сервера
    • Memcached::getOption — Получает значение Memcached параметра
    • Memcached::getResultCode — Возвращает результирующий код последней выполненной операции
    • Memcached::getResultMessage — Возвращает сообщение, описывающее результат выполнения последней операции
    • Memcached::getServerByKey — Получает информацию о сервере по ключу
    • Memcached::getServerList — Получает список серверов в пуле
    • Memcached::getStats — Получает статистику о серверах в пуле
    • Memcached::getVersion — Получает информацию о версии серверов в пуле
    • Memcached::increment — Увеличивает числовое значение записи
    • Memcached::incrementByKey — Увеличивает числовое значение записи, хранимой на указанном сервере
    • Memcached::isPersistent — Проверяет используется ли устойчивое соединение с сервером memcache
    • Memcached::isPristine — Проверяет создан ли уже экземпляр класса Memcached
    • Memcached::prepend — Добавляет данные в начало существующей записи
    • Memcached::prependByKey — Добавляет данные в начало существующей записи на указанном сервере
    • Memcached::quit — Закрывает все открытые соединения
    • Memcached::replace — Заменяет существующую запись с указанным ключом
    • Memcached::replaceByKey — Заменяет существующую запись с заданным ключом на указанном сервере
    • Memcached::resetServerList — Очищает список серверов
    • Memcached::set — Сохраняет запись
    • Memcached::setByKey — Сохраняет запись на указанном сервере
    • Memcached::setMulti — Сохраняет несколько записей
    • Memcached::setMultiByKey — Сохраняет несколько записей на указанном сервере
    • Memcached::setOption — Устанавливает значение параметра для Memcached
    • Memcached::setOptions — Устанавливает несколько Memcached параметров
    • Memcached::setSaslAuthData — Устанавливает учетные данные для аутентификации
    • Memcached::touch — Устанавливает новый срок хранения для записи
    • Memcached::touchByKey — Устанавливает новый срок хранения для записи на указанном сервере
  • MemcachedException — Класс MemcachedException


Введение

» Memcached - это высокопроизводительная и распределенная система кеширования любых объектов в памяти, предназначенная в первую очередь для ускорения динамических веб-приложений за счет снижения нагрузки на базу данных.

Это расширение, используя библиотеку libmemcached, предоставляет API для связи с серверами memcached. Оно также предоставляет обработчик для хранения сессий в (memcached).

Информацию о libmemcached можно найти здесь: » http://libmemcached.org/libMemcached.html.


Требования

Этот модуль требует наличие библиотеки » libmemcached (версии 1.0.0 и новее). Для поддержки SASL аутентификации, libmemcached должен быть собран с включенным SASL.

С версии 0.2.0 это расширение требует PHP версии 5.2.0 или новее.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/memcached.

Если libmemcached установлена в нестандартной директории, используйте опцию --with-libmemcached-dir=DIR , где DIR -- это директория, куда установлен libmemcached. Эта директория должна содержать файл include/libmemcached/memcached.h.

Библиотека Zlib необходима для поддержки сжатия. Для указания нестандартного расположения Zlib используйте ключ --with-zlib-dir=DIR , где DIR -- это директория установки Zlib.

Поддержка обработчика сессий включена по умолчанию. Для ее отключения используйте ключ --disable-memcached-session .

Поддержка SASL аутентификации по умолчанию отключена. Для ее включения используйте ключ --enable-memcached-sasl . Для этого также требуется установленная библиотека libsasl2, и чтобы libmemcached был собран с включенной поддержкой SASL.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Memcached
Имя | По умолчанию | Место изменения | Список изменений
memcached.sess_locking | 1 | PHP_INI_ALL |
memcached.sess_consistent_hash | 0 | PHP_INI_ALL |
memcached.sess_binary | 0 | PHP_INI_ALL |
memcached.sess_lock_wait | 150000 | PHP_INI_ALL |
memcached.sess_prefix | memc.sess.key. | PHP_INI_ALL |
memcached.sess_number_of_replicas | 0 | PHP_INI_ALL |
memcached.sess_randomize_replica_read | 0 | PHP_INI_ALL |
memcached.sess_remove_failed | 0 | PHP_INI_ALL |
memcached.compression_type | fastlz | PHP_INI_ALL |
memcached.compression_factor | 1.3 | PHP_INI_ALL |
memcached.compression_threshold | 2000 | PHP_INI_ALL |
memcached.serializer | php | PHP_INI_ALL |
memcached.use_sasl | 0 | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

memcached.sess_locking integer

Использовать блокировку сессий. Допустимые значения: On, Off. По умолчанию

memcached.sess_consistent_hash integer

Режим конситстентного хеширования сессий. Если включено, то для обработки сессий будет использовано консистентное хеширование. При использовании консистентного хеширования можно добавлять или удалять узлы кеширования без больших потерь кешированных ключей. По умолчанию Off.

memcached.sess_binary integer

Использовать бинарный режим сессии.Реплики libmemcached работают только если включен этот режим. По умолчанию Off.

memcached.sess_lock_wait integer

Время ожидания повторной синхронизации сессии в микросекундах. При установке этого значения будьте осторожны. Допустимы целочисленные значения. Если установлено как 0, то используется значение по умолчанию. Отрицательные значения уменьшают блокировку попытки блокировки. По умолчанию 150000.

memcached.sess_prefix string

Префикс ключа сессии. Строка длиной не более 219 байт. По умолчанию "memc.sess.key."

memcached.sess_number_of_replicas integer

Количество реплик сессии memcached.

memcached.sess_randomize_replica_read integer

Случайное чтение реплики memcached сессией.

memcached.sess_remove_failed integer

Разрешить автоматическое удаление недоступных серверов memcached.

memcached.compression_type string

Настройка типа сжатия, корректные значения: fastlz, zlib. По умолчанию fastlz.

memcached.compression_factor float

Коэффициент сжатия. Хранить значения сжатыми только если коэффициент сжатия превышает заданный. Храним сжатым если: plain_len > comp_len * factor. По умолчанию 1.3 (экономия места 23%).

memcached.compression_threshold integer

Порог сжатия. Не сжимать сериализованные значения меньше указанного размера. По умолчанию 2000 bytes.

memcached.serializer string

Настройка сериализатора по умолчанию для новых объектов memcached. Допустимые значения: php, igbinary, json, json_array.

json

Стандартное кодирование JSON. Этот сериализатор быстрый и компактный, но работает только с данными в UTF-8 и не полностью реализует сериализацию. Подробности смотри в описании расширения JSON.

json_array

Тот же json, но раскодируется в массивы.

php

Стандартный сериализатор PHP.

igbinary

Бинарный сериализатор.

По умолчанию igbinary, если доступен. Иначе PHP.

memcached.use_sasl integer

Использовать аутентификацию SASL при соединении. Допустимые значения: On, Off. По умолчанию Off.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Memcached::OPT_COMPRESSION

Разрешает или запрещает сжатие данных. Если разрешено, то записи длинее определенного порога (обычно 100 байт) будут прозрачно сжиматься при сохранении и разжиматься при извлечении.

Тип: boolean, по умолчанию: TRUE.

Memcached::OPT_SERIALIZER

Задает сериализатор для сериализации не скалярных значений. Корректными значениями являются Memcached::SERIALIZER_PHP и Memcached::SERIALIZER_IGBINARY. Последний допустим только если memcached собран с опцией --enable-memcached-igbinary и загружено расширение igbinary.

Тип: integer, по умолчанию: Memcached::SERIALIZER_PHP.

Memcached::SERIALIZER_PHP

Сериализатор PHP по умолчанию.

Memcached::SERIALIZER_IGBINARY

Сериализатор » igbinary. Вместо текстового представления он сохраняет данные в компактном бинарном формате, что дает выйгрыш в размере и скорости работы.

Memcached::SERIALIZER_JSON

Сериализатор JSON. Требуется PHP 5.2.10+.

Memcached::OPT_PREFIX_KEY

Используется для создания "домена" для ваших ключей. Заданное здесь значение будет использоваться в качестве префикса для всех ключей. Значение не может быть длинее 128 символов и, соответственно, максимальная длина ключей будет уменьшена. Префикс применяется только для обычных ключей, но не для серверных ключей.

Тип: string, по умолчанию: "".

Memcached::OPT_HASH

Задает алгоритм хеширования для ключей. Можно задавать константами Memcached::HASH_*. Каждый алгоритм хеширования имеет свои достоинства и недостатки. Используйте значение по умолчанию, если не уверены или вам все равно.

Тип: integer, по умолчанию: Memcached::HASH_DEFAULT

Memcached::HASH_DEFAULT

Алгоритм хеширования ключей по умолчанию (Jenkins one-at-a-time).

Memcached::HASH_MD5

Алгоритм хеширования ключей MD5.

Memcached::HASH_CRC

Алгоритм хеширования ключей CRC.

Memcached::HASH_FNV1_64

Алгоритм хеширования ключей FNV1_64.

Memcached::HASH_FNV1A_64

Алгоритм хеширования ключей FNV1_64A.

Memcached::HASH_FNV1_32

Алгоритм хеширования ключей FNV1_32.

Memcached::HASH_FNV1A_32

Алгоритм хеширования ключей FNV1_32A.

Memcached::HASH_HSIEH

Алгоритм хеширования ключей Hsieh.

Memcached::HASH_MURMUR

Алгоритм хеширования ключей Murmur.

Memcached::OPT_DISTRIBUTION

Задает способ распределения ключей по серверам. В данный момент поддерживаются методы модульного и консистентного хеширования. Консистентное хеширование дает лучшее распределение и позволяет добавлять сервера в кластер с минимальными потерями кеша.

Тип: integer, по умолчанию: Memcached::DISTRIBUTION_MODULA.

Memcached::DISTRIBUTION_MODULA

Модульный алгоритм распределения ключей.

Memcached::DISTRIBUTION_CONSISTENT

Алгоритм распределения ключей "Консистентное хеширование" (базируется на libketama).

Memcached::OPT_LIBKETAMA_COMPATIBLE

Включает или отключает совместимость с поведением типа libketama. Если включено, то алгоритм хеширования ключей устанавливается в MD5 и распределение ключей в режим консистентного хеширования на базе весов. Это полезно потому, что другие клиенты с поведением типа libketama (Python, Ruby и т.д.) с такими же настройками сервера смогут получить прозрачный доступ к ключам.

Замечание:

Крайне рекомендуется включить эту опцию если вы хотите использовать консистентное хеширование. Кроме того, она может быть включена по умолчанию в следующих релизах.

Тип: boolean, по умолчанию: FALSE.

Memcached::OPT_BUFFER_WRITES

Включает или отключает буферизованный ввод/вывод. Включение буферизации приводит к буферизации команд хранилищу вместо моментальной отправки. Любое действие по извлечению данных приведет к немедленной отправке буфера на удаленный сервер. Выход или закрытие соединения также приводит к немедленной отправке буфера.

Тип: boolean, по умолчанию: FALSE.

Memcached::OPT_BINARY_PROTOCOL

Включает использование бинарного протокола. Учтите, что на уже открытом соединении включить данную опцию не получится.

Тип: boolean, по умолчанию: FALSE.

Memcached::OPT_NO_BLOCK

Включает или отключает асинхронный ввод/вывод. Это самый быстрый транспорт для функций хранения.

Тип: boolean, по умолчанию: FALSE.

Memcached::OPT_TCP_NODELAY

Включает или отключает опцию no-delay для сокетов соединения (в некоторых случаях может дать прирост скорости).

Тип: boolean, по умолчанию: FALSE.

Memcached::OPT_SOCKET_SEND_SIZE

Максимальный размер буфера отправки для сокета в байтах.

Тип: integer, по умолчанию: зависит от настроек платформы/ядра.

Memcached::OPT_SOCKET_RECV_SIZE

Максимальный размер буфера приема для сокета в байтах.

Тип: integer, по умолчанию: зависит от настроек платформы/ядра.

Memcached::OPT_CONNECT_TIMEOUT

В неблокирующем режиме задает таймаут соединения для сокета в миллисекундах.

Тип: integer, по умолчанию: 1000.

Memcached::OPT_RETRY_TIMEOUT

Задержка в секундах перед попыткой повторного соединения после ошибки.

Тип: integer, по умолчанию: 0.

Memcached::OPT_SEND_TIMEOUT

Таймаут отправки для сокета в миктосекундах. В случаях, когда вы не можете использовать неблокирующий ввод/вывод это поможет вам сохранить таймауты при отсылке данных.

Тип: integer, по умолчанию: 0.

Memcached::OPT_RECV_TIMEOUT

Таймаут чтения для сокета в миктосекундах. В случаях, когда вы не можете использовать неблокирующий ввод/вывод это поможет вам сохранить таймауты при чтении данных.

Тип: integer, по умолчанию: 0.

Memcached::OPT_POLL_TIMEOUT

Период опроса сокета в миллисекундах.

Тип: integer, по умолчанию: 1000.

Memcached::OPT_CACHE_LOOKUPS

Разрешает или запрещает кешировать результаты запросов к DNS.

Тип: boolean, по умолчанию: FALSE.

Memcached::OPT_SERVER_FAILURE_LIMIT

Задает максимальное количество неудачных попыток соединиться с сервером. После достижения этого предела сервер будет удален.

Тип: integer, по умолчанию: 0.

Memcached::HAVE_IGBINARY

Указывает, доступна ли поддержка сериализатора igbinary.

Тип: boolean.

Memcached::HAVE_JSON

Указывает, доступна ли поддержка сериализатора JSON.

Тип: boolean.

Memcached::HAVE_MSGPACK

Указывает, доступна ли поддержка сериализатора msgpack.

Type: boolean.

Доступно с Memcached 3.0.0.

Memcached::HAVE_SESSION

Type: boolean.

Доступно с Memcached 3.0.0.

Memcached::HAVE_SASL

Type: boolean.

Доступно с Memcached 3.0.0.

Memcached::GET_EXTENDED

Флаг для Memcached::get(), Memcached::getMulti() и Memcached::getMultiByKey() дл того, чтобы также возвращались значения токена CAS.

Доступно с Memcached 3.0.0.

Memcached::GET_PRESERVE_ORDER

Флаг для Memcached::getMulti() и Memcached::getMultiByKey() для гарантированного возвращения ключей в том же порядке, как они были запрошены. Несуществующие ключи будут возвращены со значениями NULL.

Memcached::RES_SUCCESS

Операция прошла успешно.

Memcached::RES_FAILURE

Операция завершилась ошибкой.

Memcached::RES_HOST_LOOKUP_FAILURE

Ошибка запроса к DNS.

Memcached::RES_UNKNOWN_READ_FAILURE

Не удалось прочитать сетевые данные.

Memcached::RES_PROTOCOL_ERROR

Некорректная команда в протоколе memcached.

Memcached::RES_CLIENT_ERROR

Ошибка на стороне клиента.

Memcached::RES_SERVER_ERROR

Ошибка на стороне сервера.

Memcached::RES_WRITE_FAILURE

Не удалось записать сетевые данные.

Memcached::RES_DATA_EXISTS

Не удалось сравнить-и-обменять: вы пытаетесь изменить элемент, который был изменен после того, как вы его прочитали в последний раз.

Memcached::RES_NOTSTORED

Элемент не сохранен: но не из-за ошибки. Обычно такое означает, что не соблюдены предусловия команд "add" или "replace" либо что элемент находится в очереди на удаление.

Memcached::RES_NOTFOUND

Элемент с заданным ключем не найден (при операциях "get" или "cas").

Memcached::RES_PARTIAL_READ

Частичная ошибка чтения сетевых данных.

Memcached::RES_SOME_ERRORS

Какие-то ошибки возникли при мульти-запросе.

Memcached::RES_NO_SERVERS

Список серверов пуст.

Memcached::RES_END

Конец результирующего набора.

Memcached::RES_ERRNO

Системная ошибка.

Memcached::RES_BUFFERED

Операция помещена в буфер.

Memcached::RES_TIMEOUT

Превышен таймаут операции.

Memcached::RES_BAD_KEY_PROVIDED

Некорректный ключ.

Memcached::RES_CONNECTION_SOCKET_CREATE_FAILURE

Не удалось создать сетевой сокет.

Memcached::RES_PAYLOAD_FAILURE

Проблемы с данными: не удается сжать/расжать или сериализовать/десериализовать значение.

Memcached::RES_AUTH_PROBLEM

Доступно с Memcached 3.0.0.

Memcached::RES_AUTH_FAILURE

Доступно с Memcached 3.0.0.

Memcached::RES_AUTH_CONTINUE

Доступно с Memcached 3.0.0.

Memcached::RES_E2BIG

Доступно с Memcached 3.0.0.

Memcached::RES_KEY_TOO_BIG

Доступно с Memcached 3.0.0.

Memcached::RES_SERVER_TEMPORARILY_DISABLED

Доступно с Memcached 3.0.0.

Memcached::RES_SERVER_MEMORY_ALLOCATION_FAILURE

Доступно с Memcached 3.0.0.


Время хранения объекта

Некоторые команды сохранения отправляют на сервер время хранения (применительно к объектам или операциям, запрошенным клиентом). Во всех этих случаях фактическое время должно быть отправлено либо в формате Unix (количество секунд с 1 января 1970 года, в виде целого числа), либо как количество секунд с момента отправки/получения команды. В последнем случае это число не должно превышать 60*60*24*30 (количество секунд в 30 днях); если указано большее время хранения, сервер расценивает его как время в формате Unix.

Если время хранения равно 0 (по умолчанию), объект никогда не будет признан устаревшим (но при этом может быть удален с сервера для высвобождения пространства под другие объекты).


  • « Время хранения объекта
  • Функции обратного вызова для результирующего набора »
  • PHP Manual
  • Memcached
  • Функции обратного вызова

Функции обратного вызова

Содержание

  • Функции обратного вызова для результирующего набора
  • Функции обратного вызова сквозного чтения кеша


Функции обратного вызова для результирующего набора

Функции обратного вызова для результирующего набора вызываются методами Memcached::getDelayed() или Memcached::getDelayedBykey() для каждого элемента из результирующего набора. Функциям обратного вызова передаются объект Memcached и массив с информацией об элементе. Эти функции не должны ничего возвращать.

Пример #1 Пример функции обратного вызова

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$items = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$m->setMulti($items);
$m->getDelayed(array('key1', 'key3'), true, 'result_cb');

function result_cb($memc, $item)
{
    var_dump($item);
}
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["key"]=>
  string(4) "key1"
  ["value"]=>
  string(6) "value1"
  ["cas"]=>
  float(49)
}
array(3) {
  ["key"]=>
  string(4) "key3"
  ["value"]=>
  string(6) "value3"
  ["cas"]=>
  float(50)
}


Функции обратного вызова сквозного чтения кеша

Данные функции вызываются в случае, когда невозможно получить запрошенное значение. В функцию обратного вызова передается объект Memcached и запрошенный ключ, а так же передается по ссылке переменная для возврата значения. Функция должна вернуть FALSE или TRUE. Если TRUE, то Memcached сохранит полученное значение и вернет его оригинальной функции. Данные функции обратного вызова используются только с Memcached::get() и Memcached::getByKey(), так как протокол не предоставляет информации о том, какие ключи не найдены, при пакетных запросах.

Пример #1 Пример использования

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$profile_info = $m->get('user:'.$user_id, 'user_info_cb');

function user_info_cb($memc, $key, &$value)
{
    $user_id = substr($key, 5);
    /* ищем необходимые данные в БД */
    /* ... */
    $value = $profile_info;
    return true;
}
?>


Поддержка сессий

Memcached предоставляет собственный обработчик сессий, который можно использовать для хранения сессионных переменных в memcache. Для этого используется полностью отдельный экземпляр memcached, поэтому при необходимости вы можете использовать другой пул серверов. Ключи сессии хранятся с префиксом memc.sess.key., так что имейте это в виду, если будете использовать для сессий и обычного кеширования один и тот же пул серверов.

session.save_handler string

Установите для memcached для поддержки обработки сессий.

session.save_path string

Задает разделенный запятыми список записей hostname:port для определения пула серверов обрабатывающих сессии. К примеру "sess1:11211, sess2:11211".


Класс Memcached

(PECL memcached >= 0.1.0)

Введение

Представляет соединение к набору серверов memcached.

Обзор классов

Memcached {
public __construct ([ string $persistent_id ] )
public add ( string $key , mixed $value [, int $expiration ] ) : bool
public addByKey ( string $server_key , string $key , mixed $value [, int $expiration ] ) : bool
public addServer ( string $host , int $port [, int $weight = 0 ] ) : bool
public addServers ( array $servers ) : bool
public append ( string $key , string $value ) : bool
public appendByKey ( string $server_key , string $key , string $value ) : bool
public cas ( float $cas_token , string $key , mixed $value [, int $expiration ] ) : bool
public casByKey ( float $cas_token , string $server_key , string $key , mixed $value [, int $expiration ] ) : bool
public decrement ( string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] ) : int
public decrementByKey ( string $server_key , string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] ) : int
public delete ( string $key [, int $time = 0 ] ) : bool
public deleteByKey ( string $server_key , string $key [, int $time = 0 ] ) : bool
public deleteMulti ( array $keys [, int $time = 0 ] ) : array
public deleteMultiByKey ( string $server_key , array $keys [, int $time = 0 ] ) : bool
public fetch ( void ) : array
public fetchAll ( void ) : array
public flush ([ int $delay = 0 ] ) : bool
public get ( string $key [, callable $cache_cb [, int $$flags ]] ) : mixed
public getAllKeys ( void ) : array
public getByKey ( string $server_key , string $key [, callable $cache_cb [, int $flags ]] ) : mixed
public getDelayed ( array $keys [, bool $with_cas [, callable $value_cb ]] ) : bool
public getDelayedByKey ( string $server_key , array $keys [, bool $with_cas [, callable $value_cb ]] ) : bool
public getMulti ( array $keys [, int $flags ] ) : mixed
public getMultiByKey ( string $server_key , array $keys [, int $flags ] ) : array
public getOption ( int $option ) : mixed
public getResultCode ( void ) : int
public getResultMessage ( void ) : string
public getServerByKey ( string $server_key ) : array
public getServerList ( void ) : array
public getStats ( void ) : array
public getVersion ( void ) : array
public increment ( string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] ) : int
public incrementByKey ( string $server_key , string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] ) : int
public isPersistent ( void ) : bool
public isPristine ( void ) : bool
public prepend ( string $key , string $value ) : bool
public prependByKey ( string $server_key , string $key , string $value ) : bool
public quit ( void ) : bool
public replace ( string $key , mixed $value [, int $expiration ] ) : bool
public replaceByKey ( string $server_key , string $key , mixed $value [, int $expiration ] ) : bool
public resetServerList ( void ) : bool
public set ( string $key , mixed $value [, int $expiration ] ) : bool
public setByKey ( string $server_key , string $key , mixed $value [, int $expiration ] ) : bool
public setMulti ( array $items [, int $expiration ] ) : bool
public setMultiByKey ( string $server_key , array $items [, int $expiration ] ) : bool
public setOption ( int $option , mixed $value ) : bool
public setOptions ( array $options ) : bool
public setSaslAuthData ( string $username , string $password ) : void
public touch ( string $key , int $expiration ) : bool
public touchByKey ( string $server_key , string $key , int $expiration ) : bool
}

Содержание

  • Memcached::add — Добавляет элемент с новым ключом
  • Memcached::addByKey — Добавляет новый элемент на заданный сервер
  • Memcached::addServer — Добавляет сервер в пул
  • Memcached::addServers — Добавляет несколько серверов в пул
  • Memcached::append — Добавляет данные к существующей записи
  • Memcached::appendByKey — Добавляет данные к существующей записи на заданном сервере
  • Memcached::cas — Сравнивает и устанавливает значение для записи
  • Memcached::casByKey — Сравнивает и устанавливает значение для записи на конкретном сервере
  • Memcached::__construct — Создает экземпляр класса Memcached
  • Memcached::decrement — Уменьшает числовое значение записи
  • Memcached::decrementByKey — Уменьшает числовое значение записи, хранящееся на определенном сервере
  • Memcached::delete — Удаляет запись
  • Memcached::deleteByKey — Удаляет запись с указанного сервера
  • Memcached::deleteMulti — Удаляет несколько записей
  • Memcached::deleteMultiByKey — Удаляет несколько записей с указанного сервера
  • Memcached::fetch — Извлекает следующий результат
  • Memcached::fetchAll — Извлекает все полученные записи
  • Memcached::flush — Аннулирует все записи в кеше
  • Memcached::get — Получение записи
  • Memcached::getAllKeys — Получает все ключи, хранящиеся на серверах
  • Memcached::getByKey — Получает запись с определенного сервера
  • Memcached::getDelayed — Запрашивает несколько записей
  • Memcached::getDelayedByKey — Запрашивает несколько записей с указанного сервера
  • Memcached::getMulti — Получает несколько записей
  • Memcached::getMultiByKey — Получает несколько записей с указанного сервера
  • Memcached::getOption — Получает значение Memcached параметра
  • Memcached::getResultCode — Возвращает результирующий код последней выполненной операции
  • Memcached::getResultMessage — Возвращает сообщение, описывающее результат выполнения последней операции
  • Memcached::getServerByKey — Получает информацию о сервере по ключу
  • Memcached::getServerList — Получает список серверов в пуле
  • Memcached::getStats — Получает статистику о серверах в пуле
  • Memcached::getVersion — Получает информацию о версии серверов в пуле
  • Memcached::increment — Увеличивает числовое значение записи
  • Memcached::incrementByKey — Увеличивает числовое значение записи, хранимой на указанном сервере
  • Memcached::isPersistent — Проверяет используется ли устойчивое соединение с сервером memcache
  • Memcached::isPristine — Проверяет создан ли уже экземпляр класса Memcached
  • Memcached::prepend — Добавляет данные в начало существующей записи
  • Memcached::prependByKey — Добавляет данные в начало существующей записи на указанном сервере
  • Memcached::quit — Закрывает все открытые соединения
  • Memcached::replace — Заменяет существующую запись с указанным ключом
  • Memcached::replaceByKey — Заменяет существующую запись с заданным ключом на указанном сервере
  • Memcached::resetServerList — Очищает список серверов
  • Memcached::set — Сохраняет запись
  • Memcached::setByKey — Сохраняет запись на указанном сервере
  • Memcached::setMulti — Сохраняет несколько записей
  • Memcached::setMultiByKey — Сохраняет несколько записей на указанном сервере
  • Memcached::setOption — Устанавливает значение параметра для Memcached
  • Memcached::setOptions — Устанавливает несколько Memcached параметров
  • Memcached::setSaslAuthData — Устанавливает учетные данные для аутентификации
  • Memcached::touch — Устанавливает новый срок хранения для записи
  • Memcached::touchByKey — Устанавливает новый срок хранения для записи на указанном сервере


Добавляет элемент с новым ключом

  • « Memcached
  • Memcached::addByKey »
  • PHP Manual
  • Memcached
  • Добавляет элемент с новым ключом

Memcached::add

(PECL memcached >= 0.1.0)

Memcached::add — Добавляет элемент с новым ключом

Описание

public Memcached::add ( string $key , mixed $value [, int $expiration ] ) : bool

Метод Memcached::add() похож на Memcached::set(), но операция добавления завершится ошибкой, если ключ key уже существует на сервере.

Список параметров

key

Ключ, под которым сохраняется значение.

value

Сохраняемое значение.

expiration

Время хранения объекта, по умолчанию равно 0. Для более подробной информации смотрите Время хранения объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTSTORED, если переданный ключ уже существует.

Смотрите также

  • Memcached::addByKey() - Добавляет новый элемент на заданный сервер
  • Memcached::set() - Сохраняет запись
  • Memcached::replace() - Заменяет существующую запись с указанным ключом


Добавляет новый элемент на заданный сервер

  • « Memcached::add
  • Memcached::addServer »
  • PHP Manual
  • Memcached
  • Добавляет новый элемент на заданный сервер

Memcached::addByKey

(PECL memcached >= 0.1.0)

Memcached::addByKey — Добавляет новый элемент на заданный сервер

Описание

public Memcached::addByKey ( string $server_key , string $key , mixed $value [, int $expiration ] ) : bool

Memcached::addByKey() работает аналогично Memcached::add(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом key на конкретный сервер. Это полезно когда необходимо держать несколько связанных значений на конкретном сервере.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ, под которым сохраняется значение.

value

Сохраняемое значение.

expiration

Время хранения объекта, по умолчанию равно 0. Для более подробной информации смотрите Время хранения объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTSTORED, если переданный ключ уже существует.

Смотрите также

  • Memcached::add() - Добавляет элемент с новым ключом
  • Memcached::set() - Сохраняет запись
  • Memcached::replace() - Заменяет существующую запись с указанным ключом


Добавляет сервер в пул

  • « Memcached::addByKey
  • Memcached::addServers »
  • PHP Manual
  • Memcached
  • Добавляет сервер в пул

Memcached::addServer

(PECL memcached >= 0.1.0)

Memcached::addServer — Добавляет сервер в пул

Описание

public Memcached::addServer ( string $host , int $port [, int $weight = 0 ] ) : bool

Memcached::addServer() добавляет указанный сервер в пул. При этом соединение установлено не будет, но если вы используете настройку консистентного распределения ключей (с помощью Memcached::DISTRIBUTION_CONSISTENT или Memcached::OPT_LIBKETAMA_COMPATIBLE), некоторые внутренние структуры данных будут обновлены. Таким образом, если вам необходимо добавить несколько серверов, предпочтительнее использовать Memcached::addServers() т.к. обновление данных происходит однократно.

Один и тот же сервер может встречаться в пуле несколько раз, потому что никаких проверок на дублирование вхождений нет. Но это не целесообразно; вместо этого нужно использовать параметр weight для повышения приоритета данного сервера.

Список параметров

host

Имя хоста memcache сервера. Если имя хоста будет недействительным, функции, работающие с данными установят результирующий код Memcached::RES_HOST_LOOKUP_FAILURE. В версии 2.0.0b1, данный параметр может также определять путь до unix сокет файла, например, /path/to/memcached.sock для использования сокета домена UNIX (UDS), в данном случае port должен быть установлен в 0.

port

Порт на котором работает сервер memcache. Обычно это 11211 порт. В версии 2.0.0b1, установите этот параметр в 0, при использовании сокета домена UNIX (UDS).

weight

Весовой коэффициент для заданного сервера по отношению к общему весу всех серверов в пуле. Данная настройка управляет вероятностью сервера быть выбранным для использования. Она используется только в случае консистентного распределения и обычно соответствует количеству памяти, доступному для memcache на сервере.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcached::addServer()

<?php
$m = new Memcached();

/* Добавляет 2 сервера в пул, вероятность быть выбранным
   у второго сервера в 2 раза выше. */
$m->addServer('mem1.domain.com', 11211, 33);
$m->addServer('mem2.domain.com', 11211, 67);
?>

Смотрите также

  • Memcached::addServers() - Добавляет несколько серверов в пул
  • Memcached::resetServerList() - Очищает список серверов


Добавляет несколько серверов в пул

  • « Memcached::addServer
  • Memcached::append »
  • PHP Manual
  • Memcached
  • Добавляет несколько серверов в пул

Memcached::addServers

(PECL memcached >= 0.1.1)

Memcached::addServers — Добавляет несколько серверов в пул

Описание

public Memcached::addServers ( array $servers ) : bool

Memcached::addServers() добавляет сервера, указанные в массиве servers, в общий пул. Каждый элемент массива servers представляет собой массив, содержащий имя хоста, порт и, необязательно, весовой коэффициент сервера. Соединение с серверами при этом не устанавливается.

Один и тот же сервер может встречаться в пуле несколько раз, потому что никаких проверок на дублирование вхождений нет. Но это не целесообразно; вместо этого нужно использовать параметр weight для повышения приоритета данного сервера.

Список параметров

array

Массив с серверами для добавления в пул.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcached::addServers()

<?php
$m = new Memcached();

$servers = array(
    array('mem1.domain.com', 11211, 33),
    array('mem2.domain.com', 11211, 67)
);
$m->addServers($servers);
?>

Смотрите также

  • Memcached::addServer() - Добавляет сервер в пул
  • Memcached::resetServerList() - Очищает список серверов


Добавляет данные к существующей записи

  • « Memcached::addServers
  • Memcached::appendByKey »
  • PHP Manual
  • Memcached
  • Добавляет данные к существующей записи

Memcached::append

(PECL memcached >= 0.1.0)

Memcached::append — Добавляет данные к существующей записи

Описание

public Memcached::append ( string $key , string $value ) : bool

Memcached::append() добавляет переданную в value строку к существующей записи. Причина того, что value приводится к строке в том, что добавление смешанных типов не определено.

Замечание:

Если параметр Memcached::OPT_COMPRESSION установлен, то операция будет завершена ошибкой и будет выведено предупреждение, потому что добавление сжатых данных к записи, которая уже сжата, невозможно.

Список параметров

key

Ключ, под которым сохраняется значение.

value

Строка для добавления.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTSTORED, если переданный ключ не существует.

Примеры

Пример #1 Пример использования Memcached::append()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->setOption(Memcached::OPT_COMPRESSION, false);

$m->set('foo', 'abc');
$m->append('foo', 'def');
var_dump($m->get('foo'));
?>

Результат выполнения данного примера:

string(6) "abcdef"

Смотрите также

  • Memcached::appendByKey() - Добавляет данные к существующей записи на заданном сервере
  • Memcached::prepend() - Добавляет данные в начало существующей записи


Добавляет данные к существующей записи на заданном сервере

  • « Memcached::append
  • Memcached::cas »
  • PHP Manual
  • Memcached
  • Добавляет данные к существующей записи на заданном сервере

Memcached::appendByKey

(PECL memcached >= 0.1.0)

Memcached::appendByKey — Добавляет данные к существующей записи на заданном сервере

Описание

public Memcached::appendByKey ( string $server_key , string $key , string $value ) : bool

Memcached::appendByKey() работает аналогично методу Memcached::append(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки key на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ, под которым сохраняется значение.

value

Строка для добавления в конец существующей записи.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTSTORED если переданный ключ не существует.

Смотрите также

  • Memcached::append() - Добавляет данные к существующей записи
  • Memcached::prepend() - Добавляет данные в начало существующей записи


Сравнивает и устанавливает значение для записи

  • « Memcached::appendByKey
  • Memcached::casByKey »
  • PHP Manual
  • Memcached
  • Сравнивает и устанавливает значение для записи

Memcached::cas

(PECL memcached >= 0.1.0)

Memcached::cas — Сравнивает и устанавливает значение для записи

Описание

public Memcached::cas ( float $cas_token , string $key , mixed $value [, int $expiration ] ) : bool

Memcached::cas() осуществляет проверку и установку значения записи, новое значение будет сохранено, только если другие клиенты не обновили его со времени последнего обращения этим клиентом. Эта проверка осуществляется с помощью параметра cas_token, который представляет собой 64-битное значение присвоенное существующей записи сервером memcache. Обратитесь к документации метода Memcached::get*(), который используется для получения этого токена. Обратите внимание, что токен представлен в виде числа двойной точности из-за ограничений диапазона значений целочисленного типа в PHP.

Список параметров

cas_token

Уникальное значение, связанное с существующей записью. Генерируется сервером memcache.

key

Ключ, под которым сохраняется значение.

value

Сохраняемое значение.

expiration

Время хранения объекта, по умолчанию равно 0. Для более подробной информации смотрите Время хранения объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_DATA_EXISTS если запись которую вы пытаетесь сохранить была изменена с момента последнего обращения.

Примеры

Пример #1 Пример использования Memcached::cas()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

do {
    /* fetch IP list and its token */
    $ips = $m->get('ip_block', null, $cas);
    /* if list doesn't exist yet, create it and do
       an atomic add which will fail if someone else already added it */
    if ($m->getResultCode() == Memcached::RES_NOTFOUND) {
        $ips = array($_SERVER['REMOTE_ADDR']);
        $m->add('ip_block', $ips);
    /* otherwise, add IP to the list and store via compare-and-swap
       with the token, which will fail if someone else updated the list */
    } else {
        $ips[] = $_SERVER['REMOTE_ADDR'];
        $m->cas($cas, 'ip_block', $ips);
    }
} while ($m->getResultCode() != Memcached::RES_SUCCESS);

?>

Смотрите также

  • Memcached::casByKey() - Сравнивает и устанавливает значение для записи на конкретном сервере


Сравнивает и устанавливает значение для записи на конкретном сервере

  • « Memcached::cas
  • Memcached::__construct »
  • PHP Manual
  • Memcached
  • Сравнивает и устанавливает значение для записи на конкретном сервере

Memcached::casByKey

(PECL memcached >= 0.1.0)

Memcached::casByKey — Сравнивает и устанавливает значение для записи на конкретном сервере

Описание

public Memcached::casByKey ( float $cas_token , string $server_key , string $key , mixed $value [, int $expiration ] ) : bool

Memcached::casByKey() работает аналогично методу Memcached::cas(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки key на конкретный сервер. Это полезно когда необходимо держать несколько связанных значений на конкретном сервере.

Список параметров

cas_token

Уникальное значение, связанное с существующей записью. Генерируется сервером memcache.

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ, под которым сохраняется значение.

value

Сохраняемое значение.

expiration

Время хранения объекта, по умолчанию равно 0. Для более подробной информации смотрите Время хранения объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_DATA_EXISTS если запись которую вы пытаетесь сохранить была изменена с момента последнего обращения.

Смотрите также

  • Memcached::cas() - Сравнивает и устанавливает значение для записи


Создает экземпляр класса Memcached

  • « Memcached::casByKey
  • Memcached::decrement »
  • PHP Manual
  • Memcached
  • Создает экземпляр класса Memcached

Memcached::__construct

(PECL memcached >= 0.1.0)

Memcached::__construct — Создает экземпляр класса Memcached

Описание

public Memcached::__construct ([ string $persistent_id ] )

Создает экземпляр класса Memcached, осуществляющий соединение с сервером memcache.

Список параметров

persistent_id

По умолчанию экземпляр класса Memcached уничтожается в конце запроса. Для создания экземпляра, который сохраняется между запросами, необходимо использовать persistent_id, чтобы указать уникальный идентификатор для экземпляра. Все экземпляры класса, созданные с использованием одного и тот же идентификатора persistent_id будут использовать общее соединение.

Возвращаемые значения

Memcached объект.

Примеры

Пример #1 Создание экземпляра класса Memcached

<?php
/* Создает обычный экземпляр класса */
$m = new Memcached();
echo get_class($m);

/* Создает устойчивый экземпляр класса */
$m2 = new Memcached('story_pool');
$m3 = new Memcached('story_pool');

/* Теперь объекты $m2 и $m3 используют общее соединение */
?>


Уменьшает числовое значение записи

  • « Memcached::__construct
  • Memcached::decrementByKey »
  • PHP Manual
  • Memcached
  • Уменьшает числовое значение записи

Memcached::decrement

(PECL memcached >= 0.1.0)

Memcached::decrement — Уменьшает числовое значение записи

Описание

public Memcached::decrement ( string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] ) : int

Memcached::decrement() уменьшает числовое значение записи на величину, указанную в offset. Если значение записи не является числовым, то будет возвращена ошибка. Если функция уменьшит значение записи меньше нуля, будет установлено нулевое значение. Memcached::decrement() установит записи значение параметра initial_value если переданного ключа не существует.

Список параметров

key

Ключ уменьшаемой записи.

offset

Величина на которую уменьшается значение записи.

initial_value

Инициирующее значение, устанавливаемое записи, если ключа не существует.

expiry

Время, когда срок действия записи истекает.

Возвращаемые значения

Возвращает новое значение записи в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcached::decrement()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('counter', 5);
$n = $m->decrement('counter');
var_dump($n);

$n = $m->decrement('counter', 10);
var_dump($n);

var_dump($m->get('counter'));

$m->set('counter', 'abc');
$n = $m->increment('counter');
// Завершится неудачей т.к. значение записи не является числовым
var_dump($n);
?>

Результат выполнения данного примера:

int(4)
int(0)
int(0)
bool(false)

Смотрите также

  • Memcached::increment() - Увеличивает числовое значение записи
  • Memcached::incrementByKey() - Увеличивает числовое значение записи, хранимой на указанном сервере
  • Memcached::decrementByKey() - Уменьшает числовое значение записи, хранящееся на определенном сервере


Уменьшает числовое значение записи, хранящееся на определенном сервере

  • « Memcached::decrement
  • Memcached::delete »
  • PHP Manual
  • Memcached
  • Уменьшает числовое значение записи, хранящееся на определенном сервере

Memcached::decrementByKey

(PECL memcached >= 2.0.0)

Memcached::decrementByKey — Уменьшает числовое значение записи, хранящееся на определенном сервере

Описание

public Memcached::decrementByKey ( string $server_key , string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] ) : int

Memcached::decrementByKey() уменьшает числовое значение записи на величину заданную в offset. Если значение записи не является числовым, то будет возвращена ошибка. Если функция уменьшит значение записи меньше нуля, будет установлено нулевое значение. Memcached::decrementByKey() установит записи значение параметра initial_value если переданного ключа не существует.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ уменьшаемой записи.

offset

Величина на которую уменьшается значение записи.

initial_value

Инициирующее значение, устанавливаемое записи, если ключа не существует.

expiry

Время, когда срок действия записи истекает.

Возвращаемые значения

Возвращает новое значение записи в случае успеха или FALSE в случае возникновения ошибки.

Смотрите также

  • Memcached::decrement() - Уменьшает числовое значение записи
  • Memcached::increment() - Увеличивает числовое значение записи
  • Memcached::incrementByKey() - Увеличивает числовое значение записи, хранимой на указанном сервере


Удаляет запись

  • « Memcached::decrementByKey
  • Memcached::deleteByKey »
  • PHP Manual
  • Memcached
  • Удаляет запись

Memcached::delete

(PECL memcached >= 0.1.0)

Memcached::delete — Удаляет запись

Описание

public Memcached::delete ( string $key [, int $time = 0 ] ) : bool

Memcached::delete() удаляет запись с ключом key с сервера. Параметр time задает период времени в секундах в течение которого (или временную метку в формате Unix до которой) сервер будет отклонять add и replace запросы клиента по данному ключу. В течение этого времени, запись помещается в очередь на удаление, что означает невозможность получения значения с помощью команды get, команды add и replace по данному ключу также будут завершены неудачей (однако команда set будет успешно выполнена). По истечении этого времени, запись будет окончательно удалена из памяти сервера. По умолчанию параметр time установлен в 0 (что означает немедленное удаление записи и последующие операции с данной записью будут успешно выполнены).

Список параметров

key

Ключ удаляемой записи.

time

Время к течение которого сервер ожидает удаления записи.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTFOUND если заданный ключ не существует.

Примеры

Пример #1 Пример использования Memcached::delete()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->delete('key1');
?>

Смотрите также

  • Memcached::deleteByKey() - Удаляет запись с указанного сервера
  • Memcached::deleteMulti() - Удаляет несколько записей


Удаляет запись с указанного сервера

  • « Memcached::delete
  • Memcached::deleteMulti »
  • PHP Manual
  • Memcached
  • Удаляет запись с указанного сервера

Memcached::deleteByKey

(PECL memcached >= 0.1.0)

Memcached::deleteByKey — Удаляет запись с указанного сервера

Описание

public Memcached::deleteByKey ( string $server_key , string $key [, int $time = 0 ] ) : bool

Memcached::deleteByKey() работает аналогично Memcached::delete(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом key на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ удаляемой записи.

time

Период времени, в течение которого сервер ожидает удаления записи.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTFOUND если указанный ключ не существует.

Смотрите также

  • Memcached::delete() - Удаляет запись
  • Memcached::deleteMulti() - Удаляет несколько записей
  • Memcached::deleteMultiByKey() - Удаляет несколько записей с указанного сервера


Удаляет несколько записей

  • « Memcached::deleteByKey
  • Memcached::deleteMultiByKey »
  • PHP Manual
  • Memcached
  • Удаляет несколько записей

Memcached::deleteMulti

(PECL memcached >= 2.0.0)

Memcached::deleteMulti — Удаляет несколько записей

Описание

public Memcached::deleteMulti ( array $keys [, int $time = 0 ] ) : array

Memcached::deleteMulti() удаляет записи, переданные в массиве keys, с сервера. Параметр time задает период времени в секундах в течение которого (или временную метку в формате Unix до которой) сервер будет отклонять add и replace запросы клиента по данному ключу. В течение этого времени, запись помещается в очередь на удаление, что означает невозможность получения значения с помощью команды get, команды add и replace по данному ключу также будут завершены неудачей (однако команда set будет успешно выполнена). По истечении этого времени, запись будет окончательно удалена из памяти сервера. По умолчанию параметр time установлен в 0 (что означает немедленное удаление записи и последующие операции с данной записью будут успешно выполнены).

Список параметров

keys

Ключ удаляемой записи.

time

Время к течение которого сервер ожидает удаления записи.

Возвращаемые значения

Возвращает массив с индексами keys и значениями обозначающими удачно или нет завершилась операция. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTFOUND если заданный ключ не существует.

Смотрите также

  • Memcached::delete() - Удаляет запись
  • Memcached::deleteByKey() - Удаляет запись с указанного сервера
  • Memcached::deleteMultiByKey() - Удаляет несколько записей с указанного сервера


Удаляет несколько записей с указанного сервера

  • « Memcached::deleteMulti
  • Memcached::fetch »
  • PHP Manual
  • Memcached
  • Удаляет несколько записей с указанного сервера

Memcached::deleteMultiByKey

(PECL memcached >= 2.0.0)

Memcached::deleteMultiByKey — Удаляет несколько записей с указанного сервера

Описание

public Memcached::deleteMultiByKey ( string $server_key , array $keys [, int $time = 0 ] ) : bool

Memcached::deleteMultiByKey() работает аналогично Memcached::deleteMulti(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом keys на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

keys

Ключ удаляемой записи.

time

Время к течение которого сервер ожидает удаления записи.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTFOUND если заданный ключ не существует.

Смотрите также

  • Memcached::delete() - Удаляет запись
  • Memcached::deleteByKey() - Удаляет запись с указанного сервера
  • Memcached::deleteMulti() - Удаляет несколько записей


Извлекает следующий результат

  • « Memcached::deleteMultiByKey
  • Memcached::fetchAll »
  • PHP Manual
  • Memcached
  • Извлекает следующий результат

Memcached::fetch

(PECL memcached >= 0.1.0)

Memcached::fetch — Извлекает следующий результат

Описание

public Memcached::fetch ( void ) : array

Memcached::fetch() получает следующий результат последнего запроса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает следующий результат запроса или FALSE в противном случае. Метод Memcached::getResultCode() возвращает Memcached::RES_END если результирующая выборка закончилась.

Примеры

Пример #1 Пример использования Memcached::fetch()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));

$m->getDelayed(array('int', 'array'), true);
while ($result = $m->fetch()) {
    var_dump($result);
}
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["key"]=>
  string(3) "int"
  "value"]=>
  int(99)
  ["cas"]=>
  float(2363)
}
array(3) {
  ["key"]=>
  string(5) "array"
  ["value"]=>
  array(2) {
    [0]=>
    int(11)
    [1]=>
    int(12)
  }
  ["cas"]=>
  float(2365)
}

Смотрите также

  • Memcached::fetchAll() - Извлекает все полученные записи
  • Memcached::getDelayed() - Запрашивает несколько записей


Извлекает все полученные записи

  • « Memcached::fetch
  • Memcached::flush »
  • PHP Manual
  • Memcached
  • Извлекает все полученные записи

Memcached::fetchAll

(PECL memcached >= 0.1.0)

Memcached::fetchAll — Извлекает все полученные записи

Описание

public Memcached::fetchAll ( void ) : array

Memcached::fetchAll() извлекает все полученные записи последнего запроса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает результат запроса или FALSE в случае возникновения ошибки. Используйте при необходимости Memcached::getResultCode().

Примеры

Пример #1 Пример использования Memcached::getDelayed()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));

$m->getDelayed(array('int', 'array'), true);
var_dump($m->fetchAll());
?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  array(3) {
    ["key"]=>
    string(3) "int"
    ["value"]=>
    int(99)
    ["cas"]=>
    float(2363)
  }
  [1]=>
  array(3) {
    ["key"]=>
    string(5) "array"
    ["value"]=>
    array(2) {
      [0]=>
      int(11)
      [1]=>
      int(12)
    }
    ["cas"]=>
    float(2365)
  }
}

Смотрите также

  • Memcached::fetch() - Извлекает следующий результат
  • Memcached::getDelayed() - Запрашивает несколько записей


Аннулирует все записи в кеше

  • « Memcached::fetchAll
  • Memcached::get »
  • PHP Manual
  • Memcached
  • Аннулирует все записи в кеше

Memcached::flush

(PECL memcached >= 0.1.0)

Memcached::flush — Аннулирует все записи в кеше

Описание

public Memcached::flush ([ int $delay = 0 ] ) : bool

Memcached::flush() аннулирует все существующие записи в кеше незамедлительно (по умолчанию) или по истечении периода времени, указанного в delay. После инвалидации никакие записи не будут возвращены в ответ на запросы команд получения данных (если записи небыли сохранены под теми же ключами после вызова Memcached::flush()). В действительности, инвалидация кеша не освобождает всю память, занимаемую записями; это происходит постепенно по мере заполнения новыми записями.

Список параметров

delay

Величина задержки в секундах перед аннулированием записей.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Используйте при необходимости Memcached::getResultCode().

Примеры

Пример #1 Пример использования Memcached::flush()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

/* Очищает все записи через 10 секунд */
$m->flush(10);
?>


Получение записи

  • « Memcached::flush
  • Memcached::getAllKeys »
  • PHP Manual
  • Memcached
  • Получение записи

Memcached::get

(PECL memcached >= 0.1.0)

Memcached::get — Получение записи

Описание

public Memcached::get ( string $key [, callable $cache_cb [, int $$flags ]] ) : mixed

Memcached::get() возвращает запись, которая ранее была сохранена под ключом key. Если элемент не найден и для параметра flags задано Memcached::GET_EXTENDED, то она также возвратит значение токена CAS для этой записи. Обратитесь к документации по Memcached::cas() для получения информации об использовании CAS токена. Чтение при помощи кэширующих callback-функций может быть использовано с помощью параметра cache_cb.

Список параметров

key

Ключ получаемой записи.

cache_cb

Функция обратного вызова для кэшируемого чтения или NULL.

flags

Флаги, определяющие возвращаемый результат. Если задана константа Memcached::GET_EXTENDED, функция также возвратит токен CAS.

Возвращаемые значения

Возвращает значение хранимое в кеше или FALSE в противном случае. Если в flags установлена константа, Memcached::GET_EXTENDED, возвращается массив, содержащий значение и токен CAS вместо единственного значения. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTFOUND если переданный ключ не существует.

Примеры

Пример #1 Пример использования Memcached::get() #1

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('foo', 100);
var_dump($m->get('foo'));
?>

Результат выполнения данного примера:

int(100)

Пример #2 Пример использования Memcached::get() #2

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

if (!($ip = $m->get('ip_block'))) {
    if ($m->getResultCode() == Memcached::RES_NOTFOUND) {
        $ip = array();
        $m->set('ip_block', $ip);
    } else {
        /* log error */
        /* ...       */
    }
}
?>

Список изменений

Версия | Описание
3.0.0 | Удален параметр &cas_token. Вместо недо добавлен параметр flags, в который можно передать значение Memcached::GET_EXTENDED для того, чтобы был возвращен токен CAS.

Смотрите также

  • Memcached::getByKey() - Получает запись с определенного сервера
  • Memcached::getMulti() - Получает несколько записей
  • Memcached::getDelayed() - Запрашивает несколько записей


Получает все ключи, хранящиеся на серверах

  • « Memcached::get
  • Memcached::getByKey »
  • PHP Manual
  • Memcached
  • Получает все ключи, хранящиеся на серверах

Memcached::getAllKeys

(PECL memcached >= 2.0.0)

Memcached::getAllKeys — Получает все ключи, хранящиеся на серверах

Описание

public Memcached::getAllKeys ( void ) : array

Memcached::getAllKeys() отправляет запрос на каждый сервер и получает массив всех ключей, хранящихся на нем в данный момент. Это не атомарная операция, так что это не по-настоящему непротиворечивый снимок ключей в данный момент времени. Memcache не может гарантировать возврата всех ключей, вы также не можете полагаться на то, что все ключи были возвращены.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает список ключей, хранящихся на всех серверах в случае успеха или FALSE в случае возникновения ошибки.


Получает запись с определенного сервера

  • « Memcached::getAllKeys
  • Memcached::getDelayed »
  • PHP Manual
  • Memcached
  • Получает запись с определенного сервера

Memcached::getByKey

(PECL memcached >= 0.1.0)

Memcached::getByKey — Получает запись с определенного сервера

Описание

public Memcached::getByKey ( string $server_key , string $key [, callable $cache_cb [, int $flags ]] ) : mixed

Memcached::getByKey() работает аналогично Memcached::get(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом key на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ получаемой записи.

cache_cb

Callback-функция для кэшируемого чтения или NULL

flags

Флаги определяющие возвращаемый результат. Если содержит Memcached::GET_EXTENDED, то будет возвращен токен CAS.

Возвращаемые значения

Возвращает значение хранимое в кеше или FALSE в противном случае. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTFOUND если переданный ключ не существует.

Список изменений

Версия | Описание
3.0.0 | Удален параметр &cas_token. Вместо недо добавлен параметр flags, в который можно передать значение Memcached::GET_EXTENDED для того, чтобы был возвращен токен CAS.

Смотрите также

  • Memcached::get() - Получение записи
  • Memcached::getMulti() - Получает несколько записей
  • Memcached::getDelayed() - Запрашивает несколько записей


Запрашивает несколько записей

  • « Memcached::getByKey
  • Memcached::getDelayedByKey »
  • PHP Manual
  • Memcached
  • Запрашивает несколько записей

Memcached::getDelayed

(PECL memcached >= 0.1.0)

Memcached::getDelayed — Запрашивает несколько записей

Описание

public Memcached::getDelayed ( array $keys [, bool $with_cas [, callable $value_cb ]] ) : bool

Memcached::getDelayed() запрашивает у memcache несколько записей, ключи которых переданы в массиве keys. Данный метод не дожидается ответа и возвращает значение сразу. Когда вы будете готовы получить записи, сделайте вызов метода Memcached::fetch() или Memcached::fetchAll(). Если параметр with_cas установлен в true, то CAS токены также будут запрошены.

Вместо получения результатов в явном виде, вы можете указать callback-функцию для получения результата с помощью параметра value_cb.

Список параметров

keys

Массив с ключами для запроса записей.

with_cas

Запрашивать ли CAS токены записей вместе со значениями.

value_cb

Callback-Функция, возвращающая результат, или NULL.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Используйте при необходимости Memcached::getResultCode().

Примеры

Пример #1 Пример использования Memcached::getDelayed()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));

$m->getDelayed(array('int', 'array'), true);
var_dump($m->fetchAll());
?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  array(3) {
    ["key"]=>
    string(3) "int"
    ["value"]=>
    int(99)
    ["cas"]=>
    float(2363)
  }
  [1]=>
  array(3) {
    ["key"]=>
    string(5) "array"
    ["value"]=>
    array(2) {
      [0]=>
      int(11)
      [1]=>
      int(12)
    }
    ["cas"]=>
    float(2365)
  }
}

Смотрите также

  • Memcached::getDelayedByKey() - Запрашивает несколько записей с указанного сервера
  • Memcached::fetch() - Извлекает следующий результат
  • Memcached::fetchAll() - Извлекает все полученные записи


Запрашивает несколько записей с указанного сервера

  • « Memcached::getDelayed
  • Memcached::getMulti »
  • PHP Manual
  • Memcached
  • Запрашивает несколько записей с указанного сервера

Memcached::getDelayedByKey

(PECL memcached >= 0.1.0)

Memcached::getDelayedByKey — Запрашивает несколько записей с указанного сервера

Описание

public Memcached::getDelayedByKey ( string $server_key , array $keys [, bool $with_cas [, callable $value_cb ]] ) : bool

Memcached::getDelayedByKey() работает аналогично Memcached::getDelayed(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом key на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

keys

Массив с ключами для запроса записей.

with_cas

Запрашивать ли CAS токены записей вместе со значениями.

value_cb

Callback-Функция, возвращающая результат, или NULL.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Используйте при необходимости Memcached::getResultCode().

Смотрите также

  • Memcached::getDelayed() - Запрашивает несколько записей
  • Memcached::fetch() - Извлекает следующий результат
  • Memcached::fetchAll() - Извлекает все полученные записи


Получает несколько записей

  • « Memcached::getDelayedByKey
  • Memcached::getMultiByKey »
  • PHP Manual
  • Memcached
  • Получает несколько записей

Memcached::getMulti

(PECL memcached >= 0.1.0)

Memcached::getMulti — Получает несколько записей

Описание

public Memcached::getMulti ( array $keys [, int $flags ] ) : mixed

Memcached::getMulti() работает аналогично методу Memcached::get(), но вместо одной записи получает несколько, ключи которых были переданы в массиве keys.

Замечание:

До версии 3.0 использовался второй аргумент &cas_tokens. Он заполнялся значениями токена CAS для найденых записей. Параметр &cas_tokens был удален в версии 3.0. Он был заменен новым флагом Memcached::GET_EXTENDED, который указывается в параметре flags.

Параметр flags может использоваться для указания дополнительных настроек для метода Memcached::getMulti(). На данный момент поддерживаются, только следующие настройки: Memcached::GET_PRESERVE_ORDER гарантирует что записи будут возвращены в том же порядке, что и были запрошены. Memcached::GET_EXTENDED ведет к тому, что также будут извлечены токены CAS.

Список параметров

keys

Массив ключей для запроса.

flags

Флаги для операции получения записей.

Возвращаемые значения

Возвращает массив найденных записей или FALSE в случае возникновения ошибки. Используйте при необходимости Memcached::getResultCode().

Примеры

Пример #1 Пример использования Memcached::getMulti() версии 3

<?php
// Работает с версией расширения 3

$m = new Memcached();
$m->addServer('localhost', 11211);

$items = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$m->setMulti($items);
$result = $m->getMulti(array('key1', 'key3', 'badkey'));
var_dump($result);
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key3"]=>
  string(6) "value3"
}

Пример #2 Пример использования Memcached::getMulti() версий 1 и 2

<?php
// Работает с версиями расширения 1 и 2

$m = new Memcached();
$m->addServer('localhost', 11211);

$items = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$m->setMulti($items);
$result = $m->getMulti(array('key1', 'key3', 'badkey'), $cas);
var_dump($result, $cas);
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key3"]=>
  string(6) "value3"
}
array(2) {
  ["key1"]=>
  float(2360)
  ["key3"]=>
  float(2362)
}

Пример #3 Пример использования Memcached::GET_PRESERVE_ORDER с версией 3

<?php
// Работает с версией расширения 3

$m = new Memcached();
$m->addServer('localhost', 11211);

$data = array(
    'foo' => 'foo-data',
    'bar' => 'bar-data',
    'baz' => 'baz-data',
    'lol' => 'lol-data',
    'kek' => 'kek-data',
);

$m->setMulti($data, 3600);

$keys = array_keys($data);
$keys[] = 'zoo';
$got = $m->getMulti($keys, Memcached::GET_PRESERVE_ORDER);

foreach ($got as $k => $v) {
    echo "$k $v\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

foo foo-data
bar bar-data
baz baz-data
lol lol-data
kek kek-data
zoo

Пример #4 Пример использования Memcached::GET_PRESERVE_ORDER с версией 1 и 2

<?php
// Работает с версиями расширения 1 и 2

$m = new Memcached();
$m->addServer('localhost', 11211);

$data = array(
    'foo' => 'foo-data',
    'bar' => 'bar-data',
    'baz' => 'baz-data',
    'lol' => 'lol-data',
    'kek' => 'kek-data',
);

$m->setMulti($data, 3600);

$null = null;
$keys = array_keys($data);
$keys[] = 'zoo';
$got = $m->getMulti($keys, $null, Memcached::GET_PRESERVE_ORDER);

foreach ($got as $k => $v) {
    echo "$k $v\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

foo foo-data
bar bar-data
baz baz-data
lol lol-data
kek kek-data
zoo

Список изменений

Версия | Описание
3.0.0 | Удален параметр &cas_tokens. Добавлена константа Memcached::GET_EXTENDED для возврата токенов CAS.

Смотрите также

  • Memcached::getMultiByKey() - Получает несколько записей с указанного сервера
  • Memcached::get() - Получение записи
  • Memcached::getDelayed() - Запрашивает несколько записей


Получает несколько записей с указанного сервера

  • « Memcached::getMulti
  • Memcached::getOption »
  • PHP Manual
  • Memcached
  • Получает несколько записей с указанного сервера

Memcached::getMultiByKey

(PECL memcached >= 0.1.0)

Memcached::getMultiByKey — Получает несколько записей с указанного сервера

Описание

public Memcached::getMultiByKey ( string $server_key , array $keys [, int $flags ] ) : array

Memcached::getMultiByKey() работает аналогично Memcached::getMulti(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом key на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

keys

Массив с ключами для получения записей.

flags

Флаги для операции получения записей.

Возвращаемые значения

Возвращает массив найденных записей или FALSE в случае возникновения ошибки. Используйте при необходимости Memcached::getResultCode().

Список изменений

Версия | Описание
3.0.0 | Удален параметр &cas_tokens. Добавлена константа Memcached::GET_EXTENDED для возврата токенов CAS.

Смотрите также

  • Memcached::getMulti() - Получает несколько записей
  • Memcached::get() - Получение записи
  • Memcached::getDelayed() - Запрашивает несколько записей


Получает значение Memcached параметра

  • « Memcached::getMultiByKey
  • Memcached::getResultCode »
  • PHP Manual
  • Memcached
  • Получает значение Memcached параметра

Memcached::getOption

(PECL memcached >= 0.1.0)

Memcached::getOption — Получает значение Memcached параметра

Описание

public Memcached::getOption ( int $option ) : mixed

Данный метод возвращает значение Memcached параметра, указанного в option. Некоторые параметры соответствуют тем, что определены в libmemcached, а некоторые являются специфическими для расширения. Обратитесь к разделу Memcached константы для получения дополнительной информации.

Список параметров

option

Одна из Memcached::OPT_* констант.

Возвращаемые значения

Возвращает значение запрашиваемого параметра, или FALSE в случае ошибки.

Примеры

Пример #1 Получает значение Memcached параметра

<?php
$m = new Memcached();
var_dump($m->getOption(Memcached::OPT_COMPRESSION));
var_dump($m->getOption(Memcached::OPT_POLL_TIMEOUT));
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
int(1000)

Смотрите также

  • Memcached::getOption()
  • Memcached::setOption() - Устанавливает значение параметра для Memcached
  • Memcached Constants


Возвращает результирующий код последней выполненной операции

  • « Memcached::getOption
  • Memcached::getResultMessage »
  • PHP Manual
  • Memcached
  • Возвращает результирующий код последней выполненной операции

Memcached::getResultCode

(PECL memcached >= 0.1.0)

Memcached::getResultCode — Возвращает результирующий код последней выполненной операции

Описание

public Memcached::getResultCode ( void ) : int

Memcached::getResultCode() возвращает одну из констант Memcached::RES_*, являющуюся результирующим кодом выполнения последнего Memcached метода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Результирующий код последней выполненной операции Memcached.

Примеры

Пример #1 Пример использования Memcached::getResultCode()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->add('foo', 'bar');
if ($m->getResultCode() == Memcached::RES_NOTSTORED) {
    /* ... */
}
?>


Возвращает сообщение, описывающее результат выполнения последней операции

  • « Memcached::getResultCode
  • Memcached::getServerByKey »
  • PHP Manual
  • Memcached
  • Возвращает сообщение, описывающее результат выполнения последней операции

Memcached::getResultMessage

(PECL memcached >= 1.0.0)

Memcached::getResultMessage — Возвращает сообщение, описывающее результат выполнения последней операции

Описание

public Memcached::getResultMessage ( void ) : string

Memcached::getResultMessage() возвращает строку, описывающую результирующий код выполнения последнего Memcached метода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сообщение, описывающее результат выполнения последней Memcached операции.

Примеры

Пример #1 Пример использования Memcached::getResultMessage()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->add('foo', 'bar'); // первое добавление успешно выполнится
$m->add('foo', 'bar');
echo $m->getResultMessage(),"\n";
?>

Результат выполнения данного примера:

NOT STORED


Получает информацию о сервере по ключу

  • « Memcached::getResultMessage
  • Memcached::getServerList »
  • PHP Manual
  • Memcached
  • Получает информацию о сервере по ключу

Memcached::getServerByKey

(PECL memcached >= 0.1.0)

Memcached::getServerByKey — Получает информацию о сервере по ключу

Описание

public Memcached::getServerByKey ( string $server_key ) : array

Memcached::getServerByKey() возвращает информацию о сервере, который может быть выбран с помощью специального параметра server_key, который используется в Memcached::*ByKey() функциях.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

Возвращаемые значения

Возвращает массив, содержащий следующие ключи: host, port, и weight в случае успеха или FALSE в случае неудачи. Используйте при необходимости Memcached::getResultCode().

Примеры

Пример #1 Пример использования Memcached::getServerByKey()

<?php
$m = new Memcached();
$m->addServers(array(
    array('mem1.domain.com', 11211, 40),
    array('mem2.domain.com', 11211, 40),
    array('mem3.domain.com', 11211, 20),
));

$m->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);

var_dump($m->getServerByKey('user'));
var_dump($m->getServerByKey('log'));
var_dump($m->getServerByKey('ip'));
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["host"]=>
  string(15) "mem3.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(20)
}
array(3) {
  ["host"]=>
  string(15) "mem2.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(40)
}
array(3) {
  ["host"]=>
  string(15) "mem2.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(40)
}


Получает список серверов в пуле

  • « Memcached::getServerByKey
  • Memcached::getStats »
  • PHP Manual
  • Memcached
  • Получает список серверов в пуле

Memcached::getServerList

(PECL memcached >= 0.1.0)

Memcached::getServerList — Получает список серверов в пуле

Описание

public Memcached::getServerList ( void ) : array

Memcached::getServerList() возвращает список всех серверов, которые находятся в пуле.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Список серверов в пуле.

Примеры

Пример #1 Пример использования Memcached::getServerList()

<?php
$m = new Memcached();
$m->addServers(array(
    array('mem1.domain.com', 11211, 20),
    array('mem2.domain.com', 11311, 80),
));
var_dump($m->getServerList());
?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  array(3) {
    ["host"]=>
    string(15) "mem1.domain.com"
    ["port"]=>
    int(11211)
    ["weight"]=>
    int(20)
  }
  [1]=>
  array(3) {
    ["host"]=>
    string(15) "mem2.domain.com"
    ["port"]=>
    int(11311)
    ["weight"]=>
    int(80)
  }
}


Получает статистику о серверах в пуле

  • « Memcached::getServerList
  • Memcached::getVersion »
  • PHP Manual
  • Memcached
  • Получает статистику о серверах в пуле

Memcached::getStats

(PECL memcached >= 0.1.0)

Memcached::getStats — Получает статистику о серверах в пуле

Описание

public Memcached::getStats ( void ) : array

Memcached::getStats() возвращает массив, содержащий статистику всех доступных memcache серверов. Ознакомьтесь также со спецификацией » memcache протокола для получения полной информации об этой статистике.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Список массивов со статистикой по каждому серверу, где каждый элемент- отдельный сервер.

Примеры

Пример #1 Пример использования Memcached::getStats()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

print_r($m->getStats());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [localhost:11211] => Array
        (
            [pid] => 4933
            [uptime] => 786123
            [threads] => 1
            [time] => 1233868010
            [pointer_size] => 32
            [rusage_user_seconds] => 0
            [rusage_user_microseconds] => 140000
            [rusage_system_seconds] => 23
            [rusage_system_microseconds] => 210000
            [curr_items] => 145
            [total_items] => 2374
            [limit_maxbytes] => 67108864
            [curr_connections] => 2
            [total_connections] => 151
            [connection_structures] => 3
            [bytes] => 20345
            [cmd_get] => 213343
            [cmd_set] => 2381
            [get_hits] => 204223
            [get_misses] => 9120
            [evictions] => 0
            [bytes_read] => 9092476
            [bytes_written] => 15420512
            [version] => 1.2.6
        )

)


Получает информацию о версии серверов в пуле

  • « Memcached::getStats
  • Memcached::increment »
  • PHP Manual
  • Memcached
  • Получает информацию о версии серверов в пуле

Memcached::getVersion

(PECL memcached >= 0.1.5)

Memcached::getVersion — Получает информацию о версии серверов в пуле

Описание

public Memcached::getVersion ( void ) : array

Memcached::getVersion() возвращает массив, содержащий информацию о версии каждого доступного memcache сервера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Список массивов с информацией о версии по каждому серверу, где каждый элемент- отдельный сервер.

Примеры

Пример #1 Пример использования Memcached::getVersion()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

print_r($m->getVersion());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [localhost:11211] => 1.2.6
)


Увеличивает числовое значение записи

  • « Memcached::getVersion
  • Memcached::incrementByKey »
  • PHP Manual
  • Memcached
  • Увеличивает числовое значение записи

Memcached::increment

(PECL memcached >= 0.1.0)

Memcached::increment — Увеличивает числовое значение записи

Описание

public Memcached::increment ( string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] ) : int

Memcached::increment() увеличивает числовое значение записи на величину, указанную в параметре offset. Если запись содержит не числовое значение, то будет возвращена ошибка. Метод Memcached::increment() установит записи значение, переданное в initial_value, если записи с указанным ключом не существует.

Список параметров

key

Ключ увеличиваемой записи.

offset

Величина на которую происходит увеличение значения записи.

initial_value

Инициирующее значение, которое будет установлено записи, если переданного ключа не существует.

expiry

Время, когда срок действия записи истекает.

Возвращаемые значения

Возвращает новое значение записи в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcached::increment()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('counter', 0);
$m->increment('counter');
$n = $m->increment('counter', 10);
var_dump($n);

$m->set('counter', 'abc');
$n = $m->increment('counter');
// Завершится неудачей т.к. значение записи не является числовым
var_dump($n);
?>

Результат выполнения данного примера:

int(11)
bool(false)

Смотрите также

  • Memcached::decrement() - Уменьшает числовое значение записи
  • Memcached::decrementByKey() - Уменьшает числовое значение записи, хранящееся на определенном сервере
  • Memcached::incrementByKey() - Увеличивает числовое значение записи, хранимой на указанном сервере


Увеличивает числовое значение записи, хранимой на указанном сервере

  • « Memcached::increment
  • Memcached::isPersistent »
  • PHP Manual
  • Memcached
  • Увеличивает числовое значение записи, хранимой на указанном сервере

Memcached::incrementByKey

(PECL memcached >= 2.0.0)

Memcached::incrementByKey — Увеличивает числовое значение записи, хранимой на указанном сервере

Описание

public Memcached::incrementByKey ( string $server_key , string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] ) : int

Memcached::incrementByKey() увеличивает числовое значение записи на величину, указанную в параметре offset. Если значение записи не является числовым, то будет возвращена ошибка. Memcached::incrementByKey() установит записи значение параметра initial_value если переданного ключа не существует.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ увеличиваемой записи

offset

Величина на которую происходит увеличение значения записи.

initial_value

Инициирующее значение, которое будет установлено записи, если переданного ключа не существует.

expiry

Время, когда срок действия записи истекает.

Возвращаемые значения

Возвращает новое значение записи в случае успеха или FALSE в случае возникновения ошибки.

Смотрите также

  • Memcached::decrement() - Уменьшает числовое значение записи
  • Memcached::decrementByKey() - Уменьшает числовое значение записи, хранящееся на определенном сервере
  • Memcached::increment() - Увеличивает числовое значение записи


Проверяет используется ли устойчивое соединение с сервером memcache

  • « Memcached::incrementByKey
  • Memcached::isPristine »
  • PHP Manual
  • Memcached
  • Проверяет используется ли устойчивое соединение с сервером memcache

Memcached::isPersistent

(PECL memcached >= 2.0.0)

Memcached::isPersistent — Проверяет используется ли устойчивое соединение с сервером memcache

Описание

public Memcached::isPersistent ( void ) : bool

Memcached::isPersistent() проверяет является ли соединение с серверами memcache устойчивым т.е. сохраняющимся между запросами.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true если экземпляр класса Memcache использует устойчивое соединение, и false в противном случае.

Смотрите также

  • Memcached::isPristine() - Проверяет создан ли уже экземпляр класса Memcached


Проверяет создан ли уже экземпляр класса Memcached

  • « Memcached::isPersistent
  • Memcached::prepend »
  • PHP Manual
  • Memcached
  • Проверяет создан ли уже экземпляр класса Memcached

Memcached::isPristine

(PECL memcached >= 2.0.0)

Memcached::isPristine — Проверяет создан ли уже экземпляр класса Memcached

Описание

public Memcached::isPristine ( void ) : bool

Memcached::isPristine() проверяет создан ли экземпляр класса Memcache

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true если экземпляр класса уже создан и false в противном случае.

Смотрите также

  • Memcached::isPersistent() - Проверяет используется ли устойчивое соединение с сервером memcache


Добавляет данные в начало существующей записи

  • « Memcached::isPristine
  • Memcached::prependByKey »
  • PHP Manual
  • Memcached
  • Добавляет данные в начало существующей записи

Memcached::prepend

(PECL memcached >= 0.1.0)

Memcached::prepend — Добавляет данные в начало существующей записи

Описание

public Memcached::prepend ( string $key , string $value ) : bool

Memcached::prepend() добавляет строку, переданную в параметре value в начало существующей записи. Причина того что value приводится к строковому типу в том, что добавление значения в начало комплексных типов не определено.

Замечание:

Если установлен параметр Memcached::OPT_COMPRESSION, то выполнение данного метода завершится неудачей и будет выведено предупреждение, потому что добавление сжатых данных к значению, которое возможно уже сжато, невозможно.

Список параметров

key

Ключ записи к которой происходит добавление в начало.

value

Добавляемая строка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTSTORED если переданный ключ не существует.

Примеры

Пример #1 Пример использования Memcached::prepend()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->setOption(Memcached::OPT_COMPRESSION, false);

$m->set('foo', 'abc');
$m->prepend('foo', 'def');
var_dump($m->get('foo'));
?>

Результат выполнения данного примера:

string(6) "defabc"

Смотрите также

  • Memcached::prependByKey() - Добавляет данные в начало существующей записи на указанном сервере
  • Memcached::append() - Добавляет данные к существующей записи


Добавляет данные в начало существующей записи на указанном сервере

  • « Memcached::prepend
  • Memcached::quit »
  • PHP Manual
  • Memcached
  • Добавляет данные в начало существующей записи на указанном сервере

Memcached::prependByKey

(PECL memcached >= 0.1.0)

Memcached::prependByKey — Добавляет данные в начало существующей записи на указанном сервере

Описание

public Memcached::prependByKey ( string $server_key , string $key , string $value ) : bool

Memcached::prependByKey() работает аналогично Memcached::prepend(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом key на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ записи к которой происходит добавление в начало.

value

Добавляемая строка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTSTORED если переданный ключ не существует.

Смотрите также

  • Memcached::prepend() - Добавляет данные в начало существующей записи
  • Memcached::append() - Добавляет данные к существующей записи


Закрывает все открытые соединения

  • « Memcached::prependByKey
  • Memcached::replace »
  • PHP Manual
  • Memcached
  • Закрывает все открытые соединения

Memcached::quit

(PECL memcached >= 2.0.0)

Memcached::quit — Закрывает все открытые соединения

Описание

public Memcached::quit ( void ) : bool

Memcached::quit() закрывает все открытые соединения с серверами memcache.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Заменяет существующую запись с указанным ключом

  • « Memcached::quit
  • Memcached::replaceByKey »
  • PHP Manual
  • Memcached
  • Заменяет существующую запись с указанным ключом

Memcached::replace

(PECL memcached >= 0.1.0)

Memcached::replace — Заменяет существующую запись с указанным ключом

Описание

public Memcached::replace ( string $key , mixed $value [, int $expiration ] ) : bool

Memcached::replace() похож на метод Memcached::set(), но операция завершится неудачей в случае, если ключ key отсутствует на сервере.

Список параметров

key

Ключ, под которым сохраняется значение.

value

Сохраняемое значение.

expiration

Время хранения объекта, по умолчанию равно 0. Для более подробной информации смотрите Время хранения объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTSTORED если указанного ключа не существует.

Смотрите также

  • Memcached::replaceByKey() - Заменяет существующую запись с заданным ключом на указанном сервере
  • Memcached::set() - Сохраняет запись
  • Memcached::add() - Добавляет элемент с новым ключом


Заменяет существующую запись с заданным ключом на указанном сервере

  • « Memcached::replace
  • Memcached::resetServerList »
  • PHP Manual
  • Memcached
  • Заменяет существующую запись с заданным ключом на указанном сервере

Memcached::replaceByKey

(PECL memcached >= 0.1.0)

Memcached::replaceByKey — Заменяет существующую запись с заданным ключом на указанном сервере

Описание

public Memcached::replaceByKey ( string $server_key , string $key , mixed $value [, int $expiration ] ) : bool

Memcached::replaceByKey() работает аналогично Memcached::replace(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом key на конкретный сервер. Это полезно когда необходимо держать несколько связанных значений на конкретном сервере.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ, под которым сохраняется значение.

value

Сохраняемое значение.

expiration

Время хранения объекта, по умолчанию равно 0. Для более подробной информации смотрите Время хранения объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTSTORED если указанного ключа не существует.

Смотрите также

  • Memcached::replace() - Заменяет существующую запись с указанным ключом
  • Memcached::set() - Сохраняет запись
  • Memcached::add() - Добавляет элемент с новым ключом


Очищает список серверов

  • « Memcached::replaceByKey
  • Memcached::set »
  • PHP Manual
  • Memcached
  • Очищает список серверов

Memcached::resetServerList

(PECL memcached >= 2.0.0)

Memcached::resetServerList — Очищает список серверов

Описание

public Memcached::resetServerList ( void ) : bool

Memcached::resetserverlist() удаляет все сервера memcache из пула, делая его снова пустым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • Memcached::addServer() - Добавляет сервер в пул
  • Memcached::addServers() - Добавляет несколько серверов в пул


Сохраняет запись

  • « Memcached::resetServerList
  • Memcached::setByKey »
  • PHP Manual
  • Memcached
  • Сохраняет запись

Memcached::set

(PECL memcached >= 0.1.0)

Memcached::set — Сохраняет запись

Описание

public Memcached::set ( string $key , mixed $value [, int $expiration ] ) : bool

Memcached::set() сохраняет значение value на memcache сервере под указанным ключом key. Параметр expiration может быть использован для контроля, когда срок действия значения считается истекшим.

Значение может быть любым доступным в PHP типом, кроме ресурса, потому что этот тип не может быть представлен в сериализованном виде. Если установлен параметр Memcached::OPT_COMPRESSION, то сериализованное значение будет также сжато перед сохранением.

Список параметров

key

Ключ, под которым сохраняется значение.

value

Сохраняемое значение.

expiration

Время хранения объекта, по умолчанию равно 0. Для более подробной информации смотрите Время хранения объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Используйте при необходимости Memcached::getResultCode().

Примеры

Пример #1 Пример использования Memcached::set()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));
/* время хранения записи с ключом 'object' установлено в 5 минут */
$m->set('object', new stdclass, time() + 300);

var_dump($m->get('int'));
var_dump($m->get('string'));
var_dump($m->get('array'));
var_dump($m->get('object'));
?>

Результатом выполнения данного примера будет что-то подобное:

int(99)
string(15) "a simple string"
array(2) {
  [0]=>
  int(11)
  [1]=>
  int(12)
}
object(stdClass)#1 (0) {
}

Смотрите также

  • Memcached::setByKey() - Сохраняет запись на указанном сервере
  • Memcached::add() - Добавляет элемент с новым ключом
  • Memcached::replace() - Заменяет существующую запись с указанным ключом


Сохраняет запись на указанном сервере

  • « Memcached::set
  • Memcached::setMulti »
  • PHP Manual
  • Memcached
  • Сохраняет запись на указанном сервере

Memcached::setByKey

(PECL memcached >= 0.1.0)

Memcached::setByKey — Сохраняет запись на указанном сервере

Описание

public Memcached::setByKey ( string $server_key , string $key , mixed $value [, int $expiration ] ) : bool

Memcached::setByKey() работает аналогично Memcached::set(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом key на конкретный сервер. Это полезно когда необходимо держать несколько связанных значений на конкретном сервере.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ, под которым сохраняется значение.

value

Сохраняемое значение.

expiration

Время хранения объекта, по умолчанию равно 0. Для более подробной информации смотрите Время хранения объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Используйте при необходимости Memcached::getResultCode().

Примеры

Пример #1 Пример использования Memcached::setByKey()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

/* Хранение блоков IP адресов на определенном сервере */
$m->setByKey('api-cache', 'block-ip:169.254.253.252', 1);
$m->setByKey('api-cache', 'block-ip:169.127.127.202', 1);
?>

Смотрите также

  • Memcached::set() - Сохраняет запись


Сохраняет несколько записей

  • « Memcached::setByKey
  • Memcached::setMultiByKey »
  • PHP Manual
  • Memcached
  • Сохраняет несколько записей

Memcached::setMulti

(PECL memcached >= 0.1.0)

Memcached::setMulti — Сохраняет несколько записей

Описание

public Memcached::setMulti ( array $items [, int $expiration ] ) : bool

Memcached::setMulti() похож на метод Memcached::set(), но вместо одной пары ключ/значение, работает с несколькими записями, переданными в items в виде массива. Параметр expiration, устанавливающий срок хранения записи, применяется ко всем записям.

Список параметров

items

Сохраняемый массив пар ключей/значений.

expiration

Время хранения объекта, по умолчанию равно 0. Для более подробной информации смотрите Время хранения объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Используйте при необходимости Memcached::getResultCode().

Примеры

Пример #1 Пример использования Memcached::setMulti()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$items = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$m->setMulti($items, time() + 300);
?>

Смотрите также

  • Memcached::setMultiByKey() - Сохраняет несколько записей на указанном сервере
  • Memcached::set() - Сохраняет запись


Сохраняет несколько записей на указанном сервере

  • « Memcached::setMulti
  • Memcached::setOption »
  • PHP Manual
  • Memcached
  • Сохраняет несколько записей на указанном сервере

Memcached::setMultiByKey

(PECL memcached >= 0.1.0)

Memcached::setMultiByKey — Сохраняет несколько записей на указанном сервере

Описание

public Memcached::setMultiByKey ( string $server_key , array $items [, int $expiration ] ) : bool

Memcached::setMultiByKey() работает аналогично Memcached::setMulti(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом key на конкретный сервер. Это полезно когда необходимо держать несколько связанных значений на конкретном сервере.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

items

Сохраняемый массив пар ключей/значений.

expiration

Время хранения объекта, по умолчанию равно 0. Для более подробной информации смотрите Время хранения объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Используйте при необходимости Memcached::getResultCode().

Смотрите также

  • Memcached::setMulti() - Сохраняет несколько записей
  • Memcached::set() - Сохраняет запись


Устанавливает значение параметра для Memcached

  • « Memcached::setMultiByKey
  • Memcached::setOptions »
  • PHP Manual
  • Memcached
  • Устанавливает значение параметра для Memcached

Memcached::setOption

(PECL memcached >= 0.1.0)

Memcached::setOption — Устанавливает значение параметра для Memcached

Описание

public Memcached::setOption ( int $option , mixed $value ) : bool

Этот метод устанавливает значение параметра для Memcached, переданного в option. Некоторые параметры определены в библиотеке libmemcached, а некоторые указаны в расширении. Изучите раздел Memcached константы для получения более полной информации.

Параметры, перечисленные ниже, требуют значений, указанных с помощью констант.

  • Memcached::OPT_HASH требует Memcached::HASH_* значений.

  • Memcached::OPT_DISTRIBUTION требует Memcached::DISTRIBUTION_* значений.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Устанавливает Memcached параметр

<?php
$m = new Memcached();
var_dump($m->getOption(Memcached::OPT_HASH) == Memcached::HASH_DEFAULT);
$m->setOption(Memcached::OPT_HASH, Memcached::HASH_MURMUR);
$m->setOption(Memcached::OPT_PREFIX_KEY, "widgets");
echo "Prefix key is now: ", $m->getOption(Memcached::OPT_PREFIX_KEY), "\n";
?>

Результат выполнения данного примера:

bool(true)
Prefix key is now: widgets

Смотрите также

  • Memcached::getOption() - Получает значение Memcached параметра
  • Memcached::setOptions() - Устанавливает несколько Memcached параметров
  • Memcached константы


Устанавливает несколько Memcached параметров

  • « Memcached::setOption
  • Memcached::setSaslAuthData »
  • PHP Manual
  • Memcached
  • Устанавливает несколько Memcached параметров

Memcached::setOptions

(PECL memcached >= 2.0.0)

Memcached::setOptions — Устанавливает несколько Memcached параметров

Описание

public Memcached::setOptions ( array $options ) : bool

Memcached::setOptions() аналогичен методу Memcached::setOption(), но принимает массив параметров.

Список параметров

options

Ассоциативный массив с параметрами, где в качестве ключа выступает название параметра, а в качестве значения- новое значение данного параметра.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Устанавливает несколько Memcached параметров

<?php
$m = new Memcached();
var_dump($m->getOption(Memcached::OPT_HASH) == Memcached::HASH_DEFAULT);

$m->setOptions(array(Memcached::OPT_HASH => Memcached::HASH_MURMUR, Memcached::OPT_PREFIX_KEY => "widgets"));

var_dump($m->getOption(Memcached::OPT_HASH) == Memcached::HASH_DEFAULT);
echo "Prefix key is now: ", $m->getOption(Memcached::OPT_PREFIX_KEY), "\n";
?>

Результат выполнения данного примера:

bool(true)
bool(false)
Prefix key is now: widgets

Смотрите также

  • Memcached::getOption() - Получает значение Memcached параметра
  • Memcached::setOption() - Устанавливает значение параметра для Memcached
  • Memcached Constants


Устанавливает учетные данные для аутентификации

  • « Memcached::setOptions
  • Memcached::touch »
  • PHP Manual
  • Memcached
  • Устанавливает учетные данные для аутентификации

Memcached::setSaslAuthData

(PECL memcached >= 2.0.0)

Memcached::setSaslAuthData — Устанавливает учетные данные для аутентификации

Описание

public Memcached::setSaslAuthData ( string $username , string $password ) : void

Memcached::setSaslAuthData() устанавливает имя пользователя и пароль, которые должны быть использованы для SASL аутентификации с серверами memcache.

Данный метод доступен только в случае, если расширение memcached собрано с поддержкой SASL. Обратитесь к разделу установка Memcached, чтобы узнать как это сделать.

Список параметров

username

Имя пользователя для аутентификации.

password

Пароль для аутентификации.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает новый срок хранения для записи

  • « Memcached::setSaslAuthData
  • Memcached::touchByKey »
  • PHP Manual
  • Memcached
  • Устанавливает новый срок хранения для записи

Memcached::touch

(PECL memcached >= 2.0.0)

Memcached::touch — Устанавливает новый срок хранения для записи

Описание

public Memcached::touch ( string $key , int $expiration ) : bool

Memcached::touch() устанавливает новый срок хранения для записи с указанным ключом.

Список параметров

key

Ключ, под которым сохраняется значение.

expiration

Время хранения объекта, по умолчанию равно 0. Для более подробной информации смотрите Время хранения объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Используйте при необходимости Memcached::getResultCode().

Смотрите также

  • Memcached::touchByKey() - Устанавливает новый срок хранения для записи на указанном сервере


Устанавливает новый срок хранения для записи на указанном сервере

  • « Memcached::touch
  • MemcachedException »
  • PHP Manual
  • Memcached
  • Устанавливает новый срок хранения для записи на указанном сервере

Memcached::touchByKey

(PECL memcached >= 2.0.0)

Memcached::touchByKey — Устанавливает новый срок хранения для записи на указанном сервере

Описание

public Memcached::touchByKey ( string $server_key , string $key , int $expiration ) : bool

Memcached::touchByKey() работает аналогично Memcached::touch(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом key на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ, под которым сохраняется значение.

expiration

Время хранения объекта, по умолчанию равно 0. Для более подробной информации смотрите Время хранения объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Используйте при необходимости Memcached::getResultCode().

Смотрите также

  • Memcached::touch() - Устанавливает новый срок хранения для записи


Класс MemcachedException

(PECL memcached >= 0.1.0)

Введение

Обзор классов

MemcachedException extends RuntimeException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


mqseries

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции mqseries
    • mqseries_back — MQSeries MQBACK
    • mqseries_begin — MQseries MQBEGIN
    • mqseries_close — MQSeries MQCLOSE
    • mqseries_cmit — MQSeries MQCMIT
    • mqseries_conn — MQSeries MQCONN
    • mqseries_connx — MQSeries MQCONNX
    • mqseries_disc — MQSeries MQDISC
    • mqseries_get — MQSeries MQGET
    • mqseries_inq — MQSeries MQINQ
    • mqseries_open — MQSeries MQOPEN
    • mqseries_put1 — MQSeries MQPUT1
    • mqseries_put — MQSeries MQPUT
    • mqseries_set — MQSeries MQSET
    • mqseries_strerror — Получить сообщение об ошибке, соответствующее ее коду (MQRC)


Введение

Это расширение служит для взаимодействия с менеджерами очередей IBM WebSphere MQ series.

Интерфейс пытается повторить клиентский C-API интерфейс WebSphere MQ Series настолько точно, как это только возможно. используются те же самые договоренности по именованию и функционал C-API. Для понимания принципов работы этого расширения необходимо понимать принципы работы C-API.

Для MQ-options, MQ-structures, MQ-results и т.д., читайте "WebSphere MQ Application Programming Guide" и "WebSphere MQ Application Programming" Reference.


Требования

Рабочая установка IBM WebSphere MQ. При сборке расширения также потребуется SDK для IBM WebSphere MQ.

Замечание: Будьте внимательны используя совместно с клиентом IBM WebSphere MQ, так как некоторые методы будут недоступны. Это не проблема расширения, просто так работает интерфейс клиента WebSphere MQ.

Требования к установке на платформах отличных от Windows

Соберите расширение и поместите его в директорию с расширениями PHP.

Требования к установке на Windows

Никаких дополнительных требований.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/mqseries.

Замечание: Официальное имя этого расширения mqseries.

Есть два способа соединения с менеджером очередей и зависят они от того, каким образом скомпилировано и собрано расширение.

  • Первый, он же способ по умолчанию, заключается в использовании библиотек mqic. Сборка расширения с использованием этих библиотек IBM WebSphere MQSeries позволяет расширению соединяться с менеджером очередей используя клиентский интерфейс. При использовании этого способа разрешены удаленные соединения.

  • Второй способ заключается в сборке расширения с использованием библиотек mqm. использование этих библиотек позволяет использовать управление транзакциями менеджера очередей.

Текущие используемые библиотеки можно поменять в файле config.m4.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Каких-либо дополнительных опций конфигурации нет.


Типы ресурсов

Это расширение оперирует следующими ресурсами: connection и object_handle.

Функции mqseries_conn() и mqseries_connx() возвращают обработчики соединения.

Функция mqseries_open() возвращает обработчик объекта.


Предопределенные константы

Для каждой константы WebSphere MQ существует ее отражение в mqseries.

Про их значение и использование читайте в книгах "WebSphere MQ Application Programming Guide" и "WebSphere MQ Application Programming Reference".

Имена двойников констант в mqseries можно определить, убрав из констант PHP префикс MQSERIES_. К примеру, константы CompletionCode:

Константы mqseries
Константа PHP | Константа MQ
MQSERIES_MQCC_OK | MQCC_OK
MQSERIES_MQCC_WARNING | MQCC_WARNING
MQSERIES_MQCC_FAILED | MQCC_FAILED
MQSERIES_MQCC_UNKNOWN | MQCC_UNKNOWN


Функции mqseries

Содержание

  • mqseries_back — MQSeries MQBACK
  • mqseries_begin — MQseries MQBEGIN
  • mqseries_close — MQSeries MQCLOSE
  • mqseries_cmit — MQSeries MQCMIT
  • mqseries_conn — MQSeries MQCONN
  • mqseries_connx — MQSeries MQCONNX
  • mqseries_disc — MQSeries MQDISC
  • mqseries_get — MQSeries MQGET
  • mqseries_inq — MQSeries MQINQ
  • mqseries_open — MQSeries MQOPEN
  • mqseries_put1 — MQSeries MQPUT1
  • mqseries_put — MQSeries MQPUT
  • mqseries_set — MQSeries MQSET
  • mqseries_strerror — Получить сообщение об ошибке, соответствующее ее коду (MQRC)


MQSeries MQBACK

  • « Функции mqseries
  • mqseries_begin »
  • PHP Manual
  • Функции mqseries
  • MQSeries MQBACK

mqseries_back

(PECL mqseries >= 0.10.0)

mqseries_back — MQSeries MQBACK

Описание

mqseries_back ( resource $hconn , resource &$compCode , resource &$reason ) : void

Функция mqseries_back() (MQBACK) производит откат транзакции. Т.е. все сообщения, помещенные в очередь с последней точки синхронизации, удаляются из нее. Все сообщения, прочитанные из очереди с последней точки синхронизации, восстанавливаются в ней (становятся доступными).

Using mqseries_back() работает только совместно с mqseries_begin() и только если используется прямое соединение с менеджером очередей, а не через интерфейс mqclient.

Список параметров

hConn

Обработчик соединения.

Представляет открытое соединение с менеджером очередей.

compCode

Код завершения.

reason

Код причины, квалифицирующий compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования mqseries_back()

<?php
    mqseries_back($conn, $comp_code, $reason);

    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }
?>

Примечания

Замечание:

mqseries_back() не работает, если для соединение с менеджером очередей используется MQSeries Client.

Смотрите также

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_begin() - MQseries MQBEGIN


MQseries MQBEGIN

  • « mqseries_back
  • mqseries_close »
  • PHP Manual
  • Функции mqseries
  • MQseries MQBEGIN

mqseries_begin

(PECL mqseries >= 0.10.0)

mqseries_begin — MQseries MQBEGIN

Описание

mqseries_begin ( resource $hconn , array $beginOptions , resource &$compCode , resource &$reason ) : void

Функция mqseries_begin() (MQBEGIN) открывает транзакцию, координирует работу менеджера очередей и может использовать внешние ресурсы менеджера.

mqseries_begin() стартует транзакцию. mqseries_back() или mqseries_cmit() - завершают.

Список параметров

hConn

Обработчик соединения.

Представляет открытое соединение с менеджером очередей.

compCode

Код завершения.

reason

Код причины, квалифицирующий compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования mqseries_begin()

<?php
    $mqbo = array();
    mqseries_begin( $conn,
                    $mqbo,
                    $comp_code,
                    $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        /* код причины 2121 - предупреждающий. Смотри документацию MQSeries.*/
        if ($reason !== 2121) {
            printf("CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        }
    }
?>

Примечания

Замечание:

mqseries_begin() не работает, если для соединение с менеджером очередей используется MQSeries Client.

Смотрите также

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_back() - MQSeries MQBACK
  • mqseries_cmit() - MQSeries MQCMIT


MQSeries MQCLOSE

  • « mqseries_begin
  • mqseries_cmit »
  • PHP Manual
  • Функции mqseries
  • MQSeries MQCLOSE

mqseries_close

(PECL mqseries >= 0.10.0)

mqseries_close — MQSeries MQCLOSE

Описание

mqseries_close ( resource $hconn , resource $hobj , int $options , resource &$compCode , resource &$reason ) : void

Функция mqseries_close() (MQCLOSE) прекращает доступ к объекту и является функцией обратной mqseries_open() (MQOPEN).

Список параметров

hConn

Обработчик соединения.

Представляет открытое соединение с менеджером очередей.

hObj

Обработчик объекта.

Представляет используемый объект.

options

compCode

Completion code.

reason

Код причины, квалифицирующий compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования mqseries_close()

<?php
    mqseries_close($conn, $obj, MQSERIES_MQCO_NONE, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("close CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }
?>

Смотрите также

  • mqseries_open() - MQSeries MQOPEN
  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX


MQSeries MQCMIT

  • « mqseries_close
  • mqseries_conn »
  • PHP Manual
  • Функции mqseries
  • MQSeries MQCMIT

mqseries_cmit

(PECL mqseries >= 0.10.0)

mqseries_cmit — MQSeries MQCMIT

Описание

mqseries_cmit ( resource $hconn , resource &$compCode , resource &$reason ) : void

Функция mqseries_cmit() (MQCMIT) фиксирует транзакцию. Т.е. все сообщения, помещенные в очередь с последней точки синхронизации становятся постояннымы. Все сообщения, прочитанные из очереди с последней точки синхронизации, удаляются из нее.

Список параметров

hConn

Обработчик соединения.

Представляет открытое соединение с менеджером очередей.

compCode

Код завершения.

reason

Код причины, квалифицирующий compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования mqseries_cmit()

<?php
    mqseries_cmit($conn, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("cmit CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }
?>

Примечания

Замечание:

mqseries_back() не работает, если для соединение с менеджером очередей используется MQSeries Client.

Смотрите также

  • mqseries_begin() - MQseries MQBEGIN
  • mqseries_back() - MQSeries MQBACK
  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX


MQSeries MQCONN

  • « mqseries_cmit
  • mqseries_connx »
  • PHP Manual
  • Функции mqseries
  • MQSeries MQCONN

mqseries_conn

(PECL mqseries >= 0.10.0)

mqseries_conn — MQSeries MQCONN

Описание

mqseries_conn ( string $qManagerName , resource &$hconn , resource &$compCode , resource &$reason ) : void

Функция mqseries_conn() (MQCONN) открывает соединение с менеджером очередей. Она возвращает обработчик соединения, используемый всеми остальными функциями расширения.

Список параметров

qManagerName

Имя менеджера очередей.

Имя менеджера очередей с которым устанавливается соединение.

hConn

Обработчик соединения.

Представляет открытое соединение с менеджером очередей.

compCode

Код завершения.

reason

Код причины, квалифицирующий compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования mqseries_conn()

<?php
    mqseries_conn('WMQ1', $conn, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("conn CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }
?>

Смотрите также

  • mqseries_disc() - MQSeries MQDISC


MQSeries MQCONNX

  • « mqseries_conn
  • mqseries_disc »
  • PHP Manual
  • Функции mqseries
  • MQSeries MQCONNX

mqseries_connx

(PECL mqseries >= 0.10.0)

mqseries_connx — MQSeries MQCONNX

Описание

mqseries_connx ( string $qManagerName , array &$connOptions , resource &$hconn , resource &$compCode , resource &$reason ) : void

Функция mqseries_connx() (MQCONNX) открывает соединение с менеджером очередей. Она возвращает обработчик соединения, используемый всеми остальными функциями расширения.

Вызов функции mqseries_connx() аналогичен вызову mqseries_conn() (MQCONN), за исключением того, что MQCONNX позволяет задать опции, определяющие режим работы с менеджером.

Список параметров

qManagerName

Имя менеджера очередей.

Имя менеджера очередей с которым устанавливается соединение.

connOps

Опции, определяющие работу функций

Смотрите структуру MQCNO.

hConn

Обработчик соединения.

Представляет открытое соединение с менеджером очередей.

compCode

Код завершения.

reason

Код причины, квалифицирующий compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования mqseries_connx()

<?php
    $mqcno = array(
        'Version' => MQSERIES_MQCNO_VERSION_2,
        'Options' => MQSERIES_MQCNO_STANDARD_BINDING,
        'MQCD' => array('ChannelName' => 'MQNX9420.CLIENT',
        'ConnectionName' => 'localhost',
        'TransportType' => MQSERIES_MQXPT_TCP)
    );

    mqseries_connx('MQNX9420', $mqcno, $conn, $comp_code,$reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("Connx CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }

?>

Пример #2 Пример использования mqseries_connx() с использованием SSL и URL ответчика OCSP

<?php
    $mqcno = array(
        'Version' => 4, //MQCNO_VERSION_4
        'Options' => MQSERIES_MQCNO_STANDARD_BINDING,
        'MQCD' => array(
            'Version' => 7, //MQCD_VERSION_7
            'ConnectionName' => 'localhost',
            'TransportType' => MQSERIES_MQXPT_TCP,
            'ChannelName' => 'CONNECTIONCHANNEL',
            'SSLCipherSpec' => 'NULL_SHA'
        ),
        'MQSCO' => array(
            'KeyRepository' => '/var/mqm/qmgrs/QUEUEMGR/ssl/key', //Local path where the SSL key repository can be found
            'MQAIR' => array(
                'Version' => 2, //MQAIR_VERSION_2
                'AuthInfoType' => 2, //MQAIT_OCSP
                'OCSPResponderURL' => 'http://dummy.OCSP.responder'
            )
        )
    );

    mqseries_connx('QUEUEMGR', $mqcno, $conn, $comp_code,$reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("Connx CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }

?>

Смотрите также

  • mqseries_disc() - MQSeries MQDISC


MQSeries MQDISC

  • « mqseries_connx
  • mqseries_get »
  • PHP Manual
  • Функции mqseries
  • MQSeries MQDISC

mqseries_disc

(PECL mqseries >= 0.10.0)

mqseries_disc — MQSeries MQDISC

Описание

mqseries_disc ( resource $hconn , resource &$compCode , resource &$reason ) : void

Функция mqseries_disc() (MQDISC) разрывает соединение с менеджером очередей. Она является противоположной функциям mqseries_conn() (MQCONN) и mqseries_connx() (MQCONNX).

Список параметров

hConn

Обработчик соединения.

Представляет открытое соединение с менеджером очередей.

compCode

Код завершения.

reason

Код причины, квалифицирующий compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования mqseries_disc()

<?php
    mqseries_disc($conn, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("disc CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }
?>

Смотрите также

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX


MQSeries MQGET

  • « mqseries_disc
  • mqseries_inq »
  • PHP Manual
  • Функции mqseries
  • MQSeries MQGET

mqseries_get

(PECL mqseries >= 0.10.0)

mqseries_get — MQSeries MQGET

Описание

mqseries_get ( resource $hConn , resource $hObj , array &$md , array &$gmo , int &$bufferLength , string &$msg , int &$data_length , resource &$compCode , resource &$reason ) : void

The mqseries_get() (MQGET) call retrieves a message from a local queue that has been opened using the mqseries_open() (MQOPEN) call

Список параметров

hConn

Обработчик соединения.

Представляет открытое соединение с менеджером очередей.

hObj

Обработчик объекта.

Представляет используемый объект.

md

Дескриптор сообщения (MQMD).

gmo

Опции получения сообщения (MQGMO).

bufferLength

Ожидаемый размер буфера результата

msg

Буфер, в который будет помещено извлеченное сообщение.

data_length

Актуальный размер буфера

compCode

Код завершения.

reason

Код причины, квалифицирующий compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования mqseries_get()

<?php
// Открываем соединение с MQ
    mqseries_conn('WMQ1', $conn, $comp_code, $reason);
// Теперь $conn содержит ссылку на соединение

// Открываем соединение с очередью testq
    mqseries_open(
                $conn,
                array('ObjectName' => 'TESTQ'),
                MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
                $obj,
                $comp_code,
                $reason);
// Теперь $obj содержит ссылку на объект (TESTQ)

// Устанавливаем пустой дескриптор сообщения.
    $mdg = array();
// Устанавливаем опции извлечения сообщения
    $gmo = array('Options' => MQSERIES_MQGMO_FAIL_IF_QUIESCING | MQSERIES_MQGMO_WAIT, 'WaitInterval' => 3000);

// Получаем сообщение
    mqseries_get($conn, $obj, $mdg, $gmo, 255, $msg, $data_length, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("GET CompCode:%d Reason:%d Text:%s<br>", $comp_code, $reason, mqseries_strerror($reason));
    }

// закрываем $obj
    mqseries_close($conn, $obj, MQSERIES_MQCO_NONE, $comp_code, $reason);

// закрываем соединение с менеджером
    mqseries_disc($conn, $comp_code, $reason);

?>

Смотрите также

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN
  • mqseries_put() - MQSeries MQPUT


MQSeries MQINQ

  • « mqseries_get
  • mqseries_open »
  • PHP Manual
  • Функции mqseries
  • MQSeries MQINQ

mqseries_inq

(PECL mqseries >= 0.10.0)

mqseries_inq — MQSeries MQINQ

Описание

mqseries_inq ( resource $hconn , resource $hobj , int $selectorCount , array $selectors , int $intAttrCount , resource &$intAttr , int $charAttrLength , resource &$charAttr , resource &$compCode , resource &$reason ) : void

Функция mqseries_inq() (MQINQ) возвращает массив целых чисел и набор строк, содержащих атрибуты объекта.

Список параметров

hConn

Обработчик соединения.

Представляет открытое соединение с менеджером очередей.

hObj

Обработчик объекта.

Представляет используемый объект.

selectorCount

Количество селекторов.

selectors

Массив селекторов атрибутов.

intAttrLength

Количество целочисленных атрибутов.

intAttr

Массив целочисленных атрибутов.

charAttrLength

Длина буфера символьных атрибутов.

charAttr

Символьные атрибуты.

compCode

Код завершения.

reason

Код причины, квалифицирующий compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования mqseries_inq()

<?php
    $int_attr = array();
    $char_attr = "";

    mqseries_inq($conn, $obj, 1, array(MQSERIES_MQCA_Q_MGR_NAME), 0, $int_attr, 48, $char_attr, $comp_code, $reason);

    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("INQ CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    } else {
        echo "INQ QManager name result ".$char_attr."<br>\n";
    }
?>

Смотрите также

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN


MQSeries MQOPEN

  • « mqseries_inq
  • mqseries_put1 »
  • PHP Manual
  • Функции mqseries
  • MQSeries MQOPEN

mqseries_open

(PECL mqseries >= 0.10.0)

mqseries_open — MQSeries MQOPEN

Описание

mqseries_open ( resource $hconn , array &$objDesc , int $option , resource &$hobj , resource &$compCode , resource &$reason ) : void

Функция mqseries_open() (MQOPEN) устанавливает соединение с объектом.

Список параметров

hConn

Обработчик соединения.

Представляет открытое соединение с менеджером очередей.

objDesc

Дескриптор объекта. (MQOD)

options

Опции, определяющие работу функций

hObj

Обработчик объекта.

Представляет используемый объект.

compCode

Код завершения.

reason

Код причины, квалифицирующий compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования mqseries_open()

<?php
    $mqods = array('ObjectName' => 'TESTQ');
    mqseries_open(
                $conn,
                $mqods,
                MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
                $obj,
                $comp_code,
                $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("open CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }
?>

Смотрите также

  • mqseries_close() - MQSeries MQCLOSE


MQSeries MQPUT1

  • « mqseries_open
  • mqseries_put »
  • PHP Manual
  • Функции mqseries
  • MQSeries MQPUT1

mqseries_put1

(PECL mqseries >= 0.10.0)

mqseries_put1 — MQSeries MQPUT1

Описание

mqseries_put1 ( resource $hconn , resource &$objDesc , resource &$msgDesc , resource &$pmo , string $buffer , resource &$compCode , resource &$reason ) : void

Функция mqseries_put1() (MQPUT1) помещает сообщение в очередь. Очередь должна быть не открыта.

Для посылки сообщения в очередь вы можете использовать как mqseries_put(), так и mqseries_put1(). mqseries_put() (MQPUT) используется когда необходимо поместить в очередь несколько сообщений, в то время как mqseries_put1() (MQPUT1) удобно использовать для одного сообщения. По сути, эта функция включает в себя последовательность вызовов MQOPEN, MQPUT и MQCLOSE, что позволяет не вызывать из по отдельности.

Список параметров

hConn

Обработчик соединения.

Представляет открытое соединение с менеджером очередей.

objDesc

Object descriptor. (MQOD)

Дескриптор объекта (очереди), в которую необходимо поместить сообщение.

msgDesc

Дескриптор сообщения (MQMD).

pmo

Опции добавляемого сообщения (MQPMO).

compCode

Код завершения.

reason

Код причины, квалифицирующий compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN
  • mqseries_get() - MQSeries MQGET


MQSeries MQPUT

  • « mqseries_put1
  • mqseries_set »
  • PHP Manual
  • Функции mqseries
  • MQSeries MQPUT

mqseries_put

(PECL mqseries >= 0.10.0)

mqseries_put — MQSeries MQPUT

Описание

mqseries_put ( resource $hConn , resource $hObj , array &$md , array &$pmo , string $message , resource &$compCode , resource &$reason ) : void

Функция mqseries_put() (MQPUT) помещает сообщение в очередь или список распределения. Очередь, или список распределения, должна быть открыты.

Список параметров

hConn

Обработчик соединения.

Представляет открытое соединение с менеджером очередей.

hObj

Обработчик объекта.

Представляет используемый объект.

md

Дескриптор сообщения (MQMD).

pmo

Опции добавляемого сообщения (MQPMO).

message

Само сообщение.

compCode

Код завершения.

reason

Код причины, квалифицирующий compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования mqseries_put()

<?php
// Открываем соединение с MQ
    mqseries_conn('WMQ1', $conn, $comp_code, $reason);
// Теперь $conn содержит ссылку на соединение

// Открываем соединение с очередью testq
    mqseries_open(
                $conn,
                array('ObjectName' => 'TESTQ'),
                MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
                $obj,
                $comp_code,
                $reason);
// Теперь $obj содержит ссылку на объект (TESTQ)

// Настраиваем массив дескриптора сообщения. Читайте руководство MQSeries.
    $md = array(
                'Version' => MQSERIES_MQMD_VERSION_1,
                'Expiry' => MQSERIES_MQEI_UNLIMITED,
                'Report' => MQSERIES_MQRO_NONE,
                'MsgType' => MQSERIES_MQMT_DATAGRAM,
                'Format' => MQSERIES_MQFMT_STRING,
                'Priority' => 1,
                'Persistence' => MQSERIES_MQPER_PERSISTENT);

// Настраиваем опции добавления сообщения.
    $pmo = array('Options' => MQSERIES_MQPMO_NEW_MSG_ID|MQSERIES_MQPMO_SYNCPOINT);

// кладем сообщение 'Ping' в очередь.
    mqseries_put($conn, $obj, $md, $pmo, 'Ping', $comp_code, $reason);

    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("put CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }

// Закрываем обработчик объекта $obj
    mqseries_close($conn, $obj, MQSERIES_MQCO_NONE, $comp_code, $reason);

// Закрываем соединение с менеджером.
    mqseries_disc($conn, $comp_code, $reason);

?>

Смотрите также

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN
  • mqseries_get() - MQSeries MQGET


MQSeries MQSET

  • « mqseries_put
  • mqseries_strerror »
  • PHP Manual
  • Функции mqseries
  • MQSeries MQSET

mqseries_set

(PECL mqseries >= 0.10.0)

mqseries_set — MQSeries MQSET

Описание

mqseries_set ( resource $hConn , resource $hObj , int $selectorCount , array $selectors , int $intAttrCount , array $intAttrs , int $charAttrLength , array $charAttrs , resource &$compCode , resource &$reason ) : void

Функция mqseries_set() (MQSET) используется для изменения атрибутов очереди.

Список параметров

hConn

Обработчик соединения.

Представляет открытое соединение с менеджером очередей.

hObj

Object handle.

Используемый объект.

selectorCount

Количество селекторов.

selectors

Массив селекторов атрибутов.

intAttrCount

Количество цеклочисленных атрибутов.

intAttrs

Массив целочисленных атрибутов.

charAttrLength

Величина буфера строковых атрибутов.

charAttrs

Строковые атрибуты.

compCode

Код завершения.

reason

Код причины, квалифицирующий compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • mqseries_inq() - MQSeries MQINQ


Получить сообщение об ошибке, соответствующее ее коду (MQRC)

  • « mqseries_set
  • Сеть »
  • PHP Manual
  • Функции mqseries
  • Получить сообщение об ошибке, соответствующее ее коду (MQRC)

mqseries_strerror

(PECL mqseries >= 0.10.0)

mqseries_strerror — Получить сообщение об ошибке, соответствующее ее коду (MQRC)

Описание

mqseries_strerror ( int $reason ) : string

Функция mqseries_strerror() возвращает сообщение об ошибке в соответствии с ее кодом.

Список параметров

reason

Код ошибки.

Возвращаемые значения

строка с описанием ошибки.

Примеры

Пример #1 Пример использования mqseries_strerror()

<?php
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("open CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }
?>

Результат выполнения данного примера:

Connx CompCode:2 Reason:2059 Text:Queue manager not available for connection.


Сеть

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Сетевые функции
    • checkdnsrr — Проверяет записи DNS, соответствующие переданному имени узла Интернета или IP-адресу
    • closelog — Закрывает соединение с системным журналом
    • define_syslog_variables — Инициализирует все связанные с syslog переменные
    • dns_check_record — Псевдоним checkdnsrr
    • dns_get_mx — Псевдоним getmxrr
    • dns_get_record — Получение ресурсных записей DNS хоста
    • fsockopen — Открывает соединение с интернет-сокетом или доменным сокетом Unix
    • gethostbyaddr — Получает доменное имя хоста, соответствующее переданному IP-адресу
    • gethostbyname — Получает IPv4-адрес, соответствующий переданному имени хоста
    • gethostbynamel — Получает список IPv4-адресов, соответствующих переданному доменному имени хоста
    • gethostname — Получает имя хоста
    • getmxrr — Получает записи MX, соответствующие переданному доменному имени хоста
    • getprotobyname — Получает номер протокола по имени
    • getprotobynumber — Получает имя протокола по номеру
    • getservbyname — Получает номер порта, связанного с интернет-службой и протоколом
    • getservbyport — Получает интернет-службу, соответствующую заданному порту и протоколу
    • header_register_callback — Вызывает функцию заголовка
    • header_remove — Удаляет ранее установленные заголовки
    • header — Отправка HTTP-заголовка
    • headers_list — Возвращает список переданных заголовков (или готовых к отправке)
    • headers_sent — Проверяет, были ли отправлены заголовки
    • http_response_code — Получает или устанавливает код ответа HTTP
    • inet_ntop — Конвертирует упакованный интернет-адрес в читаемый формат
    • inet_pton — Конвертирует читаемый IP-адрес в его упакованное представление in_addr
    • ip2long — Конвертирует строку, содержащую IPv4-адрес в целое число
    • long2ip — Конвертирует целое число в IPv4-адрес
    • openlog — Открывает соединение к системному журналу
    • pfsockopen — Открывает постоянное соединение с интернет-сокетом или доменным сокетом Unix
    • setcookie — Отправляет cookie
    • setrawcookie — Отправляет cookie без URL-кодирования значения
    • socket_get_status — Псевдоним stream_get_meta_data
    • socket_set_blocking — Псевдоним stream_set_blocking
    • socket_set_timeout — Псевдоним stream_set_timeout
    • syslog — Генерирует сообщение для системного журнала


  • « Сеть
  • Установка и настройка »
  • PHP Manual
  • Сеть
  • Введение

Введение

Предоставляет различные функции для работы с сетью.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Функции checkdnsrr(), getmxrr() и dns_get_record() требуют наличия Bind в Linux.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции конфигурации сети
Имя | По умолчанию | Место изменения | Список изменений
define_syslog_variables | "0" | PHP_INI_ALL | Устарело с версии PHP 5.3.0. Удалено в PHP 5.4.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

define_syslog_variables boolean

Позволяет задать, необходимо ли определять различные переменные syslog (например, $LOG_PID, $LOG_CRON, и т.д.). Отключение определения этих переменных позволяет повысить производительность. Вы можете определить эти переменные при запуске с помощью функции define_syslog_variables().


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Это расширение определяет ресурс файлового указателя, возвращаемого функциями fsockopen() и pfsockopen().


Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

Опции openlog()
Константа | Описание
LOG_CONS | если при передаче данных системному журналу произошла ошибка, произвести вывод в системную консоль
LOG_NDELAY | немедленно открыть соединение со службой журналирования
LOG_ODELAY | (по умолчанию) отсрочить открытие соединения до появления первого сообщения
LOG_NOWAIT |
LOG_PERROR | вывод журнала вместе со стандартной ошибкой
LOG_PID | добавить PID к каждому сообщению
Средства openlog()
Константа | Описание
LOG_AUTH | сообщения безопасности/авторизации (используйте LOG_AUTHPRIV в системах, где эта константа определена)
LOG_AUTHPRIV | сообщения безопасности/авторизации (частно)
LOG_CRON | планировщик событий (cron и at)
LOG_DAEMON | другие системные службы
LOG_KERN | сообщения ядра
LOG_LOCAL0 ... LOG_LOCAL7 | зарезервированы для локального использования, недоступны в Windows
LOG_LPR | подсистема построчной печати
LOG_MAIL | почтовая подсистема
LOG_NEWS | подсистема новостей USENET
LOG_SYSLOG | сообщения, сгенерированные syslogd
LOG_USER | общие сообщения уровня пользователя
LOG_UUCP | подсистема UUCP
Приоритеты syslog() (в порядке убывания)
Константа | Описание
LOG_EMERG | система не может быть использована
LOG_ALERT | необходимо незамедлительное действие
LOG_CRIT | критические условия
LOG_ERR | условия ошибки
LOG_WARNING | условия предупреждения
LOG_NOTICE | нормальное, но значительное состояние
LOG_INFO | информационное сообщение
LOG_DEBUG | сообщения уровня отладки
Опции dns_get_record()
Константа | Описание
DNS_A | Ресурсная запись IPv4
DNS_CAA | Ресурсная запись Authority Authorization Resource (доступно с PHP 7.0.16 и с 7.1.2)
DNS_MX | Ресурсная запись Mail Exchanger
DNS_CNAME | Ресурсная запись Canonical Name
DNS_NS | Ресурсная запись Name Server
DNS_PTR | Ресурсная запись Pointer
DNS_HINFO | Ресурс Host Info (См. » IANA Названия операционных систем для получения расшифровки значений)
DNS_SOA | Ресурсная запись SOA
DNS_TXT | Ресурсная запись текстового типа
DNS_ANY | Любая ресурсная запись. На большинстве систем возвращает все ресурсные записи, однако для использования в критических условиях не подходит. Вместо этого необходимо использовать DNS_ALL
DNS_AAAA | Ресурсная запись IPv6
DNS_ALL | Итеративно опрашивает DNS сервер по каждому доступному типу записи.


Сетевые функции

Содержание

  • checkdnsrr — Проверяет записи DNS, соответствующие переданному имени узла Интернета или IP-адресу
  • closelog — Закрывает соединение с системным журналом
  • define_syslog_variables — Инициализирует все связанные с syslog переменные
  • dns_check_record — Псевдоним checkdnsrr
  • dns_get_mx — Псевдоним getmxrr
  • dns_get_record — Получение ресурсных записей DNS хоста
  • fsockopen — Открывает соединение с интернет-сокетом или доменным сокетом Unix
  • gethostbyaddr — Получает доменное имя хоста, соответствующее переданному IP-адресу
  • gethostbyname — Получает IPv4-адрес, соответствующий переданному имени хоста
  • gethostbynamel — Получает список IPv4-адресов, соответствующих переданному доменному имени хоста
  • gethostname — Получает имя хоста
  • getmxrr — Получает записи MX, соответствующие переданному доменному имени хоста
  • getprotobyname — Получает номер протокола по имени
  • getprotobynumber — Получает имя протокола по номеру
  • getservbyname — Получает номер порта, связанного с интернет-службой и протоколом
  • getservbyport — Получает интернет-службу, соответствующую заданному порту и протоколу
  • header_register_callback — Вызывает функцию заголовка
  • header_remove — Удаляет ранее установленные заголовки
  • header — Отправка HTTP-заголовка
  • headers_list — Возвращает список переданных заголовков (или готовых к отправке)
  • headers_sent — Проверяет, были ли отправлены заголовки
  • http_response_code — Получает или устанавливает код ответа HTTP
  • inet_ntop — Конвертирует упакованный интернет-адрес в читаемый формат
  • inet_pton — Конвертирует читаемый IP-адрес в его упакованное представление in_addr
  • ip2long — Конвертирует строку, содержащую IPv4-адрес в целое число
  • long2ip — Конвертирует целое число в IPv4-адрес
  • openlog — Открывает соединение к системному журналу
  • pfsockopen — Открывает постоянное соединение с интернет-сокетом или доменным сокетом Unix
  • setcookie — Отправляет cookie
  • setrawcookie — Отправляет cookie без URL-кодирования значения
  • socket_get_status — Псевдоним stream_get_meta_data
  • socket_set_blocking — Псевдоним stream_set_blocking
  • socket_set_timeout — Псевдоним stream_set_timeout
  • syslog — Генерирует сообщение для системного журнала


Проверяет записи DNS, соответствующие переданному имени узла Интернета или IP-адресу

  • « Сетевые функции
  • closelog »
  • PHP Manual
  • Сетевые функции
  • Проверяет записи DNS, соответствующие переданному имени узла Интернета или IP-адресу

checkdnsrr

(PHP 4, PHP 5, PHP 7)

checkdnsrr — Проверяет записи DNS, соответствующие переданному имени узла Интернета или IP-адресу

Описание

checkdnsrr ( string $host [, string $type = "MX" ] ) : bool

Ищет записи DNS типа type, соответствующие host.

Список параметров

host

Параметр host может быть IP-адресом в виде четырех десятичных чисел, разделенных точками, или именем узла.

type

Параметр type может быть одним из: A, MX, NS, SOA, PTR, CNAME, AAAA, A6, SRV, NAPTR, TXT или ANY.

Возвращаемые значения

Возвращает TRUE, если были найдены записи; возвращает FALSE, если записей не было найдено или произошла ошибка.

Список изменений

Версия | Описание
5.3.0 | Функция стала доступна на платформе Windows.
5.2.4 | Добавлено значение TXT параметра type.

Примечания

Замечание:

Для совместимости с более ранними версиями PHP под Windows, где не было реализации этой функции, используйте класс » PEAR » Net_DNS.

Смотрите также

  • dns_get_record() - Получение ресурсных записей DNS хоста
  • getmxrr() - Получает записи MX, соответствующие переданному доменному имени хоста
  • gethostbyaddr() - Получает доменное имя хоста, соответствующее переданному IP-адресу
  • gethostbyname() - Получает IPv4-адрес, соответствующий переданному имени хоста
  • gethostbynamel() - Получает список IPv4-адресов, соответствующих переданному доменному имени хоста
  • страница руководства named(8)


Закрывает соединение с системным журналом

  • « checkdnsrr
  • define_syslog_variables »
  • PHP Manual
  • Сетевые функции
  • Закрывает соединение с системным журналом

closelog

(PHP 4, PHP 5, PHP 7)

closelog — Закрывает соединение с системным журналом

Описание

closelog ( void ) : bool

Функция closelog() закрывает дескриптор, используемый для записи в системный журнал. Использование closelog() не является обязательным.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • syslog() - Генерирует сообщение для системного журнала
  • openlog() - Открывает соединение к системному журналу


Инициализирует все связанные с syslog переменные

  • « closelog
  • dns_check_record »
  • PHP Manual
  • Сетевые функции
  • Инициализирует все связанные с syslog переменные

define_syslog_variables

(PHP 4, PHP 5 < 5.4.0)

define_syslog_variables — Инициализирует все связанные с syslog переменные

Описание

define_syslog_variables ( void ) : void

Инициализирует все переменные, используемые в функциях syslog.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Переменные Syslog
Переменная | Эквивалентная константа | Значение | Примечание
$LOG_EMERG | LOG_EMERG | Система недоступна |
$LOG_ALERT | LOG_ALERT | Требуется немедленное действие |
$LOG_CRIT | LOG_CRIT | Критические условия |
$LOG_ERR | LOG_ERR |  |
$LOG_WARNING | LOG_WARNING |  |
$LOG_NOTICE | LOG_NOTICE |  |
$LOG_INFO | LOG_INFO |  |
$LOG_DEBUG | LOG_DEBUG |  |
$LOG_KERN | LOG_KERN |  |
$LOG_USER | LOG_USER | Обычный уровень пользователя |
$LOG_MAIL | LOG_MAIL | Отправка журнала событий по email |
$LOG_DAEMON | LOG_DAEMON | Другие системные службы журнала |
$LOG_AUTH | LOG_AUTH |  |
$LOG_SYSLOG | LOG_SYSLOG |  | Недоступно в Netware
$LOG_LPR | LOG_LPR |  |
$LOG_NEWS | LOG_NEWS | Usenet new | Недоступно в HP-UX
$LOG_CRON | LOG_CRON |  | Недоступно на всех платформах
$LOG_AUTHPRIV | LOG_AUTHPRIV |  | Недоступно в AIX
$LOG_LOCAL0 | LOG_LOCAL0 |  | Недоступно в Windows и Netware
$LOG_LOCAL1 | LOG_LOCAL1 |  | Недоступно в Windows и Netware
$LOG_LOCAL2 | LOG_LOCAL2 |  | Недоступно в Windows и Netware
$LOG_LOCAL3 | LOG_LOCAL3 |  | Недоступно в Windows и Netware
$LOG_LOCAL4 | LOG_LOCAL4 |  | Недоступно в Windows и Netware
$LOG_LOCAL5 | LOG_LOCAL5 |  | Недоступно в Windows и Netware
$LOG_LOCAL6 | LOG_LOCAL6 |  | Недоступно в Windows и Netware
$LOG_LOCAL7 | LOG_LOCAL7 |  | Недоступно в Windows и Netware
$LOG_PID | LOG_PID |  |
$LOG_CONS | LOG_CONS |  |
$LOG_ODELAY | LOG_ODELAY |  |
$LOG_NDELAY | LOG_NDELAY |  |
$LOG_NOWAIT | LOG_NOWAIT |  | Недоступно в BeOS
$LOG_PERROR | LOG_PERROR |  | Недоступно в AIX
Внимание

Данная функция была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Примеры

Пример #1 Пример использования define_syslog_variables()

<?php
// Проверка предопределения переменных syslog
if(!get_cfg_var('define_syslog_variables'))
{
    define_syslog_variables();
}

// Открыть журнал событий
openlog('', $LOG_ODELAY, $LOG_MAIL | $LOG_USER);

// Продолжить скрипт ...
?>

Список изменений

Версия | Описание
5.4.0 | Эта функция была удалена из PHP.
5.3.0 | Эта функция теперь передаёт напоминание E_DEPRECATED.

Смотрите также

  • openlog() - Открывает соединение к системному журналу
  • syslog() - Генерирует сообщение для системного журнала
  • closelog() - Закрывает соединение с системным журналом


Псевдоним checkdnsrr

  • « define_syslog_variables
  • dns_get_mx »
  • PHP Manual
  • Сетевые функции
  • Псевдоним checkdnsrr

dns_check_record

(PHP 5, PHP 7)

dns_check_record — Псевдоним checkdnsrr()

Описание

Эта функция является псевдонимом: checkdnsrr().


Псевдоним getmxrr

  • « dns_check_record
  • dns_get_record »
  • PHP Manual
  • Сетевые функции
  • Псевдоним getmxrr

dns_get_mx

(PHP 5, PHP 7)

dns_get_mx — Псевдоним getmxrr()

Описание

Эта функция является псевдонимом: getmxrr().


Получение ресурсных записей DNS хоста

  • « dns_get_mx
  • fsockopen »
  • PHP Manual
  • Сетевые функции
  • Получение ресурсных записей DNS хоста

dns_get_record

(PHP 5, PHP 7)

dns_get_record — Получение ресурсных записей DNS хоста

Описание

dns_get_record ( string $hostname [, int $type = DNS_ANY [, array &$authns [, array &$addtl [, bool $raw = FALSE ]]]] ) : array

Производит выборку DNS-записей, соответствующих свойствам хоста hostname.

Список параметров

hostname

Параметр hostname должен быть корректным DNS-именем таким как "www.example.com". Обратное разрешение имен хостов может быть произведено с использованием нотации in-addr.arpa, однако, для этой цели лучше воспользоваться функцией gethostbyaddr().

Замечание:

В соответствии со стандартами DNS, адреса электронной почты задаются в формате user.host (например, hostmaster.example.com в отличие от hostmaster@example.com), поэтому будьте внимательны и дополнительно проверьте это значение, прежде чем использовать его в таких функциях, как mail().

type

По умолчанию dns_get_record() будет искать все возможные записи, соответствующие заданному имени хоста hostname. Чтобы сузить круг поиска, можно задать необязательный параметр type. Этот параметр может принимать следующие значения: DNS_A, DNS_CNAME, DNS_HINFO, DNS_CAA, DNS_MX, DNS_NS, DNS_PTR, DNS_SOA, DNS_TXT, DNS_AAAA, DNS_SRV, DNS_NAPTR, DNS_A6, DNS_ALL или DNS_ANY.

Замечание:

Из-за неоднозначного поведения libresolv на разных платформах, DNS_ANY может вернуть не все записи, более медленный DNS_ALL вернет все записи надежнее.

authns

Передается по ссылке и, если передан, будет заполняться ресурсными записями для удостоверяющих серверов имен (Authoritative Name Servers).

addtl

Передается по ссылке и, если передан, будет заполняться дополнительными записями (Additional Records).

raw

type будет интерпретирован, как необработанный идентификатор типа DNS (нельзя использовать константы DNS_*). Возвращаемое значение будет содержать ключ data, который необходимо проанализировать вручную.

Возвращаемые значения

Эта функция возвращает массив ассоциативных массивов или FALSE в случае возникновения ошибки. Каждый ассоциативный массив содержит по меньшей мере следующие ключи:

Основные атрибуты DNS
Атрибут | Описание
host | Запись в пространстве имен DNS, на которую ссылается оставшаяся часть данных.
class | dns_get_record() возвращает только записи класса Internet, соответственно этот параметр всегда будет принимать значение IN.
type | Строка, содержащая тип записи. Дополнительные атрибуты также будут содержаться в результирующем массиве в зависимости от типа. По одному вложенному массиву на каждый тип. См. таблицу ниже.
ttl | Время жизни ("Time To Live") оставшееся для этой записи. Это не исходное ttl записи. Оно равно исходному за вычетом времени прошедшего с момента отправки запроса на сервер.

Другие ключи ассоциативного массива, соответствующие типу 'type'
Тип записи | Дополнительные данные
A | ip: адреса IPv4 в десятичном формате с разделителями точками.
MX | pri: Приоритет почтового сервера. Чем ниже число, тем выше приоритет. target: FQDN почтового сервера. См. также dns_get_mx().
CNAME | target: FQDN места расположения в пространстве имен DNS, на которое указывает запись.
NS | target: FQDN имя сервера, который является авторитетным для этого имени хоста.
PTR | target: Расположение без указания пространства имен DNS, на которое указывает запись.
TXT | txt: Строка данных, связанных с этой записью.
HINFO | cpu: число IANA, обозначающее модель процессора компьютера, на который указывает эта запись. os: число IANA, обозначающее операционную систему компьютера, на который указывает эта запись. См. дополнительно IANA » Operating System Names.
CAA | flags: Однобайтовое битовое поле; в текущий момент определен только бит номер 0, называющийся 'critical'; другие биты зарезервированы и должны игнорироваться. tag: Имя тега CAA (буквенно-числовая строка ASCII). value: Значение тега CAA (бинарная строка, можно использовать подформаты). Более подробно читайте тут: » RFC 6844
SOA | mname: FQDN изначального компьютера, с которого получены ресурсные записи. rname: Адрес электронной почты администратора домена. serial: Порядковый номер этой ревизии запрашиваемого домена. refresh: Интервал времени (в секундах), который должны использовать вторичные сервера при обновлении удаленных копий этого домена. retry: Время ожидания (в секундах) после неудачного обновления до следующей попытки. expire: Максимальное время (в секундах), в течение которого вторичный DNS-сервер должен держать в памяти данные удаленных копий доменной зоны, прежде чем ответить отказом, когда не удается обновить данные. minimum-ttl: Минимальное время (в секундах), в течение которого клиент может работать с текущим DNS-разрешением, прежде чем ему придется повторно запрашивать это разрешение. Значение может быть замещено отдельными ресурсными записями.
AAAA | ipv6: адрес IPv6
A6(PHP >= 5.1.0) | masklen: Длина (в битах), которую нужно унаследовать от целевого адреса chain. ipv6: Адрес для этой конкретной записи, который нужно объединить с chain. chain: Запись, которую нужно дополнить данными ipv6.
SRV | pri: (Приоритет) меньшие значения должны использоваться первыми. weight: Ранжирование. Записям с большим весом отдается предпочтение. targets должен выбираться случайно. target и port: имя хоста и номер порта, на котором можно найти запрошенную службу. Дополнительную информацию можно получить по ссылке: » RFC 2782
NAPTR | order и pref: Эквивалентны pri и weight приведенным выше. flags, services, regex и replacement: Параметры, определенные в » RFC 2915.

Список изменений

Версия | Описание
7.0.16, 7.1.2 | Добавлена поддержка записей типа CAA.
5.4.0 | Добавлен параметр raw.
5.3.0 | Функция стала доступна на платформах Windows.
5.3.0 | До этого выпуска, если был задан параметр authns, то и addtl также становился обязательным. Теперь нет.

Примеры

Пример #1 Пример использования dns_get_record()

<?php
$result = dns_get_record("php.net");
print_r($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
        )

)

Пример #2 Использование dns_get_record() с DNS_ANY

Так как довольно часто требуется определить IP-адрес почтового сервера, после того как запись MX была разрешена, dns_get_record() возвращает массив addtl с соответствующими записями. Массив authns будет содержать список удостоверяющих DNS-серверов.

<?php
/* Отправим "ANY" запрос к php.net,
   создадим массивы $authns и $addtl,
   в которые будут помещен список серверов
   имен и дополнительные записи,
   соответствующие этим серверам
*/
$result = dns_get_record("php.net", DNS_ANY, $authns, $addtl);
echo "Результат = ";
print_r($result);
echo "Удостоверяющие серверы = ";
print_r($authns);
echo "Дополнительные записи = ";
print_r($addtl);
?>

Результатом выполнения данного примера будет что-то подобное:

Результат = 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
        )

)
Удостоверяющие серверы = 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
        )

)
Дополнительные записи = 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
        )

)

Примечания

Замечание:

Из соображений совместимости с версиями PHP ниже 5.3.0 на некоторых ОС стоит попробовать » PEAR класс » Net_DNS.

Смотрите также

  • dns_get_mx() - Псевдоним getmxrr
  • dns_check_record() - Псевдоним checkdnsrr


Открывает соединение с интернет-сокетом или доменным сокетом Unix

  • « dns_get_record
  • gethostbyaddr »
  • PHP Manual
  • Сетевые функции
  • Открывает соединение с интернет-сокетом или доменным сокетом Unix

fsockopen

(PHP 4, PHP 5, PHP 7)

fsockopen — Открывает соединение с интернет-сокетом или доменным сокетом Unix

Описание

fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] ) : resource

Устанавливает соединение с сокетом ресурса hostname.

PHP поддерживает целевые ресурсы в интернете и Unix-доменах в том виде, как они описаны в Список поддерживаемых транспортных протоколов. Список поддерживаемых транспортов можно получить с помощью функции stream_get_transports().

По умолчанию сокет будет открыт в блокирующем режиме. Переключить его в неблокирующих режим можно функцией stream_set_blocking().

stream_socket_client() выполняет аналогичную функцию, но предоставляет более широкий выбор настроек соединения, включающий установку неблокирующего режима и возможность предоставления потокового контекста.

Список параметров

hostname

Если установлена поддержка OpenSSL, можно использовать SSL- или TLS-протоколы соединений поверх TCP/IP при подключении к удаленному хосту. Для этого перед hostname нужно добавить префикс ssl:// или tls://.

port

Номер порта. Его можно не указывать, передав -1 для тех протоколов, которые не используют порты, например unix://.

errno

Если этот параметр предоставить, то в случае ошибки системного вызова функции connect() он будет принимать номер этой ошибки.

Если значение параметра errno равно 0, а функция вернула FALSE, значит ошибка произошла до вызова connect(). В большинстве случаев это свидетельствует о проблемах при инициализации сокета.

errstr

Сообщение об ошибке в виде строки.

timeout

Тайм-аут соединения в секундах.

Замечание:

Если требуется установить тайм-аут чтения/записи данных через сокет, используйте функцию stream_set_timeout(), т.к. параметр timeout функции fsockopen() ограничивает только время процесса установки соединения с сокетом.

Возвращаемые значения

fsockopen() возвращает файловый указатель, который можно использовать с функциями, работающие с файлами (такие как fgets(), fgetss(), fwrite(), fclose() и feof()). Если вызов завершится неудачно, функция вернет FALSE.

Ошибки

Вызывает ошибку уровня E_WARNING, если hostname не является допустимым доменом.

Примеры

Пример #1 Пример использования fsockopen()

<?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);
}
?>

Пример #2 Использование UDP-соединения

Пример ниже демонстрирует, как получить день и время от UDP-службы "daytime" (порт 13) на вашей машине.

<?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);
}
?>

Примечания

Замечание:

В зависимости от окружения, Unix-домен или тайм-аут установки подключения могут оказаться недоступными.

Внимание

Иногда UDP-сокеты получают статус открытых, даже если удаленный хост недоступен. Ошибка проявит себя только во время чтения или записи данных в/из этого сокета. Причина этого заключается в том, что протокол UDP передает данные без установки соединения, а это означает, что операционная система не устанавливает и не держит соединение с сокетом, пока не начнется передача данных.

Замечание: При указании числового адреса IPv6 (например, fe80::1) вы должны заключать его в квадратные скобки. Например, tcp://[fe80::1]:80.

Смотрите также

  • pfsockopen() - Открывает постоянное соединение с интернет-сокетом или доменным сокетом Unix
  • stream_socket_client() - Открыть соединение с интернет-сокетом или с доменным сокетом Unix
  • stream_set_blocking() - Установить блокирующий/неблокирующий режим в потоке
  • stream_set_timeout() - Установить значение тайм-аута для потока
  • fgets() - Читает строку из файла
  • fgetss() - Читает строку из файла и удаляет HTML-теги
  • fwrite() - Бинарно-безопасная запись в файл
  • fclose() - Закрывает открытый дескриптор файла
  • feof() - Проверяет, достигнут ли конец файла
  • socket_connect() - Начинает соединение с сокетом
  • Расширение Curl


Получает доменное имя хоста, соответствующее переданному IP-адресу

  • « fsockopen
  • gethostbyname »
  • PHP Manual
  • Сетевые функции
  • Получает доменное имя хоста, соответствующее переданному IP-адресу

gethostbyaddr

(PHP 4, PHP 5, PHP 7)

gethostbyaddr — Получает доменное имя хоста, соответствующее переданному IP-адресу

Описание

gethostbyaddr ( string $ip_address ) : string

Возвращает доменное имя хоста по адресу ip_address.

Список параметров

ip_address

IP-адрес хоста

Возвращаемые значения

Возвращает имя хоста в случае успеха, исходный ip_address в случае ошибки, или FALSE в случае ошибочного ввода.

Примеры

Пример #1 Простой пример использования gethostbyaddr()

<?php
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);

echo $hostname;
?>

Смотрите также

  • gethostbyname() - Получает IPv4-адрес, соответствующий переданному имени хоста
  • gethostbynamel() - Получает список IPv4-адресов, соответствующих переданному доменному имени хоста


Получает IPv4-адрес, соответствующий переданному имени хоста

  • « gethostbyaddr
  • gethostbynamel »
  • PHP Manual
  • Сетевые функции
  • Получает IPv4-адрес, соответствующий переданному имени хоста

gethostbyname

(PHP 4, PHP 5, PHP 7)

gethostbyname — Получает IPv4-адрес, соответствующий переданному имени хоста

Описание

gethostbyname ( string $hostname ) : string

Возвращает IPv4-адрес по имени хоста hostname.

Список параметров

hostname

Имя узла.

Возвращаемые значения

Возвращает адрес IPv4 или строку, содержащую неизмененный hostname при ошибке.

Примеры

Пример #1 Простой пример использования gethostbyname()

<?php
$ip = gethostbyname('www.example.com');

echo $ip;
?>

Смотрите также

  • gethostbyaddr() - Получает доменное имя хоста, соответствующее переданному IP-адресу
  • gethostbynamel() - Получает список IPv4-адресов, соответствующих переданному доменному имени хоста
  • inet_pton() - Конвертирует читаемый IP-адрес в его упакованное представление in_addr
  • inet_ntop() - Конвертирует упакованный интернет-адрес в читаемый формат


Получает список IPv4-адресов, соответствующих переданному доменному имени хоста

  • « gethostbyname
  • gethostname »
  • PHP Manual
  • Сетевые функции
  • Получает список IPv4-адресов, соответствующих переданному доменному имени хоста

gethostbynamel

(PHP 4, PHP 5, PHP 7)

gethostbynamel — Получает список IPv4-адресов, соответствующих переданному доменному имени хоста

Описание

gethostbynamel ( string $hostname ) : array

Возвращает список IPv4-адресов, в которые разрешается доменное имя хоста hostname.

Список параметров

hostname

Имя хоста.

Возвращаемые значения

Возвращает массив адресов IPv4 или FALSE, если hostname не может быть разрешено.

Примеры

Пример #1 Пример использования функции gethostbynamel()

<?php
$hosts = gethostbynamel('www.example.com');
print_r($hosts);
?>

Результат выполнения данного примера:

Array
(
    [0] => 192.0.34.166
)

Смотрите также

  • gethostbyname() - Получает IPv4-адрес, соответствующий переданному имени хоста
  • gethostbyaddr() - Получает доменное имя хоста, соответствующее переданному IP-адресу
  • checkdnsrr() - Проверяет записи DNS, соответствующие переданному имени узла Интернета или IP-адресу
  • getmxrr() - Получает записи MX, соответствующие переданному доменному имени хоста
  • the named(8) manual page


Получает имя хоста

  • « gethostbynamel
  • getmxrr »
  • PHP Manual
  • Сетевые функции
  • Получает имя хоста

gethostname

(PHP 5 >= 5.3.0, PHP 7)

gethostname — Получает имя хоста

Описание

gethostname ( void ) : string

Функция gethostname() получает стандартное имя хоста для локального компьютера.

Возвращаемые значения

Возвращает строку с именем хоста либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования gethostname()

<?php
echo gethostname(); // может вывести например: sandie

// Или вариант, который также работает в версиях до PHP 5.3
echo php_uname('n'); // может вывести например: sandie
?>

Смотрите также

  • gethostbyname() - Получает IPv4-адрес, соответствующий переданному имени хоста
  • gethostbyaddr() - Получает доменное имя хоста, соответствующее переданному IP-адресу
  • php_uname() - Возвращает информацию об операционной системе, на которой запущен PHP


Получает записи MX, соответствующие переданному доменному имени хоста

  • « gethostname
  • getprotobyname »
  • PHP Manual
  • Сетевые функции
  • Получает записи MX, соответствующие переданному доменному имени хоста

getmxrr

(PHP 4, PHP 5, PHP 7)

getmxrr — Получает записи MX, соответствующие переданному доменному имени хоста

Описание

getmxrr ( string $hostname , array &$mxhosts [, array &$weight ] ) : bool

Ищет в DNS записи MX, соответствующие hostname.

Список параметров

hostname

Имя хоста

mxhosts

Список найденных записей MX, помещенный в массив mxhosts.

weight

Если передан массив weight, то он будет заполнен полученной информацией о приоритетах.

Возвращаемые значения

Возвращает TRUE, если были найдены записи; возвращает FALSE, если записей не было найдено или произошла ошибка.

Список изменений

Версия | Описание
5.3.0 | Функция стала доступна на платформе Windows.

Примечания

Замечание:

Эта функция не должна использоваться для проверки адреса. Возвращаются только почтовые сервера, найденные в DNS, однако, согласно » RFC 2821, когда в списке нет почтовых серверов, необходимо использовать сам hostname в качестве почтового сервера с приоритетом 0.

Замечание:

Для совместимости с более ранними версиями PHP под Windows, где не было реализации этой функции, используйте класс » PEAR » Net_DNS.

Смотрите также

  • checkdnsrr() - Проверяет записи DNS, соответствующие переданному имени узла Интернета или IP-адресу
  • dns_get_record() - Получение ресурсных записей DNS хоста
  • gethostbyname() - Получает IPv4-адрес, соответствующий переданному имени хоста
  • gethostbynamel() - Получает список IPv4-адресов, соответствующих переданному доменному имени хоста
  • gethostbyaddr() - Получает доменное имя хоста, соответствующее переданному IP-адресу
  • страница руководства named(8)


Получает номер протокола по имени

  • « getmxrr
  • getprotobynumber »
  • PHP Manual
  • Сетевые функции
  • Получает номер протокола по имени

getprotobyname

(PHP 4, PHP 5, PHP 7)

getprotobyname — Получает номер протокола по имени

Описание

getprotobyname ( string $name ) : int

Функция getprotobyname() возвращает номер протокола по имени, указанном в параметре name согласно /etc/protocols.

Список параметров

name

Имя протокола.

Возвращаемые значения

Возвращает номер протокола или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования getprotobyname()

<?php
$protocol = 'tcp';
$get_prot = getprotobyname($protocol);
if ($get_prot === FALSE) {
    echo 'Протокол не найден';
} else {
    echo 'Протокол #' . $get_prot;
}
?>

Смотрите также

  • getprotobynumber() - Получает имя протокола по номеру


Получает имя протокола по номеру

  • « getprotobyname
  • getservbyname »
  • PHP Manual
  • Сетевые функции
  • Получает имя протокола по номеру

getprotobynumber

(PHP 4, PHP 5, PHP 7)

getprotobynumber — Получает имя протокола по номеру

Описание

getprotobynumber ( int $number ) : string

Функция getprotobynumber() возвращает имя протокола по номеру, указанному в параметре number согласно /etc/protocols.

Список параметров

number

Номер протокола.

Возвращаемые значения

Возвращает имя протокола в виде строки, или FALSE в случае возникновения ошибки.

Смотрите также

  • getprotobyname() - Получает номер протокола по имени


Получает номер порта, связанного с интернет-службой и протоколом

  • « getprotobynumber
  • getservbyport »
  • PHP Manual
  • Сетевые функции
  • Получает номер порта, связанного с интернет-службой и протоколом

getservbyname

(PHP 4, PHP 5, PHP 7)

getservbyname — Получает номер порта, связанного с интернет-службой и протоколом

Описание

getservbyname ( string $service , string $protocol ) : int

Функция getservbyname() возвращает порт, который соответствует параметру service для заданного протокола в параметре protocol согласно /etc/services.

Список параметров

service

Имя службы Интернета в виде строки.

protocol

Параметр protocol может быть равен "tcp" или "udp" (в нижнем регистре).

Возвращаемые значения

Возвращает номер порта, или FALSE, если service или protocol не найдены.

Примеры

Пример #1 Пример использования getservbyname()

<?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";
}
?>

Смотрите также

  • getservbyport() - Получает интернет-службу, соответствующую заданному порту и протоколу
  • См. » http://www.iana.org/assignments/port-numbers для получения полного списка номеров портов.


Получает интернет-службу, соответствующую заданному порту и протоколу

  • « getservbyname
  • header_register_callback »
  • PHP Manual
  • Сетевые функции
  • Получает интернет-службу, соответствующую заданному порту и протоколу

getservbyport

(PHP 4, PHP 5, PHP 7)

getservbyport — Получает интернет-службу, соответствующую заданному порту и протоколу

Описание

getservbyport ( int $port , string $protocol ) : string

Функция getservbyport() возвращает Интернет-службу, соответствующую заданному в параметре port порту для определенного протокола protocol согласно /etc/services.

Список параметров

port

Номер порта.

protocol

Параметр protocol может быть "tcp" or "udp" (в нижнем регистре).

Возвращаемые значения

Возвращает имя Интернет-службы в виде строки.

Смотрите также

  • getservbyname() - Получает номер порта, связанного с интернет-службой и протоколом


Вызывает функцию заголовка

  • « getservbyport
  • header_remove »
  • PHP Manual
  • Сетевые функции
  • Вызывает функцию заголовка

header_register_callback

(PHP 5 >= 5.4.0, PHP 7)

header_register_callback — Вызывает функцию заголовка

Описание

header_register_callback ( callable $callback ) : bool

Регистрирует функцию, которая будет вызвана когда PHP начнет отправлять вывод.

Параметр callback запускается сразу после того, как PHP были подготовлены все отправляемые заголовки, и перед отправкой любого другого вывода, создавая возможность для управления исходящими заголовками перед отправкой.

Список параметров

callback

Функция вызывается непосредственно перед отправкой заголовков, не получает параметров и возвращаемое значение игнорируется.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования header_register_callback()

<?php

header('Content-Type: text/plain');
header('X-Test: foo');

function foo() {
 foreach (headers_list() as $header) {
   if (strpos($header, 'X-Powered-By:') !== false) {
     header_remove('X-Powered-By');
   }
   header_remove('X-Test');
 }
}

$result = header_register_callback('foo');
echo "a";
?>

Результатом выполнения данного примера будет что-то подобное:

Content-Type: text/plain

a

Примечания

Функция header_register_callback() запускается по готовности отправки заголовков, так что любой вывод из этой функции может прервать вывод.

Замечание:

Доступ к заголовкам и их вывод будет осуществляться только в случае, если в используемом вами SAPI есть их поддержка.

Смотрите также

  • headers_list() - Возвращает список переданных заголовков (или готовых к отправке)
  • header_remove() - Удаляет ранее установленные заголовки
  • header() - Отправка HTTP-заголовка


Удаляет ранее установленные заголовки

  • « header_register_callback
  • header »
  • PHP Manual
  • Сетевые функции
  • Удаляет ранее установленные заголовки

header_remove

(PHP 5 >= 5.3.0, PHP 7)

header_remove — Удаляет ранее установленные заголовки

Описание

header_remove ([ string $name ] ) : void

Удаляет предварительно установленный функцией header() HTTP-заголовок.

Список параметров

name

Имя удаляемого заголовка.

Замечание: Это регистронезависимый параметр.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Уничтожение определенного заголовка.

<?php
header("X-Foo: Bar");
header("X-Bar: Baz");
header_remove("X-Foo");
?>

Результатом выполнения данного примера будет что-то подобное:

X-Bar: Baz

Пример #2 Уничтожение всех ранее установленных заголовков.

<?php
header("X-Foo: Bar");
header("X-Bar: Baz");
header_remove();
?>

Результатом выполнения данного примера будет что-то подобное:

Примечания

Предостережение

    Эта функция удалит все заголовки, установленные с помощью PHP, включая cookies, сессию и заголовки X-Powered-By.

Замечание:
Доступ к заголовкам и их вывод будет осуществляться только в случае, если в используемом вами SAPI есть их поддержка.

Смотрите также

  • header() - Отправка HTTP-заголовка
    •

  • headers_sent() - Проверяет, были ли отправлены заголовки
    •


Отправка HTTP-заголовка

  • « header_remove
  • headers_list »
  • PHP Manual
  • Сетевые функции
  • Отправка HTTP-заголовка

header

(PHP 4, PHP 5, PHP 7)

header — Отправка HTTP-заголовка

Описание

header ( string $header [, bool $replace = TRUE [, int $http_response_code ]] ) : void

header() используется для отправки HTTP-заголовка. В » спецификации HTTP/1.1 есть подробное описание HTTP-заголовков.

Помните, что функцию header() можно вызывать только если клиенту еще не передавались данные. То есть она должна идти первой в выводе, перед ее вызовом не должно быть никаких HTML-тегов, пустых строк и т.п. Довольно часто возникает ошибка, когда при чтении кода файловыми функциями, вроде include или require, в этом коде попадаются пробелы или пустые строки, которые выводятся до вызова header(). Те же проблемы могут возникать и при использовании PHP/HTML в одном файле.

<html>
<?php
/* Этот пример приведет к ошибке. Обратите внимание
 * на тег вверху, который будет выведен до вызова header() */
header('Location: http://www.example.com/');
exit;
?>

Список параметров

header

Строка заголовка.

Существует два специальных заголовка. Один из них начинается с "HTTP/" (регистр не важен) и используется для отправки кода состояния HTTP. Например, если веб-сервер Apache сконфигурирован таким образом, чтобы запросы к несуществующим файлам обрабатывались средствами PHP-скрипта (используя директиву ErrorDocument), вы наверняка захотите убедиться, что скрипт генерирует правильный код состояния.

<?php
header("HTTP/1.0 404 Not Found");
?>

Другим специальным видом заголовков является "Location:". В этом случае функция не только отправляет этот заголовок браузеру, но также возвращает ему код состояния REDIRECT (302), если ранее не был установлен код 201 или 3xx.

<?php
header("Location: http://www.example.com/"); /* Перенаправление браузера */

/* Убедиться, что код ниже не выполнится после перенаправления .*/
exit;
?>

replace

Необязательный параметр replace определяет, надо ли заменять предыдущий аналогичный заголовок или заголовок того же типа. По умолчанию заголовок будет заменен, но если передать FALSE, можно задать несколько однотипных заголовков. Например:

<?php
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', false);
?>

http_response_code

Принудительно задает код ответа HTTP. Следует учитывать, что это будет работать, только если строка header не является пустой.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
5.1.2 | Стало невозможным отправлять более одного заголовка за раз. Это сделано для защиты от атак, связанных с инъекцией заголовков.

Примеры

Пример #1 Диалог загрузки

Если нужно предупредить пользователя о необходимости сохранить пересылаемые данные, такие как сгенерированный PDF-файл, можно воспользоваться заголовком » Content-Disposition, который подставляет рекомендуемое имя файла и заставляет браузер показать диалог загрузки.

<?php
// Будем передавать PDF
header('Content-Type: application/pdf');

// Он будет называться downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');

// Исходный PDF-файл original.pdf
readfile('original.pdf');
?>

Пример #2 Директивы для работы с кешем

PHP-скрипты часто генерируют динамический контент, который не должен кешироваться клиентским браузером или какими-либо промежуточными обработчиками, вроде прокси-серверов. Можно принудительно отключить кеширование на многих прокси-серверах и браузерах, передав заголовки:

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Дата в прошлом
?>

Замечание:

В некоторых случаях ваши страницы не будут кешироваться браузером, даже если вы не передавали этих заголовков. В браузерах есть определенные настройки, с помощью которых пользователь может изменять обычный ход кеширования, отключать его. Вы должны переопределять любые настройки, которые могут повлиять на кеширование скрипта, отправляя приведенные выше заголовки.

Кроме того, для случаев когда используются сессии, можно задать настройки конфигурации session_cache_limiter() и session.cache_limiter. Эти настройки можно использовать для автоматической генерации заголовков управляющих кешированием.

Примечания

Замечание:

Доступ к заголовкам и их вывод будет осуществляться только в случае, если в используемом вами SAPI есть их поддержка.

Замечание:

Чтобы обойти эту проблему, можно буферизовать вывод скрипта. В этом случае все выводимые данные будут буферизоваться на сервере, пока не будет дана явная команда на пересылку данных. Управлять буферизацией можно вручную функциями ob_start() и ob_end_flush(), либо задав директиву output_buffering в конфигурационном файле php.ini, или же настроив соответствующим образом конфигурацию сервера.

Замечание:

Строка заголовка состояния HTTP всегда будет отсылаться клиенту первой, вне зависимости от того был соответствующий вызов функции header() первым или нет. Это состояние можно перезаписать, вызывая header() с новой строкой состояния в любое время, когда можно отправлять HTTP-заголовки.

Замечание:

В Microsoft Internet Explorer 4.01 есть баг, из-за которого это не работает. Обойти его никак нельзя. В Microsoft Internet Explorer 5.5 также есть этот баг, но его уже можно устранить установкой Service Pack 2 или выше.

Замечание: Если включен безопасный режим, то uid скрипта будет добавляться к realm части WWW-Authenticate заголовка (используется для HTTP-аутентификации).

Замечание:

Спецификация HTTP/1.1 требует указывать абсолютный URI в качестве аргумента » Location:, включающий схему, имя хоста и абсолютный путь, хотя некоторые клиенты способны принимать и относительные URI. Абсолютный URI можно построить самостоятельно с помощью $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] и dirname():

<?php
/* Перенаправление браузера на другую страницу в той же директории, что и
изначально запрошенная */
$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
?>

Замечание:

Идентификатор сессии не будет передаваться вместе с заголовком Location, даже если включена настройка session.use_trans_sid. Его нужно передавать вручную, используя константу SID.

Смотрите также

  • headers_sent() - Проверяет, были ли отправлены заголовки
  • setcookie() - Отправляет cookie
  • http_response_code() - Получает или устанавливает код ответа HTTP
  • header_remove() - Удаляет ранее установленные заголовки
  • Раздел документации HTTP-аутентификации


Возвращает список переданных заголовков (или готовых к отправке)

  • « header
  • headers_sent »
  • PHP Manual
  • Сетевые функции
  • Возвращает список переданных заголовков (или готовых к отправке)

headers_list

(PHP 5, PHP 7)

headers_list — Возвращает список переданных заголовков (или готовых к отправке)

Описание

headers_list ( void ) : array

Функция 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(23) "X-Powered-By: PHP/5.1.3"
  [1]=>
  string(19) "Set-Cookie: foo=bar"
  [2]=>
  string(18) "X-Sample-Test: foo"
  [3]=>
  string(24) "Content-type: text/plain"
}

Примечания

Замечание:

Доступ к заголовкам и их вывод будет осуществляться только в случае, если в используемом вами SAPI есть их поддержка.

Смотрите также

  • headers_sent() - Проверяет, были ли отправлены заголовки
  • header() - Отправка HTTP-заголовка
  • setcookie() - Отправляет cookie
  • apache_response_headers() - Возвращает список всех HTTP-заголовков ответа Apache
  • http_response_code() - Получает или устанавливает код ответа HTTP


Проверяет, были ли отправлены заголовки

  • « headers_list
  • http_response_code »
  • PHP Manual
  • Сетевые функции
  • Проверяет, были ли отправлены заголовки

headers_sent

(PHP 4, PHP 5, PHP 7)

headers_sent — Проверяет, были ли отправлены заголовки

Описание

headers_sent ([ string &$file [, int &$line ]] ) : bool

Проверяет, были ли отправлены заголовки.

Нельзя отправить дополнительные строки заголовков, используя функцию header(), если заголовки уже отправлены. Используя эту функцию, можно предупредить ошибки, связанные с HTTP-заголовками. Другим вариантом является использование буферизации вывода.

Список параметров

file

Если заданы дополнительные параметры file и line, то функция headers_sent() поместит имя исходного файла PHP и номер строки, с которой начинается вывод в переменные file и line.

line

Номер строки, с которой начинается вывод.

Возвращаемые значения

Функция headers_sent() вернет FALSE, если HTTP-заголовки не были отправлены, либо TRUE если отправлены.

Примеры

Пример #1 Пример использования headers_sent()

<?php

// Если не было отправлено ни одного заголовка, то отправить один
if (!headers_sent()) {
    header('Location: http://www.example.com/');
    exit;
}

// Пример использования необязательных параметров file и line.
// Необходимо отметить, что $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;
}

?>

Примечания

Замечание:

Доступ к заголовкам и их вывод будет осуществляться только в случае, если в используемом вами SAPI есть их поддержка.

Смотрите также

  • ob_start() - Включение буферизации вывода
  • trigger_error() - Вызывает пользовательскую ошибку/предупреждение/уведомление
  • headers_list() - Возвращает список переданных заголовков (или готовых к отправке)
  • См. информацию по функции header() - Отправка HTTP-заголовка для более детальной информации.


Получает или устанавливает код ответа HTTP

  • « headers_sent
  • inet_ntop »
  • PHP Manual
  • Сетевые функции
  • Получает или устанавливает код ответа HTTP

http_response_code

(PHP 5 >= 5.4.0, PHP 7)

http_response_code — Получает или устанавливает код ответа HTTP

Описание

http_response_code ([ int $response_code ] ) : mixed

Получает или задает коды ответов HTTP.

Список параметров

response_code

Код ответа устанавливается с помощью опционального параметра response_code.

Возвращаемые значения

Если response_code задан, то будет возвращен предыдущий код статуса. Если response_code не задан, то будет возвращен текущий код статуса. Оба этих значения будут по умолчанию иметь код состояния 200, если они используются в окружении веб-сервера.

Если response_code не задан и используется не в окружении веб-сервера (например, в CLI), то будет возвращено FALSE. Если response_code задан и используется не в окружении веб-сервера, то будет возвращено TRUE (но только если не был установлен предыдущий код статуса).

Примеры

Пример #1 Использование http_response_code() в окружении веб-сервера

<?php

// Берем текущий код и устанавливаем новый
var_dump(http_response_code(404));

// Берем новый код
var_dump(http_response_code());
?>

Результат выполнения данного примера:

int(200)
int(404)

Пример #2 Использование http_response_code() в CLI

<?php

// Берем текущий код по умолчанию
var_dump(http_response_code());

// Устанавливаем код
var_dump(http_response_code(201));

// Берем новый код
var_dump(http_response_code());
?>

Результат выполнения данного примера:

bool(false)
bool(true)
int(201)

Смотрите также

  • header() - Отправка HTTP-заголовка
  • headers_list() - Возвращает список переданных заголовков (или готовых к отправке)


Конвертирует упакованный интернет-адрес в читаемый формат

  • « http_response_code
  • inet_pton »
  • PHP Manual
  • Сетевые функции
  • Конвертирует упакованный интернет-адрес в читаемый формат

inet_ntop

(PHP 5 >= 5.1.0, PHP 7)

inet_ntop — Конвертирует упакованный интернет-адрес в читаемый формат

Описание

inet_ntop ( string $in_addr ) : string

Эта функция конвертирует 32-битный IPv4 или 128-битный IPv6-адрес (если PHP был собран с поддержкой IPv6) в соответствующее строковое представление адреса.

Список параметров

in_addr

32-битный IPv4-адрес или 128-битный IPv6-адрес.

Возвращаемые значения

Возвращает строковое представление адреса или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования inet_ntop()

<?php
$packed = chr(127) . chr(0) . chr(0) . chr(1);
$expanded = inet_ntop($packed);

/* Выведет: 127.0.0.1 */
echo $expanded;

$packed = str_repeat(chr(0), 15) . chr(1);
$expanded = inet_ntop($packed);

/* Выведет: ::1 */
echo $expanded;
?>

Список изменений

Версия | Описание
5.3.0 | Эта функция стала доступна на платформах Windows.

Смотрите также

  • long2ip() - Конвертирует целое число в IPv4-адрес
  • ip2long() - Конвертирует строку, содержащую IPv4-адрес в целое число
  • inet_pton() - Конвертирует читаемый IP-адрес в его упакованное представление in_addr


Конвертирует читаемый IP-адрес в его упакованное представление in_addr

  • « inet_ntop
  • ip2long »
  • PHP Manual
  • Сетевые функции
  • Конвертирует читаемый IP-адрес в его упакованное представление in_addr

inet_pton

(PHP 5 >= 5.1.0, PHP 7)

inet_pton — Конвертирует читаемый IP-адрес в его упакованное представление in_addr

Описание

inet_pton ( string $address ) : string

Эта функция конвертирует читаемый IPv4- или IPv6-адрес (если PHP был собран с поддержкой IPv6) в адрес, соответствующий 32-битной или 128-битной бинарной структуре.

Список параметров

address

Читаемый IPv4- или IPv6-адрес.

Возвращаемые значения

Возвращает представление in_addr заданного в параметре address адреса, или FALSE если задан синтаксически неверный address (к примеру, IPv4-адрес без точек или IPv6-адрес без двоеточий).

Примеры

Пример #1 Пример использования inet_pton()

<?php
$in_addr = inet_pton('127.0.0.1');

$in6_addr = inet_pton('::1');
?>

Список изменений

Версия | Описание
5.3.0 | Эта функция стала доступна на платформах Windows.

Смотрите также

  • ip2long() - Конвертирует строку, содержащую IPv4-адрес в целое число
  • long2ip() - Конвертирует целое число в IPv4-адрес
  • inet_ntop() - Конвертирует упакованный интернет-адрес в читаемый формат


Конвертирует строку, содержащую IPv4-адрес в целое число

  • « inet_pton
  • long2ip »
  • PHP Manual
  • Сетевые функции
  • Конвертирует строку, содержащую IPv4-адрес в целое число

ip2long

(PHP 4, PHP 5, PHP 7)

ip2long — Конвертирует строку, содержащую IPv4-адрес в целое число

Описание

ip2long ( string $ip_address ) : int

Функция ip2long() преобразует IPv4-адрес сети Интернет из стандартного формата (строка с точками) в целое число.

Функция ip2long() также будет работать с неполными IP-адресами. См. » http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm для более подробной информации.

Список параметров

ip_address

Адрес в стандартном формате.

Возвращаемые значения

Возвращает целое число или FALSE, если параметр ip_address содержит ошибку.

Список изменений

Версия | Описание
5.5.0 | До этой версии в Windows ip2long() иногда могло быть возвращено корректное число, даже если был передан некорректный IPv4-адрес.
5.2.10 | До этой версии функция ip2long() могла иногда возвращать верное число, даже если отправленное значение не было Интернет-адресом (IPv4) в точечном формате.

Примеры

Пример #1 Пример использования ip2long()

<?php
$ip = gethostbyname('www.example.com');
$out = "Следующие URL эквивалентны:<br />\n";
$out .= 'http://www.example.com/, http://' . $ip . '/, и http://' . sprintf("%u", ip2long($ip)) . "/<br />\n";
echo $out;
?>

Пример #2 Отображение IP-адресов

Второй пример показывает как выводить сконвертированные адреса с помощью функции printf():

<?php
$ip   = gethostbyname('www.example.com');
$long = ip2long($ip);

if ($long == -1 || $long === FALSE) {
    echo 'Неверный IP-адрес, попробуйте еще раз';
} else {
    echo $ip   . "\n";            // 192.0.34.166
    echo $long . "\n";            // -1073732954
    printf("%u\n", ip2long($ip)); // 3221234342
}
?>

Примечания

Замечание:

Ввиду того, что тип PHP integer является знаковым, и на 32-битных системах многие IP-адреса будут представлены в виде отрицательных чисел, необходимо использовать "%u" в функции sprintf() или printf() для получения IP-адреса в строковом беззнаковом виде.

Замечание:

Функция ip2long() возвратит FALSE для IP 255.255.255.255 в PHP 5 <= 5.0.2 и -1 в PHP 5 <=5.2.4 на 64-битных системах. Это было исправлено в PHP 5.2.5, теперь возвращается 4294967295. В 32-битных системах будет возвращено -1 из-за целочисленного переполнения.

Смотрите также

  • long2ip() - Конвертирует целое число в IPv4-адрес
  • sprintf() - Возвращает отформатированную строку


Конвертирует целое число в IPv4-адрес

  • « ip2long
  • openlog »
  • PHP Manual
  • Сетевые функции
  • Конвертирует целое число в IPv4-адрес

long2ip

(PHP 4, PHP 5, PHP 7)

long2ip — Конвертирует целое число в IPv4-адрес

Описание

long2ip ( int $proper_address ) : string

Функция long2ip() преобразует из представления в виде целого числа интернет-адреса в формат с точками (то есть aaa.bbb.ccc.ddd).

Список параметров

proper_address

Правильное представление адреса в виде целого числа.

Возвращаемые значения

Возвращает IP-адрес Интернета в виде строки.

Список изменений

Версия | Описание
7.1.0 | Тип параметра proper_address изменен с типа string на тип integer.

Примечания

Замечание:

На 32-битных архитектурах преобразование строки с числами в целочисленное значение будет некорректно для чисел, больших PHP_INT_MAX.

Смотрите также

  • ip2long() - Конвертирует строку, содержащую IPv4-адрес в целое число


Открывает соединение к системному журналу

  • « long2ip
  • pfsockopen »
  • PHP Manual
  • Сетевые функции
  • Открывает соединение к системному журналу

openlog

(PHP 4, PHP 5, PHP 7)

openlog — Открывает соединение к системному журналу

Описание

openlog ( string $ident , int $option , int $facility ) : bool

Функция openlog() открывает соединение к системному журналу для программы.

Использование openlog() не является обязательным. Эта функция при необходимости будет вызвана функцией syslog() автоматически, при этом параметр ident будет по умолчанию равен FALSE.

Список параметров

ident

Строка ident добавляется к каждому сообщению.

option

Аргумент option используется для указания используемых опций журналирования при создании записи журнала.

Опции openlog()
Константа | Описание
LOG_CONS | если при отправке данных системному журналу происходит ошибка, перевести вывод непосредственно в системную консоль
LOG_NDELAY | открыть соединение с журналом без задержки
LOG_ODELAY | (по умолчанию) отложить открытие соединения до вывода первого сообщения в журнал
LOG_PERROR | выводить вместе со стандартной ошибкой сообщение журнала
LOG_PID | добавить PID к каждому сообщению
Можно использовать одну или сразу несколько опций. При использовании нескольких опций необходимо разделять их OR, к примеру, для открытия соединения без задержки, записи в консоль и включения PID в каждое из сообщений, необходима следующая комбинация опций: LOG_CONS | LOG_NDELAY | LOG_PID

facility

Параметр facility используется для определения типа программы, создавшей сообщение журнала. Это позволяет определить (в конфигурации syslog) как будут обработаны сообщения журнала, поступающие из разных объектов.

Типы программ openlog()
Константа | Описание
LOG_AUTH | сообщения по безопасности/авторизации (необходимо взамен использовать LOG_AUTHPRIV в системах, где эта константа предопределена)
LOG_AUTHPRIV | сообщения по безопасности/авторизации (частное)
LOG_CRON | планировщик задач (cron и at)
LOG_DAEMON | другие системные службы
LOG_KERN | сообщения ядра
LOG_LOCAL0 ... LOG_LOCAL7 | зарезервированы для локального использования, недоступны в Windows
LOG_LPR | подсистема печати LPR
LOG_MAIL | почтовая подсистема
LOG_NEWS | подсистема новостей USENET
LOG_SYSLOG | внутренние сообщения syslogd
LOG_USER | общие сообщения на уровне пользователя
LOG_UUCP | подсистема UUCP

Замечание:

LOG_USER - единственный верный тип журналирования в операционных системах Windows

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • syslog() - Генерирует сообщение для системного журнала
  • closelog() - Закрывает соединение с системным журналом


Открывает постоянное соединение с интернет-сокетом или доменным сокетом Unix

  • « openlog
  • setcookie »
  • PHP Manual
  • Сетевые функции
  • Открывает постоянное соединение с интернет-сокетом или доменным сокетом Unix

pfsockopen

(PHP 4, PHP 5, PHP 7)

pfsockopen — Открывает постоянное соединение с интернет-сокетом или доменным сокетом Unix

Описание

pfsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] ) : resource

Эта функция является полным аналогом функции fsockopen() с той лишь разницей, что соединение не закрывается после завершения работы скрипта. Это версия функции fsockopen() с возможностью постоянного подключения.

Список параметров

Для получения информации о параметре, см. документацию по fsockopen().

Смотрите также

  • fsockopen() - Открывает соединение с интернет-сокетом или доменным сокетом Unix


Отправляет cookie

  • « pfsockopen
  • setrawcookie »
  • PHP Manual
  • Сетевые функции
  • Отправляет cookie

setcookie

(PHP 4, PHP 5, PHP 7)

setcookie — Отправляет cookie

Описание

setcookie ( string $name [, string $value = "" [, int $expires = 0 [, string $path = "" [, string $domain = "" [, bool $secure = FALSE [, bool $httponly = FALSE ]]]]]] ) : bool
setcookie ( string $name [, string $value = "" [, array $options = [] ]] ) : bool

setcookie() задает cookie, которое будет передано клиенту вместе с другими HTTP-заголовками. Как и любой другой заголовок, cookie должны передаваться до того как будут выведены какие-либо другие данные скрипта (это ограничение протокола). Это значит, что в скрипте вызовы этой функции должны располагаться до остального вывода, включая вывод тегов <html> и <head>, а также пустые строки и пробельные символы.

После передачи клиенту cookie станут доступны через массив $_COOKIE при следующей загрузке страницы. Значения cookie также есть в $_REQUEST.

Список параметров

» RFC 6265 дает конкретные указания, как нужно интерпретировать каждый из параметров setcookie().

name

Название cookie.

value

Значение cookie. Это значение будет сохранено на клиентском компьютере; не записывайте в cookie секретные данные. Значение, присвоенное cookie c именем name, допустим, 'cookiename', будет доступно через $_COOKIE['cookiename'].

expires

Время, когда срок действия cookie истекает. Это метка времени Unix, то есть количество секунд с начала эпохи. Другими словами, желательно задавать это время с помощью функции time(), прибавляя время в секундах, через которое срок действия cookie должен истечь. Либо можно воспользоваться функцией mktime(). time()+60*60*24*30 установит срок действия cookie 30 дней. Если задать 0 или пропустить этот аргумент, срок действия cookie истечет с окончанием сессии (при закрытии браузера).

Замечание:

Можно заметить, что expires принимает в качестве значения метку времени Unix, а хранит его в формате Wdy, DD-Mon-YYYY HH:MM:SS GMT. PHP делает это преобразование автоматически.

path

Путь к директории на сервере, из которой будут доступны cookie. Если задать '/', cookie будут доступны во всем домене domain. Если задать '/foo/', cookie будут доступны только из директории /foo/ и всех ее поддиректорий (например, /foo/bar/) домена domain. По умолчанию значением является текущая директория, в которой cookie устанавливается.

domain

(Под)домен, которому доступны cookie. Задание поддомена (например, 'www.example.com') сделает cookie доступными в нем и во всех его поддоменах (например, w2.www.example.com). Для того, чтобы сделать cookie доступными для всего домена (включая поддомены), нужно просто указать имя домена (то есть 'example.com').

Старые браузеры, следующие устаревшему документу » RFC 2109, могут требовать . перед доменом, чтобы включались все поддомены.

secure

Указывает на то, что значение cookie должно передаваться от клиента по защищенному соединению HTTPS. Если задано TRUE, cookie от клиента будет передано на сервер, только если установлено защищенное соединение. При передаче cookie от сервера клиенту программист веб-сервера должен следить за тем, чтобы cookie этого типа передавались по защищенному каналу (стоит обратить внимание на $_SERVER["HTTPS"]).

httponly

Если задано TRUE, cookie будут доступны только через HTTP-протокол. То есть cookie в этом случае не будут доступны скриптовым языкам, вроде JavaScript. Эта возможность была предложена в качестве меры, эффективно снижающей количество краж личных данных посредством XSS-атак (несмотря на то, что поддерживается не всеми браузерами). Стоит однако отметить, что вокруг этой возможности часто возникают споры о ее эффективности и целесообразности. Аргумент добавлен в PHP 5.2.0. Может принимать значения TRUE или FALSE.

options

Ассоциативный массив (array), который может иметь любой из ключей: expires, path, domain, secure, httponly и samesite. Значения имеют тот же смысл, как описано в параметрах с соответсвующим именем. Значение элемента samesite должно быть либо None, либо Lax, либо Strict. Если какая-либо из допустимых опций не указана, ее значения по умолчанию совпадают с значениями по умолчанию для явных параметров. Если элемент samesite не указан, cookie-атрибут SameSite не установлен.

Возвращаемые значения

Если перед вызовом функции клиенту уже передавался какой-либо вывод (теги, пустые строки, пробелы, текст и т.п.), setcookie() потерпит неудачу и вернет FALSE. Если setcookie() успешно отработает, то вернет TRUE. Это, однако, не означает, что клиентское приложение (браузер) правильно приняло и обработало cookie.

Примеры

Ниже представлено несколько примеров, как отправлять cookie:

Пример #1 Пример использования setcookie()

<?php
$value = 'что-то откуда-то';

setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600);  /* срок действия 1 час */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1);
?>

Стоит отметить, что значение cookie перед отправкой клиенту подвергается URL-кодированию. При обратном получении значение cookie декодируется и помещается в переменную, с тем же именем, что и имя cookie. Если вы не хотите, чтобы значения кодировались, используйте функцию setrawcookie() (работает в PHP 5). Посмотреть содержимое наших тестовых cookie можно, запустив один из следующих примеров:

<?php
// Вывести одно конкретное значение cookie
echo $_COOKIE["TestCookie"];

// В целях тестирования и отладки может пригодиться вывод всех cookie
print_r($_COOKIE);
?>

Пример #2 Пример удаления cookie посредством setcookie()

Чтобы удалить cookie достаточно в качестве срока действия указать какое-либо время в прошлом. Это запустит механизм браузера, удаляющий истекшие cookie. В примерах ниже показано, как удалить cookie, заданные в предыдущих примерах:

<?php
// установка даты истечения срока действия на час назад
setcookie("TestCookie", "", time() - 3600);
setcookie("TestCookie", "", time() - 3600, "/~rasmus/", "example.com", 1);
?>

Пример #3 setcookie() и массивы

Имеется возможность помещать в cookie массивы. Для этого каждому cookie нужно дать имя в соответствии с правилами именования массивов. Такая возможность позволяет поместить столько значений, сколько имеется элементов в массиве. При обратном получении все эти значения будут помещены в массив с именем этого cookie:

<?php
// отправка cookie
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");

// после перезагрузки страницы, выведем cookie
if (isset($_COOKIE['cookie'])) {
    foreach ($_COOKIE['cookie'] as $name => $value) {
        $name = htmlspecialchars($name);
        $value = htmlspecialchars($value);
        echo "$name : $value <br />\n";
    }
}
?>

Результат выполнения данного примера:

three : cookiethree
two : cookietwo
one : cookieone

Список изменений

Версия | Описание
7.3.0 | Добавлена альтернативная подпись, поддерживающая массив опций options. Эта подпись поддерживает также настройку cookie-атрибута SameSite.
5.5.0 | Теперь атрибут max-age включен в заголовок, отправляемый клиенту Set-Cookie.
5.2.0 | Добавлен параметр httponly.

Примечания

Замечание:

Чтобы иметь возможность отправлять вывод скрипта до вызова этой функции, можно воспользоваться буферизацией. В этом случае весь вывод скрипта помещается в буфер на сервере и остается там, пока вы явно не отправите его браузеру. Управление буферизацией осуществляется функциями ob_start() и ob_end_flush() в скрипте, либо можно задать директиву output_buffering в файле php.ini или конфигурационных файлах сервера.

Замечание:

Если PHP-директива register_globals включена (задано значение on), значения cookie помимо всего прочего будут помещаться в переменные. Для примеров выше будет существовать переменная $TestCookie. Тем не менее, рекомендуется использовать $_COOKIE.

Общие замечания:

  • Cookie станут видимыми только после перезагрузки страницы, для которой они должны быть видны. Для проверки, правильно ли cookie установились, проверьте их при следующей загрузке страницы до истечения срока их действия. Срок действия cookie задается в параметре expires. Удобно проверять существование cookie простым вызовом print_r($_COOKIE);.
  • При удалении cookie должны быть заданы те же параметры, что и при установке. Если в качестве значения задать пустую строку или FALSE, а остальные параметры задать соответственно предыдущему вызову, установившему cookie, тогда cookie c заданным именем будет удалено с клиентской машины. Внутренне это выглядит так: cookie присваивается значение 'deleted', а срок действия переносится на год в прошлое.
  • Так как установка значения FALSE приведет к удалению cookie, не следует задавать cookie значения булевого типа. Вместо этого можно использовать 0 для FALSE и 1 для TRUE.
  • Cookie можно именовать, как массивы, и они будут доступны в PHP-скрипте, как массивы, но на пользовательской машине они будут храниться в виде отдельных записей. Для задания cookie c множеством имен и значений желательно использовать функцию explode(). Не рекомендуется для этих целей использовать функцию serialize(), так как это негативно сказывается на безопасности скрипта.

При многократных вызовах setcookie() функции выполняются в том порядке, в котором вызывались.

Смотрите также

  • header() - Отправка HTTP-заголовка
  • setrawcookie() - Отправляет cookie без URL-кодирования значения
  • раздел cookies
  • » RFC 6265
  • » RFC 2109


Отправляет cookie без URL-кодирования значения

  • « setcookie
  • socket_get_status »
  • PHP Manual
  • Сетевые функции
  • Отправляет cookie без URL-кодирования значения

setrawcookie

(PHP 5, PHP 7)

setrawcookie — Отправляет cookie без URL-кодирования значения

Описание

setrawcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = FALSE [, bool $httponly = FALSE ]]]]]] ) : bool
setrawcookie ( string $name [, string $value [, array $options = [] ]] ) : bool

Функция setrawcookie() является полным аналогом функции setcookie(), за исключением того, что значение cookie не будет автоматически закодировано при отправке браузеру.

Список параметров

Для получения информации по параметру, см. документацию по функции setcookie().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3.0 | Добавлена альтернативная подпись, поддерживающая массив опций options. Эта подпись поддерживает также настройку cookie-атрибута SameSite.
5.5.0 | Атрибут Max-Age теперь добавляется в заголовок Set-Cookie, отправляемый клиенту.
5.2.0 | Был добавлен параметр httponly.

Смотрите также

  • setcookie() - Отправляет cookie


Псевдоним stream_get_meta_data

  • « setrawcookie
  • socket_set_blocking »
  • PHP Manual
  • Сетевые функции
  • Псевдоним stream_get_meta_data

socket_get_status

(PHP 4, PHP 5, PHP 7)

socket_get_status — Псевдоним stream_get_meta_data()

Описание

Эта функция является псевдонимом: stream_get_meta_data().


Псевдоним stream_set_blocking

  • « socket_get_status
  • socket_set_timeout »
  • PHP Manual
  • Сетевые функции
  • Псевдоним stream_set_blocking

socket_set_blocking

(PHP 4, PHP 5, PHP 7)

socket_set_blocking — Псевдоним stream_set_blocking()

Описание

Эта функция является псевдонимом: stream_set_blocking().


Псевдоним stream_set_timeout

  • « socket_set_blocking
  • syslog »
  • PHP Manual
  • Сетевые функции
  • Псевдоним stream_set_timeout

socket_set_timeout

(PHP 4, PHP 5, PHP 7)

socket_set_timeout — Псевдоним stream_set_timeout()

Описание

Эта функция является псевдонимом: stream_set_timeout().


Генерирует сообщение для системного журнала

  • « socket_set_timeout
  • RRD »
  • PHP Manual
  • Сетевые функции
  • Генерирует сообщение для системного журнала

syslog

(PHP 4, PHP 5, PHP 7)

syslog — Генерирует сообщение для системного журнала

Описание

syslog ( int $priority , string $message ) : bool

Функция syslog() генерирует сообщение, которое направляется в системный журнал.

По поводу информации по установке пользовательского обработчика сообщений журнала см. Unix руководство в части syslog.conf (5). Дополнительную информацию по функционалу syslog можно получить с помощью man для syslog (3) на Unix-машинах.

Список параметров

priority

Параметр priority - это комбинация типа и уровня. Возможными значениями являются:

Приоритеты syslog() (по убыванию)
Константа | Описание
LOG_EMERG | система непригодна
LOG_ALERT | необходимы незамедлительные меры
LOG_CRIT | критические условия
LOG_ERR | условия ошибки
LOG_WARNING | условия предупреждения
LOG_NOTICE | нормальные, но значительное условие
LOG_INFO | информационное сообщение
LOG_DEBUG | сообщение отладки

message

Отсылаемое сообщение, за исключением того, что два символа %m будут заменены строкой сообщения об ошибке (strerror), соответствующей текущему значению errno.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования syslog()

<?php
// открыть syslog, включить в сообщение ID процесса, также отправить
// сообщение, и использовать определенный пользователем
// механизм журналирования
openlog("myScriptLog", LOG_PID | LOG_PERROR, LOG_LOCAL0);

// некий код

if (authorized_client()) {
    // что-нибудь сделать
} else {
    // неавторизованный клиент!
    // отправить сообщение журнала о попытке
    $access = date("Y/m/d H:i:s");
    syslog(LOG_WARNING, "Неавторизованный клиент: $access {$_SERVER['REMOTE_ADDR']} ({$_SERVER['HTTP_USER_AGENT']})");
}

closelog();
?>

Примечания

На Windows NT служба syslog эмулируется, используя журнал событий (Event Log).

Замечание:

Использование значений с LOG_LOCAL0 по LOG_LOCAL7 для параметра facility в функции openlog() недоступно в Windows.

Смотрите также

  • openlog() - Открывает соединение к системному журналу
  • closelog() - Закрывает соединение с системным журналом


RRDtool

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Процедурный пример PECL/rrd
    • Объектно-ориентированный пример PECL/rrd
  • Функции RRD
    • rrd_create — Создать файл rrd
    • rrd_error — Получить последнее сообщение об ошибке
    • rrd_fetch — Извлечь данные для графика в виде массива
    • rrd_first — Возвращает отметку времени первого образца из файла rrd
    • rrd_graph — Создает изображение из данных
    • rrd_info — Получает информацию о файле rrd
    • rrd_last — Возвращает отметку времени unix последнего образца
    • rrd_lastupdate — Получает информацию о последних обновленных данных
    • rrd_restore — Восстанавливает файл RRD из дампа XML
    • rrd_tune — Настраивает некоторые опции заголовка файла базы данных RRD
    • rrd_update — Обновляет базу данных RRD
    • rrd_version — Получает информацию о базовой библиотеке rrdtool
    • rrd_xport — Экспортирует информацию о базе данных RRD
    • rrdc_disconnect — Закрыть любые незавершенные подключения к демону кеширования rrd
  • RRDCreator — Класс RRDCreator
    • RRDCreator::addArchive — Adds RRA - archive of data values for each data source
    • RRDCreator::addDataSource — Adds data source definition for RRD database
    • RRDCreator::__construct — Creates new RRDCreator instance
    • RRDCreator::save — Saves the RRD database to a file
  • RRDGraph — Класс RRDGraph
    • RRDGraph::__construct — Creates new RRDGraph instance
    • RRDGraph::save — Saves the result of query into image
    • RRDGraph::saveVerbose — Saves the RRD database query into image and returns the verbose information about generated graph
    • RRDGraph::setOptions — Sets the options for rrd graph export
  • RRDUpdater — Класс RRDUpdater
    • RRDUpdater::__construct — Создает новый объект RRDUpdater
    • RRDUpdater::update — Обновляет файл базы данных RRD


Введение

Модуль PECL/rrd предоставляет связь с библиотекой С RRDtool. RRDtool - это открытая система высокопроизводительного логирования данных и построения графиков временных рядов.

Домашняя страница RRDtool: » http://www.mrtg.org/rrdtool/.


Требования

Для начала вам необходимо установить библиотеку librrd. Самый простой вариант - это использовать пакет librrd-dev вашего дистрибутива Linux. PECL/rrd тестировался с librrd 1.4.3, более новые или старые версии могут не работать. PECL/rrd тестировался с PHP 5.3.2 и выше.

Внимание

Librrd не потокобезопасно. В librrd существует множество глобальных и разделяемых состояний. Использовать данный модуль в многопоточном окружении, например, Apache2 mpm worker, не безопасно. Если используется множество параллельных запросов, то один из них может поменять глобальное состояние и оно скажется на других запросах.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/rrd.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • RRD
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Процедурный пример PECL/rrd »
  • PHP Manual
  • RRD
  • Примеры

Примеры

Содержание

  • Процедурный пример PECL/rrd
  • Объектно-ориентированный пример PECL/rrd


Процедурный пример PECL/rrd

Пример #1 Использование rrd в процедурном стиле

<?php
$rrdFile = dirname(__FILE__) . "/speed.rrd";

//создание файла rrd
rrd_create($rrdFile,
 array(
  "--start",920804400,
  "DS:speed:COUNTER:600:U:U",
  "RRA:AVERAGE:0.5:1:24",
  "RRA:AVERAGE:0.5:6:10"
  )
);

//обновление файла rrd
rrd_update($rrdFile,
 array(
  "920804700:12345",
  "920805000:12357"
  )
);

//вывод графика
rrd_graph(dirname(__FILE__) . "/speed.png",
 array(
  "--start", "920804400",
  "--end", "920808000",
  "--vertical-label", "m/s",
  "DEF:myspeed=$rrdFile:speed:AVERAGE",
  "CDEF:realspeed=myspeed,1000,*",
  "LINE2:realspeed#FF0000"
 )
);
?>


Объектно-ориентированный пример PECL/rrd

Пример #1 Использование rrd в объектно-ориентированном стиле

<?php
$rrdFile = dirname(__FILE__) . "/speed.rrd";
$outputPngFile = dirname(__FILE__) . "/speed.png";

$creator = new RRDCreator($rrdFile, "now -10d", 500);
$creator->addDataSource("speed:COUNTER:600:U:U");
$creator->addArchive("AVERAGE:0.5:1:24");
$creator->addArchive("AVERAGE:0.5:6:10");
$creator->save();

$updater = new RRDUpdater($rrdFile);
$updater->update(array("speed" => "12345"), "920804700");
$updater->update(array("speed" => "12357"), "920805000");

$graphObj = new RRDGraph($outputPngFile);
$graphObj->setOptions(
    array(
        "--start" => "920804400",
        "--end" => 920808000,
        "--vertical-label" => "m/s",
        "DEF:myspeed=$rrdFile:speed:AVERAGE",
        "CDEF:realspeed=myspeed,1000,*",
        "LINE2:realspeed#FF0000"
    )
);
$graphObj->save();
?>


Функции RRD

Содержание

  • rrd_create — Создать файл rrd
  • rrd_error — Получить последнее сообщение об ошибке
  • rrd_fetch — Извлечь данные для графика в виде массива
  • rrd_first — Возвращает отметку времени первого образца из файла rrd
  • rrd_graph — Создает изображение из данных
  • rrd_info — Получает информацию о файле rrd
  • rrd_last — Возвращает отметку времени unix последнего образца
  • rrd_lastupdate — Получает информацию о последних обновленных данных
  • rrd_restore — Восстанавливает файл RRD из дампа XML
  • rrd_tune — Настраивает некоторые опции заголовка файла базы данных RRD
  • rrd_update — Обновляет базу данных RRD
  • rrd_version — Получает информацию о базовой библиотеке rrdtool
  • rrd_xport — Экспортирует информацию о базе данных RRD
  • rrdc_disconnect — Закрыть любые незавершенные подключения к демону кеширования rrd


Создать файл rrd

  • « Функции RRD
  • rrd_error »
  • PHP Manual
  • Функции RRD
  • Создать файл rrd

rrd_create

(PECL rrd >= 0.9.0)

rrd_create — Создать файл rrd

Описание

rrd_create ( string $filename , array $options ) : bool

Создает файл rrd.

Список параметров

filename

Имя создаваемого файла.

options

Опции для создания rrd - список строк. Смотрите страницу руководства rrd для полного списка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Получить последнее сообщение об ошибке

  • « rrd_create
  • rrd_fetch »
  • PHP Manual
  • Функции RRD
  • Получить последнее сообщение об ошибке

rrd_error

(PECL rrd >= 0.9.0)

rrd_error — Получить последнее сообщение об ошибке

Описание

rrd_error ( void ) : string

Возвращает последнее сообщение об ошибке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последнее сообщение об ошибке.


Извлечь данные для графика в виде массива

  • « rrd_error
  • rrd_first »
  • PHP Manual
  • Функции RRD
  • Извлечь данные для графика в виде массива

rrd_fetch

(PECL rrd >= 0.9.0)

rrd_fetch — Извлечь данные для графика в виде массива

Описание

rrd_fetch ( string $filename , array $options ) : array

Извлекает данные для графика в виде массива из файла RRD. Функция работает так же как и rrd_graph(), но данные возвращаются в виде массива, а изображение не создается.

Список параметров

filename

Имя файла RRD.

options

Массив опций для спецификации разрешения.

Возвращаемые значения

Извлеченный массив данных.


Возвращает отметку времени первого образца из файла rrd

  • « rrd_fetch
  • rrd_graph »
  • PHP Manual
  • Функции RRD
  • Возвращает отметку времени первого образца из файла rrd

rrd_first

(PECL rrd >= 0.9.0)

rrd_first — Возвращает отметку времени первого образца из файла rrd

Описание

rrd_first ( string $file [, int $raaindex = 0 ] ) : int

Возвращает первый образец данных из указанного RRA файла RRD.

Список параметров

file

Имя файла базы данных RRD.

raaindex

Номер индекса RRA, который должен быть рассмотрен. Значение по умолчанию - 0.

Возвращаемые значения

Номер отметки времени unix в виде целого числа, FALSE в случае возникновения ошибки.


Создает изображение из данных

  • « rrd_first
  • rrd_info »
  • PHP Manual
  • Функции RRD
  • Создает изображение из данных

rrd_graph

(PECL rrd >= 0.9.0)

rrd_graph — Создает изображение из данных

Описание

rrd_graph ( string $filename , array $options ) : array

Создает изображение для определенных данных из RRD-файла.

Список параметров

filename

Имя файла для вывода графика. Это, как правило, заканчивается либо .png, .svg или .eps, в зависимости от нужного формата вывода.

options

Опции для генерации изображения. Смотрите страницу руководства для команды rrd graph для получения всех возможных вариантов. Все опции (определения данных, определения переменных и т.д.) разрешены.

Возвращаемые значения

Возвращается массив с информацией о сгенерированном изображении, FALSE в случае возникновения ошибки.


Получает информацию о файле rrd

  • « rrd_graph
  • rrd_last »
  • PHP Manual
  • Функции RRD
  • Получает информацию о файле rrd

rrd_info

(PECL rrd >= 0.9.0)

rrd_info — Получает информацию о файле rrd

Описание

rrd_info ( string $filename ) : array

Возвращает информацию об указанном файле базы данных RRD.

Список параметров

file

Имя файла базы данных RRD.

Возвращаемые значения

Массив, содержащий информацию об указанном файле RRD, или FALSE в случае возникновения ошибки.


Возвращает отметку времени unix последнего образца

  • « rrd_info
  • rrd_lastupdate »
  • PHP Manual
  • Функции RRD
  • Возвращает отметку времени unix последнего образца

rrd_last

(PECL rrd >= 0.9.0)

rrd_last — Возвращает отметку времени unix последнего образца

Описание

rrd_last ( string $filename ) : int

Возвращает отметку времени UNIX последнего обновления базы данных RRD.

Список параметров

filename

Имя файла базы данных RRD.

Возвращаемые значения

Целое число, представляющее отметку времени unix самых последних данных из базы данных RRD.


Получает информацию о последних обновленных данных

  • « rrd_last
  • rrd_restore »
  • PHP Manual
  • Функции RRD
  • Получает информацию о последних обновленных данных

rrd_lastupdate

(PECL rrd >= 0.9.0)

rrd_lastupdate — Получает информацию о последних обновленных данных

Описание

rrd_lastupdate ( string $filename ) : array

Возвращает массив отметки времени UNIX и значения, сохраненных для каждой даты в последнем обновлении файла базы данных RRD.

Список параметров

file

Имя файла базы данных RRD.

Возвращаемые значения

Массив информации о последнем обновлении, FALSE в случае возникновения ошибки.


Восстанавливает файл RRD из дампа XML

  • « rrd_lastupdate
  • rrd_tune »
  • PHP Manual
  • Функции RRD
  • Восстанавливает файл RRD из дампа XML

rrd_restore

(PECL rrd >= 0.9.0)

rrd_restore — Восстанавливает файл RRD из дампа XML

Описание

rrd_restore ( string $xml_file , string $rrd_file [, array $options ] ) : bool

Восстанавливает файл RRD из дампа XML.

Список параметров

xml_file

Имя файла XML с дампом исходного файла базы данных RRD.

rrd_file

Восстановленное имя файла базы данных RRD.

options

Массив опций для восстановления. Смотрите страницу руководства по rrd restore.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.


Настраивает некоторые опции заголовка файла базы данных RRD

  • « rrd_restore
  • rrd_update »
  • PHP Manual
  • Функции RRD
  • Настраивает некоторые опции заголовка файла базы данных RRD

rrd_tune

(PECL rrd >= 0.9.0)

rrd_tune — Настраивает некоторые опции заголовка файла базы данных RRD

Описание

rrd_tune ( string $filename , array $options ) : bool

Изменить некоторые опции в файле заголовка базы данных RRD. Например, переименовывает источник данных и т.д.

Список параметров

filename

Имя файла базы данных RRD.

options

Опции со свойствами файла базы данных RRD, которые будут изменены. Cмотрите страницу руководства по rrd tune для подробностей.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в противном случае.


Обновляет базу данных RRD

  • « rrd_tune
  • rrd_version »
  • PHP Manual
  • Функции RRD
  • Обновляет базу данных RRD

rrd_update

(PECL rrd >= 0.9.0)

rrd_update — Обновляет базу данных RRD

Описание

rrd_update ( string $filename , array $options ) : bool

Обновляет файл базы данных RRD. Входные данные - это время, интерполированное в соответствии со свойствами файла базы данных RRD.

Список параметров

filename

Имя файла базы данных RRD. Эта база данных будет обновлена.

options

Опции обновления базы данных RRD. Это список строк. Полный список опций смотрите на странице руководства по rrd update для получения полного списка опций.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в случае возникновения ошибки.


Получает информацию о базовой библиотеке rrdtool

  • « rrd_update
  • rrd_xport »
  • PHP Manual
  • Функции RRD
  • Получает информацию о базовой библиотеке rrdtool

rrd_version

(PECL rrd >= 1.0.0)

rrd_version — Получает информацию о базовой библиотеке rrdtool

Описание

rrd_version ( void ) : string

Получает информацию о базовой библиотеке rrdtool.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка с номером версии rrdtool, например, "1.4.3".


Экспортирует информацию о базе данных RRD

  • « rrd_version
  • rrdc_disconnect »
  • PHP Manual
  • Функции RRD
  • Экспортирует информацию о базе данных RRD

rrd_xport

(PECL rrd >= 0.9.0)

rrd_xport — Экспортирует информацию о базе данных RRD

Описание

rrd_xport ( array $options ) : array

Экспортирует информацию о файле базы данных RRD. Данные могут быть преобразованы в XML-файл с помощью пользовательского PHP-скрипта, а затем восстановлены в виде файла базы данных RRD.

Список параметров

options

Массив опций для экспорта смотрите страницу руководства по rrd xport.

Возвращаемые значения

Массив с информацией о файле базы данных RRD, FALSE в случае возникновения ошибки.


Закрыть любые незавершенные подключения к демону кеширования rrd

  • « rrd_xport
  • RRDCreator »
  • PHP Manual
  • Функции RRD
  • Закрыть любые незавершенные подключения к демону кеширования rrd

rrdc_disconnect

(PECL rrd >= 1.1.2)

rrdc_disconnect — Закрыть любые незавершенные подключения к демону кеширования rrd

Описание

rrdc_disconnect ( void ) : void

Закрыть любые незавершенные подключения к демону кеширования rrd.

Функция автоматически вызывается при завершении всего PHP-процесса. Это зависит от используемого SAPI. Например, она вызывается автоматически в конце скрипта командной строки.

Зависит от пользователя, хочет ли он вызвать функцию в конце каждого запроса или нет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс RRDCreator

(PECL rrd >= 0.9.0)

Введение

Класс для создания файлов базы данных RRD.

Обзор классов

RRDCreator {
/* Методы */
public addArchive ( string $description ) : void
public addDataSource ( string $description ) : void
public __construct ( string $path [, string $startTime [, int $step = 0 ]] )
public save ( void ) : bool
}

Содержание

  • RRDCreator::addArchive — Adds RRA - archive of data values for each data source
  • RRDCreator::addDataSource — Adds data source definition for RRD database
  • RRDCreator::__construct — Creates new RRDCreator instance
  • RRDCreator::save — Saves the RRD database to a file


Adds RRA - archive of data values for each data source

  • « RRDCreator
  • RRDCreator::addDataSource »
  • PHP Manual
  • RRDCreator
  • Adds RRA - archive of data values for each data source

RRDCreator::addArchive

(PECL rrd >= 0.9.0)

RRDCreator::addArchive — Adds RRA - archive of data values for each data source

Описание

public RRDCreator::addArchive ( string $description ) : void

Adds RRA definition by description of archive. Archive consists of a number of data values or statistics for each of the defined data-sources (DS). Data sources are defined by method RRDCreator::addDataSource(). You need call this method for each requested archive.

Список параметров

description

Definition of archive - RRA. This has same format as RRA definition in rrd create command. See man page of rrd create for more details.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Adds data source definition for RRD database

  • « RRDCreator::addArchive
  • RRDCreator::__construct »
  • PHP Manual
  • RRDCreator
  • Adds data source definition for RRD database

RRDCreator::addDataSource

(PECL rrd >= 0.9.0)

RRDCreator::addDataSource — Adds data source definition for RRD database

Описание

public RRDCreator::addDataSource ( string $description ) : void

RRD can accept input from several data sources (DS), e.g incoming and outgoing traffic. This method adds data source by description. You need call this method for each data source.

Список параметров

description

Definition of data source - DS. This has same format as DS definition in rrd create command. See man page of rrd create for more details.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Creates new RRDCreator instance

  • « RRDCreator::addDataSource
  • RRDCreator::save »
  • PHP Manual
  • RRDCreator
  • Creates new RRDCreator instance

RRDCreator::__construct

(PECL rrd >= 0.9.0)

RRDCreator::__construct — Creates new RRDCreator instance

Описание

public RRDCreator::__construct ( string $path [, string $startTime [, int $step = 0 ]] )

Creates new RRDCreator instance.

Список параметров

path

Path for newly created RRD database file.

startTime

Time for the first value in RRD database. Parameter supports all formats which are supported by rrd create call.

intstep

Base interval in seconds with which data will be fed into the RRD database.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Saves the RRD database to a file

  • « RRDCreator::__construct
  • RRDGraph »
  • PHP Manual
  • RRDCreator
  • Saves the RRD database to a file

RRDCreator::save

(PECL rrd >= 0.9.0)

RRDCreator::save — Saves the RRD database to a file

Описание

public RRDCreator::save ( void ) : bool

Saves the RRD database into file, which name is defined by RRDCreator::__construct().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Класс RRDGraph

(PECL rrd >= 0.9.0)

Введение

Класс для экспорта данных из файла базы данных RRD в изображение.

Обзор классов

RRDGraph {
/* Методы */
public __construct ( string $path )
public save ( void ) : array
public saveVerbose ( void ) : array
public setOptions ( array $options ) : void
}

Содержание

  • RRDGraph::__construct — Creates new RRDGraph instance
  • RRDGraph::save — Saves the result of query into image
  • RRDGraph::saveVerbose — Saves the RRD database query into image and returns the verbose information about generated graph
  • RRDGraph::setOptions — Sets the options for rrd graph export


Creates new RRDGraph instance

  • « RRDGraph
  • RRDGraph::save »
  • PHP Manual
  • RRDGraph
  • Creates new RRDGraph instance

RRDGraph::__construct

(PECL rrd >= 0.9.0)

RRDGraph::__construct — Creates new RRDGraph instance

Описание

public RRDGraph::__construct ( string $path )

Creates new RRDGraph instance. This instance is responsible for rendering the result of RRD database query into image.

Список параметров

path

Full path for the newly created image.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Saves the result of query into image

  • « RRDGraph::__construct
  • RRDGraph::saveVerbose »
  • PHP Manual
  • RRDGraph
  • Saves the result of query into image

RRDGraph::save

(PECL rrd >= 0.9.0)

RRDGraph::save — Saves the result of query into image

Описание

public RRDGraph::save ( void ) : array

Saves the result of RRD database query into image defined by RRDGraph::__construct().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Array with information about generated image is returned, FALSE if error occurs.


Saves the RRD database query into image and returns the verbose information about generated graph

  • « RRDGraph::save
  • RRDGraph::setOptions »
  • PHP Manual
  • RRDGraph
  • Saves the RRD database query into image and returns the verbose information about generated graph

RRDGraph::saveVerbose

(PECL rrd >= 0.9.0)

RRDGraph::saveVerbose — Saves the RRD database query into image and returns the verbose information about generated graph

Описание

public RRDGraph::saveVerbose ( void ) : array

Saves the RRD database query into image file defined by method RRDGraph::__construct() and returns the verbose information about generated graph, if "-" is used as image filename, image data are also returned in result array.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Array with detailed information about generated image is returned, optionally with image data, FALSE if error occurs.


Sets the options for rrd graph export

  • « RRDGraph::saveVerbose
  • RRDUpdater »
  • PHP Manual
  • RRDGraph
  • Sets the options for rrd graph export

RRDGraph::setOptions

(PECL rrd >= 0.9.0)

RRDGraph::setOptions — Sets the options for rrd graph export

Описание

public RRDGraph::setOptions ( array $options ) : void

Список параметров

options

List of options for the image generation from the RRD database file. It can be list of strings or list of strings with keys for better readability. Read the rrd graph man pages for list of available options.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 RRDGraph::setOptions() example

<?php
$graphObj->setOptions(array(
    "--start" => "920804400",
    "--end" => 920808000,
    "--vertical-label" => "m/s",
    "DEF:myspeed=$rrdFile:speed:AVERAGE",
    "CDEF:realspeed=myspeed,1000,*",
    "LINE2:realspeed#FF0000"
));
?>

Пример #2 Set multiple color options

<?php
$graphObj->setOptions(array(
    "--start" => "920804400",
    "--end" => 920808000,
    "--vertical-label" => "m/s",
    "--color=BACK#00000000",
    "--color=GRID#00000000",
    "--color=MGRID#00000000",
    "DEF:myspeed=$rrdFile:speed:AVERAGE",
    "CDEF:realspeed=myspeed,1000,*",
    "LINE2:realspeed#FF0000"
));
?>

Don't use key value syntax for same rrd option. It looks more readable, but it doesn't work.

<?php
$graphObj->setOptions(array(
    "--color" => "BACK#00000000",
    "--color" => "GRID#00000000",
    "--color" => "MGRID#00000000"
));
?>

In nature of php it's same as

<?php
$graphObj->setOptions(array(
    "--color" => "MGRID#00000000"
));
?>


Класс RRDUpdater

(PECL rrd >= 0.9.0)

Введение

Класс для обновления файла базы данных RDD.

Обзор классов

RRDUpdater {
/* Методы */
public __construct ( string $path )
public update ( array $values [, string $time = time() ] ) : bool
}

Содержание

  • RRDUpdater::__construct — Создает новый объект RRDUpdater
  • RRDUpdater::update — Обновляет файл базы данных RRD


Создает новый объект RRDUpdater

  • « RRDUpdater
  • RRDUpdater::update »
  • PHP Manual
  • RRDUpdater
  • Создает новый объект RRDUpdater

RRDUpdater::__construct

(PECL rrd >= 0.9.0)

RRDUpdater::__construct — Создает новый объект RRDUpdater

Описание

public RRDUpdater::__construct ( string $path )

Создает новый объект RRDUpdater. Этот объект применяется для внесения изменений в файл базы данных RRD.

Список параметров

path

Путь в файловой системе до файла базы RRD, которую необходимо обновить.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Обновляет файл базы данных RRD

  • « RRDUpdater::__construct
  • SAM »
  • PHP Manual
  • RRDUpdater
  • Обновляет файл базы данных RRD

RRDUpdater::update

(PECL rrd >= 0.9.0)

RRDUpdater::update — Обновляет файл базы данных RRD

Описание

public RRDUpdater::update ( array $values [, string $time = time() ] ) : bool

Обновляет файл базы данных RRD, определенный через конструктор RRDUpdater::__construct(). Файл обновляется заданными значениями.

Список параметров

values

Данные для обновления. Массив с ключами, соответствующими именам источников данных.

time

Значение времени для обновления соответствующих данных. По умолчанию используется текущее время.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

В случае ошибки выбрасывает исключение типа Exception.

Примеры

Пример #1 Пример использования RRDUpdater::update()

<?php
$updator = new RRDUpdater("speed.rrd");
//обновляет источник данных "speed" значением "12411"
//для времени заданного временной меткой timestamp "920807700"
$updator->update(array("speed" => "12411"), "920807700");
?>


Simple Asynchronous Messaging

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Connections
    • Messages
    • Messaging operations
    • Publish/Subscribe and subscriptions to topics
    • Error handling
  • SAM Функции
    • SAMConnection::commit — Commits (completes) the current unit of work
    • SAMConnection::connect — Establishes a connection to a Messaging Server
    • SAMConnection::__construct — Creates a new connection to a Messaging Server
    • SAMConnection::disconnect — Disconnects from a Messaging Server
    • SAMConnection::errno — Contains the unique numeric error code of the last executed SAM operation
    • SAMConnection::error — Contains the text description of the last failed SAM operation
    • SAMConnection::isConnected — Queries whether a connection is established to a Messaging Server
    • SAMConnection::peek — Read a message from a queue without removing it from the queue
    • SAMConnection::peekAll — Read one or more messages from a queue without removing it from the queue
    • SAMConnection::receive — Receive a message from a queue or subscription
    • SAMConnection::remove — Remove a message from a queue
    • SAMConnection::rollback — Cancels (rolls back) an in-flight unit of work
    • SAMConnection::send — Send a message to a queue or publish an item to a topic
    • SAMConnection::setDebug — Turn on or off additional debugging output
    • SAMConnection::subscribe — Create a subscription to a specified topic
    • SAMConnection::unsubscribe — Cancel a subscription to a specified topic
    • SAMMessage::body — The body of the message
    • SAMMessage::__construct — Creates a new Message object
    • SAMMessage::header — The header properties of the message


Введение

This extension provides access to the functionality of messaging and queueing systems, such as the IBM WebSphere MQSeries family of products, from PHP scripts. The interface is designed to make it extremely simple to do the more commonly required tasks such as deliver simple text messages to queues while still allowing skilled users to do more complex messaging operations. For many users the complexities of setting up numerous options can be simply ignored.

The SAM extension is a framework that provides a very simple API that can be used to access a number of messaging middleware systems. Currently the package includes built-in support for the MQTT (MQ Telemetry Transport) messaging protocol and support for the IBM Messaging and Queuing middleware products. SAM is designed to be readily extended to support other messaging systems and extension modules may be written in C or PHP.


Требования

The SAM extension interfaces to the IBM Messaging and Queuing middleware products using a set of libraries and some client side code referred to as XMS. This package is available as a free download in the guise of IBM support pack IA94. There is a description of this package and download links in the article » Introducing XMS - The IBM Message Service API.

If you intend to use SAM to access the Messaging and Queuing infrastructure within WebSphere MQ then you will also need to have installed a local MQ queue manager or installed the WebSphere MQ clients package. The clients package is freely available as a support pack (» MQC6).

If you are only aiming to experiment with sending messages to and from WebSphere Application Server queues using the WebSphere Platform Messaging protocol (WPM) then you do not need to install the MQC6 package.

After installing these packages you will need to ensure the XMS binary and, if you are using it, the MQ client bin directory are included in the PATH environment variable so that Apache and PHP can find the dependent .DLLs/libraries.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/sam.

The SAM framework and MQTT support can be built and used without any other prerequisites. Support for protocols other than MQTT is provided via a set of libraries and some client side code referred to as XMS.

If you only intend to use the built-in MQTT support then you can build and configure SAM as an extension or simply refer to php_sam.php with a require or require_once clause in your PHP script. In this case you need only install the code without building the extension using the pear installer:

pecl install -B SAM

Linux installation steps

The sam extension is supplied as a PECL module, which you should be able to download and install in one step as follows:

pecl install sam
(Depending on your php environment, you will probably need to be root to do this.)

Make sure that the module is loaded by PHP, by adding following line to php.ini:

extension=sam.so
If you intend to use the XMS support to access the IBM Messaging and Queuing family you must also enable the SAM XMS extension.
extension=sam_xms.so

If you cannot use the PEAR installer, you can download the extension and build it manually:

pear download sam          #downloads sam-<version>.tgz
tar -xzf sam-<version>.tgz
cd sam-<version>
phpize
./configure
make
make install               #you may need to be root for this step

To work with the very latest source, you'll need to extract it from SVN and build manually as above.

Windows installation steps

You will probably need to build the sam extension for Windows as there are only a limited range of pre-built binaries available from the SAM website. The extension can be built using the standard Windows extension build procedures.

You will need the PHP source tree for the version of PHP you wish to build the SAM extension against which you can obtain from php.net. This should be unpacked into a working directory of your choice.

You will also need the libraries and headers used by PHP extensions available from http://www.php.net/extra/win32build.zip and this should be unzipped so that is in your working directory.

You should have something like:

c:\php-build\-
              |
              |---php-5.0.5--|---build
              |              |---ext
              |              |--- ...
              |
              |---win32build--|---bin
                              |---include
                              |---lib

You will need a compiler such as the free version of Visual Studio C++ Express from the Microsoft web site. Also you need the Microsoft SDK Microsoft Windows Platform which again can be downloaded from the Microsoft web site.

Obtain the SAM extension source using pear (pecl download sam) or by using SVN and copy the files to a new "sam" directory under the "ext" directory in your PHP source tree.

To build the extension open a build environment window by going to the start

menu->all programs->microsoft platform SDK for windows->
open build environment window->windows 200 build environment->
set windows 2000 build environment (retail)

This should open a command prompt with all the environment variables set up to access the platform SDK etc. You then need to set the environment variables for Visual Studio by issuing the command vcvars32.bat in the window.

Change directory to your working directory e.g. cd c:\php-build. Then make sure the win32build tools are accessible by adding them to the PATH environment variable:

set PATH=..\win32build\bin;%PATH%

Run the buildconf.bat command. This should rebuild the configure.js file.

Run the cscript command with the appropriate options. To build just the SAM extension framework and MQTT support use:

cscript /nologo configure.js --with-sam
To build the SAM framework and the XMS support use:
cscript /nologo configure.js --with-sam --with-sam_xms="c:\program files\ibm\xms"

The additional parameter passed for sam_xms is the installation path to the XMS libraries and runtime that were installed as described under prerequisites at the top of this page.

You can specify whatever other cscript parameters you require to include or exclude items from the php build or select options.

Assuming all has gone well so far you can now finally run a make for the SAM framework!

nmake php_sam.dll
Also if you are using the XMS support you must make the sam_xms extensions:
nmake php_sam_xms.dll

If you have used Visual Studio 2005 to build the DLLs please see below for additional steps that must be carried out before proceeding further.

The DLLs created (php_sam.dll and optionally php_sam_xms.dll) can now be copied to the subdirectory appropriate for your PHP set-up. Make sure that the module(s) are loaded by PHP, by adding following line to php.ini:

extension=php_sam.dll
If you intend to use the XMS support to access the IBM Messaging and Queuing family you must also enable the SAM XMS extension.
extension=php_sam_xms.dll

Additional steps for Visual Studio 2005

If you build the SAM extension with the Microsoft Visual Studio 2005 compiler and tools you need to perform an additional step in the build process to ensure the php_sam.dll is able to link with the C runtime libraries at runtime. This step includes the dependancy manifest into the DLL. Switch to the directory where the php_sam.dll has been generated (usually Release_TS or Debug_TS below the php source directory) and issue the following magic incantation:

mt.exe -manifest php_sam.dll.manifest -outputresource:php_sam.dll;2
If you are using the XMS capabilities you will need to do the same with the SAM XMS DLL:
mt.exe -manifest php_sam_xms.dll.manifest -outputresource:php_sam_xms.dll;2

If you build the SAM extension using the compiler and libraries from Microsoft Visual Studio 2005 you will also need to ensure that the runtime components are installed on the system on which you intend to use SAM. This can be accomplished by installing Visual Studio 2005 or by using the freely distributable » runtime package.


Настройка во время выполнения

Protocol support and mapping

The SAM framework can be extended to support other messaging protocols and connection mechanisms. To add support for a new protocol or connection library a support class has to be defined, either as a C extension or as a PHP script, and a "factory" script must be created. The support class must implement all the methods of the SAMConnection class though it should not inherit from SAMConnection. The factory script will be called by the SAM framework to create an instance of the implemented class. The way SAM chooses which factory to call is based on the protocol specified as the first parameter of the "connect" call.

By default the built-in MQTT support will be used if a connect call specifies a protocol of SAM_MQTT ("mqtt"), for any other protocol SAM will attempt to use the XMS support extension. To add support for additional protocols or to modify the default behavior entries may be added to php.ini in the [sam] section. The default mapping is equivalent to the following entries:

[sam]
sam.factory.mqtt=mqtt
sam.factory.wmq=xms
sam.factory.wmq:client=xms
sam.factory.wmq:bindings=xms
sam.factory.wpm=xms
sam.factory.rtt=xms
As can be seen from these examples the entries take the form of "sam.factory.pppp=xxx" where pppp is the protocol string specified on the connect call and xxx is a factory suffix. Note: SAM defines constants for these protocol strings such that SAM_WMQ=wmq, SAM_WPM=wpm, SAM_RTT=rtt, SAM_MQTT=mqtt, etc.

When identifying the support code to use on a connect call SAM looks up the protocol name in the php.ini entries and then invokes a factory script named sam_factory_xxx.php. If no entry is found the support will default to XMS.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SAM_AUTO (string)
Automatic behaviour
SAM_BOOLEAN (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_BUS (string)
Connect attribute used to set the name of the enterprise service bus to connect to.
SAM_BYTE (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_BYTES (string)
Message body type descriptor.
SAM_CORRELID (string)
Attribute used on receive, send and remove requests to identify specific messages.
SAM_DELIVERYMODE (string)
Message header property.
SAM_DOUBLE (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_ENDPOINTS (string)
Connect attribute used to define the possible endpoints to connect to.
SAM_FLOAT (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_HOST (string)
Connect attribute used to set the hostname of the required messaging server.
SAM_INT (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_LONG (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_MANUAL (string)
Manual (script controlled) behaviour
SAM_MESSAGEID (string)
Attribute used on receive and remove requests to identify specific messages.
SAM_MQTT (string)
Connect protocol definition for selecting the MQTT (MQ Telemetry Transport) protocol.
SAM_MQTT_CLEANSTART (bool)
Optional connect option to indicate to an MQTT server that all previous connection data for this client should be removed and that subscriptions should be deleted when the client disconnects explicitly or unexpectedly.
SAM_NON_PERSISTENT (string)
Connect attribute value used to request messages are not made persistent on the messaging server.
SAM_PASSWORD (string)
Connect attribute used to define the password to be used for the user account being used to connect to a messaging server that requires authorisation for connections.
SAM_PERSISTENT (string)
Connect attribute value used to request messages are made persistent on the messaging server to protect against loss of messages in the event of failure.
SAM_PORT (string)
Connect attribute used to set the port number on which to communicate with the messaging server.
SAM_PRIORITY (string)
Option name used on send requests to specify a delivery priority value.
SAM_REPLY_TO (string)
Message property used to specify the queue identity on to which the script expects response or reply messages to be posted.
SAM_RTT (string)
Connect protocol definition for selecting the IBM Realtime Transport protocol for communication with a business integration messaging server.
SAM_STRING (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_TARGETCHAIN (string)
Connection attribute used to set the required target chain identifier.
SAM_TEXT (string)
Message body type descriptor.
SAM_TIMETOLIVE (string)
Message send option name used to specify the length of time a message should be retained in milliseconds.
SAM_TRANSACTIONS (string)
Connection attribute used to set required transactional behaviour. May be set to SAM_AUTO (default) or SAM_MANUAL.
SAM_USERID (string)
Connect attribute used to define the account to being used to connect to a messaging server that requires authorisation for connections.
SAM_WAIT (string)
Receive property used to specify the wait timeout to be used when receiving a message from a queue or subscription.
SAM_WMQ (string)
Connect protocol definition for selecting the IBM WebSphere MQSeries protocol for communication with the desired messaging server.
SAM_WMQ_BINDINGS (string)
Connect protocol definition for selecting the IBM WebSphere MQSeries protocol for communication with a local messaging server.
SAM_WMQ_CLIENT (string)
Connect protocol definition for selecting the IBM WebSphere MQSeries protocol for communication with a remote messaging server.
SAM_WMQ_TARGET_CLIENT (string)
Option name used on send requests to specify the target client mode. This can either be default to 'jms' or 'mq'. The default is 'jms' which means an RFH2 header is sent with the message whereas the 'mq' setting means no RFH2 is included.
SAM_WPM (string)
Connect protocol definition for selecting the IBM WebSphere Platform Messaging protocol for communication with a WebSphere Application Server messaging server.


Примеры

Содержание

  • Connections
  • Messages
  • Messaging operations
  • Publish/Subscribe and subscriptions to topics
  • Error handling


Connections

In order to perform any messaging and queueing functions a connection must be established with a messaging server by creating a SAMConnection object and calling its "connect" method, with a set of connection properties, to connect the PHP script to the messaging server. Until such time as the SAMConnection object is destroyed the connection will be maintained and available for use. All SAMConnection objects are destroyed when the PHP script exits.

A set of default properties may be used in connecting to a messaging server but as a minimum the PHP script must specify a protocol to be used.

Пример #1 Creating a connection and connecting to a remote WebSphere MQSeries Messaging Server

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => 'myhost.mycompany.com',
                              SAM_PORT => 1506,
                              SAM_BROKER => 'mybroker'));
?>

Пример #2 Creating a connection and connecting to a remote WebSphere Application Server

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WPM, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
                              SAM_BUS => 'Bus1',
                              SAM_TARGETCHAIN => 'InboundBasicMessaging'));
?>

Пример #3 Creating a connection and connecting to an MQTT server

<?php
$conn = new SAMConnection();
$conn->connect(SAM_MQTT, array(SAM_HOST => 'myhost.mycompany.com',
                               SAM_PORT => 1883));
?>


Messages

Messages sent to and received from queues are represented by the SAMMessage object. The SAMMessage object encapsulates the body of the message (if one exists) and the header properties associated with the message. A SAMMessage object is either supplied as a parameter to a messaging operation or returned as a result.

Пример #1 Creating a message with a simple text body

<?php
$msg = new SAMMessage('This is a simple text message');
?>

Messages may have header properties associated with them that provide control over the transport of the message or further information to the receiving application. By default message properties are delivered to the underlying messaging system as strings and in this case they may be set with the following simple syntax:

Пример #2 Setting a text format property using the default syntax

<?php
$msg->header->myPropertyName = 'textData';
?>

If it is desired to pass type information an alternative syntax may be used where the value and the type hint are passed in an associative array:

Пример #3 Setting a property using a type hint

<?php
$msg->header->myPropertyName = array(3.14159, SAM_FLOAT);
?>

Properties may also be extracted from the header of a message.

Пример #4 Retrieving a property from a message header

<?php
$myProperty = $msg->header->myPropertyName;
?>


Messaging operations

All messaging operations are performed through calls to methods on the connection object. To add a message to a queue the "send" method is used, to obtain a message from a queue the "receive" method is used. Other methods provide publish and subscribe functionality and control of transaction boundaries.

Пример #1 Adding a message to a queue and receiving a response

<?php
$msg = new SAMMessage('This is a simple text message');
$msg->header->SAM_REPLY_TO = 'queue://receive/test';
$correlid = $conn->send('queue://send/test', $msg);

if (!$correlid) {
  // The Send failed!
  echo "Send failed ($conn->errno) $conn->error";
} else {
  $resp = $conn->receive('queue://receive/test', array(SAM_CORRELID => $correlid));
}
?>


Publish/Subscribe and subscriptions to topics

SAM allows messages to be sent either to queues or, for WebSphere MQ and WPM, to publish/subscribe topics. A topic destination is specified to SAM in the usual way, i.e. in the form 'topic://fred', rather than the form 'queue://AQUEUE' used for point to point operation. To use publish/subscribe it is simply necessary to specify the correct broker name on the SAMConnect "connect" call and the desired topic in the destination argument to the SAMConnect "send" and "receive" calls. The PHP interface is otherwise identical to the point to point model.

By default, SAM creates non-durable subscriptions when using publish/subscribe. This means that if a client application is inactive when messages are published to a topic, then it will not receive them when it subsequently restarted. SAM does also allow durable subscriptions to be made to topics when using WPM or WebSphere MQ publish/subscribe. The purpose of these subscriptions is to allow data to be received by a client application even if that client was not active at the time the data was published.

Durable subscriptions are specified by using the SAMConnect "subscribe" call. This method takes the destination topic as an input parameter and returns a subscription identifier that may be used on subsequent "receive" calls. When the subscription is no longer required the SAMConnection "unsubscribe" method should be used to delete the subscription.

Пример #1 Creating a durable subscription to a topic

<?php

$subName = $conn->subscribe('topic://A');

if (!$subName) {
   echo "Subscribe failed";
} else {
   # Subscribe was OK
   // ...
}
?>

Пример #2 Subscribing to a topic using a WebSphere Platform Messaging (WPM) server

<?php
$conn = new SAMConnection();
// Note: For pub/sub on WPM, when connecting the name of a messaging engine
//   to hold the durable subscription (SAM_WPM_DUR_SUB_HOME) must be specified.
$conn->connect(SAM_WMQ, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
                              SAM_BUS => 'Bus1',
                              SAM_TARGETCHAIN => 'InboundBasicMessaging',
                              SAM_WPM_DUR_SUB_HOME => 'MyMachineNode01.server1-Bus1'));

$subName = $conn->subscribe('topic://A');

if (!$subName) {
   echo "Subscribe failed";
} else {
   # Subscribe was OK
   // ...
}
?>

Пример #3 Receiving published data using a durable subscription

<?php

$msg = $conn->receive($subName);
if ($msg) {
   echo "Received a message OK";
} else {
   echo "The receive failed";
}

?>

Пример #4 Deleting a durable subscription to a topic

<?php

if (!$conn->unsubscribe($subName)) {
   echo "Unsubscribe failed";
}

?>


Error handling

All SAMConnection methods that provide access to messaging operations return FALSE if an error occurred in processing the request. In addition the SAMConnection object has two properties, "errno" and "error", that provide respectively the error number and text description of the last error to occur on the connection.

Пример #1 Handling an error from a method that returns no result

<?php
if (!$conn->commit()) {
    // The commit failed!
    echo "Commit failed ($conn->errno) $conn->error";
}
?>

Пример #2 Handling an error from a method that returns a result

<?php
$correlid = $conn->send('queue://send/test', $msg);

if (!$correlid) {
  // The Send failed!
  echo "Send failed ($conn->errno) $conn->error";
} else {
  /* ... */
}
?>


SAM Функции

Предопределенные классы

SAMConnection

Object representing a connection to a Messaging Server

Конструктор

  • new SAMConnection - construct a new connection object to allow connection to a messaging infrastructure.

Методы

  • commit - a method that commits (successfully completes) an in-flight unit of work.

  • connect - a method that connects a PHP script to a messaging server.

  • disconnect - a method that disconnects a PHP script from a messaging server.

  • isConnected - a method that checks whether a PHP script is connected to a messaging server.

  • peek - a method that receives a message from a queue without removing it from the queue.

  • peekAll - a method that receives one or messages from a queue without removing them from the queue.

  • receive - a method that receives a message from a queue or subscription.

  • remove - a method that removes a message from a queue.

  • rollback - a method that cancels (rolls back) an in-flight unit of work.

  • send - a method that sends a message to a queue or posts to a topic

  • setDebug - a method that switches additional debugging output on or off

  • subscribe - a method that creates a subscription to one or more topics

  • unsubscribe - a method that destroys a subscription to one or more topics

Свойства

  • errno - the numeric error code for the last encountered error on this connection. This property is set to 0 if the last operation was successful.

  • error - the text description for the last encountered error on this connection

SAMMessage

Object representing a message to be sent or received

Конструктор

  • new SAMMessage - construct a new message.

Свойства

  • body - the body of the message.

  • header - the header properties of the message.

Содержание

  • SAMConnection::commit — Commits (completes) the current unit of work
  • SAMConnection::connect — Establishes a connection to a Messaging Server
  • SAMConnection::__construct — Creates a new connection to a Messaging Server
  • SAMConnection::disconnect — Disconnects from a Messaging Server
  • SAMConnection::errno — Contains the unique numeric error code of the last executed SAM operation
  • SAMConnection::error — Contains the text description of the last failed SAM operation
  • SAMConnection::isConnected — Queries whether a connection is established to a Messaging Server
  • SAMConnection::peek — Read a message from a queue without removing it from the queue
  • SAMConnection::peekAll — Read one or more messages from a queue without removing it from the queue
  • SAMConnection::receive — Receive a message from a queue or subscription
  • SAMConnection::remove — Remove a message from a queue
  • SAMConnection::rollback — Cancels (rolls back) an in-flight unit of work
  • SAMConnection::send — Send a message to a queue or publish an item to a topic
  • SAMConnection::setDebug — Turn on or off additional debugging output
  • SAMConnection::subscribe — Create a subscription to a specified topic
  • SAMConnection::unsubscribe — Cancel a subscription to a specified topic
  • SAMMessage::body — The body of the message
  • SAMMessage::__construct — Creates a new Message object
  • SAMMessage::header — The header properties of the message


Commits (completes) the current unit of work

  • « SAM Функции
  • SAMConnection::connect »
  • PHP Manual
  • SAM Функции
  • Commits (completes) the current unit of work

SAMConnection::commit

(PECL sam >= 0.1.0)

SAMConnection::commit — Commits (completes) the current unit of work

Описание

SAMConnection::commit ( void ) : bool

Calling the "commit" method on a Connection object commits (completes) all in-flight transactions that are part of the current unit of work.

Возвращаемые значения

This method returns FALSE if an error occurs.

Примеры

Пример #1 Committing the current unit of work

<?php
  if (!$conn->commit()) {
    // The commit failed!
    echo "Commit failed ($conn->errno) $conn->error";
  }
?>

Смотрите также

  • SAMConnection::rollback


Establishes a connection to a Messaging Server

  • « SAMConnection::commit
  • SAMConnection::__construct »
  • PHP Manual
  • SAM Функции
  • Establishes a connection to a Messaging Server

SAMConnection::connect

(PECL sam >= 0.1.0)

SAMConnection::connect — Establishes a connection to a Messaging Server

Описание

SAMConnection::connect ( string $protocol [, array $properties ] ) : bool

Calling the "connect" method on a SAMConnection object connects the PHP script to a messaging server. No messages can be sent or received until a connection is made.

Список параметров

Возвращаемые значения

This method returns FALSE if an error occurs.

Примеры

Пример #1 Creating a connection to a Messaging Server using the IBM MQSeries protocol (WMQ)

<?php

$conn->connect(SAM_WMQ, array(SAM_HOST => 'Myhost.myco.com', SAM_PORT => 1506, SAM_BROKER => 'MyBroker'));

?>

Пример #2 Creating a connection with application transaction control and default host and port values

<?php

$conn->connect(SAM_WMQ, array(SAM_BROKER => 'MyBroker', SAM_TRANSACTIONS => SAM_MANUAL));

?>

Пример #3 Creating a connection to a Messaging Server using the IBM WebSphere Platform Messaging protocol (WPM)

<?php

$conn->connect(SAM_WPM, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
                              SAM_BUS => 'Bus1', SAM_TARGETCHAIN => 'InboundBasicMessaging'));

?>

Смотрите также

  • SAMConnection::isConnected
  • SAMConnection::disconnect


Creates a new connection to a Messaging Server

  • « SAMConnection::connect
  • SAMConnection::disconnect »
  • PHP Manual
  • SAM Функции
  • Creates a new connection to a Messaging Server

SAMConnection::__construct

(PECL sam >= 0.1.0)

SAMConnection::__construct — Creates a new connection to a Messaging Server

Описание

SAMConnection::__construct ( void )

Creates a new SAMConnection object.

Примеры

Пример #1 Creating a connection object and connecting to a Messaging Server

<?php

$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => localhost, SAM_PORT => 1414, SAM_BROKER => 'bull'));

?>


Disconnects from a Messaging Server

  • « SAMConnection::__construct
  • SAMConnection::errno »
  • PHP Manual
  • SAM Функции
  • Disconnects from a Messaging Server

SAMConnection::disconnect

(PECL sam >= 0.1.0)

SAMConnection::disconnect — Disconnects from a Messaging Server

Описание

SAMConnection::disconnect ( void ) : bool

Calling the "disconnect" method on a SAMConnection object disconnects the PHP script from a messaging server. No messages can be sent or received after a connection has been disconnected.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Disconnecting from a Messaging Server

<?php

$conn->disconnect();

?>

Смотрите также

  • SAMConnection::isConnected
  • SAMConnection::connect


Contains the unique numeric error code of the last executed SAM operation

  • « SAMConnection::disconnect
  • SAMConnection::error »
  • PHP Manual
  • SAM Функции
  • Contains the unique numeric error code of the last executed SAM operation

SAMConnection::errno

(PECL sam >= 0.1.0)

SAMConnection::errno — Contains the unique numeric error code of the last executed SAM operation

Description

int $SAMConnection->errno;

Contains the numeric error code of the last executed SAM operation on this connection. If the last operation completed successfully this property contains 0.

Возвращаемые значения

An integer greater than zero indicates the last error type encountered on the connection. Zero indicates that the last operation on this connection completed successfully.

Примеры

Пример #1 Using the error number and description properties

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => 'localhost', SAM_PORT => 1506));
$msg = new SAMMessage('This is a simple text item');
if (!$conn->send('topic://test', $msg)) {
    // The Send failed!
    echo "Send failed ($conn->errno) $conn->error";
}
?>

Смотрите также

  • SAMConnection::error


Contains the text description of the last failed SAM operation

  • « SAMConnection::errno
  • SAMConnection::isConnected »
  • PHP Manual
  • SAM Функции
  • Contains the text description of the last failed SAM operation

SAMConnection::error

(PECL sam >= 0.1.0)

SAMConnection::error — Contains the text description of the last failed SAM operation

Описание

string $SAMConnection->error;

Contains the text description of the last failed SAM operation on this connection. If the last operation completed successfully this property contains an empty string.

Возвращаемые значения

A string containing the text description of the last error type encountered on the connection. An empty string indicates that the last operation on this connection completed successfully.

Примеры

Пример #1 Using the error number and description properties

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => 'localhost', SAM_PORT => 1506));
$msg = new SAMMessage('This is a simple text item');
if (!$conn->send('topic://test', $msg)) {
    // The Send failed!
    echo "Send failed ($conn->errno) $conn->error";
}
?>

Смотрите также

  • SAMConnection::errno


Queries whether a connection is established to a Messaging Server

  • « SAMConnection::error
  • SAMConnection::peek »
  • PHP Manual
  • SAM Функции
  • Queries whether a connection is established to a Messaging Server

SAMConnection::isConnected

(PECL sam >= 0.1.0)

SAMConnection::isConnected — Queries whether a connection is established to a Messaging Server

Описание

SAMConnection::isConnected ( void ) : bool

Calling the "isConnected" method on a Connection object will check whether the PHP script is connected to a messaging server. No messages can be sent or received unless a connection has been established with a Messaging server.

Возвращаемые значения

This method returns TRUE if the SAMConnection object is successfully connected to a Messaging server or FALSE otherwise.

Примеры

Пример #1 Checking whether there us a connection to a Messaging Server

<?php

if ($conn->isConnected()) {
  echo 'Connection is active.';
} else {
  echo 'No active connection!';
}

?>

Смотрите также

  • SAMConnection::disconnect
  • SAMConnection::connect


Read a message from a queue without removing it from the queue

  • « SAMConnection::isConnected
  • SAMConnection::peekAll »
  • PHP Manual
  • SAM Функции
  • Read a message from a queue without removing it from the queue

SAMConnection::peek

(PECL sam >= 0.1.0)

SAMConnection::peek — Read a message from a queue without removing it from the queue

Описание

SAMConnection::peek ( string $target [, array $properties ] ) : SAMMessage

Список параметров

target

The identity of the queue from which to peek the message.

properties

An optional associative array of properties describing other parameters to control the peek operation.

Property name | Possible values
SAM_CORRELID | This is the target correlation id string of the message. This would typically have been returned by a "send" request.
SAM_MESSAGEID | This is the message id string of the message which is to be peeked.

Возвращаемые значения

This method returns a SAMMessage object or FALSE if an error occurs.

Примеры

Пример #1 Retrieve the next message from a queue without removing it

<?php
$msg = $conn->peek('queue://receive/test');

if (!$msg) {
  // The peek failed!
  echo "Peek failed ($conn->errno) $conn->error";
}
?>

Пример #2 Retrieve a specific message from a queue without removing it from the queue

<?php

$msg = $conn->peek('queue://receive/test', array(SAM_MESSAGEID => $messageId));

?>

Смотрите также

  • SAMConnection::peekAll


Read one or more messages from a queue without removing it from the queue

  • « SAMConnection::peek
  • SAMConnection::receive »
  • PHP Manual
  • SAM Функции
  • Read one or more messages from a queue without removing it from the queue

SAMConnection::peekAll

(PECL sam >= 0.2.0)

SAMConnection::peekAll — Read one or more messages from a queue without removing it from the queue

Описание

SAMConnection::peekAll ( string $target [, array $properties ] ) : array

Список параметров

target

The identity of the queue from which messages should be peeked.

properties

An optional associative array of properties describing other parameters to control the peek operation.

Property name | Possible values
SAM_CORRELID | This is the target correlation id string of messages to be peeked. This would typically have been returned by a "send" request.
SAM_MESSAGEID | This is the message id string of a message which is to be peeked.

Возвращаемые значения

This method returns an array of SAMMessage objects or FALSE if an error occurs.

Примеры

Пример #1 Retrieve all messages in a queue without removing them

<?php
$msgArray = $conn->peekAll('queue://receive/test');
if ($msgArray) {
   foreach ( $msgArray as $key => $msg) {
       echo "Message $key: body = $msg->body\n";
   }
} else {
   echo "PeekAll failed ($conn->errno) $conn->error";
}
?>

Пример #2 Retrieve all messages from a queue with a matching correlation id

<?php

   $msgArray = $conn->peekAll('queue://receive/test', array(SAM_CORRELID => $correlId ));
   if ($msgArray) {

      foreach ( $msgArray as $key => $msg) {
            echo "Message $key: body = $msg->body\n";
         }
   } else {
      echo "PeekAll failed ($conn->errno) $conn->error";
   }

?>

Смотрите также

  • SAMConnection::peek


Receive a message from a queue or subscription

  • « SAMConnection::peekAll
  • SAMConnection::remove »
  • PHP Manual
  • SAM Функции
  • Receive a message from a queue or subscription

SAMConnection::receive

(PECL sam >= 0.1.0)

SAMConnection::receive — Receive a message from a queue or subscription

Описание

SAMConnection::receive ( string $target [, array $properties ] ) : SAMMessage

Список параметров

target

The identity of the queue, topic or subscription from which to receive the message.

properties

An optional associative array of properties describing other parameters to control the receive operation.

Property name | Possible values
SAM_CORRELID | Used to request selection of the message to receive based upon the correlation id string of the message.
SAM_MESSAGEID | Used to request selection of the message to receive based upon the message id string of the message.
SAM_WAIT | Timeout value in milliseconds to control how long the request should block waiting to receive a message before returning with a failure if no message is available on the queue or topic. The default value is 0 meaning wait indefinitely and should be used with caution as the request may wait until the overall PHP script processing time limit has expired if no message becomes available.

Возвращаемые значения

This method returns a SAMMessage object or FALSE if an error occurs.

Примеры

Пример #1 Receiving a message from a queue

<?php
$msg = $conn->receive('queue://receive/test');

if (!$msg) {
  // The receive failed!
  echo "Receive failed ($conn->errno) $conn->error";
}
?>

Пример #2 Receiving a message from a queue with options

In this example the SAM_CORRELID option is used to specify a correlation id string to be used to identify the message to receive. A wait timeout of 10 seconds is also specified.

<?php

$msg = $conn->receive('queue://receive/test', array(SAM_CORRELID => $token, SAM_WAIT => 10000));

?>

Пример #3 Receiving a message from a subscription

In this example we show how to receive a message from a subscription id.

<?php
$msg = $conn->receive($subscriptionName);

if (!$msg) {
  // The receive failed!
  echo "Receive failed ($conn->errno) $conn->error";
}
?>

Please note that $subscriptionName is a subscription id returned from an earlier subscribe call.

Смотрите также

  • SAMConnection::send


Remove a message from a queue

  • « SAMConnection::receive
  • SAMConnection::rollback »
  • PHP Manual
  • SAM Функции
  • Remove a message from a queue

SAMConnection::remove

(PECL sam >= 0.1.0)

SAMConnection::remove — Remove a message from a queue

Описание

SAMConnection::remove ( string $target [, array $properties ] ) : SAMMessage

Removes a message from a queue.

Список параметров

target

The identity of the queue from which to remove the message.

properties

An optional associative array of properties describing other parameters to control the remove operation.

Property name | Possible values
SAM_CORRELID | This is the target correlation id string of the message. This would typically have been returned by a "send" request.
SAM_MESSAGEID | This is the message id string of the message which is to be removed.

Возвращаемые значения

This method returns FALSE if an error occurs.

Примеры

Пример #1 Removing a message from a queue by message id

<?php
if (!$conn->remove('queue://receive/test', array(SAM_MESSAGEID => $messageId))) {
  // The remove failed!
  echo "Remove failed ($conn->errno) $conn->error";
}
?>


Cancels (rolls back) an in-flight unit of work

  • « SAMConnection::remove
  • SAMConnection::send »
  • PHP Manual
  • SAM Функции
  • Cancels (rolls back) an in-flight unit of work

SAMConnection::rollback

(PECL sam >= 0.1.0)

SAMConnection::rollback — Cancels (rolls back) an in-flight unit of work

Описание

SAMConnection::rollback ( void ) : bool

Rolls back an in-flight unit of work.

Возвращаемые значения

This method returns FALSE if an error occurs.

Примеры

Пример #1 Cancelling an in-flight unit of work

<?php
if (!$conn->rollback()) {
  // The rollback failed!
  echo "Rollback failed ($conn->errno) $conn->error";
}
?>

Смотрите также

  • SAMConnection::commit


Send a message to a queue or publish an item to a topic

  • « SAMConnection::rollback
  • SAMConnection::setDebug »
  • PHP Manual
  • SAM Функции
  • Send a message to a queue or publish an item to a topic

SAMConnection::send

(PECL sam >= 0.1.0)

SAMConnection::send — Send a message to a queue or publish an item to a topic

Описание

SAMConnection::send ( string $target , SAMMessage $msg [, array $properties ] ) : string

The "send" method is used to send a message to a specific queue or to publish to a specific topic. The method returns a correlation id that can be used as a selector to identify reply or response messages when these are requested.

Список параметров

target

If sending a message, the identity of the queue (queue://queuename) or if publishing to a topic the identity of the topic (topic://topicname) to which the message is to be delivered.

msg

The message to be sent or published.

properties

An optional associative array of properties describing other parameters to control the receive operation.

Property name | Possible values
SAM_DELIVERYMODE | Indicates whether the messaging server should ensure delivery or whether it is acceptable for messages to be lost in the case of system failures. The value of this property may be set to either SAM_PERSISTENT, to indicate that message loss is not acceptable, or SAM_NON_PERSISTENT, if message loss is acceptable. The resulting behaviour of the send will vary depending on the capabilities of the messaging server the PHP script is currently connected to. If the server does not support persistent messages and SAM_PERSISTENT is specified the send request will fail with an error indication showing the capability is not available.
SAM_PRIORITY | A numeric value between 0 and 9 indicating the desired message delivery priority. A priority value of 0 indicates the lowest priority while 9 indicates highest priority. If no priority is specified a default will be assigned which is dependent on the messaging server being used.
SAM_CORRELID | A string to be assigned as a correlation id for this message. If no value is given the messaging server may assign a value automatically.
SAM_TIMETOLIVE | A time in milliseconds indicating how long the messaging server should retain the message on a queue before discarding it. The default value is 0 indicating the message should be retained indefinitely.
SAM_WMQ_TARGET_CLIENT | This property is only valid when using WebSphere MQ and indicates whether or not an RFH2 header should be included with the message. This option may be set to either 'jms' or 'mq'. The default is 'jms' which means that an RFH2 header is included. If the value 'mq' is specified then no RFH2 is included with the message.

Возвращаемые значения

A correlation id string that can be used in a subsequent receive call as a selector to obtain any reply or response that has been requested or FALSE if an error occurred.

Замечание:

A correlation id will only be returned for a successful send to a queue destination (queue://xxxx) in which case it will reflect the message identity of the message on the queue. In the case of a send being used to publish data to a topic the return value will be TRUE as no correlation id is available for return.

Примеры

Пример #1 Send a message to a queue

<?php
$msg = new SAMMessage('This is a simple text message');
$correlId = $conn->send('queue://send/test', $msg);
if (!$correlId) {
    // The send failed!
    echo "Send failed ($conn->errno) $conn->error";
}

?>

Пример #2 Publish a message to a topic

<?php
$msg = new SAMMessage('This is a simple text item');
if (!$conn->send('topic://test', $msg)) {
    // The Send failed!
    echo "Send failed ($conn->errno) $conn->error";
}
?>

Пример #3 Send a request and receive a response

<?php
$msg = new SAMMessage('This is a simple text message');
$msg->header->SAM_REPLY_TO = 'queue://receive/test';
$correlid = $conn->send('queue://send/test', $msg);

if (!$correlid) {
    // The Send failed!
    echo "Send failed ($conn->errno) $conn->error";
} else {
    $resp = $conn->receive('queue://receive/test', array(SAM_CORRELID => $correlid));
}
?>

Смотрите также

  • SAMConnection::receive


Turn on or off additional debugging output

  • « SAMConnection::send
  • SAMConnection::subscribe »
  • PHP Manual
  • SAM Функции
  • Turn on or off additional debugging output

SAMConnection::setDebug

(PECL sam >= 1.1.0)

SAMConnection::setDebug — Turn on or off additional debugging output

Описание

The "setdebug" method is used to turn on or off additional debugging output. The SAM framework will provide method/function entry and exit trace data plus additional information. Protocol specific implementations also provide extra output.

SAMConnection::setDebug ( bool $switch ) : void

Список параметров

switch

If this parameter is set to TRUE additional debugging output will be provided. If the value is set to FALSE output of additional information will be stopped.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Turn on debugging output

<?php
$conn->setdebug(TRUE);
?>

Пример #2 Turn off debugging output

<?php
$conn->setdebug(FALSE);
?>


Create a subscription to a specified topic

  • « SAMConnection::setDebug
  • SAMConnection::unsubscribe »
  • PHP Manual
  • SAM Функции
  • Create a subscription to a specified topic

SAMConnection::subscribe

(PECL sam >= 0.1.0)

SAMConnection::subscribe — Create a subscription to a specified topic

Описание

SAMConnection::subscribe ( string $targetTopic ) : string

The "subscribe" method is used to create a new subscription to a specified topic.

Список параметров

targetTopic

The identity of the topic (topic://topicname) to subscribe to.

Возвращаемые значения

A subscription identifier that can be used in a subsequent receive call as a selector to obtain any topic data or FALSE if an error occurred. The subscription identifier should be used in the receive call in place of the simple topic name.

Примеры

Пример #1 Subscribe to a topic

<?php
$subid = $conn->subscribe('topic://A');
if (!$subid) {
  // The subscribe failed!
  echo "Subscribe failed ($conn->errno) $conn->error";
}
?>

Смотрите также

  • SAMConnection::unsubscribe


Cancel a subscription to a specified topic

  • « SAMConnection::subscribe
  • SAMMessage::body »
  • PHP Manual
  • SAM Функции
  • Cancel a subscription to a specified topic

SAMConnection::unsubscribe

(PECL sam >= 0.1.0)

SAMConnection::unsubscribe — Cancel a subscription to a specified topic

Описание

SAMConnection::unsubscribe ( string $subscriptionId [, string $targetTopic ] ) : bool

The "unsubscribe" method is used to delete an existing subscription to a specified topic.

Список параметров

subscriptionId

The identifier of an existing subscription as returned by a call to the subscribe method.

Возвращаемые значения

This method returns FALSE if an error occurs.

Примеры

Пример #1 Delete a subscription

<?php
if (!$conn->unsubscribe($subid)) {
    // The unsubscribe failed!
    echo "Unsubscribe failed ($conn->errno) $conn->error";
}
?>

Смотрите также

  • SAMConnection::subscribe


The body of the message

  • « SAMConnection::unsubscribe
  • SAMMessage::__construct »
  • PHP Manual
  • SAM Функции
  • The body of the message

SAMMessage::body

(PECL sam >= 0.1.0)

SAMMessage::body — The body of the message

Описание

string $SAMMessage->body;

The "body" property contains the actual body of the message. It may not always be set.

Примеры

Пример #1 Setting a text string into the body of a message

<?php
$msg = new SAMMessage();
$msg->body = 'This is a simple message';

?>

Смотрите также

  • SAMMessage::header


Creates a new Message object

  • « SAMMessage::body
  • SAMMessage::header »
  • PHP Manual
  • SAM Функции
  • Creates a new Message object

SAMMessage::__construct

(PECL sam >= 0.1.0)

SAMMessage::__construct — Creates a new Message object

Описание

SAMMessage::__construct ([ mixed $body ] )

Creates a new SAMMessage object optionally specifying a message body.

Список параметров

body

The optional body for the message.

Примеры

Пример #1 Creating a message

<?php

$msg = new SAMMessage();

?>

Пример #2 Creating a message with a simple text payload

<?php

$msg = new SAMMessage('This is a simple text message');

?>


The header properties of the message

  • « SAMMessage::__construct
  • ScoutAPM »
  • PHP Manual
  • SAM Функции
  • The header properties of the message

SAMMessage::header

(PECL sam >= 0.1.0)

SAMMessage::header — The header properties of the message

Описание

object $SAMMessage->header;

The header property is a container for any system or user properties that area associated with the message.

Properties may be assigned by the sender of a message to control the way the messaging systems handles it or may be assigned by the messaging system itself to tell the recipient extra information about the message or the way in which it has been handled.

Some properties are understood by SAM in which case constants have been defined for them. The majority of properties however are ignored by the SAM implementation and simply passed through to the underlying messaging systems allowing the application to use messaging specific property names or to define its own "user" properties.

The SAM defined properties are as follows:

Property name | Possible values
SAM_MESSAGEID | When a message is received this field contains the unique identifier of the message as allocated by the underlying messaging system. When sending a message this field is ignored.
SAM_REPLY_TO | A string providing the identity of the queue on to which responses to this message should be posted.
SAM_TYPE

An indication of the type of message to be sent. The value may be SAM_TEXT indicating the contents of the message body is a text string, or SAM_BYTES indicating the contents of the message body are some application defined format.

The way in which this property is used may depend on the underlying messaging server. For instance a messaging server that supports the JMS (Java Message Service) specification may interpret this value and send messages of type "jms_text" and "jms_bytes". In addition, if the SAM_TYPE property is set to SAM_TEXT the data provided for the message body is expected to be a UTF8 encoded string.

When setting the values of properties it is often useful to give a hint as to the format in which the property should be delivered to the messaging system. By default property values are delivered as text and the following simple syntax may be used to set a value:

Пример #1 Setting a text format property using the default syntax

<?php
$msg = new SAMMessage();

$msg->header->myPropertyName = 'textData';
?>

If it is desired to pass type information an alternative syntax may be used where the value and the type hint are passed in an associative array:

Пример #2 Setting a text format property using a type hint

<?php
$msg = new SAMMessage();

$msg->header->myPropertyName = array('textData', SAM_STRING);
?>

When passing a type hint the type entry should be one of the SAM defined constant values as defined by the following table:

Constant | Type description
SAM_BOOLEAN | Any value passed will be interpreted as logical true or false. If the value cannot be interpreted as a PHP boolean value the value passed to the messaging system is undefined.
SAM_BYTE | An 8-bit signed integer value. SAM will attempt to convert the property value specified into a single byte value to pass to the messaging system. If a string value is passed an attempt will be made to interpret the string as a numeric value. If the numeric value cannot be expressed as an 8-bit signed binary value data may be lost in the conversion.
SAM_DOUBLE | A long floating point value. SAM will attempt to convert the property value specified into a floating point value with 15 digits of precision. If a string value is passed an attempt will be made to interpret the string as a numeric value. If the passed value cannot be expressed as a 15 digit floating point value data may be lost in the conversion.
SAM_FLOAT | A short floating point value. SAM will attempt to convert the property value specified into a floating point value with 7 digits of precision. If a string value is passed an attempt will be made to interpret the string as a numeric value. If the passed value cannot be expressed as a 7 digit floating point value data may be lost in the conversion.
SAM_INT | An 32-bit signed integer value. SAM will attempt to convert the property value specified into a 32-bit value to pass to the messaging system. If a string value is passed an attempt will be made to interpret the string as a numeric value. If the numeric value cannot be expressed as an 32-bit signed binary value data may be lost in the conversion.
SAM_LONG | An 64-bit signed integer value. SAM will attempt to convert the property value specified into a 64-bit value to pass to the messaging system. If a string value is passed an attempt will be made to interpret the string as a numeric value. If the numeric value cannot be expressed as an 64-bit signed binary value data may be lost in the conversion.
SAM_STRING | SAM will interpret the property value specified as a string and pass it to the messaging system accordingly.

Примеры

Пример #3 Setting properties as the sender of a message

<?php
$msg = new SAMMessage('This is a test message');

// defining SAM specific properties...
$msg->header->SAM_REPLY_TO = 'queue://test/replyQueue';

// defining arbitrary properties...
//
// a default string property
$msg->header->myStringProp1 = 'a string property';
// a string property with a type hint
$msg->header->myStringProp2 = array('another string property', SAM_STRING);

// a boolean property
$msg->header->myBoolProp = array(FALSE, SAM_BOOL);

// numeric format properties
$msg->header->myIntProp = array(32768, SAM_INT);
$msg->header->myLongProp = array(9876543, SAM_LONG);
$msg->header->myByteProp1 = array(123, SAM_BYTE);
$msg->header->myByteProp2 = array('12', SAM_BYTE);
$msg->header->myFloatProp = array(3.141592, SAM_FLOAT);
$msg->header->myDoubleProp = array(3.14159265358979, SAM_DOUBLE);
?>

Пример #4 Retreiving property values from a message

<?php

// accessing an application specific property
$intProp = $msg->header->MyIntProp;

// accessing a messaging system specific property
$encoding = $msg->header->JMS_IBM_Msgtype;

?>

Смотрите также

  • SAMMessage::body


ScoutAPM

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределенные константы
  • Scoutapm Функции
    • scoutapm_get_calls — Returns a list of instrumented calls that have occurred
    • scoutapm_list_instrumented_functions — List functions scoutapm will instrument.


Введение

Замечание: Для Windows-платформ это расширение недоступно.

ScoutAPM's extension for PHP provides additional capabilities to application monitoring over just using the base PHP userland library.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

  • PHP >= 7.1.0
  • Windows is not currently supported


Установка

This extension is available on PECL. Run:

$ sudo pecl install scoutapm
You may need to add Scout to your php.ini, for example:
extension=scoutapm.so


  • « Настройка во время выполнения
  • Scoutapm Функции »
  • PHP Manual
  • ScoutAPM
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Scoutapm Функции

Содержание

  • scoutapm_get_calls — Returns a list of instrumented calls that have occurred
  • scoutapm_list_instrumented_functions — List functions scoutapm will instrument.


Returns a list of instrumented calls that have occurred

  • « Scoutapm Функции
  • scoutapm_list_instrumented_functions »
  • PHP Manual
  • Scoutapm Функции
  • Returns a list of instrumented calls that have occurred

scoutapm_get_calls

(PECL scoutapm >= 1.0.0)

scoutapm_get_calls — Returns a list of instrumented calls that have occurred

Описание

scoutapm_get_calls ( void ) : array

Returns a list of any instrumented function calls since scoutapm_get_calls() was last called. The list is cleared each time the function is called.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

scoutapm_get_calls() returns an array containing a list of all recorded calls to instrumented function calls.

Примеры

Пример #1 Fetch instrumented calls

<?php

file_get_contents('a.txt');
file_get_contents('b.txt');

print_r(scoutapm_get_calls());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [function] => file_get_contents
            [entered] => 1576839727.7934
            [exited] => 1576839727.7935
            [time_taken] => 2.7894973754883E-5
            [argv] => Array
                (
                    [0] => a.txt
                )

        )

    [1] => Array
        (
            [function] => file_get_contents
            [entered] => 1576839727.7935
            [exited] => 1576839727.7935
            [time_taken] => 7.8678131103516E-6
            [argv] => Array
                (
                    [0] => b.txt
                )

        )

)


List functions scoutapm will instrument.

  • « scoutapm_get_calls
  • SNMP »
  • PHP Manual
  • Scoutapm Функции
  • List functions scoutapm will instrument.

scoutapm_list_instrumented_functions

(PECL scoutapm >= 1.0.2)

scoutapm_list_instrumented_functions — List functions scoutapm will instrument.

Описание

scoutapm_list_instrumented_functions ( void ) : array

Returns a list of the functions the extension will instrument.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

scoutapm_list_instrumented_functions() returns an array containing a list of all functions that the scoutapm extension is able to instrument in the current installation.

Примеры

Пример #1 Fetch the list of functions scoutapm will instrument

<?php
print_r(scoutapm_list_instrumented_functions());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => file_get_contents
    [1] => file_put_contents
    [2] => fopen
    [3] => fread
    [4] => fwrite
    [5] => pdo->exec
    [6] => pdo->query
    [7] => pdo->prepare
    [8] => pdostatement->execute
)


SNMP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции SNMP
    • 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 — Set the OID output format
    • snmp_set_oid_output_format — Set the OID output format
    • 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
    • snmp2_get — Fetch an SNMP object
    • snmp2_getnext — Fetch the SNMP object which follows the given object id
    • snmp2_real_walk — Return all objects including their respective object ID within the specified one
    • snmp2_set — Set the value of an SNMP object
    • snmp2_walk — Fetch all the SNMP objects from an agent
    • snmp3_get — Fetch an SNMP object
    • snmp3_getnext — Fetch the SNMP object which follows the given object id
    • snmp3_real_walk — Return all objects including their respective object ID within the specified one
    • snmp3_set — Set the value of an SNMP object
    • snmp3_walk — Fetch all the SNMP objects from an agent
    • snmpget — Fetch an SNMP object
    • snmpgetnext — Fetch the SNMP object which follows the given object id
    • snmprealwalk — Return all objects including their respective object ID within the specified one
    • snmpset — Set the value of an SNMP object
    • snmpwalk — Fetch all the SNMP objects from an agent
    • snmpwalkoid — Query for a tree of information about a network entity
  • SNMP — Класс SNMP
    • SNMP::close — Close SNMP session
    • SNMP::__construct — Creates SNMP instance representing session to remote SNMP agent
    • SNMP::get — Fetch an SNMP object
    • SNMP::getErrno — Get last error code
    • SNMP::getError — Get last error message
    • SNMP::getnext — Fetch an SNMP object which follows the given object id
    • SNMP::set — Set the value of an SNMP object
    • SNMP::setSecurity — Configures security-related SNMPv3 session parameters
    • SNMP::walk — Fetch SNMP object subtree
  • SNMPException — Класс SNMPException


Введение

Модуль SNMP предоставляет простой и удобный набор инструментов для управления удаленными устройствами через Simple Network Management Protocol (простой протокол управления сетями).

Так как данный модуль является оберткой над библиотекой Net-SNMP (или UCD-SNMP на старых системах), все основные концепции идентичны и функции PHP меняют их поведение в зависимости от конфигурации Net-SNMP и переменных среды.

Начиная с версии PHP 5.4, доступен как OpenOffice API.

Больше информации о Net-SNMP можно найти по адресу » http://www.net-snmp.org/.


Требования

Чтобы использовать функции SNMP в Unix необходимо установить пакет » Net-SNMP. Функции SNMPv3 доступны только тогда, когда установлен пакет » OpenSSL.

Начиная с версии PHP 5.4.0 для установки на Unix-системах необходим пакет Net-SNMP версии 5.3+, а для установки на Windows-системах необходим пакет Net-SNMP версии 5.4+.


Установка

PHP 5.3.0, 5.3.1 и 5.3.2 не имеют поддержки SNMP. Поддержка SNMP была восстановлена в PHP 5.3.3.

Пакет Net-SNMP для Windows содержит файлы для поддержки SNMP в директории mibs. Эту директорию необходимо добавить в переменные окружения Windows с именем MIBDIRS и значением равным полному пути до директории mibs: например, c:\usr\mibs.

Важные замечания для PHP вплоть до версии 5.4.0: при необходимости использовать пакет UCD SNMP, вам придется установить NO_ZEROLENGTH_COMMUNITY равным 1 до его компиляции. После конфигурирования UCD SNMP, отредактируйте config.h или acconfig.h - ищите слово NO_ZEROLENGTH_COMMUNITY и раскомментируйте соответствующую строку с #define:

#define NO_ZEROLENGTH_COMMUNITY 1
Теперь можно компилировать PHP --with-snmp[=DIR] .

Если вы видите странные ошибки "segmentation faults" в комбинации с командами SNMP, то это значит, что вы выполнили вышеизложенные инструкции неточно. Если вы не хотите перекомпилировать UCD SNMP, то можете перекомпилировать PHP с ключем --enable-ucd-snmp-hack , который должен помочь.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Для snmp_set_oid_output_format()
SNMP_OID_OUTPUT_SUFFIX (integer)
С версии 5.4.0
SNMP_OID_OUTPUT_MODULE (integer)
С версии 5.4.0
SNMP_OID_OUTPUT_FULL (integer)
С версии 5.2.0
SNMP_OID_OUTPUT_NUMERIC (integer)
С версии 5.2.0
SNMP_OID_OUTPUT_UCD (integer)
С версии 5.4.0
SNMP_OID_OUTPUT_NONE (integer)
С версии 5.4.0
Для snmp_set_valueretrieval()
SNMP_VALUE_LIBRARY (integer)
SNMP_VALUE_PLAIN (integer)
SNMP_VALUE_OBJECT (integer)
Возвращаемый типы SNMP, если SNMP_VALUE_OBJECT используется в snmp_set_valueretrieval()
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

Содержание

  • 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 — Set the OID output format
  • snmp_set_oid_output_format — Set the OID output format
  • 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
  • snmp2_get — Fetch an SNMP object
  • snmp2_getnext — Fetch the SNMP object which follows the given object id
  • snmp2_real_walk — Return all objects including their respective object ID within the specified one
  • snmp2_set — Set the value of an SNMP object
  • snmp2_walk — Fetch all the SNMP objects from an agent
  • snmp3_get — Fetch an SNMP object
  • snmp3_getnext — Fetch the SNMP object which follows the given object id
  • snmp3_real_walk — Return all objects including their respective object ID within the specified one
  • snmp3_set — Set the value of an SNMP object
  • snmp3_walk — Fetch all the SNMP objects from an agent
  • snmpget — Fetch an SNMP object
  • snmpgetnext — Fetch the SNMP object which follows the given object id
  • snmprealwalk — Return all objects including their respective object ID within the specified one
  • snmpset — Set the value of an SNMP object
  • snmpwalk — Fetch all the SNMP objects from an agent
  • snmpwalkoid — Query for a tree of information about a network entity


Fetches the current value of the UCD library's quick_print setting

  • « Функции SNMP
  • snmp_get_valueretrieval »
  • PHP Manual
  • Функции SNMP
  • Fetches the current value of the UCD library's quick_print setting

snmp_get_quick_print

(PHP 4, PHP 5, PHP 7)

snmp_get_quick_print — Fetches the current value of the UCD library's quick_print setting

Описание

snmp_get_quick_print ( void ) : bool

Returns the current value stored in the UCD Library for quick_print. quick_print is off by default.

Возвращаемые значения

Returns TRUE if quick_print is on, FALSE otherwise.

Примеры

Пример #1 snmp_get_quick_print() example

<?php
$quickprint = snmp_get_quick_print();
?>

Смотрите также

  • snmp_set_quick_print() - Set the value of quick_print within the UCD SNMP library for a full description of what quick_print does.


Return the method how the SNMP values will be returned

  • « snmp_get_quick_print
  • snmp_read_mib »
  • PHP Manual
  • Функции SNMP
  • Return the method how the SNMP values will be returned

snmp_get_valueretrieval

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

snmp_get_valueretrieval — Return the method how the SNMP values will be returned

Описание

snmp_get_valueretrieval ( void ) : int

Возвращаемые значения

OR-ed combitantion of constants ( SNMP_VALUE_LIBRARY or SNMP_VALUE_PLAIN ) with possible SNMP_VALUE_OBJECT set.

Примеры

Пример #1 Using snmp_get_valueretrieval

<?php
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 if (snmp_get_valueretrieval() & SNMP_VALUE_OBJECT) {
   echo $ret->value;
 } else {
   echo $ret;
 }
?>

Смотрите также

  • snmp_set_valueretrieval() - Specify the method how the SNMP values will be returned
  • Предопределенные константы


Reads and parses a MIB file into the active MIB tree

  • « snmp_get_valueretrieval
  • snmp_set_enum_print »
  • PHP Manual
  • Функции SNMP
  • Reads and parses a MIB file into the active MIB tree

snmp_read_mib

(PHP 5, PHP 7)

snmp_read_mib — Reads and parses a MIB file into the active MIB tree

Описание

snmp_read_mib ( string $filename ) : bool

This function is used to load additional, e.g. vendor specific, MIBs so that human readable OIDs like VENDOR-MIB::foo.1 instead of error prone numeric OIDs can be used.

The order in which the MIBs are loaded does matter as the underlying Net-SNMP libary will print warnings if referenced objects cannot be resolved.

Список параметров

filename

The filename of the MIB.

Примеры

Пример #1 Using snmp_read_mib()

<?php
 print_r( snmprealwalk('localhost', 'public', '.1.3.6.1.2.1.2.3.4.5') );

 snmp_read_mib('./FOO-BAR-MIB.txt');
 print_r( snmprealwalk('localhost', 'public', 'FOO-BAR-MIB::someTable' );
?>

The above example is made up but the results would look like:

Array
(
    [iso.3.6.1.2.1.2.3.4.5.0] => Gauge32: 6
)
Array
(
    [FOO-BAR-MIB::someTable.0] => Gauge32: 6
)


Return all values that are enums with their enum value instead of the raw integer

  • « snmp_read_mib
  • snmp_set_oid_numeric_print »
  • PHP Manual
  • Функции SNMP
  • Return all values that are enums with their enum value instead of the raw integer

snmp_set_enum_print

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

snmp_set_enum_print — Return all values that are enums with their enum value instead of the raw integer

Описание

snmp_set_enum_print ( int $enum_print ) : bool

This function toggles if snmpwalk/snmpget etc. should automatically lookup enum values in the MIB and return them together with their human readable string.

Список параметров

enum_print

As the value is interpreted as boolean by the Net-SNMP library, it can only be "0" or "1".

Примеры

Пример #1 Using snmp_set_enum_print()

<?php
 snmp_set_enum_print(0);
 echo snmpget('localhost', 'public', 'IF-MIB::ifOperStatus.3') . "\n";
 snmp_set_enum_print(1);
 echo snmpget('localhost', 'public', 'IF-MIB::ifOperStatus.3') . "\n";
?>

The above would return

 INTEGER: up(1)
 INTEGER: 1

Примечания

Замечание:

snmp_set_enum_print() is only available when using the UCD SNMP library. This function is not available when using the Windows SNMP library.


Set the OID output format

  • « snmp_set_enum_print
  • snmp_set_oid_output_format »
  • PHP Manual
  • Функции SNMP
  • Set the OID output format

snmp_set_oid_numeric_print

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

snmp_set_oid_numeric_print — Set the OID output format

Описание

snmp_set_oid_numeric_print ( int $oid_format ) : void

Эта функция является псевдонимом: snmp_set_oid_output_format().

Список изменений

Версия | Описание
5.2.0 | Since PHP 5.2.0.

Смотрите также

  • snmp_set_oid_output_format() - Set the OID output format


Set the OID output format

  • « snmp_set_oid_numeric_print
  • snmp_set_quick_print »
  • PHP Manual
  • Функции SNMP
  • Set the OID output format

snmp_set_oid_output_format

(PHP 5 >= 5.2.0, PHP 7)

snmp_set_oid_output_format — Set the OID output format

Описание

snmp_set_oid_output_format ( int $oid_format = SNMP_OID_OUTPUT_MODULE ) : bool

snmp_set_oid_output_format() sets the output format to be full or numeric.

Список параметров

oid_format
OID .1.3.6.1.2.1.1.3.0 representation for various oid_format values
SNMP_OID_OUTPUT_FULL | .iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NUMERIC | .1.3.6.1.2.1.1.3.0

Begining from PHP 5.4.0 four additional constants available:

SNMP_OID_OUTPUT_MODULE | DISMAN-EVENT-MIB::sysUpTimeInstance
SNMP_OID_OUTPUT_SUFFIX | sysUpTimeInstance
SNMP_OID_OUTPUT_UCD | system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NONE | Undefined

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание:

snmp_set_oid_output_format() is only available when using the UCD SNMP library. This function is not available when using the Windows SNMP library.

Примеры

Пример #1 Using snmprealwalk()

<?php

 snmp_read_mib("/usr/share/mibs/netsnmp/NET-SNMP-TC");

 // default or SNMP_OID_OUTPUT_MODULE in PHP >= 5.3.6
 print_r( snmprealwalk('localhost', 'public', 'RFC1213-MIB::sysObjectID') );

 snmp_set_oid_output_format(SNMP_OID_OUTPUT_NUMERIC);
 print_r( snmprealwalk('localhost', 'public', 'RFC1213-MIB::sysObjectID') );

 snmp_set_oid_output_format(SNMP_OID_OUTPUT_FULL);
 print_r( snmprealwalk('localhost', 'public', 'RFC1213-MIB::sysObjectID') );
?>

The above would output:

 Array
 (
    [RFC1213-MIB::sysObjectID.0] => OID: NET-SNMP-TC::linux
 )
 Array
 (
    [.1.3.6.1.2.1.1.2.0] => OID: .1.3.6.1.4.1.8072.3.2.10
 )
 Array
 (
    [.iso.org.dod.internet.mgmt.mib-2.system.sysObjectID.0] => OID: .iso.org.dod.internet.private.enterprises.netSnmp.netSnmpEnumerations.netSnmpAgentOIDs.linux
 )


Set the value of quick_print within the UCD SNMP library

  • « snmp_set_oid_output_format
  • snmp_set_valueretrieval »
  • PHP Manual
  • Функции SNMP
  • Set the value of quick_print within the UCD SNMP library

snmp_set_quick_print

(PHP 4, PHP 5, PHP 7)

snmp_set_quick_print — Set the value of quick_print within the UCD SNMP library

Описание

snmp_set_quick_print ( bool $quick_print ) : bool

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.

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.

Список параметров

quick_print

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Setting quick_print is often used when using the information returned rather than displaying it.

Пример #1 Using snmp_set_quick_print()

<?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\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\n";
?>

Результатом выполнения данного примера будет что-то подобное:

'Timeticks: (0) 0:00:00.00'
'0:00:00.00'

Смотрите также

  • snmp_get_quick_print() - Fetches the current value of the UCD library's quick_print setting


Specify the method how the SNMP values will be returned

  • « snmp_set_quick_print
  • snmp2_get »
  • PHP Manual
  • Функции SNMP
  • Specify the method how the SNMP values will be returned

snmp_set_valueretrieval

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

snmp_set_valueretrieval — Specify the method how the SNMP values will be returned

Описание

snmp_set_valueretrieval ( int $method = SNMP_VALUE_LIBRARY ) : bool

Список параметров

method
types
SNMP_VALUE_LIBRARY | The return values will be as returned by the Net-SNMP library.
SNMP_VALUE_PLAIN | The return values will be the plain value without the SNMP type hint.
SNMP_VALUE_OBJECT | The return values will be objects with the properties "value" and "type", where the latter is one of the SNMP_OCTET_STR, SNMP_COUNTER etc. constants. The way "value" is returned is based on which one of constants SNMP_VALUE_LIBRARY, SNMP_VALUE_PLAIN is set.

Примеры

Пример #1 Using snmp_set_valueretrieval()

<?php
 snmp_set_valueretrieval(SNMP_VALUE_LIBRARY);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // $ret = "STRING: lo"

 snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // $ret = "lo";

 snmp_set_valueretrieval(SNMP_VALUE_OBJECT);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // stdClass Object
 // (
 //   [type] => 4        <-- SNMP_OCTET_STR, see constants
 //   [value] => lo
 // )

 // PHP 5.4+ examples
 snmp_set_valueretrieval(SNMP_VALUE_OBJECT | SNMP_VALUE_PLAIN);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // stdClass Object
 // (
 //   [type] => 4        <-- SNMP_OCTET_STR, see constants
 //   [value] => lo
 // )

 snmp_set_valueretrieval(SNMP_VALUE_OBJECT | SNMP_VALUE_LIBRARY);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // stdClass Object
 // (
 //   [type] => 4        <-- SNMP_OCTET_STR, see constants
 //   [value] => STRING: lo
 // )

?>

Список изменений

Версия | Описание
5.4.0 | Constants SNMP_VALUE_PLAIN or SNMP_VALUE_LIBRARY may be combined with SNMP_VALUE_OBJECT resulting different way of representing contents of value array element in return value of GET-function. If no SNMP_VALUE_{PLAIN,LIBRARY} constant is accompanying SNMP_VALUE_OBJECT, SNMP_VALUE_LIBRARY is used. Prior to 5.4.0 SNMP_VALUE_OBJECT effecively meant SNMP_VALUE_OBJECT|SNMP_VALUE_PLAIN.

Смотрите также

  • snmp_get_valueretrieval() - Return the method how the SNMP values will be returned
  • Предопределенные константы


Fetch an SNMP object

  • « snmp_set_valueretrieval
  • snmp2_getnext »
  • PHP Manual
  • Функции SNMP
  • Fetch an SNMP object

snmp2_get

(PHP 5 >= 5.2.0, PHP 7)

snmp2_get — Fetch an SNMP object

Описание

snmp2_get ( string $host , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] ) : string

The snmp2_get() function is used to read the value of an SNMP object specified by the object_id.

Список параметров

host

The SNMP agent.

community

The read community.

object_id

The SNMP object.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns SNMP object value on success or FALSE on error.

Примеры

Пример #1 Using snmp2_get()

<?php
$syscontact = snmp2_get("127.0.0.1", "public", "system.SysContact.0");
?>

Смотрите также

  • snmp2_set() - Set the value of an SNMP object


Fetch the SNMP object which follows the given object id

  • « snmp2_get
  • snmp2_real_walk »
  • PHP Manual
  • Функции SNMP
  • Fetch the SNMP object which follows the given object id

snmp2_getnext

(PHP >= 5.2.0)

snmp2_getnext — Fetch the SNMP object which follows the given object id

Описание

snmp2_getnext ( string $host , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] ) : string

The snmp2_get_next() function is used to read the value of the SNMP object that follows the specified object_id.

Список параметров

host

The hostname of the SNMP agent (server).

community

The read community.

object_id

The SNMP object id which precedes the wanted one.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns SNMP object value on success or FALSE on error. In case of an error, an E_WARNING message is shown.

Примеры

Пример #1 Using snmp2_get_next()

<?php
$nameOfSecondInterface = snmp2_get_next('localhost', 'public', 'IF-MIB::ifName.1';
?>

Смотрите также

  • snmp2_get() - Fetch an SNMP object
  • snmp2_walk() - Fetch all the SNMP objects from an agent


Return all objects including their respective object ID within the specified one

  • « snmp2_getnext
  • snmp2_set »
  • PHP Manual
  • Функции SNMP
  • Return all objects including their respective object ID within the specified one

snmp2_real_walk

(PHP >= 5.2.0)

snmp2_real_walk — Return all objects including their respective object ID within the specified one

Описание

snmp2_real_walk ( string $host , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] ) : array

The snmp2_real_walk() function is used to traverse over a number of SNMP objects starting from object_id and return not only their values but also their object ids.

Список параметров

host

The hostname of the SNMP agent (server).

community

The read community.

object_id

The SNMP object id which precedes the wanted one.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns an associative array of the SNMP object ids and their values on success or FALSE on error. In case of an error, an E_WARNING message is shown.

Примеры

Пример #1 Using snmp2_real_walk()

<?php
 print_r(snmp2_real_walk("localhost", "public", "IF-MIB::ifName"));
?>

The above will output something like:

    Array
      (
      [IF-MIB::ifName.1] => STRING: lo
      [IF-MIB::ifName.2] => STRING: eth0
      [IF-MIB::ifName.3] => STRING: eth2
      [IF-MIB::ifName.4] => STRING: sit0
      [IF-MIB::ifName.5] => STRING: sixxs
    )

Смотрите также

  • snmp2_walk() - Fetch all the SNMP objects from an agent


Set the value of an SNMP object

  • « snmp2_real_walk
  • snmp2_walk »
  • PHP Manual
  • Функции SNMP
  • Set the value of an SNMP object

snmp2_set

(PHP >= 5.2.0)

snmp2_set — Set the value of an SNMP object

Описание

snmp2_set ( string $host , string $community , string $object_id , string $type , string $value [, int $timeout = 1000000 [, int $retries = 5 ]] ) : bool

snmp2_set() is used to set the value of an SNMP object specified by the object_id.

Список параметров

host

The hostname of the SNMP agent (server).

community

The write community.

object_id

The SNMP object id.

type

MIB указывает тип идентификатора каждого объекта. Он должен быть указан в виде одного символа из следующего списка.

types
= Тип, принимаемый MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

Если при компиляции библиотеки SNMP была определена опция OPAQUE_SPECIAL_TYPES, то также могут быть использованы следующие типы:

types
U | unsigned int64
I | signed int64
F | float
D | double

Большинство этих значений используют очевидный тип ASN.1. 's', 'x', 'd' и 'b' - это все разные способы указания значения OCTET STRING, а беззнаковый тип 'u' также используется для обработки значений Gauge32.

Если MIB-файлы были загружены в MIB-дерево с помощью "snmp_read_mib" или были указаны в конфигурационном файле libsnmp, то для указания параметра type можно использовать нотацию '=', т.к. тип всех идентификаторов объектов будет автоматически считан из MIB.

Обратите внимание, что есть два способа установить переменную типа BITS, например, "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • С помощью типа "b" и списка битовых чисел. Не рекомендуется использовать этот метод, т.к. GET-запрос для того же OID вернет, к примеру, 0xF8.
  • С помощью типа "x" и шестнадцатеричного числа, но без(!) обычного префикса "0x".

Подробнее смотрите в разделе с примерами.

value

The new value.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." is shown. If an unknown or invalid OID is specified the warning probably reads "Could not add variable".

Примеры

Пример #1 Using snmp2_set()

<?php
  snmp2_set("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>

Пример #2 Using snmp2_set() for setting BITS SNMP object id

<?php
  snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
  snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'x', 'F0');
?>

Смотрите также

  • snmp2_get() - Fetch an SNMP object


Fetch all the SNMP objects from an agent

  • « snmp2_set
  • snmp3_get »
  • PHP Manual
  • Функции SNMP
  • Fetch all the SNMP objects from an agent

snmp2_walk

(PHP >= 5.2.0)

snmp2_walk — Fetch all the SNMP objects from an agent

Описание

snmp2_walk ( string $host , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] ) : array

snmp2_walk() function is used to read all the values from an SNMP agent specified by the hostname.

Список параметров

host

The SNMP agent (server).

community

The read community.

object_id

If 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.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns an array of SNMP object values starting from the object_id as root or FALSE on error.

Примеры

Пример #1 snmp2_walk() Example

<?php
$a = snmp2_walk("127.0.0.1", "public", "");

foreach ($a as $val) {
    echo "$val\n";
}

?>

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

Смотрите также

  • snmp2_real_walk() - Return all objects including their respective object ID within the specified one


Fetch an SNMP object

  • « snmp2_walk
  • snmp3_getnext »
  • PHP Manual
  • Функции SNMP
  • Fetch an SNMP object

snmp3_get

(PHP 4, PHP 5, PHP 7)

snmp3_get — Fetch an SNMP object

Описание

snmp3_get ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] ) : string

The snmp3_get() function is used to read the value of an SNMP object specified by the object_id.

Список параметров

host

The hostname of the SNMP agent (server).

sec_name

the security name, usually some kind of username

sec_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

priv_protocol

the privacy protocol (DES or AES)

priv_passphrase

the privacy pass phrase

object_id

The SNMP object id.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns SNMP object value on success or FALSE on error.

Примеры

Пример #1 Using snmp3_get()

<?php
$nameOfSecondInterface = snmp3_get('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName.2');
?>

Смотрите также

  • snmp3_set() - Set the value of an SNMP object


Fetch the SNMP object which follows the given object id

  • « snmp3_get
  • snmp3_real_walk »
  • PHP Manual
  • Функции SNMP
  • Fetch the SNMP object which follows the given object id

snmp3_getnext

(PHP 5, PHP 7)

snmp3_getnext — Fetch the SNMP object which follows the given object id

Описание

snmp3_getnext ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] ) : string

The snmp3_getnext() function is used to read the value of the SNMP object that follows the specified object_id.

Список параметров

host

The hostname of the SNMP agent (server).

sec_name

the security name, usually some kind of username

sec_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

priv_protocol

the privacy protocol (DES or AES)

priv_passphrase

the privacy pass phrase

object_id

The SNMP object id.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns SNMP object value on success or FALSE on error. In case of an error, an E_WARNING message is shown.

Примеры

Пример #1 Using snmp3_getnext()

<?php
$nameOfSecondInterface = snmp3_getnext('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName.1');
?>

Смотрите также

  • snmp3_get() - Fetch an SNMP object
  • snmp3_walk() - Fetch all the SNMP objects from an agent


Return all objects including their respective object ID within the specified one

  • « snmp3_getnext
  • snmp3_set »
  • PHP Manual
  • Функции SNMP
  • Return all objects including their respective object ID within the specified one

snmp3_real_walk

(PHP 4, PHP 5, PHP 7)

snmp3_real_walk — Return all objects including their respective object ID within the specified one

Описание

snmp3_real_walk ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] ) : array

The snmp3_real_walk() function is used to traverse over a number of SNMP objects starting from object_id and return not only their values but also their object ids.

Список параметров

host

The hostname of the SNMP agent (server).

sec_name

the security name, usually some kind of username

sec_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

priv_protocol

the privacy protocol (DES or AES)

priv_passphrase

the privacy pass phrase

object_id

The SNMP object id.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns an associative array of the SNMP object ids and their values on success or FALSE on error. In case of an error, an E_WARNING message is shown.

Примеры

Пример #1 Using snmp3_real_walk()

<?php
 var_export(snmp3_real_walk('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName'));
?>

The above will output something like:

array (
  'IF-MIB::ifName.1' => 'STRING: lo',
  'IF-MIB::ifName.2' => 'STRING: eth0',
  'IF-MIB::ifName.3' => 'STRING: eth2',
  'IF-MIB::ifName.4' => 'STRING: sit0',
  'IF-MIB::ifName.5' => 'STRING: sixxs',
)

Смотрите также

  • snmpwalk() - Fetch all the SNMP objects from an agent


Set the value of an SNMP object

  • « snmp3_real_walk
  • snmp3_walk »
  • PHP Manual
  • Функции SNMP
  • Set the value of an SNMP object

snmp3_set

(PHP 4, PHP 5, PHP 7)

snmp3_set — Set the value of an SNMP object

Описание

snmp3_set ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id , string $type , string $value [, int $timeout = 1000000 [, int $retries = 5 ]] ) : bool

snmp3_set() is used to set the value of an SNMP object specified by the object_id.

Even if the security level does not use an auth or priv protocol/password valid values have to be specified.

Список параметров

host

The hostname of the SNMP agent (server).

sec_name

the security name, usually some kind of username

sec_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

priv_protocol

the privacy protocol (DES or AES)

priv_passphrase

the privacy pass phrase

object_id

The SNMP object id.

type

MIB указывает тип идентификатора каждого объекта. Он должен быть указан в виде одного символа из следующего списка.

types
= Тип, принимаемый MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

Если при компиляции библиотеки SNMP была определена опция OPAQUE_SPECIAL_TYPES, то также могут быть использованы следующие типы:

types
U | unsigned int64
I | signed int64
F | float
D | double

Большинство этих значений используют очевидный тип ASN.1. 's', 'x', 'd' и 'b' - это все разные способы указания значения OCTET STRING, а беззнаковый тип 'u' также используется для обработки значений Gauge32.

Если MIB-файлы были загружены в MIB-дерево с помощью "snmp_read_mib" или были указаны в конфигурационном файле libsnmp, то для указания параметра type можно использовать нотацию '=', т.к. тип всех идентификаторов объектов будет автоматически считан из MIB.

Обратите внимание, что есть два способа установить переменную типа BITS, например, "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • С помощью типа "b" и списка битовых чисел. Не рекомендуется использовать этот метод, т.к. GET-запрос для того же OID вернет, к примеру, 0xF8.
  • С помощью типа "x" и шестнадцатеричного числа, но без(!) обычного префикса "0x".

Подробнее смотрите в разделе с примерами.

value

The new value

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." is shown. If an unknown or invalid OID is specified the warning probably reads "Could not add variable".

Примеры

Пример #1 Using snmp3_set()

<?php
  snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifAlias.3', 's', "foo");
?>

Пример #2 Using snmp3_set() for setting BITS SNMP object id

<?php
  snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
  snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'x', 'F0');
?>


Fetch all the SNMP objects from an agent

  • « snmp3_set
  • snmpget »
  • PHP Manual
  • Функции SNMP
  • Fetch all the SNMP objects from an agent

snmp3_walk

(PHP 4, PHP 5, PHP 7)

snmp3_walk — Fetch all the SNMP objects from an agent

Описание

snmp3_walk ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] ) : array

snmp3_walk() function is used to read all the values from an SNMP agent specified by the hostname.

Even if the security level does not use an auth or priv protocol/password valid values have to be specified.

Список параметров

host

The hostname of the SNMP agent (server).

sec_name

the security name, usually some kind of username

sec_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

priv_protocol

the privacy protocol (DES or AES)

priv_passphrase

the privacy pass phrase

object_id

If 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.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns an array of SNMP object values starting from the object_id as root or FALSE on error.

Примеры

Пример #1 snmp3_walk() Example

<?php
$ret = snmp3_walk('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName');
var_export($ret);
?>

Above function call would return all the SNMP objects from the SNMP agent running on localhost:

array (
  0 => 'STRING: lo',
  1 => 'STRING: eth0',
  2 => 'STRING: eth2',
  3 => 'STRING: sit0',
  4 => 'STRING: sixxs',
)

Смотрите также

  • snmp3_real_walk() - Return all objects including their respective object ID within the specified one


Fetch an SNMP object

  • « snmp3_walk
  • snmpgetnext »
  • PHP Manual
  • Функции SNMP
  • Fetch an SNMP object

snmpget

(PHP 4, PHP 5, PHP 7)

snmpget — Fetch an SNMP object

Описание

snmpget ( string $hostname , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] ) : string

The snmpget() function is used to read the value of an SNMP object specified by the object_id.

Список параметров

hostname

The SNMP agent.

community

The read community.

object_id

The SNMP object.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns SNMP object value on success or FALSE on error.

Примеры

Пример #1 Using snmpget()

<?php
$syscontact = snmpget("127.0.0.1", "public", "system.SysContact.0");
?>

Смотрите также

  • snmpset() - Set the value of an SNMP object


Fetch the SNMP object which follows the given object id

  • « snmpget
  • snmprealwalk »
  • PHP Manual
  • Функции SNMP
  • Fetch the SNMP object which follows the given object id

snmpgetnext

(PHP 5, PHP 7)

snmpgetnext — Fetch the SNMP object which follows the given object id

Описание

snmpgetnext ( string $host , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] ) : string

The snmpgetnext() function is used to read the value of the SNMP object that follows the specified object_id.

Список параметров

host

The hostname of the SNMP agent (server).

community

The read community.

object_id

The SNMP object id which precedes the wanted one.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns SNMP object value on success or FALSE on error. In case of an error, an E_WARNING message is shown.

Примеры

Пример #1 Using snmpgetnext()

<?php
$nameOfSecondInterface = snmpgetnetxt('localhost', 'public', 'IF-MIB::ifName.1';
?>

Смотрите также

  • snmpget() - Fetch an SNMP object
  • snmpwalk() - Fetch all the SNMP objects from an agent


Return all objects including their respective object ID within the specified one

  • « snmpgetnext
  • snmpset »
  • PHP Manual
  • Функции SNMP
  • Return all objects including their respective object ID within the specified one

snmprealwalk

(PHP 4, PHP 5, PHP 7)

snmprealwalk — Return all objects including their respective object ID within the specified one

Описание

snmprealwalk ( string $host , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] ) : array

The snmprealwalk() function is used to traverse over a number of SNMP objects starting from object_id and return not only their values but also their object ids.

Список параметров

host

The hostname of the SNMP agent (server).

community

The read community.

object_id

The SNMP object id which precedes the wanted one.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns an associative array of the SNMP object ids and their values on success or FALSE on error. In case of an error, an E_WARNING message is shown.

Примеры

Пример #1 Using snmprealwalk()

<?php
 print_r(snmprealwalk("localhost", "public", "IF-MIB::ifName"));
?>

The above will output something like:

    Array
      (
      [IF-MIB::ifName.1] => STRING: lo
      [IF-MIB::ifName.2] => STRING: eth0
      [IF-MIB::ifName.3] => STRING: eth2
      [IF-MIB::ifName.4] => STRING: sit0
      [IF-MIB::ifName.5] => STRING: sixxs
    )

Смотрите также

  • snmpwalk() - Fetch all the SNMP objects from an agent


Set the value of an SNMP object

  • « snmprealwalk
  • snmpwalk »
  • PHP Manual
  • Функции SNMP
  • Set the value of an SNMP object

snmpset

(PHP 4, PHP 5, PHP 7)

snmpset — Set the value of an SNMP object

Описание

snmpset ( string $host , string $community , string $object_id , string $type , mixed $value [, int $timeout = 1000000 [, int $retries = 5 ]] ) : bool

snmpset() is used to set the value of an SNMP object specified by the object_id.

Список параметров

host

The hostname of the SNMP agent (server).

community

The write community.

object_id

The SNMP object id.

type

MIB указывает тип идентификатора каждого объекта. Он должен быть указан в виде одного символа из следующего списка.

types
= Тип, принимаемый MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

Если при компиляции библиотеки SNMP была определена опция OPAQUE_SPECIAL_TYPES, то также могут быть использованы следующие типы:

types
U | unsigned int64
I | signed int64
F | float
D | double

Большинство этих значений используют очевидный тип ASN.1. 's', 'x', 'd' и 'b' - это все разные способы указания значения OCTET STRING, а беззнаковый тип 'u' также используется для обработки значений Gauge32.

Если MIB-файлы были загружены в MIB-дерево с помощью "snmp_read_mib" или были указаны в конфигурационном файле libsnmp, то для указания параметра type можно использовать нотацию '=', т.к. тип всех идентификаторов объектов будет автоматически считан из MIB.

Обратите внимание, что есть два способа установить переменную типа BITS, например, "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • С помощью типа "b" и списка битовых чисел. Не рекомендуется использовать этот метод, т.к. GET-запрос для того же OID вернет, к примеру, 0xF8.
  • С помощью типа "x" и шестнадцатеричного числа, но без(!) обычного префикса "0x".

Подробнее смотрите в разделе с примерами.

value

The new value.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." is shown. If an unknown or invalid OID is specified the warning probably reads "Could not add variable".

Примеры

Пример #1 Using snmpset()

<?php
  snmpset("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>

Пример #2 Using snmpset() for setting BITS SNMP object id

<?php
  snmpset("localhost", "public", 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
  snmpset("localhost", "public", 'FOO-MIB::bar.42', 'x', 'F0');
?>

Смотрите также

  • snmpget() - Fetch an SNMP object


Fetch all the SNMP objects from an agent

  • « snmpset
  • snmpwalkoid »
  • PHP Manual
  • Функции SNMP
  • Fetch all the SNMP objects from an agent

snmpwalk

(PHP 4, PHP 5, PHP 7)

snmpwalk — Fetch all the SNMP objects from an agent

Описание

snmpwalk ( string $hostname , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] ) : array

snmpwalk() function is used to read all the values from an SNMP agent specified by the hostname.

Список параметров

hostname

The SNMP agent (server).

community

The read community.

object_id

If 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.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns an array of SNMP object values starting from the object_id as root or FALSE on error.

Примеры

Пример #1 snmpwalk() Example

<?php
$a = snmpwalk("127.0.0.1", "public", "");

foreach ($a as $val) {
    echo "$val\n";
}

?>

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

Смотрите также

  • snmprealwalk() - Return all objects including their respective object ID within the specified one


Query for a tree of information about a network entity

  • « snmpwalk
  • SNMP »
  • PHP Manual
  • Функции SNMP
  • Query for a tree of information about a network entity

snmpwalkoid

(PHP 4, PHP 5, PHP 7)

snmpwalkoid — Query for a tree of information about a network entity

Описание

snmpwalkoid ( string $hostname , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] ) : array

snmpwalkoid() function is used to read all object ids and their respective values from an SNMP agent specified by hostname.

The existence of snmpwalkoid() and snmpwalk() has historical reasons. Both functions are provided for backward compatibility. Use snmprealwalk() instead.

Список параметров

hostname

The SNMP agent.

community

The read community.

object_id

If 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.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns an associative array with object ids and their respective object value starting from the object_id as root or FALSE on error.

Примеры

Пример #1 snmpwalkoid() Example

<?php
$a = snmpwalkoid("127.0.0.1", "public", "");
for (reset($a); $i = key($a); next($a)) {
    echo "$i: $a[$i]<br />\n";
}
?>

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

Смотрите также

  • snmpwalk() - Fetch all the SNMP objects from an agent


Класс SNMP

(PHP 5 >= 5.4.0, PHP 7)

Введение

Представляет сессию SNMP.

Обзор классов

SNMP {
/* Свойства */
public int $max_oids ;
public int $valueretrieval ;
public bool $quick_print ;
public bool $enum_print ;
public int $oid_output_format ;
public bool $oid_increasing_check ;
public int $exceptions_enabled ;
public array $info ;
/* Методы */
public __construct ( int $version , string $hostname , string $community [, int $timeout = 1000000 [, int $retries = 5 ]] )
public close ( void ) : bool
public get ( mixed $object_id [, bool $preserve_keys = FALSE ] ) : mixed
public getErrno ( void ) : int
public getError ( void ) : string
public getnext ( mixed $object_id ) : mixed
public set ( mixed $object_id , mixed $type , mixed $value ) : bool
public setSecurity ( string $sec_level [, string $auth_protocol = [, string $auth_passphrase = [, string $priv_protocol = [, string $priv_passphrase = [, string $contextName = [, string $contextEngineID = ]]]]]] ) : bool
public walk ( string $object_id [, bool $suffix_as_key = FALSE [, int $max_repetitions [, int $non_repeaters ]]] ) : array
/* Константы */
const integer ERRNO_NOERROR = 0 ;
const integer ERRNO_GENERIC = 2 ;
const integer ERRNO_TIMEOUT = 4 ;
const integer ERRNO_ERROR_IN_REPLY = 8 ;
const integer ERRNO_OID_NOT_INCREASING = 16 ;
const integer ERRNO_OID_PARSING_ERROR = 32 ;
const integer ERRNO_MULTIPLE_SET_QUERIES = 64 ;
const integer ERRNO_ANY = 126 ;
const integer VERSION_1 = 0 ;
const integer VERSION_2C = 1 ;
const integer VERSION_2c = 1 ;
const integer VERSION_3 = 3 ;
}

Свойства

max_oids

Максимальный OID для запросов GET/SET/GETBULK

valueretrieval

Контролирует способ, как будут возвращаться значения SNMP

SNMP_VALUE_LIBRARY | Возвращаемые значения будут такими, как будто возвращены библиотекой Net-SNMP.
SNMP_VALUE_PLAIN | Возвращаемые значения будут простыми, без подсказок типов SNMP.
SNMP_VALUE_OBJECT | Возвращаемые значения будут объектами со свойствами "value" и "type", где "type" будет содержать одну из констант: SNMP_OCTET_STR, SNMP_COUNTER и т.д., а "value" будет зависеть от того, установлено SNMP_VALUE_LIBRARY или SNMP_VALUE_PLAIN.
quick_print

Значение quick_print в библиотеке NET-SNMP

Устанавливает значение quick_print в библиотеке NET-SNMP. если задано как (1), то библиотека SNMP будет возвращать значения 'quick printed'. Это значит, что будут напечатаны только значения. Если quick_print не разрешен (по умолчанию), библиотека UCD SNMP будет печатать дополнительную информацию, включая тип значения (то есть IpAddress или OID). Дополнительно, если quick_print не разрешен, библиотека будет печатать шестнадцатеричные значения для всех строк короче четырех символов.

enum_print

Контролирует способ, которым будут печататься значения перечислений

Параметр переключает поведение walk/get и т.д., чтобы они автоматически смотрели значения перечислений в MIB и возвращали их вместе с понятным человеку текстом.

oid_output_format

Контролирует формат вывода OID

OID-представление .1.3.6.1.2.1.1.3.0 для различных значений oid_output_format
SNMP_OID_OUTPUT_FULL | .iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NUMERIC | .1.3.6.1.2.1.1.3.0
SNMP_OID_OUTPUT_MODULE | DISMAN-EVENT-MIB::sysUpTimeInstance
SNMP_OID_OUTPUT_SUFFIX | sysUpTimeInstance
SNMP_OID_OUTPUT_UCD | system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NONE | Undefined
oid_increasing_check

Контролирует запрет на проверку увеличения OID при обходе дерева OID

Некоторые агенты SNMP известны тем, что возвращают OID не по порядку, но все равно завершают проход. Другие агенты, возвращают OID не по порядку и могут вызвать бесконечное зацикливание SNMP::walk(), пока не будет исчерпана вся память. Библиотека PHP SNMP по умолчанию предпринимает проверку увеличения OID и прекращает обход дерева, если определяет возможную закольцовку, выдавая соответствующее предупреждение. Установите oid_increasing_check в значение FALSE для запрета этой проверки.

exceptions_enabled

Контролирует, в каких случаях будут выбрасываться исключения SNMPException вместо предупреждений. Используйте побитовое ИЛИ из констант SNMP::ERRNO_*. По умолчанию SNMP не выбрасывает исключения.

info

Свойство доступное только для чтения, содержащее конфигурацию удаленного агента: имя хоста, порт, таймаут по умолчанию, количество повторов по умолчанию

Предопределенные константы

Типы ошибок SNMP

SNMP::ERRNO_NOERROR

Ошибки SNMP отсутствуют.

SNMP::ERRNO_GENERIC

Общая ошибка SNMP.

SNMP::ERRNO_TIMEOUT

Истек таймаут запроса к SNMP-агенту.

SNMP::ERRNO_ERROR_IN_REPLY

SNMP-агент вернул ошибку в ответ.

SNMP::ERRNO_OID_NOT_INCREASING

SNMP-агент обнаружил возможную закольцовку из-за неувеличение OID при выполнении команд (BULK)WALK. Говорит нам, что удаленный SNMP-агент фиктивный.

SNMP::ERRNO_OID_PARSING_ERROR

Библиотека не смогла разобрать OID (и/или тип для команды SET). Запросов не было.

SNMP::ERRNO_MULTIPLE_SET_QUERIES

Библиотека использует множественные запросы для операции SET. Это означает, что операция будет выполняться без транзакции, и, если возникнет ошибка типа или значения, второй или последующие фрагменты могут завершиться ошибкой.

SNMP::ERRNO_ANY

Все коды SNMP::ERRNO_* объединенные побитовым ИЛИ.

Версии протокола SNMP

SNMP::VERSION_1

SNMP::VERSION_2C, SNMP::VERSION_2c

SNMP::VERSION_3

Содержание

  • SNMP::close — Close SNMP session
  • SNMP::__construct — Creates SNMP instance representing session to remote SNMP agent
  • SNMP::get — Fetch an SNMP object
  • SNMP::getErrno — Get last error code
  • SNMP::getError — Get last error message
  • SNMP::getnext — Fetch an SNMP object which follows the given object id
  • SNMP::set — Set the value of an SNMP object
  • SNMP::setSecurity — Configures security-related SNMPv3 session parameters
  • SNMP::walk — Fetch SNMP object subtree


Close SNMP session

  • « SNMP
  • SNMP::__construct »
  • PHP Manual
  • SNMP
  • Close SNMP session

SNMP::close

(PHP 5 >= 5.4.0, PHP 7)

SNMP::close — Close SNMP session

Описание

public SNMP::close ( void ) : bool

Frees previously allocated SNMP session object.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 SNMP::close() example

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  # ...
  # get, walk, etc goes here
  # ...
  $session->close();
?>

Смотрите также

  • SNMP::__construct() - Creates SNMP instance representing session to remote SNMP agent


Creates SNMP instance representing session to remote SNMP agent

  • « SNMP::close
  • SNMP::get »
  • PHP Manual
  • SNMP
  • Creates SNMP instance representing session to remote SNMP agent

SNMP::__construct

(PHP 5 >= 5.4.0, PHP 7)

SNMP::__construct — Creates SNMP instance representing session to remote SNMP agent

Описание

public SNMP::__construct ( int $version , string $hostname , string $community [, int $timeout = 1000000 [, int $retries = 5 ]] )

The function description goes here.

Список параметров

version

SNMP protocol version:
SNMP::VERSION_1,
SNMP::VERSION_2C,
SNMP::VERSION_3.

hostname

The SNMP agent. hostname may be suffixed with optional SNMP agent port after colon. IPv6 addresses must be enclosed in square brackets if used with port. If FQDN is used for hostname it will be resolved by php-snmp library, not by Net-SNMP engine. Usage of IPv6 addresses when specifying FQDN may be forced by enclosing FQDN into square brackets. Here it is some examples:

IPv4 with default port | 127.0.0.1
IPv6 with default port | ::1 or [::1]
IPv4 with specific port | 127.0.0.1:1161
IPv6 with specific port | [::1]:1161
FQDN with default port | host.domain
FQDN with specific port | host.domain:1161
FQDN with default port, force usage of IPv6 address | [host.domain]
FQDN with specific port, force usage of IPv6 address | [host.domain]:1161

community

The purpuse of community is SNMP version specific:

SNMP::VERSION_1 | SNMP community
SNMP::VERSION_2C | SNMP community
SNMP::VERSION_3 | SNMPv3 securityName
timeout

The number of microseconds until the first timeout.

retries

The number of retries in case timeout occurs.

Возвращаемые значения

Returns SNMP object representing remote SNMP agent.

Ошибки

SNMP::__construct() throws an exception when parameters count or types are wrong or unknown SNMP protocol version specified.

Примеры

Пример #1 Fetching sysLocation

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $sysdescr = $session->get("sysDescr.0");
  echo "$sysdescr\n";
?>

Результатом выполнения данного примера будет что-то подобное:

STRING: Test server

Смотрите также

  • SNMP::close() - Close SNMP session


Fetch an SNMP object

  • « SNMP::__construct
  • SNMP::getErrno »
  • PHP Manual
  • SNMP
  • Fetch an SNMP object

SNMP::get

(PHP 5 >= 5.4.0, PHP 7)

SNMP::get — Fetch an SNMP object

Описание

public SNMP::get ( mixed $object_id [, bool $preserve_keys = FALSE ] ) : mixed

Fetch an SNMP object specified in object_id using GET query.

Список параметров

If object_id is a string, then SNMP::get() will return SNMP object as string. If object_id is a array, all requested SNMP objects will be returned as associative array of the SNMP object ids and their values.

object_id

The SNMP object (OID) or objects

preserve_keys

When object_id is a array and preserve_keys set to TRUE keys in results will be taken exactly as in object_id, otherwise SNMP::oid_output_format property is used to determinate the form of keys.

Возвращаемые значения

Returns SNMP objects requested as string or array depending on object_id type or FALSE on error.

Ошибки

Данный метод по умолчанию не генерирует исключения. Чтобы включить генерацию исключения SNMPException при возникновении некоторых ошибок данной библиотеки, необходимо установить параметр exceptions_enabled класса SNMP в соответствующее значение. Подробнее смотрите в объяснении параметра SNMP::$exceptions_enabled.

Примеры

Пример #1 Single SNMP object

Single SNMP object may be requested in two ways: as string resulting string return value or as single-element array with associative array as output.

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $sysdescr = $session->get("sysDescr.0");
  echo "$sysdescr\n";
  $sysdescr = $session->get(array("sysDescr.0"));
  print_r($sysdescr);
?>

Результатом выполнения данного примера будет что-то подобное:

STRING: Test server
Array
(
    [SNMPv2-MIB::sysDescr.0] => STRING: Test server
)

Пример #2 Multiple SNMP objects

$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $results = $session->get(array("sysDescr.0", "sysName.0"));
  print_r($results);
  $session->close();

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [SNMPv2-MIB::sysDescr.0] => STRING: Test server
    [SNMPv2-MIB::sysName.0] => STRING: myhost.nodomain
)

Смотрите также

  • SNMP::getErrno() - Get last error code
  • SNMP::getError() - Get last error message


Get last error code

  • « SNMP::get
  • SNMP::getError »
  • PHP Manual
  • SNMP
  • Get last error code

SNMP::getErrno

(PHP 5 >= 5.4.0, PHP 7)

SNMP::getErrno — Get last error code

Описание

public SNMP::getErrno ( void ) : int

Returns error code from last SNMP request.

Возвращаемые значения

Returns one of SNMP error code values described in constants chapter.

Примеры

Пример #1 SNMP::getErrno() example

<?php
$session = new SNMP(SNMP::VERSION_2c, '127.0.0.1', 'boguscommunity');
var_dump(@$session->get('.1.3.6.1.2.1.1.1.0'));
var_dump($session->getErrno() == SNMP::ERRNO_TIMEOUT);
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • SNMP::getError() - Get last error message


Get last error message

  • « SNMP::getErrno
  • SNMP::getnext »
  • PHP Manual
  • SNMP
  • Get last error message

SNMP::getError

(PHP 5 >= 5.4.0, PHP 7)

SNMP::getError — Get last error message

Описание

public SNMP::getError ( void ) : string

Returns string with error from last SNMP request.

Возвращаемые значения

String describing error from last SNMP request.

Примеры

Пример #1 SNMP::getError() example

<?php
$session = new SNMP(SNMP::VERSION_2c, '127.0.0.1', 'boguscommunity');
var_dump(@$session->get('.1.3.6.1.2.1.1.1.0'));
var_dump($session->getError());
?>

Результат выполнения данного примера:

bool(false)
string(26) "No response from 127.0.0.1"

Смотрите также

  • SNMP::getErrno() - Get last error code


Fetch an SNMP object which follows the given object id

  • « SNMP::getError
  • SNMP::set »
  • PHP Manual
  • SNMP
  • Fetch an SNMP object which follows the given object id

SNMP::getnext

(PHP 5 >= 5.4.0, PHP 7)

SNMP::getnext — Fetch an SNMP object which follows the given object id

Описание

public SNMP::getnext ( mixed $object_id ) : mixed

Fetch an SNMP object that follows specified object_id.

Список параметров

If object_id is a string, then SNMP::getnext() will return SNMP object as string. If object_id is a array, all requested SNMP objects will be returned as associative array of the SNMP object ids and their values.

object_id

The SNMP object (OID) or objects

Возвращаемые значения

Returns SNMP objects requested as string or array depending on object_id type or FALSE on error.

Ошибки

Данный метод по умолчанию не генерирует исключения. Чтобы включить генерацию исключения SNMPException при возникновении некоторых ошибок данной библиотеки, необходимо установить параметр exceptions_enabled класса SNMP в соответствующее значение. Подробнее смотрите в объяснении параметра SNMP::$exceptions_enabled.

Примеры

Пример #1 Single SNMP object

Single SNMP object may be requested in two ways: as string resulting string return value or as single-element array with associative array as output.

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $nsysdescr = $session->getnext("sysDescr.0");
  echo "$nsysdescr\n";
  $nsysdescr = $session->getnext(array("sysDescr.0"));
  print_r($nsysdescr);
?>

Результатом выполнения данного примера будет что-то подобное:

OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
Array
(
    [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
)

Пример #2 Miltiple SNMP objects

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $results = $session->getnext(array("sysDescr.0", "sysName.0"));
  print_r($results);
  $session->close();
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
    [SNMPv2-MIB::sysLocation.0] => STRING: Nowhere
)

Смотрите также

  • SNMP::getErrno() - Get last error code
  • SNMP::getError() - Get last error message


Set the value of an SNMP object

  • « SNMP::getnext
  • SNMP::setSecurity »
  • PHP Manual
  • SNMP
  • Set the value of an SNMP object

SNMP::set

(PHP 5 >= 5.4.0, PHP 7)

SNMP::set — Set the value of an SNMP object

Описание

public SNMP::set ( mixed $object_id , mixed $type , mixed $value ) : bool

Requests remote SNMP agent setting the value of one or more SNMP objects specified by the object_id.

Список параметров

If object_id is string, both type and value must be string too. If object_id is array value must be equal-sized array containing corresponding values, type may be either string (it's value will be used for all object_id-value pairs) or equal-sized array with per-OID value. When any other parameters' combinations are used, a number of E_WARNING messages may be shown with detailed description.

object_id

The SNMP object id

When count of OIDs in object_id array is greater than max_oids object property set method will have to use multiple queries to perform requested value updates. In this case type and value checks are made per-chunk so second or subsequent requests may fail due to wrong type or value for OID requested. To mark this a warning is raised when count of OIDs in object_id array is greater than max_oids.

type

MIB указывает тип идентификатора каждого объекта. Он должен быть указан в виде одного символа из следующего списка.

types
= Тип, принимаемый MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

Если при компиляции библиотеки SNMP была определена опция OPAQUE_SPECIAL_TYPES, то также могут быть использованы следующие типы:

types
U | unsigned int64
I | signed int64
F | float
D | double

Большинство этих значений используют очевидный тип ASN.1. 's', 'x', 'd' и 'b' - это все разные способы указания значения OCTET STRING, а беззнаковый тип 'u' также используется для обработки значений Gauge32.

Если MIB-файлы были загружены в MIB-дерево с помощью "snmp_read_mib" или были указаны в конфигурационном файле libsnmp, то для указания параметра type можно использовать нотацию '=', т.к. тип всех идентификаторов объектов будет автоматически считан из MIB.

Обратите внимание, что есть два способа установить переменную типа BITS, например, "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • С помощью типа "b" и списка битовых чисел. Не рекомендуется использовать этот метод, т.к. GET-запрос для того же OID вернет, к примеру, 0xF8.
  • С помощью типа "x" и шестнадцатеричного числа, но без(!) обычного префикса "0x".

Подробнее смотрите в разделе с примерами.

value

The new value.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Данный метод по умолчанию не генерирует исключения. Чтобы включить генерацию исключения SNMPException при возникновении некоторых ошибок данной библиотеки, необходимо установить параметр exceptions_enabled класса SNMP в соответствующее значение. Подробнее смотрите в объяснении параметра SNMP::$exceptions_enabled.

Примеры

Пример #1 Set single SNMP object id

<?php
  $session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
  $session->set('SNMPv2-MIB::sysContact.0', 's', "Nobody");
?>

Пример #2 Set multiple values using single SNMP::set() call

<?php
  $session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
  $session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), array('s', 's'), array("Nobody", "Nowhere"));
// or
  $session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), 's', array("Nobody", "Nowhere"));
?>

Пример #3 Using SNMP::set() for setting BITS SNMP object id

<?php
  $session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
  $session->set('FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
  $session->set('FOO-MIB::bar.42', 'x', 'F0');
?>

Смотрите также

  • SNMP::get() - Fetch an SNMP object


Configures security-related SNMPv3 session parameters

  • « SNMP::set
  • SNMP::walk »
  • PHP Manual
  • SNMP
  • Configures security-related SNMPv3 session parameters

SNMP::setSecurity

(PHP 5 >= 5.4.0, PHP 7)

SNMP::setSecurity — Configures security-related SNMPv3 session parameters

Описание

public SNMP::setSecurity ( string $sec_level [, string $auth_protocol = [, string $auth_passphrase = [, string $priv_protocol = [, string $priv_passphrase = [, string $contextName = [, string $contextEngineID = ]]]]]] ) : bool

setSecurity configures security-related session parameters used in SNMP protocol version 3

Список параметров

sec_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

priv_protocol

the privacy protocol (DES or AES)

priv_passphrase

the privacy pass phrase

contextName

the context name

contextEngineID

the context EngineID

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 SNMP::setSecurity() example

<?php
  $session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries);
  $session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, '', 'aeeeff');
?>

Смотрите также

  • SNMP::__construct() - Creates SNMP instance representing session to remote SNMP agent


Fetch SNMP object subtree

  • « SNMP::setSecurity
  • SNMPException »
  • PHP Manual
  • SNMP
  • Fetch SNMP object subtree

SNMP::walk

(PHP 5 >= 5.4.0, PHP 7)

SNMP::walk — Fetch SNMP object subtree

Описание

public SNMP::walk ( string $object_id [, bool $suffix_as_key = FALSE [, int $max_repetitions [, int $non_repeaters ]]] ) : array

SNMP::walk() is used to read SNMP subtree rooted at specified object_id.

Список параметров

object_id

Root of subtree to be fetched

suffix_as_key

By default full OID notation is used for keys in output array. If set to TRUE subtree prefix will be removed from keys leaving only suffix of object_id.

non_repeaters

This specifies the number of supplied variables that should not be iterated over. The default is to use this value from SNMP object.

max_repetitions

This specifies the maximum number of iterations over the repeating variables. The default is to use this value from SNMP object.

Возвращаемые значения

Returns an associative array of the SNMP object ids and their values on success or FALSE on error. When a SNMP error occures SNMP::getErrno() and SNMP::getError() can be used for retrieving error number (specific to SNMP extension, see class constants) and error message respectively.

Ошибки

Данный метод по умолчанию не генерирует исключения. Чтобы включить генерацию исключения SNMPException при возникновении некоторых ошибок данной библиотеки, необходимо установить параметр exceptions_enabled класса SNMP в соответствующее значение. Подробнее смотрите в объяснении параметра SNMP::$exceptions_enabled.

Примеры

Пример #1 SNMP::walk() example

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $fulltree = $session->walk(".");
  print_r($fulltree);
  $session->close();
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [SNMPv2-MIB::sysDescr.0] => STRING: Test server
    [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
    [DISMAN-EVENT-MIB::sysUpTimeInstance] => Timeticks: (1150681750) 133 days, 4:20:17.50
    [SNMPv2-MIB::sysContact.0] => STRING: Nobody
    [SNMPv2-MIB::sysName.0] => STRING: server.localdomain
    ...
)

Пример #2 suffix_as_key example

suffix_as_key may be used when merging multiple SNMP subtrees into one. This example maps interface names to their type.

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $session->valueretrieval = SNMP_VALUE_PLAIN;
  $ifDescr = $session->walk(".1.3.6.1.2.1.2.2.1.2", TRUE);
  $session->valueretrieval = SNMP_VALUE_LIBRARY;
  $ifType = $session->walk(".1.3.6.1.2.1.2.2.1.3", TRUE);
  print_r($ifDescr);
  print_r($ifType);
  $result = array();
  foreach($ifDescr as $i => $n) {
    $result[$n] = $ifType[$i];
  }
  print_r($result);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [1] => igb0
    [2] => igb1
    [3] => ipfw0
    [4] => lo0
    [5] => lagg0
)
Array
(
    [1] => INTEGER: ieee8023adLag(161)
    [2] => INTEGER: ieee8023adLag(161)
    [3] => INTEGER: ethernetCsmacd(6)
    [4] => INTEGER: softwareLoopback(24)
    [5] => INTEGER: ethernetCsmacd(6)
)
Array
(
    [igb0] => INTEGER: ieee8023adLag(161)
    [igb1] => INTEGER: ieee8023adLag(161)
    [ipfw0] => INTEGER: ethernetCsmacd(6)
    [lo0] => INTEGER: softwareLoopback(24)
    [lagg0] => INTEGER: ethernetCsmacd(6)
)

Смотрите также

  • SNMP::getErrno() - Get last error code
  • SNMP::getError() - Get last error message


Класс SNMPException

(PHP 5 >= 5.4.0, PHP 7)

Введение

Представляет класс исключения, выбрасываемого SNMP. Вы не должны выбрасывать исключения SNMPException самостоятельно. Более подробно об исключениях в PHP читайте в разделе Исключения.

Обзор классов

SNMPException extends RuntimeException {
/* Свойства */
protected string $code ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Свойства

code

Код ошибки библиотеки SNMP. Для его извлечения используйте Exception::getCode().


Сокеты

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Ошибки сокетов
  • Функции сокета
    • socket_accept — Принимает соединение на сокете
    • socket_addrinfo_bind — Создать и привязать к сокету из указанного addrinfo
    • socket_addrinfo_connect — Создать и подключиться к сокету из указанного addrinfo
    • socket_addrinfo_explain — Получить информацию о addrinfo
    • socket_addrinfo_lookup — Получить массив с содержимым getaddrinfo про указанное имя хоста
    • socket_bind — Привязывает имя к сокету
    • socket_clear_error — Очищает ошибку на сокете или последний код ошибки
    • socket_close — Закрывает ресурс сокета
    • socket_cmsg_space — Вычислить размер буфера сообщения
    • socket_connect — Начинает соединение с сокетом
    • socket_create_listen — Открывает сокет на указанном порту для принятия соединений
    • socket_create_pair — Создаёт пару неразличимых сокетов и сохраняет их в массиве
    • socket_create — Создаёт сокет (конечную точку для обмена информацией)
    • socket_export_stream — Экспортировать ресурс расширения сокета в поток, инкапсулирующий сокет
    • socket_get_option — Получает опции потока для сокета
    • socket_getopt — Псевдоним socket_get_option
    • socket_getpeername — Запрашивает удалённую сторону указанного сокета, в результате может быть возвращен хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
    • socket_getsockname — Запрашивает локальную сторону указанного сокета, в результате можно получить хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
    • socket_import_stream — Импортировать поток
    • socket_last_error — Возвращает последнюю ошибку на сокете
    • socket_listen — Прослушивает входящие соединения на сокете
    • socket_read — Читает строку максимальную длину байт из сокета
    • socket_recv — Получает данные из подсоединённого сокета
    • socket_recvfrom — Получает данные из сокета, независимо от того, подсоединён он или нет
    • socket_recvmsg — Прочитать сообщение
    • socket_select — Запускает системный вызов select() для заданных массивов сокетов с указанным тайм-аутом
    • socket_send — Отправляет данные в подсоединённый сокет
    • socket_sendmsg — Отправить сообщение
    • socket_sendto — Отправляет сообщение в сокет, независимо от того, подсоединён он или нет
    • socket_set_block — Устанавливает блокирующий режим на ресурсе сокета
    • socket_set_nonblock — Устанавливает неблокирующий режим для файлового дескриптора fd
    • socket_set_option — Устанавливает опции для сокета
    • socket_setopt — Псевдоним socket_set_option
    • socket_shutdown — Завершает работу сокета на получение и/или отправку данных
    • socket_strerror — Возвращает строку, описывающую ошибку сокета
    • socket_write — Запись в сокет
    • socket_wsaprotocol_info_export — Экспорт структуры WSAPROTOCOL_INFO
    • socket_wsaprotocol_info_import — Импортирует сокет из другого процесса
    • socket_wsaprotocol_info_release — Высвобождает экспортированную структуру WSAPROTOCOL_INFO


Введение

Расширение socket реализует низкоуровневый интерфейс для функций связи сокетов, основанными на популярных сокетах BSD, обеспечивая возможность действовать как сервер сокетов, так и клиент.

Для более общего клиентского интерфейса сокетов смотрите
stream_socket_client(),
stream_socket_server(),
fsockopen() и
pfsockopen().

При использовании этих функций, важно помнить, что хотя многие из них имеют имена, похожие на их аналоги в C, они часто имеют другой интерфейс использования. Пожалуйста, прочитайте их описания для того, чтобы избежать путаницы.

Незнакомые с программированием сокетов могут найти много полезной информации в соответствующих man-страницах Unix, также в Интернете есть много обучающей информации по программированию сокетов на C, большая часть из которой может быть применена с небольшими изменениями к программированию сокетов на PHP. Хорошим началом может быть » FAQ по Unix-сокетам.


Установка

Сокетные функции, описанные здесь, являются частью расширения PHP, которое может быть включено при компиляции при помощи указания опции --enable-sockets команде configure.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

socket_accept(),
socket_create_listen() и
socket_create() возвращают ресурсы сокетов.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

AF_UNIX (integer)
AF_INET (integer)
AF_INET6 (integer)
Константа доступна, только если PHP скомпилирован с поддержкой IPv6.
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)
MSG_EOR (integer)
Константа недоступна на Windows-платформах.
MSG_EOF (integer)
Константа недоступна на Windows-платформах.
SO_DEBUG (integer)
SO_REUSEADDR (integer)
SO_REUSEPORT (integer)
Эта константа доступна только в PHP 5.4.10 и новее на платформах, которые поддерживают опцию SO_REUSEPORT сокета: сюда входят macOS и FreeBSD, но не входят Linux или Windows.
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)
TCP_NODELAY (integer)
Константа используется для отключения TCP-алгоритма Нагла. Добавлена в PHP 5.2.7.
SOL_SOCKET (integer)
PHP_NORMAL_READ (integer)
PHP_BINARY_READ (integer)
SOL_TCP (integer)
SOL_UDP (integer)

Следующие константы определены только в Windows и Unix-подобных системах. Каждая константа определена только, если ее эквивалент доступен в системе.

SOCKET_EINTR (integer)
Прерванный системный вызов.
SOCKET_EBADF (integer)
Неверный номер файла.
SOCKET_EACCES (integer)
Доступ запрещён.
SOCKET_EFAULT (integer)
Неверный адрес.
SOCKET_EINVAL (integer)
Неверный аргумент.
SOCKET_EMFILE (integer)
Слишком много открытых файлов.
SOCKET_ENAMETOOLONG (integer)
Слишком длинное имя файла.
SOCKET_ENOTEMPTY (integer)
Каталог не пуст.
SOCKET_ELOOP (integer)
Обнаружено слишком много символических ссылок.
SOCKET_EWOULDBLOCK (integer)
Операция будет блокирована.
SOCKET_EREMOTE (integer)
Объект является удалённым.
SOCKET_EUSERS (integer)
Слишком много пользователей.
SOCKET_ENOTSOCK (integer)
Socket operation on non-socket.
SOCKET_EDESTADDRREQ (integer)
Destination address required.
SOCKET_EMSGSIZE (integer)
Сообщение слишком длинное.
SOCKET_EPROTOTYPE (integer)
Protocol wrong type for socket.
SOCKET_EPROTONOSUPPORT (integer)
Протокол не поддерживается.
SOCKET_ESOCKTNOSUPPORT (integer)
Тип сокета не поддерживается.
SOCKET_EOPNOTSUPP (integer)
Операция не поддерживается на конечной точке транспорта.
SOCKET_EPFNOSUPPORT (integer)
Семейство протоколов не поддерживается.
SOCKET_EAFNOSUPPORT (integer)
Семейство адресов не поддерживается протоколом.
SOCKET_EADDRNOTAVAIL (integer)
Не удается назначить требуемый адрес.
SOCKET_ENETDOWN (integer)
Сеть не работает.
SOCKET_ENETUNREACH (integer)
Сеть недоступна.
SOCKET_ENETRESET (integer)
Сеть сбросила соединение из-за переустановки соединения.
SOCKET_ECONNABORTED (integer)
Приложение вызвало разрыв соединения.
SOCKET_ECONNRESET (integer)
Соединение сброшено узлом.
SOCKET_ENOBUFS (integer)
Нет доступного буферного пространства.
SOCKET_EISCONN (integer)
Конечная точка транспорта уже подсоединена.
SOCKET_ENOTCONN (integer)
Конечная точка транспорта не подсоединена.
SOCKET_ESHUTDOWN (integer)
Не удается отправить данные из-за отключения конечной точки транспорта.
SOCKET_ETIMEDOUT (integer)
Истекло время соединения.
SOCKET_ECONNREFUSED (integer)
Отказ в соединении.
SOCKET_EHOSTDOWN (integer)
Хост выключен.
SOCKET_EHOSTUNREACH (integer)
Нет маршрута до хоста.
SOCKET_EALREADY (integer)
Операция уже в прогрессе.
SOCKET_EINPROGRESS (integer)
Операция сейчас в прогрессе.

Следующие константы определены только в Windows.

SOCKET_ENOPROTOOPT (integer)
SOCKET_EADDRINUSE (integer)
SOCKET_ETOOMYREFS (integer)
SOCKET_EPROCLIM (integer)
SOCKET_EDUOT (integer)
SOCKET_ESTALE (integer)
SOCKET_EDISCON (integer)
SOCKET_SYSNOTREADY (integer)
SOCKET_VERNOTSUPPORTED (integer)
SOCKET_NOTINITIALISED (integer)
SOCKET_HOST_NOT_FOUND (integer)
SOCKET_TRY_AGAIN (integer)
SOCKET_NO_RECOVERY (integer)
SOCKET_NO_DATA (integer)
SOCKET_NO_ADDRESS (integer)

Следующие константы доступны только на UNIX-платформах. Каждая константа определена, только если её эквивалент доступен на платформе.

SOCKET_EPERM (integer)
Операция не допускается.
SOCKET_ENOENT (integer)
Нет такого файла или каталога.
SOCKET_EIO (integer)
Ошибка ввода-вывода.
SOCKET_ENXIO (integer)
Нет такого устройства или адреса.
SOCKET_E2BIG (integer)
Список аргументов слишком длинный.
SOCKET_EAGAIN (integer)
Попытайтесь ещё раз.
SOCKET_ENOMEM (integer)
Переполнение доступной памяти.
SOCKET_ENOTBLK (integer)
Требуется блочное устройство.
SOCKET_EBUSY (integer)
Устройство или ресурс занято.
SOCKET_EEXIST (integer)
Файл существует.
SOCKET_EXDEV (integer)
Ссылка на кросс-устройство.
SOCKET_ENODEV (integer)
Нет такого устройства.
SOCKET_ENOTDIR (integer)
Это не каталог.
SOCKET_EISDIR (integer)
Это каталог.
SOCKET_ENFILE (integer)
Переполнение файловой таблицы.
SOCKET_ENOTTY (integer)
Не печатающее устройство.
SOCKET_ENOSPC (integer)
Не осталось места на устройстве.
SOCKET_ESPIPE (integer)
Недопустимый запрос.
SOCKET_EROFS (integer)
Файловая система доступна только для чтения.
SOCKET_EMLINK (integer)
Слишком много ссылок.
SOCKET_EPIPE (integer)
Оборванный канал.
SOCKET_ENOLCK (integer)
Не доступна блокировка записи.
SOCKET_ENOSYS (integer)
Функция не реализована.
SOCKET_ENOMSG (integer)
Нет сообщения желаемого типа.
SOCKET_EIDRM (integer)
Идентификатор удалён.
SOCKET_ECHRNG (integer)
Тип канала выходит за пределы диапазона.
SOCKET_EL2NSYNC (integer)
Уровень 2 не синхронизирован.
SOCKET_EL3HLT (integer)
Уровень 3 остановлен.
SOCKET_EL3RST (integer)
Уровень 3 сброшен.
SOCKET_ELNRNG (integer)
Номер ссылки выходит за пределы диапазона.
SOCKET_EUNATCH (integer)
Драйвер протокола не подключён.
SOCKET_ENOCSI (integer)
CSI-структура недоступна.
SOCKET_EL2HLT (integer)
Уровень 2 остановлен.
SOCKET_EBADE (integer)
Недопустимый коммутатор.
SOCKET_EBADR (integer)
Недопустимый дескриптор запроса.
SOCKET_EXFULL (integer)
Коммутатор заполнен.
SOCKET_ENOANO (integer)
Не anode.
SOCKET_EBADRQC (integer)
Недопустимый код запроса.
SOCKET_EBADSLT (integer)
Недопустимый слот.
SOCKET_ENOSTR (integer)
Устройство не является потоковым.
SOCKET_ENODATA (integer)
Нет доступных данных.
SOCKET_ETIME (integer)
Таймер истёк.
SOCKET_ENOSR (integer)
Кончились потоковые ресурсы.
SOCKET_ENONET (integer)
Машина не подключена к сети.
SOCKET_ENOLINK (integer)
Ссылка была разорвана.
SOCKET_EADV (integer)
Ошибка объявления (advertise).
SOCKET_ESRMNT (integer)
Ошибка Srmount.
SOCKET_ECOMM (integer)
Ошибка связи при отправке.
SOCKET_EPROTO (integer)
Ошибка протокола.
SOCKET_EMULTIHOP (integer)
Попытка перескочить на недоступный ресурс (multihop).
SOCKET_EBADMSG (integer)
Не является сообщением с данными.
SOCKET_ENOTUNIQ (integer)
Имя не уникальное в сети.
SOCKET_EBADFD (integer)
Файловый указатель в неверном состоянии.
SOCKET_EREMCHG (integer)
Удаленный адрес изменился.
SOCKET_ERESTART (integer)
Прерванный системный вызов должен быть перезапущен.
SOCKET_ESTRPIPE (integer)
Ошибка канала потока.
SOCKET_EPROTOOPT (integer)
Протокол недоступен.
SOCKET_ADDRINUSE (integer)
Адрес уже в использовании.
SOCKET_ETOOMANYREFS (integer)
Слишком много ссылок: не могу соединить.
SOCKET_EISNAM (integer)
Именованный тип файла.
SOCKET_EREMOTEIO (integer)
Ошибка удалённого ввода-вывода.
SOCKET_EDQUOT (integer)
Квота превышена.
SOCKET_ENOMEDIUM (integer)
Носитель не найден.
SOCKET_EMEDIUMTYPE (integer)
Неверный тип носителя.


Примеры

Пример #1 Пример использования сокетов: Простой сервер TCP/IP

Этот пример показывает работу простого сервера. Измените переменные address и port в соответствии с вашими настройками и выполните. Затем вы можете соединиться с сервером с командой, похожей на: telnet 192.168.1.53 10000 (где адрес и порт должны соответствовать вашим настройкам). Всё, что вы наберёте на клавиатуре, будет затем выведено на сервере и отправлено вам обратно. Для отключения наберите 'выход'.

#!/usr/local/bin/php -q
<?php
error_reporting(E_ALL);

/* Позволяет скрипту ожидать соединения бесконечно. */
set_time_limit(0);

/* Включает скрытое очищение вывода так, что мы видим данные
 * как только они появляются. */
ob_implicit_flush();

$address = '192.168.1.53';
$port = 10000;

if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
    echo "Не удалось выполнить socket_create(): причина: " . socket_strerror(socket_last_error()) . "\n";
}

if (socket_bind($sock, $address, $port) === false) {
    echo "Не удалось выполнить socket_bind(): причина: " . socket_strerror(socket_last_error($sock)) . "\n";
}

if (socket_listen($sock, 5) === false) {
    echo "Не удалось выполнить socket_listen(): причина: " . socket_strerror(socket_last_error($sock)) . "\n";
}

do {
    if (($msgsock = socket_accept($sock)) === false) {
        echo "Не удалось выполнить socket_accept(): причина: " . socket_strerror(socket_last_error($sock)) . "\n";
        break;
    }
    /* Отправляем инструкции. */
    $msg = "\nДобро пожаловать на тестовый сервер PHP. \n" .
        "Чтобы отключиться, наберите 'выход'. Чтобы выключить сервер, наберите 'выключение'.\n";
    socket_write($msgsock, $msg, strlen($msg));

    do {
        if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
            echo "Не удалось выполнить socket_read(): причина: " . socket_strerror(socket_last_error($msgsock)) . "\n";
            break 2;
        }
        if (!$buf = trim($buf)) {
            continue;
        }
        if ($buf == 'выход') {
            break;
        }
        if ($buf == 'выключение') {
            socket_close($msgsock);
            break 2;
        }
        $talkback = "PHP: Вы сказали '$buf'.\n";
        socket_write($msgsock, $talkback, strlen($talkback));
        echo "$buf\n";
    } while (true);
    socket_close($msgsock);
} while (true);

socket_close($sock);
?>

Пример #2 Пример использования сокетов: Простой клиентTCP/IP

Этот пример показывает использование простого одноразового HTTP-клиента. Он просто соединяется со страницей, отправляет запрос HEAD, выводит ответ и завершает работу.

<?php
error_reporting(E_ALL);

echo "<h2>Соединение TCP/IP</h2>\n";

/* Получаем порт сервиса WWW. */
$service_port = getservbyname('www', 'tcp');

/* Получаем IP-адрес целевого хоста. */
$address = gethostbyname('www.example.com');

/* Создаём сокет TCP/IP. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "Не удалось выполнить socket_create(): причина: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "OK.\n";
}

echo "Пытаемся соединиться с '$address' на порту '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
    echo "Не удалось выполнить socket_connect().\nПричина: ($result) " . socket_strerror(socket_last_error($socket)) . "\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 "Отправляем HTTP-запрос HEAD...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Читаем ответ:\n\n";
while ($out = socket_read($socket, 2048)) {
    echo $out;
}

echo "Закрываем сокет...";
socket_close($socket);
echo "OK.\n\n";
?>


Ошибки сокетов

Расширение socket было написано для обеспечения удобного интерфейса к сокетам BSD. Были приняты необходимые меры для того, чтобы эти функции работали одинаково хорошо в реализации как для Win32, так и Unix. Почти все функции, при определенных условиях, могут завершиться с ошибкой и вызовут вызовут ошибку уровня E_WARNING. Иногда, разработчики препятствуют этому. Например, функция socket_read() может внезапно вызвать ошибку уровня E_WARNING, потому что соединение неожиданно оборвалось. Обычная практика подавлять предупреждение при помощи оператора @ и перехватывать код ошибки в приложении при помощи функции socket_last_error(). Вы можете вызывать функцию socket_strerror() с кодом ошибки для получения строки, описывающей ошибку. Смотрите описание этих функций для более подробной информации.

Замечание:

Сообщения E_WARNING, вызываемые расширением socket, будут на английском языке, а полученное сообщение об ошибке будет появляться в зависимости от настроек текущей локали (LC_MESSAGES):

Warning - socket_bind() unable to bind address [98]: Die Adresse wird bereits verwendet


Функции сокета

Содержание

  • socket_accept — Принимает соединение на сокете
  • socket_addrinfo_bind — Создать и привязать к сокету из указанного addrinfo
  • socket_addrinfo_connect — Создать и подключиться к сокету из указанного addrinfo
  • socket_addrinfo_explain — Получить информацию о addrinfo
  • socket_addrinfo_lookup — Получить массив с содержимым getaddrinfo про указанное имя хоста
  • socket_bind — Привязывает имя к сокету
  • socket_clear_error — Очищает ошибку на сокете или последний код ошибки
  • socket_close — Закрывает ресурс сокета
  • socket_cmsg_space — Вычислить размер буфера сообщения
  • socket_connect — Начинает соединение с сокетом
  • socket_create_listen — Открывает сокет на указанном порту для принятия соединений
  • socket_create_pair — Создаёт пару неразличимых сокетов и сохраняет их в массиве
  • socket_create — Создаёт сокет (конечную точку для обмена информацией)
  • socket_export_stream — Экспортировать ресурс расширения сокета в поток, инкапсулирующий сокет
  • socket_get_option — Получает опции потока для сокета
  • socket_getopt — Псевдоним socket_get_option
  • socket_getpeername — Запрашивает удалённую сторону указанного сокета, в результате может быть возвращен хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
  • socket_getsockname — Запрашивает локальную сторону указанного сокета, в результате можно получить хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
  • socket_import_stream — Импортировать поток
  • socket_last_error — Возвращает последнюю ошибку на сокете
  • socket_listen — Прослушивает входящие соединения на сокете
  • socket_read — Читает строку максимальную длину байт из сокета
  • socket_recv — Получает данные из подсоединённого сокета
  • socket_recvfrom — Получает данные из сокета, независимо от того, подсоединён он или нет
  • socket_recvmsg — Прочитать сообщение
  • socket_select — Запускает системный вызов select() для заданных массивов сокетов с указанным тайм-аутом
  • socket_send — Отправляет данные в подсоединённый сокет
  • socket_sendmsg — Отправить сообщение
  • socket_sendto — Отправляет сообщение в сокет, независимо от того, подсоединён он или нет
  • socket_set_block — Устанавливает блокирующий режим на ресурсе сокета
  • socket_set_nonblock — Устанавливает неблокирующий режим для файлового дескриптора fd
  • socket_set_option — Устанавливает опции для сокета
  • socket_setopt — Псевдоним socket_set_option
  • socket_shutdown — Завершает работу сокета на получение и/или отправку данных
  • socket_strerror — Возвращает строку, описывающую ошибку сокета
  • socket_write — Запись в сокет
  • socket_wsaprotocol_info_export — Экспорт структуры WSAPROTOCOL_INFO
  • socket_wsaprotocol_info_import — Импортирует сокет из другого процесса
  • socket_wsaprotocol_info_release — Высвобождает экспортированную структуру WSAPROTOCOL_INFO


Принимает соединение на сокете

  • « Функции сокета
  • socket_addrinfo_bind »
  • PHP Manual
  • Функции сокета
  • Принимает соединение на сокете

socket_accept

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_accept — Принимает соединение на сокете

Описание

socket_accept ( resource $socket ) : resource

После того, как сокет socket был создан при помощи функции socket_create(), привязан к имени при помощи функции socket_bind(), и ему было указано слушать соединения при помощи функции socket_listen(), эта функция будет принимать входящие соединения на этом сокете. Как только произошло удачное соединение, возвращается новый ресурс сокета, который может быть использован для связи. Если в очереди сокета есть несколько соединений, будет использовано первое из них. Если нет ожидающих соединений, то функция socket_accept() будет блокировать выполнение скрипта до тех пор, пока не появится соединение. Если сокет socket был сделан неблокирующим при помощи функции socket_set_blocking() или socket_set_nonblock(), будет возвращено FALSE.

Ресурс сокета, полученный при помощи функции socket_accept() не может быть использован для принятия новых соединений. Однако изначальный слушающий сокет socket, остаётся открытым и может быть использован повторно.

Список параметров

socket

Действительный ресурс сокета, созданный при помощи функции socket_create().

Возвращаемые значения

В случае успеха возвращает новый ресурс сокета или FALSE в случае ошибки. Код ошибки может быть получен при помощи вызова функции socket_last_error(). Этот код ошибки может быть передан функции socket_strerror() для получения текстового описания ошибки.

Смотрите также

  • socket_connect() - Начинает соединение с сокетом
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_bind() - Привязывает имя к сокету
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Создать и привязать к сокету из указанного addrinfo

  • « socket_accept
  • socket_addrinfo_connect »
  • PHP Manual
  • Функции сокета
  • Создать и привязать к сокету из указанного addrinfo

socket_addrinfo_bind

(PHP 7 >= 7.2.0)

socket_addrinfo_bind — Создать и привязать к сокету из указанного addrinfo

Описание

socket_addrinfo_bind ( resource $addr ) : resource

Создать ресурс сокета и привязать его с предоставленным ресурсом AddrInfo. Возвращаемое значение этой функции может использоваться с socket_listen().

Список параметров

addr

Ресурс, созданный с помощью socket_addrinfo_lookup().

Возвращаемые значения

Возвращает ресурс сокета в случае успеешного выполнения или NULL в случае возникновения ошибки.

Смотрите также

  • socket_addrinfo_connect() - Создать и подключиться к сокету из указанного addrinfo
  • socket_addrinfo_explain() - Получить информацию о addrinfo
  • socket_addrinfo_lookup() - Получить массив с содержимым getaddrinfo про указанное имя хоста
  • socket_listen() - Прослушивает входящие соединения на сокете


Создать и подключиться к сокету из указанного addrinfo

  • « socket_addrinfo_bind
  • socket_addrinfo_explain »
  • PHP Manual
  • Функции сокета
  • Создать и подключиться к сокету из указанного addrinfo

socket_addrinfo_connect

(PHP 7 >= 7.2.0)

socket_addrinfo_connect — Создать и подключиться к сокету из указанного addrinfo

Описание

socket_addrinfo_connect ( resource $addr ) : resource

Создать ресурс сокета и подключить его к предоставленному ресурсу AddrInfo. Возвращаемое значение этой функции может использоваться с остальными функциями сокета.

Список параметров

addr

Ресурс, созданный с помощью socket_addrinfo_lookup()

Возвращаемые значения

Возвращает ресурс сокета в случае успешного выполнения или NULL в случае возникновения ошибки.

Смотрите также

  • socket_addrinfo_bind() - Создать и привязать к сокету из указанного addrinfo
  • socket_addrinfo_explain() - Получить информацию о addrinfo
  • socket_addrinfo_lookup() - Получить массив с содержимым getaddrinfo про указанное имя хоста


Получить информацию о addrinfo

  • « socket_addrinfo_connect
  • socket_addrinfo_lookup »
  • PHP Manual
  • Функции сокета
  • Получить информацию о addrinfo

socket_addrinfo_explain

(PHP 7 >= 7.2.0)

socket_addrinfo_explain — Получить информацию о addrinfo

Описание

socket_addrinfo_explain ( resource $addr ) : array

Функция socket_addrinfo_explain() предоставляет доступ к базовой структуре addrinfo.

Список параметров

addr

Ресурс, созданный с помощью socket_addrinfo_lookup()

Возвращаемые значения

Возвращает массив, содержащий поля в структуре addrinfo.

Смотрите также

  • socket_addrinfo_bind() - Создать и привязать к сокету из указанного addrinfo
  • socket_addrinfo_connect() - Создать и подключиться к сокету из указанного addrinfo
  • socket_addrinfo_lookup() - Получить массив с содержимым getaddrinfo про указанное имя хоста


Получить массив с содержимым getaddrinfo про указанное имя хоста

  • « socket_addrinfo_explain
  • socket_bind »
  • PHP Manual
  • Функции сокета
  • Получить массив с содержимым getaddrinfo про указанное имя хоста

socket_addrinfo_lookup

(PHP 7 >= 7.2.0)

socket_addrinfo_lookup — Получить массив с содержимым getaddrinfo про указанное имя хоста

Описание

socket_addrinfo_lookup ( string $host [, string $service [, array $hints ]] ) : array

Поиск различных способов подключения к хосту (host). Возвращаемый массив содержит набор ресурсов, которые можно привязать с помощью socket_addrinfo_bind().

Список параметров

host

Имя хоста для поиска.

service

Сервис для подключения. Если сервис является именем, он преобразуется в соответствующий номер порта.

hints

Подсказки предоставляют критерии выбора возвращаемых адресов. Вы можете указать подсказки, как определено getadrinfo.

Возвращаемые значения

Возвращает массив дескрипторов ресурсов AddrInfo, которые можно использовать с другими функциями socket_addrinfo.

Смотрите также

  • socket_addrinfo_bind() - Создать и привязать к сокету из указанного addrinfo
  • socket_addrinfo_connect() - Создать и подключиться к сокету из указанного addrinfo
  • socket_addrinfo_explain() - Получить информацию о addrinfo


Привязывает имя к сокету

  • « socket_addrinfo_lookup
  • socket_clear_error »
  • PHP Manual
  • Функции сокета
  • Привязывает имя к сокету

socket_bind

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_bind — Привязывает имя к сокету

Описание

socket_bind ( resource $socket , string $address [, int $port = 0 ] ) : bool

Привязывает имя, указанное в параметре address, к сокету, описанному в параметре socket. Это должно быть сделано до того, как соединение установлено при помощи функции socket_connect() или socket_listen().

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create().

address

Если сокет из семейства AF_INET, то параметр address должен быть IP-адресом в записи, разделённой точками (например, 127.0.0.1).

Если сокет из семейства AF_UNIX, то параметр address - это путь к доменному сокету Unix (например, /tmp/my.sock).

port (Optional)

Параметр port используется, только когда имя привязывается к сокету AF_INET, и указывает порт, на котором будут слушаться соединения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Код ошибки может быть получен при помощи функции socket_last_error(). Этот код может быть передан функции socket_strerror() для получения текстового описания ошибки.

Примеры

Пример #1 Использование функции socket_bind() для установки адреса источника

<?php
// Создаём новый сокет
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// Пример списка IP-адресов, которые есть на компьютере
$sourceips['kevin']    = '127.0.0.1';
$sourceips['madcoder'] = '127.0.0.2';

// Привязываем адрес источника
socket_bind($sock, $sourceips['madcoder']);

// Соединяемся с адресом назначения
socket_connect($sock, '127.0.0.1', 80);

// Пишем в сокет
$request = 'GET / HTTP/1.1' . "\r\n" .
           'Host: example.com' . "\r\n\r\n";
socket_write($sock, $request);

// Закрываем сокет
socket_close($sock);

?>

Примечания

Замечание:

Эта функция должна быть применена на сокете перед вызовом socket_connect().

Замечание:

Примечание по совместимости с Windows 9x/ME: Функция socket_last_error() может возвращать неверный код ошибки при попытке связать с сокетом неверный адрес, который не принадлежит вашей машине.

Смотрите также

  • socket_connect() - Начинает соединение с сокетом
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Очищает ошибку на сокете или последний код ошибки

  • « socket_bind
  • socket_close »
  • PHP Manual
  • Функции сокета
  • Очищает ошибку на сокете или последний код ошибки

socket_clear_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

socket_clear_error — Очищает ошибку на сокете или последний код ошибки

Описание

socket_clear_error ([ resource $socket ] ) : void

Эта функция очищает код ошибки на указанном сокете или последнюю глобальную ошибку сокета, если сокет не указан.

Эта функция позволяет принудительно сбросить значение кода ошибки для сокета или последний глобальный код ошибки расширения. Это может быть полезно для определения внутри части приложения, произошла ошибка или нет.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Закрывает ресурс сокета

  • « socket_clear_error
  • socket_cmsg_space »
  • PHP Manual
  • Функции сокета
  • Закрывает ресурс сокета

socket_close

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_close — Закрывает ресурс сокета

Описание

socket_close ( resource $socket ) : void

Функция socket_close() закрывает ресурс сокета, указанный параметром socket. Эта функция работает только с сокетами и не может быть использована с каким-нибудь другим типом ресурсов.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функций socket_create() или socket_accept().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • socket_bind() - Привязывает имя к сокету
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Вычислить размер буфера сообщения

  • « socket_close
  • socket_connect »
  • PHP Manual
  • Функции сокета
  • Вычислить размер буфера сообщения

socket_cmsg_space

(PHP 5 >= 5.5.0, PHP 7)

socket_cmsg_space — Вычислить размер буфера сообщения

Описание

socket_cmsg_space ( int $level , int $type [, int $n = 0 ] ) : int

Вычисляет размер буфера, который должен быть выделен для получения вспомогательных данных.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

level

type

Возвращаемые значения

Смотрите также

  • socket_recvmsg() - Прочитать сообщение
  • socket_sendmsg() - Отправить сообщение


Начинает соединение с сокетом

  • « socket_cmsg_space
  • socket_create_listen »
  • PHP Manual
  • Функции сокета
  • Начинает соединение с сокетом

socket_connect

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_connect — Начинает соединение с сокетом

Описание

socket_connect ( resource $socket , string $address [, int $port = 0 ] ) : bool

Инициализирует соединение с адресом address, используя ресурс сокета socket, который должен быть действующим ресурсом сокета, созданным при помощи функции socket_create().

Список параметров

socket

address

Параметр address может быть IPv4-адресом в записи, разделённой точками (например, 127.0.0.1), если параметр socket равен AF_INET, правильный IPv6-адрес (например, ::1), если включена поддержка IPv6 и параметр socket равен AF_INET6 или путь к файлу доменного сокета Unix, если используется семейство сокетов AF_UNIX.

port

Параметр port используется и обязателен только в том случае, если происходит соединение с сокетом AF_INET или AF_INET6, и он указывает порт на удалённом хосте, к которому должно быть создано соединение.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Код ошибки может быть получен при помощи функции socket_last_error(). Этот код может быть затем передан функции socket_strerror() для получения текстового описания ошибки.

Замечание:

Если сокет неблокирующий, то эта функция возвращает FALSE с ошибкой Operation now in progress.

Смотрите также

  • socket_bind() - Привязывает имя к сокету
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Открывает сокет на указанном порту для принятия соединений

  • « socket_connect
  • socket_create_pair »
  • PHP Manual
  • Функции сокета
  • Открывает сокет на указанном порту для принятия соединений

socket_create_listen

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_create_listen — Открывает сокет на указанном порту для принятия соединений

Описание

socket_create_listen ( int $port [, int $backlog = 128 ] ) : resource

socket_create_listen() создаёт новый ресурс сокета типа AF_INET, слушающий на всех локальных интерфейсах указанный порт в ожидании новых соединений.

Эта функция предназначена для упрощения задачи создания нового сокета, который только слушает порт для получения новых соединений.

Список параметров

port

Порт, который нужно слушать на всех интерфейсах.

backlog

Параметр backlog определяет максимальную длину, до которой может вырасти очередь ожидающих соединений. SOMAXCONN может быть передан как параметр backlog, смотрите socket_listen() для более полной информации.

Возвращаемые значения

socket_create_listen() возвращает новый ресурс сокета в случае успешного завершения или FALSE в случае ошибки. Код ошибки может быть получен при помощи функции socket_last_error(). Этот код может быть передан функции socket_strerror() для получения текстового описания ошибки.

Примечания

Замечание:

Если вы хотите создать сокет, который будет прослушивать только определённый интерфейс, вам нужно использовать функции socket_create(), socket_bind() и socket_listen().

Смотрите также

  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_create_pair() - Создаёт пару неразличимых сокетов и сохраняет их в массиве
  • socket_bind() - Привязывает имя к сокету
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Создаёт пару неразличимых сокетов и сохраняет их в массиве

  • « socket_create_listen
  • socket_create »
  • PHP Manual
  • Функции сокета
  • Создаёт пару неразличимых сокетов и сохраняет их в массиве

socket_create_pair

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_create_pair — Создаёт пару неразличимых сокетов и сохраняет их в массиве

Описание

socket_create_pair ( int $domain , int $type , int $protocol , array &$fd ) : bool

socket_create_pair() создаёт два соединённых и неразличимых сокета, и сохраняет их в массиве fd. Эта функция обычно используется IPC (межпроцессном взаимодействии).

Список параметров

domain

Параметр domain определяет семейство протоколов, которое будет использоваться сокетом. Смотрите их полный список в описании функции socket_create().

type

Параметр type указывает тип коммуникации, которая будет использоваться сокетом. Смотрите их полный список в описании функции socket_create().

protocol

Параметр protocol устанавливает определённый протокол в указанном семействе протоколов domain, который будет использоваться при связи с полученными сокетами. Соответствующее значение может быть получено по имени при помощи функции getprotobyname(). Если требуемый протокол TCP или UDP, то соответствующие константы SOL_TCP и SOL_UDP также могут быть использованы.

Смотрите полный список поддерживаемых протоколов в описании функции socket_create().

fd

Ссылка на массив, в который будут вставлены два ресурса сокетов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Эта функция доступна на Windows-платформах.

Примеры

Пример #1 Пример использования socket_create_pair()

<?php
$sockets = array();

/* На Windows нам нужно использовать AF_INET */
$domain = (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN' ? AF_INET : AF_UNIX);

/* Создаём пару сокетов */
if (socket_create_pair($domain, SOCK_STREAM, 0, $sockets) === false) {
    echo "Не получилось выполнить socket_create_pair. Причина: ".socket_strerror(socket_last_error());
}
/* Отправляем и получаем данные */
if (socket_write($sockets[0], "ABCdef123\n", strlen("ABCdef123\n")) === false) {
    echo "Не получилось выполнить socket_write(). Причина: ".socket_strerror(socket_last_error($sockets[0]));
}
if (($data = socket_read($sockets[1], strlen("ABCdef123\n"), PHP_BINARY_READ)) === false) {
    echo "Не получилось выполнить socket_read(). Причина: ".socket_strerror(socket_last_error($sockets[1]));
}
var_dump($data);

/* Закрываем сокеты */
socket_close($sockets[0]);
socket_close($sockets[1]);
?>

Пример #2 Пример использования socket_create_pair() в IPC

<?php
$ary = array();
$strone = 'Сообщение от родительского процесса.';
$strtwo = 'Сообщение от дочернего процесса.';

if (socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $ary) === false) {
    echo "Не получилось выполнить socket_create_pair(). Причина: ".socket_strerror(socket_last_error());
}
$pid = pcntl_fork();
if ($pid == -1) {
    echo 'Не могу создать новый процесс.';
} elseif ($pid) {
    /*родительский процесс*/
    socket_close($ary[0]);
    if (socket_write($ary[1], $strone, strlen($strone)) === false) {
        echo "Не получилось выполнить socket_write(). Причина: ".socket_strerror(socket_last_error($ary[1]));
    }
    if (socket_read($ary[1], strlen($strtwo), PHP_BINARY_READ) == $strtwo) {
        echo "Получено $strtwo\n";
    }
    socket_close($ary[1]);
} else {
    /*дочерний процесс*/
    socket_close($ary[1]);
    if (socket_write($ary[0], $strtwo, strlen($strtwo)) === false) {
        echo "Не получилось выполнить socket_write(). Причина: ".socket_strerror(socket_last_error($ary[0]));
    }
    if (socket_read($ary[0], strlen($strone), PHP_BINARY_READ) == $strone) {
        echo "Получено $strone\n";
    }
    socket_close($ary[0]);
}
?>

Смотрите также

  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_create_listen() - Открывает сокет на указанном порту для принятия соединений
  • socket_bind() - Привязывает имя к сокету
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Создаёт сокет (конечную точку для обмена информацией)

  • « socket_create_pair
  • socket_export_stream »
  • PHP Manual
  • Функции сокета
  • Создаёт сокет (конечную точку для обмена информацией)

socket_create

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_create — Создаёт сокет (конечную точку для обмена информацией)

Описание

socket_create ( int $domain , int $type , int $protocol ) : resource

Создаёт и возвращает ресурс сокета, также называемый как конечная точка обмена информацией. Типичное сетевое соединение состоит из двух сокетов, один из которых выполняет роль клиента, а другой выполняет роль сервера.

Список параметров

domain

Параметр domain определяет семейство протоколов, используемых сокетами.

Доступные семейства адресов/протоколов
Семейство | Описание
AF_INET | Internet-протоколы IPv4. TCP и UDP - это стандартные протоколы этого семейства протоколов.
AF_INET6 | Internet-протоколы IPv6. TCP и UDP - это стандартные протоколы этого семейства протоколов.
AF_UNIX | Семейство протоколов для локального обмена данными. Высокая эффективность и низкие накладные расходы делают его отличным видом IPC (межпроцессного взаимодействия).
type

Параметр type определяет тип обмена данными, который будет использоваться сокетом.

Доступные типы сокетов
Тип | Описание
SOCK_STREAM | Обеспечивает последовательные, надёжные, полнодуплексные, байтовые потоки с установлением соединения. Может поддерживаться механизм передачи внеполосных (out-of-band) данных. Протокол TCP основан на этом типе сокетов.
SOCK_DGRAM | Поддерживает датаграммы (ненадёжные сообщения без установления соединения фиксированной максимальной длины). Протокол UDP основан на этом типе сокетов.
SOCK_SEQPACKET | Предоставляет последовательную, надежную, двунаправленную, базирующуюся на соединениях передачу датаграмм с фиксированной максимальной длиной. Потребитель должен читать весь пакет целиком при каждой итерации чтения.
SOCK_RAW | Предоставляет доступ по неподготовленному (raw) сетевому протоколу. Это специальный тип сокета может быть использован для ручного создания любого типа протокола. Стандартное использование этого типа сокетов - выполнение запросов ICMP (таких как ping).
SOCK_RDM | Предоставляет надежный уровень датаграм, не гарантирующий сохранение порядка. Скорее всего, это семейство протоколов не реализовано в вашей операционной системе.
protocol

Параметр protocol указывает конкретный протокол в заданном семействе протоколов domain, который будет использоваться в обмене данными с созданным сокетом. Соответствующее значение может быть получено по имени при помощи функции getprotobyname(). Если желаемый протокол TCP или UDP, то соответствующие константы SOL_TCP и SOL_UDP также могут быть использованы.

Стандартные протоколы
Название | Описание
icmp | ICMP (Internet Control Message Protocol, протокол межсетевых управляющих сообщений) используется преимущественно шлюзами и хостами для сообщения об ошибках в передаче датаграмм. Команда "ping" (присутствующая в большинстве современных операционных систем) - это пример использования ICMP-протокола.
udp | UDP (User Datagram Protocol, протокол пользовательских датаграмм) - это протокол без установления соединения, ненадёжный, протокол с фиксированной длиной записей. Из-за этих аспектов, UDP требует минимального количества служебной информации.
tcp | TCP (The Transmission Control Protocol, протокол управления передачей) - это надёжный, базирующийся на соединениях, потокоориентированный, полнодуплексный протокол. TCP гарантирует, что все пакеты данных будут получены в том порядке, в котором они были отправлены. Если какой-нибудь пакет каким-либо образом был утерян во время передачи данных, TCP будет автоматически передавать пакет повторно до тех пор, пока хост назначения не подтвердит этот пакет. В целях надежности и производительности, реализация протокола TCP сама выбирает подходящие границы октета нижележащего уровня обмена датаграммами. Таким образом, приложения, использующие TCP, должны предоставлять возможность частичной передачи записей.

Возвращаемые значения

Функция socket_create() возвращает ресурс сокета в случае успеха, или FALSE в случае ошибки. Код ошибки может быть получен при помощи вызова функции socket_last_error(). Эта ошибка может быть передана функции socket_strerror() для получения текстового описания ошибки.

Ошибки

Если указан неверный параметр domain или type, функция socket_create() будет использовать по умолчанию значение AF_INET и SOCK_STREAM соответственно, и дополнительно к этому выдаст сообщение E_WARNING.

Смотрите также

  • socket_accept() - Принимает соединение на сокете
  • socket_bind() - Привязывает имя к сокету
  • socket_connect() - Начинает соединение с сокетом
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Экспортировать ресурс расширения сокета в поток, инкапсулирующий сокет

  • « socket_create
  • socket_get_option »
  • PHP Manual
  • Функции сокета
  • Экспортировать ресурс расширения сокета в поток, инкапсулирующий сокет

socket_export_stream

(PHP 7 >= 7.0.7)

socket_export_stream — Экспортировать ресурс расширения сокета в поток, инкапсулирующий сокет

Описание

socket_export_stream ( resource $socket ) : resource

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

socket

Возвращаемые значения

Возвращает ресурс или FALSE в случае возникновения ошибки.


Получает опции потока для сокета

  • « socket_export_stream
  • socket_getopt »
  • PHP Manual
  • Функции сокета
  • Получает опции потока для сокета

socket_get_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

socket_get_option — Получает опции потока для сокета

Описание

socket_get_option ( resource $socket , int $level , int $optname ) : mixed

Функция socket_get_option() извлекает значение для опции, указанной параметром optname для заданного socket.

Список параметров

socket

Действительный ресурс сокета, созданный с помощью socket_create() или socket_accept().

level

Параметр level указывает уровень протокола, на котором находится опция. Например, для получения опций на уровне сокета, должен использовать параметр level, равный SOL_SOCKET. Другие уровни, такие как TCP, можно использовать, указав номер протокола этого уровня. Номера протоколов можно найти с помощью функции getprotobyname().

optname
Доступные опции сокета
Опция | Описание | Тип
SO_DEBUG | Сообщает, записывается ли отладочная информация. | int
SO_BROADCAST | Сообщает, поддерживается ли передача широковещательных сообщений. | int
SO_REUSEADDR | Сообщает, могут ли локальные адреса использоваться повторно. | int
SO_REUSEPORT | Сообщает, могут ли локальные порты использоваться повторно. | int
SO_KEEPALIVE | Сообщает, поддерживаются ли соединения с периодической передачей сообщений. Если подключенный сокет не отвечает на эти сообщения, подключение прерывается и процессы записи в этот сокет уведомляются сигналом SIGPIPE. | int
SO_LINGER

Сообщает, будет ли socket останавливаться на socket_close(), если данные присутствуют. По умолчанию, когда сокет закрыт, он попытается отправить все неотправленные данные. В случае сокета, ориентированного на подключение, socket_close() будет ожидать, пока его одноранговый узел подтвердит данные.

Если l_onoff отличен от нуля, а l_linger равно нулю, все неотправленные данные будут отброшены и RST (сброс) отправлен одноранговому узлу в случае сокета, ориентированного на подключение.

С другой стороны, если l_onoff и l_linger отличны от нуля, socket_close() будет блокироваться до тех пор, пока все данные не будут отправлены или если время, указанное в l_linger, не истечет. Если сокет не блокируется, socket_close() потерпит неудачу и вернет ошибку.

array. Массив будет содержать два ключа: l_onoff и l_linger.
SO_OOBINLINE | Сообщает, выходит ли socket из встроенных данных. | int
SO_SNDBUF | Сообщает размер отправленного буфера. | int
SO_RCVBUF | Сообщает о размере полученного буфера. | int
SO_ERROR | Сообщает информацию о статусе ошибки и очищает ее. | int (не может быть установлен socket_set_option())
SO_TYPE | Сообщает о типе socket (например, SOCK_STREAM). | int (не может быть установлен socket_set_option())
SO_DONTROUTE | Сообщает, что исходящие сообщения обходят стандартные средства маршрутизации. | int
SO_RCVLOWAT | Сообщает минимальное количество байтов для обработки операций ввода socket. | int
SO_RCVTIMEO | Сообщает значение тайм-аута для операций ввода. | array. Массив будет содержать два ключа: sec, который является частью секунд для значения тайм-аута и usec, который является микросекундной частью значения тайм-аута.
SO_SNDTIMEO | Сообщает значение тайм-аута, указывающее количество времени, которое блокирует функция вывода, поскольку управление потоком предотвращает отправку данных. | array. Массив будет содержать два ключа: sec, который является частью секунд для значения тайм-аута и usec, который является микросекундной частью значения тайм-аута.
SO_SNDLOWAT | Сообщает минимальное количество байтов для обработки операцией вывода socket. | int
TCP_NODELAY | Сообщает, отключен ли алгоритм Nagle TCP. | int
MCAST_JOIN_GROUP | Присоединяется к многоадресной группе. (добавлено в PHP 5.4) | массив (array) с ключами "group", указав строку (string) с многоадресным адресом IPv4 или IPv6 и "interface", указав либо номер интерфейса (тип int), либо строку (string) с именем интерфейса, например "eth0". 0 можно указать, чтобы сообщить, что интерфейс должен быть выбран с использованием правил маршрутизации. (может использоваться только в socket_set_option())
MCAST_LEAVE_GROUP | Оставляет многоадресную группу. (добавлено в PHP 5.4) | массив (array). Смотрите MCAST_JOIN_GROUP для получения дополнительной информации. (может использоваться только в socket_set_option())
MCAST_BLOCK_SOURCE | Блокирует пакеты, поступающие из определенного источника в определенную группу многоадресной передачи, которые должны быть предварительно соединены. (добавлено в PHP 5.4) | массив (array) с такими же ключами, как у MCAST_JOIN_GROUP, плюс один дополнительный ключ, source, который представляет строку (string), указывающую адрес IPv4 или IPv6 источника, который должен быть заблокирован. (может использоваться только в socket_set_option())
MCAST_UNBLOCK_SOURCE | Разблокирует (начинает прием снова) пакеты, поступающие с определенного исходного адреса в определенную группу многоадресной передачи, которая должна предварительно соединена. (добавлено в PHP 5.4) | массив (array) с таким же форматом, как у MCAST_BLOCK_SOURCE. (может использоваться только в socket_set_option())
MCAST_JOIN_SOURCE_GROUP | Получать пакеты, предназначенные для конкретной группы многоадресной передачи, исходный адрес которого совпадает определенному значению. (добавлено в PHP 5.4) | массив (array) с тем же самым форматом, что у MCAST_BLOCK_SOURCE. (может использоваться только в socket_set_option())
MCAST_LEAVE_SOURCE_GROUP | Остановить прием пакетов, предназначенных для конкретной группы многоадресной передачи, исходный адрес которого совпадает определенному значению. (добавлено в PHP 5.4) | массив (array) с тем же самым форматом, что у MCAST_BLOCK_SOURCE. (может использоваться только в socket_set_option())
IP_MULTICAST_IF | Исходящий интерфейс для многоадресных пакетов IPv4. (добавлено в PHP 5.4) | Любое целое число (int), указывающее номер интерфейса или строку (string) с именем интерфейса, например, eth0. Значение 0 может использоваться для указания, что таблица маршрутизации используется для выбора интерфейса. Функция socket_get_option() возвращает индекс интерфейса. Обратите внимание, что в отличие от C API, эта опция НЕ принимает IP-адрес. Это устраняет разницу в интерфейсе между IP_MULTICAST_IF и IPV6_MULTICAST_IF.
IPV6_MULTICAST_IF | Исходящий интерфейс для многоадресных пакетов IPv6. (добавлено в PHP 5.4) | То же, что и IP_MULTICAST_IF.
IP_MULTICAST_LOOP | Политика петли групповой передачи для пакетов IPv4, которая определяет, могут ли пакеты многоадресной передачи, отправленные этим сокетом, также достигать приемники на том же хосте, которые присоединились к той же группе многоадресной передачи на исходящем интерфейсе, который используется этим сокетом. Это случай по умолчанию. (добавлено в PHP 5.4) | целое число (int) (либо 0, либо 1). Для socket_set_option() любое значение будет принято и преобразовано в тип boolean, согласно обычным правилам PHP.
IPV6_MULTICAST_LOOP | Аналогично IP_MULTICAST_LOOP, но для IPv6. (добавлено в PHP 5.4) | int. See IP_MULTICAST_LOOP.
IP_MULTICAST_TTL | Время ожидания исходящих пакетов IPv4 для многоадресной передачи. Это должно быть значение между 0 (не оставлять интерфейс) и 255. Значение по умолчанию - 1 (достигается только локальная сеть). (добавлено в PHP 5.4) | целое число (int) между 0 и 255.
IPV6_MULTICAST_HOPS | Аналогично IP_MULTICAST_TTL, но для пакетов IPv6. Значение -1 также принимается, что означает использование маршрута по умолчанию. (добавлено в PHP 5.4) | целое число (int) между 0 и 255.

Возвращаемые значения

Возвращает значение заданной опции или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования socket_get_option()

<?php
$socket = socket_create_listen(1223);

$linger = array('l_linger' => 1, 'l_onoff' => 1);
socket_set_option($socket, SOL_SOCKET, SO_LINGER, $linger);

var_dump(socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR));
?>

Смотрите также

  • socket_create_listen() - Открывает сокет на указанном порту для принятия соединений
  • socket_set_option() - Устанавливает опции для сокета


Псевдоним socket_get_option

  • « socket_get_option
  • socket_getpeername »
  • PHP Manual
  • Функции сокета
  • Псевдоним socket_get_option

socket_getopt

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_getopt — Псевдоним socket_get_option()

Описание

Эта функция является псевдонимом: socket_get_option().


Запрашивает удалённую сторону указанного сокета, в результате может быть возвращен хост/порт или путь в файловой системе Unix, в зависимости от типа сокета

  • « socket_getopt
  • socket_getsockname »
  • PHP Manual
  • Функции сокета
  • Запрашивает удалённую сторону указанного сокета, в результате может быть возвращен хост/порт или путь в файловой системе Unix, в зависимости от типа сокета

socket_getpeername

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_getpeername — Запрашивает удалённую сторону указанного сокета, в результате может быть возвращен хост/порт или путь в файловой системе Unix, в зависимости от типа сокета

Описание

socket_getpeername ( resource $socket , string &$address [, int &$port ] ) : bool

Запрашивает удалённую сторону указанного сокета, в результате может быть возвращен хост/порт или путь в файловой системе Unix, в зависимости от типа сокета.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create() или socket_accept().

address

Если заданный сокет имеет тип AF_INET или AF_INET6, socket_getpeername() вернет удаленный IP-адрес в соответствующем формате ( например, 127.0.0.1 или fe80::1) в параметре address и, если необязательный параметр port присутствует, также связанный порт.

Если заданный сокет имеет тип AF_UNIX, socket_getpeername() вернет путь в файловой системе Unix (т.е. /var/run/daemon.sock) в параметр address.

port

Если указан, то будет содержать порт, связанный с адресом address.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. socket_getpeername() также может вернуть FALSE, если сокет имет тип отличный от AF_INET, AF_INET6 или AF_UNIX, в этом случае код последней ошибки сокета НЕ будет обновлен.

Примечания

Замечание:

socket_getpeername() не должна быть использована с сокетами AF_UNIX, созданными при помощи функции socket_accept(). Только сокеты, созданные при помощи socket_connect() или серверный сокет, к которому применён вызов функции socket_bind(), будут возвращать осмысленные значения.

Замечание:

Для того, чтобы socket_getpeername() вернула осмысленное значение, сокет, к которому она применяется, должен понимать концепцию "равных отношений" (peer).

Смотрите также

  • socket_getsockname() - Запрашивает локальную сторону указанного сокета, в результате можно получить хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Запрашивает локальную сторону указанного сокета, в результате можно получить хост/порт или путь в файловой системе Unix, в зависимости от типа сокета

  • « socket_getpeername
  • socket_import_stream »
  • PHP Manual
  • Функции сокета
  • Запрашивает локальную сторону указанного сокета, в результате можно получить хост/порт или путь в файловой системе Unix, в зависимости от типа сокета

socket_getsockname

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_getsockname — Запрашивает локальную сторону указанного сокета, в результате можно получить хост/порт или путь в файловой системе Unix, в зависимости от типа сокета

Описание

socket_getsockname ( resource $socket , string &$addr [, int &$port ] ) : bool

Замечание: Функция socket_getsockname() не должна использоваться с сокетами AF_UNIX, созданными при помощи функции socket_connect(). Только сокеты, созданные функцией socket_accept() и первичные серверные сокеты после вызова socket_bind(), позволяют получить осмысленный ответ при вызове этой функции.

Список параметров

socket

Действительный ресурс сокета, созданный функцией socket_create() или socket_accept().

addr

Если заданный сокет имеет тип AF_INET или AF_INET6, socket_getpeername() вернет локальный IP-адрес в соответствующем формате ( например, 127.0.0.1 или fe80::1) в параметре address и, если необязательный параметр port присутствует, также связанный порт.

Если заданный сокет имеет тип AF_UNIX, socket_getpeername() вернет путь в файловой системе Unix (т.е. /var/run/daemon.sock) в параметр address.

port

Если указан, то будет содержать соответствующий порт.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. socket_getsockname() может также возвращать FALSE, если тип сокета не является одним из AF_INET, AF_INET6, или AF_UNIX, в этом случае код последней ошибки сокета не обновляется.

Смотрите также

  • socket_getpeername() - Запрашивает удалённую сторону указанного сокета, в результате может быть возвращен хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Импортировать поток

  • « socket_getsockname
  • socket_last_error »
  • PHP Manual
  • Функции сокета
  • Импортировать поток

socket_import_stream

(PHP 5 >= 5.4.0, PHP 7)

socket_import_stream — Импортировать поток

Описание

socket_import_stream ( resource $stream ) : resource

Импортирует поток, который инкапсулирует сокет в ресурс расширения сокета.

Список параметров

stream

Ресурс поток для импорта.

Возвращаемые значения

Возвращает FALSE или NULL в случае возникновения ошибки.

Примеры

Пример #1 Пример использования socket_import_stream()

<?php
$stream = stream_socket_server("udp://0.0.0.0:58380", $errno, $errstr, STREAM_SERVER_BIND);
$sock   = socket_import_stream($stream);
?>

Смотрите также

  • stream_socket_server() - Создаёт интернет-сокет или доменный сокет Unix


Возвращает последнюю ошибку на сокете

  • « socket_import_stream
  • socket_listen »
  • PHP Manual
  • Функции сокета
  • Возвращает последнюю ошибку на сокете

socket_last_error

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_last_error — Возвращает последнюю ошибку на сокете

Описание

socket_last_error ([ resource $socket ] ) : int

Если ресурс сокета передан этой функции, то возвращается последняя ошибка, которая произошла на этом конкретном сокете. Если ресурс сокета не указан, возвращается код ошибки последней неудавшейся функции сокетов. Последнее особенно полезно для таких функций, как socket_create(), которая не возвращает сокет в случае неудачи и socket_select(), которая может закончиться неудачно по причинам, не связанным непосредственно с каким-либо конкретным сокетом. Код ошибки подходит для передачи функции socket_strerror(), которая возвращает строку, описывающую указанный код ошибки.

Если ошибок нет или они были очищены функцией socket_clear_error(), функция вернет 0.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create().

Возвращаемые значения

Эта функция возвращает код ошибки сокета.

Примеры

Пример #1 Пример использования socket_last_error()

<?php
$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if ($socket === false) {
    $errorcode = socket_last_error();
    $errormsg = socket_strerror($errorcode);

    die("Не могу создать сокет: [$errorcode] $errormsg");
}
?>

Примечания

Замечание:

socket_last_error() не очищает код ошибки, используйте socket_clear_error() для этой цели.


Прослушивает входящие соединения на сокете

  • « socket_last_error
  • socket_read »
  • PHP Manual
  • Функции сокета
  • Прослушивает входящие соединения на сокете

socket_listen

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_listen — Прослушивает входящие соединения на сокете

Описание

socket_listen ( resource $socket [, int $backlog = 0 ] ) : bool

После того, как сокет socket был создан при помощи функции socket_create() и привязан к имени при помощи функции socket_bind(), ему можно указать слушать входящие соединения на сокете socket.

Функция socket_listen() применима только к сокетам типа SOCK_STREAM или SOCK_SEQPACKET.

Список параметров

socket

Действительный ресурс сокета, созданный при помощи функций socket_create() или socket_addrinfo_bind().

backlog

Максимум backlog входящих соединений будет помещено в очередь на обработку. Если запрос на соединение придет, когда очередь заполнена, клиент может получить ошибку ECONNREFUSED, или, если базовый протокол позволяет повторную передачу, запрос будет повторен.

Замечание:

Максимальное значение параметра backlog очень сильно зависит используемой платформы. В Linux очень большое значение будет молча обрезано до SOMAXCONN. В win32, если передано SOMAXCONN, базовый провайдер сервиса, ответственного за сокет, установит этот параметр максимальным разумным значением. Нет стандартного способа узнать актуальное значение "backlog" для этой платформы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Код ошибки может быть получен при помощи функции socket_last_error(). Этот код может быть передан функции socket_strerror() для получения текстового описания ошибки.

Смотрите также

  • socket_accept() - Принимает соединение на сокете
  • socket_bind() - Привязывает имя к сокету
  • socket_connect() - Начинает соединение с сокетом
  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета
  • socket_addrinfo_bind() - Создать и привязать к сокету из указанного addrinfo


Читает строку максимальную длину байт из сокета

  • « socket_listen
  • socket_recv »
  • PHP Manual
  • Функции сокета
  • Читает строку максимальную длину байт из сокета

socket_read

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_read — Читает строку максимальную длину байт из сокета

Описание

socket_read ( resource $socket , int $length [, int $type = PHP_BINARY_READ ] ) : string

Функция socket_read() читает данные из ресурса сокета socket, созданного при помощи функций socket_create() или socket_accept().

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функций socket_create() или socket_accept().

length

Максимальное количество байт для чтения определено параметром length. Как вариант вы можете использовать \r, \n, или \0 для окончания чтения (в зависимости от параметра type, см ниже).

type

Необязательный параметр type - это именованная константа:

  • PHP_BINARY_READ (По умолчанию) - используется системная функция recv(). Безопасно для чтения бинарных данных.
  • PHP_NORMAL_READ - чтение останавливается на \n или \r.

Возвращаемые значения

socket_read() возвращает данные в виде строки в случае успеха, или FALSE в случае ошибки (включая случай, когда удалённый хост закрыл соединение). Код ошибки может быть получен при помощи функции socket_last_error(). Этот код может быть передан функции socket_strerror() для получения текстового описания ошибки.

Замечание:

socket_read() возвращает строку нулевой длины (""), когда больше нет данных для чтения.

Смотрите также

  • socket_accept() - Принимает соединение на сокете
  • socket_bind() - Привязывает имя к сокету
  • socket_connect() - Начинает соединение с сокетом
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета
  • socket_write() - Запись в сокет


Получает данные из подсоединённого сокета

  • « socket_read
  • socket_recvfrom »
  • PHP Manual
  • Функции сокета
  • Получает данные из подсоединённого сокета

socket_recv

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_recv — Получает данные из подсоединённого сокета

Описание

socket_recv ( resource $socket , string &$buf , int $len , int $flags ) : int

Функция socket_recv() получает len байт данных в буфер buf из сокета socket. функция socket_recv() может быть использована для получения данных из подсоединённых сокетов. Дополнительно к этому, один или более флагов могут быть указаны для изменения поведения функции.

Параметр buf передаётся по ссылке, так что он должен быть указан в виде переменной в списке аргументов. Данные, прочитанные из сокета socket функцией socket_recv(), будут возвращены в параметре buf.

Список параметров

socket

Параметр socket должен быть ресурсом сокета, предварительно созданным при помощи функции socket_create().

buf

Полученные данные будут переданы в переменную, указанную в параметре buf. Если происходит ошибка, если соединение сброшено, или если данные недоступны, параметр buf будет установлен в NULL.

len

До len байт будет получено с удалённого хоста.

flags

Значение параметра flags может быть любой комбинацией следующих флагов, соединённых при помощи двоичного оператора OR (|).

Possible values for flags
Флаг | Описание
MSG_OOB | Обрабатывать внеполосные (out-of-band) данные.
MSG_PEEK | Получать данные с начала очереди получения без удаления их из очереди.
MSG_WAITALL | Функция будет блокировать выполнение скрипта до тех пор, пока как минимум len байт не будет получено. Однако, в том случае, если получен сигнал или удалённый хост отсоединился, функция может вернуть меньше данных.
MSG_DONTWAIT | Если этот флаг установлен, то функция вернётся даже в том случае, если бы она обычно блокировала выполнение скрипта.

Возвращаемые значения

socket_recv() возвращает количество полученных байтов или FALSE в случае ошибки. Фактический код ошибки может быть получен при помощи функции socket_last_error(). Этот код ошибки может быть передан функции socket_strerror() для получения текстового описания ошибки.

Примеры

Пример #1 Пример использования socket_recv()

Этот пример - просто вариант первого примера из статьи Примеры с использованием socket_recv().

<?php
error_reporting(E_ALL);

echo "<h2>Соединение TCP/IP</h2>\n";

/* Получить порт сервиса WWW. */
$service_port = getservbyname('www', 'tcp');

/* Получить IP-адрес целевого хоста. */
$address = gethostbyname('www.example.com');

/* Создать сокет TCP/IP. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "Не удалось выполнить функцию socket_create(): причина: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "OK.\n";
}

echo "Попытка соединиться с хостом '$address' по порту '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
    echo "Не получилось выполнить функцию socket_connect().\nПричина: ($result) " . socket_strerror(socket_last_error($socket)) . "\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 "Отправка запроса HTTP HEAD...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Получение ответа:\n\n";
$buf = 'Это мой буфер.';
if (false !== ($bytes = socket_recv($socket, $buf, 2048, MSG_WAITALL))) {
    echo "Прочитано $bytes байта из функции socket_recv(). Закрываем сокет...";
} else {
    echo "Не получилось выполнить socket_recv(); причина: " . socket_strerror(socket_last_error($socket)) . "\n";
}
socket_close($socket);

echo $buf . "\n";
echo "OK.\n\n";
?>

Пример выше выведет что-то вроде следующего:

<h2>Соединение TCP/IP</h2>
OK.
Попытка соединиться с хостом '208.77.188.166' on port '80'...OK.
Отправка запроса HTTP HEAD...OK.
Получение ответа:

Прочитано 123 байта из функции socket_recv(). Закрываем сокет...HTTP/1.1 200 OK
Date: Mon, 14 Sep 2009 08:56:36 GMT
Server: Apache/2.2.3 (Red Hat)
Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT
ETag: "b80f4-1b6-80bfd280"
Accept-Ranges: bytes
Content-Length: 438
Connection: close
Content-Type: text/html; CHARSET=Windows-1251

OK.


Получает данные из сокета, независимо от того, подсоединён он или нет

  • « socket_recv
  • socket_recvmsg »
  • PHP Manual
  • Функции сокета
  • Получает данные из сокета, независимо от того, подсоединён он или нет

socket_recvfrom

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_recvfrom — Получает данные из сокета, независимо от того, подсоединён он или нет

Описание

socket_recvfrom ( resource $socket , string &$buf , int $len , int $flags , string &$name [, int &$port ] ) : int

Функция socket_recvfrom() получает len байт данных в buf из адреса name на порту port (если сокет не типа AF_UNIX) используя сокет socket. Функция socket_recvfrom() может быть использована для извлечения данных как из подключенных, так и из не подключенных сокетов. Дополнительно, один или более флагов могут быть указаны для того, чтобы изменить поведение функции.

Параметры name и port должны быть переданы по ссылке. Если сокет не ориентирован на соединение, name должен быть установлен как адрес интернет-протокола удаленного хоста, либо как путь к сокету UNIX. Если сокет не ориентирован на соединение, name должен быть NULL. Дополнительно, port должен содержать порт удаленного хоста для не подключенных сокетов типа AF_INET и AF_INET6.

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Список параметров

socket

Параметр socket должен быть ресурсом сокета, предварительно созданным при помощи функции socket_create().

buf

Полученные данные будут переданы в переменную, указанную при помощи параметра buf.

len

С удалённого хоста будет получено до len байт.

flags

Значение параметра flags может быть любой комбинацией следующих флагов, объединённых при помощи двоичного оператора OR (|) operator.

Возможные значения для параметра flags
Флаг | Описание
MSG_OOB | Обрабатывать внеполосные (out-of-band) данные.
MSG_PEEK | Получать данные из начала очереди, не удаляя их.
MSG_WAITALL | Блокировать выполнение скрипта до тех пор, пока как минимум len не будет получено. Однако, если будет получен сигнал или удалённый хост отсоединится, функция может возвратить меньше данных.
MSG_DONTWAIT | Если этот флаг установлен, функция возвратится даже если обычно она будет блокировать выполнение скрипта.
name

Если сокет типа AF_UNIX, name - это путь к файлу. В ином случае, для неподсоединённых сокетов, параметр name - это IP-адрес, удалённого хоста, или NULL, если сокет ориентирован по соединение.

port

Этот аргумент применим только к сокетам AF_INET и AF_INET6, и указывает удалённый порт, из которого будут получены данные. Если сокет ориентирован по соединение, port будет NULL.

Возвращаемые значения

socket_recvfrom() возвращает количество полученных байт или FALSE, если произошла ошибка. Фактический код ошибки может быть получен при помощи вызова функции socket_last_error(). Этот код ошибки может быть передан функции socket_strerror() для получения текстового описания ошибки.

Примеры

Пример #1 Пример использования socket_recvfrom()

<?php
error_reporting(E_ALL | E_STRICT);

$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '127.0.0.1', 1223);

$from = '';
$port = 0;
socket_recvfrom($socket, $buf, 12, 0, $from, $port);

echo "Получено $buf с удалённого адреса $from и удалённого порта $port" . PHP_EOL;
?>

Этот пример откроет UDP-сокет на порту 1223 по адресу 127.0.0.1 и выведет максимум 12 символов, полученных с удалённого хоста.

Смотрите также

  • socket_recv() - Получает данные из подсоединённого сокета
  • socket_send() - Отправляет данные в подсоединённый сокет
  • socket_sendto() - Отправляет сообщение в сокет, независимо от того, подсоединён он или нет
  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)


Прочитать сообщение

  • « socket_recvfrom
  • socket_select »
  • PHP Manual
  • Функции сокета
  • Прочитать сообщение

socket_recvmsg

(PHP 5 >= 5.5.0, PHP 7)

socket_recvmsg — Прочитать сообщение

Описание

socket_recvmsg ( resource $socket , array &$message [, int $flags = 0 ] ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

socket

message

flags

Возвращаемые значения

Смотрите также

  • socket_sendmsg() - Отправить сообщение
  • socket_cmsg_space() - Вычислить размер буфера сообщения


Запускает системный вызов select() для заданных массивов сокетов с указанным тайм-аутом

  • « socket_recvmsg
  • socket_send »
  • PHP Manual
  • Функции сокета
  • Запускает системный вызов select() для заданных массивов сокетов с указанным тайм-аутом

socket_select

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_select — Запускает системный вызов select() для заданных массивов сокетов с указанным тайм-аутом

Описание

socket_select ( array &$read , array &$write , array &$except , int $tv_sec [, int $tv_usec = 0 ] ) : int

socket_select() принимает массивы сокетов и ждет их изменения статуса. Те, кто знаком с сокетами BSD, обнаружат, что массивы с ресурсами сокетов на самом деле являются так называемыми наборами дескрипторов файлов. Наблюдаются три независимых массива ресурсов сокетов.

Список параметров

read

Сокеты, перечисленные в массиве read будут наблюдаться для просмотра, есть ли доступные символы для чтения ( точнее, чтобы видеть, не будет ли чтение блокироваться, в частности, ресурс сокета уже достиг конца файла, и в этом случае socket_read() вернет строку с нулевой длиной).

write

Сокеты, перечисленные в массиве write будут наблюдаться для просмотра, не будет ли запись блокироваться.

except

Сокеты, перечисленные в массиве except будут наблюдаться для исключений.

tv_sec

tv_sec и tv_usec вместе образуют параметр timeout. Параметр timeout - максимальный промежуток времени до возврата socket_select(). tv_sec может быть нулём, заставляя socket_select() к немедленному возврату. Это полезно для опроса. Если tv_sec равен NULL (нет тайм-аута), socket_select() может блокироваться бесконечно.

tv_usec

Внимание

При завершении массивы изменяются для обозначения, какой ресурс сокета на самом деле изменил статус.

Не требуется передавать каждый массив в socket_select(). Вы можете пропустить его и использовать пустой массив или NULL вместо этого. Также не забывайте, что эти массивы передаются по ссылке и будут изменены после завершения socket_select().

Замечание:

Из-за ограничения текущего движка Zend невозможно передать модификатор константы, такой как NULL, непосредственно в качестве параметра в функцию, которая ожидает, что этот параметр будет передан по ссылке. Вместо этого используйте временную переменную или выражение, где левая сторона является временной переменной:

Пример #1 Использование NULL в socket_select()

<?php
$e = NULL;
socket_select($r, $w, $e, 0);
?>

Возвращаемые значения

В случае успешного выполнения socket_select() возвращает количество ресурсов сокета, содержащихся в измененных массивах, которое может быть равно нулю, если тайм-аут истечет до того, как произойдет что-то интересное. В случае возникновения ошибки возвращается FALSE. Код ошибки может быть получен с помощью socket_last_error().

Замечание:

Обязательно используйте оператор === при проверке на ошибку. Поскольку socket_select() может возвращать 0, сравнение с == будет оцениваться как TRUE:

Пример #2 Анализ результата socket_select()

<?php
$e = NULL;
if (false === socket_select($r, $w, $e, 0)) {
    echo "Неудачный вызов socket_select(), причина: " .
        socket_strerror(socket_last_error()) . "\n";
}
?>

Примеры

Пример #3 Пример использования socket_select()

<?php
/* Подготовить массив сокетов для чтения */
$read   = array($socket1, $socket2);
$write  = NULL;
$except = NULL;
$num_changed_sockets = socket_select($read, $write, $except, 0);

if ($num_changed_sockets === false) {
    /* Обработка ошибок */
} else if ($num_changed_sockets > 0) {
    /* По крайней мере, в одном из сокетов произошло что-то интересное */
}
?>

Примечания

Замечание:

Имейте в виду, что некоторые реализации сокетов необходимо обрабатывать очень осторожно. Несколько основных правил:

  • Вы всегда должны попытаться использовать socket_select() без тайм-аута. Ваша программа ничего не должна делать, если нет доступных данных. Код, зависящий от тайм-аутов, обычно не очень переносим и труден для отладки.
  • Ресурс сокета не должен добавляться к любому из массивов, если вы не собираетесь проверять результат после вызова socket_select(). После возврата socket_select() все ресурсы сокета во всех массивах должны быть проверены. Любой ресурс сокета, доступный для записи или чтения, должен использоваться для записи или чтения.
  • Если вы читаете или записываете из сокета, возвращаемого в массивах, имейте в виду, что он необязательно сможет прочитать или записать полностью запрашиваемые вами данные. Будьте готовы прочитать или записать только один байт.
  • Обычно для большинства реализаций сокетов единственное исключение, пойманное с помощью массива except - это данные без привязки, полученные в сокете.

Смотрите также

  • socket_read() - Читает строку максимальную длину байт из сокета
  • socket_write() - Запись в сокет
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Отправляет данные в подсоединённый сокет

  • « socket_select
  • socket_sendmsg »
  • PHP Manual
  • Функции сокета
  • Отправляет данные в подсоединённый сокет

socket_send

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_send — Отправляет данные в подсоединённый сокет

Описание

socket_send ( resource $socket , string $buf , int $len , int $flags ) : int

Функция socket_send() отправляет len байт в сокет socket из буфера buf.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create() или socket_accept().

buf

Буфер, содержащий данные, которые будут отправлены на удалённый хост.

len

Число байт, которое будет отправлено на удалённый хост из буфера buf.

flags

Значение параметра flags может быть любой комбинацией следующих флагов, соединённых при помощи двоичного оператора OR (|).

Возможные значения для параметра flags
MSG_OOB | Отправить данные OOB (out-of-band, внеполосные).
MSG_EOR | Указывает на метку записи. Отправляемые данные завершают запись.
MSG_EOF | Закрывает отправляющую сторону сокета и добавляет соответствующее оповещение об этом на конце отправляемых данных. Отправляемые данные завершают транзакцию.
MSG_DONTROUTE | Не использовать роутинг, использовать прямой интерфейс.

Возвращаемые значения

socket_send() возвращает количество отправленных байтов или FALSE в случае ошибки.

Смотрите также

  • socket_sendto() - Отправляет сообщение в сокет, независимо от того, подсоединён он или нет


Отправить сообщение

  • « socket_send
  • socket_sendto »
  • PHP Manual
  • Функции сокета
  • Отправить сообщение

socket_sendmsg

(PHP 5 >= 5.5.0, PHP 7)

socket_sendmsg — Отправить сообщение

Описание

socket_sendmsg ( resource $socket , array $message [, int $flags = 0 ] ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

socket

message

flags

Возвращаемые значения

Возвращает количество отправленных байтов или FALSE в случае возникновения ошибки.

Смотрите также

  • socket_recvmsg() - Прочитать сообщение
  • socket_cmsg_space() - Вычислить размер буфера сообщения


Отправляет сообщение в сокет, независимо от того, подсоединён он или нет

  • « socket_sendmsg
  • socket_set_block »
  • PHP Manual
  • Функции сокета
  • Отправляет сообщение в сокет, независимо от того, подсоединён он или нет

socket_sendto

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_sendto — Отправляет сообщение в сокет, независимо от того, подсоединён он или нет

Описание

socket_sendto ( resource $socket , string $buf , int $len , int $flags , string $addr [, int $port = 0 ] ) : int

Функция socket_sendto() отправляет len байт из буфера buf через сокет socket к порту port на адресе addr.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи socket_create().

buf

Отправляемые данные будут взяты из буфера buf.

len

len байт из буфера buf будет отправлено.

flags

Значение параметра flags может быть любой комбинацией следующих флагов, соединённых при помощи двоичного оператора OR (|).

Возможные значения флагов flags
MSG_OOB | Отправить данные OOB (out-of-band, внеполосные).
MSG_EOR | Указывает на метку записи. Отправленные данные завершают запись.
MSG_EOF | Закрывает отправляющую сторону сокета и добавляет соответствующее оповещение об этом в конец отправляемых данных. Отправленные данные завершают транзакцию.
MSG_DONTROUTE | Не использовать маршрутизацию, использовать прямой интерфейс.

addr

IP-адрес удалённого хоста.

port

port - это номер удалённого порта, по которому будут отправлены данные.

Возвращаемые значения

Функция socket_sendto() возвращает количество байт, отправленных на удалённый хост, или FALSE, если произошла ошибка.

Примеры

Пример #1 Пример использования socket_sendto()

<?php
    $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);

    $msg = "Пинг !";
    $len = strlen($msg);

    socket_sendto($sock, $msg, $len, 0, '127.0.0.1', 1223);
    socket_close($sock);
?>

Смотрите также

  • socket_send() - Отправляет данные в подсоединённый сокет


Устанавливает блокирующий режим на ресурсе сокета

  • « socket_sendto
  • socket_set_nonblock »
  • PHP Manual
  • Функции сокета
  • Устанавливает блокирующий режим на ресурсе сокета

socket_set_block

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

socket_set_block — Устанавливает блокирующий режим на ресурсе сокета

Описание

socket_set_block ( resource $socket ) : bool

Функция socket_set_block() убирает флаг O_NONBLOCK с сокета, указанного в параметре socket.

Когда операция (например, получение, отправка, соединение, принятие соединения, ...) выполняется на блокирующем сокете, скрипт будет приостанавливать своё выполнение до тех пор, пока он не получит сигнал или возможность выполнить операцию.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create() или socket_accept().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использованияsocket_set_block()

<?php
$socket = socket_create_listen(1223);
socket_set_block($socket);

socket_accept($socket);
?>

Этот пример создаёт слушающий сокет на всех интерфейсах на порту 1223 и устанавливает сокет в режим O_BLOCK. Функция socket_accept() зависнет до тех пор, пока не будет принято соединение.

Смотрите также

  • socket_set_nonblock() - Устанавливает неблокирующий режим для файлового дескриптора fd
  • socket_set_option() - Устанавливает опции для сокета


Устанавливает неблокирующий режим для файлового дескриптора fd

  • « socket_set_block
  • socket_set_option »
  • PHP Manual
  • Функции сокета
  • Устанавливает неблокирующий режим для файлового дескриптора fd

socket_set_nonblock

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_set_nonblock — Устанавливает неблокирующий режим для файлового дескриптора fd

Описание

socket_set_nonblock ( resource $socket ) : bool

Функция socket_set_nonblock() устанавливает флаг O_NONBLOCK на сокете, указанном в параметре socket.

Когда операция (например, получение, отправка, соединение, принятие соединения, ...) выполняется на неблокирующем сокете, скрипт не будет приостанавливать своё исполнение до получения сигнала или возможности выполнить операцию. Если выполняемая операция должна привести к блокированию выполнения скрипта, то вместо этого вызываемая функция возвратит ошибку.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create() или socket_accept().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования socket_set_nonblock()

<?php
$socket = socket_create_listen(1223);
socket_set_nonblock($socket);

socket_accept($socket);
?>

Этот пример создаёт слушающий сокет на всех интерфейсах на порту 1223 и устанавливает сокет в режим O_NONBLOCK. socket_accept() будет немедленно возвращать ошибку, если только именно в этот момент нету ожидающего соединения.

Смотрите также

  • socket_set_block() - Устанавливает блокирующий режим на ресурсе сокета
  • socket_set_option() - Устанавливает опции для сокета
  • stream_set_blocking() - Установить блокирующий/неблокирующий режим в потоке


Устанавливает опции для сокета

  • « socket_set_nonblock
  • socket_setopt »
  • PHP Manual
  • Функции сокета
  • Устанавливает опции для сокета

socket_set_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

socket_set_option — Устанавливает опции для сокета

Описание

socket_set_option ( resource $socket , int $level , int $optname , mixed $optval ) : bool

Функция socket_set_option() устанавливает опцию указанную в параметре optname, на уровне протокола level, в значение, указанное параметром optval для сокета socket.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create() или socket_accept().

level

Параметр level указывает уровень протокола, на котором используется опция. Например, чтобы установить опции на уровне сокета, параметр level должен быть установлен в SOL_SOCKET. Другие уровни, такие как TCP, можно использовать, указав номер протокола этого уровня. Номер протоколов можно найти с помощью функции getprotobyname().

optname

Возможные опции для сокета те же самые, как и для функции socket_get_option().

optval

Значение опции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования socket_set_option()

<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!is_resource($socket)) {
    echo 'Не могу создать сокет: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
    echo 'Не могу установить опцию на сокете: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!socket_bind($socket, '127.0.0.1', 1223)) {
    echo 'Не могу привязать сокет: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

$rval = socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR);

if ($rval === false) {
    echo 'Не могу получить опцию сокета: '. socket_strerror(socket_last_error()) . PHP_EOL;
} else if ($rval !== 0) {
    echo 'Опция SO_REUSEADDR установлена на сокете!' . PHP_EOL;
}
?>

Смотрите также

  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_bind() - Привязывает имя к сокету
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_get_option() - Получает опции потока для сокета


Псевдоним socket_set_option

  • « socket_set_option
  • socket_shutdown »
  • PHP Manual
  • Функции сокета
  • Псевдоним socket_set_option

socket_setopt

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_setopt — Псевдоним socket_set_option()

Описание

Эта функция является псевдонимом: socket_set_option().


Завершает работу сокета на получение и/или отправку данных

  • « socket_setopt
  • socket_strerror »
  • PHP Manual
  • Функции сокета
  • Завершает работу сокета на получение и/или отправку данных

socket_shutdown

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_shutdown — Завершает работу сокета на получение и/или отправку данных

Описание

socket_shutdown ( resource $socket [, int $how = 2 ] ) : bool

Функция socket_shutdown() позволяет вам остановить передачу поступающих, исходящих или всех данных (по умолчанию) через сокет socket

Замечание:

Ассоциированный буфер, или буфферы, могут быть освобождены, а могут и нет.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create().

how

Значение параметра how может быть одним из следующих:

возможные значения для параметра how
0 | Завершает чтение из сокета
1 | Завершает запись в сокет
2 | Завершает чтение и запись в сокет

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает строку, описывающую ошибку сокета

  • « socket_shutdown
  • socket_write »
  • PHP Manual
  • Функции сокета
  • Возвращает строку, описывающую ошибку сокета

socket_strerror

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_strerror — Возвращает строку, описывающую ошибку сокета

Описание

socket_strerror ( int $errno ) : string

socket_strerror() получает в качестве параметра errno код ошибки сокета, возвращаемый функцией socket_last_error() и возвращает соответствующий текст с разъяснением.

Замечание:

Хотя сообщения об ошибках, создаваемые расширением socket, на английском языке, системные сообщения, получаемые этой функцией, будут появляться в зависимости от текущей локали (LC_MESSAGES).

Список параметров

errno

Допустимый код ошибки сокета, скорее всего, возвращённый функцией socket_last_error().

Возвращаемые значения

Возвращает сообщение об ошибке, связанное с параметром errno.

Примеры

Пример #1 Пример использования socket_strerror()

<?php
if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
   echo "socket_create() не выполнена: причина: " . socket_strerror(socket_last_error()) . "\n";
}

if (false == (@socket_bind($socket, '127.0.0.1', 80))) {
   echo "socket_bind() не выполнена: причина: " . socket_strerror(socket_last_error($socket)) . "\n";
}
?>

Ожидаемый вывод из примера выше (подразумевается, что скрипт не запущен с привилегиями суперпользователя root):

socket_bind() не выполнена: причина: Доступ запрещён

Смотрите также

  • socket_accept() - Принимает соединение на сокете
  • socket_bind() - Привязывает имя к сокету
  • socket_connect() - Начинает соединение с сокетом
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)


Запись в сокет

  • « socket_strerror
  • socket_wsaprotocol_info_export »
  • PHP Manual
  • Функции сокета
  • Запись в сокет

socket_write

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_write — Запись в сокет

Описание

socket_write ( resource $socket , string $buffer [, int $length = 0 ] ) : int

Функция socket_write() записывает в сокет socket данные из указанного буфера buffer.

Список параметров

socket

buffer

Буфер, который будет записан.

length

Необязательный параметр length может указывать другое число байт, записываемых в сокет. Если это число больше, чем длина буфера, оно будет молча урезано до длины буфера.

Возвращаемые значения

Возвращает количество байт, успешно записанных в сокет или FALSE в случае возникновения ошибки. Код ошибки может быть получен при помощи функции socket_last_error(). Этот код может быть передан функции socket_strerror() для получения текстового описания ошибки.

Замечание:

Совершенно нормально для функции socket_write() возвращать ноль, что означает, что ни одного байта не было записано. Пожалуйста, используйте оператор === для проверки значения на FALSE в случае ошибки.

Примечания

Замечание:

socket_write() не обязательно записывает все байты из указанного буфера. Нормально то, что, в зависимости от сетевых буферов и т. д., только некоторое количество данных, даже один байт, будет записан, хотя ваш буфер больше. Вы должны следить за тем, чтобы непреднамеренно не забыть передать остаток ваших данных.

Смотрите также

  • socket_accept() - Принимает соединение на сокете
  • socket_bind() - Привязывает имя к сокету
  • socket_connect() - Начинает соединение с сокетом
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_read() - Читает строку максимальную длину байт из сокета
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Экспорт структуры WSAPROTOCOL_INFO

  • « socket_write
  • socket_wsaprotocol_info_import »
  • PHP Manual
  • Функции сокета
  • Экспорт структуры WSAPROTOCOL_INFO

socket_wsaprotocol_info_export

(PHP 7 >= 7.3.0)

socket_wsaprotocol_info_export — Экспорт структуры WSAPROTOCOL_INFO

Описание

socket_wsaprotocol_info_export ( resource $socket , int $target_pid ) : string

Экспортирует структуру WSAPROTOCOL_INFO в разделяемую память и возвращает идентификатор, который можно использовать в socket_wsaprotocol_info_import(). Этот идентификатор пригоден только для использования в процессе с PID, указанным в target_pid.

Замечание: Функция доступна только в Windows.

Список параметров

socket

Корректный ресурс сокета.

target_pid

Идентификатор процесса, который будет импортировать сокет.

Возвращаемые значения

Возвращает идентификатор, который можно использовать для импорта, или FALSE в случае возникновения ошибки

Смотрите также

  • socket_wsaprotocol_info_import() - Импортирует сокет из другого процесса
  • socket_wsaprotocol_info_release() - Высвобождает экспортированную структуру WSAPROTOCOL_INFO


Импортирует сокет из другого процесса

  • « socket_wsaprotocol_info_export
  • socket_wsaprotocol_info_release »
  • PHP Manual
  • Функции сокета
  • Импортирует сокет из другого процесса

socket_wsaprotocol_info_import

(PHP 7 >= 7.3.0)

socket_wsaprotocol_info_import — Импортирует сокет из другого процесса

Описание

socket_wsaprotocol_info_import ( string $info_id ) : resource

Импортирует сокет, который был экспортирован в другом процессе.

Замечание: Функция доступна только в Windows.

Список параметров

info_id

Идентификатор, полученный при вызове socket_wsaprotocol_info_export().

Возвращаемые значения

Возвращает ресурс сокета, или FALSE в случае возникновения ошибки

Смотрите также

  • socket_wsaprotocol_info_export() - Экспорт структуры WSAPROTOCOL_INFO


Высвобождает экспортированную структуру WSAPROTOCOL_INFO

  • « socket_wsaprotocol_info_import
  • SSH2 »
  • PHP Manual
  • Функции сокета
  • Высвобождает экспортированную структуру WSAPROTOCOL_INFO

socket_wsaprotocol_info_release

(PHP 7 >= 7.3.0)

socket_wsaprotocol_info_release — Высвобождает экспортированную структуру WSAPROTOCOL_INFO

Описание

socket_wsaprotocol_info_release ( string $info_id ) : bool

Высвобождает разделяемую память, соответствующую заданному info_id.

Замечание: Функция доступна только в Windows.

Список параметров

info_id

Идентификатор, полученный при вызове socket_wsaprotocol_info_export().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • socket_wsaprotocol_info_export() - Экспорт структуры WSAPROTOCOL_INFO


Secure Shell2

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции SSH2
    • ssh2_auth_agent — Аутентификация через SSH с помощью агент ssh
    • ssh2_auth_hostbased_file — Аутентификация с использованием открытого ключа хоста
    • ssh2_auth_none — Аутентификация как "none"
    • ssh2_auth_password — Аутентификация через SSH с использованием обычного пароля
    • ssh2_auth_pubkey_file — Аутентификация с открытым ключем
    • ssh2_connect — Подключение к SSH-серверу
    • ssh2_disconnect — Закрыть соединение с удаленным сервером SSH
    • ssh2_exec — Выполнение команды на удаленном сервере
    • ssh2_fetch_stream — Получение расширенного потока данных
    • ssh2_fingerprint — Получение отпечатка удаленного сервера
    • ssh2_methods_negotiated — Возвращает список согласованных методов
    • ssh2_publickey_add — Добавляет авторизованный открытый ключ
    • ssh2_publickey_init — Инициализирует подсистему открытого ключа
    • ssh2_publickey_list — Список уже авторизованных открытых ключей
    • ssh2_publickey_remove — Удаляет авторизованный открытый ключ
    • ssh2_scp_recv — Запрос файла через SCP
    • ssh2_scp_send — Отправка файла через SCP
    • ssh2_sftp_chmod — Изменение прав доступа
    • 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_sftp — Инициализировать подсистему SFTP
    • ssh2_shell — Запрашивает интерактивный терминал
    • ssh2_tunnel — Открыть туннель через удаленный сервер


Введение

Привязка к библиотеке » libssh2, которая предоставляет доступ к ресурсам (shell, удалённый запуск, туннелирование, передача файлов) на удалённом компьютере с использованием криптографически защищённой передачи данных.


Требования

Для установки SSH2 требуется наличие установленных библиотек » OpenSSL и » libssh2. Убедитесь, что указанные библиотеки присутствуют в системе. Типичным названием пакета может быть openssl-dev.

Необходима версия libssh2 1.2 или новее. Однако возможно, что новые релизы pecl/ssh2 потребуют более новые версии (смотрите примечания к релизу).

Функция ssh2_auth_agent() доступна только с версией libssh >= 1.2.3.

Поддержка канальных потоков в stream_set_timeout() доступна только с версией libssh >= 1.2.9.

Libssh2 поставляется в двух вариантах: gcrypt или openssl. Некоторые дистрибутивы Linux собирают libssh2 с библиотекой gcrypt, некоторые с openssl. Libssh2 имеет некоторые проблемы при компиляции с gcrypt, поэтому используйте версию с openssl.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/ssh2.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SSH2_FINGERPRINT_MD5 (integer)
Флаг для получения идентификатора сервера в виде хеш-суммы MD5 функцией ssh2_fingerprint().
SSH2_FINGERPRINT_SHA1 (integer)
Флаг для получения идентификатора сервера в виде хеш-суммы SHA1 функцией ssh2_fingerprint().
SSH2_FINGERPRINT_HEX (integer)
Флаг для получения идентификатора сервера функцией ssh2_fingerprint() в виде строки шестнадцатеричных символов.
SSH2_FINGERPRINT_RAW (integer)
Флаг для получения идентификатора сервера функцией ssh2_fingerprint() в виде неотформатированной строки восьмибитных символов.
SSH2_TERM_UNIT_CHARS (integer)
Флаг для функции ssh2_shell(), определяющий, что параметры width и height задаются в виде количества символов.
SSH2_TERM_UNIT_PIXELS (integer)
Флаг для функции ssh2_shell(), определяющий, что параметры width и height задаются в пикселях.
SSH2_DEFAULT_TERM_WIDTH (integer)
Принятое по умолчанию значение ширины окна терминала, принимаемое функцией ssh2_shell().
SSH2_DEFAULT_TERM_HEIGHT (integer)
Принятое по умолчанию значение высоты окна терминала, принимаемое функцией ssh2_shell().
SSH2_DEFAULT_TERM_UNIT (integer)
Принятая по умолчанию единица измерения значений ширины и высоты окна терминала, принимаемых функцией ssh2_shell().
SSH2_STREAM_STDIO (integer)
Флаг функции ssh2_fetch_stream(), запрашивающей субканал STDIO.
SSH2_STREAM_STDERR (integer)
Флаг функции ssh2_fetch_stream(), запрашивающей субканал STDERR.
SSH2_DEFAULT_TERMINAL (string)
Принятый по умолчанию тип терминала (например, vt102, ansi, xterm, vanilla), запрашиваемый функцией ssh2_shell().


Функции SSH2

Содержание

  • ssh2_auth_agent — Аутентификация через SSH с помощью агент ssh
  • ssh2_auth_hostbased_file — Аутентификация с использованием открытого ключа хоста
  • ssh2_auth_none — Аутентификация как "none"
  • ssh2_auth_password — Аутентификация через SSH с использованием обычного пароля
  • ssh2_auth_pubkey_file — Аутентификация с открытым ключем
  • ssh2_connect — Подключение к SSH-серверу
  • ssh2_disconnect — Закрыть соединение с удаленным сервером SSH
  • ssh2_exec — Выполнение команды на удаленном сервере
  • ssh2_fetch_stream — Получение расширенного потока данных
  • ssh2_fingerprint — Получение отпечатка удаленного сервера
  • ssh2_methods_negotiated — Возвращает список согласованных методов
  • ssh2_publickey_add — Добавляет авторизованный открытый ключ
  • ssh2_publickey_init — Инициализирует подсистему открытого ключа
  • ssh2_publickey_list — Список уже авторизованных открытых ключей
  • ssh2_publickey_remove — Удаляет авторизованный открытый ключ
  • ssh2_scp_recv — Запрос файла через SCP
  • ssh2_scp_send — Отправка файла через SCP
  • ssh2_sftp_chmod — Изменение прав доступа
  • 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_sftp — Инициализировать подсистему SFTP
  • ssh2_shell — Запрашивает интерактивный терминал
  • ssh2_tunnel — Открыть туннель через удаленный сервер


Аутентификация через SSH с помощью агент ssh

  • « Функции SSH2
  • ssh2_auth_hostbased_file »
  • PHP Manual
  • Функции SSH2
  • Аутентификация через SSH с помощью агент ssh

ssh2_auth_agent

(PECL ssh2 >= 0.12)

ssh2_auth_agent — Аутентификация через SSH с помощью агент ssh

Описание

ssh2_auth_agent ( resource $session , string $username ) : bool

Аутентификация через SSH с помощью ssh.

Замечание: Функция ssh2_auth_agent() доступна, только если расширение собрано с библиотекой libssh >= 1.2.3.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

username

Имя пользователя на удаленном сервере.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Аутентификация с помощью агента ssh

<?php
$connection = ssh2_connect('shell.example.com', 22);

if (ssh2_auth_agent($connection, 'username')) {
  echo "Успешная аутентификация !\n";
} else {
  die('Неудачная аутентификация...');
}
?>


Аутентификация с использованием открытого ключа хоста

  • « ssh2_auth_agent
  • ssh2_auth_none »
  • PHP Manual
  • Функции SSH2
  • Аутентификация с использованием открытого ключа хоста

ssh2_auth_hostbased_file

(PECL ssh2 >= 0.9.0)

ssh2_auth_hostbased_file — Аутентификация с использованием открытого ключа хоста

Описание

ssh2_auth_hostbased_file ( resource $session , string $username , string $hostname , string $pubkeyfile , string $privkeyfile [, string $passphrase [, string $local_username ]] ) : bool

Аутентификация с использованием открытого ключа хоста, сохраненного в файле.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

username

hostname

pubkeyfile

privkeyfile

passphrase

Если privkeyfile зашифрован (как должен бы), необходимо предоставить кодовую фразу.

local_username

Если параметр local_username не задан, будет использовано значение из username.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Аутентификация по открытому ключу

<?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 "Успешная Hostbased-аутентификация по открытому ключу\n";
} else {
  die('Неудачная Hostbased-аутентификация по открытому ключу');
}
?>

Примечания

Замечание:

ssh2_auth_hostbased_file() требует libssh2 >= 0.7 и PHP/SSH2 >= 0.7


Аутентификация как "none"

  • « ssh2_auth_hostbased_file
  • ssh2_auth_password »
  • PHP Manual
  • Функции SSH2
  • Аутентификация как "none"

ssh2_auth_none

(PECL ssh2 >= 0.9.0)

ssh2_auth_none — Аутентификация как "none"

Описание

ssh2_auth_none ( resource $session , string $username ) : mixed

Попытка пройти аутентификацию как "none" обычно будет терпеть неудачу (и должна). Вместе с ошибкой эта функция возвратит список доступных методов аутентификации.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

username

Имя пользователя на удаленном сервере.

Возвращаемые значения

Возвращает TRUE, если сервер принимает аутентификацию "none", либо массив доступных методов аутентификации.

Примеры

Пример #1 Извлечение списка доступных методов аутентификации

<?php
$connection = ssh2_connect('shell.example.com', 22);

$auth_methods = ssh2_auth_none($connection, 'user');

if (in_array('password', $auth_methods)) {
  echo "Сервер поддерживает аутентификацию на основе пароля\n";
}
?>


Аутентификация через SSH с использованием обычного пароля

  • « ssh2_auth_none
  • ssh2_auth_pubkey_file »
  • PHP Manual
  • Функции SSH2
  • Аутентификация через SSH с использованием обычного пароля

ssh2_auth_password

(PECL ssh2 >= 0.9.0)

ssh2_auth_password — Аутентификация через SSH с использованием обычного пароля

Описание

ssh2_auth_password ( resource $session , string $username , string $password ) : bool

Аутентификация через SSH с использованием обычного пароля. Начиная с версии 0.12 эта функция также поддерживает запрос пароля с клавиатуры.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

username

Имя пользователя на удаленном сервере.

password

Пароль для username

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Аутентификация с паролем

<?php
$connection = ssh2_connect('shell.example.com', 22);

if (ssh2_auth_password($connection, 'username', 'secret')) {
  echo "Успешная аутентификация!\n";
} else {
  die('Неудачная аутентификация...');
}
?>


Аутентификация с открытым ключем

  • « ssh2_auth_password
  • ssh2_connect »
  • PHP Manual
  • Функции SSH2
  • Аутентификация с открытым ключем

ssh2_auth_pubkey_file

(PECL ssh2 >= 0.9.0)

ssh2_auth_pubkey_file — Аутентификация с открытым ключем

Описание

ssh2_auth_pubkey_file ( resource $session , string $username , string $pubkeyfile , string $privkeyfile [, string $passphrase ] ) : bool

Аутентификация с открытым ключем, сохраненном в файле.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

username

pubkeyfile

Открытый ключ в формате OpenSSH. Должен выглядеть примерно так:

ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110

privkeyfile

passphrase

Если privkeyfile зашифрован (как должен бы), то необходимо предоставить passphrase.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Аутентификация с открытым ключем

<?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 "Успешная аутентификация с открытым ключем\n";
} else {
  die('Неудачная аутентификация с открытым ключем');
}
?>

Примечания

Замечание:

Основная библиотека libssh не поддеживает частичные аутентификации очень чисто. То есть, если вам нужно предоставить как открытый ключ, так и пароль, он будет выглядеть так, как если бы эта функция потерпела неудачу. В данном конкретном случае неудачный вызов может означать, что аутентификация не завершена. Вам нужно игнорировать это неудачное выполнение, продолжить работу и вызвать ssh2_auth_password() для завершения аутентификации.


Подключение к SSH-серверу

  • « ssh2_auth_pubkey_file
  • ssh2_disconnect »
  • PHP Manual
  • Функции SSH2
  • Подключение к SSH-серверу

ssh2_connect

(PECL ssh2 >= 0.9.0)

ssh2_connect — Подключение к SSH-серверу

Описание

ssh2_connect ( string $host [, int $port = 22 [, array $methods [, array $callbacks ]]] ) : resource

Устанавливает соединение с сервером по SSH.

После соединения, пользователь должен проверить ключ сервера, используя функцию ssh2_fingerprint(), и после этого авторизоваться, используя пароль или открытый ключ.

Список параметров

host

port

methods

Параметр methods может быть ассоциативным массивом, содержащим до четырех записей, перечисленных ниже.

Параметр methods может быть ассоциативным массивом, содержащим от одного до четырех параметров
Индекс | Что обозначает | Допустимые значения*
kex | Список методов обмена ключами, разделенных запятой, в порядке предпочтения. | diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, и diffie-hellman-group-exchange-sha1
hostkey | Список методов ключей хоста, разделенных запятой, в порядке предпочтения. | ssh-rsa и ssh-dss
client_to_server | Ассоциативный массив, содержащий настройки шифрования, сжатия и метода имитовставки ("message authentication code" или MAC) для сообщений, отправленных клиентом серверу.
server_to_client | Ассоциативный массив, содержащий настройки шифрования, сжатия и метода имитовставки ("message authentication code" или MAC) для сообщений, отправленных сервером клиенту.

* - Поддерживаемые значения зависят от методов, поддерживаемых базовой библиотекой. Более подробно читайте документацию по » libssh2.

client_to_server и server_to_client могут быть ассоциативными массивами, содержащими любой или же все нижеперечисленные параметры.
Индекс | Что обозначает | Допустимые значения*
crypt | Список методов шифрования, разделенных запятой, в порядке предпочтения. | rijndael-cbc@lysator.liu.se, aes256-cbc, aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour и none**
comp | Список методов сжатия, разделенных запятой, в порядке предпочтения. | zlib и none
mac | Список методов MAC, разделенных запятой, в порядке предпочтения. | hmac-sha1, hmac-sha1-96, hmac-ripemd160, hmac-ripemd160@openssh.com и none**

Замечание: Метод шифрования "none" и MAC

В целях безопасности none отключен в базовой библиотеке » libssh2, если вы не разрешили его самостоятельно на этапе сборки, используя соответствующие ключи ./configure. Смотрите документацию по базовой библиотеки для более подробной информации.

callbacks

callbacks может быть ассоциативным массивом, содержащим любой или же все нижеперечисленные параметры

Параметры callback-функции
Индекс | Что обозначает | Прототип
ignore | Имя функции, вызываемой после получения пакета SSH2_MSG_IGNORE | void ignore_cb($message)
debug | Имя функции, вызываемой после получения пакета SSH2_MSG_DEBUG | void debug_cb($message, $language, $always_display)
macerror | Имя функции, вызываемой если пакет получен, но MAC не удался. Если callback-функция вернет TRUE, несовпадение будет проигнорировано, в обратном случае соединение будет оборвано. | bool macerror_cb($packet)
disconnect | Имя функции, вызываемой после получения пакета SSH2_MSG_DISCONNECT | void disconnect_cb($reason, $message, $language)

Возвращаемые значения

Возвращает ресурс в случае успеха или FALSE при ошибке.

Примеры

Пример #1 Пример ssh2_connect()

Откроем соединение, принудительно используя такие настройки: 3des-cbc при отправке пакетов, шифр aes любой силы при получении пакетов, без сжатия в обоих направлениях и обмен ключами Group1.

<?php
/* Оповещаем пользователя, если сервер прервал соединение */
function my_ssh_disconnect($reason, $message, $language) {
  printf("Сервер отключился с кодом причины [%d] и сообщением: %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('Не удалось установить соединение');
?>

Смотрите также

  • ssh2_fingerprint() - Получение отпечатка удаленного сервера
  • ssh2_auth_none() - Аутентификация как "none"
  • ssh2_auth_password() - Аутентификация через SSH с использованием обычного пароля
  • ssh2_auth_pubkey_file() - Аутентификация с открытым ключем
  • ssh2_disconnect() - Закрыть соединение с удаленным сервером SSH


Закрыть соединение с удаленным сервером SSH

  • « ssh2_connect
  • ssh2_exec »
  • PHP Manual
  • Функции SSH2
  • Закрыть соединение с удаленным сервером SSH

ssh2_disconnect

(PECL ssh2 >= 1.0)

ssh2_disconnect — Закрыть соединение с удаленным сервером SSH

Описание

ssh2_disconnect ( resource $session ) : bool

Закрыть соединение с удаленным сервером SSH.

Список параметров

session

Идентификатор ссылки соединения SSH, полученный в результате вызова ssh2_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ssh2_connect() - Подключение к SSH-серверу


Выполнение команды на удаленном сервере

  • « ssh2_disconnect
  • ssh2_fetch_stream »
  • PHP Manual
  • Функции SSH2
  • Выполнение команды на удаленном сервере

ssh2_exec

(PECL ssh2 >= 0.9.0)

ssh2_exec — Выполнение команды на удаленном сервере

Описание

ssh2_exec ( resource $session , string $command [, string $pty [, array $env [, int $width = 80 [, int $height = 25 [, int $width_height_type = SSH2_TERM_UNIT_CHARS ]]]]] ) : resource

Запуск команды на удаленном сервере и выделение для нее канала.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

command

pty

env

env может передаваться как ассоциативный массив пар имя/значение, представляющие переменные окружения, которые нужно установить перед запуском команды.

width

Ширина виртуального терминала.

height

Высота виртуального терминала.

width_height_type

width_height_type должен быть SSH2_TERM_UNIT_CHARS или SSH2_TERM_UNIT_PIXELS.

Возвращаемые значения

Возвращает поток в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Выполнение команды

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stream = ssh2_exec($connection, '/usr/local/bin/php -i');
?>

Смотрите также

  • ssh2_connect() - Подключение к SSH-серверу
  • ssh2_shell() - Запрашивает интерактивный терминал
  • ssh2_tunnel() - Открыть туннель через удаленный сервер


Получение расширенного потока данных

  • « ssh2_exec
  • ssh2_fingerprint »
  • PHP Manual
  • Функции SSH2
  • Получение расширенного потока данных

ssh2_fetch_stream

(PECL ssh2 >= 0.9.0)

ssh2_fetch_stream — Получение расширенного потока данных

Описание

ssh2_fetch_stream ( resource $channel , int $streamid ) : resource

Выбирает альтернативный подпоток, связанный с потоком канала SSH2. На данный момент протокол SSH2 определяет только один подпоток STDERR, имеющий идентификатор SSH2_STREAM_STDERR (определен как 1).

Список параметров

channel

streamid

Поток канала SSH2.

Возвращаемые значения

Возвращает запрошенный ресурс потока.

Примеры

Пример #1 Открытие консоли и получение связанного с ней потока STDERR

<?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);
?>

Смотрите также

  • ssh2_shell() - Запрашивает интерактивный терминал
  • ssh2_exec() - Выполнение команды на удаленном сервере
  • ssh2_connect() - Подключение к SSH-серверу


Получение отпечатка удаленного сервера

  • « ssh2_fetch_stream
  • ssh2_methods_negotiated »
  • PHP Manual
  • Функции SSH2
  • Получение отпечатка удаленного сервера

ssh2_fingerprint

(PECL ssh2 >= 0.9.0)

ssh2_fingerprint — Получение отпечатка удаленного сервера

Описание

ssh2_fingerprint ( resource $session [, int $flags = SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX ] ) : string

Возвращает хеш ключа хоста из активной сессии.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

flags

flags может быть SSH2_FINGERPRINT_MD5 или SSH2_FINGERPRINT_SHA1, объединенные логическим ИЛИ (OR) с SSH2_FINGERPRINT_HEX или SSH2_FINGERPRINT_RAW.

Возвращаемые значения

Возвращает хеш ключа хоста в виде строки.

Примеры

Пример #1 Проверка отпечатка с известным значением

<?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("Ключ хоста не совпадает!\n" .
      "Возможно, атака посредника?");
}
?>


Возвращает список согласованных методов

  • « ssh2_fingerprint
  • ssh2_publickey_add »
  • PHP Manual
  • Функции SSH2
  • Возвращает список согласованных методов

ssh2_methods_negotiated

(PECL ssh2 >= 0.9.0)

ssh2_methods_negotiated — Возвращает список согласованных методов

Описание

ssh2_methods_negotiated ( resource $session ) : array

Возвращает список согласованных методов.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

Возвращаемые значения

Примеры

Пример #1 Определим, какие методы согласованы

<?php
$connection = ssh2_connect('shell.example.com', 22);
$methods = ssh2_methods_negotiated($connection);

echo "Ключи шифрования согласовываются методом: {$methods['kex']}\n";
echo "Сервер идентифицирован с использованием {$methods['hostkey']} и ";
echo "отпечатком: " . ssh2_fingerprint($connection) . "\n";

echo "Пакеты от клиента к серверу:\n";
echo "\tШифрование: {$methods['client_to_server']['crypt']}\n";
echo "\tСжатие: {$methods['client_to_server']['comp']}\n";
echo "\tMAC: {$methods['client_to_server']['mac']}\n";

echo "Пакеты от сервера к клиенту:\n";
echo "\tШифрование: {$methods['server_to_client']['crypt']}\n";
echo "\tСжатие: {$methods['server_to_client']['comp']}\n";
echo "\tMAC: {$methods['server_to_client']['mac']}\n";

?>

Смотрите также

  • ssh2_connect() - Подключение к SSH-серверу


Добавляет авторизованный открытый ключ

  • « ssh2_methods_negotiated
  • ssh2_publickey_init »
  • PHP Manual
  • Функции SSH2
  • Добавляет авторизованный открытый ключ

ssh2_publickey_add

(PECL ssh2 >= 0.10)

ssh2_publickey_add — Добавляет авторизованный открытый ключ

Описание

ssh2_publickey_add ( resource $pkey , string $algoname , string $blob [, bool $overwrite = FALSE [, array $attributes ]] ) : bool

Замечание: Подсистема открытых ключей используется для управления открытыми ключами на сервере, на котором клиент уже прошел авторизацию. Для авторизации с помощью открытого ключа на удаленной системе, используйте вместо этого функцию ssh2_auth_pubkey_file().

Список параметров

pkey

Ресурс подсистемы открытого ключа, созданный с помощью ssh2_publickey_init().

algoname

Алгоритм ключа: ssh-dss, ssh-rsa

blob

Бинарная строка, содержащая открытый ключ

overwrite

Нужно ли перезаписать ключ, если он уже есть?

attributes

Ассоциативный массив атрибутов, присваиваемых открытому ключу. Список поддерживаемых атрибутов ищите по словам "ietf-secsh-publickey-subsystem". Для указания какого-либо атрибута обязательным, поставьте перед именем звездочку. Если сервер не поддерживает какой-либо атрибут, помеченный обязательным - это прервет процесс добавления.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Добавляем открытый ключ с помощью 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($pkey, 'ssh-rsa', $keyblob, false, array('comment'=>"John's Key"));
?>

Смотрите также

  • ssh2_publickey_init() - Инициализирует подсистему открытого ключа
  • ssh2_publickey_remove() - Удаляет авторизованный открытый ключ
  • ssh2_publickey_list() - Список уже авторизованных открытых ключей


Инициализирует подсистему открытого ключа

  • « ssh2_publickey_add
  • ssh2_publickey_list »
  • PHP Manual
  • Функции SSH2
  • Инициализирует подсистему открытого ключа

ssh2_publickey_init

(PECL ssh2 >= 0.10)

ssh2_publickey_init — Инициализирует подсистему открытого ключа

Описание

ssh2_publickey_init ( resource $session ) : resource

Запрашивает подсистему открытого ключа из уже открытого соединения SSH2.

Подсистема открытого ключа позволяет авторизованному клиенту управлять списком авторизованных открытых ключей, хранящихся на сервере независимым образом. Если удаленный сервер не поддерживает подсистему открытого ключа, функция ssh2_publickey_init() вернет FALSE.

Список параметров

session

Возвращаемые значения

Возвращает ресурс подсистемы открытого ключа SSH2 (SSH2 Publickey Subsystem) для использования с остальными методами ssh2_publickey_*(), или FALSE в случае возникновения ошибки.

Примечания

Замечание: Подсистема открытых ключей используется для управления открытыми ключами на сервере, на котором клиент уже прошел авторизацию. Для авторизации с помощью открытого ключа на удаленной системе, используйте вместо этого функцию ssh2_auth_pubkey_file().

Смотрите также

  • ssh2_publickey_add() - Добавляет авторизованный открытый ключ
  • ssh2_publickey_remove() - Удаляет авторизованный открытый ключ
  • ssh2_publickey_list() - Список уже авторизованных открытых ключей


Список уже авторизованных открытых ключей

  • « ssh2_publickey_init
  • ssh2_publickey_remove »
  • PHP Manual
  • Функции SSH2
  • Список уже авторизованных открытых ключей

ssh2_publickey_list

(PECL ssh2 >= 0.10)

ssh2_publickey_list — Список уже авторизованных открытых ключей

Описание

ssh2_publickey_list ( resource $pkey ) : array

Список в настоящее время авторизованных открытых ключей.

Список параметров

pkey

Ресурс подсистемы открытого ключа

Возвращаемые значения

Возвращает индексированный массив ключей, каждый из которых представляет из себя ассоциативный массив, содержащий элементы с ключами: name, blob, attrs.

Элементы публичного ключа
Ключ массива | Что означает
name | Имя алгоритма, с помощью которого создавался ключ: ssh-dss или ssh-rsa.
blob | Строка бинарных данных - сам ключ
attrs | Атрибуты, присвоенные ключу. Наиболее часто используется (и единственный доступный подсистемой открытого ключа версии 1) - это comment, представляющий из себя строку свободного формата.

Примеры

Пример #1 Список авторизованных ключей с помощью 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_auth_pubkey_file().

Смотрите также

  • ssh2_publickey_init() - Инициализирует подсистему открытого ключа
  • ssh2_publickey_add() - Добавляет авторизованный открытый ключ
  • ssh2_publickey_remove() - Удаляет авторизованный открытый ключ


Удаляет авторизованный открытый ключ

  • « ssh2_publickey_list
  • ssh2_scp_recv »
  • PHP Manual
  • Функции SSH2
  • Удаляет авторизованный открытый ключ

ssh2_publickey_remove

(PECL ssh2 >= 0.10)

ssh2_publickey_remove — Удаляет авторизованный открытый ключ

Описание

ssh2_publickey_remove ( resource $pkey , string $algoname , string $blob ) : bool

Удаляет авторизованный открытый ключ.

Список параметров

pkey

Ресурс подсистемы открытого ключа

algoname

Алгоритм ключа: ssh-dss, ssh-rsa

blob

Бинарная строка, содержащая ключ

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Подсистема открытых ключей используется для управления открытыми ключами на сервере, на котором клиент уже прошел авторизацию. Для авторизации с помощью открытого ключа на удаленной системе, используйте вместо этого функцию ssh2_auth_pubkey_file().

Смотрите также

  • ssh2_publickey_init() - Инициализирует подсистему открытого ключа
  • ssh2_publickey_add() - Добавляет авторизованный открытый ключ
  • ssh2_publickey_list() - Список уже авторизованных открытых ключей


Запрос файла через SCP

  • « ssh2_publickey_remove
  • ssh2_scp_send »
  • PHP Manual
  • Функции SSH2
  • Запрос файла через SCP

ssh2_scp_recv

(PECL ssh2 >= 0.9.0)

ssh2_scp_recv — Запрос файла через SCP

Описание

ssh2_scp_recv ( resource $session , string $remote_file , string $local_file ) : bool

Копирование файла с сервера на клиент, используя протокол SCP.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

remote_file

Путь к файлу на сервере.

local_file

Локальный путь для сохранения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Загрузка файла через SCP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_recv($connection, '/remote/filename', '/local/filename');
?>

Смотрите также

  • ssh2_scp_send() - Отправка файла через SCP
  • copy() - Копирует файл


Отправка файла через SCP

  • « ssh2_scp_recv
  • ssh2_sftp_chmod »
  • PHP Manual
  • Функции SSH2
  • Отправка файла через SCP

ssh2_scp_send

(PECL ssh2 >= 0.9.0)

ssh2_scp_send — Отправка файла через SCP

Описание

ssh2_scp_send ( resource $session , string $local_file , string $remote_file [, int $create_mode = 0644 ] ) : bool

Копирование файла с клиента на сервер, используя протокол SCP.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

local_file

Путь к локальному файлу.

remote_file

Путь на сервере, куда будет сохранен файл.

create_mode

Файл будет создан с правами доступа, указанным в create_mode.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Загрузка файла на сервер через SCP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
?>

Смотрите также

  • ssh2_scp_recv() - Запрос файла через SCP
  • copy() - Копирует файл


Изменение прав доступа

  • « ssh2_scp_send
  • ssh2_sftp_lstat »
  • PHP Manual
  • Функции SSH2
  • Изменение прав доступа

ssh2_sftp_chmod

(PECL ssh2 >= 0.12)

ssh2_sftp_chmod — Изменение прав доступа

Описание

ssh2_sftp_chmod ( resource $sftp , string $filename , int $mode ) : bool

Пытается изменить права доступа указанного файла на сервере на mode.

Список параметров

sftp

Ресурс SSH2 SFTP, открытый с помощью ssh2_sftp().

filename

Путь к файлу на сервере.

mode

Права доступа к файлу. Для более детальной информации смотрите описание функции chmod().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Изменение прав доступа к файлу

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_chmod($sftp, '/somedir/somefile', 0755);
?>

Смотрите также

  • chmod() - Изменяет режим доступа к файлу
  • ssh2_sftp() - Инициализировать подсистему SFTP
  • ssh2_connect() - Подключение к SSH-серверу


Информация о символической ссылке

  • « ssh2_sftp_chmod
  • ssh2_sftp_mkdir »
  • PHP Manual
  • Функции SSH2
  • Информация о символической ссылке

ssh2_sftp_lstat

(PECL ssh2 >= 0.9.0)

ssh2_sftp_lstat — Информация о символической ссылке

Описание

ssh2_sftp_lstat ( resource $sftp , string $path ) : array

Информация о символической ссылке на серверной файловой системе без перехода по ней.

Эта функция аналогична использованию функции lstat() с оберткой ssh2.sftp:// в PHP 5 и возвращает такие же значения.

Список параметров

sftp

Ресурс SSH2 SFTP, открытый с помощью ssh2_sftp().

path

Путь к символической ссылке.

Возвращаемые значения

Список возвращаемых значений смотрите в описании функции stat().

Примеры

Пример #1 Информация о симлолической ссылке

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);
$statinfo = ssh2_sftp_lstat($sftp, '/path/to/symlink');

$filesize = $statinfo['size'];
$group = $statinfo['gid'];
$owner = $statinfo['uid'];
$atime = $statinfo['atime'];
$mtime = $statinfo['mtime'];
$mode = $statinfo['mode'];
?>

Смотрите также

  • ssh2_sftp_stat() - Информация о файле
  • lstat() - Возвращает информацию о файле или символической ссылке
  • stat() - Возвращает информацию о файле


Создать директорию

  • « ssh2_sftp_lstat
  • ssh2_sftp_readlink »
  • PHP Manual
  • Функции SSH2
  • Создать директорию

ssh2_sftp_mkdir

(PECL ssh2 >= 0.9.0)

ssh2_sftp_mkdir — Создать директорию

Описание

ssh2_sftp_mkdir ( resource $sftp , string $dirname [, int $mode = 0777 [, bool $recursive = FALSE ]] ) : bool

Создает директорию на сервере с заданными в mode правами доступа.

Функция аналогична использованию mkdir() с оберткой ssh2.sftp://.

Список параметров

sftp

Ресурс SSH2 SFTP, открытый с помощью ssh2_sftp().

dirname

Путь к новой директории.

mode

Маска прав доступа.

recursive

Если recursive задан как TRUE, создаются все родительские директории dirname, если их нет.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Создание директории на удаленном сервере

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_mkdir($sftp, '/home/username/newdir');
/* Или так:  mkdir("ssh2.sftp://$sftp/home/username/newdir"); */
?>

Смотрите также

  • mkdir() - Создаёт директорию
  • ssh2_sftp_rmdir() - Удаляет директорию


Возвращает объект по символической ссылке

  • « ssh2_sftp_mkdir
  • ssh2_sftp_realpath »
  • PHP Manual
  • Функции SSH2
  • Возвращает объект по символической ссылке

ssh2_sftp_readlink

(PECL ssh2 >= 0.9.0)

ssh2_sftp_readlink — Возвращает объект по символической ссылке

Описание

ssh2_sftp_readlink ( resource $sftp , string $link ) : string

Возвращает объект по символической ссылке.

Список параметров

sftp

Ресурс SSH2 SFTP, открытый с помощью ssh2_sftp().

link

Путь к символической ссылке.

Возвращаемые значения

Возвращает объект, на который смотрит ссылка link.

Примеры

Пример #1 Чтение символической ссылки

<?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 теперь такой (например): '/var/run/mysql.sock' */
?>

Смотрите также

  • readlink() - Возвращает файл, на который указывает символическая ссылка
  • ssh2_sftp_symlink() - Создать символическую ссылку


Определяет полный путь по предоставленной строке с путем

  • « ssh2_sftp_readlink
  • ssh2_sftp_rename »
  • PHP Manual
  • Функции SSH2
  • Определяет полный путь по предоставленной строке с путем

ssh2_sftp_realpath

(PECL ssh2 >= 0.9.0)

ssh2_sftp_realpath — Определяет полный путь по предоставленной строке с путем

Описание

ssh2_sftp_realpath ( resource $sftp , string $filename ) : string

Преобразует filename в полный путь до файла на удаленном сервере.

Список параметров

sftp

Ресурс SSH2 SFTP, открытый с помощью ssh2_sftp().

filename

Возвращаемые значения

Возвращает полный путь в виде строки.

Примеры

Пример #1 Определение полного пути

<?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 теперь: '/etc/passwd' */
?>

Смотрите также

  • realpath() - Возвращает канонизированный абсолютный путь к файлу
  • ssh2_sftp_symlink() - Создать символическую ссылку
  • ssh2_sftp_readlink() - Возвращает объект по символической ссылке


Переименовывает файл

  • « ssh2_sftp_realpath
  • ssh2_sftp_rmdir »
  • PHP Manual
  • Функции SSH2
  • Переименовывает файл

ssh2_sftp_rename

(PECL ssh2 >= 0.9.0)

ssh2_sftp_rename — Переименовывает файл

Описание

ssh2_sftp_rename ( resource $sftp , string $from , string $to ) : bool

Переименовывает файл на сервере.

Список параметров

sftp

Ресурс SSH2 SFTP, открытый с помощью ssh2_sftp().

from

Исходный файл.

to

Новое имя, которое заменит from.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Переименовывание файла

<?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');
?>

Смотрите также

  • rename() - Переименовывает файл или директорию


Удаляет директорию

  • « ssh2_sftp_rename
  • ssh2_sftp_stat »
  • PHP Manual
  • Функции SSH2
  • Удаляет директорию

ssh2_sftp_rmdir

(PECL ssh2 >= 0.9.0)

ssh2_sftp_rmdir — Удаляет директорию

Описание

ssh2_sftp_rmdir ( resource $sftp , string $dirname ) : bool

Удаляет директорию на сервере.

Работает аналогично rmdir() с оберткой ssh2.sftp://.

Список параметров

sftp

Ресурс SSH2 SFTP, открытый с помощью ssh2_sftp().

dirname

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Удаление директории на сервере

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_rmdir($sftp, '/home/username/deltodel');
/* Или так:  rmdir("ssh2.sftp://$sftp/home/username/dirtodel"); */
?>

Смотрите также

  • rmdir() - Удаляет директорию
  • ssh2_sftp_mkdir() - Создать директорию


Информация о файле

  • « ssh2_sftp_rmdir
  • ssh2_sftp_symlink »
  • PHP Manual
  • Функции SSH2
  • Информация о файле

ssh2_sftp_stat

(PECL ssh2 >= 0.9.0)

ssh2_sftp_stat — Информация о файле

Описание

ssh2_sftp_stat ( resource $sftp , string $path ) : array

Информация о файле на сервере с учетом символических ссылок.

Функция работает аналогично stat() с оберткой ssh2.sftp:// в PHP 5 и возвращает такие же значения.

Список параметров

sftp

Ресурс SSH2 SFTP, открытый с помощью ssh2_sftp().

path

Возвращаемые значения

Список возвращаемых значений смотрите в описании функции stat().

Примеры

Пример #1 Информация о файле

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);
$statinfo = ssh2_sftp_stat($sftp, '/path/to/file');

$filesize = $statinfo['size'];
$group = $statinfo['gid'];
$owner = $statinfo['uid'];
$atime = $statinfo['atime'];
$mtime = $statinfo['mtime'];
$mode = $statinfo['mode'];
?>

Смотрите также

  • ssh2_sftp_lstat() - Информация о символической ссылке
  • lstat() - Возвращает информацию о файле или символической ссылке
  • stat() - Возвращает информацию о файле


Создать символическую ссылку

  • « ssh2_sftp_stat
  • ssh2_sftp_unlink »
  • PHP Manual
  • Функции SSH2
  • Создать символическую ссылку

ssh2_sftp_symlink

(PECL ssh2 >= 0.9.0)

ssh2_sftp_symlink — Создать символическую ссылку

Описание

ssh2_sftp_symlink ( resource $sftp , string $target , string $link ) : bool

Создает символическую ссылку с именем link, указывающую на объект target.

Список параметров

sftp

Ресурс SSH2 SFTP, открытый с помощью ssh2_sftp().

target

Объект, на который будет указывать ссылка.

link

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Создание символической ссылки

<?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');
?>

Смотрите также

  • ssh2_sftp_readlink() - Возвращает объект по символической ссылке
  • symlink() - Создаёт символическую ссылку


Удалить файл на сервере

  • « ssh2_sftp_symlink
  • ssh2_sftp »
  • PHP Manual
  • Функции SSH2
  • Удалить файл на сервере

ssh2_sftp_unlink

(PECL ssh2 >= 0.9.0)

ssh2_sftp_unlink — Удалить файл на сервере

Описание

ssh2_sftp_unlink ( resource $sftp , string $filename ) : bool

Удаляет файл на сервере.

Список параметров

sftp

Ресурс SSH2 SFTP, открытый с помощью ssh2_sftp().

filename

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Удаление файла

<?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');
?>

Смотрите также

  • unlink() - Удаляет файл


Инициализировать подсистему SFTP

  • « ssh2_sftp_unlink
  • ssh2_shell »
  • PHP Manual
  • Функции SSH2
  • Инициализировать подсистему SFTP

ssh2_sftp

(PECL ssh2 >= 0.9.0)

ssh2_sftp — Инициализировать подсистему SFTP

Описание

ssh2_sftp ( resource $session ) : resource

Запрашивает подсистему SFTP из уже открытого соединения SSH2.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

Возвращаемые значения

Этот метод возвращает ресурс SSH2 SFTP для использования в остальных функциях ssh2_sftp_*() и обертке ssh2.sftp:// для fopen, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Открытие файла через SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);

$stream = fopen('ssh2.sftp://' . intval($sftp) . '/path/to/file', 'r');
?>

Смотрите также

  • ssh2_scp_recv() - Запрос файла через SCP
  • ssh2_scp_send() - Отправка файла через SCP


Запрашивает интерактивный терминал

  • « ssh2_sftp
  • ssh2_tunnel »
  • PHP Manual
  • Функции SSH2
  • Запрашивает интерактивный терминал

ssh2_shell

(PECL ssh2 >= 0.9.0)

ssh2_shell — Запрашивает интерактивный терминал

Описание

ssh2_shell ( resource $session [, string $term_type = "vanilla" [, array $env [, int $width = 80 [, int $height = 25 [, int $width_height_type = SSH2_TERM_UNIT_CHARS ]]]]] ) : resource

Открывает терминал к удаленному серверу и выделяет ему поток.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

term_type

Тип терминала term_type. Должен соответствовать одному из перечисленных в серверном файле /etc/termcap.

env

env может содержать ассоциативный массив пар имя/значение, представляющий переменные окружения, которые надо выставить в терминале.

width

Ширина виртуального терминала.

height

Высота виртуального терминала.

width_height_type

width_height_type должен быть SSH2_TERM_UNIT_CHARS или SSH2_TERM_UNIT_PIXELS.

Возвращаемые значения

Примеры

Пример #1 Запрос интерактивного терминала

<?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);
?>

Смотрите также

  • ssh2_exec() - Выполнение команды на удаленном сервере
  • ssh2_tunnel() - Открыть туннель через удаленный сервер
  • ssh2_fetch_stream() - Получение расширенного потока данных


Открыть туннель через удаленный сервер

  • « ssh2_shell
  • Stomp »
  • PHP Manual
  • Функции SSH2
  • Открыть туннель через удаленный сервер

ssh2_tunnel

(PECL ssh2 >= 0.9.0)

ssh2_tunnel — Открыть туннель через удаленный сервер

Описание

ssh2_tunnel ( resource $session , string $host , int $port ) : resource

Открывает поток сокета к произвольную хосту/порту с помощью подключенного в данный момент сервера SSH.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

host

port

Возвращаемые значения

Примеры

Пример #1 Открытие туннеля по произвольному хосту

<?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);
?>

Смотрите также

  • ssh2_connect() - Подключение к SSH-серверу
  • fsockopen() - Открывает соединение с интернет-сокетом или доменным сокетом Unix


Stomp Client

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Примеры
  • Stomp
    • stomp_connect_error — Возвращает строку с описанием последней ошибки подключения
    • stomp_version — Возвращает текущую версию модуля Stomp
  • Stomp — Класс Stomp
    • Stomp::abort — Отменяет выполнение текущей транзакции
    • Stomp::ack — Подтверждает получение сообщения
    • Stomp::begin — Создает транзакцию
    • Stomp::commit — Выполняет текущую транзакцию
    • Stomp::__construct — Открывает соединение
    • Stomp::__destruct — Закрывает Stomp-соединение
    • Stomp::error — Возвращает последнюю ошибку Stomp
    • Stomp::getReadTimeout — Возвращает время максимального ожидания операции чтения
    • Stomp::getSessionId — Возвращает идентификатор текущей сессии Stomp
    • Stomp::hasFrame — Проверяет, возможно ли чтение фрейма
    • Stomp::readFrame — Выполняет операцию чтения следующего фрейма
    • Stomp::send — Отправляет сообщение
    • Stomp::setReadTimeout — Устанавливает предельное время ожидания операции чтения
    • Stomp::subscribe — Регистрирует подписку на указанную рассылку
    • Stomp::unsubscribe — Удаляет существующую подписку
  • StompFrame — Класс StompFrame
    • StompFrame::__construct — Конструктор
  • StompException — Класс StompException
    • StompException::getDetails — Возвращает сведения об исключении


Введение

Модуль позволяет PHP приложениям взаимодействовать с любыми Stomp-совместимыми брокерами сообщений (Message Broker) через лёгкие объектно-ориентированные или процедурные интерфейсы. » Официальный сайт Stomp


Требования

Для PECL/stomp требуется PHP 5.2.2 или выше.

» OpenSSL >= 0.9.6 и модуль openssl может также потребоваться для использования stomp через SSL.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/stomp


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки
Имя | По умолчанию | Место изменения | Список изменений
stomp.default_broker | tcp://localhost:61613 | PHP_INI_ALL |
stomp.default_connection_timeout_sec | 2 | PHP_INI_ALL |
stomp.default_connection_timeout_usec | 0 | PHP_INI_ALL |
stomp.default_read_timeout_sec | 2 | PHP_INI_ALL |
stomp.default_read_timeout_usec | 0 | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

stomp.default_broker string

Брокер URI по умолчанию, используемый при подключении к брокеру сообщений, если прочие URI не указаны.

stomp.default_connection_timeout_sec integer

Секундная часть времени ожидания подключения по умолчанию.

stomp.default_connection_timeout_usec integer

Микросекундная часть времени ожидания подключения по умолчанию.

stomp.default_read_timeout_sec integer

Секундная часть времени ожидания операции чтения чтения по умолчанию.

stomp.default_read_timeout_usec integer

Микросекундная часть времени ожидания операции чтения по умолчанию.


Типы ресурсов

Существует только один тип ресурсов, используемый в модуле stomp - это идентификатор ссылки для stomp соединения.


Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$queue  = '/queue/foo';
$msg    = 'bar';

/* Подключение */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Ошибка подключения: ' . $e->getMessage());
}

/* Отправка сообщения в очередь 'foo' */
$stomp->send($queue, $msg);

/* Подписка к сообщениям в очереди 'foo' */
$stomp->subscribe($queue);

/* Чтение фрейма */
$frame = $stomp->readFrame();

if ($frame->body === $msg) {
    var_dump($frame);

    /* отклик, что сообщения было получено */
    $stomp->ack($frame);
}

/* Закрытие соединения */
unset($stomp);

?>

Результатом выполнения данного примера будет что-то подобное:

object(StompFrame)#2 (3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["headers"]=>
  array(5) {
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:2:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257226805828"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
  ["body"]=>
  string(3) "bar"
}

Пример #2 Процедурный стиль

<?php

$queue  = '/queue/foo';
$msg    = 'bar';

/* Подключение */
$link = stomp_connect('ssl://localhost:61612');

/* Проверка подключения */
if (!$link) {
    die('Ошибка подключения: ' . stomp_connect_error());
}

/* Начало транзакции */
stomp_begin($link, 't1');

/* Отправка сообщения в очередь 'foo' */
stomp_send($link, $queue, $msg, array('transaction' => 't1'));

/* Выполнение транзакции */
stomp_commit($link, 't1');

/* Подписка к сообщениям в очереди 'foo' */
stomp_subscribe($link, $queue);

/* Чтение фрейма */
$frame = stomp_read_frame($link);

if ($frame['body'] === $msg) {
    var_dump($frame);

    /* отклик, что сообщения было получено */
    stomp_ack($link, $frame['headers']['message-id']);
}

/* Закрытие соединения */
stomp_close($link);

?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["body"]=>
  string(3) "bar"
  ["headers"]=>
  array(6) {
    ["transaction"]=>
    string(2) "t1"
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:3:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257227037059"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
}


Stomp

Содержание

  • stomp_connect_error — Возвращает строку с описанием последней ошибки подключения
  • stomp_version — Возвращает текущую версию модуля Stomp


Возвращает строку с описанием последней ошибки подключения

  • « Stomp
  • stomp_version »
  • PHP Manual
  • Stomp
  • Возвращает строку с описанием последней ошибки подключения

stomp_connect_error

(PECL stomp >= 0.3.0)

stomp_connect_error — Возвращает строку с описанием последней ошибки подключения

Описание

stomp_connect_error ( void ) : string

Возвращает строку с описанием последней ошибки подключения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка с описанием ошибки, или NULL, если ошибки не произошло.

Примеры

Пример #1 Пример использования stomp_connect_error()

<?php
$link = stomp_connect('http://localhost:61613');

if(!$link) {
    die('Ошибка соединения: ' . stomp_connect_error());
}
?>

Результатом выполнения данного примера будет что-то подобное:

Ошибка соединения: Invalid Broker URI scheme


Возвращает текущую версию модуля Stomp

  • « stomp_connect_error
  • Stomp »
  • PHP Manual
  • Stomp
  • Возвращает текущую версию модуля Stomp

stomp_version

(PECL stomp >= 0.1.0)

stomp_version — Возвращает текущую версию модуля Stomp

Описание

stomp_version ( void ) : string

Возвращает строку, содержащую версию текущего модуля Stomp.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущую версию модуля Stomp

Примеры

Пример #1 Пример использования stomp_version()

<?php

var_dump(stomp_version());

?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "0.2.0"


Класс Stomp

(PECL stomp >= 0.1.0)

Введение

Представляет связь между PHP и Stomp совместимым брокером сообщений (Message Broker).

Обзор классов

Stomp {
/* Методы */
public abort ( string $transaction_id [, array $headers ] ) : bool
public ack ( mixed $msg [, array $headers ] ) : bool
public begin ( string $transaction_id [, array $headers ] ) : bool
public commit ( string $transaction_id [, array $headers ] ) : bool
public __construct ([ string $broker = ini_get("stomp.default_broker_uri") [, string $username [, string $password [, array $headers ]]]] )
public __destruct ( void ) : bool
public error ( void ) : string
public getReadTimeout ( void ) : array
public getSessionId ( void ) : string
public hasFrame ( void ) : bool
public readFrame ([ string $class_name = "stompFrame" ] ) : stompframe
public send ( string $destination , mixed $msg [, array $headers ] ) : bool
public setReadTimeout ( int $seconds [, int $microseconds ] ) : void
public subscribe ( string $destination [, array $headers ] ) : bool
public unsubscribe ( string $destination [, array $headers ] ) : bool
}

Содержание

  • Stomp::abort — Отменяет выполнение текущей транзакции
  • Stomp::ack — Подтверждает получение сообщения
  • Stomp::begin — Создает транзакцию
  • Stomp::commit — Выполняет текущую транзакцию
  • Stomp::__construct — Открывает соединение
  • Stomp::__destruct — Закрывает Stomp-соединение
  • Stomp::error — Возвращает последнюю ошибку Stomp
  • Stomp::getReadTimeout — Возвращает время максимального ожидания операции чтения
  • Stomp::getSessionId — Возвращает идентификатор текущей сессии Stomp
  • Stomp::hasFrame — Проверяет, возможно ли чтение фрейма
  • Stomp::readFrame — Выполняет операцию чтения следующего фрейма
  • Stomp::send — Отправляет сообщение
  • Stomp::setReadTimeout — Устанавливает предельное время ожидания операции чтения
  • Stomp::subscribe — Регистрирует подписку на указанную рассылку
  • Stomp::unsubscribe — Удаляет существующую подписку


Отменяет выполнение текущей транзакции

  • « Stomp
  • Stomp::ack »
  • PHP Manual
  • Stomp
  • Отменяет выполнение текущей транзакции

Stomp::abort

stomp_abort

(PECL stomp >= 0.1.0)

Stomp::abort -- stomp_abort — Отменяет выполнение текущей транзакции

Описание

Объектно-ориентированный стиль (метод):

public Stomp::abort ( string $transaction_id [, array $headers ] ) : bool

Процедурный стиль:

stomp_abort ( resource $link , string $transaction_id [, array $headers ] ) : bool

Отменяет выполнение текущей транзакции.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

transaction_id

Транзакция, которую нужно прервать.

headers

Ассоциативный массив, содержащий дополнительные заголовки (пример: receipt).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет достигнут таймаут сообщения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* подключение */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Ошибка соединения: ' . $e->getMessage());
}

/* начало транзакции */
$stomp->begin('t1');

/* отправка сообщения в очередь */
$stomp->send('/queue/foo', 'bar', array('transaction' => 't1'));

/* откат транзакции */
$stomp->abort('t1');

/* разрыв подключения */
unset($stomp);
?>

Пример #2 Процедурный стиль

<?php

/* подключение */
$link = stomp_connect('tcp://localhost:61613');

/* проверка подключения */
if (!$link) {
    die('Ошибка соединения: ' . stomp_connect_error());
}

/* начало транзакции */
stomp_begin($link, 't1');

/* отправка сообщения в очередь 'foo' */
stomp_send($link, '/queue/foo', 'bar', array('transaction' => 't1'));

/* откат транзакции */
stomp_abort($link, 't1');

/* разрыв подключения */
stomp_close($link);

?>


Подтверждает получение сообщения

  • « Stomp::abort
  • Stomp::begin »
  • PHP Manual
  • Stomp
  • Подтверждает получение сообщения

Stomp::ack

stomp_ack

(PECL stomp >= 0.1.0)

Stomp::ack -- stomp_ack — Подтверждает получение сообщения

Описание

Объектно-ориентированный стиль (метод):

public Stomp::ack ( mixed $msg [, array $headers ] ) : bool

Процедурный стиль:

stomp_ack ( resource $link , mixed $msg [, array $headers ] ) : bool

Подтверждает факт получения сообщения из очереди, используя подтверждение клиента.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

msg

Сообщение/идентификатор сообщения, получение которого должно быть подтверждено.

headers

Ассоциативный массив, содержащий дополнительные заголовки (пример: receipt).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Также может быть указан заголовок транзакции, означающий что прием сообщения должен являться частью именованной транзакции.

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет достигнут таймаут сообщения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$queue  = '/queue/foo';
$msg    = 'bar';

/* подключение */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Ошибка соединения: ' . $e->getMessage());
}

/* отправка сообщения в очередь 'foo' */
$stomp->send($queue, $msg);

/* подписка на сообщения из очереди 'foo' */
$stomp->subscribe($queue);

/* чтение фрейма */
$frame = $stomp->readFrame();

if ($frame->body === $msg) {
    /* подтверждение получения фрейма */
    $stomp->ack($frame);
}

/* отмена подписки к очереди */
$stomp->unsubscribe($queue);

/* закрытие подключения */
unset($stomp);

?>

Пример #2 Процедурный стиль

<?php

$queue  = '/queue/foo';
$msg    = 'bar';

/* подключение */
$link = stomp_connect('ssl://localhost:61612');

/* проверка соединения */
if (!$link) {
    die('Ошибка соединения: ' . stomp_connect_error());
}

/* начало транзакции */
stomp_begin($link, 't1');

/* отправка сообщения в очередь  'foo' */
stomp_send($link, $queue, $msg, array('transaction' => 't1'));

/* подтверждение транзакции */
stomp_commit($link, 't1');

/* подписка на сообщения из очереди 'foo' */
stomp_subscribe($link, $queue);

/* чтение фрейма */
$frame = stomp_read_frame($link);

if ($frame['body'] === $msg) {
    /* подтверждение получения фрейма */
    stomp_ack($link, $frame['headers']['message-id']);
}

/* отмена подписки к очереди */
stomp_unsubscribe($link, $queue);

/* закрытие подключения */
stomp_close($link);

?>


Создает транзакцию

  • « Stomp::ack
  • Stomp::commit »
  • PHP Manual
  • Stomp
  • Создает транзакцию

Stomp::begin

stomp_begin

(PECL stomp >= 0.1.0)

Stomp::begin -- stomp_begin — Создает транзакцию

Описание

Объектно-ориентированный стиль (метод):

public Stomp::begin ( string $transaction_id [, array $headers ] ) : bool

Процедурный стиль:

stomp_begin ( resource $link , string $transaction_id [, array $headers ] ) : bool

Создает транзакцию.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

transaction_id

Идентификатор транзакции.

headers

Ассоциативный массив, содержащий дополнительные заголовки (пример: receipt).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет достигнут таймаут сообщения.

Примеры

Смотрите stomp_commit() или stomp_abort().


Выполняет текущую транзакцию

  • « Stomp::begin
  • Stomp::__construct »
  • PHP Manual
  • Stomp
  • Выполняет текущую транзакцию

Stomp::commit

stomp_commit

(PECL stomp >= 0.1.0)

Stomp::commit -- stomp_commit — Выполняет текущую транзакцию

Описание

Объектно-ориентированный стиль (метод):

public Stomp::commit ( string $transaction_id [, array $headers ] ) : bool

Процедурный стиль:

stomp_commit ( resource $link , string $transaction_id [, array $headers ] ) : bool

Выполняет текущую транзакцию.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

transaction_id

Идентификатор транзакции.

headers

Ассоциативный массив, содержащий дополнительные заголовки (пример: receipt).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет достигнут таймаут сообщения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* подключение */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Ошибка соединения: ' . $e->getMessage());
}

/* Начало транзакции */
$stomp->begin('t1');

/* отправка сообщения в очередь */
$stomp->send('/queue/foo', 'bar', array('transaction' => 't1'));

/* выполнение транзакции */
$stomp->commit('t1');

/* закрытие подключения */
unset($stomp);

?>

Пример #2 Процедурный стиль

<?php

/* подключение */
$link = stomp_connect('tcp://localhost:61613');

/* проверка подключения */
if (!$link) {
    die('Ошибка соединения: ' . stomp_connect_error());
}

/* Начало транзакции */
stomp_begin($link, 't1');

/* Отправка сообщения в очередь 'foo' */
stomp_send($link, '/queue/foo', 'bar', array('transaction' => 't1'));

/* Выполнение транзакции */
stomp_commit($link, 't1');

/* Закрытие изменения */
stomp_close($link);

?>


Открывает соединение

  • « Stomp::commit
  • Stomp::__destruct »
  • PHP Manual
  • Stomp
  • Открывает соединение

Stomp::__construct

stomp_connect

(PECL stomp >= 0.1.0)

Stomp::__construct -- stomp_connect — Открывает соединение

Описание

Объектно-ориентированный стиль (конструктор):

public Stomp::__construct ([ string $broker = ini_get("stomp.default_broker_uri") [, string $username [, string $password [, array $headers ]]]] )

Процедурный стиль:

stomp_connect ([ string $broker = ini_get("stomp.default_broker_uri") [, string $username [, string $password [, array $headers ]]]] ) : resource

Открывает соединение к Stomp-совместимому брокеру сообщений (Message Broker).

Список параметров

broker

URI брокера

username

Имя пользователя

password

Пароль

headers

Ассоциативный массив, содержащий дополнительные заголовки (пример: receipt).

Возвращаемые значения

Замечание:

Также может быть указан заголовок транзакции, означающий что прием сообщения должен являться частью именованной транзакции.

Список изменений

Версия | Описание
1.0.1 | Добавлен параметр headers

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* подключение */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Ошибка соединения: ' . $e->getMessage());
}

/* закрытие соединения */
unset($stomp);

?>

Пример #2 Процедурный стиль

<?php

/* подключение */
$link = stomp_connect('ssl://localhost:61612');

/* проверка соединения */
if (!$link) {
    die('Ошибка соединения: ' . stomp_connect_error());
}

/* Закрытие соединения */
stomp_close($link);

?>


Закрывает Stomp-соединение

  • « Stomp::__construct
  • Stomp::error »
  • PHP Manual
  • Stomp
  • Закрывает Stomp-соединение

Stomp::__destruct

stomp_close

(PECL stomp >= 0.1.0)

Stomp::__destruct -- stomp_close — Закрывает Stomp-соединение

Описание

Объектно-ориентированный стиль (деструктор):

public Stomp::__destruct ( void ) : bool

Процедурный стиль:

stomp_close ( resource $link ) : bool

Закрывает ранее открытые соединения.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Смотрите stomp_connect().


Возвращает последнюю ошибку Stomp

  • « Stomp::__destruct
  • Stomp::getReadTimeout »
  • PHP Manual
  • Stomp
  • Возвращает последнюю ошибку Stomp

Stomp::error

stomp_error

(PECL stomp >= 0.1.0)

Stomp::error -- stomp_error — Возвращает последнюю ошибку Stomp

Описание

Объектно-ориентированный стиль (метод):

public Stomp::error ( void ) : string

Процедурный стиль:

stomp_error ( resource $link ) : string

Возвращает последнюю ошибку Stomp.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

Возвращаемые значения

Возвращает текст ошибки или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* подключение */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Ошибка соединения: ' . $e->getMessage());
}

var_dump($stomp->error());

if (!$stomp->abort('unknown-transaction', array('receipt' => 'foo'))) {
    var_dump($stomp->error());
}

/* Закрытие соединения */
unset($stomp);

?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
string(43) "Invalid transaction id: unknown-transaction"

Пример #2 Процедурный стиль

<?php

/* подключение */
$link = stomp_connect('ssl://localhost:61612');

/* проверка соединения */
if (!$link) {
    die('Ошибка соединения: ' . stomp_connect_error());
}

var_dump(stomp_error($link));

if (!stomp_abort($link, 'unknown-transaction', array('receipt' => 'foo'))) {
    var_dump(stomp_error($link));
}

/* закрытие соединения */
stomp_close($link);

?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
string(43) "Invalid transaction id: unknown-transaction"


Возвращает время максимального ожидания операции чтения

  • « Stomp::error
  • Stomp::getSessionId »
  • PHP Manual
  • Stomp
  • Возвращает время максимального ожидания операции чтения

Stomp::getReadTimeout

stomp_get_read_timeout

(PECL stomp >= 0.3.0)

Stomp::getReadTimeout -- stomp_get_read_timeout — Возвращает время максимального ожидания операции чтения

Описание

Объектно-ориентированный стиль (метод):

public Stomp::getReadTimeout ( void ) : array

Процедурный стиль:

stomp_get_read_timeout ( resource $link ) : array

Возвращает время максимального ожидания операции чтения

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

Возвращаемые значения

Возвращает массив с 2 элементами: sec и usec.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* подключение */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Ошибка соединения: ' . $e->getMessage());
}

var_dump($stomp->getReadTimeout());

/* закрытие соединения */
unset($stomp);

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["sec"]=>
  int(2)
  ["usec"]=>
  int(0)
}

Пример #2 Процедурный стиль

<?php

/* подключение */
$link = stomp_connect('ssl://localhost:61612');

/* проверка соединения */
if (!$link) {
    die('Ошибка соединения: ' . stomp_connect_error());
}

var_dump(stomp_get_read_timeout($link));

/* закрытие соединения */
stomp_close($link);

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["sec"]=>
  int(2)
  ["usec"]=>
  int(0)
}


Возвращает идентификатор текущей сессии Stomp

  • « Stomp::getReadTimeout
  • Stomp::hasFrame »
  • PHP Manual
  • Stomp
  • Возвращает идентификатор текущей сессии Stomp

Stomp::getSessionId

stomp_get_session_id

(PECL stomp >= 0.1.0)

Stomp::getSessionId -- stomp_get_session_id — Возвращает идентификатор текущей сессии Stomp

Описание

Объектно-ориентированный стиль (метод):

public Stomp::getSessionId ( void ) : string

Процедурный стиль:

stomp_get_session_id ( resource $link ) : string

Возвращает идентификатор текущей сессии Stomp.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

Возвращаемые значения

Идентификатор сессии (string) в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* подключение */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Ошибка соединения: ' . $e->getMessage());
}

var_dump($stomp->getSessionId());

/* закрытие подключения */
unset($stomp);

?>

Результатом выполнения данного примера будет что-то подобное:

string(35) "ID:php.net-52873-1257291895530-4:14"

Пример #2 Процедурный стиль

<?php

/* подключение */
$link = stomp_connect('ssl://localhost:61612');

/* проверка соединения */
if (!$link) {
    die('Ошибка соединения: ' . stomp_connect_error());
}

var_dump(stomp_get_session_id($link));

/* закрытие подключения */
stomp_close($link);

?>

Результатом выполнения данного примера будет что-то подобное:

string(35) "ID:php.net-52873-1257291895530-4:14"


Проверяет, возможно ли чтение фрейма

  • « Stomp::getSessionId
  • Stomp::readFrame »
  • PHP Manual
  • Stomp
  • Проверяет, возможно ли чтение фрейма

Stomp::hasFrame

stomp_has_frame

(PECL stomp >= 0.1.0)

Stomp::hasFrame -- stomp_has_frame — Проверяет, возможно ли чтение фрейма

Описание

Объектно-ориентированный стиль (метод):

public Stomp::hasFrame ( void ) : bool

Процедурный стиль:

stomp_has_frame ( resource $link ) : bool

Проверяет, возможно ли чтение фрейма.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

Возвращаемые значения

Возвращает TRUE если фрейм возможно прочитать, иначе FALSE.


Выполняет операцию чтения следующего фрейма

  • « Stomp::hasFrame
  • Stomp::send »
  • PHP Manual
  • Stomp
  • Выполняет операцию чтения следующего фрейма

Stomp::readFrame

stomp_read_frame

(PECL stomp >= 0.1.0)

Stomp::readFrame -- stomp_read_frame — Выполняет операцию чтения следующего фрейма

Описание

Объектно-ориентированный стиль (метод):

public Stomp::readFrame ([ string $class_name = "stompFrame" ] ) : stompframe

Процедурный стиль:

stomp_read_frame ( resource $link ) : array

Выполняет операцию чтения следующего фрейма. Если возможно, то создаёт экземпляр указанного класса и передаёт параметры конструктору этого класса.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

class_name

Имя класса для создания экземпляра. Если не указан, возвращается объект stompFrame.

Возвращаемые значения

Замечание:

Также может быть указан заголовок транзакции, означающий что прием сообщения должен являться частью именованной транзакции.

Список изменений

Версия | Описание
Stomp 0.4.0 | Добавлен параметр class_name.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* подключение */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Ошибка соединения: ' . $e->getMessage());
}

/* подписка на сообщения из очереди 'foo' */
$stomp->subscribe('/queue/foo');

/* чтение фрейма */
var_dump($stomp->readFrame());

/* закрытие подключения */
unset($stomp);

?>

Результатом выполнения данного примера будет что-то подобное:

object(StompFrame)#2 (3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["headers"]=>
  array(5) {
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:2:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257226805828"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
  ["body"]=>
  string(3) "bar"
}

Пример #2 Процедурный стиль

<?php

/* подключение */
$link = stomp_connect('ssl://localhost:61612');

/* проверка соединения */
if (!$link) {
    die('Ошибка соединения: ' . stomp_connect_error());
}

/* подписка на сообщения из очереди 'foo' */
stomp_subscribe($link, '/queue/foo');

/* чтение фрейма */
$frame = stomp_read_frame($link);

/* закрытие подключения */
stomp_close($link);

?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["body"]=>
  string(3) "bar"
  ["headers"]=>
  array(6) {
    ["transaction"]=>
    string(2) "t1"
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:3:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257227037059"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
}


Отправляет сообщение

  • « Stomp::readFrame
  • Stomp::setReadTimeout »
  • PHP Manual
  • Stomp
  • Отправляет сообщение

Stomp::send

stomp_send

(PECL stomp >= 0.1.0)

Stomp::send -- stomp_send — Отправляет сообщение

Описание

Объектно-ориентированный стиль (метод):

public Stomp::send ( string $destination , mixed $msg [, array $headers ] ) : bool

Процедурный стиль:

stomp_send ( resource $link , string $destination , mixed $msg [, array $headers ] ) : bool

Отправляет сообщение брокеру сообщений (Message Broker).

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

destination

Назначение для отправки сообщения.

msg

Сообщение для отправки.

headers

Ассоциативный массив, содержащий дополнительные заголовки (пример: receipt).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Также может быть указан заголовок транзакции, означающий что прием сообщения должен являться частью именованной транзакции.

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет достигнут таймаут сообщения.

Примеры

Смотрите stomp_ack().


Устанавливает предельное время ожидания операции чтения

  • « Stomp::send
  • Stomp::subscribe »
  • PHP Manual
  • Stomp
  • Устанавливает предельное время ожидания операции чтения

Stomp::setReadTimeout

stomp_set_read_timeout

(PECL stomp >= 0.3.0)

Stomp::setReadTimeout -- stomp_set_read_timeout — Устанавливает предельное время ожидания операции чтения

Описание

Объектно-ориентированный стиль (метод):

public Stomp::setReadTimeout ( int $seconds [, int $microseconds ] ) : void

Процедурный стиль:

stomp_set_read_timeout ( resource $link , int $seconds [, int $microseconds ] ) : void

Устанавливает предельное время ожидания операции чтения.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

seconds

Секундная часть времени ожидания операции.

microseconds

Микросекундная времени ожидания операции.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* подключение */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Ошибка соединения: ' . $e->getMessage());
}

$stomp->setReadTimeout(10);

/* закрытие подключения */
unset($stomp);

?>

Пример #2 Процедурный стиль

<?php

/* подключение */
$link = stomp_connect('ssl://localhost:61612');

/* проверка соединения */
if (!$link) {
    die('Ошибка подключения: ' . stomp_connect_error());
}

stomp_set_read_timeout($link, 10);

/* закрытие подключения */
stomp_close($link);

?>


Регистрирует подписку на указанную рассылку

  • « Stomp::setReadTimeout
  • Stomp::unsubscribe »
  • PHP Manual
  • Stomp
  • Регистрирует подписку на указанную рассылку

Stomp::subscribe

stomp_subscribe

(PECL stomp >= 0.1.0)

Stomp::subscribe -- stomp_subscribe — Регистрирует подписку на указанную рассылку

Описание

Объектно-ориентированный стиль (метод):

public Stomp::subscribe ( string $destination [, array $headers ] ) : bool

Процедурный стиль:

stomp_subscribe ( resource $link , string $destination [, array $headers ] ) : bool

Регистрирует подписку на указанную рассылку.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

destination

Рассылка, на которую необходимо зарегистрировать подписку.

headers

Ассоциативный массив, содержащий дополнительные заголовки (пример: receipt).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет достигнут таймаут сообщения.

Примеры

Смотрите stomp_ack().


Удаляет существующую подписку

  • « Stomp::subscribe
  • StompFrame »
  • PHP Manual
  • Stomp
  • Удаляет существующую подписку

Stomp::unsubscribe

stomp_unsubscribe

(PECL stomp >= 0.1.0)

Stomp::unsubscribe -- stomp_unsubscribe — Удаляет существующую подписку

Описание

Объектно-ориентированный стиль (метод):

public Stomp::unsubscribe ( string $destination [, array $headers ] ) : bool

Процедурный стиль:

stomp_unsubscribe ( resource $link , string $destination [, array $headers ] ) : bool

Удаляет существующую подписку.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

destination

Подписка для удаления.

headers

Ассоциативный массив, содержащий дополнительные заголовки (пример: receipt).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет достигнут таймаут сообщения.

Примеры

Смотрите stomp_ack().


Класс StompFrame

(PECL stomp >= 0.1.0)

Введение

Представляет сообщение, которое было отправлено или получено от Stomp-совместимого брокера сообщений (Message Broker).

Обзор классов

StompFrame {
/* Свойства */
public $command ;
public $headers ;
public $body ;
/* Методы */
__construct ([ string $command [, array $headers [, string $body ]]] )
}

Свойства

command

Команда фрейма.

headers

Заголовки фрейма (array).

body

Тело фрейма.

Содержание

  • StompFrame::__construct — Конструктор


Конструктор

  • « StompFrame
  • StompException »
  • PHP Manual
  • StompFrame
  • Конструктор

StompFrame::__construct

(PECL stomp >= 0.1.0)

StompFrame::__construct — Конструктор

Описание

StompFrame::__construct ([ string $command [, array $headers [, string $body ]]] )

Конструктор.

Список параметров

command

Команда фрейма.

headers

Заголовки фрейма (array).

body

Тело фрейма.


Класс StompException

(PECL stomp >= 0.1.0)

Введение

Представляет ошибку, вызванную модулем Stomp. Смотрите Исключения для получения подробной информации об исключениях в PHP.

Обзор классов

StompException extends Exception {
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
/* Методы */
public getDetails ( void ) : string
}

Содержание

  • StompException::getDetails — Возвращает сведения об исключении


Возвращает сведения об исключении

  • « StompException
  • SVM »
  • PHP Manual
  • StompException
  • Возвращает сведения об исключении

StompException::getDetails

(PECL stomp >= 0.1.0)

StompException::getDetails — Возвращает сведения об исключении

Описание

public StompException::getDetails ( void ) : string

Получает сведения об исключении.

Возвращаемые значения

Строка (string), содержащая описание ошибки.


Support Vector Machine (Вспомогательная векторная машина)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Примеры
  • SVM — Класс SVM
    • SVM::__construct — Конструктор класса SVM
    • SVM::crossvalidate — Тестирование обучающих параметров на подмножествах обучающих данных
    • SVM::getOptions — Получить текущие параметры обучения
    • SVM::setOptions — Установить параметры обучения
    • SVM::train — Создать SVMModel на основе обучающих данных
  • SVMModel — Класс SVMModel
    • SVMModel::checkProbabilityModel — Возвращает true, если модель содержит информацию о вероятностях
    • SVMModel::__construct — Конструктор класса SVMModel
    • SVMModel::getLabels — Возвращает метки, на которых обучалась модель
    • SVMModel::getNrClass — Возвращает количество классов, для которых обучалась модель
    • SVMModel::getSvmType — Получить тип SVM, с которым обучалась модель
    • SVMModel::getSvrProbability — Получить величину сигмы для регрессионного типа
    • SVMModel::load — Загружает сохраненную модель SVM
    • SVMModel::predict_probability — Возвращает вероятность класса для заданных данных
    • SVMModel::predict — Предсказать значение на основе новых данных
    • SVMModel::save — Сохранить готовую модель в файл


Введение

LibSVM - это эффективное решение для проблем классификации и регрессии SVM. Модуль svm обертывает это в интерфейс PHP для простого использования в скриптах PHP.


Требования

Требуется, собственно, сам Libsvm и его разработческий пакет: для систем использующих RPM он называется libsvm-devel, а для систем на базе Debian - libsvm-dev. Или же можете загрузить напрямую с веб-сайта. Если устанавливаете с » официального веб-сайта, надо будет произвести некоторые действия, так как пакет самостоятельно не устанавливается. Например, для установки последней версии (3.1):

wget http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/libsvm.cgi?+http://www.csie.ntu.edu.tw/~cjlin/libsvm+tar.gz
tar xvzf libsvm-3.1.tar.gz
cd libsvm-3.1
make lib
cp libsvm.so.1 /usr/lib
ln -s libsvm.so.1 libsvm.so
ldconfig
ldconfig --print | grep libsvm

На последнем шаге будет выведено местоположение установленного libsvm.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/svm


Примеры

Процесс довольно прост: задаем параметры, предоставляем обучающие данные, на основе которых будет создана модель, а затем делаем прогнозы, основанные на этой модели. Набор параметров по умолчанию гарантирует получение хоть какого-то результата практически для любых входных данных, так что на нем останавливаться не будем и сразу перейдем к обучающим данным.

Есть три пути предоставления обучающих данных: файл, поток и массив. Если данные предоставляются с помощью файла или потока, то на каждой строке должен содержаться один обучающий пример, отформатированный следующим образом: в начале должно быть целое число (обычно 1 или -1), это число обозначается термином "класс", а следом за ним перечисление пар признак:значение в порядке увеличения признака. Признаки должны быть целыми числами, а их значения рациональными, обычно на диапазоне 0-1. Например:

-1 1:0.43 3:0.12 9284:0.2

В проблеме классификации документов, например, при проверке письма на спам, каждая строка должна представлять один документ. Для задачи проверки на спам нам понадобится два класса, -1 для спама и 1 для нормального письма. Каждый признак должен означать некое слово, а его значение - важность данного слова в документе (возможно, частота появления относительно длины элемента). Признаки со значением 0 (т.е. слово в документе не встречается) просто не включаем в набор.

В случае использования массива, данные должны быть представлены в виде массива массивов, в котором каждый вложенный массив должен первым элементом содержать класс, а все последующие элементы содержать пары "признак" => "значение".

Эти данные передаются обучающей функции класса SVM, которая в результате вернет модель (SVMModel).

Созданная модель может использоваться для построения предположений о классе новых объектов, описанных признаками и их значениями. Данные, на основе которых делаются предположения, должны быть переданы функции модели в том же формате, что описан выше, но без указания их класса (т.е. без первого элемента), которая вернет предполагаемый класс, подходящий под эти данные.

Модель впоследствии можно сохранять и загружать с помощью функций, принимающих путь к файлу в качестве параметра.

Пример #1 Обучение из массива

<?php
$data = array(
    array(-1, 1 => 0.43, 3 => 0.12, 9284 => 0.2),
    array(1, 1 => 0.22, 5 => 0.01, 94 => 0.11),
);

$svm = new SVM();
$model = $svm->train($data);

$data = array(1 => 0.43, 3 => 0.12, 9284 => 0.2);
$result = $model->predict($data);
var_dump($result);
$model->save('model.svm');
?>

Результатом выполнения данного примера будет что-то подобное:

int(-1)

Пример #2 Обучение из файла

<?php
$svm = new SVM();
$model = $svm->train("traindata.txt");
?>


Класс SVM

(PECL svm >= 0.1.0)

Введение

Обзор классов

SVM {
/* Константы */
const integer C_SVC = 0 ;
const integer NU_SVC = 1 ;
const integer ONE_CLASS = 2 ;
const integer EPSILON_SVR = 3 ;
const integer NU_SVR = 4 ;
const integer KERNEL_LINEAR = 0 ;
const integer KERNEL_POLY = 1 ;
const integer KERNEL_RBF = 2 ;
const integer KERNEL_SIGMOID = 3 ;
const integer KERNEL_PRECOMPUTED = 4 ;
const integer OPT_TYPE = 101 ;
const integer OPT_KERNEL_TYPE = 102 ;
const integer OPT_DEGREE = 103 ;
const integer OPT_SHRINKING = 104 ;
const integer OPT_PROPABILITY = 105 ;
const integer OPT_GAMMA = 201 ;
const integer OPT_NU = 202 ;
const integer OPT_EPS = 203 ;
const integer OPT_P = 204 ;
const integer OPT_COEF_ZERO = 205 ;
const integer OPT_C = 206 ;
const integer OPT_CACHE_SIZE = 207 ;
/* Методы */
public __construct ( void )
public svm::crossvalidate ( array $problem , int $number_of_folds ) : float
public getOptions ( void ) : array
public setOptions ( array $params ) : bool
public svm::train ( array $problem [, array $weights ] ) : SVMModel
}

Предопределенные константы

Константы SVM

SVM::C_SVC

Базовый тип SVM. Тип по умолчанию, хорош для начала.

SVM::NU_SVC

Тип NU_SVC использует другой, более гибкий подход к развесовке ошибок.

SVM::ONE_CLASS

Одноклассовая модель. Тренирует только на одном классе, используя "выпадающие" данные в качестве отрицательных примеров

SVM::EPSILON_SVR

Тип для регрессии (прогнозирование значения, а не просто класса)

SVM::NU_SVR

Тип регрессии SVM в стиле NU

SVM::KERNEL_LINEAR

Очень простое ядро, которое хорошо работает для классификации проблем больших документов

SVM::KERNEL_POLY

Полиноминальное ядро

SVM::KERNEL_RBF

Стандартное Гауссово RBD ядро. Хорошо обрабатывает нелинейные проблемы и является хорошим значением по умолчанию для классификации

SVM::KERNEL_SIGMOID

Ядро базирующееся на сигмоидной функции. Очень похоже на использование двухуровневой сигмоидной нейронной сети

SVM::KERNEL_PRECOMPUTED

Предварительно вычесленное ядро - сейчас не поддерживается

SVM::OPT_TYPE

Опциональный ключ для типа SVM

SVM::OPT_KERNEL_TYPE

Опциональный ключ для типа ядра

SVM::OPT_DEGREE

SVM::OPT_SHRINKING

Параметр обучения, логическое значение, определяющий использование сокращающей эвристики

SVM::OPT_PROBABILITY

Параметр обучения, логическое значение, определяющий, будут ли собираться и использоваться оценки вероятности

SVM::OPT_GAMMA

Параметр алгоритма для следующих типов ядра: Полиноминальное, RBF и Сигмоидное

SVM::OPT_NU

Опциональный ключ для параметра nu. Используется только с типами NU_ SVM

SVM::OPT_EPS

Опциональный ключ для параметра Epsilon. Используется только в Эпсилон-регрессии

SVM::OPT_P

Обучающий параметр для Эпсилон-регрессии SVR

SVM::OPT_COEF_ZERO

Параметр алгоритма для полиноминального и сигмоидного ядра

SVM::OPT_C

Опция для параметра стоимости, контролирующего компромисс между ошибками и неопределенностями - фактически штраф за ошибочную классификацию обучающих примеров.

SVM::OPT_CACHE_SIZE

Размер кеша в памяти в мегабайтах

Содержание

  • SVM::__construct — Конструктор класса SVM
  • SVM::crossvalidate — Тестирование обучающих параметров на подмножествах обучающих данных
  • SVM::getOptions — Получить текущие параметры обучения
  • SVM::setOptions — Установить параметры обучения
  • SVM::train — Создать SVMModel на основе обучающих данных


Конструктор класса SVM

  • « SVM
  • SVM::crossvalidate »
  • PHP Manual
  • SVM
  • Конструктор класса SVM

SVM::__construct

(PECL svm >= 0.1.0)

SVM::__construct — Конструктор класса SVM

Описание

public SVM::__construct ( void )

Создает новый объект SVM, готовый к приему обучающих данных.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Выбрасывает SVMException, если не может быть загружена библиотека libsvm


Тестирование обучающих параметров на подмножествах обучающих данных

  • « SVM::__construct
  • SVM::getOptions »
  • PHP Manual
  • SVM
  • Тестирование обучающих параметров на подмножествах обучающих данных

SVM::crossvalidate

(PECL svm >= 0.1.0)

SVM::crossvalidate — Тестирование обучающих параметров на подмножествах обучающих данных

Описание

public svm::crossvalidate ( array $problem , int $number_of_folds ) : float

Перекрестная проверка может быть использована для проверки эффективности текущего набора параметров для подмножествах обучающих данных. Заданы набор данных по проблеме и количество "сверток", фактически означающее на сколько подмножеств делить заданный набор, чтобы в цикле обучаться на одном подмножестве и тестироваться на другом. В целом точность будет ниже, чем при обучении на полном наборе данных, но возвращаемая оценка будет полезна для сравнения качества обучения с использованием разных параметров.

Список параметров

problem

Данные по проблеме. Могут быть как массивом, так и ссылкой на файл в формате SVMLight или на поток, предоставляющий источник данных в формате SVMLight.

number_of_folds

Количество подмножеств, на которые будет разделен общих набор обучающих данных. Чем больше это число, тем более короткими и менее надежными будут обучающие наборы. Хорошее число для начала - 5.

Возвращаемые значения

Процент корректной классификации в виде числа в диапазоне от 0 до 1. В случае ядер NU_SVC и EPSILON_SVR будет возвращена среднеквадратичная ошибка.

Смотрите также

  • SVM::train() - Создать SVMModel на основе обучающих данных


Получить текущие параметры обучения

  • « SVM::crossvalidate
  • SVM::setOptions »
  • PHP Manual
  • SVM
  • Получить текущие параметры обучения

SVM::getOptions

(PECL svm >= 0.1.0)

SVM::getOptions — Получить текущие параметры обучения

Описание

public SVM::getOptions ( void ) : array

Возвращает массив, содержащий параметры обучения. В качестве ключей используются значения предопределенных констант SVM.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий параметры обучения.


Установить параметры обучения

  • « SVM::getOptions
  • SVM::train »
  • PHP Manual
  • SVM
  • Установить параметры обучения

SVM::setOptions

(PECL svm >= 0.1.0)

SVM::setOptions — Установить параметры обучения

Описание

public SVM::setOptions ( array $params ) : bool

Устанавливает один или несколько параметров обучения.

Список параметров

params

Массив параметров обучения, где в качестве ключей используются константы SVM.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, в случае возникновения ошибки выбрасывает SVMException.


Создать SVMModel на основе обучающих данных

  • « SVM::setOptions
  • SVMModel »
  • PHP Manual
  • SVM
  • Создать SVMModel на основе обучающих данных

SVM::train

(PECL svm >= 0.1.0)

SVM::train — Создать SVMModel на основе обучающих данных

Описание

public svm::train ( array $problem [, array $weights ] ) : SVMModel

Создает SVMModel на основе обучающих данных.

Список параметров

problem

Есть три пути предоставления обучающих данных: файл, поток и массив. Если данные предоставляются с помощью файла или потока, то на каждой строке должен содержаться один обучающий пример, отформатированный следующим образом: в начале должно быть целое число (обычно 1 или -1), это число обозначается термином "класс", а следом за ним перечисление пар признак:значение в порядке увеличения признака. Признаки должны быть целыми числами, а их значения рациональными, обычно на диапазоне 0-1. В случае использования массива, данные должны быть представлены в виде массива массивов, в котором каждый вложенный массив должен первым элементом содержать класс, а все последующие элементы содержать пары "признак" => "значение".

weights

Необязательный набор весовых коэффициентов для разных классов, помогающие работать с несбалансированными обучающими наборами. К примеру, если у нас два класса, 1 и -1, и обучающих примеров для класса -1 сильно больше, то вес для -1 надо выставить равным 0.5. Вес должен быть в диапазон от 0 до 1.

Возвращаемые значения

Возвращает объект класса SVMModel. В случае возникновения ошибки выбрасывает SVMException


Класс SVMModel

(PECL svm >= 0.1.0)

Введение

SVMModel - это конечный результат процесса обучения. Он может быть использован для классификации ранее неизвестных данных.

Обзор классов

SVMModel {
/* Методы */
public checkProbabilityModel ( void ) : bool
public __construct ([ string $filename ] )
public getLabels ( void ) : array
public getNrClass ( void ) : int
public getSvmType ( void ) : int
public getSvrProbability ( void ) : float
public load ( string $filename ) : bool
public predict_probability ( array $data ) : float
public predict ( array $data ) : float
public save ( string $filename ) : bool
}

Содержание

  • SVMModel::checkProbabilityModel — Возвращает true, если модель содержит информацию о вероятностях
  • SVMModel::__construct — Конструктор класса SVMModel
  • SVMModel::getLabels — Возвращает метки, на которых обучалась модель
  • SVMModel::getNrClass — Возвращает количество классов, для которых обучалась модель
  • SVMModel::getSvmType — Получить тип SVM, с которым обучалась модель
  • SVMModel::getSvrProbability — Получить величину сигмы для регрессионного типа
  • SVMModel::load — Загружает сохраненную модель SVM
  • SVMModel::predict_probability — Возвращает вероятность класса для заданных данных
  • SVMModel::predict — Предсказать значение на основе новых данных
  • SVMModel::save — Сохранить готовую модель в файл


Возвращает true, если модель содержит информацию о вероятностях

  • « SVMModel
  • SVMModel::__construct »
  • PHP Manual
  • SVMModel
  • Возвращает true, если модель содержит информацию о вероятностях

SVMModel::checkProbabilityModel

(PECL svm >= 0.1.5)

SVMModel::checkProbabilityModel — Возвращает true, если модель содержит информацию о вероятностях

Описание

public SVMModel::checkProbabilityModel ( void ) : bool

Возвращает TRUE, если модель содержит информацию о вероятностях.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает логическое значение


Конструктор класса SVMModel

  • « SVMModel::checkProbabilityModel
  • SVMModel::getLabels »
  • PHP Manual
  • SVMModel
  • Конструктор класса SVMModel

SVMModel::__construct

(PECL svm >= 0.1.0)

SVMModel::__construct — Конструктор класса SVMModel

Описание

public SVMModel::__construct ([ string $filename ] )

Создает объект класса SVMModel. Обычно модели создаются методом SVM::train, но сохраненные модели можно восстановить напрямую.

Список параметров

filename

Имя файла, в котором сохранена модель.

Возвращаемые значения

Выбрасывает исключение SVMException в случае возникновения ошибки

Смотрите также

  • SVMModel::load() - Загружает сохраненную модель SVM


Возвращает метки, на которых обучалась модель

  • « SVMModel::__construct
  • SVMModel::getNrClass »
  • PHP Manual
  • SVMModel
  • Возвращает метки, на которых обучалась модель

SVMModel::getLabels

(PECL svm >= 0.1.5)

SVMModel::getLabels — Возвращает метки, на которых обучалась модель

Описание

public SVMModel::getLabels ( void ) : array

Возвращает массив меток (классов), на которых была обучена модель. Для регрессивной и одноклассовой модели возвращается пустой массив.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив меток

Смотрите также

  • SVMModel::getNrClass() - Возвращает количество классов, для которых обучалась модель


Возвращает количество классов, для которых обучалась модель

  • « SVMModel::getLabels
  • SVMModel::getSvmType »
  • PHP Manual
  • SVMModel
  • Возвращает количество классов, для которых обучалась модель

SVMModel::getNrClass

(PECL svm >= 0.1.5)

SVMModel::getNrClass — Возвращает количество классов, для которых обучалась модель

Описание

public SVMModel::getNrClass ( void ) : int

Возвращает количество классов, для которых обучалась модель. Для одноклассовой и регрессивной моделей вернет 2.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число


Получить тип SVM, с которым обучалась модель

  • « SVMModel::getNrClass
  • SVMModel::getSvrProbability »
  • PHP Manual
  • SVMModel
  • Получить тип SVM, с которым обучалась модель

SVMModel::getSvmType

(PECL svm >= 0.1.5)

SVMModel::getSvmType — Получить тип SVM, с которым обучалась модель

Описание

public SVMModel::getSvmType ( void ) : int

Возвращает целое число, представляющее одну из констант класса SVM. Например SVM::C_SVC.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число


Получить величину сигмы для регрессионного типа

  • « SVMModel::getSvmType
  • SVMModel::load »
  • PHP Manual
  • SVMModel
  • Получить величину сигмы для регрессионного типа

SVMModel::getSvrProbability

(PECL svm >= 0.1.5)

SVMModel::getSvrProbability — Получить величину сигмы для регрессионного типа

Описание

public SVMModel::getSvrProbability ( void ) : float

Возвращает значение сигмы для регрессионных моделей. Если информация по вероятности отсутствует или модель не SVR, то возвратит 0.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает величину сигмы


Загружает сохраненную модель SVM

  • « SVMModel::getSvrProbability
  • SVMModel::predict_probability »
  • PHP Manual
  • SVMModel
  • Загружает сохраненную модель SVM

SVMModel::load

(PECL svm >= 0.1.00.1.0)

SVMModel::load — Загружает сохраненную модель SVM

Описание

public SVMModel::load ( string $filename ) : bool

Загружает сохраненную модель SVM из файла, готовую к классификации и регрессу.

Список параметров

filename

Имя файла для загрузки.

Возвращаемые значения

В случае возникновения ошибки выбрасывает SVMException. В случае успешного выполнения возвращает TRUE.

Смотрите также

  • SVMModel::save() - Сохранить готовую модель в файл


Возвращает вероятность класса для заданных данных

  • « SVMModel::load
  • SVMModel::predict »
  • PHP Manual
  • SVMModel
  • Возвращает вероятность класса для заданных данных

SVMModel::predict_probability

(PECL svm >= 0.1.4)

SVMModel::predict_probability — Возвращает вероятность класса для заданных данных

Описание

public SVMModel::predict_probability ( array $data ) : float

Функция принимает массив данных и пытается предсказать класс, как и функция предсказания. Однако, дополнительно функция возвратит массив вероятностей, по одной на класс в модели, которая представляет вероятность того, что данные принадлежат именно к этому классу. Работает только если модель обучалась с параметром веростности установленном в TRUE.

Список параметров

data

Данные для классификации. Массив молжен содержать элементы в формате "признак" => "значение", отсортированный по возрастанию признака. Признаки не обязательно должны представлять собой непрерывную последовательность.

probabilities

Заданная переменная будет заполнена вероятностями. Если модель обучалась без параметра вероятности, будет возвращен NULL. Созданный массив будет содержать в качестве ключей метки классов, а в качестве значений - значения вероятности.

Возвращаемые значения

Прогнозируемое значение типа float. В случае классификации оно будет отражать метку класса, а в случае регрессии - рациональное число. В случае возникновения ошибки выбрасывает SVMException

Смотрите также

  • SVM::predict()


Предсказать значение на основе новых данных

  • « SVMModel::predict_probability
  • SVMModel::save »
  • PHP Manual
  • SVMModel
  • Предсказать значение на основе новых данных

SVMModel::predict

(PECL svm >= 0.1.0)

SVMModel::predict — Предсказать значение на основе новых данных

Описание

public SVMModel::predict ( array $data ) : float

Функция принимает массив данных и пытается предсказать класс или величину регрессии основываясь на модели, обученной на предыдущих данных.

Список параметров

data

Данные для классификации. Массив молжен содержать элементы в формате "признак" => "значение", отсортированный по возрастанию признака. Признаки не обязательно должны представлять собой непрерывную последовательность.

Возвращаемые значения

Прогнозируемое значение типа float. В случае классификации оно будет отражать метку класса, а в случае регрессии - рациональное число. В случае возникновения ошибки выбрасывает SVMException

Смотрите также

  • SVM::train() - Создать SVMModel на основе обучающих данных


Сохранить готовую модель в файл

  • « SVMModel::predict
  • SVN »
  • PHP Manual
  • SVMModel
  • Сохранить готовую модель в файл

SVMModel::save

(PECL svm >= 0.1.0)

SVMModel::save — Сохранить готовую модель в файл

Описание

public SVMModel::save ( string $filename ) : bool

Сохраняет готовую модель в файл.

Список параметров

filename

Имя файла для сохранения модели.

Возвращаемые значения

В случае возникновения ошибки выбрасывает SVMException. В случае успешного выполнения возвращает TRUE.

Смотрите также

  • SVMModel::load() - Загружает сохраненную модель SVM


Subversion

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции SVN
    • svn_add — Добавляет элементы в список запланированных для добавления в рабочую копию
    • svn_auth_get_parameter — Возвращает параметр аутентификации
    • svn_auth_set_parameter — Устанавливает параметр аутентификации
    • svn_blame — Построчно выводит автора и редакцию для файла
    • svn_cat — Возвращает содержимое файла в репозитории
    • svn_checkout — Получает рабочую копию из репозитория
    • svn_cleanup — Рекурсивно очищает рабочую копию директории, завершает незаконченные операции и снимает блокировки
    • svn_client_version — Возвращает версию клиентских библиотек SVN
    • svn_commit — Отправляет изменения из рабочей директории в репозиторий
    • svn_delete — Удаляет элементы из рабочей копии или репозитория
    • svn_diff — Рекурсивно показывает различия двух файлов
    • svn_export — Экспортирует содержимое директории SVN
    • svn_fs_abort_txn — Отменяет транзакцию, возвращает TRUE, если отмена прошла успешно или FALSE в противном случае
    • svn_fs_apply_text — Создает и возвращает поток, который будет использован для замены
    • svn_fs_begin_txn2 — Создает новую транзакцию
    • svn_fs_change_node_prop — Возвращает TRUE, если операция прошла успешно или FALSE в противном случае
    • svn_fs_check_path — Определяет, какая сущность находится в пути репозитория fsroot
    • svn_fs_contents_changed — Возвращает TRUE, если содержимое отличается или FALSE в противном случае
    • svn_fs_copy — Копирует файл или директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае
    • svn_fs_delete — Удаляет файл или директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае
    • svn_fs_dir_entries — Перечисляет элементы директории по заданному пути; возвращает хеш имен директорий и типов файлов
    • svn_fs_file_contents — Возвращает поток для доступа к содержимому файла из данной файловой системы
    • svn_fs_file_length — Возвращает длину файла из данной файловой системы
    • svn_fs_is_dir — Возвращает TRUE, если по данному пути находится директория или FALSE в противном случае
    • svn_fs_is_file — Возвращает TRUE, если по данному пути находится файл или FALSE в противном случае
    • svn_fs_make_dir — Создает новую пустую директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае
    • svn_fs_make_file — Создает новый пустой файл, возвращает TRUE, если операция прошла успешно или FALSE в противном случае
    • svn_fs_node_created_rev — Возвращает номер ревизии, когда был создан путь в файловой системе
    • svn_fs_node_prop — Возвращает значение свойства для узла
    • svn_fs_props_changed — Возвращает TRUE, если свойства разные или FALSE в противном случае
    • svn_fs_revision_prop — Возвращает значение данного свойства
    • svn_fs_revision_root — Возвращает дескриптор определенной версии корневой директории репозитория
    • svn_fs_txn_root — Создает и возвращает корень транзакции
    • svn_fs_youngest_rev — Возвращает номер самой ранней ревизии в файловой системе
    • svn_import — Импорт пути без версии в репозитории
    • svn_log — Возвращает комментарии к правкам в репозитории
    • svn_ls — Возвращает список содержимого директории репозитория URL, опционально для конкретной ревизии
    • svn_mkdir — Создает директорию в рабочей копии или в репозитории
    • svn_repos_create — Создание нового репозитория Subversion
    • svn_repos_fs_begin_txn_for_commit — Создание новой транзакции
    • svn_repos_fs_commit_txn — Отправка транзакции и возвращение номера ревизии
    • svn_repos_fs — Возвращает дескриптор файловой системы для репозитория
    • svn_repos_hotcopy — Создает свежую копию репозитория по адресу repospath и копирует в destpath
    • svn_repos_open — Открывает репозиторий с общей блокировкой
    • svn_repos_recover — Запускает процедуры восстановления репозитория
    • svn_revert — Отменяет локальные изменения рабочей копии
    • svn_status — Возвращает SVN-статус файлов и директорий рабочей копии
    • svn_update — Обновляет рабочую копию


Введение

Это расширение реализует работу PHP с » Subversion (SVN), системой управления версиями, что позволяет PHP-скриптам взаимодействовать с SVN-репозиториями и рабочими копиями без непосредственного вызова утилиты svn из командной строки.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.


Требования

Исполняемые файлы Subversion не требуются для использования данного расширения. Тем не менее, при его компиляции, библиотека libsvn (заголовки Subversion) должна быть доступна.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/svn

Если в ./configure есть проблемы с поиском SVN-файлов (например, Subversion был установлен из другого каталога), используйте ./configure --with-svn=$USR_PATH для указания каталога, в котором находится include/subversion-1/.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Внимание

Если расширение компилируется с библиотекой libsvn 1.3, функции, которые работают с рабочими копиями, будут выполняться с ошибками при использовании рабочих копий, созданных Subversion 1.4.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SVN_REVISION_HEAD (integer)
Магическое число (-1), указывающее на последнюю ревизию
Константы, используемые с svn_auth_set_parameter()
SVN_AUTH_PARAM_DEFAULT_USERNAME (string)
Свойство, определяющее имя пользователя по умолчанию, которое будет использоваться при выполнении базовой аутентификации
SVN_AUTH_PARAM_DEFAULT_PASSWORD (string)
Свойство, определяющее пароль пользователя по умолчанию, которое будет использоваться при выполнении базовой аутентификации
SVN_AUTH_PARAM_NON_INTERACTIVE (string)
SVN_AUTH_PARAM_DONT_STORE_PASSWORDS (string)
SVN_AUTH_PARAM_NO_AUTH_CACHE (string)
SVN_AUTH_PARAM_SSL_SERVER_FAILURES (string)
SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO (string)
SVN_AUTH_PARAM_CONFIG (string)
SVN_AUTH_PARAM_SERVER_GROUP (string)
SVN_AUTH_PARAM_CONFIG_DIR (string)
PHP_SVN_AUTH_PARAM_IGNORE_SSL_VERIFY_ERRORS (string)
Поле, предписывающее игнорирование ошибок верификации SSL-сертификата
Константы файловой системы
SVN_FS_CONFIG_FS_TYPE (string)
Ключ конфигурации, определяющий тип файловой системы
SVN_FS_TYPE_BDB (string)
Файловая система, реализуемая Berkeley-DB
SVN_FS_TYPE_FSFS (string)
Файловая система, реализуемая стандартным образом
Константы заразервированных свойств
SVN_PROP_REVISION_DATE (string)
svn:date
SVN_PROP_REVISION_ORIG_DATE (string)
svn:original-date
SVN_PROP_REVISION_AUTHOR (string)
svn:author
SVN_PROP_REVISION_LOG (string)
svn:log
Константы статуса рабочей копии
SVN_WC_STATUS_NONE (int)
Статус отсутствует
SVN_WC_STATUS_UNVERSIONED (int)
Элемент не имеет версии в рабочей копии
SVN_WC_STATUS_NORMAL (int)
Элемент существует, действий над ним не происходит
SVN_WC_STATUS_ADDED (int)
Элемент запланирован к добавлению в репозиторий
SVN_WC_STATUS_MISSING (int)
Элемент имеет версию, но отсутствует в рабочей копии
SVN_WC_STATUS_DELETED (int)
Элемент запланирован к удалению
SVN_WC_STATUS_REPLACED (int)
Элемент был удален, а затем снова добавлен
SVN_WC_STATUS_MODIFIED (int)
Элемент (текст или свойства) был изменен
SVN_WC_STATUS_MERGED (int)
Локальные изменения элемента были объединены с изменениями в репозитории
SVN_WC_STATUS_CONFLICTED (int)
Локальные изменения элемента конфликтуют с изменениями в репозитории
SVN_WC_STATUS_IGNORED (int)
Элемент не имеет версии и игнорируется системой контроля версий
SVN_WC_STATUS_OBSTRUCTED (int)
Элемент, не имеющий версии, связан с ресурсом, имеющим версию.
SVN_WC_STATUS_EXTERNAL (int)
Неверсионированный путь, заполняемый с использованием svn:externals
SVN_WC_STATUS_INCOMPLETE (int)
Директория не содержит полного списка записей
Константы типа Node
SVN_NODE_NONE (int)
Отсутствует
SVN_NODE_FILE (int)
Файл
SVN_NODE_DIR (int)
Директория
SVN_NODE_UNKNOWN (int)
Что-то, неидентифицируемое Subversion


Функции SVN

Содержание

  • svn_add — Добавляет элементы в список запланированных для добавления в рабочую копию
  • svn_auth_get_parameter — Возвращает параметр аутентификации
  • svn_auth_set_parameter — Устанавливает параметр аутентификации
  • svn_blame — Построчно выводит автора и редакцию для файла
  • svn_cat — Возвращает содержимое файла в репозитории
  • svn_checkout — Получает рабочую копию из репозитория
  • svn_cleanup — Рекурсивно очищает рабочую копию директории, завершает незаконченные операции и снимает блокировки
  • svn_client_version — Возвращает версию клиентских библиотек SVN
  • svn_commit — Отправляет изменения из рабочей директории в репозиторий
  • svn_delete — Удаляет элементы из рабочей копии или репозитория
  • svn_diff — Рекурсивно показывает различия двух файлов
  • svn_export — Экспортирует содержимое директории SVN
  • svn_fs_abort_txn — Отменяет транзакцию, возвращает TRUE, если отмена прошла успешно или FALSE в противном случае
  • svn_fs_apply_text — Создает и возвращает поток, который будет использован для замены
  • svn_fs_begin_txn2 — Создает новую транзакцию
  • svn_fs_change_node_prop — Возвращает TRUE, если операция прошла успешно или FALSE в противном случае
  • svn_fs_check_path — Определяет, какая сущность находится в пути репозитория fsroot
  • svn_fs_contents_changed — Возвращает TRUE, если содержимое отличается или FALSE в противном случае
  • svn_fs_copy — Копирует файл или директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае
  • svn_fs_delete — Удаляет файл или директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае
  • svn_fs_dir_entries — Перечисляет элементы директории по заданному пути; возвращает хеш имен директорий и типов файлов
  • svn_fs_file_contents — Возвращает поток для доступа к содержимому файла из данной файловой системы
  • svn_fs_file_length — Возвращает длину файла из данной файловой системы
  • svn_fs_is_dir — Возвращает TRUE, если по данному пути находится директория или FALSE в противном случае
  • svn_fs_is_file — Возвращает TRUE, если по данному пути находится файл или FALSE в противном случае
  • svn_fs_make_dir — Создает новую пустую директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае
  • svn_fs_make_file — Создает новый пустой файл, возвращает TRUE, если операция прошла успешно или FALSE в противном случае
  • svn_fs_node_created_rev — Возвращает номер ревизии, когда был создан путь в файловой системе
  • svn_fs_node_prop — Возвращает значение свойства для узла
  • svn_fs_props_changed — Возвращает TRUE, если свойства разные или FALSE в противном случае
  • svn_fs_revision_prop — Возвращает значение данного свойства
  • svn_fs_revision_root — Возвращает дескриптор определенной версии корневой директории репозитория
  • svn_fs_txn_root — Создает и возвращает корень транзакции
  • svn_fs_youngest_rev — Возвращает номер самой ранней ревизии в файловой системе
  • svn_import — Импорт пути без версии в репозитории
  • svn_log — Возвращает комментарии к правкам в репозитории
  • svn_ls — Возвращает список содержимого директории репозитория URL, опционально для конкретной ревизии
  • svn_mkdir — Создает директорию в рабочей копии или в репозитории
  • svn_repos_create — Создание нового репозитория Subversion
  • svn_repos_fs_begin_txn_for_commit — Создание новой транзакции
  • svn_repos_fs_commit_txn — Отправка транзакции и возвращение номера ревизии
  • svn_repos_fs — Возвращает дескриптор файловой системы для репозитория
  • svn_repos_hotcopy — Создает свежую копию репозитория по адресу repospath и копирует в destpath
  • svn_repos_open — Открывает репозиторий с общей блокировкой
  • svn_repos_recover — Запускает процедуры восстановления репозитория
  • svn_revert — Отменяет локальные изменения рабочей копии
  • svn_status — Возвращает SVN-статус файлов и директорий рабочей копии
  • svn_update — Обновляет рабочую копию


Добавляет элементы в список запланированных для добавления в рабочую копию

  • « Функции SVN
  • svn_auth_get_parameter »
  • PHP Manual
  • Функции SVN
  • Добавляет элементы в список запланированных для добавления в рабочую копию

svn_add

(PECL svn >= 0.1.0)

svn_add — Добавляет элементы в список запланированных для добавления в рабочую копию

Описание

svn_add ( string $path [, bool $recursive = TRUE [, bool $force = FALSE ]] ) : bool

Добавляет файл, папку или символическую ссылку path в рабочую копию. Данные будут добавлены в репозиторий при следующием вызове метода svn_commit() для рабочей копии.

Список параметров

path

Путь к добавляемой папке, файлу или ссылке.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

recursive

Если добавляется директория, флаг определят будет ли рекурсивно добавлено всё ее содержимое. По умолчанию TRUE

force

Если значение параметра эквивалентно TRUE -- Subversion будет рекурсивно просматривать уже известные директории, для того, чтобы добавить файлы, которые находятся в этих директориях, но не были взяты под контроль Subversion. По умолчанию FALSE

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 svn_add() example

В рабочей директории, где svn status возвращает:

$ svn status
?      foobar.txt

...данный код:

<?php
svn_add('foobar.txt');
?>

...пометит файл foobar.txt как запланированный на добавление в репозиторий.

Смотрите также

  • » SVN-документация по команде svn add


Возвращает параметр аутентификации

  • « svn_add
  • svn_auth_set_parameter »
  • PHP Manual
  • Функции SVN
  • Возвращает параметр аутентификации

svn_auth_get_parameter

(PECL svn >= 0.1.0)

svn_auth_get_parameter — Возвращает параметр аутентификации

Описание

svn_auth_get_parameter ( string $key ) : string

Возвращает параметр аутентификации по ключу key. Список возможных ключей и их значений доступен в списке констант аутентификации.

Список параметров

key

Имя ключа (строка). Чтобы указать ключ, используйте список констант аутентификации, определенный данным модулем.

Возвращаемые значения

Возвращает значение параметра по ключу key в виде строки, или NULL, если параметр не существует.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • svn_auth_set_parameter() - Устанавливает параметр аутентификации
  • Константы аутентификации


Устанавливает параметр аутентификации

  • « svn_auth_get_parameter
  • svn_blame »
  • PHP Manual
  • Функции SVN
  • Устанавливает параметр аутентификации

svn_auth_set_parameter

(PECL svn >= 0.1.0)

svn_auth_set_parameter — Устанавливает параметр аутентификации

Описание

svn_auth_set_parameter ( string $key , string $value ) : void

Устанавливает параметр аутентификации в значение value по ключу key. Список возможных ключей и их значений доступен в списке констант аутентификации.

Список параметров

key

Имя ключа (Строка). Чтобы указать ключ, используйте список констант аутентификации, определенный этим модулем.

value

Строковое значение устанавливаемого параметра по ключу. Формат значений может меняться в зависимости от параметра.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример аутентификации

Этот пример показывает как настроить SVN, чтобы имя пользователя по умолчанию было 'Bob', а пароль по умолчанию - 'abc123':

<?php
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'Bob');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'abc123');
?>

Смотрите также

  • svn_auth_get_parameter() - Возвращает параметр аутентификации
  • Константы аутентификации


Построчно выводит автора и редакцию для файла

  • « svn_auth_set_parameter
  • svn_cat »
  • PHP Manual
  • Функции SVN
  • Построчно выводит автора и редакцию для файла

svn_blame

(PECL svn >= 0.3.0)

svn_blame — Построчно выводит автора и редакцию для файла

Описание

svn_blame ( string $repository_url [, int $revision_no = SVN_REVISION_HEAD ] ) : array

Построчно выводит автора и редакцию для файла из репозитория.

Список параметров

repository_url

URL репозитория.

revision_no

Номер ревизии.

Возвращаемые значения

array Построчный массив со следующей информацией: номер ревизии, номер строки, строка кода, автор и дата.

Примеры

Пример #1 Пример использования функции svn_blame()

<?php
$svnurl = 'http://svn.example.org/svnroot/foo/trunk/index.php';

print_r( svn_blame($svnurl) );

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] = Array
          (
           [rev] = 1
           [line_no] = 1
           [line] = Hello World
           [author] = joesmith
           [date] = 2007-07-02T05:51:26.628396Z
          )
    [1] = Array
          ...

Смотрите также

  • svn_diff() - Рекурсивно показывает различия двух файлов
  • svn_logs()
  • svn_status() - Возвращает SVN-статус файлов и директорий рабочей копии


Возвращает содержимое файла в репозитории

  • « svn_blame
  • svn_checkout »
  • PHP Manual
  • Функции SVN
  • Возвращает содержимое файла в репозитории

svn_cat

(PECL svn >= 0.1.0)

svn_cat — Возвращает содержимое файла в репозитории

Описание

svn_cat ( string $repos_url [, int $revision_no ] ) : string

Возвращает содержимое по URL repos_url файла в репозитории по состоянию на ревизию с номером revision_no (необязательный параметр).

Список параметров

repos_url

Путь URL к элементу в репозитории.

revision_no

Номер ревизии (целое число) соответствующего элемента, по умолчанию - HEAD (последняя ревизия).

Возвращаемые значения

Возвращает содержимое элемента в репозитории в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример использования функции svn_cat()

Этот пример показывает как получить содержимое файла ревизии 28:

<?php
$contents = svn_cat('http://www.example.com/svnroot/calc/gui.c', 28)
?>

Смотрите также

  • svn_list()
  • » SVN-документация по svn cat


Получает рабочую копию из репозитория

  • « svn_cat
  • svn_cleanup »
  • PHP Manual
  • Функции SVN
  • Получает рабочую копию из репозитория

svn_checkout

(PECL svn >= 0.1.0)

svn_checkout — Получает рабочую копию из репозитория

Описание

svn_checkout ( string $repos , string $targetpath [, int $revision [, int $flags = 0 ]] ) : bool

Получает рабочую копию с ревизией revision из репозитория repos и размещает в targetpath.

Список параметров

repos

Путь (URL) к директории, которую необходимо получить из репозитория.

targetpath

Локальный путь, куда необходимо получить рабочую копию.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

revision

Номер ревизии (целое число), которую необходимо получить. По умолчанию HEAD, т.е. самая новая версия.

flags

Комбинации из констант SVN_NON_RECURSIVE и SVN_IGNORE_EXTERNALS.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример

Этот пример показывает, как получить директорию из репозитория в папку calc:

<?php
svn_checkout('http://www.example.com/svnroot/calc/trunk', dirname(__FILE__) . '/calc');
?>

Выражение dirname(__FILE__) используется для преобразования из относительного пути к calc в абсолютный путь. Если calc существует, то можно использовать realpath() для получения абсолютного пути.

Смотрите также

  • svn_add() - Добавляет элементы в список запланированных для добавления в рабочую копию
  • svn_commit() - Отправляет изменения из рабочей директории в репозиторий
  • svn_status() - Возвращает SVN-статус файлов и директорий рабочей копии
  • svn_update() - Обновляет рабочую копию
  • » SVN-документация о команде svn checkout


Рекурсивно очищает рабочую копию директории, завершает незаконченные операции и снимает блокировки

  • « svn_checkout
  • svn_client_version »
  • PHP Manual
  • Функции SVN
  • Рекурсивно очищает рабочую копию директории, завершает незаконченные операции и снимает блокировки

svn_cleanup

(PECL svn >= 0.1.0)

svn_cleanup — Рекурсивно очищает рабочую копию директории, завершает незаконченные операции и снимает блокировки

Описание

svn_cleanup ( string $workingdir ) : bool

Рекурсивно очищает рабочую копию директории workingdir, завершает любые незаконченные операции и снимает блокировки из рабочей копии. Используйте, когда необходимо возобновить работу недоступной рабочей копии.

Список параметров

workingdir

Путь к локальной рабочей копии для очистки.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример

Этот пример показывает, как очистить рабочую копию в директории help-me:

<?php
svn_cleanup(realpath('help-me'));
?>

В связи со странным поведением относительных путей в SVN, необходим вызов функции realpath().

Смотрите также

  • update()
  • » SVN-документация по svn cleanup


Возвращает версию клиентских библиотек SVN

  • « svn_cleanup
  • svn_commit »
  • PHP Manual
  • Функции SVN
  • Возвращает версию клиентских библиотек SVN

svn_client_version

(PECL svn >= 0.1.0)

svn_client_version — Возвращает версию клиентских библиотек SVN

Описание

svn_client_version ( void ) : string

Возвращает версию клиентских библиотек SVN

Возвращаемые значения

Номер версии, обычно в формате x.y.z.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример

<?php
echo svn_client_version();
?>

Результатом выполнения данного примера будет что-то подобное:

1.3.1


Отправляет изменения из рабочей директории в репозиторий

  • « svn_client_version
  • svn_delete »
  • PHP Manual
  • Функции SVN
  • Отправляет изменения из рабочей директории в репозиторий

svn_commit

(PECL svn >= 0.1.0)

svn_commit — Отправляет изменения из рабочей директории в репозиторий

Описание

svn_commit ( string $log , array $targets [, bool $recursive = TRUE ] ) : array

Отправляет изменения в файлах локальной рабочей копии, перечисленные в массиве targets в репозиторий, с сообщением log. Директории из массива targets будут рекурсивно добавлены, если параметр recursive не установлен в FALSE.

Замечание: Эта функция не имеет параметров для установки данных аутентификации, поэтому имя пользователя и пароль должны быть заданы с помощью функции svn_auth_set_parameter()

Список параметров

log

Строка комментария для текущего изменения.

targets

Массив с путями к локальным файлам или директориям, которые будут отправлены.

Внимание

Параметр должен быть массивом, строковое значение для добавления единичного элемента не поддерживается.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

recursive

Флаг для отключения рекурсивной отправки директорий из массива targets. По умолчанию TRUE.

Возвращаемые значения

Возвращает массив в формате:

array(
    0 => Номер ревизии сделанного изменения
    1 => Строка с датой и временем изменения в формате ISO 8601
    2 => Имя сделавшего изменения (коммитер)
)

При неудаче операции возвращается FALSE.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример

Этот пример отправляет директорию calculator в репозиторий, используя имя пользователя Bob и пароль abc123 (будем надеяться, что пароль надежный):

<?php
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'Bob');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'abc123');
var_dump(svn_commit('Комментарий Bob\'а', array(realpath('calculator'))));
?>

Результат выполнения данного примера:

array(
  0 => 1415,
  1 => '2007-05-26T01:44:28.453125Z',
  2 => 'Bob'
)

Смотрите также

  • svn_auth_set_parameter() - Устанавливает параметр аутентификации
  • » SVN-документация по svn commit


Удаляет элементы из рабочей копии или репозитория

  • « svn_commit
  • svn_diff »
  • PHP Manual
  • Функции SVN
  • Удаляет элементы из рабочей копии или репозитория

svn_delete

(PECL svn >= 0.4.0)

svn_delete — Удаляет элементы из рабочей копии или репозитория

Описание

svn_delete ( string $path [, bool $force = FALSE ] ) : bool

Удаляет файл, директорию или символическую ссылку path из рабочей копии. Элемент будет удален из репозитория при следующем вызове svn_commit() из рабочей копии.

Список параметров

path

Путь к удаляемому элементу.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

force

При TRUE файл будет удален даже, если в нем есть локальные изменения. При FALSE локальные модификации вызовут сбой при выполнении операции. По умолчанию FALSE

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • » SVN-документация по svn delete


Рекурсивно показывает различия двух файлов

  • « svn_delete
  • svn_export »
  • PHP Manual
  • Функции SVN
  • Рекурсивно показывает различия двух файлов

svn_diff

(PECL svn >= 0.1.0)

svn_diff — Рекурсивно показывает различия двух файлов

Описание

svn_diff ( string $path1 , int $rev1 , string $path2 , int $rev2 ) : array

Рекурсивно показывает различия двух файлов path1 и path2.

Замечание:

Это не инструмент просмотра общих изменений. Могут быть просмотрены различия только локальных файлов, которые находятся в системе контроля версий SVN : для других файлов различия просмотреть не удастся.

Список параметров

path1

Первый путь. Это может быть URL файла/директории в репозитории SVN или путь к локальному файлу/директории.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

Внимание

Если путь к локальному файлу состоит только из обратных слешей (\), без слеша (/), данному модулю не удастся найти необходимые файлы. Всегда заменяйте все обратные слеши (\) на слеши (/), используя эту функцию.

rev1

Номер ревизии первого файла. Используйте константу SVN_REVISION_HEAD для задания самой последней ревизии.

path2

Второй путь к файлу, аналогично path1

rev2

Номер ревизии второго файла, аналогично rev1.

Возвращаемые значения

Возвращает список массивов состоящий из двух потоков: первая - различия файлов; вторая - ошибки. Потоки могут быть прочитаны функцией fread(). При ошибке возвращает FALSE или NULL.

По умолчанию, вывод различий будет в стандартном формате Subversion, но также может использоваться » внешним инструментом показа различий, в зависимости от настройки Subversion.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример

Пример ниже иллюстрирует простое использование данной функции и получение данных из потока.

<?php
list($diff, $errors) = svn_diff(
    'http://www.example.com/svnroot/trunk/foo', SVN_REVISION_HEAD,
    'http://www.example.com/svnroot/branches/dev/foo', SVN_REVISION_HEAD
);
if (!$diff) exit;
$contents = '';
while (!feof($diff)) {
  $contents .= fread($diff, 8192);
}
fclose($diff);
fclose($errors);
var_dump($contents);
?>

Результат выполнения данного примера:

Index: http://www.example.com/svnroot/trunk/foo
===================================================================
--- http://www.example.com/svnroot/trunk/foo        (.../foo) (revision 23)
+++ http://www.example.com/svnroot/branches/dev/foo (.../foo) (revision 27)
 // остальный вывод diff

Пример #2 Вывод различий между двумя ревизиями одного файла

Этот пример показывает как реализовать функцию-обертку, которая позволяет пользователю просматривать различия между двумя ревизиями одного файла, используя внешний путь репозитория (стандартный синтаксис такой реализации несколько избыточен):

<?php
function svn_diff_same_item($path, $rev1, $rev2) {
    return svn_diff($path, $rev1, $path, $rev2);
}
?>

Пример #3 Более удобный способ вывода различий между двумя файла

Этот пример показывает как реализовать функцию-обертку для вывода различий между двумя локальными файлами, которая является переносимой и лишена ошибок при работе с функцией realpath() и обратным слешом.

<?php
function svn_diff_local($path1, $rev1, $path2, $rev2) {
    $path1 = str_replace('\\', '/', realpath($path1));
    $path2 = str_replace('\\', '/', realpath($path2));
    return svn_diff($path1, $rev1, $path2, $rev2);
}
?>

Смотрите также

  • » SVN-документация по svn diff


Экспортирует содержимое директории SVN

  • « svn_diff
  • svn_fs_abort_txn »
  • PHP Manual
  • Функции SVN
  • Экспортирует содержимое директории SVN

svn_export

(PECL svn >= 0.3.0)

svn_export — Экспортирует содержимое директории SVN

Описание

svn_export ( string $frompath , string $topath [, bool $working_copy = TRUE [, int $revision_no = -1 ]] ) : bool

Экспортирует данные как из рабочей копии, так и из репозитория в 'чистую' директорию.

Список параметров

frompath

Путь к текущему репозиторию или к рабочей копии.

topath

Путь к "чистой" папке для экспорта.

working_copy

При TRUE из рабочей копии будут также экспортированы неотправленные в репозиторий файлы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования svn_export()

<?php
$working_dir     = '../';
$new_working_dir = '/home/user/devel/foo/trunk';

svn_export($working_dir, $new_working_dir);
?>

Смотрите также

  • svn_import() - Импорт пути без версии в репозитории


Отменяет транзакцию, возвращает TRUE, если отмена прошла успешно или FALSE в противном случае

  • « svn_export
  • svn_fs_apply_text »
  • PHP Manual
  • Функции SVN
  • Отменяет транзакцию, возвращает TRUE, если отмена прошла успешно или FALSE в противном случае

svn_fs_abort_txn

(PECL svn >= 0.2.0)

svn_fs_abort_txn — Отменяет транзакцию, возвращает TRUE, если отмена прошла успешно или FALSE в противном случае

Описание

svn_fs_abort_txn ( resource $txn ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Отменяет транзакцию, возвращает TRUE, если отмена прошла успешно или FALSE в противном случае.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создает и возвращает поток, который будет использован для замены

  • « svn_fs_abort_txn
  • svn_fs_begin_txn2 »
  • PHP Manual
  • Функции SVN
  • Создает и возвращает поток, который будет использован для замены

svn_fs_apply_text

(PECL svn >= 0.2.0)

svn_fs_apply_text — Создает и возвращает поток, который будет использован для замены

Описание

svn_fs_apply_text ( resource $root , string $path ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Создает и возвращает поток, который будет использован для замены.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создает новую транзакцию

  • « svn_fs_apply_text
  • svn_fs_change_node_prop »
  • PHP Manual
  • Функции SVN
  • Создает новую транзакцию

svn_fs_begin_txn2

(PECL svn >= 0.2.0)

svn_fs_begin_txn2 — Создает новую транзакцию

Описание

svn_fs_begin_txn2 ( resource $repos , int $rev ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Создает новую транзакцию.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает TRUE, если операция прошла успешно или FALSE в противном случае

  • « svn_fs_begin_txn2
  • svn_fs_check_path »
  • PHP Manual
  • Функции SVN
  • Возвращает TRUE, если операция прошла успешно или FALSE в противном случае

svn_fs_change_node_prop

(PECL svn >= 0.2.0)

svn_fs_change_node_prop — Возвращает TRUE, если операция прошла успешно или FALSE в противном случае

Описание

svn_fs_change_node_prop ( resource $root , string $path , string $name , string $value ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает TRUE, если операция прошла успешно или FALSE в противном случае.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Определяет, какая сущность находится в пути репозитория fsroot

  • « svn_fs_change_node_prop
  • svn_fs_contents_changed »
  • PHP Manual
  • Функции SVN
  • Определяет, какая сущность находится в пути репозитория fsroot

svn_fs_check_path

(PECL svn >= 0.1.0)

svn_fs_check_path — Определяет, какая сущность находится в пути репозитория fsroot

Описание

svn_fs_check_path ( resource $fsroot , string $path ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Определяет, какая сущность находится в пути репозитория fsroot.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает TRUE, если содержимое отличается или FALSE в противном случае

  • « svn_fs_check_path
  • svn_fs_copy »
  • PHP Manual
  • Функции SVN
  • Возвращает TRUE, если содержимое отличается или FALSE в противном случае

svn_fs_contents_changed

(PECL svn >= 0.2.0)

svn_fs_contents_changed — Возвращает TRUE, если содержимое отличается или FALSE в противном случае

Описание

svn_fs_contents_changed ( resource $root1 , string $path1 , resource $root2 , string $path2 ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает TRUE, если содержимое отличается или FALSE в противном случае.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Копирует файл или директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае

  • « svn_fs_contents_changed
  • svn_fs_delete »
  • PHP Manual
  • Функции SVN
  • Копирует файл или директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае

svn_fs_copy

(PECL svn >= 0.2.0)

svn_fs_copy — Копирует файл или директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае

Описание

svn_fs_copy ( resource $from_root , string $from_path , resource $to_root , string $to_path ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Копирует файл или директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Удаляет файл или директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае

  • « svn_fs_copy
  • svn_fs_dir_entries »
  • PHP Manual
  • Функции SVN
  • Удаляет файл или директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае

svn_fs_delete

(PECL svn >= 0.2.0)

svn_fs_delete — Удаляет файл или директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае

Описание

svn_fs_delete ( resource $root , string $path ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Удаляет файл или директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Перечисляет элементы директории по заданному пути; возвращает хеш имен директорий и типов файлов

  • « svn_fs_delete
  • svn_fs_file_contents »
  • PHP Manual
  • Функции SVN
  • Перечисляет элементы директории по заданному пути; возвращает хеш имен директорий и типов файлов

svn_fs_dir_entries

(PECL svn >= 0.1.0)

svn_fs_dir_entries — Перечисляет элементы директории по заданному пути; возвращает хеш имен директорий и типов файлов

Описание

svn_fs_dir_entries ( resource $fsroot , string $path ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Перечисляет элементы директории по заданному пути; возвращает хеш имен директорий и типов файлов.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает поток для доступа к содержимому файла из данной файловой системы

  • « svn_fs_dir_entries
  • svn_fs_file_length »
  • PHP Manual
  • Функции SVN
  • Возвращает поток для доступа к содержимому файла из данной файловой системы

svn_fs_file_contents

(PECL svn >= 0.1.0)

svn_fs_file_contents — Возвращает поток для доступа к содержимому файла из данной файловой системы

Описание

svn_fs_file_contents ( resource $fsroot , string $path ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает поток для доступа к содержимому файла из данной файловой системы.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает длину файла из данной файловой системы

  • « svn_fs_file_contents
  • svn_fs_is_dir »
  • PHP Manual
  • Функции SVN
  • Возвращает длину файла из данной файловой системы

svn_fs_file_length

(PECL svn >= 0.1.0)

svn_fs_file_length — Возвращает длину файла из данной файловой системы

Описание

svn_fs_file_length ( resource $fsroot , string $path ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает длину файла из данной файловой системы.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает TRUE, если по данному пути находится директория или FALSE в противном случае

  • « svn_fs_file_length
  • svn_fs_is_file »
  • PHP Manual
  • Функции SVN
  • Возвращает TRUE, если по данному пути находится директория или FALSE в противном случае

svn_fs_is_dir

(PECL svn >= 0.2.0)

svn_fs_is_dir — Возвращает TRUE, если по данному пути находится директория или FALSE в противном случае

Описание

svn_fs_is_dir ( resource $root , string $path ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает TRUE, если по данному пути находится директория или FALSE в противном случае.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает TRUE, если по данному пути находится файл или FALSE в противном случае

  • « svn_fs_is_dir
  • svn_fs_make_dir »
  • PHP Manual
  • Функции SVN
  • Возвращает TRUE, если по данному пути находится файл или FALSE в противном случае

svn_fs_is_file

(PECL svn >= 0.2.0)

svn_fs_is_file — Возвращает TRUE, если по данному пути находится файл или FALSE в противном случае

Описание

svn_fs_is_file ( resource $root , string $path ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает TRUE, если по данному пути находится файл или FALSE в противном случае.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создает новую пустую директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае

  • « svn_fs_is_file
  • svn_fs_make_file »
  • PHP Manual
  • Функции SVN
  • Создает новую пустую директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае

svn_fs_make_dir

(PECL svn >= 0.2.0)

svn_fs_make_dir — Создает новую пустую директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае

Описание

svn_fs_make_dir ( resource $root , string $path ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Создает новую пустую директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создает новый пустой файл, возвращает TRUE, если операция прошла успешно или FALSE в противном случае

  • « svn_fs_make_dir
  • svn_fs_node_created_rev »
  • PHP Manual
  • Функции SVN
  • Создает новый пустой файл, возвращает TRUE, если операция прошла успешно или FALSE в противном случае

svn_fs_make_file

(PECL svn >= 0.2.0)

svn_fs_make_file — Создает новый пустой файл, возвращает TRUE, если операция прошла успешно или FALSE в противном случае

Описание

svn_fs_make_file ( resource $root , string $path ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Создает новый пустой файл, возвращает TRUE, если операция прошла успешно или FALSE в противном случае.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает номер ревизии, когда был создан путь в файловой системе

  • « svn_fs_make_file
  • svn_fs_node_prop »
  • PHP Manual
  • Функции SVN
  • Возвращает номер ревизии, когда был создан путь в файловой системе

svn_fs_node_created_rev

(PECL svn >= 0.1.0)

svn_fs_node_created_rev — Возвращает номер ревизии, когда был создан путь в файловой системе

Описание

svn_fs_node_created_rev ( resource $fsroot , string $path ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает номер ревизии, когда был создан путь в файловой системе.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает значение свойства для узла

  • « svn_fs_node_created_rev
  • svn_fs_props_changed »
  • PHP Manual
  • Функции SVN
  • Возвращает значение свойства для узла

svn_fs_node_prop

(PECL svn >= 0.1.0)

svn_fs_node_prop — Возвращает значение свойства для узла

Описание

svn_fs_node_prop ( resource $fsroot , string $path , string $propname ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает значение свойства для узла.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает TRUE, если свойства разные или FALSE в противном случае

  • « svn_fs_node_prop
  • svn_fs_revision_prop »
  • PHP Manual
  • Функции SVN
  • Возвращает TRUE, если свойства разные или FALSE в противном случае

svn_fs_props_changed

(PECL svn >= 0.2.0)

svn_fs_props_changed — Возвращает TRUE, если свойства разные или FALSE в противном случае

Описание

svn_fs_props_changed ( resource $root1 , string $path1 , resource $root2 , string $path2 ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает TRUE, если свойства разные или FALSE в противном случае

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает значение данного свойства

  • « svn_fs_props_changed
  • svn_fs_revision_root »
  • PHP Manual
  • Функции SVN
  • Возвращает значение данного свойства

svn_fs_revision_prop

(PECL svn >= 0.1.0)

svn_fs_revision_prop — Возвращает значение данного свойства

Описание

svn_fs_revision_prop ( resource $fs , int $revnum , string $propname ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает значение данного свойства

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает дескриптор определенной версии корневой директории репозитория

  • « svn_fs_revision_prop
  • svn_fs_txn_root »
  • PHP Manual
  • Функции SVN
  • Возвращает дескриптор определенной версии корневой директории репозитория

svn_fs_revision_root

(PECL svn >= 0.1.0)

svn_fs_revision_root — Возвращает дескриптор определенной версии корневой директории репозитория

Описание

svn_fs_revision_root ( resource $fs , int $revnum ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает дескриптор определенной версии корневой директории репозитория

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создает и возвращает корень транзакции

  • « svn_fs_revision_root
  • svn_fs_youngest_rev »
  • PHP Manual
  • Функции SVN
  • Создает и возвращает корень транзакции

svn_fs_txn_root

(PECL svn >= 0.2.0)

svn_fs_txn_root — Создает и возвращает корень транзакции

Описание

svn_fs_txn_root ( resource $txn ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Создает и возвращает корень транзакции

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает номер самой ранней ревизии в файловой системе

  • « svn_fs_txn_root
  • svn_import »
  • PHP Manual
  • Функции SVN
  • Возвращает номер самой ранней ревизии в файловой системе

svn_fs_youngest_rev

(PECL svn >= 0.1.0)

svn_fs_youngest_rev — Возвращает номер самой ранней ревизии в файловой системе

Описание

svn_fs_youngest_rev ( resource $fs ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает номер самой ранней ревизии в файловой системе

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Импорт пути без версии в репозитории

  • « svn_fs_youngest_rev
  • svn_log »
  • PHP Manual
  • Функции SVN
  • Импорт пути без версии в репозитории

svn_import

(PECL svn >= 0.2.0)

svn_import — Импорт пути без версии в репозитории

Описание

svn_import ( string $path , string $url , bool $nonrecursive ) : bool

Добавление неверсионированного пути path в репозиторий по адресу url. Если path является директорией и параметр nonrecursive имеет значение FALSE, директория будет добавлена в репозиторий рекурсивно.

Список параметров

path

Путь к файлу или директории для импорта.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

url

URL-адрес репозитория.

nonrecursive

Следует ли обработать директории рекурсивно или нет.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример

Данный пример иллюстрирует базовое использование данной функции. Импорт директории с именем new-files в репозиторий с адресом http://www.example.com/svnroot/incoming/abc выглядит следующим образом:

<?php
svn_import(realpath('new-files'), 'http://www.example.com/svnroot/incoming/abc', false);
?>

Смотрите также

  • svn_add() - Добавляет элементы в список запланированных для добавления в рабочую копию
  • » SVN-документация по svn import


Возвращает комментарии к правкам в репозитории

  • « svn_import
  • svn_ls »
  • PHP Manual
  • Функции SVN
  • Возвращает комментарии к правкам в репозитории

svn_log

(PECL svn >= 0.1.0)

svn_log — Возвращает комментарии к правкам в репозитории

Описание

svn_log ( string $repos_url [, int $start_revision [, int $end_revision [, int $limit = 0 [, int $flags = SVN_DISCOVER_CHANGED_PATHS | SVN_STOP_ON_COPY ]]]] ) : array

svn_log() возвращает полную историю изменений конкретного элемента репозитория, расположенного по URL repos_url, или историю правок в конкретном диапазоне, если указан параметр start_revision. Данная функция эквивалентна команде SVN svn log --verbose -r $start_revision $repos_url.

Список параметров

repos_url

URL-адрес репозитория для получения истории правок элемента.

start_revision

Начальный номер ревизии для получения. Используйте константу SVN_REVISION_HEAD для получения самой последней ревизии.

end_revision

Конечный номер ревизии для получения. По умолчанию при использовании параметра start_revision идентичен ему, в противном случае равен SVN_REVISION_INITIAL.

limit

Количество записей для получения.

flags

Любая комбинация SVN_OMIT_MESSAGES, SVN_DISCOVER_CHANGED_PATHS и SVN_STOP_ON_COPY.

Возвращаемые значения

В случае успеха, функция возвращает массив формата:

[0] => Массив, отсортированный по сначала самой последней (самой большей) ревизии
(
    [rev] => Номер ревизии (целое число)
    [author] => Автор правки (строка)
    [msg] => Комментарий к изменениям (строка)
    [date] => Дата правки в формате ISO 8601, т.е. date('c')
    [paths] => Массив с путями к измененным файлам
        (
            [0] => Array
                (
                    [action] => Обозначение характера изменений
                    [path] =>  Абсолютный путь репозитория к измененному файлу
                )
            [1] => ...
        )
)
[1] => ...

Замечание:

Вывод всегда представлен как пронумерованный массив, содержащий массивы, кроме случаев отсутствия или только единственного экземпляра ревизий.

Значение action является подмножеством » первых букв состояний SVN, где возможные значения - это:

Действия
Буква | Описание
M | Элемент был изменен
A | Элемент был добавлен
D | Элемент был удален
R | Элемент был заменен

Если изменений элемента нет, возвращается пустой массив.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Пример использования svn_log()

<?php
print_r( svn_log('http://www.example.com/', 23) );
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
    (
        [rev] => 23
        [author] => 'joe'
        [msg] => 'К нашему бутерброду добавлены сыр и колбаса.'
        [date] => '2007-04-06T16:00:27-04:00'
        [paths] => Array
            (
                [0] => Array
                    (
                        [action] => 'M'
                        [path] =>  '/sandwich.txt'
                    )
            )
    )
)

Смотрите также

  • » SVN-документация по команде svn log


Возвращает список содержимого директории репозитория URL, опционально для конкретной ревизии

  • « svn_log
  • svn_mkdir »
  • PHP Manual
  • Функции SVN
  • Возвращает список содержимого директории репозитория URL, опционально для конкретной ревизии

svn_ls

(PECL svn >= 0.1.0)

svn_ls — Возвращает список содержимого директории репозитория URL, опционально для конкретной ревизии

Описание

svn_ls ( string $repos_url [, int $revision_no = SVN_REVISION_HEAD [, bool $recurse = FALSE [, bool $peg = FALSE ]]] ) : array

Данная функция строит запрос по URL адресу репозитория и получает список файлов и директорий, опционально для конкретной ревизии. Это эквивалентно команде SVN svn list $repos_url[@$revision_no]

Замечание:

Данная функция не работает с локальными рабочими копиями репозитория. Параметр repos_url должен быть URL-адресом репозитория.

Список параметров

url

URL-адрес репозитория, например http://www.example.com/svnroot. Для доступа к локальному репозиторию Subversion через файловую систему используйте файловую URI-схему, например file:///home/user/svn-repos.

revision

Целочисленный номер ревизии для получения списка содержимого. Если параметр опущен, используется последняя ревизия (HEAD).

recurse

Включает рекурсивный запрос.

Возвращаемые значения

В случае успеха данная функция возвращает массив имен файлов/директорий в формате:

[0] => Array
    (
        [created_rev] => Номер последней ревизии файла/папки
        [last_author] => Имя автора последней правки
        [size] => Размер файла в байтах
        [time] => Дата последнего изменения в формате 'M d H:i'
                  или 'M d Y', в зависимости от того, сколько прошло времени с последней правки.
        [time_t] => отметка времени unix о последнем изменении (целое число)
        [name] => имя файла/директории
        [type] => тип, может принимать значения 'file' (файл) или 'dir' (директория)
    )
[1] => ...

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Пример использования svn_ls()

<?php
print_r( svn_ls('http://www.example.com/svnroot/') );
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [created_rev] => 20
            [last_author] => Joe
            [size] => 0
            [time] => Apr 02 09:28
            [time_t] => 1175520529
            [name] => tags
            [type] => dir
        )
    [1] => Array
        (
            [created_rev] => 23
            [last_author] => Bob
            [size] => 0
            [time] => Apr 02 15:15
            [time_t] => 1175541322
            [name] => trunk
            [type] => dir
        )
)

Смотрите также

  • » SVN-документация по svn list


Создает директорию в рабочей копии или в репозитории

  • « svn_ls
  • svn_repos_create »
  • PHP Manual
  • Функции SVN
  • Создает директорию в рабочей копии или в репозитории

svn_mkdir

(PECL svn >= 0.4.0)

svn_mkdir — Создает директорию в рабочей копии или в репозитории

Описание

svn_mkdir ( string $path [, string $log_message ] ) : bool

Создает директорию в рабочей копии или в репозитории.

Список параметров

path

Путь к рабочей копии или к репозиторию.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • svn_add() - Добавляет элементы в список запланированных для добавления в рабочую копию
  • svn_copy()


Создание нового репозитория Subversion

  • « svn_mkdir
  • svn_repos_fs_begin_txn_for_commit »
  • PHP Manual
  • Функции SVN
  • Создание нового репозитория Subversion

svn_repos_create

(PECL svn >= 0.1.0)

svn_repos_create — Создание нового репозитория Subversion

Описание

svn_repos_create ( string $path [, array $config [, array $fsconfig ]] ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Создание нового репозитория Subversion по конкретному пути.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создание новой транзакции

  • « svn_repos_create
  • svn_repos_fs_commit_txn »
  • PHP Manual
  • Функции SVN
  • Создание новой транзакции

svn_repos_fs_begin_txn_for_commit

(PECL svn >= 0.2.0)

svn_repos_fs_begin_txn_for_commit — Создание новой транзакции

Описание

svn_repos_fs_begin_txn_for_commit ( resource $repos , int $rev , string $author , string $log_msg ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Создание новой транзакции.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Отправка транзакции и возвращение номера ревизии

  • « svn_repos_fs_begin_txn_for_commit
  • svn_repos_fs »
  • PHP Manual
  • Функции SVN
  • Отправка транзакции и возвращение номера ревизии

svn_repos_fs_commit_txn

(PECL svn >= 0.2.0)

svn_repos_fs_commit_txn — Отправка транзакции и возвращение номера ревизии

Описание

svn_repos_fs_commit_txn ( resource $txn ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Отправляет транзакцию и возвращает номер новой ревизии

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает дескриптор файловой системы для репозитория

  • « svn_repos_fs_commit_txn
  • svn_repos_hotcopy »
  • PHP Manual
  • Функции SVN
  • Возвращает дескриптор файловой системы для репозитория

svn_repos_fs

(PECL svn >= 0.1.0)

svn_repos_fs — Возвращает дескриптор файловой системы для репозитория

Описание

svn_repos_fs ( resource $repos ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает дескриптор файловой системы для репозитория.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создает свежую копию репозитория по адресу repospath и копирует в destpath

  • « svn_repos_fs
  • svn_repos_open »
  • PHP Manual
  • Функции SVN
  • Создает свежую копию репозитория по адресу repospath и копирует в destpath

svn_repos_hotcopy

(PECL svn >= 0.1.0)

svn_repos_hotcopy — Создает свежую копию репозитория по адресу repospath и копирует в destpath

Описание

svn_repos_hotcopy ( string $repospath , string $destpath , bool $cleanlogs ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Создает свежую копию репозитория по адресу repospath и копирует в destpath.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Открывает репозиторий с общей блокировкой

  • « svn_repos_hotcopy
  • svn_repos_recover »
  • PHP Manual
  • Функции SVN
  • Открывает репозиторий с общей блокировкой

svn_repos_open

(PECL svn >= 0.1.0)

svn_repos_open — Открывает репозиторий с общей блокировкой

Описание

svn_repos_open ( string $path ) : resource
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Открывает репозиторий с общей блокировкой.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Запускает процедуры восстановления репозитория

  • « svn_repos_open
  • svn_revert »
  • PHP Manual
  • Функции SVN
  • Запускает процедуры восстановления репозитория

svn_repos_recover

(PECL svn >= 0.1.0)

svn_repos_recover — Запускает процедуры восстановления репозитория

Описание

svn_repos_recover ( string $path ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Запускает процедуры восстановления репозитория, расположенного в path.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Отменяет локальные изменения рабочей копии

  • « svn_repos_recover
  • svn_status »
  • PHP Manual
  • Функции SVN
  • Отменяет локальные изменения рабочей копии

svn_revert

(PECL svn >= 0.3.0)

svn_revert — Отменяет локальные изменения рабочей копии

Описание

svn_revert ( string $path [, bool $recursive = FALSE ] ) : bool

Отменяет все локальные изменения файлов, расположенных в рабочей копии.

Список параметров

path

Путь к рабочей копии.

recursive

Опциональный параметр рекурсивной отмены правок.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • svn_delete() - Удаляет элементы из рабочей копии или репозитория
  • svn_export() - Экспортирует содержимое директории SVN


Возвращает SVN-статус файлов и директорий рабочей копии

  • « svn_revert
  • svn_update »
  • PHP Manual
  • Функции SVN
  • Возвращает SVN-статус файлов и директорий рабочей копии

svn_status

(PECL svn >= 0.1.0)

svn_status — Возвращает SVN-статус файлов и директорий рабочей копии

Описание

svn_status ( string $path [, int $flags = 0 ] ) : array

Возвращает SVN статус файлов и директорий рабочей копии, подвергнувшихся модификации, добавлению, удалению и прочим изменениям.

Список параметров

path

Локальный путь к файлу или директории для получения статуса.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

flags

Любая комбинация флагов Svn::NON_RECURSIVE,
Svn::ALL (вне зависимости от статуса модификации),
Svn::SHOW_UPDATES (к записям будут добавлены пункты
со старыми правками), Svn::NO_IGNORE (игнорирование
svn:ignore свойств при сканировании новых файлов)
и Svn::IGNORE_EXTERNALS.

Возвращаемые значения

Возвращает пронумерованный массив, состоящий из ассоциативных массивов с подробными статусами элементов в репозитории:

Array (
    [0] => Array (
        // информация об элементе
    )
    [1] => ...
)

Информация об элементе может быть получена из ассоциативного массива по двум ключам:

path
Путь к файлу/директории в локальной файловой системе.
text_status
Код текстового статуса элемента. См. Для информации о возможных значениях, обратитесь к константам статусов.
repos_text_status
Код текстового статуса элемента в репозитории. Отображается если update установлен в TRUE. См. Для информации о возможных значениях, обратитесь к константам статусов.
prop_status
Код текстового статуса свойств элемента. См. Для информации о возможных значениях, обратитесь к константам статусов.
repos_prop_status
Код текстового статуса свойств элемента в репозитории. Отображается если update установлен в TRUE. См. Для информации о возможных значениях, обратитесь к константам статусов.
locked
Будет ли заблокирован элемент или нет. (Устанавливается при TRUE.)
copied
Будет ли скопирован элемент (запланирован для добавления в истории правок). (Устанавливается при TRUE.)
switched
Будет ли элемент переключен используя команду переключения. (Устанавливается при TRUE)

Следующие ниже ключи устанавливаются только если элемент имеет версию:

name
Имя элемента в репозитории.
url
URL-адрес элемента в репозитории.
repos
URL-адрес репозитория.
revision
Номер ревизии рабочей копии.
kind
Тип элемента, т.е. файл или директория. См. Для информации о возможных значениях, обратитесь к константам типов.
schedule
Запланированное действия для элемента, т.е. добавление или удаления. Константы для данных магических чисел не доступны, они эмулируются, согласно правилу:
<?php
if (!defined('svn_wc_schedule_normal')) {
    define('svn_wc_schedule_normal',  0); // никаких изменений
    define('svn_wc_schedule_add',     1); // элемент будет добавлен
    define('svn_wc_schedule_delete',  2); // элемент будет удален
    define('svn_wc_schedule_replace', 3); // элемент будет удален и добавлен
}
?>
deleted
Будет или нет элемент будет удален, но ревизия родителя не увеличится (Установлено при TRUE.)
absent
Будет или нет элемент помечен отсутствующим. Subversion будет помнить, что в этом месте что-то расположено, но не будет знать что именно. (Устанавливается при TRUE.)
incomplete
Будет или нет содержимое директории считаться неполным. (Устанавливается при TRUE.)
cmt_date
Отметка времени в формате Unix о дате последней правки (Не зависит от update.)
cmt_rev
Номер ревизии последнего обновления. (Не зависит от update.)
cmt_author
Имя автора последней правки. (Не зависит от update.)
prop_time
Отметка времени в формате Unix о последней актуальной версии свойств.
text_time
Отметка времени в формате Unix о последней актуальной версии текста.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример

Приведенный ниже пример иллюстрирует базовое, теоретическое использование данной функции

<?php
print_r(svn_status(realpath('wc')));
?>

Результатом выполнения данного примера будет что-то подобное:

Array (
    [0] => Array (
        [path] => /home/bob/wc/sandwich.txt
        [text_status] => 8 // элемент был изменен
        [repos_text_status] => 1 // нет доступной информации, выполнить update
        [prop_status] => 3 // нет изменений
        [repos_prop_status] => 1 // нет доступной информации, выполнить update
        [name] => sandwich.txt
        [url] => http://www.example.com/svnroot/deli/trunk/sandwich.txt
        [repos] => http://www.example.com/svnroot/
        [revision] => 123
        [kind] => 1 // file
        [schedule] => 0 // не запланировано никаких действий
        [cmt_date] => 1165543135
        [cmt_rev] => 120
        [cmt_author] => Alice
        [prop_time] => 1180201728
        [text_time] => 1180201729
    )
)

Смотрите также

  • svn_update() - Обновляет рабочую копию
  • svn_log() - Возвращает комментарии к правкам в репозитории
  • » SVN-документация по svn status


Обновляет рабочую копию

  • « svn_status
  • TCP »
  • PHP Manual
  • Функции SVN
  • Обновляет рабочую копию

svn_update

(PECL svn >= 0.1.0)

svn_update — Обновляет рабочую копию

Описание

svn_update ( string $path [, int $revno = SVN_REVISION_HEAD [, bool $recurse = TRUE ]] ) : int

Обновляет рабочую копию, расположенную в path до ревизии revno. Если параметр recurse установлен в TRUE, директории будут обновлены рекурсивно.

Список параметров

path

Путь к локальной рабочей копии.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

revno

Номер ревизии для обновления, по умолчанию SVN_REVISION_HEAD.

recurse

Следует ли рекурсивно обновлять директории.

Возвращаемые значения

В случае успеха возвращает новый номер ревизии, или FALSE в случае ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Базовый пример

Нижеприведенный пример иллюстрирует базовое применение данной функции:

<?php
echo svn_update(realpath('working-copy'));
?>

Результатом выполнения данного примера будет что-то подобное:

234

Смотрите также

  • svn_checkout() - Получает рабочую копию из репозитория
  • svn_commit() - Отправляет изменения из рабочей директории в репозиторий
  • » SVN-документация по svn update


Обертки TCP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции TCP
    • tcpwrap_check — Производит проверку tcpwrap


Введение

Обертки TCP предоставляют классический механизм Unix для проверки, может ли удаленный клиент соединяться с указанного IP-адреса.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/tcpwrap.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Типы ресурсов
  • Функции TCP »
  • PHP Manual
  • TCP
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • tcpwrap_check »
  • PHP Manual
  • TCP
  • Функции TCP

Функции TCP

Содержание

  • tcpwrap_check — Производит проверку tcpwrap


Производит проверку tcpwrap

  • « Функции TCP
  • Varnish »
  • PHP Manual
  • Функции TCP
  • Производит проверку tcpwrap

tcpwrap_check

(PECL tcpwrap >= 0.1.0)

tcpwrap_check — Производит проверку tcpwrap

Описание

tcpwrap_check ( string $daemon , string $address [, string $user [, bool $nodns = FALSE ]] ) : bool

Функция сверяется с файлами /etc/hosts.allow и /etc/hosts.deny для проверки, можно или нельзя дать доступ клиенту к демону daemon.

Список параметров

daemon

Имя сервиса.

address

Адрес клиента. Может быть как доменным именем, так и IP-адресом.

user

Необязательное имя пользователя.

nodns

Если адрес address выглядит как доменное имя, то производится запрос к DNS для определения его IP-адреса. Для блокировки такого поведения установите nodns в значение TRUE.

Возвращаемые значения

Возвращает TRUE, если доступ разрешен и FALSE, если нет.

Примеры

Пример #1 Запрет всех соединений с локального хоста

Если в /etc/hosts.deny есть запись:

php: 127.0.0.1

И ваш код выглядит как-то так:

<?php
if (!tcpwrap_check('php', $_SERVER['REMOTE_ADDR'])) {
  die('Вас тут не ждут');
}
?>

Смотрите также

Для более подробной информации обратитесь к документации по hosts_access(3).


Varnish

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Простое использование VarnishAdmin
    • Простое использование VarnishStat
    • Простое использование VarnishLog
  • VarnishAdmin — Класс VarnishAdmin
    • VarnishAdmin::auth — Аутентификация на экземпляре varnish
    • VarnishAdmin::ban — Запретить URL-адреса, используя выражение VCL
    • VarnishAdmin::banUrl — Запретить URL, используя выражение VCL
    • VarnishAdmin::clearPanic — Очистить критические сообщения экземпляра varnish
    • VarnishAdmin::connect — Подключение к интерфейсу администрирования экземпляра varnish
    • VarnishAdmin::__construct — VarnishAdmin constructor
    • VarnishAdmin::disconnect — Отключение от интерфейса администрирования экземпляра varnish
    • VarnishAdmin::getPanic — Получить последнее критическое сообщение на экземпляре varnish
    • VarnishAdmin::getParams — Получить параметры конфигурации текущего экземпляра varnish
    • VarnishAdmin::isRunning — Проверить, выполняется в настоящий момент подчинённый процесс varnish
    • VarnishAdmin::setCompat — Установить параметр конфигурации compat класса
    • VarnishAdmin::setHost — Установить параметр конфигурации host класса
    • VarnishAdmin::setIdent — Установить параметр конфигурации ident класса
    • VarnishAdmin::setParam — Установить параметр конфигурации на текущем экземпляре varnish
    • VarnishAdmin::setPort — Установить параметр конфигурации port класса
    • VarnishAdmin::setSecret — Установить параметр конфигурации secret класса
    • VarnishAdmin::setTimeout — Установить параметр конфигурации timeout класса
    • VarnishAdmin::start — Запустить рабочий процесс varnish
    • VarnishAdmin::stop — Остановить рабочий процесс varnish
  • VarnishStat — Класс VarnishStat
    • VarnishStat::__construct — Конструктор VarnishStat
    • VarnishStat::getSnapshot — Получить снимок статистики текущего экземпляра varnish
  • VarnishLog — Класс VarnishLog
    • VarnishLog::__construct — Конструктор Varnishlog
    • VarnishLog::getLine — Получить следующую строку журнала
    • VarnishLog::getTagName — Получить строковое представление тега журнала по его индексу


Введение

Varnish Cache - современный акселератор веб-приложений с открытым исходным кодом. Данный модуль позволяет взаимодействовать с запущенным экземпляром varnish через сокет TCP или разделяемую память.


Требования

Для того чтобы использовать этот модуль вам необходимо установить Varnish Cache версии >=3.0, доступный по ссылке: » Varnish Cache homepage


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/varnish.

Библиотека DLL для этого PECL-модуля доступна по ссылке » http://windows.php.net/downloads/pecl/releases/varnish/.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

VARNISH_STATUS_SYNTAX (integer)
VARNISH_STATUS_UNKNOWN (integer)
VARNISH_STATUS_UNIMPL (integer)
VARNISH_STATUS_TOOFEW (integer)
VARNISH_STATUS_TOOMANY (integer)
VARNISH_STATUS_PARAM (integer)
VARNISH_STATUS_AUTH (integer)
VARNISH_STATUS_OK (integer)
VARNISH_STATUS_CANT (integer)
VARNISH_STATUS_COMMS (integer)
VARNISH_STATUS_CLOSE (integer)
VARNISH_CONFIG_IDENT (string)
VARNISH_CONFIG_HOST (string)
VARNISH_CONFIG_PORT (string)
VARNISH_CONFIG_TIMEOUT (string)
VARNISH_CONFIG_SECRET (string)
VARNISH_CONFIG_COMPAT (string)
VARNISH_COMPAT_2 (integer)
VARNISH_COMPAT_3 (integer)


Примеры

Содержание

  • Простое использование VarnishAdmin
  • Простое использование VarnishStat
  • Простое использование VarnishLog


Простое использование VarnishAdmin

Данный пример иллюстрирует простое использование функциональности запрета

Пример #1 Запретить URL

<?php

$args = array(
    VARNISH_CONFIG_HOST    => "::1",
    VARNISH_CONFIG_PORT    => 6082,
    VARNISH_CONFIG_SECRET  => "5174826b-8595-4958-aa7a-0609632ad7ca",
    VARNISH_CONFIG_TIMEOUT => 300,
);

$va = new VarnishAdmin($args);

try {
    if(!$va->connect()) {
        throw new VarnishException("Неудачное подключение\n");
    }
} catch (VarnishException $e) {
    echo $e->getMessage();
    exit(3);
}

try {
    if(!$va->auth()) {
        throw new VarnishException("Неудачная аутентификация\n");
    }
} catch (VarnishException $e) {
    echo $e->getMessage();
    exit(3);
}

try {
    $status = $va->ban('req.url ~ "^/$"');
    if (VARNISH_STATUS_OK != $status) {
        throw new VarnishException("Метод ban вернул статус $status\n");
    }
} catch (VarnishException $e) {
    echo $e->getMessage();
    exit(3);
}

exit(0);

?>


Простое использование VarnishStat

Данный пример иллюстрирует получение снимка статистики varnish из разделяемой памяти

Пример #1 Получить снимок статистики

<?php

$vs = new VarnishStat;

try {
    $data = $vs->getSnapshot();
} catch (VarnishException $e) {
    echo $e->getMessage();
    exit(3);
}

exit(0);
?>


Простое использование VarnishLog

Данный пример иллюстрирует чтения строк журнала varnish из разделяемой памяти

Пример #1 Прочитать журнал разделяемой памяти varnish

<?php

$vl = new VarnishLog;
while(1) {
    $line = $vl->getLine();
    printf("%s %d %s", VarnishLog::getTagName($line['tag'], $line['id'],
    $line['data']);
}

exit(0);
?>


Класс VarnishAdmin

(PECL varnish >= 0.3)

Введение

Обзор классов

VarnishAdmin {
/* Методы */
public auth ( void ) : bool
public ban ( string $vcl_regex ) : int
public banUrl ( string $vcl_regex ) : int
public clearPanic ( void ) : int
public connect ( void ) : bool
public __construct ([ array $args ] )
public disconnect ( void ) : bool
public getPanic ( void ) : string
public getParams ( void ) : array
public isRunning ( void ) : bool
public setCompat ( int $compat ) : void
public setHost ( string $host ) : void
public setIdent ( string $ident ) : void
public setParam ( string $name , string|integer $value ) : int
public setPort ( int $port ) : void
public setSecret ( string $secret ) : void
public setTimeout ( int $timeout ) : void
public start ( void ) : int
public stop ( void ) : int
}

Содержание

  • VarnishAdmin::auth — Аутентификация на экземпляре varnish
  • VarnishAdmin::ban — Запретить URL-адреса, используя выражение VCL
  • VarnishAdmin::banUrl — Запретить URL, используя выражение VCL
  • VarnishAdmin::clearPanic — Очистить критические сообщения экземпляра varnish
  • VarnishAdmin::connect — Подключение к интерфейсу администрирования экземпляра varnish
  • VarnishAdmin::__construct — VarnishAdmin constructor
  • VarnishAdmin::disconnect — Отключение от интерфейса администрирования экземпляра varnish
  • VarnishAdmin::getPanic — Получить последнее критическое сообщение на экземпляре varnish
  • VarnishAdmin::getParams — Получить параметры конфигурации текущего экземпляра varnish
  • VarnishAdmin::isRunning — Проверить, выполняется в настоящий момент подчинённый процесс varnish
  • VarnishAdmin::setCompat — Установить параметр конфигурации compat класса
  • VarnishAdmin::setHost — Установить параметр конфигурации host класса
  • VarnishAdmin::setIdent — Установить параметр конфигурации ident класса
  • VarnishAdmin::setParam — Установить параметр конфигурации на текущем экземпляре varnish
  • VarnishAdmin::setPort — Установить параметр конфигурации port класса
  • VarnishAdmin::setSecret — Установить параметр конфигурации secret класса
  • VarnishAdmin::setTimeout — Установить параметр конфигурации timeout класса
  • VarnishAdmin::start — Запустить рабочий процесс varnish
  • VarnishAdmin::stop — Остановить рабочий процесс varnish


Аутентификация на экземпляре varnish

  • « VarnishAdmin
  • VarnishAdmin::ban »
  • PHP Manual
  • VarnishAdmin
  • Аутентификация на экземпляре varnish

VarnishAdmin::auth

(PECL varnish >= 0.3)

VarnishAdmin::auth — Аутентификация на экземпляре varnish

Описание

public VarnishAdmin::auth ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Запретить URL-адреса, используя выражение VCL

  • « VarnishAdmin::auth
  • VarnishAdmin::banUrl »
  • PHP Manual
  • VarnishAdmin
  • Запретить URL-адреса, используя выражение VCL

VarnishAdmin::ban

(PECL varnish >= 0.3)

VarnishAdmin::ban — Запретить URL-адреса, используя выражение VCL

Описание

public VarnishAdmin::ban ( string $vcl_regex ) : int

Список параметров

vcl_regex

Выражение Varnish VCL. Оно основывается на команде varnish ban.

Возвращаемые значения

Возвращает статус команды varnish.


Запретить URL, используя выражение VCL

  • « VarnishAdmin::ban
  • VarnishAdmin::clearPanic »
  • PHP Manual
  • VarnishAdmin
  • Запретить URL, используя выражение VCL

VarnishAdmin::banUrl

(PECL varnish >= 0.3)

VarnishAdmin::banUrl — Запретить URL, используя выражение VCL

Описание

public VarnishAdmin::banUrl ( string $vcl_regex ) : int

Список параметров

vcl_regex

Регулярное выражение URL в синтаксисе, совместимом с PCRE. Оно основывается на команде varnish ban.

Возвращаемые значения

Возвращает статус команды varnish.


Очистить критические сообщения экземпляра varnish

  • « VarnishAdmin::banUrl
  • VarnishAdmin::connect »
  • PHP Manual
  • VarnishAdmin
  • Очистить критические сообщения экземпляра varnish

VarnishAdmin::clearPanic

(PECL varnish >= 0.4)

VarnishAdmin::clearPanic — Очистить критические сообщения экземпляра varnish

Описание

public VarnishAdmin::clearPanic ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает статус команды varnish.


Подключение к интерфейсу администрирования экземпляра varnish

  • « VarnishAdmin::clearPanic
  • VarnishAdmin::__construct »
  • PHP Manual
  • VarnishAdmin
  • Подключение к интерфейсу администрирования экземпляра varnish

VarnishAdmin::connect

(PECL varnish >= 0.3)

VarnishAdmin::connect — Подключение к интерфейсу администрирования экземпляра varnish

Описание

public VarnishAdmin::connect ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


VarnishAdmin constructor

  • « VarnishAdmin::connect
  • VarnishAdmin::disconnect »
  • PHP Manual
  • VarnishAdmin
  • VarnishAdmin constructor

VarnishAdmin::__construct

(PECL varnish >= 0.3)

VarnishAdmin::__construct — VarnishAdmin constructor

Описание

public VarnishAdmin::__construct ([ array $args ] )

Список параметров

args

Аргументы конфигурации. Возможные ключи:

VARNISH_CONFIG_IDENT - идентификатор экземпляра varnish
VARNISH_CONFIG_HOST - IP-адрес экземпляра varnish
VARNISH_CONFIG_PORT - порт экземпляра varnish
VARNISH_CONFIG_SECRET - секрет экземпляра varnish
VARNISH_CONFIG_TIMEOUT - тайм-аут чтения подключения
VARNISH_CONFIG_COMPAT - совместимость со старшими версиями varnish

Возвращаемые значения

Примеры

Пример #1 Пример использования VarnishAdmin::__construct()

<?php
    $args = array(
        VARNISH_CONFIG_HOST => "::1",
        VARNISH_CONFIG_PORT => 6082,
        VARNISH_CONFIG_SECRET => "5174826b-8595-4958-aa7a-0609632ad7ca",
        VARNISH_CONFIG_TIMEOUT => 300,
    );
    $va = new VarnishAdmin($args);
?>


Отключение от интерфейса администрирования экземпляра varnish

  • « VarnishAdmin::__construct
  • VarnishAdmin::getPanic »
  • PHP Manual
  • VarnishAdmin
  • Отключение от интерфейса администрирования экземпляра varnish

VarnishAdmin::disconnect

(PECL varnish >= 1.0.0)

VarnishAdmin::disconnect — Отключение от интерфейса администрирования экземпляра varnish

Описание

public VarnishAdmin::disconnect ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Получить последнее критическое сообщение на экземпляре varnish

  • « VarnishAdmin::disconnect
  • VarnishAdmin::getParams »
  • PHP Manual
  • VarnishAdmin
  • Получить последнее критическое сообщение на экземпляре varnish

VarnishAdmin::getPanic

(PECL varnish >= 0.4)

VarnishAdmin::getPanic — Получить последнее критическое сообщение на экземпляре varnish

Описание

public VarnishAdmin::getPanic ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает последнее критическое сообщение на текущем экземпляре varnish.


Получить параметры конфигурации текущего экземпляра varnish

  • « VarnishAdmin::getPanic
  • VarnishAdmin::isRunning »
  • PHP Manual
  • VarnishAdmin
  • Получить параметры конфигурации текущего экземпляра varnish

VarnishAdmin::getParams

(PECL varnish >= 0.4)

VarnishAdmin::getParams — Получить параметры конфигурации текущего экземпляра varnish

Описание

public VarnishAdmin::getParams ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с параметрами конфигурации varnish.


Проверить, выполняется в настоящий момент подчинённый процесс varnish

  • « VarnishAdmin::getParams
  • VarnishAdmin::setCompat »
  • PHP Manual
  • VarnishAdmin
  • Проверить, выполняется в настоящий момент подчинённый процесс varnish

VarnishAdmin::isRunning

(PECL varnish >= 0.3)

VarnishAdmin::isRunning — Проверить, выполняется в настоящий момент подчинённый процесс varnish

Описание

public VarnishAdmin::isRunning ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установить параметр конфигурации compat класса

  • « VarnishAdmin::isRunning
  • VarnishAdmin::setHost »
  • PHP Manual
  • VarnishAdmin
  • Установить параметр конфигурации compat класса

VarnishAdmin::setCompat

(PECL varnish >= 0.9.2)

VarnishAdmin::setCompat — Установить параметр конфигурации compat класса

Описание

public VarnishAdmin::setCompat ( int $compat ) : void

Список параметров

compat

Опция совместимости Varnish.

Возвращаемые значения


Установить параметр конфигурации host класса

  • « VarnishAdmin::setCompat
  • VarnishAdmin::setIdent »
  • PHP Manual
  • VarnishAdmin
  • Установить параметр конфигурации host класса

VarnishAdmin::setHost

(PECL varnish >= 0.8)

VarnishAdmin::setHost — Установить параметр конфигурации host класса

Описание

public VarnishAdmin::setHost ( string $host ) : void

Список параметров

host

Параметр конфигурации хоста подключения.

Возвращаемые значения


Установить параметр конфигурации ident класса

  • « VarnishAdmin::setHost
  • VarnishAdmin::setParam »
  • PHP Manual
  • VarnishAdmin
  • Установить параметр конфигурации ident класса

VarnishAdmin::setIdent

(PECL varnish >= 0.8)

VarnishAdmin::setIdent — Установить параметр конфигурации ident класса

Описание

public VarnishAdmin::setIdent ( string $ident ) : void

Список параметров

ident

Параметр конфигурации ident подключения.

Возвращаемые значения


Установить параметр конфигурации на текущем экземпляре varnish

  • « VarnishAdmin::setIdent
  • VarnishAdmin::setPort »
  • PHP Manual
  • VarnishAdmin
  • Установить параметр конфигурации на текущем экземпляре varnish

VarnishAdmin::setParam

(PECL varnish >= 0.4)

VarnishAdmin::setParam — Установить параметр конфигурации на текущем экземпляре varnish

Описание

public VarnishAdmin::setParam ( string $name , string|integer $value ) : int

Список параметров

name

Название параметра конфигурации Varnish.

value

Значение параметра конфигурации Varnish.

Возвращаемые значения

Возвращает статус команды varnish.


Установить параметр конфигурации port класса

  • « VarnishAdmin::setParam
  • VarnishAdmin::setSecret »
  • PHP Manual
  • VarnishAdmin
  • Установить параметр конфигурации port класса

VarnishAdmin::setPort

(PECL varnish >= 0.8)

VarnishAdmin::setPort — Установить параметр конфигурации port класса

Описание

public VarnishAdmin::setPort ( int $port ) : void

Список параметров

port

Параметр конфигурации подключения port.

Возвращаемые значения


Установить параметр конфигурации secret класса

  • « VarnishAdmin::setPort
  • VarnishAdmin::setTimeout »
  • PHP Manual
  • VarnishAdmin
  • Установить параметр конфигурации secret класса

VarnishAdmin::setSecret

(PECL varnish >= 0.8)

VarnishAdmin::setSecret — Установить параметр конфигурации secret класса

Описание

public VarnishAdmin::setSecret ( string $secret ) : void

Список параметров

secret

Параметр конфигурации secret класса.

Возвращаемые значения


Установить параметр конфигурации timeout класса

  • « VarnishAdmin::setSecret
  • VarnishAdmin::start »
  • PHP Manual
  • VarnishAdmin
  • Установить параметр конфигурации timeout класса

VarnishAdmin::setTimeout

(PECL varnish >= 0.8)

VarnishAdmin::setTimeout — Установить параметр конфигурации timeout класса

Описание

public VarnishAdmin::setTimeout ( int $timeout ) : void

Список параметров

timeout

Параметр конфигурации timeout класса.

Возвращаемые значения


Запустить рабочий процесс varnish

  • « VarnishAdmin::setTimeout
  • VarnishAdmin::stop »
  • PHP Manual
  • VarnishAdmin
  • Запустить рабочий процесс varnish

VarnishAdmin::start

(PECL varnish >= 0.3)

VarnishAdmin::start — Запустить рабочий процесс varnish

Описание

public VarnishAdmin::start ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает статус команды varnish.


Остановить рабочий процесс varnish

  • « VarnishAdmin::start
  • VarnishStat »
  • PHP Manual
  • VarnishAdmin
  • Остановить рабочий процесс varnish

VarnishAdmin::stop

(PECL varnish >= 0.3)

VarnishAdmin::stop — Остановить рабочий процесс varnish

Описание

public VarnishAdmin::stop ( void ) : int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает статус команды varnish.


Класс VarnishStat

(PECL varnish >= 0.3)

Введение

Обзор классов

VarnishStat {
/* Методы */
public __construct ([ array $args ] )
public getSnapshot ( void ) : array
}

Содержание

  • VarnishStat::__construct — Конструктор VarnishStat
  • VarnishStat::getSnapshot — Получить снимок статистики текущего экземпляра varnish


Конструктор VarnishStat

  • « VarnishStat
  • VarnishStat::getSnapshot »
  • PHP Manual
  • VarnishStat
  • Конструктор VarnishStat

VarnishStat::__construct

(PECL varnish >= 0.3)

VarnishStat::__construct — Конструктор VarnishStat

Описание

public VarnishStat::__construct ([ array $args ] )

Список параметров

args

Аргументы конфигурации. Возможные ключи:

VARNISH_CONFIG_IDENT - путь идентификации экземпляра varnish

Возвращаемые значения


Получить снимок статистики текущего экземпляра varnish

  • « VarnishStat::__construct
  • VarnishLog »
  • PHP Manual
  • VarnishStat
  • Получить снимок статистики текущего экземпляра varnish

VarnishStat::getSnapshot

(PECL varnish >= 0.3)

VarnishStat::getSnapshot — Получить снимок статистики текущего экземпляра varnish

Описание

public VarnishStat::getSnapshot ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив со снимком статистики varnish. Ключи массива идентичны ключам в команде varnishstat.


Класс VarnishLog

(PECL varnish >= 0.6)

Введение

Обзор классов

VarnishLog {
/* Constants */
const integer TAG_Debug = 0 ;
const integer TAG_Error = 1 ;
const integer TAG_CLI = 2 ;
const integer TAG_StatSess = 3 ;
const integer TAG_ReqEnd = 4 ;
const integer TAG_SessionOpen = 5 ;
const integer TAG_SessionClose = 6 ;
const integer TAG_BackendOpen = 7 ;
const integer TAG_BackendXID = 8 ;
const integer TAG_BackendReuse = 9 ;
const integer TAG_BackendClose = 10 ;
const integer TAG_HttpGarbage = 11 ;
const integer TAG_Backend = 12 ;
const integer TAG_Length = 13 ;
const integer TAG_FetchError = 14 ;
const integer TAG_RxRequest = 15 ;
const integer TAG_RxResponse = 16 ;
const integer TAG_RxStatus = 17 ;
const integer TAG_RxURL = 18 ;
const integer TAG_RxProtocol = 19 ;
const integer TAG_RxHeader = 20 ;
const integer TAG_TxRequest = 21 ;
const integer TAG_TxResponse = 22 ;
const integer TAG_TxStatus = 23 ;
const integer TAG_TxURL = 24 ;
const integer TAG_TxProtocol = 25 ;
const integer TAG_TxHeader = 26 ;
const integer TAG_ObjRequest = 27 ;
const integer TAG_ObjResponse = 28 ;
const integer TAG_ObjStatus = 29 ;
const integer TAG_ObjURL = 30 ;
const integer TAG_ObjProtocol = 31 ;
const integer TAG_ObjHeader = 32 ;
const integer TAG_LostHeader = 33 ;
const integer TAG_TTL = 34 ;
const integer TAG_Fetch_Body = 35 ;
const integer TAG_VCL_acl = 36 ;
const integer TAG_VCL_call = 37 ;
const integer TAG_VCL_trace = 38 ;
const integer TAG_VCL_return = 39 ;
const integer TAG_VCL_error = 40 ;
const integer TAG_ReqStart = 41 ;
const integer TAG_Hit = 42 ;
const integer TAG_HitPass = 43 ;
const integer TAG_ExpBan = 44 ;
const integer TAG_ExpKill = 45 ;
const integer TAG_WorkThread = 46 ;
const integer TAG_ESI_xmlerror = 47 ;
const integer TAG_Hash = 48 ;
const integer TAG_Backend_health = 49 ;
const integer TAG_VCL_Log = 50 ;
const integer TAG_Gzip = 51 ;
/* Методы */
public __construct ([ array $args ] )
public getLine ( void ) : array
public static getTagName ( int $index ) : string
}

Предопределенные константы

VarnishLog::TAG_Debug

VarnishLog::TAG_Error

VarnishLog::TAG_CLI

VarnishLog::TAG_StatSess

VarnishLog::TAG_ReqEnd

VarnishLog::TAG_SessionOpen

VarnishLog::TAG_SessionClose

VarnishLog::TAG_BackendOpen

VarnishLog::TAG_BackendXID

VarnishLog::TAG_BackendReuse

VarnishLog::TAG_BackendClose

VarnishLog::TAG_HttpGarbage

VarnishLog::TAG_Backend

VarnishLog::TAG_Length

VarnishLog::TAG_FetchError

VarnishLog::TAG_RxRequest

VarnishLog::TAG_RxResponse

VarnishLog::TAG_RxStatus

VarnishLog::TAG_RxURL

VarnishLog::TAG_RxProtocol

VarnishLog::TAG_RxHeader

VarnishLog::TAG_TxRequest

VarnishLog::TAG_TxResponse

VarnishLog::TAG_TxStatus

VarnishLog::TAG_TxURL

VarnishLog::TAG_TxProtocol

VarnishLog::TAG_TxHeader

VarnishLog::TAG_ObjRequest

VarnishLog::TAG_ObjResponse

VarnishLog::TAG_ObjStatus

VarnishLog::TAG_ObjURL

VarnishLog::TAG_ObjProtocol

VarnishLog::TAG_ObjHeader

VarnishLog::TAG_LostHeader

VarnishLog::TAG_TTL

VarnishLog::TAG_Fetch_Body

VarnishLog::TAG_VCL_acl

VarnishLog::TAG_VCL_call

VarnishLog::TAG_VCL_trace

VarnishLog::TAG_VCL_return

VarnishLog::TAG_VCL_error

VarnishLog::TAG_ReqStart

VarnishLog::TAG_Hit

VarnishLog::TAG_HitPass

VarnishLog::TAG_ExpBan

VarnishLog::TAG_ExpKill

VarnishLog::TAG_WorkThread

VarnishLog::TAG_ESI_xmlerror

VarnishLog::TAG_Hash

VarnishLog::TAG_Backend_health

VarnishLog::TAG_VCL_Log

VarnishLog::TAG_Gzip

Содержание

  • VarnishLog::__construct — Конструктор Varnishlog
  • VarnishLog::getLine — Получить следующую строку журнала
  • VarnishLog::getTagName — Получить строковое представление тега журнала по его индексу


Конструктор Varnishlog

  • « VarnishLog
  • VarnishLog::getLine »
  • PHP Manual
  • VarnishLog
  • Конструктор Varnishlog

VarnishLog::__construct

(PECL varnish >= 0.6)

VarnishLog::__construct — Конструктор Varnishlog

Описание

public VarnishLog::__construct ([ array $args ] )

Список параметров

args

Аргументы конфигурации. Возможные ключи:

VARNISH_CONFIG_IDENT - путь идентификации экземпляра varnish

Возвращаемые значения


Получить следующую строку журнала

  • « VarnishLog::__construct
  • VarnishLog::getTagName »
  • PHP Manual
  • VarnishLog
  • Получить следующую строку журнала

VarnishLog::getLine

(PECL varnish >= 0.6)

VarnishLog::getLine — Получить следующую строку журнала

Описание

public VarnishLog::getLine ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с данными строки журнала.


Получить строковое представление тега журнала по его индексу

  • « VarnishLog::getLine
  • YAZ »
  • PHP Manual
  • VarnishLog
  • Получить строковое представление тега журнала по его индексу

VarnishLog::getTagName

(PECL varnish >= 0.6)

VarnishLog::getTagName — Получить строковое представление тега журнала по его индексу

Описание

public static VarnishLog::getTagName ( int $index ) : string

Список параметров

index

Индекс тега журнала.

Возвращаемые значения

Возвращает имя тега журнала в виде строки (string).


YAZ

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции YAZ
    • yaz_addinfo — Возвращает дополнительную информацию в случае ошибки
    • yaz_ccl_conf — Конфигурирует CCL-парсер
    • yaz_ccl_parse — Invoke CCL Parser
    • yaz_close — Закрывает соединение YAZ
    • yaz_connect — Подготавливает соединение с сервером Z39.50
    • 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_es — Prepares for an Extended Service Request
    • 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 — Возвращает запись
    • yaz_scan_result — Возвращает результат запроса сканирования
    • yaz_scan — Подготовка сканирования
    • yaz_schema — Устанавливает схему для возвращаемых значений
    • yaz_search — Подготовка поиска
    • yaz_set_option — Устанавливает параметры для соединения
    • yaz_sort — Задает критерий сортировки
    • yaz_syntax — Задает предпочитаемый синтаксис для извлекаемой записи
    • yaz_wait — Ожидает выполнения запросов Z39.50 серверами


Введение

Модуль обеспечивает взаимодействие PHP с YAZ, инструментом взаимодействия с протоколом поиска информации (» Z39.50 Protocol for Information Retrieval). Используя этот модуль, вы можете легко реализовать источник (клиент) Z39.50, который будет сканировать и осуществлять поиск параллельно по нескольким целям (серверам) Z39.50.

Модуль YAZ скрывает сложность взаимодействия по протоколу Z39.50, таким образом его довольно легко использовать. Он обеспечивает постоянное соединение без статуса, схожее с соединением к различным реляционным базам данных для PHP. Это означает, что сессии не сохраняют статус, но могут использоваться совместно несколькими пользователями. Таким образом, в большинстве случаев сохраняются шаги инициализации и само соединение.

YAZ доступен по » http://www.indexdata.dk/yaz/. Новую информацию, примеры скриптов и много другое для данного модуля вы можете найти на » http://www.indexdata.dk/phpyaz/.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.0.0.


Требования

Скачайте YAZ (поддерживается ANSI/NISO Z39.50) и установите его. YAZ может быть получен в виде исходных кодов или различных готовых пакетов c » архива YAZ. Такие операционные системы как Debian GNU/Linux, Suse Linux, FreeBSD уже имеют YAZ в своем дистрибутиве.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/yaz

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Замечание: Информация для пользователей Windows

php_yaz.dll зависит от yaz.dll. Библиотека yaz.dll яваляется частью Win32 ZIP с сайта PHP. Она так же входит в установку Windows YAZ доступной по ссылке » YAZ WIN32.

На платформе Windows не забудьте добавить диркторию PHP в системную переменную PATH, чтобы система могла найти файл yaz.dll.

Внимание

Расширение IMAP не может использоваться вместе с расширениями перекодировки, YAZ или Cyrus. Это связано с тем фактом, что они оба используют одни и те же внутренние символы. Замечание: Версии Yaz 2.0 и выше избавлены от этого недостатка.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • YAZ
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

PHP/YAZ хранит список соединений с адресатами (Z-Ассоциации). Ресурс же предоставляет соединение с адресатом.

Пример ниже демонстрирует особенность параллельного поиска по API. Если аргументы не переданы, выводится форма запроса; иначе (переданы аргументы) происходит поиск по адресам, указанным в массиве host.

Пример #1 Параллельный поиск с помощью 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
    <input type="checkbox"
    name="host[]" value="localhost:9999/Default" />
        Локальный тест
    <input type="checkbox" checked="checked"
    name="host[]" value="z3950.loc.gov:7090/voyager" />
        Библиотека Конгресса
    <br />
    Запрос RPN:
    <input type="text" size="30" name="query" />
    <input type="submit" name="action" value="Поиск" />
    </form>
    ';
} else {
    echo 'Вы искали ' . 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";
        } else {
            $hits = yaz_hits($id[$i]);
            echo "Всего результатов $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

Содержание

  • yaz_addinfo — Возвращает дополнительную информацию в случае ошибки
  • yaz_ccl_conf — Конфигурирует CCL-парсер
  • yaz_ccl_parse — Invoke CCL Parser
  • yaz_close — Закрывает соединение YAZ
  • yaz_connect — Подготавливает соединение с сервером Z39.50
  • 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_es — Prepares for an Extended Service Request
  • 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 — Возвращает запись
  • yaz_scan_result — Возвращает результат запроса сканирования
  • yaz_scan — Подготовка сканирования
  • yaz_schema — Устанавливает схему для возвращаемых значений
  • yaz_search — Подготовка поиска
  • yaz_set_option — Устанавливает параметры для соединения
  • yaz_sort — Задает критерий сортировки
  • yaz_syntax — Задает предпочитаемый синтаксис для извлекаемой записи
  • yaz_wait — Ожидает выполнения запросов Z39.50 серверами


Возвращает дополнительную информацию в случае ошибки

  • « Функции YAZ
  • yaz_ccl_conf »
  • PHP Manual
  • Функции YAZ
  • Возвращает дополнительную информацию в случае ошибки

yaz_addinfo

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_addinfo — Возвращает дополнительную информацию в случае ошибки

Описание

yaz_addinfo ( resource $id ) : string

Возвращает дополнительную информацию в случае возникновения ошибки последнего запроса к серверу.

С некоторыми серверами эта функция может вернуть ту же строку, что и функция yaz_error().

Список параметров

id

Дескриптор соединения, возвращаемый функцией yaz_connect().

Возвращаемые значения

Строка содержит дополнительную информацию об ошибке или пустое значение, если последняя операция прошла успешно или нет дополнительной информации от сервера.

Смотрите также

  • yaz_error() - Returns error description
  • yaz_errno() - Returns error number


Конфигурирует CCL-парсер

  • « yaz_addinfo
  • yaz_ccl_parse »
  • PHP Manual
  • Функции YAZ
  • Конфигурирует CCL-парсер

yaz_ccl_conf

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_ccl_conf — Конфигурирует CCL-парсер

Описание

yaz_ccl_conf ( resource $id , array $config ) : void

Функция конфигурирует CCL-парсер запросов для сервера с определениями точек доступа (CCL-квалификаторов) и их отображения в RPN.

Для отображения специфического CCL-запроса к RPN вызовите затем функцию yaz_ccl_parse().

Список параметров

id

Идентификатор ресурса, возвращаемый функцией yaz_connect().

config

Массив настроек. Каждый ключ массива - это имя CCL-поля и соответствующее значение, содержащее строку, которая определяет отображение в RPN.

Отображение - это последовательность пар атрибут-тип, атрибут-значение. Атрибут-тип и атрибут-значение разделены знаком равенства (=). Каждая пара отделяется пробелом.

Дополнительную информация можно найти на странице » CCL.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

В примере CCL-парсер настроен для поддержки трех полей CCL: ti, au и isbn. Каждое поле отображается в его BIB-1 эквиваленте. Принимается, что переменная $id - это целевой ID.

Пример #1 Настройка CCL

<?php
$fields = array(
  "ti" => "1=4",
  "au"   => "1=1",
  "isbn" => "1=7"
);
yaz_ccl_conf($id, $fields);
?>

Смотрите также

  • yaz_ccl_parse() - Invoke CCL Parser


Invoke CCL Parser

  • « yaz_ccl_conf
  • yaz_close »
  • PHP Manual
  • Функции YAZ
  • Invoke CCL Parser

yaz_ccl_parse

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_ccl_parse — Invoke CCL Parser

Описание

yaz_ccl_parse ( resource $id , string $query , array &$result ) : bool

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

  • « yaz_ccl_parse
  • yaz_connect »
  • PHP Manual
  • Функции YAZ
  • Закрывает соединение YAZ

yaz_close

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_close — Закрывает соединение YAZ

Описание

yaz_close ( resource $id ) : bool

Закрывает соединение, определяемое параметром id.

Замечание:

Функция закроет только непостоянные соединения, открытые функцией yaz_connect() с параметром persistent установленным в значение FALSE.

Список параметров

id

Дескриптор соединения, возвращаемый yaz_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • yaz_connect() - Подготавливает соединение с сервером Z39.50


Подготавливает соединение с сервером Z39.50

  • « yaz_close
  • yaz_database »
  • PHP Manual
  • Функции YAZ
  • Подготавливает соединение с сервером Z39.50

yaz_connect

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_connect — Подготавливает соединение с сервером Z39.50

Описание

yaz_connect ( string $zurl [, mixed $options ] ) : mixed

Функция возвращает дескриптор соединения в случае успешного выполнения и ноль в случае возникновения ошибки.

yaz_connect() подготавливает соединение с сервером Z39.50. Функция неблокирующая и не пытается установить соединение, а лишь готовит соединение для последующего выполнения функцией yaz_wait().

Замечание:

» YAZ proxy бесплатно доступный агент Z39.50.

Список параметров

zurl

Строка, принимающая форму host[:port][/database]. Если порт опущен, то по умолчанию используется 210 порт. Если опущено название базы данных, используется база с именем Default.

options

Если задается строка, то она рассматривается как строка аутентификации Z39.50 V2 (OpenAuth).

Если задан массив, то содержимое массива выступает в качестве параметров.

user

Имя пользователя для аутентификации.

group

Название группы для аутентификации.

password

Пароль для аутентификации.

cookie

Cookie для сессии (YAZ proxy).

proxy

Прокси для подключения (YAZ proxy).

persistent

Имеет логический тип. Если принимает TRUE - соединение постоянное, если FALSE - непостоянное соединение. По умолчанию соединение постоянное.

Замечание:

Если вы открыли постоянное соединение, вы не сможете закрыть его позднее с помощью yaz_close().

piggyback

Имеет логический тип. Если принимает TRUE, то режим передачи прямых и обратных пакетов включен; если FALSE, то данный режим отключен. По умолчанию режим передачи прямых и обратных пакетов включен.

Включение режима передачи прямых и обратных пакетов более эффективно и обычно снижает нагрузку в сети для впервые выбранных записей. Однако некоторые сервера Z39.50 не поддерживают режим прямых и обратных пакетов или игнорируют эту настройку. Для них данный режим должен быть отключен.

charset

Строка, определяющая кодировку используемую в Z39.50 и при передаче данных. Возможны такие значения как: ISO-8859-1, UTF-8, UTF-16.

Большинство серверов Z39.50 не поддерживают данную настройку (и таким образом она игнорируется). Много серверов используют кодировку ISO-8859-1 для запросов и сообщений. Кодировки записей в форматах MARC21/USMARC не затрагиваются данной опцией.

preferredMessageSize

Целочисленный параметр, определяющий максимальный размер всех записей, возвращаемых сервером при поиске, в байтах. Для более подробной информации смотрите стандарт » Z39.50.

Замечание:

Опция поддерживается в версии PECL YAZ 1.0.5 и более поздних.

maximumRecordSize

Целочисленный параметр, определяющий максимальное количество байт в отдельной записи, возвращаемой сервером в результате поиска. Данный параметр относится к Exceptional-record-size в стандарте » Z39.50.

Замечание:

Опция поддерживается в версии PECL YAZ 1.0.5 и более поздних.

Возвращаемые значения

Дескриптор соединения в случае успешного выполнения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
4.1.0 | Был добавлен параметр options.

Смотрите также

  • yaz_close() - Закрывает соединение YAZ


Specifies the databases within a session

  • « yaz_connect
  • yaz_element »
  • PHP Manual
  • Функции YAZ
  • Specifies the databases within a session

yaz_database

(PHP 4 >= 4.0.6, PECL yaz >= 0.9.0)

yaz_database — Specifies the databases within a session

Описание

yaz_database ( resource $id , string $databases ) : bool

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 в случае возникновения ошибки.


Specifies Element-Set Name for retrieval

  • « yaz_database
  • yaz_errno »
  • PHP Manual
  • Функции YAZ
  • Specifies Element-Set Name for retrieval

yaz_element

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_element — Specifies Element-Set Name for retrieval

Описание

yaz_element ( resource $id , string $elementset ) : bool

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 appears to have no effect, 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 в случае возникновения ошибки.


Returns error number

  • « yaz_element
  • yaz_error »
  • PHP Manual
  • Функции YAZ
  • Returns error number

yaz_errno

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_errno — Returns error number

Описание

yaz_errno ( resource $id ) : int

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() - Returns error description
  • yaz_addinfo() - Возвращает дополнительную информацию в случае ошибки


Returns error description

  • « yaz_errno
  • yaz_es_result »
  • PHP Manual
  • Функции YAZ
  • Returns error description

yaz_error

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_error — Returns error description

Описание

yaz_error ( resource $id ) : string

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() - Returns error number
  • yaz_addinfo() - Возвращает дополнительную информацию в случае ошибки


Inspects Extended Services Result

  • « yaz_error
  • yaz_es »
  • PHP Manual
  • Функции YAZ
  • Inspects Extended Services Result

yaz_es_result

(PHP 4 >= 4.2.0, PECL yaz >= 0.9.0)

yaz_es_result — Inspects Extended Services Result

Описание

yaz_es_result ( resource $id ) : array

This function inspects the last returned Extended Service result from a server. An Extended Service is initiated by either yaz_item_order() or yaz_es().

Список параметров

id

The connection resource returned by yaz_connect().

Возвращаемые значения

Returns array with element targetReference for the reference for the extended service operation (generated and returned from the server).

Смотрите также

  • yaz_es() - Prepares for an Extended Service Request


Prepares for an Extended Service Request

  • « yaz_es_result
  • yaz_get_option »
  • PHP Manual
  • Функции YAZ
  • Prepares for an Extended Service Request

yaz_es

(PECL yaz >= 0.9.0)

yaz_es — Prepares for an Extended Service Request

Описание

yaz_es ( resource $id , string $type , array $args ) : void

This function prepares for an Extended Service Request. Extended Services is family of various Z39.50 facilities, such as Record Update, Item Order, Database administration etc.

Замечание:

Many Z39.50 Servers do not support Extended Services.

The yaz_es() creates an Extended Service Request packages and puts it into a queue of operations. Use yaz_wait() to send the request(s) to the server. After completion of yaz_wait() the result of the Extended Service operation should be expected with a call to yaz_es_result().

Список параметров

id

The connection resource returned by yaz_connect().

type

A string which represents the type of the Extended Service: itemorder (Item Order), create (Create Database), drop (Drop Database), commit (Commit Operation), update (Update Record), xmlupdate (XML Update). Each type is specified in the following section.

args

An array with extended service options plus package specific options. The options are identical to those offered in the C API of ZOOM C. Refer to the ZOOM » Extended Services.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Record Update

<?php
$con = yaz_connect("myhost/database");
$args = array (
    "record" => "<gils><title>some title</title></gils>",
    "syntax" => "xml",
    "action" => "specialUpdate"
);
yaz_es($con, "update", $args);
yaz_wait();
$result = yaz_es_result($id);
?>

Смотрите также

  • yaz_es_result() - Inspects Extended Services Result


Returns value of option for connection

  • « yaz_es
  • yaz_hits »
  • PHP Manual
  • Функции YAZ
  • Returns value of option for connection

yaz_get_option

(PECL yaz >= 0.9.0)

yaz_get_option — Returns value of option for connection

Описание

yaz_get_option ( resource $id , string $name ) : string

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


Returns number of hits for last search

  • « yaz_get_option
  • yaz_itemorder »
  • PHP Manual
  • Функции YAZ
  • Returns number of hits for last search

yaz_hits

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_hits — Returns number of hits for last search

Описание

yaz_hits ( resource $id [, array &$searchresult ] ) : int

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.

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.


Prepares for Z39.50 Item Order with an ILL-Request package

  • « yaz_hits
  • yaz_present »
  • PHP Manual
  • Функции YAZ
  • Prepares for Z39.50 Item Order with an ILL-Request package

yaz_itemorder

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_itemorder — Prepares for Z39.50 Item Order with an ILL-Request package

Описание

yaz_itemorder ( resource $id , array $args ) : void

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

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Prepares for retrieval (Z39.50 present)

  • « yaz_itemorder
  • yaz_range »
  • PHP Manual
  • Функции YAZ
  • Prepares for retrieval (Z39.50 present)

yaz_present

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_present — Prepares for retrieval (Z39.50 present)

Описание

yaz_present ( resource $id ) : bool

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 в случае возникновения ошибки.


Specifies a range of records to retrieve

  • « yaz_present
  • yaz_record »
  • PHP Manual
  • Функции YAZ
  • Specifies a range of records to retrieve

yaz_range

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_range — Specifies a range of records to retrieve

Описание

yaz_range ( resource $id , int $start , int $number ) : void

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_range
  • yaz_scan_result »
  • PHP Manual
  • Функции YAZ
  • Возвращает запись

yaz_record

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_record — Возвращает запись

Описание

yaz_record ( resource $id , int $pos , string $type ) : string

Функция yaz_record() проверяет запись в текущем результирующем наборе на позиции, определенной параметром pos.

Список параметров

id

Дескриптор соединения, возвращаемый yaz_connect().

pos

Позиция записи. Записи в результирующем наборе нумеруются как 1, 2, ... $hits, где $hits - число записей в результирующем наборе, которое возвращается функцией yaz_hits().

type

type определяет форму возвращаемой записи.

Замечание:

Только приложение несет ответственность за достоверность того, что возвращаемые записи с сервера Z39.50/SRW в надлежащем формате. Задаваемый тип только определяет преобразование, которое имеет место на стороне клиента (в PHP/YAZ).

Помимо преобразования переданной записи в строку/массив, PHP/YAZ так же может преобразовывать кодировку записи. Особенно это актуально для форматов USMARC/MARC21, которые рекомендуется преобразовывать, поскольку они обычно возвращаются в кодировке MARC-8, которую не понимают браузеры и другие приложения. Чтобы определить преобразование, добавьте ; charset=from, to, где from текущая кодировка записи и to результирующая кодировка, которая будет доступна PHP.

string

Запись возвращается в виде строки для отображения. В этом режиме все MARC-записи преобразуются в построчное представление, поскольку в формате ISO2709 их трудно прочитать. Записи XML и SUTRS возвращаются в их родном формате. GRS-1 возвращается в (безобразном) построчном представлении.

Данный формат применим для быстрого вывода записей на экран, для отладки, или в случае, когда корректное отображение невозможно.

xml

Запись возвращается как строка XML, если это возможно. В этом режиме все MARC-записи преобразовываются в формат » MARCXML. Записи XML и SUTRS возвращаются в их родном формате. GRS-1 не поддерживается.

Этот формат схож с string, за исключением того, что MARC-записи преобразуются в MARCXML.

Данный формат применим, если запись будет передана парсеру XML или XSLT-процессору.

raw

Запись возвращается в виде строки в исходной форме. Данный тип применим для MARC, XML и SUTRS, но не работает для GRS-1.

MARC-запись возвращается в формате ISO2709, XML и SUTRS возвращаются как строка.

syntax

Синтаксис возвращаемой записи, например USmarc, GRS-1, XML, и д.р.

database

Имя базы данных, сопоставленное с записью.

array

Запись возвращается в виде массива, сопоставленного со структурой GRS-1. Данный тип применим для MARC и GRS-1. XML, SUTRS не поддерживаются и, если исходная запись в формате XML или SUTRS, возвращается пустая строка.

Возвращаемый массив состоит из списка, который соответствует каждому внутреннему узлу или конечному элементу(leaf) формата GRS-1. Каждый список состоит из подсписка, первым элементом которого будет путь и дата (если она доступна).

Путь, представленый в виде строки, содержит список каждой компоненты дерева (для структуры записи GRS-1) от корневого элемента до конечного. Каждая компонента представлена парой тип поля и значение, в форме (тип, значение).

Начальное поле обычно сопоставлено типу 3. MARC-записи тоже могут быть возвращены в виде массива (они конвертируются в GRS-1).

Возвращаемые значения

Возвращает запись на позиции pos или пустую строку, если на заданной позиции нет записей.

Если на заданной позиции в базе данных нет записей, будет возвращена пустая строка.

Примеры

Пример #1 Массив для записи GRS-1

Возьмем запись GRS-1, вида:

(4,52)Robert M. Pirsig
(4,70)
      (4,90)
            (2,7)Transworld Publishers, ltd.
Данная запись содержит два узла на верхнем(корневом) уровне. Первый элемент корневого уровня (4,52) [тип 4, значение 52], и содержит данные Robert M. Pirsig. Второй элемент корневого уровня (4,70) содержит поддерево с единственным элементом (4,90). Элемент (4,90) в свою очередь содержит поддерево (2,7) с данными Transworld Publishers, ltd..

Если данная запись находится на позиции $p, тогда скрипт

<?php

$ar = yaz_record($id, $p, "array");
print_r($ar);

?>
выведет:
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 Пример работы с MARCXML

Скрипт ниже вернет запись MARC21/USMARC в формате MARCXML. Исходная запись будет возвращена в кодировке marc-8 (неизвестной для большинства XML парсеров), поэтому она преобразуется в UTF-8.

<?php
$rec = yaz_record($id, $p, "xml; charset=marc-8,utf-8");
?>

Запись $rec может быть обработана процессором Sablotron XSLT так:

<?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;

?>

Для PHP 5 нужно использовать модуль XSL вместо Sablotron XSLT.


Возвращает результат запроса сканирования

  • « yaz_record
  • yaz_scan »
  • PHP Manual
  • Функции YAZ
  • Возвращает результат запроса сканирования

yaz_scan_result

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_scan_result — Возвращает результат запроса сканирования

Описание

yaz_scan_result ( resource $id [, array &$result ] ) : array

yaz_scan_result() возвращает термы и ассоциированную с ними информацию, полученные с сервера последним вызовом функции yaz_scan().

Список параметров

id

Дескриптор соединения, возвращенный yaz_connect().

result

Если задан, то этот массив будет содержать дополнительную информацию из запроса сканирования:

  • number - Количество возвращенных элементов

  • stepsize - Размер шага

  • position - Позиция терма

  • status - Статус сканирования

Возвращаемые значения

Возвращает массив (0..n-1), где n - количество возвращенных термов. Каждое значение массива представляет собой пару, первый элемент которой - терм, второй - количество результатов.


Подготовка сканирования

  • « yaz_scan_result
  • yaz_schema »
  • PHP Manual
  • Функции YAZ
  • Подготовка сканирования

yaz_scan

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_scan — Подготовка сканирования

Описание

yaz_scan ( resource $id , string $type , string $startterm [, array $flags ] ) : void

Функция подготавливает запрос сканирования для установленного соединения по протоколу Z39.50.

Чтобы передать запрос сканирования на сервер и получить ответ нужно вызвать функцию yaz_wait(). По заверению yaz_wait() вызовите yaz_error() для получения ошибки и yaz_scan_result() для получения результата.

Список параметров

id

Дескриптор соединения, возвращенный yaz_connect().

type

В настоящее время поддерживается только rpn.

startterm

Начальная элемент для сканирования

Форма в которой представлен начальный элемент сканирования задается параметром type.

Синтаксис этого параметра схож с запросом RPN, который описан для yaz_search(). Он состоит из нуля или более операторных настроек @attr, за которыми следует единственная лексема.

flags

Этот необязательный параметр определяет дополнительную информацию для управления поведением запроса сканирования. Из массива флагов доступны три индекса: number (количество запрашиваемых термов), position (позиция терма) и stepSize (размер шага).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Функция PHP которая сканирует заглавия

<?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 ";
    }
    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 "Сканирование не удалось. Ошибка: " . yaz_error($id) . "<br />";
  }
}
?>


Устанавливает схему для возвращаемых значений

  • « yaz_scan
  • yaz_search »
  • PHP Manual
  • Функции YAZ
  • Устанавливает схему для возвращаемых значений

yaz_schema

(PHP 4 >= 4.2.0, PECL yaz >= 0.9.0)

yaz_schema — Устанавливает схему для возвращаемых значений

Описание

yaz_schema ( resource $id , string $schema ) : void

yaz_schema() устанавливает схему для возвращаемых значений.

Функция должна быть вызвана до yaz_search() или yaz_present().

Список параметров

id

Дескриптор соединения, возвращенный yaz_connect().

schema

Схема должна быть определена как OID (Object Identifier) в исходном представлении с разделителями в виде точек (например 1.2.840.10003.13.4) или как одна из известных форм имени схемы: GILS-schema, Holdings, Zthes, ...

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Подготовка поиска

  • « yaz_schema
  • yaz_set_option »
  • PHP Manual
  • Функции YAZ
  • Подготовка поиска

yaz_search

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_search — Подготовка поиска

Описание

yaz_search ( resource $id , string $type , string $query ) : bool

yaz_search() подготавливает поиск на заданном соединении.

Также как и yaz_connect() эта функция неблокирующая и только подготавливает условия поиска, который будет выполнен функцией yaz_wait().

Список параметров

id

Дескриптор соединения, возвращаемый функцией yaz_connect().

type

Данный параметр представляет собой тип запроса. Поддерживается только тип "rpn". В этом случае третий аргумент определяет запрос Type-1 в префиксной нотации запросов.

query

Запрос RPN является текстовым представлением запроса Type-1, как указано в стандарте Z39.50. Тем не менее в текстовом представлении, используемом в YAZ, применяется префиксная нотация, т.е. оператор предшествует операнду. Строка запроса представляет собой последовательность лексем(токенов), в которой игнорируются пробельные символы, кроме тех, что находятся между двойными кавычками. Лексемы, которые начинаются с символа @ являются операторами, иначе они воспринимаются как поисковый термин.

Операторы RPN
Конструкция | Описание
@and query1 query2 | пересечение query1 и query2
@or query1 query2 | объединение query1 и query2
@not query1 query2 | query1 и не query2
@set name | ссылка на набор возвращаемых значений
@attrset set query | определяет набор атрибутов set для запроса query. Эта конструкция доступна только один раз - в самом начале запроса.
@attr [set] type=value query | устанавливает атрибуты запроса. Значения type и value - целочисленные и определяют тип атрибута и тип значения соответственно. Значение set, если оно задано, определяет настройку атрибутов.

Всю информацию о доступных атрибутах вы можете найти на сайте » Z39.50 Maintenance Agency

Замечание:

Если вы хотите использовать более дружественную нотацию, используйте CCL парсер - функции yaz_ccl_conf() и yaz_ccl_parse().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Примеры запросов

Вы можете использовать простые термы, например:

computer
которые находят совпадения слова "computer" в документах. Атрибуты не определены.

запрос

"knuth donald"
находит документы, где встречается фраза "knuth donald" (предполагается, что сервер поддерживает поиск по фразам).

Запрос содержит два атрибута для одной фразы.

@attr 1=1003 @attr 4=1 "knuth donald"
Первый атрибут имеет тип 1 (используется Bib-1), значение которого равно 1003(Автор). Второй атрибут имеет тип 4 (структура), со значением 1 (фраза). Таким образом данный запрос будет искать документы автор которых Donald Knuth.

запрос

@and @or a b @not @or c d e
в инфиксной нотации представляется как (a или b) и ((c или d) и не e).

ещё один более сложный запрос:

@attrset gils @and @attr 1=4 art @attr 1=2000 company
Весь запрос будет использовать набор атрибутов GILS. Запрос ищет документы, где art встречается в заглавии (GILS,BIB-1) и company в поставщиках.


Устанавливает параметры для соединения

  • « yaz_search
  • yaz_sort »
  • PHP Manual
  • Функции YAZ
  • Устанавливает параметры для соединения

yaz_set_option

(PECL yaz >= 0.9.0)

yaz_set_option — Устанавливает параметры для соединения

Описание

yaz_set_option ( resource $id , string $name , string $value ) : void
yaz_set_option ( resource $id , array $options ) : void

Устанавливает один или несколько параметров для указанного соединения.

Список параметров

id

Дискриптор соединения, возвращенный yaz_connect().

name или options

Может быть строкой или массивом.

Если задана строка, то она будет воспринята как название параметра, которое нужно установить. Нужно задать значение value.

Если задан массив, то он должен быть ассоциативным (название параметра => значение).

Настройки соединения PHP/YAZ
Название | Описание
implementationName | реализация имени сервера
implementationVersion | реализация версии сервера
implementationId | реализация ID сервера
schema | схема для возвращаемого набора. По умолчанию не установлено. Эта настройка эквивалентна функции yaz_schema().
preferredRecordSyntax | синтаксис возвращаемой записи. По умолчанию не установлено. Установка этого параметра равносильна использованию функции yaz_syntax().
start | смещение для первой записи из возвращаемого функциями yaz_search() или yaz_present() набора. Первая запись имеет значение start равное 0, вторая - 1 и т.д. Установка этой настройки совместно с установкой count имеет тот же эффект что и вызов функции yaz_range(), за исключением того, что в yaz_range() записи нумеруются со значения 1.
count | максимальное количество записей возвращаемое функциями yaz_search() или yaz_present().
elementSetName | Устанавливает тип набора возвращаемых элементов. Эквивалентно вызову yaz_element().
value

Новое значение для настройки. Используется только когда предыдущий аргумент является строкой.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Задает критерий сортировки

  • « yaz_set_option
  • yaz_syntax »
  • PHP Manual
  • Функции YAZ
  • Задает критерий сортировки

yaz_sort

(PHP 4 >= 4.0.7, PECL yaz >= 0.9.0)

yaz_sort — Задает критерий сортировки

Описание

yaz_sort ( resource $id , string $criteria ) : void

Функция задает критерий сортировки и включает сортировку по Z39.50.

Эта функция должна быть вызвана до yaz_search(). Вызов этой функции отдельно не имеет никакого смысла. Когда она используется совместно с yaz_search(), параметры сортировки будут отосланы после поискового запроса и до того, как какая-либо запись будет получена по Z39.50 (yaz_present()).

Список параметров

id

Дескриптор соединения, возвращаемый yaz_connect().

criteria

Строка, принимающая вид поле1 флаг1 поле2 флаг2, где поле1 устанавливает первый атрибут сортировки, поле2 - второй и т.д.

Поле может определяться либо как числовая комбинация, состоящая из пары тип=значение и разделяемое запятой (например, 1=4,2=1), либо как строковый параметр (например, title). Флаг представляет собой последовательность символов, которая не может быть разделена пробелом.

Флаги сортировки
a

Сортировка по возрастанию

d

Сортировка по убыванию

i

Сортировка без учета регистра символов

s

Сортировка с учетом регистра символов

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Критерии сортировки

Чтобы отсортировать записи по заголовку, без учета регистра по возрастанию следует использовать следующий критерий:

1=4 ia

Если второй критерий сортировки должен идти по автору с учетом регистра и по возрастанию, критерий будет выглядеть как:

1=4 ia 1=1003 sa


Задает предпочитаемый синтаксис для извлекаемой записи

  • « yaz_sort
  • yaz_wait »
  • PHP Manual
  • Функции YAZ
  • Задает предпочитаемый синтаксис для извлекаемой записи

yaz_syntax

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_syntax — Задает предпочитаемый синтаксис для извлекаемой записи

Описание

yaz_syntax ( resource $id , string $syntax ) : void

yaz_syntax() задает предпочитаемый синтаксис для извлекаемой записи

Функция должна быть вызвана до yaz_search() или yaz_present().

Список параметров

id

Дескриптор соединения, возвращаемый yaz_connect().

syntax

Синтаксис должен быть задан как OID (Object Identifier, идентификатор объекта) в исходном формате, разделенным точками (например 1.2.840.10003.5.10) или в качестве известного зарегистрированного формата записи (sutrs, usmarc, grs1, xml и др.).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Ожидает выполнения запросов Z39.50 серверами

  • « yaz_syntax
  • YP/NIS »
  • PHP Manual
  • Функции YAZ
  • Ожидает выполнения запросов Z39.50 серверами

yaz_wait

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_wait — Ожидает выполнения запросов Z39.50 серверами

Описание

yaz_wait ([ array &$options ] ) : mixed

Функция выполняет сетевое (блокирующее) действие до завершения запроса,
подготовленного функциями
yaz_connect(), yaz_search(),
yaz_present(), yaz_scan() and
yaz_itemorder().

yaz_wait() прекращает работу и возвращает результат после того как все сервера или завершат выполнение всех запросов или прервут их (в случае ошибок).

Список параметров

options

Ассоциативный массив параметров:

timeout

Устанавливает время ожидания в секундах. Если сервер не отвечает по прошествии этого времени, он считается нерабочим и yaz_wait() прекращает работу. По умолчанию ожидание составляет 15 секунд.

event

Имеет логический тип.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. В случае, если установлен параметр event, возвращает ресурс или FALSE в случае возникновения ошибки.


YP/NIS

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции YP/NIS
    • 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


Введение

NIS (обычно называется Yellow Pages) разрешает сетевое управление важными файлами (например файл с паролями). Больше информации можно почерпнуть из руководства NIS и » The Linux NIS(YP)/NYS/NIS+ HOWTO. Также есть книга » Managing NFS and NIS написанная Халом Стерном (Hal Stern).

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0.

Замечание: Для Windows-платформ это расширение недоступно.


Требования

Ничего, кроме функций стандартных библиотек Unix, которые всегда доступны (libc или libnsl. Какая из них будет использована, определится автоматически).


Установка

Это расширение не поддерживается и считается умершим. Однако, его исходный код все еще доступен в PECL SVN вот здесь: » https://svn.php.net/viewvc/pecl/yp


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

YPERR_ACCESS (integer)
Нарушение доступа (добавлена только что и на данный момент доступна только в PECL SVN)
YPERR_BADARGS (integer)
Плохой аргумент функции
YPERR_BADDB (integer)
База данных YP плоха
YPERR_BUSY (integer)
База данных занята
YPERR_DOMAIN (integer)
Невозможно привязаться к серверу в этом домене
YPERR_KEY (integer)
Нет такого ключа в карте
YPERR_MAP (integer)
Нет такой карты в домене сервера
YPERR_NODOM (integer)
Не задано имя локального домена
YPERR_NOMORE (integer)
В базе данных карты больше нет записей
YPERR_PMAP (integer)
Невозможно соединиться с portmapper
YPERR_RESRC (integer)
Ошибка выделения ресурсов
YPERR_RPC (integer)
Ошибка RPC - домен отвязан
YPERR_YPBIND (integer)
Невозможно связаться с ypbind
YPERR_YPERR (integer)
Внутренняя ошибка сервера yp или клиентская ошибка
YPERR_YPSERV (integer)
Невозможно связаться с ypserv
YPERR_VERS (integer)
Несовпадение версии YP


Функции YP/NIS

Содержание

  • 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


Traverse the map and call a function on each entry

  • « Функции YP/NIS
  • yp_cat »
  • PHP Manual
  • Функции YP/NIS
  • Traverse the map and call a function on each entry

yp_all

(PHP 4 >= 4.0.6, PHP 5 < 5.1.0)

yp_all — Traverse the map and call a function on each entry

Описание

yp_all ( string $domain , string $map , string $callback ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

domain

The NIS domain name.

map

The NIS map.

callback

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Return an array containing the entire map

  • « yp_all
  • yp_err_string »
  • PHP Manual
  • Функции YP/NIS
  • Return an array containing the entire map

yp_cat

(PHP 4 >= 4.0.6, PHP 5 < 5.1.0)

yp_cat — Return an array containing the entire map

Описание

yp_cat ( string $domain , string $map ) : array

Returns all map entries.

Список параметров

domain

The NIS domain name.

map

The NIS map.

Возвращаемые значения

Returns an array of all map entries, the maps key values as array indices and the maps entries as array data.


Returns the error string associated with the given error code

  • « yp_cat
  • yp_errno »
  • PHP Manual
  • Функции YP/NIS
  • Returns the error string associated with the given error code

yp_err_string

(PHP 4 >= 4.0.6, PHP 5 < 5.1.0)

yp_err_string — Returns the error string associated with the given error code

Описание

yp_err_string ( int $errorcode ) : string

Returns the error message associated with the given error code. Useful to indicate what exactly went wrong.

Список параметров

errorcode

The error code.

Возвращаемые значения

Returns the error message, as a string.

Примеры

Пример #1 Example for NIS errors

<?php
echo "Error: " . yp_err_string(yp_errno());
?>

Смотрите также

  • yp_errno() - Returns the error code of the previous operation


Returns the error code of the previous operation

  • « yp_err_string
  • yp_first »
  • PHP Manual
  • Функции YP/NIS
  • Returns the error code of the previous operation

yp_errno

(PHP 4 >= 4.0.6, PHP 5 < 5.1.0)

yp_errno — Returns the error code of the previous operation

Описание

yp_errno ( void ) : int

Returns the error code of the previous operation.

Возвращаемые значения

Returns one of the YPERR_XXX error constants.

Смотрите также

  • yp_err_string() - Returns the error string associated with the given error code


Returns the first key-value pair from the named map

  • « yp_errno
  • yp_get_default_domain »
  • PHP Manual
  • Функции YP/NIS
  • Returns the first key-value pair from the named map

yp_first

(PHP 4, PHP 5 < 5.1.0)

yp_first — Returns the first key-value pair from the named map

Описание

yp_first ( string $domain , string $map ) : array

Gets the first key-value pair from the named map in the named domain.

Список параметров

domain

The NIS domain name.

map

The NIS map.

Возвращаемые значения

Returns the first key-value pair as an array on success, or FALSE on errors.

Примеры

Пример #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;
?>

Смотрите также

  • yp_next() - Returns the next key-value pair in the named map
  • yp_get_default_domain() - Fetches the machine's default NIS domain


Fetches the machine's default NIS domain

  • « yp_first
  • yp_master »
  • PHP Manual
  • Функции YP/NIS
  • Fetches the machine's default NIS domain

yp_get_default_domain

(PHP 4, PHP 5 < 5.1.0)

yp_get_default_domain — Fetches the machine's default NIS domain

Описание

yp_get_default_domain ( void ) : string

Returns the default domain of the node. 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.

Возвращаемые значения

Returns the default domain of the node or FALSE. Can be used as the domain parameter for successive NIS calls.

Примеры

Пример #1 Example for the default domain

<?php
$domain = yp_get_default_domain();
echo "Default NIS domain is: " . $domain;
?>


Returns the machine name of the master NIS server for a map

  • « yp_get_default_domain
  • yp_match »
  • PHP Manual
  • Функции YP/NIS
  • Returns the machine name of the master NIS server for a map

yp_master

(PHP 4, PHP 5 < 5.1.0)

yp_master — Returns the machine name of the master NIS server for a map

Описание

yp_master ( string $domain , string $map ) : string

Returns the machine name of the master NIS server for a map.

Список параметров

domain

The NIS domain name.

map

The NIS map.

Возвращаемые значения

Примеры

Пример #1 Example for the NIS master

<?php
$number = yp_master($domain, $mapname);
echo "Master for this map is: " . $master;
?>

Смотрите также

  • yp_get_default_domain() - Fetches the machine's default NIS domain


Returns the matched line

  • « yp_master
  • yp_next »
  • PHP Manual
  • Функции YP/NIS
  • Returns the matched line

yp_match

(PHP 4, PHP 5 < 5.1.0)

yp_match — Returns the matched line

Описание

yp_match ( string $domain , string $map , string $key ) : string

Returns the value associated with the passed key out of the specified map.

Список параметров

domain

The NIS domain name.

map

The NIS map.

key

This key must be exact.

Возвращаемые значения

Returns the value, or FALSE on errors.

Примеры

Пример #1 Example for NIS match

<?php
$entry = yp_match($domain, "passwd.byname", "joe");
echo "Matched entry is: " . $entry;
?>

Результатом выполнения данного примера будет что-то подобное:

joe:##joe:11111:100:Joe User:/home/j/joe:/usr/local/bin/bash

Смотрите также

  • yp_get_default_domain() - Fetches the machine's default NIS domain


Returns the next key-value pair in the named map

  • « yp_match
  • yp_order »
  • PHP Manual
  • Функции YP/NIS
  • Returns the next key-value pair in the named map

yp_next

(PHP 4, PHP 5 < 5.1.0)

yp_next — Returns the next key-value pair in the named map

Описание

yp_next ( string $domain , string $map , string $key ) : array

Returns the next key-value pair in the named map after the specified key.

Список параметров

domain

map

key

Возвращаемые значения

Returns the next key-value pair as an array, or FALSE on errors.

Примеры

Пример #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];
?>

Смотрите также

  • yp_first() - Returns the first key-value pair from the named map
  • yp_get_default_domain() - Fetches the machine's default NIS domain


Returns the order number for a map

  • « yp_next
  • Обмен сообщениями 0MQ »
  • PHP Manual
  • Функции YP/NIS
  • Returns the order number for a map

yp_order

(PHP 4, PHP 5 < 5.1.0)

yp_order — Returns the order number for a map

Описание

yp_order ( string $domain , string $map ) : int

Gets the order number for a map.

Список параметров

domain

map

Возвращаемые значения

Returns the order number for a map or FALSE on error.

Примеры

Пример #1 Example for the NIS order

<?php
    $number = yp_order($domain, $mapname);
    echo "Order number for this map is: " . $number;
?>

Смотрите также

  • yp_get_default_domain() - Fetches the machine's default NIS domain


ZMQ

  • Введение
  • Установка и настройка
    • Требования
  • ZMQ — Класс ZMQ
    • ZMQ::__construct — Конструктор ZMQ
  • ZMQContext — Класс ZMQContext
    • ZMQContext::__construct — Конструктор ZMQContext
    • ZMQContext::getOpt — Получить опцию контекста
    • ZMQContext::getSocket — Создает новый сокет
    • ZMQContext::isPersistent — Является ли контекст постоянным
    • ZMQContext::setOpt — Установить опцию сокета
  • ZMQSocket — Класс ZMQSocket
    • ZMQSocket::bind — Привязка сокета
    • ZMQSocket::connect — Подключение к сокету
    • ZMQSocket::__construct — Конструктор класса ZMQSocket
    • ZMQSocket::disconnect — Отключить сокет
    • ZMQSocket::getEndpoints — Получить список конечных точек
    • ZMQSocket::getPersistentId — Получить идентификатор постоянного сокета
    • ZMQSocket::getSocketType — Получить тип сокета
    • ZMQSocket::getSockOpt — Получить опцию сокета
    • ZMQSocket::isPersistent — Определить, является ли сокет постоянным
    • ZMQSocket::recv — Получить сообщение
    • ZMQSocket::recvMulti — Получить сообщение, состоящее из нескольких частей
    • ZMQSocket::send — Послать сообщение
    • ZMQSocket::sendmulti — Послать сообщение, состоящее из нескольких частей
    • ZMQSocket::setSockOpt — Установить опцию сокета
    • ZMQSocket::unbind — Отвязать сокет
  • ZMQPoll — Класс ZMQPoll
    • ZMQPoll::add — Добавить элемент в пул опроса
    • ZMQPoll::clear — Очистить пул опроса
    • ZMQPoll::count — Количество элементов в пуле опроса
    • ZMQPoll::getLastErrors — Возвращает ошибки последнего опроса
    • ZMQPoll::poll — Опросить все элементы пула
    • ZMQPoll::remove — Удалить элемент из пула опроса
  • ZMQDevice — Класс ZMQDevice
    • ZMQDevice::__construct — Создает новое устройство
    • ZMQDevice::getIdleTimeout — Получить таймаут бездействия
    • ZMQDevice::getTimerTimeout — Получить таймаут таймера
    • ZMQDevice::run — Запуск нового устройства
    • ZMQDevice::setIdleCallback — Установить callback-функцию бездействия
    • ZMQDevice::setIdleTimeout — Установить таймаут простоя
    • ZMQDevice::setTimerCallback — Установить callback-функцию по таймеру
    • ZMQDevice::setTimerTimeout — Установить таймаут таймера


Введение

"OMQ - это библиотека, позволяющая быстро спроектировать и реализовать быстрое приложение, использующее обмен сообщениями." - веб-сайт 0MQ

Более подробно о 0MQ читайте тут: » http://zeromq.org/.


  • « Введение
  • Требования »
  • PHP Manual
  • Обмен сообщениями 0MQ
  • Установка и настройка

Установка и настройка

Содержание

  • Требования


Требования

Модуль ZMQ требует 0MQ версии 2.0.7 или выше. 0MQ можно получить по ссылке: » http://zeromq.org/area:download.

Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/zmq


Класс ZMQ

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

ZMQ {
/* Константы */
const integer SOCKET_PAIR ;
const integer SOCKET_PUB ;
const integer SOCKET_SUB ;
const integer SOCKET_REQ ;
const integer SOCKET_REP ;
const integer SOCKET_XREQ ;
const integer SOCKET_XREP ;
const integer SOCKET_PUSH ;
const integer SOCKET_PULL ;
const integer SOCKET_ROUTER ;
const integer SOCKET_DEALER ;
const integer SOCKET_XPUB ;
const integer SOCKET_XSUB ;
const integer SOCKET_STREAM ;
const integer SOCKOPT_HWM ;
const integer SOCKOPT_SNDHWM ;
const integer SOCKOPT_RCVHWM ;
const integer SOCKOPT_AFFINITY ;
const integer SOCKOPT_IDENTITY ;
const integer SOCKOPT_SUBSCRIBE ;
const integer SOCKOPT_UNSUBSCRIBE ;
const integer SOCKOPT_RATE ;
const integer SOCKOPT_RECOVERY_IVL ;
const integer SOCKOPT_RECONNECT_IVL ;
const integer SOCKOPT_RECONNECT_IVL_MAX ;
const integer SOCKOPT_MCAST_LOOP ;
const integer SOCKOPT_SNDBUF ;
const integer SOCKOPT_RCVBUF ;
const integer SOCKOPT_RCVMORE ;
const integer SOCKOPT_TYPE ;
const integer SOCKOPT_LINGER ;
const integer SOCKOPT_BACKLOG ;
const integer SOCKOPT_MAXMSGSIZE ;
const integer SOCKOPT_SNDTIMEO ;
const integer SOCKOPT_RCVTIMEO ;
const integer SOCKOPT_IPV4ONLY ;
const integer SOCKOPT_LAST_ENDPOINT ;
const integer SOCKOPT_TCP_KEEPALIVE_IDLE ;
const integer SOCKOPT_TCP_KEEPALIVE_CNT ;
const integer SOCKOPT_TCP_KEEPALIVE_INTVL ;
const integer SOCKOPT_TCP_ACCEPT_FILTER ;
const integer SOCKOPT_TCP_ACCEPT_FILTER ;
const integer SOCKOPT_DELAY_ATTACH_ON_CONNECT ;
const integer SOCKOPT_XPUB_VERBOSE ;
const integer SOCKOPT_ROUTER_RAW ;
const integer SOCKOPT_IPV6 ;
const integer CTXOPT_MAX_SOCKETS ;
const integer POLL_IN ;
const integer POLL_OUT ;
const integer MODE_NOBLOCK ;
const integer MODE_DONTWAIT ;
const integer MODE_SNDMORE ;
const integer ERR_INTERNAL ;
const integer ERR_EAGAIN ;
const integer ERR_ENOTSUP ;
const integer ERR_EFSM ;
const integer ERR_ETERM ;
/* Methods */
private__construct ( void )
}

Предопределенные константы

Типы констант ZMQ

ZMQ::SOCKET_PAIR

Эксклюзивный парный шаблон

ZMQ::SOCKET_PUB

Сокет источника

ZMQ::SOCKET_SUB

Сокет подписчика

ZMQ::SOCKET_REQ

Сокет запроса

ZMQ::SOCKET_REP

Сокет ответа

ZMQ::SOCKET_XREQ

Псевдоним для SOCKET_DEALER

ZMQ::SOCKET_XREP

Псевдоним для SOCKET_ROUTER

ZMQ::SOCKET_PUSH

Сокет конвеера отправки

ZMQ::SOCKET_PULL

Сокет конвеера приема

ZMQ::SOCKET_ROUTER

Расширенный REP-сокет, маршрутизирующий ответы потребителям

ZMQ::SOCKET_DEALER

Расширенный REP-сокет, осуществляющий балансировку нагрузки для всех связанных пар

ZMQ::SOCKET_XPUB

Аналогично SOCKET_PUB, за исключением того, что вы можете получать подписку как сообщения. Сообщение о подписке будет 0 (отписаться) или 1 (подписаться) с последующим содержимым сообщения

ZMQ::SOCKET_XSUB

Аналогично SOCKET_SUB, за исключением того, что вы можете отсылать подписку как сообщения. Смотрите SOCKET_XPUB.

ZMQ::SOCKET_STREAM

Используется для отсылки и приема данных по TCP от не-OMQ клиентов. Доступно, если скомпилировано с ZeroMQ 4.x или выше (Значение: integer).

ZMQ::SOCKOPT_HWM

Верхняя граница для входящих и исходящих сообщений жестко ограничена максимальным количеством сообщений, которые OMQ может держать в памяти для одного клиента, связанного с соответствующим сокетом. Установка данной опции для сокета будет влиять только на соединения, установленные после ее установки. В ZeroMQ 3.x это является оберткой для одновременной установки SNDHWM и RCVHWM. (Значение: integer).

ZMQ::SOCKOPT_SNDHWM

Опция ZMQ_SNDHWM должна устанавливать верхнюю границу для исходящих сообщений на конкретном сокете. Доступно, если собрано с ZeroMQ 3.x или выше (Значение: integer).

ZMQ::SOCKOPT_RCVHWM

Опция SOCKOPT_RCVHWM должна устанавливать верхнюю границу для входящих сообщений на конкретном сокете. Доступно, если собрано с ZeroMQ 3.x или выше (Значение: integer).

ZMQ::SOCKOPT_AFFINITY

Установить сходство потока ввода / вывода (Значение: integer)

ZMQ::SOCKOPT_IDENTITY

Установить идентификатор сокета (Значение: string)

ZMQ::SOCKOPT_SUBSCRIBE

Установить фильтр сообщений. Корректно для сокета подписчика (Значение: string)

ZMQ::SOCKOPT_UNSUBSCRIBE

Удалить фильтр сообщений. Корректно для сокета подписчика (Значение: string)

ZMQ::SOCKOPT_RATE

Установить скорость для сокетов групповой рассылки (pgm) (Значение: integer >= 0)

ZMQ::SOCKOPT_RECOVERY_IVL

Установить интервал восстановления для сокетов групповой рассылки (Значение: integer >= 0)

ZMQ::SOCKOPT_RECONNECT_IVL

Установить начальный интервал пересоединения (Значение: integer >= 0)

ZMQ::SOCKOPT_RECONNECT_IVL_MAX

Установить максимальный интервал пересоединения (Значение: integer >= 0)

ZMQ::SOCKOPT_MCAST_LOOP

Контроль закольцовки групповой рассылки (Значение: integer >= 0)

ZMQ::SOCKOPT_SNDBUF

Установить размер буфера передачи ядра (Значение: integer >= 0)

ZMQ::SOCKOPT_RCVBUF

Установить размер буфера приема ядра (Значение: integer >= 0)

ZMQ::SOCKOPT_RCVMORE

Получить многосоставные сообщения (Значение: integer)

ZMQ::SOCKOPT_TYPE

Получить тип сокета. Корректно для getSockOpt (Значение: integer)

ZMQ::SOCKOPT_LINGER

Линейное значение сокета. Определяет, как долго сокет блокирует попытки очистки сообщений после его закрытия. (Значение: integer)

ZMQ::SOCKOPT_BACKLOG

Опция SOCKOPT_BACKLOG устанавливает максимальную длину очереди клиентского соединения для указанного сокета. Работает только с транспортом ориентированным на соединение. (Значение: integer)

ZMQ::SOCKOPT_MAXMSGSIZE

Ограничивает максимальный размер входящего сообщения. -1 означает, что ограничений нет. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: integer)

ZMQ::SOCKOPT_SNDTIMEO

Устанавливает таймаут для операции отправки на сокете. -1 означает отсутствие ограничений. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: integer)

ZMQ::SOCKOPT_RCVTIMEO

Устанавливает таймаут для операции приема на сокете. -1 означает отсутствие ограничений. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: integer)

ZMQ::SOCKOPT_IPV4ONLY

Если равно 1, то запрещает IPV6. Доступно, если собрано с ZeroMQ 3.x (Значение: integer)

ZMQ::SOCKOPT_LAST_ENDPOINT

Извлекает последнего присоединившегося клиента. Для использования с * wildcard-портами. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: string)

ZMQ::SOCKOPT_TCP_KEEPALIVE_IDLE

Время простоя для отправки TCP-keepalive. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: integer)

ZMQ::SOCKOPT_TCP_KEEPALIVE_CNT

Подсчитать время для TCP-keepalive. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: integer)

ZMQ::SOCKOPT_TCP_KEEPALIVE_INTVL

Интервал для TCP-keepalive. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: integer)

ZMQ::SOCKOPT_DELAY_ATTACH_ON_CONNECT

Послать строку CIDR для сверки с входящим соединением по TCP. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: string)

ZMQ::SOCKOPT_TCP_ACCEPT_FILTER

Послать строку CIDR для сверки с входящим соединением по TCP. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: string)

ZMQ::SOCKOPT_XPUB_VERBOSE

Установить XPUB для приема сообщения приложения для каждого экземпляра подписчика. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: string)

ZMQ::SOCKOPT_ROUTER_RAW

Если 1, то устанавливает для ROUTER режим "без обработки". В режиме "без обработки", если используется транспорт tcp://, сокет будет читать и писать без использования фреймов ZeroMQ. Доступно, если собрано с ZeroMQ 4.0 и выше (Значение: string)

ZMQ::SOCKOPT_IPV6

Разрешает IPV6. Доступно, если собрано с ZeroMQ 4.0 и выше (Значение: string)

ZMQ::CTXOPT_MAX_SOCKETS

Ограничение сокета на контекст. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: integer)

ZMQ::POLL_IN

Опросить на предмет входящих данных

ZMQ::POLL_OUT

Опросить на предмет исходящих данных

ZMQ::MODE_NOBLOCK

Неблокирующая работа. Объявлено устаревшим, используйте ZMQ::MODE_DONTWAIT

ZMQ::MODE_DONTWAIT

Неблокирующая работа

ZMQ::MODE_SNDMORE

Послать многосоставное сообщение

ZMQ::DEVICE_FORWARDER

Устройство пересылки

ZMQ::DEVICE_QUEUE

Устройство очереди

ZMQ::DEVICE_STREAMER

Устройство потокового вещания

ZMQ::ERR_INTERNAL

Внутренняя ошибка расширения ZMQ

ZMQ::ERR_EAGAIN

Подразумевает, что операция будет блокироваться при использовании ZMQ::MODE_DONTWAIT

ZMQ::ERR_ENOTSUP

Операция не поддерживается типом сокета

ZMQ::ERR_EFSM

Операция не будет выполнена, поскольку сокет находится в некорректном состоянии

ZMQ::ERR_ETERM

Контекст был прерван

Содержание

  • ZMQ::__construct — Конструктор ZMQ


Конструктор ZMQ

  • « ZMQ
  • ZMQContext »
  • PHP Manual
  • ZMQ
  • Конструктор ZMQ

ZMQ::__construct

(PECL zmq >= 0.5.0)

ZMQ::__construct — Конструктор ZMQ

Описание

privateZMQ::__construct ( void )

Приватный конструктор для предотвращения прямой инициализации. Этот класс содержит константы для расширения ZMQ.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс ZMQContext

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

ZMQContext {
/* Методы */
__construct ([ int $io_threads = 1 [, bool $is_persistent = TRUE ]] )
public getOpt ( string $key ) : mixed
public getSocket ( int $type [, string $persistent_id = NULL [, callback $on_new_socket = NULL ]] ) : ZMQSocket
public isPersistent ( void ) : bool
public setOpt ( int $key , mixed $value ) : ZMQContext
}

Содержание

  • ZMQContext::__construct — Конструктор ZMQContext
  • ZMQContext::getOpt — Получить опцию контекста
  • ZMQContext::getSocket — Создает новый сокет
  • ZMQContext::isPersistent — Является ли контекст постоянным
  • ZMQContext::setOpt — Установить опцию сокета


Конструктор ZMQContext

  • « ZMQContext
  • ZMQContext::getOpt »
  • PHP Manual
  • ZMQContext
  • Конструктор ZMQContext

ZMQContext::__construct

(PECL zmq >= 0.5.0)

ZMQContext::__construct — Конструктор ZMQContext

Описание

ZMQContext::__construct ([ int $io_threads = 1 [, bool $is_persistent = TRUE ]] )

Создает новый контекст ZMQ. Контекст используется для инициализации сокетов. Для инициализации постоянных сокетов требуется постоянный контекст.

Список параметров

io_threads

Число потоков ввода/вывода в контексте.

is_persistent

Определяет, будет ли контекст постоянным. Постоянный контекст сохраняется на протяжении множества запросов и требуется для постоянных соединений.

Примеры

Пример #1 Пример использования ZMQContext()

Создадим новый контекст и создадим сокеты из него

<?php
/* Создаем новый контекст */
$context = new ZMQContext();

/* Создаем новый сокет */
$socket = $context->getSocket(ZMQ::SOCKET_REQ, 'my sock');

/* Соединяемся с сокетом */
$socket->connect("tcp://example.com:1234");

/* Посылаем запрос */
$socket->send("Hello there");

/* Получаем ответ */
$message = $socket->recv();
?>

Возвращаемые значения

Выбрасывает исключение ZMQContextException в случае сбоя инициализации контекста.


Получить опцию контекста

  • « ZMQContext::__construct
  • ZMQContext::getSocket »
  • PHP Manual
  • ZMQContext
  • Получить опцию контекста

ZMQContext::getOpt

(PECL zmq >= 1.0.4)

ZMQContext::getOpt — Получить опцию контекста

Описание

public ZMQContext::getOpt ( string $key ) : mixed

Возвращает значение опции контекста.

Список параметров

key

Целое число, отражающее значение опции. Смотрите описание констант ZMQ::CTXOPT_*.

Возвращаемые значения

Возвращает string или integer в зависимости от key. В случае ошибки выбрасывает исключение ZMQContextException.


Создает новый сокет

  • « ZMQContext::getOpt
  • ZMQContext::isPersistent »
  • PHP Manual
  • ZMQContext
  • Создает новый сокет

ZMQContext::getSocket

(PECL zmq >= 0.5.0)

ZMQContext::getSocket — Создает новый сокет

Описание

public ZMQContext::getSocket ( int $type [, string $persistent_id = NULL [, callback $on_new_socket = NULL ]] ) : ZMQSocket

Метод для создания сокета из контекста. Если контекст не является постоянным, то параметр persistent_id будет проигнорирован и сокет будет непостоянным. Функция, заданная в on_new_socket будет вызвана только если будет создана новая, лежащая в основе, структура сокета.

Список параметров

type

Константа ZMQ::SOCKET_*, задающая тип сокета.

persistent_id

Если задан параметр persistent_id, то сокет будет сохраняться между запросами.

on_new_socket

Callback-функция, которая будет вызвана при создании новой структуры сокета. Функция не будет вызвана, если используется постоянный контекст. Функция принимает в качестве аргументов ZMQSocket и persistent_id.

Примеры

Пример #1 Пример использования ZMQContext()

Основы

<?php
/* Создаем новый контекст */
$context = new ZMQContext();

/* Создаем новый сокет */
$socket = $context->getSocket(ZMQ::SOCKET_REQ, 'my sock');

/* Соединяемся с сокетом */
$socket->connect("tcp://example.com:1234");

/* Посылаем запрос */
$socket->send("Hello there");

/* Получаем ответ */
$message = $socket->recv();
echo "Received message: {$message}\n";
?>

Возвращаемые значения

В случае успешного выполнения возвращает объект ZMQSocket. В случае ошибки выбрасывает исключение ZMQSocketException.


Является ли контекст постоянным

  • « ZMQContext::getSocket
  • ZMQContext::setOpt »
  • PHP Manual
  • ZMQContext
  • Является ли контекст постоянным

ZMQContext::isPersistent

(PECL zmq >= 0.5.0)

ZMQContext::isPersistent — Является ли контекст постоянным

Описание

public ZMQContext::isPersistent ( void ) : bool

Определяет, является ли контекст постоянным. Постоянный контекст требуется для постоянного соединения, так как каждый сокет выделяется из контекста.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если контекст постоянный и FALSE, если нет.


Установить опцию сокета

  • « ZMQContext::isPersistent
  • ZMQSocket »
  • PHP Manual
  • ZMQContext
  • Установить опцию сокета

ZMQContext::setOpt

(PECL zmq >= 1.0.4)

ZMQContext::setOpt — Установить опцию сокета

Описание

public ZMQContext::setOpt ( int $key , mixed $value ) : ZMQContext

Устанавливает опцию контекста ZMQ. Тип value зависит от key. Смотрите Типы Констант ZMQ.

Список параметров

key

Одна из констант ZMQ::CTXOPT_*.

value

Значение параметра.

Возвращаемые значения

Возвращает текущий объект. В случае ошибки выбрасывает исключение ZMQContextException.


Класс ZMQSocket

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

ZMQSocket {
/* Методы */
public bind ( string $dsn [, bool $force = FALSE ] ) : ZMQSocket
public connect ( string $dsn [, bool $force = FALSE ] ) : ZMQSocket
__construct ( ZMQContext $context , int $type [, string $persistent_id = NULL [, callback $on_new_socket = NULL ]] )
public disconnect ( string $dsn ) : ZMQSocket
public getEndpoints ( void ) : array
public getPersistentId ( void ) : string
public getSocketType ( void ) : int
public getSockOpt ( string $key ) : mixed
public isPersistent ( void ) : bool
public recv ([ int $mode = 0 ] ) : string
public recvMulti ([ int $mode = 0 ] ) : array
public send ( string $message [, int $mode = 0 ] ) : ZMQSocket
public sendmulti ( array $message [, int $mode = 0 ] ) : ZMQSocket
public setSockOpt ( int $key , mixed $value ) : ZMQSocket
public unbind ( string $dsn ) : ZMQSocket
}

Содержание

  • ZMQSocket::bind — Привязка сокета
  • ZMQSocket::connect — Подключение к сокету
  • ZMQSocket::__construct — Конструктор класса ZMQSocket
  • ZMQSocket::disconnect — Отключить сокет
  • ZMQSocket::getEndpoints — Получить список конечных точек
  • ZMQSocket::getPersistentId — Получить идентификатор постоянного сокета
  • ZMQSocket::getSocketType — Получить тип сокета
  • ZMQSocket::getSockOpt — Получить опцию сокета
  • ZMQSocket::isPersistent — Определить, является ли сокет постоянным
  • ZMQSocket::recv — Получить сообщение
  • ZMQSocket::recvMulti — Получить сообщение, состоящее из нескольких частей
  • ZMQSocket::send — Послать сообщение
  • ZMQSocket::sendmulti — Послать сообщение, состоящее из нескольких частей
  • ZMQSocket::setSockOpt — Установить опцию сокета
  • ZMQSocket::unbind — Отвязать сокет


Привязка сокета

  • « ZMQSocket
  • ZMQSocket::connect »
  • PHP Manual
  • ZMQSocket
  • Привязка сокета

ZMQSocket::bind

(PECL zmq >= 0.5.0)

ZMQSocket::bind — Привязка сокета

Описание

public ZMQSocket::bind ( string $dsn [, bool $force = FALSE ] ) : ZMQSocket

Привязка сокета к конечной точке. Конечная точка определяется в формате transport://address. В качестве transport могут использоваться следующие протоколы: inproc, ipc, tcp, pgm или epgm

Список параметров

dsn

Конечная точка, например transport://address.

force

Указывает, пытаться ли подключиться, если подключение к указанной точке уже было установлено.

Возвращаемые значения

Возвращает текущий объект. В случае ошибки выбрасывает исключение ZMQSocketException.


Подключение к сокету

  • « ZMQSocket::bind
  • ZMQSocket::__construct »
  • PHP Manual
  • ZMQSocket
  • Подключение к сокету

ZMQSocket::connect

(PECL zmq >= 0.5.0)

ZMQSocket::connect — Подключение к сокету

Описание

public ZMQSocket::connect ( string $dsn [, bool $force = FALSE ] ) : ZMQSocket

Подключение сокета к удаленной конечной точке. Конечная точка указывается в формате transport://address, где transport может быть одним из следующих значений: inproc, ipc, tcp, pgm или epgm.

Список параметров

dsn

Имя источника данных, например transport://address.

force

Попытается подключится даже если сокет уже подключен к указанной конечной точке.

Примеры

Пример #1 Пример использования ZMQContext()

Создать новый контекст и выделить сокет

<?php
/* Адрес сервера */
$dsn = "tcp://127.0.0.1:5555";

/* Создать сокет */
$socket = new ZMQSocket(new ZMQContext(), ZMQ::SOCKET_REQ, 'my socket');

/* Получить список подключённых конечных точек */
$endpoints = $socket->getEndpoints();

/* Проверить, подключён ли сокет */
if (!in_array($dsn, $endpoints['connect'])) {
    echo "<p>Подключение к $dsn</p>";
    $socket->connect($dsn);
} else {
    echo "<p>Уже подключён к $dsn</p>";
}

/* Послать и получить данные */
$socket->send("Привет!");
$message = $socket->recv();

echo "<p>Сервер ответил: {$message}</p>";
?>

Возвращаемые значения

Возвращает текущий объект. В случае ошибки выбрасывает исключение ZMQSocketException.


Конструктор класса ZMQSocket

  • « ZMQSocket::connect
  • ZMQSocket::disconnect »
  • PHP Manual
  • ZMQSocket
  • Конструктор класса ZMQSocket

ZMQSocket::__construct

(PECL zmq >= 0.5.0)

ZMQSocket::__construct — Конструктор класса ZMQSocket

Описание

ZMQSocket::__construct ( ZMQContext $context , int $type [, string $persistent_id = NULL [, callback $on_new_socket = NULL ]] )

Создает экземпляр класса ZMQSocket. Параметр persistent_id может быть использован для установления постоянного соединения. Постоянный сокет будет выделен из постоянного контекста и будет оставаться активным в течение нескольких запросов. Получить тот же сокет для множества запросов можно с помощью параметра persistent_id. Функция, заданная в on_new_socket вызывается только при создании новой структуры сокета.

Список параметров

context

Объект класса ZMQContext.

type

Тип сокета. Смотрите константы ZMQ::SOCKET_*.

persistent_id

Если параметр persistent_id указан, то сокет будет доступен в течение нескольких запросов. Если context не является постоянным, сокет так же вернется к непостоянному режиму.

on_new_socket

Callback-функция, которая будет вызвана при создании нового сокета. Эта функция не вызывается в случае повторного использования постоянного соединения.

Примеры

Пример #1 Пример использования ZMQSocket()

Использование функции обратного вызова для связи или подключения к сокету

<?php

/*
  Здесь используется постоянный сокет, поэтому функция будет вызвана лишь
  при первом обращении к скрипту.
*/
function on_new_socket_cb(ZMQSocket $socket, $persistent_id = null)
{
    if ($persistent_id === 'server') {
        $socket->bind("tcp://localhost:12122");
    } else {
        $socket->connect("tcp://localhost:12122");
    }
}

/* Создать новый контекст */
$context = new ZMQContext();

/* Создать сокет */
$socket = $context->getSocket(ZMQ::SOCKET_REP, 'server', 'on_new_socket_cb');

$message = $socket->recv();
echo "Получено сообщение: {$message}\n";
?>

Callback-функция должна быть описана так:

Замечание:

function on_new_socket_cb(ZMQSocket $socket, string $persistent_id = null);

Возвращаемые значения

В случае ошибки выбрасывает исключение ZMQSocketException.


Отключить сокет

  • « ZMQSocket::__construct
  • ZMQSocket::getEndpoints »
  • PHP Manual
  • ZMQSocket
  • Отключить сокет

ZMQSocket::disconnect

(PECL zmq >= 1.0.4)

ZMQSocket::disconnect — Отключить сокет

Описание

public ZMQSocket::disconnect ( string $dsn ) : ZMQSocket

Удалить ранее созданное соединение сокета с конечной точкой. Конечная точка определяется в формате transport://address, где transport может быть одним из следующих значений: inproc, ipc, tcp, pgm или epgm.

Список параметров

dsn

Конечная точка, например transport://address.

Возвращаемые значения

Возвращает текущий объект. В случае ошибки выбрасывает исключение ZMQSocketException.


Получить список конечных точек

  • « ZMQSocket::disconnect
  • ZMQSocket::getPersistentId »
  • PHP Manual
  • ZMQSocket
  • Получить список конечных точек

ZMQSocket::getEndpoints

(PECL zmq >= 0.5.0)

ZMQSocket::getEndpoints — Получить список конечных точек

Описание

public ZMQSocket::getEndpoints ( void ) : array

Возвращает список конечных точек с которыми соединен или связан сокет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с элементами 'bind' и 'connect'.


Получить идентификатор постоянного сокета

  • « ZMQSocket::getEndpoints
  • ZMQSocket::getSocketType »
  • PHP Manual
  • ZMQSocket
  • Получить идентификатор постоянного сокета

ZMQSocket::getPersistentId

(PECL zmq >= 0.5.0)

ZMQSocket::getPersistentId — Получить идентификатор постоянного сокета

Описание

public ZMQSocket::getPersistentId ( void ) : string

Возвращает идентификатор постоянного сокета.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор сокета в виде строки, либо NULL, если сокет не постоянный.


Получить тип сокета

  • « ZMQSocket::getPersistentId
  • ZMQSocket::getSockOpt »
  • PHP Manual
  • ZMQSocket
  • Получить тип сокета

ZMQSocket::getSocketType

(PECL zmq >= 0.5.0)

ZMQSocket::getSocketType — Получить тип сокета

Описание

public ZMQSocket::getSocketType ( void ) : int

Возвращает тип сокета.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленное представление типа сокета. Это значение соотносится с одной из констант ZMQ::SOCKET_*.


Получить опцию сокета

  • « ZMQSocket::getSocketType
  • ZMQSocket::isPersistent »
  • PHP Manual
  • ZMQSocket
  • Получить опцию сокета

ZMQSocket::getSockOpt

(PECL zmq >= 0.5.0)

ZMQSocket::getSockOpt — Получить опцию сокета

Описание

public ZMQSocket::getSockOpt ( string $key ) : mixed

Возвращает значение опции сокета.

Список параметров

key

Целое число, представляющее опцию сокета. Смотрите константы ZMQ::SOCKOPT_*.

Возвращаемые значения

Возвращает string, либо integer, в зависимости от значения параметра key. В случае ошибки выбрасывает исключение ZMQSocketException.


Определить, является ли сокет постоянным

  • « ZMQSocket::getSockOpt
  • ZMQSocket::recv »
  • PHP Manual
  • ZMQSocket
  • Определить, является ли сокет постоянным

ZMQSocket::isPersistent

(PECL zmq >= 0.5.0)

ZMQSocket::isPersistent — Определить, является ли сокет постоянным

Описание

public ZMQSocket::isPersistent ( void ) : bool

Проверяет, является ли сокет постоянным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает значение типа boolean.


Получить сообщение

  • « ZMQSocket::isPersistent
  • ZMQSocket::recvMulti »
  • PHP Manual
  • ZMQSocket
  • Получить сообщение

ZMQSocket::recv

(PECL zmq >= 0.5.0)

ZMQSocket::recv — Получить сообщение

Описание

public ZMQSocket::recv ([ int $mode = 0 ] ) : string

Получает сообщение из сокета. По умолчанию получение будет блокироваться до тех пор, пока сообщение не будет доступно, только если не установлен флаг ZMQ::MODE_DONTWAIT. Можно использовать опцию сокета ZMQ::SOCKOPT_RCVMORE для получения сообщений состоящих из нескольких частей. Более подробно смотрите ZMQSocket::setSockOpt().

Список параметров

mode

Флаги для настройки режима не блокирующего получения и работы с сообщениями, состоящими из нескольких частей. Смотрите константы ZMQ::MODE_*.

Примеры

Пример #1 Пример отправки/получения

Не блокирующая отправка/получение

<?php

/* Создаем новый объект очереди. Необходим сервер на другой стороне. */
$queue = new ZMQSocket(new ZMQContext(), ZMQ::SOCKET_REQ);
$queue->connect("tcp://127.0.0.1:5555");

/* Привязываем сокет 1 к очереди, отправляем и получаем */
$retries = 5;
$sending = true;

/* Запускаем цикл */
do {
    try {
        /* Пытаемся отправить/получить */
        if ($sending) {
            echo "Отправляем сообщение\n";
            $queue->send("Я сообщение!", ZMQ::MODE_DONTWAIT);
            $sending = false;
        } else {
            echo "Получен ответ: " . $queue->recv(ZMQ::MODE_DONTWAIT) . "\n";
            break;
        }
    } catch (ZMQSocketException $e) {
        /* EAGAIN означает, что операция заблокирована, повторяем */
        if ($e->getCode() === ZMQ::ERR_EAGAIN) {
            echo " - Получили EAGAIN, повторяем ($retries)\n";
        } else {
            die(" - Ошибка: " . $e->getMessage());
        }
    }
    /* Немножко ждем */
    usleep(5);
} while (--$retries);
?>

Результатом выполнения данного примера будет что-то подобное:

Отправляем сообщение
 - Получили EAGAIN, повторяем (4)
Получен ответ: Я сообщение!

Возвращаемые значения

Возвращает сообщение. В случае ошибки выбрасывает исключение ZMQSocketException. Если используется режим ZMQ::MODE_DONTWAIT и операция заблокирована, то будет возвращено FALSE.


Получить сообщение, состоящее из нескольких частей

  • « ZMQSocket::recv
  • ZMQSocket::send »
  • PHP Manual
  • ZMQSocket
  • Получить сообщение, состоящее из нескольких частей

ZMQSocket::recvMulti

(PECL zmq >= 0.8.0)

ZMQSocket::recvMulti — Получить сообщение, состоящее из нескольких частей

Описание

public ZMQSocket::recvMulti ([ int $mode = 0 ] ) : array

Получает массив с сообщением из сокета. По умолчанию получение будет блокироваться до тех пор, пока сообщение не будет доступно, только если не установлен флаг ZMQ::MODE_NOBLOCK.

Список параметров

mode

Флаги для настройки режима не блокирующего получения и работы с сообщениями, состоящими из нескольких частей. Смотрите константы ZMQ::MODE_*.

Возвращаемые значения

Возвращает массив с частями сообщения. В случае ошибки выбрасывает исключение ZMQSocketException. Если используется режим ZMQ::MODE_NOBLOCK и операция заблокирована, то будет возвращено FALSE.


Послать сообщение

  • « ZMQSocket::recvMulti
  • ZMQSocket::sendmulti »
  • PHP Manual
  • ZMQSocket
  • Послать сообщение

ZMQSocket::send

(PECL zmq >= 0.5.0)

ZMQSocket::send — Послать сообщение

Описание

public ZMQSocket::send ( string $message [, int $mode = 0 ] ) : ZMQSocket

Посылает сообщение. Операция может блокироваться если не используется флаг ZMQ::MODE_NOBLOCK.

Список параметров

message

Сообщение для отправки.

mode

Флаги для настройки режима не блокирующего получения и работы с сообщениями, состоящими из нескольких частей. Смотрите константы ZMQ::MODE_*.

Возвращаемые значения

Возвращает текущий объект. В случае ошибки выбрасывает исключение ZMQSocketException. Если используется режим ZMQ::MODE_NOBLOCK и операция заблокирована, то будет возвращено FALSE.


Послать сообщение, состоящее из нескольких частей

  • « ZMQSocket::send
  • ZMQSocket::setSockOpt »
  • PHP Manual
  • ZMQSocket
  • Послать сообщение, состоящее из нескольких частей

ZMQSocket::sendmulti

(PECL zmq >= 0.8.0)

ZMQSocket::sendmulti — Послать сообщение, состоящее из нескольких частей

Описание

public ZMQSocket::sendmulti ( array $message [, int $mode = 0 ] ) : ZMQSocket

Послать сообщение, состоящее из нескольких частей Операция может блокироваться, если не используется флаг ZMQ::MODE_NOBLOCK.

Список параметров

message

Сообщение в виде массива строк

mode

Флаги для настройки режима не блокирующего получения и работы с сообщениями, состоящими из нескольких частей. Смотрите константы ZMQ::MODE_*.

Возвращаемые значения

Возвращает текущий объект. В случае ошибки выбрасывает исключение ZMQSocketException. Если используется режим ZMQ::MODE_NOBLOCK и операция заблокирована, то будет возвращено FALSE.


Установить опцию сокета

  • « ZMQSocket::sendmulti
  • ZMQSocket::unbind »
  • PHP Manual
  • ZMQSocket
  • Установить опцию сокета

ZMQSocket::setSockOpt

(PECL zmq >= 0.5.0)

ZMQSocket::setSockOpt — Установить опцию сокета

Описание

public ZMQSocket::setSockOpt ( int $key , mixed $value ) : ZMQSocket

Устанавливает опцию сокета ZMQ. Тип параметра value зависит от значения параметра key. Смотрите Типы констант ZMQ.

Список параметров

key

Одна из констант ZMQ::SOCKOPT_*.

value

Устанавливаемое значение.

Возвращаемые значения

Возвращает текущий объект. В случае ошибки выбрасывает исключение ZMQSocketException.


Отвязать сокет

  • « ZMQSocket::setSockOpt
  • ZMQPoll »
  • PHP Manual
  • ZMQSocket
  • Отвязать сокет

ZMQSocket::unbind

(PECL zmq >= 1.0.4)

ZMQSocket::unbind — Отвязать сокет

Описание

public ZMQSocket::unbind ( string $dsn ) : ZMQSocket

Отвязывает сокет от конечной точки. Конечная точка определяется в формате transport://address, где transport может быть одним из следующих значений: inproc, ipc, tcp, pgm или epgm.

Список параметров

dsn

Предварительно привязанная конечная точка, например transport://address.

Возвращаемые значения

Возвращает текущий объект. В случае ошибки выбрасывает исключение ZMQSocketException.


Класс ZMQPoll

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

ZMQPoll {
/* Методы */
public add ( mixed $entry , int $type ) : string
public clear ( void ) : ZMQPoll
public count ( void ) : int
public getLastErrors ( void ) : array
public poll ( array &$readable , array &$writable [, int $timeout = -1 ] ) : int
public remove ( mixed $item ) : bool
}

Содержание

  • ZMQPoll::add — Добавить элемент в пул опроса
  • ZMQPoll::clear — Очистить пул опроса
  • ZMQPoll::count — Количество элементов в пуле опроса
  • ZMQPoll::getLastErrors — Возвращает ошибки последнего опроса
  • ZMQPoll::poll — Опросить все элементы пула
  • ZMQPoll::remove — Удалить элемент из пула опроса


Добавить элемент в пул опроса

  • « ZMQPoll
  • ZMQPoll::clear »
  • PHP Manual
  • ZMQPoll
  • Добавить элемент в пул опроса

ZMQPoll::add

(PECL zmq >= 0.5.0)

ZMQPoll::add — Добавить элемент в пул опроса

Описание

public ZMQPoll::add ( mixed $entry , int $type ) : string

Добавляет элемент в пул опроса и возвращает его внутренний идентификатор в виде строки. В дальнейшем, по этому идентификатору, элемент можно будет удалить.

Список параметров

entry

Объект ZMQSocket или потоковый ресурс PHP

type

Определяет, какая активность будет отслеживаться. Смотрите константы ZMQ::POLL_IN и ZMQ::POLL_OUT.

Возвращаемые значения

Возвращает строковый идентификатор добавленного элемента, который в дальнейшем можно будет использовать для его удаления. В случае возникновения ошибки выбрасывает исключение ZMQPollException.


Очистить пул опроса

  • « ZMQPoll::add
  • ZMQPoll::count »
  • PHP Manual
  • ZMQPoll
  • Очистить пул опроса

ZMQPoll::clear

(PECL zmq >= 0.5.0)

ZMQPoll::clear — Очистить пул опроса

Описание

public ZMQPoll::clear ( void ) : ZMQPoll

Удаляет все элементы из пула опроса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий объект.


Количество элементов в пуле опроса

  • « ZMQPoll::clear
  • ZMQPoll::getLastErrors »
  • PHP Manual
  • ZMQPoll
  • Количество элементов в пуле опроса

ZMQPoll::count

(PECL zmq >= 0.5.0)

ZMQPoll::count — Количество элементов в пуле опроса

Описание

public ZMQPoll::count ( void ) : int

Количество элементов в пуле опроса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленное значение (integer), равное количеству элементов в пуле опроса.


Возвращает ошибки последнего опроса

  • « ZMQPoll::count
  • ZMQPoll::poll »
  • PHP Manual
  • ZMQPoll
  • Возвращает ошибки последнего опроса

ZMQPoll::getLastErrors

(PECL zmq >= 0.5.0)

ZMQPoll::getLastErrors — Возвращает ошибки последнего опроса

Описание

public ZMQPoll::getLastErrors ( void ) : array

Возвращает идентификаторы элементов, для которых при последнем опросе возникли ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с идентификаторами элементов пула опроса, для которых, при последнем опросе, возникли ошибки. Пустой массив означает, что ошибок не было.


Опросить все элементы пула

  • « ZMQPoll::getLastErrors
  • ZMQPoll::remove »
  • PHP Manual
  • ZMQPoll
  • Опросить все элементы пула

ZMQPoll::poll

(PECL zmq >= 0.5.0)

ZMQPoll::poll — Опросить все элементы пула

Описание

public ZMQPoll::poll ( array &$readable , array &$writable [, int $timeout = -1 ] ) : int

Опрашивает все элементы пула. Читаемые и записываемые элементы помещаются в параметры readable и writable соответственно. Для проверки возникших ошибок используйте метод ZMQPoll::getLastErrors().

Список параметров

readable

Массив, в который будут возвращены читаемые объекты ZMQSockets/потоки PHP. Перед началом работы массив будет очищен.

writable

Массив, в который будут возвращены записываемые объекты ZMQSockets/потоки PHP. Перед началом работы массив будет очищен.

timeout

Время ожидания операции. -1 означает, что опрос будет ждать до последнего. Обратите внимание, что с версии 1.0.0, время ожидания задается в миллисекундах, а не в микросекундах, как раньше.

Примеры

Пример #1 Пример использования ZMQPoll()

Создадим простой сервер опроса

<?php

/* Создаем сокет, паттерн request-reply (отвечающий сокет) */
$context = new ZMQContext();
$server  = $context->getSocket(ZMQ::SOCKET_REP);

/* Привязываем к порту 5555 на адрес 127.0.0.1 */
$server->bind("tcp://127.0.0.1:5555");

/* Создаем новый пул опроса для входящих/исходящих сообщений */
$poll = new ZMQPoll();

/* Добавляем объект и слушаем на предмет опроса входящих/исходящих */
$id = $poll->add($server, ZMQ::POLL_IN | ZMQ::POLL_OUT);
echo "Added object with id " . $id . "\n";

/* Инициализируем массив читаемых и записываемых элементов */
$readable = array();
$writable = array();

while (true) {
   /* Количество извлеченных событий */
   $events = 0;

   try {
       /* Опрашиваем, пока есть что делать */
       $events = $poll->poll($readable, $writable, -1);
       $errors = $poll->getLastErrors();

       if (count($errors) > 0) {
           foreach ($errors as $error) {
               echo "Ошибка опроса объекта " . $error . "\n";
           }
       }
   } catch (ZMQPollException $e) {
       echo "Опрос не удался: " . $e->getMessage() . "\n";
   }

   if ($events > 0) {
       /* Перебираем читаемые объекты и получаем сообщения */
       foreach ($readable as $r) {
           try {
               echo "Получено сообщение: " . $r->recv() . "\n";
           } catch (ZMQException $e) {
               echo "Ошибка получения: " . $e->getMessage() . "\n";
           }
       }

       /* Перебираем записываемые объекты и отправляем ответы */
       foreach ($writable as $w) {
           try {
               $w->send("Получил!");
           } catch (ZMQException $e) {
               echo "Ошибка отправки: " . $e->getMessage() . "\n";
           }
       }
   }
}
?>

Возвращаемые значения

Возвращает количество элементов, для которых происходила какая либо активность. В случае возникновения ошибки выбрасывает исключение ZMQPollException.


Удалить элемент из пула опроса

  • « ZMQPoll::poll
  • ZMQDevice »
  • PHP Manual
  • ZMQPoll
  • Удалить элемент из пула опроса

ZMQPoll::remove

(PECL zmq >= 0.5.0)

ZMQPoll::remove — Удалить элемент из пула опроса

Описание

public ZMQPoll::remove ( mixed $item ) : bool

Удаляет элемент из пула опроса. Параметр item должен быть объектом ZMQSocket, потоковым ресурсом или идентификатором, полученным в результате выполнения метода ZMQPoll::add().

Список параметров

item

Объект ZMQSocket, поток PHP, или строковый идентификатор элемента.

Возвращаемые значения

Возвращает TRUE, если удаление выполнено успешно и FALSE, если элемент не найден.


Класс ZMQDevice

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

ZMQDevice {
/* Методы */
__construct ( ZMQSocket $frontend , ZMQSocket $backend [, ZMQSocket $listener ] )
public getIdleTimeout ( void ) : ZMQDevice
public getTimerTimeout ( void ) : ZMQDevice
public run ( void ) : void
public setIdleCallback ( callable $cb_func , int $timeout [, mixed $user_data ] ) : ZMQDevice
public setIdleTimeout ( int $timeout ) : ZMQDevice
public setTimerCallback ( callable $cb_func , int $timeout [, mixed $user_data ] ) : ZMQDevice
public setTimerTimeout ( int $timeout ) : ZMQDevice
}

Содержание

  • ZMQDevice::__construct — Создает новое устройство
  • ZMQDevice::getIdleTimeout — Получить таймаут бездействия
  • ZMQDevice::getTimerTimeout — Получить таймаут таймера
  • ZMQDevice::run — Запуск нового устройства
  • ZMQDevice::setIdleCallback — Установить callback-функцию бездействия
  • ZMQDevice::setIdleTimeout — Установить таймаут простоя
  • ZMQDevice::setTimerCallback — Установить callback-функцию по таймеру
  • ZMQDevice::setTimerTimeout — Установить таймаут таймера


Создает новое устройство

  • « ZMQDevice
  • ZMQDevice::getIdleTimeout »
  • PHP Manual
  • ZMQDevice
  • Создает новое устройство

ZMQDevice::__construct

(PECL zmq >= 0.5.0)

ZMQDevice::__construct — Создает новое устройство

Описание

ZMQDevice::__construct ( ZMQSocket $frontend , ZMQSocket $backend [, ZMQSocket $listener ] )

Устройства OMQ могут представлять адреса, службы, очереди или любую другую абстракцию, которую вы хотите определить над слоями сообщений и сокетов.

Список параметров

frontend

Фронтэнд устройства. Обычно сюда приходят сообщения.

backend

Бекэнд устройства. Обычно отсюда сообщения отправляются.

listener

Сокет слушатель, который принимает копии всех сообщений, которые принимаются или передаются. Тип сокета должен быть SUB, PULL или DEALER.

Возвращаемые значения

Вызов этого метода подготавливает устройство. Обычно устройства используются для очень долгоиграющих задач, так что вызывать этот метод из интерактивных скриптов не рекомендуется. В случае, если не удалось запустить устройство, выбрасывается исключение ZMQDeviceException.


Получить таймаут бездействия

  • « ZMQDevice::__construct
  • ZMQDevice::getTimerTimeout »
  • PHP Manual
  • ZMQDevice
  • Получить таймаут бездействия

ZMQDevice::getIdleTimeout

(Информация о версии неизвестна, возможно, только в Git)

ZMQDevice::getIdleTimeout — Получить таймаут бездействия

Описание

public ZMQDevice::getIdleTimeout ( void ) : ZMQDevice

Возвращает значение таймаута callback-функции бездействия. Добавлено в версии расширения 1.1.0.

Возвращаемые значения

Возвращает значение таймаута callback-функции бездействия.


Получить таймаут таймера

  • « ZMQDevice::getIdleTimeout
  • ZMQDevice::run »
  • PHP Manual
  • ZMQDevice
  • Получить таймаут таймера

ZMQDevice::getTimerTimeout

(Информация о версии неизвестна, возможно, только в Git)

ZMQDevice::getTimerTimeout — Получить таймаут таймера

Описание

public ZMQDevice::getTimerTimeout ( void ) : ZMQDevice

Возвращает значение таймаута callback-функции таймера. Добавлено в версии расширения 1.1.0.

Возвращаемые значения

Метод возвращает значение таймаута таймера.


Запуск нового устройства

  • « ZMQDevice::getTimerTimeout
  • ZMQDevice::setIdleCallback »
  • PHP Manual
  • ZMQDevice
  • Запуск нового устройства

ZMQDevice::run

(Информация о версии неизвестна, возможно, только в Git)

ZMQDevice::run — Запуск нового устройства

Описание

public ZMQDevice::run ( void ) : void

Запускает устройство.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Запуск этого метода блокирует выполнение, пока устройство запущено. Не рекомендуется использовать в интерактивных скриптах. В случае ошибки выбрасывает исключение ZMQDeviceException.


Установить callback-функцию бездействия

  • « ZMQDevice::run
  • ZMQDevice::setIdleTimeout »
  • PHP Manual
  • ZMQDevice
  • Установить callback-функцию бездействия

ZMQDevice::setIdleCallback

(Информация о версии неизвестна, возможно, только в Git)

ZMQDevice::setIdleCallback — Установить callback-функцию бездействия

Описание

public ZMQDevice::setIdleCallback ( callable $cb_func , int $timeout [, mixed $user_data ] ) : ZMQDevice

Устанавливает callback-функцию бездействия. Если задан таймаут простоя, то эта функция будет запущена, если цикл опроса не получит ни одного события в течение этого времени. Если функция вернет эффективное FALSE, то устройство будет остановлено. Сигнатура функции - (mixed $user_data).

Список параметров

cb_func

Callback-функция для запуска в случае длительного простоя. Возврат FALSE или значения, которое приводится к FALSE приведет к остановке устройства.

timeout

Таймаут простоя в миллисекундах. Callback-функция будет вызываться всякий раз, когда в течение заданного времени не будет происходить никаких событий. Гарантируется, что между запусками функции будет происходить не менее заданного количества миллисекунд.

user_data

Дополнительные данные, которые будут передаваться в callback-функцию.

Возвращаемые значения

В случае успешного выполнения возвращает текущий объект.


Установить таймаут простоя

  • « ZMQDevice::setIdleCallback
  • ZMQDevice::setTimerCallback »
  • PHP Manual
  • ZMQDevice
  • Установить таймаут простоя

ZMQDevice::setIdleTimeout

(Информация о версии неизвестна, возможно, только в Git)

ZMQDevice::setIdleTimeout — Установить таймаут простоя

Описание

public ZMQDevice::setIdleTimeout ( int $timeout ) : ZMQDevice

Устанавливает значение таймаута запуска callback-функции при простое.

Список параметров

timeout

Значение в миллисекундах.

Возвращаемые значения

Возвращает текущий объект.


Установить callback-функцию по таймеру

  • « ZMQDevice::setIdleTimeout
  • ZMQDevice::setTimerTimeout »
  • PHP Manual
  • ZMQDevice
  • Установить callback-функцию по таймеру

ZMQDevice::setTimerCallback

(Информация о версии неизвестна, возможно, только в Git)

ZMQDevice::setTimerCallback — Установить callback-функцию по таймеру

Описание

public ZMQDevice::setTimerCallback ( callable $cb_func , int $timeout [, mixed $user_data ] ) : ZMQDevice

Устанавливает callback-функцию по таймеру. Переодически запускает callback-функцию. От callback-функции простоя отличается тем, что запускается в любом случае, а не только при простое устройства. Сигнатура функции - (mixed $user_data). Добавлено в версии 1.1.0.

Список параметров

cb_func

Callback-функция для запуска по таймеру. Возврат FALSE или значения, которое приводится к FALSE приведет к остановке устройства.

timeout

Таймаут в миллисекундах. Callback-функция будет вызываться через заданные промежутки времени. Гарантирует, что между запусками функции будет происходить не менее заданного количества миллисекунд.

user_data

Дополнительные данные, которые будут передаваться в callback-функцию.

Возвращаемые значения

Возвращает текущий объект.


Установить таймаут таймера

  • « ZMQDevice::setTimerCallback
  • ZooKeeper »
  • PHP Manual
  • ZMQDevice
  • Установить таймаут таймера

ZMQDevice::setTimerTimeout

(Информация о версии неизвестна, возможно, только в Git)

ZMQDevice::setTimerTimeout — Установить таймаут таймера

Описание

public ZMQDevice::setTimerTimeout ( int $timeout ) : ZMQDevice

Устанавливает таймаут таймера. Если задана callback-функция по таймеру, то она будет вызываться с заданной частотой. Добавлено в версии расширения 1.1.0.

Список параметров

timeout

Значение таймаута.

Возвращаемые значения

Возвращает текущий объект.


ZooKeeper

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции ZooKeeper
    • zookeeper_dispatch — Вызвать callback-функции для ожидающих операций
  • Zookeeper — Класс Zookeeper
    • Zookeeper::addAuth — Specify application credentials
    • Zookeeper::close — Close the zookeeper handle and free up any resources
    • Zookeeper::connect — Create a handle to used communicate with zookeeper
    • Zookeeper::__construct — Create a handle to used communicate with zookeeper
    • Zookeeper::create — Create a node synchronously
    • Zookeeper::delete — Delete a node in zookeeper synchronously
    • Zookeeper::exists — Checks the existence of a node in zookeeper synchronously
    • Zookeeper::get — Gets the data associated with a node synchronously
    • Zookeeper::getAcl — Gets the acl associated with a node synchronously
    • Zookeeper::getChildren — Lists the children of a node synchronously
    • Zookeeper::getClientId — Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
    • Zookeeper::getConfig — Get instance of ZookeeperConfig
    • Zookeeper::getRecvTimeout — Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect
    • Zookeeper::getState — Get the state of the zookeeper connection
    • Zookeeper::isRecoverable — Checks if the current zookeeper connection state can be recovered
    • Zookeeper::set — Sets the data associated with a node
    • Zookeeper::setAcl — Sets the acl associated with a node synchronously
    • Zookeeper::setDebugLevel — Sets the debugging level for the library
    • Zookeeper::setDeterministicConnOrder — Enable/disable quorum endpoint order randomization
    • Zookeeper::setLogStream — Sets the stream to be used by the library for logging
    • Zookeeper::setWatcher — Set a watcher function
  • ZookeeperConfig — Класс ZookeeperConfig
    • ZookeeperConfig::add — Add servers to the ensemble
    • ZookeeperConfig::get — Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
    • ZookeeperConfig::remove — Remove servers from the ensemble
    • ZookeeperConfig::set — Change ZK cluster ensemble membership and roles of ensemble peers
  • ZookeeperException — Класс ZookeeperException
  • ZookeeperAuthenticationException — Класс ZookeeperAuthenticationException
  • ZookeeperConnectionException — Класс ZookeeperConnectionException
  • ZookeeperMarshallingException — Класс ZookeeperMarshallingException
  • ZookeeperNoNodeException — Класс ZookeeperNoNodeException
  • ZookeeperOperationTimeoutException — Класс ZookeeperOperationTimeoutException
  • ZookeeperSessionException — Класс ZookeeperSessionException


Введение

Это расширение использует библиотеку libzookeeper, чтобы предоставлять API для связи с сервером ZooKeeper.

ZooKeeper - это проект Apache, предоставляющий централизованный сервис для поддержания конфигурационной информации и наименований, предоставления возможности распределенной синхронизации и групповых сервисов.


Требования

Это расширение требует » ZooKeeper C Binding (версии 3.4.1 или выше). Более подробно смотрите » ZooKeeper Programmer's Guide.

Этому расширению требуется PHP версии 5.2.0 или выше. Начиная с 0.6.0, это расширение требует PHP 7.0.0 или выше.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/zookeeper.

Чтобы включить поддержку zookeeper, конфигурируйте PHP с опцией --with-libzookeeper-dir=DIR . DIR - директория в которой установлена библиотека ZooKeeper C Binding, внутри которой должен находиться include/zookeeper/zookeeper.h

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Zookeeper
Имя | По умолчанию | Место изменения | История изменений
zookeeper.recv_timeout | 10000 | PHP_INI_ALL |
zookeeper.session_lock | 1 | PHP_INI_SYSTEM |
zookeeper.sess_lock_wait | 150000 | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

zookeeper.recv_timeout integer

Тайм-аут по умолчанию для всех сессий ZooKeeper.

zookeeper.session_lock integer

Разрешает блокировку сессий PHP.

zookeeper.sess_lock_wait integer

Время ожидания повтора при взаимной блокировке сессии PHP в микросекундах. Будьте осторожны, устанавливая это значение. Корректные значения - целые числа, по умолчанию используются 0. Отрицательные значения приводит к уменьшению попыток блокирования.


  • « Типы ресурсов
  • Функции ZooKeeper »
  • PHP Manual
  • ZooKeeper
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • zookeeper_dispatch »
  • PHP Manual
  • ZooKeeper
  • Функции ZooKeeper

Функции ZooKeeper

Содержание

  • zookeeper_dispatch — Вызвать callback-функции для ожидающих операций


Вызвать callback-функции для ожидающих операций

  • « Функции ZooKeeper
  • Zookeeper »
  • PHP Manual
  • Функции ZooKeeper
  • Вызвать callback-функции для ожидающих операций

zookeeper_dispatch

(PECL zookeeper >= 0.4.0)

zookeeper_dispatch — Вызвать callback-функции для ожидающих операций

Описание

zookeeper_dispatch ( void ) : void

Функция zookeeper_dispatch() вызывает callback-функции, переданные операциями, такими как Zookeeper::get() или Zookeeper::exists().

Предостережение

С версии 0.4.0 эта функция должна вызываться вручную для асинхронных операций. Если вы хотите, чтобы это было сделано автоматически, вы можете объявить тики в самом начале скрипта, используя директиву declare.

После PHP 7.1 вы можете игнорировать эту функцию. Это расширение использует EG (vm_interrupt) для реализации асинхронного вызова callback-функций.

Ошибки

Эта функция вызывает предупреждение PHP, если callback-функция не может быть вызвана.

Примеры

Пример #1 zookeeper_dispatch() example #1

Вызов callback-функций вручную.

<?php
$client = new Zookeeper();
$client->connect('localhost:2181');
$client->get('/zookeeper', function() {
    echo "Была вызвана callback-функция".PHP_EOL;
});
while(true) {
    sleep(1);
    zookeeper_dispatch();
}
?>

Пример #2 Пример использования zookeeper_dispatch() #2

Обявление тиков.

<?php
declare(ticks=1);

$client = new Zookeeper();
$client->connect('localhost:2181');
$client->get('/zookeeper', function() {
    echo "Была вызвана callback-функция".PHP_EOL;
});
while(true) {
    sleep(1);
}
?>

Смотрите также

  • Zookeeper::addAuth() - Specify application credentials
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::exists() - Checks the existence of a node in zookeeper synchronously
  • Zookeeper::get() - Gets the data associated with a node synchronously
  • Zookeeper::getChildren() - Lists the children of a node synchronously
  • Zookeeper::setWatcher() - Set a watcher function


Класс Zookeeper

(PECL zookeeper >= 0.1.0)

Введение

Представляет сессию ZooKeeper.

Обзор классов

Zookeeper {
/* Методы */
public __construct ([ string $host = '' [, callable $watcher_cb = NULL [, int $recv_timeout = 10000 ]]] )
public addAuth ( string $scheme , string $cert [, callable $completion_cb = NULL ] ) : bool
public close ( void ) : void
public connect ( string $host [, callable $watcher_cb = NULL [, int $recv_timeout = 10000 ]] ) : void
public create ( string $path , string $value , array $acls [, int $flags = NULL ] ) : string
public delete ( string $path [, int $version = -1 ] ) : bool
public exists ( string $path [, callable $watcher_cb = NULL ] ) : array
public get ( string $path [, callable $watcher_cb = NULL [, array &$stat = NULL [, int $max_size = 0 ]]] ) : string
public getAcl ( string $path ) : array
public getChildren ( string $path [, callable $watcher_cb = NULL ] ) : array
public getClientId ( void ) : int
public getConfig ( void ) : ZookeeperConfig
public getRecvTimeout ( void ) : int
public getState ( void ) : int
public isRecoverable ( void ) : bool
public set ( string $path , string $value [, int $version = -1 [, array &$stat = NULL ]] ) : bool
public setAcl ( string $path , int $version , array $acl ) : bool
public static setDebugLevel ( int $logLevel ) : bool
public static setDeterministicConnOrder ( bool $yesOrNo ) : bool
public setLogStream ( resource $stream ) : bool
public setWatcher ( callable $watcher_cb ) : bool
/* Константы */
const integer PERM_READ = 1 ;
const integer PERM_WRITE = 2 ;
const integer PERM_CREATE = 4 ;
const integer PERM_DELETE = 8 ;
const integer PERM_ADMIN = 16 ;
const integer PERM_ALL = 31 ;
const integer EPHEMERAL = 1 ;
const integer SEQUENCE = 2 ;
const integer LOG_LEVEL_ERROR = 1 ;
const integer LOG_LEVEL_WARN = 2 ;
const integer LOG_LEVEL_INFO = 3 ;
const integer LOG_LEVEL_DEBUG = 4 ;
const integer EXPIRED_SESSION_STATE = -112 ;
const integer AUTH_FAILED_STATE = -113 ;
const integer CONNECTING_STATE = 1 ;
const integer ASSOCIATING_STATE = 2 ;
const integer CONNECTED_STATE = 3 ;
const integer READONLY_STATE = 5 ;
const integer NOTCONNECTED_STATE = 999 ;
const integer CREATED_EVENT = 1 ;
const integer DELETED_EVENT = 2 ;
const integer CHANGED_EVENT = 3 ;
const integer CHILD_EVENT = 4 ;
const integer SESSION_EVENT = -1 ;
const integer NOTWATCHING_EVENT = -2 ;
const integer SYSTEMERROR = -1 ;
const integer RUNTIMEINCONSISTENCY = -2 ;
const integer DATAINCONSISTENCY = -3 ;
const integer CONNECTIONLOSS = -4 ;
const integer MARSHALLINGERROR = -5 ;
const integer UNIMPLEMENTED = -6 ;
const integer OPERATIONTIMEOUT = -7 ;
const integer BADARGUMENTS = -8 ;
const integer INVALIDSTATE = -9 ;
const integer NEWCONFIGNOQUORUM = -13 ;
const integer RECONFIGINPROGRESS = -14 ;
const integer OK = 0 ;
const integer APIERROR = -100 ;
const integer NONODE = -101 ;
const integer NOAUTH = -102 ;
const integer BADVERSION = -103 ;
const integer NOCHILDRENFOREPHEMERALS = -108 ;
const integer NODEEXISTS = -110 ;
const integer NOTEMPTY = -111 ;
const integer SESSIONEXPIRED = -112 ;
const integer INVALIDCALLBACK = -113 ;
const integer INVALIDACL = -114 ;
const integer AUTHFAILED = -115 ;
const integer CLOSING = -116 ;
const integer NOTHING = -117 ;
const integer SESSIONMOVED = -118 ;
const integer NOTREADONLY = -119 ;
const integer EPHEMERALONLOCALSESSION = -120 ;
const integer NOWATCHER = -121 ;
const integer RECONFIGDISABLED = -122 ;
}

Предопределенные константы

Разрешения ZooKeeper

Zookeeper::PERM_READ

Можно читать значение узла и список дочерних узлов

Zookeeper::PERM_WRITE

Можно устанавливать значение узла

Zookeeper::PERM_CREATE

Можно создавать дочерние элементы

Zookeeper::PERM_DELETE

Можно удалять дочерние элементы

Zookeeper::PERM_ADMIN

Можно запускать set_acl()

Zookeeper::PERM_ALL

Можно использовать все вышеуказанные флаги вместе

Флаги создания ZooKeeper

Zookeeper::EPHEMERAL

Если установлен флаг Zookeeper::EPHEMERAL, узел будет автоматически удален по завершению клиентской сессии.

Zookeeper::SEQUENCE

Если установлен флаг Zookeeper::SEQUENCE, к имени пути будет добавляться уникальный номер из монотонно возрастающей последовательности. Номер из последовательности всегда имеет фиксированную длину в 10 цифр, дополненную лидирующими нулями по необходимости.

Уровень логирования ZooKeeper

Zookeeper::LOG_LEVEL_ERROR

Выводить только сообщения об ошибках

Zookeeper::LOG_LEVEL_WARN

Выводить ошибки и предупреждения

Zookeeper::LOG_LEVEL_INFO

Выводить большие сообщения о действиях помимо ошибок и предупреждений

Zookeeper::LOG_LEVEL_DEBUG

Выводить все

Состояния ZooKeeper

Zookeeper::EXPIRED_SESSION_STATE

Соединение установлено, но сессия истекла

Zookeeper::AUTH_FAILED_STATE

Соединение установлено, но аутентификация неудачная

Zookeeper::CONNECTING_STATE

Устанавливается соединение

Zookeeper::ASSOCIATING_STATE

Ассоциирование

Zookeeper::CONNECTED_STATE

Соединение установлено

Zookeeper::READONLY_STATE

TODO: помогите нам улучшить это расширение

Zookeeper::NOTCONNECTED_STATE

Соединение не установлено

Типы событий ZooKeeper

Zookeeper::CREATED_EVENT

Узел был создан

Генерируется только путем наблюдения за несуществующими узлами. Эти наблюдатели задаются с помощью Zookeeper::exists.

Zookeeper::DELETED_EVENT

Узел был удален

Генерируется только путем наблюдения за узлами. Эти наблюдатели задаются с помощью Zookeeper::exists и Zookeeper::get.

Zookeeper::CHANGED_EVENT

Узел был изменен

Генерируется только путем наблюдения за узлами. Эти наблюдатели задаются с помощью Zookeeper::exists и Zookeeper::get.

Zookeeper::CHILD_EVENT

Произошло изменение в списке дочерних узлов

Генерируется только путем наблюдения за списком дочерних узлов. Эти наблюдатели задаются с помощью Zookeeper::getChildren.

Zookeeper::SESSION_EVENT

Сессия была потеряна

Генерируется когда коиент потерял соединение с сервером, либо инициировал пересоединение.

Zookeeper::NOTWATCHING_EVENT

Наблюдатель был удален

Генерируется сервером по разным причинам, например связанным с ограничением ресурса, и говорит о том, что дальнейшее наблюдение за узлом невозможно.

Системные ошибки и ошибки на стороне сервера ZooKeeper

Zookeeper::SYSTEMERROR

Никогда не выбрасывается сервером и может использоваться только для ограничения диапазона кодов ошибок. Все ошибки большие этой, но меньшие Zookeeper::APIERROR, являются системными ошибками.

Zookeeper::RUNTIMEINCONSISTENCY

Обнаружена несогласованность во время выполнения.

Zookeeper::DATAINCONSISTENCY

Обнаружена несогласованность данных.

Zookeeper::CONNECTIONLOSS

Потеряно соединение с сервером.

Zookeeper::MARSHALLINGERROR

Ошибка при маршалинге и демаршалинге данных.

Zookeeper::UNIMPLEMENTED

Операция не реализована.

Zookeeper::OPERATIONTIMEOUT

Превышение времени ожидания операции.

Zookeeper::BADARGUMENTS

Некорректный аргумент.

Zookeeper::INVALIDSTATE

Некорректный статус zhandle.

Zookeeper::NEWCONFIGNOQUORUM

Кворум новой конфигурации не подключен и не синхронизирован с лидером последней подтвержденной конфигурации. Попробуйте запустить переконфигурацию после подключения и синхронизации новых серверов.

Доступно с версии ZooKeeper 3.5.0

Zookeeper::RECONFIGINPROGRESS

Запрос переконфигурации во время работы другого процесса переконфигурации. В данный момент не поддерживается. Попробуйте повторить позже.

Доступно с версии ZooKeeper 3.5.0

ZooKeeper API Errors

Zookeeper::OK

Все хорошо.

Zookeeper::APIERROR

Никогда не выбрасывается сервером и может использоваться только для ограничения диапазона кодов ошибок. Все ошибки большие этой, являются ошибками API (значения меньшие данного означают системные ошибки).

Zookeeper::NONODE

Узел отсутствует.

Zookeeper::NOAUTH

Отсутствует аутентификация.

Zookeeper::BADVERSION

Конфликт версий.

Zookeeper::NOCHILDRENFOREPHEMERALS

Эфемерные узлы не должны иметь потомков.

Zookeeper::NODEEXISTS

Узел уже существует.

Zookeeper::NOTEMPTY

Узел имеет потомков.

Zookeeper::SESSIONEXPIRED

Срок действия сессии истек.

Zookeeper::INVALIDCALLBACK

Задана некорректная функция обратного вызова.

Zookeeper::INVALIDACL

Задан некорректный ACL.

Zookeeper::AUTHFAILED

Неудачная аутентификация клиента.

Zookeeper::CLOSING

ZooKeeper закрывается.

Zookeeper::NOTHING

(не ошибка) Никакакого ответа от сервера для обработки.

Zookeeper::SESSIONMOVED

Сессия перемещена на другой сервер, таким образом операция проигнорирована.

Zookeeper::NOTREADONLY

Запрос изменения статуса отправлен на сервер с режимом "только чтение".

Zookeeper::EPHEMERALONLOCALSESSION

Попытка создать эфемерный узел в локальной сессии.

Zookeeper::NOWATCHER

Невозможно найти наблюдателя.

Zookeeper::RECONFIGDISABLED

Попытка произвести операцию переконфигурации в случае если она запрещена.

Содержание

  • Zookeeper::addAuth — Specify application credentials
  • Zookeeper::close — Close the zookeeper handle and free up any resources
  • Zookeeper::connect — Create a handle to used communicate with zookeeper
  • Zookeeper::__construct — Create a handle to used communicate with zookeeper
  • Zookeeper::create — Create a node synchronously
  • Zookeeper::delete — Delete a node in zookeeper synchronously
  • Zookeeper::exists — Checks the existence of a node in zookeeper synchronously
  • Zookeeper::get — Gets the data associated with a node synchronously
  • Zookeeper::getAcl — Gets the acl associated with a node synchronously
  • Zookeeper::getChildren — Lists the children of a node synchronously
  • Zookeeper::getClientId — Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
  • Zookeeper::getConfig — Get instance of ZookeeperConfig
  • Zookeeper::getRecvTimeout — Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect
  • Zookeeper::getState — Get the state of the zookeeper connection
  • Zookeeper::isRecoverable — Checks if the current zookeeper connection state can be recovered
  • Zookeeper::set — Sets the data associated with a node
  • Zookeeper::setAcl — Sets the acl associated with a node synchronously
  • Zookeeper::setDebugLevel — Sets the debugging level for the library
  • Zookeeper::setDeterministicConnOrder — Enable/disable quorum endpoint order randomization
  • Zookeeper::setLogStream — Sets the stream to be used by the library for logging
  • Zookeeper::setWatcher — Set a watcher function


Specify application credentials

  • « Zookeeper
  • Zookeeper::close »
  • PHP Manual
  • Zookeeper
  • Specify application credentials

Zookeeper::addAuth

(PECL zookeeper >= 0.1.0)

Zookeeper::addAuth — Specify application credentials

Описание

public Zookeeper::addAuth ( string $scheme , string $cert [, callable $completion_cb = NULL ] ) : bool

The application calls this function to specify its credentials for purposes of authentication. The server will use the security provider specified by the scheme parameter to authenticate the client connection. If the authentication request has failed: - the server connection is dropped. - the watcher is called with the ZOO_AUTH_FAILED_STATE value as the state parameter.

Список параметров

scheme

The id of authentication scheme. Natively supported: "digest" password-based authentication

cert

Application credentials. The actual value depends on the scheme.

completion_cb

The routine to invoke when the request completes. One of the following result codes may be passed into the completion callback: - ZOK operation completed successfully - ZAUTHFAILED authentication failed

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or operation fails.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Примеры

Пример #1 Zookeeper::addAuth() example

Add auth before requesting node value.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$value = 'nodevalue';
$zookeeper->set($path, $value);

$zookeeper->addAuth('digest', 'user0:passwd0');
$r = $zookeeper->get($path);
if ($r)
  echo $r;
else
  echo 'ERR';
?>

Результат выполнения данного примера:

nodevalue

Смотрите также

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::setAcl() - Sets the acl associated with a node synchronously
  • Zookeeper::getAcl() - Gets the acl associated with a node synchronously
  • ZooKeeper States
  • ZookeeperException


Close the zookeeper handle and free up any resources

  • « Zookeeper::addAuth
  • Zookeeper::connect »
  • PHP Manual
  • Zookeeper
  • Close the zookeeper handle and free up any resources

Zookeeper::close

(PECL zookeeper >= 0.5.0)

Zookeeper::close — Close the zookeeper handle and free up any resources

Описание

public Zookeeper::close ( void ) : void

Ошибки

This method emits ZookeeperException and it's derivatives when closing an uninitialized instance.

Смотрите также

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • ZookeeperException


Create a handle to used communicate with zookeeper

  • « Zookeeper::close
  • Zookeeper::__construct »
  • PHP Manual
  • Zookeeper
  • Create a handle to used communicate with zookeeper

Zookeeper::connect

(PECL zookeeper >= 0.2.0)

Zookeeper::connect — Create a handle to used communicate with zookeeper

Описание

public Zookeeper::connect ( string $host [, callable $watcher_cb = NULL [, int $recv_timeout = 10000 ]] ) : void

This method creates a new handle and a zookeeper session that corresponds to that handle. Session establishment is asynchronous, meaning that the session should not be considered established until (and unless) an event of state ZOO_CONNECTED_STATE is received.

Список параметров

host

Comma separated host:port pairs, each corresponding to a zk server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"

watcher_cb

The global watcher callback function. When notifications are triggered this function will be invoked.

recv_timeout

The timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE).

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or could not init instance.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Смотрите также

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • ZookeeperException


Create a handle to used communicate with zookeeper

  • « Zookeeper::connect
  • Zookeeper::create »
  • PHP Manual
  • Zookeeper
  • Create a handle to used communicate with zookeeper

Zookeeper::__construct

(PECL zookeeper >= 0.1.0)

Zookeeper::__construct — Create a handle to used communicate with zookeeper

Описание

public Zookeeper::__construct ([ string $host = '' [, callable $watcher_cb = NULL [, int $recv_timeout = 10000 ]]] )

This method creates a new handle and a zookeeper session that corresponds to that handle. Session establishment is asynchronous, meaning that the session should not be considered established until (and unless) an event of state ZOO_CONNECTED_STATE is received.

Список параметров

host

comma separated host:port pairs, each corresponding to a zk server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"

watcher_cb

the global watcher callback function. When notifications are triggered this function will be invoked.

recv_timeout

the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE).

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or could not init instance.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Смотрите также

  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • ZookeeperException


Create a node synchronously

  • « Zookeeper::__construct
  • Zookeeper::delete »
  • PHP Manual
  • Zookeeper
  • Create a node synchronously

Zookeeper::create

(PECL zookeeper >= 0.1.0)

Zookeeper::create — Create a node synchronously

Описание

public Zookeeper::create ( string $path , string $value , array $acls [, int $flags = NULL ] ) : string

This method will create a node in ZooKeeper. A node can only be created if it does not already exists. The Create Flags affect the creation of nodes. If ZOO_EPHEMERAL flag is set, the node will automatically get removed if the client session goes away. If the ZOO_SEQUENCE flag is set, a unique monotonically increasing sequence number is appended to the path name.

Список параметров

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

value

The data to be stored in the node.

acls

The initial ACL of the node. The ACL must not be null or empty.

flags

this parameter can be set to 0 for normal create or an OR of the Create Flags

Возвращаемые значения

Returns the path of the new node (this might be different than the supplied path because of the ZOO_SEQUENCE flag) on success, and false on failure.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to create node.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Примеры

Пример #1 Zookeeper::create() example

Create a new node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$aclArray = array(
  array(
    'perms'  => Zookeeper::PERM_ALL,
    'scheme' => 'world',
    'id'     => 'anyone',
  )
);
$path = '/path/to/newnode';
$realPath = $zookeeper->create($path, null, $aclArray);
if ($realPath)
  echo $realPath;
else
  echo 'ERR';
?>

Результат выполнения данного примера:

/path/to/newnode

Смотрите также

  • Zookeeper::delete() - Delete a node in zookeeper synchronously
  • Zookeeper::getChildren() - Lists the children of a node synchronously
  • ZooKeeper Permissions
  • ZookeeperException


Delete a node in zookeeper synchronously

  • « Zookeeper::create
  • Zookeeper::exists »
  • PHP Manual
  • Zookeeper
  • Delete a node in zookeeper synchronously

Zookeeper::delete

(PECL zookeeper >= 0.2.0)

Zookeeper::delete — Delete a node in zookeeper synchronously

Описание

public Zookeeper::delete ( string $path [, int $version = -1 ] ) : bool

Список параметров

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to delete node.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Примеры

Пример #1 Zookeeper::delete() example

Delete a existing node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$r = $zookeeper->delete($path);
if ($r)
  echo 'SUCCESS';
else
  echo 'ERR';
?>

Результат выполнения данного примера:

SUCCESS

Смотрите также

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::getChildren() - Lists the children of a node synchronously
  • ZookeeperException


Checks the existence of a node in zookeeper synchronously

  • « Zookeeper::delete
  • Zookeeper::get »
  • PHP Manual
  • Zookeeper
  • Checks the existence of a node in zookeeper synchronously

Zookeeper::exists

(PECL zookeeper >= 0.1.0)

Zookeeper::exists — Checks the existence of a node in zookeeper synchronously

Описание

public Zookeeper::exists ( string $path [, callable $watcher_cb = NULL ] ) : array

Список параметров

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

watcher_cb

if nonzero, a watch will be set at the server to notify the client if the node changes. The watch will be set even if the node does not

Возвращаемые значения

Returns the value of stat for the path if the given node exists, otherwise false.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to check the existence of a node.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Примеры

Пример #1 Zookeeper::exists() example

Check the existence of a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$r = $zookeeper->exists($path);
if ($r)
  echo 'EXISTS';
else
  echo 'N/A or ERR';
?>

Результат выполнения данного примера:

EXISTS

Смотрите также

  • Zookeeper::get() - Gets the data associated with a node synchronously
  • ZookeeperException


Gets the data associated with a node synchronously

  • « Zookeeper::exists
  • Zookeeper::getAcl »
  • PHP Manual
  • Zookeeper
  • Gets the data associated with a node synchronously

Zookeeper::get

(PECL zookeeper >= 0.1.0)

Zookeeper::get — Gets the data associated with a node synchronously

Описание

public Zookeeper::get ( string $path [, callable $watcher_cb = NULL [, array &$stat = NULL [, int $max_size = 0 ]]] ) : string

Список параметров

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

watcher_cb

If nonzero, a watch will be set at the server to notify the client if the node changes.

stat

If not NULL, will hold the value of stat for the path on return.

max_size

Max size of the data. If 0 is used, this method will return the whole data.

Возвращаемые значения

Returns the data on success, and false on failure.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to get value from node.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Примеры

Пример #1 Zookeeper::get() example

Get value from node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$value = 'nodevalue';
$zookeeper->set($path, $value);

$r = $zookeeper->get($path);
if ($r)
  echo $r;
else
  echo 'ERR';
?>

Результат выполнения данного примера:

nodevalue

Пример #2 Zookeeper::get() stat example

Get node stat info.

<?php
$zookeeper = new Zookeeper('localhost:2181');
$path = '/path/to/node';
$stat = [];
$zookeeper->get($path, null, $stat);
var_dump($stat);
?>

Результат выполнения данного примера:

array(11) {
  ["czxid"]=>
  float(0)
  ["mzxid"]=>
  float(0)
  ["ctime"]=>
  float(0)
  ["mtime"]=>
  float(0)
  ["version"]=>
  int(0)
  ["cversion"]=>
  int(-2)
  ["aversion"]=>
  int(0)
  ["ephemeralOwner"]=>
  float(0)
  ["dataLength"]=>
  int(0)
  ["numChildren"]=>
  int(2)
  ["pzxid"]=>
  float(0)
}

Смотрите также

  • Zookeeper::set() - Sets the data associated with a node
  • ZookeeperException


Gets the acl associated with a node synchronously

  • « Zookeeper::get
  • Zookeeper::getChildren »
  • PHP Manual
  • Zookeeper
  • Gets the acl associated with a node synchronously

Zookeeper::getAcl

(PECL zookeeper >= 0.1.0)

Zookeeper::getAcl — Gets the acl associated with a node synchronously

Описание

public Zookeeper::getAcl ( string $path ) : array

Список параметров

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

Возвращаемые значения

Return acl array on success and false on failure.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to get ACL of a node.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Примеры

Пример #1 Zookeeper::getAcl() example

Get ACL of a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$aclArray = array(
  array(
    'perms'  => Zookeeper::PERM_ALL,
    'scheme' => 'world',
    'id'     => 'anyone',
  )
);
$path = '/path/to/newnode';
$zookeeper->setAcl($path, $aclArray);

$r = $zookeeper->getAcl($path);
if ($r)
  var_dump($r);
else
  echo 'ERR';
?>

Результат выполнения данного примера:

array(1) {
  [0]=>
  array(3) {
    ["perms"]=>
    int(31)
    ["scheme"]=>
    string(5) "world"
    ["id"]=>
    string(6) "anyone"
  }
}

Смотрите также

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::setAcl() - Sets the acl associated with a node synchronously
  • ZooKeeper Permissions
  • ZookeeperException


Lists the children of a node synchronously

  • « Zookeeper::getAcl
  • Zookeeper::getClientId »
  • PHP Manual
  • Zookeeper
  • Lists the children of a node synchronously

Zookeeper::getChildren

(PECL zookeeper >= 0.1.0)

Zookeeper::getChildren — Lists the children of a node synchronously

Описание

public Zookeeper::getChildren ( string $path [, callable $watcher_cb = NULL ] ) : array

Список параметров

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

watcher_cb

If nonzero, a watch will be set at the server to notify the client if the node changes.

Возвращаемые значения

Returns an array with children paths on success, and false on failure.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to list children of a node.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Примеры

Пример #1 Zookeeper::getChildren() example

Lists children of a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/zookeeper';
$r = $zookeeper->getchildren($path);
if ($r)
  var_dump($r);
else
  echo 'ERR';
?>

Результат выполнения данного примера:

array(1) {
  [0]=>
  string(6) "config"
}

Смотрите также

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::delete() - Delete a node in zookeeper synchronously
  • ZookeeperException


Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)

  • « Zookeeper::getChildren
  • Zookeeper::getConfig »
  • PHP Manual
  • Zookeeper
  • Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)

Zookeeper::getClientId

(PECL zookeeper >= 0.1.0)

Zookeeper::getClientId — Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)

Описание

public Zookeeper::getClientId ( void ) : int

Возвращаемые значения

Returns the client session id on success, and false on failure.

Ошибки

This method emits PHP error/warning when it could not get client session id.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Смотрите также

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • Zookeeper::getState() - Get the state of the zookeeper connection
  • ZooKeeper States
  • ZookeeperException


Get instance of ZookeeperConfig

  • « Zookeeper::getClientId
  • Zookeeper::getRecvTimeout »
  • PHP Manual
  • Zookeeper
  • Get instance of ZookeeperConfig

Zookeeper::getConfig

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

Zookeeper::getConfig — Get instance of ZookeeperConfig

Описание

public Zookeeper::getConfig ( void ) : ZookeeperConfig

Возвращаемые значения

Returns instance of ZookeeperConfig.

Смотрите также

  • ZookeeperConfig


Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect

  • « Zookeeper::getConfig
  • Zookeeper::getState »
  • PHP Manual
  • Zookeeper
  • Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect

Zookeeper::getRecvTimeout

(PECL zookeeper >= 0.1.0)

Zookeeper::getRecvTimeout — Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect

Описание

public Zookeeper::getRecvTimeout ( void ) : int

Возвращаемые значения

Returns the timeout for this session on success, and false on failure.

Ошибки

This method emits PHP error/warning when operation fails.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Смотрите также

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • ZookeeperException


Get the state of the zookeeper connection

  • « Zookeeper::getRecvTimeout
  • Zookeeper::isRecoverable »
  • PHP Manual
  • Zookeeper
  • Get the state of the zookeeper connection

Zookeeper::getState

(PECL zookeeper >= 0.1.0)

Zookeeper::getState — Get the state of the zookeeper connection

Описание

public Zookeeper::getState ( void ) : int

Возвращаемые значения

Returns the state of zookeeper connection on success, and false on failure.

Ошибки

This method emits PHP error/warning when it fails to get state of zookeeper connection.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Смотрите также

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • Zookeeper::getClientId() - Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
  • ZooKeeper States
  • ZookeeperException


Checks if the current zookeeper connection state can be recovered

  • « Zookeeper::getState
  • Zookeeper::set »
  • PHP Manual
  • Zookeeper
  • Checks if the current zookeeper connection state can be recovered

Zookeeper::isRecoverable

(PECL zookeeper >= 0.1.0)

Zookeeper::isRecoverable — Checks if the current zookeeper connection state can be recovered

Описание

public Zookeeper::isRecoverable ( void ) : bool

The application must close the handle and try to reconnect.

Возвращаемые значения

Returns true/false on success, and false on failure.

Ошибки

This method emits PHP error/warning when operation fails.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Смотрите также

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • Zookeeper::getClientId() - Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
  • ZooKeeper States
  • ZookeeperException


Sets the data associated with a node

  • « Zookeeper::isRecoverable
  • Zookeeper::setAcl »
  • PHP Manual
  • Zookeeper
  • Sets the data associated with a node

Zookeeper::set

(PECL zookeeper >= 0.1.0)

Zookeeper::set — Sets the data associated with a node

Описание

public Zookeeper::set ( string $path , string $value [, int $version = -1 [, array &$stat = NULL ]] ) : bool

Список параметров

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

value

The data to be stored in the node.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

stat

If not NULL, will hold the value of stat for the path on return.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to save value to node.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Примеры

Пример #1 Zookeeper::set() example

Save value to node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$value = 'nodevalue';
$r = $zookeeper->set($path, $value);
if ($r)
  echo 'SUCCESS';
else
  echo 'ERR';
?>

Результат выполнения данного примера:

SUCCESS

Смотрите также

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::get() - Gets the data associated with a node synchronously
  • ZookeeperException


Sets the acl associated with a node synchronously

  • « Zookeeper::set
  • Zookeeper::setDebugLevel »
  • PHP Manual
  • Zookeeper
  • Sets the acl associated with a node synchronously

Zookeeper::setAcl

(PECL zookeeper >= 0.1.0)

Zookeeper::setAcl — Sets the acl associated with a node synchronously

Описание

public Zookeeper::setAcl ( string $path , int $version , array $acl ) : bool

Список параметров

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

version

The expected version of the path.

acl

The acl to be set on the path.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to set ACL for a node.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Примеры

Пример #1 Zookeeper::setAcl() example

Set ACL for a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$aclArray = array(
  array(
    'perms'  => Zookeeper::PERM_ALL,
    'scheme' => 'world',
    'id'     => 'anyone',
  )
);
$path = '/path/to/newnode';
$zookeeper->setAcl($path, $aclArray);

$r = $zookeeper->getAcl($path);
if ($r)
  var_dump($r);
else
  echo 'ERR';
?>

Результат выполнения данного примера:

array(1) {
  [0]=>
  array(3) {
    ["perms"]=>
    int(31)
    ["scheme"]=>
    string(5) "world"
    ["id"]=>
    string(6) "anyone"
  }
}

Смотрите также

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::getAcl() - Gets the acl associated with a node synchronously
  • ZooKeeper Permissions
  • ZookeeperException


Sets the debugging level for the library

  • « Zookeeper::setAcl
  • Zookeeper::setDeterministicConnOrder »
  • PHP Manual
  • Zookeeper
  • Sets the debugging level for the library

Zookeeper::setDebugLevel

(PECL zookeeper >= 0.1.0)

Zookeeper::setDebugLevel — Sets the debugging level for the library

Описание

public static Zookeeper::setDebugLevel ( int $logLevel ) : bool

Список параметров

logLevel

ZooKeeper log level constants.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to set debug level.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Примеры

Пример #1 Zookeeper::setDebugLevel() example

Set debugl level.

<?php
$r = Zookeeper::setDebugLevel(Zookeeper::LOG_LEVEL_WARN);
if ($r)
  echo 'SUCCESS';
else
  echo 'ERR';
?>
?>

Результат выполнения данного примера:

SUCCESS

Смотрите также

  • ZooKeeper Log Levels
  • ZookeeperException


Enable/disable quorum endpoint order randomization

  • « Zookeeper::setDebugLevel
  • Zookeeper::setLogStream »
  • PHP Manual
  • Zookeeper
  • Enable/disable quorum endpoint order randomization

Zookeeper::setDeterministicConnOrder

(PECL zookeeper >= 0.1.0)

Zookeeper::setDeterministicConnOrder — Enable/disable quorum endpoint order randomization

Описание

public static Zookeeper::setDeterministicConnOrder ( bool $yesOrNo ) : bool

If passed a true value, will make the client connect to quorum peers in the order as specified in the zookeeper_init() call. A false value causes zookeeper_init() to permute the peer endpoints which is good for more even client connection distribution among the quorum peers. ZooKeeper C Client uses false by default.

Список параметров

yesOrNo

Disable/enable quorum endpoint order randomization.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or operation fails.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Смотрите также

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • ZookeeperException


Sets the stream to be used by the library for logging

  • « Zookeeper::setDeterministicConnOrder
  • Zookeeper::setWatcher »
  • PHP Manual
  • Zookeeper
  • Sets the stream to be used by the library for logging

Zookeeper::setLogStream

(PECL zookeeper >= 0.1.0)

Zookeeper::setLogStream — Sets the stream to be used by the library for logging

Описание

public Zookeeper::setLogStream ( resource $stream ) : bool

The zookeeper library uses stderr as its default log stream. Application must make sure the stream is writable. Passing in NULL resets the stream to its default value (stderr).

Список параметров

stream

The stream to be used by the library for logging.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or operation fails.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Смотрите также

  • Zookeeper::setDebugLevel() - Sets the debugging level for the library
  • ZookeeperException


Set a watcher function

  • « Zookeeper::setLogStream
  • ZookeeperConfig »
  • PHP Manual
  • Zookeeper
  • Set a watcher function

Zookeeper::setWatcher

(PECL zookeeper >= 0.1.0)

Zookeeper::setWatcher — Set a watcher function

Описание

public Zookeeper::setWatcher ( callable $watcher_cb ) : bool

Список параметров

watcher_cb

A watch will be set at the server to notify the client if the node changes.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to set watcher.

Предостережение

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Смотрите также

  • Zookeeper::exists() - Checks the existence of a node in zookeeper synchronously
  • Zookeeper::get() - Gets the data associated with a node synchronously
  • ZookeeperException


Класс ZookeeperConfig

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

Введение

Класс обработки ZooKeeper Config.

Обзор классов

ZookeeperConfig {
/* Методы */
public add ( string $members [, int $version = -1 [, array &$stat = NULL ]] ) : void
public get ([ callable $watcher_cb = NULL [, array &$stat = NULL ]] ) : string
public remove ( string $id_list [, int $version = -1 [, array &$stat = NULL ]] ) : void
public set ( string $members [, int $version = -1 [, array &$stat = NULL ]] ) : void
}

Содержание

  • ZookeeperConfig::add — Add servers to the ensemble
  • ZookeeperConfig::get — Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
  • ZookeeperConfig::remove — Remove servers from the ensemble
  • ZookeeperConfig::set — Change ZK cluster ensemble membership and roles of ensemble peers


Add servers to the ensemble

  • « ZookeeperConfig
  • ZookeeperConfig::get »
  • PHP Manual
  • ZookeeperConfig
  • Add servers to the ensemble

ZookeeperConfig::add

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::add — Add servers to the ensemble

Описание

public ZookeeperConfig::add ( string $members [, int $version = -1 [, array &$stat = NULL ]] ) : void

Список параметров

members

Comma separated list of servers to be added to the ensemble. Each has a configuration line for a server to be added (as would appear in a configuration file), only for maj. quorums.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

stat

If not NULL, will hold the value of stat for the path on return.

Ошибки

This method emits ZookeeperException and it's derivatives when parameters count or types are wrong or fail to save value to node.

Примеры

Пример #1 ZookeeperConfig::add() example

Add members.

<?php
$client = new Zookeeper();
$client->connect('localhost:2181');
$client->addAuth('digest', 'timandes:timandes');
$zkConfig = $client->getConfig();
$zkConfig->set("server.1=localhost:2888:3888:participant;0.0.0.0:2181");
$zkConfig->add("server.2=localhost:2889:3889:participant;0.0.0.0:2182");
$r = $zkConfig->get();
if ($r)
  echo $r;
else
  echo 'ERR';
?>

Результат выполнения данного примера:

server.1=localhost:2888:3888:participant;0.0.0.0:2181
server.2=localhost:2889:3889:participant;0.0.0.0:2182
version=0xca01e881a2

Смотрите также

  • ZookeeperConfig::get() - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
  • ZookeeperConfig::set() - Change ZK cluster ensemble membership and roles of ensemble peers
  • ZookeeperConfig::remove() - Remove servers from the ensemble
  • ZookeeperException


Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously

  • « ZookeeperConfig::add
  • ZookeeperConfig::remove »
  • PHP Manual
  • ZookeeperConfig
  • Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously

ZookeeperConfig::get

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::get — Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously

Описание

public ZookeeperConfig::get ([ callable $watcher_cb = NULL [, array &$stat = NULL ]] ) : string

Список параметров

watcher_cb

If nonzero, a watch will be set at the server to notify the client if the node changes.

stat

If not NULL, will hold the value of stat for the path on return.

Возвращаемые значения

Returns the configuration string on success, and false on failure.

Ошибки

This method emits ZookeeperException and it's derivatives when parameters count or types are wrong or fail to get configuration.

Примеры

Пример #1 ZookeeperConfig::get() example

Get configuration.

<?php
$zk = new Zookeeper();
$zk->connect('localhost:2181');
$zk->addAuth('digest', 'timandes:timandes');
$zkConfig = $zk->getConfig();
$r = $zkConfig->get();
if ($r)
  echo $r;
else
  echo 'ERR';
?>

Результат выполнения данного примера:

server.1=localhost:2888:3888:participant;0.0.0.0:2181
version=0xca01e881a2

Смотрите также

  • ZookeeperConfig::set() - Change ZK cluster ensemble membership and roles of ensemble peers
  • ZookeeperConfig::add() - Add servers to the ensemble
  • ZookeeperConfig::remove() - Remove servers from the ensemble
  • ZookeeperException


Remove servers from the ensemble

  • « ZookeeperConfig::get
  • ZookeeperConfig::set »
  • PHP Manual
  • ZookeeperConfig
  • Remove servers from the ensemble

ZookeeperConfig::remove

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::remove — Remove servers from the ensemble

Описание

public ZookeeperConfig::remove ( string $id_list [, int $version = -1 [, array &$stat = NULL ]] ) : void

Список параметров

id_list

Comma separated list of server IDs to be removed from the ensemble. Each has an id of a server to be removed, only for maj. quorums.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

stat

If not NULL, will hold the value of stat for the path on return.

Ошибки

This method emits ZookeeperException and it's derivatives when parameters count or types are wrong or fail to save value to node.

Примеры

Пример #1 ZookeeperConfig::remove() example

Remove members.

<?php
$client = new Zookeeper();
$client->connect('localhost:2181');
$client->addAuth('digest', 'timandes:timandes');
$zkConfig = $client->getConfig();
$zkConfig->set("server.1=localhost:2888:3888:participant;0.0.0.0:2181,server.2=localhost:2889:3889:participant;0.0.0.0:2182");
$zkConfig->remove("2");
echo $zkConfig->get();
if ($r)
  echo $r;
else
  echo 'ERR';
?>

Результат выполнения данного примера:

server.1=localhost:2888:3888:participant;0.0.0.0:2181
version=0xca01e881a2

Смотрите также

  • ZookeeperConfig::get() - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
  • ZookeeperConfig::add() - Add servers to the ensemble
  • ZookeeperConfig::set() - Change ZK cluster ensemble membership and roles of ensemble peers
  • ZookeeperException


Change ZK cluster ensemble membership and roles of ensemble peers

  • « ZookeeperConfig::remove
  • ZookeeperException »
  • PHP Manual
  • ZookeeperConfig
  • Change ZK cluster ensemble membership and roles of ensemble peers

ZookeeperConfig::set

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::set — Change ZK cluster ensemble membership and roles of ensemble peers

Описание

public ZookeeperConfig::set ( string $members [, int $version = -1 [, array &$stat = NULL ]] ) : void

Список параметров

members

Comma separated list of new membership (e.g., contents of a membership configuration file) - for use only with a non-incremental reconfiguration.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

stat

If not NULL, will hold the value of stat for the path on return.

Ошибки

This method emits ZookeeperException and it's derivatives when parameters count or types are wrong or fail to save value to node.

Примеры

Пример #1 ZookeeperConfig::set() example

Reconfig.

<?php
$client = new Zookeeper();
$client->connect('localhost:2181');
$client->addAuth('digest', 'timandes:timandes');
$zkConfig = $client->getConfig();
$zkConfig->set("server.1=localhost:2888:3888:participant;0.0.0.0:2181");
?>

Смотрите также

  • ZookeeperConfig::get() - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
  • ZookeeperConfig::add() - Add servers to the ensemble
  • ZookeeperConfig::remove() - Remove servers from the ensemble
  • ZookeeperException


Класс ZookeeperException

(PECL zookeeper >= 0.3.0)

Введение

Класс исключений ZooKeeper.

Обзор классов

ZookeeperException extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс ZookeeperAuthenticationException

(PECL zookeeper >= 0.3.0)

Введение

Класс обработки исключений аутентификации ZooKeeper.

Обзор классов

ZookeeperAuthenticationException extends ZookeeperException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс ZookeeperConnectionException

(PECL zookeeper >= 0.3.0)

Введение

Класс обработки исключений соединения ZooKeeper.

Обзор классов

ZookeeperConnectionException extends ZookeeperException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс ZookeeperMarshallingException

(PECL zookeeper >= 0.3.0)

Введение

Класс обработки исключений ZooKeeper (во время процесса маршалинга/демаршалинга данных).

Обзор классов

ZookeeperMarshallingException extends ZookeeperException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс ZookeeperNoNodeException

(PECL zookeeper >= 0.3.0)

Введение

Класс обработки исключений ZooKeeper (в случае отсутствия узла).

Обзор классов

ZookeeperNoNodeException extends ZookeeperException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс ZookeeperOperationTimeoutException

(PECL zookeeper >= 0.3.0)

Введение

Класс обработки исключений превышения времени ожидания окончания операции.

Обзор классов

ZookeeperOperationTimeoutException extends ZookeeperException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Класс ZookeeperSessionException

(PECL zookeeper >= 0.3.0)

Введение

Класс обработки исключений сессии ZooKeeper.

Обзор классов

ZookeeperSessionException extends ZookeeperException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Расширения для работы с поисковыми системами

  • mnoGoSearch
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • mnoGoSearch Функции
  • Solr — Apache Solr
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Solr
    • Примеры
    • SolrUtils — The SolrUtils class
    • SolrInputDocument — The SolrInputDocument class
    • SolrDocument — The SolrDocument class
    • SolrDocumentField — The SolrDocumentField class
    • SolrObject — Класс SolrObject
    • SolrClient — The SolrClient class
    • SolrResponse — The SolrResponse class
    • SolrQueryResponse — The SolrQueryResponse class
    • SolrUpdateResponse — The SolrUpdateResponse class
    • SolrPingResponse — The SolrPingResponse class
    • SolrGenericResponse — The SolrGenericResponse class
    • SolrParams — Класс SolrParams
    • SolrModifiableParams — Класс SolrModifiableParams
    • SolrQuery — The SolrQuery class
    • SolrDisMaxQuery — The SolrDisMaxQuery class
    • SolrCollapseFunction — The SolrCollapseFunction class
    • SolrException — Класс SolrException
    • SolrClientException — The SolrClientException class
    • SolrServerException — The SolrServerException class
    • SolrIllegalArgumentException — The SolrIllegalArgumentException class
    • SolrIllegalOperationException — The SolrIllegalOperationException class
    • SolrMissingMandatoryParameterException — The SolrMissingMandatoryParameterException class
  • Sphinx — Клиент Sphinx
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • SphinxClient — Класс SphinxClient
  • Swish — Индексирование Swish
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции Swish


mnoGoSearch

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • mnoGoSearch Функции
    • udm_add_search_limit — Добавляет различные ограничения поиска
    • udm_alloc_agent_array — Запустить сессию mnoGoSearch с множеством соединений
    • udm_alloc_agent — Запустить сессию mnoGoSearch
    • udm_api_version — Получает версию mnoGoSearch API
    • udm_cat_list — Получить все категории того же уровня, что и заданная
    • udm_cat_path — Получить путь до указанной категории
    • udm_check_charset — Проверяет, известен ли данный набор символов mnogosearch
    • udm_clear_search_limits — Очищает все ограничения поиска mnoGoSearch
    • udm_crc32 — Возвращает контрольную сумму CRC32 данной строки
    • udm_errno — Получает номер ошибки mnoGoSearch
    • udm_error — Получает сообщение об ошибке mnoGoSearch
    • udm_find — Выполнить поиск
    • udm_free_agent — Освобождает сессию mnoGoSearch
    • udm_free_ispell_data — Освобождает память, выделенную для ispell-данных
    • udm_free_res — Освобождает память, выделенную для результатов mnoGoSearch
    • udm_get_doc_count — Получает общее количество документов в базе данных
    • udm_get_res_field — Извлечь поле из результата поиска
    • udm_get_res_param — Получить параметры результата mnoGoSearch
    • udm_hash32 — Возвращает контрольную сумму Hash32 данной строки
    • udm_load_ispell_data — Загружает ispell-данные
    • udm_set_agent_param — Установить параметры сессии mnoGoSearch


Введение

Функции позволяют получить доступ к свободной поисковой системе mnoGoSearch (бывшая UdmSearch). mnoGoSearch - это полнофункциональная поисковая машина для intranet и internet-серверов, распространяемая по лицензии GNU. mnoGoSearch имеет уникальные возможности, делающие её пригодной для использования в широком круге приложений - от поиска на вашем сайте до специализированной поисковой системы: для поиска кулинарных рецептов или поиска по газетам, поиска по FTP-архивам, поиска новостей и т.д. Она предлагает полнотекстовое индексирование и поиск в HTML, PDF и текстовых документах. mnoGoSearch состоит из двух частей. Первая - это механизм индексирования (индексатор). Цель индексатора - проходить по HTTP, FTP, NEWS-серверам или локальным файлам, рекурсивно выбирая все документы и сохраняя метаданные об этих документах в БД SQL умным и эффективным способом. После того, как каждый документ снабжен соответствующим ему URL, мета-данные, собранные индексатором, в дальнейшем используются в процессе поиска. Включены PHP и Perl-интерфейсы для поиска.

Более подробную информацию о mnoGoSearch можно найти по адресу » http://www.mnogosearch.org/.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0.

Замечание: Для Windows-платформ это расширение недоступно.


Требования

mnoGosearch доступен для загрузки и установки по ссылке » http://www.mnogosearch.org/. Необходимо установить mnoGoSearch версии не ниже 3.1.10 для того, чтобы использовать эти функции.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/mnogosearch.

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Замечание:

PHP содержит встроенную библиотеку доступа к MySQL, которая может быть использована для доступа к базе данных MySQL. Известно, что mnoGoSearch не совместим с этой встроенной библиотекой, и может работать только с универсальными библиотеками доступа к MySQL. Таким образом, если вы используете mnoGoSearch вместе с MySQL, во время конфигурации PHP вам следует указать директорию установки MySQL, чтобы она была использована во время конфигурации mnoGoSearch, например: --with-mnogosearch --with-mysql=/usr .


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если 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)


mnoGoSearch Функции

Содержание

  • udm_add_search_limit — Добавляет различные ограничения поиска
  • udm_alloc_agent_array — Запустить сессию mnoGoSearch с множеством соединений
  • udm_alloc_agent — Запустить сессию mnoGoSearch
  • udm_api_version — Получает версию mnoGoSearch API
  • udm_cat_list — Получить все категории того же уровня, что и заданная
  • udm_cat_path — Получить путь до указанной категории
  • udm_check_charset — Проверяет, известен ли данный набор символов mnogosearch
  • udm_clear_search_limits — Очищает все ограничения поиска mnoGoSearch
  • udm_crc32 — Возвращает контрольную сумму CRC32 данной строки
  • udm_errno — Получает номер ошибки mnoGoSearch
  • udm_error — Получает сообщение об ошибке mnoGoSearch
  • udm_find — Выполнить поиск
  • udm_free_agent — Освобождает сессию mnoGoSearch
  • udm_free_ispell_data — Освобождает память, выделенную для ispell-данных
  • udm_free_res — Освобождает память, выделенную для результатов mnoGoSearch
  • udm_get_doc_count — Получает общее количество документов в базе данных
  • udm_get_res_field — Извлечь поле из результата поиска
  • udm_get_res_param — Получить параметры результата mnoGoSearch
  • udm_hash32 — Возвращает контрольную сумму Hash32 данной строки
  • udm_load_ispell_data — Загружает ispell-данные
  • udm_set_agent_param — Установить параметры сессии mnoGoSearch


Добавляет различные ограничения поиска

  • « mnoGoSearch Функции
  • udm_alloc_agent_array »
  • PHP Manual
  • mnoGoSearch Функции
  • Добавляет различные ограничения поиска

udm_add_search_limit

(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_add_search_limit — Добавляет различные ограничения поиска

Описание

udm_add_search_limit ( resource $agent , int $var , string $val ) : bool

udm_add_search_limit() добавляет ограничения поиска.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

var

Определяет параметр, обозначающий ограничения. Возможные значения var:

  • UDM_LIMIT_URL - определяет ограничения по URL документа для ограничения поиска подсекцией базы данных. Поддерживает спецсимволы SQL оператора LIKE % и _, где % означает любое количество символов, даже ноль, а _ означает точно один символ. Т.е. http://www.example.___/catalog совпадет и с http://www.example.com/catalog и с http://www.example.net/catalog.
  • UDM_LIMIT_TAG - задает ограничения по тегу сайта. В indexer-conf вы можете задать специфичные теги различным сайтам и частям сайтов. В mnoGoSearch 3.1.x теги являются строками, которые могут содержать метасимволы % и _. Метасимволы позволяют искать по группам тегов. Т.е. если в базе есть теги ABCD и ABCE, то, при использовании ограничения ABC_, поиск будет производиться по записям с этими тегами.
  • UDM_LIMIT_LANG - определяет ограничения языка документа.
  • UDM_LIMIT_CAT - задает ограничения для категории документа. Категории похожи на теги, но могут вкладываться друг в друга. Вы должны использовать два символа для каждого уровня. Используйте шестнадцатеричное число (0-F) или 36-ричное (0-Z). Допустим у вас есть верхнеуровневая категория 'Auto', содержащая две подкатегории 'Ford' и 'Opel', а 'Opel' в свою очередь содержит подкатегорию 'Engine'. Нумерация категорий будет следующей: 'Auto'=01, 'Ford'=01, 'Opel'=02 (так как это вторая подкатегория 'Auto'), 'Engine' =>01. И если нам нужо производить поиск в категории 'Auto'(01)=>'Opel'(02)=>'Engine'(01), мы передадим в URL параметр cat=010201.

  • UDM_LIMIT_DATE - определяет ограничение по дате модификации документа.

    Формат значения параметра: строка с первым символом < или >, после чего, без пробела, дата в виде временной метки UNIX. К примеру:

    <?php
    udm_add_search_limit    ($udm, UDM_LIMIT_DATE, "&lt;908012006");
    ?>

    Если используется символ >, то поиск ограничен документами, имеющими дату модификации больше, чем введённая. Если <, то меньше.

val

Определяет значение текущего параметра.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Запустить сессию mnoGoSearch с множеством соединений

  • « udm_add_search_limit
  • udm_alloc_agent »
  • PHP Manual
  • mnoGoSearch Функции
  • Запустить сессию mnoGoSearch с множеством соединений

udm_alloc_agent_array

(PHP 4 >= 4.3.3, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_alloc_agent_array — Запустить сессию mnoGoSearch с множеством соединений

Описание

udm_alloc_agent_array ( array $databases ) : resource

udm_alloc_agent_array() создаст агента с множеством соединений с базами данных.

Список параметров

databases

Массив databases должен содержать по одному список URL баз данных. Смотрите udm_alloc_agent().

Возвращаемые значения

Возвращает идентификатор ресурса соединения или FALSE в случае возникновения ошибки.

Смотрите также

  • udm_alloc_agent() - Запустить сессию mnoGoSearch


Запустить сессию mnoGoSearch

  • « udm_alloc_agent_array
  • udm_api_version »
  • PHP Manual
  • mnoGoSearch Функции
  • Запустить сессию mnoGoSearch

udm_alloc_agent

(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_alloc_agent — Запустить сессию mnoGoSearch

Описание

udm_alloc_agent ( string $dbaddr [, string $dbmode ] ) : resource

Запускает сессию mnoGoSearch.

Список параметров

dbaddr

dbaddr - описание базы данных в URL-стиле, с опциями (тип, хост, имя БД, порт, пользователь и пароль) для соединения с базой данных. Формат dbaddr: DBType:[//[DBUser[:DBPass]@]DBHost[:DBPort]]/DBName/. На данный момент поддерживаются следующие значения DBType: mysql, pgsql, msql, solid, mssql, oracle и ibase. При использовании нативных библиотек можно не заморачиваться этими значениями, но если вы используете ODBC, то необходимо точно указать одно из поддерживаемых значений. Если ваша БД не поддерживается, то можете указать unknown.

dbmode

Параметр dbmode отвечает за режим хранения слов в вашей БД. Допустимые значения для dbmode такие: single, multi, crc, или crc-multi. Если указано single - это означает хранение всех слов в одной таблице, независимо от их размера. multi означает, что слова разной длины хранятся в разных таблицах. Режим "multi" обычно быстрее, но требует наличия большего количества таблиц. В режиме "crc", mnoGoSearch будет сохранять идентификаторы слов в виде 32-битного целого числа, посчитанного как CRC32, вместо слов. В этом режиме данные занимают меньше места на диске и в целом работа быстрее, чем в режимах "single" и "multi". Режим crc-multi использует ту же структуру хранения, что и "crc", но, также, хранит слова в разных таблицах в зависимости от их длины, как в режиме "multi".

Замечание:

Параметры dbaddr и dbmode должны соответствовать тем, которые использовались при индексировании.

Возвращаемые значения

Возвращает идентификатор агента mnogosearch или FALSE. Эта функция создает сессию с параметрами базы данных.

Примечания

Замечание:

Фактически эта функция не открывает соединение с базой данных и не проверяет введенные логин и пароль. Соединение и проверка логина с паролем происходят при использовании udm_find().


Получает версию mnoGoSearch API

  • « udm_alloc_agent
  • udm_cat_list »
  • PHP Manual
  • mnoGoSearch Функции
  • Получает версию mnoGoSearch API

udm_api_version

(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_api_version — Получает версию mnoGoSearch API

Описание

udm_api_version ( void ) : int

Получает версию mnoGoSearch API.

Эта функция позволяет пользователю узнать, какие функции API доступны, например, функция udm_get_doc_count() доступна только в mnoGoSearch 3.1.11 или выше.

Возвращаемые значения

udm_api_version() возвращает номер версии mnoGoSearch API. Например, если используется mnoGoSearch 3.1.10 API, эта функция вернет 30110.

Примеры

Пример #1 Пример использования udm_api_version()

<?php
if (udm_api_version() >= 30111) {
    echo  "Общее количество URL-адресов в базе данных: " . udm_get_doc_count($udm) . "<br />\n";
}
?>


Получить все категории того же уровня, что и заданная

  • « udm_api_version
  • udm_cat_path »
  • PHP Manual
  • mnoGoSearch Функции
  • Получить все категории того же уровня, что и заданная

udm_cat_list

(PHP 4 >= 4.0.6, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_cat_list — Получить все категории того же уровня, что и заданная

Описание

udm_cat_list ( resource $agent , string $category ) : array

Возвращает все категории того же уровня, что и заданная.

Эта функция полезна, например, для построения дерева категорий в браузере.

Список параметров

agent

Идентификатор ресурса агента, полученный из udm_alloc_agent().

category

Возвращаемые значения

Возвращает массив со списком всех категорий того же уровня, что и заданная category.

Массив состоит из пар. Элементы с нечетными индексами содержат пути к категориям, а элементы с четными индексами их имена.

$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.

Примеры

В данном примере выводится список ссылок на категории в формате:

Audi
  BMW
  Opel
  ...

Пример #1 Пример использования udm_cat_list()

<?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 />";
 }
?>

Смотрите также

  • udm_cat_path() - Получить путь до указанной категории


Получить путь до указанной категории

  • « udm_cat_list
  • udm_check_charset »
  • PHP Manual
  • mnoGoSearch Функции
  • Получить путь до указанной категории

udm_cat_path

(PHP 4 >= 4.0.6, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_cat_path — Получить путь до указанной категории

Описание

udm_cat_path ( resource $agent , string $category ) : array

Возвращает массив, описывающий путь в дереве категорий из корня дерева до категории, заданной параметром category.

Список параметров

agent

Идентификатор ресурса агента, полученный из udm_alloc_agent().

category

Возвращаемые значения

Массив состоит из пар. Элементы с нечетными индексами содержат пути к категориям, а элементы с четными индексами их имена.

К примеру, вызов $array=udm_cat_path($agent, '02031D'); может вернуть следующий массив:

 $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 Выведем путь до категории в следующем формате: '> 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> ";
  }
?>

Смотрите также

  • udm_cat_list() - Получить все категории того же уровня, что и заданная


Проверяет, известен ли данный набор символов mnogosearch

  • « udm_cat_path
  • udm_clear_search_limits »
  • PHP Manual
  • mnoGoSearch Функции
  • Проверяет, известен ли данный набор символов mnogosearch

udm_check_charset

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_check_charset — Проверяет, известен ли данный набор символов mnogosearch

Описание

udm_check_charset ( resource $agent , string $charset ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Очищает все ограничения поиска mnoGoSearch

  • « udm_check_charset
  • udm_crc32 »
  • PHP Manual
  • mnoGoSearch Функции
  • Очищает все ограничения поиска mnoGoSearch

udm_clear_search_limits

(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_clear_search_limits — Очищает все ограничения поиска mnoGoSearch

Описание

udm_clear_search_limits ( resource $agent ) : bool

udm_clear_search_limits() сбрасывает определенные ограничения поиска.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

Возвращаемые значения

Возвращает TRUE.

Смотрите также

  • udm_add_search_limit() - Добавляет различные ограничения поиска


Возвращает контрольную сумму CRC32 данной строки

  • « udm_clear_search_limits
  • udm_errno »
  • PHP Manual
  • mnoGoSearch Функции
  • Возвращает контрольную сумму CRC32 данной строки

udm_crc32

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_crc32 — Возвращает контрольную сумму CRC32 данной строки

Описание

udm_crc32 ( resource $agent , string $str ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получает номер ошибки mnoGoSearch

  • « udm_crc32
  • udm_error »
  • PHP Manual
  • mnoGoSearch Функции
  • Получает номер ошибки mnoGoSearch

udm_errno

(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_errno — Получает номер ошибки mnoGoSearch

Описание

udm_errno ( resource $agent ) : int

Получает числовой код ошибки агента.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

Возвращаемые значения

Возвращает номер ошибки mnoGoSearch, либо нуль, если ошибки нет.


Получает сообщение об ошибке mnoGoSearch

  • « udm_errno
  • udm_find »
  • PHP Manual
  • mnoGoSearch Функции
  • Получает сообщение об ошибке mnoGoSearch

udm_error

(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_error — Получает сообщение об ошибке mnoGoSearch

Описание

udm_error ( resource $agent ) : string

Получает сообщение агента об ошибке.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

Возвращаемые значения

udm_error() возвращает сообщение об ошибке mnoGoSearch, либо пустую строку, если нет ошибок.


Выполнить поиск

  • « udm_error
  • udm_free_agent »
  • PHP Manual
  • mnoGoSearch Функции
  • Выполнить поиск

udm_find

(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_find — Выполнить поиск

Описание

udm_find ( resource $agent , string $query ) : resource

Выполнить поиск.

Собственно поиск. Первый аргумент - сессия. Второй - поисковый запрос. Для поиска просто введите нужные слова и нажмите кнопку "SUBMIT". К примеру "mysql odbc". В запросе не надо использовать кавычки, тут они только для выделения запроса в остальном тексте. mnoGoSearch найдет все документы, содержащие слово "mysql" и/или слово "odbc". Наиболее релевантные документы будут иметь больший вес и будут показаны первыми. Если используется режим поиска ALL (ВСЁ), то будут возвращены документы содержащие все введенные слова. Если используется режим ANY (ЛЮБОЙ), то будут возвращены документы, содержащие хотя бы одно из заданных слов. Для более тонкой настройки поиска можно использовать специальный язык запросов. Тогда в форме поиска надо выбрать режим "bool".

Список параметров

agent

Идентификатор ресурса агента, полученный из udm_alloc_agent().

query

mnoGoSearch понимает следующие логические выражения:

& - логическое И. Например для "mysql & odbc" mnoGoSearch найдет все URL, содержащие оба слова "mysql" и "odbc".

| - логическое ИЛИ. Например для "mysql|odbc" mnoGoSearch найдет все URL, содержащие одно из слов "mysql" или "odbc", или оба сразу.

~ - логическое НЕТ. Например для "mysql & ~odbc" mnoGoSearch найдет все URL, содержащие слово "mysql" и не содержащие слово "odbc". Обратите внимание, что ~ просто исключает заданное слово из результатов. Запрос "~odbc" не найдет ничего!

() - команда группировки для создания сложных запросов. Например "(mysql | msql) & ~postgres" означает, что надо найти все URL, содержащих mysql или mssql, но ни в коем случае не postgres.

Возвращаемые значения

Возвращает идентификатор результата поиска или FALSE в случае возникновения ошибки.


Освобождает сессию mnoGoSearch

  • « udm_find
  • udm_free_ispell_data »
  • PHP Manual
  • mnoGoSearch Функции
  • Освобождает сессию mnoGoSearch

udm_free_agent

(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_free_agent — Освобождает сессию mnoGoSearch

Описание

udm_free_agent ( resource $agent ) : int

Освобождение памяти, выделенной для сессии агента.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Освобождает память, выделенную для ispell-данных

  • « udm_free_agent
  • udm_free_res »
  • PHP Manual
  • mnoGoSearch Функции
  • Освобождает память, выделенную для ispell-данных

udm_free_ispell_data

(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_free_ispell_data — Освобождает память, выделенную для ispell-данных

Описание

udm_free_ispell_data ( int $agent ) : bool

Освобождает память, выделенную для ispell-данных.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

Возвращаемые значения

udm_free_ispell_data() всегда возвращает TRUE.

Примечания

Замечание:

Эта функция поддерживается, начиная с mnoGoSearch версии 3.1.12, и ничего не делает в предыдущих версиях.


Освобождает память, выделенную для результатов mnoGoSearch

  • « udm_free_ispell_data
  • udm_get_doc_count »
  • PHP Manual
  • mnoGoSearch Функции
  • Освобождает память, выделенную для результатов mnoGoSearch

udm_free_res

(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_free_res — Освобождает память, выделенную для результатов mnoGoSearch

Описание

udm_free_res ( resource $res ) : bool

Освобождает память, выделенную для результатов.

Список параметров

res

Ссылка на идентификатор результата, полученная после вызова udm_find().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Получает общее количество документов в базе данных

  • « udm_free_res
  • udm_get_res_field »
  • PHP Manual
  • mnoGoSearch Функции
  • Получает общее количество документов в базе данных

udm_get_doc_count

(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_get_doc_count — Получает общее количество документов в базе данных

Описание

udm_get_doc_count ( resource $agent ) : int

udm_get_doc_count() возвращает количество документов в базе данных.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

Возвращаемые значения

Возвращает количество документов.

Примечания

Замечание:

Эта функция поддерживается только в mnoGoSearch 3.1.11 или выше.


Извлечь поле из результата поиска

  • « udm_get_doc_count
  • udm_get_res_param »
  • PHP Manual
  • mnoGoSearch Функции
  • Извлечь поле из результата поиска

udm_get_res_field

(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_get_res_field — Извлечь поле из результата поиска

Описание

udm_get_res_field ( resource $res , int $row , int $field ) : string

Извлечь поле из результата поиска.

Список параметров

res

res - идентификатор ресурса результата поиска, полученный из udm_find().

row

row - номер ссылки на текущей странице. Может принимать значения от 0 до UDM_PARAM_NUM_ROWS-1.

field

field - идентификатор поля, может принимать следующие значения:

  • UDM_FIELD_URL - поле URL документа
  • UDM_FIELD_CONTENT - поле Content-type документа (например text/html).
  • UDM_FIELD_CATEGORY - поле категории документа. Для получения полного пути до категории используйте udm_cat_path().
  • UDM_FIELD_TITLE - поле заголовка документа.
  • UDM_FIELD_KEYWORDS - поле ключевых слов документа (из тега META KEYWORDS).
  • UDM_FIELD_DESC - поле описание документа (из тега META DESCRIPTION).
  • UDM_FIELD_TEXT - текст тела документа (несколько первых строк, для понимания того, о чем в нем речь).
  • UDM_FIELD_SIZE - размер документа.
  • UDM_FIELD_URLID - уникальный идентификатор URL.
  • UDM_FIELD_RATING - рейтинг страницы (расчитаный mnoGoSearch).
  • UDM_FIELD_MODIFIED - последняя модификация в виде временного штампа UNIX.
  • UDM_FIELD_ORDER - номер текущего документа в наборе найденых документов.
  • UDM_FIELD_CRC - CRC документа.

Возвращаемые значения

udm_get_res_field() возвращает значение запрошенного поля, либо FALSE.


Получить параметры результата mnoGoSearch

  • « udm_get_res_field
  • udm_hash32 »
  • PHP Manual
  • mnoGoSearch Функции
  • Получить параметры результата mnoGoSearch

udm_get_res_param

(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_get_res_param — Получить параметры результата mnoGoSearch

Описание

udm_get_res_param ( resource $res , int $param ) : string

Возвращает параметры результата mnoGoSearch.

Список параметров

res

res - идентификатор ресурса результата поиска, полученный из udm_find().

param

param - идентификатор параметра, может принимать следующие значения:

  • UDM_PARAM_NUM_ROWS - количество найденных ссылок на текущей странице. Для всех страниц, кроме последней, равно UDM_PARAM_PAGE_SIZE.
  • UDM_PARAM_FOUND - общее количество результатов соответствующих запросу.
  • UDM_PARAM_WORDINFO - информация по найденым словам. например поиск "a good book" вернет "a: stopword, good:5637, book: 120"
  • UDM_PARAM_SEARCHTIME - время поиска в секундах.
  • UDM_PARAM_FIRST_DOC - номер первого документа, отображенного на текущей странице.
  • UDM_PARAM_LAST_DOC - номер последнего документа, отображенного на текущей странице.

Возвращаемые значения

udm_get_res_param() вернет значение запрошенного параметра, или FALSE.


Возвращает контрольную сумму Hash32 данной строки

  • « udm_get_res_param
  • udm_load_ispell_data »
  • PHP Manual
  • mnoGoSearch Функции
  • Возвращает контрольную сумму Hash32 данной строки

udm_hash32

(PHP 4 >= 4.3.3, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_hash32 — Возвращает контрольную сумму Hash32 данной строки

Описание

udm_hash32 ( resource $agent , string $str ) : int

udm_hash32() принимает строку str и возвращает практически уникальную 32-битную хэш-сумму этой строки.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

str

Входная строка.

Возвращаемые значения

Возвращает 32-битную хэш-сумму.

Смотрите также

  • udm_alloc_agent() - Запустить сессию mnoGoSearch


Загружает ispell-данные

  • « udm_hash32
  • udm_set_agent_param »
  • PHP Manual
  • mnoGoSearch Функции
  • Загружает ispell-данные

udm_load_ispell_data

(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_load_ispell_data — Загружает ispell-данные

Описание

udm_load_ispell_data ( resource $agent , int $var , string $val1 , string $val2 , int $flag ) : bool

udm_load_ispell_data() загружает ispell-данные.

После использования этой функции, для того, чтобы освободить память, выделенную для ispell-данных, пожалуйста, используйте функцию udm_free_ispell_data(), даже если вы используете режим UDM_ISPELL_TYPE_SERVER.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

var

Указывает источник ispell-данных. Может принимать следующие значения:

  • UDM_ISPELL_TYPE_DB - указывает, что ispell-данные должны быть загружены из SQL. В этом случае параметры val1 и val2 игнорируются и должны быть пустыми. flag должен быть равен 1.

    Замечание:

    flag указывает, что после загрузки ispell-данных из определённого ресурса они должны быть отсортированы (это необходимо для корректной работы ispell). В случае загрузки ispell-данных из файлов может быть несколько вызовов функции udm_load_ispell_data(), так что нет смысла сортировать данные после каждого вызова, кроме последнего. Поскольку в режиме db все данные загружаются одним вызовом, этот параметр должен иметь значение 1. В этом режиме, в случае ошибки, например, если ispell-таблицы отсутствуют, функция возвратит FALSE, а код и сообщение об ошибке будут доступны через udm_error() и udm_errno().

  • UDM_ISPELL_TYPE_AFFIX - указывает, что ispell-данные должны быть загружены из файла, и инициирует загрузку файла аффиксов. В этом случае val1 определяет двухбуквенный код языка, для которого загружаются аффиксы, а val2 - путь к файлу. Пожалуйста, обратите внимание, что, если введён относительный путь, модуль ищет файл не в UDM_CONF_DIR, а относительно текущего пути, т.е. пути, в котором выполняется скрипт. В случае ошибки в этом режиме, например, если файл отсутствует, функция возвратит FALSE, и будет выведено сообщение об ошибке. Текст сообщения об ошибке не может быть получен через udm_error() и udm_errno(), так как эти функции могут возвращать только сообщения, связанные с SQL. Пожалуйста, посмотрите описание параметра flag в UDM_ISPELL_TYPE_DB.

    Пример #1 Пример использования udm_load_ispell_data()

    <?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 равен 1 только в последнем вызове.

  • UDM_ISPELL_TYPE_SPELL - указывает, что ispell-данные должны быть загружены из файла, и инициирует загрузку файла ispell-словаря. В этом случае val1 определяет двухбуквенный код языка, для которого загружаются аффиксы, а val2 - путь к файлу. Пожалуйста, обратите внимание, что, если введён относительный путь, модуль ищет файл не в UDM_CONF_DIR, а относительно текущего пути, т.е. пути, в котором выполняется скрипт. В случае ошибки в этом режиме, например, если файл отсутствует, функция возвратит FALSE, и будет выведено сообщение об ошибке. Текст сообщения об ошибке не может быть получен через udm_error() и udm_errno(), так как эти функции могут возвращать только сообщения, связанные с SQL. Пожалуйста, посмотрите описание параметра flag в 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 равен 1 только в последнем вызове.

  • UDM_ISPELL_TYPE_SERVER - включает поддержку spell-сервера. Параметр val1 указывает адрес хоста запущенного spell-сервера. val2 еще не используется, но в будущих версиях он будет указывать номер порта, используемого spell-сервером. Параметр flag в этом случае не нужен, так как ispell-данные хранятся на spell-сервере уже отсортированными.

    Spelld-сервер читает spell-данные из отдельного файла конфигурации (по умолчанию /usr/local/mnogosearch/etc/spelld.conf), сортирует их и сохраняет в памяти. С клиентами сервер взаимодействует с помощью двунаправленного общения: все данные передаются в индексатор (так что индексатор стартует быстрее), из search.cgi сервер получает слово для нормализации и затем передаёт клиенту (search.cgi) список нормализованных словоформ. Это обеспечивает самую быструю, по сравнению с режимами db и text обработку поисковых запросов (миную загрузку и сортировку всех spell-данных).

    Функция udm_load_ispell_data() в режиме UDM_ISPELL_TYPE_SERVER на самом деле не загружает ispell-данные, а только определяет адрес сервера. Фактически, сервер автоматически используется функцией udm_find() при выполнении поиска. В случае ошибок, например, если spell-сервер не запущен или указан неправильный хост, возвращаемых сообщений нет и конвертация ispell не работает.

    Замечание:

    Эта функция доступна в mnoGoSearch 3.1.12 или выше.

    Пример:
    <?php
    if (!udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SERVER, '', '', 1)) {
        echo     "Ошибка при загрузке ispell-данных с сервера<br />\n";
        exit;
    }
    ?>

Самым быстрым режимом является UDM_ISPELL_TYPE_SERVER. UDM_ISPELL_TYPE_TEXT медленнее а UDM_ISPELL_TYPE_DB самый медленный. Вышесказанное верно для mnoGoSearch 3.1.10 - 3.1.11. Планируется ускорить режим DB в будущих версиях, и он будет быстрее режима TEXT.

val1

val2

flag

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #2 Пример использования udm_load_ispell_data()

<?php
if (! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_DB, '', '', 1)) {
  printf("Ошибка #%d: '%s'\n", udm_errno($udm), udm_error($udm));
  exit;
}
?>


Установить параметры сессии mnoGoSearch

  • « udm_load_ispell_data
  • Solr »
  • PHP Manual
  • mnoGoSearch Функции
  • Установить параметры сессии mnoGoSearch

udm_set_agent_param

(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)

udm_set_agent_param — Установить параметры сессии mnoGoSearch

Описание

udm_set_agent_param ( resource $agent , int $var , string $val ) : bool

Устанавливает параметры сессии mnoGoSearch.

Список параметров

agent

Идентификатор ресурса агента, полученный из udm_alloc_agent().

var

Доступные параметры и их значения:

  • UDM_PARAM_PAGE_NUM - используется для выбора номера страницы в результатах поиска (результат возвращается начиная с индекса 0 с UDM_PARAM_PAGE_SIZE результатами на страницу).
  • UDM_PARAM_PAGE_SIZE - количество результатов на одной странице.
  • UDM_PARAM_SEARCH_MODE - режим поиска. Допустимы такие значения: UDM_MODE_ALL - поиск всех слов; UDM_MODE_ANY - поиск любого слова; UDM_MODE_PHRASE - поиск фразы; UDM_MODE_BOOL - поиск по логическому выражению. Более подробно читайте в описани udm_find().
  • UDM_PARAM_CACHE_MODE - включает или отключает кеширование результатов поиска. Если включено, то поисковая машина будет сохранять результаты поиска на диск и, если поступит аналогичный запрос, то будет возвращен кешированный результат. Допустимые значения: UDM_CACHE_ENABLED, UDM_CACHE_DISABLED.
  • UDM_PARAM_TRACK_MODE - включает или выключает поддержку trackquery. С версии 3.1.2 mnoGoSearch имеет поддержку отслеживания запроса. Обратите внимание, что отслеживание реализовано только в версии для SQL, но не для встроенной базы данных. Для использования отслеживания вам понадобится создать дополнительные таблицы. Для MySQL используйте create/mysql/track.txt. Во время поиска фронтенд будет использовать эти таблицы для хранения слов запроса, количество найденых документов и текущий временную метку Unix. Допустимые значения: UDM_TRACK_ENABLED, UDM_TRACK_DISABLED.
  • UDM_PARAM_PHRASE_MODE - определяет, использовать ли фразы для индексирования (параметр "phrase" в indexer.conf). Допустимые значения: UDM_PHRASE_ENABLED и UDM_PHRASE_DISABLED. Обратите внимание, что если разрешен поиск по фразам (UDM_PHRASE_ENABLED), то поиск в любом режиме остается доступен (ANY, ALL, BOOL или PHRASE). В версии 3.1.10 поиск по фразам доступен только для SQL и встроенной базы данных. Начиная с версии 3.1.11 фразы доступны и в режиме кеширования. Пример поиска фраз: "Arizona desert" - этот запрос вернет все документы, содержащие "Arizona desert" в виде точной фразы. Обратите внимание, что фразу нужно обрамить двойными кавычками.
  • UDM_PARAM_CHARSET - определяет локальную кодировку. Допустимые значения: набор кодировок, поддерживаемых mnoGoSearch, например koi8-r, cp1251, ...
  • UDM_PARAM_STOPFILE - определяет путь до файла со стоп-словами. (Есть небольшой нюанс. В mnoGoSearch, если задан относительный путь, или путь вообще не задан, то поиск файла будет идти от UDM_CONF_DIR, но в модуле будет использован путь относительно текущей директории, т.е. той, где запущен скрипт PHP.)
  • UDM_PARAM_STOPTABLE - Загружать стоп-слова из заданной таблицы в БД. Вы можете использовать несколько команд StopwordTable. Эта команда не будет работать, если mnoGoSearch собран без поддержки SQL.
  • UDM_PARAM_WEIGHT_FACTOR - представляет весовые факторы для определенных частей документа. Сейчас поддерживаются такие части: body, title, keywords, description, url. Для активации этого функционала используйте степени числа 2 в командах *Weight файла indexer.conf. Представим, что у нас есть такие веса:
              URLWeight     1
          BodyWeight    2
          TitleWeight   4
          KeywordWeight 8
          DescWeight    16
    Так как индексатор использует побитовое ИЛИ для развесовки когда слово присутствует в разных частях документа, то становится возможным отследить наличие этого слова в разных частях документа. Слово, присутствующее только в теле будет иметь вес 00000010, слово, присутствующее во всех частях документа - 00011111. Значение этого параметра является строкой шестнадцатеричных цифр ABCDE. Каждая цифра - фактор для соответствующего бита в весах слов. Для заданной выше конфигурации весов:
              E фактор для веса 1  (URLWeight bit)
          D фактор для веса 2  (BodyWeight bit)
          C фактор для веса 4  (TitleWeight bit)
          B фактор для веса 8  (KeywordWeight bit)
          A фактор для веса 16 (DescWeight bit)
    Примеры: UDM_PARAM_WEIGHT_FACTOR=00001 будет искать только в URL. UDM_PARAM_WEIGHT_FACTOR=00100 будет искать только в Titles. UDM_PARAM_WEIGHT_FACTOR=11100 будет искать в Title, Keywords и Description, но не в URL и Body. UDM_PARAM_WEIGHT_FACTOR=F9421 будет искать:
              Description с фактором 15  (F hex)
          Keywords с фактором 9
          Title с фактором  4
          Body с фактором 2
          URL с фактором 1
    Если переменная UDM_PARAM_WEIGHT_FACTOR опущена, то будут взяты оригинальные веса. Для примера выше это значит, что наибольший вес будет у description с весом 16.
  • UDM_PARAM_WORD_MATCH - совпадение слов. Вы можете использовать этот параметр для выбора типа сравнения слов. Этот функционал работает только для режимов "single" и "multi" при использовании SQL и встроенной баз данных. Не работает в режиме кеширования и прочих режимах, так как в них используются контрольные суммы слов и не работает поиск по подстроке. Допустимые значения: UDM_MATCH_BEGIN - сравнение слов по их началу; UDM_MATCH_END - сравнение слов по их окончанию; UDM_MATCH_WORD - полное совпадение; UDM_MATCH_SUBSTR - сравнение как с подстрокой.
  • UDM_PARAM_MIN_WORD_LEN - задает минимальную длину слов. Любое слово, короче заданного размера, будет считаться стоп-словом. Обратите внимание, что стоп-словами будут считаться слова строго меньше заданного значения. Например при UDM_PARAM_MIN_WORD_LEN=3, слова из трех букв не будут считаться стоп-словами. Значение по умолчанию 1.
  • UDM_PARAM_ISPELL_PREFIXES - Допустимые значения: UDM_PREFIXES_ENABLED и UDM_PREFIXES_DISABLED, что, соответственно, разрешает или запрещает использование префиксов. Т.е. если в поисковом запросе присутствует слово "tested", то также будут найдены "test", "testing" и т.д. По умолчанию поддерживаются только суффиксы. Префиксы же обычно меняют значение слов. К примеру если кто-то ищет слово "tested" и, при этом, очень хочет, чтобы также было найдено и "untested". Поддержка префиксов может быть полезна проверки орфографии. Для включения поддержки ispell вам придется загрузить его данные с помощью udm_load_ispell_data().
  • UDM_PARAM_CROSS_WORDS - включение или отключение поддержки функционала вставки слов. Допустимые значения: UDM_CROSS_WORDS_ENABLED и UDM_CROSS_WORDS_DISABLED. Данный функционал позволяет вставлять слова между <a href="xxx"> и </a> в ссылках на документ. Работает в режиме SQL, но не в режимах внутренней БД или кеширования.
  • UDM_PARAM_VARDIR - задает путь к директории, где индексатор будет хранить данные с использованием встроенной БД или в режиме кеширования. По умолчанию используется директория /var сервера установки mnoGoSearch.

val

Список изменений

Версия | Описание
4.1.0 | Добавлена константа UDM_PARAM_VARDIR.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Вставка слов поддерживается в mnoGoSearch 3.1.11 или выше.


Apache Solr

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Solr
    • solr_get_version — Возвращает текущую версию модуля Apache Solr
  • Примеры
  • SolrUtils — The SolrUtils class
    • SolrUtils::digestXmlResponse — Parses an response XML string into a SolrObject
    • SolrUtils::escapeQueryChars — Escapes a lucene query string
    • SolrUtils::getSolrVersion — Returns the current version of the Solr extension
    • SolrUtils::queryPhrase — Prepares a phrase from an unescaped lucene string
  • SolrInputDocument — The SolrInputDocument class
    • SolrInputDocument::addChildDocument — Adds a child document for block indexing
    • SolrInputDocument::addChildDocuments — Adds an array of child documents
    • SolrInputDocument::addField — Adds a field to the document
    • SolrInputDocument::clear — Resets the input document
    • SolrInputDocument::__clone — Creates a copy of a SolrDocument
    • SolrInputDocument::__construct — Constructor
    • SolrInputDocument::deleteField — Removes a field from the document
    • SolrInputDocument::__destruct — Destructor
    • SolrInputDocument::fieldExists — Checks if a field exists
    • SolrInputDocument::getBoost — Retrieves the current boost value for the document
    • SolrInputDocument::getChildDocuments — Returns an array of child documents (SolrInputDocument)
    • SolrInputDocument::getChildDocumentsCount — Returns the number of child documents
    • SolrInputDocument::getField — Retrieves a field by name
    • SolrInputDocument::getFieldBoost — Retrieves the boost value for a particular field
    • SolrInputDocument::getFieldCount — Returns the number of fields in the document
    • SolrInputDocument::getFieldNames — Returns an array containing all the fields in the document
    • SolrInputDocument::hasChildDocuments — Returns true if the document has any child documents
    • SolrInputDocument::merge — Merges one input document into another
    • SolrInputDocument::reset — This is an alias of SolrInputDocument::clear
    • SolrInputDocument::setBoost — Sets the boost value for this document
    • SolrInputDocument::setFieldBoost — Sets the index-time boost value for a field
    • SolrInputDocument::sort — Sorts the fields within the document
    • SolrInputDocument::toArray — Returns an array representation of the input document
  • SolrDocument — The SolrDocument class
    • SolrDocument::addField — Adds a field to the document
    • SolrDocument::clear — Drops all the fields in the document
    • SolrDocument::__clone — Creates a copy of a SolrDocument object
    • SolrDocument::__construct — Constructor
    • SolrDocument::current — Retrieves the current field
    • SolrDocument::deleteField — Removes a field from the document
    • SolrDocument::__destruct — Destructor
    • SolrDocument::fieldExists — Checks if a field exists in the document
    • SolrDocument::__get — Access the field as a property
    • SolrDocument::getChildDocuments — Returns an array of child documents (SolrDocument)
    • SolrDocument::getChildDocumentsCount — Returns the number of child documents
    • SolrDocument::getField — Retrieves a field by name
    • SolrDocument::getFieldCount — Returns the number of fields in this document
    • SolrDocument::getFieldNames — Returns an array of fields names in the document
    • SolrDocument::getInputDocument — Returns a SolrInputDocument equivalent of the object
    • SolrDocument::hasChildDocuments — Checks whether the document has any child documents
    • SolrDocument::__isset — Checks if a field exists
    • SolrDocument::key — Retrieves the current key
    • SolrDocument::merge — Merges source to the current SolrDocument
    • SolrDocument::next — Moves the internal pointer to the next field
    • SolrDocument::offsetExists — Checks if a particular field exists
    • SolrDocument::offsetGet — Retrieves a field
    • SolrDocument::offsetSet — Adds a field to the document
    • SolrDocument::offsetUnset — Removes a field
    • SolrDocument::reset — This is an alias to SolrDocument::clear()
    • SolrDocument::rewind — Resets the internal pointer to the beginning
    • SolrDocument::serialize — Used for custom serialization
    • SolrDocument::__set — Adds another field to the document
    • SolrDocument::sort — Sorts the fields in the document
    • SolrDocument::toArray — Returns an array representation of the document
    • SolrDocument::unserialize — Custom serialization of SolrDocument objects
    • SolrDocument::__unset — Removes a field from the document
    • SolrDocument::valid — Checks if the current position internally is still valid
  • SolrDocumentField — The SolrDocumentField class
    • SolrDocumentField::__construct — Конструктор
    • SolrDocumentField::__destruct — Деструктор
  • SolrObject — Класс SolrObject
    • SolrObject::__construct — Creates Solr object
    • SolrObject::__destruct — Destructor
    • SolrObject::getPropertyNames — Returns an array of all the names of the properties
    • SolrObject::offsetExists — Checks if the property exists
    • SolrObject::offsetGet — Used to retrieve a property
    • SolrObject::offsetSet — Sets the value for a property
    • SolrObject::offsetUnset — Unsets the value for the property
  • SolrClient — The SolrClient class
    • SolrClient::addDocument — Adds a document to the index
    • SolrClient::addDocuments — Adds a collection of SolrInputDocument instances to the index
    • SolrClient::commit — Finalizes all add/deletes made to the index
    • SolrClient::__construct — Constructor for the SolrClient object
    • SolrClient::deleteById — Delete by Id
    • SolrClient::deleteByIds — Deletes by Ids
    • SolrClient::deleteByQueries — Removes all documents matching any of the queries
    • SolrClient::deleteByQuery — Deletes all documents matching the given query
    • SolrClient::__destruct — Destructor for SolrClient
    • SolrClient::getById — Get Document By Id. Utilizes Solr Realtime Get (RTG)
    • SolrClient::getByIds — Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)
    • SolrClient::getDebug — Returns the debug data for the last connection attempt
    • SolrClient::getOptions — Returns the client options set internally
    • SolrClient::optimize — Defragments the index
    • SolrClient::ping — Checks if Solr server is still up
    • SolrClient::query — Sends a query to the server
    • SolrClient::request — Sends a raw update request
    • SolrClient::rollback — Rollbacks all add/deletes made to the index since the last commit
    • SolrClient::setResponseWriter — Sets the response writer used to prepare the response from Solr
    • SolrClient::setServlet — Changes the specified servlet type to a new value
    • SolrClient::system — Retrieve Solr Server information
    • SolrClient::threads — Checks the threads status
  • SolrResponse — The SolrResponse class
    • SolrResponse::getDigestedResponse — Returns the XML response as serialized PHP data
    • SolrResponse::getHttpStatus — Returns the HTTP status of the response
    • SolrResponse::getHttpStatusMessage — Returns more details on the HTTP status
    • SolrResponse::getRawRequest — Returns the raw request sent to the Solr server
    • SolrResponse::getRawRequestHeaders — Returns the raw request headers sent to the Solr server
    • SolrResponse::getRawResponse — Returns the raw response from the server
    • SolrResponse::getRawResponseHeaders — Returns the raw response headers from the server
    • SolrResponse::getRequestUrl — Returns the full URL the request was sent to
    • SolrResponse::getResponse — Returns a SolrObject representing the XML response from the server
    • SolrResponse::setParseMode — Sets the parse mode
    • SolrResponse::success — Was the request a success
  • SolrQueryResponse — The SolrQueryResponse class
    • SolrQueryResponse::__construct — Конструктор
    • SolrQueryResponse::__destruct — Деструктор
  • SolrUpdateResponse — The SolrUpdateResponse class
    • SolrUpdateResponse::__construct — Конструктор
    • SolrUpdateResponse::__destruct — Деструктор
  • SolrPingResponse — The SolrPingResponse class
    • SolrPingResponse::__construct — Constructor
    • SolrPingResponse::__destruct — Destructor
    • SolrPingResponse::getResponse — Returns the response from the server
  • SolrGenericResponse — The SolrGenericResponse class
    • SolrGenericResponse::__construct — Конструктор
    • SolrGenericResponse::__destruct — Деструктор
  • SolrParams — Класс SolrParams
    • SolrParams::add — This is an alias for SolrParams::addParam
    • SolrParams::addParam — Adds a parameter to the object
    • SolrParams::get — This is an alias for SolrParams::getParam
    • SolrParams::getParam — Returns a parameter value
    • SolrParams::getParams — Returns an array of non URL-encoded parameters
    • SolrParams::getPreparedParams — Returns an array of URL-encoded parameters
    • SolrParams::serialize — Used for custom serialization
    • SolrParams::set — An alias of SolrParams::setParam
    • SolrParams::setParam — Sets the parameter to the specified value
    • SolrParams::toString — Returns all the name-value pair parameters in the object
    • SolrParams::unserialize — Used for custom serialization
  • SolrModifiableParams — Класс SolrModifiableParams
    • SolrModifiableParams::__construct — Конструктор
    • SolrModifiableParams::__destruct — Деструктор
  • SolrQuery — The SolrQuery class
    • SolrQuery::addExpandFilterQuery — Overrides main filter query, determines which documents to include in the main group
    • SolrQuery::addExpandSortField — Orders the documents within the expanded groups (expand.sort parameter)
    • SolrQuery::addFacetDateField — Maps to facet.date
    • SolrQuery::addFacetDateOther — Adds another facet.date.other parameter
    • SolrQuery::addFacetField — Adds another field to the facet
    • SolrQuery::addFacetQuery — Adds a facet query
    • SolrQuery::addField — Specifies which fields to return in the result
    • SolrQuery::addFilterQuery — Specifies a filter query
    • SolrQuery::addGroupField — Add a field to be used to group results
    • SolrQuery::addGroupFunction — Allows grouping results based on the unique values of a function query (group.func parameter)
    • SolrQuery::addGroupQuery — Allows grouping of documents that match the given query
    • SolrQuery::addGroupSortField — Add a group sort field (group.sort parameter)
    • SolrQuery::addHighlightField — Maps to hl.fl
    • SolrQuery::addMltField — Sets a field to use for similarity
    • SolrQuery::addMltQueryField — Maps to mlt.qf
    • SolrQuery::addSortField — Used to control how the results should be sorted
    • SolrQuery::addStatsFacet — Requests a return of sub results for values within the given facet
    • SolrQuery::addStatsField — Maps to stats.field parameter
    • SolrQuery::collapse — Collapses the result set to a single document per group
    • SolrQuery::__construct — Constructor
    • SolrQuery::__destruct — Destructor
    • SolrQuery::getExpand — Returns true if group expanding is enabled
    • SolrQuery::getExpandFilterQueries — Returns the expand filter queries
    • SolrQuery::getExpandQuery — Returns the expand query expand.q parameter
    • SolrQuery::getExpandRows — Returns The number of rows to display in each group (expand.rows)
    • SolrQuery::getExpandSortFields — Returns an array of fields
    • SolrQuery::getFacet — Returns the value of the facet parameter
    • SolrQuery::getFacetDateEnd — Returns the value for the facet.date.end parameter
    • SolrQuery::getFacetDateFields — Returns all the facet.date fields
    • SolrQuery::getFacetDateGap — Returns the value of the facet.date.gap parameter
    • SolrQuery::getFacetDateHardEnd — Returns the value of the facet.date.hardend parameter
    • SolrQuery::getFacetDateOther — Returns the value for the facet.date.other parameter
    • SolrQuery::getFacetDateStart — Returns the lower bound for the first date range for all date faceting on this field
    • SolrQuery::getFacetFields — Returns all the facet fields
    • SolrQuery::getFacetLimit — Returns the maximum number of constraint counts that should be returned for the facet fields
    • SolrQuery::getFacetMethod — Returns the value of the facet.method parameter
    • SolrQuery::getFacetMinCount — Returns the minimum counts for facet fields should be included in the response
    • SolrQuery::getFacetMissing — Returns the current state of the facet.missing parameter
    • SolrQuery::getFacetOffset — Returns an offset into the list of constraints to be used for pagination
    • SolrQuery::getFacetPrefix — Returns the facet prefix
    • SolrQuery::getFacetQueries — Returns all the facet queries
    • SolrQuery::getFacetSort — Returns the facet sort type
    • SolrQuery::getFields — Returns the list of fields that will be returned in the response
    • SolrQuery::getFilterQueries — Returns an array of filter queries
    • SolrQuery::getGroup — Returns true if grouping is enabled
    • SolrQuery::getGroupCachePercent — Returns group cache percent value
    • SolrQuery::getGroupFacet — Returns the group.facet parameter value
    • SolrQuery::getGroupFields — Returns group fields (group.field parameter values)
    • SolrQuery::getGroupFormat — Returns the group.format value
    • SolrQuery::getGroupFunctions — Returns group functions (group.func parameter values)
    • SolrQuery::getGroupLimit — Returns the group.limit value
    • SolrQuery::getGroupMain — Returns the group.main value
    • SolrQuery::getGroupNGroups — Returns the group.ngroups value
    • SolrQuery::getGroupOffset — Returns the group.offset value
    • SolrQuery::getGroupQueries — Returns all the group.query parameter values
    • SolrQuery::getGroupSortFields — Returns the group.sort value
    • SolrQuery::getGroupTruncate — Returns the group.truncate value
    • SolrQuery::getHighlight — Returns the state of the hl parameter
    • SolrQuery::getHighlightAlternateField — Returns the highlight field to use as backup or default
    • SolrQuery::getHighlightFields — Returns all the fields that Solr should generate highlighted snippets for
    • SolrQuery::getHighlightFormatter — Returns the formatter for the highlighted output
    • SolrQuery::getHighlightFragmenter — Returns the text snippet generator for highlighted text
    • SolrQuery::getHighlightFragsize — Returns the number of characters of fragments to consider for highlighting
    • SolrQuery::getHighlightHighlightMultiTerm — Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries
    • SolrQuery::getHighlightMaxAlternateFieldLength — Returns the maximum number of characters of the field to return
    • SolrQuery::getHighlightMaxAnalyzedChars — Returns the maximum number of characters into a document to look for suitable snippets
    • SolrQuery::getHighlightMergeContiguous — Returns whether or not the collapse contiguous fragments into a single fragment
    • SolrQuery::getHighlightRegexMaxAnalyzedChars — Returns the maximum number of characters from a field when using the regex fragmenter
    • SolrQuery::getHighlightRegexPattern — Returns the regular expression for fragmenting
    • SolrQuery::getHighlightRegexSlop — Returns the deviation factor from the ideal fragment size
    • SolrQuery::getHighlightRequireFieldMatch — Returns if a field will only be highlighted if the query matched in this particular field
    • SolrQuery::getHighlightSimplePost — Returns the text which appears after a highlighted term
    • SolrQuery::getHighlightSimplePre — Returns the text which appears before a highlighted term
    • SolrQuery::getHighlightSnippets — Returns the maximum number of highlighted snippets to generate per field
    • SolrQuery::getHighlightUsePhraseHighlighter — Returns the state of the hl.usePhraseHighlighter parameter
    • SolrQuery::getMlt — Returns whether or not MoreLikeThis results should be enabled
    • SolrQuery::getMltBoost — Returns whether or not the query will be boosted by the interesting term relevance
    • SolrQuery::getMltCount — Returns the number of similar documents to return for each result
    • SolrQuery::getMltFields — Returns all the fields to use for similarity
    • SolrQuery::getMltMaxNumQueryTerms — Returns the maximum number of query terms that will be included in any generated query
    • SolrQuery::getMltMaxNumTokens — Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support
    • SolrQuery::getMltMaxWordLength — Returns the maximum word length above which words will be ignored
    • SolrQuery::getMltMinDocFrequency — Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs
    • SolrQuery::getMltMinTermFrequency — Returns the frequency below which terms will be ignored in the source document
    • SolrQuery::getMltMinWordLength — Returns the minimum word length below which words will be ignored
    • SolrQuery::getMltQueryFields — Returns the query fields and their boosts
    • SolrQuery::getQuery — Returns the main query
    • SolrQuery::getRows — Returns the maximum number of documents
    • SolrQuery::getSortFields — Returns all the sort fields
    • SolrQuery::getStart — Returns the offset in the complete result set
    • SolrQuery::getStats — Returns whether or not stats is enabled
    • SolrQuery::getStatsFacets — Returns all the stats facets that were set
    • SolrQuery::getStatsFields — Returns all the statistics fields
    • SolrQuery::getTerms — Returns whether or not the TermsComponent is enabled
    • SolrQuery::getTermsField — Returns the field from which the terms are retrieved
    • SolrQuery::getTermsIncludeLowerBound — Returns whether or not to include the lower bound in the result set
    • SolrQuery::getTermsIncludeUpperBound — Returns whether or not to include the upper bound term in the result set
    • SolrQuery::getTermsLimit — Returns the maximum number of terms Solr should return
    • SolrQuery::getTermsLowerBound — Returns the term to start at
    • SolrQuery::getTermsMaxCount — Returns the maximum document frequency
    • SolrQuery::getTermsMinCount — Returns the minimum document frequency to return in order to be included
    • SolrQuery::getTermsPrefix — Returns the term prefix
    • SolrQuery::getTermsReturnRaw — Whether or not to return raw characters
    • SolrQuery::getTermsSort — Returns an integer indicating how terms are sorted
    • SolrQuery::getTermsUpperBound — Returns the term to stop at
    • SolrQuery::getTimeAllowed — Returns the time in milliseconds allowed for the query to finish
    • SolrQuery::removeExpandFilterQuery — Removes an expand filter query
    • SolrQuery::removeExpandSortField — Removes an expand sort field from the expand.sort parameter
    • SolrQuery::removeFacetDateField — Removes one of the facet date fields
    • SolrQuery::removeFacetDateOther — Removes one of the facet.date.other parameters
    • SolrQuery::removeFacetField — Removes one of the facet.date parameters
    • SolrQuery::removeFacetQuery — Removes one of the facet.query parameters
    • SolrQuery::removeField — Removes a field from the list of fields
    • SolrQuery::removeFilterQuery — Removes a filter query
    • SolrQuery::removeHighlightField — Removes one of the fields used for highlighting
    • SolrQuery::removeMltField — Removes one of the moreLikeThis fields
    • SolrQuery::removeMltQueryField — Removes one of the moreLikeThis query fields
    • SolrQuery::removeSortField — Removes one of the sort fields
    • SolrQuery::removeStatsFacet — Removes one of the stats.facet parameters
    • SolrQuery::removeStatsField — Removes one of the stats.field parameters
    • SolrQuery::setEchoHandler — Toggles the echoHandler parameter
    • SolrQuery::setEchoParams — Determines what kind of parameters to include in the response
    • SolrQuery::setExpand — Enables/Disables the Expand Component
    • SolrQuery::setExpandQuery — Sets the expand.q parameter
    • SolrQuery::setExpandRows — Sets the number of rows to display in each group (expand.rows). Server Default 5
    • SolrQuery::setExplainOther — Sets the explainOther common query parameter
    • SolrQuery::setFacet — Maps to the facet parameter. Enables or disables facetting
    • SolrQuery::setFacetDateEnd — Maps to facet.date.end
    • SolrQuery::setFacetDateGap — Maps to facet.date.gap
    • SolrQuery::setFacetDateHardEnd — Maps to facet.date.hardend
    • SolrQuery::setFacetDateStart — Maps to facet.date.start
    • SolrQuery::setFacetEnumCacheMinDefaultFrequency — Sets the minimum document frequency used for determining term count
    • SolrQuery::setFacetLimit — Maps to facet.limit
    • SolrQuery::setFacetMethod — Specifies the type of algorithm to use when faceting a field
    • SolrQuery::setFacetMinCount — Maps to facet.mincount
    • SolrQuery::setFacetMissing — Maps to facet.missing
    • SolrQuery::setFacetOffset — Sets the offset into the list of constraints to allow for pagination
    • SolrQuery::setFacetPrefix — Specifies a string prefix with which to limits the terms on which to facet
    • SolrQuery::setFacetSort — Determines the ordering of the facet field constraints
    • SolrQuery::setGroup — Enable/Disable result grouping (group parameter)
    • SolrQuery::setGroupCachePercent — Enables caching for result grouping
    • SolrQuery::setGroupFacet — Sets group.facet parameter
    • SolrQuery::setGroupFormat — Sets the group format, result structure (group.format parameter)
    • SolrQuery::setGroupLimit — Specifies the number of results to return for each group. The server default value is 1
    • SolrQuery::setGroupMain — If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
    • SolrQuery::setGroupNGroups — If true, Solr includes the number of groups that have matched the query in the results
    • SolrQuery::setGroupOffset — Sets the group.offset parameter
    • SolrQuery::setGroupTruncate — If true, facet counts are based on the most relevant document of each group matching the query
    • SolrQuery::setHighlight — Enables or disables highlighting
    • SolrQuery::setHighlightAlternateField — Specifies the backup field to use
    • SolrQuery::setHighlightFormatter — Specify a formatter for the highlight output
    • SolrQuery::setHighlightFragmenter — Sets a text snippet generator for highlighted text
    • SolrQuery::setHighlightFragsize — The size of fragments to consider for highlighting
    • SolrQuery::setHighlightHighlightMultiTerm — Use SpanScorer to highlight phrase terms
    • SolrQuery::setHighlightMaxAlternateFieldLength — Sets the maximum number of characters of the field to return
    • SolrQuery::setHighlightMaxAnalyzedChars — Specifies the number of characters into a document to look for suitable snippets
    • SolrQuery::setHighlightMergeContiguous — Whether or not to collapse contiguous fragments into a single fragment
    • SolrQuery::setHighlightRegexMaxAnalyzedChars — Specify the maximum number of characters to analyze
    • SolrQuery::setHighlightRegexPattern — Specify the regular expression for fragmenting
    • SolrQuery::setHighlightRegexSlop — Sets the factor by which the regex fragmenter can stray from the ideal fragment size
    • SolrQuery::setHighlightRequireFieldMatch — Require field matching during highlighting
    • SolrQuery::setHighlightSimplePost — Sets the text which appears after a highlighted term
    • SolrQuery::setHighlightSimplePre — Sets the text which appears before a highlighted term
    • SolrQuery::setHighlightSnippets — Sets the maximum number of highlighted snippets to generate per field
    • SolrQuery::setHighlightUsePhraseHighlighter — Whether to highlight phrase terms only when they appear within the query phrase
    • SolrQuery::setMlt — Enables or disables moreLikeThis
    • SolrQuery::setMltBoost — Set if the query will be boosted by the interesting term relevance
    • SolrQuery::setMltCount — Set the number of similar documents to return for each result
    • SolrQuery::setMltMaxNumQueryTerms — Sets the maximum number of query terms included
    • SolrQuery::setMltMaxNumTokens — Specifies the maximum number of tokens to parse
    • SolrQuery::setMltMaxWordLength — Sets the maximum word length
    • SolrQuery::setMltMinDocFrequency — Sets the mltMinDoc frequency
    • SolrQuery::setMltMinTermFrequency — Sets the frequency below which terms will be ignored in the source docs
    • SolrQuery::setMltMinWordLength — Sets the minimum word length
    • SolrQuery::setOmitHeader — Exclude the header from the returned results
    • SolrQuery::setQuery — Sets the search query
    • SolrQuery::setRows — Specifies the maximum number of rows to return in the result
    • SolrQuery::setShowDebugInfo — Flag to show debug information
    • SolrQuery::setStart — Specifies the number of rows to skip
    • SolrQuery::setStats — Enables or disables the Stats component
    • SolrQuery::setTerms — Enables or disables the TermsComponent
    • SolrQuery::setTermsField — Sets the name of the field to get the Terms from
    • SolrQuery::setTermsIncludeLowerBound — Include the lower bound term in the result set
    • SolrQuery::setTermsIncludeUpperBound — Include the upper bound term in the result set
    • SolrQuery::setTermsLimit — Sets the maximum number of terms to return
    • SolrQuery::setTermsLowerBound — Specifies the Term to start from
    • SolrQuery::setTermsMaxCount — Sets the maximum document frequency
    • SolrQuery::setTermsMinCount — Sets the minimum document frequency
    • SolrQuery::setTermsPrefix — Restrict matches to terms that start with the prefix
    • SolrQuery::setTermsReturnRaw — Return the raw characters of the indexed term
    • SolrQuery::setTermsSort — Specifies how to sort the returned terms
    • SolrQuery::setTermsUpperBound — Sets the term to stop at
    • SolrQuery::setTimeAllowed — The time allowed for search to finish
  • SolrDisMaxQuery — The SolrDisMaxQuery class
    • SolrDisMaxQuery::addBigramPhraseField — Adds a Phrase Bigram Field (pf2 parameter)
    • SolrDisMaxQuery::addBoostQuery — Adds a boost query field with value and optional boost (bq parameter)
    • SolrDisMaxQuery::addPhraseField — Adds a Phrase Field (pf parameter)
    • SolrDisMaxQuery::addQueryField — Add a query field with optional boost (qf parameter)
    • SolrDisMaxQuery::addTrigramPhraseField — Adds a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::addUserField — Adds a field to User Fields Parameter (uf)
    • SolrDisMaxQuery::__construct — Class Constructor
    • SolrDisMaxQuery::removeBigramPhraseField — Removes phrase bigram field (pf2 parameter)
    • SolrDisMaxQuery::removeBoostQuery — Removes a boost query partial by field name (bq)
    • SolrDisMaxQuery::removePhraseField — Removes a Phrase Field (pf parameter)
    • SolrDisMaxQuery::removeQueryField — Removes a Query Field (qf parameter)
    • SolrDisMaxQuery::removeTrigramPhraseField — Removes a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::removeUserField — Removes a field from The User Fields Parameter (uf)
    • SolrDisMaxQuery::setBigramPhraseFields — Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setBigramPhraseSlop — Sets Bigram Phrase Slop (ps2 parameter)
    • SolrDisMaxQuery::setBoostFunction — Sets a Boost Function (bf parameter)
    • SolrDisMaxQuery::setBoostQuery — Directly Sets Boost Query Parameter (bq)
    • SolrDisMaxQuery::setMinimumMatch — Set Minimum "Should" Match (mm)
    • SolrDisMaxQuery::setPhraseFields — Sets Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setPhraseSlop — Sets the default slop on phrase queries (ps parameter)
    • SolrDisMaxQuery::setQueryAlt — Set Query Alternate (q.alt parameter)
    • SolrDisMaxQuery::setQueryPhraseSlop — Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)
    • SolrDisMaxQuery::setTieBreaker — Sets Tie Breaker parameter (tie parameter)
    • SolrDisMaxQuery::setTrigramPhraseFields — Directly Sets Trigram Phrase Fields (pf3 parameter)
    • SolrDisMaxQuery::setTrigramPhraseSlop — Sets Trigram Phrase Slop (ps3 parameter)
    • SolrDisMaxQuery::setUserFields — Sets User Fields parameter (uf)
    • SolrDisMaxQuery::useDisMaxQueryParser — Switch QueryParser to be DisMax Query Parser
    • SolrDisMaxQuery::useEDisMaxQueryParser — Switch QueryParser to be EDisMax
  • SolrCollapseFunction — The SolrCollapseFunction class
    • SolrCollapseFunction::__construct — Constructor
    • SolrCollapseFunction::getField — Returns the field that is being collapsed on
    • SolrCollapseFunction::getHint — Returns collapse hint
    • SolrCollapseFunction::getMax — Returns max parameter
    • SolrCollapseFunction::getMin — Returns min parameter
    • SolrCollapseFunction::getNullPolicy — Returns null policy
    • SolrCollapseFunction::getSize — Returns size parameter
    • SolrCollapseFunction::setField — Sets the field to collapse on
    • SolrCollapseFunction::setHint — Sets collapse hint
    • SolrCollapseFunction::setMax — Selects the group heads by the max value of a numeric field or function query
    • SolrCollapseFunction::setMin — Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::setNullPolicy — Sets the NULL Policy
    • SolrCollapseFunction::setSize — Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::__toString — Returns a string representing the constructed collapse function
  • SolrException — Класс SolrException
    • SolrException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение
  • SolrClientException — The SolrClientException class
    • SolrClientException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение
  • SolrServerException — The SolrServerException class
    • SolrServerException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение
  • SolrIllegalArgumentException — The SolrIllegalArgumentException class
    • SolrIllegalArgumentException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение
  • SolrIllegalOperationException — The SolrIllegalOperationException class
    • SolrIllegalOperationException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение
  • SolrMissingMandatoryParameterException — The SolrMissingMandatoryParameterException class


Введение

Расширение Solr позволяет эффективно взаимодействовать с сервером Apache Solr в PHP.

Расширение Solr - чрезвычайно быстрая, легкая, многофункциональная библиотека, которая позволяет разработчикам PHP эффективно взаимодействовать с экземплярами сервера Solr.

Версии 1.x расширения PECL поддерживают Apache Solr Server 1.3-3.x

Версии 2.x расширения PECL поддерживают Apache Solr Server 4.0+

Есть встроенные инструменты для добавления документов и обновления сервера Solr.

Она также содержит инструменты, которые позволяют создавать сложные запросы к серверу при поиске документов.


Требования

PHP version 5.2.11 or later is required.

The libxml and curl extensions must also be enabled for the Apache Solr extension to be available.

libxml2 2.6.31 or later is required.

libcurl 7.18.0 or later is also required.

The above library versions are required and attempting to hack the code to make it compile is strongly discouraged. It will fail, possibly with errors that could be hard to debug


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/solr.

For help and support, please visit the extension google group. » Apache Solr PHP Extension

Бинарные файлы Windows (файлы DLL) для этого расширения PECL доступны на сайте PECL.

Замечание:

The solr module can be compiled in debug mode by passing the --enable-solr-debug flag to configure

When building manually, be sure to include curl and libxml support within the build.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SOLR_MAJOR_VERSION (integer)
SOLR_MINOR_VERSION (integer)
SOLR_PATCH_VERSION (integer)
SOLR_EXTENSION_VERSION (string)


  • « Предопределенные константы
  • solr_get_version »
  • PHP Manual
  • Solr
  • Функции Solr

Функции Solr

Содержание

  • solr_get_version — Возвращает текущую версию модуля Apache Solr


Возвращает текущую версию модуля Apache Solr

  • « Функции Solr
  • Примеры »
  • PHP Manual
  • Функции Solr
  • Возвращает текущую версию модуля Apache Solr

solr_get_version

(PECL solr >= 0.9.1)

solr_get_version — Возвращает текущую версию модуля Apache Solr

Описание

solr_get_version ( void ) : string

Функция возвращает текущую версию модуля в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку в случае успешного выполнения и FALSE в случае возникновения ошибки.

Ошибки

Функция не выбрасывает ошибок или исключений.

Примеры

Пример #1 Пример использования solr_get_version()

<?php

$solr_version = solr_get_version();

print $solr_version;

?>

Результатом выполнения данного примера будет что-то подобное:

0.9.6

Смотрите также

  • SolrUtils::getSolrVersion() - Returns the current version of the Solr extension


Примеры

Examples of how to use the Apache Solr extension in PHP

Пример #1 Contents of the BootStrap file

<?php

/* Domain name of the Solr server */
define('SOLR_SERVER_HOSTNAME', 'solr.example.com');

/* Whether or not to run in secure mode */
define('SOLR_SECURE', true);

/* HTTP Port to connection */
define('SOLR_SERVER_PORT', ((SOLR_SECURE) ? 8443 : 8983));

/* HTTP Basic Authentication Username */
define('SOLR_SERVER_USERNAME', 'admin');

/* HTTP Basic Authentication password */
define('SOLR_SERVER_PASSWORD', 'changeit');

/* HTTP connection timeout */
/* This is maximum time in seconds allowed for the http data transfer operation. Default value is 30 seconds */
define('SOLR_SERVER_TIMEOUT', 10);

/* File name to a PEM-formatted private key + private certificate (concatenated in that order) */
define('SOLR_SSL_CERT', 'certs/combo.pem');

/* File name to a PEM-formatted private certificate only */
define('SOLR_SSL_CERT_ONLY', 'certs/solr.crt');

/* File name to a PEM-formatted private key */
define('SOLR_SSL_KEY', 'certs/solr.key');

/* Password for PEM-formatted private key file */
define('SOLR_SSL_KEYPASSWORD', 'StrongAndSecurePassword');

/* Name of file holding one or more CA certificates to verify peer with*/
define('SOLR_SSL_CAINFO', 'certs/cacert.crt');

/* Name of directory holding multiple CA certificates to verify peer with */
define('SOLR_SSL_CAPATH', 'certs/');

?>

Пример #2 Adding a document to the index

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$updateResponse = $client->addDocument($doc);

print_r($updateResponse->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 446
        )

)

Пример #3 Merging one document into another document

<?php

include "bootstrap.php";

$doc = new SolrDocument();

$second_doc = new SolrDocument();

$doc->addField('id', 1123);

$doc->features = "PHP Client Side";
$doc->features = "Fast development cycles";

$doc['cat'] = 'Software';
$doc['cat'] = 'Custom Search';
$doc->cat   = 'Information Technology';

$second_doc->addField('cat', 'Lucene Search');

$second_doc->merge($doc, true);

print_r($second_doc->toArray());

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [document_boost] => 0
    [field_count] => 3
    [fields] => Array
        (
            [0] => SolrDocumentField Object
                (
                    [name] => cat
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => Software
                            [1] => Custom Search
                            [2] => Information Technology
                        )

                )

            [1] => SolrDocumentField Object
                (
                    [name] => id
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => 1123
                        )

                )

            [2] => SolrDocumentField Object
                (
                    [name] => features
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => PHP Client Side
                            [1] => Fast development cycles
                        )

                )

        )

)

Пример #4 Searching for documents - SolrObject responses

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [wt] => xml
                    [rows] => 50
                    [start] => 0
                    [indent] => on
                    [q] => lucene
                    [fl] => cat,features,id,timestamp
                    [version] => 2.2
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 3
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => Software
                                    [1] => Lucene
                                )

                            [id] => 334456
                        )

                    [1] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => Software
                                    [1] => Lucene
                                )

                            [id] => 334455
                        )

                    [2] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => software
                                    [1] => search
                                )

                            [features] => Array
                                (
                                    [0] => Advanced Full-Text Search Capabilities using Lucene
                                    [1] => Optimized for High Volume Web Traffic
                                    [2] => Standards Based Open Interfaces - XML and HTTP
                                    [3] => Comprehensive HTML Administration Interfaces
                                    [4] => Scalability - Efficient Replication to other Solr Search Servers
                                    [5] => Flexible and Adaptable with XML configuration and Schema
                                    [6] => Good unicode support: hello (hello with an accent over the e)
                                )

                            [id] => SOLR1000
                            [timestamp] => 2009-09-04T20:38:55.906
                        )

                )

        )

)

Пример #5 Searching for documents - SolrDocument responses

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response = $client->query($query);

$query_response->setParseMode(SolrQueryResponse::PARSE_SOLR_DOC);

$response = $query_response->getResponse();

print_r($response);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [wt] => xml
                    [rows] => 50
                    [start] => 0
                    [indent] => on
                    [q] => lucene
                    [fl] => cat,features,id,timestamp
                    [version] => 2.2
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 3
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 19740
                        )

                    [1] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 25485
                        )

                    [2] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 25052
                        )

                )

        )

)

Пример #6 Simple TermsComponent example - basic

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

$query->setTermsField('cat');

$updateResponse = $client->query($query);

print_r($updateResponse->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 2
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [electronics] => 14
                    [Lucene] => 4
                    [Software] => 4
                    [memory] => 3
                    [card] => 2
                    [connector] => 2
                    [drive] => 2
                    [graphics] => 2
                    [hard] => 2
                    [monitor] => 2
                )

        )

)

Пример #7 Simple TermsComponent example - using a prefix

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

/* Return only terms starting with $prefix */
$prefix = 'c';

$query->setTermsField('cat')->setTermsPrefix($prefix);

$updateResponse = $client->query($query);

print_r($updateResponse->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [card] => 2
                    [connector] => 2
                    [camera] => 1
                    [copier] => 1
                )

        )

)

Пример #8 Simple TermsComponent example - specifying a minimum frequency

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

/* Return only terms starting with $prefix */
$prefix = 'c';

/* Return only terms with a frequency of 2 or greater */
$min_frequency = 2;

$query->setTermsField('cat')->setTermsPrefix($prefix)->setTermsMinCount($min_frequency);

$updateResponse = $client->query($query);

print_r($updateResponse->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 0
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [card] => 2
                    [connector] => 2
                )

        )

)

Пример #9 Simple Facet Example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2);

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
            [1] => 3
            [184] => 3
            [2] => 3
            [3200] => 3
            [400] => 3
            [500] => 3
            [ddr] => 3
            [i] => 3
            [ipod] => 3
            [memori] => 3
            [pc] => 3
            [pin] => 3
            [pod] => 3
            [sdram] => 3
            [system] => 3
            [unbuff] => 3
            [canon] => 2
            [corsair] => 2
            [drive] => 2
            [hard] => 2
            [mb] => 2
            [n] => 2
            [power] => 2
            [retail] => 2
            [video] => 2
            [x] => 2
        )

)

Пример #10 Simple Facet Example - with optional field override for mincount

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2)->setFacetMinCount(4, 'name');

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
        )

)

Пример #11 Facet Date Example

<?php

include "bootstrap.php";

$options = array
(
        'hostname' => SOLR_SERVER_HOSTNAME,
        'login'    => SOLR_SERVER_USERNAME,
        'password' => SOLR_SERVER_PASSWORD,
        'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetDateField('manufacturedate_dt');

$query->setFacetDateStart('2006-02-13T00:00:00Z');

$query->setFacetDateEnd('2012-02-13T00:00:00Z');

$query->setFacetDateGap('+1YEAR');

$query->setFacetDateHardEnd(1);

$query->addFacetDateOther('before');

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_dates;

print_r($facet_data);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [manufacturedate_dt] => SolrObject Object
        (
            [2006-02-13T00:00:00Z] => 9
            [2007-02-13T00:00:00Z] => 0
            [2008-02-13T00:00:00Z] => 0
            [2009-02-13T00:00:00Z] => 0
            [2010-02-13T00:00:00Z] => 0
            [2011-02-13T00:00:00Z] => 0
            [gap] => +1YEAR
            [start] => 2006-02-13T00:00:00Z
            [end] => 2012-02-13T00:00:00Z
            [before] => 2
        )

)

Пример #12 Connecting to SSL-Enabled Server

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'timeout'  => SOLR_SERVER_TIMEOUT,
    'secure'   => SOLR_SECURE,
    'ssl_cert' => SOLR_SSL_CERT_ONLY,
    'ssl_key'  => SOLR_SSL_KEY,
    'ssl_keypassword' => SOLR_SSL_KEYPASSWORD,
    'ssl_cainfo' => SOLR_SSL_CAINFO,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2)->setFacetMinCount(4, 'name');

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
        )

)

Пример #13 Collapsing a SolrQuery

<?php
include "bootstrap.php";

$options = array
(
        'hostname' => SOLR_SERVER_HOSTNAME,
        'login'    => SOLR_SERVER_USERNAME,
        'password' => SOLR_SERVER_PASSWORD,
        'port'     => SOLR_SERVER_PORT,
        'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$collapseFunction = new SolrCollapseFunction('manu_id_s');

$collapseFunction
->setSize(2)
->setNullPolicy(SolrCollapseFunction::NULLPOLICY_IGNORE);

$query
->collapse($collapseFunction)
->setRows(4);

$queryResponse = $client->query($query);

$response = $queryResponse->getResponse();

print_r($response);
?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [q] => *:*
                    [indent] => on
                    [fq] => {!collapse field=manu_id_s size=2 nullPolicy=ignore}
                    [rows] => 4
                    [version] => 2.2
                    [wt] => xml
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 14
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => SP2514N
                            [name] => Array
                                (
                                    [0] => Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133
                                )

                            [manu] => Array
                                (
                                    [0] => Samsung Electronics Co. Ltd.
                                )

                            [manu_id_s] => samsung
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => 7200RPM, 8MB cache, IDE Ultra ATA-133
                                    [1] => NoiseGuard, SilentSeek technology, Fluid Dynamic Bearing (FDB) motor
                                )

                            [price] => Array
                                (
                                    [0] => 92
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [store] => Array
                                (
                                    [0] => 35.0752,-97.032
                                )

                            [_version_] => 1510294336412057600
                        )

                    [1] => SolrObject Object
                        (
                            [id] => 6H500F0
                            [name] => Array
                                (
                                    [0] => Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300
                                )

                            [manu] => Array
                                (
                                    [0] => Maxtor Corp.
                                )

                            [manu_id_s] => maxtor
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => SATA 3.0Gb/s, NCQ
                                    [1] => 8.5ms seek
                                    [2] => 16MB cache
                                )

                            [price] => Array
                                (
                                    [0] => 350
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 45.17614,-93.87341
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [_version_] => 1510294336449806336
                        )

                    [2] => SolrObject Object
                        (
                            [id] => F8V7067-APL-KIT
                            [name] => Array
                                (
                                    [0] => Belkin Mobile Power Cord for iPod w/ Dock
                                )

                            [manu] => Array
                                (
                                    [0] => Belkin
                                )

                            [manu_id_s] => belkin
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => connector
                                )

                            [features] => Array
                                (
                                    [0] => car power adapter, white
                                )

                            [weight] => Array
                                (
                                    [0] => 4
                                )

                            [price] => Array
                                (
                                    [0] => 19.95
                                )

                            [popularity] => Array
                                (
                                    [0] => 1
                                )

                            [inStock] => Array
                                (
                                    [0] =>
                                )

                            [store] => Array
                                (
                                    [0] => 45.18014,-93.87741
                                )

                            [manufacturedate_dt] => 2005-08-01T16:30:25Z
                            [_version_] => 1510294336458194944
                        )

                    [3] => SolrObject Object
                        (
                            [id] => MA147LL/A
                            [name] => Array
                                (
                                    [0] => Apple 60 GB iPod with Video Playback Black
                                )

                            [manu] => Array
                                (
                                    [0] => Apple Computer Inc.
                                )

                            [manu_id_s] => apple
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => music
                                )

                            [features] => Array
                                (
                                    [0] => iTunes, Podcasts, Audiobooks
                                    [1] => Stores up to 15,000 songs, 25,000 photos, or 150 hours of video
                                    [2] => 2.5-inch, 320x240 color TFT LCD display with LED backlight
                                    [3] => Up to 20 hours of battery life
                                    [4] => Plays AAC, MP3, WAV, AIFF, Audible, Apple Lossless, H.264 video
                                    [5] => Notes, Calendar, Phone book, Hold button, Date display, Photo wallet, Built-in games, JPEG photo playback, Upgradeable firmware, USB 2.0 compatibility, Playback speed control, Rechargeable capability, Battery level indication
                                )

                            [includes] => Array
                                (
                                    [0] => earbud headphones, USB cable
                                )

                            [weight] => Array
                                (
                                    [0] => 5.5
                                )

                            [price] => Array
                                (
                                    [0] => 399
                                )

                            [popularity] => Array
                                (
                                    [0] => 10
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 37.7752,-100.0232
                                )

                            [manufacturedate_dt] => 2005-10-12T08:00:00Z
                            [_version_] => 1510294336562003968
                        )

                )

        )

)

Пример #14 Solr Real Time Get (RTG) example SolrClient::getById()

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);
$response = $client->getById('GB18030TEST');
print_r($response->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [doc] => SolrObject Object
        (
            [id] => GB18030TEST
            [name] => Array
                (
                    [0] => Test with some GB18030 encoded characters
                )

            [features] => Array
                (
                    [0] => No accents here
                    [1] => ??????
                    [2] => This is a feature (translated)
                    [3] => ?????????
                    [4] => This document is very shiny (translated)
                )

            [price] => Array
                (
                    [0] => 0
                )

            [inStock] => Array
                (
                    [0] => 1
                )

            [_version_] => 1510294336239042560
        )

)


The SolrUtils class

(PECL solr >= 0.9.2)

Введение

Contains utility methods for retrieving the current extension version and preparing query phrases.

Also contains method for escaping query strings and parsing XML responses.

Обзор классов

abstract SolrUtils {
/* Методы */
public static digestXmlResponse ( string $xmlresponse [, int $parse_mode = 0 ] ) : SolrObject
public static escapeQueryChars ( string $str ) : string
public static getSolrVersion ( void ) : string
public static queryPhrase ( string $str ) : string
}

Содержание

  • SolrUtils::digestXmlResponse — Parses an response XML string into a SolrObject
  • SolrUtils::escapeQueryChars — Escapes a lucene query string
  • SolrUtils::getSolrVersion — Returns the current version of the Solr extension
  • SolrUtils::queryPhrase — Prepares a phrase from an unescaped lucene string


Parses an response XML string into a SolrObject

  • « SolrUtils
  • SolrUtils::escapeQueryChars »
  • PHP Manual
  • SolrUtils
  • Parses an response XML string into a SolrObject

SolrUtils::digestXmlResponse

(PECL solr >= 0.9.2)

SolrUtils::digestXmlResponse — Parses an response XML string into a SolrObject

Описание

public static SolrUtils::digestXmlResponse ( string $xmlresponse [, int $parse_mode = 0 ] ) : SolrObject

This method parses an response XML string from the Apache Solr server into a SolrObject. It throws a SolrException if there was an error.

Список параметров

xmlresponse

The XML response string from the Solr server.

parse_mode

Use SolrResponse::PARSE_SOLR_OBJ or SolrResponse::PARSE_SOLR_DOC

Возвращаемые значения

Returns the SolrObject representing the XML response.

If the parse_mode parameter is set to SolrResponse::PARSE_SOLR_OBJ Solr documents will be parses as SolrObject instances.

If it is set to SolrResponse::PARSE_SOLR_DOC, they will be parsed as SolrDocument instances.


Escapes a lucene query string

  • « SolrUtils::digestXmlResponse
  • SolrUtils::getSolrVersion »
  • PHP Manual
  • SolrUtils
  • Escapes a lucene query string

SolrUtils::escapeQueryChars

(PECL solr >= 0.9.2)

SolrUtils::escapeQueryChars — Escapes a lucene query string

Описание

public static SolrUtils::escapeQueryChars ( string $str ) : string

Lucene supports escaping special characters that are part of the query syntax.

The current list special characters are:

+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /

These characters are part of the query syntax and must be escaped

Список параметров

str

This is the query string to be escaped.

Возвращаемые значения

Returns the escaped string или FALSE в случае возникновения ошибки.


Returns the current version of the Solr extension

  • « SolrUtils::escapeQueryChars
  • SolrUtils::queryPhrase »
  • PHP Manual
  • SolrUtils
  • Returns the current version of the Solr extension

SolrUtils::getSolrVersion

(PECL solr >= 0.9.2)

SolrUtils::getSolrVersion — Returns the current version of the Solr extension

Описание

public static SolrUtils::getSolrVersion ( void ) : string

Returns the current Solr version.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current version of the Apache Solr extension.


Prepares a phrase from an unescaped lucene string

  • « SolrUtils::getSolrVersion
  • SolrInputDocument »
  • PHP Manual
  • SolrUtils
  • Prepares a phrase from an unescaped lucene string

SolrUtils::queryPhrase

(PECL solr >= 0.9.2)

SolrUtils::queryPhrase — Prepares a phrase from an unescaped lucene string

Описание

public static SolrUtils::queryPhrase ( string $str ) : string

Prepares a phrase from an unescaped lucene string.

Список параметров

str

The lucene phrase.

Возвращаемые значения

Returns the phrase contained in double quotes.


The SolrInputDocument class

(PECL solr >= 0.9.2)

Введение

This class represents a Solr document that is about to be submitted to the Solr index.

Обзор классов

final SolrInputDocument {
/* Константы */
const integer SORT_DEFAULT = 1 ;
const integer SORT_ASC = 1 ;
const integer SORT_DESC = 2 ;
const integer SORT_FIELD_NAME = 1 ;
const integer SORT_FIELD_VALUE_COUNT = 2 ;
const integer SORT_FIELD_BOOST_VALUE = 4 ;
/* Методы */
public addChildDocument ( SolrInputDocument $child ) : void
public addChildDocuments ( array &$docs ) : void
public addField ( string $fieldName , string $fieldValue [, float $fieldBoostValue = 0.0 ] ) : bool
public clear ( void ) : bool
public __clone ( void ) : void
public __construct ( void )
public deleteField ( string $fieldName ) : bool
public __destruct ( void ) : void
public fieldExists ( string $fieldName ) : bool
public getBoost ( void ) : float
public getChildDocuments ( void ) : array
public getChildDocumentsCount ( void ) : int
public getField ( string $fieldName ) : SolrDocumentField
public getFieldBoost ( string $fieldName ) : float
public getFieldCount ( void ) : int
public getFieldNames ( void ) : array
public hasChildDocuments ( void ) : bool
public merge ( SolrInputDocument $sourceDoc [, bool $overwrite = TRUE ] ) : bool
public reset ( void ) : bool
public setBoost ( float $documentBoostValue ) : bool
public setFieldBoost ( string $fieldName , float $fieldBoostValue ) : bool
public sort ( int $sortOrderBy [, int $sortDirection = SolrInputDocument::SORT_ASC ] ) : bool
public toArray ( void ) : array
}

Предопределенные константы

SolrInputDocument Class Constants

SolrInputDocument::SORT_DEFAULT

Sorts the fields in ascending order.

SolrInputDocument::SORT_ASC

Sorts the fields in ascending order.

SolrInputDocument::SORT_DESC

Sorts the fields in descending order.

SolrInputDocument::SORT_FIELD_NAME

Sorts the fields by name

SolrInputDocument::SORT_FIELD_VALUE_COUNT

Sorts the fields by number of values.

SolrInputDocument::SORT_FIELD_BOOST_VALUE

Sorts the fields by boost value.

Содержание

  • SolrInputDocument::addChildDocument — Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments — Adds an array of child documents
  • SolrInputDocument::addField — Adds a field to the document
  • SolrInputDocument::clear — Resets the input document
  • SolrInputDocument::__clone — Creates a copy of a SolrDocument
  • SolrInputDocument::__construct — Constructor
  • SolrInputDocument::deleteField — Removes a field from the document
  • SolrInputDocument::__destruct — Destructor
  • SolrInputDocument::fieldExists — Checks if a field exists
  • SolrInputDocument::getBoost — Retrieves the current boost value for the document
  • SolrInputDocument::getChildDocuments — Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount — Returns the number of child documents
  • SolrInputDocument::getField — Retrieves a field by name
  • SolrInputDocument::getFieldBoost — Retrieves the boost value for a particular field
  • SolrInputDocument::getFieldCount — Returns the number of fields in the document
  • SolrInputDocument::getFieldNames — Returns an array containing all the fields in the document
  • SolrInputDocument::hasChildDocuments — Returns true if the document has any child documents
  • SolrInputDocument::merge — Merges one input document into another
  • SolrInputDocument::reset — This is an alias of SolrInputDocument::clear
  • SolrInputDocument::setBoost — Sets the boost value for this document
  • SolrInputDocument::setFieldBoost — Sets the index-time boost value for a field
  • SolrInputDocument::sort — Sorts the fields within the document
  • SolrInputDocument::toArray — Returns an array representation of the input document


Adds a child document for block indexing

  • « SolrInputDocument
  • SolrInputDocument::addChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Adds a child document for block indexing

SolrInputDocument::addChildDocument

(PECL solr >= 2.3.0)

SolrInputDocument::addChildDocument — Adds a child document for block indexing

Описание

public SolrInputDocument::addChildDocument ( SolrInputDocument $child ) : void

Adds a child document to construct a document block with nested documents.

Список параметров

child

A SolrInputDocument object.

Ошибки

Throws SolrIllegalArgumentException on failure.

Throws SolrException on internal failure.

Возвращаемые значения

Примеры

Пример #1 SolrInputDocument::addChildDocument() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_STORE_PATH,
);

$client = new SolrClient($options);

$product = new SolrInputDocument();

$product->addField('id', 'P-BLACK');
$product->addField('cat', 'tshirt');
$product->addField('cat', 'polo');
$product->addField('content_type', 'product');

$small = new SolrInputDocument();
$small->addField('id', 'TS-BLK-S');
$small->addField('content_type', 'sku');
$small->addField('size', 'S');
$small->addField('inventory', 100);

$medium = new SolrInputDocument();
$medium->addField('id', 'TS-BLK-M');
$medium->addField('content_type', 'sku');
$medium->addField('size', 'M');
$medium->addField('inventory', 200);

$large = new SolrInputDocument();
$large->addField('id', 'TS-BLK-L');
$large->addField('content_type', 'sku');
$large->addField('size', 'L');
$large->addField('inventory', 300);

// add child documents
$product->addChildDocument($small);
$product->addChildDocument($medium);
$product->addChildDocument($large);

// add product document block to the index
$updateResponse = $client->addDocument(
        $product,
        true, // overwrite if the document exists
        10000 // commit within 10 seconds
);

print_r($updateResponse->getResponse());

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 5
        )
)

Смотрите также

  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Adds an array of child documents

  • « SolrInputDocument::addChildDocument
  • SolrInputDocument::addField »
  • PHP Manual
  • SolrInputDocument
  • Adds an array of child documents

SolrInputDocument::addChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::addChildDocuments — Adds an array of child documents

Описание

public SolrInputDocument::addChildDocuments ( array &$docs ) : void

Adds an array of child documents to the current input document.

Список параметров

docs

An array of SolrInputDocument objects.

Ошибки

Throws SolrIllegalArgumentException on failure.

Throws SolrException on internal failure.

Возвращаемые значения

Примеры

Пример #1 SolrInputDocument::addChildDocuments() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_STORE_PATH,
);

$client = new SolrClient($options);

$product = new SolrInputDocument();

$product->addField('id', 'P-BLACK');
$product->addField('cat', 'tshirt');
$product->addField('cat', 'polo');
$product->addField('content_type', 'product');

$small = new SolrInputDocument();
$small->addField('id', 'TS-BLK-S');
$small->addField('content_type', 'sku');
$small->addField('size', 'S');
$small->addField('inventory', 100);

$medium = new SolrInputDocument();
$medium->addField('id', 'TS-BLK-M');
$medium->addField('content_type', 'sku');
$medium->addField('size', 'M');
$medium->addField('inventory', 200);

$large = new SolrInputDocument();
$large->addField('id', 'TS-BLK-L');
$large->addField('content_type', 'sku');
$large->addField('size', 'L');
$large->addField('inventory', 300);

// add child documents
$skus = [$small, $medium, $large];
$product->addChildDocuments($skus);

// add the product document block to the index
$updateResponse = $client->addDocument(
        $product,
        true, // overwrite if the document exists
        10000 // commit within 10 seconds
);

print_r($updateResponse->getResponse());

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 5
        )
)

Смотрите также

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Adds a field to the document

  • « SolrInputDocument::addChildDocuments
  • SolrInputDocument::clear »
  • PHP Manual
  • SolrInputDocument
  • Adds a field to the document

SolrInputDocument::addField

(PECL solr >= 0.9.2)

SolrInputDocument::addField — Adds a field to the document

Описание

public SolrInputDocument::addField ( string $fieldName , string $fieldValue [, float $fieldBoostValue = 0.0 ] ) : bool

For multi-value fields, if a valid boost value is specified, the specified value will be multiplied by the current boost value for this field.

Список параметров

fieldName

The name of the field

fieldValue

The value for the field.

fieldBoostValue

The index time boost for the field. Though this cannot be negative, you can still pass values less than 1.0 but they must be greater than zero.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Resets the input document

  • « SolrInputDocument::addField
  • SolrInputDocument::__clone »
  • PHP Manual
  • SolrInputDocument
  • Resets the input document

SolrInputDocument::clear

(PECL solr >= 0.9.2)

SolrInputDocument::clear — Resets the input document

Описание

public SolrInputDocument::clear ( void ) : bool

Resets the document by dropping all the fields and resets the document boost to zero.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Creates a copy of a SolrDocument

  • « SolrInputDocument::clear
  • SolrInputDocument::__construct »
  • PHP Manual
  • SolrInputDocument
  • Creates a copy of a SolrDocument

SolrInputDocument::__clone

(PECL solr >= 0.9.2)

SolrInputDocument::__clone — Creates a copy of a SolrDocument

Описание

public SolrInputDocument::__clone ( void ) : void

Should not be called directly. It is used to create a deep copy of a SolrInputDocument.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Creates a new SolrInputDocument instance.


Constructor

  • « SolrInputDocument::__clone
  • SolrInputDocument::deleteField »
  • PHP Manual
  • SolrInputDocument
  • Constructor

SolrInputDocument::__construct

(PECL solr >= 0.9.2)

SolrInputDocument::__construct — Constructor

Описание

public SolrInputDocument::__construct ( void )

Constructor.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

None.


Removes a field from the document

  • « SolrInputDocument::__construct
  • SolrInputDocument::__destruct »
  • PHP Manual
  • SolrInputDocument
  • Removes a field from the document

SolrInputDocument::deleteField

(PECL solr >= 0.9.2)

SolrInputDocument::deleteField — Removes a field from the document

Описание

public SolrInputDocument::deleteField ( string $fieldName ) : bool

Removes a field from the document.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Destructor

  • « SolrInputDocument::deleteField
  • SolrInputDocument::fieldExists »
  • PHP Manual
  • SolrInputDocument
  • Destructor

SolrInputDocument::__destruct

(PECL solr >= 0.9.2)

SolrInputDocument::__destruct — Destructor

Описание

public SolrInputDocument::__destruct ( void ) : void

Destructor

Список параметров

У этой функции нет параметров.

Возвращаемые значения

None.


Checks if a field exists

  • « SolrInputDocument::__destruct
  • SolrInputDocument::getBoost »
  • PHP Manual
  • SolrInputDocument
  • Checks if a field exists

SolrInputDocument::fieldExists

(PECL solr >= 0.9.2)

SolrInputDocument::fieldExists — Checks if a field exists

Описание

public SolrInputDocument::fieldExists ( string $fieldName ) : bool

Checks if a field exists

Список параметров

fieldName

Name of the field.

Возвращаемые значения

Returns TRUE if the field was found and FALSE if it was not found.


Retrieves the current boost value for the document

  • « SolrInputDocument::fieldExists
  • SolrInputDocument::getChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Retrieves the current boost value for the document

SolrInputDocument::getBoost

(PECL solr >= 0.9.2)

SolrInputDocument::getBoost — Retrieves the current boost value for the document

Описание

public SolrInputDocument::getBoost ( void ) : float

Retrieves the current boost value for the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the boost value on success and FALSE on failure.


Returns an array of child documents (SolrInputDocument)

  • « SolrInputDocument::getBoost
  • SolrInputDocument::getChildDocumentsCount »
  • PHP Manual
  • SolrInputDocument
  • Returns an array of child documents (SolrInputDocument)

SolrInputDocument::getChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::getChildDocuments — Returns an array of child documents (SolrInputDocument)

Описание

public SolrInputDocument::getChildDocuments ( void ) : array

Returns an array of child documents (SolrInputDocument)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Returns the number of child documents

  • « SolrInputDocument::getChildDocuments
  • SolrInputDocument::getField »
  • PHP Manual
  • SolrInputDocument
  • Returns the number of child documents

SolrInputDocument::getChildDocumentsCount

(PECL solr >= 2.3.0)

SolrInputDocument::getChildDocumentsCount — Returns the number of child documents

Описание

public SolrInputDocument::getChildDocumentsCount ( void ) : int

Returns the number of child documents

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)


Retrieves a field by name

  • « SolrInputDocument::getChildDocumentsCount
  • SolrInputDocument::getFieldBoost »
  • PHP Manual
  • SolrInputDocument
  • Retrieves a field by name

SolrInputDocument::getField

(PECL solr >= 0.9.2)

SolrInputDocument::getField — Retrieves a field by name

Описание

public SolrInputDocument::getField ( string $fieldName ) : SolrDocumentField

Retrieves a field in the document.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

Returns a SolrDocumentField object on success and FALSE on failure.


Retrieves the boost value for a particular field

  • « SolrInputDocument::getField
  • SolrInputDocument::getFieldCount »
  • PHP Manual
  • SolrInputDocument
  • Retrieves the boost value for a particular field

SolrInputDocument::getFieldBoost

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldBoost — Retrieves the boost value for a particular field

Описание

public SolrInputDocument::getFieldBoost ( string $fieldName ) : float

Retrieves the boost value for a particular field.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

Returns the boost value for the field or FALSE if there was an error.


Returns the number of fields in the document

  • « SolrInputDocument::getFieldBoost
  • SolrInputDocument::getFieldNames »
  • PHP Manual
  • SolrInputDocument
  • Returns the number of fields in the document

SolrInputDocument::getFieldCount

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldCount — Returns the number of fields in the document

Описание

public SolrInputDocument::getFieldCount ( void ) : int

Returns the number of fields in the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success или FALSE в случае возникновения ошибки.


Returns an array containing all the fields in the document

  • « SolrInputDocument::getFieldCount
  • SolrInputDocument::hasChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Returns an array containing all the fields in the document

SolrInputDocument::getFieldNames

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldNames — Returns an array containing all the fields in the document

Описание

public SolrInputDocument::getFieldNames ( void ) : array

Returns an array containing all the fields in the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and FALSE on failure.


Returns true if the document has any child documents

  • « SolrInputDocument::getFieldNames
  • SolrInputDocument::merge »
  • PHP Manual
  • SolrInputDocument
  • Returns true if the document has any child documents

SolrInputDocument::hasChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::hasChildDocuments — Returns true if the document has any child documents

Описание

public SolrInputDocument::hasChildDocuments ( void ) : bool

Checks whether the document has any child documents

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Merges one input document into another

  • « SolrInputDocument::hasChildDocuments
  • SolrInputDocument::reset »
  • PHP Manual
  • SolrInputDocument
  • Merges one input document into another

SolrInputDocument::merge

(PECL solr >= 0.9.2)

SolrInputDocument::merge — Merges one input document into another

Описание

public SolrInputDocument::merge ( SolrInputDocument $sourceDoc [, bool $overwrite = TRUE ] ) : bool

Merges one input document into another.

Список параметров

sourceDoc

The source document.

overwrite

If this is TRUE it will replace matching fields in the destination document.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. In the future, this will be modified to return the number of fields in the new document.


This is an alias of SolrInputDocument::clear

  • « SolrInputDocument::merge
  • SolrInputDocument::setBoost »
  • PHP Manual
  • SolrInputDocument
  • This is an alias of SolrInputDocument::clear

SolrInputDocument::reset

(PECL solr >= 0.9.2)

SolrInputDocument::reset — This is an alias of SolrInputDocument::clear

Описание

public SolrInputDocument::reset ( void ) : bool

This is an alias of SolrInputDocument::clear

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Sets the boost value for this document

  • « SolrInputDocument::reset
  • SolrInputDocument::setFieldBoost »
  • PHP Manual
  • SolrInputDocument
  • Sets the boost value for this document

SolrInputDocument::setBoost

(PECL solr >= 0.9.2)

SolrInputDocument::setBoost — Sets the boost value for this document

Описание

public SolrInputDocument::setBoost ( float $documentBoostValue ) : bool

Sets the boost value for this document.

Список параметров

documentBoostValue

The index-time boost value for this document.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Sets the index-time boost value for a field

  • « SolrInputDocument::setBoost
  • SolrInputDocument::sort »
  • PHP Manual
  • SolrInputDocument
  • Sets the index-time boost value for a field

SolrInputDocument::setFieldBoost

(PECL solr >= 0.9.2)

SolrInputDocument::setFieldBoost — Sets the index-time boost value for a field

Описание

public SolrInputDocument::setFieldBoost ( string $fieldName , float $fieldBoostValue ) : bool

Sets the index-time boost value for a field. This replaces the current boost value for this field.

Список параметров

fieldName

The name of the field.

fieldBoostValue

The index time boost value.


Sorts the fields within the document

  • « SolrInputDocument::setFieldBoost
  • SolrInputDocument::toArray »
  • PHP Manual
  • SolrInputDocument
  • Sorts the fields within the document

SolrInputDocument::sort

(PECL solr >= 0.9.2)

SolrInputDocument::sort — Sorts the fields within the document

Описание

public SolrInputDocument::sort ( int $sortOrderBy [, int $sortDirection = SolrInputDocument::SORT_ASC ] ) : bool

The fields are rearranged according to the specified criteria and sort direction

   Fields can be sorted by boost values, field names and number of values.

   The $order_by parameter must be one of :

   * SolrInputDocument::SORT_FIELD_NAME
   * SolrInputDocument::SORT_FIELD_BOOST_VALUE
   * SolrInputDocument::SORT_FIELD_VALUE_COUNT

   The sort direction can be one of :

   * SolrInputDocument::SORT_DEFAULT
   * SolrInputDocument::SORT_ASC
   * SolrInputDocument::SORT_DESC

Список параметров

sortOrderBy

The sort criteria

sortDirection

The sort direction

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Returns an array representation of the input document

  • « SolrInputDocument::sort
  • SolrDocument »
  • PHP Manual
  • SolrInputDocument
  • Returns an array representation of the input document

SolrInputDocument::toArray

(PECL solr >= 0.9.2)

SolrInputDocument::toArray — Returns an array representation of the input document

Описание

public SolrInputDocument::toArray ( void ) : array

Returns an array representation of the input document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array containing the fields. It returns FALSE on failure.


The SolrDocument class

(PECL solr >= 0.9.2)

Введение

Represents a Solr document retrieved from a query response.

Обзор классов

final SolrDocument implements ArrayAccess , Iterator , Serializable {
/* Константы */
const integer SORT_DEFAULT = 1 ;
const integer SORT_ASC = 1 ;
const integer SORT_DESC = 2 ;
const integer SORT_FIELD_NAME = 1 ;
const integer SORT_FIELD_VALUE_COUNT = 2 ;
const integer SORT_FIELD_BOOST_VALUE = 4 ;
/* Методы */
public addField ( string $fieldName , string $fieldValue ) : bool
public clear ( void ) : bool
public __clone ( void ) : void
public __construct ( void )
public current ( void ) : SolrDocumentField
public deleteField ( string $fieldName ) : bool
public __destruct ( void ) : void
public fieldExists ( string $fieldName ) : bool
public __get ( string $fieldName ) : SolrDocumentField
public getChildDocuments ( void ) : array
public getChildDocumentsCount ( void ) : int
public getField ( string $fieldName ) : SolrDocumentField
public getFieldCount ( void ) : int
public getFieldNames ( void ) : array
public getInputDocument ( void ) : SolrInputDocument
public hasChildDocuments ( void ) : bool
public __isset ( string $fieldName ) : bool
public key ( void ) : string
public merge ( SolrDocument $sourceDoc [, bool $overwrite = TRUE ] ) : bool
public next ( void ) : void
public offsetExists ( string $fieldName ) : bool
public offsetGet ( string $fieldName ) : SolrDocumentField
public offsetSet ( string $fieldName , string $fieldValue ) : void
public offsetUnset ( string $fieldName ) : void
public reset ( void ) : bool
public rewind ( void ) : void
public serialize ( void ) : string
public __set ( string $fieldName , string $fieldValue ) : bool
public sort ( int $sortOrderBy [, int $sortDirection = SolrDocument::SORT_ASC ] ) : bool
public toArray ( void ) : array
public unserialize ( string $serialized ) : void
public __unset ( string $fieldName ) : bool
public valid ( void ) : bool
}

Предопределенные константы

SolrDocument::SORT_DEFAULT

Default mode for sorting fields within the document.

SolrDocument::SORT_ASC

Sorts the fields in ascending order

SolrDocument::SORT_DESC

Sorts the fields in descending order

SolrDocument::SORT_FIELD_NAME

Sorts the fields by field name.

SolrDocument::SORT_FIELD_VALUE_COUNT

Sorts the fields by number of values in each field.

SolrDocument::SORT_FIELD_BOOST_VALUE

Sorts the fields by thier boost values.

Содержание

  • SolrDocument::addField — Adds a field to the document
  • SolrDocument::clear — Drops all the fields in the document
  • SolrDocument::__clone — Creates a copy of a SolrDocument object
  • SolrDocument::__construct — Constructor
  • SolrDocument::current — Retrieves the current field
  • SolrDocument::deleteField — Removes a field from the document
  • SolrDocument::__destruct — Destructor
  • SolrDocument::fieldExists — Checks if a field exists in the document
  • SolrDocument::__get — Access the field as a property
  • SolrDocument::getChildDocuments — Returns an array of child documents (SolrDocument)
  • SolrDocument::getChildDocumentsCount — Returns the number of child documents
  • SolrDocument::getField — Retrieves a field by name
  • SolrDocument::getFieldCount — Returns the number of fields in this document
  • SolrDocument::getFieldNames — Returns an array of fields names in the document
  • SolrDocument::getInputDocument — Returns a SolrInputDocument equivalent of the object
  • SolrDocument::hasChildDocuments — Checks whether the document has any child documents
  • SolrDocument::__isset — Checks if a field exists
  • SolrDocument::key — Retrieves the current key
  • SolrDocument::merge — Merges source to the current SolrDocument
  • SolrDocument::next — Moves the internal pointer to the next field
  • SolrDocument::offsetExists — Checks if a particular field exists
  • SolrDocument::offsetGet — Retrieves a field
  • SolrDocument::offsetSet — Adds a field to the document
  • SolrDocument::offsetUnset — Removes a field
  • SolrDocument::reset — This is an alias to SolrDocument::clear()
  • SolrDocument::rewind — Resets the internal pointer to the beginning
  • SolrDocument::serialize — Used for custom serialization
  • SolrDocument::__set — Adds another field to the document
  • SolrDocument::sort — Sorts the fields in the document
  • SolrDocument::toArray — Returns an array representation of the document
  • SolrDocument::unserialize — Custom serialization of SolrDocument objects
  • SolrDocument::__unset — Removes a field from the document
  • SolrDocument::valid — Checks if the current position internally is still valid


Adds a field to the document

  • « SolrDocument
  • SolrDocument::clear »
  • PHP Manual
  • SolrDocument
  • Adds a field to the document

SolrDocument::addField

(PECL solr >= 0.9.2)

SolrDocument::addField — Adds a field to the document

Описание

public SolrDocument::addField ( string $fieldName , string $fieldValue ) : bool

This method adds a field to the SolrDocument instance.

Список параметров

fieldName

The name of the field

fieldValue

The value of the field.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Drops all the fields in the document

  • « SolrDocument::addField
  • SolrDocument::__clone »
  • PHP Manual
  • SolrDocument
  • Drops all the fields in the document

SolrDocument::clear

(PECL solr >= 0.9.2)

SolrDocument::clear — Drops all the fields in the document

Описание

public SolrDocument::clear ( void ) : bool

Resets the current object. Discards all the fields and resets the document boost to zero.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Creates a copy of a SolrDocument object

  • « SolrDocument::clear
  • SolrDocument::__construct »
  • PHP Manual
  • SolrDocument
  • Creates a copy of a SolrDocument object

SolrDocument::__clone

(PECL solr >= 0.9.2)

SolrDocument::__clone — Creates a copy of a SolrDocument object

Описание

public SolrDocument::__clone ( void ) : void

Creates a copy of a SolrDocument object. Not to be called directly.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

None.


Constructor

  • « SolrDocument::__clone
  • SolrDocument::current »
  • PHP Manual
  • SolrDocument
  • Constructor

SolrDocument::__construct

(PECL solr >= 0.9.2)

SolrDocument::__construct — Constructor

Описание

public SolrDocument::__construct ( void )

Constructor for SolrDocument

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieves the current field

  • « SolrDocument::__construct
  • SolrDocument::deleteField »
  • PHP Manual
  • SolrDocument
  • Retrieves the current field

SolrDocument::current

(PECL solr >= 0.9.2)

SolrDocument::current — Retrieves the current field

Описание

public SolrDocument::current ( void ) : SolrDocumentField

Retrieves the current field

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the field


Removes a field from the document

  • « SolrDocument::current
  • SolrDocument::__destruct »
  • PHP Manual
  • SolrDocument
  • Removes a field from the document

SolrDocument::deleteField

(PECL solr >= 0.9.2)

SolrDocument::deleteField — Removes a field from the document

Описание

public SolrDocument::deleteField ( string $fieldName ) : bool

Removes a field from the document.

Список параметров

fieldName

Name of the field

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Destructor

  • « SolrDocument::deleteField
  • SolrDocument::fieldExists »
  • PHP Manual
  • SolrDocument
  • Destructor

SolrDocument::__destruct

(PECL solr >= 0.9.2)

SolrDocument::__destruct — Destructor

Описание

public SolrDocument::__destruct ( void ) : void

Destructor for SolrDocument.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Checks if a field exists in the document

  • « SolrDocument::__destruct
  • SolrDocument::__get »
  • PHP Manual
  • SolrDocument
  • Checks if a field exists in the document

SolrDocument::fieldExists

(PECL solr >= 0.9.2)

SolrDocument::fieldExists — Checks if a field exists in the document

Описание

public SolrDocument::fieldExists ( string $fieldName ) : bool

Checks if the requested field as a valid fieldname in the document.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

Returns TRUE if the field is present and FALSE if it does not.


Access the field as a property

  • « SolrDocument::fieldExists
  • SolrDocument::getChildDocuments »
  • PHP Manual
  • SolrDocument
  • Access the field as a property

SolrDocument::__get

(PECL solr >= 0.9.2)

SolrDocument::__get — Access the field as a property

Описание

public SolrDocument::__get ( string $fieldName ) : SolrDocumentField

Magic method for accessing the field as a property.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

Returns a SolrDocumentField instance.


Returns an array of child documents (SolrDocument)

  • « SolrDocument::__get
  • SolrDocument::getChildDocumentsCount »
  • PHP Manual
  • SolrDocument
  • Returns an array of child documents (SolrDocument)

SolrDocument::getChildDocuments

(PECL solr >= 2.3.0)

SolrDocument::getChildDocuments — Returns an array of child documents (SolrDocument)

Описание

public SolrDocument::getChildDocuments ( void ) : array

Returns an array of child documents (SolrDocument)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrDocument::hasChildDocuments() - Checks whether the document has any child documents
  • SolrDocument::getChildDocumentsCount() - Returns the number of child documents


Returns the number of child documents

  • « SolrDocument::getChildDocuments
  • SolrDocument::getField »
  • PHP Manual
  • SolrDocument
  • Returns the number of child documents

SolrDocument::getChildDocumentsCount

(PECL solr >= 2.3.0)

SolrDocument::getChildDocumentsCount — Returns the number of child documents

Описание

public SolrDocument::getChildDocumentsCount ( void ) : int

Returns the number of child documents

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrDocument::hasChildDocuments() - Checks whether the document has any child documents
  • SolrDocument::getChildDocuments() - Returns an array of child documents (SolrDocument)


Retrieves a field by name

  • « SolrDocument::getChildDocumentsCount
  • SolrDocument::getFieldCount »
  • PHP Manual
  • SolrDocument
  • Retrieves a field by name

SolrDocument::getField

(PECL solr >= 0.9.2)

SolrDocument::getField — Retrieves a field by name

Описание

public SolrDocument::getField ( string $fieldName ) : SolrDocumentField

Retrieves a field by name.

Список параметров

fieldName

Name of the field.

Возвращаемые значения

Returns a SolrDocumentField on success and FALSE on failure.


Returns the number of fields in this document

  • « SolrDocument::getField
  • SolrDocument::getFieldNames »
  • PHP Manual
  • SolrDocument
  • Returns the number of fields in this document

SolrDocument::getFieldCount

(PECL solr >= 0.9.2)

SolrDocument::getFieldCount — Returns the number of fields in this document

Описание

public SolrDocument::getFieldCount ( void ) : int

Returns the number of fields in this document. Multi-value fields are only counted once.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and FALSE on failure.


Returns an array of fields names in the document

  • « SolrDocument::getFieldCount
  • SolrDocument::getInputDocument »
  • PHP Manual
  • SolrDocument
  • Returns an array of fields names in the document

SolrDocument::getFieldNames

(PECL solr >= 0.9.2)

SolrDocument::getFieldNames — Returns an array of fields names in the document

Описание

public SolrDocument::getFieldNames ( void ) : array

Returns an array of fields names in the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array containing the names of the fields in this document.


Returns a SolrInputDocument equivalent of the object

  • « SolrDocument::getFieldNames
  • SolrDocument::hasChildDocuments »
  • PHP Manual
  • SolrDocument
  • Returns a SolrInputDocument equivalent of the object

SolrDocument::getInputDocument

(PECL solr >= 0.9.2)

SolrDocument::getInputDocument — Returns a SolrInputDocument equivalent of the object

Описание

public SolrDocument::getInputDocument ( void ) : SolrInputDocument

Returns a SolrInputDocument equivalent of the object. This is useful if one wishes to resubmit/update a document retrieved from a query.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a SolrInputDocument on success and NULL on failure.


Checks whether the document has any child documents

  • « SolrDocument::getInputDocument
  • SolrDocument::__isset »
  • PHP Manual
  • SolrDocument
  • Checks whether the document has any child documents

SolrDocument::hasChildDocuments

(PECL solr >= 2.3.0)

SolrDocument::hasChildDocuments — Checks whether the document has any child documents

Описание

public SolrDocument::hasChildDocuments ( void ) : bool

Checks whether the document has any child documents

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrDocument::getChildDocuments() - Returns an array of child documents (SolrDocument)
  • SolrDocument::getChildDocumentsCount() - Returns the number of child documents


Checks if a field exists

  • « SolrDocument::hasChildDocuments
  • SolrDocument::key »
  • PHP Manual
  • SolrDocument
  • Checks if a field exists

SolrDocument::__isset

(PECL solr >= 0.9.2)

SolrDocument::__isset — Checks if a field exists

Описание

public SolrDocument::__isset ( string $fieldName ) : bool

Checks if a field exists

Список параметров

fieldName

Name of the field.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Retrieves the current key

  • « SolrDocument::__isset
  • SolrDocument::merge »
  • PHP Manual
  • SolrDocument
  • Retrieves the current key

SolrDocument::key

(PECL solr >= 0.9.2)

SolrDocument::key — Retrieves the current key

Описание

public SolrDocument::key ( void ) : string

Retrieves the current key.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current key.


Merges source to the current SolrDocument

  • « SolrDocument::key
  • SolrDocument::next »
  • PHP Manual
  • SolrDocument
  • Merges source to the current SolrDocument

SolrDocument::merge

(PECL solr >= 0.9.2)

SolrDocument::merge — Merges source to the current SolrDocument

Описание

public SolrDocument::merge ( SolrDocument $sourceDoc [, bool $overwrite = TRUE ] ) : bool

Merges source to the current SolrDocument.

Список параметров

sourceDoc

The source document.

overwrite

If this is TRUE then fields with the same name in the destination document will be overwritten.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Moves the internal pointer to the next field

  • « SolrDocument::merge
  • SolrDocument::offsetExists »
  • PHP Manual
  • SolrDocument
  • Moves the internal pointer to the next field

SolrDocument::next

(PECL solr >= 0.9.2)

SolrDocument::next — Moves the internal pointer to the next field

Описание

public SolrDocument::next ( void ) : void

Moves the internal pointer to the next field.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This method has no return value.


Checks if a particular field exists

  • « SolrDocument::next
  • SolrDocument::offsetGet »
  • PHP Manual
  • SolrDocument
  • Checks if a particular field exists

SolrDocument::offsetExists

(PECL solr >= 0.9.2)

SolrDocument::offsetExists — Checks if a particular field exists

Описание

public SolrDocument::offsetExists ( string $fieldName ) : bool

Checks if a particular field exists. This is used when the object is treated as an array.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Retrieves a field

  • « SolrDocument::offsetExists
  • SolrDocument::offsetSet »
  • PHP Manual
  • SolrDocument
  • Retrieves a field

SolrDocument::offsetGet

(PECL solr >= 0.9.2)

SolrDocument::offsetGet — Retrieves a field

Описание

public SolrDocument::offsetGet ( string $fieldName ) : SolrDocumentField

This is used to retrieve the field when the object is treated as an array.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

Returns a SolrDocumentField object.


Adds a field to the document

  • « SolrDocument::offsetGet
  • SolrDocument::offsetUnset »
  • PHP Manual
  • SolrDocument
  • Adds a field to the document

SolrDocument::offsetSet

(PECL solr >= 0.9.2)

SolrDocument::offsetSet — Adds a field to the document

Описание

public SolrDocument::offsetSet ( string $fieldName , string $fieldValue ) : void

Used when the object is treated as an array to add a field to the document.

Список параметров

fieldName

The name of the field.

fieldValue

The value for this field.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Removes a field

  • « SolrDocument::offsetSet
  • SolrDocument::reset »
  • PHP Manual
  • SolrDocument
  • Removes a field

SolrDocument::offsetUnset

(PECL solr >= 0.9.2)

SolrDocument::offsetUnset — Removes a field

Описание

public SolrDocument::offsetUnset ( string $fieldName ) : void

Removes a field from the document.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

No return value.


This is an alias to SolrDocument::clear()

  • « SolrDocument::offsetUnset
  • SolrDocument::rewind »
  • PHP Manual
  • SolrDocument
  • This is an alias to SolrDocument::clear()

SolrDocument::reset

(PECL solr >= 0.9.2)

SolrDocument::reset — This is an alias to SolrDocument::clear()

Описание

public SolrDocument::reset ( void ) : bool

This is an alias to SolrDocument::clear()

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Resets the internal pointer to the beginning

  • « SolrDocument::reset
  • SolrDocument::serialize »
  • PHP Manual
  • SolrDocument
  • Resets the internal pointer to the beginning

SolrDocument::rewind

(PECL solr >= 0.9.2)

SolrDocument::rewind — Resets the internal pointer to the beginning

Описание

public SolrDocument::rewind ( void ) : void

Resets the internal pointer to the beginning.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This method has no return value.


Used for custom serialization

  • « SolrDocument::rewind
  • SolrDocument::__set »
  • PHP Manual
  • SolrDocument
  • Used for custom serialization

SolrDocument::serialize

(PECL solr >= 0.9.2)

SolrDocument::serialize — Used for custom serialization

Описание

public SolrDocument::serialize ( void ) : string

Used for custom serialization.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string representing the serialized Solr document.


Adds another field to the document

  • « SolrDocument::serialize
  • SolrDocument::sort »
  • PHP Manual
  • SolrDocument
  • Adds another field to the document

SolrDocument::__set

(PECL solr >= 0.9.2)

SolrDocument::__set — Adds another field to the document

Описание

public SolrDocument::__set ( string $fieldName , string $fieldValue ) : bool

Adds another field to the document. Used to set the fields as new properties.

Список параметров

fieldName

Name of the field.

fieldValue

Field value.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Sorts the fields in the document

  • « SolrDocument::__set
  • SolrDocument::toArray »
  • PHP Manual
  • SolrDocument
  • Sorts the fields in the document

SolrDocument::sort

(PECL solr >= 0.9.2)

SolrDocument::sort — Sorts the fields in the document

Описание

public SolrDocument::sort ( int $sortOrderBy [, int $sortDirection = SolrDocument::SORT_ASC ] ) : bool

The fields are rearranged according to the specified criteria and sort direction

   Fields can be sorted by boost values, field names and number of values.

   The sortOrderBy parameter must be one of :

   * SolrDocument::SORT_FIELD_NAME
   * SolrDocument::SORT_FIELD_BOOST_VALUE
   * SolrDocument::SORT_FIELD_VALUE_COUNT

   The sortDirection can be one of :

   * SolrDocument::SORT_DEFAULT
   * SolrDocument::SORT_ASC
   * SolrDocument::SORT_DESC

   The default way is to sort in ascending order.

Список параметров

sortOrderBy

The sort criteria.

sortDirection

The sort direction.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Returns an array representation of the document

  • « SolrDocument::sort
  • SolrDocument::unserialize »
  • PHP Manual
  • SolrDocument
  • Returns an array representation of the document

SolrDocument::toArray

(PECL solr >= 0.9.2)

SolrDocument::toArray — Returns an array representation of the document

Описание

public SolrDocument::toArray ( void ) : array

Returns an array representation of the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array representation of the document.

Примеры

Пример #1 SolrDocument::toArray() example

<?php

$doc = new SolrDocument();

$doc->addField('id', 1123);

$doc->features = "PHP Client Side";
$doc->features = "Fast development cycles";

$doc['cat'] = 'Software';
$doc['cat'] = 'Custom Search';
$doc->cat   = 'Information Technology';

print_r($doc->toArray());

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [document_boost] => 0
    [field_count] => 3
    [fields] => Array
        (
            [0] => SolrDocumentField Object
                (
                    [name] => id
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => 1123
                        )

                )

            [1] => SolrDocumentField Object
                (
                    [name] => features
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => PHP Client Side
                            [1] => Fast development cycles
                        )

                )

            [2] => SolrDocumentField Object
                (
                    [name] => cat
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => Software
                            [1] => Custom Search
                            [2] => Information Technology
                        )

                )

        )

)


Custom serialization of SolrDocument objects

  • « SolrDocument::toArray
  • SolrDocument::__unset »
  • PHP Manual
  • SolrDocument
  • Custom serialization of SolrDocument objects

SolrDocument::unserialize

(PECL solr >= 0.9.2)

SolrDocument::unserialize — Custom serialization of SolrDocument objects

Описание

public SolrDocument::unserialize ( string $serialized ) : void

Custom serialization of SolrDocument objects

Список параметров

serialized

An XML representation of the document.

Возвращаемые значения

None.


Removes a field from the document

  • « SolrDocument::unserialize
  • SolrDocument::valid »
  • PHP Manual
  • SolrDocument
  • Removes a field from the document

SolrDocument::__unset

(PECL solr >= 0.9.2)

SolrDocument::__unset — Removes a field from the document

Описание

public SolrDocument::__unset ( string $fieldName ) : bool

Removes a field from the document when the field is access as an object property.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Checks if the current position internally is still valid

  • « SolrDocument::__unset
  • SolrDocumentField »
  • PHP Manual
  • SolrDocument
  • Checks if the current position internally is still valid

SolrDocument::valid

(PECL solr >= 0.9.2)

SolrDocument::valid — Checks if the current position internally is still valid

Описание

public SolrDocument::valid ( void ) : bool

Checks if the current position internally is still valid. It is used during foreach operations.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success and FALSE if the current position is no longer valid.


The SolrDocumentField class

(PECL solr >= 0.9.2)

Введение

This represents a field in a Solr document. All its properties are read-only.

Обзор классов

final SolrDocumentField {
/* Свойства */
readonly public string $name ;
readonly public float $boost ;
readonly public array $values ;
/* Методы */
public __construct ( void )
public __destruct ( void ) : void
}

Свойства

name

The name of the field.

boost

The boost value for the field

values

An array of values for this field

Содержание

  • SolrDocumentField::__construct — Конструктор
  • SolrDocumentField::__destruct — Деструктор


Конструктор

  • « SolrDocumentField
  • SolrDocumentField::__destruct »
  • PHP Manual
  • SolrDocumentField
  • Конструктор

SolrDocumentField::__construct

(PECL solr >= 0.9.2)

SolrDocumentField::__construct — Конструктор

Описание

public SolrDocumentField::__construct ( void )

Конструктор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет.


Деструктор

  • « SolrDocumentField::__construct
  • SolrObject »
  • PHP Manual
  • SolrDocumentField
  • Деструктор

SolrDocumentField::__destruct

(PECL solr >= 0.9.2)

SolrDocumentField::__destruct — Деструктор

Описание

public SolrDocumentField::__destruct ( void ) : void

Деструктор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет.


Класс SolrObject

(PECL solr >= 0.9.2)

Введение

Объект, свойства которого можно также получить с помощью синтаксиса массива. Все его свойства доступны только для чтения.

Обзор классов

final SolrObject implements ArrayAccess {
/* Методы */
public __construct ( void )
public __destruct ( void ) : void
public getPropertyNames ( void ) : array
public offsetExists ( string $property_name ) : bool
public offsetGet ( string $property_name ) : mixed
public offsetSet ( string $property_name , string $property_value ) : void
public offsetUnset ( string $property_name ) : void
}

Содержание

  • SolrObject::__construct — Creates Solr object
  • SolrObject::__destruct — Destructor
  • SolrObject::getPropertyNames — Returns an array of all the names of the properties
  • SolrObject::offsetExists — Checks if the property exists
  • SolrObject::offsetGet — Used to retrieve a property
  • SolrObject::offsetSet — Sets the value for a property
  • SolrObject::offsetUnset — Unsets the value for the property


Creates Solr object

  • « SolrObject
  • SolrObject::__destruct »
  • PHP Manual
  • SolrObject
  • Creates Solr object

SolrObject::__construct

(PECL solr >= 0.9.2)

SolrObject::__construct — Creates Solr object

Описание

public SolrObject::__construct ( void )

Creates Solr object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

None

Примеры

Пример #1 SolrObject::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Destructor

  • « SolrObject::__construct
  • SolrObject::getPropertyNames »
  • PHP Manual
  • SolrObject
  • Destructor

SolrObject::__destruct

(PECL solr >= 0.9.2)

SolrObject::__destruct — Destructor

Описание

public SolrObject::__destruct ( void ) : void

The destructor

Список параметров

У этой функции нет параметров.

Возвращаемые значения

None.


Returns an array of all the names of the properties

  • « SolrObject::__destruct
  • SolrObject::offsetExists »
  • PHP Manual
  • SolrObject
  • Returns an array of all the names of the properties

SolrObject::getPropertyNames

(PECL solr >= 0.9.2)

SolrObject::getPropertyNames — Returns an array of all the names of the properties

Описание

public SolrObject::getPropertyNames ( void ) : array

Returns an array of all the names of the properties

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array.


Checks if the property exists

  • « SolrObject::getPropertyNames
  • SolrObject::offsetGet »
  • PHP Manual
  • SolrObject
  • Checks if the property exists

SolrObject::offsetExists

(PECL solr >= 0.9.2)

SolrObject::offsetExists — Checks if the property exists

Описание

public SolrObject::offsetExists ( string $property_name ) : bool

Checks if the property exists. This is used when the object is treated as an array.

Список параметров

property_name

The name of the property.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Used to retrieve a property

  • « SolrObject::offsetExists
  • SolrObject::offsetSet »
  • PHP Manual
  • SolrObject
  • Used to retrieve a property

SolrObject::offsetGet

(PECL solr >= 0.9.2)

SolrObject::offsetGet — Used to retrieve a property

Описание

public SolrObject::offsetGet ( string $property_name ) : mixed

Used to get the value of a property. This is used when the object is treated as an array.

Список параметров

property_name

Name of the property.

Возвращаемые значения

Returns the property value.


Sets the value for a property

  • « SolrObject::offsetGet
  • SolrObject::offsetUnset »
  • PHP Manual
  • SolrObject
  • Sets the value for a property

SolrObject::offsetSet

(PECL solr >= 0.9.2)

SolrObject::offsetSet — Sets the value for a property

Описание

public SolrObject::offsetSet ( string $property_name , string $property_value ) : void

Sets the value for a property. This is used when the object is treated as an array. This object is read-only. This should never be attempted.

Список параметров

property_name

The name of the property.

property_value

The new value.

Возвращаемые значения

None.


Unsets the value for the property

  • « SolrObject::offsetSet
  • SolrClient »
  • PHP Manual
  • SolrObject
  • Unsets the value for the property

SolrObject::offsetUnset

(PECL solr >= 0.9.2)

SolrObject::offsetUnset — Unsets the value for the property

Описание

public SolrObject::offsetUnset ( string $property_name ) : void

Unsets the value for the property. This is used when the object is treated as an array. This object is read-only. This should never be attempted.

Список параметров

property_name

The name of the property.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 SolrObject::offsetUnset() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The SolrClient class

(PECL solr >= 0.9.2)

Введение

Used to send requests to a Solr server. Currently, cloning and serialization of SolrClient instances is not supported.

Обзор классов

final SolrClient {
/* Константы */
const integer SEARCH_SERVLET_TYPE = 1 ;
const integer UPDATE_SERVLET_TYPE = 2 ;
const integer THREADS_SERVLET_TYPE = 4 ;
const integer PING_SERVLET_TYPE = 8 ;
const integer TERMS_SERVLET_TYPE = 16 ;
const integer SYSTEM_SERVLET_TYPE = 32 ;
const string DEFAULT_SEARCH_SERVLET = select ;
const string DEFAULT_UPDATE_SERVLET = update ;
const string DEFAULT_THREADS_SERVLET = admin/threads ;
const string DEFAULT_PING_SERVLET = admin/ping ;
const string DEFAULT_TERMS_SERVLET = terms ;
const string DEFAULT_SYSTEM_SERVLET = admin/system ;
/* Методы */
public addDocument ( SolrInputDocument $doc [, bool $overwrite = TRUE [, int $commitWithin = 0 ]] ) : SolrUpdateResponse
public addDocuments ( array $docs [, bool $overwrite = TRUE [, int $commitWithin = 0 ]] ) : void
public commit ([ bool $softCommit = FALSE [, bool $waitSearcher = TRUE [, bool $expungeDeletes = FALSE ]]] ) : SolrUpdateResponse
public __construct ( array $clientOptions )
public deleteById ( string $id ) : SolrUpdateResponse
public deleteByIds ( array $ids ) : SolrUpdateResponse
public deleteByQueries ( array $queries ) : SolrUpdateResponse
public deleteByQuery ( string $query ) : SolrUpdateResponse
public __destruct ( void ) : void
public getById ( string $id ) : SolrQueryResponse
public getByIds ( array $ids ) : SolrQueryResponse
public getDebug ( void ) : string
public getOptions ( void ) : array
public optimize ([ int $maxSegments = 1 [, bool $softCommit = TRUE [, bool $waitSearcher = TRUE ]]] ) : SolrUpdateResponse
public ping ( void ) : SolrPingResponse
public query ( SolrParams $query ) : SolrQueryResponse
public request ( string $raw_request ) : SolrUpdateResponse
public rollback ( void ) : SolrUpdateResponse
public setResponseWriter ( string $responseWriter ) : void
public setServlet ( int $type , string $value ) : bool
public system ( void ) : void
public threads ( void ) : void
}

Предопределенные константы

SolrClient::SEARCH_SERVLET_TYPE

Used when updating the search servlet.

SolrClient::UPDATE_SERVLET_TYPE

Used when updating the update servlet.

SolrClient::THREADS_SERVLET_TYPE

Used when updating the threads servlet.

SolrClient::PING_SERVLET_TYPE

Used when updating the ping servlet.

SolrClient::TERMS_SERVLET_TYPE

Used when updating the terms servlet.

SolrClient::SYSTEM_SERVLET_TYPE

Used when retrieving system information from the system servlet.

SolrClient::DEFAULT_SEARCH_SERVLET

This is the initial value for the search servlet.

SolrClient::DEFAULT_UPDATE_SERVLET

This is the initial value for the update servlet.

SolrClient::DEFAULT_THREADS_SERVLET

This is the initial value for the threads servlet.

SolrClient::DEFAULT_PING_SERVLET

This is the initial value for the ping servlet.

SolrClient::DEFAULT_TERMS_SERVLET

This is the initial value for the terms servlet used for the TermsComponent

SolrClient::DEFAULT_SYSTEM_SERVLET

This is the initial value for the system servlet used to obtain Solr Server information

Содержание

  • SolrClient::addDocument — Adds a document to the index
  • SolrClient::addDocuments — Adds a collection of SolrInputDocument instances to the index
  • SolrClient::commit — Finalizes all add/deletes made to the index
  • SolrClient::__construct — Constructor for the SolrClient object
  • SolrClient::deleteById — Delete by Id
  • SolrClient::deleteByIds — Deletes by Ids
  • SolrClient::deleteByQueries — Removes all documents matching any of the queries
  • SolrClient::deleteByQuery — Deletes all documents matching the given query
  • SolrClient::__destruct — Destructor for SolrClient
  • SolrClient::getById — Get Document By Id. Utilizes Solr Realtime Get (RTG)
  • SolrClient::getByIds — Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)
  • SolrClient::getDebug — Returns the debug data for the last connection attempt
  • SolrClient::getOptions — Returns the client options set internally
  • SolrClient::optimize — Defragments the index
  • SolrClient::ping — Checks if Solr server is still up
  • SolrClient::query — Sends a query to the server
  • SolrClient::request — Sends a raw update request
  • SolrClient::rollback — Rollbacks all add/deletes made to the index since the last commit
  • SolrClient::setResponseWriter — Sets the response writer used to prepare the response from Solr
  • SolrClient::setServlet — Changes the specified servlet type to a new value
  • SolrClient::system — Retrieve Solr Server information
  • SolrClient::threads — Checks the threads status


Adds a document to the index

  • « SolrClient
  • SolrClient::addDocuments »
  • PHP Manual
  • SolrClient
  • Adds a document to the index

SolrClient::addDocument

(PECL solr >= 0.9.2)

SolrClient::addDocument — Adds a document to the index

Описание

public SolrClient::addDocument ( SolrInputDocument $doc [, bool $overwrite = TRUE [, int $commitWithin = 0 ]] ) : SolrUpdateResponse

This method adds a document to the index.

Список параметров

doc

The SolrInputDocument instance.

overwrite

Whether to overwrite existing document or not. If FALSE there will be duplicates (several documents with the same ID).

Внимание

PECL Solr < 2.0 $allowDups was used instead of $overwrite, which does the same functionality with exact opposite bool flag.

$allowDups = false is the same as $overwrite = true

commitWithin

Number of milliseconds within which to auto commit this document. Available since Solr 1.4 . Default (0) means disabled.

When this value specified, it leaves the control of when to do the commit to Solr itself, optimizing number of commits to a minimum while still fulfilling the update latency requirements, and Solr will automatically do a commit when the oldest add in the buffer is due.

Возвращаемые значения

Returns a SolrUpdateResponse object or throws an Exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Примеры

Пример #1 SolrClient::addDocument() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$updateResponse = $client->addDocument($doc);

// you will have to commit changes to be written if you didn't use $commitWithin
$client->commit();

print_r($updateResponse->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

)

Пример #2 SolrClient::addDocument() example 2

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

// No need to call commit() because $commitWithin is passed, so Solr Server will auto commit within 10 seconds
$updateResponse = $client->addDocument($doc, false, 10000);

print_r($updateResponse->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

)

Смотрите также

  • SolrClient::addDocuments() - Adds a collection of SolrInputDocument instances to the index
  • SolrClient::commit() - Finalizes all add/deletes made to the index


Adds a collection of SolrInputDocument instances to the index

  • « SolrClient::addDocument
  • SolrClient::commit »
  • PHP Manual
  • SolrClient
  • Adds a collection of SolrInputDocument instances to the index

SolrClient::addDocuments

(PECL solr >= 0.9.2)

SolrClient::addDocuments — Adds a collection of SolrInputDocument instances to the index

Описание

public SolrClient::addDocuments ( array $docs [, bool $overwrite = TRUE [, int $commitWithin = 0 ]] ) : void

Adds a collection of documents to the index.

Список параметров

docs

An array containing the collection of SolrInputDocument instances. This array must be an actual variable.

overwrite

Whether to overwrite existing documents or not. If FALSE there will be duplicates (several documents with the same ID).

Внимание

PECL Solr < 2.0 $allowDups was used instead of $overwrite, which does the same functionality with exact opposite bool flag.

$allowDups = false is the same as $overwrite = true

commitWithin

Number of milliseconds within which to auto commit this document. Available since Solr 1.4 . Default (0) means disabled.

When this value specified, it leaves the control of when to do the commit to Solr itself, optimizing number of commits to a minimum while still fulfilling the update latency requirements, and Solr will automatically do a commit when the oldest add in the buffer is due.

Возвращаемые значения

Returns a SolrUpdateResponse object or throws an exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Примеры

Пример #1 SolrClient::addDocuments() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$doc2 = clone $doc;

$doc2->deleteField('id');
$doc2->addField('id', 334456);

$docs = array($doc, $doc2);

$updateResponse = $client->addDocuments($docs);

// no changes will be written to disk unless $commitWithin is passed or SolrClient::commit is called

print_r($updateResponse->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 2
        )

)

Смотрите также

  • SolrClient::addDocument() - Adds a document to the index
  • SolrClient::commit() - Finalizes all add/deletes made to the index


Finalizes all add/deletes made to the index

  • « SolrClient::addDocuments
  • SolrClient::__construct »
  • PHP Manual
  • SolrClient
  • Finalizes all add/deletes made to the index

SolrClient::commit

(PECL solr >= 0.9.2)

SolrClient::commit — Finalizes all add/deletes made to the index

Описание

public SolrClient::commit ([ bool $softCommit = FALSE [, bool $waitSearcher = TRUE [, bool $expungeDeletes = FALSE ]]] ) : SolrUpdateResponse

This method finalizes all add/deletes made to the index.

Список параметров

softCommit

This will refresh the 'view' of the index in a more performant manner, but without "on-disk" guarantees. (Solr4.0+)

A soft commit is much faster since it only makes index changes visible and does not fsync index files or write a new index descriptor. If the JVM crashes or there is a loss of power, changes that occurred after the last hard commit will be lost. Search collections that have near-real-time requirements (that want index changes to be quickly visible to searches) will want to soft commit often but hard commit less frequently.

waitSearcher

block until a new searcher is opened and registered as the main query searcher, making the changes visible.

expungeDeletes

Merge segments with deletes away. (Solr1.4+)

Возвращаемые значения

Returns a SolrUpdateResponse object on success or throws an exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Список изменений

Версия | Описание
1.1.0, 2.0.0 | $maxSegments removed
2.0.0b | API Changed: SolrClient::commit ([ int $maxSegments = 0 [, bool $softCommit = false [, bool $waitSearcher = true[, bool $expungeDeletes = false ]]] )
0.9.2 | Signature: SolrClient::commit ([ int $maxSegments = 1 [, bool $waitFlush = true [, bool $waitSearcher = true ]]] ). $waitFlush: Block until index changes are flushed to disk.

Примечания

Внимание

PECL Solr >= 2.0 only supports Solr Server >= 4.0

Смотрите также

  • SolrClient::optimize() - Defragments the index
  • SolrClient::rollback() - Rollbacks all add/deletes made to the index since the last commit


Constructor for the SolrClient object

  • « SolrClient::commit
  • SolrClient::deleteById »
  • PHP Manual
  • SolrClient
  • Constructor for the SolrClient object

SolrClient::__construct

(PECL solr >= 0.9.2)

SolrClient::__construct — Constructor for the SolrClient object

Описание

public SolrClient::__construct ( array $clientOptions )

Constructor for the SolrClient object

Список параметров

clientOptions

This is an array containing one of the following keys :

- secure          (Boolean value indicating whether or not to connect in secure mode)
 - hostname        (The hostname for the Solr server)
 - port            (The port number)
 - path            (The path to solr)
 - wt              (The name of the response writer e.g. xml, json)
 - login           (The username used for HTTP Authentication, if any)
 - password        (The HTTP Authentication password)
 - proxy_host      (The hostname for the proxy server, if any)
 - proxy_port      (The proxy port)
 - proxy_login     (The proxy username)
 - proxy_password  (The proxy password)
 - timeout         (This is maximum time in seconds allowed for the http data transfer operation. Default is 30 seconds)
 - ssl_cert        (File name to a PEM-formatted file containing the private key + private certificate (concatenated in that order) )
 - ssl_key         (File name to a PEM-formatted private key file only)
 - ssl_keypassword (Password for private key)
 - ssl_cainfo      (Name of file holding one or more CA certificates to verify peer with)
 - ssl_capath      (Name of directory holding multiple CA certificates to verify peer with )

 Please note the if the ssl_cert file only contains the private certificate, you have to specify a separate ssl_key file

 The ssl_keypassword option is required if the ssl_cert or ssl_key options are set.

Ошибки

Throws SolrIllegalArgumentException on failure.

Примеры

Пример #1 SolrClient::__construct() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_PATH_TO_SOLR,
    'wt'       => 'xml',
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$updateResponse = $client->addDocument($doc);

?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • SolrClient::getOptions() - Returns the client options set internally


Delete by Id

  • « SolrClient::__construct
  • SolrClient::deleteByIds »
  • PHP Manual
  • SolrClient
  • Delete by Id

SolrClient::deleteById

(PECL solr >= 0.9.2)

SolrClient::deleteById — Delete by Id

Описание

public SolrClient::deleteById ( string $id ) : SolrUpdateResponse

Deletes the document with the specified ID. Where ID is the value of the uniqueKey field declared in the schema

Список параметров

id

The value of the uniqueKey field declared in the schema

Возвращаемые значения

Returns a SolrUpdateResponse on success and throws an exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Смотрите также

  • SolrClient::deleteByIds() - Deletes by Ids
  • SolrClient::deleteByQuery() - Deletes all documents matching the given query
  • SolrClient::deleteByQueries() - Removes all documents matching any of the queries


Deletes by Ids

  • « SolrClient::deleteById
  • SolrClient::deleteByQueries »
  • PHP Manual
  • SolrClient
  • Deletes by Ids

SolrClient::deleteByIds

(PECL solr >= 0.9.2)

SolrClient::deleteByIds — Deletes by Ids

Описание

public SolrClient::deleteByIds ( array $ids ) : SolrUpdateResponse

Deletes a collection of documents with the specified set of ids.

Список параметров

ids

An array of IDs representing the uniqueKey field declared in the schema for each document to be deleted. This must be an actual php variable.

Возвращаемые значения

Returns a SolrUpdateResponse on success and throws an exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Смотрите также

  • SolrClient::deleteById() - Delete by Id
  • SolrClient::deleteByQuery() - Deletes all documents matching the given query
  • SolrClient::deleteByQueries() - Removes all documents matching any of the queries


Removes all documents matching any of the queries

  • « SolrClient::deleteByIds
  • SolrClient::deleteByQuery »
  • PHP Manual
  • SolrClient
  • Removes all documents matching any of the queries

SolrClient::deleteByQueries

(PECL solr >= 0.9.2)

SolrClient::deleteByQueries — Removes all documents matching any of the queries

Описание

public SolrClient::deleteByQueries ( array $queries ) : SolrUpdateResponse

Removes all documents matching any of the queries

Список параметров

queries

The array of queries. This must be an actual php variable.

Возвращаемые значения

Returns a SolrUpdateResponse on success and throws a SolrClientException on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Смотрите также

  • SolrClient::deleteById() - Delete by Id
  • SolrClient::deleteByIds() - Deletes by Ids
  • SolrClient::deleteByQuery() - Deletes all documents matching the given query


Deletes all documents matching the given query

  • « SolrClient::deleteByQueries
  • SolrClient::__destruct »
  • PHP Manual
  • SolrClient
  • Deletes all documents matching the given query

SolrClient::deleteByQuery

(PECL solr >= 0.9.2)

SolrClient::deleteByQuery — Deletes all documents matching the given query

Описание

public SolrClient::deleteByQuery ( string $query ) : SolrUpdateResponse

Deletes all documents matching the given query.

Список параметров

query

The query

Возвращаемые значения

Returns a SolrUpdateResponse on success and throws an exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Примеры

Пример #1 SolrQuery::deleteByQuery() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

//This will erase the entire index
$client->deleteByQuery("*:*");
$client->commit();

?>

Смотрите также

  • SolrClient::deleteById() - Delete by Id
  • SolrClient::deleteByIds() - Deletes by Ids
  • SolrClient::deleteByQueries() - Removes all documents matching any of the queries


Destructor for SolrClient

  • « SolrClient::deleteByQuery
  • SolrClient::getById »
  • PHP Manual
  • SolrClient
  • Destructor for SolrClient

SolrClient::__destruct

(PECL solr >= 0.9.2)

SolrClient::__destruct — Destructor for SolrClient

Описание

public SolrClient::__destruct ( void ) : void

Destructor

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Destructor for SolrClient

Смотрите также

  • SolrClient::__construct() - Constructor for the SolrClient object


Get Document By Id. Utilizes Solr Realtime Get (RTG)

  • « SolrClient::__destruct
  • SolrClient::getByIds »
  • PHP Manual
  • SolrClient
  • Get Document By Id. Utilizes Solr Realtime Get (RTG)

SolrClient::getById

(PECL solr >= 2.2.0)

SolrClient::getById — Get Document By Id. Utilizes Solr Realtime Get (RTG)

Описание

public SolrClient::getById ( string $id ) : SolrQueryResponse

Get Document By Id. Utilizes Solr Realtime Get (RTG).

Список параметров

id

Document ID

Возвращаемые значения

SolrQueryResponse

Примеры

Пример #1 SolrClient::getById() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);
$response = $client->getById('GB18030TEST');
print_r($response->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [doc] => SolrObject Object
        (
            [id] => GB18030TEST
            [name] => Array
                (
                    [0] => Test with some GB18030 encoded characters
                )

            [features] => Array
                (
                    [0] => No accents here
                    [1] => ??????
                    [2] => This is a feature (translated)
                    [3] => ?????????
                    [4] => This document is very shiny (translated)
                )

            [price] => Array
                (
                    [0] => 0
                )

            [inStock] => Array
                (
                    [0] => 1
                )

            [_version_] => 1510294336239042560
        )

)

Смотрите также

  • SolrClient::getByIds() - Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)


Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)

  • « SolrClient::getById
  • SolrClient::getDebug »
  • PHP Manual
  • SolrClient
  • Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)

SolrClient::getByIds

(PECL solr >= 2.2.0)

SolrClient::getByIds — Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)

Описание

public SolrClient::getByIds ( array $ids ) : SolrQueryResponse

Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).

Список параметров

ids

Document ids

Возвращаемые значения

SolrQueryResponse

Примеры

Пример #1 SolrClient::getByIds() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);
$response = $client->getByIds(['GB18030TEST', '6H500F0']);

print_r($response->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [response] => SolrObject Object
        (
            [numFound] => 2
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => GB18030TEST
                            [name] => Array
                                (
                                    [0] => Test with some GB18030 encoded characters
                                )

                            [features] => Array
                                (
                                    [0] => No accents here
                                    [1] => ??????
                                    [2] => This is a feature (translated)
                                    [3] => ?????????
                                    [4] => This document is very shiny (translated)
                                )

                            [price] => Array
                                (
                                    [0] => 0
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [_version_] => 1510294336239042560
                        )

                    [1] => SolrObject Object
                        (
                            [id] => 6H500F0
                            [name] => Array
                                (
                                    [0] => Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300
                                )

                            [manu] => Array
                                (
                                    [0] => Maxtor Corp.
                                )

                            [manu_id_s] => maxtor
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => SATA 3.0Gb/s, NCQ
                                    [1] => 8.5ms seek
                                    [2] => 16MB cache
                                )

                            [price] => Array
                                (
                                    [0] => 350
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 45.17614,-93.87341
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [_version_] => 1510294336449806336
                        )

                )

        )

)

Смотрите также

  • SolrClient::getById() - Get Document By Id. Utilizes Solr Realtime Get (RTG)


Returns the debug data for the last connection attempt

  • « SolrClient::getByIds
  • SolrClient::getOptions »
  • PHP Manual
  • SolrClient
  • Returns the debug data for the last connection attempt

SolrClient::getDebug

(PECL solr >= 0.9.7)

SolrClient::getDebug — Returns the debug data for the last connection attempt

Описание

public SolrClient::getDebug ( void ) : string

Returns the debug data for the last connection attempt

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string on success and null if there is nothing to return.


Returns the client options set internally

  • « SolrClient::getDebug
  • SolrClient::optimize »
  • PHP Manual
  • SolrClient
  • Returns the client options set internally

SolrClient::getOptions

(PECL solr >= 0.9.6)

SolrClient::getOptions — Returns the client options set internally

Описание

public SolrClient::getOptions ( void ) : array

Returns the client options set internally. Very useful for debugging. The values returned are readonly and can only be set when the object is instantiated.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array containing all the options for the SolrClient object set internally.

Смотрите также

  • SolrClient::__construct() - Constructor for the SolrClient object


Defragments the index

  • « SolrClient::getOptions
  • SolrClient::ping »
  • PHP Manual
  • SolrClient
  • Defragments the index

SolrClient::optimize

(PECL solr >= 0.9.2)

SolrClient::optimize — Defragments the index

Описание

public SolrClient::optimize ([ int $maxSegments = 1 [, bool $softCommit = TRUE [, bool $waitSearcher = TRUE ]]] ) : SolrUpdateResponse

Defragments the index for faster search performance.

Список параметров

maxSegments

Optimizes down to at most this number of segments. Since Solr 1.3

softCommit

This will refresh the 'view' of the index in a more performant manner, but without "on-disk" guarantees. (Solr4.0+)

waitSearcher

Block until a new searcher is opened and registered as the main query searcher, making the changes visible.

Возвращаемые значения

Returns a SolrUpdateResponse on success or throws an exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Примечания

Внимание

PECL Solr >= 2.0 only supports Solr Server >= 4.0

Prior to PECL Solr 2.0 this method used to accept these arguments "int $maxSegments, bool $waitFlush, bool $waitSearcher".

Смотрите также

  • SolrClient::commit() - Finalizes all add/deletes made to the index
  • SolrClient::rollback() - Rollbacks all add/deletes made to the index since the last commit


Checks if Solr server is still up

  • « SolrClient::optimize
  • SolrClient::query »
  • PHP Manual
  • SolrClient
  • Checks if Solr server is still up

SolrClient::ping

(PECL solr >= 0.9.2)

SolrClient::ping — Checks if Solr server is still up

Описание

public SolrClient::ping ( void ) : SolrPingResponse

Checks if the Solr server is still alive. Sends a HEAD request to the Apache Solr server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a SolrPingResponse object on success and throws an exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to satisfy the request.

Примеры

Пример #1 SolrClient::ping() example

<?php
$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$pingresponse = $client->ping();

?>

Результатом выполнения данного примера будет что-то подобное:


Sends a query to the server

  • « SolrClient::ping
  • SolrClient::request »
  • PHP Manual
  • SolrClient
  • Sends a query to the server

SolrClient::query

(PECL solr >= 0.9.2)

SolrClient::query — Sends a query to the server

Описание

public SolrClient::query ( SolrParams $query ) : SolrQueryResponse

Sends a query to the server.

Список параметров

query

A SolrParams object. It is recommended to use SolrQuery for advanced queries.

Возвращаемые значения

Returns a SolrQueryResponse object on success and throws an exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to satisfy the query.

Примеры

Пример #1 SolrClient::query() example

<?php

$options = array
(
    'hostname' => 'localhost',
    'login'    => 'username',
    'password' => 'password',
    'port'     => '8983',
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 3
            [params] => SolrObject Object
                (
                    [fl] => cat,features,id,timestamp
                    [indent] => on
                    [start] => 0
                    [q] => lucene
                    [wt] => xml
                    [version] => 2.2
                    [rows] => 50
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 1
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => SOLR1000
                            [cat] => Array
                                (
                                    [0] => software
                                    [1] => search
                                )

                            [features] => Array
                                (
                                    [0] => Advanced Full-Text Search Capabilities using Lucene
                                    [1] => Optimized for High Volume Web Traffic
                                    [2] => Standards Based Open Interfaces - XML and HTTP
                                    [3] => Comprehensive HTML Administration Interfaces
                                    [4] => Scalability - Efficient Replication to other Solr Search Servers
                                    [5] => Flexible and Adaptable with XML configuration and Schema
                                    [6] => Good unicode support: hello (hello with an accent over the e)
                                )

                        )

                )

        )

)


Sends a raw update request

  • « SolrClient::query
  • SolrClient::rollback »
  • PHP Manual
  • SolrClient
  • Sends a raw update request

SolrClient::request

(PECL solr >= 0.9.2)

SolrClient::request — Sends a raw update request

Описание

public SolrClient::request ( string $raw_request ) : SolrUpdateResponse

Sends a raw XML update request to the server

Список параметров

raw_request

An XML string with the raw request to the server.

Возвращаемые значения

Returns a SolrUpdateResponse on success. Throws an exception on failure.

Ошибки

Throws SolrIllegalArgumentException if raw_request was an empty string

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to satisfy the query.

Примеры

Пример #1 SolrClient::request() example

<?php
$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$update_response = $client->request("<commit/>");

$response = $update_response->getResponse();

print_r($response);
?>

Результатом выполнения данного примера будет что-то подобное:

...


Rollbacks all add/deletes made to the index since the last commit

  • « SolrClient::request
  • SolrClient::setResponseWriter »
  • PHP Manual
  • SolrClient
  • Rollbacks all add/deletes made to the index since the last commit

SolrClient::rollback

(PECL solr >= 0.9.2)

SolrClient::rollback — Rollbacks all add/deletes made to the index since the last commit

Описание

public SolrClient::rollback ( void ) : SolrUpdateResponse

Rollbacks all add/deletes made to the index since the last commit. It neither calls any event listeners nor creates a new searcher.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a SolrUpdateResponse on success or throws a SolrClientException on failure.

Смотрите также

  • SolrClient::commit() - Finalizes all add/deletes made to the index
  • SolrClient::optimize() - Defragments the index


Sets the response writer used to prepare the response from Solr

  • « SolrClient::rollback
  • SolrClient::setServlet »
  • PHP Manual
  • SolrClient
  • Sets the response writer used to prepare the response from Solr

SolrClient::setResponseWriter

(PECL solr >= 0.9.11)

SolrClient::setResponseWriter — Sets the response writer used to prepare the response from Solr

Описание

public SolrClient::setResponseWriter ( string $responseWriter ) : void

Sets the response writer used to prepare the response from Solr

Список параметров

responseWriter

One of the following:

  • json
  • phps
  • xml

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 SolrClient::setResponseWriter() example

<?php

// This is my custom class for objects
class SolrClass
{
   public $_properties = array();

   public function __get($property_name) {

      if (property_exists($this, $property_name)) {

          return $this->$property_name;

      } else if (isset($_properties[$property_name])) {

          return $_properties[$property_name];
      }

      return null;
   }
}

$options = array
(
  'hostname' => 'localhost',
  'port' => 8983,
  'path' => '/solr/core1'
);

$client = new SolrClient($options);

$client->setResponseWriter("json");

//$response = $client->ping();

$query = new SolrQuery();

$query->setQuery("*:*");

$query->set("objectClassName", "SolrClass");

$query->set("objectPropertiesStorageMode", 1); // 0 for independent properties, 1 for combined

try
{

$response = $client->query($query);

$resp = $response->getResponse();

print_r($response);

print_r($resp);

} catch (Exception $e) {

print_r($e);

}

?>


Changes the specified servlet type to a new value

  • « SolrClient::setResponseWriter
  • SolrClient::system »
  • PHP Manual
  • SolrClient
  • Changes the specified servlet type to a new value

SolrClient::setServlet

(PECL solr >= 0.9.2)

SolrClient::setServlet — Changes the specified servlet type to a new value

Описание

public SolrClient::setServlet ( int $type , string $value ) : bool

Changes the specified servlet type to a new value

Список параметров

type

One of the following :

- SolrClient::SEARCH_SERVLET_TYPE
 - SolrClient::UPDATE_SERVLET_TYPE
 - SolrClient::THREADS_SERVLET_TYPE
 - SolrClient::PING_SERVLET_TYPE
 - SolrClient::TERMS_SERVLET_TYPE

value

The new value for the servlet

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Retrieve Solr Server information

  • « SolrClient::setServlet
  • SolrClient::threads »
  • PHP Manual
  • SolrClient
  • Retrieve Solr Server information

SolrClient::system

(PECL solr >= 2.0.0)

SolrClient::system — Retrieve Solr Server information

Описание

public SolrClient::system ( void ) : void

Retrieve Solr Server information

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a SolrGenericResponse object on success.

Ошибки

Emits SolrClientException if the client failed, or there was a connection issue.

Emits SolrServerException if the Solr Server failed to satisfy the query.


Checks the threads status

  • « SolrClient::system
  • SolrResponse »
  • PHP Manual
  • SolrClient
  • Checks the threads status

SolrClient::threads

(PECL solr >= 0.9.2)

SolrClient::threads — Checks the threads status

Описание

public SolrClient::threads ( void ) : void

Checks the threads status

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a SolrGenericResponse object.

Ошибки

Throws SolrClientException if the client failed, or there was a connection issue.

throws SolrServerException if the Solr Server failed to process the request.


The SolrResponse class

(PECL solr >= 0.9.2)

Введение

Represents a response from the Solr server.

Обзор классов

abstract SolrResponse {
/* Константы */
const integer PARSE_SOLR_OBJ = 0 ;
const integer PARSE_SOLR_DOC = 1 ;
/* Свойства */
protected integer $http_status ;
protected integer $parser_mode ;
protected bool $success ;
protected string $http_status_message ;
protected string $http_request_url ;
protected string $http_raw_request_headers ;
protected string $http_raw_request ;
protected string $http_raw_response_headers ;
protected string $http_raw_response ;
protected string $http_digested_response ;
/* Методы */
public getDigestedResponse ( void ) : string
public getHttpStatus ( void ) : int
public getHttpStatusMessage ( void ) : string
public getRawRequest ( void ) : string
public getRawRequestHeaders ( void ) : string
public getRawResponse ( void ) : string
public getRawResponseHeaders ( void ) : string
public getRequestUrl ( void ) : string
public getResponse ( void ) : SolrObject
public setParseMode ([ int $parser_mode = 0 ] ) : bool
public success ( void ) : bool
}

Свойства

http_status

The http status of the response.

parser_mode

Whether to parse the solr documents as SolrObject or SolrDocument instances.

success

Was there an error during the request

http_status_message

Detailed message on http status

http_request_url

The request URL

http_raw_request_headers

A string of raw headers sent during the request.

http_raw_request

The raw request sent to the server

http_raw_response_headers

Response headers from the Solr server.

http_raw_response

The response message from the server.

http_digested_response

The response in PHP serialized format.

Предопределенные константы

SolrResponse Class Constants

SolrResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Содержание

  • SolrResponse::getDigestedResponse — Returns the XML response as serialized PHP data
  • SolrResponse::getHttpStatus — Returns the HTTP status of the response
  • SolrResponse::getHttpStatusMessage — Returns more details on the HTTP status
  • SolrResponse::getRawRequest — Returns the raw request sent to the Solr server
  • SolrResponse::getRawRequestHeaders — Returns the raw request headers sent to the Solr server
  • SolrResponse::getRawResponse — Returns the raw response from the server
  • SolrResponse::getRawResponseHeaders — Returns the raw response headers from the server
  • SolrResponse::getRequestUrl — Returns the full URL the request was sent to
  • SolrResponse::getResponse — Returns a SolrObject representing the XML response from the server
  • SolrResponse::setParseMode — Sets the parse mode
  • SolrResponse::success — Was the request a success


Returns the XML response as serialized PHP data

  • « SolrResponse
  • SolrResponse::getHttpStatus »
  • PHP Manual
  • SolrResponse
  • Returns the XML response as serialized PHP data

SolrResponse::getDigestedResponse

(PECL solr >= 0.9.2)

SolrResponse::getDigestedResponse — Returns the XML response as serialized PHP data

Описание

public SolrResponse::getDigestedResponse ( void ) : string

Returns the XML response as serialized PHP data

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the XML response as serialized PHP data


Returns the HTTP status of the response

  • « SolrResponse::getDigestedResponse
  • SolrResponse::getHttpStatusMessage »
  • PHP Manual
  • SolrResponse
  • Returns the HTTP status of the response

SolrResponse::getHttpStatus

(PECL solr >= 0.9.2)

SolrResponse::getHttpStatus — Returns the HTTP status of the response

Описание

public SolrResponse::getHttpStatus ( void ) : int

Returns the HTTP status of the response.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the HTTP status of the response.


Returns more details on the HTTP status

  • « SolrResponse::getHttpStatus
  • SolrResponse::getRawRequest »
  • PHP Manual
  • SolrResponse
  • Returns more details on the HTTP status

SolrResponse::getHttpStatusMessage

(PECL solr >= 0.9.2)

SolrResponse::getHttpStatusMessage — Returns more details on the HTTP status

Описание

public SolrResponse::getHttpStatusMessage ( void ) : string

Returns more details on the HTTP status.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns more details on the HTTP status


Returns the raw request sent to the Solr server

  • « SolrResponse::getHttpStatusMessage
  • SolrResponse::getRawRequestHeaders »
  • PHP Manual
  • SolrResponse
  • Returns the raw request sent to the Solr server

SolrResponse::getRawRequest

(PECL solr >= 0.9.2)

SolrResponse::getRawRequest — Returns the raw request sent to the Solr server

Описание

public SolrResponse::getRawRequest ( void ) : string

Returns the raw request sent to the Solr server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the raw request sent to the Solr server


Returns the raw request headers sent to the Solr server

  • « SolrResponse::getRawRequest
  • SolrResponse::getRawResponse »
  • PHP Manual
  • SolrResponse
  • Returns the raw request headers sent to the Solr server

SolrResponse::getRawRequestHeaders

(PECL solr >= 0.9.2)

SolrResponse::getRawRequestHeaders — Returns the raw request headers sent to the Solr server

Описание

public SolrResponse::getRawRequestHeaders ( void ) : string

Returns the raw request headers sent to the Solr server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the raw request headers sent to the Solr server


Returns the raw response from the server

  • « SolrResponse::getRawRequestHeaders
  • SolrResponse::getRawResponseHeaders »
  • PHP Manual
  • SolrResponse
  • Returns the raw response from the server

SolrResponse::getRawResponse

(PECL solr >= 0.9.2)

SolrResponse::getRawResponse — Returns the raw response from the server

Описание

public SolrResponse::getRawResponse ( void ) : string

Returns the raw response from the server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the raw response from the server.


Returns the raw response headers from the server

  • « SolrResponse::getRawResponse
  • SolrResponse::getRequestUrl »
  • PHP Manual
  • SolrResponse
  • Returns the raw response headers from the server

SolrResponse::getRawResponseHeaders

(PECL solr >= 0.9.2)

SolrResponse::getRawResponseHeaders — Returns the raw response headers from the server

Описание

public SolrResponse::getRawResponseHeaders ( void ) : string

Returns the raw response headers from the server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the raw response headers from the server.


Returns the full URL the request was sent to

  • « SolrResponse::getRawResponseHeaders
  • SolrResponse::getResponse »
  • PHP Manual
  • SolrResponse
  • Returns the full URL the request was sent to

SolrResponse::getRequestUrl

(PECL solr >= 0.9.2)

SolrResponse::getRequestUrl — Returns the full URL the request was sent to

Описание

public SolrResponse::getRequestUrl ( void ) : string

Returns the full URL the request was sent to.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the full URL the request was sent to


Returns a SolrObject representing the XML response from the server

  • « SolrResponse::getRequestUrl
  • SolrResponse::setParseMode »
  • PHP Manual
  • SolrResponse
  • Returns a SolrObject representing the XML response from the server

SolrResponse::getResponse

(PECL solr >= 0.9.2)

SolrResponse::getResponse — Returns a SolrObject representing the XML response from the server

Описание

public SolrResponse::getResponse ( void ) : SolrObject

Returns a SolrObject representing the XML response from the server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a SolrObject representing the XML response from the server


Sets the parse mode

  • « SolrResponse::getResponse
  • SolrResponse::success »
  • PHP Manual
  • SolrResponse
  • Sets the parse mode

SolrResponse::setParseMode

(PECL solr >= 0.9.2)

SolrResponse::setParseMode — Sets the parse mode

Описание

public SolrResponse::setParseMode ([ int $parser_mode = 0 ] ) : bool

Sets the parse mode.

Список параметров

parser_mode

SolrResponse::PARSE_SOLR_DOC parses documents in SolrDocument instances. SolrResponse::PARSE_SOLR_OBJ parses document into SolrObjects.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Was the request a success

  • « SolrResponse::setParseMode
  • SolrQueryResponse »
  • PHP Manual
  • SolrResponse
  • Was the request a success

SolrResponse::success

(PECL solr >= 0.9.2)

SolrResponse::success — Was the request a success

Описание

public SolrResponse::success ( void ) : bool

Used to check if the request to the server was successful.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if it was successful and FALSE if it was not.


The SolrQueryResponse class

(PECL solr >= 0.9.2)

Введение

Represents a response to a query request.

Обзор классов

final SolrQueryResponse extends SolrResponse {
/* Константы */
const integer PARSE_SOLR_OBJ = 0 ;
const integer PARSE_SOLR_DOC = 1 ;
/* Наследуемые свойства */
const integer SolrResponse::PARSE_SOLR_OBJ = 0 ;
const integer SolrResponse::PARSE_SOLR_DOC = 1 ;
protected integer $http_status ;
protected integer $parser_mode ;
protected bool $success ;
protected string $http_status_message ;
protected string $http_request_url ;
protected string $http_raw_request_headers ;
protected string $http_raw_request ;
protected string $http_raw_response_headers ;
protected string $http_raw_response ;
protected string $http_digested_response ;
/* Методы */
public __construct ( void )
public __destruct ( void ) : void
/* Наследуемые методы */
public SolrResponse::getDigestedResponse ( void ) : string
public SolrResponse::getHttpStatus ( void ) : int
public SolrResponse::getHttpStatusMessage ( void ) : string
public SolrResponse::getRawRequest ( void ) : string
public SolrResponse::getRawRequestHeaders ( void ) : string
public SolrResponse::getRawResponse ( void ) : string
public SolrResponse::getRawResponseHeaders ( void ) : string
public SolrResponse::getRequestUrl ( void ) : string
public SolrResponse::getResponse ( void ) : SolrObject
public SolrResponse::setParseMode ([ int $parser_mode = 0 ] ) : bool
public SolrResponse::success ( void ) : bool
}

Предопределенные константы

SolrQueryResponse Class constants

SolrQueryResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrQueryResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Содержание

  • SolrQueryResponse::__construct — Конструктор
  • SolrQueryResponse::__destruct — Деструктор


Конструктор

  • « SolrQueryResponse
  • SolrQueryResponse::__destruct »
  • PHP Manual
  • SolrQueryResponse
  • Конструктор

SolrQueryResponse::__construct

(PECL solr >= 0.9.2)

SolrQueryResponse::__construct — Конструктор

Описание

public SolrQueryResponse::__construct ( void )

Конструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Деструктор

  • « SolrQueryResponse::__construct
  • SolrUpdateResponse »
  • PHP Manual
  • SolrQueryResponse
  • Деструктор

SolrQueryResponse::__destruct

(PECL solr >= 0.9.2)

SolrQueryResponse::__destruct — Деструктор

Описание

public SolrQueryResponse::__destruct ( void ) : void

Деструктор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


The SolrUpdateResponse class

(PECL solr >= 0.9.2)

Введение

Represents a response to an update request.

Обзор классов

final SolrUpdateResponse extends SolrResponse {
/* Константы */
const integer PARSE_SOLR_OBJ = 0 ;
const integer PARSE_SOLR_DOC = 1 ;
/* Наследуемые свойства */
const integer SolrResponse::PARSE_SOLR_OBJ = 0 ;
const integer SolrResponse::PARSE_SOLR_DOC = 1 ;
protected integer $http_status ;
protected integer $parser_mode ;
protected bool $success ;
protected string $http_status_message ;
protected string $http_request_url ;
protected string $http_raw_request_headers ;
protected string $http_raw_request ;
protected string $http_raw_response_headers ;
protected string $http_raw_response ;
protected string $http_digested_response ;
/* Методы */
public __construct ( void )
public __destruct ( void ) : void
/* Наследуемые методы */
public SolrResponse::getDigestedResponse ( void ) : string
public SolrResponse::getHttpStatus ( void ) : int
public SolrResponse::getHttpStatusMessage ( void ) : string
public SolrResponse::getRawRequest ( void ) : string
public SolrResponse::getRawRequestHeaders ( void ) : string
public SolrResponse::getRawResponse ( void ) : string
public SolrResponse::getRawResponseHeaders ( void ) : string
public SolrResponse::getRequestUrl ( void ) : string
public SolrResponse::getResponse ( void ) : SolrObject
public SolrResponse::setParseMode ([ int $parser_mode = 0 ] ) : bool
public SolrResponse::success ( void ) : bool
}

Предопределенные константы

SolrUpdateResponse Class Constants

SolrUpdateResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrUpdateResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Содержание

  • SolrUpdateResponse::__construct — Конструктор
  • SolrUpdateResponse::__destruct — Деструктор


Конструктор

  • « SolrUpdateResponse
  • SolrUpdateResponse::__destruct »
  • PHP Manual
  • SolrUpdateResponse
  • Конструктор

SolrUpdateResponse::__construct

(PECL solr >= 0.9.2)

SolrUpdateResponse::__construct — Конструктор

Описание

public SolrUpdateResponse::__construct ( void )

Конструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Деструктор

  • « SolrUpdateResponse::__construct
  • SolrPingResponse »
  • PHP Manual
  • SolrUpdateResponse
  • Деструктор

SolrUpdateResponse::__destruct

(PECL solr >= 0.9.2)

SolrUpdateResponse::__destruct — Деструктор

Описание

public SolrUpdateResponse::__destruct ( void ) : void

Деструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


The SolrPingResponse class

(PECL solr >= 0.9.2)

Введение

Represents a response to a ping request to the server

Обзор классов

final SolrPingResponse extends SolrResponse {
/* Константы */
const integer PARSE_SOLR_OBJ = 0 ;
const integer PARSE_SOLR_DOC = 1 ;
/* Свойства */
/* Методы */
public __construct ( void )
public __destruct ( void ) : void
public getResponse ( void ) : string
/* Наследуемые методы */
public SolrResponse::getDigestedResponse ( void ) : string
public SolrResponse::getHttpStatus ( void ) : int
public SolrResponse::getHttpStatusMessage ( void ) : string
public SolrResponse::getRawRequest ( void ) : string
public SolrResponse::getRawRequestHeaders ( void ) : string
public SolrResponse::getRawResponse ( void ) : string
public SolrResponse::getRawResponseHeaders ( void ) : string
public SolrResponse::getRequestUrl ( void ) : string
public SolrResponse::getResponse ( void ) : SolrObject
public SolrResponse::setParseMode ([ int $parser_mode = 0 ] ) : bool
public SolrResponse::success ( void ) : bool
}

Свойства

http_status

The http status of the response.

parser_mode

Whether to parse the solr documents as SolrObject or SolrDocument instances.

success

Was there an error during the request

http_status_message

Detailed message on http status

http_request_url

The request URL

http_raw_request_headers

A string of raw headers sent during the request

http_raw_request

The raw request sent to the server

http_raw_response_headers

Response headers from the Solr server

http_raw_response

The response message from the server

http_digested_response

The response in PHP serialized format.

Предопределенные константы

SolrPingResponse Class Constants

SolrPingResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrPingResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Содержание

  • SolrPingResponse::__construct — Constructor
  • SolrPingResponse::__destruct — Destructor
  • SolrPingResponse::getResponse — Returns the response from the server


Constructor

  • « SolrPingResponse
  • SolrPingResponse::__destruct »
  • PHP Manual
  • SolrPingResponse
  • Constructor

SolrPingResponse::__construct

(PECL solr >= 0.9.2)

SolrPingResponse::__construct — Constructor

Описание

public SolrPingResponse::__construct ( void )

Constructor

Список параметров

У этой функции нет параметров.

Возвращаемые значения

None


Destructor

  • « SolrPingResponse::__construct
  • SolrPingResponse::getResponse »
  • PHP Manual
  • SolrPingResponse
  • Destructor

SolrPingResponse::__destruct

(PECL solr >= 0.9.2)

SolrPingResponse::__destruct — Destructor

Описание

public SolrPingResponse::__destruct ( void ) : void

Destructor

Список параметров

У этой функции нет параметров.

Возвращаемые значения

None


Returns the response from the server

  • « SolrPingResponse::__destruct
  • SolrGenericResponse »
  • PHP Manual
  • SolrPingResponse
  • Returns the response from the server

SolrPingResponse::getResponse

(PECL solr >= 0.9.2)

SolrPingResponse::getResponse — Returns the response from the server

Описание

public SolrPingResponse::getResponse ( void ) : string

Returns the response from the server. This should be empty because the request as a HEAD request.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an empty string.


The SolrGenericResponse class

(PECL solr >= 0.9.2)

Введение

Represents a response from the solr server.

Обзор классов

final SolrGenericResponse extends SolrResponse {
/* Константы */
const integer PARSE_SOLR_OBJ = 0 ;
const integer PARSE_SOLR_DOC = 1 ;
/* Наследуемые свойства */
const integer SolrResponse::PARSE_SOLR_OBJ = 0 ;
const integer SolrResponse::PARSE_SOLR_DOC = 1 ;
protected integer $http_status ;
protected integer $parser_mode ;
protected bool $success ;
protected string $http_status_message ;
protected string $http_request_url ;
protected string $http_raw_request_headers ;
protected string $http_raw_request ;
protected string $http_raw_response_headers ;
protected string $http_raw_response ;
protected string $http_digested_response ;
/* Методы */
public __construct ( void )
public __destruct ( void ) : void
/* Наследуемые методы */
public SolrResponse::getDigestedResponse ( void ) : string
public SolrResponse::getHttpStatus ( void ) : int
public SolrResponse::getHttpStatusMessage ( void ) : string
public SolrResponse::getRawRequest ( void ) : string
public SolrResponse::getRawRequestHeaders ( void ) : string
public SolrResponse::getRawResponse ( void ) : string
public SolrResponse::getRawResponseHeaders ( void ) : string
public SolrResponse::getRequestUrl ( void ) : string
public SolrResponse::getResponse ( void ) : SolrObject
public SolrResponse::setParseMode ([ int $parser_mode = 0 ] ) : bool
public SolrResponse::success ( void ) : bool
}

Предопределенные константы

SolrGenericResponse Class constants

SolrGenericResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrGenericResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Содержание

  • SolrGenericResponse::__construct — Конструктор
  • SolrGenericResponse::__destruct — Деструктор


Конструктор

  • « SolrGenericResponse
  • SolrGenericResponse::__destruct »
  • PHP Manual
  • SolrGenericResponse
  • Конструктор

SolrGenericResponse::__construct

(PECL solr >= 0.9.2)

SolrGenericResponse::__construct — Конструктор

Описание

public SolrGenericResponse::__construct ( void )

Конструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Деструктор

  • « SolrGenericResponse::__construct
  • SolrParams »
  • PHP Manual
  • SolrGenericResponse
  • Деструктор

SolrGenericResponse::__destruct

(PECL solr >= 0.9.2)

SolrGenericResponse::__destruct — Деструктор

Описание

public SolrGenericResponse::__destruct ( void ) : void

Деструктор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Класс SolrParams

(PECL solr >= 0.9.2)

Введение

Представляет коллекцию пар "имя-значение", отправляемую на сервер Solr во время запроса.

Обзор классов

abstract SolrParams implements Serializable {
/* Методы */
final public add ( string $name , string $value ) : SolrParams
public addParam ( string $name , string $value ) : SolrParams
final public get ( string $param_name ) : mixed
final public getParam ([ string $param_name ] ) : mixed
final public getParams ( void ) : array
final public getPreparedParams ( void ) : array
final public serialize ( void ) : string
final public set ( string $name , string $value ) : void
public setParam ( string $name , string $value ) : SolrParams
final public toString ([ bool $url_encode = FALSE ] ) : string
final public unserialize ( string $serialized ) : void
}

Содержание

  • SolrParams::add — This is an alias for SolrParams::addParam
  • SolrParams::addParam — Adds a parameter to the object
  • SolrParams::get — This is an alias for SolrParams::getParam
  • SolrParams::getParam — Returns a parameter value
  • SolrParams::getParams — Returns an array of non URL-encoded parameters
  • SolrParams::getPreparedParams — Returns an array of URL-encoded parameters
  • SolrParams::serialize — Used for custom serialization
  • SolrParams::set — An alias of SolrParams::setParam
  • SolrParams::setParam — Sets the parameter to the specified value
  • SolrParams::toString — Returns all the name-value pair parameters in the object
  • SolrParams::unserialize — Used for custom serialization


This is an alias for SolrParams::addParam

  • « SolrParams
  • SolrParams::addParam »
  • PHP Manual
  • SolrParams
  • This is an alias for SolrParams::addParam

SolrParams::add

(PECL solr >= 0.9.2)

SolrParams::add — This is an alias for SolrParams::addParam

Описание

final public SolrParams::add ( string $name , string $value ) : SolrParams

This is an alias for SolrParams::addParam

Список параметров

name

The name of the parameter

value

The value of the parameter

Возвращаемые значения

Returns a SolrParams instance on success


Adds a parameter to the object

  • « SolrParams::add
  • SolrParams::get »
  • PHP Manual
  • SolrParams
  • Adds a parameter to the object

SolrParams::addParam

(PECL solr >= 0.9.2)

SolrParams::addParam — Adds a parameter to the object

Описание

public SolrParams::addParam ( string $name , string $value ) : SolrParams

Adds a parameter to the object. This is used for parameters that can be specified multiple times.

Список параметров

name

Name of parameter

value

Value of parameter

Возвращаемые значения

Returns a SolrParam object on success and FALSE on failure.


This is an alias for SolrParams::getParam

  • « SolrParams::addParam
  • SolrParams::getParam »
  • PHP Manual
  • SolrParams
  • This is an alias for SolrParams::getParam

SolrParams::get

(PECL solr >= 0.9.2)

SolrParams::get — This is an alias for SolrParams::getParam

Описание

final public SolrParams::get ( string $param_name ) : mixed

This is an alias for SolrParams::getParam

Список параметров

param_name

Then name of the parameter

Возвращаемые значения

Returns an array or string depending on the type of parameter


Returns a parameter value

  • « SolrParams::get
  • SolrParams::getParams »
  • PHP Manual
  • SolrParams
  • Returns a parameter value

SolrParams::getParam

(PECL solr >= 0.9.2)

SolrParams::getParam — Returns a parameter value

Описание

final public SolrParams::getParam ([ string $param_name ] ) : mixed

Returns a parameter with name param_name

Список параметров

param_name

The name of the parameter

Возвращаемые значения

Returns a string or an array depending on the type of the parameter


Returns an array of non URL-encoded parameters

  • « SolrParams::getParam
  • SolrParams::getPreparedParams »
  • PHP Manual
  • SolrParams
  • Returns an array of non URL-encoded parameters

SolrParams::getParams

(PECL solr >= 0.9.2)

SolrParams::getParams — Returns an array of non URL-encoded parameters

Описание

final public SolrParams::getParams ( void ) : array

Returns an array of non URL-encoded parameters

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array of non URL-encoded parameters


Returns an array of URL-encoded parameters

  • « SolrParams::getParams
  • SolrParams::serialize »
  • PHP Manual
  • SolrParams
  • Returns an array of URL-encoded parameters

SolrParams::getPreparedParams

(PECL solr >= 0.9.2)

SolrParams::getPreparedParams — Returns an array of URL-encoded parameters

Описание

final public SolrParams::getPreparedParams ( void ) : array

Returns an array on URL-encoded parameters

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on URL-encoded parameters


Used for custom serialization

  • « SolrParams::getPreparedParams
  • SolrParams::set »
  • PHP Manual
  • SolrParams
  • Used for custom serialization

SolrParams::serialize

(PECL solr >= 0.9.2)

SolrParams::serialize — Used for custom serialization

Описание

final public SolrParams::serialize ( void ) : string

Used for custom serialization

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Used for custom serialization


An alias of SolrParams::setParam

  • « SolrParams::serialize
  • SolrParams::setParam »
  • PHP Manual
  • SolrParams
  • An alias of SolrParams::setParam

SolrParams::set

(PECL solr >= 0.9.2)

SolrParams::set — An alias of SolrParams::setParam

Описание

final public SolrParams::set ( string $name , string $value ) : void

An alias of SolrParams::setParam

Список параметров

name

Then name of the parameter

value

The parameter value

Возвращаемые значения

Returns an instance of the SolrParams object on success


Sets the parameter to the specified value

  • « SolrParams::set
  • SolrParams::toString »
  • PHP Manual
  • SolrParams
  • Sets the parameter to the specified value

SolrParams::setParam

(PECL solr >= 0.9.2)

SolrParams::setParam — Sets the parameter to the specified value

Описание

public SolrParams::setParam ( string $name , string $value ) : SolrParams

Sets the query parameter to the specified value. This is used for parameters that can only be specified once. Subsequent calls with the same parameter name will override the existing value

Список параметров

name

Name of the parameter

value

Value of the parameter

Возвращаемые значения

Returns a SolrParam object on success and FALSE on value.

Примеры

Пример #1 SolrParams::setParam() example

<?php

$param = new SolrParams();

$param->setParam('q', 'solr')->setParam('rows', 2);

?>

Результатом выполнения данного примера будет что-то подобное:


Returns all the name-value pair parameters in the object

  • « SolrParams::setParam
  • SolrParams::unserialize »
  • PHP Manual
  • SolrParams
  • Returns all the name-value pair parameters in the object

SolrParams::toString

(PECL solr >= 0.9.2)

SolrParams::toString — Returns all the name-value pair parameters in the object

Описание

final public SolrParams::toString ([ bool $url_encode = FALSE ] ) : string

Returns all the name-value pair parameters in the object

Список параметров

url_encode

Whether to return URL-encoded values

Возвращаемые значения

Returns a string on success and FALSE on failure.


Used for custom serialization

  • « SolrParams::toString
  • SolrModifiableParams »
  • PHP Manual
  • SolrParams
  • Used for custom serialization

SolrParams::unserialize

(PECL solr >= 0.9.2)

SolrParams::unserialize — Used for custom serialization

Описание

final public SolrParams::unserialize ( string $serialized ) : void

Used for custom serialization

Список параметров

serialized

The serialized representation of the object

Возвращаемые значения

None


Класс SolrModifiableParams

(PECL solr >= 0.9.2)

Введение

Представляет коллекцию пар "имя-значение", отправляемую на сервер Solr во время запроса.

Обзор классов

SolrModifiableParams extends SolrParams implements Serializable {
/* Методы */
public __construct ( void )
public __destruct ( void ) : void
/* Наследуемые методы */
final public SolrParams::add ( string $name , string $value ) : SolrParams
public SolrParams::addParam ( string $name , string $value ) : SolrParams
final public SolrParams::get ( string $param_name ) : mixed
final public SolrParams::getParam ([ string $param_name ] ) : mixed
final public SolrParams::getParams ( void ) : array
final public SolrParams::getPreparedParams ( void ) : array
final public SolrParams::serialize ( void ) : string
final public SolrParams::set ( string $name , string $value ) : void
public SolrParams::setParam ( string $name , string $value ) : SolrParams
final public SolrParams::toString ([ bool $url_encode = FALSE ] ) : string
final public SolrParams::unserialize ( string $serialized ) : void
}

Содержание

  • SolrModifiableParams::__construct — Конструктор
  • SolrModifiableParams::__destruct — Деструктор


Конструктор

  • « SolrModifiableParams
  • SolrModifiableParams::__destruct »
  • PHP Manual
  • SolrModifiableParams
  • Конструктор

SolrModifiableParams::__construct

(PECL solr >= 0.9.2)

SolrModifiableParams::__construct — Конструктор

Описание

public SolrModifiableParams::__construct ( void )

Конструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Деструктор

  • « SolrModifiableParams::__construct
  • SolrQuery »
  • PHP Manual
  • SolrModifiableParams
  • Деструктор

SolrModifiableParams::__destruct

(PECL solr >= 0.9.2)

SolrModifiableParams::__destruct — Деструктор

Описание

public SolrModifiableParams::__destruct ( void ) : void

Деструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


The SolrQuery class

(PECL solr >= 0.9.2)

Введение

Represents a collection of name-value pairs sent to the Solr server during a request.

Обзор классов

SolrQuery extends SolrModifiableParams implements Serializable {
/* Константы */
const integer ORDER_ASC = 0 ;
const integer ORDER_DESC = 1 ;
const integer FACET_SORT_INDEX = 0 ;
const integer FACET_SORT_COUNT = 1 ;
const integer TERMS_SORT_INDEX = 0 ;
const integer TERMS_SORT_COUNT = 1 ;
/* Свойства */
/* Методы */
public addExpandFilterQuery ( string $fq ) : SolrQuery
public addExpandSortField ( string $field [, string $order ] ) : SolrQuery
public addFacetDateField ( string $dateField ) : SolrQuery
public addFacetDateOther ( string $value [, string $field_override ] ) : SolrQuery
public addFacetField ( string $field ) : SolrQuery
public addFacetQuery ( string $facetQuery ) : SolrQuery
public addField ( string $field ) : SolrQuery
public addFilterQuery ( string $fq ) : SolrQuery
public addGroupField ( string $value ) : SolrQuery
public addGroupFunction ( string $value ) : SolrQuery
public addGroupQuery ( string $value ) : SolrQuery
public addGroupSortField ( string $field [, int $order ] ) : SolrQuery
public addHighlightField ( string $field ) : SolrQuery
public addMltField ( string $field ) : SolrQuery
public addMltQueryField ( string $field , float $boost ) : SolrQuery
public addSortField ( string $field [, int $order = SolrQuery::ORDER_DESC ] ) : SolrQuery
public addStatsFacet ( string $field ) : SolrQuery
public addStatsField ( string $field ) : SolrQuery
public collapse ( SolrCollapseFunction $collapseFunction ) : SolrQuery
public __construct ([ string $q ] )
public __destruct ( void ) : void
public getExpand ( void ) : bool
public getExpandFilterQueries ( void ) : array
public getExpandQuery ( void ) : array
public getExpandRows ( void ) : int
public getExpandSortFields ( void ) : array
public getFacet ( void ) : bool
public getFacetDateEnd ([ string $field_override ] ) : string
public getFacetDateFields ( void ) : array
public getFacetDateGap ([ string $field_override ] ) : string
public getFacetDateHardEnd ([ string $field_override ] ) : string
public getFacetDateOther ([ string $field_override ] ) : array
public getFacetDateStart ([ string $field_override ] ) : string
public getFacetFields ( void ) : array
public getFacetLimit ([ string $field_override ] ) : int
public getFacetMethod ([ string $field_override ] ) : string
public getFacetMinCount ([ string $field_override ] ) : int
public getFacetMissing ([ string $field_override ] ) : bool
public getFacetOffset ([ string $field_override ] ) : int
public getFacetPrefix ([ string $field_override ] ) : string
public getFacetQueries ( void ) : array
public getFacetSort ([ string $field_override ] ) : int
public getFields ( void ) : array
public getFilterQueries ( void ) : array
public getGroup ( void ) : bool
public getGroupCachePercent ( void ) : int
public getGroupFacet ( void ) : bool
public getGroupFields ( void ) : array
public getGroupFormat ( void ) : string
public getGroupFunctions ( void ) : array
public getGroupLimit ( void ) : int
public getGroupMain ( void ) : bool
public getGroupNGroups ( void ) : bool
public getGroupOffset ( void ) : int
public getGroupQueries ( void ) : array
public getGroupSortFields ( void ) : array
public getGroupTruncate ( void ) : bool
public getHighlight ( void ) : bool
public getHighlightAlternateField ([ string $field_override ] ) : string
public getHighlightFields ( void ) : array
public getHighlightFormatter ([ string $field_override ] ) : string
public getHighlightFragmenter ([ string $field_override ] ) : string
public getHighlightFragsize ([ string $field_override ] ) : int
public getHighlightHighlightMultiTerm ( void ) : bool
public getHighlightMaxAlternateFieldLength ([ string $field_override ] ) : int
public getHighlightMaxAnalyzedChars ( void ) : int
public getHighlightMergeContiguous ([ string $field_override ] ) : bool
public getHighlightRegexMaxAnalyzedChars ( void ) : int
public getHighlightRegexPattern ( void ) : string
public getHighlightRegexSlop ( void ) : float
public getHighlightRequireFieldMatch ( void ) : bool
public getHighlightSimplePost ([ string $field_override ] ) : string
public getHighlightSimplePre ([ string $field_override ] ) : string
public getHighlightSnippets ([ string $field_override ] ) : int
public getHighlightUsePhraseHighlighter ( void ) : bool
public getMlt ( void ) : bool
public getMltBoost ( void ) : bool
public getMltCount ( void ) : int
public getMltFields ( void ) : array
public getMltMaxNumQueryTerms ( void ) : int
public getMltMaxNumTokens ( void ) : int
public getMltMaxWordLength ( void ) : int
public getMltMinDocFrequency ( void ) : int
public getMltMinTermFrequency ( void ) : int
public getMltMinWordLength ( void ) : int
public getMltQueryFields ( void ) : array
public getQuery ( void ) : string
public getRows ( void ) : int
public getSortFields ( void ) : array
public getStart ( void ) : int
public getStats ( void ) : bool
public getStatsFacets ( void ) : array
public getStatsFields ( void ) : array
public getTerms ( void ) : bool
public getTermsField ( void ) : string
public getTermsIncludeLowerBound ( void ) : bool
public getTermsIncludeUpperBound ( void ) : bool
public getTermsLimit ( void ) : int
public getTermsLowerBound ( void ) : string
public getTermsMaxCount ( void ) : int
public getTermsMinCount ( void ) : int
public getTermsPrefix ( void ) : string
public getTermsReturnRaw ( void ) : bool
public getTermsSort ( void ) : int
public getTermsUpperBound ( void ) : string
public getTimeAllowed ( void ) : int
public removeExpandFilterQuery ( string $fq ) : SolrQuery
public removeExpandSortField ( string $field ) : SolrQuery
public removeFacetDateField ( string $field ) : SolrQuery
public removeFacetDateOther ( string $value [, string $field_override ] ) : SolrQuery
public removeFacetField ( string $field ) : SolrQuery
public removeFacetQuery ( string $value ) : SolrQuery
public removeField ( string $field ) : SolrQuery
public removeFilterQuery ( string $fq ) : SolrQuery
public removeHighlightField ( string $field ) : SolrQuery
public removeMltField ( string $field ) : SolrQuery
public removeMltQueryField ( string $queryField ) : SolrQuery
public removeSortField ( string $field ) : SolrQuery
public removeStatsFacet ( string $value ) : SolrQuery
public removeStatsField ( string $field ) : SolrQuery
public setEchoHandler ( bool $flag ) : SolrQuery
public setEchoParams ( string $type ) : SolrQuery
public setExpand ( bool $value ) : SolrQuery
public setExpandQuery ( string $q ) : SolrQuery
public setExpandRows ( int $value ) : SolrQuery
public setExplainOther ( string $query ) : SolrQuery
public setFacet ( bool $flag ) : SolrQuery
public setFacetDateEnd ( string $value [, string $field_override ] ) : SolrQuery
public setFacetDateGap ( string $value [, string $field_override ] ) : SolrQuery
public setFacetDateHardEnd ( bool $value [, string $field_override ] ) : SolrQuery
public setFacetDateStart ( string $value [, string $field_override ] ) : SolrQuery
public setFacetEnumCacheMinDefaultFrequency ( int $frequency [, string $field_override ] ) : SolrQuery
public setFacetLimit ( int $limit [, string $field_override ] ) : SolrQuery
public setFacetMethod ( string $method [, string $field_override ] ) : SolrQuery
public setFacetMinCount ( int $mincount [, string $field_override ] ) : SolrQuery
public setFacetMissing ( bool $flag [, string $field_override ] ) : SolrQuery
public setFacetOffset ( int $offset [, string $field_override ] ) : SolrQuery
public setFacetPrefix ( string $prefix [, string $field_override ] ) : SolrQuery
public setFacetSort ( int $facetSort [, string $field_override ] ) : SolrQuery
public setGroup ( bool $value ) : SolrQuery
public setGroupCachePercent ( int $percent ) : SolrQuery
public setGroupFacet ( bool $value ) : SolrQuery
public setGroupFormat ( string $value ) : SolrQuery
public setGroupLimit ( int $value ) : SolrQuery
public setGroupMain ( string $value ) : SolrQuery
public setGroupNGroups ( bool $value ) : SolrQuery
public setGroupOffset ( int $value ) : SolrQuery
public setGroupTruncate ( bool $value ) : SolrQuery
public setHighlight ( bool $flag ) : SolrQuery
public setHighlightAlternateField ( string $field [, string $field_override ] ) : SolrQuery
public setHighlightFormatter ( string $formatter [, string $field_override ] ) : SolrQuery
public setHighlightFragmenter ( string $fragmenter [, string $field_override ] ) : SolrQuery
public setHighlightFragsize ( int $size [, string $field_override ] ) : SolrQuery
public setHighlightHighlightMultiTerm ( bool $flag ) : SolrQuery
public setHighlightMaxAlternateFieldLength ( int $fieldLength [, string $field_override ] ) : SolrQuery
public setHighlightMaxAnalyzedChars ( int $value ) : SolrQuery
public setHighlightMergeContiguous ( bool $flag [, string $field_override ] ) : SolrQuery
public setHighlightRegexMaxAnalyzedChars ( int $maxAnalyzedChars ) : SolrQuery
public setHighlightRegexPattern ( string $value ) : SolrQuery
public setHighlightRegexSlop ( float $factor ) : SolrQuery
public setHighlightRequireFieldMatch ( bool $flag ) : SolrQuery
public setHighlightSimplePost ( string $simplePost [, string $field_override ] ) : SolrQuery
public setHighlightSimplePre ( string $simplePre [, string $field_override ] ) : SolrQuery
public setHighlightSnippets ( int $value [, string $field_override ] ) : SolrQuery
public setHighlightUsePhraseHighlighter ( bool $flag ) : SolrQuery
public setMlt ( bool $flag ) : SolrQuery
public setMltBoost ( bool $flag ) : SolrQuery
public setMltCount ( int $count ) : SolrQuery
public setMltMaxNumQueryTerms ( int $value ) : SolrQuery
public setMltMaxNumTokens ( int $value ) : SolrQuery
public setMltMaxWordLength ( int $maxWordLength ) : SolrQuery
public setMltMinDocFrequency ( int $minDocFrequency ) : SolrQuery
public setMltMinTermFrequency ( int $minTermFrequency ) : SolrQuery
public setMltMinWordLength ( int $minWordLength ) : SolrQuery
public setOmitHeader ( bool $flag ) : SolrQuery
public setQuery ( string $query ) : SolrQuery
public setRows ( int $rows ) : SolrQuery
public setShowDebugInfo ( bool $flag ) : SolrQuery
public setStart ( int $start ) : SolrQuery
public setStats ( bool $flag ) : SolrQuery
public setTerms ( bool $flag ) : SolrQuery
public setTermsField ( string $fieldname ) : SolrQuery
public setTermsIncludeLowerBound ( bool $flag ) : SolrQuery
public setTermsIncludeUpperBound ( bool $flag ) : SolrQuery
public setTermsLimit ( int $limit ) : SolrQuery
public setTermsLowerBound ( string $lowerBound ) : SolrQuery
public setTermsMaxCount ( int $frequency ) : SolrQuery
public setTermsMinCount ( int $frequency ) : SolrQuery
public setTermsPrefix ( string $prefix ) : SolrQuery
public setTermsReturnRaw ( bool $flag ) : SolrQuery
public setTermsSort ( int $sortType ) : SolrQuery
public setTermsUpperBound ( string $upperBound ) : SolrQuery
public setTimeAllowed ( int $timeAllowed ) : SolrQuery
/* Наследуемые методы */
public SolrModifiableParams::__construct ( void )
public SolrModifiableParams::__destruct ( void ) : void
}

Предопределенные константы

SolrQuery::ORDER_ASC

Used to specify that the sorting should be in acending order

SolrQuery::ORDER_DESC

Used to specify that the sorting should be in descending order

SolrQuery::FACET_SORT_INDEX

Used to specify that the facet should sort by index

SolrQuery::FACET_SORT_COUNT

Used to specify that the facet should sort by count

SolrQuery::TERMS_SORT_INDEX

Used in the TermsComponent

SolrQuery::TERMS_SORT_COUNT

Used in the TermsComponent

Содержание

  • SolrQuery::addExpandFilterQuery — Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::addExpandSortField — Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::addFacetDateField — Maps to facet.date
  • SolrQuery::addFacetDateOther — Adds another facet.date.other parameter
  • SolrQuery::addFacetField — Adds another field to the facet
  • SolrQuery::addFacetQuery — Adds a facet query
  • SolrQuery::addField — Specifies which fields to return in the result
  • SolrQuery::addFilterQuery — Specifies a filter query
  • SolrQuery::addGroupField — Add a field to be used to group results
  • SolrQuery::addGroupFunction — Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery — Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField — Add a group sort field (group.sort parameter)
  • SolrQuery::addHighlightField — Maps to hl.fl
  • SolrQuery::addMltField — Sets a field to use for similarity
  • SolrQuery::addMltQueryField — Maps to mlt.qf
  • SolrQuery::addSortField — Used to control how the results should be sorted
  • SolrQuery::addStatsFacet — Requests a return of sub results for values within the given facet
  • SolrQuery::addStatsField — Maps to stats.field parameter
  • SolrQuery::collapse — Collapses the result set to a single document per group
  • SolrQuery::__construct — Constructor
  • SolrQuery::__destruct — Destructor
  • SolrQuery::getExpand — Returns true if group expanding is enabled
  • SolrQuery::getExpandFilterQueries — Returns the expand filter queries
  • SolrQuery::getExpandQuery — Returns the expand query expand.q parameter
  • SolrQuery::getExpandRows — Returns The number of rows to display in each group (expand.rows)
  • SolrQuery::getExpandSortFields — Returns an array of fields
  • SolrQuery::getFacet — Returns the value of the facet parameter
  • SolrQuery::getFacetDateEnd — Returns the value for the facet.date.end parameter
  • SolrQuery::getFacetDateFields — Returns all the facet.date fields
  • SolrQuery::getFacetDateGap — Returns the value of the facet.date.gap parameter
  • SolrQuery::getFacetDateHardEnd — Returns the value of the facet.date.hardend parameter
  • SolrQuery::getFacetDateOther — Returns the value for the facet.date.other parameter
  • SolrQuery::getFacetDateStart — Returns the lower bound for the first date range for all date faceting on this field
  • SolrQuery::getFacetFields — Returns all the facet fields
  • SolrQuery::getFacetLimit — Returns the maximum number of constraint counts that should be returned for the facet fields
  • SolrQuery::getFacetMethod — Returns the value of the facet.method parameter
  • SolrQuery::getFacetMinCount — Returns the minimum counts for facet fields should be included in the response
  • SolrQuery::getFacetMissing — Returns the current state of the facet.missing parameter
  • SolrQuery::getFacetOffset — Returns an offset into the list of constraints to be used for pagination
  • SolrQuery::getFacetPrefix — Returns the facet prefix
  • SolrQuery::getFacetQueries — Returns all the facet queries
  • SolrQuery::getFacetSort — Returns the facet sort type
  • SolrQuery::getFields — Returns the list of fields that will be returned in the response
  • SolrQuery::getFilterQueries — Returns an array of filter queries
  • SolrQuery::getGroup — Returns true if grouping is enabled
  • SolrQuery::getGroupCachePercent — Returns group cache percent value
  • SolrQuery::getGroupFacet — Returns the group.facet parameter value
  • SolrQuery::getGroupFields — Returns group fields (group.field parameter values)
  • SolrQuery::getGroupFormat — Returns the group.format value
  • SolrQuery::getGroupFunctions — Returns group functions (group.func parameter values)
  • SolrQuery::getGroupLimit — Returns the group.limit value
  • SolrQuery::getGroupMain — Returns the group.main value
  • SolrQuery::getGroupNGroups — Returns the group.ngroups value
  • SolrQuery::getGroupOffset — Returns the group.offset value
  • SolrQuery::getGroupQueries — Returns all the group.query parameter values
  • SolrQuery::getGroupSortFields — Returns the group.sort value
  • SolrQuery::getGroupTruncate — Returns the group.truncate value
  • SolrQuery::getHighlight — Returns the state of the hl parameter
  • SolrQuery::getHighlightAlternateField — Returns the highlight field to use as backup or default
  • SolrQuery::getHighlightFields — Returns all the fields that Solr should generate highlighted snippets for
  • SolrQuery::getHighlightFormatter — Returns the formatter for the highlighted output
  • SolrQuery::getHighlightFragmenter — Returns the text snippet generator for highlighted text
  • SolrQuery::getHighlightFragsize — Returns the number of characters of fragments to consider for highlighting
  • SolrQuery::getHighlightHighlightMultiTerm — Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries
  • SolrQuery::getHighlightMaxAlternateFieldLength — Returns the maximum number of characters of the field to return
  • SolrQuery::getHighlightMaxAnalyzedChars — Returns the maximum number of characters into a document to look for suitable snippets
  • SolrQuery::getHighlightMergeContiguous — Returns whether or not the collapse contiguous fragments into a single fragment
  • SolrQuery::getHighlightRegexMaxAnalyzedChars — Returns the maximum number of characters from a field when using the regex fragmenter
  • SolrQuery::getHighlightRegexPattern — Returns the regular expression for fragmenting
  • SolrQuery::getHighlightRegexSlop — Returns the deviation factor from the ideal fragment size
  • SolrQuery::getHighlightRequireFieldMatch — Returns if a field will only be highlighted if the query matched in this particular field
  • SolrQuery::getHighlightSimplePost — Returns the text which appears after a highlighted term
  • SolrQuery::getHighlightSimplePre — Returns the text which appears before a highlighted term
  • SolrQuery::getHighlightSnippets — Returns the maximum number of highlighted snippets to generate per field
  • SolrQuery::getHighlightUsePhraseHighlighter — Returns the state of the hl.usePhraseHighlighter parameter
  • SolrQuery::getMlt — Returns whether or not MoreLikeThis results should be enabled
  • SolrQuery::getMltBoost — Returns whether or not the query will be boosted by the interesting term relevance
  • SolrQuery::getMltCount — Returns the number of similar documents to return for each result
  • SolrQuery::getMltFields — Returns all the fields to use for similarity
  • SolrQuery::getMltMaxNumQueryTerms — Returns the maximum number of query terms that will be included in any generated query
  • SolrQuery::getMltMaxNumTokens — Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support
  • SolrQuery::getMltMaxWordLength — Returns the maximum word length above which words will be ignored
  • SolrQuery::getMltMinDocFrequency — Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs
  • SolrQuery::getMltMinTermFrequency — Returns the frequency below which terms will be ignored in the source document
  • SolrQuery::getMltMinWordLength — Returns the minimum word length below which words will be ignored
  • SolrQuery::getMltQueryFields — Returns the query fields and their boosts
  • SolrQuery::getQuery — Returns the main query
  • SolrQuery::getRows — Returns the maximum number of documents
  • SolrQuery::getSortFields — Returns all the sort fields
  • SolrQuery::getStart — Returns the offset in the complete result set
  • SolrQuery::getStats — Returns whether or not stats is enabled
  • SolrQuery::getStatsFacets — Returns all the stats facets that were set
  • SolrQuery::getStatsFields — Returns all the statistics fields
  • SolrQuery::getTerms — Returns whether or not the TermsComponent is enabled
  • SolrQuery::getTermsField — Returns the field from which the terms are retrieved
  • SolrQuery::getTermsIncludeLowerBound — Returns whether or not to include the lower bound in the result set
  • SolrQuery::getTermsIncludeUpperBound — Returns whether or not to include the upper bound term in the result set
  • SolrQuery::getTermsLimit — Returns the maximum number of terms Solr should return
  • SolrQuery::getTermsLowerBound — Returns the term to start at
  • SolrQuery::getTermsMaxCount — Returns the maximum document frequency
  • SolrQuery::getTermsMinCount — Returns the minimum document frequency to return in order to be included
  • SolrQuery::getTermsPrefix — Returns the term prefix
  • SolrQuery::getTermsReturnRaw — Whether or not to return raw characters
  • SolrQuery::getTermsSort — Returns an integer indicating how terms are sorted
  • SolrQuery::getTermsUpperBound — Returns the term to stop at
  • SolrQuery::getTimeAllowed — Returns the time in milliseconds allowed for the query to finish
  • SolrQuery::removeExpandFilterQuery — Removes an expand filter query
  • SolrQuery::removeExpandSortField — Removes an expand sort field from the expand.sort parameter
  • SolrQuery::removeFacetDateField — Removes one of the facet date fields
  • SolrQuery::removeFacetDateOther — Removes one of the facet.date.other parameters
  • SolrQuery::removeFacetField — Removes one of the facet.date parameters
  • SolrQuery::removeFacetQuery — Removes one of the facet.query parameters
  • SolrQuery::removeField — Removes a field from the list of fields
  • SolrQuery::removeFilterQuery — Removes a filter query
  • SolrQuery::removeHighlightField — Removes one of the fields used for highlighting
  • SolrQuery::removeMltField — Removes one of the moreLikeThis fields
  • SolrQuery::removeMltQueryField — Removes one of the moreLikeThis query fields
  • SolrQuery::removeSortField — Removes one of the sort fields
  • SolrQuery::removeStatsFacet — Removes one of the stats.facet parameters
  • SolrQuery::removeStatsField — Removes one of the stats.field parameters
  • SolrQuery::setEchoHandler — Toggles the echoHandler parameter
  • SolrQuery::setEchoParams — Determines what kind of parameters to include in the response
  • SolrQuery::setExpand — Enables/Disables the Expand Component
  • SolrQuery::setExpandQuery — Sets the expand.q parameter
  • SolrQuery::setExpandRows — Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExplainOther — Sets the explainOther common query parameter
  • SolrQuery::setFacet — Maps to the facet parameter. Enables or disables facetting
  • SolrQuery::setFacetDateEnd — Maps to facet.date.end
  • SolrQuery::setFacetDateGap — Maps to facet.date.gap
  • SolrQuery::setFacetDateHardEnd — Maps to facet.date.hardend
  • SolrQuery::setFacetDateStart — Maps to facet.date.start
  • SolrQuery::setFacetEnumCacheMinDefaultFrequency — Sets the minimum document frequency used for determining term count
  • SolrQuery::setFacetLimit — Maps to facet.limit
  • SolrQuery::setFacetMethod — Specifies the type of algorithm to use when faceting a field
  • SolrQuery::setFacetMinCount — Maps to facet.mincount
  • SolrQuery::setFacetMissing — Maps to facet.missing
  • SolrQuery::setFacetOffset — Sets the offset into the list of constraints to allow for pagination
  • SolrQuery::setFacetPrefix — Specifies a string prefix with which to limits the terms on which to facet
  • SolrQuery::setFacetSort — Determines the ordering of the facet field constraints
  • SolrQuery::setGroup — Enable/Disable result grouping (group parameter)
  • SolrQuery::setGroupCachePercent — Enables caching for result grouping
  • SolrQuery::setGroupFacet — Sets group.facet parameter
  • SolrQuery::setGroupFormat — Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupLimit — Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain — If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups — If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupOffset — Sets the group.offset parameter
  • SolrQuery::setGroupTruncate — If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setHighlight — Enables or disables highlighting
  • SolrQuery::setHighlightAlternateField — Specifies the backup field to use
  • SolrQuery::setHighlightFormatter — Specify a formatter for the highlight output
  • SolrQuery::setHighlightFragmenter — Sets a text snippet generator for highlighted text
  • SolrQuery::setHighlightFragsize — The size of fragments to consider for highlighting
  • SolrQuery::setHighlightHighlightMultiTerm — Use SpanScorer to highlight phrase terms
  • SolrQuery::setHighlightMaxAlternateFieldLength — Sets the maximum number of characters of the field to return
  • SolrQuery::setHighlightMaxAnalyzedChars — Specifies the number of characters into a document to look for suitable snippets
  • SolrQuery::setHighlightMergeContiguous — Whether or not to collapse contiguous fragments into a single fragment
  • SolrQuery::setHighlightRegexMaxAnalyzedChars — Specify the maximum number of characters to analyze
  • SolrQuery::setHighlightRegexPattern — Specify the regular expression for fragmenting
  • SolrQuery::setHighlightRegexSlop — Sets the factor by which the regex fragmenter can stray from the ideal fragment size
  • SolrQuery::setHighlightRequireFieldMatch — Require field matching during highlighting
  • SolrQuery::setHighlightSimplePost — Sets the text which appears after a highlighted term
  • SolrQuery::setHighlightSimplePre — Sets the text which appears before a highlighted term
  • SolrQuery::setHighlightSnippets — Sets the maximum number of highlighted snippets to generate per field
  • SolrQuery::setHighlightUsePhraseHighlighter — Whether to highlight phrase terms only when they appear within the query phrase
  • SolrQuery::setMlt — Enables or disables moreLikeThis
  • SolrQuery::setMltBoost — Set if the query will be boosted by the interesting term relevance
  • SolrQuery::setMltCount — Set the number of similar documents to return for each result
  • SolrQuery::setMltMaxNumQueryTerms — Sets the maximum number of query terms included
  • SolrQuery::setMltMaxNumTokens — Specifies the maximum number of tokens to parse
  • SolrQuery::setMltMaxWordLength — Sets the maximum word length
  • SolrQuery::setMltMinDocFrequency — Sets the mltMinDoc frequency
  • SolrQuery::setMltMinTermFrequency — Sets the frequency below which terms will be ignored in the source docs
  • SolrQuery::setMltMinWordLength — Sets the minimum word length
  • SolrQuery::setOmitHeader — Exclude the header from the returned results
  • SolrQuery::setQuery — Sets the search query
  • SolrQuery::setRows — Specifies the maximum number of rows to return in the result
  • SolrQuery::setShowDebugInfo — Flag to show debug information
  • SolrQuery::setStart — Specifies the number of rows to skip
  • SolrQuery::setStats — Enables or disables the Stats component
  • SolrQuery::setTerms — Enables or disables the TermsComponent
  • SolrQuery::setTermsField — Sets the name of the field to get the Terms from
  • SolrQuery::setTermsIncludeLowerBound — Include the lower bound term in the result set
  • SolrQuery::setTermsIncludeUpperBound — Include the upper bound term in the result set
  • SolrQuery::setTermsLimit — Sets the maximum number of terms to return
  • SolrQuery::setTermsLowerBound — Specifies the Term to start from
  • SolrQuery::setTermsMaxCount — Sets the maximum document frequency
  • SolrQuery::setTermsMinCount — Sets the minimum document frequency
  • SolrQuery::setTermsPrefix — Restrict matches to terms that start with the prefix
  • SolrQuery::setTermsReturnRaw — Return the raw characters of the indexed term
  • SolrQuery::setTermsSort — Specifies how to sort the returned terms
  • SolrQuery::setTermsUpperBound — Sets the term to stop at
  • SolrQuery::setTimeAllowed — The time allowed for search to finish


Overrides main filter query, determines which documents to include in the main group

  • « SolrQuery
  • SolrQuery::addExpandSortField »
  • PHP Manual
  • SolrQuery
  • Overrides main filter query, determines which documents to include in the main group

SolrQuery::addExpandFilterQuery

(PECL solr >= 2.2.0)

SolrQuery::addExpandFilterQuery — Overrides main filter query, determines which documents to include in the main group

Описание

public SolrQuery::addExpandFilterQuery ( string $fq ) : SolrQuery

Overrides main filter query, determines which documents to include in the main group.

Список параметров

fq

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Orders the documents within the expanded groups (expand.sort parameter)

  • « SolrQuery::addExpandFilterQuery
  • SolrQuery::addFacetDateField »
  • PHP Manual
  • SolrQuery
  • Orders the documents within the expanded groups (expand.sort parameter)

SolrQuery::addExpandSortField

(PECL solr >= 2.2.0)

SolrQuery::addExpandSortField — Orders the documents within the expanded groups (expand.sort parameter)

Описание

public SolrQuery::addExpandSortField ( string $field [, string $order ] ) : SolrQuery

Orders the documents within the expanded groups (expand.sort parameter).

Список параметров

field

field name

order

Order ASC/DESC, utilizes SolrQuery::ORDER_* constants.

Default: SolrQuery::ORDER_DESC

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Maps to facet.date

  • « SolrQuery::addExpandSortField
  • SolrQuery::addFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date

SolrQuery::addFacetDateField

(PECL solr >= 0.9.2)

SolrQuery::addFacetDateField — Maps to facet.date

Описание

public SolrQuery::addFacetDateField ( string $dateField ) : SolrQuery

This method allows you to specify a field which should be treated as a facet.

It can be used multiple times with different field names to indicate multiple facet fields

Список параметров

dateField

The name of the date field.

Возвращаемые значения

Returns a SolrQuery object.


Adds another facet.date.other parameter

  • « SolrQuery::addFacetDateField
  • SolrQuery::addFacetField »
  • PHP Manual
  • SolrQuery
  • Adds another facet.date.other parameter

SolrQuery::addFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::addFacetDateOther — Adds another facet.date.other parameter

Описание

public SolrQuery::addFacetDateOther ( string $value [, string $field_override ] ) : SolrQuery

Sets the facet.date.other parameter. Accepts an optional field override

Список параметров

value

The value to use.

field_override

The field name for the override.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Adds another field to the facet

  • « SolrQuery::addFacetDateOther
  • SolrQuery::addFacetQuery »
  • PHP Manual
  • SolrQuery
  • Adds another field to the facet

SolrQuery::addFacetField

(PECL solr >= 0.9.2)

SolrQuery::addFacetField — Adds another field to the facet

Описание

public SolrQuery::addFacetField ( string $field ) : SolrQuery

Adds another field to the facet

Список параметров

field

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.

Примеры

Пример #1 SolrQuery::addFacetField() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery($query);

$query->addField('price')->addField('color');

$query->setFacet(true);

$query->addFacetField('price')->addFacetField('color');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response['facet_counts']['facet_fields']);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [color] => SolrObject Object
        (
            [blue] => 20
            [green] => 100
        )

)


Adds a facet query

  • « SolrQuery::addFacetField
  • SolrQuery::addField »
  • PHP Manual
  • SolrQuery
  • Adds a facet query

SolrQuery::addFacetQuery

(PECL solr >= 0.9.2)

SolrQuery::addFacetQuery — Adds a facet query

Описание

public SolrQuery::addFacetQuery ( string $facetQuery ) : SolrQuery

Adds a facet query

Список параметров

facetQuery

The facet query

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.

Примеры

Пример #1 SolrQuery::addFacetField() example

<?php

$options = array
(
        'hostname' => SOLR_SERVER_HOSTNAME,
        'login'    => SOLR_SERVER_USERNAME,
        'password' => SOLR_SERVER_PASSWORD,
        'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetQuery('price:[* TO 500]')->addFacetQuery('price:[500 TO *]');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response->facet_counts->facet_queries);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [price:[* TO 500]] => 14
    [price:[500 TO *]] => 2
)


Specifies which fields to return in the result

  • « SolrQuery::addFacetQuery
  • SolrQuery::addFilterQuery »
  • PHP Manual
  • SolrQuery
  • Specifies which fields to return in the result

SolrQuery::addField

(PECL solr >= 0.9.2)

SolrQuery::addField — Specifies which fields to return in the result

Описание

public SolrQuery::addField ( string $field ) : SolrQuery

This method is used to used to specify a set of fields to return, thereby restricting the amount of data returned in the response.

It should be called multiple time, once for each field name.

Список параметров

field

The name of the field

Возвращаемые значения

Returns the current SolrQuery object


Specifies a filter query

  • « SolrQuery::addField
  • SolrQuery::addGroupField »
  • PHP Manual
  • SolrQuery
  • Specifies a filter query

SolrQuery::addFilterQuery

(PECL solr >= 0.9.2)

SolrQuery::addFilterQuery — Specifies a filter query

Описание

public SolrQuery::addFilterQuery ( string $fq ) : SolrQuery

Specifies a filter query

Список параметров

fq

The filter query

Возвращаемые значения

Returns the current SolrQuery object.

Примеры

Пример #1 SolrQuery::addFilterQuery() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('*:*');

$query->addFilterQuery('color:blue,green');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response['facet_counts']['facet_fields']);

?>

Результатом выполнения данного примера будет что-то подобное:

 &fq=color:blue,green


Add a field to be used to group results

  • « SolrQuery::addFilterQuery
  • SolrQuery::addGroupFunction »
  • PHP Manual
  • SolrQuery
  • Add a field to be used to group results

SolrQuery::addGroupField

(PECL solr >= 2.2.0)

SolrQuery::addGroupField — Add a field to be used to group results

Описание

public SolrQuery::addGroupField ( string $value ) : SolrQuery

The name of the field by which to group results. The field must be single-valued, and either be indexed or a field type that has a value source and works in a function query, such as ExternalFileField. It must also be a string-based field, such as StrField or TextField Uses group.field parameter

Список параметров

value

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Allows grouping results based on the unique values of a function query (group.func parameter)

  • « SolrQuery::addGroupField
  • SolrQuery::addGroupQuery »
  • PHP Manual
  • SolrQuery
  • Allows grouping results based on the unique values of a function query (group.func parameter)

SolrQuery::addGroupFunction

(PECL solr >= 2.2.0)

SolrQuery::addGroupFunction — Allows grouping results based on the unique values of a function query (group.func parameter)

Описание

public SolrQuery::addGroupFunction ( string $value ) : SolrQuery

Adds a group function (group.func parameter) Allows grouping results based on the unique values of a function query.

Список параметров

value

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Allows grouping of documents that match the given query

  • « SolrQuery::addGroupFunction
  • SolrQuery::addGroupSortField »
  • PHP Manual
  • SolrQuery
  • Allows grouping of documents that match the given query

SolrQuery::addGroupQuery

(PECL solr >= 2.2.0)

SolrQuery::addGroupQuery — Allows grouping of documents that match the given query

Описание

public SolrQuery::addGroupQuery ( string $value ) : SolrQuery

Allows grouping of documents that match the given query. Adds query to the group.query parameter

Список параметров

value

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Add a group sort field (group.sort parameter)

  • « SolrQuery::addGroupQuery
  • SolrQuery::addHighlightField »
  • PHP Manual
  • SolrQuery
  • Add a group sort field (group.sort parameter)

SolrQuery::addGroupSortField

(PECL solr >= 2.2.0)

SolrQuery::addGroupSortField — Add a group sort field (group.sort parameter)

Описание

public SolrQuery::addGroupSortField ( string $field [, int $order ] ) : SolrQuery

Allow sorting group documents, using group sort field (group.sort parameter).

Список параметров

field

Field name

order

Order ASC/DESC, utilizes SolrQuery::ORDER_* constants

Возвращаемые значения

Примеры

Пример #1 SolrQuery::addGroupSortField() example

<?php

$solrQuery = new SolrQuery('*:*');
$solrQuery
    ->setGroup(true)
    ->addGroupSortField('price', SolrQuery::ORDER_ASC);

echo $solrQuery;
?>

Результатом выполнения данного примера будет что-то подобное:

q=*:*&group=true&group.sort=price asc

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Maps to hl.fl

  • « SolrQuery::addGroupSortField
  • SolrQuery::addMltField »
  • PHP Manual
  • SolrQuery
  • Maps to hl.fl

SolrQuery::addHighlightField

(PECL solr >= 0.9.2)

SolrQuery::addHighlightField — Maps to hl.fl

Описание

public SolrQuery::addHighlightField ( string $field ) : SolrQuery

Maps to hl.fl. This is used to specify that highlighted snippets should be generated for a particular field

Список параметров

field

Name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets a field to use for similarity

  • « SolrQuery::addHighlightField
  • SolrQuery::addMltQueryField »
  • PHP Manual
  • SolrQuery
  • Sets a field to use for similarity

SolrQuery::addMltField

(PECL solr >= 0.9.2)

SolrQuery::addMltField — Sets a field to use for similarity

Описание

public SolrQuery::addMltField ( string $field ) : SolrQuery

Maps to mlt.fl. It specifies that a field should be used for similarity.

Список параметров

field

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to mlt.qf

  • « SolrQuery::addMltField
  • SolrQuery::addSortField »
  • PHP Manual
  • SolrQuery
  • Maps to mlt.qf

SolrQuery::addMltQueryField

(PECL solr >= 0.9.2)

SolrQuery::addMltQueryField — Maps to mlt.qf

Описание

public SolrQuery::addMltQueryField ( string $field , float $boost ) : SolrQuery

Maps to mlt.qf. It is used to specify query fields and their boosts

Список параметров

field

The name of the field

boost

Its boost value

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Used to control how the results should be sorted

  • « SolrQuery::addMltQueryField
  • SolrQuery::addStatsFacet »
  • PHP Manual
  • SolrQuery
  • Used to control how the results should be sorted

SolrQuery::addSortField

(PECL solr >= 0.9.2)

SolrQuery::addSortField — Used to control how the results should be sorted

Описание

public SolrQuery::addSortField ( string $field [, int $order = SolrQuery::ORDER_DESC ] ) : SolrQuery

Used to control how the results should be sorted.

Список параметров

field

The name of the field

order

The sort direction. This should be either SolrQuery::ORDER_ASC or SolrQuery::ORDER_DESC.

Возвращаемые значения

Returns the current SolrQuery object.


Requests a return of sub results for values within the given facet

  • « SolrQuery::addSortField
  • SolrQuery::addStatsField »
  • PHP Manual
  • SolrQuery
  • Requests a return of sub results for values within the given facet

SolrQuery::addStatsFacet

(PECL solr >= 0.9.2)

SolrQuery::addStatsFacet — Requests a return of sub results for values within the given facet

Описание

public SolrQuery::addStatsFacet ( string $field ) : SolrQuery

Requests a return of sub results for values within the given facet. Maps to the stats.facet field

Список параметров

field

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to stats.field parameter

  • « SolrQuery::addStatsFacet
  • SolrQuery::collapse »
  • PHP Manual
  • SolrQuery
  • Maps to stats.field parameter

SolrQuery::addStatsField

(PECL solr >= 0.9.2)

SolrQuery::addStatsField — Maps to stats.field parameter

Описание

public SolrQuery::addStatsField ( string $field ) : SolrQuery

Maps to stats.field parameter This methods adds another stats.field parameter.

Список параметров

field

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Collapses the result set to a single document per group

  • « SolrQuery::addStatsField
  • SolrQuery::__construct »
  • PHP Manual
  • SolrQuery
  • Collapses the result set to a single document per group

SolrQuery::collapse

(Информация о версии неизвестна, возможно, только в Git)

SolrQuery::collapse — Collapses the result set to a single document per group

Описание

public SolrQuery::collapse ( SolrCollapseFunction $collapseFunction ) : SolrQuery

Collapses the result set to a single document per group before it forwards the result set to the rest of the search components.

So all downstream components (faceting, highlighting, etc...) will work with the collapsed result set.

Список параметров

collapseFunction

Возвращаемые значения

Returns the current SolrQuery object

Примеры

Пример #1 SolrQuery::collapse() example

<?php

include "bootstrap.php";

$options = array
(
        'hostname' => SOLR_SERVER_HOSTNAME,
        'login'    => SOLR_SERVER_USERNAME,
        'password' => SOLR_SERVER_PASSWORD,
        'port'     => SOLR_SERVER_PORT,
        'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$collapseFunction = new SolrCollapseFunction('manu_id_s');

$collapseFunction
->setSize(2)
->setNullPolicy(SolrCollapseFunction::NULLPOLICY_IGNORE);

$query
->collapse($collapseFunction)
->setRows(4);

$queryResponse = $client->query($query);

$response = $queryResponse->getResponse();

print_r($response);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [q] => *:*
                    [indent] => on
                    [fq] => {!collapse field=manu_id_s size=2 nullPolicy=ignore}
                    [rows] => 4
                    [version] => 2.2
                    [wt] => xml
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 14
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => SP2514N
                            [name] => Array
                                (
                                    [0] => Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133
                                )

                            [manu] => Array
                                (
                                    [0] => Samsung Electronics Co. Ltd.
                                )

                            [manu_id_s] => samsung
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => 7200RPM, 8MB cache, IDE Ultra ATA-133
                                    [1] => NoiseGuard, SilentSeek technology, Fluid Dynamic Bearing (FDB) motor
                                )

                            [price] => Array
                                (
                                    [0] => 92
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [store] => Array
                                (
                                    [0] => 35.0752,-97.032
                                )

                            [_version_] => 1510294336412057600
                        )

                    [1] => SolrObject Object
                        (
                            [id] => 6H500F0
                            [name] => Array
                                (
                                    [0] => Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300
                                )

                            [manu] => Array
                                (
                                    [0] => Maxtor Corp.
                                )

                            [manu_id_s] => maxtor
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => SATA 3.0Gb/s, NCQ
                                    [1] => 8.5ms seek
                                    [2] => 16MB cache
                                )

                            [price] => Array
                                (
                                    [0] => 350
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 45.17614,-93.87341
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [_version_] => 1510294336449806336
                        )

                    [2] => SolrObject Object
                        (
                            [id] => F8V7067-APL-KIT
                            [name] => Array
                                (
                                    [0] => Belkin Mobile Power Cord for iPod w/ Dock
                                )

                            [manu] => Array
                                (
                                    [0] => Belkin
                                )

                            [manu_id_s] => belkin
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => connector
                                )

                            [features] => Array
                                (
                                    [0] => car power adapter, white
                                )

                            [weight] => Array
                                (
                                    [0] => 4
                                )

                            [price] => Array
                                (
                                    [0] => 19.95
                                )

                            [popularity] => Array
                                (
                                    [0] => 1
                                )

                            [inStock] => Array
                                (
                                    [0] =>
                                )

                            [store] => Array
                                (
                                    [0] => 45.18014,-93.87741
                                )

                            [manufacturedate_dt] => 2005-08-01T16:30:25Z
                            [_version_] => 1510294336458194944
                        )

                    [3] => SolrObject Object
                        (
                            [id] => MA147LL/A
                            [name] => Array
                                (
                                    [0] => Apple 60 GB iPod with Video Playback Black
                                )

                            [manu] => Array
                                (
                                    [0] => Apple Computer Inc.
                                )

                            [manu_id_s] => apple
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => music
                                )

                            [features] => Array
                                (
                                    [0] => iTunes, Podcasts, Audiobooks
                                    [1] => Stores up to 15,000 songs, 25,000 photos, or 150 hours of video
                                    [2] => 2.5-inch, 320x240 color TFT LCD display with LED backlight
                                    [3] => Up to 20 hours of battery life
                                    [4] => Plays AAC, MP3, WAV, AIFF, Audible, Apple Lossless, H.264 video
                                    [5] => Notes, Calendar, Phone book, Hold button, Date display, Photo wallet, Built-in games, JPEG photo playback, Upgradeable firmware, USB 2.0 compatibility, Playback speed control, Rechargeable capability, Battery level indication
                                )

                            [includes] => Array
                                (
                                    [0] => earbud headphones, USB cable
                                )

                            [weight] => Array
                                (
                                    [0] => 5.5
                                )

                            [price] => Array
                                (
                                    [0] => 399
                                )

                            [popularity] => Array
                                (
                                    [0] => 10
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 37.7752,-100.0232
                                )

                            [manufacturedate_dt] => 2005-10-12T08:00:00Z
                            [_version_] => 1510294336562003968
                        )

                )

        )

)


Constructor

  • « SolrQuery::collapse
  • SolrQuery::__destruct »
  • PHP Manual
  • SolrQuery
  • Constructor

SolrQuery::__construct

(PECL solr >= 0.9.2)

SolrQuery::__construct — Constructor

Описание

public SolrQuery::__construct ([ string $q ] )

Constructor.

Список параметров

q

Optional search query

Возвращаемые значения

None

Ошибки

Emits SolrIllegalArgumentException in case of an invalid parameter was passed.

Список изменений

Версия | Описание
2.0.0 | If q was invalid, then a SolrIllegalArgumentException is now thrown. Previously an error was emitted.


Destructor

  • « SolrQuery::__construct
  • SolrQuery::getExpand »
  • PHP Manual
  • SolrQuery
  • Destructor

SolrQuery::__destruct

(PECL solr >= 0.9.2)

SolrQuery::__destruct — Destructor

Описание

public SolrQuery::__destruct ( void ) : void

Destructor

Список параметров

У этой функции нет параметров.

Возвращаемые значения

None.


Returns true if group expanding is enabled

  • « SolrQuery::__destruct
  • SolrQuery::getExpandFilterQueries »
  • PHP Manual
  • SolrQuery
  • Returns true if group expanding is enabled

SolrQuery::getExpand

(PECL solr >= 2.2.0)

SolrQuery::getExpand — Returns true if group expanding is enabled

Описание

public SolrQuery::getExpand ( void ) : bool

Returns TRUE if group expanding is enabled


Returns the expand filter queries

  • « SolrQuery::getExpand
  • SolrQuery::getExpandQuery »
  • PHP Manual
  • SolrQuery
  • Returns the expand filter queries

SolrQuery::getExpandFilterQueries

(PECL solr >= 2.2.0)

SolrQuery::getExpandFilterQueries — Returns the expand filter queries

Описание

public SolrQuery::getExpandFilterQueries ( void ) : array

Returns the expand filter queries


Returns the expand query expand.q parameter

  • « SolrQuery::getExpandFilterQueries
  • SolrQuery::getExpandRows »
  • PHP Manual
  • SolrQuery
  • Returns the expand query expand.q parameter

SolrQuery::getExpandQuery

(PECL solr >= 2.2.0)

SolrQuery::getExpandQuery — Returns the expand query expand.q parameter

Описание

public SolrQuery::getExpandQuery ( void ) : array

Returns the expand query expand.q parameter


Returns The number of rows to display in each group (expand.rows)

  • « SolrQuery::getExpandQuery
  • SolrQuery::getExpandSortFields »
  • PHP Manual
  • SolrQuery
  • Returns The number of rows to display in each group (expand.rows)

SolrQuery::getExpandRows

(PECL solr >= 2.2.0)

SolrQuery::getExpandRows — Returns The number of rows to display in each group (expand.rows)

Описание

public SolrQuery::getExpandRows ( void ) : int

Returns The number of rows to display in each group (expand.rows)


Returns an array of fields

  • « SolrQuery::getExpandRows
  • SolrQuery::getFacet »
  • PHP Manual
  • SolrQuery
  • Returns an array of fields

SolrQuery::getExpandSortFields

(PECL solr >= 2.2.0)

SolrQuery::getExpandSortFields — Returns an array of fields

Описание

public SolrQuery::getExpandSortFields ( void ) : array

Returns an array of fields


Returns the value of the facet parameter

  • « SolrQuery::getExpandSortFields
  • SolrQuery::getFacetDateEnd »
  • PHP Manual
  • SolrQuery
  • Returns the value of the facet parameter

SolrQuery::getFacet

(PECL solr >= 0.9.2)

SolrQuery::getFacet — Returns the value of the facet parameter

Описание

public SolrQuery::getFacet ( void ) : bool

Returns the value of the facet parameter.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set


Returns the value for the facet.date.end parameter

  • « SolrQuery::getFacet
  • SolrQuery::getFacetDateFields »
  • PHP Manual
  • SolrQuery
  • Returns the value for the facet.date.end parameter

SolrQuery::getFacetDateEnd

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateEnd — Returns the value for the facet.date.end parameter

Описание

public SolrQuery::getFacetDateEnd ([ string $field_override ] ) : string

Returns the value for the facet.date.end parameter. This method accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set


Returns all the facet.date fields

  • « SolrQuery::getFacetDateEnd
  • SolrQuery::getFacetDateGap »
  • PHP Manual
  • SolrQuery
  • Returns all the facet.date fields

SolrQuery::getFacetDateFields

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateFields — Returns all the facet.date fields

Описание

public SolrQuery::getFacetDateFields ( void ) : array

Returns all the facet.date fields

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns all the facet.date fields as an array or NULL if none was set


Returns the value of the facet.date.gap parameter

  • « SolrQuery::getFacetDateFields
  • SolrQuery::getFacetDateHardEnd »
  • PHP Manual
  • SolrQuery
  • Returns the value of the facet.date.gap parameter

SolrQuery::getFacetDateGap

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateGap — Returns the value of the facet.date.gap parameter

Описание

public SolrQuery::getFacetDateGap ([ string $field_override ] ) : string

Returns the value of the facet.date.gap parameter. It accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set


Returns the value of the facet.date.hardend parameter

  • « SolrQuery::getFacetDateGap
  • SolrQuery::getFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Returns the value of the facet.date.hardend parameter

SolrQuery::getFacetDateHardEnd

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateHardEnd — Returns the value of the facet.date.hardend parameter

Описание

public SolrQuery::getFacetDateHardEnd ([ string $field_override ] ) : string

Returns the value of the facet.date.hardend parameter. Accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set


Returns the value for the facet.date.other parameter

  • « SolrQuery::getFacetDateHardEnd
  • SolrQuery::getFacetDateStart »
  • PHP Manual
  • SolrQuery
  • Returns the value for the facet.date.other parameter

SolrQuery::getFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateOther — Returns the value for the facet.date.other parameter

Описание

public SolrQuery::getFacetDateOther ([ string $field_override ] ) : array

Returns the value for the facet.date.other parameter. This method accepts an optional field override.

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns an array on success and NULL if not set.


Returns the lower bound for the first date range for all date faceting on this field

  • « SolrQuery::getFacetDateOther
  • SolrQuery::getFacetFields »
  • PHP Manual
  • SolrQuery
  • Returns the lower bound for the first date range for all date faceting on this field

SolrQuery::getFacetDateStart

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateStart — Returns the lower bound for the first date range for all date faceting on this field

Описание

public SolrQuery::getFacetDateStart ([ string $field_override ] ) : string

Returns the lower bound for the first date range for all date faceting on this field. Accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set


Returns all the facet fields

  • « SolrQuery::getFacetDateStart
  • SolrQuery::getFacetLimit »
  • PHP Manual
  • SolrQuery
  • Returns all the facet fields

SolrQuery::getFacetFields

(PECL solr >= 0.9.2)

SolrQuery::getFacetFields — Returns all the facet fields

Описание

public SolrQuery::getFacetFields ( void ) : array

Returns all the facet fields

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array of all the fields and NULL if none was set


Returns the maximum number of constraint counts that should be returned for the facet fields

  • « SolrQuery::getFacetFields
  • SolrQuery::getFacetMethod »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of constraint counts that should be returned for the facet fields

SolrQuery::getFacetLimit

(PECL solr >= 0.9.2)

SolrQuery::getFacetLimit — Returns the maximum number of constraint counts that should be returned for the facet fields

Описание

public SolrQuery::getFacetLimit ([ string $field_override ] ) : int

Returns the maximum number of constraint counts that should be returned for the facet fields. This method accepts an optional field override

Список параметров

field_override

The name of the field to override for

Возвращаемые значения

Returns an integer on success and NULL if not set


Returns the value of the facet.method parameter

  • « SolrQuery::getFacetLimit
  • SolrQuery::getFacetMinCount »
  • PHP Manual
  • SolrQuery
  • Returns the value of the facet.method parameter

SolrQuery::getFacetMethod

(PECL solr >= 0.9.2)

SolrQuery::getFacetMethod — Returns the value of the facet.method parameter

Описание

public SolrQuery::getFacetMethod ([ string $field_override ] ) : string

Returns the value of the facet.method parameter. This accepts an optional field override.

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set


Returns the minimum counts for facet fields should be included in the response

  • « SolrQuery::getFacetMethod
  • SolrQuery::getFacetMissing »
  • PHP Manual
  • SolrQuery
  • Returns the minimum counts for facet fields should be included in the response

SolrQuery::getFacetMinCount

(PECL solr >= 0.9.2)

SolrQuery::getFacetMinCount — Returns the minimum counts for facet fields should be included in the response

Описание

public SolrQuery::getFacetMinCount ([ string $field_override ] ) : int

Returns the minimum counts for facet fields should be included in the response. It accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns an integer on success and NULL if not set


Returns the current state of the facet.missing parameter

  • « SolrQuery::getFacetMinCount
  • SolrQuery::getFacetOffset »
  • PHP Manual
  • SolrQuery
  • Returns the current state of the facet.missing parameter

SolrQuery::getFacetMissing

(PECL solr >= 0.9.2)

SolrQuery::getFacetMissing — Returns the current state of the facet.missing parameter

Описание

public SolrQuery::getFacetMissing ([ string $field_override ] ) : bool

Returns the current state of the facet.missing parameter. This accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a boolean on success and NULL if not set


Returns an offset into the list of constraints to be used for pagination

  • « SolrQuery::getFacetMissing
  • SolrQuery::getFacetPrefix »
  • PHP Manual
  • SolrQuery
  • Returns an offset into the list of constraints to be used for pagination

SolrQuery::getFacetOffset

(PECL solr >= 0.9.2)

SolrQuery::getFacetOffset — Returns an offset into the list of constraints to be used for pagination

Описание

public SolrQuery::getFacetOffset ([ string $field_override ] ) : int

Returns an offset into the list of constraints to be used for pagination. Accepts an optional field override

Список параметров

field_override

The name of the field to override for.

Возвращаемые значения

Returns an integer on success and NULL if not set


Returns the facet prefix

  • « SolrQuery::getFacetOffset
  • SolrQuery::getFacetQueries »
  • PHP Manual
  • SolrQuery
  • Returns the facet prefix

SolrQuery::getFacetPrefix

(PECL solr >= 0.9.2)

SolrQuery::getFacetPrefix — Returns the facet prefix

Описание

public SolrQuery::getFacetPrefix ([ string $field_override ] ) : string

Returns the facet prefix

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns all the facet queries

  • « SolrQuery::getFacetPrefix
  • SolrQuery::getFacetSort »
  • PHP Manual
  • SolrQuery
  • Returns all the facet queries

SolrQuery::getFacetQueries

(PECL solr >= 0.9.2)

SolrQuery::getFacetQueries — Returns all the facet queries

Описание

public SolrQuery::getFacetQueries ( void ) : array

Returns all the facet queries

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if not set.


Returns the facet sort type

  • « SolrQuery::getFacetQueries
  • SolrQuery::getFields »
  • PHP Manual
  • SolrQuery
  • Returns the facet sort type

SolrQuery::getFacetSort

(PECL solr >= 0.9.2)

SolrQuery::getFacetSort — Returns the facet sort type

Описание

public SolrQuery::getFacetSort ([ string $field_override ] ) : int

Returns an integer (SolrQuery::FACET_SORT_INDEX or SolrQuery::FACET_SORT_COUNT)

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns an integer (SolrQuery::FACET_SORT_INDEX or SolrQuery::FACET_SORT_COUNT) on success or NULL if not set.


Returns the list of fields that will be returned in the response

  • « SolrQuery::getFacetSort
  • SolrQuery::getFilterQueries »
  • PHP Manual
  • SolrQuery
  • Returns the list of fields that will be returned in the response

SolrQuery::getFields

(PECL solr >= 0.9.2)

SolrQuery::getFields — Returns the list of fields that will be returned in the response

Описание

public SolrQuery::getFields ( void ) : array

Returns the list of fields that will be returned in the response

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if not set.


Returns an array of filter queries

  • « SolrQuery::getFields
  • SolrQuery::getGroup »
  • PHP Manual
  • SolrQuery
  • Returns an array of filter queries

SolrQuery::getFilterQueries

(PECL solr >= 0.9.2)

SolrQuery::getFilterQueries — Returns an array of filter queries

Описание

public SolrQuery::getFilterQueries ( void ) : array

Returns an array of filter queries. These are queries that can be used to restrict the super set of documents that can be returned, without influencing score

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if not set.


Returns true if grouping is enabled

  • « SolrQuery::getFilterQueries
  • SolrQuery::getGroupCachePercent »
  • PHP Manual
  • SolrQuery
  • Returns true if grouping is enabled

SolrQuery::getGroup

(PECL solr >= 2.2.0)

SolrQuery::getGroup — Returns true if grouping is enabled

Описание

public SolrQuery::getGroup ( void ) : bool

Returns true if grouping is enabled

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)


Returns group cache percent value

  • « SolrQuery::getGroup
  • SolrQuery::getGroupFacet »
  • PHP Manual
  • SolrQuery
  • Returns group cache percent value

SolrQuery::getGroupCachePercent

(PECL solr >= 2.2.0)

SolrQuery::getGroupCachePercent — Returns group cache percent value

Описание

public SolrQuery::getGroupCachePercent ( void ) : int

Returns group cache percent value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Returns the group.facet parameter value

  • « SolrQuery::getGroupCachePercent
  • SolrQuery::getGroupFields »
  • PHP Manual
  • SolrQuery
  • Returns the group.facet parameter value

SolrQuery::getGroupFacet

(PECL solr >= 2.2.0)

SolrQuery::getGroupFacet — Returns the group.facet parameter value

Описание

public SolrQuery::getGroupFacet ( void ) : bool

Returns the group.facet parameter value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupFacet() - Sets group.facet parameter


Returns group fields (group.field parameter values)

  • « SolrQuery::getGroupFacet
  • SolrQuery::getGroupFormat »
  • PHP Manual
  • SolrQuery
  • Returns group fields (group.field parameter values)

SolrQuery::getGroupFields

(PECL solr >= 2.2.0)

SolrQuery::getGroupFields — Returns group fields (group.field parameter values)

Описание

public SolrQuery::getGroupFields ( void ) : array

Returns group fields (group.field parameter values)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::addGroupField() - Add a field to be used to group results


Returns the group.format value

  • « SolrQuery::getGroupFields
  • SolrQuery::getGroupFunctions »
  • PHP Manual
  • SolrQuery
  • Returns the group.format value

SolrQuery::getGroupFormat

(PECL solr >= 2.2.0)

SolrQuery::getGroupFormat — Returns the group.format value

Описание

public SolrQuery::getGroupFormat ( void ) : string

Returns the group.format value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)


Returns group functions (group.func parameter values)

  • « SolrQuery::getGroupFormat
  • SolrQuery::getGroupLimit »
  • PHP Manual
  • SolrQuery
  • Returns group functions (group.func parameter values)

SolrQuery::getGroupFunctions

(PECL solr >= 2.2.0)

SolrQuery::getGroupFunctions — Returns group functions (group.func parameter values)

Описание

public SolrQuery::getGroupFunctions ( void ) : array

Returns group functions (group.func parameter values)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)


Returns the group.limit value

  • « SolrQuery::getGroupFunctions
  • SolrQuery::getGroupMain »
  • PHP Manual
  • SolrQuery
  • Returns the group.limit value

SolrQuery::getGroupLimit

(PECL solr >= 2.2.0)

SolrQuery::getGroupLimit — Returns the group.limit value

Описание

public SolrQuery::getGroupLimit ( void ) : int

Returns the group.limit value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1


Returns the group.main value

  • « SolrQuery::getGroupLimit
  • SolrQuery::getGroupNGroups »
  • PHP Manual
  • SolrQuery
  • Returns the group.main value

SolrQuery::getGroupMain

(PECL solr >= 2.2.0)

SolrQuery::getGroupMain — Returns the group.main value

Описание

public SolrQuery::getGroupMain ( void ) : bool

Returns the group.main value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple


Returns the group.ngroups value

  • « SolrQuery::getGroupMain
  • SolrQuery::getGroupOffset »
  • PHP Manual
  • SolrQuery
  • Returns the group.ngroups value

SolrQuery::getGroupNGroups

(PECL solr >= 2.2.0)

SolrQuery::getGroupNGroups — Returns the group.ngroups value

Описание

public SolrQuery::getGroupNGroups ( void ) : bool

Returns the group.ngroups value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results


Returns the group.offset value

  • « SolrQuery::getGroupNGroups
  • SolrQuery::getGroupQueries »
  • PHP Manual
  • SolrQuery
  • Returns the group.offset value

SolrQuery::getGroupOffset

(PECL solr >= 2.2.0)

SolrQuery::getGroupOffset — Returns the group.offset value

Описание

public SolrQuery::getGroupOffset ( void ) : int

Returns the group.offset value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupOffset() - Sets the group.offset parameter


Returns all the group.query parameter values

  • « SolrQuery::getGroupOffset
  • SolrQuery::getGroupSortFields »
  • PHP Manual
  • SolrQuery
  • Returns all the group.query parameter values

SolrQuery::getGroupQueries

(PECL solr >= 2.2.0)

SolrQuery::getGroupQueries — Returns all the group.query parameter values

Описание

public SolrQuery::getGroupQueries ( void ) : array

Returns all the group.query parameter values

Список параметров

У этой функции нет параметров.

Возвращаемые значения

array

Смотрите также

  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query


Returns the group.sort value

  • « SolrQuery::getGroupQueries
  • SolrQuery::getGroupTruncate »
  • PHP Manual
  • SolrQuery
  • Returns the group.sort value

SolrQuery::getGroupSortFields

(PECL solr >= 2.2.0)

SolrQuery::getGroupSortFields — Returns the group.sort value

Описание

public SolrQuery::getGroupSortFields ( void ) : array

Returns the group.sort value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)


Returns the group.truncate value

  • « SolrQuery::getGroupSortFields
  • SolrQuery::getHighlight »
  • PHP Manual
  • SolrQuery
  • Returns the group.truncate value

SolrQuery::getGroupTruncate

(PECL solr >= 2.2.0)

SolrQuery::getGroupTruncate — Returns the group.truncate value

Описание

public SolrQuery::getGroupTruncate ( void ) : bool

Returns the group.truncate value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query


Returns the state of the hl parameter

  • « SolrQuery::getGroupTruncate
  • SolrQuery::getHighlightAlternateField »
  • PHP Manual
  • SolrQuery
  • Returns the state of the hl parameter

SolrQuery::getHighlight

(PECL solr >= 0.9.2)

SolrQuery::getHighlight — Returns the state of the hl parameter

Описание

public SolrQuery::getHighlight ( void ) : bool

Returns a boolean indicating whether or not to enable highlighted snippets to be generated in the query response.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns the highlight field to use as backup or default

  • « SolrQuery::getHighlight
  • SolrQuery::getHighlightFields »
  • PHP Manual
  • SolrQuery
  • Returns the highlight field to use as backup or default

SolrQuery::getHighlightAlternateField

(PECL solr >= 0.9.2)

SolrQuery::getHighlightAlternateField — Returns the highlight field to use as backup or default

Описание

public SolrQuery::getHighlightAlternateField ([ string $field_override ] ) : string

Returns the highlight field to use as backup or default. It accepts an optional override.

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns all the fields that Solr should generate highlighted snippets for

  • « SolrQuery::getHighlightAlternateField
  • SolrQuery::getHighlightFormatter »
  • PHP Manual
  • SolrQuery
  • Returns all the fields that Solr should generate highlighted snippets for

SolrQuery::getHighlightFields

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFields — Returns all the fields that Solr should generate highlighted snippets for

Описание

public SolrQuery::getHighlightFields ( void ) : array

Returns all the fields that Solr should generate highlighted snippets for

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if not set.


Returns the formatter for the highlighted output

  • « SolrQuery::getHighlightFields
  • SolrQuery::getHighlightFragmenter »
  • PHP Manual
  • SolrQuery
  • Returns the formatter for the highlighted output

SolrQuery::getHighlightFormatter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFormatter — Returns the formatter for the highlighted output

Описание

public SolrQuery::getHighlightFormatter ([ string $field_override ] ) : string

Returns the formatter for the highlighted output

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns the text snippet generator for highlighted text

  • « SolrQuery::getHighlightFormatter
  • SolrQuery::getHighlightFragsize »
  • PHP Manual
  • SolrQuery
  • Returns the text snippet generator for highlighted text

SolrQuery::getHighlightFragmenter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFragmenter — Returns the text snippet generator for highlighted text

Описание

public SolrQuery::getHighlightFragmenter ([ string $field_override ] ) : string

Returns the text snippet generator for highlighted text. Accepts an optional field override.

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns the number of characters of fragments to consider for highlighting

  • « SolrQuery::getHighlightFragmenter
  • SolrQuery::getHighlightHighlightMultiTerm »
  • PHP Manual
  • SolrQuery
  • Returns the number of characters of fragments to consider for highlighting

SolrQuery::getHighlightFragsize

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFragsize — Returns the number of characters of fragments to consider for highlighting

Описание

public SolrQuery::getHighlightFragsize ([ string $field_override ] ) : int

Returns the number of characters of fragments to consider for highlighting. Zero implies no fragmenting. The entire field should be used.

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns an integer on success or NULL if not set.


Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries

  • « SolrQuery::getHighlightFragsize
  • SolrQuery::getHighlightMaxAlternateFieldLength »
  • PHP Manual
  • SolrQuery
  • Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries

SolrQuery::getHighlightHighlightMultiTerm

(PECL solr >= 0.9.2)

SolrQuery::getHighlightHighlightMultiTerm — Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries

Описание

public SolrQuery::getHighlightHighlightMultiTerm ( void ) : bool

Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns the maximum number of characters of the field to return

  • « SolrQuery::getHighlightHighlightMultiTerm
  • SolrQuery::getHighlightMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of characters of the field to return

SolrQuery::getHighlightMaxAlternateFieldLength

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMaxAlternateFieldLength — Returns the maximum number of characters of the field to return

Описание

public SolrQuery::getHighlightMaxAlternateFieldLength ([ string $field_override ] ) : int

Returns the maximum number of characters of the field to return

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the maximum number of characters into a document to look for suitable snippets

  • « SolrQuery::getHighlightMaxAlternateFieldLength
  • SolrQuery::getHighlightMergeContiguous »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of characters into a document to look for suitable snippets

SolrQuery::getHighlightMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMaxAnalyzedChars — Returns the maximum number of characters into a document to look for suitable snippets

Описание

public SolrQuery::getHighlightMaxAnalyzedChars ( void ) : int

Returns the maximum number of characters into a document to look for suitable snippets

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns whether or not the collapse contiguous fragments into a single fragment

  • « SolrQuery::getHighlightMaxAnalyzedChars
  • SolrQuery::getHighlightRegexMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Returns whether or not the collapse contiguous fragments into a single fragment

SolrQuery::getHighlightMergeContiguous

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMergeContiguous — Returns whether or not the collapse contiguous fragments into a single fragment

Описание

public SolrQuery::getHighlightMergeContiguous ([ string $field_override ] ) : bool

Returns whether or not the collapse contiguous fragments into a single fragment. Accepts an optional field override.

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns the maximum number of characters from a field when using the regex fragmenter

  • « SolrQuery::getHighlightMergeContiguous
  • SolrQuery::getHighlightRegexPattern »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of characters from a field when using the regex fragmenter

SolrQuery::getHighlightRegexMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexMaxAnalyzedChars — Returns the maximum number of characters from a field when using the regex fragmenter

Описание

public SolrQuery::getHighlightRegexMaxAnalyzedChars ( void ) : int

Returns the maximum number of characters from a field when using the regex fragmenter

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the regular expression for fragmenting

  • « SolrQuery::getHighlightRegexMaxAnalyzedChars
  • SolrQuery::getHighlightRegexSlop »
  • PHP Manual
  • SolrQuery
  • Returns the regular expression for fragmenting

SolrQuery::getHighlightRegexPattern

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexPattern — Returns the regular expression for fragmenting

Описание

public SolrQuery::getHighlightRegexPattern ( void ) : string

Returns the regular expression used for fragmenting

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns the deviation factor from the ideal fragment size

  • « SolrQuery::getHighlightRegexPattern
  • SolrQuery::getHighlightRequireFieldMatch »
  • PHP Manual
  • SolrQuery
  • Returns the deviation factor from the ideal fragment size

SolrQuery::getHighlightRegexSlop

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexSlop — Returns the deviation factor from the ideal fragment size

Описание

public SolrQuery::getHighlightRegexSlop ( void ) : float

Returns the factor by which the regex fragmenter can deviate from the ideal fragment size to accomodate the regular expression

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a double on success and NULL if not set.


Returns if a field will only be highlighted if the query matched in this particular field

  • « SolrQuery::getHighlightRegexSlop
  • SolrQuery::getHighlightSimplePost »
  • PHP Manual
  • SolrQuery
  • Returns if a field will only be highlighted if the query matched in this particular field

SolrQuery::getHighlightRequireFieldMatch

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRequireFieldMatch — Returns if a field will only be highlighted if the query matched in this particular field

Описание

public SolrQuery::getHighlightRequireFieldMatch ( void ) : bool

Returns if a field will only be highlighted if the query matched in this particular field.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns the text which appears after a highlighted term

  • « SolrQuery::getHighlightRequireFieldMatch
  • SolrQuery::getHighlightSimplePre »
  • PHP Manual
  • SolrQuery
  • Returns the text which appears after a highlighted term

SolrQuery::getHighlightSimplePost

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSimplePost — Returns the text which appears after a highlighted term

Описание

public SolrQuery::getHighlightSimplePost ([ string $field_override ] ) : string

Returns the text which appears after a highlighted term. Accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns the text which appears before a highlighted term

  • « SolrQuery::getHighlightSimplePost
  • SolrQuery::getHighlightSnippets »
  • PHP Manual
  • SolrQuery
  • Returns the text which appears before a highlighted term

SolrQuery::getHighlightSimplePre

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSimplePre — Returns the text which appears before a highlighted term

Описание

public SolrQuery::getHighlightSimplePre ([ string $field_override ] ) : string

Returns the text which appears before a highlighted term. Accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns the maximum number of highlighted snippets to generate per field

  • « SolrQuery::getHighlightSimplePre
  • SolrQuery::getHighlightUsePhraseHighlighter »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of highlighted snippets to generate per field

SolrQuery::getHighlightSnippets

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSnippets — Returns the maximum number of highlighted snippets to generate per field

Описание

public SolrQuery::getHighlightSnippets ([ string $field_override ] ) : int

Returns the maximum number of highlighted snippets to generate per field. Accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the state of the hl.usePhraseHighlighter parameter

  • « SolrQuery::getHighlightSnippets
  • SolrQuery::getMlt »
  • PHP Manual
  • SolrQuery
  • Returns the state of the hl.usePhraseHighlighter parameter

SolrQuery::getHighlightUsePhraseHighlighter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightUsePhraseHighlighter — Returns the state of the hl.usePhraseHighlighter parameter

Описание

public SolrQuery::getHighlightUsePhraseHighlighter ( void ) : bool

Returns whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns whether or not MoreLikeThis results should be enabled

  • « SolrQuery::getHighlightUsePhraseHighlighter
  • SolrQuery::getMltBoost »
  • PHP Manual
  • SolrQuery
  • Returns whether or not MoreLikeThis results should be enabled

SolrQuery::getMlt

(PECL solr >= 0.9.2)

SolrQuery::getMlt — Returns whether or not MoreLikeThis results should be enabled

Описание

public SolrQuery::getMlt ( void ) : bool

Returns whether or not MoreLikeThis results should be enabled

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns whether or not the query will be boosted by the interesting term relevance

  • « SolrQuery::getMlt
  • SolrQuery::getMltCount »
  • PHP Manual
  • SolrQuery
  • Returns whether or not the query will be boosted by the interesting term relevance

SolrQuery::getMltBoost

(PECL solr >= 0.9.2)

SolrQuery::getMltBoost — Returns whether or not the query will be boosted by the interesting term relevance

Описание

public SolrQuery::getMltBoost ( void ) : bool

Returns whether or not the query will be boosted by the interesting term relevance

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns the number of similar documents to return for each result

  • « SolrQuery::getMltBoost
  • SolrQuery::getMltFields »
  • PHP Manual
  • SolrQuery
  • Returns the number of similar documents to return for each result

SolrQuery::getMltCount

(PECL solr >= 0.9.2)

SolrQuery::getMltCount — Returns the number of similar documents to return for each result

Описание

public SolrQuery::getMltCount ( void ) : int

Returns the number of similar documents to return for each result

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns all the fields to use for similarity

  • « SolrQuery::getMltCount
  • SolrQuery::getMltMaxNumQueryTerms »
  • PHP Manual
  • SolrQuery
  • Returns all the fields to use for similarity

SolrQuery::getMltFields

(PECL solr >= 0.9.2)

SolrQuery::getMltFields — Returns all the fields to use for similarity

Описание

public SolrQuery::getMltFields ( void ) : array

Returns all the fields to use for similarity

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if not set.


Returns the maximum number of query terms that will be included in any generated query

  • « SolrQuery::getMltFields
  • SolrQuery::getMltMaxNumTokens »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of query terms that will be included in any generated query

SolrQuery::getMltMaxNumQueryTerms

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxNumQueryTerms — Returns the maximum number of query terms that will be included in any generated query

Описание

public SolrQuery::getMltMaxNumQueryTerms ( void ) : int

Returns the maximum number of query terms that will be included in any generated query

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support

  • « SolrQuery::getMltMaxNumQueryTerms
  • SolrQuery::getMltMaxWordLength »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support

SolrQuery::getMltMaxNumTokens

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxNumTokens — Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support

Описание

public SolrQuery::getMltMaxNumTokens ( void ) : int

Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the maximum word length above which words will be ignored

  • « SolrQuery::getMltMaxNumTokens
  • SolrQuery::getMltMinDocFrequency »
  • PHP Manual
  • SolrQuery
  • Returns the maximum word length above which words will be ignored

SolrQuery::getMltMaxWordLength

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxWordLength — Returns the maximum word length above which words will be ignored

Описание

public SolrQuery::getMltMaxWordLength ( void ) : int

Returns the maximum word length above which words will be ignored

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs

  • « SolrQuery::getMltMaxWordLength
  • SolrQuery::getMltMinTermFrequency »
  • PHP Manual
  • SolrQuery
  • Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs

SolrQuery::getMltMinDocFrequency

(PECL solr >= 0.9.2)

SolrQuery::getMltMinDocFrequency — Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs

Описание

public SolrQuery::getMltMinDocFrequency ( void ) : int

Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the frequency below which terms will be ignored in the source document

  • « SolrQuery::getMltMinDocFrequency
  • SolrQuery::getMltMinWordLength »
  • PHP Manual
  • SolrQuery
  • Returns the frequency below which terms will be ignored in the source document

SolrQuery::getMltMinTermFrequency

(PECL solr >= 0.9.2)

SolrQuery::getMltMinTermFrequency — Returns the frequency below which terms will be ignored in the source document

Описание

public SolrQuery::getMltMinTermFrequency ( void ) : int

Returns the frequency below which terms will be ignored in the source document

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the minimum word length below which words will be ignored

  • « SolrQuery::getMltMinTermFrequency
  • SolrQuery::getMltQueryFields »
  • PHP Manual
  • SolrQuery
  • Returns the minimum word length below which words will be ignored

SolrQuery::getMltMinWordLength

(PECL solr >= 0.9.2)

SolrQuery::getMltMinWordLength — Returns the minimum word length below which words will be ignored

Описание

public SolrQuery::getMltMinWordLength ( void ) : int

Returns the minimum word length below which words will be ignored

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the query fields and their boosts

  • « SolrQuery::getMltMinWordLength
  • SolrQuery::getQuery »
  • PHP Manual
  • SolrQuery
  • Returns the query fields and their boosts

SolrQuery::getMltQueryFields

(PECL solr >= 0.9.2)

SolrQuery::getMltQueryFields — Returns the query fields and their boosts

Описание

public SolrQuery::getMltQueryFields ( void ) : array

Returns the query fields and their boosts

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if not set.


Returns the main query

  • « SolrQuery::getMltQueryFields
  • SolrQuery::getRows »
  • PHP Manual
  • SolrQuery
  • Returns the main query

SolrQuery::getQuery

(PECL solr >= 0.9.2)

SolrQuery::getQuery — Returns the main query

Описание

public SolrQuery::getQuery ( void ) : string

Returns the main search query

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns the maximum number of documents

  • « SolrQuery::getQuery
  • SolrQuery::getSortFields »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of documents

SolrQuery::getRows

(PECL solr >= 0.9.2)

SolrQuery::getRows — Returns the maximum number of documents

Описание

public SolrQuery::getRows ( void ) : int

Returns the maximum number of documents from the complete result set to return to the client for every request

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns all the sort fields

  • « SolrQuery::getRows
  • SolrQuery::getStart »
  • PHP Manual
  • SolrQuery
  • Returns all the sort fields

SolrQuery::getSortFields

(PECL solr >= 0.9.2)

SolrQuery::getSortFields — Returns all the sort fields

Описание

public SolrQuery::getSortFields ( void ) : array

Returns all the sort fields

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if none of the parameters was set.


Returns the offset in the complete result set

  • « SolrQuery::getSortFields
  • SolrQuery::getStats »
  • PHP Manual
  • SolrQuery
  • Returns the offset in the complete result set

SolrQuery::getStart

(PECL solr >= 0.9.2)

SolrQuery::getStart — Returns the offset in the complete result set

Описание

public SolrQuery::getStart ( void ) : int

Returns the offset in the complete result set for the queries where the set of returned documents should begin.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns whether or not stats is enabled

  • « SolrQuery::getStart
  • SolrQuery::getStatsFacets »
  • PHP Manual
  • SolrQuery
  • Returns whether or not stats is enabled

SolrQuery::getStats

(PECL solr >= 0.9.2)

SolrQuery::getStats — Returns whether or not stats is enabled

Описание

public SolrQuery::getStats ( void ) : bool

Returns whether or not stats is enabled

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns all the stats facets that were set

  • « SolrQuery::getStats
  • SolrQuery::getStatsFields »
  • PHP Manual
  • SolrQuery
  • Returns all the stats facets that were set

SolrQuery::getStatsFacets

(PECL solr >= 0.9.2)

SolrQuery::getStatsFacets — Returns all the stats facets that were set

Описание

public SolrQuery::getStatsFacets ( void ) : array

Returns all the stats facets that were set

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if not set.


Returns all the statistics fields

  • « SolrQuery::getStatsFacets
  • SolrQuery::getTerms »
  • PHP Manual
  • SolrQuery
  • Returns all the statistics fields

SolrQuery::getStatsFields

(PECL solr >= 0.9.2)

SolrQuery::getStatsFields — Returns all the statistics fields

Описание

public SolrQuery::getStatsFields ( void ) : array

Returns all the statistics fields

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if not set.


Returns whether or not the TermsComponent is enabled

  • « SolrQuery::getStatsFields
  • SolrQuery::getTermsField »
  • PHP Manual
  • SolrQuery
  • Returns whether or not the TermsComponent is enabled

SolrQuery::getTerms

(PECL solr >= 0.9.2)

SolrQuery::getTerms — Returns whether or not the TermsComponent is enabled

Описание

public SolrQuery::getTerms ( void ) : bool

Returns whether or not the TermsComponent is enabled

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns the field from which the terms are retrieved

  • « SolrQuery::getTerms
  • SolrQuery::getTermsIncludeLowerBound »
  • PHP Manual
  • SolrQuery
  • Returns the field from which the terms are retrieved

SolrQuery::getTermsField

(PECL solr >= 0.9.2)

SolrQuery::getTermsField — Returns the field from which the terms are retrieved

Описание

public SolrQuery::getTermsField ( void ) : string

Returns the field from which the terms are retrieved

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns whether or not to include the lower bound in the result set

  • « SolrQuery::getTermsField
  • SolrQuery::getTermsIncludeUpperBound »
  • PHP Manual
  • SolrQuery
  • Returns whether or not to include the lower bound in the result set

SolrQuery::getTermsIncludeLowerBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsIncludeLowerBound — Returns whether or not to include the lower bound in the result set

Описание

public SolrQuery::getTermsIncludeLowerBound ( void ) : bool

Returns whether or not to include the lower bound in the result set

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns whether or not to include the upper bound term in the result set

  • « SolrQuery::getTermsIncludeLowerBound
  • SolrQuery::getTermsLimit »
  • PHP Manual
  • SolrQuery
  • Returns whether or not to include the upper bound term in the result set

SolrQuery::getTermsIncludeUpperBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsIncludeUpperBound — Returns whether or not to include the upper bound term in the result set

Описание

public SolrQuery::getTermsIncludeUpperBound ( void ) : bool

Returns whether or not to include the upper bound term in the result set

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns the maximum number of terms Solr should return

  • « SolrQuery::getTermsIncludeUpperBound
  • SolrQuery::getTermsLowerBound »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of terms Solr should return

SolrQuery::getTermsLimit

(PECL solr >= 0.9.2)

SolrQuery::getTermsLimit — Returns the maximum number of terms Solr should return

Описание

public SolrQuery::getTermsLimit ( void ) : int

Returns the maximum number of terms Solr should return

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the term to start at

  • « SolrQuery::getTermsLimit
  • SolrQuery::getTermsMaxCount »
  • PHP Manual
  • SolrQuery
  • Returns the term to start at

SolrQuery::getTermsLowerBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsLowerBound — Returns the term to start at

Описание

public SolrQuery::getTermsLowerBound ( void ) : string

Returns the term to start at

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns the maximum document frequency

  • « SolrQuery::getTermsLowerBound
  • SolrQuery::getTermsMinCount »
  • PHP Manual
  • SolrQuery
  • Returns the maximum document frequency

SolrQuery::getTermsMaxCount

(PECL solr >= 0.9.2)

SolrQuery::getTermsMaxCount — Returns the maximum document frequency

Описание

public SolrQuery::getTermsMaxCount ( void ) : int

Returns the maximum document frequency

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the minimum document frequency to return in order to be included

  • « SolrQuery::getTermsMaxCount
  • SolrQuery::getTermsPrefix »
  • PHP Manual
  • SolrQuery
  • Returns the minimum document frequency to return in order to be included

SolrQuery::getTermsMinCount

(PECL solr >= 0.9.2)

SolrQuery::getTermsMinCount — Returns the minimum document frequency to return in order to be included

Описание

public SolrQuery::getTermsMinCount ( void ) : int

Returns the minimum document frequency to return in order to be included

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the term prefix

  • « SolrQuery::getTermsMinCount
  • SolrQuery::getTermsReturnRaw »
  • PHP Manual
  • SolrQuery
  • Returns the term prefix

SolrQuery::getTermsPrefix

(PECL solr >= 0.9.2)

SolrQuery::getTermsPrefix — Returns the term prefix

Описание

public SolrQuery::getTermsPrefix ( void ) : string

Returns the prefix to which matching terms must be restricted. This will restrict matches to only terms that start with the prefix

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string on success and NULL if not set.


Whether or not to return raw characters

  • « SolrQuery::getTermsPrefix
  • SolrQuery::getTermsSort »
  • PHP Manual
  • SolrQuery
  • Whether or not to return raw characters

SolrQuery::getTermsReturnRaw

(PECL solr >= 0.9.2)

SolrQuery::getTermsReturnRaw — Whether or not to return raw characters

Описание

public SolrQuery::getTermsReturnRaw ( void ) : bool

Returns a boolean indicating whether or not to return the raw characters of the indexed term, regardless of if it is human readable

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns an integer indicating how terms are sorted

  • « SolrQuery::getTermsReturnRaw
  • SolrQuery::getTermsUpperBound »
  • PHP Manual
  • SolrQuery
  • Returns an integer indicating how terms are sorted

SolrQuery::getTermsSort

(PECL solr >= 0.9.2)

SolrQuery::getTermsSort — Returns an integer indicating how terms are sorted

Описание

public SolrQuery::getTermsSort ( void ) : int

SolrQuery::TERMS_SORT_INDEX indicates that the terms are returned by index order. SolrQuery::TERMS_SORT_COUNT implies that the terms are sorted by term frequency (highest count first)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the term to stop at

  • « SolrQuery::getTermsSort
  • SolrQuery::getTimeAllowed »
  • PHP Manual
  • SolrQuery
  • Returns the term to stop at

SolrQuery::getTermsUpperBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsUpperBound — Returns the term to stop at

Описание

public SolrQuery::getTermsUpperBound ( void ) : string

Returns the term to stop at

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns the time in milliseconds allowed for the query to finish

  • « SolrQuery::getTermsUpperBound
  • SolrQuery::removeExpandFilterQuery »
  • PHP Manual
  • SolrQuery
  • Returns the time in milliseconds allowed for the query to finish

SolrQuery::getTimeAllowed

(PECL solr >= 0.9.2)

SolrQuery::getTimeAllowed — Returns the time in milliseconds allowed for the query to finish

Описание

public SolrQuery::getTimeAllowed ( void ) : int

Returns the time in milliseconds allowed for the query to finish.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns and integer on success and NULL if it is not set.


Removes an expand filter query

  • « SolrQuery::getTimeAllowed
  • SolrQuery::removeExpandSortField »
  • PHP Manual
  • SolrQuery
  • Removes an expand filter query

SolrQuery::removeExpandFilterQuery

(PECL solr >= 2.2.0)

SolrQuery::removeExpandFilterQuery — Removes an expand filter query

Описание

public SolrQuery::removeExpandFilterQuery ( string $fq ) : SolrQuery

Removes an expand filter query.

Список параметров

fq

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group


Removes an expand sort field from the expand.sort parameter

  • « SolrQuery::removeExpandFilterQuery
  • SolrQuery::removeFacetDateField »
  • PHP Manual
  • SolrQuery
  • Removes an expand sort field from the expand.sort parameter

SolrQuery::removeExpandSortField

(PECL solr >= 2.2.0)

SolrQuery::removeExpandSortField — Removes an expand sort field from the expand.sort parameter

Описание

public SolrQuery::removeExpandSortField ( string $field ) : SolrQuery

Removes an expand sort field from the expand.sort parameter.

Список параметров

field

field name

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Removes one of the facet date fields

  • « SolrQuery::removeExpandSortField
  • SolrQuery::removeFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Removes one of the facet date fields

SolrQuery::removeFacetDateField

(PECL solr >= 0.9.2)

SolrQuery::removeFacetDateField — Removes one of the facet date fields

Описание

public SolrQuery::removeFacetDateField ( string $field ) : SolrQuery

The name of the field

Список параметров

field

The name of the date field to remove

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the facet.date.other parameters

  • « SolrQuery::removeFacetDateField
  • SolrQuery::removeFacetField »
  • PHP Manual
  • SolrQuery
  • Removes one of the facet.date.other parameters

SolrQuery::removeFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::removeFacetDateOther — Removes one of the facet.date.other parameters

Описание

public SolrQuery::removeFacetDateOther ( string $value [, string $field_override ] ) : SolrQuery

Removes one of the facet.date.other parameters

Список параметров

value

The value

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the facet.date parameters

  • « SolrQuery::removeFacetDateOther
  • SolrQuery::removeFacetQuery »
  • PHP Manual
  • SolrQuery
  • Removes one of the facet.date parameters

SolrQuery::removeFacetField

(PECL solr >= 0.9.2)

SolrQuery::removeFacetField — Removes one of the facet.date parameters

Описание

public SolrQuery::removeFacetField ( string $field ) : SolrQuery

Removes one of the facet.date parameters

Список параметров

field

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the facet.query parameters

  • « SolrQuery::removeFacetField
  • SolrQuery::removeField »
  • PHP Manual
  • SolrQuery
  • Removes one of the facet.query parameters

SolrQuery::removeFacetQuery

(PECL solr >= 0.9.2)

SolrQuery::removeFacetQuery — Removes one of the facet.query parameters

Описание

public SolrQuery::removeFacetQuery ( string $value ) : SolrQuery

Removes one of the facet.query parameters.

Список параметров

value

The value

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes a field from the list of fields

  • « SolrQuery::removeFacetQuery
  • SolrQuery::removeFilterQuery »
  • PHP Manual
  • SolrQuery
  • Removes a field from the list of fields

SolrQuery::removeField

(PECL solr >= 0.9.2)

SolrQuery::removeField — Removes a field from the list of fields

Описание

public SolrQuery::removeField ( string $field ) : SolrQuery

Removes a field from the list of fields

Список параметров

field

Name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes a filter query

  • « SolrQuery::removeField
  • SolrQuery::removeHighlightField »
  • PHP Manual
  • SolrQuery
  • Removes a filter query

SolrQuery::removeFilterQuery

(PECL solr >= 0.9.2)

SolrQuery::removeFilterQuery — Removes a filter query

Описание

public SolrQuery::removeFilterQuery ( string $fq ) : SolrQuery

Removes a filter query.

Список параметров

fq

The filter query to remove

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the fields used for highlighting

  • « SolrQuery::removeFilterQuery
  • SolrQuery::removeMltField »
  • PHP Manual
  • SolrQuery
  • Removes one of the fields used for highlighting

SolrQuery::removeHighlightField

(PECL solr >= 0.9.2)

SolrQuery::removeHighlightField — Removes one of the fields used for highlighting

Описание

public SolrQuery::removeHighlightField ( string $field ) : SolrQuery

Removes one of the fields used for highlighting.

Список параметров

field

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the moreLikeThis fields

  • « SolrQuery::removeHighlightField
  • SolrQuery::removeMltQueryField »
  • PHP Manual
  • SolrQuery
  • Removes one of the moreLikeThis fields

SolrQuery::removeMltField

(PECL solr >= 0.9.2)

SolrQuery::removeMltField — Removes one of the moreLikeThis fields

Описание

public SolrQuery::removeMltField ( string $field ) : SolrQuery

Removes one of the moreLikeThis fields.

Список параметров

field

Name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the moreLikeThis query fields

  • « SolrQuery::removeMltField
  • SolrQuery::removeSortField »
  • PHP Manual
  • SolrQuery
  • Removes one of the moreLikeThis query fields

SolrQuery::removeMltQueryField

(PECL solr >= 0.9.2)

SolrQuery::removeMltQueryField — Removes one of the moreLikeThis query fields

Описание

public SolrQuery::removeMltQueryField ( string $queryField ) : SolrQuery

Removes one of the moreLikeThis query fields.

Список параметров

queryField

The query field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the sort fields

  • « SolrQuery::removeMltQueryField
  • SolrQuery::removeStatsFacet »
  • PHP Manual
  • SolrQuery
  • Removes one of the sort fields

SolrQuery::removeSortField

(PECL solr >= 0.9.2)

SolrQuery::removeSortField — Removes one of the sort fields

Описание

public SolrQuery::removeSortField ( string $field ) : SolrQuery

Removes one of the sort fields

Список параметров

field

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the stats.facet parameters

  • « SolrQuery::removeSortField
  • SolrQuery::removeStatsField »
  • PHP Manual
  • SolrQuery
  • Removes one of the stats.facet parameters

SolrQuery::removeStatsFacet

(PECL solr >= 0.9.2)

SolrQuery::removeStatsFacet — Removes one of the stats.facet parameters

Описание

public SolrQuery::removeStatsFacet ( string $value ) : SolrQuery

Removes one of the stats.facet parameters

Список параметров

value

The value

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the stats.field parameters

  • « SolrQuery::removeStatsFacet
  • SolrQuery::setEchoHandler »
  • PHP Manual
  • SolrQuery
  • Removes one of the stats.field parameters

SolrQuery::removeStatsField

(PECL solr >= 0.9.2)

SolrQuery::removeStatsField — Removes one of the stats.field parameters

Описание

public SolrQuery::removeStatsField ( string $field ) : SolrQuery

Removes one of the stats.field parameters

Список параметров

field

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Toggles the echoHandler parameter

  • « SolrQuery::removeStatsField
  • SolrQuery::setEchoParams »
  • PHP Manual
  • SolrQuery
  • Toggles the echoHandler parameter

SolrQuery::setEchoHandler

(PECL solr >= 0.9.2)

SolrQuery::setEchoHandler — Toggles the echoHandler parameter

Описание

public SolrQuery::setEchoHandler ( bool $flag ) : SolrQuery

If set to true, Solr places the name of the handle used in the response to the client for debugging purposes.

Список параметров

flag

TRUE or FALSE

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Determines what kind of parameters to include in the response

  • « SolrQuery::setEchoHandler
  • SolrQuery::setExpand »
  • PHP Manual
  • SolrQuery
  • Determines what kind of parameters to include in the response

SolrQuery::setEchoParams

(PECL solr >= 0.9.2)

SolrQuery::setEchoParams — Determines what kind of parameters to include in the response

Описание

public SolrQuery::setEchoParams ( string $type ) : SolrQuery

Instructs Solr what kinds of Request parameters should be included in the response for debugging purposes, legal values include:

- none - don't include any request parameters for debugging
- explicit - include the parameters explicitly specified by the client in the request
- all - include all parameters involved in this request, either specified explicitly by the client, or implicit because of the request handler configuration.

Список параметров

type

The type of parameters to include

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Enables/Disables the Expand Component

  • « SolrQuery::setEchoParams
  • SolrQuery::setExpandQuery »
  • PHP Manual
  • SolrQuery
  • Enables/Disables the Expand Component

SolrQuery::setExpand

(PECL solr >= 2.2.0)

SolrQuery::setExpand — Enables/Disables the Expand Component

Описание

public SolrQuery::setExpand ( bool $value ) : SolrQuery

Enables/Disables the Expand Component.

Список параметров

value

Bool flag

Возвращаемые значения

SolrQuery

Примеры

Пример #1 SolrQuery::setExpand() example

<?php

$query = new SolrQuery('lucene');

$query
    ->setExpand(true)
    ->setExpandRows(50)
    ->setExpandQuery('text:product')
    ->addExpandFilterQuery('manu:apple')
    ->addExpandFilterQuery('inStock:true')
    ->addExpandSortField('score', SolrQuery::ORDER_DESC)
    ->addExpandSortField('title', SolrQuery::ORDER_ASC);

echo $query.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&expand=true&expand.rows=50&expand.q=text:product&expand.fq=manu:apple&expand.fq=inStock:true&expand.sort=score desc,title asc

Смотрите также

  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Sets the expand.q parameter

  • « SolrQuery::setExpand
  • SolrQuery::setExpandRows »
  • PHP Manual
  • SolrQuery
  • Sets the expand.q parameter

SolrQuery::setExpandQuery

(PECL solr >= 2.2.0)

SolrQuery::setExpandQuery — Sets the expand.q parameter

Описание

public SolrQuery::setExpandQuery ( string $q ) : SolrQuery

Sets the expand.q parameter.

Overrides the main q parameter, determines which documents to include in the main group.

Список параметров

q

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Sets the number of rows to display in each group (expand.rows). Server Default 5

  • « SolrQuery::setExpandQuery
  • SolrQuery::setExplainOther »
  • PHP Manual
  • SolrQuery
  • Sets the number of rows to display in each group (expand.rows). Server Default 5

SolrQuery::setExpandRows

(PECL solr >= 2.2.0)

SolrQuery::setExpandRows — Sets the number of rows to display in each group (expand.rows). Server Default 5

Описание

public SolrQuery::setExpandRows ( int $value ) : SolrQuery

Sets the number of rows to display in each group (expand.rows). Server Default 5

Список параметров

value

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Sets the explainOther common query parameter

  • « SolrQuery::setExpandRows
  • SolrQuery::setFacet »
  • PHP Manual
  • SolrQuery
  • Sets the explainOther common query parameter

SolrQuery::setExplainOther

(PECL solr >= 0.9.2)

SolrQuery::setExplainOther — Sets the explainOther common query parameter

Описание

public SolrQuery::setExplainOther ( string $query ) : SolrQuery

Sets the explainOther common query parameter

Список параметров

query

The Lucene query to identify a set of documents

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to the facet parameter. Enables or disables facetting

  • « SolrQuery::setExplainOther
  • SolrQuery::setFacetDateEnd »
  • PHP Manual
  • SolrQuery
  • Maps to the facet parameter. Enables or disables facetting

SolrQuery::setFacet

(PECL solr >= 0.9.2)

SolrQuery::setFacet — Maps to the facet parameter. Enables or disables facetting

Описание

public SolrQuery::setFacet ( bool $flag ) : SolrQuery

Enables or disables faceting.

Список параметров

value

TRUE enables faceting and FALSE disables it.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to facet.date.end

  • « SolrQuery::setFacet
  • SolrQuery::setFacetDateGap »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date.end

SolrQuery::setFacetDateEnd

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateEnd — Maps to facet.date.end

Описание

public SolrQuery::setFacetDateEnd ( string $value [, string $field_override ] ) : SolrQuery

Maps to facet.date.end

Список параметров

value

See facet.date.end

field_override

Name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to facet.date.gap

  • « SolrQuery::setFacetDateEnd
  • SolrQuery::setFacetDateHardEnd »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date.gap

SolrQuery::setFacetDateGap

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateGap — Maps to facet.date.gap

Описание

public SolrQuery::setFacetDateGap ( string $value [, string $field_override ] ) : SolrQuery

Maps to facet.date.gap

Список параметров

value

See facet.date.gap

field_override

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to facet.date.hardend

  • « SolrQuery::setFacetDateGap
  • SolrQuery::setFacetDateStart »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date.hardend

SolrQuery::setFacetDateHardEnd

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateHardEnd — Maps to facet.date.hardend

Описание

public SolrQuery::setFacetDateHardEnd ( bool $value [, string $field_override ] ) : SolrQuery

Maps to facet.date.hardend

Список параметров

value

See facet.date.hardend

field_override

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to facet.date.start

  • « SolrQuery::setFacetDateHardEnd
  • SolrQuery::setFacetEnumCacheMinDefaultFrequency »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date.start

SolrQuery::setFacetDateStart

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateStart — Maps to facet.date.start

Описание

public SolrQuery::setFacetDateStart ( string $value [, string $field_override ] ) : SolrQuery

Maps to facet.date.start

Список параметров

value

See facet.date.start

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the minimum document frequency used for determining term count

  • « SolrQuery::setFacetDateStart
  • SolrQuery::setFacetLimit »
  • PHP Manual
  • SolrQuery
  • Sets the minimum document frequency used for determining term count

SolrQuery::setFacetEnumCacheMinDefaultFrequency

(PECL solr >= 0.9.2)

SolrQuery::setFacetEnumCacheMinDefaultFrequency — Sets the minimum document frequency used for determining term count

Описание

public SolrQuery::setFacetEnumCacheMinDefaultFrequency ( int $frequency [, string $field_override ] ) : SolrQuery

Sets the minimum document frequency used for determining term count

Список параметров

value

The minimum frequency

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to facet.limit

  • « SolrQuery::setFacetEnumCacheMinDefaultFrequency
  • SolrQuery::setFacetMethod »
  • PHP Manual
  • SolrQuery
  • Maps to facet.limit

SolrQuery::setFacetLimit

(PECL solr >= 0.9.2)

SolrQuery::setFacetLimit — Maps to facet.limit

Описание

public SolrQuery::setFacetLimit ( int $limit [, string $field_override ] ) : SolrQuery

Maps to facet.limit. Sets the maximum number of constraint counts that should be returned for the facet fields.

Список параметров

limit

The maximum number of constraint counts

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specifies the type of algorithm to use when faceting a field

  • « SolrQuery::setFacetLimit
  • SolrQuery::setFacetMinCount »
  • PHP Manual
  • SolrQuery
  • Specifies the type of algorithm to use when faceting a field

SolrQuery::setFacetMethod

(PECL solr >= 0.9.2)

SolrQuery::setFacetMethod — Specifies the type of algorithm to use when faceting a field

Описание

public SolrQuery::setFacetMethod ( string $method [, string $field_override ] ) : SolrQuery

Specifies the type of algorithm to use when faceting a field. This method accepts optional field override.

Список параметров

method

The method to use.

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to facet.mincount

  • « SolrQuery::setFacetMethod
  • SolrQuery::setFacetMissing »
  • PHP Manual
  • SolrQuery
  • Maps to facet.mincount

SolrQuery::setFacetMinCount

(PECL solr >= 0.9.2)

SolrQuery::setFacetMinCount — Maps to facet.mincount

Описание

public SolrQuery::setFacetMinCount ( int $mincount [, string $field_override ] ) : SolrQuery

Sets the minimum counts for facet fields that should be included in the response

Список параметров

mincount

The minimum count

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to facet.missing

  • « SolrQuery::setFacetMinCount
  • SolrQuery::setFacetOffset »
  • PHP Manual
  • SolrQuery
  • Maps to facet.missing

SolrQuery::setFacetMissing

(PECL solr >= 0.9.2)

SolrQuery::setFacetMissing — Maps to facet.missing

Описание

public SolrQuery::setFacetMissing ( bool $flag [, string $field_override ] ) : SolrQuery

Used to indicate that in addition to the Term-based constraints of a facet field, a count of all matching results which have no value for the field should be computed

Список параметров

flag

TRUE turns this feature on. FALSE disables it.

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the offset into the list of constraints to allow for pagination

  • « SolrQuery::setFacetMissing
  • SolrQuery::setFacetPrefix »
  • PHP Manual
  • SolrQuery
  • Sets the offset into the list of constraints to allow for pagination

SolrQuery::setFacetOffset

(PECL solr >= 0.9.2)

SolrQuery::setFacetOffset — Sets the offset into the list of constraints to allow for pagination

Описание

public SolrQuery::setFacetOffset ( int $offset [, string $field_override ] ) : SolrQuery

Sets the offset into the list of constraints to allow for pagination.

Список параметров

offset

The offset

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specifies a string prefix with which to limits the terms on which to facet

  • « SolrQuery::setFacetOffset
  • SolrQuery::setFacetSort »
  • PHP Manual
  • SolrQuery
  • Specifies a string prefix with which to limits the terms on which to facet

SolrQuery::setFacetPrefix

(PECL solr >= 0.9.2)

SolrQuery::setFacetPrefix — Specifies a string prefix with which to limits the terms on which to facet

Описание

public SolrQuery::setFacetPrefix ( string $prefix [, string $field_override ] ) : SolrQuery

Specifies a string prefix with which to limits the terms on which to facet.

Список параметров

prefix

The prefix string

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Determines the ordering of the facet field constraints

  • « SolrQuery::setFacetPrefix
  • SolrQuery::setGroup »
  • PHP Manual
  • SolrQuery
  • Determines the ordering of the facet field constraints

SolrQuery::setFacetSort

(PECL solr >= 0.9.2)

SolrQuery::setFacetSort — Determines the ordering of the facet field constraints

Описание

public SolrQuery::setFacetSort ( int $facetSort [, string $field_override ] ) : SolrQuery

Determines the ordering of the facet field constraints

Список параметров

facetSort

Use SolrQuery::FACET_SORT_INDEX for sorting by index order or SolrQuery::FACET_SORT_COUNT for sorting by count.

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Enable/Disable result grouping (group parameter)

  • « SolrQuery::setFacetSort
  • SolrQuery::setGroupCachePercent »
  • PHP Manual
  • SolrQuery
  • Enable/Disable result grouping (group parameter)

SolrQuery::setGroup

(PECL solr >= 2.2.0)

SolrQuery::setGroup — Enable/Disable result grouping (group parameter)

Описание

public SolrQuery::setGroup ( bool $value ) : SolrQuery

Enable/Disable result grouping (group parameter)

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::getGroup() - Returns true if grouping is enabled
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Enables caching for result grouping

  • « SolrQuery::setGroup
  • SolrQuery::setGroupFacet »
  • PHP Manual
  • SolrQuery
  • Enables caching for result grouping

SolrQuery::setGroupCachePercent

(PECL solr >= 2.2.0)

SolrQuery::setGroupCachePercent — Enables caching for result grouping

Описание

public SolrQuery::setGroupCachePercent ( int $percent ) : SolrQuery

Setting this parameter to a number greater than 0 enables caching for result grouping. Result Grouping executes two searches; this option caches the second search. The server default value is 0. Testing has shown that group caching only improves search time with Boolean, wildcard, and fuzzy queries. For simple queries like term or "match all" queries, group caching degrades performance. group.cache.percent parameter

Список параметров

percent

Возвращаемые значения

Ошибки

Emits SolrIllegalArgumentException in case of an invalid parameter was passed.

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)


Sets group.facet parameter

  • « SolrQuery::setGroupCachePercent
  • SolrQuery::setGroupFormat »
  • PHP Manual
  • SolrQuery
  • Sets group.facet parameter

SolrQuery::setGroupFacet

(PECL solr >= 2.2.0)

SolrQuery::setGroupFacet — Sets group.facet parameter

Описание

public SolrQuery::setGroupFacet ( bool $value ) : SolrQuery

Determines whether to compute grouped facets for the field facets specified in facet.field parameters. Grouped facets are computed based on the first specified group.

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Sets the group format, result structure (group.format parameter)

  • « SolrQuery::setGroupFacet
  • SolrQuery::setGroupLimit »
  • PHP Manual
  • SolrQuery
  • Sets the group format, result structure (group.format parameter)

SolrQuery::setGroupFormat

(PECL solr >= 2.2.0)

SolrQuery::setGroupFormat — Sets the group format, result structure (group.format parameter)

Описание

public SolrQuery::setGroupFormat ( string $value ) : SolrQuery

Sets the group.format parameter. If this parameter is set to simple, the grouped documents are presented in a single flat list, and the start and rows parameters affect the numbers of documents instead of groups. Accepts: grouped/simple

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Specifies the number of results to return for each group. The server default value is 1

  • « SolrQuery::setGroupFormat
  • SolrQuery::setGroupMain »
  • PHP Manual
  • SolrQuery
  • Specifies the number of results to return for each group. The server default value is 1

SolrQuery::setGroupLimit

(PECL solr >= 2.2.0)

SolrQuery::setGroupLimit — Specifies the number of results to return for each group. The server default value is 1

Описание

public SolrQuery::setGroupLimit ( int $value ) : SolrQuery

Specifies the number of results to return for each group. The server default value is 1.

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple

  • « SolrQuery::setGroupLimit
  • SolrQuery::setGroupNGroups »
  • PHP Manual
  • SolrQuery
  • If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple

SolrQuery::setGroupMain

(PECL solr >= 2.2.0)

SolrQuery::setGroupMain — If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple

Описание

public SolrQuery::setGroupMain ( string $value ) : SolrQuery

If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.

Список параметров

value

Возвращаемые значения

Смотрите также

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupMain()
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


If true, Solr includes the number of groups that have matched the query in the results

  • « SolrQuery::setGroupMain
  • SolrQuery::setGroupOffset »
  • PHP Manual
  • SolrQuery
  • If true, Solr includes the number of groups that have matched the query in the results

SolrQuery::setGroupNGroups

(PECL solr >= 2.2.0)

SolrQuery::setGroupNGroups — If true, Solr includes the number of groups that have matched the query in the results

Описание

public SolrQuery::setGroupNGroups ( bool $value ) : SolrQuery

If true, Solr includes the number of groups that have matched the query in the results.

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Sets the group.offset parameter

  • « SolrQuery::setGroupNGroups
  • SolrQuery::setGroupTruncate »
  • PHP Manual
  • SolrQuery
  • Sets the group.offset parameter

SolrQuery::setGroupOffset

(PECL solr >= 2.2.0)

SolrQuery::setGroupOffset — Sets the group.offset parameter

Описание

public SolrQuery::setGroupOffset ( int $value ) : SolrQuery

Sets the group.offset parameter.

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


If true, facet counts are based on the most relevant document of each group matching the query

  • « SolrQuery::setGroupOffset
  • SolrQuery::setHighlight »
  • PHP Manual
  • SolrQuery
  • If true, facet counts are based on the most relevant document of each group matching the query

SolrQuery::setGroupTruncate

(PECL solr >= 2.2.0)

SolrQuery::setGroupTruncate — If true, facet counts are based on the most relevant document of each group matching the query

Описание

public SolrQuery::setGroupTruncate ( bool $value ) : SolrQuery

If true, facet counts are based on the most relevant document of each group matching the query. The server default value is false. group.truncate parameter

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Enables or disables highlighting

  • « SolrQuery::setGroupTruncate
  • SolrQuery::setHighlightAlternateField »
  • PHP Manual
  • SolrQuery
  • Enables or disables highlighting

SolrQuery::setHighlight

(PECL solr >= 0.9.2)

SolrQuery::setHighlight — Enables or disables highlighting

Описание

public SolrQuery::setHighlight ( bool $flag ) : SolrQuery

Setting it to TRUE enables highlighted snippets to be generated in the query response.

Setting it to FALSE disables highlighting

Список параметров

flag

Enable or disable highlighting

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specifies the backup field to use

  • « SolrQuery::setHighlight
  • SolrQuery::setHighlightFormatter »
  • PHP Manual
  • SolrQuery
  • Specifies the backup field to use

SolrQuery::setHighlightAlternateField

(PECL solr >= 0.9.2)

SolrQuery::setHighlightAlternateField — Specifies the backup field to use

Описание

public SolrQuery::setHighlightAlternateField ( string $field [, string $field_override ] ) : SolrQuery

If a snippet cannot be generated because there were no matching terms, one can specify a field to use as the backup or default summary

Список параметров

field

The name of the backup field

field_override

The name of the field we are overriding this setting for.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specify a formatter for the highlight output

  • « SolrQuery::setHighlightAlternateField
  • SolrQuery::setHighlightFragmenter »
  • PHP Manual
  • SolrQuery
  • Specify a formatter for the highlight output

SolrQuery::setHighlightFormatter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFormatter — Specify a formatter for the highlight output

Описание

public SolrQuery::setHighlightFormatter ( string $formatter [, string $field_override ] ) : SolrQuery

Specify a formatter for the highlight output.

Список параметров

formatter

Currently the only legal value is "simple"

field_override

The name of the field.


Sets a text snippet generator for highlighted text

  • « SolrQuery::setHighlightFormatter
  • SolrQuery::setHighlightFragsize »
  • PHP Manual
  • SolrQuery
  • Sets a text snippet generator for highlighted text

SolrQuery::setHighlightFragmenter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFragmenter — Sets a text snippet generator for highlighted text

Описание

public SolrQuery::setHighlightFragmenter ( string $fragmenter [, string $field_override ] ) : SolrQuery

Specify a text snippet generator for highlighted text.

Список параметров

fragmenter

The standard fragmenter is gap. Another option is regex, which tries to create fragments that resembles a certain regular expression

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


The size of fragments to consider for highlighting

  • « SolrQuery::setHighlightFragmenter
  • SolrQuery::setHighlightHighlightMultiTerm »
  • PHP Manual
  • SolrQuery
  • The size of fragments to consider for highlighting

SolrQuery::setHighlightFragsize

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFragsize — The size of fragments to consider for highlighting

Описание

public SolrQuery::setHighlightFragsize ( int $size [, string $field_override ] ) : SolrQuery

Sets the size, in characters, of fragments to consider for highlighting. "0" indicates that the whole field value should be used (no fragmenting).

Список параметров

size

The size, in characters, of fragments to consider for highlighting

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Use SpanScorer to highlight phrase terms

  • « SolrQuery::setHighlightFragsize
  • SolrQuery::setHighlightMaxAlternateFieldLength »
  • PHP Manual
  • SolrQuery
  • Use SpanScorer to highlight phrase terms

SolrQuery::setHighlightHighlightMultiTerm

(PECL solr >= 0.9.2)

SolrQuery::setHighlightHighlightMultiTerm — Use SpanScorer to highlight phrase terms

Описание

public SolrQuery::setHighlightHighlightMultiTerm ( bool $flag ) : SolrQuery

Use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document.

Список параметров

flag

Whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the maximum number of characters of the field to return

  • « SolrQuery::setHighlightHighlightMultiTerm
  • SolrQuery::setHighlightMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Sets the maximum number of characters of the field to return

SolrQuery::setHighlightMaxAlternateFieldLength

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMaxAlternateFieldLength — Sets the maximum number of characters of the field to return

Описание

public SolrQuery::setHighlightMaxAlternateFieldLength ( int $fieldLength [, string $field_override ] ) : SolrQuery

If SolrQuery::setHighlightAlternateField() was passed the value TRUE, this parameter specifies the maximum number of characters of the field to return

Any value less than or equal to 0 means unlimited.

Список параметров

fieldLength

The length of the field

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specifies the number of characters into a document to look for suitable snippets

  • « SolrQuery::setHighlightMaxAlternateFieldLength
  • SolrQuery::setHighlightMergeContiguous »
  • PHP Manual
  • SolrQuery
  • Specifies the number of characters into a document to look for suitable snippets

SolrQuery::setHighlightMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMaxAnalyzedChars — Specifies the number of characters into a document to look for suitable snippets

Описание

public SolrQuery::setHighlightMaxAnalyzedChars ( int $value ) : SolrQuery

Specifies the number of characters into a document to look for suitable snippets

Список параметров

value

The number of characters into a document to look for suitable snippets

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Whether or not to collapse contiguous fragments into a single fragment

  • « SolrQuery::setHighlightMaxAnalyzedChars
  • SolrQuery::setHighlightRegexMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Whether or not to collapse contiguous fragments into a single fragment

SolrQuery::setHighlightMergeContiguous

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMergeContiguous — Whether or not to collapse contiguous fragments into a single fragment

Описание

public SolrQuery::setHighlightMergeContiguous ( bool $flag [, string $field_override ] ) : SolrQuery

Whether or not to collapse contiguous fragments into a single fragment

Список параметров

value

Whether or not to collapse contiguous fragments into a single fragment

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specify the maximum number of characters to analyze

  • « SolrQuery::setHighlightMergeContiguous
  • SolrQuery::setHighlightRegexPattern »
  • PHP Manual
  • SolrQuery
  • Specify the maximum number of characters to analyze

SolrQuery::setHighlightRegexMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexMaxAnalyzedChars — Specify the maximum number of characters to analyze

Описание

public SolrQuery::setHighlightRegexMaxAnalyzedChars ( int $maxAnalyzedChars ) : SolrQuery

Specify the maximum number of characters to analyze from a field when using the regex fragmenter

Список параметров

maxAnalyzedChars

The maximum number of characters to analyze from a field when using the regex fragmenter

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specify the regular expression for fragmenting

  • « SolrQuery::setHighlightRegexMaxAnalyzedChars
  • SolrQuery::setHighlightRegexSlop »
  • PHP Manual
  • SolrQuery
  • Specify the regular expression for fragmenting

SolrQuery::setHighlightRegexPattern

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexPattern — Specify the regular expression for fragmenting

Описание

public SolrQuery::setHighlightRegexPattern ( string $value ) : SolrQuery

Specifies the regular expression for fragmenting. This could be used to extract sentences

Список параметров

value

The regular expression for fragmenting. This could be used to extract sentences

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the factor by which the regex fragmenter can stray from the ideal fragment size

  • « SolrQuery::setHighlightRegexPattern
  • SolrQuery::setHighlightRequireFieldMatch »
  • PHP Manual
  • SolrQuery
  • Sets the factor by which the regex fragmenter can stray from the ideal fragment size

SolrQuery::setHighlightRegexSlop

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexSlop — Sets the factor by which the regex fragmenter can stray from the ideal fragment size

Описание

public SolrQuery::setHighlightRegexSlop ( float $factor ) : SolrQuery

The factor by which the regex fragmenter can stray from the ideal fragment size ( specfied by SolrQuery::setHighlightFragsize )to accommodate the regular expression

Список параметров

factor

The factor by which the regex fragmenter can stray from the ideal fragment size

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Require field matching during highlighting

  • « SolrQuery::setHighlightRegexSlop
  • SolrQuery::setHighlightSimplePost »
  • PHP Manual
  • SolrQuery
  • Require field matching during highlighting

SolrQuery::setHighlightRequireFieldMatch

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRequireFieldMatch — Require field matching during highlighting

Описание

public SolrQuery::setHighlightRequireFieldMatch ( bool $flag ) : SolrQuery

If TRUE, then a field will only be highlighted if the query matched in this particular field.

This will only work if SolrQuery::setHighlightUsePhraseHighlighter() was set to TRUE

Список параметров

flag

TRUE or FALSE

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the text which appears after a highlighted term

  • « SolrQuery::setHighlightRequireFieldMatch
  • SolrQuery::setHighlightSimplePre »
  • PHP Manual
  • SolrQuery
  • Sets the text which appears after a highlighted term

SolrQuery::setHighlightSimplePost

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSimplePost — Sets the text which appears after a highlighted term

Описание

public SolrQuery::setHighlightSimplePost ( string $simplePost [, string $field_override ] ) : SolrQuery

Sets the text which appears before a highlighted term

Список параметров

simplePost

Sets the text which appears after a highlighted term

The default is </em>

field_override

The name of the field.


Sets the text which appears before a highlighted term

  • « SolrQuery::setHighlightSimplePost
  • SolrQuery::setHighlightSnippets »
  • PHP Manual
  • SolrQuery
  • Sets the text which appears before a highlighted term

SolrQuery::setHighlightSimplePre

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSimplePre — Sets the text which appears before a highlighted term

Описание

public SolrQuery::setHighlightSimplePre ( string $simplePre [, string $field_override ] ) : SolrQuery

Sets the text which appears before a highlighted term

The default is <em>

Список параметров

simplePre

The text which appears before a highlighted term

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the maximum number of highlighted snippets to generate per field

  • « SolrQuery::setHighlightSimplePre
  • SolrQuery::setHighlightUsePhraseHighlighter »
  • PHP Manual
  • SolrQuery
  • Sets the maximum number of highlighted snippets to generate per field

SolrQuery::setHighlightSnippets

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSnippets — Sets the maximum number of highlighted snippets to generate per field

Описание

public SolrQuery::setHighlightSnippets ( int $value [, string $field_override ] ) : SolrQuery

Sets the maximum number of highlighted snippets to generate per field

Список параметров

value

The maximum number of highlighted snippets to generate per field

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Whether to highlight phrase terms only when they appear within the query phrase

  • « SolrQuery::setHighlightSnippets
  • SolrQuery::setMlt »
  • PHP Manual
  • SolrQuery
  • Whether to highlight phrase terms only when they appear within the query phrase

SolrQuery::setHighlightUsePhraseHighlighter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightUsePhraseHighlighter — Whether to highlight phrase terms only when they appear within the query phrase

Описание

public SolrQuery::setHighlightUsePhraseHighlighter ( bool $flag ) : SolrQuery

Sets whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document

Список параметров

value

Whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Enables or disables moreLikeThis

  • « SolrQuery::setHighlightUsePhraseHighlighter
  • SolrQuery::setMltBoost »
  • PHP Manual
  • SolrQuery
  • Enables or disables moreLikeThis

SolrQuery::setMlt

(PECL solr >= 0.9.2)

SolrQuery::setMlt — Enables or disables moreLikeThis

Описание

public SolrQuery::setMlt ( bool $flag ) : SolrQuery

Enables or disables moreLikeThis

Список параметров

flag

TRUE enables it and FALSE turns it off.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Set if the query will be boosted by the interesting term relevance

  • « SolrQuery::setMlt
  • SolrQuery::setMltCount »
  • PHP Manual
  • SolrQuery
  • Set if the query will be boosted by the interesting term relevance

SolrQuery::setMltBoost

(PECL solr >= 0.9.2)

SolrQuery::setMltBoost — Set if the query will be boosted by the interesting term relevance

Описание

public SolrQuery::setMltBoost ( bool $flag ) : SolrQuery

Set if the query will be boosted by the interesting term relevance

Список параметров

value

Sets to TRUE or FALSE

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Set the number of similar documents to return for each result

  • « SolrQuery::setMltBoost
  • SolrQuery::setMltMaxNumQueryTerms »
  • PHP Manual
  • SolrQuery
  • Set the number of similar documents to return for each result

SolrQuery::setMltCount

(PECL solr >= 0.9.2)

SolrQuery::setMltCount — Set the number of similar documents to return for each result

Описание

public SolrQuery::setMltCount ( int $count ) : SolrQuery

Set the number of similar documents to return for each result

Список параметров

count

The number of similar documents to return for each result

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the maximum number of query terms included

  • « SolrQuery::setMltCount
  • SolrQuery::setMltMaxNumTokens »
  • PHP Manual
  • SolrQuery
  • Sets the maximum number of query terms included

SolrQuery::setMltMaxNumQueryTerms

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxNumQueryTerms — Sets the maximum number of query terms included

Описание

public SolrQuery::setMltMaxNumQueryTerms ( int $value ) : SolrQuery

Sets the maximum number of query terms that will be included in any generated query.

Список параметров

value

The maximum number of query terms that will be included in any generated query

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specifies the maximum number of tokens to parse

  • « SolrQuery::setMltMaxNumQueryTerms
  • SolrQuery::setMltMaxWordLength »
  • PHP Manual
  • SolrQuery
  • Specifies the maximum number of tokens to parse

SolrQuery::setMltMaxNumTokens

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxNumTokens — Specifies the maximum number of tokens to parse

Описание

public SolrQuery::setMltMaxNumTokens ( int $value ) : SolrQuery

Specifies the maximum number of tokens to parse in each example doc field that is not stored with TermVector support.

Список параметров

value

The maximum number of tokens to parse

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the maximum word length

  • « SolrQuery::setMltMaxNumTokens
  • SolrQuery::setMltMinDocFrequency »
  • PHP Manual
  • SolrQuery
  • Sets the maximum word length

SolrQuery::setMltMaxWordLength

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxWordLength — Sets the maximum word length

Описание

public SolrQuery::setMltMaxWordLength ( int $maxWordLength ) : SolrQuery

Sets the maximum word length above which words will be ignored.

Список параметров

maxWordLength

The maximum word length above which words will be ignored

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the mltMinDoc frequency

  • « SolrQuery::setMltMaxWordLength
  • SolrQuery::setMltMinTermFrequency »
  • PHP Manual
  • SolrQuery
  • Sets the mltMinDoc frequency

SolrQuery::setMltMinDocFrequency

(PECL solr >= 0.9.2)

SolrQuery::setMltMinDocFrequency — Sets the mltMinDoc frequency

Описание

public SolrQuery::setMltMinDocFrequency ( int $minDocFrequency ) : SolrQuery

The frequency at which words will be ignored which do not occur in at least this many docs.

Список параметров

minDocFrequency

Sets the frequency at which words will be ignored which do not occur in at least this many docs.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the frequency below which terms will be ignored in the source docs

  • « SolrQuery::setMltMinDocFrequency
  • SolrQuery::setMltMinWordLength »
  • PHP Manual
  • SolrQuery
  • Sets the frequency below which terms will be ignored in the source docs

SolrQuery::setMltMinTermFrequency

(PECL solr >= 0.9.2)

SolrQuery::setMltMinTermFrequency — Sets the frequency below which terms will be ignored in the source docs

Описание

public SolrQuery::setMltMinTermFrequency ( int $minTermFrequency ) : SolrQuery

Sets the frequency below which terms will be ignored in the source docs

Список параметров

minTermFrequency

The frequency below which terms will be ignored in the source docs

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the minimum word length

  • « SolrQuery::setMltMinTermFrequency
  • SolrQuery::setOmitHeader »
  • PHP Manual
  • SolrQuery
  • Sets the minimum word length

SolrQuery::setMltMinWordLength

(PECL solr >= 0.9.2)

SolrQuery::setMltMinWordLength — Sets the minimum word length

Описание

public SolrQuery::setMltMinWordLength ( int $minWordLength ) : SolrQuery

Sets the minimum word length below which words will be ignored.

Список параметров

minWordLength

The minimum word length below which words will be ignored

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Exclude the header from the returned results

  • « SolrQuery::setMltMinWordLength
  • SolrQuery::setQuery »
  • PHP Manual
  • SolrQuery
  • Exclude the header from the returned results

SolrQuery::setOmitHeader

(PECL solr >= 0.9.2)

SolrQuery::setOmitHeader — Exclude the header from the returned results

Описание

public SolrQuery::setOmitHeader ( bool $flag ) : SolrQuery

Exclude the header from the returned results.

Список параметров

flag

TRUE excludes the header from the result.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the search query

  • « SolrQuery::setOmitHeader
  • SolrQuery::setRows »
  • PHP Manual
  • SolrQuery
  • Sets the search query

SolrQuery::setQuery

(PECL solr >= 0.9.2)

SolrQuery::setQuery — Sets the search query

Описание

public SolrQuery::setQuery ( string $query ) : SolrQuery

Sets the search query.

Список параметров

query

The search query

Возвращаемые значения

Returns the current SolrQuery object


Specifies the maximum number of rows to return in the result

  • « SolrQuery::setQuery
  • SolrQuery::setShowDebugInfo »
  • PHP Manual
  • SolrQuery
  • Specifies the maximum number of rows to return in the result

SolrQuery::setRows

(PECL solr >= 0.9.2)

SolrQuery::setRows — Specifies the maximum number of rows to return in the result

Описание

public SolrQuery::setRows ( int $rows ) : SolrQuery

Specifies the maximum number of rows to return in the result

Список параметров

rows

The maximum number of rows to return

Возвращаемые значения

Returns the current SolrQuery object.


Flag to show debug information

  • « SolrQuery::setRows
  • SolrQuery::setStart »
  • PHP Manual
  • SolrQuery
  • Flag to show debug information

SolrQuery::setShowDebugInfo

(PECL solr >= 0.9.2)

SolrQuery::setShowDebugInfo — Flag to show debug information

Описание

public SolrQuery::setShowDebugInfo ( bool $flag ) : SolrQuery

Whether to show debug info

Список параметров

flag

Whether to show debug info. TRUE or FALSE

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specifies the number of rows to skip

  • « SolrQuery::setShowDebugInfo
  • SolrQuery::setStats »
  • PHP Manual
  • SolrQuery
  • Specifies the number of rows to skip

SolrQuery::setStart

(PECL solr >= 0.9.2)

SolrQuery::setStart — Specifies the number of rows to skip

Описание

public SolrQuery::setStart ( int $start ) : SolrQuery

Specifies the number of rows to skip. Useful in pagination of results.

Список параметров

start

The number of rows to skip.

Возвращаемые значения

Returns the current SolrQuery object.


Enables or disables the Stats component

  • « SolrQuery::setStart
  • SolrQuery::setTerms »
  • PHP Manual
  • SolrQuery
  • Enables or disables the Stats component

SolrQuery::setStats

(PECL solr >= 0.9.2)

SolrQuery::setStats — Enables or disables the Stats component

Описание

public SolrQuery::setStats ( bool $flag ) : SolrQuery

Enables or disables the Stats component.

Список параметров

flag

TRUE turns on the stats component and FALSE disables it.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Enables or disables the TermsComponent

  • « SolrQuery::setStats
  • SolrQuery::setTermsField »
  • PHP Manual
  • SolrQuery
  • Enables or disables the TermsComponent

SolrQuery::setTerms

(PECL solr >= 0.9.2)

SolrQuery::setTerms — Enables or disables the TermsComponent

Описание

public SolrQuery::setTerms ( bool $flag ) : SolrQuery

Enables or disables the TermsComponent

Список параметров

flag

TRUE enables it. FALSE turns it off

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the name of the field to get the Terms from

  • « SolrQuery::setTerms
  • SolrQuery::setTermsIncludeLowerBound »
  • PHP Manual
  • SolrQuery
  • Sets the name of the field to get the Terms from

SolrQuery::setTermsField

(PECL solr >= 0.9.2)

SolrQuery::setTermsField — Sets the name of the field to get the Terms from

Описание

public SolrQuery::setTermsField ( string $fieldname ) : SolrQuery

Sets the name of the field to get the terms from

Список параметров

fieldname

The field name

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Include the lower bound term in the result set

  • « SolrQuery::setTermsField
  • SolrQuery::setTermsIncludeUpperBound »
  • PHP Manual
  • SolrQuery
  • Include the lower bound term in the result set

SolrQuery::setTermsIncludeLowerBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsIncludeLowerBound — Include the lower bound term in the result set

Описание

public SolrQuery::setTermsIncludeLowerBound ( bool $flag ) : SolrQuery

Include the lower bound term in the result set.

Список параметров

flag

Include the lower bound term in the result set

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Include the upper bound term in the result set

  • « SolrQuery::setTermsIncludeLowerBound
  • SolrQuery::setTermsLimit »
  • PHP Manual
  • SolrQuery
  • Include the upper bound term in the result set

SolrQuery::setTermsIncludeUpperBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsIncludeUpperBound — Include the upper bound term in the result set

Описание

public SolrQuery::setTermsIncludeUpperBound ( bool $flag ) : SolrQuery

Include the upper bound term in the result set.

Список параметров

flag

TRUE or FALSE

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the maximum number of terms to return

  • « SolrQuery::setTermsIncludeUpperBound
  • SolrQuery::setTermsLowerBound »
  • PHP Manual
  • SolrQuery
  • Sets the maximum number of terms to return

SolrQuery::setTermsLimit

(PECL solr >= 0.9.2)

SolrQuery::setTermsLimit — Sets the maximum number of terms to return

Описание

public SolrQuery::setTermsLimit ( int $limit ) : SolrQuery

Sets the maximum number of terms to return

Список параметров

limit

The maximum number of terms to return. All the terms will be returned if the limit is negative.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specifies the Term to start from

  • « SolrQuery::setTermsLimit
  • SolrQuery::setTermsMaxCount »
  • PHP Manual
  • SolrQuery
  • Specifies the Term to start from

SolrQuery::setTermsLowerBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsLowerBound — Specifies the Term to start from

Описание

public SolrQuery::setTermsLowerBound ( string $lowerBound ) : SolrQuery

Specifies the Term to start from

Список параметров

lowerBound

The lower bound Term

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the maximum document frequency

  • « SolrQuery::setTermsLowerBound
  • SolrQuery::setTermsMinCount »
  • PHP Manual
  • SolrQuery
  • Sets the maximum document frequency

SolrQuery::setTermsMaxCount

(PECL solr >= 0.9.2)

SolrQuery::setTermsMaxCount — Sets the maximum document frequency

Описание

public SolrQuery::setTermsMaxCount ( int $frequency ) : SolrQuery

Sets the maximum document frequency.

Список параметров

frequency

The maximum document frequency.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the minimum document frequency

  • « SolrQuery::setTermsMaxCount
  • SolrQuery::setTermsPrefix »
  • PHP Manual
  • SolrQuery
  • Sets the minimum document frequency

SolrQuery::setTermsMinCount

(PECL solr >= 0.9.2)

SolrQuery::setTermsMinCount — Sets the minimum document frequency

Описание

public SolrQuery::setTermsMinCount ( int $frequency ) : SolrQuery

Sets the minimum doc frequency to return in order to be included

Список параметров

frequency

The minimum frequency

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Restrict matches to terms that start with the prefix

  • « SolrQuery::setTermsMinCount
  • SolrQuery::setTermsReturnRaw »
  • PHP Manual
  • SolrQuery
  • Restrict matches to terms that start with the prefix

SolrQuery::setTermsPrefix

(PECL solr >= 0.9.2)

SolrQuery::setTermsPrefix — Restrict matches to terms that start with the prefix

Описание

public SolrQuery::setTermsPrefix ( string $prefix ) : SolrQuery

Restrict matches to terms that start with the prefix

Список параметров

prefix

Restrict matches to terms that start with the prefix

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Return the raw characters of the indexed term

  • « SolrQuery::setTermsPrefix
  • SolrQuery::setTermsSort »
  • PHP Manual
  • SolrQuery
  • Return the raw characters of the indexed term

SolrQuery::setTermsReturnRaw

(PECL solr >= 0.9.2)

SolrQuery::setTermsReturnRaw — Return the raw characters of the indexed term

Описание

public SolrQuery::setTermsReturnRaw ( bool $flag ) : SolrQuery

If true, return the raw characters of the indexed term, regardless of if it is human readable

Список параметров

value

TRUE or FALSE

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specifies how to sort the returned terms

  • « SolrQuery::setTermsReturnRaw
  • SolrQuery::setTermsUpperBound »
  • PHP Manual
  • SolrQuery
  • Specifies how to sort the returned terms

SolrQuery::setTermsSort

(PECL solr >= 0.9.2)

SolrQuery::setTermsSort — Specifies how to sort the returned terms

Описание

public SolrQuery::setTermsSort ( int $sortType ) : SolrQuery

If SolrQuery::TERMS_SORT_COUNT, sorts the terms by the term frequency (highest count first). If SolrQuery::TERMS_SORT_INDEX, returns the terms in index order

Список параметров

sortType

SolrQuery::TERMS_SORT_INDEX or SolrQuery::TERMS_SORT_COUNT

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the term to stop at

  • « SolrQuery::setTermsSort
  • SolrQuery::setTimeAllowed »
  • PHP Manual
  • SolrQuery
  • Sets the term to stop at

SolrQuery::setTermsUpperBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsUpperBound — Sets the term to stop at

Описание

public SolrQuery::setTermsUpperBound ( string $upperBound ) : SolrQuery

Sets the term to stop at

Список параметров

upperBound

The term to stop at

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


The time allowed for search to finish

  • « SolrQuery::setTermsUpperBound
  • SolrDisMaxQuery »
  • PHP Manual
  • SolrQuery
  • The time allowed for search to finish

SolrQuery::setTimeAllowed

(PECL solr >= 0.9.2)

SolrQuery::setTimeAllowed — The time allowed for search to finish

Описание

public SolrQuery::setTimeAllowed ( int $timeAllowed ) : SolrQuery

The time allowed for a search to finish. This value only applies to the search and not to requests in general. Time is in milliseconds. Values less than or equal to zero implies no time restriction. Partial results may be returned, if there are any.

Список параметров

timeAllowed

The time allowed for a search to finish.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


The SolrDisMaxQuery class

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

SolrDisMaxQuery extends SolrQuery implements Serializable {
/* Наследуемые свойства */
const integer SolrQuery::ORDER_ASC = 0 ;
const integer SolrQuery::ORDER_DESC = 1 ;
const integer SolrQuery::FACET_SORT_INDEX = 0 ;
const integer SolrQuery::FACET_SORT_COUNT = 1 ;
const integer SolrQuery::TERMS_SORT_INDEX = 0 ;
const integer SolrQuery::TERMS_SORT_COUNT = 1 ;
/* Методы */
public addBigramPhraseField ( string $field , string $boost [, string $slop ] ) : SolrDisMaxQuery
public addBoostQuery ( string $field , string $value [, string $boost ] ) : SolrDisMaxQuery
public addPhraseField ( string $field , string $boost [, string $slop ] ) : SolrDisMaxQuery
public addQueryField ( string $field [, string $boost ] ) : SolrDisMaxQuery
public addTrigramPhraseField ( string $field , string $boost [, string $slop ] ) : SolrDisMaxQuery
public addUserField ( string $field ) : SolrDisMaxQuery
public __construct ([ string $q ] )
public removeBigramPhraseField ( string $field ) : SolrDisMaxQuery
public removeBoostQuery ( string $field ) : SolrDisMaxQuery
public removePhraseField ( string $field ) : SolrDisMaxQuery
public removeQueryField ( string $field ) : SolrDisMaxQuery
public removeTrigramPhraseField ( string $field ) : SolrDisMaxQuery
public removeUserField ( string $field ) : SolrDisMaxQuery
public setBigramPhraseFields ( string $fields ) : SolrDisMaxQuery
public setBigramPhraseSlop ( string $slop ) : SolrDisMaxQuery
public setBoostFunction ( string $function ) : SolrDisMaxQuery
public setBoostQuery ( string $q ) : SolrDisMaxQuery
public setMinimumMatch ( string $value ) : SolrDisMaxQuery
public setPhraseFields ( string $fields ) : SolrDisMaxQuery
public setPhraseSlop ( string $slop ) : SolrDisMaxQuery
public setQueryAlt ( string $q ) : SolrDisMaxQuery
public setQueryPhraseSlop ( string $slop ) : SolrDisMaxQuery
public setTieBreaker ( string $tieBreaker ) : SolrDisMaxQuery
public setTrigramPhraseFields ( string $fields ) : SolrDisMaxQuery
public setTrigramPhraseSlop ( string $slop ) : SolrDisMaxQuery
public setUserFields ( string $fields ) : SolrDisMaxQuery
public useDisMaxQueryParser ( void ) : SolrDisMaxQuery
public useEDisMaxQueryParser ( void ) : SolrDisMaxQuery
/* Наследуемые методы */
public SolrQuery::addExpandFilterQuery ( string $fq ) : SolrQuery
public SolrQuery::addExpandSortField ( string $field [, string $order ] ) : SolrQuery
public SolrQuery::addFacetDateField ( string $dateField ) : SolrQuery
public SolrQuery::addFacetDateOther ( string $value [, string $field_override ] ) : SolrQuery
public SolrQuery::addFacetField ( string $field ) : SolrQuery
public SolrQuery::addFacetQuery ( string $facetQuery ) : SolrQuery
public SolrQuery::addField ( string $field ) : SolrQuery
public SolrQuery::addFilterQuery ( string $fq ) : SolrQuery
public SolrQuery::addGroupField ( string $value ) : SolrQuery
public SolrQuery::addGroupFunction ( string $value ) : SolrQuery
public SolrQuery::addGroupQuery ( string $value ) : SolrQuery
public SolrQuery::addGroupSortField ( string $field [, int $order ] ) : SolrQuery
public SolrQuery::addHighlightField ( string $field ) : SolrQuery
public SolrQuery::addMltField ( string $field ) : SolrQuery
public SolrQuery::addMltQueryField ( string $field , float $boost ) : SolrQuery
public SolrQuery::addSortField ( string $field [, int $order = SolrQuery::ORDER_DESC ] ) : SolrQuery
public SolrQuery::addStatsFacet ( string $field ) : SolrQuery
public SolrQuery::addStatsField ( string $field ) : SolrQuery
public SolrQuery::collapse ( SolrCollapseFunction $collapseFunction ) : SolrQuery
public SolrQuery::__construct ([ string $q ] )
public SolrQuery::__destruct ( void ) : void
public SolrQuery::getExpand ( void ) : bool
public SolrQuery::getExpandFilterQueries ( void ) : array
public SolrQuery::getExpandQuery ( void ) : array
public SolrQuery::getExpandRows ( void ) : int
public SolrQuery::getExpandSortFields ( void ) : array
public SolrQuery::getFacet ( void ) : bool
public SolrQuery::getFacetDateEnd ([ string $field_override ] ) : string
public SolrQuery::getFacetDateFields ( void ) : array
public SolrQuery::getFacetDateGap ([ string $field_override ] ) : string
public SolrQuery::getFacetDateHardEnd ([ string $field_override ] ) : string
public SolrQuery::getFacetDateOther ([ string $field_override ] ) : array
public SolrQuery::getFacetDateStart ([ string $field_override ] ) : string
public SolrQuery::getFacetFields ( void ) : array
public SolrQuery::getFacetLimit ([ string $field_override ] ) : int
public SolrQuery::getFacetMethod ([ string $field_override ] ) : string
public SolrQuery::getFacetMinCount ([ string $field_override ] ) : int
public SolrQuery::getFacetMissing ([ string $field_override ] ) : bool
public SolrQuery::getFacetOffset ([ string $field_override ] ) : int
public SolrQuery::getFacetPrefix ([ string $field_override ] ) : string
public SolrQuery::getFacetQueries ( void ) : array
public SolrQuery::getFacetSort ([ string $field_override ] ) : int
public SolrQuery::getFields ( void ) : array
public SolrQuery::getFilterQueries ( void ) : array
public SolrQuery::getGroup ( void ) : bool
public SolrQuery::getGroupCachePercent ( void ) : int
public SolrQuery::getGroupFacet ( void ) : bool
public SolrQuery::getGroupFields ( void ) : array
public SolrQuery::getGroupFormat ( void ) : string
public SolrQuery::getGroupFunctions ( void ) : array
public SolrQuery::getGroupLimit ( void ) : int
public SolrQuery::getGroupMain ( void ) : bool
public SolrQuery::getGroupNGroups ( void ) : bool
public SolrQuery::getGroupOffset ( void ) : int
public SolrQuery::getGroupQueries ( void ) : array
public SolrQuery::getGroupSortFields ( void ) : array
public SolrQuery::getGroupTruncate ( void ) : bool
public SolrQuery::getHighlight ( void ) : bool
public SolrQuery::getHighlightAlternateField ([ string $field_override ] ) : string
public SolrQuery::getHighlightFields ( void ) : array
public SolrQuery::getHighlightFormatter ([ string $field_override ] ) : string
public SolrQuery::getHighlightFragmenter ([ string $field_override ] ) : string
public SolrQuery::getHighlightFragsize ([ string $field_override ] ) : int
public SolrQuery::getHighlightHighlightMultiTerm ( void ) : bool
public SolrQuery::getHighlightMaxAlternateFieldLength ([ string $field_override ] ) : int
public SolrQuery::getHighlightMaxAnalyzedChars ( void ) : int
public SolrQuery::getHighlightMergeContiguous ([ string $field_override ] ) : bool
public SolrQuery::getHighlightRegexMaxAnalyzedChars ( void ) : int
public SolrQuery::getHighlightRegexPattern ( void ) : string
public SolrQuery::getHighlightRegexSlop ( void ) : float
public SolrQuery::getHighlightRequireFieldMatch ( void ) : bool
public SolrQuery::getHighlightSimplePost ([ string $field_override ] ) : string
public SolrQuery::getHighlightSimplePre ([ string $field_override ] ) : string
public SolrQuery::getHighlightSnippets ([ string $field_override ] ) : int
public SolrQuery::getHighlightUsePhraseHighlighter ( void ) : bool
public SolrQuery::getMlt ( void ) : bool
public SolrQuery::getMltBoost ( void ) : bool
public SolrQuery::getMltCount ( void ) : int
public SolrQuery::getMltFields ( void ) : array
public SolrQuery::getMltMaxNumQueryTerms ( void ) : int
public SolrQuery::getMltMaxNumTokens ( void ) : int
public SolrQuery::getMltMaxWordLength ( void ) : int
public SolrQuery::getMltMinDocFrequency ( void ) : int
public SolrQuery::getMltMinTermFrequency ( void ) : int
public SolrQuery::getMltMinWordLength ( void ) : int
public SolrQuery::getMltQueryFields ( void ) : array
public SolrQuery::getQuery ( void ) : string
public SolrQuery::getRows ( void ) : int
public SolrQuery::getSortFields ( void ) : array
public SolrQuery::getStart ( void ) : int
public SolrQuery::getStats ( void ) : bool
public SolrQuery::getStatsFacets ( void ) : array
public SolrQuery::getStatsFields ( void ) : array
public SolrQuery::getTerms ( void ) : bool
public SolrQuery::getTermsField ( void ) : string
public SolrQuery::getTermsIncludeLowerBound ( void ) : bool
public SolrQuery::getTermsIncludeUpperBound ( void ) : bool
public SolrQuery::getTermsLimit ( void ) : int
public SolrQuery::getTermsLowerBound ( void ) : string
public SolrQuery::getTermsMaxCount ( void ) : int
public SolrQuery::getTermsMinCount ( void ) : int
public SolrQuery::getTermsPrefix ( void ) : string
public SolrQuery::getTermsReturnRaw ( void ) : bool
public SolrQuery::getTermsSort ( void ) : int
public SolrQuery::getTermsUpperBound ( void ) : string
public SolrQuery::getTimeAllowed ( void ) : int
public SolrQuery::removeExpandFilterQuery ( string $fq ) : SolrQuery
public SolrQuery::removeExpandSortField ( string $field ) : SolrQuery
public SolrQuery::removeFacetDateField ( string $field ) : SolrQuery
public SolrQuery::removeFacetDateOther ( string $value [, string $field_override ] ) : SolrQuery
public SolrQuery::removeFacetField ( string $field ) : SolrQuery
public SolrQuery::removeFacetQuery ( string $value ) : SolrQuery
public SolrQuery::removeField ( string $field ) : SolrQuery
public SolrQuery::removeFilterQuery ( string $fq ) : SolrQuery
public SolrQuery::removeHighlightField ( string $field ) : SolrQuery
public SolrQuery::removeMltField ( string $field ) : SolrQuery
public SolrQuery::removeMltQueryField ( string $queryField ) : SolrQuery
public SolrQuery::removeSortField ( string $field ) : SolrQuery
public SolrQuery::removeStatsFacet ( string $value ) : SolrQuery
public SolrQuery::removeStatsField ( string $field ) : SolrQuery
public SolrQuery::setEchoHandler ( bool $flag ) : SolrQuery
public SolrQuery::setEchoParams ( string $type ) : SolrQuery
public SolrQuery::setExpand ( bool $value ) : SolrQuery
public SolrQuery::setExpandQuery ( string $q ) : SolrQuery
public SolrQuery::setExpandRows ( int $value ) : SolrQuery
public SolrQuery::setExplainOther ( string $query ) : SolrQuery
public SolrQuery::setFacet ( bool $flag ) : SolrQuery
public SolrQuery::setFacetDateEnd ( string $value [, string $field_override ] ) : SolrQuery
public SolrQuery::setFacetDateGap ( string $value [, string $field_override ] ) : SolrQuery
public SolrQuery::setFacetDateHardEnd ( bool $value [, string $field_override ] ) : SolrQuery
public SolrQuery::setFacetDateStart ( string $value [, string $field_override ] ) : SolrQuery
public SolrQuery::setFacetEnumCacheMinDefaultFrequency ( int $frequency [, string $field_override ] ) : SolrQuery
public SolrQuery::setFacetLimit ( int $limit [, string $field_override ] ) : SolrQuery
public SolrQuery::setFacetMethod ( string $method [, string $field_override ] ) : SolrQuery
public SolrQuery::setFacetMinCount ( int $mincount [, string $field_override ] ) : SolrQuery
public SolrQuery::setFacetMissing ( bool $flag [, string $field_override ] ) : SolrQuery
public SolrQuery::setFacetOffset ( int $offset [, string $field_override ] ) : SolrQuery
public SolrQuery::setFacetPrefix ( string $prefix [, string $field_override ] ) : SolrQuery
public SolrQuery::setFacetSort ( int $facetSort [, string $field_override ] ) : SolrQuery
public SolrQuery::setGroup ( bool $value ) : SolrQuery
public SolrQuery::setGroupCachePercent ( int $percent ) : SolrQuery
public SolrQuery::setGroupFacet ( bool $value ) : SolrQuery
public SolrQuery::setGroupFormat ( string $value ) : SolrQuery
public SolrQuery::setGroupLimit ( int $value ) : SolrQuery
public SolrQuery::setGroupMain ( string $value ) : SolrQuery
public SolrQuery::setGroupNGroups ( bool $value ) : SolrQuery
public SolrQuery::setGroupOffset ( int $value ) : SolrQuery
public SolrQuery::setGroupTruncate ( bool $value ) : SolrQuery
public SolrQuery::setHighlight ( bool $flag ) : SolrQuery
public SolrQuery::setHighlightAlternateField ( string $field [, string $field_override ] ) : SolrQuery
public SolrQuery::setHighlightFormatter ( string $formatter [, string $field_override ] ) : SolrQuery
public SolrQuery::setHighlightFragmenter ( string $fragmenter [, string $field_override ] ) : SolrQuery
public SolrQuery::setHighlightFragsize ( int $size [, string $field_override ] ) : SolrQuery
public SolrQuery::setHighlightHighlightMultiTerm ( bool $flag ) : SolrQuery
public SolrQuery::setHighlightMaxAlternateFieldLength ( int $fieldLength [, string $field_override ] ) : SolrQuery
public SolrQuery::setHighlightMaxAnalyzedChars ( int $value ) : SolrQuery
public SolrQuery::setHighlightMergeContiguous ( bool $flag [, string $field_override ] ) : SolrQuery
public SolrQuery::setHighlightRegexMaxAnalyzedChars ( int $maxAnalyzedChars ) : SolrQuery
public SolrQuery::setHighlightRegexPattern ( string $value ) : SolrQuery
public SolrQuery::setHighlightRegexSlop ( float $factor ) : SolrQuery
public SolrQuery::setHighlightRequireFieldMatch ( bool $flag ) : SolrQuery
public SolrQuery::setHighlightSimplePost ( string $simplePost [, string $field_override ] ) : SolrQuery
public SolrQuery::setHighlightSimplePre ( string $simplePre [, string $field_override ] ) : SolrQuery
public SolrQuery::setHighlightSnippets ( int $value [, string $field_override ] ) : SolrQuery
public SolrQuery::setHighlightUsePhraseHighlighter ( bool $flag ) : SolrQuery
public SolrQuery::setMlt ( bool $flag ) : SolrQuery
public SolrQuery::setMltBoost ( bool $flag ) : SolrQuery
public SolrQuery::setMltCount ( int $count ) : SolrQuery
public SolrQuery::setMltMaxNumQueryTerms ( int $value ) : SolrQuery
public SolrQuery::setMltMaxNumTokens ( int $value ) : SolrQuery
public SolrQuery::setMltMaxWordLength ( int $maxWordLength ) : SolrQuery
public SolrQuery::setMltMinDocFrequency ( int $minDocFrequency ) : SolrQuery
public SolrQuery::setMltMinTermFrequency ( int $minTermFrequency ) : SolrQuery
public SolrQuery::setMltMinWordLength ( int $minWordLength ) : SolrQuery
public SolrQuery::setOmitHeader ( bool $flag ) : SolrQuery
public SolrQuery::setQuery ( string $query ) : SolrQuery
public SolrQuery::setRows ( int $rows ) : SolrQuery
public SolrQuery::setShowDebugInfo ( bool $flag ) : SolrQuery
public SolrQuery::setStart ( int $start ) : SolrQuery
public SolrQuery::setStats ( bool $flag ) : SolrQuery
public SolrQuery::setTerms ( bool $flag ) : SolrQuery
public SolrQuery::setTermsField ( string $fieldname ) : SolrQuery
public SolrQuery::setTermsIncludeLowerBound ( bool $flag ) : SolrQuery
public SolrQuery::setTermsIncludeUpperBound ( bool $flag ) : SolrQuery
public SolrQuery::setTermsLimit ( int $limit ) : SolrQuery
public SolrQuery::setTermsLowerBound ( string $lowerBound ) : SolrQuery
public SolrQuery::setTermsMaxCount ( int $frequency ) : SolrQuery
public SolrQuery::setTermsMinCount ( int $frequency ) : SolrQuery
public SolrQuery::setTermsPrefix ( string $prefix ) : SolrQuery
public SolrQuery::setTermsReturnRaw ( bool $flag ) : SolrQuery
public SolrQuery::setTermsSort ( int $sortType ) : SolrQuery
public SolrQuery::setTermsUpperBound ( string $upperBound ) : SolrQuery
public SolrQuery::setTimeAllowed ( int $timeAllowed ) : SolrQuery
}

Предопределенные константы

SolrDisMaxQuery::ORDER_ASC

Used to specify that the sorting should be in acending order (Duplicated for easier migration)

SolrDisMaxQuery::ORDER_DESC

Used to specify that the sorting should be in descending order (Duplicated for easier migration)

SolrDisMaxQuery::FACET_SORT_INDEX

Used to specify that the facet should sort by index (Duplicated for easier migration)

SolrDisMaxQuery::FACET_SORT_COUNT

Used to specify that the facet should sort by count (Duplicated for easier migration)

SolrDisMaxQuery::TERMS_SORT_INDEX

Used in the TermsComponent (Duplicated for easier migration)

SolrDisMaxQuery::TERMS_SORT_COUNT

Used in the TermsComponent (Duplicated for easier migration)

Содержание

  • SolrDisMaxQuery::addBigramPhraseField — Adds a Phrase Bigram Field (pf2 parameter)
  • SolrDisMaxQuery::addBoostQuery — Adds a boost query field with value and optional boost (bq parameter)
  • SolrDisMaxQuery::addPhraseField — Adds a Phrase Field (pf parameter)
  • SolrDisMaxQuery::addQueryField — Add a query field with optional boost (qf parameter)
  • SolrDisMaxQuery::addTrigramPhraseField — Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::addUserField — Adds a field to User Fields Parameter (uf)
  • SolrDisMaxQuery::__construct — Class Constructor
  • SolrDisMaxQuery::removeBigramPhraseField — Removes phrase bigram field (pf2 parameter)
  • SolrDisMaxQuery::removeBoostQuery — Removes a boost query partial by field name (bq)
  • SolrDisMaxQuery::removePhraseField — Removes a Phrase Field (pf parameter)
  • SolrDisMaxQuery::removeQueryField — Removes a Query Field (qf parameter)
  • SolrDisMaxQuery::removeTrigramPhraseField — Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::removeUserField — Removes a field from The User Fields Parameter (uf)
  • SolrDisMaxQuery::setBigramPhraseFields — Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setBigramPhraseSlop — Sets Bigram Phrase Slop (ps2 parameter)
  • SolrDisMaxQuery::setBoostFunction — Sets a Boost Function (bf parameter)
  • SolrDisMaxQuery::setBoostQuery — Directly Sets Boost Query Parameter (bq)
  • SolrDisMaxQuery::setMinimumMatch — Set Minimum "Should" Match (mm)
  • SolrDisMaxQuery::setPhraseFields — Sets Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setPhraseSlop — Sets the default slop on phrase queries (ps parameter)
  • SolrDisMaxQuery::setQueryAlt — Set Query Alternate (q.alt parameter)
  • SolrDisMaxQuery::setQueryPhraseSlop — Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)
  • SolrDisMaxQuery::setTieBreaker — Sets Tie Breaker parameter (tie parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields — Directly Sets Trigram Phrase Fields (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop — Sets Trigram Phrase Slop (ps3 parameter)
  • SolrDisMaxQuery::setUserFields — Sets User Fields parameter (uf)
  • SolrDisMaxQuery::useDisMaxQueryParser — Switch QueryParser to be DisMax Query Parser
  • SolrDisMaxQuery::useEDisMaxQueryParser — Switch QueryParser to be EDisMax


Adds a Phrase Bigram Field (pf2 parameter)

  • « SolrDisMaxQuery
  • SolrDisMaxQuery::addBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a Phrase Bigram Field (pf2 parameter)

SolrDisMaxQuery::addBigramPhraseField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::addBigramPhraseField — Adds a Phrase Bigram Field (pf2 parameter)

Описание

public SolrDisMaxQuery::addBigramPhraseField ( string $field , string $boost [, string $slop ] ) : SolrDisMaxQuery

Adds a Phrase Bigram Field (pf2 parameter) output format: field~slop^boost OR field^boost Slop is optional

Список параметров

field

boost

slop

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::addBigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addBigramPhraseField('cat', 2, 5.1)
    ->addBigramPhraseField('feature', 4.5)
;
echo $dismaxQuery;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&pf2=cat~5.1^2 feature^4.5

Смотрите также

  • SolrDisMaxQuery::removeBigramPhraseField() - Removes phrase bigram field (pf2 parameter)
  • SolrDisMaxQuery::setBigramPhraseFields() - Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setBigramPhraseSlop() - Sets Bigram Phrase Slop (ps2 parameter)


Adds a boost query field with value and optional boost (bq parameter)

  • « SolrDisMaxQuery::addBigramPhraseField
  • SolrDisMaxQuery::addPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a boost query field with value and optional boost (bq parameter)

SolrDisMaxQuery::addBoostQuery

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::addBoostQuery — Adds a boost query field with value and optional boost (bq parameter)

Описание

public SolrDisMaxQuery::addBoostQuery ( string $field , string $value [, string $boost ] ) : SolrDisMaxQuery

Adds a Boost Query field with value [and boost] (bq parameter)

Список параметров

field

value

boost

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::addBoostQuery() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addBoostQuery('cat', 'clothing', 2)
    ->addBoostQuery('cat', 'electronics', 5.1)
;
echo $dismaxQuery.PHP_EOL;
?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&bq=cat:clothing^2 cat:electronics^5.1

Смотрите также

  • SolrDisMaxQuery::removeBoostQuery() - Removes a boost query partial by field name (bq)
  • SolrDisMaxQuery::setBoostQuery() - Directly Sets Boost Query Parameter (bq)


Adds a Phrase Field (pf parameter)

  • « SolrDisMaxQuery::addBoostQuery
  • SolrDisMaxQuery::addQueryField »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a Phrase Field (pf parameter)

SolrDisMaxQuery::addPhraseField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::addPhraseField — Adds a Phrase Field (pf parameter)

Описание

public SolrDisMaxQuery::addPhraseField ( string $field , string $boost [, string $slop ] ) : SolrDisMaxQuery

Adds a Phrase Field (pf parameter)

Список параметров

field

field name

boost

slop

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::addPhraseField() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addPhraseField('cat', 3, 1)
    ->addPhraseField('third', 4, 2)
    ->addPhraseField('source', 55)
;
echo $dismaxQuery;
?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&pf=cat~1^3 third~2^4 source^55

Смотрите также

  • SolrDisMaxQuery::removePhraseField() - Removes a Phrase Field (pf parameter)
  • SolrDisMaxQuery::setPhraseFields() - Sets Phrase Fields and their boosts (and slops) using pf2 parameter


Add a query field with optional boost (qf parameter)

  • « SolrDisMaxQuery::addPhraseField
  • SolrDisMaxQuery::addTrigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Add a query field with optional boost (qf parameter)

SolrDisMaxQuery::addQueryField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::addQueryField — Add a query field with optional boost (qf parameter)

Описание

public SolrDisMaxQuery::addQueryField ( string $field [, string $boost ] ) : SolrDisMaxQuery

Add a query field with optional boost (qf parameter)

Список параметров

field

field name

boost

Boost value. Boosts documents with matching terms.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::addQueryField() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addQueryField("location", 4)
    ->addQueryField("price")
    ->addQueryField("sku")
    ->addQueryField("title",3.4)
;
echo $dismaxQuery;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&qf=location^4 price sku title^3.4

Смотрите также

  • SolrDisMaxQuery::removeQueryField() - Removes a Query Field (qf parameter)


Adds a Trigram Phrase Field (pf3 parameter)

  • « SolrDisMaxQuery::addQueryField
  • SolrDisMaxQuery::addUserField »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a Trigram Phrase Field (pf3 parameter)

SolrDisMaxQuery::addTrigramPhraseField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::addTrigramPhraseField — Adds a Trigram Phrase Field (pf3 parameter)

Описание

public SolrDisMaxQuery::addTrigramPhraseField ( string $field , string $boost [, string $slop ] ) : SolrDisMaxQuery

Adds a Trigram Phrase Field (pf3 parameter)

Список параметров

field

Field Name

boost

Field Boost

slop

Field Slop

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::addTrigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addTrigramPhraseField('cat', 2, 5.1)
->addTrigramPhraseField('feature', 4.5)
;
echo $dismaxQuery.PHP_EOL;

?>

Результат выполнения данного примера:

q=lucene&defType=%s&pf3=cat~5.1^2 feature^4.5

Смотрите также

  • SolrDisMaxQuery::removeTrigramPhraseField() - Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Sets Trigram Phrase Slop (ps3 parameter)


Adds a field to User Fields Parameter (uf)

  • « SolrDisMaxQuery::addTrigramPhraseField
  • SolrDisMaxQuery::__construct »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a field to User Fields Parameter (uf)

SolrDisMaxQuery::addUserField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::addUserField — Adds a field to User Fields Parameter (uf)

Описание

public SolrDisMaxQuery::addUserField ( string $field ) : SolrDisMaxQuery

Adds a field to The User Fields Parameter (uf)

Список параметров

field

Field Name

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::addUserField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addUserField('cat')
->addUserField('text')
->addUserField('*_dt');

echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&uf=cat text *_dt

Смотрите также

  • SolrDisMaxQuery::removeUserField() - Removes a field from The User Fields Parameter (uf)
  • SolrDisMaxQuery::setUserFields() - Sets User Fields parameter (uf)


Class Constructor

  • « SolrDisMaxQuery::addUserField
  • SolrDisMaxQuery::removeBigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Class Constructor

SolrDisMaxQuery::__construct

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::__construct — Class Constructor

Описание

public SolrDisMaxQuery::__construct ([ string $q ] )

Class constructor initializes the object and sets the q parameter if passed

Список параметров

q

Search Query (q parameter)

Возвращаемые значения

Ошибки

Emits SolrIllegalArgumentException in case of an invalid parameter was passed.

Примеры

Пример #1 SolrDisMaxQuery::__construct() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
echo $dismaxQuery;

?>

Результат выполнения данного примера:

q=lucene&defType=edismax

Смотрите также


Removes phrase bigram field (pf2 parameter)

  • « SolrDisMaxQuery::__construct
  • SolrDisMaxQuery::removeBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes phrase bigram field (pf2 parameter)

SolrDisMaxQuery::removeBigramPhraseField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::removeBigramPhraseField — Removes phrase bigram field (pf2 parameter)

Описание

public SolrDisMaxQuery::removeBigramPhraseField ( string $field ) : SolrDisMaxQuery

Removes a Bigram Phrase Field (pf2 parameter) that was previously added using SolrDisMaxQuery::addBigramPhraseField()

Список параметров

field

The Field Name

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::removeBigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addBigramPhraseField('cat', 2, 5.1)
    ->addBigramPhraseField('feature', 4.5)
;
echo $dismaxQuery.PHP_EOL;

// remove cat from pf2
$dismaxQuery
    ->removeBigramPhraseField('cat');
echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&pf2=cat~5.1^2 feature^4.5
q=lucene&defType=edismax&pf2=feature^4.5

Смотрите также

  • SolrDisMaxQuery::addBigramPhraseField() - Adds a Phrase Bigram Field (pf2 parameter)
  • SolrDisMaxQuery::setBigramPhraseFields() - Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setBigramPhraseSlop() - Sets Bigram Phrase Slop (ps2 parameter)


Removes a boost query partial by field name (bq)

  • « SolrDisMaxQuery::removeBigramPhraseField
  • SolrDisMaxQuery::removePhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a boost query partial by field name (bq)

SolrDisMaxQuery::removeBoostQuery

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::removeBoostQuery — Removes a boost query partial by field name (bq)

Описание

public SolrDisMaxQuery::removeBoostQuery ( string $field ) : SolrDisMaxQuery

Removes a boost query partial from the existing query, only if SolrDisMaxQuery::addBoostQuery() was used.

Список параметров

field

Field Name

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::removeBoostQuery() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addBoostQuery('cat', 'electronics', 5.1)
    ->addBoostQuery('cat', 'hard drive')
;
echo $dismaxQuery.PHP_EOL;
// now remove a query part with field 'cat'
$dismaxQuery
->removeBoostQuery('cat');
echo $dismaxQuery . PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&bq=cat:electronics^5.1 cat:hard drive
q=lucene&defType=edismax&bq=cat:hard drive

Смотрите также

  • SolrDisMaxQuery::addBoostQuery() - Adds a boost query field with value and optional boost (bq parameter)
  • SolrDisMaxQuery::setBoostQuery() - Directly Sets Boost Query Parameter (bq)


Removes a Phrase Field (pf parameter)

  • « SolrDisMaxQuery::removeBoostQuery
  • SolrDisMaxQuery::removeQueryField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a Phrase Field (pf parameter)

SolrDisMaxQuery::removePhraseField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::removePhraseField — Removes a Phrase Field (pf parameter)

Описание

public SolrDisMaxQuery::removePhraseField ( string $field ) : SolrDisMaxQuery

Removes a Phrase Field (pf parameter) that was previously added using SolrDisMaxQuery::addPhraseField

Список параметров

field

Field Name

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::removePhraseField() example

<?php
$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
    ->addPhraseField('first', 3, 1)
    ->addPhraseField('second', 4, 1)
    ->addPhraseField('cat', 55);
echo $dismaxQuery . PHP_EOL;
echo $dismaxQuery->removePhraseField('second');
?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&pf=first~1^3 second~1^4 cat^55
q=lucene&defType=edismax&pf=first~1^3 cat^55

Смотрите также

  • SolrDisMaxQuery::addPhraseField() - Adds a Phrase Field (pf parameter)
  • SolrDisMaxQuery::setPhraseFields() - Sets Phrase Fields and their boosts (and slops) using pf2 parameter


Removes a Query Field (qf parameter)

  • « SolrDisMaxQuery::removePhraseField
  • SolrDisMaxQuery::removeTrigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a Query Field (qf parameter)

SolrDisMaxQuery::removeQueryField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::removeQueryField — Removes a Query Field (qf parameter)

Описание

public SolrDisMaxQuery::removeQueryField ( string $field ) : SolrDisMaxQuery

Removes a Query Field (qf parameter) from the field list added by SolrDisMaxQuery::addQueryField()

qf: When building DisjunctionMaxQueries from the user's query it specifies the fields to search in, and boosts for those fields.

Список параметров

field

Field Name

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::removeQueryField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
    ->addQueryField('first', 3)
    ->addQueryField('second', 0.2)
    ->addQueryField('cat');
echo $dismaxQuery . PHP_EOL;
// remove field 'second'
echo $dismaxQuery->removeQueryField('second');
?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&qf=first^3 second^0.2 cat
q=lucene&defType=edismax&qf=first^3 cat

Смотрите также

  • SolrDisMaxQuery::addQueryField() - Add a query field with optional boost (qf parameter)


Removes a Trigram Phrase Field (pf3 parameter)

  • « SolrDisMaxQuery::removeQueryField
  • SolrDisMaxQuery::removeUserField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a Trigram Phrase Field (pf3 parameter)

SolrDisMaxQuery::removeTrigramPhraseField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::removeTrigramPhraseField — Removes a Trigram Phrase Field (pf3 parameter)

Описание

public SolrDisMaxQuery::removeTrigramPhraseField ( string $field ) : SolrDisMaxQuery

Removes a Trigram Phrase Field (pf3 parameter)

Список параметров

field

Field Name

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::removeTrigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addTrigramPhraseField('cat', 2, 5.1)
->addTrigramPhraseField('feature', 4.5)
;
echo $dismaxQuery.PHP_EOL;
// reverse
$dismaxQuery
->removeTrigramPhraseField('cat');
echo $dismaxQuery.PHP_EOL;

?>

Результат выполнения данного примера:

q=lucene&defType=%s&pf3=cat~5.1^2 feature^4.5
q=lucene&defType=%s&pf3=feature^4.5

Смотрите также

  • SolrDisMaxQuery::addTrigramPhraseField() - Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Sets Trigram Phrase Slop (ps3 parameter)


Removes a field from The User Fields Parameter (uf)

  • « SolrDisMaxQuery::removeTrigramPhraseField
  • SolrDisMaxQuery::setBigramPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a field from The User Fields Parameter (uf)

SolrDisMaxQuery::removeUserField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::removeUserField — Removes a field from The User Fields Parameter (uf)

Описание

public SolrDisMaxQuery::removeUserField ( string $field ) : SolrDisMaxQuery

Removes a field from The User Fields Parameter (uf)

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

field

Field Name

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::removeUserField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addUserField('cat')
->addUserField('text')
->addUserField('*_dt')
;
echo $dismaxQuery.PHP_EOL;

// remove field named 'text'
$dismaxQuery
->removeUserField('text');
echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=%s&uf=cat text *_dt
q=lucene&defType=%s&uf=cat *_dt

Смотрите также

  • SolrDisMaxQuery::addUserField() - Adds a field to User Fields Parameter (uf)
  • SolrDisMaxQuery::setUserFields() - Sets User Fields parameter (uf)


Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter

  • « SolrDisMaxQuery::removeUserField
  • SolrDisMaxQuery::setBigramPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter

SolrDisMaxQuery::setBigramPhraseFields

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setBigramPhraseFields — Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter

Описание

public SolrDisMaxQuery::setBigramPhraseFields ( string $fields ) : SolrDisMaxQuery

Sets Bigram Phrase Fields (pf2) and their boosts (and slops)

Список параметров

fields

Fields boosts (slops)

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setBigramPhraseFields() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery->setBigramPhraseFields("cat~5.1^2 feature^4.5");
echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&pf2=cat~5.1^2 feature^4.5

Смотрите также

  • SolrDisMaxQuery::setBigramPhraseSlop() - Sets Bigram Phrase Slop (ps2 parameter)
  • SolrDisMaxQuery::addBigramPhraseFields()
  • SolrDisMaxQuery::removeBigramPhraseField() - Removes phrase bigram field (pf2 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)


Sets Bigram Phrase Slop (ps2 parameter)

  • « SolrDisMaxQuery::setBigramPhraseFields
  • SolrDisMaxQuery::setBoostFunction »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Bigram Phrase Slop (ps2 parameter)

SolrDisMaxQuery::setBigramPhraseSlop

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setBigramPhraseSlop — Sets Bigram Phrase Slop (ps2 parameter)

Описание

public SolrDisMaxQuery::setBigramPhraseSlop ( string $slop ) : SolrDisMaxQuery

Sets Bigram Phrase Slop (ps2 parameter). A default slop for Bigram phrase fields.

Список параметров

slop

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setBigramPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');

$dismaxQuery->setBigramPhraseSlop(5);
echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&ps2=5

Смотрите также


Sets a Boost Function (bf parameter)

  • « SolrDisMaxQuery::setBigramPhraseSlop
  • SolrDisMaxQuery::setBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets a Boost Function (bf parameter)

SolrDisMaxQuery::setBoostFunction

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setBoostFunction — Sets a Boost Function (bf parameter)

Описание

public SolrDisMaxQuery::setBoostFunction ( string $function ) : SolrDisMaxQuery

Sets Boost Function (bf parameter).

Functions (with optional boosts) that will be included in the user's query to influence the score. Any function supported natively by Solr can be used, along with a boost value. e.g.:

recip(rord(myfield),1,2,3)^1.5

Список параметров

function

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setBoostFunction() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');

$boostRecentDocsFunction = "recip(ms(NOW,mydatefield),3.16e-11,1,1)";
$dismaxQuery->setBoostFunction($boostRecentDocsFunction);

echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&bf=recip(ms(NOW,mydatefield),3.16e-11,1,1)

Смотрите также


Directly Sets Boost Query Parameter (bq)

  • « SolrDisMaxQuery::setBoostFunction
  • SolrDisMaxQuery::setMinimumMatch »
  • PHP Manual
  • SolrDisMaxQuery
  • Directly Sets Boost Query Parameter (bq)

SolrDisMaxQuery::setBoostQuery

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setBoostQuery — Directly Sets Boost Query Parameter (bq)

Описание

public SolrDisMaxQuery::setBoostQuery ( string $q ) : SolrDisMaxQuery

Sets Boost Query Parameter (bq)

Список параметров

q

query

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setBoostQuery() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");

$dismaxQuery->setBoostQuery('cat:electronics manu:local^2');
echo $dismaxQuery.PHP_EOL;
?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&bq=cat:electronics manu:local^2

Смотрите также

  • SolrDisMaxQuery::addBoostQuery() - Adds a boost query field with value and optional boost (bq parameter)
  • SolrDisMaxQuery::removeBoostQuery() - Removes a boost query partial by field name (bq)


Set Minimum "Should" Match (mm)

  • « SolrDisMaxQuery::setBoostQuery
  • SolrDisMaxQuery::setPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Set Minimum "Should" Match (mm)

SolrDisMaxQuery::setMinimumMatch

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setMinimumMatch — Set Minimum "Should" Match (mm)

Описание

public SolrDisMaxQuery::setMinimumMatch ( string $value ) : SolrDisMaxQuery

Set Minimum "Should" Match parameter (mm). If the default query operator is AND then mm=100%, if the default query operator (q.op) is OR, then mm=0%.

Список параметров

value

Minimum match value/expression

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setMinimumMatch() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
// 75% of the query clauses must match
$dismaxQuery->setMinimumMatch("75%");
echo $dismaxQuery . PHP_EOL;

?>

Результат выполнения данного примера:

q=lucene&defType=edismax&mm=75%


Sets Phrase Fields and their boosts (and slops) using pf2 parameter

  • « SolrDisMaxQuery::setMinimumMatch
  • SolrDisMaxQuery::setPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Phrase Fields and their boosts (and slops) using pf2 parameter

SolrDisMaxQuery::setPhraseFields

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setPhraseFields — Sets Phrase Fields and their boosts (and slops) using pf2 parameter

Описание

public SolrDisMaxQuery::setPhraseFields ( string $fields ) : SolrDisMaxQuery

Sets Phrase Fields (pf) and their boosts (and slops)

Список параметров

fields

Fields, boosts [, slops]

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setPhraseFields() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery->setPhraseFields("cat~5.1^2 feature^4.5");
echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&pf=cat~5.1^2 feature^4.5

Смотрите также

  • SolrDisMaxQuery::addPhraseFields()
  • SolrDisMaxQuery::removePhraseField() - Removes a Phrase Field (pf parameter)


Sets the default slop on phrase queries (ps parameter)

  • « SolrDisMaxQuery::setPhraseFields
  • SolrDisMaxQuery::setQueryAlt »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets the default slop on phrase queries (ps parameter)

SolrDisMaxQuery::setPhraseSlop

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setPhraseSlop — Sets the default slop on phrase queries (ps parameter)

Описание

public SolrDisMaxQuery::setPhraseSlop ( string $slop ) : SolrDisMaxQuery

Sets the default amount of slop on phrase queries built with "pf", "pf2" and/or "pf3" fields (affects boosting). "ps" parameter

Список параметров

slop

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');

$dismaxQuery->setPhraseSlop(4);
echo $dismaxQuery.PHP_EOL;

?>

Результат выполнения данного примера:

q=lucene&defType=edismax&ps=4

Смотрите также


Set Query Alternate (q.alt parameter)

  • « SolrDisMaxQuery::setPhraseSlop
  • SolrDisMaxQuery::setQueryPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Set Query Alternate (q.alt parameter)

SolrDisMaxQuery::setQueryAlt

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setQueryAlt — Set Query Alternate (q.alt parameter)

Описание

public SolrDisMaxQuery::setQueryAlt ( string $q ) : SolrDisMaxQuery

Set Query Alternate (q.alt parameter)

When the main q parameter is not specified or is blank. The q.alt parameter is used

Список параметров

q

Query String

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setQueryAlt() example

<?php

$dismaxQuery = new DisMaxQuery();
$dismaxQuery->setQueryAlt('*:*');

?>

Результатом выполнения данного примера будет что-то подобное:

defType=edismax&q.alt=*:*&q=


Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)

  • « SolrDisMaxQuery::setQueryAlt
  • SolrDisMaxQuery::setTieBreaker »
  • PHP Manual
  • SolrDisMaxQuery
  • Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)

SolrDisMaxQuery::setQueryPhraseSlop

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setQueryPhraseSlop — Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)

Описание

public SolrDisMaxQuery::setQueryPhraseSlop ( string $slop ) : SolrDisMaxQuery

The Query Phrase Slop is the amount of slop permitted on phrase queries explicitly included in the user's query string with the qf parameter.

slop refers to the number of positions one token needs to be moved in relation to another token in order to match a phrase specified in a query.

Список параметров

slop

Amount of slop

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setQueryPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->setQueryPhraseSlop(3);
echo $dismaxQuery;
?>

Результатом выполнения данного примера будет что-то подобное:

defType=edismax&qs=3


Sets Tie Breaker parameter (tie parameter)

  • « SolrDisMaxQuery::setQueryPhraseSlop
  • SolrDisMaxQuery::setTrigramPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Tie Breaker parameter (tie parameter)

SolrDisMaxQuery::setTieBreaker

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setTieBreaker — Sets Tie Breaker parameter (tie parameter)

Описание

public SolrDisMaxQuery::setTieBreaker ( string $tieBreaker ) : SolrDisMaxQuery

Sets Tie Breaker parameter (tie parameter)

Список параметров

tieBreaker

The tie parameter specifies a float value (which should be something much less than 1) to use as tiebreaker in DisMax queries.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setTieBreaker() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->setTieBreaker(0.1);

echo $dismaxQuery;

?>

Результат выполнения данного примера:

defType=edismax&tie=0.1


Directly Sets Trigram Phrase Fields (pf3 parameter)

  • « SolrDisMaxQuery::setTieBreaker
  • SolrDisMaxQuery::setTrigramPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Directly Sets Trigram Phrase Fields (pf3 parameter)

SolrDisMaxQuery::setTrigramPhraseFields

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setTrigramPhraseFields — Directly Sets Trigram Phrase Fields (pf3 parameter)

Описание

public SolrDisMaxQuery::setTrigramPhraseFields ( string $fields ) : SolrDisMaxQuery

Directly Sets Trigram Phrase Fields (pf3 parameter)

Список параметров

fields

Trigram Phrase Fields

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setTrigramPhraseFields() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery->setTrigramPhraseFields('cat~5.1^2 feature^4.5');
echo $dismaxQuery.PHP_EOL;

?>

Результат выполнения данного примера:

q=lucene&defType=edismax&pf3=cat~5.1^2 feature^4.5

Смотрите также

  • SolrDisMaxQuery::addTrigramPhraseField() - Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::removeTrigramPhraseField() - Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Sets Trigram Phrase Slop (ps3 parameter)


Sets Trigram Phrase Slop (ps3 parameter)

  • « SolrDisMaxQuery::setTrigramPhraseFields
  • SolrDisMaxQuery::setUserFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Trigram Phrase Slop (ps3 parameter)

SolrDisMaxQuery::setTrigramPhraseSlop

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setTrigramPhraseSlop — Sets Trigram Phrase Slop (ps3 parameter)

Описание

public SolrDisMaxQuery::setTrigramPhraseSlop ( string $slop ) : SolrDisMaxQuery

Sets Trigram Phrase Slop (ps3 parameter)

Список параметров

slop

Phrase slop

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setTrigramPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery->setTrigramPhraseSlop(2);
echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&ps3=2

Смотрите также

  • SolrDisMaxQuery::addTrigramPhraseField() - Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::removeTrigramPhraseField() - Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)


Sets User Fields parameter (uf)

  • « SolrDisMaxQuery::setTrigramPhraseSlop
  • SolrDisMaxQuery::useDisMaxQueryParser »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets User Fields parameter (uf)

SolrDisMaxQuery::setUserFields

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setUserFields — Sets User Fields parameter (uf)

Описание

public SolrDisMaxQuery::setUserFields ( string $fields ) : SolrDisMaxQuery

Sets User Fields parameter (uf)

User Fields: Specifies which schema fields the end user shall be allowed to query.

Список параметров

fields

Fields names separated by space

This parameter supports wildcards.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setUserFields() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery->setUserFields('field1 field2 *_txt');
echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&uf=field1 field2 *_txt

Смотрите также

  • SolrDisMaxQuery::addUserField() - Adds a field to User Fields Parameter (uf)
  • SolrDisMaxQuery::removeUserField() - Removes a field from The User Fields Parameter (uf)


Switch QueryParser to be DisMax Query Parser

  • « SolrDisMaxQuery::setUserFields
  • SolrDisMaxQuery::useEDisMaxQueryParser »
  • PHP Manual
  • SolrDisMaxQuery
  • Switch QueryParser to be DisMax Query Parser

SolrDisMaxQuery::useDisMaxQueryParser

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::useDisMaxQueryParser — Switch QueryParser to be DisMax Query Parser

Описание

public SolrDisMaxQuery::useDisMaxQueryParser ( void ) : SolrDisMaxQuery

Switch QueryParser to be DisMax Query Parser

Список параметров

У этой функции нет параметров.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::useDisMaxQueryParser() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->useDisMaxQueryParser();
echo $dismaxQuery;
?>

Результатом выполнения данного примера будет что-то подобное:

defType=dismax

Смотрите также

  • SolrDisMaxQuery::useDisMaxQueryParser()


Switch QueryParser to be EDisMax

  • « SolrDisMaxQuery::useDisMaxQueryParser
  • SolrCollapseFunction »
  • PHP Manual
  • SolrDisMaxQuery
  • Switch QueryParser to be EDisMax

SolrDisMaxQuery::useEDisMaxQueryParser

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::useEDisMaxQueryParser — Switch QueryParser to be EDisMax

Описание

public SolrDisMaxQuery::useEDisMaxQueryParser ( void ) : SolrDisMaxQuery

Switch QueryParser to be EDisMax. By default the query builder uses edismax, if it was switched using SolrDisMaxQuery::useDisMaxQueryParser(), it can be switched back using this method.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::useEDisMaxQueryParser() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->useEDisMaxQueryParser();
echo $dismaxQuery;

?>

Результатом выполнения данного примера будет что-то подобное:

defType=edismax

Смотрите также


The SolrCollapseFunction class

(PECL solr >= 2.2.0)

Введение

Обзор классов

SolrCollapseFunction {
/* Constants */
const string NULLPOLICY_IGNORE = ignore ;
const string NULLPOLICY_EXPAND = expand ;
const string NULLPOLICY_COLLAPSE = collapse ;
/* Методы */
public __construct ([ string $field ] )
public getField ( void ) : string
public getHint ( void ) : string
public getMax ( void ) : string
public getMin ( void ) : string
public getNullPolicy ( void ) : string
public getSize ( void ) : int
public setField ( string $fieldName ) : SolrCollapseFunction
public setHint ( string $hint ) : SolrCollapseFunction
public setMax ( string $max ) : SolrCollapseFunction
public setMin ( string $min ) : SolrCollapseFunction
public setNullPolicy ( string $nullPolicy ) : SolrCollapseFunction
public setSize ( int $size ) : SolrCollapseFunction
public __toString ( void ) : string
}

Предопределенные константы

SolrCollapseFunction::NULLPOLICY_IGNORE

SolrCollapseFunction::NULLPOLICY_EXPAND

SolrCollapseFunction::NULLPOLICY_COLLAPSE

Содержание

  • SolrCollapseFunction::__construct — Constructor
  • SolrCollapseFunction::getField — Returns the field that is being collapsed on
  • SolrCollapseFunction::getHint — Returns collapse hint
  • SolrCollapseFunction::getMax — Returns max parameter
  • SolrCollapseFunction::getMin — Returns min parameter
  • SolrCollapseFunction::getNullPolicy — Returns null policy
  • SolrCollapseFunction::getSize — Returns size parameter
  • SolrCollapseFunction::setField — Sets the field to collapse on
  • SolrCollapseFunction::setHint — Sets collapse hint
  • SolrCollapseFunction::setMax — Selects the group heads by the max value of a numeric field or function query
  • SolrCollapseFunction::setMin — Sets the initial size of the collapse data structures when collapsing on a numeric field only
  • SolrCollapseFunction::setNullPolicy — Sets the NULL Policy
  • SolrCollapseFunction::setSize — Sets the initial size of the collapse data structures when collapsing on a numeric field only
  • SolrCollapseFunction::__toString — Returns a string representing the constructed collapse function


Constructor

  • « SolrCollapseFunction
  • SolrCollapseFunction::getField »
  • PHP Manual
  • SolrCollapseFunction
  • Constructor

SolrCollapseFunction::__construct

(PECL solr >= 2.2.0)

SolrCollapseFunction::__construct — Constructor

Описание

public SolrCollapseFunction::__construct ([ string $field ] )

Collapse Function constructor

Список параметров

field

The field name to collapse on.

In order to collapse a result. The field type must be a single valued String, Int or Float.

Примеры

Пример #1 SolrCollapseFunction::__construct() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$func = new SolrCollapseFunction('field_name');

$func->setMax('sum(cscore(),field(some_other_field))');
$func->setSize(100);
$func->setNullPolicy(SolrCollapseFunction::NULLPOLICY_EXPAND);

$query->collapse($func);

$queryResponse = $client->query($query);

$response = $queryResponse->getResponse();

print_r($response);

?>

Смотрите также

  • SolrQuery::collapse() - Collapses the result set to a single document per group


Returns the field that is being collapsed on

  • « SolrCollapseFunction::__construct
  • SolrCollapseFunction::getHint »
  • PHP Manual
  • SolrCollapseFunction
  • Returns the field that is being collapsed on

SolrCollapseFunction::getField

(PECL solr >= 2.2.0)

SolrCollapseFunction::getField — Returns the field that is being collapsed on

Описание

public SolrCollapseFunction::getField ( void ) : string

Returns the field that is being collapsed on.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setField() - Sets the field to collapse on


Returns collapse hint

  • « SolrCollapseFunction::getField
  • SolrCollapseFunction::getMax »
  • PHP Manual
  • SolrCollapseFunction
  • Returns collapse hint

SolrCollapseFunction::getHint

(PECL solr >= 2.2.0)

SolrCollapseFunction::getHint — Returns collapse hint

Описание

public SolrCollapseFunction::getHint ( void ) : string

Returns collapse hint

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setHint() - Sets collapse hint


Returns max parameter

  • « SolrCollapseFunction::getHint
  • SolrCollapseFunction::getMin »
  • PHP Manual
  • SolrCollapseFunction
  • Returns max parameter

SolrCollapseFunction::getMax

(PECL solr >= 2.2.0)

SolrCollapseFunction::getMax — Returns max parameter

Описание

public SolrCollapseFunction::getMax ( void ) : string

Returns max parameter

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setMax() - Selects the group heads by the max value of a numeric field or function query


Returns min parameter

  • « SolrCollapseFunction::getMax
  • SolrCollapseFunction::getNullPolicy »
  • PHP Manual
  • SolrCollapseFunction
  • Returns min parameter

SolrCollapseFunction::getMin

(PECL solr >= 2.2.0)

SolrCollapseFunction::getMin — Returns min parameter

Описание

public SolrCollapseFunction::getMin ( void ) : string

Returns min parameter

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setMin() - Sets the initial size of the collapse data structures when collapsing on a numeric field only


Returns null policy

  • « SolrCollapseFunction::getMin
  • SolrCollapseFunction::getSize »
  • PHP Manual
  • SolrCollapseFunction
  • Returns null policy

SolrCollapseFunction::getNullPolicy

(PECL solr >= 2.2.0)

SolrCollapseFunction::getNullPolicy — Returns null policy

Описание

public SolrCollapseFunction::getNullPolicy ( void ) : string

Returns null policy used or null

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setNullPolicy() - Sets the NULL Policy


Returns size parameter

  • « SolrCollapseFunction::getNullPolicy
  • SolrCollapseFunction::setField »
  • PHP Manual
  • SolrCollapseFunction
  • Returns size parameter

SolrCollapseFunction::getSize

(PECL solr >= 2.2.0)

SolrCollapseFunction::getSize — Returns size parameter

Описание

public SolrCollapseFunction::getSize ( void ) : int

Gets the initial size of the collapse data structures when collapsing on a numeric field only

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setSize() - Sets the initial size of the collapse data structures when collapsing on a numeric field only


Sets the field to collapse on

  • « SolrCollapseFunction::getSize
  • SolrCollapseFunction::setHint »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the field to collapse on

SolrCollapseFunction::setField

(PECL solr >= 2.2.0)

SolrCollapseFunction::setField — Sets the field to collapse on

Описание

public SolrCollapseFunction::setField ( string $fieldName ) : SolrCollapseFunction

The field name to collapse on. In order to collapse a result. The field type must be a single valued String, Int or Float.

Список параметров

fieldName

Возвращаемые значения

SolrCollapseFunction


Sets collapse hint

  • « SolrCollapseFunction::setField
  • SolrCollapseFunction::setMax »
  • PHP Manual
  • SolrCollapseFunction
  • Sets collapse hint

SolrCollapseFunction::setHint

(PECL solr >= 2.2.0)

SolrCollapseFunction::setHint — Sets collapse hint

Описание

public SolrCollapseFunction::setHint ( string $hint ) : SolrCollapseFunction

Sets collapse hint

Список параметров

hint

Currently there is only one hint available "top_fc", which stands for top level FieldCache

Возвращаемые значения

SolrCollapseFunction

Примеры

Пример #1 SolrCollapseFunction::setHint() example

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Selects the group heads by the max value of a numeric field or function query

  • « SolrCollapseFunction::setHint
  • SolrCollapseFunction::setMin »
  • PHP Manual
  • SolrCollapseFunction
  • Selects the group heads by the max value of a numeric field or function query

SolrCollapseFunction::setMax

(PECL solr >= 2.2.0)

SolrCollapseFunction::setMax — Selects the group heads by the max value of a numeric field or function query

Описание

public SolrCollapseFunction::setMax ( string $max ) : SolrCollapseFunction

Selects the group heads by the max value of a numeric field or function query.

Список параметров

max

Возвращаемые значения

SolrCollapseFunction

Примеры

Пример #1 SolrCollapseFunction::setMax() example

<?php

$func = new SolrCollapseFunction('field_name');

$func->setMax('sum(cscore(),field(some_field))');

$query = new SolrQuery('*:*');

$query->collapse($func);

?>


Sets the initial size of the collapse data structures when collapsing on a numeric field only

  • « SolrCollapseFunction::setMax
  • SolrCollapseFunction::setNullPolicy »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the initial size of the collapse data structures when collapsing on a numeric field only

SolrCollapseFunction::setMin

(PECL solr >= 2.2.0)

SolrCollapseFunction::setMin — Sets the initial size of the collapse data structures when collapsing on a numeric field only

Описание

public SolrCollapseFunction::setMin ( string $min ) : SolrCollapseFunction

Sets the initial size of the collapse data structures when collapsing on a numeric field only

Список параметров

min

Возвращаемые значения

SolrCollapseFunction


Sets the NULL Policy

  • « SolrCollapseFunction::setMin
  • SolrCollapseFunction::setSize »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the NULL Policy

SolrCollapseFunction::setNullPolicy

(PECL solr >= 2.2.0)

SolrCollapseFunction::setNullPolicy — Sets the NULL Policy

Описание

public SolrCollapseFunction::setNullPolicy ( string $nullPolicy ) : SolrCollapseFunction

Sets the NULL Policy. One of the 3 policies defined as class constants shall be passed. Accepts ignore, expand, or collapse policies.

Список параметров

nullPolicy

Возвращаемые значения

SolrCollapseFunction


Sets the initial size of the collapse data structures when collapsing on a numeric field only

  • « SolrCollapseFunction::setNullPolicy
  • SolrCollapseFunction::__toString »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the initial size of the collapse data structures when collapsing on a numeric field only

SolrCollapseFunction::setSize

(PECL solr >= 2.2.0)

SolrCollapseFunction::setSize — Sets the initial size of the collapse data structures when collapsing on a numeric field only

Описание

public SolrCollapseFunction::setSize ( int $size ) : SolrCollapseFunction

Sets the initial size of the collapse data structures when collapsing on a numeric field only.

Список параметров

size

Возвращаемые значения

SolrCollapseFunction


Returns a string representing the constructed collapse function

  • « SolrCollapseFunction::setSize
  • SolrException »
  • PHP Manual
  • SolrCollapseFunction
  • Returns a string representing the constructed collapse function

SolrCollapseFunction::__toString

(PECL solr >= 2.2.0)

SolrCollapseFunction::__toString — Returns a string representing the constructed collapse function

Описание

public SolrCollapseFunction::__toString ( void ) : string

Returns a string representing the constructed collapse function

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс SolrException

(PECL solr >= 0.9.2)

Введение

Базовый класс для всех исключений, выбрасываемых классами модуля Solr.

Обзор классов

SolrException extends Exception {
/* Свойства */
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
public getInternalInfo ( void ) : array
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Свойства

sourceline

Строка в исходном файле c-space, где было сгенерировано исключение

sourcefile

Исходный файл c-space, где было сгенерировано исключение

zif_name

Функция c-space, где было сгенерировано исключение

Содержание

  • SolrException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение


Возвращает внутреннюю информацию о том, где было выброшено исключение

  • « SolrException
  • SolrClientException »
  • PHP Manual
  • SolrException
  • Возвращает внутреннюю информацию о том, где было выброшено исключение

SolrException::getInternalInfo

(PECL solr >= 0.9.2)

SolrException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение

Описание

public SolrException::getInternalInfo ( void ) : array

Возвращает внутреннюю информацию о том, где было выброшено исключение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий внутреннюю информацию о том, где была вызвана ошибка. Используется только для отладки разработчиками модулей.


The SolrClientException class

(PECL solr >= 0.9.2)

Введение

An exception thrown when there is an error while making a request to the server from the client.

Обзор классов

SolrClientException extends SolrException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Методы */
public getInternalInfo ( void ) : array
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
public SolrException::getInternalInfo ( void ) : array
}

Содержание

  • SolrClientException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение


Возвращает внутреннюю информацию о том, где было выброшено исключение

  • « SolrClientException
  • SolrServerException »
  • PHP Manual
  • SolrClientException
  • Возвращает внутреннюю информацию о том, где было выброшено исключение

SolrClientException::getInternalInfo

(PECL solr >= 0.9.2)

SolrClientException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение

Описание

public SolrClientException::getInternalInfo ( void ) : array

Возвращает внутреннюю информацию о том, где было выброшено исключение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий внутреннюю информацию о том, где была вызвана ошибка. Используется только для отладки разработчиками модулей.


The SolrServerException class

(PECL Solr >= 1.1.0, >=2.0.0)

Введение

An exception thrown when there is an error produced by the Solr Server itself.

Обзор классов

SolrServerException extends SolrException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Методы */
public getInternalInfo ( void ) : array
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
public SolrException::getInternalInfo ( void ) : array
}

Содержание

  • SolrServerException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение


Возвращает внутреннюю информацию о том, где было выброшено исключение

  • « SolrServerException
  • SolrIllegalArgumentException »
  • PHP Manual
  • SolrServerException
  • Возвращает внутреннюю информацию о том, где было выброшено исключение

SolrServerException::getInternalInfo

(PECL solr >= 1.1.0, >=2.0.0)

SolrServerException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение

Описание

public SolrServerException::getInternalInfo ( void ) : array

Возвращает внутреннюю информацию о том, где было выброшено исключение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий информацию о том, где было выброшено исключение. Используется только разработчиками модулей для отладки.


The SolrIllegalArgumentException class

(PECL solr >= 0.9.2)

Введение

This object is thrown when an illegal or invalid argument is passed to a method.

Обзор классов

SolrIllegalArgumentException extends SolrException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Методы */
public getInternalInfo ( void ) : array
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
public SolrException::getInternalInfo ( void ) : array
}

Содержание

  • SolrIllegalArgumentException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение


Возвращает внутреннюю информацию о том, где было выброшено исключение

  • « SolrIllegalArgumentException
  • SolrIllegalOperationException »
  • PHP Manual
  • SolrIllegalArgumentException
  • Возвращает внутреннюю информацию о том, где было выброшено исключение

SolrIllegalArgumentException::getInternalInfo

(PECL solr >= 0.9.2)

SolrIllegalArgumentException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение

Описание

public SolrIllegalArgumentException::getInternalInfo ( void ) : array

Возвращает внутреннюю информацию о том, где было выброшено исключение.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий внутреннюю информацию о том, где была вызвана ошибка. Используется только для отладки разработчиками модулей.


The SolrIllegalOperationException class

(PECL solr >= 0.9.2)

Введение

This object is thrown when an illegal or unsupported operation is performed on an object.

Обзор классов

SolrIllegalOperationException extends SolrException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Методы */
public getInternalInfo ( void ) : array
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
public SolrException::getInternalInfo ( void ) : array
}

Содержание

  • SolrIllegalOperationException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение


Возвращает внутреннюю информацию о том, где было выброшено исключение

  • « SolrIllegalOperationException
  • SolrMissingMandatoryParameterException »
  • PHP Manual
  • SolrIllegalOperationException
  • Возвращает внутреннюю информацию о том, где было выброшено исключение

SolrIllegalOperationException::getInternalInfo

(PECL solr >= 0.9.2)

SolrIllegalOperationException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение

Описание

public SolrIllegalOperationException::getInternalInfo ( void ) : array

Возвращает внутреннюю информацию о том, где было выброшено исключение.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий внутреннюю информацию о том, где была вызвана ошибка. Используется только для отладки разработчиками модулей.


The SolrMissingMandatoryParameterException class

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

SolrMissingMandatoryParameterException extends SolrException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
public SolrException::getInternalInfo ( void ) : array
}


Клиент Sphinx

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • SphinxClient — Класс SphinxClient
    • SphinxClient::addQuery — Добавление запроса к очереди запросов
    • SphinxClient::buildExcerpts — Построение текстовых фрагментов
    • SphinxClient::buildKeywords — Извлечение ключевых слов из запроса
    • SphinxClient::close — Закрытие ранее открытого постоянного соединения
    • SphinxClient::__construct — Создание нового объекта SphinxClient
    • SphinxClient::escapeString — Экранирование спецсимволов
    • SphinxClient::getLastError — Получение последнего сообщения об ошибке
    • SphinxClient::getLastWarning — Получение последнего предупреждения
    • SphinxClient::open — Создание постоянного подключения к серверу
    • SphinxClient::query — Выполнение поискового запроса
    • SphinxClient::resetFilters — Обнуление всех фильтров
    • SphinxClient::resetGroupBy — Сброс всех настроек группировок
    • SphinxClient::runQueries — Выполнение набора поисковых запросов
    • SphinxClient::setArrayResult — Изменение формата массива с набором результатов запроса
    • SphinxClient::setConnectTimeout — Установка таймаута соединения
    • SphinxClient::setFieldWeights — Установка весовых коэффициентов полей
    • SphinxClient::setFilter — Добавление фильтра по типу поля integer
    • SphinxClient::setFilterFloatRange — Добавление фильтра по диапазону значений (для поля типа float)
    • SphinxClient::setFilterRange — Добавление фильтра по диапазону значений (для поля типа integer)
    • SphinxClient::setGeoAnchor — Установка опорной точки для расчета географической удаленности
    • SphinxClient::setGroupBy — Установка атрибута группировки
    • SphinxClient::setGroupDistinct — Установка названия атрибута для расчета количества уникальных значений при группировке
    • SphinxClient::setIDRange — Установка диапазона значений допустимых ID документов
    • SphinxClient::setIndexWeights — Установка весовых коэффициентов индексов
    • SphinxClient::setLimits — Установка смещения и предельного числа значений для набора результатов
    • SphinxClient::setMatchMode — Установка режима совпадения при полнотекстовом поиске
    • SphinxClient::setMaxQueryTime — Установка максимального времени выполнения запроса
    • SphinxClient::setOverride — Временное переопределение значений атрибута для документов
    • SphinxClient::setRankingMode — Установка режима ранжирования
    • SphinxClient::setRetries — Установка количества повторных попыток и задержки между ними
    • SphinxClient::setSelect — Установка условия выборки
    • SphinxClient::setServer — Установка хоста и порта searchd
    • SphinxClient::setSortMode — Установка режима сортировки результатов
    • SphinxClient::status — Запрос статуса searchd
    • SphinxClient::updateAttributes — Обновление атрибутов документа


Введение

Модуль предоставляет интерфейс для работы с клиентской библиотекой Sphinx. Sphinx - это поисковый движок, позволяющий производить быстрый, эффективный на больших объемах и релевантный полнотекстовый поиск в ваших приложениях. Sphinx был специально разработан для хорошей интеграции с реляционными базами данных и скриптовыми языками программирования. Как Sphinx, так и клиентская библиотека могут быть получены с » официального сайта


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Для PECL/sphinx требуется версия PHP не ниже 5.2.2.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/sphinx.

Если скрипт ./configure, сгенерированный с помощью phpize, не может найти файлы libsphinxclient (например, в случае их установки не в директорию по умолчанию), воспользуйтесь командой ./configure --with-sphinx=$PREFIX, где $PREFIX - путь к libsphinxclient.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SEARCHD_OK (integer)
SEARCHD_ERROR (integer)
SEARCHD_RETRY (integer)
SEARCHD_WARNING (integer)
SPH_MATCH_ALL (integer)
SPH_MATCH_ANY (integer)
SPH_MATCH_PHRASE (integer)
SPH_MATCH_BOOLEAN (integer)
SPH_MATCH_EXTENDED (integer)
SPH_MATCH_FULLSCAN (integer)
SPH_MATCH_EXTENDED2 (integer)
SPH_RANK_PROXIMITY_BM25 (integer)
SPH_RANK_BM25 (integer)
SPH_RANK_NONE (integer)
SPH_RANK_WORDCOUNT (integer)
SPH_SORT_RELEVANCE (integer)
SPH_SORT_ATTR_DESC (integer)
SPH_SORT_ATTR_ASC (integer)
SPH_SORT_TIME_SEGMENTS (integer)
SPH_SORT_EXTENDED (integer)
SPH_SORT_EXPR (integer)
SPH_FILTER_VALUES (integer)
SPH_FILTER_RANGE (integer)
SPH_FILTER_FLOATRANGE (integer)
SPH_ATTR_INTEGER (integer)
SPH_ATTR_TIMESTAMP (integer)
SPH_ATTR_ORDINAL (integer)
SPH_ATTR_BOOL (integer)
SPH_ATTR_FLOAT (integer)
SPH_ATTR_MULTI (integer)
SPH_GROUPBY_DAY (integer)
SPH_GROUPBY_WEEK (integer)
SPH_GROUPBY_MONTH (integer)
SPH_GROUPBY_YEAR (integer)
SPH_GROUPBY_ATTR (integer)
SPH_GROUPBY_ATTRPAIR (integer)


Примеры

Пример #1 Примеры использования

<?php

$s = new SphinxClient;
$s->setServer("localhost", 6712);
$s->setMatchMode(SPH_MATCH_ANY);
$s->setMaxQueryTime(3);

$result = $s->query("test");

var_dump($result);

?>

Результатом выполнения данного примера будет что-то подобное:

array(10) {
  ["error"]=>
  string(0) ""
  ["warning"]=>
  string(0) ""
  ["status"]=>
  int(0)
  ["fields"]=>
  array(3) {
    [0]=>
    string(7) "subject"
    [1]=>
    string(4) "body"
    [2]=>
    string(6) "author"
  }
  ["attrs"]=>
  array(0) {
  }
  ["matches"]=>
  array(1) {
    [3]=>
    array(2) {
      ["weight"]=>
      int(1)
      ["attrs"]=>
      array(0) {
      }
    }
  }
  ["total"]=>
  int(1)
  ["total_found"]=>
  int(1)
  ["time"]=>
  float(0)
  ["words"]=>
  array(1) {
    ["to"]=>
    array(2) {
      ["docs"]=>
      int(1)
      ["hits"]=>
      int(1)
    }
  }
}


Класс SphinxClient

(PECL sphinx >= 0.1.0)

Введение

Класс SphinxClient предоставляет объектно-ориентированный интерфейс к Sphinx.

Обзор классов

SphinxClient {
/* Методы */
public addQuery ( string $query [, string $index = "*" [, string $comment = "" ]] ) : int
public buildExcerpts ( array $docs , string $index , string $words [, array $opts ] ) : array
public buildKeywords ( string $query , string $index , bool $hits ) : array
public close ( void ) : bool
public __construct ( void )
public escapeString ( string $string ) : string
public getLastError ( void ) : string
public getLastWarning ( void ) : string
public open ( void ) : bool
public query ( string $query [, string $index = "*" [, string $comment = "" ]] ) : array
public resetFilters ( void ) : void
public resetGroupBy ( void ) : void
public runQueries ( void ) : array
public setArrayResult ( bool $array_result = FALSE ) : bool
public setConnectTimeout ( float $timeout ) : bool
public setFieldWeights ( array $weights ) : bool
public setFilter ( string $attribute , array $values [, bool $exclude = FALSE ] ) : bool
public setFilterFloatRange ( string $attribute , float $min , float $max [, bool $exclude = FALSE ] ) : bool
public setFilterRange ( string $attribute , int $min , int $max [, bool $exclude = FALSE ] ) : bool
public setGeoAnchor ( string $attrlat , string $attrlong , float $latitude , float $longitude ) : bool
public setGroupBy ( string $attribute , int $func [, string $groupsort = "@group desc" ] ) : bool
public setGroupDistinct ( string $attribute ) : bool
public setIDRange ( int $min , int $max ) : bool
public setIndexWeights ( array $weights ) : bool
public setLimits ( int $offset , int $limit [, int $max_matches = 0 [, int $cutoff = 0 ]] ) : bool
public setMatchMode ( int $mode ) : bool
public setMaxQueryTime ( int $qtime ) : bool
public setOverride ( string $attribute , int $type , array $values ) : bool
public setRankingMode ( int $ranker ) : bool
public setRetries ( int $count [, int $delay = 0 ] ) : bool
public setSelect ( string $clause ) : bool
public setServer ( string $server , int $port ) : bool
public setSortMode ( int $mode [, string $sortby ] ) : bool
public status ( void ) : array
public updateAttributes ( string $index , array $attributes , array $values [, bool $mva = FALSE ] ) : int
}

Содержание

  • SphinxClient::addQuery — Добавление запроса к очереди запросов
  • SphinxClient::buildExcerpts — Построение текстовых фрагментов
  • SphinxClient::buildKeywords — Извлечение ключевых слов из запроса
  • SphinxClient::close — Закрытие ранее открытого постоянного соединения
  • SphinxClient::__construct — Создание нового объекта SphinxClient
  • SphinxClient::escapeString — Экранирование спецсимволов
  • SphinxClient::getLastError — Получение последнего сообщения об ошибке
  • SphinxClient::getLastWarning — Получение последнего предупреждения
  • SphinxClient::open — Создание постоянного подключения к серверу
  • SphinxClient::query — Выполнение поискового запроса
  • SphinxClient::resetFilters — Обнуление всех фильтров
  • SphinxClient::resetGroupBy — Сброс всех настроек группировок
  • SphinxClient::runQueries — Выполнение набора поисковых запросов
  • SphinxClient::setArrayResult — Изменение формата массива с набором результатов запроса
  • SphinxClient::setConnectTimeout — Установка таймаута соединения
  • SphinxClient::setFieldWeights — Установка весовых коэффициентов полей
  • SphinxClient::setFilter — Добавление фильтра по типу поля integer
  • SphinxClient::setFilterFloatRange — Добавление фильтра по диапазону значений (для поля типа float)
  • SphinxClient::setFilterRange — Добавление фильтра по диапазону значений (для поля типа integer)
  • SphinxClient::setGeoAnchor — Установка опорной точки для расчета географической удаленности
  • SphinxClient::setGroupBy — Установка атрибута группировки
  • SphinxClient::setGroupDistinct — Установка названия атрибута для расчета количества уникальных значений при группировке
  • SphinxClient::setIDRange — Установка диапазона значений допустимых ID документов
  • SphinxClient::setIndexWeights — Установка весовых коэффициентов индексов
  • SphinxClient::setLimits — Установка смещения и предельного числа значений для набора результатов
  • SphinxClient::setMatchMode — Установка режима совпадения при полнотекстовом поиске
  • SphinxClient::setMaxQueryTime — Установка максимального времени выполнения запроса
  • SphinxClient::setOverride — Временное переопределение значений атрибута для документов
  • SphinxClient::setRankingMode — Установка режима ранжирования
  • SphinxClient::setRetries — Установка количества повторных попыток и задержки между ними
  • SphinxClient::setSelect — Установка условия выборки
  • SphinxClient::setServer — Установка хоста и порта searchd
  • SphinxClient::setSortMode — Установка режима сортировки результатов
  • SphinxClient::status — Запрос статуса searchd
  • SphinxClient::updateAttributes — Обновление атрибутов документа


Добавление запроса к очереди запросов

  • « SphinxClient
  • SphinxClient::buildExcerpts »
  • PHP Manual
  • SphinxClient
  • Добавление запроса к очереди запросов

SphinxClient::addQuery

(PECL sphinx >= 0.1.0)

SphinxClient::addQuery — Добавление запроса к очереди запросов

Описание

public SphinxClient::addQuery ( string $query [, string $index = "*" [, string $comment = "" ]] ) : int

Добавляет запрос с текущими настройками к очереди запросов. Метод никак не влияет на текущие настройки (сортировка, фильтрация, группировка и т.п.).

Список параметров

query

Строка запроса.

index

Название индекса (или множество названий).

comment

Возвращаемые значения

Возвращает индекс массива результатов, который будет возвращен с помощью SphinxClient::runQueries или false в случае возникновения ошибки.

Смотрите также

  • SphinxClient::runQueries
  • SphinxClient::query


Построение текстовых фрагментов

  • « SphinxClient::addQuery
  • SphinxClient::buildKeywords »
  • PHP Manual
  • SphinxClient
  • Построение текстовых фрагментов

SphinxClient::buildExcerpts

(PECL sphinx >= 0.1.0)

SphinxClient::buildExcerpts — Построение текстовых фрагментов

Описание

public SphinxClient::buildExcerpts ( array $docs , string $index , string $words [, array $opts ] ) : array

Подключается к searchd и отправляет запрос на генерацию фрагментов указанных документов и возвращает результаты.

Список параметров

docs

Массив строк с содержимым документов.

index

Название индекса.

words

Ключевые слова, которые необходимо подсветить.

opts

Ассоциативный массив с дополнительными параметрами подсветки (смотрите ниже).

Параметры подсветки
Параметр | Описание
"before_match" | Строка, вставляемая перед ключевым словом. По умолчанию "<b>".
"after_match" | Строка, вставляемая после ключевого слова. По умолчанию "</b>".
"chunk_separator" | Строка, вставляемая между частями фрагмента. по умолчанию " ... ".
"limit" | Максимальный размер фрагмента в символах. Integer, по умолчанию 256.
"around" | Сколько слов необходимо выбрать вокруг каждого совпадающего с ключевыми словами блока. Integer, по умолчанию 5.
"exact_phrase" | Необходимо ли подсвечивать только точное совпадение с поисковой фразой, а не отдельные ключевые слова. Boolean, по умолчанию FALSE.
"single_passage" | Необходимо ли извлечь только единичный наиболее подходящий фрагмент. Boolean, по умолчанию FALSE.

Возвращаемые значения

В случае успешного выполнения возвращает массив фрагментов или FALSE в случае возникновения ошибки.


Извлечение ключевых слов из запроса

  • « SphinxClient::buildExcerpts
  • SphinxClient::close »
  • PHP Manual
  • SphinxClient
  • Извлечение ключевых слов из запроса

SphinxClient::buildKeywords

(PECL sphinx >= 0.1.0)

SphinxClient::buildKeywords — Извлечение ключевых слов из запроса

Описание

public SphinxClient::buildKeywords ( string $query , string $index , bool $hits ) : array

Извлекает ключевые слова из query, используя настройки tokenizer (лексера) для указанного index, опционально с частотной статистикой по ключевым словам.

Список параметров

query

Запрос для извлечения ключевых слов.

index

Индекс для получения настроек tokenizer (лексера) и частотной статистики ключевых слов.

hits

Бинарный флаг, включающий/выключающий генерацию статистики ключевых слов.

Возвращаемые значения

Возвращает массив ассоциативных массивов с информацией по каждому ключевому слову.


Закрытие ранее открытого постоянного соединения

  • « SphinxClient::buildKeywords
  • SphinxClient::__construct »
  • PHP Manual
  • SphinxClient
  • Закрытие ранее открытого постоянного соединения

SphinxClient::close

(PECL sphinx >= 1.0.3)

SphinxClient::close — Закрытие ранее открытого постоянного соединения

Описание

public SphinxClient::close ( void ) : bool

Закрывает ранее открытое постоянное соединение.

Список параметров

У этой функции нет параметров.

Список изменений

PECL/sphinx Версия | Описание
1.0.3 | Добавлен метод SphinxClient::close(). Доступен только если модуль скомпилирован с версией libsphinxclient >= 0.9.9.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::open


Создание нового объекта SphinxClient

  • « SphinxClient::close
  • SphinxClient::escapeString »
  • PHP Manual
  • SphinxClient
  • Создание нового объекта SphinxClient

SphinxClient::__construct

(PECL sphinx >= 0.1.0)

SphinxClient::__construct — Создание нового объекта SphinxClient

Описание

public SphinxClient::__construct ( void )

Создает новый объект SphinxClient.

Список параметров

У этой функции нет параметров.


Экранирование спецсимволов

  • « SphinxClient::__construct
  • SphinxClient::getLastError »
  • PHP Manual
  • SphinxClient
  • Экранирование спецсимволов

SphinxClient::escapeString

(PECL sphinx >= 0.1.0)

SphinxClient::escapeString — Экранирование спецсимволов

Описание

public SphinxClient::escapeString ( string $string ) : string

Экранирует символы, которые воспринимаются как специальные операторы парсером запроса.

Список параметров

string

Строка для экранирования.

Возвращаемые значения

Возвращает экранированную строку.


Получение последнего сообщения об ошибке

  • « SphinxClient::escapeString
  • SphinxClient::getLastWarning »
  • PHP Manual
  • SphinxClient
  • Получение последнего сообщения об ошибке

SphinxClient::getLastError

(PECL sphinx >= 0.1.0)

SphinxClient::getLastError — Получение последнего сообщения об ошибке

Описание

public SphinxClient::getLastError ( void ) : string

Возвращает строку, содержащую последнее сообщение об ошибке. Если во время предыдущего вызова API ошибок не было, возвращается пустая строка. Метод не обнуляет сообщение об ошибке, таким образом, его можно вызывать несколько раз.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает последнее сообщение об ошибке или пустую строку в случае их отсутствия.

Смотрите также

  • SphinxClient::getLastWarning


Получение последнего предупреждения

  • « SphinxClient::getLastError
  • SphinxClient::open »
  • PHP Manual
  • SphinxClient
  • Получение последнего предупреждения

SphinxClient::getLastWarning

(PECL sphinx >= 0.1.0)

SphinxClient::getLastWarning — Получение последнего предупреждения

Описание

public SphinxClient::getLastWarning ( void ) : string

Возвращает последнее сообщение с предупреждением. Если во время предыдущего вызова API предупреждений не было, возвращается пустая строка. Метод не обнуляет сообщение о предупреждении, таким образом, его можно вызывать несколько раз.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает последнее сообщение с предупреждением или пустую строку, если предупреждений не было.

Смотрите также

  • SphinxClient::getLastError


Создание постоянного подключения к серверу

  • « SphinxClient::getLastWarning
  • SphinxClient::query »
  • PHP Manual
  • SphinxClient
  • Создание постоянного подключения к серверу

SphinxClient::open

(PECL sphinx >= 1.0.3)

SphinxClient::open — Создание постоянного подключения к серверу

Описание

public SphinxClient::open ( void ) : bool

Создает постоянное подключение к серверу.

Список параметров

У этой функции нет параметров.

Список изменений

PECL/sphinx Версия | Описание
1.0.3 | Добавлен метод SphinxClient::open(), доступен только если модуль скомпилирован с версией libsphinxclient >= 0.9.9.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::close


Выполнение поискового запроса

  • « SphinxClient::open
  • SphinxClient::resetFilters »
  • PHP Manual
  • SphinxClient
  • Выполнение поискового запроса

SphinxClient::query

(PECL sphinx >= 0.1.0)

SphinxClient::query — Выполнение поискового запроса

Описание

public SphinxClient::query ( string $query [, string $index = "*" [, string $comment = "" ]] ) : array

Подключается к серверу searchd, выполняет указанный поисковый запрос с текущими настройками, получает и возвращает набор результатов.

Список параметров

query

Строка запроса.

index

Название индекса (или множество названий).

comment

Возвращаемые значения

В случае успешного выполнения SphinxClient::query() возвращает список найденных совпадений и дополнительную статистику по запросу. Набор результатов - это (если не указано иное) ассоциативный массив со следующими ключами и значениями:

Структура набора результатов
Ключ | Описание значения
"matches" | Массив с ID найденных документов в качестве ключей и их весами и атрибутами в качестве значений.
"total" | Общее число найденных и полученных совпадений (зависит от ваших настроек).
"total_found" | Общее число найденных документов удовлетворяющих запросу.
"words" | Массив со словами (приведенными к одному регистру и словоформе) в качестве ключей и статистика по этим словам в качестве значений.
"error" | Ошибка запроса, полученная от searchd
"warning" | Предупреждение, полученное от searchd

Смотрите также

  • SphinxClient::runQueries
  • SphinxClient::addQuery


Обнуление всех фильтров

  • « SphinxClient::query
  • SphinxClient::resetGroupBy »
  • PHP Manual
  • SphinxClient
  • Обнуление всех фильтров

SphinxClient::resetFilters

(PECL sphinx >= 0.1.0)

SphinxClient::resetFilters — Обнуление всех фильтров

Описание

public SphinxClient::resetFilters ( void ) : void

Обнуляет все выставленные на данный момент фильтры. Вызов этого метода обычно требуется при использовании очереди запросов. При необходимости установки различных фильтров для различных запросов в очереди следует вызвать SphinxClient::resetFilters() и добавить новые фильтры, используя соответствующие вызовы.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SphinxClient::resetGroupBy


Сброс всех настроек группировок

  • « SphinxClient::resetFilters
  • SphinxClient::runQueries »
  • PHP Manual
  • SphinxClient
  • Сброс всех настроек группировок

SphinxClient::resetGroupBy

(PECL sphinx >= 0.1.0)

SphinxClient::resetGroupBy — Сброс всех настроек группировок

Описание

public SphinxClient::resetGroupBy ( void ) : void

Очищает все текущие настройки группировок и отключает группировку. Вызов метода обычно требуется только при использовании очереди запросов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SphinxClient::resetGroupBy


Выполнение набора поисковых запросов

  • « SphinxClient::resetGroupBy
  • SphinxClient::setArrayResult »
  • PHP Manual
  • SphinxClient
  • Выполнение набора поисковых запросов

SphinxClient::runQueries

(PECL sphinx >= 0.1.0)

SphinxClient::runQueries — Выполнение набора поисковых запросов

Описание

public SphinxClient::runQueries ( void ) : array

Подключается к searchd, выполняет набор из всех запросов, добавленных с помощью SphinxClient::addQuery, получает и возвращает набор результатов.

Возвращаемые значения

Возвращает FALSE в случае возникновения ошибки или массив с набором результатов в случае успешного выполнения.

Смотрите также

  • SphinxClient::addQuery
  • SphinxClient::query


Изменение формата массива с набором результатов запроса

  • « SphinxClient::runQueries
  • SphinxClient::setConnectTimeout »
  • PHP Manual
  • SphinxClient
  • Изменение формата массива с набором результатов запроса

SphinxClient::setArrayResult

(PECL sphinx >= 0.1.0)

SphinxClient::setArrayResult — Изменение формата массива с набором результатов запроса

Описание

public SphinxClient::setArrayResult ( bool $array_result = FALSE ) : bool

Контролирует формат массивов с наборами результатов запроса (должны ли результаты быть возвращены в виде обычного массива или же ассоциативного).

Список параметров

array_result

Если array_result установлен как FALSE, результаты возвращаются в виде ассоциативного массива, с идентификаторами документов в качестве ключей, и остальной информацией (веса, атрибуты) в качестве значений. Если array_result установлен как TRUE, результаты возвращаются в виде обычного массива с полной информацией по совпадениям, включая идентификаторы документов.

Возвращаемые значения

Всегда возвращает TRUE.


Установка таймаута соединения

  • « SphinxClient::setArrayResult
  • SphinxClient::setFieldWeights »
  • PHP Manual
  • SphinxClient
  • Установка таймаута соединения

SphinxClient::setConnectTimeout

(PECL sphinx >= 0.1.0)

SphinxClient::setConnectTimeout — Установка таймаута соединения

Описание

public SphinxClient::setConnectTimeout ( float $timeout ) : bool

Устанавливает таймаут (в секундах) на соединение к searchd.

Список параметров

timeout

Таймаут в секундах.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setMaxQueryTime


Установка весовых коэффициентов полей

  • « SphinxClient::setConnectTimeout
  • SphinxClient::setFilter »
  • PHP Manual
  • SphinxClient
  • Установка весовых коэффициентов полей

SphinxClient::setFieldWeights

(PECL sphinx >= 0.1.0)

SphinxClient::setFieldWeights — Установка весовых коэффициентов полей

Описание

public SphinxClient::setFieldWeights ( array $weights ) : bool

Связывает весовые коэффициенты полей с их названиями.

Ранжирование результатов может основываться на весовых коэффициентах полей. В » документации Sphinx описано, как именно влияет на веса близость фразы к поисковой. Запрос позволяет вам указать веса не по умолчанию для полнотекстовых полей.

Веса должна быть положительными 32-битными integer, будьте внимательны, чтобы не выйти за рамки 32-х битного максимума. Итоговый вес также является 32-битным integer. Значение весов по умолчанию равно 1. Неизвестные названия полей игнорируются без генерации ошибок или предупреждений.

Список параметров

weights

Ассоциативный массив названий полей и их весовых коэффициентов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setIndexWeights


Добавление фильтра по типу поля integer

  • « SphinxClient::setFieldWeights
  • SphinxClient::setFilterFloatRange »
  • PHP Manual
  • SphinxClient
  • Добавление фильтра по типу поля integer

SphinxClient::setFilter

(PECL sphinx >= 0.1.0)

SphinxClient::setFilter — Добавление фильтра по типу поля integer

Описание

public SphinxClient::setFilter ( string $attribute , array $values [, bool $exclude = FALSE ] ) : bool

Добавляет новый фильтр по типу поля integer к имеющемуся списку фильтров.

Список параметров

attribute

Название атрибута.

values

Обычный массив значений типа integer.

exclude

Если TRUE, то попадающие под фильтр документы исключаются из списка результатов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setFilterFloatRange
  • SphinxClient::setFilterRange
  • SphinxClient::resetFilters


Добавление фильтра по диапазону значений (для поля типа float)

  • « SphinxClient::setFilter
  • SphinxClient::setFilterRange »
  • PHP Manual
  • SphinxClient
  • Добавление фильтра по диапазону значений (для поля типа float)

SphinxClient::setFilterFloatRange

(PECL sphinx >= 0.1.0)

SphinxClient::setFilterFloatRange — Добавление фильтра по диапазону значений (для поля типа float)

Описание

public SphinxClient::setFilterFloatRange ( string $attribute , float $min , float $max [, bool $exclude = FALSE ] ) : bool

Добавляет новый фильтр по диапазону значений для поля типа float к имеющемуся списку фильтров. В список результатов попадут только те документы, в которых значение attribute, хранящееся в индексе, находится в диапазоне между min и max, включая значения в точности равные min или max (или же будут исключены из него, если параметр exclude установлен в TRUE).

Список параметров

attribute

Название атрибута.

min

Минимальное значение.

max

Максимальное значение.

exclude

Если установлено в TRUE, то попадающие под фильтр документы будут исключены из списка результатов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setFilterRange
  • SphinxClient::setFilter
  • SphinxClient::resetFilters


Добавление фильтра по диапазону значений (для поля типа integer)

  • « SphinxClient::setFilterFloatRange
  • SphinxClient::setGeoAnchor »
  • PHP Manual
  • SphinxClient
  • Добавление фильтра по диапазону значений (для поля типа integer)

SphinxClient::setFilterRange

(PECL sphinx >= 0.1.0)

SphinxClient::setFilterRange — Добавление фильтра по диапазону значений (для поля типа integer)

Описание

public SphinxClient::setFilterRange ( string $attribute , int $min , int $max [, bool $exclude = FALSE ] ) : bool

Добавляет новый фильтр по диапазону значений для поля типа integer к имеющемуся списку фильтров. В список результатов попадут только те документы, в которых значение attribute, хранящееся в индексе, находится в диапазоне между min и max, включая значения, в точности равные min или max (или же будут исключены из него, если параметр exclude установлен в TRUE).

Список параметров

attribute

Название атрибута.

min

Минимальное значение.

max

Максимальное значение.

exclude

Если установлено в TRUE, то попадающие под фильтр документы будут исключены из списка результатов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setFilterFloatRange
  • SphinxClient::setFilter
  • SphinxClient::resetFilters


Установка опорной точки для расчета географической удаленности

  • « SphinxClient::setFilterRange
  • SphinxClient::setGroupBy »
  • PHP Manual
  • SphinxClient
  • Установка опорной точки для расчета географической удаленности

SphinxClient::setGeoAnchor

(PECL sphinx >= 0.1.0)

SphinxClient::setGeoAnchor — Установка опорной точки для расчета географической удаленности

Описание

public SphinxClient::setGeoAnchor ( string $attrlat , string $attrlong , float $latitude , float $longitude ) : bool

Устанавливает опорную точку для расчета географической удаленности (geodistance) и включает эту возможность.

После установки опорной точки вы можете использовать "магический" атрибут "@geodist" в ваших фильтрах и/или математических выражениях сортировки.

Список параметров

attrlat

Название атрибута, хранящего широту.

attrlong

Название атрибута, хранящего долготу.

latitude

Широта якоря в радианах.

longitude

Долгота якоря в радианах.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setFilterFloatRange
  • SphinxClient::setFilterRange
  • SphinxClient::setFilter
  • SphinxClient::resetFilters


Установка атрибута группировки

  • « SphinxClient::setGeoAnchor
  • SphinxClient::setGroupDistinct »
  • PHP Manual
  • SphinxClient
  • Установка атрибута группировки

SphinxClient::setGroupBy

(PECL sphinx >= 0.1.0)

SphinxClient::setGroupBy — Установка атрибута группировки

Описание

public SphinxClient::setGroupBy ( string $attribute , int $func [, string $groupsort = "@group desc" ] ) : bool

Устанавливает атрибут группировки, функцию и режим группировки и включает группировку.

Возможность группировки очень схожа с условием GROUP BY в SQL. Результаты вызова функции будут схожи с результатами, которые мог бы вернуть следующий псевдокод: SELECT ... GROUP BY $func($attribute) ORDER BY $groupsort.

Список параметров

attribute

Строка, содержащая атрибут, по которому производится группировка.

func

Константа, указывающая какая именно функция будет применена к значению атрибута для расчета группировки.

groupsort

Необязательное условие, контролирующее сортировку групп.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::resetGroupBy
  • SphinxClient::setSortMode
  • SphinxClient::setGroupDistinct


Установка названия атрибута для расчета количества уникальных значений при группировке

  • « SphinxClient::setGroupBy
  • SphinxClient::setIDRange »
  • PHP Manual
  • SphinxClient
  • Установка названия атрибута для расчета количества уникальных значений при группировке

SphinxClient::setGroupDistinct

(PECL sphinx >= 0.1.0)

SphinxClient::setGroupDistinct — Установка названия атрибута для расчета количества уникальных значений при группировке

Описание

public SphinxClient::setGroupDistinct ( string $attribute ) : bool

Устанавливает название атрибута, используемого для расчета количества уникальных значений при группировке. Доступна только для сгруппированных запросов. Для каждой из групп будут сохранены все значения поля attribute, затем количество уникальных значений будет рассчитано и возвращено клиенту. Свойство сходно с условием COUNT(DISTINCT) в SQL.

Список параметров

attribute

Строка, содержащая атрибут, по которому происходит группировка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setSortMode
  • SphinxClient::setGroupBy
  • SphinxClient::resetGroupBy


Установка диапазона значений допустимых ID документов

  • « SphinxClient::setGroupDistinct
  • SphinxClient::setIndexWeights »
  • PHP Manual
  • SphinxClient
  • Установка диапазона значений допустимых ID документов

SphinxClient::setIDRange

(PECL sphinx >= 0.1.0)

SphinxClient::setIDRange — Установка диапазона значений допустимых ID документов

Описание

public SphinxClient::setIDRange ( int $min , int $max ) : bool

Устанавливает допустимый диапазон ID документов. Диапазон по умолчанию - от 0 до 0, то есть без ограничений. В список результатов попадут только документы, имеющие ID документа в границах между min и max (включая ID, в точности равные min или max).

Список параметров

min

Минимальное значение ID.

max

Максимальное значение ID.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка весовых коэффициентов индексов

  • « SphinxClient::setIDRange
  • SphinxClient::setLimits »
  • PHP Manual
  • SphinxClient
  • Установка весовых коэффициентов индексов

SphinxClient::setIndexWeights

(PECL sphinx >= 0.1.0)

SphinxClient::setIndexWeights — Установка весовых коэффициентов индексов

Описание

public SphinxClient::setIndexWeights ( array $weights ) : bool

Устанавливает весовые коэффициенты индексов и включает суммирование соответствующих весов для различных индексов.

Список параметров

weights

Ассоциативный массив, связывающий названия индексов (string) с их весами (integer). По умолчанию - пустой массив, то есть взвешенное суммирование отключено.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка смещения и предельного числа значений для набора результатов

  • « SphinxClient::setIndexWeights
  • SphinxClient::setMatchMode »
  • PHP Manual
  • SphinxClient
  • Установка смещения и предельного числа значений для набора результатов

SphinxClient::setLimits

(PECL sphinx >= 0.1.0)

SphinxClient::setLimits — Установка смещения и предельного числа значений для набора результатов

Описание

public SphinxClient::setLimits ( int $offset , int $limit [, int $max_matches = 0 [, int $cutoff = 0 ]] ) : bool

Устанавливает смещение offset для получаемого от сервера набора результатов, и количество записей limit, которое необходимо получить с данным смещением. Дополнительно может контролировать максимальное число результатов для данного запроса max_matches и пороговое количество совпадений cutoff, после превышения которого можно прекратить поиск.

Список параметров

offset

Смещение набора результатов.

limit

Количество необходимых к получению результатов.

max_matches

Контролирует количество совпадений, которые searchd будет хранить в оперативной памяти в процессе поиска.

cutoff

Используется для повышенного контроля за производительностью. Параметр указывает searchd принудительно останавливать поиск, как только было найдено и обработано cutoff совпадений.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка режима совпадения при полнотекстовом поиске

  • « SphinxClient::setLimits
  • SphinxClient::setMaxQueryTime »
  • PHP Manual
  • SphinxClient
  • Установка режима совпадения при полнотекстовом поиске

SphinxClient::setMatchMode

(PECL sphinx >= 0.1.0)

SphinxClient::setMatchMode — Установка режима совпадения при полнотекстовом поиске

Описание

public SphinxClient::setMatchMode ( int $mode ) : bool

Устанавливает режим совпадения при полнотекстовом поиске. Параметр mode должен быть одной из описанных ниже констант.

Режимы совпадения
Константа | Описание
SPH_MATCH_ALL | Найдены все слова запроса (режим по умолчанию).
SPH_MATCH_ANY | Найдено любое из слов запроса.
SPH_MATCH_PHRASE | Найдена в точности поисковая фраза.
SPH_MATCH_BOOLEAN | Поиск с использованием в запросе логических операторов.
SPH_MATCH_EXTENDED | Запрос рассматривается как выражение с использованием внутреннего языка запросов Sphinx.
SPH_MATCH_FULLSCAN | Включает полное сканирование.
SPH_MATCH_EXTENDED2 | Работает аналогично SPH_MATCH_EXTENDED с добавлением поддержки ранжирования и количественного поиска (quorum searching).

Список параметров

mode

Режим совпадения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setRankingMode
  • SphinxClient::setSortMode


Установка максимального времени выполнения запроса

  • « SphinxClient::setMatchMode
  • SphinxClient::setOverride »
  • PHP Manual
  • SphinxClient
  • Установка максимального времени выполнения запроса

SphinxClient::setMaxQueryTime

(PECL sphinx >= 0.1.0)

SphinxClient::setMaxQueryTime — Установка максимального времени выполнения запроса

Описание

public SphinxClient::setMaxQueryTime ( int $qtime ) : bool

Устанавливает максимальное время выполнения запроса.

Список параметров

qtime

Максимальное время выполнения запроса, в миллисекундах. Должно быть положительным целым числом. Значение по умолчанию 0, то есть без ограничений.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Временное переопределение значений атрибута для документов

  • « SphinxClient::setMaxQueryTime
  • SphinxClient::setRankingMode »
  • PHP Manual
  • SphinxClient
  • Временное переопределение значений атрибута для документов

SphinxClient::setOverride

(PECL sphinx >= 1.0.3)

SphinxClient::setOverride — Временное переопределение значений атрибута для документов

Описание

public SphinxClient::setOverride ( string $attribute , int $type , array $values ) : bool

Временно переопределяет значение атрибута в документах в пределах одного запроса. Переопределение позволяет вам временно "обновить" значения атрибутов для некоторых документов в пределах одного запроса, не затрагивая остальные. Это может быть полезно для персонифицированных данных.

Список параметров

attribute

Название атрибута.

type

Тип атрибута. Поддерживаются только скалярные атрибуты.

values

Массив значений атрибутов, связывающих ID документов с переопределенными значениями атрибутов.

Список изменений

PECL/sphinx Версия | Описание
1.0.3 | Добавлен метод SphinxClient::setOverride(), доступен только если модуль скомпилирован с версией libsphinxclient >= 0.9.9.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка режима ранжирования

  • « SphinxClient::setOverride
  • SphinxClient::setRetries »
  • PHP Manual
  • SphinxClient
  • Установка режима ранжирования

SphinxClient::setRankingMode

(PECL sphinx >= 0.1.0)

SphinxClient::setRankingMode — Установка режима ранжирования

Описание

public SphinxClient::setRankingMode ( int $ranker ) : bool

Устанавливает режим ранжирования. Доступно только в режиме совпадения SPH_MATCH_EXTENDED2.

Режимы ранжирования
Константа | Описание
SPH_RANK_PROXIMITY_BM25 | Режим ранжирования по умолчанию, использующий как близостное, так и BM25 ранжирование.
SPH_RANK_BM25 | Статистический режим ранжирования, использующий только метод BM25 (наиболее близкий к другим полнотекстовым движкам). Этот режим быстрее, но может давать худший результат на запросах, содержащих более одного ключевого слова.
SPH_RANK_NONE | Отключает ранжирование. Этот режим самый быстрый. Фактически является эквивалентом логического поиска, и всем совпадениям присваивается вес 1.

Список параметров

ranker

Режим ранжирования.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setMatchMode


Установка количества повторных попыток и задержки между ними

  • « SphinxClient::setRankingMode
  • SphinxClient::setSelect »
  • PHP Manual
  • SphinxClient
  • Установка количества повторных попыток и задержки между ними

SphinxClient::setRetries

(PECL sphinx >= 0.1.0)

SphinxClient::setRetries — Установка количества повторных попыток и задержки между ними

Описание

public SphinxClient::setRetries ( int $count [, int $delay = 0 ] ) : bool

Устанавливает на searchd количество повторных попыток и задержку между ними.

При временных проблемах searchd будет делать повторные попытки вплоть до count на одного агента. delay - это задержка между попытками, в миллисекундах. По умолчанию повторные попытки отключены. Обратите внимание, что этот запрос не дает команды самому API делать повторные попытки в случае возникновения ошибки. Он лишь передает новые параметры демону searchd.

Список параметров

count

Количество повторных попыток.

delay

Задержка между попытками, в миллисекундах.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка условия выборки

  • « SphinxClient::setRetries
  • SphinxClient::setServer »
  • PHP Manual
  • SphinxClient
  • Установка условия выборки

SphinxClient::setSelect

(PECL sphinx >= 1.0.1)

SphinxClient::setSelect — Установка условия выборки

Описание

public SphinxClient::setSelect ( string $clause ) : bool

Устанавливает условия выборки, содержит конкретные атрибуты для выборки и выражения для расчета и последующей выборки.

Список параметров

clause

Условия, схожие с языком SQL.

Список изменений

PECL/sphinx Версия | Описание
1.0.1 | Добавлен метод SphinxClient::setSelect(), доступен только если модуль скомпилирован с версией libsphinxclient >= 0.9.9.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка хоста и порта searchd

  • « SphinxClient::setSelect
  • SphinxClient::setSortMode »
  • PHP Manual
  • SphinxClient
  • Установка хоста и порта searchd

SphinxClient::setServer

(PECL sphinx >= 0.1.0)

SphinxClient::setServer — Установка хоста и порта searchd

Описание

public SphinxClient::setServer ( string $server , int $port ) : bool

Устанавливает имя хоста и TCP-порт демона searchd. Все последующие запросы будут использовать новые настройки хоста и порта. Хост и порт по умолчанию имеют значения 'localhost' и 3312, соответственно.

Список параметров

server

IP-адрес или хост.

port

Номер порта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка режима сортировки результатов

  • « SphinxClient::setServer
  • SphinxClient::status »
  • PHP Manual
  • SphinxClient
  • Установка режима сортировки результатов

SphinxClient::setSortMode

(PECL sphinx >= 0.1.0)

SphinxClient::setSortMode — Установка режима сортировки результатов

Описание

public SphinxClient::setSortMode ( int $mode [, string $sortby ] ) : bool

Устанавливает режим сортировки результатов. Список режимов в таблице ниже.

Sorting modes
Константа | Описание
SPH_SORT_RELEVANCE | Сортировка по релевантности в порядке убывания (лучшие совпадения выводятся раньше).
SPH_SORT_ATTR_DESC | Сортировка по атрибуту в порядке убывания (большие значения атрибута выводятся раньше).
SPH_SORT_ATTR_ASC | Сортировка по атрибуту в порядке возрастания (меньшие значения атрибута выводятся первыми).
SPH_SORT_TIME_SEGMENTS | Сортировка по временным интервалам (последний час/день/неделя/месяц) в порядке убывания, а затем по релевантности в порядке убывания.
SPH_SORT_EXTENDED | Сортировка по схожей с форматом SQL комбинации столбцов в порядке ASC/DESC.
SPH_SORT_EXPR | Сортировка по арифметическому выражению.

Список параметров

mode

Режим сортировки.

sortby

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setMatchMode
  • SphinxClient::setSortMode


Запрос статуса searchd

  • « SphinxClient::setSortMode
  • SphinxClient::updateAttributes »
  • PHP Manual
  • SphinxClient
  • Запрос статуса searchd

SphinxClient::status

(PECL sphinx >= 1.0.3)

SphinxClient::status — Запрос статуса searchd

Описание

public SphinxClient::status ( void ) : array

Запрашивает статус searchd, и возвращает массив в формате пар ключ-значение.

Список параметров

У этой функции нет параметров.

Список изменений

PECL/sphinx Версия | Описание
1.0.3 | Добавлен метод SphinxClient::status(), доступен только если модуль скомпилирован с версией libsphinxclient >= 0.9.9.

Возвращаемые значения

Возвращает ассоциативный массив статистики поискового сервера или FALSE в случае возникновения ошибки.


Обновление атрибутов документа

  • « SphinxClient::status
  • Swish »
  • PHP Manual
  • SphinxClient
  • Обновление атрибутов документа

SphinxClient::updateAttributes

(PECL sphinx >= 0.1.0)

SphinxClient::updateAttributes — Обновление атрибутов документа

Описание

public SphinxClient::updateAttributes ( string $index , array $attributes , array $values [, bool $mva = FALSE ] ) : int

Моментально обновляет указанные значения атрибутов в указанных документах.

Список параметров

index

Название индекса (или индексов) для обновления.

attributes

Массив названий атрибутов, которые будут обновлены.

values

Ассоциативный массив, содержащий ID документов в качестве ключей и массив значений атрибутов в качестве значений.

Возвращаемые значения

Возвращает количество измененных документов (0 или более) в случае успешного выполнения или FALSE в случае возникновения ошибки.


Индексирование Swish

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Основы использования
  • Функции Swish
    • Swish::__construct — Конструктор класса Swish
    • Swish::getMetaList — Получить список мета-записей для индекса
    • Swish::getPropertyList — Получить список свойств для индекса
    • Swish::prepare — Подготовить поисковый запрос
    • Swish::query — Запускает запрос и возвращает результирующий объект
    • SwishResult::getMetaList — Получить список мета-записей
    • SwishResult::stem — Выделяет основы слова
    • SwishResults::getParsedWords — Получить массив разобранных слов
    • SwishResults::getRemovedStopwords — Получить список стоп-слов, удаленных из запроса
    • SwishResults::nextResult — Получить следующий результат поиска
    • SwishResults::seekResult — Установить внутренний указатель смещения
    • SwishSearch::execute — Запустить поиск и получить результаты
    • SwishSearch::resetLimit — Сбрасывает ограничения поиска
    • SwishSearch::setLimit — Установить ограничения поиска
    • SwishSearch::setPhraseDelimiter — Установить разделитель фраз
    • SwishSearch::setSort — Задать порядок сортировки
    • SwishSearch::setStructure — Установить флаг структуры в объекте поиска


Введение

Модуль swish предоставляет связь с Swish-e API. Swish-e расшифровывается как "Simple Web Indexing System for Humans - Enhanced" (Простая система индексирования веб-страниц для людей - расширенная) и является открытой системой для индексации и поиска. Swish-e распространяется под лицензией GPL, но может использоваться, если в файлах, работающих с этой библиотекой, будет ссылка на исходные коды Swish-e. Вот эта ссылка: » http://swish-e.org.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Для PECL/swish требуется PHP 5.1.3 или выше.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/swish.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Swish::META_TYPE_UNDEF (integer)
Swish::META_TYPE_STRING (integer)
Swish::META_TYPE_ULONG (integer)
Swish::META_TYPE_DATE (integer)
Swish::IN_FILE_BIT (integer)
Swish::IN_TITLE_BIT (integer)
Swish::IN_HEAD_BIT (integer)
Swish::IN_BODY_BIT (integer)
Swish::IN_COMMENTS_BIT (integer)
Swish::IN_HEADER_BIT (integer)
Swish::IN_EMPHASIZED_BIT (integer)
Swish::IN_META_BIT (integer)
Swish::IN_FILE (integer)
Swish::IN_TITLE (integer)
Swish::IN_HEAD (integer)
Swish::IN_BODY (integer)
Swish::IN_COMMENTS (integer)
Swish::IN_HEADER (integer)
Swish::IN_EMPHASIZED (integer)
Swish::IN_META (integer)
Swish::IN_ALL (integer)


  • « Предопределенные константы
  • Основы использования »
  • PHP Manual
  • Swish
  • Примеры

Примеры

Содержание

  • Основы использования


Основы использования

Пример #1 Простой поиск

<?php

try {

    $swish = new Swish("index.swish-e");
    $results = $swish->query("test OR text");

    echo "Найдено ", $results->hits, " результатов\n";
    while ($result = $results->nextResult()) {
        var_dump($result);
        break; //прервать после первого результата
    }

} catch (SwishException $e) {
    echo "Ошибка: ", $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Найдено 9 результатов
object(SwishResult)#3 (8) {
  ["swishreccount"]=>
  int(1)
  ["swishrank"]=>
  int(1000)
  ["swishfilenum"]=>
  int(10)
  ["swishdbfile"]=>
  string(13) "index.swish-e"
  ["swishdocpath"]=>
  string(23) "README.SUBMITTING_PATCH"
  ["swishtitle"]=>
  NULL
  ["swishdocsize"]=>
  int(4557)
  ["swishlastmodified"]=>
  int(1072136752)
}


Функции Swish

Содержание

  • Swish::__construct — Конструктор класса Swish
  • Swish::getMetaList — Получить список мета-записей для индекса
  • Swish::getPropertyList — Получить список свойств для индекса
  • Swish::prepare — Подготовить поисковый запрос
  • Swish::query — Запускает запрос и возвращает результирующий объект
  • SwishResult::getMetaList — Получить список мета-записей
  • SwishResult::stem — Выделяет основы слова
  • SwishResults::getParsedWords — Получить массив разобранных слов
  • SwishResults::getRemovedStopwords — Получить список стоп-слов, удаленных из запроса
  • SwishResults::nextResult — Получить следующий результат поиска
  • SwishResults::seekResult — Установить внутренний указатель смещения
  • SwishSearch::execute — Запустить поиск и получить результаты
  • SwishSearch::resetLimit — Сбрасывает ограничения поиска
  • SwishSearch::setLimit — Установить ограничения поиска
  • SwishSearch::setPhraseDelimiter — Установить разделитель фраз
  • SwishSearch::setSort — Задать порядок сортировки
  • SwishSearch::setStructure — Установить флаг структуры в объекте поиска


Конструктор класса Swish

  • « Функции Swish
  • Swish::getMetaList »
  • PHP Manual
  • Функции Swish
  • Конструктор класса Swish

Swish::__construct

(PECL swish >= 0.1.0)

Swish::__construct — Конструктор класса Swish

Описание

Swish::__construct ( string $index_names ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

index_names

Список индексных файлов, разделенный пробелами.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

В случае возникновения ошибки выбрасывает SwishException.

Примеры

Пример #1 Пример использования Swish::__construct()

<?php

try {
    $swish = new Swish("index1 index2");
} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

foreach ($swish->indexes as $index) {
    var_dump($index["name"]);
    var_dump($index["headers"]["Total Words"]);
}

?>

Результатом выполнения данного примера будет что-то подобное:

string(6) "index1"
int(1888)
string(6) "index2"
int(2429)


Получить список мета-записей для индекса

  • « Swish::__construct
  • Swish::getPropertyList »
  • PHP Manual
  • Функции Swish
  • Получить список мета-записей для индекса

Swish::getMetaList

(PECL swish >= 0.1.0)

Swish::getMetaList — Получить список мета-записей для индекса

Описание

Swish::getMetaList ( string $index_name ) : array
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

index_name

Имя индексного файла.

Возвращаемые значения

Возвращает массив мета-записей для указанного индекса.

Примеры

Пример #1 Пример использования Swish::getMetaList()

<?php

try {

    $swish = new Swish("index.swish-e");
    var_dump($swish->getMetaList("index.swish-e"));

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(3) {
    ["Name"]=>
    string(12) "swishdefault"
    ["Type"]=>
    int(0)
    ["ID"]=>
    int(1)
  }
}


Получить список свойств для индекса

  • « Swish::getMetaList
  • Swish::prepare »
  • PHP Manual
  • Функции Swish
  • Получить список свойств для индекса

Swish::getPropertyList

(PECL swish >= 0.1.0)

Swish::getPropertyList — Получить список свойств для индекса

Описание

Swish::getPropertyList ( string $index_name ) : array
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

index_name

Имя индексного файла.

Возвращаемые значения

Возвращает массив свойств для указанного индекса.

Примеры

Пример #1 Пример использования Swish::getPropertyList()

<?php

try {

    $swish = new Swish("index.swish-e");
    $properties = $swish->getPropertyList("index.swish-e");
    foreach ($properties as $prop) {
        echo $prop["Name"],"\n";
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

swishreccount
swishrank
swishfilenum
swishdbfile
swishdocpath
swishtitle
swishdocsize
swishlastmodified


Подготовить поисковый запрос

  • « Swish::getPropertyList
  • Swish::query »
  • PHP Manual
  • Функции Swish
  • Подготовить поисковый запрос

Swish::prepare

(PECL swish >= 0.1.0)

Swish::prepare — Подготовить поисковый запрос

Описание

Swish::prepare ([ string $query ] ) : object
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Подготавливает и возвращает поисковый запрос, который можно использовать для запросов неограниченное количество раз.

Список параметров

query

Необязательная строка запроса. В последствии ее можно задать с помощью метода SwishSearch::execute().

Возвращаемые значения

Возвращает объект SwishSearch.

Ошибки

В случае возникновения ошибки выбрасывает SwishException.

Примеры

Пример #1 Пример использования Swish::prepare()

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare("search query");
    $results = $search->execute();
    echo "Найдено: ", $results->hits, " совпадений\n";

    $results = $search->execute("new search");

    echo "Найдено: ", $results->hits, " совпадений\n";
} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Найдено: 2 совпадений
Найдено: 5 совпадений


Запускает запрос и возвращает результирующий объект

  • « Swish::prepare
  • SwishResult::getMetaList »
  • PHP Manual
  • Функции Swish
  • Запускает запрос и возвращает результирующий объект

Swish::query

(PECL swish >= 0.1.0)

Swish::query — Запускает запрос и возвращает результирующий объект

Описание

Swish::query ( string $query ) : object
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Быстрый способ запустить поисковый запрос с параметрами по умолчанию.

Список параметров

query

Строка запроса.

Возвращаемые значения

Возвращает объект SwishResults.

Ошибки

В случае возникновения ошибки выбрасывает SwishException.

Примеры

Пример #1 Пример использования Swish::query()

<?php

try {

    $swish = new Swish("index.swish-e");
    $results = $swish->query("test query");

    echo "Найдено: ", $results->hits, " совпадений\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Найдено: 1 совпадений


Получить список мета-записей

  • « Swish::query
  • SwishResult::stem »
  • PHP Manual
  • Функции Swish
  • Получить список мета-записей

SwishResult::getMetaList

(PECL swish >= 0.1.0)

SwishResult::getMetaList — Получить список мета-записей

Описание

SwishResult::getMetaList ( void ) : array
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Возвращаемые значения

Возвращает такой же массив, что и метод swish::getmetalist(), но использует индексный файл из обработчика результата.


Выделяет основы слова

  • « SwishResult::getMetaList
  • SwishResults::getParsedWords »
  • PHP Manual
  • Функции Swish
  • Выделяет основы слова

SwishResult::stem

(PECL swish >= 0.1.0)

SwishResult::stem — Выделяет основы слова

Описание

SwishResult::stem ( string $word ) : array
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Выделяет основы слова используя нечеткий режим в процессе индексирования. Каждый результирующий объект связан со своим индексом, так что результат будет основан на этом индексе.

Список параметров

word

Слово.

Возвращаемые значения

Возвращает массив, содержащий варианты разобранного слова (обычно только один).

Ошибки

В случае ошибок выбрасывается исключение SwishException.

Примеры

Пример #1 Пример использования SwishResult::stem()

<?php

try {

    $swish = new Swish("ext/swish/tests/index.swish-e");
    $results = $swish->query("testing OR others");

    if ($result = $results->nextResult()) {
        var_dump($result->stem("testing")); //результаты полностью зависят от стеммера, используемого в индексе
        var_dump($result->stem("others"));
    }

} catch (SwishException $e) {
    echo "Ошибка: ", $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  string(4) "test"
}
array(1) {
  [0]=>
  string(5) "other"
}


Получить массив разобранных слов

  • « SwishResult::stem
  • SwishResults::getRemovedStopwords »
  • PHP Manual
  • Функции Swish
  • Получить массив разобранных слов

SwishResults::getParsedWords

(PECL swish >= 0.1.0)

SwishResults::getParsedWords — Получить массив разобранных слов

Описание

SwishResults::getParsedWords ( string $index_name ) : array
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

indexi_name

Имя индекса для инициализации объекта Swish.

Возвращаемые значения

Массив разобранных слов без стоп-слов. Этот список может быть полезен для подсвечивания условий поиска в результатах.

Примеры

Пример #1 Пример использования SwishResults::getParsedWords()

<?php

try {

    $swish = new Swish("index.swish-e");
    $results = $swish->query("'some characters' and numbers");

    var_dump($results->getParsedWords("index.swish-e"));
    var_dump($results->indexes[0]['parsed_words']); //тот же результат по-другому

} catch (SwishException $e) {
    echo "Ошибка: ", $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  [0]=>
  string(4) "some"
  [1]=>
  string(10) "characters"
  [2]=>
  string(3) "and"
  [3]=>
  string(7) "numbers"
}
array(4) {
  [0]=>
  string(4) "some"
  [1]=>
  string(10) "characters"
  [2]=>
  string(3) "and"
  [3]=>
  string(7) "numbers"
}


Получить список стоп-слов, удаленных из запроса

  • « SwishResults::getParsedWords
  • SwishResults::nextResult »
  • PHP Manual
  • Функции Swish
  • Получить список стоп-слов, удаленных из запроса

SwishResults::getRemovedStopwords

(PECL swish >= 0.1.0)

SwishResults::getRemovedStopwords — Получить список стоп-слов, удаленных из запроса

Описание

SwishResults::getRemovedStopwords ( string $index_name ) : array
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

index_name

Имя индекса для инициализации объекта Swish.

Возвращаемые значения

Возвращает массив стоп-слов, удаленных из запроса.


Получить следующий результат поиска

  • « SwishResults::getRemovedStopwords
  • SwishResults::seekResult »
  • PHP Manual
  • Функции Swish
  • Получить следующий результат поиска

SwishResults::nextResult

(PECL swish >= 0.1.0)

SwishResults::nextResult — Получить следующий результат поиска

Описание

SwishResults::nextResult ( void ) : object
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Возвращаемые значения

Возвращает следующий объект SwishResult из результирующего набора, или FALSE, если такового нет.

Примеры

Пример #1 Пример использования SwishResults::nextResult()

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("lost");
    while($result = $results->nextResult()) {
        /* сделать что-то с объектом результата */
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>


Установить внутренний указатель смещения

  • « SwishResults::nextResult
  • SwishSearch::execute »
  • PHP Manual
  • Функции Swish
  • Установить внутренний указатель смещения

SwishResults::seekResult

(PECL swish >= 0.1.0)

SwishResults::seekResult — Установить внутренний указатель смещения

Описание

SwishResults::seekResult ( int $position ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

position

Номер позиции. Начинается с 0. Не может быть отрицательным.

Возвращаемые значения

Возвращает новую позицию в случае успешного выполнения.

Ошибки

В случае возникновения ошибок выбрасывается исключение SwishException.

Примеры

Пример #1 Пример использования SwishResults::seekResult()

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("lost");

    var_dump($results->seekResult(0)); //Так получится
    var_dump($results->seekResult(100)); //а так нет

} catch (SwishException $e) {
    echo "Ошибка: ", $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

int(0)
Error: No more results


Запустить поиск и получить результаты

  • « SwishResults::seekResult
  • SwishSearch::resetLimit »
  • PHP Manual
  • Функции Swish
  • Запустить поиск и получить результаты

SwishSearch::execute

(PECL swish >= 0.1.0)

SwishSearch::execute — Запустить поиск и получить результаты

Описание

SwishSearch::execute ([ string $query ] ) : object
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Ищет записи в индексных файлах, используя параметры, заданные в объекте поиска.

Список параметров

query

Необязательная строка поиска. Может быть установлена с помощью метода Swish::prepare(). Строка поиска сохраняется между запросами, так что вы можете установить ее один раз, а использовать несколько.

Возвращаемые значения

Возвращает объект SwishResults.

Ошибки

В случае возникновения ошибки выбрасывает SwishException.

Примеры

Пример #1 Пример использования SwishSearch::execute()

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("query");
    echo "В первом запросе найдено: ", $results->hits, " совпадений\n";

    $results = $search->execute("new OR query");
    echo "Во втором запросе найдено: ", $results->hits, " совпадений\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

В первом запросе найдено: 2 совпадений
Во втором запросе найдено: 12 совпадений


Сбрасывает ограничения поиска

  • « SwishSearch::execute
  • SwishSearch::setLimit »
  • PHP Manual
  • Функции Swish
  • Сбрасывает ограничения поиска

SwishSearch::resetLimit

(PECL swish >= 0.1.0)

SwishSearch::resetLimit — Сбрасывает ограничения поиска

Описание

SwishSearch::resetLimit ( void ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Сбрасывает ограничения поиска, установленные с помощью SwishSearch::setLimit.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SwishSearch::resetLimit()

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "В первом запросе найдено: ", $results->hits, " совпадений\n";

    $search->setLimit("swishdocsize", "3000", "6000"); //ограничение по размеру документа, от 3000 до 6000 байт
    $results = $search->execute("time");
    echo "Во втором запросе найдено: ", $results->hits, " совпадений\n";

    $search->resetLimit();
    $results = $search->execute("time");
    echo "В третьем запросе найдено: ", $results->hits, " совпадений\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

В первом запросе найдено: 5 совпадений
Во втором запросе найдено: 2 совпадений
В третьем запросе найдено: 5 совпадений


Установить ограничения поиска

  • « SwishSearch::resetLimit
  • SwishSearch::setPhraseDelimiter »
  • PHP Manual
  • Функции Swish
  • Установить ограничения поиска

SwishSearch::setLimit

(PECL swish >= 0.1.0)

SwishSearch::setLimit — Установить ограничения поиска

Описание

SwishSearch::setLimit ( string $property , string $low , string $high ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

property

Имя свойства результата поиска.

low

Нижнее значение этого свойства.

high

Верхнее значение этого свойства.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

В случае возниновения ошибки выбрасывает SwishException.

Примеры

Пример #1 Пример использования SwishSearch::setLimit()

<?php
try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "В первом запросе найдено: ", $results->hits, " совпадений\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Совпадение #", ++$i, " - ", $result->swishdocsize, " байт\n";
    }

    $search->setLimit("swishdocsize", "3000", "6000"); //ограничение по размеру документа, от 3000 до 6000 байт
    $results = $search->execute("time");
    echo "Во втором запросе найдено: ", $results->hits, " совпадений\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Совпадение #", ++$i, " - ", $result->swishdocsize, " байт\n";
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

В первом запросе найдено: 5 совпадений
Совпадение #1 - 4261 байт
Совпадение #2 - 37937 байт
Совпадение #3 - 7126 байт
Совпадение #4 - 15427 байт
Совпадение #5 - 4768 байт
Во втором запросе найдено: 2 совпадений
Совпадение #1 - 4261 байт
Совпадение #2 - 4768 байт


Установить разделитель фраз

  • « SwishSearch::setLimit
  • SwishSearch::setSort »
  • PHP Manual
  • Функции Swish
  • Установить разделитель фраз

SwishSearch::setPhraseDelimiter

(PECL swish >= 0.1.0)

SwishSearch::setPhraseDelimiter — Установить разделитель фраз

Описание

SwishSearch::setPhraseDelimiter ( string $delimiter ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

delimiter

Символ разделителя фраз. По умолчанию используются двойные кавычки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SwishSearch::setPhraseDelimiter()

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute('"every time"'); //ищем фразу "every time"
    echo "В первом запросе найдено: ", $results->hits, " совпадений\n";

    $search->setPhraseDelimiter("'");
    $results = $search->execute("'every time'"); //тот же запрос, но другой разделитель
    echo "Во втором запросе найдено: ", $results->hits, " совпадений\n";

    $search->setPhraseDelimiter('"');
    $results = $search->execute("'every time'"); //Ищем "every" и "time"
    echo "В третьем запросе найдено: ", $results->hits, " совпадений\n";

    //Давайте посмотрим на разобранные слова
    var_dump($results->getParsedWords("index.swish-e"));

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

В первом запросе найдено: 1 совпадений
Во втором запросе найдено: 1 совпадений
В третьем запросе найдено: 2 совпадений
array(2) {
  [0]=>
  string(5) "every"
  [1]=>
  string(4) "time"
}


Задать порядок сортировки

  • « SwishSearch::setPhraseDelimiter
  • SwishSearch::setStructure »
  • PHP Manual
  • Функции Swish
  • Задать порядок сортировки

SwishSearch::setSort

(PECL swish >= 0.1.0)

SwishSearch::setSort — Задать порядок сортировки

Описание

SwishSearch::setSort ( string $sort ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

sort

Порядок сортировки результатов задается строкой, содержащей имя свойства результата в комбинации с направлением сортировки ("asc" - по возрастанию или "desc" - по убыванию). Пример: "swishrank desc", "swishdocpath asc", "swishtitle asc", "swishdocsize desc", "swishlastmodified desc" и т.д..

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SwishSearch::setSort()

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "В первом запросе найдено: ", $results->hits, " совпадений\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Совпадение #", ++$i, " - ", $result->swishdocsize, " байт\n";
    }

    $search->setSort("swishdocsize desc"); /сортировка по размеру документа
    $results = $search->execute("time");
    echo "Во втором запросе найдено: ", $results->hits, " совпадений\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Совпадение #", ++$i, " - ", $result->swishdocsize, " байт\n";
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

В первом запросе найдено: 5 совпадений
Совпадение #1 - 4261 байт
Совпадение #2 - 37937 байт
Совпадение #3 - 7126 байт
Совпадение #4 - 15427 байт
Совпадение #5 - 4768 байт
Во втором запросе найдено: 5 совпадений
Совпадение #1 - 37937 байт
Совпадение #2 - 15427 байт
Совпадение #3 - 7126 байт
Совпадение #4 - 4768 байт
Совпадение #5 - 4261 байт


Установить флаг структуры в объекте поиска

  • « SwishSearch::setSort
  • Расширения для работы с серверами »
  • PHP Manual
  • Функции Swish
  • Установить флаг структуры в объекте поиска

SwishSearch::setStructure

(PECL swish >= 0.1.0)

SwishSearch::setStructure — Установить флаг структуры в объекте поиска

Описание

SwishSearch::setStructure ( int $structure ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

structure

Флаг структуры - это побитовая маска, использующаяся для ограничения поиска какими-либо частями документа HTML (title, meta, body и т.д.). Доступны для использования значения перечисленные ниже. Для объединения нескольких значений используйте логическое ИЛИ.

  • Swish::IN_FILE

  • Swish::IN_TITLE

  • Swish::IN_HEAD

  • Swish::IN_BODY

  • Swish::IN_COMMENTS

  • Swish::IN_HEADER

  • Swish::IN_EMPHASIZED

  • Swish::IN_META

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SwishSearch::setStructure()

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "В первом запросе найдено: ", $results->hits, " совпадений\n";

    $search->setStructure(Swish::IN_TITLE|Swish::IN_HEAD); //Ищем в title и head
    $results = $search->execute("time");
    echo "Во втором запросе найдено: ", $results->hits, " совпадений\n";

    $search->setStructure(Swish::IN_ALL); //ищем во всем документе, по умолчанию
    $results = $search->execute("time");
    echo "В третьем запросе найдено: ", $results->hits, " совпадений\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

В первом запросе найдено: 5 совпадений
Во втором запросе найдено: 0 совпадений
В третьем запросе найдено: 5 совпадений


Расширения для работы с серверами

  • Apache
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Apache
  • Менеджер процессов FastCGI
    • Введение
    • Установка и настройка
    • Функции FPM
  • IIS — Администрирование IIS
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции IIS
  • NSAPI
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции NSAPI


Apache

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Apache
    • apache_child_terminate — Завершить процесс Apache по окончании текущего запроса
    • apache_get_modules — Возвращает список загруженных модулей сервера Apache
    • apache_get_version — Возвращает версию Apache
    • apache_getenv — Возвращает переменную окружения подпроцесса сервера Apache
    • apache_lookup_uri — Осуществить частичный запрос на указанный URI и вернуть все полученные сведения
    • apache_note — Возвращает и устанавливает уведомления к запросу Apache
    • apache_request_headers — Получает список всех заголовков HTTP-запроса
    • apache_reset_timeout — Сбрасывает таймер сервера Apache
    • apache_response_headers — Возвращает список всех HTTP-заголовков ответа Apache
    • apache_setenv — Устанавливает переменную subprocess_env Apache
    • getallheaders — Возвращает все заголовки HTTP-запроса
    • virtual — Выполняет подзапрос Apache


Введение

Эти функции доступны только в том случае, если PHP работает в качестве модуля Apache.


  • « Требования
  • Настройка во время выполнения »
  • PHP Manual
  • Установка и настройка
  • Установка

Установка

Установка PHP в качестве модуля Apache описана в соответствующей главе.


Настройка во время выполнения

Поведение модуля Apache PHP зависит от настроек в php.ini. Настройки конфигурации из php.ini могут быть переопределены через настройки флага php_flag в конфигурационном файле сервера или локальном файле .htaccess.

Пример #1 Отключение парсера PHP для директории при помощи .htaccess

php_flag engine off

Настройки конфигурации Apache
Имя | По умолчанию | Место изменения | Список изменений
engine | "1" | PHP_INI_ALL |
child_terminate | "0" | PHP_INI_ALL |
last_modified | "0" | PHP_INI_ALL |
xbithack | "0" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

engine boolean

Включает или выключает интерпретатор PHP. Эта директива в действительности очень полезна в модуле Apache PHP. Она используется сайтами, которым необходимо разрешить или запретить интерпретатор PHP на основе директорий или виртуальных хостов. Устанавливая engine off по необходимости в файле httpd.conf, можно разрешить или запретить интерпретатор PHP.

child_terminate boolean

Эта настройка управляет тем, могут ли скрипты PHP требовать окончания дочерних процессов по завершении запроса. Смотрите также apache_child_terminate().

last_modified boolean

Посылает скриптам PHP дату модификации как заголовок Last-Modified для этого запроса.

xbithack boolean

Исполнение файлов с битом запускаемого как PHP, независимо от расширения.


  • « Типы ресурсов
  • Функции Apache »
  • PHP Manual
  • Apache
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции Apache

Содержание

  • apache_child_terminate — Завершить процесс Apache по окончании текущего запроса
  • apache_get_modules — Возвращает список загруженных модулей сервера Apache
  • apache_get_version — Возвращает версию Apache
  • apache_getenv — Возвращает переменную окружения подпроцесса сервера Apache
  • apache_lookup_uri — Осуществить частичный запрос на указанный URI и вернуть все полученные сведения
  • apache_note — Возвращает и устанавливает уведомления к запросу Apache
  • apache_request_headers — Получает список всех заголовков HTTP-запроса
  • apache_reset_timeout — Сбрасывает таймер сервера Apache
  • apache_response_headers — Возвращает список всех HTTP-заголовков ответа Apache
  • apache_setenv — Устанавливает переменную subprocess_env Apache
  • getallheaders — Возвращает все заголовки HTTP-запроса
  • virtual — Выполняет подзапрос Apache


Завершить процесс Apache по окончании текущего запроса

  • « Функции Apache
  • apache_get_modules »
  • PHP Manual
  • Функции Apache
  • Завершить процесс Apache по окончании текущего запроса

apache_child_terminate

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

apache_child_terminate — Завершить процесс Apache по окончании текущего запроса

Описание

apache_child_terminate ( void ) : bool

apache_child_terminate() регистрирует процесс Apache, обслуживающий текущий запрос PHP с тем, чтобы завершить его по окончании выполнения PHP-скрипта. Эта функция может быть использована для завершения процесса, для работы которого понадобилось значительное количество оперативной памяти, не возвращенной операционной системе по завершении работы PHP-скрипта.

Возвращаемые значения

Возвращает TRUE, если PHP работает в качестве модуля Apache 1, версия Apache не является многопоточной и параметр конфигурации PHP child_terminate включен (по умолчанию выключен). В противном случае функция возвратит FALSE и сгенерирует ошибку уровня E_WARNING.

Список изменений

Версия | Описание
5.4.0 | Эта функция стала доступной в режиме FastCGI. Ранее она поддерживалась только при запуске PHP в качестве модуля для Apache.

Примечания

Замечание: Для Windows-платформ эта функция не реализована.

Смотрите также

  • exit() - Вывести сообщение и прекратить выполнение текущего скрипта


Возвращает список загруженных модулей сервера Apache

  • « apache_child_terminate
  • apache_get_version »
  • PHP Manual
  • Функции Apache
  • Возвращает список загруженных модулей сервера Apache

apache_get_modules

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

apache_get_modules — Возвращает список загруженных модулей сервера Apache

Описание

apache_get_modules ( void ) : array

Возвращает список загруженных модулей сервера Apache.

Возвращаемые значения

Массив (array) загруженных модулей сервера Apache.

Примеры

Пример #1 Пример использования apache_get_modules()

<?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

  • « apache_get_modules
  • apache_getenv »
  • PHP Manual
  • Функции Apache
  • Возвращает версию Apache

apache_get_version

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

apache_get_version — Возвращает версию Apache

Описание

apache_get_version ( void ) : string

Возвращает версию Apache.

Возвращаемые значения

Возвращает версию Apache или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apache_get_version()

<?php
$version = apache_get_version();
echo "$version\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Apache/1.3.29 (Unix) PHP/4.3.4

Смотрите также

  • phpinfo() - Выводит информацию о текущей конфигурации PHP


Возвращает переменную окружения подпроцесса сервера Apache

  • « apache_get_version
  • apache_lookup_uri »
  • PHP Manual
  • Функции Apache
  • Возвращает переменную окружения подпроцесса сервера Apache

apache_getenv

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

apache_getenv — Возвращает переменную окружения подпроцесса сервера Apache

Описание

apache_getenv ( string $variable [, bool $walk_to_top = FALSE ] ) : string

Возвращает переменную окружения сервера Apache, указанную параметром variable.

Эта функция требует Apache 2, в противном случае она не определена.

Список параметров

variable

Переменная окружения сервера Apache

walk_to_top

Получить переменную верхнего уровня, доступную для всех уровней сервера Apache или нет.

Возвращаемые значения

Значение переменной окружения сервера Apache в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования apache_getenv()

Приведенный ниже пример показывает, как можно получить значение переменной окружения сервера Apache SERVER_ADDR.

<?php
$ret = apache_getenv("SERVER_ADDR");
echo $ret;
?>

Результатом выполнения данного примера будет что-то подобное:

42.24.42.240

Смотрите также

  • apache_setenv() - Устанавливает переменную subprocess_env Apache
  • getenv() - Получение значения переменной окружения
  • "Суперглобальные переменные"


Осуществить частичный запрос на указанный URI и вернуть все полученные сведения

  • « apache_getenv
  • apache_note »
  • PHP Manual
  • Функции Apache
  • Осуществить частичный запрос на указанный URI и вернуть все полученные сведения

apache_lookup_uri

(PHP 4, PHP 5, PHP 7)

apache_lookup_uri — Осуществить частичный запрос на указанный URI и вернуть все полученные сведения

Описание

apache_lookup_uri ( string $filename ) : object

Эта функция осуществляет частичный запрос на указанный URI. Этого достаточно для получения всей важной информации о переданном функции ресурсе.

Эта функция поддерживается только если PHP установлен в качестве модуля Apache или как серверный модуль NSAPI в веб-серверах Netscape/iPlanet/SunONE.

Список параметров

filename

Имя файла (URI), который запрашивается.

Возвращаемые значения

Объект, содержащий информацию о переданном 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

Примеры

Пример #1 Пример использования apache_lookup_uri()

<?php
$info = apache_lookup_uri('index.php?var=value');
print_r($info);

if (file_exists($info->filename)) {
    echo 'file exists!';
}
?>

Результатом выполнения данного примера будет что-то подобное:

stdClass Object
(
    [status] => 200
    [the_request] => GET /dir/file.php HTTP/1.1
    [method] => GET
    [mtime] => 0
    [clength] => 0
    [chunked] => 0
    [content_type] => application/x-httpd-php
    [no_cache] => 0
    [no_local_copy] => 1
    [unparsed_uri] => /dir/index.php?var=value
    [uri] => /dir/index.php
    [filename] => /home/htdocs/dir/index.php
    [args] => var=value
    [allowed] => 0
    [sent_bodyct] => 0
    [bytes_sent] => 0
    [request_time] => 1074282764
)
file exists!


Возвращает и устанавливает уведомления к запросу Apache

  • « apache_lookup_uri
  • apache_request_headers »
  • PHP Manual
  • Функции Apache
  • Возвращает и устанавливает уведомления к запросу Apache

apache_note

(PHP 4, PHP 5, PHP 7)

apache_note — Возвращает и устанавливает уведомления к запросу Apache

Описание

apache_note ( string $note_name ) : string
apache_note ( string $note_name , string $note_value ) : string

Эта функция является оберткой для table_get и table_set. С её помощью можно редактировать таблицу уведомлений (apache notes table), которая создаётся во время передачи запроса. Таблица уведомлений позволяет модулям Apache обмениваться данными.

Основное назначение apache_note() - передавать информацию из одного модуля в другой внутри одного запроса.

Список параметров

note_name

Название уведомления.

note_value

Значение уведомления.

Возвращаемые значения

Если функция вызывается с одним аргументом, она возвращает текущее значение уведомления note_name. Если функция вызывается с двумя аргументами, она устанавливает значение уведомления note_name в note_value и возвращает предыдущее значение note_name. Если значение уведомления не может быть получено, будет возвращено FALSE.

Примеры

Пример #1 Пример передачи информации между PHP и Perl

<?php

apache_note('name', 'Fredrik Ekengren');

// Вызов perl-скрипта
virtual("/perl/some_script.pl");

$result = apache_note("resultdata");
?>
# Получаем объект запроса Apache
my $r = Apache->request()->main();

# Получаем переданные данные
my $name = $r->notes('name');

# Некоторые действия с данными

# Передача результата назад в PHP
$r->notes('resultdata', $result);

Пример #2 Пример записи значений в access.log

<?php

apache_note('sessionID', session_id());

?>
# "%{sessionID}n" может быть использован в директиве LogFormat

Смотрите также

  • virtual() - Выполняет подзапрос Apache


Получает список всех заголовков HTTP-запроса

  • « apache_note
  • apache_reset_timeout »
  • PHP Manual
  • Функции Apache
  • Получает список всех заголовков HTTP-запроса

apache_request_headers

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

apache_request_headers — Получает список всех заголовков HTTP-запроса

Описание

apache_request_headers ( void ) : array

Получает список всех заголовков HTTP текущего запроса.

Возвращаемые значения

Ассоциативный массив, содержащий все HTTP-заголовки текущего запроса, или FALSE в случае ошибки.

Список изменений

Версия | Описание
7.3.0 | Эта функция стала доступна в SAPI FPM.
5.5.7 | Эта функция стала доступна в CLI-сервере.
5.4.0 | Данная функция стала доступной при использовании FastCGI. До этого поддерживалась только в случае использования PHP как модуля Apache или в серверном модуле NSAPI в веб-серверов Netscape/iPlanet/SunONE

Примеры

Пример #1 Пример использования apache_request_headers()

<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0
Host: www.example.com
Connection: Keep-Alive

Примечания

Замечание:

Также можно получить значения широко используемых CGI-переменных, получив их из окружения сервера; это работает независимо от того, установлен PHP в качестве модуля Apache или нет. Для того, чтобы получить список всех доступных переменных окружения, используйте функцию phpinfo().

Смотрите также

  • apache_response_headers() - Возвращает список всех HTTP-заголовков ответа Apache


Сбрасывает таймер сервера Apache

  • « apache_request_headers
  • apache_response_headers »
  • PHP Manual
  • Функции Apache
  • Сбрасывает таймер сервера Apache

apache_reset_timeout

(PHP 5 >= 5.1.0, PHP 7)

apache_reset_timeout — Сбрасывает таймер сервера Apache

Описание

apache_reset_timeout ( void ) : bool

apache_reset_timeout() сбрасывает таймер сервера Apache, который по умолчанию установлен в 300 секунд. При set_time_limit(0); ignore_user_abort(true) и периодических вызовах apache_reset_timeout(), Apache теоретически может работать вечно.

Эта функция требует Apache 1.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Эта функция недоступна в безопасном режиме.

Смотрите также

  • set_time_limit() - Ограничение времени выполнения скрипта
  • ignore_user_abort() - Установить, должно ли отключение клиента прерывать выполнение скрипта


Возвращает список всех HTTP-заголовков ответа Apache

  • « apache_reset_timeout
  • apache_setenv »
  • PHP Manual
  • Функции Apache
  • Возвращает список всех HTTP-заголовков ответа Apache

apache_response_headers

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

apache_response_headers — Возвращает список всех HTTP-заголовков ответа Apache

Описание

apache_response_headers ( void ) : array

Возвращает список всех HTTP-заголовков ответа Apache

Возвращаемые значения

Массив HTTP-заголовков ответа Apache при успешном выполнении или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.7 | Эта функция стала доступна в CLI-сервере.
5.4.0 | Данная функция стала доступной при использовании FastCGI. Раньше она была доступна только если PHP был установлен, как модуль Apache или в серверном модуле NSAPI в веб-серверов Netscape/iPlanet/SunONE

Примеры

Пример #1 Пример использования apache_response_headers()

<?php
print_r(apache_response_headers());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [Accept-Ranges] => bytes
    [X-Powered-By] => PHP/4.3.8
)

Смотрите также

  • apache_request_headers() - Получает список всех заголовков HTTP-запроса
  • headers_sent() - Проверяет, были ли отправлены заголовки
  • headers_list() - Возвращает список переданных заголовков (или готовых к отправке)


Устанавливает переменную subprocess_env Apache

  • « apache_response_headers
  • getallheaders »
  • PHP Manual
  • Функции Apache
  • Устанавливает переменную subprocess_env Apache

apache_setenv

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

apache_setenv — Устанавливает переменную subprocess_env Apache

Описание

apache_setenv ( string $variable , string $value [, bool $walk_to_top = FALSE ] ) : bool

apache_setenv() устанавливает значение переменной окружения Apache, определенной как variable.

Замечание:

При установке переменной окружения Apache, соответствующая ей переменная $_SERVER не изменяется.

Список параметров

variable

Переменная окружения, которую требуется установить.

value

Новое значение переменной variable.

walk_to_top

Делать ли доступной переменную для всех уровней Apache.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apache_setenv() для установки переменной окружения Apache.

<?php
apache_setenv("EXAMPLE_VAR", "Какое-либо значение");
?>

Примечания

Замечание:

apache_setenv() можно использовать вместе с apache_getenv() на разных страницах или для определения переменных, которые требуется передать включениям на стороне сервера SSI (.shtml), которые, в свою очередь, были включены в PHP-скрипты.

Смотрите также

  • apache_getenv() - Возвращает переменную окружения подпроцесса сервера Apache


Возвращает все заголовки HTTP-запроса

  • « apache_setenv
  • virtual »
  • PHP Manual
  • Функции Apache
  • Возвращает все заголовки HTTP-запроса

getallheaders

(PHP 4, PHP 5, PHP 7)

getallheaders — Возвращает все заголовки HTTP-запроса

Описание

getallheaders ( void ) : array

Возвращает все заголовки для текущего HTTP-запроса.

Эта функция является псевдонимом функции apache_request_headers(). Пожалуйста, обратитесь к описанию функции apache_request_headers() для получения детальной информации о ее работе.

Возвращаемые значения

Ассоциативный массив, содержащий все HTTP-заголовки для данного запроса или FALSE в случае возникновения ошибок.

Список изменений

Версия | Описание
7.3.0 | Эта функция стала доступна в SAPI FPM.
5.5.7 | Эта функция стала доступна в CLI-сервере.
5.4.0 | Эта функция стала доступной при использовании FastCGI. Ранее она была доступна только если PHP был установлен, как модуль Apache или в серверном модуле NSAPI в веб-серверов Netscape/iPlanet/SunONE

Примеры

Пример #1 Пример использования getallheaders()

<?php

foreach (getallheaders() as $name => $value) {
    echo "$name: $value\n";
}

?>

Смотрите также

  • apache_response_headers() - Возвращает список всех HTTP-заголовков ответа Apache


Выполняет подзапрос Apache

  • « getallheaders
  • Менеджер процессов FastCGI »
  • PHP Manual
  • Функции Apache
  • Выполняет подзапрос Apache

virtual

(PHP 4, PHP 5, PHP 7)

virtual — Выполняет подзапрос Apache

Описание

virtual ( string $filename ) : bool

Функция virtual() специфична для сервера Apache и является эквивалентом конструкции <!--#include virtual...-->, используемой в mod_include. Данная функция выполняет подзапрос Apache. Это бывает полезным в тех случаях, когда необходимо включить в свой скрипт результат выполнения других CGI-скриптов или файлов .shtml, а также добавления всего, что должно быть обработано Apache. Обратите внимание, что CGI-скрипты должны отдавать корректные CGI-заголовки. Как минимум, CGI-скрипт должен создавать заголовок Content-Type.

Перед тем, как осуществится выполнение подзапроса, все буферы сбрасываются и выдаются в браузер, при этом отсылаются заголовки, помещенные в буфер.

Эта функция поддерживается только если PHP установлен в качестве модуля Apache или как серверный модуль NSAPI в веб-серверах Netscape/iPlanet/SunONE.

Список параметров

filename

Имя файла, для которого будет выполнен подзапрос.

Возвращаемые значения

Результат выполнения подзапроса в случае успеха или FALSE в случае ошибки.

Примеры

Пример использования смотрите в функции apache_note().

Примечания

Внимание

Строка запроса может быть передана вызываемому файлу, однако значение переменной $_GET будет скопировано из родительского скрипта, лишь $_SERVER['QUERY_STRING'] будет содержать переданную строку запроса. Строка запроса может быть передана только при использовании Apache 2. Запрошенный файл не будет отражен в журнале доступа (access log) Apache.

Замечание:

Переменные окружения, установленные в запрошенном файле, не видимы из вызвавшего его скрипта.

Замечание:

Эта функция может быть использована в PHP-скрипте, но, обычно, более правильным будет выбрать include или require.

Смотрите также

  • apache_note() - Возвращает и устанавливает уведомления к запросу Apache


Менеджер процессов FastCGI

  • Введение
  • Установка и настройка
  • Функции FPM
    • fastcgi_finish_request — Сбрасывает все запрошенные данные клиенту


Введение

Менеджер процессов FastCGI (FastCGI Process Manager или FPM) - альтернатива реализации PHP FastCGI с некоторым дополнительным функционалом, полезным (в основном) для высоконагруженных сайтов.

Это SAPI встроено в PHP 5.3.3 и более поздние.


Установка и настройка

Информация об установке и настройке FPM доступна в разделе установка и настройка документации PHP.


  • « Установка и настройка
  • fastcgi_finish_request »
  • PHP Manual
  • Менеджер процессов FastCGI
  • Функции FPM

Функции FPM

Содержание

  • fastcgi_finish_request — Сбрасывает все запрошенные данные клиенту


Сбрасывает все запрошенные данные клиенту

  • « Функции FPM
  • IIS »
  • PHP Manual
  • Функции FPM
  • Сбрасывает все запрошенные данные клиенту

fastcgi_finish_request

(PHP 5 >= 5.3.3, PHP 7)

fastcgi_finish_request — Сбрасывает все запрошенные данные клиенту

Описание

fastcgi_finish_request ( void ) : bool

Эта функция сбрасывает все запрошенные данные клиенту и завершает обработку запроса. Это позволяет выполнять длительные задачи без поддержания связи с клиентом.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Администрирование IIS

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции IIS
    • iis_add_server — Создает новый виртуальный веб-сервер
    • iis_get_dir_security — Получить настройки безопасности директории
    • iis_get_script_map — Получить информацию о сопоставлении скриптов виртуальной директории для указанного расширения
    • iis_get_server_by_comment — Возвращает номер экземпляра сервера связанного с комментарием
    • iis_get_server_by_path — Возвращает номер экземпляра сервера для указанного пути
    • iis_get_server_rights — Получить права сервера
    • iis_get_service_state — Возвращает статус сервиса для заданного идентификатора
    • iis_remove_server — Удалить виртуальный сервер заданный номером экземпляра
    • iis_set_app_settings — Создать скоп приложения для виртуальной директории
    • iis_set_dir_security — Установить настройки безопасности директории
    • iis_set_script_map — Установить привязку скриптов для вирутальной директории
    • iis_set_server_rights — Установить права сервера
    • iis_start_server — Запустить виртуальный веб-сервер
    • iis_start_service — Запустить сервис по его идентификатору
    • iis_stop_server — Остановить виртуальный веб-сервер
    • iis_stop_service — Остановить сервис по его идентификатору


Введение

Это расширение доступлно только для Win32. Оно предоставляет функции для аминистрирования Microsoft Internet Information Server (IIS). Расширение включает функции для создания веб сайтов и виртуальных директорий также как и конфигурирование безопасности и маппинг скриптов.


Установка

Это расширение не поддерживается и считается умершим. Однако, его исходный код все еще доступен в PECL SVN вот здесь: » https://svn.php.net/viewvc/pecl/iisfunc.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

IIS_READ (integer)
IIS_WRITE (integer)
IIS_EXECUTE (integer)
IIS_SCRIPT (integer)
IIS_ANONYMOUS (integer)
IIS_BASIC (integer)
IIS_NTLM (integer)
IIS_STARTING (integer)
IIS_STOPPED (integer)
IIS_PAUSED (integer)
IIS_RUNNING (integer)


Функции IIS

Содержание

  • iis_add_server — Создает новый виртуальный веб-сервер
  • iis_get_dir_security — Получить настройки безопасности директории
  • iis_get_script_map — Получить информацию о сопоставлении скриптов виртуальной директории для указанного расширения
  • iis_get_server_by_comment — Возвращает номер экземпляра сервера связанного с комментарием
  • iis_get_server_by_path — Возвращает номер экземпляра сервера для указанного пути
  • iis_get_server_rights — Получить права сервера
  • iis_get_service_state — Возвращает статус сервиса для заданного идентификатора
  • iis_remove_server — Удалить виртуальный сервер заданный номером экземпляра
  • iis_set_app_settings — Создать скоп приложения для виртуальной директории
  • iis_set_dir_security — Установить настройки безопасности директории
  • iis_set_script_map — Установить привязку скриптов для вирутальной директории
  • iis_set_server_rights — Установить права сервера
  • iis_start_server — Запустить виртуальный веб-сервер
  • iis_start_service — Запустить сервис по его идентификатору
  • iis_stop_server — Остановить виртуальный веб-сервер
  • iis_stop_service — Остановить сервис по его идентификатору


Создает новый виртуальный веб-сервер

  • « Функции IIS
  • iis_get_dir_security »
  • PHP Manual
  • Функции IIS
  • Создает новый виртуальный веб-сервер

iis_add_server

(PECL iisfunc SVN)

iis_add_server — Создает новый виртуальный веб-сервер

Описание

iis_add_server ( string $path , string $comment , string $server_ip , int $port , string $host_name , int $rights , int $start_server ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получить настройки безопасности директории

  • « iis_add_server
  • iis_get_script_map »
  • PHP Manual
  • Функции IIS
  • Получить настройки безопасности директории

iis_get_dir_security

(PECL iisfunc SVN)

iis_get_dir_security — Получить настройки безопасности директории

Описание

iis_get_dir_security ( int $server_instance , string $virtual_path ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получить информацию о сопоставлении скриптов виртуальной директории для указанного расширения

  • « iis_get_dir_security
  • iis_get_server_by_comment »
  • PHP Manual
  • Функции IIS
  • Получить информацию о сопоставлении скриптов виртуальной директории для указанного расширения

iis_get_script_map

(PECL iisfunc SVN)

iis_get_script_map — Получить информацию о сопоставлении скриптов виртуальной директории для указанного расширения

Описание

iis_get_script_map ( int $server_instance , string $virtual_path , string $script_extension ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Возвращает номер экземпляра сервера связанного с комментарием

  • « iis_get_script_map
  • iis_get_server_by_path »
  • PHP Manual
  • Функции IIS
  • Возвращает номер экземпляра сервера связанного с комментарием

iis_get_server_by_comment

(PECL iisfunc SVN)

iis_get_server_by_comment — Возвращает номер экземпляра сервера связанного с комментарием

Описание

iis_get_server_by_comment ( string $comment ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Возвращает номер экземпляра сервера для указанного пути

  • « iis_get_server_by_comment
  • iis_get_server_rights »
  • PHP Manual
  • Функции IIS
  • Возвращает номер экземпляра сервера для указанного пути

iis_get_server_by_path

(PECL iisfunc SVN)

iis_get_server_by_path — Возвращает номер экземпляра сервера для указанного пути

Описание

iis_get_server_by_path ( string $path ) : int

Каждый виртуальный сервер в IIS связан с номером экземпляра. iis_get_server_by_path() находит номер экземпляра из актуального пути к корневой директории.

Список параметров

path

Путь к корневой директории

Возвращаемые значения

Возвращает номер экземпляра сервера.


Получить права сервера

  • « iis_get_server_by_path
  • iis_get_service_state »
  • PHP Manual
  • Функции IIS
  • Получить права сервера

iis_get_server_rights

(PECL iisfunc SVN)

iis_get_server_rights — Получить права сервера

Описание

iis_get_server_rights ( int $server_instance , string $virtual_path ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Возвращает статус сервиса для заданного идентификатора

  • « iis_get_server_rights
  • iis_remove_server »
  • PHP Manual
  • Функции IIS
  • Возвращает статус сервиса для заданного идентификатора

iis_get_service_state

(PECL iisfunc SVN)

iis_get_service_state — Возвращает статус сервиса для заданного идентификатора

Описание

iis_get_service_state ( string $service_id ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Удалить виртуальный сервер заданный номером экземпляра

  • « iis_get_service_state
  • iis_set_app_settings »
  • PHP Manual
  • Функции IIS
  • Удалить виртуальный сервер заданный номером экземпляра

iis_remove_server

(PECL iisfunc SVN)

iis_remove_server — Удалить виртуальный сервер заданный номером экземпляра

Описание

iis_remove_server ( int $server_instance ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Создать скоп приложения для виртуальной директории

  • « iis_remove_server
  • iis_set_dir_security »
  • PHP Manual
  • Функции IIS
  • Создать скоп приложения для виртуальной директории

iis_set_app_settings

(PECL iisfunc SVN)

iis_set_app_settings — Создать скоп приложения для виртуальной директории

Описание

iis_set_app_settings ( int $server_instance , string $virtual_path , string $application_scope ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Установить настройки безопасности директории

  • « iis_set_app_settings
  • iis_set_script_map »
  • PHP Manual
  • Функции IIS
  • Установить настройки безопасности директории

iis_set_dir_security

(PECL iisfunc SVN)

iis_set_dir_security — Установить настройки безопасности директории

Описание

iis_set_dir_security ( int $server_instance , string $virtual_path , int $directory_flags ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Установить привязку скриптов для вирутальной директории

  • « iis_set_dir_security
  • iis_set_server_rights »
  • PHP Manual
  • Функции IIS
  • Установить привязку скриптов для вирутальной директории

iis_set_script_map

(PECL iisfunc SVN)

iis_set_script_map — Установить привязку скриптов для вирутальной директории

Описание

iis_set_script_map ( int $server_instance , string $virtual_path , string $script_extension , string $engine_path , int $allow_scripting ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Установить права сервера

  • « iis_set_script_map
  • iis_start_server »
  • PHP Manual
  • Функции IIS
  • Установить права сервера

iis_set_server_rights

(PECL iisfunc SVN)

iis_set_server_rights — Установить права сервера

Описание

iis_set_server_rights ( int $server_instance , string $virtual_path , int $directory_flags ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Запустить виртуальный веб-сервер

  • « iis_set_server_rights
  • iis_start_service »
  • PHP Manual
  • Функции IIS
  • Запустить виртуальный веб-сервер

iis_start_server

(PECL iisfunc SVN)

iis_start_server — Запустить виртуальный веб-сервер

Описание

iis_start_server ( int $server_instance ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Запустить сервис по его идентификатору

  • « iis_start_server
  • iis_stop_server »
  • PHP Manual
  • Функции IIS
  • Запустить сервис по его идентификатору

iis_start_service

(PECL iisfunc SVN)

iis_start_service — Запустить сервис по его идентификатору

Описание

iis_start_service ( string $service_id ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Остановить виртуальный веб-сервер

  • « iis_start_service
  • iis_stop_service »
  • PHP Manual
  • Функции IIS
  • Остановить виртуальный веб-сервер

iis_stop_server

(PECL iisfunc SVN)

iis_stop_server — Остановить виртуальный веб-сервер

Описание

iis_stop_server ( int $server_instance ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Остановить сервис по его идентификатору

  • « iis_stop_server
  • NSAPI »
  • PHP Manual
  • Функции IIS
  • Остановить сервис по его идентификатору

iis_stop_service

(PECL iisfunc SVN)

iis_stop_service — Остановить сервис по его идентификатору

Описание

iis_stop_service ( string $service_id ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


NSAPI

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции NSAPI
    • nsapi_request_headers — Извлечь все заголовки HTTP-запроса
    • nsapi_response_headers — Извлекает все заголовки ответа HTTP
    • nsapi_virtual — Выполнить NSAPI-подзапрос


Введение

Функции доступны только когда PHP запущен как NSAPI модуль на веб-серверах Netscape/iPlanet/Sun.


Установка

Для установки PHP на веб-серверы Netscape/iPlanet/Sun, читайте секцию NSAPI (UNIX, Windows) в разделе установки.


Настройка во время выполнения

Поведение модуля NSAPI PHP зависит от опций в php.ini. Конфигурационные настройки в php.ini могут быть переопределены дополнительными параметрами в вызове php4_execute в obj.conf

Параметры конфигурации NSAPI
Имя | По умолчанию | Место изменения | Список изменений
nsapi.read_timeout | "60" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

nsapi.read_timeout integer

Устанавливает время в секундах, которое плагин будет ожидать данные POST от клиента.


  • « Типы ресурсов
  • Функции NSAPI »
  • PHP Manual
  • NSAPI
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции NSAPI

Смотрите также

NSAPI реализует некоторые функции из модуля Apache для максимальной совместимости.

Функции Apache реализованные в NSAPI
Функции Apache (только псевдонимы) | Функция NSAPI | Описание
apache_request_headers() | nsapi_request_headers() | Извлекает все заголовки запроса HTTP
apache_response_headers() | nsapi_response_headers() | Извлекает все заголовки ответа HTTP
getallheaders() | nsapi_request_headers() | Извлекает все заголовки запроса HTTP
virtual() | nsapi_virtual() | Сделать подзапрос NSAPI

Содержание

  • nsapi_request_headers — Извлечь все заголовки HTTP-запроса
  • nsapi_response_headers — Извлекает все заголовки ответа HTTP
  • nsapi_virtual — Выполнить NSAPI-подзапрос


Извлечь все заголовки HTTP-запроса

  • « Функции NSAPI
  • nsapi_response_headers »
  • PHP Manual
  • Функции NSAPI
  • Извлечь все заголовки HTTP-запроса

nsapi_request_headers

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

nsapi_request_headers — Извлечь все заголовки HTTP-запроса

Описание

nsapi_request_headers ( void ) : array

nsapi_request_headers() возвращает все заголовки HTTP в текущем запросе. Поддерживается только, если PHP запущен как модуль NSAPI.

Замечание:

getallheaders() является синонимом функции nsapi_request_headers(), если вы используете модуль NSAPI.

Замечание:

Также вы можете получить значение обычных переменных CGI, взяв их из суперглобального массива $_SERVER, который доступен независимо от того, используете ли вы PHP в качестве модуля NSAPI.

Возвращаемые значения

Возвращает ассоциативный массив со всеми заголовками HTTP.

Примеры

Пример #1 Пример использования nsapi_request_headers()

<?php
$headers = nsapi_request_headers();

foreach ($headers as $header => $value) {
  echo "$header: $value <br />\n";
}
?>


Извлекает все заголовки ответа HTTP

  • « nsapi_request_headers
  • nsapi_virtual »
  • PHP Manual
  • Функции NSAPI
  • Извлекает все заголовки ответа HTTP

nsapi_response_headers

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

nsapi_response_headers — Извлекает все заголовки ответа HTTP

Описание

nsapi_response_headers ( void ) : array

Получает все заголовки ответа NSAPI.

Возвращаемые значения

Возвращает ассоциативный массив со всеми заголовками ответа NSAPI.

Смотрите также

  • nsapi_request_headers() - Извлечь все заголовки HTTP-запроса
  • headers_sent() - Проверяет, были ли отправлены заголовки


Выполнить NSAPI-подзапрос

  • « nsapi_response_headers
  • Расширения для работы с сессиями »
  • PHP Manual
  • Функции NSAPI
  • Выполнить NSAPI-подзапрос

nsapi_virtual

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

nsapi_virtual — Выполнить NSAPI-подзапрос

Описание

nsapi_virtual ( string $uri ) : bool

nsapi_virtual() - это специфичная для NSAPI функция, эквивалентная <!--#include virtual...--> в SSI (файлах .shtml). Она производит NSAPI-подзапрос. Это полезно для включения скриптов CGI или .shtml файлов или чего-либо еще, что вы разобрали бы через веб-сервер.

Для запуска подзапроса все буферы должны быть закрыты и сброшены браузеру и также отосланы все ожидающие заголовки.

Вы не можете отослать рекурсивный запрос к другим скриптам PHP. Если вы хотите подключить скрипт PHP, используйте include или require.

Замечание:

Функция зависит от недокументированной особенности веб-серверов Netscape/iPlanet/Sun. Для определения, доступна ли она, используйте phpinfo(). В окружении Unix она должна работать всегда, а в Windows зависит от библиотеки ns-httpdXX.dll.

О подзапросах читайте в секции NSAPI (UNIX, Windows).

Список параметров

uri

URI скрипта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Расширения для работы с сессиями

  • Msession — Функции Управления Сессиями Mohawk Software
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции msession
  • Сессии — Управление сессиями
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Отслеживание прогресса загрузки файлов с помощью сессий
    • Безопасность сессий
    • Функции для работы с сессиями
    • SessionHandler — Класс SessionHandler
    • SessionHandlerInterface — Класс SessionHandlerInterface
    • SessionIdInterface — Интерфейс SessionIdInterface
    • SessionUpdateTimestampHandlerInterface — Интерфейс SessionUpdateTimestampHandlerInterface
  • Session PgSQL — Обработчик сохранения сессии PostgreSQL
    • Введение
    • Установка и настройка
    • Определения таблиц
    • Предопределенные константы
    • Функции Session PgSQL


Функции Управления Сессиями Mohawk Software

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции msession
    • msession_connect — Соединение с сервером msession
    • msession_count — Получить количество сессий
    • msession_create — Создать сессию
    • msession_destroy — Уничтожить сессию
    • msession_disconnect — Закрыть соединение с сервером msession
    • msession_find — Найти все сессии по имени и значению
    • msession_get_array — Получить массив переменных msession
    • msession_get_data — Получить неструктурированные данные сессии данных
    • msession_get — Получить значение из сессии
    • msession_inc — Увеличить значение в сессии
    • msession_list — Получить список всех сессий
    • msession_listvar — Получить список сессий, содержащих заданную переменную
    • msession_lock — Установить блокировку на сессию
    • msession_plugin — Вызов функции экранирования в плагине msession personality
    • msession_randstr — Получить случайную строку
    • msession_set_array — Установить переменные msession из массива
    • msession_set_data — Установить неструктурированные данные сессии данных
    • msession_set — Установить значение в сессии
    • msession_timeout — Получить/установить таймаут сессии
    • msession_uniq — Получить уникальный идентификатор
    • msession_unlock — Снять блокировку с сессии


Введение

msession - это интерфейс к высокоскоростному демону работы с сессиями, который может быть запущен как локально, так и удаленно. Он спроектирован для надежного управления состоянием сессий для PHP. Более подробно читайте по ссылке » http://www.mohawksoft.org/?q=node/8.

Замечание: Для Windows-платформ это расширение недоступно.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.3.


Установка

Это расширение не поддерживается и считается умершим. Однако, его исходный код все еще доступен в PECL SVN вот здесь: » https://svn.php.net/viewvc/pecl/msession.

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.3


  • « Типы ресурсов
  • Функции msession »
  • PHP Manual
  • Msession
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции msession

Содержание

  • msession_connect — Соединение с сервером msession
  • msession_count — Получить количество сессий
  • msession_create — Создать сессию
  • msession_destroy — Уничтожить сессию
  • msession_disconnect — Закрыть соединение с сервером msession
  • msession_find — Найти все сессии по имени и значению
  • msession_get_array — Получить массив переменных msession
  • msession_get_data — Получить неструктурированные данные сессии данных
  • msession_get — Получить значение из сессии
  • msession_inc — Увеличить значение в сессии
  • msession_list — Получить список всех сессий
  • msession_listvar — Получить список сессий, содержащих заданную переменную
  • msession_lock — Установить блокировку на сессию
  • msession_plugin — Вызов функции экранирования в плагине msession personality
  • msession_randstr — Получить случайную строку
  • msession_set_array — Установить переменные msession из массива
  • msession_set_data — Установить неструктурированные данные сессии данных
  • msession_set — Установить значение в сессии
  • msession_timeout — Получить/установить таймаут сессии
  • msession_uniq — Получить уникальный идентификатор
  • msession_unlock — Снять блокировку с сессии


Соединение с сервером msession

  • « Функции msession
  • msession_count »
  • PHP Manual
  • Функции msession
  • Соединение с сервером msession

msession_connect

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_connect — Соединение с сервером msession

Описание

msession_connect ( string $host , string $port ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получить количество сессий

  • « msession_connect
  • msession_create »
  • PHP Manual
  • Функции msession
  • Получить количество сессий

msession_count

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_count — Получить количество сессий

Описание

msession_count ( void ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Создать сессию

  • « msession_count
  • msession_destroy »
  • PHP Manual
  • Функции msession
  • Создать сессию

msession_create

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_create — Создать сессию

Описание

msession_create ( string $session [, string $classname [, string $data ]] ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Уничтожить сессию

  • « msession_create
  • msession_disconnect »
  • PHP Manual
  • Функции msession
  • Уничтожить сессию

msession_destroy

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_destroy — Уничтожить сессию

Описание

msession_destroy ( string $name ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Закрыть соединение с сервером msession

  • « msession_destroy
  • msession_find »
  • PHP Manual
  • Функции msession
  • Закрыть соединение с сервером msession

msession_disconnect

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_disconnect — Закрыть соединение с сервером msession

Описание

msession_disconnect ( void ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Найти все сессии по имени и значению

  • « msession_disconnect
  • msession_get_array »
  • PHP Manual
  • Функции msession
  • Найти все сессии по имени и значению

msession_find

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_find — Найти все сессии по имени и значению

Описание

msession_find ( string $name , string $value ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получить массив переменных msession

  • « msession_find
  • msession_get_data »
  • PHP Manual
  • Функции msession
  • Получить массив переменных msession

msession_get_array

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_get_array — Получить массив переменных msession

Описание

msession_get_array ( string $session ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получить неструктурированные данные сессии данных

  • « msession_get_array
  • msession_get »
  • PHP Manual
  • Функции msession
  • Получить неструктурированные данные сессии данных

msession_get_data

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_get_data — Получить неструктурированные данные сессии данных

Описание

msession_get_data ( string $session ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получить значение из сессии

  • « msession_get_data
  • msession_inc »
  • PHP Manual
  • Функции msession
  • Получить значение из сессии

msession_get

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_get — Получить значение из сессии

Описание

msession_get ( string $session , string $name , string $value ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Увеличить значение в сессии

  • « msession_get
  • msession_list »
  • PHP Manual
  • Функции msession
  • Увеличить значение в сессии

msession_inc

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_inc — Увеличить значение в сессии

Описание

msession_inc ( string $session , string $name ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получить список всех сессий

  • « msession_inc
  • msession_listvar »
  • PHP Manual
  • Функции msession
  • Получить список всех сессий

msession_list

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_list — Получить список всех сессий

Описание

msession_list ( void ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получить список сессий, содержащих заданную переменную

  • « msession_list
  • msession_lock »
  • PHP Manual
  • Функции msession
  • Получить список сессий, содержащих заданную переменную

msession_listvar

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_listvar — Получить список сессий, содержащих заданную переменную

Описание

msession_listvar ( string $name ) : array

Используется для поиска сессий с общими атрибутами.

Список параметров

name

Имя переменной для поиска.

Возвращаемые значения

Возвращает ассоциативный массив значение/сессия для всех сессий, содержащих переменную name.


Установить блокировку на сессию

  • « msession_listvar
  • msession_plugin »
  • PHP Manual
  • Функции msession
  • Установить блокировку на сессию

msession_lock

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_lock — Установить блокировку на сессию

Описание

msession_lock ( string $name ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Вызов функции экранирования в плагине msession personality

  • « msession_lock
  • msession_randstr »
  • PHP Manual
  • Функции msession
  • Вызов функции экранирования в плагине msession personality

msession_plugin

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_plugin — Вызов функции экранирования в плагине msession personality

Описание

msession_plugin ( string $session , string $val [, string $param ] ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получить случайную строку

  • « msession_plugin
  • msession_set_array »
  • PHP Manual
  • Функции msession
  • Получить случайную строку

msession_randstr

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_randstr — Получить случайную строку

Описание

msession_randstr ( int $param ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Установить переменные msession из массива

  • « msession_randstr
  • msession_set_data »
  • PHP Manual
  • Функции msession
  • Установить переменные msession из массива

msession_set_array

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_set_array — Установить переменные msession из массива

Описание

msession_set_array ( string $session , array $tuples ) : void
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Установить неструктурированные данные сессии данных

  • « msession_set_array
  • msession_set »
  • PHP Manual
  • Функции msession
  • Установить неструктурированные данные сессии данных

msession_set_data

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_set_data — Установить неструктурированные данные сессии данных

Описание

msession_set_data ( string $session , string $value ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Установить значение в сессии

  • « msession_set_data
  • msession_timeout »
  • PHP Manual
  • Функции msession
  • Установить значение в сессии

msession_set

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_set — Установить значение в сессии

Описание

msession_set ( string $session , string $name , string $value ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получить/установить таймаут сессии

  • « msession_set
  • msession_uniq »
  • PHP Manual
  • Функции msession
  • Получить/установить таймаут сессии

msession_timeout

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_timeout — Получить/установить таймаут сессии

Описание

msession_timeout ( string $session [, int $param ] ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получить уникальный идентификатор

  • « msession_timeout
  • msession_unlock »
  • PHP Manual
  • Функции msession
  • Получить уникальный идентификатор

msession_uniq

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_uniq — Получить уникальный идентификатор

Описание

msession_uniq ( int $param [, string $classname [, string $data ]] ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Снять блокировку с сессии

  • « msession_uniq
  • Сессии »
  • PHP Manual
  • Функции msession
  • Снять блокировку с сессии

msession_unlock

(PHP 4 >= 4.2.0, PHP 5 < 5.1.3)

msession_unlock — Снять блокировку с сессии

Описание

msession_unlock ( string $session , int $key ) : int
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Управление сессиями

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Основы использования
    • Передача идентификатора сессии
    • Пользовательские обработчики сессии
  • Отслеживание прогресса загрузки файлов с помощью сессий
  • Безопасность сессий
    • Базовые принципы управления сессиями
    • INI-настройки безопасности сессий
  • Функции для работы с сессиями
    • session_abort — Отменяет изменения в массиве сессии и завершает ее
    • session_cache_expire — Вернуть текущее время жизни кеша
    • session_cache_limiter — Получить и/или установить текущий режим кеширования
    • session_commit — Псевдоним session_write_close
    • session_create_id — Создаёт новый идентификатор сессии
    • session_decode — Декодирует данные сессии из закодированной строки сессии
    • session_destroy — Уничтожает все данные сессии
    • session_encode — Кодирует данные текущей сессии в формате строки сессии
    • session_gc — Выполняет сборку мусора данных сессии
    • session_get_cookie_params — Возвращает параметры cookie сессии
    • session_id — Получает и/или устанавливает идентификатор текущей сессии
    • session_is_registered — Определяет, зарегистрирована ли глобальная переменная в сессии
    • session_module_name — Возвращает и/или устанавливает модуль текущей сессии
    • session_name — Получить или установить имя текущей сессии
    • session_regenerate_id — Генерирует и обновляет идентификатор текущей сессии
    • session_register_shutdown — Функция завершения сессии
    • session_register — Регистрация одной или нескольких глобальных переменных текущей сессии
    • session_reset — Реинициализирует сессию оригинальными значениями
    • session_save_path — Получает и/или устанавливает путь сохранения сессии
    • session_set_cookie_params — Устанавливает параметры сессионной cookie
    • session_set_save_handler — Устанавливает пользовательские обработчики хранения сессии
    • session_start — Стартует новую сессию, либо возобновляет существующую
    • session_status — Возвращает состояние текущей сессии
    • session_unregister — Отмена регистрации глобальной переменной в текущей сессии
    • session_unset — Удалить все переменные сессии
    • session_write_close — Записывает данные сессии и завершает её
  • SessionHandler — Класс SessionHandler
    • SessionHandler::close — Закрывает сессию
    • SessionHandler::create_sid — Возвращает новый идентификатор сессии
    • SessionHandler::destroy — Уничтожает сессию
    • SessionHandler::gc — Очищает старые сессии
    • SessionHandler::open — Инициализирует сессию
    • SessionHandler::read — Считывает данные сессии
    • SessionHandler::write — Записывает данные сессии
  • SessionHandlerInterface — Класс SessionHandlerInterface
    • SessionHandlerInterface::close — Закрывает сессию
    • SessionHandlerInterface::destroy — Уничтожает сессию
    • SessionHandlerInterface::gc — Очищает старые сессии
    • SessionHandlerInterface::open — Инициализирует сессию
    • SessionHandlerInterface::read — Читает данные сессии
    • SessionHandlerInterface::write — Записать данные сессии
  • SessionIdInterface — Интерфейс SessionIdInterface
    • SessionIdInterface::create_sid — Создать идентификатор сессии
  • SessionUpdateTimestampHandlerInterface — Интерфейс SessionUpdateTimestampHandlerInterface


Введение

Поддержка сессий в PHP заключается в способе сохранения некоторых данных между несколькими последовательными доступами.

Каждому посетителю сайта присваивается уникальный идентификатор, называемый идентификатором сессии (session id). Он хранится либо в cookie на стороне пользователя, либо передается через URL.

Поддержка сессий позволяет сохранять данные между запросами в суперглобальном массиве $_SESSION. В тот момент, когда посетитель получает доступ к сайту, PHP проверяет автоматически (если session.auto_start установлено в 1) или по запросу (явным образом через вызов session_start()), был ли определенный идентификатор сессии послан вместе с запросом. Если это так, восстанавливается сохраненное ранее окружение.

Предостережение

При включенном session.auto_start единственным способом помещения объектов в сессию останется загрузка описаний класса с помощью auto_prepend_file. В противном случае придется выполнить сериализацию (serialize()) и десериализацию (unserialize()) объекта вручную.

$_SESSION (и все зарегистрированныее переменные) сериализуются внутри PHP после выполнения запроса, используя обработчик сериализации, указанный в INI-опции session.serialize_handler. Зарегистрированные, но неопределенные переменные помечаются как неопределенные. При последующем доступе они не определяются сессионным модулем, если пользователь заново не определит их.

Внимание

Так как сессионные данные сериализуются, то переменные с типом resource не могут храниться в сессиях.

Обработчики сериализации (php и php_binary) наследуют ограничения для register_globals. Поэтому нельзя использовать числовые или строковые индексы содержащие специальные символы (| и !). Их использование приведет к ошибкам по завершении скрипта. У php_serialize такие ограничения отсутствуют. php_serialize доступен начиная с PHP 5.5.4.

Замечание:

При работе с сессиями обратите внимание, что запись в сессии не создается до тех пор, пока переменная не будет зарегистрирована через функцию session_register() или через добавление нового ключа в суперглобальном массиве $_SESSION. Это правило действует вне зависимости от того, была ли сессия запущена с использованием функции session_start().

Замечание:

В PHP 5.2.2 была добавлена незадокументированная возможность, позволяющая хранить сессионные файлы в каталоге "/tmp", даже если open_basedir была включен и "/tmp" не был явным образом добавлен в список разрешенных путей. Эта особенность была убрана в PHP 5.3.0.


Требования

Для сборки этого расширения не требуются внешние библиотеки.

Замечание:

При желании можно использовать квотирование разделяемой памяти (mm), разработанное Ralf S. Engelschall, для хранения сессии. Для этого необходимо скачать и установить » mm. Данная опция не доступна для платформ на базе ОС Windows. Следует также обратить внимание, что модуль хранения данных сессии при использовании mm не гарантирует блокировку информации сессии при параллельных запросах. Возможно, в таком случае целесообразно использование файловой системы в разделяемой памяти (Например, TMPFS в Solaris/Linux или /dev/md для BSD), чтобы хранить сессии в файлах, блокируемых при обращении к ним. Поскольку данные сессии хранятся в разделяемой памяти, перезапуск веб-сервера приведет к их удалению.


Установка

Поддержка механизма сессий включена в PHP по умолчанию. Если необходимо собрать PHP без такой поддержки, нужно указать опцию --disable-session при конфигурации PHP. Чтобы использовать квотирование разделяемой памяти (mm) для хранения данных сессии необходимо сконфигурировать PHP с опцией --with-mm[=DIR] .

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Замечание:

По умолчанию все данные, связанные с конкретной сессией будут храниться в файле в директории, указанной в опции session.save_path файла конфигурации. Файл создается для каждой сессии (независимо от наличия связанных с ней данных). Это связано с тем, что сессия открыта (создается файл), но никакие данные еще не записаны. Следует обратить внимание, что такое поведение является побочным эффектом ограничений в работе с файловой системой и вполне возможно, что пользовательский обработчик сессии (например тот, что использует базу данных) не отслеживает сессии, в которых нет данных.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки механизма сессий
Имя | По умолчанию | Место изменения | Список изменений
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_PERDIR |
session.gc_probability | "1" | PHP_INI_ALL |
session.gc_divisor | "100" | PHP_INI_ALL |
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 |
session.cookie_httponly | "" | PHP_INI_ALL | Доступна с PHP 5.2.0.
session.cookie_samesite | "" | PHP_INI_ALL | Доступна с PHP 7.3.0.
session.use_strict_mode | "0" | PHP_INI_ALL | Доступна с PHP 5.5.2.
session.use_cookies | "1" | PHP_INI_ALL |
session.use_only_cookies | "1" | PHP_INI_ALL |
session.referer_check | "" | 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 |
session.trans_sid_tags | "a=href,area=href,frame=src,form=" | PHP_INI_ALL | Доступна с PHP 7.1.0.
session.trans_sid_hosts | $_SERVER['HTTP_HOST'] | PHP_INI_ALL | Доступна с PHP 7.1.0.
session.sid_length | "32" | PHP_INI_ALL | Доступна с PHP 7.1.0.
session.sid_bits_per_character | "4" | PHP_INI_ALL | Доступна с PHP 7.1.0.
session.upload_progress.enabled | "1" | PHP_INI_PERDIR | Доступна с PHP 5.4.0.
session.upload_progress.cleanup | "1" | PHP_INI_PERDIR | Доступна с PHP 5.4.0.
session.upload_progress.prefix | "upload_progress_" | PHP_INI_PERDIR | Доступна с 5.4.0.
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | PHP_INI_PERDIR | Доступна с PHP 5.4.0.
session.upload_progress.freq | "1%" | PHP_INI_PERDIR | Доступна с 5.4.0.
session.upload_progress.min_freq | "1" | PHP_INI_PERDIR | Доступна с PHP 5.4.0.
session.lazy_write | "1" | PHP_INI_ALL | Доступна с PHP 7.0.0.
url_rewriter.tags | "a=href,area=href,frame=src,form=" | PHP_INI_ALL | Доступно с PHP 7.1.0, но данная INI-настройка не используется сессиями
session.hash_function | "0" | PHP_INI_ALL | Удалена в PHP 7.1.0.
session.hash_bits_per_character | "4" | PHP_INI_ALL | Удалена в PHP 7.1.0.
session.entropy_file | "" | PHP_INI_ALL | Удалена в PHP 7.1.0.
session.entropy_length | "0" | PHP_INI_ALL | Удалена в PHP 7.1.0
session.bug_compat_42 | "1" | PHP_INI_ALL | Удалена в PHP 5.4.0.
session.bug_compat_warn | "1" | PHP_INI_ALL | Удалена в PHP 5.4.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Система управления сессиями поддерживает ряд опций, которые могут быть указаны в файле php.ini. Ниже приводится краткий обзор.

session.save_handler string
session.save_handler определяет имя обработчика, который используется для хранения и извлечения данных, связанных с сессией. По умолчанию имеет значение files. Следует обратить внимание, что некоторые расширения могут зарегистрировать собственные обработчики (save_handler). Текущие зарегистрированные обработчики отображаются в phpinfo(). См. также session_set_save_handler().
session.save_path string
session.save_path определяет аргумент, который передается в обработчик сохранения. При установленном по умолчанию обработчике files, аргумент содержит путь, где будут создаваться файлы. См. также session_save_path().

У этой директивы также существует дополнительный аргумент N, определяющий глубину размещения файлов сессии относительно указанной директории. Например, указание '5;/tmp' может в конечном итоге привести к такому размещению файла сессии: /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If . Для того, чтобы использовать аргумент N, необходимо предварительно создать все эти директории. Помочь в этом может небольшой скрипт, расположенный в ext/session. Версия для bash называется mod_files.sh, а Windows-версия - mod_files.bat. Также следует учитывать, что если N определен и больше 0, то автоматическая сборка мусора не выполняется, подробнее см. информацию в файле php.ini. Кроме того, если используется N, необходимо удостовериться, что значение session.save_path указано в кавычках, поскольку разделитель (;) в php.ini используется как знак комментария.

Модуль хранения файлов создает файлы с правами 600 по умолчанию. Это можно изменить с помощью необязательного аргумента MODE: N;MODE;/path, где MODE - восьмеричное представление режима доступа к файлу. Установка MODE не затрагивает umask.

Внимание

Если установить в качестве значения общедоступную для чтения директорию, например, /tmp (по умолчанию), остальные пользователи сервера получат возможность перехватить сессию пользователя, получив список файлов такой директории.

Предостережение

При использовании необязательного аргумента N уровня директорий, как описано выше, учтите, что использование значений выше чем 1 или 2 недопустимо для большинства сайтов, так как требуется очень большое количество директорий: например, значение 3 приводит к (2 ** session.sid_bits_per_character) ** 3 директориям в файловой системе, которые приводят к огромным потерям места и inode.

Используйте только N больше 2, если вы абсолютно уверены, что ваш сайт достаточно велик, чтобы требовать это.

Замечание: До версии PHP 4.3.6 для использования механизма сессий пользователям Windows приходилось изменять эту переменную. Необходимо было указать корректный путь, например, такой: c:/temp.

session.name string
session.name определяет название сессии, используемое как название cookies. Может содержать только цифры и буквы. По умолчанию равно PHPSESSID. См. также session_name().
session.auto_start boolean
session.auto_start определяет, будет ли модуль сессии запускать сессию автоматически при старте. Значение по умолчанию 0 (отключено).
session.serialize_handler string
session.serialize_handler определяет имя обработчика, который используется для сериализации/десериализации данных. Поддерживаются формат сериализации PHP (наименование php_serialize), внутренний формат PHP (наименование php и php_binary) и WDDX (наименование wddx). WDDX доступен только в том случае, если PHP скомпилирован с поддержкой WDDX. php_serialize доступен с версии PHP 5.5.4. php_serialize использует простую функцию сериализации/десериализации для внутренних нужд и не имеет тех ограничений, какие есть у php и php_binary. Старые обработчики сериализации не могут хранить ни числовые, ни строковые индексы, содержащие специальные символы (| и !) в $_SESSION. Используйте php_serialize, чтобы обойти ошибки числовых и строковых индексов при завершении скрипта. Значение по умолчанию php.
session.gc_probability integer
session.gc_probability в сочетании с session.gc_divisor определяет вероятность запуска функции сборщика мусора (gc, garbage collection). По умолчанию равен 1. См. подробнее в session.gc_divisor.
session.gc_divisor integer
session.gc_divisor в сочетании с session.gc_probability определяет вероятность запуска функции сборщика мусора (gc, garbage collection) при каждой инициализации сессии. Вероятность рассчитывается как gc_probability/gc_divisor, то есть 1/100 означает, что функция gc запускается в одном случае из ста, или 1% при каждом запросе. session.gc_divisor по умолчанию имеет значение 100.
session.gc_maxlifetime integer
session.gc_maxlifetime задает отсрочку времени в секундах, после которой данные будут рассматриваться как "мусор" и потенциально будут удалены. Сбор мусора может произойти в течение старта сессии (в зависимости от значений session.gc_probability и session.gc_divisor).

Замечание: Если разные скрипты имеют разные значения session.gc_maxlifetime, но при этом одни и те же места для хранения данных сессии, то скрипт с минимальным значением уничтожит все данные. В таком случае следует использовать эту директиву вместе с session.save_path.

session.referer_check string
session.referer_check содержит подстроку, которую можно использовать при проверке HTTP Referer. Если клиентом был послан referer и подстрока не была выявлена, то идентификатор сессии будет помечен как недействительный. По умолчанию используется пустая строка.
session.entropy_file string
session.entropy_file содержит путь к ресурсу (файлу), используемому как дополнительный источник энтропии в процессе создания идентификатора сессии. Например, /dev/random или /dev/urandom, которые доступны на многих Unix-системах. Эта возможность также поддерживается в Windows начиная с версии PHP 5.3.3. Указание ненулевого значения в session.entropy_length предписывает PHP использовать в качестве источника энтропии Windows Random API.

Замечание: Удалено в PHP 7.1.0. Начиная с PHP 5.4.0 session.entropy_file имеет значение по умолчанию равное /dev/urandom или /dev/arandom, если они доступны. В PHP 5.3.0 эта директива по умолчанию пуста.

session.entropy_length integer
session.entropy_length определяет количество байт, которые будут прочитаны из вышеуказанного файла. По умолчанию 32. Удалено в PHP 7.1.0.
session.use_strict_mode boolean
session.use_strict_mode определяет будет ли модуль использовать режим строгого идентификатора (ID). Если от браузера получен неопределенный ID, то браузеру будет отправлен новый ID. Таким образом приложения защищаются от фиксации сессии с помощью строгого режима. По умолчанию 0 (отключено).

Замечание: Включение session.use_strict_mode является обязательным для общей безопасности сессии. Всем сайтам рекомендуется ее включать. См. примеры session_create_id().

session.use_cookies boolean
session.use_cookies определяет, будет ли модуль использовать cookies для хранения идентификатора сессии на стороне клиента. По умолчанию 1 (включено).
session.use_only_cookies boolean
session.use_only_cookies определяет, будет ли модуль использовать только cookies для хранения идентификатора сессии на стороне клиента. Включение этого параметра предотвращает атаки с использованием идентификатора сессии, размещенного в URL. Значение по умолчанию 1 (включено) с версии PHP 5.3.0.
session.cookie_lifetime integer
session.cookie_lifetime указывает время жизни cookies, отправляемого в браузер клиента, в секундах. Значение 0 означает, что cookies будут валидны до закрытия браузера. По умолчанию равно 0. См. также session_get_cookie_params() и session_set_cookie_params().

Замечание: Отметка окончания времени устанавливается по отношению к серверному времени, которое не обязательно совпадает с временем в браузере клиента.

session.cookie_path string
session.cookie_path определяет устанавливаемый путь в сессионной cookie. По умолчанию /. См. также session_get_cookie_params() и session_set_cookie_params().
session.cookie_domain string
session.cookie_domain определяет устанавливаемый домен в сессионной cookie. В соответствии со спецификацией нет смысла дополнительно указывать имя хоста, который сгенерировал cookies. См. также session_get_cookie_params() и session_set_cookie_params().
session.cookie_secure boolean
session.cookie_secure указывает, должны ли cookies передаваться только через защищенное соединение. По умолчанию off. См. также session_get_cookie_params() и session_set_cookie_params().
session.cookie_httponly boolean
Отметка, согласно которой доступ к cookie с идентификатором сессии может быть получен только через HTTP-протокол. Это означает, что cookie не будет доступна через скриптовые языки, такие как JavaScript. Данная настройка позволяет эффективно защитить от XSS-атак (к сожалению, эта функция поддерживается не всеми браузерами).
session.cookie_samesite string
Позволяет серверам утверждать, что cookie не должен отправляться вместе с межсайтовыми запросами. Это утверждение позволяет браузерам пользователей снизить риск утечки информации из разных источников и обеспечивает определенную защиту от подделки кроссдоменных запросов. Обратите внимание, что это поддерживается не всеми браузерами. Пустое значение означает, что атрибут cookie сайта не будет установлен. Lax и Strict означают, что cookie не будет отправлено для кроссдоменных POST-запросов; Lax отправит cookie для междоменных GET-запросов, а Strict не будет делать этого.
session.cache_limiter string
session.cache_limiter определяет режим кеширования, используемого для страниц сессий. Может принимать одно из следующих значений: nocache, private, private_no_expire или public. По умолчанию nocache. Подробнее о данных значениях смотрите в session_cache_limiter().
session.cache_expire integer
session.cache_expire указывает время жизни кешированных страниц сессий в минутах, это никак не влияет на ограничитель nocache. По умолчанию 180. См. также session_cache_expire().
session.use_trans_sid boolean
session.use_trans_sid указывает, используется ли прозрачная поддержка sid или нет. По умолчанию 0 (отключено).

Замечание: Управление сессией на основе URL имеет дополнительные риски безопасности по сравнению с управлением на основе cookies. В качестве примера можно упомянуть такие ситуации, когда пользователи могут отправить URL, содержащий идентификатор активной сессии, своим друзьям по электронной почте или сохранить ссылку с идентификатором в закладках и все время посещать сайт с одним и тем же идентификатором. Начиная с PHP 7.1.0, полный путь URL, то есть https://php.net/, обрабатывается "trans sid". Раньше PHP обрабатывал только относительный URL-адреса. Перезапись целевого хоста задается session.trans_sid_hosts.

session.trans_sid_tags string
session.trans_sid_tags задает перезаписываемые теги HTML для включения идентификатора сессии когда включена поддержка прозрачных "sid". По умолчанию a=href,area=href,frame=src,input=src,form= form - специальных тег. <input hidden="session_id" name="session_name"> добавляется в форму.

Замечание: До PHP 7.1.0 для этого использовался url_rewriter.tags. С PHP 7.1.0, fieldset больше не считается за специальный тег.

session.trans_sid_hosts string
session.trans_sid_hosts задает, какие хосты будут перезаписаны для включения идентификатора сессии, когда включена поддержка прозрачных "sid". По умолчанию $_SERVER['HTTP_HOST']. Несколько хостов можно указать через запятую. Не допускается вставлять пробелы между хостами. Так правильно: php.net,wiki.php.net,bugs.php.net.
session.bug_compat_42 boolean
PHP версии 4.2.3 и более ранние имеют недокументированную особенность/ошибку, позволяющую инициализировать переменную сессии как глобальную при отключенной директиве register_globals. PHP 4.3.0 и более поздние предупреждают, если используется эта особенность и включена опция session.bug_compat_warn. Эта особенность/ошибка может быть отключена при отключении данной директивы.

Замечание: Удалено в PHP 5.4.0.

session.bug_compat_warn boolean
PHP версии 4.2.3 и более ранние имеют недокументированную особенность/ошибку, позволяющую инициализировать переменную сессии как глобальную, при отключенной директиве register_globals. PHP 4.3.0 и более поздние предупреждают, если используется эта особенность при помощи включения директив session.bug_compat_42 и session.bug_compat_warn.

Замечание: Удалено в PHP 5.4.0.

session.sid_length integer
session.sid_length позволяет указать длину идентификатора сессии. Это значение должно быть в диапазоне 22-256. По умолчанию 32. Если вам нужна совместимость, указывайте 32, 40 и т.д. Более длинные идентификаторы сложнее подобрать. Рекомендуется использовать длину не менее 32.
Подсказка

Заметки по совместимости: Используйте 32 для
session.hash_function=0 (MD5) и
session.hash_bits_per_character=4,
session.hash_function=1 (SHA1) и
session.hash_bits_per_character=6. 26 для
session.hash_function=0 (MD5) и
session.hash_bits_per_character=5. 22 для
session.hash_function=0 (MD5) и
session.hash_bits_per_character=6.
Вы должны сконфигурировать INI-настройки таким образом, чтобы идентификатор
сессии состоял как минимум из 128 бит. Не забудьте задать соответствующие
значения для session.sid_bits_per_character, иначе ваши
идентификаторы будут слабыми.

Замечание: Эта настройка появилась в PHP 7.1.0.

session.sid_bits_per_character integer
session.sid_per_character позволяет задать количество бит в одном символе идентификатора сессии. Доступные значения '4' (0-9, a-f), '5' (0-9, a-v), и '6' (0-9, a-z, A-Z, "-", ","). По умолчанию 4. Чем больше бит, тем сильнее идентификатор сессии. В большинстве окружений рекомендуется 5.

Замечание: Эта настройка появилась в PHP 7.1.0.

session.hash_function mixed
session.hash_function позволяет указать алгоритм хеширования, используемый для генерации идентификатора сессии. '0' означает MD5 (128 bits), а '1' означает SHA-1 (160 bits).

Начиная с PHP 5.3.0 также стало возможным указать любой из алгоритмов, предусмотренных расширением hash (если оно доступно), например sha512 или whirlpool. Полный список алгоритмов может быть получен с помощью функции hash_algos().

Замечание: Эта опция была добавлена в PHP 5. Удалена в PHP 7.1.0.

session.hash_bits_per_character integer
session.hash_bits_per_character позволяет указать сколько бит хранится в каждом символе при преобразовании бинарного представления во что-либо более удобочитаемое. Возможные значения: '4' (0-9, a-f), '5' (0-9, a-v) и '6' (0-9, a-z, A-Z, "-", ",").

Замечание: Удалена в PHP 7.1.0.

session.upload_progress.enabled boolean
Включает отслеживание прогресса загрузки файлов и заполнение соответствующей переменной в массиве $_SESSION. По умолчанию 1, включено.
session.upload_progress.cleanup boolean
Чистка информации о прогрессе загрузки файлов по завершении обработки POST-данных (то есть когда загрузка завершена). По умолчанию 1, включено.

Замечание: Строго рекомендуется не отключать эту опцию.

session.upload_progress.prefix string
Префикс, используемый для ключа прогресса загрузки в массиве $_SESSION. Для обеспечения уникальности данный ключ будет присоединен к значению $_POST[ini_get("session.upload_progress.name")]. По умолчанию равен "upload_progress_".
session.upload_progress.name string
Имя ключа, используемого в массиве $_SESSION, для хранения информации о прогрессе. См. также директиву session.upload_progress.prefix. Если элемент $_POST[ini_get("session.upload_progress.name")] не передан, прогресс загрузки данного файла не будет отслеживаться. По умолчанию "PHP_SESSION_UPLOAD_PROGRESS".
session.upload_progress.freq mixed
Определяет частоту обновления информации о прогрессе загрузки. Можно указать значение в байтах (то есть "обновлять информацию о прогрессе каждые 100 байт") или в процентах (то есть "обновлять информацию о прогрессе после получения 1% данных от размера файла"). По умолчанию "1%".
session.upload_progress.min_freq integer
Минимальная задержка между обновлениями, в секундах. По умолчанию "1" (одна секунда).
session.lazy_write boolean
Если session.lazy_write установлен в 1, то при изменении данных сессии они будут только перезаписываться. По умолчанию 1, включено.

Настройки register_globals влияют на способ хранения и использования переменных сессии.

Прогресс загрузки файлов не будет обрабатываться, если не включена опция session.upload_progress.enabled и не установлена переменная $_POST[ini_get("session.upload_progress.name")]. Подробнее об этом смотрите в главе "Отслеживание прогресса загрузки файлов с помощью сессий".


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SID (string)
Константа, содержащая либо имя сессии и идентификатор в виде "name=ID" либо пустую строку, если идентификатор сессии был установлен в соответствующие cookies сессии. Это тот же идентификатор, что возвращает функция session_id().
PHP_SESSION_DISABLED (int)
C PHP 5.4.0. Возвращаемое значение функцией session_status() в случае, если сессии отключены.
PHP_SESSION_NONE (int)
C PHP 5.4.0. Возвращаемое значение функцией session_status() в случае, если сессии включены, но нет созданных сессий.
PHP_SESSION_ACTIVE (int)
C PHP 5.4.0. Возвращаемое значение функцией session_status() в случае существования сессий.


Примеры

Содержание

  • Основы использования
  • Передача идентификатора сессии
  • Пользовательские обработчики сессии


Основы использования

Сессии являются простым способом хранения информации для отдельных пользователей с уникальным идентификатором сессии. Это может использоваться для сохранения состояния между запросами страниц. Идентификаторы сессий обычно отправляются браузеру через сессионный cookie и используются для получения имеющихся данных сессии. Отсутствие идентификатора сессии или сессионного cookie сообщает PHP о том, что необходимо создать новую сессию и сгенерировать новый идентификатор сессии.

Сессии используют простую технологию. Когда сессия создана, PHP будет либо получать существующую сессию, используя переданный идентификатор (обычно из сессионного cookie) или, если ничего не передавалось, будет создана новая сессия. PHP заполнит суперглобальную переменную $_SESSION сессионной информацией после того, как будет запущена сессия. Когда PHP завершает работу, он автоматически сериализует содержимое суперглобальной переменной $_SESSION и отправит для сохранения, используя сессионный обработчик для записи сессии.

По умолчанию PHP использует внутренний обработчик files для сохранения сессий, который установлен в INI-переменной session.save_handler. Этот обработчик сохраняет данные на сервере в директории, указанной в конфигурационной директиве session.save_path.

Сессии могут запускаться вручную с помощью функции session_start(). Если директива session.auto_start установлена в 1, сессия автоматически запустится, в начале запроса.

Сессия обычно завершает свою работу, когда PHP заканчивает исполнять скрипт, но может быть завершена и вручную с помощью функции session_write_close().

Пример #1 Регистрация переменной с помощью $_SESSION.

<?php
session_start();
if (!isset($_SESSION['count'])) {
  $_SESSION['count'] = 0;
} else {
  $_SESSION['count']++;
}
?>

Пример #2 Отмена объявления переменной с помощью $_SESSION.

<?php
session_start();
unset($_SESSION['count']);
?>

Предостережение

НЕ ОЧИЩАЙТЕ $_SESSION целиком, используя unset($_SESSION), так как это отключит возможность регистрации сессионных переменных через суперглобальную переменную $_SESSION.

Внимание

Вы не можете использовать ссылки в сессионных переменных, так как не существует реального способа восстановления ссылки к другой переменной.

Внимание

register_globals переопределяет переменные в глобальной области видимости, имена которых совпадают с переменными сессии. Подробнее смотрите Использование глобальных переменных (Register Globals).

Замечание:

Сессии, использующие файлы (по умолчанию в PHP), блокируют файл сессии сразу при открытии сессии функцией session_start() или косвенно при указании session.auto_start. После блокировки, ни один другой скрипт не может получить доступ к этому же файлу сессии, пока он не будет закрыт или при завершении скрипта или при вызове функции session_write_close().

Скорее всего это станет проблемой для сайтов, которые активно используют AJAX и делают несколько одновременных запросов. Простейшим путем решить эту проблему будет вызов функции session_write_close() сразу же как только все требуемые изменения в сессии будут сделаны, предпочтительно ближе к началу работы скрипта. Также можно использовать другой механизм сессии, который поддерживает конкурентный доступ.


Передача идентификатора сессии

Существуют два метода передачи идентификатора сессии:

  • Cookies
  • Параметр URL

Модуль сессии поддерживает оба метода. Метод с cookies является оптимальным, но он не всегда доступен. Поэтому PHP предоставляет второй способ, который внедряет идентификатор сессии непосредственно в URL.

PHP умеет преобразовывать ссылки прозрачно. Если session.use_trans_sid включена, все относительные URI-адреса будут автоматически содержать идентификатор сессии.

Замечание:

Директива arg_separator.output из php.ini позволяет настраивать разделитель аргументов. Для полной совместимости с XHTML следует указывать &amp;.

В качестве альтернативы вы можете использовать константу SID, которая устанавливается при запуске сессии. Если клиентское ПО не хранит подходящую сессионную cookie, SID имеет вид session_name=session_id. В противном случае содержит пустую строку. Таким образом, вы можете в любом случае внедрять его в URL.

Приведенный ниже пример демонстрирует, как зарегистрировать переменную и как правильно построить ссылку на другую страницу, используя SID.

Пример #1 Подсчет количества посещений конкретного пользователя

<?php

session_start();

if (empty($_SESSION['count'])) {
   $_SESSION['count'] = 1;
} else {
   $_SESSION['count']++;
}
?>

<p>
Здравствуйте, посетитель, вы видели эту страницу <?php echo $_SESSION['count']; ?> раз.
</p>

<p>
<a href="nextpage.php?<?php echo htmlspecialchars(SID); ?>">Нажмите
сюда</a>, чтобы продолжить.
</p>

Функция htmlspecialchars() может использоваться для вывода SID с целью предотвращения XSS-атак.

Вывод SID способом, показанном выше, не является обязательным, если опция --enable-trans-sid была использована при компиляции PHP.

Замечание:

Подразумевается, что неотносительные URL-адреса указывают только на внешние сайты и потому SID к ним не добавляется, т.к. это представляло бы угрозу для безопасности, в частности, риск утечки SID другому серверу.


Пользовательские обработчики сессии

Для реализации хранилища данных (или любого иного хранилища) следует использовать session_set_save_handler(), чтобы создать набор пользовательских функций хранилища. Начиная с PHP 5.4.0 вы можете создать обработчики сессий, используя класс SessionHandlerInterface, или расширить внутренние обработчики PHP, унаследовав класс SessionHandler.

Функции обратного вызова, указанные в session_set_save_handler(), являются методами, вызываемыми PHP в течение жизненного цикла сессии: open, read, write и close и для служебных задач: destroy для удаления сессии и gc для периодической сборки мусора.

Следовательно, в PHP всегда необходимы обработчики, сохраняющие сессии. По умолчанию работает внутренний обработчик 'files', сохраняющий сессии в файлы. Пользовательский обработчик может быть установлен, используя функцию session_set_save_handler(). Альтернативные обработчики для сохранения сессии также доступны в расширениях PHP, таких как sqlite, memcache и memcached и могут быть установлены с помощью session.save_handler.

Когда стартует сессия, PHP внутренне вызовет обработчик open с последующим вызовом обработчика read, который должен вернуть закодированную строку - в точности такую, какая передавалась для сохранения. После возвращения обработчиком read закодированной строки, PHP декодирует ее и заполнит получившимся массивом суперглобальный массив $_SESSION.

Когда PHP завершает исполнение скрипта (или когда вызвана функция session_write_close()), PHP внутренне закодирует суперглобальный массив $_SESSION, и передаст эти данные с идентификатором сессии функции обратного вызова write. После того, как отработает функция обратного вызова write, PHP внутренне вызовет обработчик функции обратного вызова close.

Когда сессия специально уничтожена, PHP вызовет обработчик destroy с идентификатором сессии.

PHP будет вызывать обработчик функции обратного вызова gc время от времени, чтобы пометить сессии как истекшие в соответствии с временем жизни сессий. Эта операция удалит все записи из постоянного хранилища, доступ к которым не осуществлялся более чем интервал времени, указанный в параметре $lifetime.


Отслеживание прогресса загрузки файлов с помощью сессий

Замечание: Этот функционал доступен с PHP 5.4.0.

PHP может отслеживать прогресс загрузки отдельных файлов при включенной опции session.upload_progress.enabled. Данная информация не особенно полезна для запроса, непосредственно закачивающего файл, однако, в течение данной загрузки приложение может посылать POST-запросы на отдельную страницу (например, с помощью XHR) для проверки статуса.

Прогресс закачки будет доступен в суперглобальной переменной $_SESSION во время выполнения загрузки, а также при отправке POST-запросом переменной с именем, равным значению опции session.upload_progress.name. Как только PHP обнаружит такой POST-запрос, он создаст массив в $_SESSION, ключом которого будет конкатенация значений опций session.upload_progress.prefix и session.upload_progress.name. Ключ обычно можно получить прочитав эти опции, то есть:

<?php
$key = ini_get("session.upload_progress.prefix") . $_POST[ini_get("session.upload_progress.name")];
var_dump($_SESSION[$key]);
?>

Также возможно отменить загружаемый в данный момент файл, установив ключ $_SESSION[$key]["cancel_upload"] в значение TRUE. При загрузке нескольких файлов за один раз, это действие отменит только текущий загружаемый файл и все следующие за ним, но не удалит уже успешно загруженные к этому времени файлы. Если закачка была отменена этим способом, то элемент с ключом error в массиве $_FILES будет установлен в UPLOAD_ERR_EXTENSION.

Опции session.upload_progress.freq и session.upload_progress.min_freq контролируют частоту обновления информации о прогрессе загрузки. При разумных значениях этих двух настроек, накладные расходы данной функции практически неощутимы.

Пример #1 Пример

Пример структуры массива прогресса загрузки.

<form action="upload.php" method="POST" enctype="multipart/form-data">
 <input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="123" />
 <input type="file" name="file1" />
 <input type="file" name="file2" />
 <input type="submit" />
</form>

Данные в сессии будут выглядеть примерно так:

<?php
$_SESSION["upload_progress_123"] = array(
 "start_time" => 1234567890,   // Время начала запроса
 "content_length" => 57343257, // Длина содержимого POST
 "bytes_processed" => 453489,  // Количество полученных и обработанных байт
 "done" => false,              // true при завершении обработки POST, успешно или нет
 "files" => array(
  0 => array(
   "field_name" => "file1",       // Имя поля <input/>
   // Следующие 3 элемента аналогичны соответствующим элементам массива $_FILES
   "name" => "foo.avi",
   "tmp_name" => "/tmp/phpxxxxxx",
   "error" => 0,
   "done" => true,                // True, если обработчик POST закончил обработку данного файла
   "start_time" => 1234567890,    // Время начала обработки этого файла
   "bytes_processed" => 57343250, // Число полученных и обработанных байт этого файла
  ),
  // И еще один файл, загрузка которого еще не закончена в том же запросе
  1 => array(
   "field_name" => "file2",
   "name" => "bar.avi",
   "tmp_name" => NULL,
   "error" => 0,
   "done" => false,
   "start_time" => 1234567899,
   "bytes_processed" => 54554,
  ),
 )
);

Внимание

Для успешной работы данной функции необходимо отключить буферизацию запроса веб-сервером. Иначе PHP увидит загрузку файла только когда загрузка полностью завершится. Серверы, такие как например Nginx, буферизуют большие запросы.

Предостережение

Информация о прогрессе загрузки записывается в сессию до того, как будет запущен какой либо скрипт. Поэтому изменение имени сессии с помощью ini_set() или session_name() выдаст сессию без информации о прогрессе загрузки.


Безопасность сессий

Содержание

  • Базовые принципы управления сессиями
  • INI-настройки безопасности сессий

Внешние ссылки: » Атака "Фиксация сессии"

Работа с HTTP-сессиями является основой веб-безопасности. Должны быть применены все возможные меры для обеспечения безопасности сессии. Разработчик должен включать и использовать соответствующие настройки соответствующим образом.


Базовые принципы управления сессиями

Безопасность сессии

Модуль сессии не гарантирует, что хранимая сессионная информация доступна только пользователю, который создал сессию. Необходимо принять дополнительные меры по защите конфиденциальности сессии, основываясь на связанных с ней данных.

Оценка важности данных, передаваемых в рамках сессии, важна для выбора мер по защите этой информации; все имеет свою цену и обычно дополнительные меры защиты приводят к ухудшению удобства для конечного пользователя. Например, если необходимо защитить пользователя от простейших методов социальной инженерии, следует включить session.use_only_cookies. В данном случае со стороны пользовательского ПО обязательна поддержка cookie, иначе механизм сессий не будет работать.

Существует несколько способов утечки существующего идентификатора сессии третьим лицам. Например инъекции JavaScript, передача идентификатора сесии в URL, перехват пакетов, физический доступ к устройству и т.д. Перехваченный идентификатор сессии позволит третьим лицам получить доступ ко всем ресурсам, связанным с данной сессией. Во-первых, передача идентификатора сессии в URL. При переходе на внешний сайт идентификатор сессии пользователя и адрес ресурса могут попасть в статистику переходов данного сайта. Во-вторых, при более активной атаке возможно прослушивание сетевого трафика злоумышленником. Если канал передачи данных не зашифрован, идентификаторы сессии будут переданы в виде простого текста. В таком случае решением является обязательное использование SSL/TLS пользователями при доступе к сайту. Для этих целей следует применять HSTS.

Замечание: Даже HTTPS иногда может не защитить конфиденциальные данные. Например, уязвимости типа CRIME, BEAST могут позволить злоумышленнику получить доступ к данным. Многие сети используют прокси HTTPS MITM для аудита. Атакующие также могут настроить такие прокси.

Неадаптивное управление сессиями

В настоящее время PHP использует адаптивное управление сессиями по умолчанию. Адаптивное управление сессиями несет дополнительные риски.

С версии PHP 5.5.2 доступна опция session.use_strict_mode. При её включении и при условии, что обработчик сохранения сессий её поддерживает, неинициализированный сессионный ID отвергается и создается новый. Это защищает от атак, которые принуждают пользователя использовать заранее извесный ID. Ататкующий может размещать ссылки или отправлять письма, которые содержат сессионный ID. Например http://example.com/page.php?PHPSESSID=123456789 . Если опция session.use_trans_sid включена, то жертва откроет сессию с этим идентификатором. Опция session.use_strict_mode уменьшает этот риск.

Внимание

Определённый пользователем обработчик сохранения также может поддерживать строгий сессионный режим, путем реализации функции/метода проверки корректности идентификатора сессии. Все определённые пользователем обработчики сохранения обязаны его реализовывать.

Cookie с сессионным ID должна устанавливаться с указанием параметров domain, path, httponly, secure и, начиная с PHP 7.3, аттрибут SameSite. Их приоритетность определяется браузерами. Опираясь на эту приоритетность, атакующий может может установить сессионный ID, который будет использоваться бесконечно. Применение session.use_only_cookies не решает эту проблему. session.use_strict_mode уменьшает риск. session.use_strict_mode=On, не допускает использование неинициализированных сессионных ID.

Замечание: Даже при уменьшении риска с помощью session.use_strict_mode атакующий все ещё может заставить пользователя использовать уже инициализированную сессию, созданную атакующим. Например JavaScript-инъекция. Эта атака может быть смягчена, если следовать рекомендациям этого руководства. Если вы следуете этому руководству, вы должны включить session.use_strict_mode, использовать управление сессиями на основе временных меток и пересоздавать идентификатор сессии с помощью session_regenerate_id(), как рекомендуется. Если вы всё это сделаете, идентификатор сессии злоумышленника в итоге будет удален. Если произошел доступ к истекшей сессией, вы должны сохранить все данные активных сессий пользователя. Это позволит для дальнейшего расследования причин произошедшего. После этого, принудительно заставьте пользователя выйти из всех активных сессий, то есть потребуйте от пользователей переавторизации. Это позволит предотвратить атаку с использованием краденной сессии.

Внимание

Доступ к истекшей сессии не всегда означает атаку. Нестабильное сетевое соединение и/или немедленное удаление активной сессии может повлечь за собой подобное поведение.

С PHP 7.1.0 добавлена функция session_create_id(). Эта функция может быть полезна для создания идентификатора сессии с использованием идентификатора пользователя в качестве префикса для достижения большей управляемости. При её использовании крайне важно разрешать session.use_strict_mode. В противном случае недобросовестные пользователи смогут устанавливать поддельные идентификаторы сессий для других пользователей.

Замечание: В версиях PHP до 7.1.0 необходимо использовать CSPRNG, то есть /dev/urandom или random_bytes() и функции хеширования для генерации нового идентификатора сессии. session_create_id() имеет встроенный функционал обнаружения коллизий и генерирует идентификатор основываясь на INI-настройках. Использование session_create_id() является предпочтительной практикой.

Пересоздание идентификатора сессии

Использование session.use_strict_mode - это хорошо, но недостаточно. Разработчик также должен использовать session_regenerate_id() для обеспечения безопасности сессий.

Пересоздание идентификаторов сессий сильно уменьшает риск кражи сессии, соответственно надо на переодической основе запускать session_regenerate_id(). Например, пересоздавать идентификатор сессии каждые 15 минут для особо секретных данных. Даже если сессию украдут, она достаточно скоро станет истекшей и попытка её использовать приведет к ошибке истекшей сессии.

Идентификатор сессии должен пересоздаваться при повышении привилегий пользователя, например при аутентификации. Функция session_regenerate_id() должна вызываться до записи авторизационной информации в $_SESSION. (В PHP 7.0.0, session_regenerate_id() сохраняет данные текущей сессии автоматически). Убедитесь, что только текущая сессия отмечена как авторизованная.

Разработчики НЕ ДОЛЖНЫ полагаться на механизм истечения срока действия идентификатора сессии с помощью session.gc_maxlifetime. Атакующие могут периодически получать доступ к сессии для предотвращения её срока действия и продолжать использовать идентификатор жертвы, включая аутентифицированные сессии.

Вместо этого, вы должны самостоятельно реализовать управление данными сессии базируясь на временной метке.

Внимание

Несмотря на то, что менеджер сессий может прозрачно управлять временными метками, этот функционал не реализован. Данные старых сессий сохраняются до момента запуска сборщика мусора. В то же время, разработчики должны убедиться, что данные истекших сессий удалены. Однако разработчики НЕ должны удалять данные активных сессий немедленно. Например, никогда не вызывайте session_regenerate_id(true); и session_destroy() совместно для активных сессий. Это может показаться противоречивым, но это обязательное требование.

session_regenerate_id() по умолчанию не удаляет старые сессии. Устаревшие авторизованные сессии могут быть доступны для использования. Разработчики должны пресечь любую возможность использования старых сессий кем-либо, запретив доступ к истекшим сессиям самостоятельно, используя временные метки.

Внимание

Немедленное удаление активных сессий может повлечь нежелательные побочные эффекты. Сессия может прерваться из-за нестабильности сети или конкурентного доступа к сайту/приложению.

Потенциальный недобросовестный доступ будет невозможно отследить и проанализировать, если данные сессий будут немедленно удаляться.

Вместо немедленного удаления старых сессий вы должны сохранять их непродолжительное время, например, установив специальный флаг и время окончательного истечения сессии в $_SESSION, запретив кому-либо обращаться к этим данным.

Вы не должны запрещать доступ к старым сессиям сразу же после вызова session_regenerate_id(). Необходимо подождать несколько секунд для стабильных сетевых соединений и несколько минут для нестабильных, например для WiFi или мобильного интернета.

Если пользователь пытается получить доступ к истекшей сессии, вы не должны его предоставлять. В этом случае рекомендуется удалять статус "авторизован" со всех активных сессий пользователя, поскольку это очень похоже на атаку.

session.use_only_cookies и правильное использование session_regenerate_id() могут привести к персональной DoS посредством установки неудаляемой cookie. Если такое происходит, то вы можете попросить пользователя удалить cookie и предупредить его о возможных проблемах с безопасностью. Атакующий может устанавливать вредные cookie через уязвимость в веб-приложении (то есть JavaScript-инъекция), уязвимость в браузерном плагине и т.д.

Внимание

Не недооценивайте риск DoS. use_strict_mode=On обязателен для общей безопасности идентификаторов сессий! Все сайты должны использовать use_strict_mode.

DoS (отказ в обслуживании) может произойти только тогда, когда аккаунт находится под атакой. Наиболее частая предпосылка для него - JavaScript-инъекция.

Удаление данных сессии

Данные истекших сессий должны быть недоступны и удалены. Существующий механизм управления сессиями делает это не очень хорошо.

Данные истекших сессий надо удалять так быстро, как только возможно. С другой стороны, данные активных сессий НЕ ДОЛЖНЫ удаляться сразу же. Для обеспечения этих противоречивых требований, вы ДОЛЖНЫ самостоятельно реализовать механизм контроля за истекшими сессиями на базе временных меток.

Устанавливайте и управляйте временными метками жизни сессии через $_SESSION. Запрещайте доступ к данным истекших сессий. Если обнаружена попытка доступа к данным устаревшей сессии, снимайте статус авторизации со всех активных сессий пользователя и вынуждайте его переавторизоваться. Доступ к данным истекшей сессии может означать атаку. Для обеспечения такого поведения вы должны отслеживать все активные сессии пользователя.

Замечание: Доступ к истекшей сессии может также произойти из-за нестабильного сетевого доступа и/или конкурентного доступа к приложению/сайту. Сервер может попытаться установить новый идентификатор сессии через cookie, но пакет "Set-Cookie" может не дойти до клиента из-за плохой связи. Одно соединение может вызвать пересоздание идентификатора посредством session_regenerate_id(), а другое, в то же время, может не получить нового идентификатора. Следовательно, вы должны запретить доступ к истекшим сессиям чуть-чуть позже. То есть управление сессиями на базе временных меток является обязательным.

Короче говоря, не уничтожайте данные сессии ни с помощью session_regenerate_id(), ни session_destroy(), а используйте механизм доступа к сессии на базе временных меток. Пусть session_gc() сам удаляет старые сессии из хранилища.

Сессии и блокировки

По умолчанию данные сессии заблокированы, чтобы избежать состояния гонки. Блокировка обязательна для обеспечения консистентности данных сессии между запросами.

Однако блокировка может быть использована атакующим для организации DoS-атаки. Для уменьшения риска DoS с использованием блокировки сессий, минимизируйте их. Используйте блокировку "read only", когда сессию не нужно обновлять. Используйте опцию 'read_and_close' с session_start(). session_start(['read_and_close'=>1]); Закрывайте сессию с помощью session_commit() сразу, как только вы закончили обновлять $_SESSION.

Текущий механизм управления сессиями не следит за изменениями $_SESSION, пока сессия неактивна. Это ваша зона ответственности, следить за тем, чтобы подобного не случалось.

Активные сессии

Разработчики должны следить за активными сессиями каждого пользователя и оповещать его, сколько есть активных сессий, с каких IP (и где географически), как долго они активны и т.д. PHP не сделает этого за вас. Вы должны это делать.

Есть несколько путей реализации. Вы можете хранить всю нужную информацию в специальной базе данных. Так что, когда сессия будет удалена сборщиком мусора, вы должны это отслеживать и соответственно обновлять свою базу данных.

Самый простой способ - использовать идентификатор пользователя в качестве префикса для идентификатора сессии и хранить всю требуемую информацию в $_SESSION. Многие базы данных умеют достаточно быстро выбирать строки по префиксу. Вы можете использовать session_regenerate_id() и session_create_id() для этого.

Внимание

Никогда в качестве префикса не используйте конфиденциальные данные. Если идентификатор пользователя конфиденциален, рассмотрите возможность использовать функцию hash_hmac().

Внимание

Для подобной настройки требуется включение session.use_strict_mode. Убедитесь, что эта опция включена, иначе база данных активных сессий может быть скомпрометирована.

Управление сессиями на базе временных меток является обязательным для определения устаревших сессий. Если обнаружена попытка доступа к устаревшей сессии, необходимо сбросить флаги авторизации для всех активных сессий пользователя.

Сессии и автоматический вход

Разработчики НЕ ДОЛЖНЫ использовать долгоживущие сессии для реализации автоматического входа в систему, потому что это резко повышает вероятность кражи сессии. Автоматический вход в систему должен реализовываться разработчиком самостоятельно.

Устанавливайте безопасные хешированные одноразовые ключи в качестве ключей автологина с помощью setcookie(). Используйте безопасное хеширование, посильнее чем SHA-2, например SHA-256 или выше со случайными данными из random_bytes() или /dev/urandom.

Если пользователь не авторизован, проверьте, корректен ли одноразовый ключ автологина. Если ключ корректен, авторизуйте пользователя и установите ему новый одноразовый ключ. Ключ автологина обязательно должен быть одноразовым, то есть никогда не используйте его повторно, а всегда создавайте новый.

Ключ автологина - это очень долгоживущий ключ авторизации. Его надо защищать по максимуму. Используйте параметры path/httponly/secure/SameSite при установке cookie для его защиты. Никогда не передавайте ключ автологина, кроме случаев, когда это необходимо.

Разработчик должен реализовать функционал, который отключает автоматический вход в систему и удаляет ненужные "cookie", установленные для его реализации.

CSRF (Межсайтовая подделка запроса)

Сессии и авторизация не защищают от атак типа CSRF. Разработчики должны самостоятельно реализовывать защиту.

output_add_rewrite_var() может быть использована для защиты от CSRF. Читайте руководство для подробностей.

Замечание: До PHP 7.2.0 использовался один и тот же буфер вывода и INI-настройки для "trans sid". Так что использование output_add_rewrite_var() с PHP более ранних версий не рекомендуется.

Многие фреймворки поддерживают защиту от CSRF. Обратитесь к документации своего фреймворка для более подробной информации.

Начиная с PHP 7.3, для сессионной cookie можно установить атрибут SameSite. Это обеспечит дополнительную защиту против CSRF.


INI-настройки безопасности сессий

Предоставляя INI-настройки, связанные с сессиями, вы можете улучшить безопасность сессий. Некоторые важные настройки безопасности не имеют рекомендованных значений. Вы сами ответственны за выбор необходимых значений.

  • session.cookie_lifetime=0

    0 имеет особое значение. Он сообщает браузеру не сохранять cookie в постоянное хранилище. Следовательно, когда браузер закрывается, сессионные cookie сразу же удаляются. Если задать значение отличное от 0, это может позволить другим пользователям использовать эти cookie. В большинстве случаев лучше всего использовать "0".

    Если требуется функционал автологина, реализовывайте его самостоятельно и никогда не используйте для этого долгоживущие сессии. Более подробно изложено выше в соответствующих разделах.

  • session.use_cookies=On

    session.use_only_cookies=On

    Несмотря на то, что HTTP-cookie имеют некоторые проблемы, все же они наиболее предпочтительны для хранения идентификатора сессии. Когда это возможно, для управления идентификаторами сессий необходимо использовать "cookie". Большинство приложений должны использовать cookie для идентификатора сессии.

    Если session.use_only_cookies=Off, модуль сессии будет использовать идентификатор, установленный через GET/POST/URL, если "cookie" не была выставлена заранее.

  • session.use_strict_mode=On

    Крайне рекомендуется включать session.use_strict_mode. По умолчанию не включено.

    Это не позволит сессионному модулю использовать неинициализированные идентификаторы сессий. Другими словами, сессионный модуль будет принимать только корректные идентификаторы, сгенерированные им же и будет игнорировать идентификаторы созданные на стороне пользователя.

    Из-за особенностей спецификации cookie, атакующий может сделать cookie с идентификатором сессии неудаляемой с помощью локальной базы cookie или JavaScript-инъекцией. session.use_strict_mode может не дать атакующему использовать этот идентификатор.

    Замечание:

    Атакующие могут инициализировать идентификатор сессии на своем устройстве и выставить его жертве. Они должны будут поддерживать сессию в активном состоянии для злоупотреблений. Атакующим понадобится совершить дополнительные действия для проведения атаки по этому сценарию. Поэтому session.use_strict_mode служит как предотвращение этому.

  • session.cookie_httponly=On

    Запрещает доступ к сессионной cookie для JavaScript. Эта опция предотвращает кражу cookie с помощью JavaScript-инъекции.

    Можно использовать сессионный ID как защитный ключ CSRF, но не рекомендуется. Например, HTML может быть сохранен и отправлен другому пользователю. Разработчик не должен записывать сессионный ID внутри страницы для повышения безопасности. Почти все приложения должны использовать атрибут httponly для сессионной cookie.

    Замечание:

    Защитный ключ CSRF должен периодически обновляться, как и идентификатор сессии.

  • session.cookie_secure=On

    Разрешает получать доступ к cookie идентификатора сессии только при использовании протокола HTTPS. Если ваш сайт использует только протокол HTTPS, вам необходимо включить эту опцию.

    Для таких сайтов нужно также рассматривать использование HSTS.

  • session.cookie_samesite="Lax" или session.cookie_samesite="Strict"

    Начиная с PHP 7.3, вы можете установить cookie-флаг "SameSite" для cookie идентификатора сессии. Этот флаг является способом смягчения атак CSRF (межсайтовая подделка запроса).

    Разница между Lax и Strict заключается в доступности cookie в запросах, исходящих из другого регистрируемого домена с использованием HTTP-метода GET. Cookie, использующие Lax, будут доступны в GET-запросе, исходящем из другого регистрируемого домена, тогда как cookie, использующие Strict, не будут.

  • session.gc_maxlifetime=[выбрать наименьший из возможных]

    session.gc_maxlifetime настройка для удаления устаревших идентификаторов сессий. Полагаться на эту опцию категорически не рекомендуется. Вы должны управлять жизненным циклом сессии самостоятельно.

    Сессионный сборщик мусора GC (garbage collection) лучше использовать с помощью session_gc(). Функцию session_gc() лучше всего запускать через планировщик, например, cron на *nix-системах.

    По умолчанию GC работает на вероятностном принципе. Эта настройка не гарантирует удаление старых сессий. Разработчику не следует полагаться на эту настройку, но все равно, рекомендуется выставить ее минимально возможным значением. Настраивайте session.gc_probability и session.gc_divisor так, чтобы устаревшие сессии удалялись достаточно часто. Если требуется функционал автологина, реализуйте его самостоятельно и никогда не используйте для этого долгоживущие сессии.

    Замечание:

    Некоторые обработчики сохранения сессий не используют механизм устаревания сессий на основе вероятностей. Например memcached, memcache. Читайте соответствующую документацию для более полной информации.

  • session.use_trans_sid=Off

    Использование прозрачного управления сессионным ID не рекомендуется. Вы можете использовать его, если необходимо. Однако, отключение прозрачного управления повышает безопасность сессий в целом, убирая возможность инъекции сессионного ID и его кражи.

    Замечание:

    Идентификатор сессии может утечь через закладку в браузере, URL посланый по почте, сохраненный исходник HTML.

  • session.trans_sid_tags=[игнорируемые теги]

    (PHP 7.1.0 >=) Вы не должны перезаписывать ненужные HTMLтеги. Значения по умолчанию должно быть достаточно для большинства случаев. Старые версии PHP для этого используют url_rewriter.tags.

  • session.trans_sid_hosts=[список хостов]

    (PHP 7.1.0 >=) Эта настройка определяет белый список хостов, для которых разрешено прозрачное управление идентификаторами сессий. Никогда не добавляйте недоверенные хосты. Если данная настройка пустая, то будет разрешено только для $_SERVER['HTTP_HOST'].

  • session.referer_check=[ваш исходный URL]

    Если session.use_trans_sid включен, то рекомендуется использовать эту опцию, если это возможно. Это уменьшает риск для инъекции сессионного ID. Если ваш сайт находится по адресу http://example.com/, то установите этой опции значение http://example.com/. Обратите внимание, что при использовании HTTPS, браузер не отправляет referrer заголовок. Таким образом, этот параметр не является достаточно надежным показателем безопасности, но, все же, рекомендуется его использовать.

  • session.cache_limiter=nocache

    Убедитесь, что содержимое HTTP не кешируется для аутентификационной сессии. Допускается кешировать только неконфиденциальный контент. Иначе содержимым могут воспользоваться. Можно использовать значение "private", если содержимое HTTP не содержит чувствительные к безопасности данные. Учтите, что "private" может оставлять конфиденциальные данные в общем кеше клиентов. Значение "public" можно использовать только, если HTTP-контент вообще не содержит никаких конфиденциальных данных.

  • session.sid_length="48"

    (PHP 7.1.0 >=) Чем длинее идентификатор сессии, тем он надежнее. Рекомендуемая длина - 32 символа и больше. В любом случае, не менее 26 символов требуется для session.sid_bits_per_character="5".

  • session.sid_bits_per_character="6"

    (PHP 7.1.0 >=) Чем больше бит используется для символов идентификатора сессии, тем более надежные идентификаторы будут созданы для той же длины идентификатора сессии.

  • session.hash_function="sha256"

    (PHP 7.1.0 <) Более сложная хеш-функция будет создавать более сложный сессионный ID. Хотя коллизии с хешом почти не происходят и с MD5-хешом, тем не менее разработчику лучше использовать функции SHA-2 или новее. Разработчики также могут использовать сложные функции sha384 и sha512. Удостовертесь, что вы используете достаточно энтропии для этих функций.


Функции для работы с сессиями

Содержание

  • session_abort — Отменяет изменения в массиве сессии и завершает ее
  • session_cache_expire — Вернуть текущее время жизни кеша
  • session_cache_limiter — Получить и/или установить текущий режим кеширования
  • session_commit — Псевдоним session_write_close
  • session_create_id — Создаёт новый идентификатор сессии
  • session_decode — Декодирует данные сессии из закодированной строки сессии
  • session_destroy — Уничтожает все данные сессии
  • session_encode — Кодирует данные текущей сессии в формате строки сессии
  • session_gc — Выполняет сборку мусора данных сессии
  • session_get_cookie_params — Возвращает параметры cookie сессии
  • session_id — Получает и/или устанавливает идентификатор текущей сессии
  • session_is_registered — Определяет, зарегистрирована ли глобальная переменная в сессии
  • session_module_name — Возвращает и/или устанавливает модуль текущей сессии
  • session_name — Получить или установить имя текущей сессии
  • session_regenerate_id — Генерирует и обновляет идентификатор текущей сессии
  • session_register_shutdown — Функция завершения сессии
  • session_register — Регистрация одной или нескольких глобальных переменных текущей сессии
  • session_reset — Реинициализирует сессию оригинальными значениями
  • session_save_path — Получает и/или устанавливает путь сохранения сессии
  • session_set_cookie_params — Устанавливает параметры сессионной cookie
  • session_set_save_handler — Устанавливает пользовательские обработчики хранения сессии
  • session_start — Стартует новую сессию, либо возобновляет существующую
  • session_status — Возвращает состояние текущей сессии
  • session_unregister — Отмена регистрации глобальной переменной в текущей сессии
  • session_unset — Удалить все переменные сессии
  • session_write_close — Записывает данные сессии и завершает её


Отменяет изменения в массиве сессии и завершает ее

  • « Функции для работы с сессиями
  • session_cache_expire »
  • PHP Manual
  • Функции для работы с сессиями
  • Отменяет изменения в массиве сессии и завершает ее

session_abort

(PHP 5 >= 5.6.0, PHP 7)

session_abort — Отменяет изменения в массиве сессии и завершает ее

Описание

session_abort ( void ) : bool

session_abort() завершает сессию без сохранения данных. Таким образом, сохраняются исходные значения сессии.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.2.0 | Теперь возвращаемый тип этой функции bool. Раньше был тип void.

Смотрите также

  • $_SESSION
  • Директива конфигурации session.auto_start
  • session_start() - Стартует новую сессию, либо возобновляет существующую
  • session_reset() - Реинициализирует сессию оригинальными значениями
  • session_commit() - Псевдоним session_write_close


Вернуть текущее время жизни кеша

  • « session_abort
  • session_cache_limiter »
  • PHP Manual
  • Функции для работы с сессиями
  • Вернуть текущее время жизни кеша

session_cache_expire

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

session_cache_expire — Вернуть текущее время жизни кеша

Описание

session_cache_expire ([ string $new_cache_expire ] ) : int

session_cache_expire() возвращает текущее значение настройки session.cache_expire.

Срок действия сбрасывается до значения по умолчанию (180), хранящегося в session.cache_expire во время запроса. Таким образом, нужно вызывать session_cache_expire() для каждого запроса (и до вызова session_start()).

Список параметров

new_cache_expire

Если new_cache_expire задан, текущее время жизни заменяется на new_cache_expire.

Замечание: Настройка new_cache_expire имеет значение только, если для session.cache_limiter установлено значение, отличное от nocache.

Возвращаемые значения

Возвращает текущую настройку session.cache_expire. Возвращаемое значение должно рассматриваться в минутах, по умолчанию - 180.

Примеры

Пример #1 Пример использования session_cache_expire()

<?php

/* установить ограничитель кеша на 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

/* установить время жизни на 30 минут */
session_cache_expire(30);
$cache_expire = session_cache_expire();

/* старт сессии */

session_start();

echo "Ограничитель кеша теперь равен $cache_limiter<br />";
echo "Закешированные страницы сессии истекают через $cache_expire минут";
?>

Смотрите также

  • session.cache_expire
  • session.cache_limiter
  • session_cache_limiter() - Получить и/или установить текущий режим кеширования


Получить и/или установить текущий режим кеширования

  • « session_cache_expire
  • session_commit »
  • PHP Manual
  • Функции для работы с сессиями
  • Получить и/или установить текущий режим кеширования

session_cache_limiter

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

session_cache_limiter — Получить и/или установить текущий режим кеширования

Описание

session_cache_limiter ([ string $cache_limiter ] ) : string

session_cache_limiter() возвращает имя текущего режима кеширования.

Режим кеширования определяет, какие HTTP-заголовки управления кешем посылать клиенту. Эти заголовки определяют, какими правилами кеширования контента должны руководствоваться клиент и промежуточные прокси. Установка ограничителя в значение nocache запрещает любое кеширование. Значение public разрешает кеширование как на стороне клиента, так и на прокси-серверах. private запрещает кеширование прокси-серверам, но разрешает клиенту.

Если в режиме private послать заголовок Expire, то это может привести некоторые браузеры, включая Mozilla, в замешательство. Вы можете обойти эту проблему, используя режим private_no_expire. В этом режиме заголовок Expire никогда не будет послан.

Установка режима кеширования в '' отключает автоматическую отправку кеш-заголовков.

Во время начала запроса режим кеширования сбрасывается до значения по умолчанию, хранящегося в session.cache_limiter. Таким образом, вам необходимо вызывать session_cache_limiter() для каждого запроса (перед тем, как вызвана функция session_start()).

Список параметров

cache_limiter

Если cache_limiter указан, имя текущего режима кеширования изменяется на новое значение.

Возможные значения
Значение Посылаемый заголовок
public
Expires: (когда-нибудь в будущем, в зависимости от session.cache_expire)
Cache-Control: public, max-age=(когда-нибудь в будущем, в зависимости от session.cache_expire)
Last-Modified: (временная метка последнего сохранения сессии)
private_no_expire
Cache-Control: private, max-age=(session.cache_expire в будущем), pre-check=(session.cache_expire в будущем)
Last-Modified: (временная метка последнего сохранения сессии)
private
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: private, max-age=(session.cache_expire в будущем), pre-check=(session.cache_expire в будущем)
Last-Modified: (временная метка последнего сохранения сессии)
nocache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache

Возвращаемые значения

Возвращает имя текущего режима кеширования.

Примеры

Пример #1 Пример использования session_cache_limiter()

<?php

/* установить режим кеширования на 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

echo "Режим кеширования установлен в $cache_limiter<br />";
?>

Смотрите также

  • session.cache_limiter


Псевдоним session_write_close

  • « session_cache_limiter
  • session_create_id »
  • PHP Manual
  • Функции для работы с сессиями
  • Псевдоним session_write_close

session_commit

(PHP 4 >= 4.4.0, PHP 5, PHP 7)

session_commit — Псевдоним session_write_close()

Описание

Эта функция является псевдонимом: session_write_close().


Создаёт новый идентификатор сессии

  • « session_commit
  • session_decode »
  • PHP Manual
  • Функции для работы с сессиями
  • Создаёт новый идентификатор сессии

session_create_id

(PHP 7 >= 7.1.0)

session_create_id — Создаёт новый идентификатор сессии

Описание

session_create_id ([ string $prefix ] ) : string

session_create_id() используется для создания нового идентификатора текущей сессии. Возвращает идентификатор сессии, который не подвержен коллизиям.

При неактивной сессии проверка на коллизии не осуществляется.

Идентификатор сессии создаётся в соответствии с настройками php.ini.

Важно использовать тот же идентификатор пользователя на вашем веб-сервере, что и для скрипта задачи сборщика мусора. В противном случае, у вас могут возникнуть проблемы доступа, особенно с дескриптором сохранения файлов.

Список параметров

prefix

Если указан параметр prefix, то новый идентификатор сессии будет с префиксом prefix. Не все символы возможно использовать в идентификаторе сессии. Допускается использовать только символы из диапазона: a-z A-Z 0-9 , (запятая) и - (минус).

Возвращаемые значения

session_create_id() возвращает новый, не подверженный коллизиям, идентификатор текущей сессии. Если используется при неактивной сессии, проверка на коллизии пропускается.

Примеры

Пример #1 Пример использования session_create_id() с функцией session_regenerate_id()

<?php
// Функция My session start с управлением на основе временных меток
function my_session_start() {
    session_start();
    // Не разрешать использование слишком старых идентификаторов сессии
    if (!empty($_SESSION['deleted_time']) && $_SESSION['deleted_time'] < time() - 180) {
        session_destroy();
        session_start();
    }
}

// Функция My session regenerate id
function my_session_regenerate_id() {
    // Вызов session_create_id() пока сессия активна, чтобы
    // удостовериться в отсутствии коллизий.
    if (session_status() != PHP_SESSION_ACTIVE) {
        session_start();
    }
    // ВНИМАНИЕ: Никогда не используйте конфиденциальные строки в качестве префикса!
    $newid = session_create_id('myprefix-');
    // Установка временной метки удаления. Данные активной сессии не должны удаляться сразу же.
    $_SESSION['deleted_time'] = time();
    // Завершение сессии
    session_commit();
    // Убеждаемся в возможности установки пользовательского идентификатора сессии
    // ЗАМЕЧАНИЕ: Вы должны включать опцию use_strict_mode для обычных операций.
    ini_set('session.use_strict_mode', 0);
    // Установка нового пользовательского идентификатора сессии
    session_id($newid);
    // Старт сессии с пользовательским идентификатором
    session_start();
}

// Убеждаемся, что опция use_strict_mode включена.
// Опция use_strict_mode обязательна по соображениям безопасности.
ini_set('session.use_strict_mode', 1);
my_session_start();

// Идентификатор сессии должен генерироваться заново при:
//  - Входе пользователя в систему
//  - Выходе пользователя из системы
//  - По прошествии определённого периода времени
my_session_regenerate_id();

// Далее основной код программы
?>

Смотрите также

  • session_regenerate_id() - Генерирует и обновляет идентификатор текущей сессии
  • session_start() - Стартует новую сессию, либо возобновляет существующую
  • session.use_strict_mode
  • SessionHandler::create_sid() - Возвращает новый идентификатор сессии


Декодирует данные сессии из закодированной строки сессии

  • « session_create_id
  • session_destroy »
  • PHP Manual
  • Функции для работы с сессиями
  • Декодирует данные сессии из закодированной строки сессии

session_decode

(PHP 4, PHP 5, PHP 7)

session_decode — Декодирует данные сессии из закодированной строки сессии

Описание

session_decode ( string $data ) : bool

session_decode() декодирует сериализованные данные сессии, переданные в $data и заполняет суперглобальный массив $_SESSION полученным результатом.

По умолчанию используется внутренний метод десериализации PHP, и результат будет отличаться от формата, возвращаемого функцией unserialize(). Метод сериализации может быть установлен с помощью session.serialize_handler.

Список параметров

data

Закодированные данные, которые необходимо сохранить.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • session_encode() - Кодирует данные текущей сессии в формате строки сессии
  • session.serialize_handler


Уничтожает все данные сессии

  • « session_decode
  • session_encode »
  • PHP Manual
  • Функции для работы с сессиями
  • Уничтожает все данные сессии

session_destroy

(PHP 4, PHP 5, PHP 7)

session_destroy — Уничтожает все данные сессии

Описание

session_destroy ( void ) : bool

session_destroy() уничтожает все данные, связанные с текущей сессией. Данная функция не удаляет какие-либо глобальные переменные, связанные с сессией и не удаляет сессионные cookie. Чтобы вновь использовать переменные сессии, следует вызвать session_start().

Замечание: Нет необходимости вызывать session_destroy() в обычном коде. Очищайте массив $_SESSION вместо удаления данных сессии.

Чтобы полностью удалить сессию, также необходимо удалить и её идентификатор. Если для передачи идентификатора сессии используются cookie (поведение по умолчанию), то сессионные cookie также должны быть удалены. Для этого можно использовать setcookie().

При включённой опции session.use_strict_mode, вам не нужно удалять устаревшие cookie идентификатора сессии. В этом нет необходимости, потому что модуль сессии не примет cookie идентификатора сессии, если с этим идентификатором сессии нет связанных данных, и модуль сессии установит новый cookie идентификатора сессии. Рекомендуется включать опцию session.use_strict_mode для всех сайтов.

Внимание

Немедленное удаление сессии может привести к нежелательным последствиям. При наличии конкурирующих запросов, другие соединения могут столкнуться с внезапной потерей данных сессии, например, это могут быть запросы от JavaScript и/или запросы из ссылок URL.

Даже если текущий модуль сессии не поддерживает пустые cookie идентификатора сессии, немедленное удаление сессии может привести к пустым cookie идентификатора сессии из-за состояния гонки на стороне клиента (браузера). Это приведёт к тому, что клиент создаст множество идентификаторов сессии без необходимости.

Чтобы этого избежать, необходимо установить в $_SESSION временную метку удаления и убрать доступ позже. Или удостовериться, что ваше приложение не имеет конкурирующих запросов. Это также относится к session_regenerate_id().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Уничтожение сессии с помощью $_SESSION

<?php
// Инициализируем сессию.
// Если вы используете session_name("something"), не забудьте добавить это перед session_start()!
session_start();

// Удаляем все переменные сессии.
$_SESSION = array();

// Если требуется уничтожить сессию, также необходимо удалить сессионные cookie.
// Замечание: Это уничтожит сессию, а не только данные сессии!
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}

// Наконец, уничтожаем сессию.
session_destroy();
?>

Примечания

Замечание:

Используйте session_unset() только для устаревшего кода, где не используется $_SESSION.

Смотрите также

  • session.use_strict_mode
  • session_reset() - Реинициализирует сессию оригинальными значениями
  • session_regenerate_id() - Генерирует и обновляет идентификатор текущей сессии
  • unset() - Удаляет переменную
  • setcookie() - Отправляет cookie


Кодирует данные текущей сессии в формате строки сессии

  • « session_destroy
  • session_gc »
  • PHP Manual
  • Функции для работы с сессиями
  • Кодирует данные текущей сессии в формате строки сессии

session_encode

(PHP 4, PHP 5, PHP 7)

session_encode — Кодирует данные текущей сессии в формате строки сессии

Описание

session_encode ( void ) : string

session_encode() возвращает сериализованную строку, содержащую данные текущей сессии, хранящиеся в суперглобальном массиве $ _SESSION.

По умолчанию используется внутренний метод сериализации PHP и результат будет отличаться от формата, возвращаемого функцией serialize(). Метод сериализации может быть установлен с помощью session.serialize_handler.

Возвращаемые значения

Возвращает сериализованные данные текущей сессии.

Примечания

Внимание

Необходимо вызвать функцию session_start() перед использованием session_encode().

Смотрите также

  • session_decode() - Декодирует данные сессии из закодированной строки сессии
  • session.serialize_handler


Выполняет сборку мусора данных сессии

  • « session_encode
  • session_get_cookie_params »
  • PHP Manual
  • Функции для работы с сессиями
  • Выполняет сборку мусора данных сессии

session_gc

(PHP 7 >= 7.1.0)

session_gc — Выполняет сборку мусора данных сессии

Описание

session_gc ( void ) : int

session_gc() используется для выполнения сборки мусора (garbage collection) для данных сессии. По умолчанию PHP выполняет основанную на вероятности сборку мусора сессии.

Сборка мусора, основанная на вероятности в целом работает, но имеет несколько проблем. 1) На низкозагруженных сайтах данные сессии могут быть не удалены в течение желаемого времени. 2) На высокозагруженных сайтах сборка мусора может выполняться слишком часто. 3) Сборка мусора выполняется во время обработки запроса пользователя, что приводит к дополнительной задержке для пользователя.

Поэтому рекомендуется выполнять сборку мусора на рабочих системах периодически, например, использовать задачи cron в UNIX-подобных системах. При этом убедитесь, что отключили сборку мусора на основе вероятности, установив session.gc_probability в 0.

Возвращаемые значения

session_gc() возвращает число удалённых данных сессии при успешном выполнении и FALSE в случае неудачи.

Старые обработчики сессии не возвращают число удалённых данных сессии, а только флаг успеха/неудачи. В этом случае, число удалённых данных сессии всегда будет равно 1, независимо от фактического количества удалённых данных.

Примеры

Пример #1 Пример использования session_gc() в диспетчерах задач, таких как cron

<?php
// Примечание: Данный скрипт должен выполняться под тем же пользователем процесса веб-сервера.

// Нужна активная сессия для инициализации доступа к хранилищу данных сессии.
session_start();

// Принудительное выполнение сборки мусора
session_gc();

// Очистка идентификатора сессии
session_destroy();
?>

Пример #2 Пример использования session_gc() в скрипте, доступном пользователю

<?php
// Примечание: session_gc() рекомендуется использовать через скрипт диспетчера задач,
// но можно использовать и следующим образом.

// Используется для проверки времени последней сборки мусора
$gc_time = '/tmp/php_session_last_gc';
$gc_period = 1800;

session_start();
// Выполнять сборку мусора только по истечении периода,
// поскольку вызов session_gc() при каждом запросе является пустой тратой ресурсов.
if (file_exists($gc_time)) {
    if (filemtime($gc_time) < time() - $gc_period) {
        session_gc();
        touch($gc_time);
    }
} else {
    touch($gc_time);
}
?>

Смотрите также

  • session_start() - Стартует новую сессию, либо возобновляет существующую
  • session_destroy() - Уничтожает все данные сессии
  • session.gc_probability


Возвращает параметры cookie сессии

  • « session_gc
  • session_id »
  • PHP Manual
  • Функции для работы с сессиями
  • Возвращает параметры cookie сессии

session_get_cookie_params

(PHP 4, PHP 5, PHP 7)

session_get_cookie_params — Возвращает параметры cookie сессии

Описание

session_get_cookie_params ( void ) : array

Возвращает параметры cookie сессии.

Возвращаемые значения

Возвращает массив с информацией о cookie текущей сессии, который содержит следующие элементы:

  • "lifetime" - время жизни cookie в секундах.
  • "path" - путь, где размещена хранимая информация.
  • "domain" - домен cookie.
  • "secure" - cookie должны передаваться только через безопасные соединения.
  • "httponly" - cookie могут быть доступны только по протоколу HTTP.
  • "samesite" - управляет междоменной отправкой cookie.

Список изменений

Версия | Описание
7.3.0 | Добавлен элемент "samesite" в возвращаемый массив.
5.2.0 | Добавлен элемент "httponly" в возвращаемый массив.

Смотрите также

  • session.cookie_lifetime
  • session.cookie_path
  • session.cookie_domain
  • session.cookie_secure
  • session.cookie_httponly
  • session.cookie_samesite
  • session_set_cookie_params() - Устанавливает параметры сессионной cookie


Получает и/или устанавливает идентификатор текущей сессии

  • « session_get_cookie_params
  • session_is_registered »
  • PHP Manual
  • Функции для работы с сессиями
  • Получает и/или устанавливает идентификатор текущей сессии

session_id

(PHP 4, PHP 5, PHP 7)

session_id — Получает и/или устанавливает идентификатор текущей сессии

Описание

session_id ([ string $id ] ) : string

session_id() используется для получения или установки идентификатора текущей сессии.

Константа SID также может быть использована для получения текущего имени и идентификатора сессии в виде строки, подходящей для добавления в URL-адреса. См. также Работа с сессиями.

Список параметров

id

Если указан параметр id, то он заменит идентификатор текущий сессии. Для этого session_id() следует вызывать до session_start(). В зависимости от обработчика сессии, не все символы возможно использовать в идентификаторе сессии. Например, файловый обработчик сессии поддерживает только символы из диапазона a-z A-Z 0-9 , (запятая) и - (минус)!

Замечание: При использовании сессионных cookie, указание id для session_id() приводит к тому, что при вызове session_start() всегда будут отправлены новые cookie, независимо от того, совпадает ли идентификатор текущей сессии с вновь установленным.

Возвращаемые значения

session_id() возвращает идентификатор текущей сессии или пустую строку (""), если нет текущей сессии (идентификатор текущей сессии не существует).

Смотрите также

  • session_regenerate_id() - Генерирует и обновляет идентификатор текущей сессии
  • session_start() - Стартует новую сессию, либо возобновляет существующую
  • session_set_save_handler() - Устанавливает пользовательские обработчики хранения сессии
  • session.save_handler


Определяет, зарегистрирована ли глобальная переменная в сессии

  • « session_id
  • session_module_name »
  • PHP Manual
  • Функции для работы с сессиями
  • Определяет, зарегистрирована ли глобальная переменная в сессии

session_is_registered

(PHP 4, PHP 5 < 5.4.0)

session_is_registered — Определяет, зарегистрирована ли глобальная переменная в сессии

Описание

session_is_registered ( string $name ) : bool

Определяет, зарегистрирована ли глобальная переменная в сессии.

Внимание

Данная функция была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Список параметров

name

Имя переменной.

Возвращаемые значения

session_is_registered() возвращает TRUE, если глобальная переменная с именем name зарегистрирована в текущей сессии, либо FALSE в противном случае.

Примечания

Замечание:

Если применяется $_SESSION, следует использовать isset() для проверки регистрации переменных в $_SESSION.

Предостережение

Если используется $_SESSION
(или $HTTP_SESSION_VARS), не следует использовать
session_register(),
session_is_registered() и
session_unregister().


Возвращает и/или устанавливает модуль текущей сессии

  • « session_is_registered
  • session_name »
  • PHP Manual
  • Функции для работы с сессиями
  • Возвращает и/или устанавливает модуль текущей сессии

session_module_name

(PHP 4, PHP 5, PHP 7)

session_module_name — Возвращает и/или устанавливает модуль текущей сессии

Описание

session_module_name ([ string $module ] ) : string

session_module_name() возвращает название текущего модуля сессии, которое также известен как session.save_handler.

Список параметров

module

Если указан параметр module, данный модуль будет использован вместо текущего. Передача значения "user" в этот параметр запрещена. Вместо этого должна вызываться функция session_set_save_handler() для установки пользовательского обработчика.

Возвращаемые значения

Возвращает название текущего модуля сессии.

Список изменений

Версия | Описание
7.2.0 | В данный момент запрещено устанавливать имя модуля на значение "user". Ранее это игнорировалось.


Получить или установить имя текущей сессии

  • « session_module_name
  • session_regenerate_id »
  • PHP Manual
  • Функции для работы с сессиями
  • Получить или установить имя текущей сессии

session_name

(PHP 4, PHP 5, PHP 7)

session_name — Получить или установить имя текущей сессии

Описание

session_name ([ string $name ] ) : string

session_name() возвращает имя текущей сессии. Если задан параметр name, session_name() обновит имя сессии и вернет старое имя сессии.

Если новое имя сессии (name) предоставлено, session_name() изменяет cookie HTTP (и выводит содержимое при включенной опции session.transid). Когда cookie HTTP отправлены, session_name() вызывает ошибку. session_name() необходимо вызывать до session_start() для правильной работы сессии.

Имя сессии сбрасываются на значение по умолчанию, хранящегося в session.name во время запуска запроса. Таким образом, вам нужно вызывать session_name() для каждого запроса (и до session_start()).

Список параметров

name

Имя сессии ссылается на имя сессии, которое используется в cookie и URL (например, PHPSESSID ). Оно должно содержать только буквенно-цифровые символы, и должен быть коротким и понятными (например, для пользователей с включенным предупреждением cookie). Если задан параметр name, имя текущей сессии поменяется на него.

Внимание

Имя сессии не может состоять только из цифр, по крайней мере, одна буква должна присутствовать. В противном случае каждый раз будет генерироваться новый идентификатор.

Возвращаемые значения

Возвращает имя текущей сессии. Если задан параметр name, имя текущей сессии поменяется и будет возвращено старое.

Примеры

Пример #1 Пример использования session_name()

<?php

/* устанавливает имя сессии равным WebsiteID */

$previous_name = session_name("WebsiteID");

echo "Предыдущее имя сессии: $previous_name<br />";
?>

Список изменений

Версия | Описание
7.2.0 | session_name() проверяет статус сессии, ранее она проверяла только статус cookie. Поэтому старая версия session_name() позволяла вызывать session_name() после session_start(), что могло привести к сбою PHP и неправильному поведению.

Смотрите также

  • Параметр конфигурации session.name


Генерирует и обновляет идентификатор текущей сессии

  • « session_name
  • session_register_shutdown »
  • PHP Manual
  • Функции для работы с сессиями
  • Генерирует и обновляет идентификатор текущей сессии

session_regenerate_id

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

session_regenerate_id — Генерирует и обновляет идентификатор текущей сессии

Описание

session_regenerate_id ([ bool $delete_old_session = FALSE ] ) : bool

session_regenerate_id() заменяет идентификатор текущей сессии вновь сгенерированным, при этом сохраняет информацию о текущей сессии.

При включённой опции session.use_trans_sid, вывод должен осуществляться после вызова session_regenerate_id(). В противном случае будет использоваться старый идентификатор сессии.

Внимание

Текущая реализация session_regenerate_id() плохо работает с сетями с нестабильным соединением, такими как мобильные и WiFi-сети. Таким образом, есть вероятность потерять сессиию из-за вызова session_regenerate_id().

Вы не должны уничтожать данные старой сессии немедленно, а должны использовать временные метки удаления и контролировать доступ к старой сессии. В противном случае конкурирующий доступ к странице может привести к несогласованному состоянию, потере сессии или к состоянию гонки на стороне клиента (браузера), что, в свою очередь, приведёт к созданию множества идентификаторов сессии без необходимости. Немедленное удаление сессии также делает невозможным обнаружение и предотвращение атак при перехвате сессии.

Список параметров

delete_old_session

Определяет, удалять ли старый связанный файл с сессией или нет. Не следует удалять старую сессию, если требуется избегать состояния гонки из-за удаления или обнаруживать/избегать атак при перехвате сессии.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | session_regenerate_id() перед закрытием сохраняет данные старой сессии.
5.1.0 | Добавлен параметр delete_old_session.

Примеры

Пример #1 Пример использования session_regenerate_id()

<?php
// ЗАМЕЧАНИЕ: Это не полностью работающий код, а только пример!

session_start();

// Проверяем временную метку удаления
if (isset($_SESSION['destroyed'])
    && $_SESSION['destroyed'] < time() - 300) {
    // Обычно это не должно происходить. Это может быть атакой или результатом нестабильной сети.
    // Удаляем все статусы аутентификации пользователей этой сессии.
    remove_all_authentication_flag_from_active_sessions($_SESSION['userid']);
    throw(new DestroyedSessionAccessException);
}

$old_sessionid = session_id();

// Устанавливаем временную метку удаления
$_SESSION['destroyed'] = time(); // Начиная с PHP 7.0.0 и выше, session_regenerate_id() сохраняет данные старой сессии

// Просто вызов session_regenerate_id() может привести к потере сессии и т.д.
// Смотрите следующий пример.
session_regenerate_id();

// Новой сессии не требуется временная метка удаления.
unset($_SESSION['destroyed']);

$new_sessionid = session_id();

echo "Старая сессия: $old_sessionid<br />";
echo "Новая сессия: $new_sessionid<br />";

print_r($_SESSION);
?>

Текущий модуль сессии не работает хорошо с сетями с нестабильным соединением. Вы должны управлять идентификатором сессии, чтобы избежать потери сессии в результате вызова session_regenerate_id().

Пример #2 Как избежать потери сессии при использовании session_regenerate_id()

<?php
// ЗАМЕЧАНИЕ: Это не полностью работающий код, а только пример!
// my_session_start() и my_session_regenerate_id() избегают потери
// сессии из-за нестабильной сети. В дополнение, данный код может предотвращать
// использование украденных сессий злоумышленниками.

function my_session_start() {
    session_start();
    if (isset($_SESSION['destroyed'])) {
       if ($_SESSION['destroyed'] < time()-300) {
           // Обычно это не должно происходить. Это может быть атакой или результатом нестабильной сети.
           // Удаляем все статусы аутентификации пользователей этой сессии.
           remove_all_authentication_flag_from_active_sessions($_SESSION['userid']);
           throw(new DestroyedSessionAccessException);
       }
       if (isset($_SESSION['new_session_id'])) {
           // Срок действия ещё не полностью истёк. Cookie могли быть потеряны из-за нестабильной сети.
           // Заново пытаемся установить правильный cookie идентификатора сессиии.
           // ЗАМЕЧАНИЕ: Не пытайтесь заново установить идентификатор сессии если, вы предпочитаете
           // удалить флаг аутентификации.
           session_commit();
           session_id($_SESSION['new_session_id']);
           // Новый идентификатор сессии должен существовать.
           session_start();
           return;
       }
   }
}

function my_session_regenerate_id() {
    // Новый идентификатор сессии необходим для установки правильного идентификатора сессии,
    // когда идентификатор сессии не был установлен из-за нестабильной сети.
    $new_session_id = session_create_id();
    $_SESSION['new_session_id'] = $new_session_id;

    // Устанавливаем временную метку удаления.
    $_SESSION['destroyed'] = time();

    // Записываем и закрываем текущую сессию.
    session_commit();

    // Стартуем сессию с новым идентификатором.
    session_id($new_session_id);
    ini_set('session.use_strict_mode', 0);
    session_start();
    ini_set('session.use_strict_mode', 1);

    // Новой сессии не нужно это.
    unset($_SESSION['destroyed']);
    unset($_SESSION['new_session_id']);
}
?>

Смотрите также

  • session_id() - Получает и/или устанавливает идентификатор текущей сессии
  • session_create_id() - Создаёт новый идентификатор сессии
  • session_start() - Стартует новую сессию, либо возобновляет существующую
  • session_destroy() - Уничтожает все данные сессии
  • session_reset() - Реинициализирует сессию оригинальными значениями
  • session_name() - Получить или установить имя текущей сессии


Функция завершения сессии

  • « session_regenerate_id
  • session_register »
  • PHP Manual
  • Функции для работы с сессиями
  • Функция завершения сессии

session_register_shutdown

(PHP 5 >= 5.4.0, PHP 7)

session_register_shutdown — Функция завершения сессии

Описание

session_register_shutdown ( void ) : void

Регистрирует функцию session_write_close() в качестве функции завершения сессии.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

При неудачной регистрации завершающей функции генерирует ошибку уровня E_WARNING.


Регистрация одной или нескольких глобальных переменных текущей сессии

  • « session_register_shutdown
  • session_reset »
  • PHP Manual
  • Функции для работы с сессиями
  • Регистрация одной или нескольких глобальных переменных текущей сессии

session_register

(PHP 4, PHP 5 < 5.4.0)

session_register — Регистрация одной или нескольких глобальных переменных текущей сессии

Описание

session_register ( mixed $name [, mixed $... ] ) : bool

session_register() принимает переменное число аргументов, любой из которых может быть либо строкой, содержащей имя переменной, либо массивом, состоящим из имен переменных или других массивов. Для каждого имени, session_register() регистрирует глобальную переменную с таким именем в текущей сессии.

Вы также можете создать переменную сессии, просто установив соответствующий элемент в массиве $_SESSION.

<?php
// Использование session_register() объявлено устаревшим
$barney = "Большой фиолетовый динозавр.";
session_register("barney");

// Использование $_SESSION является предпочтительным
$_SESSION["zim"] = "Захватчик с другой планеты.";
?>

Если функция session_start() не была вызвана перед этой, то произойдет неявный вызов session_start() без параметров. В случае использования $_SESSION этого не произойдет, следовательно необходимо самостоятельно вызвать session_start().

Внимание

Данная функция была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Список параметров

name

Строка, содержащая имя переменной, либо массив, состоящий из имен переменных или других массивов.

...

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Предостережение

Если вы хотите, чтобы ваш скрипт работал независимо от register_globals, вам нужно использовать массив $_SESSION, так как записи $_SESSION будут автоматически зарегистрированы. Если ваш скрипт использует session_register(), она не будет работать в условиях, когда директива PHP register_globals отключена.

Замечание: register_globals: важное замечание

Начиная с PHP 4.2.0, значением директивы PHP register_globals по умолчанию является off (выключено). Сообщество PHP рекомендует не полагаться на эту директиву, а использовать вместо этого иные средства, такие как superglobals.

Предостережение

Эта функция регистрирует глобальную переменную. Если вы хотите зарегистрировать сессионную переменную изнутри функции, вы должны сделать эту переменную глобальной с помощью ключевого слова global или с помощью суперглобального массива $GLOBALS[], или использовать специальные сессионные массивы, указанные ниже.

Предостережение

Если вы используете $_SESSION, не используйте
session_register(),
session_is_registered(), и
session_unregister().

Замечание:

Это в настоящее время невозможно зарегистрировать в сессии переменнтую типа resource. Например, вы не можете создать подключение к базе данных, хранить идентификатор соединения как переменную сессии и ожидать подключения к БД по этому идентификатору после восстановления сессии. Функции PHP, которые возвращают ресурсы, имеют в описании тип возвращаемого значения resource. Список таких функций можно посмотреть в приложении типы ресурсов.

Если используются $_SESSION, присваитвайте значения $_SESSION. Пример: $_SESSION['var'] = 'ABC';

Смотрите также

  • session_is_registered() - Определяет, зарегистрирована ли глобальная переменная в сессии
  • session_unregister() - Отмена регистрации глобальной переменной в текущей сессии
  • $_SESSION


Реинициализирует сессию оригинальными значениями

  • « session_register
  • session_save_path »
  • PHP Manual
  • Функции для работы с сессиями
  • Реинициализирует сессию оригинальными значениями

session_reset

(PHP 5 >= 5.6.0, PHP 7)

session_reset — Реинициализирует сессию оригинальными значениями

Описание

session_reset ( void ) : bool

Функция session_reset() повторно инициализирует сессию, используя оригинальные значения, сохраненные в хранилище сессии. Эта функция требует наличия активной сессии и уничтожает все изменения в массиве $_SESSION.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.2.0 | Теперь возвращаемый тип этой функции bool. Раньше был тип void.

Смотрите также

  • $_SESSION
  • Опция конфигурации session.auto_start
  • session_start() - Стартует новую сессию, либо возобновляет существующую
  • session_abort() - Отменяет изменения в массиве сессии и завершает ее
  • session_commit() - Псевдоним session_write_close


Получает и/или устанавливает путь сохранения сессии

  • « session_reset
  • session_set_cookie_params »
  • PHP Manual
  • Функции для работы с сессиями
  • Получает и/или устанавливает путь сохранения сессии

session_save_path

(PHP 4, PHP 5, PHP 7)

session_save_path — Получает и/или устанавливает путь сохранения сессии

Описание

session_save_path ([ string $path ] ) : string

session_save_path() возвращает путь текущей директории, которая используется для сохранения данных сессии.

Список параметров

path

Путь для данных сессии. Если указан, то путь, куда сохраняются данные, будет изменён. Для этой цели session_save_path() следует вызывать перед session_start().

Замечание:

В некоторых операционных системах вы можете указать путь в файловой системе, которая эффективно обрабатывает большое число небольших файлов. Например, в Linux файловая система reiserfs может обеспечить лучшую производительность, чем ext2fs.

Возвращаемые значения

Возвращает путь текущей директории, используемой для хранения данных сессии.

Смотрите также

  • session.save_path


Устанавливает параметры сессионной cookie

  • « session_save_path
  • session_set_save_handler »
  • PHP Manual
  • Функции для работы с сессиями
  • Устанавливает параметры сессионной cookie

session_set_cookie_params

(PHP 4, PHP 5, PHP 7)

session_set_cookie_params — Устанавливает параметры сессионной cookie

Описание

session_set_cookie_params ( int $lifetime [, string $path [, string $domain [, bool $secure = FALSE [, bool $httponly = FALSE ]]]] ) : bool
session_set_cookie_params ( array $options ) : bool

Устанавливает параметры cookie, определённые в файле php.ini. Эффект этой функции сохраняется только на время выполнения скрипта. Таким образом, нужно вызывать session_set_cookie_params() для каждого запроса и перед каждым вызовом session_start().

Данная функция обновляет текущие ini-значения соответствующих ключей конфигурации PHP ini, которые можно получить с помощью ini_get().

Список параметров

lifetime

Время жизни сессионной cookie в секундах.

path

Путь в домене, где cookie будет работать. Используйте одну косую черту ('/') для всех путей в домене.

domain

Домен cookie, например 'www.php.net'. Чтобы сделать cookies видимыми для всех поддоменов, перед именем домена нужно поставить точку, например '.php.net'.

secure

Если TRUE, то cookies будут передаваться только через защищённые соединения.

httponly

Если установлено TRUE, то PHP попытается отправить флаг httponly при настройке сессионной cookie.

options

Ассоциативный массив (array), который может иметь любое из ключей lifetime, path, domain, secure, httponly и samesite. Значения имеют тот же смысл, как описано в параметрах с соответсвующим именем. Значение элемента samesite должно быть либо Lax, либо Strict. Если какая-либо из допустимых опций не указана, ее значения по умолчанию совпадают с значениями по умолчанию для явных параметров. Если элемент samesite не указан, cookie-атрибут SameSite не установлен.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3.0 | Добавлена альтернативная подпись, поддерживающая массив опций options. Эта подпись поддерживает также настройку cookie-атрибута SameSite.
7.2.0 | Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Ранее возвращала тип void.
5.2.0 | Добавлен параметр httponly.

Смотрите также

  • session.cookie_lifetime
  • session.cookie_path
  • session.cookie_domain
  • session.cookie_secure
  • session.cookie_httponly
  • session.cookie_samesite
  • session_get_cookie_params() - Возвращает параметры cookie сессии


Устанавливает пользовательские обработчики хранения сессии

  • « session_set_cookie_params
  • session_start »
  • PHP Manual
  • Функции для работы с сессиями
  • Устанавливает пользовательские обработчики хранения сессии

session_set_save_handler

(PHP 4, PHP 5, PHP 7)

session_set_save_handler — Устанавливает пользовательские обработчики хранения сессии

Описание

session_set_save_handler ( callable $open , callable $close , callable $read , callable $write , callable $destroy , callable $gc [, callable $create_sid [, callable $validate_sid [, callable $update_timestamp ]]] ) : bool

Начиная с PHP 5.4 появилась возможность регистрировать следующий прототип:

session_set_save_handler ( object $sessionhandler [, bool $register_shutdown = TRUE ] ) : bool

session_set_save_handler() устанавливает пользовательские обработчики хранения сессии, которые используются для сохранения и получения данных, связанных с сессией. Это особенно полезно, когда предпочтительным является метод хранения, отличный от тех, которые предоставляются сессиями PHP, например, хранение данных сессии в локальной базе данных.

Список параметров

Данная функция имеет два определения (прототипа).

sessionhandler

Экземпляр класса, реализующий интерфейс SessionHandlerInterface, SessionIdInterface и/или SessionUpdateTimestampHandlerInterface, такой как SessionHandler, для регистрации в качестве обработчика сессии. Только начиная с PHP 5.4.

register_shutdown

Зарегистрировать session_write_close() как функцию register_shutdown_function().

или
open(string $savePath, string $sessionName)

Callback-функция open работает как конструктор в классах и выполняется при открытии сессии. Это первая сallback-функция, которая выполняется, когда сессия стартует автоматически либо вручную через session_start(). Возвращаемое значение TRUE в случае успеха, FALSE в случае неудачи.

close()

Callback-функция close работает как деструктор в классах и выполняется после того, как была вызвана callback-функция write. Она также вызывается при вызове session_write_close(). Возвращаемое значение должно быть TRUE в случае успеха, FALSE в случае неудачи.

read(string $sessionId)

Callback-функция read должна всегда возвращать кодированную (сериализованную) строку сессии или пустую строку, если нет данных для чтения.

Эта callback-функция вызывается внутренним механизмом PHP при старте сессии или при вызове session_start(). Перед тем, как будет вызвана эта callback-функция, PHP вызовет callback-функцию open.

Возвращаемое значение данной callback-функции должно быть в точно таком же сериализованном формате, который изначально передавался для хранения в callback-функцию write. Возвращаемое значение будет автоматически десериализовано PHP и использовано для заполнения суперглобальной переменной $_SESSION. Даже если данные похожи на результат serialize(), стоит помнить, что это другой формат сериализации, который определён ini-дерективой session.serialize_handler.

write(string $sessionId, string $data)

Callback-функция write вызывается, когда сессия должна быть сохранена и закрыта. Данная callback-функция принимает идентификатор текущей сессии и сериализованную версию суперглобальной переменной $_SESSION. Используемый внутри PHP метод сериализации определён ini-дерективой session.serialize_handler.

Переданные в эту callback-функцию сериализованные данные сессии должны быть сохранены в связи с переданным идентификатором сессии. При получении этих данных, callback-функция read должна вернуть то же самое значение, что было передано в callback-функцию write.

Данная callback-функция вызывается, когда PHP завершает работу или явно при вызове session_write_close(). Следует помнить, что после выполнения этой callback-функции, PHP выполнит callback-функцию close.

Замечание:

Обработчик "write" не выполнится до тех пор, пока выходной поток не будет закрыт. Таким образом, вывод отладочных операторов в обработчике "write" никогда не отобразится в браузере. Если необходим вывод отладочной информации, рекомендуется записывать отладочные данные в файл.

destroy($sessionId)

Данная callback-функция вызывается, когда сессия уничтожается с помощью session_destroy() или при вызове session_regenerate_id() с параметром destroy, установленным в TRUE. Возвращаемое значение должно быть TRUE в случае успеха, FALSE в случае неудачи.

gc($lifetime)

Callback-функция сборщика мусора периодически вызывается PHP для очистки данных старых сессий. Частота контролируется директивами session.gc_probability и session.gc_divisor. Значение lifetime, которое передаётся в данную callback-функцию может быть установлено в session.gc_maxlifetime. Возвращаемое значение должно быть TRUE в случае успеха, FALSE в случае неудачи.

create_sid()

Данная callback-функция выполняется, когда требуется новый идентификатор сессии. Не предусматривает параметров, а возвращаемое значение должно быть строкой, которая является допустимым идентификатором сессии для вашего обработчика.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | Добавлены необязательные параметры validate_sid и update_timestamp.
5.5.1 | Добавлен необязательный параметр create_sid.
5.4.0 | Добавлен интерфейс SessionHandlerInterface для реализации обработчиков сессии и класс SessionHandler для дополнения внутренних обработчиков сессии PHP.

Примеры

Пример #1 Пользовательский обработчик сессии: полный код смотрите в описании SessionHandlerInterface.

Следующий код для PHP версии 5.4.0 и выше. Здесь только продемонстрирован вызов session_set_save_handler, полный пример можно посмотреть в описании SessionHandlerInterface.

Заметьте, что с session_set_save_handler() мы используем ООП-прототип и регистрируем функцию завершения, используя флаг параметра функции. Это обычно рекомендуется при регистрации объектов в качестве обработчиков хранения сессии.

<?php
class MySessionHandler implements SessionHandlerInterface
{
    // здесь реализация интерфейса
}

$handler = new MySessionHandler();
session_set_save_handler($handler, true);
session_start();

// устанавливаем и получаем значения по ключу из $_SESSION

Пример #2 Пользовательский обработчик сессии с использованием объектов

Следующий код для PHP версий ниже 5.4.0.

Следующий пример показывает реализацию файлового хранилища сессий, похожего на стандартный обработчик PHP хранения сессии files. Этот пример может быть легко расширен для реализации хранилища в базах данных, используя ваш любимый движок базы данных, который поддерживает PHP.

Заметьте, что мы дополнительно регистрируем функцию завершения session_write_close(), используя register_shutdown_function() в PHP версии меньше 5.4.0. Это обычно рекомендуется при регистрации объектов в качестве обработчиков хранения сессии для PHP версий меньше 5.4.0.

<?php
class FileSessionHandler
{
    private $savePath;

    function open($savePath, $sessionName)
    {
        $this->savePath = $savePath;
        if (!is_dir($this->savePath)) {
            mkdir($this->savePath, 0777);
        }

        return true;
    }

    function close()
    {
        return true;
    }

    function read($id)
    {
        return (string)@file_get_contents("$this->savePath/sess_$id");
    }

    function write($id, $data)
    {
        return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true;
    }

    function destroy($id)
    {
        $file = "$this->savePath/sess_$id";
        if (file_exists($file)) {
            unlink($file);
        }

        return true;
    }

    function gc($maxlifetime)
    {
        foreach (glob("$this->savePath/sess_*") as $file) {
            if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
                unlink($file);
            }
        }

        return true;
    }
}

$handler = new FileSessionHandler();
session_set_save_handler(
    array($handler, 'open'),
    array($handler, 'close'),
    array($handler, 'read'),
    array($handler, 'write'),
    array($handler, 'destroy'),
    array($handler, 'gc')
    );

// предотвращает непредвиденные эффекты при использовании объектов в качестве обработчиков хранения сесси
register_shutdown_function('session_write_close');

session_start();
// устанавливаем и получаем значения по ключу из $_SESSION

Примечания

Внимание

При использовании объектов в качестве обработчиков хранения сессии, важно регистрировать функцию завершения с помощью PHP, чтобы избежать непредвиденных побочных эффектов от того, как внутренний механизм PHP уничтожает объекты при завершении, что может предотвратить вызовы write и close. Как правило, вы должны регистрировать 'session_write_close', используя функцию register_shutdown_function().

Начиная с PHP 5.4.0 вы можете использовать session_register_shutdown() или просто установить флаг 'register_shutdown' при вызове session_set_save_handler(), используя метод ООП и передать экземпляр класса, реализующего интерфейс SessionHandlerInterface.

Внимание

Начиная с версии PHP 5.0.5 обработчики write и close вызываются после деструктора объекта и поэтому не могут использовать его контекст или бросать исключения. Исключения не могут быть обработаны, так как не будут пойманы, не будет оторажена трассировка стека исключения и выполнение просто прекратится неожиданно. Однако при этом, деструкторы объекта могут использовать сессии.

Можно вызвать session_write_close() из деструктора, чтобы решить эту проблему "курицы и яйца", но самый надёжный способ - это регистрировать функцию завершения, как описано выше.

Внимание

Текущий рабочий каталог изменяется некоторыми SAPI, если сессия закрывается при завершении скрипта. Завершить сессию можно раньше с помощью session_write_close().

Смотрите также

  • Директива session.save_handler
  • Директива session.serialize_handler
  • register_shutdown_function() - Регистрирует функцию, которая выполнится при завершении работы скрипта
  • session_register_shutdown() - Функция завершения сессии для PHP 5.4.0+
  • Обратитесь к » save_handler.inc для полного набора рекомендаций по реализации


Стартует новую сессию, либо возобновляет существующую

  • « session_set_save_handler
  • session_status »
  • PHP Manual
  • Функции для работы с сессиями
  • Стартует новую сессию, либо возобновляет существующую

session_start

(PHP 4, PHP 5, PHP 7)

session_start — Стартует новую сессию, либо возобновляет существующую

Описание

session_start ([ array $options = array() ] ) : bool

Функция session_start() создает сессию, либо возобновляет существующую, основываясь на идентификаторе сессии, переданном через GET- или POST-запрос, либо переданный через cookie.

Когда вызвана функция session_start() или когда сессия создается автоматически, PHP вызовет открытие и чтение обработчиков записи сессии. Это могут быть как встроенные обработчики, так и предоставляемые расширениями (например, SQLite или Memcached); или вообще определенный пользователем обработчик, заданный функцией session_set_save_handler(). Callback-функция чтения извлечет все существующие данные сессии (сохраненные в специальном сериализованном виде), десериализует их и занесет в суперглобальный массив $_SESSION, после чего вернет сохраненные данные обработчику сессий PHP.

Для использования именованных сессий, используйте session_name() перед session_start().

Если разрешена опция session.use_trans_sid, функция session_start() регистрирует внутренний обработчик вывода для перезаписи URL.

Если пользователь использует ob_gzhandler или что-то подобное совместно с функцией ob_start(), порядок функций важен для правильного вывода. К примеру, ob_gzhandler должен быть зарегистрирован до старта сессии.

Список параметров

options

Если задано, то должно быть ассоциативным массивом, переопределяющим текущие директивы конфигурации сессий. Ключи не должны иметь префикса session..

В дополнение к обычному набору конфигурационных директив, может быть добавлена опция read_and_close. Если установлена в TRUE, то сессия будет закрыта сразу же после прочтения, теоретически позволяя избежать блокировки, если данные сессии не будут изменяться.

Возвращаемые значения

Функция возвращает TRUE, если сессия успешно стартована, в противном случае FALSE.

Список изменений

Версия | Описание
7.1.0 | session_start() теперь возвращает FALSE и больше не инициализирует $_SESSION, когда она не смогла запустить сессию.
7.0.0 | Добавлен параметр options.
5.3.0 | Если сессия не смогла стартовать, то возвращается FALSE. Раньше возвращалось TRUE.

Примеры

Простой пример сессии

Пример #1 page1.php

<?php
// page1.php

session_start();

echo 'Добро пожаловать на страницу 1';

$_SESSION['favcolor'] = 'green';
$_SESSION['animal']   = 'cat';
$_SESSION['time']     = time();

// Работает, если сессионная cookie принята
echo '<br /><a href="page2.php">page 2</a>';

// Или можно передать идентификатор сессии, если нужно
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>

После просмотра page1.php, вторая страница page2.php чудесным образом получит все данные сессии. Читайте раздел работа с сессиями, там рассказывается про передачу идентификаторов сессий. В частности там рассказывается про то, что такое константа SID.

Пример #2 page2.php

<?php
// page2.php

session_start();

echo 'Добро пожаловать на страницу 2<br />';

echo $_SESSION['favcolor']; // green
echo $_SESSION['animal'];   // cat
echo date('Y m d H:i:s', $_SESSION['time']);

// Можете тут использовать идентификатор сессии, как в page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>

Передача опций в session_start()

Пример #3 Переопределение времени жизни cookie

<?php
// Устанавливаем срок действия cookie одному дню.
session_start([
    'cookie_lifetime' => 86400,
]);
?>

Пример #4 Чтение и закрытие сессии

<?php
// Если мы знаем, что в сессии не надо ничего изменять,
// мы можем просто прочитать ее переменные и сразу закрыть,
// чтобы не блокировать файл сессии, который может понадобиться другим сессиям
session_start([
    'cookie_lifetime' => 86400,
    'read_and_close'  => true,
]);

Примечания

Замечание:

Для использования сессий на основе cookie, функция session_start() должна быть вызвана перед выводом чего бы то ни было в браузер.

Замечание:

Используйте zlib.output_compression вместо ob_gzhandler()

Замечание:

Эта функция отсылает несколько заголовков HTTP, в зависимости от настроек. См. описание функции session_cache_limiter() для управления этими заголовками.

Смотрите также

  • $_SESSION
  • Директива конфигурации session.auto_start
  • session_id() - Получает и/или устанавливает идентификатор текущей сессии


Возвращает состояние текущей сессии

  • « session_start
  • session_unregister »
  • PHP Manual
  • Функции для работы с сессиями
  • Возвращает состояние текущей сессии

session_status

(PHP 5 >= 5.4.0, PHP 7)

session_status — Возвращает состояние текущей сессии

Описание

session_status ( void ) : int

Функция session_status() возвращает состояние текущей сессии.

Возвращаемые значения

  • PHP_SESSION_DISABLED, если механизм сессий отключен.
  • PHP_SESSION_NONE, если механизм сессий включен, но сессия не создана.
  • PHP_SESSION_ACTIVE, если механизм сессий включен и сессия создана.

Смотрите также

  • session_start() - Стартует новую сессию, либо возобновляет существующую


Отмена регистрации глобальной переменной в текущей сессии

  • « session_status
  • session_unset »
  • PHP Manual
  • Функции для работы с сессиями
  • Отмена регистрации глобальной переменной в текущей сессии

session_unregister

(PHP 4, PHP 5 < 5.4.0)

session_unregister — Отмена регистрации глобальной переменной в текущей сессии

Описание

session_unregister ( string $name ) : bool

session_unregister() отменяет регистрацию глобальной переменной с именем name в текущей сессии.

Внимание

Данная функция была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Список параметров

name

Имя переменной.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

При использовании $_SESSION, для отмены регистрации переменной сессии используйте unset(). Не используйте unset() непосредственно на $_SESSION, поскольку это упразднит специальное назначение суперглобального массива $_SESSION.

Предостережение

Данная функция не удаляет глобальную переменную, соответствующую name, она только предотвращает сохранение переменной как части сессии. Для удаления соответствующей глобальной переменной используйте unset().

Предостережение

Если вы используете $_SESSION (или
$HTTP_SESSION_VARS), не используйте
session_register(),
session_is_registered() и
session_unregister().


Удалить все переменные сессии

  • « session_unregister
  • session_write_close »
  • PHP Manual
  • Функции для работы с сессиями
  • Удалить все переменные сессии

session_unset

(PHP 4, PHP 5, PHP 7)

session_unset — Удалить все переменные сессии

Описание

session_unset ( void ) : bool

Функция session_unset() удаляет все зарегистрированные переменные текущей сессии.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.2.0 | Теперь возвращаемый тип этой функции bool. Раньше был тип void.

Примечания

Замечание:

При использовании $_SESSION для удаления переменных сессии, то используйте функцию unset(). Например, unset ($_SESSION['varname']);.

Предостережение

НЕ удаляйте весь массив $_SESSION с помощью unset($_SESSION), так как это приведет к невозможности регистрации новых переменных через суперглобальный массив $_SESSION

Замечание:

Используйте session_unset() только для старого кода, который не использует $_SESSION.


Записывает данные сессии и завершает её

  • « session_unset
  • SessionHandler »
  • PHP Manual
  • Функции для работы с сессиями
  • Записывает данные сессии и завершает её

session_write_close

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

session_write_close — Записывает данные сессии и завершает её

Описание

session_write_close ( void ) : bool

Завершает текущую сессию и сохраняет её данные.

Данные сессии обычно сохраняются после завершения выполнения скрипта без необходимости вызова session_write_close(). Поскольку данные сессии заблокированы для предотвращения одновременной конкурирующей записи, только один скрипт может работать с сессией в любой момент времени. Из-за этой блокировки, при использовании фреймов вместе с сессиями, фреймы будут загружаться по очереди один за одним. Можно уменьшить время загрузки всех фреймов путём завершения сессии сразу, как только будут выполнены все необходимые изменения переменных сессии.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.2.0 | Теперь возвращаемый тип этой функции bool. Раньше был тип void.

Смотрите также

  • session_register_shutdown() - Функция завершения сессии


Класс SessionHandler

(PHP 5 >= 5.4.0, PHP 7)

Введение

SessionHandler это специальный класс, который может использоваться для дополнения внутреннего обработчика сессий PHP путем создания дочерних классов от этого. Существует семь методов, которые являются обертками над семью внутренними обработчиками хранения данных сессии (open, close, read, write, destroy, gc и create_sid). По умолчанию этот класс оборачивает все внутренние обработчики хранения сессии, определенные в опции конфигурации session.save_handler. Эта опция по умолчанию имеет значение files. Другие внутренние обработчики сессий предоставляются PHP-расширениями, такими как SQLite (sqlite), Memcache (memcache) и Memcached (memcached).

Экземпляр класса SessionHandler может устанавливаться в качестве обработчика сессии посредством вызова функции session_set_save_handler(). В этом случае он станет оберткой существующего внутреннего обработчика. Классы, расширяющие SessionHandler позволят переопределить методы обработчика сессии или перехватить/отфильтровать их путем вызова родительских методов-оберток внутреннего обработчика сессий PHP.

Это позволит вам, к примеру, перехватить методы read и write для шифровки/дешифровки данных сессии и передачи результата родительскому классу и от него. Или, к примеру, вы можете полностью переопределить такой метод как callback-функция сборщика мусора (gc).

Так как SessionHandler является оберткой над стандартным внутренним обработчиком сессии, то пример, приведенный выше про шифровку данных может быть применен к любому внутреннему обработчику сессии даже без понимания внутреннего устройства процесса работы сессии.

Для использования этого класса, во-первых, установите обработчик, который вы хотите дополнить используя session.save_handler. Далее передайте экземпляр класса SessionHandler или одного из классов, расширяющих его функции session_set_save_handler().

Обратите внимание, что методы этого класса предназначены для внутреннего вызова из PHP. Вызывать их из своего кода не нужно. Дополнительную информацию о работе сессии можно узнать из описания функции session_set_save_handler().

Обзор классов

SessionHandler implements SessionHandlerInterface , SessionIdInterface {
/* Методы */
public close ( void ) : bool
public create_sid ( void ) : string
public destroy ( string $session_id ) : bool
public gc ( int $maxlifetime ) : int
public open ( string $save_path , string $session_name ) : bool
public read ( string $session_id ) : string
public write ( string $session_id , string $session_data ) : bool
}
Внимание

Этот класс предназначен для расширения текущего внутреннего обработчика сессии PHP. При этом, если вам нужно написать собственный обработчик, то необходимо написать собственную реализацию интерфейса SessionHandlerInterface вместо расширения класса SessionHandler.

Список изменений

Версия | Описание
5.5.1 | Добавлено SessionHandler::create_sid().

Пример #1 Использвание SessionHandler для того, чтобы добавить шифровку данных ко внутреннему обработчику сессий PHP.

<?php

 /**
  * расшифровать данные, используя алгоритм AES 256
  *
  * @param data $edata
  * @param string $password
  * @return расшифрованные данные
  */
function decrypt($edata, $password) {
    $data = base64_decode($edata);
    $salt = substr($data, 0, 16);
    $ct = substr($data, 16);

    $rounds = 3; // зависит от длины ключа
    $data00 = $password.$salt;
    $hash = array();
    $hash[0] = hash('sha256', $data00, true);
    $result = $hash[0];
    for ($i = 1; $i < $rounds; $i++) {
        $hash[$i] = hash('sha256', $hash[$i - 1].$data00, true);
        $result .= $hash[$i];
    }
    $key = substr($result, 0, 32);
    $iv  = substr($result, 32,16);

    return openssl_decrypt($ct, 'AES-256-CBC', $key, true, $iv);
  }

/**
 * зашифровать данные алгоритмом AES 256
 *
 * @param data $data
 * @param string $password
 * @return base64 зашифрованные данные
 */
function encrypt($data, $password) {
    // Установить случайную соль
    $salt = openssl_random_pseudo_bytes(16);

    $salted = '';
    $dx = '';
    // Ключ соли (32) и вектор инициализации (16) = 48
    while (strlen($salted) < 48) {
      $dx = hash('sha256', $dx.$password.$salt, true);
      $salted .= $dx;
    }

    $key = substr($salted, 0, 32);
    $iv  = substr($salted, 32,16);

    $encrypted_data = openssl_encrypt($data, 'AES-256-CBC', $key, true, $iv);
    return base64_encode($salt . $encrypted_data);
}

class EncryptedSessionHandler extends SessionHandler
{
    private $key;

    public function __construct($key)
    {
        $this->key = $key;
    }

    public function read($id)
    {
        $data = parent::read($id);

        if (!$data) {
            return "";
        } else {
            return decrypt($data, $this->key);
        }
    }

    public function write($id, $data)
    {
        $data = encrypt($data, $this->key);

        return parent::write($id, $data);
    }
}

// Здесь мы перехватываем встроенный обработчик 'files', но можно использовать любой другой
// обработчик, например 'sqlite', 'memcache' или 'memcached',
// которые предоставлены расширениями PHP.
ini_set('session.save_handler', 'files');

$key = 'secret_string';
$handler = new EncryptedSessionHandler($key);
session_set_save_handler($handler, true);
session_start();

// устанавливаем и получаем значения из $_SESSION

Замечание:

Так как методы этого класса предназначены для внутренних вызовов из PHP, как часть нормального процесса работы сессий, вызовы родительских методов из дочернего класса (иными словами "родных" обработчиков) будет возвращать FALSE до тех пор, пока сессия не будет запущена (автоматически или прямым вызовом session_start()). Это важный момент для понимания, особенно при тестировании, где методы класса могут быть вызваны вручную.

Содержание

  • SessionHandler::close — Закрывает сессию
  • SessionHandler::create_sid — Возвращает новый идентификатор сессии
  • SessionHandler::destroy — Уничтожает сессию
  • SessionHandler::gc — Очищает старые сессии
  • SessionHandler::open — Инициализирует сессию
  • SessionHandler::read — Считывает данные сессии
  • SessionHandler::write — Записывает данные сессии


Закрывает сессию

  • « SessionHandler
  • SessionHandler::create_sid »
  • PHP Manual
  • SessionHandler
  • Закрывает сессию

SessionHandler::close

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::close — Закрывает сессию

Описание

public SessionHandler::close ( void ) : bool

Закрывает текущую сессию. Этот метод автоматически вызывается из PHP во время закрытия сессии или напрямую вызвом функции session_write_close() (которая для начала вызывает функцию SessionHandler::write()).

Этот метод является оберткой внутреннего обработчика сессий PHP, определенного в настройке ini-файла session.save_handler, которая устанавливается перед тем как обработчик активируется функцией session_set_save_handler().

Если этот класс расширяется путем наследования, то вызов родительского метода close выполнит код обертки, а следовательно код внутреннего обработчика. Это позволяет методу быть переопределенным или перехваченным.

Дополнительную информацию о том, какие действия ожидаются от этого метода см. руководство по методу SessionHandlerInterface::close().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.


Возвращает новый идентификатор сессии

  • « SessionHandler::close
  • SessionHandler::destroy »
  • PHP Manual
  • SessionHandler
  • Возвращает новый идентификатор сессии

SessionHandler::create_sid

(PHP 5 >= 5.5.1, PHP 7)

SessionHandler::create_sid — Возвращает новый идентификатор сессии

Описание

public SessionHandler::create_sid ( void ) : string

Генерирует и возвращает новый идентификатор сессии.

Возвращаемые значения

Идентификатор сессии допустимый для обработчика сессии по умолчанию.

Смотрите также

  • session_id() - Получает и/или устанавливает идентификатор текущей сессии
  • session_create_id() - Создаёт новый идентификатор сессии


Уничтожает сессию

  • « SessionHandler::create_sid
  • SessionHandler::gc »
  • PHP Manual
  • SessionHandler
  • Уничтожает сессию

SessionHandler::destroy

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::destroy — Уничтожает сессию

Описание

public SessionHandler::destroy ( string $session_id ) : bool

Уничтожает сессию. Вызвается изнутри PHP посредством функции session_regenerate_id() (подразумевается, что параметр $destroy установлен в TRUE, функции session_destroy() или когда вызов session_decode() неудачен.

Этот метод является оберткой для внутреннего обработчика PHP, определенного в настройке ini-файла session.save_handler, который устанавливается до обработчика вызовом session_set_save_handler().

Если этот класс расширяется путем наследования, то вызов родительского метода destroy выполнит код обертки, а следовательно код внутреннего обработчика. Это позволяет методу быть переопределенным, перехваченным или отфильтрованным.

Для дополнительной информации см. руководство по функции SessionHandlerInterface::destroy().

Список параметров

session_id

Идентификатор уничтожаемой сессии.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.


Очищает старые сессии

  • « SessionHandler::destroy
  • SessionHandler::open »
  • PHP Manual
  • SessionHandler
  • Очищает старые сессии

SessionHandler::gc

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::gc — Очищает старые сессии

Описание

public SessionHandler::gc ( int $maxlifetime ) : int

Очищает сессии с истекшим сроком жизни. Вызывается случайным образом изнутри PHP когда сессия стартует или когда вызвана функция session_start(). Частота, с которой она вызывается, основана на значении параметров конфигурации session.gc_divisor и session.gc_probability.

Этот метод обертывает внутренний обработчик сессии определенный в настройке ini-файла session.save_handler который устанавливается перед тем, как определяется данный обработчик в функции session_set_save_handler().

Если этот класс расширяется путем наследования, вызов родительского метода gc выполнит код обертки для этого метода, а также внутренний обработчик. Это позволит методу быть переопределенным, или перехваченным и отфильтрованным.

Для дополнительной информации о том, что ожидается от реализации этого метода см. документацию по методу SessionHandlerInterface::gc().

Список параметров

maxlifetime

Сессии, которые не были обновлены в течение последних maxlifetime секунд удаляются.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.


Инициализирует сессию

  • « SessionHandler::gc
  • SessionHandler::read »
  • PHP Manual
  • SessionHandler
  • Инициализирует сессию

SessionHandler::open

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::open — Инициализирует сессию

Описание

public SessionHandler::open ( string $save_path , string $session_name ) : bool

Создает новую сессию или повторно инициализирует существующую. Вызывается изнутри PHP когда сессия стартует автоматически или посредством вызова функции session_start().

Этот метод является оберткой для внутреннего обработчика PHP определенного в настройке ini-файла session.save_handler, который устанавливается до определения обработчика вызовом функции session_set_save_handler().

Если этот класс расширяется путем наследования, вызов родительского метода open выполнит код обертки для этого метода, а также внутренний обработчик. Это позволит методу быть переопределенным, или перехваченным и отфильтрованным.

Для дополнительной информации о том, что ожидается от реализации этого метода см. документацию по методу SessionHandlerInterface::open().

Список параметров

save_path

Путь по которому сохраняется/восстанавливается сессия.

session_name

Название сессии.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.

Смотрите также

  • Опция конфигурации session.auto-start


Считывает данные сессии

  • « SessionHandler::open
  • SessionHandler::write »
  • PHP Manual
  • SessionHandler
  • Считывает данные сессии

SessionHandler::read

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::read — Считывает данные сессии

Описание

public SessionHandler::read ( string $session_id ) : string

Считывает данные сессии из хранилища и возвращает результат обратно в PHP для внутренней обработки. Этот метод вызывается автоматически когда PHP стартует сессию (либо автоматически или напрямую вызовом session_start() с последующим вызовом SessionHandler::open().

Этот метод является оберткой внутреннего обработчика PHP, определенного в параметре ini-файла session.save_handler который устанавливается до того, как будет определен обработчик сессии вызовом session_set_save_handler().

Если этот класс расширен путем наследования, вызов родительского метода read вызовет обертку для этого метода и, соответственно, вызов внутреннего обработчика. Это позволяет методу быть перегруженным, и/или перехваченныи и отфильтрованным (например для расшифровки, значения параметра $data, которое возвращает родительский метод read).

Для дополнительной информации см. документацию по методу SessionHandlerInterface::read().

Список параметров

session_id

Идентификатор сессии, из которой необходимо считать данные.

Возвращаемые значения

Возвращает зашифрованную строку считанных данных. Если ничего не считано, то должен вернуть пустую строку. Обратите внимание, что это значение возвращается в PHP для внутренней обработки.

Смотрите также

  • Директива настройки session.serialize_handler.


Записывает данные сессии

  • « SessionHandler::read
  • SessionHandlerInterface »
  • PHP Manual
  • SessionHandler
  • Записывает данные сессии

SessionHandler::write

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::write — Записывает данные сессии

Описание

public SessionHandler::write ( string $session_id , string $session_data ) : bool

Записывает данные сессии в хранилище. Обычно вызывается при завершении скрипта, функцией session_write_close() или когда session_register_shutdown() терпит неудачу. PHP вызывает SessionHandler::close() сразу же после этого метода.

Метод является оберткой внутреннего обработчика PHP, определенного в параметре ini-файла session.save_handler который устанавливается до того, как будет определен обработчик сессии вызовом session_set_save_handler().

Если этот класс расширен путем наследования, вызов родительского метода write вызовет обертку для этого метода и, соответственно, вызов внутреннего обработчика. Это позволяет методу быть перегруженным или перехваченным и отфильтрованным (например, для шифрования значения параметра $data перед отправкой его в родительский метод write).

Для дополнительной информации смотрите документацию по методу SessionHandlerInterface::write().

Список параметров

session_id

Идентификатор сессии.

session_data

Зашифрованные данные сессии. Эти данные являются результатом того, что PHP внутренне шифрует суперглобальную переменную $_SESSION в сериализированную строку и передает ее в качестве параметра. Обратите внимание, что сессии используют альтернативный метод сериализации.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.

Смотрите также

  • Директива настройки конфигурации session.serialize_handler.


Класс SessionHandlerInterface

(PHP 5 >= 5.4.0, PHP 7)

Введение

SessionHandlerInterface - это интерфейс который определяет прототипы для создания пользовательского обработчика сессии. Для предоставления пользовательского обработчика сессии функции session_set_save_handler() используя ее объектно-ориентированную реализацию, класс должен реализовывать этот интерфейс.

Обратите внимание, что callback-методы этого класса созданы для внутренних вызовов PHP и не предназначены для вызовов из вашего кода.

Обзор классов

SessionHandlerInterface {
/* Методы */
abstract public close ( void ) : bool
abstract public destroy ( string $session_id ) : bool
abstract public gc ( int $maxlifetime ) : int
abstract public open ( string $save_path , string $session_name ) : bool
abstract public read ( string $session_id ) : string
abstract public write ( string $session_id , string $session_data ) : bool
}

Пример #1 Пример использования SessionHandlerInterface

Следующий пример реализует файловую сессию таким же образом, как это реализовано во внутреннем обработчике сессии PHP. Этот пример может быть легко расширен для обеспечения хранения сессий в предпочитаемой вами базе данных.

Обратите внимание, что мы используем объектно-ориентированные прототипы с функцией session_set_save_handler() и регистрируем функцию завершения (shutdown) используя один из параметров этой фунции. Это действие рекомендуется производить в большинстве случаев, когда объекты регистрируются в качестве обработчиков сессии.

Предостережение

Для краткости в этом примере не добавлена проверка входных данных. Обратите внимание, что параметр $id предоставляется пользователем и обязательно должен проверяться для исключения возможных атак, использующих, например, проблемы обхода пути. Так что ни в коем случае не используйте этот код в промышленной эксплуатации, не добавив соответствующие проверки.

<?php
class MySessionHandler implements SessionHandlerInterface
{
    private $savePath;

    public function open($savePath, $sessionName)
    {
        $this->savePath = $savePath;
        if (!is_dir($this->savePath)) {
            mkdir($this->savePath, 0777);
        }

        return true;
    }

    public function close()
    {
        return true;
    }

    public function read($id)
    {
        return (string)@file_get_contents("$this->savePath/sess_$id");
    }

    public function write($id, $data)
    {
        return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true;
    }

    public function destroy($id)
    {
        $file = "$this->savePath/sess_$id";
        if (file_exists($file)) {
            unlink($file);
        }

        return true;
    }

    public function gc($maxlifetime)
    {
        foreach (glob("$this->savePath/sess_*") as $file) {
            if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
                unlink($file);
            }
        }

        return true;
    }
}

$handler = new MySessionHandler();
session_set_save_handler($handler, true);
session_start();

// продолжаем работать с переменными сессии, устанавливая или читая их значение из $_SESSION

Содержание

  • SessionHandlerInterface::close — Закрывает сессию
  • SessionHandlerInterface::destroy — Уничтожает сессию
  • SessionHandlerInterface::gc — Очищает старые сессии
  • SessionHandlerInterface::open — Инициализирует сессию
  • SessionHandlerInterface::read — Читает данные сессии
  • SessionHandlerInterface::write — Записать данные сессии


Закрывает сессию

  • « SessionHandlerInterface
  • SessionHandlerInterface::destroy »
  • PHP Manual
  • SessionHandlerInterface
  • Закрывает сессию

SessionHandlerInterface::close

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::close — Закрывает сессию

Описание

abstract public SessionHandlerInterface::close ( void ) : bool

Закрывает текущую сессию. Эта функция автоматически выполняется при закрытии сессии или явно через session_write_close().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.


Уничтожает сессию

  • « SessionHandlerInterface::close
  • SessionHandlerInterface::gc »
  • PHP Manual
  • SessionHandlerInterface
  • Уничтожает сессию

SessionHandlerInterface::destroy

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::destroy — Уничтожает сессию

Описание

abstract public SessionHandlerInterface::destroy ( string $session_id ) : bool

Уничтожает сессию. Вызывается функциями session_regenerate_id() (с $destroy = TRUE), session_destroy() и при неудачном завершении функции session_decode().

Список параметров

session_id

Идентификатор сессии уничтожается.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.


Очищает старые сессии

  • « SessionHandlerInterface::destroy
  • SessionHandlerInterface::open »
  • PHP Manual
  • SessionHandlerInterface
  • Очищает старые сессии

SessionHandlerInterface::gc

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::gc — Очищает старые сессии

Описание

abstract public SessionHandlerInterface::gc ( int $maxlifetime ) : int

Очищает сессии с истекшим сроком жизни. Вызывается функцией session_start(), и основывается на опциях session.gc_divisor, session.gc_probability и session.gc_maxlifetime.

Список параметров

maxlifetime

Сессии, которые не обновлялись в течение maxlifetime секунд, будут удалены.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.


Инициализирует сессию

  • « SessionHandlerInterface::gc
  • SessionHandlerInterface::read »
  • PHP Manual
  • SessionHandlerInterface
  • Инициализирует сессию

SessionHandlerInterface::open

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::open — Инициализирует сессию

Описание

abstract public SessionHandlerInterface::open ( string $save_path , string $session_name ) : bool

Повторно инициализирует существующую сессию или создает новую. Вызывается когда сессия стартует или когда вызвана функция session_start().

Список параметров

save_path

Путь, по которому сохраняется/восстанавливается сессия.

session_name

Название сессии.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.

Смотрите также

  • session_name() - Получить или установить имя текущей сессии
  • Опция конфигурации session.auto-start


Читает данные сессии

  • « SessionHandlerInterface::open
  • SessionHandlerInterface::write »
  • PHP Manual
  • SessionHandlerInterface
  • Читает данные сессии

SessionHandlerInterface::read

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::read — Читает данные сессии

Описание

abstract public SessionHandlerInterface::read ( string $session_id ) : string

Читает данные сессии из хранилища сессий и возвращает результат. Вызывается сразу после старта сессии или когда вызвана session_start(). Обратите внимание, что перед вызовом этого метода будет вызвана функция SessionHandlerInterface::open().

Этот метод вызывается PHP когда стартует сессия. Этот метод должен получить данные сессии из хранилища по указанному её идентификатору. Строка, возвращаемая этим методом, должна иметь тот же сериализованный формат, что и исходная, которая передавалась функции SessionHandlerInterface::write(). Если запись не найдена, возвращается пустая строка.

Данные, возвращаемые этим методом, будут расшифрованы внутри PHP, используя метод десериализации, указанный в session.serialize_handler. Полученные данные будут использованы для заполнения суперглобального массива $_SESSION.

Обратите внимание, что схема сериализации данных не такая, как в функции unserialize(), и получить доступ к данным можно с помощью функции session_decode().

Список параметров

session_id

Идентификатор сессии.

Возвращаемые значения

Возвращает закодированную строку прочитанных данных. Если ничего не прочитано, возвращается пустая строка. Обратите внимание, что это значение передается для обработки внутри PHP.

Смотрите также

  • INI-директива session.serialize_handler


Записать данные сессии

  • « SessionHandlerInterface::read
  • SessionIdInterface »
  • PHP Manual
  • SessionHandlerInterface
  • Записать данные сессии

SessionHandlerInterface::write

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::write — Записать данные сессии

Описание

abstract public SessionHandlerInterface::write ( string $session_id , string $session_data ) : bool

Записывает данные сессии в хранилище сессий. Вызывается функцией session_write_close(), когда неудачно завершается функция session_register_shutdown() или во время нормального завершения работы. Внимание: SessionHandlerInterface::close() вызывается сразу же после этой функции.

PHP вызывает этот метод, когда сессия готова для сохранения и закрытия. Кодируются данные сессии из суперглобального массива $_SESSION в сериализованную строку и передаются вместе с идентификатором сессии данному методу для хранения. Используемый метод сериализации указан в опции session.serialize_handler.

Обратите внимание, что этот метод обычно вызывается PHP после закрытия буферов вывода, если явно не вызывается session_write_close().

Список параметров

session_id

Идентификатор сессии.

session_data

Закодированные данные сессии. Эти данные являются результатом внутреннего кодирования PHP суперглобального массива $_SESSION в сериализованную строку и передачи ее в качестве этого параметра. Обратите внимание, что сессии используют альтернативный метод сериализации.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.

Смотрите также

  • Директива конфигурации session.serialize_handler


Интерфейс SessionIdInterface

(PHP 5 >= 5.5.1, PHP 7)

Введение

Обзор классов

SessionIdInterface {
/* Методы */
abstract public create_sid ( void ) : string
}

Содержание

  • SessionIdInterface::create_sid — Создать идентификатор сессии


Создать идентификатор сессии

  • « SessionIdInterface
  • SessionUpdateTimestampHandlerInterface »
  • PHP Manual
  • SessionIdInterface
  • Создать идентификатор сессии

SessionIdInterface::create_sid

(PHP 5 >= 5.5.1, PHP 7)

SessionIdInterface::create_sid — Создать идентификатор сессии

Описание

abstract public SessionIdInterface::create_sid ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SessionHandler::create_sid() - Возвращает новый идентификатор сессии


  • « SessionIdInterface::create_sid
  • Session PgSQL »
  • PHP Manual
  • Сессии
  • Интерфейс SessionUpdateTimestampHandlerInterface

Интерфейс SessionUpdateTimestampHandlerInterface

(PHP 7)

Введение

Обзор классов

SessionUpdateTimestampHandlerInterface {
/* Методы */
}


Обработчик сохранения сессии PostgreSQL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Определения таблиц
  • Предопределенные константы
  • Функции Session PgSQL
    • session_pgsql_add_error — Увеличивает количество ошибок и устанавливает последнее сообщение об ошибке
    • session_pgsql_get_error — Возвращает количество ошибок и последнее сообщение об ошибке
    • session_pgsql_get_field — Получить пользовательское значение поля
    • session_pgsql_reset — Сбросить подключение к серверам баз данных сессии
    • session_pgsql_set_field — Установить пользовательское значение поля
    • session_pgsql_status — Получить текущий статус обработчика сохранения


Введение

Замечание: Для Windows-платформ это расширение недоступно.

Модуль предоставляет дополнительный обработчик сохранения сессии для модуля сессий, используя » PostgreSQL в качестве системы хранения. Также может использоваться функция хранения сессии на пользовательском уровне - session_set_save_handler(), но этот модуль написан на C и поэтому может быть в два раза быстрее по сравнению с обработчиком хренения сессии на PHP.

Session PgSQL предназначен для любых размеров сайтов и предлагает следующие дополнительные возможности:

  • таблицы сессий создаются автоматически
  • автоматическая сборка мусора (vacuum) таблицы сессии
  • лучшая сборка мусора
  • поддержка нескольких серверов PostgreSQL
  • автоматическое аварийное переключение (failover) сервера базы данных
  • автоматическая балансировка нагрузки сервера базы данных, если есть несколько серверов PostgreSQL.
  • сокращённый (short circuit) UPDATE


Требования

Требуются как минимум PHP >= 4.3.0 и PostgreSQL >=7.2.0 в качестве сервера базы данных. libpq, который поставляется с PostgreSQL 7.2.0 или новее (и файлы заголовков для сборки) и » libmm (и файлы заголовков).


Установка

Это расширение не поддерживается и считается умершим. Однако, его исходный код все еще доступен в PECL SVN вот здесь: » https://svn.php.net/viewvc/pecl/session_pgsql.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Обработчик сохранения сессии PostgreSQL все еще находится в разработке. Для получения подробностей о конфигурации обратитесь к файлу README в исходном дистрибутиве.


  • « Настройка во время выполнения
  • Определения таблиц »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Определения таблиц

Определение таблицы сессии

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);

Внимание

Если вы используете HASH для INDEX, у вас будет проблема взаимной блокировки (deadlock), когда нагрузка на сервер очень высокая. Даже если она едва ли может быть при обычной работе, она может возникнуть. Не используйте HASH для INDEX.

Вы можете изменить таблицу сессий, до тех пор пока все поля определены.

Определение таблицы переменных приложения

CREATE TABLE php_app_vars (
 app_modified       integer,
 app_name           text,
 app_vars           text
);


  • « Определения таблиц
  • Функции Session PgSQL »
  • PHP Manual
  • Session PgSQL
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции Session PgSQL

Контактная информация

На данный момент нет слишком много времени для дальнейшей разработки модуля. В ближайшем будущем я буду реализовывать все больше и больше возможностей.

Если у вас есть комментарии, исправления ошибок, улучшения или хотите помочь в этом, вы можете отправить мне электронное письмо по адресу » yohgaki@php.net. Любая помощь очень приветствуется.

Содержание

  • session_pgsql_add_error — Увеличивает количество ошибок и устанавливает последнее сообщение об ошибке
  • session_pgsql_get_error — Возвращает количество ошибок и последнее сообщение об ошибке
  • session_pgsql_get_field — Получить пользовательское значение поля
  • session_pgsql_reset — Сбросить подключение к серверам баз данных сессии
  • session_pgsql_set_field — Установить пользовательское значение поля
  • session_pgsql_status — Получить текущий статус обработчика сохранения


Увеличивает количество ошибок и устанавливает последнее сообщение об ошибке

  • « Функции Session PgSQL
  • session_pgsql_get_error »
  • PHP Manual
  • Функции Session PgSQL
  • Увеличивает количество ошибок и устанавливает последнее сообщение об ошибке

session_pgsql_add_error

(PECL session_pgsql SVN)

session_pgsql_add_error — Увеличивает количество ошибок и устанавливает последнее сообщение об ошибке

Описание

session_pgsql_add_error ( int $error_level [, string $error_message ] ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

error_level

error_message

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • session_pgsql_get_error() - Возвращает количество ошибок и последнее сообщение об ошибке


Возвращает количество ошибок и последнее сообщение об ошибке

  • « session_pgsql_add_error
  • session_pgsql_get_field »
  • PHP Manual
  • Функции Session PgSQL
  • Возвращает количество ошибок и последнее сообщение об ошибке

session_pgsql_get_error

(PECL session_pgsql SVN)

session_pgsql_get_error — Возвращает количество ошибок и последнее сообщение об ошибке

Описание

session_pgsql_get_error ([ bool $with_error_message = FALSE ] ) : array

Получить количество сообщений об ошибках и дополнительные сообщения об ошибках.

Список параметров

with_error_message

При установке значения TRUE, также для каждой ошибки будет возвращено буквенное сообщение об ошибке.

Возвращаемые значения

Количество ошибок в виде массива (array).

Смотрите также

  • session_pgsql_add_error() - Увеличивает количество ошибок и устанавливает последнее сообщение об ошибке


Получить пользовательское значение поля

  • « session_pgsql_get_error
  • session_pgsql_reset »
  • PHP Manual
  • Функции Session PgSQL
  • Получить пользовательское значение поля

session_pgsql_get_field

(PECL session_pgsql SVN)

session_pgsql_get_field — Получить пользовательское значение поля

Описание

session_pgsql_get_field ( void ) : string
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • session_pgsql_set_field() - Установить пользовательское значение поля


Сбросить подключение к серверам баз данных сессии

  • « session_pgsql_get_field
  • session_pgsql_set_field »
  • PHP Manual
  • Функции Session PgSQL
  • Сбросить подключение к серверам баз данных сессии

session_pgsql_reset

(PECL session_pgsql SVN)

session_pgsql_reset — Сбросить подключение к серверам баз данных сессии

Описание

session_pgsql_reset ( void ) : bool

Сбросить подключение к серверам баз данных сессии.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установить пользовательское значение поля

  • « session_pgsql_reset
  • session_pgsql_status »
  • PHP Manual
  • Функции Session PgSQL
  • Установить пользовательское значение поля

session_pgsql_set_field

(PECL session_pgsql SVN)

session_pgsql_set_field — Установить пользовательское значение поля

Описание

session_pgsql_set_field ( string $value ) : bool
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

value

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • session_pgsql_get_field() - Получить пользовательское значение поля


Получить текущий статус обработчика сохранения

  • « session_pgsql_set_field
  • Обработка текста »
  • PHP Manual
  • Функции Session PgSQL
  • Получить текущий статус обработчика сохранения

session_pgsql_status

(PECL session_pgsql SVN)

session_pgsql_status — Получить текущий статус обработчика сохранения

Описание

session_pgsql_status ( void ) : array
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Обработка текста

  • BBCode — Bulletin Board Code
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • BBCode Функции
  • CommonMark
    • Введение
    • Установка и настройка
    • CommonMark\Node\Document — Document наследует CommonMark\Node
    • CommonMark\Node\Heading — Heading наследует CommonMark\Node
    • CommonMark\Node\Paragraph — Paragraph наследует CommonMark\Node
    • CommonMark\Node\BlockQuote — BlockQuote наследует CommonMark\Node
    • CommonMark\Node\BulletList — BulletList наследует CommonMark\Node
    • CommonMark\Node\OrderedList — OrderedList наследует CommonMark\Node
    • CommonMark\Node\Item — Item наследует CommonMark\Node
    • CommonMark\Node\Text — Text наследует CommonMark\Node
    • CommonMark\Node\Text\Strong — Strong наследует CommonMark\Node
    • CommonMark\Node\Text\Emphasis — Emphasis наследует CommonMark\Node
    • CommonMark\Node\ThematicBreak — ThematicBreak наследует CommonMark\Node
    • CommonMark\Node\SoftBreak — SoftBreak наследует CommonMark\Node
    • CommonMark\Node\LineBreak — LineBreak наследует CommonMark\Node
    • CommonMark\Node\Code — Code наследует CommonMark\Node
    • CommonMark\Node\CodeBlock — CodeBlock наследует CommonMark\Node
    • CommonMark\Node\HTMLBlock — HTMLBlock наследует CommonMark\Node
    • CommonMark\Node\HTMLInline — HTMLInline наследует CommonMark\Node
    • CommonMark\Node\Image — Image наследует CommonMark\Node
    • CommonMark\Node\Link — Link наследует CommonMark\Node
    • CommonMark\Node\CustomBlock — CustomBlock наследует CommonMark\Node
    • CommonMark\Node\CustomInline — CustomInline наследует CommonMark\Node
    • CommonMark\Node — Абстрактный класс CommonMark\Node
    • CommonMark\Interfaces\IVisitor — Интерфейс CommonMark\Interfaces\IVisitor
    • CommonMark\Interfaces\IVisitable — Интерфейс CommonMark\Interfaces\IVisitable
    • CommonMark\Parser — Класс CommonMark\Parser
    • CommonMark\CQL — Класс CommonMark\CQL
    • Функции CommonMark
  • Parle — Parsing and lexing
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Pattern matching — Parle pattern matching
    • Примеры
    • Parle\Lexer — The Parle\Lexer class
    • Parle\RLexer — The Parle\RLexer class
    • Parle\Parser — The Parle\Parser class
    • Parle\RParser — The Parle\RParser class
    • Parle\Stack — The Parle\Stack class
    • Parle\Token — The Parle\Token class
    • Parle\ErrorInfo — The Parle\ErrorInfo class
    • Parle\LexerException — The Parle\LexerException class
    • Parle\ParserException — The Parle\ParserException class
  • PCRE — Функции для работы с регулярными выражениями (Perl-совместимые)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Регулярные выражения PCRE
    • Функции PCRE
  • Регулярные выражения POSIX — Регулярные выражения (расширенные POSIX)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции регулярных выражений POSIX
  • ssdeep — Нечеткое хеширование ssdeep
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции ssdeep
  • Строки
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции для работы со строками
    • Список изменений


Bulletin Board Code

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • BBCode Функции
    • bbcode_add_element — Добавляет элемент bbcode
    • bbcode_add_smiley — Добавляет смайлы для разбора парсером
    • bbcode_create — Создает ресурс BBCode
    • bbcode_destroy — Закрывает ресурс BBCode_container
    • bbcode_parse — Производит разбор строки в соответствии с заданным набором правил
    • bbcode_set_arg_parser — Подключает другой парсер для применения иного набора правил в качестве параметров разбора
    • bbcode_set_flags — Устанавливает или изменяет настройки парсера


Введение

Этот модуль позволяет упростить разбор текста с BBCode для преобразования его в HTML или другой язык разметки. Он использует однопроходную обработку и значительно превосходит по скорости вариант, основанный на использовании регулярных выражений. Кроме того, он позволяет получить корректный HTML за счет переупорядочивания открывающих / закрывающих тегов и автоматического закрытия незакрытых тегов.

С версии 0.10.1 поддерживается цитирование с использованием одинарных кавычек, двойных кавычек и HTML экранированных двойных кавычек.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/bbcode

Альтернативный вариант, написанный на PHP - PEAR пакет » HTML_BBCodeParser.


Типы ресурсов

Расширение BBCode использует один параметр типа resource: BBCode_Container, возвращаемый функцией bbcode_create().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

BBCODE_TYPE_NOARG (integer)
Этот тег BBCode не принимает аргументов.
BBCODE_TYPE_SINGLE (integer)
Этот тег BBCode не имеет соответствующего закрывающего тега.
BBCODE_TYPE_ARG (integer)
Этот тег BBCode требует аргумент.
BBCODE_TYPE_OPTARG (integer)
Этот тег BBCode принимает необязательный аргумент.
BBCODE_TYPE_ROOT (integer)
Этот тег BBCode является корневым тегом (уровень вложенности 0).
BBCODE_FLAGS_ARG_PARSING (integer)
Этот тег BBCode требует дополнительного разбора аргумента (аргумент также разбирается расширением BBCode). С версии 0.10.2 можно использовать другой парсер.
BBCODE_FLAGS_CDATA_NOT_ALLOWED (integer)
Этот тег BBCode не принимает содержимое (оно автоматически очищается).
BBCODE_FLAGS_SMILEYS_ON (integer) - с версии 0.10.2
Этот тег BBCode принимает смайлы.
BBCODE_FLAGS_SMILEYS_OFF (integer) - с версии 0.10.2
Этот тег BBCode не принимает смайлы.
BBCODE_FLAGS_ONE_OPEN_PER_LEVEL (integer) - с версии 0.10.2
Этот тег BBCode автоматически закрывается, если найден другой тег того-же типа на том-же уровне вложенности.
BBCODE_FLAGS_REMOVE_IF_EMPTY (integer) - с версии 0.10.2
Этот тег BBCode автоматически удаляется если у него нет содержимого, это позволяет получить облегченный HTML.
BBCODE_FLAGS_DENY_REOPEN_CHILD (integer) - с версии 0.10.3
Этот тег BBCode не позволяет заново открывать незакрытые дочерние теги, которые были автоматически закрыты.
BBCODE_ARG_DOUBLE_QUOTE (integer) - с версии 0.10.2
Это опция парсера разрешает оборачивать аргумент в двойные кавычки (")
BBCODE_ARG_SINGLE_QUOTE (integer) - с версии 0.10.2
Это опция парсера разрешает оборачивать аргумент в одинарные кавычки (')
BBCODE_ARG_HTML_QUOTE (integer) - с версии 0.10.2
Это опция парсера разрешает оборачивать аргумент в HTML-версию двойных кавычек (&quot;)
BBCODE_ARG_QUOTE_ESCAPING (integer) - с версии 1.0.2
Эта опция парсера разрешает экранировать символы оборачивания (кавычки) с помощью обратного слеша (\). Это позволяет использовать эти символы внутри тела аргумента. В этом случае символ экранирования можно ставить только перед кавычками, либо перед самим собой (\\). Если он будет обнаружен перед каким либо другим символом, то будет проигнорирован. По умолчанию экранирование не используется.
BBCODE_AUTO_CORRECT (integer) - с версии 0.10.2
Эта опция парсера меняет способ обработки ошибок разбора. С этой опцией, теги будут автоматически закрываться в порядке открытия. Теги, которые были открыты и не закрыты, будут рассматриваться, как будто у них есть закрывающий тег.
BBCODE_CORRECT_REOPEN_TAGS (integer) - с версии 0.10.2
Эта опция парсера меняет способ обработки ошибок разбора. Теги, закрытые в неправильном порядке, будут переоткрываться.
BBCODE_DISABLE_TREE_BUILD (integer) - с версии 0.10.2
Эта опция парсера запрещает разбор BBCode. может быть полезно, если нужно использовать только подстановку смайлов.
BBCODE_DEFAULT_SMILEYS_ON (integer) - с версии 0.10.2
Этот параметр парсера включает использование смайлов для тегов, в которых прямо не указанно обратного.
BBCODE_DEFAULT_SMILEYS_OFF (integer) - с версии 0.10.2
Этот параметр парсера выключает использование смайлов для тегов, в которых прямо не указанно обратного.
BBCODE_FORCE_SMILEYS_OFF (integer) - с версии 0.10.2
Эта настройка парсера полностью отключает разбор смайлов.
BBCODE_SMILEYS_CASE_INSENSITIVE (integer) - с версии 0.10.3
Использует регистронезависимый вариант обнаружения для смайлов вместо простого бинарного поиска.
BBCODE_SET_FLAGS_SET (integer) - с версии 0.10.2
Позволяет установить готовый набор флагов для парсера.
BBCODE_SET_FLAGS_ADD (integer) - с версии 0.10.2
Позволяет установить для парсера набор флагов в ON.
BBCODE_SET_FLAGS_REMOVE (integer) - с версии 0.10.2
Позволяет установить для парсера набор флагов в OFF.


BBCode Функции

Содержание

  • bbcode_add_element — Добавляет элемент bbcode
  • bbcode_add_smiley — Добавляет смайлы для разбора парсером
  • bbcode_create — Создает ресурс BBCode
  • bbcode_destroy — Закрывает ресурс BBCode_container
  • bbcode_parse — Производит разбор строки в соответствии с заданным набором правил
  • bbcode_set_arg_parser — Подключает другой парсер для применения иного набора правил в качестве параметров разбора
  • bbcode_set_flags — Устанавливает или изменяет настройки парсера


Добавляет элемент bbcode

  • « BBCode Функции
  • bbcode_add_smiley »
  • PHP Manual
  • BBCode Функции
  • Добавляет элемент bbcode

bbcode_add_element

(PECL bbcode >= 0.9.0)

bbcode_add_element — Добавляет элемент bbcode

Описание

bbcode_add_element ( resource $bbcode_container , string $tag_name , array $tag_rules ) : bool

Добавляет тег в существующий набор тегов (tag_set) BBCode_Container используя tag_rules.

Список параметров

bbcode_container

BBCode_Container (resource), возвращаемый функцией bbcode_create().

tag_name

Новый тег, добавляемый в набор тегов BBCode_Container.

tag_rules

Ассоциативный массив, содержащий правила разбора; смотрите bbcode_create() для возможных значений ключей.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Добавляет смайлы для разбора парсером

  • « bbcode_add_element
  • bbcode_create »
  • PHP Manual
  • BBCode Функции
  • Добавляет смайлы для разбора парсером

bbcode_add_smiley

(PECL bbcode >= 0.10.2)

bbcode_add_smiley — Добавляет смайлы для разбора парсером

Описание

bbcode_add_smiley ( resource $bbcode_container , string $smiley , string $replace_by ) : bool

Добавляет смайлы для разбора парсером

Список параметров

bbcode_container

BBCode_Container (resource), возвращаемый функцией bbcode_create().

smiley

Строка, которая будет заменена при совпадении.

replace_by

Строка, которая заменяет смайл при совпадении.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bbcode_add_smiley()

<?php
/*
 * Подготовка набора правил
 */
$arrayBBCode=array(
    ''=>         array('type'=>BBCODE_TYPE_ROOT,
                       'childs'=>'!i'),
    'b'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<b>',
                       'close_tag'=>'</b>'),
    'u'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<u>',
                       'close_tag'=>'</u>',
                       'flags'=>BBCODE_FLAGS_SMILEYS_OFF),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<i>',
                       'close_tag'=>'</i>',
                       'childs'=>'b'),
);
/*
 * Разбираемый текст
 */
$text=<<<EOF
[i] No parse Test [/i] :)
[b] Parsed, with smiley :( [/b]
[u] Parsed, with no smiley :D [/u]
EOF;
/*
 * Инициализация парсера
 */
$BBHandler=bbcode_create($arrayBBCode);
/*
 * Добавление правил для смайлов в парсер
 */
bbcode_add_smiley($BBHandler, ":)", "<img src=\"smiley.gif\" alt=\":)\" />");
bbcode_add_smiley($BBHandler, ":(", "<img src=\"sad.gif\" alt=\":(\" />");
bbcode_add_smiley($BBHandler, ":D", "<img src=\"happy.gif\" alt=\":D\" />");
bbcode_add_smiley($BBHandler, ":p", "<img src=\"tong.gif\" alt=\":p\" />");
bbcode_add_smiley($BBHandler, ":|", "<img src=\"special.gif\" alt=\":|\" />");
bbcode_add_smiley($BBHandler, ":6:", "<img src=\"six.gif\" alt=\":6:\" />");
/*
 * Разбор текста
 */
echo bbcode_parse($BBHandler,$text);
?>

Результат выполнения данного примера:

<i> No parse Test </i> <img src="smiley.gif" alt=":)" />
<b> Parsed, with smiley <img src="sad.gif" alt=":(" /> </b>
<u> Parsed, with no smiley :D </u>


Создает ресурс BBCode

  • « bbcode_add_smiley
  • bbcode_destroy »
  • PHP Manual
  • BBCode Функции
  • Создает ресурс BBCode

bbcode_create

(PECL bbcode >= 0.9.0)

bbcode_create — Создает ресурс BBCode

Описание

bbcode_create ([ array $bbcode_initial_tags = NULL ] ) : resource

Эта функция возвращает новый ресурс BBCode, используемый для разбора строк с BBCode.

Список параметров

bbcode_initial_tags

Ассоциативный массив, содержащий имя тега в качестве ключа и параметры, необходимые для корректного разбора BBCode, как значение. Поддерживаются следующие пары ключ/значение:

  • flags необязательный - флаг, устанавливаемый на основе констант BBCODE_FLAGS_*.
  • type обязательный - целочисленное значение, указывающее тип тега. Использует константы BBCODE_TYPE_*.
  • open_tag обязательный - HTML-строка для замены открывающего тега.
  • close_tag обязательный - HTML-строка для замены закрывающего тега.
  • default_arg необязательный - это значение используется как параметр по умолчанию, если он не задан и tag_type установлен в OPTARG.
  • content_handling необязательный - Задает callback-функцию для модификации контента. Объектно ориентированная нотация поддерживается только в версии 0.10.1. Прототип callback-функции это строка "name(string $content, string $argument)"
  • param_handling необязательный - Задает callback-функцию для модификации аргумента. Объектно-ориентированная нотация поддерживается только в версии 0.10.1. Прототип callback-функции это строка "name(string $content, string $argument)"
  • childs необязательный - Список разрешенных дочерних тегов для этого тега. Формат списка - строка, с запятыми в качестве разделителя. Если список начинается с !, это список запрещенных дочерних тегов для данного тега.
  • parent необязательный - Список разрешенных родителей для этого тега. Формат списка - строка, с запятыми в качестве разделителя.

Возвращаемые значения

Возвращает BBCode_Container

Примеры

Пример #1 Пример использования bbcode_create()

<?php
$arrayBBCode=array(
    ''=>         array('type'=>BBCODE_TYPE_ROOT,  'childs'=>'!i'),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<i>',
                    'close_tag'=>'</i>', 'childs'=>'b'),
    'url'=>      array('type'=>BBCODE_TYPE_OPTARG,
                    'open_tag'=>'<a href="{PARAM}">', 'close_tag'=>'</a>',
                    'default_arg'=>'{CONTENT}',
                    'childs'=>'b,i'),
    'img'=>      array('type'=>BBCODE_TYPE_NOARG,
                    'open_tag'=>'<img src="', 'close_tag'=>'" />',
                    'childs'=>''),
    'b'=>        array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<b>',
                    'close_tag'=>'</b>'),
);
$text=<<<EOF
[b]Bold Text[/b]
[i]Italic Text[/i]
[url]http://www.php.net/[/url]
[url=http://pecl.php.net/][b]Content Text[/b][/url]
[img]http://static.php.net/www.php.net/images/php.gif[/img]
[url=http://www.php.net/]
[img]http://static.php.net/www.php.net/images/php.gif[/img]
[/url]
EOF;
$BBHandler=bbcode_create($arrayBBCode);
echo bbcode_parse($BBHandler,$text);
?>

Результат выполнения данного примера:

<b>Bold Text</b>
[i]Italic Text[/i]
<a href="http://www.php.net/">http://www.php.net/</a>
<a href="http://pecl.php.net/"><b>Content Text</b></a>
<img src="http://static.php.net/www.php.net/images/php.gif" />
<a href="http://www.php.net/">
[img]http://static.php.net/www.php.net/images/php.gif[/img]
</a>


Закрывает ресурс BBCode_container

  • « bbcode_create
  • bbcode_parse »
  • PHP Manual
  • BBCode Функции
  • Закрывает ресурс BBCode_container

bbcode_destroy

(PECL bbcode >= 0.9.0)

bbcode_destroy — Закрывает ресурс BBCode_container

Описание

bbcode_destroy ( resource $bbcode_container ) : bool

Эта функция закрывает resource, возвращаемый функцией bbcode_create().

Список параметров

bbcode_container

BBCode_Container (resource), возвращаемый функцией bbcode_create().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Производит разбор строки в соответствии с заданным набором правил

  • « bbcode_destroy
  • bbcode_set_arg_parser »
  • PHP Manual
  • BBCode Функции
  • Производит разбор строки в соответствии с заданным набором правил

bbcode_parse

(PECL bbcode >= 0.9.0)

bbcode_parse — Производит разбор строки в соответствии с заданным набором правил

Описание

bbcode_parse ( resource $bbcode_container , string $to_parse ) : string

Эта функция производит разбор строки to_parse в соответствии с правилами в bbcode_container, возвращаемом функцией bbcode_create()

Список параметров

bbcode_container

BBCode_Container (resource), возвращаемый функцией bbcode_create().

to_parse

Строка, которую необходимо разобрать.

Возвращаемые значения

Возвращает разобранную строку, или FALSE в случае возникновения ошибки.


Подключает другой парсер для применения иного набора правил в качестве параметров разбора

  • « bbcode_parse
  • bbcode_set_flags »
  • PHP Manual
  • BBCode Функции
  • Подключает другой парсер для применения иного набора правил в качестве параметров разбора

bbcode_set_arg_parser

(PECL bbcode >= 0.10.2)

bbcode_set_arg_parser — Подключает другой парсер для применения иного набора правил в качестве параметров разбора

Описание

bbcode_set_arg_parser ( resource $bbcode_container , resource $bbcode_arg_parser ) : bool

Подключает другой парсер для bbcode_container. Этот парсер используется только для получения параметров разбора. Если эта функция не используется, парсер использует параметры по умолчанию для исходного парсера.

Список параметров

bbcode_container

Ресурс BBCode_Container, возвращаемый функцией bbcode_create().

bbcode_arg_parser

Ресурс BBCode_Container, возвращаемый функцией bbcode_create(). Используется только для получения параметров парсера

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bbcode_set_arg_parser()

<?php
/*
 * Создание набора правил bbcode для основного парсера
 */
$arrayBBCode=array(
    'quote'=>    array('type'=>BBCODE_TYPE_ARG,
                       'open_tag'=>'<quote><h4>Источник: {PARAM}</h4>',
                       'close_tag'=>'</quote>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY|BBCODE_FLAGS_ARG_PARSING),
    'b'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<b>', 'close_tag'=>'</b>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
    'u'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<u>', 'close_tag'=>'</u>',
                       'flags'=>BBCODE_FLAGS_SMILEYS_OFF | BBCODE_FLAGS_REMOVE_IF_EMPTY | BBCODE_FLAGS_SMILEYS_OFF),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<i>', 'close_tag'=>'</i>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
);
/*
 * Создание набора правил bbcode для параметров парсера
 */
$arrayBBCode_arg=array(
    'b'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<b class="sub">', 'close_tag'=>'</b>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
    'u'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<u>', 'close_tag'=>'</u>',
                       'flags'=>BBCODE_FLAGS_SMILEYS_OFF | BBCODE_FLAGS_REMOVE_IF_EMPTY | BBCODE_FLAGS_SMILEYS_OFF),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<i>', 'close_tag'=>'</i>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
);
/*
 * Текст, который нужно разобрать
 */
$text=<<<EOF
[quote="[b]Test[/b]"]
Foo :)
[/quote]
[b]Bar example :)[/b] :)
EOF;
/*
 * Инициализация двух парсеров
 */
$BBHandler=bbcode_create($arrayBBCode);
$BBArgHandler=bbcode_create($arrayBBCode_arg);
/*
 * Установка флагов для парсеров
 */
bbcode_set_flags($BBHandler,
                 BBCODE_CORRECT_REOPEN_TAGS|BBCODE_DEFAULT_SMILEYS_ON|BBCODE_ARG_DOUBLE_QUOTE|
                 BBCODE_ARG_SINGLE_QUOTE|BBCODE_ARG_HTML_QUOTE,BBCODE_SET_FLAGS_SET);
bbcode_set_flags($BBArgHandler,
                 BBCODE_CORRECT_REOPEN_TAGS|BBCODE_DEFAULT_SMILEYS_ON|BBCODE_ARG_DOUBLE_QUOTE|
                 BBCODE_ARG_SINGLE_QUOTE|BBCODE_ARG_HTML_QUOTE,BBCODE_SET_FLAGS_SET);
/*
 * Подключение $BBArgHandler как параметров парсера BBHandler
 */
bbcode_set_arg_parser($BBHandler,$BBArgHandler);
/*
 * Добавление правил для обработки смайлов в основной парсер
 */
bbcode_add_smiley($BBHandler, ":)", "<img src=\"smiley.gif\" alt=\":)\" />");
/*
 * Используем основной парсер для разбора текста
 */
echo bbcode_parse($BBHandler,$text);
?>

Результат выполнения данного примера:

<quote><h4>Источник: <b class="sub">Test</b></h4>
Foo <img src="smiley.gif" alt=":)" />
</quote>
<b>Bar example :)</b> <img src="smiley.gif" alt=":)" />


Устанавливает или изменяет настройки парсера

  • « bbcode_set_arg_parser
  • CommonMark »
  • PHP Manual
  • BBCode Функции
  • Устанавливает или изменяет настройки парсера

bbcode_set_flags

(PECL bbcode >= 0.10.2)

bbcode_set_flags — Устанавливает или изменяет настройки парсера

Описание

bbcode_set_flags ( resource $bbcode_container , int $flags [, int $mode = BBCODE_SET_FLAGS_SET ] ) : bool

Устанавливает или изменяет настройки парсера

Список параметров

bbcode_container

BBCode_Container (resource), возвращаемый функцией bbcode_create().

flags

Набор флагов, которые будут применены к настройкам bbcode_container

mode

Одна из констант BBCODE_SET_FLAGS_*, используемых для установки и снятия указанного набора флагов или замены набора флагов другим набором.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bbcode_set_flags()

<?php
/*
 * Подготовка набора правил
 */
$arrayBBCode=array(
    'b'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<b>', 'close_tag'=>'</b>'),
    'u'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<u>', 'close_tag'=>'</u>'),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<i>', 'close_tag'=>'</i>'),
);
/*
 * Парные неправильно вложенные BBCode
 */
$text="[i] Parser [b] Auto Correction [/i] at work [/b]\n";
$BBHandler=bbcode_create($arrayBBCode);
echo bbcode_parse($BBHandler,$text);
// Включение открытия автоматически закрытых элементов
bbcode_set_flags($BBHandler,BBCODE_CORRECT_REOPEN_TAGS,
                 BBCODE_SET_FLAGS_SET);
echo bbcode_parse($BBHandler,$text);

/*
 * Непарные неправильно вложенные BBCode
 */
$text="[i] Parser [b] Auto Correction [/i] at work\n";
echo bbcode_parse($BBHandler,$text);
// Включение автоматического закрытия для требующих этого тегов
bbcode_set_flags($BBHandler,
                 BBCODE_CORRECT_REOPEN_TAGS|BBCODE_AUTO_CORRECT,
                 BBCODE_SET_FLAGS_SET);
echo bbcode_parse($BBHandler,$text);
?>

Результат выполнения данного примера:

<i> Parser <b> Auto Correction </b></i> at work
<i> Parser <b> Auto Correction </b></i><b> at work </b>
<i> Parser [b] Auto Correction </i> at work
<i> Parser <b> Auto Correction </b></i><b> at work
</b>


CommonMark

  • Введение
  • Установка и настройка
    • Требования
    • Установка
  • CommonMark\Node\Document — Document наследует CommonMark\Node
  • CommonMark\Node\Heading — Heading наследует CommonMark\Node
    • CommonMark\Node\Heading::__construct — Конструктор класса Heading
  • CommonMark\Node\Paragraph — Paragraph наследует CommonMark\Node
  • CommonMark\Node\BlockQuote — BlockQuote наследует CommonMark\Node
  • CommonMark\Node\BulletList — BulletList наследует CommonMark\Node
    • CommonMark\Node\BulletList::__construct — BulletList Construction
  • CommonMark\Node\OrderedList — OrderedList наследует CommonMark\Node
    • CommonMark\Node\OrderedList::__construct — Конструктор класса OrderedList
  • CommonMark\Node\Item — Item наследует CommonMark\Node
  • CommonMark\Node\Text — Text наследует CommonMark\Node
    • CommonMark\Node\Text::__construct — Конструктор класса Text
  • CommonMark\Node\Text\Strong — Strong наследует CommonMark\Node
  • CommonMark\Node\Text\Emphasis — Emphasis наследует CommonMark\Node
  • CommonMark\Node\ThematicBreak — ThematicBreak наследует CommonMark\Node
  • CommonMark\Node\SoftBreak — SoftBreak наследует CommonMark\Node
  • CommonMark\Node\LineBreak — LineBreak наследует CommonMark\Node
  • CommonMark\Node\Code — Code наследует CommonMark\Node
  • CommonMark\Node\CodeBlock — CodeBlock наследует CommonMark\Node
    • CommonMark\Node\CodeBlock::__construct — Конструктор класса CodeBlock
  • CommonMark\Node\HTMLBlock — HTMLBlock наследует CommonMark\Node
  • CommonMark\Node\HTMLInline — HTMLInline наследует CommonMark\Node
  • CommonMark\Node\Image — Image наследует CommonMark\Node
    • CommonMark\Node\Image::__construct — Конструктор класса Image
  • CommonMark\Node\Link — Link наследует CommonMark\Node
    • CommonMark\Node\Link::__construct — Конструктор класса Link
  • CommonMark\Node\CustomBlock — CustomBlock наследует CommonMark\Node
  • CommonMark\Node\CustomInline — CustomInline наследует CommonMark\Node
  • CommonMark\Node — Абстрактный класс CommonMark\Node
    • CommonMark\Node::appendChild — Манипуляции с AST (Абстрактное синтаксическое дерево)
    • CommonMark\Node::prependChild — Манипуляции с AST (Абстрактное синтаксическое дерево)
    • CommonMark\Node::insertAfter — Манипуляции с AST (Абстрактное синтаксическое дерево)
    • CommonMark\Node::insertBefore — Манипуляции с AST (Абстрактное синтаксическое дерево)
    • CommonMark\Node::replace — Манипуляции с AST (Абстрактное синтаксическое дерево)
    • CommonMark\Node::unlink — Манипуляции с AST (Абстрактное синтаксическое дерево)
    • CommonMark\Node::accept — Visitation
  • CommonMark\Interfaces\IVisitor — Интерфейс CommonMark\Interfaces\IVisitor
    • CommonMark\Interfaces\IVisitor::enter — Visitation
    • CommonMark\Interfaces\IVisitor::leave — Visitation
  • CommonMark\Interfaces\IVisitable — Интерфейс CommonMark\Interfaces\IVisitable
    • CommonMark\Interfaces\IVisitable::accept — Visitation
  • CommonMark\Parser — Класс CommonMark\Parser
    • CommonMark\Parser::__construct — Разбор
    • CommonMark\Parser::parse — Разбор
    • CommonMark\Parser::finish — Разбор
  • CommonMark\CQL — Класс CommonMark\CQL
    • CommonMark\CQL::__construct — Конструктор класса CQL
    • CommonMark\CQL::__invoke — Выполнение CQL
  • Функции CommonMark
    • CommonMark\Parse — Разбор
    • CommonMark\Render — Отображение
    • CommonMark\Render\HTML — Отображение
    • CommonMark\Render\Latex — Отображение
    • CommonMark\Render\Man — Отображение
    • CommonMark\Render\XML — Отображение


Введение

Модуль предоставляет доступ к эталонной реализации CommonMark, рационализированной версии синтаксиса Markdown со спецификацией.

Разбор:

Модуль CommonMark предоставляет простой API синтаксического анализа:

CommonMark\Parse ( string $content [, int $options ] ) : CommonMark\Node

Отображение:

Модуль CommonMark предоставляет простой API отображения, который поддерживает несколько форматов:

CommonMark\Render ( CommonMark\Node $node [, int $options [, int $width ]] ) : string
CommonMark\Render\HTML ( CommonMark\Node $node [, int $options ] ) : string
CommonMark\Render\XML ( CommonMark\Node $node [, int $options ] ) : string
CommonMark\Render\Man ( CommonMark\Node $node [, int $options [, int $width ]] ) : string
CommonMark\Render\Latex ( CommonMark\Node $node [, int $options [, int $width ]] ) : string

AST:

Модуль CommonMark реализует перемещение для объектов CommonMark\Node:

public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void

CQL:

Модуль CommonMark предоставляет интерфейс для CQL, CommonMark Query Language:

public CommonMark\CQL::__construct ( string $query )


  • « Введение
  • Требования »
  • PHP Manual
  • CommonMark
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Для модуля CommonMark требуется ссылочная реализация (C) » cmark.


Установка

Релизы модуля CommonMark размещаются в PECL, а источник - на » github, самый простой путь для установки - с помощью PECL: » https://pecl.php.net/package/cmark.

Пользователи Windows могут загрузить готовые двоичные файлы релизов с веб-сайта » PECL.

Предостережение

Пользователи Windows должны сделать дополнительный шаг, добавив cmark.dll (распространяется вместе с релизами Windows) в свой PATH.


Document наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\Document extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


Heading наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\Heading extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Свойства */
public int $level ;
/* Конструктор */
public __construct ( void )
public __construct ( int $level )
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Содержание

  • CommonMark\Node\Heading::__construct — Конструктор класса Heading


Конструктор класса Heading

  • « CommonMark\Node\Heading
  • CommonMark\Node\Paragraph »
  • PHP Manual
  • CommonMark\Node\Heading
  • Конструктор класса Heading

CommonMark\Node\Heading::__construct

(cmark >= 1.0.0)

CommonMark\Node\Heading::__construct — Конструктор класса Heading

Описание

public CommonMark\Node\Heading::__construct ( void )
public CommonMark\Node\Heading::__construct ( int $level )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.


Paragraph наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\Paragraph extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


BlockQuote наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\BlockQuote extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


BulletList наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\BulletList extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Свойства */
public bool $tight ;
public int $delimiter ;
/* Конструктор */
public __construct ( void )
public __construct ( int $tight )
public __construct ( int $tight , int $delimiter )
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Содержание

  • CommonMark\Node\BulletList::__construct — BulletList Construction


BulletList Construction

  • « CommonMark\Node\BulletList
  • CommonMark\Node\OrderedList »
  • PHP Manual
  • CommonMark\Node\BulletList
  • BulletList Construction

CommonMark\Node\BulletList::__construct

(cmark >= 1.0.0)

CommonMark\Node\BulletList::__construct — BulletList Construction

Описание

public CommonMark\Node\BulletList::__construct ( void )
public CommonMark\Node\BulletList::__construct ( int $tight )
public CommonMark\Node\BulletList::__construct ( int $tight , int $delimiter )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.


OrderedList наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\OrderedList extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Свойства */
public bool $tight ;
public int $delimiter ;
public int $start ;
/* Конструктор */
public __construct ( void )
public __construct ( int $tight )
public __construct ( int $tight , int $delimiter )
public __construct ( int $tight , int $delimiter , int $start )
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Содержание

  • CommonMark\Node\OrderedList::__construct — Конструктор класса OrderedList


Конструктор класса OrderedList

  • « CommonMark\Node\OrderedList
  • CommonMark\Node\Item »
  • PHP Manual
  • CommonMark\Node\OrderedList
  • Конструктор класса OrderedList

CommonMark\Node\OrderedList::__construct

(cmark >= 1.0.0)

CommonMark\Node\OrderedList::__construct — Конструктор класса OrderedList

Описание

public CommonMark\Node\OrderedList::__construct ( void )
public CommonMark\Node\OrderedList::__construct ( int $tight )
public CommonMark\Node\OrderedList::__construct ( int $tight , int $delimiter )
public CommonMark\Node\OrderedList::__construct ( int $tight , int $delimiter , int $start )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

tight

delimiter

start


Item наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\Item extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


Text наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\Text extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Свойства */
public ?string $literal ;
/* Конструктор */
public __construct ( void )
public __construct ( string $literal )
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Содержание

  • CommonMark\Node\Text::__construct — Конструктор класса Text


Конструктор класса Text

  • « CommonMark\Node\Text
  • CommonMark\Node\Text\Strong »
  • PHP Manual
  • CommonMark\Node\Text
  • Конструктор класса Text

CommonMark\Node\Text::__construct

(cmark >= 1.0.0)

CommonMark\Node\Text::__construct — Конструктор класса Text

Описание

public CommonMark\Node\Text::__construct ( void )
public CommonMark\Node\Text::__construct ( string $literal )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

literal


Strong наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\Text\Strong extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


Emphasis наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\Text\Emphasis extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


ThematicBreak наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\ThematicBreak extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


SoftBreak наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\SoftBreak extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


LineBreak наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\LineBreak extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


Code наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\Code extends CommonMark\Node\Text implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
public ?string $literal ;
/* Конструктор */
public CommonMark\Node\Text::__construct ( void )
public CommonMark\Node\Text::__construct ( string $literal )
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


CodeBlock наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\CodeBlock extends CommonMark\Node\Text implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
public ?string $literal ;
/* Свойства */
public ?string $fence ;
/* Конструктор */
public CommonMark\Node\Text::__construct ( void )
public CommonMark\Node\Text::__construct ( string $literal )
public __construct ( string $fence , string $literal )
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Содержание

  • CommonMark\Node\CodeBlock::__construct — Конструктор класса CodeBlock


Конструктор класса CodeBlock

  • « CommonMark\Node\CodeBlock
  • CommonMark\Node\HTMLBlock »
  • PHP Manual
  • CommonMark\Node\CodeBlock
  • Конструктор класса CodeBlock

CommonMark\Node\CodeBlock::__construct

(cmark >= 1.0.0)

CommonMark\Node\CodeBlock::__construct — Конструктор класса CodeBlock

Описание

public CommonMark\Node\CodeBlock::__construct ( string $fence , string $literal )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

fence

literal


HTMLBlock наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\HTMLBlock extends CommonMark\Node\Text implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
public ?string $literal ;
/* Конструктор */
public CommonMark\Node\Text::__construct ( void )
public CommonMark\Node\Text::__construct ( string $literal )
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


HTMLInline наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\HTMLInline extends CommonMark\Node\Text implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
public ?string $literal ;
/* Конструктор */
public CommonMark\Node\Text::__construct ( void )
public CommonMark\Node\Text::__construct ( string $literal )
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


Image наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\Image extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Свойства */
public ?string $url ;
public ?string $title ;
/* Конструктор */
public __construct ( void )
public __construct ( string $url )
public __construct ( string $url , string $title )
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Содержание

  • CommonMark\Node\Image::__construct — Конструктор класса Image


Конструктор класса Image

  • « CommonMark\Node\Image
  • CommonMark\Node\Link »
  • PHP Manual
  • CommonMark\Node\Image
  • Конструктор класса Image

CommonMark\Node\Image::__construct

(cmark >= 1.0.0)

CommonMark\Node\Image::__construct — Конструктор класса Image

Описание

public CommonMark\Node\Image::__construct ( void )
public CommonMark\Node\Image::__construct ( string $url )
public CommonMark\Node\Image::__construct ( string $url , string $title )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

url

title


Link наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\Link extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Свойства */
public ?string $url ;
public ?string $title ;
/* Конструктор */
public __construct ( void )
public __construct ( string $url )
public __construct ( string $url , string $title )
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Содержание

  • CommonMark\Node\Link::__construct — Конструктор класса Link


Конструктор класса Link

  • « CommonMark\Node\Link
  • CommonMark\Node\CustomBlock »
  • PHP Manual
  • CommonMark\Node\Link
  • Конструктор класса Link

CommonMark\Node\Link::__construct

(cmark >= 1.0.0)

CommonMark\Node\Link::__construct — Конструктор класса Link

Описание

public CommonMark\Node\Link::__construct ( void )
public CommonMark\Node\Link::__construct ( string $url )
public CommonMark\Node\Link::__construct ( string $url , string $title )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

url

title


CustomBlock наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\CustomBlock extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Свойства */
public ?string $onEnter ;
public ?string $onLeave ;
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


CustomInline наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final CommonMark\Node\CustomInline extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Наследуемые свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Свойства */
public ?string $onEnter ;
public ?string $onLeave ;
/* Наследуемые методы */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( void ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


Абстрактный класс CommonMark\Node

(cmark >= 1.0.0)

Введение

Представляет абстрактный узел, не предназначенный для непосредственного использования программистом.

Обзор классов

final abstract CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Свойства */
public readonly ?Node $parent ;
public readonly ?Node $previous ;
public readonly ?Node $next ;
public readonly ?Node $lastChild ;
public readonly ?Node $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Методы */
public appendChild ( CommonMark\Node $child ) : CommonMark\Node
public prependChild ( CommonMark\Node $child ) : CommonMark\Node
public insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public replace ( CommonMark\Node $target ) : CommonMark\Node
public unlink ( void ) : void
public accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Содержание

  • CommonMark\Node::appendChild — Манипуляции с AST (Абстрактное синтаксическое дерево)
  • CommonMark\Node::prependChild — Манипуляции с AST (Абстрактное синтаксическое дерево)
  • CommonMark\Node::insertAfter — Манипуляции с AST (Абстрактное синтаксическое дерево)
  • CommonMark\Node::insertBefore — Манипуляции с AST (Абстрактное синтаксическое дерево)
  • CommonMark\Node::replace — Манипуляции с AST (Абстрактное синтаксическое дерево)
  • CommonMark\Node::unlink — Манипуляции с AST (Абстрактное синтаксическое дерево)
  • CommonMark\Node::accept — Visitation


Манипуляции с AST (Абстрактное синтаксическое дерево)

  • « CommonMark\Node
  • CommonMark\Node::prependChild »
  • PHP Manual
  • CommonMark\Node
  • Манипуляции с AST (Абстрактное синтаксическое дерево)

CommonMark\Node::appendChild

(cmark >= 1.0.0)

CommonMark\Node::appendChild — Манипуляции с AST (Абстрактное синтаксическое дерево)

Описание

public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

child

Возвращаемые значения


Манипуляции с AST (Абстрактное синтаксическое дерево)

  • « CommonMark\Node::appendChild
  • CommonMark\Node::insertAfter »
  • PHP Manual
  • CommonMark\Node
  • Манипуляции с AST (Абстрактное синтаксическое дерево)

CommonMark\Node::prependChild

(cmark >= 1.0.0)

CommonMark\Node::prependChild — Манипуляции с AST (Абстрактное синтаксическое дерево)

Описание

public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

child

Возвращаемые значения


Манипуляции с AST (Абстрактное синтаксическое дерево)

  • « CommonMark\Node::prependChild
  • CommonMark\Node::insertBefore »
  • PHP Manual
  • CommonMark\Node
  • Манипуляции с AST (Абстрактное синтаксическое дерево)

CommonMark\Node::insertAfter

(cmark >= 1.0.0)

CommonMark\Node::insertAfter — Манипуляции с AST (Абстрактное синтаксическое дерево)

Описание

public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

sibling

Возвращаемые значения


Манипуляции с AST (Абстрактное синтаксическое дерево)

  • « CommonMark\Node::insertAfter
  • CommonMark\Node::replace »
  • PHP Manual
  • CommonMark\Node
  • Манипуляции с AST (Абстрактное синтаксическое дерево)

CommonMark\Node::insertBefore

(cmark >= 1.0.0)

CommonMark\Node::insertBefore — Манипуляции с AST (Абстрактное синтаксическое дерево)

Описание

public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

sibling

Возвращаемые значения


Манипуляции с AST (Абстрактное синтаксическое дерево)

  • « CommonMark\Node::insertBefore
  • CommonMark\Node::unlink »
  • PHP Manual
  • CommonMark\Node
  • Манипуляции с AST (Абстрактное синтаксическое дерево)

CommonMark\Node::replace

(cmark >= 1.0.0)

CommonMark\Node::replace — Манипуляции с AST (Абстрактное синтаксическое дерево)

Описание

public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

target

Возвращаемые значения


Манипуляции с AST (Абстрактное синтаксическое дерево)

  • « CommonMark\Node::replace
  • CommonMark\Node::accept »
  • PHP Manual
  • CommonMark\Node
  • Манипуляции с AST (Абстрактное синтаксическое дерево)

CommonMark\Node::unlink

(cmark >= 1.0.0)

CommonMark\Node::unlink — Манипуляции с AST (Абстрактное синтаксическое дерево)

Описание

public CommonMark\Node::unlink ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Visitation

  • « CommonMark\Node::unlink
  • CommonMark\Interfaces\IVisitor »
  • PHP Manual
  • CommonMark\Node
  • Visitation

CommonMark\Node::accept

(cmark >= 1.0.0)

CommonMark\Node::accept — Visitation

Описание

public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void

Список параметров

visitor

Объект, реализующий CommonMark\Interfaces\IVisitor

Смотрите также

  • CommonMark\Interfaces\IVisitor::enter
  • CommonMark\Interfaces\IVisitor::leave


Интерфейс CommonMark\Interfaces\IVisitor

(cmark >= 1.0.0)

Введение

Обзор классов

final CommonMark\Interfaces\IVisitor {
/* Константы */
const integer Done ;
const integer Enter ;
const integer Leave ;
/* Методы */
abstract public enter ( IVisitable $visitable ) : ?int|IVisitable
abstract public leave ( IVisitable $visitable ) : ?int|IVisitable
}

Содержание

  • CommonMark\Interfaces\IVisitor::enter — Visitation
  • CommonMark\Interfaces\IVisitor::leave — Visitation


Visitation

  • « CommonMark\Interfaces\IVisitor
  • CommonMark\Interfaces\IVisitor::leave »
  • PHP Manual
  • CommonMark\Interfaces\IVisitor
  • Visitation

CommonMark\Interfaces\IVisitor::enter

(cmark >= 1.0.0)

CommonMark\Interfaces\IVisitor::enter — Visitation

Описание

abstract public CommonMark\Interfaces\IVisitor::enter ( IVisitable $visitable ) : ?int|IVisitable

Список параметров

visitable

The current CommonMark\Interfaces\IVisitable being entered

Возвращаемые значения

Returning CommonMark\Interfaces\IVisitor::Done will cause the backing iterator to exit.

Returning CommonMark\Interfaces\IVisitor::Enter will reset the backing iterator at entering the current IVisitable

Returning CommonMark\Interfaces\IVisitor::Leave will reset the backing iterator at exiting the current IVisitable

Returning an IVisitable will reset the backing iterator at entering the given IVisitable

Returning nothing will allow the backing iterator to continue

Смотрите также

  • CommonMark\Interfaces\IVisitable::accept


Visitation

  • « CommonMark\Interfaces\IVisitor::enter
  • CommonMark\Interfaces\IVisitable »
  • PHP Manual
  • CommonMark\Interfaces\IVisitor
  • Visitation

CommonMark\Interfaces\IVisitor::leave

(cmark >= 1.0.0)

CommonMark\Interfaces\IVisitor::leave — Visitation

Описание

abstract public CommonMark\Interfaces\IVisitor::leave ( IVisitable $visitable ) : ?int|IVisitable

Список параметров

visitable

The current CommonMark\Interfaces\IVisitable being exited

Возвращаемые значения

Returning CommonMark\Interfaces\IVisitor::Done will cause the backing iterator to exit.

Returning CommonMark\Interfaces\IVisitor::Enter will reset the backing iterator at entering the current IVisitable

Returning CommonMark\Interfaces\IVisitor::Leave will reset the backing iterator at exiting the current IVisitable

Returning an IVisitable will reset the backing iterator at exiting the given IVisitable

Returning nothing will allow the backing iterator to continue

Смотрите также

  • CommonMark\Interfaces\IVisitable::accept


Интерфейс CommonMark\Interfaces\IVisitable

(cmark >= 1.0.0)

Введение

Обзор классов

final CommonMark\Interfaces\IVisitable {
abstract public accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Содержание

  • CommonMark\Interfaces\IVisitable::accept — Visitation


Visitation

  • « CommonMark\Interfaces\IVisitable
  • CommonMark\Parser »
  • PHP Manual
  • CommonMark\Interfaces\IVisitable
  • Visitation

CommonMark\Interfaces\IVisitable::accept

(cmark >= 1.0.0)

CommonMark\Interfaces\IVisitable::accept — Visitation

Описание

abstract public CommonMark\Interfaces\IVisitable::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void

Список параметров

visitor

Объект, реализующий CommonMark\Interfaces\IVisitor

Смотрите также

  • CommonMark\Interfaces\IVisitor::enter
  • CommonMark\Interfaces\IVisitor::leave


Класс CommonMark\Parser

(cmark >= 1.0.0)

Введение

Предоставляет инкрементный синтаксический анализатор в качестве альтернативы простой функции API синтаксического анализа

Обзор классов

final CommonMark\Parser {
/* Конструктор */
public __construct ([ int $options ] )
/* Методы */
public parse ( string $buffer ) : void
public finish ( void ) : CommonMark\Node
}

Содержание

  • CommonMark\Parser::__construct — Разбор
  • CommonMark\Parser::parse — Разбор
  • CommonMark\Parser::finish — Разбор


Разбор

  • « CommonMark\Parser
  • CommonMark\Parser::parse »
  • PHP Manual
  • CommonMark\Parser
  • Разбор

CommonMark\Parser::__construct

(cmark >= 1.0.0)

CommonMark\Parser::__construct — Разбор

Описание

public CommonMark\Parser::__construct ([ int $options ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Маска из:

CommonMark\Parser\Normal (integer)
CommonMark\Parser\Normalize (integer)
CommonMark\Parser\ValidateUTF8 (integer)
CommonMark\Parser\Smart (integer)


Разбор

  • « CommonMark\Parser::__construct
  • CommonMark\Parser::finish »
  • PHP Manual
  • CommonMark\Parser
  • Разбор

CommonMark\Parser::parse

(cmark >= 1.0.0)

CommonMark\Parser::parse — Разбор

Описание

public CommonMark\Parser::parse ( string $buffer ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

buffer

Возвращаемые значения


Разбор

  • « CommonMark\Parser::parse
  • CommonMark\CQL »
  • PHP Manual
  • CommonMark\Parser
  • Разбор

CommonMark\Parser::finish

(cmark >= 1.0.0)

CommonMark\Parser::finish — Разбор

Описание

public CommonMark\Parser::finish ( void ) : CommonMark\Node

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс CommonMark\CQL

(cmark >= 1.1.0)

Введение

CommonMark Query Language - это DSL для описания того, как проходить через дерево узлов CommonMark, реализованное в виде синтаксического анализатора и компилятора для небольшого набора инструкций, и виртуальной машины для выполнения этих инструкций.

Пути:

В наиболее упрощенной форме запрос CQL объединяет следующие пути и /, чтобы описать, как перемещаться по дереву:

  • firstChild
  • lastChild
  • previous
  • next
  • parent
Например, /firstChild/lastChild будет перемещаться к последнему дочернему узлу первого дочернего узла.

Циклы

В CQL может быть задан цикл, например, через дочерние элементы или дочерние элементы к определенному узлу с использованием пути children или siblings. Например, /firstChild/children будет перемещаться по всем дочерним элементам первого дочернего узла.

Подзапросы

CQL можно проинструктировать, как перемещаться, используя подзапрос, такой как [/firstChild]. Например, /firstChild/children[/firstChild] перейдет к первому дочернему узлу всех дочерних узлов первого дочернего узла.

Ограничения циклов

Во время цикла CQL может быть проинструктирован ограничивать пройденный путь до узлов определенного типа. Например, /children(BlockQuote) будет перемещаться к дочерним элементам узла, где типом является BlockQuote. Следующие типы распознаются (без учета регистра):

  • BlockQuote
  • List
  • Item
  • CodeBlock
  • HtmlBlock
  • CustomBlock
  • Paragraph
  • Heading
  • ThematicBreak
  • Text
  • SoftBreak
  • LineBreak
  • Code
  • HtmlInline
  • CustomInline
  • Emphasis
  • Strong
  • Link
  • Image
Типы могут использоваться как объединение, например, /children(BlockQuote|List) будет перемещаться к дочерним элементам узла, где типом является BlockQuote или List. Типы или объединения типов, также могут быть отменены. Например, /children(~BlockQuote) будет перемещаться к дочерним элементам узла, где тип не является BlockQuote, а /children(~BlockQuote|Paragraph) будет перемещаться к дочерним узлам, где тип не является BlockQuote или Paragraph.

Ограничения путей

CQL можно поручить создать цикл для перемещения к узлу определенного типа по определенному пути. Например, /firstChild(BlockQuote) перейдет к первому дочернему узлу с типом BlockQuote. Обратите внимание, что как и другие циклы, для children и siblings, этот тип пути может сопровождаться только подзапросом.

Замечания по реализации

Хотя CQL реализован как часть модуля PHP CommonMark, он стоит отдельно от PHP и не использует виртуальную машину PHP или внутреннее представление значений.

Обзор классов

CommonMark\CQL {
/* Конструктор */
public __construct ( string $query )
/* Методы */
public __invoke ( \CommonMark\Node $root , callable $handler )
}

Содержание

  • CommonMark\CQL::__construct — Конструктор класса CQL
  • CommonMark\CQL::__invoke — Выполнение CQL


Конструктор класса CQL

  • « CommonMark\CQL
  • CommonMark\CQL::__invoke »
  • PHP Manual
  • CommonMark\CQL
  • Конструктор класса CQL

CommonMark\CQL::__construct

(cmark >= 1.1.0)

CommonMark\CQL::__construct — Конструктор класса CQL

Описание

public CommonMark\CQL::__construct ( string $query )

Список параметров

query

Строка CQL


Выполнение CQL

  • « CommonMark\CQL::__construct
  • Функции CommonMark »
  • PHP Manual
  • CommonMark\CQL
  • Выполнение CQL

CommonMark\CQL::__invoke

(cmark >= 1.1.0)

CommonMark\CQL::__invoke — Выполнение CQL

Описание

public CommonMark\CQL::__invoke ( \CommonMark\Node $root , callable $handler )

Должен вызывать текущую функцию CQL в указанном root, выполняя указанный handler при входе в \CommonMark\Node.

Список параметров

root

корневой узел дерева

handler

должен иметь прототип:

handler ( \CommonMark\Node $root , \CommonMark\Node $entering ) : ?bool
  • Если handler ничего не возвращает (void) или возвращает null, CQL продолжит выполнение
  • Если обработчик вернет истинное значение, CQL продолжит выполнение
  • Если обработчик возвращает ложное значение, CQL прекратит выполнение


Функции CommonMark

Содержание

  • CommonMark\Parse — Разбор
  • CommonMark\Render — Отображение
  • CommonMark\Render\HTML — Отображение
  • CommonMark\Render\Latex — Отображение
  • CommonMark\Render\Man — Отображение
  • CommonMark\Render\XML — Отображение


Разбор

  • « Функции CommonMark
  • CommonMark\Render »
  • PHP Manual
  • Функции CommonMark
  • Разбор

CommonMark\Parse

(cmark >= 1.0.0)

CommonMark\Parse — Разбор

Описание

CommonMark\Parse ( string $content [, int $options ] ) : CommonMark\Node

Разбирает content

Список параметров

content

Строка markdown

options

Маска из:

CommonMark\Parser\Normal (integer)
CommonMark\Parser\Normalize (integer)
CommonMark\Parser\ValidateUTF8 (integer)
CommonMark\Parser\Smart (integer)

Возвращаемые значения

Вернет корневой (root) узел CommonMark\Node


Отображение

  • « CommonMark\Parse
  • CommonMark\Render\HTML »
  • PHP Manual
  • Функции CommonMark
  • Отображение

CommonMark\Render

(cmark >= 1.0.0)

CommonMark\Render — Отображение

Описание

CommonMark\Render ( CommonMark\Node $node [, int $options [, int $width ]] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

node

options

Маска из:

CommonMark\Render\Normal (integer)
CommonMark\Render\SourcePos (integer)
CommonMark\Render\HardBreaks (integer)
CommonMark\Render\Safe (integer)
CommonMark\Render\NoBreaks (integer)
width

Возвращаемые значения


Отображение

  • « CommonMark\Render
  • CommonMark\Render\Latex »
  • PHP Manual
  • Функции CommonMark
  • Отображение

CommonMark\Render\HTML

(cmark >= 1.0.0)

CommonMark\Render\HTML — Отображение

Описание

CommonMark\Render\HTML ( CommonMark\Node $node [, int $options ] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

node

options

Маска из:

CommonMark\Render\Normal (integer)
CommonMark\Render\SourcePos (integer)
CommonMark\Render\HardBreaks (integer)
CommonMark\Render\Safe (integer)
CommonMark\Render\NoBreaks (integer)

Возвращаемые значения


Отображение

  • « CommonMark\Render\HTML
  • CommonMark\Render\Man »
  • PHP Manual
  • Функции CommonMark
  • Отображение

CommonMark\Render\Latex

(cmark >= 1.0.0)

CommonMark\Render\Latex — Отображение

Описание

CommonMark\Render\Latex ( CommonMark\Node $node [, int $options [, int $width ]] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

node

options

Маска из:

CommonMark\Render\Normal (integer)
CommonMark\Render\SourcePos (integer)
CommonMark\Render\HardBreaks (integer)
CommonMark\Render\Safe (integer)
CommonMark\Render\NoBreaks (integer)
width

Возвращаемые значения


Отображение

  • « CommonMark\Render\Latex
  • CommonMark\Render\XML »
  • PHP Manual
  • Функции CommonMark
  • Отображение

CommonMark\Render\Man

(cmark >= 1.0.0)

CommonMark\Render\Man — Отображение

Описание

CommonMark\Render\Man ( CommonMark\Node $node [, int $options [, int $width ]] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

node

options

Маска из:

CommonMark\Render\Normal (integer)
CommonMark\Render\SourcePos (integer)
CommonMark\Render\HardBreaks (integer)
CommonMark\Render\Safe (integer)
CommonMark\Render\NoBreaks (integer)
width

Возвращаемые значения


Отображение

  • « CommonMark\Render\Man
  • Parle »
  • PHP Manual
  • Функции CommonMark
  • Отображение

CommonMark\Render\XML

(cmark >= 1.0.0)

CommonMark\Render\XML — Отображение

Описание

CommonMark\Render\XML ( CommonMark\Node $node [, int $options ] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

node

options

Маска из:

CommonMark\Render\Normal (integer)
CommonMark\Render\SourcePos (integer)
CommonMark\Render\HardBreaks (integer)
CommonMark\Render\Safe (integer)
CommonMark\Render\NoBreaks (integer)

Возвращаемые значения


Parsing and lexing

  • Введение
  • Установка и настройка
    • Требования
    • Установка
  • Предопределенные константы
  • Pattern matching — Parle pattern matching
    • Character representations
    • Character classes
    • Unicode character classes
    • Alternation and repetition
    • Anchors
    • Grouping
  • Примеры
    • Lexer examples
    • Parser examples
  • Parle\Lexer — The Parle\Lexer class
    • Parle\Lexer::advance — Process next lexer rule
    • Parle\Lexer::build — Finalize the lexer rule set
    • Parle\Lexer::callout — Define token callback
    • Parle\Lexer::consume — Pass the data for processing
    • Parle\Lexer::dump — Dump the state machine
    • Parle\Lexer::getToken — Retrieve the current token
    • Parle\Lexer::insertMacro — Insert regex macro
    • Parle\Lexer::push — Add a lexer rule
    • Parle\Lexer::reset — Reset lexer
  • Parle\RLexer — The Parle\RLexer class
    • Parle\RLexer::advance — Process next lexer rule
    • Parle\RLexer::build — Finalize the lexer rule set
    • Parle\RLexer::callout — Define token callback
    • Parle\RLexer::consume — Pass the data for processing
    • Parle\RLexer::dump — Dump the state machine
    • Parle\RLexer::getToken — Retrieve the current token
    • Parle\RLexer::insertMacro — Insert regex macro
    • Parle\RLexer::push — Add a lexer rule
    • Parle\RLexer::pushState — Push a new start state
    • Parle\RLexer::reset — Reset lexer
  • Parle\Parser — The Parle\Parser class
    • Parle\Parser::advance — Process next parser rule
    • Parle\Parser::build — Finalize the grammar rules
    • Parle\Parser::consume — Consume the data for processing
    • Parle\Parser::dump — Dump the grammar
    • Parle\Parser::errorInfo — Retrieve the error information
    • Parle\Parser::left — Declare a token with left-associativity
    • Parle\Parser::nonassoc — Declare a token with no associativity
    • Parle\Parser::precedence — Declare a precedence rule
    • Parle\Parser::push — Add a grammar rule
    • Parle\Parser::reset — Reset parser state
    • Parle\Parser::right — Declare a token with right-associativity
    • Parle\Parser::sigil — Retrieve a matching part of a rule
    • Parle\Parser::token — Declare a token
    • Parle\Parser::tokenId — Get token id
    • Parle\Parser::trace — Trace the parser operation
    • Parle\Parser::validate — Validate input
  • Parle\RParser — The Parle\RParser class
    • Parle\RParser::advance — Process next parser rule
    • Parle\RParser::build — Finalize the grammar rules
    • Parle\RParser::consume — Consume the data for processing
    • Parle\RParser::dump — Dump the grammar
    • Parle\RParser::errorInfo — Retrieve the error information
    • Parle\RParser::left — Declare a token with left-associativity
    • Parle\RParser::nonassoc — Declare a token with no associativity
    • Parle\RParser::precedence — Declare a precedence rule
    • Parle\RParser::push — Add a grammar rule
    • Parle\RParser::reset — Reset parser state
    • Parle\RParser::right — Declare a token with right-associativity
    • Parle\RParser::sigil — Retrieve a matching part of a rule
    • Parle\RParser::token — Declare a token
    • Parle\RParser::tokenId — Get token id
    • Parle\RParser::trace — Trace the parser operation
    • Parle\RParser::validate — Validate input
  • Parle\Stack — The Parle\Stack class
    • Parle\Stack::pop — Pop an item from the stack
    • Parle\Stack::push — Push an item into the stack
  • Parle\Token — The Parle\Token class
  • Parle\ErrorInfo — The Parle\ErrorInfo class
  • Parle\LexerException — The Parle\LexerException class
  • Parle\ParserException — The Parle\ParserException class


Введение

The parle extension provides general purpose lexing and parsing facilities. The implementation is based on » Ben Hanson's libraries and requires a » C++14 capable compiler. The lexer is based on the regex matching, the parser is LALR(1). Lexers and parsers are generated on the fly and can be used immediately after they've been finalized. Parle deals with parsing and lexing, the appropriate data structures representation and processing are the implementer's task. Serialization and code generation are not supported by the extension, yet.

Lexer analysis is a process of splitting a character sequence into a list of lexemes. The lexeme list can be then used for the syntax analysis against a formal grammar. These operations are also known as lexing and parsing. This documentation doesn't aim to provide an exhaustive information on lexing and parsing. Good information in this regard is available on the numerous resources on the net. Several usage examples are included, to show the functionality. The extension is useful for PHP programmers both willing to learn or to utilize parsing and lexing. State machines and grammar parsing don't have to be implemented manually, these complex tasks are taken away by parle. Thanks to that, the development can be focused on the actual problem solving.

The common use case for parle is, when a data format is too complex to be handled by the regex matching with PCRE. The practical application is herewith wide. Be it a specific data format, a behavior modification of existing functions, even an own programming language and beyond. The helper methods such as Parle\Lexer::dump() to inspect the generated state machine, or Parle\Parser::dump() to inspect the generated grammar, are useful. The method Parle\Parser::trace() can also be used to track the parsing operation.


  • « Введение
  • Требования »
  • PHP Manual
  • Parle
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка


Требования

PHP 7.0 or above is supported. A C++14 capable compiler is required. A successful extension build was produced with at least clang 5.0, GCC 5.0 and Visual Studio 2015.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/parle.

A DLL for this PECL extension is available under » http://windows.php.net/downloads/pecl/releases/parle/.

Available configure options
Option | Description
--enable-parle | Enable parle extension.
--enable-parle-utf32 | Enable internal UTF-32 support. Available since parle 0.7.2.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Parle\INTERNAL_UTF32 boolean
Flag whether the internal UTF-32 support is compiled in. Available since parle 0.7.2.


Parle pattern matching

Содержание

  • Character representations
  • Character classes
  • Unicode character classes
  • Alternation and repetition
  • Anchors
  • Grouping

Parle supports regex matching similar to flex. Also supported are the following POSIX character sets: [:alnum:], [:alpha:], [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:] and [:xdigit:].

The Unicode character classes are currently not enabled by default, pass --enable-parle-utf32 to make them available. A particular encoding can be mapped with a correctly constructed regex. For example, to match the EURO symbol encoded in UTF-8, the regular expression [\xe2][\x82][\xac] can be used. The pattern for an UTF-8 encoded string could be [ -\x7f]{+}[\x80-\xbf]{+}[\xc2-\xdf]{+}[\xe0-\xef]{+}[\xf0-\xff]+.


Character representations

Character representations
Sequence | Description
\a | Alert (bell).
\b | Backspace.
\e | ESC character, \x1b.
\n | Newline.
\r | Carriage return.
\f | Form feed, \x0c.
\t | Horizontal tab, \x09.
\v | Vertical tab, \x0b.
\oct | Character specified by a three-digit octal code.
\xhex | Character specified by a hex code.
\cchar | Named control character.


Character classes

Character classes
Sequence | Description
[...] | A single character listed or contained within a listed range. Ranges can be combined with the {+} and {-} operators. For example [a-z]{+}[0-9] is the same as [0-9a-z] and [a-z]{-}[aeiou] is the same as [b-df-hj-np-tv-z].
[^...] | A single character not listed and not contained within a listed range.
. | Any character, default [^\n].
\d | Digit character, [0-9].
\D | Non-digit character, [^0-9].
\s | White space character, [ \t\n\r\f\v].
\S | Non-white space character, [^ \t\n\r\f\v].
\w | Word caracter, [a-zA-Z0-9_].
\W | Non-word caracter, [^a-zA-Z0-9_].


Unicode character classes

Unicode character classes
Sequence | Description
\p{C} | Other.
\p{Cc} | Other, control.
\p{Cf} | Other, format.
\p{Co} | Other, private use.
\p{Cs} | Other, surrogate.
\p{L} | Letter.
\p{LC} | Letter, cased.
\p{Ll} | Letter, lowercase.
\p{Lm} | Letter, modifier.
\p{Lo} | Letter, other.
\p{Lt} | Letter, titlecase.
\p{Lu} | Letter, uppercase.
\p{M} | Mark.
\p{Mc} | Mark, space combining.
\p{Me} | Mark, enclosing.
\p{Mn} | Mark, nonspacing.
\p{N} | Number.
\p{Nd} | Number, decimal digit.
\p{Nl} | Number, letter.
\p{No} | Number, other.
\p{P} | Punctuation.
\p{Pc} | Punctiation, connector.
\p{Pd} | Punctuation, dash.
\p{Pe} | Punctuation, close.
\p{Pf} | Punctuation, final quote.
\p{Pi} | Punctuation, initial quote.
\p{Po} | Punctuation, other.
\p{Ps} | Punctuation, open.
\p{S} | Symbol.
\p{Sc} | Symbol, currency.
\p{Sk} | Symbol, modifier.
\p{Sm} | Symbol, math.
\p{So} | Symbol, other.
\p{Z} | Separator.
\p{Zl} | Separator, line.
\p{Zp} | Separator, paragraph.
\p{Zs} | Separator, space.

These character clasess are only available, if the option --enable-parle-utf32 was passed at the compilation time.


Alternation and repetition

Alternation and repetition
Sequence | Greedy | Description
...|... | - | Try subpatterns in alternation.
* | yes | Match 0 or more times.
+ | yes | Match 1 or more times.
? | yes | Match 0 or 1 times.
{n} | no | Match exactly n times.
{n,} | yes | Match at least n times.
{n,m} | yes | Match at least n times but no more than m times.
*? | no | Match 0 or more times.
+? | no | Match 1 or more times.
?? | no | Match 0 or 1 times.
{n,}? | no | Match at least n times.
{n,m}? | no | Match at least n times but no more than m times.
{MACRO} | - | Include the regex MACRO in the current regex.


Anchors

Anchors
Sequence | Description
^ | Start of string or after a newline.
$ | End of string or before a newline.


Grouping

Grouping
Sequence | Description
(...) Group a regular expression to override default operator precedence.
(?r-s:pattern) Apply option r and omit option s while interpreting pattern. Options may be zero or more of the characters i, s, or x.
Options
Option | Description
i | Case insensitive.
-i | Case sensitive.
s | Alters the meaning of '.' to match any character whatsoever.
-s | "lters the meaning of '.' to match any character except '\n'.
x | Ignores comments and whitespace in patterns. Whitespace is ignored unless it is backslash-escaped, contained within ""s, or appears inside a character range.
These options can be applied globally at the rules level by passing a combination of the bit flags to the lexer.
(?# comment ) | Omit everything within (). The first ) character encountered ends the pattern. It is not possible for the comment to contain a ) character. The comment may span lines.


  • « Grouping
  • Lexer examples »
  • PHP Manual
  • Parle
  • Примеры

Примеры

Содержание

  • Lexer examples
  • Parser examples


Lexer examples

Пример #1 Tokenize comma separated integer list

<?php

use Parle\Token;
use Parle\Lexer;
use Parle\LexerException;

/* name => id */
$token = array(
        "COMMA" => 1,
        "CRLF" => 2,
        "DECIMAL" => 3,
);
/* id => name */
$tokenIdToName = array_flip($token);

$lex = new Lexer;
$lex->push("[\x2c]", $token["COMMA"]);
$lex->push("[\r][\n]", $token["CRLF"]);
$lex->push("[\d]+", $token["DECIMAL"]);
$lex->build();

$in = "0,1,2\r\n3,42,5\r\n6,77,8\r\n";

$lex->consume($in);

do {
        $lex->advance();
        $tok = $lex->getToken();

        if (Token::UNKNOWN == $tok->id) {
                throw new LexerException("Unknown token '{$tok->value}' at offset {$lex->marker}.");
        }

        echo "TOKEN: ", $tokenIdToName[$tok->id], PHP_EOL;
} while (Token::EOI != $tok->id);

Пример #2 Tokenize assign statement

<?php

use Parle\{Token, Lexer};

$lex = new Lexer;

$lex->push("\$[a-zA-Z_][a-zA-Z0-9_]*", 1);
$lex->push("=", 2);
$lex->push("\d+", 3);
$lex->push(";", 4);

$lex->build();

$lex->consume('$x = 42; $y = 24;');

do {
    $lex->advance();
    $tok = $lex->getToken();
    var_dump($tok);
} while (Token::EOI != $tok->id);


Parser examples

Пример #1 Simple calculator

<?php

use Parle\{Parser, ParserException, Lexer, Token};

$p = new Parser;
$p->token("INTEGER");
$p->left("'+' '-' '*' '/'");

$p->push("start", "exp");
$prod_add = $p->push("exp", "exp '+' exp");
$prod_sub = $p->push("exp", "exp '-' exp");
$prod_mul = $p->push("exp", "exp '*' exp");
$prod_div = $p->push("exp", "exp '/' exp");
$p->push("exp", "INTEGER"); /* Production index unused. */

$p->build();

$lex = new Lexer;
$lex->push("[+]", $p->tokenId("'+'"));
$lex->push("[-]", $p->tokenId("'-'"));
$lex->push("[*]", $p->tokenId("'*'"));
$lex->push("[/]", $p->tokenId("'/'"));
$lex->push("\\d+", $p->tokenId("INTEGER"));
$lex->push("\\s+", Token::SKIP);

$lex->build();

$exp = array(
    "1 + 1",
    "33 / 10",
    "100 * 45",
    "17 - 45",
);

foreach ($exp as $in) {
    if (!$p->validate($in, $lex)) {
        throw new ParserException("Failed to validate input");
    }

    $p->consume($in, $lex);

    while (Parser::ACTION_ERROR != $p->action && Parser::ACTION_ACCEPT != $p->action) {
        switch ($p->action) {
            case Parser::ACTION_ERROR:
                throw new ParserException("Parser error");
                break;
            case Parser::ACTION_SHIFT:
            case Parser::ACTION_GOTO:
            case Parser::ACTION_ACCEPT:
                break;
            case Parser::ACTION_REDUCE:
                switch ($p->reduceId) {
                    case $prod_add:
                        $l = $p->sigil(0);
                        $r = $p->sigil(2);
                        echo "$l + $r = " . ($l + $r) . "\n";
                        break;
                    case $prod_sub:
                        $l = $p->sigil(0);
                        $r = $p->sigil(2);
                        echo "$l - $r = " . ($l - $r) . "\n";
                        break;
                    case $prod_mul:
                        $l = $p->sigil(0);
                        $r = $p->sigil(2);
                        echo "$l * $r = " . ($l * $r) . "\n";
                        break;
                    case $prod_div:
                        $l = $p->sigil(0);
                        $r = $p->sigil(2);
                    echo "$l / $r = " . ($l / $r) . "\n";
                        break;
            }
            break;
        }
        $p->advance();
    }
}

Пример #2 Parse words out from a sentence

<?php

use Parle\{Lexer, Token, Parser, ParserException};

$p = new Parser;
$p->token("WORD");
$p->push("START", "SENTENCE");
$p->push("SENTENCE", "WORDS");
$prod_word_0 = $p->push("WORDS", "WORDS WORD");
$prod_word_1 = $p->push("WORDS", "WORD");
$p->build();

$lex = new Lexer;
$lex->push("[^\s]{-}[\.,\:\;\?]+", $p->tokenId("WORD"));
$lex->push("[\s\.,\:\;\?]+", Token::SKIP);
$lex->build();

$in = "Dis-moi ou est ton papa?";
$p->consume($in, $lex);
do {
    switch ($p->action) {
    case Parser::ACTION_ERROR:
        throw new ParserException("Error");
        break;
    case Parser::ACTION_SHIFT:
    case Parser::ACTION_GOTO:
        /* var_dump($p->trace());*/
        break;
    case Parser::ACTION_REDUCE:
        $rid = $p->reduceId();
        if ($rid == $prod_word_1) {
            var_dump($p->sigil(0));
        } if ($rid == $prod_word_0) {
            var_dump($p->sigil(1));
        }
        break;
    }
    $p->advance();
} while (Parser::ACTION_ACCEPT != $p->action);


The Parle\Lexer class

(PECL parle >= 0.5.1)

Введение

Single state lexer class. Lexemes can be defined on the fly. If the particular lexer instance is meant to be used with Parle\Parser, the token IDs need to be taken from there. Otherwise, arbitrary token IDs can be supplied. This lexer can give a certain performance advantage over Parle\RLexer, if no multiple states are required. Note, that Parle\RParser is not compatible with this lexer.

Обзор классов

Parle\Lexer {
/* Constants */
const integer ICASE = 1 ;
const integer DOT_NOT_LF = 2 ;
const integer DOT_NOT_CRLF = 4 ;
const integer SKIP_WS = 8 ;
const integer MATCH_ZERO_LEN = 16 ;
/* Свойства */
public boolean $bol = FALSE ;
public integer $flags = 0 ;
public integer $state = 0 ;
public integer $marker = 0 ;
public integer $cursor = 0 ;
/* Методы */
public advance ( void ) : void
public build ( void ) : void
public callout ( int $id , callable $callback ) : void
public consume ( string $data ) : void
public dump ( void ) : void
public getToken ( void ) : Parle\Token
public insertMacro ( string $name , string $regex ) : void
public push ( string $regex , int $id ) : void
public reset ( int $pos ) : void
}

Предопределенные константы

Parle\Lexer::ICASE

Parle\Lexer::DOT_NOT_LF

Parle\Lexer::DOT_NOT_CRLF

Parle\Lexer::SKIP_WS

Parle\Lexer::MATCH_ZERO_LEN

Свойства

bol

Start of input flag.

flags

Lexer flags.

state

Current lexer state, readonly.

marker

Position of the latest token match, readonly.

cursor

Current input offset, readonly.

Содержание

  • Parle\Lexer::advance — Process next lexer rule
  • Parle\Lexer::build — Finalize the lexer rule set
  • Parle\Lexer::callout — Define token callback
  • Parle\Lexer::consume — Pass the data for processing
  • Parle\Lexer::dump — Dump the state machine
  • Parle\Lexer::getToken — Retrieve the current token
  • Parle\Lexer::insertMacro — Insert regex macro
  • Parle\Lexer::push — Add a lexer rule
  • Parle\Lexer::reset — Reset lexer


Process next lexer rule

  • « Parle\Lexer
  • Parle\Lexer::build »
  • PHP Manual
  • Parle\Lexer
  • Process next lexer rule

Parle\Lexer::advance

(PECL parle >= 0.5.1)

Parle\Lexer::advance — Process next lexer rule

Описание

public Parle\Lexer::advance ( void ) : void

Processes the next rule and prepares the resulting token data.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Finalize the lexer rule set

  • « Parle\Lexer::advance
  • Parle\Lexer::callout »
  • PHP Manual
  • Parle\Lexer
  • Finalize the lexer rule set

Parle\Lexer::build

(PECL parle >= 0.5.1)

Parle\Lexer::build — Finalize the lexer rule set

Описание

public Parle\Lexer::build ( void ) : void

Rules, previously added with Parle\Lexer::push() are finalized. This method call has to be done after all the necessary rules was pushed. The rule set becomes read only. The lexing can begin.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Define token callback

  • « Parle\Lexer::build
  • Parle\Lexer::consume »
  • PHP Manual
  • Parle\Lexer
  • Define token callback

Parle\Lexer::callout

(PECL parle >= 0.7.2)

Parle\Lexer::callout — Define token callback

Описание

public Parle\Lexer::callout ( int $id , callable $callback ) : void

Define a callback to be invoked once lexer encounters a particular token.

Список параметров

id

Token id.

callback

Callable to be invoked. The callable doesn't receive any arguments and its return value is ignored.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Pass the data for processing

  • « Parle\Lexer::callout
  • Parle\Lexer::dump »
  • PHP Manual
  • Parle\Lexer
  • Pass the data for processing

Parle\Lexer::consume

(PECL parle >= 0.5.1)

Parle\Lexer::consume — Pass the data for processing

Описание

public Parle\Lexer::consume ( string $data ) : void

Consume the data for lexing.

Список параметров

data

Data to be lexed.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Dump the state machine

  • « Parle\Lexer::consume
  • Parle\Lexer::getToken »
  • PHP Manual
  • Parle\Lexer
  • Dump the state machine

Parle\Lexer::dump

(PECL parle >= 0.5.1)

Parle\Lexer::dump — Dump the state machine

Описание

public Parle\Lexer::dump ( void ) : void

Dump the current state machine to stdout.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Retrieve the current token

  • « Parle\Lexer::dump
  • Parle\Lexer::insertMacro »
  • PHP Manual
  • Parle\Lexer
  • Retrieve the current token

Parle\Lexer::getToken

(PECL parle >= 0.5.1)

Parle\Lexer::getToken — Retrieve the current token

Описание

public Parle\Lexer::getToken ( void ) : Parle\Token

Retrieve the current token.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an instance of Parle\Token.


Insert regex macro

  • « Parle\Lexer::getToken
  • Parle\Lexer::push »
  • PHP Manual
  • Parle\Lexer
  • Insert regex macro

Parle\Lexer::insertMacro

(PECL parle >= 0.5.1)

Parle\Lexer::insertMacro — Insert regex macro

Описание

public Parle\Lexer::insertMacro ( string $name , string $regex ) : void

Insert a regex macro, that can be later used as a shortcut and included in other regular expressions.

Список параметров

name

Name of the macros.

regex

Regular expression.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Add a lexer rule

  • « Parle\Lexer::insertMacro
  • Parle\Lexer::reset »
  • PHP Manual
  • Parle\Lexer
  • Add a lexer rule

Parle\Lexer::push

(PECL parle >= 0.5.1)

Parle\Lexer::push — Add a lexer rule

Описание

public Parle\Lexer::push ( string $regex , int $id ) : void

Push a pattern for lexeme recognition.

Список параметров

regex

Regular expression used for token matching.

id

Token id. If the lexer instance is meant to be used standalone, this can be an arbitrary number. If the lexer instance is going to be passed to the parser, it has to be an id returned by Parle\Parser::tokenid().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Reset lexer

  • « Parle\Lexer::push
  • Parle\RLexer »
  • PHP Manual
  • Parle\Lexer
  • Reset lexer

Parle\Lexer::reset

(PECL parle >= 0.7.1)

Parle\Lexer::reset — Reset lexer

Описание

public Parle\Lexer::reset ( int $pos ) : void

Reset lexing optionally supplying the desired offset.

Список параметров

pos

Reset position.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The Parle\RLexer class

(PECL parle >= 0.5.1)

Введение

Multistate lexer class. Lexemes can be defined on the fly. If the particular lexer instance is meant to be used with Parle\RParser, the token IDs need to be taken from there. Otherwise, arbitrary token IDs can be supplied. Note, that Parle\Parser is not compatible with this lexer.

Обзор классов

Parle\RLexer {
/* Constants */
const integer ICASE = 1 ;
const integer DOT_NOT_LF = 2 ;
const integer DOT_NOT_CRLF = 4 ;
const integer SKIP_WS = 8 ;
const integer MATCH_ZERO_LEN = 16 ;
/* Свойства */
public boolean $bol = FALSE ;
public integer $flags = 0 ;
public integer $state = 0 ;
public integer $marker = 0 ;
public integer $cursor = 0 ;
/* Методы */
public advance ( void ) : void
public build ( void ) : void
public callout ( int $id , callable $callback ) : void
public consume ( string $data ) : void
public dump ( void ) : void
public getToken ( void ) : Parle\Token
public insertMacro ( string $name , string $regex ) : void
public push ( string $regex , int $id ) : void
public push ( string $state , string $regex , int $id , string $newState ) : void
public push ( string $state , string $regex , string $newState ) : void
public pushState ( string $state ) : int
public reset ( int $pos ) : void
}

Предопределенные константы

Parle\RLexer::ICASE

Parle\RLexer::DOT_NOT_LF

Parle\RLexer::DOT_NOT_CRLF

Parle\RLexer::SKIP_WS

Parle\RLexer::MATCH_ZERO_LEN

Свойства

bol

Start of input flag.

flags

Lexer flags.

state

Current lexer state, readonly.

marker

Position of the latest token match, readonly.

cursor

Current input offset, readonly.

Содержание

  • Parle\RLexer::advance — Process next lexer rule
  • Parle\RLexer::build — Finalize the lexer rule set
  • Parle\RLexer::callout — Define token callback
  • Parle\RLexer::consume — Pass the data for processing
  • Parle\RLexer::dump — Dump the state machine
  • Parle\RLexer::getToken — Retrieve the current token
  • Parle\RLexer::insertMacro — Insert regex macro
  • Parle\RLexer::push — Add a lexer rule
  • Parle\RLexer::pushState — Push a new start state
  • Parle\RLexer::reset — Reset lexer


Process next lexer rule

  • « Parle\RLexer
  • Parle\RLexer::build »
  • PHP Manual
  • Parle\RLexer
  • Process next lexer rule

Parle\RLexer::advance

(PECL parle >= 0.5.1)

Parle\RLexer::advance — Process next lexer rule

Описание

public Parle\RLexer::advance ( void ) : void

Processes the next rule and prepares the resulting token data.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Finalize the lexer rule set

  • « Parle\RLexer::advance
  • Parle\RLexer::callout »
  • PHP Manual
  • Parle\RLexer
  • Finalize the lexer rule set

Parle\RLexer::build

(PECL parle >= 0.5.1)

Parle\RLexer::build — Finalize the lexer rule set

Описание

public Parle\RLexer::build ( void ) : void

Rules, previously added with Parle\RLexer::push() are finalized. This method call has to be done after all the necessary rules was pushed. The rule set becomes read only. The lexing can begin.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Define token callback

  • « Parle\RLexer::build
  • Parle\RLexer::consume »
  • PHP Manual
  • Parle\RLexer
  • Define token callback

Parle\RLexer::callout

(PECL parle >= 0.7.2)

Parle\RLexer::callout — Define token callback

Описание

public Parle\RLexer::callout ( int $id , callable $callback ) : void

Define a callback to be invoked once lexer encounters a particular token.

Список параметров

id

Token id.

callback

Callable to be invoked. The callable doesn't receive any arguments and its return value is ignored.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Pass the data for processing

  • « Parle\RLexer::callout
  • Parle\RLexer::dump »
  • PHP Manual
  • Parle\RLexer
  • Pass the data for processing

Parle\RLexer::consume

(PECL parle >= 0.5.1)

Parle\RLexer::consume — Pass the data for processing

Описание

public Parle\RLexer::consume ( string $data ) : void

Consume the data for lexing.

Список параметров

data

Data to be lexed.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Dump the state machine

  • « Parle\RLexer::consume
  • Parle\RLexer::getToken »
  • PHP Manual
  • Parle\RLexer
  • Dump the state machine

Parle\RLexer::dump

(PECL parle >= 0.5.1)

Parle\RLexer::dump — Dump the state machine

Описание

public Parle\RLexer::dump ( void ) : void

Dump the current state machine to stdout.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Retrieve the current token

  • « Parle\RLexer::dump
  • Parle\RLexer::insertMacro »
  • PHP Manual
  • Parle\RLexer
  • Retrieve the current token

Parle\RLexer::getToken

(PECL parle >= 0.5.1)

Parle\RLexer::getToken — Retrieve the current token

Описание

public Parle\RLexer::getToken ( void ) : Parle\Token

Retrive the current token.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an instance of Parle\Token.


Insert regex macro

  • « Parle\RLexer::getToken
  • Parle\RLexer::push »
  • PHP Manual
  • Parle\RLexer
  • Insert regex macro

Parle\RLexer::insertMacro

(PECL parle >= 0.5.1)

Parle\RLexer::insertMacro — Insert regex macro

Описание

public Parle\RLexer::insertMacro ( string $name , string $regex ) : void

Insert a regex macro, that can be later used as a shortcut and included in other regular expressions.

Список параметров

name

Name of the macros.

regex

Regular expression.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Add a lexer rule

  • « Parle\RLexer::insertMacro
  • Parle\RLexer::pushState »
  • PHP Manual
  • Parle\RLexer
  • Add a lexer rule

Parle\RLexer::push

(PECL parle >= 0.5.1)

Parle\RLexer::push — Add a lexer rule

Описание

public Parle\RLexer::push ( string $regex , int $id ) : void
public Parle\RLexer::push ( string $state , string $regex , int $id , string $newState ) : void
public Parle\RLexer::push ( string $state , string $regex , string $newState ) : void

Push a pattern for lexeme recognition.

A 'start state' and 'exit state' can be specified by using a suitable signature.

Список параметров

regex

Regular expression used for token matching.

id

Token id. If the lexer instance is meant to be used standalone, this can be an arbitrary number. If the lexer instance is going to be passed to the parser, it has to be an id returned by Parle\RParser::tokenid().

state

State name. If '*' is used as start state, then the rule is applied to all lexer states.

newState

New state name, after the rule was applied.

If '.' is specified as the exit state, then the lexer state is unchanged when that rule matches. An exit state with '>' before the name means push. Use the signature without id for either continuation or to start matching, when a continuation or recursion is required.

If '<' is specified as exit state, it means pop. In that case, the signature containing the id can be used to identify the match. Note that even in the case an id is specified, the rule will finish first when all the previous pushes popped.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Push a new start state

  • « Parle\RLexer::push
  • Parle\RLexer::reset »
  • PHP Manual
  • Parle\RLexer
  • Push a new start state

Parle\RLexer::pushState

(PECL parle >= 0.5.1)

Parle\RLexer::pushState — Push a new start state

Описание

public Parle\RLexer::pushState ( string $state ) : int

This lexer type can have more than one state machine. This allows you to lex different tokens depending on context, thus allowing simple parsing to take place. Once a state pushed, it can be used with a suitable Parle\RLexer::push() signature variant.

Список параметров

state

Name of the state.

Возвращаемые значения


Reset lexer

  • « Parle\RLexer::pushState
  • Parle\Parser »
  • PHP Manual
  • Parle\RLexer
  • Reset lexer

Parle\RLexer::reset

(PECL parle >= 0.7.1)

Parle\RLexer::reset — Reset lexer

Описание

public Parle\RLexer::reset ( int $pos ) : void

Reset lexing optionally supplying the desired offset.

Список параметров

pos

Reset position.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The Parle\Parser class

(PECL parle >= 0.5.1)

Введение

Parser class. Rules can be defined on the fly. Once finalized, a Parle\Lexer instance is required to deliver the token stream.

Обзор классов

Parle\Parser {
/* Constants */
const integer ACTION_ERROR = 0 ;
const integer ACTION_SHIFT = 1 ;
const integer ACTION_REDUCE = 2 ;
const integer ACTION_GOTO = 3 ;
const integer ACTION_ACCEPT = 4 ;
const integer ERROR_SYNTAX = 0 ;
const integer ERROR_NON_ASSOCIATIVE = 1 ;
const integer ERROR_UNKNOWN_TOKEN = 2 ;
/* Свойства */
public integer $action = 0 ;
public integer $reduceId = 0 ;
/* Методы */
public advance ( void ) : void
public build ( void ) : void
public consume ( string $data , Parle\Lexer $lexer ) : void
public dump ( void ) : void
public errorInfo ( void ) : Parle\ErrorInfo
public left ( string $tok ) : void
public nonassoc ( string $tok ) : void
public precedence ( string $tok ) : void
public push ( string $name , string $rule ) : int
public reset ([ int $tokenId ] ) : void
public right ( string $tok ) : void
public sigil ( int $idx ) : string
public token ( string $tok ) : void
public tokenId ( string $tok ) : int
public trace ( void ) : string
public validate ( string $data , Parle\Lexer $lexer ) : bool
}

Предопределенные константы

Parle\Parser::ACTION_ERROR

Parle\Parser::ACTION_SHIFT

Parle\Parser::ACTION_REDUCE

Parle\Parser::ACTION_GOTO

Parle\Parser::ACTION_ACCEPT

Parle\Parser::ERROR_SYNTAX

Parle\Parser::ERROR_NON_ASSOCIATIVE

Parle\Parser::ERROR_UNKNOWN_TOKEN

Свойства

action

Current parser action that matches one of the action class constants, readonly.

reduceId

Grammar rule id just processed in the reduce action. The value corresponds either to a token or to a production id. Readonly.

Содержание

  • Parle\Parser::advance — Process next parser rule
  • Parle\Parser::build — Finalize the grammar rules
  • Parle\Parser::consume — Consume the data for processing
  • Parle\Parser::dump — Dump the grammar
  • Parle\Parser::errorInfo — Retrieve the error information
  • Parle\Parser::left — Declare a token with left-associativity
  • Parle\Parser::nonassoc — Declare a token with no associativity
  • Parle\Parser::precedence — Declare a precedence rule
  • Parle\Parser::push — Add a grammar rule
  • Parle\Parser::reset — Reset parser state
  • Parle\Parser::right — Declare a token with right-associativity
  • Parle\Parser::sigil — Retrieve a matching part of a rule
  • Parle\Parser::token — Declare a token
  • Parle\Parser::tokenId — Get token id
  • Parle\Parser::trace — Trace the parser operation
  • Parle\Parser::validate — Validate input


Process next parser rule

  • « Parle\Parser
  • Parle\Parser::build »
  • PHP Manual
  • Parle\Parser
  • Process next parser rule

Parle\Parser::advance

(PECL parle >= 0.5.1)

Parle\Parser::advance — Process next parser rule

Описание

public Parle\Parser::advance ( void ) : void

Process next parser rule.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Finalize the grammar rules

  • « Parle\Parser::advance
  • Parle\Parser::consume »
  • PHP Manual
  • Parle\Parser
  • Finalize the grammar rules

Parle\Parser::build

(PECL parle >= 0.5.1)

Parle\Parser::build — Finalize the grammar rules

Описание

public Parle\Parser::build ( void ) : void

Any tokens and grammar rules previously added are finalized. The rule set becomes readonly and the parser is ready to start.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Consume the data for processing

  • « Parle\Parser::build
  • Parle\Parser::dump »
  • PHP Manual
  • Parle\Parser
  • Consume the data for processing

Parle\Parser::consume

(PECL parle >= 0.5.1)

Parle\Parser::consume — Consume the data for processing

Описание

public Parle\Parser::consume ( string $data , Parle\Lexer $lexer ) : void

Consume the data for parsing.

Список параметров

data

Data to be parsed.

lexer

A lexer object containing the lexing rules prepared for the particular grammar.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Dump the grammar

  • « Parle\Parser::consume
  • Parle\Parser::errorInfo »
  • PHP Manual
  • Parle\Parser
  • Dump the grammar

Parle\Parser::dump

(PECL parle >= 0.5.1)

Parle\Parser::dump — Dump the grammar

Описание

public Parle\Parser::dump ( void ) : void

Dump the current grammar to stdout.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Retrieve the error information

  • « Parle\Parser::dump
  • Parle\Parser::left »
  • PHP Manual
  • Parle\Parser
  • Retrieve the error information

Parle\Parser::errorInfo

(PECL parle >= 0.5.1)

Parle\Parser::errorInfo — Retrieve the error information

Описание

public Parle\Parser::errorInfo ( void ) : Parle\ErrorInfo

Retrieve the error information in case Parle\Parser::action() returned the error action.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an instance of Parle\ErrorInfo.


Declare a token with left-associativity

  • « Parle\Parser::errorInfo
  • Parle\Parser::nonassoc »
  • PHP Manual
  • Parle\Parser
  • Declare a token with left-associativity

Parle\Parser::left

(PECL parle >= 0.5.1)

Parle\Parser::left — Declare a token with left-associativity

Описание

public Parle\Parser::left ( string $tok ) : void

Declare a terminal with left associativity.

Список параметров

tok

Token name.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Declare a token with no associativity

  • « Parle\Parser::left
  • Parle\Parser::precedence »
  • PHP Manual
  • Parle\Parser
  • Declare a token with no associativity

Parle\Parser::nonassoc

(PECL parle >= 0.5.1)

Parle\Parser::nonassoc — Declare a token with no associativity

Описание

public Parle\Parser::nonassoc ( string $tok ) : void

Declare a terminal, that cannot appear more than once in the row.

Список параметров

tok

Token name.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Declare a precedence rule

  • « Parle\Parser::nonassoc
  • Parle\Parser::push »
  • PHP Manual
  • Parle\Parser
  • Declare a precedence rule

Parle\Parser::precedence

(PECL parle >= 0.5.1)

Parle\Parser::precedence — Declare a precedence rule

Описание

public Parle\Parser::precedence ( string $tok ) : void

Declares a precedence rule for a fictitious terminal symbol. This rule can be later used in the specific grammar rules.

Список параметров

tok

Token name.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Add a grammar rule

  • « Parle\Parser::precedence
  • Parle\Parser::reset »
  • PHP Manual
  • Parle\Parser
  • Add a grammar rule

Parle\Parser::push

(PECL parle >= 0.5.1)

Parle\Parser::push — Add a grammar rule

Описание

public Parle\Parser::push ( string $name , string $rule ) : int

Push a grammar rule. The production id returned can be used later in the parsing process to identify the rule matched.

Список параметров

name

Rule name.

rule

The rule to be added. The syntax is Bison compatible.

Возвращаемые значения

Returns integer representing the rule index.


Reset parser state

  • « Parle\Parser::push
  • Parle\Parser::right »
  • PHP Manual
  • Parle\Parser
  • Reset parser state

Parle\Parser::reset

(PECL parle >= 0.7.1)

Parle\Parser::reset — Reset parser state

Описание

public Parle\Parser::reset ([ int $tokenId ] ) : void

Reset parser state using the given token id.

Список параметров

tokenId

Token id.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Declare a token with right-associativity

  • « Parle\Parser::reset
  • Parle\Parser::sigil »
  • PHP Manual
  • Parle\Parser
  • Declare a token with right-associativity

Parle\Parser::right

(PECL parle >= 0.5.1)

Parle\Parser::right — Declare a token with right-associativity

Описание

public Parle\Parser::right ( string $tok ) : void

Declare a terminal with right associativity.

Список параметров

tok

Token name.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Retrieve a matching part of a rule

  • « Parle\Parser::right
  • Parle\Parser::token »
  • PHP Manual
  • Parle\Parser
  • Retrieve a matching part of a rule

Parle\Parser::sigil

(PECL parle >= 0.5.1)

Parle\Parser::sigil — Retrieve a matching part of a rule

Описание

public Parle\Parser::sigil ( int $idx ) : string

Retrieve a part of the match by a rule. This method is equivalent to the pseudo variable functionality in Bison.

Список параметров

idx

Match index, zero based.

Возвращаемые значения

Returns a string with the matched part.


Declare a token

  • « Parle\Parser::sigil
  • Parle\Parser::tokenId »
  • PHP Manual
  • Parle\Parser
  • Declare a token

Parle\Parser::token

(PECL parle >= 0.5.1)

Parle\Parser::token — Declare a token

Описание

public Parle\Parser::token ( string $tok ) : void

Declare a terminal to be used in the grammar.

Список параметров

tok

Token name.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Get token id

  • « Parle\Parser::token
  • Parle\Parser::trace »
  • PHP Manual
  • Parle\Parser
  • Get token id

Parle\Parser::tokenId

(PECL parle >= 0.5.1)

Parle\Parser::tokenId — Get token id

Описание

public Parle\Parser::tokenId ( string $tok ) : int

Retrieve the id of the named token.

Список параметров

tok

Name of the token as used in Parle\Parser::token().

Возвращаемые значения

Returns integer representing the token id.


Trace the parser operation

  • « Parle\Parser::tokenId
  • Parle\Parser::validate »
  • PHP Manual
  • Parle\Parser
  • Trace the parser operation

Parle\Parser::trace

(PECL parle >= 0.5.1)

Parle\Parser::trace — Trace the parser operation

Описание

public Parle\Parser::trace ( void ) : string

Retrieve the current parser operation description. This can be especially useful for studying the parser and to optimize the grammar.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string with the trace information.


Validate input

  • « Parle\Parser::trace
  • Parle\RParser »
  • PHP Manual
  • Parle\Parser
  • Validate input

Parle\Parser::validate

(PECL parle >= 0.5.1)

Parle\Parser::validate — Validate input

Описание

public Parle\Parser::validate ( string $data , Parle\Lexer $lexer ) : bool

Validate an input string. The string is parsed internally, thus this method is useful for the quick input validation.

Список параметров

data

String to be validated.

lexer

A lexer object containing the lexing rules prepared for the particular grammar.

Возвращаемые значения

Returns boolean witnessing whether the input chimes or not with the defined rules.


The Parle\RParser class

(PECL parle >= 0.7.0)

Введение

Parser class. Rules can be defined on the fly. Once finalized, a Parle\RLexer instance is required to deliver the token stream.

Обзор классов

Parle\RParser {
/* Constants */
const integer ACTION_ERROR = 0 ;
const integer ACTION_SHIFT = 1 ;
const integer ACTION_REDUCE = 2 ;
const integer ACTION_GOTO = 3 ;
const integer ACTION_ACCEPT = 4 ;
const integer ERROR_SYNTAX = 0 ;
const integer ERROR_NON_ASSOCIATIVE = 1 ;
const integer ERROR_UNKNOWN_TOKEN = 2 ;
/* Свойства */
public integer $action = 0 ;
public integer $reduceId = 0 ;
/* Методы */
public advance ( void ) : void
public build ( void ) : void
public consume ( string $data , Parle\RLexer $rlexer ) : void
public dump ( void ) : void
public errorInfo ( void ) : Parle\ErrorInfo
public left ( string $tok ) : void
public nonassoc ( string $tok ) : void
public precedence ( string $tok ) : void
public push ( string $name , string $rule ) : int
public reset ([ int $tokenId ] ) : void
public right ( string $tok ) : void
public sigil ([ int $idx ] ) : string
public token ( string $tok ) : void
public tokenId ( string $tok ) : int
public trace ( void ) : string
public validate ( string $data , Parle\RLexer $lexer ) : bool
}

Предопределенные константы

Parle\RParser::ACTION_ERROR

Parle\RParser::ACTION_SHIFT

Parle\RParser::ACTION_REDUCE

Parle\RParser::ACTION_GOTO

Parle\RParser::ACTION_ACCEPT

Parle\RParser::ERROR_SYNTAX

Parle\RParser::ERROR_NON_ASSOCIATIVE

Parle\RParser::ERROR_UNKNOWN_TOKEN

Свойства

action

Current parser action that matches one of the action class constants, readonly.

reduceId

Grammar rule id just processed in the reduce action. The value corresponds either to a token or to a production id. Readonly.

Содержание

  • Parle\RParser::advance — Process next parser rule
  • Parle\RParser::build — Finalize the grammar rules
  • Parle\RParser::consume — Consume the data for processing
  • Parle\RParser::dump — Dump the grammar
  • Parle\RParser::errorInfo — Retrieve the error information
  • Parle\RParser::left — Declare a token with left-associativity
  • Parle\RParser::nonassoc — Declare a token with no associativity
  • Parle\RParser::precedence — Declare a precedence rule
  • Parle\RParser::push — Add a grammar rule
  • Parle\RParser::reset — Reset parser state
  • Parle\RParser::right — Declare a token with right-associativity
  • Parle\RParser::sigil — Retrieve a matching part of a rule
  • Parle\RParser::token — Declare a token
  • Parle\RParser::tokenId — Get token id
  • Parle\RParser::trace — Trace the parser operation
  • Parle\RParser::validate — Validate input


Process next parser rule

  • « Parle\RParser
  • Parle\RParser::build »
  • PHP Manual
  • Parle\RParser
  • Process next parser rule

Parle\RParser::advance

(PECL parle >= 0.7.0)

Parle\RParser::advance — Process next parser rule

Описание

public Parle\RParser::advance ( void ) : void

Prosess next parser rule.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Finalize the grammar rules

  • « Parle\RParser::advance
  • Parle\RParser::consume »
  • PHP Manual
  • Parle\RParser
  • Finalize the grammar rules

Parle\RParser::build

(PECL parle >= 0.7.0)

Parle\RParser::build — Finalize the grammar rules

Описание

public Parle\RParser::build ( void ) : void

Any tokens and grammar rules previously added are finalized. The rule set becomes readonly and the parser is ready to start.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Consume the data for processing

  • « Parle\RParser::build
  • Parle\RParser::dump »
  • PHP Manual
  • Parle\RParser
  • Consume the data for processing

Parle\RParser::consume

(PECL parle >= 0.7.0)

Parle\RParser::consume — Consume the data for processing

Описание

public Parle\RParser::consume ( string $data , Parle\RLexer $rlexer ) : void

Consume the data for parsing.

Список параметров

data

Data to be parsed.

lexer

A lexer object containing the lexing rules prepared for the particular grammar.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Dump the grammar

  • « Parle\RParser::consume
  • Parle\RParser::errorInfo »
  • PHP Manual
  • Parle\RParser
  • Dump the grammar

Parle\RParser::dump

(PECL parle >= 0.7.0)

Parle\RParser::dump — Dump the grammar

Описание

public Parle\RParser::dump ( void ) : void

Dump the current grammar to stdout.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Retrieve the error information

  • « Parle\RParser::dump
  • Parle\RParser::left »
  • PHP Manual
  • Parle\RParser
  • Retrieve the error information

Parle\RParser::errorInfo

(PECL parle >= 0.7.0)

Parle\RParser::errorInfo — Retrieve the error information

Описание

public Parle\RParser::errorInfo ( void ) : Parle\ErrorInfo

Retrieve the error information in case Parle\RParser::action() returned the error action.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an instance of Parle\ErrorInfo.


Declare a token with left-associativity

  • « Parle\RParser::errorInfo
  • Parle\RParser::nonassoc »
  • PHP Manual
  • Parle\RParser
  • Declare a token with left-associativity

Parle\RParser::left

(PECL parle >= 0.7.0)

Parle\RParser::left — Declare a token with left-associativity

Описание

public Parle\RParser::left ( string $tok ) : void

Declare a terminal with left associativity.

Список параметров

tok

Token name.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Declare a token with no associativity

  • « Parle\RParser::left
  • Parle\RParser::precedence »
  • PHP Manual
  • Parle\RParser
  • Declare a token with no associativity

Parle\RParser::nonassoc

(PECL parle >= 0.7.0)

Parle\RParser::nonassoc — Declare a token with no associativity

Описание

public Parle\RParser::nonassoc ( string $tok ) : void

Declare a terminal, that cannot appear more than once in the row.

Список параметров

tok

Token name.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Declare a precedence rule

  • « Parle\RParser::nonassoc
  • Parle\RParser::push »
  • PHP Manual
  • Parle\RParser
  • Declare a precedence rule

Parle\RParser::precedence

(PECL parle >= 0.7.0)

Parle\RParser::precedence — Declare a precedence rule

Описание

public Parle\RParser::precedence ( string $tok ) : void

Declares a precedence rule for a fictious terminal symbol. This rule can be later used in the specific grammar rules.

Список параметров

tok

Token name.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Add a grammar rule

  • « Parle\RParser::precedence
  • Parle\RParser::reset »
  • PHP Manual
  • Parle\RParser
  • Add a grammar rule

Parle\RParser::push

(PECL parle >= 0.7.0)

Parle\RParser::push — Add a grammar rule

Описание

public Parle\RParser::push ( string $name , string $rule ) : int

Push a grammar rule. The production id returned can be used later in the parsing process to identify the rule matched.

Список параметров

name

Rule name.

rule

The rule to be added. The syntax is Bison compatible.

Возвращаемые значения

Returns integer representing the rule index.


Reset parser state

  • « Parle\RParser::push
  • Parle\RParser::right »
  • PHP Manual
  • Parle\RParser
  • Reset parser state

Parle\RParser::reset

(PECL parle >= 0.7.1)

Parle\RParser::reset — Reset parser state

Описание

public Parle\RParser::reset ([ int $tokenId ] ) : void

Reset parser state using the given token id.

Список параметров

tokenId

Token id.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Declare a token with right-associativity

  • « Parle\RParser::reset
  • Parle\RParser::sigil »
  • PHP Manual
  • Parle\RParser
  • Declare a token with right-associativity

Parle\RParser::right

(PECL parle >= 0.7.0)

Parle\RParser::right — Declare a token with right-associativity

Описание

public Parle\RParser::right ( string $tok ) : void

Declare a terminal with right associativity.

Список параметров

tok

Token name.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Retrieve a matching part of a rule

  • « Parle\RParser::right
  • Parle\RParser::token »
  • PHP Manual
  • Parle\RParser
  • Retrieve a matching part of a rule

Parle\RParser::sigil

(PECL parle >= 0.7.0)

Parle\RParser::sigil — Retrieve a matching part of a rule

Описание

public Parle\RParser::sigil ([ int $idx ] ) : string

Retrieve a part of the match by a rule. This method is equivalent to the pseudo variable functionality in Bison.

Список параметров

idx

Match index, zero based.

Возвращаемые значения

Returns a string with the matched part.


Declare a token

  • « Parle\RParser::sigil
  • Parle\RParser::tokenId »
  • PHP Manual
  • Parle\RParser
  • Declare a token

Parle\RParser::token

(PECL parle >= 0.7.0)

Parle\RParser::token — Declare a token

Описание

public Parle\RParser::token ( string $tok ) : void

Declare a terminal to be used in the grammar.

Список параметров

tok

Token name.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Get token id

  • « Parle\RParser::token
  • Parle\RParser::trace »
  • PHP Manual
  • Parle\RParser
  • Get token id

Parle\RParser::tokenId

(PECL parle >= 0.7.0)

Parle\RParser::tokenId — Get token id

Описание

public Parle\RParser::tokenId ( string $tok ) : int

Retrieve the id of the named token.

Список параметров

tok

Name of the token as used in Parle\RParser::token().

Возвращаемые значения

Returns integer representing the token id.


Trace the parser operation

  • « Parle\RParser::tokenId
  • Parle\RParser::validate »
  • PHP Manual
  • Parle\RParser
  • Trace the parser operation

Parle\RParser::trace

(PECL parle >= 0.7.0)

Parle\RParser::trace — Trace the parser operation

Описание

public Parle\RParser::trace ( void ) : string

Retrieve the current parser operation description. This can be especially useful to study the parser and to optimize the grammar.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string with the trace information.


Validate input

  • « Parle\RParser::trace
  • Parle\Stack »
  • PHP Manual
  • Parle\RParser
  • Validate input

Parle\RParser::validate

(PECL parle >= 0.7.0)

Parle\RParser::validate — Validate input

Описание

public Parle\RParser::validate ( string $data , Parle\RLexer $lexer ) : bool

Validate an input string. The string is parsed internally, thus this method is useful for the quick input validation.

Список параметров

data

String to be validated.

lexer

A lexer object containing the lexing rules prepared for the particular grammar.

Возвращаемые значения

Returns boolean whitnessing whether the input chimes or not with the defined rules.


The Parle\Stack class

(PECL parle >= 0.7.0)

Введение

Parle\Stack is a LIFO stack. The elements are inserted and removed only from one end.

Обзор классов

Parle\Stack {
/* Свойства */
public boolean $empty = TRUE ;
public integer $size = 0 ;
public mixed $top ;
/* Методы */
public pop ( void ) : void
public push ( mixed $item ) : void
}

Свойства

empty

Whether the stack is empty, readonly.

size

Stack size, readonly.

top

Element on the top of the stack.

Содержание

  • Parle\Stack::pop — Pop an item from the stack
  • Parle\Stack::push — Push an item into the stack


Pop an item from the stack

  • « Parle\Stack
  • Parle\Stack::push »
  • PHP Manual
  • Parle\Stack
  • Pop an item from the stack

Parle\Stack::pop

(PECL parle >= 0.5.1)

Parle\Stack::pop — Pop an item from the stack

Описание

public Parle\Stack::pop ( void ) : void

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Push an item into the stack

  • « Parle\Stack::pop
  • Parle\Token »
  • PHP Manual
  • Parle\Stack
  • Push an item into the stack

Parle\Stack::push

(PECL parle >= 0.5.1)

Parle\Stack::push — Push an item into the stack

Описание

public Parle\Stack::push ( mixed $item ) : void

Список параметров

item

Variable to be pushed.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The Parle\Token class

(PECL parle >= 0.5.2)

Введение

This class represents a token. Lexer returns instances of this class.

Обзор классов

Parle\Token {
/* Constants */
const integer EOI = 0 ;
const integer UNKNOWN = -1 ;
const integer SKIP = -2 ;
/* Свойства */
public integer $id ;
public string $value ;
/* Методы */
}

Свойства

id

Token id.

value

Token value.

Предопределенные константы

Parle\Token::EOI

End of input token id.

Parle\Token::UNKNOWN

Unknown token id.

Parle\Token::SKIP

Skip token id.


The Parle\ErrorInfo class

(PECL parle >= 0.5.2)

Введение

The class represents detailed error information as supplied by Parle\Parser::errorInfo()

Обзор классов

Parle\ErrorInfo {
/* Свойства */
public integer $id ;
public integer $position ;
public mixed $token ;
/* Методы */
}

Свойства

id

Error id.

position

Position in the input, where the error occurred.

token

If applicable - the Parle\Token related to the error, otherwise NULL.


The Parle\LexerException class

(PECL parle >= 0.5.1)

Введение

Обзор классов

Parle\LexerException extends Exception implements Throwable {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


The Parle\ParserException class

(PECL parle >= 0.5.1)

Введение

Обзор классов

Parle\ParserException extends Exception implements Throwable {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Функции для работы с регулярными выражениями (Perl-совместимые)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Регулярные выражения PCRE
    • Описание синтаксиса Perl-совместимых регулярных выражений — Синтаксис регулярных выражений
    • Описывает возможные модификаторы шаблонов Perl-совместимых регулярных выражений (PCRE) — Модификаторы шаблонов
    • Отличия от Perl
    • Отличия от регулярных выражений POSIX
  • Функции PCRE
    • preg_filter — Производит поиск и замену по регулярному выражению
    • preg_grep — Возвращает массив вхождений, которые соответствуют шаблону
    • preg_last_error — Возвращает код ошибки выполнения последнего регулярного выражения PCRE
    • preg_match_all — Выполняет глобальный поиск шаблона в строке
    • preg_match — Выполняет проверку на соответствие регулярному выражению
    • preg_quote — Экранирует символы в регулярных выражениях
    • preg_replace_callback_array — Выполняет поиск и замену по регулярному выражению с использованием функций обратного вызова
    • preg_replace_callback — Выполняет поиск по регулярному выражению и замену с использованием callback-функции
    • preg_replace — Выполняет поиск и замену по регулярному выражению
    • preg_split — Разбивает строку по регулярному выражению


Введение

Синтакcис шаблонов, используемых в функциях этого раздела, во многом похож на синтаксис, используемый в Perl. Выражение должно быть заключено в разделители, например, прямые слеши '/'. Разделителем могут выступать произвольные символы, кроме буквенно-цифровых, обратного слеша '\' и нулевого байта. Если символ разделителя встречается в шаблоне, его необходимо экранировать. В качестве разделителя доступны комбинации, используемые в Perl: (), {}, [] и <>. Подробней об этом рассказано в разделе Синтаксис регулярных выражений.

После закрывающего разделителя можно указывать различные модификаторы, влияющие на работу регулярных выражений. Детальная информация доступна в разделе Модификаторы шаблонов.

PHP также поддерживает POSIX-совместимые регулярные выражения, используя POSIX-совместимые функции регулярных выражений.

Замечание:

Этот модуль хранит глобальный (1 на поток) кеш компилированных регулярных выражений (до 4096).

Внимание

Помните об ограничениях PCRE. См. документацию по PCRE » http://www.pcre.org/pcre.txt для дополнительной информации.

Библиотека PCRE - это набор функций, реализующих разбор регулярных выражений с помощью того же синтаксиса и семантики, которая была реализована в Perl 5, но с некоторыми небольшими отличиями (см. ниже). Текущая реализация соответствует версии Perl 5.005.


Установка

Расширение PCRE является расширением ядра, поэтому оно всегда доступно. По умолчанию это расширение собирается с использованием встроенной библиотеки PCRE. Также можно использовать внешнюю PCRE-библиотеку, указав при сборке параметр --with-pcre-regex=DIR , где DIR указывает на директорию с библиотеками и подключаемыми файлами PCRE. Для PHP 5.6 и 7.0 рекомендуется использовать PCRE 8.10 и выше.

Начиная с PHP 7.0.0, по умолчанию поддерживается JIT-компиляция PCRE. Ее можно отключить с помощью опции --without-pcre-jit начиная с PHP 7.0.12.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Замечание:

До версии PHP 5.3.0, это расширение можно было отключить при сборке, передав опцию --without-pcre-regex .

PCRE - активный проект и по мере того как он меняется, меняется и функционал PHP, который полагается на него. Возможно, некоторые части документации PHP устарели в том плане, что они не покрывает новейшие возможности, которые предоставляет PCRE. Список изменений можно найти в » списке изменений библиотеки PCRE, а также в следующей прилагаемой здесь истории PCRE:

История обновлений поставляемой библиотеки PCRE
PHP Версия | Обновленная PCRE Версия | Замечания
7.3.0 | 10.32 |
7.2.0 | 8.41 |
7.0.3 / 5.6.18 / 5.5.32 | 8.38 | See CVE-2015-8383, CVE-2015-8386, CVE-2015-8387, CVE-2015-8389, CVE-2015-8390, CVE-2015-8391, CVE-2015-8393, CVE-2015-8394
7.0.0 / 5.6.9 / 5.5.26 / 5.4.41 | 8.37 | See CVE-2015-2325, CVE-2015-2326
5.6.0 / 5.5.10 | 8.34 |
5.5.0 / 5.4.14 / 5.3.24 | 8.32 |
5.4.9 / 5.3.19 | 8.31 |
5.3.7 | 8.12 |
5.3.6 | 8.11 |
5.3.4 | 8.10 |
5.3.3 / 5.2.14 | 8.02 |
5.3.2 | 8.00 |
5.3.0 / 5.2.13 | 7.9 |
5.2.7 | 7.8 |
5.2.6 | 7.6 |
5.2.5 | 7.3 |
5.2.4 | 7.2 |
5.2.2 | 7.0 |
5.2.0 | 6.7 |
5.1.3 | 6.6 |
5.1.0 | 6.2 |
5.0.5 | 5.0 |
5.0.0 | 4.5 |


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции конфигурации PCRE
Имя | По умолчанию | Место изменения | Список изменений
pcre.backtrack_limit | "1000000" | PHP_INI_ALL | Доступно с PHP 5.2.0.
pcre.recursion_limit | "100000" | PHP_INI_ALL | Доступно с PHP 5.2.0.
pcre.jit | "1" | PHP_INI_ALL | Доступно с PHP 7.0.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

pcre.backtrack_limit integer

Лимит обратных ссылок PCRE. Для PHP < 5.3.7 значение по умолчанию 100000.

pcre.recursion_limit integer

Лимит на рекурсию. Не забывайте о том, что если вы установите достаточно высокое значение, то PCRE может превысить размер стека (установленный операционной системой) и в конце концов вызовет падение PHP.

pcre.jit boolean

Будет ли использоваться JIT-компиляция PCRE.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы PREG
Константы | Описание | С версии
PREG_PATTERN_ORDER | Меняет порядок элементов в результирующем массиве так, чтобы элемент $matches[0] содержал полные вхождения шаблона, элемент $matches[1] - все вхождения первой взятой в круглые скобки подмаски и т.д. Только preg_match_all() реагирует на данный модификатор. |
PREG_SET_ORDER | Меняет порядок элементов в результирующем массиве так, чтобы элемент $matches[0] содержал первый набор вхождений (полное вхождение, вхождение первой подмаски, заключенной в круглые скобки...), аналогично элемент $matches[1] - второй набор вхождений и т.д. Только preg_match_all() реагирует на данный модификатор. |
PREG_OFFSET_CAPTURE | Смотрите описание флага PREG_SPLIT_OFFSET_CAPTURE. |
PREG_SPLIT_NO_EMPTY | В случае, если этот флаг указан, функция preg_split() вернет только непустые подстроки. |
PREG_SPLIT_DELIM_CAPTURE | В случае, если этот флаг указан, то preg_split() также возвращает выражение, заключенное в круглые скобки в шаблоне разделителя. |
PREG_SPLIT_OFFSET_CAPTURE | В случае, если этот флаг указан, для каждой найденной подстроки будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемых данных: каждое вхождение возвращается в виде массива, в нулевом элементе которого содержится найденная подстрока, а в первом - смещение. Этот флаг используется только в функции preg_split(). |
PREG_UNMATCHED_AS_NULL | Этот флаг указывает preg_match() и preg_match_all() включать несовпадающие подмаски в $matches в виде значений NULL. Без этого флага несовпадающие подмаски отображаются как пустые строки, как если бы не было найдено совпаданий. Установка этого флага позволяет проводить различие между двумя этими случаями. | 7.2.0
PREG_NO_ERROR | Возвращается функцией preg_last_error(), если ошибок нет. | 5.2.0
PREG_INTERNAL_ERROR | Возвращается функцией preg_last_error() в случае, если произошла внутренняя ошибка PCRE. | 5.2.0
PREG_BACKTRACK_LIMIT_ERROR | Возвращается функцией preg_last_error() в случае, когда лимит обратных ссылок был исчерпан. | 5.2.0
PREG_RECURSION_LIMIT_ERROR | Возвращается функцией preg_last_error() в случае, если лимит рекурсии был исчерпан. | 5.2.0
PREG_BAD_UTF8_ERROR | Возвращается функцией preg_last_error(), если последняя ошибка была вызвана поврежденными данными UTF-8 (только при запуске в режиме UTF-8). | 5.2.0
PREG_BAD_UTF8_OFFSET_ERROR | Возвращается функцией preg_last_error(), если смещение не соответствует началу корректной кодовой точки UTF-8 (только при запуске в режиме UTF-8). | 5.3.0
PREG_JIT_STACKLIMIT_ERROR | Возвращается функцией preg_last_error(), если последняя функция PCRE завершилась неудачно из-за лимита стека JIT. | 7.0.0
PCRE_VERSION | Версия и дата релиза PCRE (например, "7.0 18-Dec-2006"). | 5.2.4


Примеры

Пример #1 Примеры правильных шаблонов

  • /<\/\w+>/
  • |(\d{3})-\d+|Sm
  • /^(?i)php[34]/
  • {^\s+(\s+)?$}

Пример #2 Примеры неправильных шаблонов

  • /href='(.*)' - пропущен закрывающий ограничитель
  • /\w+\s*\w+/J - неизвестный модификатор 'J'
  • 1-\d3-\d3-\d4| - пропущен открывающий ограничитель


Регулярные выражения PCRE

Содержание

  • Описание синтаксиса Perl-совместимых регулярных выражений
  • Описывает возможные модификаторы шаблонов Perl-совместимых регулярных выражений (PCRE)
  • Отличия от Perl
  • Отличия от регулярных выражений POSIX


Синтаксис регулярных выражений

Содержание

  • Вступление
  • Разделители
  • Метасимволы
  • Экранирующие последовательности
  • Свойства Unicode-символов
  • Якоря
  • Метасимвол точка
  • Символьные классы
  • Альтернативный выбор
  • Установка внутренних опций
  • Подмаски
  • Повторение
  • Обратные ссылки
  • Утверждения
  • Однократные подмаски
  • Условные подмаски
  • Комментарии
  • Рекурсивные шаблоны
  • Производительность


Вступление

Ниже описаны синтаксис и семантика регулярных выражений, поддерживаемых библиотекой PCRE. Регулярные выражения также описаны в документации языка Perl и во множестве других книг, некоторые содержат большое количество примеров. Очень подробно регулярные выражения описаны в книге Джеффри Фридла "Регулярные выражения" (Jeffrey Friedl "Mastering Regular Expressions"), опубликованной издательством O'Reilly (ISBN 1-56592-257-3). Описание ниже дано в качестве справочной информации.

Регулярное выражение - это шаблон, с которым сравнивается указанная строка слева направо. Большинство символов в шаблоне являются самими собой, и совпадают с соответствующими символами в искомой строке. В качестве банального примера, шаблон The quick brown fox соответствует той части искомой строки, которая с ним совпадает.


Разделители

При использовании любой PCRE функции необходимо заключать шаблон в разделители. Разделителем может быть любой символ не являющийся буквой, цифрой, обратной косой чертой или каким-либо пробельным символом.

Часто используемыми разделителями являются косые черты (/), знаки решетки (#) и тильды (~). Ниже представлены примеры шаблонов с корректными разделителями.

/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%

Также можно использовать разделитель в виде скобок, где стартовый и завершающий разделители являются соответственно открывающей и закрывающей скобками. (), {}, [] и <> являются допустимыми парами разделителей.

(this [is] a (pattern))
{this [is] a (pattern)}
[this [is] a (pattern)]
<this [is] a (pattern)>
Разделители в виде скобок не нужно экранировать, если они также используются как метасимволы в шаблоне, но как и с другими разделителями их нужно экранировать, если они используются непосредственно как символы.

Если необходимо использовать разделитель внутри шаблона, его нужно проэкранировать с помощью обратной косой черты. Если разделитель часто используется в шаблоне, в целях удобочитаемости, лучше выбрать другой разделитель для этого шаблона.

/http:\/\//
#http://#
Функция preg_quote() может быть использована для экранирования строки, используемой в шаблоне, а ее необязательный второй параметр позволяет указать используемый разделитель.

После закрывающего разделителями можно использовать модификаторы шаблонов. Ниже следует пример регистро-независимого поиска:

#[a-z]#i


Метасимволы

Сила регулярных выражений исходит из возможности использовать условия и повторения в шаблоне. Они записываются при помощи метасимволов, которые специальным образом интерпретируются.

Существуют два различных набора метасимволов: те, которые используются внутри квадратных скобок, и те, которые используются вне квадратных скобок. Вне квадратных скобок используются следующие метасимволы:

Метасимволы вне квадратных скобок
Метасимвол | Описание
\ | общий экранирующий символ, допускающий несколько вариантов применения
^ | декларирует начало данных (или строки в многострочном режиме)
$ | декларирует конец данных или до завершения строки (или окончание строки в многострочном режиме)
. | соответствует любому символу, кроме перевода строки (по умолчанию)
[ | начало описания символьного класса
] | конец описания символьного класса
| | начало ветки условного выбора
( | начало подмаски
) | конец подмаски
? | расширяет смысл метасимвола (, является также квантификатором, означающим 0 или 1 вхождение, также преобразует жадные квантификаторы в ленивые (смотрите повторение))
* | квантификатор, означающий 0 или более вхождений
+ | квантификатор, означающий 1 или более вхождений
{ | начало количественного квантификатора
} | конец количественного квантификатора
Часть шаблона, заключенная в квадратные скобки называется символьным классом. В символьном классе используются следующие метасимволы:
Метасимволы внутри квадратных скобок (символьном классе)
Метасимвол | Описание
\ | общий экранирующий символ
^ | означает отрицание класса, допустим только в начале класса
- | означает символьный интервал
Следующие разделы детально описывают каждый из перечисленных метасимволов.


Экранирующие последовательности

Обратная косая черта ('\') имеет несколько применений. Прежде всего, если она предшествует не буквенно-цифровому символу, она снимает с него специальное значение, которое он мог иметь. Применение обратной косой черты как экранирующего символа допустимо как в символьном классе, так и вне него.

Например, если вы хотите задать соответствие символу "*", в шаблоне необходимо указать "\*". Это предотвратит трактование последующего символа как метасимвола с особым значением. Всегда безопасно экранировать не буквенно-цифровые символы с помощью "\", если вы хотите убедиться, что они означают в шаблоне самих себя. В частном случае для сопоставления с самим символом обратной косой черты, используйте запись "\\".

Замечание:

PHP-строки, заключенные в одинарные и двойные кавычки, интерпретируют обратную косую черту по-разному. Поэтому, если необходимо совпадение \ с регулярным выражением \\, в PHP-коде нужно использовать "\\\\" или '\\\\'.

В случае, если указан модификатор PCRE_EXTENDED, пробельные символы в шаблоне (вне описания символьного класса) игнорируются. Также игнорируется часть строки, находящаяся между символом "#" (опять же, не участвующем в описании символьного класса) и следующим символом перевода строки. В таком случае обратный слеш можно применять как экранирующий символ для указания вхождений пробельных символов или символа "#" в шаблоне.

Второе применение обратного слеша заключается в том, что он позволяет использовать непечатные символы в видимой форме в описании шаблона. При том, что в PCRE нет ограничений на использование непечатных символов (исключая бинарный ноль, который интерпретируется как конец шаблона), при редактировании программного кода в каком-либо текстовом редакторе гораздо удобнее использовать следующие комбинации, чем реальные символы, которые они представляют:

\a
символ оповещения, сигнал, (BEL, шестнадцатеричный код 07)
\cx
"Ctrl+x", где x - произвольный символ
\e
escape (шестнадцатеричный код 1B)
\f
разрыв страницы (шестнадцатеричный код 0C)
\n
перевод строки (шестнадцатеричный код 0A)
\p{xx}
символ со свойством xx, подробнее смотрите свойства unicode
\P{xx}
символ без свойства xx, подробнее смотрите свойства unicode
\r
возврат каретки (шестнадцатеричный код 0D)
\R
разрыв строки: совпадает с \n, \r и \r\n
\t
табуляция (шестнадцатеричный код 09)
\xhh
символ с шестнадцатеричным кодом hh
\ddd
символ с восьмеричным кодом ddd, либо ссылка на подмаску

Если быть более точным, комбинация "\cx" интерпретируется следующим образом: если "x" - символ нижнего регистра, он преобразуется в верхний регистр. После этого шестой бит символа (шестнадцатеричный код 40) инвертируется. Таким образом "\cz" интерпретируется как шестнадцатеричное значение 1A, в то время как "\c{" получает шестнадцатеричное значение 3B, а "\c;" - 7B.

После "\x" считываются еще две шестнадцатеричные цифры (они могут быть записаны в нижнем или верхнем регистре). В режиме UTF-8, разрешается использование "\x{...}", где содержимое скобок является строкой из шестнадцатеричных цифр. Она интерпретируется как символ UTF-8 character с кодом, совпадающим с данным шестнадцатеричным числом. Исходная шестнадцатеричная экранирующая последовательность, \xhh, совпадает с двухбайтным UTF-8 символом, если его значение превышает 127.

После "\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
любой символ, кроме десятичной цифры
\h
любой горизонтальный пробельный символ (начиная с версии PHP 5.2.4)
\H
любой символ, не являющийся горизонтальным пробельным символом (начиная с версии PHP 5.2.4)
\s
любой пробельный символ
\S
любой непробельный символ
\v
любой вертикальный пробельный символ (начиная с версии PHP 5.2.4)
\V
любой символ, не являющийся вертикальным пробельным символом (начиная с версии PHP 5.2.4)
\w
Любой символ, образующий "слово"
\W
Любой символ, не образующий "слово"

Каждая пара таких специальных последовательностей делит полное множество всех символов на два непересекающихся множества. Любой символ соответствует одному и только одному множеству из пары.

Следующие символы считаются как "пробельные": HT (9), LF (10), FF (12), CR (13), и пробел (32). Тем не менее, если идет локале-зависимый поиск, и произойдет совпадение с символами в диапазоне 128-255, они также будут восприняты как пробельные, например NBSP (A0).

Символ, образующий "слово" - это произвольная цифра, буква или символ подчеркивания, проще говоря, любой символ, который может являться частью "слова" в Perl. Определение букв и цифр управляется символьными таблицами, с которыми была собрана PCRE. И, как следствие, эти наборы могут отличаться в различных локализированных дистрибутивах. Например, в локали "fr" (Франция) некоторые символы с кодом выше 128 используются для записи ударных символов и, соответственно, соответствуют маске \w.

Описанные выше типы символов могут применяться как внутри, так и вне символьных классов, и соответствуют одному символу данного типа. Если текущая точка сравнения находится в конце строки, ни один из них не сможет совпасть, так как нет символа, с которым могло бы произойти совпадение.

Четвертое использование обратного слеша - определение некоторых формальных утверждений, описывающих условия касательно месторасположения особых позиций в строке и совершенно не затрагивающих сами символы. Использование подмасок как более сложных формальных утверждений описано ниже. Такими управляющими последовательностями являются:

\b
граница слова
\B
не является границей слова
\A
начало данных (независимо от многострочного режима)
\Z
конец данных либо позиция перед последним переводом строки (независимо от многострочного режима)
\z
конец данных (независимо от многострочного режима)
\G
первая совпадающая позиция в строке

Описанные выше последовательности не могут встречаться в символьных классах (исключая комбинацию "\b", которая внутри класса означает символ возврата 'backspace').

Границей слова считается такая позиция в строке, в которой из текущего и предыдущего символа только один соответствует \w или \W (т.е. один из них соответствует \w, а другой \W). Начало или конец строки также соответствуют границе слова в случае, если первый или, соответственно, последний символ совпадает с \w.

Специальные последовательности \A, \Z и \z отличаются от общеупотребляемых метасимволов начала строки '^' и конца строки '$' (описанных в разделе якоря) тем, что они всегда совпадают либо в самом начале либо в самом конце строки. На них никак не влияют опции PCRE_MULTILINE и PCRE_DOLLAR_ENDONLY. Разница между \Z и \z в том, что \Z соответствует позиции перед последним символом в случае, если последний символ - перевод строки, кроме самого конца строки. В то время, как \z соответствует исключительно концу данных.

Утверждение \G является истинным только в том случае, если текущая проверяемая позиция находится в начале совпадения, указанного параметром offset функции preg_match(). Она отличается от \A при ненулевом значении параметра offset.

\Q и \E могут быть использованы для игнорирования метасимволов регулярных выражений в шаблоне. Например: \w+\Q.$.\E$ совпадет с один или более символов, составляющих "слово",за которыми следуют символы .$. и якорь в конце строки.

Последовательность \K может быть использована для сброса начала совпадения начиная с версии PHP 5.2.4. Например, шаблон foo\Kbar совпадет с "foobar", но сообщит о том, что совпал только с "bar". Использование \K не мешает установке подмасок. Например, если шаблон (foo)\Kbar совпадет со строкой "foobar", первой подмаской все равно будет являться "foo".


Свойства Unicode-символов

Начиная с версии 5.1.0, были добавлены три дополнительные управляющие последовательности, совпадающих с некоторыми общими символьными типами в режиме UTF-8. Вот они:

\p{xx}
символ со свойством xx
\P{xx}
символ без свойства xx
\X
расширенная последовательность Unicode

Имена свойств, представленные выше как xx, ограничены общими категориями свойств Unicode. Каждый символ имеет ровно одно такое свойство, указываемое двухбуквенной аббревиатурой. Для совместимости с Perl также можно указать отрицание добавлением знака "^" между открывающей скобкой и именем свойства. Например, \p{^Lu} - это то же самое, что и \P{Lu}.

Если с \p или \P указана только одна буква, она включает все свойства, которые начинаются с этой буквы. В этом случае, если не используется отрицание, фигурные скобки необязательны; следующие два примера эквивалентны:

\p{L}
\pL

Поддерживаемые коды свойств
Свойство | Совпадение | Замечание
C | Другое |
Cc | Control |
Cf | Формат |
Cn | Не присвоено |
Co | Частное использование |
Cs | Суррогат |
L | Буква | Включает следующие свойства: Ll, Lm, Lo, Lt и Lu.
Ll | Строчная буква |
Lm | Модификатор буквы |
Lo | Другая буква |
Lt | Заглавная буква |
Lu | Прописная буква |
M | Знак |
Mc | Пробельный знак |
Me | Окружающий знак |
Mn | Не пробельный знак |
N | Число |
Nd | Десятичное число |
Nl | Буквенное число |
No | Другое число |
P | Пунктуация |
Pc | Соединяющая пунктуация |
Pd | Знаки тире |
Pe | Закрывающая пунктуация |
Pf | Заключительная пунктуация |
Pi | Начальная пунктуация |
Po | Другая пунктуация |
Ps | Открывающая пунктуация |
S | Символ |
Sc | Денежный знак |
Sk | Модификатор символа |
Sm | Математический символ |
So | Другой символ |
Z | Разделитель |
Zl | Разделитель строки |
Zp | Разделитель абзаца |
Zs | Пробельный разделитель |

Расширенные свойства, такие как музыкальные символы (InMusicalSymbols) не поддерживаются в PCRE.

Указывание регистро-независимого (безрегистрового) режима не влияет на эти управляющие последовательности. Например, \p{Lu} всегда совпадает только с прописными буквами.

Подмножества Unicode символов описываются как принадлежащие определенным сценариям. Любой символ из этих подмножеств может быть найден с использованием имени сценария. Например:

  • \p{Greek}
  • \P{Han}

Также те символы, которые не являются часть конкретного сценария объединены вместе в сценарий Common. Текущий список сценариев:

Поддерживаемые сценарии
Arabic | Armenian | Avestan | Balinese | Bamum
Batak | Bengali | Bopomofo | Brahmi | Braille
Buginese | Buhid | Canadian_Aboriginal | Carian | Chakma
Cham | Cherokee | Common | Coptic | Cuneiform
Cypriot | Cyrillic | Deseret | Devanagari | Egyptian_Hieroglyphs
Ethiopic | Georgian | Glagolitic | Gothic | Greek
Gujarati | Gurmukhi | Han | Hangul | Hanunoo
Hebrew | Hiragana | Imperial_Aramaic | Inherited | Inscriptional_Pahlavi
Inscriptional_Parthian | Javanese | Kaithi | Kannada | Katakana
Kayah_Li | Kharoshthi | Khmer | Lao | Latin
Lepcha | Limbu | Linear_B | Lisu | Lycian
Lydian | Malayalam | Mandaic | Meetei_Mayek | Meroitic_Cursive
Meroitic_Hieroglyphs | Miao | Mongolian | Myanmar | New_Tai_Lue
Nko | Ogham | Old_Italic | Old_Persian | Old_South_Arabian
Old_Turkic | Ol_Chiki | Oriya | Osmanya | Phags_Pa
Phoenician | Rejang | Runic | Samaritan | Saurashtra
Sharada | Shavian | Sinhala | Sora_Sompeng | Sundanese
Syloti_Nagri | Syriac | Tagalog | Tagbanwa | Tai_Le
Tai_Tham | Tai_Viet | Takri | Tamil | Telugu
Thaana | Thai | Tibetan | Tifinagh | Ugaritic
Vai | Yi |  |  |

\X находит расширенный Unicode графемный кластер. Расширенный графемный кластер - это один или несколько Unicode символов, которые объединяются в один символьный знак (глиф). По сути, его можно рассматривать как Unicode эквивалент для ., так как он находит один независимый комплексный символ, независимо от того, сколько отдельных символов используется для его отрисовки.

Для версий PCRE до 8.32 (что соответствует версиям PHP до 5.4.14 при использовании встроенной библиотеки PCRE), \X равносилен (?>\PM\pM*). Таким образом, он ищет символы без свойства "mark", и рассматривает последовательность как атомарную группу (см ниже). Символы со свойством "mark" обычно являются отличительными признаками, которые влияют на предыдущий символ.

Совпадение символов по Unicode свойству не является быстрой операцией, потому для этой цели PCRE необходимо осуществить поиск в структуре данных с более чем пятнадцатью тысяч символов. Поэтому традиционные управляющие последовательности в PCRE, такие как \d и \w, не используют Unicode свойства.


Якоря

По умолчанию, вне символьного класса метасимвол начала строки (^) соответствует началу обрабатываемых данных (если не используются модификаторы). Внутри символьного класса он (^) имеет совершенно другое значение.

Метасимвол начала строки (^) не обязан быть первым символом шаблона в случае, если в шаблоне используются несколько альтернатив, но должен быть первым символом в каждой из альтернатив, в которой он встречается, если шаблон когда-либо сопоставим с соответствующей веткой. Если все альтернативы начинаются с метасимвола начала строки (^), то шаблон ограничен для совпадения исключительно в начале строки, говорят что шаблон "заякорен". (Существуют и другие способы "заякорить" шаблон).

Соответствие метасимволу конца строки (знак доллара, $) достигается только в конце строки или непосредственно перед последним символом в случае, если им является перевод строки (если модификаторы не указаны). Метасимвол конца строки ($) не обязан быть последним символом шаблона в случае, если используется несколько альтернатив, но должен быть последним символом в каждой альтернативе, в которой он фигурирует. Внутри символьного класса символ '$' не имеет специального значения.

Поведение метасимвола конца строки может быть изменено при помощи модификатора PCRE_DOLLAR_ENDONLY так, чтобы он соответствовал исключительно концу строки. Данный флаг никак не касается специальной последовательности \Z.

Значение метасимволов начала и конца строки меняется в случае, если используется модификатор PCRE_MULTILINE. В таком случае, помимо совпадений в начале или в конце строки, метасимволы '^' и '$' соответствуют позиции непосредственно после символа перевода строки "\n". Например, шаблон /^abc$/ встречается в строке "def\nabc" в многострочном режиме и не встречается в нормальном режиме. Таким образом, шаблон который "заякорен" в однострочном режиме, все ветки которого, начинаются с "^", не будет являться "заякоренным" в многострочном режиме. Модификатор PCRE_DOLLAR_ENDONLY игнорируется в случае, если модификатор установлен PCRE_MULTILINE.

Следует заметить, что служебные последовательности \A, \Z и \z могут использоваться для сопоставления с началом либо концом строки в обоих режимах. И если все ветви шаблона начинаются с \A, шаблон будет "заякорен" независимо от присутствия модификатора PCRE_MULTILINE.


Метасимвол точка

Вне символьного класса точка соответствует любому (в том числе и непечатному, бинарному) символу, кроме символа перевода строки '\n' (в обычном режиме). В случае, если используется модификатор PCRE_DOTALL, точка соответствует также символу перевода строки. Обработка метасимвола "точка", никак не связана с метасимволами начала и конца строки, единственное, что у них общего - так это специальное отношение к символу перевода строки. Внутри символьного класса точка не имеет специального значения.

Для совпадения с одним байтом можно использовать последовательность \C. Это может быть полезно в режиме UTF-8, так как с точкой в этом режиме будет совпадать целый символ, который может состоять из нескольких байт.


Символьные классы

Открывающая квадратная скобка объявляет начало символьного класса, завершаемого закрывающей квадратной скобкой. Символ ']' не имеет специального значения, и в случае, если закрывающая квадратная скобка необходима как член символьного класса, она должна быть первым символом непосредственно после открывающей квадратной скобки (если используется метасимвол '^', то непосредственно после него), либо экранироваться при помощи обратного слеша.

Символьный класс соответствует одиночному символу обрабатываемой строки, причем сам символ должен содержаться в наборе, определяемым классом. В случае, если первым символом описания класса является '^', логика работы инвертируется: класс соответствует одиночному символу, который не содержится в наборе, определяемым классом. Если символ '^' необходим как член класса, его не следует помещать первым символом в описании класса либо необходимо экранировать при помощи обратного слеша.

К примеру, символьный класс [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_] соответствует любой букве или цифре, но не символу подчеркивания.

Все не буквенно-цифровые символы, кроме \, -, ^ (вначале) и завершающего ']', не являются специальными символами, но использование экранирующего слеша перед ними не навредит. Символ конца шаблона всегда является особым случаем и всегда должен быть проэкранирован внутри выражения.

Perl поддерживает нотацию POSIX для символьных классов. Это включает использование имен, заключенных в [: и :], в свою очередь заключенных в квадратные скобки. PCRE также поддерживает эту запись. Например, [01[:alpha:]%] совпадет с "0", "1", любым алфавитным символом или "%". Поддерживаются следующие имена классов:

Символьные классы
alnum | буквы и цифры
alpha | буквы
ascii | символы с кодами 0 - 127
blank | только пробел или символ табуляции
cntrl | управляющие символы
digit | десятичные цифры (то же самое, что и \d)
graph | печатные символы, исключая пробел
lower | строчные буквы
print | печатные символы, включая пробел
punct | печатные символы, исключая буквы и цифры
space | пробельные символы(почти то же самое, что и \s)
upper | прописные буквы
word | символы "слова" (то же самое, что и \w)
xdigit | шестнадцатеричные цифры
Класс пробельных символов (space) - это горизонтальная табуляция (HT, 9), перевод строки (LF, 10), вертикальная табуляция (VT, 11), разрыв страницы (FF, 12), возврат каретки (CR, 13) и пробел (32). Учтите, что этот список включает вертикальную табуляцию (VT, код 11). Это отличает "space" от \s, который не включает этот символ (для совместимости с Perl).

Название word - это расширение Perl, а blank - расширение GNU, начиная с версии Perl 5.8. Другое расширение Perl - это отрицание, которое указывается символом ^ после двоеточия. Например, [12[:^digit:]] совпадет с "1", "2", или с любой не-цифрой.

В режиме UTF-8, символы со значениями, превышающими 128, не совпадут ни с одним из символьных классов POSIX. Начиная с PHP 5.3.0 и libpcre 8.10 некоторые символьные классы изменены, чтобы использовать свойства символов Unicode, в этом случае упомянутое ограничение не применяется. Читайте » руководство PCRE(3) для подробностей.

Свойства символов Unicode могут возникнуть внутри символьного класса. Они не могут быть частью диапазона. Символ минус (дефис), после символьного класс Unicode будет совпадать буквально. Попытка закончить диапазон с помощью свойства символа Unicode вызовет предупреждение.


Альтернативный выбор

Символ вертикальной черты '|' используется для разделения альтернативных масок. Например, шаблон gilbert|sullivan соответствует как "gilbert", так и "sullivan". Допустимо указывать любое количество альтернатив, также допустимо указывать пустые альтернативы (соответствуют пустой строке). В процессе поиска соответствия просматриваются все перечисленные альтернативы слева направо, останавливаясь после первого найденного соответствия. В случае, если альтернативные варианты перечислены в подмаске, то весь шаблон совпадет только в случае соответствия одного из альтернативных вариантов подмаски и остатка основного шаблона.


Установка внутренних опций

Установки PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL, PCRE_UNGREEDY, PCRE_EXTRA, PCRE_EXTENDED и PCRE_DUPNAMES могут быть локально предопределены в шаблоне с использованием специальных Perl-последовательностей, заключенных между символами "(?" и ")". Ниже представлен список этих опций:

Символы внутренних опций
i | для PCRE_CASELESS
m | для PCRE_MULTILINE
s | для PCRE_DOTALL
x | для PCRE_EXTENDED
U | для PCRE_UNGREEDY
X | для PCRE_EXTRA (больше не поддерживается с PHP 7.3)
J | для PCRE_INFO_JCHANGED

Например, (?im) указывает на регистронезависимый, многострочный режим поиска. Также можно сбросить опцию, поставив перед ней символ '-', либо комбинировать установку и отмену режимов. Например, (?im-sx) устанавливает флаги PCRE_CASELESS, PCRE_MULTILINE и отменяет флаги PCRE_DOTALL и PCRE_EXTENDED. В случае, если символ расположен одновременно после и перед символом '-', опция будет отменена.

Если изменение опции происходит на самом верхнем уровне (т.е. вне подмаски), изменение будет применено к оставшейся части шаблона. Таким образом, /ab(?i)c/ совпадет только с "abc" и "abC".

Если изменение опции происходит внутри подмаски, эффект будет другим. Это изменение поведения в Perl 5.005. Изменение опции внутри подмаски повлияет только на оставшуюся часть этой подмаски, то есть (a(?i)b)c совпадет только с 'abc' и 'aBc' и больше ни с чем (разумеется, если PCRE_CASELESS не включен). Это означает, что в разных частях шаблона опции могут отличаться. Любые изменения, произошедшие в одной альтернативной ветке, переносятся и в другие ветки в пределах одной подмаски. Например, (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 соответственно. Максимальное количество захватывающих подмасок - 65535. Такие большие шаблоны могут не скомпилироваться, в зависимости от настроек libpcre.

В случае, если в незахватывающей подмаске необходимо указать дополнительные опции, можно воспользоваться удобным сокращением: символ, обозначающий устанавливаемую опцию помещается между "?" и ":". Таким образом, следующие два шаблона

(?i:saturday|sunday)
(?:(?i)saturday|sunday)

соответствуют одному и тому же набору строк. Поскольку альтернативные версии берутся слева направо, и установленные опции сохраняют свое действие до конца подмаски, опция, установленная в одной ветке, также имеет эффект во всех последующих ветках. Поэтому приведенные выше шаблоны совпадают как с "SUNDAY", так и с "Saturday".

Также можно использовать именованные подмаски с помощью синтаксиса (?P<name>pattern). Эта подмаска будет индексирована в массиве совпадений кроме обычного числового индекса, еще и по имени name. В PHP 5.2.2 было добавлено два альтернативных синтаксиса: (?<name>pattern) и (?'name'pattern).

Иногда бывает необходимо иметь несколько совпадений, исключающих друг друга. Обычно, каждое такое совпадение получает свой собственный номер, даже если шаблон позволяет совпасть только одному из них. Синтаксис (?| позволяет обойти это поведение и убрать дублирующиеся номера. Рассмотрим следующее регулярное выражение, сопоставленное со строкой Sunday:

(?:(Sat)ur|(Sun))day

Здесь Sun сохраняется в ссылке 2, тогда как ссылка 1 пуста. Если же совпадет Sat, то она будет помещена в ссылку 1, а ссылка 2 вообще не будет существовать. Использование (?| в шаблоне решает эту проблему:

(?|(Sat)ur|(Sun))day

В этом шаблоне обе подмаски Sun и Sat будут сохранены под номером 1.


Повторение

Повторение задается при помощи квантификаторов, следующих за любым из указанных ниже элементов:

  • произвольным, возможно экранированным, символом
  • метасимволом "точка"
  • символьным классом
  • ссылкой на предыдущий фрагмент шаблона (см. следующий раздел)
  • взятой в круглый скобки подмаской (если это не утверждение - см. далее)

Общий квантификатор повторения указывает минимальное и максимальное допустимое количество совпадений, согласно двум числам, заключенными в фигурные скобки и разделенными запятой. Числа должны быть меньше чем 65536, и первое число не должно превышать второе по значению. Например: z{2,4} соответствует "zz", "zzz" или "zzzz". Закрывающая фигурная скобка сама по себе не является специальным символом. В случае, если второе число опущено, но запятая присутствует, нет верхнего предела; в случае, если и второе число и запятая опущены, требуется точное число повторений. Таким образом [aeiou]{3,} соответствует как минимум трем последовательным гласным (а также любому их количеству выше трех), в то время как \d{8} соответствует ровно восьми цифрам. Открывающая фигурная скобка, расположенная в недопустимой для квантификатора позиции, либо не соответствующая синтаксису квантификатора, интерпретируется как обыкновенная символьная строка. Например, {,6} не является квантификатором, а интерпретируется как символьная строка из четырех символов.

Квантификатор {0} является допустимым и ведет себя таким образом, будто бы сам квантификатор и предшествующий ему элемент отсутствуют.

Для удобства (а так же обратной совместимости) три наиболее распространённых квантификатора имеют односимвольные аббревиатуры:

Односимвольные квантификаторы
* | эквивалентен {0,}
+ | эквивалентен {1,}
? | эквивалентен {0,1}

Можно конструировать бесконечные циклы, указав после шаблона, совпадающего с пустой строкой, квантификатор, не имеющий верхнего предела, например: (a?)*

Ранние версии Perl и PCRE выдавали ошибку во время компиляции для таких шаблонов. Однако, поскольку бывают случаи, когда подобные шаблоны могли бы быть полезны, была добавлена поддержка таких шаблонов. Но если любое повторение такой подмаски фактически не совпадает ни с какими символами, цикл принудительно прерывается.

По умолчанию, все квантификаторы являются "жадными", это означает, что они совпадают максимально возможное количество раз (но не более, чем максимально допустимое количество раз), не приводя к невозможности сопоставления остальных частей шаблона. Классический пример проблем, которые могут возникнуть в связи с такой особенностью квантификаторов - нахождение комментариев в C-программах. Комментарием считается произвольный текст, находящийся внутри символьных комбинаций /* и */ (при этом, символы '/' и '*' также могут быть частью комментария). Попытка найти комментарии при помощи шаблона /\*.*\*/ в строке /* первый комментарий */ не комментарий /* второй комментарий */ закончится неудачей, поскольку указанный шаблон соответствует всей строке целиком (из-за жадности квантификатора '*').

Однако, если сразу же после квантификатора идет вопросительный знак, он становится "ленивым" и соответствует минимально допустимому количеству раз. Таким образом, шаблон /\*.*?\*/ корректно находит все комментарии языка Си. Использование символа '?' после квантификатора влияет исключительно на его жадность, и не затрагивает никакие другие свойства. Не следует путать использование символа '?' как, собственно, квантификатора (ноль либо одно соответствие) и как ограничителя жадности. Также в следствие его двойственной функциональности может использоваться следующая запись: \d??\d, которая в первую очередь соответствует одной цифре, но также может соответствовать и двум цифрам, если это необходимо для соответствия остальных частей шаблона.

В случае, если установлена опция PCRE_UNGREEDY (отсутствующая в Perl), квантификаторы не являются жадными по умолчанию, но могут становиться таковыми, если за ними следует символ '?'. Говоря другими словами, знак вопроса инвертирует жадность квантификаторов.

Квантификаторы, за которыми следует +, являются "захватывающими". Они поглощают столько символов, сколько могут и не возвращаются обратно для совпадения остатка шаблона. Таким образом .*abc совпадет с "aabc", а .*+abc - нет, потому что .*+ захватит всю строку целиком. Захватывающие квантификаторы могут быть использованы для ускорения обработки.

В случае, если используется подмаска с квантификатором, для которого задано минимальное количество повторений (больше одного), либо задано максимальное количество повторений, то для откомпилированного шаблона требуется больше памяти (пропорционально минимуму либо максимуму соответственно).

В случае, если шаблон начинается с .* либо .{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"... При каждой итерации подмаски обратная ссылка соответствует той части строки, которая была захвачена при предыдущей итерации. Чтобы такая конструкция работала, шаблон должен быть построен так, чтобы при первой итерации сопоставление с обратной ссылкой не производилось. Этого можно достичь, используя альтернативы (как в предыдущем примере), либо квантификаторы с минимумом, равным нулю.

Начиная с PHP 5.2.2, управляющая последовательность \g может быть использована для абсолютных и относительных ссылок на подмаски. После этой последовательности должно быть указано беззнаковое или отрицательное число, при желании заключенное в фигурные скобки. Последовательности \1, \g1 и \g{1} эквивалентны друг другу. Использование этого шаблона с беззнаковым числом поможет избежать двусмысленности, присущей числам после обратного слеша. Это также помогает отличить обратные ссылки от символов в восьмеричном формате, а также упрощает запись числового литерала сразу после обратной ссылки, например, \g{2}1.

Использование отрицательных чисел с \g полезно при использовании относительных ссылок. Например, (foo)(bar)\g{-1} соответствует "foobarbar", а (foo)(bar)\g{-2} соответствует "foobarfoo". Это также может быть полезно в длинных шаблонах, в качестве альтернативы отслеживания числа подмасок, на которые можно ссылаться в последующей части шаблона.

Указать обратную ссылку на именованную подмаску можно с помощью (?P=name) или, начиная с PHP 5.2.2, \k<name> или \k'name'. Кроме того, в PHP 5.2.4 была добавлена поддержка \k{name} и \g{name}, а в PHP 5.2.7 для \g<name> и \g'name'.


Утверждения

Утверждения - это проверки касательно символов, идущих до или после текущей позиции сопоставления, ничего при этом не поглощая (никакие символы исходного текста не ставятся в соответствие утверждениям). Наиболее простые варианты утверждений, такие как \b, \B, \A, \Z, \z, ^ и $ рассмотрены в escape-последовательности. Более сложные утверждения записываются как подмаски. Утверждения бывают двух видов: те, которые анализируют текст, следующий после текущей позиции (look ahead), и идущий перед ней (look behind).

Сопоставление подмаски, содержащий утверждение, происходит обычным образом, за исключением того, что текущая позиция не изменяется. Утверждения касательно последующего текста начинаются с (?= для положительных утверждений и с (?! для отрицающих утверждений. Например, \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) \) )

Первая часть соответствует опциональной открывающей скобке, и в случае если она присутствует, захватывает ее как значение первой подмаски. Следующая часть соответствует одному или более символам, отличным от круглой скобки. Третья часть является условной подмаской, зависящей от результата сопоставления первой подмаски. В случае, если в начале обрабатываемых данных была обнаружена открывающая круглая скобка, условие будет интерпретировано как истина, и, следовательно, для успешного сопоставления третьей части шаблона необходима закрывающая круглая скобка. В противном случае, поскольку не указана вторая ветвь условного шаблона, третья часть будет сопоставлена с пустой строкой. Суммируя все вышесказанное, приведенный шаблон совпадает с последовательностью не-скобок, возможно, заключенной в круглые скобки.

Если условием является строка (R), оно будет выполнено, если будет произведен рекурсивный вызов к шаблону или подмаске. На "самом верхнем уровне" условие ложно.

Если условие не является последовательностью цифр или (R), оно должно быть утверждением. Это может быть либо положительная или отрицательная проверка последующего либо предыдущего текста. Рассмотрим данный шаблон, снова содержащий незначащие пробелы, с двумя альтернативами на второй строке:

(?(?=[^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 изнутри рекурсии.

(?1), (?2) и так далее могут быть использованы для рекурсивных подмасок. Также возможно использовать именованные подмаски: (?P>name) или (?&name).

Если синтаксис ссылки на рекурсивную подмаску (как по имени, так и по числовому индексу) используется вне скобок, к которым он относится, он отрабатывает аналогично подпрограмме в языке программирования. Возьмем более ранний пример, указывающий что шаблон (sens|respons)e and \1ibility соответствует "sense and sensibility" и "response and responsibility", но не "sense and responsibility". Если вместо этого использовать шаблон (sens|respons)e and (?1)ibility, он совпадет с "sense and responsibility" так же, как и с другими двумя строками. Однако, такие ссылки должны быть указаны после подмаски, на которую они ссылаются.

Максимальная строка обрабатываемой строки не должна превышать максимально доступного целого числа. Однако, так как для обработки подмасок и бесконечного повторения PCRE использует рекурсию, это означает, что размер обрабатываемых строк в некоторых шаблонах также может быть ограничен доступным размером стека.


Производительность

Некоторые элементы, которые могут встречаться в шаблонах, являются более эффективными, чем ряд других. Например, гораздо эффективней использовать символьный класс [aeiou] вместо набора альтернатив (a|e|i|o|u). Как правило, более простая конструкция является более эффективной. Книга Джеффри Фридла содержит много обсуждений вопроса оптимизации регулярных выражений.

В случае, если шаблон начинается с .* и используется флаг PCRE_DOTALL, шаблон неявно заякоривается, так как он может совпадать только в начале строки. Но если PCRE_DOTALL не используется, PCRE не может выполнить соответствующую оптимизацию, так как в таком случае метасимвол '.' не соответствует символу начала строки (если обрабатываемые данные содержат переводы строк, такой шаблон может соответствовать шаблону не от начала строки, а от позиции непосредственно после перевода строки). Например, применяя шаблон (.*) second к строке "first\nand second" (где \n обозначает символ перевода строки), значение, захваченное первой подмаской, будет 'and'. Чтобы обработать все возможные точки соответствия, PCRE пытается сопоставить шаблон после каждого символа перевода строки.

В случае, если вы используете подобные шаблоны для обработки данных, не содержащих переводы строк, для лучшей производительности используйте модификатор PCRE_DOTALL, либо начинайте шаблон с ^.* для указания явного заякоривания. Это предотвратит PCRE от поиска символов новых строк и дополнительных попыток сопоставить шаблон с каждой такой найденной позицией.

Избегайте шаблонов, которые содержат вложенные неограниченные повторения. Сопоставление их со строками, не содержащими совпадений, занимает длительное время. Рассмотрим пример шаблона (a+)*

Он может соответствовать с "aaaa" 33-мя различными способами, и эта цифра очень быстро растет при увеличении строки. (В данном примере, квантификатор * может совпадать 0, 1, 2, 3 или 4 раза, и для каждого такого случая, кроме нуля, квантификатор + также может совпадать различное число раз.) Если остаток шаблона таков, что все совпадение терпит неудачу, PCRE должна попробовать все возможные варианты совпадения, что может потребовать огромного количества времени.

При помощи оптимизации можно отловить наиболее простые случаи, такие как (a+)*b где следом идёт литеральный символ. Прежде, чем производить стандартную процедуру поиска, PCRE проверяет в последующей подстроке наличие символа 'b', и, в случае отсутствия такового, попытка сопоставления немедленно завершается неудачей. Однако, когда последующего литерала нет, оптимизация не может быть применена. Вы можете ощутить разницу, сравнив поведение (a+)*\d с поведением приведенного выше шаблона. Первый определяет невозможность сопоставления практически сразу же, при сопоставлении со строкой состоящей из символов 'a', в то время как второй тратит длительное время на поиск в строках длиннее 20 символов.


Модификаторы шаблонов

Ниже перечислены все доступные на сегодняшний день модификаторы. Имя, взятое в круглые скобки, указывает внутреннее 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_EVAL)
Внимание

Эта функциональность считается УСТАРЕВШЕЙ с PHP 5.5.0, и УДАЛЕНА в PHP 7.0.0.

Если используется данный устаревший модификатор, preg_replace() после выполнения стандартных подстановок в заменяемой строке интерпретирует ее как PHP-код и использует результат для замены искомой строки. Одинарные и двойные кавычки, обратные слеши (\) NULL-символы будут проэкранированы обратными слешами в подставляемых обратных ссылках.
Предостережение

Прежде чем подставить значение обратной ссылки, к этому значению применяется функция addslashes. Таким образом, если обратная ссылка используется как строка в кавычках, то экранированные символы будут преобразованы в строковые константы. Однако проэкранированные символы, которые обычно не должны изменяться, сохраняют примененные к ним слеши. Это делает использование данного модификатора довольно проблематичным.

Предостережение

Убедитесь, что параметр replacement содержит строку с корректным PHP-кодом, иначе PHP сообщит об ошибке парсинга на строке, содержащей вызов preg_replace().

Предостережение

Использовать этот модификатор не рекомендуется, так как это может легко добавить уязвимости удаленного выполнения кода. Для предотвращения этого следует использовать функцию preg_replace_callback():

<?php
$html = $_POST['html'];

// Заголовки в верхнем регистре
$html = preg_replace_callback(
    '(<h([1-6])>(.*?)</h\1>)',
    function ($m) {
        return "<h$m[1]>" . strtoupper($m[2]) . "</h$m[1]>";
    },
    $html
);

Если бы приведенный выше пример был написан с использованием функции preg_replace() и модификатора e, код можно было бы использовать для атаки, передав строку, такую как <h1>{${eval($_GET[php_code])}}</h1>. Это дало бы злоумышленнику возможность выполнить произвольный код PHP и таким образом, дало бы им почти полный доступ к серверу.

Замечание:

Этот модификатор используется только в функции preg_replace(), в других PCRE функциях он игнорируется.

A (PCRE_ANCHORED)
Если используется данный модификатор, соответствие шаблону будет достигаться только в том случае, если он "заякорен", то есть соответствует началу строки, в которой производится поиск. Того же эффекта можно достичь подходящей конструкцией с вложенным шаблоном, которая является единственным способом реализации этого поведения в Perl.
D (PCRE_DOLLAR_ENDONLY)
Если используется данный модификатор, метасимвол $ в шаблоне соответствует только окончанию обрабатываемых данных. Без этого модификатора метасимвол $ соответствует также позиции перед последним символом, в случае, если им является перевод строки (но не распространяется на любые другие переводы строк). Данный модификатор игнорируется, если используется модификатор m. В языке Perl аналогичный модификатор отсутствует.
S
В случае, если планируется многократно использовать шаблон, имеет смысл потратить немного больше времени на его анализ, чтобы уменьшить время его выполнения. В случае, если данный модификатор используется, проводится дополнительный анализ шаблона. В настоящем это имеет смысл только для "незаякоренных" шаблонов, не начинающихся с какого-либо определенного символа.
U (PCRE_UNGREEDY)
Этот модификатор инвертирует жадность квантификаторов, таким образом они по умолчанию не жадные. Но становятся жадными, если за ними следует символ ?. Такая возможность не совместима с Perl. Его также можно установить с помощью (?U) установки модификатора внутри шаблона или добавив знак вопроса после квантификатора (например, .*?).

Замечание:

В нежадном режиме обычно невозможно совпадение символов превышающих pcre.backtrack_limit.

X (PCRE_EXTRA)
Этот модификатор включает дополнительную функциональность PCRE, которая не совместима с Perl: любой обратный слеш в шаблоне, за которым следует символ, не имеющий специального значения, приводят к ошибке. Это обусловлено тем, что подобные комбинации зарезервированы для дальнейшего развития. По умолчанию же, как и в Perl, слеш со следующим за ним символом без специального значения трактуется как опечатка. На сегодняшний день это все возможности, которые управляются данным модификатором
J (PCRE_INFO_JCHANGED)
Модификатор (?J) меняет значение локальной опции PCRE_DUPNAMES - подшаблоны могут иметь одинаковые имена. Модификатор J поддерживается с версии PHP 7.2.0.
u (PCRE_UTF8)
Этот модификатор включает дополнительную функциональность PCRE, которая не совместима с Perl: шаблон и целевая строка обрабатываются как UTF-8 строки. Недопустимая целевая строка приводит к тому, что функции preg_* ничего не находят, а неправильный шаблон приводит к ошибке уровня E_WARNING. Пятый и шестой октеты UTF-8 последовательности рассматриваются недопустимыми с PHP 5.3.4 (согласно PCRE 7.3 2007-08-28); ранее они считались допустимыми.


Отличия от Perl

Описанные здесь отличия относятся к версии Perl 5.005.

  1. По умолчанию пробельный символ - это любой символ, который функция isspace() из библиотеки C опознает таковым, хотя возможно скомпилировать PCRE с альтернативными таблицами символов. Функция isspace() определяет как пробельный следующие символы: пробел, конец страницы (formfeed), перевод строки, возврат каретки, горизонтальную табуляцию и вертикальную табуляцию. Perl 5 же не включает вертикальную табуляцию в список пробельных символов. Экранирование \v долгое время присутствовавшее в документации Perl на самом деле никогда не распознавалось. Однако, символ как таковой, считался за пробельный до версии 5.002. В 5.004 и 5.005 он не определяется как \s.
  2. PCRE не позволяет использовать квантификаторы повторения в опережающих предположениях. Perl разрешает, но они не означают того, о чем вы могли подумать. К примеру, (?!a){3} не проверяет, что следующие три символа не "a". Проверяется только то, что следующий символ не "a" три раза.
  3. Захватывающие подшаблоны, которые возникают в отрицательных опережающих проверках считаются, но их записи в векторе смещений никогда не устанавливаются. Perl устанавливает числовые переменные из любых подобных масок, которые совпали до момента, когда предположение не подтвердилось при проверке чего-либо, но только если опережающее предположение содержит только одну ветвь.
  4. Хотя бинарные нулевые символы поддерживаются в проверяемой строке, они недопустимы в строке шаблона, потому что она передается как нормальная C-строка, в которой этот символ обозначает конец строки. Для его использования в строке шаблона необходимо пользоваться конструкцией "\x00".
  5. Следующие экранирующие последовательности Perl не поддерживаются: \l, \u, \L, \U. Фактически они реализованы стандартным обработчиком строк Perl и не являются частью модуля обработки регулярных выражений.
  6. Предположение \G из Perl также не поддерживается, поскольку не имеет отношения к отдельно взятой схеме совпадений.
  7. Довольно очевидно, что PCRE не поддерживает конструкции (?{code}) и (??{code}). Тем не менее, есть поддержка рекурсивных шаблонов.
  8. Есть еще странный момент при в Perl 5.005_02, связанный с установкой захваченных строк, когда часть шаблона повторяется. К примеру, проверка "aba" шаблоном /^(a(b)?)+$/, устанавливает $2 в значение "b", но проверка "aabbaa" шаблоном /^(aa(bb)?)+$/, оставляет $2 не выставленной. Хотя, если шаблон поменять на /^(aa(b(b))?)+$/, то $2 (и $3) будут установлены. В Perl 5.004, $2 установится в обоих случаях, и это также истинно и для PCRE. Если в будущем Perl как-либо зафиксирует это поведение, PRCE будет ему следовать.
  9. Другое до сих пор неразрешенное противоречие в том, что Perl 5.005_02, шаблоном /^(a)?(?(1)a|b)+$/ распознает строку "a", а PCRE нет. Хотя и в Perl и в PCRE, /^(a)?a/ распознает "a" и оставляет $1 не выставленой.

  10. PCRE предоставляет некоторые расширения регулярных выражений Perl:

    1. Несмотря на то, что опережающие предположения должны распознавать строки фиксированной длины, каждое альтернативное ретроспективное предположение может распознавать строки разной длины. Perl 5.005 требует, чтобы они были одной длины.
    2. Если установлена PCRE_DOLLAR_ENDONLY и не установлена PCRE_MULTILINE, метасимвол $ распознается только в самом конце строки.
    3. Если установлена PCRE_EXTRA, обратный слеш с последующей за ним буквой, не имеющий специального значения, приводит к ошибке.
    4. Если установлена PCRE_UNGREEDY, жадность квантификаторов повторения инвертирована. То есть по умолчанию они не жадные, пока за ними не будет знак вопроса.


Отличия от регулярных выражений POSIX

По состоянию на PHP 5.3.0 расширение регулярных выражений POSIX? считается устаревшим. Существует целый ряд отличий между регулярными выражениями POSIX и PCRE. На этой странице перечислены наиболее важные из них, которые необходимо знать для того, чтобы выполнить преобразование в PCRE.

  1. Функции PCRE требуют, чтобы шаблон был заключен в разделители.
  2. В отличие от POSIX, в расширении PCRE нет специальных функций для поиска совпадений без учета регистра. Вместо них используется модификатор шаблона i (PCRE_CASELESS). Также доступны другие модификаторы шаблонов для изменения стратегии поиска совпадений.
  3. Функции POSIX находят самое длинное совпадение, ближнее к левому краю, а PCRE останавливается с первым найденным совпадением. Если строка не совпадает вовсе, это не имеет значения, в противном случае это может оказать существенное влияние и на результаты поиска совпадений, и на скорость этого поиска. Чтобы проиллюстрировать эту разницу, рассмотрим следующий пример из книги Джеффри Фридла "Регулярные выражения" (Jeffrey Friedl, "Mastering Regular Expressions"). При применении шаблона one(self)?(selfsufficient)? к строке oneselfsufficient, PCRE вернет oneself, но при использовании POSIX результатом будет вся строка oneselfsufficient. Обе (под)строки соответствуют исходному шаблону, но POSIX требует, чтобы наиболее длинная вернулась в качестве результата.
  4. Определение "символьного класса" в POSIX отличается от PCRE. Простые выражения в квадратных скобках, для нахождения определенных символов поддерживается в символьных классах PCRE, а сопоставления элементов, символьные классы и символьные эквиваленты POSIX не поддерживаются. Передача выражения с символьным классом, начинающегося и заканчивающегося на символы :, . или =, в PCRE рассматривается как попытка использования одной из этих неподдерживаемых функций и вызывает ошибку компиляции.

Замены для функций
POSIX | PCRE
ereg_replace() | preg_replace()
ereg() | preg_match()
eregi_replace() | preg_replace()
eregi() | preg_match()
split() | preg_split()
spliti() | preg_split()
sql_regcase() | Нет эквивалента


Функции PCRE

Содержание

  • preg_filter — Производит поиск и замену по регулярному выражению
  • preg_grep — Возвращает массив вхождений, которые соответствуют шаблону
  • preg_last_error — Возвращает код ошибки выполнения последнего регулярного выражения PCRE
  • preg_match_all — Выполняет глобальный поиск шаблона в строке
  • preg_match — Выполняет проверку на соответствие регулярному выражению
  • preg_quote — Экранирует символы в регулярных выражениях
  • preg_replace_callback_array — Выполняет поиск и замену по регулярному выражению с использованием функций обратного вызова
  • preg_replace_callback — Выполняет поиск по регулярному выражению и замену с использованием callback-функции
  • preg_replace — Выполняет поиск и замену по регулярному выражению
  • preg_split — Разбивает строку по регулярному выражению


Производит поиск и замену по регулярному выражению

  • « Функции PCRE
  • preg_grep »
  • PHP Manual
  • Функции PCRE
  • Производит поиск и замену по регулярному выражению

preg_filter

(PHP 5 >= 5.3.0, PHP 7)

preg_filter — Производит поиск и замену по регулярному выражению

Описание

preg_filter ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) : mixed

Функция preg_filter() идентична функции preg_replace() за исключением того, что возвращает только те значения (возможно, преобразованные), в которых найдено совпадение. Подробнее о работе функции читайте в документации к preg_replace().

Возвращаемые значения

Возвращает массив (array), если аргумент subject имеет тип array или строка (string) в противном случае.

Если совпадений не найдено или возникла ошибка, возвращается пустой массив (array), когда subject имеет тип array или NULL в противном случае.

Примеры

Пример #1 Пример для сравнения функций preg_filter() и preg_replace()

<?php
$subject = array('1', 'а', '2', 'б', '3', 'А', 'Б', '4');
$pattern = array('/\d/', '/[а-я]/', '/[1а]/');
$replace = array('А:$0', 'Б:$0', 'В:$0');

echo "preg_filter возвращает\n";
print_r(preg_filter($pattern, $replace, $subject));

echo "preg_replace возвращает\n";
print_r(preg_replace($pattern, $replace, $subject));
?>

Результат выполнения данного примера:

preg_filter возвращает
Array
(
    [0] => А:В:1
    [1] => Б:В:а
    [2] => А:2
    [3] => Б:б
    [4] => А:3
    [7] => А:4
)
preg_replace возвращает
Array
(
    [0] => А:В:1
    [1] => Б:В:а
    [2] => А:2
    [3] => Б:б
    [4] => А:3
    [5] => А
    [6] => Б
    [7] => А:4
)

Смотрите также

  • Шаблоны PCRE
  • preg_quote() - Экранирует символы в регулярных выражениях
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • preg_replace_callback() - Выполняет поиск по регулярному выражению и замену с использованием callback-функции
  • preg_grep() - Возвращает массив вхождений, которые соответствуют шаблону
  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE


Возвращает массив вхождений, которые соответствуют шаблону

  • « preg_filter
  • preg_last_error »
  • PHP Manual
  • Функции PCRE
  • Возвращает массив вхождений, которые соответствуют шаблону

preg_grep

(PHP 4, PHP 5, PHP 7)

preg_grep — Возвращает массив вхождений, которые соответствуют шаблону

Описание

preg_grep ( string $pattern , array $input [, int $flags = 0 ] ) : array

Возвращает массив, состоящий из элементов входящего массива input, которые соответствуют заданному шаблону pattern.

Список параметров

pattern

Искомый шаблон в виде строки.

input

Входящий массив.

flags

В случае, если установлен в PREG_GREP_INVERT, функция preg_grep() возвращает те элементы массива, которые не соответствуют заданному шаблону pattern.

Возвращаемые значения

Возвращает массив, индексированный ключами из массива input.

Примеры

Пример #1 Пример использования preg_grep()

<?php
// Возвращает все элементы массива,
// содержащие числа с плавающей точкой
$fl_array = preg_grep("/^(\d+)?\.\d+$/", $array);
?>

Смотрите также

  • Регулярные выражения PCRE
  • preg_quote() - Экранирует символы в регулярных выражениях
  • preg_match_all() - Выполняет глобальный поиск шаблона в строке
  • preg_filter() - Производит поиск и замену по регулярному выражению
  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE


Возвращает код ошибки выполнения последнего регулярного выражения PCRE

  • « preg_grep
  • preg_match_all »
  • PHP Manual
  • Функции PCRE
  • Возвращает код ошибки выполнения последнего регулярного выражения PCRE

preg_last_error

(PHP 5 >= 5.2.0, PHP 7)

preg_last_error — Возвращает код ошибки выполнения последнего регулярного выражения PCRE

Описание

preg_last_error ( void ) : int

Возвращает код ошибки выполнения последнего регулярного выражения PCRE.

Пример #1 Пример использования preg_last_error()

<?php

preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar');

if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
    print 'Был исчерпан лимит обратных ссылок!';
}

?>

Результат выполнения данного примера:

Был исчерпан лимит обратных ссылок!

Возвращаемые значения

Возвращает одну из следующих констант (описанных на отдельной странице.):

  • PREG_NO_ERROR
  • PREG_INTERNAL_ERROR
  • PREG_BACKTRACK_LIMIT_ERROR (см. также pcre.backtrack_limit)
  • PREG_RECURSION_LIMIT_ERROR (см. также pcre.recursion_limit)
  • PREG_BAD_UTF8_ERROR
  • PREG_BAD_UTF8_OFFSET_ERROR (с PHP 5.3.0)
  • PREG_JIT_STACKLIMIT_ERROR (с PHP 7.0.0)


Выполняет глобальный поиск шаблона в строке

  • « preg_last_error
  • preg_match »
  • PHP Manual
  • Функции PCRE
  • Выполняет глобальный поиск шаблона в строке

preg_match_all

(PHP 4, PHP 5, PHP 7)

preg_match_all — Выполняет глобальный поиск шаблона в строке

Описание

preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] ) : int

Ищет в строке subject все совпадения с шаблоном pattern и помещает результат в массив matches в порядке, определяемом комбинацией флагов flags.

После нахождения первого соответствия последующие поиски будут осуществляться не с начала строки, а от конца последнего найденного вхождения.

Список параметров

pattern

Искомый шаблон в виде строки.

subject

Входная строка.

matches

Массив совпавших значений, отсортированный в соответствии с параметром flags.

flags

Может быть комбинацией следующих флагов (необходимо понимать, что использование PREG_PATTERN_ORDER одновременно с PREG_SET_ORDER бессмысленно):

PREG_PATTERN_ORDER

Упорядочивает результаты так, что элемент $matches[0] содержит массив полных вхождений шаблона, элемент $matches[1] содержит массив вхождений первой подмаски и т.д.

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
    "<b>пример: </b><div align=left>это тест</div>",
    $out, PREG_PATTERN_ORDER);
echo $out[0][0] . ", " . $out[0][1] . "\n";
echo $out[1][0] . ", " . $out[1][1] . "\n";
?>

Результат выполнения данного примера:

<b>пример: </b>, <div align=left>это тест</div>
пример: , это тест

Таким образом, $out[0] содержит массив полных вхождений шаблона, а $out[1] содержит массив подстрок, содержащихся в тегах.

Если шаблон содержит именованные подшаблоны, $matches дополнительно будет содержать записи для ключей с именами этих подшаблонов.

Если шаблон содержит задублированные именованные подшаблоны, то только самый правый подшаблон будет сохранен в $matches[NAME].

<?php
preg_match_all(
    '/(?J)(?<match>foo)|(?<match>bar)/',
    'foo bar',
    $matches,
    PREG_PATTERN_ORDER
);
print_r($matches['match']);
?>

Результат выполнения данного примера:

Array
(
    [0] =>
    [1] => bar
)

PREG_SET_ORDER

Упорядочивает результаты так, что элемент $matches[0] содержит первый набор вхождений, элемент $matches[1] содержит второй набор вхождений, и т.д.

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
    "<b>пример: </b><div align=\"left\">это тест</div>",
    $out, PREG_SET_ORDER);
echo $out[0][0] . ", " . $out[0][1] . "\n";
echo $out[1][0] . ", " . $out[1][1] . "\n";
?>

Результат выполнения данного примера:

<b>пример: </b>, пример:
<div align="left">это тест</div>, это тест

PREG_OFFSET_CAPTURE

В случае, если этот флаг указан, для каждой найденной подстроки будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемого массива matches в массив, каждый элемент которого содержит массив, содержащий в индексе с номером 0 найденную подстроку, а смещение этой подстроки в параметре subject - в индексе 1.

<?php
preg_match_all('/(foo)(bar)(baz)/', 'foobarbaz', $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>

Результат выполнения данного примера:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => foobarbaz
                    [1] => 0
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [0] => foo
                    [1] => 0
                )

        )

    [2] => Array
        (
            [0] => Array
                (
                    [0] => bar
                    [1] => 3
                )

        )

    [3] => Array
        (
            [0] => Array
                (
                    [0] => baz
                    [1] => 6
                )

        )

)

PREG_UNMATCHED_AS_NULL

Если этот флаг передан, несовпадающие подмаски будут представлены значениями NULL; в противном случае они отображаются в виде пустых строк (string).

В случае если флаги не были указаны, по умолчанию используется PREG_PATTERN_ORDER.

offset

Обычно поиск осуществляется слева направо, с начала строки. Дополнительный параметр offset может быть использован для указания альтернативной начальной позиции для поиска.

Замечание:

Использование параметра offset не эквивалентно замене сопоставляемой строки выражением substr($subject, $offset) при вызове функции preg_match_all(), поскольку шаблон pattern может содержать такие условия как ^, $ или (?<=x). Вы можете найти соответствующие примеры в описании функции preg_match().

Возвращаемые значения

Возвращает количество найденных вхождений шаблона (которое может быть и нулем) либо FALSE, если во время выполнения возникли какие-либо ошибки.

Список изменений

Версия | Описание
7.2.0 | Теперь константа PREG_UNMATCHED_AS_NULL поддерживается для параметра $flags.
5.4.0 | Параметр matches стал необязательным.
5.3.6 | Возвращает FALSE если offset больше чем длина subject.
5.2.2 | Именованные подмаски теперь принимают синтаксис (?<name>) и (?'name'), также как и (?P<name>). Предыдущие версии принимали только (?P<name>).

Примеры

Пример #1 Получение всех телефонных номеров из текста.

<?php
preg_match_all("/\(?  (\d{3})?  \)?  (?(1)  [\-\s] ) \d{3}-\d{4}/x",
                "Звоните 555-1212 или 1-800-555-1212", $phones);
?>

Пример #2 Жадный поиск совпадений с HTML-тэгами

<?php
// Запись \\2 является примером использования ссылок на подмаски.
// Она означает необходимость соответствия подстроки строке, захваченной
// второй подмаской, в нашем примере это ([\w]+).
// Дополнительный обратный слеш необходим, так как используются двойные кавычки.
$html = "<b>полужирный текст</b><a href=howdy.html>нажми</a>";

preg_match_all("/(<([\w]+)[^>]*>)(.*?)(<\/\\2>)/", $html, $matches, PREG_SET_ORDER);

foreach ($matches as $val) {
    echo "совпадение: " . $val[0] . "\n";
    echo "часть 1: " . $val[1] . "\n";
    echo "часть 2: " . $val[2] . "\n";
    echo "часть 3: " . $val[3] . "\n";
    echo "часть 4: " . $val[4] . "\n\n";
}
?>

Результат выполнения данного примера:

совпадение: <b>полужирный текст</b>
часть 1: <b>
часть 2: b
часть 3: полужирный текст
часть 4: </b>

matched: <a href=hody.html>нажми</a>
часть 1: <a href=howdy.html>
часть 2: a
часть 3: нажми
часть 4: </a>

Пример #3 Использование именованных подмасок

<?php

$str = <<<FOO
a: 1
b: 2
c: 3
FOO;

preg_match_all('/(?P<name>\w+): (?P<digit>\d+)/', $str, $matches);

/* Это также работает в PHP 5.2.2 (PCRE 7.0) и более поздних версиях,
 * однако вышеуказанная форма рекомендуется для обратной совместимости */
// preg_match_all('/(?<name>\w+): (?<digit>\d+)/', $str, $matches);

print_r($matches);

?>

Результат выполнения данного примера:

Array
(
    [0] => Array
        (
            [0] => a: 1
            [1] => b: 2
            [2] => c: 3
        )

    [name] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [1] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [digit] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [2] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

)

Смотрите также

  • Регулярные выражения PCRE
  • preg_quote() - Экранирует символы в регулярных выражениях
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • preg_split() - Разбивает строку по регулярному выражению
  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE


Выполняет проверку на соответствие регулярному выражению

  • « preg_match_all
  • preg_quote »
  • PHP Manual
  • Функции PCRE
  • Выполняет проверку на соответствие регулярному выражению

preg_match

(PHP 4, PHP 5, PHP 7)

preg_match — Выполняет проверку на соответствие регулярному выражению

Описание

preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] ) : int

Ищет в заданном тексте subject совпадения с шаблоном pattern.

Список параметров

pattern

Искомый шаблон в виде строки.

subject

Входная строка.

matches

В случае, если указан дополнительный параметр matches, он будет заполнен результатами поиска. Элемент $matches[0] будет содержать часть строки, соответствующую вхождению всего шаблона, $matches[1] - часть строки, соответствующую первой подмаске и так далее.

flags

flags может быть комбинацией следующих флагов:

PREG_OFFSET_CAPTURE

В случае, если этот флаг указан, для каждой найденной подстроки будет указана ее позиция (в байтах) в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемого массива matches в массив, каждый элемент которого содержит массив, содержащий в индексе с номером 0 найденную подстроку, а смещение этой подстроки в параметре subject - в индексе 1.

<?php
preg_match('/(foo)(bar)(baz)/', 'foobarbaz', $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>

Результат выполнения данного примера:

Array
(
    [0] => Array
        (
            [0] => foobarbaz
            [1] => 0
        )

    [1] => Array
        (
            [0] => foo
            [1] => 0
        )

    [2] => Array
        (
            [0] => bar
            [1] => 3
        )

    [3] => Array
        (
            [0] => baz
            [1] => 6
        )

)

PREG_UNMATCHED_AS_NULL

Если этот флаг передан, несовпадающие подмаски будут представлены значениями NULL; в противном случае они отображаются в виде пустых строк (string).

<?php
preg_match('/(a)(b)*(c)/', 'ac', $matches);
var_dump($matches);
preg_match('/(a)(b)*(c)/', 'ac', $matches, PREG_UNMATCHED_AS_NULL);
var_dump($matches);
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  string(2) "ac"
  [1]=>
  string(1) "a"
  [2]=>
  string(0) ""
  [3]=>
  string(1) "c"
}
array(4) {
  [0]=>
  string(2) "ac"
  [1]=>
  string(1) "a"
  [2]=>
  NULL
  [3]=>
  string(1) "c"
}

offset

Обычно поиск осуществляется слева направо, с начала строки. Можно использовать дополнительный параметр offset для указания альтернативной начальной позиции для поиска (в байтах).

Замечание:

Использование параметра offset не эквивалентно замене сопоставляемой строки выражением substr($subject, $offset) при вызове функции preg_match(), поскольку шаблон 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
        )

)

В качестве альтернативы substr()(), используйте утверждение \G вместо якоря ^ или модификатор A. Оба они работают с параметром offset.

Возвращаемые значения

preg_match() возвращает 1, если параметр pattern соответствует переданному параметру subject, 0 если нет, или FALSE в случае ошибки.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
7.2.0 | Теперь константа PREG_UNMATCHED_AS_NULL поддерживается для параметра $flags.
5.3.6 | Возвращает FALSE, если offset больше, чем длина subject.
5.2.2 | Именованные подмаски теперь позволяют синтаксис (?<name>) и (?'name'), также как и (?P<name>). Предыдущие версии позволяли только (?P<name>).

Примеры

Пример #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[1];

// извлекаем две последние части имени хоста
preg_match('/[^.]+\.[^.]+$/', $host, $matches);
echo "доменное имя: {$matches[0]}\n";
?>

Результат выполнения данного примера:

доменное имя: php.net

Пример #4 Использование именованных подмасок

<?php

$str = 'foobar: 2008';

preg_match('/(?P<name>\w+): (?P<digit>\d+)/', $str, $matches);

/* Это также работает в PHP 5.2.2 (PCRE 7.0) и более поздних версиях,
   однако вышеуказанная форма рекомендуется для обратной совместимости */
// preg_match('/(?<name>\w+): (?<digit>\d+)/', $str, $matches);

print_r($matches);

?>

Результат выполнения данного примера:

Array
(
    [0] => foobar: 2008
    [name] => foobar
    [1] => foobar
    [digit] => 2008
    [2] => 2008
)

Примечания

Подсказка

Не используйте функцию preg_match(), если необходимо проверить наличие подстроки в заданной строке. Используйте для этого strpos() поскольку она выполнят эту задачу гораздо быстрее.

Смотрите также

  • "Регулярные выражения PCRE"
  • preg_quote() - Экранирует символы в регулярных выражениях
  • preg_match_all() - Выполняет глобальный поиск шаблона в строке
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • preg_split() - Разбивает строку по регулярному выражению
  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE


Экранирует символы в регулярных выражениях

  • « preg_match
  • preg_replace_callback_array »
  • PHP Manual
  • Функции PCRE
  • Экранирует символы в регулярных выражениях

preg_quote

(PHP 4, PHP 5, PHP 7)

preg_quote — Экранирует символы в регулярных выражениях

Описание

preg_quote ( string $str [, string $delimiter = NULL ] ) : string

Функция preg_quote() принимает строку str и добавляет обратный слеш перед каждым служебным символом. Это бывает полезно, если в составлении шаблона участвуют строковые переменные, значение которых в процессе работы скрипта может меняться.

В регулярных выражениях служебными считаются следующие символы: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : - #

Обратите внимание, что символ / не является служебным.

Замечание:

Обратите внимание, что preg_quote() не предназначена для применения к строкам $replacement функции preg_replace() и т.д.

Список параметров

str

Входная строка.

delimiter

В случае, если указан необязательный параметр delimiter, он будет также экранироваться. Это удобно для экранирования разделителя, который используется в PCRE-функциях. Наиболее распространенным разделителем является символ /.

Возвращаемые значения

Возвращает экранированную строку.

Список изменений

Версия | Описание
7.3.0 | Символ # теперь экранируется
5.3.0 | Символ - теперь экранируется

Примеры

Пример #1 Пример использования preg_quote()

<?php
$keywords = '$40 за g3/400';
$keywords = preg_quote($keywords, '/');
echo $keywords; // возвращает \$40 за g3\/400
?>

Пример #2 Выделение курсивом слова в тексте

<?php
// В данном примере preg_quote($word) используется, чтобы
// избежать трактовки символа '*' как спец. символа.

$textbody = "Эту книгу *очень* тяжело найти.";
$word = "*очень*";
$textbody = preg_replace ("/" . preg_quote($word, '/') . "/",
                          "<i>" . $word . "</i>",
                          $textbody);
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • Регулярные выражения PCRE
  • escapeshellcmd() - Экранировать метасимволы командной строки


Выполняет поиск и замену по регулярному выражению с использованием функций обратного вызова

  • « preg_quote
  • preg_replace_callback »
  • PHP Manual
  • Функции PCRE
  • Выполняет поиск и замену по регулярному выражению с использованием функций обратного вызова

preg_replace_callback_array

(PHP 7)

preg_replace_callback_array — Выполняет поиск и замену по регулярному выражению с использованием функций обратного вызова

Описание

preg_replace_callback_array ( array $patterns_and_callbacks , mixed $subject [, int $limit = -1 [, int &$count ]] ) : mixed

Поведение этой функции похоже на preg_replace_callback(), за исключением того, что для каждого шаблона используется своя функция обратного вызова.

Список параметров

patterns_and_callbacks

Ассоциативный массив, связывающий шаблоны регулярного выражения (ключи) и функции обратного вызова (значения).

subject

Строка, в которой будет производиться поиск и замена.

limit

Максимальное количество замен для каждого шаблона в строке subject. По умолчанию -1 (без ограничений).

count

Если задан, то в указанную переменную будет записано количество произведенных замен.

Возвращаемые значения

preg_replace_callback_array() возвращает массив, если параметр subject является массивом и строку, если строкой. В случае ошибки возвращается NULL

Если совпадения найдены, будет возвращена новая строка, а если нет, то исходная subject.

Примеры

Пример #1 Пример использования preg_replace_callback_array()

<?php
$subject = 'Aaaaaa Bbb';

preg_replace_callback_array(
    [
        '~[a]+~i' => function ($match) {
            echo 'Найдено ', strlen($match[0]), ' совпадений "a"', PHP_EOL;
        },
        '~[b]+~i' => function ($match) {
            echo 'Найдено ', strlen($match[0]), ' совпадений "b"', PHP_EOL;
        }
    ],
    $subject
);
?>

Результат выполнения данного примера:

Найдено 6 совпадений "a"
Найдено 3 совпадений "b"

Смотрите также

  • Шаблоны PCRE
  • preg_replace_callback() - Выполняет поиск по регулярному выражению и замену с использованием callback-функции
  • preg_quote() - Экранирует символы в регулярных выражениях
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE
  • Анонимные функции
  • Информация о типе callback


Выполняет поиск по регулярному выражению и замену с использованием callback-функции

  • « preg_replace_callback_array
  • preg_replace »
  • PHP Manual
  • Функции PCRE
  • Выполняет поиск по регулярному выражению и замену с использованием callback-функции

preg_replace_callback

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

preg_replace_callback — Выполняет поиск по регулярному выражению и замену с использованием callback-функции

Описание

preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 [, int &$count ]] ) : mixed

Поведение этой функции во многом напоминает preg_replace(), за исключением того, что вместо параметра replacement необходимо указывать callback-функцию.

Список параметров

pattern

Искомый шаблон. Может быть как строкой, так и массивом строк.

callback

Вызываемая callback-функция, которой будет передан массив совпавших элементов из строки subject. Callback-функция должна вернуть строку с заменой. Callback-функция должна быть описана так:

handler ( array $matches ) : string

Достаточно часто callback функция, кроме как в вызове preg_replace_callback(), ни в чем больше не участвует. Исходя из этих соображений, можно использовать анонимные функции для создания callback-функции непосредственно в вызове preg_replace_callback(). Если вы используете такой подход, вся информация, связанная с заменой по регулярному выражению, будет собрана в одном месте, и пространство имен функций не будет загромождаться неиспользуемыми записями.

Пример #1 preg_replace_callback() и анонимная функция

<?php
/* фильтр, подобный тому, что используется в системах Unix
 * для преобразования заглавных букв в начале параграфа в строчные */
$fp = fopen("php://stdin", "r") or die("не удалось прочесть stdin");
while (!feof($fp)) {
    $line = fgets($fp);
    $line = preg_replace_callback(
        '|<p>\s*\w|',
        function ($matches) {
            return strtolower($matches[0]);
        },
        $line
    );
    echo $line;
}
fclose($fp);
?>

subject

Строка или массив строк для поиска и замены.

limit

Максимально возможное количество замен для каждого шаблона в каждой строке subject. По умолчанию равно -1 (без ограничений).

count

Если указана, то эта переменная будет заполнена количеством произведенных замен.

Возвращаемые значения

preg_replace_callback() возвращает массив, если параметр subject является массивом, иначе возвращается строка. В случае ошибок возвращается NULL

Если найдены совпадения, будет возвращена результирующая строка, иначе subject вернется неизмененным.

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр count

Примеры

Пример #2 Пример использования preg_replace_callback()

<?php
// Этот текст был использован в 2002 году
// мы хотим обновить даты к 2003 году
$text = "День смеха был 01/04/2002\n";
$text.= "Последнее Рождество было 24/12/2001\n";
// callback-функция
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);

?>

Результат выполнения данного примера:

День смеха был 01/04/2003
Последнее Рождество было 24/12/2002

Пример #3 Рекурсивная обработка BB-кодов с помощью preg_replace_callback()

<?php
$input = "верх [indent] глубже [indent] еще глубже [/indent] глубже [/indent] верх";

function parseTagsRecursive($input)
{

    $regex = '#\[indent]((?:[^[]|\[(?!/?indent])|(?R))+)\[/indent]#';

    if (is_array($input)) {
        $input = '<div style="margin-left: 10px">'.$input[1].'</div>';
    }

    return preg_replace_callback($regex, 'parseTagsRecursive', $input);
}

$output = parseTagsRecursive($input);

echo $output;
?>

Смотрите также

  • Регулярные выражения PCRE
  • preg_replace_callback_array() - Выполняет поиск и замену по регулярному выражению с использованием функций обратного вызова
  • preg_quote() - Экранирует символы в регулярных выражениях
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE
  • Анонимные функции
  • Информация о типе callback


Выполняет поиск и замену по регулярному выражению

  • « preg_replace_callback
  • preg_split »
  • PHP Manual
  • Функции PCRE
  • Выполняет поиск и замену по регулярному выражению

preg_replace

(PHP 4, PHP 5, PHP 7)

preg_replace — Выполняет поиск и замену по регулярному выражению

Описание

preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) : mixed

Выполняет поиск совпадений в строке subject с шаблоном pattern и заменяет их на replacement.

Список параметров

pattern

Искомый шаблон. Может быть как строкой, так и массивом строк.

Также доступны некоторые модификаторы PCRE.

replacement

Строка или массив строк для замены. Если этот параметр является строкой, а pattern является массивом, все шаблоны будут заменены этой строкой. Если и pattern и replacement являются массивами, каждый элемент pattern будет заменен соответствующим элементом из replacement. Если массив replacement содержит меньше элементов, чем массив pattern, то все лишние шаблоны из pattern будут заменены пустыми строками.

replacement может содержать ссылки вида \\n, либо $n, причем последний вариант предпочтительней. Каждая такая ссылка будет заменена на подстроку, соответствующую n-ой подмаске. n может принимать значения от 0 до 99, причем ссылка \\0 (либо $0) соответствует вхождению всего шаблона. Подмаски нумеруются слева направо, начиная с единицы. Для использования обратного слеша, его необходимо продублировать (строка PHP "\\\\").

При замене по шаблону с использованием ссылок на подмаски может возникнуть ситуация, когда непосредственно за маской следует цифра (например, установка цифры сразу после совпавшей маски). В таком случае нельзя использовать знакомую нотацию вида \\1 для ссылки на подмаски. Запись, например, \\11, смутит preg_replace(), так как она не сможет понять, хотите ли вы использовать ссылку \\1, за которой следует цифра 1 или же вы хотите просто использовать ссылку \\11, за которой ничего не следует. Это недоразумение можно устранить, если воспользоваться конструкцией ${1}1, использующей изолированную ссылку $1, и следующую за ней цифру 1.

При использовании устаревшего модификатора e эта функция экранирует некоторые символы (а именно ', ", \ и NULL) в строках, замещающих обратные ссылки. Это сделано для удостоверения корректности синтаксиса при использовании обратных ссылок внутри одинарных или двойных кавычек (например, 'strlen(\'$1\')+strlen("$2")'). Убедитесь, что вы владеете синтаксисом обработки строк PHP для того, чтобы точно осознавать, как будет выглядеть интерпретированная строка.

subject

Строка или массив строк для поиска и замены.

Если subject является массивом, то поиск с заменой осуществляется для каждого элемента массива subject, а возвращаемое значение также будет являться массивом.

limit

Максимально возможное количество замен каждого шаблона для каждой строки subject. По умолчанию равно -1 (без ограничений).

count

Если указана, то эта переменная будет заполнена количеством произведенных замен.

Возвращаемые значения

preg_replace() возвращает массив, если параметр subject является массивом, иначе возвращается строка.

Если найдены совпадения, возвращается новая версия subject, иначе subject возвращается нетронутым, в случае ошибки возвращается NULL.

Ошибки

С версии PHP 5.5.0, если передается модификатор "\e", вызывается ошибка уровня E_DEPRECATED. С версии PHP 7.0.0 использование модификатора "\e" является ошибкой; в этом случае выдается E_WARNING; .

Список изменений

Версия | Описание
7.0.0 | Удалена поддержка модификатора /e. Вместо него используйте preg_replace_callback().
5.5.0 | Модификатор /e теперь считается устаревшим. Используйте функцию preg_replace_callback(). Смотрите документацию PREG_REPLACE_EVAL с дополнительной информацией и описанием проблем с безопасностью.
5.1.0 | Добавлен параметр count

Примеры

Пример #1 Использование подмасок, за которыми следует цифра

<?php
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
?>

Результат выполнения данного примера:

April1,2003

Пример #2 Использование массивов с числовыми индексами в качестве аргументов функции preg_replace()

<?php
$string = 'The quick brown fox jumps over the lazy dog.';
$patterns = array();
$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements = array();
$replacements[2] = 'bear';
$replacements[1] = 'black';
$replacements[0] = 'slow';
echo preg_replace($patterns, $replacements, $string);
?>

Результат выполнения данного примера:

The bear black slow jumps over the lazy dog.

Отсортировав по ключам шаблоны и замены, получаем желаемый результат:

<?php
ksort($patterns);
ksort($replacements);
echo preg_replace($patterns, $replacements, $string);
?>

Результат выполнения данного примера:

The slow black bear jumps over the lazy dog.

Пример #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 Чистка пробелов

Этот пример вычищает лишние пробелы в строке.

<?php
$str = 'foo   o';
$str = preg_replace('/\s\s+/', ' ', $str);
// Это теперь будет 'foo o'
echo $str;
?>

Пример #5 Использование параметра count

<?php
$count = 0;

echo preg_replace(array('/\d/', '/\s/'), '*', 'xp 4 to', -1 , $count);
echo $count; //3
?>

Результат выполнения данного примера:

xp***to
3

Примечания

Замечание:

При использовании массивов в pattern и replacement, ключи обрабатываются в том порядке, в котором они находятся в массиве. Этот порядок не всегда совпадает с числовым порядком индексов. Если вы используете индексы для сопоставления друг с другом нужного pattern и replacement, то вам необходимо прогнать через функцию ksort() оба массива перед использованием preg_replace().

Смотрите также

  • Регулярные выражения PCRE
  • preg_quote() - Экранирует символы в регулярных выражениях
  • preg_filter() - Производит поиск и замену по регулярному выражению
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • preg_replace_callback() - Выполняет поиск по регулярному выражению и замену с использованием callback-функции
  • preg_split() - Разбивает строку по регулярному выражению
  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE


Разбивает строку по регулярному выражению

  • « preg_replace
  • Регулярные выражения POSIX »
  • PHP Manual
  • Функции PCRE
  • Разбивает строку по регулярному выражению

preg_split

(PHP 4, PHP 5, PHP 7)

preg_split — Разбивает строку по регулярному выражению

Описание

preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] ) : array

Разбивает строку по регулярному выражению.

Список параметров

pattern

Строка, содержащая искомый шаблон.

subject

Входная строка.

limit

Если указан, функция возвращает не более, чем limit подстрок. Оставшаяся часть строки будет возвращена в последней подстроке. Специальное значение limit, равное -1 или 0, подразумевает отсутствие ограничения, и, в качестве фактического стандарта в PHP, можно использовать NULL для пропуска параметра flags.

flags

flags может быть любой комбинацией следующих флагов (объединенных с помощью побитового оператора |):

PREG_SPLIT_NO_EMPTY
Если указан этот флаг, функция preg_split() вернет только непустые подстроки.
PREG_SPLIT_DELIM_CAPTURE
Если указан этот флаг, выражение, заключенное в круглые скобки в разделяющем шаблоне, также извлекается из заданной строки и возвращается функцией.
PREG_SPLIT_OFFSET_CAPTURE

Если указан этот флаг, для каждой найденной подстроки будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемого массива: каждый элемент будет содержать массив, содержащий в индексе с номером 0 найденную подстроку, а смещение этой подстроки в параметре subject - в индексе 1.

Возвращаемые значения

Возвращает массив, состоящий из подстрок заданной строки subject, которая разбита по границам, соответствующим шаблону pattern, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 preg_split() пример: Получение подстрок из заданного текста

<?php
// разбиваем строку по произвольному числу запятых и пробельных символов,
// которые включают в себя  " ", \r, \t, \n и \f
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($keywords);
?>

Результат выполнения данного примера:

Array
(
    [0] => hypertext
    [1] => language
    [2] => programming
)

Пример #2 Разбиваем строку на составляющие символы

<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

Результат выполнения данного примера:

Array
(
    [0] => s
    [1] => t
    [2] => r
    [3] => i
    [4] => n
    [5] => g
)

Пример #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
        )

)

Примечания

Подсказка

Если вам не нужна мощь регулярных выражений, вы можете выбрать более быстрые (хоть и простые) альтернативы наподобие explode() или str_split().

Подсказка

Если соответствий не нашлось, то возвращается массив с единственным элементом равным всей строке.

Смотрите также

  • "Регулярные выражения PCRE"
  • preg_quote() - Экранирует символы в регулярных выражениях
  • implode() - Объединяет элементы массива в строку
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • preg_match_all() - Выполняет глобальный поиск шаблона в строке
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE


Регулярные выражения (расширенные POSIX)

  • Введение
  • Установка и настройка
    • Требования
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции регулярных выражений POSIX
    • ereg_replace — Осуществляет замену по регулярному выражению
    • ereg — Совпадение с регулярным выражением
    • eregi_replace — Осуществляет замену по регулярному выражению без учета регистра
    • eregi — Совпадение с регулярным выражением без учёта регистра
    • split — Разбиение строки на массив по регулярному выражению
    • spliti — Разбивает строку в массив с помощью регулярного выражения без учета регистра
    • sql_regcase — Создает регулярное выражение для регистронезависимого сравнения


Введение

Внимание

Эта функциональность объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • PCRE (для полной поддержки регулярных выражений)
  • fnmatch() (для простых выражений в стиле shell)
Подсказка

PHP также поддерживает синтаксис Perl-совместимых регулярных выражений с помощью функций PCRE. Эти функции поддерживают минимальный поиск, утверждения, условные подмаски и некоторые другие особенности, не поддерживаемые синтаксисом расширенных регулярных выражений POSIX?.

Внимание

Данные функции регулярных выражений не являются бинарно-безопасными в отличие от функций PCRE.

Регулярные выражения используются для сложной манипуляции со строками. PHP использует расширенные регулярные выражения POSIX?, как определено в POSIX 1003.2. Полное описание регулярных выражений POSIX смотрите на » страницах справки по регулярным выражениям, включенных в директорию regex дистрибутива PHP. Справка представлена в формате UNIX, поэтому вам понадобится сделать что-то вроде man /usr/local/src/regex/regex.7, чтобы прочитать ее.


  • « Введение
  • Требования »
  • PHP Manual
  • Регулярные выражения POSIX
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Настройка во время выполнения
  • Типы ресурсов


  • « Установка и настройка
  • »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Для сборки этого расширения не требуются внешние библиотеки.


  • « Требования
  • Настройка во время выполнения »
  • PHP Manual
  • Установка и настройка

PHP 7

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/regex.

PHP 5

Внимание

Не изменяйте TYPE, если вы не знаете что делаете.

Для включения поддержки регулярных выражений необходимо скомпилировать PHP c ключом --with-regex[=TYPE] , где TYPE может принимать значение system, apache, php. По умолчанию используется php.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.


Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • Регулярные выражения POSIX
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Пример #1 Примеры регулярных выражений

<?php
// Вернет true, если "abc" найдено где-либо в $string.
ereg("abc", $string);

// Вернет true, если "abc" найдено в начале $string.
ereg("^abc", $string);

// Вернет true, если "abc" найдено в конце $string.
ereg("abc$", $string);

// Вернет true, если браузер клиента Netscape 2, 3 или MSIE 3.
eregi("(ozilla.[23]|MSIE.3)", $_SERVER["HTTP_USER_AGENT"]);

// Поместит три слова разделенных пробелами в $regs[1], $regs[2] и $regs[3].
ereg("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)", $string, $regs);

// Вставит тег <br /> в начало $string.
$string = ereg_replace("^", "<br />", $string);

// Вставит тег <br /> в конец $string.
$string = ereg_replace("$", "<br />", $string);

// Уберет все символы новой строки из $string.
$string = ereg_replace("\n", "", $string);
?>


Функции регулярных выражений POSIX

Смотрите также

Внимание

Эта функциональность объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • PCRE (для полной поддержки регулярных выражений)
  • fnmatch() (для простых выражений в стиле shell)

Содержание

  • ereg_replace — Осуществляет замену по регулярному выражению
  • ereg — Совпадение с регулярным выражением
  • eregi_replace — Осуществляет замену по регулярному выражению без учета регистра
  • eregi — Совпадение с регулярным выражением без учёта регистра
  • split — Разбиение строки на массив по регулярному выражению
  • spliti — Разбивает строку в массив с помощью регулярного выражения без учета регистра
  • sql_regcase — Создает регулярное выражение для регистронезависимого сравнения


Осуществляет замену по регулярному выражению

  • « Функции регулярных выражений POSIX
  • ereg »
  • PHP Manual
  • Функции регулярных выражений POSIX
  • Осуществляет замену по регулярному выражению

ereg_replace

(PHP 4, PHP 5)

ereg_replace — Осуществляет замену по регулярному выражению

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • preg_replace()

Описание

ereg_replace ( string $pattern , string $replacement , string $string ) : string

Эта функция сканирует строку string для поиска совпадений с pattern, затем заменяет совпавший текст на replacement.

Список параметров

pattern

Расширенное регулярное выражение POSIX.

replacement

Если pattern содержит подстроки в скобках, replacement может содержать подстроки вида \digit, которые будут заменены текстом, совпавшим с digit-подстрокой в скобках; \0 воспроизведет все содержимое строки. Может использоваться до 9 подстрок. Круглые скобки могут быть вложенными, в этом случае они подсчитываются по открывающим скобкам.

string

Исходная строка.

Возвращаемые значения

Возвращается измененная строка. Если в строке string совпадений не найдено, она возвратится без изменений.

Примеры

Например, следующий фрагмент кода печатает "This was a test" три раза:

Пример #1 Пример использования ereg_replace()

<?php

$string = "This is a test";
echo str_replace(" is", " was", $string);
echo ereg_replace("( )is", "\\1was", $string);
echo ereg_replace("(( )is)", "\\2was", $string);

?>

Единственное, что следует принять к сведению - если вы используете целочисленное значение как параметр replacement, вы можете не получить ожидаемого результата. Это происходит из-за того, что функция ereg_replace() будет интерпретировать число как порядковое значение символа. Например:

Пример #2 Пример использования ereg_replace()

<?php
/* Это будет работать не так, как ожидалось. */
$num = 4;
$string = "В этой строке четыре слова.";
$string = ereg_replace('четыре', $num, $string);
echo $string;   /* Вывод: 'В этой строке   слова.' */

/* Это будет работать. */
$num = '4';
$string = "В этой строке четыре слова.";
$string = ereg_replace('четыре', $num, $string);
echo $string;   /* Вывод: 'В этой строке 4 слова.' */
?>

Пример #3 Замена URL-адресов на ссылки

<?php
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
                     '<a href="\\0">\\0</a>', $text);
?>

Смотрите также

  • ereg() - Совпадение с регулярным выражением
  • eregi() - Совпадение с регулярным выражением без учёта регистра
  • eregi_replace() - Осуществляет замену по регулярному выражению без учета регистра
  • str_replace() - Заменяет все вхождения строки поиска на строку замены
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • quotemeta() - Экранирует специальные символы


Совпадение с регулярным выражением

  • « ereg_replace
  • eregi_replace »
  • PHP Manual
  • Функции регулярных выражений POSIX
  • Совпадение с регулярным выражением

ereg

(PHP 4, PHP 5)

ereg — Совпадение с регулярным выражением

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • preg_match()

Описание

ereg ( string $pattern , string $string [, array &$regs ] ) : int

Ищет в строке string совпадения с регулярным выражением, заданным в pattern регистрозависимым образом.

Список параметров

pattern

Регулярное выражение, чувствительное к регистру.

string

Входная строка.

regs

Если совпадения найдены для подстрок в скобках из pattern, и функция вызывается с третьим аргументом regs, совпадения будут сохранены в элементах массива regs.

$regs[1] будет содержать подстроку, которая начинается с первой левой круглой скобки; $regs[2] будет содержать подстроку, начинающуюся со второй, и т.д. $regs[0] будет содержать полную копию совпавшей строки.

Возвращаемые значения

Возвращает длину совпавшей строки, если совпадение c pattern найдено в string, или FALSE, если совпадений не было или возникла ошибка.

Если необязательный параметр regs не передан, или длина совпавшей строки равна 0, функция возвращает 1.

Список изменений

Версия | Описание
4.1.0 | Вплоть до (и включая) PHP 4.1.0 $regs будет заполняться точно десятью элементами, хотя реально может совпасть больше или меньше десяти подстрок в скобках. Это не влияет на способность ereg() совпадать с большим количеством подстрок. Если совпадения не найдены, $regs не будет изменен функцией ereg().

Примеры

Пример #1 Пример использования ereg()

Следующий фрагмент кода принимает дату в формате ISO (YYYY-MM-DD) и печатает её в формате DD.MM.YYYY:

<?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 "Недопустимый формат даты: $date";
}
?>

Смотрите также

  • eregi() - Совпадение с регулярным выражением без учёта регистра
  • ereg_replace() - Осуществляет замену по регулярному выражению
  • eregi_replace() - Осуществляет замену по регулярному выражению без учета регистра
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • strpos() - Возвращает позицию первого вхождения подстроки
  • strstr() - Находит первое вхождение подстроки
  • quotemeta() - Экранирует специальные символы


Осуществляет замену по регулярному выражению без учета регистра

  • « ereg
  • eregi »
  • PHP Manual
  • Функции регулярных выражений POSIX
  • Осуществляет замену по регулярному выражению без учета регистра

eregi_replace

(PHP 4, PHP 5)

eregi_replace — Осуществляет замену по регулярному выражению без учета регистра

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • preg_replace() (с модификатором i (PCRE_CASELESS))

Описание

eregi_replace ( string $pattern , string $replacement , string $string ) : string

Эта функция идентична функции ereg_replace() за исключением того, что игнорирует регистр при сравнении алфавитных символов.

Список параметров

pattern

Расширенное регулярное выражение POSIX.

replacement

Если pattern содержит подстроки в скобках, replacement может содержать подстроки вида \digit, которые будут заменены текстом, совпавшим с digit-подстрокой в скобках; \0 воспроизведет все содержимое строки. Может использоваться до 9 подстрок. Круглые скобки могут быть вложенными, в этом случае они подсчитываются по открывающим скобкам.

string

Исходная строка.

Возвращаемые значения

Возвращается измененная строка. Если в строке string совпадений не найдено, она возвратится без изменений.

Примеры

Пример #1 Выделение результатов поиска

<?php
$pattern = '(>[^<]*)('. quotemeta($_GET['search']) .')';
$replacement = '\\1<span class="search">\\2</span>';
$body = eregi_replace($pattern, $replacement, $body);
?>

Смотрите также

  • ereg() - Совпадение с регулярным выражением
  • eregi() - Совпадение с регулярным выражением без учёта регистра
  • ereg_replace() - Осуществляет замену по регулярному выражению
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • quotemeta() - Экранирует специальные символы


Совпадение с регулярным выражением без учёта регистра

  • « eregi_replace
  • split »
  • PHP Manual
  • Функции регулярных выражений POSIX
  • Совпадение с регулярным выражением без учёта регистра

eregi

(PHP 4, PHP 5)

eregi — Совпадение с регулярным выражением без учёта регистра

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • preg_match() (Используйте модификатор i (PCRE_CASELESS))

Описание

eregi ( string $pattern , string $string [, array &$regs ] ) : int

Эта функция идентична функции ereg() за исключением того, что игнорирует регистр при сравнении алфавитных символов.

Список параметров

pattern

Регистронезависимое регулярное выражение.

string

Входная строка.

regs

Если совпадения найдены для подстрок в скобках из pattern, и функция вызывается с третьим аргументом regs, совпадения будут сохранены в элементах массива regs.

$regs[1] будет содержать подстроку, которая начинается с первой левой круглой скобки; $regs[2] будет содержать подстроку, начинающуюся со второй, и т.д. $regs[0] будет содержать полную копию совпавшей строки.

Возвращаемые значения

Возвращает длину совпавшей строки, если совпадения с pattern найдены в string, или FALSE, если совпадений не найдено или возникла ошибка.

Если дополнительный параметр regs не передан, или длина совпавшей строки равна 0, функция возвращает 1.

Примеры

Пример #1 Пример использования eregi()

<?php
$string = 'XYZ';
if (eregi('z', $string)) {
    echo "'$string' содержит 'z' или 'Z'!";
}
?>

Смотрите также

  • ereg() - Совпадение с регулярным выражением
  • ereg_replace() - Осуществляет замену по регулярному выражению
  • eregi_replace() - Осуществляет замену по регулярному выражению без учета регистра
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • stripos() - Возвращает позицию первого вхождения подстроки без учета регистра
  • stristr() - Регистронезависимый вариант функции strstr
  • quotemeta() - Экранирует специальные символы


Разбиение строки на массив по регулярному выражению

  • « eregi
  • spliti »
  • PHP Manual
  • Функции регулярных выражений POSIX
  • Разбиение строки на массив по регулярному выражению

split

(PHP 4, PHP 5)

split — Разбиение строки на массив по регулярному выражению

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • preg_split()
  • explode()
  • str_split()

Описание

split ( string $pattern , string $string [, int $limit = -1 ] ) : array

Разбивает строку string на массив по регулярному выражению.

Список параметров

pattern

Регулярное выражение, чувствительное к регистру.

Если необходимо разбить строку по символам, являющимся специальными для регулярных выражений, их следует экранировать. Если вам кажется, что split() (или любая другая функция, работающая с регулярными выражениями) ведет себя неожиданно, пожалуйста, прочтите файл regex.7, расположенный в поддиректории regex/ дистрибутива PHP. Он сохранен в формате manpage, поэтому для удобства чтения используйте команду man /usr/local/src/regex/regex.7.

string

Входная строка.

limit

Если указан параметр limit, возвращаемый массив будет содержать максимум limit элементов, причем последний элемент будет включать всю оставшуюся часть строки string.

Возвращаемые значения

Возвращает массив строк, каждая из которых является строкой, образованной разбиением строки string чувствительным к регистру регулярным выражением pattern.

Если pattern встречается n раз, результирующий массив будет содержать n+1 элементов. Например, если pattern в строке отсутствует, будет возвращен массив, содержащий 1 элемент. Само собой, это также верно в случае, когда string является пустой строкой. В случае ошибки split() возвращает FALSE.

Примеры

Пример #1 Пример использования split()

Получаем первые четыре поля строки из /etc/passwd:

<?php
list($user, $pass, $uid, $gid, $extra) =
    split(":", $passwd_line, 5);
?>

Пример #2 Пример использования split()

Распознаем дату, отформатированную с использованием слешей, точек или дефисов:

<?php
// Разделителями могут быть слеши, точки или дефисы
$date = "04/30/1973";
list($month, $day, $year) = split('[/.-]', $date);
echo "Месяц: $month; День: $day; Год: $year<br />\n";
?>

Примечания

Подсказка

Функция split() является устаревшей начиная с PHP 5.3.0. Предлагается использовать вместо неё функцию preg_split(). В случае, когда нет необходимости использовать регулярные выражения, эффективнее использовать explode(), которая не использует дополнительные ресурсы для разбора регулярного выражения.

Подсказка

Пользователям, которым необходимо эмулировать поведение @chars = split('', $str) из Perl, следует обратиться к примерам для preg_split() или str_split().

Смотрите также

  • preg_split() - Разбивает строку по регулярному выражению
  • spliti() - Разбивает строку в массив с помощью регулярного выражения без учета регистра
  • str_split() - Преобразует строку в массив
  • explode() - Разбивает строку с помощью разделителя
  • implode() - Объединяет элементы массива в строку
  • chunk_split() - Разбивает строку на фрагменты
  • wordwrap() - Переносит строку по указанному количеству символов


Разбивает строку в массив с помощью регулярного выражения без учета регистра

  • « split
  • sql_regcase »
  • PHP Manual
  • Функции регулярных выражений POSIX
  • Разбивает строку в массив с помощью регулярного выражения без учета регистра

spliti

(PHP 4 >= 4.0.1, PHP 5)

spliti — Разбивает строку в массив с помощью регулярного выражения без учета регистра

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • preg_split() (Используйте модификатор i (PCRE_CASELESS))

Описание

spliti ( string $pattern , string $string [, int $limit = -1 ] ) : array

Разбивает строку string в массив с помощью регулярного выражения.

Эта функция идентична функции split() за исключением того, что она игнорирует регистр символов при сравнении.

Список параметров

pattern

Регистронезависимое регулярное выражение.

Если вы хотите разделить строку по символам, которые являются специальными символами регулярного выражения, вам сначала нужно заэкранировать эти символы. Если вы думаете, что функция spliti() (или другая функция для работы с регулярными выражениями) делает что-то странное, пожалуйста, прочитайте файл regex.7, который находится в папке regex/ дистрибутива PHP. Этот файл находится в формате manpage, поэтому вы можете прочитать его командой man /usr/local/src/regex/regex.7.

string

Строка для разделения.

limit

Если установлен limit, возвращаемый массив будет содержать максимум limit элементов, в котором последний элемент содержит всю строку string.

Возвращаемые значения

Возвращает массив строк, каждая из которых является подстрокой строки string, образованный с помощью регистронезависимого разделения регулярным выражением pattern.

Если встречаются n вхождений pattern, возвращаемый массив будет содержать n+1 элементов. К примеру, если вхождений pattern не будет найдено, то будет возвращен массив только с одним элементом. Естественно, это также справедливо, если string пустая. Если в процессе возникает ошибка, spliti() возвращает FALSE.

Примеры

Разделение строки, используя 'a' как разделитель:

Пример #1 Пример spliti()

<?php
$string = "aBBBaCCCADDDaEEEaGGGA";
$chunks = spliti ("a", $string, 5);
print_r($chunks);
?>

Результат выполнения данного примера:

Array
(
  [0] =>
  [1] => BBB
  [2] => CCC
  [3] => DDD
  [4] => EEEaGGGA
)

Смотрите также

  • preg_split() - Разбивает строку по регулярному выражению
  • split() - Разбиение строки на массив по регулярному выражению
  • explode() - Разбивает строку с помощью разделителя
  • implode() - Объединяет элементы массива в строку


Создает регулярное выражение для регистронезависимого сравнения

  • « spliti
  • ssdeep »
  • PHP Manual
  • Функции регулярных выражений POSIX
  • Создает регулярное выражение для регистронезависимого сравнения

sql_regcase

(PHP 4, PHP 5)

sql_regcase — Создает регулярное выражение для регистронезависимого сравнения

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • preg_match()
  • preg_quote()

Описание

sql_regcase ( string $string ) : string

Создает регулярное выражение для регистронезависимого сравнения.

Список параметров

string

Входная строка.

Возвращаемые значения

Создает допустимое регулярное выражение, которое будет совпадать с string, игнорируя регистр символов. Это выражение является string, в которой каждый буквенный символ заменен на символьный класс (выражение в квадратных скобках); каждый такой символьный класс содержит символы в нижнем и верхнем регистре. Другие символы остаются без изменений.

Примеры

Пример #1 Пример функции sql_regcase()

<?php
echo sql_regcase("Foo - bar.");
?>

Результат выполнения данного примера:

[Ff][Oo][Oo] - [Bb][Aa][Rr].

Это может быть использовано для получения регистронезависимых шаблонов поиска на системах, которые поддерживают только регистрозависимые регулярные выражения.


Нечеткое хеширование ssdeep

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции ssdeep
    • ssdeep_fuzzy_compare — Вычисляет похожесть двух сигнатур нечетких хешей
    • ssdeep_fuzzy_hash_filename — Создание нечеткого хеша из файла
    • ssdeep_fuzzy_hash — Создает нечеткий хеш из строки


Введение

ssdeep - это утилита для создания и сравнения нечетких хешей или » зависящее от контекста частичное хеширование.

Нечеткое хеширование может сравнивать сигнатуры, которые имеют "...последовательности одинаковых байт в одинаковом порядке, хотя байты этих последовательностей могут быть разными по содержанию и длине".(» страница проекта ssdeep)

Модуль предоставляет функции для создания и сравнения нечетких хешей.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Модулю требуется библиотека » ssdeep.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/ssdeep.


  • « Типы ресурсов
  • Функции ssdeep »
  • PHP Manual
  • ssdeep
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции ssdeep

Содержание

  • ssdeep_fuzzy_compare — Вычисляет похожесть двух сигнатур нечетких хешей
  • ssdeep_fuzzy_hash_filename — Создание нечеткого хеша из файла
  • ssdeep_fuzzy_hash — Создает нечеткий хеш из строки


Вычисляет похожесть двух сигнатур нечетких хешей

  • « Функции ssdeep
  • ssdeep_fuzzy_hash_filename »
  • PHP Manual
  • Функции ssdeep
  • Вычисляет похожесть двух сигнатур нечетких хешей

ssdeep_fuzzy_compare

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_compare — Вычисляет похожесть двух сигнатур нечетких хешей

Описание

ssdeep_fuzzy_compare ( string $signature1 , string $signature2 ) : int

Вычисляет величину совпадения между signature1 и signature2, используя » контекстно-переключаемое частичное хеширование и возвращает ее.

Список параметров

signature1

Первая строка с сигнатурой нечеткого хеширования.

signature2

Вторая строка с сигнатурой нечеткого хеширования.

Возвращаемые значения

Возвращает целое число в диапазоне от 0 до 100 в случае успешного выполнения или FALSE в противном случае.


Создание нечеткого хеша из файла

  • « ssdeep_fuzzy_compare
  • ssdeep_fuzzy_hash »
  • PHP Manual
  • Функции ssdeep
  • Создание нечеткого хеша из файла

ssdeep_fuzzy_hash_filename

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_hash_filename — Создание нечеткого хеша из файла

Описание

ssdeep_fuzzy_hash_filename ( string $file_name ) : string

ssdeep_fuzzy_hash_filename() вычисляет хеш указанного файла file_name, используя » контекстно-переключаемое частичное хеширование и возвращает его значение.

Список параметров

file_name

Имя файла для хеширования.

Возвращаемые значения

Возвращает строку в случае успешного выполнения, FALSE в противном случае.


Создает нечеткий хеш из строки

  • « ssdeep_fuzzy_hash_filename
  • Строки »
  • PHP Manual
  • Функции ssdeep
  • Создает нечеткий хеш из строки

ssdeep_fuzzy_hash

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_hash — Создает нечеткий хеш из строки

Описание

ssdeep_fuzzy_hash ( string $to_hash ) : string

ssdeep_fuzzy_hash() вычисляет хеш строки to_hash, используя » контекстно-переключаемое частичное хеширование и возвращает его.

Список параметров

to_hash

Строка для хеширования.

Возвращаемые значения

Возвращает строку в случае успешного выполнения, FALSE в противном случае.


Строки

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции для работы со строками
    • addcslashes — Экранирует cтроку слешами в стиле языка 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 — Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки
    • hex2bin — Преобразует шестнадцатеричные данные в двоичные
    • html_entity_decode — Преобразует HTML-сущности в соответствующие им символы
    • htmlentities — Преобразует все возможные символы в соответствующие HTML-сущности
    • htmlspecialchars_decode — Преобразует специальные HTML-сущности обратно в соответствующие символы
    • htmlspecialchars — Преобразует специальные символы в HTML-сущности
    • implode — Объединяет элементы массива в строку
    • join — Псевдоним implode
    • lcfirst — Преобразует первый символ строки в нижний регистр
    • levenshtein — Вычисляет расстояние Левенштейна между двумя строками
    • localeconv — Возвращает информацию о форматировании чисел
    • ltrim — Удаляет пробелы (или другие символы) из начала строки
    • md5_file — Возвращает MD5-хеш файла
    • md5 — Возвращает MD5-хеш строки
    • metaphone — Возвращает ключ metaphone для строки
    • money_format — Форматирует число как денежную величину
    • nl_langinfo — Возвращает информацию о языке и локали
    • nl2br — Вставляет HTML-код разрыва строки перед каждым переводом строки
    • number_format — Форматирует число с разделением групп
    • ord — Конвертирует первый байт строки в число от 0 до 255
    • parse_str — Разбирает строку в переменные
    • print — Выводит строку
    • printf — Выводит отформатированную строку
    • quoted_printable_decode — Преобразует строку, закодированную методом quoted-printable в 8-битную строку
    • quoted_printable_encode — Преобразует 8-битную строку с помощью метода quoted-printable
    • quotemeta — Экранирует специальные символы
    • rtrim — Удаляет пробелы (или другие символы) из конца строки
    • setlocale — Устанавливает настройки локали
    • sha1_file — Возвращает SHA1-хеш файла
    • sha1 — Возвращает SHA1-хеш строки
    • similar_text — Вычисляет степень похожести двух строк
    • soundex — Возвращает ключ soundex для строки
    • sprintf — Возвращает отформатированную строку
    • sscanf — Разбирает строку в соответствии с заданным форматом
    • str_getcsv — Выполняет разбор CSV-строки в массив
    • 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 — Удаляет экранирование символов
    • stristr — Регистронезависимый вариант функции strstr
    • strlen — Возвращает длину строки
    • strnatcasecmp — Сравнение строк без учета регистра с использованием алгоритма "natural order"
    • strnatcmp — Сравнение строк с использованием алгоритма "natural order"
    • 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 — Записывает отформатированную строку в поток
    • vprintf — Выводит отформатированную строку
    • vsprintf — Возвращает отформатированную строку
    • wordwrap — Переносит строку по указанному количеству символов
  • Список изменений


Введение

Эти функции предназначены для выполнения различных манипуляций со строками. Более специализированные функции см. в разделах, посвященных регулярным выражениям и обработке URL.

Для получения общей информации о работе со строками, особенно об использовании одиночных, двойных кавычек и экранировании символов, смотрите главу Строки в разделе Типы .


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если 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)
ENT_IGNORE (integer)
ENT_SUBSTITUTE (integer)
ENT_DISALLOWED (integer)
ENT_HTML401 (integer)
ENT_XML1 (integer)
ENT_XHTML (integer)
ENT_HTML5 (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)


Функции для работы со строками

Смотрите также

Для получения информации о более сложной обработке строк обратитесь к функциями Perl-совместимых регулярных выражений. Для работы с многобайтовыми кодировками посмотрите на функции по работе с многобайтовыми кодировками.

Содержание

  • addcslashes — Экранирует cтроку слешами в стиле языка 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 — Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки
  • hex2bin — Преобразует шестнадцатеричные данные в двоичные
  • html_entity_decode — Преобразует HTML-сущности в соответствующие им символы
  • htmlentities — Преобразует все возможные символы в соответствующие HTML-сущности
  • htmlspecialchars_decode — Преобразует специальные HTML-сущности обратно в соответствующие символы
  • htmlspecialchars — Преобразует специальные символы в HTML-сущности
  • implode — Объединяет элементы массива в строку
  • join — Псевдоним implode
  • lcfirst — Преобразует первый символ строки в нижний регистр
  • levenshtein — Вычисляет расстояние Левенштейна между двумя строками
  • localeconv — Возвращает информацию о форматировании чисел
  • ltrim — Удаляет пробелы (или другие символы) из начала строки
  • md5_file — Возвращает MD5-хеш файла
  • md5 — Возвращает MD5-хеш строки
  • metaphone — Возвращает ключ metaphone для строки
  • money_format — Форматирует число как денежную величину
  • nl_langinfo — Возвращает информацию о языке и локали
  • nl2br — Вставляет HTML-код разрыва строки перед каждым переводом строки
  • number_format — Форматирует число с разделением групп
  • ord — Конвертирует первый байт строки в число от 0 до 255
  • parse_str — Разбирает строку в переменные
  • print — Выводит строку
  • printf — Выводит отформатированную строку
  • quoted_printable_decode — Преобразует строку, закодированную методом quoted-printable в 8-битную строку
  • quoted_printable_encode — Преобразует 8-битную строку с помощью метода quoted-printable
  • quotemeta — Экранирует специальные символы
  • rtrim — Удаляет пробелы (или другие символы) из конца строки
  • setlocale — Устанавливает настройки локали
  • sha1_file — Возвращает SHA1-хеш файла
  • sha1 — Возвращает SHA1-хеш строки
  • similar_text — Вычисляет степень похожести двух строк
  • soundex — Возвращает ключ soundex для строки
  • sprintf — Возвращает отформатированную строку
  • sscanf — Разбирает строку в соответствии с заданным форматом
  • str_getcsv — Выполняет разбор CSV-строки в массив
  • 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 — Удаляет экранирование символов
  • stristr — Регистронезависимый вариант функции strstr
  • strlen — Возвращает длину строки
  • strnatcasecmp — Сравнение строк без учета регистра с использованием алгоритма "natural order"
  • strnatcmp — Сравнение строк с использованием алгоритма "natural order"
  • 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 — Записывает отформатированную строку в поток
  • vprintf — Выводит отформатированную строку
  • vsprintf — Возвращает отформатированную строку
  • wordwrap — Переносит строку по указанному количеству символов


Экранирует cтроку слешами в стиле языка C

  • « Функции для работы со строками
  • addslashes »
  • PHP Manual
  • Функции для работы со строками
  • Экранирует cтроку слешами в стиле языка C

addcslashes

(PHP 4, PHP 5, PHP 7)

addcslashes — Экранирует cтроку слешами в стиле языка C

Описание

addcslashes ( string $str , string $charlist ) : string

Возвращает строку, экранированную обратными слешами перед символами, указанными в параметре charlist.

Список параметров

str

Экранируемая строка.

charlist

Список экранируемых символов. Если charlist содержит символы \n, \r и т.п., они будут преобразованы в стиле C, тогда как другие нецифробуквенные символы с ASCII-кодами ниже 32 и выше 126 будут преобразованы в восьмеричное представление.

Следует быть внимательным при указании диапазона символов в аргументе charlist. Проверяйте, какие символы входят в этот диапазон.

<?php
echo addcslashes('foo[ ]', 'A..z');
// выводит:  \f\o\o\[ \]
// Будут экранированы заглавные и строчные английские буквы
// ... а также [\]^_`
?>
Также, если ASCII-код первого символа диапазона больше, чем последнего, диапазон не будет создан. Вместо этого будут экранироваться только первый символ, последний символ и точка. Для определения ASCII-кода символов используйте функцию ord().
<?php
echo addcslashes("zoo['.']", 'z..A');
// выводит:  \zoo['\.']
?>

Будьте внимательны при экранировании символов 0, a, b, f, n, r, t и v. Они будут преобразованы в \0, \a, \b, \f, \n, \r, \t и \v, которые являются предопределенными escape-последовательностями в языке Си. Многие из этих последовательностей также определены в других Си-подобных языках, включая PHP. Это означает, что вы можете не получить ожидаемого результата, если будете использовать вывод функции addcslashes() для создания кода в этих языках с использованием этих символов в charlist.

Возвращаемые значения

Возвращает экранированную строку.

Список изменений

Версия | Описание
5.2.5 | Добавлены экранирующие последовательности \v и \f.

Примеры

charlist, например, "\0..\37", что проэкранирует все символы с ASCII-кодами от 0 до 31.

Пример #1 Пример использования addcslashes()

<?php
$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");
?>

Смотрите также

  • stripcslashes() - Удаляет экранирование символов, произведенное функцией addcslashes
  • stripslashes() - Удаляет экранирование символов
  • addslashes() - Экранирует строку с помощью слешей
  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • quotemeta() - Экранирует специальные символы


Экранирует строку с помощью слешей

  • « addcslashes
  • bin2hex »
  • PHP Manual
  • Функции для работы со строками
  • Экранирует строку с помощью слешей

addslashes

(PHP 4, PHP 5, PHP 7)

addslashes — Экранирует строку с помощью слешей

Описание

addslashes ( string $str ) : string

Возвращает строку с обратным слешем перед символами, которые нужно экранировать. Экранируются следующие символы:

  • одинарная кавычка (')
  • двойная кавычка (")
  • обратный слеш (\)
  • NUL (байт NULL)

Небольшой пример использования функции addslashes() для экранирования вышеперечисленных символов:

<?php
$str = "O'Reilly?";
eval("echo '" . addslashes($str) . "';");
?>

До версии PHP 5.4.0, директива magic_quotes_gpc была включена по умолчанию и, фактически, addslashes() автоматом применялась к данным GET, POST и COOKIE. Функция addslashes() не должна применяться к строкам, которые уже были экранированы посредством magic_quotes_gpc, так как двойное экранирование - это не то, чего вы обычно хотите. Используйте функцию get_magic_quotes_gpc() для проверки, установлена ли директива magic_quotes_gpc в значение on.

Иногда функцию addslashes() некорректно пытаются использовать для предотвращения SQL-инъекций. Не делайте так. Вместо нее используйте подготовленные запросы или функции экранирования соответствующих расширений работы с базами данных.

Список параметров

str

Экранируемая строка.

Возвращаемые значения

Возвращает экранируемую строку.

Примеры

Пример #1 Пример использования addslashes()

<?php
$str = "Ваше имя O'Reilly?";

// выводит: Ваше имя O\'Reilly?
echo addslashes($str);
?>

Смотрите также

  • stripcslashes() - Удаляет экранирование символов, произведенное функцией addcslashes
  • stripslashes() - Удаляет экранирование символов
  • addcslashes() - Экранирует cтроку слешами в стиле языка C
  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • quotemeta() - Экранирует специальные символы
  • get_magic_quotes_gpc() - Получение текущего значения настройки конфигурации magic_quotes_gpc


Преобразует бинарные данные в шестнадцатеричное представление

  • « addslashes
  • chop »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует бинарные данные в шестнадцатеричное представление

bin2hex

(PHP 4, PHP 5, PHP 7)

bin2hex — Преобразует бинарные данные в шестнадцатеричное представление

Описание

bin2hex ( string $str ) : string

Возвращает ASCII-строку, содержащую шестнадцатеричное представление аргумента str. Преобразование производится побайтно, начиная с верхнего полубайта.

Список параметров

str

Строка.

Возвращаемые значения

Возвращает шестнадцатеричное представление указанной строки.

Смотрите также

  • hex2bin() - Преобразует шестнадцатеричные данные в двоичные
  • pack() - Упаковать данные в бинарную строку


Псевдоним rtrim

  • « bin2hex
  • chr »
  • PHP Manual
  • Функции для работы со строками
  • Псевдоним rtrim

chop

(PHP 4, PHP 5, PHP 7)

chop — Псевдоним rtrim()

Описание

Эта функция является псевдонимом: rtrim().

Примечания

Замечание:

Действие chop() отличается от одноименной функции chop() языка Perl, удаляющей последний символ строки.


Генерирует односимвольную строку по заданному числу

  • « chop
  • chunk_split »
  • PHP Manual
  • Функции для работы со строками
  • Генерирует односимвольную строку по заданному числу

chr

(PHP 4, PHP 5, PHP 7)

chr — Генерирует односимвольную строку по заданному числу

Описание

chr ( int $bytevalue ) : string

Возвращает строку из одного символа, код которого задан аргументом bytevalue, который интерпретируется как беззнаковое целое (unsigned integer).

Может использоваться для создания строки из одного символа однобайтовой кодировки, например, такой как ASCII, ISO-8859 или Windows 1252, путем указания позиции этого символа в таблице кодировки. Данная функция не подходит для генерации односимвольной строки в многобайтовых кодировках, таких как UTF-8 или UTF-16.

Эта функция дополняет функцию ord().

Список параметров

bytevalue

Целое число от 0 до 255.

Значения за пределом диапазона (0..255) должны быть побитово сложены (побитовое И) с 255, что соответствует такому алгоритму:

while ($bytevalue < 0) {
    $bytevalue += 256;
}
$bytevalue %= 256;

Возвращаемые значения

Строка из одного символа, содержащая заданный байт.

Примеры

Пример #1 Пример использования chr()

<?php
// Предполагается, что строка будет использовака как ASCII или ASCII-совместимая

$str = "Эта строка заканчивается на escape: ";
$str .= chr(27); /* добавляет символ escape в конец $str */

/* Но обычно лучше использовать такую конструкцию */

$str = sprintf("Эта строка заканчивается на escape: %c", 27);
?>

Пример #2 Поведение при переполнении

<?php
echo chr(-159), chr(833), PHP_EOL;
?>

Результат выполнения данного примера:

aA

Пример #3 Создание строки UTF-8 из индивидуальных байтов

<?php
declare(encoding='UTF-8');
$str = chr(240) . chr(159) . chr(144) . chr(152);
echo $str;
?>

Результат выполнения данного примера:

??

Смотрите также

  • Описание формата %c функции sprintf()
  • ord()
  • » Таблица ASCII-кодов
  • mb_chr()


Разбивает строку на фрагменты

  • « chr
  • convert_cyr_string »
  • PHP Manual
  • Функции для работы со строками
  • Разбивает строку на фрагменты

chunk_split

(PHP 4, PHP 5, PHP 7)

chunk_split — Разбивает строку на фрагменты

Описание

chunk_split ( string $body [, int $chunklen = 76 [, string $end = "\r\n" ]] ) : string

Функция используется для разбиения строки на фрагменты, например, для приведения результата функции base64_encode() в соответствие с требованиями RFC 2045. Она вставляет строку end после каждых chunklen символов.

Список параметров

body

Разбиваемая строка.

chunklen

Длина фрагмента.

end

Последовательность символов, используемая в качестве конца строки.

Возвращаемые значения

Возвращает преобразованную строку.

Примеры

Пример #1 Пример использования chunk_split()

<?php
// форматирование данных в соответствии с RFC 2045
$new_string = chunk_split(base64_encode($data));
?>

Смотрите также

  • str_split() - Преобразует строку в массив
  • explode() - Разбивает строку с помощью разделителя
  • split() - Разбиение строки на массив по регулярному выражению
  • wordwrap() - Переносит строку по указанному количеству символов
  • » RFC 2045


Преобразует строку из одной кириллической кодировки в другую

  • « chunk_split
  • convert_uudecode »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует строку из одной кириллической кодировки в другую

convert_cyr_string

(PHP 4, PHP 5, PHP 7)

convert_cyr_string — Преобразует строку из одной кириллической кодировки в другую

Описание

convert_cyr_string ( string $str , string $from , string $to ) : string

Преобразует строку из одной кириллической кодировки в другую.

Список параметров

str

Конвертируемая строка.

from

Исходная кириллическая кодировка, один символ.

to

Целевая кириллическая кодировка, один символ.

Поддерживаются следующие символы:

  • k - koi8-r
  • w - windows-1251
  • i - iso8859-5
  • a - x-cp866
  • d - x-cp866
  • m - x-mac-cyrillic

Возвращаемые значения

Возвращает преобразованную строку.

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • mb_convert_encoding() - Преобразует кодировку символов
  • iconv() - Преобразование строки в требуемую кодировку


Декодирует строку из формата uuencode в обычный вид

  • « convert_cyr_string
  • convert_uuencode »
  • PHP Manual
  • Функции для работы со строками
  • Декодирует строку из формата uuencode в обычный вид

convert_uudecode

(PHP 5, PHP 7)

convert_uudecode — Декодирует строку из формата uuencode в обычный вид

Описание

convert_uudecode ( string $data ) : string

convert_uudecode() декодирует строку из формата uuencode в обычный вид.

Замечание: convert_uudecode() не принимает ни начальной (begin), ни конечной (end) строки, которая является частью файлов (files) uuencoded.

Список параметров

data

Данные в формате uuencode.

Возвращаемые значения

Возвращает декодированные данные в виде строки или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования convert_uudecode()

<?php
echo convert_uudecode("+22!L;W9E(%!(4\"$`\n`");
?>

Результат выполнения данного примера:

I love PHP!

Смотрите также

  • convert_uuencode() - Кодирует строку в формат uuencode


Кодирует строку в формат uuencode

  • « convert_uudecode
  • count_chars »
  • PHP Manual
  • Функции для работы со строками
  • Кодирует строку в формат uuencode

convert_uuencode

(PHP 5, PHP 7)

convert_uuencode — Кодирует строку в формат uuencode

Описание

convert_uuencode ( string $data ) : string

convert_uuencode() кодирует строку с помощью алгоритма uuencode.

Кодирование uuencode переводит строки (включая бинарные символы) в последовательности печатных (7-битных) ASCII-символов, что позволяет безопасно обмениваться данными через сеть. Закодированные данные примерно на 35% больше оригинала.

Замечание: convert_uudecode() не принимает ни начальной (begin), ни конечной (end) строки, которая является частью файлов (files) uuencoded.

Список параметров

data

Кодируемые данные.

Возвращаемые значения

Возвращает закодированные данные в формате uuencode или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования convert_uuencode()

<?php
$some_string = "test\ntext text\r\n";

echo convert_uuencode($some_string);
?>

Результат выполнения данного примера:

0=&5S=`IT97AT('1E>'0-"@``
`

Смотрите также

  • convert_uudecode() - Декодирует строку из формата uuencode в обычный вид
  • base64_encode() - Кодирует данные в формат MIME base64


Возвращает информацию о символах, входящих в строку

  • « convert_uuencode
  • crc32 »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает информацию о символах, входящих в строку

count_chars

(PHP 4, PHP 5, PHP 7)

count_chars — Возвращает информацию о символах, входящих в строку

Описание

count_chars ( string $string [, int $mode = 0 ] ) : mixed

Подсчитывает количество вхождений каждого из символов с ASCII-кодами в диапазоне (0..255) в строке string и возвращает эту информацию в различных форматах.

Список параметров

string

Исследуемая строка.

mode

Смотрите возвращаемые значения.

Возвращаемые значения

В зависимости от параметра mode, count_chars() возвращает одно из следующих значений:

  • 0 - массив, индексами которого являются ASCII-коды, а значениями - число вхождений соответствующего символа.
  • 1 - то же, что и для 0, но информация о символах с нулевым числом вхождений не включается в массив.
  • 2 - то же, что и для 0, но в массив включается информация только о символах с нулевым числом вхождений.
  • 3 - строка, содержащая все уникальные символы в исследуемой строке.
  • 4 - строка, состоящая из символов, которые не входят в исходную строку.

Примеры

Пример #1 Пример использования count_chars()

<?php
$data = "Two Ts and one F.";

foreach (count_chars($data, 1) as $i => $val) {
   echo "\"" , chr($i) , "\" встречается в строке $val раз(а).\n";
}
?>

Результат выполнения данного примера:

" " встречается в строке 4 раз(а).
"." встречается в строке 1 раз(а).
"F" встречается в строке 1 раз(а).
"T" встречается в строке 2 раз(а).
"a" встречается в строке 1 раз(а).
"d" встречается в строке 1 раз(а).
"e" встречается в строке 1 раз(а).
"n" встречается в строке 2 раз(а).
"o" встречается в строке 2 раз(а).
"s" встречается в строке 1 раз(а).
"w" встречается в строке 1 раз(а).

Смотрите также

  • strpos() - Возвращает позицию первого вхождения подстроки
  • substr_count() - Возвращает число вхождений подстроки


Вычисляет полином CRC32 для строки

  • « count_chars
  • crypt »
  • PHP Manual
  • Функции для работы со строками
  • Вычисляет полином CRC32 для строки

crc32

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

crc32 — Вычисляет полином CRC32 для строки

Описание

crc32 ( string $str ) : int

Функция вычисляет циклический избыточный код 32-битных полиномов (CRC32) для строки str. Это обычно используется для контроля целостности передаваемых данных.

Внимание

В PHP целые числа имеют знак, поэтому многие контрольные суммы могут оказаться отрицательными на 32-битных платформах. На 64-битных платформах все результаты crc32() будут положительными целыми.

Поэтому вам нужно использовать формат "%u" в функциях sprintf() или printf() для получения строкового представления суммы crc32() без знака.

Для шестнадцатеричного представления суммы вы можете использовать или формат "%x" в функциях sprintf() и printf(), или же функцию конвертации dechex(). Оба этих способа также позаботятся о конвертации результата crc32() в безнаковое целое.

При использовании 64-битных платформ также рассматривалась возможность возвращать отрицательные целые для больших значений, но это ломало шестнадцатеричное представление, добавляя дополнительные 0xFFFFFFFF######## смещения для них. Так как шестнадцатеричное представление является самым востребованным, было решено не ломать его, даже если это ломает прямое сравнение десятиричных значений в 50% случаев при переходе с 32-битных на 64-битные платформы.

Оглядываясь назад, возможно возвращать целое число было не самой лучшей идеей и лучше было возвращать сразу шестнадцатеричное представление (как например делает md5()).

Можно воспользоваться также более общим решением с использованием функции hash(). hash("crc32b", $str) вернет ту же строку, что и str_pad(dechex(crc32($str)), 8, '0', STR_PAD_LEFT).

Список параметров

str

Данные.

Возвращаемые значения

Возвращает контрольную сумму crc32 строки str в виде целого числа.

Примеры

Пример #1 Вывод контрольной суммы CRC32

Этот пример иллюстрирует вывод вычисленной контрольной суммы с помощью функции printf():

<?php
$checksum = crc32("The quick brown fox jumped over the lazy dog.");
printf("%u\n", $checksum);
?>

Смотрите также

  • hash() - Генерирует хеш-код (дайджест сообщения)
  • md5() - Возвращает MD5-хеш строки
  • sha1() - Возвращает SHA1-хеш строки


Необратимое хеширование строки

  • « crc32
  • echo »
  • PHP Manual
  • Функции для работы со строками
  • Необратимое хеширование строки

crypt

(PHP 4, PHP 5, PHP 7)

crypt — Необратимое хеширование строки

Внимание

Эта функция (пока) небезопасна для обработки данных в двоичной форме!

Описание

crypt ( string $str [, string $salt ] ) : string

crypt() возвращает хешированную строку, полученную с помощью стандартного алгоритма UNIX, основанного на DES или другого алгоритма, имеющегося в системе.

Параметр salt является необязательным. Однако без salt функция crypt() создает слабый пароль. PHP 5.6 и новее вызывают ошибку E_NOTICE, если не использовать соль. Убедитесь, что используете достаточно сложную соль для лучшей безопасности.

Функция password_hash() использует сложный хеш, генерирует сложную соль и применяет правильно количество раундов хеширования автоматически. password_hash() является простой оберткой над crypt() и совместима с существующими хешами паролей. Поэтому приветствуется использование password_hash().

Некоторые операционные системы поддерживают несколько алгоритмов хеширования. Иногда стандартный алгоритм, основанный на DES, заменяется алгоритмом на основе MD5. Вид хеширования определяется переданным аргументом salt (соль). До версии PHP 5.3, PHP определял доступные алгоритмы шифрования во время инсталляции, базируясь на системной функции crypt(). Если соль не указана, будет автоматически сгенерирована стандартная случайная двухсимвольная (DES) или двенадцатисимвольная (MD5) соль, в зависимости от доступности алгоритма MD5 в crypt(). Предопределенная константа CRYPT_SALT_LENGTH позволяет определить максимально доступную длину соли в соответствии с используемыми алгоритмами.

Стандартная функция crypt() на основе DES возвращает соль в качестве первых двух символов возвращаемой строки. Кроме того, она использует только первые восемь символов строки str, поэтому более длинные строки, начинающиеся с тех же восьми символов, сгенерируют один и тот же результат (при использовании одинаковой соли).

На системах, где функция crypt() поддерживает несколько алгоритмов хеширования, следующие константы устанавливаются в 0 или 1, в зависимости от доступности соответствующего алгоритма:

  • CRYPT_STD_DES - Стандартное DES-шифрование с двухсимвольной солью из алфавита "./0-9A-Za-z""./0-9A-Za-z". Использование других символов в соли повлечет за собой отказ работы crypt().
  • CRYPT_EXT_DES - Расширенное DES-шифрование. "Соль" является девятисимвольной строкой, состоящей из символа подчеркивания, за которым следуют 4 байта счетчика итерации и 4 байта соли. Эти данные будут закодированы в виде печатаемых символов, 6 бит на символ, с меньшим значащим символом указанным первым. Значения от 0 до 63 кодируются как "./0-9A-Za-z". Использование других символов в соли повлечет за собой отказ работы crypt().
  • CRYPT_MD5 - MD5-шифрование с 12-символьной солью, начинающейся с $1$
  • CRYPT_BLOWFISH - Blowfish-шифрование со следующей солью: "$2a$", "$2x$" или "$2y$", весовой параметр из двух цифр, "$" и 22 цифры из алфавита "./0-9A-Za-z". Использование других символов в соли повлечет за собой возрат пустой строки. Весовой параметр из двух цифр является двоичным логарифмом счетчика итераций низлежащего хеширующего алгоритма, основанного на Blowfish, и должен быть в диапазоне 04-31, значения вне данного диапазона вызовут отказ crypt(). Версии PHP до 5.3.7 поддерживали только префикс "$2a$" для соли: PHP 5.3.7 добавил новые префиксы для исправления уязвимостей в реализации Blowfish. Для полного понимания ознакомьтесь с » этим разделом, но если кратко, то разработчики должны использовать "$2y$" вместо "$2a$" начиная с PHP 5.3.7.
  • CRYPT_SHA256 - хеш SHA-256 с шестнадцатисимвольной солью, начинающейся с $5$. Если строка с солью начинается с 'rounds=<N>$', число N будет использовано для обозначения количества раундов хеширования, по аналогии с весовым параметром в Blowfish. По умолчанию используемое количество раундов равно 5000, минимально доступно 1000 и максимально 999,999,999. Любое значение вне этого диапазона будет усечено до ближайшего лимита.
  • CRYPT_SHA512 - хеш SHA-512 с шестнадцатисимвольной солью, начинающейся с $6$. Если строка с солью начинается с 'rounds=<N>$', число N будет использовано для обозначения количества раундов хеширования, по аналогии с весовым параметром в Blowfish. По умолчанию используемое количество раундов равно 5000, минимально доступно 1000 и максимально 999,999,999. Любое значение вне этого диапазона будет усечено до ближайшего лимита.

Замечание:

Начиная с версии PHP 5.3.0, PHP использует свою собственную реализацию, которая будет использована при отсутствии в системе какого-либо алгоритма.

Список параметров

str

Хешируемая строка.

Предостережение

При использовании алгоритма CRYPT_BLOWFISH, параметр str обрезается до 72 символов.

salt

Необязательный параметр с солью, на которой будет основано хеширование. Если не указан, поведение определяется по наличию реализованных алгоритмов в системе и может привести к неожиданным результатам.

Возвращаемые значения

Возвращает хешированную строку или строку короче 13 символов, гарантированно отличающуюся от соли в случае ошибки.

Внимание

При валидации паролей должны использоваться функции сравнения строк, устойчивые к атаке по времени, для сравнения вывода функции crypt() с известным хешом. В PHP 5.6 и новее для этих целей есть функция hash_equals().

Список изменений

Версия | Описание
5.6.5 | Теперь, если в параметр salt передано неправильное значение "*0", то будет возвращаться "*1" согласно другим криптографическим реализациям. До этой версии PHP 5.6 возвращал хеш DES.
5.6.0 | Если параметр salt пропущен, то вызывается предупреждение E_NOTICE.
5.5.21 | Теперь, если в параметр salt передано неправильное значение "*0", то теперь возвращается "*1" согласно другим криптографическим реализациям. До этой версии PHP 5.5 (и другие ветки) возвращал хеш DES.
5.3.7 | Добавлены $2x$ и $2y$ режимы Blowfish для предотвращения возможных "high-bit" атак.
5.3.2 | Добавлено хеширование алгоритмами SHA-256 и SHA-512, основанное на » реализации Ульриха Дреппера (Ulrich Drepper).
5.3.2 | Исправлено поведение Blowfish при некорректных раундах: теперь возвращается "ошибочная" строка ("*0" или "*1") вместо отката к использованию DES.
5.3.0 | PHP теперь использует собственную реализацию MD5, стандартного DES, расширенного DES и Blowfish алгоритмов, которые будут использованы в случае отсутствия их поддержки в системе.

Примеры

Пример #1 Пример использования crypt()

<?php
$hashed_password = crypt('mypassword'); // соль будет сгенерирована автоматически

/* Для проверки пароля в качестве параметра salt следует передавать результат работы
   crypt() целиком во избежание проблем при использовании различных
   алгоритмов (как уже было отмечено выше, стандартный DES-алгоритм
   использует 2-символьную соль, а MD5 - 12-символьную. */
if (hash_equals($hashed_password, crypt($user_input, $hashed_password))) {
   echo "Пароль верен!";
}
?>

Пример #2 Использование crypt() и htpasswd

<?php
// пароль
$password = 'mypassword';

// получение хеша, соль генерируется автоматически
$hash = crypt($password);
?>

Пример #3 Использование crypt() с различными видами хешей

<?php
/* Приведенная соль является только примером. Не используйте эту же соль в вашем коде.
   Вы должны сгенерировать уникальную и правильную соль для каждого пароля.
*/
if (CRYPT_STD_DES == 1) {
    echo 'Стандартный DES: ' . crypt('rasmuslerdorf', 'rl') . "\n";
}

if (CRYPT_EXT_DES == 1) {
    echo 'Расширенный DES: ' . crypt('rasmuslerdorf', '_J9..rasm') . "\n";
}

if (CRYPT_MD5 == 1) {
    echo 'MD5:             ' . crypt('rasmuslerdorf', '$1$rasmusle$') . "\n";
}

if (CRYPT_BLOWFISH == 1) {
    echo 'Blowfish:        ' . crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$') . "\n";
}

if (CRYPT_SHA256 == 1) {
    echo 'SHA-256:         ' . crypt('rasmuslerdorf', '$5$rounds=5000$usesomesillystringforsalt$') . "\n";
}

if (CRYPT_SHA512 == 1) {
    echo 'SHA-512:         ' . crypt('rasmuslerdorf', '$6$rounds=5000$usesomesillystringforsalt$') . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Стандартный DES: rl.3StKT.4T8M
Расширенный DES: _J9..rasmBYk8r9AiWNc
MD5:             $1$rasmusle$rISCgZzpwk3UhDidwXvin0
Blowfish:        $2a$07$usesomesillystringfore2uDLvp1Ii2e./U9C8sBjqp8I90dH6hi
SHA-256:         $5$rounds=5000$usesomesillystri$KqJWpanXZHKq2BOB43TSaYhEWsQ1Lr5QNyPCDH/Tp.6
SHA-512:         $6$rounds=5000$usesomesillystri$D4IrlXatmP7rx3P3InaxBeoomnAihCKRVQP22JZ6EY47Wc6BkroIuUUBOov1i.S5KPgErtP/EN5mcO.ChWQW21

Примечания

Замечание: Функция расшифровки отсутствует, так как crypt() использует необратимый алгоритм хеширования.

Смотрите также

  • hash_equals() - Сравнение строк, нечувствительное к атакам по времени
  • password_hash() - Создает хеш пароля
  • md5() - Возвращает MD5-хеш строки
  • Расширение Mcrypt
  • Страница руководства Unix по вашей функции crypt


Выводит одну или более строк

  • « crypt
  • explode »
  • PHP Manual
  • Функции для работы со строками
  • Выводит одну или более строк

echo

(PHP 4, PHP 5, PHP 7)

echo — Выводит одну или более строк

Описание

echo ( string $arg1 [, string $... ] ) : void

Выводит все аргументы. Символ конца строки не добавляется.

На самом деле, echo - это не функция (это языковая конструкция), поэтому заключать аргументы в скобки необязательно. echo (в отличие от других языковых конструкций) не ведет себя как функция, поэтому не всегда может быть использована в контексте функции. Вдобавок, если вы хотите передать более одного аргумента в echo, эти аргументы нельзя заключать в скобки.

echo имеет также краткую форму, представляющую собой знак равенства, следующий непосредственно за открывающим тегом. До PHP 5.4.0 этот сокращенный синтаксис работал только с включенном параметром конфигурации short_open_tag.

У меня есть <?=$foo?> foo.

Единственное отличие от print в том, что echo принимает список аргументов и ничего не возвращает.

Список параметров

arg1

Параметр для вывода.

...

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Примеры использования echo

<?php
echo "Привет мир!";

// Вместо конкатенации можно предать список аргументов, которые будут объединены
// в одну строку и обработаны как один аргумент
echo 'Эта ', 'строка ', 'была ', 'создана ', 'несколькими параметрами.', chr(10);
echo 'Эта ' . 'строка ' . 'была ' . 'создана ' . 'с помощью конкатенации.' . "\n";

// Следующая строка неверна, так как echo не является функцией
($some_var) ? echo 'true' : echo 'false';

// Но это можно записать по-другому
($some_var) ? print 'true' : print 'false'; // print также является конструкцией языка,
                                            // но ведет себя как функция, поэтому она
                                            // может быть использована в этом контексте.

echo $some_var ? 'true': 'false'; // echo вынесен за пределы выражения
?>

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.

Подсказка

Преимущество передачи нескольких аргументов вместо конкатенации в echo касается приоритета оператора "точка". Если передавать несколько аргументов, то скобки в выражениях не нужны:

<?php
echo "Сумма: ", 1 + 2;
echo "Привет, ", isset($name) ? $name : "незнакомец", "!";

В случае конкатенации, оператор "точка" будет иметь более высокий приоритет, чем сложение или тернарный оператор, поэтому необходимо использовать скобки:

<?php
echo 'Сумма: ' . (1 + 2);
echo 'Привет, ' . (isset($name) ? $name : 'незнакомец') . '!';

Смотрите также

  • print - Выводит строку
  • printf() - Выводит отформатированную строку
  • flush() - Сброс системного буфера вывода
  • Heredoc-синтаксис


Разбивает строку с помощью разделителя

  • « echo
  • fprintf »
  • PHP Manual
  • Функции для работы со строками
  • Разбивает строку с помощью разделителя

explode

(PHP 4, PHP 5, PHP 7)

explode — Разбивает строку с помощью разделителя

Описание

explode ( string $delimiter , string $string [, int $limit = PHP_INT_MAX ] ) : array

Возвращает массив строк, полученных разбиением строки string с использованием delimiter в качестве разделителя.

Список параметров

delimiter

Разделитель.

string

Входная строка.

limit

Если аргумент limit является положительным, возвращаемый массив будет содержать максимум limit элементов, при этом последний элемент будет содержать остаток строки string.

Если параметр limit отрицателен, то будут возвращены все компоненты, кроме последних -limit.

Если limit равен нулю, то он расценивается как 1.

Замечание:

По историческим причинам, функции implode() можно передавать аргументы в любом порядке, но для explode() это недопустимо. Убедитесь в том, что delimiter указан перед аргументом string.

Возвращаемые значения

Возвращает массив (array) строк (string), созданный делением параметра string по границам, указанным параметром delimiter.

Если delimiter является пустой строкой (""), explode() возвращает FALSE. Если delimiter не содержится в string, и используется отрицательный limit, то будет возвращен пустой массив (array), иначе будет возвращен массив, содержащий string.

Список изменений

Версия | Описание
5.1.0 | Добавлена поддержка отрицательных значений limit

Примеры

Пример #1 Пример использования explode()

<?php
// Пример 1
$pizza  = "кусок1 кусок2 кусок3 кусок4 кусок5 кусок6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // кусок1
echo $pieces[1]; // кусок2

// Пример 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

?>

Пример #2 Пример возвращаемого значения explode()

<?php
/*
   Строка, которая не содержит разделителя, будет
   просто возвращать массив с одним значением оригинальной строки.
*/
$input1 = "hello";
$input2 = "hello,there";
$input3 = ',';
var_dump( explode( ',', $input1 ) );
var_dump( explode( ',', $input2 ) );
var_dump( explode( ',', $input3 ) );

?>

Результат выполнения данного примера:

array(1)
(
    [0] => string(5) "hello"
)
array(2)
(
    [0] => string(5) "hello"
    [1] => string(5) "there"
)
array(2)
(
    [0] => string(0) ""
    [1] => string(0) ""
)

Пример #3 Примеры с использованием параметра limit

<?php
$str = 'один|два|три|четыре';

// положительный лимит
print_r(explode('|', $str, 2));

// отрицательный лимит (начиная с PHP 5.1)
print_r(explode('|', $str, -1));
?>

Результат выполнения данного примера:

Array
(
    [0] => один
    [1] => два|три|четыре
)
Array
(
    [0] => один
    [1] => два
    [2] => три
)

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • preg_split() - Разбивает строку по регулярному выражению
  • str_split() - Преобразует строку в массив
  • mb_split() - Разделение строк в многобайтных кодировках, используя регулярное выражение
  • str_word_count() - Возвращает информацию о словах, входящих в строку
  • strtok() - Разбивает строку на токены
  • implode() - Объединяет элементы массива в строку


Записывает отформатированную строку в поток

  • « explode
  • get_html_translation_table »
  • PHP Manual
  • Функции для работы со строками
  • Записывает отформатированную строку в поток

fprintf

(PHP 5, PHP 7)

fprintf — Записывает отформатированную строку в поток

Описание

fprintf ( resource $handle , string $format [, mixed $... ] ) : int

Записывает строку, созданную с использованием строки формата format, в поток, дескриптор которого передается в параметре handle.

Список параметров

handle

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

format

Строка формата состоит из нуля или более директив: обычные символы (за исключением %), которые просто выводятся без изменения и спецификаторы преобразования, каждый из которых требует передачи своего параметра.

Спецификаторы преобразования имеют следующий формат: %[argnum$][flags][width][.precision]specifier.

Argnum

Целое число, за которым следует знак доллара $, чтобы указать, какой числовой аргумент обрабатывать при преобразовании.

Флаги
Флаг | Описание
- Выравнивание по левому краю в пределах заданной ширины поля; По умолчанию выравнивание происходит по правому краю.
+ Печатает плюс + у не отрицательных чисел; По умолчанию знак печатается только у отрицательных чисел.
(space) | Дополняет результат пробелами. Это поведение по умолчанию.
0 | Дополняет числа нулями (только слева). Со спецификатором s также может дополнять нулями справа.
'(char) | Дополняет результат символом (char).

Ширина

Целое число, определяющее минимальное количество символов, которое будет напечатано.

Точность

Точка . с последующим целым числом, работающая по разному для разных спецификаторов:

  • Для спецификаторов e, E, f и F: задает количество цифр после десятичной запятой (по умолчанию 6).
  • Для спецификаторов g и G: задает максимальное значение печатаемых значащих цифр.
  • Для спецификатора s: задает ограничение максимального количества символов в строке, которые будут выведены.

Замечание: Если указана точка без последующего значения точности, то точность будет считаться за 0.

Замечание: Попытка использовать спецификатор позиции со значением больше, чем PHP_INT_MAX приведет к выводу предупреждения.

Спецификаторы
Спецификатор | Описание
% Символ процента. Аргументы не требуются.
b | Аргумент рассматривается как целое число и печатается в бинарном представлении.
c | Аргумент рассматривается как целое число и печатается как символ из таблицы ASCII с соответствующим кодом.
d | Аргумент рассматривается как целое число и печатается как целое число со знаком.
e | Аргумент считается за число в научной нотации (т.е. 1.2e+2). Начиная с PHP 5.2.1, спецификатор точности задает количество цифр после десятичной запятой. В более ранних версиях он задавал общее количество значащих цифр (т.е. после запятой выводилось на 1 символ меньше).
E | Аналогично спецификатору e, но использует заглавные символы (т.е. 1.2E+2).
f | Аргумент считается за число с плавающей точкой (с учетом локали).
F | Аргумент считается за число с плавающей точкой (без учета локали). Доступно с PHP 5.0.3.
g

Общий формат.

Пусть P равно точности, если она не равно нулю, 6 - если точность не задана и 1, если точность задана как 0. Тогда, если преобразование со стилем "E" будет иметь показатель степени X:

Если P > X ? ?4, преобразование будет в стиле "f" и точность будет P ? (X + 1). В обратном случае, преобразование будет в стиле "e" и точность будет P ? 1.

G | Аналогично спецификатору g, но использует E и F.
o | Аргумент рассматривается как целое число и печатается в восмеричном представлении.
s | Аргумент рассматривается и печатается как строка.
u | Аргумент рассматривается как целое число и печатается как беззаковое целое число.
x | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в нижнем регистре).
X | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в верхнем регистре).

Внимание

Спецификатор c игнорирует значения ширины и дополнения

Внимание

Попытка использовать спецификаторы с указанием ширины для строки в многобайтовой кодировке может привести к неожиданным результатам.

Переменные будут приведены к подходящему для спецификатора типу:

Обработка типов
Тип | Спецификатор
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

...

Возвращаемые значения

Возвращает длину записанной строки.

Примеры

Пример #1 fprintf(): заполнение нулями

<?php
if (!($fp = fopen('date.txt', 'w'))) {
    return;
}

fprintf($fp, "%04d-%02d-%02d", $year, $month, $day);
// запишет форматированную ISO-дату в файл 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";
// используйте возвращаемое из fprintf значение для определения количества записанных байт
?>

Смотрите также

  • printf() - Выводит отформатированную строку
  • sprintf() - Возвращает отформатированную строку
  • vprintf() - Выводит отформатированную строку
  • vsprintf() - Возвращает отформатированную строку
  • vfprintf() - Записывает отформатированную строку в поток
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • fscanf() - Обрабатывает данные из файла в соответствии с форматом
  • number_format() - Форматирует число с разделением групп
  • date() - Форматирует вывод системной даты/времени


Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities

  • « fprintf
  • hebrev »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities

get_html_translation_table

(PHP 4, PHP 5, PHP 7)

get_html_translation_table — Возвращает таблицу преобразований, используемую функциями htmlspecialchars() и htmlentities()

Описание

get_html_translation_table ([ int $table = HTML_SPECIALCHARS [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = "UTF-8" ]]] ) : array

get_html_translation_table() возвращает таблицу
преобразований, используемую функциями htmlspecialchars()
и htmlentities().

Замечание:

Специальные символы могут быть закодированы разными способами. Например, " может быть закодирован как &quot;, &#34; или &#x22. get_html_translation_table() возвращает только формы, используемые функциями htmlspecialchars() и htmlentities().

Список параметров

table

Указывает, какую таблицу использовать для преобразований. Либо HTML_ENTITIES, либо HTML_SPECIALCHARS.

flags

Битовая маска, состоящая из одного или нескольких перечисленных ниже флагов, которые указывают, какие кавычки будет содержать таблица, а также для какого документа таблица предназначена. Значение по умолчанию ENT_COMPAT | ENT_HTML401.

Доступные константы в параметре flags
Имя константы | Описание
ENT_COMPAT | Таблица будет содержать сущности для двойных кавычек, но не будет для одинарных.
ENT_QUOTES | Таблица будет содержать сущности как для двойных кавычек, так и для одинарных.
ENT_NOQUOTES | Таблица не будет содержать сущности ни для двойных кавычек, ни для одинарных.
ENT_HTML401 | Таблица для HTML 4.01.
ENT_XML1 | Таблица для XML 1.
ENT_XHTML | Таблица для XHTML.
ENT_HTML5 | Таблица для HTML 5.

encoding

Используемая кодировка. Если не указана, то значением по умолчанию для этого аргумента является ISO-8859-1 в версиях PHP до 5.4.0 и UTF-8, начиная с версии 5.4.0 и выше.

Поддерживаются следующие кодировки:

Поддерживаемые кодировки
Кодировка | Псевдонимы | Описание
ISO-8859-1 | ISO8859-1 | Западно-европейская Latin-1.
ISO-8859-5 | ISO8859-5 | Редко используемая кириллическая кодировка (Latin/Cyrillic).
ISO-8859-15 | ISO8859-15 | Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1 (ISO-8859-1).
UTF-8 | 8-битная Unicode, совместимая с ASCII.
cp866 | ibm866, 866 | Кириллическая кодировка, применяемая в DOS.
cp1251 | Windows-1251, win-1251, 1251 | Кириллическая кодировка, применяемая в Windows.
cp1252 | Windows-1252, 1252 | Западно-европейская кодировка, применяемая в Windows.
KOI8-R | koi8-ru, koi8r | Русская кодировка.
BIG5 | 950 | Традиционный китайский, применяется в основном на Тайване.
GB2312 | 936 | Упрощенный китайский, стандартная национальная кодировка.
BIG5-HKSCS | Расширенная Big5, применяемая в Гонконге.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Японская кодировка.
EUC-JP | EUCJP, eucJP-win | Японская кодировка.
MacRoman | Кодировка, используемая в Mac OS.
'' Пустая строка активирует режим определения кодировки из файла скрипта (Zend multibyte), default_charset и текущей локали (см. nl_langinfo() и setlocale()) в указанном порядке. Не рекомендуется к использованию.

Замечание: Остальные кодировки не поддерживаются, вместо них будет применена кодировка по умолчанию и сгенерировано предупреждение.

Возвращаемые значения

Возвращает таблицу преобразований в виде массива с оригинальными символами в качестве ключей и сущностями в качестве значений.

Список изменений

Версия | Описание
5.4.0 | Значение по умолчанию для параметра encoding было изменено на UTF-8.
5.4.0 | Были добавлены константы ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
5.3.4 | Добавлен параметр encoding.

Примеры

Пример #1 Пример таблицы преобразований

<?php
var_dump(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES | ENT_HTML5));
?>

Результатом выполнения данного примера будет что-то подобное:

array(1510) {
  ["
"]=>
  string(9) "&NewLine;"
  ["!"]=>
  string(6) "&excl;"
  ["""]=>
  string(6) "&quot;"
  ["#"]=>
  string(5) "&num;"
  ["$"]=>
  string(8) "&dollar;"
  ["%"]=>
  string(8) "&percnt;"
  ["&"]=>
  string(5) "&amp;"
  ["'"]=>
  string(6) "&apos;"
  // ...
}

Смотрите также

  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
  • html_entity_decode() - Преобразует HTML-сущности в соответствующие им символы


Преобразует текст на иврите из логической кодировки в визуальную

  • « get_html_translation_table
  • hebrevc »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует текст на иврите из логической кодировки в визуальную

hebrev

(PHP 4, PHP 5, PHP 7)

hebrev — Преобразует текст на иврите из логической кодировки в визуальную

Описание

hebrev ( string $hebrew_text [, int $max_chars_per_line = 0 ] ) : string

Преобразует текст на иврите из логической кодировки в визуальную.

Эта функция пытается избежать разрывов слов.

Список параметров

hebrew_text

Входная строка на иврите.

max_chars_per_line

Этот необязательный параметр указывает максимально возвращаемое число символов на строку.

Возвращаемые значения

Возвращает строку в визуальной кодировке.

Смотрите также

  • hebrevc() - Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки


Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки

  • « hebrev
  • hex2bin »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки

hebrevc

(PHP 4, PHP 5, PHP 7)

hebrevc — Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки

Описание

hebrevc ( string $hebrew_text [, int $max_chars_per_line = 0 ] ) : string

Эта функция похожа на hebrev() с тем отличием, что она преобразует символы перевода строки (\n) в "<br>\n".

Эта функция пытается избежать разрывов слов.

Список параметров

hebrew_text

Входная строка на иврите.

max_chars_per_line

Этот необязательный параметр указывает максимально возвращаемое число символов на строку.

Возвращаемые значения

Возвращает строку в визуальной кодировке.

Смотрите также

  • hebrev() - Преобразует текст на иврите из логической кодировки в визуальную


Преобразует шестнадцатеричные данные в двоичные

  • « hebrevc
  • html_entity_decode »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует шестнадцатеричные данные в двоичные

hex2bin

(PHP 5 >= 5.4.0, PHP 7)

hex2bin — Преобразует шестнадцатеричные данные в двоичные

Описание

hex2bin ( string $data ) : string

Декодирует строку данных из шестнадцатеричного представления.

Предостережение

Эта функция НЕ конвертирует шестнадцатеричные числа в двоичные. Если нужно именно это, используйте функцию base_convert().

Список параметров

data

Шестнадцатеричное представление данных.

Возвращаемые значения

Возвращает двоичное представление данных или FALSE в случае возникновения ошибки.

Ошибки

Если во входной шестнадцатеричной строке окажется нечетное число байт или она не является правильной шестнадцатеричной строкой, будет выдано предупреждение E_WARNING.

Список изменений

Версия | Описание
5.5.1 | Если входная строка не является правильной шестнадцатеричной строкой, то будет выброшено предупреждение.
5.4.4 | Если строка имеет нечетную длину, выбрасывается предупреждение. В PHP 5.4.0 такая строка принималась, а последний байт просто обрезался.

Примеры

Пример #1 Пример использования hex2bin()

<?php
$hex = hex2bin("d0bfd180d0b8d0bcd0b5d18020d188d0b5d181d182d0bdd0b0d0b4d186d0b0d182d0b5d180d0b8d187d0bdd18bd18520d0b4d0b0d0bdd0bdd18bd185");
var_dump($hex);
?>

Результатом выполнения данного примера будет что-то подобное:

string(60) "пример шестнадцатеричных данных"

Смотрите также

  • bin2hex() - Преобразует бинарные данные в шестнадцатеричное представление
  • unpack() - Распаковать данные из бинарной строки


Преобразует HTML-сущности в соответствующие им символы

  • « hex2bin
  • htmlentities »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует HTML-сущности в соответствующие им символы

html_entity_decode

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

html_entity_decode — Преобразует HTML-сущности в соответствующие им символы

Описание

html_entity_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") ]] ) : string

html_entity_decode() является противоположностью функции htmlentities(). Она преобразует HTML-сущности в строке string в соответствующие им символы.

Если быть точнее, то эта функция преобразует все сущности (в том числе все числовые сущности), которые а) обязательно верны для выбранного типа документа - то есть, для XML эта функция не преобразует именованные сущности, которые могут быть определены в каком-нибудь DTD - и б) их символы находятся в кодировке, соответствующей выбранной и разрешены в выбранном типе документа. Все другие сущности остаются без изменений.

Список параметров

string

Входная строка.

flags

Битовая маска, состоящая из одного или более флагов, которые указывают, как обращаться с кавычками и какой тип документа использовать. По умолчанию маска принимает значение ENT_COMPAT | ENT_HTML401.

Константы flags
Имя константы | Описание
ENT_COMPAT | Преобразуются двойные кавычки, одинарные остаются без изменений.
ENT_QUOTES | Преобразуются и двойные, и одинарные кавычки.
ENT_NOQUOTES | Оставить как двойные, так и одинарные кавычки без изменений.
ENT_HTML401 | Обрабатывать код как HTML 4.01.
ENT_XML1 | Обрабатывать код как XML 1.
ENT_XHTML | Обрабатывать код как XHTML.
ENT_HTML5 | Обрабатывать код как HTML 5.

encoding

Необязательный аргумент, определяющий кодировку, используемую при конвертации симоволов.

Если не указан, то значение по умолчанию для encoding зависит от используемой версии PHP. В PHP 5.6 и выше, для значения по умолчанию используется конфигурационная опция default_charset. В PHP 5.4 и 5.5 используется UTF-8 по умолчанию. Более ранние версии PHP используют ISO-8859-1.

Хотя этот аргумент является технически необязательным, настоятельно рекомендуется указать правильное значение для вашего кода, если вы используете PHP 5.5 или выше, или если ваша опция конфигурации default_charset может быть задана неверно для входных данных.

Поддерживаются следующие кодировки:

Поддерживаемые кодировки
Кодировка | Псевдонимы | Описание
ISO-8859-1 | ISO8859-1 | Западно-европейская Latin-1.
ISO-8859-5 | ISO8859-5 | Редко используемая кириллическая кодировка (Latin/Cyrillic).
ISO-8859-15 | ISO8859-15 | Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1 (ISO-8859-1).
UTF-8 | 8-битная Unicode, совместимая с ASCII.
cp866 | ibm866, 866 | Кириллическая кодировка, применяемая в DOS.
cp1251 | Windows-1251, win-1251, 1251 | Кириллическая кодировка, применяемая в Windows.
cp1252 | Windows-1252, 1252 | Западно-европейская кодировка, применяемая в Windows.
KOI8-R | koi8-ru, koi8r | Русская кодировка.
BIG5 | 950 | Традиционный китайский, применяется в основном на Тайване.
GB2312 | 936 | Упрощенный китайский, стандартная национальная кодировка.
BIG5-HKSCS | Расширенная Big5, применяемая в Гонконге.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Японская кодировка.
EUC-JP | EUCJP, eucJP-win | Японская кодировка.
MacRoman | Кодировка, используемая в Mac OS.
'' Пустая строка активирует режим определения кодировки из файла скрипта (Zend multibyte), default_charset и текущей локали (см. nl_langinfo() и setlocale()) в указанном порядке. Не рекомендуется к использованию.

Замечание: Остальные кодировки не поддерживаются, вместо них будет применена кодировка по умолчанию и сгенерировано предупреждение.

Возвращаемые значения

Возвращает раскодированную строку.

Список изменений

Версия | Описание
5.6.0 | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
5.4.0 | Кодировка по умолчанию сменилась с ISO-8859-1 на UTF-8.
5.4.0 | Были добавлены константы ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.

Примеры

Пример #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
?>

Примечания

Замечание:

Может показаться странным, что результатом вызова trim(html_entity_decode('&nbsp;')); не является пустая строка. Причина том, что '&nbsp;' преобразуется не в символ с ASCII-кодом 32 (который удаляется функцией trim()), а в символ с ASCII-кодом 160 (0xa0) в принимаемой по умолчанию кодировке ISO-8859-1.

Смотрите также

  • htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • get_html_translation_table() - Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities
  • urldecode() - Декодирование URL-кодированной строки


Преобразует все возможные символы в соответствующие HTML-сущности

  • « html_entity_decode
  • htmlspecialchars_decode »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует все возможные символы в соответствующие HTML-сущности

htmlentities

(PHP 4, PHP 5, PHP 7)

htmlentities — Преобразует все возможные символы в соответствующие HTML-сущности

Описание

htmlentities ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = TRUE ]]] ) : string

Эта функция идентична htmlspecialchars() за исключением того, что htmlentities() преобразует все символы в соответствующие HTML-сущности (для тех символов, для которых HTML-сущности существуют).

Если же вы хотите раскодировать строку (наоборот), используйте html_entity_decode().

Список параметров

string

Входная строка.

flags

Битовая маска из нижеуказанных флагов, определяющих режим обработки кавычек, некорректных кодовых последовательностей и используемый тип документа. По умолчанию используется ENT_COMPAT | ENT_HTML401.

Доступные значения параметра flags
Название константы | Описание
ENT_COMPAT | Преобразует двойные кавычки, одинарные кавычки не изменяются.
ENT_QUOTES | Преобразует как двойные, так и одинарные кавычки.
ENT_NOQUOTES | Оставляет без изменения как двойные, так и одинарные кавычки.
ENT_IGNORE | Молча отбрасывает некорректные кодовые последовательности вместо возврата пустой строки. Использование этого флага не рекомендуется, так как это » может внести уязвимости в ваш код.
ENT_SUBSTITUTE | Заменяет некорректные кодовые последовательности символом замены Юникода U+FFFD в случае использования UTF-8 и &#FFFD; при использовании другой кодировки, вместо возврата пустой строки.
ENT_DISALLOWED | Заменяет неверные коды символов для заданного типа документа символом замены юникода U+FFFD (UTF-8) или &#FFFD; (при использовании другой кодировки) вместо того, чтобы оставлять все как есть. Это может быть полезно, например, для того, чтобы убедиться в формальной правильности XML-документов со встроенным внешним контентом.
ENT_HTML401 | Обработка кода в соответствии с HTML 4.01.
ENT_XML1 | Обработка кода в соответствии с XML 1.
ENT_XHTML | Обработка кода в соответствии с XHTML.
ENT_HTML5 | Обработка кода в соответствии с HTML 5.

encoding

Необязательный аргумент, определяющий кодировку, используемую при конвертации симоволов.

Если не указан, то значение по умолчанию для encoding зависит от используемой версии PHP. В PHP 5.6 и выше, для значения по умолчанию используется конфигурационная опция default_charset. В PHP 5.4 и 5.5 используется UTF-8 по умолчанию. Более ранние версии PHP используют ISO-8859-1.

Хотя этот аргумент является технически необязательным, настоятельно рекомендуется указать правильное значение для вашего кода, если вы используете PHP 5.5 или выше, или если ваша опция конфигурации default_charset может быть задана неверно для входных данных.

Поддерживаются следующие кодировки:

Поддерживаемые кодировки
Кодировка | Псевдонимы | Описание
ISO-8859-1 | ISO8859-1 | Западно-европейская Latin-1.
ISO-8859-5 | ISO8859-5 | Редко используемая кириллическая кодировка (Latin/Cyrillic).
ISO-8859-15 | ISO8859-15 | Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1 (ISO-8859-1).
UTF-8 | 8-битная Unicode, совместимая с ASCII.
cp866 | ibm866, 866 | Кириллическая кодировка, применяемая в DOS.
cp1251 | Windows-1251, win-1251, 1251 | Кириллическая кодировка, применяемая в Windows.
cp1252 | Windows-1252, 1252 | Западно-европейская кодировка, применяемая в Windows.
KOI8-R | koi8-ru, koi8r | Русская кодировка.
BIG5 | 950 | Традиционный китайский, применяется в основном на Тайване.
GB2312 | 936 | Упрощенный китайский, стандартная национальная кодировка.
BIG5-HKSCS | Расширенная Big5, применяемая в Гонконге.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Японская кодировка.
EUC-JP | EUCJP, eucJP-win | Японская кодировка.
MacRoman | Кодировка, используемая в Mac OS.
'' Пустая строка активирует режим определения кодировки из файла скрипта (Zend multibyte), default_charset и текущей локали (см. nl_langinfo() и setlocale()) в указанном порядке. Не рекомендуется к использованию.

Замечание: Остальные кодировки не поддерживаются, вместо них будет применена кодировка по умолчанию и сгенерировано предупреждение.

double_encode

При выключении параметра double_encode, PHP не будет преобразовывать существующие html-сущности. По умолчанию преобразуется все без ограничений.

Возвращаемые значения

Возвращает преобразованную строку.

При наличии во входном параметре string недопустимой последовательности символов в заданной кодировке encoding, будет возвращена пустая строка, если не установлены флаги ENT_IGNORE или ENT_SUBSTITUTE.

Список изменений

Версия | Описание
5.6.0 | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
5.4.0 | Значение по умолчанию для параметра encoding было изменено на UTF-8.
5.4.0 | Добавлены константы ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
5.3.0 | Добавлена константа ENT_IGNORE.
5.2.3 | Добавлен параметр double_encode.

Примеры

Пример #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);
?>

Пример #2 Использование ENT_IGNORE

<?php
$str = "\x8F!!!";

// Выводит пустую строку
echo htmlentities($str, ENT_QUOTES, "UTF-8");

// Выводит "!!!"
echo htmlentities($str, ENT_QUOTES | ENT_IGNORE, "UTF-8");
?>

Смотрите также

  • html_entity_decode() - Преобразует HTML-сущности в соответствующие им символы
  • get_html_translation_table() - Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities
  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • nl2br() - Вставляет HTML-код разрыва строки перед каждым переводом строки
  • urlencode() - URL-кодирование строки


Преобразует специальные HTML-сущности обратно в соответствующие символы

  • « htmlentities
  • htmlspecialchars »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует специальные HTML-сущности обратно в соответствующие символы

htmlspecialchars_decode

(PHP 5 >= 5.1.0, PHP 7)

htmlspecialchars_decode — Преобразует специальные HTML-сущности обратно в соответствующие символы

Описание

htmlspecialchars_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 ] ) : string

Эта функция является антиподом htmlspecialchars(). Она преобразует специальные HTML-сущности обратно в соответствующие символы.

Конвертируемые сущности: &amp;, &quot; (когда ENT_NOQUOTES не установлена), &#039; (когда ENT_QUOTES установлена), &lt; и &gt;.

Список параметров

string

Строка, которую надо преобразовать.

flags

Битовая маска из одного или нескольких следующих флагов, которые указывают как обрабатывать кавычки и какие типы документов использовать. Значением по умолчанию является ENT_COMPAT | ENT_HTML401.

Доступные константы, используемые в качестве параметра flags
Имя константы | Описание
ENT_COMPAT | Преобразует двойные кавычки и пропускает одинарные.
ENT_QUOTES | Преобразует и двойные, и одинарные кавычки.
ENT_NOQUOTES | Не преобразует ни двойные, ни одинарные кавычки.
ENT_HTML401 | Обрабатывать код как HTML 4.01.
ENT_XML1 | Обрабатывать код как XML 1.
ENT_XHTML | Обрабатывать код как XHTML.
ENT_HTML5 | Обрабатывать код как HTML 5.

Возвращаемые значения

Возвращает преобразованную строку.

Список изменений

Версия | Описание
5.4.0 | Добавлены константы ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.

Примеры

Пример #1 Пример использования функции htmlspecialchars_decode()

<?php
$str = "<p>this -&gt; &quot;</p>\n";

echo htmlspecialchars_decode($str);

// обратите внимание, что в данном случае кавычки не будут преобразованы
echo htmlspecialchars_decode($str, ENT_NOQUOTES);
?>

Результат выполнения данного примера:

<p>this -> "</p>
<p>this -> &quot;</p>

Смотрите также

  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • html_entity_decode() - Преобразует HTML-сущности в соответствующие им символы
  • get_html_translation_table() - Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities


Преобразует специальные символы в HTML-сущности

  • « htmlspecialchars_decode
  • implode »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует специальные символы в HTML-сущности

htmlspecialchars

(PHP 4, PHP 5, PHP 7)

htmlspecialchars — Преобразует специальные символы в HTML-сущности

Описание

htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = TRUE ]]] ) : string

В HTML некоторые символы имеют особый смысл и должны быть представлены в виде HTML-сущностей, чтобы сохранить их значение. Эта функция возвращает строку, над которой проведены эти преобразования. Если вам нужно преобразовать все возможные сущности, используйте htmlentities().

Если входная строка, переданная в эту функцию и результирующий документ используют одинаковую кодировку символов, то этой функции достаточно, чтобы подготовить данные для вставки в большинство частей HTML-документа. Однако, если данные содержат символы, не определенные в кодировке символов результирующего документа и вы ожидаете сохранения этих символов (как числовые или именованные сущности), то вам недостаточно будет этой и htmlentities() функций (которые только преобразуют подстроки с соответствующими сущностями). Необходимо использовать функцию mb_encode_numericentity().

Производятся следующие преобразования
Символ | Замена
& (амперсанд) | &amp;
" (двойные кавычки) | &quot;, если не установлена ENT_NOQUOTES
' (одинарные кавычки) | &#039; (для ENT_HTML401) или &apos; (для ENT_XML1, ENT_XHTML или ENT_HTML5), но только если установлена ENT_QUOTES
< (меньше) | &lt;
> (больше) | &gt;

Список параметров

string

Конвертируемая строка (string).

flags

Битовая маска из нижеуказанных флагов, определяющих режим обработки кавычек, некорректных кодовых последовательностей и используемый тип документа. По умолчанию используется ENT_COMPAT | ENT_HTML401.

Доступные значения параметра flags
Название константы | Описание
ENT_COMPAT | Преобразует двойные кавычки, одинарные кавычки не изменяются.
ENT_QUOTES | Преобразует как двойные, так и одинарные кавычки.
ENT_NOQUOTES | Оставляет без изменения как двойные, так и одинарные кавычки.
ENT_IGNORE | Без всяких уведомительных сообщений отбрасывает некорректные кодовые последовательности вместо возврата пустой строки. Использование этого флага не рекомендуется, так как это может привести к » негативным последствиям, связанным с безопасностью.
ENT_SUBSTITUTE | Заменяет некорреткные кодовые последовательности символом замены Юникода U+FFFD в случае использования UTF-8 или &#xFFFD; при использовании другой кодировки, вместо возврата пустой строки.
ENT_DISALLOWED | Заменяет неверные коды символов для заданного типа документа символом замены юникода U+FFFD (UTF-8) или &#xFFFD; (при использовании другой кодировки) вместо того, чтобы оставлять все как есть. Это может быть полезно, например, для того, чтобы убедиться в формальной правильности XML-документов со встроенным внешним контентом.
ENT_HTML401 | Обработка кода в соответствии с HTML 4.01.
ENT_XML1 | Обработка кода в соответствии с XML 1.
ENT_XHTML | Обработка кода в соответствии с XHTML.
ENT_HTML5 | Обработка кода в соответствии с HTML 5.

encoding

Необязательный аргумент, определяющий кодировку, используемую при конвертации симоволов.

Если не указан, то значение по умолчанию для encoding зависит от используемой версии PHP. В PHP 5.6 и выше, для значения по умолчанию используется конфигурационная опция default_charset. В PHP 5.4 и 5.5 используется UTF-8 по умолчанию. Более ранние версии PHP используют ISO-8859-1.

Хотя этот аргумент является технически необязательным, настоятельно рекомендуется указать правильное значение для вашего кода, если вы используете PHP 5.5 или выше, или если ваша опция конфигурации default_charset может быть задана неверно для входных данных.

Для целей этой функции кодировки ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252 и KOI8-R являются практически эквивалентными, предполагая то, что сама строка string содержит корректные символы в указанной кодировке, то символы, изменяемые htmlspecialchars(), останутся на тех же местах во всех этих кодировках.

Поддерживаются следующие кодировки:

Поддерживаемые кодировки
Кодировка | Псевдонимы | Описание
ISO-8859-1 | ISO8859-1 | Западно-европейская Latin-1.
ISO-8859-5 | ISO8859-5 | Редко используемая кириллическая кодировка (Latin/Cyrillic).
ISO-8859-15 | ISO8859-15 | Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1 (ISO-8859-1).
UTF-8 | 8-битная Unicode, совместимая с ASCII.
cp866 | ibm866, 866 | Кириллическая кодировка, применяемая в DOS.
cp1251 | Windows-1251, win-1251, 1251 | Кириллическая кодировка, применяемая в Windows.
cp1252 | Windows-1252, 1252 | Западно-европейская кодировка, применяемая в Windows.
KOI8-R | koi8-ru, koi8r | Русская кодировка.
BIG5 | 950 | Традиционный китайский, применяется в основном на Тайване.
GB2312 | 936 | Упрощенный китайский, стандартная национальная кодировка.
BIG5-HKSCS | Расширенная Big5, применяемая в Гонконге.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Японская кодировка.
EUC-JP | EUCJP, eucJP-win | Японская кодировка.
MacRoman | Кодировка, используемая в Mac OS.
'' Пустая строка активирует режим определения кодировки из файла скрипта (Zend multibyte), default_charset и текущей локали (см. nl_langinfo() и setlocale()) в указанном порядке. Не рекомендуется к использованию.

Замечание: Остальные кодировки не поддерживаются, вместо них будет применена кодировка по умолчанию и сгенерировано предупреждение.

double_encode

Если параметр double_encode выключен, то PHP не будет преобразовывать существующие html-сущности. По умолчанию преобразуется все без ограничений.

Возвращаемые значения

Преобразованная строка (string).

Если входная строка string содержит неверную последовательность символов в указанной кодировке encoding, то будет возвращаться пустая строка в случае, если флаги ENT_IGNORE или ENT_SUBSTITUTE не установлены.

Список изменений

Версия | Описание
5.6.0 | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
5.4.0 | Значение по умолчанию для параметра encoding было изменено на UTF-8.
5.4.0 | Добавлены константы ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
5.3.0 | Добавлена константа ENT_IGNORE.
5.2.3 | Добавлен параметр double_encode.

Примеры

Пример #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().

Замечание:

В случае неоднозначного значения flags, применяются следующие правила:

  • Если одновременно отсутствуют константы ENT_COMPAT, ENT_QUOTES и ENT_NOQUOTES, по умолчанию будет использоваться ENT_NOQUOTES.
  • Если одновременно присутствуют две или более констант ENT_COMPAT, ENT_QUOTES и ENT_NOQUOTES, ENT_QUOTES будет иметь больший приоритет. Следующая по приоритету будет ENT_COMPAT.
  • Если нет ни одной из констант ENT_HTML401, ENT_HTML5, ENT_XHTML и ENT_XML1, по умолчанию будет использоваться ENT_HTML401.
  • Если одновременно присутствуют две или более констант ENT_HTML401, ENT_HTML5, ENT_XHTML, ENT_XML1, то приоритет будет таким: ENT_HTML5, потом ENT_XHTML, ENT_XML1, а потом ENT_HTML401.
  • Если одновременно присутствуют две или более констант ENT_DISALLOWED, ENT_IGNORE, ENT_SUBSTITUTE, высшим приоритетом будет обладать ENT_IGNORE, а следующая за ней ENT_SUBSTITUTE.

Смотрите также

  • get_html_translation_table() - Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities
  • htmlspecialchars_decode() - Преобразует специальные HTML-сущности обратно в соответствующие символы
  • strip_tags() - Удаляет теги HTML и PHP из строки
  • htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
  • nl2br() - Вставляет HTML-код разрыва строки перед каждым переводом строки


Объединяет элементы массива в строку

  • « htmlspecialchars
  • join »
  • PHP Manual
  • Функции для работы со строками
  • Объединяет элементы массива в строку

implode

(PHP 4, PHP 5, PHP 7)

implode — Объединяет элементы массива в строку

Описание

implode ( string $glue , array $pieces ) : string
implode ( array $pieces ) : string

Объединяет элементы массива с помощью строки glue.

Замечание:

По историческим причинам функции implode() можно передавать аргументы в любом порядке, однако для согласованности с функцией explode() не рекомендуется использовать недокументированный порядок аргументов.

Список параметров

glue

По умолчанию равен пустой строке.

pieces

Массив объединяемых строк.

Возвращаемые значения

Возвращает строку, содержащую строковое представление всех элементов массива в указанном порядке, со строкой glue между каждым элементом.

Список изменений

Версия | Описание
7.4.0 | Передача glue после pieces (т.е. использование недокументированного порядка параметров) устарела.

Примеры

Пример #1 Пример использования implode()

<?php

$array = array('имя', 'почта', 'телефон');
$comma_separated = implode(",", $array);

echo $comma_separated; // имя,почта,телефон

// Пустая строка при использовании пустого массива:
var_dump(implode('hello', array())); // string(0) ""

?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • explode() - Разбивает строку с помощью разделителя
  • preg_split() - Разбивает строку по регулярному выражению
  • http_build_query() - Генерирует URL-кодированную строку запроса


Псевдоним implode

  • « implode
  • lcfirst »
  • PHP Manual
  • Функции для работы со строками
  • Псевдоним implode

join

(PHP 4, PHP 5, PHP 7)

join — Псевдоним implode()

Описание

Эта функция является псевдонимом: implode().


Преобразует первый символ строки в нижний регистр

  • « join
  • levenshtein »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует первый символ строки в нижний регистр

lcfirst

(PHP 5 >= 5.3.0, PHP 7)

lcfirst — Преобразует первый символ строки в нижний регистр

Описание

lcfirst ( string $str ) : string

Возвращает строку str, первый символ которой был преобразован в нижний регистр, если этот символ является буквой.

Принадлежность того или иного символа к буквенным определяется с учетом текущей локали. Это означает, что, например, в используемой по умолчанию локали "C", символ a не будет преобразован.

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает результирующую строку.

Примеры

Пример #1 Пример использования lcfirst()

<?php
$foo = 'HelloWorld';
$foo = lcfirst($foo);             // helloWorld

$bar = 'HELLO WORLD!';
$bar = lcfirst($bar);             // hELLO WORLD!
$bar = lcfirst(strtoupper($bar)); // hELLO WORLD!
?>

Смотрите также

  • ucfirst() - Преобразует первый символ строки в верхний регистр
  • strtolower() - Преобразует строку в нижний регистр
  • strtoupper() - Преобразует строку в верхний регистр
  • ucwords() - Преобразует в верхний регистр первый символ каждого слова в строке


Вычисляет расстояние Левенштейна между двумя строками

  • « lcfirst
  • localeconv »
  • PHP Manual
  • Функции для работы со строками
  • Вычисляет расстояние Левенштейна между двумя строками

levenshtein

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

levenshtein — Вычисляет расстояние Левенштейна между двумя строками

Описание

levenshtein ( string $str1 , string $str2 ) : int
levenshtein ( string $str1 , string $str2 , int $cost_ins , int $cost_rep , int $cost_del ) : int

Расстояние Левенштейна - это минимальное количество вставок, замен и удалений символов, необходимое для преобразования str1 в str2. Сложность алгоритма равна O(m*n), где n и m - длины строк str1 и str2 (неплохо по сравнению с similar_text(), имеющей сложность O(max(n,m)**3), но все же довольно много).

В простейшей форме функция принимает в качестве аргументов две строки и возвращает минимальное количество вставок, замен и удалений символов, необходимое для преобразования str1 в str2.

Второй вариант принимает три дополнительных аргумента, задающих стоимость операций вставки, замены и удаления. Этот вариант универсальнее первого, но не так эффективен.

Список параметров

str1

Одна из строк, для которых вычисляется расстояние Левенштейна.

str2

Одна из строк, для которых вычисляется расстояние Левенштейна.

cost_ins

Определяет стоимость вставки.

cost_rep

Определяет стоимость замены.

cost_del

Определяет стоимость удаления.

Возвращаемые значения

Эта функция возвращает расстояние Левенштейна между двумя строками, или -1, если хотя бы одна из строк длиннее 255 символов.

Примеры

Пример #1 Пример использования levenshtein()

<?php
// введенное слово с опечаткой
$input = 'carrrot';

// массив сверяемых слов
$words  = array('apple','pineapple','banana','orange',
                'radish','carrot','pea','bean','potato');

// кратчайшее расстояние пока еще не найдено
$shortest = -1;

// проходим по словам для нахождения самого близкого варианта
foreach ($words as $word) {

    // вычисляем расстояние между входным словом и текущим
    $lev = levenshtein($input, $word);

    // проверяем полное совпадение
    if ($lev == 0) {

        // это ближайшее слово (точное совпадение)
        $closest = $word;
        $shortest = 0;

        // выходим из цикла - мы нашли точное совпадение
        break;
    }

    // если это расстояние меньше следующего наименьшего расстояния
    // ИЛИ если следующее самое короткое слово еще не было найдено
    if ($lev <= $shortest || $shortest < 0) {
        // устанивливаем ближайшее совпадение и кратчайшее расстояние
        $closest  = $word;
        $shortest = $lev;
    }
}

echo "Вы ввели: $input\n";
if ($shortest == 0) {
    echo "Найдено точное совпадение: $closest\n";
} else {
    echo "Вы не имели в виду: $closest?\n";
}

?>

Результат выполнения данного примера:

Вы ввели: carrrot
Вы не имели в виду: carrot?

Смотрите также

  • soundex() - Возвращает ключ soundex для строки
  • similar_text() - Вычисляет степень похожести двух строк
  • metaphone() - Возвращает ключ metaphone для строки


Возвращает информацию о форматировании чисел

  • « levenshtein
  • ltrim »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает информацию о форматировании чисел

localeconv

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

localeconv — Возвращает информацию о форматировании чисел

Описание

localeconv ( void ) : array

Возвращает ассоциативный массив с информацией о числовых и денежных форматах в текущей локали.

Возвращаемые значения

localeconv() возвращает данные, основанные на текущей локали, установленной функцией setlocale(). Возвращаемый массив содержит следующие элементы:

Элемент | Описание
decimal_point | Символ десятичной точки
thousands_sep | Разделитель групп
grouping | Массив, содержащий количества цифр в группах для числовых данных
int_curr_symbol | Международное обозначение валюты (например, RUB)
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 - Знак записывается после обозначения валюты

p_sign_posn и n_sign_posn содержат строку с опциями форматирования. Каждое число представляет собой одно из вышеперечисленных условий.

Элементы группировки содержат массивы, которые описывают способ группировки цифр. Например, поле группировки денежных величин в локали nl_NL (в режиме UTF-8 со знаком евро) содержит массив из двух элементов со значениями 3 и 3. Больший индекс массива соответствует группировке цифр, расположенных левее. Если элемент массива равен CHAR_MAX, последующие цифры не группируются. Если элемент массива равен 0, используется значение предыдущего элемента.

Примеры

Пример #1 Пример использования localeconv()

<?php
if (false !== setlocale(LC_ALL, 'ru_RU.UTF-8')) {
    $locale_info = localeconv();
    print_r($locale_info);
}
?>

Результат выполнения данного примера:

Array
(
    [decimal_point] => ,
    [thousands_sep] =>
    [int_curr_symbol] => RUB
    [currency_symbol] => руб
    [mon_decimal_point] => .
    [mon_thousands_sep] =>
    [positive_sign] =>
    [negative_sign] => -
    [int_frac_digits] => 2
    [frac_digits] => 2
    [p_cs_precedes] => 0
    [p_sep_by_space] => 1
    [n_cs_precedes] => 0
    [n_sep_by_space] => 1
    [p_sign_posn] => 1
    [n_sign_posn] => 1
    [grouping] => Array
        (
            [0] => 3
            [1] => 3
        )

    [mon_grouping] => Array
        (
            [0] => 3
            [1] => 3
        )

)

Смотрите также

  • setlocale() - Устанавливает настройки локали


Удаляет пробелы (или другие символы) из начала строки

  • « localeconv
  • md5_file »
  • PHP Manual
  • Функции для работы со строками
  • Удаляет пробелы (или другие символы) из начала строки

ltrim

(PHP 4, PHP 5, PHP 7)

ltrim — Удаляет пробелы (или другие символы) из начала строки

Описание

ltrim ( string $str [, string $character_mask ] ) : string

Удаляет пробелы (или другие символы) из начала строки.

Список параметров

str

Входная строка.

character_mask

С помощью параметра character_mask можно также указать удаляемые символы. Просто перечислите все символы, которые вы хотите удалить. Можно указать конструкцию .. для обозначения диапазона символов.

Возвращаемые значения

Эта функция возвращает строку 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)), вертикальная табуляция.

Примеры

Пример #1 Пример использования ltrim()

<?php

$text = "\t\tThese are a few words :) ...  ";
$binary = "\x09Example string\x0A";
$hello  = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = ltrim($text);
var_dump($trimmed);

$trimmed = ltrim($text, " \t.");
var_dump($trimmed);

$trimmed = ltrim($hello, "Hdle");
var_dump($trimmed);

// удаляем управляющие ASCII-символы с начала $binary
// (от 0 до 31 включительно)
$clean = ltrim($binary, "\x00..\x1F");
var_dump($clean);

?>

Результат выполнения данного примера:

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(30) "These are a few words :) ...  "
string(30) "These are a few words :) ...  "
string(7) "o World"
string(15) "Example string
"

Смотрите также

  • trim() - Удаляет пробелы (или другие символы) из начала и конца строки
  • rtrim() - Удаляет пробелы (или другие символы) из конца строки


Возвращает MD5-хеш файла

  • « ltrim
  • md5 »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает MD5-хеш файла

md5_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

md5_file — Возвращает MD5-хеш файла

Описание

md5_file ( string $filename [, bool $raw_output = FALSE ] ) : string

Вычисляет MD5-хеш файла, имя которого задано аргументом filename, используя » алгоритм MD5 RSA Data Security, Inc. и возвращает этот хеш. Хеш представляет собой 32-значное шестнадцатеричное число.

Список параметров

filename

Имя файла

raw_output

Если имеет значение TRUE, то возвращается бинарная строка из 16 символов.

Возвращаемые значения

Возвращает строку в случае успеха, иначе FALSE.

Список изменений

Версия | Описание
5.1.0 | Функция изменена для работы с потоковым API. Это означает, что ее можно использовать с обертками, например, так: md5_file('http://example.com/..')

Примеры

Пример #1 Пример использования md5_file()

<?php
$file = 'php-5.3.0alpha2-Win32-VC9-x64.zip';

echo 'MD5-хеш файла ' . $file . ': ' . md5_file($file);
?>

Смотрите также

  • md5() - Возвращает MD5-хеш строки
  • sha1_file() - Возвращает SHA1-хеш файла
  • crc32() - Вычисляет полином CRC32 для строки


Возвращает MD5-хеш строки

  • « md5_file
  • metaphone »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает MD5-хеш строки

md5

(PHP 4, PHP 5, PHP 7)

md5 — Возвращает MD5-хеш строки

Внимание

Не рекомендуется использовать эту функцию для обеспечения безопасности хранения паролей ввиду высокой скорости работы данного алгоритма. Более подробно читайте в разделе Ответы на часто задаваемые вопросы по хешированию паролей.

Описание

md5 ( string $str [, bool $raw_output = FALSE ] ) : string

Вычисляет MD5-хеш строки str, используя » алгоритм MD5 RSA Data Security, Inc. и возвращает этот хеш.

Список параметров

str

Строка.

raw_output

Если необязательный аргумент raw_output имеет значение TRUE, то возвращается бинарная строка из 16 символов.

Возвращаемые значения

Возвращает хеш в виде 32-символьного шестнадцатеричного числа.

Примеры

Пример #1 Пример использования md5()

<?php
$str = 'яблоко';

if (md5($str) === '1afa148eb41f2e7103f21410bf48346c') {
    echo "Вам зеленое или красное яблоко?";
}
?>

Смотрите также

  • md5_file() - Возвращает MD5-хеш файла
  • sha1_file() - Возвращает SHA1-хеш файла
  • crc32() - Вычисляет полином CRC32 для строки
  • sha1() - Возвращает SHA1-хеш строки
  • hash() - Генерирует хеш-код (дайджест сообщения)
  • crypt() - Необратимое хеширование строки
  • password_hash() - Создает хеш пароля


Возвращает ключ metaphone для строки

  • « md5
  • money_format »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает ключ metaphone для строки

metaphone

(PHP 4, PHP 5, PHP 7)

metaphone — Возвращает ключ metaphone для строки

Описание

metaphone ( string $str [, int $phonemes = 0 ] ) : string

Возвращает ключ metaphone для строки str.

Подобно функции soundex(), metaphone возвращает одинаковое значение для слов, имеющих сходное произношение. Эта функция более точна, чем soundex(), так как учитывает основные правила произношения английского языка. Длина возвращаемой строки не фиксирована.

Функция metaphone была написана Lawrence Philips <lphilips at verity dot com> и описана в книге ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995].

Список параметров

str

Входная строка.

phonemes

Этот параметр выставляет ограничение в phonemes символов на длину возвращаемого ключа metaphone. Значение по умолчанию 0 означает отсутствие ограничений.

Возвращаемые значения

Возвращает ключ metaphone в виде строки, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Простой пример использования metaphone()

<?php
var_dump(metaphone('programming'));
var_dump(metaphone('programmer'));
?>

Результатом выполнения данного примера будет что-то подобное:

string(7) "PRKRMNK"
string(6) "PRKRMR"

Пример #2 Использование параметра phonemes

<?php
var_dump(metaphone('programming', 5));
var_dump(metaphone('programmer', 5));
?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "PRKRM"
string(5) "PRKRM"


Форматирует число как денежную величину

  • « metaphone
  • nl_langinfo »
  • PHP Manual
  • Функции для работы со строками
  • Форматирует число как денежную величину

money_format

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

money_format — Форматирует число как денежную величину

Описание

money_format ( string $format , float $number ) : string

money_format() форматирует число number как денежную величину. Эта функция вызывает функцию strfmon() языка C, но позволяет преобразовать только одно число за один вызов.

Список параметров

format

Описание формата состоит из:

  • символа %

  • необязательных флагов

  • необязательной ширины поля

  • необязательной точности до запятой

  • необязательной точности после запятой

  • обязательного описателя преобразования

Флаги

Могут быть использованы следующие флаги:

=f

Символ =, за которым следует еще один символ f, задает символ заполнения. По умолчанию пробел.

^

Отключает группировку символов (определяемую текущей локалью).

+ или (

Задает способ форматирования положительных и отрицательных значений. При использовании + будут использоваться аналоги символов + и - из текущей локали. Если указана (, отрицательные числа будут заключены в скобки. По умолчанию +.

!

Подавляет вывод символа валюты.

-

Если этот флаг задан, поля будут выравнены влево (с отбивкой вправо), вместо используемого по умолчанию выравнивания вправо (с отбивкой влево).

Ширина поля

w

Строка из десятичных цифр, задающая минимальную ширину поля. Поле будет выравнено вправо, если не указан флаг -. Значение по умолчанию - 0 (ноль).

Точность до запятой

#n

Максимальное количество цифр (n), которое ожидается до запятой. Это обычно используется при выводе значений одно под другим, чтобы десятичные точки располагались в одной колонке, при этом используется символ заполнения, если число цифр меньше n. Если число цифр больше n, этот параметр игнорируется.

Если группировка не была отключена флагом ^, разделители групп будут вставлены перед добавлением символов заполнения. Разделители групп не вставляются между символами заполнения, даже если заполнитель - цифра.

Для обеспечения выравнивания, все символы, выводимые до или после числа, такие как символ валюты или знак, будут дополнены пробелами до одинаковой ширины.

Точность после запятой

.p

Точка, за которой следует число знаков (p), выводимых после запятой. Если значение p равно нулю, десятичная точка и цифры после нее не будут выводиться. Если этот параметр отсутствует, число знаков после запятой определяется текущей локалью. Перед форматированием число округляется до указанного количества знаков.

Описатель преобразования

i

Используется международный денежный формат из текущей локали (например, для американской локали: USD 1,234.56).

n

Используется национальный денежный формат из текущей локали (например, для локали de_DE: EU1.234,56).

%

Вставляет символ %.

number

Форматируемое число.

Возвращаемые значения

Возвращает отформатированную строку. Символы перед и после описания формата возвращаются без изменений. Если number не является числом, то будет возвращен NULL и вызвана ошибка уровня E_WARNING.

Примечания

Замечание:

Функция money_format() определена только если в системе присутствует функция strfmon. Например, в Windows она отсутствует, поэтому money_format() не определена в Windows.

Замечание:

На работу этой функции влияет установка категории 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";
// Eu 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";
// Eu 1234,56****

// А теперь добавим текст перед и после описанием формата
setlocale(LC_MONETARY, 'en_GB');
$fmt = 'Итоговая сумма: %i (после 10%% скидки)';
echo money_format($fmt, 1234.56) . "\n";
// Итоговая сумма: GBP 1,234.56 (после 10% скидки)

?>

Смотрите также

  • setlocale() - Устанавливает настройки локали
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • sprintf() - Возвращает отформатированную строку
  • printf() - Выводит отформатированную строку
  • number_format() - Форматирует число с разделением групп


Возвращает информацию о языке и локали

  • « money_format
  • nl2br »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает информацию о языке и локали

nl_langinfo

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

nl_langinfo — Возвращает информацию о языке и локали

Описание

nl_langinfo ( int $item ) : string

nl_langinfo() используется для доступа к отдельным элементам различных категорий текущей локали. В отличие от localeconv(), возвращающей все элементы, nl_langinfo() позволяет выбрать отдельный элемент.

Список параметров

item

item может быть целым числом или соответствующей константой. Ниже приведены возможные константы для item и их описания. Для некоторых локалей отдельные константы могут быть не определены.

Константы 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, если число и обозначение валюты CURRENCY_SYMBOL заключаются в скобки
  • Возвращает 1, если знак записывается перед числом и обозначением валюты CURRENCY_SYMBOL
  • Возвращает 2, если знак записывается после числа и обозначения валюты CURRENCY_SYMBOL
  • Возвращает 3, если знак записывается перед обозначением валюты CURRENCY_SYMBOL
  • Возвращает 4, если знак записывается после обозначения валюты CURRENCY_SYMBOL
N_SIGN_POSN
Константы в категории LC_NUMERIC
DECIMAL_POINT | Символ десятичной точки.
RADIXCHAR | Аналогично DECIMAL_POINT.
THOUSANDS_SEP | Разделитель тысяч (групп из 3 цифр).
THOUSEP | Аналогично THOUSANDS_SEP.
GROUPING
Константы в категории LC_MESSAGES
YESEXPR | Регулярное выражение, при совпадении с которым строка рассматривается как положительный ответ ("yes").
NOEXPR | Регулярное выражение, при совпадении с которым строка рассматривается как отрицательный ответ ("no").
YESSTR | Слово "да" ("yes").
NOSTR | Слово "нет" ("no").
Константы в категории LC_CTYPE
CODESET | Возвращает строку с именем текущей кодировки.

Возвращаемые значения

Возвращает элемент в виде строки, или FALSE, если item передан неправильно.

Примечания

Замечание: Для Windows-платформ эта функция не реализована.

Смотрите также

  • setlocale() - Устанавливает настройки локали
  • localeconv() - Возвращает информацию о форматировании чисел


Вставляет HTML-код разрыва строки перед каждым переводом строки

  • « nl_langinfo
  • number_format »
  • PHP Manual
  • Функции для работы со строками
  • Вставляет HTML-код разрыва строки перед каждым переводом строки

nl2br

(PHP 4, PHP 5, PHP 7)

nl2br — Вставляет HTML-код разрыва строки перед каждым переводом строки

Описание

nl2br ( string $string [, bool $is_xhtml = TRUE ] ) : string

Возвращает строку string, в которой перед каждым переводом строки (\r\n, \n\r, \n и \r) вставлен <br /> или <br>.

Список параметров

string

Входная строка.

is_xhtml

Использовать ли совместимые с XHTML переводы строк или нет.

Возвращаемые значения

Возвращает измененную строку.

Примеры

Пример #1 Пример использования nl2br()

<?php
echo nl2br("foo - это вам не\n bar");
?>

Результат выполнения данного примера:

foo - это вам не<br />
 bar

Пример #2 Генерирование корректной HTML-верстки с помощью параметра is_xhtml

<?php
echo nl2br("Привет!\r\nЭтой мой HTML-документ", false);
?>

Результат выполнения данного примера:

Привет!<br>
Этой мой HTML-документ

Пример #3 Различные разделители строк

<?php
$string = "This\r\nis\n\ra\nstring\r";
echo nl2br($string);
?>

Результат выполнения данного примера:

This<br />
is<br />
a<br />
string<br />

Список изменений

Версия | Описание
5.3.0 | Добавлен необязательный параметр is_xhtml.

Смотрите также

  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
  • wordwrap() - Переносит строку по указанному количеству символов
  • str_replace() - Заменяет все вхождения строки поиска на строку замены


Форматирует число с разделением групп

  • « nl2br
  • ord »
  • PHP Manual
  • Функции для работы со строками
  • Форматирует число с разделением групп

number_format

(PHP 4, PHP 5, PHP 7)

number_format — Форматирует число с разделением групп

Описание

number_format ( float $number [, int $decimals = 0 ] ) : string
number_format ( float $number , int $decimals = 0 , string $dec_point = "." , string $thousands_sep = "," ) : string

Функция принимает один, два или четыре аргумента (не три):

Если передан только один аргумент, number будет отформатирован без дробной части, но с запятой (",") между каждыми тремя цифрами.

Если переданы два аргумента, number будет отформатирован с decimals знаками после точки (".") и с запятой (",") между каждыми тремя цифрами.

Если переданы все четыре аргумента, number будет отформатирован с decimals знаками после точки и с разделителем между каждыми тремя цифрами, при этом в качестве десятичной точки будет использован dec_point, а в качестве разделителя групп - thousands_sep.

Список параметров

number

Форматируемое число.

decimals

Устанавливает число знаков после запятой.

dec_point

Устанавливает разделитель дробной части.

thousands_sep

Устанавливает разделитель тысяч.

Возвращаемые значения

Отформатированное число number.

Список изменений

Версия | Описание
7.2.0 | number_format() была изменена, чтобы не возвращать -0, ранее -0 могло быть возвращено в случаях, когда number был -0.01.
5.4.0 | Функция поддерживает многобайтовую строку в качестве параметров dec_point и thousands_sep. В предыдущих версиях в качестве разделителя использовался только первый байт из каждого параметра.

Примеры

Пример #1 Пример использования number_format()

Во Франции обычно используются 2 знака после запятой (','), и пробел (' ') в качестве разделителя групп. Этот пример демонстрирует различные способы форматирования чисел:

<?php

$number = 1234.56;

// английский формат (по умолчанию)
$english_format_number = number_format($number);
// 1,235

// французский формат
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56

$number = 1234.5678;

// английский формат без разделителей групп
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

?>

Смотрите также

  • money_format() - Форматирует число как денежную величину
  • sprintf() - Возвращает отформатированную строку
  • printf() - Выводит отформатированную строку
  • sscanf() - Разбирает строку в соответствии с заданным форматом


Конвертирует первый байт строки в число от 0 до 255

  • « number_format
  • parse_str »
  • PHP Manual
  • Функции для работы со строками
  • Конвертирует первый байт строки в число от 0 до 255

ord

(PHP 4, PHP 5, PHP 7)

ord — Конвертирует первый байт строки в число от 0 до 255

Описание

ord ( string $string ) : int

Интерпретирует бинарное значение первого байта строки string как беззнаковое целое.

Если строка создана в однобайтовой кодировке, такой как ASCII, ISO-8859 или Windows 1252, результат функции будет эквивалентен позиции символа в соответствующей таблице кодировки. В любом случае, эта функция ничего не знает про кодировки и не сможет вернуть кодовую точку первого символа строки, закодированной в многобайтовой кодировке, такой как UTF-8 или UTF-16.

Эта функция дополняет функцию chr().

Список параметров

string

Символ.

Возвращаемые значения

Целое число от 0 до 255.

Примеры

Пример #1 Пример использования ord()

<?php
$str = "\n";
if (ord($str) == 10) {
    echo "Первый символ \$str - перевод строки.\n";
}
?>

Пример #2 Просмотр индивидуальный байтов строки UTF-8

<?php
declare(encoding='UTF-8');
$str = "??";
for ( $pos=0; $pos < strlen($str); $pos ++ ) {
 $byte = substr($str, $pos);
 echo 'Байт ' . $pos . ' строки $str равен ' . ord($byte) . PHP_EOL;
}
?>

Результат выполнения данного примера:

Байт 0 строки $str равен 240
Байт 1 строки $str равен 159
Байт 2 строки $str равен 144
Байт 3 строки $str равен 152

Смотрите также

  • chr() - Генерирует односимвольную строку по заданному числу
  • » Таблица ASCII-кодов
  • mb_ord() - Получает кодовую точку символа


Разбирает строку в переменные

  • « ord
  • print »
  • PHP Manual
  • Функции для работы со строками
  • Разбирает строку в переменные

parse_str

(PHP 4, PHP 5, PHP 7)

parse_str — Разбирает строку в переменные

Описание

parse_str ( string $encoded_string [, array &$result ] ) : void

Разбирает строку encoded_string, которая должна иметь формат строки запроса URL и присваивает значения переменным в текущем контексте (или заносит в массив, если задан параметр result).

Список параметров

encoded_string

Входная строка.

result

Если указан второй параметр result, то вместо присвоения переменных в текущем контексте они будут сохранены в этом параметре в качестве элементов массива.

Внимание

Использовать эту функцию без параметра result крайне НЕ РЕКОМЕНДУЕТСЯ. Подобное использование объявлено УСТАРЕВШИМ с PHP 7.2.

Динамическое задание переменных в области функции ведет ровно к тем же проблемам, что и register_globals.

Читайте секцию про безопасность раздела Использование Register Globals, в которой описывается опасность их использования.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
7.2.0 | Использование parse_str() без второго параметра будет вызывать ошибку уровня E_DEPRECATED.

Примеры

Пример #1 Использование parse_str()

<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";

// Рекомендуемый подход
parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

// НЕ РЕКОМЕНДУЕТСЯ
parse_str($str);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
?>

Так как имена переменных PHP не могут содержать пробелы и точки, эти символы будут заменены на символ подчеркивания. Такие же правила накладываются на имена ключей в массиве result, если он задан.

Пример #2 Соотношение имен parse_str()

<?php
parse_str("My Value=Something");
echo $My_Value; // Something

parse_str("My Value=Something", $output);
echo $output['My_Value']; // Something
?>

Примечания

Замечание:

Все переменные создаются (или заносятся в массив) уже обработанные функцией urldecode().

Замечание:

Для получения текущей QUERY_STRING, можно использовать переменную $_SERVER['QUERY_STRING']. Кроме того, возможно вы захотите прочесть раздел о переменных вне PHP.

Замечание:

Опция magic_quotes_gpc влияет на вывод этой функции, так как parse_str() использует тот же механизм, что используется в PHP для заполнения $_GET, $_POST и других переменных.

Смотрите также

  • parse_url() - Разбирает URL и возвращает его компоненты
  • pathinfo() - Возвращает информацию о пути к файлу
  • http_build_query() - Генерирует URL-кодированную строку запроса
  • urldecode() - Декодирование URL-кодированной строки


Выводит строку

  • « parse_str
  • printf »
  • PHP Manual
  • Функции для работы со строками
  • Выводит строку

print

(PHP 4, PHP 5, PHP 7)

print — Выводит строку

Описание

print ( string $arg ) : int

Выводит arg.

print на самом деле не является настоящей функцией (это конструкция языка), поэтому заключать аргументы в скобки необязательно.

Главное отличие от echo в том, что print принимает только один аргумент и всегда возвращает 1.

Список параметров

arg

Вводимые данные.

Возвращаемые значения

Всегда возвращает 1.

Примеры

Пример #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 <<<END
Здесь используется синтаксис "here document" для вывода
нескольких строк с подстановкой переменных $variable.
Заметьте, что закрывающий идентификатор должен
располагаться в отдельной строке, никаких пробелов!
END;
?>

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.

Смотрите также

  • echo - Выводит одну или более строк
  • printf() - Выводит отформатированную строку
  • flush() - Сброс системного буфера вывода
  • Heredoc-синтаксис


Выводит отформатированную строку

  • « print
  • quoted_printable_decode »
  • PHP Manual
  • Функции для работы со строками
  • Выводит отформатированную строку

printf

(PHP 4, PHP 5, PHP 7)

printf — Выводит отформатированную строку

Описание

printf ( string $format [, mixed $... ] ) : int

Выводит строку, отформатированную в соответствии с аргументом format.

Список параметров

format

Строка формата состоит из нуля или более директив: обычные символы (за исключением %), которые просто выводятся без изменения и спецификаторы преобразования, каждый из которых требует передачи своего параметра.

Спецификаторы преобразования имеют следующий формат: %[argnum$][flags][width][.precision]specifier.

Argnum

Целое число, за которым следует знак доллара $, чтобы указать, какой числовой аргумент обрабатывать при преобразовании.

Флаги
Флаг | Описание
- Выравнивание по левому краю в пределах заданной ширины поля; По умолчанию выравнивание происходит по правому краю.
+ Печатает плюс + у не отрицательных чисел; По умолчанию знак печатается только у отрицательных чисел.
(space) | Дополняет результат пробелами. Это поведение по умолчанию.
0 | Дополняет числа нулями (только слева). Со спецификатором s также может дополнять нулями справа.
'(char) | Дополняет результат символом (char).

Ширина

Целое число, определяющее минимальное количество символов, которое будет напечатано.

Точность

Точка . с последующим целым числом, работающая по разному для разных спецификаторов:

  • Для спецификаторов e, E, f и F: задает количество цифр после десятичной запятой (по умолчанию 6).
  • Для спецификаторов g и G: задает максимальное значение печатаемых значащих цифр.
  • Для спецификатора s: задает ограничение максимального количества символов в строке, которые будут выведены.

Замечание: Если указана точка без последующего значения точности, то точность будет считаться за 0.

Замечание: Попытка использовать спецификатор позиции со значением больше, чем PHP_INT_MAX приведет к выводу предупреждения.

Спецификаторы
Спецификатор | Описание
% Символ процента. Аргументы не требуются.
b | Аргумент рассматривается как целое число и печатается в бинарном представлении.
c | Аргумент рассматривается как целое число и печатается как символ из таблицы ASCII с соответствующим кодом.
d | Аргумент рассматривается как целое число и печатается как целое число со знаком.
e | Аргумент считается за число в научной нотации (т.е. 1.2e+2). Начиная с PHP 5.2.1, спецификатор точности задает количество цифр после десятичной запятой. В более ранних версиях он задавал общее количество значащих цифр (т.е. после запятой выводилось на 1 символ меньше).
E | Аналогично спецификатору e, но использует заглавные символы (т.е. 1.2E+2).
f | Аргумент считается за число с плавающей точкой (с учетом локали).
F | Аргумент считается за число с плавающей точкой (без учета локали). Доступно с PHP 5.0.3.
g

Общий формат.

Пусть P равно точности, если она не равно нулю, 6 - если точность не задана и 1, если точность задана как 0. Тогда, если преобразование со стилем "E" будет иметь показатель степени X:

Если P > X ? ?4, преобразование будет в стиле "f" и точность будет P ? (X + 1). В обратном случае, преобразование будет в стиле "e" и точность будет P ? 1.

G | Аналогично спецификатору g, но использует E и F.
o | Аргумент рассматривается как целое число и печатается в восмеричном представлении.
s | Аргумент рассматривается и печатается как строка.
u | Аргумент рассматривается как целое число и печатается как беззаковое целое число.
x | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в нижнем регистре).
X | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в верхнем регистре).

Внимание

Спецификатор c игнорирует значения ширины и дополнения

Внимание

Попытка использовать спецификаторы с указанием ширины для строки в многобайтовой кодировке может привести к неожиданным результатам.

Переменные будут приведены к подходящему для спецификатора типу:

Обработка типов
Тип | Спецификатор
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

...

Возвращаемые значения

Возвращает длину выводимой строки.

Примеры

Пример #1 printf(): различные примеры

<?php
$n =  43951789;
$u = -43951789;
$c = 65; // ASCII 65 is 'A'

// двойной %% печатает единичный символ '%'
printf("%%b = '%b'\n", $n); // бинарное представление
printf("%%c = '%c'\n", $c); // печатает символ ascii, аналогично функции chr()
printf("%%d = '%d'\n", $n); // целочисленное представление
printf("%%e = '%e'\n", $n); // научная нотация
printf("%%u = '%u'\n", $n); // положительное целое в беззнаковом представлении
printf("%%u = '%u'\n", $u); // отрицательное целое в беззнаковом представлении
printf("%%f = '%f'\n", $n); // представление в виде числа с плавающей запятой
printf("%%o = '%o'\n", $n); // восмеричное представление
printf("%%s = '%s'\n", $n); // строковое представление
printf("%%x = '%x'\n", $n); // шеснадцатеричное представление в нижнем регистре
printf("%%X = '%X'\n", $n); // шеснадцатеричное представление в верхнем регистре

printf("%%+d = '%+d'\n", $n); // знак у положительного целого
printf("%%+d = '%+d'\n", $u); // знак у отрицательного целого
?>

Результат выполнения данного примера:

%b = '10100111101010011010101101'
%c = 'A'
%d = '43951789'
%e = '4.39518e+7'
%u = '43951789'
%u = '4251015507'
%f = '43951789.000000'
%o = '247523255'
%s = '43951789'
%x = '29ea6ad'
%X = '29EA6AD'
%+d = '+43951789'
%+d = '-43951789'

Пример #2 printf(): спецификаторы строки

<?php
$s = 'monkey';
$t = 'many monkeys';

printf("[%s]\n",      $s); // стандартный вывод
printf("[%10s]\n",    $s); // выравнивание вправо с пробелами
printf("[%-10s]\n",   $s); // выравнивание влево с пробелами
printf("[%010s]\n",   $s); // строка дополняется нулями слева
printf("[%'#10s]\n",  $s); // строка дополняется пользовательским символом '#'
printf("[%10.9s]\n", $t); // выравнивание вправо с отсечкой в 9 символов
printf("[%-10.9s]\n", $t); // выравнивание влево с отсечкой в 9 символов
?>

Результат выполнения данного примера:

[monkey]
[    monkey]
[monkey    ]
[0000monkey]
[####monkey]
[ many monk]
[many monk ]

Смотрите также

  • print - Выводит строку
  • sprintf() - Возвращает отформатированную строку
  • fprintf() - Записывает отформатированную строку в поток
  • vprintf() - Выводит отформатированную строку
  • vsprintf() - Возвращает отформатированную строку
  • vfprintf() - Записывает отформатированную строку в поток
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • fscanf() - Обрабатывает данные из файла в соответствии с форматом
  • number_format() - Форматирует число с разделением групп
  • date() - Форматирует вывод системной даты/времени
  • flush() - Сброс системного буфера вывода


Преобразует строку, закодированную методом quoted-printable в 8-битную строку

  • « printf
  • quoted_printable_encode »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует строку, закодированную методом quoted-printable в 8-битную строку

quoted_printable_decode

(PHP 4, PHP 5, PHP 7)

quoted_printable_decode — Преобразует строку, закодированную методом quoted-printable в 8-битную строку

Описание

quoted_printable_decode ( string $str ) : string

Эта функция возвращает 8-битную бинарную строку, соответствующую указанной строке в кодировке quoted-printable (в соответствии с разделом 6.7 » RFC2045, а не разделом 4.5.2 » RFC2821, то есть дополнительные точки не будут вырезаны из начала строки).

Эта функция подобна функции imap_qprint(), но не требует для своей работы модуля IMAP.

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает 8-битную бинарную строку.

Смотрите также

  • quoted_printable_encode() - Преобразует 8-битную строку с помощью метода quoted-printable


Преобразует 8-битную строку с помощью метода quoted-printable

  • « quoted_printable_decode
  • quotemeta »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует 8-битную строку с помощью метода quoted-printable

quoted_printable_encode

(PHP 5 >= 5.3.0, PHP 7)

quoted_printable_encode — Преобразует 8-битную строку с помощью метода quoted-printable

Описание

quoted_printable_encode ( string $str ) : string

Возвращает строку, закодированную в формат quoted-printable в соответствии с разделом 6.7 » RFC2045.

Эта функция подобна функции imap_8bit(), за исключением того, что не требует для своей работы модуля IMAP.

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает закодированную строку.

Смотрите также

  • quoted_printable_decode() - Преобразует строку, закодированную методом quoted-printable в 8-битную строку
  • iconv_mime_encode() - Создает поле MIME-заголовка


Экранирует специальные символы

  • « quoted_printable_encode
  • rtrim »
  • PHP Manual
  • Функции для работы со строками
  • Экранирует специальные символы

quotemeta

(PHP 4, PHP 5, PHP 7)

quotemeta — Экранирует специальные символы

Описание

quotemeta ( string $str ) : string

Возвращает модифицированную строку, в которой перед каждым символом из следующего списка:

. \ + * ? [ ^ ] ( $ )
вставлен обратный слеш (\).

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает экранированную строку или FALSE, если в качестве параметра str была указана пустая строка.

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • addslashes() - Экранирует строку с помощью слешей
  • addcslashes() - Экранирует cтроку слешами в стиле языка C
  • htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • nl2br() - Вставляет HTML-код разрыва строки перед каждым переводом строки
  • stripslashes() - Удаляет экранирование символов
  • stripcslashes() - Удаляет экранирование символов, произведенное функцией addcslashes
  • ereg() - Совпадение с регулярным выражением
  • preg_quote() - Экранирует символы в регулярных выражениях


Удаляет пробелы (или другие символы) из конца строки

  • « quotemeta
  • setlocale »
  • PHP Manual
  • Функции для работы со строками
  • Удаляет пробелы (или другие символы) из конца строки

rtrim

(PHP 4, PHP 5, PHP 7)

rtrim — Удаляет пробелы (или другие символы) из конца строки

Описание

rtrim ( string $str [, string $character_mask ] ) : string

Эта функция возвращает строку str с удаленными из конца строки пробельными (или другими) символами.

Если второй параметр не передан, rtrim() удаляет следующие символы:

  • " " (ASCII 32 (0x20)), обычный пробел.
  • "\t" (ASCII 9 (0x09)), символ табуляции.
  • "\n" (ASCII 10 (0x0A)), символ перевода строки.
  • "\r" (ASCII 13 (0x0D)), символ возврата каретки.
  • "\0" (ASCII 0 (0x00)), NULL-байт.
  • "\x0B" (ASCII 11 (0x0B)), вертикальная табуляция.

Список параметров

str

Входная строка.

character_mask

С помощью параметра character_mask можно также указать удаляемые символы. Просто перечислите все символы, которые вы хотите удалить. Можно указать конструкцию .. для обозначения диапазона символов.

Возвращаемые значения

Возвращает модифицированную строку.

Примеры

Пример #1 Пример использования rtrim()

<?php

$text = "\t\tThese are a few words :) ...  ";
$binary = "\x09Example string\x0A";
$hello  = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = rtrim($text);
var_dump($trimmed);

$trimmed = rtrim($text, " \t.");
var_dump($trimmed);

$trimmed = rtrim($hello, "Hdle");
var_dump($trimmed);

// удаляем управляющие ASCII-символы с конца $binary
// (от 0 до 31 включительно)
$clean = rtrim($binary, "\x00..\x1F");
var_dump($clean);

?>

Результат выполнения данного примера:

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(30) "        These are a few words :) ..."
string(26) "        These are a few words :)"
string(9) "Hello Wor"
string(15) "    Example string"

Смотрите также

  • trim() - Удаляет пробелы (или другие символы) из начала и конца строки
  • ltrim() - Удаляет пробелы (или другие символы) из начала строки


Устанавливает настройки локали

  • « rtrim
  • sha1_file »
  • PHP Manual
  • Функции для работы со строками
  • Устанавливает настройки локали

setlocale

(PHP 4, PHP 5, PHP 7)

setlocale — Устанавливает настройки локали

Описание

setlocale ( int $category , string $locale [, string $... ] ) : string
setlocale ( int $category , array $locale ) : string

Устанавливает настройки локали.

Внимание

Информация о локали модифицируется во всем процессе, а не по каждому потоку отдельно. Если вы используете PHP на многопоточном сервере, таком как IIS, HHVM или Apache под Windows, вы можете обнаружить неожиданные изменения в настройках локали во время выполнения скриптов, никогда и не вызывавших setlocale(). Это происходит из-за того, что другие скрипты, запущенные в параллельных потоках данного процесса, в то же самое время поменяли настройки локали для всего процесса с помощью setlocale().

Список параметров

category

Параметр category - это именованная константа, определяющая категорию функций, на которые будет влиять установка локали:

  • LC_ALL - все нижеперечисленное
  • LC_COLLATE - функции сравнения строк, см. strcoll()
  • LC_CTYPE - функции преобразования и классификации строк, например strtoupper()
  • LC_MONETARY - для функции localeconv()
  • LC_NUMERIC - задает символ десятичного разделения (см. также localeconv())
  • LC_TIME - форматирование даты/времени функцией strftime()
  • LC_MESSAGES - для системных сообщений (доступна, если PHP был скомпилирован с поддержкой libintl)

locale

Если в качестве locale передана пустая строка "" или NULL, имена локалей будут взяты из одноименных переменных окружения или переменной с именем "LANG".

Если в качестве locale передан "0", локаль изменена не будет, а будет возвращено текущее значение.

Если в качестве locale передан массив, или после этого аргумента следуют дополнительные аргументы, функция будет использовать элементы массива или аргументы по порядку в качестве имен локали до тех пор, пока установка локали не будет успешной. Это удобно, если одна и та же локаль имеет разное имя в различных системах, или для создания запасного варианта при отсутствии какой-либо локали в системе.

...

(Необязательные аргументы в виде строк или массивов для установки настроек локали до первой успешной попытки.)

Замечание:

На Windows setlocale(LC_ALL, '') устанавливает имена локалей из системных региональных/языковых настроек (доступных через Панель Управления).

Возвращаемые значения

Возвращает имя вновь установленной локали или FALSE, если система не поддерживает установку локали, указанная локаль не существует или передано недопустимое имя категории.

Недопустимое имя категории также вызывает предупреждение. Имена локалей и категорий описаны в » RFC 1766 и » ISO 639. Разные системы имеют различные схемы именования локалей.

Замечание:

Возвращаемое функцией setlocale() значение зависит от системы, на которой запущен PHP. Она возвращает точно то же значение, что и системная функция setlocale.

Список изменений

Версия | Описание
7.0.0 | Удалена поддержка для параметра category, передаваемого как строка. С текущей версии можно пользоваться только константами LC_*.
5.3.0 | Эта функция в настоящее время бросает уведомления E_DEPRECATED, если строка передается в параметре category вместо одной из констант LC_*.

Примеры

Пример #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));

/* попытка использовать различные локали для немецкого языка */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "На этой системе немецкая локаль имеет имя '$loc_de'";
?>

Пример #2 Примеры использования setlocale() в Windows

<?php
/* Установка голландской локали */
setlocale(LC_ALL, 'nld_nld');

/* выводит: vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* попытка использовать различные локали для немецкого языка */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "Предпочитаемая немецкая локаль на этой системе: '$loc_de'";
?>

Примечания

Подсказка

Пользователи Windows найдут полезной информацию о значениях locale на сайте Microsoft MSDN. Поддерживаемые языки перечислены в » документации по языковым строкам, а значения стран/регионов в » документации по строкам стран/регионов.


Возвращает SHA1-хеш файла

  • « setlocale
  • sha1 »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает SHA1-хеш файла

sha1_file

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

sha1_file — Возвращает SHA1-хеш файла

Описание

sha1_file ( string $filename [, bool $raw_output = FALSE ] ) : string

Вычисляет SHA1-хеш файла, имя которого задано аргументом filename, используя алгоритм » US Secure Hash Algorithm 1 и возвращает этот хеш. Хеш - 40-символьное шестнадцатеричное число.

Список параметров

filename

Имя хешируемого файла.

raw_output

Если установлен в TRUE, возвращает 20-символьный хеш в бинарном формате.

Возвращаемые значения

Возвращает строку в случае успеха, иначе возвращается FALSE.

Примеры

Пример #1 Пример использования sha1_file()

<?php
foreach(glob('/home/Kalle/myproject/*.php') as $ent)
{
    if(is_dir($ent))
    {
        continue;
    }

    echo $ent . ' (SHA1: ' . sha1_file($ent) . ')', PHP_EOL;
}
?>

Список изменений

Версия | Описание
5.1.0 | Функция теперь работает с потоковым API. Это означает, что ее можно использовать с обертками, например, sha1_file('http://example.com/..')

Смотрите также

  • sha1() - Возвращает SHA1-хеш строки
  • md5_file() - Возвращает MD5-хеш файла
  • crc32() - Вычисляет полином CRC32 для строки


Возвращает SHA1-хеш строки

  • « sha1_file
  • similar_text »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает SHA1-хеш строки

sha1

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

sha1 — Возвращает SHA1-хеш строки

Внимание

Не рекомендуется использовать эту функцию для обеспечения безопасности хранения паролей ввиду высокой скорости работы данного алгоритма. Более подробно читайте в разделе Ответы на часто задаваемые вопросы по хешированию паролей.

Описание

sha1 ( string $str [, bool $raw_output = FALSE ] ) : string

Возвращает SHA1-хеш строки str, вычисленный по алгоритму » US Secure Hash Algorithm 1.

Список параметров

str

Входная строка.

raw_output

Если необязательный аргумент raw_output имеет значение TRUE, хеш возвращается в виде бинарной строки из 20 символов, иначе он будет возвращен в виде 40-символьного шестнадцатеричного числа.

Возвращаемые значения

Возвращает SHA1-хеш в виде строки.

Примеры

Пример #1 Пример использования sha1()

<?php
$str = 'яблоко';

if (sha1($str) === '88b184adea10bf987b15257a5d6c5cb94eba69d3') {
    echo "Желаете зеленое или красное яблоко?";
}
?>

Смотрите также

  • sha1_file() - Возвращает SHA1-хеш файла
  • crc32() - Вычисляет полином CRC32 для строки
  • md5() - Возвращает MD5-хеш строки
  • hash() - Генерирует хеш-код (дайджест сообщения)
  • crypt() - Необратимое хеширование строки
  • password_hash() - Создает хеш пароля


Вычисляет степень похожести двух строк

  • « sha1
  • soundex »
  • PHP Manual
  • Функции для работы со строками
  • Вычисляет степень похожести двух строк

similar_text

(PHP 4, PHP 5, PHP 7)

similar_text — Вычисляет степень похожести двух строк

Описание

similar_text ( string $first , string $second [, float &$percent ] ) : int

Вычисляет степень похожести двух строк по алгоритму, описанному в Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1). Эта реализация алгоритма не использует стека, использованного в оригинале, вместо этого применяются рекурсивные вызовы, что в некоторых случаях может ускорить процесс. Следует отметить, что сложность алгоритма составляет O(N**3), где N - длина более длинной из двух строк.

Список параметров

first

Первая строка.

second

Вторая строка.

Замечание:

Изменение порядка first и second может привести к другому результату; см, пример ниже.

percent

При передаче по ссылке третьего аргумента, similar_text() присваивает ему степень похожести двух строк в процентах, деля результат similar_text() на среднее число длин заданных строк 100 раз.

Возвращаемые значения

Возвращается количество совпадающих символов в двух строках.

Количество совпадающих символов вычисляется путем нахождения самой длинной первой общей подстроки, а затем делает это для префиксов и суффиксов рекурсивно. Добавляются длины всех найденных общих подстрок.

Примеры

Пример #1 Пример использования similar_text() с заменой аргументов

В этом примере показано, что изменение порядка аргументов first и second может дать разные результаты.

<?php
$sim = similar_text('bafoobar', 'barfoo', $perc);
echo "сходство: $sim ($perc %)\n";
$sim = similar_text('barfoo', 'bafoobar', $perc);
echo "сходство: $sim ($perc %)\n";

Результатом выполнения данного примера будет что-то подобное:

сходство: 5 (71.428571428571 %)
сходство: 3 (42.857142857143 %)

Смотрите также

  • levenshtein() - Вычисляет расстояние Левенштейна между двумя строками
  • soundex() - Возвращает ключ soundex для строки


Возвращает ключ soundex для строки

  • « similar_text
  • sprintf »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает ключ soundex для строки

soundex

(PHP 4, PHP 5, PHP 7)

soundex — Возвращает ключ soundex для строки

Описание

soundex ( string $str ) : string

Возвращает ключ soundex для строки str.

Двум словам, имеющим схожее произношение, соответствует один и тот же ключ soundex. Это свойство может быть использовано, например, при поиске по базе данных, когда известно произношение слова и неизвестно его написание. Данная функция возвращает строку из 4 символов, начинающуюся с буквы.

Данная реализация функции soundex описана Дональдом Кнутом (Donald Knuth) в книге "The Art Of Computer Programming, vol. 3: Sorting And Searching", Addison-Wesley (1973), стр. 391-392.

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает ключ soundex в виде строки (string), или FALSE в случае возникновения ошибки.

Примеры

Пример #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() - Возвращает ключ metaphone для строки
  • similar_text() - Вычисляет степень похожести двух строк


Возвращает отформатированную строку

  • « soundex
  • sscanf »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает отформатированную строку

sprintf

(PHP 4, PHP 5, PHP 7)

sprintf — Возвращает отформатированную строку

Описание

sprintf ( string $format [, mixed $... ] ) : string

Возвращает строку, созданную с использованием строки формата format.

Список параметров

format

Строка формата состоит из нуля или более директив: обычные символы (за исключением %), которые просто выводятся без изменения и спецификаторы преобразования, каждый из которых требует передачи своего параметра.

Спецификаторы преобразования имеют следующий формат: %[argnum$][flags][width][.precision]specifier.

Argnum

Целое число, за которым следует знак доллара $, чтобы указать, какой числовой аргумент обрабатывать при преобразовании.

Флаги
Флаг | Описание
- Выравнивание по левому краю в пределах заданной ширины поля; По умолчанию выравнивание происходит по правому краю.
+ Печатает плюс + у не отрицательных чисел; По умолчанию знак печатается только у отрицательных чисел.
(space) | Дополняет результат пробелами. Это поведение по умолчанию.
0 | Дополняет числа нулями (только слева). Со спецификатором s также может дополнять нулями справа.
'(char) | Дополняет результат символом (char).

Ширина

Целое число, определяющее минимальное количество символов, которое будет напечатано.

Точность

Точка . с последующим целым числом, работающая по разному для разных спецификаторов:

  • Для спецификаторов e, E, f и F: задает количество цифр после десятичной запятой (по умолчанию 6).
  • Для спецификаторов g и G: задает максимальное значение печатаемых значащих цифр.
  • Для спецификатора s: задает ограничение максимального количества символов в строке, которые будут выведены.

Замечание: Если указана точка без последующего значения точности, то точность будет считаться за 0.

Замечание: Попытка использовать спецификатор позиции со значением больше, чем PHP_INT_MAX приведет к выводу предупреждения.

Спецификаторы
Спецификатор | Описание
% Символ процента. Аргументы не требуются.
b | Аргумент рассматривается как целое число и печатается в бинарном представлении.
c | Аргумент рассматривается как целое число и печатается как символ из таблицы ASCII с соответствующим кодом.
d | Аргумент рассматривается как целое число и печатается как целое число со знаком.
e | Аргумент считается за число в научной нотации (т.е. 1.2e+2). Начиная с PHP 5.2.1, спецификатор точности задает количество цифр после десятичной запятой. В более ранних версиях он задавал общее количество значащих цифр (т.е. после запятой выводилось на 1 символ меньше).
E | Аналогично спецификатору e, но использует заглавные символы (т.е. 1.2E+2).
f | Аргумент считается за число с плавающей точкой (с учетом локали).
F | Аргумент считается за число с плавающей точкой (без учета локали). Доступно с PHP 5.0.3.
g

Общий формат.

Пусть P равно точности, если она не равно нулю, 6 - если точность не задана и 1, если точность задана как 0. Тогда, если преобразование со стилем "E" будет иметь показатель степени X:

Если P > X ? ?4, преобразование будет в стиле "f" и точность будет P ? (X + 1). В обратном случае, преобразование будет в стиле "e" и точность будет P ? 1.

G | Аналогично спецификатору g, но использует E и F.
o | Аргумент рассматривается как целое число и печатается в восмеричном представлении.
s | Аргумент рассматривается и печатается как строка.
u | Аргумент рассматривается как целое число и печатается как беззаковое целое число.
x | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в нижнем регистре).
X | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в верхнем регистре).

Внимание

Спецификатор c игнорирует значения ширины и дополнения

Внимание

Попытка использовать спецификаторы с указанием ширины для строки в многобайтовой кодировке может привести к неожиданным результатам.

Переменные будут приведены к подходящему для спецификатора типу:

Обработка типов
Тип | Спецификатор
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

...

Возвращаемые значения

Возвращает строку, отформатированную в соответствии с форматом format, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Argument swapping

Строка формата поддерживает нумерацию и перемешивание аргументов.

<?php
$num = 5;
$location = 'tree';

$format = 'There are %d monkeys in the %s';
echo sprintf($format, $num, $location);
?>

Результат выполнения данного примера:

There are 5 monkeys in the tree

Теперь представим, что строка форматирования задается в стороннем файле. Это обычная практика при необходимости поддержки нескольких языков. Представим, что строка была переписана таким образом:

<?php
$format = 'The %s contains %d monkeys';
echo sprintf($format, $num, $location);
?>

Упс! У нас проблема - порядок спецификаторов пересал соответствовать порядку аргументов. Так как нам очень не хочется менять код каждый раз, когда меняется формат строки, то мы можем использовать нумерованные аргументы:

<?php
$format = 'The %2$s contains %1$d monkeys';
echo sprintf($format, $num, $location);
?>

Дополнительным приятным моментом является то, что мы можем использовать один параметр для нескольких подстановок.

<?php
$format = 'The %2$s contains %1$d monkeys.
           That\'s a nice %2$s full of %1$d monkeys.';
echo sprintf($format, $num, $location);
?>

При использовании нумерованных аргументов, спецификатор позиции n$ должен стоять сразу же за символом процента (%), до любого другого спецификатора, как показано ниже.

Пример #2 Использование символа заполнения

<?php
echo sprintf("%'.9d\n", 123);
echo sprintf("%'.09d\n", 123);
?>

Результат выполнения данного примера:

......123
000000123

Пример #3 Спецификатор позиции в комбинации с другими спецификаторами

<?php
$format = 'The %2$s contains %1$04d monkeys';
echo sprintf($format, $num, $location);
?>

Результат выполнения данного примера:

The tree contains 0005 monkeys

Пример #4 sprintf(): целое с лидирующими нулями

<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>

Пример #5 sprintf(): форматирование денежных единиц

<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
echo $money;
echo "\n";
$formatted = sprintf("%01.2f", $money);
echo $formatted;
?>

Результат выполнения данного примера:

123.1
123.10

Пример #6 sprintf(): научная нотация

<?php
$number = 362525200;

echo sprintf("%.3e", $number);
?>

Результат выполнения данного примера:

3.625e+8

Смотрите также

  • printf() - Выводит отформатированную строку
  • fprintf() - Записывает отформатированную строку в поток
  • vprintf() - Выводит отформатированную строку
  • vsprintf() - Возвращает отформатированную строку
  • vfprintf() - Записывает отформатированную строку в поток
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • fscanf() - Обрабатывает данные из файла в соответствии с форматом
  • number_format() - Форматирует число с разделением групп
  • date() - Форматирует вывод системной даты/времени


Разбирает строку в соответствии с заданным форматом

  • « sprintf
  • str_getcsv »
  • PHP Manual
  • Функции для работы со строками
  • Разбирает строку в соответствии с заданным форматом

sscanf

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

sscanf — Разбирает строку в соответствии с заданным форматом

Описание

sscanf ( string $str , string $format [, mixed &$... ] ) : mixed

Функция sscanf() похожа на функцию printf(), но используется не для вывода, а для ввода данных. sscanf() интерпретирует строку str в соответствии с форматом format, указанным в документации к функции sprintf().

Любые пробельные символы в строке формата соответствуют любым пробельным символам во входной строке. Это значит, что, например, символ табуляции \t в строке формата соответствует символу пробела во входной строке.

Список параметров

str

Обрабатываемая строка (string).

format

Формат, в соответствии с которым будет интерпретирована строка str, описанный в документации к функции sprintf() со следующими отличиями:

  • На функцию не влияют настройки локали.
  • F, g, G и b не поддерживаются.
  • D обозначает десятичное число.
  • i обозначает целое число с автоматическим определением системы счисления.
  • n обозначает обработанное количество символов на данный момент.
  • s обозначает остановить чтение на любом пробельном символе.

...

Необязательные переменные, передаваемые по ссылке, которым будут присвоены считанные значения.

Возвращаемые значения

Если переданы только эти два аргумента, будет возвращен массив. В противном случае, считанные из строки значения будут присвоены переменным, переданным через дополнительные аргументы, и будет возвращено количество присвоенных значений. Дополнительные аргументы должны передаваться по ссылке.

Если ожидается больше подстрок в параметре format, чем доступно в параметре str, то будет возвращено значение -1.

Примеры

Пример #1 Пример использования sscanf()

<?php
// получаем серийный номер
list($serial) = sscanf("SN/2350001", "SN/%d");
// и дату изготовления
$mandate = "January 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";
?>

Смотрите также

  • printf() - Выводит отформатированную строку
  • sprintf() - Возвращает отформатированную строку
  • fprintf() - Записывает отформатированную строку в поток
  • vprintf() - Выводит отформатированную строку
  • vsprintf() - Возвращает отформатированную строку
  • vfprintf() - Записывает отформатированную строку в поток
  • fscanf() - Обрабатывает данные из файла в соответствии с форматом
  • number_format() - Форматирует число с разделением групп
  • date() - Форматирует вывод системной даты/времени


Выполняет разбор CSV-строки в массив

  • « sscanf
  • str_ireplace »
  • PHP Manual
  • Функции для работы со строками
  • Выполняет разбор CSV-строки в массив

str_getcsv

(PHP 5 >= 5.3.0, PHP 7)

str_getcsv — Выполняет разбор CSV-строки в массив

Описание

str_getcsv ( string $input [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\\" ]]] ) : array

Данная функция выполняет разбор строки в формате CSV и возвращает массив с полученными из строки полями.

Замечание:

Эта функция принимает во внимание настройки локали. К примеру, если LC_CTYPE установлена в en_US.UTF-8, то строки в однобайтовой кодировке будут неправильно прочитаны этой функцией.

Список параметров

input

Обрабатываемая строка.

delimiter

Устанавливает разделитель поля (только один символ).

enclosure

Устанавливает символ ограничителя поля (только один символ).

escape

Устанавливает экранирующий символ (только один символ). По умолчанию равен обратному слешу (\). Пустая строка ("") отключает проприетарный механизм экранирования.

Замечание: Обычно символ enclosure экранируется внутри поля путем его удваивания; однако, символ escape в качестве альтернативы. Поэтому значения по умолчанию этих параметров "" и \" имеют одинаковое значение. Помимо разрешения экранировать символ enclosure символ escape не имеет особого смысла; он даже не предназначен для самого экранирования.

Возвращаемые значения

Возвращает индексированный массив, содержащий полученные из строки поля.

Список изменений

Версия | Описание
7.4.0 | Теперь пустой параметр escape будет интерпретироваться как требование отключения проприетарного механизма экранирования. Ранее пустая строка обозначала использование символа экранирования по умолчанию.

Смотрите также

  • fgetcsv() - Читает строку из файла и производит разбор данных CSV


Регистронезависимый вариант функции str_replace

  • « str_getcsv
  • str_pad »
  • PHP Manual
  • Функции для работы со строками
  • Регистронезависимый вариант функции str_replace

str_ireplace

(PHP 5, PHP 7)

str_ireplace — Регистронезависимый вариант функции str_replace()

Описание

str_ireplace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) : mixed

Эта функция возвращает строку или массив, в котором все вхождения search в subject заменены на replace (без учета регистра символов). Если не нужны сложные правила поиска/замены, использование этой функции предпочтительнее preg_replace() с модификатором i.

Список параметров

Если search и replace - массивы, то str_ireplace() использует каждое значение из соответствующего массива для поиска и замены в subject. Если в массиве replace меньше элементов, чем в search, в качестве строки замены для оставшихся значений будет использована пустая строка. Если search - массив, а replace - строка, то эта строка замены будет использована для каждого элемента массива search. Обратный случай смысла не имеет.

Если search или replace являются массивами, их элементы будут обработаны от первого к последнему.

search

Искомое значение, также известное как needle (иголка). Для множества искомых значений можно использовать массив.

replace

Значение замены, будет использовано для замены искомых значений search. Для множества значений можно использовать массив.

subject

Строка или массив, в котором производится поиск и замена, также известный как haystack (стог сена).

Если subject является массивом, то поиск с заменой будет осуществляться над каждым элементом subject, а результатом функции также будет являться массив.

count

Если передан, то будет установлен в количество произведенных замен.

Возвращаемые значения

Возвращает строку или массив с замененными значениями.

Примеры

Пример #1 Пример использования str_ireplace()

<?php
$bodytag = str_ireplace("%body%", "black", "<body text=%BODY%>");
echo $bodytag; // <body text=black>
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Предостережение

Замечание о порядке замены

Так как str_ireplace() осуществляет замену слева направо, то при использовании множественных замен она может заменить ранее вставленное значение на другое. Пример №2 в документации str_replace() поясняет как это работает на практике.

Смотрите также

  • str_replace() - Заменяет все вхождения строки поиска на строку замены
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • strtr() - Преобразует заданные символы или заменяет подстроки


Дополняет строку другой строкой до заданной длины

  • « str_ireplace
  • str_repeat »
  • PHP Manual
  • Функции для работы со строками
  • Дополняет строку другой строкой до заданной длины

str_pad

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

str_pad — Дополняет строку другой строкой до заданной длины

Описание

str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] ) : string

Эта функция возвращает строку input, дополненную слева, справа или с обеих сторон до заданной длины. Если необязательный аргумент pad_string не передан, то input будет дополнен пробелами, иначе он будет дополнен символами из pad_string до нужной длины.

Список параметров

input

Входная строка.

pad_length

Если значение pad_length отрицательно, меньше или равно длине входной строки, то дополнения не происходит и возвращается исходная строка input.

pad_string

Замечание:

pad_string может быть урезана, если необходимое количество дополняемых символов не делится нацело на длину строки pad_string.

pad_type

Необязательный аргумент pad_type может иметь значение STR_PAD_RIGHT, STR_PAD_LEFT или STR_PAD_BOTH. Если не указан, то по умолчанию используется STR_PAD_RIGHT.

Возвращаемые значения

Возвращает дополненную строку.

Примеры

Пример #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_"
echo str_pad($input,  3, "*");                 // выводит "Alien"
?>


Возвращает повторяющуюся строку

  • « str_pad
  • str_replace »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает повторяющуюся строку

str_repeat

(PHP 4, PHP 5, PHP 7)

str_repeat — Возвращает повторяющуюся строку

Описание

str_repeat ( string $input , int $multiplier ) : string

Возвращает строку input, повторенную multiplier раз.

Список параметров

input

Повторяемая строка.

multiplier

Количество раз, которые нужно повторить строку input.

multiplier должен быть больше или равен нулю. Если он равен нулю, возвращается пустая строка.

Возвращаемые значения

Возвращает повторяющуюся строку.

Примеры

Пример #1 Пример использования str_repeat()

<?php
echo str_repeat("-=", 10);
?>

Результат выполнения данного примера:

-=-=-=-=-=-=-=-=-=-=

Смотрите также

  • for
  • str_pad() - Дополняет строку другой строкой до заданной длины
  • substr_count() - Возвращает число вхождений подстроки


Заменяет все вхождения строки поиска на строку замены

  • « str_repeat
  • str_rot13 »
  • PHP Manual
  • Функции для работы со строками
  • Заменяет все вхождения строки поиска на строку замены

str_replace

(PHP 4, PHP 5, PHP 7)

str_replace — Заменяет все вхождения строки поиска на строку замены

Описание

str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) : mixed

Эта функция возвращает строку или массив, в котором все вхождения search в subject заменены на replace.

Если не нужны сложные правила поиска/замены (например, регулярные выражения), использование этой функции предпочтительнее preg_replace().

Список параметров

Если search и replace - массивы, то str_replace() использует каждое значение из соответствующего массива для поиска и замены в subject. Если в массиве replace меньше элементов, чем в search, в качестве строки замены для оставшихся значений будет использована пустая строка. Если search - массив, а replace - строка, то эта строка замены будет использована для каждого элемента массива search. Обратный случай смысла не имеет.

Если search или replace являются массивами, их элементы будут обработаны от первого к последнему.

search

Искомое значение, также известное как needle (иголка). Для множества искомых значений можно использовать массив.

replace

Значение замены, будет использовано для замены искомых значений search. Для множества значений можно использовать массив.

subject

Строка или массив, в котором производится поиск и замена, также известный как haystack (стог сена).

Если subject является массивом, то поиск с заменой будет осуществляться над каждым элементом subject, а результатом функции также будет являться массив.

count

Если передан, то будет установлен в количество произведенных замен.

Возвращаемые значения

Эта функция возвращает строку или массив с замененными значениями.

Примеры

Пример #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);

// присваивает: 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;
?>

Пример #2 Примеры потенциальных трюков с str_replace()

<?php
// Порядок замены
$str     = "Строка 1\nСтрока 2\rСтрока 3\r\nСтрока 4\n";
$order   = array("\r\n", "\n", "\r");
$replace = '<br />';

// Обрабатывает сначала \r\n для избежания их повторной замены.
echo $newstr = str_replace($order, $replace, $str);

// Выводит F, т.к. A заменяется на B, затем B на C, и так далее...
// В итоге E будет заменено F, так как замена происходит слева направо.
$search  = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);

// Выводит: яблорехкорех орех (по вышеуказанной причине)
$letters = array('я', 'о');
$fruit   = array('яблоко', 'орех');
$text    = 'я о';
$output  = str_replace($letters, $fruit, $text);
echo $output;
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Предостережение

Замечание о порядке замены

Так как str_replace() осуществляет замену слева направо, то при использовании множественных замен она может заменить ранее вставленное значение на другое. Смотрите также примеры на этой странице.

Замечание:

Эта функция чувствительна к регистру. Используйте str_ireplace() для замены без учета регистра.

Смотрите также

  • str_ireplace() - Регистронезависимый вариант функции str_replace
  • substr_replace() - Заменяет часть строки
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • strtr() - Преобразует заданные символы или заменяет подстроки


Выполняет преобразование ROT13 над строкой

  • « str_replace
  • str_shuffle »
  • PHP Manual
  • Функции для работы со строками
  • Выполняет преобразование ROT13 над строкой

str_rot13

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

str_rot13 — Выполняет преобразование ROT13 над строкой

Описание

str_rot13 ( string $str ) : string

Выполняет над строкой str преобразование ROT13 и возвращает полученную строку.

Преобразование ROT13 заключается в простом сдвиге каждой латинской буквы на 13 позиций в алфавите, остальные символы не изменяются. Обратное преобразование выполняется той же функцией, так как передача закодированной строки в качестве аргумента вернет ее оригинальную версию.

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает версию ROT13 переданной строки.

Примеры

Пример #1 Пример использования str_rot13()

<?php

echo str_rot13('PHP 4.3.0'); // CUC 4.3.0

?>


Переставляет символы в строке случайным образом

  • « str_rot13
  • str_split »
  • PHP Manual
  • Функции для работы со строками
  • Переставляет символы в строке случайным образом

str_shuffle

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

str_shuffle — Переставляет символы в строке случайным образом

Описание

str_shuffle ( string $str ) : string

str_shuffle() перемешивает символы в строке. Выбирается одна возможная перестановка из всех возможных.

Предостережение

Данная функция не генерирует криптографически безопасные значения и не должна использоваться в криптографических целях. Если вам требуется криптографически безопасное значение, подумайте об использовании функций random_int(), random_bytes() или openssl_random_pseudo_bytes() вместо данной.

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает перемешанную строку.

Список изменений

Версия | Описание
7.1.0 | Внутренний алгоритм получения случайных чисел изменен с функции rand библиотеки libc на генератор на базе » Вихря Мерсена.

Примеры

Пример #1 Пример использования str_shuffle()

<?php
$str = 'abcdef';
$shuffled = str_shuffle($str);

// выведет что-то вроде этого: bfdaec
echo $shuffled;
?>

Смотрите также

  • shuffle() - Перемешивает массив
  • rand() - Генерирует случайное число


Преобразует строку в массив

  • « str_shuffle
  • str_word_count »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует строку в массив

str_split

(PHP 5, PHP 7)

str_split — Преобразует строку в массив

Описание

str_split ( string $string [, int $split_length = 1 ] ) : array

Преобразует строку в массив.

Список параметров

string

Входная строка.

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
)

Примечания

Замечание:

Функция str_split() производит разбивку по байтам, а не по символам, в случае использования строк в многобайтных кодировках.

Смотрите также

  • chunk_split() - Разбивает строку на фрагменты
  • preg_split() - Разбивает строку по регулярному выражению
  • explode() - Разбивает строку с помощью разделителя
  • count_chars() - Возвращает информацию о символах, входящих в строку
  • str_word_count() - Возвращает информацию о словах, входящих в строку
  • for


Возвращает информацию о словах, входящих в строку

  • « str_split
  • strcasecmp »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает информацию о словах, входящих в строку

str_word_count

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

str_word_count — Возвращает информацию о словах, входящих в строку

Описание

str_word_count ( string $string [, int $format = 0 [, string $charlist ]] ) : mixed

Подсчитывает количество слов, входящих в строку string. Если необязательный аргумент format не передан, возвращается целое число, равное количеству слов. В случае, если указан аргумент format, возвращается массив, содержимое которого зависит от значения format. Ниже описаны допустимые значения аргумента format и соответствующие им возвращаемые значения.

Для этой функции "слово" обозначает строку с алфавитными символами, зависящую от локали, которая также может содержать символы "'" и "-", но не может начинаться с них.

Список параметров

string

Строка

format

Указывает возвращаемое значение данной функции. На данный момент поддерживаются следующие значения:

  • 0 - возвращает количество найденных слов
  • 1 - возвращается массив, содержащий все слова, входящие в строку string
  • 2 - возвращается массив, индексами которого являются позиции в строке string, а значениями - соответствующие слова.

charlist

Список дополнительных символов, которые будут рассматриваться как "слово"

Возвращаемые значения

Возвращает массив или целое число, в зависимости от указанного параметра format.

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр charlist

Примеры

Пример #1 Пример использования str_word_count()

<?php

$str = "Hello fri3nd, you're
       looking          good today!";

print_r(str_word_count($str, 1));
print_r(str_word_count($str, 2));
print_r(str_word_count($str, 1, 'aaac3'));

echo str_word_count($str);

?>

Результат выполнения данного примера:

Array
(
    [0] => Hello
    [1] => fri
    [2] => nd
    [3] => you're
    [4] => looking
    [5] => good
    [6] => today
)

Array
(
    [0] => Hello
    [6] => fri
    [10] => nd
    [14] => you're
    [29] => looking
    [46] => good
    [51] => today
)

Array
(
    [0] => Hello
    [1] => fri3nd
    [2] => you're
    [3] => looking
    [4] => good
    [5] => today
)

7

Смотрите также

  • explode() - Разбивает строку с помощью разделителя
  • preg_split() - Разбивает строку по регулярному выражению
  • split() - Разбиение строки на массив по регулярному выражению
  • count_chars() - Возвращает информацию о символах, входящих в строку
  • substr_count() - Возвращает число вхождений подстроки


Бинарно-безопасное сравнение строк без учета регистра

  • « str_word_count
  • strchr »
  • PHP Manual
  • Функции для работы со строками
  • Бинарно-безопасное сравнение строк без учета регистра

strcasecmp

(PHP 4, PHP 5, PHP 7)

strcasecmp — Бинарно-безопасное сравнение строк без учета регистра

Описание

strcasecmp ( string $str1 , string $str2 ) : int

Бинарно-безопасное сравнение строк без учета регистра.

Список параметров

str1

Первая строка

str2

Вторая строка

Возвращаемые значения

Возвращает отрицательное число, если str1 меньше str2, положительное число, если str1 больше str2, и 0, если строки равны.

Примеры

Пример #1 Пример использования strcasecmp()

<?php
$var1 = "Hello";
$var2 = "hello";
if (strcasecmp($var1, $var2) == 0) {
    echo '$var1 равно $var2 при сравнении без учета регистра';
}
?>

Смотрите также

  • strcmp() - Бинарно-безопасное сравнение строк
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • substr_compare() - Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра
  • strncasecmp() - Бинарно-безопасное сравнение первых n символов строк без учета регистра
  • stristr() - Регистронезависимый вариант функции strstr
  • substr() - Возвращает подстроку


Псевдоним strstr

  • « strcasecmp
  • strcmp »
  • PHP Manual
  • Функции для работы со строками
  • Псевдоним strstr

strchr

(PHP 4, PHP 5, PHP 7)

strchr — Псевдоним strstr()

Описание

Эта функция является псевдонимом: strstr().


Бинарно-безопасное сравнение строк

  • « strchr
  • strcoll »
  • PHP Manual
  • Функции для работы со строками
  • Бинарно-безопасное сравнение строк

strcmp

(PHP 4, PHP 5, PHP 7)

strcmp — Бинарно-безопасное сравнение строк

Описание

strcmp ( string $str1 , string $str2 ) : int

Эта функция учитывает регистр символов.

Список параметров

str1

Первая строка.

str2

Вторая строка.

Возвращаемые значения

Возвращает отрицательное число, если str1 меньше str2, положительное число, если str1 больше str2, и 0, если строки равны.

Примеры

Пример #1 Пример использования strcmp()

<?php
$var1 = "Hello";
$var2 = "hello";
if (strcmp($var1, $var2) !== 0) {
    echo '$var1 не равно $var2 при регистрозависимом сравнении';
}
?>

Смотрите также

  • strcasecmp() - Бинарно-безопасное сравнение строк без учета регистра
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • substr_compare() - Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра
  • strncmp() - Бинарно-безопасное сравнение первых n символов строк
  • strstr() - Находит первое вхождение подстроки
  • substr() - Возвращает подстроку


Сравнение строк с учетом текущей локали

  • « strcmp
  • strcspn »
  • PHP Manual
  • Функции для работы со строками
  • Сравнение строк с учетом текущей локали

strcoll

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

strcoll — Сравнение строк с учетом текущей локали

Описание

strcoll ( string $str1 , string $str2 ) : int

Обратите внимание, что эта функция учитывает регистр символов, и в отличие от strcmp(), не безопасна для обработки данных в двоичной форме.

strcoll() при сравнении использует установки текущей локали. Если установлена локаль C или POSIX, эта функция аналогична strcmp().

Список параметров

str1

Первая строка.

str2

Вторая строка.

Возвращаемые значения

Возвращает отрицательное число, если str1 меньше str2, положительное число, если str1 больше str2, и 0, если они равны.

Смотрите также

  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • strcmp() - Бинарно-безопасное сравнение строк
  • strcasecmp() - Бинарно-безопасное сравнение строк без учета регистра
  • substr() - Возвращает подстроку
  • stristr() - Регистронезависимый вариант функции strstr
  • strncasecmp() - Бинарно-безопасное сравнение первых n символов строк без учета регистра
  • strncmp() - Бинарно-безопасное сравнение первых n символов строк
  • strstr() - Находит первое вхождение подстроки
  • setlocale() - Устанавливает настройки локали


Возвращает длину участка в начале строки, не соответствующего маске

  • « strcoll
  • strip_tags »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает длину участка в начале строки, не соответствующего маске

strcspn

(PHP 4, PHP 5, PHP 7)

strcspn — Возвращает длину участка в начале строки, не соответствующего маске

Описание

strcspn ( string $subject , string $mask [, int $start [, int $length ]] ) : int

Возвращает длину участка в начале строки subject, который не содержит ни одного символа из строки mask.

Если параметры start и length не указаны, то все содержимое subject будет исследовано. Если же эти параметры указаны, то эффект будет таким же, как при вызове strcspn(substr($subject, $start, $length), $mask) (см. substr для дополнительной информации).

Список параметров

subject

Строка для исследования.

mask

Строка, содержащая каждый из запрещенных символов.

start

Позиция в строке subject, с которой начинается поиск.

Если start указан и не является отрицательным значением, тогда strcspn() начнет обследование строки subject с позиции, указанной в start. Например: в строке 'abcdef', символ в позиции 0 это 'a', символ в позиции 2 это 'c', и так далее.

Если start указан, но является отрицательным числом, то strspn() начнет обследование строки subject с позиции, указанной в параметре start, начиная с конца строки subject.

length

Длина фрагмента из subject для обследования.

Если параметр length указан и не является отрицательным значением, тогда будет обследовано length символов из subject, отсчитывая от стартовой позиции.

Если length передан и значение отрицательное, то будут проверяться символы, начиная со стартовой позиции и до length с конца subject.

Возвращаемые значения

Возвращает длину начального фрагмента строки subject, которая состоит полностью из символов, не включенных в параметр mask.

Замечание:

Когда параметр start указан, возвращаемая длина определяется, начиная с этой позиции, а не с начала строки subject.

Примеры

Пример #1 Пример использования strcspn()

<?php
$a = strcspn('abcd',  'apple');
$b = strcspn('abcd',  'banana');
$c = strcspn('hello', 'l');
$d = strcspn('hello', 'world');
$e = strcspn('abcdhelloabcd', 'abcd', -9);
$f = strcspn('abcdhelloabcd', 'abcd', -9, -5);

var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
var_dump($e);
var_dump($f);
?>

Результат выполнения данного примера:

int(0)
int(0)
int(2)
int(2)
int(5)
int(4)

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • strspn() - Возвращает длину участка в начале строки, полностью соответствующего маске


Удаляет теги HTML и PHP из строки

  • « strcspn
  • stripcslashes »
  • PHP Manual
  • Функции для работы со строками
  • Удаляет теги HTML и PHP из строки

strip_tags

(PHP 4, PHP 5, PHP 7)

strip_tags — Удаляет теги HTML и PHP из строки

Описание

strip_tags ( string $str [, string $allowable_tags ] ) : string

Эта функция пытается возвратить строку, из которой удалены все NULL-байты, HTML- и PHP-теги. Для удаления тегов используется тот же механизм, что и в функции fgetss().

Список параметров

str

Входная строка.

allowable_tags

Второй необязательный параметр может быть использован для указания тегов, которые не нужно удалять.

Замечание:

Комментарии HTML и PHP-теги также будут удалены. Это жестко задано в коде и не может быть изменено с помощью параметра allowable_tags.

Замечание:

В PHP 5.3.4 и новее, самозакрывающиеся (такие как <br/>) теги XHTML игнорируются и только не самозакрывающиеся теги должны быть использованы в allowable_tags. К примеру, для разрешения как <br>, так и <br/> нужно сделать следующее:

<?php
strip_tags($input, '<br>');
?>

Возвращаемые значения

Возвращает строку без тегов.

Список изменений

Версия | Описание
5.3.4 | strip_tags() игнорирует самозакрывающиеся теги XHTML в allowable_tags.

Примеры

Пример #1 Пример использования strip_tags()

<?php
$text = '<p>Параграф.</p><!-- Комментарий --> <a href="#fragment">Еще текст</a>';
echo strip_tags($text);
echo "\n";

// Разрешаем <p> и <a>
echo strip_tags($text, '<p><a>');
?>

Результат выполнения данного примера:

Параграф. Еще текст
<p>Параграф.</p> <a href="#fragment">Еще текст</a>

Примечания

Внимание

Эта функция не должна использоваться для предотвращения XSS-атак. Используйте более подходящие функции для этой задачи, такие как htmlspecialchars() или другие механизмы, в зависимости от контекста вывода.

Внимание

Из-за того, что strip_tags() не проверяет валидность HTML, то частичные или сломанные теги могут послужить удалением большего количества текста или данных, чем ожидалось.

Внимание

Эта функция не изменяет атрибуты тегов, разрешенных с помощью allowable_tags, включая такие атрибуты как style и onmouseover, которые могут быть использованы озорными пользователями при отправке текста, отображаемого также и другим пользователям.

Замечание:

Имена тегов в HTML превышающие 1023 байта будут рассматриваться как невалидные независимо от параметра allowable_tags.

Смотрите также

  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности


Удаляет экранирование символов, произведенное функцией addcslashes

  • « strip_tags
  • stripos »
  • PHP Manual
  • Функции для работы со строками
  • Удаляет экранирование символов, произведенное функцией addcslashes

stripcslashes

(PHP 4, PHP 5, PHP 7)

stripcslashes — Удаляет экранирование символов, произведенное функцией addcslashes()

Описание

stripcslashes ( string $str ) : string

Удаляет экранирующие обратные слеши. Распознает экранирование в стиле C (\n, \r ..., восьмеричное и шестнадцатеричное представление).

Список параметров

str

Строка, у которой нужно убрать экранирование.

Возвращаемые значения

Возвращает неэкранированную строку.

Смотрите также

  • addcslashes() - Экранирует cтроку слешами в стиле языка C


Возвращает позицию первого вхождения подстроки без учета регистра

  • « stripcslashes
  • stripslashes »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает позицию первого вхождения подстроки без учета регистра

stripos

(PHP 5, PHP 7)

stripos — Возвращает позицию первого вхождения подстроки без учета регистра

Описание

stripos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int

Ищет позицию первого вхождения подстроки needle в строке haystack.

В отличие от strpos(), эта функция не учитывает регистр символов.

Список параметров

haystack

Строка, в которой производится поиск.

needle

Заметьте, что needle может содержать строку из одного или более символов.

Если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведен к строке, либо должен быть выполнен явный вызов chr().

offset

Если этот параметр указан, то поиск будет начат с указанного количества символов с начала строки. Если задано отрицательное значение, отсчет позиции начала поиска будет произведен с конца строки.

Возвращаемые значения

Возвращает позицию, в которой находится искомая строка, относительно начала строки haystack (независимо от смещения (offset)). Также обратите внимание на то, что позиция строки отсчитывается от 0, а не от 1.

Возвращает FALSE, если искомая строка не найдена.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений offset.

Примеры

Пример #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";
}
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • mb_stripos() - Регистронезависимый поиск позиции первого вхождения одной строки в другую
  • strpos() - Возвращает позицию первого вхождения подстроки
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • strripos() - Возвращает позицию последнего вхождения подстроки без учета регистра
  • stristr() - Регистронезависимый вариант функции strstr
  • substr() - Возвращает подстроку
  • str_ireplace() - Регистронезависимый вариант функции str_replace


Удаляет экранирование символов

  • « stripos
  • stristr »
  • PHP Manual
  • Функции для работы со строками
  • Удаляет экранирование символов

stripslashes

(PHP 4, PHP 5, PHP 7)

stripslashes — Удаляет экранирование символов

Описание

stripslashes ( string $str ) : string

Удаляет экранирующие символы.

Замечание:

Если включена директива magic_quotes_sybase, вместо обратных слешей будут удаляться двойные одинарные кавычки.

Функцию stripslashes() можно использовать, например, если директива конфигурации magic_quotes_gpc имеет значение on (она была включена по умолчанию в версиях до PHP 5.4), и экранирование символов не требуется. Например, данные не вставляются в базу данных, а просто выводятся в браузер.

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает строку с вырезанными обратными слешами. (\' становится ' и т.п.) Двойные обратные слеши (\\) становятся одинарными (\).

Примеры

Пример #1 Пример использования stripslashes()

<?php
$str = "Ваc зовут O\'reilly?";

// выводит: Вас зовут O'reilly?
echo stripslashes($str);
?>

Замечание:

stripslashes() не рекурсивна. Если вы хотите применить ее к многомерному массиву, то вам необходимо использовать рекурсивную функцию.

Пример #2 Использование stripslashes() с массивом

<?php
function stripslashes_deep($value)
{
    $value = is_array($value) ?
                array_map('stripslashes_deep', $value) :
                stripslashes($value);

    return $value;
}

// Пример
$array = array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar"));
$array = stripslashes_deep($array);

// Вывод
print_r($array);
?>

Результат выполнения данного примера:

Array
(
    [0] => f'oo
    [1] => b'ar
    [2] => Array
        (
            [0] => fo'o
            [1] => b'ar
        )

)

Смотрите также

  • addslashes() - Экранирует строку с помощью слешей
  • get_magic_quotes_gpc() - Получение текущего значения настройки конфигурации magic_quotes_gpc


Регистронезависимый вариант функции strstr

  • « stripslashes
  • strlen »
  • PHP Manual
  • Функции для работы со строками
  • Регистронезависимый вариант функции strstr

stristr

(PHP 4, PHP 5, PHP 7)

stristr — Регистронезависимый вариант функции strstr()

Описание

stristr ( string $haystack , mixed $needle [, bool $before_needle = FALSE ] ) : string

Возвращает всю строку haystack начиная с первого вхождения needle включительно.

Список параметров

haystack

Строка, в которой производится поиск

needle

Если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведен к строке, либо должен быть выполнен явный вызов chr().

before_needle

Если установлен в TRUE, stristr() возвращает часть строки haystack до первого вхождения needle (не включая needle).

needle и haystack обрабатываются без учета регистра.

Возвращаемые значения

Возвращает указанную подстроку. Если подстрока needle не найдена, возвращается FALSE.

Список изменений

Версия | Описание
5.3.0 | Добавлен необязательный параметр before_needle.

Примеры

Пример #1 Пример использования stristr()

<?php
  $email = 'USER@EXAMPLE.com';
  echo stristr($email, 'e'); // выводит ER@EXAMPLE.com
  echo stristr($email, 'e', true); // Начиная с PHP 5.3.0, выводит US
?>

Пример #2 Проверка на вхождение строки

<?php
  $string = 'Hello World!';
  if(stristr($string, 'earth') === FALSE) {
    echo '"earth" не найдена в строке';
  }
// выводит: "earth" не найдена в строке
?>

Пример #3 Использование не строки в поиске

<?php
  $string = 'APPLE';
  echo stristr($string, 97); // 97 = a в нижнем регистре
// выводит: APPLE
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • strstr() - Находит первое вхождение подстроки
  • strrchr() - Находит последнее вхождение символа в строке
  • stripos() - Возвращает позицию первого вхождения подстроки без учета регистра
  • strpbrk() - Ищет в строке любой символ из заданного набора
  • preg_match() - Выполняет проверку на соответствие регулярному выражению


Возвращает длину строки

  • « stristr
  • strnatcasecmp »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает длину строки

strlen

(PHP 4, PHP 5, PHP 7)

strlen — Возвращает длину строки

Описание

strlen ( string $string ) : int

Возвращает длину строки string.

Список параметров

string

Строка (string), для которой измеряется длина.

Возвращаемые значения

Длина строки string в случае успеха, и 0, если string пуста.

Список изменений

Версия | Описание
5.3.0 | Ранние версии этой функции рассматривали массивы как строку Array, возвращая таким образом 5 в качестве длины этой строки и вызывали ошибку уровня E_NOTICE.

Примеры

Пример #1 Пример использования strlen()

<?php
$str = 'abcdef';
echo strlen($str); // 6

$str = ' ab cd ';
echo strlen($str); // 7
?>

Примечания

Замечание:

Функция strlen() возвратит количество байт, а не число символов в строке.

Замечание:

Функция strlen() возвращает NULL при использовании на массивах, а также выводит ошибку уровня E_WARNING.

Смотрите также

  • count() - Подсчитывает количество элементов массива или чего-либо в объекте
  • grapheme_strlen() - Get string length in grapheme units
  • iconv_strlen() - Возвращает количество символов в строке
  • mb_strlen() - Получает длину строки


Сравнение строк без учета регистра с использованием алгоритма "natural order"

  • « strlen
  • strnatcmp »
  • PHP Manual
  • Функции для работы со строками
  • Сравнение строк без учета регистра с использованием алгоритма "natural order"

strnatcasecmp

(PHP 4, PHP 5, PHP 7)

strnatcasecmp — Сравнение строк без учета регистра с использованием алгоритма "natural order"

Описание

strnatcasecmp ( string $str1 , string $str2 ) : int

Эта функция реализует алгоритм сравнения, упорядочивающий алфавитно-цифровые строки подобно тому, как это сделал бы человек. Эта функция подобна strnatcmp(), за исключением того, что сравнение происходит без учета регистра символов. Для получения дополнительной информации см. » Natural Order String Comparison.

Список параметров

str1

Первая строка.

str2

Вторая строка.

Возвращаемые значения

Подобно другим функциям сравнения строк, данная функция возвращает отрицательное число, если str1 меньше str2, положительное число, если str1 больше str2, и 0, если строки равны.

Смотрите также

  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • strcmp() - Бинарно-безопасное сравнение строк
  • strcasecmp() - Бинарно-безопасное сравнение строк без учета регистра
  • substr() - Возвращает подстроку
  • stristr() - Регистронезависимый вариант функции strstr
  • strncasecmp() - Бинарно-безопасное сравнение первых n символов строк без учета регистра
  • strncmp() - Бинарно-безопасное сравнение первых n символов строк
  • strstr() - Находит первое вхождение подстроки
  • setlocale() - Устанавливает настройки локали


Сравнение строк с использованием алгоритма "natural order"

  • « strnatcasecmp
  • strncasecmp »
  • PHP Manual
  • Функции для работы со строками
  • Сравнение строк с использованием алгоритма "natural order"

strnatcmp

(PHP 4, PHP 5, PHP 7)

strnatcmp — Сравнение строк с использованием алгоритма "natural order"

Описание

strnatcmp ( string $str1 , string $str2 ) : int

Эта функция реализует алгоритм сравнения, упорядочивающий алфавитно-цифровые строки подобно тому, как это сделал бы человек, такой алгоритм называется "natural ordering". Сравнение происходит с учетом регистра.

Список параметров

str1

Первая строка.

str2

Вторая строка.

Возвращаемые значения

Подобно другим функциям сравнения строк, данная функция возвращает отрицательное число, если str1 меньше, чем str2, положительное число, если str1 больше, чем str2, и 0 если строки равны.

Примеры

Пример, показывающий отличие этого алгоритма от обычных функций сравнения (используемых в strcmp()), приведен ниже:

<?php
$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");
echo "Стандартный алгоритм сравнения\n";
usort($arr1, "strcmp");
print_r($arr1);
echo "\nАлгоритм \"natural order\"\n";
usort($arr2, "strnatcmp");
print_r($arr2);
?>

Результат выполнения данного примера:

Стандартный алгоритм сравнения
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Алгоритм "natural order"
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)
Для получения дополнительной информации см. » Natural Order String Comparison.

Смотрите также

  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • strcasecmp() - Бинарно-безопасное сравнение строк без учета регистра
  • substr() - Возвращает подстроку
  • stristr() - Регистронезависимый вариант функции strstr
  • strcmp() - Бинарно-безопасное сравнение строк
  • strncmp() - Бинарно-безопасное сравнение первых n символов строк
  • strncasecmp() - Бинарно-безопасное сравнение первых n символов строк без учета регистра
  • strnatcasecmp() - Сравнение строк без учета регистра с использованием алгоритма "natural order"
  • strstr() - Находит первое вхождение подстроки
  • natsort() - Сортирует массив, используя алгоритм "natural order"
  • natcasesort() - Сортирует массив, используя алгоритм "natural order" без учета регистра символов


Бинарно-безопасное сравнение первых n символов строк без учета регистра

  • « strnatcmp
  • strncmp »
  • PHP Manual
  • Функции для работы со строками
  • Бинарно-безопасное сравнение первых n символов строк без учета регистра

strncasecmp

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

strncasecmp — Бинарно-безопасное сравнение первых n символов строк без учета регистра

Описание

strncasecmp ( string $str1 , string $str2 , int $len ) : int

Эта функция похожа на strcasecmp(), за исключением того, что можно указать максимальное количество символов в обеих строках, которые будут участвовать в сравнении.

Список параметров

str1

Первая строка.

str2

Вторая строка.

len

Количество символов, участвующих в сравнении.

Возвращаемые значения

Возвращает отрицательное число, если str1 меньше str2, положительное число, если str1 больше str2, и 0, если строки равны.

Смотрите также

  • strncmp() - Бинарно-безопасное сравнение первых n символов строк
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • substr_compare() - Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра
  • strcasecmp() - Бинарно-безопасное сравнение строк без учета регистра
  • stristr() - Регистронезависимый вариант функции strstr
  • substr() - Возвращает подстроку


Бинарно-безопасное сравнение первых n символов строк

  • « strncasecmp
  • strpbrk »
  • PHP Manual
  • Функции для работы со строками
  • Бинарно-безопасное сравнение первых n символов строк

strncmp

(PHP 4, PHP 5, PHP 7)

strncmp — Бинарно-безопасное сравнение первых n символов строк

Описание

strncmp ( string $str1 , string $str2 , int $len ) : int

Эта функция похожа на strcmp(), за исключением того, что можно указать максимальное количество символов в обеих строках, которые будут участвовать в сравнении.

Эта функция учитывает регистр символов.

Список параметров

str1

Первая строка.

str2

Вторая строка.

len

Количество символов, используемых в сравнении.

Возвращаемые значения

Возвращает отрицательное число, если str1 меньше str2, положительное число, если str1 больше str2, и 0, если строки равны.

Смотрите также

  • strncasecmp() - Бинарно-безопасное сравнение первых n символов строк без учета регистра
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • substr_compare() - Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра
  • strcmp() - Бинарно-безопасное сравнение строк
  • strstr() - Находит первое вхождение подстроки
  • substr() - Возвращает подстроку


Ищет в строке любой символ из заданного набора

  • « strncmp
  • strpos »
  • PHP Manual
  • Функции для работы со строками
  • Ищет в строке любой символ из заданного набора

strpbrk

(PHP 5, PHP 7)

strpbrk — Ищет в строке любой символ из заданного набора

Описание

strpbrk ( string $haystack , string $char_list ) : string

strpbrk() ищет в строке haystack символы из набора char_list.

Список параметров

haystack

Строка, в которой производится поиск char_list.

char_list

Данный параметр чувствителен к регистру.

Возвращаемые значения

Возвращает строку, начиная с найденного символа, или FALSE, если он не был найден.

Примеры

Пример #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');
?>

Смотрите также

  • strpos() - Возвращает позицию первого вхождения подстроки
  • strstr() - Находит первое вхождение подстроки
  • preg_match() - Выполняет проверку на соответствие регулярному выражению


Возвращает позицию первого вхождения подстроки

  • « strpbrk
  • strrchr »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает позицию первого вхождения подстроки

strpos

(PHP 4, PHP 5, PHP 7)

strpos — Возвращает позицию первого вхождения подстроки

Описание

strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int

Ищет позицию первого вхождения подстроки needle в строку haystack.

Список параметров

haystack

Строка, в которой производится поиск.

needle

Если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведен к строке, либо должен быть выполнен явный вызов chr().

offset

Если этот параметр указан, то поиск будет начат с указанного количества символов с начала строки. Если задано отрицательное значение, отсчет позиции начала поиска будет произведен с конца строки.

Возвращаемые значения

Возвращает позицию, в которой находится искомая строка, относительно начала строки haystack (независимо от смещения (offset)). Также обратите внимание на то, что позиция строки отсчитывается от 0, а не от 1.

Возвращает FALSE, если искомая строка не найдена.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений offset.

Примеры

Пример #1 Использование ===

<?php
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// Заметьте, что используется ===.  Использование == не даст верного
// результата, так как 'a' находится в нулевой позиции.
if ($pos === false) {
    echo "Строка '$findme' не найдена в строке '$mystring'";
} else {
    echo "Строка '$findme' найдена в строке '$mystring'";
    echo " в позиции $pos";
}
?>

Пример #2 Использование !==

<?php
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// Оператор !== также можно использовать.  Использование != не даст верного
// результата, так как 'a' находится в нулевой позиции. Выражение (0 != false) приводится
// к false.
if ($pos !== false) {
     echo "Строка '$findme' найдена в строке '$mystring'";
         echo " в позиции $pos";
} else {
     echo "Строка '$findme' не найдена в строке '$mystring'";
}
?>

Пример #3 Использование смещения

<?php
// Можно искать символ, игнорируя символы до определенного смещения
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, не 0
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • stripos() - Возвращает позицию первого вхождения подстроки без учета регистра
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • strripos() - Возвращает позицию последнего вхождения подстроки без учета регистра
  • strstr() - Находит первое вхождение подстроки
  • strpbrk() - Ищет в строке любой символ из заданного набора
  • substr() - Возвращает подстроку
  • preg_match() - Выполняет проверку на соответствие регулярному выражению


Находит последнее вхождение символа в строке

  • « strpos
  • strrev »
  • PHP Manual
  • Функции для работы со строками
  • Находит последнее вхождение символа в строке

strrchr

(PHP 4, PHP 5, PHP 7)

strrchr — Находит последнее вхождение символа в строке

Описание

strrchr ( string $haystack , mixed $needle ) : string

Возвращает подстроку строки haystack, начиная с последнего вхождения needle до конца строки.

Список параметров

haystack

Строка, в которой производится поиск

needle

Если needle состоит более чем из одного символа, используется только первый символ. Это поведение отличается от strstr().

Если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведен к строке, либо должен быть выполнен явный вызов chr().

Возвращаемые значения

Функция возвращает фрагмент строки, или FALSE, если подстрока needle не найдена.

Примеры

Пример #1 Пример использования strrchr()

<?php
// получить последнюю директорию из $PATH
$dir = substr(strrchr($PATH, ":"), 1);

// получить все после последнего перевода строки
$text = "Line 1\nLine 2\nLine 3";
$last = substr(strrchr($text, 10), 1 );
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • strstr() - Находит первое вхождение подстроки
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке


Переворачивает строку задом наперед

  • « strrchr
  • strripos »
  • PHP Manual
  • Функции для работы со строками
  • Переворачивает строку задом наперед

strrev

(PHP 4, PHP 5, PHP 7)

strrev — Переворачивает строку задом наперед

Описание

strrev ( string $string ) : string

Возвращает строку string, перевернутую задом наперед.

Список параметров

string

Переворачиваемая строка.

Возвращаемые значения

Возвращает перевернутую строку.

Примеры

Пример #1 Пример использования strrev()

<?php
echo strrev("Hello world!"); // выводит "!dlrow olleH"
?>


Возвращает позицию последнего вхождения подстроки без учета регистра

  • « strrev
  • strrpos »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает позицию последнего вхождения подстроки без учета регистра

strripos

(PHP 5, PHP 7)

strripos — Возвращает позицию последнего вхождения подстроки без учета регистра

Описание

strripos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int

Ищет позицию последнего вхождения подстроки needle в строку haystack.

В отличие от strrpos(), strripos() не учитывает регистр символов.

Список параметров

haystack

Строка, в которой производится поиск.

needle

Если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведен к строке, либо должен быть выполнен явный вызов chr().

offset

Если равно или больше ноля, то поиск будет идти слева направо и, при этом, будут пропущены первые offset байт строки haystack.

Если меньше ноля, то поиск будет идти справа налево. При этом будут отброшены offset байт с конца haystack и найдено первое найденное вхождение needle.

Замечание:

Фактически это будет последнее вхождение needle без учета offset последних байт.

Возвращаемые значения

Возвращает номер позиции последнего вхождения needle относительно начала строки haystack (независимо от направления поиска и смещения (offset)).

Замечание: Позиция в строке строки отсчитывается от 0, а не от 1.

Возвращает FALSE, если искомая строка не найдена.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #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)

Смотрите также

  • strpos() - Возвращает позицию первого вхождения подстроки
  • stripos() - Возвращает позицию первого вхождения подстроки без учета регистра
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • strrchr() - Находит последнее вхождение символа в строке
  • stristr() - Регистронезависимый вариант функции strstr
  • substr() - Возвращает подстроку


Возвращает позицию последнего вхождения подстроки в строке

  • « strripos
  • strspn »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает позицию последнего вхождения подстроки в строке

strrpos

(PHP 4, PHP 5, PHP 7)

strrpos — Возвращает позицию последнего вхождения подстроки в строке

Описание

strrpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int

Ищет позицию последнего вхождения подстроки needle в строку haystack.

Список параметров

haystack

Строка, в которой производится поиск.

needle

Если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведен к строке, либо должен быть выполнен явный вызов chr().

offset

Если равно или больше ноля, то поиск будет идти слева направо и, при этом, будут пропущены первые offset байт строки haystack.

Если меньше ноля, то поиск будет идти справа налево. При этом будут отброшены offset байт с конца haystack и найдено первое найденное вхождение needle.

Замечание:

Фактически это будет последнее вхождение needle без учета offset последних байт.

Возвращаемые значения

Возвращает номер позиции последнего вхождения needle относительно начала строки haystack (независимо от направления поиска и смещения (offset)).

Замечание: Позиция в строке строки отсчитывается от 0, а не от 1.

Возвращает FALSE, если искомая строка не найдена.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Проверка существования искомой строки

Легко ошибиться и перепутать возвращаемые значения в случаях "символ найден в нулевой позиции" и "символ не найден". Вот так можно узнать разницу:

<?php

$pos = strrpos($mystring, "b");
if ($pos === false) { // обратите внимание: три знака равенства
    // не найдено...
}

?>

Пример #2 Поиск со смещением

<?php
$foo = "0123456789a123456789b123456789c";

var_dump(strrpos($foo, '7', -5));  // Поиск происходит в обратном направлении и
                                   // начинается с пятой позиции с конца. Результат: int(17)

var_dump(strrpos($foo, '7', 20));  // Начинает поиск с 20 позиции в строке.
                                   // Результат: int(27)

var_dump(strrpos($foo, '7', 28));  // Результат: bool(false)
?>

Результат выполнения данного примера:

int(0)
bool(false)
int(27)
bool(false)
int(17)
bool(false)
int(29)

Смотрите также

  • strpos() - Возвращает позицию первого вхождения подстроки
  • stripos() - Возвращает позицию первого вхождения подстроки без учета регистра
  • strripos() - Возвращает позицию последнего вхождения подстроки без учета регистра
  • strrchr() - Находит последнее вхождение символа в строке
  • substr() - Возвращает подстроку


Возвращает длину участка в начале строки, полностью соответствующего маске

  • « strrpos
  • strstr »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает длину участка в начале строки, полностью соответствующего маске

strspn

(PHP 4, PHP 5, PHP 7)

strspn — Возвращает длину участка в начале строки, полностью соответствующего маске

Описание

strspn ( string $subject , string $mask [, int $start [, int $length ]] ) : int

Возвращает длину участка от начала строки subject, содержащий только символы из mask.

Если параметры start и length не указаны, то будет исследована вся строка subject. Если они указаны, то эффект будет аналогичен вызову strspn(substr($subject, $start, $length), $mask) (подробнее см. функцию substr).

Строка кода:

<?php
$var = strspn("42 - ответ на 128 вопрос.", "1234567890");
?>
присвоит 2 переменной $var, так как "42" - это начальный участок строки subject, состоящий только из символов "1234567890".

Список параметров

subject

Исследуемая строка.

mask

Список из разрешенных символов.

start

Позиция начала поиска в subject.

Если start указан и неотрицателен, то strspn() начнет искать в строке subject, начиная с позиции start. К примеру, в строке 'abcdef', символом с позицией 0 является 'a', символом с позицией 2 является 'c' и т.д.

Если start указан и отрицателен, то strspn() начнет поиск в строке subject с позиции, отстоящей на start символов с конца subject.

length

Длина исследуемого фрагмента subject.

Если length указан и неотрицателен, то строка subject будет исследована в течение length после стартовой позиции.

Если length указан и отрицателен, то строка subject будет исследована начиная со стартовой позиции до позиции, отстоящей на length символов с конца subject.

Возвращаемые значения

Возвращает длину первого участка subject, состоящего целиком из символов в mask.

Замечание:

Когда start указан, возращаемая длина строки определяется, начиная с этой позиции, а не с начала строки subject.

Примеры

Пример #1 Пример использования strspn()

<?php
// subject не начинается ни из какого символа из mask
var_dump(strspn("foo", "o"));

// проверить два символа из subject, начиная с позиции 1
var_dump(strspn("foo", "o", 1, 2));

// проверить один символ из subject, начиная с позиции 1
var_dump(strspn("foo", "o", 1, 1));
?>

Результат выполнения данного примера:

int(0)
int(2)
int(1)

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • strcspn() - Возвращает длину участка в начале строки, не соответствующего маске


Находит первое вхождение подстроки

  • « strspn
  • strtok »
  • PHP Manual
  • Функции для работы со строками
  • Находит первое вхождение подстроки

strstr

(PHP 4, PHP 5, PHP 7)

strstr — Находит первое вхождение подстроки

Описание

strstr ( string $haystack , mixed $needle [, bool $before_needle = FALSE ] ) : string

Возвращает подстроку строки haystack, начиная с первого вхождения needle (и включая его) и до конца строки haystack.

Замечание:

Эта функция учитывает регистр символов. Для поиска без учета регистра используйте stristr().

Замечание:

Если нужно лишь определить, встречается ли подстрока needle в haystack, используйте более быструю и менее ресурсоемкую функцию strpos().

Список параметров

haystack

Входная строка.

needle

Если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведен к строке, либо должен быть выполнен явный вызов chr().

before_needle

Если установлен в TRUE, strstr() возвращает часть строки haystack до первого вхождения needle (исключая needle).

Возвращаемые значения

Возвращает часть строки или FALSE, если needle не найдена.

Список изменений

Версия | Описание
5.3.0 | Добавлен необязательный параметр before_needle.

Примеры

Пример #1 Пример использования strstr()

<?php
$email  = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // выводит @example.com

$user = strstr($email, '@', true); // Начиная с PHP 5.3.0
echo $user; // выводит name
?>

Смотрите также

  • stristr() - Регистронезависимый вариант функции strstr
  • strrchr() - Находит последнее вхождение символа в строке
  • strpos() - Возвращает позицию первого вхождения подстроки
  • strpbrk() - Ищет в строке любой символ из заданного набора
  • preg_match() - Выполняет проверку на соответствие регулярному выражению


Разбивает строку на токены

  • « strstr
  • strtolower »
  • PHP Manual
  • Функции для работы со строками
  • Разбивает строку на токены

strtok

(PHP 4, PHP 5, PHP 7)

strtok — Разбивает строку на токены

Описание

strtok ( string $str , string $token ) : string
strtok ( string $token ) : string

strtok() разбивает строку str на подстроки (токены), используя в качестве разделителей символы из token. Например, строку "This is an example string" можно разбить на отдельные слова, используя пробел в качестве разделителя.

Заметьте, что исходная строка передается только при первом вызове этой функции. Последующим вызовам передаются только разделители, так как эта функция сохраняет исходную строку и запоминает позицию в этой строке между вызовами. Для работы с новой строкой нужно снова вызвать функцию с двумя аргументами. Обратите внимание, что в параметре token можно использовать несколько разделителей. Строка будет делиться по любому найденному символу, присутствующему в этом параметре.

Список параметров

str

Строка (string), разбиваемая на подстроки (токены).

token

Разделитель строки str.

Возвращаемые значения

Токен в виде строки (string).

Примеры

Пример #1 Пример использования strtok()

<?php
$string = "This is\tan example\nstring";
/* В качестве разделителей используем пробел, табуляцию и перевод строки */
$tok = strtok($string, " \n\t");

while ($tok !== false) {
    echo "Word=$tok<br />";
    $tok = strtok(" \n\t");
}
?>

Пример #2 Способ обработки пустых подстрок функцией strtok()

<?php
$first_token  = strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
?>

Результат выполнения данного примера:

    string(9) "something"
    bool(false)

Примечания

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Смотрите также

  • split() - Разбиение строки на массив по регулярному выражению
  • explode() - Разбивает строку с помощью разделителя


Преобразует строку в нижний регистр

  • « strtok
  • strtoupper »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует строку в нижний регистр

strtolower

(PHP 4, PHP 5, PHP 7)

strtolower — Преобразует строку в нижний регистр

Описание

strtolower ( string $string ) : string

Возвращает строку string, в которой все буквенные символы переведены в нижний регистр.

Принадлежность того или иного символа к буквенным определяется с учетом текущей локали. Это означает, что, например, в используемой по умолчанию локали "C", символ A не будет преобразован.

Список параметров

string

Входная строка.

Возвращаемые значения

Возвращает строку в нижнем регистре.

Примеры

Пример #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() - Приведение строки к нижнему регистру


Преобразует строку в верхний регистр

  • « strtolower
  • strtr »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует строку в верхний регистр

strtoupper

(PHP 4, PHP 5, PHP 7)

strtoupper — Преобразует строку в верхний регистр

Описание

strtoupper ( string $string ) : string

Возвращает строку string, в которой все буквенные символы переведены в верхний регистр.

Принадлежность того или иного символа к буквенным определяется с учетом текущей локали. Это означает, что, например, в используемой по умолчанию локали "C", символ a не будет преобразован.

Список параметров

string

Входная строка.

Возвращаемые значения

Возвращает строку в верхнем регистре.

Примеры

Пример #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() - Преобразует в верхний регистр первый символ каждого слова в строке
  • mb_strtoupper() - Приведение строки к верхнему регистру


Преобразует заданные символы или заменяет подстроки

  • « strtoupper
  • substr_compare »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует заданные символы или заменяет подстроки

strtr

(PHP 4, PHP 5, PHP 7)

strtr — Преобразует заданные символы или заменяет подстроки

Описание

strtr ( string $str , string $from , string $to ) : string
strtr ( string $str , array $replace_pairs ) : string

Если указаны три аргумента, эта функция возвращает копию str, в которой все вхождения каждого символа (однобайтного) из from были заменены на соответствующий символ в параметре to, то есть каждое вхождение из $from[$n] заменяется на $to[$n], где $n - это корректное смещение строки в обоих аргументах.

Если длины строк from и to отличаются, "лишние" символы в более длинной строке не используются. Длина возвращаемого значения будет такой же, как и длина str.

strtr() может вызываться с двумя аргументами. В этом случае from должен быть массивом (array), в форме array('from' => 'to', ...). Функция возвратит строку, в которой все ключи массива будут заменены их элементами. strtr() в первую очередь заменяет более длинные ключи, причем одна и та же строка поиска используется только один раз.

В этом случае, ключи и значения могут иметь любую длину, за исключением того, что ключи не должны быть пустыми. Кроме того, длина возвращаемого значения может отличаться от str. Однако, стоит учесть тот факт, что эта функция максимально эффективна в том случае, если все ключи имеют одинаковый размер.

Список параметров

str

Заменяемая строка (string).

from

Строка (string), которая будет заменена на строку to.

to

Строка (string), заменяющая строку from.

replace_pairs

Параметр replace_pairs может быть использован вместо to и from, в этом случае он является массивом (array) и имеет форму array('from' => 'to', ...).

Возвращаемые значения

Возвращает строку (string) с произведенными в ней заменами.

Если replace_pairs содержит ключ, являющийся пустой строкой (""), то будет возвращено значение FALSE. Если str не является скаляром, то он не преобразуется в строку. Вместо этого выдается предупреждение и возвращается NULL.

Примеры

Пример #1 Пример использования strtr()

<?php
//В этой форме strtr() осуществляет побайтное преобразование
//Таким образом, здесь подразумевается однобайтная кодировка:
$addr = strtr($addr, "aao", "aao");
?>

Следующий пример демонстрирует поведение функции strtr() при вызове только с двумя аргументами. Обратите внимание на приоритет замен ("h" не используется, так как существуют более длинные совпадения) и как замененный текст больше не участвует в поиске.

Пример #2 Пример использования strtr() с двумя аргументами

<?php
$trans = array("h" => "-", "hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>

Результат выполнения данного примера:

hello all, I said hi

Эти два режима довольно сильно различаются. При вызове strtr() с тремя аргументами заменяются байты, а при вызове с двумя аргументами могут быть заменены и более длинные подстроки.

Пример #3 Сравнение поведения функции strtr()

<?php
echo strtr("baab", "ab", "01"),"\n";

$trans = array("ab" => "01");
echo strtr("baab", $trans);
?>

Результат выполнения данного примера:

1001
ba01

Смотрите также

  • str_replace() - Заменяет все вхождения строки поиска на строку замены
  • preg_replace() - Выполняет поиск и замену по регулярному выражению


Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра

  • « strtr
  • substr_count »
  • PHP Manual
  • Функции для работы со строками
  • Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра

substr_compare

(PHP 5, PHP 7)

substr_compare — Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра

Описание

substr_compare ( string $main_str , string $str , int $offset [, int $length [, bool $case_insensitivity = FALSE ]] ) : int

substr_compare() сравнивает строку main_str (начиная с позиции offset) со строкой str. В сравнении участвуют максимум length символов.

Список параметров

main_str

Основная сравниваемая строка.

str

Следующая сравниваемая строка.

offset

Стартовая позиция сравнения. Если отрицательна, то обозначает смещение с конца строки.

length

Длина сравнения. По умолчанию используется максимальная из длин str и main_str минус offset.

case_insensitivity

Если case_insensitivity имеет значение TRUE, сравнение выполняется без учета регистра.

Возвращаемые значения

Возвращает отрицательное число, если строка main_str (начиная с символа offset) меньше, чем str; положительное число, если она больше str; 0, если строки равны. Если offset больше (до PHP 7.2.18, 7.3.5) или равен длине main_str или length передан и меньше 0 (или, д PHP 5.5.11, меньше 1), substr_compare() выводит предупреждение и возвращает FALSE.

Список изменений

Версия | Описание
7.2.18, 7.3.5 | offset теперь может быть равным main_str.
5.5.11 | length теперь может быть равной 0.
5.1.0 | Добавлена возможность использования отрицательных значений в offset.

Примеры

Пример #1 Пример использования substr_compare()

<?php
echo substr_compare("abcde", "bc", 1, 2); // 0
echo substr_compare("abcde", "de", -2, 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); // предупреждение
?>

Смотрите также

  • strncmp() - Бинарно-безопасное сравнение первых n символов строк


Возвращает число вхождений подстроки

  • « substr_compare
  • substr_replace »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает число вхождений подстроки

substr_count

(PHP 4, PHP 5, PHP 7)

substr_count — Возвращает число вхождений подстроки

Описание

substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] ) : int

substr_count() возвращает число вхождений подстроки needle в строку haystack. Заметьте, что параметр needle чувствителен к регистру.

Замечание:

Эта функция не подсчитывает перекрывающиеся подстроки. Смотрите пример ниже!

Список параметров

haystack

Строка, в которой ведется поиск

needle

Искомая подстрока

offset

Смещение начала отсчета. Если задано отрицательное значение, отсчет позиции будет произведен с конца строки.

length

Максимальная длина строки, в которой будет производится поиск подстроки после указанного смещения. Если сумма смещения и максимальной длины будет больше длины haystack, то будет выведено предупреждение. Отрицательное значение будет отсчитываться с конца haystack.

Возвращаемые значения

Эта функция возвращает целое число (integer).

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений offset и length. length теперь также может быть 0.
5.1.0 | Добавлены параметры offset и length

Примеры

Пример #1 Пример использования substr_count()

<?php
$text = 'This is a test';
echo strlen($text); // 14

echo substr_count($text, 'is'); // 2

// строка уменьшается до 's is a test', поэтому вывод будет 1
echo substr_count($text, 'is', 3);

// текст уменьшается до 's i', поэтому вывод будет 0
echo substr_count($text, 'is', 3, 3);

// генерирует предупреждение, так как  5+10 > 14
echo substr_count($text, 'is', 5, 10);

// выводит только 1, т.к. перекрывающиеся подстроки не учитываются
$text2 = 'gcdgcdgcd';
echo substr_count($text2, 'gcdgcd');
?>

Смотрите также

  • count_chars() - Возвращает информацию о символах, входящих в строку
  • strpos() - Возвращает позицию первого вхождения подстроки
  • substr() - Возвращает подстроку
  • strstr() - Находит первое вхождение подстроки


Заменяет часть строки

  • « substr_count
  • substr »
  • PHP Manual
  • Функции для работы со строками
  • Заменяет часть строки

substr_replace

(PHP 4, PHP 5, PHP 7)

substr_replace — Заменяет часть строки

Описание

substr_replace ( mixed $string , mixed $replacement , mixed $start [, mixed $length ] ) : mixed

substr_replace() заменяет часть строки string, начинающуюся с символа с порядковым номером start и (необязательной) длиной length, строкой replacement и возвращает результат.

Список параметров

string

Входная строка.

Также можно указать массив строк, в этом случае замены будут происходить с каждой предоставленной строкой. В этом случае параметры replacement, start и length могут быть как скалярными значениями - в этом случае эти значения будут применены к каждой строке, так и массивами - в этом случае соответствующие элементы массивов будут применены к каждой предоставленной строке.

replacement

Строка замены.

start

Если start положителен, замена начинается с символа с порядковым номером start строки string.

Если start отрицателен, замена начинается с символа с порядковым номером start, считая от конца строки string.

length

Если аргумент положителен, то он представляет собой длину заменяемой подстроки в строке string. Если этот аргумент отрицательный, он определяет количество символов от конца строки string, на которых заканчивается замена. Этот аргумент необязателен и по умолчанию равен strlen(string);, то есть замена до конца строки string. Разумеется, если length равен нулю, то это эквивалентно вставке replacement в string на указанной позиции start.

Возвращаемые значения

Возвращает результирующую строку. Если 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' в $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";
?>

Пример #2 Использование substr_replace() для одновременной множественной замены строк

<?php
$input = array('A: XXX', 'B: XXX', 'C: XXX');

// Простой случай: заменяем XXX на YYY в каждой строке.
echo implode('; ', substr_replace($input, 'YYY', 3, 3))."\n";

// Более сложный случай с уникальными заменами.
$replace = array('AAA', 'BBB', 'CCC');
echo implode('; ', substr_replace($input, $replace, 3, 3))."\n";

// Замены с разными количествами символов.
$length = array(1, 2, 3);
echo implode('; ', substr_replace($input, $replace, 3, $length))."\n";
?>

Результат выполнения данного примера:

A: YYY; B: YYY; C: YYY
A: AAA; B: BBB; C: CCC
A: AAAXX; B: BBBX; C: CCC

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • str_replace() - Заменяет все вхождения строки поиска на строку замены
  • substr() - Возвращает подстроку
  • Доступ к символу в строке и его изменение


Возвращает подстроку

  • « substr_replace
  • trim »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает подстроку

substr

(PHP 4, PHP 5, PHP 7)

substr — Возвращает подстроку

Описание

substr ( string $string , int $start [, int $length ] ) : string

Возвращает подстроку строки string, начинающейся с start символа по счету и длиной length символов.

Список параметров

string

Входная строка.

start

Если start неотрицателен, возвращаемая подстрока начинается с позиции start от начала строки, считая от нуля. Например, в строке 'abcdef', в позиции 0 находится символ 'a', в позиции 2 - символ 'c', и т.д.

Если start отрицательный, возвращаемая подстрока начинается с позиции, отстоящей на start символов от конца строки string.

Если string меньше start символов, будет возвращено FALSE.

Пример #1 Использование отрицательного параметра start

<?php
$rest = substr("abcdef", -1);    // возвращает "f"
$rest = substr("abcdef", -2);    // возвращает "ef"
$rest = substr("abcdef", -3, 1); // возвращает "d"
?>

length

Если length положительный, возвращаемая строка будет не длиннее length символов, начиная с параметра start (в зависимости от длины string).

Если length отрицательный, то будет отброшено указанное этим аргументом число символов с конца строки string (после того как будет вычислена стартовая позиция, если start отрицателен). Если при этом позиция начала подстроки, определяемая аргументом start, находится в отброшенной части строки или за ней, возвращается FALSE.

Если указан параметр length и является одним из 0, FALSE или NULL, то будет возвращена пустая строка.

Если параметр length опущен, то будет возвращена подстрока, начинающаяся с позиции, указанной параметром start и длящейся до конца строки.

Пример #2 Использование отрицательного параметра length

<?php
$rest = substr("abcdef", 0, -1);  // возвращает "abcde"
$rest = substr("abcdef", 2, -1);  // возвращает "cde"
$rest = substr("abcdef", 4, -4);  // возвращает false
$rest = substr("abcdef", -3, -1); // возвращает "de"
?>

Возвращаемые значения

Возвращает извлеченную часть параметра string; или FALSE в случае возникновения ошибки или пустую строку.

Список изменений

Версия | Описание
7.0.0 | Если длина строки string равна количеству символов, указанному в start, то возвращается пустая строка. До этой версии в этом случае возвращалась FALSE.
5.2.2 - 5.2.6 | Если параметр start указывает на позицию с отрицательной обрезкой, возвращается FALSE. Другие версии возвращают строку с начала.

Примеры

Пример #3 Базовое использование substr()

<?php
echo substr('abcdef', 1);     // bcdef
echo substr('abcdef', 1, 3);  // bcd
echo substr('abcdef', 0, 4);  // abcd
echo substr('abcdef', 0, 8);  // abcdef
echo substr('abcdef', -1, 1); // f

// Получить доступ к отдельному символу в строке
// можно также с помощью квадратных скобок
$string = 'abcdef';
echo $string[0];                 // a
echo $string[3];                 // d
echo $string[strlen($string)-1]; // f

?>

Пример #4 substr() и приведение типов

<?php
class apple {
    public function __toString() {
        return "green";
    }
}

echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL;
echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL;
echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL;
echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL;
echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL;
echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL;
echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL;
?>

Результат выполнения данного примера в PHP 7:

1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) ''
6) ''
7) '1200'

Результат выполнения данного примера в PHP 5:

1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) false
6) false
7) '1200'

Ошибки

Возвращает FALSE в случае ошибки.

<?php
var_dump(substr('a', 2)); // bool(false)
?>

Смотрите также

  • strrchr() - Находит последнее вхождение символа в строке
  • substr_replace() - Заменяет часть строки
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • trim() - Удаляет пробелы (или другие символы) из начала и конца строки
  • mb_substr() - Возвращает часть строки
  • wordwrap() - Переносит строку по указанному количеству символов
  • Посимвольный доступ и изменение строки


Удаляет пробелы (или другие символы) из начала и конца строки

  • « substr
  • ucfirst »
  • PHP Manual
  • Функции для работы со строками
  • Удаляет пробелы (или другие символы) из начала и конца строки

trim

(PHP 4, PHP 5, PHP 7)

trim — Удаляет пробелы (или другие символы) из начала и конца строки

Описание

trim ( string $str [, string $character_mask = " \t\n\r\0\x0B" ] ) : string

Эта функция возвращает строку 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)), вертикальная табуляция.

Список параметров

str

Обрезаемая строка (string).

character_mask

Можно также задать список символов для удаления с помощью необязательного аргумента character_mask. Просто перечислите все символы, которые вы хотите удалить. Можно указать конструкцию .. для обозначения диапазона символов.

Возвращаемые значения

Обрезаемая строка.

Примеры

Пример #1 Пример использования trim()

<?php

$text   = "\t\tThese are a few words :) ...  ";
$binary = "\x09Example string\x0A";
$hello  = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = trim($text);
var_dump($trimmed);

$trimmed = trim($text, " \t.");
var_dump($trimmed);

$trimmed = trim($hello, "Hdle");
var_dump($trimmed);

$trimmed = trim($hello, 'HdWr');
var_dump($trimmed);

// удаляем управляющие ASCII-символы с начала и конца $binary
// (от 0 до 31 включительно)
$clean = trim($binary, "\x00..\x1F");
var_dump($clean);

?>

Результат выполнения данного примера:

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(28) "These are a few words :) ..."
string(24) "These are a few words :)"
string(5) "o Wor"
string(9) "ello Worl"
string(14) "Example string"

Пример #2 Обрезание значений массива с помощью trim()

<?php
function trim_value(&$value)
{
    $value = trim($value);
}

$fruit = array('apple','banana ', ' cranberry ');
var_dump($fruit);

array_walk($fruit, 'trim_value');
var_dump($fruit);

?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(7) "banana "
  [2]=>
  string(11) " cranberry "
}
array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(6) "banana"
  [2]=>
  string(9) "cranberry"
}

Примечания

Замечание: Возможные трюки: удаление символов из середины строки

Так как trim() удаляет символы с начала и конца строки string, то удаление (или неудаление) символов из середины строки может ввести в недоумение. trim('abc', 'bad') удалит как 'a', так и 'b', потому что удаление 'a' сдвинет 'b' к началу строки, что также позволит ее удалить. Вот почему это "работает", тогда как trim('abc', 'b') очевидно нет.

Смотрите также

  • ltrim() - Удаляет пробелы (или другие символы) из начала строки
  • rtrim() - Удаляет пробелы (или другие символы) из конца строки
  • str_replace() - Заменяет все вхождения строки поиска на строку замены


Преобразует первый символ строки в верхний регистр

  • « trim
  • ucwords »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует первый символ строки в верхний регистр

ucfirst

(PHP 4, PHP 5, PHP 7)

ucfirst — Преобразует первый символ строки в верхний регистр

Описание

ucfirst ( string $str ) : string

Возвращает строку str, в которой первый символ переведен в верхний регистр, если этот символ является буквой.

Принадлежность того или иного символа к буквенным определяется с учетом текущей локали. Это означает, что, например, в используемой по умолчанию локали "C", символ a не будет преобразован.

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает результирующую строку.

Примеры

Пример #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!
?>

Смотрите также

  • lcfirst() - Преобразует первый символ строки в нижний регистр
  • strtolower() - Преобразует строку в нижний регистр
  • strtoupper() - Преобразует строку в верхний регистр
  • ucwords() - Преобразует в верхний регистр первый символ каждого слова в строке


Преобразует в верхний регистр первый символ каждого слова в строке

  • « ucfirst
  • vfprintf »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует в верхний регистр первый символ каждого слова в строке

ucwords

(PHP 4, PHP 5, PHP 7)

ucwords — Преобразует в верхний регистр первый символ каждого слова в строке

Описание

ucwords ( string $str [, string $delimiters = " \t\r\n\f\v" ] ) : string

Возвращает строку str, в которой первый символ каждого слова переведен в верхний регистр, если этот символ является буквой.

Словом при этом является любая последовательность символов, следующая непосредственно за любым из символов, перечисленных в параметре delimiters (по умолчанию это пробел, разрыв страницы, перевод строки, возврат каретки, горизонтальная или вертикальная табуляция).

Список параметров

str

Входная строка.

delimiters

Необязательный параметр delimiters содержит символы разделителей слов.

Возвращаемые значения

Возвращает модифицированную строку.

Список изменений

Версия | Описание
5.4.32, 5.5.16 | Добавлен параметр delimiters.

Примеры

Пример #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!
?>

Пример #2 Пример ucwords() с заданным разделителем

<?php
$foo = 'hello|world!';
$bar = ucwords($foo);             // Hello|world!

$baz = ucwords($foo, "|");        // Hello|World!
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • strtoupper() - Преобразует строку в верхний регистр
  • strtolower() - Преобразует строку в нижний регистр
  • ucfirst() - Преобразует первый символ строки в верхний регистр
  • mb_convert_case() - Производит смену регистра символов в строке


Записывает отформатированную строку в поток

  • « ucwords
  • vprintf »
  • PHP Manual
  • Функции для работы со строками
  • Записывает отформатированную строку в поток

vfprintf

(PHP 5, PHP 7)

vfprintf — Записывает отформатированную строку в поток

Описание

vfprintf ( resource $handle , string $format , array $args ) : int

Записывает строку, отформатированную в соответствии с параметром format в поток handle.

Данная функция похожа на fprintf(), но принимает не переменное число аргументов, а массив.

Список параметров

handle

format

Строка формата состоит из нуля или более директив: обычные символы (за исключением %), которые просто выводятся без изменения и спецификаторы преобразования, каждый из которых требует передачи своего параметра.

Спецификаторы преобразования имеют следующий формат: %[argnum$][flags][width][.precision]specifier.

Argnum

Целое число, за которым следует знак доллара $, чтобы указать, какой числовой аргумент обрабатывать при преобразовании.

Флаги
Флаг | Описание
- Выравнивание по левому краю в пределах заданной ширины поля; По умолчанию выравнивание происходит по правому краю.
+ Печатает плюс + у не отрицательных чисел; По умолчанию знак печатается только у отрицательных чисел.
(space) | Дополняет результат пробелами. Это поведение по умолчанию.
0 | Дополняет числа нулями (только слева). Со спецификатором s также может дополнять нулями справа.
'(char) | Дополняет результат символом (char).

Ширина

Целое число, определяющее минимальное количество символов, которое будет напечатано.

Точность

Точка . с последующим целым числом, работающая по разному для разных спецификаторов:

  • Для спецификаторов e, E, f и F: задает количество цифр после десятичной запятой (по умолчанию 6).
  • Для спецификаторов g и G: задает максимальное значение печатаемых значащих цифр.
  • Для спецификатора s: задает ограничение максимального количества символов в строке, которые будут выведены.

Замечание: Если указана точка без последующего значения точности, то точность будет считаться за 0.

Замечание: Попытка использовать спецификатор позиции со значением больше, чем PHP_INT_MAX приведет к выводу предупреждения.

Спецификаторы
Спецификатор | Описание
% Символ процента. Аргументы не требуются.
b | Аргумент рассматривается как целое число и печатается в бинарном представлении.
c | Аргумент рассматривается как целое число и печатается как символ из таблицы ASCII с соответствующим кодом.
d | Аргумент рассматривается как целое число и печатается как целое число со знаком.
e | Аргумент считается за число в научной нотации (т.е. 1.2e+2). Начиная с PHP 5.2.1, спецификатор точности задает количество цифр после десятичной запятой. В более ранних версиях он задавал общее количество значащих цифр (т.е. после запятой выводилось на 1 символ меньше).
E | Аналогично спецификатору e, но использует заглавные символы (т.е. 1.2E+2).
f | Аргумент считается за число с плавающей точкой (с учетом локали).
F | Аргумент считается за число с плавающей точкой (без учета локали). Доступно с PHP 5.0.3.
g

Общий формат.

Пусть P равно точности, если она не равно нулю, 6 - если точность не задана и 1, если точность задана как 0. Тогда, если преобразование со стилем "E" будет иметь показатель степени X:

Если P > X ? ?4, преобразование будет в стиле "f" и точность будет P ? (X + 1). В обратном случае, преобразование будет в стиле "e" и точность будет P ? 1.

G | Аналогично спецификатору g, но использует E и F.
o | Аргумент рассматривается как целое число и печатается в восмеричном представлении.
s | Аргумент рассматривается и печатается как строка.
u | Аргумент рассматривается как целое число и печатается как беззаковое целое число.
x | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в нижнем регистре).
X | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в верхнем регистре).

Внимание

Спецификатор c игнорирует значения ширины и дополнения

Внимание

Попытка использовать спецификаторы с указанием ширины для строки в многобайтовой кодировке может привести к неожиданным результатам.

Переменные будут приведены к подходящему для спецификатора типу:

Обработка типов
Тип | Спецификатор
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

args

Возвращаемые значения

Возвращает длину выведенной строки.

Примеры

Пример #1 vfprintf(): дополнение нулями целых чисел

<?php
if (!($fp = fopen('date.txt', 'w')))
    return;

vfprintf($fp, "%04d-%02d-%02d", array($year, $month, $day));
// запишет дату в формате ISO в date.txt
?>

Смотрите также

  • printf() - Выводит отформатированную строку
  • sprintf() - Возвращает отформатированную строку
  • fprintf() - Записывает отформатированную строку в поток
  • vprintf() - Выводит отформатированную строку
  • vsprintf() - Возвращает отформатированную строку
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • fscanf() - Обрабатывает данные из файла в соответствии с форматом
  • number_format() - Форматирует число с разделением групп
  • date() - Форматирует вывод системной даты/времени


Выводит отформатированную строку

  • « vfprintf
  • vsprintf »
  • PHP Manual
  • Функции для работы со строками
  • Выводит отформатированную строку

vprintf

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

vprintf — Выводит отформатированную строку

Описание

vprintf ( string $format , array $args ) : int

Выводит значения массива, отформатированные в соответствии с аргументом format, описанном в документации функции sprintf().

Работает как printf(), но принимает не переменное число аргументов, а массив.

Список параметров

format

Строка формата состоит из нуля или более директив: обычные символы (за исключением %), которые просто выводятся без изменения и спецификаторы преобразования, каждый из которых требует передачи своего параметра.

Спецификаторы преобразования имеют следующий формат: %[argnum$][flags][width][.precision]specifier.

Argnum

Целое число, за которым следует знак доллара $, чтобы указать, какой числовой аргумент обрабатывать при преобразовании.

Флаги
Флаг | Описание
- Выравнивание по левому краю в пределах заданной ширины поля; По умолчанию выравнивание происходит по правому краю.
+ Печатает плюс + у не отрицательных чисел; По умолчанию знак печатается только у отрицательных чисел.
(space) | Дополняет результат пробелами. Это поведение по умолчанию.
0 | Дополняет числа нулями (только слева). Со спецификатором s также может дополнять нулями справа.
'(char) | Дополняет результат символом (char).

Ширина

Целое число, определяющее минимальное количество символов, которое будет напечатано.

Точность

Точка . с последующим целым числом, работающая по разному для разных спецификаторов:

  • Для спецификаторов e, E, f и F: задает количество цифр после десятичной запятой (по умолчанию 6).
  • Для спецификаторов g и G: задает максимальное значение печатаемых значащих цифр.
  • Для спецификатора s: задает ограничение максимального количества символов в строке, которые будут выведены.

Замечание: Если указана точка без последующего значения точности, то точность будет считаться за 0.

Замечание: Попытка использовать спецификатор позиции со значением больше, чем PHP_INT_MAX приведет к выводу предупреждения.

Спецификаторы
Спецификатор | Описание
% Символ процента. Аргументы не требуются.
b | Аргумент рассматривается как целое число и печатается в бинарном представлении.
c | Аргумент рассматривается как целое число и печатается как символ из таблицы ASCII с соответствующим кодом.
d | Аргумент рассматривается как целое число и печатается как целое число со знаком.
e | Аргумент считается за число в научной нотации (т.е. 1.2e+2). Начиная с PHP 5.2.1, спецификатор точности задает количество цифр после десятичной запятой. В более ранних версиях он задавал общее количество значащих цифр (т.е. после запятой выводилось на 1 символ меньше).
E | Аналогично спецификатору e, но использует заглавные символы (т.е. 1.2E+2).
f | Аргумент считается за число с плавающей точкой (с учетом локали).
F | Аргумент считается за число с плавающей точкой (без учета локали). Доступно с PHP 5.0.3.
g

Общий формат.

Пусть P равно точности, если она не равно нулю, 6 - если точность не задана и 1, если точность задана как 0. Тогда, если преобразование со стилем "E" будет иметь показатель степени X:

Если P > X ? ?4, преобразование будет в стиле "f" и точность будет P ? (X + 1). В обратном случае, преобразование будет в стиле "e" и точность будет P ? 1.

G | Аналогично спецификатору g, но использует E и F.
o | Аргумент рассматривается как целое число и печатается в восмеричном представлении.
s | Аргумент рассматривается и печатается как строка.
u | Аргумент рассматривается как целое число и печатается как беззаковое целое число.
x | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в нижнем регистре).
X | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в верхнем регистре).

Внимание

Спецификатор c игнорирует значения ширины и дополнения

Внимание

Попытка использовать спецификаторы с указанием ширины для строки в многобайтовой кодировке может привести к неожиданным результатам.

Переменные будут приведены к подходящему для спецификатора типу:

Обработка типов
Тип | Спецификатор
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

args

Возвращаемые значения

Возвращает длину выведенной строки.

Примеры

Пример #1 vprintf(): дополнение нулями целых чисел

<?php
vprintf("%04d-%02d-%02d", explode('-', '1988-8-1'));
?>

Результат выполнения данного примера:

1988-08-01

Смотрите также

  • printf() - Выводит отформатированную строку
  • sprintf() - Возвращает отформатированную строку
  • fprintf() - Записывает отформатированную строку в поток
  • vsprintf() - Возвращает отформатированную строку
  • vfprintf() - Записывает отформатированную строку в поток
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • fscanf() - Обрабатывает данные из файла в соответствии с форматом
  • number_format() - Форматирует число с разделением групп
  • date() - Форматирует вывод системной даты/времени


Возвращает отформатированную строку

  • « vprintf
  • wordwrap »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает отформатированную строку

vsprintf

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

vsprintf — Возвращает отформатированную строку

Описание

vsprintf ( string $format , array $args ) : string

Работает как sprintf(), но принимает не переменное число аргументов, а массив.

Список параметров

format

Строка формата состоит из нуля или более директив: обычные символы (за исключением %), которые просто выводятся без изменения и спецификаторы преобразования, каждый из которых требует передачи своего параметра.

Спецификаторы преобразования имеют следующий формат: %[argnum$][flags][width][.precision]specifier.

Argnum

Целое число, за которым следует знак доллара $, чтобы указать, какой числовой аргумент обрабатывать при преобразовании.

Флаги
Флаг | Описание
- Выравнивание по левому краю в пределах заданной ширины поля; По умолчанию выравнивание происходит по правому краю.
+ Печатает плюс + у не отрицательных чисел; По умолчанию знак печатается только у отрицательных чисел.
(space) | Дополняет результат пробелами. Это поведение по умолчанию.
0 | Дополняет числа нулями (только слева). Со спецификатором s также может дополнять нулями справа.
'(char) | Дополняет результат символом (char).

Ширина

Целое число, определяющее минимальное количество символов, которое будет напечатано.

Точность

Точка . с последующим целым числом, работающая по разному для разных спецификаторов:

  • Для спецификаторов e, E, f и F: задает количество цифр после десятичной запятой (по умолчанию 6).
  • Для спецификаторов g и G: задает максимальное значение печатаемых значащих цифр.
  • Для спецификатора s: задает ограничение максимального количества символов в строке, которые будут выведены.

Замечание: Если указана точка без последующего значения точности, то точность будет считаться за 0.

Замечание: Попытка использовать спецификатор позиции со значением больше, чем PHP_INT_MAX приведет к выводу предупреждения.

Спецификаторы
Спецификатор | Описание
% Символ процента. Аргументы не требуются.
b | Аргумент рассматривается как целое число и печатается в бинарном представлении.
c | Аргумент рассматривается как целое число и печатается как символ из таблицы ASCII с соответствующим кодом.
d | Аргумент рассматривается как целое число и печатается как целое число со знаком.
e | Аргумент считается за число в научной нотации (т.е. 1.2e+2). Начиная с PHP 5.2.1, спецификатор точности задает количество цифр после десятичной запятой. В более ранних версиях он задавал общее количество значащих цифр (т.е. после запятой выводилось на 1 символ меньше).
E | Аналогично спецификатору e, но использует заглавные символы (т.е. 1.2E+2).
f | Аргумент считается за число с плавающей точкой (с учетом локали).
F | Аргумент считается за число с плавающей точкой (без учета локали). Доступно с PHP 5.0.3.
g

Общий формат.

Пусть P равно точности, если она не равно нулю, 6 - если точность не задана и 1, если точность задана как 0. Тогда, если преобразование со стилем "E" будет иметь показатель степени X:

Если P > X ? ?4, преобразование будет в стиле "f" и точность будет P ? (X + 1). В обратном случае, преобразование будет в стиле "e" и точность будет P ? 1.

G | Аналогично спецификатору g, но использует E и F.
o | Аргумент рассматривается как целое число и печатается в восмеричном представлении.
s | Аргумент рассматривается и печатается как строка.
u | Аргумент рассматривается как целое число и печатается как беззаковое целое число.
x | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в нижнем регистре).
X | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в верхнем регистре).

Внимание

Спецификатор c игнорирует значения ширины и дополнения

Внимание

Попытка использовать спецификаторы с указанием ширины для строки в многобайтовой кодировке может привести к неожиданным результатам.

Переменные будут приведены к подходящему для спецификатора типу:

Обработка типов
Тип | Спецификатор
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

args

Возвращаемые значения

Возвращает значения массива в виде строки, отформатированной в соответствии с параметром format, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 vsprintf(): дополнение нулями целых чисел

<?php
print vsprintf("%04d-%02d-%02d", explode('-', '1988-8-1'));
?>

Результат выполнения данного примера:

1988-08-01

Смотрите также

  • printf() - Выводит отформатированную строку
  • sprintf() - Возвращает отформатированную строку
  • fprintf() - Записывает отформатированную строку в поток
  • vprintf() - Выводит отформатированную строку
  • vfprintf() - Записывает отформатированную строку в поток
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • fscanf() - Обрабатывает данные из файла в соответствии с форматом
  • number_format() - Форматирует число с разделением групп
  • date() - Форматирует вывод системной даты/времени


Переносит строку по указанному количеству символов

  • « vsprintf
  • Список изменений »
  • PHP Manual
  • Функции для работы со строками
  • Переносит строку по указанному количеству символов

wordwrap

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

wordwrap — Переносит строку по указанному количеству символов

Описание

wordwrap ( string $str [, int $width = 75 [, string $break = "\n" [, bool $cut = FALSE ]]] ) : string

Переносит строку по указанному количеству символов.

Список параметров

str

Входная строка.

width

Количество символов, по которым строка будет перенесена.

break

Символ переноса строки можно указать с помощью необязательного параметра break.

cut

Если параметр cut установлен в TRUE, строка всегда будет переноситься на указанной ширине width или раньше. Поэтому, если исходная строка содержит слово длиннее заданной ширины строки, то оно будет разорвано. (Смотрите второй пример). Если установлен в FALSE, функция не разделяет слово, даже если width меньше длины слова.

Возвращаемые значения

Возвращает строку со вставленными символами переноса на указанной длине.

Примеры

Пример #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 = "A very long woooooooooooord.";
$newtext = wordwrap($text, 8, "\n", true);

echo "$newtext\n";
?>

Результат выполнения данного примера:

A very
long
wooooooo
ooooord.

Пример #3 Пример использования wordwrap()

<?php
$text = "A very long woooooooooooooooooord. and something";
$newtext = wordwrap($text, 8, "\n", false);

echo "$newtext\n";
?>

Результат выполнения данного примера:

A very
long
woooooooooooooooooord.
and
something

Смотрите также

  • nl2br() - Вставляет HTML-код разрыва строки перед каждым переводом строки
  • chunk_split() - Разбивает строку на фрагменты


Список изменений

Следующие изменения были произведены с классами/функциями/методами данного расширения.

Version | Function | Description
7.4.0 | implode | Передача glue после pieces (т.е. использование недокументированного порядка параметров) устарела.
 | str_getcsv | Теперь пустой параметр escape будет интерпретироваться как требование отключения проприетарного механизма экранирования. Ранее пустая строка обозначала использование символа экранирования по умолчанию.
7.2.18, 7.3.5 | substr_compare | offset теперь может быть равным main_str.
7.2.0 | number_format | number_format была изменена, чтобы не возвращать -0, ранее -0 могло быть возвращено в случаях, когда number был -0.01.
 | parse_str | Использование parse_str без второго параметра будет вызывать ошибку уровня E_DEPRECATED.
7.1.0 | str_shuffle | Внутренний алгоритм получения случайных чисел изменен с функции rand библиотеки libc на генератор на базе Вихря Мерсена.
 | stripos | Добавлена поддержка отрицательных значений offset.
 | strpos | Добавлена поддержка отрицательных значений offset.
 | substr_count | Добавлена поддержка отрицательных значений offset и length. length теперь также может быть 0.
7.0.0 | setlocale | Удалена поддержка для параметра category, передаваемого как строка. С текущей версии можно пользоваться только константами LC_*.
 | substr | Если длина строки string равна количеству символов, указанному в start, то возвращается пустая строка. До этой версии в этом случае возвращалась FALSE.
5.6.5 | crypt | Теперь, если в параметр salt передано неправильное значение "*0", то будет возвращаться "*1" согласно другим криптографическим реализациям. До этой версии PHP 5.6 возвращал хеш DES.
5.6.0 | crypt | Если параметр salt пропущен, то вызывается предупреждение E_NOTICE.
 | html_entity_decode | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
 | htmlentities | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
 | htmlspecialchars | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
5.5.21 | crypt | Теперь, если в параметр salt передано неправильное значение "*0", то теперь возвращается "*1" согласно другим криптографическим реализациям. До этой версии PHP 5.5 (и другие ветки) возвращал хеш DES.
5.5.11 | substr_compare | length теперь может быть равной 0.
5.5.1 | hex2bin | Если входная строка не является правильной шестнадцатеричной строкой, то будет выброшено предупреждение.
5.4.32, 5.5.16 | ucwords | Добавлен параметр delimiters.
5.4.4 | hex2bin | Если строка имеет нечетную длину, выбрасывается предупреждение. В PHP 5.4.0 такая строка принималась, а последний байт просто обрезался.
5.4.0 | get_html_translation_table | Были добавлены константы ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
 | get_html_translation_table | Значение по умолчанию для параметра encoding было изменено на UTF-8.
 | html_entity_decode | Кодировка по умолчанию сменилась с ISO-8859-1 на UTF-8.
 | html_entity_decode | Были добавлены константы ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
 | htmlentities | Значение по умолчанию для параметра encoding было изменено на UTF-8.
 | htmlentities | Добавлены константы ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
 | htmlspecialchars | Значение по умолчанию для параметра encoding было изменено на UTF-8.
 | htmlspecialchars | Добавлены константы ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
 | htmlspecialchars_decode | Добавлены константы ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
 | number_format | Функция поддерживает многобайтовую строку в качестве параметров dec_point и thousands_sep. В предыдущих версиях в качестве разделителя использовался только первый байт из каждого параметра.
5.3.7 | crypt | Добавлены $2x$ и $2y$ режимы Blowfish для предотвращения возможных "high-bit" атак.
5.3.4 | get_html_translation_table | Добавлен параметр encoding.
 | strip_tags | strip_tags игнорирует самозакрывающиеся теги XHTML в allowable_tags.
5.3.2 | crypt | Исправлено поведение Blowfish при некорректных раундах: теперь возвращается "ошибочная" строка ("*0" или "*1") вместо отката к использованию DES.
 | crypt | Добавлено хеширование алгоритмами SHA-256 и SHA-512, основанное на реализации Ульриха Дреппера (Ulrich Drepper).
5.3.0 | crypt | PHP теперь использует собственную реализацию MD5, стандартного DES, расширенного DES и Blowfish алгоритмов, которые будут использованы в случае отсутствия их поддержки в системе.
 | htmlentities | Добавлена константа ENT_IGNORE.
 | htmlspecialchars | Добавлена константа ENT_IGNORE.
 | nl2br | Добавлен необязательный параметр is_xhtml.
 | setlocale | Эта функция в настоящее время бросает уведомления E_DEPRECATED, если строка передается в параметре category вместо одной из констант LC_*.
 | stristr | Добавлен необязательный параметр before_needle.
 | strlen | Ранние версии этой функции рассматривали массивы как строку Array, возвращая таким образом 5 в качестве длины этой строки и вызывали ошибку уровня E_NOTICE.
 | strstr | Добавлен необязательный параметр before_needle.
5.2.5 | addcslashes | Добавлены экранирующие последовательности \v и \f.
5.2.3 | htmlentities | Добавлен параметр double_encode.
 | htmlspecialchars | Добавлен параметр double_encode.
5.2.2 - 5.2.6 | substr | Если параметр start указывает на позицию с отрицательной обрезкой, возвращается FALSE. Другие версии возвращают строку с начала.
5.1.0 | explode | Добавлена поддержка отрицательных значений limit
 | md5_file | Функция изменена для работы с потоковым API. Это означает, что ее можно использовать с обертками, например, так: md5_file('http://example.com/..')
 | sha1_file | Функция теперь работает с потоковым API. Это означает, что ее можно использовать с обертками, например, sha1_file('http://example.com/..')
 | str_word_count | Добавлен параметр charlist
 | substr_compare | Добавлена возможность использования отрицательных значений в offset.
 | substr_count | Добавлены параметры offset и length


Расширения, относящиеся к переменным и типам

  • Массивы
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Сортировка массивов
    • Функции для работы с массивами
  • Классы и объекты — Информация о классе и объекте
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции работы с классами и объектами
  • Classkit
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • classkit
  • Ctype — Функции определения типа символов
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Ctype
  • Filter — Фильтрация данных
    • Введение
    • Установка и настройка
    • Типы фильтров
    • Предопределенные константы
    • Примеры
    • Функции фильтрации данных
  • Управление функциями
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции управления функциями
  • Quickhash
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • QuickHashIntSet — Класс QuickHashIntSet
    • QuickHashIntHash — Класс QuickHashIntHash
    • QuickHashStringIntHash — Класс QuickHashStringIntHash
    • QuickHashIntStringHash — Класс QuickHashIntStringHash
  • Reflection
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Расширение
    • Reflection — Класс Reflection
    • ReflectionClass — Класс ReflectionClass
    • ReflectionClassConstant — Класс ReflectionClassConstant
    • ReflectionZendExtension — Класс ReflectionZendExtension
    • ReflectionExtension — Класс ReflectionExtension
    • ReflectionFunction — Класс ReflectionFunction
    • ReflectionFunctionAbstract — Класс ReflectionFunctionAbstract
    • ReflectionMethod — Класс ReflectionMethod
    • ReflectionNamedType — Класс ReflectionNamedType
    • ReflectionObject — Класс ReflectionObject
    • ReflectionParameter — Класс ReflectionParameter
    • ReflectionProperty — Класс ReflectionProperty
    • ReflectionType — Класс ReflectionType
    • ReflectionGenerator — Класс ReflectionGenerator
    • Reflector — Интерфейс Reflector
    • ReflectionException — Класс ReflectionException
  • Обработка переменных
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции для работы с переменными


Массивы

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Сортировка массивов
  • Функции для работы с массивами
    • array_change_key_case — Меняет регистр всех ключей в массиве
    • array_chunk — Разбивает массив на части
    • array_column — Возвращает массив из значений одного столбца входного массива
    • array_combine — Создает новый массив, используя один массив в качестве ключей, а другой для его значений
    • array_count_values — Подсчитывает количество всех значений массива
    • array_diff_assoc — Вычисляет расхождение массивов с дополнительной проверкой индекса
    • array_diff_key — Вычисляет расхождение массивов, сравнивая ключи
    • array_diff_uassoc — Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
    • array_diff_ukey — Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей
    • array_diff — Вычислить расхождение массивов
    • array_fill_keys — Создает массив и заполняет его значениями с определенными ключами
    • array_fill — Заполняет массив значениями
    • array_filter — Фильтрует элементы массива с помощью callback-функции
    • array_flip — Меняет местами ключи с их значениями в массиве
    • array_intersect_assoc — Вычисляет схождение массивов с дополнительной проверкой индекса
    • array_intersect_key — Вычислить пересечение массивов, сравнивая ключи
    • array_intersect_uassoc — Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
    • array_intersect_ukey — Вычисляет схождение массивов, используя callback-функцию для сравнения ключей
    • array_intersect — Вычисляет схождение массивов
    • array_key_exists — Проверяет, присутствует ли в массиве указанный ключ или индекс
    • array_key_first — Получает первый ключ массива
    • array_key_last — Получает последний ключ массива
    • array_keys — Возвращает все или некоторое подмножество ключей массива
    • array_map — Применяет callback-функцию ко всем элементам указанных массивов
    • array_merge_recursive — Рекурсивное слияние одного или более массивов
    • array_merge — Сливает один или большее количество массивов
    • array_multisort — Сортирует несколько массивов или многомерные массивы
    • array_pad — Дополнить массив определенным значением до указанной длины
    • array_pop — Извлекает последний элемент массива
    • array_product — Вычислить произведение значений массива
    • array_push — Добавляет один или несколько элементов в конец массива
    • array_rand — Выбирает один или несколько случайных ключей из массива
    • array_reduce — Итеративно уменьшает массив к единственному значению, используя callback-функцию
    • array_replace_recursive — Рекурсивно заменяет элементы первого массива элементами переданных массивов
    • array_replace — Заменяет элементы массива элементами других переданных массивов
    • array_reverse — Возвращает массив с элементами в обратном порядке
    • array_search — Осуществляет поиск данного значения в массиве и возвращает ключ первого найденного элемента в случае удачи
    • array_shift — Извлекает первый элемент массива
    • array_slice — Выбирает срез массива
    • array_splice — Удаляет часть массива и заменяет её чем-нибудь ещё
    • array_sum — Вычисляет сумму значений массива
    • array_udiff_assoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
    • array_udiff_uassoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
    • array_udiff — Вычисляет расхождение массивов, используя для сравнения callback-функцию
    • array_uintersect_assoc — Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
    • array_uintersect_uassoc — Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции
    • array_uintersect — Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
    • array_unique — Убирает повторяющиеся значения из массива
    • array_unshift — Добавляет один или несколько элементов в начало массива
    • array_values — Выбирает все значения массива
    • array_walk_recursive — Рекурсивно применяет пользовательскую функцию к каждому элементу массива
    • array_walk — Применяет заданную пользователем функцию к каждому элементу массива
    • array — Создает массив
    • arsort — Сортирует массив в обратном порядке, сохраняя ключи
    • asort — Сортирует массив, сохраняя ключи
    • compact — Создает массив, содержащий названия переменных и их значения
    • count — Подсчитывает количество элементов массива или чего-либо в объекте
    • current — Возвращает текущий элемент массива
    • each — Возвращает текущую пару ключ/значение из массива и смещает его указатель
    • end — Устанавливает внутренний указатель массива на его последний элемент
    • extract — Импортирует переменные из массива в текущую таблицу символов
    • in_array — Проверяет, присутствует ли в массиве значение
    • key_exists — Псевдоним array_key_exists
    • key — Выбирает ключ из массива
    • krsort — Сортирует массив по ключам в обратном порядке
    • ksort — Сортирует массив по ключам
    • list — Присваивает переменным из списка значения подобно массиву
    • natcasesort — Сортирует массив, используя алгоритм "natural order" без учета регистра символов
    • natsort — Сортирует массив, используя алгоритм "natural order"
    • next — Перемещает указатель массива вперед на один элемент
    • pos — Псевдоним current
    • prev — Передвигает внутренний указатель массива на одну позицию назад
    • range — Создает массив, содержащий диапазон элементов
    • reset — Устанавливает внутренний указатель массива на его первый элемент
    • rsort — Сортирует массив в обратном порядке
    • shuffle — Перемешивает массив
    • sizeof — Псевдоним count
    • sort — Сортирует массив
    • uasort — Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей
    • uksort — Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей
    • usort — Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов


Введение

Эти функции позволяют различными способами оперировать массивами. Массивы идеально подходят для хранения, изменения и работы с наборами переменных.

Поддерживаются одно- и многомерные массивы, как созданные пользователем, так и возвращенные в качестве результата какой-либо функцией. Используя специальные функции можно записать в массив результаты запроса к базам данных. Также существуют функции, возвращающие массивы в качестве результата.

За дополнительными сведениями о создании и использовании массивов в PHP, смотрите главу Массивы данного руководства. Смотрите также операции над массивами.


Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

CASE_LOWER (integer)
CASE_LOWER используется с array_change_key_case() для конвертации ключей массива в нижний регистр. Это действие по умолчанию для array_change_key_case().
CASE_UPPER (integer)
CASE_UPPER используется c array_change_key_case() для конвертации ключей массива в верхний регистр.

Флаги, изменяющие порядок сортировки:

SORT_ASC (integer)
SORT_ASC используется с array_multisort() для сортировки в порядке возрастания.
SORT_DESC (integer)
SORT_DESC используется с array_multisort() для сортировки в порядке убывания.

Флаги сортировки, используемые различными функциями:

SORT_REGULAR (integer)
SORT_REGULAR используется для обычного сравнения элементов массива.
SORT_NUMERIC (integer)
SORT_NUMERIC используется для сравнения элементов как цифр.
SORT_STRING (integer)
SORT_STRING используется для сравнения элементов как строк.
SORT_LOCALE_STRING (integer)
SORT_LOCALE_STRING используется для сравнения элементов как строк на базе текущей локали. Добавлено в 5.0.2.
SORT_NATURAL (integer)
SORT_NATURAL используется для сравнения элементов как строк, используя естественное упорядочивание, такое как natsort(). Добавлено в PHP 5.4.0.
SORT_FLAG_CASE (integer)
SORT_FLAG_CASE может быть объединена (побитовое ИЛИ) с SORT_STRING или SORT_NATURAL для регистронезависимой сортировки строк. Добавлено в PHP 5.4.0.

Опции фильтрации:

ARRAY_FILTER_USE_KEY (integer)
ARRAY_FILTER_USE_KEY используется в array_filter() для передачи каждого ключа в виде первого аргумента в заданную функцию. Добавлено в PHP 5.6.0.
ARRAY_FILTER_USE_BOTH (integer)
ARRAY_FILTER_USE_BOTH используется в array_filter() для передачи и значения и ключа в заданную функцию. Добавлено в PHP 5.6.0.

COUNT_NORMAL (integer)
COUNT_RECURSIVE (integer)
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)
EXTR_REFS (integer)


Сортировка массивов

В PHP есть несколько функций для сортировки массивов, на этой странице дается их общее описание.

Основные различия между функциями:

  • В одних функциях массивы (array) сортируются по ключам элементов, в других по значениям: $array['ключ'] = 'значение';
  • В каких-то функциях связь между ключами и значениями после сортировки сохраняется, в каких-то нет. Это может приводить к тому, что ключи будут сбрасываться в числовые значения (0, 1, 2, ...).
  • Различия в порядке сортировки: алфавитный, возрастающий, убывающий, числовой, естественный, случайный или определенный пользователем
  • Примечание: Все функции сортировки модифицируют переданный массив, а не возвращают отсортированную копию
  • Если функции определяют два элемента как равные, порядок сортировки в этом случае не определен (нестабильная сортировка).

Свойства функций сортировки
Имя функции | Сортирует по | Сохраняет связь ключ - значение | Порядок сортировки | Похожие функции
array_multisort() | значению | ассоциативные да, числовые нет | первый массив или настройки сортировки | array_walk()
asort() | значению | да | по возрастанию | arsort()
arsort() | значению | да | по убыванию | asort()
krsort() | ключу | да | по убыванию | ksort()
ksort() | ключу | да | по возрастанию | asort()
natcasesort() | значению | да | естественный, нечувствительный к регистру | natsort()
natsort() | значению | да | естественный | natcasesort()
rsort() | значению | нет | по убыванию | sort()
shuffle() | значению | нет | случайный | array_rand()
sort() | значению | нет | по возрастанию | rsort()
uasort() | значению | да | определяется пользователем | uksort()
uksort() | ключу | да | определяется пользователем | uasort()
usort() | значению | нет | определяется пользователем | uasort()


Функции для работы с массивами

Смотрите также

См. также is_array(), explode(),
implode(), split(),
preg_split() и unset().

Содержание

  • array_change_key_case — Меняет регистр всех ключей в массиве
  • array_chunk — Разбивает массив на части
  • array_column — Возвращает массив из значений одного столбца входного массива
  • array_combine — Создает новый массив, используя один массив в качестве ключей, а другой для его значений
  • array_count_values — Подсчитывает количество всех значений массива
  • array_diff_assoc — Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_diff_key — Вычисляет расхождение массивов, сравнивая ключи
  • array_diff_uassoc — Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_diff_ukey — Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей
  • array_diff — Вычислить расхождение массивов
  • array_fill_keys — Создает массив и заполняет его значениями с определенными ключами
  • array_fill — Заполняет массив значениями
  • array_filter — Фильтрует элементы массива с помощью callback-функции
  • array_flip — Меняет местами ключи с их значениями в массиве
  • array_intersect_assoc — Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_intersect_key — Вычислить пересечение массивов, сравнивая ключи
  • array_intersect_uassoc — Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_intersect_ukey — Вычисляет схождение массивов, используя callback-функцию для сравнения ключей
  • array_intersect — Вычисляет схождение массивов
  • array_key_exists — Проверяет, присутствует ли в массиве указанный ключ или индекс
  • array_key_first — Получает первый ключ массива
  • array_key_last — Получает последний ключ массива
  • array_keys — Возвращает все или некоторое подмножество ключей массива
  • array_map — Применяет callback-функцию ко всем элементам указанных массивов
  • array_merge_recursive — Рекурсивное слияние одного или более массивов
  • array_merge — Сливает один или большее количество массивов
  • array_multisort — Сортирует несколько массивов или многомерные массивы
  • array_pad — Дополнить массив определенным значением до указанной длины
  • array_pop — Извлекает последний элемент массива
  • array_product — Вычислить произведение значений массива
  • array_push — Добавляет один или несколько элементов в конец массива
  • array_rand — Выбирает один или несколько случайных ключей из массива
  • array_reduce — Итеративно уменьшает массив к единственному значению, используя callback-функцию
  • array_replace_recursive — Рекурсивно заменяет элементы первого массива элементами переданных массивов
  • array_replace — Заменяет элементы массива элементами других переданных массивов
  • array_reverse — Возвращает массив с элементами в обратном порядке
  • array_search — Осуществляет поиск данного значения в массиве и возвращает ключ первого найденного элемента в случае удачи
  • array_shift — Извлекает первый элемент массива
  • array_slice — Выбирает срез массива
  • array_splice — Удаляет часть массива и заменяет её чем-нибудь ещё
  • array_sum — Вычисляет сумму значений массива
  • array_udiff_assoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_udiff — Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_uintersect_assoc — Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_uintersect_uassoc — Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции
  • array_uintersect — Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
  • array_unique — Убирает повторяющиеся значения из массива
  • array_unshift — Добавляет один или несколько элементов в начало массива
  • array_values — Выбирает все значения массива
  • array_walk_recursive — Рекурсивно применяет пользовательскую функцию к каждому элементу массива
  • array_walk — Применяет заданную пользователем функцию к каждому элементу массива
  • array — Создает массив
  • arsort — Сортирует массив в обратном порядке, сохраняя ключи
  • asort — Сортирует массив, сохраняя ключи
  • compact — Создает массив, содержащий названия переменных и их значения
  • count — Подсчитывает количество элементов массива или чего-либо в объекте
  • current — Возвращает текущий элемент массива
  • each — Возвращает текущую пару ключ/значение из массива и смещает его указатель
  • end — Устанавливает внутренний указатель массива на его последний элемент
  • extract — Импортирует переменные из массива в текущую таблицу символов
  • in_array — Проверяет, присутствует ли в массиве значение
  • key_exists — Псевдоним array_key_exists
  • key — Выбирает ключ из массива
  • krsort — Сортирует массив по ключам в обратном порядке
  • ksort — Сортирует массив по ключам
  • list — Присваивает переменным из списка значения подобно массиву
  • natcasesort — Сортирует массив, используя алгоритм "natural order" без учета регистра символов
  • natsort — Сортирует массив, используя алгоритм "natural order"
  • next — Перемещает указатель массива вперед на один элемент
  • pos — Псевдоним current
  • prev — Передвигает внутренний указатель массива на одну позицию назад
  • range — Создает массив, содержащий диапазон элементов
  • reset — Устанавливает внутренний указатель массива на его первый элемент
  • rsort — Сортирует массив в обратном порядке
  • shuffle — Перемешивает массив
  • sizeof — Псевдоним count
  • sort — Сортирует массив
  • uasort — Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей
  • uksort — Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей
  • usort — Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов


Меняет регистр всех ключей в массиве

  • « Функции для работы с массивами
  • array_chunk »
  • PHP Manual
  • Функции для работы с массивами
  • Меняет регистр всех ключей в массиве

array_change_key_case

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

array_change_key_case — Меняет регистр всех ключей в массиве

Описание

array_change_key_case ( array $array [, int $case = CASE_LOWER ] ) : array

Возвращает массив array, все ключи которого преобразованы в нижний или верхний регистр. Числовые ключи останутся нетронутыми.

Список параметров

array

Обрабатываемый массив

case

Либо CASE_UPPER, либо CASE_LOWER (используется по умолчанию)

Возвращаемые значения

Возвращает массив с ключами, преобразованными в верхний или нижний регистр, либо FALSE, если array не является массивом.

Ошибки

Генерирует ошибку уровня E_WARNING, если array не является массивом.

Примеры

Пример #1 Пример использования array_change_key_case()

<?php
$input_array = array("FirSt" => 1, "SecOnd" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));
?>

Результат выполнения данного примера:

Array
(
    [FIRST] => 1
    [SECOND] => 4
)

Примечания

Замечание:

Если массив содержит индексы, которые станут одноименными после применения данной функции (например, "keY" и "kEY"), значение последнего одноименного индекса перекроет другие совпадающие значения из этого массива.


Разбивает массив на части

  • « array_change_key_case
  • array_column »
  • PHP Manual
  • Функции для работы с массивами
  • Разбивает массив на части

array_chunk

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

array_chunk — Разбивает массив на части

Описание

array_chunk ( array $array , int $size [, bool $preserve_keys = FALSE ] ) : array

Разбивает массив на несколько массивов размером в size элементов. Последний массив из полученных может содержать меньшее количество значений, чем указано в size.

Список параметров

array

Обрабатываемый массив

size

Размер каждой части

preserve_keys

Если установлено в TRUE, ключи оригинального массива будут сохранены. По умолчанию установлено в FALSE, что переиндексирует каждую часть с числовыми ключами

Возвращаемые значения

Возвращает многомерный массив с числовыми индексами, начинающимися с нуля, каждый элемент которого содержит size элементов из оригинального массива.

Ошибки

Если size меньше 1, будет сгенерирована ошибка уровня E_WARNING и возвращен NULL.

Примеры

Пример #1 Пример использования array_chunk()

<?php
$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_slice() - Выбирает срез массива


Возвращает массив из значений одного столбца входного массива

  • « array_chunk
  • array_combine »
  • PHP Manual
  • Функции для работы с массивами
  • Возвращает массив из значений одного столбца входного массива

array_column

(PHP 5 >= 5.5.0, PHP 7)

array_column — Возвращает массив из значений одного столбца входного массива

Описание

array_column ( array $input , mixed $column_key [, mixed $index_key = NULL ] ) : array

array_column() возвращает массив из значений столбца массива input с ключом column_key. Опционально можно указать index_key, чтобы индексировать возвращаемый массив значениями из столбца с ключом index_key входного массива.

Список параметров

input

Многомерный массив или массив объектов, из которого будет производиться выборка значений. Если задан массив объектов, то можно выбирать любые его общедоступные свойства. Для выборки закрытых или защищенных свойств, объект должен реализовывать магические методы __get() и __isset().

column_key

Ключ столбца, значения которого нужно вернуть. Может содержать как числовой ключ, так и строковой для ассоциативных массивов. А также может принимать значение NULL, тогда возвращаются не значения определенного столбца, а весь массив (полезно использовать вместе с index_key чтобы переиндексировать массив).

index_key

Ключ столбца, значения которого будут использоваться в качестве ключей возвращаемого массива. Может быть как целочисленным ключом, так и строковым. Тип значения приводится, как обычно для ключей массива (однако, объекты, поддерживающие преобразование к строке также разрешены).

Возвращаемые значения

Возвращает массив из значений одного столбца входного массива (набора записей).

Список изменений

Версия | Описание
7.0.0 | Добавлена возможность использовать массив объектов в input.

Примеры

Пример #1 Получим столбец с именами из набора записей

<?php
// Массив, представляющий из себя набор записей полученных из базы данных
$records = array(
    array(
        'id' => 2135,
        'first_name' => 'John',
        'last_name' => 'Doe',
    ),
    array(
        'id' => 3245,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
    ),
    array(
        'id' => 5342,
        'first_name' => 'Jane',
        'last_name' => 'Jones',
    ),
    array(
        'id' => 5623,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
    )
);

$first_names = array_column($records, 'first_name');
print_r($first_names);
?>

Результат выполнения данного примера:

Array
(
    [0] => John
    [1] => Sally
    [2] => Jane
    [3] => Peter
)

Пример #2 Получим столбец с фамилиями, а в качестве ключей возвращаемого массива используем значения из столбца "id"

<?php
// Используем массив $records из первого примера
$last_names = array_column($records, 'last_name', 'id');
print_r($last_names);
?>

Результат выполнения данного примера:

Array
(
    [2135] => Doe
    [3245] => Smith
    [5342] => Jones
    [5623] => Doe
)

Пример #3 Получим столбец имен пользователей из общедоступного свойства "username" объекта

<?php

class User
{
    public $username;

    public function __construct(string $username)
    {
        $this->username = $username;
    }
}

$users = [
    new User('user 1'),
    new User('user 2'),
    new User('user 3'),
];

print_r(array_column($users, 'username'));
?>

Результат выполнения данного примера:

Array
(
    [0] => user 1
    [1] => user 2
    [2] => user 3
)

Пример #4 Получим столбец имен пользователей из приватного свойства "name" объекта, используя магический метод __get().

<?php

class Person
{
    private $name;

    public function __construct(string $name)
    {
        $this->name = $name;
    }

    public function __get($prop)
    {
        return $this->$prop;
    }

    public function __isset($prop) : bool
    {
        return isset($this->$prop);
    }
}

$people = [
    new Person('Fred'),
    new Person('Jane'),
    new Person('John'),
];

print_r(array_column($people, 'name'));
?>

Результат выполнения данного примера:

Array
(
    [0] => Fred
    [1] => Jane
    [2] => John
)
Если в объекте не будет метода __isset(), то вернется пустой массив.

Смотрите также

  • » Рекомендации по самостоятельной реализации при использовании версии PHP ниже 5.5


Создает новый массив, используя один массив в качестве ключей, а другой для его значений

  • « array_column
  • array_count_values »
  • PHP Manual
  • Функции для работы с массивами
  • Создает новый массив, используя один массив в качестве ключей, а другой для его значений

array_combine

(PHP 5, PHP 7)

array_combine — Создает новый массив, используя один массив в качестве ключей, а другой для его значений

Описание

array_combine ( array $keys , array $values ) : array

Создает массив (array), используя значения массива keys в качестве ключей и значения массива values в качестве соответствующих значений.

Список параметров

keys

Массив ключей. Некорректные значения для ключей будут преобразованы в строку (string).

values

Массив значений

Возвращаемые значения

Возвращает скомбинированный массив (array), либо FALSE, если количество элементов в массивах не совпадает.

Ошибки

Генерирует ошибку уровня E_WARNING, если количество элементов в keys и values не совпадает.

Список изменений

Версия | Описание
5.4.0 | Предыдущие версии выдавали E_WARNING и возвращали 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_combine
  • array_diff_assoc »
  • PHP Manual
  • Функции для работы с массивами
  • Подсчитывает количество всех значений массива

array_count_values

(PHP 4, PHP 5, PHP 7)

array_count_values — Подсчитывает количество всех значений массива

Описание

array_count_values ( array $array ) : array

Функция array_count_values() возвращает массив, ключами которого являются значения массива array, а значениями - частота повторения значений array.

Список параметров

array

Массив подсчитываемых значений

Возвращаемые значения

Возвращает ассоциативный массив со значениями array в качестве ключей и их количества в качестве значений.

Ошибки

Генерирует ошибку уровня E_WARNING для каждого элемента, не являющегося строкой (string) или целым числом (integer).

Примеры

Пример #1 Пример использования array_count_values()

<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?>

Результат выполнения данного примера:

Array
(
    [1] => 2
    [hello] => 2
    [world] => 1
)

Смотрите также

  • count() - Подсчитывает количество элементов массива или чего-либо в объекте
  • array_unique() - Убирает повторяющиеся значения из массива
  • array_values() - Выбирает все значения массива
  • count_chars() - Возвращает информацию о символах, входящих в строку


Вычисляет расхождение массивов с дополнительной проверкой индекса

  • « array_count_values
  • array_diff_key »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет расхождение массивов с дополнительной проверкой индекса

array_diff_assoc

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

array_diff_assoc — Вычисляет расхождение массивов с дополнительной проверкой индекса

Описание

array_diff_assoc ( array $array1 , array $array2 [, array $... ] ) : array

Сравнивает array1 с array2 и возвращает разницу. В отличие от array_diff(), ключи также участвуют в сравнении.

Список параметров

array1

Исходный массив

array2

Массив, с которым идет сравнение

...

Дополнительные массивы, с которыми осуществляется сравнение

Возвращаемые значения

Возвращает массив (array), содержащие все значения из массива array1, которых нет в любом из последующих массивов.

Примеры

Пример #1 Пример использования array_diff_assoc()

В нижеследующем примере вы видите, что пара "a" => "green" содержится в обоих массивах и поэтому её нет в выводе функции. Но пара 0 => "red" содержится в выводе функции, потому что во втором аргументе значению "red" соответствует ключ 1.

<?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
)

Пример #2 Пример использования array_diff_assoc()

Два значения пар key => value считаются равными только тогда, если (string) $elem1 === (string) $elem2 . Другими словами, применяется строгая проверка, означающая что строковые представления должны быть одинаковыми.

<?php
$array1 = array(0, 1, 2);
$array2 = array("00", "01", "2");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [0] => 0
    [1] => 1
    )

Примечания

Замечание: Эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff_assoc($array1[0], $array2[0]);.

Замечание: Убедитесь, что передаете аргументы в правильном порядке, когда сравниваете схожие массивы с большим количеством ключей. Новый массив должен быть первым.

Смотрите также

  • array_diff() - Вычислить расхождение массивов
  • array_diff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса


Вычисляет расхождение массивов, сравнивая ключи

  • « array_diff_assoc
  • array_diff_uassoc »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет расхождение массивов, сравнивая ключи

array_diff_key

(PHP 5 >= 5.1.0, PHP 7)

array_diff_key — Вычисляет расхождение массивов, сравнивая ключи

Описание

array_diff_key ( array $array1 , array $array2 [, array $... ] ) : array

Сравнивает ключи array1 с ключами array2 и возвращает разницу. Эта функция схожа с array_diff() за исключением того, что сравниваются ключи, а не значения.

Список параметров

array1

Исходный массив

array2

Массив, с которым идет сравнение

...

Дополнительные массивы, с которыми осуществляется сравнение

Возвращаемые значения

Возвращает массив (array), содержащий все элементы array1 с ключами, которых нет во всех последующих массивах.

Примеры

Пример #1 Пример использования array_diff_key()

Два ключа пар key => value считаются равными только тогда, когда (string) $key1 === (string) $key2 . Другими словами, применяется строгая проверка, означающая что строковые представления должны быть одинаковыми.

<?php
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$array2 = array('green' => 5, 'yellow' => 7, 'cyan' => 8);

var_dump(array_diff_key($array1, $array2));
?>

Результат выполнения данного примера:

array(3) {
  ["blue"]=>
  int(1)
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}
<?php
$array1 = array('blue' => 1, 'red'  => 2, 'green' => 3, 'purple' => 4);
$array2 = array('green' => 5, 'yellow' => 7, 'cyan' => 8);
$array3 = array('blue' => 6, 'yellow' => 7, 'mauve' => 8);

var_dump(array_diff_key($array1, $array2, $array3));
?>

Результат выполнения данного примера:

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

Примечания

Замечание:

Эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff_key($array1[0], $array2[0]);.

Смотрите также

  • array_diff() - Вычислить расхождение массивов
  • array_udiff() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_diff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_diff_ukey() - Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_intersect_uassoc() - Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_intersect_key() - Вычислить пересечение массивов, сравнивая ключи
  • array_intersect_ukey() - Вычисляет схождение массивов, используя callback-функцию для сравнения ключей


Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции

  • « array_diff_key
  • array_diff_ukey »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции

array_diff_uassoc

(PHP 5, PHP 7)

array_diff_uassoc — Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции

Описание

array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func ) : array

Сравнивает array1 c array2 и возвращает разницу. В отличие от array_diff(), для сравнения используются ключи.

В отличие от array_diff_assoc(), для сравнения ключей используется пользовательская функция, а не встроенная.

Список параметров

array1

Исходный массив

array2

Массив, с которым идет сравнение

...

Дополнительные массивы, с которыми осуществляется сравнение

key_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int

Возвращаемые значения

Возвращает массив (array), содержащий все элементы array1, которых нет во всех остальных массивах.

Примеры

Пример #1 Пример использования array_diff_uassoc()

Пара "a" => "green" существует в обоих массивах и поэтому отсутствует в выводе функции. Наоборот, пара 0 => "red" находится в выводе функции, так как второй аргумент "red" имеет ключ, равный 1.

<?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
)

Равенство 2 индексов проверяется функцией, предоставляемой пользователем.

Примечания

Замечание:

Эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff_uassoc($array1[0], $array2[0], "key_compare_func");.

Смотрите также

  • array_diff() - Вычислить расхождение массивов
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_udiff() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_uintersect() - Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции


Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей

  • « array_diff_uassoc
  • array_diff »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей

array_diff_ukey

(PHP 5 >= 5.1.0, PHP 7)

array_diff_ukey — Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей

Описание

array_diff_ukey ( array $array1 , array $array2 [, array $... ], callable $key_compare_func ) : array

Сравнивает ключи array1 с ключами array2 и возвращает разницу. Эта функция похожа на array_diff() за исключением того, что сравниваются ключи, а не значения.

В отличие от функции array_diff_key() для сравнения ключей используется функция, предоставляемая пользователем, а не встроенная функция.

Список параметров

array1

Исходный массив

array2

Массив, с которым идет сравнение

...

Дополнительные массивы, с которыми осуществляется сравнение

key_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int

Возвращаемые значения

Возвращает массив (array), содержащий все элементы array1, отсутствующие в каком-либо из всех остальных массивов.

Примеры

Пример #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() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_diff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_diff_key() - Вычисляет расхождение массивов, сравнивая ключи
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_intersect_uassoc() - Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_intersect_key() - Вычислить пересечение массивов, сравнивая ключи
  • array_intersect_ukey() - Вычисляет схождение массивов, используя callback-функцию для сравнения ключей


Вычислить расхождение массивов

  • « array_diff_ukey
  • array_fill_keys »
  • PHP Manual
  • Функции для работы с массивами
  • Вычислить расхождение массивов

array_diff

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

array_diff — Вычислить расхождение массивов

Описание

array_diff ( array $array1 , array $array2 [, array $... ] ) : array

Сравнивает array1 с одним или несколькими другими массивами и возвращает значения из array1, которые отсутствуют во всех других массивах.

Список параметров

array1

Исходный массив

array2

Массив, с которым идет сравнение

...

Дополнительные массивы, с которыми осуществляется сравнение

Возвращаемые значения

Возвращает массив (array), содержащий элементы array1, отсутствующие в любом из всех остальных массивов.

Примеры

Пример #1 Пример использования array_diff()

<?php
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);

print_r($result);
?>

Множественные совпадения в $array1 обрабатываются как одно. Результат будет следующим:

Array
(
    [1] => blue
)

Примечания

Замечание:

Два элемента считаются одинаковыми тогда и только тогда, если (string) $elem1 === (string) $elem2. Другими словами, когда их строковое представление идентично.

Замечание:

Обратите внимание, что эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff($array1[0], $array2[0]);.

Смотрите также

  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса


Создает массив и заполняет его значениями с определенными ключами

  • « array_diff
  • array_fill »
  • PHP Manual
  • Функции для работы с массивами
  • Создает массив и заполняет его значениями с определенными ключами

array_fill_keys

(PHP 5 >= 5.2.0, PHP 7)

array_fill_keys — Создает массив и заполняет его значениями с определенными ключами

Описание

array_fill_keys ( array $keys , mixed $value ) : array

Создает и заполняет массив значением параметра value, используя значения массива keys в качестве ключей.

Список параметров

keys

Массив значений, которые будут использованы в качестве ключей. Некорректные ключи массива будут преобразованы в строку (string).

value

Заполняемое значение

Возвращаемые значения

Возвращает заполненный массив

Примеры

Пример #1 Пример использования array_fill_keys()

<?php
$keys = array('foo', 5, 10, 'bar');
$a = array_fill_keys($keys, 'banana');
print_r($a);
?>

Результат выполнения данного примера:

Array
(
    [foo] => banana
    [5] => banana
    [10] => banana
    [bar] => banana
)

Смотрите также

  • array_fill() - Заполняет массив значениями
  • array_combine() - Создает новый массив, используя один массив в качестве ключей, а другой для его значений


Заполняет массив значениями

  • « array_fill_keys
  • array_filter »
  • PHP Manual
  • Функции для работы с массивами
  • Заполняет массив значениями

array_fill

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

array_fill — Заполняет массив значениями

Описание

array_fill ( int $start_index , int $num , mixed $value ) : array

Заполняет массив num элементами со значением value, начиная с ключа start_index.

Список параметров

start_index

Первый индекс возвращаемого массива.

Если start_index отрицателеный, первым индексом возвращаемого массива будет start_index, а последующие индексы будут начинаться с нуля (см. пример).

num

Количество вставляемых элементов. Их должно быть больше или равно нулю.

value

Значение для заполнения

Возвращаемые значения

Возвращает заполненный массив

Ошибки

Вызывает предупреждение E_WARNING в случае, если параметр num меньше нуля.

Список изменений

Версия | Описание
5.6.0 | num теперь может быть равен нулю. До этого num должен был быть больше нуля.

Примеры

Пример #1 Пример использования array_fill()

<?php
$a = array_fill(5, 6, 'banana');
$b = array_fill(-2, 4, 'pear');
print_r($a);
print_r($b);
?>

Результат выполнения данного примера:

Array
(
    [5]  => banana
    [6]  => banana
    [7]  => banana
    [8]  => banana
    [9]  => banana
    [10] => banana
)
Array
(
    [-2] => pear
    [0] => pear
    [1] => pear
    [2] => pear
)

Примечания

Смотрите также подробное описание отрицательных ключей в разделе Массивы.

Смотрите также

  • array_fill_keys() - Создает массив и заполняет его значениями с определенными ключами
  • str_repeat() - Возвращает повторяющуюся строку
  • range() - Создает массив, содержащий диапазон элементов


Фильтрует элементы массива с помощью callback-функции

  • « array_fill
  • array_flip »
  • PHP Manual
  • Функции для работы с массивами
  • Фильтрует элементы массива с помощью callback-функции

array_filter

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

array_filter — Фильтрует элементы массива с помощью callback-функции

Описание

array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array

Обходит каждое значение массива array, передавая его в callback-функцию. Если callback-функция возвращает TRUE, данное значение из array возвращается в результирующий array. Ключи массива сохраняются.

Список параметров

array

Итерируемый массив

callback

Используемая callback-функция

Если callback-функция не передана, все значения массива array равные FALSE (см. преобразование в булевый тип) будут удалены.

flag

Флаг, определяющий, какие аргументы передавать в callback:

  • ARRAY_FILTER_USE_KEY - передавать только ключ массива как аргумент для callback вместо значения
  • ARRAY_FILTER_USE_BOTH - передавать и ключ, и значение в callback вместо только значения
По умолчанию 0, что означает, что в callback-функцию будет передаваться только значение в качестве единственного аргумента.

Возвращаемые значения

Возвращает отфильтрованный массив.

Список изменений

Версия | Описание
5.6.0 | Добавлен необязательный параметр flag и константы ARRAY_FILTER_USE_KEY и ARRAY_FILTER_USE_BOTH

Примеры

Пример #1 Пример использования array_filter()

<?php
function odd($var)
{
    // является ли переданное число нечетным
    return $var & 1;
}

function even($var)
{
    // является ли переданное число четным
    return !($var & 1);
}

$array1 = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$array2 = [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
)

Пример #2 Использование array_filter() без callback-функции

<?php

$entry = [
    0 => 'foo',
    1 => false,
    2 => -1,
    3 => null,
    4 => '',
    5 => '0',
    6 => 0,
];

print_r(array_filter($entry));
?>

Результат выполнения данного примера:

Array
(
    [0] => foo
    [2] => -1
)

Пример #3 array_filter() с указанным flag

<?php

$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];

var_dump(array_filter($arr, function($k) {
    return $k == 'b';
}, ARRAY_FILTER_USE_KEY));

var_dump(array_filter($arr, function($v, $k) {
    return $k == 'b' || $v == 4;
}, ARRAY_FILTER_USE_BOTH));
?>

Результат выполнения данного примера:

array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}

Примечания

Предостережение

Если callback-функция изменяет массив (например, добавляет или удаляет элементы), поведение этой функции неопределено.

Смотрите также

  • array_map() - Применяет callback-функцию ко всем элементам указанных массивов
  • array_reduce() - Итеративно уменьшает массив к единственному значению, используя callback-функцию
  • array_walk() - Применяет заданную пользователем функцию к каждому элементу массива


Меняет местами ключи с их значениями в массиве

  • « array_filter
  • array_intersect_assoc »
  • PHP Manual
  • Функции для работы с массивами
  • Меняет местами ключи с их значениями в массиве

array_flip

(PHP 4, PHP 5, PHP 7)

array_flip — Меняет местами ключи с их значениями в массиве

Описание

array_flip ( array $array ) : array

Функция array_flip() возвращает массив (array) наоборот, то есть ключи массива array становятся значениями, а значения массива array становятся ключами.

Обратите внимание, что значения массива array должны быть корректными ключами, то есть они должны иметь тип integer или string. Если значение имеет неверный тип, будет выдано предупреждение и данная пара ключ/значение не будет включена в результат.

Если значение встречается несколько раз, для обработки будет использоваться последний встреченный ключ, а все остальные будут потеряны.

Список параметров

array

Массив переворачиваемых пар ключ/значение.

Возвращаемые значения

Возвращает перевернутый массив в случае успеха и NULL в случае ошибки.

Примеры

Пример #1 Пример использования array_flip()

<?php
$input = array("oranges", "apples", "pears");
$flipped = array_flip($input);

print_r($flipped);
?>

Результат выполнения данного примера:

Array
(
    [oranges] => 0
    [apples] => 1
    [pears] => 2
)

Пример #2 Пример использования array_flip() с коллизиями

<?php
$input = array("a" => 1, "b" => 1, "c" => 2);
$flipped = array_flip($input);

print_r($flipped);
?>

Результат выполнения данного примера:

Array
(
    [1] => b
    [2] => c
)

Смотрите также

  • array_values() - Выбирает все значения массива
  • array_keys() - Возвращает все или некоторое подмножество ключей массива
  • array_reverse() - Возвращает массив с элементами в обратном порядке


Вычисляет схождение массивов с дополнительной проверкой индекса

  • « array_flip
  • array_intersect_key »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет схождение массивов с дополнительной проверкой индекса

array_intersect_assoc

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

array_intersect_assoc — Вычисляет схождение массивов с дополнительной проверкой индекса

Описание

array_intersect_assoc ( array $array1 , array $array2 [, array $... ] ) : array

Функция array_intersect_assoc() возвращает массив, содержащий все значения массива array1, которые содержатся во всех указанных аргументах. Обратите внимание, что при сравнении используются ключи, в отличие от функции array_intersect().

Список параметров

array1

Основной проверяемый массив.

array2

Массив, с которым идет сравнение.

...

Переменный список сравниваемых массивов.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий все элементы массива array1, которые существуют во всех переданных аргументах.

Примеры

Пример #1 Пример использования array_intersect_assoc()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "b" => "yellow", "blue", "red");
$result_array = array_intersect_assoc($array1, $array2);
print_r($result_array);
?>

Результат выполнения данного примера:

Array
(
    [a] => green
)

В нашем примере видно, что только пара "a" => "green", содержится в обоих массивах и таким образом возвращается. Значение "red" не возвращается, потому что в массиве $array1 его ключ - 0, в то время как ключ значения "red" в массиве $array2 - 1, а ключ "b" не возвращается потому, что его значения различны в каждом массиве.

Два значения пар key => value считаются равными только, если (string) $elem1 === (string) $elem2 . Другими словами, применяется строгая проверка, означающая что строковые представления должны быть одинаковыми.

Смотрите также

  • array_intersect() - Вычисляет схождение массивов
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_intersect_uassoc() - Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции
  • array_diff() - Вычислить расхождение массивов
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса


Вычислить пересечение массивов, сравнивая ключи

  • « array_intersect_assoc
  • array_intersect_uassoc »
  • PHP Manual
  • Функции для работы с массивами
  • Вычислить пересечение массивов, сравнивая ключи

array_intersect_key

(PHP 5 >= 5.1.0, PHP 7)

array_intersect_key — Вычислить пересечение массивов, сравнивая ключи

Описание

array_intersect_key ( array $array1 , array $array2 [, array $... ] ) : array

array_intersect_key() возвращает массив, содержащий все элементы array1, имеющие ключи, содержащиеся во всех последующих параметрах.

Список параметров

array1

Основной проверяемый массив.

array2

Массив, с которым идет сравнение.

...

Переменный список сравниваемых массивов

Возвращаемые значения

Возвращает ассоциативный массив, содержащий все элементы 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() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_diff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_diff_key() - Вычисляет расхождение массивов, сравнивая ключи
  • array_diff_ukey() - Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_intersect_uassoc() - Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_intersect_ukey() - Вычисляет схождение массивов, используя callback-функцию для сравнения ключей


Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции

  • « array_intersect_key
  • array_intersect_ukey »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции

array_intersect_uassoc

(PHP 5, PHP 7)

array_intersect_uassoc — Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции

Описание

array_intersect_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func ) : array

array_intersect_uassoc() возвращает массив, содержащий значения array1, содержащиеся во всех последующих параметрах. Обратите внимание, что в отличие от array_intersect(), для сравнения используются ключи.

Список параметров

array1

Исходный сравниваемый массив

array2

Первый массив, с которым сравниваются ключи.

...

Дополнительные массивы, с которыми осуществляется сравнение.

key_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int

Возвращаемые значения

Возвращает все элементы array1, чьи значения существуют во всех аргументах.

Примеры

Пример #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() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции
  • array_intersect_key() - Вычислить пересечение массивов, сравнивая ключи
  • array_intersect_ukey() - Вычисляет схождение массивов, используя callback-функцию для сравнения ключей


Вычисляет схождение массивов, используя callback-функцию для сравнения ключей

  • « array_intersect_uassoc
  • array_intersect »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет схождение массивов, используя callback-функцию для сравнения ключей

array_intersect_ukey

(PHP 5 >= 5.1.0, PHP 7)

array_intersect_ukey — Вычисляет схождение массивов, используя callback-функцию для сравнения ключей

Описание

array_intersect_ukey ( array $array1 , array $array2 [, array $... ], callable $key_compare_func ) : array

array_intersect_ukey() возвращает массив, содержащий значения array1, имеющие ключи, содержащиеся во всех последующих параметрах.

Список параметров

array1

Основной проверяемый массив.

array2

Первый массив, с которым сравниваются ключи.

...

Дополнительные массивы, с которыми осуществляется сравнение ключей.

key_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int

Возвращаемые значения

Возвращает все элементы 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() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_diff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_diff_key() - Вычисляет расхождение массивов, сравнивая ключи
  • array_diff_ukey() - Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_intersect_uassoc() - Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_intersect_key() - Вычислить пересечение массивов, сравнивая ключи


Вычисляет схождение массивов

  • « array_intersect_ukey
  • array_key_exists »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет схождение массивов

array_intersect

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

array_intersect — Вычисляет схождение массивов

Описание

array_intersect ( array $array1 , array $array2 [, array $... ] ) : array

Функция array_intersect() возвращает массив, содержащий все значения массива array1, которые содержатся во всех аргументах. Обратите внимание, что ключи сохраняются.

Список параметров

array1

Основной проверяемый массив

array2

Массив, с которым идет сравнение значений

...

Дополнительные массивы для сравнения

Возвращаемые значения

Возвращает массив, содержащий все значения array1, которые существуют во всех переданных аргументах.

Примеры

Пример #1 Пример использования array_intersect()

<?php
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [a] => green
    [0] => red
)

Примечания

Замечание: Два элемента считаются одинаковыми тогда и только тогда, когда (string) $elem1 === (string) $elem2. Другими словами, когда их строковые представления идентичны.

Смотрите также

  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_diff() - Вычислить расхождение массивов
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса


Проверяет, присутствует ли в массиве указанный ключ или индекс

  • « array_intersect
  • array_key_first »
  • PHP Manual
  • Функции для работы с массивами
  • Проверяет, присутствует ли в массиве указанный ключ или индекс

array_key_exists

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

array_key_exists — Проверяет, присутствует ли в массиве указанный ключ или индекс

Описание

array_key_exists ( mixed $key , array $array ) : bool

Функция array_key_exists() возвращает TRUE, если в массиве присутствует указанный ключ key. Параметр key может быть любым значением, которое подходит для индекса массива.

Список параметров

key

Проверяемое значение.

array

Массив с проверяемыми ключами.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание:

array_key_exists() ищет ключи только на первом уровне массива. Внутренние ключи в многомерных массивах найдены не будут.

Примеры

Пример #1 Пример использования array_key_exists()

<?php
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
    echo "Массив содержит элемент 'first'.";
}
?>

Пример #2 array_key_exists() и isset()

isset() не возвращает TRUE для ключей массива, указывающих на NULL, а array_key_exists() возвращает.

<?php
$search_array = array('first' => null, 'second' => 4);

// возвращает false
isset($search_array['first']);

// возвращает true
array_key_exists('first', $search_array);
?>

Примечания

Замечание:

По причинам обратной совместимости, array_key_exists() возвращает TRUE, если key является свойством объекта (object), переданным в качестве параметра array. На это поведение не стоит полагаться, и перед использованием данной функции необходимо проверять, что параметр array имеет тип array.

Чтобы проверить, содержит ли объект какое-либо свойство, используйте функцию property_exists().

Смотрите также

  • isset() - Определяет, была ли установлена переменная значением, отличным от NULL
  • array_keys() - Возвращает все или некоторое подмножество ключей массива
  • in_array() - Проверяет, присутствует ли в массиве значение
  • property_exists() - Проверяет, содержит ли объект или класс указанный атрибут


Получает первый ключ массива

  • « array_key_exists
  • array_key_last »
  • PHP Manual
  • Функции для работы с массивами
  • Получает первый ключ массива

array_key_first

(PHP 7 >= 7.3.0)

array_key_first — Получает первый ключ массива

Описание

array_key_first ( array $array ) : mixed

Получить первый ключ заданного массива array, не затрагивая внутренний указатель массива.

Список параметров

array

Массив.

Возвращаемые значения

Возвращает первый ключ массива array, если он не пустой; NULL в противном случае.

Примеры

Пример #1 Пример использования array_key_first()

<?php
$array = ['a' => 1, 'b' => 2, 'c' => 3];

$firstKey = array_key_first($array);

var_dump($firstKey);
?>

Результат выполнения данного примера:

string(1) "a"

Примечания

Подсказка

Есть несколько способов предоставить функциональность для версий до PHP 7.3.0. Можно использовать array_keys(), но это может быть довольно неэффективно. Также можно использовать reset() и key(), но это может изменить внутренний указатель массива. Эффективное решение, которое не изменяет внутренний указатель массива, записанный, как полифилл:

<?php
if (!function_exists('array_key_first')) {
    function array_key_first(array $arr) {
        foreach($arr as $key => $unused) {
            return $key;
        }
        return NULL;
    }
}
?>

Смотрите также

  • array_key_last() - Получает последний ключ массива
  • reset() - Устанавливает внутренний указатель массива на его первый элемент


Получает последний ключ массива

  • « array_key_first
  • array_keys »
  • PHP Manual
  • Функции для работы с массивами
  • Получает последний ключ массива

array_key_last

(PHP 7 >= 7.3.0)

array_key_last — Получает последний ключ массива

Описание

array_key_last ( array $array ) : mixed

Получить последний ключ заданного массива array, не затрагивая внутренний указатель массива.

Список параметров

array

Массив.

Возвращаемые значения

Возвращает последний ключ массива array, если он не пустой; NULL в противном случае.

Смотрите также

  • array_key_first() - Получает первый ключ массива
  • end() - Устанавливает внутренний указатель массива на его последний элемент


Возвращает все или некоторое подмножество ключей массива

  • « array_key_last
  • array_map »
  • PHP Manual
  • Функции для работы с массивами
  • Возвращает все или некоторое подмножество ключей массива

array_keys

(PHP 4, PHP 5, PHP 7)

array_keys — Возвращает все или некоторое подмножество ключей массива

Описание

array_keys ( array $array ) : array
array_keys ( array $array , mixed $search_value [, bool $strict = FALSE ] ) : array

Функция array_keys() возвращает числовые и строковые ключи, содержащиеся в массиве array.

Если указан параметр search_value, функция возвращает ключи у которых значения элементов массива совпадают с этим параметром. В обратном случае, функция возвращает все ключи массива array.

Список параметров

array

Массив, содержащий возвращаемые ключи.

search_value

Если указано, будут возвращены только ключи у которых значения элементов массива совпадают с этим параметром.

strict

Определяет использование строгой проверки на равенство (===) при поиске.

Возвращаемые значения

Возвращает массив со всеми ключами array.

Примеры

Пример #1 Пример использования array_keys()

<?php
$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
)

Смотрите также

  • array_values() - Выбирает все значения массива
  • array_combine() - Создает новый массив, используя один массив в качестве ключей, а другой для его значений
  • array_key_exists() - Проверяет, присутствует ли в массиве указанный ключ или индекс
  • array_search() - Осуществляет поиск данного значения в массиве и возвращает ключ первого найденного элемента в случае удачи


Применяет callback-функцию ко всем элементам указанных массивов

  • « array_keys
  • array_merge_recursive »
  • PHP Manual
  • Функции для работы с массивами
  • Применяет callback-функцию ко всем элементам указанных массивов

array_map

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

array_map — Применяет callback-функцию ко всем элементам указанных массивов

Описание

array_map ( callable $callback , array $array1 [, array $... ] ) : array

Функция array_map() возвращает array, содержащий результаты применения callback-функции к соответствующему индексу array1 (и ..., если указано больше массивов), используемого в качестве аргумента callback-функции. Количество параметров, передаваемых callback-функции, должно совпадать с количеством массивов, переданным функции array_map().

Список параметров

callback

Callback-функция, применяемая к каждому элементу в каждом массиве.

NULL может быть передан в качестве значения callback для выполнения zip операции с несколькими массивами. Если указан только array1, array_map() вернет входной массив.

array1

Массив, к которому применяется callback-функция.

...

Дополнительные массивы для обработки callback-функцией.

Возвращаемые значения

Возвращает массив, содержащий результаты применения callback-функции к соответствующему индексу array1 (и ..., если указано больше массивов), используемого в качестве аргумента для callback-функции.

Возвращенный массив сохранит ключи аргумента массива тогда и только тогда, когда будет передан ровно один массив. Если передано более одного массива, возвращенный массив будет иметь последовательные целочисленные ключи.

Примеры

Пример #1 Пример использования array_map()

<?php
function cube($n)
{
    return ($n * $n * $n);
}

$a = [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() вместе с лямбда-функцией (начиная с PHP 5.3.0)

<?php
$func = function($value) {
    return $value * 2;
};

print_r(array_map($func, range(1, 5)));
?>
Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)

Пример #3 Пример использования array_map(): обработка нескольких массивов

<?php
function show_Spanish($n, $m)
{
    return "Число {$n} по-испански - {$m}";
}

function map_Spanish($n, $m)
{
    return [$n => $m];
}

$a = [1, 2, 3, 4, 5];
$b = ['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);
?>

Результат выполнения данного примера:

// вывод $c
Array
(
    [0] => Число 1 по-испански - uno
    [1] => Число 2 по-испански - dos
    [2] => Число 3 по-испански - tres
    [3] => Число 4 по-испански - cuatro
    [4] => Число 5 по-испански - cinco
)

// вывод $d
Array
(
    [0] => Array
        (
            [1] => uno
        )

    [1] => Array
        (
            [2] => dos
        )

    [2] => Array
        (
            [3] => tres
        )

    [3] => Array
        (
            [4] => cuatro
        )

    [4] => Array
        (
            [5] => cinco
        )

)

Обычно при обработке двух или более массивов, они имеют одинаковую длину, так как callback-функция применяется параллельно к соответствующим элементам массивов. Если массивы имеют различную длину, более короткие из них дополняется элементами с пустыми значениями до длины самого длинного массива.

Интересным эффектом при использовании этой функции является создание массива массивов, что может быть достигнуто путем использования значения NULL в качестве имени callback-функции.

Пример #4 Выполнение zip операции с массивами

<?php
$a = [1, 2, 3, 4, 5];
$b = ['one', 'two', 'three', 'four', 'five'];
$c = ['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
        )

)

Пример #5 NULL callback только с array1

<?php
$array = [1, 2, 3];
var_dump(array_map(null, $array));
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

Пример #6 Использование array_map() со строковыми ключами

<?php
$arr = ['stringkey' => 'value'];
function cb1($a) {
    return [$a];
}
function cb2($a, $b) {
    return [$a, $b];
}
var_dump(array_map('cb1', $arr));
var_dump(array_map('cb2', $arr, $arr));
var_dump(array_map(null,  $arr));
var_dump(array_map(null, $arr, $arr));
?>

Результат выполнения данного примера:

array(1) {
  ["stringkey"]=>
  array(1) {
    [0]=>
    string(5) "value"
  }
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}
array(1) {
  ["stringkey"]=>
  string(5) "value"
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}

Смотрите также

  • array_filter() - Фильтрует элементы массива с помощью callback-функции
  • array_reduce() - Итеративно уменьшает массив к единственному значению, используя callback-функцию
  • array_walk() - Применяет заданную пользователем функцию к каждому элементу массива
  • Информация о типе callback


Рекурсивное слияние одного или более массивов

  • « array_map
  • array_merge »
  • PHP Manual
  • Функции для работы с массивами
  • Рекурсивное слияние одного или более массивов

array_merge_recursive

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

array_merge_recursive — Рекурсивное слияние одного или более массивов

Описание

array_merge_recursive ([ array $... ] ) : array

Функция array_merge_recursive() сливает элементы двух или более массивов таким образом, что значения одного массива присоединяются в конец другого. Возвращает результирующий массив.

Если входные массивы имеют одинаковые строковые ключи, то значения этих ключей сливаются в массив, и это делается рекурсивно, так что если одно из значений является массивом, то функция сливает его с соответствующим значением в другом массиве. Однако, если массивы имеют одинаковые числовые ключи, каждое последующее значение не заменит исходное значение, а будет добавлено в конец массива.

Список параметров

...

Рекурсивно сливаемые массивы.

Возвращаемые значения

Массив значений, полученный в результате слияния аргументов вместе. Если вызывается без аргументов, возвращает пустой array.

Список изменений

Версия | Описание
7.4.0 | Функция теперь может быть вызвана без каких-либо параметров. Ранее требовался хотя бы один параметр.

Примеры

Пример #1 Пример использования array_merge_recursive()

<?php
$ar1 = array("color" => array("favorite" => "red"), 5);
$ar2 = array(10, "color" => array("favorite" => "green", "blue"));
$result = array_merge_recursive($ar1, $ar2);
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [color] => Array
        (
            [favorite] => Array
                (
                    [0] => red
                    [1] => green
                )

            [0] => blue
        )

    [0] => 5
    [1] => 10
)

Смотрите также

  • array_merge() - Сливает один или большее количество массивов
  • array_replace_recursive() - Рекурсивно заменяет элементы первого массива элементами переданных массивов


Сливает один или большее количество массивов

  • « array_merge_recursive
  • array_multisort »
  • PHP Manual
  • Функции для работы с массивами
  • Сливает один или большее количество массивов

array_merge

(PHP 4, PHP 5, PHP 7)

array_merge — Сливает один или большее количество массивов

Описание

array_merge ([ array $... ] ) : array

Сливает элементы одного или большего количества массивов таким образом, что значения одного массива присоединяются к концу предыдущего. Результатом работы функции является новый массив.

Если входные массивы имеют одинаковые строковые ключи, тогда каждое последующее значение будет заменять предыдущее. Однако, если массивы имеют одинаковые числовые ключи, значение, упомянутое последним, не заменит исходное значение, а будет добавлено в конец массива.

В результирующем массиве значения исходного массива с числовыми ключами будут перенумерованы в возрастающем порядке, начиная с нуля.

Список параметров

...

Сливаемые массивы.

Возвращаемые значения

Возвращает результирующий массив. Если вызывается без аргументов, возвращает пустой array.

Список изменений

Версия | Описание
7.4.0 | Функция теперь может быть вызвана без каких-либо параметров. Ранее требовался хотя бы один параметр.

Примеры

Пример #1 Пример использования array_merge()

<?php
$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()

<?php
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
?>

Помните, что числовые ключи будут перенумерованы!

Array
(
    [0] => data
)

Если вы хотите дополнить первый массив элементами второго без перезаписи элементов первого массива и без переиндексации, используйте оператор объединения массивов +:

<?php
$array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a');
$array2 = array(1 => 'one_b', 3 => 'three_b', 4 => 'four_b');
$result = $array1 + $array2;
var_dump($result);
?>

Ключи из первого массива будут сохранены. Если ключ массива существует в обоих массивах, то будет использован элемент из первого массива, а соответствующий элемент из второго массива будет проигнорирован.

array(5) {
  [0]=>
  string(6) "zero_a"
  [2]=>
  string(5) "two_a"
  [3]=>
  string(7) "three_a"
  [1]=>
  string(5) "one_b"
  [4]=>
  string(6) "four_b"
}

Пример #3 Пример использования array_merge() с не массивами

<?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_replace() - Заменяет элементы массива элементами других переданных массивов
  • array_combine() - Создает новый массив, используя один массив в качестве ключей, а другой для его значений
  • Операторы, работающие с массивами


Сортирует несколько массивов или многомерные массивы

  • « array_merge
  • array_pad »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует несколько массивов или многомерные массивы

array_multisort

(PHP 4, PHP 5, PHP 7)

array_multisort — Сортирует несколько массивов или многомерные массивы

Описание

array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] ) : bool

Функция array_multisort() может быть использована для сортировки сразу нескольких массивов или одного многомерного массива в соответствии с одной или несколькими размерностями.

Ассоциативные (string) ключи будут сохранены, но числовые ключи будут переиндексированы.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array1

Сортируемый массив (array).

array1_sort_order

Порядок для сортировки вышеуказанного аргумента типа array. Или SORT_ASC для сортировки по возрастанию, или SORT_DESC для сортировки по убыванию.

Этот аргумент может меняться местами с array1_sort_flags или вообще быть пропущенным. В этом случае подразумевается значение SORT_ASC.

array1_sort_flags

Настройки сортировки для вышеуказанного аргумента array:

Флаг способа сортировки:

  • SORT_REGULAR - обычное сравнение элементов (без изменения типов)
  • SORT_NUMERIC - сравнение элементов как чисел
  • SORT_STRING - сравнение элементов как строк
  • SORT_LOCALE_STRING - сравнение элементов как строк, учитывая текущую локаль. Используется локаль, которую можно менять с помощью функции setlocale()
  • SORT_NATURAL - сравнение элементов как строк с использованием алгоритма "natural order", как в функции natsort()
  • SORT_FLAG_CASE - может быть объединен (бинарное ИЛИ) с SORT_STRING или SORT_NATURAL для сортировки без учета регистра

Этот аргумент может меняться местами с array1_sort_order или вообще быть пропущенным. В этом случае подразумевается значение SORT_REGULAR.

...

Дополнительные массивы, необязательно следующие после порядка сортировки и флагов. Сравниваются только элементы соответствующие таким же элементам в предыдущих массивах. Другими словами, производится сортировка в лексикографическом порядке.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.4.0 | Добавлены SORT_NATURAL и SORT_FLAG_CASE в возможные флаги сортировки array1_sort_flags.
5.3.0 | Добавлен SORT_LOCALE_STRING в возможные флаги сортировки array1_sort_flags.

Примеры

Пример #1 Сортировка нескольких массивов

<?php
$ar1 = array(10, 100, 100, 0);
$ar2 = array(1, 3, 2, 4);
array_multisort($ar1, $ar2);

var_dump($ar1);
var_dump($ar2);
?>

В вышеприведенном примере, после того, как будет осуществлена сортировка, первый массив будет содержать 0, 10, 100, 100. Второй - 4, 1, 2, 3. Элементы второго массива, соответствующие идентичным элементам первого (100 и 100), также будут отсортированы.

array(4) {
  [0]=> int(0)
  [1]=> int(10)
  [2]=> int(100)
  [3]=> int(100)
}
array(4) {
  [0]=> int(4)
  [1]=> int(1)
  [2]=> int(2)
  [3]=> int(3)
}

Пример #2 Сортировка многомерного массива

<?php
$ar = array(
       array("10", 11, 100, 100, "a"),
       array(   1,  2, "2",   3,   1)
      );
array_multisort($ar[0], SORT_ASC, SORT_STRING,
                $ar[1], SORT_NUMERIC, SORT_DESC);
var_dump($ar);
?>

В вышеприведенном примере, после сортировки, первый массив будет содержать "10", 100, 100, 11, "a" (его элементы были отсортированы в возрастающем порядке), а второй массив будет содержать 1, 3, "2", 2, 1 (элементы отсортированы как числа, в порядке убывания).

array(2) {
  [0]=> array(5) {
    [0]=> string(2) "10"
    [1]=> int(100)
    [2]=> int(100)
    [3]=> int(11)
    [4]=> string(1) "a"
  }
  [1]=> array(5) {
    [0]=> int(1)
    [1]=> int(3)
    [2]=> string(1) "2"
    [3]=> int(2)
    [4]=> int(1)
  }
}

Пример #3 Сортировка результатов из базы данных

В этом примере, каждый элемент массива data представляет собой ряд таблицы. Такой тип данных типичен для записей базы данных.

Примерные данные:

# том  | издание
volume | edition
-------+--------
    67 |       2
    86 |       1
    85 |       6
    98 |       2
    86 |       6
    67 |       7

Данные представлены в виде массива с именем data. Обычно их можно получить, например, с помощью цикла из функции mysqli_fetch_assoc().

<?php
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
?>

В нашем примере мы будем сортировать по volume в убывающем порядке, а по edition - в возрастающем.

У нас есть массив строк, но array_multisort() необходим массив столбцов, поэтому сначала мы используем следующий код для получения столбцов, а потом выполним сортировку.

<?php
// Получение списка столбцов
foreach ($data as $key => $row) {
    $volume[$key]  = $row['volume'];
    $edition[$key] = $row['edition'];
}

// Начиная с PHP 5.5.0 вы можете использовать array_column() вместо вышеуказанного кода
$volume  = array_column($data, 'volume');
$edition = array_column($data, 'edition');

// Сортируем данные по volume по убыванию и по edition по возрастанию
// Добавляем $data в качестве последнего параметра, для сортировки по общему ключу
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>

Теперь данные отсортированы и будут выглядеть вот так:

volume | edition
-------+--------
    98 |       2
    86 |       1
    86 |       6
    85 |       6
    67 |       2
    67 |       7

Пример #4 Сортировка без учета регистра

Обе константы SORT_STRING и SORT_REGULAR учитывают регистр при сортировке, строки, начинающиеся с заглавной буквы будут выставлены раньше строк, начинающихся со строчной буквы.

Для выполнения регистронезависимой сортировки, необходимо использовать копию исходного массива приведенную к нижнему регистру.

<?php
$array = array('Alpha', 'atomic', 'Beta', 'bank');
$array_lowercase = array_map('strtolower', $array);

array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array);

print_r($array);
?>

Результат выполнения данного примера:

Array
(
    [0] => Alpha
    [1] => atomic
    [2] => bank
    [3] => Beta
)

Смотрите также

  • usort() - Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов
  • Сравнение функций сортировки массивов


Дополнить массив определенным значением до указанной длины

  • « array_multisort
  • array_pop »
  • PHP Manual
  • Функции для работы с массивами
  • Дополнить массив определенным значением до указанной длины

array_pad

(PHP 4, PHP 5, PHP 7)

array_pad — Дополнить массив определенным значением до указанной длины

Описание

array_pad ( array $array , int $size , mixed $value ) : array

Функция array_pad() возвращает копию массива array, дополненного до размера size элементами со значением value. Если параметр size положителен, то массив увеличивается вправо, если отрицателен - влево. Если абсолютное значение параметра size меньше или равно размеру массива array, функция не производит никаких операций. За один раз возможно добавить максимум 1048576 элементов.

Список параметров

array

Исходный массив, к которому дополняются элементы.

size

Новый размер массива.

value

Дополняемое значение, если длина массива array меньше size.

Возвращаемые значения

Возвращает копию array, дополненного до размера указанного size значением value. Если параметр size положителен, то массив дополняется вправо, если он отрицателен - влево. Если абсолютное значение size меньше либо равно длине array, то дополнение не происходит.

Примеры

Пример #1 Пример использования array_pad()

<?php
$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_fill() - Заполняет массив значениями
  • range() - Создает массив, содержащий диапазон элементов


Извлекает последний элемент массива

  • « array_pad
  • array_product »
  • PHP Manual
  • Функции для работы с массивами
  • Извлекает последний элемент массива

array_pop

(PHP 4, PHP 5, PHP 7)

array_pop — Извлекает последний элемент массива

Описание

array_pop ( array &$array ) : mixed

array_pop() извлекает и возвращает значение последнего элемента массива array, уменьшая размер array на один элемент.

Замечание: Эта функция при вызове сбрасывает указатель массива, переданного параметром.

Список параметров

array

Массив, из которого берется значение.

Возвращаемые значения

Возвращает значение последнего элемента массива array. Если array пуст (или не является массивом), будет возвращен NULL.

Ошибки

При вызове этой функции с не массивом будет вызвана ошибка уровня E_WARNING.

Примеры

Пример #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_pop
  • array_push »
  • PHP Manual
  • Функции для работы с массивами
  • Вычислить произведение значений массива

array_product

(PHP 5 >= 5.1.0, PHP 7)

array_product — Вычислить произведение значений массива

Описание

array_product ( array $array ) : number

array_product() возвращает произведение значений массива.

Список параметров

array

Массив.

Возвращаемые значения

Возвращает произведение как тип integer или float.

Список изменений

Версия | Описание
5.3.6 | Результатом произведения пустого массива теперь является 1, тогда как ранее данная функция возвращала 0.

Примеры

Пример #1 Примеры использования array_product()

<?php

$a = array(2, 4, 6, 8);
echo "product(a) = " . array_product($a) . "\n";
echo "product(array()) = " . array_product(array()) . "\n";

?>

Результат выполнения данного примера:

product(a) = 384
product(array()) = 1


Добавляет один или несколько элементов в конец массива

  • « array_product
  • array_rand »
  • PHP Manual
  • Функции для работы с массивами
  • Добавляет один или несколько элементов в конец массива

array_push

(PHP 4, PHP 5, PHP 7)

array_push — Добавляет один или несколько элементов в конец массива

Описание

array_push ( array &$array [, mixed $... ] ) : int

array_push() использует array как стек и добавляет переданные значения в конец массива array. Длина array увеличивается на количество переданных значений. Имеет тот же эффект, что и выражение:

<?php
$array[] = $var;
?>
повторенное для каждого переданного значения.

Замечание: Вместо использования array_push() для добавления одного элемента в массив, лучше использовать $array[] = , потому что в этом случае не происходит затрат на вызов функции.

Замечание: array_push() вызовет предупреждение, если первый аргумент не является массивом. Это отличается от поведения конструкции $var[], в случае которой будет создан новый массив.

Список параметров

array

Входной массив.

...

Значения, добавляемые в конец массива array.

Возвращаемые значения

Возвращает новое количество элементов в массиве.

Список изменений

Версия | Описание
7.3.0 | Теперь эта функция может быть вызвана с одним параметром. Ранее требовалось минимум два параметра.

Примеры

Пример #1 Пример использования array_push()

<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
?>

Результат выполнения данного примера:

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
    [3] => raspberry
)

Смотрите также

  • array_pop() - Извлекает последний элемент массива
  • array_shift() - Извлекает первый элемент массива
  • array_unshift() - Добавляет один или несколько элементов в начало массива


Выбирает один или несколько случайных ключей из массива

  • « array_push
  • array_reduce »
  • PHP Manual
  • Функции для работы с массивами
  • Выбирает один или несколько случайных ключей из массива

array_rand

(PHP 4, PHP 5, PHP 7)

array_rand — Выбирает один или несколько случайных ключей из массива

Описание

array_rand ( array $array [, int $num = 1 ] ) : mixed

Выбирает одно или несколько случайных значений из массива. Возвращает ключ (или ключи) данных случайных элементов. Данная функция использует псевдослучайный генератор и не предназначена для использования в криптографических целях.

Список параметров

array

Входной массив.

num

Определяет количество выбираемых элементов.

Возвращаемые значения

Если вы выбираете только одно значение, функция array_rand() возвращает ключ, соответствующий этому значению. В обратном случае, она возвращает массив ключей, соответствующих случайным значениям. Это сделано для того, чтобы дать возможность выбрать из массива как случайные значения, так и случайные ключи. Попытка выбрать больше элементов, чем есть в массиве, сгенерирует ошибку уровня E_WARNING и вернет NULL.

Список изменений

Версия | Описание
7.1.0 | Внутренний алгоритм получения случайных чисел изменен с функции rand библиотеки libc на генератор на базе » Вихря Мерсена.
5.2.10 | Возвращаемый массив ключей больше не возвращается в случайном порядке.
4.2.0 | Генератор случайных чисел инициализируется автоматически.

Примеры

Пример #1 Пример использования array_rand()

<?php
$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() - Перемешивает массив


Итеративно уменьшает массив к единственному значению, используя callback-функцию

  • « array_rand
  • array_replace_recursive »
  • PHP Manual
  • Функции для работы с массивами
  • Итеративно уменьшает массив к единственному значению, используя callback-функцию

array_reduce

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

array_reduce — Итеративно уменьшает массив к единственному значению, используя callback-функцию

Описание

array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] ) : mixed

array_reduce() итеративно применяет callback-функцию callback к элементам массива array и, таким образом, сводит массив к единственному значению.

Список параметров

array

Входной массив.

callback
callback ( mixed $carry , mixed $item ) : mixed
carry

Содержит результирующее значение с предыдущей итерации; в случае же первой итерации содержит значение параметра initial.

item

Содержит значение текущей итерации.

initial

Если передан необязательный параметр initial, то он будет использован в начале процесса, или в качестве окончательного результата в случае пустого массива.

Возвращаемые значения

Возвращает получившееся значение.

Если массив пуст и не передан параметр initial, array_reduce() вернет NULL.

Список изменений

Версия | Описание
5.3.0 | Параметр initial теперь позволяет передать тип mixed, ранее передавался только тип integer.

Примеры

Пример #1 Пример использования array_reduce()

<?php
function sum($carry, $item)
{
    $carry += $item;
    return $carry;
}

function product($carry, $item)
{
    $carry *= $item;
    return $carry;
}

$a = array(1, 2, 3, 4, 5);
$x = array();

var_dump(array_reduce($a, "sum")); // int(15)
var_dump(array_reduce($a, "product", 10)); // int(1200), потому что: 10*1*2*3*4*5
var_dump(array_reduce($x, "sum", "Нет данных")); // string(19) "Нет данных"
?>

Смотрите также

  • array_filter() - Фильтрует элементы массива с помощью callback-функции
  • array_map() - Применяет callback-функцию ко всем элементам указанных массивов
  • array_unique() - Убирает повторяющиеся значения из массива
  • array_count_values() - Подсчитывает количество всех значений массива


Рекурсивно заменяет элементы первого массива элементами переданных массивов

  • « array_reduce
  • array_replace »
  • PHP Manual
  • Функции для работы с массивами
  • Рекурсивно заменяет элементы первого массива элементами переданных массивов

array_replace_recursive

(PHP 5 >= 5.3.0, PHP 7)

array_replace_recursive — Рекурсивно заменяет элементы первого массива элементами переданных массивов

Описание

array_replace_recursive ( array $array1 [, array $... ] ) : array

array_replace_recursive() заменяет значения массива array1 на соответствующие по ключам значения из всех следующих массивов. Если ключ из первого массива есть во втором, его значение будет заменено на значение из второго массива. Если ключ есть во втором массиве, но отсутствует в первом, он будет создан в первом массиве. Если ключ есть только в первом массиве, то он остается как есть. Если передано несколько массивов, они будут обработаны по порядку, последующие перезаписывают предыдущие значения.

array_replace_recursive() - рекурсивная функция: она будет рекурсивно углубляться в массивы и применять к всем внутренним значениям один и тот же процесс.

Если значение, переданное в первый массив является скалярным, оно будет заменено значением во втором массиве, которое может быть скалярным значением или массивом. Если оба значения, переданные в первый массив и во второй массив - массивы, array_replace_recursive() будет заменять их значения рекурсивно.

Список параметров

array1

Массив, элементы которого будут заменены.

...

Необязательно. Массивы, из которых будут браться элементы для замены.

Возвращаемые значения

Возвращает массив (array) или NULL, если произошла ошибка.

Примеры

Пример #1 Пример использования array_replace_recursive()

<?php
$base = array('citrus' => array( "orange") , 'berries' => array("blackberry", "raspberry"), );
$replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry'));

$basket = array_replace_recursive($base, $replacements);
print_r($basket);

$basket = array_replace($base, $replacements);
print_r($basket);
?>

Результат выполнения данного примера:

Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
            [1] => raspberry
        )

)
Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
        )

)

Пример #2 array_replace_recursive() и рекурсивное поведение

<?php
$base = array('citrus' => array("orange") , 'berries' => array("blackberry", "raspberry"), 'others' => 'banana' );
$replacements = array('citrus' => 'pineapple', 'berries' => array('blueberry'), 'others' => array('litchis'));
$replacements2 = array('citrus' => array('pineapple'), 'berries' => array('blueberry'), 'others' => 'litchis');

$basket = array_replace_recursive($base, $replacements, $replacements2);
print_r($basket);

?>

Результат выполнения данного примера:

Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
            [1] => raspberry
        )

    [others] => litchis
)

Смотрите также

  • array_replace() - Заменяет элементы массива элементами других переданных массивов
  • array_merge_recursive() - Рекурсивное слияние одного или более массивов


Заменяет элементы массива элементами других переданных массивов

  • « array_replace_recursive
  • array_reverse »
  • PHP Manual
  • Функции для работы с массивами
  • Заменяет элементы массива элементами других переданных массивов

array_replace

(PHP 5 >= 5.3.0, PHP 7)

array_replace — Заменяет элементы массива элементами других переданных массивов

Описание

array_replace ( array $array1 [, array $... ] ) : array

array_replace() замещает значения массива array1 значениями с такими же ключами из других переданных массивов. Если ключ из первого массива присутствует во втором массиве, его значение заменяется на значение из второго массива. Если ключ есть во втором массиве, но отсутствует в первом - он будет создан в первом массиве. Если ключ присутствует только в первом массиве, то сохранится как есть. Если для замены передано несколько массивов, они будут обработаны в порядке передачи и последующие массивы будут перезаписывать значения из предыдущих.

array_replace() не рекурсивная: значения первого массива будут заменены вне зависимости от типа значений второго массива, даже если это будут вложенные массивы.

Список параметров

array1

Массив, элементы которого требуется заменить.

...

Массивы, из которых будут браться элементы для замены. Значения следующего массива затирают значения предыдущего.

Возвращаемые значения

Возвращает массив (array) или NULL в случае ошибки.

Примеры

Пример #1 Пример использования array_replace()

<?php
$base = array("orange", "banana", "apple", "raspberry");
$replacements = array(0 => "pineapple", 4 => "cherry");
$replacements2 = array(0 => "grape");

$basket = array_replace($base, $replacements, $replacements2);
print_r($basket);
?>

Результат выполнения данного примера:

Array
(
    [0] => grape
    [1] => banana
    [2] => apple
    [3] => raspberry
    [4] => cherry
)

Смотрите также

  • array_replace_recursive() - Рекурсивно заменяет элементы первого массива элементами переданных массивов
  • array_merge() - Сливает один или большее количество массивов


Возвращает массив с элементами в обратном порядке

  • « array_replace
  • array_search »
  • PHP Manual
  • Функции для работы с массивами
  • Возвращает массив с элементами в обратном порядке

array_reverse

(PHP 4, PHP 5, PHP 7)

array_reverse — Возвращает массив с элементами в обратном порядке

Описание

array_reverse ( array $array [, bool $preserve_keys = FALSE ] ) : array

Принимает массив array и возвращает новый массив, содержащий элементы исходного массива в обратном порядке.

Список параметров

array

Входной массив.

preserve_keys

Если установлено в TRUE, то числовые ключи будут сохранены. Нечисловые ключи не подвержены этой опции и всегда сохраняются.

Возвращаемые значения

Возвращает массив с элементами в обратном порядке.

Примеры

Пример #1 Пример использования array_reverse()

<?php
$input  = array("php", 4.0, array("green", "red"));
$reversed = array_reverse($input);
$preserved = array_reverse($input, true);

print_r($input);
print_r($reversed);
print_r($preserved);
?>

Результат выполнения данного примера:

Array
(
    [0] => php
    [1] => 4
    [2] => Array
        (
            [0] => green
            [1] => red
        )

)
Array
(
    [0] => Array
        (
            [0] => green
            [1] => red
        )

    [1] => 4
    [2] => php
)
Array
(
    [2] => Array
        (
            [0] => green
            [1] => red
        )

    [1] => 4
    [0] => php
)

Смотрите также

  • array_flip() - Меняет местами ключи с их значениями в массиве


Осуществляет поиск данного значения в массиве и возвращает ключ первого найденного элемента в случае удачи

  • « array_reverse
  • array_shift »
  • PHP Manual
  • Функции для работы с массивами
  • Осуществляет поиск данного значения в массиве и возвращает ключ первого найденного элемента в случае удачи

array_search

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

array_search — Осуществляет поиск данного значения в массиве и возвращает ключ первого найденного элемента в случае удачи

Описание

array_search ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) : mixed

Ищет в haystack значение needle.

Список параметров

needle

Искомое значение.

Замечание:

Если needle является строкой, сравнение происходит с учетом регистра.

haystack

Массив.

strict

Если третий параметр strict установлен в TRUE, то функция array_search() будет искать идентичные элементы в haystack. Это означает, что также будут проверяться типы needle в haystack, а объекты должны быть одним и тем же экземпляром.

Возвращаемые значения

Возвращает ключ для needle, если он был найден в массиве, иначе FALSE.

Если needle присутствует в haystack более одного раза, будет возвращён первый найденный ключ. Для того, чтобы возвратить ключи для всех найденных значений, используйте функцию array_keys() с необязательным параметром search_value.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
5.3.0 | Вместе со всеми внутренними функциями PHP, начиная с версии 5.3.0, array_search() возвращает NULL, если ей были переданы неверные параметры.

Примеры

Пример #1 Пример использования array_search()

<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');

$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array);   // $key = 1;
?>

Смотрите также

  • array_keys() - Возвращает все или некоторое подмножество ключей массива
  • array_values() - Выбирает все значения массива
  • array_key_exists() - Проверяет, присутствует ли в массиве указанный ключ или индекс
  • in_array() - Проверяет, присутствует ли в массиве значение


Извлекает первый элемент массива

  • « array_search
  • array_slice »
  • PHP Manual
  • Функции для работы с массивами
  • Извлекает первый элемент массива

array_shift

(PHP 4, PHP 5, PHP 7)

array_shift — Извлекает первый элемент массива

Описание

array_shift ( array &$array ) : mixed

array_shift() извлекает первое значение массива array и возвращает его, сокращая размер array на один элемент. Все числовые ключи будут изменены таким образом, что нумерация массива начнётся с нуля, в то время как строковые ключи останутся прежними.

Замечание: Эта функция при вызове сбрасывает указатель массива, переданного параметром.

Список параметров

array

Входной массив.

Возвращаемые значения

Возвращает извлекаемое значение или NULL, если array пуст или не является массивом.

Примеры

Пример #1 Пример использования array_shift()

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
?>

Результат выполнения данного примера:

Array
(
    [0] => banana
    [1] => apple
    [2] => raspberry
)

и значение orange будет присвоено переменной $fruit.

Смотрите также

  • array_unshift() - Добавляет один или несколько элементов в начало массива
  • array_push() - Добавляет один или несколько элементов в конец массива
  • array_pop() - Извлекает последний элемент массива


Выбирает срез массива

  • « array_shift
  • array_splice »
  • PHP Manual
  • Функции для работы с массивами
  • Выбирает срез массива

array_slice

(PHP 4, PHP 5, PHP 7)

array_slice — Выбирает срез массива

Описание

array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = FALSE ]] ) : array

array_slice() возвращает последовательность элементов массива array, определённую параметрами offset и length.

Список параметров

array

Входной массив.

offset

Если параметр offset неотрицательный, последовательность начнётся на указанном расстоянии от начала array.

Если offset отрицательный, последовательность начнётся с конца array.

Замечание:

Обратите внимание, что параметр offset обозначает положение в массиве, а не ключ.

length

Если в эту функцию передан положительный параметр length, последовательность будет включать количество элементов меньшее или равное length.

Если количество элементов массива меньше чем параметр length, то только доступные элементы массива будут присутствовать.

Если в эту функцию передан отрицательный параметр length, последовательность остановится на указанном расстоянии от конца массива.

Если он опущен, последовательность будет содержать все элементы с offset до конца массива array.

preserve_keys

Замечание:

Обратите внимание, что по умолчанию array_slice() сбрасывает ключи массива. Вы можете переопределить это поведение, установив параметр preserve_keys в TRUE. Строковые ключи сохраняются, независимо от значения этого параметра.

Возвращаемые значения

Возвращает срез. Если смещение больше длины массива, то будет возвращен пустой массив.

Список изменений

Версия | Описание
5.2.4 | Значение параметра length по умолчанию изменено на NULL. Значение NULL в качестве length теперь означает, что в качестве этого значения будет использована длина массива array. До этой версии NULL в параметре length означал 0, то есть ничего не возвращалось.
5.0.2 | Добавлен необязательный параметр preserve_keys.

Примеры

Пример #1 Пример использования array_slice()

<?php
$input = array("a", "b", "c", "d", "e");

$output = array_slice($input, 2);      // возвращает "c", "d" и "e"
$output = array_slice($input, -2, 1);  // возвращает "d"
$output = array_slice($input, 0, 3);   // возвращает "a", "b" и "c"

// обратите внимание на различия в индексах массивов
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
)

Пример #2 Пример использования array_slice() с одномерным массивом

<?php
$input = array(1 => "a", "b", "c", "d", "e");
print_r(array_slice($input, 1, 2));
?>

Результат выполнения данного примера:

Array
(
    [0] => b
    [1] => c
)

Пример #3 Пример использования array_slice() с массивом из смешанных ключей

<?php
$ar = array('a'=>'apple', 'b'=>'banana', '42'=>'pear', 'd'=>'orange');
print_r(array_slice($ar, 0, 3));
print_r(array_slice($ar, 0, 3, true));
?>

Результат выполнения данного примера:

Array
(
    [a] => apple
    [b] => banana
    [0] => pear
)
Array
(
    [a] => apple
    [b] => banana
    [42] => pear
)

Смотрите также

  • array_chunk() - Разбивает массив на части
  • array_splice() - Удаляет часть массива и заменяет её чем-нибудь ещё
  • unset() - Удаляет переменную


Удаляет часть массива и заменяет её чем-нибудь ещё

  • « array_slice
  • array_sum »
  • PHP Manual
  • Функции для работы с массивами
  • Удаляет часть массива и заменяет её чем-нибудь ещё

array_splice

(PHP 4, PHP 5, PHP 7)

array_splice — Удаляет часть массива и заменяет её чем-нибудь ещё

Описание

array_splice ( array &$input , int $offset [, int $length = count($input) [, mixed $replacement = array() ]] ) : array

Удаляет length элементов, расположенных на расстоянии offset из массива input, и заменяет их элементами массива replacement, если он передан в качестве параметра.

Замечание:

Обратите внимание, что числовые ключи в массиве input не сохраняются.

Замечание: Если параметр replacement не является массивом, он будет преобразован к нему (то есть (array) $parameter). Это может привести к неожиданным результатам при использовании объекта или NULL в качестве replacement.

Список параметров

input

Входной массив.

offset

Если параметр offset положителеный, будут удалены элементы, находящиеся на расстоянии offset от начала input.

Если offset отрицателеный, будут удалены элементы, находящиеся на расстоянии offset от конца input.

length

Если параметр length опущен, будут удалены все элементы начиная с позиции offset и до конца массива.

Если length указан и он положителен, то будет удалено именно столько элементов.

Если параметр length отрицателен, то конец удаляемой части элементов будет отстоять на это количество от конца массива.

Если length задан как 0, ничего удалено не будет.

Подсказка

Совет: для того, чтобы удалить все элементы массива, начиная с позиции offset до конца массива, в то время как указан параметр replacement, используйте count($input) в качестве параметра length.

replacement

Если передан массив replacement в качестве аргумента, тогда удалённые элементы будут заменены элементами этого массива.

Если параметры offset и length таковы, что из исходного массива не будет ничего удалено, тогда элементы массива replacement будут вставлены на позицию offset.

Замечание:

Обратите внимание, что ключи массива replacement не сохраняются.

Совет: если replacement является просто одним элементом, нет необходимости заключать его в array() или квадратные скобки, если только этот элемент сам не является массивом, объектом или NULL.

Возвращаемые значения

Возвращает массив, содержащий удалённые элементы.

Примеры

Пример #1 Примеры использования array_splice()

<?php
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2);
var_dump($input);

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
var_dump($input);

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, count($input), "orange");
var_dump($input);

$input = array("red", "green", "blue", "yellow");
array_splice($input, -1, 1, array("black", "maroon"));
var_dump($input);
?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  string(3) "red"
  [1]=>
  string(5) "green"
}
array(2) {
  [0]=>
  string(3) "red"
  [1]=>
  string(6) "yellow"
}
array(2) {
  [0]=>
  string(3) "red"
  [1]=>
  string(6) "orange"
}
array(5) {
  [0]=>
  string(3) "red"
  [1]=>
  string(5) "green"
  [2]=>
  string(4) "blue"
  [3]=>
  string(5) "black"
  [4]=>
  string(6) "maroon"
}

Пример #2 Примеры использования array_splice()

Следующие выражения эквивалентны:

<?php

// добавить два элемента в $input
array_push($input, $x, $y);
array_splice($input, count($input), 0, array($x, $y));

// удалить последний элемент из $input
array_pop($input);
array_splice($input, -1);

// удалить первый элемент из $input
array_shift($input);
array_splice($input, 0, 1);

// добавить элемент в начало $input
array_unshift($input, $x, $y);
array_splice($input, 0, 0, array($x, $y));

// заменить в $input элемент с индексом $x на значение $y
$input[$x] = $y; // для массивов, где ключ равен смещению
array_splice($input, $x, 1, $y);
?>

Смотрите также

  • array_merge() - Сливает один или большее количество массивов
  • array_slice() - Выбирает срез массива
  • unset() - Удаляет переменную


Вычисляет сумму значений массива

  • « array_splice
  • array_udiff_assoc »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет сумму значений массива

array_sum

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

array_sum — Вычисляет сумму значений массива

Описание

array_sum ( array $array ) : number

array_sum() возвращает сумму значений массива.

Список параметров

array

Входной массив.

Возвращаемые значения

Возвращает сумму значений в виде целого числа или числа с плавающей точкой; 0, если array пуст.

Примеры

Пример #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


Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию

  • « array_sum
  • array_udiff_uassoc »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию

array_udiff_assoc

(PHP 5, PHP 7)

array_udiff_assoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию

Описание

array_udiff_assoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func ) : array

Вычисляет расхождение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию.

Замечание: Пожалуйста, обратите внимание, что эта функция обрабатывает только одно измерение многомерного массива. Разумеется, вы можете обработать более одного измерения, используя, например, array_udiff_assoc($array1[0], $array2[0], "some_comparison_func");.

Список параметров

array1

Первый массив.

array2

Второй массив.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int

Возвращаемые значения

array_udiff_assoc() возвращает массив (array), содержащий все элементы array1, которых нет в каком-либо из всех остальных аргументов. Обратите внимание, что в отличие от array_diff() и array_udiff() в сравнении используются ключи. Сравнение данных массива производится с помощью callback-функции, предоставленной пользователем. В этом смысле, поведение этой функции отличается от array_diff_assoc(), которая используется встроенную функцию для сравнения.

Примеры

Пример #1 Пример использования array_udiff_assoc()

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    static 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_diff() - Вычислить расхождение массивов
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_diff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_udiff() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_uintersect() - Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции


Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию

  • « array_udiff_assoc
  • array_udiff »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию

array_udiff_uassoc

(PHP 5, PHP 7)

array_udiff_uassoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию

Описание

array_udiff_uassoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func , callable $key_compare_func ) : array

Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию.

Обратите внимание, что для сравнения используются ключи, в отличие от array_diff() и array_udiff().

Список параметров

array1

Первый массив.

array2

Второй массив.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int
key_compare_func

Сравнение ключей (индексов) также осуществляется с помощью callback-функции key_compare_func. Это отличается от поведения array_udiff_assoc(), которая сравнивает индексы с помощью встроенной функции.

Возвращаемые значения

Возвращает массив (array), содержащий все элементы array1, которых нет в каком-либо из остальных аргументов.

Примеры

Пример #1 Пример использования array_udiff_uassoc()

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    static function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }

    static 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_udiff() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_uintersect() - Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции


Вычисляет расхождение массивов, используя для сравнения callback-функцию

  • « array_udiff_uassoc
  • array_uintersect_assoc »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет расхождение массивов, используя для сравнения callback-функцию

array_udiff

(PHP 5, PHP 7)

array_udiff — Вычисляет расхождение массивов, используя для сравнения callback-функцию

Описание

array_udiff ( array $array1 , array $array2 [, array $... ], callable $value_compare_func ) : array

Вычисляет расхождение массивов, используя для сравнения данных callback-функцию. Это отличается от поведения array_diff(), которая использует встроенную функцию для сравнения данных.

Список параметров

array1

Первый массив.

array2

Второй массив.

value_compare_func

Callback-функция, используемая для сравнения.

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int

Возвращаемые значения

Возвращает массив, содержащий все элементы array1, которые не существуют в каком-либо из других аргументов.

Примеры

Пример #1 Пример использования array_udiff() с объектами класса stdClass

<?php
// массивы для сравнения
$array1 = array(new stdclass, new stdclass,
                new stdclass, new stdclass,
               );

$array2 = array(
                new stdclass, new stdclass,
               );

// проставление некоторых свойств для объектов
$array1[0]->width = 11; $array1[0]->height = 3;
$array1[1]->width = 7;  $array1[1]->height = 1;
$array1[2]->width = 2;  $array1[2]->height = 9;
$array1[3]->width = 5;  $array1[3]->height = 7;

$array2[0]->width = 7;  $array2[0]->height = 5;
$array2[1]->width = 9;  $array2[1]->height = 2;

function compare_by_area($a, $b) {
    $areaA = $a->width * $a->height;
    $areaB = $b->width * $b->height;

    if ($areaA < $areaB) {
        return -1;
    } elseif ($areaA > $areaB) {
        return 1;
    } else {
        return 0;
    }
}

print_r(array_udiff($array1, $array2, 'compare_by_area'));
?>

Результат выполнения данного примера:

Array
(
    [0] => stdClass Object
        (
            [width] => 11
            [height] => 3
        )

    [1] => stdClass Object
        (
            [width] => 7
            [height] => 1
        )

)

Пример #2 Пример использования array_udiff() с объектами класса DateTime

<?php
class MyCalendar {
    public $free = array();
    public $booked = array();

    public function __construct($week = 'now') {
        $start = new DateTime($week);
        $start->modify('Monday this week midnight');
        $end = clone $start;
        $end->modify('Friday this week midnight');
        $interval = new DateInterval('P1D');
        foreach (new DatePeriod($start, $interval, $end) as $freeTime) {
            $this->free[] = $freeTime;
        }
    }

    public function bookAppointment(DateTime $date, $note) {
        $this->booked[] = array('date' => $date->modify('midnight'), 'note' => $note);
    }

    public function checkAvailability() {
        return array_udiff($this->free, $this->booked, array($this, 'customCompare'));
    }

    public function customCompare($free, $booked) {
        if (is_array($free)) $a = $free['date'];
        else $a = $free;
        if (is_array($booked)) $b = $booked['date'];
        else $b = $booked;
        if ($a == $b) {
            return 0;
        } elseif ($a > $b) {
            return 1;
        } else {
            return -1;
        }
    }
}

// Создание календаря еженедельных встреч
$myCalendar = new MyCalendar;

// Запись некоторых еженедельных встреч
$myCalendar->bookAppointment(new DateTime('Monday this week'), "Уборка квартиры сотрудника Google.");
$myCalendar->bookAppointment(new DateTime('Wednesday this week'), "Катание на сноуборде.");
$myCalendar->bookAppointment(new DateTime('Friday this week'), "Борьба с багами в коде.");

// Проверка доступности дней путем сравнения дат в $booked с датами из $free
echo "Я доступен в следующие дни на этой неделе...\n\n";
foreach ($myCalendar->checkAvailability() as $free) {
    echo $free->format('l'), "\n";
}
echo "\n\n";
echo "Я занят в следующие дни на этой неделе...\n\n";
foreach ($myCalendar->booked as $booked) {
    echo $booked['date']->format('l'), ": ", $booked['note'], "\n";
}
?>

Результат выполнения данного примера:

Я доступен в следующие дни на этой неделе...

Tuesday
Thursday

Я занят в следующие дни на этой неделе...

Monday: Уборка квартиры сотрудника Google.
Wednesday: Катание на сноуборде.
Friday: Борьба с багами в коде.

Примечания

Замечание: Обратите внимание, что эта функция обрабатывает только одно измерение многомерного массива. Разумеется, вы можете обработать более одного измерения, используя array_udiff($array1[0], $array2[0], "data_compare_func");.

Смотрите также

  • array_diff() - Вычислить расхождение массивов
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_diff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_uintersect() - Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции


Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию

  • « array_udiff
  • array_uintersect_uassoc »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию

array_uintersect_assoc

(PHP 5, PHP 7)

array_uintersect_assoc — Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию

Описание

array_uintersect_assoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func ) : array

Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию.

Учтите, что в сравнении используются ключи, в отличие от array_uintersect(). Значения сравниваются с помощью callback-функции.

Список параметров

array1

Первый массив.

array2

Второй массив.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int

Возвращаемые значения

Возвращает массив, содержащий все элементы array1, которые существуют во всех остальных аргументах.

Примеры

Пример #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() - Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_intersect_uassoc() - Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции


Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции

  • « array_uintersect_assoc
  • array_uintersect »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции

array_uintersect_uassoc

(PHP 5, PHP 7)

array_uintersect_uassoc — Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции

Описание

array_uintersect_uassoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func , callable $key_compare_func ) : array

Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения ключей и значений разные callback-функции. То есть значения сравниваются одной callback-функцией, а индексы другой.

Список параметров

array1

Первый массив.

array2

Второй массив.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int
key_compare_func

Callback-функция для сравнения ключей.

Возвращаемые значения

Возвращает массив, содержащий все элементы array1, которые существуют во всех остальных аргументах.

Примеры

Пример #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() - Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_intersect_uassoc() - Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию


Вычисляет пересечение массивов, используя для сравнения значений callback-функцию

  • « array_uintersect_uassoc
  • array_unique »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет пересечение массивов, используя для сравнения значений callback-функцию

array_uintersect

(PHP 5, PHP 7)

array_uintersect — Вычисляет пересечение массивов, используя для сравнения значений callback-функцию

Описание

array_uintersect ( array $array1 , array $array2 [, array $... ], callable $value_compare_func ) : array

Вычисляет пересечение массивов, используя для сравнения значений callback-функцию.

Список параметров

array1

Первый массив.

array2

Второй массив.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int

Возвращаемые значения

Возвращает массив, содержащий все элементы 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_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции


Убирает повторяющиеся значения из массива

  • « array_uintersect
  • array_unshift »
  • PHP Manual
  • Функции для работы с массивами
  • Убирает повторяющиеся значения из массива

array_unique

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

array_unique — Убирает повторяющиеся значения из массива

Описание

array_unique ( array $array [, int $sort_flags = SORT_STRING ] ) : array

Принимает входной массив array и возвращает новый массив без повторяющихся значений.

Обратите внимание, что ключи сохранятся. Если в соответствии с заданными sort_flags несколько элементов определяются как идентичные, то будут сохранены ключ и значение первого такого элемента.

Замечание: Два элемента считаются одинаковыми в том и только в том случае, если (string) $elem1 === (string) $elem2. Другими словами: если у них одинаковое строковое представление, то будет использован первый элемент.

Список параметров

array

Входной массив.

sort_flags

Можно использовать необязательный второй параметр sort_flags для изменения поведения сортировки с помощью следующих значений:

Виды сортировок флагов:

  • SORT_REGULAR - нормальное сравнение элементов (типы не меняются)
  • SORT_NUMERIC - элементы сравниваются как числа
  • SORT_STRING - элементы сравниваются как строки
  • SORT_LOCALE_STRING - сравнивает элементы как строки, с учетом текущей локали.

Возвращаемые значения

Возвращает отфильтрованный массив.

Список изменений

Версия | Описание
7.2.0 | Если sort_flags равен SORT_STRING, ранее массив array копировался, а не уникальные элементы удалялись (сохраняя значения цифровых индексов), но теперь создается новый массив путем добавления уникальных элементов. Это может привести к различным числовым индексам.
5.2.10 | Значение по умолчанию параметра sort_flags изменено обратно на SORT_STRING.
5.2.9 | Добавлен необязательный параметр sort_flags, по умолчанию равный SORT_REGULAR. До версии 5.2.9 эта функция сортировала массив с помощью SORT_STRING.

Примеры

Пример #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_count_values() - Подсчитывает количество всех значений массива

Примечания

Замечание: Обратите внимание, что array_unique() не предназначена для работы с многомерными массивами.


Добавляет один или несколько элементов в начало массива

  • « array_unique
  • array_values »
  • PHP Manual
  • Функции для работы с массивами
  • Добавляет один или несколько элементов в начало массива

array_unshift

(PHP 4, PHP 5, PHP 7)

array_unshift — Добавляет один или несколько элементов в начало массива

Описание

array_unshift ( array &$array [, mixed $... ] ) : int

array_unshift() добавляет переданные в качестве аргументов элементы в начало массива array. Обратите внимание, что список элементов добавляется целиком, то есть порядок элементов сохраняется. Все числовые ключи будут изменены таким образом, что нумерация массива будет начинаться с нуля, в то время как строковые ключи останутся прежними.

Список параметров

array

Входной массив.

...

Значения для добавления.

Возвращаемые значения

Возвращает новое количество элементов в array.

Список изменений

Версия | Описание
7.3.0 | Теперь эта функция может быть вызвана с одним параметром. Ранее требовалось минимум два параметра.

Примеры

Пример #1 Пример использования array_unshift()

<?php
$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
print_r($queue);
?>

Результат выполнения данного примера:

Array
(
    [0] => apple
    [1] => raspberry
    [2] => orange
    [3] => banana
)

Смотрите также

  • array_shift() - Извлекает первый элемент массива
  • array_push() - Добавляет один или несколько элементов в конец массива
  • array_pop() - Извлекает последний элемент массива


Выбирает все значения массива

  • « array_unshift
  • array_walk_recursive »
  • PHP Manual
  • Функции для работы с массивами
  • Выбирает все значения массива

array_values

(PHP 4, PHP 5, PHP 7)

array_values — Выбирает все значения массива

Описание

array_values ( array $array ) : array

array_values() возвращает массив со всеми элементами массива array. Она также заново индексирует возвращаемый массив числовыми индексами.

Список параметров

array

Массив.

Возвращаемые значения

Возвращает индексированный массив значений.

Примеры

Пример #1 Пример использования array_values()

<?php
$array = array("size" => "XL", "color" => "gold");
print_r(array_values($array));
?>

Результат выполнения данного примера:

Array
(
    [0] => XL
    [1] => gold
)

Смотрите также

  • array_keys() - Возвращает все или некоторое подмножество ключей массива
  • array_combine() - Создает новый массив, используя один массив в качестве ключей, а другой для его значений


Рекурсивно применяет пользовательскую функцию к каждому элементу массива

  • « array_values
  • array_walk »
  • PHP Manual
  • Функции для работы с массивами
  • Рекурсивно применяет пользовательскую функцию к каждому элементу массива

array_walk_recursive

(PHP 5, PHP 7)

array_walk_recursive — Рекурсивно применяет пользовательскую функцию к каждому элементу массива

Описание

array_walk_recursive ( array &$array , callable $callback [, mixed $userdata = NULL ] ) : bool

Применяет пользовательскую функцию callback к каждому элементу массива input. Эта функция обрабатывает каждый элемент многомерного массива.

Список параметров

array

Входной массив.

callback

Обычно, callback принимает два параметра. Первым параметром является значение элемента массива input, а вторым - его ключ.

Замечание:

Если требуется, чтобы функция callback изменила значения в массиве, определите первый параметр callback как ссылку. Тогда все изменения будут применены к элементам массива.

userdata

Если указан необязательный параметр userdata, то он будет передан третьим параметром функции callback.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования array_walk_recursive()

<?php
$sweet = array('a' => 'apple', 'b' => 'banana');
$fruits = array('sweet' => $sweet, 'sour' => 'lemon');

function test_print($item, $key)
{
    echo "$key содержит $item\n";
}

array_walk_recursive($fruits, 'test_print');
?>

Результат выполнения данного примера:

a содержит apple
b содержит banana
sour содержит lemon

Обратите внимание, что ключ 'sweet' никогда не отображается. Любой ключ, содержащий значение типа array, не будет передаваться в функцию.

Смотрите также

  • array_walk() - Применяет заданную пользователем функцию к каждому элементу массива
  • Информация о типе callback


Применяет заданную пользователем функцию к каждому элементу массива

  • « array_walk_recursive
  • array »
  • PHP Manual
  • Функции для работы с массивами
  • Применяет заданную пользователем функцию к каждому элементу массива

array_walk

(PHP 4, PHP 5, PHP 7)

array_walk — Применяет заданную пользователем функцию к каждому элементу массива

Описание

array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] ) : bool

Применяет пользовательскую функцию callback к каждому элементу массива array.

array_walk() не подвержена влиянию внутреннего указателя массива array. array_walk() обойдёт все элементы массива независимо от позиции указателя.

Список параметров

array

Входной массив.

callback

Обычно функция callback принимает два параметра. В качестве первого параметра идет значение элемента массива array, а ключ - в качестве второго.

Замечание:

Если требуется, чтобы функция callback изменила значения в массиве, определите первый параметр callback как ссылку. Тогда все изменения будут применены к элементам оригинального массива.

Замечание:

Множество встроенных функций (например, strtolower()) выводят предупреждение, если им передано больше параметров, чем они ожидают, или которые не могут непосредственно использоваться в callback.

Потенциально изменены могут быть только значения массива array; структура самого массива не может быть изменена, то есть нельзя добавить, удалить или поменять порядок элементов. Если callback-функция не соответствует этому требованию, поведение данной функции станет неопределённым и непредсказуемым.

userdata

Если указан необязательный параметр userdata, он будет передан в качестве третьего параметра в callback-функцию callback.

Возвращаемые значения

Возвращает TRUE

Ошибки

Начиная с PHP 7.1.0, в случае если callback-функция требует больше двух параметров (ключ и значение элемента массива), будет выброшено исключение ArgumentCountError. Ранее в таком случае при каждом вызове callback, генерировалась ошибка уровня E_WARNING.

Примеры

Пример #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 "До ...:\n";
array_walk($fruits, 'test_print');

array_walk($fruits, 'test_alter', 'fruit');
echo "... и после:\n";

array_walk($fruits, 'test_print');
?>

Результат выполнения данного примера:

До ...:
d. lemon
a. orange
b. banana
c. apple
... и после:
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple

Смотрите также

  • array_walk_recursive() - Рекурсивно применяет пользовательскую функцию к каждому элементу массива
  • iterator_apply() - Вызывает функцию для каждого элемента в итераторе
  • list() - Присваивает переменным из списка значения подобно массиву
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель
  • call_user_func_array() - Вызывает callback-функцию с массивом параметров
  • array_map() - Применяет callback-функцию ко всем элементам указанных массивов
  • Информация о типе callback
  • foreach


Создает массив

  • « array_walk
  • arsort »
  • PHP Manual
  • Функции для работы с массивами
  • Создает массив

array

(PHP 4, PHP 5, PHP 7)

array — Создает массив

Описание

array ([ mixed $... ] ) : array

Создает массив. Подробнее о массивах читайте в разделе Массивы.

Список параметров

...

Синтаксис "индекс => значения", разделённые запятыми, определяет индексы и их значения. Индекс может быть строкой или целым числом. Если индекс опущен, будет автоматически сгенерирован числовой индекс, начиная с 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() - языковая конструкция, используемая для представления литеральных массивов, а не обычная функция.

Смотрите также

  • array_pad() - Дополнить массив определенным значением до указанной длины
  • list() - Присваивает переменным из списка значения подобно массиву
  • count() - Подсчитывает количество элементов массива или чего-либо в объекте
  • range() - Создает массив, содержащий диапазон элементов
  • foreach
  • Тип массив


Сортирует массив в обратном порядке, сохраняя ключи

  • « array
  • asort »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив в обратном порядке, сохраняя ключи

arsort

(PHP 4, PHP 5, PHP 7)

arsort — Сортирует массив в обратном порядке, сохраняя ключи

Описание

arsort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool

Эта функция сортирует массив в обратном порядке таким образом, что сохраняются отношения между ключами и значениями.

Она полезна, в основном, при сортировке ассоциативных массивов, когда важно сохранить отношение ключ => значение.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array

Входной массив.

sort_flags

Вы можете изменить поведение сортировки, используя дополнительный параметр sort_flags, подробнее см. sort().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования arsort()

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
arsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

Результат выполнения данного примера:

a = orange
d = lemon
b = banana
c = apple

Названия фруктов были отсортированы в обратном порядке и ключи, ассоциированные с элементами, были сохранены.

Смотрите также

  • asort() - Сортирует массив, сохраняя ключи
  • Сравнение функций сортировки массивов


Сортирует массив, сохраняя ключи

  • « arsort
  • compact »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив, сохраняя ключи

asort

(PHP 4, PHP 5, PHP 7)

asort — Сортирует массив, сохраняя ключи

Описание

asort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool

Эта функция сортирует массив таким образом, что сохраняются отношения между ключами и значениями. Она полезна, в основном, при сортировке ассоциативных массивов, когда важно сохранить отношение ключ => значение.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array

Входной массив.

sort_flags

Вы можете изменить поведение сортировки, используя дополнительный параметр sort_flags, подробнее см. sort().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования asort()

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

Результат выполнения данного примера:

c = apple
b = banana
d = lemon
a = orange

Названия фруктов были отсортированы в алфавитном порядке и ключи, связанные с элементами, были сохранены.

Смотрите также

  • arsort() - Сортирует массив в обратном порядке, сохраняя ключи
  • Сравнение функций сортировки массивов


Создает массив, содержащий названия переменных и их значения

  • « asort
  • count »
  • PHP Manual
  • Функции для работы с массивами
  • Создает массив, содержащий названия переменных и их значения

compact

(PHP 4, PHP 5, PHP 7)

compact — Создает массив, содержащий названия переменных и их значения

Описание

compact ( mixed $varname1 [, mixed $... ] ) : array

Создает массив, содержащий переменные и их значения.

Для каждого из переданного параметров, функция compact() ищет переменную с указанным именем в текущей таблице символов и добавляет их в выводимый массив так, что имя переменной становится ключом, а содержимое переменной становится значением этого ключа. Короче говоря, она обратна функции extract().

Замечание:

До PHP 7.3 любые неустановленные строки будут просто пропущены.

Список параметров

varname1

compact() принимает неограниченное количество параметров. Любой из параметров может быть либо строкой, содержащей название переменной, либо массивом названий переменных. Массив может содержать вложенные массивы названий переменных; функция compact() обрабатывает их рекурсивно.

Возвращаемые значения

Возвращает массив со всеми переменными, добавленными в него.

Ошибки

compact() выдаёт ошибку уровня E_NOTICE, если данная строка относится к удаленной переменной.

Список изменений

Версия | Описание
7.3.0 | compact() теперь выдает ошибку уровня E_NOTICE, если заданная строка связана с удаленной переменной. Ранее такие строки пропускались без всякого уведомления.

Примеры

Пример #1 Пример использования compact()

<?php
$city  = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

$location_vars = array("city", "state");

$result = compact("event", $location_vars);
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [event] => SIGGRAPH
    [city] => San Francisco
    [state] => CA
)

Примечания

Замечание: Замечания по работе функции compact

Так как переменные переменных не могут быть использованы с суперглобальными массивами внутри функций, суперглобальные массивы не могут быть переданы в compact().

Смотрите также

  • extract() - Импортирует переменные из массива в текущую таблицу символов


Подсчитывает количество элементов массива или чего-либо в объекте

  • « compact
  • current »
  • PHP Manual
  • Функции для работы с массивами
  • Подсчитывает количество элементов массива или чего-либо в объекте

count

(PHP 4, PHP 5, PHP 7)

count — Подсчитывает количество элементов массива или чего-либо в объекте

Описание

count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] ) : int

Подсчитывает количество элементов массива или чего-то в объекте.

Для объектов, если у вас включена поддержка SPL, вы можете перехватить count(), реализуя интерфейс Countable. Этот интерфейс имеет ровно один метод, Countable::count(), который возвращает значение функции count().

Смотрите раздел Массивы в этом руководстве для более детального представления о реализации и использовании массивов в PHP.

Список параметров

array_or_countable

Массив или объект, реализующий Countable.

mode

Если необязательный параметр mode установлен в COUNT_RECURSIVE (или 1), count() будет рекурсивно подсчитывать количество элементов массива. Это особенно полезно для подсчёта всех элементов многомерных массивов.

Предостережение

count() умеет определять рекурсию для избежания бесконечного цикла, но при каждом обнаружении выводит ошибку уровня E_WARNING (в случае, если массив содержит себя более одного раза) и возвращает большее количество, чем могло бы ожидаться.

Возвращаемые значения

Возвращает количество элементов в array_or_countable. Если параметр не является массивом или объектом, реализующим интерфейс Countable, будет возвращена 1. За одним исключением: если array_or_countable - NULL, то будет возвращён 0.

Примеры

Пример #1 Пример использования count()

<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
var_dump(count($a));

$b[0]  = 7;
$b[5]  = 9;
$b[10] = 11;
var_dump(count($b));

var_dump(count(null));

var_dump(count(false));
?>

Результат выполнения данного примера:

int(3)
int(3)

Warning: count(): Parameter must be an array or an object that implements Countable in ... on line 12 // Начиная с PHP 7.2
int(0)

Warning: count(): Parameter must be an array or an object that implements Countable in ... on line 14 // Начиная с PHP 7.2
int(1)

Пример #2 Пример рекурсивного использования count()

<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
              'veggie' => array('carrot', 'collard', 'pea'));

// рекурсивный подсчет
echo count($food, COUNT_RECURSIVE); // выводит 8

// обычный подсчет
echo count($food); // выводит 2

?>

Список изменений

Версия | Описание
7.2.0 | count() теперь будет выдавать предупреждение о некорректных исчисляемых типов, переданных в параметр array_or_countable.

Смотрите также

  • is_array() - Определяет, является ли переменная массивом
  • isset() - Определяет, была ли установлена переменная значением, отличным от NULL
  • empty() - Проверяет, пуста ли переменная
  • strlen() - Возвращает длину строки
  • is_countable() - Проверить, что содержимое переменной является счетным значением


Возвращает текущий элемент массива

  • « count
  • each »
  • PHP Manual
  • Функции для работы с массивами
  • Возвращает текущий элемент массива

current

(PHP 4, PHP 5, PHP 7)

current — Возвращает текущий элемент массива

Описание

current ( array $array ) : mixed

У каждого массива имеется внутренний указатель на его "текущий" элемент, который инициализируется первым элементом, добавленным в массив.

Список параметров

array

Массив.

Возвращаемые значения

Функция current() просто возвращает значение элемента массива, на который указывает его внутренний указатель. Она не перемещает указатель куда бы то ни было. Если внутренний указатель находится за пределами списка элементов или массив пуст, current() возвращает FALSE.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
7.0.0 | Теперь параметр array всегда передается по значению. Раньше он по возможности передавался по ссылке.

Примеры

Пример #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';

$arr = array();
var_dump(current($arr)); // bool(false)

$arr = array(array());
var_dump(current($arr)); // array(0) { }
?>

Примечания

Замечание: Конец массива и результат вызова current() на пустом массиве неотличимы от элемента массива типа boolean со значением FALSE. Для корректного обхода массива, который может содержать FALSE, используйте функцию foreach(). Если же вы хотите использовать функцию current() и при этом корректно отслеживать конец массива, используйте функцию key() на том же элементе, на котором использовали current() и проверяйте ее результат на строгое неравенство NULL.

Смотрите также

  • end() - Устанавливает внутренний указатель массива на его последний элемент
  • key() - Выбирает ключ из массива
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель
  • prev() - Передвигает внутренний указатель массива на одну позицию назад
  • reset() - Устанавливает внутренний указатель массива на его первый элемент
  • next() - Перемещает указатель массива вперед на один элемент


Возвращает текущую пару ключ/значение из массива и смещает его указатель

  • « current
  • end »
  • PHP Manual
  • Функции для работы с массивами
  • Возвращает текущую пару ключ/значение из массива и смещает его указатель

each

(PHP 4, PHP 5, PHP 7)

each — Возвращает текущую пару ключ/значение из массива и смещает его указатель

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.2.0 и ее использование крайне не рекомендовано.

Описание

each ( array &$array ) : array

Возвращает текущую пару ключ/значение из массива и продвигает вперед его указатель.

После выполнения each(), указатель массива перемещается к следующему его элементу, пока не будет достигнут конец массива. Для повторного обхода массива при помощи each необходимо использовать функцию reset().

Список параметров

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\n";
}
?>

Результат выполнения данного примера:

a => apple
b => banana
c => cranberry

Предостережение

Поскольку добавление элемента в массив сбрасывает указатель, вышеприведённый пример может привести бесконечному циклу, если мы будем присваивать $fruit другие значения внутри цикла.

Внимание

Функция each() также принимает и объекты, но может возвратить неожиданные результаты, поэтому итерировать свойства объекта с помощью each() не рекомендуется.

Смотрите также

  • key() - Выбирает ключ из массива
  • list() - Присваивает переменным из списка значения подобно массиву
  • current() - Возвращает текущий элемент массива
  • reset() - Устанавливает внутренний указатель массива на его первый элемент
  • next() - Перемещает указатель массива вперед на один элемент
  • prev() - Передвигает внутренний указатель массива на одну позицию назад
  • foreach
  • Итерация объектов


Устанавливает внутренний указатель массива на его последний элемент

  • « each
  • extract »
  • PHP Manual
  • Функции для работы с массивами
  • Устанавливает внутренний указатель массива на его последний элемент

end

(PHP 4, PHP 5, PHP 7)

end — Устанавливает внутренний указатель массива на его последний элемент

Описание

end ( array &$array ) : mixed

end() устанавливает внутренний указатель array на последний элемент и возвращает его значение.

Список параметров

array

Массив. Этот массив передается по ссылке, потому что он модифицируется данной функцией. Это означает что вы должны передать его как реальную переменную, а не как функцию, возвращающую массив, так как по ссылке можно передавать только фактические переменные.

Возвращаемые значения

Возвращает значение последнего элемента или FALSE для пустого массива.

Примеры

Пример #1 Пример использования end()

<?php

$fruits = array('apple', 'banana', 'cranberry');
echo end($fruits); // cranberry

?>

Смотрите также

  • current() - Возвращает текущий элемент массива
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель
  • prev() - Передвигает внутренний указатель массива на одну позицию назад
  • reset() - Устанавливает внутренний указатель массива на его первый элемент
  • next() - Перемещает указатель массива вперед на один элемент
  • array_key_last() - Получает последний ключ массива


Импортирует переменные из массива в текущую таблицу символов

  • « end
  • in_array »
  • PHP Manual
  • Функции для работы с массивами
  • Импортирует переменные из массива в текущую таблицу символов

extract

(PHP 4, PHP 5, PHP 7)

extract — Импортирует переменные из массива в текущую таблицу символов

Описание

extract ( array &$array [, int $flags = EXTR_OVERWRITE [, string $prefix = NULL ]] ) : int

Импортирует переменные из массива в текущую таблицу символов.

Каждый ключ проверяется на предмет корректного имени переменной. Также проверяются совпадения с существующими переменными в символьной таблице.

Внимание

Не используйте extract() на непроверенных данных, таких как пользовательский ввод (например, $_GET, $_FILES).

Список параметров

array

Ассоциативный массив. Эта функция рассматривает ключи массива в качестве имен переменных, а их значения - в качестве значений этих переменных. Для каждой пары ключ/значение будет создана переменная в текущей таблице символов, в соответствии с параметрами flags и prefix.

Вы должны использовать ассоциативный массив, использование числовых массивов не приведёт ни к каким результатам, если вы не используете EXTR_PREFIX_ALL или EXTR_PREFIX_INVALID.

flags

Параметр flags определяет способ трактования неправильных/числовых ключей и коллизий. Он может принимать следующие значения:

EXTR_OVERWRITE
Если переменная с таким именем существует, она будет перезаписана.
EXTR_SKIP
Если переменная с таким именем существует, ее текущее значение не будет перезаписано.
EXTR_PREFIX_SAME
Если переменная с таким именем существует, к её имени будет добавлен префикс, определённый параметром prefix.
EXTR_PREFIX_ALL
Добавить префикс prefix ко всем именам переменных.
EXTR_PREFIX_INVALID
Добавить префикс prefix только к некорректным/числовым именам переменных.
EXTR_IF_EXISTS
Перезаписать только переменные, уже имеющиеся в текущей таблице символов, в противном случае не делать ничего. Данная возможность полезна для определения списка приемлемых переменных и для извлечения только тех переменных, которые вы уже определили из массивов типа $_REQUEST, например.
EXTR_PREFIX_IF_EXISTS
Создать только префикс-версии переменных, если версия данной переменной без префикса уже существует в текущей символьной таблице.
EXTR_REFS
Извлечь переменные как ссылки. Это означает, что значения таких переменных будут всё ещё ссылаться на значения массива array. Вы можете использовать этот флаг отдельно или комбинировать его с другими значениями flags с помощью побитового 'или'.

Если flags не указан, он трактуется как EXTR_OVERWRITE.

prefix

Обратите внимание, что prefix имеет значение, только если flags установлен в EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID или EXTR_PREFIX_IF_EXISTS. Если в результате добавления префикса, не будет получено допустимое имя для переменной, она не будет импортирована в текущую символьную таблицу.

Возвращаемые значения

Возвращает количество переменных, успешно импортированных в текущую таблицу символов.

Примеры

Пример #1 Пример использования extract()

Функцию extract() также можно использовать для импорта в текущую таблицу символов переменных, содержащиеся в ассоциативном массиве, возвращаемом функцией wddx_deserialize().

<?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\n";

?>

Результат выполнения данного примера:

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.

Примечания

Внимание

Не используйте функцию extract() на непроверенных данных, таких как пользовательский ввод ($_GET, $_FILES и т.п.). Если вы сделаете это, например, чтобы временно запустить старый код, использующий register_globals, убедитесь, что используете один из флагов flags, не перезаписывающие переменные, такой как EXTR_SKIP и имейте в виду, что вы должны извлекать их в том порядке, который определен в директиве variables_order внутри php.ini.

Замечание:

Если у вас все еще включена директива register_globals и вы используете extract() с массивом $_FILES и флагом EXTR_SKIP, результат может вас удивить.

Внимание

Это нерекомендуемая практика и документирована здесь только для полноты картины. Использование register_globals считается устаревшим и вызов extract() на непроверенных данных, таких как $_FILES, как уже было сказано выше, потенциальный риск безопасности. Если вы столкнулись с данным случаем, это означает что вы используете как минимум две плохие практики кодирования.

<?php

/* Предположим, что $testfile это имя поля для загрузки файла
   и что директива register_globals включена. */

var_dump($testfile);
extract($_FILES, EXTR_SKIP);
var_dump($testfile);
var_dump($testfile['tmp_name']);

?>
Вы можете ожидать что-нибудь вроде следующего:
string(14) "/tmp/phpgCCPX8"
array(5) {
  ["name"]=>
  string(10) "somefile.txt"
  ["type"]=>
  string(24) "application/octet-stream"
  ["tmp_name"]=>
  string(14) "/tmp/phpgCCPX8"
  ["error"]=>
  int(0)
  ["size"]=>
  int(4208)
}
string(14) "/tmp/phpgCCPX8"
Однако, вместо этого вы увидите что-нибудь вроде этого:
string(14) "/tmp/phpgCCPX8"
string(14) "/tmp/phpgCCPX8"
string(1) "/"

Это происходит потому, что так как включена директива register_globals, переменная $testfile уже существует в глобальной области видимости в момент вызова extract(). А так как указан параметр EXTR_SKIP, $testfile не будет перезаписана содержимым массива $_FILES, поэтому $testfile останется строкой. Так как к строкам можно обращаться с помощью синтаксиса массивов и нечисловая строка tmp_name интерпретируется как 0, PHP воспринимает $testfile['tmp_name'] как $testfile[0].

Смотрите также

  • compact() - Создает массив, содержащий названия переменных и их значения
  • list() - Присваивает переменным из списка значения подобно массиву


Проверяет, присутствует ли в массиве значение

  • « extract
  • key_exists »
  • PHP Manual
  • Функции для работы с массивами
  • Проверяет, присутствует ли в массиве значение

in_array

(PHP 4, PHP 5, PHP 7)

in_array — Проверяет, присутствует ли в массиве значение

Описание

in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) : bool

Ищет в haystack значение needle. Если strict не установлен, то при поиске будет использовано нестрогое сравнение.

Список параметров

needle

Искомое значение.

Замечание:

Если needle - строка, сравнение будет произведено с учетом регистра.

haystack

Массив.

strict

Если третий параметр strict установлен в TRUE, тогда функция in_array() также проверит соответствие типов параметра needle и соответствующего значения массива haystack.

Возвращаемые значения

Возвращает TRUE, если needle был найден в массиве, и FALSE в противном случае.

Примеры

Пример #1 Пример использования in_array()

<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Нашел Irix";
}
if (in_array("mac", $os)) {
    echo "Нашел mac";
}
?>

Второго совпадения не будет, потому что in_array() регистрозависима, таким образом, программа выведет:

Нашел Irix

Пример #2 Пример использования in_array() с параметром strict

<?php
$a = array('1.10', 12.4, 1.13);

if (in_array('12.4', $a, true)) {
    echo "'12.4' найдено со строгой проверкой\n";
}

if (in_array(1.13, $a, true)) {
    echo "1.13 найдено со строгой проверкой\n";
}
?>

Результат выполнения данного примера:

1.13 найдено со строгой проверкой

Пример #3 Пример использования in_array() с массивом в качестве параметра needle

<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');

if (in_array(array('p', 'h'), $a)) {
    echo "'ph' найдено\n";
}

if (in_array(array('f', 'i'), $a)) {
    echo "'fi' найдено\n";
}

if (in_array('o', $a)) {
    echo "'o' найдено\n";
}
?>

Результат выполнения данного примера:

  'ph' найдено
  'o' найдено

Смотрите также

  • array_search() - Осуществляет поиск данного значения в массиве и возвращает ключ первого найденного элемента в случае удачи
  • isset() - Определяет, была ли установлена переменная значением, отличным от NULL
  • array_key_exists() - Проверяет, присутствует ли в массиве указанный ключ или индекс


Псевдоним array_key_exists

  • « in_array
  • key »
  • PHP Manual
  • Функции для работы с массивами
  • Псевдоним array_key_exists

key_exists

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

key_exists — Псевдоним array_key_exists()

Описание

Эта функция является псевдонимом: array_key_exists().


Выбирает ключ из массива

  • « key_exists
  • krsort »
  • PHP Manual
  • Функции для работы с массивами
  • Выбирает ключ из массива

key

(PHP 4, PHP 5, PHP 7)

key — Выбирает ключ из массива

Описание

key ( array $array ) : mixed

key() возвращает индекс текущего элемента массива.

Список параметров

array

Массив.

Возвращаемые значения

Функция key() просто возвращает ключ того элемента массива, на который в данный момент указывает внутренний указатель массива. Она не сдвигает указатель ни в каком направлении. Если внутренний указатель указывает вне границ массива или массив пуст, key() возвратит NULL.

Список изменений

Версия | Описание
7.0.0 | Теперь параметр array всегда передается по значению. Раньше он по возможности передавался по ссылке.

Примеры

Пример #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);
}
?>

Результат выполнения данного примера:

fruit1<br />
fruit4<br />
fruit5<br />

Смотрите также

  • current() - Возвращает текущий элемент массива
  • next() - Перемещает указатель массива вперед на один элемент
  • foreach


Сортирует массив по ключам в обратном порядке

  • « key
  • ksort »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив по ключам в обратном порядке

krsort

(PHP 4, PHP 5, PHP 7)

krsort — Сортирует массив по ключам в обратном порядке

Описание

krsort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool

Сортирует массив по ключам в обратном порядке, сохраняя отношения между ключами и значениями. Эта функция полезна, в основном, для работы с ассоциативными массивами.

Список параметров

array

Входной массив.

sort_flags

Вы можете изменить поведение сортировки, используя дополнительный параметр sort_flags, подробнее см. sort().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования krsort()

<?php
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
krsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

Результат выполнения данного примера:

d = lemon
c = apple
b = banana
a = orange

Смотрите также

  • arsort() - Сортирует массив в обратном порядке, сохраняя ключи
  • ksort() - Сортирует массив по ключам
  • Сравнение функций сортировки массивов


Сортирует массив по ключам

  • « krsort
  • list »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив по ключам

ksort

(PHP 4, PHP 5, PHP 7)

ksort — Сортирует массив по ключам

Описание

ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool

Сортирует массив по ключам, сохраняя отношения между ключами и значениями. Эта функция полезна, в основном, для работы с ассоциативными массивами.

Список параметров

array

Входной массив.

sort_flags

Вы можете изменить поведение сортировки, используя дополнительный параметр sort_flags, подробнее см. функцию sort().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ksort()

<?php
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
ksort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

Результат выполнения данного примера:

a = orange
b = banana
c = apple
d = lemon

Смотрите также

  • asort() - Сортирует массив, сохраняя ключи
  • Сравнение функций сортировки массивов


Присваивает переменным из списка значения подобно массиву

  • « ksort
  • natcasesort »
  • PHP Manual
  • Функции для работы с массивами
  • Присваивает переменным из списка значения подобно массиву

list

(PHP 4, PHP 5, PHP 7)

list — Присваивает переменным из списка значения подобно массиву

Описание

list ( mixed $var1 [, mixed $... ] ) : array

Подобно array(), это не функция, а языковая конструкция. list() используется для того, чтобы присвоить списку переменных значения за одну операцию.

Замечание:

До PHP 7.1.0, list() работала только с индексированными массивами и принимала числовые индексы начиная с 0.

Внимание

В PHP 5 list() присваивает значения начиная с самого правого. В PHP 7 list() - с самого левого.

Если вы используете обычные переменные, можете не думать об этом, но, если вы используете массивы с индексами, вы ожидаете, что порядок элементов в массиве будет ровно таким, как вы его определили в list(), слева направо, но в PHP 5 вы получите обратный порядок.

Вообще говоря, желательно не полагаться на конкретный порядок операций, так как в будущем это поведение может быть изменено.

Список параметров

var1

Переменная.

Возвращаемые значения

Возвращает присвоенный массив.

Список изменений

Версия | Описание
7.1.0 | Теперь возможно задавать ключи в list(). Это позволяет разыменовывать ассоциативные массивы и массивы с индексами не по порядку.
7.0.0 | Изменен порядок операций присвоения.
7.0.0 | Выражение list() больше не может быть полностью пустым.
7.0.0 | Больше нельзя разбирать строки с помощью этой функции.

Примеры

Пример #1 Примеры использования list()

<?php

$info = array('кофе', 'коричневый', 'кофеин');

// Составить список всех переменных
list($drink, $color, $power) = $info;
echo "$drink - $color, а $power делает его особенным.\n";

// Составить список только некоторых из них
list($drink, , $power) = $info;
echo "В $drink есть $power.\n";

// Или пропустить все, кроме третьей
list( , , $power) = $info;
echo "Мне нужен $power!\n";

// list() не работает со строками
list($bar) = "abcde";
var_dump($bar); // NULL
?>

Пример #2 Пример использования list()

<table>
 <tr>
  <th>Имя работника</th>
  <th>Зарплата</th>
 </tr>

<?php
$result = $pdo->query("SELECT id, name, salary FROM employees");
while (list($id, $name, $salary) = $result->fetch(PDO::FETCH_NUM)) {
    echo " <tr>\n" .
          "  <td><a href=\"info.php?id=$id\">$name</a></td>\n" .
          "  <td>$salary</td>\n" .
          " </tr>\n";
}

?>

</table>

Пример #3 Использование list() с индексами массивов

<?php

list($a, list($b, $c)) = array(1, array(2, 3));

var_dump($a, $b, $c);

?>
int(1)
int(2)
int(3)

Пример #4 Использование list() с индексами массива

<?php

$info = array('кофе', 'коричневый', 'кофеин');

list($a[0], $a[1], $a[2]) = $info;

var_dump($a);

?>

Выведет (сравните порядок исходных элементов с порядком, в котором они были перезаписаны list()):

Результат выполнения данного примера в PHP 7:

array(3) {
  [0]=>
  string(6) "кофе"
  [1]=>
  string(5) "коричневый"
  [2]=>
  string(8) "кофеин"
}

Результат выполнения данного примера в PHP 5:

array(3) {
  [2]=>
  string(8) "кофеин"
  [1]=>
  string(5) "коричневый"
  [0]=>
  string(6) "кофе"
}

Пример #5 list() и порядок указания индексов

Порядок, в котором индексы массива будут использоваться функцией list(), не имеет значения.

<?php
$foo = array(2 => 'a', 'foo' => 'b', 0 => 'c');
$foo[1] = 'd';
list($x, $y, $z) = $foo;
var_dump($foo, $x, $y, $z);

Производит такой вывод (обратите внимание, на порядок, в котором элементы были перечислены в синтаксисе list() и на порядок вывода):

array(4) {
  [2]=>
  string(1) "a"
  ["foo"]=>
  string(1) "b"
  [0]=>
  string(1) "c"
  [1]=>
  string(1) "d"
}
string(1) "c"
string(1) "d"
string(1) "a"

Пример #6 list() с ключами

Начиная с PHP 7.1.0, для list() можно задавать конкретные ключи, которые могут быть произвольными выражениями. Допустимо смешивать строковые и числовые ключи. Однако элементы с ключами и без ключей не могут быть использоваться одновременно.

<?php
$data = [
    ["id" => 1, "name" => 'Tom'],
    ["id" => 2, "name" => 'Fred'],
];
foreach ($data as ["id" => $id, "name" => $name]) {
    echo "id: $id, name: $name\n";
}
echo PHP_EOL;
list(1 => $second, 3 => $fourth) = [1, 2, 3, 4];
echo "$second, $fourth\n";

Результат выполнения данного примера:

id: 1, name: Tom
id: 2, name: Fred

2, 4

Смотрите также

  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель
  • array() - Создает массив
  • extract() - Импортирует переменные из массива в текущую таблицу символов


Сортирует массив, используя алгоритм "natural order" без учета регистра символов

  • « list
  • natsort »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив, используя алгоритм "natural order" без учета регистра символов

natcasesort

(PHP 4, PHP 5, PHP 7)

natcasesort — Сортирует массив, используя алгоритм "natural order" без учета регистра символов

Описание

natcasesort ( array &$array ) : bool

natcasesort() - это регистронезависимый аналог natsort().

Эта функция реализует алгоритм сортировки, при котором порядок буквенно-цифровых строк будет привычным для человека. Такой алгоритм называется "natural ordering".

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array

Входной массив.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования natcasesort()

<?php
$array1 = $array2 = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png');

sort($array1);
echo "Обычная сортировка\n";
print_r($array1);

natcasesort($array2);
echo "\nNatural order сортировка (без учета регистра)\n";
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 » Natural Order String Comparison.

Смотрите также

  • natsort() - Сортирует массив, используя алгоритм "natural order"
  • Сравнение функций сортировки массивов
  • strnatcmp() - Сравнение строк с использованием алгоритма "natural order"
  • strnatcasecmp() - Сравнение строк без учета регистра с использованием алгоритма "natural order"


Сортирует массив, используя алгоритм "natural order"

  • « natcasesort
  • next »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив, используя алгоритм "natural order"

natsort

(PHP 4, PHP 5, PHP 7)

natsort — Сортирует массив, используя алгоритм "natural order"

Описание

natsort ( array &$array ) : bool

Эта функция реализует алгоритм сортировки, при котором порядок буквенно-цифровых строк будет привычным для человека. Такой алгоритм называется "natural ordering". Отличие алгоритма "natural ordering" от обычных алгоритмов сортировки, применяемых, например, функцией sort() можно увидеть в примере ниже.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array

Входной массив.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.2.10 | В строках, отбитых нулями спереди (например, '00005') теперь данная отбивка игнорируется.

Примеры

Пример #1 Простой пример использования natsort()

<?php
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");

asort($array1);
echo "Обычная сортировка\n";
print_r($array1);

natsort($array2);
echo "\nСортировка natural order\n";
print_r($array2);
?>

Результат выполнения данного примера:

Обычная сортировка
Array
(
    [3] => img1.png
    [1] => img10.png
    [0] => img12.png
    [2] => img2.png
)

Сортировка natural order
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

Подробнее см. статью Martin Pool » Natural Order String Comparison.

Пример #2 Примеры использования различных трюков с natsort()

<?php
echo "Отрицательные числа\n";
$negative = array('-5','3','-2','0','-1000','9','1');
print_r($negative);
natsort($negative);
print_r($negative);

echo "Отбивка нулями\n";
$zeros = array('09', '8', '10', '009', '011', '0');
print_r($zeros);
natsort($zeros);
print_r($zeros);
?>

Результат выполнения данного примера:

Отрицательные числа
Array
(
    [0] => -5
    [1] => 3
    [2] => -2
    [3] => 0
    [4] => -1000
    [5] => 9
    [6] => 1
)
Array
(
    [2] => -2
    [0] => -5
    [4] => -1000
    [3] => 0
    [6] => 1
    [1] => 3
    [5] => 9
)

Отбивка нулями
Array
(
    [0] => 09
    [1] => 8
    [2] => 10
    [3] => 009
    [4] => 011
    [5] => 0
)
Array
(
    [5] => 0
    [1] => 8
    [3] => 009
    [0] => 09
    [2] => 10
    [4] => 011
)

Смотрите также

  • natcasesort() - Сортирует массив, используя алгоритм "natural order" без учета регистра символов
  • Сравнение функций сортировки массивов
  • strnatcmp() - Сравнение строк с использованием алгоритма "natural order"
  • strnatcasecmp() - Сравнение строк без учета регистра с использованием алгоритма "natural order"


Перемещает указатель массива вперед на один элемент

  • « natsort
  • pos »
  • PHP Manual
  • Функции для работы с массивами
  • Перемещает указатель массива вперед на один элемент

next

(PHP 4, PHP 5, PHP 7)

next — Перемещает указатель массива вперед на один элемент

Описание

next ( array &$array ) : mixed

next() ведёт себя подобно current(), но с одним отличием. Перед тем, как возвратить значение элемента массива, эта функция передвигает его внутренний указатель на одну позицию вперёд. Другими словами, она возвращает следующий элемент массива и сдвигает его внутренний указатель на одну позицию.

Список параметров

array

Массив (array), изменяемый данной функцией.

Возвращаемые значения

Возвращает значение элемента массива, находящегося на позиции, следующей за позицией внутренний указателя или FALSE, если достигнут конец массива.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #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';
?>

Примечания

Замечание: Конец массива не отличим от элемента массива типа boolean со значением FALSE. Для корректного обхода массива, который может содержать FALSE, используйте функцию foreach(). Если же вы хотите использовать функцию next() и при этом корректно отслеживать конец массива, проверяйте, что функция key() возвращает NULL.

Смотрите также

  • current() - Возвращает текущий элемент массива
  • end() - Устанавливает внутренний указатель массива на его последний элемент
  • prev() - Передвигает внутренний указатель массива на одну позицию назад
  • reset() - Устанавливает внутренний указатель массива на его первый элемент
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель


Псевдоним current

  • « next
  • prev »
  • PHP Manual
  • Функции для работы с массивами
  • Псевдоним current

pos

(PHP 4, PHP 5, PHP 7)

pos — Псевдоним current()

Описание

Эта функция является псевдонимом: current()


Передвигает внутренний указатель массива на одну позицию назад

  • « pos
  • range »
  • PHP Manual
  • Функции для работы с массивами
  • Передвигает внутренний указатель массива на одну позицию назад

prev

(PHP 4, PHP 5, PHP 7)

prev — Передвигает внутренний указатель массива на одну позицию назад

Описание

prev ( array &$array ) : mixed

Передвигает внутренний указатель массива на одну позицию назад.

prev() ведёт себя подобно next(), за исключением того, что она передвигает внутренний указатель массива на одну позицию назад, а не вперёд.

Список параметров

array

Входной массив.

Возвращаемые значения

Возвращает значение массива, на которое ранее указывал внутренний указатель массива, или FALSE, если больше элементов нет.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #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';
?>

Примечания

Замечание: Вы не сможете отличить начало массива от boolean элемента FALSE. Для корректного обхода массива, который может содержать элементы такие элементы, проверяйте, что значение, возвращаемое функцией key() для элемента prev() не равно NULL.

Смотрите также

  • current() - Возвращает текущий элемент массива
  • end() - Устанавливает внутренний указатель массива на его последний элемент
  • next() - Перемещает указатель массива вперед на один элемент
  • reset() - Устанавливает внутренний указатель массива на его первый элемент
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель


Создает массив, содержащий диапазон элементов

  • « prev
  • reset »
  • PHP Manual
  • Функции для работы с массивами
  • Создает массив, содержащий диапазон элементов

range

(PHP 4, PHP 5, PHP 7)

range — Создает массив, содержащий диапазон элементов

Описание

range ( mixed $start , mixed $end [, number $step = 1 ] ) : array

Создает массив, содержащий диапазон элементов.

Список параметров

start

Первое значение последовательности.

end

Конечное значение, которым заканчивается последовательность.

step

Если указан параметр step, то он будет использоваться как инкремент между элементами последовательности. step должен быть положительным числом. Если step не указан, он принимает значение по умолчанию 1.

Возвращаемые значения

Возвращает массив элементов от start до end, включительно.

Примеры

Пример #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
// array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
foreach (range(0, 100, 10) as $number) {
    echo $number;
}

// Использование последовательности знаков
// 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;
}
?>

Примечания

Замечание:

Значения для последовательности знаков ограничены длиной в один символ. Если их длина больше одного, то только первый символ используется.

Смотрите также

  • shuffle() - Перемешивает массив
  • array_fill() - Заполняет массив значениями
  • foreach


Устанавливает внутренний указатель массива на его первый элемент

  • « range
  • rsort »
  • PHP Manual
  • Функции для работы с массивами
  • Устанавливает внутренний указатель массива на его первый элемент

reset

(PHP 4, PHP 5, PHP 7)

reset — Устанавливает внутренний указатель массива на его первый элемент

Описание

reset ( array &$array ) : mixed

reset() перемещает внутренний указатель массива array к его первому элементу и возвращает значение первого элемента массива.

Список параметров

array

Входной массив.

Возвращаемые значения

Возвращает значение первого элемента массива, или FALSE, если массив пуст.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Пример использования reset()

<?php

$array = array('первый шаг', 'второй шаг', 'третий шаг', 'четвертый шаг');

// по умолчанию указатель указывает на первый элемент
echo current($array) . "<br />\n"; // "первый шаг"

// пропускаем два шага
next($array);
next($array);
echo current($array) . "<br />\n"; // "третий шаг"

// сбрасываем указатель, тем самым возвращаемся к первому шагу
reset($array);
echo current($array) . "<br />\n"; // "первый шаг"

?>

Примечания

Замечание: Результат использования на пустом массиве будет неотличим от использования массива, первый элемент которого имеет тип boolean со значением FALSE. Чтобы правильно проверить значение первого элемента, который может содержать FALSE, можно использовать функцию count() или проверить значение key(), что оно не равно NULL, после вызова reset().

Смотрите также

  • current() - Возвращает текущий элемент массива
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель
  • end() - Устанавливает внутренний указатель массива на его последний элемент
  • next() - Перемещает указатель массива вперед на один элемент
  • prev() - Передвигает внутренний указатель массива на одну позицию назад
  • array_key_first() - Получает первый ключ массива


Сортирует массив в обратном порядке

  • « reset
  • shuffle »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив в обратном порядке

rsort

(PHP 4, PHP 5, PHP 7)

rsort — Сортирует массив в обратном порядке

Описание

rsort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool

Эта функция сортирует массив в обратном порядке (от большего к меньшему).

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array

Входной массив.

sort_flags

Вы можете изменить поведение сортировки, используя дополнительный параметр sort_flags, подробнее смотрите функцию sort().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования rsort()

<?php
$fruits = array("lemon", "orange", "banana", "apple");
rsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

Результат выполнения данного примера:

0 = orange
1 = lemon
2 = banana
3 = apple

Названия фруктов были отсортированы по алфавиту в обратном порядке.

Примечания

Замечание: Эта функция присваивает новые ключи элементам array. Она удалит все существующие ключи, а не просто переупорядочит их.

Смотрите также

  • arsort() - Сортирует массив в обратном порядке, сохраняя ключи
  • krsort() - Сортирует массив по ключам в обратном порядке
  • Сравнение функций сортировки массивов


Перемешивает массив

  • « rsort
  • sizeof »
  • PHP Manual
  • Функции для работы с массивами
  • Перемешивает массив

shuffle

(PHP 4, PHP 5, PHP 7)

shuffle — Перемешивает массив

Описание

shuffle ( array &$array ) : bool

Эта функция перемешивает элементы массива в случайном порядке. Используется псевдослучайный генератор случайных чисел, следовательно данная функция не подходит для задач криптографии.

Список параметров

array

Массив.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.0 | Внутренний алгоритм получения случайных чисел изменен с функции rand библиотеки libc на генератор на базе » Вихря Мерсена.

Примеры

Пример #1 Пример использования shuffle()

<?php
$numbers = range(1, 20);
shuffle($numbers);
foreach ($numbers as $number) {
    echo "$number ";
}
?>

Примечания

Замечание: Эта функция присваивает новые ключи элементам array. Она удалит все существующие ключи, а не просто переупорядочит их.

Смотрите также

  • array_rand() - Выбирает один или несколько случайных ключей из массива
  • Сравнение функций сортировки массивов


Псевдоним count

  • « shuffle
  • sort »
  • PHP Manual
  • Функции для работы с массивами
  • Псевдоним count

sizeof

(PHP 4, PHP 5, PHP 7)

sizeof — Псевдоним count()

Описание

Эта функция является псевдонимом: count().


Сортирует массив

  • « sizeof
  • uasort »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив

sort

(PHP 4, PHP 5, PHP 7)

sort — Сортирует массив

Описание

sort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool

Функция сортирует массив. После завершения работы функции элементы массива будут расположены в порядке возрастания.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array

Входной массив.

sort_flags

Дополнительный второй параметр sort_flags можно использовать для изменения поведения сортировки, используя следующие значения:

Флаги сортировки:

  • SORT_REGULAR - обычное сравнение элементов; подробности описаны в разделе операторы сравнения
  • SORT_NUMERIC - числовое сравнение элементов
  • SORT_STRING - строковое сравнение элементов
  • SORT_LOCALE_STRING - сравнивает элементы как строки с учетом текущей локали. Используется локаль, которую можно изменять с помощью функции setlocale()
  • SORT_NATURAL - сравнение элементов как строк, используя естественное упорядочение, как в функции natsort()
  • SORT_FLAG_CASE - может быть объединен (побитовое ИЛИ) с SORT_STRING или SORT_NATURAL для сортировки строк без учета регистра.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.4.0 | Добавлена поддержка SORT_NATURAL и SORT_FLAG_CASE в параметре sort_flags
5.0.2 | Добавлена поддержка SORT_LOCALE_STRING

Примеры

Пример #1 Пример использования sort()

<?php

$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
foreach ($fruits as $key => $val) {
    echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

Результат выполнения данного примера:

fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange

Фрукты отсортированы в алфавитном порядке.

Пример #2 Пример использования sort() с регистронезависимым естественным упорядочением

<?php

$fruits = array(
    "Orange1", "orange2", "Orange3", "orange20"
);
sort($fruits, SORT_NATURAL | SORT_FLAG_CASE);
foreach ($fruits as $key => $val) {
    echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

Результат выполнения данного примера:

fruits[0] = Orange1
fruits[1] = orange2
fruits[2] = Orange3
fruits[3] = orange20

Фрукты были отсортированы аналогично функции natcasesort().

Примечания

Замечание: Эта функция присваивает новые ключи элементам array. Она удалит все существующие ключи, а не просто переупорядочит их.

Замечание: Как и большинство функций сортировки в PHP, sort() использует реализацию алгоритма » быстрой сортировки. Основной элемент выбирается из середины сортируемой части, достигая таким образом оптимального времени для уже отсортированных массивов. Следует иметь в виду, что это является деталью реализации и не следует на нее полагаться.

Внимание

Будьте осторожны при сортировке массивов, содержащих элементы разных типов, так как в этом случае результат работы функции sort() может быть неожиданным, если параметр sort_flags равен SORT_REGULAR.

Смотрите также

  • asort() - Сортирует массив, сохраняя ключи
  • rsort() - Сортирует массив в обратном порядке
  • Сравнение функций сортировки массивов


Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей

  • « sort
  • uksort »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей

uasort

(PHP 4, PHP 5, PHP 7)

uasort — Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей

Описание

uasort ( array &$array , callable $value_compare_func ) : bool

Эта функция сортирует массив таким образом, что его индексы сохраняют отношения с элементами, с которыми ранее были ассоциированы, с помощью callback-функции, предоставленной пользователем.

Это обычно используется при сортировке ассоциативных массивов, в которых важен актуальный порядок элементов.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array

Входной массив.

value_compare_func

Смотрите функции usort() и uksort() для примеров callback-функций сортировки, предоставленных пользователем.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Простой пример использования uasort()

<?php
// Функция сравнения
function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

// Сортируемый массив
$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);
print_r($array);

// Сортируем и выводим получившийся массив
uasort($array, 'cmp');
print_r($array);
?>

Результат выполнения данного примера:

Array
(
    [a] => 4
    [b] => 8
    [c] => -1
    [d] => -9
    [e] => 2
    [f] => 5
    [g] => 3
    [h] => -4
)
Array
(
    [d] => -9
    [h] => -4
    [c] => -1
    [e] => 2
    [g] => 3
    [a] => 4
    [f] => 5
    [b] => 8
)

Смотрите также

  • usort() - Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов
  • Сравнение функций сортировки массивов


Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей

  • « uasort
  • usort »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей

uksort

(PHP 4, PHP 5, PHP 7)

uksort — Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей

Описание

uksort ( array &$array , callable $key_compare_func ) : bool

uksort() отсортирует массив, используя для сравнения его ключей функцию, предоставленную пользователем. Используйте эту функцию, если массив должен быть отсортирован по какому-нибудь необычному признаку.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array

Входной массив.

key_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования uksort()

<?php
function cmp($a, $b)
{
    $a = preg_replace('@^(a|an|the) @', '', $a);
    $b = preg_replace('@^(a|an|the) @', '', $b);
    return strcasecmp($a, $b);
}

$a = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);

uksort($a, "cmp");

foreach ($a as $key => $value) {
    echo "$key: $value\n";
}
?>

Результат выполнения данного примера:

an apple: 3
a banana: 4
the Earth: 2
John: 1

Смотрите также

  • usort() - Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов
  • Сравнение функций сортировки массивов


Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов

  • « uksort
  • Классы и объекты »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов

usort

(PHP 4, PHP 5, PHP 7)

usort — Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов

Описание

usort ( array &$array , callable $value_compare_func ) : bool

Эта функция сортирует элементы массива, используя для сравнения значений callback-функцию, предоставленную пользователем. Используйте эту функцию, если вам нужно отсортировать массив по какому-нибудь необычному признаку.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Замечание: Эта функция присваивает новые ключи элементам array. Она удалит все существующие ключи, а не просто переупорядочит их.

Список параметров

array

Входной массив.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

callback ( mixed $a, mixed $b ) : int
Предостережение

Возвращаемые нецелочисленные значения из функции сравнения, например числа с плавающей точкой (float), будут приводиться к типу integer. Поэтому такие значения, как 0.99 и 0.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");

foreach ($a as $key => $value) {
    echo "$key: $value\n";
}
?>

Результат выполнения данного примера:

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"] . "\n";
}
?>

При сортировке многомерного массива переменные $a и $b содержат ссылки на первые два индекса массива.

Результат выполнения данного примера:

$fruits[0]: apples
$fruits[1]: grapes
$fruits[2]: lemons

Пример #3 Пример использования usort() с методом класса

<?php
class TestObj {
    var $name;

    function TestObj($name)
    {
        $this->name = $name;
    }

    /* Это статическая функция сравнения: */
    static 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 . "\n";
}
?>

Результат выполнения данного примера:

b
c
d

Пример #4 Пример использования функции usort() с применением анонимной функции для сортировки многомерного массива

<?php
$array[0] = array('key_a' => 'z', 'key_b' => 'c');
$array[1] = array('key_a' => 'x', 'key_b' => 'b');
$array[2] = array('key_a' => 'y', 'key_b' => 'a');

function build_sorter($key) {
    return function ($a, $b) use ($key) {
        return strnatcmp($a[$key], $b[$key]);
    };
}

usort($array, build_sorter('key_b'));

foreach ($array as $item) {
    echo $item['key_a'] . ', ' . $item['key_b'] . "\n";
}
?>

Результат выполнения данного примера:

y, a
x, b
z, c

Смотрите также

  • uasort() - Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей
  • Сравнение функций сортировки массивов


Информация о классе и объекте

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции работы с классами и объектами
    • __autoload — Попытка загрузить неопределенный класс
    • call_user_method_array — Вызывает метод объекта с массивом параметров
    • call_user_method — Вызывает метод указанного объекта
    • class_alias — Создает псевдоним для указанного класса
    • class_exists — Проверяет, был ли объявлен класс
    • get_called_class — Имя класса, полученное с помощью позднего статического связывания
    • get_class_methods — Возвращает массив имен методов класса
    • get_class_vars — Возвращает объявленные по умолчанию свойства класса
    • get_class — Возвращает имя класса, к которому принадлежит объект
    • get_declared_classes — Возвращает массив с именами объявленных классов
    • get_declared_interfaces — Возвращает массив всех объявленных интерфейсов
    • get_declared_traits — Возвращает массив со всеми объявленными трейтами
    • get_object_vars — Возвращает свойства указанного объекта
    • get_parent_class — Возвращает имя родительского класса для объекта или класса
    • interface_exists — Проверяет, определен ли интерфейс
    • is_a — Проверяет, принадлежит ли объект к данному классу или является ли этот класс одним из его родителей
    • is_subclass_of — Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его
    • method_exists — Проверяет, существует ли метод в данном классе
    • property_exists — Проверяет, содержит ли объект или класс указанный атрибут
    • trait_exists — Проверяет, существует ли трейт


Введение

Эти функции позволяют получить информацию о классах и экземплярах объектов. Можно получить имя класса, которому принадлежит объект, равно как и все его свойства и методы. Используя эти функции, можно установить не только принадлежность объекта к конкретному классу, но и определить порядок наследования (к примеру, какой класс наследует класс данного объекта).

За подробным объяснением реализации использования классов и объектов в PHP, пожалуйста, обращайтесь к разделу руководства "Объекты".


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • Классы и объекты
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

В приведённом ниже примере, мы сначала определим базовый класс и класс его наследующий. Базовый класс описывает овощ: съедобен ли он и какого цвета. Дочерний класс Spinach добавляет метод приготовления овоща и проверки, был ли он уже приготовлен.

Пример #1 classes.inc

<?php

// базовый класс с основными свойствами и методами
class Vegetable {

    var $edible;
    var $color;

    function __construct($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 __construct()
    {
        parent::__construct(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($GLOBALS[$obj]);
        echo " подкласс класса $class\n";
    } else {
        echo "Объект $obj более не является подклассом $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


Функции работы с классами и объектами

Содержание

  • __autoload — Попытка загрузить неопределенный класс
  • call_user_method_array — Вызывает метод объекта с массивом параметров
  • call_user_method — Вызывает метод указанного объекта
  • class_alias — Создает псевдоним для указанного класса
  • class_exists — Проверяет, был ли объявлен класс
  • get_called_class — Имя класса, полученное с помощью позднего статического связывания
  • get_class_methods — Возвращает массив имен методов класса
  • get_class_vars — Возвращает объявленные по умолчанию свойства класса
  • get_class — Возвращает имя класса, к которому принадлежит объект
  • get_declared_classes — Возвращает массив с именами объявленных классов
  • get_declared_interfaces — Возвращает массив всех объявленных интерфейсов
  • get_declared_traits — Возвращает массив со всеми объявленными трейтами
  • get_object_vars — Возвращает свойства указанного объекта
  • get_parent_class — Возвращает имя родительского класса для объекта или класса
  • interface_exists — Проверяет, определен ли интерфейс
  • is_a — Проверяет, принадлежит ли объект к данному классу или является ли этот класс одним из его родителей
  • is_subclass_of — Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его
  • method_exists — Проверяет, существует ли метод в данном классе
  • property_exists — Проверяет, содержит ли объект или класс указанный атрибут
  • trait_exists — Проверяет, существует ли трейт


Попытка загрузить неопределенный класс

  • « Функции работы с классами и объектами
  • call_user_method_array »
  • PHP Manual
  • Функции работы с классами и объектами
  • Попытка загрузить неопределенный класс

__autoload

(PHP 5, PHP 7)

__autoload — Попытка загрузить неопределенный класс

Внимание

Данный функционал объявлен УСТАРЕВШИМ, начиная с PHP 7.2.0 и его использование крайне не рекомендовано.

Описание

__autoload ( string $class ) : void

Вы можете определить эту функцию для автозагрузки классов.

Список параметров

class

Имя загружаемого класса

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • spl_autoload_register() - Регистрирует заданную функцию в качестве реализации метода __autoload()


Вызывает метод объекта с массивом параметров

  • « __autoload
  • call_user_method »
  • PHP Manual
  • Функции работы с классами и объектами
  • Вызывает метод объекта с массивом параметров

call_user_method_array

(PHP 4 >= 4.0.5, PHP 5)

call_user_method_array — Вызывает метод объекта с массивом параметров

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 4.1.0, и УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • call_user_func_array()

Описание

call_user_method_array ( string $method_name , object &$obj , array $params ) : mixed

Список параметров

method_name

Имя вызываемого метода.

obj

Объект (object), содержащий вызываемый метод method_name.

params

Массив параметров.

Примеры

Пример #1 Альтернатива call_user_method_array()

<?php
call_user_func_array(array($obj, $method_name), $params);
?>

Смотрите также

  • call_user_func_array() - Вызывает callback-функцию с массивом параметров
  • call_user_func() - Вызывает callback-функцию, заданную в первом параметре


Вызывает метод указанного объекта

  • « call_user_method_array
  • class_alias »
  • PHP Manual
  • Функции работы с классами и объектами
  • Вызывает метод указанного объекта

call_user_method

(PHP 4, PHP 5)

call_user_method — Вызывает метод указанного объекта

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 4.1.0, и УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • call_user_func()

Описание

call_user_method ( string $method_name , object &$obj [, mixed $... ] ) : mixed

Список параметров

method_name

Имя вызываемого метода.

obj

Объект (object), содержащий вызываемый метод method_name.

...

Необязательные параметры.

Примеры

Пример #1 Альтернатива call_user_method()

<?php
call_user_func(array($obj, $method_name), $parameter /* , ... */);
?>

Смотрите также

  • call_user_func_array() - Вызывает callback-функцию с массивом параметров
  • call_user_func() - Вызывает callback-функцию, заданную в первом параметре


Создает псевдоним для указанного класса

  • « call_user_method
  • class_exists »
  • PHP Manual
  • Функции работы с классами и объектами
  • Создает псевдоним для указанного класса

class_alias

(PHP 5 >= 5.3.0, PHP 7)

class_alias — Создает псевдоним для указанного класса

Описание

class_alias ( string $original , string $alias [, bool $autoload = TRUE ] ) : bool

Создает псевдоним alias для пользовательского класса original. Новый класс с псевдонимом будет точно таким же, как и оригинальный класс.

Список параметров

original

Оригинальный класс.

alias

Имя псевдонима для класса.

autoload

Нужно ли автоматически подгружать оригинальный класс, если он не был найден.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования class_alias()

<?php

class foo { }

class_alias('foo', 'bar');

$a = new foo;
$b = new bar;

// объекты одинаковы
var_dump($a == $b, $a === $b);
var_dump($a instanceof $b);

// классы одинаковы
var_dump($a instanceof foo);
var_dump($a instanceof bar);

var_dump($b instanceof foo);
var_dump($b instanceof bar);

?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

Смотрите также

  • get_parent_class() - Возвращает имя родительского класса для объекта или класса
  • is_subclass_of() - Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его


Проверяет, был ли объявлен класс

  • « class_alias
  • get_called_class »
  • PHP Manual
  • Функции работы с классами и объектами
  • Проверяет, был ли объявлен класс

class_exists

(PHP 4, PHP 5, PHP 7)

class_exists — Проверяет, был ли объявлен класс

Описание

class_exists ( string $class_name [, bool $autoload = TRUE ] ) : bool

Эта функция проверяет, был ли объявлен указанный класс или нет.

Список параметров

class_name

Имя класса. Воспринимается без учета регистра.

autoload

Вызывать ли по умолчанию __autoload.

Возвращаемые значения

Возвращает TRUE, если класс class_name объявлен, иначе FALSE.

Список изменений

Версия | Описание
5.0.2 | Больше не возвращает TRUE для объявленных интерфейсов. Используйте для этого interface_exists().

Примеры

Пример #1 Пример использования class_exists()

<?php
// Проверяем существование класса перед его использованием
if (class_exists('MyClass')) {
    $myclass = new MyClass();
}

?>

Пример #2 Пример использования c параметром autoload

<?php
function __autoload($class)
{
    include($class . '.php');

    // Проверяем необходимость подключения указанного класса
    if (!class_exists($class, false)) {
        trigger_error("Не удалось загрузить класс: $class", E_USER_WARNING);
    }
}

if (class_exists('MyClass')) {
    $myclass = new MyClass();
}

?>

Смотрите также

  • function_exists() - Возвращает TRUE, если указанная функция определена
  • interface_exists() - Проверяет, определен ли интерфейс
  • get_declared_classes() - Возвращает массив с именами объявленных классов


Имя класса, полученное с помощью позднего статического связывания

  • « class_exists
  • get_class_methods »
  • PHP Manual
  • Функции работы с классами и объектами
  • Имя класса, полученное с помощью позднего статического связывания

get_called_class

(PHP 5 >= 5.3.0, PHP 7)

get_called_class — Имя класса, полученное с помощью позднего статического связывания

Описание

get_called_class ( void ) : string

Возвращает имя класса, из которого был вызван статический метод.

Возвращаемые значения

Возвращает имя класса. Возвращает FALSE, если было вызвано вне класса.

Примеры

Пример #1 Пример использования get_called_class()

<?php

class foo {
    static public function test() {
        var_dump(get_called_class());
    }
}

class bar extends foo {
}

foo::test();
bar::test();

?>

Результат выполнения данного примера:

string(3) "foo"
string(3) "bar"

Смотрите также

  • get_parent_class() - Возвращает имя родительского класса для объекта или класса
  • get_class() - Возвращает имя класса, к которому принадлежит объект
  • is_subclass_of() - Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его


Возвращает массив имен методов класса

  • « get_called_class
  • get_class_vars »
  • PHP Manual
  • Функции работы с классами и объектами
  • Возвращает массив имен методов класса

get_class_methods

(PHP 4, PHP 5, PHP 7)

get_class_methods — Возвращает массив имен методов класса

Описание

get_class_methods ( mixed $class_name ) : array

Возвращает массив имен методов класса.

Список параметров

class_name

Имя класса или объект

Возвращаемые значения

Возвращает массив имен методов, объявленных в классе class_name. В случае ошибки будет возвращен NULL.

Примеры

Пример #1 Пример использования get_class_methods()

<?php

class myclass {
    // конструктор
    function __construct()
    {
        return(true);
    }

    // метод 1
    function myfunc1()
    {
        return(true);
    }

    // метод 2
    function myfunc2()
    {
        return(true);
    }
}

$class_methods = get_class_methods('myclass');
// или
$class_methods = get_class_methods(new myclass());

foreach ($class_methods as $method_name) {
    echo "$method_name\n";
}

?>

Результат выполнения данного примера:

myclass
myfunc1
myfunc2

Смотрите также

  • get_class() - Возвращает имя класса, к которому принадлежит объект
  • get_class_vars() - Возвращает объявленные по умолчанию свойства класса
  • get_object_vars() - Возвращает свойства указанного объекта


Возвращает объявленные по умолчанию свойства класса

  • « get_class_methods
  • get_class »
  • PHP Manual
  • Функции работы с классами и объектами
  • Возвращает объявленные по умолчанию свойства класса

get_class_vars

(PHP 4, PHP 5, PHP 7)

get_class_vars — Возвращает объявленные по умолчанию свойства класса

Описание

get_class_vars ( string $class_name ) : array

Возвращает объявленные по умолчанию свойства указанного класса.

Список параметров

class_name

Имя класса

Возвращаемые значения

Возвращает ассоциативный массив объявленных свойств класса, видимых из текущей области видимости, с их значением по умолчанию. Получившиеся элементы массива имеют форму varname => value. В случае ошибки возвращается FALSE.

Список изменений

Версия | Описание
5.0.3 | Вызов get_class_vars() вернет только те свойства, доступ к которым может быть получен из текущей области видимости.
5.0.2 | Вызов get_class_vars() не вернет все свойства в качестве массива, в отличие от предыдущего поведения, где protected и private свойства имели префикс с нулевым байтом.
5.0.1 | Вызов get_class_vars() вернет все свойства, как при конвертировании объекта в класс.

Примеры

Пример #1 Пример использования get_class_vars()

<?php

class myclass {

    var $var1; // переменная не имеет начального значения...
    var $var2 = "xyz";
    var $var3 = 100;
    private $var4;

    // конструктор
    function __construct() {
        // изменим значения некоторых свойств
        $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";
}

?>

Результат выполнения данного примера:

var1 :
var2 : xyz
var3 : 100

Пример #2 get_class_vars() и поведение области видимости

<?php
function format($array)
{
    return implode('|', array_keys($array)) . "\r\n";
}

class TestCase
{
    public $a    = 1;
    protected $b = 2;
    private $c   = 3;

    public static function expose()
    {
        echo format(get_class_vars(__CLASS__));
    }
}

TestCase::expose();
echo format(get_class_vars('TestCase'));
?>

Результат выполнения данного примера:

// 5.0.0
a| * b| TestCase c
a| * b| TestCase c

// 5.0.1 - 5.0.2
a|b|c
a|b|c

// 5.0.3 +
a|b|c
a

Смотрите также

  • get_class_methods() - Возвращает массив имен методов класса
  • get_object_vars() - Возвращает свойства указанного объекта


Возвращает имя класса, к которому принадлежит объект

  • « get_class_vars
  • get_declared_classes »
  • PHP Manual
  • Функции работы с классами и объектами
  • Возвращает имя класса, к которому принадлежит объект

get_class

(PHP 4, PHP 5, PHP 7)

get_class — Возвращает имя класса, к которому принадлежит объект

Описание

get_class ([ object $object ] ) : string

Возвращает имя класса, экземпляром которого является объект object.

Список параметров

object

Тестируемый объект. Внутри класса этот параметр может быть опущен.

Замечание: Начиная с PHP 7.2.0, явная передача NULL в object запрещена. Параметр все еще опциональный и вызов get_class() без этого параметра внутри класса будет работать, но явная передача NULL теперь приведет к ошибке уровня E_WARNING.

Возвращаемые значения

Возвращает имя класса, к которому принадлежит экземпляр object. Возвращает FALSE, если object не является объектом.

Если параметр object опущен внутри класса, будет возвращено имя этого класса.

Если параметр object является экземпляром класса, существующего в пространстве имен, то будет возвращено полное имя с указанием пространства имен.

Ошибки

Если get_class() будет вызвана с чем-то другим, не являющимся объектом, будет вызвана ошибка уровня E_WARNING.

Список изменений

Версия | Описание
7.2.0 | NULL больше не является значением по умолчанию для object и не является допустимым значением этого параметра.
5.3.0 | NULL стал значением по умолчанию для параметра object, поэтому передача NULL в object теперь имеет тот же самый эффект, как и отсутствие какой-либо передачи вообще.

Примеры

Пример #1 Использование get_class()

<?php

class foo {
    function name()
    {
        echo "Меня зовут " , get_class($this) , "\n";
    }
}

// создание объекта
$bar = new foo();

// внешний вызов
echo "Его имя " , get_class($bar) , "\n";

// внутренний вызов
$bar->name();

?>

Результат выполнения данного примера:

Его имя foo
Меня зовут foo

Пример #2 Использование get_class() в родительском классе

<?php

abstract class bar {
    public function __construct()
    {
        var_dump(get_class($this));
        var_dump(get_class());
    }
}

class foo extends bar {
}

new foo;

?>

Результат выполнения данного примера:

string(3) "foo"
string(3) "bar"

Пример #3 Использование get_class() с классами в пространствах имен

<?php

namespace Foo\Bar;

class Baz {
    public function __construct()
    {

    }
}

$baz = new \Foo\Bar\Baz;

var_dump(get_class($baz));
?>

Результат выполнения данного примера:

string(11) "Foo\Bar\Baz"

Смотрите также

  • get_called_class() - Имя класса, полученное с помощью позднего статического связывания
  • get_parent_class() - Возвращает имя родительского класса для объекта или класса
  • gettype() - Возвращает тип переменной
  • is_subclass_of() - Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его


Возвращает массив с именами объявленных классов

  • « get_class
  • get_declared_interfaces »
  • PHP Manual
  • Функции работы с классами и объектами
  • Возвращает массив с именами объявленных классов

get_declared_classes

(PHP 4, PHP 5, PHP 7)

get_declared_classes — Возвращает массив с именами объявленных классов

Описание

get_declared_classes ( void ) : array

Возвращает объявленные классы.

Возвращаемые значения

Возвращает массив имен объявленных классов в текущем скрипте.

Замечание:

Учтите также, что в зависимости от расширений, собранных или загруженных в PHP, может варьироваться число дополнительных классов. Это означает, что вы не сможете использовать собственные классы с данными именами. Список предопределенных классов находится в разделе дополнения "Предопределенные классы".

Примеры

Пример #1 Пример использования get_declared_classes()

<?php
print_r(get_declared_classes());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => stdClass
    [1] => __PHP_Incomplete_Class
    [2] => Directory
)

Смотрите также

  • class_exists() - Проверяет, был ли объявлен класс
  • get_declared_interfaces() - Возвращает массив всех объявленных интерфейсов
  • get_defined_functions() - Возвращает массив всех определённых функций


Возвращает массив всех объявленных интерфейсов

  • « get_declared_classes
  • get_declared_traits »
  • PHP Manual
  • Функции работы с классами и объектами
  • Возвращает массив всех объявленных интерфейсов

get_declared_interfaces

(PHP 5, PHP 7)

get_declared_interfaces — Возвращает массив всех объявленных интерфейсов

Описание

get_declared_interfaces ( void ) : array

Возвращает объявленные интерфейсы.

Возвращаемые значения

Возвращает массив имен всех объявленных интерфейсов в текущем скрипте.

Примеры

Пример #1 Пример использования get_declared_interfaces()

<?php
print_r(get_declared_interfaces());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Traversable
    [1] => IteratorAggregate
    [2] => Iterator
    [3] => ArrayAccess
    [4] => reflector
    [5] => RecursiveIterator
    [6] => SeekableIterator
)

Смотрите также

  • interface_exists() - Проверяет, определен ли интерфейс
  • get_declared_classes() - Возвращает массив с именами объявленных классов
  • class_implements() - Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе


Возвращает массив со всеми объявленными трейтами

  • « get_declared_interfaces
  • get_object_vars »
  • PHP Manual
  • Функции работы с классами и объектами
  • Возвращает массив со всеми объявленными трейтами

get_declared_traits

(PHP 5 >= 5.4.0, PHP 7)

get_declared_traits — Возвращает массив со всеми объявленными трейтами

Описание

get_declared_traits ( void ) : array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с именами трейтов в качестве значений массива. Возвращает NULL, если таковые не найдены.

Смотрите также

  • class_uses() - Возвращает список трейтов, используемых заданным классом
  • trait_exists() - Проверяет, существует ли трейт


Возвращает свойства указанного объекта

  • « get_declared_traits
  • get_parent_class »
  • PHP Manual
  • Функции работы с классами и объектами
  • Возвращает свойства указанного объекта

get_object_vars

(PHP 4, PHP 5, PHP 7)

get_object_vars — Возвращает свойства указанного объекта

Описание

get_object_vars ( object $object ) : array

Возвращает видимые нестатические свойства указанного объекта object в соответствии с областью видимости.

Список параметров

object

Экземпляр объекта

Возвращаемые значения

Возвращает ассоциативный массив нестатических свойств объекта object, доступных в данной области видимости.

Список изменений

Версия | Описание
5.3.0 | Функция теперь возвращает NULL, если object не является объектом. Ранее возвращался FALSE.

Примеры

Пример #1 Пример использования get_object_vars()

<?php

class foo {
    private $a;
    public $b = 1;
    public $c;
    private $d;
    static $e;

    public function test() {
        var_dump(get_object_vars($this));
    }
}

$test = new foo;
var_dump(get_object_vars($test));

$test->test();

?>

Результат выполнения данного примера:

array(2) {
  ["b"]=>
  int(1)
  ["c"]=>
  NULL
}
array(4) {
  ["a"]=>
  NULL
  ["b"]=>
  int(1)
  ["c"]=>
  NULL
  ["d"]=>
  NULL
}

Смотрите также

  • get_class_methods() - Возвращает массив имен методов класса
  • get_class_vars() - Возвращает объявленные по умолчанию свойства класса


Возвращает имя родительского класса для объекта или класса

  • « get_object_vars
  • interface_exists »
  • PHP Manual
  • Функции работы с классами и объектами
  • Возвращает имя родительского класса для объекта или класса

get_parent_class

(PHP 4, PHP 5, PHP 7)

get_parent_class — Возвращает имя родительского класса для объекта или класса

Описание

get_parent_class ([ mixed $object ] ) : string

Возвращает имя родительского класса для объекта или класса.

Список параметров

object

Тестируемый объект или имя класса. Если вызывается из метода объекта, то этот параметр не обязателен.

Возвращаемые значения

Возвращает имя родительского класса, если object является объектом или именем класса.

Замечание:

Если объект не имеет родителя или переданного класса с таким именем не существует, то возвращается FALSE.

Если функция вызвана без параметров вне объекта, эта функция возвращает FALSE.

Список изменений

Версия | Описание
5.1.0 | Если функция была вызвана без параметров вне объекта, то функция возвращала NULL вместе с предупреждением, однако сейчас она возвращает FALSE.

Примеры

Пример #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() - Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его
  • class_parents() - Возвращает список родительских классов заданного класса


Проверяет, определен ли интерфейс

  • « get_parent_class
  • is_a »
  • PHP Manual
  • Функции работы с классами и объектами
  • Проверяет, определен ли интерфейс

interface_exists

(PHP 5 >= 5.0.2, PHP 7)

interface_exists — Проверяет, определен ли интерфейс

Описание

interface_exists ( string $interface_name [, bool $autoload = TRUE ] ) : bool

Проверяет, определен ли указанный интерфейс.

Список параметров

interface_name

Имя интерфейса

autoload

Определяет, использовать ли по умолчанию __autoload или нет

Возвращаемые значения

Возвращает TRUE, если интерфейс c заданным именем interface_name был определен или FALSE в противном случае.

Примеры

Пример #1 Пример использования interface_exists()

<?php
// Проверяем существование интерфейса перед его использованием
if (interface_exists('MyInterface')) {
    class MyClass implements MyInterface
    {
        // Методы
    }
}

?>

Смотрите также

  • get_declared_interfaces() - Возвращает массив всех объявленных интерфейсов
  • class_implements() - Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе
  • class_exists() - Проверяет, был ли объявлен класс


Проверяет, принадлежит ли объект к данному классу или является ли этот класс одним из его родителей

  • « interface_exists
  • is_subclass_of »
  • PHP Manual
  • Функции работы с классами и объектами
  • Проверяет, принадлежит ли объект к данному классу или является ли этот класс одним из его родителей

is_a

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

is_a — Проверяет, принадлежит ли объект к данному классу или является ли этот класс одним из его родителей

Описание

is_a ( mixed $object , string $class_name [, bool $allow_string = FALSE ] ) : bool

Проверяет, принадлежит ли объект object к данному классу или является ли этот класс одним из его родителей.

Список параметров

object

Имя класса или объект

class_name

Имя класса

allow_string

Если параметр установлен в FALSE, то не допускается имя класса в виде строки в качестве параметра object. Это также предотвращает вызов автозагрузчика, если класс не существует.

Возвращаемые значения

Возвращает TRUE, если объект принадлежит данному классу или является ли этот класс одним из его родителей, иначе возвращается FALSE.

Список изменений

Версия | Описание
5.3.9 | Добавлен параметр allow_string
5.3.0 | Данная функция больше не считается устаревшей, а значит больше не будет выводить предупреждения E_STRICT.
5.0.0 | Эта функция была помечена устаревшей в пользу оператора instanceof. Вызов данной функции вызовет предупреждение уровня E_STRICT.

Примеры

Пример #1 Пример использования is_a()

<?php
// объявление класса
class WidgetFactory
{
  var $oink = 'moo';
}

// создание нового объекта
$WF = new WidgetFactory();

if (is_a($WF, 'WidgetFactory')) {
  echo "да, \$WF все еще WidgetFactory\n";
}
?>

Пример #2 Использование оператора instanceof в PHP 5

<?php
if ($WF instanceof WidgetFactory) {
    echo 'Да, $WF - WidgetFactory';
}
?>

Смотрите также

  • get_class() - Возвращает имя класса, к которому принадлежит объект
  • get_parent_class() - Возвращает имя родительского класса для объекта или класса
  • is_subclass_of() - Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его


Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его

  • « is_a
  • method_exists »
  • PHP Manual
  • Функции работы с классами и объектами
  • Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его

is_subclass_of

(PHP 4, PHP 5, PHP 7)

is_subclass_of — Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его

Описание

is_subclass_of ( mixed $object , string $class_name [, bool $allow_string = TRUE ] ) : bool

Проверяет, содержит ли объект object в своем дереве предков класс class_name либо прямо реализует его.

Список параметров

object

Имя класса или экземпляр объекта. В случае отсутствия такого класса никакой ошибки сгенерировано не будет.

class_name

Имя класса

allow_string

Если параметр установлен в false, то не допускается имя класса в виде строки в качестве параметра object. Это также предотвращает вызов автозагрузчика, если класс не существует.

Возвращаемые значения

Эта функция возвращает TRUE, если объект object принадлежит к классу, наследующему от class_name, иначе она возвращает FALSE.

Список изменений

Версия | Описание
5.3.9 | Добавлен параметр allow_string
5.3.7 | Добавлена поддержка работы с интерфейсами для параметра class_name
5.0.3 | Вы также можете передать параметр object в виде строки (имени класса)

Примеры

Пример #1 Пример использования is_subclass_of()

<?php
// объявляем класс
class WidgetFactory
{
  var $oink = 'moo';
}

// объявляем наследника
class WidgetFactory_Child extends WidgetFactory
{
  var $oink = 'oink';
}

// создаем новый объект
$WF = new WidgetFactory();
$WFC = new WidgetFactory_Child();

if (is_subclass_of($WFC, 'WidgetFactory')) {
  echo "да, \$WFC наследует WidgetFactory\n";
} else {
  echo "нет, \$WFC не наследует WidgetFactory\n";
}

if (is_subclass_of($WF, 'WidgetFactory')) {
  echo "да, \$WF наследует WidgetFactory\n";
} else {
  echo "нет, \$WF не наследует WidgetFactory\n";
}

// применимо только с версии PHP 5.0.3
if (is_subclass_of('WidgetFactory_Child', 'WidgetFactory')) {
  echo "да, WidgetFactory_Child наследует WidgetFactory\n";
} else {
  echo "нет, WidgetFactory_Child не наследует WidgetFactory\n";
}
?>

Результат выполнения данного примера:

да, $WFC наследует WidgetFactory
нет, $WF не наследует WidgetFactory
да, WidgetFactory_Child наследует WidgetFactory

Пример #2 Пример использования is_subclass_of() с интерфейсами

<?php
// Определяем интерфейс
interface MyInterface
{
  public function MyFunction();
}

// Определяем класс с реализацией интерфейса
class MyClass implements MyInterface
{
  public function MyFunction()
  {
    return "MyClass реализует MyInterface!";
  }
}

// Создаем объект
$my_object = new MyClass;

// Код ниже работает с PHP 5.3.7

// Проверка с помощью экземпляра объекта
if (is_subclass_of($my_object, 'MyInterface')) {
  echo "Да, \$my_object является подклассом MyInterface\n";
} else {
  echo "Нет, \$my_object не является подклассом MyInterface\n";
}

// Проверка с помощью имени класса в виде строки
if (is_subclass_of('MyClass', 'MyInterface')) {
  echo "Да, MyClass является подклассом MyInterface\n";
} else {
  echo "Нет, MyClass не является подклассом MyInterface\n";
}
?>

Результат выполнения данного примера:

Да, $my_object является подклассом MyInterface
Да, MyClass является подклассом MyInterface

Примечания

Замечание:

Вызов этой функции будет использовать все зарегистрированные функции автозагрузки, если класс еще не известен.

Смотрите также

  • get_class() - Возвращает имя класса, к которому принадлежит объект
  • get_parent_class() - Возвращает имя родительского класса для объекта или класса
  • is_a() - Проверяет, принадлежит ли объект к данному классу или является ли этот класс одним из его родителей
  • class_parents() - Возвращает список родительских классов заданного класса


Проверяет, существует ли метод в данном классе

  • « is_subclass_of
  • property_exists »
  • PHP Manual
  • Функции работы с классами и объектами
  • Проверяет, существует ли метод в данном классе

method_exists

(PHP 4, PHP 5, PHP 7)

method_exists — Проверяет, существует ли метод в данном классе

Описание

method_exists ( mixed $object , string $method_name ) : bool

Проверяет, существует ли метод класса в указанном объекте object.

Список параметров

object

Экземпляр объекта или имя класса

method_name

Имя метода

Возвращаемые значения

Возвращает TRUE, если метод method_name определен для указанного объекта object, иначе возвращает FALSE.

Примечания

Замечание:

Вызов этой функции будет использовать все зарегистрированные функции автозагрузки, если класс еще не известен.

Примеры

Пример #1 Пример использования method_exists()

<?php
$directory = new Directory('.');
var_dump(method_exists($directory,'read'));
?>

Результат выполнения данного примера:

bool(true)

Пример #2 Пример статического использования method_exists()

<?php
var_dump(method_exists('Directory','read'));
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • function_exists() - Возвращает TRUE, если указанная функция определена
  • is_callable() - Проверяет, может ли значение переменной быть вызвано в качестве функции
  • class_exists() - Проверяет, был ли объявлен класс


Проверяет, содержит ли объект или класс указанный атрибут

  • « method_exists
  • trait_exists »
  • PHP Manual
  • Функции работы с классами и объектами
  • Проверяет, содержит ли объект или класс указанный атрибут

property_exists

(PHP 5 >= 5.1.0, PHP 7)

property_exists — Проверяет, содержит ли объект или класс указанный атрибут

Описание

property_exists ( mixed $class , string $property ) : bool

Функция проверяет, существует ли атрибут property в указанном классе.

Замечание:

В противоположность isset(), property_exists() возвращает TRUE, даже если свойство имеет значение NULL.

Список параметров

class

Имя класса или объект класса для проверки

property

Имя свойства

Возвращаемые значения

Возвращает TRUE, если свойство существует, FALSE, если оно не существует, или NULL в случае ошибки.

Примечания

Замечание:

Вызов этой функции будет использовать все зарегистрированные функции автозагрузки, если класс еще не известен.

Замечание:

Функция property_exists() не определяет магически доступные свойства с помощью метода __get.

Список изменений

Версия | Описание
5.3.0 | Эта функция проверяет существование свойства вне зависимости от его доступности.

Примеры

Пример #1 Пример использования property_exists()

<?php

class myClass {
    public $mine;
    private $xpto;
    static protected $test;

    static function test() {
        var_dump(property_exists('myClass', 'xpto')); //true
    }
}

var_dump(property_exists('myClass', 'mine'));   //true
var_dump(property_exists(new myClass, 'mine')); //true
var_dump(property_exists('myClass', 'xpto'));   //true, начиная с версии PHP 5.3.0
var_dump(property_exists('myClass', 'bar'));    //false
var_dump(property_exists('myClass', 'test'));   //true, начиная с версии PHP 5.3.0
myClass::test();

?>

Смотрите также

  • method_exists() - Проверяет, существует ли метод в данном классе


Проверяет, существует ли трейт

  • « property_exists
  • Classkit »
  • PHP Manual
  • Функции работы с классами и объектами
  • Проверяет, существует ли трейт

trait_exists

(PHP 5 >= 5.4.0, PHP 7)

trait_exists — Проверяет, существует ли трейт

Описание

trait_exists ( string $traitname [, bool $autoload ] ) : bool

Список параметров

traitname

Имя трейта для проверки

autoload

Пытаться ли его загрузить автоматически

Возвращаемые значения

Возвращает TRUE, если трейт существует, FALSE, если нет, NULL в случае ошибки.


Classkit

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • classkit
    • classkit_import — Импортирует определения методов нового класса из файла
    • classkit_method_add — Динамически добавляет новый метод в заданный класс
    • classkit_method_copy — Копирует метод из одного класса в другой
    • classkit_method_redefine — Динамически меняет код заданного метода
    • classkit_method_remove — Динамически удаляет заданный метод
    • classkit_method_rename — Динамически меняет имя заданного метода


Введение

Эти функции позволяют динамически управлять классами PHP во время выполнения.

Замечание:

Этот модуль был заменен модулем runkit, который не ограничивается управлением классами, а умеет управлять так же и функциями.


Установка

Это расширение не поддерживается и считается умершим. Однако, его исходный код все еще доступен в PECL SVN вот здесь: » https://svn.php.net/viewvc/pecl/classkit.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

CLASSKIT_ACC_PRIVATE (int)
Помечает метод, как private
CLASSKIT_ACC_PROTECTED (int)
Помечает метод, как protected
CLASSKIT_ACC_PUBLIC (int)
Помечает метод, как public


classkit

Содержание

  • classkit_import — Импортирует определения методов нового класса из файла
  • classkit_method_add — Динамически добавляет новый метод в заданный класс
  • classkit_method_copy — Копирует метод из одного класса в другой
  • classkit_method_redefine — Динамически меняет код заданного метода
  • classkit_method_remove — Динамически удаляет заданный метод
  • classkit_method_rename — Динамически меняет имя заданного метода


Импортирует определения методов нового класса из файла

  • « classkit
  • classkit_method_add »
  • PHP Manual
  • classkit
  • Импортирует определения методов нового класса из файла

classkit_import

(PECL classkit >= 0.3)

classkit_import — Импортирует определения методов нового класса из файла

Описание

classkit_import ( string $filename ) : array

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

filename

Имя файла с определениями методов класса

Возвращаемые значения

Ассоциативный массив импортированных методов

Примеры

Пример #1 Пример использования classkit_import()

<?php
// file: newclass.php
class Example {
    function foo() {
        return "bar!\n";
    }
}
?>
<?php
// требуется newclass.php (см. выше)
class Example {
    function foo() {
        return "foo!\n";
    }
}

$e = new Example();

// вывод оригинала
echo $e->foo();

// импорт замещающего метода
classkit_import('newclass.php');

// вывод импортированного метода
echo $e->foo();

?>

Результат выполнения данного примера:

foo!
bar!

Смотрите также

  • classkit_method_add() - Динамически добавляет новый метод в заданный класс
  • classkit_method_copy() - Копирует метод из одного класса в другой


Динамически добавляет новый метод в заданный класс

  • « classkit_import
  • classkit_method_copy »
  • PHP Manual
  • classkit
  • Динамически добавляет новый метод в заданный класс

classkit_method_add

(PECL classkit >= 0.1)

classkit_method_add — Динамически добавляет новый метод в заданный класс

Описание

classkit_method_add ( string $classname , string $methodname , string $args , string $code [, int $flags = CLASSKIT_ACC_PUBLIC ] ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

classname

Класс, в который этот метод будет добавлен

methodname

Имя добавляемого метода

args

Список аргументов для созданного метода с разделителем ","

code

Код, который будет выполняться во время вызова methodname

flags

Тип создаваемого метода, может быть CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED или CLASSKIT_ACC_PRIVATE

Замечание:

Этот параметр используется только в PHP начиная с 5 версии, поскольку в предыдущих версиях все методы были общедоступными.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования classkit_method_add()

<?php
class Example {
    function foo() {
        echo "foo!\n";
    }
}

// создается объект Example
$e = new Example();

// Добавляется новый общедоступный метод
classkit_method_add(
    'Example',
    'add',
    '$num1, $num2',
    'return $num1 + $num2;',
    CLASSKIT_ACC_PUBLIC
);

// сложение 12 + 4
echo $e->add(12, 4);
?>

Результат выполнения данного примера:

16

Смотрите также

  • classkit_method_copy() - Копирует метод из одного класса в другой
  • classkit_method_redefine() - Динамически меняет код заданного метода
  • classkit_method_remove() - Динамически удаляет заданный метод
  • classkit_method_rename() - Динамически меняет имя заданного метода
  • create_function() - Создаёт анонимную (лямбда) функцию


Копирует метод из одного класса в другой

  • « classkit_method_add
  • classkit_method_redefine »
  • PHP Manual
  • classkit
  • Копирует метод из одного класса в другой

classkit_method_copy

(PECL classkit >= 0.2)

classkit_method_copy — Копирует метод из одного класса в другой

Описание

classkit_method_copy ( string $dClass , string $dMethod , string $sClass [, string $sMethod ] ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

dClass

Класс, в который необходимо скопировать метод

dMethod

Имя нового метода

sClass

Исходный класс, содержащий копируемый метод

sMethod

Имя копируемого метода из исходного класса. Если этот параметр не указан, предполагается значение dMethod.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования classkit_method_copy()

<?php
class Foo {
    function example() {
        return "foo!\n";
    }
}

class Bar {
    // изначально без методов
}

// копируется метод example() из класса Foo в класс Bar, с новым именем baz()
classkit_method_copy('Bar', 'baz', 'Foo', 'example');

// вывод скопированной функции
echo Bar::baz();
?>

Результат выполнения данного примера:

foo!

Смотрите также

  • classkit_method_add() - Динамически добавляет новый метод в заданный класс
  • classkit_method_redefine() - Динамически меняет код заданного метода
  • classkit_method_remove() - Динамически удаляет заданный метод
  • classkit_method_rename() - Динамически меняет имя заданного метода


Динамически меняет код заданного метода

  • « classkit_method_copy
  • classkit_method_remove »
  • PHP Manual
  • classkit
  • Динамически меняет код заданного метода

classkit_method_redefine

(PECL classkit >= 0.1)

classkit_method_redefine — Динамически меняет код заданного метода

Описание

classkit_method_redefine ( string $classname , string $methodname , string $args , string $code [, int $flags = CLASSKIT_ACC_PUBLIC ] ) : bool

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

classname

Класс, в котором необходимо переопределить метод

methodname

Имя переопределяемого метода

args

Список аргументов переопределяемого метода с разделителем ","

code

Новый код, который будет выполняться во время вызова methodname

flags

Переопределяемый метод может быть CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED или CLASSKIT_ACC_PRIVATE

Замечание:

Этот параметр используется только в PHP начиная с 5 версии, поскольку в предыдущих версиях все методы были общедоступными.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования classkit_method_redefine()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// создается объект Example
$e = new Example();

// вывод Example::foo() (до переопределения)
echo "Before: " . $e->foo();

// Переопределение метода 'foo'
classkit_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    CLASSKIT_ACC_PUBLIC
);

// вывод Example::foo() (после переопределения)
echo "After: " . $e->foo();
?>

Результат выполнения данного примера:

Before: foo!
After: bar!

Смотрите также

  • classkit_method_add() - Динамически добавляет новый метод в заданный класс
  • classkit_method_copy() - Копирует метод из одного класса в другой
  • classkit_method_remove() - Динамически удаляет заданный метод
  • classkit_method_rename() - Динамически меняет имя заданного метода


Динамически удаляет заданный метод

  • « classkit_method_redefine
  • classkit_method_rename »
  • PHP Manual
  • classkit
  • Динамически удаляет заданный метод

classkit_method_remove

(PECL classkit >= 0.1)

classkit_method_remove — Динамически удаляет заданный метод

Описание

classkit_method_remove ( string $classname , string $methodname ) : bool

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

classname

Класс, в котором необходимо удалить метод

methodname

Имя удаляемого метода

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования classkit_method_remove()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }

    function bar() {
        return "bar!\n";
    }
}

// Удаление метода 'foo'
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_remove
  • Ctype »
  • PHP Manual
  • classkit
  • Динамически меняет имя заданного метода

classkit_method_rename

(PECL classkit >= 0.1)

classkit_method_rename — Динамически меняет имя заданного метода

Описание

classkit_method_rename ( string $classname , string $methodname , string $newname ) : bool

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

classname

Класс, в котором необходимо переименовать метод

methodname

Имя переименовываемого метода

newname

Новое имя метода после переименования

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования classkit_method_rename()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Переименование метода 'foo' в 'bar'
classkit_method_rename(
    'Example',
    'foo',
    'bar'
);

// вывод переименованной функции
echo Example::bar();
?>

Результат выполнения данного примера:

foo!

Смотрите также

  • classkit_method_add() - Динамически добавляет новый метод в заданный класс
  • classkit_method_copy() - Копирует метод из одного класса в другой
  • classkit_method_redefine() - Динамически меняет код заданного метода
  • classkit_method_remove() - Динамически удаляет заданный метод


Функции определения типа символов

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Ctype
    • ctype_alnum — Проверяет наличие буквенно-цифровых символов
    • ctype_alpha — Проверяет наличие буквенных символов
    • ctype_cntrl — Проверяет наличие управляющих символов
    • ctype_digit — Проверяет наличие цифровых символов в строке
    • ctype_graph — Проверяет наличие любых печатных символов, кроме пробела
    • ctype_lower — Проверяет наличие символов в нижнем регистре
    • ctype_print — Проверяет наличие печатных символов
    • ctype_punct — Проверяет наличие печатных символов, которые не содержат пробельные или буквенно-цифровые символы
    • ctype_space — Проверяет наличие пробельных символов
    • ctype_upper — Проверяет наличие символов в верхнем регистре
    • ctype_xdigit — Проверяет наличие шестнадцатеричных цифр


Введение

Функции, представленные этим расширением, позволяют проверить принадлежность символа или строки определенному классу символов, принимая во внимание текущие региональные установки (см. также функцию setlocale()).

Будучи вызванными с целочисленным аргументом, эти функции ведут себя точно так же, как их C-эквиваленты в языке C (из ctype.h). Это означает, что если вы передаёте целое значение менее 256, функции проверяют соответствует ли это значение ASCII указанному классу символов (цифры находятся в диапазоне 0x30-0x39). Если число находится в пределах от -128 до -1 включительно, то к его значению будет прибавлено 256 и сравнение будет проводиться с использованием результата сложения.

Если аргументом выступает строка, то функции будут проверять каждый символ в этой строке и вернут TRUE только если каждый символ удовлетворяет требуемому условию. При вызове с пустой строкой в качестве аргумента, функции всегда возвращают TRUE в PHP < 5.1 и FALSE после 5.1.

При передаче данных других типов (кроме целого или строки) функции сразу же возвращают FALSE.

Следует отметить, что данные функции всегда предпочтительнее, чем использование регулярных выражений и даже некоторых эквивалентных функций "str_*" и "is_*". Это связано с тем, что ctype использует родную библиотеку C, и, следовательно, работают значительно быстрее.

Замечание:

Эти функции не имеют никакого отношения к Python-библиотеке "ctypes". Название расширения является сокращением имени заголовочного файла C ctype.h, в котором определены эквиваленты из C.

Данное расширение также было создано раньше "ctypes" в Python, так что любая путаница, связанная с этими названиями, вряд ли является ошибкой со стороны разработчиков расширения.


Требования

Содержит только функции из стандартной библиотеки C, которая всегда доступна, поэтому дополнительных требований нет.


Установка

Запретить поддержку ctype можно с помощью --disable-ctype .

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.


  • « Типы ресурсов
  • Функции Ctype »
  • PHP Manual
  • Ctype
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции Ctype

Содержание

  • ctype_alnum — Проверяет наличие буквенно-цифровых символов
  • ctype_alpha — Проверяет наличие буквенных символов
  • ctype_cntrl — Проверяет наличие управляющих символов
  • ctype_digit — Проверяет наличие цифровых символов в строке
  • ctype_graph — Проверяет наличие любых печатных символов, кроме пробела
  • ctype_lower — Проверяет наличие символов в нижнем регистре
  • ctype_print — Проверяет наличие печатных символов
  • ctype_punct — Проверяет наличие печатных символов, которые не содержат пробельные или буквенно-цифровые символы
  • ctype_space — Проверяет наличие пробельных символов
  • ctype_upper — Проверяет наличие символов в верхнем регистре
  • ctype_xdigit — Проверяет наличие шестнадцатеричных цифр


Проверяет наличие буквенно-цифровых символов

  • « Функции Ctype
  • ctype_alpha »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие буквенно-цифровых символов

ctype_alnum

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_alnum — Проверяет наличие буквенно-цифровых символов

Описание

ctype_alnum ( string $text ) : bool

Проверяет, все ли символы в переданной строке text являются буквенно-цифровыми.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text является буквой или цифрой, иначе возвращается FALSE.

Примеры

Пример #1 Пример использования ctype_alnum() (с использованием локали по умолчанию)

<?php
$strings = array('AbCd1zyZ9', 'foo!#$bar');
foreach ($strings as $testcase) {
    if (ctype_alnum($testcase)) {
        echo "Строка $testcase состоит только из букв и цифр.\n";
    } else {
        echo "Строка $testcase не состоит только из букв и цифр.\n";
    }
}
?>

Результат выполнения данного примера:

Строка AbCd1zyZ9 состоит только из букв и цифр.
Строка foo!#$bar не состоит только из букв и цифр.

Примечания

Замечание:

Если передано целое число (integer) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_alpha() - Проверяет наличие буквенных символов
  • ctype_digit() - Проверяет наличие цифровых символов в строке
  • setlocale() - Устанавливает настройки локали


Проверяет наличие буквенных символов

  • « ctype_alnum
  • ctype_cntrl »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие буквенных символов

ctype_alpha

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_alpha — Проверяет наличие буквенных символов

Описание

ctype_alpha ( string $text ) : bool

Проверяет, все ли символы в переданной строке text являются буквенными. В стандартной локали C буквами являются только [A-Za-z] и ctype_alpha() эквивалентна (ctype_upper($text) || ctype_lower($text)), если $text состоит всего из одного символа, но в других языках есть буквы, которые не считаются ни верхним, ни нижним регистром.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text является буквой из текущей локали, FALSE в противном случае.

Примеры

Пример #1 Пример использования ctype_alpha() (с использованием локали по умолчанию)

<?php
$strings = array('KjgWZC', 'arf12');
foreach ($strings as $testcase) {
    if (ctype_alpha($testcase)) {
        echo "Строка $testcase состоит только из букв.\n";
    } else {
        echo "Строка $testcase состоит не только из букв.\n";
    }
}
?>

Результат выполнения данного примера:

Строка KjgWZC состоит только из букв.
Строка arf12 состоит не только из букв.

Примечания

Замечание:

Если передано целое число (integer) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_upper() - Проверяет наличие символов в верхнем регистре
  • ctype_lower() - Проверяет наличие символов в нижнем регистре
  • setlocale() - Устанавливает настройки локали


Проверяет наличие управляющих символов

  • « ctype_alpha
  • ctype_digit »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие управляющих символов

ctype_cntrl

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_cntrl — Проверяет наличие управляющих символов

Описание

ctype_cntrl ( string $text ) : bool

Проверяет, все ли символы в переданной строке text являются управляющими символами. Управляющими символами, к примеру, являются перевод строки, символ табуляции, escape.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text является управляющим символом из текущей локали, FALSE в противном случае.

Примеры

Пример #1 Пример использования ctype_cntrl()

<?php
$strings = array('string1' => "\n\r\t", 'string2' => 'arf12');
foreach ($strings as $name => $testcase) {
    if (ctype_cntrl($testcase)) {
        echo "Строка '$name' состоит только из управляющих символов.\n";
    } else {
        echo "Строка '$name' не состоит только из управляющих символов.\n";
    }
}
?>

Результат выполнения данного примера:

Строка 'string1' состоит только из управляющих символов.
Строка 'string2' не состоит только из управляющих символов.

Примечания

Замечание:

Если передано целое число (integer) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_print() - Проверяет наличие печатных символов


Проверяет наличие цифровых символов в строке

  • « ctype_cntrl
  • ctype_graph »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие цифровых символов в строке

ctype_digit

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_digit — Проверяет наличие цифровых символов в строке

Описание

ctype_digit ( string $text ) : bool

Проверяет, являются ли все символы в строке text цифровыми.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ строки text является десятичной цифрой, либо FALSE в противном случае.

Список изменений

Версия | Описание
5.1.0 | До версии PHP 5.1.0 эта функция возвращала TRUE, если в качестве text передавалась пустая строка.

Примеры

Пример #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 не состоит только из цифр.

Пример #2 Пример использования ctype_digit() со сравнением строк и целых чисел

<?php

$numeric_string = '42';
$integer        = 42;

ctype_digit($numeric_string);  // true
ctype_digit($integer);         // false (ASCII 42 - это символ *)

is_numeric($numeric_string);   // true
is_numeric($integer);          // true
?>

Примечания

Замечание:

Для извлечения пользы из работы этой функции ей необходимо передавать строку (string), поэтому, если ей, к примеру, будет передан integer, то она может не возвратить ожидаемый результат. Однако, необходимо учитывать, что HTML-формы передают числовые строки, а не целые числа. Подробнее читайте в разделе "Типы" данного руководства.

Смотрите также

  • ctype_alnum() - Проверяет наличие буквенно-цифровых символов
  • ctype_xdigit() - Проверяет наличие шестнадцатеричных цифр
  • is_numeric() - Проверяет, является ли переменная числом или строкой, содержащей число
  • is_int() - Проверяет, является ли переменная целым числом
  • is_string() - Проверяет, является ли переменная строкой


Проверяет наличие любых печатных символов, кроме пробела

  • « ctype_digit
  • ctype_lower »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие любых печатных символов, кроме пробела

ctype_graph

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_graph — Проверяет наличие любых печатных символов, кроме пробела

Описание

ctype_graph ( string $text ) : bool

Проверяет, все ли символы в предоставленной строке (string), text, являются видимыми при печати.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text печатный и фактически создает видимый вывод (без пробела), FALSE в противном случае.

Примеры

Пример #1 Пример использования ctype_graph()

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
    if (ctype_graph($testcase)) {
        echo "Строка '$name' состоит только из (видимых) печатных символов.\n";
    } else {
        echo "Строка '$name' не состоит только из (видимых) печатных символов.\n";
    }
}
?>

Результат выполнения данного примера:

Строка 'string1' не состоит только из (видимых) печатных символов.
Строка 'string2' состоит только из (видимых) печатных символов.
Строка 'string3' состоит только из (видимых) печатных символов.

Примечания

Замечание:

Если передано целое число (integer) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_alnum() - Проверяет наличие буквенно-цифровых символов
  • ctype_print() - Проверяет наличие печатных символов
  • ctype_punct() - Проверяет наличие печатных символов, которые не содержат пробельные или буквенно-цифровые символы


Проверяет наличие символов в нижнем регистре

  • « ctype_graph
  • ctype_print »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие символов в нижнем регистре

ctype_lower

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_lower — Проверяет наличие символов в нижнем регистре

Описание

ctype_lower ( string $text ) : bool

Проверяет, все ли символы в переданной строке text являются буквами в нижнем регистре.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text является строчной буквой в текущей локали.

Примеры

Пример #1 Пример использования ctype_lower() (с использованием локали по умолчанию)

<?php
$strings = array('aac123', 'qiutoas', 'QASsdks');
foreach ($strings as $testcase) {
    if (ctype_lower($testcase)) {
        echo "Строка $testcase состоит только из букв в нижнем регистре.\n";
    } else {
        echo "Строка $testcase не состоит только из букв в нижнем регистре.\n";
    }
}
?>

Результат выполнения данного примера:

Строка aac123 не состоит только из букв в нижнем регистре.
Строка qiutoas состоит только из букв в нижнем регистре.
Строка QASsdks не состоит только из букв в нижнем регистре.

Примечания

Замечание:

Если передано целое число (integer) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_alpha() - Проверяет наличие буквенных символов
  • ctype_upper() - Проверяет наличие символов в верхнем регистре
  • setlocale() - Устанавливает настройки локали


Проверяет наличие печатных символов

  • « ctype_lower
  • ctype_punct »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие печатных символов

ctype_print

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_print — Проверяет наличие печатных символов

Описание

ctype_print ( string $text ) : bool

Проверяет, все ли символы в переданной строке text являются печатными.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text фактически создает вывод (включая пробелы). Возвращает FALSE, если text содержит управляющие символы, или символы, которые вообще не имеют никакого вывода или функции управления.

Примеры

Пример #1 Пример использования ctype_print()

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
    if (ctype_print($testcase)) {
        echo "Строка '$name' состоит только из печатных символов.\n";
    } else {
        echo "Строка '$name' не состоит только из печатных символов.\n";
    }
}
?>

Результат выполнения данного примера:

Строка 'string1' не состоит только из печатных символов.
Строка 'string2' состоит только из печатных символов.
Строка 'string3' состоит только из печатных символов.

Примечания

Замечание:

Если передано целое число (integer) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_cntrl() - Проверяет наличие управляющих символов
  • ctype_graph() - Проверяет наличие любых печатных символов, кроме пробела
  • ctype_punct() - Проверяет наличие печатных символов, которые не содержат пробельные или буквенно-цифровые символы


Проверяет наличие печатных символов, которые не содержат пробельные или буквенно-цифровые символы

  • « ctype_print
  • ctype_space »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие печатных символов, которые не содержат пробельные или буквенно-цифровые символы

ctype_punct

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_punct — Проверяет наличие печатных символов, которые не содержат пробельные или буквенно-цифровые символы

Описание

ctype_punct ( string $text ) : bool

Проверяет, все ли символы в переданной строке text являются знаками пунктуации.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text является печатным, но не является ни буквой, ни цифрой или пробелом, и FALSE в противном случае.

Примеры

Пример #1 Пример использования ctype_punct()

<?php
$strings = array('ABasdk!@!$#', '!@ # $', '*&$()');
foreach ($strings as $testcase) {
    if (ctype_punct($testcase)) {
        echo "Строка $testcase состоит только из знаков пунктуации.\n";
    } else {
        echo "Строка $testcase не состоит только из знаков пунктуации.\n";
    }
}
?>

Результат выполнения данного примера:

Строка ABasdk!@!$# не состоит только из знаков пунктуации.
Строка !@ # $ не состоит только из знаков пунктуации.
Строка *&$() состоит только из знаков пунктуации.

Примечания

Замечание:

Если передано целое число (integer) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_cntrl() - Проверяет наличие управляющих символов
  • ctype_graph() - Проверяет наличие любых печатных символов, кроме пробела


Проверяет наличие пробельных символов

  • « ctype_punct
  • ctype_upper »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие пробельных символов

ctype_space

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_space — Проверяет наличие пробельных символов

Описание

ctype_space ( string $text ) : bool

Проверяет, все ли символы в переданной строке text являются пробельными.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text создает какое-то из пустое пространство, FALSE в противном случае. Кроме пробела, сюда также входят символы табуляции, вертикальной табуляции, перевода строки, возврата каретки и перевода страницы.

Примеры

Пример #1 Пример использования ctype_space()

<?php
$strings = array(
    'string1' => "\n\r\t",
    'string2' => "\narf12",
    'string3' => '\n\r\t' // Обратите внимание, что кавычки одинарные
);
foreach ($strings as $name => $testcase) {
    if (ctype_space($testcase)) {
        echo "Строка '$name' состоит только из пробельных символов.\n";
    } else {
        echo "Строка '$name' состоит не только из пробельных символов.\n";
    }
}
?>

Результат выполнения данного примера:

Строка 'string1' состоит только из пробельных символов.
Строка 'string2' состоит не только из пробельных символов.
Строка 'string3' состоит не только из пробельных символов.

Примечания

Замечание:

Если передано целое число (integer) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_cntrl() - Проверяет наличие управляющих символов
  • ctype_graph() - Проверяет наличие любых печатных символов, кроме пробела
  • ctype_punct() - Проверяет наличие печатных символов, которые не содержат пробельные или буквенно-цифровые символы


Проверяет наличие символов в верхнем регистре

  • « ctype_space
  • ctype_xdigit »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие символов в верхнем регистре

ctype_upper

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_upper — Проверяет наличие символов в верхнем регистре

Описание

ctype_upper ( string $text ) : bool

Проверяет, все ли символы в переданной строке text являются буквами в верхнем регистре.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text является прописной буквой в текущей локали.

Примеры

Пример #1 Пример использования ctype_upper() (с использованием локали по умолчанию)

<?php
$strings = array('AKLWC139', 'LMNSDO', 'akwSKWsm');
foreach ($strings as $testcase) {
    if (ctype_upper($testcase)) {
        echo "Строка $testcase состоит только из букв в верхнем регистре.\n";
    } else {
        echo "Строка $testcase не состоит только из букв в верхнем регистре.\n";
    }
}
?>

Результат выполнения данного примера:

Строка AKLWC139 не состоит только из букв в верхнем регистре.
Строка LMNSDO состоит только из букв в верхнем регистре.
Строка akwSKWsm не состоит только из букв в верхнем регистре.

Примечания

Замечание:

Если передано целое число (integer) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_alpha() - Проверяет наличие буквенных символов
  • ctype_lower() - Проверяет наличие символов в нижнем регистре
  • setlocale() - Устанавливает настройки локали


Проверяет наличие шестнадцатеричных цифр

  • « ctype_upper
  • Filter »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие шестнадцатеричных цифр

ctype_xdigit

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_xdigit — Проверяет наличие шестнадцатеричных цифр

Описание

ctype_xdigit ( string $text ) : bool

Проверяет, являются ли все символы в строке (string) text шестнадцатеричными 'цифрами'.

Список параметров

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 состоит из шестнадцатеричных цифр.

Примечания

Замечание:

Если передано целое число (integer) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_digit() - Проверяет наличие цифровых символов в строке


Фильтрация данных

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Типы фильтров
    • Фильтры валидации данных
    • Очищающие фильтры
    • Остальные фильтры
    • Флаги, используемые в фильтрах
  • Предопределенные константы
  • Примеры
    • Проверка (валидация)
    • Очистка (нормализация)
  • Функции фильтрации данных
    • filter_has_var — Проверяет существование переменной указанного типа
    • filter_id — Возвращает идентификатор, принадлежащий именованному фильтру
    • filter_input_array — Получает несколько переменных извне PHP и, при необходимости, фильтрует их
    • filter_input — Принимает переменную извне PHP и, при необходимости, фильтрует ее
    • filter_list — Возвращает список всех поддерживаемых фильтров
    • filter_var_array — Принимает несколько переменных и, при необходимости, фильтрует их
    • filter_var — Фильтрует переменную с помощью определенного фильтра


Введение

Фильтры данного расширения позволяют выполнить валидацию данных и обезопасить их от возможных вредоносных конструкций. Это особенно полезно, если содержимое получено из неизвестных или ненадежных источников, таких, как пользовательский ввод. Например, такие данные можно получить из HTML-форм.

Существует два основных типа фильтрации: проверка (валидация) и очистка (санитизация).

Проверка используется для определения соответствия данных определённым критериям. Например, применение FILTER_VALIDATE_EMAIL позволяет проверить, являются ли введённые данные адресом email, однако, сами данные при этом останутся нетронутыми.

Очистка используется для извлечения из данных нежелательных конструкций. Например, применение FILTER_SANITIZE_EMAIL удалит все символы, которые не должен содержать email-адрес. То есть, проверки данных не происходит.

Кроме того, можно использовать различные флаги, как для проверки, так и для очистки, для более тонкой настройки согласно вашим нуждам. Например, передача флага FILTER_FLAG_PATH_REQUIRED при фильтрации URL установит необходимым условием наличие пути в ссылке (например, /foo в http://example.org/foo).


Установка

Начиная с PHP 5.2.0 расширение filter включено по умолчанию. Для отключения расширения filter используйте --disable-filter .

До PHP 5.2 использовалось экспериментальное PECL-расширение, однако, оно больше не обновляется и поэтому не рекомендуется к использованию.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации Filter
Имя | По умолчанию | Место изменения | Список изменений
filter.default | "unsafe_raw" | PHP_INI_PERDIR | PHP_INI_ALL в filter <= 0.9.4. Доступна с PHP 5.2.0.
filter.default_flags | NULL | PHP_INI_PERDIR | PHP_INI_ALL в filter <= 0.9.4. Доступна с PHP 5.2.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

filter.default string

Фильтрует все данные $_GET, $_POST, $_COOKIE, $_REQUEST и $_SERVER этим фильтром. Исходные данные могут быть получены с помощью filter_input().

Принимает имя указанного фильтра как значение по умолчанию. Имена фильтров можно найти в списке существующих фильтров.

Замечание:

Будьте внимательны с флагами по умолчанию для фильтров по умолчанию. Следует явно устанавливать их в то значение, которое вам необходимо. Например, для установки фильтра по умолчанию, который будет работать точь-в-точь аналогично функции htmlspecialchars(), вам необходимо установить флаги по умолчанию в 0 так, как показано ниже.

Пример #1 Настройка фильтра по умолчанию для работы аналогично функции htmlspecialchars

filter.default = full_special_chars
filter.default_flags = 0

filter.default_flags integer

Флаги по умолчанию, которые применяются, когда установлен фильтр по умолчанию. По умолчанию задано FILTER_FLAG_NO_ENCODE_QUOTES в целях сохранения обратной совместимости. Смотрите список существующих флагов для ознакомления со списком всех имен флагов.


  • « Настройка во время выполнения
  • Типы фильтров »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Типы фильтров

Содержание

  • Фильтры валидации данных
  • Очищающие фильтры
  • Остальные фильтры
  • Флаги, используемые в фильтрах


Фильтры валидации данных

Список фильтров валидации данных
Идентификатор | Имя | Параметры | Флаги | Описание
FILTER_VALIDATE_BOOLEAN | "boolean" | default | FILTER_NULL_ON_FAILURE | Возвращает TRUE для значений "1", "true", "on" и "yes". Иначе возвращает FALSE. Если установлен флаг FILTER_NULL_ON_FAILURE, то FALSE возвращается только для значений "0", "false", "off", "no" и "", а NULL будет возвращен для всех небулевых значений.
FILTER_VALIDATE_DOMAIN | "validate_domain" | default | FILTER_FLAG_HOSTNAME | Проверяет, корректны ли длины меток имен домена. Проверяет доменные имена на соответствие RFC 1034, RFC 1035, RFC 952, RFC 1123, RFC 2732, RFC 2181 и RFC 1123. Опциональный флаг FILTER_FLAG_HOSTNAME добавляет возможность специально проверять имена хостов (они должны начинаться с букв, либо цифр и содержать только буквы, цифры и тире).
FILTER_VALIDATE_EMAIL | "validate_email" | default | FILTER_FLAG_EMAIL_UNICODE | Проверяет, что значение является корректным e-mail. В целом, происходит проверка синтаксиса адреса в соответствии с RFC 822, за исключением того, что не поддерживаются комментарии, схлопывание пробельных символов и доменные имена без точек.
FILTER_VALIDATE_FLOAT | "float" | default, decimal, min_range, max_range | FILTER_FLAG_ALLOW_THOUSAND | Проверяет, что значение является корректным числом с плавающей запятой, и, при необходимости, входит в определенный диапазон, в случае успешной проверки преобразует в число с плавающей запятой.
FILTER_VALIDATE_INT | "int" | default, min_range, max_range | FILTER_FLAG_ALLOW_OCTAL, FILTER_FLAG_ALLOW_HEX | Проверяет, что значение является корректным целым числом, и, при необходимости, входит в определенный диапазон, в случае успешной проверки преобразует в целое число.
FILTER_VALIDATE_IP | "validate_ip" | default | FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE | Проверяет, что значение является корректным IP-адресом, при необходимости только для протоколов IPv4 или IPv6, а также отсутствие вхождения в частные или зарезервированные диапазоны.
FILTER_VALIDATE_MAC | "validate_mac_address" | default |  | Проверяет, что значение - это корректный MAC-адрес.
FILTER_VALIDATE_REGEXP | "validate_regexp" | default, regexp |  | Проверяет значение на соответствие regexp, Perl-совместимому регулярному выражению.
FILTER_VALIDATE_URL | "validate_url" | default | FILTER_FLAG_SCHEME_REQUIRED, FILTER_FLAG_HOST_REQUIRED, FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED | Проверяет значение как URL (в соответствии с » http://www.faqs.org/rfcs/rfc2396), опционально с требуемыми компонентами. Помните, что URL не содержащий имя протокола http:// является корректный, так что может потребоваться дополнительная проверка того, что URL использует требуемый протокол, например ssh:// или mailto:. Обратите внимание, что эта функция считает корректными только URL, состоящие из символов ASCII; Интернациональные доменные имена не пройдут проверку.

Замечание:

С PHP 5.4.11 числа +0 и -0 проверяются как целые числа, так и числа с плавающей запятой (FILTER_VALIDATE_FLOAT и FILTER_VALIDATE_INT). До PHP 5.4.11 они проходили проверку только как числа с плавающей запятой (FILTER_VALIDATE_FLOAT).

Если задан default, то значение default будет подставлено, если проверка провалилась.

Список изменений

Версия | Описание
7.4.0 | Добавлены опции min_range и max_range для FILTER_VALIDATE_FLOAT.
7.0.0 | Добавлена константа FILTER_FLAG_HOSTNAME
5.5.0 | Добавлена константа FILTER_VALIDATE_MAC
5.2.1 | Константа FILTER_VALIDATE_URL теперь неявно использует FILTER_FLAG_SCHEME_REQUIRED и FILTER_FLAG_HOST_REQUIRED.


Очищающие фильтры

Список очищающих фильтров
Идентификатор | Имя | Флаги | Описание
FILTER_SANITIZE_EMAIL | "email" |  | Удаляет все символы, кроме букв, цифр и !#$%&'*+-=?^_`{|}~@.[].
FILTER_SANITIZE_ENCODED | "encoded" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH | Кодирует строку в формат URL, при необходимости удаляет или кодирует специальные символы.
FILTER_SANITIZE_MAGIC_QUOTES | "magic_quotes" |  | Применяется функция addslashes().
FILTER_SANITIZE_NUMBER_FLOAT | "number_float" | FILTER_FLAG_ALLOW_FRACTION, FILTER_FLAG_ALLOW_THOUSAND, FILTER_FLAG_ALLOW_SCIENTIFIC | Удаляет все символы, кроме цифр, +- и, при необходимости, .,eE.
FILTER_SANITIZE_NUMBER_INT | "number_int" |  | Удаляет все символы, кроме цифр и знаков плюса и минуса.
FILTER_SANITIZE_SPECIAL_CHARS | "special_chars" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_HIGH | Экранирует HTML-символы '"<>& и символы с ASCII-кодом, меньшим 32, при необходимости удаляет или кодирует остальные специальные символы.
FILTER_SANITIZE_FULL_SPECIAL_CHARS | "full_special_chars" | FILTER_FLAG_NO_ENCODE_QUOTES, | Эквивалентно вызову htmlspecialchars() с установленным параметром ENT_QUOTES. Кодирование кавычек может быть отключено с помощью установки флага FILTER_FLAG_NO_ENCODE_QUOTES. Аналогично htmlspecialchars(), этот фильтр принимает во внимание default_charset и, если будет обнаружена некорректная последовательность байт для данной кодировки, то вся строка будет признана негодной и результатом будет строка нулевой длины. При использовании этого фильтра в качестве фильтра по умолчанию, ознакомьтесь с предупреждением ниже об установке флагов по умолчанию в 0.
FILTER_SANITIZE_STRING | "string" | FILTER_FLAG_NO_ENCODE_QUOTES, FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP | Удаляет теги, при необходимости удаляет или кодирует специальные символы.
FILTER_SANITIZE_STRIPPED | "stripped" |  | Псевдоним фильтра "string".
FILTER_SANITIZE_URL | "url" |  | Удаляет все символы, кроме букв, цифр и $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.
FILTER_UNSAFE_RAW | "unsafe_raw" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP | Бездействует, при необходимости удаляет или кодирует специальные символы. Этот фильтр является псевдонимом FILTER_DEFAULT.

Внимание

При использовании одного из этих фильтров в качестве фильтра по умолчанию либо через ваш ini-файл, либо через конфигурацию веб-сервера, флаги по умолчанию установлены в значение FILTER_FLAG_NO_ENCODE_QUOTES. Вам необходимо явно установить параметру filter.default_flags значение 0 для наличия пустых кавычек по умолчанию. К примеру:

Пример #1 Настройка фильтра по умолчанию для работы аналогично функции htmlspecialchars

filter.default = full_special_chars
filter.default_flags = 0

Список изменений

Версия | Описание
5.2.11/5.3.1 | Слеши (/) удаляются FILTER_SANITIZE_EMAIL. Ранее они сохранялись.


Остальные фильтры

Список различных фильтров
Идентификатор | Имя | Параметры | Флаги | Описание
FILTER_CALLBACK | "callback" | Функция или метод типа callable | Все флаги игнорируются | Вызывается пользовательская функция для фильтрации данных.


Флаги, используемые в фильтрах

Список используемых флагов в фильтрах
Идентификатор | Используется совместно с фильтром | Описание
FILTER_FLAG_STRIP_LOW | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Удаляет символы, код которых <32.
FILTER_FLAG_STRIP_HIGH | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Удаляет символы, код которых >127.
FILTER_FLAG_STRIP_BACKTICK | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Удаляет символы обратной кавычки (`).
FILTER_FLAG_ALLOW_FRACTION | FILTER_SANITIZE_NUMBER_FLOAT | Разрешает наличие точки (.) в качестве десятичного разделителя в числах.
FILTER_FLAG_ALLOW_THOUSAND | FILTER_SANITIZE_NUMBER_FLOAT, FILTER_VALIDATE_FLOAT | Разрешает наличие запятой (,) в качестве разделителя тысяч в числах.
FILTER_FLAG_ALLOW_SCIENTIFIC | FILTER_SANITIZE_NUMBER_FLOAT | Разрешает наличие e и E для научных нотаций чисел.
FILTER_FLAG_NO_ENCODE_QUOTES | FILTER_SANITIZE_STRING | При установке этого флага одинарные (') и двойные (") кавычки кодироваться не будут.
FILTER_FLAG_ENCODE_LOW | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW | Кодирует все символы, код которых <32.
FILTER_FLAG_ENCODE_HIGH | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW | Кодирует все символы, код которых >127.
FILTER_FLAG_ENCODE_AMP | FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW | Кодирует амперсанд (&).
FILTER_NULL_ON_FAILURE | FILTER_VALIDATE_BOOLEAN | Возвращает NULL для неопознанных булевых значений.
FILTER_FLAG_ALLOW_OCTAL | FILTER_VALIDATE_INT | Трактует ввод, начинающийся с нуля (0) как восьмеричное число. Для этого последующие числа должны быть в диапазоне 0-7.
FILTER_FLAG_ALLOW_HEX | FILTER_VALIDATE_INT | Трактует ввод, начинающийся с 0x или 0X как шестнадцатеричное число. Для этого последующие символы должны быть в диапазоне a-fA-F0-9.
FILTER_FLAG_EMAIL_UNICODE | FILTER_VALIDATE_EMAIL | Разрешить символы Unicode в локальной части email-адреса.
FILTER_FLAG_IPV4 | FILTER_VALIDATE_IP | Разрешает формат IPv4 для IP-адреса.
FILTER_FLAG_IPV6 | FILTER_VALIDATE_IP | Разрешает формат IPv6 для IP-адреса.
FILTER_FLAG_NO_PRIV_RANGE FILTER_VALIDATE_IP

Запрещает успешное прохождение проверки для следующих частных IPv4-диапазонов: 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16.

Запрещает успешное прохождение проверки для IPv6-адресов, начинающихся с FD или FC.

FILTER_FLAG_NO_RES_RANGE FILTER_VALIDATE_IP

Запрещает успешное прохождение проверки для следующих зарезервированных IPv4-диапазонов: 0.0.0.0/8, 169.254.0.0/16, 127.0.0.0/8 и 240.0.0.0/4.

Запрещает прохождение проверки для зарезервированных диапазонов IPv6: ::1/128, ::/128, ::ffff:0:0/96 и fe80::/10.

FILTER_FLAG_SCHEME_REQUIRED | FILTER_VALIDATE_URL | Требует, чтобы URL содержал часть со схемой.
FILTER_FLAG_HOST_REQUIRED | FILTER_VALIDATE_URL | Требует, чтобы URL содержал часть с хостом.
FILTER_FLAG_PATH_REQUIRED | FILTER_VALIDATE_URL | Требует, чтобы URL содержал часть с путем.
FILTER_FLAG_QUERY_REQUIRED | FILTER_VALIDATE_URL | Требует, чтобы URL содержал часть со строкой запроса.
FILTER_REQUIRE_SCALAR | Требует, чтобы значение было скалярным.
FILTER_REQUIRE_ARRAY | Требует, чтобы значение было массивом.
FILTER_FORCE_ARRAY | Если значение скалярное, то оно будет рассматриваться как массив с единственным элементом с этим значением.

Список изменений

Версия | Описание
7.3.0 | Явное использование FILTER_FLAG_SCHEME_REQUIRED и FILTER_FLAG_HOST_REQUIRED объявлено устаревшим.
7.1.0 | Добавлена константа FILTER_FLAG_EMAIL_UNICODE.
5.3.2 | Добавлена константа FILTER_FLAG_STRIP_BACKTICK.
5.2.10 | Константа FILTER_FLAG_NO_RES_RANGE также поддерживает адреса IPv6.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

INPUT_POST (integer)
Переменные POST.
INPUT_GET (integer)
Переменные GET.
INPUT_COOKIE (integer)
Переменные COOKIE.
INPUT_ENV (integer)
Переменные ENV.
INPUT_SERVER (integer)
Переменные SERVER.
INPUT_SESSION (integer)
Переменные SESSION. (еще не реализовано)
INPUT_REQUEST (integer)
Переменные REQUEST. (еще не реализовано)
FILTER_FLAG_NONE (integer)
Не использовать флаги.
FILTER_REQUIRE_SCALAR (integer)
Флаг используется для указания необходимости скалярного значения в качестве входного значения.
FILTER_REQUIRE_ARRAY (integer)
Требовать массив в качестве входного значения.
FILTER_FORCE_ARRAY (integer)
Всегда возвращать массив.
FILTER_NULL_ON_FAILURE (integer)
Использовать NULL вместо FALSE в случае ошибки.
FILTER_VALIDATE_INT (integer)
Идентификатор фильтра "int".
FILTER_VALIDATE_BOOLEAN (integer)
Идентификатор фильтра "boolean".
FILTER_VALIDATE_FLOAT (integer)
Идентификатор фильтра "float".
FILTER_VALIDATE_REGEXP (integer)
Идентификатор фильтра "validate_regexp".
FILTER_VALIDATE_URL (integer)
Идентификатор фильтра "validate_url".
FILTER_VALIDATE_EMAIL (integer)
Идентификатор фильтра "validate_email".
FILTER_VALIDATE_IP (integer)
Идентификатор фильтра "validate_ip".
FILTER_VALIDATE_MAC (integer)
Идентификатор фильтра "validate_mac_address". (Доступно с версии PHP 5.5.0)
FILTER_DEFAULT (integer)
Идентификатор фильтра по умолчанию ("unsafe_raw"). Эквивалентно FILTER_UNSAFE_RAW.
FILTER_UNSAFE_RAW (integer)
Идентификатор фильтра "unsafe_raw".
FILTER_SANITIZE_STRING (integer)
Идентификатор фильтра "string".
FILTER_SANITIZE_STRIPPED (integer)
Идентификатор фильтра "stripped".
FILTER_SANITIZE_ENCODED (integer)
Идентификатор фильтра "encoded".
FILTER_SANITIZE_SPECIAL_CHARS (integer)
Идентификатор фильтра "special_chars".
FILTER_SANITIZE_EMAIL (integer)
Идентификатор фильтра "email".
FILTER_SANITIZE_URL (integer)
Идентификатор фильтра "url".
FILTER_SANITIZE_NUMBER_INT (integer)
Идентификатор фильтра "number_int".
FILTER_SANITIZE_NUMBER_FLOAT (integer)
Идентификатор фильтра "number_float".
FILTER_SANITIZE_MAGIC_QUOTES (integer)
Идентификатор фильтра "magic_quotes".
FILTER_CALLBACK (integer)
Идентификатор фильтра "callback".
FILTER_FLAG_ALLOW_OCTAL (integer)
Разрешить восьмеричную запись (0[0-7]+) в фильтре "int".
FILTER_FLAG_ALLOW_HEX (integer)
Разрешить шестнадцатеричную запись (0x[0-9a-fA-F]+) в фильтре "int".
FILTER_FLAG_STRIP_LOW (integer)
Удалять символы с ASCII-кодом, меньшим 32.
FILTER_FLAG_STRIP_HIGH (integer)
Удалять символы с ASCII-кодом, большим 127.
FILTER_FLAG_ENCODE_LOW (integer)
Кодировать символы с ASCII-кодом, меньшим 32.
FILTER_FLAG_ENCODE_HIGH (integer)
Кодировать символы с ASCII-кодом, большим 127.
FILTER_FLAG_ENCODE_AMP (integer)
Кодировать &.
FILTER_FLAG_NO_ENCODE_QUOTES (integer)
Не кодировать ' и ".
FILTER_FLAG_EMPTY_STRING_NULL (integer)
(На данный момент не используется.)
FILTER_FLAG_ALLOW_FRACTION (integer)
Разрешить дробную часть в фильтре "number_float".
FILTER_FLAG_ALLOW_THOUSAND (integer)
Разрешить разделитель (,) в фильтре "number_float".
FILTER_FLAG_ALLOW_SCIENTIFIC (integer)
Разрешить научную запись (e, E) в фильтре "number_float".
FILTER_FLAG_PATH_REQUIRED (integer)
Требовать наличие пути в фильтре "validate_url".
FILTER_FLAG_QUERY_REQUIRED (integer)
Требовать наличие строки запроса в фильтре "validate_url".
FILTER_FLAG_IPV4 (integer)
Разрешить только IPv4-адреса в фильтре "validate_ip".
FILTER_FLAG_IPV6 (integer)
Разрешить только IPv6-адреса в фильтре "validate_ip".
FILTER_FLAG_NO_RES_RANGE (integer)
Запретить зарезервированные адреса в фильтре "validate_ip".
FILTER_FLAG_NO_PRIV_RANGE (integer)
Запретить частные адреса в фильтре "validate_ip".
FILTER_FLAG_EMAIL_UNICODE (integer)
Принимать Unicode в локальной части фильтра "validate_email". (Доступно с PHP 7.1.0)


  • « Предопределенные константы
  • Проверка (валидация) »
  • PHP Manual
  • Filter
  • Примеры

Примеры

Содержание

  • Проверка (валидация)
  • Очистка (нормализация)


Проверка (валидация)

Пример #1 Валидация e-mail адреса, используя функцию filter_var()

<?php
$email_a = 'joe@example.com';
$email_b = 'bogus';

if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
    echo "E-mail адрес '$email_a' указан верно.\n";
}
if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
    echo "E-mail адрес '$email_b' указан верно.\n";
} else {
    echo "E-mail адрес '$email_b' указан неверно.\n";
}
?>

Результат выполнения данного примера:

E-mail адрес 'joe@example.com' указан верно.
E-mail адрес 'bogus' указан неверно.

Пример #2 Валидация IP-адреса, используя функцию filter_var()

<?php
$ip_a = '127.0.0.1';
$ip_b = '42.42';

if (filter_var($ip_a, FILTER_VALIDATE_IP)) {
    echo "IP-адрес '$ip_a' указан верно.";
}
if (filter_var($ip_b, FILTER_VALIDATE_IP)) {
    echo "IP-адрес '$ip_b' указан верно.";
}
?>

Результат выполнения данного примера:

Адрес '127.0.0.1' указан верно.

Пример #3 Дополнительные параметры функции filter_var()

<?php
$int_a = '1';
$int_b = '-1';
$int_c = '4';
$options = array(
    'options' => array(
        'min_range' => 0,
        'max_range' => 3,
    )
);
if (filter_var($int_a, FILTER_VALIDATE_INT, $options) !== FALSE) {
    echo "Число A '$int_a' является верным (от 0 до 3).\n";
}
if (filter_var($int_b, FILTER_VALIDATE_INT, $options) !== FALSE) {
    echo "Число B '$int_b' является верным (от 0 до 3).\n";
}
if (filter_var($int_c, FILTER_VALIDATE_INT, $options) !== FALSE) {
    echo "Число C '$int_c' является верным (от 0 до 3).\n";
}

$options['options']['default'] = 1;
if (($int_c = filter_var($int_c, FILTER_VALIDATE_INT, $options)) !== FALSE) {
    echo "Число C '$int_c' является верным (от 0 и 3).";
}
?>

Результат выполнения данного примера:

Число A '1' является верным (от 0 до 3).
Число C '1' является верным (от 0 до 3).


Очистка (нормализация)

Пример #1 Нормализация и валидация e-mail адресов

<?php
$a = 'joe@example.org';
$b = 'bogus - at - example dot org';
$c = '(bogus@example.org)';

$sanitized_a = filter_var($a, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_a, FILTER_VALIDATE_EMAIL)) {
    echo "Нормализованный e-mail (a) является верным.\n";
}

$sanitized_b = filter_var($b, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_b, FILTER_VALIDATE_EMAIL)) {
    echo "Нормализованный e-mail (b) является верным.";
} else {
    echo "Нормализованный e-mail (b) является неверным.\n";
}

$sanitized_c = filter_var($c, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_c, FILTER_VALIDATE_EMAIL)) {
    echo "Нормализованный e-mail (c) является верным.\n";
    echo "До нормализации: $c\n";
    echo "После нормализации: $sanitized_c\n";
}
?>

Результат выполнения данного примера:

Нормализованный e-mail (a) является верным.
Нормализованный e-mail (b) является неверным.
Нормализованный e-mail (c) является верным.
До нормализации: (bogus@example.org)
После нормализации: bogus@example.org

Пример #2 Настройка фильтра по умолчанию

filter.default = full_special_chars
filter.default_flags = 0


Функции фильтрации данных

Содержание

  • filter_has_var — Проверяет существование переменной указанного типа
  • filter_id — Возвращает идентификатор, принадлежащий именованному фильтру
  • filter_input_array — Получает несколько переменных извне PHP и, при необходимости, фильтрует их
  • filter_input — Принимает переменную извне PHP и, при необходимости, фильтрует ее
  • filter_list — Возвращает список всех поддерживаемых фильтров
  • filter_var_array — Принимает несколько переменных и, при необходимости, фильтрует их
  • filter_var — Фильтрует переменную с помощью определенного фильтра


Проверяет существование переменной указанного типа

  • « Функции фильтрации данных
  • filter_id »
  • PHP Manual
  • Функции фильтрации данных
  • Проверяет существование переменной указанного типа

filter_has_var

(PHP 5 >= 5.2.0, PHP 7)

filter_has_var — Проверяет существование переменной указанного типа

Описание

filter_has_var ( int $type , string $variable_name ) : bool

Список параметров

type

Один из INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV.

variable_name

Имя проверяемой переменной.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает идентификатор, принадлежащий именованному фильтру

  • « filter_has_var
  • filter_input_array »
  • PHP Manual
  • Функции фильтрации данных
  • Возвращает идентификатор, принадлежащий именованному фильтру

filter_id

(PHP 5 >= 5.2.0, PHP 7)

filter_id — Возвращает идентификатор, принадлежащий именованному фильтру

Описание

filter_id ( string $filtername ) : int

Список параметров

filtername

Имя фильтра.

Возвращаемые значения

Идентификатор фильтра в случае успеха или FALSE, если фильтр не существует.

Смотрите также

  • filter_list() - Возвращает список всех поддерживаемых фильтров


Получает несколько переменных извне PHP и, при необходимости, фильтрует их

  • « filter_id
  • filter_input »
  • PHP Manual
  • Функции фильтрации данных
  • Получает несколько переменных извне PHP и, при необходимости, фильтрует их

filter_input_array

(PHP 5 >= 5.2.0, PHP 7)

filter_input_array — Получает несколько переменных извне PHP и, при необходимости, фильтрует их

Описание

filter_input_array ( int $type [, mixed $definition [, bool $add_empty = TRUE ]] ) : mixed

Эта функция полезна для получения множества переменных без многократного вызова функции filter_input().

Список параметров

type

Одна из констант INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER или INPUT_ENV.

definition

Массив, определяющий аргументы. Допустимый ключ - строка (string), содержащая имя переменной, а допустимое значение - либо тип фильтра, либо массив (array), при необходимости определяющий фильтр, флаги и параметры. Если значение является массивом, допустимыми ключами являются filter, который определяет (тип фильтра ), flags, который определяет любые флаги, применяемые к фильтру и options, который определяет любые параметры, применяемые к фильтру. См. пример ниже для лучшего понимания.

Этот параметр также может быть целым числом, содержащим предопределенную фильтровую константу. Затем все значения во входном массиве фильтруются этим фильтром.

add_empty

Добавляет в результат отсутствующие ключи со значением NULL.

Возвращаемые значения

Массив, содержащий значения запрошенных переменных в случае успешного выполнения. Если входной массив, определяемый параметром type, не заполнен, то функция вернет NULL, если флаг FILTER_NULL_ON_FAILURE не задан, FALSE в противном случае. Для других неудачных выполнений возвращается FALSE

Значение массива будет FALSE, если фильтрация завершилась неудачей, или NULL, если переменная не определена. Либо, если установлен флаг FILTER_NULL_ON_FAILURE, возвращается FALSE, если переменная не определена и NULL, если фильтрация завершилась неудачей. Если параметр add_empty равен FALSE, элемент массива не будет добавлен для удаленных переменных.

Примеры

Пример #1 Пример использования filter_input_array()

<?php
error_reporting(E_ALL | E_STRICT);
/* данные, полученные методом POST
$_POST = array(
    'product_id' => 'libgd<script>',
    'component'  => array('10'),
    'version'    => '2.0.33',
    'testarray'  => array('2', '23', '10', '12'),
    'testscalar' => '2',
);
*/

$args = array(
    'product_id'   => FILTER_SANITIZE_ENCODED,
    'component'    => array('filter'    => FILTER_VALIDATE_INT,
                            'flags'     => FILTER_REQUIRE_ARRAY,
                            'options'   => array('min_range' => 1, 'max_range' => 10)
                           ),
    'version'      => FILTER_SANITIZE_ENCODED,
    'doesnotexist' => FILTER_VALIDATE_INT,
    'testscalar'   => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_REQUIRE_SCALAR,
                           ),
    'testarray'    => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_REQUIRE_ARRAY,
                           )

);

$myinputs = filter_input_array(INPUT_POST, $args);

var_dump($myinputs);
echo "\n";
?>

Результат выполнения данного примера:

array(6) {
  ["product_id"]=>
    string(17) "libgd%3Cscript%3E"
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["version"]=>
    string(6) "2.0.33"
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  int(2)
  ["testarray"]=>
  array(4) {
    [0]=>
    int(2)
    [1]=>
    int(23)
    [2]=>
    int(10)
    [3]=>
    int(12)
  }
}

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр add_empty.

Примечания

Замечание:

В массиве INPUT_SERVER нет ключа REQUEST_TIME, потому что он будет позднее в $_SERVER.

Смотрите также

  • filter_input() - Принимает переменную извне PHP и, при необходимости, фильтрует ее
  • filter_var_array() - Принимает несколько переменных и, при необходимости, фильтрует их
  • Типы фильтров


Принимает переменную извне PHP и, при необходимости, фильтрует ее

  • « filter_input_array
  • filter_list »
  • PHP Manual
  • Функции фильтрации данных
  • Принимает переменную извне PHP и, при необходимости, фильтрует ее

filter_input

(PHP 5 >= 5.2.0, PHP 7)

filter_input — Принимает переменную извне PHP и, при необходимости, фильтрует ее

Описание

filter_input ( int $type , string $variable_name [, int $filter = FILTER_DEFAULT [, mixed $options ]] ) : mixed

Список параметров

type

Одна из констант INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER или INPUT_ENV.

variable_name

Имя получаемой переменной.

filter

Идентификатор (ID) применяемого фильтра. На странице Типы фильтров приведен список доступных фильтров.

Если не указан, то используется FILTER_DEFAULT, который равнозначен FILTER_UNSAFE_RAW. Это значит, что по умолчанию не применяется никакого фильтра.

options

Ассоциативный массив параметров или логическое ИЛИ флагов. Если фильтр принимает параметры, флаги могут быть указаны в элементе массива "flags".

Возвращаемые значения

Значение запрашиваемой переменной в случае успеха, FALSE, если фильтрация завершилась неудачей, или NULL, если переменная variable_name не определена. Если установлен флаг FILTER_NULL_ON_FAILURE, функция возвращает FALSE, если переменная не определена и NULL, если фильтрация завершилась неудачей.

Примеры

Пример #1 Пример использования filter_input()

<?php
$search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);
$search_url = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED);
echo "Вы искали $search_html.\n";
echo "<a href='?search=$search_url'>Искать снова.</a>";
?>

Результатом выполнения данного примера будет что-то подобное:

Вы искали Me &#38; son.
<a href='?search=Me%20%26%20son'>Искать снова.</a>

Смотрите также

  • filter_var() - Фильтрует переменную с помощью определенного фильтра
  • filter_input_array() - Получает несколько переменных извне PHP и, при необходимости, фильтрует их
  • filter_var_array() - Принимает несколько переменных и, при необходимости, фильтрует их
  • Типы фильтров


Возвращает список всех поддерживаемых фильтров

  • « filter_input
  • filter_var_array »
  • PHP Manual
  • Функции фильтрации данных
  • Возвращает список всех поддерживаемых фильтров

filter_list

(PHP 5 >= 5.2.0, PHP 7)

filter_list — Возвращает список всех поддерживаемых фильтров

Описание

filter_list ( void ) : array

Возвращаемые значения

Возвращает массив имен всех поддерживаемых фильтров, пустой массив, если таких фильтров не существует. Идентификаторы (ID) фильтров не являются ключами этого массива, они могут быть получены с помощью функции filter_id() по имени фильтра.

Примеры

Пример #1 Пример использования filter_list()

<?php
print_r(filter_list());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => int
    [1] => boolean
    [2] => float
    [3] => validate_regexp
    [4] => validate_url
    [5] => validate_email
    [6] => validate_ip
    [7] => string
    [8] => stripped
    [9] => encoded
    [10] => special_chars
    [11] => unsafe_raw
    [12] => email
    [13] => url
    [14] => number_int
    [15] => number_float
    [16] => magic_quotes
    [17] => callback
)


Принимает несколько переменных и, при необходимости, фильтрует их

  • « filter_list
  • filter_var »
  • PHP Manual
  • Функции фильтрации данных
  • Принимает несколько переменных и, при необходимости, фильтрует их

filter_var_array

(PHP 5 >= 5.2.0, PHP 7)

filter_var_array — Принимает несколько переменных и, при необходимости, фильтрует их

Описание

filter_var_array ( array $data [, mixed $definition [, bool $add_empty = TRUE ]] ) : mixed

Эта функция полезна для получения множества переменных без многократного вызова функции filter_var().

Список параметров

data

Массив со строковыми ключами, содержащий данные для фильтрации.

definition

Массив, определяющий параметры. Допустимый ключ - строка string, содержащая имя переменной, а допустимое значение - тип фильтра, или массив (array), при необходимости определяющий фильтр, флаги и параметры. Если значение является массивом, допустимыми ключами являются filter, который определяет тип фильтра, flags, который определяет любые флаги, применяемые к фильтру, и options, который определяет любые параметры, применяемые к фильтру. См. пример ниже для лучшего понимания.

Этот параметр также может быть целым числом, содержащим предопределенную константу фильтра. Затем все значения во входном массиве фильтруются этим фильтром.

add_empty

Добавляет в результат отсутствующие ключи со значением NULL.

Возвращаемые значения

Массив, содержащий значения запрошенных переменных в случае успеха, или FALSE в случае возникновения ошибки. Значение массива будет FALSE, если фильтрация завершилась неудачей, или NULL, если если переменная не определена.

Примеры

Пример #1 Пример использования filter_var_array()

<?php
error_reporting(E_ALL | E_STRICT);
$data = array(
    'product_id'    => 'libgd<script>',
    'component'     => '10',
    'versions'      => '2.0.33',
    'testscalar'    => array('2', '23', '10', '12'),
    'testarray'     => '2',
);

$args = array(
    'product_id'   => FILTER_SANITIZE_ENCODED,
    'component'    => array('filter'    => FILTER_VALIDATE_INT,
                            'flags'     => FILTER_FORCE_ARRAY,
                            'options'   => array('min_range' => 1, 'max_range' => 10)
                           ),
    'versions'     => FILTER_SANITIZE_ENCODED,
    'doesnotexist' => FILTER_VALIDATE_INT,
    'testscalar'   => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_REQUIRE_SCALAR,
                           ),
    'testarray'    => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_FORCE_ARRAY,
                           )

);

$myinputs = filter_var_array($data, $args);

var_dump($myinputs);
echo "\n";
?>

Результат выполнения данного примера:

array(6) {
  ["product_id"]=>
    string(17) "libgd%3Cscript%3E"
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["versions"]=>
    string(6) "2.0.33"
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  bool(false)
  ["testarray"]=>
  array(1) {
    [0]=>
    int(2)
  }
}

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр add_empty.

Смотрите также

  • filter_input_array() - Получает несколько переменных извне PHP и, при необходимости, фильтрует их
  • filter_var() - Фильтрует переменную с помощью определенного фильтра
  • filter_input() - Принимает переменную извне PHP и, при необходимости, фильтрует ее
  • Типы фильтров


Фильтрует переменную с помощью определенного фильтра

  • « filter_var_array
  • Управление функциями »
  • PHP Manual
  • Функции фильтрации данных
  • Фильтрует переменную с помощью определенного фильтра

filter_var

(PHP 5 >= 5.2.0, PHP 7)

filter_var — Фильтрует переменную с помощью определенного фильтра

Описание

filter_var ( mixed $variable [, int $filter = FILTER_DEFAULT [, mixed $options ]] ) : mixed

Список параметров

variable

Значение переменной для фильтрации. Обратите внимание, что скалярные значения перед фильтрацией преобразуются к строкам.

filter

Идентификатор (ID) применяемого фильтра. На странице Типы фильтров приведен список доступных фильтров.

Если не указан, то используется FILTER_DEFAULT, который равнозначен FILTER_UNSAFE_RAW. Это значит, что по умолчанию не применяется никакого фильтра.

options

Ассоциативный массив параметров либо логическая дизъюнкция (операция ИЛИ) флагов. Если фильтр принимает параметры, флаги могут быть указаны в элементе массива "flags". Для фильтра "callback" должен быть указан тип callable. Фильтр "callback" должен принимать один аргумент, значение для фильтрации, и возвращать значение после фильтрации.

<?php
// используйте этот формат для фильтров с дополнительными параметрами
$options = array(
    'options' => array(
        'default' => 3, // значение, возвращаемое, если фильтрация завершилась неудачей
        // другие параметры
        'min_range' => 0
    ),
    'flags' => FILTER_FLAG_ALLOW_OCTAL,
);
$var = filter_var('0755', FILTER_VALIDATE_INT, $options);

// для фильтров, который принимает только флаги, вы можете передать их непосредственно
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);

// для фильтров, который принимает только флаги, вы также можете передать их как массив
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN,
                  array('flags' => FILTER_NULL_ON_FAILURE));

// callback-функция фильтра валидации
function foo($value)
{
    // Ожидаемый формат: Фамилия, Имена
    if (strpos($value, ", ") === false) return false;
    list($surname, $givennames) = explode(", ", $value, 2);
    $empty = (empty($surname) || empty($givennames));
    $notstrings = (!is_string($surname) || !is_string($givennames));
    if ($empty || $notstrings) {
        return false;
    } else {
        return $value;
    }
}
$var = filter_var('Doe, Jane Sue', FILTER_CALLBACK, array('options' => 'foo'));
?>

Возвращаемые значения

Возвращает отфильтрованные данные или FALSE, если фильтрация завершилась неудачей.

Примеры

Пример #1 Пример использования filter_var()

<?php
var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('http://example.com', FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED));
?>

Результат выполнения данного примера:

string(15) "bob@example.com"
bool(false)

Смотрите также

  • filter_var_array() - Принимает несколько переменных и, при необходимости, фильтрует их
  • filter_input() - Принимает переменную извне PHP и, при необходимости, фильтрует ее
  • filter_input_array() - Получает несколько переменных извне PHP и, при необходимости, фильтрует их
  • Типы фильтров
  • Информация о типе callback


Управление функциями

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции управления функциями
    • call_user_func_array — Вызывает callback-функцию с массивом параметров
    • call_user_func — Вызывает callback-функцию, заданную в первом параметре
    • create_function — Создаёт анонимную (лямбда) функцию
    • forward_static_call_array — Вызов статического метода и передача параметров в виде массива
    • forward_static_call — Вызов статического метода
    • func_get_arg — Вернуть элемент из списка аргументов
    • func_get_args — Возвращает массив, содержащий аргументы функции
    • func_num_args — Возвращает количество аргументов, переданных функции
    • function_exists — Возвращает TRUE, если указанная функция определена
    • get_defined_functions — Возвращает массив всех определённых функций
    • register_shutdown_function — Регистрирует функцию, которая выполнится при завершении работы скрипта
    • register_tick_function — Регистрирует функцию для выполнения при каждом тике
    • unregister_tick_function — Удаляет функцию из списка зарегистрированных для выполнения на каждом тике


  • « Управление функциями
  • Установка и настройка »
  • PHP Manual
  • Управление функциями
  • Введение

Введение

Эти функции позволяют различными способами решать проблемы, возникающие при работе с функциями.


  • « Типы ресурсов
  • Функции управления функциями »
  • PHP Manual
  • Управление функциями
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции управления функциями

Содержание

  • call_user_func_array — Вызывает callback-функцию с массивом параметров
  • call_user_func — Вызывает callback-функцию, заданную в первом параметре
  • create_function — Создаёт анонимную (лямбда) функцию
  • forward_static_call_array — Вызов статического метода и передача параметров в виде массива
  • forward_static_call — Вызов статического метода
  • func_get_arg — Вернуть элемент из списка аргументов
  • func_get_args — Возвращает массив, содержащий аргументы функции
  • func_num_args — Возвращает количество аргументов, переданных функции
  • function_exists — Возвращает TRUE, если указанная функция определена
  • get_defined_functions — Возвращает массив всех определённых функций
  • register_shutdown_function — Регистрирует функцию, которая выполнится при завершении работы скрипта
  • register_tick_function — Регистрирует функцию для выполнения при каждом тике
  • unregister_tick_function — Удаляет функцию из списка зарегистрированных для выполнения на каждом тике


Вызывает callback-функцию с массивом параметров

  • « Функции управления функциями
  • call_user_func »
  • PHP Manual
  • Функции управления функциями
  • Вызывает callback-функцию с массивом параметров

call_user_func_array

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

call_user_func_array — Вызывает callback-функцию с массивом параметров

Описание

call_user_func_array ( callable $callback , array $param_arr ) : mixed

Вызывает callback-функцию callback, с параметрами из массива param_arr.

Список параметров

callback

Вызываемая функция типа callable.

param_arr

Передаваемые в функцию параметры в виде индексированного массива.

Возвращаемые значения

Возвращает результат функции или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.0 | Изменилась интерпретация объектно-ориентированных ключевых слов, таких как parent и self. Ранее их вызов с помощью синтаксиса двойного двоеточия вызывал предупреждение уровня E_STRICT, так как они расценивались как статические вызовы.

Примеры

Пример #1 Пример использования функции call_user_func_array()

<?php
function foobar($arg, $arg2) {
    echo __FUNCTION__, " got $arg and $arg2\n";
}
class foo {
    function bar($arg, $arg2) {
        echo __METHOD__, " got $arg and $arg2\n";
    }
}

// Вызываем функцию foobar() с 2 аргументами
call_user_func_array("foobar", array("one", "two"));

// Вызываем метод $foo->bar() с 2 аргументами
$foo = new foo;
call_user_func_array(array($foo, "bar"), array("three", "four"));
?>

Результатом выполнения данного примера будет что-то подобное:

foobar got one and two
foo::bar got three and four

Пример #2 Пример использования call_user_func_array() c именем пространства имен

<?php

namespace Foobar;

class Foo {
    static public function test($name) {
        print "Hello {$name}!\n";
    }
}

// Начиная с версии PHP 5.3.0
call_user_func_array(__NAMESPACE__ .'\Foo::test', array('Hannes'));

// Начиная с версии PHP 5.3.0
call_user_func_array(array(__NAMESPACE__ .'\Foo', 'test'), array('Philip'));

?>

Результатом выполнения данного примера будет что-то подобное:

Hello Hannes!
Hello Philip!

Пример #3 Использование лямбда-функции

<?php

$func = function($arg1, $arg2) {
    return $arg1 * $arg2;
};

var_dump(call_user_func_array($func, array(2, 4))); /* Начиная с версии PHP 5.3.0 */

?>

Результат выполнения данного примера:

int(8)

Пример #4 Передача значений по ссылке

<?php

function mega(&$a){
    $a = 55;
    echo "function mega \$a=$a\n";
}
$bar = 77;
call_user_func_array('mega',array(&$bar));
echo "global \$bar=$bar\n";

?>

Результат выполнения данного примера:

function mega $a=55
global $bar=55

Примечания

Замечание:

До PHP 5.4 переменные-ссылки в param_arr передавались в функции по ссылке вне зависимости от того, ожидает ли функция передачу соответствующего параметра по ссылке или нет. При использовании этого вида "динамической" передачи по ссылке не выводится предупреждение об устаревшем поведении, но тем не менее такая передача считается устаревшей и была удалена в PHP 5.4. Кроме того, это не влияет на встроенные функции, у которых учитывается сигнатура функции. Передача параметра функции по значению при ожидаемой передаче по ссылке вызовет предупреждение и заставит call_user_func() вернуть FALSE (однако имеется исключение для передаваемых значений, у которых количество ссылок равно 1, также как у литералов, поскольку последние могут быть преобразованы в ссылки без побочных последствий, однако запись значения в такие параметры не имеет никакого эффекта. Не полагайтесь на такое поведение, все-таки количество ссылок - это подробности реализации и правильность такого режима работы вызывает сомнения).

Замечание:

Callback-функции, зарегистрированные такими функциями как call_user_func() и call_user_func_array(), не будут вызваны при наличии не пойманного исключения, брошенного в предыдущей callback-функции.

Смотрите также

  • call_user_func() - Вызывает callback-функцию, заданную в первом параметре
  • Информация о типе callback
  • ReflectionFunction::invokeArgs() - Вызов функции с передачей аргументов
  • ReflectionMethod::invokeArgs() - Вызов метода с передачей аргументов массивом


Вызывает callback-функцию, заданную в первом параметре

  • « call_user_func_array
  • create_function »
  • PHP Manual
  • Функции управления функциями
  • Вызывает callback-функцию, заданную в первом параметре

call_user_func

(PHP 4, PHP 5, PHP 7)

call_user_func — Вызывает callback-функцию, заданную в первом параметре

Описание

call_user_func ( callable $callback [, mixed $... ] ) : mixed

Вызывает callback-функцию, переданную первым параметром, и передает остальные параметры в качестве аргументов. callback.

Список параметров

callback

Вызываемая функция типа callable.

...

Ноль или более параметров, передаваемые в callback-функцию.

Замечание:

Учтите, что параметры для call_user_func() не передаются по ссылке.

Пример #1 Пример использования call_user_func() и ссылки

<?php
error_reporting(E_ALL);
function increment(&$var)
{
    $var++;
}

$a = 0;
call_user_func('increment', $a);
echo $a."\n";

// Вместо этого можно использовать этот способ
call_user_func_array('increment', array(&$a));
echo $a."\n";
?>

Результат выполнения данного примера:

Warning: Parameter 1 to increment() expected to be a reference, value given in ...
0
1

Возвращаемые значения

Возвращает значение, возвращенное callback-функцией.

Список изменений

Версия | Описание
5.3.0 | Изменилась интерпретация объектно-ориентированных ключевых слов, таких как parent и self. Ранее, при их вызове с помощью синтаксиса двойного двоеточия вызывалась ошибка уровня E_STRICT, т.к. они интерпретировались как статические вызовы.
5.3.0 | Если вызываемая функция ожидает передачи параметра по ссылке, будет выдана ошибка уровня E_WARNING.

Примеры

Пример #2 Пример использования call_user_func()

<?php
function barber($type)
{
    echo "Вы хотели стрижку $type, без проблем\n";
}
call_user_func('barber', "под горшок");
call_user_func('barber', "наголо");
?>

Результат выполнения данного примера:

Вы хотели стрижку под горшок, без проблем
Вы хотели стрижку наголо, без проблем

Пример #3 Использование call_user_func(), используя пространства имен

<?php

namespace Foobar;

class Foo {
    static public function test() {
        print "Привет, мир!\n";
    }
}

call_user_func(__NAMESPACE__ .'\Foo::test'); // Начиная с версии PHP 5.3.0
call_user_func(array(__NAMESPACE__ .'\Foo', 'test')); // Начиная с версии PHP 5.3.0

?>

Результат выполнения данного примера:

Привет, мир!
Привет, мир!

Пример #4 Вызов метода класса с помощью call_user_func()

<?php

class myclass {
    static function say_hello()
    {
        echo "Привет!\n";
    }
}

$classname = "myclass";

call_user_func(array($classname, 'say_hello'));
call_user_func($classname .'::say_hello'); // Начиная с версии 5.2.3

$myobject = new myclass();

call_user_func(array($myobject, 'say_hello'));

?>

Результат выполнения данного примера:

Привет!
Привет!
Привет!

Пример #5 Использование лямбда-функции с call_user_func()

<?php
call_user_func(function($arg) { print "[$arg]\n"; }, 'test'); /* Начиная с версии PHP 5.3.0 */
?>

Результат выполнения данного примера:

[test]

Примечания

Замечание:

Callback-функции, зарегистрированные такими функциями как call_user_func() и call_user_func_array(), не будут вызваны при наличии не пойманного исключения, брошенного в предыдущей callback-функции.

Смотрите также

  • call_user_func_array() - Вызывает callback-функцию с массивом параметров
  • is_callable() - Проверяет, может ли значение переменной быть вызвано в качестве функции
  • Информация о типе callback
  • ReflectionFunction::invoke() - Вызывает функцию
  • ReflectionMethod::invoke() - Вызов


Создаёт анонимную (лямбда) функцию

  • « call_user_func
  • forward_static_call_array »
  • PHP Manual
  • Функции управления функциями
  • Создаёт анонимную (лямбда) функцию

create_function

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

create_function — Создаёт анонимную (лямбда) функцию

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.2.0 и ее использование крайне не рекомендовано.

Описание

create_function ( string $args , string $code ) : string

Создаёт анонимную функцию из переданных параметров и возвращает её уникальное имя.

Предостережение

Эта функция внутри себя делает вызов функции eval(), а значит имеет такие же проблемы с безопасностью, как и eval().

Если вы используете PHP 5.3.0 и новее, то используйте анонимные функции.

Список параметров

Обычно параметры передаются строкой в одинарных кавычках. Основанием для использования строк в одинарных кавычках является защита имён переменных от обработки, другими словами, если вы будете использовать двойные кавычки, то необходимо будет проэкранировать все имена переменных, вот так: \$avar.

args

Аргументы функции.

code

Код функции.

Возвращаемые значения

Возвращает уникальное имя функции в виде строки или FALSE в случае ошибки.

Примеры

Пример #1 Создание анонимной функции с помощью create_function()

Вы можете использовать эту функцию (к примеру) для создания функций из информации, полученной во время выполнения:

<?php
$newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);');
echo "Новая анонимная функция: $newfunc\n";
echo $newfunc(2, M_E) . "\n";
// выводит
// Новая анонимная функция: lambda_1
// ln(2) + ln(2.718281828459) = 1.6931471805599
?>

Или, возможно, чтобы иметь общий обработчик для применения набора операций к списку параметров:

Пример #2 Создание функции-обработчика с помощью create_function()

<?php
function process($var1, $var2, $farr)
{
    foreach ($farr as $f) {
        echo $f($var1, $var2) . "\n";
    }
}

// создаем кучу математических функций
$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 "тригонометрия: ".(sin($x) + $x*cos($y));'),
    create_function('$x,$y', 'return "гипотенуза: ".sqrt($x*$x + $y*$y);'),
    create_function('$a,$b', $f1),
    create_function('$a,$b', $f2),
    create_function('$a,$b', $f3)
    );

echo "\nИспользуем первый массив анонимных функций\n";
echo "параметры: 2.3445, M_PI\n";
process(2.3445, M_PI, $farr);

// теперь создаем кучу функций обработки строк
$garr = array(
    create_function('$b,$a', 'if (strncmp($a, $b, 3) == 0) return "** \"$a\" '.
    'и \"$b\"\n** для меня одинаковы! (смотря по первым 3 символам)";'),
    create_function('$a,$b', '; return "CRC: " . crc32($a) . ", ".crc32($b);'),
    create_function('$a,$b', '; return "similar(a,b) = " . similar_text($a, $b, &$p) . "($p%)";')
    );
echo "\nИспользование второго массива анонимных функций\n";
process("Варкалось. Хливкие шорьки пырялись по наве", "Воробей под кровлю, а сова на ловлю", $garr);
?>

Результат выполнения данного примера:

Используем первый массив анонимных функций
параметры: 2.3445, M_PI
тригонометрия: -1.6291725057799
гипотенуза: 3.9199852871011
b*a^2 = 4.8103313314525
min(b^2+a, a^2,b) = 8.6382729035898
ln(a)/b = 0.27122299212594

Использование второго массива анонимных функций
** "Воробей под кровлю, а сова на ловлю" и "Варкалось. Хливкие шорьки пырялись по наве"
** для меня одинаковы! (смотря по первым 3 символам)
CRC: 2672527412, 1981818417
similar(a,b) = 23(32.624113475177%)

Однако, вероятно, наиболее обоснованное использование лямбда (анонимных) функций - это создание функций обратного вызова, например, при использовании array_walk() или usort()

Пример #3 Использование анонимной функции в качестве функции обратного вызова

<?php
$av = array("о, ", "эх, ", "то ", "это ");
array_walk($av, create_function('&$v,$k', '$v = $v . "манго";'));
print_r($av);
?>

Результат выполнения данного примера:

Array
(
  [0] => о, манго
  [1] => эх, манго
  [2] => то манго
  [3] => это манго
)

Сортировка строк по их длине

<?php

$sv = array("мало", "много", "большая строка", "строка строка строка");
print_r($sv);

?>

Результат выполнения данного примера:

Array
(
  [0] => мало
  [1] => много
  [2] => большая строка
  [3] => строка строка строка
)

Теперь отсортируем их в обратном порядке:

<?php

usort($sv, create_function('$a,$b','return strlen($b) - strlen($a);'));
print_r($sv);

?>

Результат выполнения данного примера:

Array
(
  [0] => строка строка строка
  [1] => большая строка
  [2] => много
  [3] => мало
)

Смотрите также

  • Анонимные функции


Вызов статического метода и передача параметров в виде массива

  • « create_function
  • forward_static_call »
  • PHP Manual
  • Функции управления функциями
  • Вызов статического метода и передача параметров в виде массива

forward_static_call_array

(PHP 5 >= 5.3.0, PHP 7)

forward_static_call_array — Вызов статического метода и передача параметров в виде массива

Описание

forward_static_call_array ( callable $function , array $parameters ) : mixed

Вызывает пользовательскую функцию или метод, заданные в параметре function. Эта функция должна вызываться в контексте метода и не может быть вызвана вне класса. Она использует познее статическое связывание. Все аргументы пересылаются в метод по значению и в виде массива, аналогично call_user_func_array().

Список параметров

function

Функция или метод для вызова. Этот параметр может быть массивом с именем класса и метода, либо строкой с именем функции.

parameter

Массив, содержащий все аргументы вызова функции.

Замечание:

Помните, что аргументы forward_static_call_array() не передаются по ссылке.

Возвращаемые значения

Возвращает результат функции или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования forward_static_call_array()

<?php

class A
{
    const NAME = 'A';
    public static function test() {
        $args = func_get_args();
        echo static::NAME, " ".join(',', $args)." \n";
    }
}

class B extends A
{
    const NAME = 'B';

    public static function test() {
        echo self::NAME, "\n";
        forward_static_call_array(array('A', 'test'), array('more', 'args'));
        forward_static_call_array( 'test', array('other', 'args'));
    }
}

B::test('foo');

function test() {
        $args = func_get_args();
        echo "C ".join(',', $args)." \n";
    }

?>

Результат выполнения данного примера:

B
B more,args
C other,args

Смотрите также

  • forward_static_call() - Вызов статического метода
  • call_user_func() - Вызывает callback-функцию, заданную в первом параметре
  • call_user_func_array() - Вызывает callback-функцию с массивом параметров
  • is_callable() - Проверяет, может ли значение переменной быть вызвано в качестве функции
  • Информация о типе callback


Вызов статического метода

  • « forward_static_call_array
  • func_get_arg »
  • PHP Manual
  • Функции управления функциями
  • Вызов статического метода

forward_static_call

(PHP 5 >= 5.3.0, PHP 7)

forward_static_call — Вызов статического метода

Описание

forward_static_call ( callable $function [, mixed $... ] ) : mixed

Вызов пользовательской функции или метода, заданные в параметре function с последующими аргументами. Эта функция должна вызываться в контексте метода и не может быть вызвана вне класса. Она использует позднее статическое связывание.

Список параметров

function

Функция или метод для вызова. Этот параметр может быть массивом с именем класса и метода, либо строкой с именем функции.

...

Ноль или более параметров, которые будут переданы вызываемой функции.

Возвращаемые значения

Возвращает результат функции или FALSE, в случае ошибки.

Примеры

Пример #1 Пример использования forward_static_call()

<?php

class A
{
    const NAME = 'A';
    public static function test() {
        $args = func_get_args();
        echo static::NAME, " ".join(',', $args)." \n";
    }
}

class B extends A
{
    const NAME = 'B';

    public static function test() {
        echo self::NAME, "\n";
        forward_static_call(array('A', 'test'), 'more', 'args');
        forward_static_call( 'test', 'other', 'args');
    }
}

B::test('foo');

function test() {
        $args = func_get_args();
        echo "C ".join(',', $args)." \n";
    }

?>

Результат выполнения данного примера:

B
B more,args
C other,args

Смотрите также

  • forward_static_call_array() - Вызов статического метода и передача параметров в виде массива
  • call_user_func_array() - Вызывает callback-функцию с массивом параметров
  • call_user_func() - Вызывает callback-функцию, заданную в первом параметре
  • is_callable() - Проверяет, может ли значение переменной быть вызвано в качестве функции
  • Информация о типе callback


Вернуть элемент из списка аргументов

  • « forward_static_call
  • func_get_args »
  • PHP Manual
  • Функции управления функциями
  • Вернуть элемент из списка аргументов

func_get_arg

(PHP 4, PHP 5, PHP 7)

func_get_arg — Вернуть элемент из списка аргументов

Описание

func_get_arg ( int $arg_num ) : mixed

Возвращает указанный аргумент из списка аргументов пользовательской функции.

Эта функция может быть использована совместно с func_get_args() и func_num_args() для создания функций с переменным количеством аргументов.

Список параметров

arg_num

Номер аргумента. Аргументы функции считаются с нуля.

Возвращаемые значения

Возвращает указанный аргумент или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.0 | Эта функция теперь может быть использована в качестве параметра функции.
5.3.0 | Если эта функция вызвана в глобальной области видимости файла, подключенного с помощью include или require из функции вызывающего файла, то теперь будет сгенерировано предупреждение и возвращено значение FALSE.

Ошибки

Генерирует предупреждение при вызове вне определения функции, или если arg_num больше реально переданного количества аргументов.

Примеры

Пример #1 Пример использования func_get_arg()

<?php
function foo()
{
     $numargs = func_num_args();
     echo "Количество аргументов: $numargs\n";
     if ($numargs >= 2) {
         echo "Второй аргумент: " . func_get_arg(1) . "\n";
     }
}

foo(1, 2, 3);
?>

Результат выполнения данного примера:

Количество аргументов: 3
Второй аргумент: 2

Пример #2 Использование func_get_arg() до и после PHP 5.3

test.php
<?php
function foo() {
    include './fga.inc';
}

foo('Первый аргумент', 'Второй аргумент');
?>

fga.inc
<?php

$arg = func_get_arg(1);
var_export($arg);

?>

Вывод до PHP 5.3:

'Второй аргумент'

Вывод в PHP 5.3 и выше:

Warning: func_get_arg():  Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fga.inc on line 3
false

Пример #3 Пример передачи аргументов по ссылке и по значению с func_get_arg()

<?php
function byVal($arg) {
    echo 'Передан          : ', var_export(func_get_arg(0)), PHP_EOL;
    $arg = 'baz';
    echo 'После изменения  : ', var_export(func_get_arg(0)), PHP_EOL;
}

function byRef(&$arg) {
    echo 'Передан          : ', var_export(func_get_arg(0)), PHP_EOL;
    $arg = 'baz';
    echo 'После изменения  : ', var_export(func_get_arg(0)), PHP_EOL;
}

$arg = 'bar';
byVal($arg);
byRef($arg);
?>

Результат выполнения данного примера в PHP 7:

Передан : 'bar'
После изменения : 'baz'
Передан : 'bar'
После изменения : 'baz'

Результат выполнения данного примера в PHP 5:

Передан : 'bar'
После изменения : 'bar'
Передан : 'bar'
После изменения : 'baz'

Примечания

Замечание:

Так как для определения параметров данной функции необходим контекст выполнения, она не может быть передана в качестве параметра в версиях PHP до 5.3.0. Если функцию все же необходимо передать, то нужно присвоить ее переменной, которую уже можно использовать при передаче.

Замечание:

Если аргументы были переданы по ссылке, то все изменения аргументов будут отражены на возвращаемых функцией значениях. В PHP 7 также будут возвращены текущие значения, если аргументы переданы по значению

Замечание: Эта функция возвращает только копии переданных аргументов, и не возвращает значения по умолчанию (непереданных) аргументов.

Смотрите также

  • Синтаксис ... в PHP 5.6+
  • func_get_args()
  • func_num_args()


Возвращает массив, содержащий аргументы функции

  • « func_get_arg
  • func_num_args »
  • PHP Manual
  • Функции управления функциями
  • Возвращает массив, содержащий аргументы функции

func_get_args

(PHP 4, PHP 5, PHP 7)

func_get_args — Возвращает массив, содержащий аргументы функции

Описание

func_get_args ( void ) : array

Получает массив, содержащий аргументы функции.

Эта функция может быть использована совместно с func_num_args() и func_get_arg() для создания функций с переменным количеством аргументов.

Возвращаемые значения

Возвращает массив, в котором каждый элемент является копией соответствующего члена списка аргументов пользовательской функции.

Список изменений

Версия | Описание
5.3.0 | Эта функция теперь может быть использована в качестве параметра функции.
5.3.0 | Если эта функция вызвана в глобальной области видимости файла, подключенного с помощью include или require из функции вызывающего файла, то теперь будет сгенерировано предупреждение и возвращено значение FALSE.

Ошибки

Генерирует предупреждение при вызове вне определения функции.

Примеры

Пример #1 Пример использования func_get_args()

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Количество аргументов: $numargs\n";
    if ($numargs >= 2) {
        echo "Второй аргумент: " . func_get_arg(1) . "\n";
    }
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        echo "Аргумент №$i: " . $arg_list[$i] . "\n";
    }
}

foo(1, 2, 3);
?>

Результат выполнения данного примера:

Количество аргументов: 3
Второй аргумент: 2
Аргумент №0: 1
Аргумент №1: 2
Аргумент №2: 3

Пример #2 Использование func_get_args() до и после PHP 5.3

test.php
<?php
function foo() {
    include './fga.inc';
}

foo('Первый аргумент', 'Второй аргумент');
?>

fga.inc
<?php

$args = func_get_args();
var_export($args);

?>

Вывод до PHP 5.3:

array (
  0 => 'Первый аргумент',
  1 => 'Второй аргумент',
)

Вывод в PHP 5.3 и выше:

Warning: func_get_args():  Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fga.inc on line 3
false

Пример #3 Пример передачи аргументов по ссылке и по значению с func_get_args()

<?php
function byVal($arg) {
    echo 'Передан          : ', var_export(func_get_args()), PHP_EOL;
    $arg = 'baz';
    echo 'После изменения  : ', var_export(func_get_args()), PHP_EOL;
}

function byRef(&$arg) {
    echo 'Передан          : ', var_export(func_get_args()), PHP_EOL;
    $arg = 'baz';
    echo 'После изменения  : ', var_export(func_get_args()), PHP_EOL;
}

$arg = 'bar';
byVal($arg);
byRef($arg);
?>

Результат выполнения данного примера в PHP 7:

Передан : array (
0 => 'bar',
)
После изменения : array (
0 => 'baz',
)
Передан : array (
0 => 'bar',
)
После изменения : array (
0 => 'baz',
)

Результат выполнения данного примера в PHP 5:

Передан : array (
0 => 'bar',
)
После изменения : array (
0 => 'bar',
)
Передан : array (
0 => 'bar',
)
После изменения : array (
0 => 'baz',
)

Примечания

Замечание:

Так как для определения параметров данной функции необходим контекст выполнения, она не может быть передана в качестве параметра в версиях PHP до 5.3.0. Если функцию все же необходимо передать, то нужно присвоить ее переменной, которую уже можно использовать при передаче.

Замечание:

Если аргументы были переданы по ссылке, то все изменения аргументов будут отражены на возвращаемых функцией значениях. В PHP 7 также будут возвращены текущие значения, если аргументы переданы по значению

Замечание: Эта функция возвращает только копии переданных аргументов, и не возвращает значения по умолчанию (непереданных) аргументов.

Смотрите также

  • Синтаксис ... в PHP 5.6+
  • func_get_arg()
  • func_num_args()
  • ReflectionFunctionAbstract::getParameters()


Возвращает количество аргументов, переданных функции

  • « func_get_args
  • function_exists »
  • PHP Manual
  • Функции управления функциями
  • Возвращает количество аргументов, переданных функции

func_num_args

(PHP 4, PHP 5, PHP 7)

func_num_args — Возвращает количество аргументов, переданных функции

Описание

func_num_args ( void ) : int

Получает количество аргументов, переданных функции.

Эта функция также может быть использована совместно с func_get_arg() и func_get_args() для создания функций с переменным количеством аргументов.

Возвращаемые значения

Возвращает количество аргументов, переданных текущей пользовательской функции.

Список изменений

Версия | Описание
5.3.0 | Эта функция теперь может быть использована в качестве параметра функции.
5.3.0 | Если эта функция вызвана в глобальной области видимости файла, подключенного с помощью include или require из функции вызывающего файла, то теперь будет сгенерировано предупреждение и возвращено значение -1.

Ошибки

Генерирует предупреждение при вызове вне определения функции.

Примеры

Пример #1 Пример использования func_num_args()

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Количество аргументов: $numargs\n";
}

foo(1, 2, 3);
?>

Результат выполнения данного примера:

Количество аргументов: 3

Пример #2 Использование func_num_args() до и после PHP 5.3

test.php
<?php
function foo() {
    include './fna.php';
}

foo('Первый аргумент', 'Второй аргумент');
?>

fna.php
<?php

$num_args = func_num_args();
var_export($num_args);

?>

Вывод до PHP 5.3:

2

Вывод в PHP 5.3 и выше будет содержать что-то типа следующего:

Warning: func_num_args():  Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fna.php on line 3
-1

Примечания

Замечание:

Так как для определения параметров данной функции необходим контекст выполнения, она не может быть передана в качестве параметра в версиях PHP до 5.3.0. Если функцию все же необходимо передать, то нужно присвоить ее переменной, которую уже можно использовать при передаче.

Смотрите также

  • Синтаксис ... в PHP 5.6+
  • func_get_arg()
  • func_get_args()
  • ReflectionFunctionAbstract::getNumberOfParameters()


Возвращает TRUE, если указанная функция определена

  • « func_num_args
  • get_defined_functions »
  • PHP Manual
  • Функции управления функциями
  • Возвращает TRUE, если указанная функция определена

function_exists

(PHP 4, PHP 5, PHP 7)

function_exists — Возвращает TRUE, если указанная функция определена

Описание

function_exists ( string $function_name ) : bool

Проверяет, есть ли в списке определённых функций, как встроенных (внутренних), так и пользовательских, функция function_name.

Список параметров

function_name

Имя функции в виде строки.

Возвращаемые значения

Возвращает TRUE, если function_name существует и является функцией, иначе возвращается FALSE.

Замечание:

Эта функция возвращает FALSE для языковых конструкций, таких как include_once или echo.

Примеры

Пример #1 Пример использования function_exists()

<?php
if (function_exists('imap_open')) {
    echo "Функции IMAP доступны.<br />\n";
} else {
    echo "Функции IMAP недоступны.<br />\n";
}
?>

Примечания

Замечание:

Обратите внимание, что название функции может присутствовать, даже если саму функцию невозможно использовать из-за настроек конфигурации или опций компиляции (например, как для функций image).

Смотрите также

  • method_exists() - Проверяет, существует ли метод в данном классе
  • is_callable() - Проверяет, может ли значение переменной быть вызвано в качестве функции
  • get_defined_functions() - Возвращает массив всех определённых функций
  • class_exists() - Проверяет, был ли объявлен класс
  • extension_loaded() - Определить, загружено ли расширение


Возвращает массив всех определённых функций

  • « function_exists
  • register_shutdown_function »
  • PHP Manual
  • Функции управления функциями
  • Возвращает массив всех определённых функций

get_defined_functions

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

get_defined_functions — Возвращает массив всех определённых функций

Описание

get_defined_functions ([ bool $exclude_disabled = FALSE ] ) : array

Получает массив всех определённых функций.

Список параметров

exclude_disabled

Следует ли исключать из результата отключенные функции.

Возвращаемые значения

Эта функция возвращает многомерный массив, содержащий список всех определённых функций, как встроенных (внутренних), так и пользовательских. Внутренние функции будут перечислены в элементе массива $arr["internal"], а определенные пользователем - в элементе $arr["user"] (см. пример ниже).

Список изменений

Версия | Описание
7.0.15, 7.1.1 | Добавлен параметр exclude_disabled.

Примеры

Пример #1 Пример использования get_defined_functions()

<?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() - Возвращает TRUE, если указанная функция определена
  • get_defined_vars() - Возвращает массив всех определенных переменных
  • get_defined_constants() - Возвращает ассоциативный массив с именами всех констант и их значений
  • get_declared_classes() - Возвращает массив с именами объявленных классов


Регистрирует функцию, которая выполнится при завершении работы скрипта

  • « get_defined_functions
  • register_tick_function »
  • PHP Manual
  • Функции управления функциями
  • Регистрирует функцию, которая выполнится при завершении работы скрипта

register_shutdown_function

(PHP 4, PHP 5, PHP 7)

register_shutdown_function — Регистрирует функцию, которая выполнится при завершении работы скрипта

Описание

register_shutdown_function ( callable $callback [, mixed $... ] ) : void

Регистрирует функцию callback, которая выполнится после завершения работы скрипта или при вызове функции exit().

Возможна регистрация нескольких подобных функций с помощью register_shutdown_function(), при этом функции будут выполняться в том порядке, в каком они были зарегистрированы. Если вы вызовете exit() в одной из зарегистрированных завершающих функций, процесс будет полностью остановлен и последующие завершающие функции не будут вызваны.

Список параметров

callback

Регистрируемая завершающая функция.

Завершающие функции выполняются как часть запроса, поэтому можно отправлять данные на вывод из них и получать доступ к буферизации вывода.

...

Можно передавать параметры в завершающую функцию, передав дополнительные параметры.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Если передано название несуществующей завершающей функции, то генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использования register_shutdown_function()

<?php
function shutdown()
{
    // Это наша завершающая функция,
    // здесь мы можем выполнить все последние операции
    // перед тем как скрипт полностью завершится.

    echo 'Скрипт успешно завершился', PHP_EOL;
}

register_shutdown_function('shutdown');
?>

Примечания

Замечание:

На некоторых веб-серверах рабочая директория скрипта может измениться внутри завершающей функции, например, Apache.

Замечание:

Функции, выполняемые при завершении скрипта, не будут выполнены, если процесс был убит с сигналами SIGTERM или SIGKILL. Хотя вы и не можете перехватить SIGKILL, но вы можете использовать функцию pcntl_signal(), чтобы задать обработчик сигнала SIGTERM, который использует функцию exit(), чтобы завершить скрипт правильно.

Смотрите также

  • auto_append_file
  • exit() - Вывести сообщение и прекратить выполнение текущего скрипта
  • Раздел Обработка соединений


Регистрирует функцию для выполнения при каждом тике

  • « register_shutdown_function
  • unregister_tick_function »
  • PHP Manual
  • Функции управления функциями
  • Регистрирует функцию для выполнения при каждом тике

register_tick_function

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

register_tick_function — Регистрирует функцию для выполнения при каждом тике

Описание

register_tick_function ( callable $function [, mixed $... ] ) : bool

Регистрирует функцию function, которая должна вызываться при каждом тике.

Список параметров

function

Регистрируемая функция.

...

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования register_tick_function()

<?php
declare(ticks=1);

// использование функции в качестве обратного вызова
register_tick_function('my_function', true);

// использование метода объекта
$object = new my_class();
register_tick_function(array(&$object, 'my_method'), true);
?>

Список изменений

Версия | Описание
5.3.0 | Тики теперь поддерживаются и на потоковых модулях веб-серверов.

Примечания

Внимание

Не используйте register_tick_function() на потоковых модулях веб-серверов с PHP 5.2 и ниже.

Смотрите также

  • declare
  • unregister_tick_function() - Удаляет функцию из списка зарегистрированных для выполнения на каждом тике


Удаляет функцию из списка зарегистрированных для выполнения на каждом тике

  • « register_tick_function
  • Quickhash »
  • PHP Manual
  • Функции управления функциями
  • Удаляет функцию из списка зарегистрированных для выполнения на каждом тике

unregister_tick_function

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

unregister_tick_function — Удаляет функцию из списка зарегистрированных для выполнения на каждом тике

Описание

unregister_tick_function ( callable $function ) : void

Удаляет function из списка функций, так что она больше не выполняется при каждом тике (см. tick).

Список параметров

function

Удаляемая функция.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • register_tick_function() - Регистрирует функцию для выполнения при каждом тике


Quickhash

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределенные константы
  • Примеры
  • QuickHashIntSet — Класс QuickHashIntSet
    • QuickHashIntSet::add — This method adds a new entry to the set
    • QuickHashIntSet::__construct — Creates a new QuickHashIntSet object
    • QuickHashIntSet::delete — This method deletes an entry from the set
    • QuickHashIntSet::exists — This method checks whether a key is part of the set
    • QuickHashIntSet::getSize — Returns the number of elements in the set
    • QuickHashIntSet::loadFromFile — This factory method creates a set from a file
    • QuickHashIntSet::loadFromString — This factory method creates a set from a string
    • QuickHashIntSet::saveToFile — This method stores an in-memory set to disk
    • QuickHashIntSet::saveToString — This method returns a serialized version of the set
  • QuickHashIntHash — Класс QuickHashIntHash
    • QuickHashIntHash::add — This method adds a new entry to the hash
    • QuickHashIntHash::__construct — Creates a new QuickHashIntHash object
    • QuickHashIntHash::delete — This method deletes am entry from the hash
    • QuickHashIntHash::exists — This method checks whether a key is part of the hash
    • QuickHashIntHash::get — This method retrieves a value from the hash by its key
    • QuickHashIntHash::getSize — Returns the number of elements in the hash
    • QuickHashIntHash::loadFromFile — This factory method creates a hash from a file
    • QuickHashIntHash::loadFromString — This factory method creates a hash from a string
    • QuickHashIntHash::saveToFile — This method stores an in-memory hash to disk
    • QuickHashIntHash::saveToString — This method returns a serialized version of the hash
    • QuickHashIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntHash::update — This method updates an entry in the hash with a new value
  • QuickHashStringIntHash — Класс QuickHashStringIntHash
    • QuickHashStringIntHash::add — This method adds a new entry to the hash
    • QuickHashStringIntHash::__construct — Creates a new QuickHashStringIntHash object
    • QuickHashStringIntHash::delete — This method deletes am entry from the hash
    • QuickHashStringIntHash::exists — This method checks whether a key is part of the hash
    • QuickHashStringIntHash::get — This method retrieves a value from the hash by its key
    • QuickHashStringIntHash::getSize — Returns the number of elements in the hash
    • QuickHashStringIntHash::loadFromFile — This factory method creates a hash from a file
    • QuickHashStringIntHash::loadFromString — This factory method creates a hash from a string
    • QuickHashStringIntHash::saveToFile — This method stores an in-memory hash to disk
    • QuickHashStringIntHash::saveToString — This method returns a serialized version of the hash
    • QuickHashStringIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashStringIntHash::update — This method updates an entry in the hash with a new value
  • QuickHashIntStringHash — Класс QuickHashIntStringHash
    • QuickHashIntStringHash::add — This method adds a new entry to the hash
    • QuickHashIntStringHash::__construct — Creates a new QuickHashIntStringHash object
    • QuickHashIntStringHash::delete — This method deletes am entry from the hash
    • QuickHashIntStringHash::exists — This method checks whether a key is part of the hash
    • QuickHashIntStringHash::get — This method retrieves a value from the hash by its key
    • QuickHashIntStringHash::getSize — Returns the number of elements in the hash
    • QuickHashIntStringHash::loadFromFile — This factory method creates a hash from a file
    • QuickHashIntStringHash::loadFromString — This factory method creates a hash from a string
    • QuickHashIntStringHash::saveToFile — This method stores an in-memory hash to disk
    • QuickHashIntStringHash::saveToString — This method returns a serialized version of the hash
    • QuickHashIntStringHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntStringHash::update — This method updates an entry in the hash with a new value


Введение

Модуль quickhash содержит набор строго типизированных классов для работы со специфичными реализациями коллекций типа Set и Hash.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Модулю не требуются внешние библиотеки.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/quickhash


  • « Настройка во время выполнения
  • Примеры »
  • PHP Manual
  • Quickhash
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Пример #1 Примеры использования Quickhash

<?php
$set = new QuickHashIntSet( 1024, QuickHashIntSet::CHECK_FOR_DUPES );
$set->add( 1 );
$set->add( 3 );

var_dump( $set->exists( 3 ) );
var_dump( $set->exists( 4 ) );

$set->saveToFile( "/tmp/test-set.set" );

$newSet = QuickHashIntSet::loadFromFile(
    "/tmp/test-set.set"
);

var_dump( $newSet->exists( 3 ) );
var_dump( $newSet->exists( 4 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)
bool(true)
bool(false)

Пример #2 Пример использования Quickhash с доступом как к массиву

<?php
$hash = new QuickHashIntHash( 64 );

// Добавление и обновление записей в хеш-таблицу.
$hash[3] = 145926;
$hash[3] = 1415926;
$hash[2] = 72;

// Проверка существования ключа в хеш-таблице
var_dump( isset( $hash[3] ) );

// Удаление записи из хеш-таблицы
unset( $hash[2] );

// Извлечение значения из хеш-таблицы
echo $hash[3], "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
1415926

Пример #3 Пример итерирования

<?php
$hash = new QuickHashIntHash( 64 );

// Добавление записей.
$hash[1] = 145926;
$hash[2] = 1415926;
$hash[3] = 72;
$hash[4] = 712314;
$hash[5] = -4234;

foreach( $hash as $key => $value )
{
    echo $key, ' => ', $value, "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

5 => -4234
4 => 712314
1 => 145926
2 => 1415926
3 => 72

Пример #4 Пример со строковыми значениями

<?php
$hash = new QuickHashIntStringHash( 64 );

// Добавление записей.
$hash[1] = "one million four hundred fifteen thousand nine hundred twenty six";
$hash->add( 2, "one more" );

foreach( $hash as $key => $value )
{
    echo $key, ' => ', $value, "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

1 => one million four hundred fifteen thousand nine hundred twenty six
2 => one more


Класс QuickHashIntSet

(PECL quickhash >= Unknown)

Введение

Класс-обертка над набором целых чисел.

Классом реализуется интерфейс Iterator, что дает возможность перебора с помощью foreach. Порядок следования элементов не гарантируется.

Обзор классов

QuickHashIntSet {
/* Константы */
const integer CHECK_FOR_DUPES = 1 ;
const integer DO_NOT_USE_ZEND_ALLOC = 2 ;
const integer HASHER_NO_HASH = 256 ;
const integer HASHER_JENKINS1 = 512 ;
const integer HASHER_JENKINS2 = 1024 ;
/* Методы */
public add ( int $key ) : bool
public __construct ( int $size [, int $options ] )
public delete ( int $key ) : bool
public exists ( int $key ) : bool
publicgetSize ( void ) : int
public static loadFromFile ( string $filename [, int $size [, int $options ]] ) : QuickHashIntSet
public static loadFromString ( string $contents [, int $size [, int $options ]] ) : QuickHashIntSet
public saveToFile ( string $filename ) : void
public saveToString ( void ) : string
}

Предопределенные константы

QuickHashIntSet::CHECK_FOR_DUPES

Если включено, то добавление повторяющихся элементов в набор (с помощью add() или loadFromFile()) приведет к отбрасыванию этих элементов. Этот функционал несколько замедляет работу, так что должен использоваться только если действительно необходим.

QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC

Запрещает использование встроенного в PHP менеджера памяти для внутренних структур. Если включена эта опция, то используемая память не будет учитываться настройкой memory_limit.

QuickHashIntSet::HASHER_NO_HASH

Указывает, что не нужно использовать функцию хеширования, а вместо нее для поиска индекса в цепочке использовать модуль. Это не быстрее обычного хеширования и порождает больше коллизий.

QuickHashIntSet::HASHER_JENKINS1

Хеширующая функция по умолчанию.

QuickHashIntHash::HASHER_JENKINS2

Другой хеширующий алгоритм.

Содержание

  • QuickHashIntSet::add — This method adds a new entry to the set
  • QuickHashIntSet::__construct — Creates a new QuickHashIntSet object
  • QuickHashIntSet::delete — This method deletes an entry from the set
  • QuickHashIntSet::exists — This method checks whether a key is part of the set
  • QuickHashIntSet::getSize — Returns the number of elements in the set
  • QuickHashIntSet::loadFromFile — This factory method creates a set from a file
  • QuickHashIntSet::loadFromString — This factory method creates a set from a string
  • QuickHashIntSet::saveToFile — This method stores an in-memory set to disk
  • QuickHashIntSet::saveToString — This method returns a serialized version of the set


This method adds a new entry to the set

  • « QuickHashIntSet
  • QuickHashIntSet::__construct »
  • PHP Manual
  • QuickHashIntSet
  • This method adds a new entry to the set

QuickHashIntSet::add

(PECL quickhash >= Unknown)

QuickHashIntSet::add — This method adds a new entry to the set

Описание

public QuickHashIntSet::add ( int $key ) : bool

This method adds a new entry to the set, and returns whether the entry was added. Entries are by default always added unless QuickHashIntSet::CHECK_FOR_DUPES has been passed when the set was created.

Список параметров

key

The key of the entry to add.

Возвращаемые значения

TRUE when the entry was added, and FALSE if the entry was not added.

Примеры

Пример #1 QuickHashIntSet::add() example

<?php
echo "without dupe checking\n";
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );

echo "\nwith dupe checking\n";
$set = new QuickHashIntSet( 1024, QuickHashIntSet::CHECK_FOR_DUPES );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

without dupe checking
bool(false)
bool(true)
bool(true)
bool(true)

with dupe checking
bool(false)
bool(true)
bool(true)
bool(false)


Creates a new QuickHashIntSet object

  • « QuickHashIntSet::add
  • QuickHashIntSet::delete »
  • PHP Manual
  • QuickHashIntSet
  • Creates a new QuickHashIntSet object

QuickHashIntSet::__construct

(PECL quickhash >= Unknown)

QuickHashIntSet::__construct — Creates a new QuickHashIntSet object

Описание

public QuickHashIntSet::__construct ( int $size [, int $options ] )

This constructor creates a new QuickHashIntSet. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Список параметров

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The options that you can pass in are: QuickHashIntSet::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the set; QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager as well as one of QuickHashIntSet::HASHER_NO_HASH, QuickHashIntSet::HASHER_JENKINS1 or QuickHashIntSet::HASHER_JENKINS2. These last three configure which hashing algorithm to use. All options can be combined using bitmasks.

Возвращаемые значения

Returns a new QuickHashIntSet object.

Примеры

Пример #1 QuickHashIntSet::__construct() example

<?php
var_dump( new QuickHashIntSet( 1024 ) );
var_dump( new QuickHashIntSet( 1024, QuickHashIntSet::CHECK_FOR_DUPES ) );
var_dump(
    new QuickHashIntSet(
        1024,
        QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC | QuickHashIntSet::HASHER_JENKINS2
    )
);
?>


This method deletes an entry from the set

  • « QuickHashIntSet::__construct
  • QuickHashIntSet::exists »
  • PHP Manual
  • QuickHashIntSet
  • This method deletes an entry from the set

QuickHashIntSet::delete

(PECL quickhash >= Unknown)

QuickHashIntSet::delete — This method deletes an entry from the set

Описание

public QuickHashIntSet::delete ( int $key ) : bool

This method deletes an entry from the set, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the set itself is freed.

Список параметров

key

The key of the entry to delete.

Возвращаемые значения

TRUE when the entry was deleted, and FALSE if the entry was not deleted.

Примеры

Пример #1 QuickHashIntSet::delete() example

<?php
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->delete( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->delete( 4 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


This method checks whether a key is part of the set

  • « QuickHashIntSet::delete
  • QuickHashIntSet::getSize »
  • PHP Manual
  • QuickHashIntSet
  • This method checks whether a key is part of the set

QuickHashIntSet::exists

(PECL quickhash >= Unknown)

QuickHashIntSet::exists — This method checks whether a key is part of the set

Описание

public QuickHashIntSet::exists ( int $key ) : bool

This method checks whether an entry with the provided key exists in the set.

Список параметров

key

The key of the entry to check for whether it exists in the set.

Возвращаемые значения

Returns TRUE when the entry was found, or FALSE when the entry is not found.

Примеры

Пример #1 QuickHashIntSet::exists() example

<?php
//generate 200000 elements
$array = range( 0, 199999 );
$existingEntries = array_rand( array_flip( $array ), 180000 );
$testForEntries = array_rand( array_flip( $array ), 1000 );
$foundCount = 0;

echo "Creating set: ", microtime( true ), "\n";
$set = new QuickHashIntSet( 100000 );
echo "Adding elements: ", microtime( true ), "\n";
foreach( $existingEntries as $key )
{
     $set->add( $key );
}

echo "Doing 1000 tests: ", microtime( true ), "\n";
foreach( $testForEntries as $key )
{
     $foundCount += $set->exists( $key );
}
echo "Done, $foundCount found: ", microtime( true ), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Creating set: 1263588703.0748
Adding elements: 1263588703.0757
Doing 1000 tests: 1263588703.7851
Done, 898 found: 1263588703.7897


Returns the number of elements in the set

  • « QuickHashIntSet::exists
  • QuickHashIntSet::loadFromFile »
  • PHP Manual
  • QuickHashIntSet
  • Returns the number of elements in the set

QuickHashIntSet::getSize

(PECL quickhash >= Unknown)

QuickHashIntSet::getSize — Returns the number of elements in the set

Описание

publicQuickHashIntSet::getSize ( void ) : int

Returns the number of elements in the set.

Список параметров

key

The key of the entry to add.

Возвращаемые значения

The number of elements in the set.

Примеры

Пример #1 QuickHashIntSet::getSize() example

<?php
$set = new QuickHashIntSet( 8 );
var_dump( $set->add( 2 ) );
var_dump( $set->add( 3 ) );
var_dump( $set->getSize() );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
int(2)


This factory method creates a set from a file

  • « QuickHashIntSet::getSize
  • QuickHashIntSet::loadFromString »
  • PHP Manual
  • QuickHashIntSet
  • This factory method creates a set from a file

QuickHashIntSet::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntSet::loadFromFile — This factory method creates a set from a file

Описание

public static QuickHashIntSet::loadFromFile ( string $filename [, int $size [, int $options ]] ) : QuickHashIntSet

This factory method creates a new set from a definition file on disk. The file format consists of 32 bit signed integers packed together in the Endianness that the system that the code runs on uses.

Список параметров

filename

The filename of the file to read the set from.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the set, rounded up to the nearest power of two with a maximum limit of 4194304.

Возвращаемые значения

Returns a new QuickHashIntSet.

Примеры

Пример #1 QuickHashIntSet::loadFromFile() example

<?php
$file = dirname( __FILE__ ) . "/simple.set";
$set = QuickHashIntSet::loadFromFile(
    $file,
    QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $set->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Результатом выполнения данного примера будет что-то подобное:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This factory method creates a set from a string

  • « QuickHashIntSet::loadFromFile
  • QuickHashIntSet::saveToFile »
  • PHP Manual
  • QuickHashIntSet
  • This factory method creates a set from a string

QuickHashIntSet::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntSet::loadFromString — This factory method creates a set from a string

Описание

public static QuickHashIntSet::loadFromString ( string $contents [, int $size [, int $options ]] ) : QuickHashIntSet

This factory method creates a new set from a definition in a string. The file format consists of 32 bit signed integers packed together in the Endianness that the system that the code runs on uses.

Список параметров

contents

The string containing a serialized format of the set.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the set, rounded up to the nearest power of two automatically limited from 64 to 4194304.

Возвращаемые значения

Returns a new QuickHashIntSet.

Примеры

Пример #1 QuickHashIntSet::loadFromString() example

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.set" );
$set = QuickHashIntSet::loadFromString(
    $contents,
    QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $set->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Результатом выполнения данного примера будет что-то подобное:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This method stores an in-memory set to disk

  • « QuickHashIntSet::loadFromString
  • QuickHashIntSet::saveToString »
  • PHP Manual
  • QuickHashIntSet
  • This method stores an in-memory set to disk

QuickHashIntSet::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntSet::saveToFile — This method stores an in-memory set to disk

Описание

public QuickHashIntSet::saveToFile ( string $filename ) : void

This method stores an existing set to a file on disk, in the same format that loadFromFile() can read.

Список параметров

filename

The filename of the file to store the hash in.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 QuickHashIntSet::saveToFile() example

<?php
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );

$set->saveToFile( '/tmp/test.set' );
?>


This method returns a serialized version of the set

  • « QuickHashIntSet::saveToFile
  • QuickHashIntHash »
  • PHP Manual
  • QuickHashIntSet
  • This method returns a serialized version of the set

QuickHashIntSet::saveToString

(PECL quickhash >= Unknown)

QuickHashIntSet::saveToString — This method returns a serialized version of the set

Описание

public QuickHashIntSet::saveToString ( void ) : string

This method returns a serialized version of the set in the same format that loadFromString() can read.

Возвращаемые значения

This method returns a string containing a serialized format of the set. Each element is stored as a four byte value in the Endianness that the current system uses.

Примеры

Пример #1 QuickHashIntSet::saveToString() example

<?php
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );

var_dump( $set->saveToString() );
?>


Класс QuickHashIntHash

(PECL quickhash >= Unknown)

Введение

Класс-обертка для хеш-таблицы с ключами и значениями, являющимися целыми числами. Также реализует интерфейс ArrayAccess.

Классом реализуется интерфейс Iterator, что дает возможность перебора с помощью foreach. Порядок следования элементов не гарантируется.

Обзор классов

QuickHashIntHash {
/* Константы */
const integer CHECK_FOR_DUPES = 1 ;
const integer DO_NOT_USE_ZEND_ALLOC = 2 ;
const integer HASHER_NO_HASH = 256 ;
const integer HASHER_JENKINS1 = 512 ;
const integer HASHER_JENKINS2 = 1024 ;
/* Методы */
public add ( int $key [, int $value ] ) : bool
public __construct ( int $size [, int $options ] )
public delete ( int $key ) : bool
public exists ( int $key ) : bool
public get ( int $key ) : int
public getSize ( void ) : int
public static loadFromFile ( string $filename [, int $options ] ) : QuickHashIntHash
public static loadFromString ( string $contents [, int $options ] ) : QuickHashIntHash
public saveToFile ( string $filename ) : void
public saveToString ( void ) : string
public set ( int $key , int $value ) : bool
public update ( int $key , int $value ) : bool
}

Предопределенные константы

QuickHashIntHash::CHECK_FOR_DUPES

Если включено, то добавление повторяющихся элементов в набор (с помощью add() или loadFromFile()) приведет к отбрасыванию этих элементов. Этот функционал несколько замедляет работу, так что должен использоваться только если действительно необходим.

QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC

Запрещает использование встроенного в PHP менеджера памяти для внутренних структур. Если включена эта опция, то используемая память не будет учитываться настройкой memory_limit.

QuickHashIntHash::HASHER_NO_HASH

Указывает, что не нужно использовать функцию хеширования, а вместо нее, для поиска индекса в цепочке, использовать модуль. Это не быстрее обычного хеширования и порождает больше коллизий.

QuickHashIntHash::HASHER_JENKINS1

Хеширующая функция по умолчанию.

QuickHashIntHash::HASHER_JENKINS2

Другой хеширующий алгоритм.

Содержание

  • QuickHashIntHash::add — This method adds a new entry to the hash
  • QuickHashIntHash::__construct — Creates a new QuickHashIntHash object
  • QuickHashIntHash::delete — This method deletes am entry from the hash
  • QuickHashIntHash::exists — This method checks whether a key is part of the hash
  • QuickHashIntHash::get — This method retrieves a value from the hash by its key
  • QuickHashIntHash::getSize — Returns the number of elements in the hash
  • QuickHashIntHash::loadFromFile — This factory method creates a hash from a file
  • QuickHashIntHash::loadFromString — This factory method creates a hash from a string
  • QuickHashIntHash::saveToFile — This method stores an in-memory hash to disk
  • QuickHashIntHash::saveToString — This method returns a serialized version of the hash
  • QuickHashIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  • QuickHashIntHash::update — This method updates an entry in the hash with a new value


This method adds a new entry to the hash

  • « QuickHashIntHash
  • QuickHashIntHash::__construct »
  • PHP Manual
  • QuickHashIntHash
  • This method adds a new entry to the hash

QuickHashIntHash::add

(PECL quickhash >= Unknown)

QuickHashIntHash::add — This method adds a new entry to the hash

Описание

public QuickHashIntHash::add ( int $key [, int $value ] ) : bool

This method adds a new entry to the hash, and returns whether the entry was added. Entries are by default always added unless QuickHashIntHash::CHECK_FOR_DUPES has been passed when the hash was created.

Список параметров

key

The key of the entry to add.

value

The optional value of the entry to add. If no value is specified, 1 will be used.

Возвращаемые значения

TRUE when the entry was added, and FALSE if the entry was not added.

Примеры

Пример #1 QuickHashIntHash::add() example

<?php
echo "without dupe checking\n";
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 22 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 12 ) );

echo "\nwith dupe checking\n";
$hash = new QuickHashIntHash( 1024, QuickHashIntHash::CHECK_FOR_DUPES );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 78 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 9 ) );

echo "\ndefault value\n";
var_dump( $hash->add( 5 ) );
var_dump( $hash->get( 5 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

without dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
int(22)
bool(true)

with dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
int(78)
bool(false)

default value
bool(true)
int(1)


Creates a new QuickHashIntHash object

  • « QuickHashIntHash::add
  • QuickHashIntHash::delete »
  • PHP Manual
  • QuickHashIntHash
  • Creates a new QuickHashIntHash object

QuickHashIntHash::__construct

(PECL quickhash >= Unknown)

QuickHashIntHash::__construct — Creates a new QuickHashIntHash object

Описание

public QuickHashIntHash::__construct ( int $size [, int $options ] )

This constructor creates a new QuickHashIntHash. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Список параметров

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 64 to 4194304.

options

The options that you can pass in are: QuickHashIntHash::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the hash; QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager as well as one of QuickHashIntHash::HASHER_NO_HASH, QuickHashIntHash::HASHER_JENKINS1 or QuickHashIntHash::HASHER_JENKINS2. These last three configure which hashing algorithm to use. All options can be combined using bitmasks.

Возвращаемые значения

Returns a new QuickHashIntHash object.

Примеры

Пример #1 QuickHashIntHash::__construct() example

<?php
var_dump( new QuickHashIntHash( 1024 ) );
var_dump( new QuickHashIntHash( 1024, QuickHashIntHash::CHECK_FOR_DUPES ) );
var_dump(
    new QuickHashIntHash(
        1024,
        QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC | QuickHashIntHash::HASHER_JENKINS2
    )
);
?>


This method deletes am entry from the hash

  • « QuickHashIntHash::__construct
  • QuickHashIntHash::exists »
  • PHP Manual
  • QuickHashIntHash
  • This method deletes am entry from the hash

QuickHashIntHash::delete

(PECL quickhash >= Unknown)

QuickHashIntHash::delete — This method deletes am entry from the hash

Описание

public QuickHashIntHash::delete ( int $key ) : bool

This method deletes an entry from the hash, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the hash itself is freed.

Elements can not be deleted when the hash is used in an iterator. The method will not throw an exception, but simply return FALSE like would happen with any other deletion failure.

Список параметров

key

The key of the entry to delete.

Возвращаемые значения

TRUE when the entry was deleted, and FALSE if the entry was not deleted.

Примеры

Пример #1 QuickHashIntHash::delete() example

<?php
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 5 ) );
var_dump( $hash->delete( 4 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->delete( 4 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


This method checks whether a key is part of the hash

  • « QuickHashIntHash::delete
  • QuickHashIntHash::get »
  • PHP Manual
  • QuickHashIntHash
  • This method checks whether a key is part of the hash

QuickHashIntHash::exists

(PECL quickhash >= Unknown)

QuickHashIntHash::exists — This method checks whether a key is part of the hash

Описание

public QuickHashIntHash::exists ( int $key ) : bool

This method checks whether an entry with the provided key exists in the hash.

Список параметров

key

The key of the entry to check for whether it exists in the hash.

Возвращаемые значения

Returns TRUE when the entry was found, or FALSE when the entry is not found.

Примеры

Пример #1 QuickHashIntHash::exists() example

<?php
//generate 200000 elements
$array = range( 0, 199999 );
$existingEntries = array_rand( array_flip( $array ), 180000 );
$testForEntries = array_rand( array_flip( $array ), 1000 );
$foundCount = 0;

echo "Creating hash: ", microtime( true ), "\n";
$hash = new QuickHashIntHash( 100000 );
echo "Adding elements: ", microtime( true ), "\n";
foreach( $existingEntries as $key )
{
     $hash->add( $key, 56 );
}

echo "Doing 1000 tests: ", microtime( true ), "\n";
foreach( $testForEntries as $key )
{
     $foundCount += $hash->exists( $key );
}
echo "Done, $foundCount found: ", microtime( true ), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Creating hash: 1263588703.0748
Adding elements: 1263588703.0757
Doing 1000 tests: 1263588703.7851
Done, 898 found: 1263588703.7897


This method retrieves a value from the hash by its key

  • « QuickHashIntHash::exists
  • QuickHashIntHash::getSize »
  • PHP Manual
  • QuickHashIntHash
  • This method retrieves a value from the hash by its key

QuickHashIntHash::get

(PECL quickhash >= Unknown)

QuickHashIntHash::get — This method retrieves a value from the hash by its key

Описание

public QuickHashIntHash::get ( int $key ) : int

This method retrieves a value from the hash by its key.

Список параметров

key

The key of the entry to add.

Возвращаемые значения

The value if the key exists, or NULL if the key wasn't part of the hash.

Примеры

Пример #1 QuickHashIntHash::get() example

<?php
$hash = new QuickHashIntHash( 8 );
var_dump( $hash->get( 1 ) );

var_dump( $hash->add( 2 ) );
var_dump( $hash->get( 2 ) );

var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->get( 3 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)
int(1)
bool(true)
int(5)


Returns the number of elements in the hash

  • « QuickHashIntHash::get
  • QuickHashIntHash::loadFromFile »
  • PHP Manual
  • QuickHashIntHash
  • Returns the number of elements in the hash

QuickHashIntHash::getSize

(PECL quickhash >= Unknown)

QuickHashIntHash::getSize — Returns the number of elements in the hash

Описание

public QuickHashIntHash::getSize ( void ) : int

Returns the number of elements in the hash.

Список параметров

key

The key of the entry to add.

Возвращаемые значения

The number of elements in the hash.

Примеры

Пример #1 QuickHashIntHash::getSize() example

<?php
$hash = new QuickHashIntHash( 8 );
var_dump( $hash->add( 2 ) );
var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->getSize() );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
int(2)


This factory method creates a hash from a file

  • « QuickHashIntHash::getSize
  • QuickHashIntHash::loadFromString »
  • PHP Manual
  • QuickHashIntHash
  • This factory method creates a hash from a file

QuickHashIntHash::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntHash::loadFromFile — This factory method creates a hash from a file

Описание

public static QuickHashIntHash::loadFromFile ( string $filename [, int $options ] ) : QuickHashIntHash

This factory method creates a new hash from a definition file on disk. The file format consists of a signature 'QH\0x11\0', the number of elements as a 32 bit signed integer in system Endianness, followed by 32 bit signed integers packed together in the Endianness that the system that the code runs on uses. For each hash element there are two 32 bit signed integers stored. The first of each element is the key, and the second is the value belonging to the key. An example could be:

Пример #1 QuickHash IntHash file format

00000000  51 48 11 00 02 00 00 00  01 00 00 00 01 00 00 00  |QH..............|
00000010  03 00 00 00 09 00 00 00                           |........|
00000018

Пример #2 QuickHash IntHash file format

header signature ('QH'; key type: 1; value type: 1; filler: \0x00)
00000000  51 48 11 00

number of elements:
00000004  02 00 00 00

data string:
00000000  01 00 00 00 01 00 00 00  03 00 00 00 09 00 00 00

key/value 1 (key = 1, value = 1)
01 00 00 00  01 00 00 00

key/value 2 (key = 3, value = 9)
03 00 00 00  09 00 00 00

Список параметров

filename

The filename of the file to read the hash from.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Возвращаемые значения

Returns a new QuickHashIntHash.

Примеры

Пример #3 QuickHashIntHash::loadFromFile() example

<?php
$file = dirname( __FILE__ ) . "/simple.hash";
$hash = QuickHashIntHash::loadFromFile(
    $file,
    QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $hash->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Результатом выполнения данного примера будет что-то подобное:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This factory method creates a hash from a string

  • « QuickHashIntHash::loadFromFile
  • QuickHashIntHash::saveToFile »
  • PHP Manual
  • QuickHashIntHash
  • This factory method creates a hash from a string

QuickHashIntHash::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntHash::loadFromString — This factory method creates a hash from a string

Описание

public static QuickHashIntHash::loadFromString ( string $contents [, int $options ] ) : QuickHashIntHash

This factory method creates a new hash from a definition in a string. The file format consists of 32 bit signed integers packed together in the Endianness that the system that the code runs on uses. For each element there are two 32 bit signed integers stored. The first of each element is the key, and the second is the value belonging to the key.

Список параметров

contents

The string containing a serialized format of the hash.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Возвращаемые значения

Returns a new QuickHashIntHash.

Примеры

Пример #1 QuickHashIntHash::loadFromString() example

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.hash" );
$hash = QuickHashIntHash::loadFromString(
    $contents,
    QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $hash->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Результатом выполнения данного примера будет что-то подобное:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This method stores an in-memory hash to disk

  • « QuickHashIntHash::loadFromString
  • QuickHashIntHash::saveToString »
  • PHP Manual
  • QuickHashIntHash
  • This method stores an in-memory hash to disk

QuickHashIntHash::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntHash::saveToFile — This method stores an in-memory hash to disk

Описание

public QuickHashIntHash::saveToFile ( string $filename ) : void

This method stores an existing hash to a file on disk, in the same format that loadFromFile() can read.

Список параметров

filename

The filename of the file to store the hash in.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 QuickHashIntHash::saveToFile() example

<?php
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 43 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 52 ) );

$hash->saveToFile( '/tmp/test.hash' );
?>


This method returns a serialized version of the hash

  • « QuickHashIntHash::saveToFile
  • QuickHashIntHash::set »
  • PHP Manual
  • QuickHashIntHash
  • This method returns a serialized version of the hash

QuickHashIntHash::saveToString

(PECL quickhash >= Unknown)

QuickHashIntHash::saveToString — This method returns a serialized version of the hash

Описание

public QuickHashIntHash::saveToString ( void ) : string

This method returns a serialized version of the hash in the same format that loadFromString() can read.

Возвращаемые значения

This method returns a string containing a serialized format of the hash. Each element is stored as a four byte value in the Endianness that the current system uses.

Примеры

Пример #1 QuickHashIntHash::saveToString() example

<?php
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 34 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 55 ) );

var_dump( $hash->saveToString() );
?>


This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

  • « QuickHashIntHash::saveToString
  • QuickHashIntHash::update »
  • PHP Manual
  • QuickHashIntHash
  • This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

QuickHashIntHash::set

(PECL quickhash >= Unknown)

QuickHashIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

Описание

public QuickHashIntHash::set ( int $key , int $value ) : bool

This method tries to update an entry with a new value. In case the entry did not yet exist, it will instead add a new entry. It returns whether the entry was added or update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Список параметров

key

The key of the entry to add or update.

value

The new value to set the entry with.

Возвращаемые значения

2 if the entry was found and updated, 1 if the entry was newly added or 0 if there was an error.

Примеры

Пример #1 QuickHashIntHash::set() example

<?php
$hash = new QuickHashIntHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( 46692 ) );
var_dump( $hash->set( 46692, 16091 ) );
var_dump( $hash->get( 46692 ) );

echo "Set->Update\n";
var_dump( $hash->set( 46692, 29906 ) );
var_dump( $hash->get( 46692 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
int(2)
int(16091)
Set->Update
int(1)
int(29906)


This method updates an entry in the hash with a new value

  • « QuickHashIntHash::set
  • QuickHashStringIntHash »
  • PHP Manual
  • QuickHashIntHash
  • This method updates an entry in the hash with a new value

QuickHashIntHash::update

(PECL quickhash >= Unknown)

QuickHashIntHash::update — This method updates an entry in the hash with a new value

Описание

public QuickHashIntHash::update ( int $key , int $value ) : bool

This method updates an entry with a new value, and returns whether the entry was update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Список параметров

key

The key of the entry to add.

value

The new value to update the entry with.

Возвращаемые значения

TRUE when the entry was found and updated, and FALSE if the entry was not part of the hash already.

Примеры

Пример #1 QuickHashIntHash::update() example

<?php
$hash = new QuickHashIntHash( 1024 );

var_dump( $hash->add( 141421, 173205 ) );
var_dump( $hash->update( 141421, 223606 ) );
var_dump( $hash->get( 141421 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
int(223606)


Класс QuickHashStringIntHash

(Информация о версии неизвестна, возможно, только в Git)

Введение

Класс-обертка для хеш-таблицы со строковыми ключами и значениями, являющимися целыми числами. Также реализует интерфейс ArrayAccess.

Классом реализуется интерфейс Iterator, что дает возможность перебора с помощью foreach. Порядок следования элементов не гарантируется.

Обзор классов

QuickHashStringIntHash {
/* Константы */
const integer CHECK_FOR_DUPES = 1 ;
const integer DO_NOT_USE_ZEND_ALLOC = 2 ;
/* Методы */
public add ( string $key , int $value ) : bool
public __construct ( int $size [, int $options = 0 ] )
public delete ( string $key ) : bool
public exists ( string $key ) : bool
public get ( string $key ) : mixed
public getSize ( void ) : int
public static loadFromFile ( string $filename [, int $size = 0 [, int $options = 0 ]] ) : QuickHashStringIntHash
public static loadFromString ( string $contents [, int $size = 0 [, int $options = 0 ]] ) : QuickHashStringIntHash
public saveToFile ( string $filename ) : void
public saveToString ( void ) : string
public set ( string $key , int $value ) : int
public update ( string $key , int $value ) : bool
}

Предопределенные константы

QuickHashIntHash::CHECK_FOR_DUPES

Если включено, то добавление повторяющихся элементов в набор (с помощью add() или loadFromFile()) приведет к отбрасыванию этих элементов. Этот функционал несколько замедляет работу, так что должен использоваться только если действительно необходим.

QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC

Запрещает использование встроенного в PHP менеджера памяти для внутренних структур. Если включена эта опция, то используемая память не будет учитываться настройкой memory_limit.

Содержание

  • QuickHashStringIntHash::add — This method adds a new entry to the hash
  • QuickHashStringIntHash::__construct — Creates a new QuickHashStringIntHash object
  • QuickHashStringIntHash::delete — This method deletes am entry from the hash
  • QuickHashStringIntHash::exists — This method checks whether a key is part of the hash
  • QuickHashStringIntHash::get — This method retrieves a value from the hash by its key
  • QuickHashStringIntHash::getSize — Returns the number of elements in the hash
  • QuickHashStringIntHash::loadFromFile — This factory method creates a hash from a file
  • QuickHashStringIntHash::loadFromString — This factory method creates a hash from a string
  • QuickHashStringIntHash::saveToFile — This method stores an in-memory hash to disk
  • QuickHashStringIntHash::saveToString — This method returns a serialized version of the hash
  • QuickHashStringIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  • QuickHashStringIntHash::update — This method updates an entry in the hash with a new value


This method adds a new entry to the hash

  • « QuickHashStringIntHash
  • QuickHashStringIntHash::__construct »
  • PHP Manual
  • QuickHashStringIntHash
  • This method adds a new entry to the hash

QuickHashStringIntHash::add

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::add — This method adds a new entry to the hash

Описание

public QuickHashStringIntHash::add ( string $key , int $value ) : bool

This method adds a new entry to the hash, and returns whether the entry was added. Entries are by default always added unless QuickHashStringIntHash::CHECK_FOR_DUPES has been passed when the hash was created.

Список параметров

key

The key of the entry to add.

value

The value of the entry to add.

Возвращаемые значения

TRUE when the entry was added, and FALSE if the entry was not added.

Примеры

Пример #1 QuickHashStringIntHash::add() example

<?php
echo "without dupe checking\n";
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 22 ) );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 12 ) );

echo "\nwith dupe checking\n";
$hash = new QuickHashStringIntHash( 1024, QuickHashStringIntHash::CHECK_FOR_DUPES );
var_dump( $hash );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 78 ) );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 9 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

without dupe checking
object(QuickHashStringIntHash)#1 (0) {
}
bool(false)
bool(false)
bool(true)
bool(true)
int(22)
bool(true)

with dupe checking
object(QuickHashStringIntHash)#2 (0) {
}
bool(false)
bool(false)
bool(true)
bool(true)
int(78)
bool(false)


Creates a new QuickHashStringIntHash object

  • « QuickHashStringIntHash::add
  • QuickHashStringIntHash::delete »
  • PHP Manual
  • QuickHashStringIntHash
  • Creates a new QuickHashStringIntHash object

QuickHashStringIntHash::__construct

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::__construct — Creates a new QuickHashStringIntHash object

Описание

public QuickHashStringIntHash::__construct ( int $size [, int $options = 0 ] )

This constructor creates a new QuickHashStringIntHash. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Список параметров

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 64 to 4194304.

options

The options that you can pass in are: QuickHashStringIntHash::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the hash and QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager.

Возвращаемые значения

Returns a new QuickHashStringIntHash object.

Примеры

Пример #1 QuickHashStringIntHash::__construct() example

<?php
var_dump( new QuickHashStringIntHash( 1024 ) );
var_dump( new QuickHashStringIntHash( 1024, QuickHashStringIntHash::CHECK_FOR_DUPES ) );
?>


This method deletes am entry from the hash

  • « QuickHashStringIntHash::__construct
  • QuickHashStringIntHash::exists »
  • PHP Manual
  • QuickHashStringIntHash
  • This method deletes am entry from the hash

QuickHashStringIntHash::delete

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::delete — This method deletes am entry from the hash

Описание

public QuickHashStringIntHash::delete ( string $key ) : bool

This method deletes an entry from the hash, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the hash itself is freed.

Elements can not be deleted when the hash is used in an iterator. The method will not throw an exception, but simply return FALSE like would happen with any other deletion failure.

Список параметров

key

The key of the entry to delete.

Возвращаемые значения

TRUE when the entry was deleted, and FALSE if the entry was not deleted.

Примеры

Пример #1 QuickHashStringIntHash::delete() example

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->exists( 'four' ) );
var_dump( $hash->add( 'four', 5 ) );
var_dump( $hash->get( 'four' ) );
var_dump( $hash->delete( 'four' ) );
var_dump( $hash->exists( 'four' ) );
var_dump( $hash->get( 'four' ) );
var_dump( $hash->delete( 'four' ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)
int(5)
bool(true)
bool(false)
bool(false)
bool(false)


This method checks whether a key is part of the hash

  • « QuickHashStringIntHash::delete
  • QuickHashStringIntHash::get »
  • PHP Manual
  • QuickHashStringIntHash
  • This method checks whether a key is part of the hash

QuickHashStringIntHash::exists

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::exists — This method checks whether a key is part of the hash

Описание

public QuickHashStringIntHash::exists ( string $key ) : bool

This method checks whether an entry with the provided key exists in the hash.

Список параметров

key

The key of the entry to check for whether it exists in the hash.

Возвращаемые значения

Returns TRUE when the entry was found, or FALSE when the entry is not found.


This method retrieves a value from the hash by its key

  • « QuickHashStringIntHash::exists
  • QuickHashStringIntHash::getSize »
  • PHP Manual
  • QuickHashStringIntHash
  • This method retrieves a value from the hash by its key

QuickHashStringIntHash::get

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::get — This method retrieves a value from the hash by its key

Описание

public QuickHashStringIntHash::get ( string $key ) : mixed

This method retrieves a value from the hash by its key.

Список параметров

key

The key of the entry to add.

Возвращаемые значения

The value if the key exists, or NULL if the key wasn't part of the hash.

Примеры

Пример #1 QuickHashStringIntHash::get() example

<?php
$hash = new QuickHashStringIntHash( 8 );
var_dump( $hash->get( "one" ) );

var_dump( $hash->add( "two", 2 ) );
var_dump( $hash->get( "two" ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)
int(2)


Returns the number of elements in the hash

  • « QuickHashStringIntHash::get
  • QuickHashStringIntHash::loadFromFile »
  • PHP Manual
  • QuickHashStringIntHash
  • Returns the number of elements in the hash

QuickHashStringIntHash::getSize

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::getSize — Returns the number of elements in the hash

Описание

public QuickHashStringIntHash::getSize ( void ) : int

Returns the number of elements in the hash.

Список параметров

key

The key of the entry to add.

Возвращаемые значения

The number of elements in the hash.

Примеры

Пример #1 QuickHashStringIntHash::getSize() example

<?php
$hash = new QuickHashStringIntHash( 8 );
var_dump( $hash->add( "two", 2 ) );
var_dump( $hash->add( "three", 5 ) );
var_dump( $hash->getSize() );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
int(2)


This factory method creates a hash from a file

  • « QuickHashStringIntHash::getSize
  • QuickHashStringIntHash::loadFromString »
  • PHP Manual
  • QuickHashStringIntHash
  • This factory method creates a hash from a file

QuickHashStringIntHash::loadFromFile

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::loadFromFile — This factory method creates a hash from a file

Описание

public static QuickHashStringIntHash::loadFromFile ( string $filename [, int $size = 0 [, int $options = 0 ]] ) : QuickHashStringIntHash

This factory method creates a new hash from a definition file on disk. The file format consists of a signature 'QH\0x21\0', the number of elements as a 32 bit signed integer in system Endianness, an unsigned 32 bit integer containing the number of element data to follow in characters. This element data contains all the strings. The follows another signed 32 bit integer containing the number of bucket lists. After the header and the strings, the elements follow. They are ordered by bucket list so that the keys don't have to be hashed in order to restore the hash. For each bucket list, the following information is stored (all as 32 bit integers): the bucket list index, the number of elements in that list, and then in pairs of two unsigned 32 bit integers the elements, where the first one is the index into the string list containing the keys, and the second one the value. An example could be:

Пример #1 QuickHash StringIntHash file format

00000000  51 48 21 00 02 00 00 00  09 00 00 00 40 00 00 00  |QH!.........@...|
00000010  4f 4e 45 00 4e 49 4e 45  00 07 00 00 00 01 00 00  |ONE.NINE........|
00000020  00 00 00 00 00 01 00 00  00 2f 00 00 00 01 00 00  |........./......|
00000030  00 04 00 00 00 03 00 00  00                       |.........|
00000039

Пример #2 QuickHash IntHash file format

header signature ('QH'; key type: 2; value type: 1; filler: \0x00)
00000000  51 48 21 00

number of elements:
00000004  02 00 00 00

length of string values (9 characters):
00000008  09 00 00 00

number of hash bucket lists (this is configured for hashes as argument to the
constructor normally, 64 in this case):
0000000C  40 00 00 00

string values:
00000010  4f 4e 45 00 4e 49 4e 45  00

bucket lists:
  bucket list 1 (with key 7, and 1 element):
    header:
    07 00 00 00 01 00 00 00
    elements (key index: 0 ('ONE'), value = 0):
    00 00 00 00 01 00 00 00
  bucket list 2 (with key 0x2f, and 1 element):
    header:
    2f 00 00 00 01 00 00 00
    elements (key index: 4 ('NINE'), value = 3):
    04 00 00 00 03 00 00 00

Список параметров

filename

The filename of the file to read the hash from.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is read from the file format (unlike the QuickHashIntHash and QuickHashIntStringHash classes, where it is automatically calculated from the number of entries in the hash.)

Возвращаемые значения

Returns a new QuickHashStringIntHash.

Примеры

Пример #3 QuickHashStringIntHash::loadFromFile() example

<?php
$file = dirname( __FILE__ ) . "/simple.hash.string";
$hash = QuickHashStringIntHash::loadFromFile(
    $file,
    QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    $i = 48712 + $key * 1631;
    $k = base_convert( $i, 10, 36 );
    echo $k, ' => ', $hash->get( $k ), "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

11l4 => 48712
12uf => 50343
143q => 51974
15d1 => 53605
16mc => 55236
17vn => 56867
194y => 58498
1ae9 => 60129
1bnk => 61760
1cwv => 63391
1e66 => 65022
1ffh => 66653
1gos => 68284
1hy3 => 69915
1j7e => 71546
1kgp => 73177


This factory method creates a hash from a string

  • « QuickHashStringIntHash::loadFromFile
  • QuickHashStringIntHash::saveToFile »
  • PHP Manual
  • QuickHashStringIntHash
  • This factory method creates a hash from a string

QuickHashStringIntHash::loadFromString

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::loadFromString — This factory method creates a hash from a string

Описание

public static QuickHashStringIntHash::loadFromString ( string $contents [, int $size = 0 [, int $options = 0 ]] ) : QuickHashStringIntHash

This factory method creates a new hash from a definition in a string. The format is the same as the one used in "loadFromFile".

Список параметров

contents

The string containing a serialized format of the hash.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Возвращаемые значения

Returns a new QuickHashStringIntHash.

Примеры

Пример #1 QuickHashStringIntHash::loadFromString() example

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.hash.string" );
$hash = QuickHashStringIntHash::loadFromString(
    $contents,
    QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    $i = 48712 + $key * 1631;
    $k = base_convert( $i, 10, 36 );
    echo $k, ' => ', $hash->get( $k ), "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

11l4 => 48712
12uf => 50343
143q => 51974
15d1 => 53605
16mc => 55236
17vn => 56867
194y => 58498
1ae9 => 60129
1bnk => 61760
1cwv => 63391
1e66 => 65022
1ffh => 66653
1gos => 68284
1hy3 => 69915
1j7e => 71546
1kgp => 73177


This method stores an in-memory hash to disk

  • « QuickHashStringIntHash::loadFromString
  • QuickHashStringIntHash::saveToString »
  • PHP Manual
  • QuickHashStringIntHash
  • This method stores an in-memory hash to disk

QuickHashStringIntHash::saveToFile

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::saveToFile — This method stores an in-memory hash to disk

Описание

public QuickHashStringIntHash::saveToFile ( string $filename ) : void

This method stores an existing hash to a file on disk, in the same format that loadFromFile() can read.

Список параметров

filename

The filename of the file to store the hash in.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 QuickHashStringIntHash::saveToFile() example

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->add( "fourty three", 42 ) );
var_dump( $hash->add( "fifty two", 52 ) );

$hash->saveToFile( '/tmp/test.hash.string' );
?>


This method returns a serialized version of the hash

  • « QuickHashStringIntHash::saveToFile
  • QuickHashStringIntHash::set »
  • PHP Manual
  • QuickHashStringIntHash
  • This method returns a serialized version of the hash

QuickHashStringIntHash::saveToString

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::saveToString — This method returns a serialized version of the hash

Описание

public QuickHashStringIntHash::saveToString ( void ) : string

This method returns a serialized version of the hash in the same format that loadFromString() can read.

Возвращаемые значения

This method returns a serialized format of an existing hash, in the same format that loadFromString() can read.

Примеры

Пример #1 QuickHashStringIntHash::saveToString() example

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->add( "fourty three", 42 ) );
var_dump( $hash->add( "fifty two", 52 ) );

var_dump( $hash->saveToString() );
?>


This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

  • « QuickHashStringIntHash::saveToString
  • QuickHashStringIntHash::update »
  • PHP Manual
  • QuickHashStringIntHash
  • This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

QuickHashStringIntHash::set

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

Описание

public QuickHashStringIntHash::set ( string $key , int $value ) : int

This method tries to update an entry with a new value. In case the entry did not yet exist, it will instead add a new entry. It returns whether the entry was added or update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashStringIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Список параметров

key

The key of the entry to add or update.

value

The value of the entry to add. If a non-string is passed, it will be converted to a string automatically if possible.

Возвращаемые значения

2 if the entry was found and updated, 1 if the entry was newly added or 0 if there was an error.

Примеры

Пример #1 QuickHashStringIntHash::set() example

<?php
$hash = new QuickHashStringIntHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( "fourty six thousand six hundred ninety two" ) );
var_dump( $hash->set( "fourty six thousand six hundred ninety two", 16091 ) );
var_dump( $hash->get( "fourty six thousand six hundred ninety two" ) );

echo "Set->Update\n";
var_dump( $hash->set( "fourty six thousand six hundred ninety two", 29906 ) );
var_dump( $hash->get( "fourty six thousand six hundred ninety two" ) );
?>

Результатом выполнения данного примера будет что-то подобное:

Set->Add
bool(false)
int(2)
int(16091)
Set->Update
int(1)
int(29906)


This method updates an entry in the hash with a new value

  • « QuickHashStringIntHash::set
  • QuickHashIntStringHash »
  • PHP Manual
  • QuickHashStringIntHash
  • This method updates an entry in the hash with a new value

QuickHashStringIntHash::update

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::update — This method updates an entry in the hash with a new value

Описание

public QuickHashStringIntHash::update ( string $key , int $value ) : bool

This method updates an entry with a new value, and returns whether the entry was update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashStringIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Список параметров

key

The key of the entry to add.

value

The new value for the entry. If a non-string is passed, it will be converted to a string automatically if possible.

Возвращаемые значения

TRUE when the entry was found and updated, and FALSE if the entry was not part of the hash already.

Примеры

Пример #1 QuickHashStringIntHash::update() example

<?php
$hash = new QuickHashStringIntHash( 1024 );

$hash->add( 'six', 314159265 );
$hash->add( "a lot", 314159265 );

echo $hash->get( 'six' ), "\n";
echo $hash->get( 'a lot' ), "\n";

var_dump( $hash->update( 'a lot', 314159266 ) );
var_dump( $hash->update( "a lot plus one", 314159999 ) );

echo $hash->get( 'six' ), "\n";
echo $hash->get( 'a lot' ), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

314159265
314159265
bool(true)
bool(false)
314159265
314159266


Класс QuickHashIntStringHash

(PECL quickhash >= Unknown)

Введение

Класс-обертка для хеш-таблицы с целочисленными ключами и значениями, являющимися строками. Также реализует интерфейс ArrayAccess.

Классом реализуется интерфейс Iterator, что дает возможность перебора с помощью foreach. Порядок следования элементов не гарантируется.

Обзор классов

QuickHashIntStringHash {
/* Константы */
const integer CHECK_FOR_DUPES = 1 ;
const integer DO_NOT_USE_ZEND_ALLOC = 2 ;
const integer HASHER_NO_HASH = 256 ;
const integer HASHER_JENKINS1 = 512 ;
const integer HASHER_JENKINS2 = 1024 ;
/* Методы */
public add ( int $key , string $value ) : bool
public __construct ( int $size [, int $options = 0 ] )
public delete ( int $key ) : bool
public exists ( int $key ) : bool
public get ( int $key ) : mixed
public getSize ( void ) : int
public static loadFromFile ( string $filename [, int $size = 0 [, int $options = 0 ]] ) : QuickHashIntStringHash
public static loadFromString ( string $contents [, int $size = 0 [, int $options = 0 ]] ) : QuickHashIntStringHash
public saveToFile ( string $filename ) : void
public saveToString ( void ) : string
public set ( int $key , string $value ) : int
public update ( int $key , string $value ) : bool
}

Предопределенные константы

QuickHashIntHash::CHECK_FOR_DUPES

Если включено, то добавление повторяющихся элементов в набор (с помощью add() или loadFromFile()) приведет к отбрасыванию этих элементов. Этот функционал несколько замедляет работу, так что должен использоваться только если действительно необходим.

QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC

Запрещает использование встроенного в PHP менеджера памяти для внутренних структур. Если включена эта опция, то используемая память не будет учитываться настройкой memory_limit.

QuickHashIntHash::HASHER_NO_HASH

Указывает, что не нужно использовать функцию хеширования, а вместо нее, для поиска индекса в цепочке, использовать модуль. Это не быстрее обычного хеширования и порождает больше коллизий.

QuickHashIntHash::HASHER_JENKINS1

Хеширующая функция по умолчанию.

QuickHashIntHash::HASHER_JENKINS2

Другой хеширующий алгоритм.

Содержание

  • QuickHashIntStringHash::add — This method adds a new entry to the hash
  • QuickHashIntStringHash::__construct — Creates a new QuickHashIntStringHash object
  • QuickHashIntStringHash::delete — This method deletes am entry from the hash
  • QuickHashIntStringHash::exists — This method checks whether a key is part of the hash
  • QuickHashIntStringHash::get — This method retrieves a value from the hash by its key
  • QuickHashIntStringHash::getSize — Returns the number of elements in the hash
  • QuickHashIntStringHash::loadFromFile — This factory method creates a hash from a file
  • QuickHashIntStringHash::loadFromString — This factory method creates a hash from a string
  • QuickHashIntStringHash::saveToFile — This method stores an in-memory hash to disk
  • QuickHashIntStringHash::saveToString — This method returns a serialized version of the hash
  • QuickHashIntStringHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  • QuickHashIntStringHash::update — This method updates an entry in the hash with a new value


This method adds a new entry to the hash

  • « QuickHashIntStringHash
  • QuickHashIntStringHash::__construct »
  • PHP Manual
  • QuickHashIntStringHash
  • This method adds a new entry to the hash

QuickHashIntStringHash::add

(PECL quickhash >= Unknown)

QuickHashIntStringHash::add — This method adds a new entry to the hash

Описание

public QuickHashIntStringHash::add ( int $key , string $value ) : bool

This method adds a new entry to the hash, and returns whether the entry was added. Entries are by default always added unless QuickHashIntStringHash::CHECK_FOR_DUPES has been passed when the hash was created.

Список параметров

key

The key of the entry to add.

value

The value of the entry to add. If a non-string is passed, it will be converted to a string automatically if possible.

Возвращаемые значения

TRUE when the entry was added, and FALSE if the entry was not added.

Примеры

Пример #1 QuickHashIntStringHash::add() example

<?php
echo "without dupe checking\n";
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "twenty two" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "twelve" ) );

echo "\nwith dupe checking\n";
$hash = new QuickHashIntStringHash( 1024, QuickHashIntStringHash::CHECK_FOR_DUPES );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "seventy eight" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "nine" ) );
?>

Результатом выполнения данного примера будет что-то подобное:

without dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
string(10) "twenty two"
bool(true)

with dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
string(13) "seventy eight"
bool(false)


Creates a new QuickHashIntStringHash object

  • « QuickHashIntStringHash::add
  • QuickHashIntStringHash::delete »
  • PHP Manual
  • QuickHashIntStringHash
  • Creates a new QuickHashIntStringHash object

QuickHashIntStringHash::__construct

(PECL quickhash >= Unknown)

QuickHashIntStringHash::__construct — Creates a new QuickHashIntStringHash object

Описание

public QuickHashIntStringHash::__construct ( int $size [, int $options = 0 ] )

This constructor creates a new QuickHashIntStringHash. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Список параметров

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 64 to 4194304.

options

The options that you can pass in are: QuickHashIntStringHash::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the hash; QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager as well as one of QuickHashIntStringHash::HASHER_NO_HASH, QuickHashIntStringHash::HASHER_JENKINS1 or QuickHashIntStringHash::HASHER_JENKINS2. These last three configure which hashing algorithm to use. All options can be combined using bitmasks.

Возвращаемые значения

Returns a new QuickHashIntStringHash object.

Примеры

Пример #1 QuickHashIntStringHash::__construct() example

<?php
var_dump( new QuickHashIntStringHash( 1024 ) );
var_dump( new QuickHashIntStringHash( 1024, QuickHashIntStringHash::CHECK_FOR_DUPES ) );
var_dump(
    new QuickHashIntStringHash(
        1024,
        QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC | QuickHashIntStringHash::HASHER_JENKINS2
    )
);
?>


This method deletes am entry from the hash

  • « QuickHashIntStringHash::__construct
  • QuickHashIntStringHash::exists »
  • PHP Manual
  • QuickHashIntStringHash
  • This method deletes am entry from the hash

QuickHashIntStringHash::delete

(PECL quickhash >= Unknown)

QuickHashIntStringHash::delete — This method deletes am entry from the hash

Описание

public QuickHashIntStringHash::delete ( int $key ) : bool

This method deletes an entry from the hash, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the hash itself is freed.

Elements can not be deleted when the hash is used in an iterator. The method will not throw an exception, but simply return FALSE like would happen with any other deletion failure.

Список параметров

key

The key of the entry to delete.

Возвращаемые значения

TRUE when the entry was deleted, and FALSE if the entry was not deleted.

Примеры

Пример #1 QuickHashIntStringHash::delete() example

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "five" ) );
var_dump( $hash->delete( 4 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->delete( 4 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


This method checks whether a key is part of the hash

  • « QuickHashIntStringHash::delete
  • QuickHashIntStringHash::get »
  • PHP Manual
  • QuickHashIntStringHash
  • This method checks whether a key is part of the hash

QuickHashIntStringHash::exists

(PECL quickhash >= Unknown)

QuickHashIntStringHash::exists — This method checks whether a key is part of the hash

Описание

public QuickHashIntStringHash::exists ( int $key ) : bool

This method checks whether an entry with the provided key exists in the hash.

Список параметров

key

The key of the entry to check for whether it exists in the hash.

Возвращаемые значения

Returns TRUE when the entry was found, or FALSE when the entry is not found.


This method retrieves a value from the hash by its key

  • « QuickHashIntStringHash::exists
  • QuickHashIntStringHash::getSize »
  • PHP Manual
  • QuickHashIntStringHash
  • This method retrieves a value from the hash by its key

QuickHashIntStringHash::get

(PECL quickhash >= Unknown)

QuickHashIntStringHash::get — This method retrieves a value from the hash by its key

Описание

public QuickHashIntStringHash::get ( int $key ) : mixed

This method retrieves a value from the hash by its key.

Список параметров

key

The key of the entry to add.

Возвращаемые значения

The value if the key exists, or NULL if the key wasn't part of the hash.

Примеры

Пример #1 QuickHashIntStringHash::get() example

<?php
$hash = new QuickHashIntStringHash( 8 );
var_dump( $hash->get( 1 ) );

var_dump( $hash->add( 2, "two" ) );
var_dump( $hash->get( 2 ) );

var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->get( 3 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)
string(3) "two"
bool(true)
string(1) "5"


Returns the number of elements in the hash

  • « QuickHashIntStringHash::get
  • QuickHashIntStringHash::loadFromFile »
  • PHP Manual
  • QuickHashIntStringHash
  • Returns the number of elements in the hash

QuickHashIntStringHash::getSize

(PECL quickhash >= Unknown)

QuickHashIntStringHash::getSize — Returns the number of elements in the hash

Описание

public QuickHashIntStringHash::getSize ( void ) : int

Returns the number of elements in the hash.

Возвращаемые значения

The number of elements in the hash.

Примеры

Пример #1 QuickHashIntStringHash::getSize() example

<?php
$hash = new QuickHashIntStringHash( 8 );
var_dump( $hash->add( 2, "two" ) );
var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->getSize() );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
int(2)


This factory method creates a hash from a file

  • « QuickHashIntStringHash::getSize
  • QuickHashIntStringHash::loadFromString »
  • PHP Manual
  • QuickHashIntStringHash
  • This factory method creates a hash from a file

QuickHashIntStringHash::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntStringHash::loadFromFile — This factory method creates a hash from a file

Описание

public static QuickHashIntStringHash::loadFromFile ( string $filename [, int $size = 0 [, int $options = 0 ]] ) : QuickHashIntStringHash

This factory method creates a new hash from a definition file on disk. The file format consists of a signature 'QH\0x12\0', the number of elements as a 32 bit signed integer in system Endianness, an unsigned 32 bit integer containing the number of element data to follow in characters. This element data contains all the strings. After the header and the strings, the elements follow in pairs of two unsigned 32 bit integers where the first one is the key, and the second one the index in the element data string. An example could be:

Пример #1 QuickHash IntString file format

00000000  51 48 12 00 02 00 00 00  09 00 00 00 4f 4e 45 00  |QH..........ONE.|
00000010  4e 49 4e 45 00 01 00 00  00 00 00 00 00 03 00 00  |NINE............|
00000020  00 04 00 00 00                                    |.....|
00000025

Пример #2 QuickHash IntString file format

header signature ('QH'; key type: 1; value type: 2; filler: \0x00)
00000000  51 48 12 00

number of elements:
00000004  02 00 00 00

length of string values (9 characters):
00000008  09 00 00 00

string values:
0000000C  4f 4e 45 00 4e 49 4e 45  00

data string:
00000015  01 00 00 00 00 00 00 00  03 00 00 00 04 00 00 00

key/value 1 (key = 1, string index = 0 ("ONE")):
01 00 00 00  00 00 00 00

key/value 2 (key = 3, string index = 4 ("NINE")):
03 00 00 00  04 00 00 00

Список параметров

filename

The filename of the file to read the hash from.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Возвращаемые значения

Returns a new QuickHashIntStringHash.

Примеры

Пример #3 QuickHashIntStringHash::loadFromFile() example

<?php
$file = dirname( __FILE__ ) . "/simple.string.hash";
$hash = QuickHashIntStringHash::loadFromFile(
    $file,
    QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $hash->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Результатом выполнения данного примера будет что-то подобное:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This factory method creates a hash from a string

  • « QuickHashIntStringHash::loadFromFile
  • QuickHashIntStringHash::saveToFile »
  • PHP Manual
  • QuickHashIntStringHash
  • This factory method creates a hash from a string

QuickHashIntStringHash::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntStringHash::loadFromString — This factory method creates a hash from a string

Описание

public static QuickHashIntStringHash::loadFromString ( string $contents [, int $size = 0 [, int $options = 0 ]] ) : QuickHashIntStringHash

This factory method creates a new hash from a definition in a string. The format is the same as the one used in "loadFromFile".

Список параметров

contents

The string containing a serialized format of the hash.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Возвращаемые значения

Returns a new QuickHashIntStringHash.

Примеры

Пример #1 QuickHashIntStringHash::loadFromString() example

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.hash" );
$hash = QuickHashIntStringHash::loadFromString(
    $contents,
    QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $hash->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Результатом выполнения данного примера будет что-то подобное:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This method stores an in-memory hash to disk

  • « QuickHashIntStringHash::loadFromString
  • QuickHashIntStringHash::saveToString »
  • PHP Manual
  • QuickHashIntStringHash
  • This method stores an in-memory hash to disk

QuickHashIntStringHash::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntStringHash::saveToFile — This method stores an in-memory hash to disk

Описание

public QuickHashIntStringHash::saveToFile ( string $filename ) : void

This method stores an existing hash to a file on disk, in the same format that loadFromFile() can read.

Список параметров

filename

The filename of the file to store the hash in.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 QuickHashIntStringHash::saveToFile() example

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "fourty three" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "fifty two" ) );

$hash->saveToFile( '/tmp/test.string.hash' );
?>


This method returns a serialized version of the hash

  • « QuickHashIntStringHash::saveToFile
  • QuickHashIntStringHash::set »
  • PHP Manual
  • QuickHashIntStringHash
  • This method returns a serialized version of the hash

QuickHashIntStringHash::saveToString

(PECL quickhash >= Unknown)

QuickHashIntStringHash::saveToString — This method returns a serialized version of the hash

Описание

public QuickHashIntStringHash::saveToString ( void ) : string

This method returns a serialized version of the hash in the same format that loadFromString() can read.

Возвращаемые значения

This method returns a string containing a serialized format of the hash. Each element is stored as a four byte value in the Endianness that the current system uses.

Примеры

Пример #1 QuickHashIntStringHash::saveToString() example

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "thirty four" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 5, "fifty five" ) );

var_dump( $hash->saveToString() );
?>


This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

  • « QuickHashIntStringHash::saveToString
  • QuickHashIntStringHash::update »
  • PHP Manual
  • QuickHashIntStringHash
  • This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

QuickHashIntStringHash::set

(PECL quickhash >= Unknown)

QuickHashIntStringHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

Описание

public QuickHashIntStringHash::set ( int $key , string $value ) : int

This method tries to update an entry with a new value. In case the entry did not yet exist, it will instead add a new entry. It returns whether the entry was added or update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntStringHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Список параметров

key

The key of the entry to add or update.

value

The value of the entry to add. If a non-string is passed, it will be converted to a string automatically if possible.

Возвращаемые значения

2 if the entry was found and updated, 1 if the entry was newly added or 0 if there was an error.

Примеры

Пример #1 QuickHashIntStringHash::set() example

<?php
$hash = new QuickHashIntStringHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( 46692 ) );
var_dump( $hash->set( 46692, "sixteen thousand ninety one" ) );
var_dump( $hash->get( 46692 ) );

echo "Set->Update\n";
var_dump( $hash->set( 46692, "twenty nine thousand nine hundred six" ) );
var_dump( $hash->get( 46692 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

Set->Add
bool(false)
int(2)
string(27) "sixteen thousand ninety one"
Set->Update
int(1)
string(37) "twenty nine thousand nine hundred six"


This method updates an entry in the hash with a new value

  • « QuickHashIntStringHash::set
  • Reflection »
  • PHP Manual
  • QuickHashIntStringHash
  • This method updates an entry in the hash with a new value

QuickHashIntStringHash::update

(PECL quickhash >= Unknown)

QuickHashIntStringHash::update — This method updates an entry in the hash with a new value

Описание

public QuickHashIntStringHash::update ( int $key , string $value ) : bool

This method updates an entry with a new value, and returns whether the entry was update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntStringHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Список параметров

key

The key of the entry to add.

value

The new value for the entry. If a non-string is passed, it will be converted to a string automatically if possible.

Возвращаемые значения

TRUE when the entry was found and updated, and FALSE if the entry was not part of the hash already.

Примеры

Пример #1 QuickHashIntStringHash::update() example

<?php
$hash->add( 161803398, "--" );
$hash->add( 314159265, "a lot" );

echo $hash->get( 161803398 ), "\n";
echo $hash->get( 314159265 ), "\n";

var_dump( $hash->update( 314159265, "a lot plus one" ) );
var_dump( $hash->update( 314159999, "a lot plus one" ) );

echo $hash->get( 161803398 ), "\n";
echo $hash->get( 314159265 ), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

--
a lot
bool(true)
bool(false)
--
a lot plus one


Reflection

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Расширение
  • Reflection — Класс Reflection
    • Reflection::export — Экспортирует Reflection
    • Reflection::getModifierNames — Получение имен модификаторов
  • ReflectionClass — Класс ReflectionClass
    • ReflectionClass::__construct — Создаёт объект класса ReflectionClass
    • ReflectionClass::export — Экспортирует класс
    • ReflectionClass::getConstant — Возвращает определенную константу
    • ReflectionClass::getConstants — Возвращает константы
    • ReflectionClass::getConstructor — Возвращает конструктор класса
    • ReflectionClass::getDefaultProperties — Возвращает свойства по умолчанию
    • ReflectionClass::getDocComment — Возвращает doc-блоки комментариев
    • ReflectionClass::getEndLine — Возвращает номер последней строки
    • ReflectionClass::getExtension — Возвращает объект класса ReflectionExtension для расширения, определяющего класс
    • ReflectionClass::getExtensionName — Возвращает имя расширения, определяющее класс
    • ReflectionClass::getFileName — Возвращает имя файла, в котором определен класс
    • ReflectionClass::getInterfaceNames — Возвращает имена интерфейсов
    • ReflectionClass::getInterfaces — Возвращает интерфейсы
    • ReflectionClass::getMethod — Возвращает экземпляр ReflectionMethod для метода класса
    • ReflectionClass::getMethods — Возвращает список методов в виде массива
    • ReflectionClass::getModifiers — Возвращает информацию о модификаторах класса
    • ReflectionClass::getName — Возвращает имя класса
    • ReflectionClass::getNamespaceName — Возвращает название пространства имён
    • ReflectionClass::getParentClass — Возвращает родительский класс
    • ReflectionClass::getProperties — Возвращает свойства
    • ReflectionClass::getProperty — Возвращает экземпляр ReflectionProperty для свойства класса
    • ReflectionClass::getReflectionConstant — Получает ReflectionClassConstant для константы класса
    • ReflectionClass::getReflectionConstants — Получает константы класса
    • ReflectionClass::getShortName — Возвращает короткое имя
    • ReflectionClass::getStartLine — Возвращает номер начальной строки
    • ReflectionClass::getStaticProperties — Возвращает статические свойства
    • ReflectionClass::getStaticPropertyValue — Возвращает значение статического свойства
    • ReflectionClass::getTraitAliases — Возвращает массив псевдонимов трейтов
    • ReflectionClass::getTraitNames — Возвращает массив имён трейтов, используемых в этом классе
    • ReflectionClass::getTraits — Возвращает массив трейтов, используемых в этом классе
    • ReflectionClass::hasConstant — Проверяет, определена ли константа
    • ReflectionClass::hasMethod — Проверяет, задан ли метод
    • ReflectionClass::hasProperty — Проверяет, определено ли свойство
    • ReflectionClass::implementsInterface — Проверяет, реализуется ли интерфейс
    • ReflectionClass::inNamespace — Проверяет, определён ли класс в пространстве имён
    • ReflectionClass::isAbstract — Проверяет, является ли класс абстрактным
    • ReflectionClass::isAnonymous — Проверяет, является класс анонимным
    • ReflectionClass::isCloneable — Проверяет, можно ли клонировать этот класс
    • ReflectionClass::isFinal — Проверяет, является ли класс окончательным (final)
    • ReflectionClass::isInstance — Проверяет, принадлежит ли объект классу
    • ReflectionClass::isInstantiable — Проверяет, можно ли создать экземпляр класса
    • ReflectionClass::isInterface — Проверяет, является ли класс интерфейсом
    • ReflectionClass::isInternal — Проверяет, является ли класс встроенным в расширение или в ядро
    • ReflectionClass::isIterable — Проверить, является ли класс итерируемым
    • ReflectionClass::isIterateable — Псевдоним ReflectionClass::isIterable
    • ReflectionClass::isSubclassOf — Проверяет, является ли класс подклассом
    • ReflectionClass::isTrait — Проверяет, является ли это трейтом
    • ReflectionClass::isUserDefined — Проверяет, является ли класс пользовательским
    • ReflectionClass::newInstance — Создаёт экземпляр класса с переданными аргументами
    • ReflectionClass::newInstanceArgs — Создаёт экземпляр класса с переданными параметрами
    • ReflectionClass::newInstanceWithoutConstructor — Создаёт новый экземпляр класса без вызова конструктора
    • ReflectionClass::setStaticPropertyValue — Устанавливает значение статического свойства
    • ReflectionClass::__toString — Возвращает строковое представление объекта класса ReflectionClass
  • ReflectionClassConstant — Класс ReflectionClassConstant
    • ReflectionClassConstant::__construct — Создает ReflectionClassConstant
    • ReflectionClassConstant::export — Экспорт
    • ReflectionClassConstant::getDeclaringClass — Получает объявляющий класс
    • ReflectionClassConstant::getDocComment — Получает doc-комментарии
    • ReflectionClassConstant::getModifiers — Получает модификаторы константы класса
    • ReflectionClassConstant::getName — Получить имя константы
    • ReflectionClassConstant::getValue — Получает значение
    • ReflectionClassConstant::isPrivate — Проверяет, является ли константа закрытой
    • ReflectionClassConstant::isProtected — Проверяет, является ли константа защищенной
    • ReflectionClassConstant::isPublic — Проверяет, является ли константа общедоступной
    • ReflectionClassConstant::__toString — Возвращает строковое представление объекта ReflectionClassConstant
  • ReflectionZendExtension — Класс ReflectionZendExtension
    • ReflectionZendExtension::__clone — Обработчик клонирования
    • ReflectionZendExtension::__construct — Конструктор
    • ReflectionZendExtension::export — Экспорт
    • ReflectionZendExtension::getAuthor — Получает автора
    • ReflectionZendExtension::getCopyright — Получает авторские права
    • ReflectionZendExtension::getName — Получает имя
    • ReflectionZendExtension::getURL — Получает URL
    • ReflectionZendExtension::getVersion — Получает версию
    • ReflectionZendExtension::__toString — Обработчик преобразования в строку
  • ReflectionExtension — Класс ReflectionExtension
    • ReflectionExtension::__clone — Клонирует объект
    • ReflectionExtension::__construct — Создаёт объект класса ReflectionExtension
    • ReflectionExtension::export — Экспортирует модуль
    • ReflectionExtension::getClasses — Возвращает классы
    • ReflectionExtension::getClassNames — Получение имен классов
    • ReflectionExtension::getConstants — Получение констант
    • ReflectionExtension::getDependencies — Получение зависимостей
    • ReflectionExtension::getFunctions — Получение функций расширения
    • ReflectionExtension::getINIEntries — Получение ini-настроек расширения
    • ReflectionExtension::getName — Получение имени расширения
    • ReflectionExtension::getVersion — Получение версии расширения
    • ReflectionExtension::info — Вывод информации о расширении
    • ReflectionExtension::isPersistent — Определяет, является ли расширение постоянным
    • ReflectionExtension::isTemporary — Определяет, является ли расширение временным
    • ReflectionExtension::__toString — Преобразование в строку
  • ReflectionFunction — Класс ReflectionFunction
    • ReflectionFunction::__construct — Конструктор класса ReflectionFunction
    • ReflectionFunction::export — Экспортирует функции
    • ReflectionFunction::getClosure — Возвращает динамически созданное замыкание для функции
    • ReflectionFunction::invoke — Вызывает функцию
    • ReflectionFunction::invokeArgs — Вызов функции с передачей аргументов
    • ReflectionFunction::isDisabled — Проверяет, что функция отключена
    • ReflectionFunction::__toString — Представление в виде строки
  • ReflectionFunctionAbstract — Класс ReflectionFunctionAbstract
    • ReflectionFunctionAbstract::__clone — Клонирует функцию
    • ReflectionFunctionAbstract::getClosureScopeClass — Возвращает класс в рамках которого было объявлено замыкание
    • ReflectionFunctionAbstract::getClosureThis — Возвращает указатель, привязанный к замыканию
    • ReflectionFunctionAbstract::getDocComment — Получает doc-комментарий
    • ReflectionFunctionAbstract::getEndLine — Получает номер строки завершения описания функции
    • ReflectionFunctionAbstract::getExtension — Получает информацию о расширении
    • ReflectionFunctionAbstract::getExtensionName — Получение имени расширения
    • ReflectionFunctionAbstract::getFileName — Получает имя файла
    • ReflectionFunctionAbstract::getName — Получает имя функции
    • ReflectionFunctionAbstract::getNamespaceName — Получение имени пространства имен
    • ReflectionFunctionAbstract::getNumberOfParameters — Получает количество параметров
    • ReflectionFunctionAbstract::getNumberOfRequiredParameters — Получает количество обязательных параметров
    • ReflectionFunctionAbstract::getParameters — Получает параметры
    • ReflectionFunctionAbstract::getReturnType — Получает объявленный тип возвращаемого функцией значения
    • ReflectionFunctionAbstract::getShortName — Получает короткое имя функции
    • ReflectionFunctionAbstract::getStartLine — Получает начальный номер строки
    • ReflectionFunctionAbstract::getStaticVariables — Получает статические переменные
    • ReflectionFunctionAbstract::hasReturnType — Проверяет, имеет ли функция объявленный тип возвращаемого значения
    • ReflectionFunctionAbstract::inNamespace — Проверяет, находится ли функция в пространстве имен
    • ReflectionFunctionAbstract::isClosure — Проверяет, является ли функция замыканием (Closure)
    • ReflectionFunctionAbstract::isDeprecated — Проверяет, является ли функция устаревшей
    • ReflectionFunctionAbstract::isGenerator — Проверяет, является ли функция генератором
    • ReflectionFunctionAbstract::isInternal — Проверяет, является ли функция внутренней
    • ReflectionFunctionAbstract::isUserDefined — Проверяет, является ли функция определенной пользователем
    • ReflectionFunctionAbstract::isVariadic — Проверяет, является ли функция функцией с переменным числом аргументов
    • ReflectionFunctionAbstract::returnsReference — Проверяет, что функция возвращает ссылку
    • ReflectionFunctionAbstract::__toString — Преобразование в строку
  • ReflectionMethod — Класс ReflectionMethod
    • ReflectionMethod::__construct — Конструктор класса ReflectionMethod
    • ReflectionMethod::export — Экспорт отраженного метода
    • ReflectionMethod::getClosure — Возвращает динамически созданное замыкание для метода
    • ReflectionMethod::getDeclaringClass — Получает класс, объявляющий отраженный метод
    • ReflectionMethod::getModifiers — Получает модификаторы метода
    • ReflectionMethod::getPrototype — Получает прототип метода (если такой есть)
    • ReflectionMethod::invoke — Вызов
    • ReflectionMethod::invokeArgs — Вызов метода с передачей аргументов массивом
    • ReflectionMethod::isAbstract — Проверяет, является ли метод абстрактным
    • ReflectionMethod::isConstructor — Проверяет, является ли метод конструктором
    • ReflectionMethod::isDestructor — Проверяет, является ли метод деструктором
    • ReflectionMethod::isFinal — Проверяет, является ли метод окончательным
    • ReflectionMethod::isPrivate — Проверяет, является ли метод закрытым
    • ReflectionMethod::isProtected — Проверяет, является ли метод защищенным
    • ReflectionMethod::isPublic — Проверяет, является ли метод общедоступным
    • ReflectionMethod::isStatic — Проверяет, является ли метод статическим
    • ReflectionMethod::setAccessible — Делает метод доступным
    • ReflectionMethod::__toString — Возвращает строковое представление объекта ReflectionMethod
  • ReflectionNamedType — Класс ReflectionNamedType
    • ReflectionNamedType::getName — Получить текст подсказки типа
  • ReflectionObject — Класс ReflectionObject
    • ReflectionObject::__construct — Конструктор класса ReflectionObject
    • ReflectionObject::export — Экспорт
  • ReflectionParameter — Класс ReflectionParameter
    • ReflectionParameter::allowsNull — Проверяет, допустимо ли значение null для параметра
    • ReflectionParameter::canBePassedByValue — Проверяет, можно ли передать этот аргумент по значению
    • ReflectionParameter::__clone — Клонировать
    • ReflectionParameter::__construct — Конструктор
    • ReflectionParameter::export — Экспорт
    • ReflectionParameter::getClass — Получение класса из подсказки типа
    • ReflectionParameter::getDeclaringClass — Получение объявляющего класса
    • ReflectionParameter::getDeclaringFunction — Получение объявляющей функции
    • ReflectionParameter::getDefaultValue — Получение значения по умолчанию для параметра
    • ReflectionParameter::getDefaultValueConstantName — Возвращает имя константы значения по умолчанию, если значение по умолчанию константа или null
    • ReflectionParameter::getName — Получение имени параметра
    • ReflectionParameter::getPosition — Получение позиции параметра
    • ReflectionParameter::getType — Получить тип параметра
    • ReflectionParameter::hasType — Проверить, указан ли тип параметра
    • ReflectionParameter::isArray — Проверяет, ожидает ли аргумент массив в качестве значения
    • ReflectionParameter::isCallable — Определить, должен ли параметр быть типа callable
    • ReflectionParameter::isDefaultValueAvailable — Проверяет, доступно ли значение по умолчанию
    • ReflectionParameter::isDefaultValueConstant — Определить, является ли значение параметра по умолчанию константой
    • ReflectionParameter::isOptional — Проверяет, является ли аргумент необязательным
    • ReflectionParameter::isPassedByReference — Проверяет, передан ли параметр по ссылке
    • ReflectionParameter::isVariadic — Проверить, является ли параметр параметром с переменным количеством аргументов
    • ReflectionParameter::__toString — Преобразование в строку
  • ReflectionProperty — Класс ReflectionProperty
    • ReflectionProperty::__clone — Клонировать
    • ReflectionProperty::__construct — Конструктор класса ReflectionProperty
    • ReflectionProperty::export — Экспорт
    • ReflectionProperty::getDeclaringClass — Получение объявляющего класса
    • ReflectionProperty::getDocComment — Получение doc-комментария для свойства
    • ReflectionProperty::getModifiers — Получение модификаторов свойств класса
    • ReflectionProperty::getName — Получение имени свойства
    • ReflectionProperty::getType — Gets a property's type
    • ReflectionProperty::getValue — Получает значение
    • ReflectionProperty::hasType — Checks if property has a type
    • ReflectionProperty::isDefault — Проверяет, является ли значение свойством по умолчанию
    • ReflectionProperty::isInitialized — Checks whether a property is initialized
    • ReflectionProperty::isPrivate — Проверяет, является ли свойство закрытым
    • ReflectionProperty::isProtected — Проверяет, является ли свойство защищенным
    • ReflectionProperty::isPublic — Проверяет, является ли свойство общедоступным
    • ReflectionProperty::isStatic — Проверка, является ли свойство статическим
    • ReflectionProperty::setAccessible — Делает свойство доступным
    • ReflectionProperty::setValue — Установка значения свойства
    • ReflectionProperty::__toString — Преобразование в строку
  • ReflectionType — Класс ReflectionType
    • ReflectionType::allowsNull — Проверяет, допустим ли NULL
    • ReflectionType::isBuiltin — Проверяет тип, встроенный он или нет
    • ReflectionType::__toString — Преобразование в строку
  • ReflectionGenerator — Класс ReflectionGenerator
    • ReflectionGenerator::__construct — Конструктор ReflectionGenerator
    • ReflectionGenerator::getExecutingFile — Получить имя файла, из которого запущен генератор
    • ReflectionGenerator::getExecutingGenerator — Получить запущенный объект Generator
    • ReflectionGenerator::getExecutingLine — Получить текущую выполняющуюся строку генератора
    • ReflectionGenerator::getFunction — Получить имя функции генератора
    • ReflectionGenerator::getThis — Получает значение $this генератора
    • ReflectionGenerator::getTrace — Получить трассировку запущенного генератора
  • Reflector — Интерфейс Reflector
    • Reflector::export — Экспорт
    • Reflector::__toString — Представление в виде строки
  • ReflectionException — Класс ReflectionException


Введение

PHP включает в себя полноценный Reflection API, который предоставляет возможность проводить интроспекцию классов, интерфейсов, функций, методов и модулей. Кроме того, Reflection API позволяет получать doc-блоки комментариев функций, классов и методов.

Обратите внимание, что определённая часть внутреннего API не содержит кода, который необходим для работы модуля Reflection. Например, внутренний PHP-класс может не иметь reflection-данных для своих свойств. Однако это известные ошибки и впоследствии такие классы будут исправлены.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • Reflection
  • Предопределенные константы

Предопределенные константы

Каждый класс описывает свои собственные константы.


Примеры

В документации по Reflection вы сможете встретить множество примеров, чаще всего в описании конструкторов классов.

Пример #1 Пример использования Reflection из shell (терминала)

$ php --rf strlen
$ php --rc finfo
$ php --re json
$ php --ri dom

Результатом выполнения данного примера будет что-то подобное:

Function [ <internal:Core> function strlen ] {

  - Parameters [1] {
    Parameter #0 [ <required> $str ]
  }
}

Class [ <internal:fileinfo> class finfo ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [4] {
    Method [ <internal:fileinfo, ctor> public method finfo ] {

      - Parameters [2] {
        Parameter #0 [ <optional> $options ]
        Parameter #1 [ <optional> $arg ]
      }
    }

    Method [ <internal:fileinfo> public method set_flags ] {

      - Parameters [1] {
        Parameter #0 [ <required> $options ]
      }
    }

    Method [ <internal:fileinfo> public method file ] {

      - Parameters [3] {
        Parameter #0 [ <required> $filename ]
        Parameter #1 [ <optional> $options ]
        Parameter #2 [ <optional> $context ]
      }
    }

    Method [ <internal:fileinfo> public method buffer ] {

      - Parameters [3] {
        Parameter #0 [ <required> $string ]
        Parameter #1 [ <optional> $options ]
        Parameter #2 [ <optional> $context ]
      }
    }
  }
}

Extension [ <persistent> extension #23 json version 1.2.1 ] {

  - Constants [10] {
    Constant [ integer JSON_HEX_TAG ] { 1 }
    Constant [ integer JSON_HEX_AMP ] { 2 }
    Constant [ integer JSON_HEX_APOS ] { 4 }
    Constant [ integer JSON_HEX_QUOT ] { 8 }
    Constant [ integer JSON_FORCE_OBJECT ] { 16 }
    Constant [ integer JSON_ERROR_NONE ] { 0 }
    Constant [ integer JSON_ERROR_DEPTH ] { 1 }
    Constant [ integer JSON_ERROR_STATE_MISMATCH ] { 2 }
    Constant [ integer JSON_ERROR_CTRL_CHAR ] { 3 }
    Constant [ integer JSON_ERROR_SYNTAX ] { 4 }
  }

  - Functions {
    Function [ <internal:json> function json_encode ] {

      - Parameters [2] {
        Parameter #0 [ <required> $value ]
        Parameter #1 [ <optional> $options ]
      }
    }
    Function [ <internal:json> function json_decode ] {

      - Parameters [3] {
        Parameter #0 [ <required> $json ]
        Parameter #1 [ <optional> $assoc ]
        Parameter #2 [ <optional> $depth ]
      }
    }
    Function [ <internal:json> function json_last_error ] {

      - Parameters [0] {
      }
    }
  }
}

dom

DOM/XML => enabled
DOM/XML API Version => 20031129
libxml Version => 2.7.3
HTML Support => enabled
XPath Support => enabled
XPointer Support => enabled
Schema Support => enabled
RelaxNG Support => enabled


Расширение

Если вам нужна специализированная версия встроенного класса (который, например, сможет генерировать цветной HTML при экспорте, будет иметь легкодоступные свойства вместо методов или же какие-нибудь вспомогательные методы), то можете просто взять и расширить его.

Пример #1 Расширение встроенных классов

<?php
/**
 * Мой класс Reflection_Method
 */
class My_Reflection_Method extends ReflectionMethod
{
    public $visibility = array();

    public function __construct($o, $m)
    {
        parent::__construct($o, $m);
        $this->visibility = Reflection::getModifierNames($this->getModifiers());
    }
}

/**
 * Демо-класс #1
 *
 */
class T {
    protected function x() {}
}

/**
 * Демо-класс #2
 *
 */
class U extends T {
    function x() {}
}

// Выведем информацию о методе
var_dump(new My_Reflection_Method('U', 'x'));
?>

Результатом выполнения данного примера будет что-то подобное:

object(My_Reflection_Method)#1 (3) {
  ["visibility"]=>
  array(1) {
    [0]=>
    string(6) "public"
  }
  ["name"]=>
  string(1) "x"
  ["class"]=>
  string(1) "U"
}
Предостережение

Когда вы переопределяете конструктор, не забудьте обязательно вызвать родительский конструктор до любого добавленного вами кода. Если так не делать, то вы можете получить сообщение об ошибке вида: Fatal error: Internal error: Failed to retrieve the reflection object


Класс Reflection

(PHP 5, PHP 7)

Введение

Класс Reflection.

Обзор классов

Reflection {
/* Методы */
public static export ( Reflector $reflector [, bool $return = FALSE ] ) : string
public static getModifierNames ( int $modifiers ) : array
}

Содержание

  • Reflection::export — Экспортирует Reflection
  • Reflection::getModifierNames — Получение имен модификаторов


Экспортирует Reflection

  • « Reflection
  • Reflection::getModifierNames »
  • PHP Manual
  • Reflection
  • Экспортирует Reflection

Reflection::export

(PHP 5, PHP 7)

Reflection::export — Экспортирует Reflection

Описание

public static Reflection::export ( Reflector $reflector [, bool $return = FALSE ] ) : string

Экспортирует reflection.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

reflector

Экспортируемый объект Reflection.

return

Установка в TRUE вернет экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в FALSE (по умолчанию) сделает противоположное.

Возвращаемые значения

Если параметр return установлен в TRUE, тогда экспортируемый объект будет возвращен как string, иначе будет возвращен NULL.

Смотрите также

  • Reflection::getModifierNames() - Получение имен модификаторов


Получение имен модификаторов

  • « Reflection::export
  • ReflectionClass »
  • PHP Manual
  • Reflection
  • Получение имен модификаторов

Reflection::getModifierNames

(PHP 5, PHP 7)

Reflection::getModifierNames — Получение имен модификаторов

Описание

public static Reflection::getModifierNames ( int $modifiers ) : array

Получает имена модификаторов.

Список параметров

modifiers

Битовая маска извлекаемых модификаторов.

Возвращаемые значения

Массив имен модификаторов.

Примеры

Пример #1 Пример использования Reflection::getModifierNames()

<?php
class Testing
{
    final public static function foo()
    {
        return;
    }

    public function bar()
    {
        return;
    }
}

$foo = new ReflectionMethod('Testing', 'foo');

echo "Модификаторы для метода foo():\n";
echo $foo->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($foo->getModifiers())) . "\n";

$bar = new ReflectionMethod('Testing', 'bar');

echo "Модификаторы для метода bar():\n";
echo $bar->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($bar->getModifiers()));

Результатом выполнения данного примера будет что-то подобное:

Модификаторы для метода foo():
261
final public static
Модификаторы для метода bar():
65792
public

Смотрите также

  • ReflectionClass::getModifiers() - Возвращает информацию о модификаторах класса
  • ReflectionClassConstant::getModifiers() - Получает модификаторы константы класса
  • ReflectionMethod::getModifiers() - Получает модификаторы метода
  • ReflectionProperty::getModifiers() - Получение модификаторов свойств класса


Класс ReflectionClass

(PHP 5, PHP 7)

Введение

Класс ReflectionClass сообщает информацию о классе.

Обзор классов

ReflectionClass implements Reflector {
/* Константы */
const integer IS_IMPLICIT_ABSTRACT = 16 ;
const integer IS_EXPLICIT_ABSTRACT = 32 ;
const integer IS_FINAL = 64 ;
/* Свойства */
public $name ;
/* Методы */
public __construct ( mixed $argument )
public static export ( mixed $argument [, bool $return = FALSE ] ) : string
public getConstant ( string $name ) : mixed
public getConstants ( void ) : array
public getConstructor ( void ) : ReflectionMethod
public getDefaultProperties ( void ) : array
public getDocComment ( void ) : string
public getEndLine ( void ) : int
public getExtension ( void ) : ReflectionExtension
public getExtensionName ( void ) : string
public getFileName ( void ) : string
public getInterfaceNames ( void ) : array
public getInterfaces ( void ) : array
public getMethod ( string $name ) : ReflectionMethod
public getMethods ([ int $filter ] ) : array
public getModifiers ( void ) : int
public getName ( void ) : string
public getNamespaceName ( void ) : string
public getParentClass ( void ) : ReflectionClass
public getProperties ([ int $filter ] ) : array
public getProperty ( string $name ) : ReflectionProperty
public getReflectionConstant ( string $name ) : ReflectionClassConstant
public getReflectionConstants ( void ) : array
public getShortName ( void ) : string
public getStartLine ( void ) : int
public getStaticProperties ( void ) : array
public getStaticPropertyValue ( string $name [, mixed &$def_value ] ) : mixed
public getTraitAliases ( void ) : array
public getTraitNames ( void ) : array
public getTraits ( void ) : array
public hasConstant ( string $name ) : bool
public hasMethod ( string $name ) : bool
public hasProperty ( string $name ) : bool
public implementsInterface ( string $interface ) : bool
public inNamespace ( void ) : bool
public isAbstract ( void ) : bool
public isAnonymous ( void ) : bool
public isCloneable ( void ) : bool
public isFinal ( void ) : bool
public isInstance ( object $object ) : bool
public isInstantiable ( void ) : bool
public isInterface ( void ) : bool
public isInternal ( void ) : bool
public isIterable ( void ) : bool
public isSubclassOf ( mixed $class ) : bool
public isTrait ( void ) : bool
public isUserDefined ( void ) : bool
public newInstance ([ mixed $... ] ) : object
public newInstanceArgs ([ array $args ] ) : object
public newInstanceWithoutConstructor ( void ) : object
public setStaticPropertyValue ( string $name , mixed $value ) : void
public __toString ( void ) : string
}

Свойства

name

Имя класса. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Предопределенные константы

Модификаторы ReflectionClass

ReflectionClass::IS_IMPLICIT_ABSTRACT

Указывает, что класс является абстрактным, потому что он содержит абстрактные методы.

ReflectionClass::IS_EXPLICIT_ABSTRACT

Указывает, что класс является абстрактным, потому что так указано при его описании.

ReflectionClass::IS_FINAL

Указывает, что класс является окончательным (final)

Содержание

  • ReflectionClass::__construct — Создаёт объект класса ReflectionClass
  • ReflectionClass::export — Экспортирует класс
  • ReflectionClass::getConstant — Возвращает определенную константу
  • ReflectionClass::getConstants — Возвращает константы
  • ReflectionClass::getConstructor — Возвращает конструктор класса
  • ReflectionClass::getDefaultProperties — Возвращает свойства по умолчанию
  • ReflectionClass::getDocComment — Возвращает doc-блоки комментариев
  • ReflectionClass::getEndLine — Возвращает номер последней строки
  • ReflectionClass::getExtension — Возвращает объект класса ReflectionExtension для расширения, определяющего класс
  • ReflectionClass::getExtensionName — Возвращает имя расширения, определяющее класс
  • ReflectionClass::getFileName — Возвращает имя файла, в котором определен класс
  • ReflectionClass::getInterfaceNames — Возвращает имена интерфейсов
  • ReflectionClass::getInterfaces — Возвращает интерфейсы
  • ReflectionClass::getMethod — Возвращает экземпляр ReflectionMethod для метода класса
  • ReflectionClass::getMethods — Возвращает список методов в виде массива
  • ReflectionClass::getModifiers — Возвращает информацию о модификаторах класса
  • ReflectionClass::getName — Возвращает имя класса
  • ReflectionClass::getNamespaceName — Возвращает название пространства имён
  • ReflectionClass::getParentClass — Возвращает родительский класс
  • ReflectionClass::getProperties — Возвращает свойства
  • ReflectionClass::getProperty — Возвращает экземпляр ReflectionProperty для свойства класса
  • ReflectionClass::getReflectionConstant — Получает ReflectionClassConstant для константы класса
  • ReflectionClass::getReflectionConstants — Получает константы класса
  • ReflectionClass::getShortName — Возвращает короткое имя
  • ReflectionClass::getStartLine — Возвращает номер начальной строки
  • ReflectionClass::getStaticProperties — Возвращает статические свойства
  • ReflectionClass::getStaticPropertyValue — Возвращает значение статического свойства
  • ReflectionClass::getTraitAliases — Возвращает массив псевдонимов трейтов
  • ReflectionClass::getTraitNames — Возвращает массив имён трейтов, используемых в этом классе
  • ReflectionClass::getTraits — Возвращает массив трейтов, используемых в этом классе
  • ReflectionClass::hasConstant — Проверяет, определена ли константа
  • ReflectionClass::hasMethod — Проверяет, задан ли метод
  • ReflectionClass::hasProperty — Проверяет, определено ли свойство
  • ReflectionClass::implementsInterface — Проверяет, реализуется ли интерфейс
  • ReflectionClass::inNamespace — Проверяет, определён ли класс в пространстве имён
  • ReflectionClass::isAbstract — Проверяет, является ли класс абстрактным
  • ReflectionClass::isAnonymous — Проверяет, является класс анонимным
  • ReflectionClass::isCloneable — Проверяет, можно ли клонировать этот класс
  • ReflectionClass::isFinal — Проверяет, является ли класс окончательным (final)
  • ReflectionClass::isInstance — Проверяет, принадлежит ли объект классу
  • ReflectionClass::isInstantiable — Проверяет, можно ли создать экземпляр класса
  • ReflectionClass::isInterface — Проверяет, является ли класс интерфейсом
  • ReflectionClass::isInternal — Проверяет, является ли класс встроенным в расширение или в ядро
  • ReflectionClass::isIterable — Проверить, является ли класс итерируемым
  • ReflectionClass::isIterateable — Псевдоним ReflectionClass::isIterable
  • ReflectionClass::isSubclassOf — Проверяет, является ли класс подклассом
  • ReflectionClass::isTrait — Проверяет, является ли это трейтом
  • ReflectionClass::isUserDefined — Проверяет, является ли класс пользовательским
  • ReflectionClass::newInstance — Создаёт экземпляр класса с переданными аргументами
  • ReflectionClass::newInstanceArgs — Создаёт экземпляр класса с переданными параметрами
  • ReflectionClass::newInstanceWithoutConstructor — Создаёт новый экземпляр класса без вызова конструктора
  • ReflectionClass::setStaticPropertyValue — Устанавливает значение статического свойства
  • ReflectionClass::__toString — Возвращает строковое представление объекта класса ReflectionClass


Создаёт объект класса ReflectionClass

  • « ReflectionClass
  • ReflectionClass::export »
  • PHP Manual
  • ReflectionClass
  • Создаёт объект класса ReflectionClass

ReflectionClass::__construct

(PHP 5, PHP 7)

ReflectionClass::__construct — Создаёт объект класса ReflectionClass

Описание

public ReflectionClass::__construct ( mixed $argument )

Создаёт новый объект класса ReflectionClass.

Список параметров

argument

В качестве аргумента может принимать строку (string), содержащую имя исследуемого класса, либо объект (object).

Возвращаемые значения

Возвращает объект класса ReflectionClass.

Ошибки

Вызывает исключение ReflectionException, если заданный класс не существует.

Примеры

Пример #1 Простой пример использования ReflectionClass

<?php
Reflection::export(new ReflectionClass('Exception'));
?>

Результатом выполнения данного примера будет что-то подобное:

Class [ <internal:Core> class Exception ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [7] {
    Property [ <default> protected $message ]
    Property [ <default> private $string ]
    Property [ <default> protected $code ]
    Property [ <default> protected $file ]
    Property [ <default> protected $line ]
    Property [ <default> private $trace ]
    Property [ <default> private $previous ]
  }

  - Methods [10] {
    Method [ <internal:Core> final private method __clone ] {
    }

    Method [ <internal:Core, ctor> public method __construct ] {

      - Parameters [3] {
        Parameter #0 [ <optional> $message ]
        Parameter #1 [ <optional> $code ]
        Parameter #2 [ <optional> $previous ]
      }
    }

    Method [ <internal:Core> final public method getMessage ] {
    }

    Method [ <internal:Core> final public method getCode ] {
    }

    Method [ <internal:Core> final public method getFile ] {
    }

    Method [ <internal:Core> final public method getLine ] {
    }

    Method [ <internal:Core> final public method getTrace ] {
    }

    Method [ <internal:Core> final public method getPrevious ] {
    }

    Method [ <internal:Core> final public method getTraceAsString ] {
    }

    Method [ <internal:Core> public method __toString ] {
    }
  }
}

Смотрите также

  • ReflectionObject::__construct() - Конструктор класса ReflectionObject
  • Конструкторы


Экспортирует класс

  • « ReflectionClass::__construct
  • ReflectionClass::getConstant »
  • PHP Manual
  • ReflectionClass
  • Экспортирует класс

ReflectionClass::export

(PHP 5, PHP 7)

ReflectionClass::export — Экспортирует класс

Описание

public static ReflectionClass::export ( mixed $argument [, bool $return = FALSE ] ) : string

Экспортирует reflected (отражённый) класс.

Список параметров

argument

Экспортируемый объект Reflection.

return

Установка в TRUE вернет экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в FALSE (по умолчанию) сделает противоположное.

Возвращаемые значения

Если параметр return установлен в TRUE, тогда экспортируемый объект будет возвращен как string, иначе будет возвращен NULL.

Примеры

Пример #1 Пример использования ReflectionClass::export()

<?php
class Apple {
    public $var1;
    public $var2 = 'Orange';

    public function type() {
        return 'Apple';
    }
}
ReflectionClass::export('Apple');
?>

Результатом выполнения данного примера будет что-то подобное:

Class [ <user> class Apple ] {
  @@ php shell code 1-8

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [2] {
    Property [ <default> public $var1 ]
    Property [ <default> public $var2 ]
  }

  - Methods [1] {
    Method [ <user> public method type ] {
      @@ php shell code 5 - 7
    }
  }
}

Смотрите также

  • ReflectionClass::getName() - Возвращает имя класса


Возвращает определенную константу

  • « ReflectionClass::export
  • ReflectionClass::getConstants »
  • PHP Manual
  • ReflectionClass
  • Возвращает определенную константу

ReflectionClass::getConstant

(PHP 5, PHP 7)

ReflectionClass::getConstant — Возвращает определенную константу

Описание

public ReflectionClass::getConstant ( string $name ) : mixed

Возвращает определенную константу.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Имя константы класса.

Возвращаемые значения

Значение константы с именем name. Возвращает FALSE если константа отсутствует в классе.

Примеры

Пример #1 Пример использования ReflectionClass::getConstant()

<?php

class Example {
    const C1 = false;
    const C2 = 'I am a constant';
}

$reflection = new ReflectionClass('Example');

var_dump($reflection->getConstant('C1'));
var_dump($reflection->getConstant('C2'));
var_dump($reflection->getConstant('C3'));
?>

Результат выполнения данного примера:

bool(false)
string(15) "I am a constant"
bool(false)

Смотрите также

  • ReflectionClass::getConstants() - Возвращает константы


Возвращает константы

  • « ReflectionClass::getConstant
  • ReflectionClass::getConstructor »
  • PHP Manual
  • ReflectionClass
  • Возвращает константы

ReflectionClass::getConstants

(PHP 5, PHP 7)

ReflectionClass::getConstants — Возвращает константы

Описание

public ReflectionClass::getConstants ( void ) : array

Возвращает все определённые в классе константы, независимо от их модификаторов видимости.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) констант. Имя константы - ключ, значение константы - значение.

Смотрите также

  • ReflectionClass::getConstant() - Возвращает определенную константу


Возвращает конструктор класса

  • « ReflectionClass::getConstants
  • ReflectionClass::getDefaultProperties »
  • PHP Manual
  • ReflectionClass
  • Возвращает конструктор класса

ReflectionClass::getConstructor

(PHP 5, PHP 7)

ReflectionClass::getConstructor — Возвращает конструктор класса

Описание

public ReflectionClass::getConstructor ( void ) : ReflectionMethod

Возвращает конструктор отраженного класса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект ReflectionMethod, отражающий конструктор класса, или NULL если у класса нет конструктора.

Примеры

Пример #1 Пример использования ReflectionClass::getConstructor()

<?php
$class = new ReflectionClass('ReflectionClass');
$constructor = $class->getConstructor();
var_dump($constructor);
?>

Результат выполнения данного примера:

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(11) "__construct"
  ["class"]=>
  string(15) "ReflectionClass"
}

Смотрите также

  • ReflectionClass::getName() - Возвращает имя класса


Возвращает свойства по умолчанию

  • « ReflectionClass::getConstructor
  • ReflectionClass::getDocComment »
  • PHP Manual
  • ReflectionClass
  • Возвращает свойства по умолчанию

ReflectionClass::getDefaultProperties

(PHP 5, PHP 7)

ReflectionClass::getDefaultProperties — Возвращает свойства по умолчанию

Описание

public ReflectionClass::getDefaultProperties ( void ) : array

Возвращает свойства класса по умолчанию (включая унаследованные свойства).

Замечание:

Этот метод работает только для статических свойств при использовании с внутренними классами. Значение по умолчанию статического свойства нельзя отслеживать в классах, определенных пользователем.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ассоциативный массив (array) свойств по умолчанию, ключами которого являются имена свойств, а значениями - соответствующие значения по умолчанию или же NULL, если этому свойству не было задано значение по умолчанию. Функция не различает статические и нестатические свойства, а также не предоставляет информацию о модификаторах видимости при выводе.

Примеры

Пример #1 Пример использования ReflectionClass::getDefaultProperties()

<?php
class Bar {
    protected $inheritedProperty = 'унаследованное свойство по умолчанию';
}

class Foo extends Bar {
    public $property = 'свойство по умолчанию';
    private $privateProperty = 'закрытое свойство по умолчанию';
    public static $staticProperty = 'статическое свойство';
    public $defaultlessProperty;
}

$reflectionClass = new ReflectionClass('Foo');
var_dump($reflectionClass->getDefaultProperties());
?>

Результат выполнения данного примера:

array(5) {
  ["staticProperty"]=>
  string(39) "статическое свойство"
  ["property"]=>
  string(40) "свойство по умолчанию"
  ["privateProperty"]=>
  string(57) "закрытое свойство по умолчанию"
  ["defaultlessProperty"]=>
  NULL
  ["inheritedProperty"]=>
  string(69) "унаследованное свойство по умолчанию"
}

Смотрите также

  • ReflectionClass::getProperties() - Возвращает свойства
  • ReflectionClass::getStaticProperties() - Возвращает статические свойства
  • ReflectionClass::getProperty() - Возвращает экземпляр ReflectionProperty для свойства класса


Возвращает doc-блоки комментариев

  • « ReflectionClass::getDefaultProperties
  • ReflectionClass::getEndLine »
  • PHP Manual
  • ReflectionClass
  • Возвращает doc-блоки комментариев

ReflectionClass::getDocComment

(PHP 5, PHP 7)

ReflectionClass::getDocComment — Возвращает doc-блоки комментариев

Описание

public ReflectionClass::getDocComment ( void ) : string

Возвращает doc-блоки из комментариев класса. Doc-блок - это комментарий начинающийся с /**. Если над декларацией класса присутствует несколько doc-блоков, то будет возвращен ближайший к декларации.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

doc-блок комментариев, если он существует, в противном случае FALSE

Примеры

Пример #1 Пример использования ReflectionClass::getDocComment()

<?php
/**
* Тестовый класс
*
* @param  foo bar
* @return baz
*/
class TestClass { }

$rc = new ReflectionClass('TestClass');
var_dump($rc->getDocComment())
?>

Результат выполнения данного примера:

string(55) "/**
* Тестовый класс
*
* @param  foo bar
* @return baz
*/"

Смотрите также

  • ReflectionClass::getName() - Возвращает имя класса


Возвращает номер последней строки

  • « ReflectionClass::getDocComment
  • ReflectionClass::getExtension »
  • PHP Manual
  • ReflectionClass
  • Возвращает номер последней строки

ReflectionClass::getEndLine

(PHP 5, PHP 7)

ReflectionClass::getEndLine — Возвращает номер последней строки

Описание

public ReflectionClass::getEndLine ( void ) : int

Возвращает номер последней строки из определения пользовательского класса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Номер последней строки из определения пользовательского класса или FALSE, если номер неизвестен.

Примеры

Пример #1 Пример использования ReflectionClass::getEndLine()

<?php
// Тестовый класс
class TestClass { }

$rc = new ReflectionClass('TestClass');

echo $rc->getEndLine();
?>

Результат выполнения данного примера:

3

Смотрите также

  • ReflectionClass::getStartLine() - Возвращает номер начальной строки


Возвращает объект класса ReflectionExtension для расширения, определяющего класс

  • « ReflectionClass::getEndLine
  • ReflectionClass::getExtensionName »
  • PHP Manual
  • ReflectionClass
  • Возвращает объект класса ReflectionExtension для расширения, определяющего класс

ReflectionClass::getExtension

(PHP 5, PHP 7)

ReflectionClass::getExtension — Возвращает объект класса ReflectionExtension для расширения, определяющего класс

Описание

public ReflectionClass::getExtension ( void ) : ReflectionExtension

Возвращает объект класса ReflectionExtension для расширения, которое определяет класс.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Экземпляр класса ReflectionExtension, представляющий расширение, определяющее класс, или NULL для пользовательских классов.

Примеры

Пример #1 Пример использования ReflectionClass::getExtension()

<?php
$class = new ReflectionClass('ReflectionClass');
$extension = $class->getExtension();
var_dump($extension);
?>

Результат выполнения данного примера:

object(ReflectionExtension)#2 (1) {
  ["name"]=>
  string(10) "Reflection"
}

Смотрите также

  • ReflectionClass::getExtensionName() - Возвращает имя расширения, определяющее класс


Возвращает имя расширения, определяющее класс

  • « ReflectionClass::getExtension
  • ReflectionClass::getFileName »
  • PHP Manual
  • ReflectionClass
  • Возвращает имя расширения, определяющее класс

ReflectionClass::getExtensionName

(PHP 5, PHP 7)

ReflectionClass::getExtensionName — Возвращает имя расширения, определяющее класс

Описание

public ReflectionClass::getExtensionName ( void ) : string

Возвращает имя расширения, которое определяет класс.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя расширения, определяющее класс, или FALSE для пользовательских классов.

Примеры

Пример #1 Пример использования ReflectionClass::getExtensionName()

<?php
$class = new ReflectionClass('ReflectionClass');
$extension = $class->getExtensionName();
var_dump($extension);
?>

Результат выполнения данного примера:

string(10) "Reflection"

Смотрите также

  • ReflectionClass::getExtension() - Возвращает объект класса ReflectionExtension для расширения, определяющего класс


Возвращает имя файла, в котором определен класс

  • « ReflectionClass::getExtensionName
  • ReflectionClass::getInterfaceNames »
  • PHP Manual
  • ReflectionClass
  • Возвращает имя файла, в котором определен класс

ReflectionClass::getFileName

(PHP 5, PHP 7)

ReflectionClass::getFileName — Возвращает имя файла, в котором определен класс

Описание

public ReflectionClass::getFileName ( void ) : string

Возвращает имя файла, в котором определен класс.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла, в котором определен класс. Если класс определен в ядре PHP или в расширении PHP, возвращает FALSE.

Смотрите также

  • ReflectionClass::getExtensionName() - Возвращает имя расширения, определяющее класс


Возвращает имена интерфейсов

  • « ReflectionClass::getFileName
  • ReflectionClass::getInterfaces »
  • PHP Manual
  • ReflectionClass
  • Возвращает имена интерфейсов

ReflectionClass::getInterfaceNames

(PHP 5 >= 5.2.0, PHP 7)

ReflectionClass::getInterfaceNames — Возвращает имена интерфейсов

Описание

public ReflectionClass::getInterfaceNames ( void ) : array

Возвращает имена интерфейсов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив имен интерфейсов.

Примеры

Пример #1 Пример использования ReflectionClass::getInterfaceNames()

<?php
interface Foo { }

interface Bar { }

class Baz implements Foo, Bar { }

$rc1 = new ReflectionClass("Baz");

print_r($rc1->getInterfaceNames());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Foo
    [1] => Bar
)

Смотрите также

  • ReflectionClass::getInterfaces() - Возвращает интерфейсы


Возвращает интерфейсы

  • « ReflectionClass::getInterfaceNames
  • ReflectionClass::getMethod »
  • PHP Manual
  • ReflectionClass
  • Возвращает интерфейсы

ReflectionClass::getInterfaces

(PHP 5, PHP 7)

ReflectionClass::getInterfaces — Возвращает интерфейсы

Описание

public ReflectionClass::getInterfaces ( void ) : array

Возвращает интерфейсы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ассоциативный массив (array) интерфейсов, в котором ключами являются имена интерфейсов, а значениями - объекты ReflectionClass.

Примеры

Пример #1 Пример использования ReflectionClass::getInterfaces()

<?php
interface Foo { }

interface Bar { }

class Baz implements Foo, Bar { }

$rc1 = new ReflectionClass("Baz");

print_r($rc1->getInterfaces());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [Foo] => ReflectionClass Object
        (
            [name] => Foo
        )

    [Bar] => ReflectionClass Object
        (
            [name] => Bar
        )

)

Смотрите также

  • ReflectionClass::getInterfaceNames() - Возвращает имена интерфейсов


Возвращает экземпляр ReflectionMethod для метода класса

  • « ReflectionClass::getInterfaces
  • ReflectionClass::getMethods »
  • PHP Manual
  • ReflectionClass
  • Возвращает экземпляр ReflectionMethod для метода класса

ReflectionClass::getMethod

(PHP 5, PHP 7)

ReflectionClass::getMethod — Возвращает экземпляр ReflectionMethod для метода класса

Описание

public ReflectionClass::getMethod ( string $name ) : ReflectionMethod

Возвращает экземпляр ReflectionMethod для метода класса.

Список параметров

name

Исследуемый метод.

Возвращаемые значения

Экземпляр класса ReflectionMethod.

Ошибки

ReflectionException в случае, если метод не существует.

Примеры

Пример #1 Пример использования ReflectionClass::getMethod()

<?php
$class = new ReflectionClass('ReflectionClass');
$method = $class->getMethod('getMethod');
var_dump($method);
?>

Результат выполнения данного примера:

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(9) "getMethod"
  ["class"]=>
  string(15) "ReflectionClass"
}

Смотрите также

  • ReflectionClass::getMethods() - Возвращает список методов в виде массива


Возвращает список методов в виде массива

  • « ReflectionClass::getMethod
  • ReflectionClass::getModifiers »
  • PHP Manual
  • ReflectionClass
  • Возвращает список методов в виде массива

ReflectionClass::getMethods

(PHP 5, PHP 7)

ReflectionClass::getMethods — Возвращает список методов в виде массива

Описание

public ReflectionClass::getMethods ([ int $filter ] ) : array

Возвращает список методов в виде массива.

Список параметров

filter

Фильтрация результата для включения в список только методов с определенными атрибутами. По умолчанию фильтрации нет.

Комбинация из следующих констант через логическое ИЛИ:
ReflectionMethod::IS_STATIC,
ReflectionMethod::IS_PUBLIC,
ReflectionMethod::IS_PROTECTED,
ReflectionMethod::IS_PRIVATE,
ReflectionMethod::IS_ABSTRACT,
ReflectionMethod::IS_FINAL,
так что все методы с
любым из перечисленных
атрибутов будут возвращены.

Замечание: Обратите внимание, что прочие побитовые операции, к примеру ~ не будут работать так, как ожидается. Другими словами, например, невозможно получить все нестатические методы.

Возвращаемые значения

Массив (array) объектов класса ReflectionMethod, отражающих каждый метод.

Примеры

Пример #1 Пример использования ReflectionClass::getMethods()

<?php
class Apple {
    public function firstMethod() { }
    final protected function secondMethod() { }
    private static function thirdMethod() { }
}

$class = new ReflectionClass('Apple');
$methods = $class->getMethods();
var_dump($methods);
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  &object(ReflectionMethod)#2 (2) {
    ["name"]=>
    string(11) "firstMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [1]=>
  &object(ReflectionMethod)#3 (2) {
    ["name"]=>
    string(12) "secondMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [2]=>
  &object(ReflectionMethod)#4 (2) {
    ["name"]=>
    string(11) "thirdMethod"
    ["class"]=>
    string(5) "Apple"
  }
}

Пример #2 Пример фильтрации результата вызова ReflectionClass::getMethods()

<?php
class Apple {
    public function firstMethod() { }
    final protected function secondMethod() { }
    private static function thirdMethod() { }
}

$class = new ReflectionClass('Apple');
$methods = $class->getMethods(ReflectionMethod::IS_STATIC | ReflectionMethod::IS_FINAL);
var_dump($methods);
?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  &object(ReflectionMethod)#2 (2) {
    ["name"]=>
    string(12) "secondMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [1]=>
  &object(ReflectionMethod)#3 (2) {
    ["name"]=>
    string(11) "thirdMethod"
    ["class"]=>
    string(5) "Apple"
  }
}

Смотрите также

  • ReflectionClass::getMethod() - Возвращает экземпляр ReflectionMethod для метода класса
  • get_class_methods() - Возвращает массив имен методов класса


Возвращает информацию о модификаторах класса

  • « ReflectionClass::getMethods
  • ReflectionClass::getName »
  • PHP Manual
  • ReflectionClass
  • Возвращает информацию о модификаторах класса

ReflectionClass::getModifiers

(PHP 5, PHP 7)

ReflectionClass::getModifiers — Возвращает информацию о модификаторах класса

Описание

public ReflectionClass::getModifiers ( void ) : int

Возвращает битовую маску модификаторов для данного метода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает битовую маску из констант модификаторов.

Смотрите также

  • ReflectionClass::getProperties() - Возвращает свойства
  • Reflection::getModifierNames() - Получение имен модификаторов


Возвращает имя класса

  • « ReflectionClass::getModifiers
  • ReflectionClass::getNamespaceName »
  • PHP Manual
  • ReflectionClass
  • Возвращает имя класса

ReflectionClass::getName

(PHP 5, PHP 7)

ReflectionClass::getName — Возвращает имя класса

Описание

public ReflectionClass::getName ( void ) : string

Возвращает имя класса.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя класса.

Примеры

Пример #1 Пример использования ReflectionClass::getName()

<?php
namespace A\B;

class Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

Результат выполнения данного примера:

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Смотрите также

  • ReflectionClass::getNamespaceName() - Возвращает название пространства имён


Возвращает название пространства имён

  • « ReflectionClass::getName
  • ReflectionClass::getParentClass »
  • PHP Manual
  • ReflectionClass
  • Возвращает название пространства имён

ReflectionClass::getNamespaceName

(PHP 5 >= 5.3.0, PHP 7)

ReflectionClass::getNamespaceName — Возвращает название пространства имён

Описание

public ReflectionClass::getNamespaceName ( void ) : string

Возвращает название пространства имён.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Название пространства имён.

Примеры

Пример #1 Пример использования ReflectionClass::getNamespaceName()

<?php
namespace A\B;

class Foo { }

$class = new \ReflectionClass('stdClass');

var_dump($class->inNamespace());
var_dump($class->getName());
var_dump($class->getNamespaceName());
var_dump($class->getShortName());

$class = new \ReflectionClass('A\\B\\Foo');

var_dump($class->inNamespace());
var_dump($class->getName());
var_dump($class->getNamespaceName());
var_dump($class->getShortName());
?>

Результат выполнения данного примера:

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Смотрите также

  • ReflectionClass::getParentClass() - Возвращает родительский класс
  • namespaces


Возвращает родительский класс

  • « ReflectionClass::getNamespaceName
  • ReflectionClass::getProperties »
  • PHP Manual
  • ReflectionClass
  • Возвращает родительский класс

ReflectionClass::getParentClass

(PHP 5, PHP 7)

ReflectionClass::getParentClass — Возвращает родительский класс

Описание

public ReflectionClass::getParentClass ( void ) : ReflectionClass

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса ReflectionClass, либо FALSE, если родителя нет.

Смотрите также

  • ReflectionClass::__construct() - Создаёт объект класса ReflectionClass


Возвращает свойства

  • « ReflectionClass::getParentClass
  • ReflectionClass::getProperty »
  • PHP Manual
  • ReflectionClass
  • Возвращает свойства

ReflectionClass::getProperties

(PHP 5, PHP 7)

ReflectionClass::getProperties — Возвращает свойства

Описание

public ReflectionClass::getProperties ([ int $filter ] ) : array

Возвращает reflected (отражённые) свойства.

Список параметров

filter

Опциональный фильтр, позволяющий возвращать только желаемые типы свойств. Он настраивается с помощью констант ReflectionProperty, по умолчанию позволяет возвращать свойства всех типов.

Возвращаемые значения

Массив объектов класса ReflectionProperty.

Примеры

Пример #1 Пример фильтрации с помощью ReflectionClass::getProperties()

В этом примере демонстрируется использование параметра filter, который в данном случае не пропускает private (закрытые) свойства.

<?php
class Foo {
    public    $foo  = 1;
    protected $bar  = 2;
    private   $baz  = 3;
}

$foo = new Foo();

$reflect = new ReflectionClass($foo);
$props   = $reflect->getProperties(ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PROTECTED);

foreach ($props as $prop) {
    print $prop->getName() . "\n";
}

var_dump($props);

?>

Результатом выполнения данного примера будет что-то подобное:

foo
bar
array(2) {
  [0]=>
  object(ReflectionProperty)#3 (2) {
    ["name"]=>
    string(3) "foo"
    ["class"]=>
    string(3) "Foo"
  }
  [1]=>
  object(ReflectionProperty)#4 (2) {
    ["name"]=>
    string(3) "bar"
    ["class"]=>
    string(3) "Foo"
  }
}

Смотрите также

  • ReflectionClass::getProperty() - Возвращает экземпляр ReflectionProperty для свойства класса
  • ReflectionProperty
  • константы ReflectionProperty


Возвращает экземпляр ReflectionProperty для свойства класса

  • « ReflectionClass::getProperties
  • ReflectionClass::getReflectionConstant »
  • PHP Manual
  • ReflectionClass
  • Возвращает экземпляр ReflectionProperty для свойства класса

ReflectionClass::getProperty

(PHP 5, PHP 7)

ReflectionClass::getProperty — Возвращает экземпляр ReflectionProperty для свойства класса

Описание

public ReflectionClass::getProperty ( string $name ) : ReflectionProperty

Возвращает экземпляр ReflectionProperty для свойства класса.

Список параметров

name

Имя свойства.

Возвращаемые значения

Объект класса ReflectionProperty.

Примеры

Пример #1 Пример использования ReflectionClass::getProperty()

<?php
$class = new ReflectionClass('ReflectionClass');
$property = $class->getProperty('name');
var_dump($property);
?>

Результат выполнения данного примера:

object(ReflectionProperty)#2 (2) {
  ["name"]=>
  string(4) "name"
  ["class"]=>
  string(15) "ReflectionClass"
}

Смотрите также

  • ReflectionClass::getProperties() - Возвращает свойства


Получает ReflectionClassConstant для константы класса

  • « ReflectionClass::getProperty
  • ReflectionClass::getReflectionConstants »
  • PHP Manual
  • ReflectionClass
  • Получает ReflectionClassConstant для константы класса

ReflectionClass::getReflectionConstant

(PHP 7 >= 7.1.0)

ReflectionClass::getReflectionConstant — Получает ReflectionClassConstant для константы класса

Описание

public ReflectionClass::getReflectionConstant ( string $name ) : ReflectionClassConstant

Получает ReflectionClassConstant для свойства константы.

Список параметров

name

Имя константы класса.

Возвращаемые значения

Объект ReflectionClassConstant.

Смотрите также

  • ReflectionClass::getReflectionConstants() - Получает константы класса
  • ReflectionClassConstant


Получает константы класса

  • « ReflectionClass::getReflectionConstant
  • ReflectionClass::getShortName »
  • PHP Manual
  • ReflectionClass
  • Получает константы класса

ReflectionClass::getReflectionConstants

(PHP 7 >= 7.1.0)

ReflectionClass::getReflectionConstants — Получает константы класса

Описание

public ReflectionClass::getReflectionConstants ( void ) : array

Получает reflected (отражённые) константы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив объектов ReflectionClassConstant.

Примеры

Пример #1 Простой пример использования ReflectionClass::getReflectionConstants()

<?php
class Foo {
    public    const FOO  = 1;
    protected const BAR  = 2;
    private   const BAZ  = 3;
}

$foo = new Foo();

$reflect = new ReflectionClass($foo);
$consts  = $reflect->getReflectionConstants();

foreach ($consts as $const) {
    print $const->getName() . "\n";
}

var_dump($consts);

?>

Результатом выполнения данного примера будет что-то подобное:

FOO
BAR
BAZ
array(3) {
  [0]=>
  object(ReflectionClassConstant)#3 (2) {
    ["name"]=>
    string(3) "FOO"
    ["class"]=>
    string(3) "Foo"
  }
  [1]=>
  object(ReflectionClassConstant)#4 (2) {
    ["name"]=>
    string(3) "BAR"
    ["class"]=>
    string(3) "Foo"
  }
  [2]=>
  object(ReflectionClassConstant)#5 (2) {
    ["name"]=>
    string(3) "BAZ"
    ["class"]=>
    string(3) "Foo"
  }
}

Смотрите также

  • ReflectionClass::getReflectionConstant() - Получает ReflectionClassConstant для константы класса
  • ReflectionClassConstant


Возвращает короткое имя

  • « ReflectionClass::getReflectionConstants
  • ReflectionClass::getStartLine »
  • PHP Manual
  • ReflectionClass
  • Возвращает короткое имя

ReflectionClass::getShortName

(PHP 5 >= 5.3.0, PHP 7)

ReflectionClass::getShortName — Возвращает короткое имя

Описание

public ReflectionClass::getShortName ( void ) : string

Возвращает короткое имя класса, часть, которая не относится к названию пространства имён.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Короткое имя класса.

Примеры

Пример #1 Пример использования ReflectionClass::getShortName()

<?php
namespace A\B;

class Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

Результат выполнения данного примера:

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Смотрите также

  • ReflectionClass::getName() - Возвращает имя класса


Возвращает номер начальной строки

  • « ReflectionClass::getShortName
  • ReflectionClass::getStaticProperties »
  • PHP Manual
  • ReflectionClass
  • Возвращает номер начальной строки

ReflectionClass::getStartLine

(PHP 5, PHP 7)

ReflectionClass::getStartLine — Возвращает номер начальной строки

Описание

public ReflectionClass::getStartLine ( void ) : int

Возвращает номер начальной строки.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Номер начальной строки в виде целого числа (integer).

Смотрите также

  • ReflectionClass::getEndLine() - Возвращает номер последней строки


Возвращает статические свойства

  • « ReflectionClass::getStartLine
  • ReflectionClass::getStaticPropertyValue »
  • PHP Manual
  • ReflectionClass
  • Возвращает статические свойства

ReflectionClass::getStaticProperties

(PHP 5, PHP 7)

ReflectionClass::getStaticProperties — Возвращает статические свойства

Описание

public ReflectionClass::getStaticProperties ( void ) : array

Возвращает статические свойства.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) статических свойств.

Смотрите также

  • ReflectionClass::getStaticPropertyValue() - Возвращает значение статического свойства
  • ReflectionClass::setStaticPropertyValue() - Устанавливает значение статического свойства


Возвращает значение статического свойства

  • « ReflectionClass::getStaticProperties
  • ReflectionClass::getTraitAliases »
  • PHP Manual
  • ReflectionClass
  • Возвращает значение статического свойства

ReflectionClass::getStaticPropertyValue

(PHP 5 >= 5.1.2, PHP 7)

ReflectionClass::getStaticPropertyValue — Возвращает значение статического свойства

Описание

public ReflectionClass::getStaticPropertyValue ( string $name [, mixed &$def_value ] ) : mixed

Возвращает значение статического свойства класса.

Список параметров

name

Имя статического свойства, значение которого необходимо получить

def_value

Значение по умолчанию, возвращаемое в случае, если в классе не определено статическое свойство с заданным именем name. Если свойство не существует и этот аргумент не задан, то выбрасывается ReflectionException.

Возвращаемые значения

Значение статического свойства.

Примеры

Пример #1 Пример использования ReflectionClass::getStaticPropertyValue()

<?php
class Apple {
    public static $color = 'Red';
}

$class = new ReflectionClass('Apple');
var_dump($class->getStaticPropertyValue('color'));
?>

Результат выполнения данного примера:

string(3) "Red"

Смотрите также

  • ReflectionClass::getStaticProperties() - Возвращает статические свойства
  • ReflectionClass::setStaticPropertyValue() - Устанавливает значение статического свойства


Возвращает массив псевдонимов трейтов

  • « ReflectionClass::getStaticPropertyValue
  • ReflectionClass::getTraitNames »
  • PHP Manual
  • ReflectionClass
  • Возвращает массив псевдонимов трейтов

ReflectionClass::getTraitAliases

(PHP 5 >= 5.4.0, PHP 7)

ReflectionClass::getTraitAliases — Возвращает массив псевдонимов трейтов

Описание

public ReflectionClass::getTraitAliases ( void ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив, ключами которого являются новые имена методов, а в значениями - оригинальные имена методов (в формате "TraitName::original"). В случае возникновения ошибки возвращает NULL.


Возвращает массив имён трейтов, используемых в этом классе

  • « ReflectionClass::getTraitAliases
  • ReflectionClass::getTraits »
  • PHP Manual
  • ReflectionClass
  • Возвращает массив имён трейтов, используемых в этом классе

ReflectionClass::getTraitNames

(PHP 5 >= 5.4.0, PHP 7)

ReflectionClass::getTraitNames — Возвращает массив имён трейтов, используемых в этом классе

Описание

public ReflectionClass::getTraitNames ( void ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, значениями которого являются имена трейтов. В случае возникновения ошибки возвращает NULL.


Возвращает массив трейтов, используемых в этом классе

  • « ReflectionClass::getTraitNames
  • ReflectionClass::hasConstant »
  • PHP Manual
  • ReflectionClass
  • Возвращает массив трейтов, используемых в этом классе

ReflectionClass::getTraits

(PHP 5 >= 5.4.0, PHP 7)

ReflectionClass::getTraits — Возвращает массив трейтов, используемых в этом классе

Описание

public ReflectionClass::getTraits ( void ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив, ключами которого являются имена трейтов, а значениями - объекты ReflectionClass для каждого трейта. В случае возникновения ошибки возвращает NULL.


Проверяет, определена ли константа

  • « ReflectionClass::getTraits
  • ReflectionClass::hasMethod »
  • PHP Manual
  • ReflectionClass
  • Проверяет, определена ли константа

ReflectionClass::hasConstant

(PHP 5 >= 5.1.2, PHP 7)

ReflectionClass::hasConstant — Проверяет, определена ли константа

Описание

public ReflectionClass::hasConstant ( string $name ) : bool

Проверяет, определена ли в классе указанная константа или нет.

Список параметров

name

Имя проверяемой константы.

Возвращаемые значения

TRUE, если константа определена, в противном случае FALSE.

Примеры

Пример #1 Пример использования ReflectionClass::hasConstant()

<?php
class Foo {
    const c1 = 1;
}

$class = new ReflectionClass("Foo");

var_dump($class->hasConstant("c1"));
var_dump($class->hasConstant("c2"));
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)

Смотрите также

  • ReflectionClass::hasMethod() - Проверяет, задан ли метод
  • ReflectionClass::hasProperty() - Проверяет, определено ли свойство


Проверяет, задан ли метод

  • « ReflectionClass::hasConstant
  • ReflectionClass::hasProperty »
  • PHP Manual
  • ReflectionClass
  • Проверяет, задан ли метод

ReflectionClass::hasMethod

(PHP 5 >= 5.1.2, PHP 7)

ReflectionClass::hasMethod — Проверяет, задан ли метод

Описание

public ReflectionClass::hasMethod ( string $name ) : bool

Проверяет, определен ли в классе указанный метод или нет.

Список параметров

name

Имя проверяемого метода.

Возвращаемые значения

TRUE, если метод определен, в противном случае FALSE

Примеры

Пример #1 Пример использования ReflectionClass::hasMethod()

<?php
Class C {
    public function publicFoo() {
        return true;
    }

    protected function protectedFoo() {
        return true;
    }

    private function privateFoo() {
        return true;
    }

    static function staticFoo() {
        return true;
    }
}

$rc = new ReflectionClass("C");

var_dump($rc->hasMethod('publicFoo'));

var_dump($rc->hasMethod('protectedFoo'));

var_dump($rc->hasMethod('privateFoo'));

var_dump($rc->hasMethod('staticFoo'));

// C не имеет метода bar
var_dump($rc->hasMethod('bar'));

// Имена методов регистронезависимые
var_dump($rc->hasMethod('PUBLICfOO'));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)

Смотрите также

  • ReflectionClass::hasConstant() - Проверяет, определена ли константа
  • ReflectionClass::hasProperty() - Проверяет, определено ли свойство


Проверяет, определено ли свойство

  • « ReflectionClass::hasMethod
  • ReflectionClass::implementsInterface »
  • PHP Manual
  • ReflectionClass
  • Проверяет, определено ли свойство

ReflectionClass::hasProperty

(PHP 5 >= 5.1.2, PHP 7)

ReflectionClass::hasProperty — Проверяет, определено ли свойство

Описание

public ReflectionClass::hasProperty ( string $name ) : bool

Проверяет, определено ли в классе указанное свойство или нет.

Список параметров

name

Имя проверяемого свойства.

Возвращаемые значения

TRUE, если свойство задано, в противном случае FALSE

Примеры

Пример #1 Пример использования ReflectionClass::hasProperty()

<?php
class Foo {
    public    $p1;
    protected $p2;
    private   $p3;

}

$obj = new ReflectionObject(new Foo());

var_dump($obj->hasProperty("p1"));
var_dump($obj->hasProperty("p2"));
var_dump($obj->hasProperty("p3"));
var_dump($obj->hasProperty("p4"));
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(true)
bool(false)

Смотрите также

  • ReflectionClass::hasConstant() - Проверяет, определена ли константа
  • ReflectionClass::hasMethod() - Проверяет, задан ли метод


Проверяет, реализуется ли интерфейс

  • « ReflectionClass::hasProperty
  • ReflectionClass::inNamespace »
  • PHP Manual
  • ReflectionClass
  • Проверяет, реализуется ли интерфейс

ReflectionClass::implementsInterface

(PHP 5, PHP 7)

ReflectionClass::implementsInterface — Проверяет, реализуется ли интерфейс

Описание

public ReflectionClass::implementsInterface ( string $interface ) : bool

Проверяет, реализует ли класс указанный интерфейс или нет.

Список параметров

interface

Имя интерфейса.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ReflectionClass::isInterface() - Проверяет, является ли класс интерфейсом
  • ReflectionClass::isSubclassOf() - Проверяет, является ли класс подклассом
  • interface_exists() - Проверяет, определен ли интерфейс
  • Интерфейсы объектов


Проверяет, определён ли класс в пространстве имён

  • « ReflectionClass::implementsInterface
  • ReflectionClass::isAbstract »
  • PHP Manual
  • ReflectionClass
  • Проверяет, определён ли класс в пространстве имён

ReflectionClass::inNamespace

(PHP 5 >= 5.3.0, PHP 7)

ReflectionClass::inNamespace — Проверяет, определён ли класс в пространстве имён

Описание

public ReflectionClass::inNamespace ( void ) : bool

Проверяет, определён ли класс в пространстве имён.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ReflectionClass::inNamespace()

<?php
namespace A\B;

class Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

Результат выполнения данного примера:

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Смотрите также

  • ReflectionClass::getNamespaceName() - Возвращает название пространства имён
  • Пространства имён PHP


Проверяет, является ли класс абстрактным

  • « ReflectionClass::inNamespace
  • ReflectionClass::isAnonymous »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс абстрактным

ReflectionClass::isAbstract

(PHP 5, PHP 7)

ReflectionClass::isAbstract — Проверяет, является ли класс абстрактным

Описание

public ReflectionClass::isAbstract ( void ) : bool

Проверяет, является ли класс абстрактным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ReflectionClass::isAbstract()

<?php
class          TestClass { }
abstract class TestAbstractClass { }

$testClass     = new ReflectionClass('TestClass');
$abstractClass = new ReflectionClass('TestAbstractClass');

var_dump($testClass->isAbstract());
var_dump($abstractClass->isAbstract());
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • ReflectionClass::isInterface() - Проверяет, является ли класс интерфейсом
  • Абстрактные классы


Проверяет, является класс анонимным

  • « ReflectionClass::isAbstract
  • ReflectionClass::isCloneable »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является класс анонимным

ReflectionClass::isAnonymous

(PHP 7)

ReflectionClass::isAnonymous — Проверяет, является класс анонимным

Описание

public ReflectionClass::isAnonymous ( void ) : bool

Проверяет, анонимный класс или нет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример ReflectionClass::isAnonymous()

<?php
class TestClass {}
$anonClass = new class {};

$normalClass = new ReflectionClass('TestClass');
$anonClass  = new ReflectionClass($anonClass);

var_dump($normalClass->isAnonymous());
var_dump($anonClass->isAnonymous());

?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • ReflectionClass::isFinal() - Проверяет, является ли класс окончательным (final)


Проверяет, можно ли клонировать этот класс

  • « ReflectionClass::isAnonymous
  • ReflectionClass::isFinal »
  • PHP Manual
  • ReflectionClass
  • Проверяет, можно ли клонировать этот класс

ReflectionClass::isCloneable

(PHP 5 >= 5.4.0, PHP 7)

ReflectionClass::isCloneable — Проверяет, можно ли клонировать этот класс

Описание

public ReflectionClass::isCloneable ( void ) : bool

Проверяет, можно ли клонировать этот класс.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если класс можно клонировать, в противном случае FALSE.

Примеры

Пример #1 Пример использования ReflectionClass::isCloneable()

<?php
class NotCloneable {
    public $var1;

    private function __clone() {
    }
}

class Cloneable {
    public $var1;
}

$notCloneable = new ReflectionClass('NotCloneable');
$cloneable = new ReflectionClass('Cloneable');

var_dump($notCloneable->isCloneable());
var_dump($cloneable->isCloneable());
?>

Результат выполнения данного примера:

bool(false)
bool(true)


Проверяет, является ли класс окончательным (final)

  • « ReflectionClass::isCloneable
  • ReflectionClass::isInstance »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс окончательным (final)

ReflectionClass::isFinal

(PHP 5, PHP 7)

ReflectionClass::isFinal — Проверяет, является ли класс окончательным (final)

Описание

public ReflectionClass::isFinal ( void ) : bool

Проверяет, является ли класс окончательным (final).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ReflectionClass::isFinal()

<?php
class       TestClass { }
final class TestFinalClass { }

$normalClass = new ReflectionClass('TestClass');
$finalClass  = new ReflectionClass('TestFinalClass');

var_dump($normalClass->isFinal());
var_dump($finalClass->isFinal());

?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • ReflectionClass::isAbstract() - Проверяет, является ли класс абстрактным
  • Ключевое слово "final"


Проверяет, принадлежит ли объект классу

  • « ReflectionClass::isFinal
  • ReflectionClass::isInstantiable »
  • PHP Manual
  • ReflectionClass
  • Проверяет, принадлежит ли объект классу

ReflectionClass::isInstance

(PHP 5, PHP 7)

ReflectionClass::isInstance — Проверяет, принадлежит ли объект классу

Описание

public ReflectionClass::isInstance ( object $object ) : bool

Проверяет, является ли объект экземпляром класса.

Список параметров

object

Проверяемый объект.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ReflectionClass::isInstance() и его аналогов

<?php
// Пример использования
$class = new ReflectionClass('Foo');

if ($class->isInstance($arg)) {
    echo "Yes";
}

// Аналогично этому
if ($arg instanceof Foo) {
    echo "Yes";
}

// Аналогично этому
if (is_a($arg, 'Foo')) {
    echo "Yes";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Yes
Yes
Yes

Смотрите также

  • ReflectionClass::isInterface() - Проверяет, является ли класс интерфейсом
  • Операторы проверки типа (instanceof)
  • Интерфейсы объектов
  • is_a() - Проверяет, принадлежит ли объект к данному классу или является ли этот класс одним из его родителей


Проверяет, можно ли создать экземпляр класса

  • « ReflectionClass::isInstance
  • ReflectionClass::isInterface »
  • PHP Manual
  • ReflectionClass
  • Проверяет, можно ли создать экземпляр класса

ReflectionClass::isInstantiable

(PHP 5, PHP 7)

ReflectionClass::isInstantiable — Проверяет, можно ли создать экземпляр класса

Описание

public ReflectionClass::isInstantiable ( void ) : bool

Проверяет, можно ли создать экземпляр класса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ReflectionClass::isInstantiable()

<?php
class C { }

interface iface {
    function f1();
}

class ifaceImpl implements iface {
    function f1() {}
}

abstract class abstractClass {
    function f1() { }
    abstract function f2();
}

class D extends abstractClass {
    function f2() { }
}

trait T {
    function f1() {}
}

class privateConstructor {
    private function __construct() { }
}

$classes = array(
    "C",
    "iface",
    "ifaceImpl",
    "abstractClass",
    "D",
    "T",
    "privateConstructor",
);

foreach($classes  as $class ) {
    $reflectionClass = new ReflectionClass($class);
    echo "Можно ли создать экземпляр класса $class?  ";
    var_dump($reflectionClass->isInstantiable());
}

?>

Результат выполнения данного примера:

Можно ли создать экземпляр класса C?  bool(true)
Можно ли создать экземпляр класса iface?  bool(false)
Можно ли создать экземпляр класса ifaceImpl?  bool(true)
Можно ли создать экземпляр класса abstractClass?  bool(false)
Можно ли создать экземпляр класса D?  bool(true)
Можно ли создать экземпляр класса T?  bool(false)
Можно ли создать экземпляр класса privateConstructor?  bool(false)

Смотрите также

  • ReflectionClass::isInstance() - Проверяет, принадлежит ли объект классу


Проверяет, является ли класс интерфейсом

  • « ReflectionClass::isInstantiable
  • ReflectionClass::isInternal »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс интерфейсом

ReflectionClass::isInterface

(PHP 5, PHP 7)

ReflectionClass::isInterface — Проверяет, является ли класс интерфейсом

Описание

public ReflectionClass::isInterface ( void ) : bool

Проверяет, является ли класс интерфейсом или нет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ReflectionClass::isInterface()

<?php
interface SomeInterface {
    public function interfaceMethod();
}

$class = new ReflectionClass('SomeInterface');
var_dump($class->isInterface());
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • ReflectionClass::isInstance() - Проверяет, принадлежит ли объект классу


Проверяет, является ли класс встроенным в расширение или в ядро

  • « ReflectionClass::isInterface
  • ReflectionClass::isIterable »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс встроенным в расширение или в ядро

ReflectionClass::isInternal

(PHP 5, PHP 7)

ReflectionClass::isInternal — Проверяет, является ли класс встроенным в расширение или в ядро

Описание

public ReflectionClass::isInternal ( void ) : bool

Проверяет, является ли класс встроенным в расширение или в ядро, а не пользовательским.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ReflectionClass::isInternal()

<?php
$internalclass = new ReflectionClass('ReflectionClass');

class Apple {}
$userclass = new ReflectionClass('Apple');

var_dump($internalclass->isInternal());
var_dump($userclass->isInternal());
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Смотрите также

  • ReflectionClass::isUserDefined() - Проверяет, является ли класс пользовательским


Проверить, является ли класс итерируемым

  • « ReflectionClass::isInternal
  • ReflectionClass::isIterateable »
  • PHP Manual
  • ReflectionClass
  • Проверить, является ли класс итерируемым

ReflectionClass::isIterable

(PHP 7 >= 7.2.0)

ReflectionClass::isIterable — Проверить, является ли класс итерируемым

Описание

public ReflectionClass::isIterable ( void ) : bool

Проверяет, реализует ли класс интерфейс Iterator (т.е. можно ли использовать его в foreach).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Использование ReflectionClass::isIterable()

<?php

class IteratorClass implements Iterator {
    public function __construct() { }
    public function key() { }
    public function current() { }
    function next() { }
    function valid() { }
    function rewind() { }
}
class DerivedClass extends IteratorClass { }
class NonIterator { }

function dump_iterable($class) {
    $reflection = new ReflectionClass($class);
    var_dump($reflection->isIterable());
}

$classes = array("ArrayObject", "IteratorClass", "DerivedClass", "NonIterator");

foreach ($classes as $class) {
    echo "Класс $class итерируемый? ";
    dump_iterable($class);
}
?>

Результат выполнения данного примера:

Класс ArrayObject итерируемый? bool(true)
Класс IteratorClass итерируемый? bool(true)
Класс DerivedClass итерируемый? bool(true)
Класс NonIterator итерируемый? bool(false)

Смотрите также

  • ReflectionClass::__construct() - Создаёт объект класса ReflectionClass


Псевдоним ReflectionClass::isIterable

  • « ReflectionClass::isIterable
  • ReflectionClass::isSubclassOf »
  • PHP Manual
  • ReflectionClass
  • Псевдоним ReflectionClass::isIterable

ReflectionClass::isIterateable

(PHP 5, PHP 7)

ReflectionClass::isIterateable — Псевдоним ReflectionClass::isIterable()

Описание

Псевдоним ReflectionClass::isIterable()

Начиная с PHP 7.2.0, вместо метода RefectionClass::isIterateable(), , в имя которого закралась синтаксическая ошибка, стоит использовать правильно именованный метод ReflectionClass::isIterable().


Проверяет, является ли класс подклассом

  • « ReflectionClass::isIterateable
  • ReflectionClass::isTrait »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс подклассом

ReflectionClass::isSubclassOf

(PHP 5, PHP 7)

ReflectionClass::isSubclassOf — Проверяет, является ли класс подклассом

Описание

public ReflectionClass::isSubclassOf ( mixed $class ) : bool

Проверяет, является ли класс подклассом указанного класса или реализует ли указанный интерфейс.

Список параметров

class

Строка с именем проверяемого класса либо объект класса ReflectionClass.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ReflectionClass::isInterface() - Проверяет, является ли класс интерфейсом
  • ReflectionClass::implementsInterface() - Проверяет, реализуется ли интерфейс
  • is_subclass_of() - Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его
  • get_parent_class() - Возвращает имя родительского класса для объекта или класса


Проверяет, является ли это трейтом

  • « ReflectionClass::isSubclassOf
  • ReflectionClass::isUserDefined »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли это трейтом

ReflectionClass::isTrait

(PHP 5 >= 5.4.0, PHP 7)

ReflectionClass::isTrait — Проверяет, является ли это трейтом

Описание

public ReflectionClass::isTrait ( void ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если это является трейтом, в противном случае FALSE. В случае возникновения ошибки возвращает NULL.


Проверяет, является ли класс пользовательским

  • « ReflectionClass::isTrait
  • ReflectionClass::newInstance »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс пользовательским

ReflectionClass::isUserDefined

(PHP 5, PHP 7)

ReflectionClass::isUserDefined — Проверяет, является ли класс пользовательским

Описание

public ReflectionClass::isUserDefined ( void ) : bool

Проверяет, является ли класс пользовательским, а не встроенным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ReflectionClass::isInternal() - Проверяет, является ли класс встроенным в расширение или в ядро


Создаёт экземпляр класса с переданными аргументами

  • « ReflectionClass::isUserDefined
  • ReflectionClass::newInstanceArgs »
  • PHP Manual
  • ReflectionClass
  • Создаёт экземпляр класса с переданными аргументами

ReflectionClass::newInstance

(PHP 5, PHP 7)

ReflectionClass::newInstance — Создаёт экземпляр класса с переданными аргументами

Описание

public ReflectionClass::newInstance ([ mixed $... ] ) : object

Создаёт новый экземпляр класса. Принятые аргументы передаются в конструктор класса.

Список параметров

...

Принимает произвольное число аргументов, подобно функции call_user_func(), которые затем передаются в конструктор класса.

Возвращаемые значения

Ошибки

Если конструктор не является общедоступным (public), то это приведёт к выбрасыванию исключения ReflectionException.

Если конструктор отсутствует, а параметр ... имеет один и более аргументов, то это приведёт к выбрасыванию исключения ReflectionException.

Смотрите также

  • ReflectionClass::newInstanceArgs() - Создаёт экземпляр класса с переданными параметрами
  • ReflectionClass::newInstanceWithoutConstructor() - Создаёт новый экземпляр класса без вызова конструктора


Создаёт экземпляр класса с переданными параметрами

  • « ReflectionClass::newInstance
  • ReflectionClass::newInstanceWithoutConstructor »
  • PHP Manual
  • ReflectionClass
  • Создаёт экземпляр класса с переданными параметрами

ReflectionClass::newInstanceArgs

(PHP 5 >= 5.1.3, PHP 7)

ReflectionClass::newInstanceArgs — Создаёт экземпляр класса с переданными параметрами

Описание

public ReflectionClass::newInstanceArgs ([ array $args ] ) : object

Создаёт новый экземпляр класса. Принятые аргументы передаются в конструктор класса.

Список параметров

args

Массив (array) аргументов, который затем передаётся в конструктор класса.

Возвращаемые значения

Возвращает новый экземпляр класса.

Примеры

Пример #1 Пример использования ReflectionClass::newInstanceArgs()

<?php
$class = new ReflectionClass('ReflectionFunction');
$instance = $class->newInstanceArgs(array('substr'));
var_dump($instance);
?>

Результат выполнения данного примера:

object(ReflectionFunction)#2 (1) {
  ["name"]=>
  string(6) "substr"
}

Ошибки

Если конструктор не является public (общедоступным), то это приведёт к генерации исключения ReflectionException.

Если конструктор отсутствует, а параметр args имеет один и более аргументов, то это приведёт к генерации исключения ReflectionException.

Смотрите также

  • ReflectionClass::newInstance() - Создаёт экземпляр класса с переданными аргументами
  • ReflectionClass::newInstanceWithoutConstructor() - Создаёт новый экземпляр класса без вызова конструктора


Создаёт новый экземпляр класса без вызова конструктора

  • « ReflectionClass::newInstanceArgs
  • ReflectionClass::setStaticPropertyValue »
  • PHP Manual
  • ReflectionClass
  • Создаёт новый экземпляр класса без вызова конструктора

ReflectionClass::newInstanceWithoutConstructor

(PHP 5 >= 5.4.0, PHP 7)

ReflectionClass::newInstanceWithoutConstructor — Создаёт новый экземпляр класса без вызова конструктора

Описание

public ReflectionClass::newInstanceWithoutConstructor ( void ) : object

Создаёт новый экземпляр класса без вызова конструктора.

Список параметров

Возвращаемые значения

Список изменений

Версия | Описание
5.6.0 | Теперь можно создавать экземпляры всех встроенных классов, кроме объявленных как final.

Ошибки

Если класс является встроенным, и его экземпляр не может быть создан без вызова конструктора, то это приведёт к генерации исключения ReflectionException. В PHP 5.6.0 и новее это исключение ограничено только классами с модификатором final.

Смотрите также

  • ReflectionClass::newInstance() - Создаёт экземпляр класса с переданными аргументами
  • ReflectionClass::newInstanceArgs() - Создаёт экземпляр класса с переданными параметрами


Устанавливает значение статического свойства

  • « ReflectionClass::newInstanceWithoutConstructor
  • ReflectionClass::__toString »
  • PHP Manual
  • ReflectionClass
  • Устанавливает значение статического свойства

ReflectionClass::setStaticPropertyValue

(PHP 5 >= 5.1.2, PHP 7)

ReflectionClass::setStaticPropertyValue — Устанавливает значение статического свойства

Описание

public ReflectionClass::setStaticPropertyValue ( string $name , mixed $value ) : void

Устанавливает значение статического (static) свойства.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Имя свойства.

value

Новое значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ReflectionClass::getStaticPropertyValue() - Возвращает значение статического свойства


Возвращает строковое представление объекта класса ReflectionClass

  • « ReflectionClass::setStaticPropertyValue
  • ReflectionClassConstant »
  • PHP Manual
  • ReflectionClass
  • Возвращает строковое представление объекта класса ReflectionClass

ReflectionClass::__toString

(PHP 5, PHP 7)

ReflectionClass::__toString — Возвращает строковое представление объекта класса ReflectionClass

Описание

public ReflectionClass::__toString ( void ) : string

Возвращает строковое представление объекта класса ReflectionClass.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строковое представление экземпляра класса ReflectionClass.

Примеры

Пример #1 Пример использования ReflectionClass::__toString()

<?php
$reflectionClass = new ReflectionClass('Exception');
echo $reflectionClass->__toString();
?>

Результат выполнения данного примера:

Class [ <internal:Core> class Exception ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [7] {
    Property [ <default> protected $message ]
    Property [ <default> private $string ]
    Property [ <default> protected $code ]
    Property [ <default> protected $file ]
    Property [ <default> protected $line ]
    Property [ <default> private $trace ]
    Property [ <default> private $previous ]
  }

  - Methods [10] {
    Method [ <internal:Core> final private method __clone ] {
    }

    Method [ <internal:Core, ctor> public method __construct ] {

      - Parameters [3] {
        Parameter #0 [ <optional> $message ]
        Parameter #1 [ <optional> $code ]
        Parameter #2 [ <optional> $previous ]
      }
    }

    Method [ <internal:Core> final public method getMessage ] {
    }

    Method [ <internal:Core> final public method getCode ] {
    }

    Method [ <internal:Core> final public method getFile ] {
    }

    Method [ <internal:Core> final public method getLine ] {
    }

    Method [ <internal:Core> final public method getTrace ] {
    }

    Method [ <internal:Core> final public method getPrevious ] {
    }

    Method [ <internal:Core> final public method getTraceAsString ] {
    }

    Method [ <internal:Core> public method __toString ] {
    }
  }
}

Смотрите также

  • ReflectionClass::export() - Экспортирует класс
  • __toString()


Класс ReflectionClassConstant

(PHP 7 >= 7.1.0)

Введение

Класс ReflectionClassConstant используется для получения информации о константах класса.

Обзор классов

ReflectionClassConstant implements Reflector {
/* Свойства */
public $name ;
public $class ;
/* Методы */
public __construct ( mixed $class , string $name )
public static export ( mixed $class , string $name [, bool $return ] ) : string
public getDeclaringClass ( void ) : ReflectionClass
public getDocComment ( void ) : string
public getModifiers ( void ) : int
public getName ( void ) : string
public getValue ( void ) : mixed
public isPrivate ( void ) : bool
public isProtected ( void ) : bool
public isPublic ( void ) : bool
public __toString ( void ) : string
}

Свойства

name

Имя константы класса. Только чтение. В случае попытки изменения выбрасывает исключение ReflectionException.

class

Имя класса, в котором определена константа. Только чтение. В случае попытки изменения выбрасывает исключение ReflectionException.

Содержание

  • ReflectionClassConstant::__construct — Создает ReflectionClassConstant
  • ReflectionClassConstant::export — Экспорт
  • ReflectionClassConstant::getDeclaringClass — Получает объявляющий класс
  • ReflectionClassConstant::getDocComment — Получает doc-комментарии
  • ReflectionClassConstant::getModifiers — Получает модификаторы константы класса
  • ReflectionClassConstant::getName — Получить имя константы
  • ReflectionClassConstant::getValue — Получает значение
  • ReflectionClassConstant::isPrivate — Проверяет, является ли константа закрытой
  • ReflectionClassConstant::isProtected — Проверяет, является ли константа защищенной
  • ReflectionClassConstant::isPublic — Проверяет, является ли константа общедоступной
  • ReflectionClassConstant::__toString — Возвращает строковое представление объекта ReflectionClassConstant


Создает ReflectionClassConstant

  • « ReflectionClassConstant
  • ReflectionClassConstant::export »
  • PHP Manual
  • ReflectionClassConstant
  • Создает ReflectionClassConstant

ReflectionClassConstant::__construct

(PHP 7 >= 7.1.0)

ReflectionClassConstant::__construct — Создает ReflectionClassConstant

Описание

public ReflectionClassConstant::__construct ( mixed $class , string $name )

Создает новый объект ReflectionClassConstant.

Список параметров

class

Строка (string), содержащая имя класса для отражения, либо объект (object).

name

Имя константы класса.

Возвращаемые значения

Возвращает созданный экземпляр ReflectionClassConstant.

Ошибки

Выбрасывает Exception в случае, если переданная константа класса не существует.

Смотрите также

  • Конструкторы


Экспорт

  • « ReflectionClassConstant::__construct
  • ReflectionClassConstant::getDeclaringClass »
  • PHP Manual
  • ReflectionClassConstant
  • Экспорт

ReflectionClassConstant::export

(PHP 7 >= 7.1.0)

ReflectionClassConstant::export — Экспорт

Описание

public static ReflectionClassConstant::export ( mixed $class , string $name [, bool $return ] ) : string

Экспортирует reflection.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

class

Экспортируемый объект Reflection.

name

Имя константы класса.

return

Установка в TRUE вернет экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в FALSE (по умолчанию) сделает противоположное.

Возвращаемые значения

Смотрите также

  • ReflectionClassConstant::__toString() - Возвращает строковое представление объекта ReflectionClassConstant


Получает объявляющий класс

  • « ReflectionClassConstant::export
  • ReflectionClassConstant::getDocComment »
  • PHP Manual
  • ReflectionClassConstant
  • Получает объявляющий класс

ReflectionClassConstant::getDeclaringClass

(PHP 7 >= 7.1.0)

ReflectionClassConstant::getDeclaringClass — Получает объявляющий класс

Описание

public ReflectionClassConstant::getDeclaringClass ( void ) : ReflectionClass

Получает объявляющий класс.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект ReflectionClass.


Получает doc-комментарии

  • « ReflectionClassConstant::getDeclaringClass
  • ReflectionClassConstant::getModifiers »
  • PHP Manual
  • ReflectionClassConstant
  • Получает doc-комментарии

ReflectionClassConstant::getDocComment

(PHP 7 >= 7.1.0)

ReflectionClassConstant::getDocComment — Получает doc-комментарии

Описание

public ReflectionClassConstant::getDocComment ( void ) : string

Получает doc-комментарии из константы класса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Doc-комментарий, если он есть, FALSE в противном случае


Получает модификаторы константы класса

  • « ReflectionClassConstant::getDocComment
  • ReflectionClassConstant::getName »
  • PHP Manual
  • ReflectionClassConstant
  • Получает модификаторы константы класса

ReflectionClassConstant::getModifiers

(PHP 7 >= 7.1.0)

ReflectionClassConstant::getModifiers — Получает модификаторы константы класса

Описание

public ReflectionClassConstant::getModifiers ( void ) : int

Возвращает битовое поле модификаторов доступа для данной константы класса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Числовое представление модификаторов. Фактические значения этих модификаторов описаны в предопределенных константах.

Смотрите также

  • Reflection::getModifierNames() - Получение имен модификаторов


Получить имя константы

  • « ReflectionClassConstant::getModifiers
  • ReflectionClassConstant::getValue »
  • PHP Manual
  • ReflectionClassConstant
  • Получить имя константы

ReflectionClassConstant::getName

(PHP 7 >= 7.1.0)

ReflectionClassConstant::getName — Получить имя константы

Описание

public ReflectionClassConstant::getName ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя константы.


Получает значение

  • « ReflectionClassConstant::getName
  • ReflectionClassConstant::isPrivate »
  • PHP Manual
  • ReflectionClassConstant
  • Получает значение

ReflectionClassConstant::getValue

(PHP 7 >= 7.1.0)

ReflectionClassConstant::getValue — Получает значение

Описание

public ReflectionClassConstant::getValue ( void ) : mixed

Получает значение константы класса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение константы класса.


Проверяет, является ли константа закрытой

  • « ReflectionClassConstant::getValue
  • ReflectionClassConstant::isProtected »
  • PHP Manual
  • ReflectionClassConstant
  • Проверяет, является ли константа закрытой

ReflectionClassConstant::isPrivate

(PHP 7 >= 7.1.0)

ReflectionClassConstant::isPrivate — Проверяет, является ли константа закрытой

Описание

public ReflectionClassConstant::isPrivate ( void ) : bool

Проверяет, является ли константа закрытой.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если константа класса является закрытой, FALSE в противном случае

Смотрите также

  • ReflectionClassConstant::isPublic() - Проверяет, является ли константа общедоступной
  • ReflectionClassConstant::isProtected() - Проверяет, является ли константа защищенной


Проверяет, является ли константа защищенной

  • « ReflectionClassConstant::isPrivate
  • ReflectionClassConstant::isPublic »
  • PHP Manual
  • ReflectionClassConstant
  • Проверяет, является ли константа защищенной

ReflectionClassConstant::isProtected

(PHP 7 >= 7.1.0)

ReflectionClassConstant::isProtected — Проверяет, является ли константа защищенной

Описание

public ReflectionClassConstant::isProtected ( void ) : bool

Проверяет, является ли константа защищенной.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если константа класса является защищенной, FALSE в противном случае

Смотрите также

  • ReflectionClassConstant::isPublic() - Проверяет, является ли константа общедоступной
  • ReflectionClassConstant::isPrivate() - Проверяет, является ли константа закрытой


Проверяет, является ли константа общедоступной

  • « ReflectionClassConstant::isProtected
  • ReflectionClassConstant::__toString »
  • PHP Manual
  • ReflectionClassConstant
  • Проверяет, является ли константа общедоступной

ReflectionClassConstant::isPublic

(PHP 7 >= 7.1.0)

ReflectionClassConstant::isPublic — Проверяет, является ли константа общедоступной

Описание

public ReflectionClassConstant::isPublic ( void ) : bool

Проверяет, является ли константа общедоступной.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если константа класса является общедоступной, FALSE в противном случае

Смотрите также

  • ReflectionClassConstant::isPrivate() - Проверяет, является ли константа закрытой
  • ReflectionClassConstant::isProtected() - Проверяет, является ли константа защищенной


Возвращает строковое представление объекта ReflectionClassConstant

  • « ReflectionClassConstant::isPublic
  • ReflectionZendExtension »
  • PHP Manual
  • ReflectionClassConstant
  • Возвращает строковое представление объекта ReflectionClassConstant

ReflectionClassConstant::__toString

(PHP 7 >= 7.1.0)

ReflectionClassConstant::__toString — Возвращает строковое представление объекта ReflectionClassConstant

Описание

public ReflectionClassConstant::__toString ( void ) : string

Возвращает строковое представление объекта ReflectionClassConstant.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строковое представление данного экземпляра ReflectionClassConstant.

Смотрите также

  • ReflectionClassConstant::export() - Экспорт
  • __toString()


Класс ReflectionZendExtension

(PHP 5 >= 5.4.0, PHP 7)

Введение

Обзор классов

ReflectionZendExtension implements Reflector {
/* Свойства */
public $name ;
/* Методы */
final private __clone ( void ) : void
public __construct ( string $name )
public static export ( string $name [, bool $return ] ) : string
public getAuthor ( void ) : string
public getCopyright ( void ) : string
public getName ( void ) : string
public getURL ( void ) : string
public getVersion ( void ) : string
public __toString ( void ) : string
}

Свойства

name

Имя модуля. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Содержание

  • ReflectionZendExtension::__clone — Обработчик клонирования
  • ReflectionZendExtension::__construct — Конструктор
  • ReflectionZendExtension::export — Экспорт
  • ReflectionZendExtension::getAuthor — Получает автора
  • ReflectionZendExtension::getCopyright — Получает авторские права
  • ReflectionZendExtension::getName — Получает имя
  • ReflectionZendExtension::getURL — Получает URL
  • ReflectionZendExtension::getVersion — Получает версию
  • ReflectionZendExtension::__toString — Обработчик преобразования в строку


Обработчик клонирования

  • « ReflectionZendExtension
  • ReflectionZendExtension::__construct »
  • PHP Manual
  • ReflectionZendExtension
  • Обработчик клонирования

ReflectionZendExtension::__clone

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::__clone — Обработчик клонирования

Описание

final private ReflectionZendExtension::__clone ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Конструктор

  • « ReflectionZendExtension::__clone
  • ReflectionZendExtension::export »
  • PHP Manual
  • ReflectionZendExtension
  • Конструктор

ReflectionZendExtension::__construct

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::__construct — Конструктор

Описание

public ReflectionZendExtension::__construct ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Экспорт

  • « ReflectionZendExtension::__construct
  • ReflectionZendExtension::getAuthor »
  • PHP Manual
  • ReflectionZendExtension
  • Экспорт

ReflectionZendExtension::export

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::export — Экспорт

Описание

public static ReflectionZendExtension::export ( string $name [, bool $return ] ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

return

Возвращаемые значения


Получает автора

  • « ReflectionZendExtension::export
  • ReflectionZendExtension::getCopyright »
  • PHP Manual
  • ReflectionZendExtension
  • Получает автора

ReflectionZendExtension::getAuthor

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::getAuthor — Получает автора

Описание

public ReflectionZendExtension::getAuthor ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает авторские права

  • « ReflectionZendExtension::getAuthor
  • ReflectionZendExtension::getName »
  • PHP Manual
  • ReflectionZendExtension
  • Получает авторские права

ReflectionZendExtension::getCopyright

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::getCopyright — Получает авторские права

Описание

public ReflectionZendExtension::getCopyright ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает имя

  • « ReflectionZendExtension::getCopyright
  • ReflectionZendExtension::getURL »
  • PHP Manual
  • ReflectionZendExtension
  • Получает имя

ReflectionZendExtension::getName

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::getName — Получает имя

Описание

public ReflectionZendExtension::getName ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает URL

  • « ReflectionZendExtension::getName
  • ReflectionZendExtension::getVersion »
  • PHP Manual
  • ReflectionZendExtension
  • Получает URL

ReflectionZendExtension::getURL

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::getURL — Получает URL

Описание

public ReflectionZendExtension::getURL ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает версию

  • « ReflectionZendExtension::getURL
  • ReflectionZendExtension::__toString »
  • PHP Manual
  • ReflectionZendExtension
  • Получает версию

ReflectionZendExtension::getVersion

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::getVersion — Получает версию

Описание

public ReflectionZendExtension::getVersion ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Обработчик преобразования в строку

  • « ReflectionZendExtension::getVersion
  • ReflectionExtension »
  • PHP Manual
  • ReflectionZendExtension
  • Обработчик преобразования в строку

ReflectionZendExtension::__toString

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::__toString — Обработчик преобразования в строку

Описание

public ReflectionZendExtension::__toString ( void ) : string

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс ReflectionExtension

(PHP 5, PHP 7)

Введение

Класс ReflectionExtension сообщает информацию о модулях.

Обзор классов

ReflectionExtension implements Reflector {
/* Свойства */
public $name ;
/* Методы */
final private __clone ( void ) : void
public __construct ( string $name )
public static export ( string $name [, string $return = FALSE ] ) : string
public getClasses ( void ) : array
public getClassNames ( void ) : array
public getConstants ( void ) : array
public getDependencies ( void ) : array
public getFunctions ( void ) : array
public getINIEntries ( void ) : array
public getName ( void ) : string
public getVersion ( void ) : string
public info ( void ) : void
public isPersistent ( void ) : void
public isTemporary ( void ) : void
public __toString ( void ) : string
}

Свойства

name

Имя модуля. Значение свойства совпадает с тем, что возвращает метод ReflectionExtension::getName()

Содержание

  • ReflectionExtension::__clone — Клонирует объект
  • ReflectionExtension::__construct — Создаёт объект класса ReflectionExtension
  • ReflectionExtension::export — Экспортирует модуль
  • ReflectionExtension::getClasses — Возвращает классы
  • ReflectionExtension::getClassNames — Получение имен классов
  • ReflectionExtension::getConstants — Получение констант
  • ReflectionExtension::getDependencies — Получение зависимостей
  • ReflectionExtension::getFunctions — Получение функций расширения
  • ReflectionExtension::getINIEntries — Получение ini-настроек расширения
  • ReflectionExtension::getName — Получение имени расширения
  • ReflectionExtension::getVersion — Получение версии расширения
  • ReflectionExtension::info — Вывод информации о расширении
  • ReflectionExtension::isPersistent — Определяет, является ли расширение постоянным
  • ReflectionExtension::isTemporary — Определяет, является ли расширение временным
  • ReflectionExtension::__toString — Преобразование в строку


Клонирует объект

  • « ReflectionExtension
  • ReflectionExtension::__construct »
  • PHP Manual
  • ReflectionExtension
  • Клонирует объект

ReflectionExtension::__clone

(PHP 5, PHP 7)

ReflectionExtension::__clone — Клонирует объект

Описание

final private ReflectionExtension::__clone ( void ) : void

Метод clone предотвращает клонирование объекта. Объекты reflection не могут быть клонированы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод ничего не возвращает, в случае вызова возникает фатальная ошибка.

Смотрите также

  • ReflectionExtension::__construct() - Создаёт объект класса ReflectionExtension
  • Клонирование объектов


Создаёт объект класса ReflectionExtension

  • « ReflectionExtension::__clone
  • ReflectionExtension::export »
  • PHP Manual
  • ReflectionExtension
  • Создаёт объект класса ReflectionExtension

ReflectionExtension::__construct

(PHP 5, PHP 7)

ReflectionExtension::__construct — Создаёт объект класса ReflectionExtension

Описание

public ReflectionExtension::__construct ( string $name )

Создаёт объект (object) класса ReflectionExtension.

Список параметров

name

Имя модуля.

Возвращаемые значения

Объект (object) класса ReflectionExtension.

Примеры

Пример #1 Пример использования ReflectionExtension

<?php
$ext = new ReflectionExtension('Reflection');

printf('Модуль: %s (версия: %s)', $ext->getName(), $ext->getVersion());
?>

Результатом выполнения данного примера будет что-то подобное:

Модуль: Reflection (версия: $Revision: 335469 $)

Смотрите также

  • ReflectionExtension::info() - Вывод информации о расширении
  • Конструкторы


Экспортирует модуль

  • « ReflectionExtension::__construct
  • ReflectionExtension::getClasses »
  • PHP Manual
  • ReflectionExtension
  • Экспортирует модуль

ReflectionExtension::export

(PHP 5, PHP 7)

ReflectionExtension::export — Экспортирует модуль

Описание

public static ReflectionExtension::export ( string $name [, string $return = FALSE ] ) : string

Экспортирует отражённый модуль. Формат вывода этой функции такой же как и при CLI-параметре --re [extension].

Список параметров

name

Экспортируемый объект Reflection.

return

Установка в TRUE вернет экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в FALSE (по умолчанию) сделает противоположное.

Возвращаемые значения

Если параметр return установлен в TRUE, тогда экспортируемый объект будет возвращен как string, иначе будет возвращен NULL.

Смотрите также

  • ReflectionExtension::info() - Вывод информации о расширении


Возвращает классы

  • « ReflectionExtension::export
  • ReflectionExtension::getClassNames »
  • PHP Manual
  • ReflectionExtension
  • Возвращает классы

ReflectionExtension::getClasses

(PHP 5, PHP 7)

ReflectionExtension::getClasses — Возвращает классы

Описание

public ReflectionExtension::getClasses ( void ) : array

Возвращает список классов модуля.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив объектов класса ReflectionClass, по одному на каждый класс модуля. Если не определено ни одного класса, то возвращается пустой массив.

Примеры

Пример #1 Пример использования ReflectionExtension::getClasses()

<?php
$ext = new ReflectionExtension('XMLWriter');
var_dump($ext->getClasses());
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  ["XMLWriter"]=>
  &object(ReflectionClass)#2 (1) {
    ["name"]=>
    string(9) "XMLWriter"
  }
}

Смотрите также

  • ReflectionExtension::getClassNames() - Получение имен классов


Получение имен классов

  • « ReflectionExtension::getClasses
  • ReflectionExtension::getConstants »
  • PHP Manual
  • ReflectionExtension
  • Получение имен классов

ReflectionExtension::getClassNames

(PHP 5, PHP 7)

ReflectionExtension::getClassNames — Получение имен классов

Описание

public ReflectionExtension::getClassNames ( void ) : array

Получает список имен классов, как они определены в расширении.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) имен классов, определенных в расширении. Если никаких классов не определено, будет возвращен пустой массив.

Примеры

Пример #1 Пример использования ReflectionExtension::getClassNames()

<?php
$ext = new ReflectionExtension('XMLWriter');
var_dump($ext->getClassNames());
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  string(9) "XMLWriter"
}

Смотрите также

  • ReflectionExtension::getClasses() - Возвращает классы
  • ReflectionExtension::getName() - Получение имени расширения


Получение констант

  • « ReflectionExtension::getClassNames
  • ReflectionExtension::getDependencies »
  • PHP Manual
  • ReflectionExtension
  • Получение констант

ReflectionExtension::getConstants

(PHP 5, PHP 7)

ReflectionExtension::getConstants — Получение констант

Описание

public ReflectionExtension::getConstants ( void ) : array

Получает определенные в расширении константы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ассоциативный массив с именами констант в качестве ключей.

Примеры

Пример #1 Пример использования ReflectionExtension::getConstants()

<?php
$ext = new ReflectionExtension('DOM');

print_r($ext->getConstants());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [XML_ELEMENT_NODE] => 1
    [XML_ATTRIBUTE_NODE] => 2
    [XML_TEXT_NODE] => 3
    [XML_CDATA_SECTION_NODE] => 4
    [XML_ENTITY_REF_NODE] => 5
    [XML_ENTITY_NODE] => 6
    [XML_PI_NODE] => 7
    [XML_COMMENT_NODE] => 8
    [XML_DOCUMENT_NODE] => 9
    [XML_DOCUMENT_TYPE_NODE] => 10
    [XML_DOCUMENT_FRAG_NODE] => 11
    [XML_NOTATION_NODE] => 12
    [XML_HTML_DOCUMENT_NODE] => 13
    [XML_DTD_NODE] => 14
    [XML_ELEMENT_DECL_NODE] => 15
    [XML_ATTRIBUTE_DECL_NODE] => 16
    [XML_ENTITY_DECL_NODE] => 17
    [XML_NAMESPACE_DECL_NODE] => 18
    [XML_LOCAL_NAMESPACE] => 18
    [XML_ATTRIBUTE_CDATA] => 1
    [XML_ATTRIBUTE_ID] => 2
    [XML_ATTRIBUTE_IDREF] => 3
    [XML_ATTRIBUTE_IDREFS] => 4
    [XML_ATTRIBUTE_ENTITY] => 6
    [XML_ATTRIBUTE_NMTOKEN] => 7
    [XML_ATTRIBUTE_NMTOKENS] => 8
    [XML_ATTRIBUTE_ENUMERATION] => 9
    [XML_ATTRIBUTE_NOTATION] => 10
    [DOM_PHP_ERR] => 0
    [DOM_INDEX_SIZE_ERR] => 1
    [DOMSTRING_SIZE_ERR] => 2
    [DOM_HIERARCHY_REQUEST_ERR] => 3
    [DOM_WRONG_DOCUMENT_ERR] => 4
    [DOM_INVALID_CHARACTER_ERR] => 5
    [DOM_NO_DATA_ALLOWED_ERR] => 6
    [DOM_NO_MODIFICATION_ALLOWED_ERR] => 7
    [DOM_NOT_FOUND_ERR] => 8
    [DOM_NOT_SUPPORTED_ERR] => 9
    [DOM_INUSE_ATTRIBUTE_ERR] => 10
    [DOM_INVALID_STATE_ERR] => 11
    [DOM_SYNTAX_ERR] => 12
    [DOM_INVALID_MODIFICATION_ERR] => 13
    [DOM_NAMESPACE_ERR] => 14
    [DOM_INVALID_ACCESS_ERR] => 15
    [DOM_VALIDATION_ERR] => 16
)

Смотрите также

  • ReflectionExtension::getINIEntries() - Получение ini-настроек расширения


Получение зависимостей

  • « ReflectionExtension::getConstants
  • ReflectionExtension::getFunctions »
  • PHP Manual
  • ReflectionExtension
  • Получение зависимостей

ReflectionExtension::getDependencies

(PHP 5 >= 5.1.3, PHP 7)

ReflectionExtension::getDependencies — Получение зависимостей

Описание

public ReflectionExtension::getDependencies ( void ) : array

Получает список требуемых и конфликтующих зависимостей.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ассоциативный массив array, ключами которого являются зависимости, а значениями следующие строки: Required, Optional или Conflicts.

Примеры

Пример #1 Пример использования ReflectionExtension::getDependencies()

<?php
$dom = new ReflectionExtension('dom');

print_r($dom->getDependencies());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [libxml] => Required
    [domxml] => Conflicts
)

Смотрите также

  • ReflectionClass::getVersion()


Получение функций расширения

  • « ReflectionExtension::getDependencies
  • ReflectionExtension::getINIEntries »
  • PHP Manual
  • ReflectionExtension
  • Получение функций расширения

ReflectionExtension::getFunctions

(PHP 5, PHP 7)

ReflectionExtension::getFunctions — Получение функций расширения

Описание

public ReflectionExtension::getFunctions ( void ) : array

Получает список определенных в расширении функций.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ассоциативный массив объектов ReflectionFunction, в котором ключами являются названия определенных в расширении функций. Если функций в расширении не определено, будет возвращен пустой массив.

Примеры

Пример #1 Пример использования ReflectionExtension::getFunctions()

<?php
$dom = new ReflectionExtension('SimpleXML');

print_r($dom->getFunctions());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [simplexml_load_file] => ReflectionFunction Object
        (
            [name] => simplexml_load_file
        )

    [simplexml_load_string] => ReflectionFunction Object
        (
            [name] => simplexml_load_string
        )

    [simplexml_import_dom] => ReflectionFunction Object
        (
            [name] => simplexml_import_dom
        )

)

Смотрите также

  • ReflectionExtension::getClasses() - Возвращает классы
  • get_extension_funcs() - Возвращает массив имен функций модуля


Получение ini-настроек расширения

  • « ReflectionExtension::getFunctions
  • ReflectionExtension::getName »
  • PHP Manual
  • ReflectionExtension
  • Получение ini-настроек расширения

ReflectionExtension::getINIEntries

(PHP 5, PHP 7)

ReflectionExtension::getINIEntries — Получение ini-настроек расширения

Описание

public ReflectionExtension::getINIEntries ( void ) : array

Получает ini-настройки расширения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ассоциативный массив array, в котором ключи - имена ini-настроек, а значения - соответствующие значения настроек.

Примеры

Пример #1 Пример использования ReflectionExtension::getINIEntries()

<?php
$ext = new ReflectionExtension('mysql');

print_r($ext->getINIEntries());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [mysql.allow_persistent] => 1
    [mysql.max_persistent] => -1
    [mysql.max_links] => -1
    [mysql.default_host] =>
    [mysql.default_user] =>
    [mysql.default_password] =>
    [mysql.default_port] =>
    [mysql.default_socket] =>
    [mysql.connect_timeout] => 60
    [mysql.trace_mode] =>
    [mysql.allow_local_infile] => 1
    [mysql.cache_size] => 2000
)

Смотрите также

  • ini_get_all() - Получает все настройки конфигурации
  • ReflectionExtension::getConstants() - Получение констант


Получение имени расширения

  • « ReflectionExtension::getINIEntries
  • ReflectionExtension::getVersion »
  • PHP Manual
  • ReflectionExtension
  • Получение имени расширения

ReflectionExtension::getName

(PHP 5, PHP 7)

ReflectionExtension::getName — Получение имени расширения

Описание

public ReflectionExtension::getName ( void ) : string

Получает имя расширения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя расширения.

Примеры

Пример #1 Пример использования ReflectionExtension::getName()

<?php
$ext = new ReflectionExtension('mysqli');
var_dump($ext->getName());
?>

Результатом выполнения данного примера будет что-то подобное:

string(6) "mysqli"

Смотрите также

  • ReflectionExtension::getClassNames() - Получение имен классов


Получение версии расширения

  • « ReflectionExtension::getName
  • ReflectionExtension::info »
  • PHP Manual
  • ReflectionExtension
  • Получение версии расширения

ReflectionExtension::getVersion

(PHP 5, PHP 7)

ReflectionExtension::getVersion — Получение версии расширения

Описание

public ReflectionExtension::getVersion ( void ) : string

Получает версию расширения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Версия расширения.

Примеры

Пример #1 Пример использования ReflectionExtension::getVersion()

<?php
$ext = new ReflectionExtension('mysqli');
var_dump($ext->getVersion());
?>

Результатом выполнения данного примера будет что-то подобное:

string(3) "0.1"

Смотрите также

  • ReflectionExtension::info() - Вывод информации о расширении


Вывод информации о расширении

  • « ReflectionExtension::getVersion
  • ReflectionExtension::isPersistent »
  • PHP Manual
  • ReflectionExtension
  • Вывод информации о расширении

ReflectionExtension::info

(PHP 5 >= 5.2.4, PHP 7)

ReflectionExtension::info — Вывод информации о расширении

Описание

public ReflectionExtension::info ( void ) : void

Выводит фрагмент "phpinfo()" для указанного расширения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Информация о расширении.

Примеры

Пример #1 Пример использования ReflectionExtension::info()

<?php
$ext = new ReflectionExtension('mysqli');
$ext->info();
?>

Результатом выполнения данного примера будет что-то подобное:

mysqli

MysqlI Support => enabled
Client API library version => mysqlnd 5.0.5-dev - 081106 - $Revision: 344936 $
Active Persistent Links => 0
Inactive Persistent Links => 0
Active Links => 0
Persistent cache => enabled
put_hits => 0
put_misses => 0
get_hits => 0
get_misses => 0
size => 2000
free_items => 2000
references => 2

Directive => Local Value => Master Value
mysqli.max_links => Unlimited => Unlimited
mysqli.max_persistent => Unlimited => Unlimited
mysqli.allow_persistent => On => On
mysqli.default_host => no value => no value
mysqli.default_user => no value => no value
mysqli.default_pw => no value => no value
mysqli.default_port => 3306 => 3306
mysqli.default_socket => no value => no value
mysqli.reconnect => Off => Off
mysqli.allow_local_infile => On => On
mysqli.cache_size => 2000 => 2000

Смотрите также

  • ReflectionExtension::getName() - Получение имени расширения
  • phpinfo() - Выводит информацию о текущей конфигурации PHP


Определяет, является ли расширение постоянным

  • « ReflectionExtension::info
  • ReflectionExtension::isTemporary »
  • PHP Manual
  • ReflectionExtension
  • Определяет, является ли расширение постоянным

ReflectionExtension::isPersistent

(PHP 5 >= 5.4.0, PHP 7)

ReflectionExtension::isPersistent — Определяет, является ли расширение постоянным

Описание

public ReflectionExtension::isPersistent ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE для расширений, загружаемых через ini-настройку extension, FALSE в противном случае.

Смотрите также

  • ReflectionExtension::isTemporary() - Определяет, является ли расширение временным


Определяет, является ли расширение временным

  • « ReflectionExtension::isPersistent
  • ReflectionExtension::__toString »
  • PHP Manual
  • ReflectionExtension
  • Определяет, является ли расширение временным

ReflectionExtension::isTemporary

(PHP 5 >= 5.4.0, PHP 7)

ReflectionExtension::isTemporary — Определяет, является ли расширение временным

Описание

public ReflectionExtension::isTemporary ( void ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE для расширений, загруженных функцией dl(), FALSE в противном случае.

Смотрите также

  • ReflectionExtension::isPersistent() - Определяет, является ли расширение постоянным


Преобразование в строку

  • « ReflectionExtension::isTemporary
  • ReflectionFunction »
  • PHP Manual
  • ReflectionExtension
  • Преобразование в строку

ReflectionExtension::__toString

(PHP 5, PHP 7)

ReflectionExtension::__toString — Преобразование в строку

Описание

public ReflectionExtension::__toString ( void ) : string

Выполняет экспорт расширения и возвращает его в виде строки string. Это то же самое, что и вызов ReflectionExtension::export() с аргументом return, равным TRUE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает экспортированное расширение в виде строки, так же как ReflectionExtension::export().

Смотрите также

  • ReflectionExtension::__construct() - Создаёт объект класса ReflectionExtension
  • ReflectionExtension::export() - Экспортирует модуль
  • __toString()


Класс ReflectionFunction

(PHP 5, PHP 7)

Введение

Класс ReflectionFunction сообщает информацию о функциях.

Обзор классов

ReflectionFunction extends ReflectionFunctionAbstract implements Reflector {
/* Константы */
const integer IS_DEPRECATED = 262144 ;
/* Свойства */
public $name ;
/* Методы */
public __construct ( mixed $name )
public static export ( string $name [, string $return ] ) : string
public getClosure ( void ) : Closure
public invoke ([ mixed $... ] ) : mixed
public invokeArgs ( array $args ) : mixed
public isDisabled ( void ) : bool
public __toString ( void ) : string
/* Наследуемые методы */
final private ReflectionFunctionAbstract::__clone ( void ) : void
public ReflectionFunctionAbstract::getClosureScopeClass ( void ) : ReflectionClass
public ReflectionFunctionAbstract::getClosureThis ( void ) : object
public ReflectionFunctionAbstract::getDocComment ( void ) : string
public ReflectionFunctionAbstract::getEndLine ( void ) : int
public ReflectionFunctionAbstract::getExtension ( void ) : ReflectionExtension
public ReflectionFunctionAbstract::getExtensionName ( void ) : string
public ReflectionFunctionAbstract::getFileName ( void ) : string
public ReflectionFunctionAbstract::getName ( void ) : string
public ReflectionFunctionAbstract::getNamespaceName ( void ) : string
public ReflectionFunctionAbstract::getNumberOfParameters ( void ) : int
public ReflectionFunctionAbstract::getNumberOfRequiredParameters ( void ) : int
public ReflectionFunctionAbstract::getParameters ( void ) : array
public ReflectionFunctionAbstract::getReturnType ( void ) : ReflectionType
public ReflectionFunctionAbstract::getShortName ( void ) : string
public ReflectionFunctionAbstract::getStartLine ( void ) : int
public ReflectionFunctionAbstract::getStaticVariables ( void ) : array
public ReflectionFunctionAbstract::hasReturnType ( void ) : bool
public ReflectionFunctionAbstract::inNamespace ( void ) : bool
public ReflectionFunctionAbstract::isClosure ( void ) : bool
public ReflectionFunctionAbstract::isDeprecated ( void ) : bool
public ReflectionFunctionAbstract::isGenerator ( void ) : bool
public ReflectionFunctionAbstract::isInternal ( void ) : bool
public ReflectionFunctionAbstract::isUserDefined ( void ) : bool
public ReflectionFunctionAbstract::isVariadic ( void ) : bool
public ReflectionFunctionAbstract::returnsReference ( void ) : bool
abstract public ReflectionFunctionAbstract::__toString ( void ) : void
}

Свойства

name

Имя функции. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Предопределенные константы

Модификаторы ReflectionFunction

ReflectionFunction::IS_DEPRECATED

Указывает на то, что функция устарела (deprecated).

Содержание

  • ReflectionFunction::__construct — Конструктор класса ReflectionFunction
  • ReflectionFunction::export — Экспортирует функции
  • ReflectionFunction::getClosure — Возвращает динамически созданное замыкание для функции
  • ReflectionFunction::invoke — Вызывает функцию
  • ReflectionFunction::invokeArgs — Вызов функции с передачей аргументов
  • ReflectionFunction::isDisabled — Проверяет, что функция отключена
  • ReflectionFunction::__toString — Представление в виде строки


Конструктор класса ReflectionFunction

  • « ReflectionFunction
  • ReflectionFunction::export »
  • PHP Manual
  • ReflectionFunction
  • Конструктор класса ReflectionFunction

ReflectionFunction::__construct

(PHP 5, PHP 7)

ReflectionFunction::__construct — Конструктор класса ReflectionFunction

Описание

public ReflectionFunction::__construct ( mixed $name )

Создает объект класса ReflectionFunction.

Список параметров

name

Имя функции для отражения или замыкание.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Объект класса ReflectionException, если аргумент name не содержит допустимой функции.

Список изменений

Версия | Описание
5.3.0 | name теперь может быть замыканием.

Примеры

Пример #1 Пример использования ReflectionFunction::__construct()

<?php
/**
 * Простой счетчик
 *
 * @return    int
 */
function counter1()
{
    static $c = 0;
    return ++$c;
}

/**
 * Другой счетчик
 *
 * @return    int
 */
$counter2 = function()
{
    static $d = 0;
    return ++$d;

};

function dumpReflectionFunction($func)
{
    // Вывод основной информации
    printf(
        "\n\n===> %s функция '%s'\n".
        "     объявлена в %s\n".
        "     строки с %d по %d\n",
        $func->isInternal() ? 'internal' : 'user-defined',
        $func->getName(),
        $func->getFileName(),
        $func->getStartLine(),
        $func->getEndline()
    );

    // Печать документации
    printf("---> Документация:\n %s\n", var_export($func->getDocComment(), 1));

    // Вывод статических переменных
    if ($statics = $func->getStaticVariables())
    {
        printf("---> Статические переменные: %s\n", var_export($statics, 1));
    }
}

// Создание объекта класса ReflectionFunction
dumpReflectionFunction(new ReflectionFunction('counter1'));
dumpReflectionFunction(new ReflectionFunction($counter2));
?>

Результатом выполнения данного примера будет что-то подобное:

===> user-defined функция 'counter1'
     объявлена в Z:\reflectcounter.php
     строки с 7 по 11
---> Документация:
 '/**
 * Простой счетчик
 *
 * @return    int
 */'
---> Статические переменные: array (
  'c' => 0,
)

===> user-defined функция '{closure}'
     объявлена в Z:\reflectcounter.php
     строки с 18 по 23
---> Документация:
 '/**
 * Другой счетчик
 *
 * @return    int
 */'
---> Статические переменные: array (
  'd' => 0,
)

Смотрите также

  • ReflectionMethod::__construct() - Конструктор класса ReflectionMethod
  • Конструкторы


Экспортирует функции

  • « ReflectionFunction::__construct
  • ReflectionFunction::getClosure »
  • PHP Manual
  • ReflectionFunction
  • Экспортирует функции

ReflectionFunction::export

(PHP 5, PHP 7)

ReflectionFunction::export — Экспортирует функции

Описание

public static ReflectionFunction::export ( string $name [, string $return ] ) : string

Экспортирует отражённую (reflected) функцию.

Список параметров

name

Экспортируемый объект Reflection.

return

Установка в TRUE вернет экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в FALSE (по умолчанию) сделает противоположное.

Возвращаемые значения

Если параметр return установлен в TRUE, тогда экспортируемый объект будет возвращен как string, иначе будет возвращен NULL.

Смотрите также

  • ReflectionFunction::invoke() - Вызывает функцию


Возвращает динамически созданное замыкание для функции

  • « ReflectionFunction::export
  • ReflectionFunction::invoke »
  • PHP Manual
  • ReflectionFunction
  • Возвращает динамически созданное замыкание для функции

ReflectionFunction::getClosure

(PHP 5 >= 5.4.0, PHP 7)

ReflectionFunction::getClosure — Возвращает динамически созданное замыкание для функции

Описание

public ReflectionFunction::getClosure ( void ) : Closure

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает Closure. Возвращает NULL в случае ошибки.


Вызывает функцию

  • « ReflectionFunction::getClosure
  • ReflectionFunction::invokeArgs »
  • PHP Manual
  • ReflectionFunction
  • Вызывает функцию

ReflectionFunction::invoke

(PHP 5, PHP 7)

ReflectionFunction::invoke — Вызывает функцию

Описание

public ReflectionFunction::invoke ([ mixed $... ] ) : mixed

Вызывает отражённую (reflected) функцию.

Список параметров

...

Передаваемые функции аргументы. Может принимать переменное количество аргументов по аналогии с call_user_func().

Возвращаемые значения

Возвращает результат выполнения вызванной функции.

Примеры

Пример #1 Пример использования ReflectionFunction::invoke()

<?php
function title($title, $name)
{
    return sprintf("%s. %s\r\n", $title, $name);
}

$function = new ReflectionFunction('title');

echo $function->invoke('Dr', 'Phil');
?>

Результат выполнения данного примера:

Dr. Phil

Примечания

Замечание:

Если функция имеет аргументы, которые должны быть ссылками, то они должны быть ссылками и в переданном спике аргументов.

Смотрите также

  • ReflectionFunction::export() - Экспортирует функции
  • __invoke()
  • call_user_func() - Вызывает callback-функцию, заданную в первом параметре


Вызов функции с передачей аргументов

  • « ReflectionFunction::invoke
  • ReflectionFunction::isDisabled »
  • PHP Manual
  • ReflectionFunction
  • Вызов функции с передачей аргументов

ReflectionFunction::invokeArgs

(PHP 5 >= 5.1.2, PHP 7)

ReflectionFunction::invokeArgs — Вызов функции с передачей аргументов

Описание

public ReflectionFunction::invokeArgs ( array $args ) : mixed

Вызывает функцию и передает ей аргументы в виде массива.

Список параметров

args

Передаваемые функции аргументы в виде массива. Поведение функции аналогично call_user_func_array().

Возвращаемые значения

Возвращает результат выполнения вызванной функции.

Примеры

Пример #1 Пример использования ReflectionFunction::invokeArgs()

<?php
function title($title, $name)
{
    return sprintf("%s. %s\r\n", $title, $name);
}

$function = new ReflectionFunction('title');

echo $function->invokeArgs(array('Dr', 'Phil'));
?>

Результат выполнения данного примера:

Dr. Phil

Пример #2 Пример использования ReflectionFunction::invokeArgs() со ссылками на аргументы

<?php
function get_false_conditions(array $conditions, array &$false_conditions)
{
    foreach ($conditions as $condition) {
        if (!$condition) {
            $false_conditions[] = $condition;
        }
    }
}

$function_ref     = new ReflectionFunction('get_false_conditions');

$conditions       = array(true, false, -1, 0, 1);
$false_conditions = array();

$function_ref->invokeArgs(array($conditions, &$false_conditions));

var_dump($false_conditions);
?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  bool(false)
  [1]=>
  int(0)
}

Примечания

Замечание:

Если функция имеет аргументы, которые должны быть ссылками, то они должны быть ссылками и в переданном спике аргументов.

Смотрите также

  • ReflectionFunction::invoke() - Вызывает функцию
  • ReflectionFunctionAbstract::getNumberOfParameters() - Получает количество параметров
  • __invoke()
  • call_user_func_array() - Вызывает callback-функцию с массивом параметров


Проверяет, что функция отключена

  • « ReflectionFunction::invokeArgs
  • ReflectionFunction::__toString »
  • PHP Manual
  • ReflectionFunction
  • Проверяет, что функция отключена

ReflectionFunction::isDisabled

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunction::isDisabled — Проверяет, что функция отключена

Описание

public ReflectionFunction::isDisabled ( void ) : bool

Проверяет, отключена ли функция, с помощью директивы disable_functions.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если функция отключена, FALSE противном случае.

Смотрите также

  • ReflectionFunctionAbstract::isUserDefined() - Проверяет, является ли функция определенной пользователем
  • Директива disable_functions


Представление в виде строки

  • « ReflectionFunction::isDisabled
  • ReflectionFunctionAbstract »
  • PHP Manual
  • ReflectionFunction
  • Представление в виде строки

ReflectionFunction::__toString

(PHP 5, PHP 7)

ReflectionFunction::__toString — Представление в виде строки

Описание

public ReflectionFunction::__toString ( void ) : string

Представление в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Результат выполнения схож с выводом ReflectionFunction::export().

Примеры

Пример #1 Пример использования ReflectionFunction::__toString()

<?php
function title($title, $name)
{
    return sprintf("%s. %s\r\n", $title, $name);
}

echo new ReflectionFunction('title');
?>

Результатом выполнения данного примера будет что-то подобное:

Function [ <user> function title ] {
  @@ Command line code 1 - 1

  - Parameters [2] {
    Parameter #0 [ <required> $title ]
    Parameter #1 [ <required> $name ]
  }
}

Смотрите также

  • ReflectionFunction::export() - Экспортирует функции
  • ReflectionClass::clone()
  • __toString()


Класс ReflectionFunctionAbstract

(PHP 5 >= 5.2.0, PHP 7)

Введение

Является родительским классом для ReflectionFunction, более подробную информацию смотрите в описании этого дочернего класса.

Обзор классов

ReflectionFunctionAbstract implements Reflector {
/* Свойства */
public $name ;
/* Методы */
final private __clone ( void ) : void
public getClosureScopeClass ( void ) : ReflectionClass
public getClosureThis ( void ) : object
public getDocComment ( void ) : string
public getEndLine ( void ) : int
public getExtension ( void ) : ReflectionExtension
public getExtensionName ( void ) : string
public getFileName ( void ) : string
public getName ( void ) : string
public getNamespaceName ( void ) : string
public getNumberOfParameters ( void ) : int
public getNumberOfRequiredParameters ( void ) : int
public getParameters ( void ) : array
public getReturnType ( void ) : ReflectionType
public getShortName ( void ) : string
public getStartLine ( void ) : int
public getStaticVariables ( void ) : array
public hasReturnType ( void ) : bool
public inNamespace ( void ) : bool
public isClosure ( void ) : bool
public isDeprecated ( void ) : bool
public isGenerator ( void ) : bool
public isInternal ( void ) : bool
public isUserDefined ( void ) : bool
public isVariadic ( void ) : bool
public returnsReference ( void ) : bool
abstract public __toString ( void ) : void
}

Свойства

name

Имя функции. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Содержание

  • ReflectionFunctionAbstract::__clone — Клонирует функцию
  • ReflectionFunctionAbstract::getClosureScopeClass — Возвращает класс в рамках которого было объявлено замыкание
  • ReflectionFunctionAbstract::getClosureThis — Возвращает указатель, привязанный к замыканию
  • ReflectionFunctionAbstract::getDocComment — Получает doc-комментарий
  • ReflectionFunctionAbstract::getEndLine — Получает номер строки завершения описания функции
  • ReflectionFunctionAbstract::getExtension — Получает информацию о расширении
  • ReflectionFunctionAbstract::getExtensionName — Получение имени расширения
  • ReflectionFunctionAbstract::getFileName — Получает имя файла
  • ReflectionFunctionAbstract::getName — Получает имя функции
  • ReflectionFunctionAbstract::getNamespaceName — Получение имени пространства имен
  • ReflectionFunctionAbstract::getNumberOfParameters — Получает количество параметров
  • ReflectionFunctionAbstract::getNumberOfRequiredParameters — Получает количество обязательных параметров
  • ReflectionFunctionAbstract::getParameters — Получает параметры
  • ReflectionFunctionAbstract::getReturnType — Получает объявленный тип возвращаемого функцией значения
  • ReflectionFunctionAbstract::getShortName — Получает короткое имя функции
  • ReflectionFunctionAbstract::getStartLine — Получает начальный номер строки
  • ReflectionFunctionAbstract::getStaticVariables — Получает статические переменные
  • ReflectionFunctionAbstract::hasReturnType — Проверяет, имеет ли функция объявленный тип возвращаемого значения
  • ReflectionFunctionAbstract::inNamespace — Проверяет, находится ли функция в пространстве имен
  • ReflectionFunctionAbstract::isClosure — Проверяет, является ли функция замыканием (Closure)
  • ReflectionFunctionAbstract::isDeprecated — Проверяет, является ли функция устаревшей
  • ReflectionFunctionAbstract::isGenerator — Проверяет, является ли функция генератором
  • ReflectionFunctionAbstract::isInternal — Проверяет, является ли функция внутренней
  • ReflectionFunctionAbstract::isUserDefined — Проверяет, является ли функция определенной пользователем
  • ReflectionFunctionAbstract::isVariadic — Проверяет, является ли функция функцией с переменным числом аргументов
  • ReflectionFunctionAbstract::returnsReference — Проверяет, что функция возвращает ссылку
  • ReflectionFunctionAbstract::__toString — Преобразование в строку


Клонирует функцию

  • « ReflectionFunctionAbstract
  • ReflectionFunctionAbstract::getClosureScopeClass »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Клонирует функцию

ReflectionFunctionAbstract::__clone

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::__clone — Клонирует функцию

Описание

final private ReflectionFunctionAbstract::__clone ( void ) : void

Копирует функцию.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Копирование объектов


Возвращает класс в рамках которого было объявлено замыкание

  • « ReflectionFunctionAbstract::__clone
  • ReflectionFunctionAbstract::getClosureThis »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Возвращает класс в рамках которого было объявлено замыкание

ReflectionFunctionAbstract::getClosureScopeClass

(PHP 5 >= 5.4.0, PHP 7)

ReflectionFunctionAbstract::getClosureScopeClass — Возвращает класс в рамках которого было объявлено замыкание

Описание

public ReflectionFunctionAbstract::getClosureScopeClass ( void ) : ReflectionClass

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает класс в случае успешного выполнения или NULL в случае ошибки.


Возвращает указатель, привязанный к замыканию

  • « ReflectionFunctionAbstract::getClosureScopeClass
  • ReflectionFunctionAbstract::getDocComment »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Возвращает указатель, привязанный к замыканию

ReflectionFunctionAbstract::getClosureThis

(PHP 5 >= 5.4.0, PHP 7)

ReflectionFunctionAbstract::getClosureThis — Возвращает указатель, привязанный к замыканию

Описание

public ReflectionFunctionAbstract::getClosureThis ( void ) : object

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает указатель $this. Возвращает NULL в случае ошибки.


Получает doc-комментарий

  • « ReflectionFunctionAbstract::getClosureThis
  • ReflectionFunctionAbstract::getEndLine »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает doc-комментарий

ReflectionFunctionAbstract::getDocComment

(PHP 5 >= 5.1.0, PHP 7)

ReflectionFunctionAbstract::getDocComment — Получает doc-комментарий

Описание

public ReflectionFunctionAbstract::getDocComment ( void ) : string

Получает doc-комментарий из описания функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Комментарий, если он есть, FALSE в противном случае.

Смотрите также

  • ReflectionFunctionAbstract::getStartLine() - Получает начальный номер строки


Получает номер строки завершения описания функции

  • « ReflectionFunctionAbstract::getDocComment
  • ReflectionFunctionAbstract::getExtension »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает номер строки завершения описания функции

ReflectionFunctionAbstract::getEndLine

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::getEndLine — Получает номер строки завершения описания функции

Описание

public ReflectionFunctionAbstract::getEndLine ( void ) : int

Получает номер строки завершения описания функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Номер последней строки описания определенной пользователем функции или FALSE, если он неизвестен.

Смотрите также

  • ReflectionFunctionAbstract::getStartLine() - Получает начальный номер строки


Получает информацию о расширении

  • « ReflectionFunctionAbstract::getEndLine
  • ReflectionFunctionAbstract::getExtensionName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает информацию о расширении

ReflectionFunctionAbstract::getExtension

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::getExtension — Получает информацию о расширении

Описание

public ReflectionFunctionAbstract::getExtension ( void ) : ReflectionExtension

Получение информации о расширении, в состав которого входит функция.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Информация о расширении в виде объекта ReflectionExtension.

Смотрите также

  • ReflectionFunctionAbstract::getExtensionName() - Получение имени расширения


Получение имени расширения

  • « ReflectionFunctionAbstract::getExtension
  • ReflectionFunctionAbstract::getFileName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получение имени расширения

ReflectionFunctionAbstract::getExtensionName

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::getExtensionName — Получение имени расширения

Описание

public ReflectionFunctionAbstract::getExtensionName ( void ) : string

Получение имени расширения.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя расширения.

Смотрите также

  • ReflectionFunctionAbstract::getExtension() - Получает информацию о расширении


Получает имя файла

  • « ReflectionFunctionAbstract::getExtensionName
  • ReflectionFunctionAbstract::getName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает имя файла

ReflectionFunctionAbstract::getFileName

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::getFileName — Получает имя файла

Описание

public ReflectionFunctionAbstract::getFileName ( void ) : string

Получает имя файла из определенной пользователем функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя файла.

Смотрите также

  • ReflectionFunctionAbstract::getNamespaceName() - Получение имени пространства имен


Получает имя функции

  • « ReflectionFunctionAbstract::getFileName
  • ReflectionFunctionAbstract::getNamespaceName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает имя функции

ReflectionFunctionAbstract::getName

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::getName — Получает имя функции

Описание

public ReflectionFunctionAbstract::getName ( void ) : string

Получение имени функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя функции.

Смотрите также

  • ReflectionFunctionAbstract::getExtensionName() - Получение имени расширения
  • ReflectionFunctionAbstract::isUserDefined() - Проверяет, является ли функция определенной пользователем


Получение имени пространства имен

  • « ReflectionFunctionAbstract::getName
  • ReflectionFunctionAbstract::getNumberOfParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получение имени пространства имен

ReflectionFunctionAbstract::getNamespaceName

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::getNamespaceName — Получение имени пространства имен

Описание

public ReflectionFunctionAbstract::getNamespaceName ( void ) : string

Получение имени пространства имен, в котором определен класс.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя пространства имен.

Смотрите также

  • ReflectionFunctionAbstract::getFileName() - Получает имя файла
  • пространства имен


Получает количество параметров

  • « ReflectionFunctionAbstract::getNamespaceName
  • ReflectionFunctionAbstract::getNumberOfRequiredParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает количество параметров

ReflectionFunctionAbstract::getNumberOfParameters

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::getNumberOfParameters — Получает количество параметров

Описание

public ReflectionFunctionAbstract::getNumberOfParameters ( void ) : int

Получение количества параметров в определении функции как обязательных, так и опциональных.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество параметров.

Смотрите также

  • ReflectionFunctionAbstract::getNumberOfRequiredParameters() - Получает количество обязательных параметров
  • func_num_args() - Возвращает количество аргументов, переданных функции


Получает количество обязательных параметров

  • « ReflectionFunctionAbstract::getNumberOfParameters
  • ReflectionFunctionAbstract::getParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает количество обязательных параметров

ReflectionFunctionAbstract::getNumberOfRequiredParameters

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::getNumberOfRequiredParameters — Получает количество обязательных параметров

Описание

public ReflectionFunctionAbstract::getNumberOfRequiredParameters ( void ) : int

Получение числа обязательных параметров в определении функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Число обязательных параметров.

Смотрите также

  • ReflectionFunctionAbstract::getNumberOfParameters() - Получает количество параметров


Получает параметры

  • « ReflectionFunctionAbstract::getNumberOfRequiredParameters
  • ReflectionFunctionAbstract::getReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает параметры

ReflectionFunctionAbstract::getParameters

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::getParameters — Получает параметры

Описание

public ReflectionFunctionAbstract::getParameters ( void ) : array

Получение параметров в виде массива объектов ReflectionParameter.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Параметры, представленные объектами ReflectionParameter.

Смотрите также

  • ReflectionFunctionAbstract::getNumberOfParameters() - Получает количество параметров
  • func_get_args() - Возвращает массив, содержащий аргументы функции


Получает объявленный тип возвращаемого функцией значения

  • « ReflectionFunctionAbstract::getParameters
  • ReflectionFunctionAbstract::getShortName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает объявленный тип возвращаемого функцией значения

ReflectionFunctionAbstract::getReturnType

(PHP 7)

ReflectionFunctionAbstract::getReturnType — Получает объявленный тип возвращаемого функцией значения

Описание

public ReflectionFunctionAbstract::getReturnType ( void ) : ReflectionType

Получает объявленный тип возвращаемого функцией значения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект класса ReflectionType, если у функции объявлен тип возвращаемого значения, NULL в противном случае.

Примеры

Пример #1 Пример ReflectionFunctionAbstract::getReturnType()

<?php

function to_int($param) : int {
    return (int) $param;
}

$reflection1 = new ReflectionFunction('to_int');
echo $reflection1->getReturnType();

Результат выполнения данного примера:

int

Пример #2 Применение к встроенным функциям

<?php

$reflection2 = new ReflectionFunction('array_merge');

var_dump($reflection2->getReturnType());

Результат выполнения данного примера:

null

Это происходит из-за того, что многие внутренние функции не имеют объявленных типов для аргументов или возвращаемого значения. Поэтому лучше избегать использование данного метода на встроенных функциях.

Смотрите также

  • ReflectionFunctionAbstract::hasReturnType() - Проверяет, имеет ли функция объявленный тип возвращаемого значения
  • ReflectionType::__toString() - Преобразование в строку


Получает короткое имя функции

  • « ReflectionFunctionAbstract::getReturnType
  • ReflectionFunctionAbstract::getStartLine »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает короткое имя функции

ReflectionFunctionAbstract::getShortName

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::getShortName — Получает короткое имя функции

Описание

public ReflectionFunctionAbstract::getShortName ( void ) : string

Получение короткого имени функции (без указания пространства имен).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Короткое имя функции.

Смотрите также

  • ReflectionFunctionAbstract::getNamespaceName() - Получение имени пространства имен
  • пространства имен


Получает начальный номер строки

  • « ReflectionFunctionAbstract::getShortName
  • ReflectionFunctionAbstract::getStaticVariables »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает начальный номер строки

ReflectionFunctionAbstract::getStartLine

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::getStartLine — Получает начальный номер строки

Описание

public ReflectionFunctionAbstract::getStartLine ( void ) : int

Получение номера строки начала описания функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Стартовый номер строки.

Смотрите также

  • ReflectionFunctionAbstract::getEndLine() - Получает номер строки завершения описания функции


Получает статические переменные

  • « ReflectionFunctionAbstract::getStartLine
  • ReflectionFunctionAbstract::hasReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает статические переменные

ReflectionFunctionAbstract::getStaticVariables

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::getStaticVariables — Получает статические переменные

Описание

public ReflectionFunctionAbstract::getStaticVariables ( void ) : array

Получение статических переменных.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) статических переменных.

Смотрите также

  • ReflectionFunctionAbstract::getParameters() - Получает параметры


Проверяет, имеет ли функция объявленный тип возвращаемого значения

  • « ReflectionFunctionAbstract::getStaticVariables
  • ReflectionFunctionAbstract::inNamespace »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, имеет ли функция объявленный тип возвращаемого значения

ReflectionFunctionAbstract::hasReturnType

(PHP 7)

ReflectionFunctionAbstract::hasReturnType — Проверяет, имеет ли функция объявленный тип возвращаемого значения

Описание

public ReflectionFunctionAbstract::hasReturnType ( void ) : bool

Проверяет, имеет ли функция объявленный тип возвращаемого значения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если функция имеет объявленный тип возвращаемого значения, FALSE в противном случае.

Примеры

Пример #1 Пример ReflectionFunctionAbstract::hasReturnType()

<?php

function to_int($param) : int {
    return (int) $param;
}

$reflection1 = new ReflectionFunction('to_int');
var_dump($reflection1->hasReturnType());

Результат выполнения данного примера:

bool(true)

Пример #2 Применение к встроенным функциям

<?php

$reflection2 = new ReflectionFunction('array_merge');

var_dump($reflection2->hasReturnType());

Результат выполнения данного примера:

bool(false)

Это происходит из-за того, что многие внутренние функции не имеют объявленных типов для аргументов или возвращаемого значения. Поэтому лучше избегать использование данного метода на внутренних функциях.

Смотрите также

  • ReflectionFunctionAbstract::getReturnType() - Получает объявленный тип возвращаемого функцией значения


Проверяет, находится ли функция в пространстве имен

  • « ReflectionFunctionAbstract::hasReturnType
  • ReflectionFunctionAbstract::isClosure »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, находится ли функция в пространстве имен

ReflectionFunctionAbstract::inNamespace

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::inNamespace — Проверяет, находится ли функция в пространстве имен

Описание

public ReflectionFunctionAbstract::inNamespace ( void ) : bool

Проверяет, что функция определена в пространстве имен.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если функция определена в пространстве имен, FALSE в противном случае.

Смотрите также

  • ReflectionFunctionAbstract::getNamespaceName() - Получение имени пространства имен
  • пространства имен


Проверяет, является ли функция замыканием (Closure)

  • « ReflectionFunctionAbstract::inNamespace
  • ReflectionFunctionAbstract::isDeprecated »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, является ли функция замыканием (Closure)

ReflectionFunctionAbstract::isClosure

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::isClosure — Проверяет, является ли функция замыканием (Closure)

Описание

public ReflectionFunctionAbstract::isClosure ( void ) : bool

Проверка, является ли функция замыканием.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если функция является замыканием (Closure), FALSE в противном случае.

Примеры

Пример #1 Пример использования метода ReflectionFunctionAbstract::isClosure()

<?php
// Не замыкание
$function1 = 'str_replace';
$reflection1 = new ReflectionFunction($function1);
var_dump($reflection1->isClosure());

// Замыкание
$function2 = function () {};
$reflection2 = new ReflectionFunction($function2);
var_dump($reflection2->isClosure());
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • ReflectionFunctionAbstract::isGenerator() - Проверяет, является ли функция генератором


Проверяет, является ли функция устаревшей

  • « ReflectionFunctionAbstract::isClosure
  • ReflectionFunctionAbstract::isGenerator »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, является ли функция устаревшей

ReflectionFunctionAbstract::isDeprecated

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::isDeprecated — Проверяет, является ли функция устаревшей

Описание

public ReflectionFunctionAbstract::isDeprecated ( void ) : bool

Проверяет, является ли функция устаревшей.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если функция устарела, FALSE в противном случае.

Примеры

Пример #1 Пример использования ReflectionFunctionAbstract::isDeprecated()

<?php
$rf = new ReflectionFunction('ereg');
var_dump($rf->isDeprecated());
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • ReflectionFunctionAbstract::getDocComment() - Получает doc-комментарий


Проверяет, является ли функция генератором

  • « ReflectionFunctionAbstract::isDeprecated
  • ReflectionFunctionAbstract::isInternal »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, является ли функция генератором

ReflectionFunctionAbstract::isGenerator

(PHP 5 >= 5.5.0, PHP 7)

ReflectionFunctionAbstract::isGenerator — Проверяет, является ли функция генератором

Описание

public ReflectionFunctionAbstract::isGenerator ( void ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возврашает TRUE, если функция является генератором, FALSE в противном случае или NULL, в случае ошибки.


Проверяет, является ли функция внутренней

  • « ReflectionFunctionAbstract::isGenerator
  • ReflectionFunctionAbstract::isUserDefined »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, является ли функция внутренней

ReflectionFunctionAbstract::isInternal

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::isInternal — Проверяет, является ли функция внутренней

Описание

public ReflectionFunctionAbstract::isInternal ( void ) : bool

Проверяет, является ли функция внутренней, то есть не определенной пользователем.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если функция внутренняя, FALSE в противном случае.

Смотрите также

  • ReflectionFunctionAbstract::isUserDefined() - Проверяет, является ли функция определенной пользователем


Проверяет, является ли функция определенной пользователем

  • « ReflectionFunctionAbstract::isInternal
  • ReflectionFunctionAbstract::isVariadic »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, является ли функция определенной пользователем

ReflectionFunctionAbstract::isUserDefined

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::isUserDefined — Проверяет, является ли функция определенной пользователем

Описание

public ReflectionFunctionAbstract::isUserDefined ( void ) : bool

Проверяет, является ли функция определенной пользователем, то есть это не внутренняя функция.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если функция определена пользователем, FALSE в противном случае.

Смотрите также

  • ReflectionFunctionAbstract::isInternal() - Проверяет, является ли функция внутренней


Проверяет, является ли функция функцией с переменным числом аргументов

  • « ReflectionFunctionAbstract::isUserDefined
  • ReflectionFunctionAbstract::returnsReference »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, является ли функция функцией с переменным числом аргументов

ReflectionFunctionAbstract::isVariadic

(PHP 5 >= 5.6.0, PHP 7)

ReflectionFunctionAbstract::isVariadic — Проверяет, является ли функция функцией с переменным числом аргументов

Описание

public ReflectionFunctionAbstract::isVariadic ( void ) : bool

Проверяет, является ли функция функцией с переменным числом аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возврашает TRUE, если функция с переменным числом аргументов, FALSE в противном случае.


Проверяет, что функция возвращает ссылку

  • « ReflectionFunctionAbstract::isVariadic
  • ReflectionFunctionAbstract::__toString »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, что функция возвращает ссылку

ReflectionFunctionAbstract::returnsReference

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::returnsReference — Проверяет, что функция возвращает ссылку

Описание

public ReflectionFunctionAbstract::returnsReference ( void ) : bool

Проверяет, что функция возвращает ссылку.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если функция возвращает ссылку, FALSE в противном случае.

Смотрите также

  • ReflectionFunctionAbstract::isClosure() - Проверяет, является ли функция замыканием (Closure)


Преобразование в строку

  • « ReflectionFunctionAbstract::returnsReference
  • ReflectionMethod »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Преобразование в строку

ReflectionFunctionAbstract::__toString

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::__toString — Преобразование в строку

Описание

abstract public ReflectionFunctionAbstract::__toString ( void ) : void

Представление в виде строки.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка.

Смотрите также

  • ReflectionClass::clone()
  • __toString()


Класс ReflectionMethod

(PHP 5, PHP 7)

Введение

Класс ReflectionMethod сообщает информацию о методах.

Обзор классов

ReflectionMethod extends ReflectionFunctionAbstract implements Reflector {
/* Константы */
const integer IS_STATIC = 1 ;
const integer IS_PUBLIC = 256 ;
const integer IS_PROTECTED = 512 ;
const integer IS_PRIVATE = 1024 ;
const integer IS_ABSTRACT = 2 ;
const integer IS_FINAL = 4 ;
/* Свойства */
public $name ;
public $class ;
/* Методы */
public __construct ( mixed $class , string $name )
public static export ( string $class , string $name [, bool $return = FALSE ] ) : string
public getClosure ( object $object ) : Closure
public getDeclaringClass ( void ) : ReflectionClass
public getModifiers ( void ) : int
public getPrototype ( void ) : ReflectionMethod
public invoke ( object $object [, mixed $... ] ) : mixed
public invokeArgs ( object $object , array $args ) : mixed
public isAbstract ( void ) : bool
public isConstructor ( void ) : bool
public isDestructor ( void ) : bool
public isFinal ( void ) : bool
public isPrivate ( void ) : bool
public isProtected ( void ) : bool
public isPublic ( void ) : bool
public isStatic ( void ) : bool
public setAccessible ( bool $accessible ) : void
public __toString ( void ) : string
/* Наследуемые методы */
final private ReflectionFunctionAbstract::__clone ( void ) : void
public ReflectionFunctionAbstract::getClosureScopeClass ( void ) : ReflectionClass
public ReflectionFunctionAbstract::getClosureThis ( void ) : object
public ReflectionFunctionAbstract::getDocComment ( void ) : string
public ReflectionFunctionAbstract::getEndLine ( void ) : int
public ReflectionFunctionAbstract::getExtension ( void ) : ReflectionExtension
public ReflectionFunctionAbstract::getExtensionName ( void ) : string
public ReflectionFunctionAbstract::getFileName ( void ) : string
public ReflectionFunctionAbstract::getName ( void ) : string
public ReflectionFunctionAbstract::getNamespaceName ( void ) : string
public ReflectionFunctionAbstract::getNumberOfParameters ( void ) : int
public ReflectionFunctionAbstract::getNumberOfRequiredParameters ( void ) : int
public ReflectionFunctionAbstract::getParameters ( void ) : array
public ReflectionFunctionAbstract::getReturnType ( void ) : ReflectionType
public ReflectionFunctionAbstract::getShortName ( void ) : string
public ReflectionFunctionAbstract::getStartLine ( void ) : int
public ReflectionFunctionAbstract::getStaticVariables ( void ) : array
public ReflectionFunctionAbstract::hasReturnType ( void ) : bool
public ReflectionFunctionAbstract::inNamespace ( void ) : bool
public ReflectionFunctionAbstract::isClosure ( void ) : bool
public ReflectionFunctionAbstract::isDeprecated ( void ) : bool
public ReflectionFunctionAbstract::isGenerator ( void ) : bool
public ReflectionFunctionAbstract::isInternal ( void ) : bool
public ReflectionFunctionAbstract::isUserDefined ( void ) : bool
public ReflectionFunctionAbstract::isVariadic ( void ) : bool
public ReflectionFunctionAbstract::returnsReference ( void ) : bool
abstract public ReflectionFunctionAbstract::__toString ( void ) : void
}

Свойства

name

Имя метода

class

Имя класса

Предопределенные константы

Модификаторы ReflectionMethod

ReflectionMethod::IS_STATIC

Указывает на то, что это статический метод.

ReflectionMethod::IS_PUBLIC

Указывает на то, что это общедоступный метод.

ReflectionMethod::IS_PROTECTED

Указывает на то, что это защищённый метод.

ReflectionMethod::IS_PRIVATE

Указывает на то, что это закрытый метод.

ReflectionMethod::IS_ABSTRACT

Указывает на то, что это абстрактный метод.

ReflectionMethod::IS_FINAL

Указывает на то, что это окончательный метод.

Содержание

  • ReflectionMethod::__construct — Конструктор класса ReflectionMethod
  • ReflectionMethod::export — Экспорт отраженного метода
  • ReflectionMethod::getClosure — Возвращает динамически созданное замыкание для метода
  • ReflectionMethod::getDeclaringClass — Получает класс, объявляющий отраженный метод
  • ReflectionMethod::getModifiers — Получает модификаторы метода
  • ReflectionMethod::getPrototype — Получает прототип метода (если такой есть)
  • ReflectionMethod::invoke — Вызов
  • ReflectionMethod::invokeArgs — Вызов метода с передачей аргументов массивом
  • ReflectionMethod::isAbstract — Проверяет, является ли метод абстрактным
  • ReflectionMethod::isConstructor — Проверяет, является ли метод конструктором
  • ReflectionMethod::isDestructor — Проверяет, является ли метод деструктором
  • ReflectionMethod::isFinal — Проверяет, является ли метод окончательным
  • ReflectionMethod::isPrivate — Проверяет, является ли метод закрытым
  • ReflectionMethod::isProtected — Проверяет, является ли метод защищенным
  • ReflectionMethod::isPublic — Проверяет, является ли метод общедоступным
  • ReflectionMethod::isStatic — Проверяет, является ли метод статическим
  • ReflectionMethod::setAccessible — Делает метод доступным
  • ReflectionMethod::__toString — Возвращает строковое представление объекта ReflectionMethod


Конструктор класса ReflectionMethod

  • « ReflectionMethod
  • ReflectionMethod::export »
  • PHP Manual
  • ReflectionMethod
  • Конструктор класса ReflectionMethod

ReflectionMethod::__construct

(PHP 5, PHP 7)

ReflectionMethod::__construct — Конструктор класса ReflectionMethod

Описание

public ReflectionMethod::__construct ( mixed $class , string $name )
public ReflectionMethod::__construct ( string $class_method )

Создает новый объект класса ReflectionMethod.

Список параметров

class

Имя класса или объект (экземпляр класса), содержащего метод.

name

Имя метода.

class_method

Имена класса и метода, разделенные ::.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Исключение ReflectionException выбрасывается, если заданный метод не существует.

Примеры

Пример #1 Пример использования ReflectionMethod::__construct()

<?php
class Counter
{
    private static $c = 0;

    /**
     * Счетчик
     *
     * @final
     * @static
     * @access  public
     * @return  int
     */
    final public static function increment()
    {
        return ++self::$c;
    }
}

// Создание экземпляра класса ReflectionMethod
$method = new ReflectionMethod('Counter', 'increment');

// Вывод основной информации
printf(
    "===> %s%s%s%s%s%s%s метод '%s' (%s)\n" .
    "     объявлен в %s\n" .
    "     строки с %d по %d\n" .
    "     имеет модификаторы %d[%s]\n",
        $method->isInternal() ? 'внутренний' : 'определенный пользователем',
        $method->isAbstract() ? ' абстрактный' : '',
        $method->isFinal() ? ' окончательный' : '',
        $method->isPublic() ? ' общедоступный' : '',
        $method->isPrivate() ? ' закрытый' : '',
        $method->isProtected() ? ' защищенный' : '',
        $method->isStatic() ? ' статический' : '',
        $method->getName(),
        $method->isConstructor() ? 'конструктор' : 'обычный метод',
        $method->getFileName(),
        $method->getStartLine(),
        $method->getEndline(),
        $method->getModifiers(),
        implode(' ', Reflection::getModifierNames($method->getModifiers()))
);

// Вывод doc-комментария
printf("---> Комментарий:\n %s\n", var_export($method->getDocComment(), true));

// Вывод статических переменных, если есть
if ($statics= $method->getStaticVariables()) {
    printf("---> Статические переменные: %s\n", var_export($statics, true));
}

// Вызов метода
printf("---> Результат вызова метода: ");
var_dump($method->invoke(NULL));
?>

Результатом выполнения данного примера будет что-то подобное:

===> определенный пользователем окончательный общедоступный статический метод 'increment' (обычный метод)
     объявлен в /Users/philip/cvs/phpdoc/test.php
     строки с 14 по 17
     имеет модификаторы 261[final public static]
---> Комментарий:
 '/**
     * Счетчик
     *
     * @final
     * @static
     * @access  public
     * @return  int
     */'
---> Результат вызова метода: int(1)

Смотрите также

  • ReflectionMethod::export() - Экспорт отраженного метода
  • Конструкторы


Экспорт отраженного метода

  • « ReflectionMethod::__construct
  • ReflectionMethod::getClosure »
  • PHP Manual
  • ReflectionMethod
  • Экспорт отраженного метода

ReflectionMethod::export

(PHP 5, PHP 7)

ReflectionMethod::export — Экспорт отраженного метода

Описание

public static ReflectionMethod::export ( string $class , string $name [, bool $return = FALSE ] ) : string

Экспортирует ReflectionMethod.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

class

Имя класса.

name

Имя метода.

return

Установка в TRUE вернет экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в FALSE (по умолчанию) сделает противоположное.

Возвращаемые значения

Если параметр return установлен в TRUE, тогда экспортируемый объект будет возвращен как string, иначе будет возвращен NULL.

Смотрите также

  • ReflectionMethod::__construct() - Конструктор класса ReflectionMethod
  • ReflectionMethod::__toString() - Возвращает строковое представление объекта ReflectionMethod


Возвращает динамически созданное замыкание для метода

  • « ReflectionMethod::export
  • ReflectionMethod::getDeclaringClass »
  • PHP Manual
  • ReflectionMethod
  • Возвращает динамически созданное замыкание для метода

ReflectionMethod::getClosure

(PHP 5 >= 5.4.0, PHP 7)

ReflectionMethod::getClosure — Возвращает динамически созданное замыкание для метода

Описание

public ReflectionMethod::getClosure ( object $object ) : Closure
public ReflectionMethod::getClosure ( void ) : Closure

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

object

Запрещен для статических методов, обязателен для остальных.

Возвращаемые значения

Возвращает замыкание Closure. Возвращает NULL в случае возникновения ошибки.


Получает класс, объявляющий отраженный метод

  • « ReflectionMethod::getClosure
  • ReflectionMethod::getModifiers »
  • PHP Manual
  • ReflectionMethod
  • Получает класс, объявляющий отраженный метод

ReflectionMethod::getDeclaringClass

(PHP 5, PHP 7)

ReflectionMethod::getDeclaringClass — Получает класс, объявляющий отраженный метод

Описание

public ReflectionMethod::getDeclaringClass ( void ) : ReflectionClass

Получает класс, объявляющий отраженный метод.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса ReflectionClass, частью которого является отраженный метод.

Примеры

Пример #1 Пример использования ReflectionMethod::getDeclaringClass()

<?php
class HelloWorld {

    protected function sayHelloTo($name) {
        return 'Привет, ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod(new HelloWorld(), 'sayHelloTo');
var_dump($reflectionMethod->getDeclaringClass());
?>

Результат выполнения данного примера:

object(ReflectionClass)#2 (1) {
  ["name"]=>
  string(10) "HelloWorld"
}

Смотрите также

  • ReflectionMethod::isAbstract() - Проверяет, является ли метод абстрактным


Получает модификаторы метода

  • « ReflectionMethod::getDeclaringClass
  • ReflectionMethod::getPrototype »
  • PHP Manual
  • ReflectionMethod
  • Получает модификаторы метода

ReflectionMethod::getModifiers

(PHP 5, PHP 7)

ReflectionMethod::getModifiers — Получает модификаторы метода

Описание

public ReflectionMethod::getModifiers ( void ) : int

Возвращает битовое поле модификаторов доступа для метода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Числовое представление модификаторов. Модификаторы перечислены ниже. Описания и значения этих модификаторов приведены в списке предопределенных констант.

Примеры

Пример #1 Пример использования ReflectionMethod::getModifiers()

<?php
class Testing
{
    final public static function foo()
    {
        return;
    }
    public function bar()
    {
        return;
    }
}

$foo = new ReflectionMethod('Testing', 'foo');

echo "Модификаторы метода foo():\n";
echo $foo->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($foo->getModifiers())) . "\n";

$bar = new ReflectionMethod('Testing', 'bar');

echo "Модификаторы метода bar():\n";
echo $bar->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($bar->getModifiers()));
?>

Результатом выполнения данного примера будет что-то подобное:

Модификаторы метода foo():
261
final public static
Модификаторы метода bar():
65792
public

Смотрите также

  • Reflection::getModifierNames() - Получение имен модификаторов


Получает прототип метода (если такой есть)

  • « ReflectionMethod::getModifiers
  • ReflectionMethod::invoke »
  • PHP Manual
  • ReflectionMethod
  • Получает прототип метода (если такой есть)

ReflectionMethod::getPrototype

(PHP 5 >= 5.1.2, PHP 7)

ReflectionMethod::getPrototype — Получает прототип метода (если такой есть)

Описание

public ReflectionMethod::getPrototype ( void ) : ReflectionMethod

Получает прототип метода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект ReflectionMethod прототипа метода.

Ошибки

Исключение ReflectionException выбрасывается, если у метода нет прототипа.

Примеры

Пример #1 Пример использования ReflectionMethod::getPrototype()

<?php
class Hello {

    public function sayHelloTo($name) {
        return 'Привет, ' . $name;
    }

}
class HelloWorld extends Hello {

    public function sayHelloTo($name) {
        return 'Привет, мир: ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
var_dump($reflectionMethod->getPrototype());
?>

Результат выполнения данного примера:

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(10) "sayHelloTo"
  ["class"]=>
  string(5) "Hello"
}

Смотрите также

  • ReflectionMethod::getModifiers() - Получает модификаторы метода


Вызов

  • « ReflectionMethod::getPrototype
  • ReflectionMethod::invokeArgs »
  • PHP Manual
  • ReflectionMethod
  • Вызов

ReflectionMethod::invoke

(PHP 5, PHP 7)

ReflectionMethod::invoke — Вызов

Описание

public ReflectionMethod::invoke ( object $object [, mixed $... ] ) : mixed

Вызывает отраженный метод.

Список параметров

object

Объект, метод которого требуется вызвать. Для статических методов передается null.

...

Ноль или более аргументов, передаваемых методу. Допускается передавать переменное число аргументов.

Возвращаемые значения

Возвращает результат выполнения метода.

Ошибки

Выбрасывает исключение ReflectionException, если в объекте object нет определения метода.

Выбрасывает исключение ReflectionException, если вызвать метод на исполнение не удалось.

Примеры

Пример #1 Пример использования ReflectionMethod::invoke()

<?php
class HelloWorld {

    public function sayHelloTo($name) {
        return 'Привет, ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
echo $reflectionMethod->invoke(new HelloWorld(), 'Майк');
?>

Результат выполнения данного примера:

Привет, Майк

Примечания

Замечание:

Если функция имеет аргументы, которые должны быть ссылками, то они должны быть ссылками и в переданном спике аргументов.

Смотрите также

  • ReflectionMethod::invokeArgs() - Вызов метода с передачей аргументов массивом
  • __invoke()
  • call_user_func() - Вызывает callback-функцию, заданную в первом параметре


Вызов метода с передачей аргументов массивом

  • « ReflectionMethod::invoke
  • ReflectionMethod::isAbstract »
  • PHP Manual
  • ReflectionMethod
  • Вызов метода с передачей аргументов массивом

ReflectionMethod::invokeArgs

(PHP 5 >= 5.1.2, PHP 7)

ReflectionMethod::invokeArgs — Вызов метода с передачей аргументов массивом

Описание

public ReflectionMethod::invokeArgs ( object $object , array $args ) : mixed

Вызывает отраженный метод и передает ему аргументы в виде массива.

Список параметров

object

Объект, метод которого вызывается. Если метод статический, можно передать null.

args

Массив (array), содержащий аргументы функции.

Возвращаемые значения

Возвращает результат выполнения метода.

Ошибки

Выбрасывает исключение ReflectionException, если в объекте object нет определения этого метода.

Выбрасывает исключение ReflectionException, если вызвать метод на исполнение не удалось.

Примеры

Пример #1 Пример использования ReflectionMethod::invokeArgs()

<?php
class HelloWorld {

    public function sayHelloTo($name) {
        return 'Привет, ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
echo $reflectionMethod->invokeArgs(new HelloWorld(), array('Майк'));
?>

Результат выполнения данного примера:

Привет, Майк

Примечания

Замечание:

Если функция имеет аргументы, которые должны быть ссылками, то они должны быть ссылками и в переданном спике аргументов.

Смотрите также

  • ReflectionMethod::invoke() - Вызов
  • __invoke()
  • call_user_func_array() - Вызывает callback-функцию с массивом параметров


Проверяет, является ли метод абстрактным

  • « ReflectionMethod::invokeArgs
  • ReflectionMethod::isConstructor »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод абстрактным

ReflectionMethod::isAbstract

(PHP 5, PHP 7)

ReflectionMethod::isAbstract — Проверяет, является ли метод абстрактным

Описание

public ReflectionMethod::isAbstract ( void ) : bool

Проверяет, является ли метод абстрактным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если метод абстрактный, FALSE в противном случае.

Смотрите также

  • ReflectionMethod::getDeclaringClass() - Получает класс, объявляющий отраженный метод


Проверяет, является ли метод конструктором

  • « ReflectionMethod::isAbstract
  • ReflectionMethod::isDestructor »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод конструктором

ReflectionMethod::isConstructor

(PHP 5, PHP 7)

ReflectionMethod::isConstructor — Проверяет, является ли метод конструктором

Описание

public ReflectionMethod::isConstructor ( void ) : bool

Проверяет, является ли метод конструктором.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если метод является конструктором, FALSE в противном случае.

Смотрите также

  • ReflectionMethod::__construct() - Конструктор класса ReflectionMethod
  • ReflectionMethod::isAbstract() - Проверяет, является ли метод абстрактным
  • ReflectionMethod::isDestructor() - Проверяет, является ли метод деструктором


Проверяет, является ли метод деструктором

  • « ReflectionMethod::isConstructor
  • ReflectionMethod::isFinal »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод деструктором

ReflectionMethod::isDestructor

(PHP 5, PHP 7)

ReflectionMethod::isDestructor — Проверяет, является ли метод деструктором

Описание

public ReflectionMethod::isDestructor ( void ) : bool

Проверяет, является ли метод деструктором.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если метод является деструктором, FALSE в противном случае.

Смотрите также

  • ReflectionMethod::isConstructor() - Проверяет, является ли метод конструктором


Проверяет, является ли метод окончательным

  • « ReflectionMethod::isDestructor
  • ReflectionMethod::isPrivate »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод окончательным

ReflectionMethod::isFinal

(PHP 5, PHP 7)

ReflectionMethod::isFinal — Проверяет, является ли метод окончательным

Описание

public ReflectionMethod::isFinal ( void ) : bool

Проверяет, является ли метод окончательным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если метод окончательный, FALSE в противном случае.

Смотрите также

  • ReflectionMethod::isStatic() - Проверяет, является ли метод статическим


Проверяет, является ли метод закрытым

  • « ReflectionMethod::isFinal
  • ReflectionMethod::isProtected »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод закрытым

ReflectionMethod::isPrivate

(PHP 5, PHP 7)

ReflectionMethod::isPrivate — Проверяет, является ли метод закрытым

Описание

public ReflectionMethod::isPrivate ( void ) : bool

Проверяет, является ли метод закрытым.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если метод закрытый, FALSE в противном случае.

Смотрите также

  • ReflectionMethod::isPublic() - Проверяет, является ли метод общедоступным


Проверяет, является ли метод защищенным

  • « ReflectionMethod::isPrivate
  • ReflectionMethod::isPublic »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод защищенным

ReflectionMethod::isProtected

(PHP 5, PHP 7)

ReflectionMethod::isProtected — Проверяет, является ли метод защищенным

Описание

public ReflectionMethod::isProtected ( void ) : bool

Проверяет, является ли метод защищенным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если метод защищенный, FALSE в противном случае.

Смотрите также

  • ReflectionMethod::isPrivate() - Проверяет, является ли метод закрытым


Проверяет, является ли метод общедоступным

  • « ReflectionMethod::isProtected
  • ReflectionMethod::isStatic »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод общедоступным

ReflectionMethod::isPublic

(PHP 5, PHP 7)

ReflectionMethod::isPublic — Проверяет, является ли метод общедоступным

Описание

public ReflectionMethod::isPublic ( void ) : bool

Проверяет, является ли метод общедоступным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если метод общедоступный, FALSE в противном случае.

Смотрите также

  • ReflectionMethod::isPrivate() - Проверяет, является ли метод закрытым


Проверяет, является ли метод статическим

  • « ReflectionMethod::isPublic
  • ReflectionMethod::setAccessible »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод статическим

ReflectionMethod::isStatic

(PHP 5, PHP 7)

ReflectionMethod::isStatic — Проверяет, является ли метод статическим

Описание

public ReflectionMethod::isStatic ( void ) : bool

Проверяет, является ли метод статическим.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если метод статический, FALSE в противном случае.

Смотрите также

  • ReflectionMethod::isFinal() - Проверяет, является ли метод окончательным


Делает метод доступным

  • « ReflectionMethod::isStatic
  • ReflectionMethod::__toString »
  • PHP Manual
  • ReflectionMethod
  • Делает метод доступным

ReflectionMethod::setAccessible

(PHP 5 >= 5.3.2, PHP 7)

ReflectionMethod::setAccessible — Делает метод доступным

Описание

public ReflectionMethod::setAccessible ( bool $accessible ) : void

Делает метод доступным. Например, позволяет вызывать защищенные и закрытые методы.

Список параметров

accessible

TRUE, чтобы сделать метод доступным, или FALSE.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ReflectionMethod::isPrivate() - Проверяет, является ли метод закрытым
  • ReflectionMethod::isProtected() - Проверяет, является ли метод защищенным


Возвращает строковое представление объекта ReflectionMethod

  • « ReflectionMethod::setAccessible
  • ReflectionNamedType »
  • PHP Manual
  • ReflectionMethod
  • Возвращает строковое представление объекта ReflectionMethod

ReflectionMethod::__toString

(PHP 5, PHP 7)

ReflectionMethod::__toString — Возвращает строковое представление объекта ReflectionMethod

Описание

public ReflectionMethod::__toString ( void ) : string

Возвращает строковое представление объекта ReflectionMethod.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строковое представление объекта ReflectionMethod.

Примеры

Пример #1 Пример использования ReflectionMethod::__toString()

<?php
class HelloWorld {

    public function sayHelloTo($name) {
        return 'Привет, ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod(new HelloWorld(), 'sayHelloTo');
echo $reflectionMethod;
?>

Результат выполнения данного примера:

Method [ <user> public method sayHelloTo ] {
  @@ /var/www/examples/reflection.php 16 - 18

  - Parameters [1] {
    Parameter #0 [ <required> $name ]
  }
}

Смотрите также

  • ReflectionMethod::export() - Экспорт отраженного метода
  • __toString()


Класс ReflectionNamedType

(PHP 7 >= 7.1.0)

Введение

Обзор классов

ReflectionNamedType extends ReflectionType {
/* Методы */
public getName ( void ) : string
/* Наследуемые методы */
public ReflectionType::allowsNull ( void ) : bool
public ReflectionType::isBuiltin ( void ) : bool
public ReflectionType::__toString ( void ) : string
}

Содержание

  • ReflectionNamedType::getName — Получить текст подсказки типа


Получить текст подсказки типа

  • « ReflectionNamedType
  • ReflectionObject »
  • PHP Manual
  • ReflectionNamedType
  • Получить текст подсказки типа

ReflectionNamedType::getName

(PHP 7 >= 7.1.0)

ReflectionNamedType::getName — Получить текст подсказки типа

Описание

public ReflectionNamedType::getName ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текст подсказки типа.

Смотрите также

  • ReflectionType::__toString() - Преобразование в строку


Класс ReflectionObject

(PHP 5, PHP 7)

Введение

Класс ReflectionObject сообщает информацию об объектах (object).

Обзор классов

ReflectionObject extends ReflectionClass implements Reflector {
/* Наследуемые константы */
const integer ReflectionClass::IS_IMPLICIT_ABSTRACT = 16 ;
const integer ReflectionClass::IS_EXPLICIT_ABSTRACT = 32 ;
const integer ReflectionClass::IS_FINAL = 64 ;
/* Свойства */
public $name ;
/* Методы */
public __construct ( object $argument )
public static export ( string $argument [, bool $return ] ) : string
/* Наследуемые методы */
public ReflectionClass::__construct ( mixed $argument )
public static ReflectionClass::export ( mixed $argument [, bool $return = FALSE ] ) : string
public ReflectionClass::getConstant ( string $name ) : mixed
public ReflectionClass::getConstants ( void ) : array
public ReflectionClass::getConstructor ( void ) : ReflectionMethod
public ReflectionClass::getDefaultProperties ( void ) : array
public ReflectionClass::getDocComment ( void ) : string
public ReflectionClass::getEndLine ( void ) : int
public ReflectionClass::getExtension ( void ) : ReflectionExtension
public ReflectionClass::getExtensionName ( void ) : string
public ReflectionClass::getFileName ( void ) : string
public ReflectionClass::getInterfaceNames ( void ) : array
public ReflectionClass::getInterfaces ( void ) : array
public ReflectionClass::getMethod ( string $name ) : ReflectionMethod
public ReflectionClass::getMethods ([ int $filter ] ) : array
public ReflectionClass::getModifiers ( void ) : int
public ReflectionClass::getName ( void ) : string
public ReflectionClass::getNamespaceName ( void ) : string
public ReflectionClass::getParentClass ( void ) : ReflectionClass
public ReflectionClass::getProperties ([ int $filter ] ) : array
public ReflectionClass::getProperty ( string $name ) : ReflectionProperty
public ReflectionClass::getReflectionConstant ( string $name ) : ReflectionClassConstant
public ReflectionClass::getReflectionConstants ( void ) : array
public ReflectionClass::getShortName ( void ) : string
public ReflectionClass::getStartLine ( void ) : int
public ReflectionClass::getStaticProperties ( void ) : array
public ReflectionClass::getStaticPropertyValue ( string $name [, mixed &$def_value ] ) : mixed
public ReflectionClass::getTraitAliases ( void ) : array
public ReflectionClass::getTraitNames ( void ) : array
public ReflectionClass::getTraits ( void ) : array
public ReflectionClass::hasConstant ( string $name ) : bool
public ReflectionClass::hasMethod ( string $name ) : bool
public ReflectionClass::hasProperty ( string $name ) : bool
public ReflectionClass::implementsInterface ( string $interface ) : bool
public ReflectionClass::inNamespace ( void ) : bool
public ReflectionClass::isAbstract ( void ) : bool
public ReflectionClass::isAnonymous ( void ) : bool
public ReflectionClass::isCloneable ( void ) : bool
public ReflectionClass::isFinal ( void ) : bool
public ReflectionClass::isInstance ( object $object ) : bool
public ReflectionClass::isInstantiable ( void ) : bool
public ReflectionClass::isInterface ( void ) : bool
public ReflectionClass::isInternal ( void ) : bool
public ReflectionClass::isIterable ( void ) : bool
public ReflectionClass::isSubclassOf ( mixed $class ) : bool
public ReflectionClass::isTrait ( void ) : bool
public ReflectionClass::isUserDefined ( void ) : bool
public ReflectionClass::newInstance ([ mixed $... ] ) : object
public ReflectionClass::newInstanceArgs ([ array $args ] ) : object
public ReflectionClass::newInstanceWithoutConstructor ( void ) : object
public ReflectionClass::setStaticPropertyValue ( string $name , mixed $value ) : void
public ReflectionClass::__toString ( void ) : string
}

Свойства

name

Имя класса объекта. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Содержание

  • ReflectionObject::__construct — Конструктор класса ReflectionObject
  • ReflectionObject::export — Экспорт


Конструктор класса ReflectionObject

  • « ReflectionObject
  • ReflectionObject::export »
  • PHP Manual
  • ReflectionObject
  • Конструктор класса ReflectionObject

ReflectionObject::__construct

(PHP 5, PHP 7)

ReflectionObject::__construct — Конструктор класса ReflectionObject

Описание

public ReflectionObject::__construct ( object $argument )

Создает новый объект класса ReflectionObject.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

argument

Экземпляр объекта.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ReflectionObject::export() - Экспорт
  • Конструкторы


Экспорт

  • « ReflectionObject::__construct
  • ReflectionParameter »
  • PHP Manual
  • ReflectionObject
  • Экспорт

ReflectionObject::export

(PHP 5, PHP 7)

ReflectionObject::export — Экспорт

Описание

public static ReflectionObject::export ( string $argument [, bool $return ] ) : string

Экспортирует отражение (reflection).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

argument

Экспортируемый объект Reflection.

return

Установка в TRUE вернет экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в FALSE (по умолчанию) сделает противоположное.

Возвращаемые значения

Если параметр return установлен в TRUE, тогда экспортируемый объект будет возвращен как string, иначе будет возвращен NULL.

Смотрите также

  • ReflectionObject::__construct() - Конструктор класса ReflectionObject


Класс ReflectionParameter

(PHP 5, PHP 7)

Введение

Класс ReflectionParameter сообщает информацию о параметрах методов и функций.

Чтобы иметь возможность исследовать аргументы функции, сначала создайте экземпляр класса ReflectionFunction либо ReflectionMethod, а затем используйте его метод ReflectionFunctionAbstract::getParameters() для получения массива аргументов.

Обзор классов

ReflectionParameter implements Reflector {
/* Свойства */
public $name ;
/* Методы */
public allowsNull ( void ) : bool
public canBePassedByValue ( void ) : bool
final private __clone ( void ) : void
public __construct ( callable $function , mixed $parameter )
public static export ( string $function , string $parameter [, bool $return ] ) : string
public getClass ( void ) : ReflectionClass
public getDeclaringClass ( void ) : ReflectionClass
public getDeclaringFunction ( void ) : ReflectionFunctionAbstract
public getDefaultValue ( void ) : mixed
public getDefaultValueConstantName ( void ) : string
public getName ( void ) : string
public getPosition ( void ) : int
public getType ( void ) : ReflectionType
public hasType ( void ) : bool
public isArray ( void ) : bool
public isCallable ( void ) : bool
public isDefaultValueAvailable ( void ) : bool
public isDefaultValueConstant ( void ) : bool
public isOptional ( void ) : bool
public isPassedByReference ( void ) : bool
public isVariadic ( void ) : bool
public __toString ( void ) : string
}

Свойства

name

Имя аргумента. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Содержание

  • ReflectionParameter::allowsNull — Проверяет, допустимо ли значение null для параметра
  • ReflectionParameter::canBePassedByValue — Проверяет, можно ли передать этот аргумент по значению
  • ReflectionParameter::__clone — Клонировать
  • ReflectionParameter::__construct — Конструктор
  • ReflectionParameter::export — Экспорт
  • ReflectionParameter::getClass — Получение класса из подсказки типа
  • ReflectionParameter::getDeclaringClass — Получение объявляющего класса
  • ReflectionParameter::getDeclaringFunction — Получение объявляющей функции
  • ReflectionParameter::getDefaultValue — Получение значения по умолчанию для параметра
  • ReflectionParameter::getDefaultValueConstantName — Возвращает имя константы значения по умолчанию, если значение по умолчанию константа или null
  • ReflectionParameter::getName — Получение имени параметра
  • ReflectionParameter::getPosition — Получение позиции параметра
  • ReflectionParameter::getType — Получить тип параметра
  • ReflectionParameter::hasType — Проверить, указан ли тип параметра
  • ReflectionParameter::isArray — Проверяет, ожидает ли аргумент массив в качестве значения
  • ReflectionParameter::isCallable — Определить, должен ли параметр быть типа callable
  • ReflectionParameter::isDefaultValueAvailable — Проверяет, доступно ли значение по умолчанию
  • ReflectionParameter::isDefaultValueConstant — Определить, является ли значение параметра по умолчанию константой
  • ReflectionParameter::isOptional — Проверяет, является ли аргумент необязательным
  • ReflectionParameter::isPassedByReference — Проверяет, передан ли параметр по ссылке
  • ReflectionParameter::isVariadic — Проверить, является ли параметр параметром с переменным количеством аргументов
  • ReflectionParameter::__toString — Преобразование в строку


Проверяет, допустимо ли значение null для параметра

  • « ReflectionParameter
  • ReflectionParameter::canBePassedByValue »
  • PHP Manual
  • ReflectionParameter
  • Проверяет, допустимо ли значение null для параметра

ReflectionParameter::allowsNull

(PHP 5, PHP 7)

ReflectionParameter::allowsNull — Проверяет, допустимо ли значение null для параметра

Описание

public ReflectionParameter::allowsNull ( void ) : bool

Проверяет, допустимо ли значение NULL для параметра.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если NULL допускается, FALSE в противном случае.

Смотрите также

  • ReflectionParameter::isOptional() - Проверяет, является ли аргумент необязательным


Проверяет, можно ли передать этот аргумент по значению

  • « ReflectionParameter::allowsNull
  • ReflectionParameter::__clone »
  • PHP Manual
  • ReflectionParameter
  • Проверяет, можно ли передать этот аргумент по значению

ReflectionParameter::canBePassedByValue

(PHP 5 >= 5.4.0, PHP 7)

ReflectionParameter::canBePassedByValue — Проверяет, можно ли передать этот аргумент по значению

Описание

public ReflectionParameter::canBePassedByValue ( void ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если передача аргумента по значению возможна, FALSE, если нет. Возвращает NULL в случае ошибки.


Клонировать

  • « ReflectionParameter::canBePassedByValue
  • ReflectionParameter::__construct »
  • PHP Manual
  • ReflectionParameter
  • Клонировать

ReflectionParameter::__clone

(PHP 5, PHP 7)

ReflectionParameter::__clone — Клонировать

Описание

final private ReflectionParameter::__clone ( void ) : void

Клонирует.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • ReflectionParameter::toString()
  • Клонирование объектов


Конструктор

  • « ReflectionParameter::__clone
  • ReflectionParameter::export »
  • PHP Manual
  • ReflectionParameter
  • Конструктор

ReflectionParameter::__construct

(PHP 5, PHP 7)

ReflectionParameter::__construct — Конструктор

Описание

public ReflectionParameter::__construct ( callable $function , mixed $parameter )

Создает экземпляр ReflectionParameter.

Список параметров

function

Функция, параметр которой требуется отразить.

parameter

Либо целое число (integer), указывающее позицию параметра (начиная с нуля), либо имя параметра в виде строки (string).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Использования класса ReflectionParameter

<?php
function foo($a, $b, $c) { }
function bar(Exception $a, &$b, $c) { }
function baz(ReflectionFunction $a, $b = 1, $c = null) { }
function abc() { }

$reflect = new ReflectionFunction('foo');

echo $reflect;

foreach ($reflect->getParameters() as $i => $param) {
    printf(
        "-- Аргумент #%d: %s {\n".
        "   Класс: %s\n".
        "   Допускает значения NULL: %s\n".
        "   Передается по ссылке: %s\n".
        "   Необязательный?: %s\n".
        "}\n",
        $i, // $param->getPosition() can be used from PHP 5.2.3
        $param->getName(),
        var_export($param->getClass(), 1),
        var_export($param->allowsNull(), 1),
        var_export($param->isPassedByReference(), 1),
        $param->isOptional() ? 'да' : 'нет'
    );
}
?>

Результатом выполнения данного примера будет что-то подобное:

Function [ <user> function foo ] {
  @@ /Users/philip/cvs/phpdoc/a 2 - 2

  - Parameters [3] {
    Parameter #0 [ <required> $a ]
    Parameter #1 [ <required> $b ]
    Parameter #2 [ <required> $c ]
  }
}
-- Аргумент #0: a {
   Класс: NULL
   Допускает значения NULL: true
   Передается по ссылке: false
   Необязательный?: нет
}
-- Аргумент #1: b {
   Класс: NULL
   Допускает значения NULL: true
   Передается по ссылке: false
   Необязательный?: нет
}
-- Аргумент #2: c {
   Класс: NULL
   Допускает значения NULL: true
   Передается по ссылке: false
   Необязательный?: нет
}

Смотрите также

  • ReflectionFunctionAbstract::getParameters() - Получает параметры
  • ReflectionFunction::__construct() - Конструктор класса ReflectionFunction
  • ReflectionMethod::__construct() - Конструктор класса ReflectionMethod
  • Конструкторы


Экспорт

  • « ReflectionParameter::__construct
  • ReflectionParameter::getClass »
  • PHP Manual
  • ReflectionParameter
  • Экспорт

ReflectionParameter::export

(PHP 5, PHP 7)

ReflectionParameter::export — Экспорт

Описание

public static ReflectionParameter::export ( string $function , string $parameter [, bool $return ] ) : string

Экспорт.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

function

Имя функции.

parameter

Имя аргумента.

return

Установка в TRUE вернет экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в FALSE (по умолчанию) сделает противоположное.

Возвращаемые значения

Экспорт отражения (reflection).

Смотрите также

  • ReflectionParameter::toString()


Получение класса из подсказки типа

  • « ReflectionParameter::export
  • ReflectionParameter::getDeclaringClass »
  • PHP Manual
  • ReflectionParameter
  • Получение класса из подсказки типа

ReflectionParameter::getClass

(PHP 5, PHP 7)

ReflectionParameter::getClass — Получение класса из подсказки типа

Описание

public ReflectionParameter::getClass ( void ) : ReflectionClass

Получает класс из подсказки типа для параметра в виде объекта ReflectionClass.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса ReflectionClass.

Примеры

Пример #1 Пример использования класса ReflectionParameter

<?php
function foo(Exception $a) { }

$functionReflection = new ReflectionFunction('foo');
$parameters = $functionReflection->getParameters();
$aParameter = $parameters[0];

echo $aParameter->getClass()->name;
?>

Результат выполнения данного примера:

Exception

Смотрите также

  • ReflectionParameter::getDeclaringClass() - Получение объявляющего класса


Получение объявляющего класса

  • « ReflectionParameter::getClass
  • ReflectionParameter::getDeclaringFunction »
  • PHP Manual
  • ReflectionParameter
  • Получение объявляющего класса

ReflectionParameter::getDeclaringClass

(PHP 5 >= 5.1.3, PHP 7)

ReflectionParameter::getDeclaringClass — Получение объявляющего класса

Описание

public ReflectionParameter::getDeclaringClass ( void ) : ReflectionClass

Получает объявляющий класс.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса ReflectionClass, либо NULL, если вызвано для функции.

Примеры

Пример #1 Получение класса, в котором объявлен метод

<?php
class Foo
{
    public function bar(\DateTime $datetime)
    {
    }
}

class Baz extends Foo
{
}

$param = new \ReflectionParameter(['Baz', 'bar'], 0);

var_dump($param->getDeclaringClass());

Результат выполнения данного примера:

object(ReflectionClass)#2 (1) {
  ["name"]=>
  string(3) "Foo"
}

Смотрите также

  • ReflectionParameter::getClass() - Получение класса из подсказки типа


Получение объявляющей функции

  • « ReflectionParameter::getDeclaringClass
  • ReflectionParameter::getDefaultValue »
  • PHP Manual
  • ReflectionParameter
  • Получение объявляющей функции

ReflectionParameter::getDeclaringFunction

(PHP 5 >= 5.1.3, PHP 7)

ReflectionParameter::getDeclaringFunction — Получение объявляющей функции

Описание

public ReflectionParameter::getDeclaringFunction ( void ) : ReflectionFunctionAbstract

Получает функцию, в которой объявлен параметр.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса ReflectionFunction.

Смотрите также

  • ReflectionParameter::getDeclaringClass() - Получение объявляющего класса


Получение значения по умолчанию для параметра

  • « ReflectionParameter::getDeclaringFunction
  • ReflectionParameter::getDefaultValueConstantName »
  • PHP Manual
  • ReflectionParameter
  • Получение значения по умолчанию для параметра

ReflectionParameter::getDefaultValue

(PHP 5 >= 5.0.3, PHP 7)

ReflectionParameter::getDefaultValue — Получение значения по умолчанию для параметра

Описание

public ReflectionParameter::getDefaultValue ( void ) : mixed

Получает значение по умолчанию параметра, определенной пользователем функции или метода. Если аргумент не является необязательным, будет выброшено исключение ReflectionException.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение по умолчанию аргумента.

Примеры

Пример #1 Получение

<?php
function foo($test, $bar = 'baz')
{
    echo $test . $bar;
}

$function = new ReflectionFunction('foo');

foreach ($function->getParameters() as $param) {
    echo 'Имя: ' . $param->getName() . PHP_EOL;
    if ($param->isOptional()) {
        echo 'Значение по умолчанию: ' . $param->getDefaultValue() . PHP_EOL;
    }
    echo PHP_EOL;
}
?>

Результат выполнения данного примера:

Имя: test

Имя: bar
Значение по умолчанию: baz

Примечания

Замечание:

В виду особенностей реализации, невозможно получить значение по умолчанию для встроенных функций или методов встроенных классов. Попытки это сделать приведут к выбросу исключения ReflectionException.

Смотрите также

  • ReflectionParameter::isOptional() - Проверяет, является ли аргумент необязательным
  • ReflectionParameter::isDefaultValueAvailable() - Проверяет, доступно ли значение по умолчанию
  • ReflectionParameter::getDefaultValueConstantName() - Возвращает имя константы значения по умолчанию, если значение по умолчанию константа или null
  • ReflectionParameter::isPassedByReference() - Проверяет, передан ли параметр по ссылке


Возвращает имя константы значения по умолчанию, если значение по умолчанию константа или null

  • « ReflectionParameter::getDefaultValue
  • ReflectionParameter::getName »
  • PHP Manual
  • ReflectionParameter
  • Возвращает имя константы значения по умолчанию, если значение по умолчанию константа или null

ReflectionParameter::getDefaultValueConstantName

(PHP 5 >= 5.4.6, PHP 7)

ReflectionParameter::getDefaultValueConstantName — Возвращает имя константы значения по умолчанию, если значение по умолчанию константа или null

Описание

public ReflectionParameter::getDefaultValueConstantName ( void ) : string

Возвращает значение по умолчанию константы для параметра пользовательской функции или метода, если значение по умолчанию константа или null. Если параметр необязательный, выбрасывается исключение ReflectionException.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку при успешном выполнеии или NULL в случае ошибки.

Примеры

Пример #1 Получение значений по умолчанию констант для параметров функции

<?php
function foo($test, $bar = PHP_INT_MIN)
{
    echo $test . $bar;
}

$function = new ReflectionFunction('foo');

foreach ($function->getParameters() as $param) {
    echo 'Имя: ' . $param->getName() . PHP_EOL;
    if ($param->isOptional()) {
        echo 'Значение по умолчанию: ' . $param->getDefaultValueConstantName() . PHP_EOL;
    }
    echo PHP_EOL;
}
?>

Результат выполнения данного примера:

Name: test

Имя: bar
Значение по умолчанию: PHP_INT_MIN

Примечания

Замечание:

Из-за деталей реализации невозможно получить значение встроенных функций или методов встроенных классов. Попытка сделать это приведёт к выбрасыванию исключения ReflectionException.

Смотрите также

  • ReflectionParameter::isOptional() - Проверяет, является ли аргумент необязательным
  • ReflectionParameter::isDefaultValueConstant() - Определить, является ли значение параметра по умолчанию константой
  • ReflectionParameter::getDefaultValue() - Получение значения по умолчанию для параметра


Получение имени параметра

  • « ReflectionParameter::getDefaultValueConstantName
  • ReflectionParameter::getPosition »
  • PHP Manual
  • ReflectionParameter
  • Получение имени параметра

ReflectionParameter::getName

(PHP 5, PHP 7)

ReflectionParameter::getName — Получение имени параметра

Описание

public ReflectionParameter::getName ( void ) : string

Получает имя параметра.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя отраженного параметра.

Смотрите также

  • ReflectionParameter::getValue()


Получение позиции параметра

  • « ReflectionParameter::getName
  • ReflectionParameter::getType »
  • PHP Manual
  • ReflectionParameter
  • Получение позиции параметра

ReflectionParameter::getPosition

(PHP 5 >= 5.1.3, PHP 7)

ReflectionParameter::getPosition — Получение позиции параметра

Описание

public ReflectionParameter::getPosition ( void ) : int

Получает позицию параметра в списке параметров.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Позиция параметра, слева направо, первый параметр находится на позиции #0.

Смотрите также

  • ReflectionParameter::getName() - Получение имени параметра


Получить тип параметра

  • « ReflectionParameter::getPosition
  • ReflectionParameter::hasType »
  • PHP Manual
  • ReflectionParameter
  • Получить тип параметра

ReflectionParameter::getType

(PHP 7)

ReflectionParameter::getType — Получить тип параметра

Описание

public ReflectionParameter::getType ( void ) : ReflectionType

Получить тип параметра

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект ReflectionType, если тип параметра задан, NULL, в противном случае.

Примеры

Пример #1 Пример использования ReflectionParameter::getType() начиная с PHP 7.1.0

Начиная с PHP 7.1.0, метод ReflectionType::__toString() объявлен устаревшим. Метод ReflectionParameter::getType() может возвратить экземпляр ReflectionNamedType. Для получения имени типа параметра доступен метод ReflectionNamedType().

<?php
function someFunction(int $param, $param2) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();
$reflectionType1 = $reflectionParams[0]->getType();
$reflectionType2 = $reflectionParams[1]->getType();

assert($reflectionType1 instanceof ReflectionNamedType);
echo $reflectionType1->getName(), PHP_EOL;
var_dump($reflectionType2);
?>

Результат выполнения данного примера:

int
NULL

Пример #2 Использование ReflectionParameter::getType() в PHP до версии 7.1.0

<?php
function someFunction(int $param, $param2) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();
$reflectionType1 = $reflectionParams[0]->getType();
$reflectionType2 = $reflectionParams[1]->getType();

echo $reflectionType1, PHP_EOL;
var_dump($reflectionType2);
?>

Результат выполнения данного примера в PHP 7.0:

int
NULL

Смотрите также

  • ReflectionParameter::hasType() - Проверить, указан ли тип параметра
  • ReflectionType::__toString() - Преобразование в строку


Проверить, указан ли тип параметра

  • « ReflectionParameter::getType
  • ReflectionParameter::isArray »
  • PHP Manual
  • ReflectionParameter
  • Проверить, указан ли тип параметра

ReflectionParameter::hasType

(PHP 7)

ReflectionParameter::hasType — Проверить, указан ли тип параметра

Описание

public ReflectionParameter::hasType ( void ) : bool

Проверяет, указан ли тип параметра.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если тип указан, FALSE, в противном случае.

Примеры

Пример #1 Пример использования ReflectionParameter::hasType()

<?php
function someFunction(string $param, $param2 = null) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();

var_dump($reflectionParams[0]->hasType());
var_dump($reflectionParams[1]->hasType());

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)

Смотрите также

  • ReflectionParameter::getType() - Получить тип параметра


Проверяет, ожидает ли аргумент массив в качестве значения

  • « ReflectionParameter::hasType
  • ReflectionParameter::isCallable »
  • PHP Manual
  • ReflectionParameter
  • Проверяет, ожидает ли аргумент массив в качестве значения

ReflectionParameter::isArray

(PHP 5 >= 5.1.2, PHP 7)

ReflectionParameter::isArray — Проверяет, ожидает ли аргумент массив в качестве значения

Описание

public ReflectionParameter::isArray ( void ) : bool

Проверяет, ожидает ли аргумент массив в качестве значения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если в качестве значения ожидается массив (array), FALSE в противном случае.

Смотрите также

  • ReflectionParameter::isOptional() - Проверяет, является ли аргумент необязательным


Определить, должен ли параметр быть типа callable

  • « ReflectionParameter::isArray
  • ReflectionParameter::isDefaultValueAvailable »
  • PHP Manual
  • ReflectionParameter
  • Определить, должен ли параметр быть типа callable

ReflectionParameter::isCallable

(PHP 5 >= 5.4.0, PHP 7)

ReflectionParameter::isCallable — Определить, должен ли параметр быть типа callable

Описание

public ReflectionParameter::isCallable ( void ) : bool

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если параметр callable, FALSE в противном случае. В случае ошибки вернет NULL.


Проверяет, доступно ли значение по умолчанию

  • « ReflectionParameter::isCallable
  • ReflectionParameter::isDefaultValueConstant »
  • PHP Manual
  • ReflectionParameter
  • Проверяет, доступно ли значение по умолчанию

ReflectionParameter::isDefaultValueAvailable

(PHP 5 >= 5.0.3, PHP 7)

ReflectionParameter::isDefaultValueAvailable — Проверяет, доступно ли значение по умолчанию

Описание

public ReflectionParameter::isDefaultValueAvailable ( void ) : bool

Проверяет, доступно ли значение по умолчанию параметра.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если доступно значение по умолчанию, FALSE в противном случае.

Смотрите также

  • ReflectionParameter::getDefaultValue() - Получение значения по умолчанию для параметра
  • ReflectionParameter::isDefaultValueConstant() - Определить, является ли значение параметра по умолчанию константой
  • ReflectionParameter::getName() - Получение имени параметра


Определить, является ли значение параметра по умолчанию константой

  • « ReflectionParameter::isDefaultValueAvailable
  • ReflectionParameter::isOptional »
  • PHP Manual
  • ReflectionParameter
  • Определить, является ли значение параметра по умолчанию константой

ReflectionParameter::isDefaultValueConstant

(PHP 5 >= 5.4.6, PHP 7)

ReflectionParameter::isDefaultValueConstant — Определить, является ли значение параметра по умолчанию константой

Описание

public ReflectionParameter::isDefaultValueConstant ( void ) : bool

Возвращает является ли константа значением по умолчанию для этого параметра.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если значение по умолчанию константа, FALSE, в противном случае.

Смотрите также

  • ReflectionParameter::getDefaultValueConstantName() - Возвращает имя константы значения по умолчанию, если значение по умолчанию константа или null
  • ReflectionParameter::isDefaultValueAvailable() - Проверяет, доступно ли значение по умолчанию


Проверяет, является ли аргумент необязательным

  • « ReflectionParameter::isDefaultValueConstant
  • ReflectionParameter::isPassedByReference »
  • PHP Manual
  • ReflectionParameter
  • Проверяет, является ли аргумент необязательным

ReflectionParameter::isOptional

(PHP 5 >= 5.0.3, PHP 7)

ReflectionParameter::isOptional — Проверяет, является ли аргумент необязательным

Описание

public ReflectionParameter::isOptional ( void ) : bool

Проверяет, является ли аргумент необязательным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если аргумент необязательный, FALSE в противном случае.

Смотрите также

  • ReflectionParameter::getName() - Получение имени параметра


Проверяет, передан ли параметр по ссылке

  • « ReflectionParameter::isOptional
  • ReflectionParameter::isVariadic »
  • PHP Manual
  • ReflectionParameter
  • Проверяет, передан ли параметр по ссылке

ReflectionParameter::isPassedByReference

(PHP 5, PHP 7)

ReflectionParameter::isPassedByReference — Проверяет, передан ли параметр по ссылке

Описание

public ReflectionParameter::isPassedByReference ( void ) : bool

Проверяет, что параметр передан по ссылке.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если параметр передан по ссылке, FALSE в противном случае.

Смотрите также

  • ReflectionParameter::getName() - Получение имени параметра


Проверить, является ли параметр параметром с переменным количеством аргументов

  • « ReflectionParameter::isPassedByReference
  • ReflectionParameter::__toString »
  • PHP Manual
  • ReflectionParameter
  • Проверить, является ли параметр параметром с переменным количеством аргументов

ReflectionParameter::isVariadic

(PHP 5 >= 5.6.0, PHP 7)

ReflectionParameter::isVariadic — Проверить, является ли параметр параметром с переменным количеством аргументов

Описание

public ReflectionParameter::isVariadic ( void ) : bool

Проверяет, определен ли параметр как параметр с переменным числом аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если параметр принимает переменное количество аргументов, FALSE в противном случае.


Преобразование в строку

  • « ReflectionParameter::isVariadic
  • ReflectionProperty »
  • PHP Manual
  • ReflectionParameter
  • Преобразование в строку

ReflectionParameter::__toString

(PHP 5, PHP 7)

ReflectionParameter::__toString — Преобразование в строку

Описание

public ReflectionParameter::__toString ( void ) : string

Представление в виде строки.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • ReflectionParameter::export() - Экспорт
  • __toString()


Класс ReflectionProperty

(PHP 5, PHP 7)

Введение

Класс ReflectionProperty сообщает информацию о свойствах класса.

Обзор классов

ReflectionProperty implements Reflector {
/* Константы */
const integer IS_STATIC = 1 ;
const integer IS_PUBLIC = 256 ;
const integer IS_PROTECTED = 512 ;
const integer IS_PRIVATE = 1024 ;
/* Свойства */
public $name ;
public $class ;
/* Методы */
final private __clone ( void ) : void
public __construct ( mixed $class , string $name )
public static export ( mixed $class , string $name [, bool $return ] ) : string
public getDeclaringClass ( void ) : ReflectionClass
public getDocComment ( void ) : string
public getModifiers ( void ) : int
public getName ( void ) : string
public getType ( void ) : ?ReflectionType
public getValue ([ object $object ] ) : mixed
public hasType ( void ) : bool
public isDefault ( void ) : bool
public isInitialized ([ object $object ] ) : bool
public isPrivate ( void ) : bool
public isProtected ( void ) : bool
public isPublic ( void ) : bool
public isStatic ( void ) : bool
public setAccessible ( bool $accessible ) : void
public setValue ( object $object , mixed $value ) : void
public __toString ( void ) : string
}

Свойства

name

Имя свойства. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

class

Имя класса, в котором данное свойство описано. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Предопределенные константы

Модификаторы ReflectionProperty

ReflectionProperty::IS_STATIC

Указывает, что свойство является статическим.

ReflectionProperty::IS_PUBLIC

Указывает, что свойство является общедоступным properties.

ReflectionProperty::IS_PROTECTED

Указывает, что свойство является защищенным.

ReflectionProperty::IS_PRIVATE

Указывает, что свойство является закрытым.

Содержание

  • ReflectionProperty::__clone — Клонировать
  • ReflectionProperty::__construct — Конструктор класса ReflectionProperty
  • ReflectionProperty::export — Экспорт
  • ReflectionProperty::getDeclaringClass — Получение объявляющего класса
  • ReflectionProperty::getDocComment — Получение doc-комментария для свойства
  • ReflectionProperty::getModifiers — Получение модификаторов свойств класса
  • ReflectionProperty::getName — Получение имени свойства
  • ReflectionProperty::getType — Gets a property's type
  • ReflectionProperty::getValue — Получает значение
  • ReflectionProperty::hasType — Checks if property has a type
  • ReflectionProperty::isDefault — Проверяет, является ли значение свойством по умолчанию
  • ReflectionProperty::isInitialized — Checks whether a property is initialized
  • ReflectionProperty::isPrivate — Проверяет, является ли свойство закрытым
  • ReflectionProperty::isProtected — Проверяет, является ли свойство защищенным
  • ReflectionProperty::isPublic — Проверяет, является ли свойство общедоступным
  • ReflectionProperty::isStatic — Проверка, является ли свойство статическим
  • ReflectionProperty::setAccessible — Делает свойство доступным
  • ReflectionProperty::setValue — Установка значения свойства
  • ReflectionProperty::__toString — Преобразование в строку


Клонировать

  • « ReflectionProperty
  • ReflectionProperty::__construct »
  • PHP Manual
  • ReflectionProperty
  • Клонировать

ReflectionProperty::__clone

(PHP 5, PHP 7)

ReflectionProperty::__clone — Клонировать

Описание

final private ReflectionProperty::__clone ( void ) : void

Клонирует.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • ReflectionProperty::export() - Экспорт
  • Копирование объектов


Конструктор класса ReflectionProperty

  • « ReflectionProperty::__clone
  • ReflectionProperty::export »
  • PHP Manual
  • ReflectionProperty
  • Конструктор класса ReflectionProperty

ReflectionProperty::__construct

(PHP 5, PHP 7)

ReflectionProperty::__construct — Конструктор класса ReflectionProperty

Описание

public ReflectionProperty::__construct ( mixed $class , string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

class

Имя класса, содержащего свойство.

name

Имя свойства, которое требуется отобразить.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Попытка получить или задать значение защищенного или закрытого свойства приведет к выбрасыванию исключения.

Примеры

Пример #1 Пример использования ReflectionProperty::__construct()

<?php
class Str
{
    public $length  = 5;
}

// Создание нового объекта класса ReflectionProperty
$prop = new ReflectionProperty('Str', 'length');

// Вывод основной информации об объекте
printf(
    "===> %s%s%s%s свойство '%s' (которое %s)\n" .
    "     имеющее модификаторы %s\n",
        $prop->isPublic() ? ' общедоступное' : '',
        $prop->isPrivate() ? ' закрытое' : '',
        $prop->isProtected() ? ' защищенное' : '',
        $prop->isStatic() ? ' статическое' : '',
        $prop->getName(),
        $prop->isDefault() ? 'объявлено во время компиляции' : 'создано во время выполнения',
        var_export(Reflection::getModifierNames($prop->getModifiers()), 1)
);

// создание экземпляра класса Str
$obj= new Str();

// получение текущего значения
printf("---> Значение: ");
var_dump($prop->getValue($obj));

// Изменение значения
$prop->setValue($obj, 10);
printf("---> Установка значения 10, новое значение: ");
var_dump($prop->getValue($obj));

// Сбросить объект
var_dump($obj);
?>

Результатом выполнения данного примера будет что-то подобное:

===> общедоступное свойство 'length' (которое объявлено во время компиляции)
     имеющее модификаторы array (
  0 => 'public',
)
---> Значение: int(5)
---> Установка значения 10, новое значение: int(10)
object(Str)#2 (1) {
  ["length"]=>
  int(10)
}

Пример #2 Получение значений защищенных и закрытых свойств, используя класс ReflectionProperty

<?php

class Foo {
    public $x = 1;
    protected $y = 2;
    private $z = 3;
}

$obj = new Foo;

$prop = new ReflectionProperty('Foo', 'y');
$prop->setAccessible(true); /* Начиная с PHP 5.3.0 */
var_dump($prop->getValue($obj)); // int(2)

$prop = new ReflectionProperty('Foo', 'z');
$prop->setAccessible(true); /* Начиная с PHP 5.3.0 */
var_dump($prop->getValue($obj)); // int(2)

?>

Результатом выполнения данного примера будет что-то подобное:

int(2)
int(3)

Смотрите также

  • ReflectionProperty::getName() - Получение имени свойства
  • Конструкторы


Экспорт

  • « ReflectionProperty::__construct
  • ReflectionProperty::getDeclaringClass »
  • PHP Manual
  • ReflectionProperty
  • Экспорт

ReflectionProperty::export

(PHP 5, PHP 7)

ReflectionProperty::export — Экспорт

Описание

public static ReflectionProperty::export ( mixed $class , string $name [, bool $return ] ) : string

Экспортирует отражение (reflection).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

argument

Экспортируемый объект Reflection.

name

Имя свойства.

return

Установка в TRUE вернет экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в FALSE (по умолчанию) сделает противоположное.

Возвращаемые значения

Смотрите также

  • ReflectionProperty::toString()


Получение объявляющего класса

  • « ReflectionProperty::export
  • ReflectionProperty::getDocComment »
  • PHP Manual
  • ReflectionProperty
  • Получение объявляющего класса

ReflectionProperty::getDeclaringClass

(PHP 5, PHP 7)

ReflectionProperty::getDeclaringClass — Получение объявляющего класса

Описание

public ReflectionProperty::getDeclaringClass ( void ) : ReflectionClass

Получение объявляющего класса.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса ReflectionClass.

Смотрите также

  • ReflectionProperty::getName() - Получение имени свойства


Получение doc-комментария для свойства

  • « ReflectionProperty::getDeclaringClass
  • ReflectionProperty::getModifiers »
  • PHP Manual
  • ReflectionProperty
  • Получение doc-комментария для свойства

ReflectionProperty::getDocComment

(PHP 5 >= 5.1.0, PHP 7)

ReflectionProperty::getDocComment — Получение doc-комментария для свойства

Описание

public ReflectionProperty::getDocComment ( void ) : string

Получает doc-комментарий для свойства.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Doc-комментарий к свойству.

Примеры

Пример #1 Пример ReflectionProperty::getDocComment()

<?php
class Str
{
    /**
     * @var int  Длина строки
     */
    public $length = 5;
}

$prop = new ReflectionProperty('Str', 'length');

var_dump($prop->getDocComment());

?>

Результатом выполнения данного примера будет что-то подобное:

string(52) "/**
     * @var int  Длина строки
     */"

Пример #2 Декларация нескольких свойств

Если doc-комментарий задан перед множественной декларацией, то он будет считаться относящимся только к первому из них.

<?php
class Foo
{
    /** @var string */
    public $a, $b;
}
$class = new \ReflectionClass('Foo');
foreach ($class->getProperties() as $property) {
    echo $property->getName() . ': ' . var_export($property->getDocComment(), true) . PHP_EOL;
}
?>

Результат выполнения данного примера:

a: '/** @var string */'
b: false

Смотрите также

  • ReflectionProperty::getModifiers() - Получение модификаторов свойств класса
  • ReflectionProperty::getName() - Получение имени свойства
  • ReflectionProperty::getValue() - Получает значение


Получение модификаторов свойств класса

  • « ReflectionProperty::getDocComment
  • ReflectionProperty::getName »
  • PHP Manual
  • ReflectionProperty
  • Получение модификаторов свойств класса

ReflectionProperty::getModifiers

(PHP 5, PHP 7)

ReflectionProperty::getModifiers — Получение модификаторов свойств класса

Описание

public ReflectionProperty::getModifiers ( void ) : int

Получает список модификаторов

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Числовое представление модификаторов.

Смотрите также

  • ReflectionProperty::isPrivate() - Проверяет, является ли свойство закрытым
  • Reflection::getModifierNames() - Получение имен модификаторов


Получение имени свойства

  • « ReflectionProperty::getModifiers
  • ReflectionProperty::getType »
  • PHP Manual
  • ReflectionProperty
  • Получение имени свойства

ReflectionProperty::getName

(PHP 5, PHP 7)

ReflectionProperty::getName — Получение имени свойства

Описание

public ReflectionProperty::getName ( void ) : string

Получает имя свойства.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя отраженного свойства.

Смотрите также

  • ReflectionProperty::getValue() - Получает значение


Gets a property's type

  • « ReflectionProperty::getName
  • ReflectionProperty::getValue »
  • PHP Manual
  • ReflectionProperty
  • Gets a property's type

ReflectionProperty::getType

(PHP 7 >= 7.4.0)

ReflectionProperty::getType — Gets a property's type

Описание

public ReflectionProperty::getType ( void ) : ?ReflectionType

Gets the associated type of a property.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a ReflectionType if the property has a type, and NULL otherwise.

Примеры

Пример #1 ReflectionProperty::getType() example

<?php
class User
{
    public string $name;
}

$rp = new ReflectionProperty('User', 'name');
echo $rp->getType()->getName();
?>

Результат выполнения данного примера:

string

Смотрите также

  • ReflectionProperty::hasType() - Checks if property has a type
  • ReflectionProperty::isInitialized() - Checks whether a property is initialized


Получает значение

  • « ReflectionProperty::getType
  • ReflectionProperty::hasType »
  • PHP Manual
  • ReflectionProperty
  • Получает значение

ReflectionProperty::getValue

(PHP 5, PHP 7)

ReflectionProperty::getValue — Получает значение

Описание

public ReflectionProperty::getValue ([ object $object ] ) : mixed

Получает значение свойства.

Список параметров

object

Если свойство не статическое, необходимо передать объект, из которого требуется это свойство получить. Если вам нужно получить свойство по умолчанию, не предоставляя объект, используйте функцию ReflectionClass::getDefaultProperties().

Возвращаемые значения

Текущее значение свойства.

Ошибки

Выбрасывает исключение ReflectionException, если свойство недоступно. Защищенные и закрытые свойства можно сделать доступными функцией ReflectionProperty::setAccessible().

Примеры

Пример #1 Пример использования ReflectionProperty::getValue()

<?php
class Foo {
    public static $staticProperty = 'foobar';

    public $property = 'barfoo';
    protected $privateProperty = 'foofoo';
}

$reflectionClass = new ReflectionClass('Foo');

var_dump($reflectionClass->getProperty('staticProperty')->getValue());
var_dump($reflectionClass->getProperty('property')->getValue(new Foo));

$reflectionProperty = $reflectionClass->getProperty('privateProperty');
$reflectionProperty->setAccessible(true);
var_dump($reflectionProperty->getValue(new Foo));
?>

Результат выполнения данного примера:

string(6) "foobar"
string(6) "barfoo"
string(6) "foofoo"

Смотрите также

  • ReflectionProperty::setValue() - Установка значения свойства
  • ReflectionProperty::setAccessible() - Делает свойство доступным
  • ReflectionClass::getDefaultProperties() - Возвращает свойства по умолчанию
  • ReflectionClass::getStaticPropertyValue() - Возвращает значение статического свойства


Checks if property has a type

  • « ReflectionProperty::getValue
  • ReflectionProperty::isDefault »
  • PHP Manual
  • ReflectionProperty
  • Checks if property has a type

ReflectionProperty::hasType

(PHP 7 >= 7.4.0)

ReflectionProperty::hasType — Checks if property has a type

Описание

public ReflectionProperty::hasType ( void ) : bool

Checks if the property has a type associated with it.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE if a type is specified, FALSE otherwise.

Примеры

Пример #1 ReflectionProperty::hasType() example

<?php
class User
{
    public string $name;
}

$rp = new ReflectionProperty('User', 'name');
var_dump($rp->hasType());
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • ReflectionProperty::getType() - Gets a property's type
  • ReflectionProperty::isInitialized() - Checks whether a property is initialized


Проверяет, является ли значение свойством по умолчанию

  • « ReflectionProperty::hasType
  • ReflectionProperty::isInitialized »
  • PHP Manual
  • ReflectionProperty
  • Проверяет, является ли значение свойством по умолчанию

ReflectionProperty::isDefault

(PHP 5, PHP 7)

ReflectionProperty::isDefault — Проверяет, является ли значение свойством по умолчанию

Описание

public ReflectionProperty::isDefault ( void ) : bool

Проверяет, является ли значение свойством заданным на этапе компиляции или установлено динамически во время исполнения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если свойство объявлено во время компиляции, либо FALSE, если оно было создано во время выполнения.

Примеры

Пример #1 Пример использования ReflectionClass::isDefault()

<?php
class Foo {
    public $bar;
}

$o = new Foo();
$o->bar = 42;
$o->baz = 42;

$ro = new ReflectionObject($o);
var_dump($ro->getProperty('bar')->isDefault());
var_dump($ro->getProperty('baz')->isDefault());
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Смотрите также

  • ReflectionProperty::getValue() - Получает значение


Checks whether a property is initialized

  • « ReflectionProperty::isDefault
  • ReflectionProperty::isPrivate »
  • PHP Manual
  • ReflectionProperty
  • Checks whether a property is initialized

ReflectionProperty::isInitialized

(PHP 7 >= 7.4.0)

ReflectionProperty::isInitialized — Checks whether a property is initialized

Описание

public ReflectionProperty::isInitialized ([ object $object ] ) : bool

Checks whether a property is initialized.

Список параметров

object

If the property is non-static an object must be provided to fetch the property from.

Возвращаемые значения

Returns FALSE for typed properties prior to initialization, and for properties that have been explicitly unset(). For all other properties TRUE will be returned.

Ошибки

Throws a ReflectionException if the property is inaccessible. You can make a protected or private property accessible using ReflectionProperty::setAccessible().

Примеры

Пример #1 ReflectionProperty::isInitialized() example

<?php
class User
{
    public string $name;
}

$rp = new ReflectionProperty('User', 'name');
$user = new User;
var_dump($rp->isInitialized($user));
$user->name = 'Nikita';
var_dump($rp->isInitialized($user));
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • ReflectionProperty::hasType() - Checks if property has a type


Проверяет, является ли свойство закрытым

  • « ReflectionProperty::isInitialized
  • ReflectionProperty::isProtected »
  • PHP Manual
  • ReflectionProperty
  • Проверяет, является ли свойство закрытым

ReflectionProperty::isPrivate

(PHP 5, PHP 7)

ReflectionProperty::isPrivate — Проверяет, является ли свойство закрытым

Описание

public ReflectionProperty::isPrivate ( void ) : bool

Проверяет, является ли свойство закрытым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если свойство закрытое, FALSE в противном случае.

Смотрите также

  • ReflectionProperty::isPublic() - Проверяет, является ли свойство общедоступным
  • ReflectionProperty::isProtected() - Проверяет, является ли свойство защищенным
  • ReflectionProperty::isStatic() - Проверка, является ли свойство статическим


Проверяет, является ли свойство защищенным

  • « ReflectionProperty::isPrivate
  • ReflectionProperty::isPublic »
  • PHP Manual
  • ReflectionProperty
  • Проверяет, является ли свойство защищенным

ReflectionProperty::isProtected

(PHP 5, PHP 7)

ReflectionProperty::isProtected — Проверяет, является ли свойство защищенным

Описание

public ReflectionProperty::isProtected ( void ) : bool

Проверяет, является ли свойство защищенным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если свойство защищенное, FALSE в противном случае.

Смотрите также

  • ReflectionProperty::isPublic() - Проверяет, является ли свойство общедоступным
  • ReflectionProperty::isPrivate() - Проверяет, является ли свойство закрытым
  • ReflectionProperty::isStatic() - Проверка, является ли свойство статическим


Проверяет, является ли свойство общедоступным

  • « ReflectionProperty::isProtected
  • ReflectionProperty::isStatic »
  • PHP Manual
  • ReflectionProperty
  • Проверяет, является ли свойство общедоступным

ReflectionProperty::isPublic

(PHP 5, PHP 7)

ReflectionProperty::isPublic — Проверяет, является ли свойство общедоступным

Описание

public ReflectionProperty::isPublic ( void ) : bool

Проверяет, является ли свойство общедоступным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если свойство общедоступное, FALSE в противном случае.

Смотрите также

  • ReflectionProperty::isProtected() - Проверяет, является ли свойство защищенным
  • ReflectionProperty::isPrivate() - Проверяет, является ли свойство закрытым
  • ReflectionProperty::isStatic() - Проверка, является ли свойство статическим


Проверка, является ли свойство статическим

  • « ReflectionProperty::isPublic
  • ReflectionProperty::setAccessible »
  • PHP Manual
  • ReflectionProperty
  • Проверка, является ли свойство статическим

ReflectionProperty::isStatic

(PHP 5, PHP 7)

ReflectionProperty::isStatic — Проверка, является ли свойство статическим

Описание

public ReflectionProperty::isStatic ( void ) : bool

Проверяет, является ли свойство статическим.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если свойство статическое, FALSE в противном случае.

Смотрите также

  • ReflectionProperty::isPublic() - Проверяет, является ли свойство общедоступным
  • ReflectionProperty::isProtected() - Проверяет, является ли свойство защищенным
  • ReflectionProperty::isPrivate() - Проверяет, является ли свойство закрытым


Делает свойство доступным

  • « ReflectionProperty::isStatic
  • ReflectionProperty::setValue »
  • PHP Manual
  • ReflectionProperty
  • Делает свойство доступным

ReflectionProperty::setAccessible

(PHP 5 >= 5.3.0, PHP 7)

ReflectionProperty::setAccessible — Делает свойство доступным

Описание

public ReflectionProperty::setAccessible ( bool $accessible ) : void

Делает свойство доступным. Например, может сделать доступным защищенное и закрытое свойство.

Список параметров

accessible

TRUE делает свойство доступным, FALSE - закрывает доступ к свойству.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ReflectionProperty::isPrivate() - Проверяет, является ли свойство закрытым
  • ReflectionProperty::isProtected() - Проверяет, является ли свойство защищенным


Установка значения свойства

  • « ReflectionProperty::setAccessible
  • ReflectionProperty::__toString »
  • PHP Manual
  • ReflectionProperty
  • Установка значения свойства

ReflectionProperty::setValue

(PHP 5, PHP 7)

ReflectionProperty::setValue — Установка значения свойства

Описание

public ReflectionProperty::setValue ( object $object , mixed $value ) : void
public ReflectionProperty::setValue ( mixed $value ) : void

Задает (изменяет) значение свойства.

Список параметров

object

Если свойство нестатическое, необходимо передать объект, свойство в котором нужно изменить. Если свойство статическое, этот аргумент пропускается, и требуется задать только value.

value

Новое значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение ReflectionException, если свойство недоступно. Можно делать защищенные и закрытые свойства доступными с помощью ReflectionProperty::setAccessible().

Примеры

Пример #1 Пример использования ReflectionProperty::setValue()

<?php
class Foo {
    public static $staticProperty;

    public $property;
    protected $privateProperty;
}

$reflectionClass = new ReflectionClass('Foo');

$reflectionClass->getProperty('staticProperty')->setValue('foo');
var_dump(Foo::$staticProperty);

$foo = new Foo;

$reflectionClass->getProperty('property')->setValue($foo, 'bar');
var_dump($foo->property);

$reflectionProperty = $reflectionClass->getProperty('privateProperty');
$reflectionProperty->setAccessible(true);
$reflectionProperty->setValue($foo, 'foobar');
var_dump($reflectionProperty->getValue($foo));
?>

Результат выполнения данного примера:

string(3) "foo"
string(3) "bar"
string(6) "foobar"

Смотрите также

  • ReflectionProperty::getValue() - Получает значение
  • ReflectionProperty::setAccessible() - Делает свойство доступным
  • ReflectionClass::setStaticPropertyValue() - Устанавливает значение статического свойства


Преобразование в строку

  • « ReflectionProperty::setValue
  • ReflectionType »
  • PHP Manual
  • ReflectionProperty
  • Преобразование в строку

ReflectionProperty::__toString

(PHP 5, PHP 7)

ReflectionProperty::__toString — Преобразование в строку

Описание

public ReflectionProperty::__toString ( void ) : string

Представление в виде строки.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • __toString()


Класс ReflectionType

(PHP 7)

Введение

Класс ReflectionType сообщает информацию о типе возвращаемого значения функции.

Обзор классов

ReflectionType {
/* Методы */
public allowsNull ( void ) : bool
public isBuiltin ( void ) : bool
public __toString ( void ) : string
}

Содержание

  • ReflectionType::allowsNull — Проверяет, допустим ли NULL
  • ReflectionType::isBuiltin — Проверяет тип, встроенный он или нет
  • ReflectionType::__toString — Преобразование в строку


Проверяет, допустим ли NULL

  • « ReflectionType
  • ReflectionType::isBuiltin »
  • PHP Manual
  • ReflectionType
  • Проверяет, допустим ли NULL

ReflectionType::allowsNull

(PHP 7)

ReflectionType::allowsNull — Проверяет, допустим ли NULL

Описание

public ReflectionType::allowsNull ( void ) : bool

Проверяет, допустим ли NULL в заданном параметре.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если NULL допустим, иначе FALSE

Примеры

Пример #1 Пример использования ReflectionType::allowsNull()

<?php
function someFunction(string $param, StdClass $param2 = null) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();

var_dump($reflectionParams[0]->getType()->allowsNull());
var_dump($reflectionParams[1]->getType()->allowsNull());

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)

Смотрите также

  • ReflectionType::isBuiltin() - Проверяет тип, встроенный он или нет
  • ReflectionType::__toString() - Преобразование в строку
  • ReflectionParameter::getType() - Получить тип параметра


Проверяет тип, встроенный он или нет

  • « ReflectionType::allowsNull
  • ReflectionType::__toString »
  • PHP Manual
  • ReflectionType
  • Проверяет тип, встроенный он или нет

ReflectionType::isBuiltin

(PHP 7)

ReflectionType::isBuiltin — Проверяет тип, встроенный он или нет

Описание

public ReflectionType::isBuiltin ( void ) : bool

Проверяет тип, встроенный он или нет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если это встроенный тип PHP, иначе FALSE

Примеры

Пример #1 Пример использования ReflectionType::isBuiltin()

<?php
class SomeClass {}

function someFunction(string $param, SomeClass $param2, StdClass $param3) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();

var_dump($reflectionParams[0]->getType()->isBuiltin());
var_dump($reflectionParams[1]->getType()->isBuiltin());
var_dump($reflectionParams[2]->getType()->isBuiltin());

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)
bool(false)

Обратите внимание, что метод ReflectionType::isBuiltin() не различает встроенные и пользовательские классы. Для подобной проверки используйте метод ReflectionClass::isInternal().

Смотрите также

  • ReflectionType::allowsNull() - Проверяет, допустим ли NULL
  • ReflectionType::__toString() - Преобразование в строку
  • ReflectionClass::isInternal() - Проверяет, является ли класс встроенным в расширение или в ядро
  • ReflectionParameter::getType() - Получить тип параметра


Преобразование в строку

  • « ReflectionType::isBuiltin
  • ReflectionGenerator »
  • PHP Manual
  • ReflectionType
  • Преобразование в строку

ReflectionType::__toString

(PHP 7)

ReflectionType::__toString — Преобразование в строку

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

public ReflectionType::__toString ( void ) : string

Получает имя типа параметра.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает тип параметра.

Примеры

Пример #1 Пример использования ReflectionType::__toString()

<?php
function someFunction(string $param) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParam = $reflectionFunc->getParameters()[0];

echo $reflectionParam->getType();

Результатом выполнения данного примера будет что-то подобное:

string

Смотрите также

  • ReflectionNamedType::getName() - Получить текст подсказки типа
  • ReflectionType::allowsNull() - Проверяет, допустим ли NULL
  • ReflectionType::isBuiltin() - Проверяет тип, встроенный он или нет
  • ReflectionParameter::getType() - Получить тип параметра


Класс ReflectionGenerator

(PHP 7)

Введение

Класс ReflectionGenerator сообщает информацию о генераторе.

Обзор классов

ReflectionGenerator {
/* Методы */
public __construct ( Generator $generator )
public getExecutingFile ( void ) : string
public getExecutingGenerator ( void ) : Generator
public getExecutingLine ( void ) : int
public getFunction ( void ) : ReflectionFunctionAbstract
public getThis ( void ) : object
public getTrace ([ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT ] ) : array
}

Содержание

  • ReflectionGenerator::__construct — Конструктор ReflectionGenerator
  • ReflectionGenerator::getExecutingFile — Получить имя файла, из которого запущен генератор
  • ReflectionGenerator::getExecutingGenerator — Получить запущенный объект Generator
  • ReflectionGenerator::getExecutingLine — Получить текущую выполняющуюся строку генератора
  • ReflectionGenerator::getFunction — Получить имя функции генератора
  • ReflectionGenerator::getThis — Получает значение $this генератора
  • ReflectionGenerator::getTrace — Получить трассировку запущенного генератора


Конструктор ReflectionGenerator

  • « ReflectionGenerator
  • ReflectionGenerator::getExecutingFile »
  • PHP Manual
  • ReflectionGenerator
  • Конструктор ReflectionGenerator

ReflectionGenerator::__construct

(PHP 7)

ReflectionGenerator::__construct — Конструктор ReflectionGenerator

Описание

public ReflectionGenerator::__construct ( Generator $generator )

Создает объект ReflectionGenerator.

Список параметров

generator

Объект генератора.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ReflectionGenerator::__construct()

<?php

function gen()
{
    yield 1;
}

$gen = gen();

$reflectionGen = new ReflectionGenerator($gen);

echo <<< output
{$reflectionGen->getFunction()->name}
Строка: {$reflectionGen->getExecutingLine()}
Файл: {$reflectionGen->getExecutingFile()}
output;

Результатом выполнения данного примера будет что-то подобное:

gen
Строка: 5
Файл: /path/to/file/example.php

Смотрите также

  • ReflectionGenerator::getFunction() - Получить имя функции генератора
  • ReflectionGenerator::getExecutingLine() - Получить текущую выполняющуюся строку генератора
  • ReflectionGenerator::getExecutingFile() - Получить имя файла, из которого запущен генератор


Получить имя файла, из которого запущен генератор

  • « ReflectionGenerator::__construct
  • ReflectionGenerator::getExecutingGenerator »
  • PHP Manual
  • ReflectionGenerator
  • Получить имя файла, из которого запущен генератор

ReflectionGenerator::getExecutingFile

(PHP 7)

ReflectionGenerator::getExecutingFile — Получить имя файла, из которого запущен генератор

Описание

public ReflectionGenerator::getExecutingFile ( void ) : string

Возвращает полный путь и имя файла текущего запущенного генератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает полный путь и имя файла текущего запущенного генератора.

Примеры

Пример #1 Пример использования ReflectionGenerator::getExecutingFile()

<?php

class GenExample
{
    public function gen()
    {
        yield 1;
    }
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

echo "Файл: {$reflectionGen->getExecutingFile()}";

Результатом выполнения данного примера будет что-то подобное:

Файл: /path/to/file/example.php

Смотрите также

  • ReflectionGenerator::getExecutingLine() - Получить текущую выполняющуюся строку генератора
  • ReflectionGenerator::getExecutingGenerator() - Получить запущенный объект Generator


Получить запущенный объект Generator

  • « ReflectionGenerator::getExecutingFile
  • ReflectionGenerator::getExecutingLine »
  • PHP Manual
  • ReflectionGenerator
  • Получить запущенный объект Generator

ReflectionGenerator::getExecutingGenerator

(PHP 7)

ReflectionGenerator::getExecutingGenerator — Получить запущенный объект Generator

Описание

public ReflectionGenerator::getExecutingGenerator ( void ) : Generator

Возвращает запущенный объект Generator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает запущенный объект Generator.

Примеры

Пример #1 Пример использования ReflectionGenerator::getExecutingGenerator()

<?php

class GenExample
{
    public function gen()
    {
        yield 1;
    }
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

$gen2 = $reflectionGen->getExecutingGenerator();

var_dump($gen2 === $gen);
var_dump($gen2->current());

Результатом выполнения данного примера будет что-то подобное:

bool(true)
int(1);

Смотрите также

  • ReflectionGenerator::getExecutingLine() - Получить текущую выполняющуюся строку генератора
  • ReflectionGenerator::getExecutingFile() - Получить имя файла, из которого запущен генератор


Получить текущую выполняющуюся строку генератора

  • « ReflectionGenerator::getExecutingGenerator
  • ReflectionGenerator::getFunction »
  • PHP Manual
  • ReflectionGenerator
  • Получить текущую выполняющуюся строку генератора

ReflectionGenerator::getExecutingLine

(PHP 7)

ReflectionGenerator::getExecutingLine — Получить текущую выполняющуюся строку генератора

Описание

public ReflectionGenerator::getExecutingLine ( void ) : int

Возвращает текущую выполняющуюся строку генератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает номер текущей выполняющейся строки генератора.

Примеры

Пример #1 Пример использования ReflectionGenerator::getExecutingLine()

<?php

class GenExample
{
    public function gen()
    {
        yield 1;
    }
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

echo "Строка: {$reflectionGen->getExecutingLine()}";

Результатом выполнения данного примера будет что-то подобное:

Строка: 7

Смотрите также

  • ReflectionGenerator::getExecutingGenerator() - Получить запущенный объект Generator
  • ReflectionGenerator::getExecutingFile() - Получить имя файла, из которого запущен генератор


Получить имя функции генератора

  • « ReflectionGenerator::getExecutingLine
  • ReflectionGenerator::getThis »
  • PHP Manual
  • ReflectionGenerator
  • Получить имя функции генератора

ReflectionGenerator::getFunction

(PHP 7)

ReflectionGenerator::getFunction — Получить имя функции генератора

Описание

public ReflectionGenerator::getFunction ( void ) : ReflectionFunctionAbstract

Позволяет получить имя функции генератора, возвращая производный класс от ReflectionFunctionAbstract.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает класс ReflectionFunctionAbstract. Может быть ReflectionFunction для функций или ReflectionMethod для методов.

Примеры

Пример #1 Пример использования ReflectionGenerator::getFunction()

<?php

function gen()
{
    yield 1;
}

$gen = gen();

$reflectionGen = new ReflectionGenerator($gen);

var_dump($reflectionGen->getFunction());

Результатом выполнения данного примера будет что-то подобное:

object(ReflectionFunction)#3 (1) {
  ["name"]=>
  string(3) "gen"
}

Смотрите также

  • ReflectionGenerator::getThis() - Получает значение $this генератора
  • ReflectionGenerator::getTrace() - Получить трассировку запущенного генератора


Получает значение $this генератора

  • « ReflectionGenerator::getFunction
  • ReflectionGenerator::getTrace »
  • PHP Manual
  • ReflectionGenerator
  • Получает значение $this генератора

ReflectionGenerator::getThis

(PHP 7)

ReflectionGenerator::getThis — Получает значение $this генератора

Описание

public ReflectionGenerator::getThis ( void ) : object

Получить значение $this, к которому имеет доступ генератор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает значение $this или NULL, если генератор создан вне контекста класса.

Примеры

Пример #1 Пример использования ReflectionGenerator::getThis()

<?php

class GenExample
{
    public function gen()
    {
        yield 1;
    }
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

var_dump($reflectionGen->getThis());

Результатом выполнения данного примера будет что-то подобное:

object(GenExample)#3 (0) {
}

Смотрите также

  • ReflectionGenerator::getFunction() - Получить имя функции генератора
  • ReflectionGenerator::getTrace() - Получить трассировку запущенного генератора


Получить трассировку запущенного генератора

  • « ReflectionGenerator::getThis
  • Reflector »
  • PHP Manual
  • ReflectionGenerator
  • Получить трассировку запущенного генератора

ReflectionGenerator::getTrace

(PHP 7)

ReflectionGenerator::getTrace — Получить трассировку запущенного генератора

Описание

public ReflectionGenerator::getTrace ([ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT ] ) : array

Возвращает трассировку запущенного генератора.

Список параметров

options

Значение options может быть одним из следующих флагов:

Доступные опции
Опция | Описание
DEBUG_BACKTRACE_PROVIDE_OBJECT | По умолчанию.
DEBUG_BACKTRACE_IGNORE_ARGS | Не включать информацию о аргументах функций в стеке вызовов.

Возвращаемые значения

Возвращает трассировку запущенного генератора.

Примеры

Пример #1 Пример использования ReflectionGenerator::getTrace()

<?php
function foo() {
    yield 1;
}

function bar()
{
    yield from foo();
}

function baz()
{
    yield from bar();
}

$gen = baz();
$gen->valid(); // запускаем генератор

var_dump((new ReflectionGenerator($gen))->getTrace());

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  array(4) {
    ["file"]=>
    string(18) "example.php"
    ["line"]=>
    int(8)
    ["function"]=>
    string(3) "foo"
    ["args"]=>
    array(0) {
    }
  }
  [1]=>
  array(4) {
    ["file"]=>
    string(18) "example.php"
    ["line"]=>
    int(12)
    ["function"]=>
    string(3) "bar"
    ["args"]=>
    array(0) {
    }
  }
}

Смотрите также

  • ReflectionGenerator::getFunction() - Получить имя функции генератора
  • ReflectionGenerator::getThis() - Получает значение $this генератора


Интерфейс Reflector

(PHP 5, PHP 7)

Введение

Интерфейс Reflector реализуют все экспортируемые Reflection-классы.

Обзор классов

Reflector {
/* Методы */
public static export ( void ) : string
public __toString ( void ) : string
}

Содержание

  • Reflector::export — Экспорт
  • Reflector::__toString — Представление в виде строки


Экспорт

  • « Reflector
  • Reflector::__toString »
  • PHP Manual
  • Reflector
  • Экспорт

Reflector::export

(PHP 5, PHP 7)

Reflector::export — Экспорт

Описание

public static Reflector::export ( void ) : string

Экспорт.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Reflection::__toString()


Представление в виде строки

  • « Reflector::export
  • ReflectionException »
  • PHP Manual
  • Reflector
  • Представление в виде строки

Reflector::__toString

(PHP 5, PHP 7)

Reflector::__toString — Представление в виде строки

Описание

public Reflector::__toString ( void ) : string

Представление в виде строки.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • ReflectionProperty::export() - Экспорт
  • __toString()


Класс ReflectionException

(PHP 5, PHP 7)

Введение

Класс ReflectionException.

Обзор классов

ReflectionException extends Exception {
/* Свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Обработка переменных

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции для работы с переменными
    • boolval — Возвращает логическое значение переменной
    • debug_zval_dump — Выводит строковое представление внутреннего значения zend
    • doubleval — Псевдоним floatval
    • empty — Проверяет, пуста ли переменная
    • floatval — Возвращает значение переменной в виде числа с плавающей точкой
    • get_defined_vars — Возвращает массив всех определенных переменных
    • get_resource_type — Возвращает тип ресурса
    • gettype — Возвращает тип переменной
    • import_request_variables — Импортирует переменные GET/POST/Cookie в глобальную область видимости
    • intval — Возвращает целое значение переменной
    • is_array — Определяет, является ли переменная массивом
    • is_bool — Проверяет, является ли переменная булевой
    • is_callable — Проверяет, может ли значение переменной быть вызвано в качестве функции
    • is_countable — Проверить, что содержимое переменной является счетным значением
    • is_double — Псевдоним is_float
    • is_float — Проверяет, является ли переменная числом с плавающей точкой
    • is_int — Проверяет, является ли переменная целым числом
    • is_integer — Псевдоним is_int
    • is_iterable — Проверяет, является ли переменная итерируемой
    • is_long — Псевдоним is_int
    • is_null — Проверяет, является ли значение переменной равным NULL
    • is_numeric — Проверяет, является ли переменная числом или строкой, содержащей число
    • is_object — Проверяет, является ли переменная объектом
    • is_real — Псевдоним is_float
    • is_resource — Проверяет, является ли переменная ресурсом
    • is_scalar — Проверяет, является ли переменная скалярным значением
    • is_string — Проверяет, является ли переменная строкой
    • isset — Определяет, была ли установлена переменная значением, отличным от NULL
    • print_r — Выводит удобочитаемую информацию о переменной
    • serialize — Генерирует пригодное для хранения представление переменной
    • settype — Задает тип переменной
    • strval — Возвращает строковое значение переменной
    • unserialize — Создает PHP-значение из хранимого представления
    • unset — Удаляет переменную
    • var_dump — Выводит информацию о переменной
    • var_export — Выводит или возвращает интерпретируемое строковое представление переменной


Введение

Для более подробной информации о поведении и работе с переменными см. раздел "Переменные", секцию "Справочник языка" руководства.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации переменных
Имя | По умолчанию | Место изменения | Список изменений
unserialize_callback_func | NULL | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

unserialize_callback_func string

Если в процессе десериализации через unserialize() будет обнаружен неопределенный класс, то будет вызвана определенная callback-функция. Если указанная callback-функция не определена или не может определить отсутствующий класс, то будет выведено предупреждение.

Смотрите также unserialize() и раздел автозагрузки объектов.


  • « Типы ресурсов
  • Функции для работы с переменными »
  • PHP Manual
  • Обработка переменных
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции для работы с переменными

Содержание

  • boolval — Возвращает логическое значение переменной
  • debug_zval_dump — Выводит строковое представление внутреннего значения zend
  • doubleval — Псевдоним floatval
  • empty — Проверяет, пуста ли переменная
  • floatval — Возвращает значение переменной в виде числа с плавающей точкой
  • get_defined_vars — Возвращает массив всех определенных переменных
  • get_resource_type — Возвращает тип ресурса
  • gettype — Возвращает тип переменной
  • import_request_variables — Импортирует переменные GET/POST/Cookie в глобальную область видимости
  • intval — Возвращает целое значение переменной
  • is_array — Определяет, является ли переменная массивом
  • is_bool — Проверяет, является ли переменная булевой
  • is_callable — Проверяет, может ли значение переменной быть вызвано в качестве функции
  • is_countable — Проверить, что содержимое переменной является счетным значением
  • is_double — Псевдоним is_float
  • is_float — Проверяет, является ли переменная числом с плавающей точкой
  • is_int — Проверяет, является ли переменная целым числом
  • is_integer — Псевдоним is_int
  • is_iterable — Проверяет, является ли переменная итерируемой
  • is_long — Псевдоним is_int
  • is_null — Проверяет, является ли значение переменной равным NULL
  • is_numeric — Проверяет, является ли переменная числом или строкой, содержащей число
  • is_object — Проверяет, является ли переменная объектом
  • is_real — Псевдоним is_float
  • is_resource — Проверяет, является ли переменная ресурсом
  • is_scalar — Проверяет, является ли переменная скалярным значением
  • is_string — Проверяет, является ли переменная строкой
  • isset — Определяет, была ли установлена переменная значением, отличным от NULL
  • print_r — Выводит удобочитаемую информацию о переменной
  • serialize — Генерирует пригодное для хранения представление переменной
  • settype — Задает тип переменной
  • strval — Возвращает строковое значение переменной
  • unserialize — Создает PHP-значение из хранимого представления
  • unset — Удаляет переменную
  • var_dump — Выводит информацию о переменной
  • var_export — Выводит или возвращает интерпретируемое строковое представление переменной


Возвращает логическое значение переменной

  • « Функции для работы с переменными
  • debug_zval_dump »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает логическое значение переменной

boolval

(PHP 5 >= 5.5.0, PHP 7)

boolval — Возвращает логическое значение переменной

Описание

boolval ( mixed $var ) : bool

Возвращает значение типа boolean, релевантное переданному значению var.

Список параметров

var

Скалярное значение, которое надо привести к типу boolean.

Возвращаемые значения

Приведенное к типу boolean значение var.

Примеры

Пример #1 Пример использования boolval()

<?php
echo '0:        '.(boolval(0) ? 'true' : 'false')."\n";
echo '42:       '.(boolval(42) ? 'true' : 'false')."\n";
echo '0.0:      '.(boolval(0.0) ? 'true' : 'false')."\n";
echo '4.2:      '.(boolval(4.2) ? 'true' : 'false')."\n";
echo '"":       '.(boolval("") ? 'true' : 'false')."\n";
echo '"string": '.(boolval("string") ? 'true' : 'false')."\n";
echo '"0":      '.(boolval("0") ? 'true' : 'false')."\n";
echo '"1":      '.(boolval("1") ? 'true' : 'false')."\n";
echo '[1, 2]:   '.(boolval([1, 2]) ? 'true' : 'false')."\n";
echo '[]:       '.(boolval([]) ? 'true' : 'false')."\n";
echo 'stdClass: '.(boolval(new stdClass) ? 'true' : 'false')."\n";
?>

Результат выполнения данного примера:

0:        false
42:       true
0.0:      false
4.2:      true
"":       false
"string": true
"0":      false
"1":      true
[1, 2]:   true
[]:       false
stdClass: true

Смотрите также

  • floatval() - Возвращает значение переменной в виде числа с плавающей точкой
  • intval() - Возвращает целое значение переменной
  • strval() - Возвращает строковое значение переменной
  • settype() - Задает тип переменной
  • is_bool() - Проверяет, является ли переменная булевой
  • Преобразование типов


Выводит строковое представление внутреннего значения zend

  • « boolval
  • doubleval »
  • PHP Manual
  • Функции для работы с переменными
  • Выводит строковое представление внутреннего значения zend

debug_zval_dump

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

debug_zval_dump — Выводит строковое представление внутреннего значения zend

Описание

debug_zval_dump ( mixed $variable [, mixed $... ] ) : void

Выводит строковое представление внутреннего значения zend.

Список параметров

variable

Обрабатываемая переменная.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования debug_zval_dump()

<?php
$var1 = 'Hello World';
$var2 = '';

$var2 =& $var1;

debug_zval_dump(&$var1);
?>

Результат выполнения данного примера:

&string(11) "Hello World" refcount(3)

Замечание: Предостережение по поводу refcount

Значение refcount, возвращаемое этой функцией, в некоторых случаях неочевидно. Например, разработчик может ожидать, что в приведенном выше примере значение refcount будет 2. Третья ссылка была создана в момент вызова debug_zval_dump().

Это поведение более сложно, когда переменная не передается в функцию debug_zval_dump() по ссылке. Для иллюстрации рассмотрим немного измененный вариант приведенного выше примера:

<?php
$var1 = 'Hello World';
$var2 = '';

$var2 =& $var1;

debug_zval_dump($var1); // в этот раз не передается по ссылке
?>

Результат выполнения данного примера:

string(11) "Hello World" refcount(1)

Почему refcount(1)? Потому что копия $var1 создается при вызове функции.

Эта функция становится еще более сбивающей с толку, когда передается переменная со значением refcount, равным 1 (копированием по значению):

<?php
$var1 = 'Hello World';

debug_zval_dump($var1);
?>

Результат выполнения данного примера:

string(11) "Hello World" refcount(2)

Значение refcount, равное 2, в данном случае совсем непонятно. Особенно учитывая приведенные выше примеры. Так в чем же дело?

Когда переменная имеет единственную ссылку (как было с переменной $var1, перед тем, как ее передали в качестве аргумента в функцию debug_zval_dump()), процессор PHP оптимизирует метод, которым она передается в функцию. Внутренне, PHP рассматривает $var1 как ссылку (таким образом refcount увеличивается для области видимости функции), при условии, что если в переданную ссылку придется производить запись, то будет создана ее копия, но только в момент записи. Такое поведение известно как "copy on write."

Таким образом, если debug_zval_dump() приходится писать в свой единственный параметр (а она не делает этого), то будет создана копия. До этого момента параметр остается ссылкой, приводя к увеличению refcount до 2 в области видимости вызова функции.

Смотрите также

  • var_dump() - Выводит информацию о переменной
  • debug_backtrace() - Выводит стек вызовов функций в массив
  • "Ссылки. Разъяснения"
  • "» Ссылки. Разъяснения (от Derick Rethans)"


Псевдоним floatval

  • « debug_zval_dump
  • empty »
  • PHP Manual
  • Функции для работы с переменными
  • Псевдоним floatval

doubleval

(PHP 4, PHP 5, PHP 7)

doubleval — Псевдоним floatval()

Описание

Эта функция является псевдонимом: floatval().


Проверяет, пуста ли переменная

  • « doubleval
  • floatval »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, пуста ли переменная

empty

(PHP 4, PHP 5, PHP 7)

empty — Проверяет, пуста ли переменная

Описание

empty ( mixed $var ) : bool

Проверяет, считается ли переменная пустой. Переменная считается пустой, если она не существует или её значение равно FALSE. empty() не генерирует предупреждение, если переменная не существует.

Список параметров

var

Проверяемая переменная

Замечание:

До PHP 5.5 empty() проверяет только переменные, и попытка проверить что-то еще вызовет ошибку синтаксиса. Другими словами, следующий код не будет работать: empty(trim($name)). Используйте вместо него trim($name) == false.

Если переменная не существует, предупреждение не генерируется. Это значит, что empty() фактически является точным эквивалентом конструкции !isset($var) || $var == false

Возвращаемые значения

Возвращает FALSE, если var существует и содержит непустое ненулевое значение. В противном случае возвращает TRUE.

Следующие значения воспринимаются как пустые:

  • "" (пустая строка)
  • 0 (целое число)
  • 0.0 (число с плавающей точкой)
  • "0" (строка)
  • NULL
  • FALSE
  • array() (пустой массив)

Список изменений

Версия | Описание
5.5.0 | empty() теперь поддерживает выражения, а не только переменные.
5.4.0 | Проверка нечислового индекса строки возвращает TRUE.

Примеры

Пример #1 Простое сравнение empty() и isset().

<?php
$var = 0;

// Принимает значение true, потому что $var пусто
if (empty($var)) {
    echo '$var или 0, или пусто, или вообще не определена';
}

// Принимает значение true, потому что $var определена
if (isset($var)) {
    echo '$var определена, даже если она пустая';
}
?>

Пример #2 empty() и строковые индексы

В PHP 5.4 был изменен способ обработки строковых индексов в empty().

<?php
$expected_array_got_string = 'somestring';
var_dump(empty($expected_array_got_string['some_key']));
var_dump(empty($expected_array_got_string[0]));
var_dump(empty($expected_array_got_string['0']));
var_dump(empty($expected_array_got_string[0.5]));
var_dump(empty($expected_array_got_string['0.5']));
var_dump(empty($expected_array_got_string['0 Mostel']));
?>

Результат выполнения данного примера в PHP 5.3:

bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)

Результат выполнения данного примера в PHP 5.4:

bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.

Замечание:

При использовании функции empty() на недоступных (необъявленных) свойствах объекта будет вызван встроенный метод объекта __isset(), если он определен.

Смотрите также

  • isset() - Определяет, была ли установлена переменная значением, отличным от NULL
  • __isset()
  • unset() - Удаляет переменную
  • array_key_exists() - Проверяет, присутствует ли в массиве указанный ключ или индекс
  • count() - Подсчитывает количество элементов массива или чего-либо в объекте
  • strlen() - Возвращает длину строки
  • Таблица сравнения типов


Возвращает значение переменной в виде числа с плавающей точкой

  • « empty
  • get_defined_vars »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает значение переменной в виде числа с плавающей точкой

floatval

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

floatval — Возвращает значение переменной в виде числа с плавающей точкой

Описание

floatval ( mixed $var ) : float

Возвращает значение переменной var в виде числа с плавающей точкой (float).

Список параметров

var

Может быть любого скалярного типа. floatval() нельзя использовать с объектами, в этом случае возникнет ошибка уровня E_NOTICE и функция вернет 1.

Возвращаемые значения

Значение заданной переменной в виде числа с плавающей точкой. Пустые массивы в качестве аргумента возвращают 0, непустые массивы возвращают 1.

Строки чаще всего возвращают 0, тем не менее результат зависит от самых левых символов строки. Применяются правила приведения к float.

Примеры

Пример #1 Пример использования floatval()

<?php
$var = '122.34343The';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // 122.34343
?>

Пример #2 Пример использования floatval() с нечисловыми крайними левыми символами

<?php
$var = 'The122.34343';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // 0
?>

Смотрите также

  • boolval() - Возвращает логическое значение переменной
  • intval() - Возвращает целое значение переменной
  • strval() - Возвращает строковое значение переменной
  • settype() - Задает тип переменной
  • Манипуляции с типами


Возвращает массив всех определенных переменных

  • « floatval
  • get_resource_type »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает массив всех определенных переменных

get_defined_vars

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

get_defined_vars — Возвращает массив всех определенных переменных

Описание

get_defined_vars ( void ) : array

Эта функция возвращает многомерный массив, содержащий список всех определенных переменных, будь то переменные окружения, серверные переменные или переменные, определенные пользователем, в той области видимости, в которой была вызвана get_defined_vars().

Возвращаемые значения

Многомерный массив со всеми переменными.

Примеры

Пример #1 Пример использования get_defined_vars()

<?php
$b = array(1, 1, 2, 3, 5, 8);

$arr = get_defined_vars();

// печатает $b
print_r($arr["b"]);

/* печатает путь до интерпретатора PHP (при использовании режима CGI)
 * например, /usr/local/bin/php */
echo $arr["_"];

// печатает параметры командной строки, если они есть
print_r($arr["argv"]);

// печатает все серверные переменные
print_r($arr["_SERVER"]);

// печатает все доступные ключи для массивов переменных
print_r(array_keys(get_defined_vars()));
?>

Смотрите также

  • isset() - Определяет, была ли установлена переменная значением, отличным от NULL
  • get_defined_functions() - Возвращает массив всех определённых функций
  • get_defined_constants() - Возвращает ассоциативный массив с именами всех констант и их значений


Возвращает тип ресурса

  • « get_defined_vars
  • gettype »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает тип ресурса

get_resource_type

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

get_resource_type — Возвращает тип ресурса

Описание

get_resource_type ( resource $handle ) : string

Функция возвращает тип данного ресурса.

Список параметров

handle

Определяемый дескриптор ресурса.

Возвращаемые значения

Если данный параметр handle является ресурсом, функция возвращает строку, указывающую его тип. Если тип не определяется этой функцией, возвращаемым значением будет строка Unknown.

Функция возвращает NULL и вызывает ошибку, если handle не является ресурсом (resource).

Список изменений

Версия | Описание
5.3.0 | Если handle не является ресурсом (resource), то эта функция вернет NULL. Ранее возвращался FALSE.

Примеры

Пример #1 Пример использования get_resource_type()

<?php
// выводит: mysql link
$c = mysql_connect();
echo get_resource_type($c) . "\n";

// выводит: stream
$fp = fopen("foo", "w");
echo get_resource_type($fp) . "\n";

// выводит: domxml document
$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc) . "\n";
?>


Возвращает тип переменной

  • « get_resource_type
  • import_request_variables »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает тип переменной

gettype

(PHP 4, PHP 5, PHP 7)

gettype — Возвращает тип переменной

Описание

gettype ( mixed $var ) : string

Возвращает тип PHP-переменной var. Для проверки типа переменной используйте функции is_*.

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возможными значениями возвращаемой строки являются:

  • "boolean"
  • "integer"
  • "double" (по историческим причинам в случае типа float возвращается "double", а не просто "float")
  • "string"
  • "array"
  • "object"
  • "resource"
  • "resource (closed)" с PHP 7.2.0
  • "NULL"
  • "unknown type"

Примеры

Пример #1 Пример использования gettype()

<?php

$data = array(1, 1., NULL, new stdClass, 'foo');

foreach ($data as $value) {
    echo gettype($value), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

integer
double
NULL
object
string

Список изменений

Версия | Описание
7.2.0 | Для закрытых ресурсов теперь возвращается 'resource (closed)'. Ранее для закрытых ресурсов возвращалось 'unknown type'.

Смотрите также

  • settype() - Задает тип переменной
  • get_class() - Возвращает имя класса, к которому принадлежит объект
  • is_array() - Определяет, является ли переменная массивом
  • is_bool() - Проверяет, является ли переменная булевой
  • is_callable() - Проверяет, может ли значение переменной быть вызвано в качестве функции
  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_int() - Проверяет, является ли переменная целым числом
  • is_null() - Проверяет, является ли значение переменной равным NULL
  • is_numeric() - Проверяет, является ли переменная числом или строкой, содержащей число
  • is_object() - Проверяет, является ли переменная объектом
  • is_resource() - Проверяет, является ли переменная ресурсом
  • is_scalar() - Проверяет, является ли переменная скалярным значением
  • is_string() - Проверяет, является ли переменная строкой
  • function_exists() - Возвращает TRUE, если указанная функция определена
  • method_exists() - Проверяет, существует ли метод в данном классе


Импортирует переменные GET/POST/Cookie в глобальную область видимости

  • « gettype
  • intval »
  • PHP Manual
  • Функции для работы с переменными
  • Импортирует переменные GET/POST/Cookie в глобальную область видимости

import_request_variables

(PHP 4 >= 4.1.0, PHP 5 < 5.4.0)

import_request_variables — Импортирует переменные GET/POST/Cookie в глобальную область видимости

Описание

import_request_variables ( string $types [, string $prefix ] ) : bool

Импортирует переменные GET/POST/Cookie в глобальную область видимости. Это бывает полезно при отключенной директиве register_globals и желании видеть некоторые переменные в глобальной области видимости.

Если необходимо импортировать в глобальную область видимости другие переменные, такие как $_SERVER, воспользуйтесь функцией extract().

Внимание

Данная функция была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Список параметров

types

С помощью параметра types, можно указать, какие переменные запроса необходимо импортировать. Можно использовать символы 'G', 'P' и 'C' соответственно для GET, POST и Cookie. Данные символы не являются регистрозависимыми, поэтому также можно использовать любую комбинацию из 'g', 'p' и 'c'. POST включает в себя информацию о загруженных файлах методом POST.

Замечание:

Имейте в виду, что порядок букв имеет значение, т.е. при использовании "GP" переменные POST перезапишут переменные GET с таким же именем. Любые буквы, отличные от GPC, игнорируются.

prefix

Префикс имени переменной, добавляемый перед всеми именами переменных, импортируемых в глобальную область видимости. То есть, если есть переменная GET с именем "userid", и указан префикс "pref_", то результатом будет глобальная переменная с именем $pref_userid.

Замечание:

Несмотря на то, что prefix - необязательный параметр, будет вызвана ошибка уровня E_NOTICE, если префикс не будет указан или будет указана пустая строка в качестве префикса. Это потенциальная брешь в безопасности. Ошибки уровня Notice не отображаются при использовании уровня отображения ошибок по умолчанию.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования import_request_variables()

<?php
// В примере импортируются переменные GET и POST
// с префиксом "rvar_"
import_request_variables("gp", "rvar_");

echo $rvar_foo;
?>

Смотрите также

  • $_REQUEST
  • register_globals
  • Предопределенные переменные
  • extract() - Импортирует переменные из массива в текущую таблицу символов


Возвращает целое значение переменной

  • « import_request_variables
  • is_array »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает целое значение переменной

intval

(PHP 4, PHP 5, PHP 7)

intval — Возвращает целое значение переменной

Описание

intval ( mixed $var [, int $base = 10 ] ) : int

Возвращает целое значение переменной var, используя указанное основание системы счисления base для преобразования (по умолчанию основание равно 10). intval() нельзя использовать с объектами, попытка это сделать вызовет ошибку уровня E_NOTICE и вернет значение 1.

Список параметров

var

Скалярное значение для конвертации в целое

base

Основание системы счисления для преобразования

Замечание:

Если base равно 0, основание системы счисления определяется форматом var:

  • если строка включает префикс "0x" (или "0X"), основание выбирается равным 16 (шестнадцатеричным);
  • иначе, если строка начинается с "0", основание равно 8 (восьмеричное);
  • иначе, основание выбирается равным 10 (десятеричным).

Возвращаемые значения

Целое значение переменной var в случае успеха, или 0 в случае неудачи. Для пустых массивов возвращается 0, для непустых возвращается 1.

Максимальное значение зависит от операционной системы. В 32-х битных системах максимальное знаковое целое лежит в диапазоне от -2147483648 до 2147483647. Так, например, в такой системе, intval('1000000000000') вернет 2147483647. Максимальное знаковое целое значение для 64-х битных систем - 9223372036854775807.

Для строк функция скорее всего вернет 0, хотя это зависит от первого символа в строке. Применяются общие правила преобразований в целые.

Примеры

Пример #1 Примеры использования intval()

Следующие примеры приведены для 32-х битной системы.

<?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
echo intval(array());                 // 0
echo intval(array('foo', 'bar'));     // 1
echo intval(false);                   // 0
echo intval(true);                    // 1
?>

Примечания

Замечание:

Параметр base применяется только в том случае, если параметр var является строкой.

Список изменений

Версия | Описание
5.1.0 | Генерирует ошибку уровня E_NOTICE и возвращает 1, если в качестве var передан объект.

Смотрите также

  • boolval() - Возвращает логическое значение переменной
  • floatval() - Возвращает значение переменной в виде числа с плавающей точкой
  • strval() - Возвращает строковое значение переменной
  • settype() - Задает тип переменной
  • is_numeric() - Проверяет, является ли переменная числом или строкой, содержащей число
  • Манипуляции с типами
  • Математические функции произвольной точности BCMath


Определяет, является ли переменная массивом

  • « intval
  • is_bool »
  • PHP Manual
  • Функции для работы с переменными
  • Определяет, является ли переменная массивом

is_array

(PHP 4, PHP 5, PHP 7)

is_array — Определяет, является ли переменная массивом

Описание

is_array ( mixed $var ) : bool

Определяет, является ли данная переменная массивом.

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если переменная var является массивом (array), или FALSE в противном случае.

Примеры

Пример #1 Проверяет, является ли переменная массивом

<?php
$yes = array('это', 'массив');

echo is_array($yes) ? 'Массив' : 'Не массив';
echo "\n";

$no = 'это строка';

echo is_array($no) ? 'Массив' : 'Не массив';
?>

Результат выполнения данного примера:

Массив
Не массив

Смотрите также

  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_int() - Проверяет, является ли переменная целым числом
  • is_string() - Проверяет, является ли переменная строкой
  • is_object() - Проверяет, является ли переменная объектом


Проверяет, является ли переменная булевой

  • « is_array
  • is_callable »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная булевой

is_bool

(PHP 4, PHP 5, PHP 7)

is_bool — Проверяет, является ли переменная булевой

Описание

is_bool ( mixed $var ) : bool

Проверяет, является ли данная переменная булевой.

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если var является переменной типа boolean, или FALSE в противном случае.

Примеры

Пример #1 Пример использования is_bool()

<?php
$a = false;
$b = 0;

// Так как $a является булевой переменной, функция вернет true
if (is_bool($a) === true) {
    echo "Да, это булевая переменная";
}

// Так как $b не является булевой переменной, функция вернет false
if (is_bool($b) === false) {
    echo "Нет, это не булевая переменная";
}
?>

Смотрите также

  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_int() - Проверяет, является ли переменная целым числом
  • is_string() - Проверяет, является ли переменная строкой
  • is_object() - Проверяет, является ли переменная объектом
  • is_array() - Определяет, является ли переменная массивом


Проверяет, может ли значение переменной быть вызвано в качестве функции

  • « is_bool
  • is_countable »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, может ли значение переменной быть вызвано в качестве функции

is_callable

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

is_callable — Проверяет, может ли значение переменной быть вызвано в качестве функции

Описание

is_callable ( mixed $var [, bool $syntax_only = FALSE [, string &$callable_name ]] ) : bool

Проверяет, может ли значение переменной быть вызвано в качестве функции. С помощью данной функции можно проверить, что простая переменная содержит корректное имя функции, или что массив содержит правильно заданный объект и имя метода.

Список параметров

var

Значение для проверки

syntax_only

Если равен TRUE, функция только проверяет, что var может быть функцией или методом. В этом случае будут отклоняться переменные, которые не являются ни строкой, ни массивом c корректной структурой для использования в качестве callback-функции. Корректная структура массива предполагает наличие только двух элементов, первый из которых - объект или строка, а второй - только строка.

callable_name

Получает "вызываемое имя". В примере ниже это "someClass::someMethod". Следует иметь в виду, что хотя запись someClass::SomeMethod() означает вызываемый статический метод, это не так.

Возвращаемые значения

Возвращает TRUE, если var может быть вызвана, или FALSE в противном случае.

Примеры

Пример #1 Пример использования is_callable()

<?php
//  Как проверить переменную, чтобы узнать, может ли она быть вызвана
//  как функция.

//
//  Простая переменная, содержащая имя функции
//

function someFunction()
{
}

$functionVariable = 'someFunction';

var_dump(is_callable($functionVariable, false, $callable_name));  // bool(true)

echo $callable_name, "\n";  // someFunction

//
//  Массив, содержащий метод класса
//

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

?>

Пример #2 is_callable() и конструкторы

Начиная с PHP 5.3.0, функция is_callable() не считает конструкторы за callable. Это относится как к конструкторам в стиле PHP 5 (__construct), так и к конструкторам в стиле PHP 4 (то есть методам с таким же именем, как и сам класс). В более ранних версиях, конструкторы считались как callable.

<?php

class Foo
{
    public function __construct() {}
    public function foo() {}
}

var_dump(
    is_callable(array('Foo', '__construct')),
    is_callable(array('Foo', 'foo'))
);

Результат выполнения данного примера:

bool(false)
bool(false)

Смотрите также

  • function_exists() - Возвращает TRUE, если указанная функция определена
  • method_exists() - Проверяет, существует ли метод в данном классе


Проверить, что содержимое переменной является счетным значением

  • « is_callable
  • is_double »
  • PHP Manual
  • Функции для работы с переменными
  • Проверить, что содержимое переменной является счетным значением

is_countable

(PHP 7 >= 7.3.0)

is_countable — Проверить, что содержимое переменной является счетным значением

Описание

is_countable ( mixed $var ) : bool

Проверить, что содержимое переменной массив (array) или объект, реализующий Countable

Список параметров

var

Значение для проверки

Возвращаемые значения

Возвращает TRUE, если var счетная или FALSE в противном случае.

Список изменений

Версия | Описание
7.3.0 | Добавлена функция is_countable().

Примеры

Пример #1 Примеры использования is_countable()

<?php
var_dump(is_countable([1, 2, 3])); // bool(true)
var_dump(is_countable(new ArrayIterator(['foo', 'bar', 'baz']))); // bool(true)
var_dump(is_countable(new ArrayIterator())); // bool(true)
var_dump(is_countable(new stdClass())); // bool(false)

Смотрите также

  • is_array() - Определяет, является ли переменная массивом
  • is_object() - Проверяет, является ли переменная объектом
  • is_iterable() - Проверяет, является ли переменная итерируемой
  • is_bool() - Проверяет, является ли переменная булевой


Псевдоним is_float

  • « is_countable
  • is_float »
  • PHP Manual
  • Функции для работы с переменными
  • Псевдоним is_float

is_double

(PHP 4, PHP 5, PHP 7)

is_double — Псевдоним is_float()

Описание

Эта функция является псевдонимом: is_float().


Проверяет, является ли переменная числом с плавающей точкой

  • « is_double
  • is_int »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная числом с плавающей точкой

is_float

(PHP 4, PHP 5, PHP 7)

is_float — Проверяет, является ли переменная числом с плавающей точкой

Описание

is_float ( mixed $var ) : bool

Проверяет, является ли данная переменная числом с плавающей точкой.

Замечание:

Чтобы проверить, является ли переменная числом или строкой, содержащей число (как поле ввода в форме, которое всегда является строкой), используйте is_numeric().

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если var является переменной типа float, FALSE в противном случае.

Примеры

Пример #1 Пример использования is_float()

var_dump(is_float(27.25));
var_dump(is_float('abc'));
var_dump(is_float(23));
var_dump(is_float(23.5));
var_dump(is_float(1e7));  //Научная нотация
var_dump(is_float(true));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(false)
bool(true)
bool(true)
bool(false)

Смотрите также

  • is_bool() - Проверяет, является ли переменная булевой
  • is_int() - Проверяет, является ли переменная целым числом
  • is_numeric() - Проверяет, является ли переменная числом или строкой, содержащей число
  • is_string() - Проверяет, является ли переменная строкой
  • is_array() - Определяет, является ли переменная массивом
  • is_object() - Проверяет, является ли переменная объектом


Проверяет, является ли переменная целым числом

  • « is_float
  • is_integer »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная целым числом

is_int

(PHP 4, PHP 5, PHP 7)

is_int — Проверяет, является ли переменная целым числом

Описание

is_int ( mixed $var ) : bool

Проверяет, является ли тип переменной целочисленным.

Замечание:

Чтобы проверить, что переменная является числом или строкой, содержащей число (как поле ввода в форме, которое всегда является строкой), используйте is_numeric().

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если var является целым числом, или FALSE в противном случае.

Примеры

Пример #1 Пример использования is_int()

<?php
$values = array(23, "23", 23.5, "23.5", null, true, false);
foreach ($values as $value) {
    echo "is_int(";
    var_export($value);
    echo ") = ";
    var_dump(is_int($value));
}
?>

Результат выполнения данного примера:

is_int(23) = bool(true)
is_int('23') = bool(false)
is_int(23.5) = bool(false)
is_int('23.5') = bool(false)
is_int(NULL) = bool(false)
is_int(true) = bool(false)
is_int(false) = bool(false)

Смотрите также

  • is_bool() - Проверяет, является ли переменная булевой
  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_numeric() - Проверяет, является ли переменная числом или строкой, содержащей число
  • is_string() - Проверяет, является ли переменная строкой
  • is_array() - Определяет, является ли переменная массивом
  • is_object() - Проверяет, является ли переменная объектом


Псевдоним is_int

  • « is_int
  • is_iterable »
  • PHP Manual
  • Функции для работы с переменными
  • Псевдоним is_int

is_integer

(PHP 4, PHP 5, PHP 7)

is_integer — Псевдоним is_int()

Описание

Эта функция является псевдонимом: is_int().


Проверяет, является ли переменная итерируемой

  • « is_integer
  • is_long »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная итерируемой

is_iterable

(PHP 7 >= 7.1.0)

is_iterable — Проверяет, является ли переменная итерируемой

Описание

is_iterable ( mixed $var ) : bool

Проверяет, соответствует ли содержимое переменной псевдотипу iterable, то есть является ли она либо массивом (array), либо объектом, реализующим Traversable

Список параметров

var

Переменная для проверки

Возвращаемые значения

Возвращает TRUE, если var итерируемая или FALSE, если нет.

Примеры

Пример #1 Пример использования is_iterable()

<?php

var_dump(is_iterable([1, 2, 3]));  // bool(true)
var_dump(is_iterable(new ArrayIterator([1, 2, 3])));  // bool(true)
var_dump(is_iterable((function () { yield 1; })()));  // bool(true)
var_dump(is_iterable(1));  // bool(false)
var_dump(is_iterable(new stdClass()));  // bool(false)

?>

Смотрите также

  • is_array() - Определяет, является ли переменная массивом


Псевдоним is_int

  • « is_iterable
  • is_null »
  • PHP Manual
  • Функции для работы с переменными
  • Псевдоним is_int

is_long

(PHP 4, PHP 5, PHP 7)

is_long — Псевдоним is_int()

Описание

Эта функция является псевдонимом: is_int().


Проверяет, является ли значение переменной равным NULL

  • « is_long
  • is_numeric »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли значение переменной равным NULL

is_null

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

is_null — Проверяет, является ли значение переменной равным NULL

Описание

is_null ( mixed $var ) : bool

Проверяет, является ли значение данной переменной равным NULL.

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если значение var равно null, или FALSE в противном случае.

Примеры

Пример #1 Пример использования is_null()

<?php

error_reporting(E_ALL);

$foo = NULL;
var_dump(is_null($inexistent), is_null($foo));

?>
Notice: Undefined variable: inexistent in ...
bool(true)
bool(true)

Смотрите также

  • Тип NULL
  • isset() - Определяет, была ли установлена переменная значением, отличным от NULL
  • is_bool() - Проверяет, является ли переменная булевой
  • is_numeric() - Проверяет, является ли переменная числом или строкой, содержащей число
  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_int() - Проверяет, является ли переменная целым числом
  • is_string() - Проверяет, является ли переменная строкой
  • is_object() - Проверяет, является ли переменная объектом
  • is_array() - Определяет, является ли переменная массивом


Проверяет, является ли переменная числом или строкой, содержащей число

  • « is_null
  • is_object »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная числом или строкой, содержащей число

is_numeric

(PHP 4, PHP 5, PHP 7)

is_numeric — Проверяет, является ли переменная числом или строкой, содержащей число

Описание

is_numeric ( mixed $var ) : bool

Проверяет, является ли данная переменная числом. Строки, содержащие числа, состоят из необязательного знака, любого количества цифр, необязательной десятичной части и необязательной экспоненциальной части. Так, +0123.45e6 является верным числовым значением. Шестнадцатеричные (0xf4c3b00c) и двоичные (0b10100111001) нотации не допускаются.

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если var является числом или строкой, содержащей число или FALSE в противном случае.

Примеры

Пример #1 Примеры использования is_numeric()

<?php
$tests = array(
    "42",
    1337,
    0x539,
    02471,
    0b10100111001,
    1337e0,
    "0x539",
    "02471",
    "0b10100111001",
    "1337e0",
    "not numeric",
    array(),
    9.1,
    null
);

foreach ($tests as $element) {
    if (is_numeric($element)) {
        echo var_export($element, true) . " - число", PHP_EOL;
    } else {
        echo var_export($element, true) . " - НЕ число", PHP_EOL;
    }
}
?>

Результат выполнения данного примера:

42 - число
1337 - число
1337 - число
1337 - число
1337 - число
1337.0 - число
'0x539' - НЕ число
'02471' - число
'0b10100111001' - НЕ число
'1337e0' - число
'not numeric' - НЕ число
array (
) - НЕ число
9.1 - число
NULL - НЕ число

Список изменений

Версия | Описание
7.0.0 | Строки, содержащие шестнадцатеричную (0xf4c3b00c) запись, больше не считаются числовыми строками, то есть is_numeric() вернет FALSE.

Смотрите также

  • ctype_digit() - Проверяет наличие цифровых символов в строке
  • is_bool() - Проверяет, является ли переменная булевой
  • is_null() - Проверяет, является ли значение переменной равным NULL
  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_int() - Проверяет, является ли переменная целым числом
  • is_string() - Проверяет, является ли переменная строкой
  • is_object() - Проверяет, является ли переменная объектом
  • is_array() - Определяет, является ли переменная массивом


Проверяет, является ли переменная объектом

  • « is_numeric
  • is_real »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная объектом

is_object

(PHP 4, PHP 5, PHP 7)

is_object — Проверяет, является ли переменная объектом

Описание

is_object ( mixed $var ) : bool

Проверяет, является ли данная переменная объектом.

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если var является объектом, или FALSE в противном случае.

Примеры

Пример #1 Пример использования is_object()

<?php
// Объявляем простую функцию, которая возвращает
// массив из нашего объекта
function get_students($obj)
{
    if (!is_object($obj)) {
        return false;
    }

    return $obj->students;
}

// Создаем новый экземпляр класса
// и заполняем некоторыми значениями

$obj = new stdClass();
$obj->students = array('Kalle', 'Ross', 'Felipe');

var_dump(get_students(null));
var_dump(get_students($obj));
?>

Список изменений

Версия | Описание
7.2.0 | Теперь is_object() возвращает TRUE для десериализованных объектов, у которых отсутствует объявление класса (класс __PHP_Incomplete_Class). Раньше возвращалось FALSE.

Смотрите также

  • is_bool() - Проверяет, является ли переменная булевой
  • is_int() - Проверяет, является ли переменная целым числом
  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_string() - Проверяет, является ли переменная строкой
  • is_array() - Определяет, является ли переменная массивом


Псевдоним is_float

  • « is_object
  • is_resource »
  • PHP Manual
  • Функции для работы с переменными
  • Псевдоним is_float

is_real

(PHP 4, PHP 5, PHP 7)

is_real — Псевдоним is_float()

Описание

Эта функция является псевдонимом: is_float().


Проверяет, является ли переменная ресурсом

  • « is_real
  • is_scalar »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная ресурсом

is_resource

(PHP 4, PHP 5, PHP 7)

is_resource — Проверяет, является ли переменная ресурсом

Описание

is_resource ( mixed $var ) : bool

Проверяет, является ли данная переменная ресурсом (resource).

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если var является ресурсом (resource), или FALSE в противном случае.

Примеры

Пример #1 Пример использования is_resource()

<?php

$db_link = @mysql_connect('localhost', 'mysql_user', 'mysql_pass');
if (!is_resource($db_link)) {
    die('Ошибка соединения : ' . mysql_error());
}

?>

Примечания

Замечание:

Функция is_resource() не производит строгой проверки типа; она вернет FALSE, если var является ресурсом, который был закрыт.

Смотрите также

  • Тип resoruce
  • get_resource_type() - Возвращает тип ресурса


Проверяет, является ли переменная скалярным значением

  • « is_resource
  • is_string »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная скалярным значением

is_scalar

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

is_scalar — Проверяет, является ли переменная скалярным значением

Описание

is_scalar ( mixed $var ) : bool

Проверяет, является ли данная переменная скалярным значением.

Скалярные переменные - это переменные с типами integer, float, string и boolean. Типы array, object и resource не являются скалярными.

Замечание:

is_scalar() не считает переменные типа resource скалярными, так как ресурсы являются абстрактными типами данных, которые в настоящее время основаны на целом типе. Не стоит полагаться на данную деталь реализации, так как она может измениться.

Замечание:

is_scalar() не считает NULL скаляром.

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если var является скалярным значением, или FALSE в противном случае.

Примеры

Пример #1 Пример использования is_scalar()

<?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_float
  • is_string() - Проверяет, является ли переменная строкой
  • is_bool() - Проверяет, является ли переменная булевой
  • is_object() - Проверяет, является ли переменная объектом
  • is_array() - Определяет, является ли переменная массивом


Проверяет, является ли переменная строкой

  • « is_scalar
  • isset »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная строкой

is_string

(PHP 4, PHP 5, PHP 7)

is_string — Проверяет, является ли переменная строкой

Описание

is_string ( mixed $var ) : bool

Проверяет, является ли данная переменная строкой.

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если var является строкой, и FALSE в противном случае.

Примеры

Пример #1 Пример использования is_string()

<?php
$values = array(false, true, null, 'abc', '23', 23, '23.5', 23.5, '', ' ', '0', 0);
foreach ($values as $value) {
    echo "is_string(";
    var_export($value);
    echo ") = ";
    echo var_dump(is_string($value));
}
?>

Результат выполнения данного примера:

is_string(false) = bool(false)
is_string(true) = bool(false)
is_string(NULL) = bool(false)
is_string('abc') = bool(true)
is_string('23') = bool(true)
is_string(23) = bool(false)
is_string('23.5') = bool(true)
is_string(23.5) = bool(false)
is_string('') = bool(true)
is_string(' ') = bool(true)
is_string('0') = bool(true)
is_string(0) = bool(false)

Смотрите также

  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_int() - Проверяет, является ли переменная целым числом
  • is_bool() - Проверяет, является ли переменная булевой
  • is_object() - Проверяет, является ли переменная объектом
  • is_array() - Определяет, является ли переменная массивом


Определяет, была ли установлена переменная значением, отличным от NULL

  • « is_string
  • print_r »
  • PHP Manual
  • Функции для работы с переменными
  • Определяет, была ли установлена переменная значением, отличным от NULL

isset

(PHP 4, PHP 5, PHP 7)

isset — Определяет, была ли установлена переменная значением, отличным от NULL

Описание

isset ( mixed $var [, mixed $... ] ) : bool

Определяет, была ли установлена переменная значением отличным от NULL

Если переменная была удалена с помощью unset(), то она больше не считается установленной.

isset() вернет FALSE при проверке переменной которая была установлена значением NULL. Также учтите, что NULL-символ ("\0") не равен константе NULL в PHP.

Если были переданы несколько параметров, то isset() вернет TRUE только в том случае, если все параметры определены. Проверка происходит слева направо и заканчивается, как только будет встречена неопределенная переменная.

Список параметров

var

Проверяемая переменная.

...

Другая переменная ...

Возвращаемые значения

Возвращает TRUE, если var определена и ее значение отлично от NULL, и FALSE в противном случае.

Список изменений

Версия | Описание
5.4.0 | Проверка нечислового индекса строки теперь возвращает FALSE.

Примеры

Пример #1 Пример использования isset()

<?php

$var = '';

// Проверка вернет TRUE, поэтому текст будет напечатан.
if (isset($var)) {
    echo "Эта переменная определена, поэтому меня и напечатали.";
}

// В следующем примере мы используем var_dump для вывода
// значения, возвращаемого 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

?>

Функция также работает с элементами массивов:

<?php

$a = array ('test' => 1, 'hello' => NULL, 'pie' => array('a' => 'apple'));

var_dump(isset($a['test']));            // TRUE
var_dump(isset($a['foo']));             // FALSE
var_dump(isset($a['hello']));           // FALSE

// Элемент с ключом 'hello' равен NULL, поэтому он считается неопределенным
// Если вы хотите проверить существование ключей со значением NULL, попробуйте так:
var_dump(array_key_exists('hello', $a)); // TRUE

// Проверка вложенных элементов массива
var_dump(isset($a['pie']['a']));        // TRUE
var_dump(isset($a['pie']['b']));        // FALSE
var_dump(isset($a['cake']['a']['b']));  // FALSE

?>

Пример #2 isset() и строковые индексы

В PHP 5.4 был изменен способ обработки строковых индексов в isset().

<?php
$expected_array_got_string = 'somestring';
var_dump(isset($expected_array_got_string['some_key']));
var_dump(isset($expected_array_got_string[0]));
var_dump(isset($expected_array_got_string['0']));
var_dump(isset($expected_array_got_string[0.5]));
var_dump(isset($expected_array_got_string['0.5']));
var_dump(isset($expected_array_got_string['0 Mostel']));
?>

Результат выполнения данного примера в PHP 5.3:

bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

Результат выполнения данного примера в PHP 5.4:

bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)

Примечания

Внимание

isset() работает только с переменными, поэтому передача в качестве параметров любых других значений приведет к ошибке парсинга. Для проверки определения констант используйте функцию defined().

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.

Замечание:

При использовании isset() на недоступных свойствах объекта, будет вызываться перегруженный метод __isset(), если он существует.

Смотрите также

  • empty() - Проверяет, пуста ли переменная
  • __isset()
  • unset() - Удаляет переменную
  • defined() - Проверяет существование указанной именованной константы
  • Таблица сравнения типов
  • array_key_exists() - Проверяет, присутствует ли в массиве указанный ключ или индекс
  • is_null() - Проверяет, является ли значение переменной равным NULL
  • Оператор управления ошибками @


Выводит удобочитаемую информацию о переменной

  • « isset
  • serialize »
  • PHP Manual
  • Функции для работы с переменными
  • Выводит удобочитаемую информацию о переменной

print_r

(PHP 4, PHP 5, PHP 7)

print_r — Выводит удобочитаемую информацию о переменной

Описание

print_r ( mixed $expression [, bool $return = FALSE ] ) : mixed

print_r() выводит информацию о переменной в удобочитаемом виде.

print_r(), var_dump() и var_export() могут также показывать защищенные и закрытые атрибуты объектов. Статические элементы класса не будут отображены.

Список параметров

expression

Выражение для вывода на экран.

return

Если вы хотите перехватить вывод print_r(), используйте параметр return. Если его значение равно TRUE, то print_r() вернет информацию вместо вывода в браузер.

Возвращаемые значения

Если в функцию передаются значения типов string, integer или float, будет напечатано само значение. Если передается массив array, значения будут напечатаны в формате, показывающем ключи и элементы массива. Аналогичный формат вывода используется для объектов.

Если параметр return установлен в TRUE, данная функция вернет строку (string). В противном случае возвращаемое значение будет равно TRUE.

Примечания

Замечание:

При использовании параметра return данная функция использует внутреннюю буферизацию вывода, поэтому она не может быть использована внутри callback-функции ob_start().

Примеры

Пример #1 Пример использования print_r()

<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>

Пример #2 Пример использования параметра return

<?php
$b = array ('m' => 'monkey', 'foo' => 'bar', 'x' => array ('x', 'y', 'z'));
$results = print_r($b, true); // $results теперь содержит вывод print_r
?>

Смотрите также

  • ob_start() - Включение буферизации вывода
  • var_dump() - Выводит информацию о переменной
  • var_export() - Выводит или возвращает интерпретируемое строковое представление переменной


Генерирует пригодное для хранения представление переменной

  • « print_r
  • settype »
  • PHP Manual
  • Функции для работы с переменными
  • Генерирует пригодное для хранения представление переменной

serialize

(PHP 4, PHP 5, PHP 7)

serialize — Генерирует пригодное для хранения представление переменной

Описание

serialize ( mixed $value ) : string

Генерирует пригодное для хранения представление переменной.

Это полезно для хранения или передачи значений PHP между скриптами без потери их типа и структуры.

Для превращения сериализованной строки обратно в PHP-значение, используйте функцию unserialize().

Список параметров

value

Значение, которое необходимо сериализовать. serialize() обрабатывает все типы, кроме resource и некоторых типов object (см. примечание ниже). Возможно также сериализовать массивы, которые содержат ссылки на себя. Циклические ссылки внутри сериализуемого массива/объекта также сохраняются. Любые другие ссылки будут потеряны.

При сериализации объекта PHP пытается вызвать магический метод __sleep() перед сериализацией. Это делается для того, чтобы позволить объекту в последний момент произвести очистку и тому подобные операции перед сериализацией. Аналогично, когда объект восстанавливается функцией unserialize(), вызывается магический метод __wakeup().

Замечание:

Начало имен закрытых членов объекта дополняются именем класса, а начало имен защищенных членов символом '*'. Эти дополненные значения окружаются нулевым байтом (0x00) с обеих сторон.

Возвращаемые значения

Возвращает строку, содержащую потоковое представление переменной value, которая может быть сохранена где угодно.

Обратите внимание, что это бинарная строка, которая может включать нулевые байты, и ее нужно хранить и обрабатывать соответствующим образом. Например, вывод функции serialize() лучше хранить в BLOB-поле базы данных, а не в полях типа CHAR или TEXT.

Примеры

Пример #1 Пример использования serialize()

<?php
// $session_data содержит многомерный массив с сессионной
// информацией о текущем пользователе. Мы используем serialize() для сохранения
// этой информации в базе данных в конце запроса.

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn,
      "UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $_SERVER['PHP_AUTH_USER']);
if (!odbc_execute($stmt, $sqldata)) {
    $stmt = odbc_prepare($conn,
     "INSERT INTO sessions (id, data) VALUES(?, ?)");
    if (!odbc_execute($stmt, $sqldata)) {
        /* Код, выполняемый при ошибке.. */
    }
}
?>

Примечания

Замечание:

Обратите внимание, что много встроенных в PHP объектов не может быть сериализовано. Однако, те из них, которые поддерживают эту возможность, реализуют или интерфейс Serializable, или магические методы __sleep() и __wakeup(). Если встроенный класс не удовлетворяет этим требованиям, он не может быть надежно сериализован.

Исторически есть некоторые исключения из вышеуказанного правила, когда некоторые внутренние объекты могут быть сериализованы без реализации интерфейса или магических методов. К примеру, ArrayObject до PHP 5.2.0.

Внимание

При сериализации объектов функцией serialize(), ведущий обратный слеш не будет включен в имя класса с указанным пространством имен для наилучшей обратной совместимости.

Смотрите также

  • unserialize() - Создает PHP-значение из хранимого представления
  • var_export() - Выводит или возвращает интерпретируемое строковое представление переменной
  • json_encode() - Возвращает JSON-представление данных
  • Сериализация объектов
  • __sleep()
  • __wakeup()


Задает тип переменной

  • « serialize
  • strval »
  • PHP Manual
  • Функции для работы с переменными
  • Задает тип переменной

settype

(PHP 4, PHP 5, PHP 7)

settype — Задает тип переменной

Описание

settype ( mixed &$var , string $type ) : bool

Задает тип type переменной var.

Список параметров

var

Преобразуемая переменная.

type

Допустимыми значениями параметра type являются:

  • "boolean" или "bool"
  • "integer" или "int"
  • "float" или "double"
  • "string"
  • "array"
  • "object"
  • "null"

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования settype()

<?php
$foo = "5bar"; // строка
$bar = true;   // булевое значение

settype($foo, "integer"); // $foo теперь 5   (целое)
settype($bar, "string");  // $bar теперь "1" (строка)
?>

Примечания

Замечание:

Максимальное значение для "int" равно PHP_INT_MAX.

Смотрите также

  • gettype() - Возвращает тип переменной
  • Приведение типов
  • Манипуляции с типами


Возвращает строковое значение переменной

  • « settype
  • unserialize »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает строковое значение переменной

strval

(PHP 4, PHP 5, PHP 7)

strval — Возвращает строковое значение переменной

Описание

strval ( mixed $var ) : string

Возвращает строковое значение переменной. См. документацию по типу string для более подробной информации о преобразовании в строку.

Эта функция не производит форматирование возвращаемого значения. Если необходимо привести числовое значение к строке с особым форматом, воспользуйтесь sprintf() или number_format().

Список параметров

var

Переменная, которую необходимо преобразовать в строку.

var может быть любого скалярного типа или объектом, который реализует метод __toString(). strval() нельзя применить к массиву или объекту, которые не реализуют метод __toString().

Возвращаемые значения

Строковое значение (string) параметра var.

Примеры

Пример #1 Пример использования strval() с магическим методом PHP 5 __toString().

<?php
class StrValTest
{
    public function __toString()
    {
        return __CLASS__;
    }
}

// Выводит 'StrValTest'
echo strval(new StrValTest);
?>

Смотрите также

  • boolval() - Возвращает логическое значение переменной
  • floatval() - Возвращает значение переменной в виде числа с плавающей точкой
  • intval() - Возвращает целое значение переменной
  • settype() - Задает тип переменной
  • sprintf() - Возвращает отформатированную строку
  • number_format() - Форматирует число с разделением групп
  • Манипуляции с типами
  • __toString()


Создает PHP-значение из хранимого представления

  • « strval
  • unset »
  • PHP Manual
  • Функции для работы с переменными
  • Создает PHP-значение из хранимого представления

unserialize

(PHP 4, PHP 5, PHP 7)

unserialize — Создает PHP-значение из хранимого представления

Описание

unserialize ( string $str [, array $options ] ) : mixed

unserialize() принимает одну сериализованную переменную и конвертирует ее обратно в значение PHP.

Внимание

Не передавайте непроверенные пользовательские данные в unserialize(), даже если в options задано allowed_classes. Десериализация может создать код, который выполнится при создании объекта или при автоматической загрузке кода, чем могут воспользоваться недобросовестные пользователи. Лучше использовать более безопасные стандартные форматы обмена данными, такие как JSON (с помощью функций json_decode() и json_encode()), если вам нужно передать сериализованные данные пользователю.

Если вам нужно десериализовать данные из внешних источников, используйте функцию hash_hmac() для проверки этих данных. Убедитесь, что эти данные кроме вас никто не изменял.

Список параметров

str

Сериализованная строка.

Если переменная, требующая десериализации, является объектом, то после успешного восстановления объекта PHP автоматически попытается вызвать магический метод __wakeup() (если он существует).

Замечание: Директива unserialize_callback_func

Существует возможность указать функцию обратного вызова, которая будет вызвана, если в процессе десериализации должен быть проинициализирован неопределенный класс. (для предотвращения получения неполного объекта (object) "__PHP_Incomplete_Class"). Используйте php.ini, ini_set() или .htaccess для определения функции unserialize_callback_func. Данная функция будет вызываться каждый раз, когда должен быть проинициализирован неопределенный класс. Для отключения этой возможности, просто оставьте значение директивы пустым.

options

Любые опции unserialize() в виде ассоциативного массива.

Корректные опции
Имя | Тип | Описание
allowed_classes | mixed | Массив имен классов, которые должны быть приняты, FALSE для указания не принимать никаких классов или TRUE для приема всех. Если эта опция задана и unserialize() обнаружит объект неприемлемого класса, то он не будет принят, а вместо этого инстанцируется как объект класса __PHP_Incomplete_Class. Если опция не задана, то она будет считаться установленной в TRUE: PHP будет пытаться инстанцировать объекты любого класса.

Возвращаемые значения

Возвращается преобразованное значение, которое принимает один из типов boolean, integer, float, string, array или object.

В случае, если переданная строка не поддается десериализации, возвращается FALSE и генерируется E_NOTICE.

Список изменений

Версия | Описание
7.1.0 | Теперь элемент allowed_classes параметра options строго типизирован, то есть если передано что-либо, кроме array и boolean, unserialize() вернет FALSE и вызовет ошибку E_WARNING.
7.0.0 | Добавлен параметр options.
5.6.0 | Изменение сериализованных данных с заменой C: на O:, для принудительного создания объекта без вызова конструктора, теперь будет проходить успешно.

Примеры

Пример #1 Пример использования unserialize()

<?php
// Мы используем функцию unserialize() для загрузки сессионных данных в массив
// $session_data из строки, извлекаемой из базы данных.
// Данный пример дополняет пример, описывающий использование serialize().

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array($_SERVER['PHP_AUTH_USER']);
if (!odbc_execute($stmt, $sqldata) || !odbc_fetch_into($stmt, $tmp)) {
    // если процедура извлечения данных не удалась, то инициализируем пустой массив
    $session_data = array();
} else {
    // сейчас у нас должны быть сериализованные данные в $tmp[0].
    $session_data = unserialize($tmp[0]);
    if (!is_array($session_data)) {
        // что-то пошло не так, инициализируем пустой массив
        $session_data = array();
    }
}
?>

Пример #2 Пример использования unserialize_callback_func

<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';

ini_set('unserialize_callback_func', 'mycallback'); // определяем свою функцию обратного вызова

function mycallback($classname)
{
    // просто подключаете файл, содержащий определение класса
    // $classname указывает, для какого класса требуется определение
}
?>

Примечания

Внимание

FALSE возвращается как в случае ошибки, так и в случае, если десериализуется сериализованное значение FALSE. Этот особый случай можно отловить, используя сравнение str со значением serialize(false), или перехватив сгенерированную ошибку E_NOTICE.

Смотрите также

  • json_encode() - Возвращает JSON-представление данных
  • json_decode() - Декодирует строку JSON
  • hash_hmac() - Генерация хеш-кода на основе ключа, используя метод HMAC
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Автоматическая загрузка классов
  • unserialize_callback_func
  • __wakeup()


Удаляет переменную

  • « unserialize
  • var_dump »
  • PHP Manual
  • Функции для работы с переменными
  • Удаляет переменную

unset

(PHP 4, PHP 5, PHP 7)

unset — Удаляет переменную

Описание

unset ( mixed $var [, mixed $... ] ) : void

unset() удаляет перечисленные переменные.

Поведение unset() внутри пользовательской функции может отличаться, в зависимости от того, какой тип имеет переменная, которую необходимо удалить.

Если переменная, объявленная глобальной, удаляется внутри функции, то будет удалена только локальная переменная. Переменная в области видимости вызова функции сохранит то же значение, что и до вызова unset().

<?php
function destroy_foo()
{
    global $foo;
    unset($foo);
}

$foo = 'bar';
destroy_foo();
echo $foo;
?>

Результат выполнения данного примера:

bar

Если необходимо удалить глобальную переменную внутри функции, то для этого нужно использовать массив $GLOBALS:

<?php
function foo()
{
    unset($GLOBALS['bar']);
}

$bar = "something";
foo();
?>

Если переменная, которая передается ПО ССЫЛКЕ, удаляется внутри функции, то будет удалена только локальная переменная. Переменная в области видимости вызова функции сохранит то же значение, что и до вызова unset().

<?php
function foo(&$bar)
{
    unset($bar);
    $bar = "blah";
}

$bar = 'something';
echo "$bar\n";

foo($bar);
echo "$bar\n";
?>

Результат выполнения данного примера:

something
something

Если статическая переменная удаляется внутри функции, unset() удалит переменную только в контексте дальнейшего выполнения функции. При последующем вызове предыдущее значение переменной будет восстановлено.

<?php
function foo()
{
    static $bar;
    $bar++;
    echo "До удаления: $bar, ";
    unset($bar);
    $bar = 23;
    echo "После удаления: $bar\n";
}

foo();
foo();
foo();
?>

Результат выполнения данного примера:

До удаления: 1, После удаления: 23
До удаления: 2, После удаления: 23
До удаления: 3, После удаления: 23

Список параметров

var

Удаляемая переменная.

...

Другая переменная ...

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования unset()

<?php
// удаляем одну переменную
unset($foo);

// удаляем один элемент массива
unset($bar['quux']);

// удаляем несколько переменных
unset($foo1, $foo2, $foo3);
?>

Пример #2 Использование приведения типа (unset)

Приведение типа (unset) часто путают с функцией unset(). Приведение типа (unset) приводит только к значению NULL и было добавлено исключительно для полноты реализации. Оно не меняет значение приводимой переменной. С PHP 7.2.0 преобразование типа (unset) объявлено устаревшим.

<?php
$name = 'Felipe';

var_dump((unset) $name);
var_dump($name);
?>

Результат выполнения данного примера:

NULL
string(6) "Felipe"

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.

Замечание:

Существует возможность удалить даже атрибуты объекта, видимые в текущем контексте.

Замечание:

Невозможно удалить $this внутри метода объекта.

Замечание:

При использовании unset() на недоступных или необъявленных свойствах объекта, будет вызван встроенный метод объекта __unset(), если он определен.

Смотрите также

  • isset() - Определяет, была ли установлена переменная значением, отличным от NULL
  • empty() - Проверяет, пуста ли переменная
  • __unset()
  • array_splice() - Удаляет часть массива и заменяет её чем-нибудь ещё
  • Приведение типа (unset)


Выводит информацию о переменной

  • « unset
  • var_export »
  • PHP Manual
  • Функции для работы с переменными
  • Выводит информацию о переменной

var_dump

(PHP 4, PHP 5, PHP 7)

var_dump — Выводит информацию о переменной

Описание

var_dump ( mixed $expression [, mixed $... ] ) : void

Функция отображает структурированную информацию об одном или нескольких выражениях, включая их тип и значение. Массивы и объекты анализируются рекурсивно с разным отступом у значений для визуального отображения структуры.

Все общедоступные, закрытые и защищенные свойства объекта будут возвращены при выводе, если только объект не реализует метод __debugInfo() (добавлен в PHP 5.6.0).

Подсказка

Как и с любой другой функцией, осуществляющей вывод непосредственно в браузер, вы можете использовать функции контроля вывода, чтобы перехватывать выводимые этой функцией данные и сохранять их, например, в строку (string).

Список параметров

expression

Переменная, значение которой необходимо отобразить.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования var_dump()

<?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)

Смотрите также

  • print_r() - Выводит удобочитаемую информацию о переменной
  • debug_zval_dump() - Выводит строковое представление внутреннего значения zend
  • var_export() - Выводит или возвращает интерпретируемое строковое представление переменной
  • __debugInfo()


Выводит или возвращает интерпретируемое строковое представление переменной

  • « var_dump
  • Веб-сервисы »
  • PHP Manual
  • Функции для работы с переменными
  • Выводит или возвращает интерпретируемое строковое представление переменной

var_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

var_export — Выводит или возвращает интерпретируемое строковое представление переменной

Описание

var_export ( mixed $expression [, bool $return = FALSE ] ) : mixed

var_export() возвращает структурированную информацию о данной переменной. Функция аналогична var_dump() за одним исключением: возвращаемое представление является полноценным PHP-кодом.

Список параметров

expression

Переменная, которую необходимо экспортировать.

return

Если передано и значение равно TRUE, var_export() вернет представление переменной вместо его вывода.

Возвращаемые значения

Возвращает представление переменной, если параметр return передан и равен TRUE. В противном случае функция возвращает NULL.

Примечания

Замечание:

При использовании параметра return данная функция использует внутреннюю буферизацию вывода, поэтому она не может быть использована внутри callback-функции ob_start().

Список изменений

Версия | Описание
5.1.0 | Стало возможным экспортировать классы и массивы, содержащие другие классы, используя магический метод __set_state().

Примеры

Пример #1 Примеры использования var_export()

<?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 Экспорт классов c PHP 5.1.0

<?php
class A { public $var; }
$a = new A;
$a->var = 5;
var_export($a);
?>

Результат выполнения данного примера:

A::__set_state(array(
   'var' => 5,
))

Пример #3 Использование __set_state() (c PHP 5.1.0)

<?php
class A
{
    public $var1;
    public $var2;

    public static function __set_state($an_array)
    {
        $obj = new A;
        $obj->var1 = $an_array['var1'];
        $obj->var2 = $an_array['var2'];
        return $obj;
    }
}

$a = new A;
$a->var1 = 5;
$a->var2 = 'foo';

eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array(
                                            //    'var1' => 5,
                                            //    'var2' => 'foo',
                                            // ));
var_dump($b);
?>

Результат выполнения данного примера:

object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

Примечания

Замечание:

Переменные типа resource не могут быть экспортированы с помощью этой функции.

Замечание:

var_export() не обрабатывает циклические ссылки, так как было бы почти невозможно сгенерировать интерпретируемый PHP-код для такого случая. Если необходимо производить какие-то действия с полным представлением массива или объекта, используйте функцию serialize().

Внимание

При экспорте объектов функцией var_export(), ведущий обратный слеш не добавляется в имя класса с указанным пространством имен для наилучшей обратной совместимости.

Замечание:

Для того, чтобы можно было использовать сгенерированный var_export() PHP-код, необходимо, чтобы все затронутые объекты реализовывали магический метод __set_state. Помните, что StdClass не реализует метод __set_state().

Смотрите также

  • print_r() - Выводит удобочитаемую информацию о переменной
  • serialize() - Генерирует пригодное для хранения представление переменной
  • var_dump() - Выводит информацию о переменной


Веб-сервисы

  • OAuth
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции OAuth
    • OAuth — Класс OAuth
    • OAuthProvider — Класс OAuthProvider
    • OAuthException — Класс OAuthException
  • SCA
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции SCA
  • SOAP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции SOAP
    • SoapClient — Класс SoapClient
    • SoapServer — Класс SoapServer
    • SoapFault — Класс SoapFault
    • SoapHeader — Класс SoapHeader
    • SoapParam — Класс SoapParam
    • SoapVar — Класс SoapVar
  • Yar — Еще один RPC-фреймворк
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Yar_Server — Класс Yar_Server
    • Yar_Client — Класс Yar_Client
    • Yar_Concurrent_Client — Класс Yar_Concurrent_Client
    • Yar_Server_Exception — Класс Yar_Server_Exception
    • Yar_Client_Exception — Класс Yar_Client_Exception
  • XML-RPC
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции XML-RPC


OAuth

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • FireEagle
  • Функции OAuth
    • oauth_get_sbs — Создать базовую строку подписи (Signature Base String)
    • oauth_urlencode — Кодирует URI в соответствии с RFC 3986
  • OAuth — Класс OAuth
    • OAuth::__construct — Создает новый объект OAuth
    • OAuth::__destruct — Деструктор
    • OAuth::disableDebug — Выключить подробную отладочную информацию
    • OAuth::disableRedirects — Выключить переадресацию
    • OAuth::disableSSLChecks — Выключить SSL проверки
    • OAuth::enableDebug — Включить подробную отладочную информацию
    • OAuth::enableRedirects — Включить переадресацию
    • OAuth::enableSSLChecks — Включить проверки SSL
    • OAuth::fetch — Извлечь защищенный ресурс OAuth
    • OAuth::generateSignature — Сгенерировать подпись
    • OAuth::getAccessToken — Получить токен доступа
    • OAuth::getCAPath — Получить информацию CA
    • OAuth::getLastResponse — Получить последний ответ
    • OAuth::getLastResponseHeaders — Получить заголовки последнего ответа
    • OAuth::getLastResponseInfo — Получить HTTP-информацию о последнем ответе
    • OAuth::getRequestHeader — Сгенерировать подпись заголовка OAuth
    • OAuth::getRequestToken — Извлечь токен запроса
    • OAuth::setAuthType — Установить тип авторизации
    • OAuth::setCAPath — Установить CA для пути и информации
    • OAuth::setNonce — Установить nonce для последующих запросов
    • OAuth::setRequestEngine — Используется для setRequestEngine
    • OAuth::setRSACertificate — Установить сертификат RSA
    • OAuth::setSSLChecks — Производить определенные проверки SSL для запроса
    • OAuth::setTimestamp — Установить метку времени
    • OAuth::setToken — Задать токен и его пароль
    • OAuth::setVersion — Установить версию OAuth
  • OAuthProvider — Класс OAuthProvider
    • OAuthProvider::addRequiredParameter — Добавить необходимые параметры
    • OAuthProvider::callconsumerHandler — Вызвать callback-функцию consumerNonceHandler
    • OAuthProvider::callTimestampNonceHandler — Вызвать callback-функцию timestampNonceHandler
    • OAuthProvider::calltokenHandler — Вызвать callback-функцию tokenNonceHandler
    • OAuthProvider::checkOAuthRequest — Проверка запроса oauth
    • OAuthProvider::__construct — Конструктор класса OAuthProvider
    • OAuthProvider::consumerHandler — Установить обработчик consumerHandler
    • OAuthProvider::generateToken — Генерация случайного токена
    • OAuthProvider::is2LeggedEndpoint — is2LeggedEndpoint
    • OAuthProvider::isRequestTokenEndpoint — Установка isRequestTokenEndpoint
    • OAuthProvider::removeRequiredParameter — Удалить требуемый параметр
    • OAuthProvider::reportProblem — Сообщить о проблеме
    • OAuthProvider::setParam — Установить параметр
    • OAuthProvider::setRequestTokenPath — Установить путь запроса токена
    • OAuthProvider::timestampNonceHandler — Установить обработчик timestampNonceHandler
    • OAuthProvider::tokenHandler — Установить обработчик tokenHandler
  • OAuthException — Класс OAuthException


Введение

Данное расширение предоставляет интерфейс взаимодействия потребителем и провайдером OAuth 1.0a. OAuth - это протокол авторизации, построенный поверх HTML, позволяющий приложениям безопасно обращаться к данным без необходимости хранения логинов и паролей.


Требования

PECL/oauth требует PHP 5.1 или новее, модуль hash и модуль pcre.

Дополнительно, PECL/oauth может понадобиться libcurl, если оно было указано во время компиляции. Если сконфигурировано с libcurl, то оно должно быть собрано с поддержкой HTTPS.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pear.php.net/package/oauth


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Большинство из этих констант затрагивают проблемы, указанные в том числе в официальных » сообщениях о проблемах OAuth. Однако заметьте, что хотя данные имена констант и имеют схожую схему имен, они характерны только для PHP.

OAUTH_SIG_METHOD_RSASHA1 (string)
Метод подписи OAuth RSA-SHA1.
OAUTH_SIG_METHOD_HMACSHA1 (string)

Метод подписи OAuth HMAC-SHA1.

OAUTH_SIG_METHOD_HMACSHA256 (string)
Метод подписи OAuth HMAC-SHA256.
OAUTH_AUTH_TYPE_AUTHORIZATION (string)

Эта константа указывает, что OAuth параметры будут помещены в заголовок Authorization.

OAUTH_AUTH_TYPE_NONE (string)

Эта константа обозначает NoAuth OAuth запрос.

OAUTH_AUTH_TYPE_URI (string)

Эта константа указывает, что OAuth параметры будут помещены в URI запроса. URI.

OAUTH_AUTH_TYPE_FORM (string)

Эта константа указывает, что OAuth параметры будут помещены в тело HTTP POST запроса.

OAUTH_HTTP_METHOD_GET (string)

Константа указывает на использование GET метода для OAuth запроса.

OAUTH_HTTP_METHOD_POST (string)

Константа указывает на использование POST метода для OAuth запроса.

OAUTH_HTTP_METHOD_PUT (string)

Константа указывает на использование PUT метода для OAuth запроса.

OAUTH_HTTP_METHOD_HEAD (string)

Константа указывает на использование HEAD метода для OAuth запроса.

OAUTH_HTTP_METHOD_DELETE (string)
Константа указывает на использование DELETE метода для OAuth запроса.
OAUTH_REQENGINE_STREAMS (integer)
Используется методом OAuth::setRequestEngine() для выбора потоков PHP в качестве движка, в противоположность константе OAUTH_REQENGINE_CURL, использующейся для выбора Curl.
OAUTH_REQENGINE_CURL (integer)
Используется методом OAuth::setRequestEngine() для выбора Curl в качестве движка, в противоположность константе OAUTH_REQENGINE_STREAMS, использующейся для выбора потоков PHP.
OAUTH_OK (integer)
Жизнь хороша.
OAUTH_BAD_NONCE (integer)
Значение oauth_nonce использовалось в предыдущем запросе, следовательно, не может быть использовано сейчас.
OAUTH_BAD_TIMESTAMP (integer)
Значение oauth_timestamp не было принято провайдером. В этом случае, ответ должен также содержать параметр oauth_acceptable_timestamps.
OAUTH_CONSUMER_KEY_UNKNOWN (integer)
oauth_consumer_key временно недоступен провайдеру. Например, если провайдер заблокировал потребителя.
OAUTH_CONSUMER_KEY_REFUSED (integer)
Ключ потребителя был отклонен.
OAUTH_INVALID_SIGNATURE (integer)
Значение oauth_signature недействительно, так как не совпадает с подписью, вычисленной провайдером.
OAUTH_TOKEN_USED (integer)
oauth_token был употреблен. Он уже использовался в предыдущем запросе/запросах и более не может быть использован.
OAUTH_TOKEN_EXPIRED (integer)
oauth_token устарел.
OAUTH_TOKEN_REVOKED (integer)
oauth_token был отозван и в дальнейшем не будет принят.
OAUTH_TOKEN_REJECTED (integer)
Провайдер не принял oauth_token. Причина неизвестна, но возможно заключается в том, что токен никогда не был выдан, или уже был использован, или устарел, или был забыт провайдером.
OAUTH_VERIFIER_INVALID (integer)
Некорректный oauth_verifier.
OAUTH_PARAMETER_ABSENT (integer)
Требуемый параметр не был получен. В этом случае, ответ должен также содержать параметр oauth_parameters_absent.
OAUTH_SIGNATURE_METHOD_REJECTED (integer)
oauth_signature_method не был принят провайдером.


  • « Предопределенные константы
  • FireEagle »
  • PHP Manual
  • OAuth
  • Примеры

Примеры

Содержание

  • FireEagle


FireEagle

<?php
$req_url = 'https://fireeagle.yahooapis.com/oauth/request_token';
$authurl = 'https://fireeagle.yahoo.net/oauth/authorize';
$acc_url = 'https://fireeagle.yahooapis.com/oauth/access_token';
$api_url = 'https://fireeagle.yahooapis.com/api/0.1';
$conskey = 'your_consumer_key';
$conssec = 'your_consumer_secret';

session_start();

// При state=1 следующий запрос должен включать oauth_token.
// Если не включает, то возвращаемся к 0
if(!isset($_GET['oauth_token']) && $_SESSION['state']==1) $_SESSION['state'] = 0;
try {
  $oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_URI);
  $oauth->enableDebug();
  if(!isset($_GET['oauth_token']) && !$_SESSION['state']) {
    $request_token_info = $oauth->getRequestToken($req_url);
    $_SESSION['secret'] = $request_token_info['oauth_token_secret'];
    $_SESSION['state'] = 1;
    header('Location: '.$authurl.'?oauth_token='.$request_token_info['oauth_token']);
    exit;
  } else if($_SESSION['state']==1) {
    $oauth->setToken($_GET['oauth_token'],$_SESSION['secret']);
    $access_token_info = $oauth->getAccessToken($acc_url);
    $_SESSION['state'] = 2;
    $_SESSION['token'] = $access_token_info['oauth_token'];
    $_SESSION['secret'] = $access_token_info['oauth_token_secret'];
  }
  $oauth->setToken($_SESSION['token'],$_SESSION['secret']);
  $oauth->fetch("$api_url/user.json");
  $json = json_decode($oauth->getLastResponse());
  print_r($json);
} catch(OAuthException $E) {
  print_r($E);
}
?>


Функции OAuth

Содержание

  • oauth_get_sbs — Создать базовую строку подписи (Signature Base String)
  • oauth_urlencode — Кодирует URI в соответствии с RFC 3986


Создать базовую строку подписи (Signature Base String)

  • « Функции OAuth
  • oauth_urlencode »
  • PHP Manual
  • Функции OAuth
  • Создать базовую строку подписи (Signature Base String)

oauth_get_sbs

(PECL OAuth >=0.99.7)

oauth_get_sbs — Создать базовую строку подписи (Signature Base String)

Описание

oauth_get_sbs ( string $http_method , string $uri [, array $request_parameters ] ) : string

Создать базовую строку подписи (Signature Base String) в соответствии с pecl/oauth.

Список параметров

http_method

HTTP-метод.

uri

URI для кодирования.

request_parameters

Массив параметров запроса.

Возвращаемые значения

Возвращает базовую строку подписи (Signature Base String).


Кодирует URI в соответствии с RFC 3986

  • « oauth_get_sbs
  • OAuth »
  • PHP Manual
  • Функции OAuth
  • Кодирует URI в соответствии с RFC 3986

oauth_urlencode

(PECL OAuth >=0.99.2)

oauth_urlencode — Кодирует URI в соответствии с RFC 3986

Описание

oauth_urlencode ( string $uri ) : string

Кодирует URI в соответствии с » RFC 3986.

Список параметров

uri

URI для кодирования.

Возвращаемые значения

Возвращает строку закодированную в соответствии с » RFC 3986.


Класс OAuth

(PECL OAuth >= 0.99.1)

Введение

Модуль OAuth предоставляет простой интерфейс для взаимодействия с провайдерами данных, использующих спецификацию OAuth HTTP для защиты приватных ресурсов.

Обзор классов

OAuth {
/* Свойства */
public $debug ;
public $sslChecks ;
public $debugInfo ;
/* Методы */
public __construct ( string $consumer_key , string $consumer_secret [, string $signature_method = OAUTH_SIG_METHOD_HMACSHA1 [, int $auth_type = 0 ]] )
public __destruct ( void ) : void
public disableDebug ( void ) : bool
public disableRedirects ( void ) : bool
public disableSSLChecks ( void ) : bool
public enableDebug ( void ) : bool
public enableRedirects ( void ) : bool
public enableSSLChecks ( void ) : bool
public fetch ( string $protected_resource_url [, array $extra_parameters [, string $http_method [, array $http_headers ]]] ) : mixed
public generateSignature ( string $http_method , string $url [, mixed $extra_parameters ] ) : string
public getAccessToken ( string $access_token_url [, string $auth_session_handle [, string $verifier_token [, string $http_method ]]] ) : array
public getCAPath ( void ) : array
public getLastResponse ( void ) : string
public getLastResponseHeaders ( void ) : string
public getLastResponseInfo ( void ) : array
public getRequestHeader ( string $http_method , string $url [, mixed $extra_parameters ] ) : string
public getRequestToken ( string $request_token_url [, string $callback_url [, string $http_method ]] ) : array
public setAuthType ( int $auth_type ) : bool
public setCAPath ([ string $ca_path [, string $ca_info ]] ) : mixed
public setNonce ( string $nonce ) : mixed
public setRequestEngine ( int $reqengine ) : void
public setRSACertificate ( string $cert ) : mixed
public setSSLChecks ( int $sslcheck ) : bool
public setTimestamp ( string $timestamp ) : mixed
public setToken ( string $token , string $token_secret ) : bool
public setVersion ( string $version ) : bool
}

Свойства

debug

sslChecks

debugInfo

Содержание

  • OAuth::__construct — Создает новый объект OAuth
  • OAuth::__destruct — Деструктор
  • OAuth::disableDebug — Выключить подробную отладочную информацию
  • OAuth::disableRedirects — Выключить переадресацию
  • OAuth::disableSSLChecks — Выключить SSL проверки
  • OAuth::enableDebug — Включить подробную отладочную информацию
  • OAuth::enableRedirects — Включить переадресацию
  • OAuth::enableSSLChecks — Включить проверки SSL
  • OAuth::fetch — Извлечь защищенный ресурс OAuth
  • OAuth::generateSignature — Сгенерировать подпись
  • OAuth::getAccessToken — Получить токен доступа
  • OAuth::getCAPath — Получить информацию CA
  • OAuth::getLastResponse — Получить последний ответ
  • OAuth::getLastResponseHeaders — Получить заголовки последнего ответа
  • OAuth::getLastResponseInfo — Получить HTTP-информацию о последнем ответе
  • OAuth::getRequestHeader — Сгенерировать подпись заголовка OAuth
  • OAuth::getRequestToken — Извлечь токен запроса
  • OAuth::setAuthType — Установить тип авторизации
  • OAuth::setCAPath — Установить CA для пути и информации
  • OAuth::setNonce — Установить nonce для последующих запросов
  • OAuth::setRequestEngine — Используется для setRequestEngine
  • OAuth::setRSACertificate — Установить сертификат RSA
  • OAuth::setSSLChecks — Производить определенные проверки SSL для запроса
  • OAuth::setTimestamp — Установить метку времени
  • OAuth::setToken — Задать токен и его пароль
  • OAuth::setVersion — Установить версию OAuth


Создает новый объект OAuth

  • « OAuth
  • OAuth::__destruct »
  • PHP Manual
  • OAuth
  • Создает новый объект OAuth

OAuth::__construct

(PECL OAuth >= 0.99.1)

OAuth::__construct — Создает новый объект OAuth

Описание

public OAuth::__construct ( string $consumer_key , string $consumer_secret [, string $signature_method = OAUTH_SIG_METHOD_HMACSHA1 [, int $auth_type = 0 ]] )

Создает новый объект OAuth

Список параметров

consumer_key

Ключ потребителя, предоставленный сервис провайдером.

consumer_secret

Секрет потребителя, предоставленный сервис провайдером.

signature_method

Этот необязательный параметр определяет, какой метод подписи будет использован. По умолчанию используется OAUTH_SIG_METHOD_HMACSHA1 (HMAC-SHA1).

auth_type

Этот необязательный параметр определяет, как передавать OAuth параметры потребителю. По умолчанию используется OAUTH_AUTH_TYPE_AUTHORIZATION (в заголовке Authorization).


Деструктор

  • « OAuth::__construct
  • OAuth::disableDebug »
  • PHP Manual
  • OAuth
  • Деструктор

OAuth::__destruct

(PECL OAuth >= 0.99.9)

OAuth::__destruct — Деструктор

Описание

public OAuth::__destruct ( void ) : void

Деструктор.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • OAuth::__construct() - Создает новый объект OAuth


Выключить подробную отладочную информацию

  • « OAuth::__destruct
  • OAuth::disableRedirects »
  • PHP Manual
  • OAuth
  • Выключить подробную отладочную информацию

OAuth::disableDebug

(PECL OAuth >= 0.99.3)

OAuth::disableDebug — Выключить подробную отладочную информацию

Описание

public OAuth::disableDebug ( void ) : bool

Выключает подробную информацию о запросе (по умолчанию выключено). Альтернативно можно установить свойству debug значение FALSE, чтобы выключить режим отладки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE

Список изменений

Версия | Описание
0.99.8 | Было добавлено похожее свойство debug.

Смотрите также

  • OAuth::enableDebug() - Включить подробную отладочную информацию


Выключить переадресацию

  • « OAuth::disableDebug
  • OAuth::disableSSLChecks »
  • PHP Manual
  • OAuth
  • Выключить переадресацию

OAuth::disableRedirects

(PECL OAuth >= 0.99.9)

OAuth::disableRedirects — Выключить переадресацию

Описание

public OAuth::disableRedirects ( void ) : bool

Запретить автоматическую переадресацию, тем самым разрешая запросу быть переадресованным вручную.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE

Смотрите также

  • OAuth::enableRedirects() - Включить переадресацию


Выключить SSL проверки

  • « OAuth::disableRedirects
  • OAuth::enableDebug »
  • PHP Manual
  • OAuth
  • Выключить SSL проверки

OAuth::disableSSLChecks

(PECL OAuth >= 0.99.5)

OAuth::disableSSLChecks — Выключить SSL проверки

Описание

public OAuth::disableSSLChecks ( void ) : bool

Выключает обычные проверки клиентских и хост сертификатов. Не предназначено для продуктивной среды. Альтернативно можно установить полю sslChecks значение FALSE, чтобы выключить SSL проверки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE

Список изменений

Версия | Описание
0.99.8 | Было добавлено поле sslChecks

Смотрите также

  • OAuth::enableSSLChecks() - Включить проверки SSL


Включить подробную отладочную информацию

  • « OAuth::disableSSLChecks
  • OAuth::enableRedirects »
  • PHP Manual
  • OAuth
  • Включить подробную отладочную информацию

OAuth::enableDebug

(PECL OAuth >= 0.99.3)

OAuth::enableDebug — Включить подробную отладочную информацию

Описание

public OAuth::enableDebug ( void ) : bool

Включает подробную информацию о запросе, полезную для отладки. Отладочная информация хранится в поле debugInfo. Альтернативно можно установить полю debug значение non-FALSE, чтобы включить режим отладки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE

Список изменений

Версия | Описание
0.99.8 | Были добавлены поля debug и debugInfo

Смотрите также

  • OAuth::disableDebug() - Выключить подробную отладочную информацию


Включить переадресацию

  • « OAuth::enableDebug
  • OAuth::enableSSLChecks »
  • PHP Manual
  • OAuth
  • Включить переадресацию

OAuth::enableRedirects

(PECL OAuth >= 0.99.9)

OAuth::enableRedirects — Включить переадресацию

Описание

public OAuth::enableRedirects ( void ) : bool

Автоматически переходить и подписывать при разрешенной по умолчанию переадресации.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE

Смотрите также

  • OAuth::disableRedirects() - Выключить переадресацию


Включить проверки SSL

  • « OAuth::enableRedirects
  • OAuth::fetch »
  • PHP Manual
  • OAuth
  • Включить проверки SSL

OAuth::enableSSLChecks

(PECL OAuth >= 0.99.5)

OAuth::enableSSLChecks — Включить проверки SSL

Описание

public OAuth::enableSSLChecks ( void ) : bool

Включить обычные проверки сертификата SSL конечной точки и хоста (включено по умолчанию). Также можно установить sslChecks в значение не-FALSE, чтобы отключить проверки SSL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE

Список изменений

Версия | Описание
0.99.8 | Добавлено свойство sslChecks

Смотрите также

  • OAuth::disableSSLChecks() - Выключить SSL проверки


Извлечь защищенный ресурс OAuth

  • « OAuth::enableSSLChecks
  • OAuth::generateSignature »
  • PHP Manual
  • OAuth
  • Извлечь защищенный ресурс OAuth

OAuth::fetch

(PECL OAuth >= 0.99.1)

OAuth::fetch — Извлечь защищенный ресурс OAuth

Описание

public OAuth::fetch ( string $protected_resource_url [, array $extra_parameters [, string $http_method [, array $http_headers ]]] ) : mixed

Извлечь ресурс.

Список параметров

protected_resource_url

URL защищенного ресурса OAuth.

extra_parameters

Дополнительные параметры запроса ресурса.

http_method

Один из методов OAUTH_HTTP_METHOD_*. Смотрите константы OAUTH, которые включают GET, POST, PUT, HEAD и DELETE.

HEAD (OAUTH_HTTP_METHOD_HEAD) может быть полезен для изучения информации перед произведением запроса (если учетные данные OAuth в заголовке Authorization).

http_headers

Клиентские заголовки HTTP (такие как User-Agent, Accept и т.д.)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
1.0.0 | Раньше при ошибке возвращался NULL вместо FALSE.
0.99.5 | Добавлен параметр http_method
0.99.8 | Добавлен параметр http_headers

Примеры

Пример #1 Пример использования OAuth::fetch()

<?php
try {
    $oauth = new OAuth("consumer_key","consumer_secret",OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_AUTHORIZATION);
    $oauth->setToken("access_token","access_token_secret");

    $oauth->fetch("http://photos.example.net/photo?file=vacation.jpg");

    $response_info = $oauth->getLastResponseInfo();
    header("Content-Type: {$response_info["content_type"]}");
    echo $oauth->getLastResponse();
} catch(OAuthException $E) {
    echo "Поймали исключение!\n";
    echo "Ответ: ". $E->lastResponse . "\n";
}
?>

Смотрите также

  • OAuth::getLastResponse() - Получить последний ответ
  • OAuth::getLastResponseInfo() - Получить HTTP-информацию о последнем ответе
  • OAuth::setToken() - Задать токен и его пароль


Сгенерировать подпись

  • « OAuth::fetch
  • OAuth::getAccessToken »
  • PHP Manual
  • OAuth
  • Сгенерировать подпись

OAuth::generateSignature

(Информация о версии неизвестна, возможно, только в Git)

OAuth::generateSignature — Сгенерировать подпись

Описание

public OAuth::generateSignature ( string $http_method , string $url [, mixed $extra_parameters ] ) : string

Генерирует подпись на основе метода HTTP, URL и дополнительных параметров.

Список параметров

http_method

HTTP-метод для запроса

url

URL запроса

extra_parameters

Строка или массив дополнительных параметров.

Возвращаемые значения

Строка с подписью или FALSE в случае возникновения ошибки


Получить токен доступа

  • « OAuth::generateSignature
  • OAuth::getCAPath »
  • PHP Manual
  • OAuth
  • Получить токен доступа

OAuth::getAccessToken

(PECL OAuth >= 0.99.1)

OAuth::getAccessToken — Получить токен доступа

Описание

public OAuth::getAccessToken ( string $access_token_url [, string $auth_session_handle [, string $verifier_token [, string $http_method ]]] ) : array

Получает токен доступа, его пароль и все дополнительные параметры ответа от провайдера сервиса.

Список параметров

access_token_url

URL до API выдачи токена доступа.

auth_session_handle

Обработчик сессии авторизации. Этот параметр никак не описывается в спецификации OAuth 1.0, но множеством провайдеров реализуется. Более подробно читайте по ссылке » ScalableOAuth.

verifier_token

Для провайдеров с поддержкой 1.0a, параметр verifier_token должен быть задан при обмене токена запроса на токен доступа. Если verifier_token присутствует в $_GET или $_POST, то он будет задан автоматически и вызывающей стороне не нужно явно его задавать в параметре verifier_token (обычно если токен доступа обменивается с помощью oauth_callback URL). Более подробно читайте по ссылке » ScalableOAuth.

http_method

Метод HTTP. Например GET или POST.

Возвращаемые значения

Возвращает массив с разобранным ответом OAuth, либо FALSE.

Список изменений

Версия | Описание
1.0.0 | Раньше при ошибке возвращался NULL вместо FALSE.
0.99.9 | Добавлен параметр verifier_token

Примеры

Пример #1 Пример использования OAuth::getAccessToken()

<?php
try {
    $oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
    $oauth->setToken($request_token,$request_token_secret);
    $access_token_info = $oauth->getAccessToken("https://example.com/oauth/access_token");
    if(!empty($access_token_info)) {
        print_r($access_token_info);
    } else {
        print "Не удалось получить токен доступа, ответ был: " . $oauth->getLastResponse();
    }
} catch(OAuthException $E) {
    echo "Ответ: ". $E->lastResponse . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [oauth_token] => some_token
    [oauth_token_secret] => some_token_secret
)

Смотрите также

  • OAuth::getLastResponse() - Получить последний ответ
  • OAuth::getLastResponseInfo() - Получить HTTP-информацию о последнем ответе
  • OAuth::setToken() - Задать токен и его пароль


Получить информацию CA

  • « OAuth::getAccessToken
  • OAuth::getLastResponse »
  • PHP Manual
  • OAuth
  • Получить информацию CA

OAuth::getCAPath

(PECL OAuth >= 0.99.8)

OAuth::getCAPath — Получить информацию CA

Описание

public OAuth::getCAPath ( void ) : array

Возвращает информацию о центре сертификации, включающую ca_path и ca_info, установленные OAuth::setCaPath().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ассоциативный массив с информацией о центре сертификации с ключами ca_path и ca_info.

Смотрите также

  • OAuth::setCAPath() - Установить CA для пути и информации
  • OAuth::getLastResponseInfo() - Получить HTTP-информацию о последнем ответе


Получить последний ответ

  • « OAuth::getCAPath
  • OAuth::getLastResponseHeaders »
  • PHP Manual
  • OAuth
  • Получить последний ответ

OAuth::getLastResponse

(PECL OAuth >= 0.99.1)

OAuth::getLastResponse — Получить последний ответ

Описание

public OAuth::getLastResponse ( void ) : string

Возвращает сырое представление последнего полученного ответа.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку с последним ответом.

Смотрите также

  • OAuth::getLastResponseInfo() - Получить HTTP-информацию о последнем ответе
  • OAuth::fetch() - Извлечь защищенный ресурс OAuth


Получить заголовки последнего ответа

  • « OAuth::getLastResponse
  • OAuth::getLastResponseInfo »
  • PHP Manual
  • OAuth
  • Получить заголовки последнего ответа

OAuth::getLastResponseHeaders

(Информация о версии неизвестна, возможно, только в Git)

OAuth::getLastResponseHeaders — Получить заголовки последнего ответа

Описание

public OAuth::getLastResponseHeaders ( void ) : string

Возвращает заголовки последнего ответа.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка с заголовками последнего ответа или FALSE в случае возникновения ошибки


Получить HTTP-информацию о последнем ответе

  • « OAuth::getLastResponseHeaders
  • OAuth::getRequestHeader »
  • PHP Manual
  • OAuth
  • Получить HTTP-информацию о последнем ответе

OAuth::getLastResponseInfo

(PECL OAuth >= 0.99.1)

OAuth::getLastResponseInfo — Получить HTTP-информацию о последнем ответе

Описание

public OAuth::getLastResponseInfo ( void ) : array

Возвращает HTTP-информацию о последнем ответе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с информацией по последнему запросу. Можно использовать константы curl_getinfo().

Смотрите также

  • OAuth::fetch() - Извлечь защищенный ресурс OAuth
  • OAuth::getLastResponse() - Получить последний ответ


Сгенерировать подпись заголовка OAuth

  • « OAuth::getLastResponseInfo
  • OAuth::getRequestToken »
  • PHP Manual
  • OAuth
  • Сгенерировать подпись заголовка OAuth

OAuth::getRequestHeader

(Информация о версии неизвестна, возможно, только в Git)

OAuth::getRequestHeader — Сгенерировать подпись заголовка OAuth

Описание

public OAuth::getRequestHeader ( string $http_method , string $url [, mixed $extra_parameters ] ) : string

Генерирует подпись заголовка OAuth на основе финального метода HTTP, URL и дополнительных параметров.

Список параметров

http_method

HTTP-метод.

url

URL запроса.

extra_parameters

Строка или массив с дополнительными параметрами.

Возвращаемые значения

Строка с заголовком запроса или FALSE в случае возникновения ошибки


Извлечь токен запроса

  • « OAuth::getRequestHeader
  • OAuth::setAuthType »
  • PHP Manual
  • OAuth
  • Извлечь токен запроса

OAuth::getRequestToken

(PECL OAuth >= 0.99.1)

OAuth::getRequestToken — Извлечь токен запроса

Описание

public OAuth::getRequestToken ( string $request_token_url [, string $callback_url [, string $http_method ]] ) : array

Получить токен запроса, его пароль и дополнительные параметры ответа от провайдера сервиса.

Список параметров

request_token_url

URL к API токена запроса.

callback_url

URL callback-функции OAuth. Если callback_url задан пустым значением, то он установится как "oob" решения OAuth 2009.1.

http_method

HTTP-метод, например GET или POST.

Возвращаемые значения

Возвращает массив обработанного запроса OAuth или FALSE.

Список изменений

Версия | Описание
1.0.0 | Раньше при ошибке возвращался NULL вместо FALSE.
0.99.9 | Добавлен параметр callback_url

Примеры

Пример #1 Пример использования OAuth::getRequestToken()

<?php
try {
    $oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
    $request_token_info = $oauth->getRequestToken("https://example.com/oauth/request_token");
    if(!empty($request_token_info)) {
        print_r($request_token_info);
    } else {
        print "Не удалось получить токен доступа, ответ был: " . $oauth->getLastResponse();
    }
} catch(OAuthException $E) {
    echo "Ответ: ". $E->lastResponse . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [oauth_token] => some_token
    [oauth_token_secret] => some_token_secret
)

Смотрите также

  • OAuth::getLastResponse() - Получить последний ответ
  • OAuth::getLastResponseInfo() - Получить HTTP-информацию о последнем ответе


Установить тип авторизации

  • « OAuth::getRequestToken
  • OAuth::setCAPath »
  • PHP Manual
  • OAuth
  • Установить тип авторизации

OAuth::setAuthType

(PECL OAuth >= 0.99.1)

OAuth::setAuthType — Установить тип авторизации

Описание

public OAuth::setAuthType ( int $auth_type ) : bool

Устанавливает, каким образом должны передаваться параметры OAuth.

Список параметров

auth_type

auth_type может быть задан одним из следующих флагов (в порядке убывания предпочтения согласно разделу 5.2 OAuth 1.0):

OAUTH_AUTH_TYPE_AUTHORIZATION
Передавать параметры OAuth HTTP-заголовке Authorization.
OAUTH_AUTH_TYPE_FORM
Добавить параметры OAuth в тело запроса HTTP POST.
OAUTH_AUTH_TYPE_URI
Добавить параметры OAuth в URI запроса.
OAUTH_AUTH_TYPE_NONE
Не передавать.

Возвращаемые значения

Возвращает TRUE или FALSE (например, если параметр auth_type задан некорректно.)

Список изменений

Версия | Описание
1.0.0 | Раньше при ошибке возвращался NULL вместо FALSE.


Установить CA для пути и информации

  • « OAuth::setAuthType
  • OAuth::setNonce »
  • PHP Manual
  • OAuth
  • Установить CA для пути и информации

OAuth::setCAPath

(PECL OAuth >= 0.99.8)

OAuth::setCAPath — Установить CA для пути и информации

Описание

public OAuth::setCAPath ([ string $ca_path [, string $ca_info ]] ) : mixed

Установить центр сертификации (CA) для пути и информации.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ca_path

CA пути.

ca_info

CA информации.

Возвращаемые значения

Возвращает TRUE или FALSE, если любой из параметров ca_path или ca_info задан некорректно.

Список изменений

Версия | Описание
1.0.0 | Раньше при ошибке возвращался NULL вместо FALSE.

Смотрите также

  • OAuth::getCaPath() - Получить информацию CA


Установить nonce для последующих запросов

  • « OAuth::setCAPath
  • OAuth::setRequestEngine »
  • PHP Manual
  • OAuth
  • Установить nonce для последующих запросов

OAuth::setNonce

(PECL OAuth >= 0.99.1)

OAuth::setNonce — Установить nonce для последующих запросов

Описание

public OAuth::setNonce ( string $nonce ) : mixed

Устанавливает nonce для последующих запросов.

Список параметров

nonce

Значение oauth_nonce.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE, если параметр nonce задан некорректно.

Список изменений

Версия | Описание
1.0.0 | Раньше при ошибке возвращался NULL вместо FALSE.

Смотрите также

  • OAuth::setToken() - Задать токен и его пароль
  • OAuth::setAuthType() - Установить тип авторизации
  • OAuth::setVersion() - Установить версию OAuth


Используется для setRequestEngine

  • « OAuth::setNonce
  • OAuth::setRSACertificate »
  • PHP Manual
  • OAuth
  • Используется для setRequestEngine

OAuth::setRequestEngine

(PECL OAuth >= 1.0.0)

OAuth::setRequestEngine — Используется для setRequestEngine

Описание

public OAuth::setRequestEngine ( int $reqengine ) : void

Устанавливает Request Engine (механизм запросов), который будет отсылать HTTP-запросы.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

reqengine

Выбранный механизм запросов. Задайте OAUTH_REQENGINE_STREAMS, если хотите использовать потоки PHP, или OAUTH_REQENGINE_CURL для использования Curl.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение OAuthException при выборе некорректного механизма запросов.

Примеры

Пример #1 Пример использования OAuth::setRequestEngine()

<?php
$consumer = new OAuth();

$consumer->setRequestEngine(OAUTH_REQENGINE_STREAMS);
?>

Смотрите также

  • Curl
  • потоки PHP
  • OAuthException


Установить сертификат RSA

  • « OAuth::setRequestEngine
  • OAuth::setSSLChecks »
  • PHP Manual
  • OAuth
  • Установить сертификат RSA

OAuth::setRSACertificate

(PECL OAuth >= 1.0.0)

OAuth::setRSACertificate — Установить сертификат RSA

Описание

public OAuth::setRSACertificate ( string $cert ) : mixed

Устанавливает сертификат RSA.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

cert

Сертификат RSA.

Возвращаемые значения

Возвращает TRUE или FALSE (например, если задан некорректный сертификат RSA)

Список изменений

Версия | Описание
1.0.0 | Раньше при ошибке возвращался NULL вместо FALSE.

Примеры

Пример #1 Пример использования OAuth::setRsaCertificate()

<?php
$consume = new OAuth('1234', '', OAUTH_SIG_METHOD_RSASHA1);

$consume->setRSACertificate(file_get_contents('test.pem'));
?>

Смотрите также

  • OAuth::setCaPath() - Установить CA для пути и информации


Производить определенные проверки SSL для запроса

  • « OAuth::setRSACertificate
  • OAuth::setTimestamp »
  • PHP Manual
  • OAuth
  • Производить определенные проверки SSL для запроса

OAuth::setSSLChecks

(Информация о версии неизвестна, возможно, только в Git)

OAuth::setSSLChecks — Производить определенные проверки SSL для запроса

Описание

public OAuth::setSSLChecks ( int $sslcheck ) : bool

Производить определенные проверки SSL для запроса.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

sslcheck

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установить метку времени

  • « OAuth::setSSLChecks
  • OAuth::setToken »
  • PHP Manual
  • OAuth
  • Установить метку времени

OAuth::setTimestamp

(PECL OAuth >= 1.0.0)

OAuth::setTimestamp — Установить метку времени

Описание

public OAuth::setTimestamp ( string $timestamp ) : mixed

Установить метку вермени OAuth для последующих запросов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

timestamp

Метка времени.

Возвращаемые значения

Возвращает TRUE или FALSE, если параметр timestamp задан некорректно.

Список изменений

Версия | Описание
1.0.0 | Раньше при ошибке возвращался NULL вместо FALSE.

Смотрите также

  • OAuth::setNonce() - Установить nonce для последующих запросов


Задать токен и его пароль

  • « OAuth::setTimestamp
  • OAuth::setVersion »
  • PHP Manual
  • OAuth
  • Задать токен и его пароль

OAuth::setToken

(PECL OAuth >= 0.99.1)

OAuth::setToken — Задать токен и его пароль

Описание

public OAuth::setToken ( string $token , string $token_secret ) : bool

Устанавливает токен и его пароль для последующих запросов.

Список параметров

token

Токен OAuth.

token_secret

Пароль токена OAuth.

Возвращаемые значения

TRUE

Примеры

Пример #1 Пример использования OAuth::setToken()

<?php
$oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
$oauth->setToken("token","token-secret");
?>


Установить версию OAuth

  • « OAuth::setToken
  • OAuthProvider »
  • PHP Manual
  • OAuth
  • Установить версию OAuth

OAuth::setVersion

(PECL OAuth >= 0.99.1)

OAuth::setVersion — Установить версию OAuth

Описание

public OAuth::setVersion ( string $version ) : bool

Установить версию OAuth для последующих запросов

Список параметров

version

Версия OAuth, по умолчанию "1.0"

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Класс OAuthProvider

(PECL OAuth >= 1.0.0)

Введение

Класс управления провайдером OAuth.

Также смотрите подробное описание на внешнем ресурсе » Написание сервиса провайдера OAuth, в котором описывается практический подход предоставления такого сервиса. Также посмотрите » примеры провайдера OAuth в исходных кодах модуля OAuth.

Обзор классов

OAuthProvider {
/* Methods */
final public addRequiredParameter ( string $req_params ) : bool
public callconsumerHandler ( void ) : void
public callTimestampNonceHandler ( void ) : void
public calltokenHandler ( void ) : void
public checkOAuthRequest ([ string $uri [, string $method ]] ) : void
public __construct ([ array $params_array ] )
public consumerHandler ( callable $callback_function ) : void
final public static generateToken ( int $size [, bool $strong = FALSE ] ) : string
public is2LeggedEndpoint ( mixed $params_array ) : void
public isRequestTokenEndpoint ( bool $will_issue_request_token ) : void
final public removeRequiredParameter ( string $req_params ) : bool
final public static reportProblem ( string $oauthexception [, bool $send_headers = TRUE ] ) : string
final public setParam ( string $param_key [, mixed $param_val ] ) : bool
final public setRequestTokenPath ( string $path ) : bool
public timestampNonceHandler ( callable $callback_function ) : void
public tokenHandler ( callable $callback_function ) : void
}

Содержание

  • OAuthProvider::addRequiredParameter — Добавить необходимые параметры
  • OAuthProvider::callconsumerHandler — Вызвать callback-функцию consumerNonceHandler
  • OAuthProvider::callTimestampNonceHandler — Вызвать callback-функцию timestampNonceHandler
  • OAuthProvider::calltokenHandler — Вызвать callback-функцию tokenNonceHandler
  • OAuthProvider::checkOAuthRequest — Проверка запроса oauth
  • OAuthProvider::__construct — Конструктор класса OAuthProvider
  • OAuthProvider::consumerHandler — Установить обработчик consumerHandler
  • OAuthProvider::generateToken — Генерация случайного токена
  • OAuthProvider::is2LeggedEndpoint — is2LeggedEndpoint
  • OAuthProvider::isRequestTokenEndpoint — Установка isRequestTokenEndpoint
  • OAuthProvider::removeRequiredParameter — Удалить требуемый параметр
  • OAuthProvider::reportProblem — Сообщить о проблеме
  • OAuthProvider::setParam — Установить параметр
  • OAuthProvider::setRequestTokenPath — Установить путь запроса токена
  • OAuthProvider::timestampNonceHandler — Установить обработчик timestampNonceHandler
  • OAuthProvider::tokenHandler — Установить обработчик tokenHandler


Добавить необходимые параметры

  • « OAuthProvider
  • OAuthProvider::callconsumerHandler »
  • PHP Manual
  • OAuthProvider
  • Добавить необходимые параметры

OAuthProvider::addRequiredParameter

(PECL OAuth >= 1.0.0)

OAuthProvider::addRequiredParameter — Добавить необходимые параметры

Описание

final public OAuthProvider::addRequiredParameter ( string $req_params ) : bool

Добавляет необходимые параметры провайдера oauth.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

req_params

Параметры.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OAuthProvider::removeRequiredParameter() - Удалить требуемый параметр


Вызвать callback-функцию consumerNonceHandler

  • « OAuthProvider::addRequiredParameter
  • OAuthProvider::callTimestampNonceHandler »
  • PHP Manual
  • OAuthProvider
  • Вызвать callback-функцию consumerNonceHandler

OAuthProvider::callconsumerHandler

(Информация о версии неизвестна, возможно, только в Git)

OAuthProvider::callconsumerHandler — Вызвать callback-функцию consumerNonceHandler

Описание

public OAuthProvider::callconsumerHandler ( void ) : void

Вызвать зарегистрированную callback-функцию, которая была задана с помощью OAuthProvider::consumerHandler().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Если callback-функция не может быть вызвана или отсутствует, то генерируется ошибка уровня E_ERROR.

Смотрите также

  • OAuthProvider::consumerHandler() - Установить обработчик consumerHandler


Вызвать callback-функцию timestampNonceHandler

  • « OAuthProvider::callconsumerHandler
  • OAuthProvider::calltokenHandler »
  • PHP Manual
  • OAuthProvider
  • Вызвать callback-функцию timestampNonceHandler

OAuthProvider::callTimestampNonceHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::callTimestampNonceHandler — Вызвать callback-функцию timestampNonceHandler

Описание

public OAuthProvider::callTimestampNonceHandler ( void ) : void

Вызвать зарегистрированную callback-функцию обработчика метки времени, которая была задана с помощью OAuthProvider::timestampNonceHandler().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Если callback-функция не может быть вызвана или отсутствует, то генерируется ошибка уровня E_ERROR.

Смотрите также

  • OAuthProvider::timestampNonceHandler() - Установить обработчик timestampNonceHandler


Вызвать callback-функцию tokenNonceHandler

  • « OAuthProvider::callTimestampNonceHandler
  • OAuthProvider::checkOAuthRequest »
  • PHP Manual
  • OAuthProvider
  • Вызвать callback-функцию tokenNonceHandler

OAuthProvider::calltokenHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::calltokenHandler — Вызвать callback-функцию tokenNonceHandler

Описание

public OAuthProvider::calltokenHandler ( void ) : void

Вызвать зарегистрированную callback-функцию обработчика токена, которая была задана с помощью OAuthProvider::tokenHandler().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Если callback-функция не может быть вызвана или отсутствует, то генерируется ошибка уровня E_ERROR.

Смотрите также

  • OAuthProvider::tokenHandler() - Установить обработчик tokenHandler


Проверка запроса oauth

  • « OAuthProvider::calltokenHandler
  • OAuthProvider::__construct »
  • PHP Manual
  • OAuthProvider
  • Проверка запроса oauth

OAuthProvider::checkOAuthRequest

(PECL OAuth >= 1.0.0)

OAuthProvider::checkOAuthRequest — Проверка запроса oauth

Описание

public OAuthProvider::checkOAuthRequest ([ string $uri [, string $method ]] ) : void

Проверяет запрос OAuth.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

uri

Необязательный URI, или конечная точка.

method

Необязательный параметр, определяющий метод HTTP. Одна из OAUTH_HTTP_METHOD_* констант OAuth.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Вызывает ошибку уровня E_ERROR если HTTP-метод задан некорректно.

Смотрите также

  • OAuthProvider::reportProblem() - Сообщить о проблеме


Конструктор класса OAuthProvider

  • « OAuthProvider::checkOAuthRequest
  • OAuthProvider::consumerHandler »
  • PHP Manual
  • OAuthProvider
  • Конструктор класса OAuthProvider

OAuthProvider::__construct

(PECL OAuth >= 1.0.0)

OAuthProvider::__construct — Конструктор класса OAuthProvider

Описание

public OAuthProvider::__construct ([ array $params_array ] )

Создает объект класса OAuthProvider.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

params_array

Установка этих необязательных параметров ограничена CLI SAPI.

Возвращаемые значения

Объект класса OAuthProvider.

Примеры

Пример #1 Пример использования OAuthProvider::__construct()

<?php
try {

    $op = new OAuthProvider();

    // Используем пользовательские callback-функции
    $op->consumerHandler(array($this, 'lookupConsumer'));
    $op->timestampNonceHandler(array($this, 'timestampNonceChecker'));
    $op->tokenHandler(array($this, 'myTokenHandler'));

    // Игнорируем параметр foo_uri
    $op->setParam('foo_uri', NULL);

    // Для данной конечной точки токен не нужен
    $op->setRequestTokenPath('/v1/oauth/request_token');

    $op->checkOAuthRequest();

} catch (OAuthException $e) {

    echo OAuthProvider::reportProblem($e);
}
?>

Смотрите также

  • OAuthProvider::setParam() - Установить параметр


Установить обработчик consumerHandler

  • « OAuthProvider::__construct
  • OAuthProvider::generateToken »
  • PHP Manual
  • OAuthProvider
  • Установить обработчик consumerHandler

OAuthProvider::consumerHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::consumerHandler — Установить обработчик consumerHandler

Описание

public OAuthProvider::consumerHandler ( callable $callback_function ) : void

Задает callback-функцию обработчика, которая в дальнейшем будет вызываться OAuthProvider::callConsumerHandler().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

callback_function

Функция типа callable.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования OAuthProvider::consumerHandler()

<?php
function lookupConsumer($provider) {

    if ($provider->consumer_key === 'unknown') {
        return OAUTH_CONSUMER_KEY_UNKNOWN;
    } else if($provider->consumer_key == 'blacklisted' || $provider->consumer_key === 'throttled') {
        return OAUTH_CONSUMER_KEY_REFUSED;
    }

    $provider->consumer_secret = "the_consumers_secret";

    return OAUTH_OK;
}
?>

Смотрите также

  • OAuthProvider::callConsumerHandler() - Вызвать callback-функцию consumerNonceHandler


Генерация случайного токена

  • « OAuthProvider::consumerHandler
  • OAuthProvider::is2LeggedEndpoint »
  • PHP Manual
  • OAuthProvider
  • Генерация случайного токена

OAuthProvider::generateToken

(PECL OAuth >= 1.0.0)

OAuthProvider::generateToken — Генерация случайного токена

Описание

final public static OAuthProvider::generateToken ( int $size [, bool $strong = FALSE ] ) : string

Генерирует строку псевдо-случайных байт.

Список параметров

size

Длина токена в байтах.

strong

Установка в TRUE приведет к использованию /dev/random, в противном случае будет использован неблокирующий /dev/urandom. В Windows данный параметр будет проигнорирован.

Возвращаемые значения

Сгенерированный токен в виде строки байт.

Ошибки

Если параметр strong задан как TRUE, то будет выдана ошибка уровня E_WARNING, в случае, если для заполнения оставшихся случайных байт (например, если было найдено недостаточно случайных данных) будет использована старая реализация rand()

Примеры

Пример #1 Пример использования OAuthProvider::generateToken()

<?php
$p = new OAuthProvider();

$t = $p->generateToken(4);

echo strlen($t),  PHP_EOL;
echo bin2hex($t), PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

4
b6a82c27

Примечания

Замечание:

Если в системе недостаточно случайных данных, то для генерации недостающих байт эта функция будет использовать обычную функцию rand().

Смотрите также

  • openssl_random_pseudo_bytes() - Генерирует псевдослучайную последовательность байт
  • mcrypt_create_iv() - Создать инициализирующий вектор (Initialization Vector или IV) из случайного источника


is2LeggedEndpoint

  • « OAuthProvider::generateToken
  • OAuthProvider::isRequestTokenEndpoint »
  • PHP Manual
  • OAuthProvider
  • is2LeggedEndpoint

OAuthProvider::is2LeggedEndpoint

(PECL OAuth >= 1.0.0)

OAuthProvider::is2LeggedEndpoint — is2LeggedEndpoint

Описание

public OAuthProvider::is2LeggedEndpoint ( mixed $params_array ) : void

Двухсторонний поток или запрос подписи. Не требует токена.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

params_array

Возвращаемые значения

Объект OAuthProvider.

Примеры

Пример #1 Пример использования OAuthProvider::is2LeggedEndpoint()

<?php

$provider = new OAuthProvider();

$provider->is2LeggedEndpoint(true);

?>

Смотрите также

  • OAuthProvider::__construct() - Конструктор класса OAuthProvider


Установка isRequestTokenEndpoint

  • « OAuthProvider::is2LeggedEndpoint
  • OAuthProvider::removeRequiredParameter »
  • PHP Manual
  • OAuthProvider
  • Установка isRequestTokenEndpoint

OAuthProvider::isRequestTokenEndpoint

(PECL OAuth >= 1.0.0)

OAuthProvider::isRequestTokenEndpoint — Установка isRequestTokenEndpoint

Описание

public OAuthProvider::isRequestTokenEndpoint ( bool $will_issue_request_token ) : void

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

will_issue_request_token

Устанавливает, будет ли он выдавать токен запроса, тем самым определяя, нужно ли вызывать OAuthProvider::tokenHandler().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • OAuthProvider::setRequestTokenPath() - Установить путь запроса токена
  • OAuthProvider::reportProblem() - Сообщить о проблеме


Удалить требуемый параметр

  • « OAuthProvider::isRequestTokenEndpoint
  • OAuthProvider::reportProblem »
  • PHP Manual
  • OAuthProvider
  • Удалить требуемый параметр

OAuthProvider::removeRequiredParameter

(PECL OAuth >= 1.0.0)

OAuthProvider::removeRequiredParameter — Удалить требуемый параметр

Описание

final public OAuthProvider::removeRequiredParameter ( string $req_params ) : bool

Удаляет требуемый параметр.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

req_params

Требуемый параметр для удаления.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OAuthProvider::setParam() - Установить параметр
  • OAuthProvider::addRequiredParameter() - Добавить необходимые параметры


Сообщить о проблеме

  • « OAuthProvider::removeRequiredParameter
  • OAuthProvider::setParam »
  • PHP Manual
  • OAuthProvider
  • Сообщить о проблеме

OAuthProvider::reportProblem

(PECL OAuth >= 1.0.0)

OAuthProvider::reportProblem — Сообщить о проблеме

Описание

final public static OAuthProvider::reportProblem ( string $oauthexception [, bool $send_headers = TRUE ] ) : string

Передать проблему в виде исключения OAuthException. Допустимые проблемы перечислены в секции константы OAuth.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

oauthexception

Объект исключения OAuthException.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • OAuthProvider::checkOAuthRequest() - Проверка запроса oauth
  • OAuthProvider::isRequestTokenEndpoint() - Установка isRequestTokenEndpoint


Установить параметр

  • « OAuthProvider::reportProblem
  • OAuthProvider::setRequestTokenPath »
  • PHP Manual
  • OAuthProvider
  • Установить параметр

OAuthProvider::setParam

(PECL OAuth >= 1.0.0)

OAuthProvider::setParam — Установить параметр

Описание

final public OAuthProvider::setParam ( string $param_key [, mixed $param_val ] ) : bool

Устанавливает параметр.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

param_key

Ключ параметра.

param_val

Необязательное значение параметра.

Для исключения параметра из процесса проверки подписи установите его в значение NULL.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OAuthProvider::addRequiredParameter() - Добавить необходимые параметры


Установить путь запроса токена

  • « OAuthProvider::setParam
  • OAuthProvider::timestampNonceHandler »
  • PHP Manual
  • OAuthProvider
  • Установить путь запроса токена

OAuthProvider::setRequestTokenPath

(PECL OAuth >= 1.0.0)

OAuthProvider::setRequestTokenPath — Установить путь запроса токена

Описание

final public OAuthProvider::setRequestTokenPath ( string $path ) : bool

Устанавливает путь запроса токена.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

path

Путь.

Возвращаемые значения

TRUE

Смотрите также

  • OAuthProvider::tokenHandler() - Установить обработчик tokenHandler


Установить обработчик timestampNonceHandler

  • « OAuthProvider::setRequestTokenPath
  • OAuthProvider::tokenHandler »
  • PHP Manual
  • OAuthProvider
  • Установить обработчик timestampNonceHandler

OAuthProvider::timestampNonceHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::timestampNonceHandler — Установить обработчик timestampNonceHandler

Описание

public OAuthProvider::timestampNonceHandler ( callable $callback_function ) : void

Устанавливает callback-функцию, используемую в OAuthProvider::callTimestampNonceHandler(). В этот обработчик будут переданы ошибки относящиеся к timestamp/nonce.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

callback_function

Функция типа callable.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования OAuthProvider::timestampNonceHandler()

<?php
function timestampNonceChecker($provider) {

    if ($provider->nonce === 'bad') {
        return OAUTH_BAD_NONCE;
    } elseif ($provider->timestamp == '0') {
        return OAUTH_BAD_TIMESTAMP;
    }

    return OAUTH_OK;
}
?>

Смотрите также

  • OAuthProvider::callTimestampNonceHandler() - Вызвать callback-функцию timestampNonceHandler


Установить обработчик tokenHandler

  • « OAuthProvider::timestampNonceHandler
  • OAuthException »
  • PHP Manual
  • OAuthProvider
  • Установить обработчик tokenHandler

OAuthProvider::tokenHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::tokenHandler — Установить обработчик tokenHandler

Описание

public OAuthProvider::tokenHandler ( callable $callback_function ) : void

Устанавливает callback-функцию обработчика токена, которая будет использоваться OAuthProvider::callTokenHandler().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

callback_function

Функция типа callable.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования OAuthProvider::tokenHandler()

<?php
function tokenHandler($provider) {

    if ($provider->token === 'rejected') {
        return OAUTH_TOKEN_REJECTED;
    } elseif ($provider->token === 'revoked') {
        return OAUTH_TOKEN_REVOKED;
    }

    $provider->token_secret = "the_tokens_secret";
    return OAUTH_OK;
}
?>

Смотрите также

  • OAuthProvider::callTokenHandler() - Вызвать callback-функцию tokenNonceHandler


Класс OAuthException

(PECL OAuth >= 0.99.1)

Введение

Это исключение выбрасывается в случае возникновения ошибок при использовании модуля OAuth и содержит полезную отладочную информацию.

Обзор классов

OAuthException extends Exception {
/* Свойства */
public $lastResponse ;
public $debugInfo ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Свойства

lastResponse

Последнее исключение, если таковое имеется

debugInfo


SCA

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Структура Сервисного Компонента
    • Получение прокси для другого сервисного компонента
    • Вызов другого сервисного компонента
    • Поиск и вызов сервиса из скрипта не являющимся компонентом SCA
    • Размещение сервисного компонента как веб-сервиса
    • Развертывание компонента SCA
    • Получение WSDL для компонента SCA, предоставляющего веб-сервис
    • Рассказ о том, как генерируется WSDL
    • Работа со структурами данных
    • Обработка ошибок
  • Функции SCA
    • SCA::createDataObject — Создает SDO
    • SCA::getService — Получить прокси для службы
    • SCA_LocalProxy::createDataObject — Create an SDO
    • SCA_SoapProxy::createDataObject — Создает SDO


Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

SCA для PHP предназначено для облегчения создания переиспользуемых компонентов, обладающих унифицированным интерфейсом и различными моделями использования. В данный момент компоненты общаться либо локально, либо через веб-сервисы, но в будущем планируется расширить список способов доступа. В целом это расширение создавалось для облегчения жизни разработчика.

Компоненты SCA используют аннотации phpDocumentor (см. Http://www.phpdoc.org/) для инъекции зависимостей от других компонентов SCA или от веб-сервисов. Во время исполнения SCA самостоятельно разрешает эти зависимости, что позволяет разработчику сфокусироваться на бизнес-логике и не заниматься самостоятельным отслеживанием зависимостей.

В будущем SCA может быть дополнена поддержкой REST, Atompub и т.д. Но в настоящее время единственным поддерживаемым методом коммуникаций являются веб-сервисы (точнее, WSDL, SOAP / HTTP-сервисы).

Также компоненты используют аннотации для определения интерфейса предоставляемого ими сервиса. Во время исполнения из этих аннотаций SCA автоматически генерирует WSDL. Для разработчиков знакомых с phpDocumentor работа с аннотациями не доставит каких либо проблем. Развертывание веб-сервиса никогда небыло настолько простым - достаточно просто разместить компонент в корене документов веб-сервера.

Также компоненты используют аннотации для определения структур данных (определенных с помощью сложных типов схемы XML), обрабатываемых с использованием сервисных объектов данных (Service Data Objects или SDO).

PHP-скрипт, который не является компонентом SCA и не содержит аннотаций, может использовать службы компонента SCA. PHP-скрипт или компонент могут выполнять вызовы сторонних веб-сервисов, использующих ту же систему, но использует ту же систему вызовов или аннотаций для получения ссылки.

Для начала мы покажем простой компонент SCA с именем ConvertedStockQuote, который продемонстрирует различные возможности SCA. Он содержит один метод getQuote(), который будет по заданному названию искать котировки и конвертировать их в заданную валюту. Мы будем использовать этот пример в дальнейшем в описании функций для объяснения работы SCA.

Пример #1 Простой компонент SCA

<?php

include "SCA/SCA.php";

/**
 * Вычисляем стоимость указанных акций в заданной валюте.
 *
 * @service
 * @binding.soap
 */
class ConvertedStockQuote {

    /**
     * Сервис получения курсов конвертации валют.
     *
     * @reference
     * @binding.php ../ExchangeRate/ExchangeRate.php
     */
    public $exchange_rate;

    /**
     * Сервис получения котировок.
     *
     * @reference
     * @binding.soap ../StockQuote/StockQuote.wsdl
     */
    public $stock_quote;

    /**
     * Получение стоимости акции в заданной валюте.
     *
     * @param string $ticker Название акции.
     * @param string $currency В какой валюте возвращать результат.
     * @return float Стоимость акции в заданной валюте.
     */
    function getQuote($ticker, $currency)
    {
        $quote  = $this->stock_quote->getQuote($ticker);
        $rate   = $this->exchange_rate->getRate($currency);
        return  $rate * $quote;
    }
}
?>

В этом примере показано, что компонент SCA реализован с помощью скрипта, в котором содержится описание класса и в который подключен скрипт SCA.php. Класс содержит смесь бизнес-логики и отсылок к другим компонентам и веб-сервисам. В методе getQuote() содержится только бизнес-логика, но она завязана на переменные класса $stock_quote и $exchange_rate. Тут наличествуют ссылки на два других компонента, которые будут проинициализированы SCA во время исполнения и проксированы на два конкретных сервиса, в независимости от того, где запускается этот компонент. Аннотации этих сервисов показывают, что один из них локальный - он будет запускаться в том же сеансе, что и наш PHP-скрипт, а второй удаленный и будет вызван с помощью SOAP-запроса. Также этот компонент предоставляет метод getQuote() в качестве сервиса, который может быть вызван как локально, так и удаленно.


Требования

Если вы хотите использовать SCA для использования или предоставления веб-сервисов, то вам понадобится PHP 5.2.0 или выше, собраный с расширением soap. Если вы собираетесь использовать только локальные компоненты и не хотите создавать привязки к веб-сервисам, то будет достаточно PHP 5.1.6.

SCA упакован вместе с SDO в одном комбинированном пакете на PECL. Инструкции по установке смотрите тут SCA_SDO из PECL http://www.php.net/sdo#sdo.installation. Путь к директории установки SCA должен быть внесен в директиву include_path. Т.е. если вы поставили его в /usr/local/lib/php/SCA, то include_path должен содержать /usr/local/lib/php


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/sca.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • SCA
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Содержание

  • Структура Сервисного Компонента
  • Получение прокси для другого сервисного компонента
  • Вызов другого сервисного компонента
  • Поиск и вызов сервиса из скрипта не являющимся компонентом SCA
  • Размещение сервисного компонента как веб-сервиса
  • Развертывание компонента SCA
  • Получение WSDL для компонента SCA, предоставляющего веб-сервис
  • Рассказ о том, как генерируется WSDL
  • Работа со структурами данных
  • Обработка ошибок

Примеры в последующих разделах иллюстрируют следующие аспекты SCA:

  • Как использовать аннотации для определения класса PHP в качестве компонента SCA и описания сервиса.

  • Как компонент SCA может быть представлен в качестве веб-сервиса.

  • Как компонент SCA может использовать веб-сервис, предоставляемый другим компонентом SCA или другим сервисом, который ничего о SCA не знает.

  • Как компонент SCA может локально вызвать другой компонент SCA (в том же процессе и в том же стеке вызовов)

  • Как клиентский скрипт, который не является компонентом SCA, может использовать вызов getService для получения прокси к компоненту SCA.

  • Как такие структуры как Addresses или Puchase Orders представляются в качестве SDO и обрабатываются.

  • Как развертываются компоненты SCA и, в частности, как и когда создается WSDL.

  • Как параметры всегда передаются по значению (а не по ссылке) даже между локальными компонентами, что гарантирует, что семантика вызова не изменяется в зависимости от местоположения компонента.

  • Как поддерживаются позиционные параметры для сервиса, даже если базовый WSDL является документированным литералом и, естественно, поддерживает только именованные параметры.

  • Как обрабатываются исключения бизнес-логики и времени исполнения.


Структура Сервисного Компонента

Сервисный компонент реализуется как класс. Чтобы определить его как сервисный компонент, в него добавляют аннотацию @service. По соглашению, во время исполнения SCA будет использовать имя файла скрипта в качестве имени компонента. Поэтому класс и файл скрипта должны иметь одно и то же имя.

Компоненты SCA всегда предоставляют сервис и нет иных способов использовать компонент, кроме как вызвать его через веб-сервис, либо локально. Поэтому корректные компоненты SCA всегда содержат аннотацию @service и как минимум один публичный метод.

Каждый компонент SCA должен включать скрипт SCA.php, который не только содержит определение классов SCA, но и выполняемый код PHP, который запускается всякий раз при выполнении скрипта и который отвечает за правильное поведение компонентов.

Предостережение

Очень важно, чтобы если ваш файл подключает еще какие либо скрипты, они подключались до скрипта SCA.php. Если они будут подключаться после, то они не будут обработаны SCA во время исполнения.

Пример ниже иллюстрирует эту общую структуру

Пример #1 Структура компонента SCA

<?php

// любые include

include "SCA/SCA.php";

/**
 * @service
 */

class ConvertedStockQuote {

       // переменные экземпляра, бизнес-логика и как минимум один публичный метод

}
?>


Получение прокси для другого сервисного компонента

Один компонент SCA может вызвать сервис, предоставляемый другим компонентом SCA. Сервис, предоставляемый компонентом, состоит из всех его публичных методов. В настоящее время SCA предоставляет два способа для одного компонента вызвать другой: либо локально (т.е. в рамках одного и того же процесс PHP, и в том же стеке вызовов), либо удаленно, если вызываемый компонент предоставляет привязку веб-сервиса.

Чтобы один компонент мог вызвать другого, вызывающему компоненту нужен прокси для вызываемого компонента. Этот прокси обычно предоставляется в качестве переменной экземпляра в вызывающем компоненте, хотя прокси также можно получить с помощью вызова SCA::getService(). Когда компонент сконструирован, прокси создаются для любой переменной экземпляра, которая относится к другому компоненту, и эти прокси "вводятся" в переменные экземпляра. Прокси используются всегда, независимо от того, является ли компонент локальным или удаленным, что обеспечивает идентичное поведение локальных и удаленных вызовов (например, локальные вызовы всегда позволяют передавать данные по-значению). Прокси знают, как найти необходимый компонент и передать сделанные им вызовы.

Переменные экземпляра, предназначенные для хранения прокси для сервисов, обозначаются двумя аннотациями в стиле PHPDocumentor, @reference и @binding. Обе аннотации размещаются в разделе документации для переменной экземпляра класса, как показано в приведенном ниже коде.

Аннотация @reference перед переменной указывает, что она должна быть инициализирована прокси-компонентом.

Аннотация @binding имеет две формы: @binding.php и @binding.soap, и указывает, что прокси предназначен либо для локального компонента, либо для веб-сервиса соответственно. Для обоих аннотаций @binding.php и @binding.soap задается целевой URI.

В настоящий момент, из-за метода определения зависимостей на основе аннотаций, единственным способом изменения целевой ссылки является изменение аннотации внутри компонента.

В нашем примере ConvertedStockQuote, переменная экземпляра $exchange_rate будет инициализирована как прокси к локальному компоненту ExchangeRate каждый раз, когда будет создаваться экземпляр класса ConvertedStockQuote.

Пример #1 Получение прокси для локальных классов

<?php
   /**
     * Сервис предоставления курсов обмена.
     *
     * @reference
     * @binding.php ../ExchangeRate/ExchangeRate.php
     */
    public $exchange_rate;
?>

URI в @binding.php указывает местоположение скрипта, содержащего реализацию компонента. Компонент будет называться локально. Предоставляемый сервис является набором публичных методов компонента. URI должен быть простым путем, абсолютным или относительным. Компонент будет загружен директивой include после проверки функцией class_exists(), не загружен ли он уже. Если URI является относительным путем, то он разрешается относительно компонента, содержащего аннотацию. Обратите внимание, что это отличается от обычного поведения PHP, когда скрипты ищутся по пути include_path. Это позволяет обеспечить некоторую независимости от местоположения для кросс-компонентных ссылок.

Для сервиса ExchangeRate, который мы используем удаленно, меняется только строка @binding. Вместо указания местоположения класса PHP, мы указываем местоположение WSDL, описывающей веб-сервис:

Пример #2 Получение прокси для веб-сервиса

<?php
/**
     * Сервис получения биржевых котировок.
     *
     * @reference
     * @binding.soap ../StockQuote/StockQuote.wsdl
     */
    public $stock_quote;
?>

Компонент StockQuote будет вызываться как веб-сервис. В этом случае URI для WSDL может быть простым именем пути или может содержать обертку PHP и начинаться, например, с file:// или http://. В случае, если это простой путь, он может быть абсолютным или относительным, и если он будет относительным, то он будет разрешаться относительно компонента с аннотацией. Обратите внимание, что как и для @binding.php, поведение будет отличается от обычного поведения PHP, когда скрипты ищутся по пути include_path. Это позволяет обеспечить некоторую независимости от местоположения для кросс-компонентных ссылок.


Вызов другого сервисного компонента

В примере ConvertedStockQuote также вызывает прокси для двух компонентов, к которым он относится.

Пример #1 Вызов сервисов

<?php
$quote  = $this->stock_quote->getQuote($ticker);
$rate   = $this->exchange_rate->getRate($currency);
?>

Вызов сервиса StockQuote - это вызов локального сервиса; Вызов сервиса ExchangeRate - это вызов удаленного сервиса. Обратите внимание, что синтаксис вызова сервисов абсолютно идентичен.

Прокси гарантируют, что способ обращения к компонентам и их поведение одинаковы независимо от того, являются ли они локальным или удаленным сервисом. Поэтому компоненты не чувствительны к тому, является ли вызов локальным или удаленным. К примеру, прокси для локального сервиса делает копии переданных аргументов и передает сервису именно эти копии, чтобы гарантировать передачу по значению и обеспечить идентичность поведения локальных и удаленных вызовов. Кроме того, прокси для удаленной службы принимает аргументы из списка позиционных параметров и гарантирует, что они правильно упакованы в запросе SOAP и преобразуются обратно в список позиционных параметров на целевом сервисе.

В приведенном выше примере $ticker и $ currency являются скалярными типами PHP. Компоненты могут передавать скалярные типы PHP string, integer, float и boolean, но структуры данных в вызовах сервисов всегда передаются как SDO. В следующем разделе описывается, как компонент может создавать SDO для передачи вызова локальному или веб-сервису и как компонент может создать SDO для возврата результата. В документации по проекту PHP SDO описывается работа с интерфейсом API SDO (см. страницы SDO).


Поиск и вызов сервиса из скрипта не являющимся компонентом SCA

Компоненты SCA получают прокси для других компонентов или сервисов в виде переменных экземпляра класса, аннотированных с помощью @reference. Такое решение не подходит для обычных скриптов, не являющихся компонентомами. Клиентский скрипт, который не является компонентом, должен использовать статический метод SCA::getService() для получения прокси для локального или удаленного сервиса. Метод getService() принимает в качестве аргумента URI. Обычно это локальный скрипт PHP, содержащий компонент или файл wsdl, и используется точно так же, как значения аннотаций @binding, описанных в предыдущем разделе: то есть относительные URI разрешаются относительно клиентского скрипта, а не PHP include_path или текущего рабочего каталога.

К примеру, если скрипту нужен прокси для сервисов ExchangeRate или StockQuote, он должен использовать метод getService() следующим образом:

Пример #1 Получение прокси с помощью getService

<?php
$exchange_rate = SCA::getService('../ExchangeRate/ExchangeRate.php');
$stock_quote   = SCA::getService('../StockQuote/StockQuote.wsdl');
?>

Методы сервисом необходимо вызывать на возвращенных прокси, так же как и для компонентов.

Пример #2 Вызов сервиса через прокси

<?php
$quote  = $stock_quote->getQuote($ticker);
$rate   = $exchange_rate->getRate($currency);
?>


Размещение сервисного компонента как веб-сервиса

SCA может генерировать WSDL из аннотаций сервисного компонента, для его легкого развертывания как веб-сервиса. Для указания SCA, что надо создавать WSDL, необходимо добавить аннотацию @binding.soap под аннотацией @service и указать параметры и возвращаемые значения методов, используя аннотации @param и @return. Эти аннотации будут считываться при создании WSDL, а порядок и типы параметров определяют содержимое раздела WSDL <schema>.

SCA всегда генерирует WSDL обернутый как документ/литерал для компонентов предоставляющим веб-сервис. Обратите внимание, что это не препятствует использованию сторонних веб-служб, с WSDL написанным в другом стиле.

В аннотации @param можно использовать 4 скалярных типа: boolean, integer, float и string. Они просто сопоставляются с типами XML-схемы с тем же именем в WSDL. Пример ниже представляет собой простую реализацию службы StockQuote, которую вызывает компонент ConvertedStockQuote и показывает использование типов string и float.

Пример #1 Сервис StockQuote

<?php

include "SCA/SCA.php";

/**
 * Фуфульная реализация веб-сервиса StockQuote.
 *
 * @service
 * @binding.soap
 *
 */
class StockQuote {

    /**
     * Получение котировки акции по ее имени.
     *
     * @param string $ticker Имя акции.
     * @return float Биржевая котировка.
     */
    function getQuote($ticker) {
        return 80.9;
  }
}
?>

На базе данного сервиса будет создана примерно такая WSDL (хотя, возможно, с местоположением службы, отличным от «localhost»):

Пример #2 Созданная WSDL

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xsi:type="tDefinitions"
    xmlns:tns2="http://StockQuote" xmlns:tns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns3="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://StockQuote">
  <types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
      targetNamespace="http://StockQuote">
      <xs:element name="getQuote">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ticker" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getQuoteResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="getQuoteReturn" type="xs:float"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
  </types>

  <message name="getQuoteRequest">
    <part name="getQuoteRequest" element="tns2:getQuote"/>
  </message>
  <message name="getQuoteResponse">
    <part name="return" element="tns2:getQuoteResponse"/>
  </message>
  <portType name="StockQuotePortType">
    <operation name="getQuote">
      <input message="tns2:getQuoteRequest"/>
      <output message="tns2:getQuoteResponse"/>
    </operation>
  </portType>
  <binding name="StockQuoteBinding" type="tns2:StockQuotePortType">
    <operation name="getQuote">
      <input>
        <tns3:body xsi:type="tBody" use="literal"/>
      </input>
      <output>
        <tns3:body xsi:type="tBody" use="literal"/>
      </output>
      <tns3:operation xsi:type="tOperation" soapAction=""/>
    </operation>
    <tns3:binding xsi:type="tBinding" transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
  </binding>
  <service name="StockQuoteService">
    <port name="StockQuotePort" binding="tns2:StockQuoteBinding">
      <tns3:address xsi:type="tAddress" location="http://localhost/StockQuote/StockQuote.php"/>
    </port>
  </service>
</definitions>

<!-- this line identifies this file as WSDL generated by SCA for PHP. Do not remove -->


Развертывание компонента SCA

Для развертывания компонента SCA не требуется каких либо нетривиальных действий. Просто положите скрипт с компонентом в предназначенное для него место в папке со скриптами веб-сервера. При вызове любого компонента для него будет вызван метод SCA::initComponent(), который обеспечит его корректную работу в качестве локального или удаленного сервиса.


Получение WSDL для компонента SCA, предоставляющего веб-сервис

Компоненты SCA, которые реализующие интерфейс веб-сервиса (т.е. имеют аннотацию @binding.soap), вернут WSDL в ответ на HTTP-запрос с get-параметром "wsdl". Другими словами, допишите в конце URL "?wsdl". В приведенном ниже примере для получения WSDL и записи его во временный файл используется функция file_get_contents(), после чего обычным способом получается прокси. Разумеется, вы можете получить WSDL в браузере или любым другим удобным способом.

Пример #1 Generated WSDL

<?php
$wsdl = file_get_contents('http://www.example.com/Services/Example.php?wsdl');
file_put_contents("service.wsdl",$wsdl); //записываем wsdl в файл
$service = SCA::getService('service.wsdl');
?>

Обратите внимание: Если для wsdl требуется импортировать xsds, то они должны быть загружены отдельно.


Рассказ о том, как генерируется WSDL

SCA генерирует WSDL для компонентов, которые содержат аннотацию @binding.soap после аннотации @service. Чтобы создать WSDL, SCA во время исполнения с помощью Reflection отражает компонент и анализирует аннотации @param и @return для каждого публичного метода, а также любые аннотации @types в компоненте. Информация из аннотаций @param и @return используется для построения раздела WSDL <types>. Любые аннотации @types, которые указывают на отдельный файл схемы, приведут к созданию элемента <import> в схеме WSDL.

Аттрибут location элемента <service>

Внизу WSDL присутствует элемент <service>, который использует аттрибут location для идентификации URL сервиса. К примеру он может быть таким:

Пример #1 Аттрибут location

<service name="ConvertedStockQuote"
...
location="http://localhost/ConvertedStockQuote/ConvertedStockQuote.php"/>

Обратите внимание, что местоположение является относительным для корня документов веб-сервера и не может быть обработано заранее. Оно может быть создано только после того, как компонент поместили в нужное место работающего веб-сервера, и когда имя и порт хоста становятся известны и могут быть помещены в WSDL. Подробности из URL-адреса, который запрашивает WSDL, используется, например, если WSDL в ответ на запрос http://www.example.com:1111/ConvertedStockQuote/ConvertedStockQuote.php?wsdl генерирует адрес http: //www.example.com:1111/ConvertedStockQuote/ConvertedStockQuote.php - это то, что будет вставлено в атрибут location в WSDL.

Обертка WSDL документ/литерал и позиционные параметры

SCA генерирует WSDL в стиле обертки документ/литерал. Этот стиль помещает параметры и возвращаемые типы метода в "обертки", которые названы в честь соответствующего метода. Элемент WSDL <types> каждую из этих оберток. Если мы рассмотрим метод getQuote() примера ConvertedStockQuote:

Пример #2 Метод с двумя аргументами

<?php
   /**
     * Получение стоимости акции в заданной валюте.
     *
     * @param string $ticker Название акции.
     * @param string $currency В какой валюте возвращать результат.
     * @return float Стоимость акции в заданной валюте.
     */
    function getQuote($ticker, $currency)
    {
        $quote  = $this->stock_quote->getQuote($ticker);
        $rate   = $this->exchange_rate->getRate($currency);
        return  $rate * $quote;
    }
?>

WSDL создастся с описанием этого метода и его параметров и выдаст XML-схему для этих параметров. Секция типов будет выглядеть как-то так:

Пример #3 Секция типов с именованными параметрами

<types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
      targetNamespace="http://ConvertedStockQuote">
      <xs:element name="getQuote">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ticker" type="xs:string"/>
            <xs:element name="currency" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getQuoteResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="getQuoteReturn" type="xs:float"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
  </types>

Во время выполнения SCA производит обработку для определения, как списки позиционных параметров в интерфейсе преобразуются в XML, содержащий именованные параметры в SOAP-запросе, а затем преобразуются обратно в списки позиционных параметров. Чтобы понять зачем это делается, рассмотрим как скрипт PHP, который использовал другой интерфейс для вызова SOAP, должен задавать список параметров. Например, PHP-скрипт с использованием PHP SoapClient должен передать SoapClient'у один параметр, задающий значения для "ticker" и "currency", например как ассоциативный массив. Поэтому для обеспечения одинакового вызова сервисов компонентов SCA как локально так и удаленно, требуется иной подход.

Когда SCA генерирует WSDL для SCA-компонента, он включает комментарий в WSDL, который отмечает, что WSDL является интерфейсом для SCA-компонента. В этом случае, когда один компонент SCA вызывает другой через веб-сервис, SCA на вызывающем конце во время исполнения принимает список позиционных параметров из вызова и, один за другим, присваивает значения названным элементам в SOAP-запроса. Например, вызов метода getQuote(), определенного выше, которому передаются значения "IBM" и "USD", выглядит так:

<?php
  $quote = $remote_service->getQuote('IBM','USD');
?>

В результате SOAP-запрос будет выглядеть так:

<getQuote>
  <ticker>IBM</ticker>
  <currency>USD</currency>
</getQuote>

На стороне предоставляющей сервис, SCA будет брать параметры по очереди из SOAP-запроса и создавать из него список аргументов ('IBM','USD').

Предостережение

И на стороне клиента и на стороне сервиса SCA будет полагаться на тот порядок аргументов, в каком они появились в SOAP-запросе и считать, что именно в этом порядке аргументы нужно передавать в запрошенный метод. Изначально этот порядок определяется порядком описания аргументов с помощью аннотаций @param. Т.е. порядок аннотаций @param определяет как порядок аргументов метода, так и порядок в котором аргументы будут описаны в SOAP-запросе.


Работа со структурами данных

Компоненты SCA могут оперировать четырьмя скалярными типами PHP: boolean, integer, float и string. Но для передачи и приема структур данных компоненты SCA используют SDO. Более подробно об SDO можно почитать на этой странице документации. Читатели, знакомые с SDO, знают, что оно подходят для представления структурированных и полуструктурированных данных, которые часто моделируются в XML, и что они очень просто сериализуются для передачи между удаленными компонентами или в веб-сервисами. В настоящее время SDO - единственный поддерживаемый способ передачи и возврата структур данных. Нельзя передавать или возвращать объекты или массивы PHP.

SCA всегда гарантирует, что данные передаются по значению, даже для локальных вызовов. Для этого SCA копирует все SDO в список параметров перед их передачей, как и для скалярных типов.

Как определяются структуры данных для компонентов SCA

В настоящее время единственным механизмом указания местоположения определения структуры данных является указание типов в файле схемы XML. Однако в будущем, возможно, появятся другие способы, например на основе классов или интерфейсов PHP или на основе определений, выраженных как ассоциативные массивы.

Чтобы проиллюстрировать использование SDO, мы вводим новый компонент. Сервис PortfolioMangement возвращает SDO, представляющий портфель акций для данного клиента.

Пример #1 Компонент использующий структуры данных

<?php

include "SCA/SCA.php";

/**
 * Управление портфелем для клиента.
 *
 * @service
 * @binding.soap
 *
 * @types http://www.example.org/Portfolio PortfolioTypes.xsd
 *
 */
class PortfolioManagement {

    /**
     * Получение портфеля акций для данного клиента.
     *
     * @param integer $customer_id Идентификатор клиента
     * @return Portfolio http://www.example.org/Portfolio The stock portfolio (акции и количества)
     */
    function getPortfolio($customer_id) {
        // Представьте, что мы только что получили это из базы данных
        $portfolio = SCA::createDataObject('http://www.example.org/Portfolio', 'Portfolio');
        $holding = $portfolio->createDataObject('holding');
        $holding->ticker = 'AAPL';
        $holding->number = 100.5;
        $holding = $portfolio->createDataObject('holding');
        $holding->ticker = 'INTL';
        $holding->number = 100.5;
        $holding = $portfolio->createDataObject('holding');
        $holding->ticker = 'IBM';
        $holding->number = 100.5;
        return $portfolio;
    }

}
?>

Аннотация @types:

<?php
@types http://www.example.org/Portfolio PortfolioTypes.xsd
?>

Указывает, что типы в пространстве имен http://www.example.org/Portfolio будут найдены в файле схемы, расположенной по URI PortfolioTypes.xsd. Сгенерированный WSDL будет описывать эту информацию с помощью оператора импорта следующим образом:

<xs:import schemaLocation="PortfolioTypes.xsd"
                      namespace="http://www.example.org/Portfolio"/>

Таким образом URI, абсолютный или относительный, должен быть разрешаем при включении в аттрибут schemaLocation.

Создание SDO

Читатели, знакомые с SDO, знают, что они всегда создаются в соответствии с описанием допустимой структуры (иногда называемой "схемой" или "моделью"), и что, вместо того, чтобы создавать их напрямую, используя 'new', требуется использовать фабрику данных. Часто существующий объект данных может использоваться как фабрика данных, но иногда, и особенно для того, чтобы получить первый объект данных, необходима отдельная фабрика данных.

В SCA, либо классы времени исполнения SCA, либо прокси сервисов, локальные или удаленные могут служить фабриками данных SDO. Что именно выбрать в качестве фабрики и почему мы расскажем ниже.

Чтобы проиллюстрировать создание SDO мы переходим к новому примеру

Создание SDO для передачи сервису

Вызывающий сервис, которому требуется передать структуру данных, использует в качестве фабрики данных для соответствующих SDO прокси . Например, предположим, что компонент использует прокси для сервиса, предоставляемого локальным компонентом AddressBook.

<?php
/**
 * @reference
 * @binding.local AddressBook.php
 */
$address_book;
?>

Компонент AddressBook, который он хочет вызвать, определяется следующим образом:

<?php
/**
* @service
* @binding.soap
* @types http://addressbook ../AddressBook/AddressBook.xsd
*/
class AddressBook {

    /**
     * @param personType $person http://addressbook (объект person)
     * @return addressType http://addressbook (объект address для объекта person)
     */
    function lookupAddress($person)  {
        ...
    }
}
?>

Компонент AddressBook предоставляет метод сервиса lookupAddress(), который использует типы из пространства имен http://addressbook. Метод lookupAddress принимает структуру данных personType и возвращает addressType. Оба типа определены в файле схемы addressbook.xsd.

После того, как компонент, который хочет использовать компонент AddressBook, был сконструирован, и переменная $address_book содержит прокси для сервиса, вызывающий компонент может использовать прокси в $address_book для создания SDO, как показано ниже:

<?php
$william_shakespeare        = $address_book->createDataObject('http://addressbook','personType');
$william_shakespeare ->name = "William Shakespeare";
$address                    = $address_book->lookupAddress($william_shakespeare);
?>

Обратите внимание: использование прокси в качестве средства для создания SDO не ограничивается компонентами SCA. Если служба вызывается из обычного PHP-скрипта, а прокси был получен с помощью getService(), то используется тот же подход.

<?php
$address_book = SCA::getService('AddressBook.php');
$william_shakespeare = $address_book->createDataObject('http://addressbook','personType');
?>

Создание SDO для использования в качестве возвращаемого значения

Компонент, который должен создать объект данных для возврата, не будет иметь прокси для использования в качестве объекта данных. В этом случае он использует статический метод createDataObject() из SCA.php. Следовательно, если описанный выше компонент AddressBook необходим для создания объекта типа addressType в пространстве имен http://address, то можно сделать следующее:

<?php
$address = SCA::createDataObject('http://addressbook','addressType');
?>


Обработка ошибок

В этом разделе описывается, как обрабатываются ошибки. Существует два типа ошибок:

  • Исключения времени выполнения SCA сигнализируют о проблемах при управлении выполнением компонентов и при взаимодействии с удаленными сервисами. они могут произойти из-за проблем с сетью или конфигурацией.

  • Бизнес-исключения - это те, которые определены программистом. Они расширяют класс исключений PHP и бросаются и ловятся сознательно как часть бизнес-логики.

Обработка исключений времени выполнения

Существует два типа исключений времени выполнения SCA:

  • SCA_RuntimeException сигнализирует о проблеме, обнаруженной или, возможно, возникающей во время исполнения SCA. Оно может быть вызвано различными причинами, многие из которых могут возникать независимо от того, выполняется ли подключение к локальному или удаленному сервису: ошибка в одном из комментариев в компоненте, отсутствующий файл WSDL или php и т.д.. В случае веб-сервисов исключение SCA_RuntimeException также может быть брошено, если от удаленного сервиса получен SoapFault, а код ошибки в SoapFault указывает на то, что повторная попытка вряд ли будет успешной.

  • SCA_ServiceUnavailableException - это подкласс SCA_RuntimeException и сигнализирует о проблеме при подключении или использовании удаленного сервиса, но при этом если повторить попытку, то все может получиться. В случае веб-сервиса это исключение бросается, если SoapFault получен с кодом ошибки, который указывает, что повтор может быть успешным.

Обработка бизнес-исключений

Бизнес-исключения могут быть определены и брошены компонентом обычным способом, независимо от того, был ли компонент вызван локально или удаленно. SCA не ловит бизнес-исключения, которые были брошены компонентом, вызваным локально, поэтому они будут возвращены вызывающему компоненту обычным способом. С другой стороны, если компонент был вызван через веб-сервис, SCA на стороне сервиса ловит бизнес-исключения и гарантирует, что они будут переданы обратно вызывающему компоненту и брошены повторно. Предполагая, что вызывающий компонент имеет определение исключения (то есть может включать файл, содержащий класс PHP, определяющий исключение), повторное исключение будет содержать те же детали, что и оригинал, так что функции getLine() и getFile(), будут содержать место, где исключение было брошено в бизнес-логике. Исключение будет передано в поле описания ошибки SOAP-запроса с кодом ошибки 'Client'.


Функции SCA

Предопределенные классы

Большая часть интерфейса SCA связана с аннотациями в компонентах SCA, поэтому существует несколько открытых классов и методов. Единственными классами SCA, которые могут вызывать скрипты или компоненты, являются класс SCA и классы прокси SCA_LocalProxy и SCA_SoapProxy.

SCA

Большая часть работы класса SCA выполняется, когда файл SCA.php включается в компонент SCA. Тем не менее, PHP-скрипт может включать SCA.php и вызвать метод getService() класса SCA, для получения прокси для сервиса. Компоненту делать этого не обязательно, поскольку прокси подтягиваются автоматом в переменную экземпляра с аннотацией @reference.

Компонентам, которые должны создать SDO для использования в качестве возвращаемого значения потребуется фабрика данных. Для этого класс SCA содержит метод createDataObject(), который создает SDO в соответствии с моделью, определенной аннотациями @types компонента. Аргументы функции createDataObject() аналогичны аргументам службы SDO XML Data Access Service.

Методы

  • getService - возвращает прокси для сервиса

  • createDataObject - создает SDO

SCA_LocalProxy

Когда вызывается функция getService() с указанием локального компонента, возвращается локальный прокси. Локальный прокси также присваевается соответствующей переменной экземпляра компонента, определенной с помощью аннотаций @reference и @binding.php. Когда скрипт или компонент выполняет вызовы локального прокси, они передаются самому целевому компоненту.

Компонентам, которым необходимо создать SDO для передачи сервису, потребуется фабрика данных. С этой целью класс SCA_LocalProxy содержит метод createDataObject(), который создает SDO в соответствии с моделью, определенной аннотациями @types компонента. Аргументы функции createDataObject() такие же, как и для SDO XML Data Access Service.

Методы

  • createDataObject - создает SDO

SCA_SoapProxy

Когда getService() вызывается с указанием WSDL-файла, возвращается SOAP-прокси. SOAP-прокси также присваивается в переменные экземпляра компонента, которые определены с помощью аннотаций @reference и @binding.soap. Когда скрипт или компонент выполняет вызовы SOAP-прокси, они формируются в SOAP-запросы веб-сервиса и передаются целевому компоненту с помощью расширения PHP Soap.

Компонентам, которым необходимо создать SDO для передачи сервису, потребуется фабрика данных. Для этого класс SCA_SoapProxy содержит метод createDataObject(), который создает SDO в соответствии с моделью, определенной в целевом WSDL. Аргументы функции createDataObject() такие же, как и для SDO XML Data Access Service.

Методы

  • createDataObject - создает SDO

Содержание

  • SCA::createDataObject — Создает SDO
  • SCA::getService — Получить прокси для службы
  • SCA_LocalProxy::createDataObject — Create an SDO
  • SCA_SoapProxy::createDataObject — Создает SDO


Создает SDO

  • « Функции SCA
  • SCA::getService »
  • PHP Manual
  • Функции SCA
  • Создает SDO

SCA::createDataObject

(PECL SDO >= 0.5.0)

SCA::createDataObject — Создает SDO

Описание

SCA::createDataObject ( string $type_namespace_uri , string $type_name ) : SDO_DataObject
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Этот метод используется внутри компонента SCA, которому нужно создать и вернуть SDO. Параметры - выбранное URI пространства имен SDO и имя типа. Пространство имен и тип должны быть в одном из файлов схемы, которые указаны в компоненте в аннотации @types.

Список параметров

type_namespace_uri

Пространство имен типа

type_name

Имя типа

Возвращаемые значения

Возвращает новый объект SDO_DataObject

Ошибки

SDO_TypeNotFoundException

Выбрасывается, если namespaceURI и typeName не заданы ни в одном из файлов схемы, перечисленных в аннотации @types.


Получить прокси для службы

  • « SCA::createDataObject
  • SCA_LocalProxy::createDataObject »
  • PHP Manual
  • Функции SCA
  • Получить прокси для службы

SCA::getService

(PECL SDO >= 0.5.0)

SCA::getService — Получить прокси для службы

Описание

SCA::getService ( string $target [, string $binding [, array $config ]] ) : mixed
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Исследует целевой объект, инициализирует и возвращает соответствующий прокси. Если целевой объект является локальным PHP-компонентом, то возвращается SCA_LocalProxy. Если целевой объект - это WSDL-файл, то возвращается SCA_SoapProxy.

Список параметров

target

Абсолютный или относительный путь к целевому сервису или описание сервиса (например URL к описанию сервиса в формате json-rpc, PHP-компоненту, файлу WSDL и т.д.). Относительный путь разрещается относительно пути скрипта, из которого запускается getService(), а не относительно include_path или текущей рабочей директории

binding

Привязка (т.е. протокол), используемая для общения с сервисом (например binding.jsonrpc для сервиса json-rpc). Обратите внимание, что некоторые типы могут быть выведены из параметров целевого сервиса (например, если параметр заканчивается на .wsdl, то SCA будет использовать binding.soap). Могут быть указаны любые привязки, которые допустимы в аннотациях. К примеру, 'binding.soap' эквивалентно аннотации '@binding.soap'

config

Любые дополнительные параметры для привязки (например array('location' => 'http://example.org')). Могут быть указаны любые параметры, которые допустимы в аннотациях. К примеру, 'location' является эквивалентом аннотации '@location'

Возвращаемые значения

SCA_LocalProxy или SCA_SoapProxy.

Примеры

Пример #1 Пример использования SCA::getService()

В этом примере показывается как получить прокси к SOAP-сервису, определенному как EmailService.wsdl и расположенному по пути http://example.org.

<?php
include 'SCA/SCA.php';
$service = SCA::getService('EmailService.wsdl', 'binding.soap', array('location' => 'http://example.org'));
$service->send(...);
?>

Результат выполнения данного примера:


Create an SDO

  • « SCA::getService
  • SCA_SoapProxy::createDataObject »
  • PHP Manual
  • Функции SCA
  • Create an SDO

SCA_LocalProxy::createDataObject

(PECL SDO >= 0.5.0)

SCA_LocalProxy::createDataObject — Create an SDO

Описание

SCA_LocalProxy::createDataObject ( string $type_namespace_uri , string $type_name ) : SDO_DataObject
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Этот метод используется внутри обычного PHP-скрипта, либо внутри компонента SCA, когда необходимо создать объект SDO для передачи в локальный сервис. Параметры - выбранное URI пространства имен SDO и имя типа. Пространство имен и тип должны быть определены в интерфейсе компонента, который будет вызываться. Таким образом пространство имен и тип должны быть определены в одном из файлов схемы, заданных в аннотации компонента @ types, для которого объект SCA_LocalProxy является прокси.

Список параметров

type_namespace_uri

Пространство имен типа

type_name

Имя типа

Возвращаемые значения

Возвращает новый объект SDO_DataObject

Ошибки

SDO_TypeNotFoundException

Выбрасывается, если namespaceURI и typeName не заданы ни в одном из файлов схемы, указанных в аннотации @types в компоненте для которого SCA_LocalProxy является прокси


Создает SDO

  • « SCA_LocalProxy::createDataObject
  • SOAP »
  • PHP Manual
  • Функции SCA
  • Создает SDO

SCA_SoapProxy::createDataObject

(PECL SDO >= 0.5.0)

SCA_SoapProxy::createDataObject — Создает SDO

Описание

SCA_SoapProxy::createDataObject ( string $type_namespace_uri , string $type_name ) : SDO_DataObject
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Этот метод используется внутри обычного PHP-скрипта, либо внутри компонента SCA, когда необходимо создать объект SDO для передачи в веб-сервис. Параметры - выбранное URI пространства имен SDO и имя типа. Пространство имен и тип должны быть определены в интерфейсе компонента, который будет вызываться. Таким образом пространство имен и тип должны быть определены внутри WSDL веб-сервиса. Если веб-сервис также является компонентом SCA, то пространство имен и тип должны быть определены в одном из файлов схемы, указанных в аннотации компонента @types, для которого объект SCA_SoapProxy является прокси.

Список параметров

type_namespace_uri

Пространство имен типа

type_name

Имя типа

Возвращаемые значения

Возвращает новый объект SDO_DataObject

Ошибки

SDO_TypeNotFoundException

Выбрасывается, если namespaceURI и typeName не соответствуют типу найденому в WSDL, который используется для инициализации SCA_SoapProxy


SOAP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции SOAP
    • is_soap_fault — Проверяет, произошла ли ошибка при вызове SOAP
    • use_soap_error_handler — Установить, следует ли использовать обработчик ошибок SOAP
  • SoapClient — Класс SoapClient
    • SoapClient::__call — Вызывает SOAP-функцию (устаревший метод)
    • SoapClient::__construct — Конструктор SoapClient
    • SoapClient::__doRequest — Выполняет SOAP-запрос
    • SoapClient::__getCookies — Получить список cookies
    • SoapClient::__getFunctions — Возвращает список доступных SOAP-функций
    • SoapClient::__getLastRequest — Возвращает последний SOAP-запрос
    • SoapClient::__getLastRequestHeaders — Возвращает SOAP-заголовки последнего запроса
    • SoapClient::__getLastResponse — Возвращает последний SOAP-ответ
    • SoapClient::__getLastResponseHeaders — Возвращает SOAP-заголовки последнего ответа
    • SoapClient::__getTypes — Возвращает список SOAP-типов
    • SoapClient::__setCookie — Устанавливает cookie
    • SoapClient::__setLocation — Устанавливает адрес используемой веб-службы
    • SoapClient::__setSoapHeaders — Устанавливает SOAP-заголовки для последующих вызовов
    • SoapClient::__soapCall — Вызывает SOAP-функцию
    • SoapClient::SoapClient — Конструктор SoapClient
  • SoapServer — Класс SoapServer
    • SoapServer::addFunction — Добавляет одну или несколько функций для обработки запросов SOAP
    • SoapServer::addSoapHeader — Добавить заголовок SOAP в ответ
    • SoapServer::__construct — Конструктор SoapServer
    • SoapServer::fault — Вынуждает SoapServer вернуть ошибку
    • SoapServer::getFunctions — Вернуть список определенных функций
    • SoapServer::handle — Обработка SOAP-запроса
    • SoapServer::setClass — Устанавливает класс, который обрабатывает SOAP-запросы
    • SoapServer::setObject — Устанавливает объект, который будет использоваться для обработки SOAP-запросов
    • SoapServer::setPersistence — Устанавливает режим сохранения SoapServer
    • SoapServer::SoapServer — Конструктор SoapServer
  • SoapFault — Класс SoapFault
    • SoapFault::__construct — Конструктор SoapFault
    • SoapFault::SoapFault — Конструктор SoapFault
    • SoapFault::__toString — Получить текстовое представление SoapFault
  • SoapHeader — Класс SoapHeader
    • SoapHeader::__construct — Конструктор SoapHeader
    • SoapHeader::SoapHeader — Конструктор SoapHeader
  • SoapParam — Класс SoapParam
    • SoapParam::__construct — Конструктор SoapParam
    • SoapParam::SoapParam — Конструктор SoapParam
  • SoapVar — Класс SoapVar
    • SoapVar::__construct — Конструктор SoapVar
    • SoapVar::SoapVar — Конструктор SoapVar


Введение

Расширение SOAP может использоваться для написания как серверной, так и клиентской части. Оно реализует спецификации » SOAP 1.1, » SOAP 1.2 и » WSDL 1.1.


Требования

Для корректной работы этого расширения необходимо PHP расширение libxml. Это означает, что также необходима передача опции --enable-libxml , хотя неявно это уже сделано, так как поддержка libxml по умолчанию включена.


  • « Требования
  • Настройка во время выполнения »
  • PHP Manual
  • Установка и настройка
  • Установка

Установка

Для включения поддержки SOAP скомпилируйте PHP c опцией --enable-soap .


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки SOAP
Имя | По умолчанию | Место изменения | Список изменений
soap.wsdl_cache_enabled | 1 | PHP_INI_ALL |
soap.wsdl_cache_dir | /tmp | PHP_INI_ALL |
soap.wsdl_cache_ttl | 86400 | PHP_INI_ALL |
soap.wsdl_cache | 1 | PHP_INI_ALL |
soap.wsdl_cache_limit | 5 | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

soap.wsdl_cache_enabled integer

Включает или отключает кеширование WSDL.

soap.wsdl_cache_dir string

Устанавливает путь к директории, где расширение SOAP будет хранить кеш-файлы.

soap.wsdl_cache_ttl integer

Устанавливает количество секунд (время жизни) для файлов в кеше, которое они будут использоваться вместо оригинальных файлов.

soap.wsdl_cache integer

Если параметр soap.wsdl_cache_enabled принимает значение "on", то эта опция определяет тип кеширования. Он может быть любым из следующих типов: WSDL_CACHE_NONE (0), WSDL_CACHE_DISK (1), WSDL_CACHE_MEMORY (2) или WSDL_CACHE_BOTH (3). Это также может быть установлено через массив options в конструкторе SoapClient или SoapServer.

soap.wsdl_cache_limit integer

Максимальное количество находящихся в оперативной памяти кешированных файлов WSDL. Дальнейшее добавление файлов в заполненную кеш-память будет приводить к удалению из нее самых старых файлов.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы SOAP
Константа | Значение | Описание
SOAP_1_1 (integer) | 1 |
SOAP_1_2 (integer) | 2 |
SOAP_PERSISTENCE_SESSION (integer) | 1 |
SOAP_PERSISTENCE_REQUEST (integer) | 2 |
SOAP_FUNCTIONS_ALL (integer) | 999 |
SOAP_ENCODED (integer) | 1 |
SOAP_LITERAL (integer) | 2 |
SOAP_RPC (integer) | 1 |
SOAP_DOCUMENT (integer) | 2 |
SOAP_ACTOR_NEXT (integer) | 1 |
SOAP_ACTOR_NONE (integer) | 2 |
SOAP_ACTOR_UNLIMATERECEIVER (integer) | 3 |
SOAP_COMPRESSION_ACCEPT (integer) | 32 |
SOAP_COMPRESSION_GZIP (integer) | 0 |
SOAP_COMPRESSION_DEFLATE (integer) | 16 |
SOAP_AUTHENTICATION_BASIC (integer) | 0 |
SOAP_AUTHENTICATION_DIGEST (integer) | 1 |
SOAP_SSL_METHOD_TLS (integer) | 0 | С версии PHP 5.5.0.
SOAP_SSL_METHOD_SSLv2 (integer) | 1 | С версии PHP 5.5.0.
SOAP_SSL_METHOD_SSLv3 (integer) | 2 | С версии PHP 5.5.0.
SOAP_SSL_METHOD_SSLv23 (integer) | 3 | С версии PHP 5.5.0.
UNKNOWN_TYPE (integer) | 999998 |
XSD_STRING (integer) | 101 |
XSD_BOOLEAN (integer) | 102 |
XSD_DECIMAL (integer) | 103 |
XSD_FLOAT (integer) | 104 |
XSD_DOUBLE (integer) | 105 |
XSD_DURATION (integer) | 106 |
XSD_DATETIME (integer) | 107 |
XSD_TIME (integer) | 108 |
XSD_DATE (integer) | 109 |
XSD_GYEARMONTH (integer) | 110 |
XSD_GYEAR (integer) | 111 |
XSD_GMONTHDAY (integer) | 112 |
XSD_GDAY (integer) | 113 |
XSD_GMONTH (integer) | 114 |
XSD_HEXBINARY (integer) | 115 |
XSD_BASE64BINARY (integer) | 116 |
XSD_ANYURI (integer) | 117 |
XSD_QNAME (integer) | 118 |
XSD_NOTATION (integer) | 119 |
XSD_NORMALIZEDSTRING (integer) | 120 |
XSD_TOKEN (integer) | 121 |
XSD_LANGUAGE (integer) | 122 |
XSD_NMTOKEN (integer) | 123 |
XSD_NAME (integer) | 124 |
XSD_NCNAME (integer) | 125 |
XSD_ID (integer) | 126 |
XSD_IDREF (integer) | 127 |
XSD_IDREFS (integer) | 128 |
XSD_ENTITY (integer) | 129 |
XSD_ENTITIES (integer) | 130 |
XSD_INTEGER (integer) | 131 |
XSD_NONPOSITIVEINTEGER (integer) | 132 |
XSD_NEGATIVEINTEGER (integer) | 133 |
XSD_LONG (integer) | 134 |
XSD_INT (integer) | 135 |
XSD_SHORT (integer) | 136 |
XSD_BYTE (integer) | 137 |
XSD_NONNEGATIVEINTEGER (integer) | 138 |
XSD_UNSIGNEDLONG (integer) | 139 |
XSD_UNSIGNEDINT (integer) | 140 |
XSD_UNSIGNEDSHORT (integer) | 141 |
XSD_UNSIGNEDBYTE (integer) | 142 |
XSD_POSITIVEINTEGER (integer) | 143 |
XSD_NMTOKENS (integer) | 144 |
XSD_ANYTYPE (integer) | 145 |
XSD_ANYXML (integer) | 147 |
APACHE_MAP (integer) | 200 |
SOAP_ENC_OBJECT (integer) | 301 |
SOAP_ENC_ARRAY (integer) | 300 |
XSD_1999_TIMEINSTANT (integer) | 401 |
XSD_NAMESPACE (integer) | http://www.w3.org/2001/XMLSchema |
XSD_1999_NAMESPACE (integer) | http://www.w3.org/1999/XMLSchema |
SOAP_SINGLE_ELEMENT_ARRAYS (integer) | 1 |
SOAP_WAIT_ONE_WAY_CALLS (integer) | 2 |
SOAP_USE_XSI_ARRAY_TYPE (integer) | 4 |
WSDL_CACHE_NONE (integer) | 0 |
WSDL_CACHE_DISK (integer) | 1 |
WSDL_CACHE_MEMORY (integer) | 2 |
WSDL_CACHE_BOTH (integer) | 3 |


Функции SOAP

Содержание

  • is_soap_fault — Проверяет, произошла ли ошибка при вызове SOAP
  • use_soap_error_handler — Установить, следует ли использовать обработчик ошибок SOAP


Проверяет, произошла ли ошибка при вызове SOAP

  • « Функции SOAP
  • use_soap_error_handler »
  • PHP Manual
  • Функции SOAP
  • Проверяет, произошла ли ошибка при вызове SOAP

is_soap_fault

(PHP 5, PHP 7)

is_soap_fault — Проверяет, произошла ли ошибка при вызове SOAP

Описание

is_soap_fault ( mixed $object ) : bool

Эта функция полезна для проверки неудачи вызова SOAP, но тогда, когда не используются исключения. Для того, чтобы ее использовать, создайте объект SoapClient с опцией exceptions, равной нулю или FALSE. В этом случае метод SOAP вернет специальный объект SoapFault, который инкапсулирует детали ошибки (код ошибки, строка ошибки, получатель и детали).

Если опция exceptions не установлена, то вызов SOAP будет выбрасывать исключение при ошибке. Функция is_soap_fault() проверяет, является ли переданный параметр объектом SoapFault.

Список параметров

object

Объект для проверки.

Возвращаемые значения

Возвращается TRUE при ошибке и FALSE в противном случае.

Примеры

Пример #1 Пример использования функции is_soap_fault()

<?php
$client = new SoapClient("some.wsdl", array('exceptions' => 0));
$result = $client->SomeFunction();
if (is_soap_fault($result)) {
    trigger_error("Ошибка SOAP: (faultcode: {$result->faultcode}, faultstring: {$result->faultstring})", E_USER_ERROR);
}
?>

Пример #2 Стандартный метод SOAP для сообщений об ошибках - это исключения

<?php
try {
    $client = new SoapClient("some.wsdl");
    $result = $client->SomeFunction(/* ... */);
} catch (SoapFault $fault) {
    trigger_error("Ошибка SOAP: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
}
?>

Смотрите также

  • SoapClient::SoapClient() - Конструктор SoapClient
  • SoapFault::SoapFault() - Конструктор SoapFault


Установить, следует ли использовать обработчик ошибок SOAP

  • « is_soap_fault
  • SoapClient »
  • PHP Manual
  • Функции SOAP
  • Установить, следует ли использовать обработчик ошибок SOAP

use_soap_error_handler

(PHP 5, PHP 7)

use_soap_error_handler — Установить, следует ли использовать обработчик ошибок SOAP

Описание

use_soap_error_handler ([ bool $handler = TRUE ] ) : bool

Эта функция определяет, нужно ли использовать обработчики ошибок SOAP в SOAP-сервере. Функция возвращает предыдущее значение. Если установлено в TRUE, то подробности ошибок в приложении с классом SoapServer будут отправлены клиенту в качестве сообщения об ошибке SOAP. Если установлено в FALSE, то используется стандартный обработчик ошибок PHP. По умолчанию используется отправка сообщения об ошибке SOAP клиенту.

Список параметров

handler

Для отправки данных об ошибках клиентам необходимо установить в TRUE.

Возвращаемые значения

Возвращает предыдущее значение.

Смотрите также

  • set_error_handler() - Задает пользовательский обработчик ошибок
  • set_exception_handler() - Задает пользовательский обработчик исключений


Класс SoapClient

(PHP 5, PHP 7)

Введение

Класс SoapClient представляет собой клиента для серверов » SOAP 1.1, » SOAP 1.2. Он может использоваться в режиме с WSDL или без него.

Обзор классов

SoapClient {
/* Методы */
public __call ( string $function_name , array $arguments ) : mixed
public __construct ( mixed $wsdl [, array $options ] )
public __doRequest ( string $request , string $location , string $action , int $version [, int $one_way = 0 ] ) : string
public __getCookies ( void ) : array
public __getFunctions ( void ) : array
public __getLastRequest ( void ) : string
public __getLastRequestHeaders ( void ) : string
public __getLastResponse ( void ) : string
public __getLastResponseHeaders ( void ) : string
public __getTypes ( void ) : array
public __setCookie ( string $name [, string $value ] ) : void
public __setLocation ([ string $new_location ] ) : string
public __setSoapHeaders ([ mixed $soapheaders ] ) : bool
public __soapCall ( string $function_name , array $arguments [, array $options [, mixed $input_headers [, array &$output_headers ]]] ) : mixed
public SoapClient ( mixed $wsdl [, array $options ] )
}

Содержание

  • SoapClient::__call — Вызывает SOAP-функцию (устаревший метод)
  • SoapClient::__construct — Конструктор SoapClient
  • SoapClient::__doRequest — Выполняет SOAP-запрос
  • SoapClient::__getCookies — Получить список cookies
  • SoapClient::__getFunctions — Возвращает список доступных SOAP-функций
  • SoapClient::__getLastRequest — Возвращает последний SOAP-запрос
  • SoapClient::__getLastRequestHeaders — Возвращает SOAP-заголовки последнего запроса
  • SoapClient::__getLastResponse — Возвращает последний SOAP-ответ
  • SoapClient::__getLastResponseHeaders — Возвращает SOAP-заголовки последнего ответа
  • SoapClient::__getTypes — Возвращает список SOAP-типов
  • SoapClient::__setCookie — Устанавливает cookie
  • SoapClient::__setLocation — Устанавливает адрес используемой веб-службы
  • SoapClient::__setSoapHeaders — Устанавливает SOAP-заголовки для последующих вызовов
  • SoapClient::__soapCall — Вызывает SOAP-функцию
  • SoapClient::SoapClient — Конструктор SoapClient


Вызывает SOAP-функцию (устаревший метод)

  • « SoapClient
  • SoapClient::__construct »
  • PHP Manual
  • SoapClient
  • Вызывает SOAP-функцию (устаревший метод)

SoapClient::__call

(PHP 5, PHP 7)

SoapClient::__call — Вызывает SOAP-функцию (устаревший метод)

Описание

public SoapClient::__call ( string $function_name , array $arguments ) : mixed

Вызов этого метода напрямую устарел. Обычно функции SOAP могут вызываться как методы объекта SoapClient; в ситуациях, когда это невозможно или требуются дополнительные опции, используйте метод SoapClient::__soapCall().


Конструктор SoapClient

  • « SoapClient::__call
  • SoapClient::__doRequest »
  • PHP Manual
  • SoapClient
  • Конструктор SoapClient

SoapClient::__construct

(PHP 5, PHP 7)

SoapClient::__construct — Конструктор SoapClient

Описание

public SoapClient::__construct ( mixed $wsdl [, array $options ] )

Эта функция является псевдонимом: SoapClient::SoapClient()


Выполняет SOAP-запрос

  • « SoapClient::__construct
  • SoapClient::__getCookies »
  • PHP Manual
  • SoapClient
  • Выполняет SOAP-запрос

SoapClient::__doRequest

(PHP 5, PHP 7)

SoapClient::__doRequest — Выполняет SOAP-запрос

Описание

public SoapClient::__doRequest ( string $request , string $location , string $action , int $version [, int $one_way = 0 ] ) : string

Выполняет SOAP-запрос поверх HTTP.

Этот метод может быть переопределен в подклассах для реализации других транспортных уровней, выполнения дополнительной обработки XML или других целей.

Список параметров

request

Запрос XML SOAP.

location

URL для запроса.

action

Действие SOAP.

version

Версия SOAP.

one_way

Если one_way равен 1, метод ничего не возвращает. Этот параметр используется, когда не ожидается ответа.

Возвращаемые значения

Ответ XML SOAP.

Список изменений

Версия | Описание
5.1.3 | Добавлен параметр one_way.

Примеры

Пример #1 Пример использования SoapClient::__doRequest()

<?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, $one_way = 0) {
    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));
?>


Получить список cookies

  • « SoapClient::__doRequest
  • SoapClient::__getFunctions »
  • PHP Manual
  • SoapClient
  • Получить список cookies

SoapClient::__getCookies

(PHP 5 >= 5.4.30, PHP 7)

SoapClient::__getCookies — Получить список cookies

Описание

public SoapClient::__getCookies ( void ) : array

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Возвращает список доступных SOAP-функций

  • « SoapClient::__getCookies
  • SoapClient::__getLastRequest »
  • PHP Manual
  • SoapClient
  • Возвращает список доступных SOAP-функций

SoapClient::__getFunctions

(PHP 5, PHP 7)

SoapClient::__getFunctions — Возвращает список доступных SOAP-функций

Описание

public SoapClient::__getFunctions ( void ) : array

Возвращает массив функций, описанных в WSDL для веб-службы.

Замечание:

Эта функция работает только в режиме WSDL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) прототипов функций SOAP c описанием типа возвращаемого значения, имени функции и параметров с типами.

Примеры

Пример #1 Пример использования SoapClient::__getFunctions()

<?php
$client = new SoapClient('http://soap.amazon.com/schemas3/AmazonWebServices.wsdl');
var_dump($client->__getFunctions());
?>

Результат выполнения данного примера:

array(26) {
  [0]=>
  string(70) "ProductInfo KeywordSearchRequest(KeywordRequest $KeywordSearchRequest)"
  [1]=>
  string(79) "ProductInfo TextStreamSearchRequest(TextStreamRequest $TextStreamSearchRequest)"
  [2]=>
  string(64) "ProductInfo PowerSearchRequest(PowerRequest $PowerSearchRequest)"
...
  [23]=>
  string(107) "ShoppingCart RemoveShoppingCartItemsRequest(RemoveShoppingCartItemsRequest $RemoveShoppingCartItemsRequest)"
  [24]=>
  string(107) "ShoppingCart ModifyShoppingCartItemsRequest(ModifyShoppingCartItemsRequest $ModifyShoppingCartItemsRequest)"
  [25]=>
  string(118) "GetTransactionDetailsResponse GetTransactionDetailsRequest(GetTransactionDetailsRequest $GetTransactionDetailsRequest)"
}

Смотрите также

  • SoapClient::SoapClient() - Конструктор SoapClient


Возвращает последний SOAP-запрос

  • « SoapClient::__getFunctions
  • SoapClient::__getLastRequestHeaders »
  • PHP Manual
  • SoapClient
  • Возвращает последний SOAP-запрос

SoapClient::__getLastRequest

(PHP 5, PHP 7)

SoapClient::__getLastRequest — Возвращает последний SOAP-запрос

Описание

public SoapClient::__getLastRequest ( void ) : string

Возвращает XML, переданный в последнем SOAP-запросе.

Замечание:

Метод работает только для объекта SoapClient, созданного с настройкой trace, равной TRUE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последний SOAP-запрос в виде строки с XML.

Примеры

Пример #1 Пример использования SoapClient::__getLastRequest()

<?php
$client = new SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "ЗАПРОС:\n" . $client->__getLastRequest() . "\n";
?>

Смотрите также

  • SoapClient::__getLastRequestHeaders() - Возвращает SOAP-заголовки последнего запроса
  • SoapClient::__getLastResponse() - Возвращает последний SOAP-ответ
  • SoapClient::__getLastResponseHeaders() - Возвращает SOAP-заголовки последнего ответа


Возвращает SOAP-заголовки последнего запроса

  • « SoapClient::__getLastRequest
  • SoapClient::__getLastResponse »
  • PHP Manual
  • SoapClient
  • Возвращает SOAP-заголовки последнего запроса

SoapClient::__getLastRequestHeaders

(PHP 5, PHP 7)

SoapClient::__getLastRequestHeaders — Возвращает SOAP-заголовки последнего запроса

Описание

public SoapClient::__getLastRequestHeaders ( void ) : string

Возвращает SOAP-заголовки последнего запроса.

Замечание:

Функция работает только, если объект SoapClient был создан с настройкой trace, равной TRUE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Заголовки последнего SOAP-запроса.

Примеры

Пример #1 Пример использования SoapClient::__getLastRequestHeaders()

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "ЗАГОЛОВКИ ЗАПРОСА:\n" . $client->__getLastRequestHeaders() . "\n";
?>

Смотрите также

  • SoapClient::__getLastResponseHeaders() - Возвращает SOAP-заголовки последнего ответа
  • SoapClient::__getLastRequest() - Возвращает последний SOAP-запрос
  • SoapClient::__getLastResponse() - Возвращает последний SOAP-ответ


Возвращает последний SOAP-ответ

  • « SoapClient::__getLastRequestHeaders
  • SoapClient::__getLastResponseHeaders »
  • PHP Manual
  • SoapClient
  • Возвращает последний SOAP-ответ

SoapClient::__getLastResponse

(PHP 5, PHP 7)

SoapClient::__getLastResponse — Возвращает последний SOAP-ответ

Описание

public SoapClient::__getLastResponse ( void ) : string

Возвращает XML, полученный в последнем SOAP-ответе.

Замечание:

Метод работает только для объекта SoapClient, созданного с настройкой trace, равной TRUE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последний SOAP-ответ в виде строки с XML.

Примеры

Пример #1 Пример использования SoapClient::__getLastResponse()

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "Ответ:\n" . $client->__getLastResponse() . "\n";
?>

Смотрите также

  • SoapClient::__getLastResponseHeaders() - Возвращает SOAP-заголовки последнего ответа
  • SoapClient::__getLastRequest() - Возвращает последний SOAP-запрос
  • SoapClient::__getLastRequestHeaders() - Возвращает SOAP-заголовки последнего запроса


Возвращает SOAP-заголовки последнего ответа

  • « SoapClient::__getLastResponse
  • SoapClient::__getTypes »
  • PHP Manual
  • SoapClient
  • Возвращает SOAP-заголовки последнего ответа

SoapClient::__getLastResponseHeaders

(PHP 5, PHP 7)

SoapClient::__getLastResponseHeaders — Возвращает SOAP-заголовки последнего ответа

Описание

public SoapClient::__getLastResponseHeaders ( void ) : string

Возвращает SOAP-заголовки последнего ответа.

Замечание:

Функция работает только, если объект SoapClient был создан с настройкой trace, равной TRUE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Заголовки последнего SOAP-ответа.

Примеры

Пример #1 Пример использования SoapClient::__getLastResponse()

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "ЗАГОЛОВКИ ОТВЕТА:\n" . $client->__getLastResponseHeaders() . "\n";
?>

Смотрите также

  • SoapClient::__getLastRequestHeaders() - Возвращает SOAP-заголовки последнего запроса
  • SoapClient::__getLastRequest() - Возвращает последний SOAP-запрос
  • SoapClient::__getLastResponse() - Возвращает последний SOAP-ответ


Возвращает список SOAP-типов

  • « SoapClient::__getLastResponseHeaders
  • SoapClient::__setCookie »
  • PHP Manual
  • SoapClient
  • Возвращает список SOAP-типов

SoapClient::__getTypes

(PHP 5, PHP 7)

SoapClient::__getTypes — Возвращает список SOAP-типов

Описание

public SoapClient::__getTypes ( void ) : array

Возвращает массив типов, описанных в WSDL для веб-службы.

Замечание:

Эта функция работает только в режиме WSDL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) SOAP-типов с подробным описанием всех структур и типов.

Примеры

Пример #1 Пример использования SoapClient::__getTypes()

<?php
$client = new SoapClient('http://soap.amazon.com/schemas3/AmazonWebServices.wsdl');
var_dump($client->__getTypes());
?>

Результат выполнения данного примера:

array(88) {
  [0]=>
  string(30) "ProductLine ProductLineArray[]"
  [1]=>
  string(85) "struct ProductLine {
 string Mode;
 string RelevanceRank;
 ProductInfo ProductInfo;
}"
  [2]=>
  string(105) "struct ProductInfo {
 string TotalResults;
 string TotalPages;
 string ListName;
 DetailsArray Details;
}"
...
  [85]=>
  string(32) "ShortSummary ShortSummaryArray[]"
  [86]=>
  string(121) "struct GetTransactionDetailsRequest {
 string tag;
 string devtag;
 string key;
 OrderIdArray OrderIds;
 string locale;
}"
  [87]=>
  string(75) "struct GetTransactionDetailsResponse {
 ShortSummaryArray ShortSummaries;
}"
}

Смотрите также

  • SoapClient::SoapClient() - Конструктор SoapClient


Устанавливает cookie

  • « SoapClient::__getTypes
  • SoapClient::__setLocation »
  • PHP Manual
  • SoapClient
  • Устанавливает cookie

SoapClient::__setCookie

(PHP 5 >= 5.0.4, PHP 7)

SoapClient::__setCookie — Устанавливает cookie

Описание

public SoapClient::__setCookie ( string $name [, string $value ] ) : void

Определяет cookie, которые будут отправлены с SOAP-запросами.

Замечание:

Вызов этого метода повляет на все последующие вызовы методов SoapClient.

Список параметров

name

Имя cookie.

value

Значение cookie. Если не указано, то cookie будет удален.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает адрес используемой веб-службы

  • « SoapClient::__setCookie
  • SoapClient::__setSoapHeaders »
  • PHP Manual
  • SoapClient
  • Устанавливает адрес используемой веб-службы

SoapClient::__setLocation

(PHP 5 >= 5.0.4, PHP 7)

SoapClient::__setLocation — Устанавливает адрес используемой веб-службы

Описание

public SoapClient::__setLocation ([ string $new_location ] ) : string

Устанавливает URL конечной точки, затрагивающий последующие SOAP-запросы. Эквивалентна настройке location, указываемой в конструкторе SoapClient.

Замечание:

Вызов метода необязателен. По умолчанию SoapClient использует адрес из WSDL-файла.

Список параметров

new_location

Новый URL конечной точки.

Возвращаемые значения

Старый URL конечной точки.

Примеры

Пример #1 Пример использования SoapClient::__setLocation()

<?php
$client = new SoapClient('http://example.com/webservice.php?wsdl');

$client->__setLocation('http://www.somethirdparty.com');

$old_location = $client->__setLocation(); // сбрасывает настройку адреса

echo $old_location;

?>

Результатом выполнения данного примера будет что-то подобное:

http://www.somethirdparty.com

Смотрите также

  • SoapClient::SoapClient() - Конструктор SoapClient


Устанавливает SOAP-заголовки для последующих вызовов

  • « SoapClient::__setLocation
  • SoapClient::__soapCall »
  • PHP Manual
  • SoapClient
  • Устанавливает SOAP-заголовки для последующих вызовов

SoapClient::__setSoapHeaders

(PHP 5 >= 5.0.5, PHP 7)

SoapClient::__setSoapHeaders — Устанавливает SOAP-заголовки для последующих вызовов

Описание

public SoapClient::__setSoapHeaders ([ mixed $soapheaders ] ) : bool

Определяет заголовки для отправки вместе с SOAP-запросами.

Замечание:

Вызов этого метода заменит любые предыдущие значения.

Список параметров

soapheaders

Устанавливаемые заголовки. Это может быть объект SoapHeader или массив объектов SoapHeader. Если не указано или равно NULL, заголовки будут удалены.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SoapClient::__setSoapHeaders()

<?php

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$header = new SoapHeader('http://soapinterop.org/echoheader/',
                            'echoMeStringRequest',
                            'hello world');

$client->__setSoapHeaders($header);

$client->__soapCall("echoVoid", null);
?>

Пример #2 Установка нескольких заголовков

<?php

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$headers = array();

$headers[] = new SoapHeader('http://soapinterop.org/echoheader/',
                            'echoMeStringRequest',
                            'hello world');

$headers[] = new SoapHeader('http://soapinterop.org/echoheader/',
                            'echoMeStringRequest',
                            'hello world again');

$client->__setSoapHeaders($headers);

$client->__soapCall("echoVoid", null);
?>


Вызывает SOAP-функцию

  • « SoapClient::__setSoapHeaders
  • SoapClient::SoapClient »
  • PHP Manual
  • SoapClient
  • Вызывает SOAP-функцию

SoapClient::__soapCall

(PHP 5, PHP 7)

SoapClient::__soapCall — Вызывает SOAP-функцию

Описание

public SoapClient::__soapCall ( string $function_name , array $arguments [, array $options [, mixed $input_headers [, array &$output_headers ]]] ) : mixed

Это низкоуровневая функция API, которая позволяет сделать SOAP-вызов. Обычно в режиме WSDL функции SOAP вызываются как методы объекта SoapClient. Этот метод полезен в режиме, отличном от WSDL, когда soapaction неизвестен, uri отличается от URI по умолчанию или при отправке и/или получении SOAP-заголовков.

В случае ошибки вызов SOAP-функции может привести к исключению или к возврату объекта SoapFault, если исключения отключены. Чтобы проверить, что вызов функции завершился неудачей, поймав исключение SoapFault, проверьте результат с помощью is_soap_fault().

Список параметров

function_name

Имя вызываемой SOAP-функции.

arguments

Массив аргументов, передаваемых в функцию. Это может быть упорядоченный или ассоциативный массив. Обратите внимание, что большинство SOAP-серверов требуют предоставлять имена параметров, и в этом случае это должен быть ассоциативный массив.

options

Ассоциативный массив настроек, передаваемых клиенту.

Настройка location - URL удаленной веб-службы.

Настройка uri - целевое пространство имен SOAP-службы.

Настройка soapaction - действие для вызова.

input_headers

Массив заголовков, отправляемых вместе с SOAP-запросом.

output_headers

Если указан, то этот массив будет заполнен заголовками из SOAP-ответа.

Возвращаемые значения

SOAP-функции могут возвращать одно или несколько значений. Если SOAP-функция возвращает только одно значение, то __soapCall вернет простое значение (например, целое число, строку и т.д.). Если возвращается несколько значений, то __soapCall вернет ассоциативный массив именованных возвращаемых параметров.

В случае ошибки, если объект SoapClient был создан с настройкой exceptions, установленной в FALSE, будет возвращен объект SoapFault.

Примеры

Пример #1 Пример использования SoapClient::__soapCall()

<?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::SoapClient() - Конструктор SoapClient
  • SoapParam::SoapParam() - Конструктор SoapParam
  • SoapVar::SoapVar() - Конструктор SoapVar
  • SoapHeader::SoapHeader() - Конструктор SoapHeader
  • SoapFault::SoapFault() - Конструктор SoapFault
  • is_soap_fault() - Проверяет, произошла ли ошибка при вызове SOAP


Конструктор SoapClient

  • « SoapClient::__soapCall
  • SoapServer »
  • PHP Manual
  • SoapClient
  • Конструктор SoapClient

SoapClient::SoapClient

(PHP 5, PHP 7)

SoapClient::SoapClient — Конструктор SoapClient

Описание

public SoapClient::SoapClient ( mixed $wsdl [, array $options ] )

Конструктор создает объекты SoapClient в режиме WSDL или не-WSDL.

Список параметров

wsdl

URI файла WSDL или NULL, если работа происходит в режиме не-WSDL.

Замечание:

Во время разработки кеширование WSDL можно отключить, используя настройку soap.wsdl_cache_ttl в php.ini, иначе изменения, сделанные в WSDL файле, не будут иметь эффекта до тех пор, пока не истечет время, указанное в soap.wsdl_cache_ttl.

options

Массив настроек. Если работа происходит в режиме WSDL, то этот параметр необязательный. Если в не-WSDL режиме, то должны быть установлены опции location и uri, где location - URL сервера SOAP, к которому отправляется запрос, а uri - целевое пространство имен SOAP-сервиса.

Опции style и use используются только в не-WSDL режиме. В режиме WSDL они поступают из WSDL-файла.

Опция soap_version должна быть равна либо SOAP_1_1, либо SOAP_1_2, чтобы использовать соответственно SOAP 1.1 или 1.2. Если параметр пропущен, то используется 1.1.

Для HTTP-аутентификации могут быть использованы опции login и password для предоставления учетных данных. Для реализации HTTP-соединения через прокси-сервер доступны настройки proxy_host, proxy_port, proxy_login и proxy_password. Для аутентификации сертификата клиента HTTPS используются опции local_cert и passphrase. Аутентификация может быть предоставлена в опции authentication. Метод аутентификации может быть SOAP_AUTHENTICATION_BASIC (по умолчанию) или SOAP_AUTHENTICATION_DIGEST.

Опция compression позволяет использовать сжатие запросов и ответов HTTP SOAP.

Опция encoding определяет внутреннюю кодировку. Опция не меняет кодировку SOAP-запросов (она всегда utf-8), но преобразует строки в нее.

Опция trace включает отслеживание запроса и в случае ошибки можно получить обратную трассировку. По умолчанию имеет значение FALSE.

Опция classmap может использоваться для сопоставления некоторых WSDL-типов с PHP-классами. Опция должна представлять собой массив, в качестве ключей которого указаны WSDL-типы, а в качестве значений - имена классов PHP.

Установленная булевая опция trace
позволяет использовать следующие методы:

SoapClient->__getLastRequest,

SoapClient->__getLastRequestHeaders,

SoapClient->__getLastResponse и

SoapClient->__getLastResponseHeaders.

Опция exceptions принимает логическое значение, определяющее, будут ли SOAP-ошибки бросать исключения типа SoapFault.

Опция connection_timeout определяет тайм-аут в секундах для соединения с SOAP-сервисом. Опция не устанавливает тайм-аут для сервисов с медленными ответами. Для ограничения времени ожидания вызовов используется default_socket_timeout.

Опция typemap является массивом сопоставления типов. Массив сопоставления типов - это массив с ключами type_name, type_ns (URI пространства имен), from_xml (функция обратного вызова принимает один строковый параметр) и to_xml (функция обратного вызова принимает объект в качестве параметра).

Опция cache_wsdl принимает одно из значений: WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY или WSDL_CACHE_BOTH.

Опция user_agent определяет строку для использования в заголовке User-Agent.

Опция stream_context - это resource для context.

Опция features является битовой маской SOAP_SINGLE_ELEMENT_ARRAYS, SOAP_USE_XSI_ARRAY_TYPE, SOAP_WAIT_ONE_WAY_CALLS.

Опция keep_alive является логическим значением, определяющим, какой заголовок отправлять: Connection: Keep-Alive или Connection: close.

Опция ssl_method должна быть равной SOAP_SSL_METHOD_TLS, SOAP_SSL_METHOD_SSLv2, SOAP_SSL_METHOD_SSLv3 или SOAP_SSL_METHOD_SSLv23.

Ошибки

SoapClient::SoapClient() генерирует ошибку E_ERROR, если опции location и uri не передаются в не-WSDL режиме.

Исключение SoapFault будет выбрасываться, если wsdl URI не может быть загружен.

Список изменений

Версия | Описание
5.5.0 | Новая опция ssl_method.
5.4.0 | Новая опция keep_alive.

Примеры

Пример #1 Пример использования SoapClient::SoapClient()

<?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));

$client = new SoapClient("some.wsdl", array('encoding'=>'ISO-8859-1'));

class MyBook {
    public $title;
    public $author;
}

$client = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook")));

?>


Класс SoapServer

(PHP 5, PHP 7)

Введение

Класс SoapServer представляет собой сервер для протоколов » SOAP 1.1 и » SOAP 1.2. Его можно использовать с описанием службы WSDL или без него.

Обзор классов

SoapServer {
/* Методы */
public addFunction ( mixed $functions ) : void
public addSoapHeader ( SoapHeader $object ) : void
public __construct ( mixed $wsdl [, array $options ] )
public fault ( string $code , string $string [, string $actor [, string $details [, string $name ]]] ) : void
public getFunctions ( void ) : array
public handle ([ string $soap_request ] ) : void
public setClass ( string $class_name [, mixed $... ] ) : void
public setObject ( object $object ) : void
public setPersistence ( int $mode ) : void
public SoapServer ( mixed $wsdl [, array $options ] )
}

Содержание

  • SoapServer::addFunction — Добавляет одну или несколько функций для обработки запросов SOAP
  • SoapServer::addSoapHeader — Добавить заголовок SOAP в ответ
  • SoapServer::__construct — Конструктор SoapServer
  • SoapServer::fault — Вынуждает SoapServer вернуть ошибку
  • SoapServer::getFunctions — Вернуть список определенных функций
  • SoapServer::handle — Обработка SOAP-запроса
  • SoapServer::setClass — Устанавливает класс, который обрабатывает SOAP-запросы
  • SoapServer::setObject — Устанавливает объект, который будет использоваться для обработки SOAP-запросов
  • SoapServer::setPersistence — Устанавливает режим сохранения SoapServer
  • SoapServer::SoapServer — Конструктор SoapServer


Добавляет одну или несколько функций для обработки запросов SOAP

  • « SoapServer
  • SoapServer::addSoapHeader »
  • PHP Manual
  • SoapServer
  • Добавляет одну или несколько функций для обработки запросов SOAP

SoapServer::addFunction

(PHP 5, PHP 7)

SoapServer::addFunction — Добавляет одну или несколько функций для обработки запросов SOAP

Описание

public SoapServer::addFunction ( mixed $functions ) : void

Экспортирует одну или несколько функций удаленному клиенту

Список параметров

functions

Для экспорта одной функции, передайте в этот параметр ее имя в виде строки.

Для экспорта нескольких функций, передайте в этот параметр массив с именами функций.

Для экспорта всех функций, задайте параметр константой SOAP_FUNCTIONS_ALL.

Замечание:

Параметр functions должен принимать все входящие аргументы в том же порядке, как они определены в файле WSDL (они не должны принимать никаких возвращаемых параметров в качестве аргументов) и должны возвращать одно или больше значений. Для возврата нескольких значений, они должны возвращать массив с именованными возвращаемыми параметрами.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SoapServer::addFunction()

<?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::SoapServer() - Конструктор SoapServer
  • SoapServer::setClass() - Устанавливает класс, который обрабатывает SOAP-запросы


Добавить заголовок SOAP в ответ

  • « SoapServer::addFunction
  • SoapServer::__construct »
  • PHP Manual
  • SoapServer
  • Добавить заголовок SOAP в ответ

SoapServer::addSoapHeader

(PHP 5 >= 5.1.3, PHP 7)

SoapServer::addSoapHeader — Добавить заголовок SOAP в ответ

Описание

public SoapServer::addSoapHeader ( SoapHeader $object ) : void

Добавляет заголовок SOAP в возвращаемый ответ на текущий запрос.

Список параметров

object

Возвращаемый заголовок.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Конструктор SoapServer

  • « SoapServer::addSoapHeader
  • SoapServer::fault »
  • PHP Manual
  • SoapServer
  • Конструктор SoapServer

SoapServer::__construct

(PHP 5, PHP 7)

SoapServer::__construct — Конструктор SoapServer

Описание

public SoapServer::__construct ( mixed $wsdl [, array $options ] )

Эта функция является псевдонимом: SoapServer::SoapServer()


Вынуждает SoapServer вернуть ошибку

  • « SoapServer::__construct
  • SoapServer::getFunctions »
  • PHP Manual
  • SoapServer
  • Вынуждает SoapServer вернуть ошибку

SoapServer::fault

(PHP 5, PHP 7)

SoapServer::fault — Вынуждает SoapServer вернуть ошибку

Описание

public SoapServer::fault ( string $code , string $string [, string $actor [, string $details [, string $name ]]] ) : void

Отправляет клиенту ответ на текущий запрос с сообщением об ошибке.

Замечание:

Может быть вызвана только во время обработки запроса.

Список параметров

code

Код возвращаемой ошибки

string

Краткое описание ошибки

actor

Строка, идентифицирующая отправителя, вызвавшего ошибку

details

Детальная информация об ошибке

name

Имя ошибки. Может использоваться для выбора имени из WSDL-файла.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SoapFault::SoapFault() - Конструктор SoapFault


Вернуть список определенных функций

  • « SoapServer::fault
  • SoapServer::handle »
  • PHP Manual
  • SoapServer
  • Вернуть список определенных функций

SoapServer::getFunctions

(PHP 5, PHP 7)

SoapServer::getFunctions — Вернуть список определенных функций

Описание

public SoapServer::getFunctions ( void ) : array

Вернуть список определенных функций в объекте SoapServer. Этот метод возвращает список всех функций, добавленных с помощью SoapServer::addFunction() или SoapServer::setClass().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив определенных функций.

Примеры

Пример #1 Пример использования SoapServer::getFunctions()

<?php
$server = new SoapServer(NULL, array("uri" => "http://test-uri"));
$server->addFunction(SOAP_FUNCTIONS_ALL);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $server->handle();
} else {
  echo "Этот сервер SOAP может обрабатывать следующие функции: ";
  $functions = $server->getFunctions();
  foreach($functions as $func) {
    echo $func . "\n";
  }
}
?>

Смотрите также

  • SoapServer::SoapServer() - Конструктор SoapServer
  • SoapServer::addFunction() - Добавляет одну или несколько функций для обработки запросов SOAP
  • SoapServer::setClass() - Устанавливает класс, который обрабатывает SOAP-запросы


Обработка SOAP-запроса

  • « SoapServer::getFunctions
  • SoapServer::setClass »
  • PHP Manual
  • SoapServer
  • Обработка SOAP-запроса

SoapServer::handle

(PHP 5, PHP 7)

SoapServer::handle — Обработка SOAP-запроса

Описание

public SoapServer::handle ([ string $soap_request ] ) : void

Обрабатывает SOAP-запрос, вызывает необходимые функции и отправляет ответ клиенту.

Список параметров

soap_request

SOAP-запрос. Если аргумент не задан, предполагается, что запрос находится в необработанных POST-данных HTTP-запроса.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SoapServer::handle()

<?php
function test($x)
{
    return $x;
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Смотрите также

  • SoapServer::SoapServer() - Конструктор SoapServer


Устанавливает класс, который обрабатывает SOAP-запросы

  • « SoapServer::handle
  • SoapServer::setObject »
  • PHP Manual
  • SoapServer
  • Устанавливает класс, который обрабатывает SOAP-запросы

SoapServer::setClass

(PHP 5, PHP 7)

SoapServer::setClass — Устанавливает класс, который обрабатывает SOAP-запросы

Описание

public SoapServer::setClass ( string $class_name [, mixed $... ] ) : void

Экспортирует все методы из указанного класса.

Чтобы сохранить объект для каждого последующего запроса в рамках данной PHP-сессии, можно использовать метод SoapServer::setPersistence().

Список параметров

class_name

Имя экспортируемого класса.

...

Эти необязательные параметры будут переданы конструктору класса при создания объекта.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SoapServer::SoapServer() - Конструктор SoapServer
  • SoapServer::addFunction() - Добавляет одну или несколько функций для обработки запросов SOAP
  • SoapServer::setPersistence() - Устанавливает режим сохранения SoapServer


Устанавливает объект, который будет использоваться для обработки SOAP-запросов

  • « SoapServer::setClass
  • SoapServer::setPersistence »
  • PHP Manual
  • SoapServer
  • Устанавливает объект, который будет использоваться для обработки SOAP-запросов

SoapServer::setObject

(PHP 5 >= 5.2.0, PHP 7)

SoapServer::setObject — Устанавливает объект, который будет использоваться для обработки SOAP-запросов

Описание

public SoapServer::setObject ( object $object ) : void

Устанавливает объект, который будет использоваться для обработки SOAP-запросов, а не только класс, как в SoapServer::setClass().

Список параметров

object

Объект для обработки запросов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SoapServer::setClass() - Устанавливает класс, который обрабатывает SOAP-запросы


Устанавливает режим сохранения SoapServer

  • « SoapServer::setObject
  • SoapServer::SoapServer »
  • PHP Manual
  • SoapServer
  • Устанавливает режим сохранения SoapServer

SoapServer::setPersistence

(PHP 5, PHP 7)

SoapServer::setPersistence — Устанавливает режим сохранения SoapServer

Описание

public SoapServer::setPersistence ( int $mode ) : void

Эта функция позволяет изменять режим сохранения объекта SoapServer между запросами. Эта функция позволяет сохранять данные между запросами используя механизм сессий PHP. Этот метод влияет только на SoapServer после экспорта функций, используя SoapServer::setClass().

Замечание:

Сохранение SOAP_PERSISTENCE_SESSION гарантирует сохранение только объектов заданного класса, но не статические данные класса. В этом случае используйте $this->bar вместо self::$bar.

Замечание:

SOAP_PERSISTENCE_SESSION сериализует данные объекта класса и сохраняет их между запросами. Для корректной работы с ресурсами (например, PDO), следует использовать магические методы __wakeup() и __sleep().

Список параметров

mode

Одна из констант SOAP_PERSISTENCE_XXX.

SOAP_PERSISTENCE_REQUEST - данные SoapServer не сохраняются между запросами. Это поведение по умолчанию любого объекта SoapServer после вызова setClass.

SOAP_PERSISTENCE_SESSION - данные SoapServer сохраняются между запросами. Это достигается путем сериализации объекта SoapServer в $_SESSION['_bogus_session_name'], следовательно необходимо вызвать session_start() перед включением этого режима.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SoapServer::setPersistence()

<?php
 class MyFirstPersistentSoapServer {
     private $resource; // (Такие как PDO, mysqli и т.д.)
     public $myvar1;
     public $myvar2;

     public function __construct() {
         $this->__wakeup(); // Вызываем __wakeup для пересоздания $resource
     }

     public function __wakeup() {
         $this->resource = CodeToStartOurResourceUp();
     }

     public function __sleep() {
         // Не сохраняем $resource здесь.
         // Ошибка в этом методе приведет к тому, что при последующей десериализации
         // мы не сможем восстановить состояние объекта.
         return array('myvar1','myvar2');
     }
 }

 try {
     session_start();
     $server = new SoapServer(null, array('uri' => $_SERVER['REQUEST_URI']));
     $server->setClass('MyFirstPersistentSoapServer');
     // setPersistence НЕОБХОДИМО вызвать после setClass, поскольку setClass
     // принудительно устанавливает SESSION_PERSISTENCE_REQUEST.
     $server->setPersistence(SOAP_PERSISTENCE_SESSION);
     $server->handle();
 } catch(SoapFault $e) {
     error_log("ОШИБКА SOAP: ". $e->getMessage());
 }
?>

Смотрите также

  • SoapServer::setClass() - Устанавливает класс, который обрабатывает SOAP-запросы


Конструктор SoapServer

  • « SoapServer::setPersistence
  • SoapFault »
  • PHP Manual
  • SoapServer
  • Конструктор SoapServer

SoapServer::SoapServer

(PHP 5, PHP 7)

SoapServer::SoapServer — Конструктор SoapServer

Описание

public SoapServer::SoapServer ( mixed $wsdl [, array $options ] )

Данный конструктор позволяет создавать объекты SoapServer в WSDL или не-WSDL режимах.

Список параметров

wsdl

Для использования SoapServer в режиме WSDL, укажите URI WSDL-файла. В противном случае укажите NULL и установите опцию uri равной пространству имен сервера.

options

Попытка установить версию SOAP по умолчанию (soap_version), внутреннюю кодировку (encoding) и URI отправителя (actor).

Опцию classmap можно использовать для сопоставления некоторых типов WSDL с классами PHP. Данная опция должна быть массивом с ключами равными типам WSDL и значениям равными именам классов PHP.

Опция typemap является массивом сопоставления типов. Массив с ключами type_name, type_ns (URI пространства имен), from_xml (callback-функция, принимающая один строковый параметр) и to_xml (callback-функция, принимающая один объект в качестве параметр).

Опция cache_wsdl задается одной из констант: WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY или WSDL_CACHE_BOTH.

Также есть опция features, которая задается одной из констант: SOAP_WAIT_ONE_WAY_CALLS, SOAP_SINGLE_ELEMENT_ARRAYS или SOAP_USE_XSI_ARRAY_TYPE.

опция send_errors может быть установлена в FALSE для отправки общего сообщения об ошибке ("Internal error") вместо специального сообщения об ошибке, отправляемого в противном случае.

Примеры

Пример #1 Пример использования SoapServer::SoapServer()

<?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")));

?>

Список изменений

Версия | Описание
5.2.0 | Добавлена опция typemap.

Смотрите также

  • SoapClient::SoapClient() - Конструктор SoapClient


Класс SoapFault

(PHP 5, PHP 7)

Введение

Представляет ошибку SOAP.

Обзор классов

SoapFault extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
__construct ( string $faultcode , string $faultstring [, string $faultactor [, string $detail [, string $faultname [, string $headerfault ]]]] )
SoapFault ( string $faultcode , string $faultstring [, string $faultactor [, string $detail [, string $faultname [, string $headerfault ]]]] )
public __toString ( void ) : string
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Содержание

  • SoapFault::__construct — Конструктор SoapFault
  • SoapFault::SoapFault — Конструктор SoapFault
  • SoapFault::__toString — Получить текстовое представление SoapFault


Конструктор SoapFault

  • « SoapFault
  • SoapFault::SoapFault »
  • PHP Manual
  • SoapFault
  • Конструктор SoapFault

SoapFault::__construct

(PHP 5, PHP 7)

SoapFault::__construct — Конструктор SoapFault

Описание

SoapFault::__construct ( string $faultcode , string $faultstring [, string $faultactor [, string $detail [, string $faultname [, string $headerfault ]]]] )

Эта функция является псевдонимом: SoapFault::SoapFault()


Конструктор SoapFault

  • « SoapFault::__construct
  • SoapFault::__toString »
  • PHP Manual
  • SoapFault
  • Конструктор SoapFault

SoapFault::SoapFault

(PHP 5, PHP 7)

SoapFault::SoapFault — Конструктор SoapFault

Описание

SoapFault::SoapFault ( string $faultcode , string $faultstring [, string $faultactor [, string $detail [, string $faultname [, string $headerfault ]]]] )

Этот класс служит для отправки ответа на ошибку SOAP из обработчика PHP. faultcode, faultstring, faultactor и detail являются стандартными элементами ошибки SOAP.

Список параметров

faultcode

Код ошибки SoapFault.

faultstring

Сообщение об ошибке SoapFault.

faultactor

Строка идентифицирующая отправителя, вызвавшего ошибку.

detail

Детальная информация о причинах ошибки.

faultname

Может быть использовано для выбора корректной кодировки ошибки из WSDL.

headerfault

Может быть использовано во время обработки заголовка SOAP для сообщения об ошибке в заголовке ответа.

Примеры

Пример #1 Несколько примеров

<?php
function test($x)
{
    return new SoapFault("Server", "Сообщение об ошибке");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Можно использовать механизм исключений PHP для сообщения об ошибках SOAP.

Пример #2 Несколько примеров

<?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();
?>

Смотрите также

  • SoapServer::fault() - Вынуждает SoapServer вернуть ошибку
  • is_soap_fault() - Проверяет, произошла ли ошибка при вызове SOAP


Получить текстовое представление SoapFault

  • « SoapFault::SoapFault
  • SoapHeader »
  • PHP Manual
  • SoapFault
  • Получить текстовое представление SoapFault

SoapFault::__toString

(PHP 5, PHP 7)

SoapFault::__toString — Получить текстовое представление SoapFault

Описание

public SoapFault::__toString ( void ) : string

Возвращает текстовое представление SoapFault.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текстовое представление SoapFault.


Класс SoapHeader

(PHP 5, PHP 7)

Введение

Представляет заголовок SOAP.

Обзор классов

SoapHeader {
/* Методы */
__construct ( string $namespace , string $name [, mixed $data [, bool $mustunderstand [, string $actor ]]] )
SoapHeader ( string $namespace , string $name [, mixed $data [, bool $mustunderstand = FALSE [, string $actor ]]] )
}

Содержание

  • SoapHeader::__construct — Конструктор SoapHeader
  • SoapHeader::SoapHeader — Конструктор SoapHeader


Конструктор SoapHeader

  • « SoapHeader
  • SoapHeader::SoapHeader »
  • PHP Manual
  • SoapHeader
  • Конструктор SoapHeader

SoapHeader::__construct

(PHP 5, PHP 7)

SoapHeader::__construct — Конструктор SoapHeader

Описание

SoapHeader::__construct ( string $namespace , string $name [, mixed $data [, bool $mustunderstand [, string $actor ]]] )

Эта функция является псевдонимом: SoapHeader::SoapHeader()


Конструктор SoapHeader

  • « SoapHeader::__construct
  • SoapParam »
  • PHP Manual
  • SoapHeader
  • Конструктор SoapHeader

SoapHeader::SoapHeader

(PHP 5, PHP 7)

SoapHeader::SoapHeader — Конструктор SoapHeader

Описание

SoapHeader::SoapHeader ( string $namespace , string $name [, mixed $data [, bool $mustunderstand = FALSE [, string $actor ]]] )

Создает новый объект SoapHeader.

Список параметров

namespace

Пространство имен для элемента заголовка SOAP.

name

Имя объекта SoapHeader.

data

Содержимое заголовка SOAP. Может быть как значением PHP, так и объектом SoapVar.

mustUnderstand

Значение атрибута mustUnderstand элемента заголовка SOAP.

actor

Значение атрибута actor элемента заголовка SOAP.

Примеры

Пример #1 Пример использования SoapHeader::SoapHeader()

<?php
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->__soapCall("echoVoid", null, null,
                new SoapHeader('http://soapinterop.org/echoheader/',
                               'echoMeStringRequest',
                               'hello world'));
?>

Смотрите также

  • SoapClient::__soapCall() - Вызывает SOAP-функцию
  • SoapVar::SoapVar() - Конструктор SoapVar
  • SoapParam::SoapParam() - Конструктор SoapParam
  • SoapServer::addSoapHeader() - Добавить заголовок SOAP в ответ


Класс SoapParam

(PHP 5, PHP 7)

Введение

Представляет параметры для вызова SOAP.

Обзор классов

SoapParam {
/* Методы */
__construct ( mixed $data , string $name )
SoapParam ( mixed $data , string $name )
}

Содержание

  • SoapParam::__construct — Конструктор SoapParam
  • SoapParam::SoapParam — Конструктор SoapParam


Конструктор SoapParam

  • « SoapParam
  • SoapParam::SoapParam »
  • PHP Manual
  • SoapParam
  • Конструктор SoapParam

SoapParam::__construct

(PHP 5, PHP 7)

SoapParam::__construct — Конструктор SoapParam

Описание

SoapParam::__construct ( mixed $data , string $name )

Эта функция является псевдонимом: SoapParam::SoapParam()


Конструктор SoapParam

  • « SoapParam::__construct
  • SoapVar »
  • PHP Manual
  • SoapParam
  • Конструктор SoapParam

SoapParam::SoapParam

(PHP 5, PHP 7)

SoapParam::SoapParam — Конструктор SoapParam

Описание

SoapParam::SoapParam ( mixed $data , string $name )

Создает новый объект SoapParam.

Список параметров

data

Данные для передачи или возврата. Этот параметр может передаваться непосредственно как значение PHP, но в этом случае он будет называться paramN, и служба SOAP может его не понять.

name

Имя параметра.

Примеры

Пример #1 Пример использования SoapParam::SoapParam()

<?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() - Вызывает SOAP-функцию
  • SoapVar::SoapVar() - Конструктор SoapVar


Класс SoapVar

(PHP 5, PHP 7)

Введение

Класс, представляющий переменную или объект для использования с сервисами SOAP.

Обзор классов

SoapVar {
/* Методы */
__construct ( mixed $data , string $encoding [, string $type_name [, string $type_namespace [, string $node_name [, string $node_namespace ]]]] )
SoapVar ( mixed $data , string $encoding [, string $type_name [, string $type_namespace [, string $node_name [, string $node_namespace ]]]] )
}

Содержание

  • SoapVar::__construct — Конструктор SoapVar
  • SoapVar::SoapVar — Конструктор SoapVar


Конструктор SoapVar

  • « SoapVar
  • SoapVar::SoapVar »
  • PHP Manual
  • SoapVar
  • Конструктор SoapVar

SoapVar::__construct

(PHP 5, PHP 7)

SoapVar::__construct — Конструктор SoapVar

Описание

SoapVar::__construct ( mixed $data , string $encoding [, string $type_name [, string $type_namespace [, string $node_name [, string $node_namespace ]]]] )

Эта функция является псевдонимом: SoapVar::SoapVar()


Конструктор SoapVar

  • « SoapVar::__construct
  • Yar »
  • PHP Manual
  • SoapVar
  • Конструктор SoapVar

SoapVar::SoapVar

(PHP 5, PHP 7)

SoapVar::SoapVar — Конструктор SoapVar

Описание

SoapVar::SoapVar ( mixed $data , string $encoding [, string $type_name [, string $type_namespace [, string $node_name [, string $node_namespace ]]]] )

Создает новый объект SoapVar.

Список параметров

data

Данные для передачи или возврата.

encoding

Идентификатор кодировки, одна из констант XSD_....

type_name

Имя типа.

type_namespace

Пространство имен типа.

node_name

Имя узла XML.

node_namespace

Пространство имен узла XML.

Примеры

Пример #1 Пример использования SoapVar::SoapVar()

<?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() - Вызывает SOAP-функцию
  • SoapParam::SoapParam() - Конструктор SoapParam


Еще один RPC-фреймворк

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Yar_Server — Класс Yar_Server
    • Yar_Server::__construct — Конструктор Yar_Server
    • Yar_Server::handle — Запустить сервер RPC
  • Yar_Client — Класс Yar_Client
    • Yar_Client::__call — Вызов сервиса
    • Yar_Client::__construct — Конструктор Yar_Client
    • Yar_Client::setOpt — Задать контекст вызова
  • Yar_Concurrent_Client — Класс Yar_Concurrent_Client
    • Yar_Concurrent_Client::call — Зарегистрировать конкурентный вызов
    • Yar_Concurrent_Client::loop — Запуск всех харегистрированный вызовов
    • Yar_Concurrent_Client::reset — Очистить все зарегистрированные вызовы
  • Yar_Server_Exception — Класс Yar_Server_Exception
    • Yar_Server_Exception::getType — Получить тип исключения
  • Yar_Client_Exception — Класс Yar_Client_Exception
    • Yar_Client_Exception::getType — Получить тип исключения


Введение

Yar - это RPC-фреймворк, нацеленный на обеспечение простого пути для общения между разными приложениями PHP. Он позволяет вызывать множество удаленных сервисов в конкурентном режиме.


Требования

Если вы хотите использовать msgpack в качестве обортки, вам надо скомпилировать Yar таким образом ./configure --enable-msgpack


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/yar.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Yar Опции настройки
Имя | По умолчанию | Место изменения | Список изменений
yar.packager | php | PHP_INI_SYSTEM |
yar.debug | Off | PHP_INI_ALL |
yar.connect_timeout | 1000 | PHP_INI_ALL |
yar.timeout | 5000 | PHP_INI_ALL |
yar.expose_info | On | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

yar.packager string

может быть php, json и msgpack (требуется встроенная поддержка msgpack)

yar.debug string

yar.connect_timeout integer

тайм-аут соединения в миллисекундах

yar.timeout integer

тайм-аут в миллисекундах

yar.expose_info bool

раскрывать ли данные сервера (при доступе с помощью GET)


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

YAR_VERSION (string)
YAR_CLIENT_PROTOCOL_HTTP (integer)
YAR_OPT_PACKAGER (integer)
YAR_OPT_TIMEOUT (integer)
YAR_OPT_CONNECT_TIMEOUT (integer)
YAR_OPT_HEADER (array)
С версии 2.0.4
YAR_PACKAGER_PHP (string)
YAR_PACKAGER_JSON (string)
YAR_ERR_OKEY (integer)
YAR_ERR_OUTPUT (integer)
YAR_ERR_TRANSPORT (integer)
YAR_ERR_REQUEST (integer)
YAR_ERR_PROTOCOL (integer)
YAR_ERR_PACKAGER (integer)
YAR_ERR_EXCEPTION (integer)


Примеры

Пример #1 Пример сервера Yar

<?php

/* Предположим, что это страница может быть доступна по http://example.com/operator.php */

class Operator {

    /**
     * Складываем два операнда
     * @param interge
     * @return interge
     */
    public function add($a, $b) {
        return $this->_add($a, $b);
    }

    /**
     * Вычитаем
     */
    public function sub($a, $b) {
        return $a - $b;
    }

    /**
     * Умножаем
     */
    public function mul($a, $b) {
        return $a * $b;
    }

    /**
     * Защищенный метод
     * @param interge
     * @return interge
     */
    protected function _add($a, $b) {
        return $a + $b;
    }
}

$server = new Yar_Server(new Operator());
$server->handle();
?>

Пример #2 Обращаемся к серверу из браузера (запрос GET)

Результатом выполнения данного примера будет что-то подобное:

Информация о сервере Yar

Пример #3 Пример клиента Yar

<?php
$client = new yar_client("http://example.com/operator.php");

/* вызываем напрямую */
var_dump($client->add(1, 2));

/* вызываем через метод call */
var_dump($client->call("add", array(3, 2)));

/* невозможно вызвать __add */
var_dump($client->_add(1, 2));
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)
int(5)
PHP Fatal error:  Uncaught exception 'Yar_Server_Exception' with message 'call to api Operator::_add() failed' in *

Пример #4 Пример конкурирующих клиентов Yar

<?php
function callback($ret, $callinfo) {
    echo $callinfo['method'] , " result: ", $ret , "\n";
}

/* регистрируем асинхронные вызовы к удаленным сервисам */
Yar_Concurrent_Client::call("http://example.com/operator.php", "add", array(1, 2), "callback");
Yar_Concurrent_Client::call("http://example.com/operator.php", "sub", array(2, 1), "callback");
Yar_Concurrent_Client::call("http://example.com/operator.php", "mul", array(2, 2), "callback");

/* посылаем все запросы и ждем ответа */
Yar_Concurrent_Client::loop();
?>

Результатом выполнения данного примера будет что-то подобное:

mul result: 4
sub result: 1
add result: 3


Класс Yar_Server

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

Yar_Server {
/* Свойства */
protected $_executor ;
/* Методы */
final public __construct ( Object $obj )
public handle ( void ) : bool
}

Свойства

_executor

Содержание

  • Yar_Server::__construct — Конструктор Yar_Server
  • Yar_Server::handle — Запустить сервер RPC


Конструктор Yar_Server

  • « Yar_Server
  • Yar_Server::handle »
  • PHP Manual
  • Yar_Server
  • Конструктор Yar_Server

Yar_Server::__construct

(PECL yar >= 1.0.0)

Yar_Server::__construct — Конструктор Yar_Server

Описание

final public Yar_Server::__construct ( Object $obj )

Устанавливает Yar HTTP RPC сервер. Все публичные методы объекта $obj будут зарегистрированы как RPC-сервисы.

Список параметров

obj

Объект, публичные методы которого будут зарегистрированы как RPC-сервисы.

Возвращаемые значения

Объект класса Yar_Server.

Примеры

Пример #1 Пример использования Yar_Server::__construct()

<?php
class API {
    /**
     * the doc info will be generated automatically into service info page.
     * @params
     * @return
     */
    public function some_method($parameter, $option = "foo") {
         return "some_method";
    }

    protected function client_can_not_see() {
    }
}

$service = new Yar_Server(new API());
$service->handle();
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • Yar_Server::handle() - Запустить сервер RPC
    •


Запустить сервер RPC

  • « Yar_Server::__construct
  • Yar_Client »
  • PHP Manual
  • Yar_Server
  • Запустить сервер RPC

Yar_Server::handle

(PECL yar >= 1.0.0)

Yar_Server::handle — Запустить сервер RPC

Описание

public Yar_Server::handle ( void ) : bool

Запустить сервер RPC HTTP и приготовиться принимать запросы.

Замечание:

Обычно RPC-запросы осуществляются с помощью HTTP POST. Если будет использован запрос HTTP GET, то будет напечатана информация о сервисе (закомментированная секция выше).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

boolean

Примеры

Пример #1 Пример использования Yar_Server::handle()

<?php
class API {
    /**
     * the doc info will be generated automatically into service info page.
     * @params
     * @return
     */
    public function some_method($parameter, $option = "foo") {
    }

    protected function client_can_not_see() {
    }
}

$service = new Yar_Server(new API());
$service->handle();
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • Yar_Server::__construct() - Конструктор Yar_Server
    •


Класс Yar_Client

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

Yar_Client {
/* Свойства */
protected $_protocol ;
protected $_uri ;
protected $_options ;
protected $_running ;
/* Методы */
public __call ( string $method , array $parameters ) : void
final public __construct ( string $url [, array $options ] )
public setOpt ( int $name , mixed $value ) : Yar_Client
}

Свойства

_protocol

_uri

_options

_running

Содержание

  • Yar_Client::__call — Вызов сервиса
  • Yar_Client::__construct — Конструктор Yar_Client
  • Yar_Client::setOpt — Задать контекст вызова


Вызов сервиса

  • « Yar_Client
  • Yar_Client::__construct »
  • PHP Manual
  • Yar_Client
  • Вызов сервиса

Yar_Client::__call

(PECL yar >= 1.0.0)

Yar_Client::__call — Вызов сервиса

Описание

public Yar_Client::__call ( string $method , array $parameters ) : void

Производит вызов удаленного RPC-метода.

Список параметров

method

Имя удаленного метода.

parameters

Параметры.

Возвращаемые значения

Примеры

Пример #1 Пример использования Yar_Client::__call()

<?php

$client = new Yar_Client("http://host/api/");

/* вызов удаленного сервиса */
$result = $client->some_method("parameter");
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • Yar_Client::setOpt() - Задать контекст вызова
    •


Конструктор Yar_Client

  • « Yar_Client::__call
  • Yar_Client::setOpt »
  • PHP Manual
  • Yar_Client
  • Конструктор Yar_Client

Yar_Client::__construct

(PECL yar >= 1.0.0)

Yar_Client::__construct — Конструктор Yar_Client

Описание

final public Yar_Client::__construct ( string $url [, array $options ] )

Создает Yar_Client для Yar_Server.

Список параметров

url

URL сервера Yar.

Возвращаемые значения

Объект класса Yar_Client.

Примеры

Пример #1 Пример использования Yar_Client::__construct()

<?php
$client = new Yar_Client("http://host/api/");
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • Yar_Client::__call() - Вызов сервиса
    •

  • Yar_Client::setOpt() - Задать контекст вызова
    •


Задать контекст вызова

  • « Yar_Client::__construct
  • Yar_Concurrent_Client »
  • PHP Manual
  • Yar_Client
  • Задать контекст вызова

Yar_Client::setOpt

(PECL yar >= 1.0.0)

Yar_Client::setOpt — Задать контекст вызова

Описание

public Yar_Client::setOpt ( int $name , mixed $value ) : Yar_Client

Список параметров

name

Может принимать значения: YAR_OPT_PACKAGER, YAR_OPT_PERSISTENT (необходима поддержка на сервере), YAR_OPT_TIMEOUT, YAR_OPT_CONNECT_TIMEOUT, YAR_OPT_HEADER (Доступно с версии 2.0.4)

value

Возвращаемые значения

Возвращает $this в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Yar_Client::setOpt()

<?php

$cient = new Yar_Client("http://host/api/");

//Установим тайм-аут на 1 секунду
$client->SetOpt(YAR_OPT_CONNECT_TIMEOUT, 1000);

//Установим упаковщик JSON
$client->SetOpt(YAR_OPT_PACKAGER, "json");

//Установим собственный заголовок
$client->SetOpt(YAR_OPT_HEADER, array("hr1: val1", "hd2: val2"));

/* вызовем удаленный сервис */
$result = $client->some_method("parameter");
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • Yar_Client::__call() - Вызов сервиса
    •


Класс Yar_Concurrent_Client

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

Yar_Concurrent_Client {
/* Свойства */
static $_callstack ;
static $_callback ;
static $_error_callback ;
/* Методы */
public static call ( string $uri , string $method [, array $parameters [, callable $callback [, callable $error_callback [, array $options ]]]] ) : int
public static loop ([ callable $callback [, callable $error_callback ]] ) : bool
public static reset ( void ) : bool
}

Свойства

_callstack

_callback

_error_callback

Содержание

  • Yar_Concurrent_Client::call — Зарегистрировать конкурентный вызов
  • Yar_Concurrent_Client::loop — Запуск всех харегистрированный вызовов
  • Yar_Concurrent_Client::reset — Очистить все зарегистрированные вызовы


Зарегистрировать конкурентный вызов

  • « Yar_Concurrent_Client
  • Yar_Concurrent_Client::loop »
  • PHP Manual
  • Yar_Concurrent_Client
  • Зарегистрировать конкурентный вызов

Yar_Concurrent_Client::call

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::call — Зарегистрировать конкурентный вызов

Описание

public static Yar_Concurrent_Client::call ( string $uri , string $method [, array $parameters [, callable $callback [, callable $error_callback [, array $options ]]]] ) : int

Регистрирует RPC-вызов, но не посылает его немедленно, а откладывает до моменты вызова Yar_Concurrent_Client::loop()

Список параметров

uri

URI (http, tcp) сервера RPC

method

Имя сервиса (имя метода)

parameters

Параметры

callback

Callback-функция, которая будет вызвана после отработки удаленного запроса.

Возвращаемые значения

Уникальный идентификатор.

Примеры

Пример #1 Пример использования Yar_Concurrent_Client::call()

<?php
function callback($retval, $callinfo) {
     var_dump($retval);
}

function error_callback($type, $error, $callinfo) {
    error_log($error);
}

Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback");

//если функция обратного вызова не задана, то будет использована определенная в цикле вызовов
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"));

//этот сервер принимает упаковку JSON
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));

//отдельно заданный тайм-аут
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));

//запросы все еще не запущены
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • Yar_Concurrent_Client::loop() - Запуск всех харегистрированный вызовов
    •

  • Yar_Concurrent_Client::reset() - Очистить все зарегистрированные вызовы
    •

  • Yar_Server::__construct() - Конструктор Yar_Server
    •

  • Yar_Server::handle() - Запустить сервер RPC
    •


Запуск всех харегистрированный вызовов

  • « Yar_Concurrent_Client::call
  • Yar_Concurrent_Client::reset »
  • PHP Manual
  • Yar_Concurrent_Client
  • Запуск всех харегистрированный вызовов

Yar_Concurrent_Client::loop

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::loop — Запуск всех харегистрированный вызовов

Описание

public static Yar_Concurrent_Client::loop ([ callable $callback [, callable $error_callback ]] ) : bool

Запускает все харегистрированные вызовы.

Список параметров

callback

Если задана функция обратного вызова, то она будет запущена после запуска всех запросов но до получения ответов от них с параметром $callinfo равным NULL.

Далее, если функция обратного вызова не была задана при регистрации вызова, то для обработки результата будет вызвана эта функция.

error_callback

Если этот параметр задан, то Yar запустит эту функцию в случае ошибки.

Возвращаемые значения

Примеры

Пример #1 Пример использования Yar_Concurrent_Client::loop()

<?php
function callback($retval, $callinfo) {
     if ($callinfo == NULL) {
        echo "Так, все запросы запущены, но пока ни одного ответа\n";
     } else {
        echo "Это ответ от удаленного запроса. Имя метода", $callinfo["method"],
             ". Был зарегистрирован " , $callinfo["sequence"] , "\n";
        var_dump($retval);
     }
}

function error_callback($type, $error, $callinfo) {
    error_log($error);
}

Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback");

//если функция обратного вызова не задана, то будет использована определенная в цикле вызовов
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"));

//этот сервер принимает упаковку JSON
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));

//отдельно заданный тайм-аут
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));

Yar_Concurrent_Client::loop("callback", "error_callback"); //запускаем запросы,
                                                           //параметр error_callback не обязателен
?>

Результатом выполнения данного примера будет что-то подобное:

Так, все запросы запущены, но пока ни одного ответа
Это ответ от удаленного запроса. Имя метода issome_method. Был зарегистрирован 4
string(11) "some_method"
Это ответ от удаленного запроса. Имя метода issome_method. Был зарегистрирован 1
string(11) "some_method"
Это ответ от удаленного запроса. Имя метода issome_method. Был зарегистрирован 2
string(11) "some_method"
Это ответ от удаленного запроса. Имя метода issome_method. Был зарегистрирован 3
string(11) "some_method"

Смотрите также

  • Yar_Concurrent_Client::call() - Зарегистрировать конкурентный вызов
  • Yar_Concurrent_Client::reset() - Очистить все зарегистрированные вызовы
  • Yar_Server::__construct() - Конструктор Yar_Server
  • Yar_Server::handle() - Запустить сервер RPC


Очистить все зарегистрированные вызовы

  • « Yar_Concurrent_Client::loop
  • Yar_Server_Exception »
  • PHP Manual
  • Yar_Concurrent_Client
  • Очистить все зарегистрированные вызовы

Yar_Concurrent_Client::reset

(PECL yar >= 1.2.4)

Yar_Concurrent_Client::reset — Очистить все зарегистрированные вызовы

Описание

public static Yar_Concurrent_Client::reset ( void ) : bool

Очищает все зарегистрированные вызовы

Список параметров

Возвращаемые значения

Примеры

Пример #1 Пример использования Yar_Concurrent_Client::reset()

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • Yar_Concurrent_Client::call() - Зарегистрировать конкурентный вызов
    •

  • Yar_Concurrent_Client::loop() - Запуск всех харегистрированный вызовов
    •

  • Yar_Server::__construct() - Конструктор Yar_Server
    •

  • Yar_Server::handle() - Запустить сервер RPC
    •


Класс Yar_Server_Exception

(Информация о версии неизвестна, возможно, только в Git)

Введение

Если сервис выбрасывает исключения, на стороне клиента будет выброшено исключение Yar_Server_Exception.

Обзор классов

Yar_Server_Exception extends Exception {
/* Свойства */
protected $_type ;
/* Методы */
public getType ( void ) : string
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Свойства

message

code

file

line

_type

Содержание

  • Yar_Server_Exception::getType — Получить тип исключения


Получить тип исключения

  • « Yar_Server_Exception
  • Yar_Client_Exception »
  • PHP Manual
  • Yar_Server_Exception
  • Получить тип исключения

Yar_Server_Exception::getType

(PECL yar >= 1.0.0)

Yar_Server_Exception::getType — Получить тип исключения

Описание

public Yar_Server_Exception::getType ( void ) : string

Получить изначальный тип исключения, выброшенного на сервере.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка

Примеры

Пример #1 Пример использования Yar_Server_Exception::getType()

//Server.php
<?php
class Custom_Exception extends Exception {};

class API {
    public function throw_exception($name) {
        throw new Custom_Exception($name);
    }
}

$service = new Yar_Server(new API());
$service->handle();
?>

//Client.php
<?php
$client = new Yar_Client("http://host/api.php");

try {
    $client->throw_exception("client");
} catch (Yar_Server_Exception $e) {
    var_dump($e->getType());
    var_dump($e->getMessage());
}

Результатом выполнения данного примера будет что-то подобное:

string(16) "Custom_Exception"
string(6) "client"

Смотрите также


Класс Yar_Client_Exception

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

Yar_Client_Exception extends Exception {
/* Свойства */
/* Методы */
public getType ( void ) : string
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Свойства

message

code

file

line

Содержание

  • Yar_Client_Exception::getType — Получить тип исключения


Получить тип исключения

  • « Yar_Client_Exception
  • XML-RPC »
  • PHP Manual
  • Yar_Client_Exception
  • Получить тип исключения

Yar_Client_Exception::getType

(PECL yar >= 1.0.0)

Yar_Client_Exception::getType — Получить тип исключения

Описание

public Yar_Client_Exception::getType ( void ) : string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает "Yar_Exception_Client".

Примеры

Пример #1 Пример использования Yar_Client_Exception::getType()

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Yaf_Server_Exception::getType()


XML-RPC

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции XML-RPC
    • xmlrpc_decode_request — Декодирует XML в нативные типы PHP
    • xmlrpc_decode — Декодирует XML в нативные типы PHP
    • xmlrpc_encode_request — Генерирует XML для метода запроса
    • xmlrpc_encode — Генерирует XML для PHP значения
    • xmlrpc_get_type — Получает XML-RPC тип для значения PHP
    • xmlrpc_is_fault — Определяет, является ли массив значений представлением ошибки XMLRPC
    • xmlrpc_parse_method_descriptions — Декодирует XML в список описаний методов
    • xmlrpc_server_add_introspection_data — Добавляет документацию самоанализа
    • xmlrpc_server_call_method — Разбирает XML-запросы и вызывающие методы
    • xmlrpc_server_create — Создаёт сервер XML-RPC
    • xmlrpc_server_destroy — Уничтожает серверные ресурсы
    • xmlrpc_server_register_introspection_callback — Регистрирует функцию PHP для генерации документации
    • xmlrpc_server_register_method — Регистрирует функцию PHP к методу ресурса, соответствующему method_name
    • xmlrpc_set_type — Устанавливает тип XML-RPC, base64 или datetime для значения строки PHP


Введение

Эти функции могут быть использованы для написания серверов и клиентов XML-RPC. Вы можете найти более подробную информацию о XML-RPC по ссылке » http://www.xmlrpc.com/, и много документации для этого расширения и его функций по ссылке » http://xmlrpc-epi.sourceforge.net/.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.


Установка

Поддержка XML-RPC в PHP не включена по умолчанию. Вам нужно будет использовать конфигурационную опцию --with-xmlrpc[=DIR] при компиляции PHP для включения поддержки XML-RPC.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Это расширение определяет серверный ресурс XML-RPC, возвращаемый xmlrpc_server_create().


  • « Типы ресурсов
  • Функции XML-RPC »
  • PHP Manual
  • XML-RPC
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции XML-RPC

Содержание

  • xmlrpc_decode_request — Декодирует XML в нативные типы PHP
  • xmlrpc_decode — Декодирует XML в нативные типы PHP
  • xmlrpc_encode_request — Генерирует XML для метода запроса
  • xmlrpc_encode — Генерирует XML для PHP значения
  • xmlrpc_get_type — Получает XML-RPC тип для значения PHP
  • xmlrpc_is_fault — Определяет, является ли массив значений представлением ошибки XMLRPC
  • xmlrpc_parse_method_descriptions — Декодирует XML в список описаний методов
  • xmlrpc_server_add_introspection_data — Добавляет документацию самоанализа
  • xmlrpc_server_call_method — Разбирает XML-запросы и вызывающие методы
  • xmlrpc_server_create — Создаёт сервер XML-RPC
  • xmlrpc_server_destroy — Уничтожает серверные ресурсы
  • xmlrpc_server_register_introspection_callback — Регистрирует функцию PHP для генерации документации
  • xmlrpc_server_register_method — Регистрирует функцию PHP к методу ресурса, соответствующему method_name
  • xmlrpc_set_type — Устанавливает тип XML-RPC, base64 или datetime для значения строки PHP


Декодирует XML в нативные типы PHP

  • « Функции XML-RPC
  • xmlrpc_decode »
  • PHP Manual
  • Функции XML-RPC
  • Декодирует XML в нативные типы PHP

xmlrpc_decode_request

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_decode_request — Декодирует XML в нативные типы PHP

Описание

xmlrpc_decode_request ( string $xml , string &$method [, string $encoding ] ) : mixed
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Декодирует XML в нативные типы PHP

  • « xmlrpc_decode_request
  • xmlrpc_encode_request »
  • PHP Manual
  • Функции XML-RPC
  • Декодирует XML в нативные типы PHP

xmlrpc_decode

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_decode — Декодирует XML в нативные типы PHP

Описание

xmlrpc_decode ( string $xml [, string $encoding = "iso-8859-1" ] ) : mixed
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

xml

XML-ответ, возвращаемый методом XMLRPC.

encoding

Входящая кодировка, поддерживаемая iconv.

Возвращаемые значения

Возвращает массив, или число, или строку, или логическое значение в соответствии с ответом, возвращаемым методом XMLRPC.

Примеры

Смотрите пример xmlrpc_encode_request().

Смотрите также

  • xmlrpc_encode_request() - Генерирует XML для метода запроса
  • xmlrpc_is_fault() - Определяет, является ли массив значений представлением ошибки XMLRPC


Генерирует XML для метода запроса

  • « xmlrpc_decode
  • xmlrpc_encode »
  • PHP Manual
  • Функции XML-RPC
  • Генерирует XML для метода запроса

xmlrpc_encode_request

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_encode_request — Генерирует XML для метода запроса

Описание

xmlrpc_encode_request ( string $method , mixed $params [, array $output_options ] ) : string
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

method

Имя метода для вызова.

params

Параметры метода, совместимые с сигнатурой вызова.

output_options

Массив, уточняющий параметры вывода, может содержать (значения по умолчанию выделены):

  • output_type: php, xml

  • verbosity: no_white_space, newlines_only, pretty

  • escaping: cdata, non-ascii, non-print, markup (может быть строка с одним значением или массив с несколькими значениями)

  • version: simple, xmlrpc, soap 1.1, auto

  • encoding: iso-8859-1, другой набор символов, поддерживаемый iconv

Возвращаемые значения

Возвращает строку, содержащую XML-представление запроса.

Примеры

Пример #1 Пример клиентской функции XMLRPC

<?php
$request = xmlrpc_encode_request("method", array(1, 2, 3));
$context = stream_context_create(array('http' => array(
    'method' => "POST",
    'header' => "Content-Type: text/xml",
    'content' => $request
)));
$file = file_get_contents("http://www.example.com/xmlrpc", false, $context);
$response = xmlrpc_decode($file);
if ($response && xmlrpc_is_fault($response)) {
    trigger_error("xmlrpc: $response[faultString] ($response[faultCode])");
} else {
    print_r($response);
}
?>

Смотрите также

  • stream_context_create() - Создаёт контекст потока
  • file_get_contents() - Читает содержимое файла в строку
  • xmlrpc_decode() - Декодирует XML в нативные типы PHP


Генерирует XML для PHP значения

  • « xmlrpc_encode_request
  • xmlrpc_get_type »
  • PHP Manual
  • Функции XML-RPC
  • Генерирует XML для PHP значения

xmlrpc_encode

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_encode — Генерирует XML для PHP значения

Описание

xmlrpc_encode ( mixed $value ) : string
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получает XML-RPC тип для значения PHP

  • « xmlrpc_encode
  • xmlrpc_is_fault »
  • PHP Manual
  • Функции XML-RPC
  • Получает XML-RPC тип для значения PHP

xmlrpc_get_type

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_get_type — Получает XML-RPC тип для значения PHP

Описание

xmlrpc_get_type ( mixed $value ) : string
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Эта функция особенно полезна для base64 и строки, содержащей дату.

Список параметров

value

Значение PHP

Возвращаемые значения

Возвращает тип XML-RPC.

Примеры

Пример #1 Пример XML-RPC типа

<?php
echo xmlrpc_get_type(null) . "\n"; // base64
echo xmlrpc_get_type(false) . "\n"; // boolean
echo xmlrpc_get_type(1) . "\n"; // int
echo xmlrpc_get_type(1.0) . "\n"; // double
echo xmlrpc_get_type("") . "\n"; // string
echo xmlrpc_get_type(array()) . "\n"; // array
echo xmlrpc_get_type(new stdClass) . "\n"; // array
echo xmlrpc_get_type(STDIN) . "\n"; // int
?>

Смотрите также

  • xmlrpc_set_type() - Устанавливает тип XML-RPC, base64 или datetime для значения строки PHP


Определяет, является ли массив значений представлением ошибки XMLRPC

  • « xmlrpc_get_type
  • xmlrpc_parse_method_descriptions »
  • PHP Manual
  • Функции XML-RPC
  • Определяет, является ли массив значений представлением ошибки XMLRPC

xmlrpc_is_fault

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

xmlrpc_is_fault — Определяет, является ли массив значений представлением ошибки XMLRPC

Описание

xmlrpc_is_fault ( array $arg ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

arg

Массив, возвращаемый xmlrpc_decode().

Возвращаемые значения

Возвращает TRUE, если аргумент означает ошибку, в противном случае - FALSE. Описание ошибки доступно в $arg["faultString"],а код ошибки в $arg["faultCode"].

Примеры

Смотрите пример xmlrpc_encode_request().

Смотрите также

  • xmlrpc_decode() - Декодирует XML в нативные типы PHP


Декодирует XML в список описаний методов

  • « xmlrpc_is_fault
  • xmlrpc_server_add_introspection_data »
  • PHP Manual
  • Функции XML-RPC
  • Декодирует XML в список описаний методов

xmlrpc_parse_method_descriptions

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_parse_method_descriptions — Декодирует XML в список описаний методов

Описание

xmlrpc_parse_method_descriptions ( string $xml ) : array
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Добавляет документацию самоанализа

  • « xmlrpc_parse_method_descriptions
  • xmlrpc_server_call_method »
  • PHP Manual
  • Функции XML-RPC
  • Добавляет документацию самоанализа

xmlrpc_server_add_introspection_data

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_add_introspection_data — Добавляет документацию самоанализа

Описание

xmlrpc_server_add_introspection_data ( resource $server , array $desc ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Разбирает XML-запросы и вызывающие методы

  • « xmlrpc_server_add_introspection_data
  • xmlrpc_server_create »
  • PHP Manual
  • Функции XML-RPC
  • Разбирает XML-запросы и вызывающие методы

xmlrpc_server_call_method

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_call_method — Разбирает XML-запросы и вызывающие методы

Описание

xmlrpc_server_call_method ( resource $server , string $xml , mixed $user_data [, array $output_options ] ) : string
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Создаёт сервер XML-RPC

  • « xmlrpc_server_call_method
  • xmlrpc_server_destroy »
  • PHP Manual
  • Функции XML-RPC
  • Создаёт сервер XML-RPC

xmlrpc_server_create

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_create — Создаёт сервер XML-RPC

Описание

xmlrpc_server_create ( void ) : resource
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Уничтожает серверные ресурсы

  • « xmlrpc_server_create
  • xmlrpc_server_register_introspection_callback »
  • PHP Manual
  • Функции XML-RPC
  • Уничтожает серверные ресурсы

xmlrpc_server_destroy

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_destroy — Уничтожает серверные ресурсы

Описание

xmlrpc_server_destroy ( resource $server ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Регистрирует функцию PHP для генерации документации

  • « xmlrpc_server_destroy
  • xmlrpc_server_register_method »
  • PHP Manual
  • Функции XML-RPC
  • Регистрирует функцию PHP для генерации документации

xmlrpc_server_register_introspection_callback

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_register_introspection_callback — Регистрирует функцию PHP для генерации документации

Описание

xmlrpc_server_register_introspection_callback ( resource $server , string $function ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Регистрирует функцию PHP к методу ресурса, соответствующему method_name

  • « xmlrpc_server_register_introspection_callback
  • xmlrpc_set_type »
  • PHP Manual
  • Функции XML-RPC
  • Регистрирует функцию PHP к методу ресурса, соответствующему method_name

xmlrpc_server_register_method

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_register_method — Регистрирует функцию PHP к методу ресурса, соответствующему method_name

Описание

xmlrpc_server_register_method ( resource $server , string $method_name , string $function ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Устанавливает тип XML-RPC, base64 или datetime для значения строки PHP

  • « xmlrpc_server_register_method
  • Расширения только для Windows »
  • PHP Manual
  • Функции XML-RPC
  • Устанавливает тип XML-RPC, base64 или datetime для значения строки PHP

xmlrpc_set_type

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_set_type — Устанавливает тип XML-RPC, base64 или datetime для значения строки PHP

Описание

xmlrpc_set_type ( string &$value , string $type ) : bool

Устанавливает тип XML-RPC, base64 или datetime для значения строки PHP.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

value

Значение для установки типа.

type

'base64' или 'datetime'

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. В случае успеха, value конвертируется в объект.

Примеры

Пример #1 Пример использования xmlrpc_set_type()

<?php

$params = date("Ymd\TH:i:s", time());
xmlrpc_set_type($params, 'datetime');
echo xmlrpc_encode($params);

?>

Результатом выполнения данного примера будет что-то подобное:

<?xml version="1.0" encoding="utf-8"?>
<params>
<param>
 <value>
  <dateTime.iso8601>20090322T23:43:03</dateTime.iso8601>
 </value>
</param>
</params>

Ошибки

Выдает сообщение E_WARNING для не поддерживаемых типов XMLRPC.


Расширения только для Windows

  • COM — COM и .Net (Windows)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Ошибки и их обработка
    • Примеры
    • COM — Класс COM
    • DOTNET — Класс DOTNET
    • VARIANT — Класс VARIANT
    • com_exception — Класс com_exception
    • Функции COM
  • win32ps
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • win32ps Функции
  • win32service
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • win32service


COM и .Net (Windows)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Ошибки и их обработка
  • Примеры
    • For Each
    • Массивы и свойства COM в стиле массивов
  • COM — Класс COM
    • COM::__construct — Конструктор класса COM
  • DOTNET — Класс DOTNET
    • DOTNET::__construct — Конструктор класса DOTNET
  • VARIANT — Класс VARIANT
    • VARIANT::__construct — Конструктор класса VARIANT
  • com_exception — Класс com_exception
  • Функции COM
    • com_create_guid — Создание уникального глобального идентификатора (GUID)
    • com_event_sink — Связать сообщения объекта COM с объектом PHP
    • com_get_active_object — Вернуть дескриптор на уже запущенный экземпляр объекта COM
    • com_load_typelib — Загрузка Typelib
    • com_message_pump — Обработка сообщений COM, пришедших не позднее timeoutms миллисекунд послее ее запуска
    • com_print_typeinfo — Печатает определение класса PHP для интерфейса, наследующего IDispatch
    • variant_abs — Получить абсолютное значение варианта
    • variant_add — Сложить значения двух вариантов
    • variant_and — Побитовое И над двумя вариантами
    • variant_cast — Преобразование варианта в новый вариант другого типа
    • variant_cat — Объединение (конкатенация) значений двух вариантов
    • variant_cmp — Сравнить два варианта
    • variant_date_from_timestamp — Получить представление даты для варианта из временной метки Unix
    • variant_date_to_timestamp — Преобразует вариант типа дата/время во временную метку Unix
    • 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_type — Приведение варианта к другому типу "по месту"
    • variant_set — Присвоение нового значения объекту варианта
    • variant_sub — Вычитает значение правого варианта из левого
    • variant_xor — Исключающее ИЛИ над двумя вариантами


Введение

COM (акроним от Component Object Model) — это объектно-ориентированный слой (и связанные с ним сервисы), базирующийся на DCE RPC (открытый стандарт), который определяет общие соглашения, позволяющие коду, написанному на любом языке вызывать и взаимодействовать с кодом, написанным на любом другом языке (при условии, что эти языки являются COM-ориентированными). Не только код может быть написан на любом языке, но даже нет необходимости, чтобы он был частью одного и того же исполняемого файла: код может быть загружен из библиотеки DLL, может быть найден в другом процессе на одном и том же компьютере или, с помощью DCOM (Distributed COM), может быть найден в другом процессе на удаленной машине, и все это без необходимости вашему коду знать где находится компонент.

Подмножество COM, известное как OLE Automation, включает набор COM-интерфейсов, которые позволяют осуществлять легкое связывание COM-объектов, также любой объект можно проанализировать и вызывать во время работы без знания о деталях его работы на этапе компиляции. PHP-модуль COM использует интерфейсы OLE Automation, позволяющие вам создавать и вызывать совместимые объекты из ваших скриптов. Говоря техническим языком, это следовало бы назвать "Модуль OLE Automation для PHP", так как не все COM-объекты являются OLE-совместимыми.

Теперь, почему вам следует использовать COM? COM — один из основных способов склеить вместе приложения и компоненты на платформе Windows. Используя COM, вы можете запустить Microsoft Word, заполнить шаблон документа и сохранить результаты как документ Word, и затем отправить посетителю вашего веб-сайта. Вы также можете использовать COM для выполнения задач администрирования для вашей сети и конфигурирования вашего IIS-сервера. Это только обычные применения, с COM вы сможете больше.

Дополнительно модуль поддерживает создание экземпляра класса и создание .NET-сборок, используя слой взаимодействия с COM, предоставляемый Miсrosoft.


Требования

Функции COM доступны только в PHP под Windows.

Для поддержки .Net требуется библиотеки времени исполнения .Net.


Установка

С PHP 5.3.15 / 5.4.5, модуль требует включение php_com_dotnet.dll в php.ini. В предыдущих версиях PHP модуль был включен по умолчанию.

Поддержку для различных вариантов объектов COM (например, MS Word) необходимо устанавливать самостоятельно. Мы не можем и не будем включать все эти модули в PHP.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции конфигурации Com
Имя | По умолчанию | Место изменения | Список изменений
com.allow_dcom | "0" | PHP_INI_SYSTEM |
com.autoregister_typelib | "0" | PHP_INI_ALL |
com.autoregister_verbose | "0" | PHP_INI_ALL |
com.autoregister_casesensitive | "1" | PHP_INI_ALL |
com.code_page | "" | PHP_INI_ALL |
com.typelib_file | "" | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

com.allow_dcom

Если включено, PHP будет разрешено работать в качестве клиента D-COM (Распределенный COM), что позволит скрипту PHP инстанциировать объекты COM на удаленном сервере.

com.autoregister_typelib

Если включено, PHP попробует зарегистрировать константы библиотеки типов создаваемых объектов COM, если эти объекты реализуют интерфейс, требуемый для получения данной информации. Регистрозависимость регистрируемых констант контролируется директивой конфигурации.

com.autoregister_verbose

Если включено, о любых проблемах с загрузкой библиотеки типов в процессе создания экземпляра объекта будет сообщено с помощью механизма ошибок PHP. По умолчанию выключено, что означает, что никаких сообщений об ошибках при загрузке библиотеки типов сообщаться не будет.

com.autoregister_casesensitive

Если включено (по умолчанию), константы, обнаруженные при автозагрузке библиотек типов, при инстанцировании объектов COM, будут зарегистрированы как регистрозависимые. Более подробно смотрите в описании функции com_load_typelib().

com.code_page

Контролирует кодировку по умолчанию при передаче строк объектам COM. Если задана пустая строка, PHP будет считать, что вы хотите использовать CP_ACP - системная кодировка ANSI по умолчанию.

Если текст в вашем скрипте содержится в кодировке отличной от кодировки по умолчанию, то установка этого параметра позволит вам не указывать кодировку каждый раз при создании объекта класса COM в его конструкторе. Пожалуйста помните, что использование этой директивы (как и любой другой директивы конфигурации) делает ваш скрипт менее переносимым, так что все же рекомендуется указывать кодировку при каждом создании объекта COM.

com.typelib_file

Значение должно соответствовать пути в файловой системе до файла, содержащего список библиотек типов, которые необходимо загрузить при запуске. Каждая строка файла будет рассматриваться как имя библиотеки типов, которая будет загружена как только вы вызовите функцию com_load_typelib(). Константы будут зарегистрированы на постоянной основе, так что библиотеки нужно загружать всего один раз. Если имя библиотеки типов заканчивается на строку #cis или #case_insensitive, то константы будут зарегистрированы как регистронезависимые.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы COM
Константа | Значение | Описание | Замечания
CLSCTX_INPROC_SERVER (integer) | 1 | Код, создающий и управляющий объектами этого класса является DLL запущенным в том же процессе, который вызывает функцию указанную в контексте класса. |
CLSCTX_INPROC_HANDLER (integer) | 2 | Код, создающий и управляющий объектами этого класса является обработчиком внутри процесса. Это DLL , запускаемый в процессе клиента и реализующий структуру этого класса на стороне клиента, когда экземпляр класса используется удаленно. |
CLSCTX_LOCAL_SERVER (integer) | 4 | Код EXE, который создает и управляет объектами этого класса, работает на той же машине, но в рамках отдельного процесса. |
CLSCTX_REMOTE_SERVER (integer) | 16 | Внешний контекст. Код, создающий и управляющий объектами этого класса работает на другом компьютере. |
CLSCTX_SERVER (integer) | 21 | Означает серверный код, локальный, удаленный или же внутри процесса. Задается побитовым ИЛИ констант CLSCTX_INPROC_SERVER, CLSCTX_LOCAL_SERVER и CLSCTX_REMOTE_SERVER. |
CLSCTX_ALL (integer) | 23 | Обозначает весь контекст класса. Задается побитовым ИЛИ констант CLSCTX_INPROC_HANDLER и CLSCTX_SERVER. |
VT_NULL (integer) | 1 | Ссылка на указатель NULL. |
VT_EMPTY (integer) | 0 | Свойство с индикатором типа из VT_EMPTY не имеющий данных ассоциированных с ним. Размер этого значения равен нулю. |
VT_UI1 (integer) | 17 | Беззнаковое целое размером в 1 байт. |
VT_I2 (integer) | 2 | Знаковое целое размером в 2 байта. |
VT_I4 (integer) | 3 | Знаковое целое размером в 4 байта. |
VT_I8 (integer) | 3 | 8-байтовое целочисленное значение со знаком. | Доступно с PHP 7.0.0 (только для x64).
VT_R4 (integer) | 4 | Значение IEEE с плавающей запятой размером 32 бита. |
VT_R8 (integer) | 5 | Значение IEEE с плавающей запятой размером 64 бита. |
VT_BOOL (integer) | 11 | Логическое значение. |
VT_ERROR (integer) | 10 | Код ошибки; содержит код статуса ассоциированный с ошибкой. |
VT_CY (integer) | 6 | Дополненное целое размером 8 байт (масштабируется к 10,000). |
VT_DATE (integer) | 7 | Значение с плавающей запятой размером 64 бита представляющее количество дней (не секунд) с 31 Декабря 1899 года. К примеру, 1 Января 1900 равно 2.0, 2 Января 1900 равно 3.0, и т.д. Хранится таким же образом, что и VT_R8. |
VT_BSTR (integer) | 8 | Указатель на строку Unicode заканчивающуюся null-байтом. |
VT_DECIMAL (integer) | 14 | Десятичная структура. |
VT_UNKNOWN (integer) | 13 | Указатель на объект реализующий интерфейс IUnknown. |
VT_DISPATCH (integer) | 9 | Указатель на указатель на заданный объект. |
VT_VARIANT (integer) | 12 | Индикатор типа с последующим, соответствующим, значением. VT_VARIANT можно использовать только с VT_BYREF. |
VT_I1 (integer) | 16 | Знаковое целое размером в 1 байт. |
VT_UI2 (integer) | 18 | Беззнаковое целое размером в 2 байта. |
VT_UI4 (integer) | 19 | Беззнаковое целое размером в 4 байта. |
VT_UI8 (integer) | 19 | 8-байтовое целочисленное значение со знаком. | Доступно с PHP 7.0.0 (только для x64).
VT_INT (integer) | 22 | Знаковое целое размером в 4 байт. (аналогично VT_I4). |
VT_UINT (integer) | 23 | Беззнаковое целое размером в 4 байт (аналогично VT_UI4). |
VT_ARRAY (integer) | 8192 | Если индикатор типа комбинирован с VT_ARRAY с помощью побитового ИЛИ, то значение является указателем на SAFEARRAY. VT_ARRAY можно комбинировать побитовым ИЛИ со следующими типами: VT_I1, VT_UI1, VT_I2, VT_UI2, VT_I4, VT_UI4, VT_INT, VT_UINT, VT_R4, VT_R8, VT_BOOL, VT_DECIMAL, VT_ERROR, VT_CY, VT_DATE, VT_BSTR, VT_DISPATCH, VT_UNKNOWN и VT_VARIANT. |
VT_BYREF (integer) | 16384 | Если индикатор типа комбинирован с VT_BYREF с помощью побитового ИЛИ, значит значение является ссылкой. Тип "ссылка" интерпритируется как ссылка на данные, аналогично ссылкам C++. |
CP_ACP (integer) | 0 | Кодировка ANSI по умолчанию. |
CP_MACCP (integer) | 2 | Кодировка Macintosh. |
CP_OEMCP (integer) | 1 | Кодировка OEM по умолчанию. |
CP_UTF7 (integer) | 65000 | Unicode (UTF-7). |
CP_UTF8 (integer) | 65001 | Unicode (UTF-8). |
CP_SYMBOL (integer) | 42 | Смещения SYMBOL. |
CP_THREAD_ACP (integer) | 3 | Кодировка ANSI текущего потока исполнения |
VARCMP_LT (integer) | 0 | Левый bstr меньше правого bstr. |
VARCMP_EQ (integer) | 1 | Два параметра эквивалентны. |
VARCMP_GT (integer) | 2 | Левый bstr больше правого bstr. |
VARCMP_NULL (integer) | 3 | Выражение равно NULL. |
NORM_IGNORECASE (integer) | 1 | Игнорировать регистрозависимость. |
NORM_IGNORENONSPACE (integer) | 2 | Игнорировать символы не занимающие места. |
NORM_IGNORESYMBOLS (integer) | 4 | Игнорировать символы. |
NORM_IGNOREWIDTH (integer) | 131072 | Игнорировать длину строки. |
NORM_IGNOREKANATYPE (integer) | 65536 | Игнорировать тип Kana. |
NORM_IGNOREKASHIDA (integer) | 262144 | Игнорировать символы Arabic kashida. | Доступность зависит от используемой библиотеки.
DISP_E_DIVBYZERO (integer) | -2147352558 | Ответ означающий попытку деления на ноль. | Начиная с PHP 7.0.0, значение равно 2147614738 в x64.
DISP_E_OVERFLOW (integer) | -2147352566 | Ошибка означающая, что значение не может быть приведено к ожидаемому типу. | Начиная с PHP 7.0.0, значение равно 2147614730 в x64.
DISP_E_BADINDEX (integer) | -2147352565 | Ошибка, означающая, что индекс массива не существует. | Начиная с PHP 7.0.0, значение равно 2147614731 в x64.
MK_E_UNAVAILABLE (integer) | -2147221021 | Код статуса iMoniker COM, возвращается в случае ошибки когда функция не сожет быть вызвана, поскольну недоступна. | Начиная с PHP 7.0.0, значение равно 2147746275 в x64.


Ошибки и их обработка

Модуль выбрасывает исключения класса com_exception в случае потенциальной фатальной ошибки возвращенной COM. Исключения COM имеют четко определенное свойство code, соответствующее возвращенному из различных операций COM значению HRESULT. На основании этого кода вы можете построить логику обработки данных ошибок.


  • « Ошибки и их обработка
  • For Each »
  • PHP Manual
  • COM
  • Примеры

Примеры

Содержание

  • For Each
  • Массивы и свойства COM в стиле массивов


For Each

Вы можете использовать конструкцию foreach для итерации контента стандартного COM/OLE IEnumVariant. Другими словами, это означает, что вы можете использовать foreach там, где вы использовали For Each в коде VB/ASP.

Пример #1 For Each в ASP

<%
Set domainObject = GetObject("WinNT://Domain")
For Each obj in domainObject
  Response.Write obj.Name & "<br />"
Next
%>

Пример #2 foreach в PHP

<?php
$domainObject = new COM("WinNT://Domain");
foreach ($domainObject as $obj) {
   echo $obj->Name . "<br />";
}
?>


Массивы и свойства COM в стиле массивов

Многие свойства объектов COM представляют свои свойства как массивы, либо просто с использованием синтаксиса доступа как к массивам.

Вам доступно:

  • Доступ к многомерным массивам или свойствам COM, используя синтаксис доступа к массивам. Также вы можете записывать и создавать свойства таким же образом.

  • Итерация SafeArray ("настоящие" массивы), используя foreach. Это работает, поскольку SafeArrays включает в себя информацию о своем размере. Если свойство реализует IEnumVariant, то вы также можете использовать для него foreach. Более подробно читайте в разделе For Each.


Класс COM

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

Введение

Класс COM позволяет создавать экземпляры OLE-совместимого COM-объекта, вызывать его методы и получать доступ к его свойствам.

Обзор классов

COM extends VARIANT {
/* Методы */
__construct ( string $module_name [, mixed $server_name = NULL [, int $codepage = CP_ACP [, string $typelib ]]] )
}

Перегруженные методы

Возвращаемые объекты являются перегруженными, то есть PHP не видит каких-либо фиксированных методов, как это происходит с обычными классами. Вместо этого свойства и доступ к методам передается через COM.

PHP автоматически определяет методы, которые обращаются к свойствам по ссылкам и автоматически преобразуют стандартные переменные PHP в вид, который можно передавать по ссылке. Это означает, что вы можете вызывать методы не внося каких-либо дополнений в свой код.

Примеры использования COM

Пример #1 Первый пример

<?php
// запускаем word
$word = new COM("word.application") or die("Невозможно создать экземпляр Word");
echo "Загружен Word, версия {$word->Version}\n";

//делаем его активным окном
$word->Visible = 1;

//открываем пустой документ
$word->Documents->Add();

//Что то с ним делаем
$word->Selection->TypeText("Это проверка...");
$word->Documents[1]->SaveAs("Бесполезный тест.doc");

//закрываем word
$word->Quit();

//высвобождаем ресурсы объекта
$word = null;
?>

Пример #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");    // Набор записей

$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++;            // увеличиваем счетчик строк
    $rs->MoveNext();
}

$rs->Close();
$conn->Close();

$rs = null;
$conn = null;

?>

Содержание

  • COM::__construct — Конструктор класса COM


Конструктор класса COM

  • « COM
  • DOTNET »
  • PHP Manual
  • COM
  • Конструктор класса COM

COM::__construct

(PHP 4 > 4.1.0, PHP 5, PHP 7)

COM::__construct — Конструктор класса COM

Описание

COM::__construct ( string $module_name [, mixed $server_name = NULL [, int $codepage = CP_ACP [, string $typelib ]]] )

Создает объект класса COM.

Список параметров

module_name
ProgID, Class ID или Moniker, указывающий на компонент для загрузки. Обычно ProgID - это имя приложения или DLL и имя объекта, разделенные точкой. Например: Word.Application. Class ID - это UUID, уникальный для заданного класса. Moniker - специальная форма именования, похожая по концепции к URL, которая идентифицирует ресурс и способ его загрузки. Например, вы можете загрузить Word и получить объект, представляющий документ, указав полный путь к документу word как имя модуля, либо же использовать LDAP: в качестве моникера для использования ADSI интерфейса к LDAP.
server_name
Имя сервера DCOM, на котором компонент должен быть загружен и запущен. Если задано как NULL, объект будет запущен для сервере по умолчанию для приложения. Обычно сервер по умолчанию - это локальный компьютер, если администратор не сконфигурировал иначе. Если вы зададите значение отличное от NULL, PHP не будет загружать объект, пока вы не установите опцию конфигурации в TRUE.

Если server_name задан как массив, то этот массив должен содержать следующие элементы (регистр символов важен). Обратите внимание, что они все необязательные (единственно, что Username и Password должны идти парой); Если вы не укажете Server, то будет выбран сервер по умолчанию и создание объекта не будет зависеть от значения настройки .

Имя сервера DCOM
ключ | тип | описание
Server | string | Имя сервера.
Username | string | Имя пользователя.
Password | string | Пароль для Username.
Flags | integer | Одна или несколько констант, объединенных логическим ИЛИ: CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER, CLSCTX_LOCAL_SERVER, CLSCTX_REMOTE_SERVER, CLSCTX_SERVER и CLSCTX_ALL. Значение по умолчанию CLSCTX_SERVER, если Server не задан и CLSCTX_REMOTE_SERVER, если задан. Про назначение этих констант можно прочитать в документации Microsoft по CoCreateInstance. Но в реальности они вам вряд ли понадобятся.

codepage
Кодовая страница для преобразования в юникод и обратно. Конвертация происходит когда строка PHP передается как параметр COM объекту и когда от него приходит ответ. Обратите внимание, что данная кодовая страница будет использоваться для всех объектов и вариантов, возвращаемых данным объектом. Допустимые значения: CP_ACP (Значение по умолчанию. Системная кодовая страница ANSI), CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP (Использовать кодовую страницу/локаль, установленную для запущенного потока), CP_UTF7 и CP_UTF8. Также можно использовать число, обозначающее кодовую страницу. Подробности читайте в документации Microsoft.


Класс DOTNET

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

Введение

Класс DOTNET позволяет создавать объекты из сборок .Net, вызывать их методы и использовать их свойства, если класс, методы и свойства » видимы для COM.

Замечание:

Вам нужно установить библиотеки времени исполнения .Net на ваш веб-сервер, чтобы воспользоваться этой функцией.

Обзор классов

DOTNET extends VARIANT {
/* Методы */
__construct ( string $assembly_name , string $class_name [, int $codepage = CP_ACP ] )
}

Перегруженные методы

Возвращаемый объект является перегруженным, то есть PHP не видит каких-либо фиксированных методов, как это происходит с обычными классами; вместо этого свойства и доступ к методам передается через COM, а оттуда в DOTNET. Другими словами, объект .Net отображается через уровень взаимодействия COM, предоставляемый библиотекой времени исполнения .Net.

Как только вы создали объект DOTNET, PHP обрабатывает его идентично любому другому объекту COM; применяются все те же правила.

Примеры DOTNET

Пример #1 Пример использования DOTNET

<?php
$stack = new DOTNET("mscorlib", "System.Collections.Stack");
$stack->Push(".Net");
$stack->Push("Привет ");
echo $stack->Pop() . $stack->Pop();
?>

Содержание

  • DOTNET::__construct — Конструктор класса DOTNET


Конструктор класса DOTNET

  • « DOTNET
  • VARIANT »
  • PHP Manual
  • DOTNET
  • Конструктор класса DOTNET

DOTNET::__construct

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

DOTNET::__construct — Конструктор класса DOTNET

Описание

DOTNET::__construct ( string $assembly_name , string $class_name [, int $codepage = CP_ACP ] )

Создает объект класса DOTNET.

Список параметров

assembly_name
Указывает сборку для загрузки.
class_name
Имя класса для инстанцияции.
codepage
Кодовая страница. Подробности читайте на странице COM.


Класс VARIANT

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

Введение

VARIANT - это эквивалент zval для COM; это структура, которая может содержать значения различных допустимых типов. Класс VARIANT входит в модуль COM и позволяет больше контролировать значения, передаваемые от PHP к COM и обратно.

Обзор классов

VARIANT {
/* Методы */
__construct ([ mixed $value = NULL [, int $type = VT_EMPTY [, int $codepage = CP_ACP ]]] )
}

Примеры VARIANT

Пример #1 Пример использования Variant

<?php
$v = new VARIANT(42);
print "The type is " . variant_get_type($v) . "<br/>";
print "The value is " . $v . "<br/>";
?>

Замечание:

Когда возвращается значение или извлекается свойство, VARIANT преобразуется в значение PHP только если есть прямая связь между типами, что не приведет к потере информации. Во всех остальных случаях результат вернется в виде экземпляра класса VARIANT. Вы можете принудительно указать PHP конвертировать значения в типы PHP используя оператор приведения типов или же преобразовывать их в строку, используя функцию print. Вы можете использовать множество функций класса для арифметических операций без приведения значений к типам PHP с риском потери информации.

Смотрите также variant_get_type().

Содержание

  • VARIANT::__construct — Конструктор класса VARIANT


Конструктор класса VARIANT

  • « VARIANT
  • com_exception »
  • PHP Manual
  • VARIANT
  • Конструктор класса VARIANT

VARIANT::__construct

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

VARIANT::__construct — Конструктор класса VARIANT

Описание

VARIANT::__construct ([ mixed $value = NULL [, int $type = VT_EMPTY [, int $codepage = CP_ACP ]]] )

Создает объект класса VARIANT.

Список параметров

value
Начальное значение. Если не задано или задано как NULL, будет создан объект VT_EMPTY.
type
Задает тип контента объекта VARIANT. Допустимые значения - одна из констант VT_XXX (Предопределенные константы). PHP может автоматически определять параметры, переданные по ссылке; их даже не нужно передавать как объекты VARIANT. Дополнительную информацию по типам VARIANT читайте в библиотеке MSDN.
codepage
Кодовая страница. Подробности читайте на странице COM.


Класс com_exception

(PHP 5, PHP 7)

Введение

Обзор классов

com_exception extends Exception implements Throwable {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Функции COM

Смотрите также

Для получения дальнейшей информации о COM прочтите » Спецификацию COM. Вы можете найти дополнительную информацию в нашем FAQ PHP и COM. Если вы хотите использовать приложение MS Office на стороне сервера, необходимо прочитать представленную здесь информацию: » Использование MS Office на стороне сервера.

Содержание

  • com_create_guid — Создание уникального глобального идентификатора (GUID)
  • com_event_sink — Связать сообщения объекта COM с объектом PHP
  • com_get_active_object — Вернуть дескриптор на уже запущенный экземпляр объекта COM
  • com_load_typelib — Загрузка Typelib
  • com_message_pump — Обработка сообщений COM, пришедших не позднее timeoutms миллисекунд послее ее запуска
  • com_print_typeinfo — Печатает определение класса PHP для интерфейса, наследующего IDispatch
  • variant_abs — Получить абсолютное значение варианта
  • variant_add — Сложить значения двух вариантов
  • variant_and — Побитовое И над двумя вариантами
  • variant_cast — Преобразование варианта в новый вариант другого типа
  • variant_cat — Объединение (конкатенация) значений двух вариантов
  • variant_cmp — Сравнить два варианта
  • variant_date_from_timestamp — Получить представление даты для варианта из временной метки Unix
  • variant_date_to_timestamp — Преобразует вариант типа дата/время во временную метку Unix
  • 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_type — Приведение варианта к другому типу "по месту"
  • variant_set — Присвоение нового значения объекту варианта
  • variant_sub — Вычитает значение правого варианта из левого
  • variant_xor — Исключающее ИЛИ над двумя вариантами


Создание уникального глобального идентификатора (GUID)

  • « Функции COM
  • com_event_sink »
  • PHP Manual
  • Функции COM
  • Создание уникального глобального идентификатора (GUID)

com_create_guid

(PHP 5, PHP 7)

com_create_guid — Создание уникального глобального идентификатора (GUID)

Описание

com_create_guid ( void ) : string

Создает уникальный глобальный идентификатор (GUID).

GUID генерируется так же как и DCE UUID, за исключением того, что, по конвенции Microsoft, необходимо заключать GUID в фигурные скобки.

Возвращаемые значения

Возвращает строку с GUID.

Смотрите также

  • uuid_create() в модуле PECL uuid


Связать сообщения объекта COM с объектом PHP

  • « com_create_guid
  • com_get_active_object »
  • PHP Manual
  • Функции COM
  • Связать сообщения объекта COM с объектом PHP

com_event_sink

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

com_event_sink — Связать сообщения объекта COM с объектом PHP

Описание

com_event_sink ( variant $comobject , object $sinkobject [, mixed $sinkinterface ] ) : bool

Обязывает объект COM пробрасывать сообщения, созданные comobject в объект PHP sinkobject.

Будьте осторожны с этой возможностью. Если вы будете делать что-то похожее на пример ниже, то это не будет иметь никакого смысла при запуске в контексте веб-сервера.

Список параметров

comobject

sinkobject

sinkobject должен быть экземпляром класса с методами, названными как в выбранном диспетчерском интерфейсе; вы можете использовать функцию com_print_typeinfo() для помощи в генерации шаблона класса.

sinkinterface

PHP будет пытаться использовть тип диспетчерского интерфейса по умолчанию, как указано в библиотеке типов, связанной с comobject, но вы можете изменить такое поведение, задав в sinkinterface имя желаемого диспетчерского интерфейса.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример com_event_sink

<?php
class IEEventSinker {
    var $terminated = false;

   function ProgressChange($progress, $progressmax) {
      echo "Прогресс загрузки: $progress / $progressmax\n";
    }

    function DocumentComplete(&$dom, $url) {
      echo "Загрузка $url завершена\n";
    }

    function OnQuit() {
      echo "Quit!\n";
      $this->terminated = true;
    }
}
$ie = new COM("InternetExplorer.Application");
//обратите внимание, что & в PHP 5 не нужно!
$sink = new IEEventSinker();
com_event_sink($ie, $sink, "DWebBrowserEvents2");
$ie->Visible = true;
$ie->Navigate("http://www.example.org");
while(!$sink->terminated) {
  com_message_pump(4000);
}
$ie = null;
?>

Смотрите также

  • com_print_typeinfo() - Печатает определение класса PHP для интерфейса, наследующего IDispatch
  • com_message_pump() - Обработка сообщений COM, пришедших не позднее timeoutms миллисекунд послее ее запуска


Вернуть дескриптор на уже запущенный экземпляр объекта COM

  • « com_event_sink
  • com_load_typelib »
  • PHP Manual
  • Функции COM
  • Вернуть дескриптор на уже запущенный экземпляр объекта COM

com_get_active_object

(PHP 5, PHP 7)

com_get_active_object — Вернуть дескриптор на уже запущенный экземпляр объекта COM

Описание

com_get_active_object ( string $progid [, int $code_page ] ) : variant

com_get_active_object() - это то же самое, что и создание нового экземпляра объекта COM, за исключением того, что объект будет возвращен, если он уже запущен. Приложения OLE используют так называемую "Таблицу Запущенных Объектов" для возможности запускать приложения единожды. Эта функция представляет обертку над библиотечной COM-функцией GetActiveObject().

Список параметров

progid

progid должен быть или ProgID или CLSID объекта, к которому вы хотите получить доступ (к примеру, Word.Application).

code_page

Делает то же самое, что и в классе COM.

Возвращаемые значения

Если запрошенный объект запущен, то он будет возвращен вашему скрипту как любой другой объект COM.

Ошибки

Есть множество причин, по которым эта функция может завершиться с ошибкой. Наиболее распространенная причина в том, что объект не запущен. В таком случае будет выброшено исключение MK_E_UNAVAILABLE; вы можете использовать метод getCode для проверки кода исключения.

Примечания

Внимание

Использование com_get_active_object() в контексте веб-сервера - это не самая умная идея. Большинство приложений COM/OLE спроектированы так, что не могут работать одновременно с несколькими пользователями, даже (или особенно) Microsoft Office. Больше полезной информации читайте в » Considerations for Server-Side Automation of Office.


Загрузка Typelib

  • « com_get_active_object
  • com_message_pump »
  • PHP Manual
  • Функции COM
  • Загрузка Typelib

com_load_typelib

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

com_load_typelib — Загрузка Typelib

Описание

com_load_typelib ( string $typelib_name [, bool $case_sensitive = TRUE ] ) : bool

Загружает библиотеку типов и регистрирует ее константы таким образом, как если бы они были определены через define().

Обратите внимание, что гораздо эффективней использовать опцию конфигурации для предзагрузки и регистрации констант. С другой стороны, таком метод менее гибок.

Если включено, то PHP постарается автоматически зарегистрировать константы, ассоциированные с объектом COM, когда вы будете создавать его экземпляр. Но подобное поведение зависит от интерфейса объекта COM И может быть недоступно.

Список параметров

typelib_name

typelib_name принимает следующие значения:

  • Имя .tlb-файла или запускаемый модуль, содержащий библиотеку типов.

  • GUID библиотеки типов, после которого указан номер версии, например, {00000200-0000-0010-8000-00AA006D2EA4},2,0.

  • Имя библиотеки типов, например, Microsoft OLE DB ActiveX Data Objects 1.0 Library.

PHP будет пытаться определить библиотеку в таком порядке. Каждый следующий пункт сильно затратнее по ресурсам чем предыдущий. Т.е. лучше указывать .tbl-файл, если невозможно, то GUID и если совсем все плохо - тогда имя библиотеки. Поиск библиотеки по имени, например, приведет к тому, что будет произведен перебор всех записей регистра.

case_sensitive

case_sensitive ведет себя противоположно параметру $case_insensitive в функции define().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Обработка сообщений COM, пришедших не позднее timeoutms миллисекунд послее ее запуска

  • « com_load_typelib
  • com_print_typeinfo »
  • PHP Manual
  • Функции COM
  • Обработка сообщений COM, пришедших не позднее timeoutms миллисекунд послее ее запуска

com_message_pump

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

com_message_pump — Обработка сообщений COM, пришедших не позднее timeoutms миллисекунд послее ее запуска

Описание

com_message_pump ([ int $timeoutms = 0 ] ) : bool

Функция "засыпает" на timeoutms миллисекунд, либо пока в очередь не придет новое сообщение.

Назначение функции состоит в маршрутизации вызовов COM между подразделениями и обработке различных асинхронных задач. Она позволит вашему скрипту ожидать возникновения события, одновременно с этим перехватывая другие события или выполняя другой код в фоне. Вы должны использовать ее в цикле, как показано в примере функции com_event_sink() до момента прекращения использования привязки событий объекта COM.

Список параметров

timeoutms

Задержка в миллисекундах.

Если значение timeoutms не задано, то оно будет считаться равным нулю. Это означает, что задержки не будет. Если при этом присутствует ожидающее событие, то оно будет обработано как обычно. Если события нет, то функция сразу же вернет FALSE.

Возвращаемые значения

Если сообщения пришли до исчерпания задержки, то они будут обработаны и функция вернет TRUE. Если время задержки вышло и ни одного сообщения не пришло, то функция вернет FALSE.


Печатает определение класса PHP для интерфейса, наследующего IDispatch

  • « com_message_pump
  • variant_abs »
  • PHP Manual
  • Функции COM
  • Печатает определение класса PHP для интерфейса, наследующего IDispatch

com_print_typeinfo

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

com_print_typeinfo — Печатает определение класса PHP для интерфейса, наследующего IDispatch

Описание

com_print_typeinfo ( object $comobject [, string $dispinterface = NULL [, bool $wantsink = FALSE ]] ) : bool

Назначение функции состоит в создании "рыбы" класса для использования в качестве приемника событий. Также вы можете использовать ее для генерации заглушки для любого объекта COM при условии, что он поддерживает достаточное количество интерфейсов самодиагностики, и что вы знаете имя интерфейса, который вы хотите отобразить.

Список параметров

comobject

comobject должен быть экземпляром класса COM, либо именем библиотеки типов (которое будет разобрано согласно набору правил, заданному в com_load_typelib()).

dispinterface

Имя интерфейса, наследующего IDispatch, который вы хотите отобразить.

wantsink

Если TRUE, то будет отображен соответствующий интерфейс приемника событий.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • com_event_sink() - Связать сообщения объекта COM с объектом PHP
  • com_load_typelib() - Загрузка Typelib


Получить абсолютное значение варианта

  • « com_print_typeinfo
  • variant_add »
  • PHP Manual
  • Функции COM
  • Получить абсолютное значение варианта

variant_abs

(PHP 5, PHP 7)

variant_abs — Получить абсолютное значение варианта

Описание

variant_abs ( mixed $val ) : variant

Возвращает абсолютное значение варианта.

Список параметров

val

Вариант.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Возвращает абсолютное значение val.

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.

Смотрите также

  • abs() - Абсолютное значение (модуль числа)


Сложить значения двух вариантов

  • « variant_abs
  • variant_and »
  • PHP Manual
  • Функции COM
  • Сложить значения двух вариантов

variant_add

(PHP 5, PHP 7)

variant_add — Сложить значения двух вариантов

Описание

variant_add ( mixed $left , mixed $right ) : variant

Складывает left с right, используя слудующие правила (взято из библиотеки MSDN), в соответствии с Visual Basic:

Правила сложения вариантов
Если | То
Оба выражения являются строками | Конкатенация
Одно выражение строка, а второе - символ | Добавление
Одно выражение числовое, а второе строковое | Добавление
Оба выражения - числа | Добавление
Одно из выражений равно NULL | Будет возвращен NULL
Оба выражения пусты | Будет возвращен целочисленный подтип

Список параметров

left

Левый операнд.

right

Правый операнд.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Возвращает результат.

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.

Смотрите также

  • variant_sub() - Вычитает значение правого варианта из левого


Побитовое И над двумя вариантами

  • « variant_add
  • variant_cast »
  • PHP Manual
  • Функции COM
  • Побитовое И над двумя вариантами

variant_and

(PHP 5, PHP 7)

variant_and — Побитовое И над двумя вариантами

Описание

variant_and ( mixed $left , mixed $right ) : variant

Побитовое И над двумя вариантами. Обратите внимание, что это не совсем обычная операция И.

Список параметров

left

Левый операнд.

right

Правый операнд.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Правила И для вариантов
Если left равен | и right равен | результат будет
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

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.

Смотрите также

  • variant_or() - Побитовое ИЛИ над двумя вариантами


Преобразование варианта в новый вариант другого типа

  • « variant_and
  • variant_cat »
  • PHP Manual
  • Функции COM
  • Преобразование варианта в новый вариант другого типа

variant_cast

(PHP 5, PHP 7)

variant_cast — Преобразование варианта в новый вариант другого типа

Описание

variant_cast ( variant $variant , int $type ) : variant

Функция делает копию варианта variant и преобразует ее к типу type.

Функция является оберткой над функцией VariantChangeType() из библиотеки COM. Более подробно читайте в MSDN.

Список параметров

variant

Вариант.

type

type должен быть одной из констант VT_XXX.

Возвращаемые значения

Возвращает вариант заданного типа type.

Смотрите также

  • variant_set_type() - Приведение варианта к другому типу "по месту"


Объединение (конкатенация) значений двух вариантов

  • « variant_cast
  • variant_cmp »
  • PHP Manual
  • Функции COM
  • Объединение (конкатенация) значений двух вариантов

variant_cat

(PHP 5, PHP 7)

variant_cat — Объединение (конкатенация) значений двух вариантов

Описание

variant_cat ( mixed $left , mixed $right ) : variant

Объединяет left с right и возвращает результат.

Функция эквивалентна выполнению $left . $right.

Список параметров

left

Левый операнд.

right

Правый операнд.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Возвращает результат объединения.

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.

Смотрите также

  • Строковые операторы - конкатенация строк


Сравнить два варианта

  • « variant_cat
  • variant_date_from_timestamp »
  • PHP Manual
  • Функции COM
  • Сравнить два варианта

variant_cmp

(PHP 5, PHP 7)

variant_cmp — Сравнить два варианта

Описание

variant_cmp ( mixed $left , mixed $right [, int $lcid [, int $flags ]] ) : int

Сравнивает left с right.

Функция сравнивает только скалярные величины. Массивы и записи вариантов не сравнивает.

Список параметров

left

Левый операнд.

right

Правый операнд.

lcid

Корректный идентификатор локали, используемый при сравнении строк (влияет на сортировку строк).

flags

flags - побитовое ИЛИ следующих значений (либо просто одно из них):

Флаги сравнения вариантов
значение | описание
NORM_IGNORECASE | Сравнивать регистронезависимо
NORM_IGNORENONSPACE | Игнорировать символы не занимающие места
NORM_IGNORESYMBOLS | Игнорировать символы
NORM_IGNOREWIDTH | Игнорировать длину строки
NORM_IGNOREKANATYPE | Игнорировать тип Кана
NORM_IGNOREKASHIDA | Игнорировать символы Кашиды для Арабского языка

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Возвращает одно из:

Результаты сравнения вариантов
значение | описание
VARCMP_LT | left меньше чем right
VARCMP_EQ | left идентичен right
VARCMP_GT | left больше чем right
VARCMP_NULL | Оба значения left и right равны NULL


Получить представление даты для варианта из временной метки Unix

  • « variant_cmp
  • variant_date_to_timestamp »
  • PHP Manual
  • Функции COM
  • Получить представление даты для варианта из временной метки Unix

variant_date_from_timestamp

(PHP 5, PHP 7)

variant_date_from_timestamp — Получить представление даты для варианта из временной метки Unix

Описание

variant_date_from_timestamp ( int $timestamp ) : variant

Преобразует timestamp из значения временной метки Unix в вариант типа VT_DATE. Это позволяет более просто совместить часть PHP в Unix-стиле с COM.

Список параметров

timestamp

Временная метка Unix.

Возвращаемые значения

Возвращает вариант типа VT_DATE.

Смотрите также

  • variant_date_to_timestamp() - Преобразует вариант типа дата/время во временную метку Unix
  • mktime() - Возвращает метку времени Unix для заданной даты
  • time() - Возвращает текущую метку системного времени Unix


Преобразует вариант типа дата/время во временную метку Unix

  • « variant_date_from_timestamp
  • variant_div »
  • PHP Manual
  • Функции COM
  • Преобразует вариант типа дата/время во временную метку Unix

variant_date_to_timestamp

(PHP 5, PHP 7)

variant_date_to_timestamp — Преобразует вариант типа дата/время во временную метку Unix

Описание

variant_date_to_timestamp ( variant $variant ) : int

Конвертирует variant из значения VT_DATE (или аналогичного типа) во временную метку Unix. Это позволяет проще совместить часть PHP в Unix-стиле с COM.

Список параметров

variant

Вариант.

Возвращаемые значения

Возвращает временную метку Unix..

Смотрите также

  • variant_date_from_timestamp() - Получить представление даты для варианта из временной метки Unix
  • date() - Форматирует вывод системной даты/времени
  • strftime() - Форматирует текущую дату/время с учетом текущих настроек локали


Получить результат деления двух вариантов

  • « variant_date_to_timestamp
  • variant_eqv »
  • PHP Manual
  • Функции COM
  • Получить результат деления двух вариантов

variant_div

(PHP 5, PHP 7)

variant_div — Получить результат деления двух вариантов

Описание

variant_div ( mixed $left , mixed $right ) : variant

Делит left на right и возвращает результат.

Список параметров

left

Левый операнд.

right

Правый операнд.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Правила деления операндов
Если | Тогда
Оба варианта - строки, даты, символы, логические | Вернется тип double
Один вариант - строка, а другой - символ | Произойдет деление и вернется тип double
Один вариант - число, второй - строка | Произойдет деление и вернется тип double
Оба варианта - числа | Произойдет деление и вернется тип double
Один из вариантов - NULL | Вернет NULL
right пуст, а left не пуст | Будет выброшено исключение com_exception с кодом DISP_E_DIVBYZERO
left пуст, а right не пуст. | Вернет 0 типа double
Оба операнда пусты | Будет выброшено исключение com_exception с кодом DISP_E_OVERFLOW

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.

Смотрите также

  • variant_idiv() - Преобразование вариантов к целым с последующим делением


Побитовая эквиваленция двух вариантов

  • « variant_div
  • variant_fix »
  • PHP Manual
  • Функции COM
  • Побитовая эквиваленция двух вариантов

variant_eqv

(PHP 5, PHP 7)

variant_eqv — Побитовая эквиваленция двух вариантов

Описание

variant_eqv ( mixed $left , mixed $right ) : variant

Побитовая эквиваленция двух вариантов.

Список параметров

left

Левый операнд.

right

Правый операнд.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Биты возвращаемого значания выставятся в 1, если соответствующие биты операнда left будут идентичны соответствующим битам операнда right и в 0, если они будут отличаться. То есть, если применить эту функцию к значениям 100(01100100) и 53(00110101) для однобайтовых беззнаковых вариантов, то результат будет 174 (10101110).

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.


Вернуть целую часть варианта

  • « variant_eqv
  • variant_get_type »
  • PHP Manual
  • Функции COM
  • Вернуть целую часть варианта

variant_fix

(PHP 5, PHP 7)

variant_fix — Вернуть целую часть варианта

Описание

variant_fix ( mixed $variant ) : variant

Возвращает целую часть варианта.

Список параметров

variant

Вариант.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Если variant отрицателен, то будет возвращено первое отрицательное целое больше или равное варианту. В случае положительного числа будет просто возвращена целочисленная часть variant.

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.

Примечания

Внимание

Вы, наверное, заметили, что описание этой функции буква в букву совпадает с описанием функции variant_int(). Так как эта документация основана на MSDN, то это либо так и должно быть, либо в MSDN ошибка.

Смотрите также

  • variant_int() - Вернуть целочисленную часть варианта
  • variant_round() - Округляет вариант с заданной точностью
  • floor() - Округляет дробь в меньшую сторону
  • ceil() - Округляет дробь в большую сторону
  • round() - Округляет число типа float


Получить тип варианта

  • « variant_fix
  • variant_idiv »
  • PHP Manual
  • Функции COM
  • Получить тип варианта

variant_get_type

(PHP 5, PHP 7)

variant_get_type — Получить тип варианта

Описание

variant_get_type ( variant $variant ) : int

Возвращает тип объекта варианта.

Список параметров

variant

Вариант.

Возвращаемые значения

Функция возвращает целочисленное значение, обозначающее тип variant, который может быть экземпляром классов COM, DOTNET или VARIANT. Возвращаемое значение равно одной из констант VT_XXX.

Возвращаемое значение для объектов COM и DOTNET обычно равно VT_DISPATCH; единственная причина, почему эта функция работает для этих классов заключается в том, что COM и DOTNET являются потомками VARIANT.

Смотрите также

  • variant_set_type() - Приведение варианта к другому типу "по месту"


Преобразование вариантов к целым с последующим делением

  • « variant_get_type
  • variant_imp »
  • PHP Manual
  • Функции COM
  • Преобразование вариантов к целым с последующим делением

variant_idiv

(PHP 5, PHP 7)

variant_idiv — Преобразование вариантов к целым с последующим делением

Описание

variant_idiv ( mixed $left , mixed $right ) : variant

Преобразует left и right к целочисленным значением с последующим их целочисленным делением.

Список параметров

left

Левый операнд.

right

Правый операнд.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Правила деления вариантов
Если | То
Оба выражения являются строками, датами, символами или логическими | Целочисленное значение деления
Одно выражение является строкой, а второе символом | Деление
Одно выражение является числом, а второе строкой | Деление
Оба выражения являются числами | Деление
Одно из выражений NULL | Будет возвращен NULL
Оба выражения пусты | Исключение com_exception с кодом DISP_E_DIVBYZERO

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.

Смотрите также

  • variant_div() - Получить результат деления двух вариантов


Побитовая импликация над двумя вариантами

  • « variant_idiv
  • variant_int »
  • PHP Manual
  • Функции COM
  • Побитовая импликация над двумя вариантами

variant_imp

(PHP 5, PHP 7)

variant_imp — Побитовая импликация над двумя вариантами

Описание

variant_imp ( mixed $left , mixed $right ) : variant

Побитовая импликация над двумя вариантами.

Список параметров

left

Левый операнд.

right

Правый операнд.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Таблица импликации вариантов
Если left | Если right | Тогда результат
TRUE | TRUE | TRUE
TRUE | FALSE | FALSE
TRUE | NULL | TRUE
FALSE | TRUE | TRUE
FALSE | FALSE | TRUE
FALSE | NULL | TRUE
NULL | TRUE | TRUE
NULL | FALSE | NULL
NULL | NULL | NULL

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.


Вернуть целочисленную часть варианта

  • « variant_imp
  • variant_mod »
  • PHP Manual
  • Функции COM
  • Вернуть целочисленную часть варианта

variant_int

(PHP 5, PHP 7)

variant_int — Вернуть целочисленную часть варианта

Описание

variant_int ( mixed $variant ) : variant

Извлекает целочисленную часть варианта.

Список параметров

variant

Вариант.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Если variant отрицателен, то будет возвращено первое отрицательное целое больше или равное варианту. В случае положительного числа будет просто возвращена целочисленная часть variant.

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.

Смотрите также

  • variant_fix() - Вернуть целую часть варианта
  • variant_round() - Округляет вариант с заданной точностью
  • floor() - Округляет дробь в меньшую сторону
  • ceil() - Округляет дробь в большую сторону
  • round() - Округляет число типа float


Остаток от деления двух вариантов

  • « variant_int
  • variant_mul »
  • PHP Manual
  • Функции COM
  • Остаток от деления двух вариантов

variant_mod

(PHP 5, PHP 7)

variant_mod — Остаток от деления двух вариантов

Описание

variant_mod ( mixed $left , mixed $right ) : variant

Делит left на right и возвращает остаток.

Список параметров

left

Левый операнд.

right

Правый операнд.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Возвращает остаток от деления.

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.

Смотрите также

  • variant_div() - Получить результат деления двух вариантов
  • variant_idiv() - Преобразование вариантов к целым с последующим делением


Умножает значения двух вариантов

  • « variant_mod
  • variant_neg »
  • PHP Manual
  • Функции COM
  • Умножает значения двух вариантов

variant_mul

(PHP 5, PHP 7)

variant_mul — Умножает значения двух вариантов

Описание

variant_mul ( mixed $left , mixed $right ) : variant

Умножает left на right.

Список параметров

left

Левый операнд.

right

Правый операнд.

Логические значения преобразуются в -1 для FALSE и в 0 для TRUE.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Правила умножения вариантов
Если | То
Оба варианта строки, даты, символы, логические | Умножение
Один вариант - строка, а другой - символ | Умножение
Один вариант - число, второй - строка | Умножение
Оба варианта - числа | Умножение
Один из вариантов - NULL | Вернет NULL
Оба выражения пусты | Вернет пустую строку

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.

Смотрите также

  • variant_div() - Получить результат деления двух вариантов
  • variant_idiv() - Преобразование вариантов к целым с последующим делением


Логическое отрицание над вариантом

  • « variant_mul
  • variant_not »
  • PHP Manual
  • Функции COM
  • Логическое отрицание над вариантом

variant_neg

(PHP 5, PHP 7)

variant_neg — Логическое отрицание над вариантом

Описание

variant_neg ( mixed $variant ) : variant

Производит логическое отрицание над variant.

Список параметров

variant

Вариант.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Возвращает результат логического отрицания.

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.


Политовое отрицание над вариантом

  • « variant_neg
  • variant_or »
  • PHP Manual
  • Функции COM
  • Политовое отрицание над вариантом

variant_not

(PHP 5, PHP 7)

variant_not — Политовое отрицание над вариантом

Описание

variant_not ( mixed $variant ) : variant

Производит побитовое отрицание над variant и возвращает получившееся значение.

Список параметров

variant

Вариант.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Возвращает результат побитового отрицания. Если variant является NULL, то результат также будет NULL.

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.


Побитовое ИЛИ над двумя вариантами

  • « variant_not
  • variant_pow »
  • PHP Manual
  • Функции COM
  • Побитовое ИЛИ над двумя вариантами

variant_or

(PHP 5, PHP 7)

variant_or — Побитовое ИЛИ над двумя вариантами

Описание

variant_or ( mixed $left , mixed $right ) : variant

Побитовое ИЛИ над двумя вариантами. Обратите внимание, что функция немного отличается от обычной операции ИЛИ.

Список параметров

left

Левый операнд.

right

Правый операнд.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Правила побитового ИЛИ над вариантами
Если left | Если right | Тогда результат
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

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.

Смотрите также

  • variant_and() - Побитовое И над двумя вариантами
  • variant_xor() - Исключающее ИЛИ над двумя вариантами


Возводит один вариант в степень, заданную во втором

  • « variant_or
  • variant_round »
  • PHP Manual
  • Функции COM
  • Возводит один вариант в степень, заданную во втором

variant_pow

(PHP 5, PHP 7)

variant_pow — Возводит один вариант в степень, заданную во втором

Описание

variant_pow ( mixed $left , mixed $right ) : variant

Возвращает результат возведения left в степень right.

Список параметров

left

Левый опреанд.

right

Правый операнд (степень).

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Возвращает результат возведения left в степень right.

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.

Смотрите также

  • pow() - Возведение в степень


Округляет вариант с заданной точностью

  • « variant_pow
  • variant_set_type »
  • PHP Manual
  • Функции COM
  • Округляет вариант с заданной точностью

variant_round

(PHP 5, PHP 7)

variant_round — Округляет вариант с заданной точностью

Описание

variant_round ( mixed $variant , int $decimals ) : mixed

Возвращает значение variant, округленное до decimals десятичных знаков.

Список параметров

variant

Вариант.

decimals

Точность.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Округленное значение.

Смотрите также

  • round() - Округляет число типа float


Приведение варианта к другому типу "по месту"

  • « variant_round
  • variant_set »
  • PHP Manual
  • Функции COM
  • Приведение варианта к другому типу "по месту"

variant_set_type

(PHP 5, PHP 7)

variant_set_type — Приведение варианта к другому типу "по месту"

Описание

variant_set_type ( variant $variant , int $type ) : void

Функция аналогична variant_cast() за исключением того, что изменяется сам вариант, а не создается новый. Передаваемые функции параметры идентичны параметрам функции variant_cast().

Список параметров

variant

Вариант.

type

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • variant_cast() - Преобразование варианта в новый вариант другого типа
  • variant_get_type() - Получить тип варианта


Присвоение нового значения объекту варианта

  • « variant_set_type
  • variant_sub »
  • PHP Manual
  • Функции COM
  • Присвоение нового значения объекту варианта

variant_set

(PHP 5, PHP 7)

variant_set — Присвоение нового значения объекту варианта

Описание

variant_set ( variant $variant , mixed $value ) : void

Преобразует value в вариант и присваивает его объекту variant; при этом новый объект не создается и старое значение variant пропадает.

Список параметров

variant

Вариант.

value

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Вычитает значение правого варианта из левого

  • « variant_set
  • variant_xor »
  • PHP Manual
  • Функции COM
  • Вычитает значение правого варианта из левого

variant_sub

(PHP 5, PHP 7)

variant_sub — Вычитает значение правого варианта из левого

Описание

variant_sub ( mixed $left , mixed $right ) : variant

Вычитает right из left.

Список параметров

left

Левый операнд.

right

Правый операнд.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Правила вычитания вариантов
Если | То
Оба выражения являются строками | Вычитание
Одно выражение является строкой, а второе символом | Вычитание
Одно выражение является числом, а второе строкой | Вычитание
Оба выражения являются числами | Вычитание
Одно из выражений равно NULL | Возвратит NULL
Оба выражения пусты | Возвратит пустую строку

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.

Смотрите также

  • variant_add() - Сложить значения двух вариантов


Исключающее ИЛИ над двумя вариантами

  • « variant_sub
  • win32ps »
  • PHP Manual
  • Функции COM
  • Исключающее ИЛИ над двумя вариантами

variant_xor

(PHP 5, PHP 7)

variant_xor — Исключающее ИЛИ над двумя вариантами

Описание

variant_xor ( mixed $left , mixed $right ) : variant

Выполнение исключающего ИЛИ.

Список параметров

left

Левый операнд.

right

Правый операнд.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Правила выполнения исключающего ИЛИ
Если left | Если right | Тогда результат
TRUE | TRUE | FALSE
TRUE | FALSE | TRUE
FALSE | TRUE | TRUE
FALSE | FALSE | FALSE
NULL | NULL | NULL

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.

Смотрите также

  • variant_or() - Побитовое ИЛИ над двумя вариантами
  • variant_and() - Побитовое И над двумя вариантами


win32ps

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Примеры использования Win32ps
  • win32ps Функции
    • win32_ps_list_procs — Список запущенных процессов
    • win32_ps_stat_mem — Статистика использования памяти
    • win32_ps_stat_proc — Статистика процесса


Введение

Расширение win32ps - это расширение для Windows, которое позволяет PHP получать статистику о процессах и использовании памяти.


Требования

Windows NT, Windows 2000, Windows XP или Windows Server 2003. Любая версия Windows, производная от Windows NT, должна быть совместимой.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/win32ps.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • win32ps
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Примеры использования Win32ps »
  • PHP Manual
  • win32ps
  • Примеры

Примеры

Содержание

  • Примеры использования Win32ps


Примеры использования Win32ps

Пример #1 Статистические данные о текущем процессе PHP

<?php
print_r(win32_ps_stat_proc());
/*
    Array
    (
        [pid] => 936
        [exe] => D:\Daten\Source\php-5.1\Debug_TS\php.exe
        [mem] => Array
            (
                [page_fault_count] => 2062
                [peak_working_set_size] => 8396800
                [working_set_size] => 8396800
                [quota_peak_paged_pool_usage] => 32080
                [quota_paged_pool_usage] => 31876
                [quota_peak_non_paged_pool_usage] => 4240
                [quota_non_paged_pool_usage] => 3888
                [pagefile_usage] => 5865472
                [peak_pagefile_usage] => 5865472
            )

        [tms] => Array
            (
                [created] => 0.093
                [kernel] => 0.015
                [user] => 0.062
            )

    )
*/
?>

Пример #2 Статистические данные о глобальном использовании памяти

<?php
print_r(win32_ps_stat_mem());
/*
    Array
    (
        [load] => 37
        [unit] => 1024
        [total_phys] => 1048096
        [avail_phys] => 649960
        [total_pagefile] => 2521368
        [avail_pagefile] => 2237940
        [total_virtual] => 2097024
        [avail_virtual] => 2057848
    )
*/
?>


win32ps Функции

Содержание

  • win32_ps_list_procs — Список запущенных процессов
  • win32_ps_stat_mem — Статистика использования памяти
  • win32_ps_stat_proc — Статистика процесса


Список запущенных процессов

  • « win32ps Функции
  • win32_ps_stat_mem »
  • PHP Manual
  • win32ps Функции
  • Список запущенных процессов

win32_ps_list_procs

(PECL win32ps >= 1.0.1)

win32_ps_list_procs — Список запущенных процессов

Описание

win32_ps_list_procs ( void ) : array

Извлекает статистику по всем запущенным процессам.

Возвращаемые значения

Возвращает FALSE в случае неудачи, или массив, содержащий статистику, аналогичную win32_ps_stat_proc(), но по всем запущенным процессам в случае успешного выполнения.

Смотрите также

  • win32_ps_stat_proc() - Статистика процесса


Статистика использования памяти

  • « win32_ps_list_procs
  • win32_ps_stat_proc »
  • PHP Manual
  • win32ps Функции
  • Статистика использования памяти

win32_ps_stat_mem

(PECL win32ps >= 1.0.1)

win32_ps_stat_mem — Статистика использования памяти

Описание

win32_ps_stat_mem ( void ) : array

Извлекает статистику общего использования памяти.

Возвращаемые значения

Возвращает FALSE в случае неудачи, или массив содержащий следующую информацию, в случае успешного выполнения:

load

Текущее использование памяти в процентах к суммарной физической памяти.

unit

Всегда 1024. Означает, что все нижеперечисленные значения считаются в блоках по 1024 байт.

total_phys

Количество физической памяти.

avail_phys

Количество доступной физической памяти.

total_pagefile

Количество страниц адресуемой памяти (физическая + файл подкачки).

avail_pagefile

Количество доступных страниц адресуемой памяти (физическая + файл подкачки).

total_virtual

Количество общей виртуальной памяти для процесса.

avail_virtual

Количество доступной виртуальной памяти для процесса.


Статистика процесса

  • « win32_ps_stat_mem
  • win32service »
  • PHP Manual
  • win32ps Функции
  • Статистика процесса

win32_ps_stat_proc

(PECL win32ps >= 1.0.1)

win32_ps_stat_proc — Статистика процесса

Описание

win32_ps_stat_proc ([ int $pid = 0 ] ) : array

Извлекает статистику по процессу с идентификатором pid.

Список параметров

pid

Идентификатор процесса. Если не указан, то используется текущий процесс.

Возвращаемые значения

Возвращает FALSE в случае неудачи, или массив содержащий следующую информацию, в случае успешного выполнения:

pid

Идентификатор процесса.

exe

Путь к запускаемому файлу.

mem

Массив, содержащий информацию по следующим индикаторам использования памяти: page_fault_count, peak_working_set_size, working_set_size, quota_peak_paged_pool_usage, quota_paged_pool_usage, quota_peak_non_paged_pool_usage, quota_non_paged_pool_usage, pagefile_usage и peak_pagefile_usage.

tms

Массив, содержащий информацию по следующим индикаторам использования процессора: created, kernel и user.

Смотрите также

  • win32_ps_list_procs() - Список запущенных процессов


win32service

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
    • Вопросы безопасности
  • Предопределенные константы
    • Битовые маски типа службы Win32Service
    • Константы статуса службы Win32Service
    • Константы обработки сообщений службой Win32Service
    • Принимаемые битовые маски обработки сообщений службой Win32Service
    • Константы типа запуска службы Win32Service
    • Константы контроля ошибок сервиса Win32Service
    • Константы флагов сервиса Win32Service
    • Коды ошибок Win32
    • Базовые классы приоритетов Win32
    • Действия при восстановлении Win32
    • Win32 Service informations
  • Примеры
  • win32service
    • win32_continue_service — Возобновляет работу приостановленной службы
    • 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_pause_service — Pauses a service
    • win32_query_service_status — Queries the status of a service
    • win32_send_custom_control — Send a custom control to the service
    • win32_set_service_exit_code — Define or return the exit code for the current running service
    • win32_set_service_exit_mode — Define or return the exit mode for the current running service
    • win32_set_service_status — Update the service status
    • win32_start_service_ctrl_dispatcher — Добавляет в Диспетчер Служб скрипт, который может быть использован, как служба с заданным именем
    • win32_start_service — Запускает службу
    • win32_stop_service — Останавливает службу


Введение

Расширение win32service - это специальное Windows-расширение, которое позволяет PHP взаимодействовать с диспетчером управления службами для запуска, остановки, добавления и удаления служб, и даже запускать ваши PHP скрипты как службы.


Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения
  • Типы ресурсов
  • Вопросы безопасности


Требования

Windows NT, Windows 2000, Windows XP или Windows Server 2003. Любая версия Windows, начиная с Windows NT, совместима.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/win32service


  • « Настройка во время выполнения
  • Вопросы безопасности »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Вопросы безопасности

Этому модулю необходимы права администратора для совершения таких действий как: create, delete, start, stop, pause и continue. Это требование может вызвать повышение привилегий, если управление службами доступно через веб-интерфейс или удаленное управление.

Вы можете установить ACL для сервиса после его добавления в SCM для делегирования административных задач не администраторскому аккаунту, либо аккаунту сервиса. Более подробно читайте в » Microsoft Knowledge Base.


Предопределенные константы

Содержание

  • Битовые маски типа службы Win32Service
  • Константы статуса службы Win32Service
  • Константы обработки сообщений службой Win32Service
  • Принимаемые битовые маски обработки сообщений службой Win32Service
  • Константы типа запуска службы Win32Service
  • Константы контроля ошибок сервиса Win32Service
  • Константы флагов сервиса Win32Service
  • Коды ошибок Win32
  • Базовые классы приоритетов Win32
  • Действия при восстановлении Win32
  • Win32 Service informations

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.


Битовые маски типа службы Win32Service

  • « Предопределенные константы
  • Константы статуса службы Win32Service »
  • PHP Manual
  • Предопределенные константы
  • Битовые маски типа службы Win32Service
Битовые маски типа службы Win32Service
Константа | Значение | Описание
WIN32_SERVICE_WIN32_OWN_PROCESS | 0x00000010 | Служба работает в своем собственном процессе.
WIN32_SERVICE_INTERACTIVE_PROCESS | 0x00000100 | Служба может взаимодействовать с рабочим столом. Эта опция недоступна в Windows Vista и более поздних.
WIN32_SERVICE_WIN32_OWN_PROCESS_INTERACTIVE | 0x00000110 | Служба работает в своем собственном процессе и может взаимодействовать с рабочим столом. Эта опция недоступна в Windows Vista и более поздних.


Константы статуса службы Win32Service

  • « Битовые маски типа службы Win32Service
  • Константы обработки сообщений службой Win32Service »
  • PHP Manual
  • Предопределенные константы
  • Константы статуса службы Win32Service
Константы статуса службы Win32Service
Константа | Значение | Описание
WIN32_SERVICE_CONTINUE_PENDING | 0x00000005 | Служба в ожидании выхода из состояния паузы.
WIN32_SERVICE_PAUSE_PENDING | 0x00000006 | Служба ожидает перехода в состояние паузы.
WIN32_SERVICE_PAUSED | 0x00000007 | Служба в состоянии паузы.
WIN32_SERVICE_RUNNING | 0x00000004 | Служба запущена.
WIN32_SERVICE_START_PENDING | 0x00000002 | Служба стартует.
WIN32_SERVICE_STOP_PENDING | 0x00000003 | Служба останавливается.
WIN32_SERVICE_STOPPED | 0x00000001 | Служба не запущена.


Константы обработки сообщений службой Win32Service

  • « Константы статуса службы Win32Service
  • Принимаемые битовые маски обработки сообщений службой Win32Service »
  • PHP Manual
  • Предопределенные константы
  • Константы обработки сообщений службой Win32Service
Константы обработки сообщений службой Win32Service
Константа | Значение | Описание
WIN32_SERVICE_CONTROL_CONTINUE | 0x00000003 | Оповещает службу, что надо выйти из состояния паузы.
WIN32_SERVICE_CONTROL_DEVICEEVENT | 0x0000000B |
WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE | 0x0000000C |
WIN32_SERVICE_CONTROL_INTERROGATE | 0x00000004 | Оповещает службу, что надо послать информацию по ее текущему статусу в менеджер служб.
WIN32_SERVICE_CONTROL_NETBINDADD | 0x00000007 | Уведомляет сетевую службу о наличии нового компонента для привязки.
WIN32_SERVICE_CONTROL_NETBINDDISABLE | 0x0000000A | Уведомляет сетевую службу о том, что одна из ее привязок отключена.
WIN32_SERVICE_CONTROL_NETBINDENABLE | 0x00000009 | Уведомляет сетевую службу о том, что отключенная привязка включена.
WIN32_SERVICE_CONTROL_NETBINDREMOVE | 0x00000008 | Уведомляет сетевую службу о том, что компонент для привязки был удален.
WIN32_SERVICE_CONTROL_PARAMCHANGE | 0x00000006 | Уведомляет службу о том, что ее стартовые параметры изменились.
WIN32_SERVICE_CONTROL_PAUSE | 0x00000002 | Оповещает службу, что надо перейти в режим паузы.
WIN32_SERVICE_CONTROL_POWEREVENT | 0x0000000D |
WIN32_SERVICE_CONTROL_PRESHUTDOWN | 0x0000000F | Оповещает службу, что система останавливается. Служба, обрабатывающая такое сообщение, блокирует остановку системы до момента остановки службы, либо до истечения таймаута. Это значение не поддерживается Windows Server 2003 и Windows XP/2000.
WIN32_SERVICE_CONTROL_SESSIONCHANGE | 0x0000000E |
WIN32_SERVICE_CONTROL_SHUTDOWN | 0x00000005 | Оповещает службу, что система останавливается и службе необходимо произвести корректную остановку. Служба, которая принимает такое сообщение должна корректно завершить свои процессы. После того, как менеджер служб послал такое сообщение, больше никаких других сообщений он посылать службе не будет.
WIN32_SERVICE_CONTROL_STOP | 0x00000001 | Оповещает службу, что надо остановиться.


Принимаемые битовые маски обработки сообщений службой Win32Service

  • « Константы обработки сообщений службой Win32Service
  • Константы типа запуска службы Win32Service »
  • PHP Manual
  • Предопределенные константы
  • Принимаемые битовые маски обработки сообщений службой Win32Service
Принимаемые битовые маски обработки сообщений службой Win32Service
Константа | Значение | Описание
WIN32_SERVICE_ACCEPT_HARDWAREPROFILECHANGE | 0x00000020 | Сервис уведомлен о том, что аппаратная конфигурация компьютера изменена. Это разрешает системе послать службе уведомление WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE.
WIN32_SERVICE_ACCEPT_NETBINDCHANGE | 0x00000010 | Служба - это сетевой компонент, который принимает изменения в своей привязке без необходимости остановки и перезапуска. Этот управляющий флаг разрешает службе принимать следующие уведомления: WIN32_SERVICE_CONTROL_NETBINDADD, WIN32_SERVICE_CONTROL_NETBINDREMOVE, WIN32_SERVICE_CONTROL_NETBINDENABLE и WIN32_SERVICE_CONTROL_NETBINDDISABLE.
WIN32_SERVICE_ACCEPT_PARAMCHANGE | 0x00000008 | Служба может перечитать стартовые параметры без необходимости остановки и перезапуска. Этот управляющий флаг разрешает службе принимать следующие уведомления: WIN32_SERVICE_CONTROL_PARAMCHANGE.
WIN32_SERVICE_ACCEPT_PAUSE_CONTINUE | 0x00000002 | Служба может быть приостановлена и продолжена. Этот код позволяет службе принимать сообщения WIN32_SERVICE_CONTROL_PAUSE и WIN32_SERVICE_CONTROL_CONTINUE.
WIN32_SERVICE_ACCEPT_POWEREVENT | 0x00000040 | Служба оповещается, когда изменился статус электроснабжения. Позволяет системе посылать службе уведомление WIN32_SERVICE_CONTROL_POWEREVENT.
WIN32_SERVICE_ACCEPT_PRESHUTDOWN | 0x00000100 | Служба может выполнять задачи при остановке системы. Этот код позволяет службе принимать сообщения WIN32_SERVICE_CONTROL_PRESHUTDOWN. Это значение не поддерживается Windows Server 2003 и Windows XP/2000.
WIN32_SERVICE_ACCEPT_SESSIONCHANGE | 0x00000080 | Сервис оповещается когда изменился статус сессии на компьютере. Позволяет системе посылать службе уведомление WIN32_SERVICE_CONTROL_SESSIONCHANGE. Не поддерживается в Windows 2000
WIN32_SERVICE_ACCEPT_SHUTDOWN | 0x00000004 | Служба должна быть оповещена, что система останавливается. Этот код позволяет службе принимать сообщения WIN32_SERVICE_CONTROL_SHUTDOWN.
WIN32_SERVICE_ACCEPT_STOP | 0x00000001 | Эта служба может быть остановлена. Этот код позволяет службе принимать сообщения WIN32_SERVICE_CONTROL_STOP.
WIN32_SERVICE_ACCEPT_TIMECHANGE | 0x00000200 | Служба оповещается, когда изменилось системное время. Позволяет системе посылать службе оповещение WIN32_SERVICE_CONTROL_TIMECHANGE. В Windows Server 2008, Windows Vista, Windows Server 2003, и Windows XP/2000 этот управляющий код не используется.
WIN32_SERVICE_ACCEPT_TRIGGEREVENT | 0x00000400 | Служба уведомляется, когда происходит событие, для которого она зарегистрирована. Позволяет системе посылать службе оповещение WIN32_SERVICE_CONTROL_TRIGGEREVENT. В Windows Server 2008, Windows Vista, Windows Server 2003, и Windows XP/2000 этот управляющий код не используется.


Константы типа запуска службы Win32Service

  • « Принимаемые битовые маски обработки сообщений службой Win32Service
  • Константы контроля ошибок сервиса Win32Service »
  • PHP Manual
  • Предопределенные константы
  • Константы типа запуска службы Win32Service
Константы типа запуска службы Win32Service
Константа | Значение | Описание
WIN32_SERVICE_BOOT_START | 0x00000000 | Драйвер устройства запускается системным загрузчиком. Это значение корректно только для служб драйверов.
WIN32_SERVICE_SYSTEM_START | 0x00000001 | Драйвер устройства запускается функцией IoInitSystem. Это значение корректно только для служб драйверов.
WIN32_SERVICE_AUTO_START | 0x00000002 | Служба запускается автоматически при запуске системы.
WIN32_SERVICE_DEMAND_START | 0x00000003 | Сервис стартует автоматически, если какой-либо процесс вызвал функцию StartService.
WIN32_SERVICE_DISABLED | 0x00000004 | Сервис не может быть запущен. Попытка его старта вызовет ошибку WIN32_ERROR_SERVICE_DISABLED.


Константы контроля ошибок сервиса Win32Service

  • « Константы типа запуска службы Win32Service
  • Константы флагов сервиса Win32Service »
  • PHP Manual
  • Предопределенные константы
  • Константы контроля ошибок сервиса Win32Service
Константы контроля ошибок сервиса Win32Service
Константа | Значение | Описание
WIN32_SERVICE_ERROR_IGNORE | 0x00000000 | Запускающаяся програма игнорирует ошибки и продолзает запускаться.
WIN32_SERVICE_ERROR_NORMAL | 0x00000001 | Запускающаяся программа записывает ошибку в журнал ошибок, но продолжает запускаться.
WIN32_SERVICE_ERROR_SEVERE | 0x00000002 | Записывать ошибки старта программы в журнал событий. Если запускается последняя известная хорошая конфигурация, то процесс запуска продолжится. В противном случае система перезапустится с последней известной хорошей конфигурацией.
WIN32_SERVICE_ERROR_CRITICAL | 0x00000003 | Записывать ошибки старта программы в лог событий, если возможно. Если запускается последняя известная хорошая конфигурация, то процесс запуска прекратится. В противном случае система перезапустится с последней известной хорошей конфигурацией.


Константы флагов сервиса Win32Service

  • « Константы контроля ошибок сервиса Win32Service
  • Коды ошибок Win32 »
  • PHP Manual
  • Предопределенные константы
  • Константы флагов сервиса Win32Service
Константы флагов сервиса Win32Service
Константа | Значение | Описание
WIN32_SERVICE_RUNS_IN_SYSTEM_PROCESS | 0x00000001 | Служба выполняется в системном процессе, который всегда должен быть запущен.


Коды ошибок Win32

  • « Константы флагов сервиса Win32Service
  • Базовые классы приоритетов Win32 »
  • PHP Manual
  • Предопределенные константы
  • Коды ошибок Win32
Коды ошибок Win32
Константа | Значение | Описание
WIN32_ERROR_ACCESS_DENIED | 0x00000005 | Обработчик к базе данных SCM не имеет нужных прав доступа.
WIN32_ERROR_CIRCULAR_DEPENDENCY | 0x00000423 | Задана взаимная зависимость служб.
WIN32_ERROR_DATABASE_DOES_NOT_EXIST | 0x00000429 | Указанная база данных отсутствует.
WIN32_ERROR_DEPENDENT_SERVICES_RUNNING | 0x0000041B | Службу нельзя остановить, поскольку от нее зависит другая запущенная служба.
WIN32_ERROR_DUPLICATE_SERVICE_NAME | 0x00000436 | Отображаемое имя уже существует в базе данных диспетчера служб либо в качестве имени службы или как другое отображаемое имя.
WIN32_ERROR_FAILED_SERVICE_CONTROLLER_CONNECT | 0x00000427 | Эта ошибка возвращается, если программа запускается как консольное приложение, а не в качестве службы. Если программа выполняется, как консольное приложение в целях отладки, структурируйте ее таким образом, что бы код, специфичный для служб, не вызывался.
WIN32_ERROR_INSUFFICIENT_BUFFER | 0x0000007A | Буфер слишком мал для структуры состояния службы. В структуру не будет ничего записано.
WIN32_ERROR_INVALID_DATA | 0x0000000D | Указана некорректная структура состояния службы.
WIN32_ERROR_INVALID_HANDLE | 0x00000006 | Обработчик для указанной базы данных диспетчера управления службами недействителен.
WIN32_ERROR_INVALID_LEVEL | 0x0000007C | Параметр InfoLevel содержит неподдерживаемое значение.
WIN32_ERROR_INVALID_NAME | 0x0000007B | Указанное имя службы некорректно.
WIN32_ERROR_INVALID_PARAMETER | 0x00000057 | Указанный параметр некорректен.
WIN32_ERROR_INVALID_SERVICE_ACCOUNT | 0x00000421 | Имя аккаунта пользователя, указанное в user отсутствует. Смотрите win32_create_service().
WIN32_ERROR_INVALID_SERVICE_CONTROL | 0x0000041C | Запрошенный контрольный код является недействительным, или неприемлемым для службы.
WIN32_ERROR_PATH_NOT_FOUND | 0x00000003 | Исполняемый файл службы не найден.
WIN32_ERROR_SERVICE_ALREADY_RUNNING | 0x00000420 | Экземпляр службы уже запущен.
WIN32_ERROR_SERVICE_CANNOT_ACCEPT_CTRL | 0x00000425 | Запрошенный управляющий код не может быть послан службе, поскольку ее статус WIN32_SERVICE_STOPPED, WIN32_SERVICE_START_PENDING, или WIN32_SERVICE_STOP_PENDING.
WIN32_ERROR_SERVICE_DATABASE_LOCKED | 0x0000041F | База данных заблокирована.
WIN32_ERROR_SERVICE_DEPENDENCY_DELETED | 0x00000433 | Служба зависит от службы которой нет, либо которая отмечена для удаления.
WIN32_ERROR_SERVICE_DEPENDENCY_FAIL | 0x0000042C | Служба зависит от другой службы, которая не может запуститься.
WIN32_ERROR_SERVICE_DISABLED | 0x00000422 | Служба запрещена.
WIN32_ERROR_SERVICE_DOES_NOT_EXIST | 0x00000424 | Указанная служба не установлена.
WIN32_ERROR_SERVICE_EXISTS | 0x00000431 | Указанная служба уже есть в базе данных.
WIN32_ERROR_SERVICE_LOGON_FAILED | 0x0000042D | Служба не может запустится из-за проблем авторизации. Такая ошибка случается, если служба настроена на запуск под учетной записью, у которой нет прав запускаться как службе (Log on as a service).
WIN32_ERROR_SERVICE_MARKED_FOR_DELETE | 0x00000430 | Указанная служба уже помечена для удаления.
WIN32_ERROR_SERVICE_NO_THREAD | 0x0000041E | Для данной службы не может быть создан поток.
WIN32_ERROR_SERVICE_NOT_ACTIVE | 0x00000426 | Служба не запущена.
WIN32_ERROR_SERVICE_REQUEST_TIMEOUT | 0x0000041D | Процесс службы стартован, но он не вызывал StartServiceCtrlDispatcher, либо поток, вызывавший StartServiceCtrlDispatcher заблокирован функцией управляющей обработкой.
WIN32_ERROR_SHUTDOWN_IN_PROGRESS | 0x0000045B | Система останавливается; эта функция не может быть вызвана.
WIN32_ERROR_SERVICE_SPECIFIC_ERROR | 0x0000042A | Служба вернула собственный код ошибки.
WIN32_NO_ERROR | 0x00000000 | Нет ошибок.


Базовые классы приоритетов Win32

  • « Коды ошибок Win32
  • Действия при восстановлении Win32 »
  • PHP Manual
  • Предопределенные константы
  • Базовые классы приоритетов Win32
Базовые классы приоритетов Win32
Константа | Значение | Описание
WIN32_ABOVE_NORMAL_PRIORITY_CLASS | 0x00008000 | Процесс имеет приоритет выше WIN32_NORMAL_PRIORITY_CLASS, но ниже WIN32_HIGH_PRIORITY_CLASS.
WIN32_BELOW_NORMAL_PRIORITY_CLASS | 0x00004000 | Процесс имеет приоритет выше WIN32_IDLE_PRIORITY_CLASS, но ниже WIN32_NORMAL_PRIORITY_CLASS.
WIN32_HIGH_PRIORITY_CLASS | 0x00000080 | Процесс выполняет критичную по времени задачу и должен быть запущен немедленно. Потоки этого процесса опережают потоки обычных и ожидающих процессов. К примеру "Диспетчер Задач", который должен откликаться настолько быстро, как только возможно. Будьте крайне осторожны с этим приоритетом, поскольку приложения его использующие могут исчерпать почти все процессорные ресурсы.
WIN32_IDLE_PRIORITY_CLASS | 0x00000040 | Процессы, чьи потоки работают только когда система находится в ожидании. Потоки этих процессов уступают потокам всех остальных процессов, запущенных с более высоким приоритетом. К примеру "Хранитель Экрана". Этот уровень приоритета наследуется всеми потомками процесса.
WIN32_NORMAL_PRIORITY_CLASS | 0x00000020 | Процесс без каких-либо особых потребностей в приоритезации
WIN32_REALTIME_PRIORITY_CLASS | 0x00000100 | Самый высокий из всех возможных приоритетов. Потоки таких процессов опережают потоки вообще всех остальных процессов, включая процессы операционной системы, выполняющие важные задачи. Например, процесс реального времени, выполняющийся с высокой частотой, может привести к тому, что дисковые кеши не будут очищаться или мышь перестанет реагировать на перемещение.


Действия при восстановлении Win32

  • « Базовые классы приоритетов Win32
  • Win32 Service informations »
  • PHP Manual
  • Предопределенные константы
  • Действия при восстановлении Win32
Действия при восстановлении Win32
Константа | Значение | Описание
WIN32_SC_ACTION_NONE | 0x00000000 | Никаких действий.
WIN32_SC_ACTION_REBOOT | 0x00000001 | Перезапуск сервера.
WIN32_SC_ACTION_RESTART | 0x00000002 | Перезапуск сервиса.
WIN32_SC_ACTION_RUN_COMMAND | 0x00000003 | Выполнение команды.


Win32 Service informations

  • « Действия при восстановлении Win32
  • Примеры »
  • PHP Manual
  • Предопределенные константы
  • Win32 Service informations
Win32 Service informations
Константа | Значение | Описание
WIN32_INFO_SERVICE | "service" |
WIN32_INFO_DISPLAY | "display" |
WIN32_INFO_USER | "user" |
WIN32_INFO_PASSWORD | "password" |
WIN32_INFO_PATH | "path" |
WIN32_INFO_PARAMS | "params" |
WIN32_INFO_DESCRIPTION | "description" |
WIN32_INFO_START_TYPE | "start_type" |
INFO_LOAD_ORDER | "load_order" |
INFO_SVC_TYPE | "svc_type" |
INFO_ERROR_CONTROL | "error_control" |
INFO_DELAYED_START | "delayed_start" |
INFO_BASE_PRIORITY | "base_priority" |
INFO_DEPENDENCIES | "dependencies" |
INFO_RECOVERY_DELAY | "recovery_delay" |
INFO_RECOVERY_ACTION_1 | "recovery_action_1" |
INFO_RECOVERY_ACTION_2 | "recovery_action_2" |
INFO_RECOVERY_ACTION_3 | "recovery_action_3" |
INFO_RECOVERY_RESET_PERIOD | "recovery_reset_period" |
INFO_RECOVERY_ENABLED | "recovery_enabled" |
INFO_RECOVERY_REBOOT_MSG | "recovery_reboot_msg" |
INFO_RECOVERY_COMMAND | "recovery_command" |


Примеры

Пример #1 Регистрация скрипта PHP для запуска в качестве службы

<?php
win32_create_service(array(
    'service'     => 'dummyphp',                                           # tимя службы
    'display'     => 'sample dummy PHP service',                           # короткое описание
    'description' => 'This is a dummy Windows service created using PHP.', # длинное описание
    'params'      => '"' . __FILE__ . '"  run',                            # путь к скрипту и параметрам
));
?>

Пример #2 Удаление регистрации службы

<?php
win32_delete_service('dummyphp');
?>

Пример #3 Запуск в качестве службы

<?php
if ($argv[1] == 'run') {
  win32_start_service_ctrl_dispatcher('dummyphp');

  while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
    # тут творим свои дела.
    # пытаемся сотворить их быстрее, чем за 30 секунд.
  }
}
?>


win32service

Содержание

  • win32_continue_service — Возобновляет работу приостановленной службы
  • 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_pause_service — Pauses a service
  • win32_query_service_status — Queries the status of a service
  • win32_send_custom_control — Send a custom control to the service
  • win32_set_service_exit_code — Define or return the exit code for the current running service
  • win32_set_service_exit_mode — Define or return the exit mode for the current running service
  • win32_set_service_status — Update the service status
  • win32_start_service_ctrl_dispatcher — Добавляет в Диспетчер Служб скрипт, который может быть использован, как служба с заданным именем
  • win32_start_service — Запускает службу
  • win32_stop_service — Останавливает службу


Возобновляет работу приостановленной службы

  • « win32service
  • win32_create_service »
  • PHP Manual
  • win32service
  • Возобновляет работу приостановленной службы

win32_continue_service

(PECL win32service >=0.1.0)

win32_continue_service — Возобновляет работу приостановленной службы

Описание

win32_continue_service ( string $servicename [, string $machine ] ) : int

Возобновляет работу обозначенной приостановленной службы. Требует административных привилегий, либо аккаунта с соответствующим образом настроенным ACL для сервиса.

Список параметров

servicename

Короткое название службы.

machine

Необязательное имя машины. Если не указано, используется на локальной машине.

Возвращаемые значения

Возвращает WIN32_NO_ERROR в случае успешного завершения , FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Список изменений

Версия | Описание
0.3.0 | Этой функции больше не требуется привелегии администратора, если для используемого пользователя корректно настроен ACL.

Смотрите также

  • win32_start_service() - Запускает службу
  • win32_stop_service() - Останавливает службу
  • win32_pause_service() - Pauses a service
  • win32_send_custom_control() - Send a custom control to the service
  • Коды Ошибок Win32


Creates a new service entry in the SCM database

  • « win32_continue_service
  • win32_delete_service »
  • PHP Manual
  • win32service
  • Creates a new service entry in the SCM database

win32_create_service

(PECL win32service >=0.1.0)

win32_create_service — Creates a new service entry in the SCM database

Описание

win32_create_service ( array $details [, string $machine ] ) : mixed

Attempts to add a service into the SCM database. Administrative privileges are required for this to succeed.

Список параметров

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.

description

The long description of the service. This is the description 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. If the script name or path contains spaces, then wrap the full path to the PHP script with ".

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 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.

delayed_start

If delayed_start is set to TRUE, then this will inform the SCM that this service should be started after other auto-start services are started plus a short delay.

Any service can be marked as a delayed auto-start service; however, this setting has no effect unless the service's start_type is WIN32_SERVICE_AUTO_START.

This setting is only applicable on Windows Vista and Windows Server 2008 or greater.

base_priority

To reduce the impact on processor utilisation, it may be necessary to set a base priority lower than normal.

The base_priority can be set to one of the constants define in Win32 Base Priority Classes.

dependencies

To define the dependencies for your service, it may be necessary to set this parameter to the list of the services names in an array.

recovery_delay

This parameter defines the delay between the fail and the execution of recovery action. The value is in milliseconds.

The default value is 60000.

recovery_action_1

The action will be executed on first failure. The default value is WIN32_SC_ACTION_NONE.

The recovery_action_1 can be set to one of the constants defined in Win32 Recovery action.

recovery_action_2

The action will be executed on second failure. The default value is WIN32_SC_ACTION_NONE.

The recovery_action_2 can be set to one of the constants defined in Win32 Recovery action.

recovery_action_3

The action will be executed on next failures. The default value is WIN32_SC_ACTION_NONE.

The recovery_action_3 can be set to one of the constants defined in Win32 Recovery action.

recovery_reset_period

The failure count will be reset after the delay defined in the parameter. The delay is expirement in seconds.

The default value is 86400.

recovery_enabled

Set this parameter at TRUE to enable the recovery settings, FALSE to disable.

The default value is FALSE

recovery_reboot_msg

Set this parameter to define the message saved into the Windows Event Log before the reboot. Used only if one action is set to WIN32_SC_ACTION_REBOOT.

recovery_command

Set this parameter to define the command executed when one action is defined on WIN32_SC_ACTION_RUN_COMMAND.

machine

The optional machine name on which you want to create a service. If omitted, it will use the local machine.

Возвращаемые значения

Возвращает WIN32_NO_ERROR в случае успешного завершения , FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Примеры

Пример #1 A win32_create_service() example

Create a service with the short name 'dummyphp'.

<?php
$x = win32_create_service(array(
    'service'     => 'dummyphp',                                           // the name of your service
    'display'     => 'sample dummy PHP service',                           // short description
    'description' => 'This is a dummy Windows service created using PHP.', // long description
    'params'      => '"' . __FILE__ . '"  run',                            // path to the script and parameters
));
debug_zval_dump($x);
?>

Пример #2 A win32_create_service() example with dependencies

Create a service with the short name 'dummyphp' and dependencies.

<?php
$x = win32_create_service(array(
    'service'      => 'dummyphp',                                           // the name of your service
    'display'      => 'sample dummy PHP service',                           // short description
    'description'  => 'This is a dummy Windows service created using PHP.', // long description
    'params'       => '"' . __FILE__ . '"  run',                            // path to the script and parameters
    'dependencies' => array("Netman"),                                      // The list of the dependencies
));
debug_zval_dump($x);
?>

Пример #3 A win32_create_service() example with recovery

Create a service with the short name 'dummyphp' and recovery settings.

<?php
$x = win32_create_service(array(
    'service'               => 'dummyphp',                                           // the name of your service
    'display'               => 'sample dummy PHP service',                           // short description
    'description'           => 'This is a dummy Windows service created using PHP.', // long description
    'params'                => '"' . __FILE__ . '"  run',                            // path to the script and parameters
    'recovery_delay'        => 120000,                                               // Recovery action is executed after 2 minutes
    'recovery_action_1'     => WIN32_SC_ACTION_RESTART,                              // On first failure, restart the service
    'recovery_action_2'     => WIN32_SC_ACTION_RUN_COMMAND,                          // On second failure, execute the commmand
    'recovery_action_3'     => WIN32_SC_ACTION_NONE,                                 // On other failure, do nothing
    'recovery_reset_period' => 86400,                                                // Reset the fail counter after 1 day
    'recovery_enabled'      => true,                                                 // Enable the recovery parameter
    'recovery_reboot_msg'   => null,                                                 // Do not define a reboot message, it's not needed here
    'recovery_command'      => "c:\clean-service.bat",                               // When the action is WIN32_SC_ACTION_RUN_COMMAND, execute this command
));
debug_zval_dump($x);
?>

Список изменений

Версия | Описание
0.4.0 | The dependencies, recovery_delay, recovery_action_1, recovery_action_2, recovery_action_3, recovery_reset_period, recovery_enabled, recovery_reboot_msg and recovery_command parameters have been added.

Смотрите также

  • win32_delete_service() - Deletes a service entry from the SCM database
  • Win32 Base Priority Classes
  • Win32 Recovery action
  • Win32 Error Codes


Deletes a service entry from the SCM database

  • « win32_create_service
  • win32_get_last_control_message »
  • PHP Manual
  • win32service
  • Deletes a service entry from the SCM database

win32_delete_service

(PECL win32service >=0.1.0)

win32_delete_service — Deletes a service entry from the SCM database

Описание

win32_delete_service ( string $servicename [, string $machine ] ) : mixed

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.

Возвращаемые значения

Возвращает WIN32_NO_ERROR в случае успешного завершения , FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Примеры

Пример #1 A win32_delete_service() example

Deletes the dummyphp service.

<?php
win32_delete_service('dummyphp');
?>

Смотрите также

  • win32_create_service() - Creates a new service entry in the SCM database
  • Win32 Error Codes


Returns the last control message that was sent to this service

  • « win32_delete_service
  • win32_pause_service »
  • PHP Manual
  • win32service
  • Returns the last control message that was sent to this service

win32_get_last_control_message

(PECL win32service >=0.1.0)

win32_get_last_control_message — Returns the last control message that was sent to this service

Описание

win32_get_last_control_message ( void ) : int

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.

Предостережение

Since version 0.2.0, this function work only in "cli" SAPI. On other SAPI this function is disabled.

Возвращаемые значения

Returns a control constant which will be one of the Win32Service Service Control Message Constants: WIN32_SERVICE_CONTROL_CONTINUE, WIN32_SERVICE_CONTROL_INTERROGATE, WIN32_SERVICE_CONTROL_PAUSE, WIN32_SERVICE_CONTROL_PRESHUTDOWN, WIN32_SERVICE_CONTROL_SHUTDOWN, WIN32_SERVICE_CONTROL_STOP.

Ошибки

If SAPI is not "cli", this function emits an E_ERROR level error.

Список изменений

Версия | Описание
0.2.0 | This function works only in the "cli" SAPI.

Смотрите также

  • win32_start_service_ctrl_dispatcher() - Добавляет в Диспетчер Служб скрипт, который может быть использован, как служба с заданным именем
  • win32_set_service_status() - Update the service status
  • win32_set_service_exit_mode() - Define or return the exit mode for the current running service
  • win32_set_service_exit_code() - Define or return the exit code for the current running service
  • Win32Service Service Control Message Constants


Pauses a service

  • « win32_get_last_control_message
  • win32_query_service_status »
  • PHP Manual
  • win32service
  • Pauses a service

win32_pause_service

(PECL win32service >=0.1.0)

win32_pause_service — Pauses a service

Описание

win32_pause_service ( string $servicename [, string $machine ] ) : int

Pauses a named service. Requires administrative privileges or an account with appropriate rights set in the service's ACL.

Список параметров

servicename

The short name of the service.

machine

Optional machine name. If omitted, the local machine is used.

Возвращаемые значения

Возвращает WIN32_NO_ERROR в случае успешного завершения , FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Список изменений

Версия | Описание
0.3.0 | This function does not longer require an administrator account if ACL is set for another account.

Смотрите также

  • win32_start_service() - Запускает службу
  • win32_stop_service() - Останавливает службу
  • win32_continue_service() - Возобновляет работу приостановленной службы
  • win32_send_custom_control() - Send a custom control to the service
  • Win32 Error Codes


Queries the status of a service

  • « win32_pause_service
  • win32_send_custom_control »
  • PHP Manual
  • win32service
  • Queries the status of a service

win32_query_service_status

(PECL win32service >=0.1.0)

win32_query_service_status — Queries the status of a service

Описание

win32_query_service_status ( string $servicename [, string $machine ] ) : mixed

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 an array consisting of the following information on success, FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

ServiceType

The dwServiceType. See Win32Service Service Type Bitmasks.

CurrentState

The dwCurrentState. See Win32Service Service Status Constants.

ControlsAccepted

Which service controls are accepted by the service. See Win32Service Service Control Message Accepted Bitmasks.

Win32ExitCode

If the service exited, the return code from the process. This value is equal to WIN32_ERROR_SERVICE_SPECIFIC_ERROR if the exit mode is not gracefuly. See Win32Service error codes and win32_set_service_exit_mode()

ServiceSpecificExitCode

If the service exited with an error condition, the service specific code that is logged in the event log is visible here. This value is equal to the value defined by win32_set_service_exit_code()

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. See Win32Service Service Service Flag Constants.

Смотрите также

  • Win32Service Predefined Constants


Send a custom control to the service

  • « win32_query_service_status
  • win32_set_service_exit_code »
  • PHP Manual
  • win32service
  • Send a custom control to the service

win32_send_custom_control

(PECL win32service >=0.4.0)

win32_send_custom_control — Send a custom control to the service

Описание

win32_send_custom_control ( string $servicename , int $control [, string $machine ] ) : int

See » Microsoft ControlService function for more details

Список параметров

servicename

The short name of the service.

control

The custom contole value between 128 and 255.

machine

Optional machine name. If omitted, the local machine is used.

Возвращаемые значения

Возвращает WIN32_NO_ERROR в случае успешного завершения , FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Ошибки

If the control value is not between 128 and 255, this function emits an E_ERROR level error.

Смотрите также

  • win32_start_service() - Запускает службу
  • win32_stop_service() - Останавливает службу
  • win32_pause_service() - Pauses a service
  • win32_continue_service() - Возобновляет работу приостановленной службы
  • Win32 Error Codes


Define or return the exit code for the current running service

  • « win32_send_custom_control
  • win32_set_service_exit_mode »
  • PHP Manual
  • win32service
  • Define or return the exit code for the current running service

win32_set_service_exit_code

(PECL win32service >=0.4.0)

win32_set_service_exit_code — Define or return the exit code for the current running service

Описание

win32_set_service_exit_code ([ int $exitCode = 1 ] ) : int

Change or return the exit code. The exit code is used only if the exit mode is not graceful. If the value is not zero, the recovery configuration can be used after service fail. See » Microsoft system error codes for more details

Предостережение

This function work only in "cli" SAPI. On other SAPI this function is disabled.

Список параметров

exitCode

The return code used on exit.

Возвращаемые значения

Return the current or old exit code.

Ошибки

If SAPI is not "cli", this function emits an E_ERROR level error.

Смотрите также

  • win32_start_service_ctrl_dispatcher() - Добавляет в Диспетчер Служб скрипт, который может быть использован, как служба с заданным именем
  • win32_set_service_status() - Update the service status
  • win32_set_service_exit_mode() - Define or return the exit mode for the current running service


Define or return the exit mode for the current running service

  • « win32_set_service_exit_code
  • win32_set_service_status »
  • PHP Manual
  • win32service
  • Define or return the exit mode for the current running service

win32_set_service_exit_mode

(PECL win32service >=0.4.0)

win32_set_service_exit_mode — Define or return the exit mode for the current running service

Описание

win32_set_service_exit_mode ([ bool $gracefulMode = true ] ) : bool

If gracefulMode parameter is provided, the exit mode is changed. When the exit mode is not gracefuly, the exit code used can be set with the win32_set_service_exit_code() function.

Предостережение

This function work only in "cli" SAPI. On other SAPI this function is disabled.

Список параметров

gracefulMode

TRUE for exit graceful. FALSE for exit with error.

Возвращаемые значения

Return the current or old exit mode.

Ошибки

If SAPI is not "cli", this function emits an E_ERROR level error.

Смотрите также

  • win32_start_service_ctrl_dispatcher() - Добавляет в Диспетчер Служб скрипт, который может быть использован, как служба с заданным именем
  • win32_set_service_status() - Update the service status
  • win32_set_service_exit_code() - Define or return the exit code for the current running service


Update the service status

  • « win32_set_service_exit_mode
  • win32_start_service_ctrl_dispatcher »
  • PHP Manual
  • win32service
  • Update the service status

win32_set_service_status

(PECL win32service >=0.1.0)

win32_set_service_status — Update the service status

Описание

win32_set_service_status ( int $status [, int $checkpoint = 0 ] ) : bool

Informs the SCM of the current status of a running service. This call is only valid for a running service process.

Предостережение

Since version 0.2.0, this function work only in "cli" SAPI. On other SAPI this function is disabled.

Список параметров

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.

checkpoint

The checkpoint value the service increments periodically to report its progress during a lengthy start, stop, pause, or continue operation. For example, the service should increment this value as it completes each step of its initialization when it is starting up.

The checkpoint is only valid when the status is one of WIN32_SERVICE_STOP_PENDING, WIN32_SERVICE_START_PENDING, WIN32_SERVICE_CONTINUE_PENDING or WIN32_SERVICE_PAUSE_PENDING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения, FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Ошибки

If SAPI is not "cli", this function emits an E_ERROR level error.

Список изменений

Версия | Описание
0.2.0 | This function works only in the "cli" SAPI.

Смотрите также

  • win32_start_service_ctrl_dispatcher() - Добавляет в Диспетчер Служб скрипт, который может быть использован, как служба с заданным именем
  • win32_get_last_control_message() - Returns the last control message that was sent to this service
  • win32_set_service_exit_mode() - Define or return the exit mode for the current running service
  • win32_set_service_exit_code() - Define or return the exit code for the current running service
  • Win32Service Service Status Constants


Добавляет в Диспетчер Служб скрипт, который может быть использован, как служба с заданным именем

  • « win32_set_service_status
  • win32_start_service »
  • PHP Manual
  • win32service
  • Добавляет в Диспетчер Служб скрипт, который может быть использован, как служба с заданным именем

win32_start_service_ctrl_dispatcher

(PECL win32service >=0.1.0)

win32_start_service_ctrl_dispatcher — Добавляет в Диспетчер Служб скрипт, который может быть использован, как служба с заданным именем

Описание

win32_start_service_ctrl_dispatcher ( string $name [, bool $gracefulMode = true ] ) : mixed

При запуске с помощью диспетчера служб, процессу службы необходимо сверяться с ним для мониторинга службы и связи с ней. Эта функция выполняет сверку посредством создания потока для обработки низкоуровневой связи с диспетчером служб.

После запуска процесс службы должен осуществить два действия. Первое - сообщить диспетчеру служб, что служба запущена. Это осуществляется путем вызова win32_set_service_status() с константой WIN32_SERVICE_RUNNING. Если вам необходимо выполнить некий длительный процесс перед запуском службы, то вы можете использовать константу WIN32_SERVICE_START_PENDING. Второе - продолжить сверку с диспетчером служб, чтобы определить необходимость отключения. Это осуществляется посредством периодического вызова win32_get_last_control_message() и обработки кода возврата соответствующим образом.

Предостережение

Начиная с версии 0.2.0, эта функция работает только в "cli" SAPI. В прочих SAPI функция отключена.

Список параметров

name

Короткое имя службы, как при добавлении с помощью win32_create_service().

gracefulMode

TRUE для "элегантного" выхода. FALSE для выхода с ошибкой. Смотрите win32_set_service_exit_mode() для получения подробной информации.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения, FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Ошибки

Если SAPI не является "cli", данная функция вызывает ошибку уровня E_ERROR.

Примеры

Пример #1 Пример win32_start_service_ctrl_dispatcher()

Проверьте, запущен ли сервис в диспетчере служб.

<?php
if (!win32_start_service_ctrl_dispatcher('dummyphp')) {

  die("Я, вероятно, не запущен в диспетчере служб");
}

win32_set_service_status(WIN32_SERVICE_START_PENDING);

// Некий длительный процесс для обработки и запуска службы.

win32_set_service_status(WIN32_SERVICE_RUNNING);

while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
  # здесь производятся какие-то действия, не занимающие больше чем 30 секунд
  # перед соответствующим переходом в цикл.
}
?>

Список изменений

Версия | Описание
0.4.0 | Добавлен параметр gracefulMode.
0.2.0 | Эта функция работает только с "cli" SAPI.

Смотрите также

  • win32_set_service_status() - Update the service status
  • win32_get_last_control_message() - Returns the last control message that was sent to this service
  • win32_set_service_exit_mode() - Define or return the exit mode for the current running service
  • win32_set_service_exit_code() - Define or return the exit code for the current running service
  • Коды Ошибок Win32


Запускает службу

  • « win32_start_service_ctrl_dispatcher
  • win32_stop_service »
  • PHP Manual
  • win32service
  • Запускает службу

win32_start_service

(PECL win32service >=0.1.0)

win32_start_service — Запускает службу

Описание

win32_start_service ( string $servicename [, string $machine ] ) : int

Производит попытку запуска обозначенной службы. Обычно требует административных привилегий, либо аккаунта с соответствующим образом настроенным ACL для сервиса.

Список параметров

servicename

Короткое название службы.

machine

Необязательное имя машины. Если не указано, используется на локальной машине.

Возвращаемые значения

Возвращает WIN32_NO_ERROR в случае успешного завершения , FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Список изменений

Версия | Описание
0.3.0 | Этой функции больше не требуется привелегии администратора, если для используемого пользователя корректно настроен ACL.

Смотрите также

  • win32_stop_service() - Останавливает службу
  • win32_pause_service() - Pauses a service
  • win32_continue_service() - Возобновляет работу приостановленной службы
  • win32_send_custom_control() - Send a custom control to the service
  • Коды Ошибок Win32


Останавливает службу

  • « win32_start_service
  • Обработка XML »
  • PHP Manual
  • win32service
  • Останавливает службу

win32_stop_service

(PECL win32service >=0.1.0)

win32_stop_service — Останавливает службу

Описание

win32_stop_service ( string $servicename [, string $machine ] ) : int

Останавливает обозначенную службу. Требует административных привилегий, либо аккаунта с соответствующим образом настроенным ACL для сервиса.

Список параметров

servicename

Короткое название службы.

machine

Необязательное имя машины. Если не указано, используется на локальной машине.

Возвращаемые значения

Возвращает WIN32_NO_ERROR в случае успешного завершения , FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Список изменений

Версия | Описание
0.3.0 | Этой функции больше не требуется привелегии администратора, если для используемого пользователя корректно настроен ACL.

Смотрите также

  • win32_start_service() - Запускает службу
  • win32_pause_service() - Pauses a service
  • win32_continue_service() - Возобновляет работу приостановленной службы
  • win32_send_custom_control() - Send a custom control to the service
  • Коды Ошибок Win32


Обработка XML

  • DOM — Document Object Model
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • DOMAttr — Класс DOMAttr
    • DOMCdataSection — Класс DOMCdataSection
    • DOMCharacterData — Класс DOMCharacterData
    • DOMComment — Класс DOMComment
    • DOMDocument — Класс DOMDocument
    • DOMDocumentFragment — Класс DOMDocumentFragment
    • DOMDocumentType — Класс DOMDocumentType
    • DOMElement — Класс DOMElement
    • DOMEntity — Класс DOMEntity
    • DOMEntityReference — Класс DOMEntityReference
    • DOMException — Класс DOMException
    • DOMImplementation — Класс DOMImplementation
    • DOMNamedNodeMap — Класс DOMNamedNodeMap
    • DOMNode — Класс DOMNode
    • DOMNodeList — Класс DOMNodeList
    • DOMNotation — Класс DOMNotation
    • DOMProcessingInstruction — Класс DOMProcessingInstruction
    • DOMText — Класс DOMText
    • DOMXPath — Класс DOMXPath
    • Функции DOM
  • libxml
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • libXMLError — Класс libXMLError
    • Функции libxml
  • SDO — Service Data Objects
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Limitations
    • Примеры
    • SDO Функции
  • SDO-DAS-Relational — SDO Relational Data Access Service
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Limitations
    • SDO-DAS-Relational Функции
  • SDO DAS XML — SDO XML Data Access Service
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • SDO DAS XML Функции
  • SimpleXML
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • SimpleXMLElement — Класс SimpleXMLElement
    • SimpleXMLIterator — Класс SimpleXMLIterator
    • Функции SimpleXML
  • WDDX
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции WDDX
  • XMLDiff — Сравнение и объединение XML
    • Введение
    • Установка и настройка
    • XMLDiff\Base — Класс XMLDiff\Base
    • XMLDiff\DOM — Класс XMLDiff\DOM
    • XMLDiff\Memory — Класс XMLDiff\Memory
    • XMLDiff\File — Класс XMLDiff\File
  • Разбор XML
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Обработчики событий
    • Приведение к одному регистру
    • Коды ошибок
    • Кодировка символов
    • Примеры
    • Функции парсера XML
  • XMLReader
    • Введение
    • Установка и настройка
    • XMLReader — Класс XMLReader
  • XMLWriter
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • XMLWriter
  • XSL
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • XSLTProcessor — Класс XSLTProcessor


Document Object Model

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • DOMAttr — Класс DOMAttr
    • DOMAttr::__construct — Создает экземпляр класса DOMAttr
    • DOMAttr::isId — Проверяет, является ли атрибут определенным идентификатором
  • DOMCdataSection — Класс DOMCdataSection
    • DOMCdataSection::__construct — Создает новый экземпляр класса DOMCdataSection
  • DOMCharacterData — Класс DOMCharacterData
    • DOMCharacterData::appendData — Добавить строку в конец символьных данных узла
    • DOMCharacterData::deleteData — Удалить диапазон символов из узла
    • DOMCharacterData::insertData — Вставить строку в указанную 16-битную позицию
    • DOMCharacterData::replaceData — Заменить подстроку в узле типа DOMCharacterData
    • DOMCharacterData::substringData — Извлекает определенный диапазон данных из узла
  • DOMComment — Класс DOMComment
    • DOMComment::__construct — Создает новый экземпляр класса DOMComment
  • DOMDocument — Класс DOMDocument
    • DOMDocument::__construct — Создает новый объект DOMDocument
    • DOMDocument::createAttribute — Создать новый атрибут
    • DOMDocument::createAttributeNS — Создает новый атрибут узла с соответствующим пространством имен
    • DOMDocument::createCDATASection — Создает новый узел cdata
    • DOMDocument::createComment — Создать новый узел комментария
    • DOMDocument::createDocumentFragment — Создать новый фрагмент документа
    • DOMDocument::createElement — Создать новый узел элемента
    • DOMDocument::createElementNS — Создать новый узел элемента с соответствующим пространством имен
    • DOMDocument::createEntityReference — Создать новый узел ссылки на сущность
    • DOMDocument::createProcessingInstruction — Создать новый PI-узел
    • DOMDocument::createTextNode — Создать новый текстовый узел
    • DOMDocument::getElementById — Ищет элемент с определенным идентификатором
    • DOMDocument::getElementsByTagName — Ищет все элементы с заданным локальным именем
    • DOMDocument::getElementsByTagNameNS — Ищет все элементы с заданным именем в указанном пространстве имен
    • DOMDocument::importNode — Импортировать узел в текущий документ
    • DOMDocument::load — Загрузка XML из файла
    • DOMDocument::loadHTML — Загрузка HTML из строки
    • DOMDocument::loadHTMLFile — Загрузка HTML из файла
    • DOMDocument::loadXML — Загрузка XML из строки
    • DOMDocument::normalizeDocument — Нормализует документ
    • DOMDocument::registerNodeClass — Регистрация расширенного класса, используемого для создания типа базового узла
    • DOMDocument::relaxNGValidate — Производит проверку документа на правильность построения посредством relaxNG
    • DOMDocument::relaxNGValidateSource — Проверяет документ посредством relaxNG
    • DOMDocument::save — Сохраняет XML-дерево из внутреннего представления в файл
    • DOMDocument::saveHTML — Сохраняет документ из внутреннего представления в строку, используя форматирование HTML
    • DOMDocument::saveHTMLFile — Сохраняет документ из внутреннего представления в файл, используя форматирование HTML
    • DOMDocument::saveXML — Сохраняет XML-дерево из внутреннего представления в виде строки
    • DOMDocument::schemaValidate — Проверяет действительность документа, основываясь на заданной схеме
    • DOMDocument::schemaValidateSource — Проверяет действительность документа, основываясь на схеме
    • DOMDocument::validate — Проверяет документ на соответствие его DTD
    • DOMDocument::xinclude — Проводит вставку XInclude в объекте DOMDocument
  • DOMDocumentFragment — Класс DOMDocumentFragment
    • DOMDocumentFragment::appendXML — Добавление необработанных данных XML
  • DOMDocumentType — Класс DOMDocumentType
  • DOMElement — Класс DOMElement
    • DOMElement::__construct — Создает новый экземпляр класса DOMElement
    • DOMElement::getAttribute — Возвращает значение атрибута
    • DOMElement::getAttributeNode — Возвращает узел атрибута
    • DOMElement::getAttributeNodeNS — Возвращает узел атрибута
    • DOMElement::getAttributeNS — Возвращает значение атрибута
    • DOMElement::getElementsByTagName — Возвращает элементы по имени тега
    • DOMElement::getElementsByTagNameNS — Получение элементов по локальному имени в заданном пространстве имен
    • DOMElement::hasAttribute — Проверяет, существует ли атрибут
    • DOMElement::hasAttributeNS — Проверяет, существует ли заданный атрибут
    • DOMElement::removeAttribute — Удаляет атрибут
    • DOMElement::removeAttributeNode — Удаляет атрибут
    • DOMElement::removeAttributeNS — Удаляет атрибут
    • DOMElement::setAttribute — Добавляет новый атрибут
    • DOMElement::setAttributeNode — Добавляет новый узел атрибута в элемент
    • DOMElement::setAttributeNodeNS — Добавляет новый атрибут в элемент
    • DOMElement::setAttributeNS — Добавляет новый атрибут
    • DOMElement::setIdAttribute — Объявляет атрибут, указанный именем, с идентификатором типа
    • DOMElement::setIdAttributeNode — Объявляет атрибут, указанный узлом, с идентификатором типа
    • DOMElement::setIdAttributeNS — Объявляет атрибут, указанный локальным именем и URI пространства имен, с идентификатором типа
  • DOMEntity — Класс DOMEntity
  • DOMEntityReference — Класс DOMEntityReference
    • DOMEntityReference::__construct — Создает новый объект класса DOMEntityReference
  • DOMException — Класс DOMException
  • DOMImplementation — Класс DOMImplementation
    • DOMImplementation::__construct — Создает новый объект класса DOMImplementation
    • DOMImplementation::createDocument — Создает объект класса DOMDocument заданного типа с его элементом document
    • DOMImplementation::createDocumentType — Создает пустой объект класса DOMDocumentType
    • DOMImplementation::hasFeature — Проверка, реализована ли определенная возможность в реализации DOM
  • DOMNamedNodeMap — Класс DOMNamedNodeMap
    • DOMNamedNodeMap::count — Количество узлов в отображении
    • DOMNamedNodeMap::getNamedItem — Получает узел, указанный по имени
    • DOMNamedNodeMap::getNamedItemNS — Получает узел с заданным локальным именем и URI пространства имен
    • DOMNamedNodeMap::item — Получает узел с заданным индексом
  • DOMNode — Класс DOMNode
    • DOMNode::appendChild — Добавляет новый дочерний узел в конец списка потомков
    • DOMNode::C14N — Канонизировать узлы в строку
    • DOMNode::C14NFile — Канонизировать узлы в файл
    • DOMNode::cloneNode — Клонирует узел
    • DOMNode::getLineNo — Получить номер строки узла
    • DOMNode::getNodePath — Получение XPath узла
    • DOMNode::hasAttributes — Проверяет, имеет ли данный узел атрибуты
    • DOMNode::hasChildNodes — Проверяет, имеет ли данный узел потомков
    • DOMNode::insertBefore — Добавляет новый дочерний узел перед указанным узлом
    • DOMNode::isDefaultNamespace — Проверяет, является ли указанный URI пространства имен узла пространством имен по умолчанию или нет
    • DOMNode::isSameNode — Указывает, являются ли два узла одним и тем же узлом
    • DOMNode::isSupported — Проверяет, поддерживается ли возможность в определенной версии
    • DOMNode::lookupNamespaceUri — Получает URI пространства имен узла по префиксу
    • DOMNode::lookupPrefix — Возвращает префикс пространства имен узла из URI пространства имен
    • DOMNode::normalize — Нормализует узел
    • DOMNode::removeChild — Удаляет дочерний узел из списка потомков
    • DOMNode::replaceChild — Заменяет дочерний узел
  • DOMNodeList — Класс DOMNodeList
    • DOMNodeList::count — Получить количество узлов в списке
    • DOMNodeList::item — Получает узел с заданным индексом
  • DOMNotation — Класс DOMNotation
  • DOMProcessingInstruction — Класс DOMProcessingInstruction
    • DOMProcessingInstruction::__construct — Создает новый объект класса DOMProcessingInstruction
  • DOMText — Класс DOMText
    • DOMText::__construct — Создает объект класса DOMText
    • DOMText::isElementContentWhitespace — Возвращает, содержит ли текстовый узел пробел в содержимом элемента
    • DOMText::isWhitespaceInElementContent — Определяет, содержит ли текстовый узел пробелы в содержимом
    • DOMText::splitText — Разделяет узел на два, начиная с заданной позиции
  • DOMXPath — Класс DOMXPath
    • DOMXPath::__construct — Создает новый объект класса DOMXPath
    • DOMXPath::evaluate — Вычисляет переданное выражение XPath и возвращает типизированный результат, если возможно
    • DOMXPath::query — Выполняет заданное выражение XPath
    • DOMXPath::registerNamespace — Регистрирует пространство имен с объектом DOMXPath
    • DOMXPath::registerPhpFunctions — Регистрация PHP-функций как функций XPath
  • Функции DOM
    • dom_import_simplexml — Получает объект класса DOMElement из объекта класса SimpleXMLElement


Введение

Модуль DOM позволяет вам работать с XML-документами через DOM API с PHP.

Замечание:

Модуль DOM использует кодировку UTF-8. Используйте utf8_encode() и utf8_decode() для работы с текстами в кодировке ISO-8859-1 или iconv для других кодировок.


Установка

Это расширение включено по умолчанию. Оно может быть отключено во время выполнения с помощью следующей опции: --disable-dom


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

XML константы
Констата | Значение | Описание
XML_ELEMENT_NODE (integer) | 1 | Узел класса DOMElement
XML_ATTRIBUTE_NODE (integer) | 2 | Узел класса DOMAttr
XML_TEXT_NODE (integer) | 3 | Узел класса DOMText
XML_CDATA_SECTION_NODE (integer) | 4 | Узел класса DOMCharacterData
XML_ENTITY_REF_NODE (integer) | 5 | Узел класса DOMEntityReference
XML_ENTITY_NODE (integer) | 6 | Узел класса DOMEntity
XML_PI_NODE (integer) | 7 | Узел класса DOMProcessingInstruction
XML_COMMENT_NODE (integer) | 8 | Узел класса DOMComment
XML_DOCUMENT_NODE (integer) | 9 | Узел класса DOMDocument
XML_DOCUMENT_TYPE_NODE (integer) | 10 | Узел класса DOMDocumentType
XML_DOCUMENT_FRAG_NODE (integer) | 11 | Узел класса DOMDocumentFragment
XML_NOTATION_NODE (integer) | 12 | Узел класса 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 |
Константы DOMException
Констата | Значение | Описание
DOM_PHP_ERR (integer) | 0 | Этот код ошибки не является частью спецификации DOM. Предназначена для ошибок PHP.
DOM_INDEX_SIZE_ERR (integer) | 1 | Если индекс или размер отрицательный или выходит за пределы возможных значений.
DOMSTRING_SIZE_ERR (integer) | 2 | Если указанный фрагмент текста не помещается в DOMString.
DOM_HIERARCHY_REQUEST_ERR (integer) | 3 | Если невозможно вставить узел
DOM_WRONG_DOCUMENT_ERR (integer) | 4 | Если узел используется в другом документе, а не в том, где он был создан.
DOM_INVALID_CHARACTER_ERR (integer) | 5 | Если указан недопустимый символ, например, в имени.
DOM_NO_DATA_ALLOWED_ERR (integer) | 6 | Если данные, указанные для узла, не поддерживаются.
DOM_NO_MODIFICATION_ALLOWED_ERR (integer) | 7 | Если происходит попытка изменить объект, который не поддерживает изменения.
DOM_NOT_FOUND_ERR (integer) | 8 | Если делается попытка ссылаться на узел в контексте, которого не существует
DOM_NOT_SUPPORTED_ERR (integer) | 9 | Если реализация не поддерживает запрошенный тип объекта или операции.
DOM_INUSE_ATTRIBUTE_ERR (integer) | 10 | Если пытаться добавить атрибут, который используется в другом месте.
DOM_INVALID_STATE_ERR (integer) | 11 | Если пытаться использовать объект, которого нет или невозможно использовать.
DOM_SYNTAX_ERR (integer) | 12 | Если используется неверная строка.
DOM_INVALID_MODIFICATION_ERR (integer) | 13 | Если пытаться изменить тип базовому объекту.
DOM_NAMESPACE_ERR (integer) | 14 | Если пытаться создать или изменить объект с некорректным пространством имён.
DOM_INVALID_ACCESS_ERR (integer) | 15 | Если параметр или операция не поддерживается базовым объектом.
DOM_VALIDATION_ERR (integer) | 16 | Если вызов метода, такого как insertBefore или removeChild, сделает узел недействительным, то выбросит исключение и операция не будет выполнена.


Примеры

Многие примеры из этого руководства требуют XML-файл. Мы будем использовать book.xml, который имеет следующее содержание:

Пример #1 book.xml

<?xml version="1.0" encoding="utf-8"?>
<!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>Мои списки</title>
 <chapter id="books">
  <title>Мои книги</title>
  <para>
   <informaltable>
    <tgroup cols="4">
     <thead>
      <row>
       <entry>Название</entry>
       <entry>Автор</entry>
       <entry>Язык</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: У меня еще есть много недобавленных книг... -->
     </tbody>
    </tgroup>
   </informaltable>
  </para>
 </chapter>
</book>


Класс DOMAttr

(PHP 5, PHP 7)

Введение

DOMAttr предоставляет атрибут в объекте DOMElement.

Обзор классов

DOMAttr extends DOMNode {
/* Свойства */
public readonly string $name ;
public readonly DOMElement $ownerElement ;
public readonly bool $schemaTypeInfo ;
public readonly bool $specified ;
public string $value ;
/* Наследуемые свойства */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Методы */
public __construct ( string $name [, string $value ] )
public isId ( void ) : bool
/* Наследуемые методы */
public DOMNode::appendChild ( DOMNode $newnode ) : DOMNode
public DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] ) : string
public DOMNode::C14NFile ( string $uri [, bool $exclusive = FALSE [, bool $with_comments = FALSE [, array $xpath [, array $ns_prefixes ]]]] ) : int
public DOMNode::cloneNode ([ bool $deep ] ) : DOMNode
public DOMNode::getLineNo ( void ) : int
public DOMNode::getNodePath ( void ) : string
public DOMNode::hasAttributes ( void ) : bool
public DOMNode::hasChildNodes ( void ) : bool
public DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) : DOMNode
public DOMNode::isDefaultNamespace ( string $namespaceURI ) : bool
public DOMNode::isSameNode ( DOMNode $node ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespaceURI ) : string
public DOMNode::normalize ( void ) : void
public DOMNode::removeChild ( DOMNode $oldnode ) : DOMNode
public DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode ) : DOMNode
}

Свойства

name

Имя атрибута

ownerElement

Элемент, который содержит атрибут

schemaTypeInfo

Еще не реализовано, возвращает NULL

specified

Еще не реализовано, возвращает NULL

value

Значение атрибута

Смотрите также

  • » Спецификация W3C для Attr

Содержание

  • DOMAttr::__construct — Создает экземпляр класса DOMAttr
  • DOMAttr::isId — Проверяет, является ли атрибут определенным идентификатором


Создает экземпляр класса DOMAttr

  • « DOMAttr
  • DOMAttr::isId »
  • PHP Manual
  • DOMAttr
  • Создает экземпляр класса DOMAttr

DOMAttr::__construct

(PHP 5, PHP 7)

DOMAttr::__construct — Создает экземпляр класса DOMAttr

Описание

public DOMAttr::__construct ( string $name [, string $value ] )

Создает новый объект класса DOMAttr. Этот объект будет доступен только для чтения. Он может быть добавлен к документу, но дополнительные узлы нельзя добавить к этому узлу, пока он присоединен к документу. Для создания узла с возможностью модификации используйте DOMDocument::createAttribute.

Список параметров

name

Имя тега атрибута.

value

Значение атрибута.

Примеры

Пример #1 Создание нового объекта класса 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="utf-8"?>
<root attr="attrvalue" />

Смотрите также

  • DOMDocument::createAttribute() - Создать новый атрибут


Проверяет, является ли атрибут определенным идентификатором

  • « DOMAttr::__construct
  • DOMCdataSection »
  • PHP Manual
  • DOMAttr
  • Проверяет, является ли атрибут определенным идентификатором

DOMAttr::isId

(PHP 5, PHP 7)

DOMAttr::isId — Проверяет, является ли атрибут определенным идентификатором

Описание

public DOMAttr::isId ( void ) : bool

Эта функция проверяет, является ли определенным идентификатором.

В соответствии со стандартом DOM для этого требуется DTD, который определяет идентификатор атрибута быть идентификатором типа. Перед использованием этой функции необходимо проверять документ на действительность с помощью DOMDocument::validate или DOMDocument::validateOnParse.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DOMAttr::isId()

<?php

$doc = new DomDocument;

// Необходимо проверить документ на действительность перед тем как ссылаться по идентификатору
$doc->validateOnParse = true;
$doc->Load('book.xml');

// Получаем атрибут элемента с именем идентификатора chapter
$attr = $doc->getElementsByTagName('chapter')->item(0)->getAttributeNode('id');

var_dump($attr->isId()); // bool(true)

?>


Класс DOMCdataSection

(PHP 5, PHP 7)

Введение

Класс DOMCdataSection наследуется от DOMText для текстового представления конструкций CData.

Обзор классов

DOMCdataSection extends DOMText {
/* Наследуемые свойства */
readonly public string $wholeText ;
public string $data ;
readonly public int $length ;
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Методы */
public __construct ( string $value )
/* Наследуемые методы */
public DOMText::isElementContentWhitespace ( void ) : bool
public DOMText::isWhitespaceInElementContent ( void ) : bool
public DOMText::splitText ( int $offset ) : DOMText
public DOMCharacterData::appendData ( string $data ) : void
public DOMCharacterData::deleteData ( int $offset , int $count ) : void
public DOMCharacterData::insertData ( int $offset , string $data ) : void
public DOMCharacterData::replaceData ( int $offset , int $count , string $data ) : void
public DOMCharacterData::substringData ( int $offset , int $count ) : string
public DOMNode::appendChild ( DOMNode $newnode ) : DOMNode
public DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] ) : string
public DOMNode::C14NFile ( string $uri [, bool $exclusive = FALSE [, bool $with_comments = FALSE [, array $xpath [, array $ns_prefixes ]]]] ) : int
public DOMNode::cloneNode ([ bool $deep ] ) : DOMNode
public DOMNode::getLineNo ( void ) : int
public DOMNode::getNodePath ( void ) : string
public DOMNode::hasAttributes ( void ) : bool
public DOMNode::hasChildNodes ( void ) : bool
public DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) : DOMNode
public DOMNode::isDefaultNamespace ( string $namespaceURI ) : bool
public DOMNode::isSameNode ( DOMNode $node ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespaceURI ) : string
public DOMNode::normalize ( void ) : void
public DOMNode::removeChild ( DOMNode $oldnode ) : DOMNode
public DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode ) : DOMNode
}

Содержание

  • DOMCdataSection::__construct — Создает новый экземпляр класса DOMCdataSection


Создает новый экземпляр класса DOMCdataSection

  • « DOMCdataSection
  • DOMCharacterData »
  • PHP Manual
  • DOMCdataSection
  • Создает новый экземпляр класса DOMCdataSection

DOMCdataSection::__construct

(PHP 5, PHP 7)

DOMCdataSection::__construct — Создает новый экземпляр класса DOMCdataSection

Описание

public DOMCdataSection::__construct ( string $value )

Создает новый узел CDATA. Работает как класс DOMText.

Список параметров

value

Значение узла CDATA. Если не указано, создается пустой узел CDATA.

Примеры

Пример #1 Создание объекта класса DOMCdataSection

<?php

$dom = new DOMDocument('1.0', 'utf-8');
$element = $dom->appendChild(new DOMElement('root'));
$text = $element->appendChild(new DOMCdataSection('root value'));
echo $dom->saveXML();

?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="utf-8"?>
<root><![CDATA[root value]]></root>

Смотрите также

  • DOMText::__construct() - Создает объект класса DOMText
  • DOMDocument::createTextNode() - Создать новый текстовый узел


Класс DOMCharacterData

(PHP 5, PHP 7)

Введение

Представляет узлы с символьными данными. Нельзя создать узел из этого класса напрямую, узлы создаются из наследуемых от него классов.

Обзор классов

DOMCharacterData extends DOMNode {
/* Свойства */
public string $data ;
readonly public int $length ;
/* Наследуемые свойства */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Методы */
public appendData ( string $data ) : void
public deleteData ( int $offset , int $count ) : void
public insertData ( int $offset , string $data ) : void
public replaceData ( int $offset , int $count , string $data ) : void
public substringData ( int $offset , int $count ) : string
/* Наследуемые методы */
public DOMNode::appendChild ( DOMNode $newnode ) : DOMNode
public DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] ) : string
public DOMNode::C14NFile ( string $uri [, bool $exclusive = FALSE [, bool $with_comments = FALSE [, array $xpath [, array $ns_prefixes ]]]] ) : int
public DOMNode::cloneNode ([ bool $deep ] ) : DOMNode
public DOMNode::getLineNo ( void ) : int
public DOMNode::getNodePath ( void ) : string
public DOMNode::hasAttributes ( void ) : bool
public DOMNode::hasChildNodes ( void ) : bool
public DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) : DOMNode
public DOMNode::isDefaultNamespace ( string $namespaceURI ) : bool
public DOMNode::isSameNode ( DOMNode $node ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespaceURI ) : string
public DOMNode::normalize ( void ) : void
public DOMNode::removeChild ( DOMNode $oldnode ) : DOMNode
public DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode ) : DOMNode
}

Свойства

data

Содержимое узла.

length

Длина содержимого.

Смотрите также

  • » Спецификация W3C символьных данных

Содержание

  • DOMCharacterData::appendData — Добавить строку в конец символьных данных узла
  • DOMCharacterData::deleteData — Удалить диапазон символов из узла
  • DOMCharacterData::insertData — Вставить строку в указанную 16-битную позицию
  • DOMCharacterData::replaceData — Заменить подстроку в узле типа DOMCharacterData
  • DOMCharacterData::substringData — Извлекает определенный диапазон данных из узла


Добавить строку в конец символьных данных узла

  • « DOMCharacterData
  • DOMCharacterData::deleteData »
  • PHP Manual
  • DOMCharacterData
  • Добавить строку в конец символьных данных узла

DOMCharacterData::appendData

(PHP 5, PHP 7)

DOMCharacterData::appendData — Добавить строку в конец символьных данных узла

Описание

public DOMCharacterData::appendData ( string $data ) : void

Добавить строку data в конец символьных данных узла.

Список параметров

data

Добавляемая строка.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • DOMCharacterData::deleteData() - Удалить диапазон символов из узла
  • DOMCharacterData::insertData() - Вставить строку в указанную 16-битную позицию
  • DOMCharacterData::replaceData() - Заменить подстроку в узле типа DOMCharacterData
  • DOMCharacterData::substringData() - Извлекает определенный диапазон данных из узла


Удалить диапазон символов из узла

  • « DOMCharacterData::appendData
  • DOMCharacterData::insertData »
  • PHP Manual
  • DOMCharacterData
  • Удалить диапазон символов из узла

DOMCharacterData::deleteData

(PHP 5, PHP 7)

DOMCharacterData::deleteData — Удалить диапазон символов из узла

Описание

public DOMCharacterData::deleteData ( int $offset , int $count ) : void

Удаляет count символов, начиная с позиции offset.

Список параметров

offset

Позиция, с которой будут удаляться символы.

count

Количество удаляемых символов. Если offset и count в сумме окажется больше значения длины, будут удалены все символы до конца данных.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

DOM_INDEX_SIZE_ERR

Возникает, если offset меньше нуля или больше количества 16-битных блоков в данных, либо если count имеет отрицательное значение.

Смотрите также

  • DOMCharacterData::appendData() - Добавить строку в конец символьных данных узла
  • DOMCharacterData::insertData() - Вставить строку в указанную 16-битную позицию
  • DOMCharacterData::replaceData() - Заменить подстроку в узле типа DOMCharacterData
  • DOMCharacterData::substringData() - Извлекает определенный диапазон данных из узла


Вставить строку в указанную 16-битную позицию

  • « DOMCharacterData::deleteData
  • DOMCharacterData::replaceData »
  • PHP Manual
  • DOMCharacterData
  • Вставить строку в указанную 16-битную позицию

DOMCharacterData::insertData

(PHP 5, PHP 7)

DOMCharacterData::insertData — Вставить строку в указанную 16-битную позицию

Описание

public DOMCharacterData::insertData ( int $offset , string $data ) : void

Вставляет строку data в позицию offset.

Список параметров

offset

Позиция символа, начиная с которого будет вставлена строка.

data

Вставляемая строка.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

DOM_INDEX_SIZE_ERR

Возникает, если offset меньше нуля или больше количества 16-битных блоков в данных.

Смотрите также

  • DOMCharacterData::appendData() - Добавить строку в конец символьных данных узла
  • DOMCharacterData::deleteData() - Удалить диапазон символов из узла
  • DOMCharacterData::replaceData() - Заменить подстроку в узле типа DOMCharacterData
  • DOMCharacterData::substringData() - Извлекает определенный диапазон данных из узла


Заменить подстроку в узле типа DOMCharacterData

  • « DOMCharacterData::insertData
  • DOMCharacterData::substringData »
  • PHP Manual
  • DOMCharacterData
  • Заменить подстроку в узле типа DOMCharacterData

DOMCharacterData::replaceData

(PHP 5, PHP 7)

DOMCharacterData::replaceData — Заменить подстроку в узле типа DOMCharacterData

Описание

public DOMCharacterData::replaceData ( int $offset , int $count , string $data ) : void

Заменяет count символов, начиная с позиции offset, на строку data.

Список параметров

offset

Позиция, с которой начинается замена.

count

Количество символов для замены. Если offset и count в сумме превышают длину строки данных, будут заменены все символы до конца данных.

data

Строка, на которую будет производиться замена.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

DOM_INDEX_SIZE_ERR

Возникает, если offset меньше нуля или больше количества 16-битных блоков в области данных, либо если count имеет отрицательное значение.

Смотрите также

  • DOMCharacterData::appendData() - Добавить строку в конец символьных данных узла
  • DOMCharacterData::deleteData() - Удалить диапазон символов из узла
  • DOMCharacterData::insertData() - Вставить строку в указанную 16-битную позицию
  • DOMCharacterData::substringData() - Извлекает определенный диапазон данных из узла


Извлекает определенный диапазон данных из узла

  • « DOMCharacterData::replaceData
  • DOMComment »
  • PHP Manual
  • DOMCharacterData
  • Извлекает определенный диапазон данных из узла

DOMCharacterData::substringData

(PHP 5, PHP 7)

DOMCharacterData::substringData — Извлекает определенный диапазон данных из узла

Описание

public DOMCharacterData::substringData ( int $offset , int $count ) : string

Возвращает указанную подстроку.

Список параметров

offset

Начало позиции извлекаемой подстроки.

count

Количество извлекаемых символов.

Возвращаемые значения

Указанная подстрока. Если offset и count в сумме превышают длину строки данных узла, будут извлечены все символы до конца строки.

Ошибки

DOM_INDEX_SIZE_ERR

Возникает, если offset меньше нуля или больше количества 16-битных блоков в области данных, либо если count имеет отрицательное значение.

Смотрите также

  • DOMCharacterData::appendData() - Добавить строку в конец символьных данных узла
  • DOMCharacterData::deleteData() - Удалить диапазон символов из узла
  • DOMCharacterData::insertData() - Вставить строку в указанную 16-битную позицию
  • DOMCharacterData::replaceData() - Заменить подстроку в узле типа DOMCharacterData


Класс DOMComment

(PHP 5, PHP 7)

Введение

Представляет узлы комментариев, символы, помеченные <!-- и -->.

Обзор классов

DOMComment extends DOMCharacterData {
/* Наследуемые свойства */
public string $data ;
readonly public int $length ;
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Методы */
public __construct ([ string $value ] )
/* Наследуемые методы */
public DOMCharacterData::appendData ( string $data ) : void
public DOMCharacterData::deleteData ( int $offset , int $count ) : void
public DOMCharacterData::insertData ( int $offset , string $data ) : void
public DOMCharacterData::replaceData ( int $offset , int $count , string $data ) : void
public DOMCharacterData::substringData ( int $offset , int $count ) : string
public DOMNode::appendChild ( DOMNode $newnode ) : DOMNode
public DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] ) : string
public DOMNode::C14NFile ( string $uri [, bool $exclusive = FALSE [, bool $with_comments = FALSE [, array $xpath [, array $ns_prefixes ]]]] ) : int
public DOMNode::cloneNode ([ bool $deep ] ) : DOMNode
public DOMNode::getLineNo ( void ) : int
public DOMNode::getNodePath ( void ) : string
public DOMNode::hasAttributes ( void ) : bool
public DOMNode::hasChildNodes ( void ) : bool
public DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) : DOMNode
public DOMNode::isDefaultNamespace ( string $namespaceURI ) : bool
public DOMNode::isSameNode ( DOMNode $node ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespaceURI ) : string
public DOMNode::normalize ( void ) : void
public DOMNode::removeChild ( DOMNode $oldnode ) : DOMNode
public DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode ) : DOMNode
}

Смотрите также

  • » Спецификация W3C комментариев

Содержание

  • DOMComment::__construct — Создает новый экземпляр класса DOMComment


Создает новый экземпляр класса DOMComment

  • « DOMComment
  • DOMDocument »
  • PHP Manual
  • DOMComment
  • Создает новый экземпляр класса DOMComment

DOMComment::__construct

(PHP 5, PHP 7)

DOMComment::__construct — Создает новый экземпляр класса DOMComment

Описание

public DOMComment::__construct ([ string $value ] )

Создает новый объект класса DOMComment. Объект будет доступен только для чтения. Его можно добавить к документу, но дополнительные узлы нельзя добавлять к объекту, пока он не будет присоединен к документу. Чтобы создать записываемый узел, используйте DOMDocument::createComment.

Список параметров

value

Значение комментария.

Примеры

Пример #1 Создание объекта 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() - Создать новый узел комментария


Класс DOMDocument

(PHP 5, PHP 7)

Введение

Представляет все содержимое HTML- или XML-документа; служит корнем дерева документа.

Обзор классов

DOMDocument extends DOMNode {
/* Свойства */
readonly public string $actualEncoding ;
readonly public DOMConfiguration $config ;
readonly public DOMDocumentType $doctype ;
readonly public DOMElement $documentElement ;
public string $documentURI ;
public string $encoding ;
public bool $formatOutput ;
readonly public DOMImplementation $implementation ;
public bool $preserveWhiteSpace = TRUE ;
public bool $recover ;
public bool $resolveExternals ;
public bool $standalone ;
public bool $strictErrorChecking = TRUE ;
public bool $substituteEntities ;
public bool $validateOnParse = FALSE ;
public string $version ;
readonly public string $xmlEncoding ;
public bool $xmlStandalone ;
public string $xmlVersion ;
/* Наследуемые свойства */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Наследуемые свойства */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Методы */
public __construct ([ string $version [, string $encoding ]] )
public createAttribute ( string $name ) : DOMAttr
public createAttributeNS ( string $namespaceURI , string $qualifiedName ) : DOMAttr
public createCDATASection ( string $data ) : DOMCDATASection
public createComment ( string $data ) : DOMComment
public createDocumentFragment ( void ) : DOMDocumentFragment
public createElement ( string $name [, string $value ] ) : DOMElement
public createElementNS ( string $namespaceURI , string $qualifiedName [, string $value ] ) : DOMElement
public createEntityReference ( string $name ) : DOMEntityReference
public createProcessingInstruction ( string $target [, string $data ] ) : DOMProcessingInstruction
public createTextNode ( string $content ) : DOMText
public getElementById ( string $elementId ) : DOMElement
public getElementsByTagName ( string $name ) : DOMNodeList
public getElementsByTagNameNS ( string $namespaceURI , string $localName ) : DOMNodeList
public importNode ( DOMNode $importedNode [, bool $deep = FALSE ] ) : DOMNode
public load ( string $filename [, int $options = 0 ] ) : mixed
public loadHTML ( string $source [, int $options = 0 ] ) : bool
public loadHTMLFile ( string $filename [, int $options = 0 ] ) : bool
public loadXML ( string $source [, int $options = 0 ] ) : mixed
public normalizeDocument ( void ) : void
public registerNodeClass ( string $baseclass , string $extendedclass ) : bool
public relaxNGValidate ( string $filename ) : bool
public relaxNGValidateSource ( string $source ) : bool
public save ( string $filename [, int $options = 0 ] ) : int
public saveHTML ([ DOMNode $node = NULL ] ) : string
public saveHTMLFile ( string $filename ) : int
public saveXML ([ DOMNode $node [, int $options = 0 ]] ) : string
public schemaValidate ( string $filename [, int $flags = 0 ] ) : bool
public schemaValidateSource ( string $source [, int $flags ] ) : bool
public validate ( void ) : bool
public xinclude ([ int $options = 0 ] ) : int
/* Наследуемые методы */
public DOMNode::appendChild ( DOMNode $newnode ) : DOMNode
public DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] ) : string
public DOMNode::C14NFile ( string $uri [, bool $exclusive = FALSE [, bool $with_comments = FALSE [, array $xpath [, array $ns_prefixes ]]]] ) : int
public DOMNode::cloneNode ([ bool $deep ] ) : DOMNode
public DOMNode::getLineNo ( void ) : int
public DOMNode::getNodePath ( void ) : string
public DOMNode::hasAttributes ( void ) : bool
public DOMNode::hasChildNodes ( void ) : bool
public DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) : DOMNode
public DOMNode::isDefaultNamespace ( string $namespaceURI ) : bool
public DOMNode::isSameNode ( DOMNode $node ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespaceURI ) : string
public DOMNode::normalize ( void ) : void
public DOMNode::removeChild ( DOMNode $oldnode ) : DOMNode
public DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode ) : DOMNode
}

Свойства

actualEncoding

Устарело. Кодировка документа, является доступным только для чтения эквивалентом encoding.

config

Устарело. Конфигурация, используемая при вызове DOMDocument::normalizeDocument().

doctype

Объявление типа документа, соответствующее этому документу.

documentElement

Удобный атрибут, предоставляющий прямой доступ к дочернему узлу, как к элементу документа.

documentURI

Расположение документа или NULL, если оно не определено.

encoding

Кодировка документа, как указано в объявлении XML. Этот атрибут отсутствует в последней спецификации DOM Level 3, но является единственным способом манипулирования кодировкой XML-документа в этой реализации.

formatOutput

Форматирует вывод, добавляя отступы и дополнительные пробелы.

implementation

Объект класса DOMImplementation, обрабатывающий этот документ.

preserveWhiteSpace

Указание не убирать лишние пробелы и отступы. По умолчанию TRUE.

recover

Проприетарное свойство. Включает режим восстановления, то есть пытается разобрать некорректно составленные (non-well formed) документы. Этот атрибут не является частью спецификации DOM и специфичен для libxml.

resolveExternals

Установите в TRUE для загрузки внешних элементов из объявления типа документа. Может быть полезным при включении элементов с символьными данными в XML-документ.

standalone

Устарело. Указание, что документ не зависит от других XML-документов. Это можно определить из XML-объявления. Свойство связано с xmlStandalone.

strictErrorChecking

Выбрасывает исключение DOMException в случае возникновения ошибок. По умолчанию TRUE.

substituteEntities

Патентованное свойство. Указывает, заменять или нет элементы документа. Этот атрибут не является частью спецификации DOM и специфичен для libxml.

validateOnParse

Загружает DTD и проверяет документ на соответствие. По умолчанию FALSE.

version

Устарело. Версия XML, соответствует xmlVersion.

xmlEncoding

Атрибут, определяющий, как часть XML-объявления, кодировку эту документа. Имеет значение NULL в случаях, когда атрибут не задан, либо значение неизвестно, если, например, документ создан в памяти.

xmlStandalone

Атрибут, определяющий, как часть XML-объявления, что документ является автономным. Принимает значение FALSE, если не указан.

xmlVersion

Атрибут, определяющий, как часть XML-объявления, номер версии этого документа. Если объявления в документе нет, но есть поддержка всех особенностей "XML", значение равно "1.0".

Примечания

Замечание:

Модуль DOM использует кодировку UTF-8. Используйте utf8_encode() и utf8_decode() для работы с текстами в кодировке ISO-8859-1 или iconv для других кодировок.

Смотрите также

  • » Спецификация W3C для Document

Содержание

  • DOMDocument::__construct — Создает новый объект DOMDocument
  • DOMDocument::createAttribute — Создать новый атрибут
  • DOMDocument::createAttributeNS — Создает новый атрибут узла с соответствующим пространством имен
  • DOMDocument::createCDATASection — Создает новый узел cdata
  • DOMDocument::createComment — Создать новый узел комментария
  • DOMDocument::createDocumentFragment — Создать новый фрагмент документа
  • DOMDocument::createElement — Создать новый узел элемента
  • DOMDocument::createElementNS — Создать новый узел элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference — Создать новый узел ссылки на сущность
  • DOMDocument::createProcessingInstruction — Создать новый PI-узел
  • DOMDocument::createTextNode — Создать новый текстовый узел
  • DOMDocument::getElementById — Ищет элемент с определенным идентификатором
  • DOMDocument::getElementsByTagName — Ищет все элементы с заданным локальным именем
  • DOMDocument::getElementsByTagNameNS — Ищет все элементы с заданным именем в указанном пространстве имен
  • DOMDocument::importNode — Импортировать узел в текущий документ
  • DOMDocument::load — Загрузка XML из файла
  • DOMDocument::loadHTML — Загрузка HTML из строки
  • DOMDocument::loadHTMLFile — Загрузка HTML из файла
  • DOMDocument::loadXML — Загрузка XML из строки
  • DOMDocument::normalizeDocument — Нормализует документ
  • DOMDocument::registerNodeClass — Регистрация расширенного класса, используемого для создания типа базового узла
  • DOMDocument::relaxNGValidate — Производит проверку документа на правильность построения посредством relaxNG
  • DOMDocument::relaxNGValidateSource — Проверяет документ посредством relaxNG
  • DOMDocument::save — Сохраняет XML-дерево из внутреннего представления в файл
  • DOMDocument::saveHTML — Сохраняет документ из внутреннего представления в строку, используя форматирование HTML
  • DOMDocument::saveHTMLFile — Сохраняет документ из внутреннего представления в файл, используя форматирование HTML
  • DOMDocument::saveXML — Сохраняет XML-дерево из внутреннего представления в виде строки
  • DOMDocument::schemaValidate — Проверяет действительность документа, основываясь на заданной схеме
  • DOMDocument::schemaValidateSource — Проверяет действительность документа, основываясь на схеме
  • DOMDocument::validate — Проверяет документ на соответствие его DTD
  • DOMDocument::xinclude — Проводит вставку XInclude в объекте DOMDocument


Создает новый объект DOMDocument

  • « DOMDocument
  • DOMDocument::createAttribute »
  • PHP Manual
  • DOMDocument
  • Создает новый объект DOMDocument

DOMDocument::__construct

(PHP 5, PHP 7)

DOMDocument::__construct — Создает новый объект DOMDocument

Описание

public DOMDocument::__construct ([ string $version [, string $encoding ]] )

Создает новый объект DOMDocument.

Список параметров

version

Номер версии документа как часть объявления XML.

encoding

Кодировка документа как часть объявления XML.

Примеры

Пример #1 Создание объекта DOMDocument

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');

echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?> */

?>

Смотрите также

  • DOMImplementation::createDocument() - Создает объект класса DOMDocument заданного типа с его элементом document


Создать новый атрибут

  • « DOMDocument::__construct
  • DOMDocument::createAttributeNS »
  • PHP Manual
  • DOMDocument
  • Создать новый атрибут

DOMDocument::createAttribute

(PHP 5, PHP 7)

DOMDocument::createAttribute — Создать новый атрибут

Описание

public DOMDocument::createAttribute ( string $name ) : DOMAttr

Эта функция создает новый объект класса DOMAttr. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

name

Имя атрибута.

Возвращаемые значения

Новый объект DOMAttr либо FALSE в случае возникновения ошибки.

Ошибки

DOM_INVALID_CHARACTER_ERR

Возникает, если name содержит недопустимые символы.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttributeNS() - Создает новый атрибут узла с соответствующим пространством имен
  • DOMDocument::createCDATASection() - Создает новый узел cdata
  • DOMDocument::createComment() - Создать новый узел комментария
  • DOMDocument::createDocumentFragment() - Создать новый фрагмент документа
  • DOMDocument::createElement() - Создать новый узел элемента
  • DOMDocument::createElementNS() - Создать новый узел элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference() - Создать новый узел ссылки на сущность
  • DOMDocument::createProcessingInstruction() - Создать новый PI-узел
  • DOMDocument::createTextNode() - Создать новый текстовый узел


Создает новый атрибут узла с соответствующим пространством имен

  • « DOMDocument::createAttribute
  • DOMDocument::createCDATASection »
  • PHP Manual
  • DOMDocument
  • Создает новый атрибут узла с соответствующим пространством имен

DOMDocument::createAttributeNS

(PHP 5, PHP 7)

DOMDocument::createAttributeNS — Создает новый атрибут узла с соответствующим пространством имен

Описание

public DOMDocument::createAttributeNS ( string $namespaceURI , string $qualifiedName ) : DOMAttr

Эта функция создает новый объект класса DOMAttr. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

namespaceURI

URI пространства имен.

qualifiedName

Имя и префикс атрибута в виде prefix:tagname.

Возвращаемые значения

Новый экземпляр класса DOMAttr или FALSE в случае ошибки.

Ошибки

DOM_INVALID_CHARACTER_ERR

Возникает, если qualifiedName содержит недопустимые символы.

DOM_NAMESPACE_ERR

Возникает, если qualifiedName неправильно сформировано, либо если qualifiedName имеет префикс, а namespaceURI имеет значение NULL.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создать новый атрибут
  • DOMDocument::createCDATASection() - Создает новый узел cdata
  • DOMDocument::createComment() - Создать новый узел комментария
  • DOMDocument::createDocumentFragment() - Создать новый фрагмент документа
  • DOMDocument::createElement() - Создать новый узел элемента
  • DOMDocument::createElementNS() - Создать новый узел элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference() - Создать новый узел ссылки на сущность
  • DOMDocument::createProcessingInstruction() - Создать новый PI-узел
  • DOMDocument::createTextNode() - Создать новый текстовый узел


Создает новый узел cdata

  • « DOMDocument::createAttributeNS
  • DOMDocument::createComment »
  • PHP Manual
  • DOMDocument
  • Создает новый узел cdata

DOMDocument::createCDATASection

(PHP 5, PHP 7)

DOMDocument::createCDATASection — Создает новый узел cdata

Описание

public DOMDocument::createCDATASection ( string $data ) : DOMCDATASection

Эта функция создает новый объект класса DOMCDATASection. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

data

Содержимое cdata.

Возвращаемые значения

Новый объект класса DOMCDATASection или FALSE в случае ошибки.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создать новый атрибут
  • DOMDocument::createAttributeNS() - Создает новый атрибут узла с соответствующим пространством имен
  • DOMDocument::createComment() - Создать новый узел комментария
  • DOMDocument::createDocumentFragment() - Создать новый фрагмент документа
  • DOMDocument::createElement() - Создать новый узел элемента
  • DOMDocument::createElementNS() - Создать новый узел элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference() - Создать новый узел ссылки на сущность
  • DOMDocument::createProcessingInstruction() - Создать новый PI-узел
  • DOMDocument::createTextNode() - Создать новый текстовый узел


Создать новый узел комментария

  • « DOMDocument::createCDATASection
  • DOMDocument::createDocumentFragment »
  • PHP Manual
  • DOMDocument
  • Создать новый узел комментария

DOMDocument::createComment

(PHP 5, PHP 7)

DOMDocument::createComment — Создать новый узел комментария

Описание

public DOMDocument::createComment ( string $data ) : DOMComment

Эта функция создает новый экземпляр класса DOMComment. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

data

Содержимое комментария.

Возвращаемые значения

Новый объект класса DOMComment или FALSE в случае ошибки.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создать новый атрибут
  • DOMDocument::createAttributeNS() - Создает новый атрибут узла с соответствующим пространством имен
  • DOMDocument::createCDATASection() - Создает новый узел cdata
  • DOMDocument::createDocumentFragment() - Создать новый фрагмент документа
  • DOMDocument::createElement() - Создать новый узел элемента
  • DOMDocument::createElementNS() - Создать новый узел элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference() - Создать новый узел ссылки на сущность
  • DOMDocument::createProcessingInstruction() - Создать новый PI-узел
  • DOMDocument::createTextNode() - Создать новый текстовый узел


Создать новый фрагмент документа

  • « DOMDocument::createComment
  • DOMDocument::createElement »
  • PHP Manual
  • DOMDocument
  • Создать новый фрагмент документа

DOMDocument::createDocumentFragment

(PHP 5, PHP 7)

DOMDocument::createDocumentFragment — Создать новый фрагмент документа

Описание

public DOMDocument::createDocumentFragment ( void ) : DOMDocumentFragment

Эта функция создает новый экземпляр класса DOMDocumentFragment. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Возвращаемые значения

Новый объект класса DOMDocumentFragment или FALSE в случае ошибки.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создать новый атрибут
  • DOMDocument::createAttributeNS() - Создает новый атрибут узла с соответствующим пространством имен
  • DOMDocument::createCDATASection() - Создает новый узел cdata
  • DOMDocument::createComment() - Создать новый узел комментария
  • DOMDocument::createElement() - Создать новый узел элемента
  • DOMDocument::createElementNS() - Создать новый узел элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference() - Создать новый узел ссылки на сущность
  • DOMDocument::createProcessingInstruction() - Создать новый PI-узел
  • DOMDocument::createTextNode() - Создать новый текстовый узел


Создать новый узел элемента

  • « DOMDocument::createDocumentFragment
  • DOMDocument::createElementNS »
  • PHP Manual
  • DOMDocument
  • Создать новый узел элемента

DOMDocument::createElement

(PHP 5, PHP 7)

DOMDocument::createElement — Создать новый узел элемента

Описание

public DOMDocument::createElement ( string $name [, string $value ] ) : DOMElement

Эта функция создает экземпляр класса DOMElement. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

name

Имя тега элемента.

value

Значение элемента. По умолчанию будет создан пустой элемент. Значение может быть установлено позднее с помощью DOMElement::$nodeValue.

Значение используется дословно, за исключением < и >, которые будут экранированы. Обратите внимание, что & должен быть экранирован самостоятельно, в противном случае он будет рассматриваться как начало ссылки на сущность. Также " не будет экранирован.

Возвращаемые значения

Возвращает новый объект класса DOMElement или FALSE в случае ошибки.

Ошибки

DOM_INVALID_CHARACTER_ERR

Возникает, если name содержит недопустимые символы.

Примеры

Пример #1 Создание нового элемента и вставка его в качестве корневого

<?php

$dom = new DOMDocument('1.0', 'utf-8');

$element = $dom->createElement('test', 'Это корневой элемент!');

// Вставляем новый элемент как корень (потомок документа)
$dom->appendChild($element);

echo $dom->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="utf-8"?>
<test>Это корневой элемент!</test>

Пример #2 Передача текста, содержащего неэкранированный & в value

<?php
$dom = new DOMDocument('1.0', 'utf-8');
$element = $dom->createElement('foo', 'я & ты');
$dom->appendChild($element);
echo $dom->saveXML();
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: DOMDocument::createElement(): unterminated entity reference             you in /in/BjTCg on line 4
<?xml version="1.0" encoding="utf-8"?>
<foo/>

Примечания

Замечание:

Значение value не будет экранировано. Используйте функцию DOMDocument::createTextNode() для создания текстового узла с поддержкой экранирования.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создать новый атрибут
  • DOMDocument::createAttributeNS() - Создает новый атрибут узла с соответствующим пространством имен
  • DOMDocument::createCDATASection() - Создает новый узел cdata
  • DOMDocument::createComment() - Создать новый узел комментария
  • DOMDocument::createDocumentFragment() - Создать новый фрагмент документа
  • DOMDocument::createElementNS() - Создать новый узел элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference() - Создать новый узел ссылки на сущность
  • DOMDocument::createProcessingInstruction() - Создать новый PI-узел
  • DOMDocument::createTextNode() - Создать новый текстовый узел


Создать новый узел элемента с соответствующим пространством имен

  • « DOMDocument::createElement
  • DOMDocument::createEntityReference »
  • PHP Manual
  • DOMDocument
  • Создать новый узел элемента с соответствующим пространством имен

DOMDocument::createElementNS

(PHP 5, PHP 7)

DOMDocument::createElementNS — Создать новый узел элемента с соответствующим пространством имен

Описание

public DOMDocument::createElementNS ( string $namespaceURI , string $qualifiedName [, string $value ] ) : DOMElement

Эта функция создает новый узел-элемент с соответствующим пространством имен. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

namespaceURI

URI пространства имен.

qualifiedName

Квалифицированное имя элемента в виде prefix:tagname.

value

Значение элемента. По умолчанию будет создан пустой элемент. Задать значение также можно позднее с помощью DOMElement::$nodeValue.

Возвращаемые значения

Новый объект класса DOMElement или FALSE в случае ошибки.

Ошибки

DOM_INVALID_CHARACTER_ERR

Возникает, если qualifiedName содержит недопустимые символы.

DOM_NAMESPACE_ERR

Возникает, если qualifiedName не верно сформировано.

Примеры

Пример #1 Создание элемента и вставка в документ в качестве корневого

<?php

$dom = new DOMDocument('1.0', 'utf-8');

$element = $dom->createElementNS('http://www.example.com/XFoo', 'xfoo:test', 'Это корневой элемент!');

// Вставляем новый элемент как корень (потомок документа)
$dom->appendChild($element);

echo $dom->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="utf-8"?>
<xfoo:test xmlns:xfoo="http://www.example.com/XFoo">Это корневой элемент!</xfoo:test>

Пример #2 Пример префикса пространства имен

<?php
$doc  = new DOMDocument('1.0', 'utf-8');
$doc->formatOutput = true;
$root = $doc->createElementNS('http://www.w3.org/2005/Atom', 'element');
$doc->appendChild($root);
$root->setAttributeNS('http://www.w3.org/2000/xmlns/' ,'xmlns:g', 'http://base.google.com/ns/1.0');
$item = $doc->createElementNS('http://base.google.com/ns/1.0', 'g:item_type', 'house');
$root->appendChild($item);

echo $doc->saveXML(), "\n";

echo $item->namespaceURI, "\n"; // Выведет: http://base.google.com/ns/1.0
echo $item->prefix, "\n";       // Выведет: g
echo $item->localName, "\n";    // Выведет: item_type
?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="utf-8"?>
<element xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
  <g:item_type>house</g:item_type>
</element>

http://base.google.com/ns/1.0
g
item_type

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создать новый атрибут
  • DOMDocument::createAttributeNS() - Создает новый атрибут узла с соответствующим пространством имен
  • DOMDocument::createCDATASection() - Создает новый узел cdata
  • DOMDocument::createComment() - Создать новый узел комментария
  • DOMDocument::createDocumentFragment() - Создать новый фрагмент документа
  • DOMDocument::createElement() - Создать новый узел элемента
  • DOMDocument::createEntityReference() - Создать новый узел ссылки на сущность
  • DOMDocument::createProcessingInstruction() - Создать новый PI-узел
  • DOMDocument::createTextNode() - Создать новый текстовый узел


Создать новый узел ссылки на сущность

  • « DOMDocument::createElementNS
  • DOMDocument::createProcessingInstruction »
  • PHP Manual
  • DOMDocument
  • Создать новый узел ссылки на сущность

DOMDocument::createEntityReference

(PHP 5, PHP 7)

DOMDocument::createEntityReference — Создать новый узел ссылки на сущность

Описание

public DOMDocument::createEntityReference ( string $name ) : DOMEntityReference

Эта функция создает экземпляр класса DOMEntityReference. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

name

Содержимое ссылки на сущность, например, ссылка на сущность без & в начале и ; в конце.

Возвращаемые значения

Новый объект класса DOMEntityReference или FALSE в случае ошибки.

Ошибки

DOM_INVALID_CHARACTER_ERR

Возникает, если name содержит недопустимые символы.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создать новый атрибут
  • DOMDocument::createAttributeNS() - Создает новый атрибут узла с соответствующим пространством имен
  • DOMDocument::createCDATASection() - Создает новый узел cdata
  • DOMDocument::createComment() - Создать новый узел комментария
  • DOMDocument::createDocumentFragment() - Создать новый фрагмент документа
  • DOMDocument::createElement() - Создать новый узел элемента
  • DOMDocument::createElementNS() - Создать новый узел элемента с соответствующим пространством имен
  • DOMDocument::createProcessingInstruction() - Создать новый PI-узел
  • DOMDocument::createTextNode() - Создать новый текстовый узел


Создать новый PI-узел

  • « DOMDocument::createEntityReference
  • DOMDocument::createTextNode »
  • PHP Manual
  • DOMDocument
  • Создать новый PI-узел

DOMDocument::createProcessingInstruction

(PHP 5, PHP 7)

DOMDocument::createProcessingInstruction — Создать новый PI-узел

Описание

public DOMDocument::createProcessingInstruction ( string $target [, string $data ] ) : DOMProcessingInstruction

Эта функция создает экземпляр класса DOMProcessingInstruction. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

target

Цель инструкции для обработчика документа.

data

Содержимое инструкции обработчика.

Возвращаемые значения

Новый объект класса DOMProcessingInstruction либо FALSE в случае ошибки.

Ошибки

DOM_INVALID_CHARACTER_ERR

Возникает, если target содержит недопустимы символы.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создать новый атрибут
  • DOMDocument::createAttributeNS() - Создает новый атрибут узла с соответствующим пространством имен
  • DOMDocument::createCDATASection() - Создает новый узел cdata
  • DOMDocument::createComment() - Создать новый узел комментария
  • DOMDocument::createDocumentFragment() - Создать новый фрагмент документа
  • DOMDocument::createElement() - Создать новый узел элемента
  • DOMDocument::createElementNS() - Создать новый узел элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference() - Создать новый узел ссылки на сущность
  • DOMDocument::createTextNode() - Создать новый текстовый узел


Создать новый текстовый узел

  • « DOMDocument::createProcessingInstruction
  • DOMDocument::getElementById »
  • PHP Manual
  • DOMDocument
  • Создать новый текстовый узел

DOMDocument::createTextNode

(PHP 5, PHP 7)

DOMDocument::createTextNode — Создать новый текстовый узел

Описание

public DOMDocument::createTextNode ( string $content ) : DOMText

Эта функция создает экземпляр класса DOMText. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

content

Содержимое узла.

Возвращаемые значения

Новый объект класса DOMText или FALSE в случае ошибки.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создать новый атрибут
  • DOMDocument::createAttributeNS() - Создает новый атрибут узла с соответствующим пространством имен
  • DOMDocument::createCDATASection() - Создает новый узел cdata
  • DOMDocument::createComment() - Создать новый узел комментария
  • DOMDocument::createDocumentFragment() - Создать новый фрагмент документа
  • DOMDocument::createElement() - Создать новый узел элемента
  • DOMDocument::createElementNS() - Создать новый узел элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference() - Создать новый узел ссылки на сущность
  • DOMDocument::createProcessingInstruction() - Создать новый PI-узел


Ищет элемент с определенным идентификатором

  • « DOMDocument::createTextNode
  • DOMDocument::getElementsByTagName »
  • PHP Manual
  • DOMDocument
  • Ищет элемент с определенным идентификатором

DOMDocument::getElementById

(PHP 5, PHP 7)

DOMDocument::getElementById — Ищет элемент с определенным идентификатором

Описание

public DOMDocument::getElementById ( string $elementId ) : DOMElement

Эта функция похожа на DOMDocument::getElementsByTagName, но ищет элемент с заданным идентификатором.

Для работы этой функции необходимо установить атрибуты идентификаторов с помощью DOMElement::setIdAttribute, либо DTD, который определяет атрибут идентификатора типа. В последнем случае перед использованием этой функции вам необходимо будет проверить документ с помощью DOMDocument::validate или DOMDocument::$validateOnParse.

Список параметров

elementId

Уникальный значение идентификатора элемента.

Возвращаемые значения

Возвращает объект DOMElement или NULL, если элемент не найден.

Примеры

Пример #1 Пример использования DOMDocument::getElementById()

Следующие примеры используют файл book.xml, который содержит следующие данные:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books [
  <!ELEMENT books   (book+)>
  <!ELEMENT book    (title, author+, xhtml:blurb?)>
  <!ELEMENT title   (#PCDATA)>
  <!ELEMENT blurb   (#PCDATA)>
  <!ELEMENT author  (#PCDATA)>
  <!ATTLIST books   xmlns        CDATA  #IMPLIED>
  <!ATTLIST books   xmlns:xhtml  CDATA  #IMPLIED>
  <!ATTLIST book    id           ID     #IMPLIED>
  <!ATTLIST author  email        CDATA  #IMPLIED>
]>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<books xmlns="http://books.php/" xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <book id="php-basics">
    <title>PHP Basics</title>
    <author email="jim.smith@basics.php">Jim Smith</author>
    <author email="jane.smith@basics.php">Jane Smith</author>
    <xhtml:blurb><![CDATA[
<p><em>PHP Basics</em> provides an introduction to PHP.</p>
]]></xhtml:blurb>
  </book>
  <book id="php-advanced">
    <title>PHP Advanced Programming</title>
    <author email="jon.doe@advanced.php">Jon Doe</author>
  </book>
</books>
<?php

$doc = new DomDocument;

// Нужно проверить документ перед тем как ссылаться по идентификатору
$doc->validateOnParse = true;
$doc->Load('book.xml');

echo "Элемент с идентификатором 'php-basics': " . $doc->getElementById('php-basics')->tagName . "\n";

?>

Результат выполнения данного примера:

Элемент с идентификатором 'php-basics': book

Смотрите также

  • DOMDocument::getElementsByTagName() - Ищет все элементы с заданным локальным именем


Ищет все элементы с заданным локальным именем

  • « DOMDocument::getElementById
  • DOMDocument::getElementsByTagNameNS »
  • PHP Manual
  • DOMDocument
  • Ищет все элементы с заданным локальным именем

DOMDocument::getElementsByTagName

(PHP 5, PHP 7)

DOMDocument::getElementsByTagName — Ищет все элементы с заданным локальным именем

Описание

public DOMDocument::getElementsByTagName ( string $name ) : DOMNodeList

Эта функция возвращает новый объект класса DOMNodeList, содержащий элементы с заданным локальным именем.

Список параметров

name

Локальное имя (без пространства имен) тега, по которому будет проводиться поиск. Специальное значение * соответствует всем тегам.

Возвращаемые значения

Новый объект класса DOMNodeList, содержащий все найденные элементы.

Примеры

Пример #1 Простой пример использования

<?php
$xml = <<< XML
<?xml version="1.0" encoding="utf-8"?>
<books>
 <book>Шаблоны корпоративных приложений</book>
 <book>Приёмы объектно-ориентированного проектирования. Паттерны проектирования</book>
 <book>Чистый код</book>
</books>
XML;

$dom = new DOMDocument;
$dom->loadXML($xml);
$books = $dom->getElementsByTagName('book');
foreach ($books as $book) {
    echo $book->nodeValue, PHP_EOL;
}
?>

Результат выполнения данного примера:

Шаблоны корпоративных приложений
Приёмы объектно-ориентированного проектирования. Паттерны проектирования
Чистый код

Смотрите также

  • DOMDocument::getElementsByTagNameNS() - Ищет все элементы с заданным именем в указанном пространстве имен


Ищет все элементы с заданным именем в указанном пространстве имен

  • « DOMDocument::getElementsByTagName
  • DOMDocument::importNode »
  • PHP Manual
  • DOMDocument
  • Ищет все элементы с заданным именем в указанном пространстве имен

DOMDocument::getElementsByTagNameNS

(PHP 5, PHP 7)

DOMDocument::getElementsByTagNameNS — Ищет все элементы с заданным именем в указанном пространстве имен

Описание

public DOMDocument::getElementsByTagNameNS ( string $namespaceURI , string $localName ) : DOMNodeList

Возвращает объект DOMNodeList со всеми элементами с заданным локальным именем и URI пространства имен.

Список параметров

namespaceURI

URI пространства имен. Специальное значение * соответствует всем пространствам имен.

localName

Локальное имя искомых элементов. Специальное значение * соответствует всем локальным именам.

Возвращаемые значения

Новый объект класса DOMNodeList, содержащий все найденные элементы.

Примеры

Пример #1 Получение всех элементов XInclude

<?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;

// загрузить XML-строку, определенную выше
$dom->loadXML($xml);

foreach ($dom->getElementsByTagNameNS('http://www.w3.org/2001/XInclude', '*') as $element) {
    echo 'локальное имя: ', $element->localName, ', префикс: ', $element->prefix, "\n";
}
?>

Результат выполнения данного примера:

локальное имя: include, префикс: xi
локальное имя: fallback, префикс: xi

Смотрите также

  • DOMDocument::getElementsByTagName() - Ищет все элементы с заданным локальным именем


Импортировать узел в текущий документ

  • « DOMDocument::getElementsByTagNameNS
  • DOMDocument::load »
  • PHP Manual
  • DOMDocument
  • Импортировать узел в текущий документ

DOMDocument::importNode

(PHP 5, PHP 7)

DOMDocument::importNode — Импортировать узел в текущий документ

Описание

public DOMDocument::importNode ( DOMNode $importedNode [, bool $deep = FALSE ] ) : DOMNode

Эта функция возвращает копию импортируемого узла и связывает ее с текущим документом.

Список параметров

importedNode

Узел для импорта.

deep

Если установлено значение TRUE, этот метод будет рекурсивно импортировать поддерево узла importedNode.

Замечание:

Чтобы скопировались атрибуты узла, deep должен быть установлен в TRUE.

Возвращаемые значения

Скопированный узел или FALSE, если он не может быть скопирован.

Ошибки

Если узел не может быть импортирован, будет выброшено исключение DOMException.

Примеры

Пример #1 Пример использования DOMDocument::importNode()

Копирование узлов между документами.

<?php

$orgdoc = new DOMDocument;
$orgdoc->loadXML("<root><element><child>text in child</child></element></root>");

// Узел, который будет импортирован в новый документ
$node = $orgdoc->getElementsByTagName("element")->item(0);

// Создание нового документа
$newdoc = new DOMDocument;
$newdoc->formatOutput = true;

// Добавление разметки
$newdoc->loadXML("<root><someelement>text in some element</someelement></root>");

echo "Новый документ перед добавлением в него узлов:\n";
echo $newdoc->saveXML();

// Импорт узла и всех его потомков в документ
$node = $newdoc->importNode($node, true);
// И затем добавление его в корневой узел
$newdoc->documentElement->appendChild($node);

echo "\nНовый документ после добавления в него узлов:\n";
echo $newdoc->saveXML();
?>

Результат выполнения данного примера:

Новый документ перед добавлением в него узлов:
<?xml version="1.0"?>
<root>
  <someelement>text in some element</someelement>
</root>

Новый документ после добавления в него узлов:
<?xml version="1.0"?>
<root>
  <someelement>text in some element</someelement>
  <element>
    <child>text in child</child>
  </element>
</root>


Загрузка XML из файла

  • « DOMDocument::importNode
  • DOMDocument::loadHTML »
  • PHP Manual
  • DOMDocument
  • Загрузка XML из файла

DOMDocument::load

(PHP 5, PHP 7)

DOMDocument::load — Загрузка XML из файла

Описание

public DOMDocument::load ( string $filename [, int $options = 0 ] ) : mixed

Загружает XML-документ из файла.

Внимание

Пути к файлам в стиле Unix с прямыми слешами могут отрицательно сказаться на работоспособности скриптов в среде Windows; используйте функцию realpath() для исключения подобных ситуаций.

Список параметров

filename

Путь к XML-документу.

options

Побитовое ИЛИ констант опций libxml.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. При статическом вызове возвращает объект класса DOMDocument или FALSE в случае возникновения ошибки.

Ошибки

Если через аргумент filename передана пустая строка или файл ничего не содержит, будет сгенерировано предупреждение. Это предупреждение генерируется не libxml, поэтому оно не может быть обработано обработчиками ошибок библиотеки libxml.

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Примеры

Пример #1 Создание документа

<?php
$doc = new DOMDocument();
$doc->load('book.xml');
echo $doc->saveXML();
?>

Смотрите также

  • DOMDocument::loadXML() - Загрузка XML из строки
  • DOMDocument::save() - Сохраняет XML-дерево из внутреннего представления в файл
  • DOMDocument::saveXML() - Сохраняет XML-дерево из внутреннего представления в виде строки


Загрузка HTML из строки

  • « DOMDocument::load
  • DOMDocument::loadHTMLFile »
  • PHP Manual
  • DOMDocument
  • Загрузка HTML из строки

DOMDocument::loadHTML

(PHP 5, PHP 7)

DOMDocument::loadHTML — Загрузка HTML из строки

Описание

public DOMDocument::loadHTML ( string $source [, int $options = 0 ] ) : bool

Функция разбирает HTML, содержащийся в строке source. В отличие от загрузки XML, HTML не должен быть правильно построенным (well-formed) документом. Эта функция также может быть вызвана статически для загрузки и создания объекта класса DOMDocument. Статический вызов может использоваться в случаях, когда нет необходимости устанавливать значения параметров объекта DOMDocument до загрузки документа.

Список параметров

source

HTML-строка.

options

Начиная с версии PHP 5.4.0 и Libxml 2.6.0, можно также использовать параметр options для указания дополнительных параметров Libxml.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. В случае статического вызова возвращает объект класса DOMDocument или FALSE в случае возникновения ошибки.

Ошибки

Если через аргумент source передана пустая строка, будет сгенерировано предупреждение. Это предупреждение генерируется не libxml, поэтому оно не может быть обработано функциями обработки ошибок libxml.

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Несмотря на то, что некорректный HTML обычно успешно загружается, данная функция может генерировать ошибки уровня E_WARNING при обнаружении плохой разметки. Для обработки данных ошибок можно воспользоваться функциями обработки ошибок libxml.

Примеры

Пример #1 Создание документа

<?php
$doc = new DOMDocument();
$doc->loadHTML("<html><body>Test<br></body></html>");
echo $doc->saveHTML();
?>

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр options.

Смотрите также

  • DOMDocument::loadHTMLFile() - Загрузка HTML из файла
  • DOMDocument::saveHTML() - Сохраняет документ из внутреннего представления в строку, используя форматирование HTML
  • DOMDocument::saveHTMLFile() - Сохраняет документ из внутреннего представления в файл, используя форматирование HTML


Загрузка HTML из файла

  • « DOMDocument::loadHTML
  • DOMDocument::loadXML »
  • PHP Manual
  • DOMDocument
  • Загрузка HTML из файла

DOMDocument::loadHTMLFile

(PHP 5, PHP 7)

DOMDocument::loadHTMLFile — Загрузка HTML из файла

Описание

public DOMDocument::loadHTMLFile ( string $filename [, int $options = 0 ] ) : bool

Функция разбирает HTML-документ из файла filename. В отличие от загрузки XML, HTML не должен быть правильно построенным (well-formed).

Список параметров

filename

Путь к HTML-файлу.

options

Начиная с версии PHP 5.4.0 и Libxml 2.6.0, можно также использовать параметр options для указания дополнительных параметров Libxml.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если вызвана статически, возвращает объект класса DOMDocument или FALSE в случае возникновения ошибки.

Ошибки

Если через аргумент filename передана пустая строка или файл ничего не содержит, будет сгенерировано предупреждение. Это предупреждение генерируется не libxml, поэтому оно не может быть обработано функциями обработки ошибок libxml.

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Несмотря на то, что некорректный HTML обычно успешно загружается, данная функция может генерировать ошибки уровня E_WARNING при обнаружении плохой разметки. Для обработки данных ошибок можно воспользоваться функциями обработки ошибок libxml.

Примеры

Пример #1 Создание документа

<?php
$doc = new DOMDocument();
$doc->loadHTMLFile("filename.html");
echo $doc->saveHTML();
?>

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр options.

Смотрите также

  • DOMDocument::loadHTML() - Загрузка HTML из строки
  • DOMDocument::saveHTML() - Сохраняет документ из внутреннего представления в строку, используя форматирование HTML
  • DOMDocument::saveHTMLFile() - Сохраняет документ из внутреннего представления в файл, используя форматирование HTML


Загрузка XML из строки

  • « DOMDocument::loadHTMLFile
  • DOMDocument::normalizeDocument »
  • PHP Manual
  • DOMDocument
  • Загрузка XML из строки

DOMDocument::loadXML

(PHP 5, PHP 7)

DOMDocument::loadXML — Загрузка XML из строки

Описание

public DOMDocument::loadXML ( string $source [, int $options = 0 ] ) : mixed

Загружает XML-документ из строки.

Список параметров

source

Содержащая XML-строка.

options

Побитовое ИЛИ констант опций libxml.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если вызвана статически, возвращает объект класса DOMDocument или FALSE в случае возникновения ошибки.

Ошибки

Если через аргумент source передана пустая строка, будет сгенерировано предупреждение. Это предупреждение генерируется не libxml, поэтому оно не может быть обработано функциями обработки ошибок libxml.

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Примеры

Пример #1 Создание документа

<?php
$doc = new DOMDocument();
$doc->loadXML('<root><node/></root>');
echo $doc->saveXML();
?>

Пример #2 Статический вызов loadXML

<?php
// Вызывает ошибку E_STRICT
$doc = DOMDocument::loadXML('<root><node/></root>');
echo $doc->saveXML();
?>

Смотрите также

  • DOMDocument::load() - Загрузка XML из файла
  • DOMDocument::save() - Сохраняет XML-дерево из внутреннего представления в файл
  • DOMDocument::saveXML() - Сохраняет XML-дерево из внутреннего представления в виде строки


Нормализует документ

  • « DOMDocument::loadXML
  • DOMDocument::registerNodeClass »
  • PHP Manual
  • DOMDocument
  • Нормализует документ

DOMDocument::normalizeDocument

(PHP 5, PHP 7)

DOMDocument::normalizeDocument — Нормализует документ

Описание

public DOMDocument::normalizeDocument ( void ) : void

Этот метод выполняет те же действия, как если бы вы сохранили и затем загрузили документ, приводит документ к "нормальной" форме.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • » Спецификация DOM
  • DOMNode::normalize() - Нормализует узел


Регистрация расширенного класса, используемого для создания типа базового узла

  • « DOMDocument::normalizeDocument
  • DOMDocument::relaxNGValidate »
  • PHP Manual
  • DOMDocument
  • Регистрация расширенного класса, используемого для создания типа базового узла

DOMDocument::registerNodeClass

(PHP 5 >= 5.2.0, PHP 7)

DOMDocument::registerNodeClass — Регистрация расширенного класса, используемого для создания типа базового узла

Описание

public DOMDocument::registerNodeClass ( string $baseclass , string $extendedclass ) : bool

Этот метод позволяет зарегистрировать свой собственный расширенный класс DOM, который будет использоваться впоследствии расширением PHP DOM.

Этот метод не является частью стандарта DOM.

Список параметров

baseclass

Класс DOM, который вы хотите расширить. Список таких классов можно увидеть во введении.

extendedclass

Имя расширенного класса. Если передать NULL, будут удалены все ранее зарегистрированные классы, расширяющие базовый класс baseclass.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.2.2 | В версиях до 5.2.2 ранее зарегистрированный расширенный класс extendedclass должен быть исключен из регистрации, прежде чем регистрировать новый класс, расширяющий тот же базовый класс baseclass.

Примеры

Пример #1 Добавление нового метода в класс DOMElement для упрощения кода

<?php

class myElement extends DOMElement {
   function appendElement($name) {
      return $this->appendChild(new myElement($name));
   }
}

class myDocument extends DOMDocument {
   function setRoot($name) {
      return $this->appendChild(new myElement($name));
   }
}

$doc = new myDocument();
$doc->registerNodeClass('DOMElement', 'myElement');

// С этих пор добавление одного элемента к другому
// требует всего одного вызова метода!
$root = $doc->setRoot('root');
$child = $root->appendElement('child');
$child->setAttribute('foo', 'bar');

echo $doc->saveXML();

?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<root><child foo="bar"/></root>

Пример #2 Получение элементов в виде пользовательского класса

<?php
class myElement extends DOMElement {
    public function __toString() {
        return $this->nodeValue;
    }
}

$doc = new DOMDocument;
$doc->loadXML("<root><element><child>text in child</child></element></root>");
$doc->registerNodeClass("DOMElement", "myElement");

$element = $doc->getElementsByTagName("child")->item(0);
var_dump(get_class($element));

// Воспользуемся __toString методом..
echo $element;
?>

Результат выполнения данного примера:

string(9) "myElement"
text in child

Пример #3 Получение имени документа владельца

Когда создается экземпляр расширенного класса DOMDocument, свойство ownerDocument будет ссылаться на создаваемый объект. Это значит, что нет необходимости (а фактически это невозможно) использовать DOMDocument::registerNodeClass() применительно к DOMDocument.

<?php
class myDOMDocument extends DOMDocument {
}

class myOtherDOMDocument extends DOMDocument {
}

// Создаем myDOMDocument с некоторым XML-содержимым
$doc = new myDOMDocument;
$doc->loadXML("<root><element><child>text in child</child></element></root>");

$child = $doc->getElementsByTagName("child")->item(0);

// Текущий владелец узла - myDOMDocument
var_dump(get_class($child->ownerDocument));

// Импортируем узел из myDOMDocument
$newdoc = new myOtherDOMDocument;
$child = $newdoc->importNode($child);

// Новый владелец узла изменился на myOtherDOMDocument
var_dump(get_class($child->ownerDocument));
?>

Результат выполнения данного примера:

string(13) "myDOMDocument"
string(18) "myOtherDOMDocument"


Производит проверку документа на правильность построения посредством relaxNG

  • « DOMDocument::registerNodeClass
  • DOMDocument::relaxNGValidateSource »
  • PHP Manual
  • DOMDocument
  • Производит проверку документа на правильность построения посредством relaxNG

DOMDocument::relaxNGValidate

(PHP 5, PHP 7)

DOMDocument::relaxNGValidate — Производит проверку документа на правильность построения посредством relaxNG

Описание

public DOMDocument::relaxNGValidate ( string $filename ) : bool

Производит » relaxNG проверку документа, основываясь на заданной схеме RNG.

Список параметров

filename

Файл RNG.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • DOMDocument::relaxNGValidateSource() - Проверяет документ посредством relaxNG
  • DOMDocument::schemaValidate() - Проверяет действительность документа, основываясь на заданной схеме
  • DOMDocument::schemaValidateSource() - Проверяет действительность документа, основываясь на схеме
  • DOMDocument::validate() - Проверяет документ на соответствие его DTD


Проверяет документ посредством relaxNG

  • « DOMDocument::relaxNGValidate
  • DOMDocument::save »
  • PHP Manual
  • DOMDocument
  • Проверяет документ посредством relaxNG

DOMDocument::relaxNGValidateSource

(PHP 5, PHP 7)

DOMDocument::relaxNGValidateSource — Проверяет документ посредством relaxNG

Описание

public DOMDocument::relaxNGValidateSource ( string $source ) : bool

Применяет проверку » relaxNG документа на соответствие заданному источнику RNG.

Список параметров

source

Строка содержащая RNG-схему.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • DOMDocument::relaxNGValidate() - Производит проверку документа на правильность построения посредством relaxNG
  • DOMDocument::schemaValidate() - Проверяет действительность документа, основываясь на заданной схеме
  • DOMDocument::schemaValidateSource() - Проверяет действительность документа, основываясь на схеме
  • DOMDocument::validate() - Проверяет документ на соответствие его DTD


Сохраняет XML-дерево из внутреннего представления в файл

  • « DOMDocument::relaxNGValidateSource
  • DOMDocument::saveHTML »
  • PHP Manual
  • DOMDocument
  • Сохраняет XML-дерево из внутреннего представления в файл

DOMDocument::save

(PHP 5, PHP 7)

DOMDocument::save — Сохраняет XML-дерево из внутреннего представления в файл

Описание

public DOMDocument::save ( string $filename [, int $options = 0 ] ) : int

Создает XML-документ из представления DOM. Эту функцию обычно вызывают после построения нового DOM-документа, как показано в примере ниже.

Список параметров

filename

Путь к файлу, в который будет сохранен XML-документ.

options

Дополнительные настройки. На данный момент поддерживается только LIBXML_NOEMPTYTAG.

Возвращаемые значения

Возвращает количество записанных байт или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.1.0 | Добавлен аргумент options

Примеры

Пример #1 Сохранение DOM-дерева в файл

<?php

$doc = new DOMDocument('1.0');
// мы хотим красивый вывод
$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 'Записано: ' . $doc->save("/tmp/test.xml") . ' байт'; // Записано: 72 байт

?>

Смотрите также

  • DOMDocument::saveXML() - Сохраняет XML-дерево из внутреннего представления в виде строки
  • DOMDocument::load() - Загрузка XML из файла
  • DOMDocument::loadXML() - Загрузка XML из строки


Сохраняет документ из внутреннего представления в строку, используя форматирование HTML

  • « DOMDocument::save
  • DOMDocument::saveHTMLFile »
  • PHP Manual
  • DOMDocument
  • Сохраняет документ из внутреннего представления в строку, используя форматирование HTML

DOMDocument::saveHTML

(PHP 5, PHP 7)

DOMDocument::saveHTML — Сохраняет документ из внутреннего представления в строку, используя форматирование HTML

Описание

public DOMDocument::saveHTML ([ DOMNode $node = NULL ] ) : string

Создает HTML-документ из представления DOM. Эту функцию обычно вызывают после построения нового DOM-документа, как показано в примере ниже.

Список параметров

node

Необязательный аргумент для вывода подмножества документа.

Возвращаемые значения

Возвращает HTML или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.6 | Добавлен аргумент node.

Примеры

Пример #1 Сохранение HTML-дерева в виде строки

<?php

$doc = new DOMDocument('1.0');

$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('Это заголовок');
$text = $title->appendChild($text);

echo $doc->saveHTML();

?>

Смотрите также

  • DOMDocument::saveHTMLFile() - Сохраняет документ из внутреннего представления в файл, используя форматирование HTML
  • DOMDocument::loadHTML() - Загрузка HTML из строки
  • DOMDocument::loadHTMLFile() - Загрузка HTML из файла


Сохраняет документ из внутреннего представления в файл, используя форматирование HTML

  • « DOMDocument::saveHTML
  • DOMDocument::saveXML »
  • PHP Manual
  • DOMDocument
  • Сохраняет документ из внутреннего представления в файл, используя форматирование HTML

DOMDocument::saveHTMLFile

(PHP 5, PHP 7)

DOMDocument::saveHTMLFile — Сохраняет документ из внутреннего представления в файл, используя форматирование HTML

Описание

public DOMDocument::saveHTMLFile ( string $filename ) : int

Создает HTML-документ из DOM-представления. Эту функцию обычно вызывают после построения нового DOM-документа, как показано в примере ниже.

Список параметров

filename

Путь к файлу, в который сохранится HTML-документ.

Возвращаемые значения

Возвращает количество записанных байт или FALSE в случае ошибки.

Примеры

Пример #1 Сохранение HTML-дерева в файл

<?php

$doc = new DOMDocument('1.0');
// мы хотим красивый вывод
$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('Это заголовок');
$text = $title->appendChild($text);

echo 'Записано: ' . $doc->saveHTMLFile("/tmp/test.html") . ' байт'; // Записано: 129 байт

?>

Смотрите также

  • DOMDocument::saveHTML() - Сохраняет документ из внутреннего представления в строку, используя форматирование HTML
  • DOMDocument::loadHTML() - Загрузка HTML из строки
  • DOMDocument::loadHTMLFile() - Загрузка HTML из файла


Сохраняет XML-дерево из внутреннего представления в виде строки

  • « DOMDocument::saveHTMLFile
  • DOMDocument::schemaValidate »
  • PHP Manual
  • DOMDocument
  • Сохраняет XML-дерево из внутреннего представления в виде строки

DOMDocument::saveXML

(PHP 5, PHP 7)

DOMDocument::saveXML — Сохраняет XML-дерево из внутреннего представления в виде строки

Описание

public DOMDocument::saveXML ([ DOMNode $node [, int $options = 0 ]] ) : string

Создает XML-документ из представления DOM. Эту функцию обычно вызывают после построения нового DOM-документа, как показано в примере ниже.

Список параметров

node

Используйте этот аргумент для вывода только определенного узла без объявления XML, а не всего документа целиком.

options

Дополнительные настройки. На данный момент поддерживается только LIBXML_NOEMPTYTAG.

Возвращаемые значения

Возвращает XML или FALSE в случае ошибки.

Ошибки

DOM_WRONG_DOCUMENT_ERR

Возникает, если node принадлежит другому документу.

Список изменений

Версия | Описание
5.1.0 | Добавлен аргумент options

Примеры

Пример #1 Сохранение DOM-дерева в виде строки

<?php

$doc = new DOMDocument('1.0');
// мы хотим красивый вывод
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('Это заголовок');
$text = $title->appendChild($text);

echo "Сохранение всего документа:\n";
echo $doc->saveXML() . "\n";

echo "Сохранение только заголовка:\n";
echo $doc->saveXML($title);

?>

Результат выполнения данного примера:

Сохранение всего документа:
<?xml version="1.0"?>
<book>
  <title>Это заголовок</title>
</book>

Сохранение только заголовка:
<title>Это заголовок</title>

Смотрите также

  • DOMDocument::save() - Сохраняет XML-дерево из внутреннего представления в файл
  • DOMDocument::load() - Загрузка XML из файла
  • DOMDocument::loadXML() - Загрузка XML из строки


Проверяет действительность документа, основываясь на заданной схеме

  • « DOMDocument::saveXML
  • DOMDocument::schemaValidateSource »
  • PHP Manual
  • DOMDocument
  • Проверяет действительность документа, основываясь на заданной схеме

DOMDocument::schemaValidate

(PHP 5, PHP 7)

DOMDocument::schemaValidate — Проверяет действительность документа, основываясь на заданной схеме

Описание

public DOMDocument::schemaValidate ( string $filename [, int $flags = 0 ] ) : bool

Проверяет документ на действительность, основываясь на файле схемы.

Список параметров

filename

Путь к файлу со схемой.

flags

Битовая маска флагов проверки схемы Libxml. На данный момент поддерживается только одно значение LIBXML_SCHEMA_CREATE. Параметр доступен, начиная с PHP 5.5.2 и Libxml 2.6.14.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.2 | Добавлен параметр flags

Смотрите также

  • DOMDocument::schemaValidateSource() - Проверяет действительность документа, основываясь на схеме
  • DOMDocument::relaxNGValidate() - Производит проверку документа на правильность построения посредством relaxNG
  • DOMDocument::relaxNGValidateSource() - Проверяет документ посредством relaxNG
  • DOMDocument::validate() - Проверяет документ на соответствие его DTD


Проверяет действительность документа, основываясь на схеме

  • « DOMDocument::schemaValidate
  • DOMDocument::validate »
  • PHP Manual
  • DOMDocument
  • Проверяет действительность документа, основываясь на схеме

DOMDocument::schemaValidateSource

(PHP 5, PHP 7)

DOMDocument::schemaValidateSource — Проверяет действительность документа, основываясь на схеме

Описание

public DOMDocument::schemaValidateSource ( string $source [, int $flags ] ) : bool

Проверяет соответствие документа переданной через строку схеме.

Список параметров

source

Строка, содержащая схему.

flags

Битовая маска флагов проверки схемы Libxml. На данный момент поддерживается только одно значение LIBXML_SCHEMA_CREATE. Параметр доступен, начиная с PHP 5.5.2 и Libxml 2.6.14.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.2 | Добавлен параметр flags

Смотрите также

  • DOMDocument::schemaValidate() - Проверяет действительность документа, основываясь на заданной схеме
  • DOMDocument::relaxNGValidate() - Производит проверку документа на правильность построения посредством relaxNG
  • DOMDocument::relaxNGValidateSource() - Проверяет документ посредством relaxNG
  • DOMDocument::validate() - Проверяет документ на соответствие его DTD


Проверяет документ на соответствие его DTD

  • « DOMDocument::schemaValidateSource
  • DOMDocument::xinclude »
  • PHP Manual
  • DOMDocument
  • Проверяет документ на соответствие его DTD

DOMDocument::validate

(PHP 5, PHP 7)

DOMDocument::validate — Проверяет документ на соответствие его DTD

Описание

public DOMDocument::validate ( void ) : bool

Проверяет документ на действительность, основываясь на его DTD.

Также можно использовать свойство validateOnParse класса DOMDocument для выполнения проверки DTD.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если нет DTD, присоединенных к документу, этот метод вернет FALSE.

Примеры

Пример #1 Пример проверки DTD

<?php
$dom = new DOMDocument;
$dom->load('book.xml');
if ($dom->validate()) {
    echo "Документ является действительным!\n";
}
?>

Также можно проверять XML-файл во время его загрузки:

<?php
$dom = new DOMDocument;
$dom->validateOnParse = true;
$dom->load('book.xml');
?>

Смотрите также

  • DOMDocument::schemaValidate() - Проверяет действительность документа, основываясь на заданной схеме
  • DOMDocument::schemaValidateSource() - Проверяет действительность документа, основываясь на схеме
  • DOMDocument::relaxNGValidate() - Производит проверку документа на правильность построения посредством relaxNG
  • DOMDocument::relaxNGValidateSource() - Проверяет документ посредством relaxNG


Проводит вставку XInclude в объекте DOMDocument

  • « DOMDocument::validate
  • DOMDocumentFragment »
  • PHP Manual
  • DOMDocument
  • Проводит вставку XInclude в объекте DOMDocument

DOMDocument::xinclude

(PHP 5, PHP 7)

DOMDocument::xinclude — Проводит вставку XInclude в объекте DOMDocument

Описание

public DOMDocument::xinclude ([ int $options = 0 ] ) : int

Этот метод вставляет » блоки XInclude в объекте класса DOMDocument.

Замечание:

Из-за того, что libxml2 автоматически разрешает сущности, вызов этого метода приведет к неожидаемым результатам в случае, когда XML-файл содержит прикрепленную схему DTD.

Список параметров

options

Параметры libxml. Доступно, начиная с PHP 5.1.0 и Libxml 2.6.7.

Возвращаемые значения

Возвращает количество XInclude в документе, -1 если при обработке произошла ошибка, либо FALSE, если не было произведено ни одной замены.

Примеры

Пример #1 Пример использования DOMDocument::xinclude()

<?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;

// оформим вывод красиво
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;

// загрузка XML-строки, определенной выше
$dom->loadXML($xml);

// вставка блоков xinclude
$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>


Класс DOMDocumentFragment

(PHP 5, PHP 7)

Обзор классов

DOMDocumentFragment extends DOMNode {
/* Свойства */
/* Наследуемые свойства */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Методы */
public appendXML ( string $data ) : bool
/* Наследуемые методы */
public DOMNode::appendChild ( DOMNode $newnode ) : DOMNode
public DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] ) : string
public DOMNode::C14NFile ( string $uri [, bool $exclusive = FALSE [, bool $with_comments = FALSE [, array $xpath [, array $ns_prefixes ]]]] ) : int
public DOMNode::cloneNode ([ bool $deep ] ) : DOMNode
public DOMNode::getLineNo ( void ) : int
public DOMNode::getNodePath ( void ) : string
public DOMNode::hasAttributes ( void ) : bool
public DOMNode::hasChildNodes ( void ) : bool
public DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) : DOMNode
public DOMNode::isDefaultNamespace ( string $namespaceURI ) : bool
public DOMNode::isSameNode ( DOMNode $node ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespaceURI ) : string
public DOMNode::normalize ( void ) : void
public DOMNode::removeChild ( DOMNode $oldnode ) : DOMNode
public DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode ) : DOMNode
}

Содержание

  • DOMDocumentFragment::appendXML — Добавление необработанных данных XML


Добавление необработанных данных XML

  • « DOMDocumentFragment
  • DOMDocumentType »
  • PHP Manual
  • DOMDocumentFragment
  • Добавление необработанных данных XML

DOMDocumentFragment::appendXML

(PHP 5 >= 5.1.0, PHP 7)

DOMDocumentFragment::appendXML — Добавление необработанных данных XML

Описание

public DOMDocumentFragment::appendXML ( string $data ) : bool

Добавляет необработанные XML-данные в объект класса DOMDocumentFragment.

Это метод не является частью стандарта DOM. Он был разработан для упрощения процедуры добавления XML DocumentFragment в DOMDocument.

Если вы хотите следовать стандарту, вам нужно будет создать временный DOMDocument с фиктивным корнем, а затем пройти по всем узлам потомкам корневого узла XML-документа, чтобы добавить их.

Список параметров

data

XML для добавления.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Добавление XML-данных в документ

<?php
$doc = new DOMDocument();
$doc->loadXML("<root/>");
$f = $doc->createDocumentFragment();
$f->appendXML("<foo>text</foo><bar>text2</bar>");
$doc->documentElement->appendChild($f);
echo $doc->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<root><foo>text</foo><bar>text2</bar></root>


Класс DOMDocumentType

(PHP 5, PHP 7)

Введение

Каждый объект DOMDocument имеет атрибут doctype, значение которого либо NULL, либо объект класса DOMDocumentType.

Обзор классов

DOMDocumentType extends DOMNode {
/* Свойства */
readonly public string $publicId ;
readonly public string $systemId ;
readonly public string $name ;
readonly public DOMNamedNodeMap $entities ;
readonly public DOMNamedNodeMap $notations ;
readonly public string $internalSubset ;
/* Наследуемые свойства */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Наследуемые методы */
public DOMNode::appendChild ( DOMNode $newnode ) : DOMNode
public DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] ) : string
public DOMNode::C14NFile ( string $uri [, bool $exclusive = FALSE [, bool $with_comments = FALSE [, array $xpath [, array $ns_prefixes ]]]] ) : int
public DOMNode::cloneNode ([ bool $deep ] ) : DOMNode
public DOMNode::getLineNo ( void ) : int
public DOMNode::getNodePath ( void ) : string
public DOMNode::hasAttributes ( void ) : bool
public DOMNode::hasChildNodes ( void ) : bool
public DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) : DOMNode
public DOMNode::isDefaultNamespace ( string $namespaceURI ) : bool
public DOMNode::isSameNode ( DOMNode $node ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespaceURI ) : string
public DOMNode::normalize ( void ) : void
public DOMNode::removeChild ( DOMNode $oldnode ) : DOMNode
public DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode ) : DOMNode
}

Свойства

publicId

Общедоступный идентификатор внешнего подмножества типов.

systemId

Системный идентификатор внешнего подмножества типов. Это может быть абсолютный URI.

name

Имя DTD, то есть имя, следующее сразу за ключевым словом DOCTYPE.

entities

Объект класса DOMNamedNodeMap, содержащий основные элементы, внутренние и внешние, объявленные в DTD.

notations

Объект класса DOMNamedNodeMap, содержащий обозначения, объявленные в DTD.

internalSubset

Внутреннее подмножество в виде строки или NULL, если такового нет. Оно не должно содержать разделительных квадратных скобок.


Класс DOMElement

(PHP 5, PHP 7)

Обзор классов

DOMElement extends DOMNode {
/* Свойства */
readonly public bool $schemaTypeInfo ;
readonly public string $tagName ;
/* Наследуемые свойства */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Методы */
public __construct ( string $name [, string $value [, string $namespaceURI ]] )
public getAttribute ( string $name ) : string
public getAttributeNode ( string $name ) : DOMAttr
public getAttributeNodeNS ( string $namespaceURI , string $localName ) : DOMAttr
public getAttributeNS ( string $namespaceURI , string $localName ) : string
public getElementsByTagName ( string $name ) : DOMNodeList
public getElementsByTagNameNS ( string $namespaceURI , string $localName ) : DOMNodeList
public hasAttribute ( string $name ) : bool
public hasAttributeNS ( string $namespaceURI , string $localName ) : bool
public removeAttribute ( string $name ) : bool
public removeAttributeNode ( DOMAttr $oldnode ) : bool
public removeAttributeNS ( string $namespaceURI , string $localName ) : bool
public setAttribute ( string $name , string $value ) : DOMAttr
public setAttributeNode ( DOMAttr $attr ) : DOMAttr
public setAttributeNodeNS ( DOMAttr $attr ) : DOMAttr
public setAttributeNS ( string $namespaceURI , string $qualifiedName , string $value ) : void
public setIdAttribute ( string $name , bool $isId ) : void
public setIdAttributeNode ( DOMAttr $attr , bool $isId ) : void
public setIdAttributeNS ( string $namespaceURI , string $localName , bool $isId ) : void
/* Наследуемые методы */
public DOMNode::appendChild ( DOMNode $newnode ) : DOMNode
public DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] ) : string
public DOMNode::C14NFile ( string $uri [, bool $exclusive = FALSE [, bool $with_comments = FALSE [, array $xpath [, array $ns_prefixes ]]]] ) : int
public DOMNode::cloneNode ([ bool $deep ] ) : DOMNode
public DOMNode::getLineNo ( void ) : int
public DOMNode::getNodePath ( void ) : string
public DOMNode::hasAttributes ( void ) : bool
public DOMNode::hasChildNodes ( void ) : bool
public DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) : DOMNode
public DOMNode::isDefaultNamespace ( string $namespaceURI ) : bool
public DOMNode::isSameNode ( DOMNode $node ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespaceURI ) : string
public DOMNode::normalize ( void ) : void
public DOMNode::removeChild ( DOMNode $oldnode ) : DOMNode
public DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode ) : DOMNode
}

Свойства

schemaTypeInfo

Пока не реализовано, всегда возвращает NULL

tagName

Имя элемента

Примечания

Замечание:

Модуль DOM использует кодировку UTF-8. Используйте utf8_encode() и utf8_decode() для работы с текстами в кодировке ISO-8859-1 или iconv для других кодировок.

Содержание

  • DOMElement::__construct — Создает новый экземпляр класса DOMElement
  • DOMElement::getAttribute — Возвращает значение атрибута
  • DOMElement::getAttributeNode — Возвращает узел атрибута
  • DOMElement::getAttributeNodeNS — Возвращает узел атрибута
  • DOMElement::getAttributeNS — Возвращает значение атрибута
  • DOMElement::getElementsByTagName — Возвращает элементы по имени тега
  • DOMElement::getElementsByTagNameNS — Получение элементов по локальному имени в заданном пространстве имен
  • DOMElement::hasAttribute — Проверяет, существует ли атрибут
  • DOMElement::hasAttributeNS — Проверяет, существует ли заданный атрибут
  • DOMElement::removeAttribute — Удаляет атрибут
  • DOMElement::removeAttributeNode — Удаляет атрибут
  • DOMElement::removeAttributeNS — Удаляет атрибут
  • DOMElement::setAttribute — Добавляет новый атрибут
  • DOMElement::setAttributeNode — Добавляет новый узел атрибута в элемент
  • DOMElement::setAttributeNodeNS — Добавляет новый атрибут в элемент
  • DOMElement::setAttributeNS — Добавляет новый атрибут
  • DOMElement::setIdAttribute — Объявляет атрибут, указанный именем, с идентификатором типа
  • DOMElement::setIdAttributeNode — Объявляет атрибут, указанный узлом, с идентификатором типа
  • DOMElement::setIdAttributeNS — Объявляет атрибут, указанный локальным именем и URI пространства имен, с идентификатором типа


Создает новый экземпляр класса DOMElement

  • « DOMElement
  • DOMElement::getAttribute »
  • PHP Manual
  • DOMElement
  • Создает новый экземпляр класса DOMElement

DOMElement::__construct

(PHP 5, PHP 7)

DOMElement::__construct — Создает новый экземпляр класса DOMElement

Описание

public DOMElement::__construct ( string $name [, string $value [, string $namespaceURI ]] )

Создает новый объект класса DOMElement. Этот объект доступен только для чтения. Он может быть добавлен к документу, но дополнительные узлы в него нельзя добавить, пока узел не будет связан с документом. Чтобы создать записываемый узел, используйте DOMDocument::createElement или DOMDocument::createElementNS.

Список параметров

name

Имя тега создаваемого элемента. Если также передается параметр namespaceURI, имя элемента может принимать префикс, который должен быть связан с URI.

value

Значение элемента.

namespaceURI

URI пространства имен для создания элемента с определенным пространством имен.

Примеры

Пример #1 Создание нового 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="utf-8"?>
<root><pr:node1 xmlns:pr="http://xyz">thisvalue</pr:node1></root> */

?>

Смотрите также

  • DOMDocument::createElement() - Создать новый узел элемента
  • DOMDocument::createElementNS() - Создать новый узел элемента с соответствующим пространством имен


Возвращает значение атрибута

  • « DOMElement::__construct
  • DOMElement::getAttributeNode »
  • PHP Manual
  • DOMElement
  • Возвращает значение атрибута

DOMElement::getAttribute

(PHP 5, PHP 7)

DOMElement::getAttribute — Возвращает значение атрибута

Описание

public DOMElement::getAttribute ( string $name ) : string

Возвращает значение атрибута с именем name для текущего узла.

Список параметров

name

Имя атрибута.

Возвращаемые значения

Значение атрибута или пустое значение, если атрибут с указанным именем name не найден.

Смотрите также

  • DOMElement::hasAttribute() - Проверяет, существует ли атрибут
  • DOMElement::setAttribute() - Добавляет новый атрибут
  • DOMElement::removeAttribute() - Удаляет атрибут


Возвращает узел атрибута

  • « DOMElement::getAttribute
  • DOMElement::getAttributeNodeNS »
  • PHP Manual
  • DOMElement
  • Возвращает узел атрибута

DOMElement::getAttributeNode

(PHP 5, PHP 7)

DOMElement::getAttributeNode — Возвращает узел атрибута

Описание

public DOMElement::getAttributeNode ( string $name ) : DOMAttr

Возвращает узел атрибута с именем name для текущего элемента.

Список параметров

name

Имя атрибута.

Возвращаемые значения

Узел атрибута. Обратите внимание, что для объявлений пространств имен XML (атрибуты xmlns и xmlns:*) возвращается экземпляр DOMNameSpaceNode, а не DOMAttr.

Смотрите также

  • DOMElement::hasAttribute() - Проверяет, существует ли атрибут
  • DOMElement::setAttributeNode() - Добавляет новый узел атрибута в элемент
  • DOMElement::removeAttributeNode() - Удаляет атрибут


Возвращает узел атрибута

  • « DOMElement::getAttributeNode
  • DOMElement::getAttributeNS »
  • PHP Manual
  • DOMElement
  • Возвращает узел атрибута

DOMElement::getAttributeNodeNS

(PHP 5, PHP 7)

DOMElement::getAttributeNodeNS — Возвращает узел атрибута

Описание

public DOMElement::getAttributeNodeNS ( string $namespaceURI , string $localName ) : DOMAttr

Возвращает узел атрибута в пространстве имен namespaceURI с локальным именем localName для текущего узла.

Список параметров

namespaceURI

URI пространства имен.

localName

Локальное имя.

Возвращаемые значения

Узел атрибута. Обратите внимание, что для объявлений пространств имен XML (атрибуты xmlns и xmlns:*) возвращается экземпляр DOMNameSpaceNode, а не объект DOMAttr.

Смотрите также

  • DOMElement::hasAttributeNS() - Проверяет, существует ли заданный атрибут
  • DOMElement::setAttributeNodeNS() - Добавляет новый атрибут в элемент
  • DOMElement::removeAttributeNode() - Удаляет атрибут


Возвращает значение атрибута

  • « DOMElement::getAttributeNodeNS
  • DOMElement::getElementsByTagName »
  • PHP Manual
  • DOMElement
  • Возвращает значение атрибута

DOMElement::getAttributeNS

(PHP 5, PHP 7)

DOMElement::getAttributeNS — Возвращает значение атрибута

Описание

public DOMElement::getAttributeNS ( string $namespaceURI , string $localName ) : string

Получает значение атрибута в пространстве имен namespaceURI с локальным именем localName для текущего узла.

Список параметров

namespaceURI

URI пространства имен.

localName

Локальное имя.

Возвращаемые значения

Значение атрибута либо пустая строка, если атрибута с заданным локальным именем localName в пространстве имен namespaceURI не найден.

Смотрите также

  • DOMElement::hasAttributeNS() - Проверяет, существует ли заданный атрибут
  • DOMElement::setAttributeNS() - Добавляет новый атрибут
  • DOMElement::removeAttributeNS() - Удаляет атрибут


Возвращает элементы по имени тега

  • « DOMElement::getAttributeNS
  • DOMElement::getElementsByTagNameNS »
  • PHP Manual
  • DOMElement
  • Возвращает элементы по имени тега

DOMElement::getElementsByTagName

(PHP 5, PHP 7)

DOMElement::getElementsByTagName — Возвращает элементы по имени тега

Описание

public DOMElement::getElementsByTagName ( string $name ) : DOMNodeList

Эта функция возвращает новый экземпляр класса DOMNodeList - список всех элементов-потомков текущего узла с указанным именем тега name, в том порядке, в котором они встречаются при обходе дерева.

Список параметров

name

Имя тега. Используйте символ * для возврата всех элементов дерева.

Возвращаемые значения

Эта функция возвращает новый объект класса DOMNodeList - список всех подходящих элементов.

Смотрите также

  • DOMElement::getElementsByTagNameNS() - Получение элементов по локальному имени в заданном пространстве имен


Получение элементов по локальному имени в заданном пространстве имен

  • « DOMElement::getElementsByTagName
  • DOMElement::hasAttribute »
  • PHP Manual
  • DOMElement
  • Получение элементов по локальному имени в заданном пространстве имен

DOMElement::getElementsByTagNameNS

(PHP 5, PHP 7)

DOMElement::getElementsByTagNameNS — Получение элементов по локальному имени в заданном пространстве имен

Описание

public DOMElement::getElementsByTagNameNS ( string $namespaceURI , string $localName ) : DOMNodeList

Эта функция выбирает все элементы-потомки с заданным именем localName и пространством имен namespaceURI.

Список параметров

namespaceURI

URI пространства имен.

localName

Локальное имя. Используйте * для возврата всех элементов из дерева.

Возвращаемые значения

Эта функция возвращает новый объект класса DOMNodeList, содержащий все найденные элементы в том порядке, в котором они появляются при прямом обходе дерева.

Смотрите также

  • DOMElement::getElementsByTagName() - Возвращает элементы по имени тега


Проверяет, существует ли атрибут

  • « DOMElement::getElementsByTagNameNS
  • DOMElement::hasAttributeNS »
  • PHP Manual
  • DOMElement
  • Проверяет, существует ли атрибут

DOMElement::hasAttribute

(PHP 5, PHP 7)

DOMElement::hasAttribute — Проверяет, существует ли атрибут

Описание

public DOMElement::hasAttribute ( string $name ) : bool

Проверяет наличие атрибута с именем, указанным в параметре name текущего элемента.

Список параметров

name

Имя атрибута.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • DOMElement::hasAttributeNS() - Проверяет, существует ли заданный атрибут
  • DOMElement::getAttribute() - Возвращает значение атрибута
  • DOMElement::setAttribute() - Добавляет новый атрибут
  • DOMElement::removeAttribute() - Удаляет атрибут


Проверяет, существует ли заданный атрибут

  • « DOMElement::hasAttribute
  • DOMElement::removeAttribute »
  • PHP Manual
  • DOMElement
  • Проверяет, существует ли заданный атрибут

DOMElement::hasAttributeNS

(PHP 5, PHP 7)

DOMElement::hasAttributeNS — Проверяет, существует ли заданный атрибут

Описание

public DOMElement::hasAttributeNS ( string $namespaceURI , string $localName ) : bool

Показывает, существует ли атрибут в пространстве имен namespaceURI с именем localName в составе элемента.

Список параметров

namespaceURI

URI пространства имен.

localName

Локальное имя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • DOMElement::hasAttribute() - Проверяет, существует ли атрибут
  • DOMElement::getAttributeNS() - Возвращает значение атрибута
  • DOMElement::setAttributeNS() - Добавляет новый атрибут
  • DOMElement::removeAttributeNS() - Удаляет атрибут


Удаляет атрибут

  • « DOMElement::hasAttributeNS
  • DOMElement::removeAttributeNode »
  • PHP Manual
  • DOMElement
  • Удаляет атрибут

DOMElement::removeAttribute

(PHP 5, PHP 7)

DOMElement::removeAttribute — Удаляет атрибут

Описание

public DOMElement::removeAttribute ( string $name ) : bool

Удаляет атрибут с именем name из элемента.

Список параметров

name

Имя атрибута.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если атрибут доступен только для чтения.

Смотрите также

  • DOMElement::hasAttribute() - Проверяет, существует ли атрибут
  • DOMElement::getAttribute() - Возвращает значение атрибута
  • DOMElement::setAttribute() - Добавляет новый атрибут


Удаляет атрибут

  • « DOMElement::removeAttribute
  • DOMElement::removeAttributeNS »
  • PHP Manual
  • DOMElement
  • Удаляет атрибут

DOMElement::removeAttributeNode

(PHP 5, PHP 7)

DOMElement::removeAttributeNode — Удаляет атрибут

Описание

public DOMElement::removeAttributeNode ( DOMAttr $oldnode ) : bool

Удаляет узел атрибута oldnode из элемента.

Список параметров

oldnode

Узел атрибута.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

DOM_NOT_FOUND_ERROR

Возникает, если oldnode не является атрибутом элемента.

Смотрите также

  • DOMElement::hasAttribute() - Проверяет, существует ли атрибут
  • DOMElement::getAttributeNode() - Возвращает узел атрибута
  • DOMElement::setAttributeNode() - Добавляет новый узел атрибута в элемент


Удаляет атрибут

  • « DOMElement::removeAttributeNode
  • DOMElement::setAttribute »
  • PHP Manual
  • DOMElement
  • Удаляет атрибут

DOMElement::removeAttributeNS

(PHP 5, PHP 7)

DOMElement::removeAttributeNS — Удаляет атрибут

Описание

public DOMElement::removeAttributeNS ( string $namespaceURI , string $localName ) : bool

Удаляет атрибут localName в пространстве имен namespaceURI из элемента.

Список параметров

namespaceURI

URI пространства имен.

localName

Локальное имя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

Смотрите также

  • DOMElement::hasAttributeNS() - Проверяет, существует ли заданный атрибут
  • DOMElement::getAttributeNS() - Возвращает значение атрибута
  • DOMElement::setAttributeNS() - Добавляет новый атрибут


Добавляет новый атрибут

  • « DOMElement::removeAttributeNS
  • DOMElement::setAttributeNode »
  • PHP Manual
  • DOMElement
  • Добавляет новый атрибут

DOMElement::setAttribute

(PHP 5, PHP 7)

DOMElement::setAttribute — Добавляет новый атрибут

Описание

public DOMElement::setAttribute ( string $name , string $value ) : DOMAttr

Устанавливает атрибут с именем name. Если атрибут не существует, то он будет создан.

Список параметров

name

Имя атрибута.

value

Значение атрибута.

Возвращаемые значения

Новый объект класса DOMAttr или FALSE в случае ошибки.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

Примеры

Пример #1 Установка значения атрибута

<?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::setAttribute
  • DOMElement::setAttributeNodeNS »
  • PHP Manual
  • DOMElement
  • Добавляет новый узел атрибута в элемент

DOMElement::setAttributeNode

(PHP 5, PHP 7)

DOMElement::setAttributeNode — Добавляет новый узел атрибута в элемент

Описание

public DOMElement::setAttributeNode ( DOMAttr $attr ) : DOMAttr

Добавляет новый узел атрибута attr в элемент.

Список параметров

attr

Узел атрибута.

Возвращаемые значения

Возвращает старый узел, если атрибут был заменен или NULL.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

Смотрите также

  • DOMElement::hasAttribute() - Проверяет, существует ли атрибут
  • DOMElement::getAttributeNode() - Возвращает узел атрибута
  • DOMElement::removeAttributeNode() - Удаляет атрибут


Добавляет новый атрибут в элемент

  • « DOMElement::setAttributeNode
  • DOMElement::setAttributeNS »
  • PHP Manual
  • DOMElement
  • Добавляет новый атрибут в элемент

DOMElement::setAttributeNodeNS

(PHP 5, PHP 7)

DOMElement::setAttributeNodeNS — Добавляет новый атрибут в элемент

Описание

public DOMElement::setAttributeNodeNS ( DOMAttr $attr ) : DOMAttr

Добавляет новый узел атрибута attr в элемент.

Список параметров

attr

Узел атрибута.

Возвращаемые значения

Возвращает старый узел, если атрибут был заменен.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

Смотрите также

  • DOMElement::hasAttributeNS() - Проверяет, существует ли заданный атрибут
  • DOMElement::getAttributeNodeNS() - Возвращает узел атрибута
  • DOMElement::removeAttributeNode() - Удаляет атрибут


Добавляет новый атрибут

  • « DOMElement::setAttributeNodeNS
  • DOMElement::setIdAttribute »
  • PHP Manual
  • DOMElement
  • Добавляет новый атрибут

DOMElement::setAttributeNS

(PHP 5, PHP 7)

DOMElement::setAttributeNS — Добавляет новый атрибут

Описание

public DOMElement::setAttributeNS ( string $namespaceURI , string $qualifiedName , string $value ) : void

Устанавливает атрибут с пространстве имен namespaceURI и локальным именем name. Если атрибут не существует, он будет создан.

Список параметров

namespaceURI

URI пространства имен.

qualifiedName

Квалифицированное имя атрибута в виде prefix:tagname.

value

Значение атрибута.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

DOM_NAMESPACE_ERR

Возникает, если значение qualifiedName неверно, или если qualifiedName имеет префикс, а namespaceURI - NULL.

Смотрите также

  • DOMElement::hasAttributeNS() - Проверяет, существует ли заданный атрибут
  • DOMElement::getAttributeNS() - Возвращает значение атрибута
  • DOMElement::removeAttributeNS() - Удаляет атрибут


Объявляет атрибут, указанный именем, с идентификатором типа

  • « DOMElement::setAttributeNS
  • DOMElement::setIdAttributeNode »
  • PHP Manual
  • DOMElement
  • Объявляет атрибут, указанный именем, с идентификатором типа

DOMElement::setIdAttribute

(PHP 5, PHP 7)

DOMElement::setIdAttribute — Объявляет атрибут, указанный именем, с идентификатором типа

Описание

public DOMElement::setIdAttribute ( string $name , bool $isId ) : void

Объявляет атрибут name с идентификатором типа.

Список параметров

name

Имя атрибута.

isId

Установите значение в TRUE если вы хотите, чтобы name имел идентификатор типа, FALSE в противном случае.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

DOM_NOT_FOUND

Возникает, если name не является атрибутом элемента.

Смотрите также

  • DOMDocument::getElementById() - Ищет элемент с определенным идентификатором
  • DOMElement::setIdAttributeNode() - Объявляет атрибут, указанный узлом, с идентификатором типа
  • DOMElement::setIdAttributeNS() - Объявляет атрибут, указанный локальным именем и URI пространства имен, с идентификатором типа


Объявляет атрибут, указанный узлом, с идентификатором типа

  • « DOMElement::setIdAttribute
  • DOMElement::setIdAttributeNS »
  • PHP Manual
  • DOMElement
  • Объявляет атрибут, указанный узлом, с идентификатором типа

DOMElement::setIdAttributeNode

(PHP 5, PHP 7)

DOMElement::setIdAttributeNode — Объявляет атрибут, указанный узлом, с идентификатором типа

Описание

public DOMElement::setIdAttributeNode ( DOMAttr $attr , bool $isId ) : void

Объявляет атрибут, определяемый узлом attr, идентификатором типа.

Список параметров

attr

Узел атрибута.

isId

Установите значение в TRUE если вы хотите, чтобы name имел идентификатор типа, FALSE в противном случае.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

DOM_NOT_FOUND

Возникает, если name не является атрибутом элемента.

Смотрите также

  • DOMDocument::getElementById() - Ищет элемент с определенным идентификатором
  • DOMElement::setIdAttribute() - Объявляет атрибут, указанный именем, с идентификатором типа
  • DOMElement::setIdAttributeNS() - Объявляет атрибут, указанный локальным именем и URI пространства имен, с идентификатором типа


Объявляет атрибут, указанный локальным именем и URI пространства имен, с идентификатором типа

  • « DOMElement::setIdAttributeNode
  • DOMEntity »
  • PHP Manual
  • DOMElement
  • Объявляет атрибут, указанный локальным именем и URI пространства имен, с идентификатором типа

DOMElement::setIdAttributeNS

(PHP 5, PHP 7)

DOMElement::setIdAttributeNS — Объявляет атрибут, указанный локальным именем и URI пространства имен, с идентификатором типа

Описание

public DOMElement::setIdAttributeNS ( string $namespaceURI , string $localName , bool $isId ) : void

Объявляет атрибут, указанный локальным именем localName и пространством имен namespaceURI, идентификатором типа.

Список параметров

namespaceURI

URI пространства имен атрибута.

localName

Локальное имя атрибута в виде prefix:tagname.

isId

Установите значение в TRUE если вы хотите, чтобы name имел идентификатор типа, FALSE в противном случае.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

DOM_NOT_FOUND

Возникает, если name не является атрибутом элемента.

Смотрите также

  • DOMDocument::getElementById() - Ищет элемент с определенным идентификатором
  • DOMElement::setIdAttribute() - Объявляет атрибут, указанный именем, с идентификатором типа
  • DOMElement::setIdAttributeNode() - Объявляет атрибут, указанный узлом, с идентификатором типа


Класс DOMEntity

(PHP 5, PHP 7)

Введение

Этот интерфейс представляет известную сущность, уже разобранную или нет, в документе XML.

Обзор классов

DOMEntity extends DOMNode {
/* Свойства */
readonly public string $publicId ;
readonly public string $systemId ;
readonly public string $notationName ;
public string $actualEncoding ;
readonly public string $encoding ;
readonly public string $version ;
/* Наследуемые свойства */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Наследуемые методы */
public DOMNode::appendChild ( DOMNode $newnode ) : DOMNode
public DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] ) : string
public DOMNode::C14NFile ( string $uri [, bool $exclusive = FALSE [, bool $with_comments = FALSE [, array $xpath [, array $ns_prefixes ]]]] ) : int
public DOMNode::cloneNode ([ bool $deep ] ) : DOMNode
public DOMNode::getLineNo ( void ) : int
public DOMNode::getNodePath ( void ) : string
public DOMNode::hasAttributes ( void ) : bool
public DOMNode::hasChildNodes ( void ) : bool
public DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) : DOMNode
public DOMNode::isDefaultNamespace ( string $namespaceURI ) : bool
public DOMNode::isSameNode ( DOMNode $node ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespaceURI ) : string
public DOMNode::normalize ( void ) : void
public DOMNode::removeChild ( DOMNode $oldnode ) : DOMNode
public DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode ) : DOMNode
}

Свойства

publicId

Общедоступный идентификатор соответствующий сущности или NULL, если не задан.

systemId

Системный идентификатор соответствующий сущности или NULL, если не задан. Это может быть абсолютный URI.

notationName

Для неразобранных объектов - наименование условного обозначения для сущности. Для разобранных - NULL.

actualEncoding

Атрибут, задающий кодировку, которая использовалась при разборе сущности, для случаев, когда разбор производился внешними методами. Атрибут имеет значение NULL, если сущность находится во внутреннем подмножестве или этот факт не известен.

encoding

Атрибут, задающий кодировку сущности, равно как и в объявлении, когда сущность разобрана внешними средствами. В противном случае атрибут имеет значение NULL.

version

Атрибут, задающий версию элемента, если он был разобран внешними средствами. В противном случае NULL.


Класс DOMEntityReference

(PHP 5, PHP 7)

Обзор классов

DOMEntityReference extends DOMNode {
/* Наследуемые свойства */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Методы */
public __construct ( string $name )
/* Наследуемые методы */
public DOMNode::appendChild ( DOMNode $newnode ) : DOMNode
public DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] ) : string
public DOMNode::C14NFile ( string $uri [, bool $exclusive = FALSE [, bool $with_comments = FALSE [, array $xpath [, array $ns_prefixes ]]]] ) : int
public DOMNode::cloneNode ([ bool $deep ] ) : DOMNode
public DOMNode::getLineNo ( void ) : int
public DOMNode::getNodePath ( void ) : string
public DOMNode::hasAttributes ( void ) : bool
public DOMNode::hasChildNodes ( void ) : bool
public DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) : DOMNode
public DOMNode::isDefaultNamespace ( string $namespaceURI ) : bool
public DOMNode::isSameNode ( DOMNode $node ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespaceURI ) : string
public DOMNode::normalize ( void ) : void
public DOMNode::removeChild ( DOMNode $oldnode ) : DOMNode
public DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode ) : DOMNode
}

Содержание

  • DOMEntityReference::__construct — Создает новый объект класса DOMEntityReference


Создает новый объект класса DOMEntityReference

  • « DOMEntityReference
  • DOMException »
  • PHP Manual
  • DOMEntityReference
  • Создает новый объект класса DOMEntityReference

DOMEntityReference::__construct

(PHP 5, PHP 7)

DOMEntityReference::__construct — Создает новый объект класса DOMEntityReference

Описание

public DOMEntityReference::__construct ( string $name )

Создает новый объект класса DOMEntityReference.

Список параметров

name

Имя ссылки на сущность.

Примеры

Пример #1 Создание нового объекта 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></root> */

?>

Смотрите также

  • DOMDocument::createEntityReference() - Создать новый узел ссылки на сущность


Класс DOMException

(PHP 5, PHP 7)

Введение

Операции DOM при определенных обстоятельствах выбрасывают исключения, например, когда выполнение операции невозможно по понятным причинам.

См. также Исключения.

Обзор классов

DOMException extends Exception {
/* Свойства */
readonly public int $code ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}

Свойства

code

Целое число, указывающее тип произошедшей ошибки


Класс DOMImplementation

(PHP 5, PHP 7)

Введение

Интерфейс DOMImplementation предоставляет ряд методов для выполнения операций, которые не зависят от какого-либо экземпляра объектной модели документа.

Обзор классов

DOMImplementation {
/* Свойства */
/* Методы */
__construct ( void )
public createDocument ([ string $namespaceURI = NULL [, string $qualifiedName = NULL [, DOMDocumentType $doctype = NULL ]]] ) : DOMDocument
public createDocumentType ([ string $qualifiedName = NULL [, string $publicId = NULL [, string $systemId = NULL ]]] ) : DOMDocumentType
public hasFeature ( string $feature , string $version ) : bool
}

Содержание

  • DOMImplementation::__construct — Создает новый объект класса DOMImplementation
  • DOMImplementation::createDocument — Создает объект класса DOMDocument заданного типа с его элементом document
  • DOMImplementation::createDocumentType — Создает пустой объект класса DOMDocumentType
  • DOMImplementation::hasFeature — Проверка, реализована ли определенная возможность в реализации DOM


Создает новый объект класса DOMImplementation

  • « DOMImplementation
  • DOMImplementation::createDocument »
  • PHP Manual
  • DOMImplementation
  • Создает новый объект класса DOMImplementation

DOMImplementation::__construct

(PHP 5, PHP 7)

DOMImplementation::__construct — Создает новый объект класса DOMImplementation

Описание

DOMImplementation::__construct ( void )

Создает экземпляр класса DOMImplementation.


Создает объект класса DOMDocument заданного типа с его элементом document

  • « DOMImplementation::__construct
  • DOMImplementation::createDocumentType »
  • PHP Manual
  • DOMImplementation
  • Создает объект класса DOMDocument заданного типа с его элементом document

DOMImplementation::createDocument

(PHP 5, PHP 7)

DOMImplementation::createDocument — Создает объект класса DOMDocument заданного типа с его элементом document

Описание

public DOMImplementation::createDocument ([ string $namespaceURI = NULL [, string $qualifiedName = NULL [, DOMDocumentType $doctype = NULL ]]] ) : DOMDocument

Создает объект класса DOMDocument заданного типа с его элементом document.

Список параметров

namespaceURI

URI пространства имен создаваемого элемента document.

qualifiedName

Квалифицированное имя создаваемого элемента document.

doctype

Тип создаваемого элемента document или NULL.

Возвращаемые значения

Новый объект класса DOMDocument. Если аргументы namespaceURI, qualifiedName, и doctype имеют значение null, возвращаемый объект DOMDocument будет пустым и без элемента document.

Ошибки

DOM_WRONG_DOCUMENT_ERR

Возникает, если аргумент doctype уже использовался с другим документом или был создан в другой реализации.

DOM_NAMESPACE_ERR

Возникает, если обнаружена ошибка в строках namespaceURI и qualifiedName.

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Смотрите также

  • DOMDocument::__construct() - Создает новый объект DOMDocument
  • DOMImplementation::createDocumentType() - Создает пустой объект класса DOMDocumentType


Создает пустой объект класса DOMDocumentType

  • « DOMImplementation::createDocument
  • DOMImplementation::hasFeature »
  • PHP Manual
  • DOMImplementation
  • Создает пустой объект класса DOMDocumentType

DOMImplementation::createDocumentType

(PHP 5, PHP 7)

DOMImplementation::createDocumentType — Создает пустой объект класса DOMDocumentType

Описание

public DOMImplementation::createDocumentType ([ string $qualifiedName = NULL [, string $publicId = NULL [, string $systemId = NULL ]]] ) : DOMDocumentType

Создает пустой объект класса DOMDocumentType. Объявления сущностей и обозначения будут недоступны. Ссылки на сущности не будут заменяться и добавления атрибутов по умолчанию не будут происходить.

Список параметров

qualifiedName

Квалифицированное имя типа документа для создания.

publicId

Общедоступный идентификатор внешнего подмножества.

systemId

Системный идентификатор внешнего подмножества.

Возвращаемые значения

Новый объект класса DOMDocumentType с атрибутом ownerDocument, установленным в NULL.

Ошибки

DOM_NAMESPACE_ERR

Возникает, если обнаружена ошибка в строке qualifiedName.

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Примеры

Пример #1 Создание документа с прикрепленным DTD

<?php

// Создает экземпляр класса DOMImplementation
$imp = new DOMImplementation;

// Создает экземпляр класса DOMDocumentType
$dtd = $imp->createDocumentType('graph', '', 'graph.dtd');

// Создает объект DOMDocument
$dom = $imp->createDocument("", "", $dtd);

// Установка других параметров
$dom->encoding = 'UTF-8';
$dom->standalone = false;

// Создание пустого элемента
$element = $dom->createElement('graph');

// Добавление элемента
$dom->appendChild($element);

// Получение и печать документа
echo $dom->saveXML();

?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE graph SYSTEM "graph.dtd">
<graph/>

Смотрите также

  • DOMImplementation::createDocument() - Создает объект класса DOMDocument заданного типа с его элементом document


Проверка, реализована ли определенная возможность в реализации DOM

  • « DOMImplementation::createDocumentType
  • DOMNamedNodeMap »
  • PHP Manual
  • DOMImplementation
  • Проверка, реализована ли определенная возможность в реализации DOM

DOMImplementation::hasFeature

(PHP 5, PHP 7)

DOMImplementation::hasFeature — Проверка, реализована ли определенная возможность в реализации DOM

Описание

public DOMImplementation::hasFeature ( string $feature , string $version ) : bool

Проверяет, реализует ли специфичную возможность feature реализация DOM.

Вы можете найти список всех возможностей в разделе » Согласование стандарта DOM.

Список параметров

feature

Тестируемая возможность.

version

Номер версии тестируемой возможности feature. В DOM level 2 это может быть либо 2.0, либо 1.0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Примеры

Пример #1 Тестирование вашей реализации DOM

<?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 "Реализует возможность $name\n";
  } else {
    echo "Возможность $name отсутствует\n";
  }
}

?>

Смотрите также

  • DOMNode::isSupported() - Проверяет, поддерживается ли возможность в определенной версии


Класс DOMNamedNodeMap

(PHP 5, PHP 7)

Обзор классов

DOMNamedNodeMap implements Traversable , Countable {
/* Свойства */
readonly public int $length ;
/* Методы */
public count ( void ) : int
getNamedItem ( string $name ) : DOMNode
getNamedItemNS ( string $namespaceURI , string $localName ) : DOMNode
item ( int $index ) : DOMNode
}

Свойства

length

Количество узлов в отображении. Диапазон допустимых индексов дочерних узлов от 0 до length - 1 включительно.

Содержание

  • DOMNamedNodeMap::count — Количество узлов в отображении
  • DOMNamedNodeMap::getNamedItem — Получает узел, указанный по имени
  • DOMNamedNodeMap::getNamedItemNS — Получает узел с заданным локальным именем и URI пространства имен
  • DOMNamedNodeMap::item — Получает узел с заданным индексом


Количество узлов в отображении

  • « DOMNamedNodeMap
  • DOMNamedNodeMap::getNamedItem »
  • PHP Manual
  • DOMNamedNodeMap
  • Количество узлов в отображении

DOMNamedNodeMap::count

(PHP 7 >= 7.2.0)

DOMNamedNodeMap::count — Количество узлов в отображении

Описание

public DOMNamedNodeMap::count ( void ) : int

Получает количество узлов в отображении.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество узлов в отображении, которое идентично свойству length.


Получает узел, указанный по имени

  • « DOMNamedNodeMap::count
  • DOMNamedNodeMap::getNamedItemNS »
  • PHP Manual
  • DOMNamedNodeMap
  • Получает узел, указанный по имени

DOMNamedNodeMap::getNamedItem

(PHP 5, PHP 7)

DOMNamedNodeMap::getNamedItem — Получает узел, указанный по имени

Описание

DOMNamedNodeMap::getNamedItem ( string $name ) : DOMNode

Извлекает узел по заданному nodeName.

Список параметров

name

Имя nodeName искомого узла.

Возвращаемые значения

Узел (любого типа) с заданным значением тега nodeName или NULL, если таковых не найдено.

Смотрите также

  • DOMNamedNodeMap::getNamedItemNS() - Получает узел с заданным локальным именем и URI пространства имен


Получает узел с заданным локальным именем и URI пространства имен

  • « DOMNamedNodeMap::getNamedItem
  • DOMNamedNodeMap::item »
  • PHP Manual
  • DOMNamedNodeMap
  • Получает узел с заданным локальным именем и URI пространства имен

DOMNamedNodeMap::getNamedItemNS

(PHP 5, PHP 7)

DOMNamedNodeMap::getNamedItemNS — Получает узел с заданным локальным именем и URI пространства имен

Описание

DOMNamedNodeMap::getNamedItemNS ( string $namespaceURI , string $localName ) : DOMNode

Извлекает узел с заданным локальным именем localName и URI пространства имен namespaceURI.

Список параметров

namespaceURI

URI пространства имен искомого узла.

localName

Локальное имя искомого узла.

Возвращаемые значения

Узел (любого типа) с заданным локальным именем и URI пространства имен или NULL, если он не найден.

Смотрите также

  • DOMNamedNodeMap::getNamedItem() - Получает узел, указанный по имени


Получает узел с заданным индексом

  • « DOMNamedNodeMap::getNamedItemNS
  • DOMNode »
  • PHP Manual
  • DOMNamedNodeMap
  • Получает узел с заданным индексом

DOMNamedNodeMap::item

(PHP 5, PHP 7)

DOMNamedNodeMap::item — Получает узел с заданным индексом

Описание

DOMNamedNodeMap::item ( int $index ) : DOMNode

Извлекает узел с заданным индексом index из объекта класса DOMNamedNodeMap.

Список параметров

index

Индекс узла в отображении.

Возвращаемые значения

Узел с индексом index в отображении или NULL, если индекс имеет недопустимое значение (больше или равен количеству узлов в отображении).


Класс DOMNode

(PHP 5, PHP 7)

Обзор классов

DOMNode {
/* Свойства */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Методы */
public appendChild ( DOMNode $newnode ) : DOMNode
public C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] ) : string
public C14NFile ( string $uri [, bool $exclusive = FALSE [, bool $with_comments = FALSE [, array $xpath [, array $ns_prefixes ]]]] ) : int
public cloneNode ([ bool $deep ] ) : DOMNode
public getLineNo ( void ) : int
public getNodePath ( void ) : string
public hasAttributes ( void ) : bool
public hasChildNodes ( void ) : bool
public insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) : DOMNode
public isDefaultNamespace ( string $namespaceURI ) : bool
public isSameNode ( DOMNode $node ) : bool
public isSupported ( string $feature , string $version ) : bool
public lookupNamespaceUri ( string $prefix ) : string
public lookupPrefix ( string $namespaceURI ) : string
public normalize ( void ) : void
public removeChild ( DOMNode $oldnode ) : DOMNode
public replaceChild ( DOMNode $newnode , DOMNode $oldnode ) : DOMNode
}

Свойства

nodeName

Возвращает наиболее точное имя для текущего типа узла

nodeValue

Значение этого узла, в зависимости от его типа. В отличие от спецификации W3C, значения узлов DOMElement равно DOMNode::textContent, а не NULL.

nodeType

Возвращает тип этого узла. Одна из возможных констант XML_xxx_NODE

parentNode

Родительский узел этого узла. Если такого узла нет, возвращает NULL

childNodes

Объект DOMNodeList, содержащий всех потомков этого узла. Если потомков нет, возвращается пустой DOMNodeList.

firstChild

Первый дочерний узел этого узла. Если такого узла нет, возвращает NULL.

lastChild

Последний дочерний узел текущего узла. Если такого узла нет, возвращает NULL.

previousSibling

Узел, непосредственно предшествующий этому узлу. Если такого узла нет, возвращает NULL.

nextSibling

Узел, непосредственно следующий после этого узла. Если такого узла нет, возвращает NULL.

attributes

Объект DOMNamedNodeMap, содержащий атрибуты этого узла (только если это DOMElement), иначе вернёт NULL.

ownerDocument

Объект DOMDocument, связанный с этим узлом, либо NULL, если узел является DOMDOcument.

namespaceURI

URI пространство имён этого узла или NULL, если он не указан.

prefix

Префикс пространства имен этого узла или NULL, если он не указан.

localName

Возвращает локальную часть квалифицированного имя этого узла.

baseURI

Абсолютный базовый URI этого узла или NULL, если реализация не смогла получить абсолютный URI.

textContent

Текстовое содержимое этого узла и его потомков

Примечания

Замечание:

Модуль DOM использует кодировку UTF-8. Используйте utf8_encode() и utf8_decode() для работы с текстами в кодировке ISO-8859-1 или iconv для других кодировок.

Список изменений

Версия | Описание
5.6.1 | Свойство textContent стало доступно для записи (раньше оно было только для чтения).

Смотрите также

  • » Спецификация W3C элемента Node

Содержание

  • DOMNode::appendChild — Добавляет новый дочерний узел в конец списка потомков
  • DOMNode::C14N — Канонизировать узлы в строку
  • DOMNode::C14NFile — Канонизировать узлы в файл
  • DOMNode::cloneNode — Клонирует узел
  • DOMNode::getLineNo — Получить номер строки узла
  • DOMNode::getNodePath — Получение XPath узла
  • DOMNode::hasAttributes — Проверяет, имеет ли данный узел атрибуты
  • DOMNode::hasChildNodes — Проверяет, имеет ли данный узел потомков
  • DOMNode::insertBefore — Добавляет новый дочерний узел перед указанным узлом
  • DOMNode::isDefaultNamespace — Проверяет, является ли указанный URI пространства имен узла пространством имен по умолчанию или нет
  • DOMNode::isSameNode — Указывает, являются ли два узла одним и тем же узлом
  • DOMNode::isSupported — Проверяет, поддерживается ли возможность в определенной версии
  • DOMNode::lookupNamespaceUri — Получает URI пространства имен узла по префиксу
  • DOMNode::lookupPrefix — Возвращает префикс пространства имен узла из URI пространства имен
  • DOMNode::normalize — Нормализует узел
  • DOMNode::removeChild — Удаляет дочерний узел из списка потомков
  • DOMNode::replaceChild — Заменяет дочерний узел


Добавляет новый дочерний узел в конец списка потомков

  • « DOMNode
  • DOMNode::C14N »
  • PHP Manual
  • DOMNode
  • Добавляет новый дочерний узел в конец списка потомков

DOMNode::appendChild

(PHP 5, PHP 7)

DOMNode::appendChild — Добавляет новый дочерний узел в конец списка потомков

Описание

public DOMNode::appendChild ( DOMNode $newnode ) : DOMNode

Функция добавляет дочерний узел в существующий список потомков или создает новый список дочерних элементов. Дочерний узел может быть создан с помощью DOMDocument::createElement(), DOMDocument::createTextNode() и т.д., или может быть использован любой другой узел.

Список параметров

newnode

Добавляемый дочерний узел.

Возвращаемые значения

Добавленный узел.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения или предыдущий родитель вставляемого узла доступен только для чтения.

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип узла не поддерживает потомков типа, который имеет узел newnode, или если добавляемый узел является одним из предком целевого узла или им самим.

DOM_WRONG_DOCUMENT_ERR

Возникает, если newnode создан в другом документе, отличном от того, в котором был создан этот узел.

Примеры

Следующий пример добавляет новый узел в только что созданный документ.

Пример #1 Добавление дочернего узла

<?php

$doc = new DOMDocument;

$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);

echo $doc->saveXML();
?>

Пример #2 Вложенные дочерние узлы

<?php

$doc = new DOMDocument;

$headNode = $doc->createElement("head");
$doc->appendChild($headNode);

$titleNode = $doc->createElement("title");
$headNode->appendChild($titleNode);

echo $doc->saveXML();
?>

Смотрите также

  • DOMNode::insertBefore() - Добавляет новый дочерний узел перед указанным узлом
  • DOMNode::removeChild() - Удаляет дочерний узел из списка потомков
  • DOMNode::replaceChild() - Заменяет дочерний узел


Канонизировать узлы в строку

  • « DOMNode::appendChild
  • DOMNode::C14NFile »
  • PHP Manual
  • DOMNode
  • Канонизировать узлы в строку

DOMNode::C14N

(PHP 5 >= 5.2.0, PHP 7)

DOMNode::C14N — Канонизировать узлы в строку

Описание

public DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] ) : string

Канонизировать узлы в строку

Список параметров

exclusive

Включить эксклюзивный разбор только тех узлов, которые совпадают с предоставленными xpath или ns_prefixes.

with_comments

Сохранять комментарии в выводе.

xpath

Массив xpath для фильтрации узлов.

ns_prefixes

Массив префиксов пространств имен для фильтрации узлов.

Возвращаемые значения

Возвращает канонизированные узлы в виде строки или FALSE в случае возникновения ошибки

Смотрите также

  • DOMNode::C14NFile() - Канонизировать узлы в файл


Канонизировать узлы в файл

  • « DOMNode::C14N
  • DOMNode::cloneNode »
  • PHP Manual
  • DOMNode
  • Канонизировать узлы в файл

DOMNode::C14NFile

(PHP 5 >= 5.2.0, PHP 7)

DOMNode::C14NFile — Канонизировать узлы в файл

Описание

public DOMNode::C14NFile ( string $uri [, bool $exclusive = FALSE [, bool $with_comments = FALSE [, array $xpath [, array $ns_prefixes ]]]] ) : int

Канонизировать узлы в файл.

Список параметров

uri

Путь для записи вывода.

exclusive

Включить эксклюзивный разбор только тех узлов, которые совпадают с предоставленными xpath или ns_prefixes.

with_comments

Сохранять комментарии в выводе.

xpath

Массив xpath для фильтрации узлов.

ns_prefixes

Массив префиксов пространств имен для фильтрации узлов.

Возвращаемые значения

Количество записанных байт или FALSE в случае возникновения ошибки

Смотрите также

  • DOMNode::C14N() - Канонизировать узлы в строку


Клонирует узел

  • « DOMNode::C14NFile
  • DOMNode::getLineNo »
  • PHP Manual
  • DOMNode
  • Клонирует узел

DOMNode::cloneNode

(PHP 5, PHP 7)

DOMNode::cloneNode — Клонирует узел

Описание

public DOMNode::cloneNode ([ bool $deep ] ) : DOMNode

Создает копию узла.

Список параметров

deep

Указывает, нужно ли копировать всех потомков. Этот параметр по умолчанию имеет значение FALSE.

Возвращаемые значения

Копия узла.


Получить номер строки узла

  • « DOMNode::cloneNode
  • DOMNode::getNodePath »
  • PHP Manual
  • DOMNode
  • Получить номер строки узла

DOMNode::getLineNo

(PHP 5 >= 5.3.0, PHP 7)

DOMNode::getLineNo — Получить номер строки узла

Описание

public DOMNode::getLineNo ( void ) : int

Возвращает номер строки, в которой определен узел.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Всегда возвращает номер строки, в которой был определен узел.

Примеры

Пример #1 Пример использования DOMNode::getLineNo()

<?php
// Определение необходимого для примера XML
$xml = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<root>
    <node />
</root>
XML;

// Создание нового экземпляра DOMDocument
$dom = new DOMDocument;

// Загрузка XML
$dom->loadXML($xml);

// Вывод номер строки, в которой определен элемент 'node'
printf('Тег <node> определен в строке %d', $dom->getElementsByTagName('node')->item(0)->getLineNo());
?>

Результат выполнения данного примера:

Тег <node> определен в строке 3


Получение XPath узла

  • « DOMNode::getLineNo
  • DOMNode::hasAttributes »
  • PHP Manual
  • DOMNode
  • Получение XPath узла

DOMNode::getNodePath

(PHP 5 >= 5.2.0, PHP 7)

DOMNode::getNodePath — Получение XPath узла

Описание

public DOMNode::getNodePath ( void ) : string

Получает путь XPath, по которому расположен узел.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string), содержащую XPath либо NULL в случае ошибки.

Примеры

Пример #1 Пример использования DOMNode::getNodePath()

<?php
// Создание объекта DOMDocument
$dom = new DOMDocument;

// Загрузка XML
$dom->loadXML('
<fruits>
 <apples>
  <apple>braeburn</apple>
  <apple>granny smith</apple>
 </apples>
 <pears>
  <pear>conference</pear>
 </pears>
</fruits>
');

// Вывод XPath для каждого элемента
foreach ($dom->getElementsByTagName('*') as $node) {
    echo $node->getNodePath() . "\n";
}
?>

Результат выполнения данного примера:

/fruits
/fruits/apples
/fruits/apples/apple[1]
/fruits/apples/apple[2]
/fruits/pears
/fruits/pears/pear

Смотрите также

  • DOMXPath


Проверяет, имеет ли данный узел атрибуты

  • « DOMNode::getNodePath
  • DOMNode::hasChildNodes »
  • PHP Manual
  • DOMNode
  • Проверяет, имеет ли данный узел атрибуты

DOMNode::hasAttributes

(PHP 5, PHP 7)

DOMNode::hasAttributes — Проверяет, имеет ли данный узел атрибуты

Описание

public DOMNode::hasAttributes ( void ) : bool

Этот метод проверяет, содержит ли текущий узел атрибуты. Проверяемый узел должен быть XML_ELEMENT_NODE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • DOMNode::hasChildNodes() - Проверяет, имеет ли данный узел потомков


Проверяет, имеет ли данный узел потомков

  • « DOMNode::hasAttributes
  • DOMNode::insertBefore »
  • PHP Manual
  • DOMNode
  • Проверяет, имеет ли данный узел потомков

DOMNode::hasChildNodes

(PHP 5, PHP 7)

DOMNode::hasChildNodes — Проверяет, имеет ли данный узел потомков

Описание

public DOMNode::hasChildNodes ( void ) : bool

Эта функция проверяет, содержит ли данный узел потомков.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • DOMNode::hasAttributes() - Проверяет, имеет ли данный узел атрибуты


Добавляет новый дочерний узел перед указанным узлом

  • « DOMNode::hasChildNodes
  • DOMNode::isDefaultNamespace »
  • PHP Manual
  • DOMNode
  • Добавляет новый дочерний узел перед указанным узлом

DOMNode::insertBefore

(PHP 5, PHP 7)

DOMNode::insertBefore — Добавляет новый дочерний узел перед указанным узлом

Описание

public DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) : DOMNode

Данная функция вставляет новый узел перед указанным узлом. Чтобы вносить изменения в добавленный дочерний узел, необходимо использовать возвращаемый узел.

Список параметров

newnode

Новый узел.

refnode

Контрольный узел. Если отсутствует, то newnode добавляется в конец списка потомков.

Возвращаемые значения

Добавленный узел.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения или предыдущий родитель вставляемого узла доступен только для чтения.

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип узла не поддерживает потомков типа, который имеет узел newnode, или же если добавляемый узел является предком целевого узла или им самим.

DOM_WRONG_DOCUMENT_ERR

Возникает, если newnode создан в другом документе, отличном от того, в котором был создан этот узел.

DOM_NOT_FOUND

Возникает, если refnode не является дочерним узлом данного узла.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков


Проверяет, является ли указанный URI пространства имен узла пространством имен по умолчанию или нет

  • « DOMNode::insertBefore
  • DOMNode::isSameNode »
  • PHP Manual
  • DOMNode
  • Проверяет, является ли указанный URI пространства имен узла пространством имен по умолчанию или нет

DOMNode::isDefaultNamespace

(PHP 5, PHP 7)

DOMNode::isDefaultNamespace — Проверяет, является ли указанный URI пространства имен узла пространством имен по умолчанию или нет

Описание

public DOMNode::isDefaultNamespace ( string $namespaceURI ) : bool

Указывает, является ли namespaceURI пространством имен по умолчанию.

Список параметров

namespaceURI

URI пространства имен.

Возвращаемые значения

Возвращает TRUE, если namespaceURI является пространством имен по умолчанию, FALSE в противном случае.


Указывает, являются ли два узла одним и тем же узлом

  • « DOMNode::isDefaultNamespace
  • DOMNode::isSupported »
  • PHP Manual
  • DOMNode
  • Указывает, являются ли два узла одним и тем же узлом

DOMNode::isSameNode

(PHP 5, PHP 7)

DOMNode::isSameNode — Указывает, являются ли два узла одним и тем же узлом

Описание

public DOMNode::isSameNode ( DOMNode $node ) : bool

Эта функция указывает, являются ли два узла одним и тем же узлом. Данное сравнение происходит не на основе содержимого узлов.

Список параметров

node

Сравниваемый узел.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Проверяет, поддерживается ли возможность в определенной версии

  • « DOMNode::isSameNode
  • DOMNode::lookupNamespaceUri »
  • PHP Manual
  • DOMNode
  • Проверяет, поддерживается ли возможность в определенной версии

DOMNode::isSupported

(PHP 5, PHP 7)

DOMNode::isSupported — Проверяет, поддерживается ли возможность в определенной версии

Описание

public DOMNode::isSupported ( string $feature , string $version ) : bool

Проверяет, поддерживается ли указанная возможность feature в определенной версии version.

Список параметров

feature

Проверяемая возможность. Список возможностей приведен в примере к DOMImplementation::hasFeature().

version

Номер версии (feature) для проверки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • DOMImplementation::hasFeature() - Проверка, реализована ли определенная возможность в реализации DOM


Получает URI пространства имен узла по префиксу

  • « DOMNode::isSupported
  • DOMNode::lookupPrefix »
  • PHP Manual
  • DOMNode
  • Получает URI пространства имен узла по префиксу

DOMNode::lookupNamespaceUri

(PHP 5, PHP 7)

DOMNode::lookupNamespaceUri — Получает URI пространства имен узла по префиксу

Описание

public DOMNode::lookupNamespaceUri ( string $prefix ) : string

Получает URI пространства имен узла на основе префикса prefix.

Список параметров

prefix

Префикс пространства имен.

Возвращаемые значения

URI пространства имен узла.

Смотрите также

  • DOMNode::lookupPrefix() - Возвращает префикс пространства имен узла из URI пространства имен


Возвращает префикс пространства имен узла из URI пространства имен

  • « DOMNode::lookupNamespaceUri
  • DOMNode::normalize »
  • PHP Manual
  • DOMNode
  • Возвращает префикс пространства имен узла из URI пространства имен

DOMNode::lookupPrefix

(PHP 5, PHP 7)

DOMNode::lookupPrefix — Возвращает префикс пространства имен узла из URI пространства имен

Описание

public DOMNode::lookupPrefix ( string $namespaceURI ) : string

Возвращает префикс пространства имен узла на основе URI пространства имен.

Список параметров

namespaceURI

URI пространства имен.

Возвращаемые значения

Префикс пространства имен.

Смотрите также

  • DOMNode::lookupNamespaceUri() - Получает URI пространства имен узла по префиксу


Нормализует узел

  • « DOMNode::lookupPrefix
  • DOMNode::removeChild »
  • PHP Manual
  • DOMNode
  • Нормализует узел

DOMNode::normalize

(PHP 5, PHP 7)

DOMNode::normalize — Нормализует узел

Описание

public DOMNode::normalize ( void ) : void

Удаляет пустые текстовые узлы и объединяет соседние текстовые узлы в этом узле и всех его дочерних узлов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • » Спецификация DOM
  • DOMDocument::normalizeDocument() - Нормализует документ


Удаляет дочерний узел из списка потомков

  • « DOMNode::normalize
  • DOMNode::replaceChild »
  • PHP Manual
  • DOMNode
  • Удаляет дочерний узел из списка потомков

DOMNode::removeChild

(PHP 5, PHP 7)

DOMNode::removeChild — Удаляет дочерний узел из списка потомков

Описание

public DOMNode::removeChild ( DOMNode $oldnode ) : DOMNode

Эта функция удаляет дочерний узел из списка потомков.

Список параметров

oldnode

Удаляемый дочерний узел.

Возвращаемые значения

Функция возвращает удаляемый дочерний узел, если он может быть удален.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

DOM_NOT_FOUND

Возникает, если oldnode не является дочерним узлом данного узла.

Примеры

Следующий пример удаляет элемент chapter (глава) из XML-документа.

Пример #1 Удаление дочернего узла

<?php

$doc = new DOMDocument;
$doc->load('book.xml');

$book = $doc->documentElement;

// находим главу (chapter) и удалям из книги (book)
$chapter = $book->getElementsByTagName('chapter')->item(0);
$oldchapter = $book->removeChild($chapter);

echo $doc->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="utf-8"?>
<!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::removeChild
  • DOMNodeList »
  • PHP Manual
  • DOMNode
  • Заменяет дочерний узел

DOMNode::replaceChild

(PHP 5, PHP 7)

DOMNode::replaceChild — Заменяет дочерний узел

Описание

public DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode ) : DOMNode

Функция заменяет дочерний узел oldnode новым узлом. Если узел newnode уже является дочерним, то он не будет добавлен во второй раз. Если замена прошла успешно, то будет возвращен старый (заменяемый) узел.

Список параметров

newnode

Новый узел. Должен быть частью целевого документа, то есть создан посредством одного из методов DOMDocument->createXXX() или импортирован в документ через DOMDocument::importNode.

oldnode

Старый узел.

Возвращаемые значения

Старый узел или FALSE в случае возникновения ошибки.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения или предыдущий родитель вставляемого узла доступен только для чтения.

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип узла не поддерживает потомков типа, который имеет узел newnode, или же если добавляемый узел является предком целевого узла или им самим.

DOM_WRONG_DOCUMENT_ERR

Возникает, если newnode создан в другом документе, отличном от того, в котором был создан этот узел.

DOM_NOT_FOUND

Возникает, если oldnode не является дочерним узлом данного узла.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMNode::removeChild() - Удаляет дочерний узел из списка потомков


Класс DOMNodeList

(PHP 5, PHP 7)

Обзор классов

DOMNodeList implements Traversable , Countable {
/* Свойства */
readonly public int $length ;
/* Методы */
public count ( void ) : int
item ( int $index ) : DOMNode
}

Свойства

length

Количество узлов в списке. Диапазон действительных индексов дочерних узлов находится в промежутке от 0 до length - 1 включительно.

Список изменений

Версия | Описание
7.2.0 | Реализован интерфейс Countable и возвращает значение свойства length.

Смотрите также

  • » Спецификация W3C по NodeList

Содержание

  • DOMNodeList::count — Получить количество узлов в списке
  • DOMNodeList::item — Получает узел с заданным индексом


Получить количество узлов в списке

  • « DOMNodeList
  • DOMNodeList::item »
  • PHP Manual
  • DOMNodeList
  • Получить количество узлов в списке

DOMNodeList::count

(PHP 7 >= 7.2.0)

DOMNodeList::count — Получить количество узлов в списке

Описание

public DOMNodeList::count ( void ) : int

Получает количество узлов в списке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество узлов в списке, который идентичен свойству length.


Получает узел с заданным индексом

  • « DOMNodeList::count
  • DOMNotation »
  • PHP Manual
  • DOMNodeList
  • Получает узел с заданным индексом

DOMNodeList::item

(PHP 5, PHP 7)

DOMNodeList::item — Получает узел с заданным индексом

Описание

DOMNodeList::item ( int $index ) : DOMNode

Извлекает узел с заданным индексом index из объекта класса DOMNodeList.

Подсказка

Если требуется узнать количество узлов в коллекции, используйте свойство length объекта класса DOMNodeList.

Список параметров

index

Индекс узла в коллекции.

Возвращаемые значения

Узел, находящийся в позиции index объекта DOMNodeList, или NULL, если этот индекс недопустим.

Примеры

Пример #1 Вывод содержимого таблицы

<?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";
}

?>

Кроме того, можно воспользоваться foreach;, что будет намного удобнее:

<?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


Класс DOMNotation

(PHP 5, PHP 7)

Обзор классов

DOMNotation extends DOMNode {
/* Свойства */
readonly public string $publicId ;
readonly public string $systemId ;
/* Наследуемые свойства */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Наследуемые методы */
public DOMNode::appendChild ( DOMNode $newnode ) : DOMNode
public DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] ) : string
public DOMNode::C14NFile ( string $uri [, bool $exclusive = FALSE [, bool $with_comments = FALSE [, array $xpath [, array $ns_prefixes ]]]] ) : int
public DOMNode::cloneNode ([ bool $deep ] ) : DOMNode
public DOMNode::getLineNo ( void ) : int
public DOMNode::getNodePath ( void ) : string
public DOMNode::hasAttributes ( void ) : bool
public DOMNode::hasChildNodes ( void ) : bool
public DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) : DOMNode
public DOMNode::isDefaultNamespace ( string $namespaceURI ) : bool
public DOMNode::isSameNode ( DOMNode $node ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespaceURI ) : string
public DOMNode::normalize ( void ) : void
public DOMNode::removeChild ( DOMNode $oldnode ) : DOMNode
public DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode ) : DOMNode
}

Свойства

publicId

systemId


Класс DOMProcessingInstruction

(PHP 5, PHP 7)

Обзор классов

DOMProcessingInstruction extends DOMNode {
/* Свойства */
readonly public string $target ;
public string $data ;
/* Наследуемые свойства */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Методы */
public __construct ( string $name [, string $value ] )
/* Наследуемые методы */
public DOMNode::appendChild ( DOMNode $newnode ) : DOMNode
public DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] ) : string
public DOMNode::C14NFile ( string $uri [, bool $exclusive = FALSE [, bool $with_comments = FALSE [, array $xpath [, array $ns_prefixes ]]]] ) : int
public DOMNode::cloneNode ([ bool $deep ] ) : DOMNode
public DOMNode::getLineNo ( void ) : int
public DOMNode::getNodePath ( void ) : string
public DOMNode::hasAttributes ( void ) : bool
public DOMNode::hasChildNodes ( void ) : bool
public DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) : DOMNode
public DOMNode::isDefaultNamespace ( string $namespaceURI ) : bool
public DOMNode::isSameNode ( DOMNode $node ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespaceURI ) : string
public DOMNode::normalize ( void ) : void
public DOMNode::removeChild ( DOMNode $oldnode ) : DOMNode
public DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode ) : DOMNode
}

Свойства

target

data

Содержание

  • DOMProcessingInstruction::__construct — Создает новый объект класса DOMProcessingInstruction


Создает новый объект класса DOMProcessingInstruction

  • « DOMProcessingInstruction
  • DOMText »
  • PHP Manual
  • DOMProcessingInstruction
  • Создает новый объект класса DOMProcessingInstruction

DOMProcessingInstruction::__construct

(PHP 5, PHP 7)

DOMProcessingInstruction::__construct — Создает новый объект класса DOMProcessingInstruction

Описание

public DOMProcessingInstruction::__construct ( string $name [, string $value ] )

Создает новый объект класса DOMProcessingInstruction. Этот объект будет доступен только для чтения. Он может быть добавлен в документ. Дополнительные узлы нельзя прикрепить к этому объекту, пока он присоединен к какому-либо документу. Для создания модифицируемого узла используйте DOMDocument::createProcessingInstruction.

Список параметров

name

Имя инструкции для обработчика.

value

Значение инструкции для обработчика.

Примеры

Пример #1 Создание объекта класса 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() - Создать новый PI-узел


Класс DOMText

(PHP 5, PHP 7)

Введение

Класс DOMText наследуется от DOMCharacterData и представляет текстовое содержимое DOMElement или DOMAttr.

Обзор классов

DOMText extends DOMCharacterData {
/* Свойства */
readonly public string $wholeText ;
/* Наследуемые свойства */
public string $data ;
readonly public int $length ;
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Методы */
public __construct ([ string $value ] )
public isElementContentWhitespace ( void ) : bool
public isWhitespaceInElementContent ( void ) : bool
public splitText ( int $offset ) : DOMText
/* Наследуемые методы */
public DOMCharacterData::appendData ( string $data ) : void
public DOMCharacterData::deleteData ( int $offset , int $count ) : void
public DOMCharacterData::insertData ( int $offset , string $data ) : void
public DOMCharacterData::replaceData ( int $offset , int $count , string $data ) : void
public DOMCharacterData::substringData ( int $offset , int $count ) : string
public DOMNode::appendChild ( DOMNode $newnode ) : DOMNode
public DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] ) : string
public DOMNode::C14NFile ( string $uri [, bool $exclusive = FALSE [, bool $with_comments = FALSE [, array $xpath [, array $ns_prefixes ]]]] ) : int
public DOMNode::cloneNode ([ bool $deep ] ) : DOMNode
public DOMNode::getLineNo ( void ) : int
public DOMNode::getNodePath ( void ) : string
public DOMNode::hasAttributes ( void ) : bool
public DOMNode::hasChildNodes ( void ) : bool
public DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] ) : DOMNode
public DOMNode::isDefaultNamespace ( string $namespaceURI ) : bool
public DOMNode::isSameNode ( DOMNode $node ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespaceURI ) : string
public DOMNode::normalize ( void ) : void
public DOMNode::removeChild ( DOMNode $oldnode ) : DOMNode
public DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode ) : DOMNode
}

Свойства

wholeText

Содержит весь текст смежных (не разделенные другими элементами, комментариями или инструкциями) текстовых узлов.

Содержание

  • DOMText::__construct — Создает объект класса DOMText
  • DOMText::isElementContentWhitespace — Возвращает, содержит ли текстовый узел пробел в содержимом элемента
  • DOMText::isWhitespaceInElementContent — Определяет, содержит ли текстовый узел пробелы в содержимом
  • DOMText::splitText — Разделяет узел на два, начиная с заданной позиции


Создает объект класса DOMText

  • « DOMText
  • DOMText::isElementContentWhitespace »
  • PHP Manual
  • DOMText
  • Создает объект класса DOMText

DOMText::__construct

(PHP 5, PHP 7)

DOMText::__construct — Создает объект класса DOMText

Описание

public DOMText::__construct ([ string $value ] )

Создает новый экземпляр класса DOMText.

Список параметров

value

Значение текстового узла. Если значение не передано, будет создан пустой текстовый узел.

Примеры

Пример #1 Создание нового узла 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() - Создать новый текстовый узел


Возвращает, содержит ли текстовый узел пробел в содержимом элемента

  • « DOMText::__construct
  • DOMText::isWhitespaceInElementContent »
  • PHP Manual
  • DOMText
  • Возвращает, содержит ли текстовый узел пробел в содержимом элемента

DOMText::isElementContentWhitespace

(Информация о версии неизвестна, возможно, только в Git)

DOMText::isElementContentWhitespace — Возвращает, содержит ли текстовый узел пробел в содержимом элемента

Описание

public DOMText::isElementContentWhitespace ( void ) : bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Определяет, содержит ли текстовый узел пробелы в содержимом

  • « DOMText::isElementContentWhitespace
  • DOMText::splitText »
  • PHP Manual
  • DOMText
  • Определяет, содержит ли текстовый узел пробелы в содержимом

DOMText::isWhitespaceInElementContent

(PHP 5, PHP 7)

DOMText::isWhitespaceInElementContent — Определяет, содержит ли текстовый узел пробелы в содержимом

Описание

public DOMText::isWhitespaceInElementContent ( void ) : bool

Определяет, есть ли пробелы в содержимом текстового узла или он пустой. Текстовые узлы могут содержать пробелы в своем содержимом во время загрузки документа.

Возвращаемые значения

Возвращает TRUE, если узел состоит только из нуля или более пробелов. Возвращает FALSE в противном случае.


Разделяет узел на два, начиная с заданной позиции

  • « DOMText::isWhitespaceInElementContent
  • DOMXPath »
  • PHP Manual
  • DOMText
  • Разделяет узел на два, начиная с заданной позиции

DOMText::splitText

(PHP 5, PHP 7)

DOMText::splitText — Разделяет узел на два, начиная с заданной позиции

Описание

public DOMText::splitText ( int $offset ) : DOMText

Разделяет узел на два, вторая часть начинается с позиции offset, полученные узлы становятся братьями.

После разделения исходный узел будет содержать данные до позиции offset. Если исходный узел имеет родителя, то второй, созданный, узел станет следующим братом исходного узла. Если offset равно длине содержимого узла, новый узел все равно будет создан, но не будет содержать данных.

Список параметров

offset

Позиция, с которой узел будет разделен, начиная с 0.

Возвращаемые значения

Новый узел того же типа, содержащий данные до и после offset.


Класс DOMXPath

(PHP 5, PHP 7)

Введение

Поддерживает XPath 1.0

Обзор классов

DOMXPath {
/* Свойства */
public DOMDocument $document ;
/* Методы */
public __construct ( DOMDocument $doc )
public evaluate ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = TRUE ]] ) : mixed
public query ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = TRUE ]] ) : DOMNodeList
public registerNamespace ( string $prefix , string $namespaceURI ) : bool
public registerPhpFunctions ([ mixed $restrict ] ) : void
}

Свойства

document

Содержание

  • DOMXPath::__construct — Создает новый объект класса DOMXPath
  • DOMXPath::evaluate — Вычисляет переданное выражение XPath и возвращает типизированный результат, если возможно
  • DOMXPath::query — Выполняет заданное выражение XPath
  • DOMXPath::registerNamespace — Регистрирует пространство имен с объектом DOMXPath
  • DOMXPath::registerPhpFunctions — Регистрация PHP-функций как функций XPath


Создает новый объект класса DOMXPath

  • « DOMXPath
  • DOMXPath::evaluate »
  • PHP Manual
  • DOMXPath
  • Создает новый объект класса DOMXPath

DOMXPath::__construct

(PHP 5, PHP 7)

DOMXPath::__construct — Создает новый объект класса DOMXPath

Описание

public DOMXPath::__construct ( DOMDocument $doc )

Создает новый объект класса DOMXPath.

Список параметров

doc

Объект класса DOMDocument, связанный с DOMXPath.


Вычисляет переданное выражение XPath и возвращает типизированный результат, если возможно

  • « DOMXPath::__construct
  • DOMXPath::query »
  • PHP Manual
  • DOMXPath
  • Вычисляет переданное выражение XPath и возвращает типизированный результат, если возможно

DOMXPath::evaluate

(PHP 5 >= 5.1.0, PHP 7)

DOMXPath::evaluate — Вычисляет переданное выражение XPath и возвращает типизированный результат, если возможно

Описание

public DOMXPath::evaluate ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = TRUE ]] ) : mixed

Выполняет переданное выражение XPath expression и возвращает типизированный результат, если это возможно.

Список параметров

expression

Выражение XPath для выполнения.

contextnode

Дополнительный параметр contextnode может быть указан для выполнения относительных запросов XPath. По умолчанию запросы выполняются относительно корневого элемента.

registerNodeNS

Дополнительный параметр registerNodeNS можно указать, чтобы отключить автоматическую регистрацию контекста узла.

Возвращаемые значения

Возвращает типизированный результат, если это возможно, либо объект DOMNodeList, содержащий все узлы, соответствующие заданному XPath-выражению expression.

Если expression построено неправильно или contextnode имеет неверное значение, DOMXPath::evaluate() вернет FALSE.

Список изменений

Версия | Описание
5.3.3 | Добавлен аргумент registerNodeNS.

Примеры

Пример #1 Получение количества всех английских книг

<?php

$doc = new DOMDocument;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// запрос относительно узла tbody
$query = 'count(row/entry[. = "en"])';

$entries = $xpath->evaluate($query, $tbody);
echo "Есть $entries английские книги\n";

?>

Результат выполнения данного примера:

Есть 2 английские книги

Смотрите также

  • DOMXPath::query() - Выполняет заданное выражение XPath


Выполняет заданное выражение XPath

  • « DOMXPath::evaluate
  • DOMXPath::registerNamespace »
  • PHP Manual
  • DOMXPath
  • Выполняет заданное выражение XPath

DOMXPath::query

(PHP 5, PHP 7)

DOMXPath::query — Выполняет заданное выражение XPath

Описание

public DOMXPath::query ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = TRUE ]] ) : DOMNodeList

Выполняет заданное XPath-выражение expression.

Список параметров

expression

Выражение XPath для выполнения.

contextnode

Дополнительный параметр contextnode может быть указан для выполнения относительных запросов XPath. По умолчанию запросы выполняются относительно корневого элемента.

registerNodeNS

Дополнительный параметр registerNodeNS можно указать, чтобы отключить автоматическую регистрацию контекста узла.

Возвращаемые значения

Возвращает объект DOMNodeList, содержащий узлы, соответствующие выражению XPath expression. Любое выражение, не возвращающее узлы, вернет пустой объект DOMNodeList.

Если expression построено неправильно или contextnode имеет неверное значение, DOMXPath::query() вернет FALSE.

Список изменений

Версия | Описание
5.3.3 | Добавлен аргумент registerNodeNS.

Примеры

Пример #1 Получение списка всех книг на английском

<?php

$doc = new DOMDocument;

// Не хотим возиться с пробелами
$doc->preserveWhiteSpace = false;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Начинаем с корневого элемента
$query = '//book/chapter/para/informaltable/tgroup/tbody/row/entry[. = "en"]';

$entries = $xpath->query($query);

foreach ($entries as $entry) {
    echo "Найдена книга {$entry->previousSibling->previousSibling->nodeValue}," .
         " автор {$entry->previousSibling->nodeValue}\n";
}
?>

Результат выполнения данного примера:

Найдена книга The Grapes of Wrath, автор John Steinbeck
Найдена книга The Pearl, автор John Steinbeck

Можно также использовать параметр contextnode для более короткой записи выражения:

<?php

$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// запрос относительно узла tbody
$query = 'row/entry[. = "en"]';

$entries = $xpath->query($query, $tbody);

foreach ($entries as $entry) {
    echo "Найдена книга {$entry->previousSibling->previousSibling->nodeValue}," .
         " автор {$entry->previousSibling->nodeValue}\n";
}
?>

Смотрите также

  • DOMXPath::evaluate() - Вычисляет переданное выражение XPath и возвращает типизированный результат, если возможно


Регистрирует пространство имен с объектом DOMXPath

  • « DOMXPath::query
  • DOMXPath::registerPhpFunctions »
  • PHP Manual
  • DOMXPath
  • Регистрирует пространство имен с объектом DOMXPath

DOMXPath::registerNamespace

(PHP 5, PHP 7)

DOMXPath::registerNamespace — Регистрирует пространство имен с объектом DOMXPath

Описание

public DOMXPath::registerNamespace ( string $prefix , string $namespaceURI ) : bool

Регистрирует URI пространства имен namespaceURI и префикс prefix с объектом DOMXPath.

Список параметров

prefix

Префикс.

namespaceURI

URI пространства имен.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Регистрация PHP-функций как функций XPath

  • « DOMXPath::registerNamespace
  • Функции DOM »
  • PHP Manual
  • DOMXPath
  • Регистрация PHP-функций как функций XPath

DOMXPath::registerPhpFunctions

(PHP 5 >= 5.3.0, PHP 7)

DOMXPath::registerPhpFunctions — Регистрация PHP-функций как функций XPath

Описание

public DOMXPath::registerPhpFunctions ([ mixed $restrict ] ) : void

Этот метод позволяет использовать PHP-функции в выражениях XPath.

Список параметров

restrict

Используйте этот параметр, чтобы разрешить использование только определенных функций в выражениях XPath.

Этот параметр может иметь тип string (имя функции) или array (массив имен функций).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

В следующих примерах используется файл book.xml, который содержит следующее:

Пример #1 book.xml

<?xml version="1.0" encoding="UTF-8"?>
<books>
 <book>
  <title>PHP Basics</title>
  <author>Jim Smith</author>
  <author>Jane Smith</author>
 </book>
 <book>
  <title>PHP Secrets</title>
  <author>Jenny Smythe</author>
 </book>
 <book>
  <title>XML basics</title>
  <author>Joe Black</author>
 </book>
</books>

Пример #2 DOMXPath::registerPHPFunctions() с php:functionString

<?php
$doc = new DOMDocument;
$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Регистрация PHP: пространство имен (обязательно)
$xpath->registerNamespace("php", "http://php.net/xpath");

// Регистрация функций PHP (без ограничений)
$xpath->registerPHPFunctions();

// Вызов функции substr для названия книги
$nodes = $xpath->query('//book[php:functionString("substr", title, 0, 3) = "PHP"]');

echo "Найдены {$nodes->length} книги, начинающиеся с 'PHP':\n";
foreach ($nodes as $node) {
    $title  = $node->getElementsByTagName("title")->item(0)->nodeValue;
    $author = $node->getElementsByTagName("author")->item(0)->nodeValue;
    echo "$title автора $author\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Найдены 2 книги, начинающиеся с 'PHP':
PHP Basics автора Jim Smith
PHP Secrets автора Jenny Smythe

Пример #3 DOMXPath::registerPHPFunctions() с php:function

<?php
$doc = new DOMDocument;
$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Регистрация PHP: пространство имен (обязательно)
$xpath->registerNamespace("php", "http://php.net/xpath");

// Регистрация PHP-функций (только has_multiple)
$xpath->registerPHPFunctions("has_multiple");

function has_multiple($nodes) {
    // Возвращает true, если более одного автора
    return count($nodes) > 1;
}
// Фильтр книг с двумя и более авторами
$books = $xpath->query('//book[php:function("has_multiple", author)]');

echo "Книги с двумя и более авторами:\n";
foreach ($books as $book) {
    echo $book->getElementsByTagName("title")->item(0)->nodeValue . "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Книги с двумя и более авторами:
PHP Basics

Смотрите также

  • DOMXPath::registerNamespace() - Регистрирует пространство имен с объектом DOMXPath
  • DOMXPath::query() - Выполняет заданное выражение XPath
  • DOMXPath::evaluate() - Вычисляет переданное выражение XPath и возвращает типизированный результат, если возможно


Функции DOM

Содержание

  • dom_import_simplexml — Получает объект класса DOMElement из объекта класса SimpleXMLElement


Получает объект класса DOMElement из объекта класса SimpleXMLElement

  • « Функции DOM
  • libxml »
  • PHP Manual
  • Функции DOM
  • Получает объект класса DOMElement из объекта класса SimpleXMLElement

dom_import_simplexml

(PHP 5, PHP 7)

dom_import_simplexml — Получает объект класса DOMElement из объекта класса SimpleXMLElement

Описание

dom_import_simplexml ( SimpleXMLElement $node ) : DOMElement

Эта функция берет узел node класса SimpleXML и превращает его в узел DOMElement. Затем этот новый объект может быть использован как собственный узел DOMElement.

Список параметров

node

Узел SimpleXMLElement.

Возвращаемые значения

Добавленный узел DOMElement или FALSE в случае возникновения любых ошибок.

Примеры

Пример #1 Импорт SimpleXML в DOM с помощью функции dom_import_simplexml()

<?php

$sxe = simplexml_load_string('<books><book><title>чепуха</title></book></books>');

if ($sxe === false) {
    echo 'Ошибка при разборе документа';
    exit;
}

$dom_sxe = dom_import_simplexml($sxe);
if (!$dom_sxe) {
    echo 'Ошибка при преобразовании 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() - Получает объект класса SimpleXMLElement из узла DOM


libxml

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • libXMLError — Класс libXMLError
  • Функции libxml
    • libxml_clear_errors — Очистка буфера ошибок libxml
    • libxml_disable_entity_loader — Отключение возможности загрузки сущностей из внешних источников
    • libxml_get_errors — Получение массива произошедших ошибок
    • libxml_get_last_error — Извлечение последней ошибки из libxml
    • libxml_set_external_entity_loader — Изменение загрузчика по умолчанию для внешних объектов
    • libxml_set_streams_context — Установка контекста потоков для следующей загрузки или записи документа посредством libxml
    • libxml_use_internal_errors — Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю


Введение

Эти функции/константы доступны, начиная с PHP 5.1.0, следующие расширения ядра полагаются на это расширение libxml: DOM, libxml, SimpleXML, SOAP, WDDX, XSL, XML, XMLReader, XMLRPC и XMLWriter.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Это расширение требует для работы » libxml >= 2.6.0.


Установка

Расширение libxml включено по умолчанию, но может быть отключено посредством директивы --disable-libxml .

Необязательная директива --with-libxml-dir используется для задания расположения libxml в системах, на которых PHP скомпилирован, если не директива не используется, поиск будет производиться только по стандартным путям. Процесс configure производит поиск libxml (особенно, xml2-config) по путям в следующем порядке:

  1. Расположение ([DIR]), указанное с помощью директивы --with-libxml-dir ([DIR]=/bin/xml2-config)

  2. /usr/local/bin/xml2-config

  3. /usr/bin/xml2-config

Если configure не найдет xml2-config в директории, заданной директивой --with-libxml-dir , он продолжит поиск по стандартным путям.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

LIBXML_BIGLINES (integer)
Позволяет корректно сообщать о номерах строк больше 65535.

Замечание:

Доступно начиная с PHP 7.0.0 с Libxml >= 2.9.0

LIBXML_COMPACT (integer)
Активирует оптимизацию выделения памяти для небольших узлов. Это может повысить быстродействие приложения без внесения изменений в коде.

Замечание:

Доступна только в Libxml >= 2.6.21

LIBXML_DTDATTR (integer)
DTD-атрибуты по умолчанию
LIBXML_DTDLOAD (integer)
Загрузка внешнего подмножества
LIBXML_DTDVALID (integer)
Проверка корректности документа с помощью DTD
LIBXML_HTML_NOIMPLIED (integer)
Устанавливает флаг HTML_PARSE_NOIMPLIED, который отключает автоматическое добавление недостающих html/body... элементов.

Замечание:

Доступно только в Libxml >= 2.7.7 (начиная с PHP >= 5.4.0)

LIBXML_HTML_NODEFDTD (integer)
Устанавливает флаг HTML_PARSE_NODEFDTD, который предотвращает добавление стандартного doctype, если он не был найден.

Замечание:

Доступно только в Libxml >= 2.7.8 (начиная с >= 5.4.0)

LIBXML_NOBLANKS (integer)
Удаление пустых узлов
LIBXML_NOCDATA (integer)
Объединить CDATA как текстовые узлы
LIBXML_NOEMPTYTAG (integer)
Разворачивать пустые теги (например, <br/> в <br></br>)

Замечание:

Эта настройка доступна на данный момент только в функциях DOMDocument::save и DOMDocument::saveXML.

LIBXML_NOENT (integer)
Замещение сущностей
LIBXML_NOERROR (integer)
Запретить отчеты об ошибках
LIBXML_NONET (integer)
Отключить доступ к сети во время загрузки документов
LIBXML_NOWARNING (integer)
Запретить предупреждения
LIBXML_NOXMLDECL (integer)
Убрать объявление XML при сохранении документа

Замечание:

Доступна только в Libxml >= 2.6.21

LIBXML_NSCLEAN (integer)
Удалить лишние объявления пространств имен
LIBXML_PARSEHUGE (integer)
Установить флаг XML_PARSE_HUGE, который отключает жестко заданный лимит в парсере. Это затрагивает как лимиты максимальной глубины документа или рекурсии элементов, так и лимиты размеров текстовых элементов.

Замечание:

Доступно только в Libxml >= 2.7.0 (начиная с PHP >= 5.3.2 и PHP >= 5.2.12)

LIBXML_PEDANTIC (integer)
Устанавливает флаг XML_PARSE_PEDANTIC, который включает педантичный отчет об ошибках.

Замечание:

Доступно с PHP >= 5.4.0

LIBXML_XINCLUDE (integer)
Реализовать замещение XInclude
LIBXML_ERR_ERROR (integer)
Устранимая ошибка
LIBXML_ERR_FATAL (integer)
Фатальная ошибка
LIBXML_ERR_NONE (integer)
Нет ошибок
LIBXML_ERR_WARNING (integer)
Простое предупреждение
LIBXML_VERSION (integer)
Версия libxml в виде 20605 или 20617
LIBXML_DOTTED_VERSION (string)
Версия libxml в виде 2.6.5 или 2.6.17
LIBXML_SCHEMA_CREATE (integer)
Создает со значением по умолчанию или фиксированные узлы при проверке схемы XSD

Замечание:

Доступно только в Libxml >= 2.6.14 (в PHP >= 5.5.2)


Класс libXMLError

(PHP 5 >= 5.1.0, PHP 7)

Введение

Содержит различную информацию об ошибках, выбрасываемых libxml. Коды ошибок описаны в официальной » xmlError API документации.

Обзор классов

libXMLError {
/* Свойства */
public int $level ;
public int $code ;
public int $column ;
public string $message ;
public string $file ;
public int $line ;
}

Свойства

level

Важность ошибки (одна из следующих констант: LIBXML_ERR_WARNING, LIBXML_ERR_ERROR или LIBXML_ERR_FATAL)

code

Код ошибки

column

Столбец, в котором произошла ошибка.

Замечание:

Это свойство реализовано в libxml не до конца, поэтому в большинстве случаев будет возвращаться 0.

message

Сообщение об ошибке, если есть.

file

Имя файла либо пустая строка, если XML загружался из строки.

line

Строка, в которой произошла ошибка.


Функции libxml

Содержание

  • libxml_clear_errors — Очистка буфера ошибок libxml
  • libxml_disable_entity_loader — Отключение возможности загрузки сущностей из внешних источников
  • libxml_get_errors — Получение массива произошедших ошибок
  • libxml_get_last_error — Извлечение последней ошибки из libxml
  • libxml_set_external_entity_loader — Изменение загрузчика по умолчанию для внешних объектов
  • libxml_set_streams_context — Установка контекста потоков для следующей загрузки или записи документа посредством libxml
  • libxml_use_internal_errors — Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю


Очистка буфера ошибок libxml

  • « Функции libxml
  • libxml_disable_entity_loader »
  • PHP Manual
  • Функции libxml
  • Очистка буфера ошибок libxml

libxml_clear_errors

(PHP 5 >= 5.1.0, PHP 7)

libxml_clear_errors — Очистка буфера ошибок libxml

Описание

libxml_clear_errors ( void ) : void

libxml_clear_errors() очищает буфер ошибок libxml.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • libxml_get_errors() - Получение массива произошедших ошибок
  • libxml_get_last_error() - Извлечение последней ошибки из libxml


Отключение возможности загрузки сущностей из внешних источников

  • « libxml_clear_errors
  • libxml_get_errors »
  • PHP Manual
  • Функции libxml
  • Отключение возможности загрузки сущностей из внешних источников

libxml_disable_entity_loader

(PHP 5 >= 5.2.11, PHP 7)

libxml_disable_entity_loader — Отключение возможности загрузки сущностей из внешних источников

Описание

libxml_disable_entity_loader ([ bool $disable = TRUE ] ) : bool

Отключение/включение возможности загружать внешние сущности.

Список параметров

disable

Отключение (TRUE) или включение (FALSE) расширений libxml (таких как DOM, XMLWriter и XMLReader) для загрузки внешних сущностей.

Возвращаемые значения

Возвращает предыдущее значение.

Смотрите также

  • libxml_use_internal_errors() - Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю
  • Константа LIBXML_NONET


Получение массива произошедших ошибок

  • « libxml_disable_entity_loader
  • libxml_get_last_error »
  • PHP Manual
  • Функции libxml
  • Получение массива произошедших ошибок

libxml_get_errors

(PHP 5 >= 5.1.0, PHP 7)

libxml_get_errors — Получение массива произошедших ошибок

Описание

libxml_get_errors ( void ) : array

Получение массива произошедших ошибок.

Возвращаемые значения

Возвращает массив объектов LibXMLError, если в буфере есть ошибки, либо пустой массив в противном случае.

Примеры

Пример #1 Пример использования libxml_get_errors()

Этот пример демонстрирует, как создать простой обработчик ошибок libxml.

<?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 === false) {
    $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: 46

--------------------------------------------

Смотрите также

  • libxml_get_last_error() - Извлечение последней ошибки из libxml
  • libxml_clear_errors() - Очистка буфера ошибок libxml


Извлечение последней ошибки из libxml

  • « libxml_get_errors
  • libxml_set_external_entity_loader »
  • PHP Manual
  • Функции libxml
  • Извлечение последней ошибки из libxml

libxml_get_last_error

(PHP 5 >= 5.1.0, PHP 7)

libxml_get_last_error — Извлечение последней ошибки из libxml

Описание

libxml_get_last_error ( void ) : LibXMLError

Извлечение последней ошибки из libxml.

Возвращаемые значения

Возвращает объект LibXMLError, если в буфере есть ошибки, либо FALSE в противном случае.

Смотрите также

  • libxml_get_errors() - Получение массива произошедших ошибок
  • libxml_clear_errors() - Очистка буфера ошибок libxml


Изменение загрузчика по умолчанию для внешних объектов

  • « libxml_get_last_error
  • libxml_set_streams_context »
  • PHP Manual
  • Функции libxml
  • Изменение загрузчика по умолчанию для внешних объектов

libxml_set_external_entity_loader

(PHP 5 >= 5.4.0, PHP 7)

libxml_set_external_entity_loader — Изменение загрузчика по умолчанию для внешних объектов

Описание

libxml_set_external_entity_loader ( callable $resolver_function ) : bool

Изменение загрузчика по умолчанию для внешних объектов.

Список параметров

resolver_function

Функция обратного вызова (callable), принимающая три аргумента. Две строки, публичный и системный идентификаторы и контекст (массив с четырьмя ключами). Эта функция должна возвращать ресурс, строку, из которой этот ресурс можно открыть, или NULL.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования libxml_set_external_entity_loader()

<?php
$xml = <<<XML
<!DOCTYPE foo PUBLIC "-//FOO/BAR" "http://example.com/foobar">
<foo>bar</foo>
XML;

$dtd = <<<DTD
<!ELEMENT foo (#PCDATA)>
DTD;

libxml_set_external_entity_loader(
    function ($public, $system, $context) use($dtd) {
        var_dump($public);
        var_dump($system);
        var_dump($context);
        $f = fopen("php://temp", "r+");
        fwrite($f, $dtd);
        rewind($f);
        return $f;
    }
);

$dd = new DOMDocument;
$r  = $dd->loadXML($xml);

var_dump($dd->validate());
?>

Результат выполнения данного примера:

string(10) "-//FOO/BAR"
string(25) "http://example.com/foobar"
array(4) {
    ["directory"]    => NULL
    ["intSubName"]   => NULL
    ["extSubURI"]    => NULL
    ["extSubSystem"] => NULL
}
bool(true)

Смотрите также

  • libxml_disable_entity_loader() - Отключение возможности загрузки сущностей из внешних источников


Установка контекста потоков для следующей загрузки или записи документа посредством libxml

  • « libxml_set_external_entity_loader
  • libxml_use_internal_errors »
  • PHP Manual
  • Функции libxml
  • Установка контекста потоков для следующей загрузки или записи документа посредством libxml

libxml_set_streams_context

(PHP 5, PHP 7)

libxml_set_streams_context — Установка контекста потоков для следующей загрузки или записи документа посредством libxml

Описание

libxml_set_streams_context ( resource $streams_context ) : void

Установка контекста потока для следующей загрузки или записи документа посредством libxml.

Список параметров

streams_context

Ресурс контекста потока (созданный функцией stream_context_create())

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования libxml_set_streams_context()

<?php

$opts = array(
    'http' => array(
        'user_agent' => 'PHP libxml agent',
    )
);

$context = stream_context_create($opts);
libxml_set_streams_context($context);

// загрузить файл через HTTP
$doc = DOMDocument::load('http://www.example.com/file.xml');

?>

Смотрите также

  • stream_context_create() - Создаёт контекст потока


Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю

  • « libxml_set_streams_context
  • SDO »
  • PHP Manual
  • Функции libxml
  • Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю

libxml_use_internal_errors

(PHP 5 >= 5.1.0, PHP 7)

libxml_use_internal_errors — Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю

Описание

libxml_use_internal_errors ([ bool $use_errors = FALSE ] ) : bool

libxml_use_internal_errors() позволяет отключить стандартные ошибки libxml и включить пользовательскую обработку ошибок.

Список параметров

use_errors

Включает (TRUE) пользовательскую обработку ошибок или отключает ее (FALSE). Отключение также очищает все текущие ошибки libxml.

Возвращаемые значения

Эта функция возвращает предыдущее значение параметра use_errors.

Примеры

Пример #1 Пример использования libxml_use_internal_errors()

Этот пример демонстрирует основное использование ошибок libxml и значение, которое возвращает эта функция.

<?php

// включение обработки ошибок пользователем
var_dump(libxml_use_internal_errors(true));

// загрузка документа
$doc = new DOMDocument;

if (!$doc->load('file.xml')) {
    foreach (libxml_get_errors() as $error) {
        // обработка ошибок здесь
    }

    libxml_clear_errors();
}

?>

Результат выполнения данного примера:

bool(false)

Смотрите также

  • libxml_clear_errors() - Очистка буфера ошибок libxml
  • libxml_get_errors() - Получение массива произошедших ошибок


Service Data Objects

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Limitations
  • Примеры
    • Basic usage
    • Setting and Getting Property Values
    • Working with Sequenced Data Objects
    • Reflecting on Service Data Objects
  • SDO Функции
    • 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::getSequence — Get the sequence for a data object
    • SDO_DataObject::getTypeName — Return the name of the type for a data object
    • SDO_DataObject::getTypeNamespaceURI — Return the namespace URI of the type for a data object
    • SDO_Exception::getCause — Get the cause of the exception
    • SDO_List::insert — Insert into a list
    • SDO_Model_Property::getContainingType — Get the SDO_Model_Type which contains this property
    • SDO_Model_Property::getDefault — Get the default value for the property
    • SDO_Model_Property::getName — Get the name of the SDO_Model_Property
    • SDO_Model_Property::getType — Get the SDO_Model_Type of the property
    • SDO_Model_Property::isContainment — Test to see if the property defines a containment relationship
    • SDO_Model_Property::isMany — Test to see if the property is many-valued
    • SDO_Model_ReflectionDataObject::__construct — Construct an SDO_Model_ReflectionDataObject
    • SDO_Model_ReflectionDataObject::export — Get a string describing the SDO_DataObject
    • SDO_Model_ReflectionDataObject::getContainmentProperty — Get the property which defines the containment relationship to the data object
    • SDO_Model_ReflectionDataObject::getInstanceProperties — Get the instance properties of the SDO_DataObject
    • SDO_Model_ReflectionDataObject::getType — Get the SDO_Model_Type for the SDO_DataObject
    • SDO_Model_Type::getBaseType — Get the base type for this type
    • SDO_Model_Type::getName — Get the name of the type
    • SDO_Model_Type::getNamespaceURI — Get the namespace URI of the type
    • SDO_Model_Type::getProperties — Get the SDO_Model_Property objects defined for the type
    • SDO_Model_Type::getProperty — Get an SDO_Model_Property of the type
    • SDO_Model_Type::isAbstractType — Test to see if this SDO_Model_Type is an abstract data type
    • SDO_Model_Type::isDataType — Test to see if this SDO_Model_Type is a primitive data type
    • SDO_Model_Type::isInstance — Test for an SDO_DataObject being an instance of this SDO_Model_Type
    • SDO_Model_Type::isOpenType — Test to see if this type is an open type
    • SDO_Model_Type::isSequencedType — Test to see if this is a sequenced type
    • SDO_Sequence::getProperty — Return the property for the specified sequence index
    • SDO_Sequence::insert — Insert into a sequence
    • SDO_Sequence::move — Move an item to another sequence position


Введение

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. It includes a version of the » Apache Tuscany SDO for C++ project.

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 relationships 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 relationship to 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.

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").

Each of these properties of a data object - containment relationships, non-containment references, or primitive properties - may be many-valued or single-valued. In the above examples, Departments is many-valued and the Company name is single-valued.

In PHP, each SDO data object is represented as a PHP object. The properties of the data object can be accessed using either object syntax or associative array syntax. We'll see some examples of this later.


Требования

The SDO extension requires PHP 5.1.0 or higher. It also requires the libxml2 library. Normally libxml2 will already be installed, but if not, it can be downloaded from » http://www.xmlsoft.org/.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/sca_sdo.

Замечание:

Earlier versions of the SDO extension required a separate shared library for the XML DAS. This is now obsolete and any references to php_sdo_das_xml.dll or sdo_das_xml.so should be removed from your php.ini.

Unix systems

  1. The three SDO components - the SDO core, the XML DAS and the Relational DAS - are packaged together with Service Component Architecture (SCA) into one PECL project, SCA_SDO, so you can download SCA and all three parts of SDO with the command:

    pecl install SCA_SDO

    This command will build the SDO shared library as well as installing the PHP files that make up SCA and the SDO Relational DAS.

    If you want to use the latest beta version, then instead run:

    pecl install SCA_SDO-beta

  2. The pecl command automatically installs the SDO module into your PHP extensions directory. To enable the SDO extension you must add the following line to php.ini:

    extension=sdo.so

    For more information about building PECL packages, consult the PECL installation section of the manual.

Building SDO on Linux

This section describes how to build the SDO core and XML DAS on Linux. You would only need to know how to do this if you wish to build a recent version that you have checked out of SVN.

  1. Change to the main extension directory: cd < wherever your sdo code is >

  2. Run phpize, which will set up the environment to compile SDO.

  3. Next, run ./configure; make; make install. Please note, you may need to login as root to install the extension.

  4. Make sure that the module is loaded by PHP, by adding extension=sdo.so to your php.ini file.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если 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'.


Limitations

Implementation Limitations

The following are limitations in the current SDO implementation:

  1. There is no support for multi-byte character sets. This will be considered, depending on community requirements, in a Unicode-enabled version of PHP.

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. Bi-directional relationships.

  2. Type and property alias names.

  3. Read-only properties.

  4. The Helper classes defined in SDO 2.0 are not directly implemented. However equivalent function is provided in a more natural way for PHP. For example the function of CopyHelper::copy() is provided by applying the PHP clone keyword to a data object.


Примеры

Содержание

  • Basic usage
  • Setting and Getting Property Values
  • Working with Sequenced Data Objects
  • Reflecting on Service Data Objects


Basic usage

The examples below assume an SDO created with the schema and instance information shown below, using the XML Data Access Service.

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="E0003">
  <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>

The root element of the schema is a company. The company contains departments, and each department contains employees. Each element has a number of attributes to store things like name, serial number, and so on. Finally, the company also has an IDREF attribute which identifies one of the employees 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 XML Data Access Service maps the schema to an SDO. Attributes such as "name" become primitive properties, the sequence of employees becomes a many-valued containment relationship, and so on. Note that the containment relationships are expressed as one complex type within another, whereas non-containment references are expressed in terms of ID and IDREF, with a special sdoxml:propertyType attribute specifying the type of the non-containment reference.


Setting and Getting Property Values

The following examples assume $company is the root of a tree of data objects created from the schema and instance document shown above.

Пример #1 Access via property name

Data object properties can be accessed using the object property access syntax. The following sets the company name to 'Acme'.

<?php
$company->name = 'Acme';
?>

Пример #2 Access via property name as array index

We can also access properties using associative array syntax. The simplest form of this uses the property name as the array index. For example, the following sets the company name and gets the employeeOfTheMonth.

<?php
$company['name'] = 'UltraCorp';
$eotm = $company['employeeOfTheMonth'];
?>

Пример #3 Data Object iteration

We can iterate over the properties of a data object using foreach. The following iterates over the properties of the employee of the month.

<?php
  $eotm = $company->employeeOfTheMonth;
  foreach ($eotm as $name => $value) {
      echo "$name: $value\n";
  }
?>

which will output:

name: Jane Doe
SN: E0003

The 'manager' property is not output, because it has not been set.

Пример #4 Access many-valued property by name

Many-valued data object properties can also be accessed using the object property name syntax. The following gets the list of departments.

<?php
$departments = $company->departments;
?>

Пример #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 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.

Пример #7 Chained property access

We can chain property references on a single line. The following sets and gets the name of the first department.

<?php
  $company->departments[0]->name = 'Emerging Technologies';
  $dept_name = $company->departments[0]->name;
?>

Using the associative array syntax, this is equivalent to

<?php
  $company['departments'][0]['name'] = 'Emerging Technologies';
  $dept_name = $company['departments'][0]['name'];
?>

In either case, the dept_name variable is set to 'Emerging Technologies'.

Пример #8 XPath navigation

The associative array index can be an XPath-like expression. Valid expressions are defined by an augmented sub-set of XPath.

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 standard syntax is:

<?php
  $jane_doe = $company["departments[1]/employees[2]"];
?>

and the SDO XPath extension syntax is:

<?php
  $jane_doe = $company["departments.0/employees.1"];
?>

Both these examples get the second employee from the first department.

Пример #9 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]"];
?>

Пример #10 Creating child data objects

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 Technologies']"];
  $new_hire = $ad_tech_dept->createDataObject('employees');
  $new_hire->name = 'John Johnson';
  $new_hire->SN = 'E0005';
  $new_hire->manager = false;
?>

Пример #11 Unset a primitive property

We can use the isset() and unset() functions to test and remove items from the data object.

The following clears the name of the first department.

<?php
  unset($company->departments[0]->name);
?>

Пример #12 Unset a data object

unset can also be used to remove a data object from the tree. The following example shows John Jones leaving the company.

<?php
  unset($company->departments[0]->employees[0]);
?>

Пример #13 Unset a referenced data object

The following removes the 'employeeOfTheMonth' from the company. If this were a containment relationship 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);
  }
?>

Пример #14 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 company name attribute is the second company property (the SDO interface makes no distinction between XML attributes and elements). The following sets the company name to 'Acme', with the same result as Access via property name

<?php
  $company[1] = 'Acme';
?>

Using the index directly in this way is likely to be fragile. Normally the property name syntax should be preferred, but the property index may be required in special cases.


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.

Пример #1 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.

Пример #2 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];
?>

Пример #3 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) {
    // ...
}
?>

Пример #4 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];
?>

Пример #5 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)
  $letter_seq->insert('Smith', NULL, 1);

  // Append a lastName value to the sequence
  // value: 'Jones'
  // sequence index: NULL (append)
  // propertyIdentifier: 'lastName' (lastName property name)
  $letter_seq->insert('Jones', NULL, 'lastName');

  // Append unstructured text
  // value: 'Cancel Subscription.'
  // sequence index: absent (append)
  // propertyIdentifier: absent (unstructured text)
  $letter_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)
  $letter_seq->insert('Care of:', 1);
?>

Пример #6 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]);
  }
?>


Reflecting on Service Data Objects

SDOs have a knowledge of the structure they have been created to represent (the model). For example, a Company SDO created using the Company XML schema above would only be permitted to contain DepartmentType data objects which in turn could only contain EmployeeType data objects.

Sometimes it is useful to be able to access this model information at runtime. For example, this could be used to automatically generate a user interface for populating a data object. The model information is accessed using reflection.

Пример #1 Reflecting on a Data Object

The following example shows how we can reflect on an empty Employee data object.

<?php
  // Create the employee data object (e.g. from an XML Data Access Service)
  $employee = ...;
  $reflection = new SDO_Model_ReflectionDataObject($employee);
  print($reflection);
?>

Результат выполнения данного примера:

object(SDO_Model_ReflectionDataObject)#4 { - ROOT OBJECT - Type {
companyNS:EmployeeType[3] { commonj.sdo:String $name;
commonj.sdo:String $SN; commonj.sdo:Boolean $manager; } }

Using print on the SDO_Model_ReflectionDataObject writes out the data object's model. We can see from the output how the type companyNS:EmployeeType has three properties and we can see the names of the properties along with their types. Note, the primitive types are listed as SDO types (e.g. commonj.sdo namespace, String type). It is worth noting that this is the SDO model and when these are surfaced to an application they can be treated as the PHP equivalent types (e.g. string and boolean).

Пример #2 Accessing the type information

We can query the type information of a data object using reflection. The following example checks the type corresponds to a data object rather than a primitive and then iterates through the properties of the type, writing out the name of each property ($type and $property are SDO_Model_Type and SDO_Model_Property objects, respectively).

<?php
    // Create the employee data object (e.g. from an XML Data Access Service)
    $employee = ...;
    $reflection = new SDO_Model_ReflectionDataObject($employee);
    $type = $reflection->getType();
    if (! $type->isDataType()) {
        foreach ($type->getProperties() as $property) {
            print $property->getName() . "\n";
        }
    }
?>

Результат выполнения данного примера:

name
SN
manager


SDO Функции

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.
SDO_DAS_Relational | A PDO-based Data Access Service supporting reading/writing SDO to relational databases. Implements an optimistic concurrency policy for updates.

Предопределенные классы

SDO consists of three sets of interfaces. The first set covers those interfaces for use by typical SDO applications. These are identified by the package prefix 'SDO_'. The second set is those used to reflect on, and work with, the model of a data object. These are identified by the package prefix 'SDO_Model_'. Finally, the third set are those 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_Model_' and '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.

Методы

  • 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

  • getTypeName - get the name of the type for this data object

  • getTypeNamespaceURI - get the namespace URI of the type for 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.

Методы

  • getProperty - get the property 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_Exception

An SDO_Exception is thrown when the caller's request cannot be completed. The subclasses of SDO_Exception are:

  • SDO_PropertyNotSetException - the property specified exists but has not been set or does not have a default value

  • SDO_PropertyNotFoundException - the property specified is not part of the data object's type

  • SDO_TypeNotFoundException - the specified namespace URI or type name is unknown

  • SDO_InvalidConversionException - conversion between the types of the assignment is not possible

  • SDO_IndexOutOfBoundsException - the numeric index into a data object, sequence or list is not in the valid range

  • SDO_UnsupportedOperationException - the request cannot be completed because it is not allowed, for example an attempt to set a read-only property.

Методы

One method is added to those inherited from the built in Exception class:

  • getCause - get the cause of this SDO_Exception

SDO Reflection Application Programmer Interfaces

SDO_Model_ReflectionDataObject

The main interface used to reflect on a data object instance to obtain its model type and property information. It is designed to follow the reflection pattern introduced in PHP 5.

Конструктор

  • __construct - construct a new SDO_Model_ReflectionDataObject.

Методы

  • export - get a string describing the data object.

  • getType - get the SDO_Model_Type for the data object.

  • getInstanceProperties - get the instance properties of the data object.

  • getContainmentProperty - get the property which defines the containment relationship to the data object.

SDO_Model_Type

The interface through which a data object's type information can be retrieved. This interface can be used to find out the type name and namespace URI of the type, whether the type allow open content, and so on.

Методы

  • getName - get the name of the type.

  • getNamespaceURI - get the namespace URI of the type.

  • isInstance - test for a data object being an instance of the type.

  • getProperties - get the properties of the type.

  • getProperty - get a property of the type.

  • isDataType - test to see if this type is a primitive scalar type.

  • isSequencedType - test to see if this is a sequenced type.

  • isOpenType - test to see if this is an open type.

  • isAbstractType - test to see if this is an abstract type.

  • getBaseType - get the base type of this type (if one exists).

SDO_Model_Property

The interface through which a data object's property information can be retrieved. This interface can be used to find out the type of a property, whether a property has a default value, whether the property is contained or reference by its parent, its cardinality, and so on.

Методы

  • getName - get the name of the property.

  • getType - get the type of the property.

  • isMany - test to see if the property is many-valued.

  • isContainment - test to see if the property describes a containment relationship.

  • getContainingType - get the type which contains this property.

  • getDefault - get the default value for a property.

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

Содержание

  • 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::getSequence — Get the sequence for a data object
  • SDO_DataObject::getTypeName — Return the name of the type for a data object
  • SDO_DataObject::getTypeNamespaceURI — Return the namespace URI of the type for a data object
  • SDO_Exception::getCause — Get the cause of the exception
  • SDO_List::insert — Insert into a list
  • SDO_Model_Property::getContainingType — Get the SDO_Model_Type which contains this property
  • SDO_Model_Property::getDefault — Get the default value for the property
  • SDO_Model_Property::getName — Get the name of the SDO_Model_Property
  • SDO_Model_Property::getType — Get the SDO_Model_Type of the property
  • SDO_Model_Property::isContainment — Test to see if the property defines a containment relationship
  • SDO_Model_Property::isMany — Test to see if the property is many-valued
  • SDO_Model_ReflectionDataObject::__construct — Construct an SDO_Model_ReflectionDataObject
  • SDO_Model_ReflectionDataObject::export — Get a string describing the SDO_DataObject
  • SDO_Model_ReflectionDataObject::getContainmentProperty — Get the property which defines the containment relationship to the data object
  • SDO_Model_ReflectionDataObject::getInstanceProperties — Get the instance properties of the SDO_DataObject
  • SDO_Model_ReflectionDataObject::getType — Get the SDO_Model_Type for the SDO_DataObject
  • SDO_Model_Type::getBaseType — Get the base type for this type
  • SDO_Model_Type::getName — Get the name of the type
  • SDO_Model_Type::getNamespaceURI — Get the namespace URI of the type
  • SDO_Model_Type::getProperties — Get the SDO_Model_Property objects defined for the type
  • SDO_Model_Type::getProperty — Get an SDO_Model_Property of the type
  • SDO_Model_Type::isAbstractType — Test to see if this SDO_Model_Type is an abstract data type
  • SDO_Model_Type::isDataType — Test to see if this SDO_Model_Type is a primitive data type
  • SDO_Model_Type::isInstance — Test for an SDO_DataObject being an instance of this SDO_Model_Type
  • SDO_Model_Type::isOpenType — Test to see if this type is an open type
  • SDO_Model_Type::isSequencedType — Test to see if this is a sequenced type
  • SDO_Sequence::getProperty — Return the property for the specified sequence index
  • SDO_Sequence::insert — Insert into a sequence
  • SDO_Sequence::move — Move an item to another sequence position


Begin change logging

  • « SDO Функции
  • SDO_DAS_ChangeSummary::endLogging »
  • PHP Manual
  • SDO Функции
  • Begin change logging

SDO_DAS_ChangeSummary::beginLogging

(^)

SDO_DAS_ChangeSummary::beginLogging — Begin change logging

Описание

SDO_DAS_ChangeSummary::beginLogging ( void ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Begin logging changes made to the SDO_DataObject.

Список параметров

None.

Возвращаемые значения

None.


End change logging

  • « SDO_DAS_ChangeSummary::beginLogging
  • SDO_DAS_ChangeSummary::getChangeType »
  • PHP Manual
  • SDO Функции
  • End change logging

SDO_DAS_ChangeSummary::endLogging

(^)

SDO_DAS_ChangeSummary::endLogging — End change logging

Описание

SDO_DAS_ChangeSummary::endLogging ( void ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

End logging changes made to an SDO_DataObject.

Список параметров

None.

Возвращаемые значения

None.


Get the type of change made to an SDO_DataObject

  • « SDO_DAS_ChangeSummary::endLogging
  • SDO_DAS_ChangeSummary::getChangedDataObjects »
  • PHP Manual
  • SDO Функции
  • Get the type of change made to an SDO_DataObject

SDO_DAS_ChangeSummary::getChangeType

(^)

SDO_DAS_ChangeSummary::getChangeType — Get the type of change made to an SDO_DataObject

Описание

SDO_DAS_ChangeSummary::getChangeType ( SDO_DataObject $dataObject ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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


Get the changed data objects from a change summary

  • « SDO_DAS_ChangeSummary::getChangeType
  • SDO_DAS_ChangeSummary::getOldContainer »
  • PHP Manual
  • SDO Функции
  • Get the changed data objects from a change summary

SDO_DAS_ChangeSummary::getChangedDataObjects

(^)

SDO_DAS_ChangeSummary::getChangedDataObjects — Get the changed data objects from a change summary

Описание

SDO_DAS_ChangeSummary::getChangedDataObjects ( void ) : SDO_List
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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.


Get the old container for a deleted SDO_DataObject

  • « SDO_DAS_ChangeSummary::getChangedDataObjects
  • SDO_DAS_ChangeSummary::getOldValues »
  • PHP Manual
  • SDO Функции
  • Get the old container for a deleted SDO_DataObject

SDO_DAS_ChangeSummary::getOldContainer

(^)

SDO_DAS_ChangeSummary::getOldContainer — Get the old container for a deleted SDO_DataObject

Описание

SDO_DAS_ChangeSummary::getOldContainer ( SDO_DataObject $data_object ) : SDO_DataObject
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the old container (SDO_DataObject) for a deleted SDO_DataObject.

Список параметров

data_object

The SDO_DataObject which has been deleted and whose container we wish to identify.

Возвращаемые значения

The old containing data object of the deleted SDO_DataObject.


Get the old values for a given changed SDO_DataObject

  • « SDO_DAS_ChangeSummary::getOldContainer
  • SDO_DAS_ChangeSummary::isLogging »
  • PHP Manual
  • SDO Функции
  • Get the old values for a given changed SDO_DataObject

SDO_DAS_ChangeSummary::getOldValues

(^)

SDO_DAS_ChangeSummary::getOldValues — Get the old values for a given changed SDO_DataObject

Описание

SDO_DAS_ChangeSummary::getOldValues ( SDO_DataObject $data_object ) : SDO_List
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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.

Список параметров

data_object

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. If the change type is SDO_DAS_ChangeSummary::ADDITION, this list is empty.


Test to see whether change logging is switched on

  • « SDO_DAS_ChangeSummary::getOldValues
  • SDO_DAS_DataFactory::addPropertyToType »
  • PHP Manual
  • SDO Функции
  • Test to see whether change logging is switched on

SDO_DAS_ChangeSummary::isLogging

(^)

SDO_DAS_ChangeSummary::isLogging — Test to see whether change logging is switched on

Описание

SDO_DAS_ChangeSummary::isLogging ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test to see whether change logging is switched on.

Список параметров

None.

Возвращаемые значения

Returns TRUE if change logging is on, otherwise returns FALSE.


Adds a property to a type

  • « SDO_DAS_ChangeSummary::isLogging
  • SDO_DAS_DataFactory::addType »
  • PHP Manual
  • SDO Функции
  • Adds a property to a type

SDO_DAS_DataFactory::addPropertyToType

(^)

SDO_DAS_DataFactory::addPropertyToType — Adds a property to a type

Описание

SDO_DAS_DataFactory::addPropertyToType ( string $parent_type_namespace_uri , string $parent_type_name , string $property_name , string $type_namespace_uri , string $type_name [, array $options ] ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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.

Список параметров

parent_type_namespace_uri

The namespace URI for the parent type.

parent_type_name

The type name for the parent type.

property_name

The name by which the property will be known in the parent type.

type_namespace_uri

The namespace URI for the type of the property.

type_name

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));
?>


Add a new type to a model

  • « SDO_DAS_DataFactory::addPropertyToType
  • SDO_DAS_DataFactory::getDataFactory »
  • PHP Manual
  • SDO Функции
  • Add a new type to a model

SDO_DAS_DataFactory::addType

(^)

SDO_DAS_DataFactory::addType — Add a new type to a model

Описание

SDO_DAS_DataFactory::addType ( string $type_namespace_uri , string $type_name [, array $options ] ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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.

Список параметров

type_namespace_uri

The namespace of the type.

type_name

The name of the type.

options

This array holds one or more key=>value pairs to set attribute values for the type. The optional keywords are:

open

A flag to say whether the type is open. An SDO_DataObject whose type is open can have properties added to them which are not described by the type. This capability is used to support working with XML documents whose schema support open content such as that described by an <xsd:any> element. The default value is 'false'.

sequenced

A flag to say whether the type is sequenced. Sequenced types can have the ordering across properties preserved and can contain unstructured text. The default value is 'false'. For more information on sequenced types see the section on Working with Sequenced Data Objects.

basetype

If specified, an array of namespace URI and type name strings for the type from which this type is derived. An example of the use of base types is when a type derived in an XML schema inherits from another type by using <extension base="...">.

Возвращаемые значения

None.

Примеры

Пример #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');
?>


Get a data factory instance

  • « SDO_DAS_DataFactory::addType
  • SDO_DAS_DataObject::getChangeSummary »
  • PHP Manual
  • SDO Функции
  • Get a data factory instance

SDO_DAS_DataFactory::getDataFactory

(^)

SDO_DAS_DataFactory::getDataFactory — Get a data factory instance

Описание

SDO_DAS_DataFactory::getDataFactory ( void ) : SDO_DAS_DataFactory
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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.


Get a data object's change summary

  • « SDO_DAS_DataFactory::getDataFactory
  • SDO_DAS_Setting::getListIndex »
  • PHP Manual
  • SDO Функции
  • Get a data object's change summary

SDO_DAS_DataObject::getChangeSummary

(^)

SDO_DAS_DataObject::getChangeSummary — Get a data object's change summary

Описание

SDO_DAS_DataObject::getChangeSummary ( void ) : SDO_DAS_ChangeSummary
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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.


Get the list index for a changed many-valued property

  • « SDO_DAS_DataObject::getChangeSummary
  • SDO_DAS_Setting::getPropertyIndex »
  • PHP Manual
  • SDO Функции
  • Get the list index for a changed many-valued property

SDO_DAS_Setting::getListIndex

(^)

SDO_DAS_Setting::getListIndex — Get the list index for a changed many-valued property

Описание

SDO_DAS_Setting::getListIndex ( void ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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.


Get the property index for a changed property

  • « SDO_DAS_Setting::getListIndex
  • SDO_DAS_Setting::getPropertyName »
  • PHP Manual
  • SDO Функции
  • Get the property index for a changed property

SDO_DAS_Setting::getPropertyIndex

(^)

SDO_DAS_Setting::getPropertyIndex — Get the property index for a changed property

Описание

SDO_DAS_Setting::getPropertyIndex ( void ) : int
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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.


Get the property name for a changed property

  • « SDO_DAS_Setting::getPropertyIndex
  • SDO_DAS_Setting::getValue »
  • PHP Manual
  • SDO Функции
  • Get the property name for a changed property

SDO_DAS_Setting::getPropertyName

(^)

SDO_DAS_Setting::getPropertyName — Get the property name for a changed property

Описание

SDO_DAS_Setting::getPropertyName ( void ) : string
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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.


Get the old value for the changed property

  • « SDO_DAS_Setting::getPropertyName
  • SDO_DAS_Setting::isSet »
  • PHP Manual
  • SDO Функции
  • Get the old value for the changed property

SDO_DAS_Setting::getValue

(^)

SDO_DAS_Setting::getValue — Get the old value for the changed property

Описание

SDO_DAS_Setting::getValue ( void ) : mixed
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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.


Test whether a property was set prior to being modified

  • « SDO_DAS_Setting::getValue
  • SDO_DataFactory::create »
  • PHP Manual
  • SDO Функции
  • Test whether a property was set prior to being modified

SDO_DAS_Setting::isSet

(^)

SDO_DAS_Setting::isSet — Test whether a property was set prior to being modified

Описание

SDO_DAS_Setting::isSet ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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.


Create an SDO_DataObject

  • « SDO_DAS_Setting::isSet
  • SDO_DataObject::clear »
  • PHP Manual
  • SDO Функции
  • Create an SDO_DataObject

SDO_DataFactory::create

(^)

SDO_DataFactory::create — Create an SDO_DataObject

Описание

SDO_DataFactory::create ( string $type_namespace_uri , string $type_name ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Create a new SDO_DataObject given the data object's namespace URI and type name.

Список параметров

type_namespace_uri

The namespace of the type.

type_name

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.


Clear an SDO_DataObject's properties

  • « SDO_DataFactory::create
  • SDO_DataObject::createDataObject »
  • PHP Manual
  • SDO Функции
  • Clear an SDO_DataObject's properties

SDO_DataObject::clear

(^)

SDO_DataObject::clear — Clear an SDO_DataObject's properties

Описание

SDO_DataObject::clear ( void ) : 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.


Create a child SDO_DataObject

  • « SDO_DataObject::clear
  • SDO_DataObject::getContainer »
  • PHP Manual
  • SDO Функции
  • Create a child SDO_DataObject

SDO_DataObject::createDataObject

(^)

SDO_DataObject::createDataObject — Create a child SDO_DataObject

Описание

SDO_DataObject::createDataObject ( mixed $identifier ) : SDO_DataObject
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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), a property index (int), or an SDO_Model_Property.

Возвращаемые значения

Returns the newly created SDO_DataObject.

Ошибки

SDO_PropertyNotFoundException

Thrown if the identifier does not correspond to a property of the data object.


Get a data object's container

  • « SDO_DataObject::createDataObject
  • SDO_DataObject::getSequence »
  • PHP Manual
  • SDO Функции
  • Get a data object's container

SDO_DataObject::getContainer

(^)

SDO_DataObject::getContainer — Get a data object's container

Описание

SDO_DataObject::getContainer ( void ) : SDO_DataObject
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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).


Get the sequence for a data object

  • « SDO_DataObject::getContainer
  • SDO_DataObject::getTypeName »
  • PHP Manual
  • SDO Функции
  • Get the sequence for a data object

SDO_DataObject::getSequence

(^)

SDO_DataObject::getSequence — Get the sequence for a data object

Описание

SDO_DataObject::getSequence ( void ) : SDO_Sequence
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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.


Return the name of the type for a data object

  • « SDO_DataObject::getSequence
  • SDO_DataObject::getTypeNamespaceURI »
  • PHP Manual
  • SDO Функции
  • Return the name of the type for a data object

SDO_DataObject::getTypeName

(^)

SDO_DataObject::getTypeName — Return the name of the type for a data object

Описание

SDO_DataObject::getTypeName ( void ) : string
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Return the name of the type for a data object. A convenience method corresponding to SDO_Model_ReflectionDataObject::getType().getName().

Список параметров

None.

Возвращаемые значения

The name of the type for the data object.


Return the namespace URI of the type for a data object

  • « SDO_DataObject::getTypeName
  • SDO_Exception::getCause »
  • PHP Manual
  • SDO Функции
  • Return the namespace URI of the type for a data object

SDO_DataObject::getTypeNamespaceURI

(^)

SDO_DataObject::getTypeNamespaceURI — Return the namespace URI of the type for a data object

Описание

SDO_DataObject::getTypeNamespaceURI ( void ) : string
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Return the namespace URI of the type for a data object. A convenience method corresponding to SDO_Model_ReflectionDataObject::getType().getNamespaceURI().

Список параметров

None.

Возвращаемые значения

The namespace URI of the type for the data object.


Get the cause of the exception

  • « SDO_DataObject::getTypeNamespaceURI
  • SDO_List::insert »
  • PHP Manual
  • SDO Функции
  • Get the cause of the exception

SDO_Exception::getCause

(^)

SDO_Exception::getCause — Get the cause of the exception

Описание

SDO_Exception::getCause ( void ) : mixed
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the cause of this exception or NULL if the cause is nonexistent or unknown. Typically the cause will be an SDO_CPPException object, which may be used to obtain additional diagnostic information.

Список параметров

None.

Возвращаемые значения

Returns the cause of this exception or NULL if the cause is nonexistent or unknown.


Insert into a list

  • « SDO_Exception::getCause
  • SDO_Model_Property::getContainingType »
  • PHP Manual
  • SDO Функции
  • Insert into a list

SDO_List::insert

(^)

SDO_List::insert — Insert into a list

Описание

SDO_List::insert ( mixed $value [, int $index ] ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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).


Get the SDO_Model_Type which contains this property

  • « SDO_List::insert
  • SDO_Model_Property::getDefault »
  • PHP Manual
  • SDO Функции
  • Get the SDO_Model_Type which contains this property

SDO_Model_Property::getContainingType

(^)

SDO_Model_Property::getContainingType — Get the SDO_Model_Type which contains this property

Описание

SDO_Model_Property::getContainingType ( void ) : SDO_Model_Type
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the SDO_Model_Type which contains this property.

Список параметров

None.

Возвращаемые значения

Returns the SDO_Model_Type which contains this property.


Get the default value for the property

  • « SDO_Model_Property::getContainingType
  • SDO_Model_Property::getName »
  • PHP Manual
  • SDO Функции
  • Get the default value for the property

SDO_Model_Property::getDefault

(^)

SDO_Model_Property::getDefault — Get the default value for the property

Описание

SDO_Model_Property::getDefault ( void ) : mixed
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the default value for the property. Only primitive data type properties can have default values.

Список параметров

None.

Возвращаемые значения

Returns the default value for the property.


Get the name of the SDO_Model_Property

  • « SDO_Model_Property::getDefault
  • SDO_Model_Property::getType »
  • PHP Manual
  • SDO Функции
  • Get the name of the SDO_Model_Property

SDO_Model_Property::getName

(^)

SDO_Model_Property::getName — Get the name of the SDO_Model_Property

Описание

SDO_Model_Property::getName ( void ) : string
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the name of the SDO_Model_Property.

Список параметров

None.

Возвращаемые значения

Returns the name of the SDO_Model_Property.


Get the SDO_Model_Type of the property

  • « SDO_Model_Property::getName
  • SDO_Model_Property::isContainment »
  • PHP Manual
  • SDO Функции
  • Get the SDO_Model_Type of the property

SDO_Model_Property::getType

(^)

SDO_Model_Property::getType — Get the SDO_Model_Type of the property

Описание

SDO_Model_Property::getType ( void ) : SDO_Model_Type
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the SDO_Model_Type of the property. The SDO_Model_Type describes the type information for the property, such as its type name, namespace URI, whether it is a primitive data type, and so on.

Список параметров

None.

Возвращаемые значения

Returns the SDO_Model_Type describing the property's type information.


Test to see if the property defines a containment relationship

  • « SDO_Model_Property::getType
  • SDO_Model_Property::isMany »
  • PHP Manual
  • SDO Функции
  • Test to see if the property defines a containment relationship

SDO_Model_Property::isContainment

(^)

SDO_Model_Property::isContainment — Test to see if the property defines a containment relationship

Описание

SDO_Model_Property::isContainment ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test to see if the property corresponds to a containment relationship. Returns TRUE if the property defines a containment relationship, or FALSE if it is reference.

Список параметров

None.

Возвращаемые значения

Returns TRUE if the property defines a containment relationship, or FALSE if it is reference.


Test to see if the property is many-valued

  • « SDO_Model_Property::isContainment
  • SDO_Model_ReflectionDataObject::__construct »
  • PHP Manual
  • SDO Функции
  • Test to see if the property is many-valued

SDO_Model_Property::isMany

(^)

SDO_Model_Property::isMany — Test to see if the property is many-valued

Описание

SDO_Model_Property::isMany ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test to see if the property is many-valued. Returns TRUE if this is a many-valued property, otherwise returns FALSE.

Список параметров

None.

Возвращаемые значения

Returns TRUE if this is a many-valued property, otherwise returns FALSE.


Construct an SDO_Model_ReflectionDataObject

  • « SDO_Model_Property::isMany
  • SDO_Model_ReflectionDataObject::export »
  • PHP Manual
  • SDO Функции
  • Construct an SDO_Model_ReflectionDataObject

SDO_Model_ReflectionDataObject::__construct

(^)

SDO_Model_ReflectionDataObject::__construct — Construct an SDO_Model_ReflectionDataObject

Описание

SDO_Model_ReflectionDataObject::__construct ( SDO_DataObject $data_object )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Construct an SDO_Model_ReflectionDataObject to reflect on an SDO_DataObject. Reflecting on an SDO_DataObject gives access to information about its model. The model contains information such as the data object's type, and whether that type is sequenced (preserves ordering across properties) or open (each instance can have its model extended). The model also holds information about the data object's properties, any default values they may have, and so on.

Список параметров

data_object

The SDO_DataObject being reflected upon.

Возвращаемые значения

None.


Get a string describing the SDO_DataObject

  • « SDO_Model_ReflectionDataObject::__construct
  • SDO_Model_ReflectionDataObject::getContainmentProperty »
  • PHP Manual
  • SDO Функции
  • Get a string describing the SDO_DataObject

SDO_Model_ReflectionDataObject::export

(^)

SDO_Model_ReflectionDataObject::export — Get a string describing the SDO_DataObject

Описание

SDO_Model_ReflectionDataObject::export ( SDO_Model_ReflectionDataObject $rdo [, bool $return ] ) : mixed
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get a string describing the SDO_DataObject. The default behaviour is to print the output, but if TRUE is specified for return, it is returned as a string.

Список параметров

rdo

An SDO_Model_ReflectionDataObject.

return

If TRUE, return the output as a string, otherwise print it.

Возвращаемые значения

Returns the output if TRUE is specified for return, otherwise NULL.


Get the property which defines the containment relationship to the data object

  • « SDO_Model_ReflectionDataObject::export
  • SDO_Model_ReflectionDataObject::getInstanceProperties »
  • PHP Manual
  • SDO Функции
  • Get the property which defines the containment relationship to the data object

SDO_Model_ReflectionDataObject::getContainmentProperty

(^)

SDO_Model_ReflectionDataObject::getContainmentProperty — Get the property which defines the containment relationship to the data object

Описание

SDO_Model_ReflectionDataObject::getContainmentProperty ( void ) : SDO_Model_Property
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the SDO_Model_Property that contains the SDO_DataObject. This method is used to navigate up to the parent's property which contains the data object which has been reflected upon.

Список параметров

None.

Возвращаемые значения

Returns the container's SDO_Model_Property which references the SDO_DataObject, or NULL if it is a root SDO_DataObject.


Get the instance properties of the SDO_DataObject

  • « SDO_Model_ReflectionDataObject::getContainmentProperty
  • SDO_Model_ReflectionDataObject::getType »
  • PHP Manual
  • SDO Функции
  • Get the instance properties of the SDO_DataObject

SDO_Model_ReflectionDataObject::getInstanceProperties

(^)

SDO_Model_ReflectionDataObject::getInstanceProperties — Get the instance properties of the SDO_DataObject

Описание

SDO_Model_ReflectionDataObject::getInstanceProperties ( void ) : array
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the instance properties for the SDO_DataObject. The instance properties consist of all the properties defined on the data object's type, plus any instance properties from open content (if the data object is an open type).

Список параметров

None.

Возвращаемые значения

An array of SDO_Model_Property objects.


Get the SDO_Model_Type for the SDO_DataObject

  • « SDO_Model_ReflectionDataObject::getInstanceProperties
  • SDO_Model_Type::getBaseType »
  • PHP Manual
  • SDO Функции
  • Get the SDO_Model_Type for the SDO_DataObject

SDO_Model_ReflectionDataObject::getType

(^)

SDO_Model_ReflectionDataObject::getType — Get the SDO_Model_Type for the SDO_DataObject

Описание

SDO_Model_ReflectionDataObject::getType ( void ) : SDO_Model_Type
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the SDO_Model_Type for the SDO_DataObject. The SDO_Model_Type holds all the information about the data object's type, such as namespace URI, type name, whether it is a primitive data type, and so on.

Список параметров

None.

Возвращаемые значения

Returns the SDO_Model_Type for the SDO_DataObject.


Get the base type for this type

  • « SDO_Model_ReflectionDataObject::getType
  • SDO_Model_Type::getName »
  • PHP Manual
  • SDO Функции
  • Get the base type for this type

SDO_Model_Type::getBaseType

(^)

SDO_Model_Type::getBaseType — Get the base type for this type

Описание

SDO_Model_Type::getBaseType ( void ) : SDO_Model_Type
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the base type for this type. Returns the SDO_Model_Type for the base type if this type inherits from another, otherwise returns NULL. An example of when base types occur is when a type defined in XML schema inherits from another type by using

<extension base="...">
.

Список параметров

None.

Возвращаемые значения

Returns the SDO_Model_Type for the base type if this type inherits from another, otherwise returns NULL.


Get the name of the type

  • « SDO_Model_Type::getBaseType
  • SDO_Model_Type::getNamespaceURI »
  • PHP Manual
  • SDO Функции
  • Get the name of the type

SDO_Model_Type::getName

(^)

SDO_Model_Type::getName — Get the name of the type

Описание

SDO_Model_Type::getName ( void ) : string
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the name of the type. The combination of type name and namespace URI is used to uniquely identify the type.

Список параметров

None.

Возвращаемые значения

Returns the name of the type.


Get the namespace URI of the type

  • « SDO_Model_Type::getName
  • SDO_Model_Type::getProperties »
  • PHP Manual
  • SDO Функции
  • Get the namespace URI of the type

SDO_Model_Type::getNamespaceURI

(^)

SDO_Model_Type::getNamespaceURI — Get the namespace URI of the type

Описание

SDO_Model_Type::getNamespaceURI ( void ) : string
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the namespace URI of the type. The combination of namespace URI and type name is used to uniquely identify the type.

Список параметров

None.

Возвращаемые значения

Returns the namespace URI of the type.


Get the SDO_Model_Property objects defined for the type

  • « SDO_Model_Type::getNamespaceURI
  • SDO_Model_Type::getProperty »
  • PHP Manual
  • SDO Функции
  • Get the SDO_Model_Property objects defined for the type

SDO_Model_Type::getProperties

(^)

SDO_Model_Type::getProperties — Get the SDO_Model_Property objects defined for the type

Описание

SDO_Model_Type::getProperties ( void ) : array
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get an array of SDO_Model_Property objects describing the properties defined for the SDO_Model_Type. Each SDO_Model_Property holds information such as the property name, default value, and so on.

Список параметров

None.

Возвращаемые значения

Returns an array of SDO_Model_Property objects.


Get an SDO_Model_Property of the type

  • « SDO_Model_Type::getProperties
  • SDO_Model_Type::isAbstractType »
  • PHP Manual
  • SDO Функции
  • Get an SDO_Model_Property of the type

SDO_Model_Type::getProperty

(^)

SDO_Model_Type::getProperty — Get an SDO_Model_Property of the type

Описание

SDO_Model_Type::getProperty ( mixed $identifier ) : SDO_Model_Property
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get an SDO_Model_Property of the type, identified by its property index or property name.

Список параметров

identifier

The property index or property name.

Возвращаемые значения

Returns the SDO_Model_Property.


Test to see if this SDO_Model_Type is an abstract data type

  • « SDO_Model_Type::getProperty
  • SDO_Model_Type::isDataType »
  • PHP Manual
  • SDO Функции
  • Test to see if this SDO_Model_Type is an abstract data type

SDO_Model_Type::isAbstractType

(^)

SDO_Model_Type::isAbstractType — Test to see if this SDO_Model_Type is an abstract data type

Описание

SDO_Model_Type::isAbstractType ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test to see if this SDO_Model_Type is an abstract data type. Returns TRUE if this type is abstract, that is, no SDO_DataObject of this type can be instantiated, though other types may inherit from it.

Список параметров

None.

Возвращаемые значения

Returns TRUE if this type is an abstract data type, otherwise returns FALSE.


Test to see if this SDO_Model_Type is a primitive data type

  • « SDO_Model_Type::isAbstractType
  • SDO_Model_Type::isInstance »
  • PHP Manual
  • SDO Функции
  • Test to see if this SDO_Model_Type is a primitive data type

SDO_Model_Type::isDataType

(^)

SDO_Model_Type::isDataType — Test to see if this SDO_Model_Type is a primitive data type

Описание

SDO_Model_Type::isDataType ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test to see if this SDO_Model_Type is a primitive data type. Returns TRUE if this type is a primitive data type, otherwise returns FALSE.

Список параметров

None.

Возвращаемые значения

Returns TRUE if this type is a primitive data type, otherwise returns FALSE.


Test for an SDO_DataObject being an instance of this SDO_Model_Type

  • « SDO_Model_Type::isDataType
  • SDO_Model_Type::isOpenType »
  • PHP Manual
  • SDO Функции
  • Test for an SDO_DataObject being an instance of this SDO_Model_Type

SDO_Model_Type::isInstance

(^)

SDO_Model_Type::isInstance — Test for an SDO_DataObject being an instance of this SDO_Model_Type

Описание

SDO_Model_Type::isInstance ( SDO_DataObject $data_object ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test for an SDO_DataObject being an instance of this SDO_Model_Type. Returns TRUE if the SDO_DataObject provided is an instance of this SDO_Model_Type, or a derived type, otherwise returns FALSE.

Список параметров

data_object

The SDO_DataObject to be tested.

Возвращаемые значения

Returns TRUE if the SDO_DataObject provided is an instance of this SDO_Model_Type, or a derived type, otherwise returns FALSE.


Test to see if this type is an open type

  • « SDO_Model_Type::isInstance
  • SDO_Model_Type::isSequencedType »
  • PHP Manual
  • SDO Функции
  • Test to see if this type is an open type

SDO_Model_Type::isOpenType

(^)

SDO_Model_Type::isOpenType — Test to see if this type is an open type

Описание

SDO_Model_Type::isOpenType ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test to see if this type is open. Returns TRUE if this type is open, otherwise returns FALSE. An SDO_DataObject whose type is open can have properties added to them which are not described by the type. This capability is used to support working with XML documents whose schema support open content, such as that defined by an

<xsd:any>
element.

Список параметров

None.

Возвращаемые значения

Returns TRUE if this type is open, otherwise returns FALSE.


Test to see if this is a sequenced type

  • « SDO_Model_Type::isOpenType
  • SDO_Sequence::getProperty »
  • PHP Manual
  • SDO Функции
  • Test to see if this is a sequenced type

SDO_Model_Type::isSequencedType

(^)

SDO_Model_Type::isSequencedType — Test to see if this is a sequenced type

Описание

SDO_Model_Type::isSequencedType ( void ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test to see if this is a sequenced type. Returns TRUE if this type is sequence, otherwise returns FALSE. Sequenced types can have the ordering across properties preserved and can contain unstructured text. For more information on sequenced types see the section on Working with Sequenced Data Objects.

Список параметров

None.

Возвращаемые значения

Returns TRUE if this type is sequence, otherwise return FALSE.


Return the property for the specified sequence index

  • « SDO_Model_Type::isSequencedType
  • SDO_Sequence::insert »
  • PHP Manual
  • SDO Функции
  • Return the property for the specified sequence index

SDO_Sequence::getProperty

(^)

SDO_Sequence::getProperty — Return the property for the specified sequence index

Описание

SDO_Sequence::getProperty ( int $sequence_index ) : SDO_Model_Property
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Return the property for the specified sequence index.

Список параметров

sequence_index

The position of the element in the sequence.

Возвращаемые значения

An SDO_Model_Property. A return value of NULL means the sequence 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.


Insert into a sequence

  • « SDO_Sequence::getProperty
  • SDO_Sequence::move »
  • PHP Manual
  • SDO Функции
  • Insert into a sequence

SDO_Sequence::insert

(^)

SDO_Sequence::insert — Insert into a sequence

Описание

SDO_Sequence::insert ( mixed $value [, int $sequenceIndex [, mixed $propertyIdentifier ]] ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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, a property name, or an SDO_Model_Property, 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.


Move an item to another sequence position

  • « SDO_Sequence::insert
  • SDO-DAS-Relational »
  • PHP Manual
  • SDO Функции
  • Move an item to another sequence position

SDO_Sequence::move

(^)

SDO_Sequence::move — Move an item to another sequence position

Описание

SDO_Sequence::move ( int $toIndex, int $fromIndex ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 Relational Data Access Service

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Creating, retrieving, updating and deleting data
    • Specifying the metadata
    • One-table examples
    • Two-table examples
    • Three-table example
  • Limitations
  • SDO-DAS-Relational Функции
    • 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


Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях 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 relationships 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 relationships. 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 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 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.0.

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.0.

  • 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.0. 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.0.

  • 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.


Установка

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';
?>


Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

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.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

The Relational DAS introduces no predefined constants.


Примеры

Содержание

  • Creating, retrieving, updating and deleting data
  • Specifying the metadata
  • One-table examples
  • Two-table examples
  • Three-table example


Creating, retrieving, updating and deleting data

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 serialized and deserialized 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 normalized 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 relationships 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 relationships

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 property defining a multi-valued containment relationship in the SDO model.

<?php
$department_containment = array( 'parent' => 'company', 'child' => 'department');
$employee_containment = array( 'parent' => 'department', 'child' => 'employee');

$SDO_containment_metadata = array($department_containment, $employee_containment);
?>

Foreign keys in the database metadata are interpreted as properties with either multi-valued containment relationships or single-valued non-containment references, depending on whether they have a corresponding SDO containment relationship 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 relationships. Each containment relationship mentioned in the SDO containment relationships 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 relationships do not appear in the data objects, instead each is represented by a containment relationship 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 relationships 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 relationships, 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_containment_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_containment_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_containment_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 property (the property defining the containment relationship). 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_containment_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.

Пример #1 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_containment_metadata);

$root = $das -> createRootDataObject();

$acme = $root -> createDataObject('company');
$acme -> name = "Acme";

$shoe = $acme->createDataObject('department');
$shoe->name = 'Shoe';

$das -> applyChanges($dbh, $root);

?>

Пример #2 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_containment_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);
?>

Пример #3 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 property which in this case is the company property 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_containment_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.

Пример #1 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 relationships.

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 relationships, 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 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_containment_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";
?>

Пример #2 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_containment_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";

?>

Пример #3 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_containment_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";

?>


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 relationships and single-valued non-containment references. In SDO, whether a property describes a single- or multi-valued relationship, 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.


SDO-DAS-Relational Функции

Предопределенные классы

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


Applies the changes made to a data graph back to the database

  • « SDO-DAS-Relational Функции
  • SDO_DAS_Relational::__construct »
  • PHP Manual
  • SDO-DAS-Relational Функции
  • Applies the changes made to a data graph back to the database

SDO_DAS_Relational::applyChanges

(^)

SDO_DAS_Relational::applyChanges — Applies the changes made to a data graph back to the database

Описание

SDO_DAS_Relational::applyChanges ( PDO $database_handle , SDODataObject $root_data_object ) : void
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 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.


Creates an instance of a Relational Data Access Service

  • « SDO_DAS_Relational::applyChanges
  • SDO_DAS_Relational::createRootDataObject »
  • PHP Manual
  • SDO-DAS-Relational Функции
  • Creates an instance of a Relational Data Access Service

SDO_DAS_Relational::__construct

(^)

SDO_DAS_Relational::__construct — Creates an instance of a Relational Data Access Service

Описание

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 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.


Returns the special root object in an otherwise empty data graph. Used when creating a data graph from scratch

  • « SDO_DAS_Relational::__construct
  • SDO_DAS_Relational::executePreparedQuery »
  • PHP Manual
  • SDO-DAS-Relational Функции
  • Returns the special root object in an otherwise empty data graph. Used when creating a data graph from scratch

SDO_DAS_Relational::createRootDataObject

(^)

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::createRootDataObject ( void ) : SDODataObject
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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.


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::createRootDataObject
  • SDO_DAS_Relational::executeQuery »
  • PHP Manual
  • SDO-DAS-Relational Функции
  • 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::executePreparedQuery

(^)

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::executePreparedQuery ( PDO $database_handle , PDOStatement $prepared_statement , array $value_list [, array $column_specifier ] ) : SDODataObject
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 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 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::executePreparedQuery() 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";
}
?>


Executes a given SQL query against a relational database and returns the results as a normalised data graph

  • « SDO_DAS_Relational::executePreparedQuery
  • SDO DAS XML »
  • PHP Manual
  • SDO-DAS-Relational Функции
  • Executes a given SQL query against a relational database and returns the results as a normalised data graph

SDO_DAS_Relational::executeQuery

(^)

SDO_DAS_Relational::executeQuery — Executes a given SQL query against a relational database and returns the results as a normalised data graph

Описание

SDO_DAS_Relational::executeQuery ( PDO $database_handle , string $SQL_statement [, array $column_specifier ] ) : SDODataObject
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Executes a given query against the relational database, using the supplied PDO database handle. Uses the model that it built from 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 XML Data Access Service

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • SDO DAS XML Функции
    • SDO_DAS_XML::addTypes — To load a second or subsequent schema file to a SDO_DAS_XML object
    • 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::createDocument — Creates an XML Document object from scratch, without the need to load a document from a file or string
    • SDO_DAS_XML::loadFile — Returns SDO_DAS_XML_Document object for a given path to xml instance document
    • SDO_DAS_XML::loadString — Returns SDO_DAS_XML_Document for a given xml instance string
    • SDO_DAS_XML::saveFile — Saves the SDO_DAS_XML_Document object to a file
    • SDO_DAS_XML::saveString — Saves the SDO_DAS_XML_Document object to a string
    • 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::setEncoding — Sets the given string as encoding
    • SDO_DAS_XML_Document::setXMLDeclaration — Sets the xml declaration
    • SDO_DAS_XML_Document::setXMLVersion — Sets the given string as xml version


Введение

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. SDOs are always created and maintained according to a model which defines type names and what property names each type may have. For data which is from XML, this SDO model is built from a schema file written in XML schema language (an xsd file). This schema file is usually passed to the create method when the XMLDAS is initialised. The » SDO 2.0 specification defines the mapping between XML types and SDO types. There are a number of small limitations in the PHP support - not everything which is in the specification can be done - and these limitations are summarised in a later section.


Требования

The SDO XML Data Access Service requires PHP 5.1.0 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.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • SDO DAS XML
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Several of 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
/**
 * Load, update, and save an XML document
 */
try {
   $xmldas = SDO_DAS_XML::create("letter.xsd");
   $document = $xmldas->loadFile("letter.xml");
   $root_data_object = $document->getRootDataObject();
   $root_data_object->date = "September 03, 2004";
   $root_data_object->firstName = "Anantoju";
   $root_data_object->lastName = "Madhu";
   $xmldas->saveFile($document, "letter-out.xml");
   echo "New file has been written:\n";
   print file_get_contents("letter-out.xml");
} catch (SDO_Exception $e) {
   print($e->getMessage());
}
?>

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 loadFile() method. There is also a loadString() 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 saveFile() method to write the changed document back to the file system. The saveFile method has an optional extra integer argument which if specified will cause the XML DAS to format the XML, using the integer as the amount to indent by at each change in level on the document.

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
/**
 * Create an XML document from scratch
 */
try {
   $xmldas = SDO_DAS_XML::create("letter.xsd");
   try {
       $doc = $xmldas->createDocument();
       $rdo = $doc->getRootDataObject();
       $seq = $rdo->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");
       $rdo->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.");
       print($xmldas->saveString($doc));
   } catch (SDO_Exception $e) {
       print($e);
   }
} catch (SDO_Exception $e) {
   print("Problem creating an XML document: " . $e->getMessage());
}
?>

The createDocument() method on the XML DAS returns a document object with a single root data object corresponding to an empty document element. The element name of the document element is known from the schema file. If there is any ambiguity about what the document element is, as there can be when more than one schema has been loaded into the same XML DAS, the element name and the namespace URI can be passed to the createDocument() method.

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 set the XML version and encoding on the document object. These will be used when the XML is written out. If no XML declaration is wanted at all (perhaps you want to generate the XML as a string to embed in something) then you can use the setXMLDeclaration() method to suppress it.

<?php
/**
 * Illustrate the calls that control the XML declaration
 */
   $xmldas = SDO_DAS_XML::create("letter.xsd");
   $document = $xmldas->loadFile("letter.xml");
   $document->setXMLVersion("1.1");
   $document->setEncoding("ISO-8859-1");
   print($xmldas->saveString($document));
?>

The XML version and encoding are set in the XML declaration at the top of the XML document.

<?xml version="1.1" encoding="utf-8"?>
.../...

Пример #4 Using an open type

This fourth example illustrates the use of an SDO open type and the use of the createDataObject() method. For this example we use the following two schema:

<schema
  xmlns="http://www.w3.org/2001/XMLSchema">

  <element name="jungle">
    <complexType>
      <sequence>
        <any minOccurs="0" maxOccurs="unbounded"/>
      </sequence>
    </complexType>
  </element>

</schema>

Note the presence of the any element in the definition. This first schema defines the jungle complex type as containing a sequence of any other type. The other types that the example will use are defined in a second schema file:

<schema xmlns= "http://www.w3.org/2001/XMLSchema">

   <complexType name="snakeType">
     <sequence>
       <element name= "name" type="string"/>
       <element name= "length" type="positiveInteger" />
     </sequence>
   </complexType>

   <complexType name="bearType">
     <sequence>
       <element name= "name" type="string"/>
       <element name= "weight" type="positiveInteger" />
     </sequence>
   </complexType>

   <complexType name="pantherType">
     <sequence>
       <element name= "name" type="string"/>
       <element name= "colour" type="string" />
     </sequence>
   </complexType>

</schema>

Here is the example PHP code that uses these two schema files:

<?php

/**
 * Illustrate open types and the use of the addTypes() method
 */

$xmldas = SDO_DAS_XML::create();
$xmldas->addTypes("jungle.xsd"); // this is an open type i.e. the xsd specifies it can contain "any" type
$xmldas->addTypes('animalTypes.xsd');

$baloo            = $xmldas->createDataObject('','bearType');
$baloo->name      = "Baloo";
$baloo->weight    = 800;

$bagheera         = $xmldas->createDataObject('','pantherType');
$bagheera->name   = "Bagheera";
$bagheera->colour = 'inky black';

$kaa              = $xmldas->createDataObject('','snakeType');
$kaa->name        = "Kaa";
$kaa->length      = 25;

$document         = $xmldas->createDocument();
$do               = $document->getRootDataObject();
$do->bear         = $baloo;
$do->panther      = $bagheera;
$do->snake        = $kaa;

print($xmldas->saveString($document,2));

?>

These two schema files are loaded into the XML DAS with first the create() and addTypes() methods. The createDataObject() method is used to create three separate data objects. In each case the namespaceURI and typename of the type are passed to the createDataObject() method: in this example the namespace URI is blank because no namespace is used in the schema. Once the three data objects - representing a bear, a panther and a snake - have been created, a document object is created with the createDocument() method. In this case there is no ambiguity about what the document element of the document should be - as the second schema file only defines complex types, the document element can only be the global jungle element defined in the first schema. This document will have a single root data object corresponding to an empty document element jungle. As this is an open type, properties can be added at will. When the first assignment is made to $do->bear, a property bear is added to the root data object: likewise for the next two assignments. When the document is written out by the saveString() method, the resulting document is:

<?xml version="1.0" encoding="UTF-8"?>
<jungle xsi:type="jungle" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <bear xsi:type="bearType">
    <name>Baloo</name>
    <weight>800</weight>
  </bear>
  <panther xsi:type="pantherType">
    <name>Bagheera</name>
    <colour>inky black</colour>
  </panther>
  <snake xsi:type="snakeType">
    <name>Kaa</name>
    <length>25</length>
  </snake>
</jungle>

Пример #5 Finding out what you can from the document

This example is intended to illustrate how you can find the element name and namespace of the document element from the XML Document object, and the SDO type and namespace from the root data object of the XML data object, and how they relate to one another. This can be difficult to understand because there are four method calls: two can be made against the Document object, and two that can be made against any data object including the root data object. Because of the rules that define how the SDO model is derived from the XML model, when the data object concerned is the root object that represents the document object for the document, only three possible values can come back from these four method calls.

The two method calls that can be made against the document are getRootElementName() and getRootEelementURI(). These return the element name and namespace of the document element, respectively.

The two method calls that can be made against any data object are getTypeName() and getTypeNamespaceURI(). These return the SDO type name and type namespace of the data object, respectively.

Always, calling getRootElementURI() on the document object will return the same value as calling getNamespaceURI() on the root data object. Essentially, the information is all derived from the first few lines of the schema file, where there are three distinct pieces of information. For illustration, here again are the first few lines of the letter.xsd that we used above.

<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">
    .../...

The three important values are:

  • letters, the name of the document element

  • FormLetter, the name of the complex type of the document element. This is also the name of the SDO type of the root data object.

  • http://letterSchema, the namespace to which the document element belongs. This is also the namespaceURI of the SDO type of the root data object.

It is part of the XML-SDO mapping rules that when the SDO model is built from the schema file, the typename and namespaceURI of the SDO types for the root element are taken from those of the complex type of the document element, where it exists. Hence in this example the typename of the root data object is FormLetter. In the event that there is no separate complex type definition for the document element, when the type is defined inline and is anonymous, the SDO type name will be the same as the element name.

The following program loads the letter document and checks the return values from each of the four calls.

<?php
/**
 * Finding out what you can about the document and document element
 * This can be quite hard to understand because there are four calls
 * Two calls are made against the document
 * Two calls are made against the root data object and its model
 * Because of the SDO-XML mapping rules and how the SDO model is derived
 * from the XML model, only three possible values can come back from these four calls.
 * Always, $document->getRootElementURI() == (type of root data object)->namespaceURI
 * Essentially, it all comes form the first few lines of the xsd:
 * <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 *   xmlns:letter="http://letterSchema"
 *   targetNamespace="http://letterSchema">
 *   <xsd:element name="letters" type="letter:FormLetter"/>
 */

$xmldas = SDO_DAS_XML::create("letter.xsd");
$document = $xmldas->loadFile("letter.xml");
$root_do = $document->getRootDataObject();

/**
 * The "root element name" is the element name of the document element
 * in this case 'letters'
 * This matches the 'name' attribute of the document element in the xsd and matches
 * the element name from the xml
 */
echo "The document element name is " . $document->getRootElementName() . "\n";
assert($document->getRootElementName() == 'letters'); // a property of the document

/**
 * The "root element URI" is the namespace part of the element name of the document element
 * in this case 'http://letterSchema' since 'letters' is in that namespace
 * This is taken from the xsd and matches the namespace picked up from the xml
 */
echo "The document element is in the namespace " . $document->getRootElementURI() . "\n";
assert($document->getRootElementURI() == 'http://letterSchema'); // a property of the document

/**
 * The type name is taken from the SDO model
 * The XML-SDO mapping rules make this either:
 *   The name of the complexType if there is one (in this case there is)
 *   The document element name if there no complexType
 * This is taken from the xsd
 */
echo "The type name of the root data object is " . $root_do->getTypeName() . "\n";
assert($root_do->getTypeName() == 'FormLetter');

/**
 * The type's namespaceURI is taken from the SDO model
 * The XML-SDO mapping rules ensure that this will always be the same as
 * the namepace URI of the document element
 */
echo "The namespaceURI of the root data object is " . $root_do->getTypeNamespaceURI() . "\n";
assert($root_do->getTypeNamespaceURI() == 'http://letterSchema');

?>

The output from this program is as follows:

The document element name is letters
The document element is in the namespace http://letterSchema
The type name of the root data object is FormLetter
The namespaceURI of the root data object is http://letterSchema

Пример #6 Printing the SDO model

The XML DAS provides a simple means to see what types and properties have been loaded. The php "print" or "echo" instruction will print out the types and properties.

<?php
/**
 * Illustrate printing out the model
 */

$xmldas = SDO_DAS_XML::create("letter.xsd");
print $xmldas;

?>

The output from this program is as follows:

object(SDO_XML_DAS)#1 {
18 types have been defined. The types and their properties are::
1. commonj.sdo:BigDecimal
2. commonj.sdo:BigInteger
3. commonj.sdo:Boolean
4. commonj.sdo:Byte
5. commonj.sdo:Bytes
6. commonj.sdo:ChangeSummary
7. commonj.sdo:Character
8. commonj.sdo:DataObject
9. commonj.sdo:Date
10. commonj.sdo:Double
11. commonj.sdo:Float
12. commonj.sdo:Integer
13. commonj.sdo:Long
14. commonj.sdo:Short
15. commonj.sdo:String
16. commonj.sdo:URI
17. http://letterSchema:FormLetter
    - date (commonj.sdo:String)
    - firstName (commonj.sdo:String)
    - lastName (commonj.sdo:String)
18. http://letterSchema:RootType
    - letters (http://letterSchema:FormLetter)


SDO DAS XML Функции

Предопределенные классы

The XML DAS provides two main classes. The first is SDO_DAS_XML which is the main class used to fetch the data from the XML source and used to write the data back. The second is the SDO_DAS_XML_Document class, which represents the data in the XML document.

There are also some exception classes which can be thrown if errors are found when looking for or parsing the xsd or xml files.

SDO_DAS_XML

This is the main class of the 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,

Методы

  • create This is a static method available in the SDO_DAS_XML class. Used to construct an SDO_DAS_XML object.

  • addTypes Works in much the same way as create() but used to add the contents of a second or subsequent schema file to an XML DAS that has already been created.

  • createDataObject Can be used to construct an SDO data object of a given type.

  • createDocument Can be used to construct an XML Document object from scratch.

  • loadFile Loads the xml instance document from a file. This file can be at local file system or it can be on a remote host.

  • loadString same as the above method. Loads the xml instance which is available as string.

  • saveFile save SDO_DAS_XML_Document object as a xml file.

  • saveString save SDO_DAS_XML_Document object as a xml string.

SDO_DAS_XML_Document

This class can be used to get to the name and namespace of the document element, and to get to the root data object of the document. Lastly, it can also be used to set the XML version and encoding of a document on output.

Методы

  • getRootDataObject gets the root DataObject.

  • getRootElementName gets the root DataObject's name.

  • getRootElementURI gets the root DataObject's URI.

  • setEncoding sets the encoding string 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_FileException

Is a subclass of SDO_Exception. Thrown by any of the methods that load data from a file, when the file cannot be found.

Limitations compared with SDO 2.0 specification

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 Service. The XML DAS implements the mapping described in the SDO 2.0 specification with some restrictions. A detailed list is of the limitations is:

XML Simple Types

  1. Simple Type with sdoJava:instanceClass - no PHP equivalent provided.

  2. Simple Type with sdoJava:extendedInstanceClass - no PHP equivalent provided.

  3. Simple Type with list of itemType.

  4. Simple Type with union.

XML Complex Types

  1. Complex Type with sdo:aliasName - no PHP support for SDO Type aliases.

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 referencing a DataObject with sdo:propertyType - no support for sdo:propertyType="...".

  5. 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 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.

Содержание

  • SDO_DAS_XML::addTypes — To load a second or subsequent schema file to a SDO_DAS_XML object
  • 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::createDocument — Creates an XML Document object from scratch, without the need to load a document from a file or string
  • SDO_DAS_XML::loadFile — Returns SDO_DAS_XML_Document object for a given path to xml instance document
  • SDO_DAS_XML::loadString — Returns SDO_DAS_XML_Document for a given xml instance string
  • SDO_DAS_XML::saveFile — Saves the SDO_DAS_XML_Document object to a file
  • SDO_DAS_XML::saveString — Saves the SDO_DAS_XML_Document object to a string
  • 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::setEncoding — Sets the given string as encoding
  • SDO_DAS_XML_Document::setXMLDeclaration — Sets the xml declaration
  • SDO_DAS_XML_Document::setXMLVersion — Sets the given string as xml version


To load a second or subsequent schema file to a SDO_DAS_XML object

  • « SDO DAS XML Функции
  • SDO_DAS_XML::create »
  • PHP Manual
  • SDO DAS XML Функции
  • To load a second or subsequent schema file to a SDO_DAS_XML object

SDO_DAS_XML::addTypes

(^)

SDO_DAS_XML::addTypes — To load a second or subsequent schema file to a SDO_DAS_XML object

Описание

SDO_DAS_XML::addTypes ( string $xsd_file ) : void

Load a second or subsequent schema file to an XML DAS that has already been created with the static method create(). Although the file may be any valid schema file, a likely reason for using this method is to add a schema file containing definitions of extra complex types, hence the name. See Example 4 of the parent document for an example.

Список параметров

xsd_file

Path to XSD Schema file.

Возвращаемые значения

None if successful, 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 problems while parsing the given XSD File.

SDO_DAS_XML_FileException

Thrown if the specified file cannot be found.


To create SDO_DAS_XML object for a given schema file

  • « SDO_DAS_XML::addTypes
  • SDO_DAS_XML::createDataObject »
  • PHP Manual
  • SDO DAS XML Функции
  • To create SDO_DAS_XML object for a given schema file

SDO_DAS_XML::create

(^)

SDO_DAS_XML::create — To create SDO_DAS_XML object for a given schema file

Описание

SDO_DAS_XML::create ([ mixed $xsd_file [, string $key ]] ) : SDO_DAS_XML

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. This is optional. If omitted a DAS will be created that only has the SDO base types defined. Schema files can then be loaded with the addTypes() method. Can be string or array of values.

key

Возвращаемые значения

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 problems while parsing the given XSD File.

SDO_DAS_XML_FileException

Thrown if the specified file cannot be found.


Creates SDO_DataObject for a given namespace URI and type name

  • « SDO_DAS_XML::create
  • SDO_DAS_XML::createDocument »
  • PHP Manual
  • SDO DAS XML Функции
  • Creates SDO_DataObject for a given namespace URI and type name

SDO_DAS_XML::createDataObject

(^)

SDO_DAS_XML::createDataObject — Creates SDO_DataObject for a given namespace URI and type name

Описание

SDO_DAS_XML::createDataObject ( string $namespace_uri , string $type_name ) : SDO_DataObject

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.


Creates an XML Document object from scratch, without the need to load a document from a file or string

  • « SDO_DAS_XML::createDataObject
  • SDO_DAS_XML::loadFile »
  • PHP Manual
  • SDO DAS XML Функции
  • Creates an XML Document object from scratch, without the need to load a document from a file or string

SDO_DAS_XML::createDocument

(^)

SDO_DAS_XML::createDocument — Creates an XML Document object from scratch, without the need to load a document from a file or string

Описание

SDO_DAS_XML::createDocument ([ string $document_element_name ] ) : SDO_DAS_XML_Document
SDO_DAS_XML::createDocument ( string $document_element_namespace_URI , string $document_element_name [, SDO_DataObject $dataobject ] ) : SDO_DAS_XML_Document

Creates an XML Document object. This will contain just one empty root element on which none of the properties will have been set. The purpose of this call is to allow an application to create an XML document from scratch without the need to load a document from a file or string. The document that is created will be as if a document had been loaded that contained just a single empty document element with no attributes set or elements within it.

createDocument() may need to be told what the document element is. This will not be necessary in simple cases. When there is no ambiguity then no parameter need be passed to the method. However it is possible to load more than one schema file into the same XML DAS and in this case there may be more than one possible document element defined: furthermore it is even possible that there are two possible document elements that differ only in the namespace. To cope with these cases it is possible to specify either the document element name, or both the document element name and namespace to the method.

Список параметров

document_element_name

The name of the document element. Only needed if there is more than one possibility.

document_element_namespace_URI

The namespace part of the document element name. Only needed if there is more than one possible document element with the same name.

dataobject

Возвращаемые значения

Returns an SDO_XML_DAS_Document object on success.

Ошибки

SDO_UnsupportedOperationException

Thrown if an element name or element name and namespace URI is passed, but not found in the underlying model.


Returns SDO_DAS_XML_Document object for a given path to xml instance document

  • « SDO_DAS_XML::createDocument
  • SDO_DAS_XML::loadString »
  • PHP Manual
  • SDO DAS XML Функции
  • Returns SDO_DAS_XML_Document object for a given path to xml instance document

SDO_DAS_XML::loadFile

(^)

SDO_DAS_XML::loadFile — Returns SDO_DAS_XML_Document object for a given path to xml instance document

Описание

SDO_DAS_XML::loadFile ( string $xml_file ) : SDO_XMLDocument

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 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_FileException

Thrown if the specified file cannot be found.


Returns SDO_DAS_XML_Document for a given xml instance string

  • « SDO_DAS_XML::loadFile
  • SDO_DAS_XML::saveFile »
  • PHP Manual
  • SDO DAS XML Функции
  • Returns SDO_DAS_XML_Document for a given xml instance string

SDO_DAS_XML::loadString

(^)

SDO_DAS_XML::loadString — Returns SDO_DAS_XML_Document for a given xml instance string

Описание

SDO_DAS_XML::loadString ( string $xml_string ) : SDO_DAS_XML_Document

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.


Saves the SDO_DAS_XML_Document object to a file

  • « SDO_DAS_XML::loadString
  • SDO_DAS_XML::saveString »
  • PHP Manual
  • SDO DAS XML Функции
  • Saves the SDO_DAS_XML_Document object to a file

SDO_DAS_XML::saveFile

(^)

SDO_DAS_XML::saveFile — Saves the SDO_DAS_XML_Document object to a file

Описание

SDO_DAS_XML::saveFile ( SDO_XMLDocument $xdoc , string $xml_file [, int $indent ] ) : void

Saves the SDO_DAS_XML_Document object to a file.

Список параметров

xdoc

SDO_DAS_XML_Document object.

xml_file

xml file.

indent

Optional argument to specify that the xml should be formatted. A non-negative integer is the amount to indent each level of the xml. So, the integer 2, for example, will indent the xml so that each contained element is two spaces further to the right than its containing element. The integer 0 will cause the xml to be completely left-aligned. The integer -1 means no formatting - the xml will come out on one long line.

Возвращаемые значения

None.

Ошибки

SDO_DAS_XML_FileException

Thrown if the specified file cannot be found.


Saves the SDO_DAS_XML_Document object to a string

  • « SDO_DAS_XML::saveFile
  • SDO_DAS_XML_Document::getRootDataObject »
  • PHP Manual
  • SDO DAS XML Функции
  • Saves the SDO_DAS_XML_Document object to a string

SDO_DAS_XML::saveString

(^)

SDO_DAS_XML::saveString — Saves the SDO_DAS_XML_Document object to a string

Описание

SDO_DAS_XML::saveString ( SDO_XMLDocument $xdoc [, int $indent ] ) : string

Saves the SDO_DAS_XML_Document object to string.

Список параметров

xdoc

SDO_DAS_XML_Document object.

indent

Optional argument to specify that the xml should be formatted. A non-negative integer is the amount to indent each level of the xml. So, the integer 2, for example, will indent the xml so that each contained element is two spaces further to the right than its containing element. The integer 0 will cause the xml to be completely left-aligned. The integer -1 means no formatting - the xml will come out on one long line.

Возвращаемые значения

xml string.


Returns the root SDO_DataObject

  • « SDO_DAS_XML::saveString
  • SDO_DAS_XML_Document::getRootElementName »
  • PHP Manual
  • SDO DAS XML Функции
  • Returns the root SDO_DataObject

SDO_DAS_XML_Document::getRootDataObject

(^)

SDO_DAS_XML_Document::getRootDataObject — Returns the root SDO_DataObject

Описание

SDO_DAS_XML_Document::getRootDataObject ( void ) : SDO_DataObject

Returns the root SDO_DataObject.

Список параметров

Возвращаемые значения

Returns the root SDO_DataObject.


Returns root element's name

  • « SDO_DAS_XML_Document::getRootDataObject
  • SDO_DAS_XML_Document::getRootElementURI »
  • PHP Manual
  • SDO DAS XML Функции
  • Returns root element's name

SDO_DAS_XML_Document::getRootElementName

(^)

SDO_DAS_XML_Document::getRootElementName — Returns root element's name

Описание

SDO_DAS_XML_Document::getRootElementName ( void ) : string

Returns root element's name.

Список параметров

Возвращаемые значения

Returns root element's name.


Returns root element's URI string

  • « SDO_DAS_XML_Document::getRootElementName
  • SDO_DAS_XML_Document::setEncoding »
  • PHP Manual
  • SDO DAS XML Функции
  • Returns root element's URI string

SDO_DAS_XML_Document::getRootElementURI

(^)

SDO_DAS_XML_Document::getRootElementURI — Returns root element's URI string

Описание

SDO_DAS_XML_Document::getRootElementURI ( void ) : string

Returns root element's URI string.

Список параметров

Возвращаемые значения

Returns root element's URI string.


Sets the given string as encoding

  • « SDO_DAS_XML_Document::getRootElementURI
  • SDO_DAS_XML_Document::setXMLDeclaration »
  • PHP Manual
  • SDO DAS XML Функции
  • Sets the given string as encoding

SDO_DAS_XML_Document::setEncoding

(^)

SDO_DAS_XML_Document::setEncoding — Sets the given string as encoding

Описание

SDO_DAS_XML_Document::setEncoding ( string $encoding ) : void

Sets the given string as encoding.

Список параметров

encoding

Encoding string.

Возвращаемые значения

None.


Sets the xml declaration

  • « SDO_DAS_XML_Document::setEncoding
  • SDO_DAS_XML_Document::setXMLVersion »
  • PHP Manual
  • SDO DAS XML Функции
  • Sets the xml declaration

SDO_DAS_XML_Document::setXMLDeclaration

(^)

SDO_DAS_XML_Document::setXMLDeclaration — Sets the xml declaration

Описание

SDO_DAS_XML_Document::setXMLDeclaration ( bool $xmlDeclatation ) : void

Controls whether an XML declaration will be generated at the start of the XML document. Set to TRUE to generate the XML declaration, or FALSE to suppress it.

Список параметров

xmlDeclatation

Boolean value to set the XML declaration.

Возвращаемые значения

None.


Sets the given string as xml version

  • « SDO_DAS_XML_Document::setXMLDeclaration
  • SimpleXML »
  • PHP Manual
  • SDO DAS XML Функции
  • Sets the given string as xml version

SDO_DAS_XML_Document::setXMLVersion

(^)

SDO_DAS_XML_Document::setXMLVersion — Sets the given string as xml version

Описание

SDO_DAS_XML_Document::setXMLVersion ( string $xmlVersion ) : void

Sets the given string as xml version.

Список параметров

xmlVersion

xml version string.

Возвращаемые значения

None.


SimpleXML

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Базовое использование SimpleXML
    • Работа с ошибками XML
  • SimpleXMLElement — Класс SimpleXMLElement
    • SimpleXMLElement::addAttribute — Добавляет атрибут к SimpleXML-элементу
    • SimpleXMLElement::addChild — Добавляет дочерний элемент к узлу XML
    • SimpleXMLElement::asXML — Возвращает сформированный XML-документ в виде строки на основе элемента SimpleXML
    • SimpleXMLElement::attributes — Возвращает атрибуты элемента
    • SimpleXMLElement::children — Находит дочерние элементы данного узла
    • SimpleXMLElement::__construct — Создание нового объекта SimpleXMLElement
    • SimpleXMLElement::count — Подсчитывает количество дочерних элементов у текущего элемента
    • SimpleXMLElement::getDocNamespaces — Возвращает пространства имен, объявленные в документе
    • SimpleXMLElement::getName — Получает имя элемента XML
    • SimpleXMLElement::getNamespaces — Возвращает пространства имен, используемые в документе
    • SimpleXMLElement::registerXPathNamespace — Создает префикс/пространство имен контекста для следующего запроса XPath
    • SimpleXMLElement::saveXML — Псевдоним SimpleXMLElement::asXML
    • SimpleXMLElement::__toString — Возвращает содержимое строки
    • SimpleXMLElement::xpath — Запускает запрос XPath к XML-данным
  • SimpleXMLIterator — Класс SimpleXMLIterator
    • SimpleXMLIterator::current — Возвращает текущий элемент
    • SimpleXMLIterator::getChildren — Возвращает вложенные элементы текущего элемента
    • SimpleXMLIterator::hasChildren — Проверяет, имеет ли текущий элемент вложенные элементы
    • SimpleXMLIterator::key — Возвращает текущий ключ
    • SimpleXMLIterator::next — Перемещает итератор к следующему элементу
    • SimpleXMLIterator::rewind — Возвращает итератор к первому элементу
    • SimpleXMLIterator::valid — Проверяет, является ли текущий элемент допустимым
  • Функции SimpleXML
    • simplexml_import_dom — Получает объект класса SimpleXMLElement из узла DOM
    • simplexml_load_file — Интерпретирует XML-файл в объект
    • simplexml_load_string — Интерпретирует строку с XML в объект


Введение

Расширение SimpleXML предоставляет очень простой и легкий в использовании набор инструментов для преобразования XML в объект, с которым можно затем работать через его свойства и с помощью итераторов.


Требования

Для корректной работы этого расширения необходимо PHP расширение libxml. Это означает, что также необходима передача опции --enable-libxml , хотя неявно это уже сделано, так как поддержка libxml по умолчанию включена.

Модуль SimpleXML требует PHP 5.


Установка

Это расширение включено по умолчанию. Оно может быть отключено во время выполнения с помощью следующей опции: --disable-simplexml

Примечание: До PHP 5.1.2 необходима опция --enable-simplexml для работы этого расширения.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • SimpleXML
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Базовое использование SimpleXML »
  • PHP Manual
  • SimpleXML
  • Примеры

Примеры

Содержание

  • Базовое использование SimpleXML
  • Работа с ошибками XML


Базовое использование SimpleXML

Некоторые примеры этого руководства включают XML-строку. Вместо того, чтобы повторять ее в каждом примере, положите эту строку в файл, который и включайте в каждом примере. Эта строка приведена в следующем примере. Помимо этого можно создать XML-документ и считывать его функцией simplexml_load_file().

Пример #1 Файл example.php с XML строкой

<?php
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <title>PHP: Появление Парсера</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>
   Таким образом, это язык. Это все равно язык программирования. Или
   это скриптовый язык? Все раскрывается в этом документальном фильме,
   похожем на фильм ужасов.
  </plot>
  <great-lines>
   <line>PHP решает все мои проблемы в вебе</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>
XML;
?>

SimpleXML пользоваться очень просто! Попробуйте получить какую-нибудь строку или число из базового XML-документа.

Пример #2 Получение части документа <plot>

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

echo $movies->movie[0]->plot;
?>

Результат выполнения данного примера:

   Таким образом, это язык. Это все равно язык программирования. Или
   это скриптовый язык? Все раскрывается в этом документальном фильме,
   похожем на фильм ужасов.

В PHP получить доступ к элементу в XML документе, содержащим в названии недопустимые символы (например, дефис), можно путем заключения данного имени элемента в фигурные скобки и апострофы.

Пример #3 Получение строки <line>

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

echo $movies->movie->{'great-lines'}->line;
?>

Результат выполнения данного примера:

PHP решает все мои проблемы в вебе

Пример #4 Доступ к неуникальным элементам в SimpleXML

В том случае, если существует несколько экземпляров дочерних элементов в одном родительском элементе, то нужно применять стандартные методы итерации.

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

/* Для каждого узла <character>, мы отдельно выведем имя <name>. */
foreach ($movies->movie->characters->character as $character) {
   echo $character->name, ' играет ', $character->actor, PHP_EOL;
}

?>

Результат выполнения данного примера:

Ms. Coder играет Onlivia Actora
Mr. Coder играет El ActOr

Замечание:

Свойства ($movies->movie в предыдущем примере) не являются массивами. Это итерируемый объект в виде массива.

Пример #5 Использование атрибутов

До сих пор мы только получали названия и значения элементов. SimpleXML может также получать доступ к атрибутам элемента. Получить доступ к атрибуту элемента можно так же, как к элементам массива (array).

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

/* Доступ к узлу <rating> первого фильма.
 * Так же выведем шкалу оценок. */
foreach ($movies->movie[0]->rating as $rating) {
    switch((string) $rating['type']) { // Получение атрибутов элемента по индексу
    case 'thumbs':
        echo $rating, ' thumbs up';
        break;
    case 'stars':
        echo $rating, ' stars';
        break;
    }
}
?>

Результат выполнения данного примера:

7 thumbs up5 stars

Пример #6 Сравнение элементов и атрибутов с текстом

Для сравнения элемента или атрибута со строкой или для передачи в функцию в качестве текста, необходимо привести его к строке, используя (string). В противном случае, PHP будет рассматривать элемент как объект.

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

if ((string) $movies->movie->title == 'PHP: Появление Парсера') {
    print 'Мой любимый фильм.';
}

echo htmlentities((string) $movies->movie->title);
?>

Результат выполнения данного примера:

Мой любимый фильм.PHP: Появление Парсера

Пример #7 Сравнение двух элементов

Два элемента SimpleXMLElements считаются разными, даже если они указывают на один и тот же объект, начиная с PHP 5.2.0.

<?php
include 'example.php';

$movies1 = new SimpleXMLElement($xmlstr);
$movies2 = new SimpleXMLElement($xmlstr);
var_dump($movies1 == $movies2); // false начиная с PHP 5.2.0
?>

Результат выполнения данного примера:

bool(false)

Пример #8 Использование XPath

SimpleXML включает в себя встроенную поддержку XPath. Поиск всех элементов <character>:

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

foreach ($movies->xpath('//character') as $character) {
    echo $character->name, ' играет ', $character->actor, PHP_EOL;
}
?>

'//' служит в качестве шаблона. Для указания абсолютного пути, опустите одну из косых черт.

Результат выполнения данного примера:

Ms. Coder играет Onlivia Actora
Mr. Coder играет by El ActOr

Пример #9 Установка значений

Данные в SimpleXML не обязательно должны быть неизменяемыми. Объект позволяет манипулировать всеми элементами.

<?php
include 'example.php';
$movies = new SimpleXMLElement($xmlstr);

$movies->movie[0]->characters->character[0]->name = 'Miss Coder';

echo $movies->asXML();
?>

Результат выполнения данного примера:

<?xml version="1.0" standalone="yes"?>
<movies>
 <movie>
  <title>PHP: Появление Парсера</title>
  <characters>
   <character>
    <name>Miss Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   Таким образом, это язык. Это все равно язык программирования. Или
   это скриптовый язык? Все раскрывается в этом документальном фильме,
   похожем на фильм ужасов.
  </plot>
  <great-lines>
   <line>PHP решает все мои задачи в web</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>

Пример #10 Добавление элементов и атрибутов

Начиная с PHP 5.1.3, SimpleXML имеет возможность легко добавлять дочерние элементы и атрибуты.

<?php
include 'example.php';
$movies = new SimpleXMLElement($xmlstr);

$character = $movies->movie[0]->characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movies->movie[0]->addChild('rating', 'PG');
$rating->addAttribute('type', 'mpaa');

echo $movies->asXML();
?>

Результат выполнения данного примера:

<?xml version="1.0" standalone="yes"?>
<movies>
 <movie>
  <title>PHP: Появление Парсера</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  <character><name>Mr. Parser</name><actor>John Doe</actor></character></characters>
  <plot>
   Таким образом, это язык. Это все равно язык программирования. Или
   это скриптовый язык? Все раскрывается в этом документальном фильме,
   похожем на фильм ужасов.
  </plot>
  <great-lines>
   <line>PHP решает все мои задачи в web</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 <rating type="mpaa">PG</rating></movie>
</movies>

Пример #11 Взаимодействие с DOM

PHP может преобразовывать XML-узлы из SimpleXML в формат DOM и наоборот. Этот пример показывает, как можно изменить DOM-элемент в SimpleXML.

<?php
$dom = new DOMDocument;
$dom->loadXML('<books><book><title>чепуха</title></book></books>');
if (!$dom) {
    echo 'Ошибка при разборе документа';
    exit;
}

$books = simplexml_import_dom($dom);

echo $books->book[0]->title;
?>

Результат выполнения данного примера:

чепуха


Работа с ошибками XML

Работа с ошибками XML при загрузке документов является очень простой задачей. Использование функциональности libxml позволяет подавить все XML-ошибки при загрузке документа и затем обработать их.

Объект libXMLError, возвращаемый libxml_get_errors(), содержит несколько свойств, в том числе сообщение, номер строки и колонку (позицию) этой ошибки.

Пример #1 Загрузка синтаксически неправильной XML-строки

<?php
libxml_use_internal_errors(true);
$sxe = simplexml_load_string("<?xml version='1.0'><broken><xml></broken>");
if (!$sxe) {
    echo "Ошибка загрузки XML\n";
    foreach(libxml_get_errors() as $error) {
        echo "\t", $error->message;
    }
}
?>

Результат выполнения данного примера:

Ошибка загрузки XML
    Blank needed here
    parsing XML declaration: '?>' expected
    Opening and ending tag mismatch: xml line 1 and broken
    Premature end of data in tag broken line 1

Смотрите также

  • libxml_use_internal_errors()
  • libxml_get_errors()
  • libXMLError


Класс SimpleXMLElement

(PHP 5, PHP 7)

Введение

Представляет собой элемент в XML-документе.

Обзор классов

SimpleXMLElement implements Traversable {
/* Методы */
final public __construct ( string $data [, int $options = 0 [, bool $data_is_url = FALSE [, string $ns = "" [, bool $is_prefix = FALSE ]]]] )
public addAttribute ( string $name [, string $value [, string $namespace ]] ) : void
public addChild ( string $name [, string $value [, string $namespace ]] ) : SimpleXMLElement
public asXML ([ string $filename ] ) : mixed
public attributes ([ string $ns = NULL [, bool $is_prefix = FALSE ]] ) : SimpleXMLElement
public children ([ string $ns [, bool $is_prefix = FALSE ]] ) : SimpleXMLElement
public count ( void ) : int
public getDocNamespaces ([ bool $recursive = FALSE [, bool $from_root = TRUE ]] ) : array
public getName ( void ) : string
public getNamespaces ([ bool $recursive = FALSE ] ) : array
public registerXPathNamespace ( string $prefix , string $ns ) : bool
public __toString ( void ) : string
public xpath ( string $path ) : array
}

Содержание

  • SimpleXMLElement::addAttribute — Добавляет атрибут к SimpleXML-элементу
  • SimpleXMLElement::addChild — Добавляет дочерний элемент к узлу XML
  • SimpleXMLElement::asXML — Возвращает сформированный XML-документ в виде строки на основе элемента SimpleXML
  • SimpleXMLElement::attributes — Возвращает атрибуты элемента
  • SimpleXMLElement::children — Находит дочерние элементы данного узла
  • SimpleXMLElement::__construct — Создание нового объекта SimpleXMLElement
  • SimpleXMLElement::count — Подсчитывает количество дочерних элементов у текущего элемента
  • SimpleXMLElement::getDocNamespaces — Возвращает пространства имен, объявленные в документе
  • SimpleXMLElement::getName — Получает имя элемента XML
  • SimpleXMLElement::getNamespaces — Возвращает пространства имен, используемые в документе
  • SimpleXMLElement::registerXPathNamespace — Создает префикс/пространство имен контекста для следующего запроса XPath
  • SimpleXMLElement::saveXML — Псевдоним SimpleXMLElement::asXML
  • SimpleXMLElement::__toString — Возвращает содержимое строки
  • SimpleXMLElement::xpath — Запускает запрос XPath к XML-данным


Добавляет атрибут к SimpleXML-элементу

  • « SimpleXMLElement
  • SimpleXMLElement::addChild »
  • PHP Manual
  • SimpleXMLElement
  • Добавляет атрибут к SimpleXML-элементу

SimpleXMLElement::addAttribute

(PHP 5 >= 5.1.3, PHP 7)

SimpleXMLElement::addAttribute — Добавляет атрибут к SimpleXML-элементу

Описание

public SimpleXMLElement::addAttribute ( string $name [, string $value [, string $namespace ]] ) : void

Добавляет атрибут к SimpleXML-элементу.

Список параметров

name

Название добавляемого атрибута.

value

Значение атрибута.

namespace

Необязательный параметр указывает на пространство имен, к которому принадлежит атрибут.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Замечание:

Перечисленные примеры могут включать example.php, в котором определяется XML-строка, расположенная в первом примере руководства по базовому использованию.

Пример #1 Добавление атрибутов и потомков к SimpleXML-элементу

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: Истории парсера');
$movie->addChild('plot', 'Все о людях, создававших его.');

$characters = $movie->addChild('characters');
$character  = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');

echo $sxe->asXML();

?>

Результатом выполнения данного примера будет что-то подобное:

<?xml version="1.0" standalone="yes"?>
<movies type="documentary">
 <movie>
  <title>PHP: Появление Парсера</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   Итак, этот язык. Типа, язык программирования. Или
   это скриптовый язык? Все раскрывается в этом документальном фильме,
   похожем на фильм ужасов.
  </plot>
  <great-lines>
   <line>PHP решает все мои задачи в web</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
 <movie>
  <title>PHP2: Истории парсера</title>
  <plot>Все о людях, создававших его.</plot>
  <characters>
   <character>
    <name>Mr. Parser</name>
    <actor>John Doe</actor>
   </character>
  </characters>
  <rating type="stars">5</rating>
 </movie>
</movies>

Смотрите также

  • SimpleXMLElement::addChild() - Добавляет дочерний элемент к узлу XML
  • Базовое использование SimpleXML


Добавляет дочерний элемент к узлу XML

  • « SimpleXMLElement::addAttribute
  • SimpleXMLElement::asXML »
  • PHP Manual
  • SimpleXMLElement
  • Добавляет дочерний элемент к узлу XML

SimpleXMLElement::addChild

(PHP 5 >= 5.1.3, PHP 7)

SimpleXMLElement::addChild — Добавляет дочерний элемент к узлу XML

Описание

public SimpleXMLElement::addChild ( string $name [, string $value [, string $namespace ]] ) : SimpleXMLElement

Добавляет дочерний элемент к узлу и возвращает потомка SimpleXMLElement.

Список параметров

name

Имя добавляемого дочернего элемента.

value

Если указано, то значение (содержимое) дочернего элемента.

namespace

Если указано, то пространство имен, к которому принадлежит дочерний элемент.

Возвращаемые значения

Метод addChild возвращает объект SimpleXMLElement, представляющий добавленного потомка к узлу XML.

Примеры

Замечание:

Перечисленные примеры могут включать example.php, в котором определяется XML-строка, расположенная в первом примере руководства по базовому использованию.

Пример #1 Добавление атрибутов и потомков к элементу SimpleXML

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: Истории парсера');
$movie->addChild('plot', 'Все о людях, создававших его.');

$characters = $movie->addChild('characters');
$character  = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');

echo $sxe->asXML();

?>

Результатом выполнения данного примера будет что-то подобное:

<?xml version="1.0" standalone="yes"?>
<movies type="documentary">
 <movie>
  <title>PHP: Появление Парсера</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   Таким образом, это язык. Это все равно язык программирования. Или
   это скриптовый язык? Все раскрывается в этом документальном фильме,
   похожем на фильм ужасов.
  </plot>
  <great-lines>
   <line>PHP решает все мои задачи в web</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
 <movie>
  <title>PHP2: Истории парсера</title>
  <plot>Все о людях, создававших его.</plot>
  <characters>
   <character>
    <name>Mr. Parser</name>
    <actor>John Doe</actor>
   </character>
  </characters>
  <rating type="stars">5</rating>
 </movie>
</movies>

Смотрите также

  • SimpleXMLElement::addAttribute() - Добавляет атрибут к SimpleXML-элементу
  • Базовое использование SimpleXML


Возвращает сформированный XML-документ в виде строки на основе элемента SimpleXML

  • « SimpleXMLElement::addChild
  • SimpleXMLElement::attributes »
  • PHP Manual
  • SimpleXMLElement
  • Возвращает сформированный XML-документ в виде строки на основе элемента SimpleXML

SimpleXMLElement::asXML

(PHP 5, PHP 7)

SimpleXMLElement::asXML — Возвращает сформированный XML-документ в виде строки на основе элемента SimpleXML

Описание

public SimpleXMLElement::asXML ([ string $filename ] ) : mixed

Метод asXML задает формат данных родительских объектов в версии XML 1.0.

Список параметров

filename

Если указан, то функция запишет данные в файл, а не вернет их.

Возвращаемые значения

Если filename не указан, то функция вернет строку (string) в случае успеха и FALSE в случае ошибки. Если параметр указан, то функция вернет TRUE, если файл будет успешно записан и FALSE в противном случае.

Примеры

Пример #1 Получение XML

<?php
$string = <<<XML
<a>
 <b>
  <c>текст</c>
  <c>штучка</c>
 </b>
 <d>
  <c>код</c>
 </d>
</a>
XML;

$xml = new SimpleXMLElement($string);

echo $xml->asXML();

?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<a>
 <b>
  <c>текст</c>
  <c>штучка</c>
 </b>
 <d>
  <c>код</c>
 </d>
</a>

asXML также работает с результатами Xpath:

Пример #2 Использование asXML() с результатами SimpleXMLElement::xpath()

<?php
// Продолжение примера XML выше.

/* Поиск <a><b><c> */
$result = $xml->xpath('/a/b/c');

foreach ($result as $node) {
    echo $node->asXML();
}
?>

Результат выполнения данного примера:

<c>текст</c><c>штучка</c>

Смотрите также

  • SimpleXMLElement::__toString() - Возвращает содержимое строки
  • Базовое использование SimpleXML


Возвращает атрибуты элемента

  • « SimpleXMLElement::asXML
  • SimpleXMLElement::children »
  • PHP Manual
  • SimpleXMLElement
  • Возвращает атрибуты элемента

SimpleXMLElement::attributes

(PHP 5, PHP 7)

SimpleXMLElement::attributes — Возвращает атрибуты элемента

Описание

public SimpleXMLElement::attributes ([ string $ns = NULL [, bool $is_prefix = FALSE ]] ) : SimpleXMLElement

Эта функция возвращает названия и значения атрибутов, определенные в теге XML.

Замечание: SimpleXML содержит правило добавления итеративных свойств к большинству методов. Они не могут быть просмотрены с использованием var_dump() или каких-либо других средств анализа объектов.

Список параметров

ns

Необязательное пространство имен для извлеченных атрибутов

is_prefix

По умолчанию FALSE

Возвращаемые значения

Возвращает итерируемый объект SimpleXMLElement, по которому можно перемещаться для перебора всех атрибутов тега.

Возвращает NULL, если вызванный объект SimpleXMLElement уже представляет атрибут, а не тег.

Примеры

Пример #1 Интерпретация XML-строки

<?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";
}
?>

Результат выполнения данного примера:

name="one"
game="lonely"

Смотрите также

  • Базовое использование SimpleXML


Находит дочерние элементы данного узла

  • « SimpleXMLElement::attributes
  • SimpleXMLElement::__construct »
  • PHP Manual
  • SimpleXMLElement
  • Находит дочерние элементы данного узла

SimpleXMLElement::children

(PHP 5, PHP 7)

SimpleXMLElement::children — Находит дочерние элементы данного узла

Описание

public SimpleXMLElement::children ([ string $ns [, bool $is_prefix = FALSE ]] ) : SimpleXMLElement

Этот метод находит все дочерние элементы узла. Результат подчиняется стандартным правилам итерации.

Замечание: SimpleXML содержит правило добавления итеративных свойств к большинству методов. Они не могут быть просмотрены с использованием var_dump() или каких-либо других средств анализа объектов.

Список параметров

ns

Необязательное пространство имен XML.

is_prefix

Если is_prefix установлен в TRUE, ns будет рассмотрен как префикс. Если FALSE, ns будет рассмотрен как пространство имен URL.

Возвращаемые значения

Возвращает элемент SimpleXMLElement, даже если узел не имеет дочерних элементов.

Список изменений

Версия | Описание
5.2.0 | Добавлен необязательный параметр is_prefix.

Примеры

Пример #1 Обход псевдомассива children()

<?php
$xml = new SimpleXMLElement(
'<person>
 <child role="сын">
  <child role="дочь"/>
 </child>
 <child role="дочь">
  <child role="сын">
   <child role="сын"/>
  </child>
 </child>
</person>');

foreach ($xml->children() as $second_gen) {
    echo ' У человека родился(-ась) ' . $second_gen['role'];

    foreach ($second_gen->children() as $third_gen) {
        echo ', у которого родился(-ась) ' . $third_gen['role'] . ';';

        foreach ($third_gen->children() as $fourth_gen) {
            echo ' и у ' . $third_gen['role'] .
                ' родился(-ась) ' . $fourth_gen['role'];
        }
    }
}
?>

Результат выполнения данного примера:

У человека родился(-ась) сын, у которого родился(-ась) дочь; У человека
родился(-ась) дочь, у которого родился(-ась) сын; и у сын родился(-ась) сын

Пример #2 Использование пространства имен

<?php
$xml = '<example xmlns:foo="my.foo.urn">
  <foo:a>Яблоко</foo:a>
  <foo:b>Банан</foo:b>
  <c>Вишня</c>
</example>';

$sxe = new SimpleXMLElement($xml);

$kids = $sxe->children('foo');
var_dump(count($kids));

$kids = $sxe->children('foo', TRUE);
var_dump(count($kids));

$kids = $sxe->children('my.foo.urn');
var_dump(count($kids));

$kids = $sxe->children('my.foo.urn', TRUE);
var_dump(count($kids));

$kids = $sxe->children();
var_dump(count($kids));
?>
int(0)
int(2)
int(2)
int(0)
int(1)

Примечания

SimpleXMLElement::children() вернет узел объекта в любом случае, даже если текущий узел не имеет потомков. Используя count() для возвращенного значения, можно узнать о существовании потомков. В PHP 5.3.0 вместо этого можно использовать SimpleXMLElement::count().

Смотрите также

  • SimpleXMLElement::count() - Подсчитывает количество дочерних элементов у текущего элемента
  • count() - Подсчитывает количество элементов массива или чего-либо в объекте


Создание нового объекта SimpleXMLElement

  • « SimpleXMLElement::children
  • SimpleXMLElement::count »
  • PHP Manual
  • SimpleXMLElement
  • Создание нового объекта SimpleXMLElement

SimpleXMLElement::__construct

(PHP 5, PHP 7)

SimpleXMLElement::__construct — Создание нового объекта SimpleXMLElement

Описание

final public SimpleXMLElement::__construct ( string $data [, int $options = 0 [, bool $data_is_url = FALSE [, string $ns = "" [, bool $is_prefix = FALSE ]]]] )

Создает новый объект SimpleXMLElement.

Список параметров

data

Правильно сформированная XML-строка. Может быть путем или URL к XML-документу, если параметр data_is_url установлен в TRUE.

options

Необязательный параметр, используется для указания дополнительных параметров Libxml.

Замечание:

Для возможности доступа к глубоко вложенным элементам XML или для обработки очень больших текстовых узлов может понадобиться использовать LIBXML_PARSEHUGE.

data_is_url

По умолчанию data_is_url установлен в FALSE. Используйте TRUE для указания того, что data является путем или URL к XML-документу вместо данных типа string.

ns

Префикс пространства имен или URI.

is_prefix

TRUE, если ns является префиксом, FALSE, если это URI; по умолчанию FALSE.

Возвращаемые значения

Возвращает объект SimpleXMLElement, представляющий data.

Ошибки

Выдает сообщение с ошибкой E_WARNING для каждой найденной ошибки в XML-данных, и дополнительно генерирует исключение Exception, если данные XML не могут быть разобраны.

Подсказка

Используйте libxml_use_internal_errors() для подавления всех XML-ошибок и libxml_get_errors() для их итерации по ним.

Примеры

Замечание:

Перечисленные примеры могут включать example.php, в котором определяется XML-строка, расположенная в первом примере руководства по базовому использованию.

Пример #1 Создание объекта SimpleXMLElement

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
echo $sxe->movie[0]->title;

?>

Результат выполнения данного примера:

PHP: Появление Парсера

Пример #2 Создание объекта SimpleXMLElement из URL

<?php

$sxe = new SimpleXMLElement('http://example.org/document.xml', NULL, TRUE);
echo $sxe->asXML();

?>

Список изменений

Версия | Описание
5.2.0 | Добавлены параметры ns и is_prefix.
5.1.2 | Добавлены параметры options и data_is_url.

Смотрите также

  • Базовое использование SimpleXML
  • simplexml_load_string() - Интерпретирует строку с XML в объект
  • simplexml_load_file() - Интерпретирует XML-файл в объект
  • Работа с ошибками XML
  • libxml_use_internal_errors() - Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю


Подсчитывает количество дочерних элементов у текущего элемента

  • « SimpleXMLElement::__construct
  • SimpleXMLElement::getDocNamespaces »
  • PHP Manual
  • SimpleXMLElement
  • Подсчитывает количество дочерних элементов у текущего элемента

SimpleXMLElement::count

(PHP 5 >= 5.3.0, PHP 7)

SimpleXMLElement::count — Подсчитывает количество дочерних элементов у текущего элемента

Описание

public SimpleXMLElement::count ( void ) : int

Этот метод подсчитывает количество дочерних элементов у текущего элемента.

Возвращаемые значения

Возвращает число элементов у текущего элемента.

Примеры

Пример #1 Подсчет количества дочерних элементов

<?php
$xml = <<<EOF
<people>
 <person name="Человек 1">
  <child/>
  <child/>
  <child/>
 </person>
 <person name="Человек 2">
  <child/>
  <child/>
  <child/>
  <child/>
  <child/>
 </person>
</people>
EOF;

$elem = new SimpleXMLElement($xml);

foreach ($elem as $person) {
    printf("%s имеет %d детей.\n", $person['name'], $person->count());
}
?>

Результат выполнения данного примера:

Человек 1 имеет 3 детей.
Человек 2 имеет 5 детей.

Смотрите также

  • SimpleXMLElement::children() - Находит дочерние элементы данного узла


Возвращает пространства имен, объявленные в документе

  • « SimpleXMLElement::count
  • SimpleXMLElement::getName »
  • PHP Manual
  • SimpleXMLElement
  • Возвращает пространства имен, объявленные в документе

SimpleXMLElement::getDocNamespaces

(PHP 5 >= 5.1.2, PHP 7)

SimpleXMLElement::getDocNamespaces — Возвращает пространства имен, объявленные в документе

Описание

public SimpleXMLElement::getDocNamespaces ([ bool $recursive = FALSE [, bool $from_root = TRUE ]] ) : array

Возвращает пространства имен, объявленные в документе

Список параметров

recursive

Если указано, то возвращает все объявленные пространства имен у родительского узла и его дочерних элементов. В противном случае, возвращает только объявленное пространство имен корневого узла.

from_root

Позволяет рекурсивно проверить пространства имен у дочернего узла вместо корневого узла XML документа.

Возвращаемые значения

Метод getDocNamespaces возвращает массив (array) с названиями пространств имен и связанными с ними URI.

Примеры

Пример #1 Получение пространства имен документа

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns">
    <p:person id="1">John Doe</p:person>
    <p:person id="2">Susie Q. Public</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces();
var_dump($namespaces);

?>

Результат выполнения данного примера:

array(1) {
   ["p"]=>
   string(21) "http://example.org/ns"
}

Пример #2 Работа с несколькими пространствами имен

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
    <p:person t:id="1">John Doe</p:person>
    <p:person t:id="2" a:addr="123 Street" xmlns:a="http://example.org/addr">
        Susie Q. Public
    </p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces(TRUE);
var_dump($namespaces);

?>

Результат выполнения данного примера:

array(3) {
  ["p"]=>
  string(21) "http://example.org/ns"
  ["t"]=>
  string(23) "http://example.org/test"
  ["a"]=>
  string(23) "http://example.org/addr"
}

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр from_root.

Смотрите также

  • SimpleXMLElement::getNamespaces() - Возвращает пространства имен, используемые в документе
  • SimpleXMLElement::registerXPathNamespace() - Создает префикс/пространство имен контекста для следующего запроса XPath


Получает имя элемента XML

  • « SimpleXMLElement::getDocNamespaces
  • SimpleXMLElement::getNamespaces »
  • PHP Manual
  • SimpleXMLElement
  • Получает имя элемента XML

SimpleXMLElement::getName

(PHP 5 >= 5.1.3, PHP 7)

SimpleXMLElement::getName — Получает имя элемента XML

Описание

public SimpleXMLElement::getName ( void ) : string

Получает имя элемента XML.

Возвращаемые значения

Метод getName возвращает имя тега XML в виде строки (string), на который ссылается объект SimpleXMLElement.

Примеры

Замечание:

Перечисленные примеры могут включать example.php, в котором определяется XML-строка, расположенная в первом примере руководства по базовому использованию.

Пример #1 Получение имен XML-элемента

<?php
include 'example.php';
$sxe = new SimpleXMLElement($xmlstr);

echo $sxe->getName() . "\n";

foreach ($sxe->children() as $child)
{
    echo $child->getName() . "\n";
}

?>

Результат выполнения данного примера:

movies
movie


Возвращает пространства имен, используемые в документе

  • « SimpleXMLElement::getName
  • SimpleXMLElement::registerXPathNamespace »
  • PHP Manual
  • SimpleXMLElement
  • Возвращает пространства имен, используемые в документе

SimpleXMLElement::getNamespaces

(PHP 5 >= 5.1.2, PHP 7)

SimpleXMLElement::getNamespaces — Возвращает пространства имен, используемые в документе

Описание

public SimpleXMLElement::getNamespaces ([ bool $recursive = FALSE ] ) : array

Возвращает пространства имен, используемые в документе

Список параметров

recursive

Если указано, то возвращает все используемые пространства имен у родительского узла и его дочерних элементов. В противном случае возвращает только используемое пространство имен корневого узла.

Возвращаемые значения

Метод getNamespaces возвращает массив (array) с названиями пространств имен и связанными с ними URI.

Примеры

Пример #1 Получение пространств имен, используемых в документе

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
    <p:person id="1">John Doe</p:person>
    <p:person id="2">Susie Q. Public</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getNamespaces(true);
var_dump($namespaces);

?>

Результат выполнения данного примера:

array(1) {
  ["p"]=>
  string(21) "http://example.org/ns"
}

Смотрите также

  • SimpleXMLElement::getDocNamespaces() - Возвращает пространства имен, объявленные в документе
  • SimpleXMLElement::registerXPathNamespace() - Создает префикс/пространство имен контекста для следующего запроса XPath


Создает префикс/пространство имен контекста для следующего запроса XPath

  • « SimpleXMLElement::getNamespaces
  • SimpleXMLElement::saveXML »
  • PHP Manual
  • SimpleXMLElement
  • Создает префикс/пространство имен контекста для следующего запроса XPath

SimpleXMLElement::registerXPathNamespace

(PHP 5 >= 5.1.0, PHP 7)

SimpleXMLElement::registerXPathNamespace — Создает префикс/пространство имен контекста для следующего запроса XPath

Описание

public SimpleXMLElement::registerXPathNamespace ( string $prefix , string $ns ) : bool

Создает префикс/пространство имен контекста для следующего запроса XPath. В частности это необходимо, если поставщик данного XML-документа изменяет префикс пространства имен. registerXPathNamespace создаст префикс для связанного пространства имен, позволяя получить доступ к узлам в этом пространстве имен без необходимости изменения кода, учитывающего новые префиксы, предоставленные поставщиком.

Список параметров

prefix

Префикс используемого пространства имен в запросе XPath для получения пространства имен в ns.

ns

Используемое пространство имен для запроса XPath. Оно должно соответствовать пространству имен в используемом XML-документе или запрос XPath, использующий prefix не даст никаких результатов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Установка префикса пространства имен для использования в запросе XPath

<?php

$xml = <<<EOD
<book xmlns:chap="http://example.org/chapter-title">
    <title>My Book</title>
    <chapter id="1">
        <chap:title>Chapter 1</chap:title>
        <para>Donec velit. Nullam eget tellus vitae tortor gravida scelerisque.
            In orci lorem, cursus imperdiet, ultricies non, hendrerit et, orci.
            Nulla facilisi. Nullam velit nisl, laoreet id, condimentum ut,
            ultricies id, mauris.</para>
    </chapter>
    <chapter id="2">
        <chap:title>Chapter 2</chap:title>
        <para>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin
            gravida. Phasellus tincidunt massa vel urna. Proin adipiscing quam
            vitae odio. Sed dictum. Ut tincidunt lorem ac lorem. Duis eros
            tellus, pharetra id, faucibus eu, dapibus dictum, odio.</para>
    </chapter>
</book>
EOD;

$sxe = new SimpleXMLElement($xml);

$sxe->registerXPathNamespace('c', 'http://example.org/chapter-title');
$result = $sxe->xpath('//c:title');

foreach ($result as $title) {
  echo $title . "\n";
}

?>

Результат выполнения данного примера:

Chapter 1
Chapter 2

Обратите внимание, на то, как в примере XML-документу устанавливается пространство имен с префиксом chap. Представьте, что этот документ (или другой похожий) использовал префикс c в прошлом для одного и того же пространства имен. Так как он изменился, запрос XPath больше не вернет правильных результатов, и запрос придется изменять. Использование registerXPathNamespace позволяет избежать будущих модификаций запросов, даже если поставщик изменит префикс пространства имен.

Смотрите также

  • SimpleXMLElement::xpath() - Запускает запрос XPath к XML-данным
  • SimpleXMLElement::getDocNamespaces() - Возвращает пространства имен, объявленные в документе
  • SimpleXMLElement::getNamespaces() - Возвращает пространства имен, используемые в документе


Псевдоним SimpleXMLElement::asXML

  • « SimpleXMLElement::registerXPathNamespace
  • SimpleXMLElement::__toString »
  • PHP Manual
  • SimpleXMLElement
  • Псевдоним SimpleXMLElement::asXML

SimpleXMLElement::saveXML

(PHP 5 >= 5.2.0, PHP 7)

SimpleXMLElement::saveXML — Псевдоним SimpleXMLElement::asXML()

Описание

Этот метод является псевдонимом: SimpleXMLElement::asXML()


Возвращает содержимое строки

  • « SimpleXMLElement::saveXML
  • SimpleXMLElement::xpath »
  • PHP Manual
  • SimpleXMLElement
  • Возвращает содержимое строки

SimpleXMLElement::__toString

(PHP 5 >= 5.3.0, PHP 7)

SimpleXMLElement::__toString — Возвращает содержимое строки

Описание

public SimpleXMLElement::__toString ( void ) : string

Возвращает содержимое строки, находящиеся непосредственно в элементе. Не возвращает текстовый контент дочерних элементов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает содержимое строки в случае успеха и пустую строку в ином случае.

Примеры

Пример #1 Получить содержимое строки

<?php
$xml = new SimpleXMLElement('<a>1 <b>2 </b>3</a>');
echo $xml;
?>

Результат выполнения данного примера:

1 3

Смотрите также

  • SimpleXMLElement::asXML() - Возвращает сформированный XML-документ в виде строки на основе элемента SimpleXML


Запускает запрос XPath к XML-данным

  • « SimpleXMLElement::__toString
  • SimpleXMLIterator »
  • PHP Manual
  • SimpleXMLElement
  • Запускает запрос XPath к XML-данным

SimpleXMLElement::xpath

(PHP 5, PHP 7)

SimpleXMLElement::xpath — Запускает запрос XPath к XML-данным

Описание

public SimpleXMLElement::xpath ( string $path ) : array

Метод xpath ищет узлы SimpleXML с дочерними элементами, соответствующие XPath path.

Список параметров

path

Путь XPath

Возвращаемые значения

Возвращает массив (array) объектов SimpleXMLElement или FALSE в случае ошибки.

Примеры

Пример #1 Xpath

<?php
$string = <<<XML
<a>
 <b>
  <c>текст</c>
  <c>вещь</c>
 </b>
 <d>
  <c>код</c>
 </d>
</a>
XML;

$xml = new SimpleXMLElement($string);

/* Поиск <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo '/a/b/c: ',$node,"\n";
}

/* Относительные пути также работают... */
$result = $xml->xpath('b/c');

while(list( , $node) = each($result)) {
    echo 'b/c: ',$node,"\n";
}
?>

Результат выполнения данного примера:

/a/b/c: текст
/a/b/c: вещь
b/c: текст
b/c: вещь

Обратите внимание, что оба результата одинаковы.

Смотрите также

  • SimpleXMLElement::registerXPathNamespace() - Создает префикс/пространство имен контекста для следующего запроса XPath
  • SimpleXMLElement::getDocNamespaces() - Возвращает пространства имен, объявленные в документе
  • SimpleXMLElement::getNamespaces() - Возвращает пространства имен, используемые в документе
  • Базовое использование SimpleXML


Класс SimpleXMLIterator

(PHP 5 >= 5.1.3, PHP 7)

Введение

SimpleXMLIterator обеспечивает рекурсивную итерацию по всем узлам объекта SimpleXMLElement.

Обзор классов

SimpleXMLIterator extends SimpleXMLElement implements RecursiveIterator , Countable {
/* Методы */
public current ( void ) : mixed
public getChildren ( void ) : SimpleXMLIterator
public hasChildren ( void ) : bool
public key ( void ) : mixed
public next ( void ) : void
public rewind ( void ) : void
public valid ( void ) : bool
/* Наследуемые методы */
final public SimpleXMLElement::__construct ( string $data [, int $options = 0 [, bool $data_is_url = FALSE [, string $ns = "" [, bool $is_prefix = FALSE ]]]] )
public SimpleXMLElement::addAttribute ( string $name [, string $value [, string $namespace ]] ) : void
public SimpleXMLElement::addChild ( string $name [, string $value [, string $namespace ]] ) : SimpleXMLElement
public SimpleXMLElement::asXML ([ string $filename ] ) : mixed
public SimpleXMLElement::attributes ([ string $ns = NULL [, bool $is_prefix = FALSE ]] ) : SimpleXMLElement
public SimpleXMLElement::children ([ string $ns [, bool $is_prefix = FALSE ]] ) : SimpleXMLElement
public SimpleXMLElement::count ( void ) : int
public SimpleXMLElement::getDocNamespaces ([ bool $recursive = FALSE [, bool $from_root = TRUE ]] ) : array
public SimpleXMLElement::getName ( void ) : string
public SimpleXMLElement::getNamespaces ([ bool $recursive = FALSE ] ) : array
public SimpleXMLElement::registerXPathNamespace ( string $prefix , string $ns ) : bool
public SimpleXMLElement::__toString ( void ) : string
public SimpleXMLElement::xpath ( string $path ) : array
}

Содержание

  • SimpleXMLIterator::current — Возвращает текущий элемент
  • SimpleXMLIterator::getChildren — Возвращает вложенные элементы текущего элемента
  • SimpleXMLIterator::hasChildren — Проверяет, имеет ли текущий элемент вложенные элементы
  • SimpleXMLIterator::key — Возвращает текущий ключ
  • SimpleXMLIterator::next — Перемещает итератор к следующему элементу
  • SimpleXMLIterator::rewind — Возвращает итератор к первому элементу
  • SimpleXMLIterator::valid — Проверяет, является ли текущий элемент допустимым


Возвращает текущий элемент

  • « SimpleXMLIterator
  • SimpleXMLIterator::getChildren »
  • PHP Manual
  • SimpleXMLIterator
  • Возвращает текущий элемент

SimpleXMLIterator::current

(PHP 5, PHP 7)

SimpleXMLIterator::current — Возвращает текущий элемент

Описание

public SimpleXMLIterator::current ( void ) : mixed

Этот метод возвращает текущий элемент как объект класса SimpleXMLIterator или NULL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий элемент как объект класса SimpleXMLIterator или NULL в случае ошибки.

Примеры

Пример #1 Возвращение текущего элемента

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>Основы PHP</book><book>Основы XML</book></books>');
var_dump($xmlIterator->current());

$xmlIterator->rewind(); // сбрасывает курсор к первому элементу
var_dump($xmlIterator->current());
?>

Результат выполнения данного примера:

NULL
object(SimpleXMLIterator)#2 (1) {
  [0]=>
  string(10) "Основы PHP"
}

Смотрите также

  • SimpleXMLIterator::key() - Возвращает текущий ключ
  • SimpleXMLIterator::next() - Перемещает итератор к следующему элементу
  • SimpleXMLIterator::rewind() - Возвращает итератор к первому элементу
  • SimpleXMLIterator::valid() - Проверяет, является ли текущий элемент допустимым
  • SimpleXMLElement


Возвращает вложенные элементы текущего элемента

  • « SimpleXMLIterator::current
  • SimpleXMLIterator::hasChildren »
  • PHP Manual
  • SimpleXMLIterator
  • Возвращает вложенные элементы текущего элемента

SimpleXMLIterator::getChildren

(PHP 5, PHP 7)

SimpleXMLIterator::getChildren — Возвращает вложенные элементы текущего элемента

Описание

public SimpleXMLIterator::getChildren ( void ) : SimpleXMLIterator

Этот метод возвращает объект SimpleXMLIterator, содержащий вложенные элементы текущего элемента SimpleXMLIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект SimpleXMLIterator, содержащий вложенные элементы текущего элемента.

Примеры

Пример #1 Возвращает вложенные элементы текущего элемента

<?php
$xml = <<<XML
<books>
    <book>
        <title>Основы PHP</title>
        <author>Джим Смит</author>
    </book>
    <book>Основы XML</book>
</books>
XML;

$xmlIterator = new SimpleXMLIterator($xml);
for( $xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next() ) {
    foreach($xmlIterator->getChildren() as $name => $data) {
    echo "$name: '$data' из класса " . get_class($data) . "\n";
    }
}
?>

Результат выполнения данного примера:

title: 'Основы PHP' из класса SimpleXMLIterator
author: 'Джим Смит' из класса SimpleXMLIterator


Проверяет, имеет ли текущий элемент вложенные элементы

  • « SimpleXMLIterator::getChildren
  • SimpleXMLIterator::key »
  • PHP Manual
  • SimpleXMLIterator
  • Проверяет, имеет ли текущий элемент вложенные элементы

SimpleXMLIterator::hasChildren

(PHP 5, PHP 7)

SimpleXMLIterator::hasChildren — Проверяет, имеет ли текущий элемент вложенные элементы

Описание

public SimpleXMLIterator::hasChildren ( void ) : bool

Этот метод проверяет, имеет ли текущий элемент SimpleXMLIterator вложенные элементы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если у текущего элемента есть вложенные элементы; в противном случае FALSE

Примеры

Пример #1 Проверяет, имеет ли текущий элемент вложенные элементы

<?php
$xml = <<<XML
<books>
    <book>
        <title>Основы PHP</title>
        <author>Джим Смит</author>
    </book>
    <book>Основы XML</book>
</books>
XML;

$xmlIterator = new SimpleXMLIterator( $xml );
for( $xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next() ) {
    if($xmlIterator->hasChildren()) {
        var_dump($xmlIterator->current());
    }
}
?>

Результат выполнения данного примера:

object(SimpleXMLIterator)#2 (2) {
  ["title"]=>
  string(10) "Основы PHP"
  ["author"]=>
  string(9) "Джим Смит"
}


Возвращает текущий ключ

  • « SimpleXMLIterator::hasChildren
  • SimpleXMLIterator::next »
  • PHP Manual
  • SimpleXMLIterator
  • Возвращает текущий ключ

SimpleXMLIterator::key

(PHP 5, PHP 7)

SimpleXMLIterator::key — Возвращает текущий ключ

Описание

public SimpleXMLIterator::key ( void ) : mixed

Этот метод получает имя XML-тега текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя XML-тега элемента, на который ссылается текущий объект SimpleXMLIterator, или FALSE

Примеры

Пример #1 Получает имя текущего XML-тега

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>Основы PHP</book><book>Основы XML</book></books>');

echo var_dump($xmlIterator->key());
$xmlIterator->rewind(); // возврат к первому элементу
echo var_dump($xmlIterator->key());

?>

Результат выполнения данного примера:

bool(false)
string(4) "book"


Перемещает итератор к следующему элементу

  • « SimpleXMLIterator::key
  • SimpleXMLIterator::rewind »
  • PHP Manual
  • SimpleXMLIterator
  • Перемещает итератор к следующему элементу

SimpleXMLIterator::next

(PHP 5, PHP 7)

SimpleXMLIterator::next — Перемещает итератор к следующему элементу

Описание

public SimpleXMLIterator::next ( void ) : void

Этот метод перемещает SimpleXMLIterator к следующему элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Перемещение к следующему элементу

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>Основы PHP</book><book>Основы XML</book></books>');
$xmlIterator->rewind(); // возврат к первому элементу
$xmlIterator->next();

var_dump($xmlIterator->current());
?>

Результат выполнения данного примера:

object(SimpleXMLIterator)#2 (1) {
  [0]=>
  string(10) "Основы XML"
}


Возвращает итератор к первому элементу

  • « SimpleXMLIterator::next
  • SimpleXMLIterator::valid »
  • PHP Manual
  • SimpleXMLIterator
  • Возвращает итератор к первому элементу

SimpleXMLIterator::rewind

(PHP 5, PHP 7)

SimpleXMLIterator::rewind — Возвращает итератор к первому элементу

Описание

public SimpleXMLIterator::rewind ( void ) : void

Этот метод возвращает SimpleXMLIterator к первому элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Возврат к первому элементу

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>Основы PHP</book><book>Основы XML</book></books>');
$xmlIterator->rewind();

var_dump($xmlIterator->current());
?>

Результат выполнения данного примера:

object(SimpleXMLIterator)#2 (1) {
  [0]=>
  string(10) "Основы PHP"
}


Проверяет, является ли текущий элемент допустимым

  • « SimpleXMLIterator::rewind
  • Функции SimpleXML »
  • PHP Manual
  • SimpleXMLIterator
  • Проверяет, является ли текущий элемент допустимым

SimpleXMLIterator::valid

(PHP 5, PHP 7)

SimpleXMLIterator::valid — Проверяет, является ли текущий элемент допустимым

Описание

public SimpleXMLIterator::valid ( void ) : bool

Этот метод проверяет, является ли текущий элемент допустимым после вызова SimpleXMLIterator::rewind() или SimpleXMLIterator::next().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если текущий элемент допустим; в противном случае FALSE

Примеры

Пример #1 Проверяет, является ли текущий элемент допустимым

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>Основы SQL</book></books>');

$xmlIterator->rewind(); // возврат к первому элементу
echo var_dump($xmlIterator->valid()); // bool(true)

$xmlIterator->next(); // перейти к следующему элементу
echo var_dump($xmlIterator->valid()); // bool(false), поскольку есть только один элемент
?>


Функции SimpleXML

Содержание

  • simplexml_import_dom — Получает объект класса SimpleXMLElement из узла DOM
  • simplexml_load_file — Интерпретирует XML-файл в объект
  • simplexml_load_string — Интерпретирует строку с XML в объект


Получает объект класса SimpleXMLElement из узла DOM

  • « Функции SimpleXML
  • simplexml_load_file »
  • PHP Manual
  • Функции SimpleXML
  • Получает объект класса SimpleXMLElement из узла DOM

simplexml_import_dom

(PHP 5, PHP 7)

simplexml_import_dom — Получает объект класса SimpleXMLElement из узла DOM

Описание

simplexml_import_dom ( DOMNode $node [, string $class_name = "SimpleXMLElement" ] ) : SimpleXMLElement

Эта функция берет узел документа DOM и превращает его в узел SimpleXML. Затем этот новый объект может быть использован как первичный элемент SimpleXML.

Список параметров

node

Узел-элемент DOM

class_name

Вы можете использовать этот дополнительный параметр для того, чтобы функция simplexml_import_dom() возвращала объект указанного класса. Этот класс должен расширять класс SimpleXMLElement.

Возвращаемые значения

Возвращает SimpleXMLElement или FALSE в случае возникновения ошибки.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Импорт DOM

<?php
$dom = new DOMDocument;
$dom->loadXML('<books><book><title>чепуха</title></book></books>');
if (!$dom) {
    echo 'Ошибка при разборе документа';
    exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title;
?>

Результат выполнения данного примера:

чепуха

Смотрите также

  • dom_import_simplexml() - Получает объект класса DOMElement из объекта класса SimpleXMLElement
  • Базовое использование SimpleXML


Интерпретирует XML-файл в объект

  • « simplexml_import_dom
  • simplexml_load_string »
  • PHP Manual
  • Функции SimpleXML
  • Интерпретирует XML-файл в объект

simplexml_load_file

(PHP 5, PHP 7)

simplexml_load_file — Интерпретирует XML-файл в объект

Описание

simplexml_load_file ( string $filename [, string $class_name = "SimpleXMLElement" [, int $options = 0 [, string $ns = "" [, bool $is_prefix = FALSE ]]]] ) : SimpleXMLElement

Преобразует правильно сформированный XML-документ в указанном файле в объект.

Список параметров

filename

Путь к XML-файлу

Замечание:

Libxml 2 декодирует URI, так что если вы хотите передать, например, b&c как параметр URI a, вы должны вызвать simplexml_load_file(rawurlencode('http://example.com/?a=' . urlencode('b&c'))). Начиная с PHP 5.1.0 этого не требуется, потому что PHP сделает это за вас.

class_name

Вы можете использовать этот необязательный параметр для того, чтобы функция simplexml_load_file() возвращала объект указанного класса. Этот класс должен расширять класс SimpleXMLElement.

options

Начиная с PHP 5.1.0 и Libxml 2.6.0, вы также можете использовать параметр options, чтобы указать дополнительные параметры Libxml.

ns

Префикс пространства имен или URI.

is_prefix

TRUE, если ns является префиксом, и FALSE, если URI; по умолчанию равен FALSE.

Возвращаемые значения

Возвращает объект (object) класса SimpleXMLElement со свойствами, содержащими данные, которые хранятся внутри XML-документа или FALSE в случае возникновения ошибки.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Ошибки

Генерирует сообщение об ошибке уровня E_WARNING для каждой ошибки, найденной в XML-данных.

Подсказка

Используйте функцию libxml_use_internal_errors() для того, чтобы подавить все ошибки XML, и функцию libxml_get_errors() для прохода по ним впоследствии.

Примеры

Пример #1 Интерпретация XML-документа

<?php
// Файл test.xml содержит XML-документ с корневым элементом
// и по меньшей мере элемент /[root]/title.

if (file_exists('test.xml')) {
    $xml = simplexml_load_file('test.xml');

    print_r($xml);
} else {
    exit('Не удалось открыть файл test.xml.');
}
?>

Этот скрипт выведет следующее в случае успешного завершения:

SimpleXMLElement Object
(
  [title] => Пример заголовка
  ...
)

Здесь вы можете использовать $xml->body и любые другие элементы.

Смотрите также

  • simplexml_load_string() - Интерпретирует строку с XML в объект
  • SimpleXMLElement::__construct() - Создание нового объекта SimpleXMLElement
  • Работа с ошибками XML
  • libxml_use_internal_errors() - Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю
  • Базовое использование SimpleXML


Интерпретирует строку с XML в объект

  • « simplexml_load_file
  • WDDX »
  • PHP Manual
  • Функции SimpleXML
  • Интерпретирует строку с XML в объект

simplexml_load_string

(PHP 5, PHP 7)

simplexml_load_string — Интерпретирует строку с XML в объект

Описание

simplexml_load_string ( string $data [, string $class_name = "SimpleXMLElement" [, int $options = 0 [, string $ns = "" [, bool $is_prefix = FALSE ]]]] ) : SimpleXMLElement

Получает правильно сформированную XML-строку и возвращает ее как объект.

Список параметров

data

Правильно сформированная XML-строка

class_name

Вы можете использовать этот необязательный параметр для того, чтобы функция simplexml_load_string() возвращала объект указанного класса. Этот класс должен расширять класс SimpleXMLElement.

options

Начиная с PHP 5.1.0 и Libxml 2.6.0, вы также можете использовать параметр options, чтобы указать дополнительные параметры Libxml.

ns

Префикс пространства имен или URI.

is_prefix

TRUE, если ns является префиксом, и FALSE, если URI; по умолчанию равен FALSE.

Возвращаемые значения

Возвращает объект (object) класса SimpleXMLElement со свойствами, содержащими данные, которые хранятся внутри XML-документа или FALSE в случае возникновения ошибки.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Ошибки

Генерирует сообщение об ошибке уровня E_WARNING для каждой ошибки, найденной в XML-данных.

Подсказка

Используйте функцию libxml_use_internal_errors() для того, чтобы подавить все ошибки XML, и функцию libxml_get_errors() для прохода по ним впоследствии.

Примеры

Пример #1 Интерпретация XML-строки

<?php
$string = <<<XML
<?xml version='1.0'?>
<document>
 <title>Что 40?</title>
 <from>Джо</from>
 <to>Джейн</to>
 <body>
  Я знаю, что это - ответ. В чем заключается вопрос?
 </body>
</document>
XML;

$xml = simplexml_load_string($string);

print_r($xml);
?>

Результат выполнения данного примера:

SimpleXMLElement Object
(
  [title] => Что 40?
  [from] => Джо
  [to] => Джейн
  [body] =>
   Я знаю, что это - ответ. В чем заключается вопрос?
)

Здесь можно использовать $xml->body и т.д.

Смотрите также

  • simplexml_load_file() - Интерпретирует XML-файл в объект
  • SimpleXMLElement::__construct() - Создание нового объекта SimpleXMLElement
  • Работа с ошибками XML
  • libxml_use_internal_errors() - Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю
  • Базовое использование SimpleXML


WDDX

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Примеры wddx
  • Функции WDDX
    • wddx_add_vars — Добавить переменные в пакет WDDX с указанным идентификатором
    • wddx_deserialize — Десериализует пакет WDDX
    • wddx_packet_end — Завершает пакет WDDX с указанным идентификатором
    • wddx_packet_start — Запускает новый пакет WDDX со структурой внутри него
    • wddx_serialize_value — Сериализует одно значение внутри пакета WDDX
    • wddx_serialize_vars — Сериализация переменных в пакет WDDX


Введение

Внимание

Это расширение объявлено УСТАРЕВШИМ и УДАЛЕНО ИЗ ЯДРА начиная с PHP 7.4.0.

Эти функции предназначены для работы с » WDDX.

Внимание

Не передавайте недоверенные пользовательские данные в wddx_deserialize(). Десериализация может привести к загрузке и запуску вредоносного кода во время инстанциирования и автозагрузки объекта. Используйте безопасный, стандартный формат передачи информации, такой как JSON (с помощью json_decode() и json_encode()).


Требования

Для корректной работы этого расширения необходимо PHP расширение libxml. Это означает, что также необходима передача опции --enable-libxml , хотя неявно это уже сделано, так как поддержка libxml по умолчанию включена.

Для использования WDDX вам будет надо установить библиотеку expat (которая поставляется с Apache 1.3.7 или выше).


Установка

После установки требуемой библиотеки expat, скомпилируйте PHP с --enable-wddx и используйте --with-libexpat-dir для expat.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Это расширение определяет идентификатор пакета WDDX, возвращаемое wddx_packet_start().


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • WDDX
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Примеры wddx »
  • PHP Manual
  • WDDX
  • Примеры

Примеры

Содержание

  • Примеры wddx


Примеры wddx

Все функции, сериализующие переменные, используют первый элемент массива для определения, во что должен быть сериализован массив, в массив или в структуру. Если первый элемент имеет строковый ключ, тогда он будет сериализован в структуру, в ином случае в массив.

Пример #1 Сериализация одно значения с помощью WDDX

<?php
echo wddx_serialize_value("PHP to WDDX packet example", "PHP packet");
?>

Этот пример создает:

<wddxPacket version='1.0'><header comment='PHP packet'/><data>
<string>PHP to WDDX packet example</string></data></wddxPacket>

Пример #2 Использование инкрементальных пакетов WDDX

<?php
$pi = 3.1415926;
$packet_id = wddx_packet_start("PHP");
wddx_add_vars($packet_id, "pi");

/* Предпожим, что $cities была заполнена из базы данных */
$cities = array("Austin", "Novato", "Seattle");
wddx_add_vars($packet_id, "cities");

$packet = wddx_packet_end($packet_id);
echo $packet;
?>

Этот пример создает:

<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>

Замечание:

Если вы хотите сериализовать не ASCII-символы, то вам будет необходимо сконвертировать ваши данные в UTF-8 (см. utf8_encode() и iconv()).


Функции WDDX

Содержание

  • wddx_add_vars — Добавить переменные в пакет WDDX с указанным идентификатором
  • wddx_deserialize — Десериализует пакет WDDX
  • wddx_packet_end — Завершает пакет WDDX с указанным идентификатором
  • wddx_packet_start — Запускает новый пакет WDDX со структурой внутри него
  • wddx_serialize_value — Сериализует одно значение внутри пакета WDDX
  • wddx_serialize_vars — Сериализация переменных в пакет WDDX


Добавить переменные в пакет WDDX с указанным идентификатором

  • « Функции WDDX
  • wddx_deserialize »
  • PHP Manual
  • Функции WDDX
  • Добавить переменные в пакет WDDX с указанным идентификатором

wddx_add_vars

(PHP 4, PHP 5, PHP 7)

wddx_add_vars — Добавить переменные в пакет WDDX с указанным идентификатором

Внимание

Эта функция была УДАЛЕНА в PHP 7.4.0.

Описание

wddx_add_vars ( resource $packet_id , mixed $var_name [, mixed $... ] ) : bool

Сериализует переданные переменные и добавляет результат к данному пакету.

Список параметров

Функция принимает переменное количество параметров.

packet_id

Пакет WDDX, возвращаемый wddx_packet_start().

var_name

Может быть либо строкой, обозначающей переменную, либо массивом, содержащий строки c именами переменных или другие массивы и т.д.

...

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Десериализует пакет WDDX

  • « wddx_add_vars
  • wddx_packet_end »
  • PHP Manual
  • Функции WDDX
  • Десериализует пакет WDDX

wddx_deserialize

(PHP 4, PHP 5, PHP 7)

wddx_deserialize — Десериализует пакет WDDX

Внимание

Эта функция была УДАЛЕНА в PHP 7.4.0.

Описание

wddx_deserialize ( string $packet ) : mixed

Десериализует пакет packet WDDX.

Внимание

Не передавайте непроверенный пользовательский ввод в wddx_deserialize(). Десериализация может привести к тому, что когда код загружается и выполняется во время инициализации и автозагрузки, и злоумышленник может воспользоваться этим. Используйте безопасный стандартный формат обмена данными, такой как JSON (через json_decode() и json_encode()), если вам необходимо передать сериализованные данные пользователю.

Список параметров

packet

Пакет WDDX в виде строки или потока.

Возвращаемые значения

Возвращает десериализованное значение, которое может быть строкой, числом или массивом. Обратите внимание, что структуры десериализуются в ассоциативные массивы.


Завершает пакет WDDX с указанным идентификатором

  • « wddx_deserialize
  • wddx_packet_start »
  • PHP Manual
  • Функции WDDX
  • Завершает пакет WDDX с указанным идентификатором

wddx_packet_end

(PHP 4, PHP 5, PHP 7)

wddx_packet_end — Завершает пакет WDDX с указанным идентификатором

Внимание

Эта функция была УДАЛЕНА в PHP 7.4.0.

Описание

wddx_packet_end ( resource $packet_id ) : string

Завершает и возвращает заданный пакет WDDX.

Список параметров

packet_id

Пакет WDDX, возвращаемый wddx_packet_start().

Возвращаемые значения

Возвращает строку, содержащую пакет WDDX.


Запускает новый пакет WDDX со структурой внутри него

  • « wddx_packet_end
  • wddx_serialize_value »
  • PHP Manual
  • Функции WDDX
  • Запускает новый пакет WDDX со структурой внутри него

wddx_packet_start

(PHP 4, PHP 5, PHP 7)

wddx_packet_start — Запускает новый пакет WDDX со структурой внутри него

Внимание

Эта функция была УДАЛЕНА в PHP 7.4.0.

Описание

wddx_packet_start ([ string $comment ] ) : resource

Запустить новый пакет WDDX для инкрементного добавления переменных. Это автоматически создаст определение структуры внутри пакета для хранения переменных.

Список параметров

comment

Необязательная строка с комментарием

Возвращаемые значения

Возвращает идентификатор пакета для использования в последующих функциях или FALSE в случае возникновения ошибки.


Сериализует одно значение внутри пакета WDDX

  • « wddx_packet_start
  • wddx_serialize_vars »
  • PHP Manual
  • Функции WDDX
  • Сериализует одно значение внутри пакета WDDX

wddx_serialize_value

(PHP 4, PHP 5, PHP 7)

wddx_serialize_value — Сериализует одно значение внутри пакета WDDX

Внимание

Эта функция была УДАЛЕНА в PHP 7.4.0.

Описание

wddx_serialize_value ( mixed $var [, string $comment ] ) : string

Создает пакет WDDX из одного заданного значения.

Список параметров

var

Значение для сериализации

comment

Необязательная строка с комментарием, которая отображается в заголовке пакета.

Возвращаемые значения

Возвращает пакет WDDX или FALSE в случае возникновения ошибки.


Сериализация переменных в пакет WDDX

  • « wddx_serialize_value
  • XMLDiff »
  • PHP Manual
  • Функции WDDX
  • Сериализация переменных в пакет WDDX

wddx_serialize_vars

(PHP 4, PHP 5, PHP 7)

wddx_serialize_vars — Сериализация переменных в пакет WDDX

Внимание

Эта функция была УДАЛЕНА в PHP 7.4.0.

Описание

wddx_serialize_vars ( mixed $var_name [, mixed $... ] ) : string

Создает пакет WDDX со структурой, которая содержит сериализованное представление переданных переменных.

Список параметров

Функция принимает переменное количество параметров.

var_name

Может быть либо строкой, обозначающей переменную, либо массивом, содержащим строки с названиями переменных или другой массив и т.д.

...

Возвращаемые значения

Возвращает пакет WDDX или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования wddx_serialize_vars()

<?php
$a = 1;
$b = 5.5;
$c = array("blue", "orange", "violet");
$d = "colors";

$clvars = array("c", "d");
echo wddx_serialize_vars("a", "b", $clvars);
?>

Результат выполнения данного примера:

<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>


Сравнение и объединение XML

  • Введение
  • Установка и настройка
    • Требования
    • Установка
  • XMLDiff\Base — Класс XMLDiff\Base
    • XMLDiff\Base::__construct — Конструктор
    • XMLDiff\Base::diff — Производит сравнение двух документов XML
    • XMLDiff\Base::merge — Создает новый документ XML, основываясь на информации о его отличии от другого
  • XMLDiff\DOM — Класс XMLDiff\DOM
    • XMLDiff\DOM::diff — Поиск различий в двух объектах DOMDocument
    • XMLDiff\DOM::merge — Объединяет объект DOMDocument, на основании другого объекта DOMDocument, полученного с помощью XMLDiff\DOM::diff
  • XMLDiff\Memory — Класс XMLDiff\Memory
    • XMLDiff\Memory::diff — Сравнение двух документов XML
    • XMLDiff\Memory::merge — Применить изменения к документу XML
  • XMLDiff\File — Класс XMLDiff\File
    • XMLDiff\File::diff — Сравнение двух файлов XML
    • XMLDiff\File::merge — Применить изменения к документу XML


Введение

Этот модуль позволяет сравнивать XML-документы, создавать документы описывающие различия и применять выявленные изменения к документу источнику. Документы описывающие различия содержат инструкции копирования, вставки и удаления узлов в человекочитаемом виде. С помощью модуля можно обрабатывать объекты DOMDocument, локальные файлы и строки в памяти.


  • « Введение
  • Требования »
  • PHP Manual
  • XMLDiff
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка


Требования

В модуле включена библиотека libdiffmark версии 0.10. Если в вашей системе доступна библиотека diffmark, то крайне рекомендуется использовать именно ее.

модуль libxml

модуль DOM


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/xmldiff.

DLL для этого PECL модуля доступна по ссылке » http://windows.php.net/downloads/pecl/releases/xmldiff/.


Класс XMLDiff\Base

(PECL xmldiff >= 0.8.0)

Введение

Базовый абстрактный класс для всех классов сравнения данного модуля.

Обзор классов

XMLDiff\Base {
/* Методы */
public __construct ( string $nsname )
abstract public diff ( mixed $from , mixed $to ) : mixed
abstract public merge ( mixed $src , mixed $diff ) : mixed
}

Содержание

  • XMLDiff\Base::__construct — Конструктор
  • XMLDiff\Base::diff — Производит сравнение двух документов XML
  • XMLDiff\Base::merge — Создает новый документ XML, основываясь на информации о его отличии от другого


Конструктор

  • « XMLDiff\Base
  • XMLDiff\Base::diff »
  • PHP Manual
  • XMLDiff\Base
  • Конструктор

XMLDiff\Base::__construct

(PECL xmldiff >= 0.8.0)

XMLDiff\Base::__construct — Конструктор

Описание

public XMLDiff\Base::__construct ( string $nsname )

Базовый конструктор для всех рабочих классов модуля xmldiff.

Список параметров

nsname

Выбранное имя пространства имен для сравнения документов. Пространство имен по умолчанию http://www.locus.cz/diffmark и этого достаточно для избежания конфликта пространств имен. Используйте этот параметр, если, по какой либо причине, вы хотите поменять значение по умолчанию.

Возвращаемые значения


Производит сравнение двух документов XML

  • « XMLDiff\Base::__construct
  • XMLDiff\Base::merge »
  • PHP Manual
  • XMLDiff\Base
  • Производит сравнение двух документов XML

XMLDiff\Base::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\Base::diff — Производит сравнение двух документов XML

Описание

abstract public XMLDiff\Base::diff ( mixed $from , mixed $to ) : mixed

Абстрактный метод сравнения для реализации в классах наследниках.

Главная задача этого метода - создание списка различий двух документов. Порядок входных параметров важен, так как от него зависит результат.

Список параметров

from

Исходный документ XML.

to

XML документ, с которым производится сравнение.

Возвращаемые значения

Зависит от реализации.


Создает новый документ XML, основываясь на информации о его отличии от другого

  • « XMLDiff\Base::diff
  • XMLDiff\DOM »
  • PHP Manual
  • XMLDiff\Base
  • Создает новый документ XML, основываясь на информации о его отличии от другого

XMLDiff\Base::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\Base::merge — Создает новый документ XML, основываясь на информации о его отличии от другого

Описание

abstract public XMLDiff\Base::merge ( mixed $src , mixed $diff ) : mixed

Абстрактный метод сравнения для реализации в классах наследниках.

Основная цель метода - создание нового документа основываясь на информации о различиях двух документов.

Список параметров

src

Исходный документ XML.

diff

Документ, созданный методом, реализующего абстрактный метод XMLDiff\Base::diff.

Возвращаемые значения

Зависит от реализации.


Класс XMLDiff\DOM

(PECL xmldiff >= 0.8.0)

Введение

Обзор классов

XMLDiff\DOM extends XMLDiff\Base {
/* Методы */
public diff ( DOMDocument $from , DOMDocument $to ) : DOMDocument
public merge ( DOMDocument $src , DOMDocument $diff ) : DOMDocument
/* Наследуемые методы */
public XMLDiff\Base::__construct ( string $nsname )
abstract public XMLDiff\Base::diff ( mixed $from , mixed $to ) : mixed
abstract public XMLDiff\Base::merge ( mixed $src , mixed $diff ) : mixed
}

Содержание

  • XMLDiff\DOM::diff — Поиск различий в двух объектах DOMDocument
  • XMLDiff\DOM::merge — Объединяет объект DOMDocument, на основании другого объекта DOMDocument, полученного с помощью XMLDiff\DOM::diff


Поиск различий в двух объектах DOMDocument

  • « XMLDiff\DOM
  • XMLDiff\DOM::merge »
  • PHP Manual
  • XMLDiff\DOM
  • Поиск различий в двух объектах DOMDocument

XMLDiff\DOM::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\DOM::diff — Поиск различий в двух объектах DOMDocument

Описание

public XMLDiff\DOM::diff ( DOMDocument $from , DOMDocument $to ) : DOMDocument

Ищет различия в двух объектах DOMDocument и возвращает новый объект, содержащий эти различия.

Список параметров

from

Исходный объект DOMDocument.

to

Объект DOMDocument, с которым производится сравнение.

Возвращаемые значения

Новый объект DOMDocument с информацией о найденых отличиях, или NULL.


Объединяет объект DOMDocument, на основании другого объекта DOMDocument, полученного с помощью XMLDiff\DOM::diff

  • « XMLDiff\DOM::diff
  • XMLDiff\Memory »
  • PHP Manual
  • XMLDiff\DOM
  • Объединяет объект DOMDocument, на основании другого объекта DOMDocument, полученного с помощью XMLDiff\DOM::diff

XMLDiff\DOM::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\DOM::merge — Объединяет объект DOMDocument, на основании другого объекта DOMDocument, полученного с помощью XMLDiff\DOM::diff

Описание

public XMLDiff\DOM::merge ( DOMDocument $src , DOMDocument $diff ) : DOMDocument

Объединяет объект DOMDocument, на основании другого объекта DOMDocument, полученного с помощью XMLDiff\DOM::diff.

Список параметров

src

Исходный объект DOMDocument.

diff

Объект DOMDocument, содержащий информацию, полученную с помощью XMLDiff\DOM::diff.

Возвращаемые значения

Объединенный DOMDocument или NULL.


Класс XMLDiff\Memory

(PECL xmldiff >= 0.8.0)

Введение

Обзор классов

XMLDiff\Memory extends XMLDiff\Base {
/* Методы */
public diff ( string $from , string $to ) : string
public merge ( string $src , string $diff ) : string
/* Наследуемые методы */
public XMLDiff\Base::__construct ( string $nsname )
abstract public XMLDiff\Base::diff ( mixed $from , mixed $to ) : mixed
abstract public XMLDiff\Base::merge ( mixed $src , mixed $diff ) : mixed
}

Содержание

  • XMLDiff\Memory::diff — Сравнение двух документов XML
  • XMLDiff\Memory::merge — Применить изменения к документу XML


Сравнение двух документов XML

  • « XMLDiff\Memory
  • XMLDiff\Memory::merge »
  • PHP Manual
  • XMLDiff\Memory
  • Сравнение двух документов XML

XMLDiff\Memory::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\Memory::diff — Сравнение двух документов XML

Описание

public XMLDiff\Memory::diff ( string $from , string $to ) : string

Сравнивает две строки с XML и возвращает строку с информацией о различиях.

Список параметров

from

XML-документ источник.

to

Целевой XML-документ.

Возвращаемые значения

Строка с XML-документом, содержащая информацию о различиях, либо NULL.


Применить изменения к документу XML

  • « XMLDiff\Memory::diff
  • XMLDiff\File »
  • PHP Manual
  • XMLDiff\Memory
  • Применить изменения к документу XML

XMLDiff\Memory::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\Memory::merge — Применить изменения к документу XML

Описание

public XMLDiff\Memory::merge ( string $src , string $diff ) : string

Создает новый документ XML на базе документа источника и списка изменений.

Список параметров

src

XML-документ источник.

diff

XML-документ, содержащий информацию об изменениях.

Возвращаемые значения

Строка с новым XML-документом или NULL.


Класс XMLDiff\File

(PECL xmldiff >= 0.8.0)

Введение

Обзор классов

XMLDiff\File extends XMLDiff\Base {
/* Методы */
public diff ( string $from , string $to ) : string
public merge ( string $src , string $diff ) : string
/* Наследуемые методы */
public XMLDiff\Base::__construct ( string $nsname )
abstract public XMLDiff\Base::diff ( mixed $from , mixed $to ) : mixed
abstract public XMLDiff\Base::merge ( mixed $src , mixed $diff ) : mixed
}

Содержание

  • XMLDiff\File::diff — Сравнение двух файлов XML
  • XMLDiff\File::merge — Применить изменения к документу XML


Сравнение двух файлов XML

  • « XMLDiff\File
  • XMLDiff\File::merge »
  • PHP Manual
  • XMLDiff\File
  • Сравнение двух файлов XML

XMLDiff\File::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\File::diff — Сравнение двух файлов XML

Описание

public XMLDiff\File::diff ( string $from , string $to ) : string

Сравнивает два локальных файла XML и возвращает строку с информацией о различиях.

Список параметров

from

Путь к документу источнику.

to

Путь к целевому документу.

Возвращаемые значения

Строка с XML-документом, содержащая информацию о различиях, либо NULL.


Применить изменения к документу XML

  • « XMLDiff\File::diff
  • Разбор XML »
  • PHP Manual
  • XMLDiff\File
  • Применить изменения к документу XML

XMLDiff\File::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\File::merge — Применить изменения к документу XML

Описание

public XMLDiff\File::merge ( string $src , string $diff ) : string

Создает новый документ XML на базе документа источника и списка изменений.

Список параметров

src

Путь к XML-документу источнику.

diff

Путь к XML-документу, содержащему информацию об изменениях.

Возвращаемые значения

Строка с новым XML-документом или NULL.


Разбор XML

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Обработчики событий
  • Приведение к одному регистру
  • Коды ошибок
  • Кодировка символов
  • Примеры
    • Пример Структуры Элемента XML
    • Пример отображения XML тегов
    • Пример использования внешних сущностей XML
  • Функции парсера XML
    • utf8_decode — Преобразует строку с символами ISO-8859-1, кодированную в UTF-8, в однобайтную ISO-8859-1
    • utf8_encode — Кодирует строку ISO-8859-1 в кодировке UTF-8
    • xml_error_string — Получение строки ошибки XML-анализатора
    • xml_get_current_byte_index — Получает текущий для XML-анализатора байтовый индекс
    • xml_get_current_column_number — Получает от XML-анализатора номер текущего столбца
    • xml_get_current_line_number — Получает от XML-анализатора номер текущей строки
    • xml_get_error_code — Получает код ошибки XML-анализатора
    • xml_parse_into_struct — Разбор XML-данных и помещение в массив
    • xml_parse — Запускает разбор XML-документа
    • xml_parser_create_ns — Создание XML-анализатора с поддержкой пространств имен
    • xml_parser_create — Создание XML-анализатора
    • xml_parser_free — Освобождение XML-анализатора
    • xml_parser_get_option — Получение значения настройки XML-анализатора
    • xml_parser_set_option — Установка значения настройки XML-анализатора
    • 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-анализатора внутри объекта
    • xml_set_processing_instruction_handler — Установка обработчика инструкций препроцессора (PI)
    • xml_set_start_namespace_decl_handler — Установка обработчика входа в пределы пространства имен
    • xml_set_unparsed_entity_decl_handler — Установка обработчика неразобранных объявлений сущностей


Введение

XML (eXtensible Markup Language - расширяемый язык разметки) - это формат данных для обмена структурированными документами в всемирной сети. Данный стандарт определён Консорциумом Всемирной паутины (W3C). Информация об XML и связанных технологиях может быть найдена на » http://www.w3.org/XML/.

Данное PHP-расширение реализует поддержку библиотеки expat Джеймса Кларка в PHP. Данный инструментарий позволяет Вам разбирать, но не проверять XML-документы. Он поддерживает три кодировки символов исходного текста также поддерживаемых PHP: US-ASCII, ISO-8859-1 и UTF-8. UTF-16 не поддерживается.

Данное расширение позволит вам создавать XML-анализаторы и далее определить обработчики для различных событий. Каждый XML-анализатор также имеет несколько параметров, которые вы можете настраивать.


Требования

Для корректной работы этого расширения необходимо PHP расширение libxml. Это означает, что также необходима передача опции --enable-libxml , хотя неявно это уже сделано, так как поддержка libxml по умолчанию включена.

Это расширение использует expat-совместимый слой по умолчанию. Также может быть использован expat, который может быть найден здесь: » http://www.jclark.com/xml/expat.html. Makefile, поставляемый с expat не создает библиотеку по умолчанию, вы можете использовать следующее правило для этого:

libexpat.a: $(OBJS)
    ar -rc $@ $(OBJS)
    ranlib $@
Исходный RPM пакет expat может быть найден здесь:» http://sourceforge.net/projects/expat/.


Установка

Это расширение включено по умолчанию. Оно может быть отключено во время выполнения с помощью следующей опции: --disable-xml

Эти функции включены по умолчанию при использовании стандартной библиотеки expat. Вы можете отключить поддержку XML с помощью --disable-xml . Если вы собрали PHP как модуль для Apache 1.3.9 или более поздней версии, PHP будет автоматически использовать стандартную библиотеку expat из Apache. В случае, если вы не хотите использовать стандартную библиотеку expat, то вам необходимо настроить PHP опцию --with-expat-dir=DIR , где DIR - путь до установочной директории библиотеки expat.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.


Типы ресурсов

XML-ресурс, возвращаемый xml_parser_create() и xml_parser_create_ns(), ссылается на сущность xml-парсера, чтобы иметь возможность использовать функции этого расширения.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если 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)
XML_SAX_IMPL (string)
Устанавливает стандарт обработки SAX. Может быть libxml или expat.


Обработчики событий

Список обработчиков событий XML:

Поддерживаемые XML обработчики
Функции PHP для установки обработчика | Описание события
xml_set_element_handler() | События элементов выдаются каждый раз, когда XML парсер встречает начальный или конечный тэги. Есть разные обработчики для начальных и конечных тэгов.
xml_set_character_data_handler() | Символьные данные это примерно всё неразмеченное содержимое XML документов, включая непечатные символы между тэгами. Отметим, что XML анализатор не добавляет или удаляет никаких непечатных символов, так как это приложение (то есть пользователь) решает где непечатные символы значительны.
xml_set_processing_instruction_handler() | PHP программисты должны быть уже знакомы с инструкциями обработки (PIs). <?php ?> является обрабатывающей инструкцией, где php является вызываемой "PI целью". Обработка этих инструкций зависит от программы, за исключением того, что все цели PI начинаются с зарезервированного слова "XML".
xml_set_default_handler() | Если нет специального обработчика, то вызывается обработчик по умолчанию. Вы получите XML и объявления типов документа при помощи обработчика по умолчанию.
xml_set_unparsed_entity_decl_handler() | Этот обработчик будет вызываться для декларирования непроанализированных (NDATA) сущностей.
xml_set_notation_decl_handler() | Этот обработчик вызывается при объявлении нотации.
xml_set_external_entity_ref_handler() | Этот обработчик вызывается когда анализатор XML находит ссылку на внешнюю сущность. Например, это может быть ссылка на файл или URL. Смотрите пример внешней сущности.
xml_set_start_namespace_decl_handler() | Этот обработчик вызывается в начале объявления пространства имён.
xml_set_end_namespace_decl_handler() | Этот обработчик вызывается в конце объявления пространства имён. Отметим, что это событие не вызывается LibXML.


Приведение к одному регистру

Функции обработчиков элементов могут получать имена своих элементов приведенными к одному регистру. Приведение к одному регистру определяется как "процесс, применяемый к последовательности символов, когда символы, идентифицируемые как "не в верхнем регистре", заменяются своими эквивалентами верхнего регистра". Иначе говоря, когда речь идёт о XML, приведение к одному регистру означает перевод символов в верхний регистр.

По умолчанию имена всех элементов, передаваемые функциям обработчиков, передаются с выравниванием регистра. Такой режим может запрашиваться и контролироваться XML-парсером с помощью функций xml_parser_get_option() и xml_parser_set_option() соответственно.


Коды ошибок

Следующие константы определены для кодов ошибок XML (возвращаемых функцией 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


Кодировка символов

Модуль XML в PHP поддерживает набор символов » Unicode через разные кодировки символов. Есть два типа кодировок символов в этом модуле, исходная кодировка и целевая кодировка. Внутреннее представление документа в PHP всегда кодировано в UTF-8.

Исходное кодирование происходит, когда XML документ разбирается. При создании анализатора XML может быть определена исходная кодировка (эта кодировка не может быть изменена позже, во время работы XML анализатора). Поддерживаются исходные кодировки ISO-8859-1, US-ASCII и UTF-8. Первые две являются однобайтными кодировками,что означает, что каждый символ представлен одним байтом. UTF-8 может кодировать символы, представленные переменным числом бит (вплоть до 21) в байты (от одного до четырёх). По умолчанию в PHP исходной кодировкой является ISO-8859-1.

Целевое кодирование происходит, когда PHP передаёт данные обрабатывающим XML функциям. Когда создаётся XML анализатор, целевая кодировка устанавливается такой же, как исходная кодировка, затем она может быть изменена в любой момент. Целевая кодировка повлияет на символьные данные, а также имена тегов и цели обрабатывающих команд.

Если XML анализатор встречает символы за пределами диапазона, которые их исходная кодировкам может предоставить, он возвращает ошибку.

Если PHP встречает символы в разбираемом XML документе, которые не могут быть представлены в выбранной целевой кодировке, проблемные символы будут "понижены". В данном случае это означает, что такие символы будут замещены вопросительным знаком.


Примеры

Содержание

  • Пример Структуры Элемента XML
  • Пример отображения XML тегов
  • Пример использования внешних сущностей XML


Пример Структуры Элемента XML

Первый пример отображает структуру начальных элементов в документе с отступом.

Пример #1 Показать структуру элемента XML

<?php
$file = "data.xml";
$depth = array();

function startElement($parser, $name, $attrs)
{
    global $depth;

    if (!isset($depth[$parser])) {
        $depth[$parser] = 0;
    }

    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("Невозможно произвести чтение XML");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("Ошибка XML: %s на строке %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>


Пример отображения XML тегов

Пример #1 Отображение XML в HTML

Этот пример отображает теги XML документа непосредственно в HTML тегах. Элементы не найденные в "массиве отображения" игнорируются. Конечно, этот пример будет работать только с определенным типом документа XML.

<?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("Невозможно произвести чтение XML");
}

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

Этот пример подсвечивает код XML. Он иллюстрирует то, как необходимо использовать обработчик ссылки на внешнюю сущность для подключения и разбора содержимого внешних файлов, так же как может быть обработан PI, и путь для определения "доверия" к коду, содержащемуся в PI.

XML документы, которые используются в примере расположены под самим примером (xmltest.xml и xmltest2.xml.)

Пример #1 Пример использования внешней сущности

<?php
$file = "xmltest.xml";

function trustedFile($file)
{
    // доверять только нашим собственным локальным файлам
    if (!preg_match("@^([a-z][a-z0-9+.-]*)\:\/\/@i", $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 (trustedFile($parser_file[$parser])) {
                eval($data);
            } else {
                printf("Небезопасный код PHP: <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("Невозможно открыть сущность %s в %s\n", $openEntityNames,
                   $systemId);
            return false;
        }
        while ($data = fread($fp, 4096)) {
            if (!xml_parse($parser, $data, feof($fp))) {
                printf("Ошибка XML: %s в строке %d в процессе разбора сущности %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("Чтение XML-файла невозможно");
}

echo "<pre>";
while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("Ошибка XML: %s в строке %d\n",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
echo "</pre>";
echo "разбор завершен\n";
xml_parser_free($xml_parser);

?>

Пример #2 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>

Этот файл подключен из xmltest.xml:

Пример #3 xmltest2.xml

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY testEnt "test entity">
]>
<foo>
   <element attrib="value"/>
   &testEnt;
   <?php echo "Здесь запущен некий код PHP"; ?>
</foo>


Функции парсера XML

Содержание

  • utf8_decode — Преобразует строку с символами ISO-8859-1, кодированную в UTF-8, в однобайтную ISO-8859-1
  • utf8_encode — Кодирует строку ISO-8859-1 в кодировке UTF-8
  • xml_error_string — Получение строки ошибки XML-анализатора
  • xml_get_current_byte_index — Получает текущий для XML-анализатора байтовый индекс
  • xml_get_current_column_number — Получает от XML-анализатора номер текущего столбца
  • xml_get_current_line_number — Получает от XML-анализатора номер текущей строки
  • xml_get_error_code — Получает код ошибки XML-анализатора
  • xml_parse_into_struct — Разбор XML-данных и помещение в массив
  • xml_parse — Запускает разбор XML-документа
  • xml_parser_create_ns — Создание XML-анализатора с поддержкой пространств имен
  • xml_parser_create — Создание XML-анализатора
  • xml_parser_free — Освобождение XML-анализатора
  • xml_parser_get_option — Получение значения настройки XML-анализатора
  • xml_parser_set_option — Установка значения настройки XML-анализатора
  • 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-анализатора внутри объекта
  • xml_set_processing_instruction_handler — Установка обработчика инструкций препроцессора (PI)
  • xml_set_start_namespace_decl_handler — Установка обработчика входа в пределы пространства имен
  • xml_set_unparsed_entity_decl_handler — Установка обработчика неразобранных объявлений сущностей


Преобразует строку с символами ISO-8859-1, кодированную в UTF-8, в однобайтную ISO-8859-1

  • « Функции парсера XML
  • utf8_encode »
  • PHP Manual
  • Функции парсера XML
  • Преобразует строку с символами ISO-8859-1, кодированную в UTF-8, в однобайтную ISO-8859-1

utf8_decode

(PHP 4, PHP 5, PHP 7)

utf8_decode — Преобразует строку с символами ISO-8859-1, кодированную в UTF-8, в однобайтную ISO-8859-1

Описание

utf8_decode ( string $data ) : string

Эта функция декодирует data, закодированные в UTF-8, в ISO-8859-1. Байты строки, не корректные для UTF-8 и символы UTF-8, отсутствующие в ISO-8859-1 (то есть, символы выше U+00FF), заменятся символом ?.

Замечание:

Многие веб-страницы, отмеченые как использующие кодировку ISO-8859-1, на самом деле используют схожую кодировку Windows-1252, и веб-браузеры интерпретируют страницы ISO-8859-1 как Windows-1252. Однако Windows-1252 содержит дополнительные печатные символы, такие как знае Евро (€) и фигурные кавычки (" ") вместо управляющих кодов ISO-8859-1. Эта функция не конвертирует такие символы Windows-1252 корректно. Используйте другую функцию, если нужна конвертация в Windows-1252.

Список параметров

data

Строка, закодированная в UTF-8.

Возвращаемые значения

Возвращает данные data, переведенные в ISO-8859-1.

Список изменений

Версия | Описание
7.2.0 | Эта функция была перенесена в ядро PHP, таким образом отменив требование расширения XML для использования этой функции.

Смотрите также

  • utf8_encode() - Кодирует строку ISO-8859-1 в кодировке UTF-8 (содержит описание UTF-8)
  • mb_convert_encoding() - Преобразует кодировку символов - Конвертирует между множеством различных кодировок, включая UTF-8, ISO-8859-1 and Windows-1252
  • iconv() - Преобразование строки в требуемую кодировку - Конвертирует между множеством различных кодировок
  • recode_string() - Перекодирует строку в соответствии с заданными параметрами - Конвертирует между множеством различных кодировок


Кодирует строку ISO-8859-1 в кодировке UTF-8

  • « utf8_decode
  • xml_error_string »
  • PHP Manual
  • Функции парсера XML
  • Кодирует строку ISO-8859-1 в кодировке UTF-8

utf8_encode

(PHP 4, PHP 5, PHP 7)

utf8_encode — Кодирует строку ISO-8859-1 в кодировке UTF-8

Описание

utf8_encode ( string $data ) : string

Эта функция конвертирует строку data из кодировки ISO-8859-1 в UTF-8

Замечание:

Многие веб-страницы, отмеченые как использующие кодировку ISO-8859-1, на самом деле используют схожую кодировку Windows-1252, и веб-браузеры интерпретируют страницы ISO-8859-1 как Windows-1252. Однако Windows-1252 содержит дополнительные печатные символы, такие как знак Евро (€) и фигурные кавычки (" ") вместо управляющих кодов ISO-8859-1. Эта функция не конвертирует такие символы Windows-1252 корректно. Используйте другую функцию, если нужна конвертация из Windows-1252.

Список параметров

data

Строка ISO-8859-1.

Возвращаемые значения

Возвращает UTF-8 перевод данных data.

Список изменений

Версия | Описание
7.2.0 | Эта функция была перенесена в ядро PHP, таким образом отменив требование расширения XML для использования этой функции.

Смотрите также

  • utf8_encode() (содержит описание UTF-8)
  • mb_convert_encoding() - Преобразует кодировку символов - Конвертирует между множеством различных кодировок, включая UTF-8, ISO-8859-1 and Windows-1252
  • iconv() - Преобразование строки в требуемую кодировку - Конвертирует между множеством различных кодировок
  • recode_string() - Перекодирует строку в соответствии с заданными параметрами - Конвертирует между множеством различных кодировок


Получение строки ошибки XML-анализатора

  • « utf8_encode
  • xml_get_current_byte_index »
  • PHP Manual
  • Функции парсера XML
  • Получение строки ошибки XML-анализатора

xml_error_string

(PHP 4, PHP 5, PHP 7)

xml_error_string — Получение строки ошибки XML-анализатора

Описание

xml_error_string ( int $code ) : string

Получение строкового представления ошибки XML-анализатора в соответствии с переданным кодом ошибки code.

Список параметров

code

Код ошибки, возвращаемый функцией xml_get_error_code().

Возвращаемые значения

Возвращает строку с текстовым описанием кода ошибки code или FALSE, если описания не найдено.

Смотрите также

  • xml_get_error_code() - Получает код ошибки XML-анализатора


Получает текущий для XML-анализатора байтовый индекс

  • « xml_error_string
  • xml_get_current_column_number »
  • PHP Manual
  • Функции парсера XML
  • Получает текущий для XML-анализатора байтовый индекс

xml_get_current_byte_index

(PHP 4, PHP 5, PHP 7)

xml_get_current_byte_index — Получает текущий для XML-анализатора байтовый индекс

Описание

xml_get_current_byte_index ( resource $parser ) : int

Получает текущий для заданного XML-анализатора байтовый индекс.

Список параметров

parser

Ссылка на XML-анализатор, из которого будет получен индекс байта.

Возвращаемые значения

Эта функция вернет FALSE, если аргумент parser не ссылается на допустимый анализатор, в противном случае она возвращает индекс байта в буфере данных анализатора, на котором он находится в данный момент (начиная с нуля).

Примечания

Внимание

Эта функция возвращает байтовый индекс, считая, что текст закодирован в UTF-8. Смена кодировки не повлияет на вывод функции.

Смотрите также

  • xml_get_current_column_number() - Получает от XML-анализатора номер текущего столбца
  • xml_get_current_line_number() - Получает от XML-анализатора номер текущей строки


Получает от XML-анализатора номер текущего столбца

  • « xml_get_current_byte_index
  • xml_get_current_line_number »
  • PHP Manual
  • Функции парсера XML
  • Получает от XML-анализатора номер текущего столбца

xml_get_current_column_number

(PHP 4, PHP 5, PHP 7)

xml_get_current_column_number — Получает от XML-анализатора номер текущего столбца

Описание

xml_get_current_column_number ( resource $parser ) : int

Получает текущий номер столбца заданного XML-анализатора.

Список параметров

parser

Ссылка на анализатор XML для получения номера столбца.

Возвращаемые значения

Эта функция возвращает FALSE, если ссылка параметра parser не ведет к действующему анализатору, или же возвращает номер столбца на текущей строке (определенной с помощью xml_get_current_line_number()) согласно текущему положению указателя анализатора.

Смотрите также

  • xml_get_current_byte_index() - Получает текущий для XML-анализатора байтовый индекс
  • xml_get_current_line_number() - Получает от XML-анализатора номер текущей строки


Получает от XML-анализатора номер текущей строки

  • « xml_get_current_column_number
  • xml_get_error_code »
  • PHP Manual
  • Функции парсера XML
  • Получает от XML-анализатора номер текущей строки

xml_get_current_line_number

(PHP 4, PHP 5, PHP 7)

xml_get_current_line_number — Получает от XML-анализатора номер текущей строки

Описание

xml_get_current_line_number ( resource $parser ) : int

Получает номер текущей строки для заданного XML-анализатора.

Список параметров

parser

Ссылка на анализатор XML для получения номера строки.

Возвращаемые значения

Эта функция возвращает FALSE, если ссылка параметра parser не ведет к действующему анализатору, или же возвращает номер строки согласно текущему положению указателя анализатора.

Смотрите также

  • xml_get_current_column_number() - Получает от XML-анализатора номер текущего столбца
  • xml_get_current_byte_index() - Получает текущий для XML-анализатора байтовый индекс


Получает код ошибки XML-анализатора

  • « xml_get_current_line_number
  • xml_parse_into_struct »
  • PHP Manual
  • Функции парсера XML
  • Получает код ошибки XML-анализатора

xml_get_error_code

(PHP 4, PHP 5, PHP 7)

xml_get_error_code — Получает код ошибки XML-анализатора

Описание

xml_get_error_code ( resource $parser ) : int

Получает код ошибки XML-анализатора.

Список параметров

parser

Ссылка на анализатор XML для получения кода ошибки.

Возвращаемые значения

Эта функция возвращает FALSE, если ссылка параметра parser не ведет к действующему анализатору, или же возвращает один из кодов ошибок из списка, расположенного в разделе кодов ошибок.

Смотрите также

  • xml_error_string() - Получение строки ошибки XML-анализатора


Разбор XML-данных и помещение в массив

  • « xml_get_error_code
  • xml_parse »
  • PHP Manual
  • Функции парсера XML
  • Разбор XML-данных и помещение в массив

xml_parse_into_struct

(PHP 4, PHP 5, PHP 7)

xml_parse_into_struct — Разбор XML-данных и помещение в массив

Описание

xml_parse_into_struct ( resource $parser , string $data , array &$values [, array &$index ] ) : int

Эта функция разбирает XML-строку и помещает данные в 2 массива. Массив index содержит указатели на размещение значений в массиве values. Аргументы, задающие массивы, должны передаваться в функцию по ссылке.

Список параметров

parser

Ссылка на используемый XML-анализатор.

data

Строка XML-данных.

values

Массив значений XML-данных.

index

Массив указателей на соответствующие значения в массиве $values.

Возвращаемые значения

xml_parse_into_struct() возвращает 0 при неудачном разборе строки и 1 при успешном. Это не то же самое, что FALSE и TRUE, будьте осторожны с такими операторами, как ===.

Примеры

Ниже представлен пример, демонстрирующий внутреннее устройство массивов, генерируемых функцией. XML-строка содержит простой тег note вложенный в тег para. Программа в примере разбирает эту строку и выводит созданные массивы:

Пример #1 Пример использования xml_parse_into_struct()

<?php
$simple = "<para><note>простое примечание</note></para>";
$p = xml_parser_create();
xml_parse_into_struct($p, $simple, $vals, $index);
xml_parser_free($p);
echo "Массив index\n";
print_r($index);
echo "\nМассив vals\n";
print_r($vals);
?>

После обработки программа выведет следующее:

Index array
Array
(
    [PARA] => Array
        (
            [0] => 0
            [1] => 2
        )

    [NOTE] => Array
        (
            [0] => 1
        )

)

Массив Vals
Array
(
    [0] => Array
        (
            [tag] => PARA
            [type] => open
            [level] => 1
        )

    [1] => Array
        (
            [tag] => NOTE
            [type] => complete
            [level] => 2
            [value] => простое примечание
        )

    [2] => Array
        (
            [tag] => PARA
            [type] => close
            [level] => 1
        )

)

Управляемый событиями разбор (основанный на библиотеке expat) может дать труднообрабатываемый результат в случае, если разбирается составной XML-документ. Эта функция не создает DOM-объектов, но создаваемые ею массивы можно преобразовать в древовидную структуру впоследствии. Таким образом можно довольно просто создавать объекты, представляющие содержимое XML-файла. Предположим, что следующий XML файл представляет небольшую базу данных с информацией об аминокислотах:

Пример #2 moldb.xml - небольшая база данных с информацией о молекулах

<?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>
Код, разбирающий документ и создающий подходящие объекты:

Пример #3 parsemoldb.php - разбирает moldb.xml и помещает данные в массив молекул

<?php

class AminoAcid {
    var $name;   // название аминокислоты
    var $symbol; // трехбуквенное обозначение
    var $code;   // однобуквенный код
    var $type;   // гидрофобная, заряженная, нейтральная

    function __construct ($aa)
    {
        foreach ($aa as $k=>$v)
            $this->$k = $aa[$k];
    }
}

function readDatabase($filename)
{
    // чтение XML-базы данных аминокислот
    $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);

    // проход через структуры
    foreach ($tags as $key=>$val) {
        if ($key == "molecule") {
            $molranges = $val;
            // каждая смежная пара значений массивов является верхней и
            // нижней границей определения молекулы
            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 "** База данных аминокислот:\n";
print_r($db);

?>
После выполнения parsemoldb.php переменная $db содержит массив объектов AminoAcid, а вывод соответственно следующий:
** База данных аминокислот:
Array
(
    [0] => aminoacid Object
        (
            [name] => Alanine
            [symbol] => ala
            [code] => A
            [type] => hydrophobic
        )

    [1] => aminoacid Object
        (
            [name] => Lysine
            [symbol] => lys
            [code] => K
            [type] => charged
        )

)


Запускает разбор XML-документа

  • « xml_parse_into_struct
  • xml_parser_create_ns »
  • PHP Manual
  • Функции парсера XML
  • Запускает разбор XML-документа

xml_parse

(PHP 4, PHP 5, PHP 7)

xml_parse — Запускает разбор XML-документа

Описание

xml_parse ( resource $parser , string $data [, bool $is_final = FALSE ] ) : int

xml_parse() разбирает XML-документ. Обработчики запрограммированных событий вызываются столько раз, сколько необходимо.

Список параметров

parser

Ссылка на используемый XML-анализатор.

data

Часть данных для разбора. Документ можно разбирать по частям, вызывая функцию xml_parse() несколько раз с новыми данными, пока аргумент is_final не будет установлен в TRUE, это сообщит анализатору, что разбирается последняя часть документа.

is_final

Если задан и установлен в TRUE, data считается последней частью в этом разборе.

Возвращаемые значения

Возвращает 1 при успешном завершении, 0 в противном случае.

В случае неудачного разбора информацию об ошибках можно получить с помощью
функций xml_get_error_code(),
xml_error_string(),
xml_get_current_line_number(),
xml_get_current_column_number() и
xml_get_current_byte_index().

Замечание:

Некоторые ошибки (такие как ошибки при разборе сущностей) выдаются в конце разбора и получить их можно только когда is_final установлен в TRUE.

Примеры

Пример #1 Разбор по частям больших XML-документов

Этот пример показывает, как большие XML-документы могут быть прочитаны и разобраны по частям, поэтому нет необходимости держать весь документ в памяти. Обработка ошибок опущена для краткости.

<?php
$stream = fopen('large.xml', 'r');
$parser = xml_parser_create();
// установить обработчики
while (($data = fread($stream, 16384))) {
    xml_parse($parser, $data); // разобрать текущую часть
}
xml_parse($parser, '', true); // завершить разбор
xml_parser_free($parser);
fclose($stream);


Создание XML-анализатора с поддержкой пространств имен

  • « xml_parse
  • xml_parser_create »
  • PHP Manual
  • Функции парсера XML
  • Создание XML-анализатора с поддержкой пространств имен

xml_parser_create_ns

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

xml_parser_create_ns — Создание XML-анализатора с поддержкой пространств имен

Описание

xml_parser_create_ns ([ string $encoding [, string $separator = ":" ]] ) : resource

xml_parser_create_ns() создает новый XML-анализатор с поддержкой пространств имен и возвращает ссылающийся на него ресурс, который можно использовать в других XML-функциях.

Список параметров

encoding

Кодировка входных данных определяется автоматически, а encoding задает кодировку только для выводимых данных. Если передается пустая строка, анализатор попытается определить кодировку, просматривая первые 3 или 4 байта. В PHP 5.0.0 и 5.0.1 кодировка по умолчанию ISO-8859-1. Для версий PHP 5.0.2 и выше - UTF-8. Список поддерживаемых кодировок: ISO-8859-1, UTF-8 и US-ASCII.

separator

Если сообщить анализатору пространство имен, то параметры тегов, передающиеся в различные обработчики будут состоять из пространства имен и локального имени, отделенных заданным в этом аргументе разделителем separator.

Возвращаемые значения

Возвращает ресурс созданного XML-анализатора, или FALSE в случае возникновения ошибки.

Смотрите также

  • xml_parser_create() - Создание XML-анализатора
  • xml_parser_free() - Освобождение XML-анализатора


Создание XML-анализатора

  • « xml_parser_create_ns
  • xml_parser_free »
  • PHP Manual
  • Функции парсера XML
  • Создание XML-анализатора

xml_parser_create

(PHP 4, PHP 5, PHP 7)

xml_parser_create — Создание XML-анализатора

Описание

xml_parser_create ([ string $encoding ] ) : resource

xml_parser_create() создает новый XML-анализатор и возвращает ссылающийся на него ресурс, который можно использовать в других XML-функциях.

Список параметров

encoding

Необязательный аргумент encoding задает кодировку символов для ввода/вывода в PHP 4. Начиная с PHP 5, кодировка входных данных определяется автоматически, а параметр encoding задает кодировку только для выводимых данных. В PHP 4 кодировка по умолчанию для выходных данных такая же, что и для входных. Если передается пустая строка, анализатор попытается определить кодировку, просматривая первые 3 или 4 байта. В PHP 5.0.0 и 5.0.1 кодировка по умолчанию ISO-8859-1. Для версий PHP 5.0.2 и выше - UTF-8. Список поддерживаемых кодировок: ISO-8859-1, UTF-8 и US-ASCII.

Возвращаемые значения

Возвращает ресурс созданного XML-анализатора, или FALSE в случае возникновения ошибки.

Смотрите также

  • xml_parser_create_ns() - Создание XML-анализатора с поддержкой пространств имен
  • xml_parser_free() - Освобождение XML-анализатора


Освобождение XML-анализатора

  • « xml_parser_create
  • xml_parser_get_option »
  • PHP Manual
  • Функции парсера XML
  • Освобождение XML-анализатора

xml_parser_free

(PHP 4, PHP 5, PHP 7)

xml_parser_free — Освобождение XML-анализатора

Описание

xml_parser_free ( resource $parser ) : bool

Освобождает память, занятую XML-анализатором parser.

Предостережение

Начиная с PHP 7.0.0, в дополнение к вызову xml_parser_free(), после окончания разбора необходимо также явно удалить (unset) ссылку на parser для избежания утечек памяти, если ресурс парсера ссылается на объект, а этот объект ссылается на ресурс парсера.

Список параметров

parser
Ссылка на удаляемый XML-анализатор.

Возвращаемые значения

Эта функция возвращает FALSE, если parser ссылается на недопустимый анализатор, в остальных случаях она очищает анализатор и возвращает TRUE.


Получение значения настройки XML-анализатора

  • « xml_parser_free
  • xml_parser_set_option »
  • PHP Manual
  • Функции парсера XML
  • Получение значения настройки XML-анализатора

xml_parser_get_option

(PHP 4, PHP 5, PHP 7)

xml_parser_get_option — Получение значения настройки XML-анализатора

Описание

xml_parser_get_option ( resource $parser , int $option ) : mixed

Получает значение настройки XML-анализатора.

Список параметров

parser
Ссылка на XML-анализатор, настройку которого требуется получить.
option
Какую настройку получить. Доступны следующие настройки XML_OPTION_CASE_FOLDING, XML_OPTION_SKIP_TAGSTART, XML_OPTION_SKIP_WHITE и XML_OPTION_TARGET_ENCODING. Их описание смотрите в документации к функции xml_parser_set_option().

Возвращаемые значения

Эта функция возвращает FALSE, если parser ссылается на недопустимый анализатор или если option имеет недопустимое значение (в этом случает выбрасывается предупреждение E_WARNING). В остальных случаях возвращается значение настройки.

Список изменений

Версия | Описание
7.1.24, 7.2.12, 7.3.0 | Теперь параметр options поддерживает XML_OPTION_SKIP_TAGSTART и XML_OPTION_SKIP_WHITE.


Установка значения настройки XML-анализатора

  • « xml_parser_get_option
  • xml_set_character_data_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка значения настройки XML-анализатора

xml_parser_set_option

(PHP 4, PHP 5, PHP 7)

xml_parser_set_option — Установка значения настройки XML-анализатора

Описание

xml_parser_set_option ( resource $parser , int $option , mixed $value ) : bool

Устанавливает значение настройки XML-анализатора.

Список параметров

parser

Ссылка на XML-анализатор.

option

Какую настройку требуется установить. См. ниже.

Доступны следующие настройки:

Настройки XML-анализатора
Константа | Тип данных | Описание
XML_OPTION_CASE_FOLDING | integer | Требуется ли включить case-folding для этого анализатора. Включено по умолчанию.
XML_OPTION_SKIP_TAGSTART | integer | Задает количество символов с начала имени тега, которые следует пропустить.
XML_OPTION_SKIP_WHITE | integer | Требуется ли пропускать значения, состоящие из пробелов.
XML_OPTION_TARGET_ENCODING | string | Устанавливает кодировку, которая будет использоваться XML анализатором. По умолчанию используется кодировка заданная при вызове функции xml_parser_create(). Поддерживаются кодировки ISO-8859-1, US-ASCII и UTF-8.

value

Новое значение настройки.

Возвращаемые значения

Функция возвращает FALSE, если parser ссылается на недопустимый анализатор или если настройка не может быть установлена. В противном случае устанавливается новое значение настройки и возвращается значение TRUE.


Установка обработчика символьных данных

  • « xml_parser_set_option
  • xml_set_default_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика символьных данных

xml_set_character_data_handler

(PHP 4, PHP 5, PHP 7)

xml_set_character_data_handler — Установка обработчика символьных данных

Описание

xml_set_character_data_handler ( resource $parser , callable $handler ) : bool

Устанавливает обработчик символьных данных для заданного XML-анализатора parser.

Список параметров

parser

Ссылка на XML-анализатор.

handler

handler - строка содержащая имя функции, которая должна быть определена на момент вызова функции xml_parse() из анализатора parser.

Функция с именем handler должна принимать два аргумента:

handler ( resource $parser , string $data )
parser
Первый аргумент parser является ссылкой на XML-анализатор вызывающий обработчик.
data
Второй аргумент data должен содержать данные в виде текстовой строки.

Обработчик символьных данных вызывается для каждого фрагмента текста в XML-документе. Он также может вызываться несколько раз внутри каждого фрагмента (например для не ASCII-строк).

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка обработчика по умолчанию

  • « xml_set_character_data_handler
  • xml_set_element_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика по умолчанию

xml_set_default_handler

(PHP 4, PHP 5, PHP 7)

xml_set_default_handler — Установка обработчика по умолчанию

Описание

xml_set_default_handler ( resource $parser , callable $handler ) : bool

Задает обработчик по умолчанию для XML-анализатора parser.

Список параметров

parser

Ссылка на XML-анализатор.

handler

handler - строка содержащая имя функции, которая должна быть определена на момент вызова функции xml_parse() из анализатора parser.

Функция с именем handler должна принимать два аргумента:

handler ( resource $parser , string $data )
parser
Первый аргумент parser является ссылкой на XML-анализатор вызывающий обработчик.
data
Второй аргумент dataдолжен содержать символьные данные. Это может быть XML-объявление, объявление типа документа, сущности или другие данные, для которых еще нет обработчика.

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка обработчика начального и конечного элементов

  • « xml_set_default_handler
  • xml_set_end_namespace_decl_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика начального и конечного элементов

xml_set_element_handler

(PHP 4, PHP 5, PHP 7)

xml_set_element_handler — Установка обработчика начального и конечного элементов

Описание

xml_set_element_handler ( resource $parser , callable $start_element_handler , callable $end_element_handler ) : bool

Устанавливает функцию обработчик элементов для XML-анализатора parser. start_element_handler и end_element_handler - строки, содержащие имена функций, которые должны быть определены на момент вызова функции xml_parse() из анализатора parser.

Список параметров

parser

Ссылка на XML-анализатор.

start_element_handler

Функция с именем start_element_handler должна принимать три аргумента:

start_element_handler ( resource $parser , string $name , array $attribs )
parser
Первый аргумент parser является ссылкой на XML-анализатор вызывающий обработчик.
name
Второй аргумент name содержит имя элемента, для которого этот обработчик вызывается. Если настройка case-folding включена для этого анализатора, имя элемента будет в верхнем регистре.
attribs
Третий аргумент attribs содержит ассоциативный массив с атрибутами элемента (если есть). Индексами этого массива будут имена атрибутов, а значения массива будут соответствовать значениям атрибутов. Имена атрибутов должны быть приведены к регистру в соответствии с теми же критериями, что и имена элементов. Значения атрибутов не приводятся к какому-либо регистру. Атрибуты извлекаются из элемента в порядке прямого обхода по attribs, используя функцию each(). Первый индекс в массиве соответствует первому атрибуту и так далее.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

end_element_handler

Функция с именем end_element_handler должна принимать два аргумента:

end_element_handler ( resource $parser , string $name )
parser
Первый аргумент parser является ссылкой на XML-анализатор вызывающий обработчик.
name
Второй аргумент name содержит имя элемента, для которого этот обработчик вызывается. Если настройка case-folding включена для этого анализатора, имя элемента будет в верхнем регистре.

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка обработчика выхода за пределы пространства имен

  • « xml_set_element_handler
  • xml_set_external_entity_ref_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика выхода за пределы пространства имен

xml_set_end_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

xml_set_end_namespace_decl_handler — Установка обработчика выхода за пределы пространства имен

Описание

xml_set_end_namespace_decl_handler ( resource $parser , callable $handler ) : bool

Задает обработчик, который вызывается при выходе за пределы объявления пространства имен. Этот обработчик будет вызываться для каждого объявления пространства имен после того как отработает обработчик окончания элемента, в котором это пространство имен было объявлено.

Предостережение

Это событие не поддерживается LibXML, поэтому зарегистрированный обработчик не будет называться.

Список параметров

parser

Ссылка на XML-анализатор.

handler

handler - строка содержащая имя функции, которая должна быть определена на момент вызова функции xml_parse() из анализатора parser.

Функция с именем handler должна принимать два аргумента и возвращать целочисленный результат. Если обработчик вернет FALSE (равно как и ничего не вернет), XML анализатор прекратит работу, а функция xml_get_error_code() будет возвращать константу XML_ERROR_EXTERNAL_ENTITY_HANDLING.

handler ( resource $parser , string $prefix )
parser
Первый аргумент parser является ссылкой на XML-анализатор вызывающий обработчик.
prefix
Префикс - строка, используемая как ссылка на пространство имен в пределах XML объекта.

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • xml_set_start_namespace_decl_handler() - Установка обработчика входа в пределы пространства имен


Установка обработчика внешних сущностей

  • « xml_set_end_namespace_decl_handler
  • xml_set_notation_decl_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика внешних сущностей

xml_set_external_entity_ref_handler

(PHP 4, PHP 5, PHP 7)

xml_set_external_entity_ref_handler — Установка обработчика внешних сущностей

Описание

xml_set_external_entity_ref_handler ( resource $parser , callable $handler ) : bool

Задает функцию обработчик внешних сущностей для XML-анализатора parser.

Список параметров

parser

Ссылка на XML-анализатор.

handler

handler - строка содержащая имя функции, которая должна быть определена на момент вызова функции xml_parse() из анализатора parser.

Функция с именем handler должна принимать пять аргументов и возвращать целочисленный результат. Если обработчик вернет FALSE (равно как и ничего не вернет), XML анализатор прекратит работу, а функция xml_get_error_code() будет возвращать константу XML_ERROR_EXTERNAL_ENTITY_HANDLING.

handler ( resource $parser , string $open_entity_names , string $base , string $system_id , string $public_id )
parser
Первый аргумент parser является ссылкой на XML-анализатор вызывающий обработчик.
open_entity_names
Второй аргумент open_entity_names - список разделенных пробелами имен сущностей, которые могут участвовать в разборе текущей сущности (включая текущую сущность).
base
Это основа для разрешения системного идентификатора (system_id) внешней сущности. На данный момент в качестве этого аргумента всегда передается пустая строка.
system_id
Четвертый аргумент system_id - системный идентификатор в том виде, как он представлен в объявлении сущности.
public_id
Пятый аргумент public_id - общедоступный идентификатор в том виде, как он представлен в объявлении сущности, либо пустая строка, если такового нет; пробелы в идентификаторе будут нормализованы в соответствии с требованиями XML-спецификации.

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3.0 | Возвращаемое значение handler больше не игнорируется, если модуль был собран с библиотекой libxml. Раньше возвращаемое значение игнорировалось, а разбор никогда не останавливался.


Установка обработчика объявления условных обозначений

  • « xml_set_external_entity_ref_handler
  • xml_set_object »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика объявления условных обозначений

xml_set_notation_decl_handler

(PHP 4, PHP 5, PHP 7)

xml_set_notation_decl_handler — Установка обработчика объявления условных обозначений

Описание

xml_set_notation_decl_handler ( resource $parser , callable $handler ) : bool

Задает обработчик объявления обозначений для XML-анализатора parser.

Раздел объявления обозначений является частью DTD документа и имеет следующий формат:

<!NOTATION <parameter>name</parameter>
{ <parameter>systemId</parameter> | <parameter>publicId</parameter>?>
См. » раздел 4.7 спецификации XML 1.0 для более полного описания обозначений (нотаций).

Список параметров

parser

Ссылка на XML-анализатор.

handler

handler - строка содержащая имя функции, которая должна быть определена на момент вызова функции xml_parse() из анализатора parser.

Функция с именем handler должна принимать пять аргументов:

handler ( resource $parser , string $notation_name , string $base , string $system_id , string $public_id )
parser
Первый аргумент parser является ссылкой на XML-анализатор вызывающий обработчик.
notation_name
Имя обозначения name в том же виде, как описано выше.
base
Это основа для разрешения системного идентификатора (system_id) внешней сущности. На данный момент в качестве этого аргумента всегда передается пустая строка.
system_id
Системный идентификатор объявления внешнего обозначения.
public_id
Общедоступный идентификатор объявления внешнего обозначения.

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Использование XML-анализатора внутри объекта

  • « xml_set_notation_decl_handler
  • xml_set_processing_instruction_handler »
  • PHP Manual
  • Функции парсера XML
  • Использование XML-анализатора внутри объекта

xml_set_object

(PHP 4, PHP 5, PHP 7)

xml_set_object — Использование XML-анализатора внутри объекта

Описание

xml_set_object ( resource $parser , object &$object ) : bool

Эта функция позволяет использовать parser внутри объекта object. Все callback-функции могут быть установлены функциями xml_set_element_handler() и т.п. и использоваться как методы объекта object.

Список параметров

parser

Ссылка на XML-анализатор.

object

Объект, в котором будет использоваться XML-анализатор.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования xml_set_object()

<?php
class XMLParser
{
    private $parser;

    function __construct()
    {
        $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 __destruct()
    {
        xml_parser_free($this->parser);
        unset($this->parser);
    }

    function parse($data)
    {
        xml_parse($this->parser, $data);
    }

    function tag_open($parser, $tag, $attributes)
    {
        var_dump($tag, $attributes);
    }

    function cdata($parser, $cdata)
    {
        var_dump($cdata);
    }

    function tag_close($parser, $tag)
    {
        var_dump($tag);
    }

} // окончание определения класса xml

$xml_parser = new XMLParser();
$xml_parser->parse("<A ID='hallo'>PHP</A>");
?>

Результат выполнения данного примера:

string(1) "A"
array(1) {
  ["ID"]=>
  string(5) "hallo"
}
string(3) "PHP"
string(1) "A"


Установка обработчика инструкций препроцессора (PI)

  • « xml_set_object
  • xml_set_start_namespace_decl_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика инструкций препроцессора (PI)

xml_set_processing_instruction_handler

(PHP 4, PHP 5, PHP 7)

xml_set_processing_instruction_handler — Установка обработчика инструкций препроцессора (PI)

Описание

xml_set_processing_instruction_handler ( resource $parser , callable $handler ) : bool

Задает обработчик инструкций препроцессора (PI) для XML-анализатора. parser.

Инструкции имеют следующий формат:

<?
target data
?>
Можно вставлять PHP код в тело тега, но есть одно ограничение: завершающий тег инструкций (?>) нельзя заключать в кавычки, таким образом эта последовательность символов не должна встречаться в PHP-коде, который вы вставляете посредством PI в XML-документы. Если это произойдет, остаток PHP-кода будет воспринят как простые символьные данные.

Список параметров

parser

Ссылка на XML-анализатор, для которого устанавливается обработчик.

handler

handler - строка содержащая имя функции, которая должна быть определена на момент вызова функции xml_parse() из анализатора parser.

Функция с именем handler должна принимать три аргумента:

handler ( resource $parser , string $target , string $data )
parser
Первый аргумент parser является ссылкой на XML-анализатор вызывающий обработчик.
target
Второй аргумент target содержит цель применения PI.
data
Третий аргумент data содержит PI-данные.

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка обработчика входа в пределы пространства имен

  • « xml_set_processing_instruction_handler
  • xml_set_unparsed_entity_decl_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика входа в пределы пространства имен

xml_set_start_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

xml_set_start_namespace_decl_handler — Установка обработчика входа в пределы пространства имен

Описание

xml_set_start_namespace_decl_handler ( resource $parser , callable $handler ) : bool

Задает обработчик события входа в пространство имен. То есть обработчик вызывается анализатор находит объявление пространства имен. Подобные объявления находятся в открывающих тэгах элементов. Этот обработчик вызывается до обработчика начала тэга.

Список параметров

parser

Ссылка на XML-анализатор.

handler

handler - строка содержащая имя функции, которая должна быть определена на момент вызова функции xml_parse() из анализатора parser.

Функция с именем handler должна принимать три аргумента и возвращать целочисленный результат. Если обработчик вернет FALSE (равно как и ничего не вернет), XML-анализатор прекратит работу, а функция xml_get_error_code() будет возвращать константу XML_ERROR_EXTERNAL_ENTITY_HANDLING.

handler ( resource $parser , string $prefix , string $uri )
parser
Первый аргумент parser является ссылкой на XML-анализатор вызывающий обработчик.
prefix
Префикс - строка, используемая как ссылка на пространство имен в пределах XML-объекта.
uri
Универсальный идентификатор ресурса (URI) пространства имен.

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • xml_set_end_namespace_decl_handler() - Установка обработчика выхода за пределы пространства имен


Установка обработчика неразобранных объявлений сущностей

  • « xml_set_start_namespace_decl_handler
  • XMLReader »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика неразобранных объявлений сущностей

xml_set_unparsed_entity_decl_handler

(PHP 4, PHP 5, PHP 7)

xml_set_unparsed_entity_decl_handler — Установка обработчика неразобранных объявлений сущностей

Описание

xml_set_unparsed_entity_decl_handler ( resource $parser , callable $handler ) : bool

Задает функцию обработчик неразобранных объявлений сущностей для XML-анализатора parser.

Обработчик handler будет вызван, если XML-анализатор обнаружит NDATA-объявление внешней сущности вида:

<!ENTITY <parameter>name</parameter> {<parameter>publicId</parameter> | <parameter>systemId</parameter>}
        NDATA <parameter>notationName</parameter>

См. » раздел 4.2.2 XML 1.0 спецификации, чтобы получить точное определение обозначений внешних сущностей.

Список параметров

parser

Ссылка на XML-анализатор, для которого задается обработчик.

handler

handler - строка содержащая имя функции, которая должна быть определена на момент вызова функции xml_parse() из анализатора parser.

Функция с именем handler должна принимать шесть аргументов:

handler ( resource $parser , string $entity_name , string $base , string $system_id , string $public_id , string $notation_name )
parser
Первый аргумент parser является ссылкой на XML-анализатор вызывающий обработчик.
entity_name
Имя сущности, которой требуется дать определение.
base
Это основа для разрешения системного идентификатора (system_id) внешней сущности. На данный момент в качестве этого аргумента всегда передается пустая строка.
system_id
Системный идентификатор внешней сущности.
public_id
Общедоступный идентификатор внешней сущности.
notation_name
Имя обозначения этой сущности (см. xml_set_notation_decl_handler()).

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


XMLReader

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • XMLReader — Класс XMLReader
    • XMLReader::close — Закрыть ввод XMLReader
    • XMLReader::expand — Возвратить копию текущего узла в виде объекта DOM
    • XMLReader::getAttribute — Получить значение атрибута с определённым именем
    • XMLReader::getAttributeNo — Получить значение атрибута по индексу
    • XMLReader::getAttributeNs — Получить значение атрибута по localname и URI
    • XMLReader::getParserProperty — Указывает, было ли определенное свойство установлено
    • XMLReader::isValid — Показать, является ли разбираемый документ синтаксически правильным
    • XMLReader::lookupNamespace — Найти пространство имён для префикса
    • XMLReader::moveToAttribute — Переместить курсор к атрибуту с заданным именем
    • XMLReader::moveToAttributeNo — Переместить курсор на атрибут по индексу
    • XMLReader::moveToAttributeNs — Переместить курсор к именованному атрибуту
    • XMLReader::moveToElement — Позиционировать курсор на родительском элементе текущего атрибута
    • XMLReader::moveToFirstAttribute — Переместить позицию курсора на первый атрибут
    • XMLReader::moveToNextAttribute — Переместить позицию курсора на следующий атрибут
    • XMLReader::next — Переместить курсор на следующий узел, пропуская все поддеревья
    • XMLReader::open — Установить URI, содержащий XML-документ для разбора
    • XMLReader::read — Переместиться к следующему узлу в документе
    • XMLReader::readInnerXml — Извлечь XML из текущего узла
    • XMLReader::readOuterXml — Получить XML из текущего узла, включая сам узел
    • XMLReader::readString — Прочитать содержимое текущего узла как строку
    • XMLReader::setParserProperty — Устанавливает опцию парсера
    • XMLReader::setRelaxNGSchema — Установить имя файла или URI для схемы RelaxNG
    • XMLReader::setRelaxNGSchemaSource — Устанавливает данные, содержащие схему RelaxNG
    • XMLReader::setSchema — Проверить документ, используя XSD
    • XMLReader::XML — Установить данные, содержащие XML для разбора


Введение

Расширение XMLReader - синтаксический анализатор XML. Класс-читатель выступает в качестве курсора, следует по потоку документа и останавливается на каждом узле на этом пути.

Кодировка

Важно отметить, что библиотека libxml внутри использует кодировку UTF-8 и, таким образом, кодировка извлекаемого содержимого всегда будет в кодировке UTF-8.


Установка

Расширение XMLReader изначально было расширением PECL для PHP 5. Начиная с версии PHP 5.1.0, оно было перенесено в исходный код PHP (объединено), а затем включено по умолчанию с версии PHP 5.1.2.

Это расширение включено по умолчанию. Оно может быть отключено во время выполнения с помощью следующей опции: --disable-xmlreader


  • « Настройка во время выполнения
  • XMLReader »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Класс XMLReader

(PHP 5 >= 5.1.0, PHP 7)

Введение

Расширение XMLReader - синтаксический анализатор XML. Класс-читатель выступает в качестве курсора, следует по потоку документа и останавливается на каждом узле на этом пути.

Обзор классов

XMLReader {
/* Константы */
const int NONE = 0 ;
const int ELEMENT = 1 ;
const int ATTRIBUTE = 2 ;
const int TEXT = 3 ;
const int CDATA = 4 ;
const int ENTITY_REF = 5 ;
const int ENTITY = 6 ;
const int PI = 7 ;
const int COMMENT = 8 ;
const int DOC = 9 ;
const int DOC_TYPE = 10 ;
const int DOC_FRAGMENT = 11 ;
const int NOTATION = 12 ;
const int WHITESPACE = 13 ;
const int SIGNIFICANT_WHITESPACE = 14 ;
const int END_ELEMENT = 15 ;
const int END_ENTITY = 16 ;
const int XML_DECLARATION = 17 ;
const int LOADDTD = 1 ;
const int DEFAULTATTRS = 2 ;
const int VALIDATE = 3 ;
const int SUBST_ENTITIES = 4 ;
/* Свойства */
public readonly int $attributeCount ;
public readonly string $baseURI ;
public readonly int $depth ;
public readonly bool $hasAttributes ;
public readonly bool $hasValue ;
public readonly bool $isDefault ;
public readonly bool $isEmptyElement ;
public readonly string $localName ;
public readonly string $name ;
public readonly string $namespaceURI ;
public readonly int $nodeType ;
public readonly string $prefix ;
public readonly string $value ;
public readonly string $xmlLang ;
/* Методы */
public close ( void ) : bool
public expand ([ DOMNode $basenode ] ) : DOMNode
public getAttribute ( string $name ) : string
public getAttributeNo ( int $index ) : string
public getAttributeNs ( string $localName , string $namespaceURI ) : string
public getParserProperty ( int $property ) : bool
public isValid ( void ) : bool
public lookupNamespace ( string $prefix ) : string
public moveToAttribute ( string $name ) : bool
public moveToAttributeNo ( int $index ) : bool
public moveToAttributeNs ( string $localName , string $namespaceURI ) : bool
public moveToElement ( void ) : bool
public moveToFirstAttribute ( void ) : bool
public moveToNextAttribute ( void ) : bool
public next ([ string $localname ] ) : bool
public open ( string $URI [, string $encoding [, int $options = 0 ]] ) : bool
public read ( void ) : bool
public readInnerXml ( void ) : string
public readOuterXml ( void ) : string
public readString ( void ) : string
public setParserProperty ( int $property , bool $value ) : bool
public setRelaxNGSchema ( string $filename ) : bool
public setRelaxNGSchemaSource ( string $source ) : bool
public setSchema ( string $filename ) : bool
public xml ( string $source [, string $encoding [, int $options = 0 ]] ) : bool
}

Свойства

attributeCount

Количество атрибутов в узле

baseURI

Базовый URI узла

depth

Глубина узла в дереве, начиная с 0

hasAttributes

Показывает, есть ли у узла атрибуты

hasValue

Показывает, имеет ли узел текстовое значение

isDefault

Показывает, является ли атрибутом по умолчанию из DTD

isEmptyElement

Показывает, является ли узел пустым тегом

localName

Локальное имя узла

name

Полностью определенное имя узла

namespaceURI

URI пространства имён связанный с узлом

nodeType

Тип узла

prefix

Префикс пространства имён связанный с узлом

value

Текстовое значение узла

xmlLang

Контекст xml:lang, в котором находится узел

Предопределенные константы

Типы узлов XMLReader

XMLReader::NONE

Нет типа узла

XMLReader::ELEMENT

Начальный элемент

XMLReader::ATTRIBUTE

Узел атрибута

XMLReader::TEXT

Текстовый узел

XMLReader::CDATA

Узел CDATA

XMLReader::ENTITY_REF

Узел ссылки на сущность

XMLReader::ENTITY

Узел объявления объекта

XMLReader::PI

Узел инструкций обработки

XMLReader::COMMENT

Узел комментария

XMLReader::DOC

Узел документа

XMLReader::DOC_TYPE

Узел типа документа

XMLReader::DOC_FRAGMENT

Узел фрагмента документа

XMLReader::NOTATION

Узел нотации

XMLReader::WHITESPACE

Пробельный узел

XMLReader::SIGNIFICANT_WHITESPACE

Существенный пробельный узел

XMLReader::END_ELEMENT

Завершение элемента

XMLReader::END_ENTITY

Завершение объекта

XMLReader::XML_DECLARATION

Узел XML объявления

Опции анализатора XMLReader

XMLReader::LOADDTD

Загружать DTD, но не проверять

XMLReader::DEFAULTATTRS

Загружать DTD и атрибуты по умолчанию, но не проверять

XMLReader::VALIDATE

Загружать DTD и проверять при разборе

XMLReader::SUBST_ENTITIES

Заменять объекты и разворачивать ссылки

Содержание

  • XMLReader::close — Закрыть ввод XMLReader
  • XMLReader::expand — Возвратить копию текущего узла в виде объекта DOM
  • XMLReader::getAttribute — Получить значение атрибута с определённым именем
  • XMLReader::getAttributeNo — Получить значение атрибута по индексу
  • XMLReader::getAttributeNs — Получить значение атрибута по localname и URI
  • XMLReader::getParserProperty — Указывает, было ли определенное свойство установлено
  • XMLReader::isValid — Показать, является ли разбираемый документ синтаксически правильным
  • XMLReader::lookupNamespace — Найти пространство имён для префикса
  • XMLReader::moveToAttribute — Переместить курсор к атрибуту с заданным именем
  • XMLReader::moveToAttributeNo — Переместить курсор на атрибут по индексу
  • XMLReader::moveToAttributeNs — Переместить курсор к именованному атрибуту
  • XMLReader::moveToElement — Позиционировать курсор на родительском элементе текущего атрибута
  • XMLReader::moveToFirstAttribute — Переместить позицию курсора на первый атрибут
  • XMLReader::moveToNextAttribute — Переместить позицию курсора на следующий атрибут
  • XMLReader::next — Переместить курсор на следующий узел, пропуская все поддеревья
  • XMLReader::open — Установить URI, содержащий XML-документ для разбора
  • XMLReader::read — Переместиться к следующему узлу в документе
  • XMLReader::readInnerXml — Извлечь XML из текущего узла
  • XMLReader::readOuterXml — Получить XML из текущего узла, включая сам узел
  • XMLReader::readString — Прочитать содержимое текущего узла как строку
  • XMLReader::setParserProperty — Устанавливает опцию парсера
  • XMLReader::setRelaxNGSchema — Установить имя файла или URI для схемы RelaxNG
  • XMLReader::setRelaxNGSchemaSource — Устанавливает данные, содержащие схему RelaxNG
  • XMLReader::setSchema — Проверить документ, используя XSD
  • XMLReader::XML — Установить данные, содержащие XML для разбора


Закрыть ввод XMLReader

  • « XMLReader
  • XMLReader::expand »
  • PHP Manual
  • XMLReader
  • Закрыть ввод XMLReader

XMLReader::close

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::close — Закрыть ввод XMLReader

Описание

public XMLReader::close ( void ) : bool

Закрывает ввод, который в настоящий момент анализирует объект XMLReader.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::open() - Установить URI, содержащий XML-документ для разбора
  • XMLReader::xml() - Установить данные, содержащие XML для разбора


Возвратить копию текущего узла в виде объекта DOM

  • « XMLReader::close
  • XMLReader::getAttribute »
  • PHP Manual
  • XMLReader
  • Возвратить копию текущего узла в виде объекта DOM

XMLReader::expand

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::expand — Возвратить копию текущего узла в виде объекта DOM

Описание

public XMLReader::expand ([ DOMNode $basenode ] ) : DOMNode

Этот метод копирует текущий узел и возвращает соответствующий объект DOM.

Список параметров

basenode

DOMNode определяет целевой DOMDocument созданного объекта DOM.

Возвращаемые значения

Результирующий DOMNode или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.0 | Добавлен параметр basenode.


Получить значение атрибута с определённым именем

  • « XMLReader::expand
  • XMLReader::getAttributeNo »
  • PHP Manual
  • XMLReader
  • Получить значение атрибута с определённым именем

XMLReader::getAttribute

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::getAttribute — Получить значение атрибута с определённым именем

Описание

public XMLReader::getAttribute ( string $name ) : string

Возвращает значение именованного атрибута или NULL, если атрибут не существует или не находится в узле элемента.

Список параметров

name

Имя атрибута.

Возвращаемые значения

Значение атрибута или NULL, если атрибут с заданным параметром name не найден или нет позиции элемента.

Список изменений

Версия | Описание
5.1.3 | Возвращает NULL, если атрибут не найден. Ранее возвращалась пустая строка.

Смотрите также

  • XMLReader::getAttributeNo() - Получить значение атрибута по индексу
  • XMLReader::getAttributeNs() - Получить значение атрибута по localname и URI


Получить значение атрибута по индексу

  • « XMLReader::getAttribute
  • XMLReader::getAttributeNs »
  • PHP Manual
  • XMLReader
  • Получить значение атрибута по индексу

XMLReader::getAttributeNo

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::getAttributeNo — Получить значение атрибута по индексу

Описание

public XMLReader::getAttributeNo ( int $index ) : string

Возвращает значение атрибута на основании позиции или пустую строку, если атрибут не существует или не расположен на узле элемента.

Список параметров

index

Позиция атрибута.

Возвращаемые значения

Значение атрибута или пустая строка (до PHP 5.6) или NULL (начиная с PHP 5.6) если атрибут с заданным параметром index не существует или нет позиции элемента.

Список изменений

Версия | Описание
5.6.0 | XMLReader::getAttributeNo() теперь возвращает NULL, если атрибут не существует.

Смотрите также

  • XMLReader::getAttribute() - Получить значение атрибута с определённым именем
  • XMLReader::getAttributeNs() - Получить значение атрибута по localname и URI


Получить значение атрибута по localname и URI

  • « XMLReader::getAttributeNo
  • XMLReader::getParserProperty »
  • PHP Manual
  • XMLReader
  • Получить значение атрибута по localname и URI

XMLReader::getAttributeNs

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::getAttributeNs — Получить значение атрибута по localname и URI

Описание

public XMLReader::getAttributeNs ( string $localName , string $namespaceURI ) : string

Возвращает значение атрибута по имени и URI пространства имен или пустую строку, если атрибут не существует или не расположен на узле элемента.

Список параметров

localName

Локальное имя.

namespaceURI

URI пространства имён.

Возвращаемые значения

Значение атрибута или пустая строка (до PHP 5.6) или NULL (начиная с PHP 5.6) если атрибут с заданным localName и namespaceURI не найден или нет позиции элемента.

Список изменений

Версия | Описание
5.6.0 | XMLReader::getAttributeNS() теперь возвращает NULL, если атрибут не существует.

Смотрите также

  • XMLReader::getAttribute() - Получить значение атрибута с определённым именем
  • XMLReader::getAttributeNo() - Получить значение атрибута по индексу


Указывает, было ли определенное свойство установлено

  • « XMLReader::getAttributeNs
  • XMLReader::isValid »
  • PHP Manual
  • XMLReader
  • Указывает, было ли определенное свойство установлено

XMLReader::getParserProperty

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::getParserProperty — Указывает, было ли определенное свойство установлено

Описание

public XMLReader::getParserProperty ( int $property ) : bool

Указывает, было ли определенное свойство установлено.

Список параметров

property

Одна из констант анализатора.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::setParserProperty() - Устанавливает опцию парсера


Показать, является ли разбираемый документ синтаксически правильным

  • « XMLReader::getParserProperty
  • XMLReader::lookupNamespace »
  • PHP Manual
  • XMLReader
  • Показать, является ли разбираемый документ синтаксически правильным

XMLReader::isValid

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::isValid — Показать, является ли разбираемый документ синтаксически правильным

Описание

public XMLReader::isValid ( void ) : bool

Возвращает логическое значение (boolean), которое является признаком того, что разбираемый документ является синтаксически правильным.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Проверка правильности XML

<?php
$xml = XMLReader::open('test.xml');

// Для работы метода обязательно должна быть включена
// валидация парсера.
$xml->setParserProperty(XMLReader::VALIDATE, true);

var_dump($xml->isValid());
?>

Примечания

Замечание: Проверяется только текущая нода, а не весь документ.

Смотрите также

  • XMLReader::setParserProperty() - Устанавливает опцию парсера
  • XMLReader::setRelaxNGSchema() - Установить имя файла или URI для схемы RelaxNG
  • XMLReader::setRelaxNGSchemaSource() - Устанавливает данные, содержащие схему RelaxNG
  • XMLReader::setSchema() - Проверить документ, используя XSD


Найти пространство имён для префикса

  • « XMLReader::isValid
  • XMLReader::moveToAttribute »
  • PHP Manual
  • XMLReader
  • Найти пространство имён для префикса

XMLReader::lookupNamespace

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::lookupNamespace — Найти пространство имён для префикса

Описание

public XMLReader::lookupNamespace ( string $prefix ) : string

Поиск в контексте пространства имен для данного префикса.

Список параметров

prefix

Строка, содержащая префикс.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Переместить курсор к атрибуту с заданным именем

  • « XMLReader::lookupNamespace
  • XMLReader::moveToAttributeNo »
  • PHP Manual
  • XMLReader
  • Переместить курсор к атрибуту с заданным именем

XMLReader::moveToAttribute

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToAttribute — Переместить курсор к атрибуту с заданным именем

Описание

public XMLReader::moveToAttribute ( string $name ) : bool

Позиционирует курсор на атрибуте с заданным именем.

Список параметров

name

Имя атрибута.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::moveToElement() - Позиционировать курсор на родительском элементе текущего атрибута
  • XMLReader::moveToAttributeNo() - Переместить курсор на атрибут по индексу
  • XMLReader::moveToAttributeNs() - Переместить курсор к именованному атрибуту
  • XMLReader::moveToFirstAttribute() - Переместить позицию курсора на первый атрибут


Переместить курсор на атрибут по индексу

  • « XMLReader::moveToAttribute
  • XMLReader::moveToAttributeNs »
  • PHP Manual
  • XMLReader
  • Переместить курсор на атрибут по индексу

XMLReader::moveToAttributeNo

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToAttributeNo — Переместить курсор на атрибут по индексу

Описание

public XMLReader::moveToAttributeNo ( int $index ) : bool

Устанавливает курсор на атрибуте, основываясь на его позиции.

Список параметров

index

Позиция атрибута.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::moveToElement() - Позиционировать курсор на родительском элементе текущего атрибута
  • XMLReader::moveToAttribute() - Переместить курсор к атрибуту с заданным именем
  • XMLReader::moveToAttributeNs() - Переместить курсор к именованному атрибуту
  • XMLReader::moveToFirstAttribute() - Переместить позицию курсора на первый атрибут


Переместить курсор к именованному атрибуту

  • « XMLReader::moveToAttributeNo
  • XMLReader::moveToElement »
  • PHP Manual
  • XMLReader
  • Переместить курсор к именованному атрибуту

XMLReader::moveToAttributeNs

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToAttributeNs — Переместить курсор к именованному атрибуту

Описание

public XMLReader::moveToAttributeNs ( string $localName , string $namespaceURI ) : bool

Позиционирует курсор на именованном атрибуте в указанном пространстве имен.

Список параметров

localName

Локальное имя.

namespaceURI

URI пространства имён.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::moveToElement() - Позиционировать курсор на родительском элементе текущего атрибута
  • XMLReader::moveToAttribute() - Переместить курсор к атрибуту с заданным именем
  • XMLReader::moveToAttributeNo() - Переместить курсор на атрибут по индексу
  • XMLReader::moveToFirstAttribute() - Переместить позицию курсора на первый атрибут


Позиционировать курсор на родительском элементе текущего атрибута

  • « XMLReader::moveToAttributeNs
  • XMLReader::moveToFirstAttribute »
  • PHP Manual
  • XMLReader
  • Позиционировать курсор на родительском элементе текущего атрибута

XMLReader::moveToElement

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToElement — Позиционировать курсор на родительском элементе текущего атрибута

Описание

public XMLReader::moveToElement ( void ) : bool

Перемещает курсор на родительский элемент текущего атрибута.

Возвращаемые значения

Возвращает TRUE в случае успеха и FALSE в случае неудачи или если невозможно выполнить позиционирование курсора на атрибуте, когда этот метод вызывается.

Смотрите также

  • XMLReader::moveToAttribute() - Переместить курсор к атрибуту с заданным именем
  • XMLReader::moveToAttributeNo() - Переместить курсор на атрибут по индексу
  • XMLReader::moveToAttributeNs() - Переместить курсор к именованному атрибуту
  • XMLReader::moveToFirstAttribute() - Переместить позицию курсора на первый атрибут


Переместить позицию курсора на первый атрибут

  • « XMLReader::moveToElement
  • XMLReader::moveToNextAttribute »
  • PHP Manual
  • XMLReader
  • Переместить позицию курсора на первый атрибут

XMLReader::moveToFirstAttribute

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToFirstAttribute — Переместить позицию курсора на первый атрибут

Описание

public XMLReader::moveToFirstAttribute ( void ) : bool

Перемещает позицию курсора на первый атрибут.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::moveToElement() - Позиционировать курсор на родительском элементе текущего атрибута
  • XMLReader::moveToAttribute() - Переместить курсор к атрибуту с заданным именем
  • XMLReader::moveToAttributeNo() - Переместить курсор на атрибут по индексу
  • XMLReader::moveToAttributeNs() - Переместить курсор к именованному атрибуту
  • XMLReader::moveToNextAttribute() - Переместить позицию курсора на следующий атрибут


Переместить позицию курсора на следующий атрибут

  • « XMLReader::moveToFirstAttribute
  • XMLReader::next »
  • PHP Manual
  • XMLReader
  • Переместить позицию курсора на следующий атрибут

XMLReader::moveToNextAttribute

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToNextAttribute — Переместить позицию курсора на следующий атрибут

Описание

public XMLReader::moveToNextAttribute ( void ) : bool

Перемещает курсора к следующему атрибуту, если курсор спозиционирован на атрибуте или перемещает позицию на первый атрибут, если спозиционирован на элементе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::moveToElement() - Позиционировать курсор на родительском элементе текущего атрибута
  • XMLReader::moveToAttribute() - Переместить курсор к атрибуту с заданным именем
  • XMLReader::moveToAttributeNo() - Переместить курсор на атрибут по индексу
  • XMLReader::moveToAttributeNs() - Переместить курсор к именованному атрибуту
  • XMLReader::moveToFirstAttribute() - Переместить позицию курсора на первый атрибут


Переместить курсор на следующий узел, пропуская все поддеревья

  • « XMLReader::moveToNextAttribute
  • XMLReader::open »
  • PHP Manual
  • XMLReader
  • Переместить курсор на следующий узел, пропуская все поддеревья

XMLReader::next

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::next — Переместить курсор на следующий узел, пропуская все поддеревья

Описание

public XMLReader::next ([ string $localname ] ) : bool

Позиционирует курсор на следующем узле, пропуская все поддеревья.

Список параметров

localname

Имя следующего узла для перехода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::moveToNextAttribute() - Переместить позицию курсора на следующий атрибут
  • XMLReader::moveToElement() - Позиционировать курсор на родительском элементе текущего атрибута
  • XMLReader::moveToAttribute() - Переместить курсор к атрибуту с заданным именем


Установить URI, содержащий XML-документ для разбора

  • « XMLReader::next
  • XMLReader::read »
  • PHP Manual
  • XMLReader
  • Установить URI, содержащий XML-документ для разбора

XMLReader::open

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::open — Установить URI, содержащий XML-документ для разбора

Описание

public XMLReader::open ( string $URI [, string $encoding [, int $options = 0 ]] ) : bool

Установить URI, содержащий XML-документ, который будет разобран.

Список параметров

URI

URI, указывающий на документ.

encoding

Кодировка документа или NULL.

options

Битовая маска, состоящая из LIBXML_* констант.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. при статическом вызове, возвращается XMLReader или FALSE в случае возникновения ошибки.

Ошибки

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Список изменений

Версия | Описание
5.2.0 | Были добавлены параметры encoding и options.

Смотрите также

  • XMLReader::xml() - Установить данные, содержащие XML для разбора
  • XMLReader::close() - Закрыть ввод XMLReader


Переместиться к следующему узлу в документе

  • « XMLReader::open
  • XMLReader::readInnerXml »
  • PHP Manual
  • XMLReader
  • Переместиться к следующему узлу в документе

XMLReader::read

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::read — Переместиться к следующему узлу в документе

Описание

public XMLReader::read ( void ) : bool

Перемещает курсор к следующему узлу в документе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::moveToElement() - Позиционировать курсор на родительском элементе текущего атрибута
  • XMLReader::moveToAttribute() - Переместить курсор к атрибуту с заданным именем
  • XMLReader::next() - Переместить курсор на следующий узел, пропуская все поддеревья


Извлечь XML из текущего узла

  • « XMLReader::read
  • XMLReader::readOuterXml »
  • PHP Manual
  • XMLReader
  • Извлечь XML из текущего узла

XMLReader::readInnerXml

(PHP 5 >= 5.2.0, PHP 7)

XMLReader::readInnerXml — Извлечь XML из текущего узла

Описание

public XMLReader::readInnerXml ( void ) : string

Читает содержимое текущего узла, включая дочерние узлы и разметку.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает содержимое текущего узла в виде строки. Пустая строка возвращается в случае ошибки.

Примечания

Предостережение

Эта функция доступна только если PHP скомпилирован с поддержкой libxml 20620 или старше.

Смотрите также

  • XMLReader::readString() - Прочитать содержимое текущего узла как строку
  • XMLReader::readOuterXml() - Получить XML из текущего узла, включая сам узел
  • XMLReader::expand() - Возвратить копию текущего узла в виде объекта DOM


Получить XML из текущего узла, включая сам узел

  • « XMLReader::readInnerXml
  • XMLReader::readString »
  • PHP Manual
  • XMLReader
  • Получить XML из текущего узла, включая сам узел

XMLReader::readOuterXml

(PHP 5 >= 5.2.0, PHP 7)

XMLReader::readOuterXml — Получить XML из текущего узла, включая сам узел

Описание

public XMLReader::readOuterXml ( void ) : string

Читает содержимое текущего узла, включая сам узел.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает содержимое текущего узла, включая сам узел как строку. В случае ошибки строка будет пустой.

Примечания

Предостережение

Эта функция доступна только если PHP скомпилирован с поддержкой libxml 20620 или старше.

Смотрите также

  • XMLReader::readString() - Прочитать содержимое текущего узла как строку
  • XMLReader::readInnerXml() - Извлечь XML из текущего узла
  • XMLReader::expand() - Возвратить копию текущего узла в виде объекта DOM


Прочитать содержимое текущего узла как строку

  • « XMLReader::readOuterXml
  • XMLReader::setParserProperty »
  • PHP Manual
  • XMLReader
  • Прочитать содержимое текущего узла как строку

XMLReader::readString

(PHP 5 >= 5.2.0, PHP 7)

XMLReader::readString — Прочитать содержимое текущего узла как строку

Описание

public XMLReader::readString ( void ) : string

Читает содержимое текущего узла как строку.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает содержимое текущего узла в виде строки. В случае ошибки строка будет пустой.

Примечания

Предостережение

Эта функция доступна только если PHP скомпилирован с поддержкой libxml 20620 или старше.

Смотрите также

  • XMLReader::readOuterXml() - Получить XML из текущего узла, включая сам узел
  • XMLReader::readInnerXml() - Извлечь XML из текущего узла
  • XMLReader::expand() - Возвратить копию текущего узла в виде объекта DOM


Устанавливает опцию парсера

  • « XMLReader::readString
  • XMLReader::setRelaxNGSchema »
  • PHP Manual
  • XMLReader
  • Устанавливает опцию парсера

XMLReader::setParserProperty

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::setParserProperty — Устанавливает опцию парсера

Описание

public XMLReader::setParserProperty ( int $property , bool $value ) : bool

Устанавливает опции для парсера. Опции должны быть установлены после вызова XMLReader::open() или XMLReader::xml() и до первого вызова XMLReader::read().

Список параметров

property

Одна из констант опций парсера.

value

Если установлено в TRUE, то опция будет включена, в противном случае опция будет выключена.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установить имя файла или URI для схемы RelaxNG

  • « XMLReader::setParserProperty
  • XMLReader::setRelaxNGSchemaSource »
  • PHP Manual
  • XMLReader
  • Установить имя файла или URI для схемы RelaxNG

XMLReader::setRelaxNGSchema

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::setRelaxNGSchema — Установить имя файла или URI для схемы RelaxNG

Описание

public XMLReader::setRelaxNGSchema ( string $filename ) : bool

Устанавливает имя файла или URI для схемы RelaxNG, которые используются при проверке.

Список параметров

filename

Имя файла или URI, указывающий на схему RelaxNG.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::setRelaxNGSchemaSource() - Устанавливает данные, содержащие схему RelaxNG
  • XMLReader::setSchema() - Проверить документ, используя XSD
  • XMLReader::isValid() - Показать, является ли разбираемый документ синтаксически правильным


Устанавливает данные, содержащие схему RelaxNG

  • « XMLReader::setRelaxNGSchema
  • XMLReader::setSchema »
  • PHP Manual
  • XMLReader
  • Устанавливает данные, содержащие схему RelaxNG

XMLReader::setRelaxNGSchemaSource

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::setRelaxNGSchemaSource — Устанавливает данные, содержащие схему RelaxNG

Описание

public XMLReader::setRelaxNGSchemaSource ( string $source ) : bool

Устанавливает данные, содержащие схему RelaxNG, используемую при проверке.

Список параметров

source

Строка, содержащая схему RelaxNG.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::setRelaxNGSchema() - Установить имя файла или URI для схемы RelaxNG
  • XMLReader::setSchema() - Проверить документ, используя XSD
  • XMLReader::isValid() - Показать, является ли разбираемый документ синтаксически правильным


Проверить документ, используя XSD

  • « XMLReader::setRelaxNGSchemaSource
  • XMLReader::XML »
  • PHP Manual
  • XMLReader
  • Проверить документ, используя XSD

XMLReader::setSchema

(PHP 5 >= 5.2.0, PHP 7)

XMLReader::setSchema — Проверить документ, используя XSD

Описание

public XMLReader::setSchema ( string $filename ) : bool

Использует схему W3C XSD для проверки документов в процессе работы. Активация возможна только до первого вызова Read().

Список параметров

filename

Имя файла XSD схемы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Предупреждение E_WARNING возникает, если libxml был собран без поддержки схем, схема содержит ошибки или если функция XMLReader::read() уже была вызвана.

Примечания

Предостережение

Эта функция доступна только если PHP скомпилирован с поддержкой libxml 20620 или старше.

Смотрите также

  • XMLReader::setRelaxNGSchema() - Установить имя файла или URI для схемы RelaxNG
  • XMLReader::setRelaxNGSchemaSource() - Устанавливает данные, содержащие схему RelaxNG
  • XMLReader::isValid() - Показать, является ли разбираемый документ синтаксически правильным


Установить данные, содержащие XML для разбора

  • « XMLReader::setSchema
  • XMLWriter »
  • PHP Manual
  • XMLReader
  • Установить данные, содержащие XML для разбора

XMLReader::XML

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::XML — Установить данные, содержащие XML для разбора

Описание

public XMLReader::xml ( string $source [, string $encoding [, int $options = 0 ]] ) : bool

Устанавливает данные, содержащие XML для разбора.

Список параметров

source

Строка, содержащая XML для разбора.

encoding

Кодировка документа или NULL.

options

Битовая маска констант LIBXML_*.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. в случае статического вызова либо возвращается XMLReader или FALSE в случае возникновения ошибки.

Ошибки

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Список изменений

Версия | Описание
5.2.0 | Были добавлены параметры encoding и options.

Смотрите также

  • XMLReader::open() - Установить URI, содержащий XML-документ для разбора
  • XMLReader::close() - Закрыть ввод XMLReader


XMLWriter

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Создание простого XML-документа
    • Работа с пространствами имен XML
    • Работа с объектно-ориентированным API
  • XMLWriter
    • XMLWriter::endAttribute — Завершить атрибут
    • XMLWriter::endCdata — Завершить текущую секцию CDATA
    • XMLWriter::endComment — Завершить комментарий
    • XMLWriter::endDocument — Завершить текущий документ
    • XMLWriter::endDtdAttlist — Завершить текущий список атрибутов DTD
    • XMLWriter::endDtdElement — Завершить текущий элемент DTD
    • XMLWriter::endDtdEntity — Завершить текущую запись DTD
    • XMLWriter::endDtd — Завершить текущий DTD
    • XMLWriter::endElement — Завершить текущий элемент
    • XMLWriter::endPi — Завершить текущую инструкцию обработки (PI)
    • XMLWriter::flush — Сбросить текущий буфер
    • XMLWriter::fullEndElement — Завершить текущий элемент
    • XMLWriter::openMemory — Создать новый объект XMLWriter, используя память для строкового вывода
    • XMLWriter::openUri — Создать новый объект XMLWriter, используя исходный URI для вывода
    • XMLWriter::outputMemory — Возвращает текущий буфер
    • XMLWriter::setIndentString — Установить строку, используемую для отступов
    • XMLWriter::setIndent — Включить или отключить отступы
    • XMLWriter::startAttributeNs — Создать стартовый атрибут пространства имен
    • XMLWriter::startAttribute — Создать начальный атрибут
    • XMLWriter::startCdata — Создать начальный тег CDATA
    • XMLWriter::startComment — Создает стартовый комментарий
    • XMLWriter::startDocument — Создать тег документа
    • XMLWriter::startDtdAttlist — Создает стартовый список атрибутов DTD
    • XMLWriter::startDtdElement — Создать стартовый элемент DTD
    • XMLWriter::startDtdEntity — Создать стартовую запись DTD
    • XMLWriter::startDtd — Создать стартовый DTD тег
    • XMLWriter::startElementNs — Создать стартовый тег элемента пространства имен
    • XMLWriter::startElement — Создать стартовый тег элемента
    • XMLWriter::startPi — Создать стартовый тег PI
    • XMLWriter::text — Записать текст
    • XMLWriter::writeAttributeNs — Записать полный атрибут пространства имен
    • XMLWriter::writeAttribute — Записать полный атрибут
    • XMLWriter::writeCdata — Записать полный тег CDATA
    • XMLWriter::writeComment — Записать полный тег комментария
    • XMLWriter::writeDtdAttlist — Записать полный тег DTD AttList
    • XMLWriter::writeDtdElement — Записать полный тег элемента DTD
    • XMLWriter::writeDtdEntity — Записать полный тег DTD записи
    • XMLWriter::writeDtd — Записать полный тег DTD
    • XMLWriter::writeElementNs — Записать полное пространство имен тега элемента
    • XMLWriter::writeElement — Записать полный тег элемента
    • XMLWriter::writePi — Записать инструкцию обработки (PI)
    • XMLWriter::writeRaw — Записать необработанный XML-текст


Введение

XMLWriter является модулем PHP. Он создает xmlWriter API на основе библиотеки libxml.

Модуль представляет собой класс-писатель, который является некешируемым, однонаправленным средством генерирования потоков или файлов, содержащих данные XML.

Модуль может быть использован в объектно-ориентированном либо в процедурном стилях. Каждый документированный метод описывает альтернативные процедурные вызовы.


Установка

Расширение XMLWriter изначально поставлялось как PECL расширения PHP 5. Позже оно было добавлено в сборку PHP 5.1.2. Данное расширение включено по умолчанию.

Это расширение включено по умолчанию. Оно может быть отключено во время выполнения с помощью следующей опции: --disable-xmlwriter


Типы ресурсов

Существует один resource, используемый процедурной версией расширения XMLWriter: его возвращает xmlwriter_open_memory() или xmlwriter_open_uri().


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • XMLWriter
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Содержание

  • Создание простого XML-документа
  • Работа с пространствами имен XML
  • Работа с объектно-ориентированным API


Создание простого XML-документа

Этот пример демонстрирует создание XML-документа в памяти с помощью XMLWriter.

Пример #1 Создание простого XML-документа

<?php

$xw = xmlwriter_open_memory();
xmlwriter_set_indent($xw, 1);
$res = xmlwriter_set_indent_string($xw, ' ');

xmlwriter_start_document($xw, '1.0', 'UTF-8');

// Первый элемент
xmlwriter_start_element($xw, 'tag1');

// Атрибут 'att1' для элемента 'tag1'
xmlwriter_start_attribute($xw, 'att1');
xmlwriter_text($xw, 'valueofatt1');
xmlwriter_end_attribute($xw);

xmlwriter_write_comment($xw, 'this is a comment.');

// Создаем дочерний элемент
xmlwriter_start_element($xw, 'tag11');
xmlwriter_text($xw, 'This is a sample text, a');
xmlwriter_end_element($xw); // tag11

xmlwriter_end_element($xw); // tag1

// CDATA
xmlwriter_start_element($xw, 'testc');
xmlwriter_write_cdata($xw, "This is cdata content");
xmlwriter_end_element($xw); // testc

xmlwriter_start_element($xw, 'testc');
xmlwriter_start_cdata($xw);
xmlwriter_text($xw, "test cdata2");
xmlwriter_end_cdata($xw);
xmlwriter_end_element($xw); // testc

// Инструкции по обработке
xmlwriter_start_pi($xw, 'php');
xmlwriter_text($xw, '$foo=2;echo $foo;');
xmlwriter_end_pi($xw);

xmlwriter_end_document($xw);

echo xmlwriter_output_memory($xw);

Результат выполнения данного примера:

<?xml version="1.0" encoding="UTF-8"?>
<tag1 att1="valueofatt1">
 <!--this is a comment.-->
 <tag11>This is a sample text, a</tag11>
</tag1>
<testc><![CDATA[This is cdata content]]></testc>
<testc><![CDATA[test cdata2]]></testc>
<?php $foo=2;echo $foo;?>


Работа с пространствами имен XML

В этом примере демонстрируется создание элементов в пространстве имен.

Пример #1 Работа с пространствами имен XML

<?php

$xw = xmlwriter_open_memory();
xmlwriter_set_indent($xw, 1);
$res = xmlwriter_set_indent_string($xw, ' ');

xmlwriter_start_document($xw, '1.0', 'UTF-8');
// Первый элемент
xmlwriter_start_element_ns($xw,'prefix', 'books', 'uri');
xmlwriter_start_attribute($xw, 'isbn');

xmlwriter_start_attribute_ns($xw, 'prefix', 'isbn', 'uri');
xmlwriter_end_attribute($xw);

xmlwriter_end_attribute($xw);

xmlwriter_text($xw, 'book1');
xmlwriter_end_element($xw);

xmlwriter_end_document($xw);

echo xmlwriter_output_memory($xw);

Результат выполнения данного примера:

<?xml version="1.0" encoding="UTF-8"?>
<prefix:books isbn="" prefix:isbn="" xmlns:prefix="uri">book1</prefix:books>


Работа с объектно-ориентированным API

В этом примере демонстрируется работа с объектно-ориентированным API XMLWriter.

Пример #1 Работа с объектно-ориентированным API

<?php

$xw = new XMLWriter();
$xw->openMemory();
$xw->startDocument("1.0");
$xw->startElement("book");
$xw->text("example");
$xw->endElement();
$xw->endDocument();
echo $xw->outputMemory();

Результат выполнения данного примера:

<?xml version="1.0"?>
<book>example</book>


XMLWriter

Содержание

  • XMLWriter::endAttribute — Завершить атрибут
  • XMLWriter::endCdata — Завершить текущую секцию CDATA
  • XMLWriter::endComment — Завершить комментарий
  • XMLWriter::endDocument — Завершить текущий документ
  • XMLWriter::endDtdAttlist — Завершить текущий список атрибутов DTD
  • XMLWriter::endDtdElement — Завершить текущий элемент DTD
  • XMLWriter::endDtdEntity — Завершить текущую запись DTD
  • XMLWriter::endDtd — Завершить текущий DTD
  • XMLWriter::endElement — Завершить текущий элемент
  • XMLWriter::endPi — Завершить текущую инструкцию обработки (PI)
  • XMLWriter::flush — Сбросить текущий буфер
  • XMLWriter::fullEndElement — Завершить текущий элемент
  • XMLWriter::openMemory — Создать новый объект XMLWriter, используя память для строкового вывода
  • XMLWriter::openUri — Создать новый объект XMLWriter, используя исходный URI для вывода
  • XMLWriter::outputMemory — Возвращает текущий буфер
  • XMLWriter::setIndentString — Установить строку, используемую для отступов
  • XMLWriter::setIndent — Включить или отключить отступы
  • XMLWriter::startAttributeNs — Создать стартовый атрибут пространства имен
  • XMLWriter::startAttribute — Создать начальный атрибут
  • XMLWriter::startCdata — Создать начальный тег CDATA
  • XMLWriter::startComment — Создает стартовый комментарий
  • XMLWriter::startDocument — Создать тег документа
  • XMLWriter::startDtdAttlist — Создает стартовый список атрибутов DTD
  • XMLWriter::startDtdElement — Создать стартовый элемент DTD
  • XMLWriter::startDtdEntity — Создать стартовую запись DTD
  • XMLWriter::startDtd — Создать стартовый DTD тег
  • XMLWriter::startElementNs — Создать стартовый тег элемента пространства имен
  • XMLWriter::startElement — Создать стартовый тег элемента
  • XMLWriter::startPi — Создать стартовый тег PI
  • XMLWriter::text — Записать текст
  • XMLWriter::writeAttributeNs — Записать полный атрибут пространства имен
  • XMLWriter::writeAttribute — Записать полный атрибут
  • XMLWriter::writeCdata — Записать полный тег CDATA
  • XMLWriter::writeComment — Записать полный тег комментария
  • XMLWriter::writeDtdAttlist — Записать полный тег DTD AttList
  • XMLWriter::writeDtdElement — Записать полный тег элемента DTD
  • XMLWriter::writeDtdEntity — Записать полный тег DTD записи
  • XMLWriter::writeDtd — Записать полный тег DTD
  • XMLWriter::writeElementNs — Записать полное пространство имен тега элемента
  • XMLWriter::writeElement — Записать полный тег элемента
  • XMLWriter::writePi — Записать инструкцию обработки (PI)
  • XMLWriter::writeRaw — Записать необработанный XML-текст


Завершить атрибут

  • « XMLWriter
  • XMLWriter::endCdata »
  • PHP Manual
  • XMLWriter
  • Завершить атрибут

XMLWriter::endAttribute

xmlwriter_end_attribute

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endAttribute -- xmlwriter_end_attribute — Завершить атрибут

Описание

Объектно-ориентированный стиль

XMLWriter::endAttribute ( void ) : bool

Процедурный стиль

xmlwriter_end_attribute ( resource $xmlwriter ) : bool

Завершает текущий атрибут.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startAttribute() - Создать начальный атрибут
  • XMLWriter::startAttributeNs() - Создать стартовый атрибут пространства имен
  • XMLWriter::writeAttribute() - Записать полный атрибут
  • XMLWriter::writeAttributeNs() - Записать полный атрибут пространства имен


Завершить текущую секцию CDATA

  • « XMLWriter::endAttribute
  • XMLWriter::endComment »
  • PHP Manual
  • XMLWriter
  • Завершить текущую секцию CDATA

XMLWriter::endCdata

xmlwriter_end_cdata

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endCdata -- xmlwriter_end_cdata — Завершить текущую секцию CDATA

Описание

Объектно-ориентированный стиль

XMLWriter::endCdata ( void ) : bool

Процедурный стиль

xmlwriter_end_cdata ( resource $xmlwriter ) : bool

Завершает текущую секцию CDATA.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startCdata() - Создать начальный тег CDATA
  • XMLWriter::writeCdata() - Записать полный тег CDATA


Завершить комментарий

  • « XMLWriter::endCdata
  • XMLWriter::endDocument »
  • PHP Manual
  • XMLWriter
  • Завершить комментарий

XMLWriter::endComment

xmlwriter_end_comment

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 1.0.0)

XMLWriter::endComment -- xmlwriter_end_comment — Завершить комментарий

Описание

Объектно-ориентированный стиль

XMLWriter::endComment ( void ) : bool

Процедурный стиль

xmlwriter_end_comment ( resource $xmlwriter ) : bool

Завершает текущий комментарий.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startComment() - Создает стартовый комментарий
  • XMLWriter::writeComment() - Записать полный тег комментария


Завершить текущий документ

  • « XMLWriter::endComment
  • XMLWriter::endDtdAttlist »
  • PHP Manual
  • XMLWriter
  • Завершить текущий документ

XMLWriter::endDocument

xmlwriter_end_document

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endDocument -- xmlwriter_end_document — Завершить текущий документ

Описание

Объектно-ориентированный стиль

XMLWriter::endDocument ( void ) : bool

Процедурный стиль

xmlwriter_end_document ( resource $xmlwriter ) : bool

Завершает текущий документ.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDocument() - Создать тег документа


Завершить текущий список атрибутов DTD

  • « XMLWriter::endDocument
  • XMLWriter::endDtdElement »
  • PHP Manual
  • XMLWriter
  • Завершить текущий список атрибутов DTD

XMLWriter::endDtdAttlist

xmlwriter_end_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdAttlist -- xmlwriter_end_dtd_attlist — Завершить текущий список атрибутов DTD

Описание

Объектно-ориентированный стиль

XMLWriter::endDtdAttlist ( void ) : bool

Процедурный стиль

xmlwriter_end_dtd_attlist ( resource $xmlwriter ) : bool

Завершает текущий список атрибутов DTD для документа.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDtdAttlist() - Создает стартовый список атрибутов DTD
  • XMLWriter::writeDtdAttlist() - Записать полный тег DTD AttList


Завершить текущий элемент DTD

  • « XMLWriter::endDtdAttlist
  • XMLWriter::endDtdEntity »
  • PHP Manual
  • XMLWriter
  • Завершить текущий элемент DTD

XMLWriter::endDtdElement

xmlwriter_end_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdElement -- xmlwriter_end_dtd_element — Завершить текущий элемент DTD

Описание

Объектно-ориентированный стиль

XMLWriter::endDtdElement ( void ) : bool

Процедурный стиль

xmlwriter_end_dtd_element ( resource $xmlwriter ) : bool

Завершает текущий элемент DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDtdElement() - Создать стартовый элемент DTD
  • XMLWriter::writeDtdElement() - Записать полный тег элемента DTD


Завершить текущую запись DTD

  • « XMLWriter::endDtdElement
  • XMLWriter::endDtd »
  • PHP Manual
  • XMLWriter
  • Завершить текущую запись DTD

XMLWriter::endDtdEntity

xmlwriter_end_dtd_entity

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdEntity -- xmlwriter_end_dtd_entity — Завершить текущую запись DTD

Описание

Объектно-ориентированный стиль

XMLWriter::endDtdEntity ( void ) : bool

Процедурный стиль

xmlwriter_end_dtd_entity ( resource $xmlwriter ) : bool

Завершает текущую запись DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDtdEntity() - Создать стартовую запись DTD
  • XMLWriter::writeDtdEntity() - Записать полный тег DTD записи


Завершить текущий DTD

  • « XMLWriter::endDtdEntity
  • XMLWriter::endElement »
  • PHP Manual
  • XMLWriter
  • Завершить текущий DTD

XMLWriter::endDtd

xmlwriter_end_dtd

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtd -- xmlwriter_end_dtd — Завершить текущий DTD

Описание

Объектно-ориентированный стиль

XMLWriter::endDtd ( void ) : bool

Процедурный стиль

xmlwriter_end_dtd ( resource $xmlwriter ) : bool

Завершает секцию определения типа документа (DTD).

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDtd() - Создать стартовый DTD тег
  • XMLWriter::writeDtd() - Записать полный тег DTD


Завершить текущий элемент

  • « XMLWriter::endDtd
  • XMLWriter::endPi »
  • PHP Manual
  • XMLWriter
  • Завершить текущий элемент

XMLWriter::endElement

xmlwriter_end_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endElement -- xmlwriter_end_element — Завершить текущий элемент

Описание

Объектно-ориентированный стиль

XMLWriter::endElement ( void ) : bool

Процедурный стиль

xmlwriter_end_element ( resource $xmlwriter ) : bool

Завершает текущий элемент.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startElement() - Создать стартовый тег элемента
  • XMLWriter::writeElement() - Записать полный тег элемента


Завершить текущую инструкцию обработки (PI)

  • « XMLWriter::endElement
  • XMLWriter::flush »
  • PHP Manual
  • XMLWriter
  • Завершить текущую инструкцию обработки (PI)

XMLWriter::endPi

xmlwriter_end_pi

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endPi -- xmlwriter_end_pi — Завершить текущую инструкцию обработки (PI)

Описание

Объектно-ориентированный стиль

XMLWriter::endPi ( void ) : bool

Процедурный стиль

xmlwriter_end_pi ( resource $xmlwriter ) : bool

Завершает текущую инструкцию обработки.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startPi() - Создать стартовый тег PI
  • XMLWriter::writePi() - Записать инструкцию обработки (PI)


Сбросить текущий буфер

  • « XMLWriter::endPi
  • XMLWriter::fullEndElement »
  • PHP Manual
  • XMLWriter
  • Сбросить текущий буфер

XMLWriter::flush

xmlwriter_flush

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 1.0.0)

XMLWriter::flush -- xmlwriter_flush — Сбросить текущий буфер

Описание

Объектно-ориентированный стиль

XMLWriter::flush ([ bool $empty = TRUE ] ) : mixed

Процедурный стиль

xmlwriter_flush ( resource $xmlwriter [, bool $empty = TRUE ] ) : mixed

Сбрасывает текущий буфер.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

empty

Определяет, освободить буфер или нет. По умолчанию TRUE.

Возвращаемые значения

Если XML создается в памяти, то функция вернет сгенерированный буфер XML, иначе, при использовании URI, эта функция запишет буфер и вернет количество записанных байт.


Завершить текущий элемент

  • « XMLWriter::flush
  • XMLWriter::openMemory »
  • PHP Manual
  • XMLWriter
  • Завершить текущий элемент

XMLWriter::fullEndElement

xmlwriter_full_end_element

(PHP 5 >= 5.2.0, PHP 7, PECL xmlwriter >= 2.0.4)

XMLWriter::fullEndElement -- xmlwriter_full_end_element — Завершить текущий элемент

Описание

Объектно-ориентированный стиль

XMLWriter::fullEndElement ( void ) : bool

Процедурный стиль

xmlwriter_full_end_element ( resource $xmlwriter ) : bool

Завершает текущий XML элемент. Записывает закрывающий тег, даже если элемент пустой.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endElement() - Завершить текущий элемент


Создать новый объект XMLWriter, используя память для строкового вывода

  • « XMLWriter::fullEndElement
  • XMLWriter::openUri »
  • PHP Manual
  • XMLWriter
  • Создать новый объект XMLWriter, используя память для строкового вывода

XMLWriter::openMemory

xmlwriter_open_memory

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::openMemory -- xmlwriter_open_memory — Создать новый объект XMLWriter, используя память для строкового вывода

Описание

Объектно-ориентированный стиль

XMLWriter::openMemory ( void ) : bool

Процедурный стиль

xmlwriter_open_memory ( void ) : resource

Создает новый объект XMLWriter, используя память для строкового вывода.

Список параметров

Возвращаемые значения

Объектно-ориентированный стиль: Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Процедурный стиль: Возвращает новый xmlwriter resource для дальнейшего использования функциями xmlwriter в случае успешного выполнения, либо FALSE в случае ошибки.

Смотрите также

  • XMLWriter::openUri() - Создать новый объект XMLWriter, используя исходный URI для вывода


Создать новый объект XMLWriter, используя исходный URI для вывода

  • « XMLWriter::openMemory
  • XMLWriter::outputMemory »
  • PHP Manual
  • XMLWriter
  • Создать новый объект XMLWriter, используя исходный URI для вывода

XMLWriter::openUri

xmlwriter_open_uri

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::openUri -- xmlwriter_open_uri — Создать новый объект XMLWriter, используя исходный URI для вывода

Описание

Объектно-ориентированный стиль

XMLWriter::openUri ( string $uri ) : bool

Процедурный стиль

xmlwriter_open_uri ( string $uri ) : resource

Создаёт новый объект XMLWriter, используя uri для вывода.

Список параметров

uri

URI ресурса для вывода.

Возвращаемые значения

Объектно-ориентированный стиль: Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Процедурный стиль: Возвращает новый xmlwriter resource для дальнейшего использования функциями xmlwriter в случае успешного выполнения, либо FALSE в случае ошибки.

Смотрите также

  • XMLWriter::openMemory() - Создать новый объект XMLWriter, используя память для строкового вывода


Возвращает текущий буфер

  • « XMLWriter::openUri
  • XMLWriter::setIndentString »
  • PHP Manual
  • XMLWriter
  • Возвращает текущий буфер

XMLWriter::outputMemory

xmlwriter_output_memory

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::outputMemory -- xmlwriter_output_memory — Возвращает текущий буфер

Описание

Объектно-ориентированный стиль

XMLWriter::outputMemory ([ bool $flush = TRUE ] ) : string

Процедурный стиль

xmlwriter_output_memory ( resource $xmlwriter [, bool $flush = TRUE ] ) : string

Возвращает текущий буфер.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

flush

Определяет, освободить буфер или нет. По умолчанию TRUE.

Возвращаемые значения

Возвращает текущий буфер в виде строки.

Смотрите также

  • XMLWriter::flush() - Сбросить текущий буфер


Установить строку, используемую для отступов

  • « XMLWriter::outputMemory
  • XMLWriter::setIndent »
  • PHP Manual
  • XMLWriter
  • Установить строку, используемую для отступов

XMLWriter::setIndentString

xmlwriter_set_indent_string

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndentString -- xmlwriter_set_indent_string — Установить строку, используемую для отступов

Описание

Объектно-ориентированный стиль

XMLWriter::setIndentString ( string $indentString ) : bool

Процедурный стиль

xmlwriter_set_indent_string ( resource $xmlwriter , string $indentString ) : bool

Устанавливает строку, которая будет использоваться для отступа каждого элемента/атрибута в результирующем XML.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

indentString

Отступ строки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::setIndent() - Включить или отключить отступы


Включить или отключить отступы

  • « XMLWriter::setIndentString
  • XMLWriter::startAttributeNs »
  • PHP Manual
  • XMLWriter
  • Включить или отключить отступы

XMLWriter::setIndent

xmlwriter_set_indent

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndent -- xmlwriter_set_indent — Включить или отключить отступы

Описание

Объектно-ориентированный стиль

XMLWriter::setIndent ( bool $indent ) : bool

Процедурный стиль

xmlwriter_set_indent ( resource $xmlwriter , bool $indent ) : bool

Включает или отключает отступы.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

indent

Определяет, включено ли добавление отступа.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::setIndentString() - Установить строку, используемую для отступов


Создать стартовый атрибут пространства имен

  • « XMLWriter::setIndent
  • XMLWriter::startAttribute »
  • PHP Manual
  • XMLWriter
  • Создать стартовый атрибут пространства имен

XMLWriter::startAttributeNs

xmlwriter_start_attribute_ns

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttributeNs -- xmlwriter_start_attribute_ns — Создать стартовый атрибут пространства имен

Описание

Объектно-ориентированный стиль

XMLWriter::startAttributeNs ( string $prefix , string $name , string $uri ) : bool

Процедурный стиль

xmlwriter_start_attribute_ns ( resource $xmlwriter , string $prefix , string $name , string $uri ) : bool

Начинает атрибут пространства имен.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

prefix

Префикс пространства имен.

name

Имя атрибута.

uri

URI пространства имен.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startAttribute() - Создать начальный атрибут
  • XMLWriter::endAttribute() - Завершить атрибут
  • XMLWriter::writeAttribute() - Записать полный атрибут
  • XMLWriter::writeAttributeNs() - Записать полный атрибут пространства имен


Создать начальный атрибут

  • « XMLWriter::startAttributeNs
  • XMLWriter::startCdata »
  • PHP Manual
  • XMLWriter
  • Создать начальный атрибут

XMLWriter::startAttribute

xmlwriter_start_attribute

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttribute -- xmlwriter_start_attribute — Создать начальный атрибут

Описание

Объектно-ориентированный стиль

XMLWriter::startAttribute ( string $name ) : bool

Процедурный стиль

xmlwriter_start_attribute ( resource $xmlwriter , string $name ) : bool

Начинает атрибут.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя атрибута.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startAttributeNs() - Создать стартовый атрибут пространства имен
  • XMLWriter::endAttribute() - Завершить атрибут
  • XMLWriter::writeAttribute() - Записать полный атрибут
  • XMLWriter::writeAttributeNs() - Записать полный атрибут пространства имен


Создать начальный тег CDATA

  • « XMLWriter::startAttribute
  • XMLWriter::startComment »
  • PHP Manual
  • XMLWriter
  • Создать начальный тег CDATA

XMLWriter::startCdata

xmlwriter_start_cdata

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startCdata -- xmlwriter_start_cdata — Создать начальный тег CDATA

Описание

Объектно-ориентированный стиль

XMLWriter::startCdata ( void ) : bool

Процедурный стиль

xmlwriter_start_cdata ( resource $xmlwriter ) : bool

Начинает CDATA.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endCdata() - Завершить текущую секцию CDATA
  • XMLWriter::writeCdata() - Записать полный тег CDATA


Создает стартовый комментарий

  • « XMLWriter::startCdata
  • XMLWriter::startDocument »
  • PHP Manual
  • XMLWriter
  • Создает стартовый комментарий

XMLWriter::startComment

xmlwriter_start_comment

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 1.0.0)

XMLWriter::startComment -- xmlwriter_start_comment — Создает стартовый комментарий

Описание

Объектно-ориентированный стиль

XMLWriter::startComment ( void ) : bool

Процедурный стиль

xmlwriter_start_comment ( resource $xmlwriter ) : bool

Начинает комментарий.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endComment() - Завершить комментарий
  • XMLWriter::writeComment() - Записать полный тег комментария


Создать тег документа

  • « XMLWriter::startComment
  • XMLWriter::startDtdAttlist »
  • PHP Manual
  • XMLWriter
  • Создать тег документа

XMLWriter::startDocument

xmlwriter_start_document

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startDocument -- xmlwriter_start_document — Создать тег документа

Описание

Объектно-ориентированный стиль

XMLWriter::startDocument ([ string $version = 1.0 [, string $encoding = NULL [, string $standalone ]]] ) : bool

Процедурный стиль

xmlwriter_start_document ( resource $xmlwriter [, string $version = 1.0 [, string $encoding = NULL [, string $standalone ]]] ) : bool

Начинает документ.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

version

Номер версии документа как часть объявления XML.

encoding

Кодировка документа как часть объявления XML.

standalone

yes или no.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endDocument() - Завершить текущий документ


Создает стартовый список атрибутов DTD

  • « XMLWriter::startDocument
  • XMLWriter::startDtdElement »
  • PHP Manual
  • XMLWriter
  • Создает стартовый список атрибутов DTD

XMLWriter::startDtdAttlist

xmlwriter_start_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdAttlist -- xmlwriter_start_dtd_attlist — Создает стартовый список атрибутов DTD

Описание

Объектно-ориентированный стиль

XMLWriter::startDtdAttlist ( string $name ) : bool

Процедурный стиль

xmlwriter_start_dtd_attlist ( resource $xmlwriter , string $name ) : bool

Начинает список атрибутов DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Название списка атрибутов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endDtdAttlist() - Завершить текущий список атрибутов DTD
  • XMLWriter::writeDtdAttlist() - Записать полный тег DTD AttList


Создать стартовый элемент DTD

  • « XMLWriter::startDtdAttlist
  • XMLWriter::startDtdEntity »
  • PHP Manual
  • XMLWriter
  • Создать стартовый элемент DTD

XMLWriter::startDtdElement

xmlwriter_start_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdElement -- xmlwriter_start_dtd_element — Создать стартовый элемент DTD

Описание

Объектно-ориентированный стиль

XMLWriter::startDtdElement ( string $qualifiedName ) : bool

Процедурный стиль

xmlwriter_start_dtd_element ( resource $xmlwriter , string $qualifiedName ) : bool

Начинает элемент DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

qualifiedName

Полностью определенное имя типа документа для создания.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endDtdElement() - Завершить текущий элемент DTD
  • XMLWriter::writeDtdElement() - Записать полный тег элемента DTD


Создать стартовую запись DTD

  • « XMLWriter::startDtdElement
  • XMLWriter::startDtd »
  • PHP Manual
  • XMLWriter
  • Создать стартовую запись DTD

XMLWriter::startDtdEntity

xmlwriter_start_dtd_entity

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdEntity -- xmlwriter_start_dtd_entity — Создать стартовую запись DTD

Описание

Объектно-ориентированный стиль

XMLWriter::startDtdEntity ( string $name , bool $isparam ) : bool

Процедурный стиль

xmlwriter_start_dtd_entity ( resource $xmlwriter , string $name , bool $isparam ) : bool

Начинает запись DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя записи.

isparam

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endDtdEntity() - Завершить текущую запись DTD
  • XMLWriter::writeDtdEntity() - Записать полный тег DTD записи


Создать стартовый DTD тег

  • « XMLWriter::startDtdEntity
  • XMLWriter::startElementNs »
  • PHP Manual
  • XMLWriter
  • Создать стартовый DTD тег

XMLWriter::startDtd

xmlwriter_start_dtd

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtd -- xmlwriter_start_dtd — Создать стартовый DTD тег

Описание

Объектно-ориентированный стиль

XMLWriter::startDtd ( string $qualifiedName [, string $publicId [, string $systemId ]] ) : bool

Процедурный стиль

xmlwriter_start_dtd ( resource $xmlwriter , string $qualifiedName [, string $publicId [, string $systemId ]] ) : bool

Начинает DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

qualifiedName

Полностью определенное имя типа документа для создания.

publicId

Идентификатор внешнего публичного подмножества.

systemId

Идентификатор внешнего системного подмножества.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endDtd() - Завершить текущий DTD
  • XMLWriter::writeDtd() - Записать полный тег DTD


Создать стартовый тег элемента пространства имен

  • « XMLWriter::startDtd
  • XMLWriter::startElement »
  • PHP Manual
  • XMLWriter
  • Создать стартовый тег элемента пространства имен

XMLWriter::startElementNs

xmlwriter_start_element_ns

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startElementNs -- xmlwriter_start_element_ns — Создать стартовый тег элемента пространства имен

Описание

Объектно-ориентированный стиль

XMLWriter::startElementNs ( string $prefix , string $name , string $uri ) : bool

Процедурный стиль

xmlwriter_start_element_ns ( resource $xmlwriter , string $prefix , string $name , string $uri ) : bool

Начинает элемент пространства имен.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

prefix

Префикс пространства имен.

name

Имя элемента.

uri

URI пространства имен.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endElement() - Завершить текущий элемент
  • XMLWriter::writeElementNs() - Записать полное пространство имен тега элемента


Создать стартовый тег элемента

  • « XMLWriter::startElementNs
  • XMLWriter::startPi »
  • PHP Manual
  • XMLWriter
  • Создать стартовый тег элемента

XMLWriter::startElement

xmlwriter_start_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startElement -- xmlwriter_start_element — Создать стартовый тег элемента

Описание

Объектно-ориентированный стиль

XMLWriter::startElement ( string $name ) : bool

Процедурный стиль

xmlwriter_start_element ( resource $xmlwriter , string $name ) : bool

Начинает элемент.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя элемента.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endElement() - Завершить текущий элемент
  • XMLWriter::writeElement() - Записать полный тег элемента


Создать стартовый тег PI

  • « XMLWriter::startElement
  • XMLWriter::text »
  • PHP Manual
  • XMLWriter
  • Создать стартовый тег PI

XMLWriter::startPi

xmlwriter_start_pi

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startPi -- xmlwriter_start_pi — Создать стартовый тег PI

Описание

Объектно-ориентированный стиль

XMLWriter::startPi ( string $target ) : bool

Процедурный стиль

xmlwriter_start_pi ( resource $xmlwriter , string $target ) : bool

Начинает тег инструкции обработки (PI).

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

target

Цель инструкции обработки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endPi() - Завершить текущую инструкцию обработки (PI)
  • XMLWriter::writePi() - Записать инструкцию обработки (PI)


Записать текст

  • « XMLWriter::startPi
  • XMLWriter::writeAttributeNs »
  • PHP Manual
  • XMLWriter
  • Записать текст

XMLWriter::text

xmlwriter_text

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::text -- xmlwriter_text — Записать текст

Описание

Объектно-ориентированный стиль

XMLWriter::text ( string $content ) : bool

Процедурный стиль

xmlwriter_text ( resource $xmlwriter , string $content ) : bool

Записывает текст.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

content

Содержимое текста.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Записать полный атрибут пространства имен

  • « XMLWriter::text
  • XMLWriter::writeAttribute »
  • PHP Manual
  • XMLWriter
  • Записать полный атрибут пространства имен

XMLWriter::writeAttributeNs

xmlwriter_write_attribute_ns

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttributeNs -- xmlwriter_write_attribute_ns — Записать полный атрибут пространства имен

Описание

Объектно-ориентированный стиль

XMLWriter::writeAttributeNs ( string $prefix , string $name , string $uri , string $content ) : bool

Процедурный стиль

xmlwriter_write_attribute_ns ( resource $xmlwriter , string $prefix , string $name , string $uri , string $content ) : bool

Записывает полный атрибут пространства имен.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

prefix

Префикс пространства имен.

name

Имя атрибута.

uri

URI пространства имен.

content

Значение атрибута.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::writeAttribute() - Записать полный атрибут
  • XMLWriter::startAttribute() - Создать начальный атрибут
  • XMLWriter::startAttributeNs() - Создать стартовый атрибут пространства имен
  • XMLWriter::endAttribute() - Завершить атрибут


Записать полный атрибут

  • « XMLWriter::writeAttributeNs
  • XMLWriter::writeCdata »
  • PHP Manual
  • XMLWriter
  • Записать полный атрибут

XMLWriter::writeAttribute

xmlwriter_write_attribute

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttribute -- xmlwriter_write_attribute — Записать полный атрибут

Описание

Объектно-ориентированный стиль

XMLWriter::writeAttribute ( string $name , string $value ) : bool

Процедурный стиль

xmlwriter_write_attribute ( resource $xmlwriter , string $name , string $value ) : bool

Записывает полный атрибут.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя атрибута.

value

Значение атрибута.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::writeAttributeNs() - Записать полный атрибут пространства имен
  • XMLWriter::startAttribute() - Создать начальный атрибут
  • XMLWriter::startAttributeNs() - Создать стартовый атрибут пространства имен
  • XMLWriter::endAttribute() - Завершить атрибут


Записать полный тег CDATA

  • « XMLWriter::writeAttribute
  • XMLWriter::writeComment »
  • PHP Manual
  • XMLWriter
  • Записать полный тег CDATA

XMLWriter::writeCdata

xmlwriter_write_cdata

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeCdata -- xmlwriter_write_cdata — Записать полный тег CDATA

Описание

Объектно-ориентированный стиль

XMLWriter::writeCdata ( string $content ) : bool

Процедурный стиль

xmlwriter_write_cdata ( resource $xmlwriter , string $content ) : bool

Записывает полный тег CDATA.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

content

Содержимое CDATA.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startCdata() - Создать начальный тег CDATA
  • XMLWriter::endCdata() - Завершить текущую секцию CDATA


Записать полный тег комментария

  • « XMLWriter::writeCdata
  • XMLWriter::writeDtdAttlist »
  • PHP Manual
  • XMLWriter
  • Записать полный тег комментария

XMLWriter::writeComment

xmlwriter_write_comment

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeComment -- xmlwriter_write_comment — Записать полный тег комментария

Описание

Объектно-ориентированный стиль

XMLWriter::writeComment ( string $content ) : bool

Процедурный стиль

xmlwriter_write_comment ( resource $xmlwriter , string $content ) : bool

Записывает полный комментарий.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

content

Содержимое комментария.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startComment() - Создает стартовый комментарий
  • XMLWriter::endComment() - Завершить комментарий


Записать полный тег DTD AttList

  • « XMLWriter::writeComment
  • XMLWriter::writeDtdElement »
  • PHP Manual
  • XMLWriter
  • Записать полный тег DTD AttList

XMLWriter::writeDtdAttlist

xmlwriter_write_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdAttlist -- xmlwriter_write_dtd_attlist — Записать полный тег DTD AttList

Описание

Объектно-ориентированный стиль

XMLWriter::writeDtdAttlist ( string $name , string $content ) : bool

Процедурный стиль

xmlwriter_write_dtd_attlist ( resource $xmlwriter , string $name , string $content ) : bool

Записывает список атрибутов DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя списка атрибутов DTD.

content

Содержимое списка атрибутов DTD.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDtdAttlist() - Создает стартовый список атрибутов DTD
  • XMLWriter::endDtdAttlist() - Завершить текущий список атрибутов DTD


Записать полный тег элемента DTD

  • « XMLWriter::writeDtdAttlist
  • XMLWriter::writeDtdEntity »
  • PHP Manual
  • XMLWriter
  • Записать полный тег элемента DTD

XMLWriter::writeDtdElement

xmlwriter_write_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdElement -- xmlwriter_write_dtd_element — Записать полный тег элемента DTD

Описание

Объектно-ориентированный стиль

XMLWriter::writeDtdElement ( string $name , string $content ) : bool

Процедурный стиль

xmlwriter_write_dtd_element ( resource $xmlwriter , string $name , string $content ) : bool

Записывает полный тег элемента DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя элемента DTD.

content

Содержимое элемента.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDtdElement() - Создать стартовый элемент DTD
  • XMLWriter::endDtdElement() - Завершить текущий элемент DTD


Записать полный тег DTD записи

  • « XMLWriter::writeDtdElement
  • XMLWriter::writeDtd »
  • PHP Manual
  • XMLWriter
  • Записать полный тег DTD записи

XMLWriter::writeDtdEntity

xmlwriter_write_dtd_entity

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdEntity -- xmlwriter_write_dtd_entity — Записать полный тег DTD записи

Описание

Объектно-ориентированный стиль

XMLWriter::writeDtdEntity ( string $name , string $content , bool $pe , string $pubid , string $sysid , string $ndataid ) : bool

Процедурный стиль

xmlwriter_write_dtd_entity ( resource $xmlwriter , string $name , string $content , bool $pe , string $pubid , string $sysid , string $ndataid ) : bool

Записывает полную DTD запись.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя записи.

content

Содержимое записи.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDtdEntity() - Создать стартовую запись DTD
  • XMLWriter::endDtdEntity() - Завершить текущую запись DTD


Записать полный тег DTD

  • « XMLWriter::writeDtdEntity
  • XMLWriter::writeElementNs »
  • PHP Manual
  • XMLWriter
  • Записать полный тег DTD

XMLWriter::writeDtd

xmlwriter_write_dtd

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtd -- xmlwriter_write_dtd — Записать полный тег DTD

Описание

Объектно-ориентированный стиль

XMLWriter::writeDtd ( string $name [, string $publicId [, string $systemId [, string $subset ]]] ) : bool

Процедурный стиль

xmlwriter_write_dtd ( resource $xmlwriter , string $name [, string $publicId [, string $systemId [, string $subset ]]] ) : bool

Записывает полный тег DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя DTD.

publicId

Идентификатор внешнего публичного подмножества.

systemId

Идентификатор внешнего системного подмножества.

subset

Содержимое DTD.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDtd() - Создать стартовый DTD тег
  • XMLWriter::endDtd() - Завершить текущий DTD


Записать полное пространство имен тега элемента

  • « XMLWriter::writeDtd
  • XMLWriter::writeElement »
  • PHP Manual
  • XMLWriter
  • Записать полное пространство имен тега элемента

XMLWriter::writeElementNs

xmlwriter_write_element_ns

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElementNs -- xmlwriter_write_element_ns — Записать полное пространство имен тега элемента

Описание

Объектно-ориентированный стиль

XMLWriter::writeElementNs ( string $prefix , string $name , string $uri [, string $content ] ) : bool

Процедурный стиль

xmlwriter_write_element_ns ( resource $xmlwriter , string $prefix , string $name , string $uri [, string $content ] ) : bool

Записывает полное пространство имен тега элемента.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

prefix

Префикс пространства имен.

name

Имя элемента.

uri

URI пространства имен.

content

Содержимое элемента.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.2.3 | Параметр content стал опциональным.

Смотрите также

  • XMLWriter::startElementNs() - Создать стартовый тег элемента пространства имен
  • XMLWriter::endElement() - Завершить текущий элемент
  • XMLWriter::writeElement() - Записать полный тег элемента


Записать полный тег элемента

  • « XMLWriter::writeElementNs
  • XMLWriter::writePi »
  • PHP Manual
  • XMLWriter
  • Записать полный тег элемента

XMLWriter::writeElement

xmlwriter_write_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElement -- xmlwriter_write_element — Записать полный тег элемента

Описание

Объектно-ориентированный стиль

XMLWriter::writeElement ( string $name [, string $content ] ) : bool

Процедурный стиль

xmlwriter_write_element ( resource $xmlwriter , string $name [, string $content ] ) : bool

Записывает полный тег элемента.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя элемента.

content

Содержимое элемента.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.2.3 | Параметр content стал необязательным.

Смотрите также

  • XMLWriter::startElement() - Создать стартовый тег элемента
  • XMLWriter::endElement() - Завершить текущий элемент
  • XMLWriter::writeElementNs() - Записать полное пространство имен тега элемента


Записать инструкцию обработки (PI)

  • « XMLWriter::writeElement
  • XMLWriter::writeRaw »
  • PHP Manual
  • XMLWriter
  • Записать инструкцию обработки (PI)

XMLWriter::writePi

xmlwriter_write_pi

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writePi -- xmlwriter_write_pi — Записать инструкцию обработки (PI)

Описание

Объектно-ориентированный стиль

XMLWriter::writePi ( string $target , string $content ) : bool

Процедурный стиль

xmlwriter_write_pi ( resource $xmlwriter , string $target , string $content ) : bool

Записывает инструкцию обработки.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

target

Цель инструкции обработки.

content

Содержимое инструкции обработки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startPi() - Создать стартовый тег PI
  • XMLWriter::endPi() - Завершить текущую инструкцию обработки (PI)


Записать необработанный XML-текст

  • « XMLWriter::writePi
  • XSL »
  • PHP Manual
  • XMLWriter
  • Записать необработанный XML-текст

XMLWriter::writeRaw

xmlwriter_write_raw

(PHP 5 >= 5.2.0, PHP 7, PECL xmlwriter >= 2.0.4)

XMLWriter::writeRaw -- xmlwriter_write_raw — Записать необработанный XML-текст

Описание

Объектно-ориентированный стиль

XMLWriter::writeRaw ( string $content ) : bool

Процедурный стиль

xmlwriter_write_raw ( resource $xmlwriter , string $content ) : bool

Записывает необработанный XML-текст.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

content

Текстовая строка для записи.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::text() - Записать текст


XSL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Файлы collection.xml и collection.xsl для примеров
    • Обработка ошибок с помощью функций обработки ошибок libxml
  • XSLTProcessor — Класс XSLTProcessor
    • XSLTProcessor::__construct — Создаёт новый экземпляр класса XSLTProcessor
    • XSLTProcessor::getParameter — Возвращает значение параметра
    • XSLTProcessor::getSecurityPrefs — Получить настройки безопасности
    • XSLTProcessor::hasExsltSupport — Определяет имеет ли PHP поддержку EXSLT
    • XSLTProcessor::importStylesheet — Импортирует таблицу стилей
    • XSLTProcessor::registerPHPFunctions — Включает возможность использовать PHP функции в качестве функций XSLT
    • XSLTProcessor::removeParameter — Удаляет параметр
    • XSLTProcessor::setParameter — Устанавливает значение параметра
    • XSLTProcessor::setProfiling — Устанавливает файл для профилирования
    • XSLTProcessor::setSecurityPrefs — Установить настройки безопасности
    • XSLTProcessor::transformToDoc — Преобразует в DOMDocument
    • XSLTProcessor::transformToUri — Преобразует в URI
    • XSLTProcessor::transformToXml — Преобразует в XML


Введение

XSL расширение реализует XSL стандарты, поведение » XSLT трансформации при использовании » библиотеки libxslt


Требования

Для корректной работы этого расширения необходимо PHP расширение libxml. Это означает, что также необходима передача опции --enable-libxml , хотя неявно это уже сделано, так как поддержка libxml по умолчанию включена.

Это расширение использует libxslt, который может быть найден на » http://xmlsoft.org/XSLT/. Необходима версия libxslt 1.1.0, или выше.


Установка

PHP 5 содержит расширение XSL по умолчанию. Расширение может быть активировано добавлением аргумента --with-xsl[=DIR] в строку конфигурации (DIR - путь установки libxslt).


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

XSL_CLONE_AUTO (integer)
XSL_CLONE_NEVER (integer)
XSL_CLONE_ALWAYS (integer)
LIBXSLT_VERSION (integer)
версия libxslt формата 10117. Доступна с PHP 5.1.2.
LIBXSLT_DOTTED_VERSION (string)
версия libxslt формата 1.1.17. Доступна с PHP 5.1.2.
LIBEXSLT_VERSION (integer)
версия libexslt формата 813. Доступна с PHP 5.1.2.
LIBEXSLT_DOTTED_VERSION (string)
версия libexslt формата 1.1.17. Доступна с PHP 5.1.2.
XSL_SECPREF_NONE (integer)
Отключение всех ограничений безопасности.
XSL_SECPREF_READ_FILE (integer)
Запрещает чтение файлов.
XSL_SECPREF_WRITE_FILE (integer)
Запрещает запись файла.
XSL_SECPREF_CREATE_DIRECTORY (integer)
Запрещает создание каталогов.
XSL_SECPREF_READ_NETWORK (integer)
Запрещает чтение сетевых файлов.
XSL_SECPREF_WRITE_NETWORK (integer)
Запрещает запись сетевых файлов.
XSL_SECPREF_DEFAULT (integer)
Запрещает все виды доступа на запись, т.е. битовая маска XSL_SECPREF_WRITE_NETWORK | XSL_SECPREF_CREATE_DIRECTORY | XSL_SECPREF_WRITE_FILE.


Примеры

Содержание

  • Файлы collection.xml и collection.xsl для примеров
  • Обработка ошибок с помощью функций обработки ошибок libxml


Файлы collection.xml и collection.xsl для примеров

Многие примеры в этом разделе документации содержат оба файла: XML и XSL. Мы будем использовать collection.xml и collection.xsl со следующим содержанием:

Пример #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>


Обработка ошибок с помощью функций обработки ошибок libxml

libxml предоставляет ряд функций для обработки ошибок, которые могут использоваться для отлова и работы с ошибками при обработке XSLT.

Пример #1 fruits.xml

Правильный XML.

<fruits>
 <fruit>Apple</fruit>
 <fruit>Banana</fruit>
 <fruit>Cherry</fruit>
</fruits>

Пример #2 fruits.xsl

Содержит неверное "select" выражение.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="html" encoding="utf-8" indent="no"/>
 <xsl:template match="fruits">
  <ul>
   <xsl:apply-templates/>
  </ul>
 </xsl:template>
 <xsl:template match="fruit">
  <li><xsl:value-of select="THIS IS A DELIBERATE ERROR!"/></li>
 </xsl:template>
</xsl:stylesheet>

Пример #3 Сбор и вывод ошибок

Пример ниже отлавливает и отображает ошибки libxml, появляющиеся при вызове метода XSLTProcessor::importStyleSheet() со стилем содержащим ошибки.

<?php

$xmldoc = new DOMDocument();
$xsldoc = new DOMDocument();
$xsl = new XSLTProcessor();

$xmldoc->loadXML('fruits.xml');
$xsldoc->loadXML('fruits.xsl');

libxml_use_internal_errors(true);
$result = $xsl->importStyleSheet($xsldoc);
if (!$result) {
    foreach (libxml_get_errors() as $error) {
        echo "Libxml error: {$error->message}\n";
    }
}
libxml_use_internal_errors(false);

if ($result) {
    echo $xsl->transformToXML($xmldoc);
}

?>

Результатом выполнения данного примера будет что-то подобное:

Libxml error: Invalid expression

Libxml error: compilation error: file fruits.xsl line 9 element value-of
Libxml error: xsl:value-of : could not compile select expression 'THIS IS A DELIBERATE ERROR!'


Класс XSLTProcessor

(PHP 5, PHP 7)

Введение

Обзор классов

XSLTProcessor {
/* Методы */
getParameter ( string $namespaceURI , string $localName ) : string
public getSecurityPrefs ( void ) : int
hasExsltSupport ( void ) : bool
public importStylesheet ( object $stylesheet ) : bool
registerPHPFunctions ([ mixed $restrict ] ) : void
removeParameter ( string $namespaceURI , string $localName ) : bool
setParameter ( string $namespace , string $name , string $value ) : bool
setProfiling ( string $filename ) : bool
public setSecurityPrefs ( int $securityPrefs ) : int
transformToDoc ( DOMNode $doc ) : DOMDocument
transformToURI ( DOMDocument $doc , string $uri ) : int
transformToXml ( object $doc ) : string
}

Содержание

  • XSLTProcessor::__construct — Создаёт новый экземпляр класса XSLTProcessor
  • XSLTProcessor::getParameter — Возвращает значение параметра
  • XSLTProcessor::getSecurityPrefs — Получить настройки безопасности
  • XSLTProcessor::hasExsltSupport — Определяет имеет ли PHP поддержку EXSLT
  • XSLTProcessor::importStylesheet — Импортирует таблицу стилей
  • XSLTProcessor::registerPHPFunctions — Включает возможность использовать PHP функции в качестве функций XSLT
  • XSLTProcessor::removeParameter — Удаляет параметр
  • XSLTProcessor::setParameter — Устанавливает значение параметра
  • XSLTProcessor::setProfiling — Устанавливает файл для профилирования
  • XSLTProcessor::setSecurityPrefs — Установить настройки безопасности
  • XSLTProcessor::transformToDoc — Преобразует в DOMDocument
  • XSLTProcessor::transformToUri — Преобразует в URI
  • XSLTProcessor::transformToXml — Преобразует в XML


Создаёт новый экземпляр класса XSLTProcessor

  • « XSLTProcessor
  • XSLTProcessor::getParameter »
  • PHP Manual
  • XSLTProcessor
  • Создаёт новый экземпляр класса XSLTProcessor

XSLTProcessor::__construct

(PHP 5, PHP 7)

XSLTProcessor::__construct — Создаёт новый экземпляр класса XSLTProcessor

Описание

XSLTProcessor::__construct ( void )

Создаёт новый экземпляр класса XSLTProcessor.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Создаёт XSLTProcessor

<?php

$xsldoc = new DOMDocument();
$xsldoc->load($xsl_filename);

$xmldoc = new DOMDocument();
$xmldoc->load($xml_filename);

$xsl = new XSLTProcessor();
$xsl->importStyleSheet($xsldoc);
echo $xsl->transformToXML($xmldoc);

?>


Возвращает значение параметра

  • « XSLTProcessor::__construct
  • XSLTProcessor::getSecurityPrefs »
  • PHP Manual
  • XSLTProcessor
  • Возвращает значение параметра

XSLTProcessor::getParameter

(PHP 5, PHP 7)

XSLTProcessor::getParameter — Возвращает значение параметра

Описание

XSLTProcessor::getParameter ( string $namespaceURI , string $localName ) : string

Возвращает параметр, если он раньше установлен с помощью XSLTProcessor::setParameter().

Список параметров

namespaceURI

Пространство имён URI параметра XSLT.

localName

Локальное имя параметра XSLT.

Возвращаемые значения

Значение параметра (в виде строки), или FALSE, если оно не установлено.

Смотрите также

  • XSLTProcessor::setParameter() - Устанавливает значение параметра
  • XSLTProcessor::removeParameter() - Удаляет параметр


Получить настройки безопасности

  • « XSLTProcessor::getParameter
  • XSLTProcessor::hasExsltSupport »
  • PHP Manual
  • XSLTProcessor
  • Получить настройки безопасности

XSLTProcessor::getSecurityPrefs

(PHP >= 5.4.0)

XSLTProcessor::getSecurityPrefs — Получить настройки безопасности

Описание

public XSLTProcessor::getSecurityPrefs ( void ) : int

Получает настройки безопасности.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Битовая маска, состоящая из XSL_SECPREF_READ_FILE, XSL_SECPREF_WRITE_FILE, XSL_SECPREF_CREATE_DIRECTORY, XSL_SECPREF_READ_NETWORK, XSL_SECPREF_WRITE_NETWORK.


Определяет имеет ли PHP поддержку EXSLT

  • « XSLTProcessor::getSecurityPrefs
  • XSLTProcessor::importStylesheet »
  • PHP Manual
  • XSLTProcessor
  • Определяет имеет ли PHP поддержку EXSLT

XSLTProcessor::hasExsltSupport

(PHP 5 >= 5.0.4, PHP 7)

XSLTProcessor::hasExsltSupport — Определяет имеет ли PHP поддержку EXSLT

Описание

XSLTProcessor::hasExsltSupport ( void ) : bool

Этот метод определяет был ли PHP сконфигурирован с » библиотекой EXSLT.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Проверка поддержки EXSLT

<?php

$proc = new XSLTProcessor;
if (!$proc->hasExsltSupport()) {
    die('EXSLT support not available');
}

// выполнение некоторых действий EXSLT ..

?>


Импортирует таблицу стилей

  • « XSLTProcessor::hasExsltSupport
  • XSLTProcessor::registerPHPFunctions »
  • PHP Manual
  • XSLTProcessor
  • Импортирует таблицу стилей

XSLTProcessor::importStylesheet

(PHP 5, PHP 7)

XSLTProcessor::importStylesheet — Импортирует таблицу стилей

Описание

public XSLTProcessor::importStylesheet ( object $stylesheet ) : bool

Этот метод импортирует таблицу стилей в XSLTProcessor для трансформации.

Список параметров

stylesheet

Импортируемая таблица стилей в виде объекта DOMDocument или SimpleXMLElement.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.2.8 | Принимает SimpleXMLElement вновь, что было невозможно в версии PHP 5.2.6 и более поздних.


Включает возможность использовать PHP функции в качестве функций XSLT

  • « XSLTProcessor::importStylesheet
  • XSLTProcessor::removeParameter »
  • PHP Manual
  • XSLTProcessor
  • Включает возможность использовать PHP функции в качестве функций XSLT

XSLTProcessor::registerPHPFunctions

(PHP 5 >= 5.0.4, PHP 7)

XSLTProcessor::registerPHPFunctions — Включает возможность использовать PHP функции в качестве функций XSLT

Описание

XSLTProcessor::registerPHPFunctions ([ mixed $restrict ] ) : void

Этот метод позволяет использовать PHP функции как функции XSLT в XSL таблицах стилей.

Список параметров

restrict

Используйте этот параметр, если хотите вызывать из XSLT только некоторые функции из.

Этот параметр может принимать либо строковое значение - название функции, либо массив - список названий.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Простой вызов функции PHP из таблицы стилей

<?php
$xml = <<<EOB
<allusers>
 <user>
  <uid>bob</uid>
 </user>
 <user>
  <uid>joe</uid>
 </user>
</allusers>
EOB;
$xsl = <<<EOB
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     xmlns:php="http://php.net/xsl">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
 <xsl:template match="allusers">
  <html><body>
    <h2>Users</h2>
    <table>
    <xsl:for-each select="user">
      <tr><td>
        <xsl:value-of
             select="php:function('ucfirst',string(uid))"/>
      </td></tr>
    </xsl:for-each>
    </table>
  </body></html>
 </xsl:template>
</xsl:stylesheet>
EOB;
$xmldoc = DOMDocument::loadXML($xml);
$xsldoc = DOMDocument::loadXML($xsl);

$proc = new XSLTProcessor();
$proc->registerPHPFunctions();
$proc->importStyleSheet($xsldoc);
echo $proc->transformToXML($xmldoc);
?>

Список изменений

Версия | Описание
5.1.0 | Был добавлен параметр restrict.


Удаляет параметр

  • « XSLTProcessor::registerPHPFunctions
  • XSLTProcessor::setParameter »
  • PHP Manual
  • XSLTProcessor
  • Удаляет параметр

XSLTProcessor::removeParameter

(PHP 5, PHP 7)

XSLTProcessor::removeParameter — Удаляет параметр

Описание

XSLTProcessor::removeParameter ( string $namespaceURI , string $localName ) : bool

Удаляет параметр, если он установлен. Это позволяет процессору использовать значение в таблице стилей, установленное по умолчанию.

Список параметров

namespaceURI

Пространство имён URI параметра XSLT.

localName

Локальное название XSLT параметра.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XSLTProcessor::setParameter() - Устанавливает значение параметра
  • XSLTProcessor::getParameter() - Возвращает значение параметра


Устанавливает значение параметра

  • « XSLTProcessor::removeParameter
  • XSLTProcessor::setProfiling »
  • PHP Manual
  • XSLTProcessor
  • Устанавливает значение параметра

XSLTProcessor::setParameter

(PHP 5, PHP 7)

XSLTProcessor::setParameter — Устанавливает значение параметра

Описание

XSLTProcessor::setParameter ( string $namespace , string $name , string $value ) : bool
XSLTProcessor::setParameter ( string $namespace , array $options ) : bool

Устанавливает значение для одного или нескольких параметров, чтобы использовать в дальнейшем в преобразованиях XSLTProcessor. Если параметра нет в таблице стилей, то он будет проигнорирован.

Список параметров

namespace

Пространство имён URI параметра XSLT.

name

Локальное название параметра XSLT.

value

Новое значение параметра XSLT.

options

Массив пар name => value. Этот синтаксис доступен с PHP 5.1.0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Изменение владельца перед преобразованием

<?php

$collections = array(
    'Marc Rutkowski' => 'marc',
    'Olivier Parmentier' => 'olivier'
);

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Настройка преобразования
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // добавление стилей xsl

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::setParameter
  • XSLTProcessor::setSecurityPrefs »
  • PHP Manual
  • XSLTProcessor
  • Устанавливает файл для профилирования

XSLTProcessor::setProfiling

(PHP >= 5.3.0)

XSLTProcessor::setProfiling — Устанавливает файл для профилирования

Описание

XSLTProcessor::setProfiling ( string $filename ) : bool

Устанавливает файл для записи профилирующей информации во время обработки таблиц стилей.

Список параметров

filename

Путь к файлу, в который записывается профилирующая информация.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример вывода профилирующей информации

<?php
// Загрузка исходного XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Настройка преобразования
$proc = new XSLTProcessor;
$proc->setProfiling('profiling.txt');
$proc->importStyleSheet($xsl); // добавление стилей xsl

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);
?>

Вышеприведенный код записывает следующую информацию в файл профилирования:

number               match                name      mode  Calls Tot 100us Avg

    0                   cd                                    2      3      1
    1           collection                                    1      1      1

                         Total                                3      4


Установить настройки безопасности

  • « XSLTProcessor::setProfiling
  • XSLTProcessor::transformToDoc »
  • PHP Manual
  • XSLTProcessor
  • Установить настройки безопасности

XSLTProcessor::setSecurityPrefs

(PHP >= 5.4.0)

XSLTProcessor::setSecurityPrefs — Установить настройки безопасности

Описание

public XSLTProcessor::setSecurityPrefs ( int $securityPrefs ) : int

Устанавливает настройки безопасности.

Список параметров

securityPrefs

Новые настройки безопасности. Битовая маска из: XSL_SECPREF_READ_FILE, XSL_SECPREF_WRITE_FILE, XSL_SECPREF_CREATE_DIRECTORY, XSL_SECPREF_READ_NETWORK, XSL_SECPREF_WRITE_NETWORK. Или, альтернативно, можно передать XSL_SECPREF_NONE или XSL_SECPREF_DEFAULT.

Возвращаемые значения

Возвращает старые настройки безопасности.


Преобразует в DOMDocument

  • « XSLTProcessor::setSecurityPrefs
  • XSLTProcessor::transformToUri »
  • PHP Manual
  • XSLTProcessor
  • Преобразует в DOMDocument

XSLTProcessor::transformToDoc

(PHP 5, PHP 7)

XSLTProcessor::transformToDoc — Преобразует в DOMDocument

Описание

XSLTProcessor::transformToDoc ( DOMNode $doc ) : DOMDocument

Преобразует исходный узел в DOMDocument применяя таблицу стилей, заданную с помощью метода XSLTProcessor::importStylesheet().

Список параметров

doc

Узел, который нужно преобразовать.

Возвращаемые значения

Возвращает DOMDocument или FALSE при ошибке.

Примеры

Пример #1 Преобразование в DOMDocument

<?php

// Загрузка исходного XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Настройка преобразования
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // добавление стилей xsl

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);

?>

Результат выполнения данного примера:

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

Смотрите также

  • XSLTProcessor::transformToUri() - Преобразует в URI
  • XSLTProcessor::transformToXml() - Преобразует в XML


Преобразует в URI

  • « XSLTProcessor::transformToDoc
  • XSLTProcessor::transformToXml »
  • PHP Manual
  • XSLTProcessor
  • Преобразует в URI

XSLTProcessor::transformToUri

(PHP 5, PHP 7)

XSLTProcessor::transformToUri — Преобразует в URI

Описание

XSLTProcessor::transformToURI ( DOMDocument $doc , string $uri ) : int

Преобразует исходный узел в URI, применяя таблицу стилей, которая установлена с помощью метода XSLTProcessor::importStylesheet().

Список параметров

doc

Документ для преобразования.

uri

Целевой URI для преобразования.

Возвращаемые значения

Возвращает количество записанных байтов, либо FALSE при ошибке.

Примеры

Пример #1 Преобразование в HTML файл

<?php

// Загрузка источника XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Настройка преобразования
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // добавление стилей xsl

$proc->transformToURI($xml, 'file:///tmp/out.html');

?>

Смотрите также

  • XSLTProcessor::transformToDoc() - Преобразует в DOMDocument
  • XSLTProcessor::transformToXml() - Преобразует в XML


Преобразует в XML

  • « XSLTProcessor::transformToUri
  • Расширения для работы с GUI »
  • PHP Manual
  • XSLTProcessor
  • Преобразует в XML

XSLTProcessor::transformToXml

(PHP 5, PHP 7)

XSLTProcessor::transformToXml — Преобразует в XML

Описание

XSLTProcessor::transformToXml ( object $doc ) : string

Преобразует исходный узел в строку, применяя таблицы стилей, которые установлены с помощью метода xsltprocessor::importStylesheet().

Список параметров

doc

Объект класса DOMDocument или SimpleXMLElement для преобразования.

Возвращаемые значения

Результат преобразования, или FALSE при ошибке.

Примеры

Пример #1 Трансформация в строку

<?php

// Загрузка источника XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Настройка преобразования
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // добавление стилей xsl

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() - Преобразует в DOMDocument
  • XSLTProcessor::transformToUri() - Преобразует в URI


Расширения для работы с GUI

  • UI
    • Введение
    • Установка и настройка
    • UI\Point — Представляет позицию (x,y)
    • UI\Size — Представляет размеры (ширина, высота)
    • UI\Window — Окно
    • UI\Control — Элемент управления
    • UI\Menu — Меню
    • UI\MenuItem — Элемент меню
    • UI\Area — Area
    • UI\Executor — Планировщик выполнения
    • UI\Controls\Tab — Элемент управления "Таб"
    • UI\Controls\Check — Элемент управления "Чекбокс"
    • UI\Controls\Button — Элемент управления "Кнопка"
    • UI\Controls\ColorButton — Элемент управления "Кнопка с палитрой цветов"
    • UI\Controls\Label — Элемент управления "Метка"
    • UI\Controls\Entry — Элемент управления "Ввод"
    • UI\Controls\MultilineEntry — Элемент управления "Многострочный ввод"
    • UI\Controls\Spin — Элемент управления "Спин"
    • UI\Controls\Slider — Элемент управления "Слайдер"
    • UI\Controls\Progress — Элемент управления "Ход выполнения"
    • UI\Controls\Separator — Элемент управления "Разделитель"
    • UI\Controls\Combo — Элемент управления "Комбо"
    • UI\Controls\EditableCombo — Редактируемый элемент управления "Комбо"
    • UI\Controls\Radio — Элемент управления "Радио"
    • UI\Controls\Picker — Элемент управления "Селектор"
    • UI\Controls\Form — Элемент управления "Форма" (расположение)
    • UI\Controls\Grid — Элемент управления "Сетка" (размещение)
    • UI\Controls\Group — Элемент управления "Группа" (размещение)
    • UI\Controls\Box — Блок управления (размещение)
    • UI\Draw\Pen — Рисование с помощью "Перо"
    • UI\Draw\Path — Путь рисования
    • UI\Draw\Matrix — Матрица рисования
    • UI\Draw\Color — Представление цвета
    • UI\Draw\Stroke — Рисование обводки
    • UI\Draw\Brush — Кисти
    • UI\Draw\Brush\Gradient — Градиентные кисти
    • UI\Draw\Brush\LinearGradient — Линейный градиент
    • UI\Draw\Brush\RadialGradient — Радиальный градиент
    • UI\Draw\Text\Layout — Представляет макет текста
    • UI\Draw\Text\Font — Представляет шрифт
    • UI\Draw\Text\Font\Descriptor — Дескриптор шрифта
    • Функции UI
    • UI\Draw\Text\Font\Weight — Настройки начертания шрифта
    • UI\Draw\Text\Font\Italic — Настройки курсивного шрифта
    • UI\Draw\Text\Font\Stretch — Настройки толщины шрифта
    • UI\Draw\Line\Cap — Настройки концов линий
    • UI\Draw\Line\Join — Настройки соединения линий
    • UI\Key — Ключевые идентификаторы
    • UI\Exception\InvalidArgumentException — InvalidArgumentException
    • UI\Exception\RuntimeException — RuntimeException


UI

  • Введение
  • Установка и настройка
    • Требования
    • Установка
  • UI\Point — Представляет позицию (x,y)
    • UI\Point::at — Приведение Size
    • UI\Point::__construct — Создать новый объект Point
    • UI\Point::getX — Получает X
    • UI\Point::getY — Получить Y
    • UI\Point::setX — Установить X
    • UI\Point::setY — Установить Y
  • UI\Size — Представляет размеры (ширина, высота)
    • UI\Size::__construct — Создать новый объект Size
    • UI\Size::getHeight — Получает высоту
    • UI\Size::getWidth — Получает ширину
    • UI\Size::of — Приведение Point
    • UI\Size::setHeight — Установить высоту
    • UI\Size::setWidth — Установить ширину
  • UI\Window — Окно
    • UI\Window::add — Добавить элемент управления
    • UI\Window::__construct — Создать новый объект Window
    • UI\Window::error — Показать блок ошибки
    • UI\Window::getSize — Получить размер окна
    • UI\Window::getTitle — Получить заголовок
    • UI\Window::hasBorders — Определение рамки
    • UI\Window::hasMargin — Определение полей
    • UI\Window::isFullScreen — Определение полного экрана
    • UI\Window::msg — Показать блок сообщения
    • UI\Window::onClosing — Callback-функция закрытия
    • UI\Window::open — Открыть диалоговое окно
    • UI\Window::save — Сохранить диалоговое окно
    • UI\Window::setBorders — Использование рамок
    • UI\Window::setFullScreen — Использование полного экрана
    • UI\Window::setMargin — Использование поля
    • UI\Window::setSize — Установить размер
    • UI\Window::setTitle — Заголовок окна
  • UI\Control — Элемент управления
    • UI\Control::destroy — Уничтожить управляющий элемент
    • UI\Control::disable — Отключить управляющий элемент
    • UI\Control::enable — Включить управляющий элемент
    • UI\Control::getParent — Получить родительский управляющий элемент
    • UI\Control::getTopLevel — Получить верхний уровень
    • UI\Control::hide — Скрыть управляющий элемент
    • UI\Control::isEnabled — Определить, включен ли управляющий элемент
    • UI\Control::isVisible — Определить, видимый ли управляющий элемент
    • UI\Control::setParent — Установить родительский управляющий элемент
    • UI\Control::show — Показать управляющий элемент
  • UI\Menu — Меню
    • UI\Menu::append — Добавить пункт меню
    • UI\Menu::appendAbout — Добавить пункт меню About
    • UI\Menu::appendCheck — Добавить пункт меню с чекбоксом
    • UI\Menu::appendPreferences — Добавить пункт меню "Настройки" (Preferences)
    • UI\Menu::appendQuit — Добавить пункт меню "Выход" (Quit)
    • UI\Menu::appendSeparator — Добавить пункт меню "Разделитель" (Separator)
    • UI\Menu::__construct — Создать новый объект Menu
  • UI\MenuItem — Элемент меню
    • UI\MenuItem::disable — Отключить пункт меню
    • UI\MenuItem::enable — Включить пункт меню
    • UI\MenuItem::isChecked — Определение выбранности пункта
    • UI\MenuItem::onClick — Обработчик нажатия
    • UI\MenuItem::setChecked — Выбрать пункт меню
  • UI\Area — Area
    • UI\Area::onDraw — Функция обратного вызова при рисовании
    • UI\Area::onKey — Функция обратного вызова при нажатии
    • UI\Area::onMouse — Функция обратного вызова мыши
    • UI\Area::redraw — Перерисовать область
    • UI\Area::scrollTo — Прокрутить область
    • UI\Area::setSize — Установить размер
  • UI\Executor — Планировщик выполнения
    • UI\Executor::__construct — Создать новый объект Executor
    • UI\Executor::kill — Остановить исполнитель
    • UI\Executor::onExecute — Callback-функция выполнения
    • UI\Executor::setInterval — Управление интервалом
  • UI\Controls\Tab — Элемент управления "Таб"
    • UI\Controls\Tab::append — Добавить страницу
    • UI\Controls\Tab::delete — Удалить страницу
    • UI\Controls\Tab::hasMargin — Определения поля
    • UI\Controls\Tab::insertAt — Вставить страницу
    • UI\Controls\Tab::pages — Количество страниц
    • UI\Controls\Tab::setMargin — Установить поле
  • UI\Controls\Check — Элемент управления "Чекбокс"
    • UI\Controls\Check::__construct — Создать новый объект Check
    • UI\Controls\Check::getText — Получить текст
    • UI\Controls\Check::isChecked — Определение отметки
    • UI\Controls\Check::onToggle — Функция обратного вызова переключения
    • UI\Controls\Check::setChecked — Установить статус выбранности
    • UI\Controls\Check::setText — Установить текст
  • UI\Controls\Button — Элемент управления "Кнопка"
    • UI\Controls\Button::__construct — Создать новый объект Button
    • UI\Controls\Button::getText — Получить текст
    • UI\Controls\Button::onClick — Обработчик клика
    • UI\Controls\Button::setText — Установить текст
  • UI\Controls\ColorButton — Элемент управления "Кнопка с палитрой цветов"
    • UI\Controls\ColorButton::getColor — Получить объект Color
    • UI\Controls\ColorButton::onChange — Обработчик изменения
    • UI\Controls\ColorButton::setColor — Установить объект Color
  • UI\Controls\Label — Элемент управления "Метка"
    • UI\Controls\Label::__construct — Создать новый объект Label
    • UI\Controls\Label::getText — Получить текст
    • UI\Controls\Label::setText — Установить текст
  • UI\Controls\Entry — Элемент управления "Ввод"
    • UI\Controls\Entry::__construct — Создать новый объект Entry
    • UI\Controls\Entry::getText — Получить текст
    • UI\Controls\Entry::isReadOnly — Определить, является ли элемент только для чтения
    • UI\Controls\Entry::onChange — Обработчик изменения
    • UI\Controls\Entry::setReadOnly — Установить "только для чтения"
    • UI\Controls\Entry::setText — Установить текст
  • UI\Controls\MultilineEntry — Элемент управления "Многострочный ввод"
    • UI\Controls\MultilineEntry::append — Добавить текст
    • UI\Controls\MultilineEntry::__construct — Создать новый объект "Многострочный ввод"
    • UI\Controls\MultilineEntry::getText — Получить текст
    • UI\Controls\MultilineEntry::isReadOnly — Определение "только для чтения"
    • UI\Controls\MultilineEntry::onChange — Обработчик изменения
    • UI\Controls\MultilineEntry::setReadOnly — Установить "только для чтения"
    • UI\Controls\MultilineEntry::setText — Установить текст
  • UI\Controls\Spin — Элемент управления "Спин"
    • UI\Controls\Spin::__construct — Создает новый объект Spin
    • UI\Controls\Spin::getValue — Получить значение
    • UI\Controls\Spin::onChange — Обработчик изменения
    • UI\Controls\Spin::setValue — Установить значение
  • UI\Controls\Slider — Элемент управления "Слайдер"
    • UI\Controls\Slider::__construct — Создает новый объект Slider
    • UI\Controls\Slider::getValue — Получить значение
    • UI\Controls\Slider::onChange — Обработчик изменения
    • UI\Controls\Slider::setValue — Установить значение
  • UI\Controls\Progress — Элемент управления "Ход выполнения"
    • UI\Controls\Progress::getValue — Получить значение
    • UI\Controls\Progress::setValue — Установить значение
  • UI\Controls\Separator — Элемент управления "Разделитель"
    • UI\Controls\Separator::__construct — Создать новый объект Separator
  • UI\Controls\Combo — Элемент управления "Комбо"
    • UI\Controls\Combo::append — Добавить опцию
    • UI\Controls\Combo::getSelected — Получить выбранную опцию
    • UI\Controls\Combo::onSelected — Обработчик выбранной опции
    • UI\Controls\Combo::setSelected — Устанавливает выбранную опцию
  • UI\Controls\EditableCombo — Редактируемый элемент управления "Комбо"
    • UI\Controls\EditableCombo::append — Добавить опцию
    • UI\Controls\EditableCombo::getText — Получить текст
    • UI\Controls\EditableCombo::onChange — Обработчик изменения
    • UI\Controls\EditableCombo::setText — Установить текст
  • UI\Controls\Radio — Элемент управления "Радио"
    • UI\Controls\Radio::append — Добавляет вариант
    • UI\Controls\Radio::getSelected — Получить выбранный вариант
    • UI\Controls\Radio::onSelected — Обработчик выбора
    • UI\Controls\Radio::setSelected — Установить выбранный вариант
  • UI\Controls\Picker — Элемент управления "Селектор"
    • UI\Controls\Picker::__construct — Создает новый объект Picker
  • UI\Controls\Form — Элемент управления "Форма" (расположение)
    • UI\Controls\Form::append — Добавить управляющий элемент
    • UI\Controls\Form::delete — Удалить элемент управления
    • UI\Controls\Form::isPadded — Определение заполнения
    • UI\Controls\Form::setPadded — Установить заполнение
  • UI\Controls\Grid — Элемент управления "Сетка" (размещение)
    • UI\Controls\Grid::append — Добавить управляющий элемент
    • UI\Controls\Grid::isPadded — Определение заполнения
    • UI\Controls\Grid::setPadded — Установить заполнение
  • UI\Controls\Group — Элемент управления "Группа" (размещение)
    • UI\Controls\Group::append — Добавить управляющий элемент
    • UI\Controls\Group::__construct — Создать новый объект Group
    • UI\Controls\Group::getTitle — Получить заголовок
    • UI\Controls\Group::hasMargin — Определение поля
    • UI\Controls\Group::setMargin — Установить поле
    • UI\Controls\Group::setTitle — Установить заголовок
  • UI\Controls\Box — Блок управления (размещение)
    • UI\Controls\Box::append — Добавить управляющий элемент
    • UI\Controls\Box::__construct — Создать новый объект Box
    • UI\Controls\Box::delete — Удалить управляющий элемент
    • UI\Controls\Box::getOrientation — Получить ориентацию
    • UI\Controls\Box::isPadded — Определение заполнения
    • UI\Controls\Box::setPadded — Установить заполнение
  • UI\Draw\Pen — Рисование с помощью "Перо"
    • UI\Draw\Pen::clip — Обрезать путь
    • UI\Draw\Pen::fill — Залить путь
    • UI\Draw\Pen::restore — Восстановить
    • UI\Draw\Pen::save — Сохранить
    • UI\Draw\Pen::stroke — Обвести путь
    • UI\Draw\Pen::transform — Преобразовать матрицу
    • UI\Draw\Pen::write — Нарисовать текст в точке
  • UI\Draw\Path — Путь рисования
    • UI\Draw\Path::addRectangle — Нарисовать прямоугольник
    • UI\Draw\Path::arcTo — Нарисовать дугу
    • UI\Draw\Path::bezierTo — Нарисовать кривую Безье
    • UI\Draw\Path::closeFigure — Закрыть фигуру
    • UI\Draw\Path::__construct — Создать новый объект Path
    • UI\Draw\Path::end — Завершить путь
    • UI\Draw\Path::lineTo — Нарисовать линию
    • UI\Draw\Path::newFigure — Нарисовать фигуру
    • UI\Draw\Path::newFigureWithArc — Нарисовать фигуру с дугой
  • UI\Draw\Matrix — Матрица рисования
    • UI\Draw\Matrix::invert — Инвертировать матрицу
    • UI\Draw\Matrix::isInvertible — Определение, инвертирована ли матрица
    • UI\Draw\Matrix::multiply — Умножить матрицу
    • UI\Draw\Matrix::rotate — Перевернуть матрицу
    • UI\Draw\Matrix::scale — Масштабировать матрицу
    • UI\Draw\Matrix::skew — Наклонить матрицу
    • UI\Draw\Matrix::translate — Перевести матрицу
  • UI\Draw\Color — Представление цвета
    • UI\Draw\Color::__construct — Создать новый объект Color
    • UI\Draw\Color::getChannel — Управление цветом
    • UI\Draw\Color::setChannel — Управление цветом
  • UI\Draw\Stroke — Рисование обводки
    • UI\Draw\Stroke::__construct — Создать новый объект Stroke
    • UI\Draw\Stroke::getCap — Получить конец линии
    • UI\Draw\Stroke::getJoin — Получить соединение линии
    • UI\Draw\Stroke::getMiterLimit — Получить предел среза
    • UI\Draw\Stroke::getThickness — Получить толщину
    • UI\Draw\Stroke::setCap — Установить конец линии
    • UI\Draw\Stroke::setJoin — Получить соединение линии
    • UI\Draw\Stroke::setMiterLimit — Установить предел среза
    • UI\Draw\Stroke::setThickness — Установить толщину
  • UI\Draw\Brush — Кисти
    • UI\Draw\Brush::__construct — Создать новый объект Brush
    • UI\Draw\Brush::getColor — Получить цвет
    • UI\Draw\Brush::setColor — Установить цвет
  • UI\Draw\Brush\Gradient — Градиентные кисти
    • UI\Draw\Brush\Gradient::addStop — Stop Manipulation
    • UI\Draw\Brush\Gradient::delStop — Stop Manipulation
    • UI\Draw\Brush\Gradient::setStop — Stop Manipulation
  • UI\Draw\Brush\LinearGradient — Линейный градиент
    • UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient
  • UI\Draw\Brush\RadialGradient — Радиальный градиент
    • UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient
  • UI\Draw\Text\Layout — Представляет макет текста
    • UI\Draw\Text\Layout::__construct — Создать новый объект макета текста
    • UI\Draw\Text\Layout::setColor — Установить цвет
    • UI\Draw\Text\Layout::setWidth — Установить ширину
  • UI\Draw\Text\Font — Представляет шрифт
    • UI\Draw\Text\Font::__construct — Создать новый объект Font
    • UI\Draw\Text\Font::getAscent — Показатели шрифта
    • UI\Draw\Text\Font::getDescent — Показатели шрифта
    • UI\Draw\Text\Font::getLeading — Показатели шрифта
    • UI\Draw\Text\Font::getUnderlinePosition — Показатели шрифта
    • UI\Draw\Text\Font::getUnderlineThickness — Показатели шрифта
  • UI\Draw\Text\Font\Descriptor — Дескриптор шрифта
    • UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor
    • UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family
    • UI\Draw\Text\Font\Descriptor::getItalic — Style Detection
    • UI\Draw\Text\Font\Descriptor::getSize — Size Detection
    • UI\Draw\Text\Font\Descriptor::getStretch — Style Detection
    • UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection
  • Функции UI
    • UI\Draw\Text\Font\fontFamilies — Извлечь семейство шрифтов
    • UI\quit — Выйти из цикла UI
    • UI\run — Войти в цикл UI
  • UI\Draw\Text\Font\Weight — Настройки начертания шрифта
  • UI\Draw\Text\Font\Italic — Настройки курсивного шрифта
  • UI\Draw\Text\Font\Stretch — Настройки толщины шрифта
  • UI\Draw\Line\Cap — Настройки концов линий
  • UI\Draw\Line\Join — Настройки соединения линий
  • UI\Key — Ключевые идентификаторы
  • UI\Exception\InvalidArgumentException — InvalidArgumentException
  • UI\Exception\RuntimeException — RuntimeException


Введение

Модуль является оберткой над libui и предоставляет объектно-ориентированное API для кроссплатформенной разработки нативных look-and-feel пользовательских интерфейсов.


  • « Введение
  • Требования »
  • PHP Manual
  • UI
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка


Требования

Для установки требуется библиотека libui и PHP 7 или новее.

Модуль требует установленной » библиотеки libui версии 0.1 и выше и PHP версии 7.0 и выше. Смотрите документацию по libui для инструкций по установке.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/ui.

Бинарные файлы Windows (файлы DLL) для этого расширения PECL доступны на сайте PECL.


Представляет позицию (x,y)

(PHP 7, UI 0.9.9)

Введение

Точки используются во всем пользовательском интерфейсе для представления координат на экране, управляющем элементе или области.

Обзор классов

final UI\Point {
/* Свойства */
public $x ;
public $y ;
/* Конструктор */
public __construct ( float $x , float $y )
/* Методы */
public static at ( float $point ) : UI\Point
public static at ( UI\Size $size ) : UI\Point
public getX ( void ) : float
public getY ( void ) : float
public setX ( float $point )
public setY ( float $point )
}

Свойства

x

Содержит координату X, может быть прочитана/записана напрямую

y

Содержит координату Y, может быть прочитана/записана напрямую

Содержание

  • UI\Point::at — Приведение Size
  • UI\Point::__construct — Создать новый объект Point
  • UI\Point::getX — Получает X
  • UI\Point::getY — Получить Y
  • UI\Point::setX — Установить X
  • UI\Point::setY — Установить Y


Приведение Size

  • « UI\Point
  • UI\Point::__construct »
  • PHP Manual
  • UI\Point
  • Приведение Size

UI\Point::at

(PHP 7, UI 1.0.2)

UI\Point::at — Приведение Size

Описание

public static UI\Point::at ( float $point ) : UI\Point
public static UI\Point::at ( UI\Size $size ) : UI\Point

Должен вернуть объект UI\Point с координатами x и y, заданными в виде числа с плавающей запятой либо в виде объекта UI\Size.

Список параметров

point

Значение для x и y

size

Объект класса Size для конвертации

Возвращаемые значения

Объект класса Point


Создать новый объект Point

  • « UI\Point::at
  • UI\Point::getX »
  • PHP Manual
  • UI\Point
  • Создать новый объект Point

UI\Point::__construct

(PHP 7, UI 0.9.9)

UI\Point::__construct — Создать новый объект Point

Описание

public UI\Point::__construct ( float $x , float $y )

Создать новый объект Point, используя новые координаты

Список параметров

x

Новая X-координата

y

Новая Y-координата


Получает X

  • « UI\Point::__construct
  • UI\Point::getY »
  • PHP Manual
  • UI\Point
  • Получает X

UI\Point::getX

(PHP 7, UI 0.9.9)

UI\Point::getX — Получает X

Описание

public UI\Point::getX ( void ) : float

Получает X-координату

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая X-координата


Получить Y

  • « UI\Point::getX
  • UI\Point::setX »
  • PHP Manual
  • UI\Point
  • Получить Y

UI\Point::getY

(PHP 7, UI 0.9.9)

UI\Point::getY — Получить Y

Описание

public UI\Point::getY ( void ) : float

Получает Y-коордианту

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая Y-координата


Установить X

  • « UI\Point::getY
  • UI\Point::setY »
  • PHP Manual
  • UI\Point
  • Установить X

UI\Point::setX

(PHP 7, UI 0.9.9)

UI\Point::setX — Установить X

Описание

public UI\Point::setX ( float $point )

Установить X-координата

Список параметров

point

Новая X-координата

Возвращаемые значения


Установить Y

  • « UI\Point::setX
  • UI\Size »
  • PHP Manual
  • UI\Point
  • Установить Y

UI\Point::setY

(PHP 7, UI 0.9.9)

UI\Point::setY — Установить Y

Описание

public UI\Point::setY ( float $point )

Установить Y-координату

Список параметров

point

Новая Y-координата

Возвращаемые значения


Представляет размеры (ширина, высота)

(PHP 7, UI 0.9.9)

Введение

Размеры используются в пользовательском интерфейсе для представления размера экрана, управляющего элемента или области.

Обзор классов

final UI\Size {
/* Свойства */
public $width ;
public $height ;
/* Конструктор */
public __construct ( float $width , float $height )
/* Методы */
public getHeight ( void ) : float
public getWidth ( void ) : float
public static of ( float $size ) : UI\Size
public static of ( UI\Point $point ) : UI\Size
public setHeight ( float $size )
public setWidth ( float $size )
}

Свойства

width

Содержит ширину, может быть прочитана/записана напрямую

height

Содержит высоту, может быть прочитана/записана напрямую

Содержание

  • UI\Size::__construct — Создать новый объект Size
  • UI\Size::getHeight — Получает высоту
  • UI\Size::getWidth — Получает ширину
  • UI\Size::of — Приведение Point
  • UI\Size::setHeight — Установить высоту
  • UI\Size::setWidth — Установить ширину


Создать новый объект Size

  • « UI\Size
  • UI\Size::getHeight »
  • PHP Manual
  • UI\Size
  • Создать новый объект Size

UI\Size::__construct

(PHP 7, UI 0.9.9)

UI\Size::__construct — Создать новый объект Size

Описание

public UI\Size::__construct ( float $width , float $height )

Создать новый объект Size, используя новые ширину и высоту

Список параметров

width

Новая ширина

height

Новая высота


Получает высоту

  • « UI\Size::__construct
  • UI\Size::getWidth »
  • PHP Manual
  • UI\Size
  • Получает высоту

UI\Size::getHeight

(PHP 7, UI 0.9.9)

UI\Size::getHeight — Получает высоту

Описание

public UI\Size::getHeight ( void ) : float

Получает высоту

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая высота


Получает ширину

  • « UI\Size::getHeight
  • UI\Size::of »
  • PHP Manual
  • UI\Size
  • Получает ширину

UI\Size::getWidth

(PHP 7, UI 0.9.9)

UI\Size::getWidth — Получает ширину

Описание

public UI\Size::getWidth ( void ) : float

Получает ширину

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая ширина


Приведение Point

  • « UI\Size::getWidth
  • UI\Size::setHeight »
  • PHP Manual
  • UI\Size
  • Приведение Point

UI\Size::of

(PHP 7, UI 1.0.2)

UI\Size::of — Приведение Point

Описание

public static UI\Size::of ( float $size ) : UI\Size
public static UI\Size::of ( UI\Point $point ) : UI\Size

Должен вернуть объект UI\Size с заданными в виде числа с плавающей запятой или в виде объекта UI\Point шириной и высотой

Список параметров

size

Значение для ширины и высоты

point

Объект Point для конвертации

Возвращаемые значения

Объект класса Size


Установить высоту

  • « UI\Size::of
  • UI\Size::setWidth »
  • PHP Manual
  • UI\Size
  • Установить высоту

UI\Size::setHeight

(PHP 7, UI 0.9.9)

UI\Size::setHeight — Установить высоту

Описание

public UI\Size::setHeight ( float $size )

Установить новую высоту

Список параметров

size

Новая высота

Возвращаемые значения


Установить ширину

  • « UI\Size::setHeight
  • UI\Window »
  • PHP Manual
  • UI\Size
  • Установить ширину

UI\Size::setWidth

(PHP 7, UI 0.9.9)

UI\Size::setWidth — Установить ширину

Описание

public UI\Size::setWidth ( float $size )

Установить новую ширину

Список параметров

size

Новая ширина

Возвращаемые значения


Окно

(PHP 7, UI 0.9.9)

Введение

Представляет пользовательский интерфейс окна

Обзор классов

UI\Window extends UI\Control {
/* Свойства */
protected $controls ;
/* Конструктор */
public __construct ( string $title , Size $size [, bool $menu = FALSE ] )
/* Методы */
public add ( UI\Control $control )
public error ( string $title , string $msg )
public getSize ( void ) : UI\Size
public getTitle ( void ) : string
public hasBorders ( void ) : bool
public hasMargin ( void ) : bool
public isFullScreen ( void ) : bool
public msg ( string $title , string $msg )
protected onClosing ( void ) : int
public open ( void ) : string
public save ( void ) : string
public setBorders ( bool $borders )
public setFullScreen ( bool $full )
public setMargin ( bool $margin )
public setSize ( UI\Size $size )
public setTitle ( string $title )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Свойства

controls

Содержит элементы управления, не следует использовать напрямую

Содержание

  • UI\Window::add — Добавить элемент управления
  • UI\Window::__construct — Создать новый объект Window
  • UI\Window::error — Показать блок ошибки
  • UI\Window::getSize — Получить размер окна
  • UI\Window::getTitle — Получить заголовок
  • UI\Window::hasBorders — Определение рамки
  • UI\Window::hasMargin — Определение полей
  • UI\Window::isFullScreen — Определение полного экрана
  • UI\Window::msg — Показать блок сообщения
  • UI\Window::onClosing — Callback-функция закрытия
  • UI\Window::open — Открыть диалоговое окно
  • UI\Window::save — Сохранить диалоговое окно
  • UI\Window::setBorders — Использование рамок
  • UI\Window::setFullScreen — Использование полного экрана
  • UI\Window::setMargin — Использование поля
  • UI\Window::setSize — Установить размер
  • UI\Window::setTitle — Заголовок окна


Добавить элемент управления

  • « UI\Window
  • UI\Window::__construct »
  • PHP Manual
  • UI\Window
  • Добавить элемент управления

UI\Window::add

(PHP 7, UI 0.9.9)

UI\Window::add — Добавить элемент управления

Описание

public UI\Window::add ( UI\Control $control )

Добавит элемент управления к окну

Список параметров

control

Элемент управления для добавления

Возвращаемые значения


Создать новый объект Window

  • « UI\Window::add
  • UI\Window::error »
  • PHP Manual
  • UI\Window
  • Создать новый объект Window

UI\Window::__construct

(PHP 7, UI 0.9.9)

UI\Window::__construct — Создать новый объект Window

Описание

public UI\Window::__construct ( string $title , Size $size [, bool $menu = FALSE ] )

Создаст новый объект Window

Список параметров

title

Заголовок окна

size

Размер окна

menu

Переключатель меню


Показать блок ошибки

  • « UI\Window::__construct
  • UI\Window::getSize »
  • PHP Manual
  • UI\Window
  • Показать блок ошибки

UI\Window::error

(PHP 7, UI 0.9.9)

UI\Window::error — Показать блок ошибки

Описание

public UI\Window::error ( string $title , string $msg )

Покажет блок ошибки

Список параметров

title

Заголовок блока ошибки

msg

Сообщение блока ошибки


Получить размер окна

  • « UI\Window::error
  • UI\Window::getTitle »
  • PHP Manual
  • UI\Window
  • Получить размер окна

UI\Window::getSize

(PHP 7, UI 0.9.9)

UI\Window::getSize — Получить размер окна

Описание

public UI\Window::getSize ( void ) : UI\Size

Возвратит размер данного окна

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить заголовок

  • « UI\Window::getSize
  • UI\Window::hasBorders »
  • PHP Manual
  • UI\Window
  • Получить заголовок

UI\Window::getTitle

(PHP 7, UI 0.9.9)

UI\Window::getTitle — Получить заголовок

Описание

public UI\Window::getTitle ( void ) : string

Получит заголовок данного окна

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Определение рамки

  • « UI\Window::getTitle
  • UI\Window::hasMargin »
  • PHP Manual
  • UI\Window
  • Определение рамки

UI\Window::hasBorders

(PHP 7, UI 0.9.9)

UI\Window::hasBorders — Определение рамки

Описание

public UI\Window::hasBorders ( void ) : bool

Определить, используются ли рамки в данном окне

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Определение полей

  • « UI\Window::hasBorders
  • UI\Window::isFullScreen »
  • PHP Manual
  • UI\Window
  • Определение полей

UI\Window::hasMargin

(PHP 7, UI 0.9.9)

UI\Window::hasMargin — Определение полей

Описание

public UI\Window::hasMargin ( void ) : bool

Определить, используются ли поля в данном окне

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Определение полного экрана

  • « UI\Window::hasMargin
  • UI\Window::msg »
  • PHP Manual
  • UI\Window
  • Определение полного экрана

UI\Window::isFullScreen

(PHP 7, UI 0.9.9)

UI\Window::isFullScreen — Определение полного экрана

Описание

public UI\Window::isFullScreen ( void ) : bool

Определить, используется ли это окно на весь экран

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Показать блок сообщения

  • « UI\Window::isFullScreen
  • UI\Window::onClosing »
  • PHP Manual
  • UI\Window
  • Показать блок сообщения

UI\Window::msg

(PHP 7, UI 0.9.9)

UI\Window::msg — Показать блок сообщения

Описание

public UI\Window::msg ( string $title , string $msg )

Покажет блок сообщения

Список параметров

title

Заголовок блока сообщения

msg

Сообщение


Callback-функция закрытия

  • « UI\Window::msg
  • UI\Window::open »
  • PHP Manual
  • UI\Window
  • Callback-функция закрытия

UI\Window::onClosing

(PHP 7, UI 0.9.9)

UI\Window::onClosing — Callback-функция закрытия

Описание

protected UI\Window::onClosing ( void ) : int

Должен изящно уничтожить данное окно

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Открыть диалоговое окно

  • « UI\Window::onClosing
  • UI\Window::save »
  • PHP Manual
  • UI\Window
  • Открыть диалоговое окно

UI\Window::open

(PHP 7, UI 0.9.9)

UI\Window::open — Открыть диалоговое окно

Описание

public UI\Window::open ( void ) : string

Откроет диалоговое окно файла

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла, выбранного для открытия


Сохранить диалоговое окно

  • « UI\Window::open
  • UI\Window::setBorders »
  • PHP Manual
  • UI\Window
  • Сохранить диалоговое окно

UI\Window::save

(PHP 7, UI 0.9.9)

UI\Window::save — Сохранить диалоговое окно

Описание

public UI\Window::save ( void ) : string

Откроет диалоговое окно сохранения

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла для сохранения


Использование рамок

  • « UI\Window::save
  • UI\Window::setFullScreen »
  • PHP Manual
  • UI\Window
  • Использование рамок

UI\Window::setBorders

(PHP 7, UI 0.9.9)

UI\Window::setBorders — Использование рамок

Описание

public UI\Window::setBorders ( bool $borders )

Включить или отключить использование рамок в данном окне

Список параметров

borders


Использование полного экрана

  • « UI\Window::setBorders
  • UI\Window::setMargin »
  • PHP Manual
  • UI\Window
  • Использование полного экрана

UI\Window::setFullScreen

(PHP 7, UI 0.9.9)

UI\Window::setFullScreen — Использование полного экрана

Описание

public UI\Window::setFullScreen ( bool $full )

Включить или отключить использование полного экрана для данного окна

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

full


Использование поля

  • « UI\Window::setFullScreen
  • UI\Window::setSize »
  • PHP Manual
  • UI\Window
  • Использование поля

UI\Window::setMargin

(PHP 7, UI 0.9.9)

UI\Window::setMargin — Использование поля

Описание

public UI\Window::setMargin ( bool $margin )

Включить или отключить использование полей для данного окна.

Список параметров

margin


Установить размер

  • « UI\Window::setMargin
  • UI\Window::setTitle »
  • PHP Manual
  • UI\Window
  • Установить размер

UI\Window::setSize

(PHP 7, UI 0.9.9)

UI\Window::setSize — Установить размер

Описание

public UI\Window::setSize ( UI\Size $size )

Установит размер данного окна

Список параметров

size

Возвращаемые значения


Заголовок окна

  • « UI\Window::setSize
  • UI\Control »
  • PHP Manual
  • UI\Window
  • Заголовок окна

UI\Window::setTitle

(PHP 7, UI 0.9.9)

UI\Window::setTitle — Заголовок окна

Описание

public UI\Window::setTitle ( string $title )

Установит заголовок для данного окна

Список параметров

title

Новый заголовок


Элемент управления

(PHP 7, UI 0.9.9)

Введение

Это закрытый базовый класс для всех элементов управления пользовательского интерфейса.

Обзор классов

final UI\Control {
/* Методы */
public destroy ( void )
public disable ( void )
public enable ( void )
public getParent ( void ) : UI\Control
public getTopLevel ( void ) : int
public hide ( void )
public isEnabled ( void ) : bool
public isVisible ( void ) : bool
public setParent ( UI\Control $parent )
public show ( void )
}

Содержание

  • UI\Control::destroy — Уничтожить управляющий элемент
  • UI\Control::disable — Отключить управляющий элемент
  • UI\Control::enable — Включить управляющий элемент
  • UI\Control::getParent — Получить родительский управляющий элемент
  • UI\Control::getTopLevel — Получить верхний уровень
  • UI\Control::hide — Скрыть управляющий элемент
  • UI\Control::isEnabled — Определить, включен ли управляющий элемент
  • UI\Control::isVisible — Определить, видимый ли управляющий элемент
  • UI\Control::setParent — Установить родительский управляющий элемент
  • UI\Control::show — Показать управляющий элемент


Уничтожить управляющий элемент

  • « UI\Control
  • UI\Control::disable »
  • PHP Manual
  • UI\Control
  • Уничтожить управляющий элемент

UI\Control::destroy

(PHP 7, UI 0.9.9)

UI\Control::destroy — Уничтожить управляющий элемент

Описание

public UI\Control::destroy ( void )

Уничтожит данный управляющий элемент

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Отключить управляющий элемент

  • « UI\Control::destroy
  • UI\Control::enable »
  • PHP Manual
  • UI\Control
  • Отключить управляющий элемент

UI\Control::disable

(PHP 7, UI 0.9.9)

UI\Control::disable — Отключить управляющий элемент

Описание

public UI\Control::disable ( void )

Отключит данный управляющий элемент

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Включить управляющий элемент

  • « UI\Control::disable
  • UI\Control::getParent »
  • PHP Manual
  • UI\Control
  • Включить управляющий элемент

UI\Control::enable

(PHP 7, UI 0.9.9)

UI\Control::enable — Включить управляющий элемент

Описание

public UI\Control::enable ( void )

Включит данный управляющий элемент

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить родительский управляющий элемент

  • « UI\Control::enable
  • UI\Control::getTopLevel »
  • PHP Manual
  • UI\Control
  • Получить родительский управляющий элемент

UI\Control::getParent

(PHP 7, UI 0.9.9)

UI\Control::getParent — Получить родительский управляющий элемент

Описание

public UI\Control::getParent ( void ) : UI\Control

Возвратит родительский управляющий элемент

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить верхний уровень

  • « UI\Control::getParent
  • UI\Control::hide »
  • PHP Manual
  • UI\Control
  • Получить верхний уровень

UI\Control::getTopLevel

(PHP 7, UI 0.9.9)

UI\Control::getTopLevel — Получить верхний уровень

Описание

public UI\Control::getTopLevel ( void ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Скрыть управляющий элемент

  • « UI\Control::getTopLevel
  • UI\Control::isEnabled »
  • PHP Manual
  • UI\Control
  • Скрыть управляющий элемент

UI\Control::hide

(PHP 7, UI 0.9.9)

UI\Control::hide — Скрыть управляющий элемент

Описание

public UI\Control::hide ( void )

Скрыть данный управляющий элемент

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Определить, включен ли управляющий элемент

  • « UI\Control::hide
  • UI\Control::isVisible »
  • PHP Manual
  • UI\Control
  • Определить, включен ли управляющий элемент

UI\Control::isEnabled

(PHP 7, UI 0.9.9)

UI\Control::isEnabled — Определить, включен ли управляющий элемент

Описание

public UI\Control::isEnabled ( void ) : bool

Определяет, включен ли управляющий элемент

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Определить, видимый ли управляющий элемент

  • « UI\Control::isEnabled
  • UI\Control::setParent »
  • PHP Manual
  • UI\Control
  • Определить, видимый ли управляющий элемент

UI\Control::isVisible

(PHP 7, UI 0.9.9)

UI\Control::isVisible — Определить, видимый ли управляющий элемент

Описание

public UI\Control::isVisible ( void ) : bool

Определяет, видимый ли управляющий элемент

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Установить родительский управляющий элемент

  • « UI\Control::isVisible
  • UI\Control::show »
  • PHP Manual
  • UI\Control
  • Установить родительский управляющий элемент

UI\Control::setParent

(PHP 7, UI 0.9.9)

UI\Control::setParent — Установить родительский управляющий элемент

Описание

public UI\Control::setParent ( UI\Control $parent )

Установит родительский управляющий элемент этого элемента управления

Список параметров

parent

Родительский управляющий элемент

Возвращаемые значения


Показать управляющий элемент

  • « UI\Control::setParent
  • UI\Menu »
  • PHP Manual
  • UI\Control
  • Показать управляющий элемент

UI\Control::show

(PHP 7, UI 0.9.9)

UI\Control::show — Показать управляющий элемент

Описание

public UI\Control::show ( void )

Покажет управляющий элемент

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Меню

(PHP 7, UI 0.9.9)

Введение

Меню должно быть создано до первого окна и может отображаться в любом окне

Обзор классов

UI\Menu {
/* Конструктор */
public __construct ( string $name )
/* Методы */
public append ( string $name [, string $type = UI\MenuItem::class ] ) : UI\MenuItem
public appendAbout ([ string $type = UI\MenuItem::class ] ) : UI\MenuItem
public appendCheck ( string $name [, string $type = UI\MenuItem::class ] ) : UI\MenuItem
public appendPreferences ([ string $type = UI\MenuItem::class ] ) : UI\MenuItem
public appendQuit ([ string $type = UI\MenuItem::class ] ) : UI\MenuItem
public appendSeparator ( void )
}

Содержание

  • UI\Menu::append — Добавить пункт меню
  • UI\Menu::appendAbout — Добавить пункт меню About
  • UI\Menu::appendCheck — Добавить пункт меню с чекбоксом
  • UI\Menu::appendPreferences — Добавить пункт меню "Настройки" (Preferences)
  • UI\Menu::appendQuit — Добавить пункт меню "Выход" (Quit)
  • UI\Menu::appendSeparator — Добавить пункт меню "Разделитель" (Separator)
  • UI\Menu::__construct — Создать новый объект Menu


Добавить пункт меню

  • « UI\Menu
  • UI\Menu::appendAbout »
  • PHP Manual
  • UI\Menu
  • Добавить пункт меню

UI\Menu::append

(PHP 7, UI 0.9.9)

UI\Menu::append — Добавить пункт меню

Описание

public UI\Menu::append ( string $name [, string $type = UI\MenuItem::class ] ) : UI\MenuItem

Добавит пункт меню

Список параметров

name

Имя (текст) нового пункта

type

Тип нового пункта

Возвращаемые значения

Созданный объект данного типа


Добавить пункт меню About

  • « UI\Menu::append
  • UI\Menu::appendCheck »
  • PHP Manual
  • UI\Menu
  • Добавить пункт меню About

UI\Menu::appendAbout

(PHP 7, UI 0.9.9)

UI\Menu::appendAbout — Добавить пункт меню About

Описание

public UI\Menu::appendAbout ([ string $type = UI\MenuItem::class ] ) : UI\MenuItem

Добавит пункт меню About

Список параметров

type

Тип нового пункта меню

Возвращаемые значения

Созданный пункт меню с заданным типом


Добавить пункт меню с чекбоксом

  • « UI\Menu::appendAbout
  • UI\Menu::appendPreferences »
  • PHP Manual
  • UI\Menu
  • Добавить пункт меню с чекбоксом

UI\Menu::appendCheck

(PHP 7, UI 0.9.9)

UI\Menu::appendCheck — Добавить пункт меню с чекбоксом

Описание

public UI\Menu::appendCheck ( string $name [, string $type = UI\MenuItem::class ] ) : UI\MenuItem

Добавит пункт меню с чекбоксом

Список параметров

name

Имя (текст) нового пункта

type

Тип нового пункта

Возвращаемые значения

Созданный пункт меню с чекбоксом заданного типа


Добавить пункт меню "Настройки" (Preferences)

  • « UI\Menu::appendCheck
  • UI\Menu::appendQuit »
  • PHP Manual
  • UI\Menu
  • Добавить пункт меню "Настройки" (Preferences)

UI\Menu::appendPreferences

(PHP 7, UI 0.9.9)

UI\Menu::appendPreferences — Добавить пункт меню "Настройки" (Preferences)

Описание

public UI\Menu::appendPreferences ([ string $type = UI\MenuItem::class ] ) : UI\MenuItem

Добавит пункт меню "Настройки"

Список параметров

type

Тип нового пункта

Возвращаемые значения

Созданный пункт меню "Настройки" заданного типа


Добавить пункт меню "Выход" (Quit)

  • « UI\Menu::appendPreferences
  • UI\Menu::appendSeparator »
  • PHP Manual
  • UI\Menu
  • Добавить пункт меню "Выход" (Quit)

UI\Menu::appendQuit

(PHP 7, UI 0.9.9)

UI\Menu::appendQuit — Добавить пункт меню "Выход" (Quit)

Описание

public UI\Menu::appendQuit ([ string $type = UI\MenuItem::class ] ) : UI\MenuItem

Добавит пункт меню "Выход"

Список параметров

type

Тип нового пункта

Возвращаемые значения

Созданный пункт меню "Выход" заданного типа


Добавить пункт меню "Разделитель" (Separator)

  • « UI\Menu::appendQuit
  • UI\Menu::__construct »
  • PHP Manual
  • UI\Menu
  • Добавить пункт меню "Разделитель" (Separator)

UI\Menu::appendSeparator

(PHP 7, UI 0.9.9)

UI\Menu::appendSeparator — Добавить пункт меню "Разделитель" (Separator)

Описание

public UI\Menu::appendSeparator ( void )

Добавит разделитель

Список параметров

У этой функции нет параметров.


Создать новый объект Menu

  • « UI\Menu::appendSeparator
  • UI\MenuItem »
  • PHP Manual
  • UI\Menu
  • Создать новый объект Menu

UI\Menu::__construct

(PHP 7, UI 0.9.9)

UI\Menu::__construct — Создать новый объект Menu

Описание

public UI\Menu::__construct ( string $name )

Создаст новый объект Menu

Список параметров

name

Имя (текст) нового меню


Элемент меню

(PHP 7, UI 0.9.9)

Введение

Элементы меню должны создаваться только меню

Обзор классов

UI\MenuItem {
/* Методы */
public disable ( void )
public enable ( void )
public isChecked ( void ) : bool
protected onClick ( void )
public setChecked ( bool $checked )
}

Содержание

  • UI\MenuItem::disable — Отключить пункт меню
  • UI\MenuItem::enable — Включить пункт меню
  • UI\MenuItem::isChecked — Определение выбранности пункта
  • UI\MenuItem::onClick — Обработчик нажатия
  • UI\MenuItem::setChecked — Выбрать пункт меню


Отключить пункт меню

  • « UI\MenuItem
  • UI\MenuItem::enable »
  • PHP Manual
  • UI\MenuItem
  • Отключить пункт меню

UI\MenuItem::disable

(PHP 7, UI 0.9.9)

UI\MenuItem::disable — Отключить пункт меню

Описание

public UI\MenuItem::disable ( void )

Отключит данный пункт меню

Список параметров

У этой функции нет параметров.


Включить пункт меню

  • « UI\MenuItem::disable
  • UI\MenuItem::isChecked »
  • PHP Manual
  • UI\MenuItem
  • Включить пункт меню

UI\MenuItem::enable

(PHP 7, UI 0.9.9)

UI\MenuItem::enable — Включить пункт меню

Описание

public UI\MenuItem::enable ( void )

Включит данный пункт меню

Список параметров

У этой функции нет параметров.


Определение выбранности пункта

  • « UI\MenuItem::enable
  • UI\MenuItem::onClick »
  • PHP Manual
  • UI\MenuItem
  • Определение выбранности пункта

UI\MenuItem::isChecked

(PHP 7, UI 0.9.9)

UI\MenuItem::isChecked — Определение выбранности пункта

Описание

public UI\MenuItem::isChecked ( void ) : bool

Определить, выбран ли данный пункт меню

Список параметров

У этой функции нет параметров.


Обработчик нажатия

  • « UI\MenuItem::isChecked
  • UI\MenuItem::setChecked »
  • PHP Manual
  • UI\MenuItem
  • Обработчик нажатия

UI\MenuItem::onClick

(PHP 7, UI 0.9.9)

UI\MenuItem::onClick — Обработчик нажатия

Описание

protected UI\MenuItem::onClick ( void )

Выполняется при нажатии данного пункта меню

Список параметров

У этой функции нет параметров.


Выбрать пункт меню

  • « UI\MenuItem::onClick
  • UI\Area »
  • PHP Manual
  • UI\MenuItem
  • Выбрать пункт меню

UI\MenuItem::setChecked

(PHP 7, UI 0.9.9)

UI\MenuItem::setChecked — Выбрать пункт меню

Описание

public UI\MenuItem::setChecked ( bool $checked )

Установить статус выбранности данного пункта меню

Список параметров

checked

Новый статус


Area

(PHP 7, UI 0.9.9)

Введение

Область (Area) представляет собой холст, который можно использовать для рисования и реагирования на события мыши и клавиш.

Обзор классов

UI\Area extends UI\Control {
/* Константы */
const integer Ctrl ;
const integer Alt ;
const integer Shift ;
const integer Super ;
const integer Down ;
const integer Up ;
/* Методы */
protected onDraw ( UI\Draw\Pen $pen , UI\Size $areaSize , UI\Point $clipPoint , UI\Size $clipSize )
protected onKey ( string $key , int $ext , int $flags )
protected onMouse ( UI\Point $areaPoint , UI\Size $areaSize , int $flags )
public redraw ( void )
public scrollTo ( UI\Point $point , UI\Size $size )
public setSize ( UI\Size $size )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Предопределенные константы

UI\Area::Ctrl

Должен быть установлен в модификаторах, переданных событиям клавиш и мыши, когда активна клавиша CTRL

UI\Area::Alt

Должен быть установлен в модификаторах, переданных событиям клавиш и мыши, когда активна клавиша ALT

UI\Area::Shift

Должен быть установлен в модификаторах, переданных событиям клавиш и мыши, когда активна клавиша SHIFT

UI\Area::Super

UI\Area::Down

Должен быть установлен в модификаторах, переданных событиям клавиатуры и мыши

UI\Area::Up

Должен быть установлен в модификаторах, переданных событиям клавиатуры и мыши

Содержание

  • UI\Area::onDraw — Функция обратного вызова при рисовании
  • UI\Area::onKey — Функция обратного вызова при нажатии
  • UI\Area::onMouse — Функция обратного вызова мыши
  • UI\Area::redraw — Перерисовать область
  • UI\Area::scrollTo — Прокрутить область
  • UI\Area::setSize — Установить размер


Функция обратного вызова при рисовании

  • « UI\Area
  • UI\Area::onKey »
  • PHP Manual
  • UI\Area
  • Функция обратного вызова при рисовании

UI\Area::onDraw

(PHP 7, UI 0.9.9)

UI\Area::onDraw — Функция обратного вызова при рисовании

Описание

protected UI\Area::onDraw ( UI\Draw\Pen $pen , UI\Size $areaSize , UI\Point $clipPoint , UI\Size $clipSize )

Вызывается, когда данная область требует перерисовки

Список параметров

pen

Ручка (Pen), подходящая для рисования в этом районе

areaSize

Размер области

clipPoint

Точка обрезки (clip point) области

clipSize

Размер обрезки (clip size) области


Функция обратного вызова при нажатии

  • « UI\Area::onDraw
  • UI\Area::onMouse »
  • PHP Manual
  • UI\Area
  • Функция обратного вызова при нажатии

UI\Area::onKey

(PHP 7, UI 0.9.9)

UI\Area::onKey — Функция обратного вызова при нажатии

Описание

protected UI\Area::onKey ( string $key , int $ext , int $flags )

Выполняется при нажатии на клавиши

Список параметров

key

Нажатая клавиша

ext

Нажатая расширенная кнопка

flags

Модификаторы события

Возвращаемые значения


Функция обратного вызова мыши

  • « UI\Area::onKey
  • UI\Area::redraw »
  • PHP Manual
  • UI\Area
  • Функция обратного вызова мыши

UI\Area::onMouse

(PHP 7, UI 0.9.9)

UI\Area::onMouse — Функция обратного вызова мыши

Описание

protected UI\Area::onMouse ( UI\Point $areaPoint , UI\Size $areaSize , int $flags )

Вызывается при нажатии мыши

Список параметров

areaPoint

Координаты события

areaSize

Размер области события

flags

Модификаторы события


Перерисовать область

  • « UI\Area::onMouse
  • UI\Area::scrollTo »
  • PHP Manual
  • UI\Area
  • Перерисовать область

UI\Area::redraw

(PHP 7, UI 0.9.9)

UI\Area::redraw — Перерисовать область

Описание

public UI\Area::redraw ( void )

Запрашивает, чтобы эта область была перерисована

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Прокрутить область

  • « UI\Area::redraw
  • UI\Area::setSize »
  • PHP Manual
  • UI\Area
  • Прокрутить область

UI\Area::scrollTo

(PHP 7, UI 0.9.9)

UI\Area::scrollTo — Прокрутить область

Описание

public UI\Area::scrollTo ( UI\Point $point , UI\Size $size )

Прокрутить данную область

Список параметров

point

Точка прокрутки

size

Размер области прокрутки


Установить размер

  • « UI\Area::scrollTo
  • UI\Executor »
  • PHP Manual
  • UI\Area
  • Установить размер

UI\Area::setSize

(PHP 7, UI 0.9.9)

UI\Area::setSize — Установить размер

Описание

public UI\Area::setSize ( UI\Size $size )

Устанавливает размер области

Список параметров

size

Новый размер


Планировщик выполнения

(PHP 7, UI 2.0.0)

Введение

Эта возможность планирует повторное выполнение callback-функции, полезно для анимации и других подобных действий.

Обзор классов

abstract UI\Executor {
/* Конструктор */
public __construct ( void )
public __construct ( int $microseconds )
public __construct ( int $seconds , int $microseconds )
/* Методы */
public kill ( void ) : void
abstract protected onExecute ( void ) : void
public setInterval ( int $microseconds ) : bool
public setInterval ( int $seconds , int $microseconds ) : bool
}

Содержание

  • UI\Executor::__construct — Создать новый объект Executor
  • UI\Executor::kill — Остановить исполнитель
  • UI\Executor::onExecute — Callback-функция выполнения
  • UI\Executor::setInterval — Управление интервалом


Создать новый объект Executor

  • « UI\Executor
  • UI\Executor::kill »
  • PHP Manual
  • UI\Executor
  • Создать новый объект Executor

UI\Executor::__construct

(PHP 7, UI 2.0.0)

UI\Executor::__construct — Создать новый объект Executor

Описание

public UI\Executor::__construct ( void )
public UI\Executor::__construct ( int $microseconds )
public UI\Executor::__construct ( int $seconds , int $microseconds )

Создает исполнитель с заданным интервалом, не будет запускаться до тех пор, пока не будет введен основной цикл

Список параметров

seconds

Секунды между выполнениями

microseconds

Микросекунды между выполнениями


Остановить исполнитель

  • « UI\Executor::__construct
  • UI\Executor::onExecute »
  • PHP Manual
  • UI\Executor
  • Остановить исполнитель

UI\Executor::kill

(PHP 7, UI 2.0.0)

UI\Executor::kill — Остановить исполнитель

Описание

public UI\Executor::kill ( void ) : void

Остановит исполнитель, он не будет перезапущен

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Callback-функция выполнения

  • « UI\Executor::kill
  • UI\Executor::setInterval »
  • PHP Manual
  • UI\Executor
  • Callback-функция выполнения

UI\Executor::onExecute

(PHP 7, UI 2.0.0)

UI\Executor::onExecute — Callback-функция выполнения

Описание

abstract protected UI\Executor::onExecute ( void ) : void

Поставит в очередь для выполнения в основном потоке

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Управление интервалом

  • « UI\Executor::onExecute
  • UI\Controls\Tab »
  • PHP Manual
  • UI\Executor
  • Управление интервалом

UI\Executor::setInterval

(PHP 7, UI 2.0.0)

UI\Executor::setInterval — Управление интервалом

Описание

public UI\Executor::setInterval ( int $microseconds ) : bool
public UI\Executor::setInterval ( int $seconds , int $microseconds ) : bool

Установит новый интервал. Интервал 0 приостанавливает выполнение исполнителем до тех пор, пока не будет установлен новый интервал

Список параметров

seconds

microseconds

Возвращаемые значения

Индикатор успешности выполнения


Элемент управления "Таб"

(PHP 7, UI 0.9.9)

Введение

Таб может содержать много выбираемых пользователем страниц элементов управления, у каждой из которой есть заголовок.

Обзор классов

UI\Controls\Tab extends UI\Control {
/* Свойства */
protected $controls ;
/* Методы */
public append ( string $name , UI\Control $control ) : int
public delete ( int $index ) : bool
public hasMargin ( int $page ) : bool
public insertAt ( string $name , int $page , UI\Control $control )
public pages ( void ) : int
public setMargin ( int $page , bool $margin )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Свойства

controls

Содержит элементы управления, не стоит изменять напрямую

Содержание

  • UI\Controls\Tab::append — Добавить страницу
  • UI\Controls\Tab::delete — Удалить страницу
  • UI\Controls\Tab::hasMargin — Определения поля
  • UI\Controls\Tab::insertAt — Вставить страницу
  • UI\Controls\Tab::pages — Количество страниц
  • UI\Controls\Tab::setMargin — Установить поле


Добавить страницу

  • « UI\Controls\Tab
  • UI\Controls\Tab::delete »
  • PHP Manual
  • UI\Controls\Tab
  • Добавить страницу

UI\Controls\Tab::append

(PHP 7, UI 0.9.9)

UI\Controls\Tab::append — Добавить страницу

Описание

public UI\Controls\Tab::append ( string $name , UI\Control $control ) : int

Добавить новую страницу к данному управляющему элементу "Таб"

Список параметров

name

Название новой страницы

control

Управляющий элемент для новой страницы

Возвращаемые значения

Возвращает индекс добавленного элемента управления, может быть значение 0


Удалить страницу

  • « UI\Controls\Tab::append
  • UI\Controls\Tab::hasMargin »
  • PHP Manual
  • UI\Controls\Tab
  • Удалить страницу

UI\Controls\Tab::delete

(PHP 7, UI 0.9.9)

UI\Controls\Tab::delete — Удалить страницу

Описание

public UI\Controls\Tab::delete ( int $index ) : bool

Удалит выбранную страницу из управляющего элемента "Таб"

Список параметров

index

Индекс страницы для удаления

Возвращаемые значения

Индикатор успешности выполнения


Определения поля

  • « UI\Controls\Tab::delete
  • UI\Controls\Tab::insertAt »
  • PHP Manual
  • UI\Controls\Tab
  • Определения поля

UI\Controls\Tab::hasMargin

(PHP 7, UI 0.9.9)

UI\Controls\Tab::hasMargin — Определения поля

Описание

public UI\Controls\Tab::hasMargin ( int $page ) : bool

Определяет, есть ли у заданной страницы поле.

Список параметров

page

Индекс страницы

Возвращаемые значения


Вставить страницу

  • « UI\Controls\Tab::hasMargin
  • UI\Controls\Tab::pages »
  • PHP Manual
  • UI\Controls\Tab
  • Вставить страницу

UI\Controls\Tab::insertAt

(PHP 7, UI 0.9.9)

UI\Controls\Tab::insertAt — Вставить страницу

Описание

public UI\Controls\Tab::insertAt ( string $name , int $page , UI\Control $control )

Вставит новую страницу к управляющему элементу "Таб"

Список параметров

name

Название новой страницы

page

Индекс страницы перед которой вставить данную страницу

control

Управляющий элемент для новой страницы


Количество страниц

  • « UI\Controls\Tab::insertAt
  • UI\Controls\Tab::setMargin »
  • PHP Manual
  • UI\Controls\Tab
  • Количество страниц

UI\Controls\Tab::pages

(PHP 7, UI 0.9.9)

UI\Controls\Tab::pages — Количество страниц

Описание

public UI\Controls\Tab::pages ( void ) : int

Возвратит количество страниц в данном управляющем элементе "Таб"

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество страниц в данном управляющем элементе "Таб"


Установить поле

  • « UI\Controls\Tab::pages
  • UI\Controls\Check »
  • PHP Manual
  • UI\Controls\Tab
  • Установить поле

UI\Controls\Tab::setMargin

(PHP 7, UI 0.9.9)

UI\Controls\Tab::setMargin — Установить поле

Описание

public UI\Controls\Tab::setMargin ( int $page , bool $margin )

Включить или отключить поля на выбранной странице

Список параметров

page

Страница для вставки

margin

Переключатель поля


Элемент управления "Чекбокс"

(PHP 7, UI 0.9.9)

Введение

Чекбокс (Check) представляет собой помеченный кликабельный блок

Обзор классов

UI\Controls\Check extends UI\Control {
/* Конструктор */
public __construct ( string $text )
/* Методы */
public getText ( void ) : string
public isChecked ( void ) : bool
protected onToggle ( void )
public setChecked ( bool $checked )
public setText ( string $text )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\Check::__construct — Создать новый объект Check
  • UI\Controls\Check::getText — Получить текст
  • UI\Controls\Check::isChecked — Определение отметки
  • UI\Controls\Check::onToggle — Функция обратного вызова переключения
  • UI\Controls\Check::setChecked — Установить статус выбранности
  • UI\Controls\Check::setText — Установить текст


Создать новый объект Check

  • « UI\Controls\Check
  • UI\Controls\Check::getText »
  • PHP Manual
  • UI\Controls\Check
  • Создать новый объект Check

UI\Controls\Check::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Check::__construct — Создать новый объект Check

Описание

public UI\Controls\Check::__construct ( string $text )

Создает новый объект Check

Список параметров

text

Текст (метка) для чекбокса


Получить текст

  • « UI\Controls\Check::__construct
  • UI\Controls\Check::isChecked »
  • PHP Manual
  • UI\Controls\Check
  • Получить текст

UI\Controls\Check::getText

(PHP 7, UI 0.9.9)

UI\Controls\Check::getText — Получить текст

Описание

public UI\Controls\Check::getText ( void ) : string

Получает текст (метку) для данного чекбокса

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий текст (метка)


Определение отметки

  • « UI\Controls\Check::getText
  • UI\Controls\Check::onToggle »
  • PHP Manual
  • UI\Controls\Check
  • Определение отметки

UI\Controls\Check::isChecked

(PHP 7, UI 0.9.9)

UI\Controls\Check::isChecked — Определение отметки

Описание

public UI\Controls\Check::isChecked ( void ) : bool

Определит статус выбора данного чекбокса

Список параметров

У этой функции нет параметров.


Функция обратного вызова переключения

  • « UI\Controls\Check::isChecked
  • UI\Controls\Check::setChecked »
  • PHP Manual
  • UI\Controls\Check
  • Функция обратного вызова переключения

UI\Controls\Check::onToggle

(PHP 7, UI 0.9.9)

UI\Controls\Check::onToggle — Функция обратного вызова переключения

Описание

protected UI\Controls\Check::onToggle ( void )

Выполняется при изменении статуса этого чекбокса.

Список параметров

У этой функции нет параметров.


Установить статус выбранности

  • « UI\Controls\Check::onToggle
  • UI\Controls\Check::setText »
  • PHP Manual
  • UI\Controls\Check
  • Установить статус выбранности

UI\Controls\Check::setChecked

(PHP 7, UI 0.9.9)

UI\Controls\Check::setChecked — Установить статус выбранности

Описание

public UI\Controls\Check::setChecked ( bool $checked )

Изменит статус этого чекбокса

Список параметров

checked

Новый статус


Установить текст

  • « UI\Controls\Check::setChecked
  • UI\Controls\Button »
  • PHP Manual
  • UI\Controls\Check
  • Установить текст

UI\Controls\Check::setText

(PHP 7, UI 0.9.9)

UI\Controls\Check::setText — Установить текст

Описание

public UI\Controls\Check::setText ( string $text )

Установит текст (метку) данного чекбокса

Список параметров

text

Новый текст (метка)


Элемент управления "Кнопка"

(PHP 7, UI 0.9.9)

Введение

Представляет собой помеченную кликабельную кнопку

Обзор классов

UI\Controls\Button extends UI\Control {
/* Конструктор */
public __construct ( string $text )
/* Методы */
public getText ( void ) : string
protected onClick ( void )
public setText ( string $text )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\Button::__construct — Создать новый объект Button
  • UI\Controls\Button::getText — Получить текст
  • UI\Controls\Button::onClick — Обработчик клика
  • UI\Controls\Button::setText — Установить текст


Создать новый объект Button

  • « UI\Controls\Button
  • UI\Controls\Button::getText »
  • PHP Manual
  • UI\Controls\Button
  • Создать новый объект Button

UI\Controls\Button::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Button::__construct — Создать новый объект Button

Описание

public UI\Controls\Button::__construct ( string $text )

Создаст новый объект Button

Список параметров

text

Текст (метка) для данной кнопки


Получить текст

  • « UI\Controls\Button::__construct
  • UI\Controls\Button::onClick »
  • PHP Manual
  • UI\Controls\Button
  • Получить текст

UI\Controls\Button::getText

(PHP 7, UI 0.9.9)

UI\Controls\Button::getText — Получить текст

Описание

public UI\Controls\Button::getText ( void ) : string

Получить текст (метку) для данного объекта Button

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий текст (метка)


Обработчик клика

  • « UI\Controls\Button::getText
  • UI\Controls\Button::setText »
  • PHP Manual
  • UI\Controls\Button
  • Обработчик клика

UI\Controls\Button::onClick

(PHP 7, UI 0.9.9)

UI\Controls\Button::onClick — Обработчик клика

Описание

protected UI\Controls\Button::onClick ( void )

Выполняется при нажатии этого объекта Button

Список параметров

У этой функции нет параметров.


Установить текст

  • « UI\Controls\Button::onClick
  • UI\Controls\ColorButton »
  • PHP Manual
  • UI\Controls\Button
  • Установить текст

UI\Controls\Button::setText

(PHP 7, UI 0.9.9)

UI\Controls\Button::setText — Установить текст

Описание

public UI\Controls\Button::setText ( string $text )

Устанавливает текст (метку) для данного объекта Button

Список параметров

text

Новый текст (метка)


Элемент управления "Кнопка с палитрой цветов"

(PHP 7, UI 0.9.9)

Введение

Кнопка с палитрой цветов - это кнопка, которая отображает селектор цвета при нажатии

Обзор классов

UI\Controls\ColorButton extends UI\Control {
/* Методы */
public getColor ( void ) : UI\Color
protected onChange ( void )
public setColor ( UI\Draw\Color $color )
public setColor ( int $color )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\ColorButton::getColor — Получить объект Color
  • UI\Controls\ColorButton::onChange — Обработчик изменения
  • UI\Controls\ColorButton::setColor — Установить объект Color


Получить объект Color

  • « UI\Controls\ColorButton
  • UI\Controls\ColorButton::onChange »
  • PHP Manual
  • UI\Controls\ColorButton
  • Получить объект Color

UI\Controls\ColorButton::getColor

(PHP 7, UI 0.9.9)

UI\Controls\ColorButton::getColor — Получить объект Color

Описание

public UI\Controls\ColorButton::getColor ( void ) : UI\Color

Получить текущий выбранный объект Color

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Обработчик изменения

  • « UI\Controls\ColorButton::getColor
  • UI\Controls\ColorButton::setColor »
  • PHP Manual
  • UI\Controls\ColorButton
  • Обработчик изменения

UI\Controls\ColorButton::onChange

(PHP 7, UI 0.9.9)

UI\Controls\ColorButton::onChange — Обработчик изменения

Описание

protected UI\Controls\ColorButton::onChange ( void )

Выполняется при изменении выбранного объекта Color

Список параметров

У этой функции нет параметров.


Установить объект Color

  • « UI\Controls\ColorButton::onChange
  • UI\Controls\Label »
  • PHP Manual
  • UI\Controls\ColorButton
  • Установить объект Color

UI\Controls\ColorButton::setColor

(PHP 7, UI 0.9.9)

UI\Controls\ColorButton::setColor — Установить объект Color

Описание

public UI\Controls\ColorButton::setColor ( UI\Draw\Color $color )
public UI\Controls\ColorButton::setColor ( int $color )

Устанавливает текущий выбранный объект Color

Список параметров

color

Новый цвет


Элемент управления "Метка"

(PHP 7, UI 0.9.9)

Введение

Метка представляет одну строку текста, предназначенную для идентификации пользователем определенного элемента интерфейса.

Обзор классов

UI\Controls\Label extends UI\Control {
/* Конструктор */
public __construct ( string $text )
/* Методы */
public getText ( void ) : string
public setText ( string $text )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\Label::__construct — Создать новый объект Label
  • UI\Controls\Label::getText — Получить текст
  • UI\Controls\Label::setText — Установить текст


Создать новый объект Label

  • « UI\Controls\Label
  • UI\Controls\Label::getText »
  • PHP Manual
  • UI\Controls\Label
  • Создать новый объект Label

UI\Controls\Label::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Label::__construct — Создать новый объект Label

Описание

public UI\Controls\Label::__construct ( string $text )

Создает новый объект Label

Список параметров

text

Текст для данной метки


Получить текст

  • « UI\Controls\Label::__construct
  • UI\Controls\Label::setText »
  • PHP Manual
  • UI\Controls\Label
  • Получить текст

UI\Controls\Label::getText

(PHP 7, UI 0.9.9)

UI\Controls\Label::getText — Получить текст

Описание

public UI\Controls\Label::getText ( void ) : string

Возвращает текущий текст для данной метки

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Установить текст

  • « UI\Controls\Label::getText
  • UI\Controls\Entry »
  • PHP Manual
  • UI\Controls\Label
  • Установить текст

UI\Controls\Label::setText

(PHP 7, UI 0.9.9)

UI\Controls\Label::setText — Установить текст

Описание

public UI\Controls\Label::setText ( string $text )

Устанавливает текст для данной метки

Список параметров

text

Новый текст


Элемент управления "Ввод"

(PHP 7, UI 0.9.9)

Введение

Ввод (Entry) - элемент управления текстовой записи, подходящий для ввода простого текста, паролей или поисковых запросов.

Обзор классов

UI\Controls\Entry extends UI\Control {
/* Константы */
const integer Normal ;
const integer Password ;
const integer Search ;
/* Конструктор */
public __construct ([ int $type = UI\Controls\Entry::Normal ] )
/* Методы */
public getText ( void ) : string
public isReadOnly ( void ) : bool
protected onChange ( void )
public setReadOnly ( bool $readOnly )
public setText ( string $text )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Предопределенные константы

UI\Controls\Entry::Normal

Обычный однострочный ввод

UI\Controls\Entry::Password

Ввод пароля

UI\Controls\Entry::Search

Ввод поиска

Содержание

  • UI\Controls\Entry::__construct — Создать новый объект Entry
  • UI\Controls\Entry::getText — Получить текст
  • UI\Controls\Entry::isReadOnly — Определить, является ли элемент только для чтения
  • UI\Controls\Entry::onChange — Обработчик изменения
  • UI\Controls\Entry::setReadOnly — Установить "только для чтения"
  • UI\Controls\Entry::setText — Установить текст


Создать новый объект Entry

  • « UI\Controls\Entry
  • UI\Controls\Entry::getText »
  • PHP Manual
  • UI\Controls\Entry
  • Создать новый объект Entry

UI\Controls\Entry::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Entry::__construct — Создать новый объект Entry

Описание

public UI\Controls\Entry::__construct ([ int $type = UI\Controls\Entry::Normal ] )

Создать новый элемент управления "Ввод" заданного типа

Список параметров

type

Entry::Normal, Entry::Password или Entry::Search


Получить текст

  • « UI\Controls\Entry::__construct
  • UI\Controls\Entry::isReadOnly »
  • PHP Manual
  • UI\Controls\Entry
  • Получить текст

UI\Controls\Entry::getText

(PHP 7, UI 0.9.9)

UI\Controls\Entry::getText — Получить текст

Описание

public UI\Controls\Entry::getText ( void ) : string

Возвратит текущий текст из управляющего элемента "Ввод"

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий текст


Определить, является ли элемент только для чтения

  • « UI\Controls\Entry::getText
  • UI\Controls\Entry::onChange »
  • PHP Manual
  • UI\Controls\Entry
  • Определить, является ли элемент только для чтения

UI\Controls\Entry::isReadOnly

(PHP 7, UI 0.9.9)

UI\Controls\Entry::isReadOnly — Определить, является ли элемент только для чтения

Описание

public UI\Controls\Entry::isReadOnly ( void ) : bool

Определяет, является ли управляющий элемент "Ввод" только для чтения

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Обработчик изменения

  • « UI\Controls\Entry::isReadOnly
  • UI\Controls\Entry::setReadOnly »
  • PHP Manual
  • UI\Controls\Entry
  • Обработчик изменения

UI\Controls\Entry::onChange

(PHP 7, UI 0.9.9)

UI\Controls\Entry::onChange — Обработчик изменения

Описание

protected UI\Controls\Entry::onChange ( void )

Выполняется при изменении текста в данном элементе управления "Ввод"

Список параметров

У этой функции нет параметров.


Установить "только для чтения"

  • « UI\Controls\Entry::onChange
  • UI\Controls\Entry::setText »
  • PHP Manual
  • UI\Controls\Entry
  • Установить "только для чтения"

UI\Controls\Entry::setReadOnly

(PHP 7, UI 0.9.9)

UI\Controls\Entry::setReadOnly — Установить "только для чтения"

Описание

public UI\Controls\Entry::setReadOnly ( bool $readOnly )

Включить или отключить только для чтения в данном управляющем элементе "Ввод"

Список параметров

readOnly


Установить текст

  • « UI\Controls\Entry::setReadOnly
  • UI\Controls\MultilineEntry »
  • PHP Manual
  • UI\Controls\Entry
  • Установить текст

UI\Controls\Entry::setText

(PHP 7, UI 0.9.9)

UI\Controls\Entry::setText — Установить текст

Описание

public UI\Controls\Entry::setText ( string $text )

Устанавливает текст для данного управляющего элемента "Ввод"

Список параметров

text

Новый текст


Элемент управления "Многострочный ввод"

(PHP 7, UI 0.9.9)

Введение

Многострочный ввод - это элемент управления текстовой записи, способный хранить несколько строк текста, с переносом строк или без него.

Обзор классов

UI\Controls\MultilineEntry extends UI\Control {
/* Константы */
const integer Wrap ;
const integer NoWrap ;
/* Конструктор */
public __construct ([ int $type ] )
/* Методы */
public append ( string $text )
public getText ( void ) : string
public isReadOnly ( void ) : bool
protected onChange ( void )
public setReadOnly ( bool $readOnly )
public setText ( string $text )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Предопределенные константы

UI\Controls\MultilineEntry::Wrap

Разрешить перенос строк

UI\Controls\MultilineEntry::NoWrap

Не разрешать перенос строк

Содержание

  • UI\Controls\MultilineEntry::append — Добавить текст
  • UI\Controls\MultilineEntry::__construct — Создать новый объект "Многострочный ввод"
  • UI\Controls\MultilineEntry::getText — Получить текст
  • UI\Controls\MultilineEntry::isReadOnly — Определение "только для чтения"
  • UI\Controls\MultilineEntry::onChange — Обработчик изменения
  • UI\Controls\MultilineEntry::setReadOnly — Установить "только для чтения"
  • UI\Controls\MultilineEntry::setText — Установить текст


Добавить текст

  • « UI\Controls\MultilineEntry
  • UI\Controls\MultilineEntry::__construct »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Добавить текст

UI\Controls\MultilineEntry::append

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::append — Добавить текст

Описание

public UI\Controls\MultilineEntry::append ( string $text )

Добавляет заданный текст к тексту в многострочном элементе управления "Ввод"

Список параметров

text

Текст для добавления


Создать новый объект "Многострочный ввод"

  • « UI\Controls\MultilineEntry::append
  • UI\Controls\MultilineEntry::getText »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Создать новый объект "Многострочный ввод"

UI\Controls\MultilineEntry::__construct

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::__construct — Создать новый объект "Многострочный ввод"

Описание

public UI\Controls\MultilineEntry::__construct ([ int $type ] )

Создает новый объект управляющего элемента "Многострочный ввод" заданного типа

Список параметров

type

MultilineEntry::Wrap или MultilineEntry::NoWrap


Получить текст

  • « UI\Controls\MultilineEntry::__construct
  • UI\Controls\MultilineEntry::isReadOnly »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Получить текст

UI\Controls\MultilineEntry::getText

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::getText — Получить текст

Описание

public UI\Controls\MultilineEntry::getText ( void ) : string

Возвращает текст в данном управляющем элементе "Многострочный ввод"

Список параметров

У этой функции нет параметров.


Определение "только для чтения"

  • « UI\Controls\MultilineEntry::getText
  • UI\Controls\MultilineEntry::onChange »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Определение "только для чтения"

UI\Controls\MultilineEntry::isReadOnly

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::isReadOnly — Определение "только для чтения"

Описание

public UI\Controls\MultilineEntry::isReadOnly ( void ) : bool

Определяет, является ли элемент управления "Многострочный ввод" только для чтения

Список параметров

У этой функции нет параметров.


Обработчик изменения

  • « UI\Controls\MultilineEntry::isReadOnly
  • UI\Controls\MultilineEntry::setReadOnly »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Обработчик изменения

UI\Controls\MultilineEntry::onChange

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::onChange — Обработчик изменения

Описание

protected UI\Controls\MultilineEntry::onChange ( void )

Выполняется при изменении текста в данном элементе управления "Многострочный ввод"

Список параметров

У этой функции нет параметров.


Установить "только для чтения"

  • « UI\Controls\MultilineEntry::onChange
  • UI\Controls\MultilineEntry::setText »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Установить "только для чтения"

UI\Controls\MultilineEntry::setReadOnly

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::setReadOnly — Установить "только для чтения"

Описание

public UI\Controls\MultilineEntry::setReadOnly ( bool $readOnly )

Включить или отключить только для чтения в данном управляющем элементе "Многострочный ввод"

Список параметров

readOnly


Установить текст

  • « UI\Controls\MultilineEntry::setReadOnly
  • UI\Controls\Spin »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Установить текст

UI\Controls\MultilineEntry::setText

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::setText — Установить текст

Описание

public UI\Controls\MultilineEntry::setText ( string $text )

Устанавливает текст для данного управляющего элемента "Многострочный ввод"

Список параметров

text

Новый текст


Элемент управления "Спин"

(PHP 7, UI 0.9.9)

Введение

Блок "Спин" представляет текстовое поле с элементом управления "вверх", который изменяет целочисленное значение в поле, в пределах заданного диапазона

Обзор классов

UI\Controls\Spin extends UI\Control {
/* Конструктор */
public __construct ( int $min , int $max )
/* Методы */
public getValue ( void ) : int
protected onChange ( void )
public setValue ( int $value )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\Spin::__construct — Создает новый объект Spin
  • UI\Controls\Spin::getValue — Получить значение
  • UI\Controls\Spin::onChange — Обработчик изменения
  • UI\Controls\Spin::setValue — Установить значение


Создает новый объект Spin

  • « UI\Controls\Spin
  • UI\Controls\Spin::getValue »
  • PHP Manual
  • UI\Controls\Spin
  • Создает новый объект Spin

UI\Controls\Spin::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Spin::__construct — Создает новый объект Spin

Описание

public UI\Controls\Spin::__construct ( int $min , int $max )

Создает новый объект Spin с заданным диапазоном

Список параметров

min

Минимальное разрешенное значение

max

Максимальное разрешенное значение


Получить значение

  • « UI\Controls\Spin::__construct
  • UI\Controls\Spin::onChange »
  • PHP Manual
  • UI\Controls\Spin
  • Получить значение

UI\Controls\Spin::getValue

(PHP 7, UI 0.9.9)

UI\Controls\Spin::getValue — Получить значение

Описание

public UI\Controls\Spin::getValue ( void ) : int

Получить значение в данном элементе управления "Спин"

Список параметров

У этой функции нет параметров.


Обработчик изменения

  • « UI\Controls\Spin::getValue
  • UI\Controls\Spin::setValue »
  • PHP Manual
  • UI\Controls\Spin
  • Обработчик изменения

UI\Controls\Spin::onChange

(PHP 7, UI 0.9.9)

UI\Controls\Spin::onChange — Обработчик изменения

Описание

protected UI\Controls\Spin::onChange ( void )

Выполняется при изменении значения в данном управляющем элементе "Спин"

Список параметров

У этой функции нет параметров.


Установить значение

  • « UI\Controls\Spin::onChange
  • UI\Controls\Slider »
  • PHP Manual
  • UI\Controls\Spin
  • Установить значение

UI\Controls\Spin::setValue

(PHP 7, UI 0.9.9)

UI\Controls\Spin::setValue — Установить значение

Описание

public UI\Controls\Spin::setValue ( int $value )

Установить значение в данном элементе управления "Спин"

Список параметров

value

Новое значение


Элемент управления "Слайдер"

(PHP 7, UI 0.9.9)

Введение

Слайдер - это элемент управления, представляющий диапазон и текущее значение в нем. Скользящий элемент управления (иногда называемый «большим пальцем») отражает значение и может быть отрегулирован в пределах диапазона.

Обзор классов

UI\Controls\Slider extends UI\Control {
/* Конструктор */
public __construct ( int $min , int $max )
/* Методы */
public getValue ( void ) : int
protected onChange ( void )
public setValue ( int $value )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\Slider::__construct — Создает новый объект Slider
  • UI\Controls\Slider::getValue — Получить значение
  • UI\Controls\Slider::onChange — Обработчик изменения
  • UI\Controls\Slider::setValue — Установить значение


Создает новый объект Slider

  • « UI\Controls\Slider
  • UI\Controls\Slider::getValue »
  • PHP Manual
  • UI\Controls\Slider
  • Создает новый объект Slider

UI\Controls\Slider::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Slider::__construct — Создает новый объект Slider

Описание

public UI\Controls\Slider::__construct ( int $min , int $max )

Создать новый объект Slider с заданным диапазоном

Список параметров

min

Минимальное разрешенное значение

max

Максимальное разрешенное значение


Получить значение

  • « UI\Controls\Slider::__construct
  • UI\Controls\Slider::onChange »
  • PHP Manual
  • UI\Controls\Slider
  • Получить значение

UI\Controls\Slider::getValue

(PHP 7, UI 0.9.9)

UI\Controls\Slider::getValue — Получить значение

Описание

public UI\Controls\Slider::getValue ( void ) : int

Получить значение из данного слайдера

Список параметров

У этой функции нет параметров.


Обработчик изменения

  • « UI\Controls\Slider::getValue
  • UI\Controls\Slider::setValue »
  • PHP Manual
  • UI\Controls\Slider
  • Обработчик изменения

UI\Controls\Slider::onChange

(PHP 7, UI 0.9.9)

UI\Controls\Slider::onChange — Обработчик изменения

Описание

protected UI\Controls\Slider::onChange ( void )

Выполняется при изменении значения в данном слайдере

Список параметров

У этой функции нет параметров.


Установить значение

  • « UI\Controls\Slider::onChange
  • UI\Controls\Progress »
  • PHP Manual
  • UI\Controls\Slider
  • Установить значение

UI\Controls\Slider::setValue

(PHP 7, UI 0.9.9)

UI\Controls\Slider::setValue — Установить значение

Описание

public UI\Controls\Slider::setValue ( int $value )

Установит значение для данного слайдера

Список параметров

value

Новое значение


Элемент управления "Ход выполнения"

(PHP 7, UI 0.9.9)

Введение

Элемент управления "Ход выполнения" похож на знакомый индикатор выполнения: Он представляет собой индикатор выполнения в процентах с допустимым диапазоном от 0 до 100 (включительно).

Обзор классов

UI\Controls\Progress extends UI\Control {
/* Методы */
public getValue ( void ) : int
public setValue ( int $value )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\Progress::getValue — Получить значение
  • UI\Controls\Progress::setValue — Установить значение


Получить значение

  • « UI\Controls\Progress
  • UI\Controls\Progress::setValue »
  • PHP Manual
  • UI\Controls\Progress
  • Получить значение

UI\Controls\Progress::getValue

(PHP 7, UI 0.9.9)

UI\Controls\Progress::getValue — Получить значение

Описание

public UI\Controls\Progress::getValue ( void ) : int

Получить текущее значение данного индикатора выполнения

Список параметров

У этой функции нет параметров.


Установить значение

  • « UI\Controls\Progress::getValue
  • UI\Controls\Separator »
  • PHP Manual
  • UI\Controls\Progress
  • Установить значение

UI\Controls\Progress::setValue

(PHP 7, UI 0.9.9)

UI\Controls\Progress::setValue — Установить значение

Описание

public UI\Controls\Progress::setValue ( int $value )

Установить значение данному индикатору выполнения

Список параметров

value

Целое число между 0 и 100 (включительно)


Элемент управления "Разделитель"

(PHP 7, UI 0.9.9)

Введение

Разделитель представляет элемент управления разделителя без каких-либо функций.

Обзор классов

UI\Controls\Separator extends UI\Control {
/* Константы */
const integer Horizontal ;
const integer Vertical ;
/* Конструктор */
public __construct ([ int $type = UI\Controls\Separator::Horizontal ] )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Предопределенные константы

UI\Controls\Separator::Horizontal

Горизонтальный разделитель

UI\Controls\Separator::Vertical

Вертикальный разделитель

Содержание

  • UI\Controls\Separator::__construct — Создать новый объект Separator


Создать новый объект Separator

  • « UI\Controls\Separator
  • UI\Controls\Combo »
  • PHP Manual
  • UI\Controls\Separator
  • Создать новый объект Separator

UI\Controls\Separator::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Separator::__construct — Создать новый объект Separator

Описание

public UI\Controls\Separator::__construct ([ int $type = UI\Controls\Separator::Horizontal ] )

Создаст новый объект Separator заданного типа

Список параметров

type

Separator::Horizonal или Separator::Vertical


Элемент управления "Комбо"

(PHP 7, UI 0.9.9)

Введение

Элемент управления "Комбо" представляет список опций, например, похожий на HTML-элемент.

Обзор классов

UI\Controls\Combo extends UI\Control {
/* Методы */
public append ( string $text )
public getSelected ( void ) : int
protected onSelected ( void )
public setSelected ( int $index )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\Combo::append — Добавить опцию
  • UI\Controls\Combo::getSelected — Получить выбранную опцию
  • UI\Controls\Combo::onSelected — Обработчик выбранной опции
  • UI\Controls\Combo::setSelected — Устанавливает выбранную опцию


Добавить опцию

  • « UI\Controls\Combo
  • UI\Controls\Combo::getSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Добавить опцию

UI\Controls\Combo::append

(PHP 7, UI 0.9.9)

UI\Controls\Combo::append — Добавить опцию

Описание

public UI\Controls\Combo::append ( string $text )

Добавить опцию к данному элементу "Комбо"

Список параметров

text

Текст для новой опции


Получить выбранную опцию

  • « UI\Controls\Combo::append
  • UI\Controls\Combo::onSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Получить выбранную опцию

UI\Controls\Combo::getSelected

(PHP 7, UI 0.9.9)

UI\Controls\Combo::getSelected — Получить выбранную опцию

Описание

public UI\Controls\Combo::getSelected ( void ) : int

Получает индекс опции, выбранной в этом элементе "Комбо"

Список параметров

У этой функции нет параметров.


Обработчик выбранной опции

  • « UI\Controls\Combo::getSelected
  • UI\Controls\Combo::setSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Обработчик выбранной опции

UI\Controls\Combo::onSelected

(PHP 7, UI 0.9.9)

UI\Controls\Combo::onSelected — Обработчик выбранной опции

Описание

protected UI\Controls\Combo::onSelected ( void )

Выполняется, если в этом элементе "Комбо" выбрана опция

Список параметров

У этой функции нет параметров.


Устанавливает выбранную опцию

  • « UI\Controls\Combo::onSelected
  • UI\Controls\EditableCombo »
  • PHP Manual
  • UI\Controls\Combo
  • Устанавливает выбранную опцию

UI\Controls\Combo::setSelected

(PHP 7, UI 0.9.9)

UI\Controls\Combo::setSelected — Устанавливает выбранную опцию

Описание

public UI\Controls\Combo::setSelected ( int $index )

Установит выбранную в данный момент опцию в данном элементе "Комбо"

Список параметров

index

Индекс опции для выбора


Редактируемый элемент управления "Комбо"

(PHP 7, UI 0.9.9)

Введение

Редактируемый элемент управления "Комбо" позволяет пользователю вводить произвольные опции

Обзор классов

UI\Controls\EditableCombo extends UI\Control {
/* Методы */
public append ( string $text )
public getText ( void ) : string
protected onChange ( void )
public setText ( string $text )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\EditableCombo::append — Добавить опцию
  • UI\Controls\EditableCombo::getText — Получить текст
  • UI\Controls\EditableCombo::onChange — Обработчик изменения
  • UI\Controls\EditableCombo::setText — Установить текст


Добавить опцию

  • « UI\Controls\EditableCombo
  • UI\Controls\EditableCombo::getText »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Добавить опцию

UI\Controls\EditableCombo::append

(PHP 7, UI 0.9.9)

UI\Controls\EditableCombo::append — Добавить опцию

Описание

public UI\Controls\EditableCombo::append ( string $text )

Добавить опцию к данному редактируемому элементу "Комбо"

Список параметров

text

Текст для новой опции


Получить текст

  • « UI\Controls\EditableCombo::append
  • UI\Controls\EditableCombo::onChange »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Получить текст

UI\Controls\EditableCombo::getText

(PHP 7, UI 0.9.9)

UI\Controls\EditableCombo::getText — Получить текст

Описание

public UI\Controls\EditableCombo::getText ( void ) : string

Получает значение выбранной в данный момент опции в данном редактируемом элементе "Комбо"

Список параметров

У этой функции нет параметров.


Обработчик изменения

  • « UI\Controls\EditableCombo::getText
  • UI\Controls\EditableCombo::setText »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Обработчик изменения

UI\Controls\EditableCombo::onChange

(PHP 7, UI 0.9.9)

UI\Controls\EditableCombo::onChange — Обработчик изменения

Описание

protected UI\Controls\EditableCombo::onChange ( void )

Выполняется, когда изменяется значение данного редактируемого элемента "Комбо"

Список параметров

У этой функции нет параметров.


Установить текст

  • « UI\Controls\EditableCombo::onChange
  • UI\Controls\Radio »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Установить текст

UI\Controls\EditableCombo::setText

(PHP 7, UI 0.9.9)

UI\Controls\EditableCombo::setText — Установить текст

Описание

public UI\Controls\EditableCombo::setText ( string $text )

Установит текст выбранной в данный момент опции в данном редактируемом элементе "Комбо"

Список параметров

text

Новый текст


Элемент управления "Радио"

(PHP 7, UI 0.9.9)

Введение

Радио похож на радиокнопку из HTML

Обзор классов

UI\Controls\Radio extends UI\Control {
/* Методы */
public append ( string $text )
public getSelected ( void ) : int
protected onSelected ( void )
public setSelected ( int $index )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\Radio::append — Добавляет вариант
  • UI\Controls\Radio::getSelected — Получить выбранный вариант
  • UI\Controls\Radio::onSelected — Обработчик выбора
  • UI\Controls\Radio::setSelected — Установить выбранный вариант


Добавляет вариант

  • « UI\Controls\Radio
  • UI\Controls\Radio::getSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Добавляет вариант

UI\Controls\Radio::append

(PHP 7, UI 0.9.9)

UI\Controls\Radio::append — Добавляет вариант

Описание

public UI\Controls\Radio::append ( string $text )

Добавляет новый вариант для радиокнопки

Список параметров

text

Текст (метка) для данного варианта


Получить выбранный вариант

  • « UI\Controls\Radio::append
  • UI\Controls\Radio::onSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Получить выбранный вариант

UI\Controls\Radio::getSelected

(PHP 7, UI 0.9.9)

UI\Controls\Radio::getSelected — Получить выбранный вариант

Описание

public UI\Controls\Radio::getSelected ( void ) : int

Получает индекс выбранного в данный момент варианта в данной радиокнопке

Список параметров

У этой функции нет параметров.


Обработчик выбора

  • « UI\Controls\Radio::getSelected
  • UI\Controls\Radio::setSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Обработчик выбора

UI\Controls\Radio::onSelected

(PHP 7, UI 0.9.9)

UI\Controls\Radio::onSelected — Обработчик выбора

Описание

protected UI\Controls\Radio::onSelected ( void )

Выполняется, когда выбирается вариант в данной радиокнопке

Список параметров

У этой функции нет параметров.


Установить выбранный вариант

  • « UI\Controls\Radio::onSelected
  • UI\Controls\Picker »
  • PHP Manual
  • UI\Controls\Radio
  • Установить выбранный вариант

UI\Controls\Radio::setSelected

(PHP 7, UI 0.9.9)

UI\Controls\Radio::setSelected — Установить выбранный вариант

Описание

public UI\Controls\Radio::setSelected ( int $index )

Включить выбранный в данный момент вариант

Список параметров

index

Индекс варианта для выбора


Элемент управления "Селектор"

(PHP 7, UI 0.9.9)

Введение

Селектор представляет кнопку, которая при нажатии открывает нативный интерфейс селектора даты/времени/даты и времени.

Обзор классов

UI\Controls\Picker extends UI\Control {
/* Константы */
const integer Date ;
const integer Time ;
const integer DateTime ;
/* Конструктор */
public __construct ([ int $type = UI\Controls\Picker::Date ] )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Предопределенные константы

UI\Controls\Picker::Date

Селектор даты

UI\Controls\Picker::Time

Селектор времени

UI\Controls\Picker::DateTime

Селектор даты и времени

Содержание

  • UI\Controls\Picker::__construct — Создает новый объект Picker


Создает новый объект Picker

  • « UI\Controls\Picker
  • UI\Controls\Form »
  • PHP Manual
  • UI\Controls\Picker
  • Создает новый объект Picker

UI\Controls\Picker::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Picker::__construct — Создает новый объект Picker

Описание

public UI\Controls\Picker::__construct ([ int $type = UI\Controls\Picker::Date ] )

Создать новый объект Picker заданного типа

Список параметров

type

Picker::Date, Picker::Time или Picker::DateTime


Элемент управления "Форма" (расположение)

(PHP 7, UI 0.9.9)

Введение

Форма - это элемент управления, позволяющий размещать другие элементы управления в макете (форме).

Обзор классов

UI\Controls\Form extends UI\Control {
/* Свойства */
protected $controls ;
/* Методы */
public append ( string $label , UI\Control $control [, bool $stretchy = FALSE ] ) : int
public delete ( int $index ) : bool
public isPadded ( void ) : bool
public setPadded ( bool $padded )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Свойства

controls

Содержит элементы управления, не стоит изменять напрямую

Содержание

  • UI\Controls\Form::append — Добавить управляющий элемент
  • UI\Controls\Form::delete — Удалить элемент управления
  • UI\Controls\Form::isPadded — Определение заполнения
  • UI\Controls\Form::setPadded — Установить заполнение


Добавить управляющий элемент

  • « UI\Controls\Form
  • UI\Controls\Form::delete »
  • PHP Manual
  • UI\Controls\Form
  • Добавить управляющий элемент

UI\Controls\Form::append

(PHP 7, UI 0.9.9)

UI\Controls\Form::append — Добавить управляющий элемент

Описание

public UI\Controls\Form::append ( string $label , UI\Control $control [, bool $stretchy = FALSE ] ) : int

Добавляет элемент управления к форме и устанавливает метку

Список параметров

label

Текст для метки

control

Управляющий элемент

stretchy

Должно быть значение true, чтобы растянуть элемент управления

Возвращаемые значения

Возвращает индекс добавленного элемента управления, может быть значение 0


Удалить элемент управления

  • « UI\Controls\Form::append
  • UI\Controls\Form::isPadded »
  • PHP Manual
  • UI\Controls\Form
  • Удалить элемент управления

UI\Controls\Form::delete

(PHP 7, UI 0.9.9)

UI\Controls\Form::delete — Удалить элемент управления

Описание

public UI\Controls\Form::delete ( int $index ) : bool

Удаляет управляющий элемент заданного индекса в данной форме

Список параметров

index

Индекс элемента управления для удаления

Возвращаемые значения

Индикатор успешности выполнения


Определение заполнения

  • « UI\Controls\Form::delete
  • UI\Controls\Form::setPadded »
  • PHP Manual
  • UI\Controls\Form
  • Определение заполнения

UI\Controls\Form::isPadded

(PHP 7, UI 0.9.9)

UI\Controls\Form::isPadded — Определение заполнения

Описание

public UI\Controls\Form::isPadded ( void ) : bool

Определяет, включено ли заполнение в данной форме

Список параметров

У этой функции нет параметров.


Установить заполнение

  • « UI\Controls\Form::isPadded
  • UI\Controls\Grid »
  • PHP Manual
  • UI\Controls\Form
  • Установить заполнение

UI\Controls\Form::setPadded

(PHP 7, UI 0.9.9)

UI\Controls\Form::setPadded — Установить заполнение

Описание

public UI\Controls\Form::setPadded ( bool $padded )

Определяет, включено или выключено заполнение в данной форме

Список параметров

padded


Элемент управления "Сетка" (размещение)

(PHP 7, UI 0.9.9)

Введение

Сетка - это элемент управления, позволяющий размещать дочерние элементы в сетке

Обзор классов

UI\Controls\Grid extends UI\Control {
/* Константы */
const integer Fill ;
const integer Start ;
const integer Center ;
const integer End ;
const integer Leading ;
const integer Top ;
const integer Trailing ;
const integer Bottom ;
/* Свойства */
protected $controls ;
/* Методы */
public append ( UI\Control $control , int $left , int $top , int $xspan , int $yspan , bool $hexpand , int $halign , bool $vexpand , int $valign )
public isPadded ( void ) : bool
public setPadded ( bool $padding )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Предопределенные константы

UI\Controls\Grid::Fill

UI\Controls\Grid::Start

UI\Controls\Grid::Center

UI\Controls\Grid::End

UI\Controls\Grid::Leading

UI\Controls\Grid::Top

UI\Controls\Grid::Trailing

UI\Controls\Grid::Bottom

Свойства

controls

Содержит элементы управления, не стоит изменять напрямую

Содержание

  • UI\Controls\Grid::append — Добавить управляющий элемент
  • UI\Controls\Grid::isPadded — Определение заполнения
  • UI\Controls\Grid::setPadded — Установить заполнение


Добавить управляющий элемент

  • « UI\Controls\Grid
  • UI\Controls\Grid::isPadded »
  • PHP Manual
  • UI\Controls\Grid
  • Добавить управляющий элемент

UI\Controls\Grid::append

(PHP 7, UI 0.9.9)

UI\Controls\Grid::append — Добавить управляющий элемент

Описание

public UI\Controls\Grid::append ( UI\Control $control , int $left , int $top , int $xspan , int $yspan , bool $hexpand , int $halign , bool $vexpand , int $valign )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

control

Элемент управления для добавления

left

top

xspan

yspan

hexpand

halign

vexpand

valign

Возвращаемые значения


Определение заполнения

  • « UI\Controls\Grid::append
  • UI\Controls\Grid::setPadded »
  • PHP Manual
  • UI\Controls\Grid
  • Определение заполнения

UI\Controls\Grid::isPadded

(PHP 7, UI 0.9.9)

UI\Controls\Grid::isPadded — Определение заполнения

Описание

public UI\Controls\Grid::isPadded ( void ) : bool

Определяет, включено ли заполнение в данной сетке

Список параметров

У этой функции нет параметров.


Установить заполнение

  • « UI\Controls\Grid::isPadded
  • UI\Controls\Group »
  • PHP Manual
  • UI\Controls\Grid
  • Установить заполнение

UI\Controls\Grid::setPadded

(PHP 7, UI 0.9.9)

UI\Controls\Grid::setPadded — Установить заполнение

Описание

public UI\Controls\Grid::setPadded ( bool $padding )

Определяет, включено или выключено заполнение в данной сетке

Список параметров

padding


Элемент управления "Группа" (размещение)

(PHP 7, UI 0.9.9)

Введение

Группа представляет контейнер для дочерних элементов

Обзор классов

UI\Controls\Group extends UI\Control {
/* Свойства */
protected $controls ;
/* Конструктор */
public __construct ( string $title )
/* Методы */
public append ( UI\Control $control )
public getTitle ( void ) : string
public hasMargin ( void ) : bool
public setMargin ( bool $margin )
public setTitle ( string $title )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Свойства

controls

Содержит элементы управления, не стоит изменять напрямую

Содержание

  • UI\Controls\Group::append — Добавить управляющий элемент
  • UI\Controls\Group::__construct — Создать новый объект Group
  • UI\Controls\Group::getTitle — Получить заголовок
  • UI\Controls\Group::hasMargin — Определение поля
  • UI\Controls\Group::setMargin — Установить поле
  • UI\Controls\Group::setTitle — Установить заголовок


Добавить управляющий элемент

  • « UI\Controls\Group
  • UI\Controls\Group::__construct »
  • PHP Manual
  • UI\Controls\Group
  • Добавить управляющий элемент

UI\Controls\Group::append

(Информация о версии неизвестна, возможно, только в Git)

UI\Controls\Group::append — Добавить управляющий элемент

Описание

public UI\Controls\Group::append ( UI\Control $control )

Добавляет элемент управления к группе

Список параметров

control

Управляющий элемент для добавления


Создать новый объект Group

  • « UI\Controls\Group::append
  • UI\Controls\Group::getTitle »
  • PHP Manual
  • UI\Controls\Group
  • Создать новый объект Group

UI\Controls\Group::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Group::__construct — Создать новый объект Group

Описание

public UI\Controls\Group::__construct ( string $title )

Создает новый объект Group с заданным заголовком

Список параметров

title

Текст заголовка метки


Получить заголовок

  • « UI\Controls\Group::__construct
  • UI\Controls\Group::hasMargin »
  • PHP Manual
  • UI\Controls\Group
  • Получить заголовок

UI\Controls\Group::getTitle

(PHP 7, UI 0.9.9)

UI\Controls\Group::getTitle — Получить заголовок

Описание

public UI\Controls\Group::getTitle ( void ) : string

Возвращает текущий заголовок для данной группы

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий заголовок


Определение поля

  • « UI\Controls\Group::getTitle
  • UI\Controls\Group::setMargin »
  • PHP Manual
  • UI\Controls\Group
  • Определение поля

UI\Controls\Group::hasMargin

(PHP 7, UI 0.9.9)

UI\Controls\Group::hasMargin — Определение поля

Описание

public UI\Controls\Group::hasMargin ( void ) : bool

Определяет, имеет ли данная группа поле (margin)

Список параметров

У этой функции нет параметров.


Установить поле

  • « UI\Controls\Group::hasMargin
  • UI\Controls\Group::setTitle »
  • PHP Manual
  • UI\Controls\Group
  • Установить поле

UI\Controls\Group::setMargin

(PHP 7, UI 0.9.9)

UI\Controls\Group::setMargin — Установить поле

Описание

public UI\Controls\Group::setMargin ( bool $margin )

Включить или отключить поля для данной группы

Список параметров

margin


Установить заголовок

  • « UI\Controls\Group::setMargin
  • UI\Controls\Box »
  • PHP Manual
  • UI\Controls\Group
  • Установить заголовок

UI\Controls\Group::setTitle

(PHP 7, UI 0.9.9)

UI\Controls\Group::setTitle — Установить заголовок

Описание

public UI\Controls\Group::setTitle ( string $title )

Установить заголовок для заданной группы

Список параметров

title

Текст для нового заголовка


Блок управления (размещение)

(PHP 7, UI 0.9.9)

Введение

Блок (Box) позволяет расположить другие элементы управления

Обзор классов

UI\Controls\Box extends UI\Control {
/* Константы */
const integer Vertical ;
const integer Horizontal ;
/* Свойства */
protected $controls ;
/* Конструктор */
public __construct ([ int $orientation = UI\Controls\Box::Horizontal ] )
/* Методы */
public append ( Control $control [, bool $stretchy = FALSE ] ) : int
public delete ( int $index ) : bool
public getOrientation ( void ) : int
public isPadded ( void ) : bool
public setPadded ( bool $padded )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control::getParent ( void ) : UI\Control
public UI\Control::getTopLevel ( void ) : int
public UI\Control::hide ( void )
public UI\Control::isEnabled ( void ) : bool
public UI\Control::isVisible ( void ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Свойства

controls

Содержит элементы управления, не следует использовать напрямую

Предопределенные константы

UI\Controls\Box::Vertical

UI\Controls\Box::Horizontal

Содержание

  • UI\Controls\Box::append — Добавить управляющий элемент
  • UI\Controls\Box::__construct — Создать новый объект Box
  • UI\Controls\Box::delete — Удалить управляющий элемент
  • UI\Controls\Box::getOrientation — Получить ориентацию
  • UI\Controls\Box::isPadded — Определение заполнения
  • UI\Controls\Box::setPadded — Установить заполнение


Добавить управляющий элемент

  • « UI\Controls\Box
  • UI\Controls\Box::__construct »
  • PHP Manual
  • UI\Controls\Box
  • Добавить управляющий элемент

UI\Controls\Box::append

(PHP 7, UI 0.9.9)

UI\Controls\Box::append — Добавить управляющий элемент

Описание

public UI\Controls\Box::append ( Control $control [, bool $stretchy = FALSE ] ) : int

Добавит заданный управляющий элемент к этому блоку

Список параметров

control

Добавляемый элемент управления

stretchy

Установить значение true, чтобы растянуть управляющий элемент

Возвращаемые значения

Возвратит индекс добавляемого элемента управления, может быть значением 0


Создать новый объект Box

  • « UI\Controls\Box::append
  • UI\Controls\Box::delete »
  • PHP Manual
  • UI\Controls\Box
  • Создать новый объект Box

UI\Controls\Box::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Box::__construct — Создать новый объект Box

Описание

public UI\Controls\Box::__construct ([ int $orientation = UI\Controls\Box::Horizontal ] )

Создаст новый блок

Список параметров

orientation

Box::Horizontal или Box::Vertical


Удалить управляющий элемент

  • « UI\Controls\Box::__construct
  • UI\Controls\Box::getOrientation »
  • PHP Manual
  • UI\Controls\Box
  • Удалить управляющий элемент

UI\Controls\Box::delete

(PHP 7, UI 0.9.9)

UI\Controls\Box::delete — Удалить управляющий элемент

Описание

public UI\Controls\Box::delete ( int $index ) : bool

Удалит элемент управления заданного индекса из данного блока

Список параметров

index

Индекс элемента управления для удаления

Возвращаемые значения

Показатель успешности выполнения


Получить ориентацию

  • « UI\Controls\Box::delete
  • UI\Controls\Box::isPadded »
  • PHP Manual
  • UI\Controls\Box
  • Получить ориентацию

UI\Controls\Box::getOrientation

(PHP 7, UI 0.9.9)

UI\Controls\Box::getOrientation — Получить ориентацию

Описание

public UI\Controls\Box::getOrientation ( void ) : int

Получает ориентацию данного блока

Список параметров

У этой функции нет параметров.


Определение заполнения

  • « UI\Controls\Box::getOrientation
  • UI\Controls\Box::setPadded »
  • PHP Manual
  • UI\Controls\Box
  • Определение заполнения

UI\Controls\Box::isPadded

(PHP 7, UI 0.9.9)

UI\Controls\Box::isPadded — Определение заполнения

Описание

public UI\Controls\Box::isPadded ( void ) : bool

Определяет, включено ли заполнение в этом блоке

Список параметров

У этой функции нет параметров.


Установить заполнение

  • « UI\Controls\Box::isPadded
  • UI\Draw\Pen »
  • PHP Manual
  • UI\Controls\Box
  • Установить заполнение

UI\Controls\Box::setPadded

(PHP 7, UI 0.9.9)

UI\Controls\Box::setPadded — Установить заполнение

Описание

public UI\Controls\Box::setPadded ( bool $padded )

Определяет, включено или выключено заполнение в этом блоке

Список параметров

padded


Рисование с помощью "Перо"

(PHP 7, UI 0.9.9)

Введение

Перо передается обработчику события "рисованию области" (Area Draw), он используется для обрезания, заполнения, обводки и записи в "пути рисования" (Draw Paths).

Обзор классов

final UI\Draw\Pen {
/* Методы */
public clip ( UI\Draw\Path $path )
public fill ( UI\Draw\Path $path , UI\Draw\Brush $with )
public fill ( UI\Draw\Path $path , UI\Draw\Color $with )
public fill ( UI\Draw\Path $path , int $with )
public restore ( void )
public save ( void )
public stroke ( UI\Draw\Path $path , UI\Draw\Brush $with , UI\Draw\Stroke $stroke )
public stroke ( UI\Draw\Path $path , UI\Draw\Color $with , UI\Draw\Stroke $stroke )
public stroke ( UI\Draw\Path $path , int $with , UI\Draw\Stroke $stroke )
public transform ( UI\Draw\Matrix $matrix )
public write ( UI\Point $point , UI\Draw\Text\Layout $layout )
}

Содержание

  • UI\Draw\Pen::clip — Обрезать путь
  • UI\Draw\Pen::fill — Залить путь
  • UI\Draw\Pen::restore — Восстановить
  • UI\Draw\Pen::save — Сохранить
  • UI\Draw\Pen::stroke — Обвести путь
  • UI\Draw\Pen::transform — Преобразовать матрицу
  • UI\Draw\Pen::write — Нарисовать текст в точке


Обрезать путь

  • « UI\Draw\Pen
  • UI\Draw\Pen::fill »
  • PHP Manual
  • UI\Draw\Pen
  • Обрезать путь

UI\Draw\Pen::clip

(PHP 7, UI 0.9.9)

UI\Draw\Pen::clip — Обрезать путь

Описание

public UI\Draw\Pen::clip ( UI\Draw\Path $path )

Обрежет заданный путь

Список параметров

path

Путь для обрезки


Залить путь

  • « UI\Draw\Pen::clip
  • UI\Draw\Pen::restore »
  • PHP Manual
  • UI\Draw\Pen
  • Залить путь

UI\Draw\Pen::fill

(PHP 7, UI 0.9.9)

UI\Draw\Pen::fill — Залить путь

Описание

public UI\Draw\Pen::fill ( UI\Draw\Path $path , UI\Draw\Brush $with )
public UI\Draw\Pen::fill ( UI\Draw\Path $path , UI\Draw\Color $with )
public UI\Draw\Pen::fill ( UI\Draw\Path $path , int $with )

Заливает заданный путь

Список параметров

path

Путь для заливки

with

Цвет или кисть для заливки


Восстановить

  • « UI\Draw\Pen::fill
  • UI\Draw\Pen::save »
  • PHP Manual
  • UI\Draw\Pen
  • Восстановить

UI\Draw\Pen::restore

(PHP 7, UI 0.9.9)

UI\Draw\Pen::restore — Восстановить

Описание

public UI\Draw\Pen::restore ( void )

Восстановит ранее сохраненное перо

Список параметров

У этой функции нет параметров.


Сохранить

  • « UI\Draw\Pen::restore
  • UI\Draw\Pen::stroke »
  • PHP Manual
  • UI\Draw\Pen
  • Сохранить

UI\Draw\Pen::save

(PHP 7, UI 0.9.9)

UI\Draw\Pen::save — Сохранить

Описание

public UI\Draw\Pen::save ( void )

Сохранит перо

Список параметров

У этой функции нет параметров.


Обвести путь

  • « UI\Draw\Pen::save
  • UI\Draw\Pen::transform »
  • PHP Manual
  • UI\Draw\Pen
  • Обвести путь

UI\Draw\Pen::stroke

(PHP 7, UI 0.9.9)

UI\Draw\Pen::stroke — Обвести путь

Описание

public UI\Draw\Pen::stroke ( UI\Draw\Path $path , UI\Draw\Brush $with , UI\Draw\Stroke $stroke )
public UI\Draw\Pen::stroke ( UI\Draw\Path $path , UI\Draw\Color $with , UI\Draw\Stroke $stroke )
public UI\Draw\Pen::stroke ( UI\Draw\Path $path , int $with , UI\Draw\Stroke $stroke )

Обведет путь

Список параметров

path

Путь для обводки

with

Цвет или кисть, чтобы обвести

stroke

Конфигурация обводки


Преобразовать матрицу

  • « UI\Draw\Pen::stroke
  • UI\Draw\Pen::write »
  • PHP Manual
  • UI\Draw\Pen
  • Преобразовать матрицу

UI\Draw\Pen::transform

(PHP 7, UI 0.9.9)

UI\Draw\Pen::transform — Преобразовать матрицу

Описание

public UI\Draw\Pen::transform ( UI\Draw\Matrix $matrix )

Преобразует матрицу

Список параметров

matrix

Используемая матрица


Нарисовать текст в точке

  • « UI\Draw\Pen::transform
  • UI\Draw\Path »
  • PHP Manual
  • UI\Draw\Pen
  • Нарисовать текст в точке

UI\Draw\Pen::write

(PHP 7, UI 0.9.9)

UI\Draw\Pen::write — Нарисовать текст в точке

Описание

public UI\Draw\Pen::write ( UI\Point $point , UI\Draw\Text\Layout $layout )

Нарисует заданный макет текста в заданной точке

Список параметров

point

Точка для рисования

layout

Макет текста для рисования


Путь рисования

(PHP 7, UI 0.9.9)

Введение

Путь рисования направляет перо, где рисовать по области

Обзор классов

UI\Draw\Path {
/* Константы */
const integer Winding ;
const integer Alternate ;
/* Конструктор */
public __construct ([ int $mode = UI\Draw\Path::Winding ] )
/* Методы */
public addRectangle ( UI\Point $point , UI\Size $size )
public arcTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )
public bezierTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )
public closeFigure ( void )
public end ( void )
public lineTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )
public newFigure ( UI\Point $point )
public newFigureWithArc ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )
}

Предопределенные константы

UI\Draw\Path::Winding

Это режим рисования по умолчанию

UI\Draw\Path::Alternate

Это альтернативный режим рисования

Содержание

  • UI\Draw\Path::addRectangle — Нарисовать прямоугольник
  • UI\Draw\Path::arcTo — Нарисовать дугу
  • UI\Draw\Path::bezierTo — Нарисовать кривую Безье
  • UI\Draw\Path::closeFigure — Закрыть фигуру
  • UI\Draw\Path::__construct — Создать новый объект Path
  • UI\Draw\Path::end — Завершить путь
  • UI\Draw\Path::lineTo — Нарисовать линию
  • UI\Draw\Path::newFigure — Нарисовать фигуру
  • UI\Draw\Path::newFigureWithArc — Нарисовать фигуру с дугой


Нарисовать прямоугольник

  • « UI\Draw\Path
  • UI\Draw\Path::arcTo »
  • PHP Manual
  • UI\Draw\Path
  • Нарисовать прямоугольник

UI\Draw\Path::addRectangle

(PHP 7, UI 0.9.9)

UI\Draw\Path::addRectangle — Нарисовать прямоугольник

Описание

public UI\Draw\Path::addRectangle ( UI\Point $point , UI\Size $size )

Нарисовать путь прямоугольника заданного размера в определенной точке

Список параметров

point

Точка начала формы

size

Размер прямоугольника


Нарисовать дугу

  • « UI\Draw\Path::addRectangle
  • UI\Draw\Path::bezierTo »
  • PHP Manual
  • UI\Draw\Path
  • Нарисовать дугу

UI\Draw\Path::arcTo

(PHP 7, UI 0.9.9)

UI\Draw\Path::arcTo — Нарисовать дугу

Описание

public UI\Draw\Path::arcTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )

Нарисует дугу

Список параметров

point

Точка начала отображения

radius

Радиус дуги

angle

Угол дуги

sweep

Размах дуги

negative

Возвращаемые значения


Нарисовать кривую Безье

  • « UI\Draw\Path::arcTo
  • UI\Draw\Path::closeFigure »
  • PHP Manual
  • UI\Draw\Path
  • Нарисовать кривую Безье

UI\Draw\Path::bezierTo

(PHP 7, UI 0.9.9)

UI\Draw\Path::bezierTo — Нарисовать кривую Безье

Описание

public UI\Draw\Path::bezierTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )

Нарисует кривую Безье

Список параметров

point

Точка начала отображения

radius

Радиус кривой

angle

Угол кривой

sweep

Размах кривой

negative


Закрыть фигуру

  • « UI\Draw\Path::bezierTo
  • UI\Draw\Path::__construct »
  • PHP Manual
  • UI\Draw\Path
  • Закрыть фигуру

UI\Draw\Path::closeFigure

(PHP 7, UI 0.9.9)

UI\Draw\Path::closeFigure — Закрыть фигуру

Описание

public UI\Draw\Path::closeFigure ( void )

Закроет текущую фигуру

Список параметров

У этой функции нет параметров.


Создать новый объект Path

  • « UI\Draw\Path::closeFigure
  • UI\Draw\Path::end »
  • PHP Manual
  • UI\Draw\Path
  • Создать новый объект Path

UI\Draw\Path::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Path::__construct — Создать новый объект Path

Описание

public UI\Draw\Path::__construct ([ int $mode = UI\Draw\Path::Winding ] )

Создаст новый путь в заданном режиме

Список параметров

mode

Path::Winding или Path::Alternate


Завершить путь

  • « UI\Draw\Path::__construct
  • UI\Draw\Path::lineTo »
  • PHP Manual
  • UI\Draw\Path
  • Завершить путь

UI\Draw\Path::end

(PHP 7, UI 0.9.9)

UI\Draw\Path::end — Завершить путь

Описание

public UI\Draw\Path::end ( void )

Завершит данный путь

Список параметров

У этой функции нет параметров.


Нарисовать линию

  • « UI\Draw\Path::end
  • UI\Draw\Path::newFigure »
  • PHP Manual
  • UI\Draw\Path
  • Нарисовать линию

UI\Draw\Path::lineTo

(PHP 7, UI 0.9.9)

UI\Draw\Path::lineTo — Нарисовать линию

Описание

public UI\Draw\Path::lineTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )

Нарисует путь линии

Список параметров

point

Точка начала отображения

radius

angle

sweep

negative

Возвращаемые значения


Нарисовать фигуру

  • « UI\Draw\Path::lineTo
  • UI\Draw\Path::newFigureWithArc »
  • PHP Manual
  • UI\Draw\Path
  • Нарисовать фигуру

UI\Draw\Path::newFigure

(PHP 7, UI 0.9.9)

UI\Draw\Path::newFigure — Нарисовать фигуру

Описание

public UI\Draw\Path::newFigure ( UI\Point $point )

Нарисует новую фигуру в заданной точке

Список параметров

point

Точка начала отображения


Нарисовать фигуру с дугой

  • « UI\Draw\Path::newFigure
  • UI\Draw\Matrix »
  • PHP Manual
  • UI\Draw\Path
  • Нарисовать фигуру с дугой

UI\Draw\Path::newFigureWithArc

(PHP 7, UI 0.9.9)

UI\Draw\Path::newFigureWithArc — Нарисовать фигуру с дугой

Описание

public UI\Draw\Path::newFigureWithArc ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )

Список параметров

point

radius

angle

sweep

negative

Возвращаемые значения


Матрица рисования

(PHP 7, UI 0.9.9)

Введение

Обзор классов

UI\Draw\Matrix {
/* Методы */
public invert ( void )
public isInvertible ( void ) : bool
public multiply ( UI\Draw\Matrix $matrix ) : UI\Draw\Matrix
public rotate ( UI\Point $point , float $amount )
public scale ( UI\Point $center , UI\Point $point )
public skew ( UI\Point $point , UI\Point $amount )
public translate ( UI\Point $point )
}

Содержание

  • UI\Draw\Matrix::invert — Инвертировать матрицу
  • UI\Draw\Matrix::isInvertible — Определение, инвертирована ли матрица
  • UI\Draw\Matrix::multiply — Умножить матрицу
  • UI\Draw\Matrix::rotate — Перевернуть матрицу
  • UI\Draw\Matrix::scale — Масштабировать матрицу
  • UI\Draw\Matrix::skew — Наклонить матрицу
  • UI\Draw\Matrix::translate — Перевести матрицу


Инвертировать матрицу

  • « UI\Draw\Matrix
  • UI\Draw\Matrix::isInvertible »
  • PHP Manual
  • UI\Draw\Matrix
  • Инвертировать матрицу

UI\Draw\Matrix::invert

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::invert — Инвертировать матрицу

Описание

public UI\Draw\Matrix::invert ( void )

Инвертирует данную матрицу

Список параметров

У этой функции нет параметров.


Определение, инвертирована ли матрица

  • « UI\Draw\Matrix::invert
  • UI\Draw\Matrix::multiply »
  • PHP Manual
  • UI\Draw\Matrix
  • Определение, инвертирована ли матрица

UI\Draw\Matrix::isInvertible

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::isInvertible — Определение, инвертирована ли матрица

Описание

public UI\Draw\Matrix::isInvertible ( void ) : bool

Определить, инвертирована ли матрица

Список параметров

У этой функции нет параметров.


Умножить матрицу

  • « UI\Draw\Matrix::isInvertible
  • UI\Draw\Matrix::rotate »
  • PHP Manual
  • UI\Draw\Matrix
  • Умножить матрицу

UI\Draw\Matrix::multiply

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::multiply — Умножить матрицу

Описание

public UI\Draw\Matrix::multiply ( UI\Draw\Matrix $matrix ) : UI\Draw\Matrix

Умножит данную матрицу на заданную матрицу

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Новая матрица


Перевернуть матрицу

  • « UI\Draw\Matrix::multiply
  • UI\Draw\Matrix::scale »
  • PHP Manual
  • UI\Draw\Matrix
  • Перевернуть матрицу

UI\Draw\Matrix::rotate

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::rotate — Перевернуть матрицу

Описание

public UI\Draw\Matrix::rotate ( UI\Point $point , float $amount )

Перевернет данную матрицу

Список параметров

point

amount


Масштабировать матрицу

  • « UI\Draw\Matrix::rotate
  • UI\Draw\Matrix::skew »
  • PHP Manual
  • UI\Draw\Matrix
  • Масштабировать матрицу

UI\Draw\Matrix::scale

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::scale — Масштабировать матрицу

Описание

public UI\Draw\Matrix::scale ( UI\Point $center , UI\Point $point )

Масштабирует данную матрицу

Список параметров

center

point


Наклонить матрицу

  • « UI\Draw\Matrix::scale
  • UI\Draw\Matrix::translate »
  • PHP Manual
  • UI\Draw\Matrix
  • Наклонить матрицу

UI\Draw\Matrix::skew

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::skew — Наклонить матрицу

Описание

public UI\Draw\Matrix::skew ( UI\Point $point , UI\Point $amount )

Наклонит данную матрицу

Список параметров

point

amount


Перевести матрицу

  • « UI\Draw\Matrix::skew
  • UI\Draw\Color »
  • PHP Manual
  • UI\Draw\Matrix
  • Перевести матрицу

UI\Draw\Matrix::translate

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::translate — Перевести матрицу

Описание

public UI\Draw\Matrix::translate ( UI\Point $point )

Переведет данную матрицу

Список параметров

point


Представление цвета

(PHP 7, UI 0.9.9)

Введение

Представляет цвета RGBA, отдельные каналы доступны через общедоступные свойства.

Обзор классов

UI\Draw\Color {
/* Константы */
const integer Red ;
const integer Green ;
const integer Blue ;
const integer Alpha ;
/* Свойства */
public $r ;
public $g ;
public $b ;
public $a ;
/* Конструктор */
public __construct ([ UI\Draw\Color $color ] )
public __construct ([ int $color ] )
/* Методы */
public getChannel ( int $channel ) : float
public setChannel ( int $channel , float $value ) : void
}

Свойства

r

Обеспечивает доступ к красному каналу

g

Обеспечивает доступ к зеленому каналу

b

Обеспечивает доступ к синему каналу

a

Обеспечивает доступ к альфа-каналу

Предопределенные константы

UI\Draw\Color::Red

Определяет красный канал

UI\Draw\Color::Green

Определяет зеленый канал

UI\Draw\Color::Blue

Определяет синий канал

UI\Draw\Color::Alpha

Определяет альфа-канал

Содержание

  • UI\Draw\Color::__construct — Создать новый объект Color
  • UI\Draw\Color::getChannel — Управление цветом
  • UI\Draw\Color::setChannel — Управление цветом


Создать новый объект Color

  • « UI\Draw\Color
  • UI\Draw\Color::getChannel »
  • PHP Manual
  • UI\Draw\Color
  • Создать новый объект Color

UI\Draw\Color::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Color::__construct — Создать новый объект Color

Описание

public UI\Draw\Color::__construct ([ UI\Draw\Color $color ] )
public UI\Draw\Color::__construct ([ int $color ] )

Создаст новый цвет

Список параметров

color

Может быть UI\Draw\Color или RRGGBBAA


Управление цветом

  • « UI\Draw\Color::__construct
  • UI\Draw\Color::setChannel »
  • PHP Manual
  • UI\Draw\Color
  • Управление цветом

UI\Draw\Color::getChannel

(PHP 7, UI 0.9.9)

UI\Draw\Color::getChannel — Управление цветом

Описание

public UI\Draw\Color::getChannel ( int $channel ) : float

Получит значение канала

Список параметров

channel

Идентификация постоянного канала

Возвращаемые значения

Текущее значение запрошенного канала


Управление цветом

  • « UI\Draw\Color::getChannel
  • UI\Draw\Stroke »
  • PHP Manual
  • UI\Draw\Color
  • Управление цветом

UI\Draw\Color::setChannel

(PHP 7, UI 0.9.9)

UI\Draw\Color::setChannel — Управление цветом

Описание

public UI\Draw\Color::setChannel ( int $channel , float $value ) : void

Установит выбранный канал на заданное значение

Список параметров

channel

Идентификация постоянного канала

value

Новое значение выбранного канала

Возвращаемые значения


Рисование обводки

(PHP 7, UI 0.9.9)

Введение

Содержит конфигурацию Pen для выполнения обводки

Обзор классов

UI\Draw\Stroke {
/* Конструктор */
public __construct ([ int $cap = UI\Draw\Line\Cap::Flat [, int $join = UI\Draw\Line\Join::Miter [, float $thickness = 1 [, float $miterLimit = 10 ]]]] )
/* Методы */
public getCap ( void ) : int
public getJoin ( void ) : int
public getMiterLimit ( void ) : float
public getThickness ( void ) : float
public setCap ( int $cap )
public setJoin ( int $join )
public setMiterLimit ( float $limit )
public setThickness ( float $thickness )
}

Содержание

  • UI\Draw\Stroke::__construct — Создать новый объект Stroke
  • UI\Draw\Stroke::getCap — Получить конец линии
  • UI\Draw\Stroke::getJoin — Получить соединение линии
  • UI\Draw\Stroke::getMiterLimit — Получить предел среза
  • UI\Draw\Stroke::getThickness — Получить толщину
  • UI\Draw\Stroke::setCap — Установить конец линии
  • UI\Draw\Stroke::setJoin — Получить соединение линии
  • UI\Draw\Stroke::setMiterLimit — Установить предел среза
  • UI\Draw\Stroke::setThickness — Установить толщину


Создать новый объект Stroke

  • « UI\Draw\Stroke
  • UI\Draw\Stroke::getCap »
  • PHP Manual
  • UI\Draw\Stroke
  • Создать новый объект Stroke

UI\Draw\Stroke::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::__construct — Создать новый объект Stroke

Описание

public UI\Draw\Stroke::__construct ([ int $cap = UI\Draw\Line\Cap::Flat [, int $join = UI\Draw\Line\Join::Miter [, float $thickness = 1 [, float $miterLimit = 10 ]]]] )

Создает новый объект Stroke

Список параметров

cap

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round или UI\Draw\Line\Cap::Square

join

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round или UI\Draw\Line\Join::Bevel

thickness

Толщина обводки

miterLimit

Предел среза (по умолчанию подходит для всех поддерживаемых платформ)


Получить конец линии

  • « UI\Draw\Stroke::__construct
  • UI\Draw\Stroke::getJoin »
  • PHP Manual
  • UI\Draw\Stroke
  • Получить конец линии

UI\Draw\Stroke::getCap

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::getCap — Получить конец линии

Описание

public UI\Draw\Stroke::getCap ( void ) : int

Получит настройку конца линии данной обводки

Список параметров

У этой функции нет параметров.

Возвращаемые значения

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round или UI\Draw\Line\Cap::Square


Получить соединение линии

  • « UI\Draw\Stroke::getCap
  • UI\Draw\Stroke::getMiterLimit »
  • PHP Manual
  • UI\Draw\Stroke
  • Получить соединение линии

UI\Draw\Stroke::getJoin

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::getJoin — Получить соединение линии

Описание

public UI\Draw\Stroke::getJoin ( void ) : int

Получит настройку соединения линии данной обводки

Список параметров

У этой функции нет параметров.

Возвращаемые значения

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round или UI\Draw\Line\Join::Bevel


Получить предел среза

  • « UI\Draw\Stroke::getJoin
  • UI\Draw\Stroke::getThickness »
  • PHP Manual
  • UI\Draw\Stroke
  • Получить предел среза

UI\Draw\Stroke::getMiterLimit

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::getMiterLimit — Получить предел среза

Описание

public UI\Draw\Stroke::getMiterLimit ( void ) : float

Получит предел среза данной обводки

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий предел среза


Получить толщину

  • « UI\Draw\Stroke::getMiterLimit
  • UI\Draw\Stroke::setCap »
  • PHP Manual
  • UI\Draw\Stroke
  • Получить толщину

UI\Draw\Stroke::getThickness

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::getThickness — Получить толщину

Описание

public UI\Draw\Stroke::getThickness ( void ) : float

Получит толщину данной обводки

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая толщина


Установить конец линии

  • « UI\Draw\Stroke::getThickness
  • UI\Draw\Stroke::setJoin »
  • PHP Manual
  • UI\Draw\Stroke
  • Установить конец линии

UI\Draw\Stroke::setCap

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::setCap — Установить конец линии

Описание

public UI\Draw\Stroke::setCap ( int $cap )

Установит настройку конца линии для данной обводки

Список параметров

cap

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round или UI\Draw\Line\Cap::Square


Получить соединение линии

  • « UI\Draw\Stroke::setCap
  • UI\Draw\Stroke::setMiterLimit »
  • PHP Manual
  • UI\Draw\Stroke
  • Получить соединение линии

UI\Draw\Stroke::setJoin

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::setJoin — Получить соединение линии

Описание

public UI\Draw\Stroke::setJoin ( int $join )

Установит настройку соединения линии для данной обводки

Список параметров

join

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round или UI\Draw\Line\Join::Bevel

Возвращаемые значения


Установить предел среза

  • « UI\Draw\Stroke::setJoin
  • UI\Draw\Stroke::setThickness »
  • PHP Manual
  • UI\Draw\Stroke
  • Установить предел среза

UI\Draw\Stroke::setMiterLimit

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::setMiterLimit — Установить предел среза

Описание

public UI\Draw\Stroke::setMiterLimit ( float $limit )

Установить предел среза для данной обводки

Список параметров

limit

Новый предел


Установить толщину

  • « UI\Draw\Stroke::setMiterLimit
  • UI\Draw\Brush »
  • PHP Manual
  • UI\Draw\Stroke
  • Установить толщину

UI\Draw\Stroke::setThickness

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::setThickness — Установить толщину

Описание

public UI\Draw\Stroke::setThickness ( float $thickness )

Установит толщину для данной обводки

Список параметров

thickness

Новая толщина


Кисти

(PHP 7, UI 0.9.9)

Введение

Представляет сплошную цветную кисть

Обзор классов

UI\Draw\Brush {
/* Конструктор */
public __construct ( UI\Draw\Color $color )
public __construct ( int $color )
/* Методы */
public getColor ( void ) : UI\Draw\Color
public setColor ( UI\Draw\Color $color ) : void
public setColor ( int $color ) : void
}

Содержание

  • UI\Draw\Brush::__construct — Создать новый объект Brush
  • UI\Draw\Brush::getColor — Получить цвет
  • UI\Draw\Brush::setColor — Установить цвет


Создать новый объект Brush

  • « UI\Draw\Brush
  • UI\Draw\Brush::getColor »
  • PHP Manual
  • UI\Draw\Brush
  • Создать новый объект Brush

UI\Draw\Brush::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Brush::__construct — Создать новый объект Brush

Описание

public UI\Draw\Brush::__construct ( UI\Draw\Color $color )
public UI\Draw\Brush::__construct ( int $color )

Создаст сплошную кисть, используя заданный цвет

Список параметров

color

Может быть UI\Draw\Color или RRGGBBAA


Получить цвет

  • « UI\Draw\Brush::__construct
  • UI\Draw\Brush::setColor »
  • PHP Manual
  • UI\Draw\Brush
  • Получить цвет

UI\Draw\Brush::getColor

(PHP 7, UI 0.9.9)

UI\Draw\Brush::getColor — Получить цвет

Описание

public UI\Draw\Brush::getColor ( void ) : UI\Draw\Color

Возвратит объект UI\Draw\Color для данной кисти

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий цвет кисти


Установить цвет

  • « UI\Draw\Brush::getColor
  • UI\Draw\Brush\Gradient »
  • PHP Manual
  • UI\Draw\Brush
  • Установить цвет

UI\Draw\Brush::setColor

(PHP 7, UI 0.9.9)

UI\Draw\Brush::setColor — Установить цвет

Описание

public UI\Draw\Brush::setColor ( UI\Draw\Color $color ) : void
public UI\Draw\Brush::setColor ( int $color ) : void

Установит переданный цвет для данной кисти

Список параметров

color

Может быть UI\Draw\Color или RRGGBBAA

Возвращаемые значения


Градиентные кисти

(PHP 7, UI 2.0.0)

Введение

Абстрактный класс для градиентных кистей

Обзор классов

abstract UI\Draw\Brush\Gradient extends UI\Draw\Brush {
/* Методы */
public addStop ( float $position , UI\Draw\Color $color ) : int
public addStop ( float $position , int $color ) : int
public delStop ( int $index ) : int
public setStop ( int $index , float $position , UI\Draw\Color $color ) : bool
public setStop ( int $index , float $position , int $color ) : bool
/* Наследуемые методы */
public UI\Draw\Brush::getColor ( void ) : UI\Draw\Color
public UI\Draw\Brush::setColor ( UI\Draw\Color $color ) : void
public UI\Draw\Brush::setColor ( int $color ) : void
}

Содержание

  • UI\Draw\Brush\Gradient::addStop — Stop Manipulation
  • UI\Draw\Brush\Gradient::delStop — Stop Manipulation
  • UI\Draw\Brush\Gradient::setStop — Stop Manipulation


Stop Manipulation

  • « UI\Draw\Brush\Gradient
  • UI\Draw\Brush\Gradient::delStop »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::addStop

(PHP 7, UI 2.0.0)

UI\Draw\Brush\Gradient::addStop — Stop Manipulation

Описание

public UI\Draw\Brush\Gradient::addStop ( float $position , UI\Draw\Color $color ) : int
public UI\Draw\Brush\Gradient::addStop ( float $position , int $color ) : int

Shall at a stop of the given color at the given position

Список параметров

position

The position for the new stop

color

The color for the new stop, may be UI\Draw\Color or RRGGBBAA

Возвращаемые значения

Total number of stops


Stop Manipulation

  • « UI\Draw\Brush\Gradient::addStop
  • UI\Draw\Brush\Gradient::setStop »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::delStop

(PHP 7, UI 2.0.0)

UI\Draw\Brush\Gradient::delStop — Stop Manipulation

Описание

public UI\Draw\Brush\Gradient::delStop ( int $index ) : int

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Возвращаемые значения

Total number of stops


Stop Manipulation

  • « UI\Draw\Brush\Gradient::delStop
  • UI\Draw\Brush\LinearGradient »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::setStop

(PHP 7, UI 2.0.0)

UI\Draw\Brush\Gradient::setStop — Stop Manipulation

Описание

public UI\Draw\Brush\Gradient::setStop ( int $index , float $position , UI\Draw\Color $color ) : bool
public UI\Draw\Brush\Gradient::setStop ( int $index , float $position , int $color ) : bool

Список параметров

index

The index of the stop to set

position

The position for the stop

color

The color for the stop, may be UI\Draw\Color or RRGGBBAA

Возвращаемые значения

Indication of success


Линейный градиент

(PHP 7, UI 2.0.0)

Введение

Обзор классов

UI\Draw\Brush\LinearGradient extends UI\Draw\Brush\Gradient {
/* Конструктор */
public __construct ( UI\Point $start , UI\Point $end )
/* Наследуемые методы */
public UI\Draw\Brush\Gradient::addStop ( float $position , UI\Draw\Color $color ) : int
public UI\Draw\Brush\Gradient::addStop ( float $position , int $color ) : int
public UI\Draw\Brush\Gradient::delStop ( int $index ) : int
public UI\Draw\Brush\Gradient::setStop ( int $index , float $position , UI\Draw\Color $color ) : bool
public UI\Draw\Brush\Gradient::setStop ( int $index , float $position , int $color ) : bool
}

Содержание

  • UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient


Construct a Linear Gradient

  • « UI\Draw\Brush\LinearGradient
  • UI\Draw\Brush\RadialGradient »
  • PHP Manual
  • UI\Draw\Brush\LinearGradient
  • Construct a Linear Gradient

UI\Draw\Brush\LinearGradient::__construct

(PHP 7, UI 2.0.0)

UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient

Описание

public UI\Draw\Brush\LinearGradient::__construct ( UI\Point $start , UI\Point $end )

Shall construct a new linear gradient

Список параметров

start

end


Радиальный градиент

(PHP 7, UI 2.0.0)

Введение

Обзор классов

UI\Draw\Brush\RadialGradient extends UI\Draw\Brush\Gradient {
/* Конструктор */
public __construct ( UI\Point $start , UI\Point $outer , float $radius )
/* Наследуемые методы */
public UI\Draw\Brush\Gradient::addStop ( float $position , UI\Draw\Color $color ) : int
public UI\Draw\Brush\Gradient::addStop ( float $position , int $color ) : int
public UI\Draw\Brush\Gradient::delStop ( int $index ) : int
public UI\Draw\Brush\Gradient::setStop ( int $index , float $position , UI\Draw\Color $color ) : bool
public UI\Draw\Brush\Gradient::setStop ( int $index , float $position , int $color ) : bool
}

Содержание

  • UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient


Construct a new Radial Gradient

  • « UI\Draw\Brush\RadialGradient
  • UI\Draw\Text\Layout »
  • PHP Manual
  • UI\Draw\Brush\RadialGradient
  • Construct a new Radial Gradient

UI\Draw\Brush\RadialGradient::__construct

(PHP 7, UI 2.0.0)

UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient

Описание

public UI\Draw\Brush\RadialGradient::__construct ( UI\Point $start , UI\Point $outer , float $radius )

Shall construct a new radial gradient

Список параметров

start

outer

radius


Представляет макет текста

(PHP 7, UI 0.9.9)

Введение

Текстовый макет представляет собой макет текста, который будет нарисован пером

Обзор классов

UI\Draw\Text\Layout {
/* Конструктор */
public __construct ( string $text , UI\Draw\Text\Font $font , float $width )
/* Методы */
public setColor ( UI\Draw\Color $color [, int $start = 0 [, int $end ]] )
public setColor ( int $color [, int $start = 0 [, int $end ]] )
public setWidth ( float $width )
}

Содержание

  • UI\Draw\Text\Layout::__construct — Создать новый объект макета текста
  • UI\Draw\Text\Layout::setColor — Установить цвет
  • UI\Draw\Text\Layout::setWidth — Установить ширину


Создать новый объект макета текста

  • « UI\Draw\Text\Layout
  • UI\Draw\Text\Layout::setColor »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Создать новый объект макета текста

UI\Draw\Text\Layout::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Text\Layout::__construct — Создать новый объект макета текста

Описание

public UI\Draw\Text\Layout::__construct ( string $text , UI\Draw\Text\Font $font , float $width )

Создаст новый объект макета текста

Список параметров

text

Текст для макета

font

Шрифт для записи

width

Ширина для макета


Установить цвет

  • « UI\Draw\Text\Layout::__construct
  • UI\Draw\Text\Layout::setWidth »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Установить цвет

UI\Draw\Text\Layout::setColor

(PHP 7, UI 0.9.9)

UI\Draw\Text\Layout::setColor — Установить цвет

Описание

public UI\Draw\Text\Layout::setColor ( UI\Draw\Color $color [, int $start = 0 [, int $end ]] )
public UI\Draw\Text\Layout::setColor ( int $color [, int $start = 0 [, int $end ]] )

Установит цвет для всего текста или диапазона в макете

Список параметров

color

Используемый цвет

start

Начальный символ

end

Конечный символ, по умолчанию конец строки


Установить ширину

  • « UI\Draw\Text\Layout::setColor
  • UI\Draw\Text\Font »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Установить ширину

UI\Draw\Text\Layout::setWidth

(PHP 7, UI 0.9.9)

UI\Draw\Text\Layout::setWidth — Установить ширину

Описание

public UI\Draw\Text\Layout::setWidth ( float $width )

Установит ширину для данного макета текста

Список параметров

width

Новая ширина


Представляет шрифт

(PHP 7, UI 0.9.9)

Введение

Загружает описанный шрифт

Обзор классов

UI\Draw\Text\Font {
/* Конструктор */
public __construct ( UI\Draw\Text\Font\Descriptor $descriptor )
/* Методы */
public getAscent ( void ) : float
public getDescent ( void ) : float
public getLeading ( void ) : float
public getUnderlinePosition ( void ) : float
public getUnderlineThickness ( void ) : float
}

Содержание

  • UI\Draw\Text\Font::__construct — Создать новый объект Font
  • UI\Draw\Text\Font::getAscent — Показатели шрифта
  • UI\Draw\Text\Font::getDescent — Показатели шрифта
  • UI\Draw\Text\Font::getLeading — Показатели шрифта
  • UI\Draw\Text\Font::getUnderlinePosition — Показатели шрифта
  • UI\Draw\Text\Font::getUnderlineThickness — Показатели шрифта


Создать новый объект Font

  • « UI\Draw\Text\Font
  • UI\Draw\Text\Font::getAscent »
  • PHP Manual
  • UI\Draw\Text\Font
  • Создать новый объект Font

UI\Draw\Text\Font::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Text\Font::__construct — Создать новый объект Font

Описание

public UI\Draw\Text\Font::__construct ( UI\Draw\Text\Font\Descriptor $descriptor )

Создаст новый объект Font, используя заданный дескриптор

Список параметров

descriptor

Дескриптор шрифта


Показатели шрифта

  • « UI\Draw\Text\Font::__construct
  • UI\Draw\Text\Font::getDescent »
  • PHP Manual
  • UI\Draw\Text\Font
  • Показатели шрифта

UI\Draw\Text\Font::getAscent

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font::getAscent — Показатели шрифта

Описание

public UI\Draw\Text\Font::getAscent ( void ) : float

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Показатели шрифта

  • « UI\Draw\Text\Font::getAscent
  • UI\Draw\Text\Font::getLeading »
  • PHP Manual
  • UI\Draw\Text\Font
  • Показатели шрифта

UI\Draw\Text\Font::getDescent

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font::getDescent — Показатели шрифта

Описание

public UI\Draw\Text\Font::getDescent ( void ) : float

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Показатели шрифта

  • « UI\Draw\Text\Font::getDescent
  • UI\Draw\Text\Font::getUnderlinePosition »
  • PHP Manual
  • UI\Draw\Text\Font
  • Показатели шрифта

UI\Draw\Text\Font::getLeading

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font::getLeading — Показатели шрифта

Описание

public UI\Draw\Text\Font::getLeading ( void ) : float

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Показатели шрифта

  • « UI\Draw\Text\Font::getLeading
  • UI\Draw\Text\Font::getUnderlineThickness »
  • PHP Manual
  • UI\Draw\Text\Font
  • Показатели шрифта

UI\Draw\Text\Font::getUnderlinePosition

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font::getUnderlinePosition — Показатели шрифта

Описание

public UI\Draw\Text\Font::getUnderlinePosition ( void ) : float

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Показатели шрифта

  • « UI\Draw\Text\Font::getUnderlinePosition
  • UI\Draw\Text\Font\Descriptor »
  • PHP Manual
  • UI\Draw\Text\Font
  • Показатели шрифта

UI\Draw\Text\Font::getUnderlineThickness

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font::getUnderlineThickness — Показатели шрифта

Описание

public UI\Draw\Text\Font::getUnderlineThickness ( void ) : float

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Дескриптор шрифта

(PHP 7, UI 0.9.9)

Введение

Описывает шрифт

Обзор классов

UI\Draw\Text\Font\Descriptor {
/* Конструктор */
public __construct ( string $family , float $size [, int $weight = UI\Draw\Text\Font\Weight::Normal [, int $italic = UI\Draw\Text\Font\Italic::Normal [, int $stretch = UI\Draw\Text\Font\Stretch::Normal ]]] )
/* Методы */
public getFamily ( void ) : string
public getItalic ( void ) : int
public getSize ( void ) : float
public getStretch ( void ) : int
public getWeight ( void ) : int
}

Содержание

  • UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor
  • UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family
  • UI\Draw\Text\Font\Descriptor::getItalic — Style Detection
  • UI\Draw\Text\Font\Descriptor::getSize — Size Detection
  • UI\Draw\Text\Font\Descriptor::getStretch — Style Detection
  • UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection


Construct a new Font Descriptor

  • « UI\Draw\Text\Font\Descriptor
  • UI\Draw\Text\Font\Descriptor::getFamily »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Construct a new Font Descriptor

UI\Draw\Text\Font\Descriptor::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor

Описание

public UI\Draw\Text\Font\Descriptor::__construct ( string $family , float $size [, int $weight = UI\Draw\Text\Font\Weight::Normal [, int $italic = UI\Draw\Text\Font\Italic::Normal [, int $stretch = UI\Draw\Text\Font\Stretch::Normal ]]] )

Shall construct a new Font Descriptor

Список параметров

family

The name of a valid family of fonts

size

The preferred size

weight

UI\Draw\Text\Font\Weight constant

italic

UI\Draw\Text\Font\Italic constant

stretch

UI\Draw\Text\Font\Stretch constant


Get Font Family

  • « UI\Draw\Text\Font\Descriptor::__construct
  • UI\Draw\Text\Font\Descriptor::getItalic »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Get Font Family

UI\Draw\Text\Font\Descriptor::getFamily

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family

Описание

public UI\Draw\Text\Font\Descriptor::getFamily ( void ) : string

Shall return the requested font family

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Style Detection

  • « UI\Draw\Text\Font\Descriptor::getFamily
  • UI\Draw\Text\Font\Descriptor::getSize »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Style Detection

UI\Draw\Text\Font\Descriptor::getItalic

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getItalic — Style Detection

Описание

public UI\Draw\Text\Font\Descriptor::getItalic ( void ) : int

Shall return constant setting

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Size Detection

  • « UI\Draw\Text\Font\Descriptor::getItalic
  • UI\Draw\Text\Font\Descriptor::getStretch »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Size Detection

UI\Draw\Text\Font\Descriptor::getSize

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getSize — Size Detection

Описание

public UI\Draw\Text\Font\Descriptor::getSize ( void ) : float

Shall return the requested size

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Style Detection

  • « UI\Draw\Text\Font\Descriptor::getSize
  • UI\Draw\Text\Font\Descriptor::getWeight »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Style Detection

UI\Draw\Text\Font\Descriptor::getStretch

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getStretch — Style Detection

Описание

public UI\Draw\Text\Font\Descriptor::getStretch ( void ) : int

Shall return requested stretch

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Weight Detection

  • « UI\Draw\Text\Font\Descriptor::getStretch
  • Функции UI »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Weight Detection

UI\Draw\Text\Font\Descriptor::getWeight

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection

Описание

public UI\Draw\Text\Font\Descriptor::getWeight ( void ) : int

Shall return requested weight

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Функции UI

Содержание

  • UI\Draw\Text\Font\fontFamilies — Извлечь семейство шрифтов
  • UI\quit — Выйти из цикла UI
  • UI\run — Войти в цикл UI


Извлечь семейство шрифтов

  • « Функции UI
  • UI\quit »
  • PHP Manual
  • Функции UI
  • Извлечь семейство шрифтов

UI\Draw\Text\Font\fontFamilies

(PHP 7, UI 0.9.9)

UI\Draw\Text\Font\fontFamilies — Извлечь семейство шрифтов

Описание

UI\Draw\Text\Font\fontFamilies ( void ) : array

Возвращает массив корректных семейств шрифтов для текущей системы.

Список параметров

У этой функции нет параметров.


Выйти из цикла UI

  • « UI\Draw\Text\Font\fontFamilies
  • UI\run »
  • PHP Manual
  • Функции UI
  • Выйти из цикла UI

UI\quit

(PHP 7, UI 2.0.0)

UI\quit — Выйти из цикла UI

Описание

UI\quit ( void ) : void

Вынуждает главный цикл завершить работу

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Войти в цикл UI

  • « UI\quit
  • UI\Draw\Text\Font\Weight »
  • PHP Manual
  • Функции UI
  • Войти в цикл UI

UI\run

(PHP 7, UI 2.0.0)

UI\run — Войти в цикл UI

Описание

UI\run ([ int $flags ] ) : void

Приказывает PHP войти в главный цикл, по умолчанию контроль не возвращается к инициатору

Список параметров

flags

Вынуждает UI\Loop вернуть управление, а UI\Wait вернуть управление после ожидания

Возвращаемые значения


Настройки начертания шрифта

(PHP 7, UI 0.9.9)

Введение

Обзор классов

final UI\Draw\Text\Font\Weight {
/* Константы */
const integer Thin ;
const integer UltraLight ;
const integer Light ;
const integer Book ;
const integer Normal ;
const integer Medium ;
const integer SemiBold ;
const integer Bold ;
const integer UltraBold ;
const integer Heavy ;
const integer UltraHeavy ;
}


Настройки курсивного шрифта

(PHP 7, UI 0.9.9)

Введение

Обзор классов

final UI\Draw\Text\Font\Italic {
/* Constants */
const integer Normal = 0 ;
const integer Oblique = 1 ;
const integer Italic = 2 ;
}


Настройки толщины шрифта

(PHP 7, UI 0.9.9)

Введение

Обзор классов

final UI\Draw\Text\Font\Stretch {
/* Constants */
const integer UltraCondensed = 0 ;
const integer ExtraCondensed = 1 ;
const integer Condensed = 2 ;
const integer SemiCondensed = 3 ;
const integer Normal = 4 ;
const integer SemiExpanded = 5 ;
const integer Expanded = 6 ;
const integer ExtraExpanded = 7 ;
const integer UltraExpanded = 8 ;
}


Настройки концов линий

(PHP 7, UI 0.9.9)

Введение

Обзор классов

final UI\Draw\Line\Cap {
/* Константы */
const integer Flat ;
const integer Round ;
const integer Square ;
}


Настройки соединения линий

(PHP 7, UI 0.9.9)

Введение

Обзор классов

final UI\Draw\Line\Join {
/* Константы */
const integer Miter ;
const integer Round ;
const integer Bevel ;
}


Ключевые идентификаторы

(PHP 7, UI 1.0.0)

Введение

Обзор классов

final UI\Key {
/* Константы */
const integer Escape ;
const integer Insert ;
const integer Delete ;
const integer Home ;
const integer End ;
const integer PageUp ;
const integer PageDown ;
const integer Up ;
const integer Down ;
const integer Left ;
const integer Right ;
const integer F1 ;
const integer F2 ;
const integer F3 ;
const integer F4 ;
const integer F5 ;
const integer F6 ;
const integer F7 ;
const integer F8 ;
const integer F9 ;
const integer F10 ;
const integer F11 ;
const integer F12 ;
const integer N0 ;
const integer N1 ;
const integer N2 ;
const integer N3 ;
const integer N4 ;
const integer N5 ;
const integer N6 ;
const integer N7 ;
const integer N8 ;
const integer N9 ;
const integer NDot ;
const integer NEnter ;
const integer NAdd ;
const integer NSubtract ;
const integer NMultiply ;
const integer NDivide ;
}


InvalidArgumentException

(PHP 7, UI 1.0.3)

Введение

Обзор классов

UI\Exception\InvalidArgumentException extends InvalidArgumentException implements Throwable {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


RuntimeException

(PHP 7, UI 1.0.3)

Введение

Обзор классов

UI\Exception\RuntimeException extends RuntimeException implements Throwable {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : mixed
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}


Ядро PHP: Руководство хакера

  • Preface
  • Memory management
    • Basic memory management
    • Data persistence
    • Thread-Safe Resource Manager
  • Working with Variables
    • Introduction to Variables
    • Working with Arrays
    • Working with HashTable
    • Working with Objects
  • Writing Functions
  • Writing Classes
  • Working with Resources
  • Working with INI settings
  • Working with streams
  • The "counter" Extension - A Continuing Example
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Counter — The Counter class
    • Basic — The basic interface
    • Extended — The extended interface
  • The PHP 5 build system
    • Building PHP for extension development
    • The ext_skel script
    • Talking to the UNIX build system: config.m4
    • Talking to the Windows build system: config.w32
  • Extension structure
    • Files which make up an extension
    • Basic constructs
    • The zend_module structure
    • Extension globals
    • Life cycle of an extension
    • Testing an extension
  • PDO Driver 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
  • Extension FAQs
  • Zend Engine 2 API reference
  • Zend Engine 2 Opcodes
    • Opcode Descriptions and Examples
  • Zend Engine 1
    • Old introduction
    • Streams API for PHP Extension Authors
    • Zend API: Взламываем ядро PHP
    • TSRM API


Preface

This section of the manual is written for the Hacker: someone thinking about getting their hands dirty, someone who wants an understanding of internals in order to advance their PHP skills, or maybe someone looking to write the next best extension. Whatever the reason, this section will seek to provide a good understanding of the internals of PHP, how to write extensions, how to understand existing code containing mystical macros. All of the important internal functionality is documented here, enough anyway to convince you to read the source.

Out of necessity, this section assumes the reader has a working knowledge of the C programming language, and associated tools, like compilers and terminal emulators and the like. You don't need to be the next Alan Turing, but a working knowledge is none the less essential for this section to be of any use. With just that working knowledge, this section should be enough to get you well on the way to earning the title Hacker, and you do have to earn it.

The documentation in this section is current as of PHP 5.3.3, deviations in API functionality are duly noted in the appropriate sections.

Внимание

This documentation is still under development. The original Zend documentation is preserved in its entirety in the Zend Engine 1 section for those who need it before this documentation is completed.


Memory management

Содержание

  • Basic memory management
  • Data persistence
  • Thread-Safe Resource Manager

Memory management in the Zend Engine is deceptively simple. There are some APIs to learn, and some concepts behind them to understand, but that's about all.


Basic memory management

The engine's memory management is implemented with features important to a system like PHP. The exact functionality of the engine's memory management and the optimizations performed are out of the scope of this document. However, a good understanding of its functionality provides a basis for a good understanding of the rest of the Hacker's Guide, and introduce you to terminology and functionality used throughout PHP.

The most important of its features for the Hacker, and the first thing to mention is tracking allocations. Tracking allocations allow the memory manager to avoid leaks, a thorn in the side of most Hackers. When PHP is built in debug mode (--enable-debug), detected leaks are reported, in a perfect world they would never get to deployment.

While tracking allocations is an important, and highly useful feature, the Hacker should not become lazy! Always attempt to resolve leaks before deploying your code, a memory leak in a SAPI environment can become a very big problem, very quickly.

Another, perhaps more incidental but still noteworthy, feature is that the memory manager is the part that allows a hard limit on memory usage for each instance of PHP. As we all know, there is no such thing as unlimited. If some code is running out of memory, it is likely to be written wrong, either by the Hacker, or the programmer of PHP. Limiting the memory therefore is not a restriction on the language that is supposed to be experienced in production, it is simply a way from stopping development environments from spiraling out of control when mistakes are made, and equally, when bugs are found in production.

From the Hacker's perspective, the memory management API looks very much like libc's (or whoever the Hacker prefers !) malloc implementation.

Main memory APIs
Prototype | Description
void *emalloc(size_t size) | Allocate size bytes of memory.
void *ecalloc(size_t nmemb, size_t size) | Allocate a buffer for nmemb elements of size bytes and makes sure it is initialized with zeros.
void *erealloc(void *ptr, size_t size) | Resize the buffer ptr, which was allocated using emalloc to hold size bytes of memory.
void efree(void *ptr) | Free the buffer pointed by ptr. The buffer had to be allocated by emalloc.
void *safe_emalloc(size_t nmemb, size_t size, size_t offset) | Allocate a buffer for holding nmemb blocks of each size bytes and an additional offset bytes. This is similar to emalloc(nmemb * size + offset) but adds a special protection against overflows.
char *estrdup(const char *s) | Allocate a buffer that can hold the NULL-terminated string s and copy the s into that buffer.
char *estrndup(const char *s, unsigned int length) | Similar to estrdup while the length of the NULL-terminated string is already known.

Замечание: The engine's memory management functions do not return NULL upon failure, if memory cannot be allocated at runtime, the engine bails and raises an error.

Предостережение

Always use valgrind before deploying code and as a normal part of the Hacker's process. The engine can only report and detect leaks where it has allocated the memory. All of PHP is only a thin wrapper around third parties, those third parties do not use the engines memory management. Additionally, valgrind will catch errors that do not always halt or even have an apparent effect at execution time, it is just as important that there should be no errors, as it is important that avoidable leaks should be avoided.

Замечание: Some leaks are unavoidable, some libraries rely on the end of a process to free some of their structures, this is normal under some circumstances and acceptable where it is out of the Hacker's control.

While executing in a debug environment, configured with --enable-debug and --enable-zend-test, the leak function used in the next example is actually implemented by the engine and is available to call in userland.

Пример #1 Leak Detection in Action

ZEND_FUNCTION(zend_leak_bytes)
{
    zend_long leakbytes = 3;

    if (zend_parse_parameters(ZEND_NUM_ARGS(), "|l", &leakbytes) == FAILURE) {
        return;
    }

    emalloc(leakbytes);
}

Результатом выполнения данного примера будет что-то подобное:

$ sapi/cli/php -r 'zend_leak_bytes();'
[Mon Apr 23 17:43:42 2018]  Script:  'Standard input code'
/home/mbaynton/projects/php-src/ext/zend_test/test.c(106) :  Freeing 0x00007f3203c92050 (3 bytes), script=Standard input code
=== Total 1 memory leaks detected ===

Замечание: USE_ZEND_ALLOC=0 in the environment will stop the memory manager from functioning, all allocations fall back on the default system allocators which can be useful for debugging leaks, and should only be used for this purpose.


Data persistence

In this context, data persistence is taken to mean any data that is intended to survive the current request. The memory management within the engine is very focused on request bound allocations, but this is not always practical or appropriate. Persistent memory is sometimes required in order to satisfy requirements of external libraries, it can also be useful while Hacking.

A common use of persistent memory is to enable persistent SQL server connections, though this practice is frowned upon, it is none the less the most common use of this feature.

Замечание: All of the following functions take the additional persistent parameter, should this be false, the engine will use its regular allocators (emalloc) and the memory should not be considered persistent. Where memory is allocated as persistent, system allocators are invoked, under most circumstances they are still not able to return NULL pointers just as the Main memory APIs.

Persistent memory APIs
Prototype | Description
void *pemalloc(size_t size, zend_bool persistent) | Allocate size bytes of memory.
void *pecalloc(size_t nmemb, size_t size, zend_bool persistent) | Allocate a buffer for nmemb elements of size bytes and makes sure it is initialized with zeros.
void *perealloc(void *ptr, size_t size, zend_bool persistent) | Resize the buffer ptr, which was allocated using emalloc to hold size bytes of memory.
void pefree(void *ptr, zend_bool persistent) | Free the buffer pointed by ptr. The buffer had to be allocated by pemalloc.
void *safe_pemalloc(size_t nmemb, size_t size, size_t offset, zend_bool persistent) | Allocate a buffer for holding nmemb blocks of each size bytes and an additional offset bytes. This is similar to pemalloc(nmemb * size + offset) but adds a special protection against overflows.
char *pestrdup(const char *s, zend_bool persistent) | Allocate a buffer that can hold the NULL-terminated string s and copy the s into that buffer.
char *pestrndup(const char *s, unsigned int length, zend_bool persistent) | Similar to pestrdup while the length of the NULL-terminated string is already known.
Предостережение

It is important to remember that memory allocated to be persistent is not optimized or tracked by the engine; it is not subject to memory_limit, additionally, all variables that are created by the Hacker for the engine must not use persistent memory.


Thread-Safe Resource Manager

When PHP is built with Thread Safety enabled, the engine requires a way to isolate contexts from one another, such that the threads of a process may service individual requests without interference. TSRM is omnipotent within PHP, extension authors have to do very little in order to make sure their extensions can function in both a Thread Safe and Non Thread Safe architecture.

Пример #1 Accessor macros for per-module globals

#ifdef ZTS
#define COUNTER_G(v) TSRMG(counter_globals_id, zend_counter_globals *, v)
#else
#define COUNTER_G(v) (counter_globals.v)
#endif

The snippet above shows how an extension author is expected to define their global accessors. The TSRMG macro takes an identifier, type cast and element name. The identifier is assigned by TSRM during initialization of the module. Declaring global accessors in this way ensures that an extension can operate safely in a Thread Safe and Non Thread Safe architecture using the same logic.

TSRM manages the isolation and safety of all global structures within PHP, from executor globals to extension globals, a pointer to the isolated storage is also passed around with most, or many of the API functions. The macros TSRMLS_C and TSRMLS_CC translate to "thread safe local storage" and "thread safe local storage prefixed with a comma" respectively.

If a function requires a pointer to TSRM, it is declared with the macro TSRMLS_D or TSRMLS_DC in it's prototype, which translates to "thread safe local storage only" and "thread safe local storage prefixed with a comma" respectively. Many macros within the engine reference TSRM, so it is a good idea to declare most things to accept TSRM, such that if they need to call upon TSRM they do not have to fetch a pointer during execution.

Because TSRM is thread local, and some functions (for compatibility reasons) are not able to accept TSRM directly, the macro TSRMLS_FETCH exists, which requests that TSRM fetches the pointer to the thread local storage. This should be avoided wherever it can be, as it is not without cost in a Thread Safe setup.

Замечание: While developing extensions, build errors that contain "tsrm_ls is undefined" or errors to that effect stem from the fact that TSRMLS is undefined in the current scope, to fix this, declare the function to accept TSRMLS with the appropriate macro, if the prototype of the function in question cannot be changed, you must call TSRMLS_FETCH within the function body.

The functionality documented hereafter is aimed at advanced use of TSRM. It is not ordinary for extensions to have to interact with TSRM directly, the pecl programmer should use API's above TSRM such as the Module Globals API.

TSRM Internals
Prototype | Description
typedef int ts_rsrc_id | The type definition to represent a resource by numeric identifiers
int tsrm_startup(int expected_threads, int expected_resources, int debug_level, char *debug_filename) | expected_threads and expected_resources are not hard limits. debug_level and debug_filename only have an effect on windows in Debug mode or when TSRM_DEBUG is defined. Called once per process in ZTS mode during server startup.
void tsrm_shutdown(void) | Should be the last thing called in the process to destroy and free all storage TSRM storage in ZTS mode.
ts_rsrc_id ts_allocate_id(ts_rsrc_id *rsrc_id, size_t size, ts_allocate_ctor ctor, ts_allocate_dtor dtor) | Allocates and thread safe pointer of size bytes, calling ctor on the pointer, assigning (and returning) the id to rsrc_id, the dtor is called when the resource is free'd. Module globals are isolated in ZTS mode using this API.
void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id) | Fetches a resource by previously allocated id from the entries created by the specified thread identifed by th_id.
void *ts_resource(ts_rsrc_id id) | Fetches a resource by previously allocated id from the entries created by the calling thread.
void ts_free_thread(void) | Destroys and frees the entries for the calling thread, currently this API is only used by ISAPI module.
void ts_free_id(ts_rsrc_id id) | Destroys the resource identified by previously allocated id. Module globals are cleaned up in ZTS mode using this API.

Замечание: There are more TSRM API functions to enable the creation and destruction of interpreter contexts, the usage of such functionality is out of the scope of this documentation, please see TSRM/TSRM.h for more information.

TSRM Mutex API
Prototype | Description
MUTEX_T tsrm_mutex_alloc(void) | Allocates and returns a suitable MUTEX_T for the environment.
int tsrm_mutex_lock(MUTEX_T mutexp) | Locks mutexp for the calling thread.
int tsrm_mutex_unlock(MUTEX_T mutexp) | Unlocks mutexp for the calling thread.
void tsrm_mutex_free(MUTEX_T mutexp); | Destroys and frees the (unlocked) and previously allocated mutexp.

Замечание: The mutex API is exposed by TSRM. However, its internal usage is far too wide to document usefully here, none the less, basic functionality and prototypes are documented here.


  • « Thread-Safe Resource Manager
  • Introduction to Variables »
  • PHP Manual
  • Ядро PHP: Руководство хакера
  • Working with Variables

Working with Variables

Содержание

  • Introduction to Variables
  • Working with Arrays
  • Working with HashTable
  • Working with Objects


Introduction to Variables

A good understanding of how variables are stored and manipulated is essential to becoming a Hacker. The engine attempts to cover up the complexity of the concept of a variable that can be any type by providing a uniform and intuitive set of macros for accessing the structures various fields. As the Hacker works through this chapter, they should become comfortable with the terminology and concepts involved with Variables in PHP.

Замечание:

PHP is a dynamic, loosely typed language, that uses copy-on-write and reference counting.

To clarify what exactly is meant by the statement above: PHP is a high level language, weak typing is implicit of the engines preference to convert, or coerce variables into the required type at execution time. Reference counting is the means by which the engine can deduce when a variable no longer has any references in the users code, and so is able to free the structures associated with the variable.

All variables in PHP are represented by one structure, the zval:

typedef struct _zval_struct {
    zvalue_value value;        /* variable value */
    zend_uint refcount__gc;    /* reference counter */
    zend_uchar type;           /* value type */
    zend_uchar is_ref__gc;     /* reference flag */
} zval;

The zval_value is a union which can represent all types a variable may hold:

typedef union _zvalue_value {
    long lval;                 /* long value */
    double dval;               /* double value */
    struct {
        char *val;
        int len;               /* this will always be set for strings */
    } str;                     /* string (always has length) */
    HashTable *ht;             /* an array */
    zend_object_value obj;     /* stores an object store handle, and handlers */
} zvalue_value;

It should be clear from the structures above that a variable can be of one type, the variable data is represented by the appropriate field in the zval_value union. The zval itself holds the type, reference count and a flag to indicate if a variable is a reference.

Native Type Constants
Constant | Mapping
IS_NULL | no value is set in this case
IS_LONG | lval
IS_DOUBLE | dval
IS_BOOL | lval
IS_RESOURCE | lval
IS_STRING | str
IS_ARRAY | ht
IS_OBJECT | obj

Замечание:

There are additional constants that help to identify internal types such as constant arrays and callable objects, their usage is outside the scope of this part of the documentation.

The following table defines the macros exposed by the engine for working with zval values:

Accessor Macros
Prototype | Accesses | Description
zend_uchar Z_TYPE(zval zv) | type | returns the type of the value
long Z_LVAL(zval zv) | value.lval |
zend_bool Z_BVAL(zval zv) | value.lval | cast long value to zend_bool
double Z_DVAL(zval zv) | value.dval |
long Z_RESVAL(zval zv) | value.lval | returns the resource list identifier for value
char* Z_STRVAL(zval zv) | value.str.val | return the string value
int Z_STRLEN(zval zv) | value.str.len | return the length of the string value
HashTable* Z_ARRVAL(zval zv) | value.ht | return the HashTable (array) value
zend_object_value Z_OBJVAL(zval zv) | value.obj | returns object value
uint Z_OBJ_HANDLE(zval zv) | value.obj.handle | returns the object handle for object value
zend_object_handlers* Z_OBJ_HT_P(zval zv) | value.obj.handlers | returns the handler table for object value
zend_class_entry* Z_OBJCE(zval zv) | value.obj | returns the class entry for object value
HashTable* Z_OBJPROP(zval zv) | value.obj | returns the properties of object value
HashTable* Z_OBJPROP(zval zv) | value.obj | returns the properties of object value
HashTable* Z_OBJDEBUG(zval zv) | value.obj | if an object has the get_debug_info handler set, it is called, else Z_OBJPROP is called

Please check the Основы подсчета ссылок chapter for details how reference counting and references work in detail.

Reference Count Manipulation
Prototype | Description
zend_uint Z_REFCOUNT(zval zv) | returns the reference count of the value
zend_uint Z_SET_REFCOUNT(zval zv) | sets the reference count of the value, returning it
zend_uint Z_ADDREF(zval zv) | pre-increments the reference count of value, returning it
zend_uint Z_DELREF(zval zv) | pre-decrements the reference count of value, returning it
zend_bool Z_ISREF(zval zv) | tells if the zval is a reference
void Z_UNSET_ISREF(zval zv) | set is_ref__gc to 0
void Z_SET_ISREF(zval zv) | set is_ref__gc to 1
void Z_SET_ISREF_TO(zval zv, zend_uchar to) | set is_ref__gc to to

Замечание:

The Z_* macros above all take a zval, they are all defined again suffixed with _P to take a pointer to a zval, for example zend_uchar Z_TYPE_P(zval* pzv), and again suffixed with _PP to take a pointer to a pointer to a zval, for example zend_uchar Z_TYPE_PP(zval** ppzv)

Creation, Destruction, Separation and Copying
Prototype | Description
ALLOC_ZVAL(zval* pzval) | emallocs pzval
ALLOC_INIT_ZVAL(zval* pzval) | emallocs pzval, and points pzval at a null typed zval for sanity
MAKE_STD_ZVAL(zval* pzval) | emallocs pzval, setting the refcount to 1
ZVAL_COPY_VALUE(zval* dst, zval* src) | sets the value and type of dst from the value and type of src
INIT_PZVAL_COPY(zval* dst, zval*dst) | performs ZVAL_COPY_VALUE, setting refcount of dst to 1, and setting is_ref__gc to 0
SEPARATE_ZVAL(zval** ppzval) | if the refcount of ppzval is >1, redirects *ppzval to a newly emalloc'd, copied, and constructed zval of the same type and value
SEPARATE_ZVAL_IF_NOT_REF(zval** ppzval) | if *ppzval is not a reference, will perform SEPARATE_ZVAL on ppzval
SEPARATE_ZVAL_TO_MAKE_IS_REF(zval** ppzval) | if *ppzval is not a reference, performs SEPARATE_ZVAL then Z_SET_ISREF_PP on ppzval
COPY_PZVAL_TO_ZVAL(zval dst, zval** src) | results in dst being a copy of src without affecting the refcount of src
MAKE_COPY_ZVAL(zval** src, zval* dst) | performs INIT_PZVAL_COPY, then zval_copy_ctor on the new zval
void zval_copy_ctor(zval** pzval) | performs maintenance of reference counts, used widely throughout the engine
void zval_ptr_dtor(zval* pzval) | decrements the refcount for the variable, if no refcounts remain the variable is destroyed
FREE_ZVAL(zval* pzval) | efrees pzval

Замечание:

Objects and Resources have a reference count as part of their respective structures, when zval_ptr_dtor is called on either, their appropriate del_ref method is executed. See Working with Objects and Working with Resources for more information.

If the Hacker only has room to remember two more functions, they should be zval_copy_ctor and zval_ptr_dtor, these are at the basis of the engines reference counting mechanisms and it is important to note that zval_copy_ctor does not actually result in any copying occuring under normal circumstances, it simply increases the reference count. By the same token, zval_ptr_dtor only really destroys a variable when there are no references remaining to it and the refcount is at 0.

PHP is weakly typed, as such the engine provides API functions for converting variables from one type to another.

Type Conversion
Prototype
void convert_to_long(zval* pzval)
void convert_to_double(zval* pzval)
void convert_to_long_base(zval* pzval, int base)
void convert_to_null(zval* pzval)
void convert_to_boolean(zval* pzval)
void convert_to_array(zval* pzval)
void convert_to_object(zval* pzval)
void convert_object_to_type(zval* pzval, convert_func_t converter)

Замечание:

convert_func_t functions should have the prototype (void) (zval* pzval)

By now you should have a good understanding of: the types that are native to the engine, how to detect types and read zval values, how to manipulate refcounts, and other zval flags


Working with Arrays

Arrays are stored in HashTable strucures, and have the zval type IS_ARRAY. The API functions for creating, destroying and manipulating these structures as variables are documented here and can be found in Zend/zend_API.h

HashTable as Variable API
Prototype | Description
void array_init(zval* pzval) | initializes the variable as a HashTable, setting type and appropriate destructor function for the HashTable
void array_init_size(zval* pzval) | initializes the variable as array_init with a minimum of size buckets

Замечание:

Do not squint too hard looking for array_destroy: to destroy a variable array you should call zval_ptr_dtor on the variable, if there are no other references to the variable it will result in the array being destroyed.

Indexed Arrays API
Prototype
int add_index_long(zval* pzval, ulong index, long value)
int add_index_null(zval* pzval, ulong index)
int add_index_bool(zval* pzval, ulong index, zend_bool value)
int add_index_bool(zval* pzval, ulong index, zend_bool value)
int add_index_resource(zval* pzval, ulong index, uint value)
int add_index_double(zval* pzval, ulong index, double value)
int add_index_string(zval* pzval, ulong index, char* string, zend_bool duplicate)
int add_index_stringl(zval* pzval, ulong index, char* string, uint length, zend_bool duplicate)
int add_index_zval(zval* pzval, ulong index, zval* value)
int add_next_index_long(zval* pzval, long value)
int add_next_index_null(zval* pzval)
int add_next_index_bool(zval* pzval, zend_bool value)
int add_next_index_resource(zval* pzval, uint value)
int add_next_index_double(zval* pzval, double value)
int add_next_index_string(zval* pzval, const char* string, zend_bool dulpicate)
int add_next_index_stringl(zval* pzval, const char* string, uint length, zend_bool duplicate)
int add_next_index_zval(zval* pzval, zval* value)
Associative Arrays API
Prototype
int add_assoc_long(zval* pzval, const char* key, long value)
int add_assoc_long_ex(zval* pzval, const char* key, uint klen, long value)
int add_assoc_null(zval* pzval, const char* key)
int add_assoc_null_ex(zval* pzval, const char* key, uint klen)
int add_assoc_bool(zval* pzval, const char* key, zend_bool value)
int add_assoc_bool(zval* pzval, const char* key, zend_bool value)
int add_assoc_bool_ex(zval* pzval, const char* key, uint klen, zend_bool value)
int add_assoc_resource(zval* pzval, const char* key, uint value)
int add_assoc_resource_ex(zval* pzval, const char* key, uint klen, uint value)
int add_assoc_double(zval* pzval, const char* key, double value)
int add_assoc_double_ex(zval* pzval, const char* key, uint klen, double value)
int add_assoc_string(zval* pzval, const char* key, const char* value)
int add_assoc_string_ex(zval* pzval, const char* key, uint klen, const char* value)
int add_assoc_stringl(zval* pzval, const char* key, const char* value, uint vlen, zend_bool duplicate)
int add_assoc_stringl_ex(zval* pzval, const char* key, uint klen, const char* value, uint vlen, zend_bool duplicate)
int add_assoc_zval(zval* pzval, const char* key, zval* value)
int add_assoc_zval_ex(zval* pzval, const char* key, uint klen, zval* value)

Замечание:

add_*_string functions that accept a parameter named duplicate, will duplicate the string with estrndup when duplicate is true

Замечание:

add_*_zval functions do not adjust the refcount of the value parameter

To perform more advanced operations on array variables we must use the HashTable API directly.


Working with HashTable

The HashTable structure serves many purposes in PHP and can be found everywhere, a good understanding of it's functionality is a prerequisite of being a good Hacker.

The HashTable implemented by the engine is a standard HashTable, that is to say, a key => value based store, where the keys are always strings, whose hashes are calculated with a built in hashing algorithm zend_inline_hash_func(const char* key, uint length), which results in good distribution, and reasonable usage.

The internal structure and exact operation of HashTable is out of the scope of this document, this document serves to inform you of the API's available and how best to use them. For a more detailed picture of the HashTable see Zend/zend_hash.h.

Unless otherwise stated, these functions all return FAILURE if the requested operation fails for any reason, otherwise SUCCESS is returned.

Замечание:

It is important to remember that ordinarily HashTable API functions expect key lengths to be the length of the null terminated string, including the null termination, in other words they expect strlen(key) + 1

Below are some typedefs you should know when interacting with HashTable. They are mostly self explanitory and will allow the Hacker to fully understand the prototypes below properly.

typedef ulong (*hash_func_t)(const char *arKey, uint nKeyLength); /* mostly redundant */
typedef int  (*compare_func_t)(const void *, const void * TSRMLS_DC); /* comparison function */
typedef void (*sort_func_t)(void *, size_t, register size_t, compare_func_t TSRMLS_DC); /* sorting function */
typedef void (*dtor_func_t)(void *pDest); /* destructor function */
typedef void (*copy_ctor_func_t)(void *pElement); /* copy constructor */
typedef void (*copy_ctor_param_func_t)(void *pElement, void *pParam); /* copy with argument constructor */
typedef int (*apply_func_t)(void *pDest TSRMLS_DC); /* apply function */
typedef int (*apply_func_arg_t)(void *pDest, void *argument TSRMLS_DC); /* apply with argument function */
typedef int (*apply_func_args_t)(void *pDest TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key); /* apply with multiple arguments function */
HashTable API
int zend_hash_init(HashTable* ht, uint size, hash_func_t hash, dtor_func_t destructor, zend_bool persistent)
Initializes the hash table to hold at least size elements, hash exists for historical reasons and is always ignored, zend_inline_hash_func is always used as the hashing function. destructor may be NULL.
int zend_hash_add(HashTable* ht, const char* key, uint klen, void* data, uint dlen, void** dest)
adds data to the table using the specified key, where the key is length bytes long (and will be copied from key to the table). If the key is set FAILURE will be returned.
int zend_hash_update(HashTable* ht, const char* key, uint klen, void* data, uint dlen, void** dest)
adds data to the table using the specified key, where the key is length bytes long (and will be copied from key to the table). If the key has been set previously the old data has dtor_func_t called on it and the existing data is replaced with data
int zend_hash_find(HashTable* ht, const char* key, uint klen, void** data)
searches the table for key, setting *data and returning SUCCESS if it is found.
zend_bool zend_hash_exists(HashTable* ht, const char* key, uint klen)
returns positively if key is found in ht
int zend_hash_del(HashTable* ht, const char* key, uint klen)
removes the entry identified by key from the table if found
int zend_hash_index_update(HashTable* ht, ulong index, void* data, uint dsize, void** dest)
updates the entry at index in ht, with the data at data
int zend_hash_index_del(HashTable* ht, ulong index)
deletes the entry at index from ht
int zend_hash_index_find(HashTable* ht, ulong index, void** data)
redirects *data to the data identified by index in ht
int zend_hash_index_exists(HashTable* ht, ulong index)
returns positively if index is found in ht
ulong zend_hash_next_free_element(HashTable* ht)
returns the index of the next free element in ht
Предостережение

zend_hash_* functions that accept void* data should normally cast it to (void**) (ie, (void**) &data)

Traversing the HashTable is often necessary, to do this you provide a pointer to a HashTable, with an optional HashPosition - a structure internal to the HashTable API that allows traversal not to affect the internal position of HashTable. The following traversal functions are provided, and an example usage found below.

HashTable Traversal API
int zend_hash_internal_pointer_reset(HashTable* ht)
resets the internal pointer of ht to the start
int zend_hash_internal_pointer_reset_ex(HashTable* ht, HashPosition position)
sets position to the start of ht
int zend_hash_get_current_data(HashTable* ht, void* data)
gets the data at the current position in ht, data should be cast to void**, ie: (void**) &data
int zend_hash_get_current_data_ex(HashTable* ht, void* data, HashPosition position)
sets data to the data at position in ht
int zend_hash_get_current_key(HashTable* ht, void* data, char**key, uint klen, ulong index, zend_bool duplicate)
sets key, klen, and index from the key information at the current position. The possible return values HASH_KEY_IS_STRING and HASH_KEY_IS_LONG are indicative of the kind of key found at the current posision.
int zend_hash_get_current_key_ex(HashTable* ht, void* data, char**key, uint klen, ulong index, zend_bool duplicate, HashPosition position)
sets key, klen, and index from the key information at position. The possible return values HASH_KEY_IS_STRING and HASH_KEY_IS_LONG are indicative of the kind of key found at position.
int zend_hash_move_forward(HashTable* ht)
moves the internal pointer of ht to the next entry in ht
int zend_hash_move_forward_ex(HashTable* ht, HashPosition position)
moves position to the next entry in ht

The functions above allow traversal over a HashTable to be much like a normal loop, which will look something like:

HashPosition position;
zval **data = NULL;

for (zend_hash_internal_pointer_reset_ex(ht, &position);
     zend_hash_get_current_data_ex(ht, (void**) &data, &position) == SUCCESS;
     zend_hash_move_forward_ex(ht, &position)) {

     /* by now we have data set and can use Z_ macros for accessing type and variable data */

     char *key = NULL;
     uint  klen;
     ulong index;

     if (zend_hash_get_current_key_ex(ht, &key, &klen, &index, 0, &position) == HASH_KEY_IS_STRING) {
         /* the key is a string, key and klen will be set */
     } else {
         /* we assume the key to be long, index will be set */
     }
}

Замечание:

If a HashTable has been passed into the engine, it is a good idea to use the zend_hash_*_ex API to avoid unexpected behaviour in userland.

Замечание:

If a duplicate of the key is requested and HAS_KEY_IS_STRING is returned the caller must efree the duplicated key

In addition to traversal, the engine provides API functions for merging, copying, and comparing HashTables. These are all concepts that the Hacker should be familiar with. A concept possibly not in the repertoire of the Hacker is applying, which is lamens terms is functionality of the HashTable API allowing the Hacker to pass a callback function to be executed on every entry in a HashTable.

Copying, Merging and Sorting
void zend_hash_copy(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor, void *tmp, uint size)
Copies the contents of source to target. tmp should be an unallocated temporary pointer of the appropriate type, used during copying. size is the size of each element.
void zend_hash_merge(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor, void *tmp, uint size, zend_bool overwrite)
Merges the contents of source into destination, replacing existing entries only where overwrite is true.
void int zend_hash_sort(HashTable *ht, sort_func_t sort_func, compare_func_t compare_func, int renumber TSRMLS_DC)
renumber controls if indexes should be preserved, see the typedefs at the start of this section for more information

Замечание:

When a function accepts a copy_ctor_func_t pCopyConstructor, the function passed with be executed upon creation of every new entry in the HashTable. The most common copy constructor used within the engine is a wrapper around zval_copy_ctor, the macro ZVAL_COPY_CTOR.


  • « Working with HashTable
  • Writing Functions »
  • PHP Manual
  • Working with Variables
  • Working with Objects

Working with Objects


Writing Functions

Functions and Methods in PHP take much the same form, a method is simply a function with a specific scope; the scope of their class entry. The Hacker will read about class entries in other sections of the Hacker's guide. The purpose of this section is to introduce the Hacker to the anatomy of a function or method; the Hacker will learn how to define functions, how to accept variables and how to return variables to the programmer of PHP.

The anatomy of a function could not be simpler:

PHP_FUNCTION(hackers_function) {
  /* your accepted arguments here */
  long number;

  /* accepting arguments */
  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &number) != SUCCESS) {
      return;
  }

  /* do some work on the input */
  number *= 2;

  /* set return value */
  RETURN_LONG(number);
}

The PHP_FUNCTION(hackers_function) preprocessor instruction will result in the following declaration:

void zif_hackers_function(INTERNAL_FUNCTION_PARAMETERS)

INTERNAL_FUNCTION_PARAMETERS is defined as a macro and explained in the following table:

INTERNAL_FUNCTION_PARAMETERS
Name and type | Description | Access macros
int ht | Number of actual parameters passed by user | ZEND_NUM_ARGS()
zval *return_value | Pointer to a PHP variable that can be filled with the return value passed to the user. The default type is IS_NULL. | RETVAL_*, RETURN_*
zval **return_value_ptr | When returning references to PHP set this to a pointer to your variable. It is not suggested to return references. |
zval *this_ptr | If this is a method call, points to the PHP variable holding the $this object. | getThis()
int return_value_used | Flag indicating whether the returned value will be used by the caller. |

For clarity, the fully expanded declaration for PHP_FUNCTION(hackers_function) looks like:

void zif_hackers_function(int ht, zval* return_value, zval** return_value_ptr, zval* this_ptr, int return_value_used)

The presence of this_ptr may be confusing, classes are covered in detail in later sections, suffice to say that PHP_METHOD(MyClass, hackersFunction) would result in the following declaration:

void zim_MyClass_hackersFunction(INTERNAL_FUNCTION_PARAMETERS)

hackers_function doesn't do anything useful, it accepts a number using the zend_parse_parameters API, doubles it, and returns it to the engine. It is obvious that a normal function would have to do something more complex than double the input, for the purposes of education we are keeping it simple. On entry to the function return_value is allocated and initialized to null, making null the default return value of any function in PHP.

If zend_parse_parameters does not recieve what is specified by the Hacker as the correct arguments, and the arguments recieved cannot be converted to conform with type_spec an error will be raised, and by convention, the Hacker should return immediately.

Замечание:

Arrays, Objects, and Resources cannot be converted.

Parsing Parameters Prototypes
int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...)
int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...)
int zend_parse_parameter(int flags, int arg_num TSRMLS_DC, zval **arg, const char *spec, ...)

Замечание:

zend_parse_parameter is available from version 5.5, it behaves like zend_parse_parameters_ex except that instead of reading the arguments from the stack, it receives a single zval to convert, which may be changed in place.

Замечание:

flags is intended to be a mask, currently only ZEND_PARSE_PARAMS_QUIET will have any impact (supress warnings)

The variable arguments recieved by these API functions are expected to be the address of C variables, and should be considered the output of the zend_parse_parameters API functions.

Type Specifiers
Spec | Type | Locals
a | array | zval*
A | array or object | zval*
b | boolean | zend_bool
C | class | zend_class_entry*
d | double | double
f | function | zend_fcall_info*, zend_fcall_info_cache*
h | array | HashTable*
H | array or object | HashTable*
l | long | long
L | long (limits out-of-range LONG_MAX/LONG_MIN) | long
o | object | zval*
O | object (of specified zend_class_entry) | zval*, zend_class_entry*
p | string (a valid path) | char*, int
r | resource | zval*
s | string | char*, int
z | mixed | zval*
Z | mixed | zval**

Замечание:

Where the type specifier is O, the local zend_class_entry* is to be considered input (part of the type spec) to zend_parse_parameter

Advanced Type Specifiers
Spec | Description
* | a variable number of argument of the preceeding type, 0 or more
+ | a variable number of argument of the preceeding type, 1 or more
| | indicates that the remaining parameters are optional
/ | SEPARATE_ZVAL_IF_NOT_REF on the parameter it follows
! | the preceeding parameter can be of the specified type or null For 'b', 'l' and 'd', an extra argument of type zend_bool* must be passed after the corresponding bool*, long* or double* addresses which will be set true if null is recieved.

Замечание:

Consult README.PARAMETER_PARSING_API included in source distributions for more information on parsing parameters

Once the Hacker's function has executed whatever it was implemented to execute, it is time to set the return_value for the engine. The RETURN_ and RETVAL_ macros are just wrappers around Z_*_P macros that work with return_value.

Замечание:

RETURN_ macros cause execution to leave the function immediately (ie: return;), while RETVAL_ macros allow execution to continue after return_value has been set.

The Hacker should now have a reasonable understanding of the anatomy of a function, and to some degree, the anatomy of a method.


  • « Writing Functions
  • Working with Resources »
  • PHP Manual
  • Ядро PHP: Руководство хакера
  • Writing Classes

Writing Classes


  • « Writing Classes
  • Working with INI settings »
  • PHP Manual
  • Ядро PHP: Руководство хакера
  • Working with Resources

Working with Resources

This section will serve to introduce the Hacker to the concept and usage of Resources in PHP.


  • « Working with Resources
  • Working with streams »
  • PHP Manual
  • Ядро PHP: Руководство хакера
  • Working with INI settings

Working with INI settings


Working with streams

Замечание:

Information on using streams within the PHP source code can be found in the Streams API for PHP Extension Authors reference.


The "counter" Extension - A Continuing Example

Содержание

  • Установка и настройка
  • Предопределенные константы
  • Примеры
  • Counter
  • Basic
  • Extended

Preface

Throughout this Zend documentation, references are made to an example module in order to illustrate various concepts. The "counter" extension is this example, a fictional yet functional Zend module which strives to use as much of the Zend API as is reasonably possible. This short chapter describes the userland interface to the completed extension.

Замечание: "counter" serves no practical purpose whatsoever, as the functionality it provides is far more effectively implemented by appropriate userland code.


  • « The "counter" Extension - A Continuing Example
  • Введение »
  • PHP Manual
  • The "counter" Extension - A Continuing Example
  • Установка и настройка

Установка и настройка

Содержание

  • Введение
  • Настройка во время выполнения
  • Типы ресурсов


Введение

The "counter" extension provides any number of counters to PHP code using it which reset at times determined by the caller.

There are three interfaces to "counter": basic, extended, and objective. The basic interface provides a single counter controlled by INI settings and function calls. The extended interface provides an arbitrary number of named counter resources which may optionally persist beyond the lifetime of a single PHP request. The objective interface combines both the basic and extended interfaces into a Counter class.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Counter configuration options
Name | Default | Changeable | Changelog
counter.reset_time | COUNTER_RESET_PER_REQUEST | PHP_INI_ALL |
counter.save_path | "" | PHP_INI_ALL |
counter.initial_value | "0" | PHP_INI_ALL |

Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

counter.reset_time integer
counter.reset_time tells "counter" to reset the counter used by the basic interface. It may be any of the COUNTER_RESET_* constants (see below).
counter.save_path string
Tells "counter" where to save data that has to persist between invocations of PHP (i.e. any counter that has COUNTER_RESET_NEVER or COUNTER_FLAG_SAVE). A file will be created at this path, which must be readable and writable to whatever user PHP is running as.
counter.initial_value integer
Sets the initial value of the counter used by the basic interface whenever it is reset.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

The "counter" extension defines one resource type: a counter.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

COUNTER_FLAG_PERSIST (integer)
A counter with this flag will be created as a persistent resource.
COUNTER_FLAG_SAVE (integer)
A counter with this flag will be saved between invocations of PHP.
COUNTER_FLAG_NO_OVERWRITE (integer)
This flag causes counter_create() to avoid overwriting an existing named counter with a new one.
COUNTER_META_NAME (string)
Pass this constant to get the name of a counter resource or object.
COUNTER_META_IS_PERISTENT (string)
Pass this constant to determine whether a counter resource or object is persistent (has the COUNTER_FLAG_PERSIST flag).
COUNTER_RESET_NEVER (integer)
The counter will never be reset.
COUNTER_RESET_PER_LOAD (integer)
The counter will be reset on each invocation of PHP.
COUNTER_RESET_PER_REQUEST (integer)
The counter will be reset on each request.


  • « Предопределенные константы
  • Basic interface »
  • PHP Manual
  • The "counter" Extension - A Continuing Example
  • Примеры

Примеры

Содержание

  • Basic interface
  • Extended interface
  • Objective interface


Basic interface

The basic interface provides three simple functions, illustrated here:

Пример #1 "counter"'s basic interface

<?php
$starting_counter_value = counter_get();
counter_bump(1);
$second_counter_value = counter_get();
counter_reset();
$final_counter_value = counter_get();
printf("%3d %3d %3d", $starting_counter_value, $second_counter_value, $final_counter_value);
?>

Результат выполнения данного примера:

  0   1   0

The basic interface also provides a number of INI settings.


Extended interface

The extended interface provides a small suite of functions that allow the user to define an arbitrary number of named counters with unique settings. The basic interface can be used in parallel with the extended interface.

Пример #1 "counter"'s extended interface

<?php
function print_counter_info($counter)
{
    if (is_resource($counter)) {
        printf("Counter's name is '%s' and is%s persistent. Its current value is %d.\n",
            counter_get_meta($counter, COUNTER_META_NAME),
            counter_get_meta($counter, COUNTER_META_IS_PERSISTENT) ? '' : ' not',
            counter_get_value($counter));
    } else {
      print "Not a valid counter!\n";
    }
}

if (($counter_one = counter_get_named("one")) === NULL) {
    $counter_one = counter_create("one", 0, COUNTER_FLAG_PERSIST);
}
counter_bump_value($counter_one, 2);
$counter_two = counter_create("two", 5);
$counter_three = counter_get_named("three");
$counter_four = counter_create("four", 2, COUNTER_FLAG_PERSIST | COUNTER_FLAG_SAVE | COUNTER_FLAG_NO_OVERWRITE);
counter_bump_value($counter_four, 1);

print_counter_info($counter_one);
print_counter_info($counter_two);
print_counter_info($counter_three);
print_counter_info($counter_four);
?>

When run once, the above example outputs:

Counter's name is 'one' and is persistent. Its current value is 2.
Counter's name is 'two' and is not persistent. Its current value is 5.
Not a valid counter!
Counter's name is 'four' and is persistent. Its current value is 3.

If run a second time within the same instance of PHP, it outputs:

Counter's name is 'one' and is persistent. Its current value is 4.
Counter's name is 'two' and is not persistent. Its current value is 5.
Not a valid counter!
Counter's name is 'four' and is persistent. Its current value is 4.

If then run a third time in a different instance of PHP, it outputs:

Counter's name is 'one' and is persistent. Its current value is 2.
Counter's name is 'two' and is not persistent. Its current value is 5.
Not a valid counter!
Counter's name is 'four' and is persistent. Its current value is 5.


Objective interface

The objective interface provides an object-oriented way to access the extended interfaces. The following example shows how the above one would be implemented using the objective interface. The output of this example is exactly the same, except that instead of printing "Not a valid counter!", this will instead issue a PHP warning that the variable $counter_three is not an object. This example shows that it is possible to subclass the Counter class defined by the extension, as well as that the counter's value is maintained using an instance variable rather than method access.

Пример #1 "counter"'s objective interface

<?php
class MyCounter extends Counter
{
    public function printCounterInfo() {
        printf("Counter's name is '%s' and is%s persistent. Its current value is %d.\n",
            $this->getMeta(COUNTER_META_NAME),
            $this->getMeta(COUNTER_META_IS_PERSISTENT) ? '' : ' not',
            $this->value);
    }
}

Counter::setCounterClass("MyCounter");
if (($counter_one = Counter::getNamed("one")) === NULL) {
    $counter_one = new Counter("one", 0, COUNTER_FLAG_PERSIST);
}
$counter_one->bumpValue(2); // we aren't allowed to "set" the value directly
$counter_two = new Counter("two", 5);
$counter_three = Counter::getNamed("three");
$counter_four = new Counter("four", 2, COUNTER_FLAG_PERSIST | COUNTER_FLAG_SAVE | COUNTER_FLAG_NO_OVERWRITE);
$counter_four->bumpValue(1);

$counter_one->printCounterInfo();
$counter_two->printCounterInfo();
$counter_three->printCounterInfo();
$counter_four->printCounterInfo();
?>


The Counter class

Введение

Represents a single counter object.

Обзор классов

Counter {
__construct ( string $name [, int $initial_value [, int $flags ]] )
getValue ( void ) : int
bumpValue ( int $offset )
resetValue ( void ) : void
getMeta ( int $attribute ) : mixed
static getNamed ( string $name ) : Counter
static setCounterClass ( string $name ) : void
}

Содержание

  • Counter::__construct — Creates an instance of a Counter which maintains a single numeric value
  • Counter::getValue — Get the current value of a counter
  • Counter::bumpValue — Change the current value of a counter
  • Counter::resetValue — Reset the current value of a counter
  • Counter::getMeta — Return a piece of metainformation about a counter
  • Counter::getNamed — Retrieve an existing named counter
  • Counter::setCounterClass — Set the class returned by Counter::getNamed


Creates an instance of a Counter which maintains a single numeric value

  • « Counter
  • Counter::getValue »
  • PHP Manual
  • Counter
  • Creates an instance of a Counter which maintains a single numeric value

Counter::__construct

Counter::__construct — Creates an instance of a Counter which maintains a single numeric value

Описание

Counter::__construct ( string $name [, int $initial_value [, int $flags ]] )

Creates an instance of a Counter which maintains a single numeric value.

Список параметров

name
The new counter's name.
initial_value
The initial value of the counter. Defaults to zero (0).
flags
Flags for the new counter, chosen from the COUNTER_FLAG_* constants.

Возвращаемые значения

Returns a Counter object on success.

Ошибки

Counter::__construct() throws an Exception if something goes wrong.


Get the current value of a counter

  • « Counter::__construct
  • Counter::bumpValue »
  • PHP Manual
  • Counter
  • Get the current value of a counter

Counter::getValue

Counter::getValue — Get the current value of a counter

Описание

Counter::getValue ( void ) : int

Counter::getValue() returns the current value of a counter.

Возвращаемые значения

Counter::getValue() returns an integer.

Смотрите также

  • Counter::bumpValue() - Change the current value of a counter
  • Counter::resetValue() - Reset the current value of a counter


Change the current value of a counter

  • « Counter::getValue
  • Counter::resetValue »
  • PHP Manual
  • Counter
  • Change the current value of a counter

Counter::bumpValue

Counter::bumpValue — Change the current value of a counter

Описание

Counter::bumpValue ( int $offset )

Counter::bumpValue() updates the current value of a counter.

Список параметров

offset
The amount by which to change the counter's value. Can be negative.

Смотрите также

  • Counter::getValue() - Get the current value of a counter
  • Counter::resetValue() - Reset the current value of a counter


Reset the current value of a counter

  • « Counter::bumpValue
  • Counter::getMeta »
  • PHP Manual
  • Counter
  • Reset the current value of a counter

Counter::resetValue

Counter::resetValue — Reset the current value of a counter

Описание

Counter::resetValue ( void ) : void

Counter::resetValue() resets the current value of a counter to its original initial value.

Смотрите также

  • Counter::getValue() - Get the current value of a counter
  • Counter::bumpValue() - Change the current value of a counter


Return a piece of metainformation about a counter

  • « Counter::resetValue
  • Counter::getNamed »
  • PHP Manual
  • Counter
  • Return a piece of metainformation about a counter

Counter::getMeta

Counter::getMeta — Return a piece of metainformation about a counter

Описание

Counter::getMeta ( int $attribute ) : mixed

Counter::getMeta() returns metainformation about a counter.

Список параметров

attribute
The metainformation to retrieve.

Возвращаемые значения

Counter::getMeta() returns values of varying types based on which metainformation was requested.


Retrieve an existing named counter

  • « Counter::getMeta
  • Counter::setCounterClass »
  • PHP Manual
  • Counter
  • Retrieve an existing named counter

Counter::getNamed

Counter::getNamed — Retrieve an existing named counter

Описание

static Counter::getNamed ( string $name ) : Counter

Counter::getNamed() returns an existing counter by name if that name exists, or NULL otherwise. This is a static function.

Список параметров

name
The counter name to search for.

Возвращаемые значения

Counter::getNamed() returns an existing counter by name if that name exists, or NULL otherwise.


Set the class returned by Counter::getNamed

  • « Counter::getNamed
  • Basic »
  • PHP Manual
  • Counter
  • Set the class returned by Counter::getNamed

Counter::setCounterClass

Counter::setCounterClass — Set the class returned by Counter::getNamed()

Описание

static Counter::setCounterClass ( string $name ) : void

Counter::setCounterClass() changes the class of objects returned by Counter::getNamed(). The class being set must not have a public constructor and must be a subclass of Counter. If these conditions are not met, a fatal error is raised. This is a static function.

Список параметров

name
The name of the class to use.


The basic interface

Содержание

  • counter_get — Get the current value of the basic counter
  • counter_bump — Update the current value of the basic counter
  • counter_reset — Reset the current value of the basic counter


Get the current value of the basic counter

  • « Basic
  • counter_bump »
  • PHP Manual
  • Basic
  • Get the current value of the basic counter

counter_get

counter_get — Get the current value of the basic counter

Описание

counter_get ( void ) : int

counter_get() returns the current value of the basic interface's counter.

Возвращаемые значения

counter_get() returns an integer.

Смотрите также

  • counter_bump() - Update the current value of the basic counter
  • counter_reset() - Reset the current value of the basic counter


Update the current value of the basic counter

  • « counter_get
  • counter_reset »
  • PHP Manual
  • Basic
  • Update the current value of the basic counter

counter_bump

counter_bump — Update the current value of the basic counter

Описание

counter_bump ( int $offset ) : void

counter_bump() updates the current value of the basic interface's counter.

Список параметров

offset
The amount by which to change the counter's value. Can be negative.

Смотрите также

  • counter_get() - Get the current value of the basic counter
  • counter_reset() - Reset the current value of the basic counter


Reset the current value of the basic counter

  • « counter_bump
  • Extended »
  • PHP Manual
  • Basic
  • Reset the current value of the basic counter

counter_reset

counter_reset — Reset the current value of the basic counter

Описание

counter_reset ( void ) : void

counter_reset() resets the current value of the basic interface's counter to its original initial value.

Смотрите также

  • counter_get() - Get the current value of the basic counter
  • counter_bump() - Update the current value of the basic counter


The extended interface

Содержание

  • counter_create — Creates a counter which maintains a single numeric value
  • counter_get_value — Get the current value of a counter resource
  • counter_bump_value — Change the current value of a counter resource
  • counter_reset_value — Reset the current value of a counter resource
  • counter_get_meta — Return a piece of metainformation about a counter resource
  • counter_get_named — Retrieve an existing named counter as a resource


Creates a counter which maintains a single numeric value

  • « Extended
  • counter_get_value »
  • PHP Manual
  • Extended
  • Creates a counter which maintains a single numeric value

counter_create

counter_create — Creates a counter which maintains a single numeric value

Описание

counter_create ( string $name [, int $initial_value [, int $flags ]] ) : resource

Creates a counter which maintains a single numeric value.

Список параметров

name
The new counter's name.
initial_value
The initial value of the counter. Defaults to zero (0).
flags
Flags for the new counter, chosen from the COUNTER_FLAG_* constants.

Возвращаемые значения

Returns a counter resource.


Get the current value of a counter resource

  • « counter_create
  • counter_bump_value »
  • PHP Manual
  • Extended
  • Get the current value of a counter resource

counter_get_value

counter_get_value — Get the current value of a counter resource

Описание

counter_get_value ( resource $counter ) : int

counter_get_value() returns the current value of a counter resource.

Список параметров

counter
The counter resource to operate on.

Возвращаемые значения

counter_get_value() returns an integer.

Смотрите также

  • counter_bump_value() - Change the current value of a counter resource
  • counter_reset_value() - Reset the current value of a counter resource


Change the current value of a counter resource

  • « counter_get_value
  • counter_reset_value »
  • PHP Manual
  • Extended
  • Change the current value of a counter resource

counter_bump_value

counter_bump_value — Change the current value of a counter resource

Описание

counter_bump_value ( resource $counter , int $offset ) : void

counter_bump_value() updates the current value of a counter resource.

Список параметров

counter
The counter resource to operate on.
offset
The amount by which to change the counter's value. Can be negative.

Смотрите также

  • counter_get_value() - Get the current value of a counter resource
  • counter_reset_value() - Reset the current value of a counter resource


Reset the current value of a counter resource

  • « counter_bump_value
  • counter_get_meta »
  • PHP Manual
  • Extended
  • Reset the current value of a counter resource

counter_reset_value

counter_reset_value — Reset the current value of a counter resource

Описание

counter_reset_value ( resource $counter ) : void

counter_reset_value() resets the current value of a counter resource to its original initial value.

Список параметров

counter
The counter resource to operate on.

Смотрите также

  • counter_get_value() - Get the current value of a counter resource
  • counter_bump_value() - Change the current value of a counter resource


Return a piece of metainformation about a counter resource

  • « counter_reset_value
  • counter_get_named »
  • PHP Manual
  • Extended
  • Return a piece of metainformation about a counter resource

counter_get_meta

counter_get_meta — Return a piece of metainformation about a counter resource

Описание

counter_get_meta ( resource $counter , int $attribute ) : mixed

counter_get_meta() returns metainformation about a counter resource.

Список параметров

counter
The counter resource to operate on.
attribute
The metainformation to retrieve.

Возвращаемые значения

counter_get_meta() returns values of varying types based on which metainformation was requested.


Retrieve an existing named counter as a resource

  • « counter_get_meta
  • The PHP 5 build system »
  • PHP Manual
  • Extended
  • Retrieve an existing named counter as a resource

counter_get_named

counter_get_named — Retrieve an existing named counter as a resource

Описание

Counter::getNamed ( string $name ) : resource

counter_get_named() returns an existing counter by name if that name exists, or NULL otherwise.

Список параметров

name
The counter name to search for.

Возвращаемые значения

counter_get_name() returns an existing counter by name if that name exists, or NULL otherwise.


The PHP 5 build system

Содержание

  • Building PHP for extension development
  • The ext_skel script
  • Talking to the UNIX build system: config.m4
  • Talking to the Windows build system: config.w32

With all the functionality and flexibility available in PHP 5, it is no surprise that it consists of several thousand files and over one million lines of source code. Equally unsurprising is the necessity of a build system to manage so much data. This section describes how to set PHP up for extension development, the layout of an extension within the PHP source tree, and how to interface your extension with the build system.


Building PHP for extension development

In a typical PHP installation, the need for high performance almost always results in optimization at the cost of debugging facilities. This is a reasonable tradeoff for production use, but when developing an extension it falls short. What we need is a build of PHP which will give us some hints what has gone wrong when something does.

The Zend Engine provides a memory manager which is capable of tracking memory leaks in extensions and providing detailed debugging information. This tracking is disabled by default, as is thread-safety. To turn them on, pass the --enable-debug and --enable-maintainer-zts options to configure, along with whatever options you typically use. For instructions on building PHP from source, see the instructions at Общие инструкции по установке. A typical configure line might look like this:

$ ./configure --prefix=/where/to/install/php --enable-debug --enable-maintainer-zts --enable-cgi --enable-cli --with-mysql=/path/to/mysql


The ext_skel script

A PHP extension is composed of several files common to all extensions. As the details of many of those files are similar from extension to extension, it can be laborious to duplicate the content for each one. Fortunately, there is a script which can do all of the initial setup for you. It's called ext_skel, and it's been distributed with PHP since 4.0.

Running ext_skel with no parameters produces this output in PHP 5.2.2:

php-5.2.2/ext$ ./ext_skel
./ext_skel --extname=module [--proto=file] [--stubs=file] [--xml[=file]]
           [--skel=dir] [--full-xml] [--no-help]

  --extname=module   module is the name of your extension
  --proto=file       file contains prototypes of functions to create
  --stubs=file       generate only function stubs in file
  --xml              generate xml documentation to be added to phpdoc-cvs
  --skel=dir         path to the skeleton directory
  --full-xml         generate xml documentation for a self-contained extension
                     (not yet implemented)
  --no-help          don't try to be nice and create comments in the code
                     and helper functions to test if the module compiled
Generally, when developing a new extension the only parameters you will be interested in are --extname and --no-help. Unless you are already experienced with the structure of an extension, you will not want to use --no-help; specifying it causes ext_skel to leave out many helpful comments in the files it generates.

This leaves you with --extname, which tells ext_skel what the name of your extension is. This "name" is an all-lowercase identifier containing only letters and underscores which is unique among everything in the ext/ folder of your PHP distribution.

The --proto option is intended to allow the developer to specify a header file from which a set of PHP functions will be created, ostensibly for the purpose of developing an extension based on a library, but it often functions poorly with most modern header files. A test run on the zlib.h header resulted in a very large number of empty and nonsense prototypes in the ext_skel output files. The --xml and --full-xml options are entirely nonfunctional thus far. The --skel option can be used to specify a modified set of skeleton files to work from, a topic which is beyond the scope of this section.


Talking to the UNIX build system: config.m4

The config.m4 file for an extension tells the UNIX build system what configure options your extension supports, what external libraries and includes you require, and what source files are to be compiled as part of it. A reference to all the commonly used autoconf macros, both PHP-specific and those built into autoconf, is given in the Zend Engine 2 API reference section.

Подсказка

The version of autoconf you have installed makes a difference when developing an extension. For PHP 5.3 and earlier, you will have the best results with autoconf version 2.13 but versions up to and including 2.59 will work. For PHP 5.4 and later the oldest autoconf version you can use is 2.59 and you will have better results with later versions.

Пример #1 An example config.m4 file

dnl $Id$
dnl config.m4 for extension example
PHP_ARG_WITH(example, for example support,
[  --with-example[=FILE]       Include example support. File is the optional path to example-config])
PHP_ARG_ENABLE(example-debug, whether to enable debugging support in example,
[  --enable-example-debug        example: Enable debugging support in example], no, no)
PHP_ARG_WITH(example-extra, for extra libraries for example,
[  --with-example-extra=DIR      example: Location of extra libraries for example], no, no)

dnl Check whether the extension is enabled at all
if test "$PHP_EXAMPLE" != "no"; then

  dnl Check for example-config. First try any path that was given to us, then look in $PATH
  AC_MSG_CHECKING([for example-config])
  EXAMPLE_CONFIG="example-config"
  if test "$PHP_EXAMPLE" != "yes"; then
    EXAMPLE_PATH=$PHP_EXAMPLE
  else
    EXAMPLE_PATH=`$php_shtool path $EXAMPLE_CONFIG`
  fi

  dnl If a usable example-config was found, use it
  if test -f "$EXAMPLE_PATH" && test -x "$EXAMPLE_PATH" && $EXAMPLE_PATH --version > /dev/null 2>&1; then
    AC_MSG_RESULT([$EXAMPLE_PATH])
    EXAMPLE_LIB_NAME=`$EXAMPLE_PATH --libname`
    EXAMPLE_INCDIRS=`$EXAMPLE_PATH --incdirs`
    EXAMPLE_LIBS=`$EXAMPLE_PATH --libs`

    dnl Check that the library works properly
    PHP_CHECK_LIBRARY($EXAMPLE_LIB_NAME, example_critical_function,
    [
      dnl Add the necessary include dirs
      PHP_EVAL_INCLINE($EXAMPLE_INCDIRS)
      dnl Add the necessary libraries and library dirs
      PHP_EVAL_LIBLINE($EXAMPLE_LIBS, EXAMPLE_SHARED_LIBADD)
    ],[
      dnl Bail out
      AC_MSG_ERROR([example library not found. Check config.log for more information.])
    ],[$EXAMPLE_LIBS]
    )
  else
    dnl No usable example-config, bail
    AC_MSG_RESULT([not found])
    AC_MSG_ERROR([Please check your example installation.])
  fi

  dnl Check whether to enable debugging
  if test "$PHP_EXAMPLE_DEBUG" != "no"; then
    dnl Yes, so set the C macro
    AC_DEFINE(USE_EXAMPLE_DEBUG,1,[Include debugging support in example])
  fi

  dnl Check for the extra support
  if test "$PHP_EXAMPLE_EXTRA" != "no"; then
    if test "$PHP_EXAMPLE_EXTRA" == "yes"; then
      AC_MSG_ERROR([You must specify a path when using --with-example-extra])
    fi

    PHP_CHECK_LIBRARY(example-extra, example_critical_extra_function,
    [
      dnl Add the neccessary paths
      PHP_ADD_INCLUDE($PHP_EXAMPLE_EXTRA/include)
      PHP_ADD_LIBRARY_WITH_PATH(example-extra, $PHP_EXAMPLE_EXTRA/lib, EXAMPLE_SHARED_LIBADD)
      AC_DEFINE(HAVE_EXAMPLEEXTRALIB,1,[Whether example-extra support is present and requested])
      EXAMPLE_SOURCES="$EXAMPLE_SOURCES example_extra.c"
    ],[
      AC_MSG_ERROR([example-extra lib not found. See config.log for more information.])
    ],[-L$PHP_EXAMPLE_EXTRA/lib]
    )
  fi

  dnl Finally, tell the build system about the extension and what files are needed
  PHP_NEW_EXTENSION(example, example.c $EXAMPLE_SOURCES, $ext_shared)
  PHP_SUBST(EXAMPLE_SHARED_LIBADD)
fi

A short introduction to autoconf syntax

config.m4 files are written using the GNU autoconf syntax. It can be described in a nutshell as shell scripting augmented by a powerful macro language. Comments are delimited by the string dnl, and strings are quoted using left and right brackets (e.g. [ and ]). Quoting of strings can be nested as many times as needed. A full reference to the syntax can be found in the autoconf manual at » http://www.gnu.org/software/autoconf/manual/.

PHP_ARG_*: Giving users the option

The very first thing seen in the example config.m4 above, aside from a couple of comments, are three lines using PHP_ARG_WITH() and PHP_ARG_ENABLE(). These provide configure with the options and help text seen when running ./configure --help. As the names suggest, the difference between the two is whether they create a --with-* option or an --enable-* option. Every extension should provide at least one or the other with the extension name, so that users can choose whether or not to build the extension into PHP. By convention, PHP_ARG_WITH() is used for an option which takes a parameter, such as the location of a library or program required by an extension, while PHP_ARG_ENABLE() is used for an option which represents a simple flag.

Пример #2 Sample configure output

$ ./configure --help
...
  --with-example[=FILE]       Include example support. FILE is the optional path to example-config
  --enable-example-debug        example: Enable debugging support in example
  --with-example-extra=DIR      example: Location of extra libraries for example
...

$ ./configure --with-example=/some/library/path/example-config --disable-example-debug --with-example-extra=/another/library/path
...
checking for example support... yes
checking whether to enable debugging support in example... no
checking for extra libraries for example... /another/library/path
...

Замечание:

Regardless of the order in which options are specified on the command line when configure is called, the checks will be run in the order they are specified in config.m4.

Processing the user's choices

Now that config.m4 can provide the user with some choices of what to do, it's time to act upon those choices. In the example above, the obvious default for all three options, if any of them are unspecified, is "no". As a matter of convention, it is best to use this as the default for the option which enables the extension, as it will be overridden by phpize for extensions built separately, and should not clutter the extension space by default when being built into PHP. The code to process the three options is by far the most complicated.

Handling the --with-example[=FILE] option

The first check made of the --with-example[=FILE] option is whether it was set at all. As this option controls the inclusion of the entire extension, if it was unspecified, given in the negative form (--without-example ), or given the value "no", nothing else is done at all. In the example above, it is specified with the value /some/library/path/example-config, so the first test succeeds.

Next, the code calls AC_MSG_CHECKING(), an autoconf macro which outputs a standard "checking for something" line, and checks whether the user gave an explicit path to the fictional example-config. In this example, PHP_EXAMPLE got the value /some/library/path/example-config, which is now copied into the EXAMPLE_PATH variable. Had the user specified only --with-example , the code would have executed $php_shtool path $EXAMPLE_CONFIG, which would try to guess the location of example-config using the user's current PATH. Either way, the next step is to check whether the chosen EXAMPLE_PATH is a regular file, is executable, and can be run successfully. If so, AC_MSG_RESULT() is called, which completes the output line started by AC_MSG_CHECKING(). Otherwise, AC_MSG_ERROR() is called, which prints the given message and halts configure immediately.

The code now determines some site-specific configuration information by running example-config several times. The next call is to PHP_CHECK_LIBRARY(), a macro provided by the PHP buildsystem as a wrapper around autoconf's AC_CHECK_LIB(). PHP_CHECK_LIBRARY() attempts to compile, link, and run a program which calls the symbol specified by the second parameter in the library specified by the first, using the string given in the fifth as extra linker options. If the attempt succeeds, the script given in the third parameter is run. This script tells the PHP buildsystem to extract include paths, library paths, and library names from the raw option strings example-config provided. If the attempt fails, the script in the fourth parameter is run instead. In this case, AC_MSG_ERROR() is called to stop processing.

Handling the --enable-example-debug option

Processing the --enable-example-debug is much simpler. A simple check for its truth value is performed. If that check succeeds, AC_DEFINE() is called to make the C macro USE_EXAMPLE_DEBUG available to the source of the extension. The third parameter is a comment string for config.h; it is safe to leave this empty, and often is.

Handling the --with-example-extra=DIR option

For the sake of this example, the fictional "extra" functionality requested by the --with-example-extra=DIR option does not share the fictional example-config program, nor does it have any default paths to search. Therefore, the user is required to provide the installation prefix of the necessary library. This setup is somewhat unlikely in a real-world extension, but is considered illustrative.

The code begins in a now-familiar way by checking the truth value of PHP_EXAMPLE_EXTRA. If a negative form was provided, no further processing is done; the user did not request extra functionality. If a positive form was provided without a parameter, AC_MSG_ERROR() is called to halt processing. The next step is another invocation of PHP_CHECK_LIBRARY(). This time, since there is no set of predefined compiler options provided, PHP_ADD_INCLUDE() and PHP_ADD_LIBRARY_WITH_PATH() are used to construct the necessary include paths, library paths, and library flags for the extra functionality. AC_DEFINE() is also called to indicate to the code that the extra functionality was both requested and available, and a variable is set to tell later code that there are extra source files to build. If the check fails, the familiar AC_MSG_ERROR() is called. A different way to handle the failure would have been to call AC_MSG_WARNING() instead, e.g.:

AC_MSG_WARNING([example-extra lib not found. example will be built without extra functionality.])

In this case, configure would print a warning message rather than an error, and continue processing. Which way such failures are handled is a design decision left to the extension developer.

Telling the buildsystem what was decided

With all the necessary includes and libraries specified, with all the options processed and macros defined, one more thing remains to be done: The build system must be told to build the extension itself, and which files are to be used for that. To do this, the PHP_NEW_EXTENSION() macro is called. The first parameter is the name of the extension, which is the same as the name of the directory containing it. The second parameter is the list of all source files which are part of the extension. See PHP_ADD_BUILD_DIR() for information about adding source files in subdirectories to the build process. The third parameter should always be $ext_shared, a value which was determined by configure when PHP_ARG_WITH() was called for --with-example[=FILE] . The fourth parameter specifies a "SAPI class", and is only useful for extensions which require the CGI or CLI SAPIs specifically. It should be left empty in all other cases. The fifth parameter specifies a list of flags to be added to CFLAGS while building the extension; the sixth is a boolean value which, if "yes", will force the entire extension to be built using $CXX instead of $CC. All parameters after the third are optional. Finally, PHP_SUBST() is called to enable shared builds of the extension. See Extension FAQs for more information on disabling support for building an extension in shared mode.

The counter extension's config.m4 file

The counter extension previously documented has a much simpler config.m4 file than that described above, as it doesn't make use of many buildsystem features. This is a preferred method of operation for any extension that doesn't use an external or bundled library.

Пример #3 counter's config.m4 file

dnl
$
Id$
dnl config.m4 for extension counter

PHP_ARG_ENABLE(counter, for counter support,
[  --enable-counter            Include counter support])

dnl Check whether the extension is enabled at all
if test "$PHP_COUNTER" != "no"; then
  dnl Finally, tell the build system about the extension and what files are needed
  PHP_NEW_EXTENSION(counter, counter.c counter_util.c, $ext_shared)
  PHP_SUBST(COUNTER_SHARED_LIBADD)
fi


Talking to the Windows build system: config.w32

An extension's config.w32 file is similar in usage to the config.m4 file, with two critical differences: first, it is used for Windows builds, and second, it is written in JavaScript. This section makes no attempt to cover JavaScript syntax. For the moment, this section is incomplete in lieu of a Win32 testbed, and an experimental-only port of the example config.m4 is the only example provided.

Пример #1 An example config.w32 file

// $Id$
// vim:ft=javascript
ARG_WITH("example", "for example support", "no");
ARG_ENABLE("example-debug", "for debugging support in example", "no")
ARG_WITH("example-extra", "for extra functionality in example", "no")
if (PHP_EXAMPLE != "no") {
    if (CHECK_LIB("libexample.lib", "example", PHP_EXAMPLE) &&
        CHECK_HEADER_ADD_INCLUDE("example.h", "CFLAGS_EXAMPLE", PHP_EXAMPLE + "\\include")) {

        if (PHP_EXAMPLE_DEBUG != "no") {
            AC_DEFINE('USE_EXAMPLE_DEBUG', 1, 'Debug support in example');
        }

        if (PHP_EXAMPLE_EXTRA != "no" &&
            CHECK_LIB("libexample-extra.lib", "example", PHP_EXAMPLE) &&
            CHECK_HEADER_ADD_INCLUDE("example-extra.h", "CFLAGS_EXAMPLE", PHP_EXAMPLE + ";" + PHP_PHP_BUILD + "\\include") {
            AC_DEFINE('HAVE_EXAMPLEEXTRA', 1, 'Extra functionality in example');
            HAVE_EXTRA = 1;
        } else {
            WARNING( "extra example functionality not enabled, lib not found" );
        }

        EXTENSION("example", "example.c");
        if (HAVE_EXTRA == 1) {
            ADD_SOURCES("example-extra.c");
        }
    } else {
        WARNING( "example not enabled; libraries not found" );
    }
}

The counter extension's config.w32 file

The counter extension previously documented has a much simpler config.w32 file than that described above, as it doesn't make use of many buildsystem features.

Пример #2 counter's config.w32 file

// $Id$
// vim:ft=javascript
ARG_ENABLE("counter", "for counter support", "no");
if (PHP_COUNTER != "no") {
    EXTENSION("counter", "counter.c");
    ADD_SOURCE("counter-util.c");
}


Extension structure

Содержание

  • Files which make up an extension
  • Basic constructs
  • The zend_module structure
  • Extension globals
  • Life cycle of an extension
  • Testing an extension

Many extension-writing guides focus on simple examples first and ignore the requirements of more complex implementations until later. Often such guides must repeat themselves over and over in order to describe these new features. This section describes extension structure from the perspective of a mature, practical implementation, in order to prepare users for needs and issues they will almost always encounter in the process of extension development.


Files which make up an extension

Whether created by hand, using ext_skel, or by an alternate extension generator, such as » CodeGen, all extensions will have at least four files:

config.m4

UNIX build system configuration (see Talking to the UNIX build system: config.m4)

config.w32

Windows buildsystem configuration (see Talking to the Windows build system: config.w32)

php_counter.h

When building an extension as static module into the PHP binary the build system expects a header file with php_ prepended to the extension name which includes a declaration for a pointer to the extension's module structure. This file usually contains additional macros, prototypes, and globals, just like any header.

counter.c

Main extension source file. By convention, the name of this file is the extension name, but this is not a requirement. This file contains the module structure declaration, INI entries, management functions, userspace functions, and other requirements of an extension.

The buildsystem files are discussed elsewhere; this section concentrates on the rest. These four files make up the bare minimum for an extension, which may also contain any number of headers, source files, unit tests, and other support files. The list of files in the counter extension might look like this:

Пример #1 Files in the counter extension, in no particular order

ext/
 counter/
  .svnignore
  config.m4
  config.w32
  counter_util.h
  counter_util.c
  php_counter.h
  counter.c
  package.xml
  CREDITS
  tests/
   critical_function_001.phpt
   critical_function_002.phpt
   optional_function_001.phpt
   optional_function_002.phpt

Non-source files

The .svnignore file is used for extensions which are checked into the PHP Subversion repository (usually » PECL); the one generated by ext_skel contains:

.deps
*.lo
*.la

These lines tell Subversion to ignore interim files generated by the PHP buildsystem. This is only a convenience, and can be omitted completely without ill effect.

The CREDITS file lists the contributors and/or maintainers of the extension in plain text format. The main purpose of this file is generating the credits information for bundled extensions as used by phpcredits(). By convention the first line of the file should hold the name of the extension, the second a comma separated list of contributors. The contributors are usually ordered by the chronological order of their contributions. In a » PECL package, this information is already maintained in package.xml, for example. This is another file which can be omitted without ill effect.

The package.xml file is specific to » PECL-based extensions; it is a metainformation file which gives details about an extension's dependencies, authors, installation requirements, and other tidbits. In an extension not being hosted in » PECL, this file is extraneous.


Basic constructs

C is a very low-level language by modern definitions. This means that it has no built-in support for many features that PHP takes for granted, such as reflection, dynamic module loading, bounds checking, threadsafe data management and various useful data structures including linked lists and hash tables. At the same time, C is a common denominator of language support and functionality. Given enough work, none of these concepts are impossible; the Zend Engine uses them all.

A lot of effort has gone into making the Zend API both extensible and understandable, but C forces certain necessary declarations upon any extension that to an inexperienced eye seem redundant or plain unnecessary. All of those constructs, detailed in this section, are "write once and forget" in Zend Engine 2 and 3. Here are some excerpts from the pre-generated php_counter.h and counter.c files created by PHP 5.3's ext_skel, showing the pre-generated declarations:

Замечание: The astute reader will notice that there are several declarations in the real files that aren't shown here. Those declarations are specific to various Zend subsystems and are discussed elsewhere as appropriate.

extern zend_module_entry counter_module_entry;
#define phpext_counter_ptr &counter_module_entry

#ifdef PHP_WIN32
#    define PHP_COUNTER_API __declspec(dllexport)
#elif defined(__GNUC__) && __GNUC__ >= 4
#    define PHP_COUNTER_API __attribute__ ((visibility("default")))
#else
#    define PHP_COUNTER_API
#endif

#ifdef ZTS
#include "TSRM.h"
#endif

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
#include "php_counter.h"

/* ... */

#ifdef COMPILE_DL_COUNTER
ZEND_GET_MODULE(counter)
#endif
  • The lines concerning counter_module_entry declare a global variable, and a macroed pointer to it, which contains the zend_module_entry for the extension. Despite the later discussion regarding the drawbacks of "true" globals, this usage is intentional; Zend takes precautions to avoid misusing this variable.
  • PHP_COUNTER_API is declared for use by non-PHP functions the module intends to export for the use of other modules. The counter extension doesn't declare any of these, and in the final version of the header file, this macro has been removed. The PHPAPI macro is declared identically elsewhere and is used by the standard extension to make the phpinfo() utility functions available to other extensions.
  • The include of TSRM.h is skipped if PHP, or the extension, isn't being compiled with thread-safety, since in that case TSRM isn't used.
  • A standard list of includes, especially the extension's own php_counter.h, is given. config.h gives the extension access to determinations made by configure. php.h is the gateway to the entire PHP and Zend APIs. php_ini.h adds the APIs for runtime configuration (INI) entries. Not all extensions will use this. Finally, ext/standard/info.h imports the aforementioned phpinfo() utility API.
  • COMPILE_DL_COUNTER will only be defined by configure if the counter extension is both enabled and wants to be built as a dynamically loadable module instead of being statically linked into PHP. ZEND_GET_MODULE defines a tiny function which Zend can use to get the extension's zend_module_entry at runtime.

    Замечание: The astute reader who has peeked into main/php_config.h after trying to build with the counter module enabled statically may have noticed that there is also a HAVE_COUNTER constant defined that the source code doesn't check for. There's a simple reason this check isn't done: It's unnecessary. If the extension isn't enabled, the source file will never be compiled.


The zend_module structure

The main source file of a PHP extension contains several new constructs for a C programmer. The most important of these, the one touched first when starting a new extension, is the zend_module structure. This structure contains a wealth of information that tells the Zend Engine about the extension's dependencies, version, callbacks, and other critical data. The structure has mutated considerably over time; this section will focus on the structure as it has appeared since PHP 5.2, and will identify the very few parts which have changed in PHP 5.3.

The zend_module declaration from counter.c looks like this before any code has been written. The example file was generated by ext_skel --extname=counter, with some obsolete constructs removed:

Пример #1 zend_module declaration in the counter extension

/* {{{ counter_module_entry
 */
zend_module_entry counter_module_entry = {
    STANDARD_MODULE_HEADER,
    "counter",
    counter_functions,
    PHP_MINIT(counter),
    PHP_MSHUTDOWN(counter),
    PHP_RINIT(counter),        /* Replace with NULL if there's nothing to do at request start */
    PHP_RSHUTDOWN(counter),    /* Replace with NULL if there's nothing to do at request end */
    PHP_MINFO(counter),
    "0.1", /* Replace with version number for your extension */
    STANDARD_MODULE_PROPERTIES
};
/* }}} */

This may look a bit daunting at first glance, but most of it is very simple to understand. Here's the declaration of zend_module from zend_modules.h in PHP 5.3:

Пример #2 zend_module definition in PHP 5.3

struct _zend_module_entry {
    unsigned short size;
    unsigned int zend_api;
    unsigned char zend_debug;
    unsigned char zts;
    const struct _zend_ini_entry *ini_entry;
    const struct _zend_module_dep *deps;
    const char *name;
    const struct _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);
    const char *version;
    size_t globals_size;
#ifdef ZTS
    ts_rsrc_id* globals_id_ptr;
#else
    void* globals_ptr;
#endif
    void (*globals_ctor)(void *global TSRMLS_DC);
    void (*globals_dtor)(void *global TSRMLS_DC);
    int (*post_deactivate_func)(void);
    int module_started;
    unsigned char type;
    void *handle;
    int module_number;
};

Many of these fields will never be touched by an extension writer. There are a number of standard macros that set them to their proper values automatically. The macro STANDARD_MODULE_HEADER fills in everything up to the deps field. Alternatively, the STANDARD_MODULE_HEADER_EX will leave the deps field empty for the developer's use. The developer is always responsible for everything from name to version. After that, the STANDARD_MODULE_PROPERTIES macro will fill in the rest of the structure, or the STANDARD_MODULE_PROPERTIES_EX macro can be used to leave the extension globals and post-deactivation function fields unfilled. Most modern extensions will make use of module globals.

Замечание:

This table gives the values that each field would have if the developer were to fill in the structure entirely by hand, without recourse to any of the shortcut macros. This is not recommended. The "correct" values for many fields may change. Use the macros whenever possible.

Module structure field values
Field | Value | Description
size [1] [2] [3] | sizeof(zend_module_entry) | The size in bytes of the structure.
zend_api [1] [2] [3] | ZEND_MODULE_API_NO | The version of the Zend API this module was compiled against.
zend_debug [1] [2] [3] | ZEND_DEBUG | A flag indicating whether the module was compiled with debugging turned on.
zts [1] [2] [3] | USING_ZTS | A flag indicating whether the module was compiled with ZTS (TSRM) enabled (see Memory management).
ini_entry [1] [3] | NULL | This pointer is used internally by Zend to keep a non-local reference to any INI entries declared for the module.
deps [3] | NULL | A pointer to a list of dependencies for the module.
name | "mymodule" | The name of the module. This is the short name, such as "spl" or "standard".
functions | mymodule_functions | A pointer to the module's function table, which Zend uses to expose functions in the module to user space.
module_startup_func | PHP_MINIT(mymodule) | A callback function that Zend will call the first time a module is loaded into a particular instance of PHP.
module_shutdown_func | PHP_MSHUTDOWN(mymodule) | A callback function that Zend will call the when a module is unloaded from a particular instance of PHP, typically during final shutdown.
request_startup_func | PHP_RINIT(mymodule) | A callback function that Zend will call at the beginning of each request. This should be as short as possible or NULL as calling this has costs on every request.
request_shutdown_func | PHP_RSHUTDOWN(mymodule) | A callback function that Zend will call at the end of each request. This should be as short as possible or NULL as calling this has costs on every request.
info_func | PHP_MINFO(mymodule) | A callback function that Zend will call when the phpinfo() function is called.
version | NO_VERSION_YET | A string giving the version of the module, as specified by the module developer. It is recommended that the version number be either in the format expected by version_compare() (e.g. "1.0.5-dev"), or a CVS or SVN revision number (e.g. "$Rev: 322138 $").
globals_size [1] [4] [5] [6] | sizeof(zend_mymodule_globals) | The size of the data structure containing the module's globals, if any.
globals_id_ptr [1] [4] [5] [6] [7] | &mymodule_globals_id | Only one of these two fields will exist, depending upon whether the USING_ZTS constant is TRUE. The former is an index into TSRM's allocation table for the module's globals, and the latter is a pointer directly to the globals.
globals_ptr [1] [4] [5] [6] [8] | &mymodule_globals
globals_ctor [4] [5] [6] | PHP_GINIT(mymodule) | This funtion is called to initialize a module's globals before any module_startup_func.
globals_dtor [4] [5] [6] | PHP_GSHUTDOWN(mymodule) | This funtion is called to deallocate a module's globals after any module_shutdown_func.
post_deactivate_func [4] | ZEND_MODULE_POST_ZEND_DEACTIVATE_N(mymodule) | This function is called by Zend after request shutdown. It is rarely used.
module_started [1] [9] [4] | 0 | These fields are used for Zend's internal tracking information.
type [1] [9] [4] | 0
handle [1] [9] [4] | NULL
module_number [1] [9] [4] | 0
[1] This field is not intended for use by module developers. [2] This field is filled in by STANDARD_MODULE_HEADER_EX. [3] This field is filled in by STANDARD_MODULE_HEADER. [4] This field is filled in by STANDARD_MODULE_PROPERTIES. [5] This field is filled in by NO_MODULE_GLOBALS. [6] This field is filled in by PHP_MODULE_GLOBALS. [7] This field only exists when USING_ZTS is TRUE. [8] This field only exists when USING_ZTS is FALSE. [9] This field is filled in by STANDARD_MODULE_PROPERTIES_EX.

Filling in the structure in a practical situation

With all these fields to play with, it can be confusing to know which to use for what purpose. Here is the zend_module definition from the "counter" example extension after updating it to its final form.

Пример #3 Counter extension module definition

/* {{{ counter_module_entry
 */
zend_module_entry counter_module_entry = {
    STANDARD_MODULE_HEADER,
    "counter",
    counter_functions,
    PHP_MINIT(counter),
    PHP_MSHUTDOWN(counter),
    PHP_RINIT(counter),
    PHP_RSHUTDOWN(counter),
    PHP_MINFO(counter),
    NO_VERSION_YET,
    PHP_MODULE_GLOBALS(counter),
    PHP_GINIT(counter),
    PHP_GSHUTDOWN(counter),
    NULL,
    STANDARD_MODULE_PROPERTIES_EX
};
/* }}} */
  • STANDARD_MODULE_HEADER is used since this module doesn't define any dependencies.
  • "counter" is the extension's name, and is used to define the various callback functions the module passes to Zend. "counter" uses module, globals, and request functions at startup and shutdown times, and provides information to phpinfo(), so all seven callbacks are defined.
  • It is assumed that there is a variable of type zend_function_entry * named counter_functions earlier in the file that contains the module definition, listing the functions the module exports to userspace.
  • NO_VERSION_YET is a particularly nice way of telling Zend the module doesn't have a version. It might have been more correct to place "1.0" here instead in a real module.
  • "counter" uses per-module globals, so PHP_MODULE_GLOBALS is used
  • This module has no post-deactivate function, so NULL is used.
  • Since this module does use globals, STANDARD_MODULE_PROPERTIES_EX is used to finish the structure.

What's changed between 5.2 and 5.3?

Nothing. The only differences in the zend_module structure between PHP 5.2 and PHP 5.3 are a few const keywords.


Extension globals

Introduction to globals in a PHP extension

In a language such as C, a "global" variable is a variable that can be accessed from any function without any extra declaration. These traditional globals have a few drawbacks:

  • Barring any special options passed to the compiler, a global variable can be accessed and changed by any piece of code anywhere in the program, whether or not that code should be doing so.
  • A typical global variable is not thread safe.
  • The names of global variables are as global as the variables themselves.

A PHP extension's globals are more properly called the "extension state", since most modules must remember what they're doing between function calls. The "counter" extension is a perfect example of this need: The basic interface calls for a counter with a persistent value. A programmer new to Zend and PHP might do something like this in counter.c to store that value:

Пример #1 The wrong way to store the basic counter interface's value

/* ... */
static long basic_counter_value;

/* ... */

PHP_FUNCTION(counter_get)
{
    RETURN_LONG(basic_counter_value);
}

On the surface this appears a viable solution, and indeed in a simple test it would function correctly. However, there are a number of situations in which more than one copy of PHP is running in the same thread, which means more than one instance of the counter module. Suddenly these multiple threads are sharing the same counter value, which is clearly undesirable. Another problem shows itself when considering that another extension might someday happen to have a global with the same name, and due to the rules of C scoping, this has the potential to cause a compile failure, or worse, a runtime error. Something more elaborate is needed, and so exists Zend's support for thread-safe per-module globals.

Declaring module globals

Whether a module uses only a single global or dozens, they must be defined in a structure, and that structure must be declared. There are some macros that assist with doing so in a way that avoids name conflicts between modules: ZEND_BEGIN_MODULE_GLOBALS(), ZEND_END_MODULE_GLOBALS(), and ZEND_DECLARE_MODULE_GLOBALS(). All three take as a parameter the short name of the module, which in the case of the counter module is simply "counter". Here is the global structure declaration from php_counter.h:

Пример #2 The counter module's globals

ZEND_BEGIN_MODULE_GLOBALS(counter)
    long        basic_counter_value;
ZEND_END_MODULE_GLOBALS(counter)

And this is the declaration from counter.c:

Пример #3 The counter module's global structure declaration

ZEND_DECLARE_MODULE_GLOBALS(counter)

Accessing module globals

As discussed above, per-module globals are declared inside a C structure whose name is obscured by Zend macros. As a result, the ideal way to access members of this structure is by the use of further macros. Accordingly, most if not all extensions which have globals have a declaration like this somewhere in their header file:

Пример #4 Accessor macros for per-module globals

#ifdef ZTS
#define COUNTER_G(v) TSRMG(counter_globals_id, zend_counter_globals *, v)
#else
#define COUNTER_G(v) (counter_globals.v)
#endif

Замечание: This could have been generalized into a macro of its own by the Zend API, but as of PHP 5.3 (and PHP 6 at the time of this writing), that hasn't happened. The global accessor construct is written into the header by ext_skel and thus is generally left alone by extension writers, unless they wish to change the name of the accessor macro.

Замечание: COUNTER_G was the name given to the macro by ext_skel, but it's not necessary for it to have that name and could just as easily be called FOO instead.

Any code in the counter extension that accesses a global must thus wrap it in the macro COUNTER_G.

Внимание

Any function which accesses globals must either be declared by Zend macros, have TSRMLS_DC as its last argument, or call the macro TSRMLS_FETCH before accessing the globals. See the TSRM documentation for more information.

So with all of that in mind, here is our new version of the counter_get():

Пример #5 The right way to store the basic counter interface's value

/* php_counter.h */
ZEND_BEGIN_MODULE_GLOBALS(counter)
    long        basic_counter_value;
ZEND_END_MODULE_GLOBALS(counter)

#ifdef ZTS
#define COUNTER_G(v) TSRMG(counter_globals_id, zend_counter_globals *, v)
#else
#define COUNTER_G(v) (counter_globals.v)
#endif

/* counter.c */
ZEND_DECLARE_MODULE_GLOBALS(counter)

/* ... */

PHP_FUNCTION(counter_get)
{
    RETURN_LONG(COUNTER_G(basic_counter_value));
}

This is a correct implementation. It is not, however, a complete one. The section Life cycle of an extension explains why.


Life cycle of an extension

A PHP extension goes through several phases during its lifetime. All of these phases are opportunities for the developer to perform various initialization, termination, or informational functions. The Zend API allows for hooks into five separate phases of an extension's existence, apart from calls by PHP functions.

Loading, unloading, and requests

As the Zend engine runs, it processes one or more "requests" from its client. In the traditional CGI implementation, this corresponds to one execution of a process. However, many other implementations, most notably the Apache module, can map many requests onto a single PHP process. A PHP extension may thus see many requests in its lifetime.

Overview

  • In the Zend API, a module is loaded into memory only once when the associated PHP process starts up. Each module receives a call to the "module initialization" function specified in its zend_module structure as it is loaded.
  • Whenever the associated PHP process starts to handle a request from its client - i.e. whenever the PHP interpreter is told to start working - each module receives a call to the "request initialization" function specified in its zend_module structure.
  • Whenever the associated PHP process is done handling a request, each module receives a call to the "request termination" function specified in its zend_module structure.
  • A given module is unloaded from memory when its associated PHP process is shut down in an orderly manner. The module receives a call to the "module termination" function specified in its zend_module structure at this time.

What to do, and when to do it

There are many tasks that might be performed at any of these four points. This table details where many common initialization and termination tasks belong.

What to do, and when to do it
Module initialization/termination | Request initialization/termination
Allocate/deallocate and initialize module global variables | Allocate/deallocate and initialize request-specific variables
Register/unregister class entries |
Register/unregister INI entries |
Register constants |

The phpinfo() callback

Aside from globals initialization and certain rarely-used callbacks, there is one more part of a module's lifecycle to examine: A call to phpinfo(). The output a user sees from this call, whether text or HTML or anything else, is generated by each individual extension that is loaded into the PHP interpreter at the time the call is made.

To provide for format-neutral output, the header "ext/standard/info.h" provides an array of functions to produce standardized display elements. Specifically, several functions which create the familiar tables exist:

php_info_print_table_start()
Open a table in phpinfo() output. Takes no parameters.
php_info_print_table_header()
Print a table header in phpinfo() output. Takes one parameter, the number of columns, plus the same number of char * parameters which are the texts for each column heading.
php_info_print_table_row()
Print a table row in phpinfo() output. Takes one parameter, the number of columns, plus the same number of char * parameters which are the texts for each column content.
php_info_print_table_end()
Close a table formerly opened by php_info_print_table_start(). Takes no parameters.

Using these four functions, it is possible to produce status information for nearly any combination of features in an extension. Here is the information callback from the counter extension:

Пример #1 counter's PHP_MINFO function

/* {{{ PHP_MINFO(counter) */
PHP_MINFO_FUNCTION(counter)
{
    char        buf[10];

    php_info_print_table_start();
    php_info_print_table_row(2, "counter support", "enabled");
    snprintf(buf, sizeof(buf), "%ld", COUNTER_G(basic_counter_value));
    php_info_print_table_row(2, "Basic counter value", buf);
    php_info_print_table_end();
}
/* }}} */


Testing an extension

One of the accepted requirements of good programming is testing. PHP provides a test harness for unit regression tests, in the form of a script called run-tests.php.

Tests for a particular module are stored in the tests/ subdirectory of the module's folder, and have a .phpt extension. For details of the PHPT format, see » https://qa.php.net/.


PDO Driver 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

The purpose of this How-To is to provide a basic understanding of the steps required to write a database driver that interfaces with the PDO layer. Please note that this is still an evolving API and as such, subject to change. This document was prepared based on version 0.3 of PDO. The learning curve is steep; expect to spend a lot of time on the prerequisites.


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. Linux: standard development tools, gcc, ld, make, autoconf, automake, etc., versions dependent on distribution;

    2. Other Unix: standard development tools supplied by vendor plus the GNU development tool set;

    3. Win32: Visual Studio compiler suite;

  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 pecl 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.


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                  # unix build script
  config.w32                 # win32 build script
  CREDITS
  package.xml                # meta information about the package
  pdo_SKEL.c                 # standard PHP extension glue
  php_pdo_SKEL.h
  php_pdo_SKEL_int.h         # driver private header
  SKEL_dbh.c                 # contains the implementation of the PDO driver interface
  SKEL_stmt.c                # contains the implementation of the PDO statement interface
  tests/

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 specific 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>


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.

Пример #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 this 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 know 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 involve 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.

Пример #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:

Пример #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 Database and Statement Attributes Table 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 Database and Statement Attributes Table 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 Database and Statement Attributes Table 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 the 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 multiple 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 is set, 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 Database and Statement Attributes Table 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 Database and Statement Attributes Table 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.


Building

The build process is designed to work with PEAR (see » https://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 is 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 pecl 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.


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


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:

$ pecl 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:

$ pecl build package.xml

Once this is proven to work, you can test installation:

$ pecl package
$ sudo pecl install PDO_SKEL-X.Y.X.tgz

Full details about package.xml can be found in the PEAR Programmer's documentation (» https://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 » https://pecl.php.net/.


pdo_dbh_t definition

All fields should be treated as read-only by the driver, unless explicitly stated otherwise.

pdo_dbh_t

/* represents a connection to a database */
struct _pdo_dbh_t {
    /* driver specific methods */
    struct pdo_dbh_methods *methods;
*
/* driver specific data */
    void *driver_data;
**
/* credentials */
    char *username, *password;
***
/* if true, then data stored and pointed at by this handle must all be
     * persistently allocated */
    unsigned is_persistent:1;
****
/* 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;
*****
/* if true, the driver requires that memory be allocated explicitly for
     * the columns that are returned */
    unsigned alloc_own_columns:1;
******
/* 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;
*******
/* data source string used to open this handle */
    const char *data_source;
********
unsigned long data_source_len;

    /* the global error code. */
    pdo_error_type error_code;
*********
enum pdo_case_conversion native_case
**********
, 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 than 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 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 returned in lower case, set it to PDO_CASE_LOWER. The value you set is used to determine if PDO should perform case folding when the user sets the PDO_ATTR_CASE attribute.


pdo_stmt_t definition

All fields should be treated as read-only unless explicitly stated otherwise.

pdo_stmt_t

/* represents a prepared statement */
struct _pdo_stmt_t {
    /* driver specifics */
    struct pdo_stmt_methods *methods;
*
void *driver_data;
**
/* if true, we've already successfully executed this statement at least
     * once */
    unsigned executed:1;
***
/* 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;
****
/* 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;
*****
struct pdo_column_data *columns;
******
/* 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 implement 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 call efree() at the appropriate time.


Constants

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.


Error handling

Error handling is implemented using a hand-shaking protocol between PDO and the database driver code. The database driver code signals PDO that an error has occurred via a failure (0) return from any of the interface functions. If a zero is returned, set 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 any 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.


  • « Error handling
  • Zend Engine 2 API reference »
  • PHP Manual
  • Ядро PHP: Руководство хакера
  • Extension FAQs

Extension FAQs


  • « Extension FAQs
  • Zend Engine 2 Opcodes »
  • PHP Manual
  • Ядро PHP: Руководство хакера
  • Zend Engine 2 API reference

Zend Engine 2 API reference


Zend Engine 2 Opcodes

Содержание

  • Opcode Descriptions and Examples

When parsing PHP files, Zend Engine 2 generates a series of operation codes, commonly known as "opcodes", representing the function of the code. This part of the manual details those opcodes and their behaviour.

Opcodes may be dumped for a given PHP file using the vld extension (see » https://pecl.php.net/package/vld).

Opcode List
Number | Name | Has sample code?
0 | NOP | yes
1 | ADD | yes
2 | SUB | yes
3 | MUL | yes
4 | DIV | yes
5 | MOD | yes
6 | SL | yes
7 | SR | yes
8 | CONCAT | yes
9 | BW_OR | yes
10 | BW_AND | yes
11 | BW_XOR | yes
12 | BW_NOT | yes
13 | BOOL_NOT | yes
14 | BOOL_XOR | yes
15 | IS_IDENTICAL | yes
16 | IS_NOT_IDENTICAL | yes
17 | IS_EQUAL | yes
18 | IS_NOT_EQUAL | yes
19 | IS_SMALLER | yes
20 | IS_SMALLER_OR_EQUAL | yes
21 | CAST | yes
22 | QM_ASSIGN | yes
23 | ASSIGN_ADD | yes
24 | ASSIGN_SUB | yes
25 | ASSIGN_MUL | yes
26 | ASSIGN_DIV | yes
27 | ASSIGN_MOD | yes
28 | ASSIGN_SL | yes
29 | ASSIGN_SR | yes
30 | ASSIGN_CONCAT | yes
31 | ASSIGN_BW_OR | yes
32 | ASSIGN_BW_AND | yes
33 | ASSIGN_BW_XOR | yes
34 | PRE_INC | yes
35 | PRE_DEC | yes
36 | POST_INC | yes
37 | POST_DEC | yes
38 | ASSIGN | yes
39 | ASSIGN_REF | yes
40 | ECHO | yes
41 | PRINT | yes
42 | JMP | yes
43 | JMPZ | yes
44 | JMPNZ | yes
45 | JMPZNZ | yes
46 | JMPZ_EX | yes
47 | JMPNZ_EX | yes
48 | CASE | yes
49 | SWITCH_FREE | yes
50 | BRK | yes
51 | CONT | yes
52 | BOOL | yes
53 | INIT_STRING | yes
54 | ADD_CHAR | yes
55 | ADD_STRING | yes
56 | ADD_VAR | yes
57 | BEGIN_SILENCE | yes
58 | END_SILENCE | yes
59 | INIT_FCALL_BY_NAME | yes
60 | DO_FCALL | yes
61 | DO_FCALL_BY_NAME | yes
62 | RETURN | yes
63 | RECV | yes
64 | RECV_INIT | yes
65 | SEND_VAL | yes
66 | SEND_VAR | yes
67 | SEND_REF | yes
68 | NEW | yes
69 | INIT_NS_FCALL_BY_NAME | no
70 | FREE | yes
71 | INIT_ARRAY | yes
72 | ADD_ARRAY_ELEMENT | yes
73 | INCLUDE_OR_EVAL | yes
74 | UNSET_VAR | yes
75 | UNSET_DIM | yes
76 | UNSET_OBJ | yes
77 | FE_RESET | yes
78 | FE_FETCH | yes
79 | EXIT | yes
80 | FETCH_R | yes
81 | FETCH_DIM_R | yes
82 | FETCH_OBJ_R | yes
83 | FETCH_W | yes
84 | FETCH_DIM_W | yes
85 | FETCH_OBJ_W | yes
86 | FETCH_RW | yes
87 | FETCH_DIM_RW | yes
88 | FETCH_OBJ_RW | yes
89 | FETCH_IS | yes
90 | FETCH_DIM_IS | no
91 | FETCH_OBJ_IS | no
92 | FETCH_FUNC_ARG | yes
93 | FETCH_DIM_FUNC_ARG | yes
94 | FETCH_OBJ_FUNC_ARG | yes
95 | FETCH_UNSET | no
96 | FETCH_DIM_UNSET | no
97 | FETCH_OBJ_UNSET | no
98 | FETCH_DIM_TMP_VAR | yes
99 | FETCH_CONSTANT | yes
100 | GOTO | no
101 | EXT_STMT | yes
102 | EXT_FCALL_BEGIN | no
103 | EXT_FCALL_END | no
104 | EXT_NOP | no
105 | TICKS | yes
106 | SEND_VAR_NO_REF | no
107 | CATCH | yes
108 | THROW | yes
109 | FETCH_CLASS | yes
110 | CLONE | yes
111 | RETURN_BY_REF | no
112 | INIT_METHOD_CALL | yes
113 | INIT_STATIC_METHOD_CALL | yes
114 | ISSET_ISEMPTY_VAR | yes
115 | ISSET_ISEMPTY_DIM_OBJ | yes
116 | ZEND_SEND_VAL_EX | no
117 | ZEND_SEND_VAR | no
118 | ZEND_INIT_USER_CALL | no
119 | ZEND_SEND_ARRAY | no
120 | ZEND_SEND_USER | no
121 | ZEND_STRLEN | no
122 | ZEND_DEFINED | no
123 | ZEND_TYPE_CHECK | no
124 | ZEND_VERIFY_RETURN_TYPE | no
125 | ZEND_FE_RESET_RW | no
126 | ZEND_FE_FETCH_RW | no
127 | ZEND_FE_FREE | no
128 | ZEND_INIT_DYNAMIC_CALL | no
129 | ZEND_DO_ICALL | no
130 | ZEND_DO_UCALL | no
131 | ZEND_DO_FCALL_BY_NAME | no
132 | PRE_INC_OBJ | yes
133 | PRE_DEC_OBJ | yes
134 | POST_INC_OBJ | yes
135 | POST_DEC_OBJ | yes
136 | ASSIGN_OBJ | yes
137 | ZEND_OP_DATA | no
138 | INSTANCEOF | yes
139 | DECLARE_CLASS | yes
140 | DECLARE_INHERITED_CLASS | yes
141 | DECLARE_FUNCTION | yes
142 | RAISE_ABSTRACT_ERROR | yes
143 | DECLARE_CONST | no
144 | ADD_INTERFACE | no
145 | DECLARE_INHERITED_CLASS_DELAYED | no
146 | VERIFY_ABSTRACT_CLASS | no
147 | ASSIGN_DIM | yes
148 | ISSET_ISEMPTY_PROP_OBJ | yes
149 | HANDLE_EXCEPTION | yes
150 | USER_OPCODE | no
151 | ZEND_ASSERT_CHECK | no
152 | ZEND_JMP_SET | no
153 | ZEND_DECLARE_LAMBDA_FUNCTION | no
154 | ZEND_ADD_TRAIT | no
155 | ZEND_BIND_TRAITS | no
156 | ZEND_SEPARATE | no
157 | ZEND_FETCH_CLASS_NAME | no
158 | ZEND_CALL_TRAMPOLINE | no
159 | ZEND_DISCARD_EXCEPTION | no
160 | ZEND_YIELD | no
161 | ZEND_GENERATOR_RETURN | no
162 | ZEND_FAST_CALL | no
163 | ZEND_FAST_RET | no
164 | ZEND_RECV_VARIADIC | no
165 | ZEND_SEND_UNPACK | no
166 | ZEND_POW | no
167 | ZEND_ASSIGN_POW | no
168 | ZEND_BIND_GLOBAL | no
169 | ZEND_COALESCE | no
170 | ZEND_SPACESHIP | no
171 | ZEND_DECLARE_ANON_CLASS | no
172 | ZEND_DECLARE_ANON_INHERITED_CLASS | no
173 | ZEND_FETCH_STATIC_PROP_R | no
174 | ZEND_FETCH_STATIC_PROP_W | no
175 | ZEND_FETCH_STATIC_PROP_RW | no
176 | ZEND_FETCH_STATIC_PROP_IS | no
177 | ZEND_FETCH_STATIC_PROP_FUNC_ARG | no
178 | ZEND_FETCH_STATIC_PROP_UNSET | no
179 | ZEND_UNSET_STATIC_PROP | no
180 | ZEND_ISSET_ISEMPTY_STATIC_PROP | no
181 | ZEND_FETCH_CLASS_CONSTANT | no
182 | ZEND_BIND_LEXICAL | no
183 | ZEND_BIND_STATIC | no
184 | ZEND_FETCH_THIS | no
185 | ZEND_SEND_FUNC_ARG | no
186 | ZEND_ISSET_ISEMPTY_THIS | no
187 | ZEND_SWITCH_LONG | no
188 | ZEND_SWITCH_STRING | no
189 | ZEND_IN_ARRAY | no
190 | ZEND_COUNT | no
191 | ZEND_GET_CLASS | no
192 | ZEND_GET_CALLED_CLASS | no
193 | ZEND_GET_TYPE | no
194 | ZEND_FUNC_NUM_ARGS | no
195 | ZEND_FUNC_GET_ARGS | no
196 | ZEND_UNSET_CV | no
197 | ZEND_ISSET_ISEMPTY_CV | no

Pseudo-opcodes that are used only temporarily during compilation.

Pseudo-opcodes List
Number | Name | Has sample code?
253 | ZEND_GOTO | no
254 | ZEND_BRK | no
255 | ZEND_CONT | no


Opcode Descriptions and Examples

Содержание

  • ADD
  • ADD_ARRAY_ELEMENT
  • ADD_CHAR
  • ADD_INTERFACE
  • ADD_STRING
  • ADD_VAR
  • ASSIGN
  • ASSIGN_ADD
  • ASSIGN_BW_AND
  • ASSIGN_BW_OR
  • ASSIGN_BW_XOR
  • ASSIGN_CONCAT
  • ASSIGN_DIM
  • ASSIGN_DIV
  • ASSIGN_MOD
  • ASSIGN_MUL
  • ASSIGN_OBJ
  • ASSIGN_REF
  • ASSIGN_SL
  • ASSIGN_SR
  • ASSIGN_SUB
  • BEGIN_SILENCE
  • BOOL
  • BOOL_NOT
  • BOOL_XOR
  • BRK
  • BW_AND
  • BW_NOT
  • BW_OR
  • BW_XOR
  • CASE
  • CAST
  • CATCH
  • CLONE
  • CONCAT
  • CONT
  • DECLARE_CLASS
  • DECLARE_CONST
  • DECLARE_FUNCTION
  • DECLARE_INHERITED_CLASS
  • DECLARE_INHERITED_CLASS_DELAYED
  • DIV
  • DO_FCALL
  • DO_FCALL_BY_NAME
  • ECHO
  • END_SILENCE
  • EXIT
  • EXT_FCALL_BEGIN
  • EXT_FCALL_END
  • EXT_NOP
  • EXT_STMT
  • FE_FETCH
  • FE_RESET
  • FETCH_CLASS
  • FETCH_CONSTANT
  • FETCH_DIM_FUNC_ARG
  • FETCH_DIM_IS
  • FETCH_DIM_R
  • FETCH_DIM_RW
  • FETCH_DIM_TMP_VAR
  • FETCH_DIM_UNSET
  • FETCH_DIM_W
  • FETCH_FUNC_ARG
  • FETCH_IS
  • FETCH_OBJ_FUNC_ARG
  • FETCH_OBJ_IS
  • FETCH_OBJ_R
  • FETCH_OBJ_RW
  • FETCH_OBJ_UNSET
  • FETCH_OBJ_W
  • FETCH_R
  • FETCH_RW
  • FETCH_UNSET
  • FETCH_W
  • FREE
  • GOTO
  • HANDLE_EXCEPTION
  • INCLUDE_OR_EVAL
  • INIT_ARRAY
  • INIT_FCALL_BY_NAME
  • INIT_METHOD_CALL
  • INIT_NS_FCALL_BY_NAME
  • INIT_STATIC_METHOD_CALL
  • INIT_STRING
  • INSTANCEOF
  • IS_EQUAL
  • IS_IDENTICAL
  • IS_NOT_EQUAL
  • IS_NOT_IDENTICAL
  • IS_SMALLER
  • IS_SMALLER_OR_EQUAL
  • ISSET_ISEMPTY_DIM_OBJ
  • ISSET_ISEMPTY_PROP_OBJ
  • ISSET_ISEMPTY_VAR
  • JMP
  • JMPNZ
  • JMPNZ_EX
  • JMPZ
  • JMPZ_EX
  • JMPZNZ
  • MOD
  • MUL
  • NEW
  • NOP
  • POST_DEC
  • POST_DEC_OBJ
  • POST_INC
  • POST_INC_OBJ
  • PRE_DEC
  • PRE_DEC_OBJ
  • PRE_INC
  • PRE_INC_OBJ
  • PRINT
  • QM_ASSIGN
  • RAISE_ABSTRACT_ERROR
  • RECV
  • RECV_INIT
  • RETURN
  • RETURN_BY_REF
  • SEND_REF
  • SEND_VAL
  • SEND_VAR
  • SEND_VAR_NO_REF
  • SL
  • SR
  • SUB
  • SWITCH_FREE
  • THROW
  • TICKS
  • UNSET_DIM
  • UNSET_OBJ
  • UNSET_VAR
  • USER_OPCODE
  • VERIFY_ABSTRACT_CLASS
  • ZEND_DECLARE_LAMBDA_FUNCTION
  • ZEND_JMP_SET


ADD

PHP code

<?php
/*
 * Adds "value1" to "value2" and stores the result into "result".
 * opcode number: 1
 */
echo 1 + 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | ADD |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


ADD_ARRAY_ELEMENT

PHP code

<?php
/*
 * Add elem-value as an element to array-value
 * opcode number: 72
 */
$a = array(1,2,3);
print_r($a);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | SEND_VAR |  |  |  | !0
 | 5 | DO_FCALL |  | 1 |  | 'print_r'
8 | 6 | RETURN |  |  |  | 1


ADD_CHAR

PHP code

<?php
/*
 * add regular characters in encapsed string
 * opcode number: 54
 */
echo "$a ";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ADD_VAR |  |  |  | !0
 | 1 | ADD_CHAR |  |  |  | 32
 | 2 | ECHO |  |  |  |
 | 3 | RETURN |  |  |  | 1


ADD_INTERFACE

PHP code

<?php
/*
 * adds an implemented interface to a class declaration
 * opcode number: 144
 */
interface iA {
}

class A implements iA {
}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
 | 1 | DECLARE_CLASS |  |  |  | 'a'
 | 2 | ADD_INTERFACE |  |  |  | 'iA'
 | 3 | VERIFY_ABSTRACT_CLASS |  |  |  |
 | 3 | RETURN |  |  |  | 1


ADD_STRING

PHP code

<?php
/*
 * add string value2 to string value2 and store in result
 * opcode number: 55
 */
echo "hello$a world";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ADD_STRING |  |  | ~0 | 'hello'
 | 1 | ADD_VAR |  |  | ~0 | ~0,!0
 | 2 | ADD_STRING |  |  | ~0 | ~0,'+world'
 | 3 | ECHO |  |  |  | ~0
7 | 4 | RETURN |  |  |  | 1


ADD_VAR

PHP code

<?php
/*
 * add contents of variable in value2 to string value1 and store in result
 * opcode number: 56
 */
echo "hello$a world";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ADD_STRING |  |  | ~0 | 'hello'
 | 1 | ADD_VAR |  |  | ~0 | ~0,!0
 | 2 | ADD_STRING |  |  | ~0 | ~0,'+world'
 | 3 | ECHO |  |  |  | ~0
7 | 4 | RETURN |  |  |  | 1


ASSIGN

PHP code

<?php
/*
 * assigns value1 to result
 * opcode number: 38
 */
$a=1;
$a='a';
$a=new A();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | ASSIGN |  |  |  | !0,'a'
8 | 2 | ZEND_FETCH_CLASS |  |  | :2 | 'A'
 | 3 | NEW |  |  | $3 | :2
 | 4 | DO_FCALL_BY_NAME |  | 0 |  |
 | 5 | ASSIGN |  |  |  | !0,$3
9 | 6 | RETURN |  |  |  | 1


ASSIGN_ADD

PHP code

<?php
/*
 * Add value1 to value2 and store in variable indicated by value1
 * opcode number: 23
 */
$a+=3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_ADD |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_BW_AND

PHP code

<?php
/*
 * Performs binary AND on result and value1 and stores in variable indicated by result.
 * opcode number: 32
 */
$a &= 64;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_BW_AND |  |  |  | !0,64
7 | 1 | RETURN |  |  |  | 1


ASSIGN_BW_OR

PHP code

<?php
/*
 * Performs binary OR on result and value1 and stores in variable indicated by result.
 * opcode number: 31
 */
$a |= 64;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_BW_OR |  |  |  | !0,64
7 | 1 | RETURN |  |  |  | 1


ASSIGN_BW_XOR

PHP code

<?php
/*
 * Performs binary XOR on result and value1and stores in variable indicated by result.
 * opcode number: 33
 */
$a ^= 64;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_BW_XOR |  |  |  | !0,64
7 | 1 | RETURN |  |  |  | 1


ASSIGN_CONCAT

PHP code

<?php
/*
 * Concats string values result and value1 and store in variable indicated by result
 * opcode number: 30
 */
$a .= 'z';
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_CONCAT |  |  |  | !0,'z'
7 | 1 | RETURN |  |  |  | 1


ASSIGN_DIM

PHP code

<?php
/*
 *
 * opcode number: 147
 */
$b = 1;
$a[1][2] = $b;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$b, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | FETCH_DIM_W |  |  | $1 | !1,1
 | 2 | ZEND_ASSIGN_DIM |  |  |  | $1,2
 | 3 | ZEND_OP_DATA |  |  |  | !0,$3
8 | 4 | RETURN |  |  |  | 1


ASSIGN_DIV

PHP code

<?php
/*
 * Divide result by value1and store in variable indicated by result.
 * opcode number: 26
 */
$a/=3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_DIV |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_MOD

PHP code

<?php
/*
 * Perform result mod value1 and store in variable indicated by result
 * opcode number: 27
 */
$a %= 3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_MOD |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_MUL

PHP code

<?php
/*
 * Multiply result by value1 and store in variable indicated by result
 * opcode number: 25
 */
$a*=3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_MUL |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_OBJ

PHP code

<?php
/*
 *
 * opcode number: 136
 */
$obj->a = $otherobj;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj, !1=$otherobj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_ASSIGN_OBJ |  |  |  | !0,'a'
 | 1 | ZEND_OP_DATA |  |  |  | !1
7 | 2 | RETURN |  |  |  | 1


ASSIGN_REF

PHP code

<?php
/*
 * indicates that variable indicated by value1 is to be treated in the global scope for the remainder of the current scope.
 * opcode number: 39
 */
global $a;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | FETCH_W | globallock |  | $0 | 'a'
 | 1 | ASSIGN_REF |  |  |  | !0,$0
7 | 2 | RETURN |  |  |  | 1


ASSIGN_SL

PHP code

<?php
/*
 * Shift result by value1 bits to left and store in variable indicated by result
 * opcode number: 28
 */
$a <<= 3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_SL |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_SR

PHP code

<?php
/*
 * Shift result by value1 bits to right and store in variable indicated by result
 * opcode number: 29
 */
$a >>= 3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_SR |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_SUB

PHP code

<?php
/*
 * Subtract value1 from value2 and store in variable indicated by value1
 * opcode number: 24
 */
$a-=3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_SUB |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


BEGIN_SILENCE

PHP code

<?php
/*
 * prepare to perform function call without displaying error messages
 * opcode number: 57
 */
/* Intentional file error */
$my_file = @file ('non_existent_file') or
   die ("error:'$php_errormsg'");
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$my_file, !1=$php_errormsg

line | # | op | fetch | ext | return | operands
7 | 0 | BEGIN_SILENCE |  |  | ~0 |
 | 1 | SEND_VAL |  |  |  | 'non_existent_file'
 | 2 | DO_FCALL |  | 1 |  | 'file'
 | 3 | END_SILENCE |  |  |  | ~0
 | 4 | ASSIGN |  |  | $2 | !0,$1
 | 5 | JMPNZ_EX |  |  | ~3 | $2,->11
8 | 6 | ADD_STRING |  |  | ~4 | 'error%3A%27'
 | 7 | ADD_VAR |  |  | ~4 | ~4,!1
 | 8 | ADD_CHAR |  |  | ~4 | ~4,39
 | 9 | EXIT |  |  |  | ~4
 | 10 | BOOL |  |  | ~3 | true
 | 11 | FREE |  |  |  | ~3
9 | 12 | RETURN |  |  |  | 1


BOOL

PHP code

<?php
/*
 * convert value1 to boolean and store in result??????????
 * opcode number: 52
 */
if (1 || 2 || 1) echo "foo";
//$a = true;
//if($a) echo "foo";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | JMPNZ_EX |  |  | ~0 | 1,->2
 | 1 | BOOL |  |  | ~0 | 2
 | 2 | JMPNZ_EX |  |  | ~0 | ~0,->4
 | 3 | BOOL |  |  | ~0 | 1
 | 4 | JMPZ |  |  |  | ~0,->7
 | 5 | ECHO |  |  |  | 'foo'
 | 6 | JMP |  |  |  | ->7
9 | 7 | RETURN |  |  |  | 1


BOOL_NOT

PHP code

<?php
/*
 * Boolean (logical) not of "value"
 * opcode number: 13
 */
echo !1;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BOOL_NOT |  |  | ~0 | 1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


BOOL_XOR

PHP code

<?php
/*
 * Boolean (logical) xor of value1
 * opcode number: 14
 */
echo 1 xor 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BOOL_XOR |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


BRK

PHP code

<?php
/*
 * ???  End of a case block exists the current switch block.  Followed by JMP?
 * opcode number: 50
 */
$x = 0;
while(1) {
    if($x == 0) break;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,0
7 | 1 | JMPZ |  |  |  | 1,->7
8 | 2 | IS_EQUAL |  |  | ~1 | !0,0
 | 3 | JMPZ |  |  |  | ~1,->6
 | 4 | BRK |  |  |  | 1
 | 5 | JMP |  |  |  | ->6
9 | 6 | JMP |  |  |  | ->1
10 | 7 | RETURN |  |  |  | 1


BW_AND

PHP code

<?php
/*
 * Bit-wise and of value1 and value2
 * opcode number: 10
 */
echo 1&2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BW_AND |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


BW_NOT

PHP code

<?php
/*
 * Bit-wise not of "value"
 * opcode number: 12
 */
echo ~15;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BW_NOT |  |  | ~0 | 15
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


BW_OR

PHP code

<?php
/*
 * Bit-wise or of value1 and value2
 * opcode number: 9
 */
echo 1|2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BW_OR |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


BW_XOR

PHP code

<?php
/*
 * Bit-wise xor of value1 and value2
 * opcode number: 11
 */
echo 1^2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BW_XOR |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


CASE

PHP code

<?php
/*
 * Set result to true if value1 equals value2.  The value2 must be a constant value?
 * opcode number: 48
 */
$i=0;
switch ($i) {
   case 0:
         echo "i=0";
         break;
   case 1:
         echo "i=1";
         break;
   case 2:
         echo "i=2";
         break;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$i

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,0
8 | 1 | CASE |  |  | ~1 | !0,0
 | 2 | JMPZ |  |  |  | ~1,->6
9 | 3 | ECHO |  |  |  | 'i%3D0'
10 | 4 | BRK |  |  |  | 1
11 | 5 | JMP |  |  |  | ->8
 | 6 | CASE |  |  | ~1 | !0,1
 | 7 | JMPZ |  |  |  | ~1,->11
12 | 8 | ECHO |  |  |  | 'i%3D1'
13 | 9 | BRK |  |  |  | 1
14 | 10 | JMP |  |  |  | ->13
 | 11 | CASE |  |  | ~1 | !0,2
 | 12 | JMPZ |  |  |  | ~1,->16
15 | 13 | ECHO |  |  |  | 'i%3D2'
16 | 14 | BRK |  |  |  | 1
17 | 15 | JMP |  |  |  | ->16
18 | 16 | RETURN |  |  |  | 1


CAST

PHP code

<?php
/*
 * casts value1 as type value2 (type in extended_value)
 * opcode number: 21
 */
echo (int)1;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | CAST |  | 4 | ~0 | 1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


CATCH

PHP code

<?php
/*
 *
 * opcode number: 107
 */
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';
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$error, !1=$e

line | # | op | fetch | ext | return | operands
7 | 0 | ASSIGN |  |  |  | !0,'Always+throw+this+error'
8 | 1 | ZEND_FETCH_CLASS |  |  | :1 | 'Exception'
 | 2 | NEW |  |  | $2 | :1
 | 3 | SEND_VAR |  |  |  | !0
 | 4 | DO_FCALL_BY_NAME |  | 1 |  |
 | 5 | ZEND_THROW |  | 0 |  | $2
11 | 6 | ECHO |  |  |  | 'Never+executed'
13 | 7 | JMP |  |  |  | ->15
 | 8 | ZEND_FETCH_CLASS |  |  | :4 | 'Exception'
 | 9 | ZEND_CATCH |  | 15 |  | $4,!1
14 | 10 | ECHO |  |  |  | 'Caught+exception%3A+'
 | 11 | ZEND_INIT_METHOD_CALL |  |  |  | !1,'getMessage'
 | 12 | DO_FCALL_BY_NAME |  | 0 |  |
 | 13 | ECHO |  |  |  | $6
 | 14 | ECHO |  |  |  | '%0A'
18 | 15 | ECHO |  |  |  | 'Hello+World'
19 | 16 | RETURN |  |  |  | 1


CLONE

PHP code

<?php
/*
 *
 * opcode number: 110
 */
$obj = new A();
$copy = clone $obj;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj, !1=$copy

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_CLONE |  |  | $4 | !0
 | 5 | ASSIGN |  |  |  | !1,$4
8 | 6 | RETURN |  |  |  | 1


CONCAT

PHP code

<?php
/*
 * Concats string values string1 and string2
 * opcode number: 8
 */
echo "hello" . "world";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | CONCAT |  |  | ~0 | 'hello','world'
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


CONT

PHP code

<?php
/*
 * Continue next iteration of current loop level
 * opcode number: 51
 */
$foo = false;
while(!$foo) {
    $foo = true;
    continue;
}
?>

PHP opcodes

Function name: (null)

compiled vars: !0 = $foo

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0, false
7 | 1 | BOOL_NOT |  |  | ~1 | !0
 | 2 | JMPZ |  |  |  | ~1, ->5
8 | 3 | ASSIGN |  |  |  | !0, true
9 | 4 | CONT |  |  |  | 1
10 | 5 | JMP |  |  |  | ->1
12 | 6 | RETURN |  |  |  | 1


DECLARE_CLASS

PHP code

<?php
/*
 * Declare a class with the name of class-name as the implementation specified by ID.
 * opcode number: 139
 */
class A {
    function methodA(){
        echo "hello world";
    }
}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
11 | 1 | RETURN |  |  |  | 1

Function name: methodA

Compiled variables: none

line | # | op | fetch | ext | return | operands
8 | 0 | ECHO |  |  |  | 'hello+world'
9 | 1 | RETURN |  |  |  | null


  • « DECLARE_CLASS
  • DECLARE_FUNCTION »
  • PHP Manual
  • Opcode Descriptions and Examples
  • DECLARE_CONST

DECLARE_CONST

PHP code

<?php
/*
 *
 * opcode number: 143
 * No sample PHP yet */
?>


DECLARE_FUNCTION

PHP code

<?php
/*
 *
 * opcode number: 141
 */
class A{
 function funcA(){
 }
}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
10 | 1 | RETURN |  |  |  | 1

Function name: funcA

Compiled variables: none

line | # | op | fetch | ext | return | operands
8 | 0 | RETURN |  |  |  | null


DECLARE_INHERITED_CLASS

PHP code

<?php
/*
 *
 * opcode number: 140
 */
 if($b){
 class Foo {
  public static $my_static = 'foo';
  public function staticValue() {
    return self::$my_static;
  }
 }

 class Bar extends Foo {
  public function fooStatic() {
     echo parent::$my_static;
  }
 }
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$b

line | # | op | fetch | ext | return | operands
6 | 0 | JMPZ |  |  |  | !0,->5
7 | 1 | ZEND_DECLARE_CLASS |  |  | $0 | '%00foo%2Fmnt%2Fworkspace%2Fws_phpscripts%2FPHPopcodes%2Fphpsamples%2FDECLARE_INHERITED_CLASS.php0xb7be503b','foo'
14 | 2 | ZEND_FETCH_CLASS |  |  | :1 | 'Foo'
 | 3 | ZEND_DECLARE_INHERITED_CLASS |  |  | $2 | '%00bar%2Fmnt%2Fworkspace%2Fws_phpscripts%2FPHPopcodes%2Fphpsamples%2FDECLARE_INHERITED_CLASS.php0xb7be50bc','bar'
19 | 4 | JMP |  |  |  | ->5
20 | 5 | RETURN |  |  |  | 1

Function name: staticValue

Compiled variables: !0=$my_static

line | # | op | fetch | ext | return | operands
10 | 0 | ZEND_FETCH_CLASS |  |  |  |
 | 1 | FETCH_R | staticmember |  | $1 | 'my_static'
 | 2 | RETURN |  |  |  | $1
11 | 3 | RETURN |  |  |  | null

Function name: fooStatic

Compiled variables: !0=$my_static

line | # | op | fetch | ext | return | operands
16 | 0 | ZEND_FETCH_CLASS |  |  | :0 |
 | 1 | FETCH_R | staticmember |  | $1 | 'my_static'
 | 2 | ECHO |  |  |  | $1
17 | 3 | RETURN |  |  |  | null


  • « DECLARE_INHERITED_CLASS
  • DIV »
  • PHP Manual
  • Opcode Descriptions and Examples
  • DECLARE_INHERITED_CLASS_DELAYED

DECLARE_INHERITED_CLASS_DELAYED

PHP code

<?php
/*
 *
 * opcode number: 145
 * No sample PHP yet */
?>


DIV

PHP code

<?php
/*
 * Divides "value1" by "value2" and stores the result into "result".
 * opcode number: 4
 */
echo 6/3;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | DIV |  |  | ~0 | 6,3
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


DO_FCALL

PHP code

<?php
/*
 * Call a function.  Following multiple SEND_VAL, SEND_VAR or SEND_REF.
 * opcode number: 60
 */
$a = phpinfo();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | DO_FCALL |  | 0 |  | 'phpinfo'
 | 1 | ASSIGN |  |  |  | !0,$0
7 | 2 | RETURN |  |  |  | 1


DO_FCALL_BY_NAME

PHP code

<?php
/*
 * Call a function by name.  Following INIT_FCALL_BY_NAME and multiple SEND_VAL, SEND_VAR or SEND_REF.
 * opcode number: 61
 */
$x = 'phpinfo';
$a = $x();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,'phpinfo'
7 | 1 | INIT_FCALL_BY_NAME |  |  |  | !0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !1,$1
8 | 4 | RETURN |  |  |  | 1


ECHO

PHP code

<?php
/*
 * Dump text
 * opcode number: 40
 */
echo "hello world";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | ECHO |  |  |  | 'hello+world'
7 | 1 | RETURN |  |  |  | 1


END_SILENCE

PHP code

<?php
/*
 * no longer surpress error messages
 * opcode number: 58
 */
$my_file = @file ('non_existent_file') or
   die ("error:'$php_errormsg'");
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$my_file, !1=$php_errormsg

line | # | op | fetch | ext | return | operands
6 | 0 | BEGIN_SILENCE |  |  | ~0 |
 | 1 | SEND_VAL |  |  |  | 'non_existent_file'
 | 2 | DO_FCALL |  | 1 |  | 'file'
 | 3 | END_SILENCE |  |  |  | ~0
 | 4 | ASSIGN |  |  | $2 | !0,$1
 | 5 | JMPNZ_EX |  |  | ~3 | $2,->11
7 | 6 | ADD_STRING |  |  | ~4 | 'error%3A%27'
 | 7 | ADD_VAR |  |  | ~4 | ~4,!1
 | 8 | ADD_CHAR |  |  | ~4 | ~4,39
 | 9 | EXIT |  |  |  | ~4
 | 10 | BOOL |  |  | ~3 | true
 | 11 | FREE |  |  |  | ~3
8 | 12 | RETURN |  |  |  | 1


EXIT

PHP code

<?php
/*
 * Exit running after dumping "message".
 * opcode number: 79
 */
die("foobar");
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | EXIT |  |  |  | 'foobar'
7 | 1 | RETURN |  |  |  | 1


  • « EXIT
  • EXT_FCALL_END »
  • PHP Manual
  • Opcode Descriptions and Examples
  • EXT_FCALL_BEGIN

EXT_FCALL_BEGIN

PHP code

<?php
/*
 *
 * opcode number: 102
 * No sample PHP yet */
?>


  • « EXT_FCALL_BEGIN
  • EXT_NOP »
  • PHP Manual
  • Opcode Descriptions and Examples
  • EXT_FCALL_END

EXT_FCALL_END

PHP code

<?php
/*
 *
 * opcode number: 103
 * No sample PHP yet */
?>


  • « EXT_FCALL_END
  • EXT_STMT »
  • PHP Manual
  • Opcode Descriptions and Examples
  • EXT_NOP

EXT_NOP

PHP code

<?php
/*
 *
 * opcode number: 104
 * No sample PHP yet */
?>


EXT_STMT

PHP code

<?php
/*
 *
 * opcode number: 101
 */
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
7 | 0 | EXT_STMT |  |  |  |
8 | 1 | RETURN |  |  |  | 1


FE_FETCH

PHP code

<?php
/*
 * Fetch an element from iterator.  If no element is available, jump to address.  Followed by OP_DATA?
 * opcode number: 78
 */
$a = array(1,2,3);
foreach($a as $num){
    print $num;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a, !1=$num

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | FE_RESET |  |  | $2 | !0,->11
 | 5 | FE_FETCH |  |  | $3 | $2,->11
 | 6 | ZEND_OP_DATA |  |  |  |
 | 7 | ASSIGN |  |  |  | !1,$3
8 | 8 | PRINT |  |  | ~5 | !1
 | 9 | FREE |  |  |  | ~5
9 | 10 | JMP |  |  |  | ->5
 | 11 | SWITCH_FREE |  |  |  | $2
10 | 12 | RETURN |  |  |  | 1


FE_RESET

PHP code

<?php
/*
 * Initialize an iterator on array-value.  If the array is empty, jump to address.  Followed by FE_FETCH.
 * opcode number: 77
 */
$a = array(1,2,3);
foreach($a as $num){
    print $num;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a, !1=$num

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | FE_RESET |  |  | $2 | !0,->11
 | 5 | FE_FETCH |  |  | $3 | $2,->11
 | 6 | ZEND_OP_DATA |  |  |  |
 | 7 | ASSIGN |  |  |  | !1,$3
8 | 8 | PRINT |  |  | ~5 | !1
 | 9 | FREE |  |  |  | ~5
9 | 10 | JMP |  |  |  | ->5
 | 11 | SWITCH_FREE |  |  |  | $2
10 | 12 | RETURN |  |  |  | 1


FETCH_CLASS

PHP code

<?php
/*
 *
 * opcode number: 109
 */
$obj = new A();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | RETURN |  |  |  | 1


FETCH_CONSTANT

PHP code

<?php
/*
 * Fetch the constant value bound to the specified name (name) and stores it into a variable (result).
 * opcode number: 99
 */
define("FOO", "something");
echo FOO;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | SEND_VAL |  |  |  | 'FOO'
 | 1 | SEND_VAL |  |  |  | 'something'
 | 2 | DO_FCALL |  | 2 |  | 'define'
7 | 3 | FETCH_CONSTANT |  |  | ~1 | 'FOO'
 | 4 | ECHO |  |  |  | ~1
8 | 5 | RETURN |  |  |  | 1


FETCH_DIM_FUNC_ARG

PHP code

<?php
/*
 *
 * opcode number: 93
 */

function foo(&$x)
{
  print($x);
}

$x = array(0, 1, 2, 3, 4, 5);
$z = "foo";

$z($x[0]);

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$z

line | # | op | fetch | ext | return | operands
7 | 0 | NOP |  |  |  |
12 | 1 | INIT_ARRAY |  |  | ~0 | 0
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 1
 | 3 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 4 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 5 | ADD_ARRAY_ELEMENT |  |  | ~0 | 4
 | 6 | ADD_ARRAY_ELEMENT |  |  | ~0 | 5
 | 7 | ASSIGN |  |  |  | !0,~0
13 | 8 | ASSIGN |  |  |  | !1,'foo'
15 | 9 | INIT_FCALL_BY_NAME |  |  |  | !1
 | 10 | FETCH_DIM_FUNC_ARG |  |  | $3 | !0,0
 | 11 | SEND_VAR |  |  |  | $3
 | 12 | DO_FCALL_BY_NAME |  | 1 |  |
17 | 13 | RETURN |  |  |  | 1

Function name: foo

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
7 | 0 | RECV |  |  |  | 1
9 | 1 | PRINT |  |  | ~0 | !0
 | 2 | FREE |  |  |  | ~0
10 | 3 | RETURN |  |  |  | null


  • « FETCH_DIM_FUNC_ARG
  • FETCH_DIM_R »
  • PHP Manual
  • Opcode Descriptions and Examples
  • FETCH_DIM_IS

FETCH_DIM_IS

PHP code

<?php
/*
 *
 * opcode number: 90
 * No sample PHP yet */
?>


FETCH_DIM_R

PHP code

<?php
/*
 * Fetch the value of the element at "index" in "array-value" to store it in "result".  Read-only?
 * opcode number: 81
 */
$x = array(1,2,3);
$a = 'x';
echo $$a[0];
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | ASSIGN |  |  |  | !1,'x'
8 | 5 | FETCH_DIM_R |  |  | $3 | !1,0
 | 6 | FETCH_R | local |  | $4 | $3
 | 7 | ECHO |  |  |  | $4
9 | 8 | RETURN |  |  |  | 1


FETCH_DIM_RW

PHP code

<?php
/*
 * Fetch the value of the element at "index" in "array-value" to store it in "result".
 * opcode number: 87
 */
$x = array(1,2,3);
$a = 'x';
$$a[0]++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | ASSIGN |  |  |  | !1,'x'
8 | 5 | FETCH_DIM_R |  |  | $3 | !1,0
 | 6 | FETCH_RW | local |  | $4 | $3
 | 7 | POST_INC |  |  | ~5 | $4
 | 8 | FREE |  |  |  | ~5
9 | 9 | RETURN |  |  |  | 1


FETCH_DIM_TMP_VAR

PHP code

<?php
/*
 * Fetch an entry of an array from a temporal variable?
 * opcode number: 98
 */
list($x) = array("X");
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 'X'
 | 1 | FETCH_DIM_TMP_VAR |  |  | $1 | ~0,0
 | 2 | ASSIGN |  |  |  | !0,$1
 | 3 | FREE |  |  |  | ~0
7 | 4 | RETURN |  |  |  | 1


FETCH_DIM_UNSET

PHP code

<?php
/*
 * Fetch an entry of an array variable for the purpose of unset() operation.
 * opcode number: 96
 * No sample PHP yet */
?>


FETCH_DIM_W

PHP code

<?php
/*
 * Fetch the value of the element at "index" in "array-value" to store it in "result".  Write-only?
 * opcode number: 84
 */
$a = 1;
while($a > 0){
    $a = 0;
}
/*$input =array(1,2,3);
while (list($var,) = @each($input)){
    unset($$var);
}*/
/*$a = array(1,2,3);
$x = 'a';
$$x[0] = 1;*/

/*while ($b = each($a)) {
  print $b;
}*/

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | IS_SMALLER |  |  | ~1 | 0,!0
 | 2 | JMPZ |  |  |  | ~1,->5
8 | 3 | ASSIGN |  |  |  | !0,0
9 | 4 | JMP |  |  |  | ->1
23 | 5 | RETURN |  |  |  | 1


FETCH_FUNC_ARG

PHP code

<?php
/*
 *
 * opcode number: 92
 */
function foo($x)
{
}

$x = 1;
$y = "x";
$z = "foo";

$z($$y);

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$y, !2=$z

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
10 | 1 | ASSIGN |  |  |  | !0,1
11 | 2 | ASSIGN |  |  |  | !1,'x'
12 | 3 | ASSIGN |  |  |  | !2,'foo'
14 | 4 | INIT_FCALL_BY_NAME |  |  |  | !2
 | 5 | FETCH_FUNC_ARG | local |  | $3 | !1
 | 6 | SEND_VAR |  |  |  | $3
 | 7 | DO_FCALL_BY_NAME |  | 1 |  |
16 | 8 | RETURN |  |  |  | 1

Function name: foo

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
6 | 0 | RECV |  |  |  | 1
8 | 1 | RETURN |  |  |  | null


FETCH_IS

PHP code

<?php
/*
 * Fetch the value from variable which is to be used to test if it is set or not, through isset()/isempty().
 * opcode number: 89
 */
echo isset($_SESSION['userid']);
echo isset($_SESSION['userid'][1]);
echo isset($_SESSION->prop->prop);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | FETCH_IS |  |  | $0 | '_SESSION'
 | 1 | ZEND_ISSET_ISEMPTY_DIM_OBJ |  | 1 | ~1 | $0,'userid'
 | 2 | ECHO |  |  |  | ~1
7 | 3 | FETCH_IS |  |  | $2 | '_SESSION'
 | 4 | FETCH_DIM_IS |  |  | $3 | $2,'userid'
 | 5 | ZEND_ISSET_ISEMPTY_DIM_OBJ |  | 1 | ~4 | $3,1
 | 6 | ECHO |  |  |  | ~4
8 | 7 | FETCH_IS |  |  | $5 | '_SESSION'
 | 8 | FETCH_OBJ_IS |  |  | $6 | $5,'prop'
 | 9 | ZEND_ISSET_ISEMPTY_PROP_OBJ |  |  | ~7 | $6,'prop'
 | 10 | ECHO |  |  |  | ~7
9 | 11 | RETURN |  |  |  | 1


FETCH_OBJ_FUNC_ARG

PHP code

<?php
/*
 *
 * opcode number: 94
 */
include './classA.php';

function foo(&$x)
{
  print($x);
}

$z = "foo";

$obj = new A();
print $obj->num;
$z($obj->num);

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$z, !1=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | INCLUDE_OR_EVAL |  |  |  | '.%2FclassA.php',INCLUDE
8 | 1 | NOP |  |  |  |
13 | 2 | ASSIGN |  |  |  | !0,'foo'
15 | 3 | ZEND_FETCH_CLASS |  |  | :2 | 'A'
 | 4 | NEW |  |  | $3 | :2
 | 5 | DO_FCALL_BY_NAME |  | 0 |  |
 | 6 | ASSIGN |  |  |  | !1,$3
16 | 7 | FETCH_OBJ_R |  |  | $6 | !1,'num'
 | 8 | PRINT |  |  | ~7 | $6
 | 9 | FREE |  |  |  | ~7
17 | 10 | INIT_FCALL_BY_NAME |  |  |  | !0
 | 11 | FETCH_OBJ_FUNC_ARG |  |  | $8 | !1,'num'
 | 12 | SEND_VAR |  |  |  | $8
 | 13 | DO_FCALL_BY_NAME |  | 1 |  |
19 | 14 | RETURN |  |  |  | 1

Function name: foo

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
8 | 0 | RECV |  |  |  | 1
10 | 1 | PRINT |  |  | ~0 | !0
 | 2 | FREE |  |  |  | ~0
11 | 3 | RETURN |  |  |  | null

Function name: foo

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
8 | 0 | RECV |  |  |  | 1
10 | 1 | PRINT |  |  | ~0 | !0
 | 2 | FREE |  |  |  | ~0
11 | 3 | RETURN |  |  |  | null


  • « FETCH_OBJ_FUNC_ARG
  • FETCH_OBJ_R »
  • PHP Manual
  • Opcode Descriptions and Examples
  • FETCH_OBJ_IS

FETCH_OBJ_IS

PHP code

<?php
/*
 *
 * opcode number: 91
 * No sample PHP yet */
?>


FETCH_OBJ_R

PHP code

<?php
/*
 * Fetch the "prop-name" property value of this object.  Read-only?
 * opcode number: 82
 */
$x = new A();
$a = 'x';
echo $$a->num;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ASSIGN |  |  |  | !1,'x'
8 | 5 | FETCH_R | local |  | $5 | !1
 | 6 | FETCH_OBJ_R |  |  | $6 | $5,'num'
 | 7 | ECHO |  |  |  | $6
9 | 8 | RETURN |  |  |  | 1


FETCH_OBJ_RW

PHP code

<?php
/*
 * Fetch the "prop-name" property value of this object.
 * opcode number: 88
 */
$x = new A();
$a = 'x';
$$a->num++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ASSIGN |  |  |  | !1,'x'
8 | 5 | FETCH_RW | local |  | $5 | !1
 | 6 | ZEND_POST_INC_OBJ |  |  | ~7 | $5,'num'
 | 7 | FREE |  |  |  | ~7
9 | 8 | RETURN |  |  |  | 1


FETCH_OBJ_UNSET

PHP code

<?php
/*
 * Fetch a property of an object variable for the purpose of unset() operation.
 * opcode number: 97
 * No sample PHP yet */
?>


FETCH_OBJ_W

PHP code

<?php
/*
 * Fetch an object from the property of this object and write to the property of the fectched object.
 * opcode number: 85
 */
$foo = new stdclass;
$foo->bar = new stdclass;
$foo->bar->baz = 'quix';
?>

PHP opcodes

Function name: (null)

Compiled variables: !0 = $foo

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  | 4 | :0 | 'stdclass'
 | 1 | NEW |  |  |  | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0
7 | 4 | ZEND_FETCH_CLASS |  | 4 | :5 | 'stdclass'
 | 5 | NEW |  |  |  | :5
 | 6 | DO_FCALL_BY_NAME |  | 0 |  |
 | 7 | ZEND_ASSIGN_OBJ |  |  |  | !0, 'bar'
 | 8 | ZEND_OP_DATA |  |  |  |
8 | 9 | FETCH_OBJ_W |  |  |  | !0, 'bar'
 | 10 | ZEND_ASSIGN_OBJ |  |  |  | 'baz'
 | 11 | ZEND_OP_DATA |  |  |  | 'quix'
9 | 12 | RETURN |  |  |  | 1


FETCH_R

PHP code

<?php
/*
 * Fetch the value of the varible of "name" to assign it to a variable?  Read-only?
 * opcode number: 80
 */
$x = 1;
$a = 'x';
echo $$a;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | ASSIGN |  |  |  | !1,'x'
8 | 2 | FETCH_R | local |  | $2 | !1
 | 3 | ECHO |  |  |  | $2
9 | 4 | RETURN |  |  |  | 1


FETCH_RW

PHP code

<?php
/*
 * Fetch the value of the varible of "name" to assign it to a variable?
 * opcode number: 86
 */
$x = 1;
$a = 'x';
$$a++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | ASSIGN |  |  |  | !1,'x'
8 | 2 | FETCH_RW | local |  | $2 | !1
 | 3 | POST_INC |  |  | ~3 | $2
 | 4 | FREE |  |  |  | ~3
9 | 5 | RETURN |  |  |  | 1


FETCH_UNSET

PHP code

<?php
/*
 * Fetch a variable for the purpose of unset() operation.
 * opcode number: 95
 * No sample PHP yet */
?>


FETCH_W

PHP code

<?php
/*
 * Fetch the value of the varible of "name" to assign it to a variable?  Write-only?
 * opcode number: 83
 */
$x = 1;
$a = 'x';
$$a = 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | ASSIGN |  |  |  | !1,'x'
8 | 2 | FETCH_W | local |  | $2 | !1
 | 3 | ASSIGN |  |  |  | $2,2
9 | 4 | RETURN |  |  |  | 1


FREE

PHP code

<?php
/*
 * Release the allocated space of the value.
 * opcode number: 70
 */
 print "Hello World";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | PRINT |  |  | ~0 | 'Hello+World'
 | 1 | FREE |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


  • « FREE
  • HANDLE_EXCEPTION »
  • PHP Manual
  • Opcode Descriptions and Examples
  • GOTO

GOTO

PHP code

<?php
/*
 *
 * opcode number: 100
 * No sample PHP yet */
?>


HANDLE_EXCEPTION

PHP code

<?php
/*
 *
 * opcode number: 149
 */
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | RETURN |  |  |  | 1


INCLUDE_OR_EVAL

PHP code

<?php
/*
 * Include the file specified by filename and eval it.
 * opcode number: 73
 */
include("test.php");
eval("test.php");
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | INCLUDE_OR_EVAL |  |  |  | 'test.php',INCLUDE
7 | 1 | INCLUDE_OR_EVAL |  |  |  | 'test.php',EVAL
8 | 2 | RETURN |  |  |  | 1

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
2 | 0 | DO_FCALL |  | 0 |  | 'phpinfo'
3 | 1 | RETURN |  |  |  | 1


INIT_ARRAY

PHP code

<?php
/*
 * Allocate a new array with elem-value as the first element of the array.  Followed by ADD_ARRAY_ELEMENT.
 * opcode number: 71
 */
$a = array(1,2,3);
print_r($a);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | SEND_VAR |  |  |  | !0
 | 5 | DO_FCALL |  | 1 |  | 'print_r'
8 | 6 | RETURN |  |  |  | 1


INIT_FCALL_BY_NAME

PHP code

<?php
/*
 * prepare for a function call to function value1
 * opcode number: 59
 */
$x = 'phpinfo';
$a = $x();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,'phpinfo'
7 | 1 | INIT_FCALL_BY_NAME |  |  |  | !0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !1,$1
8 | 4 | RETURN |  |  |  | 1


INIT_METHOD_CALL

PHP code

<?php
/*
 * Prepare for a method call.  Followed by DO_FCALL.
 * opcode number: 112
 */
class A {
  var $num;
    function incrementNum(){
    $num++;
  }
}

$obj = new A();
$obj->incrementNum();

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
13 | 1 | ZEND_FETCH_CLASS |  |  | :1 | 'A'
 | 2 | NEW |  |  | $2 | :1
 | 3 | DO_FCALL_BY_NAME |  | 0 |  |
 | 4 | ASSIGN |  |  |  | !0,$2
14 | 5 | ZEND_INIT_METHOD_CALL |  |  |  | !0,'incrementNum'
 | 6 | DO_FCALL_BY_NAME |  | 0 |  |
16 | 7 | RETURN |  |  |  | 1

Function name: incrementNum

Compiled variables: !0=$num

line | # | op | fetch | ext | return | operands
9 | 0 | POST_INC |  |  | ~0 | !0
 | 1 | FREE |  |  |  | ~0
10 | 2 | RETURN |  |  |  | null


  • « INIT_METHOD_CALL
  • INIT_STATIC_METHOD_CALL »
  • PHP Manual
  • Opcode Descriptions and Examples
  • INIT_NS_FCALL_BY_NAME

INIT_NS_FCALL_BY_NAME

PHP code

<?php
/*
 *
 * opcode number: 69
 * No sample PHP yet */
?>


INIT_STATIC_METHOD_CALL

PHP code

<?php
/*
 *
 * opcode number: 113
 */
class Foo {
    public static function aStaticMethod() {
            echo "hello world\n";
    }
}

Foo::aStaticMethod();
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
12 | 1 | ZEND_INIT_STATIC_METHOD_CALL |  |  |  | 'Foo','aStaticMethod'
 | 2 | ZEND_OP_DATA |  |  |  | 'foo%3A%3Aastaticmethod'
 | 3 | DO_FCALL_BY_NAME |  | 0 |  |
13 | 4 | RETURN |  |  |  | 1

Function name: aStaticMethod

Compiled variables: none

line | # | op | fetch | ext | return | operands
8 | 0 | ECHO |  |  |  | 'hello+world%0A'
9 | 1 | RETURN |  |  |  | null


INIT_STRING

PHP code

<?php
/*
 * appears to create a string variable in result
 * opcode number: 53
 */
echo "hello$a world";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ADD_STRING |  |  | ~0 | 'hello'
 | 1 | ADD_VAR |  |  | ~0 | ~0,!0
 | 2 | ADD_STRING |  |  | ~0 | ~0,'+world'
 | 3 | ECHO |  |  |  | ~0
7 | 4 | RETURN |  |  |  | 1


INSTANCEOF

PHP code

<?php
/*
 *
 * opcode number: 138
 */
$obj = new A();

if ($obj instanceof A) {
   echo 'A';
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
8 | 4 | ZEND_FETCH_CLASS |  |  | :4 | 'A'
 | 5 | ZEND_INSTANCEOF |  |  | ~5 | !0,$4
 | 6 | JMPZ |  |  |  | ~5,->9
9 | 7 | ECHO |  |  |  | 'A'
10 | 8 | JMP |  |  |  | ->9
11 | 9 | RETURN |  |  |  | 1


IS_EQUAL

PHP code

<?php
/*
 * compares if value1 and value2 are equal
 * opcode number: 17
 */
echo (1 == 1);
echo (1 == 'c');
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_EQUAL |  |  | ~0 | 1,1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | IS_EQUAL |  |  | ~1 | 1,'c'
 | 3 | ECHO |  |  |  | ~1
8 | 4 | RETURN |  |  |  | 1


IS_IDENTICAL

PHP code

<?php
/*
 * Compares value1 and value2 to see if they are equal AND have the same type
 * opcode number: 15
 */
echo (1===1);
echo (1==='a');
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_IDENTICAL |  |  | ~0 | 1,1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | IS_IDENTICAL |  |  | ~1 | 1,'a'
 | 3 | ECHO |  |  |  | ~1
8 | 4 | RETURN |  |  |  | 1


IS_NOT_EQUAL

PHP code

<?php
/*
 * compares if value1 and value2 are not equal
 * opcode number: 18
 */
echo (1 != 1);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_NOT_EQUAL |  |  | ~0 | 1,1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


IS_NOT_IDENTICAL

PHP code

<?php
/*
 * compares value1 and value2 to see if they are unequal or of different types
 * opcode number: 16
 */
echo (1 !== 1);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_NOT_IDENTICAL |  |  | ~0 | 1,1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


IS_SMALLER

PHP code

<?php
/*
 * compares if value1 is less than value2
 * opcode number: 19
 */
echo (1 < 2);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_SMALLER |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


IS_SMALLER_OR_EQUAL

PHP code

<?php
/*
 * compares if value1 is less than or equal to value2
 * opcode number: 20
 */
echo (2 <= 1);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_SMALLER_OR_EQUAL |  |  | ~0 | 2,1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


ISSET_ISEMPTY_DIM_OBJ

PHP code

<?php
/*
 * Tests if the entry of an array is set or not.
 * opcode number: 115
 */
if(isset($a[0])) return 0;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_ISSET_ISEMPTY_DIM_OBJ |  | 1 | ~0 | !0,0
 | 1 | JMPZ |  |  |  | ~0,->4
 | 2 | RETURN |  |  |  | 0
 | 3 | JMP |  |  |  | ->4
7 | 4 | RETURN |  |  |  | 1


ISSET_ISEMPTY_PROP_OBJ

PHP code

<?php
/*
 *
 * opcode number: 148
 */
$obj = new A();
if(empty($obj->num)) return 0;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_ISSET_ISEMPTY_PROP_OBJ |  |  | ~4 | !0,'num'
 | 5 | JMPZ |  |  |  | ~4,->8
 | 6 | RETURN |  |  |  | 0
 | 7 | JMP |  |  |  | ->8
8 | 8 | RETURN |  |  |  | 1


ISSET_ISEMPTY_VAR

PHP code

<?php
/*
 * Tests if the value of a variable is set or not.
 * opcode number: 114
 */
if(isset($a)){ return 0;}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_ISSET_ISEMPTY_VAR |  | 5 | ~0 | !0
 | 1 | JMPZ |  |  |  | ~0,->4
 | 2 | RETURN |  |  |  | 0
 | 3 | JMP |  |  |  | ->4
7 | 4 | RETURN |  |  |  | 1


JMP

PHP code

<?php
/*
 * Unconditonally jump to the address
 * opcode number: 42
 */
$foo = false;
while(!$foo) {
    $foo = true;
}
?>

PHP opcodes

Function name: (null)

compiled vars: !0 = $foo

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0, false
7 | 1 | BOOL_NOT |  |  | ~1 | !0
 | 2 | JMPZ |  |  |  | ~1, ->5
8 | 3 | ASSIGN |  |  |  | !0, true
9 | 4 | JMP |  |  |  | ->1
11 | 5 | RETURN |  |  |  | 1


JMPNZ

PHP code

<?php
/*
 * Jump to the address if the value is not zero
 * opcode number: 44
 */
for($i=0; $i<3; $i++){
    echo "hi";
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$i

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,0
 | 1 | IS_SMALLER |  |  | ~1 | !0,3
 | 2 | JMPZNZ |  | 6 |  | ~1,->8
 | 3 | POST_INC |  |  | ~2 | !0
 | 4 | FREE |  |  |  | ~2
 | 5 | JMP |  |  |  | ->1
7 | 6 | ECHO |  |  |  | 'hi'
8 | 7 | JMP |  |  |  | ->3
9 | 8 | RETURN |  |  |  | 1


JMPNZ_EX

PHP code

<?php
/*
 * Jump to the address if the xor of value1 and value2 is zero .. ???
 * opcode number: 47
 */
if(1^2) return;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BW_XOR |  |  | ~0 | 1,2
 | 1 | JMPZ |  |  |  | ~0,->4
 | 2 | RETURN |  |  |  | null
 | 3 | JMP |  |  |  | ->4
7 | 4 | RETURN |  |  |  | 1


JMPZ

PHP code

<?php
/*
 * Jump to the address if the value is zero
 * opcode number: 43
 */
if($a != 0) echo "foo";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | IS_NOT_EQUAL |  |  | ~0 | !0,0
 | 1 | JMPZ |  |  |  | ~0,->4
 | 2 | ECHO |  |  |  | 'foo'
 | 3 | JMP |  |  |  | ->4
7 | 4 | RETURN |  |  |  | 1


JMPZ_EX

PHP code

<?php
/*
 * Jump to the address if the xor of value1 and value2 is zero .. ???
 * opcode number: 46
 */

?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
7 | 0 | RETURN |  |  |  | 1


JMPZNZ

PHP code

<?php
/*
 * Jump to the address given in the operands if the value is zero;
 * jump to the address given in extended data if nonzero.
 * opcode number: 45
 */
for($i=0; $i<3; $i++){
    echo "hi";
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$i

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,0
 | 1 | IS_SMALLER |  |  | ~1 | !0,3
 | 2 | JMPZNZ |  | 6 |  | ~1,->8
 | 3 | POST_INC |  |  | ~2 | !0
 | 4 | FREE |  |  |  | ~2
 | 5 | JMP |  |  |  | ->1
7 | 6 | ECHO |  |  |  | 'hi'
8 | 7 | JMP |  |  |  | ->3
9 | 8 | RETURN |  |  |  | 1


MOD

PHP code

<?php
/*
 * Makes the value of "result" congruent to "value1" modulo "value2".
 * opcode number: 5
 */
echo 6 % 3;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | MOD |  |  | ~0 | 6,3
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


MUL

PHP code

<?php
/*
 * Multiplys "value1" by "value2" and stores the result into "result".
 * opcode number: 3
 */
echo 2*3;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | MUL |  |  | ~0 | 2,3
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


NEW

PHP code

<?php
/*
 * Construct an instance of "type" and store the reference to the object into "result".
 * opcode number: 68
 */
$obj = new A();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | RETURN |  |  |  | 1


NOP

PHP code

<?php
/*
 * no operation
 * opcode number: 0
 */
function A(){};
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
7 | 1 | RETURN |  |  |  | 1

Function name: A

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | RETURN |  |  |  | null


POST_DEC

PHP code

<?php
/*
 * decrements variable indicated by value1 by 1 (after performing other operations) and stores in result
 * opcode number: 37
 */
$a--;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | POST_DEC |  |  | ~0 | !0
 | 1 | FREE |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


POST_DEC_OBJ

PHP code

<?php
/*
 *
 * opcode number: 135
 */
$obj = new A();
$obj->num--;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_POST_DEC_OBJ |  |  | ~5 | !0,'num'
 | 5 | FREE |  |  |  | ~5
8 | 6 | RETURN |  |  |  | 1


POST_INC

PHP code

<?php
/*
 * increments variable indicated by value1 by 1 (after performing other operations) and stores in result
 * opcode number: 36
 */
$a++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | POST_INC |  |  | ~0 | !0
 | 1 | FREE |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


POST_INC_OBJ

PHP code

<?php
/*
 * Increment the property value specified by prop-name and store the original value into result.
 * opcode number: 134
 */
$obj = new A();
$obj->num++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_POST_INC_OBJ |  |  | ~5 | !0,'num'
 | 5 | FREE |  |  |  | ~5
8 | 6 | RETURN |  |  |  | 1


PRE_DEC

PHP code

<?php
/*
 * decrements variable indicated by value1 by 1 (before performing other operations) and stores in results
 * opcode number: 35
 */
--$a;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | PRE_DEC |  |  |  | !0
7 | 1 | RETURN |  |  |  | 1


PRE_DEC_OBJ

PHP code

<?php
/*
 *
 * opcode number: 133
 */
$obj = new A();
--$obj->num;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_PRE_DEC_OBJ |  |  |  | !0,'num'
8 | 5 | RETURN |  |  |  | 1


PRE_INC

PHP code

<?php
/*
 * increments variable indicated by value1 by 1 (before performing other operations) and stores in result
 * opcode number: 34
 */
++$a;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | PRE_INC |  |  |  | !0
7 | 1 | RETURN |  |  |  | 1


PRE_INC_OBJ

PHP code

<?php
/*
 *
 * opcode number: 132
 */
$obj = new A();
++$obj->num;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_PRE_INC_OBJ |  |  |  | !0,'num'
8 | 5 | RETURN |  |  |  | 1


PRINT

PHP code

<?php
/*
 *
 * opcode number: 41
 */
print "Hello World";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | PRINT |  |  | ~0 | 'Hello+World'
 | 1 | FREE |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


QM_ASSIGN

PHP code

<?php
/*
 * Question Mark Assign, used twice inside a question mark assign to temporarily assign result as value1  (this is followed up with an ASSIGN bytecode)
 * opcode number: 22
 */
function A(){
 echo 1?2:3;
}

function B(){
 $b = 0;
 $a = $b > 1 ? 10: 11;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
10 | 1 | NOP |  |  |  |
14 | 2 | RETURN |  |  |  | 1

Function name: A

Compiled variables: none

line | # | op | fetch | ext | return | operands
7 | 0 | JMPZ |  |  |  | 1,->3
 | 1 | QM_ASSIGN |  |  | ~0 | 2
 | 2 | JMP |  |  |  | ->4
 | 3 | QM_ASSIGN |  |  | ~0 | 3
 | 4 | ECHO |  |  |  | ~0
8 | 5 | RETURN |  |  |  | null

Function name: B

Compiled variables: !0=$b, !1=$a

line | # | op | fetch | ext | return | operands
11 | 0 | ASSIGN |  |  |  | !0,0
12 | 1 | IS_SMALLER |  |  | ~1 | 1,!0
 | 2 | JMPZ |  |  |  | ~1,->5
 | 3 | QM_ASSIGN |  |  | ~2 | 10
 | 4 | JMP |  |  |  | ->6
 | 5 | QM_ASSIGN |  |  | ~2 | 11
 | 6 | ASSIGN |  |  |  | !1,~2
13 | 7 | RETURN |  |  |  | null


RAISE_ABSTRACT_ERROR

PHP code

<?php
/*
 *
 * opcode number: 142
 */

abstract class fail {
    abstract function show();
}

class pass extends fail {
    function show() {
        echo "Call to function show()\n";
    }
}

$t2 = new pass();
$t2->show();

$t = new fail();
$t->show();

echo "Done\n"; // shouldn't be displayed
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$t2, !1=$t

line | # | op | fetch | ext | return | operands
7 | 0 | NOP |  |  |  |
11 | 1 | NOP |  |  |  |
 | 2 | NOP |  |  |  |
17 | 3 | ZEND_FETCH_CLASS |  |  | :3 | 'pass'
 | 4 | NEW |  |  | $4 | :3
 | 5 | DO_FCALL_BY_NAME |  | 0 |  |
 | 6 | ASSIGN |  |  |  | !0,$4
18 | 7 | ZEND_INIT_METHOD_CALL |  |  |  | !0,'show'
 | 8 | DO_FCALL_BY_NAME |  | 0 |  |
20 | 9 | ZEND_FETCH_CLASS |  |  | :9 | 'fail'
 | 10 | NEW |  |  | $10 | :9
 | 11 | DO_FCALL_BY_NAME |  | 0 |  |
 | 12 | ASSIGN |  |  |  | !1,$10
21 | 13 | ZEND_INIT_METHOD_CALL |  |  |  | !1,'show'
 | 14 | DO_FCALL_BY_NAME |  | 0 |  |
23 | 15 | ECHO |  |  |  | 'Done%0A'
24 | 16 | RETURN |  |  |  | 1

Function name: show

Compiled variables: none

line | # | op | fetch | ext | return | operands
8 | 0 | ZEND_RAISE_ABSTRACT_ERROR |  |  |  |
 | 1 | RETURN |  |  |  | null

Function name: show

Compiled variables: none

line | # | op | fetch | ext | return | operands
13 | 0 | ECHO |  |  |  | 'Call+to+function+show%28%29%0A'
14 | 1 | RETURN |  |  |  | null


RECV

PHP code

<?php
/*
 * Receive a functoin argument of "argument-number" and store the argument value into a variable of "argument-number".  (e.g. $1 for 1)
 * opcode number: 63
 */
function hello($a){}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
7 | 1 | RETURN |  |  |  | 1

Function name: hello

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | RECV |  |  |  | 1
 | 1 | RETURN |  |  |  | null


RECV_INIT

PHP code

<?php
/*
 * Initialize a function argument with "value" if not received from caller.  Otherwise same as RECV.
 * opcode number: 64
 */
function hello($a=5){}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
7 | 1 | RETURN |  |  |  | 1

Function name: hello

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | RECV_INIT |  |  |  | 1,5
 | 1 | RETURN |  |  |  | null


RETURN

PHP code

<?php
/*
 * Return value from a funciton.
 * opcode number: 62
 */
return 1;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | RETURN |  |  |  | 1
7 | 1 | RETURN |  |  |  | 1


  • « RETURN
  • SEND_REF »
  • PHP Manual
  • Opcode Descriptions and Examples
  • RETURN_BY_REF

RETURN_BY_REF

PHP code

<?php
/*
 *
 * opcode number: 111
 * No sample PHP yet */
?>


SEND_REF

PHP code

<?php
/*
 * Pass the reference value as an actual parameter to a function.  DO_FCALL follows.
 * opcode number: 67
 */
@each($input);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BEGIN_SILENCE |  |  | ~0 |
 | 1 | FETCH_W | local |  | $1 | 'input'
 | 2 | SEND_REF |  |  |  | $1
 | 3 | DO_FCALL |  | 1 |  | 'each'
 | 4 | END_SILENCE |  |  |  | ~0
7 | 5 | RETURN |  |  |  | 1


SEND_VAL

PHP code

<?php
/*
 * Pass the constant value as an actual parameter to a function.  DO_FCALL follows.
 * opcode number: 65
 */
function funcA($msg){
    print $msg;
}

funcA('HELLO');

defined('IN_PHPBB');
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
10 | 1 | SEND_VAL |  |  |  | 'HELLO'
 | 2 | DO_FCALL |  | 1 |  | 'funca'
12 | 3 | SEND_VAL |  |  |  | 'IN_PHPBB'
 | 4 | DO_FCALL |  | 1 |  | 'defined'
13 | 5 | RETURN |  |  |  | 1

Function name: funcA

Compiled variables: !0=$msg

line | # | op | fetch | ext | return | operands
6 | 0 | RECV |  |  |  | 1
7 | 1 | PRINT |  |  | ~0 | !0
 | 2 | FREE |  |  |  | ~0
8 | 3 | RETURN |  |  |  | null


SEND_VAR

PHP code

<?php
/*
 * Pass the variable value as an actual parameter to a function.  DO_FCALL follows.
 * opcode number: 66
 */
$a = array(1,2,3);
if(is_array($a)){ return 0; }
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | SEND_VAR |  |  |  | !0
 | 5 | DO_FCALL |  | 1 |  | 'is_array'
 | 6 | JMPZ |  |  |  | $2,->9
 | 7 | RETURN |  |  |  | 0
 | 8 | JMP |  |  |  | ->9
8 | 9 | RETURN |  |  |  | 1


  • « SEND_VAR
  • SL »
  • PHP Manual
  • Opcode Descriptions and Examples
  • SEND_VAR_NO_REF

SEND_VAR_NO_REF

PHP code

<?php
/*
 *
 * opcode number: 106
 * No sample PHP yet */
?>


SL

PHP code

<?php
/*
 * Shift bits of value1 to the left value2 steps (each step means "multiply by two")
 * opcode number: 6
 */
echo 8 << 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | SL |  |  | ~0 | 8,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


SR

PHP code

<?php
/*
 * Shift bits of value1 to the right value2 steps (each step means "divide by two")
 * opcode number: 7
 */
echo 8 >> 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | SR |  |  | ~0 | 8,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


SUB

PHP code

<?php
/*
 * Subtracts "value2" from "value1" and stores the result into "result".
 * opcode number: 2
 */
echo 1-2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | SUB |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


SWITCH_FREE

PHP code

<?php
/*
 * Release the allocated space of "value"?
 * opcode number: 49
 */
$a = array(1,2,3);
foreach($a as $num){
    print $num;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a, !1=$num

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | FE_RESET |  |  | $2 | !0,->11
 | 5 | FE_FETCH |  |  | $3 | $2,->11
 | 6 | ZEND_OP_DATA |  |  |  |
 | 7 | ASSIGN |  |  |  | !1,$3
8 | 8 | PRINT |  |  | ~5 | !1
 | 9 | FREE |  |  |  | ~5
9 | 10 | JMP |  |  |  | ->5
 | 11 | SWITCH_FREE |  |  |  | $2
10 | 12 | RETURN |  |  |  | 1


THROW

PHP code

<?php
/*
 *
 * opcode number: 108
 */
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';
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$error, !1=$e

line | # | op | fetch | ext | return | operands
7 | 0 | ASSIGN |  |  |  | !0,'Always+throw+this+error'
8 | 1 | ZEND_FETCH_CLASS |  |  | :1 | 'Exception'
 | 2 | NEW |  |  | $2 | :1
 | 3 | SEND_VAR |  |  |  | !0
 | 4 | DO_FCALL_BY_NAME |  | 1 |  |
 | 5 | ZEND_THROW |  | 0 |  | $2
11 | 6 | ECHO |  |  |  | 'Never+executed'
13 | 7 | JMP |  |  |  | ->15
 | 8 | ZEND_FETCH_CLASS |  |  | :4 | 'Exception'
 | 9 | ZEND_CATCH |  | 15 |  | $4,!1
14 | 10 | ECHO |  |  |  | 'Caught+exception%3A+'
 | 11 | ZEND_INIT_METHOD_CALL |  |  |  | !1,'getMessage'
 | 12 | DO_FCALL_BY_NAME |  | 0 |  |
 | 13 | ECHO |  |  |  | $6
 | 14 | ECHO |  |  |  | '%0A'
18 | 15 | ECHO |  |  |  | 'Hello+World'
19 | 16 | RETURN |  |  |  | 1


TICKS

PHP code

<?php
/*
 *
 * opcode number: 105
 */
// A function that records the time when it is called
function profile()
{
   echo "profile function is called\n";
}

// 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 = 0; $x < 10; ++$x) {
         echo "hello world\n";
   }
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
7 | 0 | NOP |  |  |  |
13 | 1 | SEND_VAL |  |  |  | 'profile'
 | 2 | DO_FCALL |  | 1 |  | 'register_tick_function'
16 | 3 | DO_FCALL |  | 0 |  | 'profile'
20 | 4 | ASSIGN |  |  |  | !0,0
 | 5 | IS_SMALLER |  |  | ~3 | !0,10
 | 6 | JMPZNZ |  | 9 |  | ~3,->13
 | 7 | PRE_INC |  |  |  | !0
 | 8 | JMP |  |  |  | ->5
21 | 9 | ECHO |  |  |  | 'hello+world%0A'
 | 10 | TICKS |  |  |  | 2
22 | 11 | TICKS |  |  |  | 2
 | 12 | JMP |  |  |  | ->7
 | 13 | TICKS |  |  |  | 2
23 | 14 | TICKS |  |  |  | 2
24 | 15 | RETURN |  |  |  | 1

Function name: profile

Compiled variables: none

line | # | op | fetch | ext | return | operands
9 | 0 | ECHO |  |  |  | 'profile+function+is+called%0A'
10 | 1 | RETURN |  |  |  | null


UNSET_DIM

PHP code

<?php
/*
 * Unset the entry of array-value, which is specified by index, and store the original element value into "result".
 * opcode number: 75
 */
$a = array(1,2,3);
unset($a[0]);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | UNSET_DIM |  |  | $2 | !0,0
8 | 5 | RETURN |  |  |  | 1


UNSET_OBJ

PHP code

<?php
/*
 * Unset the property of the current object (this) and store the original value into "result".
 * opcode number: 76
 */
$obj = new A();
unset($obj->num);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | UNSET_OBJ |  |  | $4 | !0,'num'
8 | 5 | RETURN |  |  |  | 1


UNSET_VAR

PHP code

<?php
/*
 * Unset the variable and store the original value into "result".
 * opcode number: 74
 */
$x = 1;
$a='x';
unset($$a);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | ASSIGN |  |  |  | !1,'x'
8 | 2 | UNSET_VAR |  |  | $2 | !1
9 | 3 | RETURN |  |  |  | 1


  • « UNSET_VAR
  • VERIFY_ABSTRACT_CLASS »
  • PHP Manual
  • Opcode Descriptions and Examples
  • USER_OPCODE

USER_OPCODE

PHP code

<?php
/*
 *
 * opcode number: 150
 * No sample PHP yet */
?>


  • « USER_OPCODE
  • ZEND_DECLARE_LAMBDA_FUNCTION »
  • PHP Manual
  • Opcode Descriptions and Examples
  • VERIFY_ABSTRACT_CLASS

VERIFY_ABSTRACT_CLASS

PHP code

<?php
/*
 *
 * opcode number: 146
 * No sample PHP yet */
?>


  • « VERIFY_ABSTRACT_CLASS
  • ZEND_JMP_SET »
  • PHP Manual
  • Opcode Descriptions and Examples
  • ZEND_DECLARE_LAMBDA_FUNCTION

ZEND_DECLARE_LAMBDA_FUNCTION

PHP code

<?php
/*
 *
 * opcode number: 153
 * No sample PHP yet */
?>


  • « ZEND_DECLARE_LAMBDA_FUNCTION
  • Zend Engine 1 »
  • PHP Manual
  • Opcode Descriptions and Examples
  • ZEND_JMP_SET

ZEND_JMP_SET

PHP code

<?php
/*
 *
 * opcode number: 152
 * No sample PHP yet */
?>


Zend Engine 1

Содержание

  • Old introduction
  • Streams API for PHP Extension Authors
  • Zend API: Взламываем ядро PHP
  • TSRM API

Zend Engine 1 is the internal engine used by PHP for the entire version 4 release line. It is no longer considered active, but the old ZE1 documentation is preserved here exactly as it was.


Old introduction

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.


Streams API for PHP Extension Authors

Замечание:

The functions in this chapter are for use in the PHP source code and are not PHP functions. Information on userland stream functions can be found in the Stream Reference.

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!

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:

Пример #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.

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 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:

Пример #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();
}

Пример #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 open options

These constants affect the operation of stream factory functions.

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.


Zend API: Взламываем ядро PHP

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.

Внимание

This information is currently rather outdated, parts of it only cover early stages of the ZendEngine 1.0 API as it was used in early versions of PHP 4.

More recent information may be found in the various README files that come with the PHP source and the » Internals section on the Zend website.

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 below). 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.
The internal structure of PHP.

The following sections discuss where PHP can be extended and how it's done.

Extension Possibilities

As shown 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.

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://httpd.apache.org/) and, of course, with PHP (available at » https://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.

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/)

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 The default config.m4. is a bit more complex:

Пример #1 The default config.m4.

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.

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. A simple extension. shows the source.

Пример #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)
    ZEND_FE_END
};

/* 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 A simple extension. 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_FIRST_MODULE=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_FIRST_MODULE 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.)

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 A test file for first_module.so.. 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.

Пример #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 should output the following:

We sent '2' and got '2'

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.

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.

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 Zend's Parameters to Functions Called from PHP for descriptions).

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 Internal declaration of zend_function_entry..

Пример #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)
    ZEND_FE_END
};
You can see that the last entry in the list always has to be ZEND_FE_END. This marker has to be set for Zend to know when the end of the list of exported functions is reached.

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.

Macros for Defining Functions shows a list of all the macros that you can use to define functions.

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 Internal declaration of zend_module_entry..

Пример #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 Macros to Declare Startup and Shutdown Functions. 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.

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.

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 like:
"Warning: Wrong parameter count for firstmodule() in /home/www/htdocs/firstmod.php on line 5"

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 parameters, 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 PHP's implementation of variable arguments in fsockopen().. Don't worry if you don't know all the functions used in this source yet; we'll get to them shortly.

Пример #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 Argument Conversion Functions).

Note: All conversion functions expect a **zval as parameter.

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.

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 PHP/Zend zval type definition..

Пример #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 Zend zval Structure, Zend zvalue_value Structure and Zend Variable Type Constants.

Zend zval Structure
Entry | Description
value | Union containing this variable's contents. See Zend zvalue_value Structure for a description.
type | Contains this variable's type. For a list of available types, see Zend Variable Type Constants.
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.
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.
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 Testing for referenced parameter passing..

Пример #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);
Testing for referenced parameter passing

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.

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
);
Creating variables with different scopes. 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.

Пример #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();

}
Creating variables with different scopes

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 Creation of a long.).

Пример #10 Creation of a long.

zval *new_long;

MAKE_STD_ZVAL(new_long);

new_long-&gt;type = IS_LONG;
new_long-&gt;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-&gt;type = IS_DOUBLE;
new_double-&gt;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-&gt;type = IS_STRING;
new_string-&gt;value.str.len = strlen(string_contents);
new_string-&gt;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-&gt;type = IS_STRING;
new_string-&gt;value.str.len = 0;
new_string-&gt;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-&gt;type = IS_BOOL;
new_bool-&gt;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. Zend's API for Associative Arrays, Zend's API for Indexed Arrays, Part 1 and Zend's API for Indexed Arrays, Part 2 describe these functions. All functions return FAILURE on failure and SUCCESS on success.

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...
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...
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 Adding an element to an associative array.) and zend_hash_index_update() for indexed arrays (see Adding an element to an indexed array.):

Пример #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-&gt;value.ht, key, strlen(key) + 1, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

Пример #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-&gt;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 Zend's API for Object Creation to add members to your object.

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 uniquely 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 immediately 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 Macros for Global Variable Creation describes macros that do exactly this task. They don't need any zval allocation; you simply have to supply a variable name and value.

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 Macros for Creating Constants. 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.

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.

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.

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 Predefined Macros for Returning Values from a Function and Predefined Macros for Setting the Return Value of a Function.

Замечание:

The macros in Predefined Macros for Returning Values from a Function automatically return from your function, those in Predefined Macros for Setting the Return Value of a Function only set the return value; they don't return from your function.

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.
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.

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");
Zend's Predefined Error Messages. shows a list of possible values (see below). These values are also referred to in php.ini. Depending on which error type you choose, your messages will be logged.
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.
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). Source code and screenshot for output in phpinfo. shows a source example and its output. To print the table footer, use php_info_print_table_end().

Пример #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();
Output of phpinfo()

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 Printing execution information..

Пример #14 Printing execution information.

zend_printf("The name of the current function is %s&lt;br&gt;", get_active_function_name(TSRMLS_C));
zend_printf("The file currently executed is %s&lt;br&gt;", zend_get_executed_filename(TSRMLS_C));
zend_printf("The current line being executed is %i&lt;br&gt;", zend_get_executed_lineno(TSRMLS_C));
Printing execution information

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.

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.

Calling user functions. 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.

Пример #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\n", retval->type);

*return_value = *retval;
zval_copy_ctor(return_value);
zval_ptr_dtor(&retval);

<?php

dl("call_userland.so");

function test_function()
{
    echo "We are in the test function!\n";
    return 'hello';
}

$return_value = call_userland("test_function");

echo "Return value: '$return_value'";
?>

Результат выполнения данного примера:

We are in the test function!
We have 3 as type
Return value: 'hello'

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&lt;br&gt;", 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 Macros to Access Initialization Entries in PHP.

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();

}

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.

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 M4 Macros for config.m4.

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>.

API Macros

A set of macros was introduced into Zend's API that simplify access to zval containers (see API Macros for Accessing zval Containers).

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


  • « Zend API: Взламываем ядро PHP
  • ЧАВО »
  • PHP Manual
  • Zend Engine 1
  • TSRM API

TSRM API


ЧАВО: ЧАсто задаваемые Вопросы и Ответы на них

  • Общая информация
  • Списки рассылки
  • Получение PHP
  • Вопросы по базам данных — Вопросы по Базам данных
  • Установка
  • Проблемы сборки
  • Использование PHP
  • Хеширование паролей — Безопасное хеширование паролей
  • PHP и HTML
  • PHP и COM
  • Разные вопросы


Общая информация

Этот раздел содержит наиболее общие вопросы по PHP: что это такое и что он делает.

  1. Что такое PHP?
  2. Что означает PHP?
  3. Какая связь между версиями PHP?
  4. Могу ли я одновременно запускать несколько версий PHP?
  5. Я думаю, Я нашел ошибку! Кому я должен сказать?
Что такое PHP?

Из предисловия к руководству:

PHP - это скриптовый язык, который может быть встроен в HTML. Синтаксис языка в большинстве заимствован из C, Java и Perl c добавлением нескольких специфичных для PHP особенностей. Цель языка - позволить web-разработчикам легко создавать динамически генерируемые страницы.

Что означает PHP?

PHP означает PHP: Hypertext Preprocessor. Это название смущает многих людей, так как первое слово в акрониме также является акронимом. Такой тип акронимов называется рекурсивным. Любопытствующие могут посетить » бесплатный вычислительный онлайн-словарь или » статью Википедии по рекурсивным акронимам.

Какая связь между версиями PHP?

PHP/FI 2.0 - ранняя и более неподдерживаемая версия PHP. PHP 3 - улучшенная замена PHP/FI 2.0. PHP 7 - текущая версия, которая использует Zend engine 3, которая, кроме прочего, предлагает множество дополнительных возможностей для объектно-ориентированного программирования.

Могу ли я одновременно запускать несколько версий PHP?

Да. Смотрите файл INSTALL из дистрибутива исходников PHP.

Я думаю, Я нашел ошибку! Кому я должен сказать?

Вам надо обратиться к базе данных ошибок в PHP и убедиться, что ошибка еще не известна. Если вы не видите её в базе данных, заполните форму сообщения об ошибках. При занесении в базу данных, ошибка получает номер, по которому вы можете отслеживать её статус, поэтому важно использовать базу данных, а не просто послать сообщение в один из списков рассылки, так как это позволит вам позже вернуться и проверить состояние ошибки. База данных ошибок может быть найдена по адресу » https://bugs.php.net/.


Списки рассылки

Этот раздел содержит вопросы о том как связаться с PHP сообществом. Самый лучший способ - списки рассылки.

  1. Есть ли какие-либо списки рассылки по PHP?
  2. Существуют ли какие-либо другие сообщества?
  3. Могу ли я начать свой собственный список рассылки PHP?
  4. Помогите! Похоже, я не могу подписаться/отписаться?
  5. Существует ли где-нибудь архив списков рассылки?
  6. О чем я могу спрашивать в списке рассылки?
  7. Какую информацию я должен включить при отправке в список?
Есть ли какие-либо списки рассылки по PHP?

Конечно! Существует множество списков рассылки на различные темы. Полный перечень списков можно найти на нашей странице » списков рассылки.

Наиболее общий список рассылки - php-general. Чтобы подписаться на него, отправьте пустое письмо на адрес » php-general-subscribe@lists.php.net. Чтобы отписаться, отправьте пустое письмо на адрес » php-general-unsubscribe@lists.php.net.

Также вы можете подписаться/отписаться, используя веб-интерфейс на нашей странице » списков рассылки, а инструкции по отписке включены внизу каждого сообщения из рассылки.

Существуют ли какие-либо другие сообщества?

Бессчетное количество по всему миру. На нашей странице » поддержки для примера есть ссылки на некоторые ресурсы (и информация о том, как узнать больше).

Могу ли я начать свой собственный список рассылки PHP?

Конечно! На самом деле, мы не только (бесплатно) разрешаем это, мы это поощряем! Помогая и делясь своим знанием и опытом по PHP с другими, вы поощряете рост и разработку как глобального сообщества PHP, так и самого языка.

Помогите! Похоже, я не могу подписаться/отписаться?

Если у вас возникла проблема с подпиской или отпиской от списка рассылки, возможно это потому, что программное обеспечение списка рассылки не может определить ваш правильный почтовый адрес. Если ваш адрес был joeblow@example.com, и вы пытаетесь подписаться на php-general, то вы можете послать запрос на подписку по адресу php-general-subscribe-joeblow=example.com@lists.php.net, или запрос на отписку по адресу php-general-unsubscribe-joeblow=example.com@lists.php.net. Для других списков рассылки используйте аналогичные адреса.

Самая частая причина, по которой люди не могут отписаться от наших списков рассылки, это использование пересылки почты. Например, если ваш электронный адрес danbrown@example.com, но вы подписались на список рассылки с адреса php-lists@example.com, который пересылает ее вам на danbrown@example.com, то попытка отписать адрес danbrown@example.com не сработает, так как это адрес неизвестен нашей системе. Вместо этого вам нужно отписать тот адрес, на который приходит почта, в этом примере это php-lists@example.com.

Существует ли где-нибудь архив списков рассылки?

Да, список архивов можно найти на странице » списков рассылки. Вы также можете найти дюжины сайтов, которые архивируют и/или отдают содержание наших списков рассылок с помощью вашего любимого поисковика, задав запрос "архивы списков рассылок по php" (php mailing list archives).

Сообщения из списков рассылки также сохраняются как статьи новостей. Сервер новостей доступен по адресу » news://news.php.net/, новости с которого можно читать каким-нибудь новостным клиентом. Также есть экспериментальный веб-интерфейс для сервера новостей, доступный по адресу » http://news.php.net/.

О чем я могу спрашивать в списке рассылки?

С растущей день ото дня популярностью PHP, нагрузка на список рассылки php-general увеличилась и на сегодня составляет примерно от 75 до 200 и более сообщений в день. Поэтому, в интересах всех, используйте список рассылки только в крайнем случае, когда поиски во всех других возможных местах завершились неудачно.

Прежде чем отправить сообщение в список, пожалуйста, просмотрите этот FAQ и это руководство, может в них вам удастся найти решение вашей проблемы. Если там ничего не удалось найти, просмотрите архивы списка (см. выше). Если у вас проблема с установкой или настройкой PHP, пожалуйста, прочтите всю сопровождающую документацию и файлы README. Если после всего этого вам не удалось найти ответ, то ваш вопрос в списке рассылки более чем желателен.

Для получения наилучших ответов, (и чтобы не расстраивать ваших собратьев-программистов), пожалуйста, проверьте, что вы отсылаете свой вопрос в соответствующий список рассылки. Например, если у вас проблема с установкой PHP, вы должны отправить свой вопрос в список рассылки php-install. Предостережение: некоторые списки имеют похожие имена и совершенно различные назначения; вопрос по использованию PHP-скриптов в Windows должен быть отправлен в пользовательский список рассылки - Windows PHP users, а не список PHP разработчиков в Windows - Windows Internals list.

Хорошая идея, перед тем как задавать вопросы, прочитать статью » Как умно задавать вопросы.

Какую информацию я должен включить при отправке в список?

Сообщения типа "Не могу запустить PHP! Помогите мне! В чем дело?" совершенно бесполезны. Если у вас проблема с запуском PHP, вы должны указать операционную систему, версию PHP, как вы его получили (прекомпилированный, Git, RPM и т.п.), что уже сделали, на чем остановились, и, если есть, точное сообщение об ошибке.

Это также относится к любой другой проблеме. Вам необходимо указать, что вы уже сделали, на чем застопорились, что пытаетесь делать и, если есть, любые сообщения об ошибках. Если проблема с вашим исходным кодом, то надо включить часть кода, которая не работает, указав проблемную строку соответственно помещенным комментарием. Но не пытайтесь отправить больше, чем необходимо! Иначе ваше сообщение будет тяжело читать и большинство людей его просто пропустит. Если вы затрудняетесь решить какой объем информации достаточен, отправьте столько, сколько необходимо по вашей текущей проблеме, и приготовьтесь выслать больше информации по запросу.

Другая важная вещь, которую стоит помнить, это краткое изложение вашей проблемы в строке темы сообщения. Заголовки типа "ПОМОГИТЕ МНЕЕЕ!!!" или "В чем здесь проблема?" будут проигнорированы большинством читателей.

И на последок, для всеобщей пользы и особенно для вас, весьма рекомендуется прочитать статью » Как умно задавать вопросы.


Получение PHP

Этот раздел содержит информацию о том, где получить PHP и вопросы, касающиеся OC.

  1. Где я могу взять PHP?
  2. Доступны ли прекомпилированная бинарная версия?
  3. Где я могу достать библиотеки, необходимые для компиляции некоторых дополнительных расширений PHP?
  4. Как подключить эти библиотеки?
  5. Я cкачал последнюю версию исходных кодов PHP из Git-репозитория на мою машину Windows, как мне их скомпилировать?
  6. Где найти файл совместимости браузеров ?
  7. Что означает потокобезопасность при загрузке PHP?
Где я могу взять PHP?

Вы можете скачать PHP с любого сайта из сети сайтов PHP. Сайты сети можно найти на » https://www.php.net/. Вы также можете воспользоваться анонимным Git для получения самой последней версии исходников. За подробностями обращайтесь к » https://www.php.net/git.php.

Доступны ли прекомпилированная бинарная версия?

Мы распространяем прекомпилированные бинарники только для Windows, так как мы не в состоянии компилировать PHP со всеми возможными комбинациями расширений, даже для самых основных платформ Linux/Unix. Также заметьте, что на сегодня многие дистрибутивы Linux поставляются с PHP. Бинарники для Windows можно скачать с нашей страницы » Downloads, для бинарников под Linux, пожалуйста, посетите сайт вашего дистрибутива.

Где я могу достать библиотеки, необходимые для компиляции некоторых дополнительных расширений PHP?

Замечание: Звездочкой (*) помечены библиотеки, которые исходя из нашего опыта являются потоко-небезопасными; эти библиотеки не рекомендуется использовать в многопоточной среде.

  • » LDAP (Unix).
  • » LDAP (Unix/Win) : Mozilla Directory (LDAP) SDK
  • » бесплатный LDAP сервер.
  • » Berkeley DB2 (Unix/Win) : http://www.sleepycat.com/.
  • » SNMP* (Unix): .
  • » GD (Unix/Win).
  • » mSQL* (Unix).
  • » PostgreSQL (Unix).
  • » IMAP* (Win/Unix).
  • » Sybase-CT* (Linux, libc5) : Available locally.
  • » FreeType (libttf):.
  • » ZLib (Unix/Win32).
  • » expat XML parser (Unix/Win32).
  • » PDFLib.
  • » mcrypt.
  • » mhash.
  • » t1lib.
  • » dmalloc.
  • » aspell.
  • » readline.

Как подключить эти библиотеки?

Вам необходимо следовать инструкциям, сопровождающим библиотеку. При запуске скрипта 'configure', некоторые библиотеки (такие как библиотека GD) находятся автоматически, другие должны быть включены с помощью опции '--with-EXTENSION' в 'configure'. Запустите 'configure --help' для получения списка всех опций.

Я cкачал последнюю версию исходных кодов PHP из Git-репозитория на мою машину Windows, как мне их скомпилировать?

Изучите раздел руководства, содержащий актуальное » пошаговое руководство по сборке

Где найти файл совместимости браузеров ?

Файл browscap.ini можно скачать с » http://browscap.org/.

Что означает потокобезопасность при загрузке PHP?

Потокобезопасность означает, что данный бинарный файл может работать с многопоточным веб-сервером, например таким, как Apache 2 под Windows. Потокобезопасность обеспечивается хранением локальных копий в каждом потоке, так что данные не вступят в противоречие с другим потоком.

Так что же выбрать? Если вы хотите использовать PHP в качестве бинарного файла CGI, то вам не нужна потокобезопасность, так как бинарный файл будет запускаться при каждом запросе. Для многопоточных веб-серверов, таких как IIS5 и IIS6, вам понадобится поточная версия PHP.


Вопросы по Базам данных

Этот раздел содержит общие вопросы о связи между PHP и базами данных. Да, сегодня практически любая база данных может быть доступна из PHP.

  1. Я слышал, что можно получить доступ к Microsoft SQL серверу из PHP. Как?
  2. Могу ли я получить доступ к базам данных Microsoft Access?
  3. Почему MySQL расширение (ext/mysql), которое я использовал более 10 лет, теперь не рекомендуется использовать? Что я должен использовать вместо него? Как мне обновить свои программы?
  4. Почему я получаю ошибки типа "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>?
Я слышал, что можно получить доступ к Microsoft SQL серверу из PHP. Как?

На Unix вы можете использовать PDO_ODBC или Унифицированное ODBC API.

На Windows вы можете использовать PDO_SQLSRV или SQLSRV.

Также смотрите ответ на следующий вопрос.

Могу ли я получить доступ к базам данных Microsoft Access?

Да. Если все полностью выполняется под Windows 9x/Me или NT/2000, то у вас уже есть все необходимые средства, так как для баз данных Microsoft Access вы можете использовать ODBC и драйверы ODBC от Microsoft.

Если вы хотите связать PHP, выполняющийся на Unix, и MS Access на Windows, то вам будут нужны драйверы ODBC для Unix. Такие ODBC драйверы для Unix есть у » OpenLink Software.

Другая возможность - хранить данные на SQL сервере, который имеет ODBC драйверы для Windows, и затем обращаться к этой базе данных из Microsoft Access (используя ODBC) и из PHP (используя встроенные драйверы) или использовать промежуточный формат, понятный и для Access, и для PHP, например, простые файлы или базы данных dBase. По этому поводу Тим Хэйз (Tim Hayes) из OpenLink software пишет:

Использование промежуточной базы данных - не очень хорошая идея, когда есть возможность работать с базой данных напрямую из PHP через ODBC, например с драйверами от OpenLink. Если вам все-таки надо использовать промежуточный формат, OpenLink выпустил Virtuoso (механизм виртуальной базы данных) для NT, Linux и других платформ Unix. Пожалуйста, посетите наш » веб-сайт для бесплатной загрузки.

Другой проверенный вариант - использовать MySQL с её MyODBC драйверами на Windows и делать синхронизацию баз данных. Стив Лоренс (Steve Lawrence) пишет:

  • Установите MySQL согласно поставляемым с ней инструкциям. Последняя версия доступна с » http://www.mysql.com/. Особой конфигурации не требуется, за исключением того, что при настройке баз данных и создании пользователя, в поле хоста вы должны поместить % или имя Windows машины, на которую вы хотите получить доступ из MySQL. Запишите имя вашего сервера, имя пользователя и пароль.
  • Скачайте драйвер MyODBC для Windows с сайта MySQL. Установите его на вашей машине 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" (всегда запрашивать новое местонахождение).

Почему MySQL расширение (ext/mysql), которое я использовал более 10 лет, теперь не рекомендуется использовать? Что я должен использовать вместо него? Как мне обновить свои программы?

Есть три расширения для работы с MySQL, как описано в разделе Выбор MySQL API Старое API не должно использоваться, оно является устаревшим с версии PHP 5.5.0 и перемещено в PECL с версии PHP 7.0.0. Настоятельно рекомендуется писать весь новый код с использованием либо mysqli, либо PDO_MySQL.

Скрипты для перехода со старого API пока недоступны, но mysqli API содержит как процедурный так и объектный API, схожие со старым процедурным ext/mysql API.

Нельзя совмещать различные расширения. Поэтому, например передача mysqli соединения в PDO_MySQL или ext/mysql не будет работать.

Почему я получаю ошибки типа "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("Плохой запрос: " . mysql_error());
?>


Установка

Этот раздел содержит общие вопросы о том, как производится установка PHP. Дистрибутивы PHP доступны почти для всех операционных систем и веб-серверов.

Для установки PHP, следуйте инструкциям: Установка и настройка.

  1. Почему лучше не пользоваться Apache2 с многопоточным "MPM" (event, worker) в промышленной эксплуатации?
  2. ОС "Unix"/"Windows": Где искать файл php.ini?
  3. Unix: Я установил PHP, но при каждом открытии какого-либо документа вижу 'Document Contains No Data', что это значит?
  4. Unix: Я установил PHP используя RPMS, но Apache не обрабатывает PHP-страницы, в чём дело?
  5. Unix: Я пропатчил Apache расширением FrontPage, и теперь PHP не работает. Т.е. PHP несовместим с расширениями Apache FrontPage?
  6. Unix/Windows: Я установил PHP, но при попытке открыть PHP-файл браузером вижу просто пустой экран.
  7. Unix/Windows: Я установил PHP, но когда пытаюсь посмотреть созданную PHP-страницу через браузер, то получаю ошибку 500.
  8. Некоторые операционные системы: Я установил PHP без каких-либо ошибок, но когда пытаюсь запустить Apache, мне выводится ошибка: [mybox:user /src/php5] root# apachectl configtest apachectl: /usr/local/apache/bin/httpd Undefined symbols: _compress _uncompress
  9. Windows: Я установил PHP, но когда пытаюсь открыть страницу скрипта через браузер, получаю ошибку: cgi error: The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:
  10. Windows: Я все сделал по инструкции, но PHP и IIS не хотят работать вместе!
  11. Когда я запускаю PHP как CGI на IIS, PWS, OmniHTTPD или Xitami, я получаю такую ошибку: Security Alert! PHP CGI cannot be accessed directly..
  12. Как я могу понять, что мой php.ini найден и используется? Такое впечатление, что вносимые мною изменения игнорируются.
  13. Как я могу добавить директорию с PHP в PATH в Windows?
  14. Как я могу сделать файл php.ini доступным для PHP в windows?
  15. Можно ли использовать согласование контента Apache (опция MultiViews) с PHP?
  16. PHP ограничен работой только с методами GET и POST?
Почему лучше не пользоваться Apache2 с многопоточным "MPM" (event, worker) в промышленной эксплуатации?

PHP подобен связующему звену. Это связующее звено для создания хороших веб-приложений путём объединения разрозненных сторонних библиотек в единое целое, через использование интуитивно понятного и простого для изучения языкового интерфейса. Гибкость и сила PHP основана на стабильности и устойчивости, лежащей в основе платформы. Чтобы всё работало, нужна рабочая операционная система, рабочий веб-сервер и рабочие сторонние библиотеки. Но когда хоть что-либо из них перестаёт работать - PHP нуждается в способах быстрого определения причины неполадки и её устранения. И когда вы усложняете базовый фреймворк тем, что не изолируете исполняемые потоки и сегменты памяти, и не предоставляете потокам отдельных изолированных "песочниц" - ослабляется вся PHP-система.

Если вы желаете использовать многопоточный "MPM" - ознакомьтесь с конфигурацией "FastCGI", согласно которой PHP работает в собственном пространстве памяти.

ОС "Unix"/"Windows": Где искать файл php.ini?

По умолчанию в Unix он должен быть в /usr/local/lib, который соответствует <установочный-путь>/lib. Многие захотят изменить этот путь в момент компиляции, используя опцию --with-config-file-path Например, можно написать так:

--with-config-file-path=/etc
И затем скопировать php.ini-development из дистрибутива в /etc/php.ini и внести в него все необходимые изменения.

--with-config-file-scan-dir=PATH

В ОС "Windows", по умолчанию, путь к файлу php.ini это путь к директории "Windows". Если вы пользуетесь веб-сервером "Apache", php.ini находится по пути: ?\program files\apache group\apache\. Таким образом, на одном компьютере можно пользоваться несколькими файлами php.ini, соответственно версиям "Apache".

См. также: файл настроек.

Unix: Я установил PHP, но при каждом открытии какого-либо документа вижу 'Document Contains No Data', что это значит?

Это значит, что, возможно, PHP столкнулся с какой-то проблемой и падает в core-dump. Просмотрите логи ошибок сервера, чтобы проверить это, а затем попытайтесь воспроизвести цепочку шагов, приведших к ошибке; например, создав отдельную тестовую программу. И если вы умеете пользоваться 'gdb', то это поможет вам получить стек вызовов функций (backtrace) для включения его в отчет об ошибке, чтобы облегчить выявление причин проблемы разработчикам. Если вы пользуетесь PHP как модулем для Apache, вам может оказаться полезным следующее:

  • Остановите httpd-процессы

  • gdb httpd

  • Вновь остановите httpd-процессы

  • > run -X -f путь_к_httpd.conf

  • Затем скопируйте URL,вызвавший проблему в браузере

  • > run -X -f путь_к_httpd.conf

  • Если будет происходить core dump, gdb сообщит вам об этом

  • Введите bt

  • Включите backtrace в ваш отчет об ошибке. И отправьте по адресу: » https://bugs.php.net/

Если ваш скрипт использует регулярные выражения (preg_match() и подобные), проверьте, с одинаковыми ли пакетами обработки RegEx скомпилированы PHP и Apache? В случае PHP и Apache 1.3.x это происходит автоматически.

Unix: Я установил PHP используя RPMS, но Apache не обрабатывает PHP-страницы, в чём дело?

Если что вы установили и Apache, и PHP из RPM-пакетов, вам понадобится раскомментировать или добавить некоторые (или, быть может, все) строки из числа следующих, в вашем файле httpd.conf:

# Extra Modules
AddModule mod_php.c
AddModule mod_perl.c

# Extra Modules
LoadModule php_module         modules/mod_php.so
LoadModule php5_module        modules/libphp5.so
LoadModule perl_module        modules/libperl.so
И добавьте:
AddType application/x-httpd-php .php
... в область глобальных свойств, или в свойства того VirtualDomain, для которого вы хотите включить поддержку PHP.

Unix: Я пропатчил Apache расширением FrontPage, и теперь PHP не работает. Т.е. PHP несовместим с расширениями Apache FrontPage?

Нет, совместим, но патч FrontPage влияет на структуры Apache, нужные для PHP. Перекомпиляция PHP (команда 'make clean ; make') после установки патча может решить проблему.

Unix/Windows: Я установил PHP, но при попытке открыть PHP-файл браузером вижу просто пустой экран.

Выберите в браузере опцию "посмотреть код" и вы, возможно, увидите, ваш PHP-код. Это значит, что Apache не передал ваш скрипт интерпретатору PHP. Значит что-то неправильно с конфигурацией сервера. В этом случае перепроверьте конфигурацию веб-сервера в соответствии с инструкциями по установке PHP.

Unix/Windows: Я установил PHP, но когда пытаюсь посмотреть созданную PHP-страницу через браузер, то получаю ошибку 500.

Что-то пошло не так, когда сервер попытался запустить PHP. Чтобы увидеть возникающую исходную ошибку, в коммандной строке перейдите в директорию, содержащую исполняемый файл PHP (php.exe в Windows) и запустите php -i. Если существуют какие-либо проблемы с запуском PHP, вам выведется соответствующая ошибка, которая подскажет вам, что надо исправить. Если вы увидете множество кода HTML (вывод функции phpinfo()), значит PHP работает нормально, и ваша проблема связана с настройками веб-сервера.

Некоторые операционные системы: Я установил PHP без каких-либо ошибок, но когда пытаюсь запустить Apache, мне выводится ошибка:
[mybox:user /src/php5] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress

Это означает, что проблема не в PHP, а в клиентских библиотеках MySQL. Некоторые из них требуют сборки PHP с опцией --with-zlib . Этот нюанс описан в MySQL FAQ.

Windows: Я установил 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 нормально работает в командной строке, попробуйте обратиться к скрипту через браузер снова. Если опять возникнет ошибка - это может означать одну из следующих проблем:

  • Права на файл вашего скрипта, php.exe, php5ts.dll, php.ini или какого-либо модуля PHP не позволяют анонимному пользователю интернета ISUR_<machinename> к ним обратиться.
  • Файл скрипта отсутствует (или, возможно, он находится не там, где вы думаете, относительно корневого каталога веб-сервера). Обратите внимание, что в IIS, вы можете отловить эту ошибку, отметив опцию 'check file exists' в настройках "script mappings" в Internet Services Manager. Если файл отсутствует, сервер вместо этого вернет ошибку 404. При этом, также есть дополнительное преимущество. IIS будет производить проверки аутентификации для файла скрипта, необходимые вам, основываясь на разрешениях NTLanMan.
Windows: Я все сделал по инструкции, но PHP и IIS не хотят работать вместе!

Убедитесь, что все пользователи, которым может понадобиться запустить ваш PHP-скрипт, имеют право запускать php.exe! IIS использует анонимного пользователя, создаваемого во время инсталляции. Этот пользователь должен иметь права на запуск php.exe. Так же, каждый авторизованный пользователь должен иметь права на запуск php.exe. Для IIS4 вы сказать ему, что PHP - это интерпритатор скриптов. Также прочтите этот FAQ.

Когда я запускаю PHP как CGI на IIS, PWS, OmniHTTPD или Xitami, я получаю такую ошибку: Security Alert! PHP CGI cannot be accessed directly..

Вы должны установить опцию cgi.force_redirect равную 0. По умолчанию она равна 1. Убедитесь, что она не закомментирована (с помощью ;). Как и все опции PHP, она настраивается в php.ini

Так как она по умолчанию равна 1, критически важно убедиться, что используется именно тот php.ini, который нужен. Читайте этот FAQ для подробностей.

Как я могу понять, что мой php.ini найден и используется? Такое впечатление, что вносимые мною изменения игнорируются.

Для проверки, какой именно php.ini используется, запустите функцию phpinfo(). Где-то вверху будет список с названием Configuration File (php.ini). Из него вы сможете понять, какой именно php.ini используется. Если указана только директория в PATH, а файл конфигурации не прочитан, то просто скопируйте его в эту директорию. Если php.ini включен PATH - это значит, что он прочитан.

Если php.ini читается и вы запускаете PHP как модуль, то, после внесения изменений в php.ini, необходимо перезагрузить веб-сервер.

Также смотрите описание php_ini_loaded_file().

Как я могу добавить директорию с PHP в PATH в Windows?

В Windows 7, XP, Vista, 2008, 2012 и выше:

  • Старт > Панель Управления > Система

  • Перейдите на вкладку 'Дополнительно'

  • Нажмите кнопку 'Переменные Окружения'

  • Посмотрите раздел 'Системные Переменные'

  • Найдите строку, содержащую переменную PATH

  • Совершите на ней двойной щелчок мышью

  • Допишите в конец строки путь к PHP, не забыв добавить перед ним ';' (например ;C:\php)

  • Нажмите OK

В Windows 98/Me вам нужно отредактировать файл autoexec.bat:

  • Откройте блокнот

  • Откройте в блокноте файл C:\autoexec.bat

  • Найдите строку PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;..... и добавьте в конце ;C:\php

  • Сохраните изменения и перезагрузите компьютер.

Замечание: Не забудьте перезагрузиться после описанных выше действий и, после перезагрузки, проверить, что переменная PATH содержит нужный путь.

В некоторых устаревших руководствах PHP предлагается поместить исполняемые файлы в системный каталог Windows потому, что (C:\Windows, C:\WINNT, и т.д..) по умолчанию заданы в переменной окружения PATH. Но на данный момент это не рекомендуется, поскольку может вызвать разнообразные проблемы.

Как я могу сделать файл php.ini доступным для PHP в windows?

Есть несколько путей сделать это. Если вы используете Apache, прочитайте следующие инструкции (Apache 1, Apache 2), также вы можете установить системную переменную PHPRC:

в Windows:

  • Старт > Панель Управления > Система

  • Перейдите на вкладку 'Дополнительно'

  • Нажмите кнопку 'Переменные Окружения'

  • Посмотрите раздел 'Системные Переменные'

  • Нажмите кнопку 'Добавить' и введите 'PHPRC' как имя переменной и директорию с php.ini в качестве ее значения (например C:\php)

  • Нажмите ОК и перезагрузите компьютер

В Windows 98/Me вам нужно отредактировать файл autoexec.bat:

  • Откройте блокнот

  • Откройте в блокноте файл C:\autoexec.bat

  • Добавьте новую строку в конце файла: set PHPRC=C:\php (замените C:\php на директорию, где лежит php.ini). Обратите внимание, что путь не должен содержать пробелов. К примеру, если файл лежит в C:\Program Files\PHP, вы должны указать короткое имя C:\PROGRA~1\PHP.

  • Сохраните файл и перезагрузите компьютер

Можно ли использовать согласование контента Apache (опция MultiViews) с PHP?

Если ссылки на файлы PHP содержат расширения, то все будет работать отлично. Это FAQ применимо только для случаев, когда ссылки не содержат расширения и вы хотите использовать согласование контента для файлов PHP из URL. В этом случае замените строку AddType application/x-httpd-php .php на:

AddHandler php5-script php
AddType text/html php
Это решение не сработает с Apache 1, так как модуль PHP не отлавливает php-script.

PHP ограничен работой только с методами GET и POST?

Нет, возможно работать с любыми запросами, например CONNECT. Правильный статус ответа должен будет посылаться функцией header(). Если вам надо, чтобы PHP работать только с методами GET и POST, необходимо сконфигурировать Apache следующим образом:

<LimitExcept GET POST>
Deny from all
</LimitExcept>


Проблемы сборки

В этом разделе собраны наиболее общие ошибки, возникающие на этапе сборки.

  1. Я получил последнюю версию PHP, используя анонимный доступ к Git, но в нём нет конфигурационного скрипта!
  2. У меня возникают проблемы при конфигурировании PHP для работы с Apache. Он говорит, что не может найти httpd.h, хотя файл находится точно там, где я сказал!
  3. Во время конфигурации PHP (./configure) вы наталкиваетесь на ошибку, схожую со следующей: checking lex output file root... ./configure: lex: command not found configure: error: cannot find output from lex; giving up
  4. Когда я пытаюсь запустить Apache, я получаю следующее сообщение: fatal: relocation error: file /path/to/libphp4.so: symbol ap_block_alarms: referenced symbol not found
  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 я очень быстро получаю ошибки и множество всяких RUSAGE_.
  15. При компиляции PHP с MySQL, configure выполняется нормально, но во время make я получаю ошибку типа следующей: ext/mysql/libmysqlclient/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysqlclient/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp', в чём дело?
  16. Я хочу обновить мой PHP. Где я могу найти строку ./configure, которая была использована для моей текущей PHP установки?
  17. При сборке PHP с библиотекой GD, либо выдаются странные ошибки компиляции, либо ошибки сегментации (segfaults) при выполнении.
  18. При компиляции PHP я, кажется, получаю случайные ошибки, например она зависает. Я использую Solaris, если это имеет значение.
Я получил последнюю версию PHP, используя анонимный доступ к Git, но в нём нет конфигурационного скрипта!

Вам нужен установленный пакет GNU autoconf для того, чтобы сгенерировать конфигурационный скрипт из configure.in. После получения исходников с Git сервера просто запустите ./buildconf в директории верхнего уровня. (Также, если вы запускаете configure без опции --enable-maintainer-mode, то конфигурационный скрипт не будет перестроен автоматически при изменении файла configure.in, поэтому вам необходимо делать это вручную, когда вы заметите, что configure.in изменился. Один из симптомов - появление таких вещей как @VARIABLE@ в вашем Makefile после выполнения configure или config.status.)

У меня возникают проблемы при конфигурировании PHP для работы с Apache. Он говорит, что не может найти httpd.h, хотя файл находится точно там, где я сказал!

Для configure/setup скрипта вам необходимо указать директорию верхнего уровня, в которой находятся исходники Apache. Это означает, что вам надо задать --with-apache=/path/to/apache , а не --with-apache=/path/to/apache/src .

Во время конфигурации 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.

Когда я пытаюсь запустить Apache, я получаю следующее сообщение:

fatal: relocation error: file /path/to/libphp4.so:
symbol ap_block_alarms: referenced symbol not found

Эта ошибка обычно появляется, если ядро Apache было скомпилировано как разделяемая библиотека DSO (Dynamic Shared Object). Попробуйте переконфигурировать Apache, используя, по крайней мере, следующие флаги:

--enable-shared=max --enable-rule=SHARED_CORE

Для более подробной информации читайте файл INSTALL в директории верхнего уровня или » страницу руководства Apache по DSO.

Когда я запускаю 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

При компиляции файла language-parser.tab.c мне выдаются ошибки, говорящие yytname undeclared.

Вам необходимо обновить вашу версию Bison. Последнюю версию можно найти на » http://www.gnu.org/software/bison/bison.html.

Когда я запускаю make, похоже, он выполняется нормально, но на конечной линковке жалуется, что не может найти некоторые файлы.

Некоторые старые версии make ошибочно не помещают скомпилированные файлы в поддиректорию functions в той же директории. Попробуйте выполнить cp *.o functions и затем перезапустить make. Если это помогло, то вам действительно надо установить свежую версию GNU make.

При компоновке PHP, он жалуется на некоторые неопределённые ссылки.

Посмотрите на строку для компоновки и убедитесь, что все нужные библиотеки добавлены в конце. Часто забывают '-ldl' и библиотеки, необходимые для поддержки включенных вручную баз данных.

Некоторые люди также сообщают, что при компоновке с Apache им пришлось добавить '-ldl' сразу после libphp4.a.

Я не могу понять как собрать PHP c Apache 1.3.

На самом деле это очень легко. Аккуратно выполните следующие шаги:

  • Скачайте последний дистрибутив Apache 1.3 с » http://httpd.apache.org/download.cgi.
  • Разархивируйте (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.

Я следовал всем шагам по установке модульной версии для Apache на Unix, но мои PHP скрипты выводятся в браузере или я получаю запрос сохранить файл.

Это означает, что по какой-то причине модуль PHP не вызывается. Перед тем как обращаться за помощью, проверьте три вещи:

  • Убедитесь, что запускаемый вами бинарник httpd действительно новый, только что построенный httpd. Для этого попробуйте запустить: /path/to/binary/httpd -l Если вы не видите mod_php4.c в списке, то вы запускаете не тот бинарник. Найдите и установите правильный бинарник.
  • Убедитесь, что вы добавили правильный Mime Type в один из ваших Apache .conf файлов. Это должно быть: AddType application/x-httpd-php .php Также убедитесь, что эта строка AddType не попала внутрь <Virtualhost> или <Directory> блока, так как это не даст ей работать с местонахождением вашего тестового скрипта.
  • Наконец, между Apache 1.2 и Apache 1.3 расположение конфигурационных файлов Apache по умолчанию изменилось. Вам надо проверить, что действительно читается тот конфигурационный файл, в который вы добавили строку AddType. Вы можете внести очевидную синтаксическую ошибку в ваш httpd.conf файл или какое-либо другое заметное изменение, которое покажет вам, что читается правильный файл.

В документации рекомендуется использовать: --activate-module=src/modules/php4/libphp4.a, но такой файл не существует, поэтому я заменил это на --activate-module=src/modules/php4/libmodphp4.a и оно не работает!? Что происходит?

Заметьте, что файл libphp4.a не должен существовать. Он будет создан в процессе!

Когда я пытаюсь собрать Apache c PHP в виде статического модуля, используя --activate-module=src/modules/php4/libphp4.a он говорит, что мой компилятор не ANSI-совместимый.

Сообщение об ошибке вводит в заблуждение; это исправлено в более свежих версиях Apache.

Когда я пытаюсь собрать 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.

Во время выполнения make я очень быстро получаю ошибки и множество всяких 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 файлы испорчены.

При компиляции PHP с MySQL, configure выполняется нормально, но во время make я получаю ошибку типа следующей: ext/mysql/libmysqlclient/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysqlclient/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp', в чём дело?

Во-первых, важно понимать, что это Warning (предупреждение), а не фатальная ошибка. Так как это последнее, что выводится во время make, оно может выглядеть как фатальная ошибка, но это не так. Конечно, если ваш компилятор умирает на предупреждениях, (Warnings), то тогда да. Также имейте ввиду, что поддержка MySQL включена по умолчанию.

Замечание:

Начиная с PHP 4.3.2 вы также будете видеть следующий текст после того как сборка (make) завершится:

Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).
(Сборка завершена, можно безопасно игнорировать
предупреждения о tempnam и tmpnam.)

Я хочу обновить мой PHP. Где я могу найти строку ./configure, которая была использована для моей текущей PHP установки?

Либо смотрите файл config.nice в дереве исходников вашей текущей PHP установки, либо, если это недоступно, просто выполните скрипт:

<?php phpinfo(); ?>
В начале вывода будет находиться строка ./configure, которая была использована для сборки текущего PHP.

При сборке PHP с библиотекой GD, либо выдаются странные ошибки компиляции, либо ошибки сегментации (segfaults) при выполнении.

Убедитесь, что ваша библиотека GD и PHP компонуются с одними и теми же зависимыми библиотеками (например, libpng).

При компиляции 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 скриптов.

  1. Я не могу запомнить порядок аргументов PHP-функций, они что, случайны?
  2. Я хочу написать общий PHP скрипт, который может обрабатывать данные, приходящие из любой формы. Как узнать какие переменные метода POST доступны?
  3. Мне надо преобразовать все одиночные кавычки (') в обратный слеш с последующей одиночной кавычкой (\'). Как я могу сделать это с помощью регулярного выражения? Я также хотел бы преобразовать " в \" и \ в \\.
  4. Все мои " превратились в \", а ' в \', как избавиться от всех этих ненужных обратных слешей? Как и почему они появились?
  5. Как директива PHP register_globals касается меня?
  6.       Когда я делаю следующее, вывод распечатывается не в том порядке:

<?php
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
?>

     Что происходит?
  7. Эй, что произошло с моими строками? <pre> <?php echo "Это должно быть на первой строке."; ?> <?php echo "А это должно быть на следующей строке."; ?> </pre>
  8. Я получаю сообщение 'Warning: Cannot send session cookie - headers already sent...' или 'Cannot add header information - headers already sent...'.
  9. Мне необходим прямой доступ к информации в заголовке запроса. Как я могу это сделать?
  10. Когда я пытаюсь использовать аутентификацию с IIS, я получаю 'No Input file specified'.
  11. Windows: У меня нет доступа к файлам, разделяемых с другим компьютером, по IIS.
  12. Как я должен совмещать XML и PHP? Он жалуется на мои <?xml тэги!
  13. Где я могу найти полный список переменных, доступных мне в PHP?
  14. Как я могу генерировать PDF файлы без использования платных или коммерческих библиотек, как PDFLib? Я бы хотел что-нибудь бесплатное и не требующее внешних библиотек PDF.
  15. Я пытаюсь получить доступ к одной из стандартных CGI переменных (таких как $DOCUMENT_ROOT или $HTTP_REFERER) в определенной пользователем функции и, похоже, она не может быть найдена. В чем дело?
  16. Несколько PHP директив могут принимать сокращения для байтовых значений в отличие от только integer байтовых значений. Каковы все доступные сокращения?
  17. Windows: Я постоянно получаю таймауты при соединении с localhost, хотя с "127.0.0.1" все работает нормально?
Я не могу запомнить порядок аргументов PHP-функций, они что, случайны?

PHP - это клей, который скрепляет вместе сотни различных внешних библиотек, поэтому иногда это кажется довольно запутанным. Однако, общее правило таково:

Параметры функций работы с массивами упорядочены в виде "иголка (needle), сено (haystack)", тогда как порядок в строковых функциях обратный, то есть аналогичен "сено, иголка".

Я хочу написать общий 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 "В POST не было пустых значений, вот что там было:\n";
    var_dump($post);
} else {
    print "Пришло " . count($empty) . " пустых значений\n";
    print "Всего отправлено:\n"; var_dump($post);
    print "Пустых:\n"; var_dump($empty);
    exit;
}
?>

Мне надо преобразовать все одиночные кавычки (') в обратный слеш с последующей одиночной кавычкой (\'). Как я могу сделать это с помощью регулярного выражения? Я также хотел бы преобразовать " в \" и \ в \\.

Подразумевая, что вы хотите использовать результат преобразования в работе с базой данных, используйте соответствующий механизм экранирования, идущий с используемой вами базой данных. Например, используйте mysql_real_escape_string() с MySQL и pg_escape_string() с PostgreSQL. Есть также более общие функции addslashes() и stripslashes(), они часто встречаются в старом PHP-коде.

Замечание: Замечание о директиве: magic_quotes_gpc

Директива PHP magic_quotes_gpc имеет значение по умолчанию on (включена). По сути это применяет функцию addslashes() ко всем GET-, POST- и COOKIE-данным. Чтобы удалить добавленные слеши, вы можете использовать stripslashes().

Все мои " превратились в \", а ' в \', как избавиться от всех этих ненужных обратных слешей? Как и почему они появились?

Наиболее частая причина магического появления обратных слешей - это включенная PHP-директива magic_quotes_gpc. Этот функционал PHP уже устарел и на него нельзя полагаться, поэтому эту директиву рекомендуется отключить. Кроме того, для удаления обратных слешей из строк можно использовать функцию stripslashes().

Замечание: Замечание о директиве: magic_quotes_gpc

Директива PHP magic_quotes_gpc имеет значение по умолчанию on (включена). По сути это применяет функцию addslashes() ко всем GET-, POST- и COOKIE-данным. Чтобы удалить добавленные слеши, вы можете использовать stripslashes().

Как директива PHP register_globals касается меня?
Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Во-первых, следует объяснить что делает эта директива. Скажем, используется вот такой URL: http://example.com/foo.php?animal=cat и в foo.php у нас находится следующий PHP-код:

<?php
// Использование $_GET в данном случае более предпочтительно
echo $_GET['animal'];

// Чтобы переменная $animal была определена, директива register_globals должна
// быть включена.
// НЕ ДЕЛАЙТЕ ЭТОГО!
echo $animal;

// Это касается всех переменных, включая $_SERVER
echo $_SERVER['PHP_SELF'];

// Опять-таки, чтобы $PHP_SELF была определена, надо включить register_globals
// НЕ ДЕЛАЙТЕ ЭТОГО!
echo $PHP_SELF;
?>

Код выше демонстрирует как register_globals создает множество переменных. Годами такой стиль написания не одобрялся и годами register_globals была выключена по умолчанию. Несмотря на то, что большинство хостингов отключает register_globals, осталось еще много устаревших статей, руководств и книг, которые требуют включения этой директивы. Действуйте соответственно.

См. также следующие источники за дополнительной информацией:

  • Директива register_globals
  • Глава о безопасности и register_globals
  • Работа с внешними данными
  • В качестве альтернативы используйте суперглобальные переменные

Замечание:

В примере выше мы использовали URL, который содержал QUERY_STRING. Передача информации подобным образом происходит с помощью метода HTTP GET, вот почему мы использовали суперглобальный массив $_GET.

Когда я делаю следующее, вывод распечатывается не в том порядке:
<?php
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
?>
Что происходит?

Для того, чтобы использовать результат вашей функции в выражении (таком как соединение с другими строками, как в вышеприведенном примере), вам необходимо вернуть значение с помощью return, а не выводить его через echo.

Эй, что произошло с моими строками?
<pre>
<?php echo "Это должно быть на первой строке."; ?>
<?php echo "А это должно быть на следующей строке."; ?>
</pre>

В PHP, блок кода завершается либо с "?>", либо с "?>\n" (где \n означает "новая строка"). В вышеприведенном примере предложения выведутся на одной строке, так как PHP опускает символ новой строки после завершения блока. Это означает, что вам необходимо вставить дополнительный символ новой строки после каждого блока PHP кода, для того чтобы вывод продолжался с новой строки.

Почему PHP делает это? Потому что при форматировании обычного HTML это, обычно, упрощает вашу жизнь когда вам не нужна эта новая строка и вам не надо создавать невероятно длинные строки для того, чтобы сделать исходник страницы читаемым.

Я получаю сообщение 'Warning: Cannot send session cookie - headers already sent...' или 'Cannot add header information - headers already sent...'.

Функциям header(), setcookie(), и функциям сессии нужно добавить заголовки к выходному потоку, но заголовки могут быть посланы только перед всем другим содержимым. Перед использованием этих функций нельзя ничего выводить, в том числе HTML. Функция headers_sent() проверит, если ваш скрипт уже послал заголовки; также смотрите функции управления выводом.

Мне необходим прямой доступ к информации в заголовке запроса. Как я могу это сделать?

Это делает функция getallheaders(), если вы запускаете PHP как модуль Apache. Так, следующий кусок кода покажет вам все заголовки запроса:

<?php
$headers = getallheaders();
foreach ($headers as $name => $content) {
    echo "headers[$name] = $content<br />\n";
}
?>

Также смотрите
apache_lookup_uri(),
apache_response_headers() и
fsockopen()

Когда я пытаюсь использовать аутентификацию с IIS, я получаю 'No Input file specified'.

Это недостаток модели безопасности IIS. Проблема общая для всех CGI программ, выполняющихся под IIS. Чтобы обойти проблему, создайте простой HTML файл (необрабатываемый PHP) как входную страницу в аутентифицируемой директории. Затем используйте META тэг для перенаправления на PHP страницу или поместите ссылку, указывающую на PHP страницу. После этого PHP распознает аутентификацию правильно. С модулем ISAPI такой проблемы нет. Это не должно повлиять на другие веб-серверы NT. Для дополнительной информации смотрите: » http://support.microsoft.com/kb/q160422/ и раздел руководства HTTP Аутентификация.

Windows: У меня нет доступа к файлам, разделяемых с другим компьютером, по IIS.

Вам необходимо сделать изменения. Идите в Internet Information Services. Найдите ваш PHP файл и перейдите в его свойства. Идите в закладку File Security, Edit -> Anonymous access and authentication control.

Вы можете исправить проблему либо сняв отметку с Anonymous Access и оставив отмеченным Integrated Window Authentication, либо отметив Anonymous Access и отредактировать права пользователя, так как у него может не быть прав.

Как я должен совмещать XML и PHP? Он жалуется на мои <?xml тэги!

Для того, чтобы встроить <?xml напрямую в ваш PHP код, вам надо отключить короткие тэги, установив PHP директиву short_open_tags в 0. Вы можете установить эту директиву с помощью ini_set(). Независимо от того, включена short_open_tags или нет, вы можете делать что-то типа: <?php echo '<?xml'; ?>. По умолчанию эта директива включена (On).

Где я могу найти полный список переменных, доступных мне в PHP?

Читайте страницу руководства по предопределенным переменным, так как она содержит частичный список предопределенных переменных, доступных вашему скрипту. Полный список доступных переменных (и множество другой информации) можно увидеть, вызвав функцию phpinfo(). Не забудьте прочитать раздел руководства по переменным, лежащим вне PHP так как он описывает общие сценарии для внешних переменных, таких как HTML форма, Cookie и URL.

Замечание: register_globals: важное замечание

Начиная с PHP 4.2.0, значением директивы PHP register_globals по умолчанию является off (выключено). Сообщество PHP рекомендует не полагаться на эту директиву, а использовать вместо этого иные средства, такие как superglobals.

Как я могу генерировать PDF файлы без использования платных или коммерческих библиотек, как PDFLib? Я бы хотел что-нибудь бесплатное и не требующее внешних библиотек PDF.

Есть несколько альтернатив, написанных на PHP, таких как » FPDF и » TCPDF.

Есть также расширение Haru, использующее внешнюю свободную библиотеку libHaru.

Я пытаюсь получить доступ к одной из стандартных CGI переменных (таких как $DOCUMENT_ROOT или $HTTP_REFERER) в определенной пользователем функции и, похоже, она не может быть найдена. В чем дело?

Важно осознавать, что директива PHP register_globals также затрагивает переменные окружения и сервера. Когда register_globals = off (по умолчанию off, начиная с 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 директив могут принимать сокращения для байтовых значений в отличие от только integer байтовых значений. Каковы все доступные сокращения?

Доступные опции: K (для килобайт), M (для мегабайт) и G (для гигабайт; доступна начиная с PHP 5.1.0); они регистронезависимы. Все остальное считается байтами. 1M равно одному мегабайту или 1048576 байтам. 1K равно одному килобайту или 1024 байтам. Эти сокращения вы можете использовать в php.ini и в функции ini_set(). Обратите внимание, что числовое значение приводится к типу integer; например, 0.5M интерпретируется как 0.

Замечание: килобайт и кибибайт

В нотации PHP один килобайт равен 1024 байтам, тогда как стандарт IEC считает это кибибайтом. В итоге: k и K = 1024 байта.

Windows: Я постоянно получаю таймауты при соединении с localhost, хотя с "127.0.0.1" все работает нормально?

До версии PHP 5.3.4, существовала ошибка в коде резолвинга доменного имени, не дававшая определить адрес localhost при включенном IPv6, во всех ситуациях связанных с потоками. Для обхода этой проблемы можно использовать "127.0.0.1" или отключить резолвинг IPv6 в файле hosts.


Безопасное хеширование паролей

В этом разделе разъясняются причины, стоящие за хешированием паролей в целях безопасности, а также эффективные методы хеширования.

  1. Почему я должен хешировать пароли пользователей в моем приложении?
  2. Почему популярные хеширующие функции, такие как md5 и sha1 не подходят для паролей?
  3. Если популярные хеширующие функции не подходят, как же я тогда должен хешировать свои пароли?
  4. Что такое соль?
  5. Как я должен хранить свою соль?
Почему я должен хешировать пароли пользователей в моем приложении?

Хеширование паролей является одним из самых основных соображений безопасности, которые необходимо сделать, при разработке приложения, принимающего пароли от пользователей. Без хеширования, пароли, хранящиеся в базе вашего приложения, могут быть украдены, например, если ваша база данных была скомпрометирована, а затем немедленно могут быть применены для компрометации не только вашего приложения, но и аккаунтов ваших пользователей на других сервисах, если они не используют уникальных паролей.

Применяя хеширующий алгоритм к пользовательским паролям перед сохранением их в своей базе данных, вы делаете невозможным разгадывание оригинального пароля для атакующего вашу базу данных, в то же время сохраняя возможность сравнения полученного хеша с оригинальным паролем.

Важно заметить, однако, что хеширование паролей защищает их только от компрометирования в вашем хранилище, но не обязательно от вмешательства вредоносного кода в вашем приложении.

Почему популярные хеширующие функции, такие как md5() и sha1() не подходят для паролей?

Такие хеширующие алгоритмы как MD5, SHA1 и SHA256 были спроектированы очень быстрыми и эффективными. При наличии современных технологий и оборудования, стало довольно просто выяснить результат этих алгоритмов методом "грубой силы" для определения оригинальных вводимых данных.

Из-за той скорости, с которой современные компьютеры могут "обратить" эти хеширующие алгоритмы, многие профессионалы компьютерной безопасности строго не рекомендуют использовать их для хеширования паролей.

Если популярные хеширующие функции не подходят, как же я тогда должен хешировать свои пароли?

При хешировании паролей существует два важных соображения: это стоимость вычисления и соль. Чем выше стоимость вычисления хеширующего алгоритма, тем больше времени требуется для взлома его вывода методом "грубой силы".

PHP 5.5 предоставляет встроенное API хеширования паролей, которое безопасно работает и с хешированием и с проверкой паролей. Также есть » библиотека PHP для совместимости, доступная с PHP 5.3.7.

Другой возможностью является функция crypt(), которая поддерживает несколько алгоритмов хеширования в PHP 5.3 и новее. При использовании этой функции вы можете быть уверенным, что выбранный вами алгоритм доступен, так как PHP содержит собственную реализацию каждого поддерживаемого алгоритма, даже в случае, если какие-то из них не поддерживаются вашей системой.

При хешировании паролей рекомендуется применять алгоритм Blowfish, который также используется по умолчанию в API хеширования паролей, так как он значительно большей вычислительной сложности, чем MD5 или SHA1, при этом по-прежнему гибок.

Учтите, что, если вы используете функцию crypt() для проверки пароля, то вам нужно предостеречь себя от атак по времени, применяя сравнение строк, которое занимает постоянное время. Ни операторы PHP == и ===, ни функция strcmp() не являются таковыми. Функция же password_verify() как раз делает то, что нужно. Настоятельно рекомендуется использовать встроенное API хеширования паролей, если есть такая возможность.

Что такое соль?

Криптографическая соль представляет собой данные, которые применяются в процессе хеширования для предотвращения возможности разгадать оригинальный ввод с помощью поиска результата хеширования в списке заранее вычисленных пар ввод-хеш, известном также как "радужная" таблица.

Более простыми словами, соль - это кусочек дополнительных данных, которые делают ваши хеши намного более устойчивыми к взлому. Существует много онлайн-сервисов, предоставляющих обширные списки заранее вычисленных хешей вместе с их оригинальным вводом. Использование соли делает поиск результирующего хеша в таком списке маловероятным или даже невозможным.

password_hash() создает случайную соль в случае, если она не была передана, и чаще всего это наилучший и безопасный выбор.

Как я должен хранить свою соль?

При использовании функции password_hash() или crypt(), возвращаемое значение уже содержит соль как часть созданного хеша. Это значение нужно хранить как есть в вашей базе данных, так как оно содержит также информацию о хеширующей функции, которая использовалась, и может быть непосредственно передано в функции password_verify() или crypt() при проверке пароля.

Следующая диаграмма показывает формат возвращаемого значения функциями crypt() или password_hash(). Как можно видеть, они содержат полную информацию об алгоритме и соли, требуемых для будущей проверки пароля.

Компоненты значения, возвращаемые функциями password_hash и crypt, идут в следующем порядке: выбранный алгоритм, опции алгоритма, соль и хеш пароля.


PHP и HTML

PHP и HTML тесно взаимодействуют: PHP может генерировать HTML, а HTML может передавать информацию PHP. Перед чтением вопросов в этом разделе важно чтобы вы понимали как получать переменные извне PHP. Страницы руководства по этой теме содержат много примеров.

  1. Какое кодирование/декодирование я должен выполнять при передаче значения через форму/URL?
  2. Я пытаюсь использовать <input type="image">, но переменные $foo.x и $foo.y недоступны. $_GET['foo.x'] тоже не существует. Где они?
  3. Как создать массивы в HTML <form>?
  4. Как получить все результаты из HTML-тега select с атрибутом multiple?
  5. Как я могу передать переменную из JavaScript в PHP?
Какое кодирование/декодирование я должен выполнять при передаче значения через форму/URL?

Здесь несколько этапов, на которых кодировка важна. Предположим, что у вас есть $data типа string, содержащая строку, которую вы хотите передать без кодирования. Вот эти этапы:

  • Интерпретация HTML. Для того, чтобы задать произвольную строку, вы должны заключить её в двойные кавычки и использовать htmlspecialchars() для кодирования.

  • URL: URL состоит из нескольких частей. Если вы хотите чтобы ваши данные были восприняты как один элемент, вы должны закодировать их с помощью urlencode().

Пример #1 Скрытый элемент HTML-формы

<?php
    echo '<input type="hidden" value="' . htmlspecialchars($data) . '" />'."\n";
?>

Замечание: Использовать urlencode() для $data неправильно, так как кодировать данные в urlencode() это обязанность браузера. Все популярные браузеры делают это правильно. Отметьте, что это происходит вне зависимости от метода (например, GET или POST). Вы заметите это только в случае GET-запроса, так как POST-запросы обычно скрыты.

Пример #2 Данные, редактируемые пользователем

<?php
    echo "<textarea name='mydata'>\n";
    echo htmlspecialchars($data)."\n";
    echo "</textarea>";
?>

Замечание: Данные показываются браузером как предполагается, потому что браузер будет интерпретировать экранированные HTML-символы. При отправке через GET или POST данные будут закодированы (urlencoded) браузером для передачи и декодированы (urldecoded) PHP. Поэтому вам не надо выполнять какое-либо кодирование/декодирование url самостоятельно, всё обрабатываются автоматически.

Пример #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 правильно, так как вы закодировали данные с urlencode(). Вы заметите, что & в URL заменяется на &amp;. Хотя большинство браузеров это исправляют, если вы забудете об этом, но все же это не всегда возможно. Поэтому, даже если ваш URL не динамический, вам надо закодировать его с помощью htmlspecialchars().

Я пытаюсь использовать <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'].

Замечание:

Пробелы в именах переменных запроса преобразуются в подчёркивания.

Как создать массивы в 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.

Как получить все результаты из 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, то [] в имени элемента могут вызвать проблемы, если вы пытаетесь обращаться к элементу по имени. Вместо этого используйте числовой идентификатор элемента формы или заключите имя переменной в одинарные кавычки и используйте его как индекс массива элементов, например:

variable = document.forms[0].elements['var[]'];

Как я могу передать переменную из JavaScript в PHP?

Так как JavaScript является (обычно) клиентской технологией, а PHP, как правило, серверной, и поскольку HTML - протокол "без состояния", эти два языка не могут обмениваться переменными напрямую.

Однако, возможно передавать переменные между ними. Один из способов достичь этого - сгенерировать JavaScript-код из PHP и принудительно обновлять браузер, посылая определённые переменные обратно PHP-скрипту. Нижеприведенный пример показывает как это сделать - он позволяет PHP-коду получить высоту и ширину экрана, что, обычно, возможно только на стороне клиента.

Пример #4 Генерирование JavaScript из PHP

<?php
if (isset($_GET['width']) AND isset($_GET['height'])) {
  // выводим переменные с размерами
  echo "Ширина экрана: ". $_GET['width'] ."<br />\n";
  echo "Высота экрана: ". $_GET['height'] ."<br />\n";
} else {
  // передаем переменные с размерами
  // (сохраняем оригинальную строку запроса
  //   -- post переменные нужно будет передавать другим способом)

  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 и 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?
Я собрал DLL для кое-каких вычислений. Можно ли запустить эту DLL из PHP?

Если это простая DLL, то пока еще нет возможности вызвать её из PHP. Если DLL содержит COM-сервер, то вы можете получить доступ к ней, если она реализует интерфейс IDispatch.

Что значит 'Unsupported variant type: xxxx (0xxxxx)'?

Существуют дюжины типов VARIANT и их комбинаций. Большинство из них уже поддерживаются, но несколько все еще не реализованы. Массивы поддерживаются не полностью. Только одномерные индексированные массивы могут передаваться между PHP и COM. Если вы обнаружите неподдерживаемые типы, пожалуйста, сообщите о них как об ошибке (если это еще не сделано) и предоставьте всю доступную информацию.

Возможно ли манипулирование визуальными объектами в PHP?

В общем да, но так как PHP в основном используется как скриптовый язык для веба и выполняется в контексте веб-сервера, то визуальные объекты никогда не появятся на рабочем столе сервера. Если вы используете PHP как скрипт для приложений, например в связке с PHP-GTK, тогда нет ограничений на доступ и манипулирование визуальными объектами через COM.

Могу ли я сохранять объект COM в сессии?

Нет, не можете. Так как экземпляры COM рассматриваются как ресурсы, то они доступны только в контексте одного скрипта.

Как я могу поймать ошибки COM?

Расширение COM выбрасывает исключение com_exception, которое вы можете перехватить и затем проверить у него поле code, чтобы понять, что делать дальше.

Можно ли генерировать DLL-файлы из PHP-скриптов так, как это можно делать в Perl?

Нет, к сожалению такое средство недоступно для PHP.

Что значит 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}'?

Эта ошибка может возникнуть по разным причинам:

  • неправильный CLSID
  • отсутствует запрошенная DLL
  • запрошенный компонент не реализует интерфейс IDispatch

Как можно запускать COM-объекты с удаленного сервера?

Точно так же как вы запускаете локальные объекты. Вам только надо передать IP удаленной машины как второй параметр конструктора COM.

Убедитесь, что в вашем php.ini вы установили com.allow_dcom =TRUE

Я получаю 'DCOM is disabled in C:\path...\scriptname.php on line 6', что делать?

Отредактируйте ваш php.ini и установите com.allow_dcom =TRUE.

Возможно ли с помощью PHP загрузить/манипулировать объектом ActiveX на странице?

PHP здесь не причем. Объекты ActiveX загружаются на стороне клиента, если они были запрошены из HTML документа. Связи с PHP-скриптом здесь нет и, следовательно, прямое взаимодействие с серверной стороной невозможно.

Возможно ли получить выполняющийся экземпляр компонента?

Это возможно с помощью моникеров (monikers). Если вы хотите получить несколько ссылок на один и тот же экземпляр Word, вы можете создать этот экземпляр как показано:

<?php
$word = new COM("C:\docs\word.doc");
?>

Это создаст новый экземпляр, если нет доступного выполняющегося экземпляра или будет возвращена ссылка на выполняющийся экземпляр, если такой доступен.

Есть ли способ обработать событие, посланное объектом COM?

Используя com_event_sink() вы можете определить приемник события и привязать его. Вы можете заставить PHP сгенерировать скелет класса приемника событий, используя com_print_typeinfo().

У меня возникают проблемы при попытке вызвать метод объекта COM, который предоставляет более чем один интерфейс. Что я могу сделать?

Ответ так же прост, как и неудовлетворителен. Не знаю точно, но думаю, что вы не можете ничего сделать. Если у кого-то есть точная информация по этому вопросу, пожалуйста, дайте » мне знать :)

Значит PHP работает с COM, как насчет COM+?

COM+ расширяет COM, предоставляя систему для управления компонентами через MTS и MSMQ, но здесь нет ничего особенного, что PHP должен поддерживать для использования таких компонент.

Если PHP может манипулировать COM-объектами, можно ли представить себе использование MTS для управления ресурсами компонентов в соединении с PHP?

Сам PHP еще не обрабатывает транзакции. Таким образом, если возникает ошибка, откат не инициируется. Если вы используете компоненты, поддерживающие транзакции, вам будет необходимо реализовать управление транзакциями самим.


Разные вопросы

Некоторые вопросы могут не подходить для других категорий. Вы можете найти их здесь.

  1. Как обращаться со сжатыми bz2 руководствами под Windows?
  2. Что означает & рядом с аргументом в объявлении функции, например asort?
  3. Как обращаться с register_globals?
Как обращаться со сжатыми 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, следуйте этим простым инструкциям:

  • откройте окно c командной строкой (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.

Что означает & рядом с аргументом в объявлении функции, например asort()?

Это означает, что аргумент передается по ссылке и функция, вероятно, изменит его согласно документации. Таким путем вы можете передать только переменные и вам не обязательно задавать & при вызове функции (и это даже не рекомендуется).

Как обращаться с register_globals?

Для информации по проблемам безопасности, связанных с register_globals, читайте Использование register_globals в главе "Безопасность".

Предпочтительнее использовать суперглобальные переменные, чем полагаться на то, что register_globals установлена в On.

Если вы пользуетесь виртуальным (shared) хостингом с выключенной register_globals и вам надо использовать некоторые существующие приложения, которые требуют, чтобы эта опция была включена; или вы на каком-либо сервере, где эта возможность включена, но вы хотите эмулировать проблему по безопасности, то возможно вам надо эмулировать противоположную установку с помощью PHP. Всегда лучше сначала спросить, если можно каким-либо образом изменить опцию в конфигурации PHP, но если это невозможно, то вы можете воспользоваться следующими совместимыми кусками кода.

Пример #1 Эмулирование Register Globals

Следующее эмулирует register_globals установленную в On. Если вы меняли директиву variables_order, измените соответственно и $superglobals.

<?php
// Эмулировать включенный register_globals
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);
    }
}
?>

Следующее эмулирует register_globals, установленную в Off. Помните, что этот код должен вызываться в самом начале вашего скрипта, или после вызова session_start(), если вы используете сессии.

<?php
// Эмулировать отключенный register_globals
function unregister_GLOBALS()
{
    if (!ini_get('register_globals')) {
        return;
    }

    // Возможно, вы захотите изменить это на более приятный вывод ошибки
    if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) {
        die('Обнаружена попытка перезаписи GLOBALS');
    }

    // Переменные, которые не должны быть удалены
    $noUnset = array('GLOBALS',  '_GET',
                     '_POST',    '_COOKIE',
                     '_REQUEST', '_SERVER',
                     '_ENV',     '_FILES');

    $input = array_merge($_GET,    $_POST,
                         $_COOKIE, $_SERVER,
                         $_ENV,    $_FILES,
                         isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array());

    foreach ($input as $k => $v) {
        if (!in_array($k, $noUnset) && isset($GLOBALS[$k])) {
            unset($GLOBALS[$k]);
        }
    }
}

unregister_GLOBALS();

?>


Appendices

  • История PHP и смежных проектов
    • История PHP
    • История смежных с PHP проектов
    • Книги о PHP
    • Публикации, посвященные PHP
  • Миграция с PHP 7.3.x на PHP 7.4.x
    • Новые возможности
    • Новые классы и интерфейсы
    • Новые функции
    • Новые глобальные константы
    • Изменения, ломающие обратную совместимость
    • Устаревшая функциональность
    • Удаленные модули
    • Другие изменения
    • Поддержка Windows
  • Миграция с PHP 7.2.x на PHP 7.3.x
    • Новые возможности
    • Новые функции
    • Новые глобальные константы
    • Изменения, ломающие обратную совместимость
    • Функционал, объявленный устаревшим в PHP 7.3.x
    • Прочие изменения
    • Поддержка Windows
  • Миграция с PHP 7.1.x на PHP 7.2.x
    • Новые возможности
    • Новые функции
    • Новые глобальные константы
    • Изменения, ломающие обратную совместимость
    • Функционал, объявленный устаревшим в PHP 7.2.x
    • Прочие изменения
  • Миграция с PHP 7.0.x на PHP 7.1.x
    • Новые возможности
    • Новые функции
    • Новые глобальные константы
    • Изменения, ломающие обратную совместимость
    • Функционал, объявленный устаревшим в PHP 7.1.x
    • Измененные функции
    • Прочие изменения
    • Поддержка Windows
  • Миграция с PHP 5.6.x на PHP 7.0.x
    • Изменения, ломающие обратную совместимость
    • Новая функциональность
    • Функциональность, объявленная устаревшей в PHP 7.0.x
    • Измененные функции
    • Новые функции
    • Новые классы и интерфейсы
    • Новые глобальные константы
    • Изменения в модулях SAPI
    • Удаленные расширения и SAPI
    • Другие изменения
  • Миграция с PHP 5.5.x на PHP 5.6.x
    • Изменения, ломающие обратную совместимость
    • Новые возможности
    • Функционал, объявленный устаревшим в PHP 5.6.x
    • Измененные функции
    • Новые функции
    • Изменения OpenSSL в PHP 5.6.x
    • Другие изменения в расширениях
    • Новые глобальные константы
  • Миграция с PHP 5.4.x на PHP 5.5.x
    • Что поменялось в PHP 5.5.x
    • Изменения, ломающие обратную совместимость
    • Новые возможности
    • Функционал, объявленный устаревшим в PHP 5.5.x
    • Измененные функции
    • Новые функции
    • Новые классы и интерфейсы
    • Новые методы
    • Прочие изменения в расширениях
    • Новые глобальные константы
    • Изменения в обработке INI-файла
    • Внутренние изменения PHP
  • Миграция с PHP 5.3.x на PHP 5.4.x
    • Что изменилось в PHP 5.4.x?
    • Обратно несовместимые изменения
    • Новые возможности
    • Изменения в модулях SAPI
    • Устаревшие функции и возможности в PHP 5.4.x
    • Измененные функции
    • Новые функции
    • Новые классы и интерфейсы
    • Новые методы
    • Удаленные расширения
    • Другие изменения в расширениях
    • Новые глобальные константы
    • Изменения в обработке INI-файлов
    • Другие изменения
  • Миграция c PHP 5.2.x на PHP 5.3.x
    • Что нового в PHP 5.3.x ?
    • Обратно несовместимые изменения
    • Новые возможности
    • Изменения в поддержке Windows
    • Изменения в модулях SAPI
    • Устаревшие функции и возможности в PHP 5.3.x
    • Функции и возможности, которые ранее считались устаревшими, а теперь снова возвращены в PHP 5.3.x
    • Новые параметры
    • Новые функции
    • Новые обертки потоков
    • Новые фильтры потоков
    • Новые константы классов
    • Новые методы
    • Новые расширения
    • Удаленные расширения
    • Другие изменения в расширениях
    • Новые классы
    • Новые глобальные константы
    • Изменения в работе с INI-файлами
    • Другие изменения
  • Миграция с PHP 5.1.x на PHP 5.2.x
    • Изменения в PHP 5.2.x
    • Изменения, нарушающие обратную совместимость
    • Новые сообщения об ошибках
    • Изменения в поддержке datetime в PHP
    • Новые параметры
    • Новые функции
    • Новые методы
    • Удаленные расширения
    • Новые расширения
    • Новые классы
    • Новые глобальные константы
    • Новые константы классов
    • Новые конфигурационные параметры INI
    • Сообщения об ошибках
    • Другие улучшения
  • Миграция с PHP 5.0.x на PHP 5.1.x
    • Основные возможности PHP 5.1.x
    • Изменения в обработке ссылок
    • Чтение []
    • Целочисленные значения в параметрах функции
    • Изменения класса и объекта
    • Модули
    • Поддержка даты и времени
    • Изменения в поддержке базы данных
    • Проверка на E_STRICT
  • Миграция с PHP 4 на PHP 5.0.x
    • Что изменилось в PHP 5.0.x
    • Изменения, повлекшие за собой обратную несовместимость
    • CLI и CGI
    • Перенос конфигурационных файлов
    • Новые функции
    • Новые директивы
    • Базы данных
    • Новая объектная модель
    • Сообщения об ошибках
  • Отладка в PHP
    • Об отладке в PHP
  • Опции конфигурации
    • Список основных опций конфигурации
  • Директивы php.ini
    • Список директив php.ini
    • Список разделов php.ini
    • Описание встроенных директив php.ini
  • Список/классификация расширений
    • В алфавитном порядке
    • По составу
    • По состоянию
  • Список псевдонимов функций
  • Список зарезервированных слов
    • Список ключевых слов
    • Предопределенные классы
    • Предопределенные константы
    • Список прочих зарезервированных слов
  • Список типов ресурсов
  • Список доступных фильтров
    • Строковые фильтры
    • Преобразовывающие фильтры
    • Компрессионные фильтры
    • Шифрующие фильтры
  • Список поддерживаемых транспортных протоколов
    • Интернет-сокеты: TCP, UDP, SSL и TLS
    • Unix-сокеты: UNIX и UDG
  • Таблица сравнения типов в PHP
  • Список меток (tokens) парсера
  • Руководство по именованию
    • Глобальное пространство имен
    • Правила
    • Советы
  • Об этом руководстве
    • Форматы
    • О заметках пользователей
    • Как читать определения функции (прототип)
    • Версии PHP, документированные в этом руководстве
    • Как узнать больше о PHP
    • Как помочь в написании документации
    • Как создаются форматы документации
    • Переводы
  • Creative Commons Attribution 3.0
  • Алфавитный список
    • Список функций и методов
    • Список примеров
  • Список изменений


История PHP и смежных проектов

Содержание

  • История PHP
  • История смежных с PHP проектов
  • Книги о PHP
  • Публикации, посвященные PHP

PHP прошел длинный путь со дня своего рождения в середине 1990-х. От скромного появления до становления одним из самых популярных языков веб-программирования - эволюция PHP словно IT-сказка. Эта небольшая статья для тех из вас, кому интересно как развивался PHP. Если вы хотите прикоснуться к кусочку Интернет истории, то вы можете найти старые релизы PHP в » Музее PHP.


История PHP

PHP Tools, FI, Construction Kit и PHP/FI

PHP, как всем известно, на самом деле преемник продукта под названием PHP/FI. Созданное в 1994 году Расмусом Лердорфом, самое первое воплощение PHP было простым набором CGI-скриптов, написанных на языке программирования Си. Изначально используя их для отслеживания посещений своего веб-резюме, он назвал этот набор скриптов "Personal Homepages Tools" ("Инструменты для персональных домашних страниц"), но более часто упоминалось название "PHP Tools". Со временем требовалось все больше улучшений функциональности, и Расмус переписал PHP Tools, создав более крупную и богатую реализацию. Эта новая реализация была способна взаимодействовать с базами данных и многое другое, что создавало фреймворк, с помощью которого пользователи могли создавать простые динамические веб-приложения, такие как гостевые книги. В июне 1995 года Расмус » открыл исходный код PHP Tools общественности, что позволило разработчикам использовать его по своему усмотрению. Это также дало возможность пользователям исправлять ошибки в коде и улучшать его.

В сентябре того же года, Расмус расширил PHP и на короткое время убрал из названия PHP. Теперь в виде инструмента FI (сокращение от "Интерпретатор Форм"), новая реализация включала в себя некоторые основные функциональные возможности того PHP, который мы знаем сегодня. Она имела Perl-подобные переменные, автоматическую интерпретацию форм и встраиваемый в HTML синтаксис. Синтаксис языка был похож на Perl, хотя и был гораздо более ограниченным, простым, и в некоторой степени противоречивым. Для того, чтобы вставлять код в HTML-файл, разработчикам пришлось использовать HTML комментарии. Хотя этот метод был не совсем хорошо принят, FI по-прежнему набирал популярность в качестве CGI-инструмента, но все-таки не в качестве языка. Однако, перемены начались в следующем месяце, когда в октябре 1995 года Расмус выпустил полностью переписанный код. С вернувшимся именем PHP, но уже сокращенным от "Personal Home Page Construction Kit", это был первый релиз, который мог похвастаться расширенным интерфейсом сценариев. Язык намеренно напоминал Си по структуре, что делал его легким для восприятия разработчиками, знакомыми с Си, Perl и подобными языками. Будучи все еще ограниченными UNIX и POSIX-совместимыми системами, был изучен вопрос для реализации языка в Windows NT.

Код получил еще одно существенное преобразование в апреле 1996 года. Объединив названия предыдущих версий, Расмус представил PHP/FI. Реализации второго поколения начали по-настоящему развивать PHP из набора инструментов в самостоятельный язык программирования. PHP включал в себя встроенную поддержку для DBM, mSQL и Postgres95 баз данных, cookies, поддержку определяемых пользователем функций и многое другое. В июне PHP/FI была присвоена версия 2.0. Интересно, однако, что существовала только одна версия PHP 2.0. Когда она, наконец, в ноябре 1997 года преодолела статус бета-версии, парсер языка был уже полностью переписан.

Несмотря на короткую историю разработки, PHP/FI продолжал набирать популярность в молодом мире веб-разработки. В 1997 и 1998, PHP/FI стал культом для нескольких тысяч пользователей по всему миру. Исследования Netcraft в мае 1998 года показали, что почти 60 тысяч доменов передавали заголовки, содержащие "PHP". Это число равнялось примерно 1% от всех доменов в Интернете в то время. Несмотря на эти впечатляющие цифры, развитие PHP/FI было ограничено: несмотря на нескольких второстепенных участников, в целом он по-прежнему разрабaтывался одним человеком.

Пример #1 Пример кода на PHP/FI

<!--include /text/header.html-->

<!--getenv HTTP_USER_AGENT-->
<!--ifsubstr $exec_result Mozilla-->
  Эй, у вас Нетскейп!<p>
<!--endif-->

<!--sql database select * from table where user='$username'-->
<!--ifless $numentries 1-->
  Извините, такой записи нет<p>
<!--endif exit-->
  Добро пожаловать, <!--$user-->!<p>
  На вашем счету осталось <!--$index:0--> "кредитов".<p>

<!--include /text/footer.html-->

PHP 3

PHP 3.0 был первой версией, напоминающей PHP, каким мы знаем его сегодня. Посчитав PHP/FI 2.0 все еще неэффективным и недостаточно функциональным для использования в коммерческих приложениях, разрабатываемых для их университетского проекта, Энди Гутманс и Зив Сураски из Тель-Авива начали еще раз заново переписывать парсер в 1997 году. Связавшись с Расмусом, они обсудили различные аспекты текущей реализации и их новой разработки PHP. Для улучшения движка и использования уже существующей базы пользователей PHP/FI, Энди, Расмус и Зив решили сотрудничать в развитии нового, независимого языка программирования. Этот совершенно новый язык был выпущен под новым именем, без упоминания о персональном использовании, как в PHP/FI 2.0. Он был назван просто "PHP" - аббревиатура, означающая рекурсивный акроним - PHP: Hypertext Preprocessor.

Одной из сильнейших сторон PHP 3.0 была возможность расширения ядра. Кроме обеспечения пользователей надежной инфраструктурой из множества различных баз данных, протоколов и API, расширяемость PHP 3.0 привлекла к нему множество сторонних разработчиков, желающих добавить к языку свои модули. Возможно, это и был главный ключ к успеху, но стоит добавить, что немаловажным шагом оказалась поддержка ООП синтаксиса и намного более мощного и последовательного синтаксиса самого языка.

В июне 1998 года, со множеством новых разработчиков со всего мира присоединившихся к проекту, PHP 3.0 был представлен новой командой разработчиков, как официальный преемник PHP/FI. Активное развитие PHP/FI 2.0, фактически прекратившееся в ноябре прошлого года, теперь официально закончилось. Примерно через девять месяцев открытого публичного тестирования, при объявлении официального выпуска PHP 3.0, он уже был установлен на более чем 70000 доменах по всему миру, и уже не ограничивается POSIX-совместимыми операционными системами. Относительно небольшая доля доменов с установленным PHP была размещена на серверах под управлением Windows 95, 98 и NT, а также Macintosh. На пике своего развития, PHP 3.0 был установлен приблизительно на 10% веб-серверов в Интернете.

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 4.0 имел еще несколько ключевых нововведений, таких как поддержка намного большего числа веб-серверов, поддержка HTTP сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации и несколько новых языковых конструкций.

PHP 5

После долгой разработки и нескольких пре-релизов в июле 2004 был выпущен PHP 5. В основном он управляется ядром Zend Engine 2.0 с новой объектной моделью и множеством различных других нововведений.

Команда разработчиков PHP включает в себя десятки разработчиков, а также десятки других организаций, работающих над связанными с PHP и его поддержкой проектами, такими как PEAR, PECL и документацией, а также базовую инфраструктуру сети более чем из ста серверов на шести из семи континентах мира. Основываясь на статистике прошлых лет, можно с уверенностью предположить, что PHP теперь установлен на десятки или даже, возможно, сотни миллионов доменов по всему миру.


История смежных с PHP проектов

PEAR

» PEAR (PHP Extension and Application Repository - Репозиторий Приложений и Модулей PHP. Изначально, PHP Extension and Add-on Repository - Репозиторий Дополнений и Модулей PHP) - это PHP-версия базовых классов. В будущем возможен его рост и становление ключевым способом публикации модулей PHP среди разработчиков.

PEAR зародился в ходе дискуссий на встрече разработчиков PHP (PHP Developers' Meeting - PDM), проходившей в январе 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+ очень приятным средством разработки, исключая то, что работать с ним на 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, была чешская книга, выпущенная в апреле 1999 года под названием 'PHP - tvorba interaktivnich internetovych aplikaci' (PHP - Создание интерактивных интернет-приложений). Автором книги является Jirka Kosek. В следующем месяце следом за ней выходит немецкая книга Эгона Шмидта (Egon Schmid), Кристиана Картуса (Christian Cartus) и Ричарда Блюма (Richard Blum). Вскоре после этого была опубликована первая на английском языке книга, посвященная PHP, - 'Core PHP Programming' Леона Аткинсона (Leon Atkinson). Все эти книги описывали PHP 3.0.

Эти книги были первыми в своем роде, и вскоре было выпущено большое количество книг различных авторов и издательств. Существует более 400 книг на английском, более 100 на немецком, и больше 50 на французском и испанском языках! Кроме того, можно найти книги о PHP на многих других языках, включая корейский, японский и иврит.

Очевидно, что такое большое количество книг, написанных разными авторами и опубликованных многими издательствами на столь многих языках, является весомым подтверждением мирового успеха PHP.


Публикации, посвященные PHP

По нашей информации, первая статья о PHP была опубликована в чешском варианте 'Computerworld' весной 1998 и освещала PHP 3.0. Как и в случае с книгами, эта была первая в серии статья из множества посвященных PHP и опубликованных в различных известных журналах.

Статьи о PHP публиковались в 'Dr. Dobbs', 'Linux Enterprise', 'Linux Magazine' и многих других изданиях. А статьи о переносе основанных на ASP приложений на PHP под Windows появились даже в принадлежащей самому Microsoft MSDN!


Миграция с PHP 7.3.x на PHP 7.4.x

Содержание

  • Новые возможности
  • Новые классы и интерфейсы
  • Новые функции
  • Новые глобальные константы
  • Изменения, ломающие обратную совместимость
  • Устаревшая функциональность
  • Удаленные модули
  • Другие изменения
  • Поддержка Windows

Эта обновлённая версия приносит с собой ряд новых возможностей и несколько несовместимостей, которые должны быть проверены до смены версии в производственной среде.

Смотрите также руководство по миграции для версий PHP 7.0.x, 7.1.x, 7.2.x и 7.3.x.


Новые возможности

Ядро PHP

Типизированные свойства

Свойства класса теперь поддерживают объявления типов.

<?php
class User {
    public int $id;
    public string $name;
}
?>
В приведенном примере выше показано, что $user->id можно присвоить только значения типа integer, когда как $user->name - исключительно значения типа string.

Стрелочные функции

Стрелочные функции - это сокращенная запись для определения функций с неявной привязкой родительской области видимости по значению.

<?php
$factor = 10;
$nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]);
// $nums = array(10, 20, 30, 40);
?>

Ограниченная ковариация возвращаемого типа и контравариантность типа аргумента

Следующий код теперь будет работать:

<?php
class A {}
class B extends A {}

class Producer {
    public function method(): A {}
}
class ChildProducer extends Producer {
    public function method(): B {}
}
?>
Полная поддержка вариантности доступна только при использовании автозагрузки. Внутри одного файла могут быть только нециклические ссылки, поскольку все классы должны быть определены, перед тем как на них ссылаться.

Присваивающий оператор объединения с null

<?php
$array['key'] ??= computeDefault();
// примерно то же самое
if (!isset($array['key'])) {
    $array['key'] = computeDefault();
}
?>

Распаковка внутри массивов

<?php
$parts = ['apple', 'pear'];
$fruits = ['banana', 'orange', ...$parts, 'watermelon'];
// ['banana', 'orange', 'apple', 'pear', 'watermelon'];
?>

Разделитель в числовых литералах

Теперь в числовых литералах между знаками могут быть символы подчеркивания.

<?php
6.674_083e-11; // число с плавающей точкой
299_792_458;   // десятичное число
0xCAFE_F00D;   // шестнадцатеричное число
0b0101_1111;   // двоичное число
?>

Слабые ссылки

Слабые ссылки позволяют программисту сохранить ссылку на объект, которая не помешает сборщику мусора удалить этот объект.

Обработка исключений из метода __toString()

Выбрасывание исключений из метода __toString() теперь разрешено. Ранее это приводило к фатальной ошибке. Существующие отлавливаемые фатальные ошибки при преобразовании объекта в строку будут доступны в виде исключений класса Error.

CURL

Помимо обычных имен файлов, класс CURLFile теперь поддерживает потоковые обертки, если модуль был собран с версией libcurl >= 7.56.0.

Фильтрация

Фильтр FILTER_VALIDATE_FLOAT теперь поддерживает параметры min_range и max_range, с тем же смыслом, что и для FILTER_VALIDATE_INT.

FFI

FFI - новый модуль, который предлагает простой способ вызова встроенных функций, доступа к встроенным переменным, а также создавать или обращаться к структурам данным в библиотеках на языке Си.

GD

Добавлена константа IMG_FILTER_SCATTER для применения рассеивающегося фильтра к изображениям.

Хеширование

Добавлен хеш crc32c, использующий полином Кастаноли. Эта реализация алгоритма CRC32 используется системами хранения, такими как iSCSI, SCTP, Btrfs и ext4.

Многобайтовые строки

Добавлена функция mb_str_split(), которая выполняет, то же, что и str_split(), но работает с кодовыми точками, а не с байтами.

OPcache

Добавлена поддержка предварительной загрузки кода.

Регулярные выражения (совместимые с Perl)

Функции preg_replace_callback() и preg_replace_callback_array() теперь принимают дополнительный аргумент flags с поддержкой флагов PREG_OFFSET_CAPTURE и PREG_UNMATCHED_AS_NULL. Он повлияет на формат массива совпавших значений, передаваемого в callback-функцию.

PDO

Имя пользователя и пароль теперь можно указать как часть DSN для драйверов mysql, mssql, sybase, dblib, firebird и oci. Ранее поддержка этого была только для драйвера pgsql. Если имя пользователя/пароль указаны и в конструкторе и в DSN, то конструктор будет иметь приоритет.

Также теперь можно экранировать вопросительные знаки в SQL-запросах, чтобы они не воспринимались как именованные параметры. Использование ?? отправит один знак вопроса в базу данных, и, например, в случае использования PostgreSQL, будет использован оператор проверки существования ключа в JSON (?).

PDO_OCI

Для данного драйвера теперь доступен метод PDOStatement::getColumnMeta().

PDO_SQLite

Выражение PDOStatement::getAttribute(PDO::SQLITE_ATTR_READONLY_STATEMENT) позволяет проверить, доступен ли подготовленный запрос только для чтения, т.е. не изменяет ли он базу данных.

PDO::setAttribute(PDO::SQLITE_ATTR_EXTENDED_RESULT_CODES, true) позволяет использовать расширенные коды результата SQLite3 в PDOStatement::errorInfo().

SQLite3

Добавлен метод SQLite3::lastExtendedErrorCode() для получения последнего расширенного кода результата.

Добавлен метод SQLite3::enableExtendedResultCodes($enable = true), который заставит метод SQLite3::lastErrorCode() возвращать расширенные коды результаты.

Стандартное

strip_tags() с массивом имен тегов

Функция strip_tags() теперь также принимает массив разрешенных тегов: вместо strip_tags($str, '<a><p>') теперь можно написать strip_tags($str, ['a', 'p']).

Пользовательская сериализация объектов

Добавлен новый механизм сериализации пользовательских объектов, использующий два новых магических метода: __serialize и __unserialize.

<?php
// Возвращает массив, содержащий все необходимое состояние объекта.
public function __serialize(): array;

// Восстанавливает состояние объекта из указанного массива данных.
public function __unserialize(array $data): void;
?>
Новый механизм сериализации заменяет интерфейс Serializable, который в будущем будет объявлен устаревшим.

Функции слияния массивов без аргументов

Функции array_merge() и array_merge_recursive() теперь могут вызываться без каких-либо аргументов, и тогда они возвратят пустой массив. Это полезно в сочетании с оператором расширения, например, array_merge(...$arrays).

Функция proc_open()

proc_open() теперь принимает массив вместо строки для выполнения команды. В этом случае процесс будет открыт напрямую (без командной оболочки), а PHP экранирует любой необходимый аргумент.

<?php
proc_open(['php', '-r', 'echo "Привет, мир\n";'], $descriptors, $pipes);
?>

Функция proc_open() теперь поддерживает дескрипторы redirect и null.

<?php
// То же самое, что и 2>&1 в командной оболочке
proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['redirect', 1]], $pipes);
// То же самое, что и 2>/dev/null или 2>nul в командной оболочке
proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['null']], $pipes);
?>

argon2i(d) без libargon

Функция password_hash() теперь поддерживает варианты хеширования argon2i и argon2id из модуля sodium, когда PHP собран без libargon.


  • « Новые возможности
  • Новые функции »
  • PHP Manual
  • Миграция с PHP 7.3.x на PHP 7.4.x
  • Новые классы и интерфейсы

Новые классы и интерфейсы

Reflection

  • ReflectionReference


Новые функции

Ядро PHP

  • get_mangled_object_vars()
  • password_algos()
  • sapi_windows_set_ctrl_handler()

GD

  • imagecreatefromtga()

OpenSSL

  • openssl_x509_verify()

Управление процессами

  • pcntl_unshare()

SQLite3

  • SQLite3::backup()
  • SQLite3Stmt::getSQL()


Новые глобальные константы

Ядро PHP

  • PHP_WINDOWS_EVENT_CTRL_C
  • PHP_WINDOWS_EVENT_CTRL_BREAK

Мультибайтовые строки

  • MB_ONIGURUMA_VERSION

Сокеты

Добавлены следующие опции сокетов для FreeBSD:

  • SO_LABEL
  • SO_PEERLABEL
  • SO_LISTENQLIMIT
  • SO_LISTENQLEN
  • SO_USER_COOKIE

Tidy

  • TIDY_TAG_ARTICLE
  • TIDY_TAG_ASIDE
  • TIDY_TAG_AUDIO
  • TIDY_TAG_BDI
  • TIDY_TAG_CANVAS
  • TIDY_TAG_COMMAND
  • TIDY_TAG_DATALIST
  • TIDY_TAG_DETAILS
  • TIDY_TAG_DIALOG
  • TIDY_TAG_FIGCAPTION
  • TIDY_TAG_FIGURE
  • TIDY_TAG_FOOTER
  • TIDY_TAG_HEADER
  • TIDY_TAG_HGROUP
  • TIDY_TAG_MAIN
  • TIDY_TAG_MARK
  • TIDY_TAG_MENUITEM
  • TIDY_TAG_METER
  • TIDY_TAG_NAV
  • TIDY_TAG_OUTPUT
  • TIDY_TAG_PROGRESS
  • TIDY_TAG_SECTION
  • TIDY_TAG_SOURCE
  • TIDY_TAG_SUMMARY
  • TIDY_TAG_TEMPLATE
  • TIDY_TAG_TIME
  • TIDY_TAG_TRACK
  • TIDY_TAG_VIDEO


Изменения, ломающие обратную совместимость

Ядро PHP

Массивоподобное обращение к не массивам

Попытка использовать значения типа null, bool, int, float или resource как массив (например, $null["key"]) теперь создаст уведомление.

Функция get_declared_classes()

Функция get_declared_classes() больше не возвращает анонимные классы, которые еще не были созданы.

Ключевое слово fn

fn теперь зарезервированное ключевое слово. В частности, оно не может больше использоваться как имя функции или класса. Но при этом, этим ключевым словом можно назвать имя метода или константы в классе.

Тег <?php в конце файла

Использование <?php в конце файла (без завершающей новой строки) теперь будет интерпретироваться как открывающий тег PHP. Ранее он обрабатывался либо как короткий открывающий тег с последующим литералом php и приводил к синтаксической ошибке (при short_open_tag=1), либо воспринимался как строковый литерал <?php (в случае short_open_tag=0).

Потоковые обертки

При использовании include/require с потоком, streamWrapper::stream_set_option() будет вызываться с параметром STREAM_OPTION_READ_BUFFER. Для пользовательских потоковых оберток, возможно, потребуется реализация метода streamWrapper::stream_set_option(), чтобы убрать предупреждение (как правило, хватает только возврата FALSE).

Сериализация

Удален формат сериализации o. Поскольку он никогда не используется самим PHP, он только мог нарушить десериализацию строк, созданных вручную.

Константы алгоритма пароля

Идентификаторы алгоритма хеширования паролей теперь обнуляемые строки, а не целые числа.

  • PASSWORD_DEFAULT раньше было целочисленным 1; теперь NULL
  • PASSWORD_BCRYPT раньше было целочисленным 1; теперь строка '2y'
  • PASSWORD_ARGON2I раньше было целочисленным 2; теперь строка 'argon2i'
  • PASSWORD_ARGON2ID раньше было целочисленным 3; теперь строка 'argon2id'

Приложения, правильно использующие константы PASSWORD_DEFAULT, PASSWORD_BCRYPT, PASSWORD_ARGON2I и PASSWORD_ARGON2ID, будут работать как и раньше.

Функция htmlentities()

Функция htmlentities() теперь будет выдавать уведомление (вместо предупреждения уровня E_STRICT), если она используется с кодировкой, для которой поддерживается только преобразование основных символов. В этом случае она эквивалентна использованию htmlspecialchars().

Функции fread() и fwrite()

Функции fread() и fwrite() теперь будут возвращать FALSE, если операция не удалась. Ранее возвращалась пустая строка или 0. К ошибкам EAGAIN/EWOULDBLOCK это не относится.

Эти функции теперь также вызывают уведомление при неудачном выполнении, например, при записи в файловый ресурс, предназначенный только для чтения.

Вычисления с произвольной точностью BCMath

Теперь функции BCMath будут выдавать предупреждения, если передано число с ошибкой, например, "32foo". Подобный аргумент, как и раньше, будет интерпретирован как ноль.

CURL

Попытка сериализации класса CURLFile теперь создаст исключение. Ранее исключение выбрасывалось только при десериализации.

Использование CURLPIPE_HTTP1 объявлено устаревшим, и не будет поддерживаться с версии cURL 7.62.0.

Параметр $version функции curl_version() объявлен устаревшим. Если передается значение, не равное CURLVERSION_NOW по умолчанию, будет вызвано предупреждение, а параметр проигнорирован.

Дата и время

Вызов var_dump() или похожей отладочной функции с экземпляром DateTime или DateTimeImmutable больше не оставляет после своего выполнения доступных свойств.

Сравнение объектов DateInterval (с использованием ==, < и т.д.) теперь создает предупреждение и всегда возвращает FALSE. Ранее все объекты DateInterval считались одинаковыми, если у них не было свойств.

Intl

Значение параметров по умолчанию в функциях idn_to_ascii() и idn_to_utf8() теперь INTL_IDNA_VARIANT_UTS46 вместо устаревшего INTL_IDNA_VARIANT_2003.

MySQLi

Функциональность встроенного сервера была удалена. Она была сломана как минимум с PHP 7.0.

Недокументированное свойство mysqli::$stat было удалено в пользу использования mysqli::stat().

OpenSSL

Функция openssl_random_pseudo_bytes() теперь будет выбрасывать исключение в ситуациях, что и функция random_bytes(). В частности, выбрасывается Error, если количество запрошенных байтов меньше или равно нулю. Исключение Exception выбрасывается, если не получена достаточная случайность. Аргумент $crypto_strong гарантированно всегда будет равен TRUE, если функция ничего не выбрасывает, поэтому явно проверять его не нужно.

Регулярные выражения (совместимые Perl)

При использовании флага PREG_UNMATCHED_AS_NULL, завершающие несовпадающие подмаски теперь будут иметь значение NULL (или [null, -1], если включено сохранение позиции подмаски). Это означает, что размер $matches всегда будет одинаковым.

Объекты данных PHP (PDO)

Попытка сериализовать экземпляр PDO или PDOStatement теперь создаст Exception, а не PDOException, по аналогии с другими внутренними классами, которые не поддерживают сериализацию.

Reflection

Объекты Reflection теперь создают исключение, если попробовать их сериализовать. Сериализация объектов Reflection никогда не поддерживалась и приводила к повреждению объектов Reflection. Сейчас это было явно запрещено.

Стандартная библиотека PHP (SPL)

Вызов get_object_vars() с экземпляром ArrayObject теперь всегда будет возвращать свойства самого ArrayObject (или подкласса). Ранее он возвращал значения упакованного массива/объекта, если не был указан флаг ArrayObject::STD_PROP_LIST.

Другие затронутые операции:

  • ReflectionObject::getProperties()
  • reset(), current() и т.д. Используйте вместо этого методы Iterator.
  • Вероятно, все остальное работает со свойствами объекта при доступе в виде списка.

На приведение типа (array) эти изменения не повлияют. Они по-прежнему возвращают либо упакованный массив, либо свойства ArrayObject, в зависимости от того, используется ли флаг ArrayObject::STD_PROP_LIST.

Метод SplPriorityQueue::setExtractFlags() выбросит исключение, если передан ноль. Ранее это приводило к отлавливаемой фатальной ошибке при следующей операции извлечения.

ArrayObject, ArrayIterator, SplDoublyLinkedList и SplObjectStorage теперь поддерживают __serialize() и __unserialize() в дополнение к интерфейсу Serializable. Поэтому теперь созданные в более старых версиях PHP сериализованные данные, все еще могут быть неверно обработаны. Однако новые созданные сериализованные данные в PHP 7.4, не будут восприниматься в более старых версиях.

Лексер (Tokenizer)

Функция token_get_all() теперь отобразит метку T_BAD_CHARACTER в случае обнаружения непредвиденных символов в потоке меток.


Устаревшая функциональность

Ядро PHP

Вложенные тернарные операторы без явного указания скобок

Во вложенных тернарных операциях должны явно использоваться круглые скобки, чтобы определить порядок операций. Раньше, если скобки явно не заданы, в большинстве случаев левая ассоциативность не приводила к ожидаемому поведению.

<?php
1 ? 2 : 3 ? 4 : 5;   // устарело
(1 ? 2 : 3) ? 4 : 5; // хорошо
1 ? 2 : (3 ? 4 : 5); // хорошо
?>

Обращение к индексу массива и строки через фигурные скобки

Синтаксис доступа к массиву и строке с использованием фигурных скобок объявлен устаревшим. Используйте $var[$idx] вместо $var{$idx}.

Приведение типа (real) и функция is_real()

Приведение типа (real) объявлено устаревшим, вместо этого используйте (float).

Функция is_real() также объявлена устаревшей, вместо нее используйте is_float().

Отмена привязки $this при использовании $this

Отмена привязки $this в нестатическом замыкании, которое использует $this, объявлена устаревшей.

Ключевое слово parent вне родительского класса

Использование parent внутри класса, у которого нет родителя, объявлено устаревшим, а в будущем произойдет ошибка компиляции. А пока ошибка будет только при обращении к родителю во время выполнения.

INI-опция allow_url_include

Конфигурационная директива allow_url_include объявлена устаревшей. При включенной опции будет вызвано уведомление об устаревшей возможности во время загрузки.

Недопустимые символы в основных функциях преобразования

Передача недопустимых символов в base_convert(), bindec(), octdec() теперь вызывает уведомление об устаревшей возможности. Результат все равно будет вычислен так, как если бы недопустимых символов не было. Ведущие и завершающие пробелы, а также префиксы типа 0x (в зависимости от системы счисления) по-прежнему разрешены.

Использование array_key_exists() с объектом

Использование array_key_exists() с объектом объявлено устаревшим. Вместо этого следует использовать либо isset(), либо property_exists().

Функции, связанные с волшебными кавычками

Функции get_magic_quotes_gpc() и get_magic_quotes_runtime() объявлены устаревшими. Они всегда возвращают FALSE.

Функция hebrevc()

Функция hebrevc() объявлена устаревшей. Ее можно заменить на выражение nl2br(hebrev($str)), либо лучше всего использовать поддержку Unicode RTL.

Функция convert_cyr_string()

Функция convert_cyr_string() объявлена устаревшей. Ее можно заменить либо на mb_convert_string(), либо iconv() или на класс UConverter.

Функция money_format()

Функция money_format() объявлена устаревшей. Она может быть заменена функциональностью интернационализации - классом NumberFormatter.

Функция ezmlm_hash()

Функция ezmlm_hash() объявлена устаревшей.

Функция restore_include_path()

Функция restore_include_path() объявлена устаревшей. Ее можно заменить на ini_restore('include_path').

Использование implode с нерекомендуемым порядком параметров

Передача параметров в implode() в обратном порядке объявлена устаревшей - используйте implode($glue, $parts) вместо implode($parts, $glue).

COM

Импорт библиотек типов с регистрацией констант без учета регистра объявлен устаревшим.

Фильтрация

Фильтр FILTER_SANITIZE_MAGIC_QUOTES объявлен устаревшим, вместо него используйте FILTER_SANITIZE_ADD_SLASHES.

Многобайтовые строки

Передача нестрокового шаблона в mb_ereg_replace() объявлена устаревшей. В данный момент нестроковые значения интерпретируются как кодовые точки ASCII. В PHP 8 шаблон будет обрабатываться как строка.

Передача кодировки в качестве 3-го параметра в mb_strrpos() объявлена устаревшей. Вместо этого передавайте позицию как 0, а кодировку в 4-м параметре.

Облегчённый протокол доступа к каталогам (LDAP)

Функции ldap_control_paged_result_response() и ldap_control_paged_result() объявлены устаревшими. Для управления постраничным режимом используйте функцию ldap_search().

Reflection

Вызовы ReflectionType::__toString() теперь создают уведомление об устаревшей возможности. Этот метод объявлен устаревшим в пользу использования ReflectionNamedType::getName() в документации с PHP 7.1, но не выдавал соответствующего уведомления по техническим причинам.

Методы export() у всех классов Reflection объявлены устаревшими. Теперь создавайте объект Reflection и преобразуйте его в строку:

<?php
// Вместо ReflectionClass::export(Foo::class, false) используйте:
echo new ReflectionClass(Foo::class), "\n";

// Вместо $str = ReflectionClass::export(Foo::class, true) используйте:
$str = (string) new ReflectionClass(Foo::class);
?>

Сокеты

Флаги AI_IDN_ALLOW_UNASSIGNED и AI_IDN_USE_STD3_ASCII_RULES для функции socket_addrinfo_lookup() объявлены устаревшими из-за обновления glibc.


Удаленные модули

Следующие модули перемещены в репозиторий PECL и больше не будут поставляться с дистрибутивом PHP. Версии этих модулей в виде пакетов PECL будут создаваться в соответствии с потребностями пользователей.

  • Firebird/Interbase - доступ к базам данных на InterBase и/или Firebird по-прежнему возможен через драйвер PDO Firebird.
  • Recode
  • WDDX


Другие изменения

Улучшения производительности

Ядро PHP

Добавлен специальный опкод виртуальной машины для функции array_key_exists(), который улучшает производительность этой функции, если значение параметра может быть статически разрешено. В коде, использующем пространства имен, возможно потребуется использование абсолютного имени (\array_key_exists()) либо же явный импорт функции.

Регулярные выражения (совместимые с Perl)

Когда функция preg_match() в режиме UTF-8 (модификатор "u") неоднократно вызывается для одной и той же строки (возможно, на различных позициях), проверка правильности UTF-8 будет выполнена только один раз.

Изменения обработки INI-файлов

zend.exception_ignore_args - новая INI-директива для включения или исключения аргументов из трассировок стека, полученных в исключениях.

opcache.preload_user - новая INI-директива для установки пользователя, из-под которого должен выполняться код предварительной загрузки, иначе это будет root (не допускается по соображениям безопасности).

Миграция на pkg-config

Множество модулей теперь используют исключительно pkg-config, чтобы определять зависимости библиотек. Как правило, это означает, что вместо --with-foo-dir=DIR используется только --with-foo . Пользовательские пути к библиотекам могут быть указаны либо путем добавления дополнительных каталогов в PKG_CONFIG_PATH, либо путем явного указания параметров компиляции через FOO_CFLAGS и FOO_LIBS.

Следующие модули и SAPI были затронуты этим изменением:

  • CURL:
    • Опция --with-curl больше не принимает каталог.
  • Enchant:
    • Опция --with-enchant больше не принимает каталог.
  • FPM:
    • Опция --with-fpm-systemd теперь использует только pkg-config для проверок libsystem. Минимальная обязательная версия libsystemd - 209.
  • GD:
    • Опция --with-gd переименована в --enable-gd (должен быть включен модуль или нет), а опция --with-external-gd использует внешнюю библиотеку libgd, вместо той, которая идет в комплекте.
    • Опция --with-png-dir удалена. Наличие libpng теперь обязательно.
    • Опция --with-zlib-dir удалена. Наличие zlib теперь обязательно.
    • Опция --with-freetype-dir переименована в --with-freetype
    • Опция --with-jpeg-dir переименована в --with-jpeg
    • Опция --with-webp-dir переименована в --with-webp
    • Опция --with-xpm-dir переименована в --with-xpm
  • IMAP:
    • Опция --with-kerberos-systemd больше не принимает каталог.
  • Intl:
    • Опция --with-icu-dir удалена. Если передан --enable-intl , тогда всегда требуется наличие libicu.
  • LDAP:
    • Опция --with-ldap-sasl больше не принимает каталог.
  • Libxml:
    • Опция --with-libxml-dir удалена.
    • Опция --enable-libxml переименована в --with-libxml .
    • Опция --with-libexpat-dir переименована в --with-expat и больше не принимает каталог.
  • Litespeed:
    • Опция --with-litespeed переименована в --enable-litespeed .
  • Mbstring:
    • Опция --with-onig удалена. Если --disable-mbregex не укзаан, требуется libonig.
  • ODBC:
    • Опция --with-iodbc больше не принимает каталог.
    • Опция --with-unixODBC без каталога теперь использует pkg-config (предпочтительно). Каталог по-прежнему можно указать для старых версий без libodbc.pc.
  • OpenSSL:
    • Опция --with-openssl больше не принимает каталог.
  • PCRE:
    • Опция --with-pcre-regex удалена. Вместо этого --with-external-pcre позволяет использовать внешнюю PCRE-библиотеку вместо встроенной.
  • PDO_SQLite:
    • Опция --with-pdo-sqlite больше не принимает каталог.
  • Readline:
    • Опция --with-libedit больше не принимает каталог.
  • Sodium:
    • Опция --with-sodium больше не принимает каталог.
  • SQLite3:
    • Опция --with-sqlite3 больше не принимает каталог.
  • XSL:
    • Опция --with-xsl больше не принимает каталог.
  • Zip:
    • Опция --with-libzip удалена.
    • Опция --enable-zip переименована в --with-zip .

Экранирование CSV

fputcsv(),
fgetcsv(),
SplFileObject::fputcsv(),
SplFileObject::fgetcsv() и
SplFileObject::setCsvControl()
теперь принимаем пустую строку в аргументе $escape.
Это отключит проприетарный механизм экранирования PHP.

Поведение функции str_getcsv() было соответствующим образом скорректировано (ранее пустая строка была идентична использованию значения по умолчанию).

Метод SplFileObject::getCsvControl() теперь также может возвращать пустую строку для третьего элемента массива, соответственно.

Фильтрация данных

Модуль filter больше не поддерживает ---with-pcre-dir для Unix-сборок и поэтому может быть спокойно собран для общего пользования с помощью ./configure.

GD

Поведение функции imagecropauto() в встроенной библиотеке libgd было синхронизировано с системной библиотекой libgd:

  • IMG_CROP_DEFAULT в случае неудачного выполнения не заменяется на IMG_CROP_SIDES
  • Пороговое значение кадрирования теперь рассчитывается из алгоритма в системной библиотеке libgd

Значение по умолчанию $mode imagecropauto() было изменено на IMG_CROP_DEFAULT; передача -1 теперь объявлена устаревшей.

imagescale() теперь поддерживает масштабирование с сохранением соотношения сторон до фиксированной высоты при передаче -1 в параметр $new_width.

Фреймворк хеш-кодов HASH

Модуль hash больше нельзя отключить, теперь он является неотъемлемой частью любой PHP-сборки, подобно модулю date.

Intl

Модуль intl теперь требует как минимум ICU 50.1.

Класс ResourceBundle теперь реализует Countable.

Облегченный протокол доступа к каталогам (LDAP)

Поддержка nsldap и umich_ldap была удалена.

Libxml

Все модули на основе libxml теперь требуют libxml версии 2.7.6 или новее.

Многобайтовые строки

Библиотека oniguruma больше не идет в комплекте с PHP, вместо нее в системе должна быть libonig. В качестве альтернативы можно указать ---disable-mbregex , чтобы отключить компонент mbregex.

OPcache

Конфигурационные опции --disable-opcache-file и --enable-opcache-file удалены в пользу использования INI-директивы opcache.file_cache

Хеширование паролей

Функции password_hash() и теперь принимают обнуляемую строку (string) и целое число (integer) в аргументе $algo.

PEAR

Установка PEAR (вместе с PECL) больше не включена по умолчанию. Ее можно явно включить, используя --with-pear . Эта опция объявлена устаревшей и может быть удалена в будущем.

Reflection

Изменены числовые значения констант-модификаторов (IS_ABSTRACT, IS_DEPRECATED, IS_EXPLICIT_ABSTRACT, IS_FINAL, IS_IMPLICIT_ABSTRACT, IS_PRIVATE, IS_PROTECTED, IS_PUBLIC и IS_STATIC) в классах ReflectionClass, ReflectionFunction, ReflectionMethod, ReflectionObject и ReflectionProperty.

SimpleXML

Класс SimpleXMLElement теперь реализует Countable.

SQLite3

Встроенная в сборке библиотека libsqlite удалена. Для сборки модуля SQLite3 теперь требуется libsqlite3 ? 3.7.4. Чтобы собрать модуль PDO_SQLite обязательно требуется libsqlite3 ? 3.5.0.

Сериализация и десериализация SQLite3, SQLite3Stmt и SQLite3Result теперь явно запрещены. Раньше сериализация экземпляров этих классов была возможна, но десериализация делала объекты неиспользуемыми для дальнейшей работы.

Нотацию @param теперь также можно использовать для обозначения параметров SQL-запроса.

Zip

Встроенная библиотека libzip удалена. Теперь обязательно наличие в системе библиотеки libzip >= 0.11, чтобы собрать модуль zip.


Поддержка Windows

Флаги configure

configure теперь учитывает дополнительные переменные окружения CFLAGS и LDFLAGS.

Обработка CTRL

Комбинации клавиш CTRL+C и CTRL+BREAK в командной строке можно перехватить, установив функцию-обработчик с помощью sapi_windows_set_ctrl_handler().

Функции proc_open() на Windows может быть передана опция "create_process_group". Это нужно, если дочерний процесс должен обрабатывать события CTRL.

OPcache

OPcache теперь поддерживает произвольное количество отдельных кешей на каждого пользователя с помощью INI-директивы opcache.cache_id. Все процессы с одинаковым идентификатором кеша и пользователем используют один и тот же экземпляр OPcache.

stat

Улучшена реализация stat.

  • Передается номер индексного дескриптора (inode), который опирается на индекс файла в NTFS.
  • Номер устройства теперь исходит из серийного номера тома.

Обратите внимание, что на 64-битных системах оба значения извлекаются из системы в исходном виде. В 32-разрядных системах эти значения фиктивные, потому что могут превышать максимальное 32-разрядное целое число, разрешенное в PHP.

libsqlite3

libsqlite3 больше не компилируется статически в php_sqlite3.dll и php_pdo_sqlite.dll, но доступен как libsqlite3.dll. Обратитесь к инструкции по установке для SQLite3 и PDO_SQLITE соответственно.


Миграция с PHP 7.2.x на PHP 7.3.x

Содержание

  • Новые возможности
  • Новые функции
  • Новые глобальные константы
  • Изменения, ломающие обратную совместимость
  • Функционал, объявленный устаревшим в PHP 7.3.x
  • Прочие изменения
  • Поддержка Windows

Эта обновлённая версия приносит с собой ряд новых возможностей и несколько несовместимостей, которые должны быть проверены до смены версии в производственной среде.

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.4.x, 5.5.x, 5.6.x, 7.0.x, 7.1.x и 7.2.x.


Новые возможности

Ядро PHP

Более гибкий синтаксис Heredoc и Nowdoc

После закрывающего идентификатора в doc-строках больше не нужно ставить точку с запятой или новую строку. Кроме того, закрывающий идентификатор может быть с отступом, и в этом случае он будет удален из всех строк в doc-строке.

Деструктурирование массива поддерживает присвоение по ссылкам

Деструктурирование массива теперь поддерживает присвоение по ссылкам с помощью синтаксиса [&$a, [$b, &$c]] = $d. То же самое поддерживается и для list().

Оператор instanceof принимает литералы

Оператор instanceof теперь поддерживает литералы в качестве первого операнда, и в этом случае результат будет всегда FALSE.

Исключение CompileError вместо некоторых ошибок компиляции

Добавлено новое исключение CompileError, которое наследуется от ParseError. Небольшое количество ошибок компиляции теперь будет выбрасывать CompileError вместо создания фатальной ошибки. В настоящее время это влияет только на ошибки компиляции, которые могут быть созданы token_get_all() в режиме TOKEN_PARSE, но в будущем может быть преобразовано больше ошибок.

В вызовах разрешена завершающая запятая

Завершающие запятые в вызовах функций и методов теперь разрешены.

Поддержка Argon2id

С аргументом --with-password-argon2[=dir] скрипта configure теперь поддерживаются оба хеша, как Argon2i, так и Argon2id, в функциях password_hash(), password_verify(), password_get_info() и password_needs_rehash(). Пароли могут быть хешированы и проверены, используя константу PASSWORD_ARGON2ID. Поддержка обоих алгоритмов Argon2i и Argon2id в функциях семейства password_*() теперь требует, чтобы PHP был скомпилирован с библиотекой libargon2 версии ? 20161029.

Менеджер процессов FastCGI

Для настройки логирования FPM были добавлены новые опции:

log_limit
Эта глобальная опция может использоваться для установки лимита логирования для строки логирования, позволяющая записывать сообщения длиной более 1024 символов без переноса. Также исправляет различные проблемы с упаковкой (wrapping).
log_buffering
Этот глобальная опция позволяет вести экспериментальное логирование без дополнительной буферизации.
decorate_workers_output
Этот вариант пула позволяет отключить отметку вывода (output decoration) для обработчиков, когда catch_workers_output включена.

Функции BC Math

Функция bcscale() теперь также может использоваться как геттер для извлечения текущего используемого масштаба.

Облегчённый протокол доступа к каталогам (LDAP)

Была добавлена полная поддержка LDAP Controls к функциям запросов LDAP и ldap_parse_result():

  • Добавлен параметр $serverctrls для отправки управления серверу
в функциях ldap_add(),
ldap_mod_replace(), ldap_mod_add(),
ldap_mod_del(), ldap_rename(),
ldap_compare(), ldap_delete(),
ldap_modify_batch(),
ldap_search(), ldap_list() и
ldap_read().
  • Добавлен параметр $serverctrls для получения управления с сервера в функции ldap_parse_result().
  • Поддержка LDAP_OPT_SERVER_CONTROLS и LDAP_OPT_CLIENT_CONTROLS в функциях ldap_get_option() и ldap_set_option() была исправлена.

Функции мультибайтовых строк

Полная поддержка case-mapping и case-folding

Добавлен поддержка полного процесса преобразования регистра символов (case-mapping) и сравнение на идентичность разных регистров (case-folding). В отличие от простого case-mapping, полный case-mapping может изменить длину строки. Пример:

<?php
mb_strtoupper("Stra?e");
// Выведет STRA?E в PHP 7.2
// Выведет STRASSE в PHP 7.3
?>
Различные режимы преобразования и сравнения регистра символов доступны в функции mb_convert_case():
  • MB_CASE_LOWER (используется mb_strtolower())
  • MB_CASE_UPPER (используется mb_strtoupper())
  • MB_CASE_TITLE
  • MB_CASE_FOLD
  • MB_CASE_LOWER_SIMPLE
  • MB_CASE_UPPER_SIMPLE
  • MB_CASE_TITLE_SIMPLE
  • MB_CASE_FOLD_SIMPLE (используется нечувствительными к регистру операциями)
Выполняет только безусловный, независимый от языка, полный процесс преобразования.

Операции, нечувствительные к регистру используют case-folding

Строковые операции без учета регистра теперь используют case-folding вместо case-mapping регистра при сравнении. Это означает, что теперь больше символов будут считаться (без учета регистра) равными.

MB_CASE_TITLE выполняет преобразование title-case

Функция mb_convert_case() с MB_CASE_TITLE теперь выполняет преобразование title-case в зависимости от свойств Unicode, основанных на Cased и CaseIgnorable. В частности, это также улучшает обработку кавычек и апостофов.

Поддержка Unicode 11

Таблицы данных мультибайтовых строк были обновлены до Юникода версии 11.

Поддержка больших строк

Функции мультибайтовых строк теперь корректно поддерживают строки размером более 2 Гб.

Улучшение производительности

Производительность модуля мультибайтовых строк была значительно повсеместно улучшена. Самые большие улучшения в функциях преобразования регистра.

Поддержка именованных фрагментов

Функции mb_ereg_* теперь поддерживают именованные фрагменты. Соответствующие функции, такие как mb_ereg(), теперь будут возвращать именованные фрагменты как с их номером группы, так и с их именем, аналогично PCRE:

<?php
mb_ereg('(?<word>\w+)', '?', $matches);
// => [0 => "?", 1 => "?", "word" => "?"];
?>
Кроме того, функция mb_ereg_replace() теперь поддерживает обозначения \k<> и \k'' для ссылки на именованные фрагменты в заменяющей строке:
<?php
mb_ereg_replace('\s*(?<word>\w+)\s*', "_\k<word>_\k'word'_", ' foo ');
// => "_foo_foo_"
?>
\k<> и \k'' также могут использоваться для нумерованных ссылок, которые также работают с номерами групп больше 9.

Readline

В функции readline_info() добавлена поддержка параметров completion_append_character и completion_suppress_append. Эти опции доступны, только если PHP скомпилирован с библиотекой libreadline (а не libedit).


Новые функции

Ядро PHP

  • array_key_first()
  • array_key_last()
  • gc_status()
  • hrtime()
  • is_countable()
  • net_get_interfaces()

Менеджер процессов FastCGI

  • fpm_get_status()

Дата и время

  • DateTime::createFromImmutable()

Вычисления с увеличенной точностью (GNU Multiple Precision)

  • gmp_binomial()
  • gmp_kronecker()
  • gmp_lcm()
  • gmp_perfect_power()

Функции интернационализации

  • Normalizer::getRawDecomposition()
  • normalizer_get_raw_decomposition()
  • Spoofchecker::setRestrictionLevel()

Облегчённый протокол доступа к каталогам (LDAP)

  • ldap_add_ext()
  • ldap_bind_ext()
  • ldap_delete_ext()
  • ldap_exop_refresh()
  • ldap_mod_add_ext()
  • ldap_mod_replace_ext()
  • ldap_mod_del_ext()
  • ldap_rename_ext()

OpenSSL

  • openssl_pkey_derive()

Сокеты

  • socket_wsaprotocol_info_export()
  • socket_wsaprotocol_info_import()
  • socket_wsaprotocol_info_release()


Новые глобальные константы

Ядро PHP

  • PASSWORD_ARGON2ID

Библиотека Client URL (cURL)

  • CURLAUTH_BEARER
  • CURLAUTH_GSSAPI
  • CURLE_WEIRD_SERVER_REPLY
  • CURLINFO_APPCONNECT_TIME_T
  • CURLINFO_CONNECT_TIME_T
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
  • CURLINFO_CONTENT_LENGTH_UPLOAD_T
  • CURLINFO_FILETIME_T
  • CURLINFO_HTTP_VERSION
  • CURLINFO_NAMELOOKUP_TIME_T
  • CURLINFO_PRETRANSFER_TIME_T
  • CURLINFO_PROTOCOL
  • CURLINFO_PROXY_SSL_VERIFYRESULT
  • CURLINFO_REDIRECT_TIME_T
  • CURLINFO_SCHEME
  • CURLINFO_SIZE_DOWNLOAD_T
  • CURLINFO_SIZE_UPLOAD_T
  • CURLINFO_SPEED_DOWNLOAD_T
  • CURLINFO_SPEED_UPLOAD_T
  • CURLINFO_STARTTRANSFER_TIME_T
  • CURLINFO_TOTAL_TIME_T
  • CURL_LOCK_DATA_CONNECT
  • CURL_LOCK_DATA_PSL
  • CURL_MAX_READ_SIZE
  • CURLOPT_ABSTRACT_UNIX_SOCKET
  • CURLOPT_DISALLOW_USERNAME_IN_URL
  • CURLOPT_DNS_SHUFFLE_ADDRESSES
  • CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
  • CURLOPT_HAPROXYPROTOCOL
  • CURLOPT_KEEP_SENDING_ON_ERROR
  • CURLOPT_PRE_PROXY
  • CURLOPT_PROXY_CAINFO
  • CURLOPT_PROXY_CAPATH
  • CURLOPT_PROXY_CRLFILE
  • CURLOPT_PROXY_KEYPASSWD
  • CURLOPT_PROXY_PINNEDPUBLICKEY
  • CURLOPT_PROXY_SSLCERT
  • CURLOPT_PROXY_SSLCERTTYPE
  • CURLOPT_PROXY_SSL_CIPHER_LIST
  • CURLOPT_PROXY_SSLKEY
  • CURLOPT_PROXY_SSLKEYTYPE
  • CURLOPT_PROXY_SSL_OPTIONS
  • CURLOPT_PROXY_SSL_VERIFYHOST
  • CURLOPT_PROXY_SSL_VERIFYPEER
  • CURLOPT_PROXY_SSLVERSION
  • CURLOPT_PROXY_TLS13_CIPHERS
  • CURLOPT_PROXY_TLSAUTH_PASSWORD
  • CURLOPT_PROXY_TLSAUTH_TYPE
  • CURLOPT_PROXY_TLSAUTH_USERNAME
  • CURLOPT_REQUEST_TARGET
  • CURLOPT_SOCKS5_AUTH
  • CURLOPT_SSH_COMPRESSION
  • CURLOPT_SUPPRESS_CONNECT_HEADERS
  • CURLOPT_TIMEVALUE_LARGE
  • CURLOPT_TLS13_CIPHERS
  • CURLPROXY_HTTPS
  • CURLSSH_AUTH_GSSAPI
  • CURL_SSLVERSION_MAX_DEFAULT
  • CURL_SSLVERSION_MAX_NONE
  • CURL_SSLVERSION_MAX_TLSv1_0
  • CURL_SSLVERSION_MAX_TLSv1_1
  • CURL_SSLVERSION_MAX_TLSv1_2
  • CURL_SSLVERSION_MAX_TLSv1_3
  • CURL_SSLVERSION_TLSv1_3
  • CURL_VERSION_ALTSVC (начиная с PHP 7.3.6)
  • CURL_VERSION_ASYNCHDNS
  • CURL_VERSION_BROTLI
  • CURL_VERSION_CONV
  • CURL_VERSION_CURLDEBUG (начиная с PHP 7.3.6)
  • CURL_VERSION_DEBUG
  • CURL_VERSION_GSSAPI
  • CURL_VERSION_GSSNEGOTIATE
  • CURL_VERSION_HTTPS_PROXY
  • CURL_VERSION_IDN
  • CURL_VERSION_LARGEFILE
  • CURL_VERSION_MULTI_SSL
  • CURL_VERSION_NTLM
  • CURL_VERSION_NTLM_WB
  • CURL_VERSION_PSL (начиная с PHP 7.3.6)
  • CURL_VERSION_SPNEGO
  • CURL_VERSION_SSPI
  • CURL_VERSION_TLSAUTH_SRP

Фильтрация данных

  • FILTER_SANITIZE_ADD_SLASHES

Объектная нотация JavaScript (JSON)

  • JSON_THROW_ON_ERROR

Облегчённый протокол доступа к каталогам (LDAP)

  • LDAP_CONTROL_ASSERT
  • LDAP_CONTROL_MANAGEDSAIT
  • LDAP_CONTROL_PROXY_AUTHZ
  • LDAP_CONTROL_SUBENTRIES
  • LDAP_CONTROL_VALUESRETURNFILTER
  • LDAP_CONTROL_PRE_READ
  • LDAP_CONTROL_POST_READ
  • LDAP_CONTROL_SORTREQUEST
  • LDAP_CONTROL_SORTRESPONSE
  • LDAP_CONTROL_PAGEDRESULTS
  • LDAP_CONTROL_AUTHZID_REQUEST
  • LDAP_CONTROL_AUTHZID_RESPONSE
  • LDAP_CONTROL_SYNC
  • LDAP_CONTROL_SYNC_STATE
  • LDAP_CONTROL_SYNC_DONE
  • LDAP_CONTROL_DONTUSECOPY
  • LDAP_CONTROL_PASSWORDPOLICYREQUEST
  • LDAP_CONTROL_PASSWORDPOLICYRESPONSE
  • LDAP_CONTROL_X_INCREMENTAL_VALUES
  • LDAP_CONTROL_X_DOMAIN_SCOPE
  • LDAP_CONTROL_X_PERMISSIVE_MODIFY
  • LDAP_CONTROL_X_SEARCH_OPTIONS
  • LDAP_CONTROL_X_TREE_DELETE
  • LDAP_CONTROL_X_EXTENDED_DN
  • LDAP_CONTROL_VLVREQUEST
  • LDAP_CONTROL_VLVRESPONSE

Мультибайтовые строки

  • MB_CASE_FOLD
  • MB_CASE_LOWER_SIMPLE
  • MB_CASE_UPPER_SIMPLE
  • MB_CASE_TITLE_SIMPLE
  • MB_CASE_FOLD_SIMPLE

OpenSSL

  • STREAM_CRYPTO_PROTO_SSLv3
  • STREAM_CRYPTO_PROTO_TLSv1_0
  • STREAM_CRYPTO_PROTO_TLSv1_1
  • STREAM_CRYPTO_PROTO_TLSv1_2

PostgreSQL

  • PGSQL_DIAG_SCHEMA_NAME
  • PGSQL_DIAG_TABLE_NAME
  • PGSQL_DIAG_COLUMN_NAME
  • PGSQL_DIAG_DATATYPE_NAME
  • PGSQL_DIAG_CONSTRAINT_NAME
  • PGSQL_DIAG_SEVERITY_NONLOCALIZED


Изменения, ломающие обратную совместимость

Ядро PHP

Интерпретация закрывающего идентификатора Heredoc/Nowdoc

Благодаря введению гибкого синтаксиса heredoc/nowdoc, doc-строки, содержащие закрывающие идентификаторы внутри своего тела, могут вызвать синтаксические ошибки или изменения в интерпретации. Пример:

<?php
$str = <<<FOO
abcdefg
   FOO
FOO;
?>
С отступом FOO ранее не имел особого значения. Теперь он будет интерпретироваться как конец heredoc-строки и следующий FOO; приведет к синтаксической ошибке. Эта проблема всегда может быть решена путем выбора закрывающего идентификатора, который не используется в содержимом строки.

Генерирование предупреждения в continue, используемом в switch

Выражения continue, используемые в структурах управления потока switch теперь будет выдавать предупреждение. В PHP такие выражения continue эквиваленты break, в то время, как в других языках они ведут себя как continue 2.

<?php
while ($foo) {
    switch ($bar) {
      case "baz":
         continue;
         // Предупреждение: "continue" эквивалентен
         //          "break". Возможно, вы имели в виду "continue 2"?
   }
}
?>

Строгая интепретация целых строковых ключей на ArrayAccess

Доступ к массиву типа $obj["123"], где $obj реализует ArrayAccess, а "123" - это целочисленный строковый литерал, больше не приведет к неявному преобразованию в целое число, т.е. $obj->offsetGet("123") вместо $obj->offsetGet(123). Это соответствует существующему поведению для нелитеральных значений. Поведение массивов никак не изменилось, они продолжают неявно преобразовывать целые строковые ключи в целые числа.

Статические свойства больше не разделяются присвоением по ссылке

В PHP статические свойства совместно используются наследующими классами, если статическое свойство явно не переопределено в дочернем классе. Однако из-за ошибки реализации можно было отделить статические свойства, присвоив их по ссылке. Эта лазейка была исправлена.

<?php
class Test {
    public static $x = 0;
}
class Test2 extends Test { }

Test2::$x = &$x;
$x = 1;

var_dump(Test::$x, Test2::$x);
// Ранее:  int(0), int(1)
// Теперь: int(1), int(1)
?>

Ссылки, возвращаемые при доступе к массиву или свойству немедленно распаковываются

Ссылки, возвращаемые доступом к массиву и свойству, теперь распаковываются как часть доступа. Это означает, что больше невозможно изменить ссылку между доступом и использованием доступного значения:

<?php
$arr = [1];
$ref =& $arr[0];
var_dump($arr[0] + ($arr[0] = 2));
// Ранее: int(4), Теперь: int(3)
?>
Это делает поведение ссылок и без ссылок согласованным. Обратите внимание, что чтение и запись значения внутри одного выражения остается неопределенным поведением и может измениться в будущем.

Распаковка аргумента со значением Traversable с нечисловыми ключами больше не поддерживается

Распаковка аргументов перестала работать со значением Traversable с нечисловыми ключами. Следующий код работает в PHP 5.6-7.2 по ошибке.

<?php
function foo(...$args) {
    var_dump($args);
}
function gen() {
    yield 1.23 => 123;
}
foo(...gen());
?>

Разное

Утилита ext_skel была полностью переработана с новыми опциями, а некоторые старые опции удалены. Теперь она написана на PHP и не имеет внешних зависимостей.

Поддержка BeOS была прекращена.

Исключения, выброшенные из-за автоматического преобразования предупреждений в исключения в режиме EH_THROW (например, некоторые исключения DateTime), больше не заполняют состояние error_get_last(). Таким образом, они теперь работают так же, как вручную выброшенные исключения.

Исключение TypeError теперь указывает на правильные типы int и bool вместо integer и boolean, соответственно.

Про неопределенные переменные, переданные в compact(), теперь будет сообщено уведомлением.

Функция getimagesize() и связанные с ней функции теперь сообщают mime-типы изображений BMP как image/bmp вместо image/x-ms-bmp, поскольку первый зарегистрирован в IANA (см. » RFC 7903).

Функция stream_socket_get_name() теперь возвращает адреса IPv6, заключенные в квадратные скобки. Например, будет возвращена строка "[::1]:1337" вместо "::1:1337".

Произвольной точности математика BCMath

Все предупреждения, выброшенные функциями BCMath, теперь используют обработку ошибок PHP. Раньше некоторые предупреждения были непосредственно отправлены в поток stderr.

Функции bcmul() и bcpow() теперь возвращают числа с запрошенным масштабом. Раньше возвращаемые числа могли опускать завершающие десятичные нули.

IMAP, POP3 и NNTP

Логины rsh/ssh по умолчанию отключены. Используйте imap.enable_insecure_rsh, если вы хотите включить их. Обратите внимание, что библиотека IMAP не фильтрует имена почтовых ящиков перед передачей их команде rsh/ssh, таким образом, передача ненадежных данных этой функции с включенным rsh/ssh небезопасна.

Мультибайтовые строки

Из-за дополнительной поддержки именованных фрагментов, паттерны mb_ereg_*() с использованием именованных фрагментов будут вести себя по-разному. В частности, именованные фрагменты будут частью совпадений, а mb_ereg_replace() будет интерпретировать дополнительный синтаксис. Смотрите Именованные фрагменты для получения дополнительной информации.

Улучшенный модуль MySQL

Подготовленные запросы теперь правильно указывают на дробные секунды для столбцов DATETIME, TIME и TIMESTAMP с указателем десятичных знаков (например, TIMESTAMP(6) при использовании микросекунд). Раньше часть дробных секунд была просто опущена из возвращаемых значений.

Функции MySQL (PDO_MYSQL)

Подготовленные запросы теперь правильно указывают на дробные секунды для столбцов DATETIME, TIME и TIMESTAMP со спецификатором десятичных знаков (например, TIMESTAMP(6) при использовании микросекунд). Ранее, дробная часть секунд была просто опущена из возвращаемых значений. Обратите внимание, что это влияет только на использование PDO_MYSQL с отключенной эмуляцией подготовленных запросов (например, с использованием нативной функциональности). Запросы, использующие соединения, у которых задана опция PDO::ATTR_EMULATE_PREPARES=TRUE (значение по умолчанию), не были затронуты данным исправлением ошибки и уже получали корректные значения долей секунды от движка.

Reflection

Экспорт объектов Reflection в строку теперь использует int) и bool) вместо integer and boolean, соответственно.

Стандартная библиотека PHP (SPL)

Если автозагрузчик SPL выбрасывает исключение, последующие автозагрузчики не будут выполняться. Раньше все автозагрузчики выполнялись, а исключения объединялись в цепочку вызовов.

SimpleXML

Математические операции, включающие объекты SimpleXML, теперь будут обрабатывать текст как целое число (integer) или число с плавающей точкой (float), в зависимости от того, что является более подходящим. Ранее значения обрабатывались как целые числа (integer) без каких-либо условий.


Функционал, объявленный устаревшим в PHP 7.3.x

Ядро PHP

Нечуствительные к регистру константы

Объявление регистронезависимых констант объявлено устаревшим. Передача TRUE в качестве третьего параметра функции define() теперь сгенерирует предупреждение об устаревшей возможности. Использование нечувствительных к регистру констант в случае, когда они отличаются от объявления, также устарело.

Использование assert() внутри пространств имен

Объявление функции с именем assert() внутри пространства имен объявлено устаревшим. Функция assert() подвержена специальной обработке движком, что может привести к несогласованному поведению при определении функции в пространстве имен с тем же именем.

Поиск строк для нестрочного параметра needle

Передача нестрокового параметра needle в строковые функции поиска объявлено устаревшим. В будущем данный параметр будет интерпретироваться как строка, а не как точка кода ASCII. В зависимости от предполагаемого поведения необходимо либо явно привести параметр к строке, либо выполнить явный вызов chr(). Затронуты следующие функции:

  • strpos()
  • strrpos()
  • stripos()
  • strripos()
  • strstr()
  • strchr()
  • strrchr()
  • stristr()

Изменения в удалении тегов

Функция fgetss() и фильтр потока string.strip_tags объявлены устаревшим. Это также влияет на метод SplFileObject::fgetss() и на функцию gzgetss().

Фильтрация данных

Явное использование констант FILTER_FLAG_SCHEME_REQUIRED и FILTER_FLAG_HOST_REQUIRED теперь объявлено устаревшим; так или иначе, они подразумевают использование FILTER_VALIDATE_URL.

Обработка изображений и GD

Функция image2wbmp() объявлена устаревшей.

Функции интернационализации

Использование Normalizer::NONE вызывает предупреждение об устаревшем поведении, если PHP не скомпилирован с ICU версии ? 56.

Мультибайтовые строки

Следующие недокументированные псевдонимы mbereg_*() объявлены устаревшими. Вместо этого используйте соответствующие варианты mb_ereg_*().

  • mbregex_encoding()
  • mbereg()
  • mberegi()
  • mbereg_replace()
  • mberegi_replace()
  • mbsplit()
  • mbereg_match()
  • mbereg_search()
  • mbereg_search_pos()
  • mbereg_search_regs()
  • mbereg_search_init()
  • mbereg_search_getregs()
  • mbereg_search_getpos()
  • mbereg_search_setpos()

Функции ODBC и DB2 (PDO_ODBC)

Настройка ini-файла pdo_odbc.db2_instance_name официально объявлено устаревшим. Опция устарела в документации, начиная с PHP 5.1.1.


Прочие изменения

Ядро PHP

Функция set(raw)cookie принимает аргумент $option

Функции setcookie() и setrawcookie() теперь также поддерживают следующее объявление (сигнатуру):

setcookie ( string $name [, string $value = "" [, array $options = [] ]] ) : bool
где $options - ассоциативный массив, который может иметь любой из ключей "expires", "path", "domain", "secure", "httponly" и "samesite".

Новые ini-директивы syslog

Следующие ini-директивы добавлены для настройки логирования, если для опции error_log установлено значение syslog:

syslog.facility
Указывает тип программы, регистрирующей сообщение.
syslog.filter
Задает тип фильтра для фильтрации сообщений. Поддерживаются три типа фильтров - all, no-ctrl и ascii.
syslog.ident
Задает строку ident, добавляемую перед каждым сообщением.

Сборщик мусора

Улучшен сбор циклических ссылок, что может привести к значительным улучшениям производительности.

Разное

Функция var_export() теперь экспортирует объекты stdClass в качестве массива, приведенных к объекту ((object) array( ... )), вместо использования несуществующего метода stdClass::__setState().

Функция debug_zval_dump() изменена для отображения рекурсивных массивов и объектов так же, как и var_dump(). Теперь она не отображает их дважды.

Функции array_push() и array_unshift() теперь также могут быть вызваны с одним аргументом, что особенно удобно в сочетании с оператором распространения.

Интерактивный отладчик PHP

Удалены неиспользуемые константы PHPDBG_FILE, PHPDBG_METHOD, PHPDBG_LINENO и PHPDBG_FUNC.

Менеджер процессов FastCGI

Теперь также доступна функция getallheaders().

Библиотека Client URL (cURL)

Теперь требуется библиотека libcurl версии ? 7.15.5.

Фильтрация данных

FILTER_VALIDATE_FLOAT теперь также поддерживает параметр thousand, который определяет набор разрешенных символов-разделителей для тысяч. Значение по умолчанию ("',.") полностью обратно совместимо с предыдущими версиями PHP.

FILTER_SANITIZE_ADD_SLASHES был добавлен в качестве псевдонима фильтра magic_quotes (FILTER_SANITIZE_MAGIC_QUOTES). Фильтр magic_quotes подлежит удалению в будущих версиях PHP.

FTP

Режим по умолчанию изменен на binary.

Функции интернационализации

Константа Normalizer::NONE объявлена устаревшей, когда PHP скомпилирован с ICU версии ? 56.

Введена константа Normalizer::FORM_KC_CF в качестве аргумента Normalizer::normalize() для нормализации NFKC_Casefold; доступна, когда есть ICU ? 56.

Объектная нотация JavaScript (JSON)

Добавлен новый флаг JSON_THROW_ON_ERROR, который можно использовать с json_decode() или json_encode() и заставляет эти функции выбрасывать новое исключение JsonException при ошибке, вместо того, чтобы устанавливать глобальное состояние ошибки, которое извлекается с помощью json_last_error() и json_last_error_msg(). JSON_PARTIAL_OUTPUT_ON_ERROR имеет приоритет над JSON_THROW_ON_ERROR.

Мультибайтовые строки

Конфигурационная опция --with-libmbfl больше недоступна.

ODBC (Unified)

Поддержка ODBCRouter и Birdstep, включая ini-директиву birdstep.max_links была удалена.

OPcache

Удалена ini-директива opcache.inherited_hack. Это значение уже игнорировалось с PHP 5.3.0.

OpenSSL

Добавлены опции потока ssl min_proto_version и max_proto_version, а также соответствующие с ними константы для возможных значений протокола TLS.

Регулярные выражения (совместимые с Perl)

Расширение PCRE было обновлено до PCRE2, что может привести к незначительным изменениям в поведении (например, диапазоны символов в классах теперь интерпретируются более строго) и дополняет существующий синтаксис регулярных выражений.

Функция preg_quote() теперь также экранирует символ '#'.

Microsoft SQL Server и функции Sybase (PDO_DBLIB)

Добавлен атрибут PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS для автоматического пропуска пустых наборов строк.

Добавлен атрибут PDO::DBLIB_ATTR_TDS_VERSION который представляет версию TDS.

Столбцы DATETIME2 теперь обрабатываются как столбцы DATETIME.

Функции SQLite (PDO_SQLITE)

Базы данных SQLite3 теперь можно открыть в режиме только для чтения, установив новый атрибут PDO::SQLITE_ATTR_OPEN_FLAGS на значение PDO::SQLITE_READONLY.

Обработка сессий

Функция session_set_cookie_params() теперь также поддерживает следующее объявление (сигнатуру):

session_set_cookie_params ( array $options ) : bool
где $options - ассоциативный массив, который может иметь любой из ключей "lifetime", "path", "domain", "secure", "httponly" и "samesite". Соответственно, возвращаемое значение session_get_cookie_params() теперь также имеет элемент с ключом "samesite". Кроме того, новая ini-опция session.cookie_samesite для установки по умолчанию директивы SameSite для cookies. По умолчанию используется значение "" (пустая строка), поэтому директива SameSite не задана. Может быть установлена на значение "Lax" или "Strict", которое устанавливает соответствующее значение директиве SameSite.

Tidy

Сборка вместе » tidyp теперь также поддерживается прозрачно. Поскольку tidyp не предлагает API для получения даты релиза, tidy_get_release() и tidy::getRelease() возвращает значение 'unknown' в этом случае.

XML-парсер

Возвращаемое значение callback-функции xml_set_external_entity_ref_handler() больше не игнорируется, если модуль был собран с библиотекой libxml. Ранее возвращаемое значение игнорировалось, а парсинг никогда не прекращался.

Zip

Сборка с использованием libzip, входящего в PHP, не рекомендуется, но все же возможна путем добавления --without-libzip в конфигурацию.

Сжатие Zlib

Добавлен параметр контекста zlib/level для обертки compress.zlib, чтобы облегчить установку желаемого уровня сжатия.


Поддержка Windows

Ядро PHP

Удаление файлов, соответствующих POSIX

По умолчанию файловые дескрипторы открываются в режиме общего чтения/записи/удаления. Это эффективно сопоставляет семантику POSIX и позволяет удалять файлы с используемыми дескрипторами. Это не полностью то же самое, поскольку некоторые различия платформы по-прежнему остаются. После удаления запись filename блокируется до тех пор, пока все открытые дескрипторы к ней не будут закрыты.


Миграция с PHP 7.1.x на PHP 7.2.x

Содержание

  • Новые возможности
  • Новые функции
  • Новые глобальные константы
  • Изменения, ломающие обратную совместимость
  • Функционал, объявленный устаревшим в PHP 7.2.x
  • Прочие изменения

Эта обновлённая версия приносит с собой ряд новых возможностей и несколько несовместимостей, которые должны быть проверены до смены версии в производственной среде.

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.4.x, 5.5.x, 5.6.x, 7.0.x и 7.1.x.


Новые возможности

Новый тип object

Был введен новый тип, object, который может использоваться в передаваемых параметрах (контравариантность) и возвращаемых значениях (ковариантность) для любых объектов.

<?php

function test(object $obj) : object
{
    return new SplQueue();
}

test(new StdClass());

Загрузка модуля по имени

Для подгружаемых модулей больше не требуется указание расширения файла (.so для Unix или .dll для Windows). Это допускается в файле php.ini, а также в функции dl().

Разрешено переопределение абстрактных методов

Абстрактные методы теперь можно переопределить, в случаях когда абстрактный класс наследуется от другого абстрактного класса.

<?php

abstract class A
{
    abstract function test(string $s);
}
abstract class B extends A
{
    // переопределён - всё ещё сохраняя контравариантность для параметров и ковариантность для возвращаемых значений
    abstract function test($s) : int;
}

Sodium теперь является основным модулем

Современная криптографическая библиотека Sodium теперь стала основным модулем в PHP (как модуль sodium).

Смотрите раздел Sodium для получения полной информации.

Добавлено хеширование пароля с помощью Argon2

Был добавлен алгоритм Argon2 в API хеширования пароля, где доступны следующие константы:

  • PASSWORD_ARGON2I
  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST
  • PASSWORD_ARGON2_DEFAULT_TIME_COST
  • PASSWORD_ARGON2_DEFAULT_THREADS

Расширенные типы строк для PDO

Тип строки PDO был расширен для поддержки национальных наборов символов при эмуляции подготавливаемых запросов. Добавлены новые константы:

  • PDO::PARAM_STR_NATL
  • PDO::PARAM_STR_CHAR
  • PDO::ATTR_DEFAULT_STR_PARAM

Эти константы используется в побитовом OR с константой PDO::PARAM_STR:

<?php

$db->quote('uber', PDO::PARAM_STR | PDO::PARAM_STR_NATL);

Дополнительная отладочная информация при эмуляции подготавливаемых запросов в PDO

Метод PDOStatement::debugDumpParams() был обновлён, чтобы включить SQL до отправки в БД, где будет показан полный необработанный запрос (включая заменённые параметры с их связанными значениями). Это было добавлено для помощи в отладке эмуляции подготавливаемых запросов (и поэтому это будет доступно только при включенной эмуляции подготавливаемых запросов).

Поддержка расширенных операций в LDAP

Была добавлена поддержка EXOP в модуль LDAP. Стали доступны следующие функции и константы:

  • ldap_parse_exop()
  • ldap_exop()
  • ldap_exop_passwd()
  • ldap_exop_whoami()
  • LDAP_EXOP_START_TLS
  • LDAP_EXOP_MODIFY_PASSWD
  • LDAP_EXOP_REFRESH
  • LDAP_EXOP_WHO_AM_I
  • LDAP_EXOP_TURN

Информация об адресе в модуле сокетов

Модуль сокетов теперь имеет возможность искать адресную информацию, а также подключаться к ней, связываться с ней и объяснять её. Для этого были добавлены следующие четыре функции:

  • socket_addrinfo_lookup()
  • socket_addrinfo_connect()
  • socket_addrinfo_bind()
  • socket_addrinfo_explain()

Расширение типа параметра

Типы параметров из переопределённых методов и реализаций интерфейсов теперь могут быть опущены. Это всё ещё соответствует LSP, так как параметры типов контравариантны.

<?php

interface A
{
    public function Test(array $input);
}

class B implements A
{
    public function Test($input){} // тип параметра не указан $input
}

Разрешена завершающая запятая для сгруппированных пространств имён

Завершающая запятая теперь может быть добавлена в синтаксис группировки use, появившегося в PHP 7.0.

<?php

use Foo\Bar\{
    Foo,
    Bar,
    Baz,
};

Поддержка proc_nice() для Windows

Функция proc_nice() теперь поддерживается в Windows.

Поддержка порядка байт в pack() и unpack()

Функции pack() и unpack() теперь поддерживают типы float и double как в прямом, так и в обратном порядке байт.

Улучшения в модуле EXIF

Модуль EXIF обновлен для поддержки большего числа форматов. Это означает, что специфичные теги правильно обрабатываются при разборе изображений функцией exif_read_data(). Новые поддерживаемые форматы:

  • Samsung
  • DJI
  • Panasonic
  • Sony
  • Pentax
  • Minolta
  • Sigma/Foveon
  • AGFA
  • Kyocera
  • Ricoh
  • Epson

Функции exif_read_data() и exif_thumbnail() теперь принимают потоки в качестве своих первых аргументов.

Новый функционал в PCRE

  • Добавлен модификатор J для установки PCRE_DUPNAMES.

SQLite3 позволяет записывать BLOB

Теперь SQLite3::openBlob() умеет открывать поля типа BLOB для записи. Раньше для таких полей было доступно только чтение.

Обратные вызовы Oracle OCI8 Transparent Application Failover

Добавлена поддержка обратных вызовов Oracle Database Transparent Application Failover (TAF). TAF позволяет приложеням PHP OCI8 автоматически переподключаться к предварительно сконфигурированной базе данных при нарушении соединения. Новая поддержка обратного вызова TAF позволяет приложениям отслеживать и контролировать переподключение во время восстановления.

Улучшения в расширении ZIP

Добавлена поддержка чтения и записи зашифрованных архивов (требуется libzip 1.2.0).

Класс ZipArchive теперь реализует интерфейс Countable.

Поток zip:// теперь принимает контекстную опцию 'password'.


Новые функции

Ядро PHP

  • stream_isatty()
  • sapi_windows_vt100_support()

SPL

  • spl_object_id()

DOM

  • DomNodeList::count()
  • DOMNamedNodeMap::count()

FTP

  • ftp_append()

GD

  • imagesetclip()
  • imagegetclip()
  • imageopenpolygon()
  • imageresolution()
  • imagecreatefrombmp()
  • imagebmp()

Hash

  • hash_hmac_algos()

LDAP

  • ldap_parse_exop()
  • ldap_exop()
  • ldap_exop_passwd()
  • ldap_exop_whoami()

Многобайтные строки

  • mb_chr()
  • mb_ord()
  • mb_scrub()

Oracle OCI8

  • oci_register_taf_callback()
  • oci_unregister_taf_callback()

Сокеты

  • socket_addrinfo_lookup()
  • socket_addrinfo_connect()
  • socket_addrinfo_bind()
  • socket_addrinfo_explain()

Sodium

  • sodium_add()
  • sodium_bin2hex()
  • sodium_compare()
  • sodium_crypto_aead_aes256gcm_decrypt()
  • sodium_crypto_aead_aes256gcm_encrypt()
  • sodium_crypto_aead_aes256gcm_is_available()
  • sodium_crypto_aead_aes256gcm_keygen()
  • sodium_crypto_aead_chacha20poly1305_decrypt()
  • sodium_crypto_aead_chacha20poly1305_encrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_decrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_encrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_keygen()
  • sodium_crypto_aead_chacha20poly1305_keygen()
  • sodium_crypto_auth_keygen()
  • sodium_crypto_auth_verify()
  • sodium_crypto_auth()
  • sodium_crypto_box_keypair_from_secretkey_and_publickey()
  • sodium_crypto_box_keypair()
  • sodium_crypto_box_open()
  • sodium_crypto_box_publickey_from_secretkey()
  • sodium_crypto_box_publickey()
  • sodium_crypto_box_seal_open()
  • sodium_crypto_box_seal()
  • sodium_crypto_box_secretkey()
  • sodium_crypto_box_seed_keypair()
  • sodium_crypto_box()
  • sodium_crypto_generichash_final()
  • sodium_crypto_generichash_init()
  • sodium_crypto_generichash_keygen()
  • sodium_crypto_generichash_update()
  • sodium_crypto_generichash()
  • sodium_crypto_kdf_derive_from_key()
  • sodium_crypto_kdf_keygen()
  • sodium_crypto_kx_client_session_keys()
  • sodium_crypto_kx_keypair()
  • sodium_crypto_kx_publickey()
  • sodium_crypto_kx_secretkey()
  • sodium_crypto_kx_seed_keypair()
  • sodium_crypto_kx_server_session_keys()
  • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify()
  • sodium_crypto_pwhash_scryptsalsa208sha256_str()
  • sodium_crypto_pwhash_scryptsalsa208sha256()
  • sodium_crypto_pwhash_str_verify()
  • sodium_crypto_pwhash_str()
  • sodium_crypto_pwhash()
  • sodium_crypto_scalarmult_base()
  • sodium_crypto_scalarmult()
  • sodium_crypto_secretbox_keygen()
  • sodium_crypto_secretbox_open()
  • sodium_crypto_secretbox()
  • sodium_crypto_shorthash_keygen()
  • sodium_crypto_shorthash()
  • sodium_crypto_sign_detached()
  • sodium_crypto_sign_ed25519_pk_to_curve25519()
  • sodium_crypto_sign_ed25519_sk_to_curve25519()
  • sodium_crypto_sign_keypair_from_secretkey_and_publickey()
  • sodium_crypto_sign_keypair()
  • sodium_crypto_sign_open()
  • sodium_crypto_sign_publickey_from_secretkey()
  • sodium_crypto_sign_publickey()
  • sodium_crypto_sign_secretkey()
  • sodium_crypto_sign_seed_keypair()
  • sodium_crypto_sign_verify_detached()
  • sodium_crypto_sign()
  • sodium_crypto_stream_keygen()
  • sodium_crypto_stream_xor()
  • sodium_crypto_stream()
  • sodium_hex2bin()
  • sodium_increment()
  • sodium_memcmp()
  • sodium_memzero()
  • sodium_pad()
  • sodium_unpad()

ZIP

  • ZipArchive::count()
  • ZipArchive::setEncryptionName()
  • ZipArchive::SetEncryptionIndex()


Новые глобальные константы

Ядро PHP

  • PHP_FLOAT_DIG
  • PHP_FLOAT_EPSILON
  • PHP_FLOAT_MIN
  • PHP_FLOAT_MAX
  • PHP_OS_FAMILY

Информация о файле

  • FILEINFO_EXTENSION

JSON

  • JSON_INVALID_UTF8_IGNORE
  • JSON_INVALID_UTF8_SUBSTITUTE

GD

  • IMG_EFFECT_MULTIPLY
  • IMG_BMP

LDAP

  • LDAP_EXOP_START_TLS
  • LDAP_EXOP_MODIFY_PASSWD
  • LDAP_EXOP_REFRESH
  • LDAP_EXOP_WHO_AM_I
  • LDAP_EXOP_TURN

Хеширование пароля

  • PASSWORD_ARGON2I
  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST
  • PASSWORD_ARGON2_DEFAULT_TIME_COST
  • PASSWORD_ARGON2_DEFAULT_THREADS

PCRE

  • PREG_UNMATCHED_AS_NULL

PDO

  • PDO::PARAM_STR_NATL
  • PDO::PARAM_STR_CHAR
  • PDO::ATTR_DEFAULT_STR_PARAM

Sodium

  • SODIUM_LIBRARY_VERSION
  • SODIUM_LIBRARY_MAJOR_VERSION
  • SODIUM_LIBRARY_MINOR_VERSION
  • SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_NSECBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_ABYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_ABYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NSECBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES
  • SODIUM_CRYPTO_AUTH_BYTES
  • SODIUM_CRYPTO_AUTH_KEYBYTES
  • SODIUM_CRYPTO_BOX_SEALBYTES
  • SODIUM_CRYPTO_BOX_SECRETKEYBYTES
  • SODIUM_CRYPTO_BOX_PUBLICKEYBYTES
  • SODIUM_CRYPTO_BOX_KEYPAIRBYTES
  • SODIUM_CRYPTO_BOX_MACBYTES
  • SODIUM_CRYPTO_BOX_NONCEBYTES
  • SODIUM_CRYPTO_BOX_SEEDBYTES
  • SODIUM_CRYPTO_KDF_BYTES_MIN
  • SODIUM_CRYPTO_KDF_BYTES_MAX
  • SODIUM_CRYPTO_KDF_CONTEXTBYTES
  • SODIUM_CRYPTO_KDF_KEYBYTES
  • SODIUM_CRYPTO_KX_SEEDBYTES
  • SODIUM_CRYPTO_KX_SESSIONKEYBYTES
  • SODIUM_CRYPTO_KX_PUBLICKEYBYTES
  • SODIUM_CRYPTO_KX_SECRETKEYBYTES
  • SODIUM_CRYPTO_KX_KEYPAIRBYTES
  • SODIUM_CRYPTO_GENERICHASH_BYTES
  • SODIUM_CRYPTO_GENERICHASH_BYTES_MIN
  • SODIUM_CRYPTO_GENERICHASH_BYTES_MAX
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MIN
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MAX
  • SODIUM_CRYPTO_PWHASH_ALG_ARGON2I13
  • SODIUM_CRYPTO_PWHASH_ALG_DEFAULT
  • SODIUM_CRYPTO_PWHASH_SALTBYTES
  • SODIUM_CRYPTO_PWHASH_STRPREFIX
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE
  • SODIUM_CRYPTO_SCALARMULT_BYTES
  • SODIUM_CRYPTO_SCALARMULT_SCALARBYTES
  • SODIUM_CRYPTO_SHORTHASH_BYTES
  • SODIUM_CRYPTO_SHORTHASH_KEYBYTES
  • SODIUM_CRYPTO_SECRETBOX_KEYBYTES
  • SODIUM_CRYPTO_SECRETBOX_MACBYTES
  • SODIUM_CRYPTO_SECRETBOX_NONCEBYTES
  • SODIUM_CRYPTO_SIGN_BYTES
  • SODIUM_CRYPTO_SIGN_SEEDBYTES
  • SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES
  • SODIUM_CRYPTO_SIGN_SECRETKEYBYTES
  • SODIUM_CRYPTO_SIGN_KEYPAIRBYTES
  • SODIUM_CRYPTO_STREAM_NONCEBYTES
  • SODIUM_CRYPTO_STREAM_KEYBYTES

Zip

  • ZipArchive::EM_NONE
  • ZipArchive::EM_AES_128
  • ZipArchive::EM_AES_192
  • ZipArchive::EM_AES_256


Изменения, ломающие обратную совместимость

Предотвращение возврата отрицательного нуля из number_format()

Раньше функция number_format() возвращала -0. Хотя это совершенно правильно в соответствии со спецификацией чисел с плавающей точкой IEEE 754, эта странность нежелательна для отображения отформатированных чисел в удобочитаемой форме.

<?php

var_dump(number_format(-0.01)); // теперь выводит string(1) "0" вместо string(2) "-0"

Преобразование числовых ключей при приведении объектов и массивов

Теперь числовые ключи лучше обрабатываются при приведении массивов к объектам и объектов к массивам (через явное приведение, либо используя settype()).

Это означает, что числовые (или числа в виде строк) ключи из массивов, конвертированные в объекты теперь будут доступны:

<?php

// приведение массива к объекту
$arr = [0 => 1];
$obj = (object)$arr;
var_dump(
    $obj,
    $obj->{'0'}, // теперь работает
    $obj->{0} // теперь работает
);

Результат выполнения данного примера:

object(stdClass)#1 (1) {
  ["0"]=>    // теперь это строковый ключ, а не числовой
  int(1)
}
int(1)
int(1)

И теперь числовые (или числа в виде строк) ключи объектов доступны при конвертации в массивы:

<?php

// приведение объекта в массив
$obj = new class {
    public function __construct()
    {
        $this->{0} = 1;
    }
};
$arr = (array)$obj;
var_dump(
    $arr,
    $arr[0], // теперь работает
    $arr['0'] // теперь работает
);

Результат выполнения данного примера:

array(1) {
  [0]=>    // теперь это числовой ключ, а не строковый
  int(1)
}
int(1)
int(1)

Запрещена передача NULL в get_class()

Раньше передача NULL в функцию get_class() возвращала имя класса, из которого был сделан вызов. Это поведение было удалено и теперь вместо этого будет будет вызвана ошибка уровня E_WARNING. Для достижения того же поведения, что и раньше, следует просто опустить аргумент.

Предупреждение при подсчёте неисчисляемых типов

Теперь при использовании count() с параметром, который нельзя посчитать будет возникать ошибка уровня E_WARNING (это также касается sizeof() как псевдонима этой функции).

<?php

var_dump(
    count(null), // NULL нельзя подсчитать
    count(1), // числа нельзя подсчитать
    count('abc'), // строки нельзя подсчитать
    count(new stdclass), // объекты, не реализующие интерфейс Countable, нельзя подсчитать
    count([1,2]) // массивы можно подсчитать
);

Результат выполнения данного примера:

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d
int(0)
int(1)
int(1)
int(1)
int(2)

Переход от ресурсов к объектам в модуле Hash

В рамках долгосрочной миграции отказа от ресурсов, модуль Hash был обновлен для использования объектов вместо ресурсов. Это изменение должно быть плавным для PHP-разработчиков, за исключением случаев, когда используются проверки is_resource() (которые нужно заменить на использование is_object()).

Улучшены значения по умолчанию в SSL/TLS

Были сделаны следующие изменения в значения по умолчанию:

  • tls:// теперь по умолчанию используется TLSv1.0 или TLSv1.1 или TLSv1.2
  • ssl:// псевдоним tls://
  • Константы STREAM_CRYPTO_METHOD_TLS_* по умолчанию равны TLSv1.0 или TLSv1.1 + TLSv1.2, вместо TLSv1.0

Возвращаемое значение gettype() для закрытых ресурсов

Раньше использование gettype() на закрытом ресурсе возвращало строку "unknown type". Теперь будет возвращена строка "resource (closed)".

is_object() и __PHP_Incomplete_Class

Раньше использование is_object() на классе __PHP_Incomplete_Class возвращало FALSE. Теперь будет возвращаться TRUE.

Повышены уровни ошибок неопределенных констант

Не полностью определенные ссылки на неопределенные константы теперь будут генерировать E_WARNING (вместо E_NOTICE). В следующей основной версии PHP они будут генерировать исключения Error.

Поддержка Windows

Официально поддерживаемые минимальные версии Windows теперь являются Windows 7/Server 2008 R2.

Проверка значений свойств по умолчанию трейта

Проверки совместимости значений свойств по умолчанию трейта больше не выполняют приведение типа.

object для имен классов

Имя object ранее было мягко зарезервировано с PHP 7.0. Теперь оно полноценное зарезервированное слово, запрещающее использовать его в качестве имени класса, трейта или интерфейса.

Поддержка NetWare

Поддержка NetWare была удалена.

array_unique() with SORT_STRING

Если sort_flags равен SORT_STRING, ранее массив array копировался, а не уникальные элементы удалялись (сохраняя значения цифровых индексов), но теперь создается новый массив путем добавления уникальных элементов. Это может привести к различным числовым индексам.

Изменения bcmod() с числами с плавающей точкой

Функция bcmod() больше не обрезает числа с плавающей точкой до целых. Таким образом, её поведение теперь соответствует fmod(), а не оператору %. Например, bcmod('4', '3.5') теперь возвращает 0.5 вместо 1.

Функции хеширования и некриптографические хеши

Функции hash_hmac(), hash_hmac_file(), hash_pbkdf2() и hash_init() (с HASH_HMAC) больше не принимают некриптографические хеши.

Опции функции json_decode()

Опция функции json_decode(), JSON_OBJECT_AS_ARRAY, теперь используется, если второй параметр (assoc) равен NULL. Ранее JSON_OBJECT_AS_ARRAY всегда игнорировался.

Вывод rand() и mt_rand()

Числа, генерируемые rand() и mt_rand() для определённого параметра переинициализации (seed), могут отличаться от PHP 7.1 на 64-битных машинах (из-за исправления ошибки модульного смещения в реализации).

Удаление ini-настройки sql.safe_mode

Настройка конфигурации sql.safe_mode была удалена.

Изменения в date_parse() и date_parse_from_format()

Элемент массива zone, возвращаемого функциями date_parse_from_format() и date_parse() теперь отображает секунды вместо минут, а его знак инвертируется. Например, -120 теперь будет 7200.


Функционал, объявленный устаревшим в PHP 7.2.x

Строки без кавычек

Строки без кавычек, которые не являются существующими глобальными константами, считались за строки. Такое поведение раньше вызывало ошибку уровня E_NOTICE, но теперь будет E_WARNING. В следующей основной версии PHP вместо ошибки будет выбрасываться исключение Error.

<?php

var_dump(NONEXISTENT);

/* Вывод:
Warning: Use of undefined constant NONEXISTENT - assumed 'NONEXISTENT' (this will throw an Error in a future version of PHP) in %s on line %d
string(11) "NONEXISTENT"
*/

png2wbmp() и jpeg2wbmp()

Функции png2wbmp() и jpeg2wbmp() из модуля GD объявлены устаревшими и будут удалены в следующей основной версии PHP.

Вариант INTL_IDNA_VARIANT_2003

В модуле Intl объявлен устаревшим вариант INTL_IDNA_VARIANT_2003, который в настоящее время используется по умолчанию для функций idn_to_ascii() и idn_to_utf8(). В PHP 7.4 значение по умолчанию будет изменено на INTL_IDNA_VARIANT_UTS46, а в следующей основной версии PHP константа INTL_IDNA_VARIANT_2003 будет полностью удалена.

Функция __autoload()

Функция __autoload() была объявлена устаревшей, потому что она уступает альтернативной функции spl_autoload_register() (из-за того, что не может иметь очередь из функций автозагрузки), и ввиду того, что нет совместимости между этими двумя стилями автозагрузки.

Параметр track_errors и переменная $php_errormsg

Когда параметр track_errors включён в ini-настройках, переменная $php_errormsg создаётся в локальной области видимости, когда происходит не фатальная ошибка. Учитывая, что предпочтительным способом получения такой информации об ошибке является использование функции error_get_last(), данная возможность была объявлена устаревшей.

Функция create_function()

Учитывая проблемы c безопасностью данной функции (из-за того, что она является обёрткой над eval()), эта функция объявлена устаревшей. Предпочтительной альтернативой является использование анонимных функций.

Параметр mbstring.func_overload

Учитывая проблемы совместимости строковых функций, используемых в окружениях с включенным этим параметром, этот параметр объявлен устаревшим.

Приведение типа (unset)

Приведение любого выражения с использованием этого типа всегда приводит к NULL, и поэтому этот избыточный тип приведения объявлен устаревшим.

parse_str() без второго параметра

Без передачи второго параметра функции parse_str(), параметры строки запроса будут заполнять текущую таблицу символов (будут доступны как переменные в локальной области видимости). Учитывая последствия для безопасности из-за этого, использование parse_str() без второго параметра объявлено устаревшим. Эта функция всегда должна использоваться с двумя аргументами, так как во второй аргумент сохраняются параметры строки запроса в качестве элементов массива.

Функция gmp_random()

Эта функция генерирует случайное число, основанное на диапазоне, который вычисляется в зависимости от платформы, размера лимба (limb). Из-за этого данная функция объявлена устаревшей. Предпочительным способом генерации случайного числа через модуль GMP является использование функций gmp_random_bits() и gmp_random_range().

Функция each()

Эта функция намного медленнее по итерации, чем использование обычного foreach, и создаёт проблемы с реализацией для некоторых изменений языка, поэтому данная функция объявлена устаревшей.

assert() со строковым аргументом

Использование assert() со строковым параметром требовало передачи строки для исполнения в eval(). Учитывая возможность удалённого выполнения кода, использование assert() со строковым аргументом теперь объявлено устаревшим в пользу использования логических выражений.

Аргумент $errcontext в обработчиках ошибок

Аргумент $errcontext содержит все локальные переменные в месте, где была произошла ошибка. Учитывая редкое его использование и проблемы, связанные с внутренней оптимизацией, этот параметр объявлен устаревшим. Вместо этого рекомендуется использовать отладчик для получения информации об ошибках.

Функция read_exif_data()

Псевдоним read_exif_data() был объявлен устаревшим в пользу функции exif_read_data().


Прочие изменения

Перемещение utf8_encode() и utf8_decode()

Функции utf8_encode() и utf8_decode() были перемещены в стандартную библиотеку в качестве функций по работе со строками. В предыдущих версиях для их использования необходимо было установить модуль XML.

Изменения mail() и mb_sendmail()

Параметр $additional_headers функций mail() и mb_sendmail() теперь также принимает массив (array) вместо строки (string).

Поддержка LMDB

Модуль DBA получил поддержку LMDB.

Изменения в системе сборки PHP

  • Unix: Теперь для сборки PHP требуется autoconf 2.64 или выше.
  • Unix: Для параметра конфигурации --with-pdo-oci более не нужно указывать версию Oracle Instant Client.
  • Unix: Удален параметр конфигурации --enable-gd-native-ttf. Он не использовался с PHP 5.5.0.
  • Windows: Добавлен параметр конфигурации --with-config-profile. Он может использоваться для сохранения определенных конфигураций, таких как магический файл config.nice.bat.

Изменения в GD

  • Теперь функция imageantialias() доступна при компиляции с системной библиотекой libgd.
  • Функция imagegd() сохраняет truecolor-изображения как истинные truecolor-изображения. Раньше они преобразовывались в изображения с фиксированной палитрой.

Перемещение MCrypt в PECL

Модуль MCrypt был удален из ядра PHP и перемещен в PECL. Библиотека mcrypt не обновлялась с 2007 года и использовать ее крайне не рекомендуется. Вместо нее используйте модуль OpenSSL или Sodium.

session_module_name()

Передача значения "user" в опцию session_module_name() теперь приведет к ошибке уровня E_RECOVERABLE_ERROR. Ранее это просто игнорировалось.


Миграция с PHP 7.0.x на PHP 7.1.x

Содержание

  • Новые возможности
  • Новые функции
  • Новые глобальные константы
  • Изменения, ломающие обратную совместимость
  • Функционал, объявленный устаревшим в PHP 7.1.x
  • Измененные функции
  • Прочие изменения
  • Поддержка Windows

Эта обновлённая версия приносит с собой ряд новых возможностей и несколько несовместимостей, которые должны быть проверены до перехода версии PHP в рабочем окружении.

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.4.x, 5.5.x, 5.6.x и 7.0.x.


Новые возможности

Обнуляемые типы

Типы для параметров и возвращаемых значений могут быть помечены как обнуляемые путем добавления префикса в виде знака вопроса. Это означает, что указанные параметры и возвращаемые значения, могут быть как указанного типа, так и NULL.

<?php

function testReturn(): ?string
{
    return 'elePHPant';
}

var_dump(testReturn());

function testReturn(): ?string
{
    return null;
}

var_dump(testReturn());

function test(?string $name)
{
    var_dump($name);
}

test('elePHPant');
test(null);
test();

Результат выполнения данного примера:

string(10) "elePHPant"
NULL
string(10) "elePHPant"
NULL
Uncaught Error: Too few arguments to function test(), 0 passed in...

Ничего не возвращающие функции

Был добавлен тип возвращаемого значения void. Функции с таким заданным типом возвращаемого значения не должны ничего возвращать. То есть либо вообще не содержать ни одного оператора return, либо использовать его без параметра. NULL не является корректным значением для возврата в таких функциях.

<?php
function swap(&$left, &$right): void
{
    if ($left === $right) {
        return;
    }

    $tmp = $left;
    $left = $right;
    $right = $tmp;
}

$a = 1;
$b = 2;
var_dump(swap($a, $b), $a, $b);

Результат выполнения данного примера:

null
int(2)
int(1)

Попытка использовать возвращаемое значение таких функций приведет к тому, что это значение будет считаться за NULL, без вывода предупреждения. Причина этого в том, что предупреждения будут вызывать общих функций высшего порядка.

Симметричная деструктуризация массива

Можно использовать короткий синтаксис ([]) для деструктуризации массивов с целью присвоения (в том числе в foreach), как альтернатива функции list(), которая, впрочем, все еще поддерживается.

<?php
$data = [
    [1, 'Tom'],
    [2, 'Fred'],
];

// используя list()
list($id1, $name1) = $data[0];

// используя []
[$id1, $name1] = $data[0];

// используя list()
foreach ($data as list($id, $name)) {
    // код, содержащий $id и $name
}

// используя []
foreach ($data as [$id, $name]) {
    // код, содержащий $id и $name
}

Видимость констант класса

Добавлена поддержка определения области видимости для констант класса.

<?php
class ConstDemo
{
    const PUBLIC_CONST_A = 1;
    public const PUBLIC_CONST_B = 2;
    protected const PROTECTED_CONST = 3;
    private const PRIVATE_CONST = 4;
}

Псевдотип iterable

Был добавлен новый псевдотип (похожий на callable), названный iterable. Он может использоваться как параметр, так и в качестве возвращаемого значения там, где используется массив или объект, реализующий интерфейс Traversable. Что касается подтипов, типы параметров из дочерних классов могут расширить декларацию родителей типа array или Traversable до iterable. Для типов возврата, дочерние классы могут сужать тип возвращаемого значения с iterable до array или объекта реализующего Traversable.

<?php
function iterator(iterable $iter)
{
    foreach ($iter as $val) {
        //
    }
}

Обработка нескольких исключений в одном блоке catch

В блоке catch теперь можно обрабатывать несколько исключений, перечисляя их через символ вертикальной черты (|). Это может быть полезно, если различные исключения обрабатываются одинаково.

<?php
try {
    // Какой то код
} catch (FirstException | SecondException $e) {
    // Обрабатываем оба исключения
}

Поддержка ключей в list()

Теперь вы можете указывать ключи в операторе list() или в его новом коротком синтаксисе []. Это позволяет деструктурировать массивы с нечисловыми или непоследовательными ключами.

<?php
$data = [
    ["id" => 1, "name" => 'Tom'],
    ["id" => 2, "name" => 'Fred'],
];

// стиль list()
list("id" => $id1, "name" => $name1) = $data[0];

// стиль []
["id" => $id1, "name" => $name1] = $data[0];

// стиль list()
foreach ($data as list("id" => $id, "name" => $name)) {
    // logic here with $id and $name
}

// стиль []
foreach ($data as ["id" => $id, "name" => $name]) {
    // logic here with $id and $name
}

Поддержка отрицательных смещений для строк

Поддержка отрицательных смещений для строк добавлена в функции для работы со строками, а также в индексацию строк с помощью [] или {}. В этих случаях отрицательные смещения интерпретируются как смещения относительно конца строки.

<?php
var_dump("abcdef"[-2]);
var_dump(strpos("aabbcc", "b", -3));

Результат выполнения данного примера:

string (1) "e"
int(3)

Теперь поддерживаются отрицательные смещения в простом синтаксисе указания индекса в строках и массивах.

<?php
$string = 'bar';
echo "Последний символ '$string' - '$string[-1]'.\n";
?>

Результат выполнения данного примера:

Последний символ 'bar' - 'r'.

Поддержка AEAD в ext/openssl

Поддержка AEAD (режимы GCM и CCM) была добавлена путем расширения функций openssl_encrypt() и openssl_decrypt() дополнительными параметрами.

Преобразование callable в Closure с помощью Closure::fromCallable()

В класс Closure добавлен новый статический метод для возможности легко преобразовать callable в объекты типа Closure.

<?php
class Test
{
    public function exposeFunction()
    {
        return Closure::fromCallable([$this, 'privateFunction']);
    }

    private function privateFunction($param)
    {
        var_dump($param);
    }
}

$privFunc = (new Test)->exposeFunction();
$privFunc('значение');

Результат выполнения данного примера:

string(16) "значение"

Асинхронная обработка сигналов

Новая функция pcntl_async_signals() была добавлена для разрешения асинхронной обработки сигналов без использования тиков (которые производят много накладных расходов).

<?php
pcntl_async_signals(true); // включает асинхронные сигналы

pcntl_signal(SIGHUP,  function($sig) {
    echo "SIGHUP\n";
});

posix_kill(posix_getpid(), SIGHUP);

Результат выполнения данного примера:

SIGHUP

Поддержка HTTP/2 server push в ext/curl

Поддержка "server push" добавлена в расширение CURL (требуется версия 7.46 и выше). Использовать можно в функции curl_multi_setopt() с новой константой CURLMOPT_PUSHFUNCTION. Также добавлены константы CURL_PUSH_OK и CURL_PUSH_DENY для определения, был ли принят или отклонен "server push".

Контекстные опции потока

Была добавлена опция контекста потока tcp_nodelay.


Новые функции

Ядро PHP

  • sapi_windows_cp_get()
  • sapi_windows_cp_set()
  • sapi_windows_cp_conv()
  • sapi_windows_cp_is_utf8()

Замыкания

  • Closure::fromCallable()

CURL

  • curl_multi_errno()
  • curl_share_errno()
  • curl_share_strerror()

OpenSSL

  • openssl_get_curve_names()

Сессии

  • session_create_id()
  • session_gc()

SPL

  • is_iterable()

PCNTL

  • pcntl_async_signals()
  • pcntl_signal_get_handler()


Новые глобальные константы

Предопределенные константы ядра PHP

  • PHP_FD_SETSIZE

CURL

  • CURLMOPT_PUSHFUNCTION
  • CURL_PUSH_OK
  • CURL_PUSH_DENY

Фильтрация данных

  • FILTER_FLAG_EMAIL_UNICODE

Обработка изображений и GD

  • IMAGETYPE_WEBP

JSON

  • JSON_UNESCAPED_LINE_TERMINATORS

LDAP

  • LDAP_OPT_X_SASL_NOCANON
  • LDAP_OPT_X_SASL_USERNAME
  • LDAP_OPT_X_TLS_CACERTDIR
  • LDAP_OPT_X_TLS_CACERTFILE
  • LDAP_OPT_X_TLS_CERTFILE
  • LDAP_OPT_X_TLS_CIPHER_SUITE
  • LDAP_OPT_X_TLS_KEYFILE
  • LDAP_OPT_X_TLS_RANDOM_FILE
  • LDAP_OPT_X_TLS_CRLCHECK
  • LDAP_OPT_X_TLS_CRL_NONE
  • LDAP_OPT_X_TLS_CRL_PEER
  • LDAP_OPT_X_TLS_CRL_ALL
  • LDAP_OPT_X_TLS_DHFILE
  • LDAP_OPT_X_TLS_CRLFILE
  • LDAP_OPT_X_TLS_PROTOCOL_MIN
  • LDAP_OPT_X_TLS_PROTOCOL_SSL2
  • LDAP_OPT_X_TLS_PROTOCOL_SSL3
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_0
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_1
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_2
  • LDAP_OPT_X_TLS_PACKAGE
  • LDAP_OPT_X_KEEPALIVE_IDLE
  • LDAP_OPT_X_KEEPALIVE_PROBES
  • LDAP_OPT_X_KEEPALIVE_INTERVAL

PostgreSQL

  • PGSQL_NOTICE_LAST
  • PGSQL_NOTICE_ALL
  • PGSQL_NOTICE_CLEAR

SPL

  • MT_RAND_PHP


Изменения, ломающие обратную совместимость

Вызов исключения при передаче функции недостаточного количества аргументов

Ранее, если пользовательская функция вызывалась с недостаточным количеством аргументов, выдавалось предупреждение. Теперь же, вместо предупреждения будет вызываться исключение класса Error. Это изменение затрагивает только пользовательские функции и не оказывает влияния на встроенные. Например:

<?php
function test($param){}
test();

Результатом выполнения данного примера будет что-то подобное:

Fatal error: Uncaught ArgumentCountError: Too few arguments to function test(), 0 passed in %s on line %d and exactly 1 expected in %s:%d

Запрет динамического вызова функций интроспекции области видимости

Динамические вызовы определенных функций были запрещены (в виде $func() или array_map('extract', ...), и т.д.) Эти функции проверяют или модифицируют объекты другой области видимости, чем вызывают неоднозначное и неопределенное поведение. Список таких функций:

  • assert() - со строкой в качестве первого аргумента
  • compact()
  • extract()
  • func_get_args()
  • func_get_arg()
  • func_num_args()
  • get_defined_vars()
  • mb_parse_str() - с одним аргументом
  • parse_str() - с одним аргументом
<?php
(function () {
    $func = 'func_num_args';
    $func();
})();

Результат выполнения данного примера:

Warning: Cannot call func_num_args() dynamically in %s on line %d

Некорректные имена классов, интерфейсов и трейтов

Следующие имена нельзя использовать как имена классов, интерфейсов или трейтов:

  • void
  • iterable

Преобразование числовых строк теперь учитывает научную нотацию

Целочисленные операции и конвертации числовых строк теперь учитывают научную нотацию, включая приведение (int) и следующие функции: intval() (с базой 10), settype(), decbin(), decoct() и dechex().

Исправление алгоритма mt_rand()

mt_rand() теперь по умолчанию использует зафиксированную версию алгоритма "Вихрь Мерсена". Если вы полагались на детерминированный вывод mt_srand(), для сохранения старого (неправильного) поведения, можно использовать константу MT_RAND_PHP в качестве второго, необязательного, параметра mt_srand().

rand() псевдоним для mt_rand() и srand() псевдоним для mt_srand()

rand() и srand() теперь являются просто синонимами для mt_rand() и mt_srand(). Это означает, что вывод следующих функций изменился: rand(), shuffle(), str_shuffle() и array_rand().

Запрет использовать символ удаления из таблицы ASCII в идентификаторах

Символ удаления ASCII (0x7F) больше нельзя использовать в идентификаторах, не обернутых в кавычки.

Значение error_log изменено на syslog

Если ini-параметр error_log установлен как syslog, то уровни ошибок PHP проецируются на уровни ошибок "syslog". Это позволяет более тонко логировать события, а не как раньше, когда все они записывались с уровнем "notice".

Деструкторы не вызываются на незавершенных объектах

Теперь деструкторы никогда не вызываются, если было вызвано исключение в конструкторе объекта. Раньше это поведение зависело от того, была ли ссылка на объект вне конструктора (например, в трассировке исключения).

call_user_func() обрабатывает ссылки на аргументы

Теперь call_user_func() всегда вызывает предупреждение, если вызывается функция, ожидающая ссылки в качестве параметров. Ранее это зависело от того, был ли вызов полностью определенным.

Кроме того, call_user_func() и call_user_func_array() больше не прекращают выполнение функции в этом случае. Предупреждение "expected reference" будет вызвано, но сама функция продолжит выполнение.

Оператор пустого индекса более не применим к строкам

Применение оператора пустого индекса к строке ($str[] = $x) вызывает фатальную ошибку вместо тихого преобразования переменной к массиву.

Присвоение через механизм доступа к элементу строки по индексу применительно к пустой строке

Модификация символа в пустой строке теперь работает так же как и для не пустой. Т.е. запись по несуществующему смещению приведет к преобразованию не целочисленного значения смещения к целому числу, дополнению строки до нужной длины символами пробела и использованию только первого символа из присваиваемой строки. Раньше, в такой ситуации, пустая строка рассматривалась как пустой массив.

<?php
$a = '';
$a[10] = 'foo';
var_dump($a);
?>

Результат выполнения данного примера в PHP 7.0:

array(1) {
  [10]=>
  string(3) "foo"
}

Результат выполнения данного примера в PHP 7.1:

string(11) "          f"

Удаленные ini-директивы

Следующие ini-директивы были удалены:

  • session.entropy_file
  • session.entropy_length
  • session.hash_function
  • session.hash_bits_per_character

Порядок массива, когда элементы созданы автоматически через присвоение по ссылке, был изменен

Порядок расположения элементов массива, создаваемых присвоением по ссылке не созданных на момент присвоения элементов, был изменен. К примеру:

<?php
$array = [];
$array["a"] =& $array["b"];
$array["b"] = 1;
var_dump($array);
?>

Результат выполнения данного примера в PHP 7.0:

array(2) {
  ["a"]=>
  &int(1)
  ["b"]=>
  &int(1)
}

Результат выполнения данного примера в PHP 7.1:

array(2) {
  ["b"]=>
  &int(1)
  ["a"]=>
  &int(1)
}

Порядок сортировки эквивалентных элементов

Внутренний алгоритм сортировки был улучшен, что может привести к отличию в порядке расположения эквивалентных элементов после сортировки по сравнению с предыдущими версиями PHP.

Замечание:

Не полагайтесь на порядок расположения эквивалентных элементов, так как он может в любой момент измениться.

Сообщения для ошибок E_RECOVERABLE

Сообщения для ошибок E_RECOVERABLE изменено с "Catchable fatal error" на "Recoverable fatal error".

Параметр $options функции unserialize()

Теперь элемент allowed_classes параметра $options функции unserialize() строго типизирован, то есть если передать значение с типом, отличным от array и boolean, то unserialize() вернет FALSE и вызовет ошибку уровня E_WARNING.

Конструктор DateTime использует микросекунды

Теперь DateTime и DateTimeImmutable используют микросекунды при создании с текущим временем, либо в явном виде, либо со строкой относительного времени (например, "first day of next month"). Это означает, что сравнение двух подряд созданных экземпляров класса скорее будет возвращать FALSE нежели TRUE:

<?php
new DateTime() == new DateTime();
?>

Вызов исключений Error вместо фатальных ошибок

Для расширения Date при некорректных данных сериализации классов DateTime или DatePeriod, или ошибки инициализации временной зоны из сериализованных данных, будет выбрасываться исключение Error из методов __wakeup() или __set_state(), вместо вызова фатальной ошибки.

В расширении DBA функции манипулирования данными (такие как dba_insert()) теперь будут выбрасывать исключение Error вместо вызова отлавливаемой фатальной ошибки если ключ не содержит ровно двух элементов.

В расширении DOM некорректная проверка контекста схемы или RelaxNG теперь будут выбрасывать исключение Error вместо вызова фатальной ошибки. Аналогичным образом, попытки зарегистрировать класс узла, который не расширяет правильный базовый класс, попытки прочитать некорректное свойство или перезаписать свойство доступное только для чтения будут выбрасывать исключение Error.

В расширение IMAP адрес email длиннее 16385 байт теперь будет выбрасывать исключение Error вместо вызова фатальной ошибки.

Расширение Intl при ошибке вызова родительского конструктора в классе, наследующем Collator до вызова родительских методов теперь будет выбрасывать исключение Error вместо вызова фатальной ошибки. Кроме того, клонирование объекта Transliterator теперь будет выбрасывать исключение Error при ошибке клонирования внутреннего transliterator вместо вызова фатальной ошибки.

Расширение LDAP при указании неизвестного типа модификации в ldap_batch_modify() теперь будет выбрасывать исключение Error вместо вызова фатальной ошибки.

В расширении mbstring функции mb_ereg() и mb_eregi() теперь будут выбрасывать исключение ParseError в случае некорректного регулярного выражения либо в случае использования опции 'e'.

В расширении Mcrypt mcrypt_encrypt() и mcrypt_decrypt() теперь будет выбрасывать исключение Error вместо вызова фатальной ошибки, если mcrypt не инициализирован.

В расширении mysqli попытки прочитать некорректное свойство или перезаписать свойство доступное только для чтения будут выбрасывать исключение Error вместо вызова фатальной ошибки.

В расширении Reflection неудачное извлечение отраженного объекта или свойства объекта будут выбрасывать исключение Error вместо вызова фатальной ошибки.

В расширении сессий пользовательские обработчики сессии, которые не возвращают строку для идентификатора сессии, будут выбрасывать исключение Error вместо вызова фатальной ошибки, когда будет вызвана функция для генерации идентификатора.

В расширении SimpleXML попытка создания безымянного либо дублирующего атрибута будет выбрасывать исключение Error вместо вызова фатальной ошибки.

В расширении SPL попытка клонировать объект SplDirectory будет выбрасывать исключение Error вместо вызова фатальной ошибки. Аналогично, вызов ArrayIterator::append() когда итерация объекта закончена будет выбрасывать исключение Error.

Функция assert(), когда ей передан строковый аргумент первым параметром, теперь будет выбрасывать исключение ParseError вместо вызова отлавливаемой фатальной ошибки, если PHP-код некорректен. Аналогично, вызов forward_static_call() за пределами пространства класса будет выбрасывать исключение Error.

В расширении Tidy ручное создание tidyNode будет выбрасывать исключение Error.

В расширении WDDX циклические ссылки при сериализации будут выбрасывать исключение Error вместо вызова фатальной ошибки.

В расширении XML-RPC циклические ссылки при сериализации будут выбрасывать исключение Error вместо вызова фатальной ошибки.

В расширении Zip метод ZipArchive::addGlob() будет выбрасывать исключение Error вместо вызова фатальной ошибки, если отсутствует поддержка glob.

Лексически связанные переменные не могут переиспользовать имена

Переменные, привязанные к замыканию через конструкцию use, не могут использовать те же имена, что и любые superglobals, $this или параметры. К примеру, все приведенные функции вызовут фатальную ошибку:

<?php
$f = function () use ($_SERVER) {};
$f = function () use ($this) {};
$f = function ($param) use ($param) {};

Изменен тип параметра long2ip()

Теперь long2ip() ожидает параметр типа int а не string.

Кодирование и декодирование JSON

INI-настройка serialize_precision определяет точность сериализации при кодировании значений типа float.

Теперь декодирование пустого ключа приводит к появлению свойства с пустым именем, раньше имя свойства приводилось к значению _empty_.

<?php
var_dump(json_decode(json_encode(['' => 1])));

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)#1 (1) {
  [""]=>
  int(1)
}

При передаче флага JSON_UNESCAPED_UNICODE в функцию json_encode() последовательности U+2028 и U+2029 будут экранированы.

Изменение в семантике параметров mb_ereg() и mb_eregi()

Третий параметр функций mb_ereg() и mb_eregi() (regs) теперь устанавливается равным пустому массиву, если не было найдено совпадений. Ранее параметр оставался неизменным.

Удалена поддержка потока sslv2

Поддержка потока sslv2 в OpenSSL удалена.


Функционал, объявленный устаревшим в PHP 7.1.x

ext/mcrypt

Расширение mcrypt не развивалось уже почти десять лет, а также было крайне сложным в использовании. Оно было объявлено устаревшим в пользу OpenSSL. Оно будет удалено из ядра PHP и перемещено в PECL в PHP 7.2.

Модификатор "e" для функций mb_ereg_replace() и mb_eregi_replace()

Модификатор шаблона e был объявлен устаревшим для функций mb_ereg_replace() и mb_eregi_replace().


Измененные функции

Ядро PHP

  • getopt() имеет третий, необязательный, параметр, в который записывается индекс, на котором остановилась обработка. Переменная в этот параметр передается по ссылке.
  • В getenv() больше не обязательно передавать параметр. Если параметр не задан, то возвращаются все текущие переменные окружения в виде ассоциативного массива.
  • get_headers() теперь имеет дополнительный параметр для разрешения передачи определенного пользователем потокового контекста.
  • output_reset_rewrite_vars() больше не сбрасывает сессионные переменные перезаписи URL.
  • parse_url() теперь более требовательна и поддерживает RFC3986.
  • unpack() теперь имеет третий необязательный параметр для определения смещения с которого начинать распаковку.

Файловая система

  • file_get_contents() теперь принимает отрицательные значения смещения начала поиска, если поток поддерживает смещения.
  • tempnam() теперь выдает уведомление при возврате в системный временный каталог.

JSON

  • json_encode() теперь принимает новую опцию, JSON_UNESCAPED_LINE_TERMINATORS, для запрещения экранирования символов U+2028 и U+2029 когда передается JSON_UNESCAPED_UNICODE.

Многобайтовые строки

  • mb_ereg() теперь отклоняет некорректные последовательности байтов.
  • mb_ereg_replace() теперь отклоняет некорректные последовательности байтов.

PDO

  • PDO::lastInsertId() для PostgreSQL теперь порождает ошибку, если в текущей сессии (соединении) не вызван nextval.

PostgreSQL

  • pg_last_notice() теперь принимает необязательный параметр, задающий операцию. Используется одна из следующих констант: PGSQL_NOTICE_LAST, PGSQL_NOTICE_ALL или PGSQL_NOTICE_CLEAR.
  • pg_fetch_all() теперь принимает второй, необязательный, параметр для задания типа результата (аналогично третьему параметру pg_fetch_array()).
  • pg_select() теперь принимает четвертый, необязательный, параметр для задания типа результата (аналогично третьему параметру pg_fetch_array()).

Сессии

  • session_start() теперь возвращает FALSE и больше не инициализирует $_SESSION, когда она не смогла запустить сессию.


Прочие изменения

Замечания и предупреждения при выполнении арифметических операций с некорректными строками

Новые ошибки уровней E_WARNING и E_NOTICE были добавлены при использовании некорректных строк с операторами, ожидающими числа (+ - * / ** % << >> | & ^) и их эквивалентами с присваиванием. Ошибка уровня E_NOTICE выдается, когда строка начинается с цифр, но далее содержит не цифровые символы, и ошибка уровня E_WARNING выдается тогда, когда строка вообще не содержит цифр.

<?php
'1b' + 'что-то';

Результат выполнения данного примера:

Notice: A non well formed numeric value encountered in %s on line %d
Warning: A non-numeric value encountered in %s on line %d

Предупреждение при переполнении экранированной восьмеричной последовательности

Ранее 3-октетная восьмиричная строка переполнялась никому ничего не сообщая. Теперь при переполнении будет вызвана ошибка уровня E_WARNING.

<?php
var_dump("\500");

Результат выполнения данного примера:

Warning: Octal escape sequence overflow \500 is greater than \377 in %s on line %d
string(1) "@"

Исправлена несогласованность $this

В то время как $this считается специальной переменной в PHP, ей не хватало специальных проверок, что ее не используют в качестве переменной и не переопределили. Теперь использовать $this в качестве пользовательской переменной запрещено. Также запрещено присваивать ей значение и использовать в глобальном пространстве имен.

Генерация идентификаторов сессий без хеширования

Идентификаторы сессий больше не хешируются во время создания. Вместе с этим удалены следующие четыре параметра из ini-файла:

  • session.entropy_file
  • session.entropy_length
  • session.hash_function
  • session.hash_bits_per_character

И добавлены два других:

  • session.sid_length - определяет длину идентификатора сессии. По умолчанию используется 32 символа для обеспечения обратной совместимости.
  • session.sid_bits_per_character - определяет количество бит на каждый символ идентификатора (то еть можно увеличить количество доступных для использования в идентификаторе символов). Для обратной совместимости по умолчанию используется 4 бита.

Изменения в обработке INI-файлов

precision

Если установлено в -1, то будет использован режим dtoa. Значение по умолчанию 14.

serialize_precision

Если установлено в -1, то будет использован режим dtoa. Теперь значение по умолчанию -1.

gd.jpeg_ignore_warning

Значение по умолчанию для этой настройки php.ini изменено на 1, так что, по умолчанию, предупреждения libjpeg будут игнорироваться.

opcache.enable_cli

В PHP 7.1.2 значение по умолчанию для этой настройки php.ini изменено на 1 (включено), а в PHP 7.1.7 возвращено значение 0 (выключено)

Генерация идентификаторов сессий только с помощью CSPRNG

Идентификаторы сессий теперь создаются только с помощью CSPRNG.

Более информативное сообщение TypeError, если допустим NULL

Теперь исключение TypeError для проверок типа arg_info предоставляет более информативное сообщение об ошибке. Если тип параметра или возвращаемое значение может быть NULL (либо имеет значение NULL по умолчанию или имеет обнуляемый тип), то теперь в сообщении будет упомянуто "must be ... or null" или "must ... or be null."


Поддержка Windows

Поддержка длинных и UTF-8 путей

Если веб-приложение работает с UTF-8, то никаких дополнительных действий не требуется. Для приложений осуществляющих ввод/вывод по путям, заданных в кодировке отличной от UTF-8, необходимо явно задать значения в INI-файле. Проверка кодировок осуществляется в следующем порядке:

  • internal_encoding
  • default_charset
  • zend.multibyte

Было введено несколько функций для обработки кодовых страниц:

  • sapi_windows_cp_set() для установки кодировки по умолчанию
  • sapi_windows_cp_get() для получения текущей кодировки
  • sapi_windows_cp_is_utf8()
  • sapi_windows_cp_conv() для конвертации между кодировками с использованием сигнатур аналогичным iconv()

Эти функции потокобезопасны.

Кодовая страница, используемая для вывода в консоли настраивается в зависимости от кодировки, используемой в PHP. В зависимости от конкретной системной OEM-кодировки, видимый результат может быть корректным или нет. Например, в стандартной консоли cmd.exe в системах с кодировкой 437 OEM-вывод в кодировках 1251, 1252, 1253 и некоторых других может отображаться правильно при использовании UTF-8. В тех же самых системах символы в кодировке типа 20932 будут показаны некорректно. Это относится к конкретным системным правилам для кодовой страницы, совместимости шрифтов и конкретной используемой консоли. PHP автоматически устанавливает кодовую страницу консоли в соответствии с правилами кодирования из php.ini. В некоторых случаях использование консоли отличной от стандартной cmd.exe может улучшить ситуацию.

Не забывайте, что переключение кодовой страницы во время исполнения после запуска скрипта может привести к неожиданным побочным эффектам в CLI. Лучший вариант - использовать php.ini. При использовании PHP CLI в эмуляторе консоли, который не поддерживает Unicode, это можт потребоваться во избежание изменения кодировки консоли. Лучший вариант - установить кодировку по умолчанию или внутреннюю кодировку как ANSI. Также можно установить директивы output_encoding и input_encoding в требуемые значения, но следует помнить, что при отличии внутренней кодировки и кодировки вводы/вывода вы, скорее всего, получите кракозябры. В редких случаях при падении PHP, кодировка консоли может не восстанавливаться в изначальное значение. В таком случае восстановите ее самостоятельно с помощью команды chcp.

Особое замечание для систем DBCS - переключение кодировки во время исполнения с помощью ini_set() может вызвать проблемы с отображением. Разница с системами без DBCS заключается в том, что расширенные символы требуют двух ячеек консоли для отображения. В некоторых случаях может произойти только отображение символов в глифы текущего шрифта, без его смены. Это в характере систем DBCS. Самый простой способ избежать проблем с отображением - отказаться от использования ini_set() для изменения кодовой страницы.

В результате поддержки UTF-8 в потоках, скрипты PHP больше не ограничены кодировками ASCII и ANSI для имен файлов. Такая поддержка доступна из коробки CLI. Для других SAPI следует изучить соответствующую документацию.

Длинные пути поддерживаются прозрачно. Пути длиннее 260 байт автоматически дополняются префиксом \\?\. Максимальная длина пути ограничена 2048 байтами. Имейте в виду, что ограничения на длину сегмента пути (длину базового имени) по-прежнему сохраняются.

Для лучшей переносимости настоятельно рекомендутся обрабатывать имена файлов, ввод/вывод и прочие, связанные с UTF-8 сущности. Кроме того, для консольных приложений рекомендуется использовать шрифты TrueType и не рекомендуется менять кодировку с помощью ini_set().

readline

Расширение readline поддерживается через библиотеку » WinEditLine. Таким образом интерфейс оболочки CLI также поддерживается (php.exe -a).

PHP_FCGI_CHILDREN

Теперь принимается во внимание PHP_FCGI_CHILDREN. Если задана эта переменная окружения, то первый процесс php-cgi.exe породит указанное количество потомков, которые будут разделять те же TCP-сокеты.

ftok()

Добавлена поддержка для ftok()


Миграция с PHP 5.6.x на PHP 7.0.x

Содержание

  • Изменения, ломающие обратную совместимость
  • Новая функциональность
  • Функциональность, объявленная устаревшей в PHP 7.0.x
  • Измененные функции
  • Новые функции
  • Новые классы и интерфейсы
  • Новые глобальные константы
  • Изменения в модулях SAPI
  • Удаленные расширения и SAPI
  • Другие изменения

Несмотря на то, что PHP 7.0 является новой основной версией, были предприняты усилия, чтобы сделать миграцию максимально безболезненной. Этот релиз ориентирован, в основном, на удалении функциональных возможностей объявленных устаревшими в предыдущих версиях и улучшения согласованности языка.

Есть небольшое количество несовместимостей и новой функциональности, которые следует учитывать и тестировать прежде чем менять версию PHP в рабочем окружении.

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.4.x, 5.5.x и 5.6.x.


Изменения, ломающие обратную совместимость

Изменения в обработке ошибок и исключений

Многие фатальные и поправимые фатальные ошибки были переделаны в исключения в PHP 7. Эти исключения наследуют класс Error, который, в свою очередь, реализует интерфейс Throwable (новый базовый интерфейс, который наследуют все исключения).

Это означает, пользовательские обработчики ошибок могут не быть вызваны, потому что вместо вызова ошибки, будет выброшено исключение (порождая новые фатальные ошибки из-за неперехваченных исключений класса Error).

Более подробное описание того, как ошибки работают в PHP 7, можно найти на странице ошибки PHP 7. Это руководство всего лишь перечисляет изменения, которые могут привести к обратной несовместимости.

set_exception_handler() больше не гарантирует получение объекта класса Exception

Код, реализующий регистрацию обработчика исключений с помощью set_exception_handler(), используя декларацию типа Exception, вызовет фатальную ошибку, если будет выброшено исключение Error.

Если требуется работа обработчика в PHP 5 и 7, вы должны убрать объявление класса из обработчика. Если код предполагается использовать только в PHP 7, то можно просто поменять тип с Exception на Throwable.

<?php
// Только PHP 5. В PHP 7 может вызвать фатальную ошибку.
function handler(Exception $e) { ... }
set_exception_handler('handler');

// Будет работать PHP 5 и 7.
function handler($e) { ... }

// Только PHP 7.
function handler(Throwable $e) { ... }
?>

Встроенные конструкторы всегда вызывают исключения в случае неудачи

Ранее некоторые внутренние классы возвращали NULL или бесполезный объект, когда конструктор терпел неудачу. Все встроенные классы теперь в таком случае будут выбрасывать исключение Exception, ровно как это уже делают пользовательские классы.

Ошибки разбора бросают исключение класса ParseError

Ошибки разбора бросают исключение класса ParseError. Обработка ошибок eval() должна включать в себя блок catch, который будет ловить эту ошибку.

Изменение строгости уведомлений E_STRICT

Все сообщения E_STRICT переквалифицированы по другим уровням. Константа E_STRICT сохранена, так что error_reporting(E_ALL|E_STRICT) не вызовет ошибки.

Изменение строгости сообщений E_STRICT
Ситуация | Новый уровень/поведение
Индексирование ресурсом | E_NOTICE
Aбстрактные статические методы | Сообщение убрано, не вызывает ошибки
"Переопределение" конструктора | Сообщение убрано, не вызывает ошибки
Несоблюдение сигнатуры при наследовании | E_WARNING
Одинаковые (совместимые) свойства в двух разных трейтах | Сообщение убрано, не вызывает ошибки
Нестатический доступ к статическому свойству | E_NOTICE
Только переменные могут быть присвоены по ссылке | E_NOTICE
Только переменные могут быть переданы по ссылке | E_NOTICE
Вызов нестатического метода статически | E_DEPRECATED

Изменения в обработке переменных

PHP 7 использует абстрактное синтаксическое дерево при разборе файлов с исходным кодом. Это позволило внести множество улучшений в язык, которые ранее были невозможны из-за ограничений парсера, использовавшегося в предыдущих версиях PHP, но привело к удалению некоторых особых возможностей по соображениям согласованности и нарушило обратную совместимость. Описание этих особых случаев приведено в этой секции.

Изменения в обработке непрямых переменных, свойств и методов

Непрямой доступ к переменным, свойствам и методам теперь раскрывается строго слева-направо, в противовес предыдущему сочетанию из специальных правил. В таблице представлены изменения в порядке раскрытия.

Старая и новая оценка непрямых выражений
Выражение | Интерпретация PHP 5 | Интерпретация PHP 7
$$foo['bar']['baz'] | ${$foo['bar']['baz']} | ($$foo)['bar']['baz']
$foo->$bar['baz'] | $foo->{$bar['baz']} | ($foo->$bar)['baz']
$foo->$bar['baz']() | $foo->{$bar['baz']}() | ($foo->$bar)['baz']()
Foo::$bar['baz']() | Foo::{$bar['baz']}() | (Foo::$bar)['baz']()

Код, использующий старый порядок раскрытия справа-налево, должен быть переписан с использованием фигурных скобок (см. средний столбец в таблице выше). Это сделает код рабочим как в PHP 5.x, так и в PHP 7.x.

Также это относится и к ключевому слову global. Для эмуляции старого поведения необходимо использовать фигурные скобки:

<?php
function f() {
    // Корректно только в PHP 5.
    global $$foo->bar;

    // Корректно в PHP 5 и 7.
    global ${$foo->bar};
}
?>

Изменение в обработке list()

list() больше не присваивает переменные в обратном порядке

Теперь list() присваивает переменные в том порядке, как они перечислены, а не в обратном. В целом, это влияет только на случаи, когда list() используется совместно с оператором массива [], как показано ниже:

<?php
list($a[], $a[], $a[]) = [1, 2, 3];
var_dump($a);
?>

Результат выполнения данного примера в PHP 5:

array(3) {
  [0]=>
  int(3)
  [1]=>
  int(2)
  [2]=>
  int(1)
}

Результат выполнения данного примера в PHP 7:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

Также хочется отметить, что полагаться на порядок присвоения оператором list() - не самое разумное решение, поскольку он снова может поменяться в будущем.

Пустое присвоение list() больше не разрешено

Конструкция list() больше не может быть пустой. Следующие примеры недопустимы:

<?php
list() = $a;
list(,,) = $a;
list($x, list(), $y) = $a;
?>
list() не может раскрывать строки

list() более не может раскрывать строки. Используйте str_split().

Изменен порядок массива при автоматическом создании через присвоение по ссылке

Порядок создания элементов в массиве был изменен, когда элемент создается путем присвоения значения переменной, на которую ссылается этот элемент. Пример:

<?php
$array = [];
$array["a"] =& $array["b"];
$array["b"] = 1;
var_dump($array);
?>

Результат выполнения данного примера в PHP 5:

array(2) {
  ["b"]=>
  &int(1)
  ["a"]=>
  &int(1)
}

Результат выполнения данного примера в PHP 7:

array(2) {
  ["a"]=>
  &int(1)
  ["b"]=>
  &int(1)
}

Скобки вокруг аргументов функции больше ни на что не влияют

В PHP 5 при использовании избыточных скобок вокруг аргументов функции не выводилось предупреждение, когда аргумент передавался по ссылке. Теперь предупреждение выводится всегда.

<?php
function getArray() {
    return [1, 2, 3];
}

function squareArray(array &$a) {
    foreach ($a as &$v) {
        $v **= 2;
    }
}

// Выведет предупреждение в PHP 7.
squareArray((getArray()));
?>

Результат выполнения данного примера:

Notice: Only variables should be passed by reference in /tmp/test.php on line 13

Изменения foreach

Небольшие изменения были внесены в поведение управляющей структуры foreach. Основное изменение касается модификации итерируемого массива и обработки его внутреннего указателя.

foreach больше не изменяет внутренний указатель массива

До PHP 7 в процессе итерации массива в foreach, его внутренний указатель изменялся. В примере ниже показано, что это поведение изменено:

<?php
$array = [0, 1, 2];
foreach ($array as &$val) {
    var_dump(current($array));
}
?>

Результат выполнения данного примера в PHP 5:

int(1)
int(2)
bool(false)

Результат выполнения данного примера в PHP 7:

int(0)
int(0)
int(0)

foreach по значениям оперирует копией массива

Если foreach используется для стандартного перебора по значению, то он оперирует копией массива, а не самим массивом. Это значит, что изменения внесенные в массив внутри цикла не затронут перебираемые значения.

Для foreach по ссылке улучшили поведение при итерации

Когда foreach используется для перебора по ссылке, он будет лучше отслеживать изменения, вносимые в массив в процессе итерации. К примеру, добавление элементов к итерируемому массиву приведет к тому, что эти новые элементы попадут в перебор:

<?php
$array = [0];
foreach ($array as &$val) {
    var_dump($val);
    $array[1] = 1;
}
?>

Результат выполнения данного примера в PHP 5:

int(0)

Результат выполнения данного примера в PHP 7:

int(0)
int(1)

Итерация объектов не реализующих Traversable

Итерация объектов не реализующих Traversable теперь происходит так же, как и итерация массива по ссылке. Так получается вследствие того, что улучшения поведения при изменении массива во время итерации также влияет при добавлении или удалении свойств объекта.

Изменение в обработке значений типа integer

Некорректная восьмеричная нотация

Ранее восьмеричные литералы, содержащие некорректные числы молча обрезались (0128 считались за 012). Сейчас в таких случаях будет выдана ошибка разбора.

Отрицательные побитовые смещения

Теперь побитовые смещения на отрицательную величину будут бросать исключение ArithmeticError:

<?php
var_dump(1 >> -1);
?>

Результат выполнения данного примера в PHP 5:

int(0)

Результат выполнения данного примера в PHP 7:

Fatal error: Uncaught ArithmeticError: Bit shift by negative number in /tmp/test.php:2
Stack trace:
#0 {main}
  thrown in /tmp/test.php on line 2

Побитовые смещения с выходом из допустимого диапазона

Побитовые смещения (в обоих направлениях) за пределы ширины типа integer будут всегда возвращать 0. Раньше поведение зависело от архитектуры.

Изменение в делении на ноль

Ранее использование нуля в качестве делителя в операциях деления (/) или деления по модулю (%) приводило к ошибке уровня E_WARNING и возврату значения false. Теперь оператор деления возвращает число с плавающей запятой, равное +INF, -INF или NAN, как определено в IEEE 754. Деление по модулю вместо ошибки уровня E_WARNING будет выбрасывать исключение DivisionByZeroError.

<?php
var_dump(3/0);
var_dump(0/0);
var_dump(0%0);
?>

Результат выполнения данного примера в PHP 5:

Warning: Division by zero in %s on line %d
bool(false)

Warning: Division by zero in %s on line %d
bool(false)

Warning: Division by zero in %s on line %d
bool(false)

Результат выполнения данного примера в PHP 7:

Warning: Division by zero in %s on line %d
float(INF)

Warning: Division by zero in %s on line %d
float(NAN)

PHP Fatal error:  Uncaught DivisionByZeroError: Modulo by zero in %s line %d

Изменения в обработке строк

Шестнадцатеричные строки больше не считаются за числовые

Строки, содержащие шестнадцатеричные символы больше не считаются за числовые. Пример:

<?php
var_dump("0x123" == "291");
var_dump(is_numeric("0x123"));
var_dump("0xe" + "0x1");
var_dump(substr("foo", "0x1"));
?>

Результат выполнения данного примера в PHP 5:

bool(true)
bool(true)
int(15)
string(2) "oo"

Результат выполнения данного примера в PHP 7:

bool(false)
bool(false)
int(0)

Notice: A non well formed numeric value encountered in /tmp/test.php on line 5
string(3) "foo"

Используйте функцию filter_var() для проверки строки на содержание шестнадцатеричного числа и преобразования этой строки к значению типа integer:

<?php
$str = "0xffff";
$int = filter_var($str, FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX);
if (false === $int) {
    throw new Exception("Некорректное целое число!");
}
var_dump($int); // int(65535)
?>

\u{ может вызывать ошибки

В связи с добавлением нового синтаксиса экранирования кодов Unicode, строки, содержащие строку \u{, предворяющую некорректную последовательность, может привести к фатальной ошибке. Для того, чтобы этого избежать, необходимо экранировать первый обратный слеш.

Удаленные функции

call_user_method() и call_user_method_array()

Функции, объявленные устаревшими в PHP 4.1.0 в пользу call_user_func() и call_user_func_array(). Возможно вам также будет интересно рассмотреть возможность обращения к функциям через переменные и/или оператор ....

Все функции ereg*

Все функции ereg удалены. Рекомендованная альтернатива - PCRE.

Псевдонимы mcrypt

Устаревшая функция mcrypt_generic_end() была удалена в пользу функции mcrypt_generic_deinit().

Кроме этого, устаревшие функции mcrypt_ecb(),
mcrypt_cbc(), mcrypt_cfb() и
mcrypt_ofb() были удалены в пользу использования
mcrypt_decrypt() с
соответствующей константой
MCRYPT_MODE_*.

Все функции расширения mysql

Все функции ext/mysql были удалены. Для выбора другого MySQL API смотрите раздел Выбор MySQL API.

Все функции расширения mssql

Все функции ext/mssql были удалены. Список альтернатив смотрите в разделе Введение в MSSQL.

Псевдонимы intl

Устаревшие псевдонимы datefmt_set_timezone_id() и
IntlDateFormatter::setTimeZoneID() были удалены
в пользу datefmt_set_timezone() и
IntlDateFormatter::setTimeZone() соответственно.

set_magic_quotes_runtime()

set_magic_quotes_runtime() и ее псевдоним magic_quotes_runtime() были удалены. Они были объявлены устаревшими в PHP 5.3.0 и полностью потеряли свой смысл с отказом от магических кавычек в PHP 5.4.0.

set_socket_blocking()

Устаревший псевдоним set_socket_blocking() был удален в пользу stream_set_blocking().

dl() в PHP-FPM

Функция dl() больше не может использоваться в PHP-FPM. Однако она сохранилась в CLI и встроенных SAPI.

Функции GD Type1

Поддержка шрифтов PostScript Type1 удалена из расширения GD. Соответственно были удалены следующие функции:

  • imagepsbbox()
  • imagepsencodefont()
  • imagepsextendfont()
  • imagepsfreefont()
  • imagepsloadfont()
  • imagepsslantfont()
  • imagepstext()

Вместо них рекомендуется использовать шрифты TrueType и связанные с ними функции.

Удаленные директивы INI-файла

Удаленные возможности

Следующие INI-директивы были удалены, так как связанные с ними функции также были удалены:

  • always_populate_raw_post_data
  • asp_tags

xsl.security_prefs

Директива xsl.security_prefs была удалена. Вместо нее для контроля настроек безопасности должен вызываться метод XsltProcessor::setSecurityPrefs() на уровне каждого процессора.

Прочие изменения, затрагивающие обратную совместимость

Новые объекты не могут присваиваться по ссылке

Результат оператора new больше не может быть присвоен переменной по ссылке:

<?php
class C {}
$c =& new C;
?>

Результат выполнения данного примера в PHP 5:

Deprecated: Assigning the return value of new by reference is deprecated in /tmp/test.php on line 3

Результат выполнения данного примера в PHP 7:

Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3

Некорректные имена классов, интерфейсов и трейтов

Следующие имена нельзя использовать для классов, интерфейсов и трейтов:

  • bool
  • int
  • float
  • string
  • NULL
  • TRUE
  • FALSE

Более того, следующие имена не должны использоваться. Они не приведут к ошибке в PHP 7.0, но они зарезервированы на будущее и должны считаться устаревшими.

  • resource
  • object
  • mixed
  • numeric

Удалены PHP-теги ASP и script

Удалена поддержка использования тегов ASP и script для определения кода PHP.

Удаленные теги ASP и script
Открывающий тег | Закрывающий тег
<% | %>
<%= | %>
<script language="php"> | </script>

Удалены вызовы из неподходящего контекста

Ранее признанные устаревшими в PHP 5.6 статические вызовы нестатических методов из неподходящего контекста теперь приведут к тому, что для вызываемого метода переменная $this будет не определена и будет выведено предупреждение.

<?php
class A {
    public function test() { var_dump($this); }
}

// Обратите вимание: НЕ расширяет класс A
class B {
    public function callNonStaticMethodOfA() { A::test(); }
}

(new B)->callNonStaticMethodOfA();
?>

Результат выполнения данного примера в PHP 5.6:

Deprecated: Non-static method A::test() should not be called statically, assuming $this from incompatible context in /tmp/test.php on line 8
object(B)#1 (0) {
}

Результат выполнения данного примера в PHP 7:

Deprecated: Non-static method A::test() should not be called statically in /tmp/test.php on line 8

Notice: Undefined variable: this in /tmp/test.php on line 3
NULL

yield теперь право-ассоциативный оператор

Конструкция yield больше не требует оборачивания в скобки и является право-ассоциативным оператором с приоритетом между print и =>. Это может привести к изменению поведения:

<?php
echo yield -1;
// Ранее интерпретировалось так
echo (yield) - 1;
// А теперь так
echo yield (-1);

yield $foo or die;
// Ранее интерпретировалось так
yield ($foo or die);
// А теперь так
(yield $foo) or die;
?>

Скобки могут быть использованы для устранения неоднозначности в таких случаях.

Функции не могут иметь несколько параметров с одинаковыми именами

Больше нельзя определить несколько параметров функции с одинаковыми именами. К примеру такая функция выдаст ошибку уровня E_COMPILE_ERROR:

<?php
function foo($a, $b, $unused, $unused) {
    //
}
?>

Функции, работающие с аргументами, теперь возвращают их текущие значения

func_get_arg(), func_get_args(), debug_backtrace() и трассировки исключений возвращают не исходные переданные значения, а текущие значения, которые могут уже быть изменены.

<?php
function foo($x) {
    $x++;
    var_dump(func_get_arg(0));
}
foo(1);?>

Результат выполнения данного примера в PHP 5:

1

Результат выполнения данного примера в PHP 7:

2

Оператор switch больше не может иметь несколько блоков default

Больше невозможно задать более одного блока default в операторе switch. К примеру, такая конструкция выдаст ошибку E_COMPILE_ERROR:

<?php
switch (1) {
    default:
    break;
    default:
    break;
}
?>

Удалена $HTTP_RAW_POST_DATA

$HTTP_RAW_POST_DATA больше не доступен. Вместо него используйте поток php://input.

Запрещены комментарии # в INI-файлах

Поддержка префикса комментария # в INI-файлах удалена. Используйте префикс ; вместо него. Это изменение касается как php.ini, так и файлов, обрабатываемых функциями parse_ini_file() и parse_ini_string().

Расширение JSON заменено на JSOND

Расширение JSON заменено на JSOND, что порождает три небольших обратных несовместимости. Первое - числа не должны заканчиваться на точку (то есть 34. должно быть заменено на 34.0 или 34). Второе - при использовании научной нотации, экспонента e не должна следовать сразу за десятичной точкой (то есть 3.e3 нужно поменять на 3.0e3 или 3e3). Третье - пустая строка больше не считается за корректный JSON.

Ошибки внутренних функций при переполнении

Ранее встроенные функции могли тихо обрезать числа, полученные при приведении типа float к integer, если float был больше, чем способен вместить integer. Теперь же будет выдаваться ошибка E_WARNING и возвращаться NULL.

Исправление для возвращаемых значений пользовательского обработчика сессии

Любые предикатные функции, реализованные с помощью пользовательских обработчиков сессии и возвращающие FALSE или -1, вызовут фатальную ошибку. Если эти функции вернут любое значение, кроме логического, -1 или 0, они будут считаться завершенными с ошибкой и вызовут предупреждение E_WARNING.

Порядок сортировки одинаковых элементов

Внутренний алгоритм сортировки был изменен, что может сказаться на отличном от предыдущего отсортированном порядке элементов, определенных как одинаковые.

Замечание:

Не полагайтесь на порядок одинаковых элементов, так как он может в любое время измениться.

Изменение порядка обработки операторов break и switch

Операторы break и continue вне цикла или управляющей структуры switch теперь обрабатываются во время компиляции, а не во время выполнения, как это было ранее, поэтому выдают ошибки уровня E_COMPILE_ERROR.

Mhash больше не является расширением

Расширение Mhash полностью интегрировано в расширение Hash. Таким образом, теперь нельзя определить доступность поддержки Mhash с помощью функции extension_loaded(); вместо нее используйте function_exists(). Кроме того, Mhash больше не будет выводить с помощью get_loaded_extensions() и подобных функций.

declare(ticks)

Директива declare(ticks) больше не проникает в различные модули компиляции.


Новая функциональность

Объявления скалярных типов

Объявления скалярных типов введена в двух вариантах: принудительный (по умолчанию) и строгий. Следующие типы могут использоваться для объявления параметров (в обоих вариантах): строки (string), целые (int), числа с плавающей точкой (float) и логические значения (bool). Они дополняют аргументы других типов, введенных в PHP 5: имена классов, интерфейсов, array и callable.

<?php
// Принудительный режим
function sumOfInts(int ...$ints)
{
    return array_sum($ints);
}

var_dump(sumOfInts(2, '3', 4.1));

Результат выполнения данного примера:

int(9)

Для установки строгого режима, в самом начале файла необходимо поместить одну директиву declare. Это означает, что строгость объявления скалярных типов работает на уровне файла и не затрагивает весь остальной код. Эта директива затрагивает не только объявления параметров, но и возвращаемые значения функций (см. объявления возвращаемого типа), встроенные функции PHP и функции загруженных расширений.

Подробную документацию и примеры использования читайте в разделе декларация типов.

Объявления возвращаемых значений

В PHP 7 добавлена поддержка объявления возвращаемого типа. Аналогично как и объявления типов аргументов, объявление типа возвращаемого значения указывает, значение какого типа должна вернуть функция. Для объявления типа возвращаемого значения доступны все те же типы, что и для объявления типов аргументов.

<?php

function arraysSum(array ...$arrays): array
{
    return array_map(function(array $array): int {
        return array_sum($array);
    }, $arrays);
}

print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));

Результат выполнения данного примера:

Array
(
    [0] => 6
    [1] => 15
    [2] => 24
)

Полную документацию и примеры использования читайте в разделе про объявление возвращаемого типа.

Оператор объединения с null

Был добавлен оператор объединения с null (??), являющийся синтаксическим сахаром для достаточно распространенного действия, когда совместно используются тернарный оператор и функция isset(). Он возвращает первый операнд, если он задан и не равен NULL, а в обратном случае возвращает второй операнд.

<?php
// Извлекаем значение $_GET['user'], а если оно не задано,
// то возвращаем 'nobody'
$username = $_GET['user'] ?? 'nobody';
// Это идентично следующему коду:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

// Данный оператор можно использовать в цепочке.
// В этом примере мы сперва проверяем, задан ли $_GET['user'], если нет,
// то проверяем $_POST['user'], и если он тоже не задан, то присваеваем 'nobody'.
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';
?>

Оператор spaceship (космический корабль)

Этот оператор предназначен для сравнения двух выражений. Он возвращает -1, 0 или 1 если $a, соответственно, меньше, равно или больше чем $b. Сравнение производится в соответствии с правилами сравнения типов PHP.

<?php
// Целые числа
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// Числа с плавающей точкой
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Строки
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>

Определение констант массивов с помощью define()

Можно определить константу типа array с помощью функции define(). В PHP 5.6 такие константы можно было задавать только с помощью const.

<?php
define('ANIMALS', [
    'dog',
    'cat',
    'bird'
]);

echo ANIMALS[1]; // выводит "cat"
?>

Анонимные классы

Была добавлена поддержка анонимных классов с помощью new class. Их можно использовать тогда, когда нужен одноразовый класс и создавать полноценный класс, а потом его объект не имеет смысла:

<?php
interface Logger {
    public function log(string $msg);
}

class Application {
    private $logger;

    public function getLogger(): Logger {
         return $this->logger;
    }

    public function setLogger(Logger $logger) {
         $this->logger = $logger;
    }
}

$app = new Application;
$app->setLogger(new class implements Logger {
    public function log(string $msg) {
        echo $msg;
    }
});

var_dump($app->getLogger());
?>

Результат выполнения данного примера:

object(class@anonymous)#2 (0) {
}

Подробную документацию и примеры использования читайте в разделе про анонимные классы.

Синтаксис кодирования Unicode

Он принимает шестнадцатеричный код Unicode и записываем его в формате UTF-8 в двойных кавычках или формате heredoc. Любой корректный код будет принят. Ведущие нули по желанию.

echo "\u{aa}";
echo "\u{0000aa}";
echo "\u{9999}";

Результат выполнения данного примера:

?
? (То же самое, что и первый вариант, но с ведущими нулями)
?

Closure::call()

Closure::call() является более производительным и коротким способом временного связывания области действия объекта с замыканием и его вызовом.

<?php
class A {private $x = 1;}

// До PHP 7
$getX = function() {return $this->x;};
$getXCB = $getX->bindTo(new A, 'A'); // промежуточное замыкание
echo $getXCB();

// PHP 7+
$getX = function() {return $this->x;};
echo $getX->call(new A);

Результат выполнения данного примера:

1
1

unserialize() с фильтрацией

Этот функционал обеспечивает более высокий уровень безопасности при десериализации объектов с непроверенными данными. Это позволяет предотвратить возможную инъекцию кода, позволяя разработчику использовать белый список классов для десериализации.

<?php

// Преобразование всех объектов в __PHP_Incomplete_Class
$data = unserialize($foo, ["allowed_classes" => false]);

// Преобразование всех объектов, кроме MyClass и MyClass2 в __PHP_Incomplete_Class
$data = unserialize($foo, ["allowed_classes" => ["MyClass", "MyClass2"]]);

// Поведение по умолчанию принимает все классы (можно просто не задавать второй аргумент)
$data = unserialize($foo, ["allowed_classes" => true]);

IntlChar

Новый класс IntlChar добавляет новую функциональность в ICU. Класс определяет несколько статических методов и констант для манипулирования символами Unicode.

<?php

printf('%x', IntlChar::CODEPOINT_MAX);
echo IntlChar::charName('@');
var_dump(IntlChar::ispunct('!'));

Результат выполнения данного примера:

10ffff
COMMERCIAL AT
bool(true)

Для использования это класса необходимо установить расширение Intl.

Ожидания

Ожидания являются улучшенной, обратно совместимой версией старой функции assert(). Они позволяют делать предположения с нулевой стоимостью в промышленном коде и предоставляют возможность выбрасывать пользовательские исключения в случае провала ожидания.

Вместе тем, что старое API поддерживается, assert() теперь является языковой конструкцией, принимающей первым аргументом выражения, а не только строки для оценки или логические значения для проверки.

<?php
ini_set('assert.exception', 1);

class CustomError extends AssertionError {}

assert(false, new CustomError('Сообщение об ошибке'));
?>

Результат выполнения данного примера:

Fatal error: Uncaught CustomError: Сообщение об ошибке

Подробное описание этого функционала, а также инструкции для его конфигурирования для тестовых и промышленных сред, читайте в секции Ожидания раздела, посвященному assert().

Групповые объявления use

Классы, функции и константы импортируемые из одного и того же namespace, теперь можно группировать в одном операторе use.

<?php
// До PHP 7
use some\namespace\ClassA;
use some\namespace\ClassB;
use some\namespace\ClassC as C;

use function some\namespace\fn_a;
use function some\namespace\fn_b;
use function some\namespace\fn_c;

use const some\namespace\ConstA;
use const some\namespace\ConstB;
use const some\namespace\ConstC;

// PHP 7+
use some\namespace\{ClassA, ClassB, ClassC as C};
use function some\namespace\{fn_a, fn_b, fn_c};
use const some\namespace\{ConstA, ConstB, ConstC};
?>

Выражение return в генераторах

Эта функциональность добавлена к генераторам, введенным в PHP 5.5. Она позволяет использовать оператор return в генераторах в качестве окончательного возвращаемого значения (возврат по ссылке недопустим). Это значение можно извлечь с помощью нового метода Generator::getReturn(), который можно использовать только после того, как генератор вернул все сгенерированные значение.

<?php

$gen = (function() {
    yield 1;
    yield 2;

    return 3;
})();

foreach ($gen as $val) {
    echo $val, PHP_EOL;
}

echo $gen->getReturn(), PHP_EOL;

Результат выполнения данного примера:

1
2
3

Возможность явно получать окончательное значение генератора является очень полезной, так как позволяет клиентскому коду, использующему генератор, получать и обработать самое последнее значение генератора, после которого точно ничего больше не будет. Это сильно проще, чем вынуждать разработчика проверять, последнее ли значение вернулось и как-то по особенному его обрабатывать.

Делегация генератора

Теперь генератор может автоматически делегировать другому генератору, объекту класса, реализующий Traversable или массиву без необходимости писать в нем дополнительную обработку полученных значений. Достигается это с помощью конструкции yield from.

<?php
function gen()
{
    yield 1;
    yield 2;
    yield from gen2();
}

function gen2()
{
    yield 3;
    yield 4;
}

foreach (gen() as $val)
{
    echo $val, PHP_EOL;
}
?>

Результат выполнения данного примера:

1
2
3
4

Функция целочисленного деления intdiv()

Новая функция intdiv() производит целочисленное деление операндов и возвращает его результат.

<?php
var_dump(intdiv(10, 3));
?>

Результат выполнения данного примера:

int(3)

Опции сессий

Теперь session_start() принимает массив опций, которые переопределят конфигурационные директивы сессии установленные в php.ini.

Также опции были расширены включенной по умолчанию опцией session.lazy_write, которая говорит PHP о том, что файл сессии надо перезаписывать, только если изменились данные сессии, и опцией read_and_close, которую можно задать только через session_start() для того, чтобы PHP закрывал сессию сразу же как прочитает ее данные и не вносил в нее каких-либо изменений.

К примеру, для установки session.cache_limiter равным private и немедленному закрытию сессии после чтения ее данных:

<?php
session_start([
    'cache_limiter' => 'private',
    'read_and_close' => true,
]);
?>

preg_replace_callback_array()

Новая функция preg_replace_callback_array() позволяет писать более чистый код, когда требуется использовать функцию preg_replace_callback(). До PHP 7 при необходимости обработать разные регулярные выражения разными функциями приходилось для каждой такой обработки писать отдельный вызов функции.

Теперь можно использовать одну функцию, передавая в нее ассоциативный массив, ключами которого являются регулярные выражения, а значениями - функции обратного вызова.

Функции CSPRNG

Были добавлены две новые кроссплатформенные функции для генерации криптографически безопасных строк и целых чисел: random_bytes() и random_int().

Теперь функция list() всегда может распаковывать объекты, реализующие ArrayAccess

Ранее функция list() не гарантировала корректную обработку объектов, реализующих ArrayAccess. Теперь это исправлено.

Прочие изменения

  • Добавлена возможность доступа к методам и свойствам класса при клонировании, то есть (clone $foo)->bar().


Функциональность, объявленная устаревшей в PHP 7.0.x

Конструкторы в стиле PHP 4

Конструкторы в стиле PHP 4 (методы с тем же именем, что и сам класс) объявлены устаревшими и будут удалены в будущем. В PHP 7 будет выдаваться предупреждение E_DEPRECATED в случае использования таких конструкторов. Классы, реализующие метод __construct(), затронуты не будут.

<?php
class foo {
    function foo() {
        echo 'Я конструктор!';
    }
}
?>

Результат выполнения данного примера:

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; foo has a deprecated constructor in example.php on line 3

Статические вызовы нестатических методов

Статические вызовы методов, не определенных как static, объявлены устаревшими и могут быть в будущем запрещены.

<?php
class foo {
    function bar() {
        echo 'Я не статический!';
    }
}

foo::bar();
?>

Результат выполнения данного примера:

Deprecated: Non-static method foo::bar() should not be called statically in - on line 8
Я не статический!

Опция salt функции password_hash()

Опция salt функции password_hash() была объявлена устаревшей для предотвращения использования разработчиками своих собственных salt (зачастую небезопасных). Функция самостоятельно генерирует криптографически безопасный salt, если он не задан разработчиком, следовательно больше нет нужды в пользовательских генераторах salt.

Опция контекста SSL capture_session_meta

Опция контекста SSL capture_session_meta объявлена устаревшей. Метаданные SSL теперь доступны с помощью функции stream_get_meta_data().

Устаревшие функции LDAP

Следующие функции были объявлены устаревшими:

  • ldap_sort()


Измененные функции

Ядро PHP

  • debug_zval_dump() теперь печатает "int" вместо "long", и "float" вместо "double"
  • dirname() принимает второй, необязательный, параметр depth, для получения имени директории на depth уровней выше текущей.
  • getrusage() теперь подерживается в Windows.
  • Функции mktime() и gmmktime() больше не принимают параметр is_dst.
  • Функция preg_replace() больше не поддерживает "\e" (PREG_REPLACE_EVAL). Вместо этого используйте preg_replace_callback().
  • Функция setlocale() больше не принимает параметр category переданный в виде строки. Теперь нужно использовать константы LC_*.
  • Функции exec(), system() и passthru() теперь защищены от NULL-байта.
  • shmop_open() теперь возвращает не целое, а ресурс,
который должен быть передан в shmop_size(),
shmop_write(), shmop_read(),
shmop_close() и shmop_delete().
  • substr() и iconv_substr() возвращают пустую строку, если start равно длине строки.
  • Использование xml_parser_free() теперь недостаточно для освобождения ресурса парсера, если он ссылается на объект, а этот объект ссылается на ресурс парсера. В таком случае необходимо дополнительно вручную удалить (unset) переменную $parser.


Новые функции

Замыкания

  • Closure::call()

CSPRNG

  • random_bytes()
  • random_int()

Обработка и логирование ошибок

  • error_clear_last()

Генераторы

  • Generator::getReturn()

Вычисления с увеличенной точностью (GNU Multiple Precision)

  • gmp_random_seed()

Математика

  • intdiv()

PCRE

  • preg_replace_callback_array()

Опции/информация PHP

  • gc_mem_caches()
  • get_resources()

POSIX

  • posix_setrlimit()

Reflection

  • ReflectionParameter::getType()
  • ReflectionParameter::hasType()
  • ReflectionFunctionAbstract::getReturnType()
  • ReflectionFunctionAbstract::hasReturnType()

Zip

  • ZipArchive::setCompressionIndex()
  • ZipArchive::setCompressionName()

Компрессия Zlib

  • inflate_add()
  • deflate_add()
  • inflate_init()
  • deflate_init()


Новые классы и интерфейсы

Интернационализация

  • IntlChar

Reflection

  • ReflectionGenerator
  • ReflectionType

Управление сессиями

  • SessionUpdateTimestampHandlerInterface

Иерархия исключений

  • Throwable
  • Error
  • TypeError
  • ParseError
  • AssertionError
  • ArithmeticError
  • DivisionByZeroError


Новые глобальные константы

Константы предопределенные в ядре PHP

  • PHP_INT_MIN

GD

  • IMG_WEBP (с PHP 7.0.10)

JSON

  • JSON_ERROR_INVALID_PROPERTY_NAME
  • JSON_ERROR_UTF16

LibXML

  • LIBXML_BIGLINES

PCRE

  • PREG_JIT_STACKLIMIT_ERROR

POSIX

  • POSIX_RLIMIT_AS
  • POSIX_RLIMIT_CORE
  • POSIX_RLIMIT_CPU
  • POSIX_RLIMIT_DATA
  • POSIX_RLIMIT_FSIZE
  • POSIX_RLIMIT_LOCKS
  • POSIX_RLIMIT_MEMLOCK
  • POSIX_RLIMIT_MSGQUEUE
  • POSIX_RLIMIT_NICE
  • POSIX_RLIMIT_NOFILE
  • POSIX_RLIMIT_NPROC
  • POSIX_RLIMIT_RSS
  • POSIX_RLIMIT_RTPRIO
  • POSIX_RLIMIT_RTTIME
  • POSIX_RLIMIT_SIGPENDING
  • POSIX_RLIMIT_STACK
  • POSIX_RLIMIT_INFINITY

Zlib

  • ZLIB_ENCODING_RAW
  • ZLIB_ENCODING_DEFLATE
  • ZLIB_ENCODING_GZIP
  • ZLIB_FILTERED
  • ZLIB_HUFFMAN_ONLY
  • ZLIB_FIXED
  • ZLIB_RLE
  • ZLIB_DEFAULT_STRATEGY
  • ZLIB_BLOCK
  • ZLIB_FINISH
  • ZLIB_FULL_FLUSH
  • ZLIB_NO_FLUSH
  • ZLIB_PARTIAL_FLUSH
  • ZLIB_SYNC_FLUSH


Изменения в модулях SAPI

FPM

Не полностью определенный порт listen теперь слушает как IPv4, так и IPv6

В PHP 5 директива listen содержащая только номер порта, приводила к прослушиванию всех интерфейсах, но только по IPv4. PHP 7 теперь будет принимать как с IPv4, так и с IPv6.

Это не влияет на директивы, содержащие конкретные IP-адреса.


Удаленные расширения и SAPI

Удаленные расширения

  • ereg
  • mssql
  • mysql
  • sybase_ct

Удаленные SAPI

  • aolserver
  • apache
  • apache_hooks
  • apache2filter
  • caudium
  • continuity
  • isapi
  • milter
  • nsapi
  • phttpd
  • pi3web
  • roxen
  • thttpd
  • tux
  • webjames


Другие изменения

Ослабление ограничений на использование зарезервированных слов

Глобально зарезервированные слова теперь разрешено использовать для свойств, констант и методов в классах, интерфейсах и трейтах. Это уменьшает масштабы проблем обратной совместимости при вводе новых ключевых слов и позволяет избежать ограничений для API.

Это особенно полезно при создании внутренних DSL с текучими интерфейсами:

<?php
// Ранее 'new', 'private' и 'for' использовать было нельзя.
Project::new('Project Name')->private()->for('purpose here')->with('username here');
?>

Единственное ограничение, что слово class все еще нельзя использовать как имя константы, так как оно будет пересекаться с синтаксисом разрешения имени класса (ClassName::class).

Удаление предупреждения date.timezone

Ранее вызывалось предупреждение, если INI-настройка date.timezone не была задана раньше использования каких-либо функций работы с датой или временем. Теперь это предупреждение удалено (но date.timezone по умолчанию все еще UTC).


Миграция с PHP 5.5.x на PHP 5.6.x

Содержание

  • Изменения, ломающие обратную совместимость
  • Новые возможности
  • Функционал, объявленный устаревшим в PHP 5.6.x
  • Измененные функции
  • Новые функции
  • Изменения OpenSSL в PHP 5.6.x
  • Другие изменения в расширениях
  • Новые глобальные константы

Большинство изменений в PHP 5.6.x никак не скажутся на существующем коде. Есть несколько несовместимостей и новых особенностей, которые должны быть учтены. Также необходимо протестировать код перед проведением миграции в рабочих окружениях.

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.4.x и 5.5.x.


Изменения, ломающие обратную совместимость

Несмотря на то, что большая часть существующего кода PHP 5 должна работать без изменений, все же ознакомьтесь с некоторыми изменениями, которые могут сказаться на обратной совместимости:

Ключи массива не будут перезаписаны при определении массива как свойства класса через литерал массива

Ранее в массивах, заданные как свойства класса со смешанными явными и неявными ключами, элементы с явно заданными ключами могли молча перезаписываться, если явный ключ пересекался с последовательным неявным ключом. Например:

<?php
class C {
    const ONE = 1;
    public $array = [
        self::ONE => 'foo',
        'bar',
        'quux',
    ];
}

var_dump((new C)->array);
?>

Результат выполнения данного примера в PHP 5.5:

array(2) {
  [0]=>
  string(3) "bar"
  [1]=>
  string(4) "quux"
}

Результат выполнения данного примера в PHP 5.6:

array(3) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(4) "quux"
}

Строгость json_decode()

Теперь json_decode() в соответствии со спецификацией JSON отклоняет JSON литералы true, false и null, заданные не строго в нижнем регистре, и, соответственно, устанавливает json_last_error(). Ранее данные, передаваемые в json_decode() и содержащие исключительно одно из этих значений в верхнем или смешанном регистре, принимались.

Это изменение повлияет только в случае передачи в json_decode() некорректного JSON. В случае корректно сформированного JSON, никакого эффекта не будет.

Теперь потоковые обертки по умолчанию проверяют сертификаты точек при использовании SSL/TLS

Все шифруемые клиентские потоки теперь по умолчанию включают проверку пиров. По умолчанию используется OpenSSL CA пакет для проверки сертификата пира. В большинстве случаев не требуется ничего делать для соединения с серверами с правильным SSL сертификатом, так как обычно OpenSSL уже настроен для использования хороших CA пакетов.

Стандартный CA пакет может быть переопределен глобально с помощью установки или openssl.cafile или openssl.capath строк конфигурации, или же на уровне каждого запроса используя опции контекста cafile или capath.

Хотя это и не рекомендуется, но можно отклчить проверку сертификата пира для запроса, установив verify_peer опцию контекста в FALSE, и можно отключить проверку имени пира, установив verify_peer_name в FALSE.

Теперь ресурсы GMP являются объектами

Теперь ресурсы GMP является объектами. Функциональное API, реализованное в расширении GMP, осталось без изменений. Существующий код должен заработать без изменений, только если в нем явно не использовались проверки на ресурс is_resource() или что-то подобное.

Теперь функция Mcrypt требует корректные ключи и IV

mcrypt_encrypt(), mcrypt_decrypt(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ecb(), mcrypt_generic() и mcrypt_ofb() больше не принимают ключи и IV с некорректной длиной, а режимы блочного шифра, требующие IV, будут завершаться с ошибкой, если его не передать.

Загрузка файлов с помощью cURL

Теперь загрузка с использованием синтаксиса @file требует установки CURLOPT_SAFE_UPLOAD в значение FALSE. Вместо этого следует использовать CURLFile.


Новые возможности

Константные выражения

Теперь можно предоставить скалярное выражение, включающее числовые и строковые литералы и/или константы, когда ранее ожидалось статическое значение, например, в объявлениях констант или значениях аргументов функций по умолчанию.

<?php
const ONE = 1;
const TWO = ONE * 2;

class C {
    const THREE = TWO + 1;
    const ONE_THIRD = ONE / self::THREE;
    const SENTENCE = 'Значение константы THREE - '.self::THREE;

    public function f($a = ONE + self::THREE) {
        return $a;
    }
}

echo (new C)->f()."\n";
echo C::SENTENCE;
?>

Результат выполнения данного примера:

4
Значение константы THREE -  3

Также можно определить массив (array) с использованием ключевого слова const:

<?php
const ARR = ['a', 'b'];

echo ARR[0];
?>

Результат выполнения данного примера:

a

Функции с переменным количеством аргументов, используя синтаксис ...

Функции с переменным количеством аргументов теперь можно реализовывать с использованием оператора ... вместо того, чтобы полагаться на func_get_args().

<?php
function f($req, $opt = null, ...$params) {
    // $params - массив, содержащий все остальные аргументы.
    printf('$req: %d; $opt: %d; количество параметров: %d'."\n",
           $req, $opt, count($params));
}

f(1);
f(1, 2);
f(1, 2, 3);
f(1, 2, 3, 4);
f(1, 2, 3, 4, 5);
?>

Результат выполнения данного примера:

$req: 1; $opt: 0; количество параметров: 0
$req: 1; $opt: 2; количество параметров: 0
$req: 1; $opt: 2; количество параметров: 1
$req: 1; $opt: 2; количество параметров: 2
$req: 1; $opt: 2; количество параметров: 3

Распаковка аргументов с помощью ...

Массивы и объекты, реализующие интерфейс Traversable могут быть распакованы в список аргументов при передаче в функцию с помощью оператора ....

<?php
function add($a, $b, $c) {
    return $a + $b + $c;
}

$operators = [2, 3];
echo add(1, ...$operators);
?>

Результат выполнения данного примера:

6

Возведение в степень с помощью **

был добавлен право-ассоциативный оператор **, обозначающий возведение в степень. Также доступен короткий синтаксис **=.

<?php
printf("2 ** 3 ==      %d\n", 2 ** 3);
printf("2 ** 3 ** 2 == %d\n", 2 ** 3 ** 2);

$a = 2;
$a **= 3;
printf("a ==           %d\n", $a);
?>

Результат выполнения данного примера:

2 ** 3 ==      8
2 ** 3 ** 2 == 512
a ==           8

use function и use const

Оператор use был расширен для поддержки импорта функций и констант в дополнение к классам. Это достигается с помощью конструкций use function и use const, соответственно.

<?php
namespace Name\Space {
    const FOO = 42;
    function f() { echo __FUNCTION__."\n"; }
}

namespace {
    use const Name\Space\FOO;
    use function Name\Space\f;

    echo FOO."\n";
    f();
}
?>

Результат выполнения данного примера:

42
Name\Space\f

phpdbg

Теперь PHP содержит интерактивный дебаггер, называющийся "phpdbg" и реализованный как модуль SAPI. Подробности смотрите в документации phpdbg.

Кодировка по умолчанию

Добавлен ini-параметр default_charset, в котором можно указать кодировку по умолчанию для использования в функциях htmlentities(), html_entity_decode() и htmlspecialchars(). Обратите внимание, что если (сейчас считается устаревшим) заданы параметры кодировки iconv и mbstring, они будут иметь преимущество перед default_charset для iconv и mbstring.

Значение этой настройки по умолчанию равно UTF-8.

Переиспользование php://input

php://input теперь можно переоткрывать и считывать столько раз, сколько нужно. Это также привело к значительному уменьшению объема памяти, необходимой для работы с данными POST.

Загрузка больших файлов

Теперь можно загружать файлы размером более 2ГБ.

GMP поддерживает перезагрузку операторов

Объекты GMP теперь поддерживают перезагрузку операторов и приведение к скалярным типам. Это позволяет использовать GMP в вашем коде более выразительно:

<?php
$a = gmp_init(42);
$b = gmp_init(17);

if (version_compare(PHP_VERSION, '5.6', '<')) {
    echo gmp_intval(gmp_add($a, $b)), PHP_EOL;
    echo gmp_intval(gmp_add($a, 17)), PHP_EOL;
    echo gmp_intval(gmp_add(42, $b)), PHP_EOL;
} else {
    echo $a + $b, PHP_EOL;
    echo $a + 17, PHP_EOL;
    echo 42 + $b, PHP_EOL;
}
?>

Результат выполнения данного примера:

59
59
59

hash_equals() для предотвращение атак по времени при сравнении строк

Была добавлена функция hash_equals() для сравнения двух строк за постоянное время. Это должно помочь избежать атак по времени; для экземпляров, во время тестирования хеширования паролей функцией crypt() (при условии, что вы не можете использовать password_hash() и password_verify(), которые не подвержены атакам по времени).

<?php
$expected  = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$correct   = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$incorrect = crypt('1234',  '$2a$07$usesomesillystringforsalt$');

var_dump(hash_equals($expected, $correct));
var_dump(hash_equals($expected, $incorrect));
?>

Результат выполнения данного примера:

bool(true)
bool(false)

__debugInfo()

Был добавлен магический метод __debugInfo() для того, чтобы позволить объекту изменять значения свойств, выводимых при использовании var_dump().

<?php
class C {
    private $prop;

    public function __construct($val) {
        $this->prop = $val;
    }

    public function __debugInfo() {
        return [
            'propSquared' => $this->prop ** 2,
        ];
    }
}

var_dump(new C(42));
?>

Результат выполнения данного примера:

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}

Алгоритм хеширования gost-crypto

Добавлен алгоритм хеширования gost-crypto. Он реализует функцию хеширования GOST, используемую в таблицах CryptoPro S-box, определенных в » RFC 4357, секция 11.2.

Улучшение SSL/TLS

Очень многое было сделано для улучшения поддержки SSL/TLS в PHP 5.6. Включая разрешение проверки пиров по умолчанию, поддержка сверки отпечатков сертификатов, снижение воздействия атаки пересоединения TLS и множества новых опций контекста SSL для более точного контроля над параметрами протокола и проверок при использовании зашифрованных потоков.

Более подробно все эти изменения описаны в разделе этого руководства Изменения OpenSSL в PHP 5.6.x

Поддержка асинхронности pgsql

Расширение pgsql теперь поддерживает асинхронные соединения и запросы, тем самым разрешая неблокирующее взаимодействие с базами данных PostgreSQL. Асинхронные соединения могут быть установлены с помощью константы PGSQL_CONNECT_ASYNC, и новые функции pg_connect_poll(), pg_socket(), pg_consume_input() и pg_flush() могут быть использованы для обработки асинхронных соединений и запросов.


Функционал, объявленный устаревшим в PHP 5.6.x

Вызовы из несовместимого контекста

Методы, вызываемые из несовместимого контекста объявлены устаревшими и будут вызывать ошибку уровня E_DEPRECATED вместо E_STRICT. В будущих версиях PHP поддержка этих вызовов будет удалена.

Примером такого вызова является:

<?php
class A {
    function f() { echo get_class($this); }
}

class B {
    function f() { A::f(); }
}

(new B)->f();
?>

Результат выполнения данного примера:

Deprecated: Non-static method A::f() should not be called statically, assuming $this from incompatible context in - on line 7
B

$HTTP_RAW_POST_DATA и always_populate_raw_post_data

always_populate_raw_post_data теперь будет вызывать ошибку E_DEPRECATED, если $HTTP_RAW_POST_DATA заполнен. Новый код должен использовать php://input вместо $HTTP_RAW_POST_DATA, который будет удалён в будущих версиях PHP. Вы можете выбрать новое поведение (в котором $HTTP_RAW_POST_DATA никогда не определяется, следовательно, E_DEPRECATED не будет генерировать ошибку) путем установки always_populate_raw_post_data в -1.

Настройки кодирования iconv и mbstring

Параметры конфигурации iconv и mbstring, связанные с кодированием, устарели в пользу default_charset. Устаревшие опции:

  • iconv.input_encoding
  • iconv.output_encoding
  • iconv.internal_encoding
  • mbstring.http_input
  • mbstring.http_output
  • mbstring.internal_encoding


Измененные функции

Ядро PHP

  • crypt() теперь генерирует предупреждение E_NOTICE, если параметр salt опущен.
  • substr_compare() теперь принимает 0 в качестве значения параметра length.
  • unserialize() теперь терпит неудачу, если переданы сериализованные данные, которые были изменены в попытке инстанциировать объект без вызова его конструктора.

cURL

  • Загрузка на сервер с использованием синтаксиса @file теперь поддерживается, только если опция CURLOPT_SAFE_UPLOAD установлена в FALSE. Вместо этого следует пользоваться CURLFile .

Mcrypt

  • Параметр source функции mcrypt_create_iv() теперь имеет значение по умолчанию MCRYPT_DEV_URANDOM вместо MCRYPT_DEV_RANDOM.

OpenSSL

  • stream_socket_enable_crypto() теперь позволяет не указывать параметр crypto_type, если контекст потока SSL включает новую опцию crypto_type.

PostgreSQL

  • pg_insert(), pg_select(), pg_update() и pg_delete() больше не являются экспериментальными.
  • pg_send_execute(),
pg_send_prepare(), pg_send_query()
и pg_send_query_params() больше не блокируются до
завершения записи запроса, если нижележащий поток сокета для соединения с базой
данных находится в неблокирующем режиме.

Reflection

  • ReflectionClass::newInstanceWithoutConstructor() теперь позволяет создавать экземпляры из неокончательных (non-final) внутренних классов.

XMLReader

  • XMLReader::getAttributeNs() и XMLReader::getAttributeNo() теперь возвращают NULL, если атрибут не может быть найден, как это делает XMLReader::getAttribute().


Новые функции

Дата и время

  • DateTimeImmutable::createFromMutable()

GMP

  • gmp_root()
  • gmp_rootrem()

Hash

  • hash_equals()

LDAP

  • ldap_escape()
  • ldap_modify_batch()

MySQLi

  • mysqli_get_links_stats()

OCI8

  • oci_get_implicit_resultset()

OpenSSL

  • openssl_get_cert_locations()
  • openssl_x509_fingerprint()
  • openssl_spki_new()
  • openssl_spki_verify()
  • openssl_spki_export_challenge()
  • openssl_spki_export()

PostgreSQL

  • pg_connect_poll()
  • pg_consume_input()
  • pg_flush()
  • pg_socket()

PDO_PGSQL

  • PDO::pgsqlGetNotify()
  • PDO::pgsqlGetPid()

Управление сессиями

  • session_abort()
  • session_reset()

Zip

  • ZipArchive::setPassword()


Изменения OpenSSL в PHP 5.6.x

Обертки потоков теперь по умолчанию проверяют сертификаты узлов и имена хостов при использовании SSL/TLS

Все шифруемые клиентские потоки теперь по умолчанию включают проверку пиров. По умолчанию используется OpenSSL CA пакет для проверки сертификата пира. В большинстве случаев не требуется ничего делать для соединения с серверами с правильным SSL сертификатом, так как обычно OpenSSL уже настроен для использования хороших CA пакетов.

Стандартный CA пакет может быть переопределен глобально с помощью установки или openssl.cafile или openssl.capath строк конфигурации, или же на уровне каждого запроса используя опции контекста cafile или capath.

Хотя это и не рекомендуется, но можно отклчить проверку сертификата пира для запроса, установив verify_peer опцию контекста в FALSE, и можно отключить проверку имени пира, установив verify_peer_name в FALSE.

Сигнатура сертификата

Была добавлена поддержка извлечения и проверки сигнатуры сертификата. Для извлечения сигнатур сертификатов X.509 добавлена функция openssl_x509_fingerprint(). Также были добавлены две опции контекста потока SSL: capture_peer_cert для захвата узлового сертификата X.509, и peer_fingerprint для проверки сертификата на соответствие заданной сигнатуре.

Обновлены шифры по умолчанию

Список шифров по умолчанию, используемых PHP, был обновлен на более безопасный в соответствии с » рекомендациями по шифрам от Mozilla, с двумя дополнительными исключениями: анонимные шифры Диффи-Хеллмана и RC4.

Этот список доступен через новую константу OPENSSL_DEFAULT_STREAM_CIPHERS, и может быть переопределен (как и в предыдущих версиях PHP) установкой опцией контекста ciphers.

Сжатие запрещено по умолчанию

Сжатие SSL/TLS было запрещено по умолчанию для compression уменьшения вероятности атаки типа CRIME. В PHP 5.4.13 была добавлена опция контекста disable_compression для возможности запретить компрессию и теперь она по умолчанию установлена как TRUE (то есть компрессия запрещена).

Разрешение серверу определять свой собственный порядок шифров

Была добавлена опция контекста honor_cipher_order, которая позволяет серверу обслуживающему зашифрованный поток самому определять шифры, которыми будет пользоваться клиент. Это позволить снизить риск атаки типа BEAST.

Доступ к согласованному протоколу и шифру

Протокол и шифр, согласованные для шифрованного потока, доступны с помощью функций stream_get_meta_data() или stream_context_get_options(), если опция контекста SSL capture_session_meta установлена как TRUE.

<?php
$ctx = stream_context_create(['ssl' => [
    'capture_session_meta' => TRUE
]]);

$html = file_get_contents('https://google.com/', FALSE, $ctx);
$meta = stream_context_get_options($ctx)['ssl']['session_meta'];
var_dump($meta);
?>

Результат выполнения данного примера:

array(4) {
  ["protocol"]=>
  string(5) "TLSv1"
  ["cipher_name"]=>
  string(20) "ECDHE-RSA-AES128-SHA"
  ["cipher_bits"]=>
  int(128)
  ["cipher_version"]=>
  string(11) "TLSv1/SSLv3"
}

Новые возможности для совершенной прямой секретности (PFS) для серверов, обслуживающих шифрованные потоки

Шифрованные потоки клиента уже поддерживают совершенную прямую секретность, поскольку она, как правило, контролируется сервером. Серверы PHP, обслуживающие шифрованные потоки, использующие сертификаты поддерживающие совершенную прямую секретность не нужнаются в каких либо дополнительных действиях для включения PFS; однако, было добавлено некоторое количество новых опций контекста SSL для более точного контроля над PFS и для решения возможных проблем.

ecdh_curve

Эта опция позволяет выбрать кривую для использования в шифрах ECDH. Если не задано, то будет использоваться prime256v1.

dh_param

Путь к файлу, содержащему параметры для обмена ключами Диффи-Хеллмана, созданного, например, с помощью такой команды:

openssl dhparam -out /path/to/my/certs/dh-2048.pem 2048
single_dh_use

Если установлено как TRUE, новая пара ключей будет создана, используя параметры Диффи-Хеллмана, тем самым улучшая прямую секретность.

single_ecdh_use

Если установлено как TRUE, новая пара ключей будет гненерироваться всегда, при согласовании шифра ECDH. Это улучшает прямую секретность.

Выбор версии SSL/TLS

Теперь возможно выбирать конкретную версию SSL и TLS с помощью опции контекста crypto_method или указывая конкретный транспорт при создании обертки потока (например с помощью вызова stream_socket_client() или stream_socket_server()).

Опция контекста SSL crypto_method принимает битовую маску, перечисляющую допустимые протоколы, также как это задается в параметре crypto_type функции stream_socket_enable_crypto().

Выбранная версия протокола и соответствующие опции
Протокол | Флаг клиента | Флаг сервера | Транспорт
Любые версии TLS или SSL | STREAM_CRYPTO_METHOD_ANY_CLIENT | STREAM_CRYPTO_METHOD_ANY_SERVER | ssl://
Любая версия TLS | STREAM_CRYPTO_METHOD_TLS_CLIENT | STREAM_CRYPTO_METHOD_TLS_SERVER | tls://
TLS 1.0 | STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_0_SERVER | tlsv1.0://
TLS 1.1 | STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_1_SERVER | tlsv1.1://
TLS 1.2 | STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_2_SERVER | tlsv1.2://
SSL 3 | STREAM_CRYPTO_METHOD_SSLv3_CLIENT | STREAM_CRYPTO_METHOD_SSLv3_SERVER | sslv3://
<?php

// Требуется TLS 1.0 или выше для использования file_get_contents():
$ctx = stream_context_create([
    'ssl' => [
        'crypto_method' => STREAM_CRYPTO_METHOD_TLS_CLIENT,
    ],
]);
$html = file_get_contents('https://google.com/', false, $ctx);

// Требуется TLS 1.1 или 1.2:
$ctx = stream_context_create([
    'ssl' => [
        'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT |
                           STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
    ],
]);
$html = file_get_contents('https://google.com/', false, $ctx);

// Соединяемся с использованием транспорта потокового сокета tlsv1.2://
$sock = stream_socket_client('tlsv1.2://google.com:443/');

?>

Добавлена функция openssl_get_cert_locations()

Была добавлена функция openssl_get_cert_locations(): она возвращает расположения, в которых PHP будет искать пакеты CA по умолчанию.

<?php
var_dump(openssl_get_cert_locations());
?>

Результат выполнения данного примера:

array(8) {
  ["default_cert_file"]=>
  string(21) "/etc/pki/tls/cert.pem"
  ["default_cert_file_env"]=>
  string(13) "SSL_CERT_FILE"
  ["default_cert_dir"]=>
  string(18) "/etc/pki/tls/certs"
  ["default_cert_dir_env"]=>
  string(12) "SSL_CERT_DIR"
  ["default_private_dir"]=>
  string(20) "/etc/pki/tls/private"
  ["default_default_cert_area"]=>
  string(12) "/etc/pki/tls"
  ["ini_cafile"]=>
  string(0) ""
  ["ini_capath"]=>
  string(0) ""
}

Поддержка SPKI

Была добавлена поддержка для создания, извлечения и проверки подписанных публичных ключей и опознавательных строк (SPKAC). Были добавлены функции openssl_spki_new(), openssl_spki_verify(), openssl_spki_export_challenge() и openssl_spki_export() для создания, проверки экспорта PEM публичных ключей и соответствующих опозновательных строк из SPKAC, созданных из элементов HTML5 KeyGen.

openssl_spki_new

Генерация нового SPKAC с использованием приватного ключа, опозновательной строки и алгоритма хеширования.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
?>

Результат выполнения данного примера:

SPKAC=MIIBXjCByDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3L0IfUijj7+A8CPC8EmhcdNoe5fUAog7OrBdhn7EkxFButUp40P7+LiYiygYG1TmoI/a5EgsLU3s9twEz3hmgY9mYIqb/rb+SF8qlD/K6KVyUORC7Wlz1Df4L8O3DuRGzx6/+3jIW6cPBpfgH1sVuYS1vDBsP/gMMIxwTsKJ4P0CAwEAARYkYjViMzYxMTktNjY5YS00ZDljLWEyYzctMGZjNGFhMjVlMmE2MA0GCSqGSIb3DQEBAwUAA4GBAF7hu0ifzmjonhAak2FhhBRsKFDzXdKIkrWxVNe8e0bZzMrWOxFM/rqBgeH3/gtOUDRS5Fnzyq425UsTYbjfiKzxGeCYCQJb1KJ2V5Ij/mIJHZr53WYEXHQTNMGR8RPm7IxwVXVSHIgAfXsXZ9IXNbFbcaLRiSTr9/N4U+MXUWL7
openssl_spki_verify

Проверка предоставленного SPKAC.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
var_dump(openssl_spki_verify($spkac));
?>
openssl_spki_export_challenge

Экспорт связанной опознавательной строки из предоставленного SPKAC.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
$challenge = openssl_spki_export_challenge($spkac):
echo $challenge;
?>

Результат выполнения данного примера:

challenge string
openssl_spki_export

Экспорт публичного ключа RSA в формате из SPKAC.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
echo openssl_spki_export($spkac);
?>

Результат выполнения данного примера:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcvQh9SKOPv4DwI8LwSaFx02h7
l9QCiDs6sF2GfsSTEUG61SnjQ/v4uJiLKBgbVOagj9rkSCwtTez23ATPeGaBj2Zg
ipv+tv5IXyqUP8ropXJQ5ELtbXPUN/gvw7cO5EbPHr/7eMhbpw8Gl+AfWxW5hLW8
MGw/+AwwjHBOwong/QIDAQAB
-----END PUBLIC KEY-----


Другие изменения в расширениях

cURL

Ряд констант, помеченные как устаревшие в библиотеке cURL, теперь будут удалены:

  • CURLOPT_CLOSEPOLICY
  • CURLCLOSEPOLICY_CALLBACK
  • CURLCLOSEPOLICY_LEAST_RECENTLY_USED
  • CURLCLOSEPOLICY_LEAST_TRAFFIC
  • CURLCLOSEPOLICY_OLDEST
  • CURLCLOSEPOLICY_SLOWEST

OCI8

  • Поддержка неявных наборов результатов для Oracle Database 12c была добавлена с помощью новой функции oci_get_implicit_resultset().
  • С помощью oci_execute($s, OCI_NO_AUTO_COMMIT), для SELECT больше необязательно инициировать внутренний ROLLBACK во время закрытия соединения.
  • Добавлены зонды DTrace, контролируемые с помощью опции конфигурации --enable-dtrace.
  • oci_internal_debug() теперь ничего не делает.
  • Формат вывода функции phpinfo() для OCI8 изменился.

Zip

Добавлена опция конфигурации --with-libzip, для использования системной библиотеки libzip. Требуется как минимум libzip версии 0.11, рекомендуется 0.11.2 или более поздняяы.

MySQLi

Была добавлена опция mysqli.rollback_on_cached_plink, которая управляет поведением отката постоянных соединений.


Новые глобальные константы

GD

  • IMG_WEBP (с PHP 5.6.25)

LDAP

  • LDAP_ESCAPE_DN
  • LDAP_ESCAPE_FILTER

OpenSSL

  • OPENSSL_DEFAULT_STREAM_CIPHERS
  • STREAM_CRYPTO_METHOD_ANY_CLIENT
  • STREAM_CRYPTO_METHOD_ANY_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_0_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_1_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_2_SERVER

PostgreSQL

  • PGSQL_CONNECT_ASYNC
  • PGSQL_CONNECTION_AUTH_OK
  • PGSQL_CONNECTION_AWAITING_RESPONSE
  • PGSQL_CONNECTION_MADE
  • PGSQL_CONNECTION_SETENV
  • PGSQL_CONNECTION_SSL_STARTUP
  • PGSQL_CONNECTION_STARTED
  • PGSQL_DML_ESCAPE
  • PGSQL_POLLING_ACTIVE
  • PGSQL_POLLING_FAILED
  • PGSQL_POLLING_OK
  • PGSQL_POLLING_READING
  • PGSQL_POLLING_WRITING


Миграция с PHP 5.4.x на PHP 5.5.x

Содержание

  • Что поменялось в PHP 5.5.x
  • Изменения, ломающие обратную совместимость
  • Новые возможности
  • Функционал, объявленный устаревшим в PHP 5.5.x
  • Измененные функции
  • Новые функции
  • Новые классы и интерфейсы
  • Новые методы
  • Прочие изменения в расширениях
  • Новые глобальные константы
  • Изменения в обработке INI-файла
  • Внутренние изменения PHP

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.4.x, 5.6.x и 7.0.x.


Что поменялось в PHP 5.5.x

Большинство изменений в PHP 5.5.x никак не повлияет на существющий код. Есть несколько несовместимостей и новых возможностей, на которые надо обратить внимание. Также, перед миграцией в промышленных средах, необходимо сперва протестировать код.

Для систем, обновляющихся с более старых версий PHP, существуюет соответствующая документация:

  • Замечания по обновлению для PHP 5.4.x.
  • Замечания по обновлению для PHP 5.3.x.
  • Замечания по обновлению для PHP 5.2.x.
  • Замечания по обновлению для PHP 5.1.x.
  • Переход с PHP 4 на PHP 5.


Изменения, ломающие обратную совместимость

Несмотря на то, что практически весь существующий код не заметит перехода, все же следует обратить внимание на некоторые изменения, ломающие обратную совместимость:

Прекращена поддержка Windows XP и 2003

Прекращена поддержка Windows XP и 2003. Сборки под Windows теперь требуют минимум Windows Vista.

Регистронезависимость теперь не является зависимой от локали

Все регистронезависимые сравнения для функций, классов и имен констант теперь реализованы независимым от локали образом в соответствии с правилами ASCII. Это улучшает поддержку языков, использующих латинский алфавит с необычными правилами сравнения, например, турецкий и азербайджанский.

Это изменение может вызвать проблемы в коде, использующим регистронезависимое сравнение для не ASCII символов в многобайтовых кодировках (включая UTF-8), такие как акцентированные символы во многих европейских языках. Если у вас в кодовой базе используются не английские, не ASCII-символы, обратите особое внимание на это изменение перед миграцией промышленных сред на PHP 5.5.

Изменения pack() и unpack()

Функции pack() и unpack() были изменены так, чтобы они стали более совместимы с Perl:

  • pack() теперь поддерживает код форматирования "Z", который ведет себя аналогично "a".
  • unpack() теперь поддерживает код форматирования "Z" для строк, дополненных NULL и ведет себя так, как ранее вела при использовании "a": обрезает NULL-байты в конце строки.
  • unpack() теперь сохраняет NULL-байты в конце строки при использовании кода формата "a".
  • unpack() теперь обрезает все пробельные символы ASCII при использовании кода формата "A".

Написание обратно совместимого кода, использующего код формата "a" в функции unpack(), потребует использования функции version_compare(), иначе обратная совместимость поломается.

Пример:

<?php
// Старый код:
$data = unpack('a5', $packed);

// Новый код:
if (version_compare(PHP_VERSION, '5.5.0-dev', '>=')) {
  $data = unpack('Z5', $packed);
} else {
  $data = unpack('a5', $packed);
}
?>

self, parent и static теперь всегда регистронезависимы

До PHP 5.5 были случаи, когда ключевые слова self, parent и static обрабатывались с учетом регистра. Эта проблема была исправлена, и теперь эти слова всегда обрабатываются регистронезависимо: SELF::CONSTANT теперь всегда идентично self::CONSTANT.

Удалены GUID логотипов PHP

GUID (внутренние идентификаторы изображения), использовавшиеся ранее для вывода различных логотипов PHP, теперь удалены. Также удалены функции, которые позволяли их получать. Удаленные функции:

  • php_logo_guid()
  • php_egg_logo_guid()
  • php_real_logo_guid()
  • zend_logo_guid()

Изменения внутреннего исполнения

Авторы расширений должны обратить внимание, что функция zend_execute() больше не может быть переопределена, и что некоторое количество изменений внесено в структуру execute_data и в работающие с ней функции и методы обработки байт-кода.

Большинство авторов расширений вряд ли будут затронуты, но те, кто пишет расширения, сильно затрагивающие движок Zend, должны ознакомиться с замечаниями по этому изменению.


Новые возможности

Добавлены генераторы

Была добавлена поддержка генераторов через ключевое слово yield. Генераторы предоставляют простое решение для реализации простых итераторов без накладных расходов или сложности создания полноценного класса, реализующего интерфейс Iterator.

Простой пример реализации итератора из функции range() (по крайней мере, для положительных значений step):

<?php
function xrange($start, $limit, $step = 1) {
    for ($i = $start; $i <= $limit; $i += $step) {
        yield $i;
    }
}

echo 'Нечетные числа меньше 10: ';

/*
 * Никакого массива создано и возвращено не будет,
 * все сохраняется в памяти.
 */
foreach (xrange(1, 9, 2) as $number) {
    echo "$number ";
}

echo "\n";
?>

Результат выполнения данного примера:

Нечетные числа меньше 10: 1 3 5 7 9

Добавлено ключевое слово finally

Блоки try-catch теперь поддерживают блок finally, который будет выполнен в любом случае, было ли выброшено исключение или нет.

Новое API хеширования паролей

Новое API хеширования паролей позволяет более просто создавать и управлять безопасными хешами паролей и базируется на той же библиотеке, что и функция crypt(). Подробности можно узнать в документации к функции password_hash().

foreach теперь поддерживает list()

Цикл foreach теперь поддерживает распаковку вложенных массивов в отдельные переменные с помощью конструкции list(). К примеру:

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a, $b)) {
    echo "A: $a; B: $b\n";
}
?>

Результат выполнения данного примера:

A: 1; B: 2
A: 3; B: 4

Более подробно это нововведение описано на странице посвященной foreach.

empty() поддерживает произвольные выражения

Реализована возможность передавать произвольные выражения в empty(). Пример:

<?php
function always_false() {
    return false;
}

if (empty(always_false())) {
    echo "Это будет напечатано.\n";
}

if (empty(true)) {
    echo "Это не будет напечатано.\n";
}
?>

Результат выполнения данного примера:

Это будет напечатано.

Литералы array и string разыменовываются

Литералы array и string теперь могут быть разыменованы напрямую для доступа к конкретным элементам и символам:

<?php
echo 'Разыменовывание массива: ';
echo [1, 2, 3][0];
echo "\n";

echo 'Разыменовывание строки: ';
echo 'PHP'[0];
echo "\n";
?>

Результат выполнения данного примера:

Разыменовывание массива: 1
Разыменовывание строки: P

Разрешение имен класса с помощью ::class

Теперь можно использовать конструкцию ClassName::class для получения полностью определенного имени класса ClassName. К примеру:

<?php
namespace Name\Space;
class ClassName {}

echo ClassName::class;

echo "\n";
?>

Результат выполнения данного примера:

Name\Space\ClassName

Добавлено расширение OPcache

Был добавлен кеш байт-кода Zend Optimiser+ в новом расширении OPcache. OPcache увеличивает производительность PHP путем кеширования предварителльно скомпилированного байт-код скрипта в разделяемой памяти, что позволяет избежать загрузки и компиляции одних и тех же скриптов при каждом к ним обращении. Читайте инструкции по установке для более полной информации об установке и использовании OPcache.

foreach теперь поддерживает нескалярные ключи

foreach теперь поддерживает ключи любого типа. Так как не скалярные ключи не могут возникнуть в обычном массиве, эту функциональность можно использовать с методом Iterator::key(), который может вернуть значение любого типа. Теперь эти значения будут обрабатываться корректно.

Поддержка обработчика Apache 2.4 под Windows

SAPI обработчик Apache 2.4 теперь поддерживается в Windows.

Улучшения в GD

Несколько улучшений добавлено в расширение GD:

  • Поддержка зеркального отражения с помощью новой функции imageflip().
  • Продвинутые возможности обрезки с помощью новых функций imagecrop() и imagecropauto().


Функционал, объявленный устаревшим в PHP 5.5.x

Расширение ext/mysql признано устаревшим

Оригинальное расширение MySQL признано устаревшим и будет выдавать ошибку уровня E_DEPRECATED при установлении соединения с базой данных. Вместо него используйте расширения MySQLi или PDO_MySQL.

preg_replace(), модификатор /e

Использование в функции preg_replace() модификатора /e объявлено устаревшим. В качестве альтернативы используйте функцию preg_replace_callback().

intl

IntlDateFormatter::setTimeZoneID() и
datefmt_set_timezone_id() признаны
устаревшими. Используйте метод IntlDateFormatter::setTimeZone()
и функцию datefmt_set_timezone(), соответственно.

mcrypt

Следующие функции признаны устаревшими:

  • mcrypt_cbc()
  • mcrypt_cfb()
  • mcrypt_ecb()
  • mcrypt_ofb()


Измененные функции

Ядро PHP

  • set_error_handler() теперь может быть вызвана с параметром NULL, что сбросит установленные ранее обработчики.
  • Если вызвать set_error_handler() и set_exception_handler() с параметром NULL, они вернут последний обработчик ошибки или исключения соответственно.
  • json_encode() теперь принимает параметр depth.
  • Поведение pack() и unpack() с кодами формата "a" и "A" изменено. Детальное описание данного изменения.

intl

  • MessageFormatter::format() и сопутствующие функции теперь принимают именованные аргументы и смешанные числовые и именованные аргументы, когда PHP слинкован с ICU 4.8 или выше.
  • MessageFormatter::format() и сопутствующие функции больше не генерируют ошибку, если передано недостаточное количество аргументов. Вместо этого, поля для замещения не будут заменены.
  • MessageFormatter::format() и MessageFormatter::parse() больше не ограничены в точности секундами, когда имеют дело со временем.
  • IntlDateFormatter::__construct() и datefmt_create() теперь принимают объекты IntlTimeZone и DateTimeZone для аргумента timezone, и объекты IntlCalendar для аргумента calendar. Более того, если временная зона не задана и не указана в calendar, в качестве временной зоны ICU по умолчанию будет использовано значение date_default_timezone_get().
  • IntlDateFormatter::getCalendar() и datefmt_get_calendar() возвращают FALSE если объект IntlDateFormatter был создан с помощью IntlCalendar, вместо использования одной из констант IntlDateFormatter.
  • IntlDateFormatter::setCalendar() и datefmt_set_calendar() теперь принимают объекты IntlCalendar в дополнение к константам IntlDateFormatter.
  • IntlDateFormatter::format() и datefmt_format() теперь принимают объекты IntlCalendar.


Новые функции

Ядро PHP

  • array_column()
  • boolval()
  • json_last_error_msg()
  • password_get_info()
  • password_hash()
  • password_needs_rehash()
  • password_verify()

Hash

  • hash_pbkdf2()

OpenSSL

  • openssl_pbkdf2()

cURL

  • curl_escape()
  • curl_file_create()
  • curl_multi_setopt()
  • curl_multi_strerror()
  • curl_pause()
  • curl_reset()
  • curl_share_close()
  • curl_share_init()
  • curl_share_setopt()
  • curl_strerror()
  • curl_unescape()

GD

  • imageaffinematrixconcat()
  • imageaffinematrixget()
  • imagecrop()
  • imagecropauto()
  • imageflip()
  • imagepalettetotruecolor()
  • imagescale()

MySQLi

  • mysqli_begin_transaction()
  • mysqli_release_savepoint()
  • mysqli_savepoint()

PostgreSQL

  • pg_escape_literal()
  • pg_escape_identifier()

Sockets

  • socket_sendmsg()
  • socket_recvmsg()
  • socket_cmsg_space()

CLI

  • cli_get_process_title()
  • cli_set_process_title()

Intl

  • datefmt_format_object()
  • datefmt_get_calendar_object()
  • datefmt_get_timezone()
  • datefmt_set_timezone()
  • datefmt_get_calendar_object()
  • intlcal_create_instance()
  • intlcal_get_keyword_values_for_locale()
  • intlcal_get_now()
  • intlcal_get_available_locales()
  • intlcal_get()
  • intlcal_get_time()
  • intlcal_set_time()
  • intlcal_add()
  • intlcal_set_time_zone()
  • intlcal_after()
  • intlcal_before()
  • intlcal_set()
  • intlcal_roll()
  • intlcal_clear()
  • intlcal_field_difference()
  • intlcal_get_actual_maximum()
  • intlcal_get_actual_minimum()
  • intlcal_get_day_of_week_type()
  • intlcal_get_first_day_of_week()
  • intlcal_get_greatest_minimum()
  • intlcal_get_least_maximum()
  • intlcal_get_locale()
  • intlcal_get_maximum()
  • intlcal_get_minimal_days_in_first_week()
  • intlcal_get_minimum()
  • intlcal_get_time_zone()
  • intlcal_get_type()
  • intlcal_get_weekend_transition()
  • intlcal_in_daylight_time()
  • intlcal_is_equivalent_to()
  • intlcal_is_lenient()
  • intlcal_is_set()
  • intlcal_is_weekend()
  • intlcal_set_first_day_of_week()
  • intlcal_set_lenient()
  • intlcal_equals()
  • intlcal_get_repeated_wall_time_option()
  • intlcal_get_skipped_wall_time_option()
  • intlcal_set_repeated_wall_time_option()
  • intlcal_set_skipped_wall_time_option()
  • intlcal_from_date_time()
  • intlcal_to_date_time()
  • intlcal_get_error_code()
  • intlcal_get_error_message()
  • intlgregcal_create_instance()
  • intlgregcal_set_gregorian_change()
  • intlgregcal_get_gregorian_change()
  • intlgregcal_is_leap_year()
  • intltz_create_time_zone()
  • intltz_create_default()
  • intltz_get_id()
  • intltz_get_gmt()
  • intltz_get_unknown()
  • intltz_create_enumeration()
  • intltz_count_equivalent_ids()
  • intltz_create_time_zone_id_enumeration()
  • intltz_get_canonical_id()
  • intltz_get_region()
  • intltz_get_tz_data_version()
  • intltz_get_equivalent_id()
  • intltz_use_daylight_time()
  • intltz_get_offset()
  • intltz_get_raw_offset()
  • intltz_has_same_rules()
  • intltz_get_display_name()
  • intltz_get_dst_savings()
  • intltz_from_date_time_zone()
  • intltz_to_date_time_zone()
  • intltz_get_error_code()
  • intltz_get_error_message()

SPL

  • SplFixedArray::__wakeup()


Новые классы и интерфейсы

cURL

  • CURLFile

Дата и время

  • DateTimeImmutable
  • DateTimeInterface

Intl

  • IntlCalendar
  • IntlGregorianCalendar
  • IntlTimeZone
  • IntlBreakIterator
  • IntlRuleBasedBreakIterator
  • IntlCodePointBreakIterator


Новые методы

MySQLi

  • mysqli::begin_transaction()
  • mysqli::release_savepoint()
  • mysqli::savepoint()

Intl

  • IntlDateFormatter::formatObject()
  • IntlDateFormatter::getCalendarObject()
  • IntlDateFormatter::getTimeZone()
  • IntlDateFormatter::setTimeZone()


  • « Новые методы
  • Новые глобальные константы »
  • PHP Manual
  • Миграция с PHP 5.4.x на PHP 5.5.x
  • Прочие изменения в расширениях

Прочие изменения в расширениях

Intl

Расширение intl требует ICU 4.0 или выше.


Новые глобальные константы

GD

  • IMG_AFFINE_TRANSLATE
  • IMG_AFFINE_SCALE
  • IMG_AFFINE_ROTATE
  • IMG_AFFINE_SHEAR_HORIZONTAL
  • IMG_AFFINE_SHEAR_VERTICAL
  • IMG_CROP_DEFAULT
  • IMG_CROP_TRANSPARENT
  • IMG_CROP_BLACK
  • IMG_CROP_WHITE
  • IMG_CROP_SIDES
  • IMG_FLIP_BOTH
  • IMG_FLIP_HORIZONTAL
  • IMG_FLIP_VERTICAL
  • IMG_BELL
  • IMG_BESSEL
  • IMG_BICUBIC
  • IMG_BICUBIC_FIXED
  • IMG_BLACKMAN
  • IMG_BOX
  • IMG_BSPLINE
  • IMG_CATMULLROM
  • IMG_GAUSSIAN
  • IMG_GENERALIZED_CUBIC
  • IMG_HERMITE
  • IMG_HAMMING
  • IMG_HANNING
  • IMG_MITCHELL
  • IMG_POWER
  • IMG_QUADRATIC
  • IMG_SINC
  • IMG_NEAREST_NEIGHBOUR
  • IMG_WEIGHTED4
  • IMG_TRIANGLE

JSON

  • JSON_ERROR_RECURSION
  • JSON_ERROR_INF_OR_NAN
  • JSON_ERROR_UNSUPPORTED_TYPE

MySQLi

Была добавлена опция MYSQLI_SERVER_PUBLIC_KEY для использования с mysqli_options().


Изменения в обработке INI-файла

Intl

Добавлена директива intl.use_exceptions, которая контролирует поведение intl в случае возникновения глобальной ошибки. Используется вместе с директивой intl.error_level.

MySQLnd

Добавлена директива mysqlnd.sha256_server_public_key для разрешения mysqli использовать новый протокол аутентификации.


Внутренние изменения PHP

  • Расширения больше не могут переопределять zend_execute(), вместо этого они должны переопределять zend_execute_ex(). EG(current_execute_data) уже инициализированна в zend_execute_ex(), поэтому, для совместимости расширений, возможно, придется использовать EG(current_execute_data)->prev_execute_data.
  • Удалены EG(arg_types_stack), EX(fbc), EX(called_scope) и EX(current_object).
  • Добавлен op_array->nested_calls, который вычисляется в момент компиляции.
  • Добавлен EX(call_slots), являющийся массивом для хранения информации о синтаксически вложенных вызовах (т.е. foo(bar())) и размещающийся вместе с execute_data.
  • Добавлен EX(call), являющийся указателем на вызываемую функцию, и являющийся элементом EX(call_slots).
  • Байткоды INIT_METHOD_CALL, ZEND_INIT_STATIC_METHOD_CALL, ZEND_INIT_FCALL_BY_NAME и ZEND_INIT_NS_FCALL_BY_NAME используют result.num как индекс в EX(call_slots).
  • Байткод ZEND_NEW использует extended_value как индекс в EX(call_slots).
  • Байткоды ZEND_DO_FCALL и ZEND_DO_FCALL_BY_NAME используют op2.num как индекс в EX(call_slots).
  • Добавлен op_array->used_stack, вычисляемый в момент компиляции; соответствующее место под стек выделяется совместно с execute_data. В результате, байткоды ZEND_SEND* и ZEND_DO_FCALL* больше не требуют проверки на переполнение стека.
  • Удалено поле execute_data->Ts. Временные переменные VM всегда размещаются сразу перед структурой execute_data, и теперь более предпочтительно обращаться к ним по смещению от базового указателя execute_data вместо того, чтобы использовать execute_data->Ts. Компилятор хранит новые смещения в op_array->opcodes[*].op?.num. Макросы EX_TMP_VAR() и EX_TMP_VAR_NUM() могут быть использованы для доступа к временным переменным по смещению или номеру. Вы можете преобразовать номер в смещение используя EX_TMP_VAR_NUM(0, num) или смещение в номер используя (EX_TMP_VAR_NUM(0,0)-EX_TMP_VAR(0,offset)).
  • Удалено поле execute_data->CVs. Скомпилированные переменные VM всегда размещаются сразу после структуры execute_data, и получать к ним доступ следует по смещению от базового указателя execute_data вместо того, чтобы использовать execute_data->CVs. Вы можете использовать макрос EX_CV_NUM() для доступа к скомпилированным переменным по номеру.


Миграция с PHP 5.3.x на PHP 5.4.x

Содержание

  • Что изменилось в PHP 5.4.x?
  • Обратно несовместимые изменения
  • Новые возможности
  • Изменения в модулях SAPI
  • Устаревшие функции и возможности в PHP 5.4.x
  • Измененные функции
  • Новые функции
  • Новые классы и интерфейсы
  • Новые методы
  • Удаленные расширения
  • Другие изменения в расширениях
  • Новые глобальные константы
  • Изменения в обработке INI-файлов
  • Другие изменения

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.5.x и 5.6.x.


Что изменилось в PHP 5.4.x?

Большинство изменений в PHP 5.4.x никак не повлияет на существующий код. Есть несколько несовместимостей и новых возможностей, которые должны быть учтены, и код должен быть протестирован перед тем как переключиться на новую версию PHP на рабочих серверах.

Для систем, которые обновились с более старой версии PHP, соответствующую документацию можно получить по адресам:

  • Переход с PHP 5.2.x на PHP 5.3.x.
  • Переход с PHP 5.1.x на PHP 5.2.x.
  • Переход с PHP 5.0.x на PHP 5.1.x.
  • Переход с PHP 4 на PHP 5.0.x.


Обратно несовместимые изменения

Хотя большая часть существующего кода PHP 5 должна работать без изменений, обратите внимание на следующие обратно несовместимые изменения:

  • Безопасный режим больше не поддерживается. Любое приложение, которое полагается на безопасный режим, возможно, потребует внесения корректировок по части безопасности.
  • Волшебные кавычки теперь не работают. Приложения, которые используют эту возможность, могут нуждаться в обновлении во избежание проблем с безопасностью. Функции get_magic_quotes_gpc() и get_magic_quotes_runtime() теперь всегда возвращают FALSE. Функция set_magic_quotes_runtime() вызывает ошибку уровня E_CORE_ERROR при попытке разрешить Магические кавычки.
  • Директивы php.ini register_globals и register_long_arrays были удалены.
  • Директива mbstring.script_encoding была удалена. Вместо нее используйте zend.script_encoding.
  • Возможность передачи по ссылке во время вызова функции была убрана.
  • Операторы break и continue теперь не принимают аргументов в виде переменной. Например, выражение break 1 + foo() * $bar; невозможно. Вы по-прежнему можете использовать явный аргумент в виде статической константы. Например, break 2;. Побочным эффектом этого изменения является то, что конструкции break 0; и continue 0; более недопустимы.
  • В расширении даты и времени временная зона не может быть больше установлена с помощью переменной окружения TZ. Вместо этого вам необходимо указать временную зону, используя опцию php.ini date.timezone или функцию date_default_timezone_set(). PHP теперь не будет пытаться определять временную зону. Вместо этого будет установлена зона "UTC" и выдано предупреждение E_WARNING.
  • Нецифровые смещения строк, например $a['foo'], где $a - это строка, теперь возвращают false в функции isset() и true в функции empty() и вызывают предупреждение E_WARNING при подобном использовании. Смещения, заданные типами double, bool и null также приводят к генерации предупреждения E_NOTICE, а строки, содержащие числа ($a['2']), все еще работают, как и раньше. Обратите внимание, что смещения, подобные '12.3' и '5 foobar' рассматриваются как нечисловые и вызывают предупреждение E_WARNING, но преобразовываются к 12 и 5 соответственно, по причине необходимости сохранения обратной совместимости. Примечание: следующий код возвращает различные результаты. $str='abc';var_dump(isset($str['x'])); // false для PHP 5.4 и выше, но true для 5.3 и ниже
  • Преобразование массива в строку теперь приводит к предупреждению E_NOTICE, но результат преобразования будет по-прежнему строка "Array".
  • Преобразование NULL, FALSE или пустой строки в объект путем добавления свойства теперь будет генерировать ошибку уровня E_WARNING вместо ошибки E_STRICT.
  • Имена параметров, которые "затеняют" имена суперглобальных переменных теперь вызывают фатальную ошибку. Это правило запрещает код, подобный этому: function foo($_GET, $_POST) {}.
  • Хеш-алгоритмы Salsa10 и Salsa20 были удалены.
  • Теперь хеш-алгоритм Tiger использует порядок байт big-endian. Изучите пример того, как писать код совместимый как с PHP 5.3 так и с 5.4.
  • Функция array_combine() теперь возвращает array() вместо FALSE, когда в качестве параметров заданы два пустых массива.
  • Если вы используете функцию htmlentities() с азиатскими наборами символов, то она работает также, как функция htmlspecialchars(). Так всегда было в предыдущих версиях PHP, а теперь генерируется ошибка уровня E_STRICT.
  • Третий параметр функции ob_start() изменен с boolean erase на integer flags. Обратите внимание, что код, в котором erase явно задан как FALSE, в PHP 5.4 изменит свое поведение. Посмотрите этот пример, чтобы понять, как писать код, совместимый с PHP 5.3 и 5.4.

Следующие ключевые слова теперь зарезервированы и не могут использоваться в качестве названия функций, классов и т.д.:

  • trait
  • callable
  • insteadof

Следующие функции были удалены из PHP:

  • define_syslog_variables()
  • import_request_variables()
  • session_is_registered(), session_register() и session_unregister().
  • Псевдонимы
mysqli_bind_param(), mysqli_bind_result(),
mysqli_client_encoding(), mysqli_fetch(),
mysqli_param_count(), mysqli_get_metadata(),
mysqli_send_long_data(), mysqli::client_encoding() и mysqli_stmt::stmt().


Новые возможности

PHP 5.4.0 предлагает широкий спектр новых возможностей:

  • Добавлена поддержка трейтов.
  • Добавлен короткий синтаксис объявления массивов. Например, $a = [1, 2, 3, 4]; или $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];.
  • Добавлена возможность разыменования массивов, возвращаемых функциями. Например: foo()[0].
  • Классы для создания анонимных функций (Closures) теперь поддерживают $this.
  • Оператор <?= теперь доступен всегда, несмотря на значение php.ini опции short_open_tag.
  • Добавлена возможность получения доступа к члену класса при создании экземпляра. Например: (new Foo)->bar().
  • Теперь поддерживается такой синтаксис: Class::{expr}().
  • Добавлен бинарный формат задания чисел, например: 0b001001101.
  • Улучшены сообщения об ошибках разбора и предупреждения о несовместимых аргументах.
  • Расширение по работе с сессиями теперь может отслеживать процесс загрузки файлов.
  • Встроенный веб-сервер в режиме командной строки для разработчиков.
  • Расширение GD теперь поддерживает чтение и запись изображений WebP с помощью imagecreatefromwebp() и imagewebp(), соответственно.


Изменения в модулях SAPI

  • Доступен новый модуль SAPI, называемый cli-server.
  • Добавлена CLI-опция --rz, которая отображает информацию о имени расширения Zend.
  • Добавлена ссылка #inisetting=value для изменения php.ini опций в процессе работы скрипта при интерактивной работе в консоли.
  • Добавлены функции, совместимые с Apache: apache_child_terminate(),
getallheaders(), apache_request_headers()
и apache_response_headers() для FastCGI SAPI.
  • PHP-FPM: Добавлена опция process.max для контроля количества ветвлений FPM-процессов.


  • « Изменения в модулях SAPI
  • Измененные функции »
  • PHP Manual
  • Миграция с PHP 5.3.x на PHP 5.4.x
  • Устаревшие функции и возможности в PHP 5.4.x

Устаревшие функции и возможности в PHP 5.4.x

Устаревшие функции:

  • mysql_list_dbs()


Измененные функции

К некоторым функциям были добавлены новые необязательные параметры в PHP 5.4:

Ядро PHP:

  • Добавлен необязательный аргумент limit к функциям debug_backtrace() и debug_print_backtrace() для ограничения количества возвращаемых фреймов стека.
  • Функция is_link() теперь работает правильно с символическими ссылками в системе Windows Vista или более поздними. Более ранние версии не поддерживали символические ссылки.
  • parse_url() теперь распознает хост, если схема не указана и присутствует предшествующий разделитель компонент. С PHP 5.4.7.

OpenSSL:

  • В функции openssl_encrypt() и openssl_decrypt() добавлена опция "no padding" (не дополнять размер шифруемого блока).

Intl:

  • Функции idn_to_ascii() и idn_to_utf8() теперь принимают два дополнительных параметра: один указывает вид (IDNA 2003 или UTS #46) и другой, передаваемый по ссылке, предназначен для возврата детальной информации об операции в случае выбора UTS #46.


Новые функции

В PHP 5.4 введены несколько новых функций:

Ядро PHP:

  • hex2bin() - Преобразует шестнадцатеричное представление данных в двоичное
  • http_response_code() - Получить или установить код ответа HTTP
  • get_declared_traits() - Получить список задекларированных трейтов
  • getimagesizefromstring() - Получение размера изображения из строки данных
  • stream_set_chunk_size() - Установить размер фрагмента данных потока
  • socket_import_stream() - Импортировать поток
  • trait_exists() - Проверяет, существует ли трейт
  • header_register_callback() - Вызывает функцию заголовка (header)

SPL:

  • class_uses()

Сессии:

  • session_status()
  • session_register_shutdown()

Mysqli:

  • mysqli_error_list()
  • mysqli_stmt_error_list()

Libxml:

  • libxml_set_external_entity_loader()

LDAP:

  • ldap_control_paged_result()
  • ldap_control_paged_result_response()

Intl:

  • transliterator_create()
  • transliterator_create_from_rules()
  • transliterator_create_inverse()
  • transliterator_get_error_code()
  • transliterator_get_error_message()
  • transliterator_list_ids()
  • transliterator_transliterate()

Zlib:

  • zlib_decode()
  • zlib_encode()


Новые классы и интерфейсы

Следующие классы были введены в PHP 5.4.0:

SPL:

  • CallbackFilterIterator
  • RecursiveCallbackFilterIterator

Reflection:

  • ReflectionZendExtension

Json:

  • JsonSerializable

Session:

  • SessionHandler
  • SessionHandlerInterface

Snmp:

  • SNMP

Intl:

  • Transliterator
  • Spoofchecker


Новые методы

Некоторые новые методы были введены в 5.4.0:

XSL:

  • XsltProcessor::setSecurityPrefs()
  • XsltProcessor::getSecurityPrefs()

SPL:

  • RegexIterator::getRegex()
  • SplObjectStorage::getHash()
  • DirectoryIterator::getExtension()
  • SplDoublyLinkedList::serialize()
  • SplDoublyLinkedList::unserialize()
  • SplFileInfo::getExtension()
  • SplFileObject::fputcsv()
  • SplQueue::serialize()
  • SplQueue::unserialize()
  • SplStack::serialize()
  • SplStack::unserialize()
  • SplTempFileObject::fputcsv()

Reflection:

  • ReflectionExtension::isPersistent()
  • ReflectionExtension::isTemporary()
  • ReflectionClass::isCloneable()

Closure:

  • Closure::bind()
  • Closure::bindTo()

PDO_dblib:

  • PDO::newRowset()

StreamWrapper:

  • StreamWrapper::stream_metadata()
  • StreamWrapper::stream_truncate()


Удаленные расширения

Следующие расширения перемещены в репозиторий PECL и больше не будут поставляться с дистрибутивом PHP. Версии этих расширений в виде пакетов PECL будут создаваться в соответствии с потребностями пользователей.

  • sqlite - Обратите внимание, что расширения ext/sqlite3 и ext/pdo_sqlite остаются нетронутыми.


Другие изменения в расширениях

Изменения в расширениях и новые возможности:

  • mysqli - mysqli_result теперь реализует класс Traversable
  • pdo_mysql - Удалена поддержка возможности сборки с клиентскими библиотеками MySQL старше версии 4.1.
  • Расширения mysql, mysqli и PDO_mysql используют mysqlnd в качестве библиотеки по умолчанию. Все еще возможно использовать libmysql, указав путь в конфигурационных настройках.
  • mysqlnd - Добавлена поддержка именованных каналов (named pipes).


Новые глобальные константы

Ядро PHP:

  • ENT_DISALLOWED
  • ENT_HTML401
  • ENT_HTML5
  • ENT_SUBSTITUTE
  • ENT_XML1
  • ENT_XHTML
  • IPPROTO_IP
  • IPPROTO_IPV6
  • IPV6_MULTICAST_HOPS
  • IPV6_MULTICAST_IF
  • IPV6_MULTICAST_LOOP
  • IP_MULTICAST_IF
  • IP_MULTICAST_LOOP
  • IP_MULTICAST_TTL
  • MCAST_JOIN_GROUP
  • MCAST_LEAVE_GROUP
  • MCAST_BLOCK_SOURCE
  • MCAST_UNBLOCK_SOURCE
  • MCAST_JOIN_SOURCE_GROUP
  • MCAST_LEAVE_SOURCE_GROUP

Curl:

  • CURLOPT_MAX_RECV_SPEED_LARGE
  • CURLOPT_MAX_SEND_SPEED_LARGE

LibXML:

  • LIBXML_HTML_NODEFDTD
  • LIBXML_HTML_NOIMPLIED
  • LIBXML_PEDANTIC

OpenSSL:

  • OPENSSL_CIPHER_AES_128_CBC
  • OPENSSL_CIPHER_AES_192_CBC
  • OPENSSL_CIPHER_AES_256_CBC
  • OPENSSL_RAW_DATA
  • OPENSSL_ZERO_PADDING

Буферизация вывода:

  • PHP_OUTPUT_HANDLER_CLEAN
  • PHP_OUTPUT_HANDLER_CLEANABLE
  • PHP_OUTPUT_HANDLER_DISABLED
  • PHP_OUTPUT_HANDLER_FINAL
  • PHP_OUTPUT_HANDLER_FLUSH
  • PHP_OUTPUT_HANDLER_FLUSHABLE
  • PHP_OUTPUT_HANDLER_REMOVABLE
  • PHP_OUTPUT_HANDLER_STARTED
  • PHP_OUTPUT_HANDLER_STDFLAGS
  • PHP_OUTPUT_HANDLER_WRITE

Сессии:

  • PHP_SESSION_ACTIVE
  • PHP_SESSION_DISABLED
  • PHP_SESSION_NONE

Потоки:

  • STREAM_META_ACCESS
  • STREAM_META_GROUP
  • STREAM_META_GROUP_NAME
  • STREAM_META_OWNER
  • STREAM_META_OWNER_NAME
  • STREAM_META_TOUCH

Zlib:

  • ZLIB_ENCODING_DEFLATE
  • ZLIB_ENCODING_GZIP
  • ZLIB_ENCODING_RAW

Intl:

  • U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR
  • IDNA_CHECK_BIDI
  • IDNA_CHECK_CONTEXTJ
  • IDNA_NONTRANSITIONAL_TO_ASCII
  • IDNA_NONTRANSITIONAL_TO_UNICODE
  • INTL_IDNA_VARIANT_2003
  • INTL_IDNA_VARIANT_UTS46
  • IDNA_ERROR_EMPTY_LABEL
  • IDNA_ERROR_LABEL_TOO_LONG
  • IDNA_ERROR_DOMAIN_NAME_TOO_LONG
  • IDNA_ERROR_LEADING_HYPHEN
  • IDNA_ERROR_TRAILING_HYPHEN
  • IDNA_ERROR_HYPHEN_3_4
  • IDNA_ERROR_LEADING_COMBINING_MARK
  • IDNA_ERROR_DISALLOWED
  • IDNA_ERROR_PUNYCODE
  • IDNA_ERROR_LABEL_HAS_DOT
  • IDNA_ERROR_INVALID_ACE_LABEL
  • IDNA_ERROR_BIDI
  • IDNA_ERROR_CONTEXTJ

Json:

  • JSON_PRETTY_PRINT
  • JSON_UNESCAPED_SLASHES
  • JSON_NUMERIC_CHECK
  • JSON_UNESCAPED_UNICODE
  • JSON_BIGINT_AS_STRING


Изменения в обработке INI-файлов

Следующие директивы php.ini были удалены:

  • register_globals и register_long_arrays
  • magic_quotes_gpc, magic_quotes_runtime и magic_quotes_sybase
  • allow_call_time_pass_reference
  • define_syslog_variables
  • highlight.bg
  • session.bug_compat_42 и session.bug_compat_warn
  • mbstring.script_encoding
  • y2k_compliance
  • safe_mode, safe_mode_gid, safe_mode_include_dir, safe_mode_exec_dir, safe_mode_allowed_env_vars и safe_mode_protected_env_vars

Следующие директивы php.ini были добавлены:

  • cli.pager и cli.prompt для CLI SAPI, используя функцию readline в интерактивном режиме.
  • cli_server.color для включения ANSI-раскраски в консольном выводе встроенного веб-сервера для разработки.
  • max_input_vars - указывает, какое количество входных переменных GET/POST/COOKIE может быть принято.
  • zend.multibyte - для управления новой возможностью автоопределения закодированных Unicode скриптов и файлов.
  • zend.script_encoding - Это значение будет использоваться до тех пор, пока не встретится директива "declare(encoding=...)" в начале скрипта.
  • zend.signal_check - для проверки замененных обработчиков сигналов при завершении.
  • session.upload_progress.enabled, session.upload_progress.cleanup, session.upload_progress.prefix, session.upload_progress.name, session.upload_progress.freq, session.upload_progress.min_freq
  • enable_post_data_reading - Когда отключено, данные POST не читаются (и не обрабатываются)
  • windows_show_crt_warning - Эта директива включает отображение предупреждений Windows CRT. До этого момента отображение было включено по умолчанию.

Следующие директивы php.ini были изменены:

  • session.entropy_file теперь принимает значение по умолчанию /dev/random или /dev/urandom в зависимости от того, что было определено на этапе компиляции.
  • session.entropy_length теперь принимает значение по умолчанию 32.


Другие изменения

  • Кодировкой по умолчанию для функций htmlspecialchars(), htmlentities() и html_entity_decode() сейчас является UTF-8, вместо прежней ISO-8859-1. Обратите внимание, что изменения кодировки вывода с помощью конфигурационной опции default_charset не действует на вышеупомянутые функции до тех пор, пока вы не передадите "" (пустую строку) в качестве параметра кодировки в вызовы функций htmlspecialchars()/htmlentities()/html_entity_decode(). В целом, мы не рекомендуем так делать, потому что вы должны иметь возможность изменить кодировку вывода без воздействия на кодировку во время исполнения, используемую этими функциями. Самый безопасный подход - явно установить кодировку при каждом вызове функций htmlspecialchars(), htmlentities() и html_entity_decode().
  • E_ALL теперь включает ошибки уровня E_STRICT в конфигурационной директиве error_reporting.
  • У SNMP теперь есть объектно-ориентированный API. Функции теперь возвращают FALSE на каждую ошибку, включая относящиеся к SNMP. (Нет такого экземпляра, конец MIB и т.д.). Таким образом, в частности, изменяется предыдущее поведение функций get/walk, которые возвращали пустую строку при ошибках, относящихся к SNMP. Теперь поддерживаются множественные запросы OID get/getnext/set. Исключен код совместимости с UCD-SNMP, учитывая что обновление до net-snmp v5.3+, Net-SNMP v5.4+ является необходимым для версии под Windows. Ради добавления поддержки IPv6 разрешение DNS-имен в удаленном SNMP агенте теперь выполнено с помощью расширения, а не через библиотеку Net-SNMP.
  • OpenSSL теперь поддерживает AES.
  • CLI SAPI теперь больше не прерывает работу при фатальных ошибках, когда используется интерактивный режим с поддержкой readline.
  • Переменная $_SERVER['REQUEST_TIME_FLOAT'] была добавлена и содержит время с точностью до микросекунд.
  • Добавлены новые хеш-алгоритмы: fnv132, fnv164, joaat
  • Теперь работает задание смещений в строке последовательно, например: $a[0][0], где $a - строка.
  • Преобразование массивов из SimpleXMLElement теперь всегда содержит все узлы вместо только первого подходящего узла. Теперь всегда выводятся все потомки SimpleXMLElement при использовании функций var_dump(), var_export() и print_r().
  • Стало актуальным требование присутствия аргументов абстрактного конструктора класса __construct в базовом классе при наследовании.


Миграция c PHP 5.2.x на PHP 5.3.x

Содержание

  • Что нового в PHP 5.3.x ?
  • Обратно несовместимые изменения
  • Новые возможности
  • Изменения в поддержке Windows
  • Изменения в модулях SAPI
  • Устаревшие функции и возможности в PHP 5.3.x
  • Функции и возможности, которые ранее считались устаревшими, а теперь снова возвращены в PHP 5.3.x
  • Новые параметры
  • Новые функции
  • Новые обертки потоков
  • Новые фильтры потоков
  • Новые константы классов
  • Новые методы
  • Новые расширения
  • Удаленные расширения
  • Другие изменения в расширениях
  • Новые классы
  • Новые глобальные константы
  • Изменения в работе с INI-файлами
  • Другие изменения

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.1.x, 5.2.x, 5.4.x, 5.5.x и 5.6.x.


Что нового в PHP 5.3.x ?

Большинство изменений в PHP 5.3.x никак не повлияет на существующий код. Есть несколько несовместимостей и новых возможностей, которые должны быть учтены, и код должен быть протестирован перед тем как переключиться на новую версию PHP на рабочих серверах.

Для систем, которые обновились с более старой версии PHP, соответствующую документацию можно получить по адресам:

  • Переход с PHP 5.1.x на PHP 5.2.x.
  • Переход с PHP 5.0.x на PHP 5.1.x.
  • Переход с PHP 4 на PHP 5.0.x.


Обратно несовместимые изменения

Хотя большая часть существующего кода PHP 5 должна работать без изменений, пожалуйста, примите к сведению следующие обратно несовместимые изменения:

  • Новый внутренний API разбора параметров был применен во всех расширениях, идущих в комплекте с PHP 5.3.x. Этот API разбора параметров требует от функций возвращать NULL при передаче несовместимых параметров. Есть некоторые исключения из этого правила, например, функция get_class(), которая будет продолжать возвращать FALSE в случае ошибки.
  • clearstatcache() больше не очищает кеш функции realpath по умолчанию.
  • Функция realpath() стала полностью независима от платформы. Следствием этого является то, что некорректные относительные пути, такие как __FILE__ . "/../x" больше не работают.
  • Семейство функций call_user_func() стало использовать $this, даже если вызываемая функция - это родительский класс.
  • Функции работы с массивами natsort(),
natcasesort(), usort(),
uasort(), uksort(),
array_flip() и array_unique() больше
не принимают объекты в качестве аргументов. Для применения этих функций к
объекту, необходимо сначала привести его к массиву.
  • Поведение функций при передаче параметров по значению, в которых параметры передаются по ссылке, было изменено. Там, где прежде функция принимала параметр по значению, сейчас генерируется фатальная ошибка. Любой прежний код, который передает константы или значения в качестве параметров функциям, которые ожидают ссылки, необходимо будет изменить, чтобы присвоить значение переменной перед вызовом функции.
  • Новая библиотека mysqlnd требует применения нового 41-го байтного формата пароля, который был введен в MySQL 4.1. Если вы продолжаете использовать 16-ти байтные пароли, это будет вынуждать функции mysql_connect() и подобные ей генерировать ошибку "mysqlnd cannot connect to MySQL 4.1+ using old authentication."
  • Новая библиотека mysqlnd не читает конфигурационные файлы mysql (my.cnf/my.ini), как это делает старая библиотека libmysqlclient. Если ваш код использует настройки в конфигурационном файле, вы можете загрузить их явно с помощью функции mysqli_options(). Обратите внимание, что это означает, что константы PDO PDO::MYSQL_ATTR_READ_DEFAULT_FILE и PDO::MYSQL_ATTR_READ_DEFAULT_GROUP не определены, если MySQL не компилировался с поддержкой mysqlnd.
  • Завершающий символ "/" был удален из класса SplFileInfo и других связанных с ним классов каталогов.
  • Магический метод __toString() не принимает больше аргументы.
  • Магические методы
__get(),
__set(),
__isset(),
__unset() и
__call() должны всегда
быть публичными и не могут быть статическими. Объявления методов теперь стали более строгими.
  • Магический метод __call() теперь вызывается при доступе к закрытым и защищенным методам.
  • func_get_arg(), func_get_args() и func_num_args() теперь не могут быть вызваны извне области видимости файла, который включается директивой include или require из функции в вызывающем файле.
  • Добавлен слой эмуляции расширения MHASH, чтобы служить оберткой вокруг расширения Hash. Однако не все алгоритмы покрыты, в их числе и алгоритм хеширования s2k. Это означает, что алгоритм хеширования s2k больше недоступен в пакете PHP 5.3.0.

Следующие ключевые слова теперь зарезервированы и не могут использоваться в качестве названия функции, класса и т.д.

  • goto
  • namespace


Новые возможности

PHP 5.3.0 предлагает широкий спектр новых возможностей:

  • Добавлена поддержка пространств имен.
  • Добавлена поддержка позднего статического связывания.
  • Добавлена поддержка меток перехода (ограниченный goto).
  • Добавлена поддержка нативных замыканий (closures) (анонимные/лямбда-функции).
  • Появились два магических метода: __callStatic() и __invoke().
  • Появилась поддержка синтаксиса Nowdoc, подобный Heredoc, но с одинарными кавычками.
  • Теперь возможно использовать Heredoc для инициализации статических переменных и свойств/констант классов.
  • Heredoc теперь может быть объявлен, используя двойные кавычки, дополняющие синтаксис Nowdoc.
  • Константы теперь могут быть объявлены вне класса, используя ключевое слово const.
  • У тернарного оператора есть теперь сокращенный вид: ?:.
  • Обертка (wrapper) HTTP-потока стала воспринимать коды статуса от 200 до 399 как успешные.
  • Стал возможен динамический доступ к статическим методам:
    <?php
    class C {
       public static     $foo = 123;
    }

    $a = "C";
    echo     $a::$foo;
    ?>

    Результат выполнения данного примера:

    123
  • Исключения теперь могут быть вложенными:
    <?php
    class MyCustomException extends Exception {}

    try {
        throw new     MyCustomException("Exceptional", 112);
    } catch (    Exception $e) {
            /* Обратите внимание, что для передачи $e
         * в RuntimeException используется третий параметр. */
            throw new RuntimeException("Rethrowing", 911, $e);
    }
    ?>
  • Добавлен сборщик мусора для циклических ссылок. Он включен по умолчанию.
  • Функция mail() теперь поддерживает журналирование отправки письма с помощью директивы mail.log. (Примечание: это применимо только для писем, отправленных этой функцией.)


Изменения в поддержке Windows

Изменения к выпускам PHP для Windows:

  • Минимально необходимая версия Windows теперь Windows XP SP3. Windows 98, ME, 2000 и NT4 больше не поддерживаются.
  • Бинарные файлы для Windows теперь скомпилированы для i586 и более поздних платформ. Платформы i386 и i486 более не поддерживаются.
  • Теперь есть экспериментальная поддержка для x64 версий PHP под Windows.
  • Теперь присутствует поддержка компилятора Visual C++ 9 (VC9), используемого в Visual Studio 2008. Снапшоты и релизы будут также доступны для VC9. Старые бинарные файлы для VC6 все еще поддерживаются и выпускаются в соответствии с VC9.
  • Библиотека PDO_OCI php_pdo_oci8.dll (для использования с клиентскими библиотеками для сервера Oracle версии 8) более не собирается. Вместо нее используйте php_pdo_oci.dll (без '8') с клиентскими библиотеками Oracle 10 или 11. Соединение с базами данных других версий все еще поддерживается.
  • Для расширения OCI8 новая библиотека php_oci8_11g.dll доступна как дополнение к php_oci8.dll. Подключена может быть только одна из библиотек. Используйте php_oci8.dll с клиентскими библиотеками Oracle 10.2. Используйте php_oci8_11g.dll с клиентскими библиотеками Oracle 11 и старше. Соединение с базами данных других версий все еще поддерживается.

Поддержка Windows была добавлена для следующих функций:

  • checkdnsrr()
  • dns_get_record()
  • fnmatch()
  • getmxrr()
  • getopt()
  • imagecolorclosesthwb()
  • inet_ntop()
  • inet_pton()
  • link()
  • linkinfo()
  • mcrypt_create_iv()
  • readlink()
  • socket_create_pair() - Эта функция была доступна и прежде на платформе Windows, но была отключена, начиная с PHP 4.3.0 по причине ошибки в ней.
  • stream_socket_pair()
  • symlink()
  • time_nanosleep()
  • time_sleep_until()

Другие изменения:

  • Улучшена переносимость функций stat(), touch(), filemtime(), filesize() и других функций, связанных с ними (100% переносимость для имеющейся информации).
  • Теперь возможно создание жестких ссылок на Windows, используя функцию link(), и символических ссылок, используя функцию symlink(). Жесткие ссылки доступны, начиная с Windows 2000, символические - начиная с Windows Vista.
  • Версия PHP для Windows теперь предоставляет набор констант с префиксом PHP_WINDOWS_*. Список констант и примеры использования можно найти в разделе Предопределенные константы.
Внимание

Поддержка модуля ISAPI была прекращена. Вместо него используйте улучшенный модуль FastCGI SAPI.

Замечание: Стал доступен новый отдельный сайт для PHP под Windows, включающий раздел загрузок, релиз-кандидаты и снапшоты в различных вариантах (thread-safe/not-thread-safe, VC6/VC9, x86/x64). URL этого сайта следующий » https://windows.php.net/.


Изменения в модулях SAPI

  • Доступен новый модуль SAPI, называемый litespeed.
  • Поддержка FastCGI в CGI SAPI теперь всегда включена и не может быть отключена. Для более детальной информации см. sapi/cgi/CHANGES.
  • Новая опция CGI SAPI -T может быть использована для измерения времени повторяющегося исполнения скрипта.
  • В CGI/FastCGI теперь есть поддержка для .htaccess-стиля файлов php.ini, определяемых пользователем.
  • Функция dl() теперь отключена по умолчанию и доступна только для CLI, CGI и встраиваемых SAPI.


Устаревшие функции и возможности в PHP 5.3.x

PHP 5.3.0 вводит два новых уровня ошибок: E_DEPRECATED и E_USER_DEPRECATED. Уровень ошибки E_DEPRECATED используется, чтобы показать, что функция или возможность устарела. Ошибка E_USER_DEPRECATED предназначена для обозначения устаревших функций в пользовательском коде, подобно уровням E_USER_ERROR и E_USER_WARNING.

Следующий список - это перечень устаревших INI-директив. Использование любой из этих директив будет приводить к генерации ошибки E_DEPRECATED при запуске.

  • define_syslog_variables
  • register_globals
  • register_long_arrays
  • safe_mode
  • magic_quotes_gpc
  • magic_quotes_runtime
  • magic_quotes_sybase
  • Комментарии, начинающиеся с символа "#", теперь считаются устаревшими в INI-файлах.

Устаревшие функции:

  • call_user_method() (используйте call_user_func())
  • call_user_method_array() (используйте call_user_func_array())
  • define_syslog_variables()
  • dl()
  • ereg() (используйте preg_match())
  • ereg_replace() (используйте preg_replace())
  • eregi() (используйте preg_match() с модификатором 'i')
  • eregi_replace() (используйте preg_replace() с модификатором 'i')
  • mcrypt_generic_end()
  • set_magic_quotes_runtime() и ее синоним magic_quotes_runtime()
  • session_register() (используйте суперглобальный массив $_SESSION)
  • session_unregister() (используйте суперглобальный массив $_SESSION)
  • session_is_registered() (используйте суперглобальный массив $_SESSION)
  • set_socket_blocking() (используйте stream_set_blocking())
  • split() (используйте preg_split())
  • spliti() (используйте preg_split() с модификатором 'i')
  • sql_regcase()
  • mysql_db_query() (используйте mysql_select_db() и mysql_query())
  • mysql_escape_string() (используйте mysql_real_escape_string())
  • Передача строки, задающей категорию функций, на которые будет влиять установка локали, сейчас считается устаревшим вариантом. Используйте вместо этого семейство констант LC_*
  • Параметр is_dst в функции mktime(). Вместо него используйте новые функции работы с временными зонами.

Устаревшие возможности:

  • Присвоение по ссылке возвращаемого значения оператором new является устаревшим.
  • Передача по ссылке во время исполнения объявлено устаревшим.


  • « Устаревшие функции и возможности в PHP 5.3.x
  • Новые параметры »
  • PHP Manual
  • Миграция c PHP 5.2.x на PHP 5.3.x
  • Функции и возможности, которые ранее считались устаревшими, а теперь снова возвращены в PHP 5.3.x

Функции и возможности, которые ранее считались устаревшими, а теперь снова возвращены в PHP 5.3.x

Функция is_a() больше не является устаревшей по причине своей популярности; она не будет больше генерировать ошибку E_STRICT.


Новые параметры

К некоторым функциям были добавлены новые необязательные параметры в PHP 5.3:

Ядро PHP:

  • clearstatcache() - Добавлен параметр clear_realpath_cache и filename.
  • copy() - Добавлен параметр контекста потока context.
  • fgetcsv() - Добавлен параметр escape.
  • ini_get_all() - Добавлен параметр details.
  • nl2br() - Добавлен параметр is_xhtml.
  • parse_ini_file() - Добавлен параметр scanner_mode.
  • round() - Добавлен параметр mode.
  • stream_context_create() - Добавлен параметр params.
  • strstr() и stristr() - Добавлен параметр before_needle.

json:

  • json_encode() - Добавлен параметр options.
  • json_decode() - Добавлен параметр depth.

Потоки:

  • stream_select(),
stream_set_blocking(),
stream_set_timeout() и
stream_set_write_buffer() теперь работают с пользовательскими
обертками потоков.

sybase_ct:

  • sybase_connect() - Добавлен параметр new.

Новые параметры методов в PHP 5.3.0:

Ядро PHP:

  • Exception::__construct() - Добавлен параметр previous.


Новые функции

В PHP 5.3 введены несколько новых функций:

Ядро PHP:

  • array_replace() - Заменяет элементы массива элементами других переданных массивов.
  • array_replace_recursive() - Рекурсивно заменяет элементы массива элементами переданных массивов.
  • class_alias() - Создает псевдоним для пользовательского класса.
  • forward_static_call() - Вызывает пользовательскую функцию из контекста метода.
  • forward_static_call_array() - Вызывает пользовательскую функцию из контекста метода с аргументами, содержащимися в массиве.
  • gc_collect_cycles() Принудительно включает коллектор существующих циклических ссылок.
  • gc_disable() - Деактивирует коллектор циклических ссылок.
  • gc_enable() - Активирует коллектор циклических ссылок.
  • gc_enabled() - Возвращает статус коллектора циклических ссылок.
  • get_called_class() - Возвращает имя класса, в котором был вызван статический метод.
  • gethostname() - Возвращает имя хоста для локального компьютера.
  • header_remove() - Удаляет HTTP-заголовок, ранее установленный функцией header().
  • lcfirst() - Переводит в нижний регистр первый символ строки.
  • parse_ini_string() - Разбирает строку конфигурации.
  • quoted_printable_encode() - Кодирует 8-битную строку с помощью метода quoted-printable.
  • str_getcsv() - Выполняет разбор CSV-строки в массив.
  • stream_context_set_default() - Устанавливает контекст потоков по умолчанию.
  • stream_supports_lock() - Возвращает TRUE, если поток поддерживает блокирование.
  • stream_context_get_params() - Получает параметры контекста потока.
  • streamWrapper::stream_cast() - Получает базовый ресурс потока.
  • streamWrapper::stream_set_option() - Изменяет опции потока.

Date/Time:

  • date_add() - Добавляет заданное количество дней, месяцев, лет, минут и секунд к объекту DateTime.
  • date_create_from_format() - Возвращает объект DateTime, приведенный в соответствие с заданным форматом.
  • date_diff() - Возвращает разницу между двумя объектами DateTime.
  • date_get_last_errors() - Возвращает предупреждения и ошибки, которые произошли при последней операции с датой или временем.
  • date_parse_from_format() - Получает информацию о заданной дате.
  • date_sub() - Вычитает заданное количество дней, месяцев, лет, минут и секунд от объекта. DateTime.
  • timezone_version_get() - Возвращает версию базы данных timezonedb.

GMP:

  • gmp_testbit() - Проверяет, установлен ли бит.

Hash:

  • hash_copy() - Копирование контекста хэширования.

IMAP:

  • imap_gc() - Очищает кеш IMAP.
  • imap_utf8_to_mutf7() - Кодирует строку UTF-8 в модифицированный UTF-7.
  • imap_mutf7_to_utf8() - Декодирует строку из модифицированного UTF-7 в UTF-8.

JSON:

  • json_last_error() - Возвращает последнюю ошибку JSON.

Улучшенный модуль MySQL (MySQL Improved):

  • mysqli_fetch_all() - Извлекает все строки результата в виде ассоциативного массива с ключами в виде чисел или в совмещенном виде.
  • mysqli_get_connection_stats() - Возвращает статистику соединения с клиентом.
  • mysqli_poll() - Опрос соединений.
  • mysqli_reap_async_query() - Получает результат асинхронного запроса.

OpenSSL:

  • openssl_random_pseudo_bytes() - Возвращает строку заданной длины, заполненную псевдослучайной последовательностью байт.

PCNTL:

  • pcntl_signal_dispatch() - Вызывает обработчик сигналов для отложенных сигналов.
  • pcntl_sigprocmask() - Устанавливает и получает заблокированные сигналы.
  • pcntl_sigtimedwait() - Ожидание сигнала с таймаутом.
  • pcntl_sigwaitinfo() - Ожидание сигнала.

PCRE:

  • preg_filter() - Выполняет поиск и замену по регулярному выражению, возвращая только результаты совпавшего шаблона.

Семафоры:

  • msg_queue_exists() - Проверка на существование очереди сообщений.
  • shm_has_var() - Проверяет, существует ли конкретный ключ внутри сегмента разделяемой памяти.

Следующие функции теперь полностью реализованы в PHP на всех ОС, на которых может работать PHP:

  • acosh()
  • asinh()
  • atanh()
  • expm1()
  • log1p()


  • « Новые функции
  • Новые фильтры потоков »
  • PHP Manual
  • Миграция c PHP 5.2.x на PHP 5.3.x
  • Новые обертки потоков

Новые обертки потоков

Следующие обертки потоков были введены в версии 5.3.0:

  • glob://
  • phar://


Новые фильтры потоков

Следующие фильтры потоков были введены в версии 5.3.0:

  • dechunk (изменяет кодировку HTTP chunked на противоположную, т.е. исходную)
  • Фильтр bz2.decompress теперь поддерживает конкатенацию.


Новые константы классов

Некоторые новые константы классов были добавлены в версии 5.3.0:

PDO_FIREBIRD:

  • PDO::FB_ATTR_DATE_FORMAT - Устанавливает формат даты.
  • PDO::FB_ATTR_TIME_FORMAT - Устанавливает формат времени.
  • PDO::FB_ATTR_TIMESTAMP_FORMAT - Устанавливает формат временной метки.


Новые методы

Несколько новых методов были введены в версии 5.3.0:

Date/Time:

  • DateTime::add() - Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime.
  • DateTime::createFromFormat() - Возвращает объект DateTime, приведенный в соответствие с заданным форматом.
  • DateTime::diff() - Возвращает разницу между двумя объектами DateTime.
  • DateTime::getLastErrors() - Возвращает предупреждения и ошибки, которые произошли при последней операции с датой или с временем.
  • DateTime::sub() - Вычитает заданное количество дней, месяцев, лет, минут и секунд от объекта. DateTime.

Класс Exception:

  • Exception::getPrevious() - Возвращает предыдущее исключение.

DOM:

  • DOMNode::getLineNo() - Возвращает номер строки узла.

PDO_FIREBIRD:

  • PDO::setAttribute() - Устанавливает атрибут.

Reflection:

  • ReflectionClass::getNamespaceName() - Возвращает пространство имен, в котором определен данный класс.
  • ReflectionClass::getShortName() - Возвращает короткое имя данного класса (без части, в которой находится пространство имен).
  • ReflectionClass::inNamespace() - Проверяет, объявлен ли класс в пространстве имен.
  • ReflectionFunction::getNamespaceName() - Возвращает название пространства имен, в котором определена данная функция.
  • ReflectionFunction::getShortName() - Возвращает короткое имя функции (без пространства имен).
  • ReflectionFunction::inNamespace() - Проверяет, определена ли функция в пространстве имен.
  • ReflectionProperty::setAccessible() - Устанавливает, могут ли необщедоступные свойства быть запрошены.

SPL:

  • SplObjectStorage::addAll() - Добавляет все элементы к другому объекту SplObjectStorage.
  • SplObjectStorage::removeAll() - Убирает все элементы из другого объекта SplObjectStorage.

XSL:

  • XSLTProcessor::setProfiling() - Устанавливает файл для вывода профиля.


Новые расширения

Следующие расширения были добавлены, начиная с PHP 5.3.0:

  • Enchant - Слой абстракции над различными библиотеками правописания
  • Fileinfo - Усовершенствованная и более серьезная замена (с полной бинарной совместимостью) расширению Mimetype, которое было удалено.
  • INTL - Расширение для интернационализации. INTL - это обертка вокруг библиотеки » ICU.
  • Phar - Реализация файлов-архивов PHP.
  • SQLite3 - Поддержка БД SQLite версии 3.

Mysqlnd - это новая основная библиотека, поставляемая с PHP. Это адаптированная для PHP замена для libmysqlclient. Mysqlnd будет использована для сборки расширения mysql, mysqli и PDO_MySQL, если libmysqlclient не будет найдена в системе. Она также может быть использована вместо libmysqlclient, даже когда libmysqlclient присутствует. Mysqlnd рекомендуется для всех установок PHP из соображений производительности.


Удаленные расширения

Следующие расширения перемещены в репозиторий PECL и больше не будут поставляться с дистрибутивом PHP. Версии этих расширений в виде пакетов PECL будут создаваться в соответствии с потребностями пользователей.

  • dbase - Более не поддерживается
  • fbsql - Более не поддерживается
  • fdf - Поддерживается
  • ming - Поддерживается
  • msql - Более не поддерживается
  • ncurses - Поддерживается
  • sybase - Убрано из дистрибутива; вместо него используйте расширение sybase_ct
  • mhash - Убрано из дистрибутива; вместо него используйте расширение hash. hash обладает полной совместимостью с mhash; все существующие приложения, использующие старые функции будут продолжать работать.


Другие изменения в расширениях

Следующие расширения не могут быть отключены в момент конфигурирования сборки:

  • PCRE
  • Reflection
  • SPL

Изменения в поведении расширений и новые возможности:

  • Дата и время - Переменная окружения TZ больше не используется для определения временной зоны
  • cURL - cURL теперь поддерживает SSH
  • Network - dns_check_record() теперь возвращает дополнительные записи типа TXT.
  • Hash - Теперь поддерживаются хеш-алгоритмы SHA-224 и salsa.
  • mbstring - Теперь есть поддержка для кодировки CP850.
  • OCI8 - Вызов функции oci_close() при постоянном соединении, или выход за зону видимости переменной, ссылающейся на постоянное соединение, теперь приводит к откату любой незавершенной транзакции. Для того, чтобы избежать непредсказуемого поведения, явно дается команда подтверждения или отката транзакции при необходимости. Предыдущее поведение может быть включено с помощью INI-директивы oci8.old_oci_close_semantics. Теперь поддерживается пул постоянных соединений к БД (DRCP) и быстрое оповещение приложения (FAN). Поддерживается внешняя аутентификация Oracle (за исключением Windows). Функция oci_bind_by_name() теперь поддерживает тип данных SQLT_AFC (также известный как CHAR).
  • OpenSSL - Теперь поддерживаются функции свертки и шифрования OpenSSL. Также стало возможно получение доступа к внутренним значениям DSA, RSA и DH ключей.
  • Сессии - Сессионные файлы теперь больше не хранятся в "/tmp", когда применены ограничения open_basedir, за исключением случая, когда директория "/tmp" явно добавлена к списку разрешенных путей.
  • SOAP Теперь поддерживает установленные пользователем HTTP-заголовки.
  • MySQLi Теперь поддерживает постоянные соединения, путем добавления к хосту "p:".
  • Обработка изображений и GD Индекс "JPG Support", возвращаемый функцией gd_info() был переименован в "JPEG Support".


Новые классы

Следующие новые классы были введены в PHP 5.3.0:

Date/Time:

  • DateInterval
  • DatePeriod

Phar:

  • Phar
  • PharData
  • PharException
  • PharFileInfo

SPL:

  • FilesystemIterator
  • GlobIterator
  • MultipleIterator
  • RecursiveTreeIterator
  • SplDoublyLinkedList
  • SplFixedArray
  • SplHeap
  • SplMaxHeap
  • SplMinHeap
  • SplPriorityQueue
  • SplQueue
  • SplStack


Новые глобальные константы

Ядро PHP:

  • __DIR__
  • __NAMESPACE__
  • E_DEPRECATED
  • E_USER_DEPRECATED
  • INI_SCANNER_NORMAL
  • INI_SCANNER_RAW
  • PHP_MAXPATHLEN
  • PHP_WINDOWS_NT_DOMAIN_CONTROLLER
  • PHP_WINDOWS_NT_SERVER
  • PHP_WINDOWS_NT_WORKSTATION
  • PHP_WINDOWS_VERSION_BUILD
  • PHP_WINDOWS_VERSION_MAJOR
  • PHP_WINDOWS_VERSION_MINOR
  • PHP_WINDOWS_VERSION_PLATFORM
  • PHP_WINDOWS_VERSION_PRODUCTTYPE
  • PHP_WINDOWS_VERSION_SP_MAJOR
  • PHP_WINDOWS_VERSION_SP_MINOR
  • PHP_WINDOWS_VERSION_SUITEMASK

cURL:

  • CURLOPT_PROGRESSFUNCTION

GD:

  • IMG_FILTER_PIXELATE

JSON:

  • JSON_ERROR_CTRL_CHAR
  • JSON_ERROR_DEPTH
  • JSON_ERROR_NONE
  • JSON_ERROR_STATE_MISMATCH
  • JSON_ERROR_SYNTAX
  • JSON_FORCE_OBJECT
  • JSON_HEX_TAG
  • JSON_HEX_AMP
  • JSON_HEX_APOS
  • JSON_HEX_QUOT

LDAP:

  • LDAP_OPT_NETWORK_TIMEOUT

libxml:

  • LIBXML_LOADED_VERSION

PCRE:

  • PREG_BAD_UTF8_OFFSET_ERROR

PCNTL:

  • BUS_ADRALN
  • BUS_ADRERR
  • BUS_OBJERR
  • CLD_CONTIUNED
  • CLD_DUMPED
  • CLD_EXITED
  • CLD_KILLED
  • CLD_STOPPED
  • CLD_TRAPPED
  • FPE_FLTDIV
  • FPE_FLTINV
  • FPE_FLTOVF
  • FPE_FLTRES
  • FPE_FLTSUB
  • FPE_FLTUND
  • FPE_INTDIV
  • FPE_INTOVF
  • ILL_BADSTK
  • ILL_COPROC
  • ILL_ILLADR
  • ILL_ILLOPC
  • ILL_ILLOPN
  • ILL_ILLTRP
  • ILL_PRVOPC
  • ILL_PRVREG
  • POLL_ERR
  • POLL_HUP
  • POLL_IN
  • POLL_MSG
  • POLL_OUT
  • POLL_PRI
  • SEGV_ACCERR
  • SEGV_MAPERR
  • SI_ASYNCIO
  • SI_KERNEL
  • SI_MESGQ
  • SI_NOINFO
  • SI_QUEUE
  • SI_SIGIO
  • SI_TIMER
  • SI_TKILL
  • SI_USER
  • SIG_BLOCK
  • SIG_SETMASK
  • SIG_UNBLOCK
  • TRAP_BRKPT
  • TRAP_TRACE


Изменения в работе с INI-файлами

В PHP 5.3.0 была значительно улучшена производительность при разборе INI-файлов и добавлено несколько новых синтаксических возможностей.

  • Стандартные файлы php.ini были реорганизованы и переименованы. php.ini-development содержит настройки, рекомендуемые для использования при разработке. php.ini-production содержит настройки, рекомендуемые при производственной эксплуатации.
  • Теперь присутствует поддержка двух специальных секций: [PATH=/opt/httpd/www.example.com/] и [HOST=www.example.com]. Директивы, установленные в этих секциях не могут быть переопределены в пользовательских INI-файлах или при выполнении. Более детальную информацию об этих секциях можно найти здесь.
  • zend_extension_debug, zend_extension_debug_ts и zend_extension_ts были удалены. Используйте директиву zend_extension для загрузки всех расширений Zend.
  • Директива zend.ze1_compatibility_mode была удалена. Если эта INI-директива установлена в On, то при запуске будет сгенерирована ошибка E_ERROR.
  • Стало возможным использования полного пути для загрузки модулей, используя директиву "extension".
  • "ini-variables" могут быть использованы почти везде в файле php.ini.
  • В процессе исполнения скрипта возможно ужесточение ограничений, заданных директивой open_basedir, и область действия самой директивы теперь PHP_INI_ALL.
  • Стало возможным использовать буквенно-цифровые или переменные индексы в массивах INI-опций.
  • Функция get_cfg_var() сейчас способна возвращать массив из INI-опций.
  • Добавлены две новых почтовых директивы: mail.add_x_header и mail.log.

Были добавлены следующие INI-директивы:

  • user_ini.filename и user_ini.cache_ttl для контроля пользовательских INI-файлов.
  • Была добавлена директива exit_on_timeout. Она служит для принудительного завершения дочерних процессов Apache 1.x в случае тайм-аута при выполнении PHP-кода.
  • Добавлена директива mbstring.http_output_conv_mimetype. Она указывает шаблон регулярного выражения для типов контента, для которых активируется функция mb_output_handler().
  • Добавлена request_order. Позволяет контролировать, какая внешняя переменная будет доступна в массиве $_REQUEST.

Следующие INI-директивы получили новые значения по умолчанию:

  • session.use_only_cookies теперь установлена в "1" (включено) по умолчанию.
  • oci8.default_prefetch изменено с "10" на "100".


Другие изменения

  • SplFileInfo::getpathinfo() теперь возвращает информацию о пути.
  • У SplObjectStorage теперь есть поддержка ArrayAccess. Теперь также возможно хранить ассоциативную информацию с объектами в SplObjectStorage.
  • В расширении GD теперь возможно объединение пикселей в группы с помощью функции imagefilter().
  • Вывод функции var_dump() теперь включает свойства закрытых объектов.
  • Функция session_start() теперь возвращает FALSE, когда начало сессии происходит неудачно.
  • Функция property_exists() теперь проверяет существование свойства, независимо от доступности (так же как method_exists()).
  • Обертки потоков теперь могут использоваться include_path.
  • Параметр initial для функции array_reduce() теперь может быть любого типа.
  • Функции для работы с директориями opendir(), scandir() и dir() теперь используют контекст потока по умолчанию, если он не задан явно.
  • У функции crypt() теперь есть поддержка Blowfish и расширенного DES, и возможности crypt() теперь 100% переносимы. У PHP имеется своя собственная внутренняя реализация crypt, которая используется вместо crypt или crypt_r, когда они не найдены.
  • Функция getopt() теперь принимает "длинные опции" на всех платформах. Поддерживаются необязательные значения и = в качестве разделителя для коротких опций.
  • У функции fopen() теперь есть новый режим (n), который передает константу O_NONBLOCK соответствующему низлежащему системному вызову open(). Обратите внимание, что этот режим в настоящее время не поддерживается в системах Windows.
  • Функция getimagesize() сейчас поддерживает файлы-иконки (.ico).
  • Расширение mhash перемещено в репозиторий PECL, но расширение Hash было изменено для поддержки mhash, если PHP скомпилирован с опцией --with-mhash. Обратите внимание, что расширение Hash не требует библиотеки mhash вне зависимости от того, включена ли эмуляция mhash или нет.


Миграция с PHP 5.1.x на PHP 5.2.x

Содержание

  • Изменения в PHP 5.2.x
  • Изменения, нарушающие обратную совместимость
  • Новые сообщения об ошибках
  • Изменения в поддержке datetime в PHP
  • Новые параметры
  • Новые функции
  • Новые методы
  • Удаленные расширения
  • Новые расширения
  • Новые классы
  • Новые глобальные константы
  • Новые константы классов
  • Новые конфигурационные параметры INI
  • Сообщения об ошибках
  • Другие улучшения

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.1.x, 5.3.x, 5.4.x, 5.5.x и 5.6.x.


Изменения в PHP 5.2.x

Большая часть изменений в PHP 5.2.x не затронет существующий код. Тем не менее, есть несколько несовместимых изменений и новых сообщений об ошибках, которые должны быть учтены при переходе. Также рекомендуется оттестировать код перед переходом на новую версию PHP в боевой установке.

Прочтите раздел "Переход на PHP 5.1.x", если предыдущей версией PHP была PHP 5.0.x.

Аналогично, если предыдущей версией была PHP 4, прочтите также раздел "Переход с PHP 4 на PHP 5.0.x".


Изменения, нарушающие обратную совместимость

Хотя большая часть существующего кода на PHP 5 должна работать без изменений, нужно обратить внимание на следующие нарушения обратной совместимости:

  • getrusage() возвращает NULL, если переданы несовместимые аргументы, начиная с PHP 5.2.1.
  • ZipArchive::setCommentName() возвращает TRUE при удачном выполнении, начиная с PHP 5.2.1.
  • ZipArchive::setCommentIndex() возвращает TRUE при удачном выполнении, начиная с PHP 5.2.1.
  • SplFileObject::getFilename() возвращает имя файла, а не относительный/путь/к/файлу, начиная с PHP 5.2.1.
  • Изменен приоритет переменной окружения PHPRC в Win32. Переменная окружения PHPRC имеет теперь больший приоритет, чем путь, сохраненный в реестре Windows.
  • CLI SAPI больше не проверяет текущую директорию на наличие php.ini или php-cli.ini. В PHP 5.1.x существовала недокументированная особенность: исполняемый файл CLI проверял текущую директорию на наличие конфигурационного файла PHP. Это потенциально могло привести к непредсказуемому поведению в случае, если был найден нежелательный конфигурационный файл. Эта функциональность была удалена в версии 5.2.0 и PHP более не ищет в текущей директории файлы php.ini или php-cli.ini. См. также раздел "Командная строка" данного руководства.
  • Добавлено предупреждение при поиске остатка от деления на 0. В предыдущих версиях PHP выполнение операции "integer % 0" не вызывало никаких предупреждений. Результатом операции было значение FALSE. Начиная с PHP 5.2.0 эта операция вызовет E_WARNING, как и в любом другом случае деления на 0.
    <?php
    print 10 % 0;
    /* Warning:  Division by zero in filename on line n */
    ?>
  • __toString() вызывается в случаях преобразования в строку. "Магический" метод __toString() вызывается в строковом контексте, то есть во всех случаях, когда объект используется как строка. В версии PHP 5.2.0 была удалена функциональность по умолчанию, возвращавшая строку с идентификатором объекта. Эта функциональность вызывала проблемы, поскольку идентификатор в общем случае не уникален. Это изменение означает, что ваше приложение будет вести себя неправильно, если оно полагается на идентификатор объекта в виде возвращаемого значения. Попытка использовать это значение как строку вызовет перехватываемую фатальную ошибку.
    <?php
    class foo {}
    $foo = new foo;
    print     $foo;
    /* Catchable fatal error:  Object of class foo could
       not be converted to string in filename on line n */
    ?>
    Даже с методом __toString() объекты не могут использоваться для индексации массива. Возможно, позднее будет реализовано встроенное хэширование для таких случаев, но в PHP 5.2.x вам придется реализовать собственное вычисление хэш-значений или использовать новую функцию SPL: spl_object_hash(). Из метода __toString() нельзя бросать исключения.
    <?php
    class foo {
        public function     __toString() {
            throw new     Exception;
        }
    }

    try {
        print new     foo;
            /* Fatal error:  Method foo::__toString() must
           not throw an exception in filename on line n */
    } catch(Exception $e) {}
    ?>
  • Не поддерживаются абстрактные статические методы классов. По недосмотру, PHP 5.0.x и 5.1.x позволяли определять абстрактные статические методы классов. Начиная с PHP 5.2.x такие методы могут быть только у интерфейсов.
    <?php
    abstract class foo {
        abstract static function     bar();
            /* Strict Standards:  Static function foo::bar()
           should not be abstract in filename on line n */
    }
    ?>
  • Расширение Oracle требует как минимум Oracle 10 под Windows.
  • Добавлена поддержка RFC2397 (data: stream). Добавление URL-схемы "data" может потенциально привести к нарушению работы кода под Windows. Если вы работаете с файловой системой NTFS, используете мета-потоки и ваше приложение работает с файлом "data:" не указывая путь к нему, это вызовет ошибку. Чтобы исправить её, используйте протокол "file:" для доступа к файлу. См. также » RFC 2397
    <?php
    /* При allow_url_include равной OFF (по умолчанию) */
    include "data:;base64,PD9waHAgcGhwaW5mbygpOz8+";
    /* Warning:  include(): URL file-access is disabled
       in the server configuration in filename on line n */
    ?>
  • Регрессия в шаблонах glob() В версии 5.2.4 исправление безопасности привело к регрессии для шаблонов вида "/foo/*/bar/*". Начиная с версии 5.2.5 функция glob() больше не будет выдавать предупреждение, а возвратит FALSE, если нарушены ограничения openbase_dir.


Новые сообщения об ошибках

Ниже перечислены новые сообщения об ошибках, не упоминавшиеся ранее в этом документе.

Пример #1 В ядре PHP

<?php
echo " ";
session_regenerate_id();
/*  Warning:  session_regenerate_id(): Cannot regenerate
    session id - headers already sent in filename on line n */

str_word_count("string", 4);
/* Warning:  str_word_count(): Invalid format value 4
   in filename on line n */

strripos("foo", "f", 4);
/* Notice:  strripos(): Offset is greater than the
   length of haystack string in filename on line n */

strrpos("foo", "f", 4);
/* Notice:  strrpos(): Offset is greater than the
   length of haystack string in filename on line n */

/* Начиная с PHP 5.2.1, при значении allow_url_include = OFF (по умолчанию) */
include "php://input";
/* Warning:  include(): URL file-access is disabled
   in the server configuration in filename on line n */
?>

Пример #2 Объектно-ориентированный код в ядре PHP

<?php
interface foo {
}
class bar implements foo, foo {
}
/* Fatal error: Class bar cannot implement previously
   implemented interface foo in filename on line n */

class foo {
    public $bar;
    function __get($var)
    {
        return $this->bar;
    }
}

$foo = new foo;
$bar =& $foo->prop;
/* Notice: Indirect modification of overloaded property
   foo::$prop has no effect in filename on line n */

class foo implements iterator {
    public function current() {
    }
    public function next() {
    }
    public function key() {
    }
    public function valid() {
    }
    public function rewind() {
    }
}

$foo = new foo();
foreach($foo as &$ref) {}
/* Fatal error: An iterator cannot be used with foreach
   by reference in filename on line n */

class foo {
    private function __construct() {
    }
}
class bar extends foo {
    public function __construct() {
        parent::__construct();
        /* Fatal error:  Cannot call private
           foo::__construct() in filename on line n */
    }
}
new bar;

stream_filter_register("", "class");
/* Warning:  stream_filter_register(): Filter name
   cannot be empty in filename on line n */

stream_filter_register("filter", "");
/* Warning:  stream_filter_register(): Class name
   cannot be empty in filename on line n */
?>

Пример #3 В расширении bzip2

<?php
bzopen("", "w");
/* Warning:  bzopen(): filename cannot be empty
   in filename on line n */

bzopen("foo", "a");
/* Warning:  bzopen(): 'a' is not a valid mode for
   bzopen(). Only 'w' and 'r' are supported in
   filename on line n */

$fp = fopen("foo", "w");
bzopen($fp, "r");
/* Warning:  bzopen(): cannot read from a stream
   opened in write only mode in filename on line n */
?>

Пример #4 В расширении datetime

<?php
strtotime("today", "now");
/* Warning:  strtotime() expects parameter 2 to be
   long, string given in filename on line n */

/* As of PHP 5.2.1 */
new DateTime(new stdclass);
/* Fatal error: Uncaught exception 'Exception' with
   message 'DateTime::__construct() expects parameter
   1 to be string, object given' in filename:n */
?>

Пример #5 В расширении dBase

<?php
dbase_open("foo", -1);
/* Warning: Invalid access mode -1 in filename on line n */

/* As of PHP 5.2.1 */
dbase_open("foo", null);
/* Warning: The filename cannot be empty in filename on line n */
?>

Пример #6 В расширении mcrypt

<?php
$key = "секретный ключ";
$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, "");
/* Warning: mcrypt_generic(): An empty string was
   passed in filename on line n */
?>

Пример #7 В расширении oci8

<?php
oci_connect("user", "pass", "db", "bogus_charset");
/* Warning: Invalid character set name:
   bogus_charset in filename on line n */

$oci = oci_connect("user", "pass", "db");
oci_password_change($oci, "", "old", "new");
/* Warning: username cannot be empty in filename
   on line n */

oci_password_change($oci, "user", "", "new");
/* Warning: old password cannot be empty in filename
   on line n */

oci_password_change($oci, "user", "old", "");
/* Warning: new password cannot be empty in filename
   on line n */
?>

Пример #8 В расширении SPL

<?php
$obj = new SplFileObject(__FILE__);
$obj->fgetcsv("foo");
/* Warning:  SplFileObject::fgetcsv(): delimiter must
   be a character in filename on line n */

$obj->fgetcsv(",", "foo");
/* Warning:  SplFileObject::fgetcsv(): enclosure must
   be a character in filename on line n */
?>

Пример #9 В расширении Semaphore (sysvmsg)

<?php
/* Warning:  maximum size of the message has to be
   greater then zero in filename on line n */
?>

Пример #10 Пример Zip для версий 5.2.1+

<?php
$obj = new ZipArchive();
$obj->open('archive.zip');
$obj->setCommentName('', 'комментарий');
/* Notice:  ZipArchive::setCommentName(): Empty string
   as entry name in filename on line n */

/* Начиная с PHP 5.2.1 */
$obj->getCommentName('');
/* Notice:  ZipArchive::getCommentName(): Empty string
   as entry name in filename on line n */
?>


Изменения в поддержке datetime в PHP

Начиная с PHP 5.1.0, в ядро PHP включено расширение date. Это новая реализация поддержки работы с датой и временем в PHP. Хотя расширение попытается угадать системные настройки временной зоны, лучше установить их вручную. Это можно сделать одним из трех способов:

  • в php.ini при помощи параметра date.timezone
  • в системе при помощи переменной окружения TZ
  • из скрипта при помощи функции date_default_timezone_set()

Поддерживаемые идентификаторы временных зон перечислены в документации.

С появлением PHP 5.2.x существует объектное представление даты и временной зоны: DateTime и DateTimeZone соответственно. Их методы соответствуют существующим функциям для работы с датой.


Новые параметры

В PHP 5.2.x у некоторых функций появились новые, необязательные параметры:

Ядро PHP:

  • htmlentities() - добавлен параметр double_encode в PHP 5.2.3.
  • htmlspecialchars() - добавлен параметр double_encode в PHP 5.2.3.
  • base64_decode() - добавлен параметр strict
  • setcookie() - добавлен параметр httponly
  • setrawcookie() - добавлен параметр httponly
  • session_set_cookie_params() - добавлен параметр httponly
  • memory_get_usage() - добавлен параметр real_usage
  • get_loaded_extensions() - добавлен параметр zend_extensions в PHP 5.2.4

curl:

  • curl_multi_info_read() - добавлен параметр msgs_in_queue

datetime

  • date() - добавлен символ форматирования "u" (миллисекунды) в PHP 5.2.2

imap:

  • imap_open() - добавлен параметр n_retries
  • imap_reopen() - добавлен параметр n_retries

mbstring:

  • mb_strrpos() - добавлен параметр offset
    Внимание

    Параметр offset добавлен на место параметра encoding. Обратная совместимость обеспечивается указанием encoding как третьего параметра. Однако использовать это не рекомендуется, так как поддержка encoding как третьего параметра будет удалена в последующих версиях PHP.

ming:

  • SWFMovie::streamMP3() - добавлен параметр skip в PHP 5.2.1

openssl:

  • openssl_verify() - добавлен параметр signature_algo

pgsql:

  • pg_escape_bytea() - добавлен параметр connection
  • pg_escape_string() - добавлен параметр connection

simplexml:

  • SimpleXMLElement::__construct() - добавлен параметр is_prefix
  • SimpleXMLElement::attributes() - добавлен параметр is_prefix
  • SimpleXMLElement::children() - добавлен параметр is_prefix
  • simplexml_load_file() - добавлен параметр is_prefix
  • simplexml_load_string() - добавлен параметр is_prefix

spl:

  • array iterator_to_array(Traversable it [, bool use_keys = true]) - добавлен параметр use_keys в PHP 5.2.1

xmlreader:

  • XMLReader::open() - добавлены параметры encoding и options
  • XMLReader::XML() - добавлены параметры encoding и options

XMLWriter:

  • xmlwriter_write_element() - параметр content стал необязательным в PHP 5.2.3
  • xmlwriter_write_element_ns() - параметр content стал необязательным в PHP 5.2.3


Новые функции

В PHP 5.2.x было добавлено несколько новых функций:

Ядро PHP:

  • array_fill_keys() - Создает массив, используя элементы первого параметра в виде ключей и присваивая всем значение val
  • error_get_last() - Возвращает последнюю ошибку в ассоциативном массиве или NULL, если ошибок не было.
  • image_type_to_extension() - Возвращает расширение файла для типа изображения, полученного из getimagesize(), exif_read_data(), exif_thumbnail(), exif_imagetype()
  • memory_get_peak_usage() - Возвращает максимум выделенной для PHP памяти
  • sys_get_temp_dir() - Возвращает путь к директории для временных файлов. (Добавлено в 5.2.1)
  • timezone_abbreviations_list() - Возвращает ассоциативный массив, содержащий для каждой аббревиатуры временной зоны флаг летнего времени (DST), смещение от стандартного времени и название пояса.
  • timezone_identifiers_list() - Возвращает массив идентификаторов всех временных зон.
  • timezone_name_from_abbr() - Возвращает название временной зоны по аббревиатуре
  • stream_socket_shutdown() - Закрывает соединение или его часть на сокете, связанном с потоком, который будет закрыт. Начиная с PHP 5.2.1.

Image:

  • imagegrabscreen() - Делает снимок всего экрана. Начиная с PHP 5.2.2.
  • imagegrabwindow() - Делает снимок окна. Начиная с PHP 5.2.2.

libXML:

  • libxml_disable_entity_loader() - Отключает возможность загрузки внешних сущностей. Начиная с PHP 5.2.11.

mbstring:

  • mb_stripos() - Находит позицию первого вхождения строки в другой строке. Регистронезависимая.
  • mb_stristr() - Находит первое вхождение строки в другой строке. Регистронезависимая.
  • mb_strrchr() - Находит последнее вхождение символа строки в другой строке.
  • mb_strrichr() - Находит последнее вхождение символа из строки в другой строке. Регистронезависимая.
  • mb_strripos() - Находит позицию последнего вхождения строки в другой строке. Регистронезависимая.
  • mb_strstr() - Находит первое вхождение строки в другой строке.

ming (Начиная с PHP 5.2.1):

  • void ming_setSWFCompression(int num) - Устанавливает сжатие выходного потока.
  • void swfmovie::namedanchor(string name) - Создает якорь.
  • void swfmovie::protect([string password]) - Защищает выходной поток.

openssl:

  • openssl_csr_get_public_key() - Извлекает открытый ключ из CERT и подготавливает его к использованию.
  • openssl_csr_get_subject() - Возвращает предмет (subject) CERT
  • openssl_pkey_get_details() - Возвращает массив с информацией о ключе (bits, pkey, type)

spl:

  • spl_object_hash() - Возвращает хеш-значение для данного объекта
  • int iterator_apply(Traversable it, mixed function [, mixed params]) - Вызывает функцию для каждого элемента итератора.

pcre:

  • preg_last_error() - Возвращает код ошибки для последнего поиска по регулярному выражению.

pgsql:

  • pg_field_table() - Возвращает название таблицы, которой принадлежит поле, или oid таблицы, если oid_only содержит TRUE

posix:

  • posix_initgroups() - Вычисляет список доступа группы по имени пользователя.

gmp:

  • gmp_nextprime() - Находит следующее простое число.

xmlwriter:

  • xmlwriter_full_end_element() - Закрывает текущий элемент, возвращает FALSE при ошибке.
  • xmlwriter_write_raw() - Пишет текст, возвращает FALSE при ошибке.
  • xmlwriter_start_dtd_entity() - Начинает DTD-сущность, возвращает FALSE при ошибке.
  • xmlwriter_end_dtd_entity() - Заканчивает текущую DTD-сущность, возвращает FALSE при ошибке.
  • xmlwriter_write_dtd_entity() - Записывает полную DTD-сущность, возвращает FALSE при ошибке.


Новые методы

В 5.2.0 были добавлены новые методы:

dom:

  • DOMDocument::registerNodeClass() - Регистрирует расширенный класс для создания базового типа узла.
  • DOMElement::setIDAttribute() - Объявляет атрибут, указанный по имени, с идентификатором типа.
  • DOMElement::setIDAttributeNode() - Объявляет атрибут, указанный узлом, с идентификатором типа.
  • DOMElement::setIDAttributeNS() - Объявляет атрибут, указанный локальным именем и URI пространства имен, с идентификатором типа.
  • DOMNode::C14N()([bool exclusive [, bool with_comments [, array xpath [, array ns_prefixes]]]]) - Записывает каноническую запись узлов в строку.
  • DOMNode::C14NFile()(string uri [, bool exclusive [, bool with_comments [, array xpath [, array ns_prefixes]]]]) - Записывает каноническую запись узлов в файл.
  • DOMNode::getNodePath()() - Возвращает xpath узла

soap:

  • SoapServer::setObject()(object obj) - Устанавливает объект-обработчик SOAP-запросов.

spl:

  • int ArrayObject::asort()(void) - Сортирует массив по значениям.
  • int ArrayObject::ksort()(void) - Сортирует массив по ключам.
  • int ArrayObject::natcasesort()(void) - Сортирует массив по ключам, используя регистронезависимую сортировку алгоритмом "natural order".
  • int ArrayObject::natsort()(void) - Сортирует массив по значениям, используя сортировку алгоритмом "natural order".
  • int ArrayObject::uasort()(callback cmp_function) - Сортирует массив по значениям, используя функцию сравнения, заданную пользователем.
  • int ArrayObject::uksort()(callback cmp_function) - Сортирует массив по ключам, используя функцию сравнения, заданную пользователем.
  • ArrayIterator AppendIterator::getArrayIterator()() - Предоставляет доступ к внутреннему итератору (ArrayIterator).
  • int AppendIterator::getIteratorIndex()() - Возвращает индекс итератора.
  • bool CachingIterator::getCache()() - Возвращает флаг кэша.
  • int CachingIterator::getFlags()() - Возвращает внутренние флаги.
  • bool CachingIterator::offsetExists()(mixed index) - Возвращает TRUE, если индекс существует.
  • string CachingIterator::offsetGet()(mixed index) - Возвращает внутренний кеш при его использовании.
  • void CachingIterator::offsetSet()(mixed index, mixed newval) - Устанавливает индекс в кеше.
  • void CachingIterator::offsetUnset()(mixed index) - Очищает индекс в кеше.
  • void CachingIterator::setFlags()() - Устанавливает внутренние флаги.
  • array("delimiter" =>, "enclosure" =>) SplFileObject::getCsvControl()(void) - Возвращает разделяющий и обрамляющий символы, используемые в fgetcsv().
  • void SplFileObject::setCsvControl()([string delimiter = ',' [, string enclosure = '"']]) - Устанавливает разделяющий и обрамляющий символы, используемые в fgetcsv().

Tidy

  • tidyNode tidyNode::getParent()() - Возвращает родительский узел текущего. (Добавлено в PHP 5.2.2)

XMLReader

  • boolean XMLReader::setSchema() - Использует схему W3C XSD для проверки документа при обработке. Можно использовать перед первым вызовом XMLReader::read().

zip:

  • ZipArchive::addEmptyDir()() - Создает пустую директорию в архиве.


Удаленные расширения

Эти расширения были перенесены в PECL и больше не являются частью дистрибутива PHP. Пакеты в PECL для этих расширений будут создаваться по запросам пользователей.

  • filePro
  • Hyperwave API


Новые расширения

Следующие расширения были добавлены (по умолчанию) в PHP 5.2.0:

  • Filter - проверяет и фильтрует данные. Разработан для работы с небезопасными данными, такими как пользовательский ввод. Это расширение включено по умолчанию. Режим RAW (по умолчанию) не влияет на входные данные.
  • JSON - реализует работу с форматом обмена данными JavaScript Object Notation (JSON). Это расширение включено по умолчанию.
  • Zip - позволяет прозрачно читать и писать ZIP-архивы и файлы в них.


Новые классы

Следующие классы были добавлены в PHP 5.2.0:

  • DateTime
  • DateTimeZone
  • RegexIterator - наследует FilterIterator; реализует Iterator, Traversable, OuterIterator Константы:
    • RegexIterator::ALL_MATCHES
    • RegexIterator::GET_MATCH
    • RegexIterator::MATCH
    • RegexIterator::REPLACE
    • RegexIterator::SPLIT
    • RegexIterator::USE_KEY
    Свойства:
    • public replacement
    Методы:
    • RegexIterator::__construct(Iterator it, string regex [, int mode [, int flags [, int preg_flags]]]) - Создает RegexIterator из другого итератора и регулярного выражения.
    • bool RegexIterator::accept() - Проверяет (строку) current() на соответствие регулярному выражению.
    • bool RegexIterator::getFlags() - Возвращает текущие флаги.
    • bool RegexIterator::getMode() - Возвращает текущий режим работы.
    • bool RegexIterator::getPregFlags() - Возвращает текущие флаги PREG (или NULL, если они не используются)
    • bool RegexIterator::setFlags(int new_flags) - Устанавливает флаги.
    • bool RegexIterator::setMode(int new_mode) - Устанавливает новый режим работы.
    • bool RegexIterator::setPregFlags(int new_flags) - Устанавливает флаги PREG.
  • RecursiveRegexIterator Константы:
    • RecursiveRegexIterator::ALL_MATCHES
    • RecursiveRegexIterator::GET_MATCH
    • RecursiveRegexIterator::MATCH
    • RecursiveRegexIterator::REPLACE
    • RecursiveRegexIterator::SPLIT
    • RecursiveRegexIterator::USE_KEY
    Методы:
    • RecursiveRegexIterator::__construct(RecursiveIterator it, string regex [, int mode [, int flags [, int preg_flags]]]) - Создает RecursiveRegexIterator из другого рекурсивного итератора и регулярного выражения.
    • RecursiveRegexIterator RecursiveRegexIterator::getChildren() - Возвращает внутренний итератор потомков, содержащихся в текущем RecursiveRegexIterator.
    • bool RecursiveRegexIterator::hasChildren() - Проверяет, есть ли у текущего элемента внутреннего итератора потомки.


Новые глобальные константы

Ядро PHP:

  • M_EULER
  • M_LNPI
  • M_SQRT3
  • M_SQRTPI
  • PATHINFO_FILENAME
  • PREG_BACKTRACK_LIMIT_ERROR
  • PREG_BAD_UTF8_ERROR
  • PREG_INTERNAL_ERROR
  • PREG_NO_ERROR
  • PREG_RECURSION_LIMIT_ERROR
  • UPLOAD_ERR_EXTENSION
  • STREAM_SHUT_RD
  • STREAM_SHUT_WR
  • STREAM_SHUT_RDWR

curl:

  • CURLE_FILESIZE_EXCEEDED
  • CURLE_FTP_SSL_FAILED
  • CURLE_LDAP_INVALID_URL
  • CURLFTPAUTH_DEFAULT
  • CURLFTPAUTH_SSL
  • CURLFTPAUTH_TLS
  • CURLFTPSSL_ALL
  • CURLFTPSSL_CONTROL
  • CURLFTPSSL_NONE
  • CURLFTPSSL_TRY
  • CURLOPT_FTP_SSL
  • CURLOPT_FTPSSLAUTH
  • CURLOPT_TCP_NODELAY Добавлено в PHP 5.2.1.
  • CURLOPT_TIMEOUT_MS Добавлено в PHP 5.2.3
  • CURLOPT_CONNECTTIMEOUT_MS Добавлено в PHP 5.2.3

GMP:

  • GMP_VERSION Добавлено в PHP 5.2.2.

ming:

  • SWFTEXTFIELD_USEFONT
  • SWFTEXTFIELD_AUTOSIZE
  • SWF_SOUND_NOT_COMPRESSED
  • SWF_SOUND_ADPCM_COMPRESSED
  • SWF_SOUND_MP3_COMPRESSED
  • SWF_SOUND_NOT_COMPRESSED_LE
  • SWF_SOUND_NELLY_COMPRESSED
  • SWF_SOUND_5KHZ
  • SWF_SOUND_11KHZ
  • SWF_SOUND_22KHZ
  • SWF_SOUND_44KHZ
  • SWF_SOUND_8BITS
  • SWF_SOUND_16BITS
  • SWF_SOUND_MONO
  • SWF_SOUND_STEREO

openssl:

  • OPENSSL_VERSION_NUMBER
  • OPENSSL_VERSION_TEXT

snmp:

  • SNMP_OID_OUTPUT_FULL
  • SNMP_OID_OUTPUT_NUMERIC

Семафоры:

  • MSG_EAGAIN
  • MSG_ENOMSG


Новые константы классов

pdo:

  • PDO::ATTR_DEFAULT_FETCH_MODE
  • PDO::FETCH_PROPS_LATE
  • PDO::FETCH_KEY_PAIR Преобразует 2-колоночный результат в ассоциативный массив. (Добавлено в PHP 5.2.3)

spl:

  • CachingIterator::FULL_CACHE
  • CachingIterator::TOSTRING_USE_INNER
  • SplFileObject::READ_AHEAD
  • SplFileObject::READ_CSV
  • SplFileObject::SKIP_EMPTY


Новые конфигурационные параметры INI

Новые директивы php.ini, добавленные в PHP 5.2.0:

  • allow_url_include Эта опция дает возможность различать стандартные файловые операции с удаленными файлами и подключение удаленных файлов. Хотя обычно требуется первое, второе может привести к проблемам с безопасностью. Начиная с PHP 5.2.0, вы можете разрешить операции с удаленными файлами и при этом запретить их подключение к локальным скриптам. Это конфигурация по умолчанию.
  • pcre.backtrack_limit Лимит обратных ссылок PCRE.
  • pcre.recursion_limit Лимит рекурсии PCRE. Обратите внимание, что при установке достаточно большого значения в этом параметре, весь доступный стек процесса может быть занят и PHP остановится из-за превышения размера стека, установленного операционной системой.
  • session.cookie_httponly Устанавливает доступ в отсылаемых cookies только через протокол HTTP. Это означает, что cookies не будут доступны скриптовым языкам, например, таким как JavaScript. Эта установка может помочь в борьбе с XSS-атаками, хотя она и поддерживается не всеми браузерами.

Новые директивы в PHP 5.2.2:

  • max_input_nesting_level Ограничивает вложенность входных переменных, по умолчанию 64.


Сообщения об ошибках

Некоторые существующие ошибки (E_ERROR) теперь можно поймать при помощи обработчиков. Если E_RECOVERABLE_ERROR не обработана, она будет вести себя как E_ERROR. Ошибки этого типа записываются в лог как Catchable fatal error.

Это означает, что значение константы E_ALL error_reporting теперь равно 6143, тогда как предыдущее значение было 2047. Так как имена констант не имеют смысла вне PHP, иногда используются их числовые значения. То есть, например, при установке error_reporting через httpd.conf или .htaccess, данное значение нужно будет сменить при переходе на новую версию PHP. То же касается и числовых значений, если они используются вместо имен констант в скриптах.

Как побочный эффект этих изменений, чтобы предотвратить двойное сообщение об ошибке при параметре track_errors выставленном в On, теперь необходимо возвращать FALSE из пользовательских обработчиков, чтобы отобразилось значение $php_errormsg. Это позволяет точно контролировать уровни сообщений.


Другие улучшения

  • Улучшено управление памятью и увеличен лимит памяти по умолчанию. Новый менеджер памяти выделяет меньше памяти и работает быстрее, чем предыдущая реализация. Он запрашивает память большими блоками и затем управляет кучей сам. Значение memory_limit в php.ini проверяется не при каждом вызове emalloc(), как раньше, а только при действительном запросе памяти у системы. Это означает, что memory_limit гораздо более точен, чем раньше, так как старый менеджер памяти не учитывал дополнительные затраты библиотеки malloc. Благодаря новому механизму может показаться, что используется больше памяти, тогда как на самом деле это не так. Чтобы скомпенсировать это кажущееся увеличение, значение memory_limit также увеличено с 8 до 16 мегабайт.
  • Добавлена поддержка конструкторов в интерфейсах. Это позволяет проверять сигнатуру конструкторов в реализациях интерфейса. Начиная с PHP 5.2.0, интерфейсы могут содержать конструкторы. Если вы объявляете конструктор в интерфейсе, каждая его реализация должна иметь конструктор с той же сигнатурой, что и конструктор интерфейса. Под "сигнатурой" мы понимаем возвращаемый тип и набор параметров, включая указание типов и передачу параметров по ссылке или значению.


Миграция с PHP 5.0.x на PHP 5.1.x

Содержание

  • Основные возможности PHP 5.1.x
  • Изменения в обработке ссылок
  • Чтение []
  • Целочисленные значения в параметрах функции
  • Изменения класса и объекта
  • Модули
  • Поддержка даты и времени
  • Изменения в поддержке базы данных
  • Проверка на E_STRICT

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.2.x, 5.3.x, 5.4.x, 5.5.x и 5.6.x.


Основные возможности PHP 5.1.x

Некоторые из ключевых возможностей PHP 5.1.x содержат:

  • Полностью переписан код по работе с датами с расширенной поддержкой временных зон.

  • Значительное улучшение производительности по сравнению с PHP 5.0.X.

  • Модуль PDO сейчас включен по умолчанию.

  • Свыше 30 новых функций в различных модулях и во встроенной функциональности.

  • Более 400 различных исправлений ошибок.


Изменения в обработке ссылок

  • Обзор

  • Код, который работает на PHP 4.3.x, но теперь терпит неудачу

  • Код, который работает на PHP 4.3.x, но теперь вызывает ошибку

  • Код, который терпит неудачу на PHP 4.3.x, но теперь работает

  • Код, который должен работать на PHP 5.0.x

  • Предупреждения, которые ранее были, а теперь нет

Обзор

С точки зрения разработчика изменение, которое наиболее всего появлияет на устаревший код, это то, как обрабатываются ссылки, начиная с PHP 4.0.4.

До PHP 4.3 включительно, можно было отправлять, назначать или возвращать переменные по ссылке, которые на самом деле должны возвращены по значению, в виде константы, временного значения (например, результат выражения) или результат функции, которая сама возвращает по значению, как в данном случае:

<?php
$foo = "123";

function return_value() {
    global $foo;
    return $foo;
}

$bar = &return_value();
?>

Хотя данный код работает, как ожидается в PHP 4.3, в общем случае результат не определен. Движок Zend не мог корректно работать с этими значениями в качестве ссылок. Эта ошибка могла и приводила к различным трудно воспроизводимым ошибкам, связанных с проблемой повреждением памяти (memory corruption), особенно в случае большой кодовой базы.

В PHP 4.4.0, PHP 5.0.4 и в последующих версиях PHP, движок был исправлен, чтобы 'знать', когда операция со ссылкой используется на значении, на которое не следует ссылаться. В таких случаях используется фактическое значение, и выдается предупреждение. Предупреждение имеет уровень E_NOTICE в PHP 4.4.0 и выше и E_STRICT в PHP 5.0.4 и выше.

Код, который потенциально мог привести к повреждениям памяти, теперь больше к этому не приводит. Однако некоторый устаревший код может работать по-разному.

Код, который работает на PHP 4.3.x, но теперь терпит неудачу

<?php
function func(&$arraykey) {
    return $arraykey; // функция возвращает по значению
}

$array = array('a', 'b', 'c');
foreach (array_keys($array) as $key) {
    $y = &func($array[$key]);
    $z[] =& $y;
}

var_dump($z);
?>

Выполнение вышеприведенного кода в любой версии PHP, до версии, когда ошибка со ссылками была исправлена, приведет к такому выводу:

array(3) {
  [0]=>
  &string(1) "a"
  [1]=>
  &string(1) "b"
  [2]=>
  &string(1) "c"
}

После исправления ошибки этот же код приведет к следующему результату:

array(3) {
  [0]=>
  &string(1) "c"
  [1]=>
  &string(1) "c"
  [2]=>
  &string(1) "c"
}

Это связано с тем, что после изменений функция func() присваивает переменной по значению. Значение $y переопределяется, и привязка ссылок сохраняется от $z. До исправления значение присваивалось по ссылке, что приводило к тому, что ссылка $y обновляется при каждом присваивании. Попытка привязки к временному значению по ссылке была причиной повреждения памяти.

Подобный код можно сделать одинаково работающим как в версиях PHP до исправления, так и после. Объвление func() может быть изменено для возврата по ссылке или присвоение по ссылке может быть может удалено из func().

<?php
function func() {
    return 'возврат функции';
}

$x = 'исходное значение';
$y =& $x;
$y = &func();
echo $x;
?>

В PHP 4.3 $x будет 'исходное значение', тогда как после исправления ошибки будет 'возврат функции' - помните, что если функция не возвращает по ссылке, присвоение по ссылке будет преобразовано в обычное присваивание. Опять же, этого можно достичь, заставив func() возвращать значение по ссылке, либо убрать присваивание по ссылке.

Код, который работает на PHP 4.3.x, но теперь вызывает ошибку

<?php
class Foo {

    function getThis() {
        return $this;
    }

    function destroyThis() {
        $baz =& $this->getThis();
    }
}

$bar = new Foo();
$bar->destroyThis();
var_dump($bar);
?>

В PHP 5.0.3 $bar выполняется как NULL вместо возврата объекта. Это происходит потому, что getThis() возвращает по значению, но значение присваивается по ссылке. Хотя он теперь работает как ожидается, это на самом деле некорректный код, который будет вызывать ошибку уровня E_NOTICE в PHP 4.4 или E_STRICT в PHP 5.0.4 и выше.

Код, который терпит неудачу на PHP 4.3.x, но теперь работает

<?php
function &f() {
    $x = "foo";
    var_dump($x);
    print "$x\n";
    return($a);
}

for ($i = 0; $i < 3; $i++) {
    $h = &f();
}
?>

В PHP 4.3 третий вызов var_dump() выдаст NULL из-за повреждения памяти, вызванного возвратом неинициализированного значения по ссылке. Это корректный код в PHP 5.0.4 и выше, но вызывает ошибки в ранних версиях PHP.

<?php
$arr = array('a1' => array('alfa' => 'ok'));
$arr =& $arr['a1'];
echo '-'.$arr['alfa']."-\n";
?>

До PHP 5.0.5 невозможно было присвоить элемент массива таким образом reference in this way. Теперь это исправлено.

Код, который должен работать на PHP 5.0.x

Есть несколько примеров ошибок, указываемых в PHP 5.0 до исправлений ссылок, которые теперь 'работают'. Однако в обоих случаях ошибки генерируются в PHP 5.1.x, потому что код прежде всего некорректный. Возврат значений с помощью self:: теперь работает в общем случае, но выдает предупреждение E_STRICT, и хотя это может случиться при присвоении по ссылке на перегруженный объект, вы можете все еще увидеть E_ERROR при попытке использования, хотя само присваивание работает.

Предупреждения, которые ранее были, а теперь нет

Вложенные вызовы функций, возвращаемых по ссылке, являются корректным кодом как в PHP 4.3.x, так и в PHP 5.1.x, но вызывают ошибки E_NOTICE или E_STRICT в новых версиях PHP.

<?php
function & foo() {
    $var = 'ок';
    return $var;
}

function & bar() {
    return foo();
}

$a =& bar();
echo "$a\n";
?>


Чтение []

<?php
class XmlTest {

    function test_ref(&$test) {
        $test = "ок";
    }

    function test($test) { }

    function run() {
        $ar = array();
        $this->test_ref($ar[]);
        var_dump($ar);
        $this->test($ar[]);
    }
}

$o = new XmlTest();
$o->run();
?>

Это должно всегда выбрасывать фатальную ошибку E_ERROR, потому что [] не может использоваться для чтения PHP. Это некорректный код в PHP 4.4.2 и PHP 5.0.5 и выше.


Целочисленные значения в параметрах функции

С появлением PHP 5.0.x был введен параметр новый API для анализа параметров, используемый большим количеством функций PHP. Во всех версиях PHP между 5.0.x и 5.1.x обработка целочисленных значений была очень строгой и отклоняла некорректные числовые значения, когда функция PHP ожидает целое число. Эти проверки теперь ослаблены для поддержки некорректных числовых строк, таких как " 123" и "123 ", и больше не будут терпеть неудачу, как в PHP 5.0.x. Однако для повышения безопасности кода и проверки ввода функции PHP теперь будет выдавать ошибки уровня E_NOTICE, когда такие строки передаются как целые числа.


Изменения класса и объекта

  • instanceof, is_a(), is_subclass_of() и catch

  • Абстрактные закрытые методы

  • Модификаторы доступа в интерфейсах

  • Изменения в правилах наследования

  • Константы класса

instanceof, is_a(), is_subclass_of() и catch

В PHP 5.0 is_a() была объявлена устаревшей и заменена оператором instanceof. Были некоторые проблемы с первоначальной реализацией instanceof, которая полагалась на __autoload() для поиска отсутствующих классов. Если класс отсутствует, instanceof будет вызывать фатальную ошибку уровня E_ERROR из-за неудачного выполнения __autoload() для поиска класса. Такое же поведение было в операторе catch и в функции is_subclass_of() по этой же причине.

Ни одна из этих функций или операторов не вызывает __autoload() в PHP 5.1.x, а временное решение с помощью class_exists() в коде, написанном для PHP 5.0.x, хотя никоим образом не вызывает проблем, но теперь больше не нужно.

Абстрактные закрытые методы

Абстрактные закрытые методы поддерживались между PHP 5.0.0 и PHP 5.0.4, но затем были запрещены на том основании, что поведение закрытых и абстрактных методов являются взаимоисключающими.

Модификаторы доступа в интерфейсах

В PHP 5.0 объявления функций в интерфейсах обрабатывались точно так же, как объявления функций в классах. Это уже не так с октября 2004 года, когда модификатор доступа public был разрешен в объявлениях функций интерфейса. Начиная с апреля 2005 года, предшествующему выпуску PHP 5.0b1, также разрешен модификатор static. Однако модификаторы protected и private теперь генерируют ошибку уровня E_ERROR, также как abstract. Обратите внимание, что данное изменение не должно повлиять на существующий код, так как ни один из модификаторов не имеет смысла в контексте интерфейсов.

Изменения в правилах наследования

В PHP 5.0 было возможно объвить функцию в производном классе, которая не соответствовала объявлению этой же функции в базовом классе, например.

Этот код выдаст ошибку уровня E_STRICT с PHP 5.1.x.

<?php
class Base {
    function &return_by_ref() {
        $r = 1;
        return $r;
    }
}

class Derived extends Base {
    function return_by_ref() {
        return 1;
    }
}
?>

Константы классов

В PHP 5.0.x следующий код корректный:

С PHP 5.1.x повторное определение константы класса выдаст ошибку уровня E_ERROR.

<?php
class test {
    const foobar = 'foo';
    const foobar = 'bar';
}

?>


Модули

  • Модули, удаленные из ядра PHP

  • Константы класса в новых модулях PHP 5.1.x

Модули, удаленные из ядра PHP

Одна из первых вещей, которую вы, скорее всего, заметите при загрузке PHP 5.1.x, состоит в том, что некоторых из старых модулей больше нет. Те модули, которые все еще активно поддерживаются, доступны в библиотеке модулей сообщества PHP (PHP Extension Community Library, PECL) по адресу » https://pecl.php.net/.

Удаленные модули
Модуль | Альтернатива/Статус
ext/cpdf | pecl/pdflib
ext/dbx | pecl/dbx
ext/dio | pecl/dio
ext/fam | Активно не поддерживается
ext/ingres_ii | pecl/ingres
ext/ircg | Активно не поддерживается
ext/mcve | pecl/mcve
ext/mnogosearch | Активно не поддерживается
ext/oracle | ext/oci8 или ext/pdo_oci
ext/ovrimos | Активно не поддерживается
ext/pfpro | Активно не поддерживается
ext/w32api | » pecl/ffi
ext/yp | Активно не поддерживается
ext/activescript | » pecl/activescript

Модули в PECL, которые активно не поддерживаются (то есть не поддерживаются в течение некоторого времени, над ними никто не работает в данный момент, и у них нет релизов пакетов PECL), по-прежнему доступны в SVN по адресу » https://svn.php.net/viewvc/pecl. Однако новые версии модулей PHP, которые больше не выпускаются, по своей природе не поддерживаются, и их установка производиться на свой страх и риск.

Константы класса в новых модулях PHP 5.1.x

API движка Zend 2.1 позволяет разработчикам модулей объявлять константы класса в объектно-ориентированных модулях. Новые модули, написанные для PHP 5.1.x, включая SPL, PDO, XMLReader и date, имеют свои константы в формате PDO::CLASS_CONSTANT, а не в формате в стиле языка C - PDO_CLASS_CONSTANT для минимизации загрязнения глобального пространства PHP.


Поддержка даты и времени

Поддержка даты и времени была полностью переписана в PHP 5.1.x и больше не использует системные настройки, чтобы 'знать' часовой пояс. Вместо этого для получения часового пояса будут выполняться следущие действия в таком порядке:

  • Часовой пояс, заданный с помощью date_default_timezone_set() function (если есть)

  • Переменная окружения TZ (если не пустая)

  • "магическое" предположение (если операционная система поддерживает это)

  • В случае если ни один из вариантов не прошел - используется UTC

Для обеспечения точности (и избежать предупреждения E_STRICT), вам необходимо определить свой часовой пояс в php.ini, используя следующий формат:

date.timezone = Europe/London

Поддерживаемые часовые пояса в таком формате перечислены в приложении часовых поясов.

Также обратите внимание, что strtotime() теперь возвращает FALSE при ошибке, а не -1.


Изменения в поддержке базы данных

  • Обзор PDO

  • Изменения в поддержке MySQL

  • Изменения в поддержке SQLite

Обзор PDO

Объекты данных (PHP Data Objects, PDO) были представлены в виде PECL-модуля в PHP 5.0 и стали основной частью PHP в PHP 5.1.x. Модуль PDO предоставляет согласованный интерфейс для доступа к базе данных и используется вместе с драйверами PDO, специфичными для базы данных. Каждый драйвер может также иметь собственные функции, но основная функциональность для доступа к данным, например, выполнение запросов и получение результатов, охватываются функциями PDO, используя драйвер при создании через PDO::__construct().

Обратите внимание, что модуль PDO и его драйверы предназначены для создания общих модулей. Это позволит легко обновлять драйверы из PECL, не заставляя вас пересобирать весь PHP.

В момент выпуска PHP 5.1.x PDO готов к широкому тестированию и может быть использован в большинстве ситуаций. Однако, важно понимать, что PDO и его драйверы относительно новые и поэтому в них могут отсутствовать специфичные для базы данных возможности; тщательно проверяйте PDO, прежде чем использовать его в новых проектах.

Устаревший код обычно полагается на ранее существовавшие расширения баз данных, которые все еще поддерживаются.

Изменения в поддержке MySQL

В PHP 4 была встроена поддержка MySQL 3. С выпуском PHP 5.0 появились два модуля MySQL под названием 'mysql' и 'mysqli', которые были разработаны для поддержки MySQL < 4.1 и MySQL 4.1 и выше, соответственно. С появлением PDO, обеспечивающий очень быстрый интерфейс для всех баз данных, драйвер PDO_MYSQL может поддерживать любую из существующих версий (MySQL 3, 4 or 5) в коде PHP, написанном для PDO, в зависимости от библиотеки MySQL, используемой при компиляции. Устаревшие модули MySQL все еще остаются по причине обратной совместимости, но по умолчанию отключены.

Изменения в поддержке SQLite

В PHP 5.0.x поддержка SQLite 2 обеспечивалась встроенным модулем sqlite, который также был доступен как модуль PECL в PHP 4.3 и PHP 4.4. С появлением PDO модуль sqlite удваивается для поддержки в качестве PDO-драйвера sqlite2; это связано с тем, что модуль sqlite в PHP 5.1.x зависит от модуля PDO.

PHP 5.1.x поставляется с несколькими альтернативными интерфейсами для sqlite:

Модуль sqlite предоставляет "классический" процедурный и объектно-ориентированный API sqlite, который вы, возможно, использовали в предыдущих версиях PHP. Он также предоставляет драйвер PDO "sqlite2", который позволяет вам получить доступ к устаревшим базам данных SQLite 2 с использованием API PDO.

PDO_SQLITE предоставляет драйвер "sqlite" версии 3. SQLite 3 значительно превосходит SQLite версии 2, но форматы файлов двух версий несовместимы.

Если ваш проект, использующий SQLite, уже написан и работает с более ранними версиями PHP, то вы можете продолжать использовать ext/sqlite без проблем, но вам нужно будет явно включить PDO и sqlite. Новые проекты должны использовать PDO и драйвер sqlite (с версией 3), поскольку он быстрее SQLite 2, в нем улучшена блокировка при конкурентном доступе и поддерживается как подготовленные запросы, так и столбцы с бинарными данными.

Вы должны включить PDO для использования модуля SQLite. Если вы хотите собрать модуль PDO в качестве общего модуля, модуль SQLite также должен быть создан соответствующим образом. То же самое относится к любому модулю, предоставляющему драйвер PDO.


Проверка на E_STRICT

Если вы хотите проверить только один скрипт на ошибки уровня E_STRICT, воспользуйтесь командной строкой:

php -d error_reporting=4095 -l script_to_check.php

Для более крупных проектов скрипт оболочки выполнит аналогичную задачу:

#!/bin/sh

directory=$1

shift

# Проверяемые модули
extensions="php inc"

check_file ()
{
  echo -ne "Выполнение проверки синтасиса для $1 ..."

  # Опции:
  ERRORS=`/www/php/bin/php -d display_errors=1 -d html_errors=0 -d error_prepend_string=" " -d error_append_string=" " -d error_reporting=4095 -l $1 | grep -v "Синтаксические ошибки не обнаружены"`

  if test -z "$ERRORS"; then
    echo -ne "Ошибок нет."
  else
    echo -e "Найдены ошибки!\n$ERRORS"
  fi

  echo
}

# цикл по оставшимся флагам файла
for FILE in "$@" ; do
  for ext in $extensions; do
     if echo $FILE | grep "\.$ext$" > /dev/null; then
       if test -f $FILE; then
         check_file "$FILE"
       fi
     fi
  done
done


Миграция с PHP 4 на PHP 5.0.x

Содержание

  • Что изменилось в PHP 5.0.x
  • Изменения, повлекшие за собой обратную несовместимость
  • CLI и CGI
  • Перенос конфигурационных файлов
  • Новые функции
  • Новые директивы
  • Базы данных
  • Новая объектная модель
  • Сообщения об ошибках

Смотрите также руководство по миграции для версий PHP 5.1.x, 5.2.x, 5.3.x, 5.4.x, 5.5.x и 5.6.x.


Что изменилось в PHP 5.0.x

PHP 5 и интегрированный Zend Engine 2 привнесли очень многое в плане производительности и возможностей PHP, но также было приложено максимум усилий для того, чтобы сохранить совместимость с максимальным объемом существующего кода. Поэтому миграция вашего кода с PHP 4 на 5 должна быть крайне проста. Большинство существующего кода на PHP 4 должно запускаться без всяких проблем, но о некоторых различиях все равно необходимо знать, а также не забудьте протестировать ваш код перед сменой версии в production-средах.


Изменения, повлекшие за собой обратную несовместимость

Несмотря на то, что большинство кода на 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/1.1. Пожалуйста, обратитесь к » ошибке #23610 для получения дальнейший информации, а также посмотрите описание $_SERVER['PATH_TRANSLATED'] в данном руководстве. Это изменение также имеет место в PHP версий >= 4.3.2.
  • Константа T_ML_COMMENT больше не объявляется расширением Tokenizer. Если директива error_reporting установлена в E_ALL, PHP сгенерирует предупреждение. Несмотря на то, что 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 файл включается только один раз.
  • Передача массива в функцию по значению больше не сбрасывает внутренний указатель массива, используемый для доступа к его элементам в данной функции. Иными словами, в PHP 4 при передаче массива в функцию его внутренний указатель сбрасывался внутри функции, тогда как в PHP 5 при передаче массива в функцию данный указатель останется в том же положении, в котором он был до передачи массива в функцию.

Пример #1 strrpos() и strripos() теперь используют в качестве искомого параметра (needle) всю строку

<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)

var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>

Пример #2 Объект без свойств больше не считается "пустым"

<?php
class test { }
$t = new test();

var_dump(empty($t)); // echo bool(false)

if ($t) {
    // Будет выполнено
}
?>

Пример #3 В некоторых случаях классы должны быть объявлены перед использованием

<?php

//работает без ошибок:
$a = new a();
class a {
}

//вызывает ошибку:
$a = new b();

interface c{
}
class b implements c {
}

?>


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 минимальны. Пример ниже показывает изменения, которые вам требуется произвести:

Пример #1 Изменения конфигурационных файлах 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 вам нужно произвести изменения наподобие следующих:

Пример #2 Изменения в конфигурационных файлах Apache при переходе на PHP 5, CGI-режим

# замените эту строку:
Action application/x-httpd-php "/php/php.exe"

# на эту:
Action application/x-httpd-php "/php/php-cgi.exe"

При использовании других веб-серверов вам необходимо изменить имена файлов CGI- или ISAPI-модулей.


Новые функции

В PHP 5 появилось некоторое количество новых функций. Вот их список:

Массивы:

  • array_combine() - Создает массив, используя один массив для ключей, а другой - для их значений
  • array_diff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индексов, производимой заданной пользователем callback-функцией
  • array_udiff() - Вычисляет расхождение массивов, используя callback-функцию для сравнения данных
  • array_udiff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индексов. Данные сравниваются с использованием callback-функции
  • array_udiff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индексов. Как данные, так и индексы сравниваются при помощи callback-функции
  • array_walk_recursive() - Применяет пользовательскую функцию рекурсивно к каждому элементу массива
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов. Данные сравниваются с использованием callback-функции
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов. Как данные, так и индексы сравниваются при помощи callback-функции
  • array_uintersect() - Вычисляет пересечение массивов. Данные сравниваются с использованием callback-функции

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() - Регистрирует callback-функцию, которая вызывается при публикации события
  • 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
  • stream_socket_get_name() - Получает имена локальных или удаленных сокетов
  • stream_socket_recvfrom() - Получает данные от сокета, вне зависимости от того, произведено соединение или нет
  • stream_socket_sendto() - Посылает сообщение сокету, вне зависимости от того, произведено соединение или нет
  • stream_socket_server() - Создает доменный сокет Internet или Unix на стороне сервера

Связанные с датой и временем:

  • idate() - Форматирует локальное время/дату в виде целого числа
  • date_sunset() - Время захода солнца для данного дня и месторасположения
  • date_sunrise() - Время восхода солнца для данного дня и месторасположения
  • time_nanosleep() - Задержка на заданное число секунд и наносекунд

Строки:

  • str_split() - Преобразует строку в массив
  • strpbrk() - Ищет любой набор символов в строке
  • substr_compare() - Бинарно-безопасное опционально регистрозависимое сравнение двух строк, начиная со смещения и до определенной длины символов

Другие:

  • 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-кодирования его значения
  • scandir() - Выводит список файлов и директорий по указанному пути
  • 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 по причинам, связанным с лицензией и поддержкой. Поддержка MySQL не прекращается, просто теперь она по умолчанию не включена. Эта означает, что строка --with-mysql больше не включена по умолчанию в configure и вы должны задавать ее самостоятельно. Для пользователей Windows необходимо отредактировать php.ini и раскомментировать строку с подключением php_mysql.dll. Эта библиотека включена в установочный пакет под Windows.

Также присутствует новый модуль MySQLi (Improved MySQL), предназначенный для работы с MySQL 4.1 и выше.

Начиная с PHP 5, модуль SQLite встроен в PHP. SQLite - это встраиваемая СУБД SQL, а не клиентская библиотека для соединения с сервером баз данных (такая как MySQL или PostgreSQL). Библиотека SQLite читает и записывает напрямую в файлы базы данных на диске.


Новая объектная модель

В PHP 5 появилась новая объектная модель. Работа с объектами в PHP была полностью переписана, позволяя достигнуть лучшей производительности и предоставляя новые возможности. В предыдущих версиях PHP работа с объектами производилась аналогично примитивным типам (к примеру, integer и string). Недостатком этого метода являлось то, что семантически весь объект копировался при присвоении переменной или передачи её в качестве параметра функции. При новом подходе на объекты ссылаются по дескриптору, а не по значению (дескриптор можно представить себе как идентификатор объекта).

Многие PHP-программисты даже не в курсе хитростей механизма копирования в старой объектной модели, что означает, что большинство из PHP-приложений будут работать либо вовсе без всяких изменений, либо с совсем небольшими изменениями.

Новая объектная модель задокументирована в справочнике по языку.

В PHP 5 функция, имеющая такое же имя как и класс, будет вызываться в качестве конструктора, только если она определена в этом же классе. В PHP 4 она также вызывалась при определении в родительском классе.

Обратите внимание также на директиву zend.ze1_compatibility_mode для совместимости с PHP 4.


Сообщения об ошибках

Начиная с PHP 5 был объявлен новый уровень ошибок - E_STRICT со значением 2048. Он позволяет PHP давать советы по способности взаимодействия и будущей совместимости вашего кода, а также отслеживает случаи использования устаревшего кода.

Замечание: E_ALL не включает E_STRICT, так что по умолчанию этот уровень ошибок выключен. Для просмотра этих сообщений вы должны специально включить E_STRICT в используемом вами уровне сообщений об ошибках.

Подробнее смотрите в главе Предопределенные константы.


  • « Сообщения об ошибках
  • Об отладке в PHP »
  • PHP Manual
  • Appendices
  • Отладка в PHP

Отладка в PHP

Содержание

  • Об отладке в PHP


Об отладке в PHP

Вместе с PHP 5.6 поставляется интерактивный отладчик phpdbg. В версиях до 5.6 нет встроенных средств отладки, однако вы можете использовать внешние отладчики. » Zend IDE имеет встроенный отладчик, а также есть несколько бесплатных модулей отладки, такие как DBG, находящееся по адресу » http://www.php-debugger.com/dbg/, » Advanced PHP Debugger (APD) или » Xdebug.


  • « Об отладке в PHP
  • Список основных опций конфигурации »
  • PHP Manual
  • Appendices
  • Опции конфигурации

Опции конфигурации

Содержание

  • Список основных опций конфигурации


Список основных опций конфигурации

Ниже приведён частичный список опций конфигурации, используемых скриптами configure при компиляции в Unix-подобных окружениях. Большинство опций конфигурации приведено в соответствующих местах на страницах с описанием расширений, а не здесь. Чтобы получить полный актуальный список опций конфигурации, запустите ./configure --help в каталоге исходного кода PHP после запуска команды autoconf (см. также раздел установки PHP). Вам также может быть интересно почитать документацию команды » GNU configure для получения информации о дополнительных опциях команды configure, таких, как --prefix=PREFIX.

Замечание:

Эти настройки используются только во время компиляции. Если вы хотите изменить конфигурацию PHP во время выполнения, пожалуйста смотрите главу Конфигурация во время выполнения.

  • Разное
  • Поведение PHP
  • Сервер

Опции конфигурации в PHP

Различные опции

--enable-debug

Компилировать с информацией об отладке.

--with-layout=TYPE

Устанавливает, каким образом установленные файлы будут расположены. TYPE принимает значения PHP (по умолчанию) или GNU.

--with-pear=DIR

Установить PEAR в директорию DIR (по умолчанию PREFIX/lib/php).

--without-pear

Не устанавливать PEAR.

--enable-sigchild

Включить собственный дескриптор SIGCHLD для PHP.

--disable-rpath

Не передавать дополнительные пути для поиска библиотек времени исполнения.

--enable-libgcc

Явно использовать libgcc.

--enable-php-streams

Включить экспериментальный функционал потоков PHP. Используйте только в случае, если вы тестируете код!

--with-zlib-dir[=DIR]

Определить местонахождение библиотеки zlib.

--with-tsrm-pthreads

Использовать потоки (threads) POSIX (по умолчанию).

--enable-shared[=PKGS]

Собирать общие библиотеки [по умолчанию=yes].

--enable-static[=PKGS]

Собирать статические библиотеки [по умолчанию=yes].

--enable-fast-install[=PKGS]

Оптимизировать для быстрой установки [по умолчанию=yes].

--with-gnu-ld

Предполагать, что компилятор С использует линкер GNU ld [по умолчанию=no].

--disable-libtool-lock

Избегать блокирования (может испортить параллельные сборки).

--with-pic

Пытаться использовать только PIC/не PIC объекты [по умолчанию=use both (использовать оба)]

--enable-memory-limit

Компилировать с поддержкой ограничения памяти. (не доступно с PHP 5.2.1, так как всегда включено)

--disable-url-fopen-wrapper

Отключить обертку fopen с поддержкой URL, которая позволяет получать доступ к файлам через HTTP или FTP. (не доступно с 5.2.5)

--enable-versioning

Экспортировать только необходимую информацию для отладки. См. INSTALL для дополнительной информации.

Опции PHP

--enable-maintainer-mode

Включает правила сборки и зависимости make, неиспользуемые (а иногда запутывающие) в обычном установщике.

--with-config-file-path=PATH

Устанавливает путь для поиска php.ini, значение по умолчанию PREFIX/lib.

--enable-safe-mode

Включает безопасный режим по умолчанию.

Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

--with-exec-dir[=DIR]

Разрешает запуск исполняемых файлов только из директории DIR в безопасном режиме, по умолчанию /usr/local/php/bin.

Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

--enable-magic-quotes

Включает автоматическое экранирование специальных символов по умолчанию.

Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

--disable-short-tags

Запрещает использование краткой формы записи начального тега <? по умолчанию.

--enable-zend-multibyte

Включает поддержку многобайтового кода в синтаксическом и лексическом анализаторе языка при запуске. Когда PHP скомпилирован с этой опцией, становится активной также директива encoding в конструкции declare.

Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

--with-libdir

Определяет каталог библиотек для сборки PHP в Unix-системах. Для 64-битных систем опция требует особого аргумента --with-libdir=lib64 для директории lib64.

Опции SAPI

Следующий список включает доступные опции SAPI (Server Application Programming Interface) для PHP.

--with-aolserver=DIR

Определяет путь к установленному AOLserver.

--with-apxs[=FILE]

Собирает динамический модуль для Apache. FILE - это опциональный путь к инструменту "Apache apxs", который используется для apxs по умолчанию. Убедитесь в том, что вы указали версию apxs, которая действительно установлена в вашей системе, а не ту, которая находится в исходниках Apache.

--with-apache[=DIR]

Собирает статичный модуль для Apache. DIR - это верхний уровень директории сборки Apache, по умолчанию /usr/local/apache.

--with-mod_charset

Включает таблицы перекодировки для модуля mod_charset (для русской версии Apache).

--with-apxs2[=FILE]

Собирает динамический модуль для Apache 2.0. FILE - это опциональный путь к инструменту "Apache apxs", который используется для apxs по умолчанию.

--with-caudium=DIR

Собирает PHP как Pike-модуль для использования с Caudium. DIR - это путь к папке сервера Caudium, по умолчанию значение установлено в /usr/local/caudium/server.

--disable-cli

Отключает сборку CLI-версии PHP (опция также вызывает --without-pear). Больше информации можно получить в разделе Использование PHP в командной строке.

--enable-phpdbg

Включает поддержку модуля SAPI для интерактивного дебаггера phpdbg в PHP 5.6.x и выше.

--enable-embed[=TYPE]

Включает сборку встроенной библиотеки SAPI. TYPE может принимать значение shared или static, по умолчанию установлено shared.

--with-isapi=DIR

Сборка PHP как модуля ISAPI для использования в Zeus.

--with-nsapi=DIR

Указывает путь к установленному Netscape/iPlanet/SunONE веб-серверу.

--with-phttpd=DIR

Пока нет информации.

--with-pi3web=DIR

Сборка PHP как модуля для использования в Pi3Web.

--with-roxen=DIR

Сборка PHP как Pike-модуля. DIR - это базовая директория Roxen, обычно /usr/local/roxen/server.

--enable-roxen-zts

Сборка модуля Roxen, используя Zend Thread Safety.

--with-servlet[=DIR]

Включает поддержку сервлетов. DIR - это базовая директория установки JSDK. SAPI требует java-расширения, может быть собрана как доступная для dl.

--with-thttpd=SRCDIR

Сборка PHP как thttpd-модуля.

--with-tux=MODULEDIR

Сборка PHP как TUX-модуля (только для Linux).

--with-webjames=SRCDIR

Сборка PHP как WebJames-модуля (только для RISC OS)

--disable-cgi

Отключает сборку CGI-версии PHP.

В PHP 5.3.0 этот аргумент включает FastCGI, который предварительно должен быть включен аргументом --enable-fastcgi.

--enable-force-cgi-redirect

Включает проверку безопасности для внутрисерверных переходов. Вам следует использовать её, если вы запускаете CGI-версию с Apache.

В PHP 5.3.0 эта опция включена по умолчанию и больше не нуждается в установке. Для её отключения необходимо установить ini-директиве cgi.force_redirect значение 0.

--enable-discard-path

Если эта опция включена, PHP CGI может быть безопасно размещен вне веб-дерева, и у пользователей не будет возможности обойти проверку .htaccess.

В PHP 5.3.0 этот аргумент отключен по умолчанию и больше недоступен. Для его включения необходимо установить ini-директиве cgi.discard_path значение 1.

--enable-fastcgi

Если эта опция включена, то CGI-модуль будет собран с поддержкой FastCGI.

В PHP 5.3.0 этот параметр больше не доступен. Используйте вместо него --enable-cgi.

--disable-path-info-check

Если опция указана, то пути, подобные /info.php/test?a=b будут вызывать ошибки в работе. Для более детальной информации см. » руководство Apache.

Начиная с PHP 5.3.0 этот аргумент не включен по умолчанию и больше не существует. Чтобы отключить эту возможность, ini-директива cgi.fix_pathinfo должна установлена в 0.


Директивы php.ini

Содержание

  • Список директив php.ini
  • Список разделов php.ini
  • Описание встроенных директив php.ini


Список директив php.ini

Этот список включает директивы php.ini, которые вы можете использовать для настройки PHP.

Столбец "Место изменения" показывает когда и где может быть установлена директива. Для получения информации о значениях этих директив смотрите раздел "Где может быть установлена директива?".

Параметры конфигурации
Имя | По умолчанию | Место изменения | Список изменений
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | Удалено в PHP 5.4.0.
allow_url_fopen | "1" | PHP_INI_SYSTEM |
allow_url_include | "0" | PHP_INI_SYSTEM | Доступно с PHP 5.2.0. Объявлено устаревшим с PHP 7.4.0.
always_populate_raw_post_data | "0" | PHP_INI_PERDIR |
apc.cache_by_default | "1" | PHP_INI_ALL | PHP_INI_SYSTEM в APC <= 3.0.12. Доступно с APC 3.0.0.
apc.enabled | "1" | PHP_INI_SYSTEM | PHP_INI_SYSTEM в APC 2. PHP_INI_ALL в APC <= 3.0.12.
apc.enable_cli | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.7.
apc.file_update_protection | "2" | PHP_INI_SYSTEM | Доступно с APC 3.0.6.
apc.filters | NULL | PHP_INI_SYSTEM |
apc.gc_ttl | "3600" | PHP_INI_SYSTEM |
apc.include_once_override | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.12.
apc.localcache | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.14.
apc.localcache.size | "512" | PHP_INI_SYSTEM | Доступно с APC 3.0.14.
apc.max_file_size | "1M" | PHP_INI_SYSTEM | Доступно с APC 3.0.7.
apc.mmap_file_mask | NULL | PHP_INI_SYSTEM |
apc.num_files_hint | "1000" | PHP_INI_SYSTEM |
apc.optimization | "0" | PHP_INI_ALL | PHP_INI_SYSTEM в APC 2. Удалено в APC 3.0.13.
apc.report_autofilter | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.11.
apc.rfc1867 | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.13.
apc.rfc1867_freq | "0" | PHP_INI_SYSTEM |
apc.rfc1867_name | "APC_UPLOAD_PROGRESS" | PHP_INI_SYSTEM |
apc.rfc1867_prefix | "upload_" | 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 3.0.0.
apc.stat | "1" | PHP_INI_SYSTEM | Доступно с APC 3.0.10.
apc.stat_ctime | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.13.
apc.ttl | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.0.
apc.user_entries_hint | "4096" | PHP_INI_SYSTEM | Доступно с APC 3.0.0.
apc.user_ttl | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.0.
apc.write_lock | "1" | PHP_INI_SYSTEM | Доступно с APC 3.0.11.
apd.bitmask | "0" | PHP_INI_ALL | Удалено в apd 0.9.
apd.dumpdir | NULL | PHP_INI_ALL |
apd.statement_tracing | "0" | PHP_INI_ALL | Доступно с apd 0.9.
arg_separator.input | "&" | PHP_INI_PERDIR |
arg_separator.output | "&" | PHP_INI_ALL |
asp_tags | "0" | PHP_INI_PERDIR | Удалено в PHP 7.0.0.
assert.active | "1" | PHP_INI_ALL |
assert.bail | "0" | PHP_INI_ALL |
assert.callback | NULL | PHP_INI_ALL |
assert.exception | "0" | PHP_INI_ALL | Доступно с PHP 7.0.0.
assert.quiet_eval | "0" | PHP_INI_ALL |
assert.warning | "1" | PHP_INI_ALL |
auto_append_file | NULL | PHP_INI_PERDIR |
auto_detect_line_endings | "0" | PHP_INI_ALL |
auto_globals_jit | "1" | PHP_INI_PERDIR |
auto_prepend_file | NULL | PHP_INI_PERDIR |
axis2.client_home | "~/work/axisc/c/deply" | PHP_INI_ALL |
axis2.enable_exception | "1" | PHP_INI_ALL |
axis2.enable_trace | "1" | PHP_INI_ALL |
axis2.log_path | "/tmp" | PHP_INI_ALL |
bcmath.scale | "0" | PHP_INI_ALL |
bcompiler.enabled | "1" | PHP_INI_ALL | Доступно с bcompiler 0.8.
blenc.key_file | "/usr/local/etc/blenckeys" | PHP_INI_ALL |
browscap | NULL | PHP_INI_SYSTEM |
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM | Доступно с PHP 5.2.1.
cgi.discard_path | "0" | PHP_INI_SYSTEM | Доступно с PHP 5.3.0.
cgi.fix_pathinfo | "1" | PHP_INI_SYSTEM |
cgi.force_redirect | "1" | PHP_INI_SYSTEM |
cgi.nph | "0" | PHP_INI_ALL |
cgi.redirect_status_env | NULL | PHP_INI_SYSTEM |
cgi.rfc2616_headers | "0" | PHP_INI_ALL |
child_terminate | "0" | PHP_INI_ALL |
cli.pager | "" | PHP_INI_ALL | Доступно с PHP 5.4.0.
cli.prompt | "\\b \\> " | PHP_INI_ALL | Доступно с PHP 5.4.0.
cli_server.color | "0" | PHP_INI_ALL | Доступно с PHP 5.4.0.
coin_acceptor.autoreset | "On" | PHP_INI_ALL | Удалено в coin_acceptor 0.2.
coin_acceptor.auto_initialize | "Off" | PHP_INI_ALL | Доступно с coin_acceptor 0.2.
coin_acceptor.auto_reset | "On" | PHP_INI_ALL | Доступно с coin_acceptor 0.2.
coin_acceptor.command_function | "Off" | PHP_INI_ALL | Доступно с coin_acceptor 0.3.
coin_acceptor.delay | "53132" | PHP_INI_ALL | Удалено в coin_acceptor 0.2.
coin_acceptor.delay_coins | "53132" | PHP_INI_ALL | Доступно с coin_acceptor 0.2.
coin_acceptor.delay_prom | "55748" | PHP_INI_ALL | Доступно с coin_acceptor 0.2.
coin_acceptor.device | "/dev/ttyS1" | PHP_INI_ALL | Удалено в coin_acceptor 0.2.
coin_acceptor.lock_on_close | "Off" | PHP_INI_ALL | Доступно с coin_acceptor 0.2.
coin_acceptor.start_unlocked | "On" | PHP_INI_ALL | Доступно с coin_acceptor 0.2.
com.allow_dcom | "0" | PHP_INI_SYSTEM |
com.autoregister_casesensitive | "1" | PHP_INI_ALL | PHP_INI_SYSTEM в PHP 4. Доступно с PHP 4.1.0.
com.autoregister_typelib | "0" | PHP_INI_ALL |
com.autoregister_verbose | "0" | PHP_INI_ALL |
com.code_page | "" | PHP_INI_ALL |
com.typelib_file | "" | PHP_INI_SYSTEM |
curl.cainfo | NULL | PHP_INI_SYSTEM | Доступно с PHP 5.3.7.
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 |
date.default_longitude | "35.2333" | PHP_INI_ALL |
date.sunrise_zenith | "90.583333" | PHP_INI_ALL |
date.sunset_zenith | "90.583333" | PHP_INI_ALL |
date.timezone | "" | PHP_INI_ALL | Доступно с PHP 5.1.0.
dba.default_handler | "" | PHP_INI_ALL |
dbx.colnames_case | "unchanged" | PHP_INI_SYSTEM |
default_charset | "UTF-8" | PHP_INI_ALL | По умолчанию "UTF-8" в PHP >= 5.6.0, пустая строка в PHP < 5.6.0.
default_mimetype | "text/html" | PHP_INI_ALL |
default_socket_timeout | "60" | PHP_INI_ALL |
define_syslog_variables | "0" | PHP_INI_ALL | Удалено в PHP 5.4.0.
detect_unicode | "1" | PHP_INI_ALL | Доступно с PHP 5.1.0. Переименовано в zend.detect_unicode в PHP 5.4.0.
disable_classes | "" | Только php.ini |
disable_functions | "" | Только php.ini |
display_errors | "1" | PHP_INI_ALL |
display_startup_errors | "0" | PHP_INI_ALL |
docref_ext | "" | PHP_INI_ALL |
docref_root | "" | PHP_INI_ALL |
doc_root | NULL | PHP_INI_SYSTEM |
enable_dl | "1" | PHP_INI_SYSTEM | Эта возможность устарела и будет обязательно удалена в будущем.
enable_post_data_reading | On | PHP_INI_PERDIR | Доступно с PHP 5.4.0.
engine | "1" | PHP_INI_ALL |
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 |
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL |
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL |
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL |
exif.encode_jis | "" | PHP_INI_ALL |
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL |
exit_on_timeout | "" | PHP_INI_ALL | Доступно с PHP 5.3.0
expect.logfile | "" | PHP_INI_ALL |
expect.loguser | "1" | PHP_INI_ALL |
expect.timeout | "10" | PHP_INI_ALL |
expose_php | "1" | Только php.ini |
extension | NULL | Только php.ini |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM | PHP_INI_ALL в PHP <= 5.2.0.
fastcgi.logging | "1" | PHP_INI_SYSTEM | PHP_INI_ALL в PHP <= 5.2.0.
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM |
fbsql.autocommit | "1" | PHP_INI_SYSTEM |
fbsql.batchSize | "1000" | PHP_INI_SYSTEM | Доступно с PHP 4.2.0. Удалено в PHP 5.1.0.
fbsql.batchsize | "1000" | PHP_INI_ALL | Удалено в PHP 5.1.0.
fbsql.default_database | "" | PHP_INI_SYSTEM |
fbsql.default_database_password | "" | PHP_INI_SYSTEM |
fbsql.default_host | NULL | PHP_INI_SYSTEM |
fbsql.default_password | "" | PHP_INI_SYSTEM |
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM |
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM |
fbsql.max_connections | "128" | PHP_INI_SYSTEM |
fbsql.max_links | "128" | PHP_INI_SYSTEM |
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM |
fbsql.max_results | "128" | PHP_INI_SYSTEM |
fbsql.show_timestamp_decimals | "0" | PHP_INI_SYSTEM | Доступно с PHP 5.1.5.
file_uploads | "1" | PHP_INI_SYSTEM |
filter.default | "unsafe_raw" | PHP_INI_PERDIR | PHP_INI_ALL в filter <= 0.9.4. Доступно с PHP 5.2.0.
filter.default_flags | NULL | PHP_INI_PERDIR | PHP_INI_ALL в filter <= 0.9.4. Доступно с PHP 5.2.0.
from | "" | PHP_INI_ALL |
gd.jpeg_ignore_warning | "1" | PHP_INI_ALL | Доступно с PHP 5.1.3.
geoip.custom_directory | NULL | PHP_INI_ALL | Доступно с geoip 1.0.1.
geoip.database_standard | "GeoIP.dat" | PHP_INI_ALL | Удалено в geoip 1.0.1.
hard_timeout | "2" | PHP_INI_SYSTEM | Доступно с PHP 7.1.0.
hidef.ini_path | (char*)default_ini_path | PHP_INI_SYSTEM |
highlight.bg | "#FFFFFF" | PHP_INI_ALL | Удалено в PHP 5.4.0.
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 |
htscanner.config_file | ".htaccess" | PHP_INI_SYSTEM |
htscanner.default_docroot | "/" | PHP_INI_SYSTEM |
htscanner.default_ttl | "300" | PHP_INI_SYSTEM | Доступно с htscanner 0.6.0.
htscanner.stop_on_error | "0" | PHP_INI_SYSTEM | Доступно с htscanner 0.7.0.
http.allowed_methods | "" | PHP_INI_ALL | Доступно с pecl_http 0.4.0. Удалено в pecl_http 1.0.0.
http.allowed_methods_log | "" | PHP_INI_ALL | Доступно с pecl_http 0.12.0. Удалено в pecl_http 1.0.0.
http.cache_log | "" | PHP_INI_ALL | Доступно с pecl_http 0.8.0. Удалено в pecl_http 1.0.0.
http.composite_log | "" | PHP_INI_ALL | Доступно с pecl_http 0.12.0. Удалено в pecl_http 1.0.0.
http.etag.mode | "MD5" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.etag_mode | "MD5" | PHP_INI_ALL | Доступно с pecl_http 0.12.0. Удалено в pecl_http 1.0.0.
http.force_exit | "1" | PHP_INI_ALL | Доступно с pecl_http 0.18.0.
http.log.allowed_methods | "" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.log.cache | "" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.log.composite | "" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.log.not_found | "" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.log.redirect | "" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.ob_deflate_auto | "0" | PHP_INI_PERDIR | Доступно с pecl_http 0.21.0. Удалено в pecl_http 1.0.0.
http.ob_deflate_flags | "0" | PHP_INI_ALL | Доступно с pecl_http 0.21.0. Удалено в pecl_http 1.0.0.
http.ob_inflate_auto | "0" | PHP_INI_PERDIR | Доступно с pecl_http 0.21.0. Удалено в pecl_http 1.0.0.
http.ob_inflate_flags | "0" | PHP_INI_ALL | Доступно с pecl_http 0.21.0. Удалено в pecl_http 1.0.0.
http.only_exceptions | "0" | PHP_INI_ALL | Доступно с pecl_http 0.11.0.
http.persistent.handles.ident | "GLOBAL" | PHP_INI_ALL | Доступно с pecl_http 1.5.0.
http.persistent.handles.limit | "-1" | PHP_INI_SYSTEM | Доступно с pecl_http 1.5.0.
http.redirect_log | "" | PHP_INI_ALL | Доступно с pecl_http 0.12.0. Удалено в pecl_http 1.0.0.
http.request.datashare.connect | "0" | PHP_INI_SYSTEM | Доступно с pecl_http 1.3.0.
http.request.datashare.cookie | "0" | PHP_INI_SYSTEM | Доступно с pecl_http 1.3.0.
http.request.datashare.dns | "1" | PHP_INI_SYSTEM | Доступно с pecl_http 1.3.0.
http.request.datashare.ssl | "0" | PHP_INI_SYSTEM | Доступно с pecl_http 1.3.0.
http.request.methods.allowed | "" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.request.methods.custom | "" | PHP_INI_PERDIR | Доступно с pecl_http 1.0.0.
http.send.deflate.start_auto | "0" | PHP_INI_PERDIR | Доступно с pecl_http 1.0.0.
http.send.deflate.start_flags | "0" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.send.inflate.start_auto | "0" | PHP_INI_PERDIR | Доступно с pecl_http 1.0.0.
http.send.inflate.start_flags | "0" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.send.not_found_404 | "1" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
ibase.allow_persistent | "1" | PHP_INI_SYSTEM |
ibase.dateformat | "%Y-%m-%d" | PHP_INI_ALL |
ibase.default_charset | NULL | PHP_INI_ALL |
ibase.default_db | NULL | PHP_INI_SYSTEM |
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 |
ibm_db2.binmode | "1" | PHP_INI_ALL |
ibm_db2.i5_all_pconnect | "0" | PHP_INI_SYSTEM | Доступно с ibm_db2 1.6.5.
ibm_db2.i5_allow_commit | "0" | PHP_INI_SYSTEM | Доступно с ibm_db2 1.4.9.
ibm_db2.i5_dbcs_alloc | "0" | PHP_INI_SYSTEM | Доступно с ibm_db2 1.5.0.
ibm_db2.instance_name | NULL | PHP_INI_SYSTEM | Доступно с ibm_db2 1.0.2.
ibm_db2.i5_ignore_userid | "0" | PHP_INI_SYSTEM | Доступно с ibm_db2 1.8.0.
iconv.input_encoding | "ISO-8859-1" | PHP_INI_ALL |
iconv.internal_encoding | "ISO-8859-1" | PHP_INI_ALL |
iconv.output_encoding | "ISO-8859-1" | PHP_INI_ALL |
ifx.allow_persistent | "1" | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.blobinfile | "1" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ifx.byteasvarchar | "0" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ifx.charasvarchar | "0" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ifx.default_host | NULL | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.default_password | NULL | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.default_user | NULL | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.max_links | "-1" | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.max_persistent | "-1" | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.nullformat | "0" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ifx.textasvarchar | "0" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ignore_repeated_errors | "0" | PHP_INI_ALL |
ignore_repeated_source | "0" | PHP_INI_ALL |
ignore_user_abort | "0" | PHP_INI_ALL |
imlib2.font_cache_max_size | "524288" | PHP_INI_ALL |
imlib2.font_path | "/usr/share/php/fonts/" | PHP_INI_ALL |
implicit_flush | "0" | PHP_INI_ALL |
include_path | ".;/path/to/php/pear" | PHP_INI_ALL |
intl.default_locale | "" | PHP_INI_ALL | Доступно с PHP 5.3.0.
intl.error_level | "0" | PHP_INI_ALL | Доступно с PHP 5.3.0.
intl.use_exceptions | "0" | PHP_INI_ALL | Доступно с PHP 5.5.0.
ingres.allow_persistent | "1" | PHP_INI_SYSTEM | Доступно с ingres 1.0.0
ingres.array_index_start | "1" | PHP_INI_ALL | Доступно с ingres 1.4.0.
ingres.auto | "1" | PHP_INI_ALL | Доступно с ingres 2.0.0.
ingres.blob_segment_length | "4096" | PHP_INI_ALL | Доступно с ingres 1.2.0.
ingres.cursor_mode | "0" | PHP_INI_ALL | Доступно с ingres 1.1.0.
ingres.default_database | NULL | PHP_INI_ALL | Доступно с ingres 1.0.0
ingres.default_password | NULL | PHP_INI_ALL | Доступно с ingres 1.0.0
ingres.default_user | NULL | PHP_INI_ALL | Доступно с ingres 1.0.0
ingres.describe | 1 | PHP_INI_ALL | Доступно с ingres 2.1.0
ingres.fetch_buffer_size | 100 | PHP_INI_ALL | Доступно с ingres 2.1.0
ingres.max_links | "-1" | PHP_INI_SYSTEM | Доступно с ingres 1.0.0
ingres.max_persistent | "-1" | PHP_INI_SYSTEM | Доступно с ingres 1.0.0
ingres.reuse_connection | "1" | PHP_INI_ALL | Доступно с ingres 2.0.0
ingres.scrollable | "1" | PHP_INI_ALL | Доступно с ingres 2.0.0.
ingres.trace | "0" | PHP_INI_ALL | Доступно с ingres 2.0.0.
ingres.trace_connect | "0" | PHP_INI_ALL | Доступно с ingres 1.2.1.
ingres.utf8 | "1" | PHP_INI_ALL | Доступно с ingres 2.0.0.
last_modified | "0" | PHP_INI_ALL |
ldap.max_links | "-1" | PHP_INI_SYSTEM |
log_errors | "0" | PHP_INI_ALL |
log_errors_max_len | "1024" | PHP_INI_ALL |
magic_quotes_gpc | "1" | PHP_INI_PERDIR | Объявлено устаревшим в PHP 5.3.0. Удалено в PHP 5.4.0.
magic_quotes_runtime | "0" | PHP_INI_ALL | Удалено в PHP 5.4.0.
magic_quotes_sybase | "0" | PHP_INI_ALL | Удалено в PHP 5.4.0.
mail.add_x_header | "0" | PHP_INI_PERDIR | Доступно с PHP 5.3.0.
mail.force_extra_parameters | NULL | Только php.ini |
mail.log | "" | PHP_INI_PERDIR | Доступно с PHP 5.3.0 (PHP_INI_SYSTEM|PHP_INI_PERDIR)
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_nesting_level | "64" | PHP_INI_PERDIR | Доступно с PHP 5.2.3.
max_input_vars | 1000 | PHP_INI_PERDIR | Доступно с PHP 5.3.9.
max_input_time | "-1" | PHP_INI_PERDIR |
mbstring.detect_order | NULL | PHP_INI_ALL |
mbstring.encoding_translation | "0" | PHP_INI_PERDIR |
mbstring.func_overload | "0" | PHP_INI_SYSTEM | PHP_INI_SYSTEM | PHP_INI_PERDIR с PHP <= 5.2.6
mbstring.http_input | "pass" | PHP_INI_ALL |
mbstring.http_output | "pass" | PHP_INI_ALL |
mbstring.internal_encoding | NULL | PHP_INI_ALL |
mbstring.language | "neutral" | PHP_INI_ALL | PHP_INI_PERDIR в PHP <= 5.2.6
mbstring.script_encoding | NULL | PHP_INI_ALL | Удалено в PHP 5.4.0. Используйте zend.script_encoding.
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | PHP_INI_ALL | Доступно с PHP 5.3.0.
mbstring.strict_detection | "0" | PHP_INI_ALL | Доступно с PHP 5.1.2.
mbstring.substitute_character | NULL | PHP_INI_ALL |
mcrypt.algorithms_dir | NULL | PHP_INI_ALL |
mcrypt.modes_dir | NULL | PHP_INI_ALL |
memcache.allow_failover | "1" | PHP_INI_ALL | Доступно с memcache 2.0.2.
memcache.chunk_size | "8192" | PHP_INI_ALL | Доступно с memcache 2.0.2.
memcache.default_port | "11211" | PHP_INI_ALL | Доступно с memcache 2.0.2.
memcache.hash_function | "crc32" | PHP_INI_ALL | Доступно с memcache 2.2.0.
memcache.hash_strategy | "standard" | PHP_INI_ALL | Доступно с memcache 2.2.0.
memcache.max_failover_attempts | "20" | PHP_INI_ALL | Доступно с memcache 2.1.0.
memory_limit | "128M" | PHP_INI_ALL |
mime_magic.debug | "0" | PHP_INI_SYSTEM |
mime_magic.magicfile | "/path/to/php/magic.mime" | PHP_INI_SYSTEM |
mongo.allow_empty_keys | 0 | PHP_INI_ALL |
mongo.allow_persistent | 1 | PHP_INI_ALL | Удалено в 1.2.0
mongo.chunk_size | 262144 | PHP_INI_ALL |
mongo.cmd | "$" | PHP_INI_ALL |
mongo.default_host | "localhost" | PHP_INI_ALL |
mongo.default_port | 27017 | PHP_INI_ALL |
mongo.is_master_interval | 15 | PHP_INI_ALL | Добавлено в версии 1.2.10, до 1.3.0, значение по умолчанию 60.
mongo.long_as_object | 0 | PHP_INI_ALL |
mongo.native_long | 1 | PHP_INI_ALL | До версии 1.5.0, значение по умолчанию 0.
mongo.ping_interval | 5 | PHP_INI_ALL | Добавлено в версии 1.2.10
mongo.utf8 | 1 | PHP_INI_ALL |
msql.allow_persistent | "1" | PHP_INI_ALL |
msql.max_links | "-1" | PHP_INI_ALL |
msql.max_persistent | "-1" | PHP_INI_ALL |
mssql.allow_persistent | "1" | PHP_INI_SYSTEM |
mssql.batchsize | "0" | PHP_INI_ALL |
mssql.charset | "" | PHP_INI_ALL | Доступно с PHP 5.1.2.
mssql.compatability_mode | "0" | PHP_INI_ALL |
mssql.connect_timeout | "5" | PHP_INI_ALL |
mssql.datetimeconvert | "1" | PHP_INI_ALL |
mssql.max_links | "-1" | PHP_INI_SYSTEM |
mssql.max_persistent | "-1" | PHP_INI_SYSTEM |
mssql.max_procs | "-1" | PHP_INI_ALL |
mssql.min_error_severity | "10" | PHP_INI_ALL |
mssql.min_message_severity | "10" | PHP_INI_ALL |
mssql.secure_connection | "0" | PHP_INI_SYSTEM |
mssql.textlimit | "-1" | PHP_INI_ALL |
mssql.textsize | "-1" | PHP_INI_ALL |
mssql.timeout | "60" | PHP_INI_ALL |
mysql.allow_local_infile | "1" | PHP_INI_SYSTEM |
mysql.allow_persistent | "1" | PHP_INI_SYSTEM |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM |
mysql.max_links | "-1" | PHP_INI_SYSTEM |
mysql.trace_mode | "0" | PHP_INI_ALL |
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 | "60" | PHP_INI_ALL |
mysqli.allow_local_infile | "0" | PHP_INI_SYSTEM | Доступно с PHP 5.2.4. До PHP 7.2.16 и 7.3.3 значением по умолчанию было "1".
mysqli.allow_persistent | "1" | PHP_INI_SYSTEM | Доступно с PHP 5.3.0.
mysqli.max_persistent | "-1" | PHP_INI_SYSTEM | Доступно с PHP 5.3.0.
mysqli.max_links | "-1" | PHP_INI_SYSTEM |
mysqli.default_port | "3306" | PHP_INI_ALL |
mysqli.default_socket | NULL | PHP_INI_ALL |
mysqli.default_host | NULL | PHP_INI_ALL |
mysqli.default_user | NULL | PHP_INI_ALL |
mysqli.default_pw | NULL | PHP_INI_ALL |
mysqli.reconnect | "0" | PHP_INI_SYSTEM |
mysqli.rollback_on_cached_plink | TRUE | PHP_INI_SYSTEM | Доступно с PHP 5.6.0.
mysqlnd.collect_memory_statistics | "0" | PHP_INI_SYSTEM | Доступно с PHP 5.3.0.
mysqlnd.collect_statistics | "1" | PHP_INI_ALL | Доступно с PHP 5.3.0.
mysqlnd.debug | "" | PHP_INI_SYSTEM | Доступно с PHP 5.3.0.
mysqlnd.log_mask | "0" | PHP_INI_ALL | Доступно с PHP 5.4.0.
mysqlnd.mempool_default_size | "16000" | PHP_INI_ALL | Доступно с PHP 5.4.0.
mysqlnd.net_cmd_buffer_size | "4096" | PHP_INI_ALL | Доступно с PHP 5.4.0.
mysqlnd.net_read_buffer_size | "32768" | PHP_INI_ALL | Доступно с PHP 5.3.0.
mysqlnd.net_read_timeout | "31536000" | PHP_INI_SYSTEM | Доступно с PHP 5.4.0.
mysqlnd.sha256_server_public_key | "" | PHP_INI_PERDIR | Доступно с PHP 5.5.0.
mysqlnd.trace_alloc | "" | PHP_INI_SYSTEM | Доступно с PHP 5.5.0.
mysqlnd_memcache.enable | 1 | PHP_INI_SYSTEM | Доступно с версии 1.0.0
mysqlnd_ms.enable | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.force_config_usage | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.ini_file | "" | PHP_INI_SYSTEM |
mysqlnd_ms.config_file | "" | PHP_INI_SYSTEM |
mysqlnd_ms.collect_statistics | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.multi_master | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.disable_rw_split | 0 | PHP_INI_SYSTEM |
mysqlnd_mux.enable | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.enable_qc | 1 | PHP_INI_SYSTEM |
mysqlnd_qc.ttl | 30 | PHP_INI_ALL |
mysqlnd_qc.cache_by_default | 0 | PHP_INI_ALL |
mysqlnd_qc.cache_no_table | 0 | PHP_INI_ALL |
mysqlnd_qc.use_request_time | 0 | PHP_INI_ALL |
mysqlnd_qc.time_statistics | 1 | PHP_INI_ALL |
mysqlnd_qc.collect_statistics | 0 | PHP_INI_ALL |
mysqlnd_qc.collect_statistics_log_file | /tmp/mysqlnd_qc.stats | PHP_INI_SYSTEM |
mysqlnd_qc.collect_query_trace | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.query_trace_bt_depth | 3 | PHP_INI_SYSTEM |
mysqlnd_qc.collect_normalized_query_trace | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.ignore_sql_comments | 1 | PHP_INI_ALL |
mysqlnd_qc.slam_defense | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.slam_defense_ttl | 30 | PHP_INI_SYSTEM |
mysqlnd_qc.std_data_copy | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.apc_prefix | qc_ | PHP_INI_ALL |
mysqlnd_qc.memc_server | 127.0.0.1 | PHP_INI_ALL |
mysqlnd_qc.memc_port | 11211 | PHP_INI_ALL |
mysqlnd_qc.sqlite_data_file | :memory: | PHP_INI_ALL |
mysqlnd_uh.enable | 1 | PHP_INI_SYSTEM |
mysqlnd_uh.report_wrong_types | 1 | PHP_INI_ALL |
nsapi.read_timeout | "60" | PHP_INI_ALL |
oci8.connection_class | "" | PHP_INI_ALL | Доступно с PHP 5.3 (PECL OCI8 1.3).
oci8.default_prefetch | "10" | PHP_INI_SYSTEM | Доступно с PHP 5.1.2.
oci8.events | Off | PHP_INI_SYSTEM | Доступно с PHP 5.3 (PECL OCI8 1.3).
oci8.max_persistent | "-1" | PHP_INI_SYSTEM | Доступно с PHP 5.1.2.
oci8.old_oci_close_semantics | "0" | PHP_INI_SYSTEM | Доступно с PHP 5.1.2.
oci8.persistent_timeout | "-1" | PHP_INI_SYSTEM | Доступно с PHP 5.1.2.
oci8.ping_interval | "60" | PHP_INI_SYSTEM | Доступно с PHP 5.1.2.
oci8.privileged_connect | "0" | PHP_INI_SYSTEM | Доступно с PHP 5.1.2.
oci8.statement_cache_size | "20" | PHP_INI_SYSTEM | Доступно с PHP 5.1.2.
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_cursortype | "3" | PHP_INI_ALL | Доступно с PHP 5.3.0.
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 |
odbtp.datetime_format | "object" | PHP_INI_ALL |
odbtp.detach_default_queries | "0" | PHP_INI_ALL |
odbtp.guid_format | "string" | PHP_INI_ALL | Доступно с odbtp 1.1.3.
odbtp.interface_file | "/usr/local/share/odbtp.conf" | PHP_INI_ALL |
odbtp.truncation_errors | "1" | PHP_INI_ALL |
opcache.enable | "1" | PHP_INI_ALL |
opcache.enable_cli | "0" | PHP_INI_SYSTEM | В версиях с PHP 7.1.2 по 7.1.6 включительно, значение по умолчанию "1" (включено)
opcache.memory_consumption | "128" | PHP_INI_SYSTEM | До PHP 7.0.0 значение по умолчанию было "64"
opcache.interned_strings_buffer | "8" | PHP_INI_SYSTEM | До PHP 7.0.0. значение по умолчанию было "4"
opcache.max_accelerated_files | "10000" | PHP_INI_SYSTEM | До PHP 7.0.0 значение по умолчанию было "2000"
opcache.max_wasted_percentage | "5" | PHP_INI_SYSTEM |
opcache.use_cwd | "1" | PHP_INI_SYSTEM |
opcache.validate_timestamps | "1" | PHP_INI_ALL |
opcache.revalidate_freq | "2" | PHP_INI_ALL |
opcache.revalidate_path | "0" | PHP_INI_ALL |
opcache.save_comments | "1" | PHP_INI_SYSTEM |
opcache.load_comments | "1" | PHP_INI_ALL | Удалено в PHP 7.0.0
opcache.fast_shutdown | "0" | PHP_INI_SYSTEM |
opcache.enable_file_override | "0" | PHP_INI_SYSTEM |
opcache.optimization_level | "0x7FFEBFFF" | PHP_INI_SYSTEM | До PHP 7.3.0 было 0x7FFFBFFF и до PHP 5.6.18 было 0xFFFFFFFF
opcache.inherited_hack | "1" | PHP_INI_SYSTEM | Удалено в PHP 7.3.0
opcache.dups_fix | "0" | PHP_INI_ALL |
opcache.blacklist_filename | "" | PHP_INI_SYSTEM |
opcache.max_file_size | "0" | PHP_INI_SYSTEM |
opcache.consistency_checks | "0" | PHP_INI_ALL |
opcache.force_restart_timeout | "180" | PHP_INI_SYSTEM |
opcache.error_log | "" | PHP_INI_SYSTEM |
opcache.log_verbosity_level | "1" | PHP_INI_SYSTEM |
opcache.preferred_memory_model | "" | PHP_INI_SYSTEM |
opcache.protect_memory | "0" | PHP_INI_SYSTEM |
opcache.mmap_base | NULL | PHP_INI_SYSTEM |
opcache.restrict_api | "" | PHP_INI_SYSTEM |
opcache.file_update_protection | "2" | PHP_INI_ALL |
opcache.huge_code_pages | "0" | PHP_INI_SYSTEM |
opcache.lockfile_path | "/tmp" | PHP_INI_SYSTEM |
opcache.opt_debug_level | "0" | PHP_INI_SYSTEM |
opcache.file_cache | NULL | PHP_INI_SYSTEM | Доступно с PHP 7.0.0
opcache.file_cache_only | "0" | PHP_INI_SYSTEM | Доступно с PHP 7.0.0
opcache.file_cache_consistency_checks | "1" | PHP_INI_SYSTEM | Только в Windows. Доступно с PHP 7.0.0
opcache.file_cache_fallback | "1" | PHP_INI_SYSTEM | Доступно с PHP 7.0.0
opcache.validate_permission | "0" | PHP_INI_SYSTEM | Доступно с PHP 7.0.14
opcache.validate_root | "0" | PHP_INI_SYSTEM | Доступно с PHP 7.0.14
opcache.preload | "" | PHP_INI_SYSTEM | Доступно с PHP 7.4.0
opcache.preload_user | "" | PHP_INI_SYSTEM | Доступно с PHP 7.4.0
opcache.cache_id | "1" | PHP_INI_SYSTEM | Только в Windows. Доступно с PHP 7.4.0
opendirectory.default_separator | "/" | PHP_INI_ALL | Удалено в opendirectory 0.2.2.
opendirectory.max_refs | "-1" | PHP_INI_ALL |
opendirectory.separator | "/" | PHP_INI_ALL | Доступно с opendirectory 0.2.2.
open_basedir | NULL | PHP_INI_ALL | PHP_INI_SYSTEM в PHP < 5.2.3.
oracle.allow_persistent | "-1" | PHP_INI_ALL | Удалено в PHP 5.1.0.
oracle.max_links | "-1" | PHP_INI_ALL | Удалено в PHP 5.1.0.
oracle.max_persistent | "-1" | PHP_INI_ALL | Удалено в PHP 5.1.0.
output_buffering | "0" | PHP_INI_PERDIR |
output_handler | NULL | PHP_INI_PERDIR |
pam.servicename | "php" | PHP_INI_ALL |
pcre.backtrack_limit | "1000000" | PHP_INI_ALL | Доступно с PHP 5.2.0.
pcre.recursion_limit | "100000" | PHP_INI_ALL | Доступно с PHP 5.2.0.
pcre.jit | "1" | PHP_INI_ALL | Доступно с PHP 7.0.0.
pdo.dsn.* |  | Только php.ini | Доступно с PHP 5.1.0.
pdo_odbc.connection_pooling | "strict" | PHP_INI_ALL | Доступно с PHP 5.1.0.
pdo_odbc.db2_instance_name | NULL | PHP_INI_SYSTEM | Доступно с PHP 5.1.1. Эта возможность устарела и будет обязательно удалена в будущем.
pfpro.defaulthost | "test-payflow.verisign.com" | PHP_INI_ALL | Удалено в PHP 5.1.0.
pfpro.defaultport | "443" | PHP_INI_ALL | Удалено в PHP 5.1.0.
pfpro.defaulttimeout | "30" | PHP_INI_ALL | Удалено в PHP 5.1.0.
pfpro.proxyaddress | "" | PHP_INI_ALL | Удалено в PHP 5.1.0.
pfpro.proxylogon | "" | PHP_INI_ALL | Удалено в PHP 5.1.0.
pfpro.proxypassword | "" | PHP_INI_ALL | Удалено в PHP 5.1.0.
pfpro.proxyport | "" | PHP_INI_ALL | Удалено в PHP 5.1.0.
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM |
pgsql.ignore_notice | "0" | PHP_INI_ALL |
pgsql.log_notice | "0" | PHP_INI_ALL |
pgsql.max_links | "-1" | PHP_INI_SYSTEM |
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM |
phar.cache_list | "" | PHP_INI_SYSTEM | Доступно с PHP 5.4.0.
phar.extract_list | "" | PHP_INI_ALL | Доступно с phar 1.1.0.
phar.readonly | "1" | PHP_INI_ALL |
phar.require_hash | "1" | PHP_INI_ALL |
post_max_size | "8M" | PHP_INI_PERDIR |
precision | "14" | PHP_INI_ALL |
python.append_path | "" | PHP_INI_ALL |
python.prepend_path | "." | PHP_INI_ALL |
realpath_cache_size | "16K" | PHP_INI_SYSTEM | Доступно с PHP 5.1.0.
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | Доступно с PHP 5.1.0.
register_argc_argv | "1" | PHP_INI_PERDIR |
register_globals | "0" | PHP_INI_PERDIR | Объявлено устаревшим в PHP 5.3.0. Удалено в PHP 5.4.0.
register_long_arrays | "1" | PHP_INI_PERDIR | Объявлено устаревшим в PHP 5.3.0. Удалено в PHP 5.4.0.
report_memleaks | "1" | PHP_INI_ALL |
report_zend_debug | "1" | PHP_INI_ALL |
request_order | "" | PHP_INI_PERDIR | Добавлено в PHP 5.3.0
runkit.internal_override | "0" | PHP_INI_SYSTEM |
runkit.superglobal | "" | PHP_INI_PERDIR |
safe_mode | "0" | PHP_INI_SYSTEM | Удалено в PHP 5.4.0.
safe_mode_allowed_env_vars | "PHP_" | PHP_INI_SYSTEM | Удалено в PHP 5.4.0.
safe_mode_exec_dir | "" | PHP_INI_SYSTEM | Удалено в PHP 5.4.0.
safe_mode_gid | "0" | PHP_INI_SYSTEM | Удалено в PHP 5.4.0.
safe_mode_include_dir | NULL | PHP_INI_SYSTEM | Удалено в PHP 5.4.0.
safe_mode_protected_env_vars | "LD_LIBRARY_PATH" | PHP_INI_SYSTEM | Удалено в PHP 5.4.0.
sendmail_from | NULL | PHP_INI_ALL |
sendmail_path | "/usr/sbin/sendmail -t -i" | PHP_INI_SYSTEM |
serialize_precision | "-1" | PHP_INI_ALL | До PHP 5.3.5, значение по умолчанию 100. До PHP 7.1.0, значение по умолчанию 17.
session.auto_start | "0" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 5.4.19 и в PHP <= 5.5.1.
session.bug_compat_42 | "1" | PHP_INI_ALL |
session.bug_compat_warn | "1" | PHP_INI_ALL |
session.cache_expire | "180" | PHP_INI_ALL |
session.cache_limiter | "nocache" | PHP_INI_ALL |
session.cookie_domain | "" | PHP_INI_ALL |
session.cookie_httponly | "" | PHP_INI_ALL | Доступно с PHP 5.2.0.
session.cookie_lifetime | "0" | PHP_INI_ALL |
session.cookie_path | "/" | PHP_INI_ALL |
session.cookie_secure | "" | PHP_INI_ALL |
session.entropy_file | "" | PHP_INI_ALL | Удалено в PHP 7.1.0
session.entropy_length | "0" | PHP_INI_ALL | Удалено в PHP 7.1.0
session.gc_divisor | "100" | PHP_INI_ALL |
session.gc_maxlifetime | "1440" | PHP_INI_ALL |
session.gc_probability | "1" | PHP_INI_ALL |
session.sid_bits_per_character | "4" | PHP_INI_ALL | Доступно с PHP 7.1.0.
session.sid_length | "32" | PHP_INI_ALL | Доступно с PHP 7.1.0.
session.hash_bits_per_character | "5" | PHP_INI_ALL | Удалено в PHP 7.1.0
session.hash_function | "0" | PHP_INI_ALL |
session.lazy_write | "1" | PHP_INI_ALL | Доступно с PHP 7.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.upload_progress.cleanup | "1" | PHP_INI_PERDIR | Доступно с PHP 5.4.0.
session.upload_progress.enabled | "1" | PHP_INI_PERDIR | Доступно с PHP 5.4.0.
session.upload_progress.freq | "1%" | PHP_INI_PERDIR | Доступно с PHP 5.4.0.
session.upload_progress.min_freq | "1" | PHP_INI_PERDIR | Доступно с PHP 5.4.0.
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | PHP_INI_PERDIR | Доступно с PHP 5.4.0.
session.upload_progress.prefix | "upload_progress_" | PHP_INI_PERDIR | Доступно с PHP 5.4.0.
session.use_strict_mode | "0" | PHP_INI_ALL | Доступно с PHP 5.5.2.
session.use_cookies | "1" | PHP_INI_ALL |
session.use_only_cookies | "1" | PHP_INI_ALL |
session.use_trans_sid | "0" | PHP_INI_ALL |
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 |
SMTP | "localhost" | PHP_INI_ALL |
smtp_port | "25" | PHP_INI_ALL |
soap.wsdl_cache | "1" | PHP_INI_ALL | Доступно с PHP 5.1.5.
soap.wsdl_cache_dir | "/tmp" | PHP_INI_ALL |
soap.wsdl_cache_enabled | "1" | PHP_INI_ALL |
soap.wsdl_cache_limit | "5" | PHP_INI_ALL | Доступно с PHP 5.1.5.
soap.wsdl_cache_ttl | "86400" | PHP_INI_ALL |
sql.safe_mode | "0" | PHP_INI_SYSTEM |
sqlite.assoc_case | "0" | PHP_INI_ALL |
sqlite3.extension_dir | "" | PHP_INI_SYSTEM | Доступно с PHP 5.3.11
sqlite3.defensive | 1 | PHP_INI_SYSTEM | Доступно с PHP 7.2.17 и 7.3.4 для libsqlite ? 3.26.0.
sybase.allow_persistent | "1" | PHP_INI_ALL |
sybase.interface_file | "" | PHP_INI_ALL |
sybase.max_links | "-1" | PHP_INI_ALL |
sybase.max_persistent | "-1" | PHP_INI_ALL |
sybase.min_error_severity | "10" | PHP_INI_ALL |
sybase.min_message_severity | "10" | PHP_INI_ALL |
sybct.deadlock_retry_count | "0" | PHP_INI_ALL |
sybct.login_timeout | "-1" | PHP_INI_ALL |
sybct.packet_size | "0" | PHP_INI_ALL |
sybct.timeout | "0" | PHP_INI_ALL |
syslog.facility | "LOG_USER" | PHP_INI_SYSTEM | Доступно с PHP 7.3.0.
syslog.filter | "no-ctrl" | PHP_INI_ALL | Доступно с PHP 7.3.0.
syslog.ident | "php" | PHP_INI_SYSTEM | Доступно с PHP 7.3.0.
sys_temp_dir | "" | PHP_INI_SYSTEM | Доступно с PHP 5.5.0.
sysvshm.init_mem | "10000" | PHP_INI_ALL |
tidy.clean_output | "0" | PHP_INI_USER |
tidy.default_config | "" | PHP_INI_SYSTEM |
track_errors | "0" | PHP_INI_ALL | Объявлено устаревшим в PHP 7.2.0.
unserialize_callback_func | NULL | PHP_INI_ALL |
uploadprogress.file.filename_template | "/tmp/upt_%s.txt" | PHP_INI_ALL |
upload_max_filesize | "2M" | PHP_INI_PERDIR |
max_file_uploads | 20 | PHP_INI_SYSTEM | Доступно с PHP 5.2.12.
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL |
user_agent | NULL | PHP_INI_ALL |
user_dir | NULL | PHP_INI_SYSTEM |
user_ini.cache_ttl | "300" | PHP_INI_SYSTEM | Доступно с PHP 5.3.0.
user_ini.filename | ".user.ini" | PHP_INI_SYSTEM | Доступно с PHP 5.3.0.
uopz.disable | "0" | PHP_INI_SYSTEM | Доступно начиная с uopz 5.0.2
uopz.exit | "0" | PHP_INI_SYSTEM | Доступно начиная с uopz 6.0.1
valkyrie.auto_validate | "0" | PHP_INI_ALL |
valkyrie.config_path | NULL | PHP_INI_ALL |
variables_order | "EGPCS" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 5.0.5.
vld.active | "0" | PHP_INI_SYSTEM |
vld.execute | "1" | PHP_INI_SYSTEM | Доступно с vld 0.8.0.
vld.skip_append | "0" | PHP_INI_SYSTEM | Доступно с vld 0.8.0.
vld.skip_prepend | "0" | PHP_INI_SYSTEM | Доступно с vld 0.8.0.
windows.show_crt_warning | "0" | PHP_INI_ALL | Доступно с PHP 5.4.0.
xbithack | "0" | PHP_INI_ALL |
xdebug.auto_profile | "0" | PHP_INI_ALL | Удалено в Xdebug 2.0.0.
xdebug.auto_profile_mode | "0" | PHP_INI_ALL | Удалено в Xdebug 2.0.0.
xdebug.auto_trace | "0" | PHP_INI_ALL |
xdebug.collect_includes | "1" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.collect_params | "0" | PHP_INI_ALL |
xdebug.collect_return | "0" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.collect_vars | "0" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.default_enable | "1" | PHP_INI_ALL | PHP_INI_SYSTEM в Xdebug 1.
xdebug.dump.COOKIE | NULL | PHP_INI_ALL |
xdebug.dump.ENV | NULL | PHP_INI_ALL |
xdebug.dump.FILES | NULL | PHP_INI_ALL |
xdebug.dump.GET | NULL | PHP_INI_ALL |
xdebug.dump.POST | NULL | PHP_INI_ALL |
xdebug.dump.REQUEST | NULL | PHP_INI_ALL |
xdebug.dump.SERVER | NULL | PHP_INI_ALL |
xdebug.dump.SESSION | NULL | PHP_INI_ALL |
xdebug.dump_globals | "1" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.dump_once | "1" | PHP_INI_ALL |
xdebug.dump_undefined | "0" | PHP_INI_ALL |
xdebug.extended_info | "1" | PHP_INI_SYSTEM | Доступно с Xdebug 2.0.0.
xdebug.idekey | "" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.manual_url | "http://www.php.net" | PHP_INI_ALL |
xdebug.max_nesting_level | "100" | PHP_INI_ALL |
xdebug.output_dir | "/tmp" | PHP_INI_PERDIR | PHP_INI_SYSTEM в Xdebug <= 1.2.0. Удалено в Xdebug 2.0.0.
xdebug.profiler_aggregate | "0" | PHP_INI_PERDIR | Доступно с Xdebug 2.0.0.
xdebug.profiler_append | "0" | PHP_INI_PERDIR | Доступно с Xdebug 2.0.0.
xdebug.profiler_enable | "0" | PHP_INI_PERDIR | Доступно с Xdebug 2.0.0.
xdebug.profiler_enable_trigger | "0" | PHP_INI_PERDIR | Доступно с Xdebug 2.0.0.
xdebug.profiler_output_dir | "/tmp" | PHP_INI_PERDIR | Доступно с Xdebug 2.0.0.
xdebug.profiler_output_name | "cachegrind.out.%p" | PHP_INI_PERDIR | Доступно с Xdebug 2.0.0.
xdebug.remote_autostart | "0" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.remote_enable | "0" | PHP_INI_PERDIR |
xdebug.remote_handler | "dbgp" | PHP_INI_ALL |
xdebug.remote_host | "localhost" | PHP_INI_ALL |
xdebug.remote_log | "" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.remote_mode | "req" | PHP_INI_ALL |
xdebug.remote_port | "9000" | PHP_INI_ALL |
xdebug.show_exception_trace | "0" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.show_local_vars | "0" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.show_mem_delta | "0" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.trace_format | "0" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.trace_options | "0" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.trace_output_dir | "/tmp" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.trace_output_name | "trace.%c" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.var_display_max_children | "128" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.var_display_max_data | "512" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.var_display_max_depth | "3" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xmlrpc_errors | "0" | PHP_INI_SYSTEM |
xmlrpc_error_number | "0" | PHP_INI_ALL |
xmms.path | "/usr/bin/xmms" | PHP_INI_ALL |
xmms.session | "0" | PHP_INI_ALL |
xsl.security_prefs | "44" | PHP_INI_ALL | Доступно с PHP 5.5.0.
y2k_compliance | "1" | PHP_INI_ALL | Удалено в PHP 5.4.0.
yami.response.timeout | "5" | PHP_INI_ALL | Доступно с yami 1.0.1.
yaz.keepalive | "120" | PHP_INI_ALL |
yaz.log_mask | NULL | PHP_INI_ALL | Доступно с yaz 1.0.3.
zend.assertions | "1" | PHP_INI_ALL | Доступно с PHP 7.0.0.
zend.detect_unicode | "1" | PHP_INI_ALL | Доступно с PHP 5.4.0.
zend.enable_gc | "1" | PHP_INI_ALL | Доступно с PHP 5.3.0.
zend.multibyte | "0" | PHP_INI_PERDIR | Доступно с PHP 5.4.0.
zend.script_encoding | NULL | PHP_INI_ALL | Доступно с PHP 5.4.0
zend.signal_check | "0" | PHP_INI_SYSTEM | Доступно с PHP 5.4.0
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Доступно с PHP 5.0.0. Удалено в PHP 5.3.0.
zend_extension | NULL | Только php.ini |
zend_extension_debug | NULL | Только php.ini |
zend_extension_debug_ts | NULL | Только php.ini |
zend_extension_ts | NULL | Только php.ini |
zlib.output_compression | "0" | PHP_INI_ALL | Доступно с PHP 4.0.5.
zlib.output_compression_level | "-1" | PHP_INI_ALL |
zlib.output_handler | "" | PHP_INI_ALL |


Список разделов php.ini

В этом списке указаны разделы, в которых вы можете настроить PHP в зависимости от хоста или пути. Эти разделы необязательны.

Данные разделы не имеют прямого влияния на PHP. Они нужны для группировки других директив php.ini вместе и для возможности действовать в зависимости от определенного хоста или пути.

Данные разделы используются только в режиме CGI/FastCGI и в них не могут быть использованы директивы extension и zend_extension.

Разделы
Название | Место изменения | История изменений
[HOST=] | PHP_INI_SYSTEM | Добавлено в PHP 5.3.0.
[PATH=] | PHP_INI_SYSTEM | Добавлено в PHP 5.3.0.

Краткое разъяснение конфигурационных директив.

[HOST=<host>]

Данный раздел позволяет определять набор php.ini директив, которые будут применяться только к указанному хосту.

Пример #1 Активация полного логирования и сообщения об ошибках для dev. домена

[HOST=dev.site.com]
error_reporting = E_ALL
display_errors = On

[PATH=<path>]

Данный раздел позволяет определять набор php.ini директив, которые будут применяться, если скрипт будет запущен из указанного пути.

Пример #2 Добавление скрипта безопасности для защищенных зон

[PATH=/home/site/public/secure]
auto_prepend_file=security.php


Описание встроенных директив php.ini

Этот список включает встроенные директивы php.ini, которые вы можете использовать для настройки PHP. Директивы, которые обрабатываются модулями, перечислены и подробно описаны на страницах документаций соответствующих модулей. К примеру, информация о директивах сессий может быть найдена на странице документации сессий.

Замечание:

Представленные здесь значения по умолчанию используются в случае, если не был подключен php.ini; значения для боевого php.ini и для разработки могут различаться.

Языковые опции

Опции языка и прочих настроек
Имя | По умолчанию | Место изменения | Список изменений
short_open_tag | "1" | PHP_INI_PERDIR |
asp_tags | "0" | PHP_INI_PERDIR | Удалена в PHP 7.0.0.
precision | "14" | PHP_INI_ALL |
serialize_precision | "-1" | PHP_INI_ALL | До версии PHP 5.3.5 значение по умолчанию было равно 100. До версии PHP 7.1.0 значение по умолчанию было равно 17.
y2k_compliance | "1" | PHP_INI_ALL | Удалена в PHP 5.4.0.
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | Удалена в PHP 5.4.0.
disable_functions | "" | Только PHP_INI_SYSTEM |
disable_classes | "" | Только php.ini |
exit_on_timeout | "" | PHP_INI_ALL | Доступна с версии PHP 5.3.0.
expose_php | "1" | Только php.ini |
hard_timeout | "2" | PHP_INI_SYSTEM | Доступна с версии PHP 7.1.0.
zend.multibyte | "0" | PHP_INI_ALL | Доступна с версии PHP 5.4.0
zend.script_encoding | NULL | PHP_INI_ALL | Доступна с версии PHP 5.4.0
zend.detect-unicode | NULL | PHP_INI_ALL | Доступна с версии PHP 5.4.0
zend.signal_check | "0" | PHP_INI_SYSTEM | Доступна с версии PHP 5.4.0
zend.assertions | "1" | PHP_INI_ALL с ограничениями | Доступна с версии PHP 7.0.0.
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Удалена в PHP 5.3.0
detect_unicode | "1" | PHP_INI_ALL | Доступна с версии PHP 5.1.0. Переименована на zend.detect-unicode с версии PHP 5.4.0.

Краткое разъяснение конфигурационных директив.

short_open_tag boolean

Определяет, разрешается ли короткая форма записи (<? ?>) тегов PHP. Если вы хотите использовать PHP совместно с XML, вы можете отключить эту опцию, чтобы беспрепятственно использовать <?xml ?>. В противном случае, вы можете отобразить это при помощи PHP, например: <?php echo '<?xml version="1.0"?>'; ?>. Если же эта опция отключена, вы должны использовать длинную форму открывающего тега PHP (<?php ?>).

Замечание:

Эта директива также влияла на сокращение <?= до версии PHP 5.4.0, которое идентично записи <? echo. Для использования этого сокращения должна была быть включена директива short_open_tag. Начиная с версии PHP 5.4.0 запись <?= стала доступна всегда.

asp_tags boolean
Включает использование тегов в стиле ASP в дополнение к обычным тегам <?php ?>. Это касается и сокращения для отображения значения переменных <%= $value %>. Для получения дополнительной информации, обратитесь к разделу Экранирование HTML.

Changelog for asp_tags
Версия | Описание
7.0.0 | Удалена из PHP.

precision integer
Количество значащих цифр, отображаемых для чисел с плавающей точкой. -1 означает, что будет использован усовершенствованный алгоритм для округления таких чисел.
serialize_precision integer
Количество сохраняемых значащих цифр при сериализации чисел с плавающей точкой. -1 означает, что будет использован усовершенствованный алгоритм для округления таких чисел.
y2k_compliance boolean
Включение совместимости с 2000 годом (создаст проблемы с несовместимыми браузерами)
allow_call_time_pass_reference boolean

Нужно ли выводить предупреждение, если аргументы передаются по ссылке при вызове функции. Рекомендуется указывать в объявлении функции передаваемые по ссылке аргументы. Попробуйте выключить эту опцию и убедиться, что ваши скрипты правильно работают без нее и что они будут работать с будущими версиями языка (вы будете получать предупреждение каждый раз, когда вы будете пользоваться этой возможностью).

Передача аргументов по ссылке во время вызова функции была объявлена устаревшей из соображений чистоты кода. Функция может менять свои аргументы недокументированным способом, если бы аргумент не объявлялся передаваемым по ссылке. Чтобы избежать побочных эффектов, лучше явно указывать, какие аргументы передаются по ссылке только при объявлении функции.

См. также Подробное описание ссылок.

Список изменений для allow_call_time_pass_reference
Версия | Описание
5.4.0 | Удалена из PHP.
5.3.0 | Генерирует ошибку уровня E_DEPRECATED.
5.0.0 | Устарела и генерирует ошибку уровня E_COMPILE_WARNING.

expose_php boolean

Выдает факт присутствия PHP на сервере, включая передачу версии PHP в HTTP-заголовке (например, X-Powered-By: PHP/5.3.7). До версии PHP 5.5.0 также показывались идентификаторы логотипов, таким образом, при добавлении их к ссылке на сайте с PHP показывался соответствующий логотип (например, » https://www.php.net/?=PHPE9568F34-D428-11d2-A769-00AA001ACF42). Отключение данной опции также влияло на вывод функции phpinfo(), в этом случае логотип PHP и информация о разработчиках, принимавших участие в разработке PHP, не отображались.

Замечание:

В версии PHP 5.5.0 данные идентификаторы логотипов и функция php_logo_guid() были удалены, теперь для отображения логотипов используется механизм data URI. Таким образом добавление идентификатора логотипа к ссылке (для показа логотипа) больше не работает. Аналогично, выключение опции expose_php более не влияет на отображение логотипа PHP в выводе функции phpinfo().

Смотрите также php_logo_guid() и phpcredits().

disable_functions string

Эта директива позволяет отключить некоторые функции по причинам безопасности. Она принимает список имен функций, разделенный запятыми. disable_functions не подвержена влиянию безопасного режима.

Только внутренние функции могут быть отключены с помощью этой директивы. Пользовательские функции ей не подвержены.

Эта директива должна быть установлена в php.ini. Например, ее нельзя использовать в httpd.conf.

disable_classes string
Эта директива позволяет отключить некоторые классы по причинам безопасности. Она принимает список имен классов, разделенных запятыми. disable_classes не подвержена влиянию безопасного режима. Эта директива должна быть установлена в php.ini. Например, ее нельзя использовать в httpd.conf.
zend.assertions integer
Если задано значение 1, проверочный код будет исполняться (режим разработки). Если задан 0, код проверок будет сгенерирован, одноко исполняться не будет. Если задано -1, проверочный код не будет генерироваться (продуктивный режим).

Замечание:

Если процесс стартован в режиме релиза, zend.assertions не может быть изменен во время выполнения, так как код утверждений не генерируется.

Если процесс стартован в режиме разработки, zend.assertions не может быть выставлен в -1 во время выполнения..

zend.ze1_compatibility_mode boolean

Включает режим совместимости с Zend Engine 1 (PHP 4). Это влияет на клонирование, приведение типов (объекты без свойств приводятся к FALSE или 0) и сравнение объектов. В этом режиме объекты по умолчанию передаются по значению вместо ссылки.

См. также раздел Переход с PHP 4 на PHP 5.

Внимание

Эта возможность была помечена УСТАРЕВШЕЙ и БЫЛА УДАЛЕНА в версии PHP 5.3.0.

hard_timeout integer

zend.multibyte boolean

Разрешает парсинг исходных файлов в многобайтных кодировках. Включение zend.multibyte требуется для использования кодировок символов подобных SJIS, BIG5 и т.д., содержащих специальные символы в многобайтных строковых данных. Совместимые с ISO-8859-1 кодировки, например UTF-8, EUC и т.д., не требуют эту опцию.

Модуль zend.multibyte требует установленного модуля "mbstring".

zend.script_encoding string

Данное значение будет использовано, только при отсутствии директивы declare(encoding=...) в начале скрипта. При использовании кодировок несовместимых с ISO-8859-1, нужно использовать опции и zend.multibyte и zend.script_encoding.

Литеральные строки должны быть транслитерированы из zend.script_enconding в mbstring.internal_encoding, как если бы вызвали mb_convert_encoding().

zend.detect_unicode boolean

Определяет, нужно ли проверять BOM (Byte Order Mark, метка порядка байт) и корректность многобайтных символов в файле. Эта проверка производится до вызова __halt_compiler(). Доступна только в режиме Zend Multibyte.

zend.signal_check boolean

Определяет, нужно ли проверять замененные обработчики сигналов при завершении скрипта.

exit_on_timeout boolean

Эта директива только для Apache1 mod_php, которая заставляет потомка Apache завершиться, если произошел тайм-аут исполнения скрипта PHP. Такой тайм-аут приводит к внутреннему вызову longjmp() в Apache1, который оставляет некоторые расширения в несогласованном состоянии. По завершении процесса все неснятые блокировки или память будут очищены.

Ограничения ресурсов

Ограничения ресурсов
Имя | По умолчанию | Место изменения | Список изменений
memory_limit | "128M" | PHP_INI_ALL | "8M" до PHP 5.2.0, "16M" в PHP 5.2.0

Краткое разъяснение конфигурационных директив.

memory_limit integer

Эта директива задает максимальный объем памяти в байтах, который разрешается использовать скрипту. Это помогает предотвратить ситуацию, при которой плохо написанный скрипт съедает всю доступную память сервера. Для того, чтобы убрать ограничения, установите значение этой директивы в -1.

В версиях до PHP 5.2.1 для использования этой директивы, она должна была быть указана на этапе компиляции. Так, ваша строка конфигурации должна была включать: --enable-memory-limit . Эта опция компиляции была также необходима для использования функций memory_get_usage() и memory_get_peak_usage() до версии 5.2.1.

Если используется integer, значение измеряется байтами. Вы также можете использовать сокращенную запись, которая описана в этом разделе FAQ.

См. также: max_execution_time.

Настройка производительности

Настройка производительности
Имя | По умолчанию | Место изменения | Список изменений
realpath_cache_size | "4M" | PHP_INI_SYSTEM | Доступна с версии PHP 5.1.0. До PHP 7.0.16 и 7.1.2, по умолчанию было "16K"
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | Доступна с версии PHP 5.1.0.

Замечание:

Использование open_basedir отключит кеш realpath.

Краткое разъяснение конфигурационных директив.

realpath_cache_size integer

Определяет размера кэша realpath, используемого в PHP. Это значение должно быть увеличено на системах, в которых PHP открывает большое количество файлов соответственно количеству выполняемых файловых операций.

Размер равный общему числу байт, хранящимся в строках путей, плюс размер данных связанных с кешируемым элементом. Это значит, что для хранения длинных путей в кэше, размер этого кэша должен быть больше. Это значение не определяет напрямую количество разных путей, которые могут быть закэшированы.

Размер, необходимый для кэширования, зависит от системы.

realpath_cache_ttl integer

Время (в секундах) в течение которого будет использован кэш realpath для указанного файла или директории. Для систем с редко меняющимися файлами это значение можно увеличить.

Обработка данных

Конфигурационные опции обработки данных
Имя | По умолчанию | Место изменения | Список изменений
arg_separator.output | "&" | PHP_INI_ALL |
arg_separator.input | "&" | PHP_INI_PERDIR |
variables_order | "EGPCS" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 5.0.5.
request_order | "" | PHP_INI_PERDIR | Доступна с версии PHP 5.3.0
auto_globals_jit | "1" | PHP_INI_PERDIR | Доступна с версии PHP 5.0.0.
register_globals | "0" | PHP_INI_PERDIR | Удалена в PHP 5.4.0.
register_argc_argv | "1" | PHP_INI_PERDIR |
register_long_arrays | "1" | PHP_INI_PERDIR | Помечена устаревшей в PHP 5.3.0. Удалена в PHP 5.4.0.
enable_post_data_reading | "1" | PHP_INI_PERDIR | Доступна с версии PHP 5.4.0
post_max_size | "8M" | PHP_INI_PERDIR |
auto_prepend_file | NULL | PHP_INI_PERDIR |
auto_append_file | NULL | PHP_INI_PERDIR |
default_mimetype | "text/html" | PHP_INI_ALL |
default_charset | "UTF-8" | PHP_INI_ALL | По умолчанию "UTF-8" с PHP >= 5.6.0; пустая для PHP < 5.6.0.
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | Удалена в PHP 7.0.0.

Краткое разъяснение конфигурационных директив.

arg_separator.output string

Этот разделитель используется в генерируемых PHP URL в качестве разделителя аргументов.

arg_separator.input string

Список разделителей, используемых PHP для получения переменных из URL.

Замечание:

Каждый символ в этой директиве считается разделителем!

variables_order string

Устанавливает порядок обработки переменных EGPCS (Environment, Get, Post, Cookie, и Server). Например, если variables_order установлена в "SP", то PHP создаст superglobals $_SERVER и $_POST, но не будет создавать $_ENV, $_GET и $_COOKIE. Установка в "" означает, что ни одна superglobals не будет установлена.

Если включена устаревшая директива register_globals, то variables_order также устанавливает порядок экспорта переменных ENV, GET, POST, COOKIE и SERVER в глобальное пространство. Например, если порядок переменных установлен как "EGPCS", register_globals включена, и существуют обе $_GET['action'] и $_POST['action'], то переменная $action будет содержать значение $_POST['action'], так как P в нашем примере идет после G.

Внимание

В CGI и FastCGI SAPI, в $_SERVER также добавляются значения переменных окружения; S всегда эквивалентна ES вне зависимости от самого положения E в этой директиве.

Замечание:

Эта директива также влияет на содержимое и порядок переменной $_REQUEST.

request_order string

Эта директива регулирует порядок, в котором PHP добавляет переменные GET, POST и Cookie в массив _REQUEST. Добавление производится слева направо, новые значения перезаписывают старые.

Если значение этой директивы не установлено, то используется значение директивы variables_order для содержимого переменной $_REQUEST.

Учтите, что файлы php.ini, поставляемые с дистрибутивом, по соображениям безопасности не содержат значение 'C' (cookies).

auto_globals_jit boolean

Когда включено, переменные SERVER, REQUEST и ENV создаются в тот момент, когда они впервые используются (Just In Time), а не в начале выполнения скрипта. Если эти переменные в скрипте не используются, включение этой директивы приведет к росту производительности.

Директивы PHP register_globals, register_long_arrays и register_argc_argv должны быть выключены для правильной работы этой директивы. Начиная с версии PHP 5.1.3 стало необязательно выключать register_argc_argv.

Внимание

Использование переменных SERVER, REQUEST и ENV проверяется на стадии компиляции, поэтому их использование с помощью, например, переменных переменных не запустит их инициализацию.

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.

Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

register_argc_argv boolean
Сообщает PHP, следует ли объявлять переменные argv и argc (которые будут содержать GET-информацию). См. также Использование PHP в командной строке.
register_long_arrays boolean
Сообщает PHP, следует ли регистрировать устаревшие длинные предопределенные переменные типа $HTTP_*_VARS. Если включена (по умолчанию), то длинные предопределенные переменные PHP, например $HTTP_GET_VARS, будут объявлены. Если вы их не используете, рекомендуем отключить их из соображений производительности. Вместо них следует использовать суперглобальные массивы, например $_GET. Эта директива стала доступна с версии PHP 5.0.0.
Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

enable_post_data_reading boolean
При отключении этой опции суперглобальные переменные $_POST и $_FILES не будут заполняться. Единственным способом прочесть POST-данные будет чтение обертки потока php://input. Это может оказаться полезным при проксировании запросов или обработки POST-данных способом, более эффективно использующим память.
post_max_size integer
Устанавливает максимально допустимый размер данных, отправляемых методом POST. Это значение также влияет на загрузку файлов. Для загрузки больших файлов это значение должно быть больше значения директивы upload_max_filesize. В сущности, memory_limit должна быть больше чем post_max_size. Если используется integer, значение измеряется байтами. Вы также можете использовать сокращенную запись, которая описана в этом разделе FAQ. Если размер POST-данных больше чем post_max_size, суперглобальные переменные $_POST и $_FILES будут пустыми. Это можно отследить различными способами, например передав $_GET переменную в скрипт, обрабатывающий данные, т.е. <form action="edit.php?processed=1">, а затем проверить, установлена ли переменная $_GET['processed'].

Замечание:

PHP разрешает сокращения значений байт, включая K (кило), M (мега) и G (гига). PHP автоматически преобразует все эти сокращения. Будьте осторожны с превышением диапазона 32-битных целых значений (если вы используете 32-битную версию), так как это приведет к ошибке вашего скрипта.

Список изменений post_max_size
Версия | Описание
5.3.4 | Установка post_max_size = 0 не снимет ограничение, если контент имеет тип application/x-www-form-urlencoded или не зарегистрирован в PHP.
5.3.2 , 5.2.12 | Стало возможным снять ограничение на размер пост-запроса установкой post_max_size в 0.

auto_prepend_file string

Определяет имя файла, который будет автоматически обрабатываться перед основным файлом. Файл вызывается так, будто он был подключен при помощи функции require, так что include_path также используется.

Специальное значение none отключает эту директиву.

auto_append_file string

Определяет имя файла, который будет автоматически обрабатываться после основного файла. Файл вызывается так, будто он был подключен при помощи функции require, так что include_path тоже используется.

Специальное значение none отключает эту директиву.

Замечание: Если скрипт завершает работу при помощи exit(), auto-append НЕ выполняется.

default_mimetype string

По умолчанию PHP выводит название кодировки в заголовке Content-Type. Если передавать кодировку не требуется, просто оставьте эту опцию пустой.

"media type" по умолчанию установлен как "text/html".

default_charset string

В PHP 5.6 и новее "UTF-8" является значением по умолчанию и используется как кодировка по умолчанию для функций htmlentities(), html_entity_decode() и htmlspecialchars(), если параметр encoding не указан. Значение default_charset также используется для указания кодировки по умолчанию для функций iconv, если конфигурационные опции iconv.input_encoding, iconv.output_encoding и iconv.internal_encoding не установлены, и для функций mbstring, если не установлены mbstring.http_input mbstring.http_output mbstring.internal_encoding.

Все версии PHP используют это значение как кодировку для стандартного заголовка Content-Type, отправляемого PHP, если этот заголовок не переопределен вызовом функции header().

Не рекомендуется устанавливать default_charset в пустое значение.

input_encoding string

Доступна с PHP 5.6.0. Эта опция используется для многобайтных модулей, таких как mbstring и iconv. По умолчанию пусто.

output_encoding string

Доступна с PHP 5.6.0. Эта опция используется для многобайтных модулей, таких как mbstring и iconv. По умолчанию пусто.

internal_encoding string

Доступна с PHP 5.6.0. Эта опция используется для многобайтных модулей, таких как mbstring и iconv. По умолчанию пусто. В это случае используется default_charset.

always_populate_raw_post_data mixed
Внимание

Эта функциональность считается УСТАРЕВШЕЙ с PHP 5.6.0 и УДАЛЕНА в PHP 7.0.0.

Если установлена в TRUE, то PHP будет всегда компоновать $HTTP_RAW_POST_DATA сырыми POST данными. Иначе, переменная компонуется только если не распознан MIME-тип.

Рекомендуемым методом для доступа к сырым POST данным является php://input, и $HTTP_RAW_POST_DATA считается устаревшим с PHP 5.6.0. Установка always_populate_raw_post_data в значение -1 задает новое поведение, которое будет реализовано в будущих версиях PHP, когда $HTTP_RAW_POST_DATA больше не будет использоваться.

Согласно настройкам $HTTP_RAW_POST_DATA не доступен при enctype="multipart/form-data".

См. также: magic_quotes_gpc, magic_quotes_runtime и magic_quotes_sybase.

Пути и Директории

Конфигурационные Опции Путей и Директорий
Имя | По умолчанию | Место изменения | Список изменений
include_path | ".;/path/to/php/pear" | PHP_INI_ALL |
open_basedir | NULL | PHP_INI_ALL | PHP_INI_SYSTEM в PHP < 5.3.0
doc_root | NULL | PHP_INI_SYSTEM |
user_dir | NULL | PHP_INI_SYSTEM |
user_ini.cache_ttl | "300" | PHP_INI_SYSTEM | Доступно с PHP 5.3.0.
user_ini.filename | ".user.ini" | PHP_INI_SYSTEM | Доступно с PHP 5.3.0.
extension_dir | "/path/to/php" | PHP_INI_SYSTEM |
extension | NULL | Только php.ini |
zend_extension | NULL | Только php.ini |
zend_extension_debug | NULL | Только php.ini | Доступна до PHP 5.3.0.
zend_extension_debug_ts | NULL | Только php.ini | Доступна до PHP 5.3.0.
zend_extension_ts | NULL | Только php.ini | Доступна до PHP 5.3.0.
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM | Доступна с версии PHP 5.2.0.
cgi.discard_path | "0" | PHP_INI_SYSTEM | Доступна с версии PHP 5.3.0.
cgi.fix_pathinfo | "1" | PHP_INI_SYSTEM | PHP_INI_ALL до версии PHP 5.2.1.
cgi.force_redirect | "1" | PHP_INI_SYSTEM | PHP_INI_ALL до версии PHP 5.2.1.
cgi.nph | "0" | PHP_INI_SYSTEM | Доступна с версии PHP 5.3.0.
cgi.redirect_status_env | NULL | PHP_INI_SYSTEM | PHP_INI_ALL до версии PHP 5.2.1.
cgi.rfc2616_headers | "0" | PHP_INI_ALL |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM | PHP_INI_ALL до версии PHP 5.2.1.
fastcgi.logging | "1" | PHP_INI_SYSTEM | PHP_INI_ALL до версии PHP 5.2.1.

Краткое разъяснение конфигурационных директив.

include_path string

Указывает список директорий, в которых функции require, include, fopen(), file(), readfile() и file_get_contents() ищут файлы. Формат соответствует формату системной переменной окружения PATH: список директорий, разделенных двоеточием в Unix или точкой с запятой в Windows.

При поиске подключаемых файлов PHP отдельно рассматривает каждое значение в include_path. Он проверяет первый путь, если файл в нем не найден, то он переходит к следующему, и так до тех пор, пока не найдет подключаемый файл, либо вернет предупреждение или ошибку. Вы можете изменить ваш include_path во время выполнения скрипта с помощью функции set_include_path().

Пример #1 include_path в Unix

include_path=".:/php/includes"

Пример #2 include_path в Windows

include_path=".;c:\php\includes"

Использование . в include_path позволяет задавать относительные пути для подключения файлов, так как точка означает текущую директорию. Однако, более эффективно использовать include './file', чем заставлять PHP каждый раз проверять текущую директорию при подключении каждого файла.

Замечание:

Переменные окружения (ENV) также доступны в .ini файлах. Таким образом, можно ссылаться на домашнюю директорию с помощью директив ${LOGIN} и ${USER}.

Переменные окружения могут отличаться между различными серверными API, так как сами эти окружения отличаются друг от друга.

Пример #3 Настройка include_path с помощью переменной окружения ${USER} в Unix

include_path = ".:${USER}/pear/php"

open_basedir string

Ограничивает указанным деревом каталогов файлы, которые могут быть доступны для PHP, включая сам файл. Эта директива НЕ подвержена влиянию безопасного режима.

Когда скрипт пытается получить доступ к файлу, например, с помощью функции fopen() или gzopen(), проверяется местонахождение файла. Если файл находится вне указанного дерева каталогов, PHP откажется его открывать. Все символические ссылки будут раскрыты, так что с их помощью не удастся обойти это ограничение. Если файл не существует, то символическая ссылка не сможет быть прочитана и имя файла (прочитанное) будет рассматриваться open_basedir .

Опция open_basedir может распространяться не только на функции для работы с файловой системой; например, если MySQL настроен использовать драйвер mysqlnd, то LOAD DATA INFILE подпадает под опцию open_basedir . Множество функций PHP также использует open_basedir.

Специальное значение . обозначает, что рабочая директория скрипта будет использована в качестве базовой директории. Однако, это немного опасно, так как текущая директория скрипта может быть легко изменена с помощью chdir().

В httpd.conf, open_basedir может быть выключена (например, для некоторых виртуальных хостов) тем же способом, что и любая другая конфигурационная директива: "php_admin_value open_basedir none".

В Windows разделяйте директории точкой с запятой. На всех остальных системах, разделяйте директории двоеточием. При работе в качестве модуля Apache, пути open_basedir автоматически наследуются от родительских директорий.

Ограничение, определяемое open_basedir является именем директории начиная с версии PHP 5.2.16 и 5.3.4. Предыдущие версии использовали это значение в качестве префикса. Это означает, что "open_basedir = /dir/incl" также разрешит доступ к "/dir/include" и "/dir/incls", если они существуют. Если вы захотите ограничить доступ только указанной директорией, поставьте в конце слеш. Например: open_basedir = /dir/incl/

По умолчанию все файлы могут быть открыты.

Замечание:

Начиная с версии PHP 5.3.0 значение open_basedir можно сделать более строгим во время выполнения скрипта. Это означает, что если open_basedir была установлена в /www/ в php.ini, то скрипт может ужать конфигурацию до /www/tmp/ во время выполнения с помощью ini_set(). При указании нескольких директорий можно использовать константу PATH_SEPARATOR в качестве разделителя путей, не зависящего от операционной системы.

Замечание:

Использование опции open_basedir установит realpath_cache_size на значение 0 и таким образом отключит кеш realpath.

doc_root string

"Корневая директория" PHP на этом сервере. Используется только в случае, если не пустая. Если PHP сконфигурирован с безопасный режим, файлы вне этой директории не обрабатываются. Если PHP не был скомпилирован с FORCE_REDIRECT, вам следует установить doc_root, если вы используете PHP в качестве CGI под любым веб-сервером (кроме IIS). Альтернативой является использование конфигурационной директивы cgi.force_redirect, речь о которой идет ниже.

user_ini.cache_ttl integer

user_ini.filename string

user_dir string

Базовое имя директории, используемой в домашнем каталоге пользователя для PHP файлов, например, public_html.

extension_dir string

В какой директории PHP должен искать динамически загружаемые модули. Смотрите также: enable_dl и dl().

extension string

Какие динамически загружаемые модули должны быть загружены при старте PHP.

zend_extension string

Имя динамически загружаемого модуля Zend (например, APD), который должен быть загружен при старте PHP.

zend_extension_debug string

Вариант zend_extension для модулей, скомпилированных с отладочной информацией до PHP 5.3.0.

zend_extension_debug_ts string

Вариант zend_extension для потокобезопасных модулей, скомпилированных с отладочной информацией до PHP 5.3.0.

zend_extension_ts string

Вариант zend_extension для потокобезопасных модулей.

cgi.check_shebang_line boolean

Контролирует, нужно ли проверять первую строку CGI PHP-скрипта на содержание #! (shebang). Эта строка может быть необходима, если скрипт должен поддерживать как отдельный запуск, так и с помощью PHP CGI. PHP в режиме CGI пропускает эту строку и игнорирует ее содержимое, если данная директива включена.

cgi.discard_path boolean

Если разрешено, бинарный файл PHP CGI может безопасно располагаться вне web-дерева и люди не смогут обойти безопасность .htaccess.

cgi.fix_pathinfo boolean

Обеспечивает поддержку правильных PATH_INFO/PATH_TRANSLATED в CGI. Раньше PHP просто устанавливал PATH_TRANSLATED в SCRIPT_FILENAME и не обращал внимания на PATH_INFO. Для получения дополнительной информации о PATH_INFO, обратитесь к спецификации CGI. Установка этого значения в 1 заставит PHP CGI исправлять свой путь в соответствии со спецификацией. Значение 0 соответствует предыдущему поведению. По умолчанию опция включена. Вы должны исправить свои скрипты так, чтобы они использовали SCRIPT_FILENAME вместо PATH_TRANSLATED.

cgi.force_redirect boolean

Директива cgi.force_redirect необходима для обеспечения безопасности во время работы PHP в качестве CGI под большинством веб-серверов. Если оставить ее неопределенной, по умолчанию PHP включает эту директиву. Вы можете выключить ее на свой страх и риск.

Замечание:

Пользователям Windows: При использовании IIS эта опция должна быть отключена. Тоже самое необходимо для OmniHTTPD и Xitami.

cgi.nph boolean

Если cgi.nph разрешена, cgi будет принудительно возвращать код 200 на каждый запрос.

cgi.redirect_status_env string

Если cgi.force_redirect включена и вы работаете не под веб-сервером Apache или Netscape (iPlanet), вам может понадобиться установить переменную окружения, которую будет искать PHP чтобы убедиться, что он может продолжать выполнение.

Замечание:

Установка этой переменной может повлечь за собой проблемы с безопасностью, так что вы должны знать, что вы делаете.

cgi.rfc2616_headers int

Сообщает PHP, какой тип заголовков использовать при отправке кода ответа HTTP. Если установлено в 0, PHP отправляет » RFC 3875 заголовок "Status:", который поддерживается Apache и другими веб-серверами. Если установлено в 1, PHP отправляет заголовки, соответствующие » RFC 2616.

Если эта опция включена и вы используете PHP в окружении CGI (например, PHP-FPM), то вместо использования HTTP-заголовков ответа в стиле RFC 2616, нужно использовать их эквивалент из стандарта RFC 3875, например, вместо header("HTTP/1.0 404 Not found"); нужно использовать header("Status: 404 Not Found");

Оставьте в значении 0, если вы не уверены в том, что это значит.

fastcgi.impersonate string

FastCGI под IIS (в ОС на базе WINNT) поддерживает возможность имперсонации прав безопасности вызывающего клиента. Это позволяет IIS определить контекст безопасности, в котором выполняется запрос. mod_fastcgi под Apache на текущий момент не поддерживает эту возможность (03/17/2002). Установите в 1 при работе под IIS. Значение по умолчанию - ноль.

fastcgi.logging boolean

Включает логирование SAPI при использовании FastCGI. Логирование включено по умолчанию.

Закачивание Файлов

Конфигурационные Опции Закачивания Файлов
Имя | По умолчанию | Место изменения | Список изменений
file_uploads | "1" | PHP_INI_SYSTEM |
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
max_input_nesting_level | 64 | PHP_INI_PERDIR | Доступна с версии PHP 5.3.9.
max_input_vars | 1000 | PHP_INI_PERDIR | Доступна с версии PHP 5.3.9.
upload_max_filesize | "2M" | PHP_INI_PERDIR |
max_file_uploads | 20 | PHP_INI_SYSTEM | Доступна с версии PHP 5.2.12.

Краткое разъяснение конфигурационных директив.

file_uploads boolean

Разрешать или не разрешать закачивание файлов. См. также директивы upload_max_filesize, upload_tmp_dir и post_max_size.

upload_tmp_dir string

Временная директория, используемая для хранения файлов во время закачивания. Должна быть доступна для записи пользователю, от имени которого запущен PHP. Если не указана, используется директория по умолчанию для вашей системы.

Если к указанной директории нет прав на запись, PHP откатится обратно к системной временной директории, используемой по умолчанию. Если включена директива open_basedir, то для успешной загрузки файлов системная директория по умолчанию должна быть разрешена.

upload_max_filesize integer

Максимальный размер закачиваемого файла.

Если используется integer, значение измеряется байтами. Вы также можете использовать сокращенную запись, которая описана в этом разделе FAQ.
max_file_uploads integer

Максимально разрешенное количество одновременно закачиваемых файлов. Начиная с PHP 5.3.4, пустые поля загрузки не рассматриваются этим ограничением.

Общий SQL

Конфигурационные Опции Общего SQL
Имя | По умолчанию | Место изменения | Список изменений
sql.safe_mode | "0" | PHP_INI_SYSTEM | Удален в PHP 7.2.0

Краткое разъяснение конфигурационных директив.

sql.safe_mode boolean

Если включена, функции соединения с базой данных, использующие значения по умолчанию, будут использовать эти значения вместо любых передаваемых аргументов. Для значений по умолчанию смотрите документацию по функциям подключения соответствующей базы данных.

Внимание

Эта опция УДАЛЕНА в PHP 7.2.0.

Особые настройки для ОС Windows

Особые опции конфигурации для ОС Windows
Имя | По умолчанию | Место изменения | Список изменений
windows.show_crt_warning | "0" | PHP_INI_ALL | Доступна начиная с PHP 5.4.0.

Краткое разъяснение конфигурационных директив.

windows.show_crt_warning boolean

При включении данной директивы будут отображаться предупреждения Windows CRT. Данные предупреждения ранее показывались по умолчанию до версии PHP 5.4.0.


Список/классификация расширений

Содержание

  • В алфавитном порядке
  • По составу
  • По состоянию

Это приложение классифицирует по различным критериям более 150 расширений, документированных в руководстве по PHP.


В алфавитном порядке

  • Apache
  • APC
  • APCu
  • APD
  • Массивы
  • BBCode
  • BC Math
  • bcompiler
  • BLENC
  • BLENC
  • Bzip2
  • Cairo
  • Календарь
  • chdb
  • Classkit
  • Классы и объекты
  • COM
  • Crack
  • CSPRNG
  • Ctype
  • CUBRID
  • cURL
  • Cyrus
  • Дата/время
  • DBA
  • dBase
  • DB++
  • dbx
  • Прямой ввод/вывод (Direct IO)
  • Каталоги
  • DOM
  • Структуры данных
  • Eio
  • Enchant
  • Обработка ошибок
  • Ev
  • Event
  • Запуск программы
  • Exif
  • Expect
  • FAM
  • FANN
  • FANN
  • FrontBase
  • FDF
  • FileInfo
  • filePro
  • Файловая система
  • Filter
  • Менеджер процессов FastCGI
  • FriBiDi
  • FTP
  • Управление функциями
  • Gearman
  • Gender
  • GeoIP
  • Gettext
  • Gmagick
  • GMP
  • GnuPG
  • Gupnp
  • haru
  • Hash
  • HRTime
  • htscanner
  • Hyperwave API
  • Firebird/InterBase
  • IBM DB2
  • iconv
  • ID3
  • Informix
  • IIS
  • GD
  • ImageMagick
  • IMAP
  • inclued
  • Опции/информация PHP
  • Ingres
  • Inotify
  • intl
  • JSON
  • Judy
  • KADM5
  • KTaglib
  • Lapack
  • LDAP
  • Libevent
  • libxml
  • Lua
  • LZF
  • Mail
  • Mailparse
  • Math
  • MaxDB
  • Многобайтовые строки
  • Mcrypt
  • MCVE
  • Memcache
  • Memcached
  • Memtrack
  • Mhash
  • Mimetype
  • Ming
  • Misc.
  • mnoGoSearch
  • Mongo
  • MongoDB\BSON
  • MongoDB\Driver
  • mqseries
  • Msession
  • mSQL
  • Mssql
  • MySQL (Original)
  • MySQLi
  • Mysqlnd
  • mysqlnd_memcache
  • mysqlnd_ms
  • mysqlnd_mux
  • mysqlnd_qc
  • mysqlnd_uh
  • Ncurses
  • Gopher
  • Сеть
  • Newt
  • YP/NIS
  • NSAPI
  • OAuth
  • OCI8
  • oggvorbis
  • OPcache
  • OpenAL
  • OpenSSL
  • Контроль вывода
  • Paradox
  • Parle
  • Parsekit
  • Хеширование паролей
  • PCNTL
  • PCRE
  • PDF
  • PDO
  • 4D (PDO)
  • CUBRID (PDO)
  • MS SQL Server (PDO_DBLIB)
  • Firebird (PDO)
  • IBM (PDO)
  • Informix (PDO)
  • MySQL (PDO)
  • Oracle (PDO)
  • ODBC и DB2 (PDO)
  • PostgreSQL (PDO)
  • SQLite (PDO)
  • MS SQL Server (PDO)
  • PostgreSQL
  • Phar
  • Phdfs
  • POSIX
  • Proctitle
  • PS
  • Pspell
  • pthreads
  • Quickhash
  • Radius
  • Rar
  • Readline
  • Recode
  • Reflection
  • Регулярные выражения POSIX
  • Считыватель RPM
  • RRD
  • runkit
  • SAM
  • SCA
  • ScoutAPM
  • scream
  • SDO
  • SDO DAS XML
  • SDO-DAS-Relational
  • Seaslog
  • Семафоры
  • Сессии
  • Session PgSQL
  • Управление разделяемой памятью
  • SimpleXML
  • SNMP
  • SOAP
  • Сокеты
  • Sodium
  • Solr
  • Sphinx
  • SPL
  • Типы SPL
  • SQLite
  • SQLite3
  • SQLSRV
  • ssdeep
  • SSH2
  • Статистика
  • Stomp
  • Потоки
  • Строки
  • SVM
  • SVN
  • Swish
  • Swoole
  • Sybase
  • Sync
  • Taint
  • TCP
  • Tidy
  • Лексер (Tokenizer)
  • tokyo_tyrant
  • Trader
  • UI
  • ODBC
  • uopz
  • URL
  • V8js
  • Обработка переменных
  • Varnish
  • vpopmail
  • WDDX
  • Weakref
  • win32ps
  • win32service
  • WinCache
  • wkhtmltox
  • xattr
  • xdiff
  • Xhprof
  • Разбор XML
  • XMLDiff
  • XMLReader
  • XML-RPC
  • XMLWriter
  • XSL
  • Yaconf
  • Yaf
  • Yaml
  • Yar
  • YAZ
  • Zip
  • Zlib
  • Обмен сообщениями 0MQ
  • ZooKeeper


По составу

Расширения, входящие в состав ядра

На самом деле это ненастоящие расширения. Они являются частью ядра PHP и не могут быть исключены из бинарного дистрибутива PHP с помощью опций компиляции.

  • Массивы

  • Классы и объекты

  • CSPRNG

  • Дата/время

  • Каталоги

  • Обработка ошибок

  • Запуск программы

  • Файловая система

  • Filter

  • Управление функциями

  • Hash

  • Опции/информация PHP

  • Mail

  • Math

  • Misc.

  • Сеть

  • Контроль вывода

  • Хеширование паролей

  • Phar

  • Reflection

  • Регулярные выражения POSIX

  • Сессии

  • SPL

  • Потоки

  • Строки

  • Лексер (Tokenizer)

  • URL

  • Обработка переменных

Поставляемые расширения

Эти расширения поставляются вместе с PHP.

  • Apache

  • BC Math

  • Календарь

  • COM

  • Ctype

  • DBA

  • Exif

  • FileInfo

  • FTP

  • iconv

  • GD

  • intl

  • JSON

  • Многобайтовые строки

  • NSAPI

  • OPcache

  • PCNTL

  • PCRE

  • PDO

  • POSIX

  • Семафоры

  • Управление разделяемой памятью

  • Сокеты

  • SQLite3

  • XML-RPC

  • Zlib

Внешние расширения

Данные расширения поставляются вместе с PHP, но для их компиляции могут потребоваться внешние библиотеки.

  • Bzip2

  • cURL

  • dBase

  • DOM

  • Enchant

  • FrontBase

  • Gettext

  • GMP

  • Firebird/InterBase

  • Informix

  • IMAP

  • LDAP

  • libxml

  • Mcrypt

  • Mhash

  • mSQL

  • Mssql

  • MySQL (Original)

  • MySQLi

  • Mysqlnd

  • OCI8

  • OpenSSL

  • MS SQL Server (PDO_DBLIB)

  • Firebird (PDO)

  • MySQL (PDO)

  • Oracle (PDO)

  • ODBC и DB2 (PDO)

  • PostgreSQL (PDO)

  • SQLite (PDO)

  • PostgreSQL

  • Pspell

  • Readline

  • Recode

  • SimpleXML

  • SNMP

  • SOAP

  • Sodium

  • Sybase

  • Tidy

  • ODBC

  • WDDX

  • Разбор XML

  • XMLReader

  • XMLWriter

  • XSL

  • Zip

PECL расширения

Эти расширения доступны в » PECL. Им могут потребоваться внешние библиотеки. Существуют и другие PECL расширения, но они пока не документированы в этом руководстве.

  • APC

  • APD

  • BBCode

  • bcompiler

  • Cairo

  • chdb

  • Classkit

  • Crack

  • CUBRID

  • Cyrus

  • DB++

  • dbx

  • Прямой ввод/вывод (Direct IO)

  • Eio

  • Ev

  • Event

  • Expect

  • FAM

  • FDF

  • filePro

  • FriBiDi

  • Gearman

  • Gender

  • GeoIP

  • Gmagick

  • GnuPG

  • Gupnp

  • haru

  • htscanner

  • Hyperwave API

  • IBM DB2

  • ID3

  • IIS

  • ImageMagick

  • inclued

  • Ingres

  • Inotify

  • Judy

  • KADM5

  • KTaglib

  • Lapack

  • Libevent

  • Lua

  • LuaSandbox

  • LZF

  • Mailparse

  • MaxDB

  • MCVE

  • Memcache

  • Memcached

  • Memtrack

  • Mimetype

  • Ming

  • mnoGoSearch

  • Mongo

  • mqseries

  • Msession

  • mysqlnd_memcache

  • mysqlnd_ms

  • mysqlnd_mux

  • mysqlnd_qc

  • mysqlnd_uh

  • Ncurses

  • Gopher

  • Newt

  • YP/NIS

  • OAuth

  • oggvorbis

  • OpenAL

  • Paradox

  • Parsekit

  • PDF

  • 4D (PDO)

  • CUBRID (PDO)

  • IBM (PDO)

  • Informix (PDO)

  • MS SQL Server (PDO)

  • Proctitle

  • PS

  • pthreads

  • Quickhash

  • Radius

  • Rar

  • Считыватель RPM

  • RRD

  • runkit

  • SAM

  • SCA

  • ScoutAPM

  • scream

  • SDO

  • SDO DAS XML

  • SDO-DAS-Relational

  • Seaslog

  • Session PgSQL

  • Solr

  • Sphinx

  • Типы SPL

  • SQLite

  • SQLSRV

  • ssdeep

  • SSH2

  • Статистика

  • Stomp

  • Swoole

  • SVM

  • SVN

  • Swish

  • Taint

  • TCP

  • tokyo_tyrant

  • Trader

  • V8js

  • Varnish

  • vpopmail

  • Weakref

  • win32ps

  • win32service

  • WinCache

  • xattr

  • xdiff

  • Xhprof

  • Yaf

  • Yaml

  • YAZ

  • ZooKeeper


По состоянию

Здесь приводится список расширений, не рекомендованных для промышленного использования - они либо слишком "старые" (устарели), либо слишком "новые" (экспериментальные).

Устаревшие расширения

Эти расширения устарели и в основном заменены другими.

  • Memtrack

  • Mimetype

Экспериментальные расширения

Поведение этих расширений - включая названия функций и вся остальная документация, относящаяся к ним - может измениться без уведомления в будущем релизе PHP. Используйте эти расширения на свой страх и риск.

  • bcompiler

  • DB++

  • haru

  • Hash

  • ImageMagick

  • Ming

  • Ncurses

  • Newt

  • Paradox

  • MS SQL Server (PDO_DBLIB)

  • Firebird (PDO)

  • Oracle (PDO)

  • PS

  • SCA

  • SDO-DAS-Relational

  • Swish

  • vpopmail

  • XML-RPC


Список псевдонимов функций

В PHP довольно много функций, доступных сразу по нескольким именам. В некоторых случаях нет предпочитаемого варианта, хорошим примером является is_int() и is_integer(). Однако, есть функции, изменившие свои названия вследствие чистки API или по какой-либо другой причине, а старые имена были оставлены в целях обратной совместимости. Обычно не рекомендуется использовать эти псевдонимы, так как причиной их существования может быть устаревание или смена имени основной функции, что может привести к проблемам портирования скрипта. Данный список предоставляется для помощи при обновлении старых скриптов к новому синтаксису.

Псевдонимы
Псевдоним | Основная функция | Модуль
_ | gettext() | Gettext
add | swfmovie_add() | Ming (flash)
add | swfsprite_add() | Ming (flash)
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)
chop | rtrim() | Базовый синтаксис
close | closedir() | Базовый синтаксис
com_get | com_propget() | COM
com_propset | com_propput() | COM
com_set | com_propput() | COM
die | exit() | Неклассифицированные функции
diskfreespace | disk_free_space() | Файловая система
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)
fbsql | fbsql_db_query() | FrontBase
fputs | fwrite() | Базовый синтаксис
getascent | swffont_getAscent() | Ming (flash)
getascent | swftext_getAscent() | Ming (flash)
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() | Базовый синтаксис
key_exists | array_key_exists() | Базовый синтаксис
labelframe | swfmovie_labelFrame() | Ming (flash)
labelframe | swfsprite_labelFrame() | Ming (flash)
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
nextframe | swfmovie_nextFrame() | Ming (flash)
nextframe | swfsprite_nextFrame() | Ming (flash)
ociassignelem | OCI-Collection::assignElem | OCI8
ocibindbyname | oci_bind_by_name() | OCI8
ocicancel | oci_cancel() | OCI8
ocicloselob | OCI-Lob::close | OCI8
ocicollappend | OCI-Collection::append | OCI8
ocicollassign | OCI-Collection::assign | OCI8
ocicollmax | OCI-Collection::max | OCI8
ocicollsize | OCI-Collection::size | OCI8
ocicolltrim | OCI-Collection::trim | OCI8
ocicolumnisnull | oci_field_is_null() | OCI8
ocicolumnname | oci_field_name() | OCI8
ocicolumnprecision | oci_field_precision() | OCI8
ocicolumnscale | oci_field_scale() | OCI8
ocicolumnsize | oci_field_size() | OCI8
ocicolumntype | oci_field_type() | OCI8
ocicolumntyperaw | oci_field_type_raw() | OCI8
ocicommit | oci_commit() | OCI8
ocidefinebyname | oci_define_by_name() | OCI8
ocierror | oci_error() | OCI8
ociexecute | oci_execute() | OCI8
ocifetch | oci_fetch() | OCI8
ocifetchinto | oci_fetch_array(), oci_fetch_row(), oci_fetch_assoc(), oci_fetch_object() | OCI8
ocifetchstatement | oci_fetch_all() | OCI8
ocifreecollection | OCI-Collection::free | OCI8
ocifreecursor | oci_free_statement() | OCI8
ocifreedesc | oci_free_descriptor() | OCI8
ocifreestatement | oci_free_statement() | OCI8
ocigetelem | OCI-Collection::getElem | OCI8
ociinternaldebug | oci_internal_debug() | OCI8
ociloadlob | OCI-Lob::load | OCI8
ocilogon | oci_connect() | OCI8
ocinewcollection | oci_new_collection() | OCI8
ocinewcursor | oci_new_cursor() | OCI8
ocinewdescriptor | oci_new_descriptor() | OCI8
ocinlogon | oci_new_connect() | OCI8
ocinumcols | oci_num_fields() | OCI8
ociparse | oci_parse() | OCI8
ocipasswordchange | oci_password_change() | OCI8
ociplogon | oci_pconnect() | OCI8
ociresult | oci_result() | OCI8
ocirollback | oci_rollback() | OCI8
ocisavelob | OCI-Lob::save | OCI8
ocisavelobfile | OCI-Lob::import | OCI8
ociserverversion | oci_server_version() | OCI8
ocisetprefetch | oci_set_prefetch() | OCI8
ocistatementtype | oci_statement_type() | OCI8
ociwritelobtofile | OCI-Lob::export | OCI8
ociwritetemporarylob | OCI-Lob::writeTemporary | OCI8
odbc_do | odbc_exec() | ODBC
odbc_field_precision | odbc_field_len() | ODBC
output | swfmovie_output() | Ming (flash)
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)
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)
setaction | swfbutton_setAction() | Ming (flash)
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)
xptr_new_context | xpath_new_context() |


Список зарезервированных слов

Содержание

  • Список ключевых слов
  • Предопределенные классы
  • Предопределенные константы
  • Список прочих зарезервированных слов

Ниже приводится списки зарезервированных идентификаторов в PHP. Никакой идентификатор из этих списков не должен быть использован в качестве идентификатора в любом из ваших скриптов, если явно не указано обратное. Эти списки включают ключевые слова и предопределенные переменные, константы и имена классов. Эти списки не являются ни исчерпывающими, ни полными.


Список ключевых слов

У этих слов есть специальное значение в PHP. Некоторые из них представляют собой вещи, которые выглядят как функции, некоторые похожи на константы и так далее, но они ими не являются в действительности. Они - конструкции языка. Вы не можете использовать следующие слова как константы, имена классов, функции или имена методов. Использование их как имен переменных в общем допускается, однако может привести к путанице.

С PHP 7.0.0 эти ключевые слова доступны как имена свойств, констант и методов классов, интерфейсов и трейтов, за исключением того, что class не может использоваться как имя константы.

Зарезервированные слова в PHP
__halt_compiler() | abstract | and | array() | as
break | callable (с PHP 5.4) | case | catch | class
clone | const | continue | declare | default
die() | do | echo | else | elseif
empty() | enddeclare | endfor | endforeach | endif
endswitch | endwhile | eval() | exit() | extends
final | finally (с PHP 5.5) | for | foreach | function
global | goto (с PHP 5.3) | if | implements | include | include_once
instanceof | insteadof (с PHP 5.4) | interface | isset() | list()
namespace (с PHP 5.3) | new | or | print
private | protected | public | require | require_once | return
static | switch | throw | trait (с PHP 5.4)
try | unset() | use | var | while
xor | yield (с PHP 5.5) | yield from (начиная с PHP 7.0) |  |
Константы этапа компиляции
__CLASS__ | __DIR__ (с PHP 5.3) | __FILE__ | __FUNCTION__ | __LINE__ | __METHOD__
__NAMESPACE__ (с PHP 5.3) | __TRAIT__ (с PHP 5.4) |  |  |  |


Предопределенные классы

В этом разделе перечисляются стандартные предопределенные классы. Разнообразные расширения определяют другие классы, которые описаны в соответствующей справочной информации.

Стандартные определенные классы

Эти классы определены вместе со стандартным набором функций, идущим со сборкой PHP.

Directory
Создается функцией dir().
stdClass
Создается приведением типа к объекту.
__PHP_Incomplete_Class
Возможно, создается функцией unserialize().

Предопределенные классы PHP 5

Эти дополнительные предопределенные классы были введены в PHP 5.0.0

Exception
ErrorException
Доступно с PHP 5.1.0.
php_user_filter

Closure

Предопределенный окончательный класс Closure был введен в PHP 5.3.0. Он используется для внутренней реализации анонимных функций.

Для более детальной информации смотрите страницу класса.

Generator

Предопределенный окончательный класс Generator был добавлен в PHP 5.5.0. Он используется для представления генераторов.

Подробности смотрите на странице класса.

Предопределенные интерфейсы и классы в PHP 7

Эти дополнительные предопределенные интерфейсы и классы были добавлены в PHP 7.0.0.

ArithmeticError
AssertionError
DivisionByZeroError
Error
Throwable
ParseError
TypeError

Специальные классы

Следующие идентификаторы не могут использоваться в качестве имени класса, так как у них есть специальное назначение.

self
Текущий класс.
static
Текущий класс во время выполнения.
parent
Родительский класс.


Предопределенные константы

Объявленные в ядре константы

Эти константы объявляются ядром PHP и охватывают PHP, Zend engine и SAPI-модули.

PHP_VERSION (string)
Текущая версия PHP в виде строки в формате "major.minor.release[extra]".
PHP_MAJOR_VERSION (integer)
Текущая "основная" (major) версия PHP в виде целого числа (например, int(5) для версии "5.2.7-extra"). Доступно с PHP 5.2.7.
PHP_MINOR_VERSION (integer)
Текущая "промежуточная" (minor) версия PHP в виде целого числа (например, int(2) для версии "5.2.7-extra"). Доступно с PHP 5.2.7.
PHP_RELEASE_VERSION (integer)
Текущая "релиз"-версия (release) PHP в виде целого числа (например, int(7) для версии "5.2.7-extra"). Доступно с PHP 5.2.7.
PHP_VERSION_ID (integer)
Текущая версия PHP в виде целого числа, её удобно использовать при сравнениях версий (например, int(50207) для версии "5.2.7-extra"). Доступно с PHP 5.2.7.
PHP_EXTRA_VERSION (string)
Текущая "экстра"-версия PHP в виде строки (например, '-extra' для версии "5.2.7-extra"). Обычно используется в различных дистрибутивах для индикации версий пакетов. Доступно с PHP 5.2.7.
PHP_ZTS (integer)
Доступно с PHP 5.2.7.
PHP_DEBUG (integer)
Доступно с PHP 5.2.7.
PHP_MAXPATHLEN (integer)
Максимальная длина файловых имен (включая путь), поддерживаемая данной сборкой PHP. Доступно с PHP 5.3.0.
PHP_OS (string)
Операционная система, под которую собирался PHP.
PHP_OS_FAMILY (string)
Семейство операционных систем, для которых собран PHP. Любая из 'Windows', 'BSD', 'Darwin', 'Solaris', 'Linux' или 'unknown'. Доступно с PHP 7.2.0.
PHP_SAPI (string)
API сервера (Server API) данной сборки PHP. Смотрите также php_sapi_name().
PHP_EOL (string)
Корректный символ конца строки, используемый на данной платформе. Доступно с PHP 5.0.2
PHP_INT_MAX (integer)
Максимальное целое число, поддерживаемое данной сборкой PHP. Обычно это int(2147483647) в 32-битных системах и int(9223372036854775807) в 64-битных. Доступно с PHP 5.0.5 Обычно, PHP_INT_MIN === ~PHP_INT_MAX.
PHP_INT_MIN (integer)
Минимальное целое число, поддерживаемое данной сборкой PHP. Обычно это int(-2147483648) в 32-битных системах и int(-9223372036854775808) в 64-битных. Доступно с PHP 7.0.0
PHP_INT_SIZE (integer)
Размер целого числа в байтах в текущей сборке PHP. Доступно с PHP 5.0.5
PHP_FLOAT_DIG (integer)
Количество десятичных цифр, которые могут быть округлены в float и обратно без потери точности. Доступно с PHP 7.2.0.
PHP_FLOAT_EPSILON (float)
Наименьшее положительное число x, такое, что x + 1.0 != 1.0. Доступно с PHP 7.2.0.
PHP_FLOAT_MIN (float)
Наименьшее возможное положительное число типа float. Если вам нужно наименьшее возможное отрицательное число типа float, используйте - PHP_FLOAT_MAX. Доступно с PHP 7.2.0.
PHP_FLOAT_MAX (float)
Максимальное возможное число типа float. Доступно с PHP 7.2.0.
DEFAULT_INCLUDE_PATH (string)
PEAR_INSTALL_DIR (string)
PEAR_EXTENSION_DIR (string)
PHP_EXTENSION_DIR (string)
PHP_PREFIX (string)
Значение опции "--prefix", указанной при запуске configure.
PHP_BINDIR (string)
Указывает путь установки бинарных файлов.
PHP_BINARY (string)
Указывает путь к исполняемым файлам PHP во время выполнения скрипта. Доступно с PHP 5.4.
PHP_MANDIR (string)
Указывает путь установки страниц документации man. Доступно с PHP 5.3.7.
PHP_LIBDIR (string)
PHP_DATADIR (string)
PHP_SYSCONFDIR (string)
PHP_LOCALSTATEDIR (string)
PHP_CONFIG_FILE_PATH (string)
PHP_CONFIG_FILE_SCAN_DIR (string)
PHP_SHLIB_SUFFIX (string)
Суффикс, используемый для динамически линкуемых библиотек, таких как "so" (для большинства Unix-систем) или "dll" (Windows).
PHP_FD_SETSIZE (string)
Максимальное количество файловых дескрипторов для системных вызовов. Доступно с PHP 7.1.0.
E_ERROR (integer)
Константа, указывающая уровень сообщений об ошибках
E_WARNING (integer)
Константа сообщения об ошибке
E_PARSE (integer)
Константа сообщения об ошибке
E_NOTICE (integer)
Константа сообщения об ошибке
E_CORE_ERROR (integer)
Константа сообщения об ошибке
E_CORE_WARNING (integer)
Константа сообщения об ошибке
E_COMPILE_ERROR (integer)
Константа сообщения об ошибке
E_COMPILE_WARNING (integer)
Константа сообщения об ошибке
E_USER_ERROR (integer)
Константа сообщения об ошибке
E_USER_WARNING (integer)
Константа сообщения об ошибке
E_USER_NOTICE (integer)
Константа сообщения об ошибке
E_RECOVERABLE_ERROR (integer)
Константа сообщения об ошибке Доступно с PHP 5.2.0
E_DEPRECATED (integer)
Константа сообщения об ошибке Доступно с PHP 5.3.0
E_USER_DEPRECATED (integer)
Константа сообщения об ошибке Доступно с PHP 5.3.0
E_ALL (integer)
Константа сообщения об ошибке
E_STRICT (integer)
Константа сообщения об ошибке
__COMPILER_HALT_OFFSET__ (integer)
Доступно с PHP 5.1.0
TRUE (boolean)
Смотрите раздел Булев тип.
FALSE (boolean)
Смотрите раздел Булев тип.
NULL (null)
Смотрите Null.
PHP_WINDOWS_EVENT_CTRL_C (integer)
Событие Windows CTRL+C. Доступно с PHP 7.4.0 (Только для Windows).
PHP_WINDOWS_EVENT_CTRL_BREAK (integer)
Событие Windows CTRL+BREAK. Доступно с PHP 7.4.0 (Только для Windows).

Смотрите также: Магические константы.

Стандартные предопределенные константы

Все константы, входящие в состав ядра расширений, теперь определены в PHP по умолчанию.


Список прочих зарезервированных слов

Следующие слова нельзя использовать в именах классов, интерфейсов и трейтов. Также их запрещено использовать в именовании пространств имен.

Зарезервированные слова
int (с PHP 7) | float (с PHP 7) | bool (с PHP 7) | string (с PHP 7)
true (с PHP 7) | false (с PHP 7) | null (с PHP 7) | void (с PHP 7.1)
iterable (с PHP 7.1) | object (с PHP 7.2)

Следующий список содержит мягко зарезервированные слова. Они все еще могут использоваться в качестве имен классов, интерфейсов и трейтов (а также в пространствах имен), но использовать их крайне не рекомендуется, поскольку они могут стать полноценно зарезервированными в будущем.

Мягко зарезервированные слова
resource (с PHP 7) mixed (с PHP 7) numeric (с PHP 7)


Список типов ресурсов

Здесь представлен список функций, которые могут создавать, использовать или уничтожать ресурсы PHP. Для определения того, является ли переменная ресурсом можно использовать функцию is_resource(), а функция get_resource_type() поможет получить тип данного ресурса.

Типы ресурсов
Название ресурса | Создается функцией | Используется функцией | Уничтожается функцией | Определение
bzip2 | bzopen() | bzerrno(), bzerror(), bzerrstr(), bzflush(), bzread(), bzwrite() | bzclose() | Файл Bzip2
cubrid connection | cubrid_connect() cubrid_connect_with_url() | cubrid_col_get() cubrid_col_size() cubrid_commit() cubrid_drop() cubrid_execute() cubrid_get_autocommit() cubrid_get_charset() cubrid_get_class_name() cubrid_get_db_parameter() cubrid_get_server_info() cubrid_get() cubrid_insert_id() cubrid_is_instance() cubrid_lob_export() cubrid_lob_get() cubrid_lob_send() cubrid_lock_read() cubrid_lock_write() cubrid_prepare() cubrid_put() cubrid_rollback() cubrid_schema() cubrid_seq_drop() cubrid_seq_insert() cubrid_seq_put() cubrid_set_add() cubrid_set_autocommit() cubrid_set_db_parameter() cubrid_set_drop() cubrid_affected_rows() cubrid_client_encoding() cubrid_errno() cubrid_error() cubrid_list_dbs() cubrid_ping() cubrid_query() cubrid_real_escape_string() | cubrid_close() cubrid_disconnect() | Соединение с базой данных CUBRID
persistent cubrid connection | cubrid_pconnect() cubrid_pconnect_with_url() | cubrid_col_get() cubrid_col_size() cubrid_commit() cubrid_drop() cubrid_execute() cubrid_get_autocommit() cubrid_get_charset() cubrid_get_class_name() cubrid_get_db_parameter() cubrid_get_server_info() cubrid_get() cubrid_insert_id() cubrid_is_instance() cubrid_lob_export() cubrid_lob_get() cubrid_lob_send() cubrid_lock_read() cubrid_lock_write() cubrid_prepare() cubrid_put() cubrid_rollback() cubrid_schema() cubrid_seq_drop() cubrid_seq_insert() cubrid_seq_put() cubrid_set_add() cubrid_set_autocommit() cubrid_set_db_parameter() cubrid_set_drop() cubrid_affected_rows() cubrid_client_encoding() cubrid_errno() cubrid_error() cubrid_list_dbs() cubrid_ping() cubrid_query() cubrid_real_escape_string() cubrid_lob2_new() | Постоянное соединение с базой данных CUBRID
cubrid request | cubrid_prepare() cubrid_execute() cubrid_query() cubrid_unbuffered_query() | cubrid_bind() cubrid_column_names() cubrid_column_types() cubrid_current_oid() cubrid_execute() cubrid_free_result() cubrid_get_query_timeout() cubrid_move_cursor() cubrid_next_result() cubrid_num_cols() cubrid_num_rows() cubrid_set_query_timeout() cubrid_data_seek() cubrid_fetch_array() cubrid_fetch_assoc() cubrid_fetch_field() cubrid_fetch_lengths() cubrid_fetch_object() cubrid_fetch_row() cubrid_field_flags() cubrid_field_len() cubrid_field_name() cubrid_field_seek() cubrid_field_table() cubrid_field_type() cubrid_num_fields() cubrid_result() cubrid_lob2_bind() | cubrid_close_prepare() cubrid_close_request() | Запрос CUBRID
cubrid lob | cubrid_lob_get() | cubrid_lob_export() cubrid_lob_send() cubrid_lob_size() | cubrid_lob_close() | Отсутствует
cubrid lob2 | cubrid_lob2_new() cubrid_fetch() cubrid_fetch_row() cubrid_fetch_array() cubrid_fetch_assoc() cubrid_fetch_object() | cubrid_lob2_export() cubrid_lob2_import() cubrid_lob2_read() cubrid_lob2_write() cubrid_lob2_tell() cubrid_lob2_tell64() cubrid_lob2_seek() cubrid_lob2_seek64() cubrid_lob2_size() cubrid_lob2_size64() | cubrid_lob2_close() | Отсутствует
curl | curl_copy_handle(), curl_init() | curl_copy_handle(), curl_errno(), curl_error(), curl_exec(), curl_getinfo(), curl_setopt() | curl_close() | Сессия Curl
dba | dba_open() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | dba_close() | Соединение с базой данных DBA
dba persistent | dba_popen() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | Отсутствует | Постоянное соединение с базой данных DBA
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() | Соединение с базой данных Dbase
dbx_link_object | dbx_connect() | dbx_query() | dbx_close() | dbx connection
dbx_result_object | dbx_query() | Отсутствует | dbx result
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() | Соединение с базой данных fbsql
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() | Отсутствует | Постоянное соединение с базой данных fbsql
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
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
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
gd font | imageloadfont() | imagechar(), imagecharup(), imagefontheight() | Отсутствует | Шрифт для библиотеки GD
gd PS encoding
gd PS font | imagepsloadfont() | imagepstext(), imagepsslantfont(), imagepsextendfont(), imagepsencodefont(), imagepsbbox() | imagepsfreefont() | Шрифт PS для библиотеки 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() | Отсутствует | Число GMP
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() | Соединение с сервером IMAP и POP3
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() | Соединение с базой данных ingresII
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() | Отсутствует | Постоянное соединение с базой данных ingresII
interbase blob
interbase link | ibase_connect() | ibase_query(), ibase_prepare(), ibase_trans() | ibase_close() | Соединение с базой данных Interbase
interbase link persistent | ibase_pconnect() | ibase_query(), ibase_prepare(), ibase_trans() | Отсутствует | Постоянное соединение с базой данных Interbase
interbase query | ibase_prepare() | ibase_execute() | ibase_free_query() | Запрос Interbase
interbase result | ibase_query() | ibase_fetch_row(), ibase_fetch_object(), ibase_field_info(), ibase_num_fields() | ibase_free_result() | Результат запроса Interbase
interbase transaction | ibase_trans() | ibase_commit() | ibase_rollback() | Транзакция Interbase
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
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
ldap result entry
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() | Соединение с базой данных mSQL
msql link persistent | msql_pconnect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | Отсутствует | Постоянное соединение с базой данных 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
mssql link | mssql_connect() | mssql_query(), mssql_select_db() | mssql_close() | Соединение с базой данных Microsoft SQL Server
mssql link persistent | mssql_pconnect() | mssql_query(), mssql_select_db() | Отсутствует | Постоянное соединение с базой данных 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
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() | Соединение с базой данных MySQL
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() | Отсутствует | Постоянное соединение с базой данных MySQL
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
oci8 collection | oci_new_collection() | OCI-Collection::append(), OCI-Collection::assign(), OCI-Collection::assignElem(), OCI-Collection::getElem(), OCI-Collection::max(), OCI-Collection::size(), OCI-Collection::trim() | OCI-Collection::free() | Коллекция Oracle
oci8 connection | oci_connect(), oci_pconnect(), oci_new_connect() | oci_commit(), oci_error(), oci_new_cursor(), oci_parse(), oci_password_change(), oci_rollback(), oci_server_version(), oci_set_action(), oci_set_client_identifier(), oci_set_client_info(), oci_set_module_name() | oci_close() | Соединение с базой данных Oracle
oci8 lob | oci_new_descriptor() | OCI-Lob::append(), OCI-Lob::close(), OCI-Lob::eof(), OCI-Lob::erase(), OCI-Lob::export(), OCI-Lob::flush(), OCI-Lob::getBuffering(), OCI-Lob::import(), OCI-Lob::load(), OCI-Lob::read(), OCI-Lob::rewind(), OCI-Lob::save(), OCI-Lob::saveFile(), OCI-Lob::seek(), OCI-Lob::setBuffering(), OCI-Lob::size(), OCI-Lob::tell(), OCI-Lob::truncate(), OCI-Lob::write(), OCI-Lob::writeTemporary(), OCI-Lob::writeToFile(), oci_lob_copy(), oci_lob_is_equal() | OCI-Lob::free() | Большие объекты Oracle
oci8 выражения | oci_parse(), oci_new_cursor() | oci_bind_array_by_name(), oci_bind_by_name(), oci_cancel(), oci_define_by_name(), oci_error() oci_execute(), oci_fetch_all(), oci_fetch_array(), oci_fetch_assoc(), oci_fetch_object(), oci_fetch_row(), oci_fetch(), oci_field_is_null(), oci_field_name(), oci_field_precision(), oci_field_scale(), oci_field_size(), oci_field_type_raw(), oci_field_type(), oci_num_fields(), oci_num_rows(), oci_result(), oci_set_prefetch(), oci_statement_type() | oci_free_statement() | Курсор Oracle
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() | Соединение с базой данных ODBC
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() | Отсутствует | Постоянное соединение с базой данных ODBC
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
birdstep link
birdstep result
Ключ OpenSSL | openssl_get_privatekey(), openssl_get_publickey() | openssl_sign(), openssl_seal(), openssl_open(), openssl_verify() | openssl_free_key() | Ключ OpenSSL
OpenSSL X.509 | openssl_x509_read() | openssl_x509_parse(), openssl_x509_checkpurpose() | openssl_x509_free() | Публичный ключ
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
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() | Изображение в PDF-файле
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() | Соединение с базой данных PostgreSQL
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() | Отсутствует | Постоянное соединение с базой данных PostgreSQL
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
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() | Отсутствует | Словарь pspell
pspell config | pspell_config_create() | pspell_new_config() | Отсутствует | Конфигурация pspell
shmop | shmop_open() | shmop_read(), shmop_write(), shmop_size(), shmop_delete() | shmop_close() | Управление блоком рязделяемой памяти (С версии PHP 7.0.0)
sockets file descriptor set | socket() | accept_connect(), bind(), connect(), listen(), read(), write() | close() | Сокет
sockets i/o vector
stream | opendir() | readdir(), rewinddir() | closedir() | Дескриптор директории
stream | fopen(), tmpfile() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), flock(), fpassthru(), fputs(), fwrite(), fread(), fseek(), ftell(), fstat(), ftruncate(), set_file_buffer(), rewind() | fclose() | Дескриптор файла
stream | popen(), fsockopen(), pfsockopen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | pclose() | Дескриптор процесса
socket | fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | fclose() | Дескриптор сокета
sybase-db link | sybase_connect() | sybase_query(), sybase_select_db() | sybase_close() | Соединение с базой данных Sybase при помощи библиотеки DB
sybase-db link persistent | sybase_pconnect() | sybase_query(), sybase_select_db() | Отсутствует | Постоянное соединение с базой данных Sybase при помощи библиотеки DB
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 с помощью библиотеки DB
sybase-ct link | sybase_connect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | sybase_close() | Соединение с базой данных Sybase с помощью библиотеки CT
sybase-ct link persistent | sybase_pconnect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | Отсутствует | Постоянное соединение с базой данных Sybase с помощью библиотеки CT
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 с помощью библиотеки CT
sysvsem | sem_get() | sem_acquire() | sem_release() | Семафор System V
sysvshm | shm_attach() | shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() | shm_detach() | Разделяемая память System V
wddx | wddx_packet_start() | wddx_add_vars() | wddx_packet_end() | Пакет WDDX
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-парсер
zlib | gzopen() | gzeof(), gzgetc(), gzgets(), gzgetss(), gzpassthru(), gzputs(), gzread(), gzrewind(), gzseek(), gztell(), gzwrite() | gzclose() | Файл, сжатый алгоритмом gz
zlib.deflate | deflate_init() | deflate_add() | None() | Контекст для инкрементальной компрессии по RFC 1951
zlib.inflate | inflate_init() | inflate_add() | None() | Контекст для инкрементальной декомпрессии по RFC 1951


Список доступных фильтров

Содержание

  • Строковые фильтры
  • Преобразовывающие фильтры
  • Компрессионные фильтры
  • Шифрующие фильтры

Следующий список перечисляет несколько встроенных фильтров для использования с stream_filter_append(). Ваша версия PHP может включать больше (или меньше) фильтров, чем перечислено здесь.

Следует акцентировать внимание на определенной асимметричности функций stream_filter_append() и stream_filter_prepend(). Каждый поток в PHP имеет небольшой буфер чтения, в котором он хранит блоки данных, полученные из файловой системы или другого ресурса, для того чтобы обрабатывать данные наиболее эффективным образом. Как только данные переносятся из ресурса во внутренний буфер потока, они сразу же обрабатываются закрепленными за потоком фильтрами, независимо от того, готово ли приложение PHP принимать данные или нет. Если данные находятся в буфере чтения в момент, когда в фильтр что-то дописывают в конец, данные будут немедленно обработаны этим фильтром, таким образом их нахождение в буфере будет прозрачным. В то же время, если данные находятся в буфере в момент, когда в фильтр что-то дописывают в начало, данные НЕ будут обработаны этим фильтром. Вместо этого, они будут ждать момента, когда следующий блок данных будет получен из ресурса.

Для получения списка фильтров, установленных в вашу версию PHP, используйте функцию stream_get_filters().


Строковые фильтры

Все эти фильтры служат для того самого, что подразумевают их имена в соответствии с поведением встроенных в PHP функций для работы со строками. Для получения дополнительной информации о конкретном фильтре, обратитесь к странице руководства соответствующей функции.

string.rot13

Использование этого фильтра эквивалентно обработке всех данных потока функцией str_rot13().

Пример #1 string.rot13

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.rot13');
fwrite($fp, "This is a test.\n");
/* Выведет:  Guvf vf n grfg.   */
?>

string.toupper

Использование этого фильтра эквивалентно обработке всех данных потока функцией strtoupper().

Пример #2 string.toupper

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.toupper');
fwrite($fp, "This is a test.\n");
/* Выведет:  THIS IS A TEST.   */
?>

string.tolower

Использование этого фильтра эквивалентно обработке всех данных потока функцией strtolower().

Пример #3 string.tolower

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.tolower');
fwrite($fp, "This is a test.\n");
/* Выведет:  this is a test.   */
?>

string.strip_tags

Использование этого фильтра эквивалентно обработке всех данных потока функцией strip_tags(). Он принимает аргументы в одной из двух форм: Либо в виде строки со списком тегов, как и второй аргумент функции strip_tags(), либо массив названий тегов.

Внимание

Данный функционал объявлен УСТАРЕВШИМ, начиная с PHP 7.3.0 и его использование крайне не рекомендовано.

Пример #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);
/* Выведет:  <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);
/* Выведет:  <b>bolded text</b> enlarged to a level 1 heading   */
?>


Преобразовывающие фильтры

Как и фильтры string.*, фильтры convert.* совершают действия, соответствующие их именам. Для получения дополнительной информации о конкретном фильтре, обратитесь к странице руководства соответствующей функции.

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().

Пример #1 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);
/* Выведет:  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);
/* Выведет:  VGhpcyBp
          :  cyBhIHRl
          :  c3QuCg==  */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "VGhpcyBpcyBhIHRlc3QuCg==");
fclose($fp);
/* Выведет:  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 в качестве подсказки для чистки закодированных данных.

Пример #2 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");
/* Выведет:  =This is a test.=0A  */
?>

convert.iconv.*

Фильтры convert.iconv.* доступны в том случае, если включена поддержка iconv и их использование аналогично обработке потоковых данных с помощью iconv(). Эти фильтры не поддерживают параметров. Вместо этого ожидается, что исходная и целевая кодировки были заданы в имени фильтра таким образом: convert.iconv.<input-encoding>.<output-encoding> или convert.iconv.<input-encoding>/<output-encoding> (оба варианта семантически эквивалентны).

Пример #3 convert.iconv.*

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.iconv.utf-16le.utf-8');
fwrite($fp, "T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0.\0\n\0");
fclose($fp);
/* Выведет: This is a test. */
?>


Компрессионные фильтры

В то время, как Компрессионные обертки обеспечивают способ создания gzip- и bz2-совместимых файлов в локальной файловой системе, они не предоставляют общих средств для компрессии в сетевых потоках, как и не предоставляют средств для создания потока без компрессии с последующим превращением в компрессируемый. Для этих целей к любым потоковым ресурсам в любое время могут применяться компрессионные фильтры.

Замечание: Компрессионные фильтры не генерируют заголовков и окончаний, которые используют утилиты командной строки, такие как gzip. Они просто компрессируют (сжимают) и декомпрессируют (разжимают) порции данных в компрессируемом потоке данных.

zlib.deflate и zlib.inflate

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.

Пример #1 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 "Оригинальный текст длиной " . strlen($original_text) . " символов.\n";

$fp = fopen('test.deflated', 'w');
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, $params);
fwrite($fp, $original_text);
fclose($fp);

echo "Сжатый файл размером " . filesize('test.deflated') . " байт.\n";
echo "Оригинальный текст:\n";
/* Использование readfile и zlib.inflate для декомпресии на лету */
readfile('php://filter/zlib.inflate/resource=test.deflated');

/* Генерирует вывод:

Оригинальный текст длиной 70 символов.
Сжатый файл размером 56 байт.
Оригинальный текст:
This is a test.
This is only a test.
This is not an important string.

 */
?>

Пример #2 Упрощенное использование zlib.deflate

<?php
$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "Оригинальный текст длиной " . strlen($original_text) . " символов.\n";

$fp = fopen('test.deflated', 'w');
/* Здесь "6" указывает уровень компрессии 6 */
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, 6);
fwrite($fp, $original_text);
fclose($fp);

echo "Сжатый файл размером " . filesize('test.deflated') . " байт.\n";

/* Генерирует вывод:

Оригинальный текст длиной 70 символов.
Сжатый файл размером 56 байт.

 */
?>

bzip2.compress и bzip2.decompress

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.

Пример #3 bzip2.compress и bzip2.decompress

<?php
$param = array('blocks' => 9, 'work' => 0);

echo "Оригинальный файл размером " . filesize('LICENSE') . " байт.\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 "Сжатый файл размером " . filesize('LICENSE.compressed') . " байт.\n";

/* Генерирует вывод:

Оригинальный файл размером 3288 байт.
Сжатый файл размером 1488 байт.

 */
?>


Шифрующие фильтры

Шифрующие фильтры очень хорошо подходят для шифрования файлов и потоков.

mcrypt.* и mdecrypt.*

Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

mcrypt.* и mdecrypt.* обеспечивают симметричное шифрование и дешифрование при помощи libmcrypt. Оба набора фильтров поддерживают те же алгоритмы, что и модуль mcrypt в виде mcrypt.ciphername, где ciphername - это название шифра, как если бы оно передавалось функции mcrypt_module_open(). Также доступны следующие пять параметров:

Параметры фильтра 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 байта бинарных данных. Зависит от шифра

Пример #1 Шифрование/расшифровка используя Blowfish

<?php
// примем, что $key  уже сформирован
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM);
$fp = fopen('encrypted-file.enc', 'wb');
fwrite($fp, $iv);
$opts = array('mode'=>'cbc','iv'=>$iv, 'key'=>$key);
stream_filter_append($fp, 'mcrypt.blowfish', STREAM_FILTER_WRITE, $opts);
fwrite($fp, 'message to encrypt');
fclose($fp);

//расшифровка...
$fp = fopen('encrypted-file.enc', 'rb');
$iv = fread($fp, $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC));
$opts = array('mode'=>'cbc','iv'=>$iv, 'key'=>$key)
stream_filter_append($fp, 'mdecrypt.blowfish', STREAM_FILTER_READ, $opts);
$data = rtrim(stream_get_contents($fp));//trims off null padding
fclose($fp);
echo $data;
?>

Пример #2 Шифрование файла с помощью AES-128 CBC с SHA256 HMAC в PHP 5.5+

<?php
AES_CBC::encryptFile($password, "plaintext.txt", "encrypted.enc");
AES_CBC::decryptFile($password, "encrypted.enc", "decrypted.txt");

class AES_CBC
{
   protected static $KEY_SIZES = array('AES-128'=>16,'AES-192'=>24,'AES-256'=>32);
   protected static function key_size() { return self::$KEY_SIZES['AES-128']; } //default AES-128
   public static function encryptFile($password, $input_stream, $aes_filename){
      $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
      $fin = fopen($input_stream, "rb");
      $fc = fopen($aes_filename, "wb+");
      if (!empty($fin) && !empty($fc)) {
         fwrite($fc, str_repeat("_", 32) );//placeholder, SHA256 HMAC will go here later
         fwrite($fc, $hmac_salt = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
         fwrite($fc, $esalt = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
         fwrite($fc, $iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
         $ekey = hash_pbkdf2("sha256", $password, $esalt, $it=1000, self::key_size(), $raw=true);
         $opts = array('mode'=>'cbc', 'iv'=>$iv, 'key'=>$ekey);
         stream_filter_append($fc, 'mcrypt.rijndael-128', STREAM_FILTER_WRITE, $opts);
         $infilesize = 0;
         while (!feof($fin)) {
            $block = fread($fin, 8192);
            $infilesize+=strlen($block);
            fwrite($fc, $block);
         }
         $block_size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
         $padding = $block_size - ($infilesize % $block_size);//$padding is a number from 1-16
         fwrite($fc, str_repeat(chr($padding), $padding) );//perform PKCS7 padding
         fclose($fin);
         fclose($fc);
         $hmac_raw = self::calculate_hmac_after_32bytes($password, $hmac_salt, $aes_filename);
         $fc = fopen($aes_filename, "rb+");
         fwrite($fc, $hmac_raw);//overwrite placeholder
         fclose($fc);
      }
   }
   public static function decryptFile($password, $aes_filename, $out_stream) {
      $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
      $hmac_raw = file_get_contents($aes_filename, false, NULL,  0, 32);
      $hmac_salt = file_get_contents($aes_filename, false, NULL, 32, $iv_size);
      $hmac_calc = self::calculate_hmac_after_32bytes($password, $hmac_salt, $aes_filename);
      $fc = fopen($aes_filename, "rb");
      $fout = fopen($out_stream, 'wb');
      if (!empty($fout) && !empty($fc) && self::hash_equals($hmac_raw,$hmac_calc)) {
         fread($fc, 32+$iv_size);//skip sha256 hmac and salt
         $esalt = fread($fc, $iv_size);
         $iv    = fread($fc, $iv_size);
         $ekey = hash_pbkdf2("sha256", $password, $esalt, $it=1000, self::key_size(), $raw=true);
         $opts = array('mode'=>'cbc', 'iv'=>$iv, 'key'=>$ekey);
         stream_filter_append($fc, 'mdecrypt.rijndael-128', STREAM_FILTER_READ, $opts);
         while (!feof($fc)) {
            $block = fread($fc, 8192);
            if (feof($fc)) {
               $padding = ord($block[strlen($block) - 1]);//assume PKCS7 padding
               $block = substr($block, 0, 0-$padding);
            }
            fwrite($fout, $block);
         }
         fclose($fout);
         fclose($fc);
      }
   }
   private static function hash_equals($str1, $str2) {
      if(strlen($str1) == strlen($str2)) {
         $res = $str1 ^ $str2;
         for($ret=0,$i = strlen($res) - 1; $i >= 0; $i--) $ret |= ord($res[$i]);
         return !$ret;
      }
      return false;
   }
   private static function calculate_hmac_after_32bytes($password, $hsalt, $filename) {
      static $init=0;
      $init or $init = stream_filter_register("user-filter.skipfirst32bytes", "FileSkip32Bytes");
      $stream = 'php://filter/read=user-filter.skipfirst32bytes/resource=' . $filename;
      $hkey = hash_pbkdf2("sha256", $password, $hsalt, $iterations=1000, 24, $raw=true);
      return hash_hmac_file('sha256', $stream, $hkey, $raw=true);
   }
}
class FileSkip32Bytes extends php_user_filter
{
   private $skipped=0;
   function filter($in, $out, &$consumed, $closing)  {
      while ($bucket = stream_bucket_make_writeable($in)) {
         $outlen = $bucket->datalen;
         if ($this->skipped<32){
            $outlen = min($bucket->datalen,32-$this->skipped);
            $bucket->data = substr($bucket->data, $outlen);
            $bucket->datalen = $bucket->datalen-$outlen;
            $this->skipped+=$outlen;
         }
         $consumed += $outlen;
         stream_bucket_append($out, $bucket);
      }
      return PSFS_PASS_ON;
   }
}
class AES_128_CBC extends AES_CBC {
   protected static function key_size() { return self::$KEY_SIZES['AES-128']; }
}
class AES_192_CBC extends AES_CBC {
   protected static function key_size() { return self::$KEY_SIZES['AES-192']; }
}
class AES_256_CBC extends AES_CBC {
   protected static function key_size() { return self::$KEY_SIZES['AES-256']; }
}


Список поддерживаемых транспортных протоколов

Содержание

  • Интернет-сокеты: TCP, UDP, SSL и TLS
  • Unix-сокеты: UNIX и UDG

Нижеследующий список содержит информацию о протоколах передачи, встроенных в PHP и готовых для использования функциями работы с сокетами, такими как fsockopen() и stream_socket_client(). Эти протоколы не применяются в расширениях для работы с Сокетами.

Для получения списка поддерживаемых протоколов передачи, встроенных в вашу версию PHP, используйте функцию stream_get_transports().


Интернет-сокеты: TCP, UDP, SSL и TLS

PHP 4, PHP 5. ssl:// & tls:// начиная с версии PHP 4.3.0 sslv2:// & sslv3:// начиная с версии PHP 5.0.2

Замечание: Если транспортный протокол не указан, будет использован 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
  • sslv2://www.example.com
  • sslv3://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 численные адреса с указанием порта
Во втором примере выше, в то время как IPv4 и имя хоста не изменились, за исключением добавления номера порта после двоеточия, адрес IPv6 заключен в квадратные скобки: [fe80::1]. Это сделано для того, чтобы отличить двоеточие в адресе от двоеточия при указании порта.

Протоколы ssl:// и tls:// (доступны, только если поддержка openssl включена в PHP) являются расширениями tcp://, дополняющими его SSL-шифрованием. Начиная с PHP 4.3.0, для работы с ssl-протоколами, PHP должен быть статически собран с поддержкой OpenSSL, а с версии PHP 5.0.0 он также может быть представлен и как модуль.

ssl:// будет пытаться использовать соединение SSL V2 или SSL V3, в зависимости от возможностей и настроек удаленного хоста. sslv2:// и sslv3:// позволяют явно указать использование SSL V2 или SSL V3.


Unix-сокеты: UNIX и UDG

unix:// и udg:// (udg:// начиная с PHP 5)

  • unix:///tmp/mysock
  • udg:///tmp/mysock

unix:// дает возможность использовать unix-сокеты, а udg:// предоставляет альтернативный способ передачи данных в них, с использованием пользовательского протокола датаграмм.

Unix-сокеты, в отличие от Интернет-сокетов не требуют указания порта. В случае fsockopen() параметр portno должен быть равен 0.


Таблица сравнения типов в PHP

Следующие таблицы демонстрируют работу PHP с типами переменных и операторами сравнения, как в случае свободного, так и в случае строгого сравнения. Также эта информация относится к разделу документации по приведению типов. Вдохновением на создание этого раздела мы обязаны различным комментариям пользователей и работе над » BlueShoes.

До осмотра таблиц, важно знать и понимать типы переменных и их значения. К примеру, "42" - string, в то время как 42 - integer. FALSE - boolean, а "false" - string.

Замечание:

HTML-формы не передают целые, дробные числа или булевые переменные: они всегда передают строки. Для проверки является ли строка числом, используйте функцию is_numeric().

Замечание:

Использование if ($x), если $x не определена, сгенерирует ошибку уровня E_NOTICE. Вместо этого используйте функцию empty() или isset() и/или инициализируйте переменную.

Замечание:

Некоторые арифметические операции могут вернуть значение, представленное константой NAN (Not A Number, не-число). Любое строгое или нестрогое сравнение этого значения с каким-либо другим, включая его самого, но исключая TRUE, вернет FALSE (т.е. NAN != NAN и NAN !== NAN). Примерами операций, возвращающих NAN, являются sqrt(-1), asin(2) и acosh(0).

Сравнение типов $x и результатов функций PHP, связанных с типами
Выражение | gettype() | empty() | is_null() | isset() | boolean : if($x)
$x = ""; | string | 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(); | array | TRUE | FALSE | TRUE | FALSE
$x = array('a', 'b'); | array | FALSE | FALSE | TRUE | TRUE
$x = false; | boolean | TRUE | FALSE | TRUE | FALSE
$x = true; | boolean | FALSE | FALSE | TRUE | TRUE
$x = 1; | integer | FALSE | FALSE | TRUE | TRUE
$x = 42; | integer | FALSE | FALSE | TRUE | TRUE
$x = 0; | integer | TRUE | FALSE | TRUE | FALSE
$x = -1; | integer | FALSE | FALSE | TRUE | TRUE
$x = "1"; | string | FALSE | FALSE | TRUE | TRUE
$x = "0"; | string | TRUE | FALSE | TRUE | FALSE
$x = "-1"; | string | FALSE | FALSE | TRUE | TRUE
$x = "php"; | string | FALSE | FALSE | TRUE | TRUE
$x = "true"; | string | FALSE | FALSE | TRUE | TRUE
$x = "false"; | string | FALSE | FALSE | TRUE | TRUE

Гибкое сравнение с помощью ==
 | 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 | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE
1 | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | TRUE | TRUE
-1 | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
"1" | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"-1" | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
NULL | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE | TRUE
array() | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE | FALSE
"php" | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE
"" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE

Жесткое сравнение с помощью ===
 | 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 | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
1 | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
-1 | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"1" | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"-1" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
NULL | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
array() | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE
"php" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE
"" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE


Список меток (tokens) парсера

Различные части PHP внутренне представлены типами вроде T_SR. PHP выводит идентификаторы вроде этого в ошибках парсинга, например: "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10."

Предполагается, что вы знаете, что означает T_SR. Для всех, кто этого не знает ниже есть таблица этих идентификаторов с синтаксисом и ссылками на соответствующие разделы документации.

Замечание: Использование T_* констант

Все метки приведенные ниже также являются PHP-константами. Их значение автоматически генерируется на основе базовой инфраструктуры анализатора РНР. Это означает, что конкретное значение метки может изменяться между двумя версиями PHP. Например, константа T_FILE имеет значение 365 в PHP 5.3, в то время как это же значение относится к T_TRAIT в PHP 5.4, а значение константы T_FILE равно 369. Это означает, что для обеспечения совместимости в различных версиях PHP ваш код никогда не должен зависеть напрямую от значений T_* констант из какой-либо определенной версии PHP. Вместо этого ваш код должен использовать собственные значения (использовать длинные числа типа 10000) и соответствующую стратегию, которая будет работать со всеми версиями PHP и значениями T_* констант.

Метки
Метка | Синтаксис | Ссылка
T_ABSTRACT | abstract | Абстрактные классы
T_AND_EQUAL | &= | операторы присваивания
T_ARRAY | array() | array(), синтаксис массива
T_ARRAY_CAST | (array) | приведение типа
T_AS | as | foreach
T_BAD_CHARACTER |  | все, что ниже ASCII 32 исключая \t (0x09), \n (0x0a) и \r (0x0d)
T_BOOLEAN_AND | && | логические операторы
T_BOOLEAN_OR | || | логические операторы
T_BOOL_CAST | (bool) или (boolean) | приведение типа
T_BREAK | break | break
T_CALLABLE | callable | callable
T_CASE | case | switch
T_CATCH | catch | Исключения
T_CHARACTER |  | больше не используется
T_CLASS | class | классы и объекты
T_CLASS_C | __CLASS__ | магические константы
T_CLONE | clone | классы и объекты
T_CLOSE_TAG | ?> или %> | PHP-код внутри HTML
T_COALESCE | ?? | операторы сравнения (доступно с PHP 7.0.0)
T_COMMENT | // или #, и /* */ | комментарии
T_CONCAT_EQUAL | .= | операторы присваивания
T_CONST | const | константы класса
T_CONSTANT_ENCAPSED_STRING | "foo" или 'bar' | строковой синтаксис
T_CONTINUE | continue | continue
T_CURLY_OPEN | {$ | переменные внутри строки
T_DEC | -- | операторы инкремента\декремента
T_DECLARE | declare | declare
T_DEFAULT | default | switch
T_DIR | __DIR__ | магические константы (начиная с PHP 5.3.0)
T_DIV_EQUAL | /= | операторы присваивания
T_DNUMBER | 0.12 и т.д. | числа с плавающей точкой
T_DOC_COMMENT | /** */ | PHPDoc-комментарии
T_DO | do | do..while
T_DOLLAR_OPEN_CURLY_BRACES | ${ | переменная внутри строки
T_DOUBLE_ARROW | => | синтаксис массивов
T_DOUBLE_CAST | (real), (double) или (float) | приведение типов
T_DOUBLE_COLON | :: | см. ниже T_PAAMAYIM_NEKUDOTAYIM
T_ECHO | echo | echo
T_ELLIPSIS | ... | аргументы функции (доступно с PHP 5.6.0)
T_ELSE | else | else
T_ELSEIF | elseif | elseif
T_EMPTY | empty | empty()
T_ENCAPSED_AND_WHITESPACE | " $a" | константная часть строки с переменными
T_ENDDECLARE | enddeclare | declare, альтернативный синтаксис
T_ENDFOR | endfor | for, альтернативный синтаксис
T_ENDFOREACH | endforeach | foreach, альтернативный синтаксис
T_ENDIF | endif | if, альтернативный синтаксис
T_ENDSWITCH | endswitch | switch, альтернативный синтаксис
T_ENDWHILE | endwhile | while, альтернативный синтаксис
T_END_HEREDOC |  | синтаксис heredoc
T_EVAL | eval() | eval()
T_EXIT | exit или die | exit(), die()
T_EXTENDS | extends | extends, классы и объекты
T_FILE | __FILE__ | магические константы
T_FINAL | final | Ключевое слово final
T_FINALLY | finally | Исключения (доступно с PHP 5.5.0)
T_FOR | for | for
T_FOREACH | foreach | foreach
T_FUNCTION | function или cfunction | функции
T_FUNC_C | __FUNCTION__ | магические константы
T_GLOBAL | global | область видимости переменной
T_GOTO | goto | goto
T_HALT_COMPILER | __halt_compiler() | __halt_compiler (доступно с PHP 5.1.0)
T_IF | if | if
T_IMPLEMENTS | implements | Интерфейсы объектов
T_INC | ++ | операторы инкремента\декремента
T_INCLUDE | include() | include
T_INCLUDE_ONCE | include_once() | include_once
T_INLINE_HTML |  | текст вне PHP
T_INSTANCEOF | instanceof | операторы типа
T_INSTEADOF | insteadof | Трейты (доступно начиная с PHP 5.4.0)
T_INT_CAST | (int) или (integer) | приведение типов
T_INTERFACE | interface | Интерфейсы объектов
T_ISSET | isset() | isset()
T_IS_EQUAL | == | операторы сравнения
T_IS_GREATER_OR_EQUAL | >= | операторы сравнения
T_IS_IDENTICAL | === | операторы сравнения
T_IS_NOT_EQUAL | != или <> | операторы сравнения
T_IS_NOT_IDENTICAL | !== | операторы сравнения
T_IS_SMALLER_OR_EQUAL | <= | операторы сравнения
T_SPACESHIP | <=> | Операторы сравнения (доступно начиная с PHP 7.0.0)
T_LINE | __LINE__ | магические константы
T_LIST | list() | list()
T_LNUMBER | 123, 012, 0x1ac и т.д. | целые числа
T_LOGICAL_AND | and | логические операторы
T_LOGICAL_OR | or | логические операторы
T_LOGICAL_XOR | xor | логические операторы
T_METHOD_C | __METHOD__ | магические константы
T_MINUS_EQUAL | -= | операторы присваивания
T_MOD_EQUAL | %= | операторы присваивания
T_MUL_EQUAL | *= | операторы присваивания
T_NAMESPACE | namespace | пространства имен (начиная с PHP 5.3.0)
T_NS_C | __NAMESPACE__ | пространства имен (начиная с PHP 5.3.0)
T_NS_SEPARATOR | \ | пространства имен (начиная с PHP 5.3.0)
T_NEW | new | классы и объекты
T_NUM_STRING | "$a[0]" | цифровой индекс массива внутри строки
T_OBJECT_CAST | (object) | приведение типов
T_OBJECT_OPERATOR | -> | классы и объекты
T_OPEN_TAG | <?php, <? или <% | PHP-код внутри HTML
T_OPEN_TAG_WITH_ECHO | <?= или <%= | PHP-код внутри HTML
T_OR_EQUAL | |= | операторы присваивания
T_PAAMAYIM_NEKUDOTAYIM | :: | ::. Также определяется как T_DOUBLE_COLON.
T_PLUS_EQUAL | += | операторы присваивания
T_POW | ** | арифметические операторы (доступно с PHP 5.6.0)
T_POW_EQUAL | **= | операторы присваивания (доступно с PHP 5.6.0)
T_PRINT | print() | print
T_PRIVATE | private | классы и объекты
T_PUBLIC | public | классы и объекты
T_PROTECTED | protected | классы и объекты
T_REQUIRE | require() | require
T_REQUIRE_ONCE | require_once() | require_once
T_RETURN | return | возвращаемые значения
T_SL | << | побитовые операторы
T_SL_EQUAL | <<= | операторы присваивания
T_SR | >> | побитовые операторы
T_SR_EQUAL | >>= | операторы присваивания
T_START_HEREDOC | <<< | синтаксис heredoc
T_STATIC | static | область видимости переменной
T_STRING | parent, self и т.п.. | идентификаторы, например, ключевые слова вроде parent и self, сюда подходят также имена функций, классов и некоторые другие. Смотрите также T_CONSTANT_ENCAPSED_STRING
T_STRING_CAST | (string) | приведение типов
T_STRING_VARNAME | "${a | переменные внутри строки
T_SWITCH | switch | switch
T_THROW | throw | Исключения
T_TRAIT | trait | Трейты (начиная с PHP 5.4.0)
T_TRAIT_C | __TRAIT__ | __TRAIT__ (начиная с PHP 5.4.0)
T_TRY | try | Исключения
T_UNSET | unset() | unset()
T_UNSET_CAST | (unset) | приведение типов
T_USE | use | пространства имен (начиная с PHP 5.3.0)
T_VAR | var | классы и объекты
T_VARIABLE | $foo | переменные
T_WHILE | while | while, do..while
T_WHITESPACE | \t \r\n |
T_XOR_EQUAL | ^= | операторы присваивания
T_YIELD | yield | генераторы (доступно с PHP 5.5.0)
T_YIELD_FROM | yield from | generators (доступно с PHP 7.0.0)

Смотрите также token_name().


Руководство по именованию

Содержание

  • Глобальное пространство имен
  • Правила
  • Советы

Этот документ содержит советы по выбору имен для идентификаторов PHP-кода. При выборе имен для кода, создающего идентификаторы в глобальном пространстве имен, важно принимать во внимание это руководство, чтобы избежать коллизий имен из будущих версий PHP с вашим кодом.


Глобальное пространство имен

Обзор конструкций, создающих идентификаторы в глобальном пространстве имен.

  • функции

  • классы

  • интерфейсы

  • константы (не константы классов)

  • переменные, объявленные вне функций/методов


Правила

Следующий список правил дает обзор прав именования, которые проект PHP оставляет себе при выборе новых идентификаторов. Полным руководством является официальный "» Стандарт написания кода":

  • PHP владеет глобальным пространством имен, но старается находить хорошие описательные имена и избегать любых очевидных коллизий.

  • Имена функций используют подчеркивания между словами, а имена классов используют как camelCase, так и PascalCase.

  • PHP добавляет префикс к глобальным именам, принадлежащим расширению с именем этого расширения. (В прошлом было множество исключений из этого правила.) Например:

    • curl_close()

    • mysql_query()

    • PREG_SPLIT_DELIM_CAPTURE

    • new DOMDocument()

    • strpos() (пример исключения, допущенного в прошлом)

    • new SplFileObject()

  • Тем не менее, итераторы и исключения просто получают постфиксы "Iterator" и "Exception". Примеры:

    • ArrayIterator

    • LogicException

  • PHP резервирует все идентификаторы, начинающиеся с __ как магические. Рекомендуется не создавать идентификаторы, начинающиеся с __, кроме как с целью использовать документированную магическую функциональность. Примеры:

    • __get()

    • __autoload()


Советы

Для написания кода с прицелом на будущее, рекомендуется не помещать много переменных, функций и классов в глобальное пространство имен. Это поможет избежать конфликтов со сторонними библиотеками, а также возможные будущие дополнения к языку. которым может быть добавлен в будущем.

Одним из самых распространенных способов избежать конфликтов классов и функций, это определять их в своем собственном, отдельном пространстве имен.

<?php

namespace MyProject;

function my_function() {
    return true;
}

\MyProject\my_function();

Вам все еще нужно отслеживать уже используемые пространства имен, но единожды определившись с ним, вы можете добавить в него все функции и классы, не думая о возможных проблемах.

Максимально ограничивать количество переменных в глобальном пространстве имен является хорошей практикой. Это позволит минимизировать возможность конфликтов со сторонним кодом, который вы решите добавить в свой проект.

Замечание: Область видимости переменных

Согласно правилам области видимости в PHP переменные, определенные внутри функций и классов не могут конфликтовать с переменными, заданными в глобальной области видимости.


Об этом руководстве

Содержание

  • Форматы
  • О заметках пользователей
  • Как читать определения функции (прототип)
  • Версии PHP, документированные в этом руководстве
  • Как узнать больше о PHP
  • Как помочь в написании документации
  • Как создаются форматы документации
  • Переводы


Форматы

Руководство по PHP доступно в нескольких форматах. Эти форматы могут быть разделены на две группы: формат для чтения онлайн и форматы, доступные для загрузки.

Замечание:

Некоторые издательства выпустили печатные версии этого руководства. Однако, мы не рекомендуем пользоваться ими вследствие их быстрого устаревания.

Вы можете пользоваться руководством онлайн » на сайте PHP.net, а также на многочисленных сайтах-зеркалах. Чтобы обеспечить наиболее высокую скорость загрузки, вам нужно выбрать ближайший к вам сайт-зеркало. В данный момент онлайн версия PHP руководства имеет два отдельных стиля CSS - для просмотра онлайн (веб) и предназначенный для печати.

Преимуществом онлайн руководства над большинством оффлайн форматов является интеграция с замечаниями пользователей и » быстрыми ссылками, очень удобными для быстрого доступа к желаемой части руководства. Очевидным недостатком является то, что вам нужно находиться в онлайне, чтобы пользоваться руководством в онлайн форматах.

Существуют несколько форматов для использования в оффлайн, и вы можете выбрать формат, наиболее подходящий для использования в вашей операционной системе и отвечающий вашим читательским предпочтениям. Чтобы узнать больше о том, каким образом создается такое количество форматов руководства, обратитесь к разделу 'Как мы создаем форматы руководства'.

Наиболее кроссплатформенным форматом этого руководства является HTML-версия. Она доступна как в виде одного HTML-файла, так и в виде архива, содержащего несколько тысяч файлов, каждый из которых является отдельной главой руководства. Мы предоставляем эти версии руководств сжатыми, поэтому вам понадобится утилита разархивирования для доступа к файлам внутри архива.

На платформах Windows доступна версия руководства в формате Windows HTML Help, который может быть просмотрен с помощью приложения Windows HTML Help. Эта версия предусматривает поиск по тексту руководства, содержание и поддержку использования закладок. Многие среды разработки PHP-программ в Windows также используют эту версию из-за легкости доступа. Существуют также программы для просмотра CHM под Linux. Смотрите » xCHM или » GnoCHM.

Есть также » расширенная версия CHM, она обновляется реже, но зато обеспечивает множество дополнительных возможностей. К сожалению, из-за используемых технологий создания этого формата, она работает только на Microsoft Windows.


О заметках пользователей

Заметки пользователей играют большую роль в процессе создания этого руководства. Позволяя читателям высылать нам примеры, выявленные опечатки и другие сведения с помощью их браузеров, мы имеем возможность интегрировать эти замечания в основной текст руководства. Пока замечания пользователей не были добавлены в руководство, с ними можно ознакомиться онлайн и в некоторых оффлайн форматах.

Замечание:

Заметки пользователей не подвергаются модерации перед тем, как стать публично доступными, таким образом, качество написания примеров кода и даже их корректность не может быть гарантирована. (Так же, как не может быть гарантировано качество и точность собственно текста руководства).

Замечание:

По лицензионному соглашению заметки пользователей рассматриваются как часть самого руководства по PHP, поэтому к ним применима та же лицензия, что и к самому руководству (на данный момент Creative Commons Attribution). Подробности могут быть найдены на странице Авторские права данного руководства.


Как читать определения функции (прототип)

Документация к каждой функции в руководстве была написана с учетом быстрого обращения к этой документации. Зная как правильно читать и понимать текст, вам будет намного проще изучать PHP. Вместо того, чтобы полагаться на примеры или копирование/вставку, нужно просто понять как читать определения функции (прототипы). Давайте начнем:

Замечание: Предпосылки: Базовое понимание типов

Хотя PHP и является слабо типизированным языком, важно иметь базовое представление о типах, так как они играют большую роль в PHP.

Определения функций показывают нам какого типа значения они возвращают. Для первого примера возьмем определение функции strlen():

strlen

(PHP 4, PHP 5)
strlen -- Возвращает длину строки

Описание
strlen ( string $string ) : int

Возвращает длину переданной строки.

Объяснение определения функции
Часть | Описание
strlen | Имя функции.
(PHP 4, PHP 5) | strlen() была во всех версиях PHP 4 и PHP 5
( string $string ) | Первый (и в данном случае единственный) параметр/аргумент этой функции называется string, а его типом является строка (string).
int | Тип возвращаемого этой функцией значения, в данном случае число (integer) (так как длина строки измеряется числом).

Можно переписать вышеуказанное определение функции в более общем виде:

      имя функции    ( тип параметра   имя параметра ) : возвращаемый тип

Много функций принимают несколько параметров, например, in_array(). Ее прототип выглядит так:

      in_array ( mixed $needle, array $haystack [, bool $strict = FALSE ] ) : bool

Что это означает? in_array() возвращает boolean, TRUE в случае успешного выполнения (если needle был найден в haystack) или FALSE в случае возникновения ошибки (если needle не был найден в haystack). Первый параметр называется needle ("иголка") и может принимать много различных типов, поэтому он называется "смешанным". Этот смешанный needle (то, что мы ищем) может быть любым скалярным значением (string, integer, или float), либо массивом. haystack ("стог сена", массив, в котором мы ищем) - это второй параметр. Третий необязательный параметр называется strict ("строго"). Все необязательные параметры пишутся в [ квадратных скобках ]. Руководство указывает, что параметр strict по умолчанию принимает значение boolean FALSE. Смотрите отдельную страницу документации по каждой функции для более подробной информации по их работе.

Символ & (амперсанд), поставленный перед параметром функции позволяет передавать значение этого параметра по ссылке:

       preg_match ( string $pattern , string $subject [, array &$matches
      [, int $flags = 0 [, int $offset = 0 ]]] ) : int

В данном примере мы можем использовать третий опциональный параметр &$matches, который будет передан по ссылке.

Есть также функции с более сложной информацией о версиях PHP. Возьмем для примера html_entity_decode():

(PHP 4 >= 4.3.0, PHP 5)

Это означает, что функция появилась в официальных версиях языка только с выхода PHP 4.3.0.


Версии PHP, документированные в этом руководстве

Данное руководство содержит информацию о прошлых, настоящих и будущих версиях PHP. Изменения поведения документированы замечаниями, историей изменений и непосредственно в тексте самого руководства. Самой ранней документируемой версией PHP является 5.0.0.

Если документация доступна для самой последней (еще невыпущенной) разрабатываемой версии PHP, она помечается либо как "доступно в Git", либо "разрабатываемая версия". И хотя эти изменения запланированы, в редких случаях они могут измениться.

Вся разработка ведется в Git и может быть получена способом, описанным на странице » анонимный доступ к Git.

Для ясности, руководство указывает основную, промежуточную и дробную версию релизов PHP. Возьмем для примера версию PHP 5.3.1, 5 является основной версией, 3 является промежуточной, и 1 является дробной версией. Обычно новые возможности в PHP добавляются только в основных и промежуточных версиях, а исправления ошибок - в дробных. Однако, это соглашение не всегда верно.

Также учтите, что руководство по PHP пишется в настоящем, а не в будущем времени, даже для задокументированных, но еще недоступных возможностей. Это сделано для того, чтобы облегчить испытание временем для данного руководства, таким образом можно избежать рутинных грамматических правок с каждой новой выпущенной версией PHP.

Много раз в руководстве указываются "значения по умолчанию" для различных директив PHP. Эти значения основаны на том, как ведет себя PHP без конфигурационного файла php.ini, поэтому они могут отличаться от тех, что приведены в распространяемых вместе с PHP файлах php.ini-development и php.ini-production. Они также относятся к последней версии PHP, хотя история изменений упоминает только прошлые значения. За подробной информацией об этих значениях и их истории изменений обращайтесь к приложению со списком PHP директив.


Как узнать больше о PHP

Это руководство не пытается охватить вопросы общего программирования. Если вы являетесь новичком или даже начинающим программистом, написание PHP-программ может показаться вам трудным, если вы будете использовать только это руководство. Вам, скорее всего, может понадобиться материал, более подходящий для начинающих.

Существует несколько списков рассылки, предназначенных для обсуждения всех аспектов программирования на PHP. Если вы чувствуете, что не можете найти решение какой-либо проблемы, кто-нибудь из подписчиков списка, вполне вероятно, сможет вам помочь. Все виды поддержки пользователей, в том числе и почтовые списки рассылки, перечислены на » странице поддержки PHP.net.


Как помочь в написании документации

Существуют три способа, чтобы помочь нам в улучшении документации.

Если вам встречаются ошибки в этом руководстве, на любом языке, сообщайте о них с помощью системы сообщения об ошибках, доступной по адресу » https://bugs.php.net/. Классифицируйте ваше сообщение как "Documentation Problem" ("Ошибка в документации"). Все проблемы с документацией, включая ошибки с различными форматами руководства, должны быть отправлены как сообщение об ошибке.

Замечание:

Пожалуйста, не используйте систему сообщения об ошибках для того, чтобы получить какого-либо рода помощь. Вместо этого воспользуйтесь какими-либо » видами поддержки, упомянутыми выше.

Посылая заметки, пользователи могут предоставить различные примеры, предостережения и разъяснения для других читателей. Но, пожалуйста, не используйте систему аннотации для сообщений об ошибках. Более подробные сведения о заметках пользователей вы можете получить, ознакомившись с главой 'О заметках пользователей' этого приложения.

Руководство по PHP было переведено на много языков. Знание английского и другого иностранного языка дает вам еще один способ улучшить это руководство, работая в команде переводчиков. Если вы собираетесь приступить к переводу, обратитесь к » http://doc.php.net/tutorial/.

Проект документации PHP также имеет IRC канал (чат), где можно найти много авторов данного руководства. Заходите на #php.doc на сайте irc.efnet.org и обсуждайте различные способы улучшить данное руководство.


Как создаются форматы документации

Это руководство написано на XML с использованием » DocBook XML DTD, с помощью » PhD (The [PH]P based [D]ocBook renderer, Генератор из формата Docbook на PHP) в целях поддержки и форматирования.

Использование XML в качестве единственного исходного формата позволяет нам создавать документацию во многих форматах, позволяя в то же время редактировать только один исходный документ для всех форматов. Утилитой для форматирования руководства является » PhD. Для создания руководства в формате Windows HTML Help мы используем » Microsoft HTML Help Workshop и, разумеется, сам PHP для дополнительных преобразований и форматирования.

Вы можете загрузить руководство на многих языках и во многих форматах, более подробно смотрите » https://www.php.net/docs.php. Исходный код XML можно загрузить из SVN и просмотреть онлайн по адресу » https://svn.php.net/viewvc/. Документация находится в модуле phpdoc.


Переводы

Руководство по PHP доступно не только в нескольких форматах, но и на различных языках. Сначала текст руководства пишется на английском, а затем команды людей по всему миру переводят его на свой родной язык. Если перевод документации какой-либо функции или главы еще не был завершен, система сборки руководства использует соответствующий английский вариант.

Люди, осуществляющие перевод документации, начинают с использования исходного кода в формате XML, доступного по адресу » https://svn.php.net/viewvc/ и затем переводят его на свой родной язык. Для перевода не используются сгенерированные версии (например, HTML или обычный текст), так как система сборки документации сама заботится о преобразовании XML в читабельные форматы.

Замечание:

Если вы хотите принять участие в переводе документации на ваш родной язык, присоединитесь к команде перевода, подписавшись на список рассылки phpdoc: вышлите пустое сообщение на адрес » phpdoc-subscribe@lists.php.net. Адрес списка рассылки - phpdoc@lists.php.net. Укажите в сообщении, что вы заинтересованы в участии в переводе руководства и кто-нибудь поможет вам начать новый перевод или найти команду, занимающуюся переводом на ваш язык.

В настоящее время руководство доступно, частично или в полной мере, на более чем 10 языках.

Все эти версии руководства доступны для загрузки по адресу » https://www.php.net/docs.php.


Creative Commons Attribution 3.0

THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.

BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.

1. Definitions

  1. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
  2. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.
  3. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
  4. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
  5. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
  6. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
  7. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
  8. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.

2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.

3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:

  1. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
  2. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
  3. to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
  4. to Distribute and Publicly Perform Adaptations.

  5. For the avoidance of doubt:

    1. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
    2. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
    3. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.

The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.

4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:

  1. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested.
  2. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
  3. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.

5. Representations, Warranties and Disclaimer

UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.

6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. Termination.

  1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
  2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.

8. Miscellaneous

  1. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
  2. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
  3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
  4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent
  5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
  6. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.


  • « Creative Commons Attribution 3.0
  • Список функций и методов »
  • PHP Manual
  • Appendices
  • Алфавитный список

Алфавитный список

Содержание

  • Список функций и методов
  • Список примеров


Список функций и методов

Список всех функций и методов в руководстве

a b c d e f g h i j k l m n o p q r s t u v w x y z _ ?

  • a
    • abs - Абсолютное значение (модуль числа)
    • acos - Арккосинус
    • acosh - Гиперболический арккосинус
    • addcslashes - Экранирует cтроку слешами в стиле языка C
    • addslashes - Экранирует строку с помощью слешей
    • apache_child_terminate - Завершить процесс Apache по окончании текущего запроса
    • apache_getenv - Возвращает переменную окружения подпроцесса сервера Apache
    • apache_get_modules - Возвращает список загруженных модулей сервера Apache
    • apache_get_version - Возвращает версию Apache
    • apache_lookup_uri - Осуществить частичный запрос на указанный URI и вернуть все полученные сведения
    • apache_note - Возвращает и устанавливает уведомления к запросу Apache
    • apache_request_headers - Получает список всех заголовков HTTP-запроса
    • apache_reset_timeout - Сбрасывает таймер сервера Apache
    • apache_response_headers - Возвращает список всех HTTP-заголовков ответа Apache
    • apache_setenv - Устанавливает переменную subprocess_env Apache
    • APCIterator::current - Получить текущий элемент
    • APCIterator::getTotalCount - Получить общее количество
    • APCIterator::getTotalHits - Получить общее число попаданий в кэш
    • APCIterator::getTotalSize - Получить общий размер кэша
    • APCIterator::key - Получить ключ итератора
    • APCIterator::next - Переместить указатель к следующему элементу
    • APCIterator::rewind - Перемотать итератор назад
    • APCIterator::valid - Проверить, является ли текущая позиция итератора допустимой
    • APCIterator::__construct - Создать объект итератора APCIterator
    • APCUIterator::current - Получить текущий элемент
    • APCUIterator::getTotalCount - Получить общее количество записей
    • APCUIterator::getTotalHits - Получить общее количество попаданий в кеш
    • APCUIterator::getTotalSize - Общий размер кеша
    • APCUIterator::key - Получить ключ итератора
    • APCUIterator::next - Перемещает указатель на следующий элемент
    • APCUIterator::rewind - Перемотка итератора
    • APCUIterator::valid - Проверяет, корректна ли текущая позиция итератора
    • APCUIterator::__construct - Создает объект итератор класса APCUIterator
    • apcu_add - Добавить переменную в кеш
    • apcu_cache_info - Извлекает закешированную информацию из хранилища APCu
    • apcu_cas - Заменяет старое значение на новое
    • apcu_clear_cache - Очистить кеш APCu
    • apcu_dec - Уменьшить сохраненное число
    • apcu_delete - Удаляет сохраненное значение из кеша
    • apcu_entry - Автоматическое извлечение или создание записи в кеше
    • apcu_exists - Проверяет, существуют ли записи
    • apcu_fetch - Извлекает из кеша сохраненную переменную
    • apcu_inc - Увеличить сохраненное число
    • apcu_sma_info - Извлекает информацию о выделении разделяемой памяти APCu
    • apcu_store - Кеширует переменную
    • apc_add - Кешировать переменную в хранилище данных
    • apc_bin_dump - Получить бинарный дамп заданных файлов и пользовательских переменных
    • apc_bin_dumpfile - Вывести двоичный дамп кешированных файлов и пользовательских переменных в файл
    • apc_bin_load - Загрузить бинарный дамп в файловый/пользовательский кеш APC
    • apc_bin_loadfile - Загрузить бинарный дамп из файла в файловый/пользовательский кеш APC
    • apc_cache_info - Получить кешируемую информацию и метаданные из хранилища данных APC
    • apc_cas - Заменить старое значение на новое
    • apc_clear_cache - Очистить кеш APC
    • apc_compile_file - Сохранить файл в кеше байт-кода, не обращая внимания на фильтры
    • apc_dec - Уменьшить сохраненное число
    • apc_define_constants - Определить набор констант для извлечения и массового определения
    • apc_delete - Удалить сохраненную переменную из кеша
    • apc_delete_file - Удалить файлы из кеша опкодов
    • apc_exists - Проверить, существует ли ключ APC
    • apc_fetch - Выбрать сохраненную переменную из кеша
    • apc_inc - Увеличить сохраненное число
    • apc_load_constants - Загрузить набор констант из кеша
    • apc_sma_info - Получить информацию о выделении разделяемой памяти APC
    • apc_store - Кешировать переменную в хранилище данных
    • apd_breakpoint - Останавливает интерпретатор и ожидает символ возврата каретки (CR) из сокета
    • 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_session_trace_socket - Старт удаленной отладки
    • AppendIterator::append - Добавляет итератор
    • AppendIterator::current - Возвращает текущее значение
    • AppendIterator::getArrayIterator - Возвращает класс итератора массива ArrayIterator
    • AppendIterator::getInnerIterator - Возвращает внутренний итератор
    • AppendIterator::getIteratorIndex - Возвращает индекс итератора
    • AppendIterator::key - Возвращает текущий ключ
    • AppendIterator::next - Переходит к следующему элементу
    • AppendIterator::rewind - Перематывает итератор
    • AppendIterator::valid - Проверяет срок действия текущего элемента
    • AppendIterator::__construct - Создает AppendIterator
    • array - Создает массив
    • ArrayAccess::offsetExists - Определяет, существует ли заданное смещение (ключ)
    • ArrayAccess::offsetGet - Возвращает заданное смещение (ключ)
    • ArrayAccess::offsetSet - Присваивает значение заданному смещению
    • ArrayAccess::offsetUnset - Удаляет смещение
    • ArrayIterator::append - Добавить элемент
    • ArrayIterator::asort - Сортирует массив по значениям
    • ArrayIterator::count - Посчитать количество элементов
    • ArrayIterator::current - Возвращает текущий элемент в массиве
    • ArrayIterator::getArrayCopy - Возвращает копию массива
    • ArrayIterator::getFlags - Получает флаги поведения
    • ArrayIterator::key - Возвращает ключ текущего элемента массива
    • ArrayIterator::ksort - Сортирует массив по ключам
    • ArrayIterator::natcasesort - Сортирует массив "натурально", с учетом регистра
    • ArrayIterator::natsort - Сортирует массив "натурально"
    • ArrayIterator::next - Перемещает указатель за следующую запись
    • ArrayIterator::offsetExists - Проверяет существует ли смещение
    • ArrayIterator::offsetGet - Получает значение для смещения
    • ArrayIterator::offsetSet - Устанавливает значение для смещения
    • ArrayIterator::offsetUnset - Сбрасывает значение по смещению
    • ArrayIterator::rewind - Перемещает указатель в начало массива
    • ArrayIterator::seek - Перемещает указатель на выбранную позицию
    • ArrayIterator::serialize - Сериализует массив
    • ArrayIterator::setFlags - Устанавливает флаги, изменяющие поведение ArrayIterator
    • ArrayIterator::uasort - Сортировка с помощью заданной пользователем функции и сохранением ключей
    • ArrayIterator::uksort - Сортировка по ключам с помощью заданной функции сравнения
    • ArrayIterator::unserialize - Десериализация
    • ArrayIterator::valid - Проверяет, содержит ли массив еще записи
    • ArrayIterator::__construct - Создает ArrayIterator
    • ArrayObject::append - Добавляет значение в конец массива
    • ArrayObject::asort - Сортировать записи по значению
    • ArrayObject::count - Получить количество общедоступных свойств ArrayObject
    • ArrayObject::exchangeArray - Заменить массив на другой
    • ArrayObject::getArrayCopy - Создаёт копию ArrayObject
    • ArrayObject::getFlags - Получает флаги поведения
    • ArrayObject::getIterator - Создать новый итератор из экземпляра ArrayObject
    • ArrayObject::getIteratorClass - Получает имя класса итератора для ArrayObject
    • ArrayObject::ksort - Сортировать записи по ключам
    • ArrayObject::natcasesort - Сортировать массив, используя регистронезависимый алгоритм "natural order"
    • ArrayObject::natsort - Сортировать массив, используя алгоритм "natural order"
    • ArrayObject::offsetExists - Возвращает, существует ли указанный индекс
    • ArrayObject::offsetGet - Возвращает значение по указанному индексу
    • ArrayObject::offsetSet - Устанавливает новое значение по указанному индексу
    • ArrayObject::offsetUnset - Удаляет значение по указанному индексу
    • ArrayObject::serialize - Сериализовать ArrayObject
    • ArrayObject::setFlags - Устанавливает флаги поведения
    • ArrayObject::setIteratorClass - Устанавливает имя класса итератора для ArrayObject
    • ArrayObject::uasort - Сортировать записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение
    • ArrayObject::uksort - Сортировать массив по ключам, используя пользовательскую функцию для сравнения
    • ArrayObject::unserialize - Десериализовать ArrayObject
    • ArrayObject::__construct - Создает новый объект массива
    • array_change_key_case - Меняет регистр всех ключей в массиве
    • array_chunk - Разбивает массив на части
    • array_column - Возвращает массив из значений одного столбца входного массива
    • array_combine - Создает новый массив, используя один массив в качестве ключей, а другой для его значений
    • array_count_values - Подсчитывает количество всех значений массива
    • array_diff - Вычислить расхождение массивов
    • array_diff_assoc - Вычисляет расхождение массивов с дополнительной проверкой индекса
    • array_diff_key - Вычисляет расхождение массивов, сравнивая ключи
    • array_diff_uassoc - Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
    • array_diff_ukey - Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей
    • array_fill - Заполняет массив значениями
    • array_fill_keys - Создает массив и заполняет его значениями с определенными ключами
    • array_filter - Фильтрует элементы массива с помощью callback-функции
    • array_flip - Меняет местами ключи с их значениями в массиве
    • array_intersect - Вычисляет схождение массивов
    • array_intersect_assoc - Вычисляет схождение массивов с дополнительной проверкой индекса
    • array_intersect_key - Вычислить пересечение массивов, сравнивая ключи
    • array_intersect_uassoc - Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
    • array_intersect_ukey - Вычисляет схождение массивов, используя callback-функцию для сравнения ключей
    • array_keys - Возвращает все или некоторое подмножество ключей массива
    • array_key_exists - Проверяет, присутствует ли в массиве указанный ключ или индекс
    • array_key_first - Получает первый ключ массива
    • array_key_last - Получает последний ключ массива
    • array_map - Применяет callback-функцию ко всем элементам указанных массивов
    • array_merge - Сливает один или большее количество массивов
    • array_merge_recursive - Рекурсивное слияние одного или более массивов
    • array_multisort - Сортирует несколько массивов или многомерные массивы
    • array_pad - Дополнить массив определенным значением до указанной длины
    • array_pop - Извлекает последний элемент массива
    • array_product - Вычислить произведение значений массива
    • array_push - Добавляет один или несколько элементов в конец массива
    • array_rand - Выбирает один или несколько случайных ключей из массива
    • array_reduce - Итеративно уменьшает массив к единственному значению, используя callback-функцию
    • array_replace - Заменяет элементы массива элементами других переданных массивов
    • array_replace_recursive - Рекурсивно заменяет элементы первого массива элементами переданных массивов
    • array_reverse - Возвращает массив с элементами в обратном порядке
    • array_search - Осуществляет поиск данного значения в массиве и возвращает ключ первого найденного элемента в случае удачи
    • array_shift - Извлекает первый элемент массива
    • array_slice - Выбирает срез массива
    • array_splice - Удаляет часть массива и заменяет её чем-нибудь ещё
    • array_sum - Вычисляет сумму значений массива
    • array_udiff - Вычисляет расхождение массивов, используя для сравнения callback-функцию
    • array_udiff_assoc - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
    • array_udiff_uassoc - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
    • array_uintersect - Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
    • array_uintersect_assoc - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
    • array_uintersect_uassoc - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции
    • array_unique - Убирает повторяющиеся значения из массива
    • array_unshift - Добавляет один или несколько элементов в начало массива
    • array_values - Выбирает все значения массива
    • array_walk - Применяет заданную пользователем функцию к каждому элементу массива
    • array_walk_recursive - Рекурсивно применяет пользовательскую функцию к каждому элементу массива
    • arsort - Сортирует массив в обратном порядке, сохраняя ключи
    • asin - Арксинус
    • asinh - Гиперболический арксинус
    • asort - Сортирует массив, сохраняя ключи
    • assert - Проверяет, является ли утверждение FALSE
    • assert_options - Установка и получение настроек механизма проверки утверждений
    • atan - Арктангенс
    • atan2 - Арктангенс двух переменных
    • atanh - Гиперболический арктангенс
  • b
    • base64_decode - Декодирует данные, закодированные MIME base64
    • base64_encode - Кодирует данные в формат MIME base64
    • basename - Возвращает последний компонент имени из указанного пути
    • BaseResult::getWarnings - Получает предупреждения последней операции
    • BaseResult::getWarningsCount - Получает количество предупреждений последней операции
    • base_convert - Преобразование числа между произвольными системами счисления
    • bbcode_add_element - Добавляет элемент bbcode
    • bbcode_add_smiley - Добавляет смайлы для разбора парсером
    • bbcode_create - Создает ресурс BBCode
    • bbcode_destroy - Закрывает ресурс BBCode_container
    • bbcode_parse - Производит разбор строки в соответствии с заданным набором правил
    • bbcode_set_arg_parser - Подключает другой парсер для применения иного набора правил в качестве параметров разбора
    • bbcode_set_flags - Устанавливает или изменяет настройки парсера
    • bcadd - Сложить 2 числа произвольной точности
    • bccomp - Сравнение двух чисел произвольной точности
    • bcdiv - Операция деления для чисел произвольной точности
    • bcmod - Получает остаток от деления чисел с произвольной точностью
    • bcmul - Умножение двух чисел с произвольной точностью
    • bcompiler_load - Прочитать и создать классы из сжатого bz файла
    • bcompiler_load_exe - Прочитать и создать классы из скомпилированного bcompiler исполняемого файла
    • bcompiler_parse_class - Читает байткод класса и передает его в заданную callback-функцию
    • bcompiler_read - Прочитать и создать классы из файлового дескриптора
    • bcompiler_write_class - Записывает байткод класса в файл
    • bcompiler_write_constant - Записывает заданную константу в виде байткода в файл
    • bcompiler_write_exe_footer - Записывает позицию начала байткода и терминирующий символ в конец файла
    • bcompiler_write_file - Сохраняет скрипт php в виде байткода
    • bcompiler_write_footer - Записывает символ \x00, обозначающий конец скомпилированных данных
    • bcompiler_write_function - Сохраняет заданную функцию в виде байткода
    • bcompiler_write_functions_from_file - Сохраняет все функции, определенные в скрипте, в виде байткода
    • bcompiler_write_header - Записать заголовок файла bcompiler
    • bcompiler_write_included_filename - Сохраняет подключенный файл в виде байткода
    • bcpow - Возведение в степень чисел с произвольной точностью
    • bcpowmod - Возводит одно число в степень другого и возвращает остаток от деления результата на третье число
    • bcscale - Устанавливает или получает количество чисел после десятичной точки по умолчанию для всех функций bc math.
    • bcsqrt - Извлекает квадратный корень из числа с заданной точностью
    • bcsub - Вычитает одно число из другого с заданной точностью
    • bin2hex - Преобразует бинарные данные в шестнадцатеричное представление
    • bindec - Двоичное в десятичное
    • bindtextdomain - Устанавливает путь для домена
    • bind_textdomain_codeset - Устанавливает кодировку, в которой будут возвращаться сообщения из каталога сообщений домена
    • blenc_encrypt - Шифрует PHP скрипт с помощью BLENC.
    • boolval - Возвращает логическое значение переменной
    • bson_decode - Преобразовывает объект BSON в массив PHP
    • bson_encode - Преобразовывет переменную PHP в строку BSON
    • bzclose - Закрывает файл bzip2
    • bzcompress - Сжимает строку с использованием bzip2
    • bzdecompress - Распаковывает данные, сжатые с использованием bzip2
    • bzerrno - Возвращает код ошибки работы с bzip2
    • bzerror - Возвращает код и строку ошибки работы с bzip2 в виде массива
    • bzerrstr - Возвращает строку ошибки работы с bzip2
    • bzflush - Форсирует запись всех буферизированных данных
    • bzopen - Открывает файл, сжатый с использованием bzip2
    • bzread - Бинарно-безопасное чтение файла bzip2
    • bzwrite - Бинарно-безопасная запись bzip2 файла
  • c
    • CachingIterator::count - Возвращает число элементов в итераторе
    • CachingIterator::current - Возвращает текущий элемент
    • CachingIterator::getCache - Получение содержимого кеша
    • CachingIterator::getFlags - Получает используемые флаги
    • CachingIterator::getInnerIterator - Возвращает внутренний итератор
    • CachingIterator::hasNext - Проверяет, имеет ли внутренний итератор допустимый следующий элемент
    • CachingIterator::key - Возвращает ключ для текущего элемента
    • CachingIterator::next - Перемещает итератор к следующему элементу
    • CachingIterator::offsetExists - Назначение offsetExists
    • CachingIterator::offsetGet - Назначение offsetGet
    • CachingIterator::offsetSet - Назначение offsetSet
    • CachingIterator::offsetUnset - Назначение offsetUnset
    • CachingIterator::rewind - Возвращает итератор в начало
    • CachingIterator::setFlags - Устанавливает флаги для объекта CachingIterator
    • CachingIterator::valid - Проверяет, является ли текущий элемент допустимым
    • CachingIterator::__construct - Создает новый объект CachingIterator для итератора
    • CachingIterator::__toString - Возвращает строковое представление текущего элемента
    • Cairo::availableFonts - Извлекает доступные типы шрифтов
    • Cairo::availableSurfaces - Извлекает все доступные поверхности (surface)
    • Cairo::statusToString - Возвращает текущий статус в форме текстовой строки
    • Cairo::version - Извлекает версию библиотеки cairo
    • Cairo::versionString - Возвращает версию cairo в форме строки
    • CairoContext::appendPath - Appends a path to current path
    • CairoContext::arc - Adds a circular arc
    • CairoContext::arcNegative - Adds a negative arc
    • CairoContext::clip - Establishes a new clip region
    • CairoContext::clipExtents - Computes the area inside the current clip
    • CairoContext::clipPreserve - Establishes a new clip region from the current clip
    • CairoContext::clipRectangleList - Retrieves the current clip as a list of rectangles
    • CairoContext::closePath - Closes the current path
    • CairoContext::copyPage - Emits the current page
    • CairoContext::copyPath - Creates a copy of the current path
    • CairoContext::copyPathFlat - Gets a flattened copy of the current path
    • CairoContext::curveTo - Adds a curve
    • CairoContext::deviceToUser - Transform a coordinate
    • CairoContext::deviceToUserDistance - Transform a distance
    • CairoContext::fill - Fills the current path
    • CairoContext::fillExtents - Computes the filled area
    • CairoContext::fillPreserve - Fills and preserve the current path
    • CairoContext::fontExtents - Get the font extents
    • CairoContext::getAntialias - Retrieves the current antialias mode
    • CairoContext::getCurrentPoint - The getCurrentPoint purpose
    • CairoContext::getDash - The getDash purpose
    • CairoContext::getDashCount - The getDashCount purpose
    • CairoContext::getFillRule - The getFillRule purpose
    • CairoContext::getFontFace - The getFontFace purpose
    • CairoContext::getFontMatrix - The getFontMatrix purpose
    • CairoContext::getFontOptions - The getFontOptions purpose
    • CairoContext::getGroupTarget - The getGroupTarget purpose
    • CairoContext::getLineCap - The getLineCap purpose
    • CairoContext::getLineJoin - The getLineJoin purpose
    • CairoContext::getLineWidth - The getLineWidth purpose
    • CairoContext::getMatrix - The getMatrix purpose
    • CairoContext::getMiterLimit - The getMiterLimit purpose
    • CairoContext::getOperator - The getOperator purpose
    • CairoContext::getScaledFont - The getScaledFont purpose
    • CairoContext::getSource - The getSource purpose
    • CairoContext::getTarget - The getTarget purpose
    • CairoContext::getTolerance - The getTolerance purpose
    • CairoContext::glyphPath - The glyphPath purpose
    • CairoContext::hasCurrentPoint - The hasCurrentPoint purpose
    • CairoContext::identityMatrix - The identityMatrix purpose
    • CairoContext::inFill - The inFill purpose
    • CairoContext::inStroke - The inStroke purpose
    • CairoContext::lineTo - The lineTo purpose
    • CairoContext::mask - The mask purpose
    • CairoContext::maskSurface - The maskSurface purpose
    • CairoContext::moveTo - The moveTo purpose
    • CairoContext::newPath - The newPath purpose
    • CairoContext::newSubPath - The newSubPath purpose
    • CairoContext::paint - The paint purpose
    • CairoContext::paintWithAlpha - The paintWithAlpha purpose
    • CairoContext::pathExtents - The pathExtents purpose
    • CairoContext::popGroup - The popGroup purpose
    • CairoContext::popGroupToSource - The popGroupToSource purpose
    • CairoContext::pushGroup - The pushGroup purpose
    • CairoContext::pushGroupWithContent - The pushGroupWithContent purpose
    • CairoContext::rectangle - The rectangle purpose
    • CairoContext::relCurveTo - The relCurveTo purpose
    • CairoContext::relLineTo - The relLineTo purpose
    • CairoContext::relMoveTo - The relMoveTo purpose
    • CairoContext::resetClip - The resetClip purpose
    • CairoContext::restore - The restore purpose
    • CairoContext::rotate - The rotate purpose
    • CairoContext::save - The save purpose
    • CairoContext::scale - The scale purpose
    • CairoContext::selectFontFace - The selectFontFace purpose
    • CairoContext::setAntialias - The setAntialias purpose
    • CairoContext::setDash - The setDash purpose
    • CairoContext::setFillRule - The setFillRule purpose
    • CairoContext::setFontFace - The setFontFace purpose
    • CairoContext::setFontMatrix - The setFontMatrix purpose
    • CairoContext::setFontOptions - The setFontOptions purpose
    • CairoContext::setFontSize - The setFontSize purpose
    • CairoContext::setLineCap - The setLineCap purpose
    • CairoContext::setLineJoin - The setLineJoin purpose
    • CairoContext::setLineWidth - The setLineWidth purpose
    • CairoContext::setMatrix - The setMatrix purpose
    • CairoContext::setMiterLimit - The setMiterLimit purpose
    • CairoContext::setOperator - The setOperator purpose
    • CairoContext::setScaledFont - The setScaledFont purpose
    • CairoContext::setSource - The setSource purpose
    • CairoContext::setSourceRGB - The setSourceRGB purpose
    • CairoContext::setSourceRGBA - The setSourceRGBA purpose
    • CairoContext::setSourceSurface - The setSourceSurface purpose
    • CairoContext::setTolerance - The setTolerance purpose
    • CairoContext::showPage - The showPage purpose
    • CairoContext::showText - The showText purpose
    • CairoContext::status - The status purpose
    • CairoContext::stroke - The stroke purpose
    • CairoContext::strokeExtents - The strokeExtents purpose
    • CairoContext::strokePreserve - The strokePreserve purpose
    • CairoContext::textExtents - The textExtents purpose
    • CairoContext::textPath - The textPath purpose
    • CairoContext::transform - The transform purpose
    • CairoContext::translate - The translate purpose
    • CairoContext::userToDevice - The userToDevice purpose
    • CairoContext::userToDeviceDistance - The userToDeviceDistance purpose
    • CairoContext::__construct - Creates a new CairoContext
    • CairoFontFace::getType - Возвращает тип начертания шрифта
    • CairoFontFace::status - Проверяет на ошибки класса CairoFontFace
    • CairoFontFace::__construct - Создает новый объект CairoFontFace
    • CairoFontOptions::equal - The equal purpose
    • CairoFontOptions::getAntialias - The getAntialias purpose
    • CairoFontOptions::getHintMetrics - The getHintMetrics purpose
    • CairoFontOptions::getHintStyle - The getHintStyle purpose
    • CairoFontOptions::getSubpixelOrder - The getSubpixelOrder purpose
    • CairoFontOptions::hash - The hash purpose
    • CairoFontOptions::merge - The merge purpose
    • CairoFontOptions::setAntialias - The setAntialias purpose
    • CairoFontOptions::setHintMetrics - The setHintMetrics purpose
    • CairoFontOptions::setHintStyle - The setHintStyle purpose
    • CairoFontOptions::setSubpixelOrder - The setSubpixelOrder purpose
    • CairoFontOptions::status - The status purpose
    • CairoFontOptions::__construct - The __construct purpose
    • CairoFormat::strideForWidth - Расчитывает значение "stride" для заданной ширины изображения
    • CairoGradientPattern::addColorStopRgb - The addColorStopRgb purpose
    • CairoGradientPattern::addColorStopRgba - The addColorStopRgba purpose
    • CairoGradientPattern::getColorStopCount - The getColorStopCount purpose
    • CairoGradientPattern::getColorStopRgba - The getColorStopRgba purpose
    • CairoGradientPattern::getExtend - The getExtend purpose
    • CairoGradientPattern::setExtend - The setExtend purpose
    • CairoImageSurface::createForData - The createForData purpose
    • CairoImageSurface::createFromPng - Creates a new CairoImageSurface form a png image file
    • CairoImageSurface::getData - Gets the image data as string
    • CairoImageSurface::getFormat - Get the image format
    • CairoImageSurface::getHeight - Retrieves the height of the CairoImageSurface
    • CairoImageSurface::getStride - The getStride purpose
    • CairoImageSurface::getWidth - Retrieves the width of the CairoImageSurface
    • CairoImageSurface::__construct - Creates a new CairoImageSurface
    • CairoLinearGradient::getPoints - Цель getPoints
    • CairoLinearGradient::__construct - Цель __construct
    • CairoMatrix::initIdentity - Creates a new identity matrix
    • CairoMatrix::initRotate - Creates a new rotated matrix
    • CairoMatrix::initScale - Creates a new scaling matrix
    • CairoMatrix::initTranslate - Creates a new translation matrix
    • CairoMatrix::invert - The invert purpose
    • CairoMatrix::multiply - The multiply purpose
    • CairoMatrix::rotate - The rotate purpose
    • CairoMatrix::scale - Applies scaling to a matrix
    • CairoMatrix::transformDistance - The transformDistance purpose
    • CairoMatrix::transformPoint - The transformPoint purpose
    • CairoMatrix::translate - The translate purpose
    • CairoMatrix::__construct - Creates a new CairoMatrix object
    • CairoPattern::getMatrix - The getMatrix purpose
    • CairoPattern::getType - The getType purpose
    • CairoPattern::setMatrix - The setMatrix purpose
    • CairoPattern::status - The status purpose
    • CairoPattern::__construct - The __construct purpose
    • CairoPdfSurface::setSize - The setSize purpose
    • CairoPdfSurface::__construct - The __construct purpose
    • CairoPsSurface::dscBeginPageSetup - The dscBeginPageSetup purpose
    • CairoPsSurface::dscBeginSetup - The dscBeginSetup purpose
    • CairoPsSurface::dscComment - The dscComment purpose
    • CairoPsSurface::getEps - The getEps purpose
    • CairoPsSurface::getLevels - The getLevels purpose
    • CairoPsSurface::levelToString - The levelToString purpose
    • CairoPsSurface::restrictToLevel - The restrictToLevel purpose
    • CairoPsSurface::setEps - The setEps purpose
    • CairoPsSurface::setSize - The setSize purpose
    • CairoPsSurface::__construct - The __construct purpose
    • CairoRadialGradient::getCircles - The getCircles purpose
    • CairoRadialGradient::__construct - The __construct purpose
    • CairoScaledFont::extents - The extents purpose
    • CairoScaledFont::getCtm - The getCtm purpose
    • CairoScaledFont::getFontFace - The getFontFace purpose
    • CairoScaledFont::getFontMatrix - The getFontMatrix purpose
    • CairoScaledFont::getFontOptions - The getFontOptions purpose
    • CairoScaledFont::getScaleMatrix - The getScaleMatrix purpose
    • CairoScaledFont::getType - The getType purpose
    • CairoScaledFont::glyphExtents - The glyphExtents purpose
    • CairoScaledFont::status - The status purpose
    • CairoScaledFont::textExtents - The textExtents purpose
    • CairoScaledFont::__construct - The __construct purpose
    • CairoSolidPattern::getRgba - Цель getRgba
    • CairoSolidPattern::__construct - Цель __construct
    • CairoSurface::copyPage - The copyPage purpose
    • CairoSurface::createSimilar - The createSimilar purpose
    • CairoSurface::finish - The finish purpose
    • CairoSurface::flush - The flush purpose
    • CairoSurface::getContent - The getContent purpose
    • CairoSurface::getDeviceOffset - The getDeviceOffset purpose
    • CairoSurface::getFontOptions - The getFontOptions purpose
    • CairoSurface::getType - The getType purpose
    • CairoSurface::markDirty - The markDirty purpose
    • CairoSurface::markDirtyRectangle - The markDirtyRectangle purpose
    • CairoSurface::setDeviceOffset - The setDeviceOffset purpose
    • CairoSurface::setFallbackResolution - The setFallbackResolution purpose
    • CairoSurface::showPage - The showPage purpose
    • CairoSurface::status - The status purpose
    • CairoSurface::writeToPng - The writeToPng purpose
    • CairoSurface::__construct - The __construct purpose
    • CairoSurfacePattern::getExtend - Цель getExtend
    • CairoSurfacePattern::getFilter - Цель getFilter
    • CairoSurfacePattern::getSurface - Цель getSurface
    • CairoSurfacePattern::setExtend - Цель setExtend
    • CairoSurfacePattern::setFilter - Цель setFilter
    • CairoSurfacePattern::__construct - Цель __construct
    • CairoSvgSurface::getVersions - Используется для получения списка поддерживаемых версий SVG
    • CairoSvgSurface::restrictToVersion - Цель restrictToVersion
    • CairoSvgSurface::versionToString - Цель versionToString
    • CairoSvgSurface::__construct - Цель __construct
    • cairo_create - Возвращает новый объект CairoContext
    • cairo_font_options_create - Описание
    • cairo_font_options_equal - Описание
    • cairo_font_options_get_antialias - Описание
    • cairo_font_options_get_hint_metrics - Описание
    • cairo_font_options_get_hint_style - Описание
    • cairo_font_options_get_subpixel_order - Описание
    • cairo_font_options_hash - Описание
    • cairo_font_options_merge - Описание
    • cairo_font_options_set_antialias - Описание
    • cairo_font_options_set_hint_metrics - Описание
    • cairo_font_options_set_hint_style - Описание
    • cairo_font_options_set_subpixel_order - Описание
    • cairo_font_options_status - Описание
    • cairo_format_stride_for_width - Описание
    • cairo_image_surface_create - Описание
    • cairo_image_surface_create_for_data - Описание
    • cairo_image_surface_create_from_png - Описание
    • cairo_image_surface_get_data - Описание
    • cairo_image_surface_get_format - Описание
    • cairo_image_surface_get_height - Описание
    • cairo_image_surface_get_stride - Описание
    • cairo_image_surface_get_width - Описание
    • cairo_matrix_create_scale - Псевдоним CairoMatrix::initScale
    • cairo_matrix_create_translate - Псевдоним CairoMatrix::initTranslate
    • cairo_matrix_invert - Описание
    • cairo_matrix_multiply - Описание
    • cairo_matrix_transform_distance - Описание
    • cairo_matrix_transform_point - Описание
    • cairo_matrix_translate - Описание
    • cairo_pattern_add_color_stop_rgb - Описание
    • cairo_pattern_add_color_stop_rgba - Описание
    • cairo_pattern_create_for_surface - Описание
    • cairo_pattern_create_linear - Описание
    • cairo_pattern_create_radial - Описание
    • cairo_pattern_create_rgb - Описание
    • cairo_pattern_create_rgba - Описание
    • cairo_pattern_get_color_stop_count - Описание
    • cairo_pattern_get_color_stop_rgba - Описание
    • cairo_pattern_get_extend - Описание
    • cairo_pattern_get_filter - Описание
    • cairo_pattern_get_linear_points - Описание
    • cairo_pattern_get_matrix - Описание
    • cairo_pattern_get_radial_circles - Описание
    • cairo_pattern_get_rgba - Описание
    • cairo_pattern_get_surface - Описание
    • cairo_pattern_get_type - Описание
    • cairo_pattern_set_extend - Описание
    • cairo_pattern_set_filter - Описание
    • cairo_pattern_set_matrix - Описание
    • cairo_pattern_status - Описание
    • cairo_pdf_surface_create - Описание
    • cairo_pdf_surface_set_size - Описание
    • cairo_ps_get_levels - Описание
    • cairo_ps_level_to_string - Описание
    • cairo_ps_surface_create - Описание
    • cairo_ps_surface_dsc_begin_page_setup - Описание
    • cairo_ps_surface_dsc_begin_setup - Описание
    • cairo_ps_surface_dsc_comment - Описание
    • cairo_ps_surface_get_eps - Описание
    • cairo_ps_surface_restrict_to_level - Описание
    • cairo_ps_surface_set_eps - Описание
    • cairo_ps_surface_set_size - Описание
    • cairo_scaled_font_create - Описание
    • cairo_scaled_font_extents - Описание
    • cairo_scaled_font_get_ctm - Описание
    • cairo_scaled_font_get_font_face - Описание
    • cairo_scaled_font_get_font_matrix - Описание
    • cairo_scaled_font_get_font_options - Описание
    • cairo_scaled_font_get_scale_matrix - Описание
    • cairo_scaled_font_get_type - Описание
    • cairo_scaled_font_glyph_extents - Описание
    • cairo_scaled_font_status - Описание
    • cairo_scaled_font_text_extents - Описание
    • cairo_surface_copy_page - Описание
    • cairo_surface_create_similar - Описание
    • cairo_surface_finish - Описание
    • cairo_surface_flush - Описание
    • cairo_surface_get_content - Описание
    • cairo_surface_get_device_offset - Описание
    • cairo_surface_get_font_options - Описание
    • cairo_surface_get_type - Описание
    • cairo_surface_mark_dirty - Описание
    • cairo_surface_mark_dirty_rectangle - Описание
    • cairo_surface_set_device_offset - Описание
    • cairo_surface_set_fallback_resolution - Описание
    • cairo_surface_show_page - Описание
    • cairo_surface_status - Описание
    • cairo_surface_write_to_png - Описание
    • cairo_svg_surface_create - Описание
    • cairo_svg_surface_restrict_to_version - Описание
    • cairo_svg_version_to_string - Описание
    • CallbackFilterIterator::accept - Вызывает callback-функцию и передает ей в качестве аргументов текущее значение, текущий ключ и внутренний указатель
    • CallbackFilterIterator::__construct - Создает фильтрующий итератор на основе другого итератора
    • call_user_func - Вызывает callback-функцию, заданную в первом параметре
    • call_user_func_array - Вызывает callback-функцию с массивом параметров
    • call_user_method - Вызывает метод указанного объекта
    • call_user_method_array - Вызывает метод объекта с массивом параметров
    • cal_days_in_month - Возвращает количество дней в месяце для заданного года и календаря
    • cal_from_jd - Преобразует дату, заданную в юлианском календаре, в дату указанного календаря
    • cal_info - Возвращает информацию о заданном календаре
    • cal_to_jd - Преобразует заданную дату в юлианскую
    • ceil - Округляет дробь в большую сторону
    • chdb::get - Получает значение по ключу
    • chdb::__construct - Создает экземпляр chdb
    • chdb_create - Создает файл chdb
    • chdir - Изменяет каталог
    • checkdate - Проверяет корректность даты по григорианскому календарю
    • checkdnsrr - Проверяет записи DNS, соответствующие переданному имени узла Интернета или IP-адресу
    • chgrp - Изменяет группу файла
    • chmod - Изменяет режим доступа к файлу
    • chop - Псевдоним rtrim
    • chown - Изменяет владельца файла
    • chr - Генерирует односимвольную строку по заданному числу
    • chroot - Изменяет корневой каталог
    • chunk_split - Разбивает строку на фрагменты
    • classkit_import - Импортирует определения методов нового класса из файла
    • classkit_method_add - Динамически добавляет новый метод в заданный класс
    • classkit_method_copy - Копирует метод из одного класса в другой
    • classkit_method_redefine - Динамически меняет код заданного метода
    • classkit_method_remove - Динамически удаляет заданный метод
    • classkit_method_rename - Динамически меняет имя заданного метода
    • class_alias - Создает псевдоним для указанного класса
    • class_exists - Проверяет, был ли объявлен класс
    • class_implements - Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе
    • class_parents - Возвращает список родительских классов заданного класса
    • class_uses - Возвращает список трейтов, используемых заданным классом
    • clearstatcache - Очищает кеш состояния файлов
    • Client::getClient - Get client session
    • Client::__construct - Client constructor
    • cli_get_process_title - Возвращает заголовок текущего процесса
    • cli_set_process_title - Устанавливает заголовок процесса
    • closedir - Закрывает дескриптор каталога
    • closelog - Закрывает соединение с системным журналом
    • Closure::bind - Дублирует замыкание с указанием конкретного связанного объекта и области видимости класса
    • Closure::bindTo - Дублирует замыкание с указанием связанного объекта и области видимости класса
    • Closure::call - Связывает и запускает замыкание
    • Closure::fromCallable - Конвертирует callable в замыкание
    • Closure::__construct - Конструктор, запрещающий создание экземпляра
    • Collator::asort - Sort array maintaining index association
    • Collator::compare - Compare two Unicode strings
    • Collator::create - Create a collator
    • Collator::getAttribute - Get collation attribute value
    • Collator::getErrorCode - Get collator's last error code
    • Collator::getErrorMessage - Get text for collator's last error code
    • Collator::getLocale - Get the locale name of the collator
    • Collator::getSortKey - Get sorting key for a string
    • Collator::getStrength - Get current collation strength
    • Collator::setAttribute - Set collation attribute
    • Collator::setStrength - Set collation strength
    • Collator::sort - Sort array using specified collator
    • Collator::sortWithSortKeys - Sort array using specified collator and sort keys
    • Collator::__construct - Create a collator
    • Collectable::isGarbage - Определяет, помечен ли объект как мусор
    • Collectable::setGarbage - Пометить объект как мусор
    • Collection::add - Добавляет документ в коллекцию
    • Collection::addOrReplaceOne - Добавляет или заменяет документ коллекции
    • Collection::count - Получает количество документов
    • Collection::createIndex - Создает индекс для коллекции
    • Collection::dropIndex - Drop collection index
    • Collection::existsInDatabase - Проверяет, существует ли коллекция в базе данных
    • Collection::find - Search for document
    • Collection::getName - Получает название коллекции
    • Collection::getOne - Получает один документ
    • Collection::getSchema - Get schema object
    • Collection::getSession - Get session object
    • Collection::modify - Modify collection documents
    • Collection::remove - Удаляет документы коллекции
    • Collection::removeOne - Удаляет один документ из коллекции
    • Collection::replaceOne - Заменяет один документ коллекции
    • Collection::__construct - Конструктор класса Collection
    • CollectionAdd::execute - Выполняет утверждение
    • CollectionAdd::__construct - Конструктор класса CollectionAdd
    • CollectionFind::bind - Привязывает значение к заполнителю запроса
    • CollectionFind::execute - Выполняет утверждение
    • CollectionFind::fields - Устанавливает фильтр поля документа
    • CollectionFind::groupBy - Устанавливает критерии группировки
    • CollectionFind::having - Устанавливает условие для агрегатных функций
    • CollectionFind::limit - Ограничивает количество возвращаемых документов
    • CollectionFind::lockExclusive - Выполняет операцию с EXCLUSIVE LOCK
    • CollectionFind::lockShared - Выполняет операцию с SHARED LOCK
    • CollectionFind::offset - Пропускает указанное количество возвращаемых элементов
    • CollectionFind::sort - Устанавливает критерии сортировки
    • CollectionFind::__construct - Конструктор класса CollectionFind
    • CollectionModify::arrayAppend - Добавляет элемент в поле массива
    • CollectionModify::arrayInsert - Добавляет элемент в поле массива
    • CollectionModify::bind - Привязывает значение к заполнителю запроса
    • CollectionModify::execute - Выполняет операцию изменения
    • CollectionModify::limit - Ограничивает количество изменяемых документов
    • CollectionModify::patch - Исправляет документ
    • CollectionModify::replace - Заменяет поле документа
    • CollectionModify::set - Устанавливает атрибут документа
    • CollectionModify::skip - Пропускает элементы
    • CollectionModify::sort - Устанавливает критерии сортировки
    • CollectionModify::unset - Сбрасывает значение полей документа
    • CollectionModify::__construct - Конструктор класса CollectionModify
    • CollectionRemove::bind - Привязывает значение к заполнителю
    • CollectionRemove::execute - Выполняет операцию удаления
    • CollectionRemove::limit - Ограничивает количество документов для удаления
    • CollectionRemove::sort - Устанавливает критерии сортировки
    • CollectionRemove::__construct - Конструктор класса CollectionRemove
    • ColumnResult::getCharacterSetName - Получает набор символов
    • ColumnResult::getCollationName - Получает имя сопоставления
    • ColumnResult::getColumnLabel - Получает метку столбца
    • ColumnResult::getColumnName - Получает название столбца
    • ColumnResult::getFractionalDigits - Получает дробную длину цифры
    • ColumnResult::getLength - Получает длину поля столбца
    • ColumnResult::getSchemaName - Получает название схемы
    • ColumnResult::getTableLabel - Получает метку таблицы
    • ColumnResult::getTableName - Получает название таблицы
    • ColumnResult::getType - Получает тип столбца
    • ColumnResult::isNumberSigned - Проверяет, является ли тип подписанным
    • ColumnResult::isPadded - Проверяет, дополняется ли
    • ColumnResult::__construct - Конструктор класса ColumnResult
    • COM::__construct - Конструктор класса COM
    • CommonMark\CQL::__construct - Конструктор класса CQL
    • CommonMark\CQL::__invoke - Выполнение CQL
    • CommonMark\Interfaces\IVisitable::accept - Visitation
    • CommonMark\Interfaces\IVisitor::enter - Visitation
    • CommonMark\Interfaces\IVisitor::leave - Visitation
    • CommonMark\Node::accept - Visitation
    • CommonMark\Node::appendChild - Манипуляции с AST (Абстрактное синтаксическое дерево)
    • CommonMark\Node::insertAfter - Манипуляции с AST (Абстрактное синтаксическое дерево)
    • CommonMark\Node::insertBefore - Манипуляции с AST (Абстрактное синтаксическое дерево)
    • CommonMark\Node::prependChild - Манипуляции с AST (Абстрактное синтаксическое дерево)
    • CommonMark\Node::replace - Манипуляции с AST (Абстрактное синтаксическое дерево)
    • CommonMark\Node::unlink - Манипуляции с AST (Абстрактное синтаксическое дерево)
    • CommonMark\Node\BulletList::__construct - BulletList Construction
    • CommonMark\Node\CodeBlock::__construct - Конструктор класса CodeBlock
    • CommonMark\Node\Heading::__construct - Конструктор класса Heading
    • CommonMark\Node\Image::__construct - Конструктор класса Image
    • CommonMark\Node\Link::__construct - Конструктор класса Link
    • CommonMark\Node\OrderedList::__construct - Конструктор класса OrderedList
    • CommonMark\Node\Text::__construct - Конструктор класса Text
    • CommonMark\Parse - Разбор
    • CommonMark\Parser::finish - Разбор
    • CommonMark\Parser::parse - Разбор
    • CommonMark\Parser::__construct - Разбор
    • CommonMark\Render - Отображение
    • CommonMark\Render\HTML - Отображение
    • CommonMark\Render\Latex - Отображение
    • CommonMark\Render\Man - Отображение
    • CommonMark\Render\XML - Отображение
    • compact - Создает массив, содержащий названия переменных и их значения
    • Componere\Abstract\Definition::addInterface - Add Interface
    • Componere\Abstract\Definition::addMethod - Add Method
    • Componere\Abstract\Definition::addTrait - Add Trait
    • Componere\Abstract\Definition::getReflector - Reflection
    • Componere\cast - Casting
    • Componere\cast_by_ref - Casting
    • Componere\Definition::addConstant - Add Constant
    • Componere\Definition::addProperty - Add Property
    • Componere\Definition::getClosure - Get Closure
    • Componere\Definition::getClosures - Get Closures
    • Componere\Definition::isRegistered - State Detection
    • Componere\Definition::register - Registration
    • Componere\Definition::__construct - Definition Construction
    • Componere\Method::getReflector - Reflection
    • Componere\Method::setPrivate - Accessibility Modification
    • Componere\Method::setProtected - Accessibility Modification
    • Componere\Method::setStatic - Accessibility Modification
    • Componere\Method::__construct - Method Construction
    • Componere\Patch::apply - Application
    • Componere\Patch::derive - Patch Derivation
    • Componere\Patch::getClosure - Get Closure
    • Componere\Patch::getClosures - Get Closures
    • Componere\Patch::isApplied - State Detection
    • Componere\Patch::revert - Reversal
    • Componere\Patch::__construct - Patch Construction
    • Componere\Value::hasDefault - Value Interaction
    • Componere\Value::isPrivate - Accessibility Detection
    • Componere\Value::isProtected - Accessibility Detection
    • Componere\Value::isStatic - Accessibility Detection
    • Componere\Value::setPrivate - Accessibility Modification
    • Componere\Value::setProtected - Accessibility Modification
    • Componere\Value::setStatic - Accessibility Modification
    • Componere\Value::__construct - Value Construction
    • com_create_guid - Создание уникального глобального идентификатора (GUID)
    • com_event_sink - Связать сообщения объекта COM с объектом PHP
    • com_get_active_object - Вернуть дескриптор на уже запущенный экземпляр объекта COM
    • com_load_typelib - Загрузка Typelib
    • com_message_pump - Обработка сообщений COM, пришедших не позднее timeoutms миллисекунд послее ее запуска
    • com_print_typeinfo - Печатает определение класса PHP для интерфейса, наследующего IDispatch
    • Cond::broadcast - Broadcast a Condition
    • Cond::create - Create a Condition
    • Cond::destroy - Destroy a Condition
    • Cond::signal - Signal a Condition
    • Cond::wait - Wait for Condition
    • connection_aborted - Проверить, отключен ли клиент
    • connection_status - Возвращает статус соединения в битах
    • constant - Возвращает значение константы
    • convert_cyr_string - Преобразует строку из одной кириллической кодировки в другую
    • convert_uudecode - Декодирует строку из формата uuencode в обычный вид
    • convert_uuencode - Кодирует строку в формат uuencode
    • copy - Копирует файл
    • cos - Косинус
    • cosh - Гиперболический косинус
    • count - Подсчитывает количество элементов массива или чего-либо в объекте
    • Countable::count - Количество элементов объекта
    • Counter::bumpValue - Change the current value of a counter
    • Counter::getMeta - Return a piece of metainformation about a counter
    • Counter::getNamed - Retrieve an existing named counter
    • Counter::getValue - Get the current value of a counter
    • Counter::resetValue - Reset the current value of a counter
    • Counter::setCounterClass - Set the class returned by Counter::getNamed
    • Counter::__construct - Creates an instance of a Counter which maintains a single numeric value
    • counter_bump - Update the current value of the basic counter
    • counter_bump_value - Change the current value of a counter resource
    • counter_create - Creates a counter which maintains a single numeric value
    • counter_get - Get the current value of the basic counter
    • counter_get_meta - Return a piece of metainformation about a counter resource
    • counter_get_named - Retrieve an existing named counter as a resource
    • counter_get_value - Get the current value of a counter resource
    • counter_reset - Reset the current value of the basic counter
    • counter_reset_value - Reset the current value of a counter resource
    • count_chars - Возвращает информацию о символах, входящих в строку
    • crack_check - Проверяет взломостойкость переданного пароля
    • crack_closedict - Закрывает открытый ранее словарь CrackLib
    • crack_getlastmessage - Возвращает текстовое сообщение о последней проверке взломостойкости пароля
    • crack_opendict - Открывает новый словарь CrackLib
    • crc32 - Вычисляет полином CRC32 для строки
    • create_function - Создаёт анонимную (лямбда) функцию
    • CrudOperationBindable::bind - Привязывает значение к заполнителю
    • CrudOperationLimitable::limit - Set result limit
    • CrudOperationSkippable::skip - Number of operations to skip
    • CrudOperationSortable::sort - Sort results
    • crypt - Необратимое хеширование строки
    • ctype_alnum - Проверяет наличие буквенно-цифровых символов
    • ctype_alpha - Проверяет наличие буквенных символов
    • ctype_cntrl - Проверяет наличие управляющих символов
    • ctype_digit - Проверяет наличие цифровых символов в строке
    • ctype_graph - Проверяет наличие любых печатных символов, кроме пробела
    • ctype_lower - Проверяет наличие символов в нижнем регистре
    • ctype_print - Проверяет наличие печатных символов
    • ctype_punct - Проверяет наличие печатных символов, которые не содержат пробельные или буквенно-цифровые символы
    • ctype_space - Проверяет наличие пробельных символов
    • ctype_upper - Проверяет наличие символов в верхнем регистре
    • ctype_xdigit - Проверяет наличие шестнадцатеричных цифр
    • cubrid_affected_rows - Количество строк, затронутых последним SQL-запросом
    • cubrid_bind - Связывает переменные с подготовленным запросом
    • cubrid_client_encoding - Возвращает кодировку текущего соединения CUBRID
    • cubrid_close - Закрывает соединение с базой данных
    • cubrid_close_prepare - Закрывает обработчик запроса
    • cubrid_close_request - Закрывает обработчик запроса
    • cubrid_column_names - Получить имена столбцов в результирующем наборе
    • cubrid_column_types - Получить типы столбцов в результирующем наборе
    • cubrid_col_get - Получение контента столбца типа коллекция по OID
    • cubrid_col_size - Получает количество элементов в столбце типа коллекция по OID
    • cubrid_commit - Подтверждение транзакции
    • cubrid_connect - Открывает соединение к серверу CUBRID
    • cubrid_connect_with_url - Создает окружение для соединения с сервером CUBRID
    • cubrid_current_oid - Возвращает OID текущей позиции курсора
    • cubrid_data_seek - Переместить внутренний указатель в результирующем наборе CUBRID
    • cubrid_db_name - Получение имени базы данных из результата cubrid_list_dbs
    • cubrid_disconnect - Закрывает соединение с базой данных
    • cubrid_drop - Удаление экземпляра по OID
    • cubrid_errno - Возвращает код ошибки предыдущей операции CUBRID
    • cubrid_error - Возвращает текст последней произошедшей ошибки
    • cubrid_error_code - Получить код ошибки
    • cubrid_error_code_facility - Получить код уровня, на котором произошла ошибка
    • cubrid_error_msg - Возвращает текст последней произошедшей ошибки
    • cubrid_execute - Execute a prepared SQL statement
    • cubrid_fetch - Fetch the next row from a result set
    • cubrid_fetch_array - Извлечение строки из результирующего набора в виде ассоциативного массива, индексированного массива или обоих сразу
    • cubrid_fetch_assoc - Извлечь строку из результирующего набора в виде ассоциативного массива
    • cubrid_fetch_field - Получение информации о столбце результирующего набора в виде объекта
    • cubrid_fetch_lengths - Возвращает массив, содержащий длины всех столбцов текущей строки
    • cubrid_fetch_object - Извлечь следующую строку как объект
    • cubrid_fetch_row - Извлечь строку из результирующего набора в виде индексированного массива
    • cubrid_field_flags - Получить строку, содержащую флаги столбца по указанному индексу
    • cubrid_field_len - Получить максимальную длину указанного столбца
    • cubrid_field_name - Получить имя указанного столбца
    • cubrid_field_seek - Переместить внутренний указатель результирующего набора на указанный столбец
    • cubrid_field_table - Получить имя таблицы, которой принадлежит указанный столбец
    • cubrid_field_type - Получить тип указанного столбца
    • cubrid_free_result - Free the memory occupied by the result data
    • cubrid_get - Get a column using OID
    • cubrid_get_autocommit - Возвращает настройку авто-коммита для соединения
    • cubrid_get_charset - Возвращает кодировку текущего соединения CUBRID
    • cubrid_get_class_name - Get the class name using OID
    • cubrid_get_client_info - Return the client library version
    • cubrid_get_db_parameter - Returns the CUBRID database parameters
    • cubrid_get_query_timeout - Get the query timeout value of the request
    • cubrid_get_server_info - Return the CUBRID server version
    • cubrid_insert_id - Return the ID generated for the last updated AUTO_INCREMENT column
    • cubrid_is_instance - Check whether the instance pointed by OID exists
    • cubrid_list_dbs - Получить массив со списком всех баз данных CUBRID
    • cubrid_load_from_glo - Читает данные из экземпляра GLO и записывает их в файл
    • cubrid_lob2_bind - Bind a lob object or a string as a lob object to a prepared statement as parameters
    • cubrid_lob2_close - Close LOB object
    • cubrid_lob2_export - Export the lob object to a file
    • cubrid_lob2_import - Import BLOB/CLOB data from a file
    • cubrid_lob2_new - Create a lob object
    • cubrid_lob2_read - Read from BLOB/CLOB data
    • cubrid_lob2_seek - Move the cursor of a lob object
    • cubrid_lob2_seek64 - Move the cursor of a lob object
    • cubrid_lob2_size - Get a lob object's size
    • cubrid_lob2_size64 - Get a lob object's size
    • cubrid_lob2_tell - Tell the cursor position of the LOB object
    • cubrid_lob2_tell64 - Tell the cursor position of the LOB object
    • cubrid_lob2_write - Write to a lob object
    • cubrid_lob_close - Close BLOB/CLOB data
    • cubrid_lob_export - Export BLOB/CLOB data to file
    • cubrid_lob_get - Get BLOB/CLOB data
    • cubrid_lob_send - Read BLOB/CLOB data and send straight to browser
    • cubrid_lob_size - Get BLOB/CLOB data size
    • cubrid_lock_read - Set a read lock on the given OID
    • cubrid_lock_write - Set a write lock on the given OID
    • cubrid_move_cursor - Move the cursor in the result
    • cubrid_new_glo - Создает экземпляр glo
    • cubrid_next_result - Get result of next query when executing multiple SQL statements
    • cubrid_num_cols - Return the number of columns in the result set
    • cubrid_num_fields - Получить количество столбцов в результирующем наборе
    • cubrid_num_rows - Get the number of rows in the result set
    • cubrid_pconnect - Open a persistent connection to a CUBRID server
    • cubrid_pconnect_with_url - Open a persistent connection to CUBRID server
    • cubrid_ping - Проверяет, живо ли соединение к серверу и переподнимает его, если нет
    • cubrid_prepare - Prepare a SQL statement for execution
    • cubrid_put - Update a column using OID
    • cubrid_query - Отправка запроса CUBRID
    • cubrid_real_escape_string - Экранирование специальных символов в SQL-запросе
    • cubrid_result - Получить значение из заданного столбца заданной строки
    • cubrid_rollback - Roll back a transaction
    • cubrid_save_to_glo - Сохраняет запрошенный файл в экземпляре GLO
    • cubrid_schema - Get the requested schema information
    • cubrid_send_glo - Чтение данных из glo и вывод их в стандартное устройство вывода
    • cubrid_seq_drop - Delete an element from sequence type column using OID
    • cubrid_seq_insert - Insert an element to a sequence type column using OID
    • cubrid_seq_put - Update the element value of sequence type column using OID
    • cubrid_set_add - Insert a single element to set type column using OID
    • cubrid_set_autocommit - Устанавливает режим авто-коммита для соединения
    • cubrid_set_db_parameter - Sets the CUBRID database parameters
    • cubrid_set_drop - Delete an element from set type column using OID
    • cubrid_set_query_timeout - Set the timeout time of query execution
    • cubrid_unbuffered_query - Выполнение запроса без загрузки результата в память
    • cubrid_version - Получить версию модуля CUBRID PHP
    • curl_close - Завершает сеанс cURL
    • curl_copy_handle - Копирует дескриптор cURL вместе со всеми его настройками
    • curl_errno - Возвращает код последней ошибки
    • curl_error - Возвращает строку с описанием последней ошибки текущего сеанса
    • curl_escape - Кодирует заданную строку как URL
    • curl_exec - Выполняет запрос cURL
    • curl_file_create - Создает объект CURLFile
    • curl_getinfo - Возвращает информацию об определенной операции
    • curl_init - Инициализирует сеанс cURL
    • curl_multi_add_handle - Добавляет обычный cURL-дескриптор к набору cURL-дескрипторов
    • curl_multi_close - Закрывает набор cURL-дескрипторов
    • curl_multi_errno - Возвращает код последней ошибки множественного 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_multi соединении
    • curl_multi_setopt - Установить опции для множественного дескриптора cURL
    • curl_multi_strerror - Возвращает строку, описывающую ошибку
    • curl_pause - Приостановить и возобновить соединение
    • curl_reset - Сбросить все настройки обработчика сессии libcurl
    • curl_setopt - Устанавливает параметр для сеанса CURL
    • curl_setopt_array - Устанавливает несколько параметров для сеанса cURL
    • curl_share_close - Закрыть разделяемый обработчик cURL
    • curl_share_errno - Возвращает код последней ошибки разделяемого обработчика curl
    • curl_share_init - Инициализация разделяемого обработчика cURL
    • curl_share_setopt - Установить опции разделяемого обработчика cURL
    • curl_share_strerror - Возвращает описание для заданного кода ошибки
    • curl_strerror - Получить текстовое описание для кода ошибки
    • curl_unescape - Декодирует закодированную URL-строку
    • curl_version - Возвращает версию cURL
    • current - Возвращает текущий элемент массива
    • cyrus_authenticate - Аутентификация на сервере Cyrus IMAP
    • cyrus_bind - Привязать callback-функции для Cyrus IMAP соединения
    • cyrus_close - Закрывает соединение с сервером Cyrus IMAP
    • cyrus_connect - Установить соединение с сервером Cyrus IMAP
    • cyrus_query - Послать запрос Cyrus IMAP серверу
    • cyrus_unbind - Убрать привязки callback-функций для Cyrus IMAP соединения
  • d
    • data:// - Схема Data (RFC 2397)
    • DatabaseObject::existsInDatabase - Проверяет, существует ли объект в базе данных
    • DatabaseObject::getName - Получает имя объекта
    • DatabaseObject::getSession - Получает имя сессии
    • date - Форматирует вывод системной даты/времени
    • DateInterval::createFromDateString - Создает объект класса DateInterval из даты в относительном формате
    • DateInterval::format - Форматирует интервал
    • DateInterval::__construct - Создает новый объект DateInterval
    • DatePeriod::getDateInterval - Возвращает интервал
    • DatePeriod::getEndDate - Возвращает конечную дату периода
    • DatePeriod::getRecurrences - Получает количество повторов
    • DatePeriod::getStartDate - Возвращает начальную дату периода
    • DatePeriod::__construct - Создает новый объект DatePeriod
    • DateTime::add - Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime
    • DateTime::createFromFormat - Разбирает строку с датой согласно указанному формату
    • DateTime::createFromImmutable - Возвращает объект DateTime инкапсулирующий заданный объект DateTimeImmutable
    • DateTime::diff - Возвращает разницу между двумя объектами DateTime
    • DateTime::format - Возвращает дату, отформатированную согласно переданному формату
    • DateTime::getLastErrors - Возвращает предупреждения и ошибки
    • DateTime::getOffset - Возвращает смещение временной зоны
    • DateTime::getTimestamp - Возвращает временную метку Unix
    • DateTime::getTimezone - Возвращает временному зону относительно текущему значению DateTime
    • DateTime::modify - Изменение временной метки
    • DateTime::setDate - Устанавливает дату
    • DateTime::setISODate - Устанавливает дату в формате ISO
    • DateTime::setTime - Устанавливает время
    • DateTime::setTimestamp - Устанавливает дату и время на основе метки времени Unix
    • DateTime::setTimezone - Устанавливает временную зоны для объекта класса DateTime
    • DateTime::sub - Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime
    • DateTime::__construct - Конструктор класса DateTime
    • DateTime::__set_state - Обработчик __set_state
    • DateTime::__wakeup - Обработчик __wakeup
    • DateTimeImmutable::add - Добавляет указанное количество дней, месяцев, лет, часов, минут и секунд
    • DateTimeImmutable::createFromFormat - Разбирает строку с датой согласно указанному формату
    • DateTimeImmutable::createFromMutable - Возвращает новый объект DateTimeImmutable, содержащий заданный объект DateTime
    • DateTimeImmutable::getLastErrors - Возвращает предупреждения и ошибки
    • DateTimeImmutable::modify - Создает новый объект с измененной временной меткой
    • DateTimeImmutable::setDate - Устанавливает дату
    • DateTimeImmutable::setISODate - Устанавливает дату в формате ISO
    • DateTimeImmutable::setTime - Устанавливает время
    • DateTimeImmutable::setTimestamp - Устанавливает дату и время на основе метки времени Unix
    • DateTimeImmutable::setTimezone - Устанавливает временную зону
    • DateTimeImmutable::sub - Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд
    • DateTimeImmutable::__construct - Возвращает новый объект DateTimeImmutable
    • DateTimeImmutable::__set_state - Обработчик __set_state
    • DateTimeZone::getLocation - Возвращает информацию о местоположении для временной зоны
    • DateTimeZone::getName - Возвращает имя временной зоны
    • DateTimeZone::getOffset - Возвращает смещение временной зоны от UTC (GMT)
    • DateTimeZone::getTransitions - Возвращает все переходы для временной зоны
    • DateTimeZone::listAbbreviations - Возвращает ассоциативный массив, содержащий флаг перехода на летнее время, смещение и имя временной зоны
    • DateTimeZone::listIdentifiers - Возвращает численно-индексированный массив со всеми идентификаторами временных зон
    • DateTimeZone::__construct - Создает новый объект DateTimeZone
    • date_add - Псевдоним DateTime::add
    • date_create - Псевдоним DateTime::__construct
    • date_create_from_format - Псевдоним DateTime::createFromFormat
    • date_create_immutable - Псевдоним DateTimeImmutable::__construct
    • date_create_immutable_from_format - Псевдоним DateTimeImmutable::createFromFormat
    • date_date_set - Псевдоним DateTime::setDate
    • date_default_timezone_get - Возвращает временную зону, используемой по умолчанию всеми функциями даты/времени в скрипте
    • date_default_timezone_set - Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте
    • date_diff - Псевдоним DateTime::diff
    • date_format - Псевдоним DateTime::format
    • date_get_last_errors - Псевдоним DateTime::getLastErrors
    • date_interval_create_from_date_string - Псевдоним DateInterval::createFromDateString
    • date_interval_format - Псевдоним DateInterval::format
    • date_isodate_set - Псевдоним DateTime::setISODate
    • date_modify - Псевдоним DateTime::modify
    • date_offset_get - Псевдоним DateTime::getOffset
    • date_parse - Возвращает ассоциативный массив с подробной информацией о заданной дате
    • date_parse_from_format - Получение информации о заданной в определенном формате дате
    • date_sub - Псевдоним DateTime::sub
    • date_sunrise - Возвращает время рассвета для заданных дня и местоположения
    • date_sunset - Возвращает время захода солнца для заданных дня и местоположения
    • date_sun_info - Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек
    • date_timestamp_get - Псевдоним DateTime::getTimestamp
    • date_timestamp_set - Псевдоним DateTime::setTimestamp
    • date_timezone_get - Псевдоним DateTime::getTimezone
    • date_timezone_set - Псевдоним DateTime::setTimezone
    • date_time_set - Псевдоним DateTime::setTime
    • db2_autocommit - Возвращает или устанавливает режим автоподтверждения транзакций для соединения
    • db2_bind_param - Binds a PHP variable to an SQL statement parameter
    • db2_client_info - Возвращает объект со свойствами, описывающими клиента DB2
    • db2_close - Закрывает соединение с базой данных
    • db2_columns - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
    • db2_column_privileges - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
    • db2_commit - Подтверждает транзакцию
    • db2_connect - Returns a connection to a database
    • 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_cursor_type - Возвращает тип курсора, который используется в ресурсе оператора
    • db2_escape_string - Используется для экранирования некоторых символов
    • 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_get_option - Retrieves an option value for a statement resource or a connection resource
    • db2_last_insert_id - Returns the auto generated ID of the last insert query that successfully executed on this connection
    • db2_lob_read - Gets a user defined size of LOB files with each invocation
    • db2_next_result - Requests the next result set from a stored procedure
    • db2_num_fields - Возвращает количество полей в результирующем наборе
    • db2_num_rows - Returns the number of rows affected by an SQL statement
    • db2_pclose - Closes a persistent database connection
    • 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_procedures - Returns a result set listing the stored procedures registered in a database
    • db2_procedure_columns - Returns a result set listing stored procedure parameters
    • db2_result - Returns a single column from a row in the result set
    • db2_rollback - Откатывает транзакцию
    • db2_server_info - Returns an object with properties that describe the DB2 database server
    • db2_set_option - Установка опции для соединения или ресурса оператора
    • 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_tables - Returns a result set listing the tables and associated metadata in a database
    • db2_table_privileges - Returns a result set listing the tables and associated privileges in a database
    • 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 - Заменяет запись в базе данных
    • dba_close - Закрывает базу данных DBA
    • 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 - Синхронизирует базу данных
    • dbplus_add - Добавляет кортеж к отношению
    • dbplus_aql - Выполняет запрос 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 - Создает новое отношение DB++
    • dbplus_rcrtexact - Создает точную, но пустую копию соотношения включая индексы
    • dbplus_rcrtlike - Создает пустую копию отношения с индексами по умолчанию
    • dbplus_resolve - Извлекает информацию о хосте отношения
    • dbplus_restorepos - Позиция восстановления
    • dbplus_rkeys - Задает новый первичный ключ для отношения
    • dbplus_ropen - Открыть файл отношений локально
    • dbplus_rquery - Выполнить локальный (сырой) AQL запрос
    • dbplus_rrename - Переименовывает отношение
    • dbplus_rsecindex - Создает новый вторичный индекс для отношения
    • dbplus_runlink - Удалить файл отношения
    • dbplus_rzap - Удаляет все кортежи для отношения
    • dbplus_savepos - Сохранить позицию
    • dbplus_setindex - Задать индекс
    • dbplus_setindexbynumber - Установить индекс по номеру
    • dbplus_sql - Выполнить SQL запрос
    • dbplus_tcl - Выполняет код 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_RESULT_UNBUFFERED
    • dbx_query - Посылает запрос и извлекает возвращенные строки (если есть)
    • dbx_sort - Сортирует результат dbx_query с помощью пользовательской функции
    • dcgettext - Переопределяет одно сообщение в домене
    • dcngettext - Версия dcgettext для множественного числа
    • debug_backtrace - Выводит стек вызовов функций в массив
    • debug_print_backtrace - Выводит стек вызовов функций
    • debug_zval_dump - Выводит строковое представление внутреннего значения zend
    • decbin - Переводит число из десятичной системы счисления в двоичную
    • dechex - Переводит число из десятичной системы счисления в шестнадцатеричную
    • decoct - Переводит число из десятичной системы счисления в восьмеричную
    • define - Определяет именованную константу
    • defined - Проверяет существование указанной именованной константы
    • define_syslog_variables - Инициализирует все связанные с syslog переменные
    • deflate_add - Инкрементальное сжатие данных
    • deflate_init - Инициализировать контекст инкрементального сжатия
    • deg2rad - Преобразует значение из градусов в радианы
    • delete - См. описание функции unlink или unset
    • dgettext - Переопределяет текущий домен для одного сообщения
    • die - Эквивалент функции exit
    • dio_close - Закрыть файловый дескриптор
    • dio_fcntl - Вызывает функцию библиотеки C fcntl для файлового дескриптора
    • dio_open - Открывает файл (по необходимости создает) на более низком уровне нежели потоковые функции ввода/вывода языка C
    • dio_read - Прочитай байты из файлового дескриптора
    • dio_seek - Переместить указатель в файловом дескрипторе
    • dio_stat - Получить информацию о файловом дескрипторе
    • dio_tcsetattr - Устанавливает атрибуты терминала и скорость передачи данных для последовательного порта
    • dio_truncate - Обрезает файл до заданного количества байт
    • dio_write - Записывает байты в файл, опционально обрезая до указанной длины
    • dir - Возвращает экземпляр класса Directory
    • Directory::close - Закрывает дескриптор каталога
    • Directory::read - Получает элемент из дескриптора каталога
    • Directory::rewind - Перемещает дескриптор каталога в начало каталога
    • DirectoryIterator::current - Возвращает текущий элемент DirectoryIterator
    • DirectoryIterator::getATime - Возвращает время последнего доступа к текущему элементу DirectoryIterator
    • DirectoryIterator::getBasename - Возвращает имя файла (без расширения) текущего элемента DirectoryIterator
    • DirectoryIterator::getCTime - Возвращает время последнего изменения inode текущего элемента DirectoryIterator
    • DirectoryIterator::getExtension - Возвращает расширение файла
    • DirectoryIterator::getFilename - Возвращает имя файла текущего элемента DirectoryIterator
    • DirectoryIterator::getGroup - Возвращает идентификатор группы текущего элемента DirectoryIterator
    • DirectoryIterator::getInode - Возвращает inode текущего элемента DirectoryIterator
    • DirectoryIterator::getMTime - Возвращает время последнего изменения текущего элемента DirectoryIterator
    • DirectoryIterator::getOwner - Возвращает идентификатор владельца текущего элемента DirectoryIterator
    • DirectoryIterator::getPath - Возвращает путь к текущему элементу DirectoryIterator без имени файла
    • DirectoryIterator::getPathname - Возвращает путь и имя файла текущего элемента DirectoryIterator
    • DirectoryIterator::getPerms - Возвращает набор прав для текущего элемента DirectoryIterator item
    • DirectoryIterator::getSize - Возвращает размер текущего элемента DirectoryIterator
    • DirectoryIterator::getType - Определяет тип текущего элемента DirectoryIterator
    • DirectoryIterator::isDir - Определяет, является ли текущий элемент DirectoryIterator директорией
    • DirectoryIterator::isDot - Определяет, является ли текущий элемент DirectoryIterator '.' или '..'
    • DirectoryIterator::isExecutable - Определяет, является ли текущий элемент DirectoryIterator исполняемым
    • DirectoryIterator::isFile - Определяет, является ли текущий элемент DirectoryIterator обычным файлом
    • DirectoryIterator::isLink - Определяет, является ли текущий элемент DirectoryIterator символической ссылкой
    • DirectoryIterator::isReadable - Определяет, доступен ли текущий элемент DirectoryIterator для чтения
    • DirectoryIterator::isWritable - Определяет, доступен ли текущий элемент DirectoryIterator для записи
    • DirectoryIterator::key - Возвращает ключ текущего элемента DirectoryIterator
    • DirectoryIterator::next - Перемещает указатель на следующий элемент DirectoryIterator
    • DirectoryIterator::rewind - Устанавливает указатель на первый элемент DirectoryIterator
    • DirectoryIterator::seek - Перемещает указатель DirectoryIterator на определённую позицию
    • DirectoryIterator::valid - Проверяет, является ли текущий элемент DirectoryIterator допустимым файлом
    • DirectoryIterator::__construct - Создаёт новый итератор директорий по пути
    • DirectoryIterator::__toString - Возвращает имя файла в виде строки
    • dirname - Возвращает имя родительского каталога из указанного пути
    • diskfreespace - Псевдоним disk_free_space
    • disk_free_space - Возвращает размер доступного пространства в каталоге или файловой системе
    • disk_total_space - Возвращает общий размер файловой системы или раздела диска
    • dl - Загружает расширение PHP во время выполнения
    • dngettext - Версия dgettext для множественного числа
    • dns_check_record - Псевдоним checkdnsrr
    • dns_get_mx - Псевдоним getmxrr
    • dns_get_record - Получение ресурсных записей DNS хоста
    • DocResult::fetchAll - Получить все строки
    • DocResult::fetchOne - Получить одну строку
    • DocResult::getWarnings - Получить предупреждения с последней операции
    • DocResult::getWarningsCount - Получить количество предупреждений с последней операции
    • DocResult::__construct - Конструктор DocResult
    • DOMAttr::isId - Проверяет, является ли атрибут определенным идентификатором
    • DOMAttr::__construct - Создает экземпляр класса DOMAttr
    • DOMCdataSection::__construct - Создает новый экземпляр класса DOMCdataSection
    • DOMCharacterData::appendData - Добавить строку в конец символьных данных узла
    • DOMCharacterData::deleteData - Удалить диапазон символов из узла
    • DOMCharacterData::insertData - Вставить строку в указанную 16-битную позицию
    • DOMCharacterData::replaceData - Заменить подстроку в узле типа DOMCharacterData
    • DOMCharacterData::substringData - Извлекает определенный диапазон данных из узла
    • DOMComment::__construct - Создает новый экземпляр класса DOMComment
    • DOMDocument::createAttribute - Создать новый атрибут
    • DOMDocument::createAttributeNS - Создает новый атрибут узла с соответствующим пространством имен
    • DOMDocument::createCDATASection - Создает новый узел cdata
    • DOMDocument::createComment - Создать новый узел комментария
    • DOMDocument::createDocumentFragment - Создать новый фрагмент документа
    • DOMDocument::createElement - Создать новый узел элемента
    • DOMDocument::createElementNS - Создать новый узел элемента с соответствующим пространством имен
    • DOMDocument::createEntityReference - Создать новый узел ссылки на сущность
    • DOMDocument::createProcessingInstruction - Создать новый PI-узел
    • DOMDocument::createTextNode - Создать новый текстовый узел
    • DOMDocument::getElementById - Ищет элемент с определенным идентификатором
    • DOMDocument::getElementsByTagName - Ищет все элементы с заданным локальным именем
    • DOMDocument::getElementsByTagNameNS - Ищет все элементы с заданным именем в указанном пространстве имен
    • DOMDocument::importNode - Импортировать узел в текущий документ
    • DOMDocument::load - Загрузка XML из файла
    • DOMDocument::loadHTML - Загрузка HTML из строки
    • DOMDocument::loadHTMLFile - Загрузка HTML из файла
    • DOMDocument::loadXML - Загрузка XML из строки
    • DOMDocument::normalizeDocument - Нормализует документ
    • DOMDocument::registerNodeClass - Регистрация расширенного класса, используемого для создания типа базового узла
    • DOMDocument::relaxNGValidate - Производит проверку документа на правильность построения посредством relaxNG
    • DOMDocument::relaxNGValidateSource - Проверяет документ посредством relaxNG
    • DOMDocument::save - Сохраняет XML-дерево из внутреннего представления в файл
    • DOMDocument::saveHTML - Сохраняет документ из внутреннего представления в строку, используя форматирование HTML
    • DOMDocument::saveHTMLFile - Сохраняет документ из внутреннего представления в файл, используя форматирование HTML
    • DOMDocument::saveXML - Сохраняет XML-дерево из внутреннего представления в виде строки
    • DOMDocument::schemaValidate - Проверяет действительность документа, основываясь на заданной схеме
    • DOMDocument::schemaValidateSource - Проверяет действительность документа, основываясь на схеме
    • DOMDocument::validate - Проверяет документ на соответствие его DTD
    • DOMDocument::xinclude - Проводит вставку XInclude в объекте DOMDocument
    • DOMDocument::__construct - Создает новый объект DOMDocument
    • DOMDocumentFragment::appendXML - Добавление необработанных данных XML
    • DOMElement::getAttribute - Возвращает значение атрибута
    • DOMElement::getAttributeNode - Возвращает узел атрибута
    • DOMElement::getAttributeNodeNS - Возвращает узел атрибута
    • DOMElement::getAttributeNS - Возвращает значение атрибута
    • DOMElement::getElementsByTagName - Возвращает элементы по имени тега
    • DOMElement::getElementsByTagNameNS - Получение элементов по локальному имени в заданном пространстве имен
    • DOMElement::hasAttribute - Проверяет, существует ли атрибут
    • DOMElement::hasAttributeNS - Проверяет, существует ли заданный атрибут
    • DOMElement::removeAttribute - Удаляет атрибут
    • DOMElement::removeAttributeNode - Удаляет атрибут
    • DOMElement::removeAttributeNS - Удаляет атрибут
    • DOMElement::setAttribute - Добавляет новый атрибут
    • DOMElement::setAttributeNode - Добавляет новый узел атрибута в элемент
    • DOMElement::setAttributeNodeNS - Добавляет новый атрибут в элемент
    • DOMElement::setAttributeNS - Добавляет новый атрибут
    • DOMElement::setIdAttribute - Объявляет атрибут, указанный именем, с идентификатором типа
    • DOMElement::setIdAttributeNode - Объявляет атрибут, указанный узлом, с идентификатором типа
    • DOMElement::setIdAttributeNS - Объявляет атрибут, указанный локальным именем и URI пространства имен, с идентификатором типа
    • DOMElement::__construct - Создает новый экземпляр класса DOMElement
    • DOMEntityReference::__construct - Создает новый объект класса DOMEntityReference
    • DOMImplementation::createDocument - Создает объект класса DOMDocument заданного типа с его элементом document
    • DOMImplementation::createDocumentType - Создает пустой объект класса DOMDocumentType
    • DOMImplementation::hasFeature - Проверка, реализована ли определенная возможность в реализации DOM
    • DOMImplementation::__construct - Создает новый объект класса DOMImplementation
    • DOMNamedNodeMap::count - Количество узлов в отображении
    • DOMNamedNodeMap::getNamedItem - Получает узел, указанный по имени
    • DOMNamedNodeMap::getNamedItemNS - Получает узел с заданным локальным именем и URI пространства имен
    • DOMNamedNodeMap::item - Получает узел с заданным индексом
    • DOMNode::appendChild - Добавляет новый дочерний узел в конец списка потомков
    • DOMNode::C14N - Канонизировать узлы в строку
    • DOMNode::C14NFile - Канонизировать узлы в файл
    • DOMNode::cloneNode - Клонирует узел
    • DOMNode::getLineNo - Получить номер строки узла
    • DOMNode::getNodePath - Получение XPath узла
    • DOMNode::hasAttributes - Проверяет, имеет ли данный узел атрибуты
    • DOMNode::hasChildNodes - Проверяет, имеет ли данный узел потомков
    • DOMNode::insertBefore - Добавляет новый дочерний узел перед указанным узлом
    • DOMNode::isDefaultNamespace - Проверяет, является ли указанный URI пространства имен узла пространством имен по умолчанию или нет
    • DOMNode::isSameNode - Указывает, являются ли два узла одним и тем же узлом
    • DOMNode::isSupported - Проверяет, поддерживается ли возможность в определенной версии
    • DOMNode::lookupNamespaceUri - Получает URI пространства имен узла по префиксу
    • DOMNode::lookupPrefix - Возвращает префикс пространства имен узла из URI пространства имен
    • DOMNode::normalize - Нормализует узел
    • DOMNode::removeChild - Удаляет дочерний узел из списка потомков
    • DOMNode::replaceChild - Заменяет дочерний узел
    • DOMNodeList::count - Получить количество узлов в списке
    • DOMNodeList::item - Получает узел с заданным индексом
    • DOMProcessingInstruction::__construct - Создает новый объект класса DOMProcessingInstruction
    • DOMText::isElementContentWhitespace - Возвращает, содержит ли текстовый узел пробел в содержимом элемента
    • DOMText::isWhitespaceInElementContent - Определяет, содержит ли текстовый узел пробелы в содержимом
    • DOMText::splitText - Разделяет узел на два, начиная с заданной позиции
    • DOMText::__construct - Создает объект класса DOMText
    • DOMXPath::evaluate - Вычисляет переданное выражение XPath и возвращает типизированный результат, если возможно
    • DOMXPath::query - Выполняет заданное выражение XPath
    • DOMXPath::registerNamespace - Регистрирует пространство имен с объектом DOMXPath
    • DOMXPath::registerPhpFunctions - Регистрация PHP-функций как функций XPath
    • DOMXPath::__construct - Создает новый объект класса DOMXPath
    • dom_import_simplexml - Получает объект класса DOMElement из объекта класса SimpleXMLElement
    • DOTNET::__construct - Конструктор класса DOTNET
    • doubleval - Псевдоним floatval
    • Ds\Collection::clear - Удаляет все значения
    • Ds\Collection::copy - Возвращает копию коллекции
    • Ds\Collection::isEmpty - Проверяет, пуста ли коллекция
    • Ds\Collection::toArray - Преобразует коллекцию в массив (array)
    • Ds\Deque::allocate - Выделяет память под указанную вместимость
    • Ds\Deque::apply - Обновляет все значения, применяя callback-функцию к каждому значению
    • Ds\Deque::capacity - Возвращает текущую вместимость
    • Ds\Deque::clear - Удаляет все значения из двухсторонней очереди
    • Ds\Deque::contains - Проверяет, содержится ли в двухсторонней очереди заданные значения
    • Ds\Deque::copy - Возвращает поверхностную копию коллекции
    • Ds\Deque::count - Возвращает количество элементов двухсторонней очереди
    • Ds\Deque::filter - Создает новую двухстороннюю очередь из элементов, выбранных с помощью заданной callback-функции
    • Ds\Deque::find - Поиск индекса по значению
    • Ds\Deque::first - Возвращает первый элемент двухсторонней очереди
    • Ds\Deque::get - Возвращает значение по индексу
    • Ds\Deque::insert - Вставляет значения по указанному индексу
    • Ds\Deque::isEmpty - Проверяет, пуста ли двухсторонняя очередь
    • Ds\Deque::join - Склеивает все значения в строку
    • Ds\Deque::jsonSerialize - Возвращает коллекцию в JSON-представлении
    • Ds\Deque::last - Возвращает последнее значение двухсторонней очереди
    • Ds\Deque::map - Возвращает результат применения callback-функции ко всем значениям двухсторонней очереди
    • Ds\Deque::merge - Возвращает результат добавления всех заданных значений в двухстороннюю очередь
    • Ds\Deque::pop - Удаляет и возвращает последнее значение
    • Ds\Deque::push - Добавляет значения в конец двухсторонней очереди
    • Ds\Deque::reduce - Уменьшает коллекцию до одного значения, используя callback-функцию
    • Ds\Deque::remove - Удаляет и возвращает значение по индексу
    • Ds\Deque::reverse - Переворачивает текущую двухстороннюю очередь
    • Ds\Deque::reversed - Возвращает перевернутую копию двухсторонней очереди
    • Ds\Deque::rotate - Перематывает двухстороннюю очередь на заданное число значений
    • Ds\Deque::set - Заменяет значение по указанному индексу
    • Ds\Deque::shift - Удаляет и возвращает первое значение
    • Ds\Deque::slice - Возвращает подочередь из заданного диапазона
    • Ds\Deque::sort - Сортирует двухстороннюю очередь
    • Ds\Deque::sorted - Возвращает отсортированную по значению копию двухсторонней очереди
    • Ds\Deque::sum - Возвращает сумму всех значений двухсторонней очереди
    • Ds\Deque::toArray - Преобразует двухстороннюю очередь в массив (array)
    • Ds\Deque::unshift - Добавляет значения в начало двухсторонней очереди
    • Ds\Deque::__construct - Создает новый экземпляр
    • Ds\Hashable::equals - Определяет, равен ли текущий экземпляр переданному объекту
    • Ds\Hashable::hash - Возвращает скалярное значение для использования в качестве значения хеша
    • Ds\Map::allocate - Выделяет необходимое количество памяти под требуюмую вместимость
    • Ds\Map::apply - Обновление всех значений применением к ним переданной callback-функции
    • Ds\Map::capacity - Возвращает текущую вместимость
    • Ds\Map::clear - Удаляет все значения из коллекции
    • Ds\Map::copy - Возвращает поверхностную копию коллекции
    • Ds\Map::count - Возвращает количество элементов коллекции
    • Ds\Map::diff - Создает новую коллекцию пар с элементами, ключей которых нет в другой коллекции пар
    • Ds\Map::filter - Создает новую коллекцию пар из элементов, выбранных с помощью заданной callback-функции
    • Ds\Map::first - Возвращает первый элемент коллекции
    • Ds\Map::get - Возвращает значение по ключу
    • Ds\Map::hasKey - Проверяет, содержит ли коллекция заданный ключ
    • Ds\Map::hasValue - Проверяет, содержит ли коллекция заданное значение
    • Ds\Map::intersect - Создает новую коллекцию пар, созданную пересечением с другой коллекцией пар
    • Ds\Map::isEmpty - Проверяет, пуста ли коллекция
    • Ds\Map::jsonSerialize - Возвращает коллекцию в JSON-представлении
    • Ds\Map::keys - Возвращает набор ключей коллекции
    • Ds\Map::ksort - Сортирует текущую коллекцию по ключам
    • Ds\Map::ksorted - Возвращает копию коллекции, отсортированной по ключам
    • Ds\Map::last - Возвращает последнюю пару коллекции
    • Ds\Map::map - Возвращает результат применения callback-функции ко всем значениям коллекции
    • Ds\Map::merge - Возвращает результат добавления всех заданных элементов в коллекцию
    • Ds\Map::pairs - Возвращает последовательность, содержащую все пары коллекции
    • Ds\Map::put - Установка значения по заданному ключу
    • Ds\Map::putAll - Связывает с коллекцией все пары ключ-значение из объекта класса traversable или массива
    • Ds\Map::reduce - Уменьшает коллекцию до одного значения, используя callback-функцию
    • Ds\Map::remove - Удаляет и возвращает значение по ключу
    • Ds\Map::reverse - Переворачивает текущую коллекцию
    • Ds\Map::reversed - Возвращает перевернутую копию коллекции
    • Ds\Map::skip - Возвращает пару по индексу позиции
    • Ds\Map::slice - Возвращает подмножество коллекции из заданного диапазона
    • Ds\Map::sort - Сортирует коллекцию по значениям
    • Ds\Map::sorted - Возвращает отсортированную по значению копию коллекции
    • Ds\Map::sum - Возвращает сумму всех значений коллекции
    • Ds\Map::toArray - Преобразует коллекцию в array
    • Ds\Map::union - Создает новую коллекцию пар из элементов двух коллекций
    • Ds\Map::values - Возвращает последовательность значений коллекции
    • Ds\Map::xor - Создает новую коллекцию пар из элементов, которые есть в одной из коллекций, но не в обеих одновременно
    • Ds\Map::__construct - Создает новый экземпляр
    • Ds\Pair::clear - Удаляет все значения
    • Ds\Pair::copy - Возвращает поверхностную копию пары
    • Ds\Pair::isEmpty - Проверяет, является ли пара пустой
    • Ds\Pair::jsonSerialize - Возвращает пару в представлении JSON
    • Ds\Pair::toArray - Преобразует пару в массив (array)
    • Ds\Pair::__construct - Создает экземпляр класса
    • Ds\PriorityQueue::allocate - Выделяет память под указанную вместимость
    • Ds\PriorityQueue::capacity - Возвращает текущую вместимость
    • Ds\PriorityQueue::clear - Удаляет все значения
    • Ds\PriorityQueue::copy - Возвращает поверхностную копию очереди
    • Ds\PriorityQueue::count - Возвращает количество элементов в очереди
    • Ds\PriorityQueue::isEmpty - Проверяет, пуста ли коллекция
    • Ds\PriorityQueue::jsonSerialize - Возвращает коллекцию в JSON-представление
    • Ds\PriorityQueue::peek - Возвращает значение из начала очереди
    • Ds\PriorityQueue::pop - Удаляет и возвращает значение с наивысшим приоритетом
    • Ds\PriorityQueue::push - Добавляет значение в очередь
    • Ds\PriorityQueue::toArray - Преобразует очередь в массив (array)
    • Ds\PriorityQueue::__construct - Создает новый экземпляр
    • Ds\Queue::allocate - Выделяет память под указанную вместимость
    • Ds\Queue::capacity - Возвращает текущую вместимость
    • Ds\Queue::clear - Удаляет все значения
    • Ds\Queue::copy - Возвращает поверхностную копию очереди
    • Ds\Queue::count - Возвращает количество элементов очереди
    • Ds\Queue::isEmpty - Проверяет, пуста ли коллекция
    • Ds\Queue::jsonSerialize - Возвращает коллекцию в JSON-представлении
    • Ds\Queue::peek - Возвращает значение из начала очереди
    • Ds\Queue::pop - Удаляет и возвращает значение из начала очереди
    • Ds\Queue::push - Добавляет значения в очередь
    • Ds\Queue::toArray - Преобразует коллекцию в массив (array)
    • Ds\Queue::__construct - Создает новый экземпляр
    • Ds\Sequence::allocate - Выделение памяти под указанную вместимость
    • Ds\Sequence::apply - Обновление всех значений применением к ним переданной callback-функции
    • Ds\Sequence::capacity - Возвращает текущую вместимость
    • Ds\Sequence::contains - Проверяет, содержатся ли в коллекции заданные значения
    • Ds\Sequence::filter - Создает новую последовательность из элементов, выбранных с помощью заданной callback-функции
    • Ds\Sequence::find - Поиск индекса по значению
    • Ds\Sequence::first - Возвращает первый элемент коллекции
    • Ds\Sequence::get - Возвращает значение по индексу
    • Ds\Sequence::insert - Вставляет значения по указанному индексу
    • Ds\Sequence::join - Склеивает все значения в строку
    • Ds\Sequence::last - Возвращает последнее значение коллекции
    • Ds\Sequence::map - Возвращает результат применения callback-функции ко всем значениям коллекции
    • Ds\Sequence::merge - Возвращает результат добавления всех заданных значений в коллекцию
    • Ds\Sequence::pop - Удаляет и возвращает последнее значение
    • Ds\Sequence::push - Добавляет значения в конец последовательности
    • Ds\Sequence::reduce - Схлопывает коллекцию до одного значения используя callback-функцию
    • Ds\Sequence::remove - Удаляет и возвращает значение по индексу
    • Ds\Sequence::reverse - Переворачивает текущую коллекцию
    • Ds\Sequence::reversed - Возвращает перевернутую копию коллекции
    • Ds\Sequence::rotate - Перематывает последовательность на заданное число значений
    • Ds\Sequence::set - Заменяет значение по указанному индексу
    • Ds\Sequence::shift - Удаляет и возвращает первое значение
    • Ds\Sequence::slice - Возвращает под-коллекцию из заданного диапазона
    • Ds\Sequence::sort - Сортирует коллекцию
    • Ds\Sequence::sorted - Возвращает отсортированную по значению копию коллекции
    • Ds\Sequence::sum - Возвращает сумму всех значений коллекции
    • Ds\Sequence::unshift - Добавляет значения в начало последовательности
    • Ds\Set::add - Добавляет значения в набор
    • Ds\Set::allocate - Выделяет память под указанную вместимость
    • Ds\Set::capacity - Возвращает текущую вместимость
    • Ds\Set::clear - Удаляет все значения из коллекции
    • Ds\Set::contains - Проверяет, содержится ли в коллекции заданные значения
    • Ds\Set::copy - Возвращает поверхностную копию коллекции
    • Ds\Set::count - Возвращает количество элементов коллекции
    • Ds\Set::diff - Создает новый набор с элементами, которых нет в другом наборе
    • Ds\Set::filter - Создает новый список из элементов, выбранных с помощью заданной callback-функции
    • Ds\Set::first - Возвращает первый элемент коллекции
    • Ds\Set::get - Возвращает значение по индексу
    • Ds\Set::intersect - Создает новый набор, созданный пересечением с другим набором
    • Ds\Set::isEmpty - Проверяет, пуста ли коллекция
    • Ds\Set::join - Склеивает все значения в строку
    • Ds\Set::jsonSerialize - Возвращает коллекцию в JSON-представлении
    • Ds\Set::last - Возвращает последнее значение коллекции
    • Ds\Set::merge - Возвращает результат добавления всех заданных значений в набор
    • Ds\Set::reduce - Уменьшает коллекцию до одного значения, используя callback-функцию
    • Ds\Set::remove - Удаляет все заданные значения из набора
    • Ds\Set::reverse - Переворачивает текущую коллекцию
    • Ds\Set::reversed - Возвращает перевернутую копию коллекции
    • Ds\Set::slice - Возвращает поднабор из заданного диапазона
    • Ds\Set::sort - Сортирует коллекцию
    • Ds\Set::sorted - Возвращает отсортированную по значению копию коллекции
    • Ds\Set::sum - Возвращает сумму всех значений коллекции
    • Ds\Set::toArray - Преобразует коллекцию в массив (array)
    • Ds\Set::union - Создает новый набор из элементов текущего и переданного наборов
    • Ds\Set::xor - Создает новый набор из значений, которые есть в одном из наборов, но не в обоих одновременно
    • Ds\Set::__construct - Создает новый экземпляр класса
    • Ds\Stack::allocate - Выделяет память под указанную вместимость
    • Ds\Stack::capacity - Возвращает текущую вместимость
    • Ds\Stack::clear - Удаляет все значения из коллекции
    • Ds\Stack::copy - Возвращает поверхностную копию коллекции
    • Ds\Stack::count - Возвращает количество элементов коллекции
    • Ds\Stack::isEmpty - Проверяет, пуста ли коллекция
    • Ds\Stack::jsonSerialize - Возвращает коллекцию в JSON-представлении
    • Ds\Stack::peek - Возвращает значение с вершины стека
    • Ds\Stack::pop - Удаляет и возвращает значение с вершины стека
    • Ds\Stack::push - Добавляет значения в стек
    • Ds\Stack::toArray - Преобразует коллекцию в массив (array)
    • Ds\Stack::__construct - Создает новый экземпляр класса
    • Ds\Vector::allocate - Выделяет память под указанную вместимость
    • Ds\Vector::apply - Обновляет все значения, применяя к ним переданную callback-функцию
    • Ds\Vector::capacity - Возвращает текущую вместимость
    • Ds\Vector::clear - Удаляет все значения
    • Ds\Vector::contains - Проверяет, содержится ли в векторе заданные значения
    • Ds\Vector::copy - Возвращает поверхностную копию вектора
    • Ds\Vector::count - Возвращает количество элементов вектора
    • Ds\Vector::filter - Создает новый вектор из элементов, выбранных с помощью заданной callback-функции
    • Ds\Vector::find - Поиск индекса по значению
    • Ds\Vector::first - Возвращает первый элемент вектора
    • Ds\Vector::get - Возвращает значение по индексу
    • Ds\Vector::insert - Вставляет значения по указанному индексу
    • Ds\Vector::isEmpty - Проверяет, пуст ли вектор
    • Ds\Vector::join - Склеивает все значения в строку
    • Ds\Vector::jsonSerialize - Возвращает вектор в JSON-представлении
    • Ds\Vector::last - Возвращает последнее значение вектора
    • Ds\Vector::map - Возвращает результат применения callback-функции ко всем значениям вектора
    • Ds\Vector::merge - Возвращает результат добавления всех заданных значений в вектор
    • Ds\Vector::pop - Удаляет и возвращает последнее значение
    • Ds\Vector::push - Добавляет значения в конец вектора
    • Ds\Vector::reduce - Уменьшает вектор до одного значения, используя callback-функцию
    • Ds\Vector::remove - Удаляет и возвращает значение по индексу
    • Ds\Vector::reverse - Переворачивает текущий вектор
    • Ds\Vector::reversed - Возвращает перевернутую копию вектора
    • Ds\Vector::rotate - Перематывает вектор на заданное число значений
    • Ds\Vector::set - Заменяет значение по указанному индексу
    • Ds\Vector::shift - Удаляет и возвращает первое значение
    • Ds\Vector::slice - Возвращает подвектор из заданного диапазона
    • Ds\Vector::sort - Сортирует вектор
    • Ds\Vector::sorted - Возвращает отсортированную по значению копию коллекции
    • Ds\Vector::sum - Возвращает сумму всех значений коллекции
    • Ds\Vector::toArray - Преобразует коллекцию в массив (array)
    • Ds\Vector::unshift - Добавляет значения в начало вектора
    • Ds\Vector::__construct - Создает новый экземпляр
  • e
    • each - Возвращает текущую пару ключ/значение из массива и смещает его указатель
    • easter_date - Получить метку времени Unix, соответствующую полуночи на Пасху в заданном году
    • easter_days - Получить количество дней между 21 марта и Пасхой в заданном году
    • echo - Выводит одну или более строк
    • eio_busy - Искусственно увеличивает нагрузку. Может быть полезно при тестировании, изучении производительности
    • eio_cancel - Отменяет запрос
    • eio_chmod - Изменяет права доступа к файлу/директории
    • eio_chown - Изменяет права доступа к файлу/директории
    • eio_close - Закрыть файл
    • eio_custom - Выполняет пользовательский запрос как любой другой eio_* вызов
    • eio_dup2 - Создает дубликат дескриптора файла
    • eio_event_loop - Взаимодействует с libeio до тех пор, пока все запросы не будут выполнены
    • eio_fallocate - Позволяет напрямую управлять размером используемого дискового пространства для файла
    • eio_fchmod - Изменяет права доступа к файлу
    • eio_fchown - Изменяет владельца файла
    • eio_fdatasync - Синхронизирует текущее состояние файла с физическим устройством
    • eio_fstat - Возвращает статус файла
    • eio_fstatvfs - Возвращает статистику файловой системы
    • eio_fsync - Синхронизирует текущее состояние файла с физическим устройством
    • eio_ftruncate - Урезает размер файла
    • eio_futime - Изменяет дату и время последней модификации и доступа к файлу
    • eio_get_event_stream - Возвращает поток, отражающий переменную, используемую при взаимодействии с libeio
    • eio_get_last_error - Возвращает последнюю ошибку, связанную с указателем на ресурс
    • eio_grp - Создает группу запросов
    • eio_grp_add - Добавляет запрос в группу запросов
    • eio_grp_cancel - Отменяет группу запросов
    • eio_grp_limit - Устанавливает предельное количество запросов в группе
    • eio_init - (Ре-)инициализирует Eio
    • eio_link - Создает жесткую ссылку на файл
    • eio_lstat - Возвращает статус файла
    • eio_mkdir - Создание директории
    • eio_mknod - Создает специальный или обычный файл
    • eio_nop - Проход по циклу запроса, не совершая никаких операций
    • eio_npending - Возвращает число завершенных, но необработанных процессов
    • eio_nready - Возвращает число еще не обработанных запросов
    • eio_nreqs - Возвращает число запросов, которые предстоит выполнить
    • eio_nthreads - Возвращает количество используемых в данный момент потоков
    • eio_open - Открывает файл
    • eio_poll - Может быть вызвана когда имеются запросы, ожидающие выполнения
    • eio_read - Читает данные из файла, начиная с заданного смещения
    • eio_readahead - Помещает данные из файла в кэш страницы
    • eio_readdir - Читает содержимое директории
    • eio_readlink - Читает значение символической ссылки
    • eio_realpath - Получает абсолютный приведенный к каноническому виду путь
    • eio_rename - Изменяет имя или перемещает файл
    • eio_rmdir - Удаляет директорию
    • eio_seek - Перемещает файловый указатель файла fd на число байт offset в соответствии с директивой whence
    • eio_sendfile - Перемещает данные между файлами
    • eio_set_max_idle - Устанавливает максимальное количество ожидающих потоков
    • eio_set_max_parallel - Устанавливает максимальное количество параллельных потоков
    • eio_set_max_poll_reqs - Устанавливает максимальное количество обрабатываемых запросов
    • eio_set_max_poll_time - Устанавливает максимальное время выполнения
    • eio_set_min_parallel - Устанавливает минимальное количество параллельных потоков
    • eio_stat - Возвращает статус файла
    • eio_statvfs - Возвращает статистику файловой системы
    • eio_symlink - Создает символическую ссылку
    • eio_sync - Записывает кеш из буфера на диск
    • eio_syncfs - Вызывает системный syncfs в Linux, если это доступно
    • eio_sync_file_range - Синхронизирует сегмент файла с данными файла на внешнем хранилище
    • eio_truncate - Урезает размер файла
    • eio_unlink - Удаляет файл или одну из жестких ссылок на него
    • eio_utime - Изменяет дату и время последней модификации и доступа к файлу
    • eio_write - Запись в файл
    • empty - Проверяет, пуста ли переменная
    • EmptyIterator::current - Метод current()
    • EmptyIterator::key - Метод key()
    • EmptyIterator::next - Метод next()
    • EmptyIterator::rewind - Метод rewind()
    • EmptyIterator::valid - Метод valid()
    • enchant_broker_describe - Перечисляет провайдеров Enchant
    • enchant_broker_dict_exists - Проверяет, присутствует ли словарь или нет. Используется не пустой тег
    • enchant_broker_free - Освобождает ресурс брокера и его словари
    • enchant_broker_free_dict - Освобождает ресурс словаря
    • enchant_broker_get_dict_path - Возвращает путь словаря для заданного бэкенда
    • enchant_broker_get_error - Возвращает последнюю ошибку брокера
    • enchant_broker_init - Создать новый объект брокера
    • enchant_broker_list_dicts - Возвращает список доступных словарей
    • enchant_broker_request_dict - Создать новый словарь используя тег
    • enchant_broker_request_pwl_dict - Создать словарь используя файл PWL
    • enchant_broker_set_dict_path - Установить путь для заданного бэкенда
    • enchant_broker_set_ordering - Задать предпочтения по выбору словарей для языка
    • enchant_dict_add_to_personal - Добавить слово в список персональных слов
    • enchant_dict_add_to_session - Добавить слово в текущую сессию проверки
    • enchant_dict_check - Проверяет, корректно ли задано слово
    • enchant_dict_describe - Возвращает информацию о словаре
    • enchant_dict_get_error - Возвращает последнюю ошибку текущей сессии проверки
    • enchant_dict_is_in_session - Присутствует ли слово 'word' в сессии проверки
    • enchant_dict_quick_check - Проверить, правильно ли написано слово и предложить варианты замены
    • enchant_dict_store_replacement - Добавить исправление для слова
    • enchant_dict_suggest - Вернет список возможных вариантов для слова с ошибкой
    • end - Устанавливает внутренний указатель массива на его последний элемент
    • ereg - Совпадение с регулярным выражением
    • eregi - Совпадение с регулярным выражением без учёта регистра
    • eregi_replace - Осуществляет замену по регулярному выражению без учета регистра
    • ereg_replace - Осуществляет замену по регулярному выражению
    • Error::getCode - Возвращает код ошибки
    • Error::getFile - Получает файл, в котором произошла ошибка
    • Error::getLine - Получает номер строки, в которой произошла ошибка
    • Error::getMessage - Получает сообщение об ошибке
    • Error::getPrevious - Возвращает предыдущий Throwable
    • Error::getTrace - Получает трассировку стека
    • Error::getTraceAsString - Получает трассировку стека в виде строки
    • Error::__clone - Клонирует ошибку
    • Error::__construct - Создает объект класса Error
    • Error::__toString - Строковое представление ошибки
    • ErrorException::getSeverity - Получает серьезность исключения
    • ErrorException::__construct - Создает исключение
    • error_clear_last - Очистить самую последнюю ошибку
    • error_get_last - Получение информации о последней произошедшей ошибке
    • error_log - Отправляет сообщение об ошибке заданному обработчику ошибок
    • error_reporting - Задает, какие ошибки PHP попадут в отчет
    • escapeshellarg - Экранировать строку для того, чтобы она могла быть использована как аргумент командной строки
    • escapeshellcmd - Экранировать метасимволы командной строки
    • Ev::backend - Возвращает целое число, описывающее бекэнд, используемый libev
    • Ev::depth - Получить глубину рекурсии
    • Ev::embeddableBackends - Возвращает набор бекэндов, которые можно встроить в прочие событийные циклы
    • Ev::feedSignal - Передаем событие сигнала в Ev
    • Ev::feedSignalEvent - Послать событие сигнала в цикл по умолчанию
    • Ev::iteration - Получить количество произведенных опросов цикла по умолчанию на предмет новых событий
    • Ev::now - Получить время запуска последней итерации цикла по умолчанию
    • Ev::nowUpdate - Устанавливает текущее время путем запроса к ядру в процессе обновляя время, возвращаемое Ev::now
    • Ev::recommendedBackends - Получить битовую маску рекомендованных бекэндов для данной платформы
    • Ev::resume - Возобновить выполнение приостановленного ранее событийного цикла по умолчанию
    • Ev::run - Начать проверку наличия событий и вызов callback-функций цикла по умолчанию
    • Ev::sleep - Блокировать процесс заданное количество секунд
    • Ev::stop - Остановить событийный цикл по умолчанию
    • Ev::supportedBackends - Возвращает набор бекэндов, поддерживаемых текущей конфигурацией libev
    • Ev::suspend - Приостановить событийный цикл по умолчанию
    • Ev::time - Возвращает текущее время в секундах(дробное число) прошедшее с начала эпохи Unix
    • Ev::verify - Производит внутренную проверку целосности(для отладки)
    • eval - Выполняет код PHP, содержащейся в строке
    • EvCheck::createStopped - Создает остановленный экземпляр наблюдателя EvCheck
    • EvCheck::__construct - Конструктор объекта EvCheck
    • EvChild::createStopped - Создает остановленный экземпляр наблюдателя EvCheck
    • EvChild::set - Конфигурирование наблюдателя
    • EvChild::__construct - Создает объект наблюдатель EvChild
    • EvEmbed::createStopped - Создает остановленный объект наблюдатель EvEmbed
    • EvEmbed::set - Настройка наблюдателя
    • EvEmbed::sweep - Делает одиночную, неблокирующую развертку по встроенному циклу
    • EvEmbed::__construct - Конструктор объекта EvEmbed
    • Event::add - Перести событие в состояние ожидания
    • Event::addSignal - Перевести событие сигнала в состояние ожидания
    • Event::addTimer - Перевести событие таймера в состояние ожидания
    • Event::del - Перевести событие в пассивное состояние
    • Event::delSignal - Перевести событие сигнала в пассивное состояние
    • Event::delTimer - Перевести событие таймера в пассивное состояние
    • Event::free - Перевести событие в пассивное состояние и высвободить все выделенные для него ресурсы
    • Event::getSupportedMethods - Получить массив с именами методов, поддерживаемых в текущей версии Libevent
    • Event::pending - Проверить, что событие находится в состоянии ожидания либо что оно запланировано
    • Event::set - Переконфигурировать событие
    • Event::setPriority - Задать приоритет событию
    • Event::setTimer - Переконфигурация события таймера
    • Event::signal - Создать объект события сигнала
    • Event::timer - Создать объект события таймера
    • Event::__construct - Конструктор объекта Event
    • EventBase::dispatch - Отправляет ожидающие события
    • EventBase::exit - Прекращает отправку событий
    • EventBase::free - Освобождает ресурсы, выделенные для этой базы событий
    • EventBase::getFeatures - Возвращает битовую маску поддерживаемых функций
    • EventBase::getMethod - Возвращает используемый метод события
    • EventBase::getTimeOfDayCached - Возвращает текущее время базовы событий
    • EventBase::gotExit - Проверяет, был ли цикл обработки событий завершен
    • EventBase::gotStop - Проверяет, был ли цикл обработки событий завершен
    • EventBase::loop - Отправка ожидающих событий
    • EventBase::priorityInit - Устанавливает количество приоритетов на базу событий
    • EventBase::reInit - Повторная инициализация базы событий (после разветвления)
    • EventBase::stop - Сообщает event_base прекратить отправку событий
    • EventBase::__construct - Конструктор объекта EventBase
    • EventBuffer::add - Добавляет данные в конец буфера событий
    • EventBuffer::addBuffer - Перемещает все данные из буфера экземпляру EventBuffer
    • EventBuffer::appendFrom - Перемещает указанное количество байтов из исходного буфера в конец текущего буфера
    • EventBuffer::copyout - Копирует указанное количество байтов с начала буфера
    • EventBuffer::drain - Удаляет указанное количество байтов с начала буфера, никуда не копируя
    • EventBuffer::enableLocking - Описание
    • EventBuffer::expand - Резервирует пространство в буфере
    • EventBuffer::freeze - Prevent calls that modify an event buffer from succeeding
    • EventBuffer::lock - Получает блокировку буфера
    • EventBuffer::prepend - Prepend data to the front of the buffer
    • EventBuffer::prependBuffer - Moves all data from source buffer to the front of current buffer
    • EventBuffer::pullup - Linearizes data within buffer and returns it's contents as a string
    • EventBuffer::read - Read data from an evbuffer and drain the bytes read
    • EventBuffer::readFrom - Read data from a file onto the end of the buffer
    • EventBuffer::readLine - Extracts a line from the front of the buffer
    • EventBuffer::search - Scans the buffer for an occurrence of a string
    • EventBuffer::searchEol - Scans the buffer for an occurrence of an end of line
    • EventBuffer::substr - Substracts a portion of the buffer data
    • EventBuffer::unfreeze - Re-enable calls that modify an event buffer
    • EventBuffer::unlock - Снимает блокировку, установленную EventBuffer::lock
    • EventBuffer::write - Write contents of the buffer to a file or socket
    • EventBuffer::__construct - Создает объект EventBuffer
    • EventBufferEvent::close - Closes file descriptor associated with the current buffer event
    • EventBufferEvent::connect - Connect buffer event's file descriptor to given address or UNIX socket
    • EventBufferEvent::connectHost - Connects to a hostname with optionally asyncronous DNS resolving
    • EventBufferEvent::createPair - Creates two buffer events connected to each other
    • EventBufferEvent::disable - Disable events read, write, or both on a buffer event
    • EventBufferEvent::enable - Enable events read, write, or both on a buffer event
    • EventBufferEvent::free - Free a buffer event
    • EventBufferEvent::getDnsErrorString - Returns string describing the last failed DNS lookup attempt
    • EventBufferEvent::getEnabled - Returns bitmask of events currently enabled on the buffer event
    • EventBufferEvent::getInput - Returns underlying input buffer associated with current buffer event
    • EventBufferEvent::getOutput - Returns underlying output buffer associated with current buffer event
    • EventBufferEvent::read - Read buffer's data
    • EventBufferEvent::readBuffer - Drains the entire contents of the input buffer and places them into buf
    • EventBufferEvent::setCallbacks - Assigns read, write and event(status) callbacks
    • EventBufferEvent::setPriority - Assign a priority to a bufferevent
    • EventBufferEvent::setTimeouts - Set the read and write timeout for a buffer event
    • EventBufferEvent::setWatermark - Adjusts read and/or write watermarks
    • EventBufferEvent::sslError - Возвращает последнюю ошибку OpenSSL, сообщенную буферному событию
    • EventBufferEvent::sslFilter - Create a new SSL buffer event to send its data over another buffer event
    • EventBufferEvent::sslGetCipherInfo - Возвращает текстовое описание шифра
    • EventBufferEvent::sslGetCipherName - Возвращает текущее имя шифра соединения SSL
    • EventBufferEvent::sslGetCipherVersion - Возвращает версию шифра, используемого текущим SSL-соединением
    • EventBufferEvent::sslGetProtocol - Возвращает имя протокола, используемого для текущего соединения SSL
    • EventBufferEvent::sslRenegotiate - Сообщает буферному событию начать пересмотр SSL
    • EventBufferEvent::sslSocket - Создает новое буферное событие SSL для отправки своих данных через SSL в сокет
    • EventBufferEvent::write - Добавляет данные в буфер вывода буферного события
    • EventBufferEvent::writeBuffer - Добавляет содержимое всего буфера в буфер вывода буферного события
    • EventBufferEvent::__construct - Constructs EventBufferEvent object
    • EventConfig::avoidMethod - Попросить libevent не использовать определенный метод события
    • EventConfig::requireFeatures - Ввести требуемые приложением свойства метода события
    • EventConfig::setMaxDispatchInterval - Предотвратить инверсию приоритетов
    • EventConfig::__construct - Создать объект EventConfig
    • EventDnsBase::addNameserverIp - Добавляет сервер имен в базу DNS
    • EventDnsBase::addSearch - Добавляет домен в список поисковых доменов
    • EventDnsBase::clearSearch - Удаляет все текущие суффиксы поиска
    • EventDnsBase::countNameservers - Получает количество настроенных серверов имен
    • EventDnsBase::loadHosts - Загружает файл hosts (в том же формате, что и /etc/hosts) из файла hosts
    • EventDnsBase::parseResolvConf - Сканирует файл в формате resolv.conf
    • EventDnsBase::setOption - Устанавливает значение параметра конфигурации
    • EventDnsBase::setSearchNdots - Устанавливает параметр 'ndots' для поиска
    • EventDnsBase::__construct - Конструктор объекта EventDnsBase
    • EventHttp::accept - Заставляет HTTP-сервер принимать соединения с указанным потоком сокета или ресурсом
    • EventHttp::addServerAlias - Добавляет псевдоним сервера к объекту HTTP-сервера
    • EventHttp::bind - Привязывает HTTP-сервер к указанному адресу и порту
    • EventHttp::removeServerAlias - Удаляет псевдоним сервера
    • EventHttp::setAllowedMethods - Устанавливает, какие методы HTTP поддерживаются в запросах, принятых этим сервером и переданных callback-функции пользователя
    • EventHttp::setCallback - Устанавливает callback-функцию для указанного URI
    • EventHttp::setDefaultCallback - Устанавливает callback-функцию по умолчанию для обработки запросов, которые не перехватываются конкретными callback-функциями
    • EventHttp::setMaxBodySize - Устанавливает максимальный размер тела запроса
    • EventHttp::setMaxHeadersSize - Устанавливает максимальный размер HTTP-заголовка
    • EventHttp::setTimeout - Устанавливает время ожидания для HTTP-запроса
    • EventHttp::__construct - Создает объект EventHttp (HTTP-сервер)
    • EventHttpConnection::getBase - Возвращает базу событий, связанную с соединением
    • EventHttpConnection::getPeer - Получает удаленный адрес и порт, связанный с соединением
    • EventHttpConnection::makeRequest - Делает HTTP-запрос по указанному соединению
    • EventHttpConnection::setCloseCallback - Устанавливает callback-функцию при закрытии соединения
    • EventHttpConnection::setLocalAddress - Устанавливает IP-адрес, с которого происходят HTTP-соединения
    • EventHttpConnection::setLocalPort - Устанавливает локальный порт, с которого производятся соединения
    • EventHttpConnection::setMaxBodySize - Устанавливает максимальный размер тела для подключения
    • EventHttpConnection::setMaxHeadersSize - Устанавливает максимальный размер заголовка
    • EventHttpConnection::setRetries - Устанавливает максимальное количество повторов для соединения
    • EventHttpConnection::setTimeout - Устанавливает время ожидания для соединения
    • EventHttpConnection::__construct - Конструктор объекта EventHttpConnection
    • EventHttpRequest::addHeader - Добавляет заголовок HTTP к заголовкам запроса
    • EventHttpRequest::cancel - Отменяет ожидающий HTTP-запрос
    • EventHttpRequest::clearHeaders - Удаляет все выходные заголовки из списка заголовков запроса
    • EventHttpRequest::closeConnection - Закрывает связанное HTTP-соединение
    • EventHttpRequest::findHeader - Получает значение заголовка
    • EventHttpRequest::free - Освобождает объект и удаляет связанные события
    • EventHttpRequest::getBufferEvent - Возвращает объект EventBufferEvent
    • EventHttpRequest::getCommand - Возвращает команду запроса (метод)
    • EventHttpRequest::getConnection - Возвращает объект EventHttpConnection
    • EventHttpRequest::getHost - Возвращает хост запроса
    • EventHttpRequest::getInputBuffer - Возвращает входной буфер
    • EventHttpRequest::getInputHeaders - Возвращает ассоциативный массив входных заголовков
    • EventHttpRequest::getOutputBuffer - Возвращает выходной буфер запроса
    • EventHttpRequest::getOutputHeaders - Возвращает ассоциативный массив выходных заголовков
    • EventHttpRequest::getResponseCode - Возвращает код ответа
    • EventHttpRequest::getUri - Возвращает URI запроса
    • EventHttpRequest::removeHeader - Удаляет заголовок HTTP из заголовков запроса
    • EventHttpRequest::sendError - Отправляет HTML-сообщение об ошибке клиенту
    • EventHttpRequest::sendReply - Отправляет HTML-ответ клиенту
    • EventHttpRequest::sendReplyChunk - Отправляет блок данных, как часть текущего фрагментированного ответа
    • EventHttpRequest::sendReplyEnd - Заполняет фрагментарный ответ, освобождая запрос соответствующим образом
    • EventHttpRequest::sendReplyStart - Инициирует фрагментарный ответ
    • EventHttpRequest::__construct - Конструктор объекта EventHttpRequest
    • EventListener::disable - Отключает событие подключения к объекту слушателя
    • EventListener::enable - Включает событие подключения к объекту слушателя
    • EventListener::getBase - Возвращает базу событий, связанную со слушателем событий
    • EventListener::getSocketName - Получает текущий адрес, к которому привязан сокет слушателя
    • EventListener::setCallback - Цель setCallback
    • EventListener::setErrorCallback - Устанавливает callback-функцию ошибки слушателя событий
    • EventListener::__construct - Создать новый слушатель соединения, связанный с событийной базой
    • EventSslContext::__construct - Конструктор контекста OpenSSL для использования в классах Event
    • EventUtil::getLastSocketErrno - Получить номер последней возникшей ошибки сокета
    • EventUtil::getLastSocketError - Получить последнюю возникшую ошибку сокета
    • EventUtil::getSocketFd - Получить числовой файловый дескриптор сокета или потока
    • EventUtil::getSocketName - Получить текущий адрес, к которому привязан сокет
    • EventUtil::setSocketOption - Установить опции сокета
    • EventUtil::sslRandPoll - Сгенерировать энтропию с помощью RAND_poll() из OpenSSL
    • EventUtil::__construct - Абстрактный конструктор
    • event_base_free - Уничтожает событийную базу
    • event_base_loop - Управляет событиями
    • event_base_loopbreak - Прерывает цикл ожидания события
    • event_base_loopexit - Выходит из цикла через определенное время
    • event_base_new - Создает и инициализирует новую событийную базу
    • event_base_priority_init - Устанавливает приоритет события
    • event_base_reinit - Переиницализирует событийную базу после распараллеливания (fork)
    • event_base_set - Ассоциирует событийную базу с событием
    • event_buffer_base_set - Ассоциирует буфер событий с событийной базой
    • event_buffer_disable - Выключает буфер событий
    • event_buffer_enable - Включает буфер событий
    • event_buffer_fd_set - Изменяет файловый дескриптор буфера событий
    • event_buffer_free - Разрушает буфер событий
    • event_buffer_new - Создает новый буфер событий
    • event_buffer_priority_set - Назначить приоритет буферизованному событию
    • event_buffer_read - Считывает данные из буферизованного события
    • event_buffer_set_callback - Установливает или сбрасывает callback-функцтт для буферизованного события
    • event_buffer_timeout_set - Устанавливает время чтения и записи для буферизованного события
    • event_buffer_watermark_set - Set the watermarks for read and write events
    • event_buffer_write - Записывает данные в буферизованное событие
    • event_new - Создает новое событие
    • event_priority_set - Назначает приоритет событию
    • event_timer_add - Псевдоним event_add
    • event_timer_del - Псевдоним event_del
    • event_timer_new - Псевдоним event_new
    • event_timer_set - Подготавливает событие таймер
    • EvFork::createStopped - Создать объект класса EvFork, но не стартовать его
    • EvFork::__construct - Конструктор наблюдателя EvFork
    • EvIdle::createStopped - Создать объект класса EvIdle, но не стартовать его
    • EvIdle::__construct - Конструктор наблюдателя EvIdle
    • EvIo::createStopped - Создает остановленный объект наблюдателя EvIo
    • EvIo::set - Конфигурирование наблюдателя
    • EvIo::__construct - Создает объект наблюдатель EvIo
    • EvLoop::backend - Возвращает целое число, описывающее бэкэнд, используемый libev
    • EvLoop::check - Создает объект EvCheck, связанный с текущим экземпляром цикла событий
    • EvLoop::child - Создает объект EvChild, связанный с текущим циклом событий
    • EvLoop::defaultLoop - Возвращает или создает цикл событий по умолчанию
    • EvLoop::embed - Создает экземпляр наблюдателя EvEmbed, связанный с текущим объектом EvLoop
    • EvLoop::fork - Создает объект наблюдателя EvFork, связанный с текущим экземпляром цикла событий
    • EvLoop::idle - Создает объект наблюдателя EvIdle, связанный с текущим экземпляром цикла событий
    • EvLoop::invokePending - Вызывает всех ожидающих наблюдателей при сбросе их отложенного состояния
    • EvLoop::io - Создает объект наблюдателя EvIo, связанный с текущим экземпляром цикла событий
    • EvLoop::loopFork - Вызывается после разветления
    • EvLoop::now - Возвращает текущее "event loop time"
    • EvLoop::nowUpdate - Устанавливает текущее время, запрашивая ядро, обновляя время, возвращаемое EvLoop::now в процессе
    • EvLoop::periodic - Создает объект наблюдателя EvPeriodic, связанный с текущим экземпляром цикла событий
    • EvLoop::prepare - Создает объект наблюдателя EvPrepare, связанный с текущим экземпляром цикла событий
    • EvLoop::resume - Возобновляет ранее приостановленный цикл событий
    • EvLoop::run - Проверяет события и вызывает callback-фукнции в цикле
    • EvLoop::signal - Создает объект наблюдателя EvSignal, связанный с текущим экземпляром цикла событий
    • EvLoop::stat - Создает объект наблюдателя EvStat, связанный с текущим экземпляром цикла событий
    • EvLoop::stop - Останавливает цикл событий
    • EvLoop::suspend - Приостанавливает цикл
    • EvLoop::timer - Создает объект наблюдателя EvTimer, связанный с текущим экземпляром цикла событий
    • EvLoop::verify - Выполняет внутренние проверки согласованности (для отладки)
    • EvLoop::__construct - Конструктор объекта цикла событий
    • EvPeriodic::again - Останавливает и снова запускает периодический наблюдатель
    • EvPeriodic::at - Возвращает абсолютное время, когда наблюдатель запустится в следующий раз
    • EvPeriodic::createStopped - Создает остановленный наблюдатель EvPeriodic
    • EvPeriodic::set - Настраивает наблюдателя
    • EvPeriodic::__construct - Конструктор объекта наблюдателя EvPeriodic
    • EvPrepare::createStopped - Создать объект класса EvPrepare, но не стартовать его
    • EvPrepare::__construct - Конструктор наблюдателя EvPrepare
    • EvSignal::createStopped - Create stopped EvSignal watcher object
    • EvSignal::set - Настройка наблюдателя
    • EvSignal::__construct - Конструктор объекта наблюдателя EvSignal
    • EvStat::attr - Возвращает значения, недавно обнаруженные Ev
    • EvStat::createStopped - Создает остановленный объект наблюдателя EvStat
    • EvStat::prev - Возвращает предыдущий набор значений, возвращаемых EvStat::attr
    • EvStat::set - Настраивает наблюдателя
    • EvStat::stat - Инициирует вызов статистики
    • EvStat::__construct - Создает объект наблюдателя EvStat
    • EvTimer::again - Перезапускает таймер наблюдателя
    • EvTimer::createStopped - Создает остановленный наблюдатель EvTimer
    • EvTimer::set - Настраивает наблюдателя
    • EvTimer::__construct - Конструктор объекта наблюдателя EvTimer
    • EvWatcher::clear - Очистить статус ожидания наблюдателя
    • EvWatcher::feed - Подает указанные события в цикл событий
    • EvWatcher::getLoop - Возвращает цикл, отвечающий за наблюдателя
    • EvWatcher::invoke - Вызывает callback-функцию наблюдателя с заданной битовой маской принятых событий
    • EvWatcher::keepalive - Настраивает, будет ли возвращаться цикл
    • EvWatcher::setCallback - Устанавливает новую callback-функцию для наблюдателя
    • EvWatcher::start - Запускает наблюдателя
    • EvWatcher::stop - Останавливает наблюдателя
    • EvWatcher::__construct - Абстрактный конструктор объекта наблюдателя
    • Exception::getCode - Получает код исключения
    • Exception::getFile - Получает файл, в котором возникло исключение
    • Exception::getLine - Получает строку, в которой возникло исключение
    • Exception::getMessage - Получает сообщение исключения
    • Exception::getPrevious - Возвращает предыдущее исключение
    • Exception::getTrace - Получает трассировку стека
    • Exception::getTraceAsString - Получает трассировку стека в виде строки
    • Exception::__clone - Клонировать исключение
    • Exception::__construct - Создать исключение
    • Exception::__toString - Строковое представление исключения
    • exec - Выполнить внешнюю программу
    • Executable::execute - Выполняет утверждение
    • ExecutionStatus::__construct - Конструктор класса ExecutionStatus
    • exif_imagetype - Определение типа изображения
    • exif_read_data - Читает заголовки EXIF из файлов изображений
    • exif_tagname - Получение имени заголовка по его индексу
    • exif_thumbnail - Получает встроенное превью изображения
    • exit - Вывести сообщение и прекратить выполнение текущего скрипта
    • exp - Вычисляет степень числа e
    • expect:// - Потоки для взаимодействия с процессами
    • expect_expectl - Ожидает, пока вывод потока не совпадет с одним из шаблонов, либо пока не закончится максимальное время ожидания, либо вернется EOF
    • expect_popen - Запускает команду через командную оболочку Bourne и открывает для процесса поток PTY
    • explode - Разбивает строку с помощью разделителя
    • expm1 - Возвращает exp(number) - 1, рассчитанное таким образом, что результат точен, даже если значение number близко к нулю.
    • expression - Связывает подготовленные переменные утверждения в качестве параметров
    • Expression::__construct - Конструктор класса Expression
    • extension_loaded - Определить, загружено ли расширение
    • extract - Импортирует переменные из массива в текущую таблицу символов
    • ezmlm_hash - Вычисляет хеш-сумму, необходимую для EZMLM
  • f
    • fam_cancel_monitor - Прекратить мониторинг
    • fam_close - Закрыть соединение с FAM
    • fam_monitor_collection - Мониторинг изменений файлов в директории
    • fam_monitor_directory - Мониторинг изменения директории
    • fam_monitor_file - Отслеживать изменения обычного файла
    • fam_next_event - Получить следующее ожидающее событие FAM
    • fam_open - Создает соединение к сервису FAM
    • fam_pending - Проверяет на наличие ожидающих событий FAM
    • fam_resume_monitor - Возобновить приостановленный мониторинг
    • fam_suspend_monitor - Временно приостанавливает мониторинг
    • FANNConnection::getFromNeuron - Возвращает позицию стартового нейрона
    • FANNConnection::getToNeuron - Возвращает позицию конечного нейрона
    • FANNConnection::getWeight - Возвращает вес связи
    • FANNConnection::setWeight - Устанавливает вес связи
    • FANNConnection::__construct - Конструктор связи
    • fann_cascadetrain_on_data - Обучение на всем наборе данных в течение определенного периода времени с помощью алгоритма Cascade2
    • fann_cascadetrain_on_file - Обучение на данных прочтенных из файла с помощью алгоритма Cascade2
    • fann_clear_scaling_params - Очистка параметров масштабирования
    • fann_copy - Создает копию структуры fann
    • fann_create_from_file - Создает нейронную сеть с обратным распространением ошибки из конфигурационного файла
    • fann_create_shortcut - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_shortcut_array - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_sparse - Creates a standard backpropagation neural network, which is not fully connected
    • fann_create_sparse_array - Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
    • fann_create_standard - Creates a standard fully connected backpropagation neural network
    • fann_create_standard_array - Creates a standard fully connected backpropagation neural network using an array of layer sizes
    • fann_create_train - Creates an empty training data struct
    • fann_create_train_from_callback - Creates the training data struct from a user supplied function
    • fann_descale_input - Scale data in input vector after get it from ann based on previously calculated parameters
    • fann_descale_output - Scale data in output vector after get it from ann based on previously calculated parameters
    • fann_descale_train - Descale input and output data based on previously calculated parameters
    • fann_destroy - Destroys the entire network and properly freeing all the associated memory
    • fann_destroy_train - Destructs the training data
    • fann_duplicate_train_data - Returns an exact copy of a fann train data
    • fann_get_activation_function - Returns the activation function
    • fann_get_activation_steepness - Returns the activation steepness for supplied neuron and layer number
    • fann_get_bias_array - Get the number of bias in each layer in the network
    • fann_get_bit_fail - The number of fail bits
    • fann_get_bit_fail_limit - Returns the bit fail limit used during training
    • fann_get_cascade_activation_functions - Returns the cascade activation functions
    • fann_get_cascade_activation_functions_count - Returns the number of cascade activation functions
    • fann_get_cascade_activation_steepnesses - Returns the cascade activation steepnesses
    • fann_get_cascade_activation_steepnesses_count - The number of activation steepnesses
    • fann_get_cascade_candidate_change_fraction - Returns the cascade candidate change fraction
    • fann_get_cascade_candidate_limit - Return the candidate limit
    • fann_get_cascade_candidate_stagnation_epochs - Returns the number of cascade candidate stagnation epochs
    • fann_get_cascade_max_cand_epochs - Returns the maximum candidate epochs
    • fann_get_cascade_max_out_epochs - Returns the maximum out epochs
    • fann_get_cascade_min_cand_epochs - Returns the minimum candidate epochs
    • fann_get_cascade_min_out_epochs - Returns the minimum out epochs
    • fann_get_cascade_num_candidates - Returns the number of candidates used during training
    • fann_get_cascade_num_candidate_groups - Returns the number of candidate groups
    • fann_get_cascade_output_change_fraction - Returns the cascade output change fraction
    • fann_get_cascade_output_stagnation_epochs - Returns the number of cascade output stagnation epochs
    • fann_get_cascade_weight_multiplier - Returns the weight multiplier
    • fann_get_connection_array - Get connections in the network
    • fann_get_connection_rate - Get the connection rate used when the network was created
    • fann_get_errno - Returns the last error number
    • fann_get_errstr - Returns the last errstr
    • fann_get_layer_array - Get the number of neurons in each layer in the network
    • fann_get_learning_momentum - Returns the learning momentum
    • fann_get_learning_rate - Returns the learning rate
    • fann_get_MSE - Reads the mean square error from the network
    • fann_get_network_type - Get the type of neural network it was created as
    • fann_get_num_input - Get the number of input neurons
    • fann_get_num_layers - Get the number of layers in the neural network
    • fann_get_num_output - Get the number of output neurons
    • fann_get_quickprop_decay - Returns the decay which is a factor that weights should decrease in each iteration during quickprop training
    • fann_get_quickprop_mu - Returns the mu factor
    • fann_get_rprop_decrease_factor - Returns the increase factor used during RPROP training
    • fann_get_rprop_delta_max - Returns the maximum step-size
    • fann_get_rprop_delta_min - Returns the minimum step-size
    • fann_get_rprop_delta_zero - Returns the initial step-size
    • fann_get_rprop_increase_factor - Returns the increase factor used during RPROP training
    • fann_get_sarprop_step_error_shift - Returns the sarprop step error shift
    • fann_get_sarprop_step_error_threshold_factor - Returns the sarprop step error threshold factor
    • fann_get_sarprop_temperature - Returns the sarprop temperature
    • fann_get_sarprop_weight_decay_shift - Returns the sarprop weight decay shift
    • fann_get_total_connections - Get the total number of connections in the entire network
    • fann_get_total_neurons - Get the total number of neurons in the entire network
    • fann_get_training_algorithm - Returns the training algorithm
    • fann_get_train_error_function - Returns the error function used during training
    • fann_get_train_stop_function - Returns the stop function used during training
    • fann_init_weights - Initialize the weights using Widrow + Nguyen’s algorithm
    • fann_length_train_data - Returns the number of training patterns in the train data
    • fann_merge_train_data - Merges the train data
    • fann_num_input_train_data - Returns the number of inputs in each of the training patterns in the train data
    • fann_num_output_train_data - Returns the number of outputs in each of the training patterns in the train data
    • fann_print_error - Prints the error string
    • fann_randomize_weights - Give each connection a random weight between min_weight and max_weight
    • fann_read_train_from_file - Reads a file that stores training data
    • fann_reset_errno - Resets the last error number
    • fann_reset_errstr - Resets the last error string
    • fann_reset_MSE - Resets the mean square error from the network
    • fann_run - Will run input through the neural network
    • fann_save - Saves the entire network to a configuration file
    • fann_save_train - Save the training structure to a file
    • fann_scale_input - Scale data in input vector before feed it to ann based on previously calculated parameters
    • fann_scale_input_train_data - Scales the inputs in the training data to the specified range
    • fann_scale_output - Scale data in output vector before feed it to ann based on previously calculated parameters
    • fann_scale_output_train_data - Scales the outputs in the training data to the specified range
    • fann_scale_train - Scale input and output data based on previously calculated parameters
    • fann_scale_train_data - Scales the inputs and outputs in the training data to the specified range
    • fann_set_activation_function - Sets the activation function for supplied neuron and layer
    • fann_set_activation_function_hidden - Sets the activation function for all of the hidden layers
    • fann_set_activation_function_layer - Sets the activation function for all the neurons in the supplied layer
    • fann_set_activation_function_output - Sets the activation function for the output layer
    • fann_set_activation_steepness - Sets the activation steepness for supplied neuron and layer number
    • fann_set_activation_steepness_hidden - Sets the steepness of the activation steepness for all neurons in the all hidden layers
    • fann_set_activation_steepness_layer - Sets the activation steepness for all of the neurons in the supplied layer number
    • fann_set_activation_steepness_output - Sets the steepness of the activation steepness in the output layer
    • fann_set_bit_fail_limit - Set the bit fail limit used during training
    • fann_set_callback - Sets the callback function for use during training
    • fann_set_cascade_activation_functions - Sets the array of cascade candidate activation functions
    • fann_set_cascade_activation_steepnesses - Sets the array of cascade candidate activation steepnesses
    • fann_set_cascade_candidate_change_fraction - Sets the cascade candidate change fraction
    • fann_set_cascade_candidate_limit - Sets the candidate limit
    • fann_set_cascade_candidate_stagnation_epochs - Sets the number of cascade candidate stagnation epochs
    • fann_set_cascade_max_cand_epochs - Sets the max candidate epochs
    • fann_set_cascade_max_out_epochs - Sets the maximum out epochs
    • fann_set_cascade_min_cand_epochs - Sets the min candidate epochs
    • fann_set_cascade_min_out_epochs - Sets the minimum out epochs
    • fann_set_cascade_num_candidate_groups - Sets the number of candidate groups
    • fann_set_cascade_output_change_fraction - Sets the cascade output change fraction
    • fann_set_cascade_output_stagnation_epochs - Sets the number of cascade output stagnation epochs
    • fann_set_cascade_weight_multiplier - Sets the weight multiplier
    • fann_set_error_log - Sets where the errors are logged to
    • fann_set_input_scaling_params - Calculate input scaling parameters for future use based on training data
    • fann_set_learning_momentum - Sets the learning momentum
    • fann_set_learning_rate - Sets the learning rate
    • fann_set_output_scaling_params - Calculate output scaling parameters for future use based on training data
    • fann_set_quickprop_decay - Sets the quickprop decay factor
    • fann_set_quickprop_mu - Sets the quickprop mu factor
    • fann_set_rprop_decrease_factor - Sets the decrease factor used during RPROP training
    • fann_set_rprop_delta_max - Sets the maximum step-size
    • fann_set_rprop_delta_min - Sets the minimum step-size
    • fann_set_rprop_delta_zero - Sets the initial step-size
    • fann_set_rprop_increase_factor - Sets the increase factor used during RPROP training
    • fann_set_sarprop_step_error_shift - Sets the sarprop step error shift
    • fann_set_sarprop_step_error_threshold_factor - Sets the sarprop step error threshold factor
    • fann_set_sarprop_temperature - Sets the sarprop temperature
    • fann_set_sarprop_weight_decay_shift - Sets the sarprop weight decay shift
    • fann_set_scaling_params - Calculate input and output scaling parameters for future use based on training data
    • fann_set_training_algorithm - Sets the training algorithm
    • fann_set_train_error_function - Sets the error function used during training
    • fann_set_train_stop_function - Sets the stop function used during training
    • fann_set_weight - Создание связи в сети
    • fann_set_weight_array - Создание связей в сети
    • fann_shuffle_train_data - Перемешивает обучающие данные в случайном порядке
    • fann_subset_train_data - Получить копию подмножества из обучающих данных
    • fann_test - Тестирование с набором входных данных и желаемым результатом
    • fann_test_data - Тестирование набора обучающих данных и вычисление MSE для него
    • fann_train - Провести одну итерацию обучения с набором входных данных и желаемым результатом
    • fann_train_epoch - Обучение в течение одной эпохи
    • fann_train_on_data - Обучение на всем объеме данных на временном интервале
    • fann_train_on_file - Обучение на полном наборе данных, прочитанном из файла, на временном интервале
    • fastcgi_finish_request - Сбрасывает все запрошенные данные клиенту
    • fbird_add_user - Псевдоним ibase_add_user
    • fbird_affected_rows - Псевдоним ibase_affected_rows
    • fbird_backup - Псевдоним ibase_backup
    • fbird_blob_add - Псевдоним ibase_blob_add
    • fbird_blob_cancel - Cancel creating blob
    • fbird_blob_close - Псевдоним ibase_blob_close
    • fbird_blob_create - Псевдоним ibase_blob_create
    • fbird_blob_echo - Псевдоним ibase_blob_echo
    • fbird_blob_get - Псевдоним ibase_blob_get
    • fbird_blob_import - Псевдоним ibase_blob_import
    • fbird_blob_info - Псевдоним ibase_blob_info
    • fbird_blob_open - Псевдоним ibase_blob_open
    • fbird_close - Псевдоним ibase_close
    • fbird_commit - Псевдоним ibase_commit
    • fbird_commit_ret - Псевдоним ibase_commit_ret
    • fbird_connect - Псевдоним ibase_connect
    • fbird_db_info - Псевдоним ibase_db_info
    • fbird_delete_user - Псевдоним ibase_delete_user
    • fbird_drop_db - Псевдоним ibase_drop_db
    • fbird_errcode - Псевдоним ibase_errcode
    • fbird_errmsg - Псевдоним ibase_errmsg
    • fbird_execute - Псевдоним ibase_execute
    • fbird_fetch_assoc - Псевдоним ibase_fetch_assoc
    • fbird_fetch_object - Псевдоним ibase_fetch_object
    • fbird_fetch_row - Псевдоним ibase_fetch_row
    • fbird_field_info - Псевдоним ibase_field_info
    • fbird_free_event_handler - Псевдоним ibase_free_event_handler
    • fbird_free_query - Псевдоним ibase_free_query
    • fbird_free_result - Псевдоним ibase_free_result
    • fbird_gen_id - Псевдоним ibase_gen_id
    • fbird_maintain_db - Псевдоним ibase_maintain_db
    • fbird_modify_user - Псевдоним ibase_modify_user
    • fbird_name_result - Псевдоним ibase_name_result
    • fbird_num_fields - Псевдоним ibase_num_fields
    • fbird_num_params - Псевдоним ibase_num_params
    • fbird_param_info - Псевдоним ibase_param_info
    • fbird_pconnect - Псевдоним ibase_pconnect
    • fbird_prepare - Псевдоним ibase_prepare
    • fbird_query - Псевдоним ibase_query
    • fbird_restore - Псевдоним ibase_restore
    • fbird_rollback - Псевдоним ibase_rollback
    • fbird_rollback_ret - Псевдоним ibase_rollback_ret
    • fbird_server_info - Псевдоним ibase_server_info
    • fbird_service_attach - Псевдоним ibase_service_attach
    • fbird_service_detach - Псевдоним ibase_service_detach
    • fbird_set_event_handler - Псевдоним ibase_set_event_handler
    • fbird_trans - Псевдоним ibase_trans
    • fbird_wait_event - Псевдоним ibase_wait_event
    • fbsql_affected_rows - Возвращает число затронутых строк в предыдущем FrontBase действии
    • 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_database - Get or set the database name used with a connection
    • fbsql_database_password - Sets or retrieves the password for a FrontBase database
    • fbsql_data_seek - Move internal result pointer
    • 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 error number from previous operation
    • fbsql_error - Returns the error message from previous 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 - Описание
    • 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_rows_fetched - Get the number of rows affected by the last statement
    • fbsql_select_db - Select a FrontBase database
    • fbsql_set_characterset - Change input/output character set
    • 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 - Псевдоним fbsql_table_name
    • fbsql_table_name - Get table name of field
    • fbsql_username - Get or set the username for the connection
    • fbsql_warnings - Enable or disable FrontBase warnings
    • fclose - Закрывает открытый дескриптор файла
    • fdf_add_doc_javascript - Adds javascript code to the FDF document
    • fdf_add_template - Добавляет шаблон в FDF-документ
    • fdf_close - Закрывает FDF-документ
    • 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 - Получает значение ключа /Encoding
    • fdf_get_file - Получает значение ключа /F
    • 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 - Получает значение ключа /STATUS
    • 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 - Open a FDF document
    • fdf_open_string - Read a FDF document from a string
    • fdf_remove_item - Sets target frame for form
    • fdf_save - Save a FDF document
    • fdf_save_string - Returns the FDF document as a string
    • 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
    • feof - Проверяет, достигнут ли конец файла
    • FFI::addr - Создает неуправляемый указатель на данные C
    • FFI::alignof - Возвращает величину выравнивания
    • FFI::arrayType - Динамически конструирует новый тип С массива
    • FFI::cast - Производит преобразование типа C
    • FFI::cdef - Создаёт новый объект FFI
    • FFI::free - Высвобождает неуправляемую структуру данных
    • FFI::isNull - Проверяет, является ли FFI\CData нулевым указателем
    • FFI::load - Загрузить декларации C из заголовочного файла
    • FFI::memcmp - Сравнивает две области памяти
    • FFI::memcpy - Копирует содержимое одной области памяти в другую
    • FFI::memset - Заполнить область памяти
    • FFI::new - Создаёт структуру данных C
    • FFI::scope - Инстанциирует объект FFI в соответствии с декларацией С, разобранной на этапе предзагрузки
    • FFI::sizeof - Возвращает размер данных или типа C
    • FFI::string - Создает строку PHP из области памяти
    • FFI::type - Создаёт объект FFI\CType из декларации С
    • FFI::typeof - Получает FFI\CType для FFI\CData
    • fflush - Сбрасывает буфер вывода в файл
    • fgetc - Считывает символ из файла
    • fgetcsv - Читает строку из файла и производит разбор данных CSV
    • fgets - Читает строку из файла
    • fgetss - Читает строку из файла и удаляет HTML-теги
    • file - Читает содержимое файла и помещает его в массив
    • file:// - Доступ к локальной файловой системе
    • fileatime - Возвращает время последнего доступа к файлу
    • filectime - Возвращает время изменения индексного дескриптора файла
    • filegroup - Получает идентификатор группы файла
    • fileinode - Возвращает индексный дескриптор файла
    • filemtime - Возвращает время последнего изменения файла
    • fileowner - Возвращает идентификатор владельца файла
    • fileperms - Возвращает информацию о правах на файл
    • filepro - Прочитать и проверить файл соотношений
    • filepro_fieldcount - Получить число полей в базе данных filePro
    • filepro_fieldname - Получить имя поля
    • filepro_fieldtype - Получить тип поля
    • filepro_fieldwidth - Возвращает ширину поля
    • filepro_retrieve - Извлечение данных из базы filePro
    • filepro_rowcount - Получение количества строк в базе данных filePro
    • filesize - Возвращает размер файла
    • FilesystemIterator::current - Текущий файл
    • FilesystemIterator::getFlags - Получение флагов настроек объекта
    • FilesystemIterator::key - Определение ключа текущего файла
    • FilesystemIterator::next - Перемещение указателя на следующий файл
    • FilesystemIterator::rewind - Перемещение указателя на начало
    • FilesystemIterator::setFlags - Задание флагов обработки
    • FilesystemIterator::__construct - Создает новый итератор файловой системы
    • filetype - Возвращает тип файла
    • file_exists - Проверяет существование указанного файла или каталога
    • file_get_contents - Читает содержимое файла в строку
    • file_put_contents - Пишет данные в файл
    • FilterIterator::accept - Проверяет, является ли текущий элемент итератора допустимым
    • FilterIterator::current - Получает значение текущего элемента
    • FilterIterator::getInnerIterator - Получает внутренний итератор
    • FilterIterator::key - Получает текущий ключ
    • FilterIterator::next - Перемещает итератор к следующему элементу
    • FilterIterator::rewind - Возвращает итератор в начало
    • FilterIterator::valid - Проверяет, является ли текущий элемент допустимым
    • FilterIterator::__construct - Конструктор класса FilterIterator
    • filter_has_var - Проверяет существование переменной указанного типа
    • filter_id - Возвращает идентификатор, принадлежащий именованному фильтру
    • filter_input - Принимает переменную извне PHP и, при необходимости, фильтрует ее
    • filter_input_array - Получает несколько переменных извне PHP и, при необходимости, фильтрует их
    • filter_list - Возвращает список всех поддерживаемых фильтров
    • filter_var - Фильтрует переменную с помощью определенного фильтра
    • filter_var_array - Принимает несколько переменных и, при необходимости, фильтрует их
    • finfo::buffer - Псевдоним finfo_buffer()
    • finfo::file - Псевдоним finfo_file()
    • finfo::set_flags - Псевдоним finfo_set_flags()
    • finfo::__construct - Псевдоним finfo_open
    • finfo_close - Закрывает ресурс Fileinfo
    • finfo_open - Создает ресурс Fileinfo
    • floatval - Возвращает значение переменной в виде числа с плавающей точкой
    • flock - Портируемая консультативная блокировка файлов
    • floor - Округляет дробь в меньшую сторону
    • flush - Сброс системного буфера вывода
    • fmod - Возвращает дробный остаток от деления по модулю
    • fnmatch - Проверяет совпадение имени файла с шаблоном
    • fopen - Открывает файл или URL
    • forward_static_call - Вызов статического метода
    • forward_static_call_array - Вызов статического метода и передача параметров в виде массива
    • fpassthru - Выводит все оставшиеся данные из файлового указателя
    • fprintf - Записывает отформатированную строку в поток
    • fputcsv - Форматирует строку в виде CSV и записывает её в файловый указатель
    • fputs - Псевдоним fwrite
    • fread - Бинарно-безопасное чтение файла
    • frenchtojd - Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении
    • fribidi_log2vis - Преобразование логической строки в отображаемую
    • fscanf - Обрабатывает данные из файла в соответствии с форматом
    • fseek - Устанавливает смещение в файловом указателе
    • fsockopen - Открывает соединение с интернет-сокетом или доменным сокетом Unix
    • fstat - Получает информацию о файле, используя открытый файловый указатель
    • ftell - Возвращает текущую позицию указателя чтения/записи файла
    • ftok - Преобразование пути и идентификатора проекта в ключ System V IPC
    • ftp:// - Доступ к URL-адресам по протоколу FTP(s)
    • ftp_alloc - Резервирует место на диске для закачиваемого файла
    • ftp_append - Добавляет содержимое файла в конец другого файла на FTP-сервере
    • 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 - Скачивает файл с FTP-сервера
    • ftp_get_option - Получает текущие параметры FTP-соединения
    • ftp_login - Выполняет вход на FTP-сервер
    • ftp_mdtm - Возвращает время последней модификации файла
    • ftp_mkdir - Создаёт директорию
    • ftp_mlsd - Возвращает список файлов в заданной директории
    • 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-сервера
    • ftruncate - Урезает файл до указанной длины
    • function_exists - Возвращает TRUE, если указанная функция определена
    • func_get_arg - Вернуть элемент из списка аргументов
    • func_get_args - Возвращает массив, содержащий аргументы функции
    • func_num_args - Возвращает количество аргументов, переданных функции
    • fwrite - Бинарно-безопасная запись в файл
  • g
    • gc_collect_cycles - Принудительный запуск сборщика мусора
    • gc_disable - Отключает сборщик циклических ссылок
    • gc_enable - Включает сборщик циклических ссылок
    • gc_enabled - Возвращает текущее состояние сборщика циклических ссылок
    • gc_mem_caches - Освобождает память, используемую менеджером памяти Zend Engine
    • gc_status - Возвращает информацию о текущем статусе сборщика мусора
    • gd_info - Вывод информации о текущей установленной GD библиотеке
    • GearmanClient::addOptions - Добавить клиентские опции
    • GearmanClient::addServer - Добавить сервер задач для клиента
    • GearmanClient::addServers - Добавить список серверов задач для клиента
    • GearmanClient::addTask - Добавить задачу, которая будет выполнена в параллельном режиме
    • GearmanClient::addTaskBackground - Добавить фоновую задачу для работы в параллельном режиме
    • GearmanClient::addTaskHigh - Добавить высокоприоритетную задачу для работы в параллельном режиме
    • GearmanClient::addTaskHighBackground - Добавить высокоприоритетную фоновую задачу для работы в параллельном режиме
    • GearmanClient::addTaskLow - Добавить низкоприоритетную задачу для работы в параллельном режиме
    • GearmanClient::addTaskLowBackground - Добавить низкоприоритетную фоновую задачу для работы в параллельном режиме
    • GearmanClient::addTaskStatus - Добавить задачу для получения статуса
    • GearmanClient::clearCallbacks - Очистить все функции обратного вызова данной задачи
    • GearmanClient::clone - Создать копию объекта GearmanClient
    • GearmanClient::context - Возвращает контекст приложения
    • GearmanClient::data - Возвращает данные приложения (функция устарела)
    • GearmanClient::do - Выполняет одну задачу и возвращает результат [Устаревший метод]
    • GearmanClient::doBackground - Запускает выполнение задачи в фоновом режиме
    • GearmanClient::doHigh - Запускает на выполнение задачу с высоким приоритетом
    • GearmanClient::doHighBackground - Запускает на выполнение с высоким приоритетом задачу в фоновом режиме
    • GearmanClient::doJobHandle - Получить дескриптор выполняющейся задачи
    • GearmanClient::doLow - Запускает на выполнение задачу с низким приоритетом
    • GearmanClient::doLowBackground - Запускает на выполнение с низким приоритетом задачу в фоновом режиме
    • GearmanClient::doNormal - Выполняет одиночное задание и возвращает результат
    • GearmanClient::doStatus - Получение статуса выполняющейся задачи
    • GearmanClient::echo - Отправляет данные всем серверам заданий, чтобы проверить отклик [Устаревший метод]
    • GearmanClient::error - Вернуть строку ошибки для последней обнаруженной ошибки
    • GearmanClient::getErrno - Получить значение errno
    • GearmanClient::jobStatus - Получение статуса выполнения фонового задания
    • GearmanClient::ping - Отправляет данные на все серверы, чтобы проверить, какие из них выведут эти данные
    • GearmanClient::removeOptions - Удалить клиентские опции
    • GearmanClient::returnCode - Получить последний код возврата Gearman
    • GearmanClient::runTasks - Запустить список задач в параллельном режиме
    • GearmanClient::setClientCallback - Установить функцию обратного вызова, когда есть пакет данных для задачи (устаревший метод)
    • GearmanClient::setCompleteCallback - Установите функцию, которая будет вызвана по завершении задачи
    • GearmanClient::setContext - Установить контекст приложения
    • GearmanClient::setCreatedCallback - Установить функцию обратного вызова, когда задача ставится в очередь
    • GearmanClient::setData - Установить данные приложения (устаревший метод)
    • GearmanClient::setDataCallback - Задает callback-функцию для обработки переданных данных
    • GearmanClient::setExceptionCallback - Установка функции обратного вызова для перехвата исключений обработчика заданий
    • GearmanClient::setFailCallback - Установка callback-функции для обработки ситуации, когда задание не удалось выполнить
    • GearmanClient::setOptions - Установка настроек клиента
    • GearmanClient::setStatusCallback - Задание callback-функции, собирающей информацию о состоянии обработчика заданий
    • GearmanClient::setTimeout - Установка тайм-аута для операций ввода/вывода
    • GearmanClient::setWarningCallback - Установка callback-функции, обслуживающей предупреждения обработчика заданий
    • GearmanClient::setWorkloadCallback - Установка callback-функции, принимающей промежуточные результаты от обработчика заданий
    • GearmanClient::timeout - Получение значения тайм-аута операций ввода/вывода
    • GearmanClient::__construct - Создать экземпляр GearmanClient
    • GearmanJob::complete - Отправка результата и статуса завершения (устаревший метод)
    • GearmanJob::data - Отправка данных (устаревший метод)
    • GearmanJob::exception - Отправка исключения (устаревший метод)
    • GearmanJob::fail - Отправка статуса неудачной операции (устаревший метод)
    • GearmanJob::functionName - Получение имени функции
    • GearmanJob::handle - Получение дескриптора объекта задания
    • GearmanJob::returnCode - Получение последнего кода возврата
    • GearmanJob::sendComplete - Отправка результата и статуса завершения
    • GearmanJob::sendData - Отправка данных выполняющемуся заданию
    • GearmanJob::sendException - Отправка исключения выполняющемуся заданию
    • GearmanJob::sendFail - Отправка статуса неудачной операции
    • GearmanJob::sendStatus - Отправка статуса
    • GearmanJob::sendWarning - Отправка предупреждения
    • GearmanJob::setReturn - Установка возвращаемого значения
    • GearmanJob::status - Отправка статуса задания (устаревший метод)
    • GearmanJob::unique - Получение уникального идентификатора
    • GearmanJob::warning - Отправка предупреждения (устаревший метод)
    • GearmanJob::workload - Получение данных для обработки
    • GearmanJob::workloadSize - Получение размера обрабатываемых данных
    • GearmanJob::__construct - Создание объекта GearmanJob
    • GearmanTask::create - Создает задачу (устаревший метод)
    • GearmanTask::data - Получить данные, возвращенные для задачи
    • GearmanTask::dataSize - Получить размер возвращаемых данных
    • GearmanTask::function - Получить имя связанной функции (устаревший метод)
    • GearmanTask::functionName - Получить имя функции
    • GearmanTask::isKnown - Определение, известно ли серверу об этой задачи
    • GearmanTask::isRunning - Проверяет, выполняется ли задача в данный момент
    • GearmanTask::jobHandle - Получить дескриптор задания
    • GearmanTask::recvData - Чтение данных работы или результата задачи в буфер
    • GearmanTask::returnCode - Получить последний код возврата
    • GearmanTask::sendData - Отправка данных задачи (устаревший метод)
    • GearmanTask::sendWorkload - Отправка данных задачи
    • GearmanTask::taskDenominator - Получить знаменатель процента выполненной работы
    • GearmanTask::taskNumerator - Получение числителя процента выполненной работы
    • GearmanTask::unique - Получение уникального идентификатора задачи
    • GearmanTask::uuid - Получение уникального идентификатора задачи (устаревший метод)
    • GearmanTask::__construct - Создает объект GearmanTask
    • GearmanWorker::addFunction - Регистрация и добавление callback-функции
    • GearmanWorker::addOptions - Добавление настроек обработчика
    • GearmanWorker::addServer - Добавление сервера заданий
    • GearmanWorker::addServers - Добавление серверов заданий
    • GearmanWorker::clone - Создание копии обработчика
    • GearmanWorker::echo - Проверка отклика серверов заданий
    • GearmanWorker::error - Получение последней обнаруженной ошибки
    • GearmanWorker::getErrno - Получение номера ошибки
    • GearmanWorker::options - Получение настроек обработчика
    • GearmanWorker::register - Регистрация функции на сервере заданий
    • GearmanWorker::removeOptions - Удаление настроек обработчика
    • GearmanWorker::returnCode - Получение последнего кода возврата Gearman
    • GearmanWorker::setId - Назначает обработчику идентификатор, чтобы в дальнейшем иметь возможность опросить все доступные обработчики
    • GearmanWorker::setOptions - Установка настроек обработчика
    • GearmanWorker::setTimeout - Задание тайм-аута ожидания ввода/вывода на сокете
    • GearmanWorker::timeout - Получение значения тайм-аута ожидания запросов на сокете
    • GearmanWorker::unregister - Удалить регистрацию имени функции на всех серверах заданий
    • GearmanWorker::unregisterAll - Удаление регистрации всех имен функций на серверах заданий
    • GearmanWorker::wait - Ожидание запроса с одного из сервера задач
    • GearmanWorker::work - Ожидание и выполнение заданий
    • GearmanWorker::__construct - Создание объекта GearmanWorker
    • Gender\Gender::connect - Соединение с внешней базой имен
    • Gender\Gender::country - Получить текстовое представление страны
    • Gender\Gender::get - Получить пол по имени
    • Gender\Gender::isNick - Проверяет, является ли name0 псевдонимом для name1
    • Gender\Gender::similarNames - Получить похожие имена
    • Gender\Gender::__construct - Конструктор объекта класса Gender
    • Generator::current - Получить текущее значение генератора
    • Generator::getReturn - Получить значение, возвращаемое генератором
    • Generator::key - Получить ключ сгенерированного элемента
    • Generator::next - Возобновить работу генератора
    • Generator::rewind - Перемотать итератор
    • Generator::send - Передать значение в генератор
    • Generator::throw - Бросить исключение в генератор
    • Generator::valid - Проверка, закрыт ли итератор
    • Generator::__wakeup - Callback-функция сериализации
    • geoip_asnum_by_name - Получить номер автономной системы (ASN)
    • geoip_continent_code_by_name - Получить двухсимвольный код континента
    • geoip_country_code3_by_name - Получить трехсимвольный код страны
    • geoip_country_code_by_name - Получить двухсимвольный код страны
    • geoip_country_name_by_name - Получить полное название страны
    • geoip_database_info - Возвращает информацию о базе GeoIP
    • geoip_db_avail - Проверяет доступность базы GeoIP
    • geoip_db_filename - Возвращает имя файла соответствующей базы GeoIP
    • geoip_db_get_all_info - Возвращает подробную информацию обо всех типах базы GeoIP
    • geoip_domain_by_name - Получить имя домена второго уровня
    • geoip_id_by_name - Возвращает тип интернет-соединения
    • geoip_isp_by_name - Возвращает имя интернет-провайдера (ISP)
    • geoip_netspeedcell_by_name - Получить скорость соединения с сетью Интернет
    • geoip_org_by_name - Возвращает название организации, владеющей IP-адресом
    • geoip_record_by_name - Возвращает подробную информацию об адресе, найденном в базе GeoIP
    • geoip_region_by_name - Возвращает коды страны и региона
    • geoip_region_name_by_code - Возвращает название региона для выбранной страны и кода региона
    • geoip_setup_custom_directory - Установить пользовательскую директорию для базы данных GeoIP
    • geoip_time_zone_by_country_and_region - Возвращает временную зону для кода страны и региона
    • getallheaders - Возвращает все заголовки HTTP-запроса
    • getcwd - Получает имя текущего рабочего каталога
    • getdate - Возвращает информацию о дате/времени
    • getenv - Получение значения переменной окружения
    • gethostbyaddr - Получает доменное имя хоста, соответствующее переданному IP-адресу
    • gethostbyname - Получает IPv4-адрес, соответствующий переданному имени хоста
    • gethostbynamel - Получает список IPv4-адресов, соответствующих переданному доменному имени хоста
    • gethostname - Получает имя хоста
    • getimagesize - Получение размера изображения
    • getimagesizefromstring - Получение размера изображения из строки данных
    • getlastmod - Получает время последней модификации страницы
    • getmxrr - Получает записи MX, соответствующие переданному доменному имени хоста
    • getmygid - Получить GID владельца скрипта PHP
    • getmyinode - Получает значение inode текущего скрипта
    • getmypid - Получение ID процесса PHP
    • getmyuid - Получение UID владельца скрипта PHP
    • getopt - Получает параметры из списка аргументов командной строки
    • getprotobyname - Получает номер протокола по имени
    • getprotobynumber - Получает имя протокола по номеру
    • getrandmax - Возвращает максимально возможное случайное число
    • getrusage - Получает информацию об использовании текущего ресурса
    • getservbyname - Получает номер порта, связанного с интернет-службой и протоколом
    • getservbyport - Получает интернет-службу, соответствующую заданному порту и протоколу
    • getSession - Подключается к серверу MySQL
    • gettext - Ищет сообщение в текущем домене
    • gettimeofday - Возвращает текущее время
    • gettype - Возвращает тип переменной
    • get_browser - Сообщает о возможностях браузера пользователя
    • get_called_class - Имя класса, полученное с помощью позднего статического связывания
    • get_cfg_var - Извлекает значение настройки конфигурации PHP
    • get_class - Возвращает имя класса, к которому принадлежит объект
    • get_class_methods - Возвращает массив имен методов класса
    • get_class_vars - Возвращает объявленные по умолчанию свойства класса
    • get_current_user - Получает имя владельца текущего скрипта PHP
    • get_declared_classes - Возвращает массив с именами объявленных классов
    • get_declared_interfaces - Возвращает массив всех объявленных интерфейсов
    • get_declared_traits - Возвращает массив со всеми объявленными трейтами
    • get_defined_constants - Возвращает ассоциативный массив с именами всех констант и их значений
    • get_defined_functions - Возвращает массив всех определённых функций
    • get_defined_vars - Возвращает массив всех определенных переменных
    • get_extension_funcs - Возвращает массив имен функций модуля
    • get_headers - Возвращает все заголовки из ответа сервера на HTTP-запрос
    • get_html_translation_table - Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities
    • get_included_files - Возвращает массив имен включенных в скрипт файлов
    • get_include_path - Получение текущего значения настройки конфигурации include_path
    • get_loaded_extensions - Возвращает массив имен всех скомпилированных и загруженных модулей
    • get_magic_quotes_gpc - Получение текущего значения настройки конфигурации magic_quotes_gpc
    • get_magic_quotes_runtime - Получение текущего значения настройки конфигурации magic_quotes_runtime
    • get_meta_tags - Извлекает содержимое всех метатегов из файла и возвращает массив
    • get_object_vars - Возвращает свойства указанного объекта
    • get_parent_class - Возвращает имя родительского класса для объекта или класса
    • get_required_files - Псевдоним get_included_files
    • get_resources - Возвращает активные ресурсы
    • get_resource_type - Возвращает тип ресурса
    • glob - Находит файловые пути, совпадающие с шаблоном
    • glob:// - Нахождение путей, соответствующих шаблону
    • GlobIterator::count - Определяет количество директорий и файлов
    • GlobIterator::__construct - Создает итератор директории, используя glob-выражение
    • Gmagick::addimage - Добавление нового изображения в список изображений объекта Gmagick
    • Gmagick::addnoiseimage - Добавляет случайный шум к изображению
    • Gmagick::annotateimage - Подписать изображение текстом
    • Gmagick::blurimage - Добавить размытие изображению
    • Gmagick::borderimage - Добавить рамку к изображению
    • Gmagick::charcoalimage - Имитация рисования углем
    • Gmagick::chopimage - Удаляет область изображения и подрезает его
    • Gmagick::clear - Зачищает все ресурсы, связанные с объектом Gmagick
    • Gmagick::commentimage - Добавить комментарий к изображению
    • Gmagick::compositeimage - Composite one image onto another
    • Gmagick::cropimage - Обрезает изображение
    • Gmagick::cropthumbnailimage - Создание обрезанного уменьшенного изображения
    • Gmagick::current - Вернуть самого себя
    • Gmagick::cyclecolormapimage - Displaces an image's colormap
    • Gmagick::deconstructimages - Returns certain pixel differences between images
    • Gmagick::despeckleimage - The despeckleimage purpose
    • Gmagick::destroy - Уничтожить объект Gmagick
    • Gmagick::drawimage - Renders the GmagickDraw object on the current image
    • Gmagick::edgeimage - Enhance edges within the image
    • Gmagick::embossimage - Returns a grayscale image with a three-dimensional effect
    • Gmagick::enhanceimage - Improves the quality of a noisy image
    • Gmagick::equalizeimage - Equalizes the image histogram
    • Gmagick::flipimage - Creates a vertical mirror image
    • Gmagick::flopimage - The flopimage purpose
    • Gmagick::frameimage - Adds a simulated three-dimensional border
    • Gmagick::gammaimage - Gamma-corrects an image
    • Gmagick::getcopyright - Возвращает копирайт GraphicsMagick API в виде строки
    • Gmagick::getfilename - Возвращает имя файла связанного с последовательностью изображений
    • Gmagick::getimagebackgroundcolor - Возвращает цвет фона изображения
    • Gmagick::getimageblueprimary - Returns the chromaticy blue primary point
    • Gmagick::getimagebordercolor - Returns the image border color
    • Gmagick::getimagechanneldepth - Gets the depth for a particular image channel
    • Gmagick::getimagecolors - Возвращает цвет указанного индекса карты цветов
    • Gmagick::getimagecolorspace - Возвращает цветовое пространство изображения
    • Gmagick::getimagecompose - Returns the composite operator associated with the image
    • Gmagick::getimagedelay - Gets the image delay
    • Gmagick::getimagedepth - Gets the depth of the image
    • Gmagick::getimagedispose - Gets the image disposal method
    • Gmagick::getimageextrema - Gets the extrema for the image
    • Gmagick::getimagefilename - Возвращает имя файла конкретного изображения в последовательности
    • Gmagick::getimageformat - Возвращает формат конкретного изображения в последовательности
    • Gmagick::getimagegamma - Возвращает гамму изображения
    • Gmagick::getimagegreenprimary - Returns the chromaticy green primary point
    • Gmagick::getimageheight - Возвращает высоту изображения
    • Gmagick::getimagehistogram - Возвращает гистограмму изображения
    • Gmagick::getimageindex - Возвращает индекс текущего активного изображения
    • Gmagick::getimageinterlacescheme - Gets the image interlace scheme
    • Gmagick::getimageiterations - Gets the image iterations
    • Gmagick::getimagematte - Check if the image has a matte channel
    • Gmagick::getimagemattecolor - Returns the image matte color
    • Gmagick::getimageprofile - Возвращает именованный профайл изображения
    • Gmagick::getimageredprimary - Returns the chromaticity red primary point
    • Gmagick::getimagerenderingintent - Gets the image rendering intent
    • Gmagick::getimageresolution - Возвращает разрешение изображения
    • Gmagick::getimagescene - Gets the image scene
    • Gmagick::getimagesignature - Generates an SHA-256 message digest
    • Gmagick::getimagetype - Возвращает потенциальный тип изображения
    • Gmagick::getimageunits - Возвращает единицы разрешения изображения
    • Gmagick::getimagewhitepoint - Возвращает хроматическую белую точку
    • Gmagick::getimagewidth - Возвращает ширину изображения
    • Gmagick::getpackagename - Возвращает имя пакета GraphicsMagick
    • Gmagick::getquantumdepth - Возвращает глубину цвета (бит на канал) объекта Gmagick в виде строки
    • Gmagick::getreleasedate - Возвращает дату релиза GraphicsMagick в виде строки
    • Gmagick::getsamplingfactors - Возвращает вертикальный и горизонтальный фактор дискретизации
    • Gmagick::getsize - Возвращает размер, связанный с объектом Gmagick
    • Gmagick::getversion - Возвращает версию GraphicsMagick API
    • Gmagick::hasnextimage - Проверяет, есть ли еще изображения в объекте
    • Gmagick::haspreviousimage - Проверяет, есть ли еще изображения в объекте при итерации назад
    • Gmagick::implodeimage - Creates a new image as a copy
    • Gmagick::labelimage - Adds a label to an image
    • Gmagick::levelimage - Adjusts the levels of an image
    • Gmagick::magnifyimage - Scales an image proportionally 2x
    • Gmagick::mapimage - Replaces the colors of an image with the closest color from a reference image
    • Gmagick::medianfilterimage - Applies a digital filter
    • Gmagick::minifyimage - Scales an image proportionally to half its size
    • Gmagick::modulateimage - Control the brightness, saturation, and hue
    • Gmagick::motionblurimage - Simulates motion blur
    • Gmagick::newimage - Creates a new image
    • Gmagick::nextimage - Moves to the next image
    • Gmagick::normalizeimage - Enhances the contrast of a color image
    • Gmagick::oilpaintimage - Simulates an oil painting
    • Gmagick::previousimage - Move to the previous image in the object
    • Gmagick::profileimage - Adds or removes a profile from an image
    • Gmagick::quantizeimage - Analyzes the colors within a reference image
    • Gmagick::quantizeimages - The quantizeimages purpose
    • Gmagick::queryfontmetrics - Returns an array representing the font metrics
    • Gmagick::queryfonts - Returns the configured fonts
    • Gmagick::queryformats - Returns formats supported by Gmagick
    • Gmagick::radialblurimage - Radial blurs an image
    • Gmagick::raiseimage - Creates a simulated 3d button-like effect
    • Gmagick::read - Читает изображение из файла
    • Gmagick::readimage - Читает изображение из файла
    • Gmagick::readimageblob - Читает изображение из бинарной строки
    • Gmagick::readimagefile - Читает изображение или последовательность изображений из файлового дескриптора
    • Gmagick::reducenoiseimage - Smooths the contours of an image
    • Gmagick::removeimage - Удаляет изображение из списка
    • Gmagick::removeimageprofile - Удаляет именованый профайл изображения и возвращает его
    • Gmagick::resampleimage - Resample image to desired resolution
    • Gmagick::resizeimage - Scales an image
    • Gmagick::rollimage - Offsets an image
    • Gmagick::rotateimage - Rotates an image
    • Gmagick::scaleimage - Scales the size of an image
    • Gmagick::separateimagechannel - Separates a channel from the image
    • Gmagick::setCompressionQuality - Sets the object's default compression quality
    • Gmagick::setfilename - Sets the filename before you read or write the image
    • Gmagick::setimagebackgroundcolor - Sets the image background color
    • Gmagick::setimageblueprimary - Sets the image chromaticity blue primary point
    • Gmagick::setimagebordercolor - Sets the image border color
    • Gmagick::setimagechanneldepth - Sets the depth of a particular image channel
    • Gmagick::setimagecolorspace - Sets the image colorspace
    • Gmagick::setimagecompose - Sets the image composite operator
    • Gmagick::setimagedelay - Sets the image delay
    • Gmagick::setimagedepth - Sets the image depth
    • Gmagick::setimagedispose - Sets the image disposal method
    • Gmagick::setimagefilename - Sets the filename of a particular image in a sequence
    • Gmagick::setimageformat - Sets the format of a particular image
    • Gmagick::setimagegamma - Sets the image gamma
    • Gmagick::setimagegreenprimary - Sets the image chromaticity green primary point
    • Gmagick::setimageindex - Set the iterator to the position in the image list specified with the index parameter
    • Gmagick::setimageinterlacescheme - Sets the interlace scheme of the image
    • Gmagick::setimageiterations - Sets the image iterations
    • Gmagick::setimageprofile - Adds a named profile to the Gmagick object
    • Gmagick::setimageredprimary - Sets the image chromaticity red primary point
    • Gmagick::setimagerenderingintent - Sets the image rendering intent
    • Gmagick::setimageresolution - Sets the image resolution
    • Gmagick::setimagescene - Sets the image scene
    • Gmagick::setimagetype - Sets the image type
    • Gmagick::setimageunits - Sets the image units of resolution
    • Gmagick::setimagewhitepoint - Sets the image chromaticity white point
    • Gmagick::setsamplingfactors - Sets the image sampling factors
    • Gmagick::setsize - Sets the size of the Gmagick object
    • Gmagick::shearimage - Creating a parallelogram
    • Gmagick::solarizeimage - Applies a solarizing effect to the image
    • Gmagick::spreadimage - Randomly displaces each pixel in a block
    • Gmagick::stripimage - Strips an image of all profiles and comments
    • Gmagick::swirlimage - Swirls the pixels about the center of the image
    • Gmagick::thumbnailimage - Changes the size of an image
    • Gmagick::trimimage - Remove edges from the image
    • Gmagick::write - Псевдоним Gmagick::writeimage
    • Gmagick::writeimage - Записывает изображение в указанный файл
    • Gmagick::__construct - Конструктор объекта Gmagick
    • GmagickDraw::annotate - Draws text on the image
    • GmagickDraw::arc - Draws an arc
    • GmagickDraw::bezier - Draws a bezier curve
    • GmagickDraw::ellipse - Draws an ellipse on the image
    • GmagickDraw::getfillcolor - Returns the fill color
    • GmagickDraw::getfillopacity - Returns the opacity used when drawing
    • GmagickDraw::getfont - Returns the font
    • GmagickDraw::getfontsize - Returns the font pointsize
    • GmagickDraw::getfontstyle - Returns the font style
    • GmagickDraw::getfontweight - Returns the font weight
    • GmagickDraw::getstrokecolor - Returns the color used for stroking object outlines
    • GmagickDraw::getstrokeopacity - Returns the opacity of stroked object outlines
    • GmagickDraw::getstrokewidth - Returns the width of the stroke used to draw object outlines
    • GmagickDraw::gettextdecoration - Returns the text decoration
    • GmagickDraw::gettextencoding - Returns the code set used for text annotations
    • GmagickDraw::line - The line purpose
    • GmagickDraw::point - Draws a point
    • GmagickDraw::polygon - Draws a polygon
    • GmagickDraw::polyline - Draws a polyline
    • GmagickDraw::rectangle - Draws a rectangle
    • GmagickDraw::rotate - Applies the specified rotation to the current coordinate space
    • GmagickDraw::roundrectangle - Draws a rounded rectangle
    • GmagickDraw::scale - Adjusts the scaling factor
    • GmagickDraw::setfillcolor - Sets the fill color to be used for drawing filled objects
    • GmagickDraw::setfillopacity - The setfillopacity purpose
    • GmagickDraw::setfont - Sets the fully-specified font to use when annotating with text
    • GmagickDraw::setfontsize - Sets the font pointsize to use when annotating with text
    • GmagickDraw::setfontstyle - Sets the font style to use when annotating with text
    • GmagickDraw::setfontweight - Sets the font weight
    • GmagickDraw::setstrokecolor - Sets the color used for stroking object outlines
    • GmagickDraw::setstrokeopacity - Specifies the opacity of stroked object outlines
    • GmagickDraw::setstrokewidth - Sets the width of the stroke used to draw object outlines
    • GmagickDraw::settextdecoration - Specifies a decoration
    • GmagickDraw::settextencoding - Specifies the text code set
    • GmagickPixel::getcolor - Возвращает цвет
    • GmagickPixel::getcolorcount - Получить количество пикселей изображения, имеющих заданный цвет
    • GmagickPixel::getcolorvalue - Возвращает нормализованное значение для заданного цветового канала
    • GmagickPixel::setcolor - Задать цвет
    • GmagickPixel::setcolorvalue - Установить нормализованное значение цветового канала
    • GmagickPixel::__construct - Конструктора класса GmagickPixel
    • gmdate - Форматирует дату/время по Гринвичу
    • gmmktime - Возвращает локальную метку времени Unix для времени по Гринвичу
    • gmp_abs - Абсолютная величина
    • gmp_add - Сложение чисел
    • gmp_and - Побитовое И
    • gmp_binomial - Вычисляет биномиальный коэффициент
    • gmp_clrbit - Сброс бита
    • gmp_cmp - Сравнение чисел
    • gmp_com - Вычисляет дополнение до единицы числа
    • gmp_div - Псевдоним gmp_div_q
    • gmp_divexact - Деление чисел без остатка
    • gmp_div_q - Деление чисел
    • gmp_div_qr - Деление чисел и получение частного и остатка
    • gmp_div_r - Остаток от деления чисел
    • gmp_export - Экспортировать в бинарную строку
    • gmp_fact - Факториал
    • gmp_gcd - Вычисление наибольшего общего делителя
    • gmp_gcdext - Вычисление НОД и множителей
    • gmp_hamdist - Расстояние Хэмминга
    • gmp_import - Импортировать из бинарной строки
    • gmp_init - Создание GMP числа
    • gmp_intval - Преобразование числа GMP в целое число
    • gmp_invert - Инверсия остатка от деления
    • gmp_jacobi - Символ Якоби
    • gmp_kronecker - Символ Кронекера — Якоби
    • gmp_lcm - Вычисляет наименьшее общее кратное
    • gmp_legendre - Символ Лежандра
    • gmp_mod - Вычисление остатка от целочисленного деления
    • gmp_mul - Умножение чисел
    • gmp_neg - Изменение знака числа
    • gmp_nextprime - Поиск следующего простого числа
    • gmp_or - Побитовое ИЛИ
    • gmp_perfect_power - Проверить, является ли число "совершенной степенью"
    • gmp_perfect_square - Проверка числа на точный квадрат
    • gmp_popcount - Количество единиц в двоичной записи числа
    • gmp_pow - Возводит число в степень
    • gmp_powm - Возводит число в степень и производит деление по модулю
    • gmp_prob_prime - Проверяет, является ли число "вероятно простым"
    • gmp_random - Случайное число
    • gmp_random_bits - Случайное число
    • gmp_random_range - Случайное число
    • gmp_random_seed - Установить начальное состояние RNG
    • gmp_root - Извлечь корень степени N и вернуть его целую часть
    • gmp_rootrem - Извлечь корень степени N и вернуть его целую часть и остаток
    • gmp_scan0 - Поиск нуля в числе
    • gmp_scan1 - Поиск единицы в числе
    • gmp_setbit - Установка бита
    • gmp_sign - Знак числа
    • gmp_sqrt - Вычисление квадратного корня
    • gmp_sqrtrem - Квадратный корень с остатком
    • gmp_strval - Преобразование GMP числа в строку
    • gmp_sub - Вычитание чисел
    • gmp_testbit - Проверка, установлен ли бит в 1
    • gmp_xor - Побитовое исключающее ИЛИ
    • gmstrftime - Форматирует дату/время по Гринвичу с учетом текущей локали
    • gnupg_adddecryptkey - Добавить ключ для расшифровки
    • gnupg_addencryptkey - Добавляет ключ для шифрования
    • gnupg_addsignkey - Добавить ключ для подписания
    • gnupg_cleardecryptkeys - Удаляет все ключи, которые были установлены для расшифровки раньше
    • gnupg_clearencryptkeys - Удаляет все ключи, которые были установлены для шифрования раньше
    • gnupg_clearsignkeys - Удаляет все ключи, которые были установлены для подписания раньше
    • gnupg_decrypt - Расшифровывает переданный текст
    • gnupg_decryptverify - Расшифровывает и проверяет подпись переданного текста
    • gnupg_encrypt - Шифрует заданный текст
    • gnupg_encryptsign - Шифрует и подписывает переданный текст
    • gnupg_export - Экспортирует ключ
    • gnupg_geterror - Возвращает текст сообщения об ошибке, если функция не была выполнена
    • gnupg_getprotocol - Возвращает текущий активный протокол для всех операций
    • gnupg_import - Импортирует ключ
    • gnupg_init - Инициализировать GnuPG
    • gnupg_keyinfo - Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону
    • gnupg_setarmor - Переключает вывод в текстовом или бинарном режиме
    • gnupg_seterrormode - Устанавливает режим отчетов об ошибках (error_reporting)
    • gnupg_setsignmode - Устанавливает режим подписывания
    • gnupg_sign - Подписывает переданный текст
    • gnupg_verify - Проверяет подпись текста
    • gopher_parsedir - Преобразует директорию в формате gopher в ассоциативный массив
    • grapheme_extract - Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8
    • grapheme_stripos - Find position (in grapheme units) of first occurrence of a case-insensitive string
    • grapheme_stristr - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
    • grapheme_strlen - Get string length in grapheme units
    • grapheme_strpos - Find position (in grapheme units) of first occurrence of a string
    • grapheme_strripos - Find position (in grapheme units) of last occurrence of a case-insensitive string
    • grapheme_strrpos - Find position (in grapheme units) of last occurrence of a string
    • grapheme_strstr - Returns part of haystack string from the first occurrence of needle to the end of haystack
    • grapheme_substr - Return part of a string
    • gregoriantojd - Преобразует дату по григорианскому календарю в количество дней в юлианском летоисчислении
    • gupnp_context_get_host_ip - Get the IP address
    • gupnp_context_get_port - Get the port
    • gupnp_context_get_subscription_timeout - Get the event subscription timeout
    • gupnp_context_host_path - Start hosting
    • gupnp_context_new - Create a new context
    • gupnp_context_set_subscription_timeout - Sets the event subscription timeout
    • gupnp_context_timeout_add - Sets a function to be called at regular intervals
    • gupnp_context_unhost_path - Stop hosting
    • gupnp_control_point_browse_start - Start browsing
    • gupnp_control_point_browse_stop - Stop browsing
    • gupnp_control_point_callback_set - Set control point callback
    • gupnp_control_point_new - Create a new control point
    • gupnp_device_action_callback_set - Set device callback function
    • gupnp_device_info_get - Get info of root device
    • gupnp_device_info_get_service - Get the service with type
    • gupnp_root_device_get_available - Check whether root device is available
    • gupnp_root_device_get_relative_location - Get the relative location of root device
    • gupnp_root_device_new - Create a new root device
    • gupnp_root_device_set_available - Set whether or not root_device is available
    • gupnp_root_device_start - Start main loop
    • gupnp_root_device_stop - Stop main loop
    • gupnp_service_action_get - Retrieves the specified action arguments
    • gupnp_service_action_return - Return successfully
    • gupnp_service_action_return_error - Return error code
    • gupnp_service_action_set - Sets the specified action return values
    • gupnp_service_freeze_notify - Freeze new notifications
    • gupnp_service_info_get - Get full info of service
    • gupnp_service_info_get_introspection - Get resource introspection of service
    • gupnp_service_introspection_get_state_variable - Returns the state variable data
    • gupnp_service_notify - Notifies listening clients
    • gupnp_service_proxy_action_get - Send action to the service and get value
    • gupnp_service_proxy_action_set - Send action to the service and set value
    • gupnp_service_proxy_add_notify - Sets up callback for variable change notification
    • gupnp_service_proxy_callback_set - Set service proxy callback for signal
    • gupnp_service_proxy_get_subscribed - Check whether subscription is valid to the service
    • gupnp_service_proxy_remove_notify - Cancels the variable change notification
    • gupnp_service_proxy_send_action - Send action with multiple parameters synchronously
    • gupnp_service_proxy_set_subscribed - (Un)subscribes to the service
    • gupnp_service_thaw_notify - Sends out any pending notifications and stops queuing of new ones
    • gzclose - Закрыть указатель открытого gz-файла
    • gzcompress - Сжать строку
    • gzdecode - Декодирует строку, сжатую с помощью gzip
    • gzdeflate - Сжимает строку
    • gzencode - Создать сжатую строку gzip
    • gzeof - Проверяет, находится ли текущая позиция в конце (EOF) gz-файла
    • gzfile - Считывает весь gz-файл в массив
    • gzgetc - Получить символ из указателя на gz-файл
    • gzgets - Получить строку из указателя файла
    • gzgetss - Возвращает строку из указателя gz-файла и удалить HTML-теги
    • gzinflate - Распаковать сжатую строку
    • gzopen - Открыть gz-файл
    • gzpassthru - Вывод всех оставшихся данных из указателя gz-файла.
    • gzputs - Псевдоним gzwrite
    • gzread - Бинарное чтение gz-файла
    • gzrewind - Переместить позицию указатель gz-файла в начало
    • gzseek - Переместить указатель на позицию в указателе gz-файла
    • gztell - Возвращает текущую позицию чтения/записи в указателе gz-файла
    • gzuncompress - Распаковать сжатую строку
    • gzwrite - Бинарная запись в gz-файл
  • h
    • HaruAnnotation::setBorderStyle - Set the border style of the annotation
    • HaruAnnotation::setHighlightMode - Set the highlighting mode of the annotation
    • HaruAnnotation::setIcon - Set the icon style of the annotation
    • HaruAnnotation::setOpened - Set the initial state of the annotation
    • HaruDestination::setFit - Set the appearance of the page to fit the window
    • HaruDestination::setFitB - Set the appearance of the page to fit the bounding box of the page within the window
    • HaruDestination::setFitBH - Set the appearance of the page to fit the width of the bounding box
    • HaruDestination::setFitBV - Set the appearance of the page to fit the height of the boudning box
    • HaruDestination::setFitH - Set the appearance of the page to fit the window width
    • HaruDestination::setFitR - Set the appearance of the page to fit the specified rectangle
    • HaruDestination::setFitV - Set the appearance of the page to fit the window height
    • HaruDestination::setXYZ - Set the appearance of the page
    • HaruDoc::addPage - Добавляет новую страницу в документ
    • HaruDoc::addPageLabel - Set the numbering style for the specified range of pages
    • HaruDoc::createOutline - Create a HaruOutline instance
    • HaruDoc::getCurrentEncoder - Get HaruEncoder currently used in the document
    • HaruDoc::getCurrentPage - Return current page of the document
    • HaruDoc::getEncoder - Get HaruEncoder instance for the specified encoding
    • HaruDoc::getFont - Get HaruFont instance
    • HaruDoc::getInfoAttr - Get current value of the specified document attribute
    • HaruDoc::getPageLayout - Get current page layout
    • HaruDoc::getPageMode - Get current page mode
    • HaruDoc::getStreamSize - Get the size of the temporary stream
    • HaruDoc::insertPage - Insert new page just before the specified page
    • HaruDoc::loadJPEG - Load a JPEG image
    • HaruDoc::loadPNG - Load PNG image and return HaruImage instance
    • HaruDoc::loadRaw - Load a RAW image
    • HaruDoc::loadTTC - Load the font with the specified index from TTC file
    • HaruDoc::loadTTF - Load TTF font file
    • HaruDoc::loadType1 - Load Type1 font
    • HaruDoc::output - Write the document data to the output buffer
    • HaruDoc::readFromStream - Read data from the temporary stream
    • HaruDoc::resetError - Reset error state of the document handle
    • HaruDoc::resetStream - Rewind the temporary stream
    • HaruDoc::save - Save the document into the specified file
    • HaruDoc::saveToStream - Save the document into a temporary stream
    • HaruDoc::setCompressionMode - Set compression mode for the document
    • HaruDoc::setCurrentEncoder - Set the current encoder for the document
    • HaruDoc::setEncryptionMode - Set encryption mode for the document
    • HaruDoc::setInfoAttr - Set the info attribute of the document
    • HaruDoc::setInfoDateAttr - Set the datetime info attributes of the document
    • HaruDoc::setOpenAction - Define which page is shown when the document is opened
    • HaruDoc::setPageLayout - Set how pages should be displayed
    • HaruDoc::setPageMode - Set how the document should be displayed
    • HaruDoc::setPagesConfiguration - Set the number of pages per set of pages
    • HaruDoc::setPassword - Set owner and user passwords for the document
    • HaruDoc::setPermission - Set permissions for the document
    • HaruDoc::useCNSEncodings - Enable Chinese simplified encodings
    • HaruDoc::useCNSFonts - Enable builtin Chinese simplified fonts
    • HaruDoc::useCNTEncodings - Enable Chinese traditional encodings
    • HaruDoc::useCNTFonts - Enable builtin Chinese traditional fonts
    • HaruDoc::useJPEncodings - Enable Japanese encodings
    • HaruDoc::useJPFonts - Enable builtin Japanese fonts
    • HaruDoc::useKREncodings - Enable Korean encodings
    • HaruDoc::useKRFonts - Enable builtin Korean fonts
    • HaruDoc::__construct - Construct new HaruDoc instance
    • HaruEncoder::getByteType - Get the type of the byte in the text
    • HaruEncoder::getType - Get the type of the encoder
    • HaruEncoder::getUnicode - Convert the specified character to unicode
    • HaruEncoder::getWritingMode - Get the writing mode of the encoder
    • HaruFont::getAscent - Get the vertical ascent of the font
    • HaruFont::getCapHeight - Get the distance from the baseline of uppercase letters
    • HaruFont::getDescent - Get the vertical descent of the font
    • HaruFont::getEncodingName - Get the name of the encoding
    • HaruFont::getFontName - Get the name of the font
    • HaruFont::getTextWidth - Get the total width of the text, number of characters, number of words and number of spaces
    • HaruFont::getUnicodeWidth - Get the width of the character in the font
    • HaruFont::getXHeight - Get the distance from the baseline of lowercase letters
    • HaruFont::measureText - Calculate the number of characters which can be included within the specified width
    • HaruImage::getBitsPerComponent - Get the number of bits used to describe each color component of the image
    • HaruImage::getColorSpace - Get the name of the color space
    • HaruImage::getHeight - Get the height of the image
    • HaruImage::getSize - Get size of the image
    • HaruImage::getWidth - Get the width of the image
    • HaruImage::setColorMask - Set the color mask of the image
    • HaruImage::setMaskImage - Set the image mask
    • HaruOutline::setDestination - Set the destination for the outline
    • HaruOutline::setOpened - Set the initial state of the outline
    • HaruPage::arc - Append an arc to the current path
    • HaruPage::beginText - Begin a text object and set the current text position to (0,0)
    • HaruPage::circle - Append a circle to the current path
    • HaruPage::closePath - Append a straight line from the current point to the start point of the path
    • HaruPage::concat - Concatenate current transformation matrix of the page and the specified matrix
    • HaruPage::createDestination - Create new HaruDestination instance
    • HaruPage::createLinkAnnotation - Create new HaruAnnotation instance
    • HaruPage::createTextAnnotation - Create new HaruAnnotation instance
    • HaruPage::createURLAnnotation - Create and return new HaruAnnotation instance
    • HaruPage::curveTo - Append a Bezier curve to the current path
    • HaruPage::curveTo2 - Append a Bezier curve to the current path
    • HaruPage::curveTo3 - Append a Bezier curve to the current path
    • HaruPage::drawImage - Show image at the page
    • HaruPage::ellipse - Append an ellipse to the current path
    • HaruPage::endPath - End current path object without filling and painting operations
    • HaruPage::endText - End current text object
    • HaruPage::eofill - Fill current path using even-odd rule
    • HaruPage::eoFillStroke - Fill current path using even-odd rule, then paint the path
    • HaruPage::fill - Fill current path using nonzero winding number rule
    • HaruPage::fillStroke - Fill current path using nonzero winding number rule, then paint the path
    • HaruPage::getCharSpace - Get the current value of character spacing
    • HaruPage::getCMYKFill - Get the current filling color
    • HaruPage::getCMYKStroke - Get the current stroking color
    • HaruPage::getCurrentFont - Get the currently used font
    • HaruPage::getCurrentFontSize - Get the current font size
    • HaruPage::getCurrentPos - Get the current position for path painting
    • HaruPage::getCurrentTextPos - Get the current position for text printing
    • HaruPage::getDash - Get the current dash pattern
    • HaruPage::getFillingColorSpace - Get the current filling color space
    • HaruPage::getFlatness - Get the flatness of the page
    • HaruPage::getGMode - Get the current graphics mode
    • HaruPage::getGrayFill - Get the current filling color
    • HaruPage::getGrayStroke - Get the current stroking color
    • HaruPage::getHeight - Get the height of the page
    • HaruPage::getHorizontalScaling - Get the current value of horizontal scaling
    • HaruPage::getLineCap - Get the current line cap style
    • HaruPage::getLineJoin - Get the current line join style
    • HaruPage::getLineWidth - Get the current line width
    • HaruPage::getMiterLimit - Get the value of miter limit
    • HaruPage::getRGBFill - Get the current filling color
    • HaruPage::getRGBStroke - Get the current stroking color
    • HaruPage::getStrokingColorSpace - Get the current stroking color space
    • HaruPage::getTextLeading - Get the current value of line spacing
    • HaruPage::getTextMatrix - Get the current text transformation matrix of the page
    • HaruPage::getTextRenderingMode - Get the current text rendering mode
    • HaruPage::getTextRise - Get the current value of text rising
    • HaruPage::getTextWidth - Get the width of the text using current fontsize, character spacing and word spacing
    • HaruPage::getTransMatrix - Get the current transformation matrix of the page
    • HaruPage::getWidth - Get the width of the page
    • HaruPage::getWordSpace - Get the current value of word spacing
    • HaruPage::lineTo - Draw a line from the current point to the specified point
    • HaruPage::measureText - Calculate the byte length of characters which can be included on one line of the specified width
    • HaruPage::moveTextPos - Move text position to the specified offset
    • HaruPage::moveTo - Set starting point for new drawing path
    • HaruPage::moveToNextLine - Move text position to the start of the next line
    • HaruPage::rectangle - Append a rectangle to the current path
    • HaruPage::setCharSpace - Set character spacing for the page
    • HaruPage::setCMYKFill - Set filling color for the page
    • HaruPage::setCMYKStroke - Set stroking color for the page
    • HaruPage::setDash - Set the dash pattern for the page
    • HaruPage::setFlatness - Set flatness for the page
    • HaruPage::setFontAndSize - Set font and fontsize for the page
    • HaruPage::setGrayFill - Set filling color for the page
    • HaruPage::setGrayStroke - Sets stroking color for the page
    • HaruPage::setHeight - Set height of the page
    • HaruPage::setHorizontalScaling - Set horizontal scaling for the page
    • HaruPage::setLineCap - Set the shape to be used at the ends of lines
    • HaruPage::setLineJoin - Set line join style for the page
    • HaruPage::setLineWidth - Set line width for the page
    • HaruPage::setMiterLimit - Set the current value of the miter limit of the page
    • HaruPage::setRGBFill - Set filling color for the page
    • HaruPage::setRGBStroke - Set stroking color for the page
    • HaruPage::setRotate - Set rotation angle of the page
    • HaruPage::setSize - Set size and direction of the page
    • HaruPage::setSlideShow - Set transition style for the page
    • HaruPage::setTextLeading - Set text leading (line spacing) for the page
    • HaruPage::setTextMatrix - Set the current text transformation matrix of the page
    • HaruPage::setTextRenderingMode - Set text rendering mode for the page
    • HaruPage::setTextRise - Set the current value of text rising
    • HaruPage::setWidth - Set width of the page
    • HaruPage::setWordSpace - Set word spacing for the page
    • HaruPage::showText - Print text at the current position of the page
    • HaruPage::showTextNextLine - Move the current position to the start of the next line and print the text
    • HaruPage::stroke - Paint current path
    • HaruPage::textOut - Print the text on the specified position
    • HaruPage::textRect - Print the text inside the specified region
    • hash - Генерирует хеш-код (дайджест сообщения)
    • HashContext::__construct - Закрытый конструктор для запрета непосредственного создания объекта
    • hash_algos - Возвращает список зарегистрированных алгоритмов хеширования
    • hash_copy - Копирует контекст хеширования
    • hash_equals - Сравнение строк, нечувствительное к атакам по времени
    • hash_file - Генерация хеш-значения, используя содержимое заданного файла
    • hash_final - Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода
    • hash_hkdf - Формирования ключа HKDF для заданных входных данных
    • hash_hmac - Генерация хеш-кода на основе ключа, используя метод HMAC
    • hash_hmac_algos - Возвращает список зарегистрированных алгоритмов хеширования, применимых для hash_hmac
    • hash_hmac_file - Генерация хеш-кода на основе ключа, используя метод HMAC и содержимое полученного файла
    • hash_init - Инициализация инкрементального контекста хеширования
    • hash_pbkdf2 - Формирования ключа PBKDF2 для заданных входных данных
    • hash_update - Добавляет данные в активный контекст хеширования
    • hash_update_file - Добавляет данные из файла в активный контекст хеширования
    • hash_update_stream - Добавляет данные из открытого потока в активный контекст хеширования
    • header - Отправка HTTP-заголовка
    • headers_list - Возвращает список переданных заголовков (или готовых к отправке)
    • headers_sent - Проверяет, были ли отправлены заголовки
    • header_register_callback - Вызывает функцию заголовка
    • header_remove - Удаляет ранее установленные заголовки
    • hebrev - Преобразует текст на иврите из логической кодировки в визуальную
    • hebrevc - Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки
    • hex2bin - Преобразует шестнадцатеричные данные в двоичные
    • hexdec - Переводит число из шестнадцатеричной системы счисления в десятичную
    • highlight_file - Подсветка синтаксиса файла
    • highlight_string - Подсветка синтаксиса строки
    • hrtime - Получить системное время высокого разрешения
    • HRTime\PerformanceCounter::getFrequency - Частота таймера в тиках в секунду
    • HRTime\PerformanceCounter::getTicks - Текущее значение тиков системы
    • HRTime\PerformanceCounter::getTicksSince - Количество тиков, прошедших с заданного значения
    • HRTime\StopWatch::getElapsedTicks - Получить количество прошедших тиков для всех интервалов
    • HRTime\StopWatch::getElapsedTime - Получить суммарное прошедшее время всех интервалов
    • HRTime\StopWatch::getLastElapsedTicks - Получить количество прошедших тиков за последний интервал
    • HRTime\StopWatch::getLastElapsedTime - Получить прошедшее время для последнего интервала
    • HRTime\StopWatch::isRunning - Проверить, выполняется ли измерение
    • HRTime\StopWatch::start - Запустить измерение времени
    • HRTime\StopWatch::stop - Остановить измерение
    • htmlentities - Преобразует все возможные символы в соответствующие HTML-сущности
    • htmlspecialchars - Преобразует специальные символы в HTML-сущности
    • htmlspecialchars_decode - Преобразует специальные HTML-сущности обратно в соответствующие символы
    • html_entity_decode - Преобразует HTML-сущности в соответствующие им символы
    • http:// - Доступ к URL-адресам по протоколу HTTP(s)
    • http_build_query - Генерирует URL-кодированную строку запроса
    • http_response_code - Получает или устанавливает код ответа HTTP
    • hwapi_attribute_new - Creates instance of class hw_api_attribute
    • hwapi_content_new - Create new instance of class hw_api_content
    • hwapi_hgcsp - Returns object of class hw_api
    • hwapi_object_new - Creates a new instance of class hwapi_object_new
    • 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 - 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::find - Search for objects
    • hw_api::ftstat - Returns statistics about fulltext server
    • 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::object - Retrieve attribute information
    • hw_api::objectbyanchor - Returns the object an anchor belongs to
    • hw_api::parents - Returns parents of an object
    • 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_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_content::mimetype - Returns mimetype
    • hw_api_content::read - Read content
    • hw_api_error::count - Returns number of reasons
    • hw_api_error::reason - Returns reason of error
    • 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::remove - Removes attribute
    • hw_api_object::title - Returns the title attribute
    • hw_api_object::value - Returns value of attribute
    • hw_api_reason::description - Returns description of reason
    • hw_api_reason::type - Returns type of reason
    • hypot - Рассчитывает длину гипотенузы прямоугольного треугольника
  • i
    • ibase_add_user - Добавляет пользователя в безопасную базу данных
    • ibase_affected_rows - Возвращает количество строк, на которые повлиял предыдущий запрос
    • ibase_backup - Инициирует задание резервного копирования в диспетчере служб и немедленно возвращает
    • ibase_blob_add - Добавляет данные во вновь созданный BLOB-объект
    • ibase_blob_cancel - Отменяет создания BLOB-объекта
    • ibase_blob_close - Закрывает BLOB-объект
    • ibase_blob_create - Создает новый BLOB-объект для заполнения данными
    • ibase_blob_echo - Выводит содержимое BLOB-объекта в браузер
    • ibase_blob_get - Получает количество байтов от открытого BLOB-объекта
    • ibase_blob_import - Создает BLOB-объект, копирует в него файл и закрывает его
    • ibase_blob_info - Возвращает длину BLOB-объекта и другую полезную информацию
    • ibase_blob_open - Открывает BLOB-объект для извлечения частей данных
    • ibase_close - Закрывает соединение с базой данных InterBase
    • 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 - Получает объект из базы данных InterBase
    • ibase_fetch_row - Извлекает строку из базы данных InterBase
    • 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 - 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 - Roll back a transaction
    • ibase_rollback_ret - Roll back a transaction without closing it
    • 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 - Регистрирует callback-функцию, которая будет вызываться при публикации событий
    • ibase_trans - Begin a transaction
    • ibase_wait_event - Ждем, пока событие будет опубликовано в базе данных
    • iconv - Преобразование строки в требуемую кодировку
    • iconv_get_encoding - Получает текущее значение настроек преобразования кодировок
    • iconv_mime_decode - Декодирует поле MIME-заголовка
    • iconv_mime_decode_headers - Декодирует несколько полей заголовка MIME
    • iconv_mime_encode - Создает поле MIME-заголовка
    • iconv_set_encoding - Устанавливает текущей настройки для преобразования символов кодировки
    • iconv_strlen - Возвращает количество символов в строке
    • iconv_strpos - Возвращает позицию первого вхождения подстроки
    • iconv_strrpos - Возвращает позицию последнего вхождения подстроки
    • iconv_substr - Получение части строки
    • id3_get_frame_long_name - Возвращает длинное имя кадра ID3v2
    • id3_get_frame_short_name - Возвращает короткое имя кадра ID3v2
    • id3_get_genre_id - Возвращает идентификатор жанра
    • id3_get_genre_list - Возвращает все возможные значения жанра
    • id3_get_genre_name - Возвращает имя по идентификатору жанра
    • id3_get_tag - Возвращает всю информацию, сохранённую в ID3-теге
    • id3_get_version - Возвращает версию ID3-тега
    • id3_remove_tag - Удаляет существующий ID3-тег
    • id3_set_tag - Обновляет информацию в ID3 теге
    • idate - Преобразует локальное время/дату в целое число
    • idn_to_ascii - Преобразовать доменное имя в формат IDNA ASCII
    • idn_to_utf8 - Преобразование доменного имени из IDNA ASCII в Unicode
    • ifxus_close_slob - Удалить объект SLOB
    • ifxus_create_slob - Создать и открыть объект SLOB
    • ifxus_free_slob - Удалить объект SLOB
    • ifxus_open_slob - Открыть объект SLOB
    • ifxus_read_slob - Прочитать заданное количество байт из SLOB
    • ifxus_seek_slob - Задать текущий файл или переместится на позицию
    • ifxus_tell_slob - Возвращает текущий файл или позицию
    • ifxus_write_slob - Записать строку в объект SLOB
    • ifx_affected_rows - Получить число строк затронутых запросом
    • ifx_blobinfile_mode - Устанавливает режим BLOB для всех запросов типа SELECT
    • ifx_byteasvarchar - Установить поведение по умолчанию для BYTE
    • ifx_close - Закрыть соединение с Informix
    • ifx_connect - Открытие соединения с базой данных Informix
    • ifx_copy_blob - Создать дубликат заданного объекта BLOB
    • ifx_create_blob - Создать объект BLOB
    • ifx_create_char - Создает символьный объект
    • ifx_do - Запускает подготовленный SQL-запрос
    • ifx_error - Возвращает код ошибки последней операции Informix
    • ifx_errormsg - Возвращает сообщение об ошибке последнего выполненного оператора Informix
    • ifx_fetch_row - Получить строку в виде ассоциативного массива
    • ifx_fieldproperties - Список свойств полей
    • ifx_fieldtypes - Список столбцов
    • ifx_free_blob - Удалить объект BLOB
    • ifx_free_char - Удалить символьный объект
    • ifx_free_result - Высвобождает ресурсы для запроса
    • ifx_getsqlca - Получить содержимое sqlca.sqlerrd[0..5] после выполнения запроса
    • ifx_get_blob - Возвращает контент объекта BLOB
    • ifx_get_char - Возвращает контент символьного объекта
    • ifx_htmltbl_result - Форматирует все строки запроса в виде таблицы HTML
    • ifx_nullformat - Установить возвращаемое по умолчанию значение для NULL
    • ifx_num_fields - Возвращает количество столбцов в запросе
    • ifx_num_rows - Число строк уже извлененных из запроса
    • ifx_pconnect - Open persistent Informix connection
    • ifx_prepare - Подготавливает SQL-запрос для выполнения
    • ifx_query - Send Informix query
    • ifx_textasvarchar - Устанавливает режим чтения TEXT
    • ifx_update_blob - Обновление контента объекта BLOB
    • ifx_update_char - Обновление контента символьного объекта
    • ignore_user_abort - Установить, должно ли отключение клиента прерывать выполнение скрипта
    • iis_add_server - Создает новый виртуальный веб-сервер
    • iis_get_dir_security - Получить настройки безопасности директории
    • iis_get_script_map - Получить информацию о сопоставлении скриптов виртуальной директории для указанного расширения
    • iis_get_server_by_comment - Возвращает номер экземпляра сервера связанного с комментарием
    • iis_get_server_by_path - Возвращает номер экземпляра сервера для указанного пути
    • iis_get_server_rights - Получить права сервера
    • iis_get_service_state - Возвращает статус сервиса для заданного идентификатора
    • iis_remove_server - Удалить виртуальный сервер заданный номером экземпляра
    • iis_set_app_settings - Создать скоп приложения для виртуальной директории
    • iis_set_dir_security - Установить настройки безопасности директории
    • iis_set_script_map - Установить привязку скриптов для вирутальной директории
    • iis_set_server_rights - Установить права сервера
    • iis_start_server - Запустить виртуальный веб-сервер
    • iis_start_service - Запустить сервис по его идентификатору
    • iis_stop_server - Остановить виртуальный веб-сервер
    • iis_stop_service - Остановить сервис по его идентификатору
    • image2wbmp - Выводит изображение в браузер или пишет в файл
    • imageaffine - Вернуть изображение, содержащее аффинно-преобразованное изображение src, используя дополнительную область ограничения
    • imageaffinematrixconcat - Конкатенирует две аффинные матрицы преобразования
    • imageaffinematrixget - Get an affine transformation matrix
    • imagealphablending - Задание режима сопряжения цветов для изображения
    • imageantialias - Требуется ли применять функции сглаживания или нет
    • imagearc - Рисование дуги
    • imagebmp - Вывести BMP-изображение в браузер или файл
    • imagechar - Рисование символа по горизонтали
    • imagecharup - Рисование символа вертикально
    • imagecolorallocate - Создание цвета для изображения
    • imagecolorallocatealpha - Создание цвета для изображения
    • imagecolorat - Получение индекса цвета пиксела
    • imagecolorclosest - Получение индекса цвета ближайшего к заданному
    • imagecolorclosestalpha - Получение индекса цвета ближайшего к заданному с учетом прозрачности
    • imagecolorclosesthwb - Получение индекса цвета, имеющего заданный тон, белизну и затемнение
    • imagecolordeallocate - Разрыв ассоциации переменной с цветом для заданного изображения
    • imagecolorexact - Получение индекса заданного цвета
    • imagecolorexactalpha - Получение индекса заданного цвета и альфа компонента
    • imagecolormatch - Делает цвета палитровой версии изображения более соответствующими truecolor версии
    • imagecolorresolve - Получает идентификатор конкретного цвета или его ближайший аналог
    • imagecolorresolvealpha - Получает идентификатор конкретного цвета и альфа компонента или его ближайший аналог
    • imagecolorset - Установка набора цветов для заданного индекса палитры
    • imagecolorsforindex - Получение цветов, соответствующих индексу
    • imagecolorstotal - Определение количества цветов в палитре изображения
    • imagecolortransparent - Определяет цвет как прозрачный
    • imageconvolution - Наложение искривляющей матрицы 3х3, используя коэффициент и смещение
    • imagecopy - Копирование части изображения
    • imagecopymerge - Копирует часть изображения с наложением
    • imagecopymergegray - Копирует часть изображения с наложением в градациях серого
    • imagecopyresampled - Копирование и изменение размера изображения с ресемплированием
    • imagecopyresized - Копирование и изменение размера части изображения
    • imagecreate - Создание нового палитрового изображения
    • imagecreatefrombmp - Создает новое изображение из файла или URL
    • imagecreatefromgd - Создание нового изображения на основе GD файла или URL
    • imagecreatefromgd2 - Создание нового изображения на основе GD2 или URL
    • imagecreatefromgd2part - Создание нового изображения на основе части GD2 файла или URL
    • imagecreatefromgif - Создает новое изображение из файла или URL
    • imagecreatefromjpeg - Создает новое изображение из файла или URL
    • imagecreatefrompng - Создает новое изображение из файла или URL
    • imagecreatefromstring - Создание нового изображения из потока представленного строкой
    • imagecreatefromwbmp - Создает новое изображение из файла или URL
    • imagecreatefromwebp - Создает новое изображение из файла или URL
    • imagecreatefromxbm - Создает новое изображение из файла или URL
    • imagecreatefromxpm - Создает новое изображение из файла или URL
    • imagecreatetruecolor - Создание нового полноцветного изображения
    • imagecrop - Обрезать изображение до заданного прямоугольника
    • imagecropauto - Crop an image automatically using one of the available modes
    • imagedashedline - Рисование пунктирной линии
    • imagedestroy - Уничтожение изображения
    • imageellipse - Рисование эллипса
    • imagefill - Заливка
    • imagefilledarc - Рисование и заливка дуги
    • imagefilledellipse - Рисование закрашенного эллипса
    • imagefilledpolygon - Рисование закрашенного многоугольника
    • imagefilledrectangle - Рисование закрашенного прямоугольника
    • imagefilltoborder - Заливка цветом
    • imagefilter - Применяет фильтр к изображению
    • imageflip - Flips an image using a given mode
    • imagefontheight - Получение высоты шрифта
    • imagefontwidth - Получение ширины шрифта
    • imageftbbox - Определение границ текста выводимого шрифтом freetype2
    • imagefttext - Нанесение текста на изображение, используя шрифты FreeType 2
    • imagegammacorrect - Применение гамма коррекции к GD изображению
    • imagegd - Вывод GD-изображения в браузер или в файл
    • imagegd2 - Вывод GD2 изображения в браузер или файл
    • imagegetclip - Получить отсекающий прямоугольник
    • imagegif - Выводит изображение в браузер или пишет в файл
    • imagegrabscreen - Захватывает изображение с экрана
    • imagegrabwindow - Захватывает изображение окна
    • imageinterlace - Включение или выключение интерлейсинга
    • imageistruecolor - Определяет, является ли изображение полноцветным
    • imagejpeg - Выводит изображение в браузер или пишет в файл
    • imagelayereffect - Установка флага альфа сопряжения для использования эффектов наложения изображений
    • imageline - Рисование линии
    • imageloadfont - Загрузка шрифта
    • imageopenpolygon - Рисует открытый полигон
    • imagepalettecopy - Копирование палитры из одного изображения в другое
    • imagepalettetotruecolor - Преобразует изображение на основе палитры в настоящий цвет
    • imagepng - Вывод PNG изображения в браузер или файл
    • imagepolygon - Рисование многоугольника
    • imagepsbbox - Выдает параметры рамки, обрамляющей текст написанный шрифтом PostScript Type1
    • imagepsencodefont - Изменение вектора кодировки шрифта
    • imagepsextendfont - Растягивание или сжатие шрифта
    • imagepsfreefont - Освобождение памяти, занятой шрифтом PostScript Type
    • imagepsloadfont - Загрузка шрифта PostScript Type 1 из файла
    • imagepsslantfont - Наклон шрифта
    • imagepstext - Рисование текста поверх изображения, используя шрифты PostScript Type1
    • imagerectangle - Рисование прямоугольника
    • imageresolution - Get or set the resolution of the image
    • imagerotate - Поворот изображения с заданным углом
    • imagesavealpha - Сохранять ли полную информацию альфа-канала при сохранении изображений PNG
    • imagescale - Масштабировать изображение по заданной ширине и высоте
    • imagesetbrush - Установка изображения (кисти), посредством которого будут рисоваться линии
    • imagesetclip - Установите прямоугольник ограничения
    • imagesetinterpolation - Set the interpolation method
    • imagesetpixel - Рисование точки
    • imagesetstyle - Установка стиля рисования линий
    • imagesetthickness - Установка толщины линий
    • imagesettile - Установка изображения, которое будет использовано в качестве элемента мозаичной заливки
    • imagestring - Рисование строки текста горизонтально
    • imagestringup - Рисование строки текста вертикально
    • imagesx - Получение ширины изображения
    • imagesy - Получение высоты изображения
    • imagetruecolortopalette - Преобразование полноцветного изображения в палитровое
    • imagettfbbox - Получение параметров рамки обрамляющей текст написанный TrueType шрифтом
    • imagettftext - Рисование текста на изображении шрифтом TrueType
    • imagetypes - Возвращает список типов изображений, поддерживаемых PHP сборкой
    • imagewbmp - Выводит изображение в браузер или пишет в файл
    • imagewebp - Вывод изображения WebP в браузер или файл
    • imagexbm - Вывод XBM изображения в браузер или файл
    • image_type_to_extension - Получение расширения файла для типа изображения
    • image_type_to_mime_type - Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
    • Imagick::adaptiveBlurImage - Добавляет адаптивный фильтр размытия к изображению
    • Imagick::adaptiveResizeImage - Адаптивное изменение размера изображения с данными триангуляции
    • Imagick::adaptiveSharpenImage - Адаптивное изменение резкости изображения
    • Imagick::adaptiveThresholdImage - Выбор порога для каждого пикселя в зависимости от диапазона интенсивности
    • Imagick::addImage - Добавляет новое изображение к списку изображений объекта Imagick
    • Imagick::addNoiseImage - Накладывает случайный шум на изображение
    • Imagick::affineTransformImage - Преобразование изображения
    • Imagick::animateImages - Анимация одного или нескольких изображений
    • Imagick::annotateImage - Добавляет текстовый комментарий на изображение
    • Imagick::appendImages - Объединяет набор изображений
    • Imagick::autoLevelImage - Description
    • Imagick::averageImages - Усредняет набор изображений
    • Imagick::blackThresholdImage - Перевести все пиксели ниже порогового значения в черный цвет
    • Imagick::blueShiftImage - Description
    • Imagick::blurImage - Добавляет фильтр размытия к изображению
    • Imagick::borderImage - Окружает изображение рамкой
    • Imagick::brightnessContrastImage - Description
    • Imagick::charcoalImage - Рисование углем
    • Imagick::chopImage - Удаляет область изображения и обрезает его
    • Imagick::clampImage - Description
    • Imagick::clear - Очищает все ресурсы, связанные с объектом Imagick
    • Imagick::clipImage - Обрезка вдоль ближайшего контура с профилем 8BIM
    • Imagick::clipImagePath - Description
    • Imagick::clipPathImage - Отсечь вдоль обозначенного контура с профилем 8BIM
    • Imagick::clone - Создает точную копию объекта Imagick
    • Imagick::clutImage - Заменяет цвета в изображении
    • Imagick::coalesceImages - Composites a set of images
    • Imagick::colorFloodfillImage - Changes the color value of any pixel that matches target
    • Imagick::colorizeImage - Смешивание цвета заливки с изображением
    • Imagick::colorMatrixImage - Description
    • Imagick::combineImages - Combines one or more images into a single image
    • Imagick::commentImage - Adds a comment to your image
    • Imagick::compareImageChannels - Returns the difference in one or more images
    • Imagick::compareImageLayers - Returns the maximum bounding region between images
    • Imagick::compareImages - Compares an image to a reconstructed image
    • Imagick::compositeImage - Composite one image onto another
    • Imagick::contrastImage - Change the contrast of the image
    • Imagick::contrastStretchImage - Enhances the contrast of a color image
    • Imagick::convolveImage - Applies a custom convolution kernel to the image
    • Imagick::count - Get the number of images
    • Imagick::cropImage - Извлекает область изображения
    • Imagick::cropThumbnailImage - Creates a crop thumbnail
    • Imagick::current - Возвращает ссылку на текущий объект Imagick
    • Imagick::cycleColormapImage - Displaces an image's colormap
    • Imagick::decipherImage - Deciphers an image
    • Imagick::deconstructImages - Returns certain pixel differences between images
    • Imagick::deleteImageArtifact - Delete image artifact
    • Imagick::deleteImageProperty - Description
    • Imagick::deskewImage - Removes skew from the image
    • Imagick::despeckleImage - Reduces the speckle noise in an image
    • Imagick::destroy - Удаляет объект Imagick
    • Imagick::displayImage - Выводит изображение
    • Imagick::displayImages - Выводит изображение или последовательность изображений
    • Imagick::distortImage - Distorts an image using various distortion methods
    • Imagick::drawImage - Выполняет рендеринг объекта ImagickDraw на текущем изображении
    • Imagick::edgeImage - Enhance edges within the image
    • Imagick::embossImage - Returns a grayscale image with a three-dimensional effect
    • Imagick::encipherImage - Enciphers an image
    • Imagick::enhanceImage - Improves the quality of a noisy image
    • Imagick::equalizeImage - Equalizes the image histogram
    • Imagick::evaluateImage - Applies an expression to an image
    • Imagick::exportImagePixels - Exports raw image pixels
    • Imagick::extentImage - Set image size
    • Imagick::filter - Description
    • Imagick::flattenImages - Merges a sequence of images
    • Imagick::flipImage - Создает вертикальное зеркало изображения
    • Imagick::floodFillPaintImage - Changes the color value of any pixel that matches target
    • Imagick::flopImage - Создает вертикальное зеркало изображения
    • Imagick::forwardFourierTransformImage - Description
    • Imagick::frameImage - Adds a simulated three-dimensional border
    • Imagick::functionImage - Applies a function on the image
    • Imagick::fxImage - Evaluate expression for each pixel in the image
    • Imagick::gammaImage - Gamma-corrects an image
    • Imagick::gaussianBlurImage - Blurs an image
    • Imagick::getColorspace - Возвращает цветовую палитру
    • Imagick::getCompression - Возвращает тип сжатия объекта
    • Imagick::getCompressionQuality - Возвращает качество сжатия объекта
    • Imagick::getCopyright - Возвращает копирайт API ImageMagick в виде строки
    • Imagick::getFilename - Имя файла результирующего изображения
    • Imagick::getFont - Возвращает название шрифта
    • Imagick::getFormat - Возвращает формат Imagick объекта
    • Imagick::getGravity - Возвращает значение гравитации (притяжения)
    • Imagick::getHomeURL - Возвращает домашний URL библиотеки ImageMagick
    • Imagick::getImage - Возвращает новый объект Imagick
    • Imagick::getImageAlphaChannel - Возвращает альфа-канал изображения
    • Imagick::getImageArtifact - Get image artifact
    • Imagick::getImageAttribute - Description
    • Imagick::getImageBackgroundColor - Возвращает цвет фона изображения
    • Imagick::getImageBlob - Returns the image sequence as a blob
    • Imagick::getImageBluePrimary - Returns the chromaticy blue primary point
    • Imagick::getImageBorderColor - Возвращает цвет рамки изображения
    • Imagick::getImageChannelDepth - Gets the depth for a particular image channel
    • Imagick::getImageChannelDistortion - Compares image channels of an image to a reconstructed image
    • Imagick::getImageChannelDistortions - Gets channel distortions
    • Imagick::getImageChannelExtrema - Gets the extrema for one or more image channels
    • Imagick::getImageChannelKurtosis - The getImageChannelKurtosis purpose
    • Imagick::getImageChannelMean - Gets the mean and standard deviation
    • Imagick::getImageChannelRange - Gets channel range
    • Imagick::getImageChannelStatistics - Returns statistics for each channel in the image
    • Imagick::getImageClipMask - Gets image clip mask
    • Imagick::getImageColormapColor - Returns the color of the specified colormap index
    • Imagick::getImageColors - Возвращает число уникальных цветов в изображении
    • Imagick::getImageColorspace - Возвращает цветовую палитру изображения
    • Imagick::getImageCompose - Возвращает составной оператор, связанный с изображением
    • Imagick::getImageCompression - Возвращает текущий тип компрессии изображения
    • Imagick::getImageCompressionQuality - Возвращает текущее качество сжатия изображения
    • Imagick::getImageDelay - Gets the image delay
    • Imagick::getImageDepth - Gets the image depth
    • Imagick::getImageDispose - Gets the image disposal method
    • Imagick::getImageDistortion - Compares an image to a reconstructed image
    • Imagick::getImageExtrema - Gets the extrema for the image
    • Imagick::getImageFilename - Возвращает имя файла конкретного изображения в последовательности
    • Imagick::getImageFormat - Возвращает формат конкретного изображения в последовательности
    • Imagick::getImageGamma - Возвращает гамму изображения
    • Imagick::getImageGeometry - Возвращает ширину и высоту в виде ассоциативного массива
    • Imagick::getImageGravity - Возвращает значение гравитации (притяжения)
    • Imagick::getImageGreenPrimary - Returns the chromaticy green primary point
    • Imagick::getImageHeight - Возвращает высоту изображения
    • Imagick::getImageHistogram - Gets the image histogram
    • Imagick::getImageIndex - Gets the index of the current active image
    • Imagick::getImageInterlaceScheme - Gets the image interlace scheme
    • Imagick::getImageInterpolateMethod - Returns the interpolation method
    • Imagick::getImageIterations - Gets the image iterations
    • Imagick::getImageLength - Returns the image length in bytes
    • Imagick::getImageMagickLicense - Returns a string containing the ImageMagick license
    • Imagick::getImageMatte - Return if the image has a matte channel
    • Imagick::getImageMatteColor - Returns the image matte color
    • Imagick::getImageMimeType - Description
    • Imagick::getImageOrientation - Gets the image orientation
    • Imagick::getImagePage - Returns the page geometry
    • Imagick::getImagePixelColor - Returns the color of the specified pixel
    • Imagick::getImageProfile - Returns the named image profile
    • Imagick::getImageProfiles - Returns the image profiles
    • Imagick::getImageProperties - Возвращает свойства изображения
    • Imagick::getImageProperty - Returns the named image property
    • Imagick::getImageRedPrimary - Returns the chromaticity red primary point
    • Imagick::getImageRegion - Extracts a region of the image
    • Imagick::getImageRenderingIntent - Gets the image rendering intent
    • Imagick::getImageResolution - Gets the image X and Y resolution
    • Imagick::getImagesBlob - Returns all image sequences as a blob
    • Imagick::getImageScene - Gets the image scene
    • Imagick::getImageSignature - Generates an SHA-256 message digest
    • Imagick::getImageSize - Возвращает размер изображения в байтах
    • Imagick::getImageTicksPerSecond - Gets the image ticks-per-second
    • Imagick::getImageTotalInkDensity - Gets the image total ink density
    • Imagick::getImageType - Возвращает возможный тип изображения
    • Imagick::getImageUnits - Gets the image units of resolution
    • Imagick::getImageVirtualPixelMethod - Returns the virtual pixel method
    • Imagick::getImageWhitePoint - Returns the chromaticity white point
    • Imagick::getImageWidth - Возвращает ширину изображения
    • Imagick::getInterlaceScheme - Gets the object interlace scheme
    • Imagick::getIteratorIndex - Gets the index of the current active image
    • Imagick::getNumberImages - Returns the number of images in the object
    • Imagick::getOption - Returns a value associated with the specified key
    • Imagick::getPackageName - Returns the ImageMagick package name
    • Imagick::getPage - Returns the page geometry
    • Imagick::getPixelIterator - Returns a MagickPixelIterator
    • Imagick::getPixelRegionIterator - Возвращает объект ImagickPixelIterator для секции изображения
    • Imagick::getPointSize - Возвращает размер точки
    • Imagick::getQuantum - Description
    • Imagick::getQuantumDepth - Возвращает величину глубины
    • Imagick::getQuantumRange - Возвращает величину размера спектра Imagick
    • Imagick::getRegistry - Description
    • Imagick::getReleaseDate - Возвращает дату релиза ImageMagick
    • Imagick::getResource - Возвращает размер используемой памяти указанного ресурса
    • Imagick::getResourceLimit - Возвращает заданный лимит ресурсов
    • Imagick::getSamplingFactors - Возвращает горизонтальный и вертикальный фактор выборки
    • Imagick::getSize - Возвращает размер, связанный с объектом Imagick
    • Imagick::getSizeOffset - Возвращает размер смещения
    • Imagick::getVersion - Возвращает версию API ImageMagick
    • Imagick::haldClutImage - Replaces colors in the image
    • Imagick::hasNextImage - Checks if the object has more images
    • Imagick::hasPreviousImage - Checks if the object has a previous image
    • Imagick::identifyFormat - Description
    • Imagick::identifyImage - Определяет изображение и получает атрибуты
    • Imagick::implodeImage - Creates a new image as a copy
    • Imagick::importImagePixels - Imports image pixels
    • Imagick::inverseFourierTransformImage - Description
    • Imagick::labelImage - Adds a label to an image
    • Imagick::levelImage - Adjusts the levels of an image
    • Imagick::linearStretchImage - Stretches with saturation the image intensity
    • Imagick::liquidRescaleImage - Animates an image or images
    • Imagick::listRegistry - Description
    • Imagick::magnifyImage - Scales an image proportionally 2x
    • Imagick::mapImage - Replaces the colors of an image with the closest color from a reference image
    • Imagick::matteFloodfillImage - Changes the transparency value of a color
    • Imagick::medianFilterImage - Applies a digital filter
    • Imagick::mergeImageLayers - Merges image layers
    • Imagick::minifyImage - Scales an image proportionally to half its size
    • Imagick::modulateImage - Control the brightness, saturation, and hue
    • Imagick::montageImage - Creates a composite image
    • Imagick::morphImages - Method morphs a set of images
    • Imagick::morphology - Description
    • Imagick::mosaicImages - Forms a mosaic from images
    • Imagick::motionBlurImage - Simulates motion blur
    • Imagick::negateImage - Negates the colors in the reference image
    • Imagick::newImage - Creates a new image
    • Imagick::newPseudoImage - Creates a new image
    • Imagick::nextImage - Moves to the next image
    • Imagick::normalizeImage - Enhances the contrast of a color image
    • Imagick::oilPaintImage - Simulates an oil painting
    • Imagick::opaquePaintImage - Changes the color value of any pixel that matches target
    • Imagick::optimizeImageLayers - Removes repeated portions of images to optimize
    • Imagick::orderedPosterizeImage - Performs an ordered dither
    • Imagick::paintFloodfillImage - Changes the color value of any pixel that matches target
    • Imagick::paintOpaqueImage - Change any pixel that matches color
    • Imagick::paintTransparentImage - Changes any pixel that matches color with the color defined by fill
    • Imagick::pingImage - Fetch basic attributes about the image
    • Imagick::pingImageBlob - Quickly fetch attributes
    • Imagick::pingImageFile - Get basic image attributes in a lightweight manner
    • Imagick::polaroidImage - Simulates a Polaroid picture
    • Imagick::posterizeImage - Reduces the image to a limited number of color level
    • Imagick::previewImages - Quickly pin-point appropriate parameters for image processing
    • Imagick::previousImage - Move to the previous image in the object
    • Imagick::profileImage - Adds or removes a profile from an image
    • Imagick::quantizeImage - Analyzes the colors within a reference image
    • Imagick::quantizeImages - Analyzes the colors within a sequence of images
    • Imagick::queryFontMetrics - Returns an array representing the font metrics
    • Imagick::queryFonts - Returns the configured fonts
    • Imagick::queryFormats - Returns formats supported by Imagick
    • Imagick::radialBlurImage - Radial blurs an image
    • Imagick::raiseImage - Creates a simulated 3d button-like effect
    • Imagick::randomThresholdImage - Creates a high-contrast, two-color image
    • Imagick::readImage - Reads image from filename
    • Imagick::readImageBlob - Reads image from a binary string
    • Imagick::readImageFile - Reads image from open filehandle
    • Imagick::readimages - Description
    • Imagick::recolorImage - Recolors image
    • Imagick::reduceNoiseImage - Smooths the contours of an image
    • Imagick::remapImage - Remaps image colors
    • Imagick::removeImage - Removes an image from the image list
    • Imagick::removeImageProfile - Removes the named image profile and returns it
    • Imagick::render - Renders all preceding drawing commands
    • Imagick::resampleImage - Resample image to desired resolution
    • Imagick::resetImagePage - Reset image page
    • Imagick::resizeImage - Scales an image
    • Imagick::rollImage - Offsets an image
    • Imagick::rotateImage - Rotates an image
    • Imagick::rotationalBlurImage - Description
    • Imagick::roundCorners - Rounds image corners
    • Imagick::sampleImage - Scales an image with pixel sampling
    • Imagick::scaleImage - Scales the size of an image
    • Imagick::segmentImage - Segments an image
    • Imagick::selectiveBlurImage - Description
    • Imagick::separateImageChannel - Separates a channel from the image
    • Imagick::sepiaToneImage - Sepia tones an image
    • Imagick::setBackgroundColor - Sets the object's default background color
    • Imagick::setColorspace - Set colorspace
    • Imagick::setCompression - Sets the object's default compression type
    • Imagick::setCompressionQuality - Sets the object's default compression quality
    • Imagick::setFilename - Sets the filename before you read or write the image
    • Imagick::setFirstIterator - Sets the Imagick iterator to the first image
    • Imagick::setFont - Sets font
    • Imagick::setFormat - Sets the format of the Imagick object
    • Imagick::setGravity - Sets the gravity
    • Imagick::setImage - Replaces image in the object
    • Imagick::setImageAlphaChannel - Sets image alpha channel
    • Imagick::setImageArtifact - Set image artifact
    • Imagick::setImageAttribute - Description
    • Imagick::setImageBackgroundColor - Sets the image background color
    • Imagick::setImageBias - Sets the image bias for any method that convolves an image
    • Imagick::setImageBiasQuantum - Description
    • Imagick::setImageBluePrimary - Sets the image chromaticity blue primary point
    • Imagick::setImageBorderColor - Sets the image border color
    • Imagick::setImageChannelDepth - Sets the depth of a particular image channel
    • Imagick::setImageClipMask - Sets image clip mask
    • Imagick::setImageColormapColor - Sets the color of the specified colormap index
    • Imagick::setImageColorspace - Sets the image colorspace
    • Imagick::setImageCompose - Sets the image composite operator
    • Imagick::setImageCompression - Sets the image compression
    • Imagick::setImageCompressionQuality - Sets the image compression quality
    • Imagick::setImageDelay - Sets the image delay
    • Imagick::setImageDepth - Sets the image depth
    • Imagick::setImageDispose - Sets the image disposal method
    • Imagick::setImageExtent - Sets the image size
    • Imagick::setImageFilename - Sets the filename of a particular image
    • Imagick::setImageFormat - Sets the format of a particular image
    • Imagick::setImageGamma - Sets the image gamma
    • Imagick::setImageGravity - Sets the image gravity
    • Imagick::setImageGreenPrimary - Sets the image chromaticity green primary point
    • Imagick::setImageIndex - Set the iterator position
    • Imagick::setImageInterlaceScheme - Sets the image compression
    • Imagick::setImageInterpolateMethod - Sets the image interpolate pixel method
    • Imagick::setImageIterations - Sets the image iterations
    • Imagick::setImageMatte - Sets the image matte channel
    • Imagick::setImageMatteColor - Sets the image matte color
    • Imagick::setImageOpacity - Sets the image opacity level
    • Imagick::setImageOrientation - Sets the image orientation
    • Imagick::setImagePage - Sets the page geometry of the image
    • Imagick::setImageProfile - Adds a named profile to the Imagick object
    • Imagick::setImageProperty - Sets an image property
    • Imagick::setImageRedPrimary - Sets the image chromaticity red primary point
    • Imagick::setImageRenderingIntent - Sets the image rendering intent
    • Imagick::setImageResolution - Sets the image resolution
    • Imagick::setImageScene - Sets the image scene
    • Imagick::setImageTicksPerSecond - Sets the image ticks-per-second
    • Imagick::setImageType - Sets the image type
    • Imagick::setImageUnits - Sets the image units of resolution
    • Imagick::setImageVirtualPixelMethod - Sets the image virtual pixel method
    • Imagick::setImageWhitePoint - Sets the image chromaticity white point
    • Imagick::setInterlaceScheme - Sets the image compression
    • Imagick::setIteratorIndex - Set the iterator position
    • Imagick::setLastIterator - Sets the Imagick iterator to the last image
    • Imagick::setOption - Set an option
    • Imagick::setPage - Sets the page geometry of the Imagick object
    • Imagick::setPointSize - Sets point size
    • Imagick::setProgressMonitor - Description
    • Imagick::setRegistry - Description
    • Imagick::setResolution - Sets the image resolution
    • Imagick::setResourceLimit - Sets the limit for a particular resource
    • Imagick::setSamplingFactors - Sets the image sampling factors
    • Imagick::setSize - Sets the size of the Imagick object
    • Imagick::setSizeOffset - Sets the size and offset of the Imagick object
    • Imagick::setType - Sets the image type attribute
    • Imagick::shadeImage - Creates a 3D effect
    • Imagick::shadowImage - Simulates an image shadow
    • Imagick::sharpenImage - Sharpens an image
    • Imagick::shaveImage - Shaves pixels from the image edges
    • Imagick::shearImage - Creating a parallelogram
    • Imagick::sigmoidalContrastImage - Adjusts the contrast of an image
    • Imagick::sketchImage - Simulates a pencil sketch
    • Imagick::smushImages - Description
    • Imagick::solarizeImage - Applies a solarizing effect to the image
    • Imagick::sparseColorImage - Interpolates colors
    • Imagick::spliceImage - Splices a solid color into the image
    • Imagick::spreadImage - Randomly displaces each pixel in a block
    • Imagick::statisticImage - Description
    • Imagick::steganoImage - Hides a digital watermark within the image
    • Imagick::stereoImage - Composites two images
    • Imagick::stripImage - Strips an image of all profiles and comments
    • Imagick::subImageMatch - Description
    • Imagick::swirlImage - Swirls the pixels about the center of the image
    • Imagick::textureImage - Repeatedly tiles the texture image
    • Imagick::thresholdImage - Изменяет отдельные пиксели на основе порогового значения
    • Imagick::thumbnailImage - Changes the size of an image
    • Imagick::tintImage - Applies a color vector to each pixel in the image
    • Imagick::transformImage - Convenience method for setting crop size and the image geometry
    • Imagick::transformImageColorspace - Transforms an image to a new colorspace
    • Imagick::transparentPaintImage - Paints pixels transparent
    • Imagick::transposeImage - Creates a vertical mirror image
    • Imagick::transverseImage - Creates a horizontal mirror image
    • Imagick::trimImage - Remove edges from the image
    • Imagick::uniqueImageColors - Discards all but one of any pixel color
    • Imagick::unsharpMaskImage - Sharpens an image
    • Imagick::valid - Checks if the current item is valid
    • Imagick::vignetteImage - Adds vignette filter to the image
    • Imagick::waveImage - Applies wave filter to the image
    • Imagick::whiteThresholdImage - Force all pixels above the threshold into white
    • Imagick::writeImage - Writes an image to the specified filename
    • Imagick::writeImageFile - Записывает изображение в файл
    • Imagick::writeImages - Writes an image or image sequence
    • Imagick::writeImagesFile - Writes frames to a filehandle
    • Imagick::__construct - Конструктор объекта Imagick
    • Imagick::__toString - Returns the image as a string
    • ImagickDraw::affine - Adjusts the current affine transformation matrix
    • ImagickDraw::annotation - Draws text on the image
    • ImagickDraw::arc - Draws an arc
    • ImagickDraw::bezier - Draws a bezier curve
    • ImagickDraw::circle - Draws a circle
    • ImagickDraw::clear - Clears the ImagickDraw
    • ImagickDraw::clone - Makes an exact copy of the specified ImagickDraw object
    • ImagickDraw::color - Draws color on image
    • ImagickDraw::comment - Adds a comment
    • ImagickDraw::composite - Composites an image onto the current image
    • ImagickDraw::destroy - Frees all associated resources
    • ImagickDraw::ellipse - Draws an ellipse on the image
    • ImagickDraw::getClipPath - Obtains the current clipping path ID
    • ImagickDraw::getClipRule - Returns the current polygon fill rule
    • ImagickDraw::getClipUnits - Returns the interpretation of clip path units
    • ImagickDraw::getFillColor - Returns the fill color
    • ImagickDraw::getFillOpacity - Returns the opacity used when drawing
    • ImagickDraw::getFillRule - Returns the fill rule
    • ImagickDraw::getFont - Returns the font
    • ImagickDraw::getFontFamily - Returns the font family
    • ImagickDraw::getFontSize - Returns the font pointsize
    • ImagickDraw::getFontStretch - Description
    • ImagickDraw::getFontStyle - Returns the font style
    • ImagickDraw::getFontWeight - Returns the font weight
    • ImagickDraw::getGravity - Returns the text placement gravity
    • ImagickDraw::getStrokeAntialias - Returns the current stroke antialias setting
    • ImagickDraw::getStrokeColor - Returns the color used for stroking object outlines
    • ImagickDraw::getStrokeDashArray - Returns an array representing the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::getStrokeDashOffset - Returns the offset into the dash pattern to start the dash
    • ImagickDraw::getStrokeLineCap - Returns the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::getStrokeLineJoin - Returns the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::getStrokeMiterLimit - Returns the stroke miter limit
    • ImagickDraw::getStrokeOpacity - Returns the opacity of stroked object outlines
    • ImagickDraw::getStrokeWidth - Returns the width of the stroke used to draw object outlines
    • ImagickDraw::getTextAlignment - Returns the text alignment
    • ImagickDraw::getTextAntialias - Returns the current text antialias setting
    • ImagickDraw::getTextDecoration - Returns the text decoration
    • ImagickDraw::getTextEncoding - Returns the code set used for text annotations
    • ImagickDraw::getTextInterlineSpacing - Description
    • ImagickDraw::getTextInterwordSpacing - Description
    • ImagickDraw::getTextKerning - Description
    • ImagickDraw::getTextUnderColor - Returns the text under color
    • ImagickDraw::getVectorGraphics - Returns a string containing vector graphics
    • ImagickDraw::line - Draws a line
    • ImagickDraw::matte - Paints on the image's opacity channel
    • ImagickDraw::pathClose - Adds a path element to the current path
    • ImagickDraw::pathCurveToAbsolute - Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierAbsolute - Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierRelative - Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute - Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative - Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToRelative - Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothAbsolute - Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothRelative - Draws a cubic Bezier curve
    • ImagickDraw::pathEllipticArcAbsolute - Draws an elliptical arc
    • ImagickDraw::pathEllipticArcRelative - Draws an elliptical arc
    • ImagickDraw::pathFinish - Terminates the current path
    • ImagickDraw::pathLineToAbsolute - Draws a line path
    • ImagickDraw::pathLineToHorizontalAbsolute - Draws a horizontal line path
    • ImagickDraw::pathLineToHorizontalRelative - Draws a horizontal line
    • ImagickDraw::pathLineToRelative - Draws a line path
    • ImagickDraw::pathLineToVerticalAbsolute - Draws a vertical line
    • ImagickDraw::pathLineToVerticalRelative - Draws a vertical line path
    • ImagickDraw::pathMoveToAbsolute - Starts a new sub-path
    • ImagickDraw::pathMoveToRelative - Starts a new sub-path
    • ImagickDraw::pathStart - Declares the start of a path drawing list
    • ImagickDraw::point - Draws a point
    • ImagickDraw::polygon - Draws a polygon
    • ImagickDraw::polyline - Draws a polyline
    • ImagickDraw::pop - Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw
    • ImagickDraw::popClipPath - Terminates a clip path definition
    • ImagickDraw::popDefs - Terminates a definition list
    • ImagickDraw::popPattern - Terminates a pattern definition
    • ImagickDraw::push - Clones the current ImagickDraw and pushes it to the stack
    • ImagickDraw::pushClipPath - Starts a clip path definition
    • ImagickDraw::pushDefs - Indicates that following commands create named elements for early processing
    • ImagickDraw::pushPattern - Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern
    • ImagickDraw::rectangle - Draws a rectangle
    • ImagickDraw::render - Renders all preceding drawing commands onto the image
    • ImagickDraw::resetVectorGraphics - Description
    • ImagickDraw::rotate - Applies the specified rotation to the current coordinate space
    • ImagickDraw::roundRectangle - Draws a rounded rectangle
    • ImagickDraw::scale - Adjusts the scaling factor
    • ImagickDraw::setClipPath - Associates a named clipping path with the image
    • ImagickDraw::setClipRule - Set the polygon fill rule to be used by the clipping path
    • ImagickDraw::setClipUnits - Sets the interpretation of clip path units
    • ImagickDraw::setFillAlpha - Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillColor - Sets the fill color to be used for drawing filled objects
    • ImagickDraw::setFillOpacity - Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillPatternURL - Sets the URL to use as a fill pattern for filling objects
    • ImagickDraw::setFillRule - Sets the fill rule to use while drawing polygons
    • ImagickDraw::setFont - Sets the fully-specified font to use when annotating with text
    • ImagickDraw::setFontFamily - Sets the font family to use when annotating with text
    • ImagickDraw::setFontSize - Sets the font pointsize to use when annotating with text
    • ImagickDraw::setFontStretch - Sets the font stretch to use when annotating with text
    • ImagickDraw::setFontStyle - Sets the font style to use when annotating with text
    • ImagickDraw::setFontWeight - Sets the font weight
    • ImagickDraw::setGravity - Sets the text placement gravity
    • ImagickDraw::setResolution - Description
    • ImagickDraw::setStrokeAlpha - Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokeAntialias - Controls whether stroked outlines are antialiased
    • ImagickDraw::setStrokeColor - Sets the color used for stroking object outlines
    • ImagickDraw::setStrokeDashArray - Specifies the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::setStrokeDashOffset - Specifies the offset into the dash pattern to start the dash
    • ImagickDraw::setStrokeLineCap - Specifies the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::setStrokeLineJoin - Specifies the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::setStrokeMiterLimit - Specifies the miter limit
    • ImagickDraw::setStrokeOpacity - Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokePatternURL - Sets the pattern used for stroking object outlines
    • ImagickDraw::setStrokeWidth - Sets the width of the stroke used to draw object outlines
    • ImagickDraw::setTextAlignment - Specifies a text alignment
    • ImagickDraw::setTextAntialias - Controls whether text is antialiased
    • ImagickDraw::setTextDecoration - Specifies a decoration
    • ImagickDraw::setTextEncoding - Specifies the text code set
    • ImagickDraw::setTextInterlineSpacing - Description
    • ImagickDraw::setTextInterwordSpacing - Description
    • ImagickDraw::setTextKerning - Description
    • ImagickDraw::setTextUnderColor - Specifies the color of a background rectangle
    • ImagickDraw::setVectorGraphics - Sets the vector graphics
    • ImagickDraw::setViewbox - Sets the overall canvas size
    • ImagickDraw::skewX - Skews the current coordinate system in the horizontal direction
    • ImagickDraw::skewY - Skews the current coordinate system in the vertical direction
    • ImagickDraw::translate - Applies a translation to the current coordinate system
    • ImagickDraw::__construct - The ImagickDraw constructor
    • ImagickKernel::addKernel - Description
    • ImagickKernel::addUnityKernel - Description
    • ImagickKernel::fromBuiltIn - Description
    • ImagickKernel::fromMatrix - Description
    • ImagickKernel::getMatrix - Description
    • ImagickKernel::scale - Description
    • ImagickKernel::separate - Description
    • ImagickPixel::clear - Очищает ресурсы, связанные с этим объектом
    • ImagickPixel::destroy - Освобождает ресурсы, связанные с этим объектом
    • ImagickPixel::getColor - Возвращает цвет
    • ImagickPixel::getColorAsString - Возвращает цвет в виде строки
    • ImagickPixel::getColorCount - Возвращает количество цветов связанных с этим цветом
    • ImagickPixel::getColorQuantum - Description
    • ImagickPixel::getColorValue - Возвращает нормализованное значение цвета канала
    • ImagickPixel::getColorValueQuantum - Description
    • ImagickPixel::getHSL - Возвращает нормализованный HSL-цвет объекта ImagickPixel
    • ImagickPixel::getIndex - Description
    • ImagickPixel::isPixelSimilar - Check the distance between this color and another
    • ImagickPixel::isPixelSimilarQuantum - Description
    • ImagickPixel::isSimilar - Проверить разницу между этим цветом и другим
    • ImagickPixel::setColor - Устанавливает цвет
    • ImagickPixel::setColorCount - Description
    • ImagickPixel::setColorValue - Устанавливает нормализованное значение одного из каналов
    • ImagickPixel::setColorValueQuantum - Description
    • ImagickPixel::setHSL - Установка нормализованного HSL цвета
    • ImagickPixel::setIndex - Description
    • ImagickPixel::__construct - Конструктор ImagickPixel
    • ImagickPixelIterator::clear - Очищает ресурсы, связанные с PixelIterator
    • ImagickPixelIterator::destroy - Освобождает ресурсы, связанные с PixelIterator
    • ImagickPixelIterator::getCurrentIteratorRow - Возвращает текущий ряд объекта ImagickPixel
    • ImagickPixelIterator::getIteratorRow - Возвращает текущий пиксель итератора ряда
    • ImagickPixelIterator::getNextIteratorRow - Возвращает следующий ряд итератора пикселей
    • ImagickPixelIterator::getPreviousIteratorRow - Возвращает предыдущий ряд
    • ImagickPixelIterator::newPixelIterator - Возвращает новый итератор пикселей
    • ImagickPixelIterator::newPixelRegionIterator - Возвращает новый итератор пикселей
    • ImagickPixelIterator::resetIterator - Сбрасывает итератор пикселей
    • ImagickPixelIterator::setIteratorFirstRow - Устанавливает итератор пикселей на первый ряд
    • ImagickPixelIterator::setIteratorLastRow - Устанавливает итератор пикселей на последний ряд
    • ImagickPixelIterator::setIteratorRow - Устанавливает номер ряда в итераторе пикселей
    • ImagickPixelIterator::syncIterator - Синхронизирует итератор пикселей
    • ImagickPixelIterator::__construct - Конструктор ImagickPixelIterator
    • imap_8bit - Конвертирует 8-битную строку в строку в формате quoted-printable
    • imap_alerts - Возвращает все произошедшие предупредительные сообщения IMAP
    • imap_append - Добавляет строковое сообщение в указанный почтовый ящик
    • imap_base64 - Декодировать текст закодированный BASE64
    • imap_binary - Конвертирует 8-битную строку в строку base64
    • imap_body - Прочитать тело сообщения
    • imap_bodystruct - Прочитать структуру указанной секции тела заданного сообщения
    • imap_check - Проверить текущий почтовый ящик
    • imap_clearflag_full - Снять с сообщения установленные флаги
    • imap_close - Закрыть поток IMAP
    • imap_create - Псевдоним imap_createmailbox
    • imap_createmailbox - Создать новый почтовый ящик
    • imap_delete - Пометить сообщение для удаления
    • imap_deletemailbox - Удалить почтовый ящик
    • imap_errors - Получить все произошедшие ошибки IMAP
    • imap_expunge - Удалить все помеченные для удаления сообщения
    • imap_fetchbody - Извлечь конкретную секцию тела сообщения
    • imap_fetchheader - Получить заголовок сообщения
    • imap_fetchmime - Извлечь MIME-заголовки для конкретной секции сообщения
    • imap_fetchstructure - Прочитать структуру указанного сообщения
    • imap_fetchtext - Псевдоним imap_body
    • imap_fetch_overview - Обзор информации, содержащейся в заголовках сообщений
    • imap_gc - Очистить кеш IMAP
    • imap_getacl - Получить ACL для заданного почтового ящика
    • imap_getmailboxes - Прочитать список почтовых ящиков, возвращая подробную информацию по каждому из них
    • imap_getsubscribed - Список всех почтовых ящиков, на которые вы подписаны
    • imap_get_quota - Получить настройку уровня квоты и статистику использования почтовых ящиков
    • imap_get_quotaroot - Получить настройки квоты для каждого пользователя
    • imap_header - Псевдоним imap_headerinfo
    • imap_headerinfo - Прочитать заголовок сообщения
    • imap_headers - Получить заголовки всех сообщений в почтовом ящике
    • imap_last_error - Получить последнюю ошибку IMAP в текущем запросе
    • imap_list - Прочитать список почтовых ящиков
    • imap_listmailbox - Псевдоним imap_list
    • imap_listscan - Получить список почтовых ящиков, имена которых содержат заданную строку
    • imap_listsubscribed - Псевдоним imap_lsub
    • imap_lsub - Список всех подписанных почтовых ящиков
    • imap_mail - Отправить email
    • imap_mailboxmsginfo - Получить информацию о текущем почтовом ящике
    • imap_mail_compose - Создать MIME-сообщение на основе заданных обертки и тела
    • imap_mail_copy - Скопировать сообщения в указанный почтовый ящик
    • imap_mail_move - Переместить указанные сообщения в указанный почтовый ящик
    • imap_mime_header_decode - Декодировать элементы заголовка
    • imap_msgno - Получить номер сообщения с заданным UID
    • imap_mutf7_to_utf8 - Декодировать измененную строку UTF-7 в UTF-8
    • imap_num_msg - Получить количество сообщений в текущем почтовом ящике
    • imap_num_recent - Получить количество новых сообщений в текущем почтовом ящике
    • imap_open - Открывает поток IMAP к почтовому ящику
    • imap_ping - Проверить, активен ли еще поток IMAP
    • imap_qprint - Преобразовать строку из формата "quoted-printable" в 8-битную строку
    • imap_rename - Псевдоним imap_renamemailbox
    • imap_renamemailbox - Переименовать почтовый ящик
    • imap_reopen - Переоткрывает поток IMAP к новому ящику
    • imap_rfc822_parse_adrlist - Разбор адресной строки
    • imap_rfc822_parse_headers - Разбор строки заголовка письма
    • imap_rfc822_write_address - Получить корректно сформированный e-mail адрес, заданный именем ящика, хоста и персональной информацией
    • imap_savebody - Сохранить часть тела сообщения в файл
    • imap_scan - Псевдоним imap_listscan
    • imap_scanmailbox - Псевдоним imap_listscan
    • imap_search - Получить сообщения, удовлетворяющие заданным критериям
    • imap_setacl - Установка ACL для заданного почтового ящика
    • imap_setflag_full - Установить флаги на сообщения
    • imap_set_quota - Установить квоту для заданного почтового ящика
    • imap_sort - Получить и отсортировать сообщения
    • imap_status - Получить информацию по статусу почтового ящика
    • imap_subscribe - Подписаться на почтовый ящик
    • imap_thread - Получить дерево связанных сообщений
    • imap_timeout - Установить или получить тайм-аут imap
    • imap_uid - Получить UID по номеру сообщения
    • imap_undelete - Снимает с сообщения метку удаления
    • imap_unsubscribe - Отписаться от почтового ящика
    • imap_utf7_decode - Декодирует строку из модифицированной кодировки UTF-7
    • imap_utf7_encode - Преобразует строку ISO-8859-1 в модифицированную UTF-7
    • imap_utf8 - Преобразует MIME-кодированный текст в UTF-8
    • imap_utf8_to_mutf7 - Кодировать строку UTF-8 в измененную UTF-7
    • implode - Объединяет элементы массива в строку
    • import_request_variables - Импортирует переменные GET/POST/Cookie в глобальную область видимости
    • inclued_get_data - Получить информацию по включенным файлам
    • inet_ntop - Конвертирует упакованный интернет-адрес в читаемый формат
    • inet_pton - Конвертирует читаемый IP-адрес в его упакованное представление in_addr
    • InfiniteIterator::next - Перемещает итератор на одну позицию вперед или в начало
    • InfiniteIterator::__construct - Конструктор класса InfiniteIterator
    • inflate_add - Инкрементально распаковать закодированные данные
    • inflate_get_read_len - Получает количество прочитанных байт
    • inflate_get_status - Получает статус декомпрессии
    • inflate_init - Инициализация контекста инкрементальной распоковки
    • ingres_autocommit - Switch autocommit on or off
    • ingres_autocommit_state - Test if the connection is using autocommit
    • ingres_charset - Returns the installation character set
    • ingres_close - Close an Ingres database connection
    • ingres_commit - Commit a transaction
    • ingres_connect - Open a connection to an Ingres database
    • ingres_cursor - Get a cursor name for a given result resource
    • ingres_errno - Get the last Ingres error number generated
    • ingres_error - Get a meaningful error message for the last error generated
    • ingres_errsqlstate - Get the last SQLSTATE error code generated
    • ingres_escape_string - Escape special characters for use in a query
    • ingres_execute - Execute a prepared query
    • ingres_fetch_array - Fetch a row of result into an array
    • ingres_fetch_assoc - Fetch a row of result into an associative array
    • ingres_fetch_object - Fetch a row of result into an object
    • ingres_fetch_proc_return - Get the return value from a procedure call
    • 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_free_result - Free the resources associated with a result identifier
    • ingres_next_error - Get the next Ingres error
    • 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 a query
    • ingres_pconnect - Open a persistent connection to an Ingres database
    • ingres_prepare - Prepare a query for later execution
    • ingres_query - Send an SQL query to Ingres
    • ingres_result_seek - Set the row position before fetching data
    • ingres_rollback - Roll back a transaction
    • ingres_set_environment - Set environment features controlling output options
    • ingres_unbuffered_query - Send an unbuffered SQL query to Ingres
    • ini_alter - Псевдоним ini_set
    • ini_get - Получает значение настройки конфигурации
    • ini_get_all - Получает все настройки конфигурации
    • ini_restore - Восстанавливает значение настройки конфигурации
    • ini_set - Устанавливает значение настройки конфигурации
    • inotify_add_watch - Добавить наблюдателя для экземпляра inotify
    • inotify_init - Инициализирует экземпляр inotify
    • inotify_queue_len - Возвращает число ожидающих событий в очереди
    • inotify_read - Читает ожидающие сообщения из очереди
    • inotify_rm_watch - Удалить наблюдателя
    • intdiv - Целочисленное деление
    • interface_exists - Проверяет, определен ли интерфейс
    • IntlBreakIterator::createCharacterInstance - Create break iterator for boundaries of combining character sequences
    • IntlBreakIterator::createCodePointInstance - Create break iterator for boundaries of code points
    • IntlBreakIterator::createLineInstance - Create break iterator for logically possible line breaks
    • IntlBreakIterator::createSentenceInstance - Create break iterator for sentence breaks
    • IntlBreakIterator::createTitleInstance - Create break iterator for title-casing breaks
    • IntlBreakIterator::createWordInstance - Create break iterator for word breaks
    • IntlBreakIterator::current - Get index of current position
    • IntlBreakIterator::first - Set position to the first character in the text
    • IntlBreakIterator::following - Advance the iterator to the first boundary following specified offset
    • IntlBreakIterator::getErrorCode - Get last error code on the object
    • IntlBreakIterator::getErrorMessage - Get last error message on the object
    • IntlBreakIterator::getLocale - Get the locale associated with the object
    • IntlBreakIterator::getPartsIterator - Create iterator for navigating fragments between boundaries
    • IntlBreakIterator::getText - Get the text being scanned
    • IntlBreakIterator::isBoundary - Tell whether an offset is a boundary?s offset
    • IntlBreakIterator::last - Set the iterator position to index beyond the last character
    • IntlBreakIterator::next - Advance the iterator the next boundary
    • IntlBreakIterator::preceding - Set the iterator position to the first boundary before an offset
    • IntlBreakIterator::previous - Set the iterator position to the boundary immediately before the current
    • IntlBreakIterator::setText - Set the text being scanned
    • IntlBreakIterator::__construct - Private constructor for disallowing instantiation
    • IntlCalendar::add - Add a (signed) amount of time to a field
    • IntlCalendar::after - Whether this object?s time is after that of the passed object
    • IntlCalendar::before - Whether this object?s time is before that of the passed object
    • IntlCalendar::clear - Clear a field or all fields
    • IntlCalendar::createInstance - Create a new IntlCalendar
    • IntlCalendar::equals - Compare time of two IntlCalendar objects for equality
    • IntlCalendar::fieldDifference - Calculate difference between given time and this object?s time
    • IntlCalendar::fromDateTime - Create an IntlCalendar from a DateTime object or string
    • IntlCalendar::get - Get the value for a field
    • IntlCalendar::getActualMaximum - The maximum value for a field, considering the object?s current time
    • IntlCalendar::getActualMinimum - The minimum value for a field, considering the object?s current time
    • IntlCalendar::getAvailableLocales - Get array of locales for which there is data
    • IntlCalendar::getDayOfWeekType - Tell whether a day is a weekday, weekend or a day that has a transition between the two
    • IntlCalendar::getErrorCode - Get last error code on the object
    • IntlCalendar::getErrorMessage - Get last error message on the object
    • IntlCalendar::getFirstDayOfWeek - Get the first day of the week for the calendar?s locale
    • IntlCalendar::getGreatestMinimum - Get the largest local minimum value for a field
    • IntlCalendar::getKeywordValuesForLocale - Get set of locale keyword values
    • IntlCalendar::getLeastMaximum - Get the smallest local maximum for a field
    • IntlCalendar::getLocale - Get the locale associated with the object
    • IntlCalendar::getMaximum - Get the global maximum value for a field
    • IntlCalendar::getMinimalDaysInFirstWeek - Get minimal number of days the first week in a year or month can have
    • IntlCalendar::getMinimum - Get the global minimum value for a field
    • IntlCalendar::getNow - Get number representing the current time
    • IntlCalendar::getRepeatedWallTimeOption - Get behavior for handling repeating wall time
    • IntlCalendar::getSkippedWallTimeOption - Get behavior for handling skipped wall time
    • IntlCalendar::getTime - Get time currently represented by the object
    • IntlCalendar::getTimeZone - Get the object?s timezone
    • IntlCalendar::getType - Get the calendar type
    • IntlCalendar::getWeekendTransition - Get time of the day at which weekend begins or ends
    • IntlCalendar::inDaylightTime - Whether the object?s time is in Daylight Savings Time
    • IntlCalendar::isEquivalentTo - Whether another calendar is equal but for a different time
    • IntlCalendar::isLenient - Whether date/time interpretation is in lenient mode
    • IntlCalendar::isSet - Whether a field is set
    • IntlCalendar::isWeekend - Whether a certain date/time is in the weekend
    • IntlCalendar::roll - Add value to field without carrying into more significant fields
    • IntlCalendar::set - Set a time field or several common fields at once
    • IntlCalendar::setFirstDayOfWeek - Set the day on which the week is deemed to start
    • IntlCalendar::setLenient - Set whether date/time interpretation is to be lenient
    • IntlCalendar::setMinimalDaysInFirstWeek - Set minimal number of days the first week in a year or month can have
    • IntlCalendar::setRepeatedWallTimeOption - Set behavior for handling repeating wall times at negative timezone offset transitions
    • IntlCalendar::setSkippedWallTimeOption - Set behavior for handling skipped wall times at positive timezone offset transitions
    • IntlCalendar::setTime - Set the calendar time in milliseconds since the epoch
    • IntlCalendar::setTimeZone - Set the timezone used by this calendar
    • IntlCalendar::toDateTime - Convert an IntlCalendar into a DateTime object
    • IntlCalendar::__construct - Private constructor for disallowing instantiation
    • IntlChar::charAge - Получить "возраст" символьного кода
    • IntlChar::charDigitValue - Получить десятичную цифру из символа десятичной цифры
    • IntlChar::charDirection - Получить категорию направления письма для символа
    • IntlChar::charFromName - Найти символ Unicode по его имени и вернуть его код
    • IntlChar::charMirror - Получить "зеркальный" символ по коду
    • IntlChar::charName - Получить имя символа Unicode
    • IntlChar::charType - Получить главную категорию, в которую входит символ
    • IntlChar::chr - Получить символ Unicode по его коду
    • IntlChar::digit - Получить десятичное число из символа Unicode с заданным основанием
    • IntlChar::enumCharNames - Перечисляет все присвоенные символы Unicode в заданном диапазоне
    • IntlChar::enumCharTypes - Перечисление последовательностей символов Unicode сгруппированых по им категориям
    • IntlChar::foldCase - Производит преобразование регистра заданного символа
    • IntlChar::forDigit - Получить символ представляющий заданное число в заданном основании
    • IntlChar::getBidiPairedBracket - Получить парную скобку для символа
    • IntlChar::getBlockCode - Получить блок размещения символа Unicode
    • IntlChar::getCombiningClass - Получить комбинирующий класс для символа
    • IntlChar::getFC_NFKC_Closure - Получить свойство FC_NFKC_Closure для символа
    • IntlChar::getIntPropertyMaxValue - Получить минимальное значение для свойства Unicode
    • IntlChar::getIntPropertyMinValue - Получить минимальное значение для свойства Unicode
    • IntlChar::getIntPropertyValue - Получить значение свойства Unicode для символа
    • IntlChar::getNumericValue - Получить числовое предствление для символа Unicode
    • IntlChar::getPropertyEnum - Получить значение константы свойства по его имени
    • IntlChar::getPropertyName - Получить Unicode имя свойства
    • IntlChar::getPropertyValueEnum - Вернуть числовой идентификатор свойства по его имени
    • IntlChar::getPropertyValueName - Получить имя Unicode для значения свойства
    • IntlChar::getUnicodeVersion - Получить версию Unicode
    • IntlChar::hasBinaryProperty - Проверить бинарное свойство Unicode для символа
    • IntlChar::isalnum - Проверить, является ли символ буквой либо цифрой
    • IntlChar::isalpha - Проверить, является ли символ буквой
    • IntlChar::isbase - Проверить, является ли символ базовым
    • IntlChar::isblank - Проверить, является ли символ "пустым" либо "горизонтальным пробелом"
    • IntlChar::iscntrl - Проверить, является ли символ управляющим
    • IntlChar::isdefined - Проверить, определен ли символ
    • IntlChar::isdigit - Проверить, является ли символ цифрой
    • IntlChar::isgraph - Проверить, является ли символ графическим символом
    • IntlChar::isIDIgnorable - Проверить, является ли символ игнорируемым
    • IntlChar::isIDPart - Проверить, допустимо ли использовать символ в идентификаторе
    • IntlChar::isIDStart - Проверить, допустимо ли использовать символ в начале идентификатора
    • IntlChar::isISOControl - Проверить, является ли символ управляющим согласно ISO
    • IntlChar::isJavaIDPart - Проверить, является ли символ допустимым в идентификаторе Java
    • IntlChar::isJavaIDStart - Проверить, может ли символ быть первым в идентификаторе Java
    • IntlChar::isJavaSpaceChar - Проверить, является ли символ пробельным с точки зрения языка Java
    • IntlChar::islower - Проверить, в нижнем ли регистре символ
    • IntlChar::isMirrored - Проверить, если у символа свойство Bidi_Mirrored
    • IntlChar::isprint - Проверяет, является ли симвом отображаемым
    • IntlChar::ispunct - Проверяет, является ли символ символом пунктуации
    • IntlChar::isspace - Проверяет, является ли символ пробельным
    • IntlChar::istitle - Проверить, является ли символ титульным (Titlecase)
    • IntlChar::isUAlphabetic - Проверить, установлено ли у символа свойство Alphabetic
    • IntlChar::isULowercase - Проверить, является ли символ символом в нижнем регистре
    • IntlChar::isupper - Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)
    • IntlChar::isUUppercase - Проверить, является ли символ символом в верхнем регистре
    • IntlChar::isUWhiteSpace - Проверить, имеет ли символ свойство White_Space (пробельный символ)
    • IntlChar::isWhitespace - Проверить, является ли символ пробельным с точки зрения ICU
    • IntlChar::isxdigit - Проверить, является ли символ шестнадцатеричной цифрой
    • IntlChar::ord - Получить код символ Unicode
    • IntlChar::tolower - Преобразование символа Unicode в нижний регистр
    • IntlChar::totitle - Преобразует символ Unicode в titlecase
    • IntlChar::toupper - Преобразование символа Unicode в верхний регистр
    • IntlCodePointBreakIterator::getLastCodePoint - Получить последний код символа, выданный при перемещении итератора вперед или назад
    • IntlDateFormatter::create - Create a date formatter
    • IntlDateFormatter::format - Format the date/time value as a string
    • IntlDateFormatter::formatObject - Formats an object
    • IntlDateFormatter::getCalendar - Get the calendar type used for the IntlDateFormatter
    • IntlDateFormatter::getCalendarObject - Get copy of formatter?s calendar object
    • IntlDateFormatter::getDateType - Get the datetype used for the IntlDateFormatter
    • IntlDateFormatter::getErrorCode - Get the error code from last operation
    • IntlDateFormatter::getErrorMessage - Get the error text from the last operation
    • IntlDateFormatter::getLocale - Get the locale used by formatter
    • IntlDateFormatter::getPattern - Get the pattern used for the IntlDateFormatter
    • IntlDateFormatter::getTimeType - Get the timetype used for the IntlDateFormatter
    • IntlDateFormatter::getTimeZone - Get formatter?s timezone
    • IntlDateFormatter::getTimeZoneId - Get the timezone-id used for the IntlDateFormatter
    • IntlDateFormatter::isLenient - Get the lenient used for the IntlDateFormatter
    • IntlDateFormatter::localtime - Parse string to a field-based time value
    • IntlDateFormatter::parse - Parse string to a timestamp value
    • IntlDateFormatter::setCalendar - Sets the calendar type used by the formatter
    • IntlDateFormatter::setLenient - Set the leniency of the parser
    • IntlDateFormatter::setPattern - Set the pattern used for the IntlDateFormatter
    • IntlDateFormatter::setTimeZone - Sets formatter?s timezone
    • IntlDateFormatter::setTimeZoneId - Sets the time zone to use
    • IntlGregorianCalendar::getGregorianChange - Get the Gregorian Calendar change date
    • IntlGregorianCalendar::isLeapYear - Determine if the given year is a leap year
    • IntlGregorianCalendar::setGregorianChange - Set the Gregorian Calendar the change date
    • IntlGregorianCalendar::__construct - Create the Gregorian Calendar class
    • IntlIterator::current - Получить текущий элемент
    • IntlIterator::key - Получить ключ текущего элемента
    • IntlIterator::next - Перейти к следующему элементу
    • IntlIterator::rewind - Перейти к первому элементу
    • IntlIterator::valid - Проверить, корректна ли текущая позиция
    • IntlPartsIterator::getBreakIterator - Получить IntlBreakIterator сохраняя итератор этой части
    • IntlRuleBasedBreakIterator::getBinaryRules - Получить бинарные данные из скомпилированных правил
    • IntlRuleBasedBreakIterator::getRules - Получить набор правил, использовавшихся при создании этого объекта
    • IntlRuleBasedBreakIterator::getRuleStatus - Получить наибольшее значение статуса правил останова, определившее текущую позицию остановки
    • IntlRuleBasedBreakIterator::getRuleStatusVec - получить значения статусов из правил останова, определивших текущую позицию остановки
    • IntlRuleBasedBreakIterator::__construct - Создает итератор на основе набора правил
    • IntlTimeZone::countEquivalentIDs - Get the number of IDs in the equivalency group that includes the given ID
    • IntlTimeZone::createDefault - Create a new copy of the default timezone for this host
    • IntlTimeZone::createEnumeration - Get an enumeration over time zone IDs associated with the given country or offset
    • IntlTimeZone::createTimeZone - Create a timezone object for the given ID
    • IntlTimeZone::createTimeZoneIDEnumeration - Get an enumeration over system time zone IDs with the given filter conditions
    • IntlTimeZone::fromDateTimeZone - Create a timezone object from DateTimeZone
    • IntlTimeZone::getCanonicalID - Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID
    • IntlTimeZone::getDisplayName - Get a name of this time zone suitable for presentation to the user
    • IntlTimeZone::getDSTSavings - Get the amount of time to be added to local standard time to get local wall clock time
    • IntlTimeZone::getEquivalentID - Get an ID in the equivalency group that includes the given ID
    • IntlTimeZone::getErrorCode - Get last error code on the object
    • IntlTimeZone::getErrorMessage - Get last error message on the object
    • IntlTimeZone::getGMT - Create GMT (UTC) timezone
    • IntlTimeZone::getID - Get timezone ID
    • IntlTimeZone::getIDForWindowsID - Translate a Windows timezone into a system timezone
    • IntlTimeZone::getOffset - Get the time zone raw and GMT offset for the given moment in time
    • IntlTimeZone::getRawOffset - Get the raw GMT offset (before taking daylight savings time into account
    • IntlTimeZone::getRegion - Get the region code associated with the given system time zone ID
    • IntlTimeZone::getTZDataVersion - Get the timezone data version currently used by ICU
    • IntlTimeZone::getUnknown - Get the "unknown" time zone
    • IntlTimeZone::getWindowsID - Translate a system timezone into a Windows timezone
    • IntlTimeZone::hasSameRules - Check if this zone has the same rules and offset as another zone
    • IntlTimeZone::toDateTimeZone - Convert to DateTimeZone object
    • IntlTimeZone::useDaylightTime - Check if this time zone uses daylight savings time
    • intl_error_name - Получить имя ошибки по ее коду
    • intl_get_error_code - Получить код последней ошибки
    • intl_get_error_message - Получить описание ошибки
    • intl_is_failure - Проверить, является ли код ошибки признаком сбоя
    • intval - Возвращает целое значение переменной
    • in_array - Проверяет, присутствует ли в массиве значение
    • ip2long - Конвертирует строку, содержащую IPv4-адрес в целое число
    • iptcembed - Встраивание двоичных IPTC данных в JPEG изображение
    • iptcparse - Разбор двоичных IPTC данных на отдельные теги
    • isset - Определяет, была ли установлена переменная значением, отличным от NULL
    • is_a - Проверяет, принадлежит ли объект к данному классу или является ли этот класс одним из его родителей
    • is_array - Определяет, является ли переменная массивом
    • is_bool - Проверяет, является ли переменная булевой
    • is_callable - Проверяет, может ли значение переменной быть вызвано в качестве функции
    • is_countable - Проверить, что содержимое переменной является счетным значением
    • is_dir - Определяет, является ли имя файла директорией
    • is_double - Псевдоним is_float
    • is_executable - Определяет, является ли файл исполняемым
    • is_file - Определяет, является ли файл обычным файлом
    • is_finite - Проверяет, является ли значение допустимым конечным числом
    • is_float - Проверяет, является ли переменная числом с плавающей точкой
    • is_infinite - Проверяет, является ли значение бесконечным
    • is_int - Проверяет, является ли переменная целым числом
    • is_integer - Псевдоним is_int
    • is_iterable - Проверяет, является ли переменная итерируемой
    • is_link - Определяет, является ли файл символической ссылкой
    • is_long - Псевдоним is_int
    • is_nan - Проверяет, является ли значение "не числом"
    • is_null - Проверяет, является ли значение переменной равным NULL
    • is_numeric - Проверяет, является ли переменная числом или строкой, содержащей число
    • is_object - Проверяет, является ли переменная объектом
    • is_readable - Определяет существование файла и доступен ли он для чтения
    • is_real - Псевдоним is_float
    • is_resource - Проверяет, является ли переменная ресурсом
    • is_scalar - Проверяет, является ли переменная скалярным значением
    • is_soap_fault - Проверяет, произошла ли ошибка при вызове SOAP
    • is_string - Проверяет, является ли переменная строкой
    • is_subclass_of - Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его
    • is_tainted - Проверяет, испорчена ли строка
    • is_uploaded_file - Определяет, был ли файл загружен при помощи HTTP POST
    • is_writable - Определяет, доступен ли файл для записи
    • is_writeable - Псевдоним is_writable
    • Iterator::current - Возврат текущего элемента
    • Iterator::key - Возврат ключа текущего элемента
    • Iterator::next - Переход к следующему элементу
    • Iterator::rewind - Перемотать итератор на первый элемент
    • Iterator::valid - Проверяет корректность текущей позиции
    • IteratorAggregate::getIterator - Получить внешний итератор
    • IteratorIterator::current - Получает текущее значение
    • IteratorIterator::getInnerIterator - Получает внутренний итератор
    • IteratorIterator::key - Получает ключ текущего элемента
    • IteratorIterator::next - Перемещает итератор к следующему элементу
    • IteratorIterator::rewind - Возвращает итератор к первому элементу
    • IteratorIterator::valid - Проверяет, является ли итератор допустимым
    • IteratorIterator::__construct - Создает итератор из чего-либо, что является обходимым (traversable)
    • iterator_apply - Вызывает функцию для каждого элемента в итераторе
    • iterator_count - Подсчитывает количество элементов в итераторе
    • iterator_to_array - Копирует итератор в массив
  • j
    • jddayofweek - Возвращает день недели
    • jdmonthname - Возвращает название месяца
    • jdtofrench - Переводит число дней в юлианском летоисчислении в дату по французскому республиканскому календарю
    • jdtogregorian - Переводит число дней в юлианском летоисчислении в дату по Григорианскому календарю
    • jdtojewish - Переводит количество дней из юлианского календаря в дату по еврейскому календарю
    • jdtojulian - Переводит число дней в юлианском летоисчислении в дату по юлианскому календарю
    • jdtounix - Переводит число дней в юлианском летоисчислении в метку времени Unix
    • jewishtojd - Переводит дату по еврейскому календарю в число дней в юлианском летоисчислении
    • join - Псевдоним implode
    • jpeg2wbmp - Конвертирует изображение из формата JPEG в WBMP
    • JsonSerializable::jsonSerialize - Задает данные, которые должны быть сериализованы в JSON
    • json_decode - Декодирует строку JSON
    • json_encode - Возвращает JSON-представление данных
    • json_last_error - Возвращает последнюю ошибку
    • json_last_error_msg - Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()
    • Judy::byCount - Найти N-ный по счету индекс в массиве Judy
    • Judy::count - Посчитать количество элементов в массиве Judy
    • Judy::first - Ищет первый индекс в массиве Judy
    • Judy::firstEmpty - Поиск первого отсутствующего индекса в массиве Judy
    • Judy::free - Очищает весь массив Judy
    • Judy::getType - Возвращает тип текущего массива Judy
    • Judy::last - Поиск последнего индекса массива Judy
    • Judy::lastEmpty - Поиск последнего отсутствующего индекса в массиве Judy
    • Judy::memoryUsage - Возвращает количество памяти, использованное массивом Judy
    • Judy::next - Поиск следующего индекса в массиве Judy
    • Judy::nextEmpty - Ищет следующий отсутствующий индекс в массиве Judy
    • Judy::offsetExists - Определяет, существует ли смещение
    • Judy::offsetGet - Вернуть значение по указанному смещению
    • Judy::offsetSet - Установить значение по указанному смещению
    • Judy::offsetUnset - Удаляет элемент по указанному смещению
    • Judy::prev - Ищет предыдущий индекс в массиве Judy
    • Judy::prevEmpty - Ищет предыдущий отсутствующий индекс в массиве Judy
    • Judy::size - Возвращает размер текущего массива Judy
    • Judy::__construct - Конструктор объекта Judy
    • Judy::__destruct - Уничтожить объект Judy
    • judy_type - Возвращает тип массива Judy
    • judy_version - Возвращает и печатает версию Judy PHP
    • juliantojd - Переводит дату по юлианскому календарю в число дней в юлианском летоисчислении
  • k
    • kadm5_chpass_principal - Изменить пароль принципала
    • kadm5_create_principal - Создать принципала kerberos с заданными параметрами
    • kadm5_delete_principal - Удалить принципала kerberos
    • kadm5_destroy - Закрытие соединения с сервером kerberos и высвобождение всех связанных ресурсов
    • kadm5_flush - Сброс всех изменений в базу данных Kerberos
    • kadm5_get_policies - Получить все политики с сервера Kerberos
    • kadm5_get_principal - Получение записей принципала с сервера Kerberos
    • kadm5_get_principals - Получить всех принципалов из базы данных Kerberos
    • kadm5_init_with_password - Открывает соединение с библиотекой KADM5
    • kadm5_modify_principal - Изменяет принципала kerberos в соответствии с заданными параметрами
    • key - Выбирает ключ из массива
    • key_exists - Псевдоним array_key_exists
    • krsort - Сортирует массив по ключам в обратном порядке
    • ksort - Сортирует массив по ключам
    • KTaglib_ID3v2_AttachedPictureFrame::getDescription - Возвращает описание для изображения в фрейме изображения
    • KTaglib_ID3v2_AttachedPictureFrame::getMimeType - Возвращает mime-тип изображения
    • KTaglib_ID3v2_AttachedPictureFrame::getType - Возвращает тип изображения
    • KTaglib_ID3v2_AttachedPictureFrame::savePicture - Записывает изображение в файл
    • KTaglib_ID3v2_AttachedPictureFrame::setMimeType - Устанавливает mime-тип изображения
    • KTaglib_ID3v2_AttachedPictureFrame::setPicture - Установить фрейм изображения для заданного изображения
    • KTaglib_ID3v2_AttachedPictureFrame::setType - Установить тип изображения
    • KTaglib_ID3v2_Frame::getSize - Возвращает размер фрейма в байтах
    • KTaglib_ID3v2_Frame::__toString - Возвращает текстовое представление фрейма
    • KTaglib_ID3v2_Tag::addFrame - Добавить фрейм к тегу ID3v2
    • KTaglib_ID3v2_Tag::getFrameList - Возвращает массив фреймов ID3v2, связанных с ID3v2-тегом
    • KTaglib_MPEG_AudioProperties::getBitrate - Возвращает битрейт файла MPEG
    • KTaglib_MPEG_AudioProperties::getChannels - Возвращает количество каналов MPEG-файла
    • KTaglib_MPEG_AudioProperties::getLayer - Возвращает уровень MPEG-файла
    • KTaglib_MPEG_AudioProperties::getLength - Возвращает длину файла MPEG
    • KTaglib_MPEG_AudioProperties::getSampleBitrate - Возвращает битрейт семпла файла MPEG
    • KTaglib_MPEG_AudioProperties::getVersion - Возвращает версию файла MPEG
    • KTaglib_MPEG_AudioProperties::isCopyrighted - Возвращает статус авторского права файла MPEG
    • KTaglib_MPEG_AudioProperties::isOriginal - Определяет, помечен ли файл как оригинальный
    • KTaglib_MPEG_AudioProperties::isProtectionEnabled - Определяет, включен ли механизм защиты для MPEG-файла
    • KTaglib_MPEG_File::getAudioProperties - Возвращает объект, предоставляющий доступ к свойствам аудио
    • KTaglib_MPEG_File::getID3v1Tag - Возвращает объект, представляющий тег ID3v1
    • KTaglib_MPEG_File::getID3v2Tag - Возвращает объект ID3v2
    • KTaglib_MPEG_File::__construct - Открывает новый файл
    • KTaglib_Tag::getAlbum - Возвращает строку с названием альбома из ID3-тега
    • KTaglib_Tag::getArtist - Возвращает строку с именем исполнителя из ID3-тега
    • KTaglib_Tag::getComment - Возвращает строку с комментарием из ID3-тега
    • KTaglib_Tag::getGenre - Возвращает строку с жанром из ID3-тега
    • KTaglib_Tag::getTitle - Возвращает строку с названием из ID3-тега
    • KTaglib_Tag::getTrack - Возвращает номер трека из ID3-тега
    • KTaglib_Tag::getYear - Возвращает год из ID3-тега
    • KTaglib_Tag::isEmpty - Определяет, пуст ли тег
  • l
    • Lapack::eigenValues - This function returns the eigenvalues for a given square matrix
    • Lapack::identity - Return an identity matrix
    • Lapack::leastSquaresByFactorisation - Calculate the linear least squares solution of a matrix using QR factorisation
    • Lapack::leastSquaresBySVD - Solve the linear least squares problem, using SVD
    • Lapack::pseudoInverse - Calculate the inverse of a matrix
    • Lapack::singularValues - Calculated the singular values of a matrix
    • Lapack::solveLinearEquation - Solve a system of linear equations
    • lcfirst - Преобразует первый символ строки в нижний регистр
    • lcg_value - Комбинированный линейный конгруэнтный генератор
    • lchgrp - Изменяет группу, которой принадлежит символическая ссылка
    • lchown - Изменяет владельца символической ссылки
    • ldap_8859_to_t61 - Переводит символы из кодировки ISO-8859 в t61
    • ldap_add - Добавить запись в LDAP директорию
    • ldap_add_ext - Добавить записи в каталог LDAP
    • ldap_bind - Привязать к LDAP директории
    • ldap_bind_ext - Привязать к директории LDAP
    • ldap_close - Псевдоним ldap_unbind
    • ldap_compare - Сравнить значение атрибута, найденного в записи определённой DN
    • ldap_connect - Подключиться к серверу LDAP
    • ldap_control_paged_result - Послать серверу LDAP данные для использования постраничного извлечения результата
    • ldap_control_paged_result_response - Получить указатель на текущую страницу результирующего набора LDAP
    • ldap_count_entries - Посчитать число записей в результатах поиска
    • ldap_delete - Удаляет запись из директории LDAP
    • ldap_delete_ext - Удалить запись из директории
    • ldap_dn2ufn - Преобразовать DN в удобный для пользователя формат именования
    • ldap_err2str - Преобразовать код ошибки LDAP в строковое сообщение об ошибке
    • ldap_errno - Возвратить номер ошибки LDAP последней команды
    • ldap_error - Возвратить сообщение об ошибке LDAP последней команды
    • ldap_escape - Экранирование строки для использования в фильтре LDAP или в DN
    • ldap_exop - Выполнить расширенную операцию
    • ldap_exop_passwd - Обертка для расширенной операции PASSWD
    • ldap_exop_refresh - Обертка для расширенной операции Refresh
    • ldap_exop_whoami - Обертка для расширенной операции WHOAMI
    • ldap_explode_dn - Разделить DN на его составные части
    • ldap_first_attribute - Вернуть первый атрибут
    • ldap_first_entry - Возвратить первый идентификатор результата
    • ldap_first_reference - Возвращает первую справку
    • ldap_free_result - Освободить память результата
    • ldap_get_attributes - Получает атрибуты из записи в результатах поиска
    • ldap_get_dn - Получить DN результирующей записи
    • ldap_get_entries - Получает все записи результата
    • ldap_get_option - Получить текущее значение данной опции
    • ldap_get_values - Получает все значения из записи результата
    • ldap_get_values_len - Получить все бинарные значения из записи результата
    • ldap_list - Одноуровневый поиск
    • ldap_modify - Псевдоним ldap_mod_replace
    • ldap_modify_batch - Формирования и запуск пакетного изменения записи LDAP
    • ldap_mod_add - Добавить значения атрибута к текущим атрибутам
    • ldap_mod_add_ext - Добавить значения атрибута к текущим атрибутам
    • ldap_mod_del - Удалить значения атрибута из текущих атрибутов
    • ldap_mod_del_ext - Удалить значения атрибутов из текущих атрибутов
    • ldap_mod_replace - Заменить значения атрибутов на новые
    • ldap_mod_replace_ext - Заменить значения атрибута на новые
    • ldap_next_attribute - Получить следующий атрибут из результата
    • ldap_next_entry - Получить следующую запись результата
    • ldap_next_reference - Возвращает следующую справку
    • ldap_parse_exop - Разбор результирующего объекта выполнения расширенной операции LDAP
    • ldap_parse_reference - Извлекает информацию из справочника
    • ldap_parse_result - Извлечь информацию из результата
    • ldap_read - Читает запись
    • ldap_rename - Изменить имя записи
    • ldap_rename_ext - Модифицировать название записи
    • ldap_sasl_bind - Привязать к LDAP директории, используя SASL
    • ldap_search - Поиск по LDAP дереву
    • ldap_set_option - Установить значение данной опции
    • ldap_set_rebind_proc - Установить функцию обратного вызова для повторного связывания при ссылочном поиске
    • ldap_sort - Сортирует записи LDAP
    • ldap_start_tls - Запускает TLS
    • ldap_t61_to_8859 - Переводит символы из кодировки t61 в ISO-8859
    • ldap_unbind - Разорвать привязку к директории LDAP
    • levenshtein - Вычисляет расстояние Левенштейна между двумя строками
    • libxml_clear_errors - Очистка буфера ошибок libxml
    • libxml_disable_entity_loader - Отключение возможности загрузки сущностей из внешних источников
    • libxml_get_errors - Получение массива произошедших ошибок
    • libxml_get_last_error - Извлечение последней ошибки из libxml
    • libxml_set_external_entity_loader - Изменение загрузчика по умолчанию для внешних объектов
    • libxml_set_streams_context - Установка контекста потоков для следующей загрузки или записи документа посредством libxml
    • libxml_use_internal_errors - Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю
    • LimitIterator::current - Получение текущего элемента
    • LimitIterator::getInnerIterator - Получение внутреннего объекта-итератора
    • LimitIterator::getPosition - Возвращает текущую позицию
    • LimitIterator::key - Получение текущего ключа
    • LimitIterator::next - Перемещение к следующей позиции
    • LimitIterator::rewind - Перемещает указатель на начальную позицию
    • LimitIterator::seek - Перемещает итератор на заданную позицию
    • LimitIterator::valid - Проверяет валидность текущего элемента
    • LimitIterator::__construct - Конструктор класса LimitIterator
    • link - Создаёт жёсткую ссылку
    • linkinfo - Возвращает информацию о ссылке
    • list - Присваивает переменным из списка значения подобно массиву
    • Locale::acceptFromHttp - Попытаться определить наилучшую локаль основываясь на заголовке HTTP "Accept-Language"
    • Locale::canonicalize - Канонизировать строку локали
    • Locale::composeLocale - Возвращает корректно отсортированные и разделенные идентификаторы локали
    • Locale::filterMatches - Проверить, соответствует ли тег фильтра языка локали
    • Locale::getAllVariants - Получение вариантов из переданной локали
    • Locale::getDefault - Получение значения локали INTL по умолчанию из опции 'default_locale'
    • Locale::getDisplayLanguage - Возвращает соответствующим образом локализованное имя языка для заданной локали
    • Locale::getDisplayName - Возвращает соответствующим образом локализованное имя локали
    • Locale::getDisplayRegion - Возвращает соответствующим образом локализованное название региона для заданной локали
    • Locale::getDisplayScript - Возвращает соответствующим образом локализованное название алфавита для заданной локали
    • Locale::getDisplayVariant - Возвращает соответствующим образом локализованное название варианта для заданной локали
    • Locale::getKeywords - Получить ключевые слова для локали
    • Locale::getPrimaryLanguage - Получить первичный язык для локали
    • Locale::getRegion - Получить регион для локали
    • Locale::getScript - Получить алфавит для локали
    • Locale::lookup - Поиск языковых меток наиболее подходящих заданной локали
    • Locale::parseLocale - Получить ассоциативный массив всех подтегов локали
    • Locale::setDefault - Установить локаль по умолчанию во время исполнения
    • localeconv - Возвращает информацию о форматировании чисел
    • localtime - Возвращает локальное время
    • log - Натуральный логарифм
    • log1p - Возвращает log(1 + number), рассчитанный так, что результат точен, даже если значение number близко к нулю
    • log10 - Десятичный логарифм
    • log_cmd_delete - Callback-функция при удалении документов
    • log_cmd_insert - Callback-функция при вставке документов
    • log_cmd_update - Callback-функция при обновлении документов
    • log_getmore - Callback-функция, при получении пакета курсоров
    • log_killcursor - Callback-функция, при выполнении операций KILLCURSOR
    • log_reply - Callback-функция, при чтении ответа MongoDB
    • log_write_batch - Callback-функция, при записи пакетов
    • long2ip - Конвертирует целое число в IPv4-адрес
    • lstat - Возвращает информацию о файле или символической ссылке
    • ltrim - Удаляет пробелы (или другие символы) из начала строки
    • Lua::assign - Присвоить PHP-переменной Lua
    • Lua::call - Вызвать функции Lua
    • Lua::eval - Разбирает строку как код Lua
    • Lua::getVersion - Возвращает версию
    • Lua::include - Разбирает файл содержащий скрипт Lua
    • Lua::registerCallback - Зарегистрировать функцию PHP в Lua
    • Lua::__construct - Конструктор Lua
    • LuaClosure::__invoke - Вызов замыкания Lua
    • LuaSandbox::callFunction - Call a function in a Lua global variable
    • LuaSandbox::disableProfiler - Disable the profiler
    • LuaSandbox::enableProfiler - Enable the profiler.
    • LuaSandbox::getCPUUsage - Fetch the current CPU time usage of the Lua environment
    • LuaSandbox::getMemoryUsage - Fetch the current memory usage of the Lua environment
    • LuaSandbox::getPeakMemoryUsage - Fetch the peak memory usage of the Lua environment
    • LuaSandbox::getProfilerFunctionReport - Fetch profiler data
    • LuaSandbox::getVersionInfo - Return the versions of LuaSandbox and Lua
    • LuaSandbox::loadBinary - Load a precompiled binary chunk into the Lua environment
    • LuaSandbox::loadString - Load Lua code into the Lua environment
    • LuaSandbox::pauseUsageTimer - Pause the CPU usage timer
    • LuaSandbox::registerLibrary - Register a set of PHP functions as a Lua library
    • LuaSandbox::setCPULimit - Set the CPU time limit for the Lua environment
    • LuaSandbox::setMemoryLimit - Set the memory limit for the Lua environment
    • LuaSandbox::unpauseUsageTimer - Unpause the timer paused by LuaSandbox::pauseUsageTimer
    • LuaSandbox::wrapPhpFunction - Wrap a PHP callable in a LuaSandboxFunction
    • LuaSandboxFunction::call - Call a Lua function
    • LuaSandboxFunction::dump - Dump the function as a binary blob
    • LuaSandboxFunction::__construct - Unused
    • lzf_compress - Сжатие LZF
    • lzf_decompress - Разархивация LZF
    • lzf_optimized_for - Определяет режим оптимизации модуля LZF
  • m
    • magic_quotes_runtime - Псевдоним set_magic_quotes_runtime
    • mail - Отправляет электронную почту
    • mailparse_determine_best_xfer_encoding - Определить наилучший путь декодирования
    • mailparse_msg_create - Создает почтовый MIME-ресурс
    • mailparse_msg_extract_part - Извлечь/декодировать секцию с сообщением
    • mailparse_msg_extract_part_file - Извлечь/декодировать секцию с сообщением из файла
    • mailparse_msg_extract_whole_part_file - Извлечь секцию сообщения вместе с заголовками без декодирования
    • mailparse_msg_free - Высвободить MIME-ресурс
    • mailparse_msg_get_part - Возвращает указатель на заданную секцию в mime-сообщении
    • mailparse_msg_get_part_data - Вернуть ассоциативный массив с информацией о сообщении
    • mailparse_msg_get_structure - Получить массив имен mime-секций в заданном сообщении
    • mailparse_msg_parse - Инкрементально разбирает данные в буфер
    • mailparse_msg_parse_file - Разобрать файл
    • mailparse_rfc822_parse_addresses - Разобрать адреса в соответствии с RFC 822
    • mailparse_stream_encode - Кодирует поток из файла источника и пишет в файл получатель.
    • mailparse_uudecode_all - Сканирует данные из указанного файла и извлекает все вложенные файлы, кодированные в uuencode
    • main - Заглушка для main
    • max - Возвращает наибольшее значение
    • 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 - Псевдоним maxdb_stmt_bind_param
    • maxdb_bind_result - Псевдоним 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 - Псевдоним maxdb_character_set_name
    • maxdb_close - Closes a previously opened database connection
    • maxdb_close_long_data - Псевдоним maxdb_stmt_close_long_data
    • maxdb_commit - Commits the current transaction
    • maxdb_connect - Open a new connection to the MaxDB server
    • maxdb_connect_errno - Returns the error code from last connect call
    • maxdb_connect_error - Returns a string description of the last connect error
    • 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 - Псевдоним maxdb_real_escape_string
    • maxdb_execute - Псевдоним maxdb_stmt_execute
    • maxdb_fetch - Псевдоним maxdb_stmt_fetch
    • 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 - 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_field_direct - Fetch meta-data for a single field
    • 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_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 - Псевдоним 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 - Псевдоним maxdb_stmt_param_count
    • maxdb_ping - Pings a server connection, or tries to reconnect if the connection has gone down
    • maxdb_prepare - Prepare an 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 an 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 - Псевдоним 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 - Псевдоним 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 - Closes a prepared statement
    • maxdb_stmt_close_long_data - Ends a sequence of maxdb_stmt_send_long_data
    • 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 an 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
    • mb_check_encoding - Проверяет, что кодировка строк выбрана верно
    • mb_chr - Получает определенный символ
    • mb_convert_case - Производит смену регистра символов в строке
    • mb_convert_encoding - Преобразует кодировку символов
    • mb_convert_kana - Преобразование кодировок "kana" из одной в другую ("zen-kaku", "han-kaku" и другие)
    • mb_convert_variables - Преобразует символы в переменной(-ых) из одной кодировки в другую
    • mb_decode_mimeheader - Декодирует строку в MIME-заголовке
    • mb_decode_numericentity - Декодирует ссылку на числовую строку HTML в символ
    • mb_detect_encoding - Определение кодировки символов
    • mb_detect_order - Установка/получение списка кодировок для механизмов определения кодировки
    • mb_encode_mimeheader - Кодирует строку для MIME-заголовка
    • mb_encode_numericentity - Кодирует символ в числовую HTML-ссылку
    • mb_encoding_aliases - Получает псевдонимы известного типа кодировки
    • mb_ereg - Совпадение с регулярным выражением с поддержкой многобайтовых кодировок
    • mb_eregi - Поиск соответствий регулярному выражению с поддержкой многобайтовых символов без учета регистра
    • mb_eregi_replace - Осуществляет замену по регулярному выражению с поддержкой многобайтовых символов без учета регистра
    • mb_ereg_match - Совпадение с регулярным выражением для многобайтовой строки
    • mb_ereg_replace - Осуществляет замену по регулярному выражению с поддержкой многобайтовых кодировок
    • mb_ereg_replace_callback - Выполняет поиск и замену по регулярному выражению с поддержкой многобайтовых кодировок используя callback-функцию
    • 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_get_info - Получает внутренние настройки mbstring
    • mb_http_input - Определение кодировки символов входных данных HTTP-запроса
    • mb_http_output - Установка/получение кодировки символов вывода HTTP
    • mb_internal_encoding - Установка/получение внутренней кодировки скрипта
    • mb_language - Устанавливает/получает текущий язык
    • mb_list_encodings - Возвращает массив всех поддерживаемых кодировок
    • mb_ord - Получает кодовую точку символа
    • mb_output_handler - Callback-функция, преобразующая кодировку символов в выходном буфере
    • mb_parse_str - Разбор данных запросов GET/POST/COOKIE и установка значений глобальных переменных
    • mb_preferred_mime_name - Получение набора символов MIME
    • mb_regex_encoding - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
    • mb_regex_set_options - Установка/получение значений по умолчанию для настроек функций mbregex
    • mb_scrub - Описание
    • mb_send_mail - Отправка закодированного сообщения
    • mb_split - Разделение строк в многобайтных кодировках, используя регулярное выражение
    • mb_strcut - Получение части строки
    • mb_strimwidth - Получение строки, обрезанной до заданного размера
    • mb_stripos - Регистронезависимый поиск позиции первого вхождения одной строки в другую
    • mb_stristr - Находит первое вхождение подстроки в строке без учета регистра
    • mb_strlen - Получает длину строки
    • mb_strpos - Поиск позиции первого вхождения одной строки в другую
    • mb_strrchr - Поиск последнего вхождения одной строки в другую
    • mb_strrichr - Поиск последнего вхождения одной строки в другую, нечувствительный к регистру
    • mb_strripos - Поиск последнего вхождения одной строки в другую, нечувствительный к регистру
    • mb_strrpos - Поиск позиции последнего вхождения одной строки в другую
    • mb_strstr - Находит первое вхождение подстроки в строке
    • mb_strtolower - Приведение строки к нижнему регистру
    • mb_strtoupper - Приведение строки к верхнему регистру
    • mb_strwidth - Возвращает ширину строки
    • mb_substitute_character - Установить/получить символ замены
    • mb_substr - Возвращает часть строки
    • mb_substr_count - Возвращает количество вхождений подстроки
    • mcrypt_cbc - Шифрует/дешифрует данные в режиме CBC
    • mcrypt_cfb - Кодирует/раскодирует данные в режиме CFB
    • mcrypt_create_iv - Создать инициализирующий вектор (Initialization Vector или IV) из случайного источника
    • mcrypt_decrypt - Расшифровывает данные с заданными параметрами
    • mcrypt_ecb - Устарело: Шифрует и дешифрует данные в режиме ECB
    • mcrypt_encrypt - Шифрует текст с заданными параметрами
    • 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_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
    • 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 - Шифрует и дешифрует данные в режиме OFB
    • md5 - Возвращает MD5-хеш строки
    • md5_file - Возвращает MD5-хеш файла
    • mdecrypt_generic - Дешифровка данных
    • Memcache::add - Добавить элемент с указанным ключем
    • Memcache::addServer - Добавляет сервер memcached в пул соединений
    • Memcache::close - Закрыть соединение с сервером memcached
    • Memcache::connect - Открывает соединение с сервером memcached
    • Memcache::decrement - Декрементировать значение элемента
    • Memcache::delete - Удалить элемент с сервера
    • Memcache::flush - Сбросить все существующие элементы на сервере
    • Memcache::get - Извлечь элемент с сервера
    • Memcache::getExtendedStats - Получить статистику со всех серверов в пуле
    • Memcache::getServerStatus - Возвращает статус сервера
    • Memcache::getStats - Получить статистику сервера
    • Memcache::getVersion - Вернуть версию сервера
    • Memcache::increment - Увеличить значение элемента
    • Memcache::pconnect - Открывает постоянное соединение с сервером memcached
    • Memcache::replace - Заменить значение существующего элемента
    • Memcache::set - Сохранить данные на сервере
    • Memcache::setCompressThreshold - Включить автоматическое сжатие для больших значений
    • Memcache::setServerParams - Изменяет параметры сервера и статус во время выполнения
    • Memcached::add - Добавляет элемент с новым ключом
    • Memcached::addByKey - Добавляет новый элемент на заданный сервер
    • Memcached::addServer - Добавляет сервер в пул
    • Memcached::addServers - Добавляет несколько серверов в пул
    • Memcached::append - Добавляет данные к существующей записи
    • Memcached::appendByKey - Добавляет данные к существующей записи на заданном сервере
    • Memcached::cas - Сравнивает и устанавливает значение для записи
    • Memcached::casByKey - Сравнивает и устанавливает значение для записи на конкретном сервере
    • Memcached::decrement - Уменьшает числовое значение записи
    • Memcached::decrementByKey - Уменьшает числовое значение записи, хранящееся на определенном сервере
    • Memcached::delete - Удаляет запись
    • Memcached::deleteByKey - Удаляет запись с указанного сервера
    • Memcached::deleteMulti - Удаляет несколько записей
    • Memcached::deleteMultiByKey - Удаляет несколько записей с указанного сервера
    • Memcached::fetch - Извлекает следующий результат
    • Memcached::fetchAll - Извлекает все полученные записи
    • Memcached::flush - Аннулирует все записи в кеше
    • Memcached::get - Получение записи
    • Memcached::getAllKeys - Получает все ключи, хранящиеся на серверах
    • Memcached::getByKey - Получает запись с определенного сервера
    • Memcached::getDelayed - Запрашивает несколько записей
    • Memcached::getDelayedByKey - Запрашивает несколько записей с указанного сервера
    • Memcached::getMulti - Получает несколько записей
    • Memcached::getMultiByKey - Получает несколько записей с указанного сервера
    • Memcached::getOption - Получает значение Memcached параметра
    • Memcached::getResultCode - Возвращает результирующий код последней выполненной операции
    • Memcached::getResultMessage - Возвращает сообщение, описывающее результат выполнения последней операции
    • Memcached::getServerByKey - Получает информацию о сервере по ключу
    • Memcached::getServerList - Получает список серверов в пуле
    • Memcached::getStats - Получает статистику о серверах в пуле
    • Memcached::getVersion - Получает информацию о версии серверов в пуле
    • Memcached::increment - Увеличивает числовое значение записи
    • Memcached::incrementByKey - Увеличивает числовое значение записи, хранимой на указанном сервере
    • Memcached::isPersistent - Проверяет используется ли устойчивое соединение с сервером memcache
    • Memcached::isPristine - Проверяет создан ли уже экземпляр класса Memcached
    • Memcached::prepend - Добавляет данные в начало существующей записи
    • Memcached::prependByKey - Добавляет данные в начало существующей записи на указанном сервере
    • Memcached::quit - Закрывает все открытые соединения
    • Memcached::replace - Заменяет существующую запись с указанным ключом
    • Memcached::replaceByKey - Заменяет существующую запись с заданным ключом на указанном сервере
    • Memcached::resetServerList - Очищает список серверов
    • Memcached::set - Сохраняет запись
    • Memcached::setByKey - Сохраняет запись на указанном сервере
    • Memcached::setMulti - Сохраняет несколько записей
    • Memcached::setMultiByKey - Сохраняет несколько записей на указанном сервере
    • Memcached::setOption - Устанавливает значение параметра для Memcached
    • Memcached::setOptions - Устанавливает несколько Memcached параметров
    • Memcached::setSaslAuthData - Устанавливает учетные данные для аутентификации
    • Memcached::touch - Устанавливает новый срок хранения для записи
    • Memcached::touchByKey - Устанавливает новый срок хранения для записи на указанном сервере
    • Memcached::__construct - Создает экземпляр класса Memcached
    • memcache_debug - Включить/выключить вывод отладочной информации
    • memory_get_peak_usage - Возвращает пиковое значение объема памяти, выделенное PHP
    • memory_get_usage - Возвращает количество памяти, выделенное для PHP
    • MessageFormatter::create - Constructs a new Message Formatter
    • MessageFormatter::format - Format the message
    • MessageFormatter::formatMessage - Quick format message
    • MessageFormatter::getErrorCode - Get the error code from last operation
    • MessageFormatter::getErrorMessage - Get the error text from the last operation
    • MessageFormatter::getLocale - Get the locale for which the formatter was created
    • MessageFormatter::getPattern - Get the pattern used by the formatter
    • MessageFormatter::parse - Parse input string according to pattern
    • MessageFormatter::parseMessage - Quick parse input string
    • MessageFormatter::setPattern - Set the pattern used by the formatter
    • metaphone - Возвращает ключ metaphone для строки
    • method_exists - Проверяет, существует ли метод в данном классе
    • mhash - Вычисляет хеш
    • mhash_count - Получить наибольший доступный идентификатор хеша
    • mhash_get_block_size - Получить размер блока для заданного хеша
    • mhash_get_hash_name - Получить имя указанного хеша
    • mhash_keygen_s2k - Генерация ключа
    • microtime - Возвращает текущую метку времени Unix с микросекундами
    • mime_content_type - Определяет MIME-тип содержимого файла
    • min - Находит наименьшее значение
    • ming_keypress - Возвращает флаг действия для keyPress(char)
    • ming_setcubicthreshold - Установить кубический порог
    • ming_setscale - Установить глобальный коэффициент масштабирования
    • ming_setswfcompression - Устанавливает сжатие вывода SWF
    • ming_useconstants - Использовать постоянный пул
    • ming_useswfversion - Устанавливает версию SWF
    • mkdir - Создаёт директорию
    • mktime - Возвращает метку времени Unix для заданной даты
    • money_format - Форматирует число как денежную величину
    • Mongo::connectUtil - Соединяет с сервером базы данных
    • Mongo::getPoolSize - Получает размер пула для пула соединений
    • Mongo::getSlave - Возвращает адрес, используемый для чтения slaveOkay
    • Mongo::getSlaveOkay - Получает настройки slaveOkay для этого соединения
    • Mongo::poolDebug - Возвращает информацию обо всех пулах соединений
    • Mongo::setPoolSize - Устанавливает размер будущих пулов
    • Mongo::setSlaveOkay - Изменяет настройки slaveOkay для подключения
    • Mongo::switchSlave - Выбирает новый вторичный сервер для чтения slaveOkay
    • Mongo::__construct - Конструктор
    • MongoBinData::__construct - Создает новый двоичный объект данных
    • MongoBinData::__toString - Строковое представление этого двоичного объекта данных
    • MongoClient::close - Закрывает соединение
    • MongoClient::connect - Подключается к серверу базы данных
    • MongoClient::dropDB - Удаляет базу данных [устарело]
    • MongoClient::getConnections - Возвращает информацию обо всех открытых соединениях
    • MongoClient::getHosts - Обновляет статус для всех связанных хостов
    • MongoClient::getReadPreference - Получает предпочтения чтения для соединения
    • MongoClient::getWriteConcern - Получает гарантии записи для соединения
    • MongoClient::killCursor - Разрушает определенный курсор на сервере
    • MongoClient::listDBs - Перечисляет все доступные базы данных
    • MongoClient::selectCollection - Получает коллекцию базы данных
    • MongoClient::selectDB - Получает базу данных
    • MongoClient::setReadPreference - Устанавливает предпочтения чтения для соединения
    • MongoClient::setWriteConcern - Устанавливает гарантии записи для соединения
    • MongoClient::__construct - Создает новый объект подключения к базе данных
    • MongoClient::__get - Получает базу данных
    • MongoClient::__toString - Строковое представление этого соединения
    • MongoCode::__construct - Создает новый объект MongoCode
    • MongoCode::__toString - Возвращает код как строку
    • MongoCollection::aggregate - Выполняет агрегацию с использованием структуры агрегации
    • MongoCollection::aggregateCursor - Выполняет команду конвейера агрегации и получает результаты с помощью курсора
    • MongoCollection::batchInsert - Вставляет несколько документов в коллекцию
    • MongoCollection::count - Считает количество записей в коллекции
    • MongoCollection::createDBRef - Создает ссылку на базу данных
    • MongoCollection::createIndex - Создает индекс для указанных полей, если он еще не существует
    • MongoCollection::deleteIndex - Удаляет индекс из коллекции
    • MongoCollection::deleteIndexes - Удаляет все индексы для коллекции
    • MongoCollection::distinct - Возвращает список уникальных значений для данного ключа в коллекции
    • MongoCollection::drop - Удаляет коллекцию
    • MongoCollection::ensureIndex - Создает индекс для указанных полей, если он еще не существует
    • MongoCollection::find - Запрашивает коллекцию, возвращая MongoCursor для набора результатов
    • MongoCollection::findAndModify - Обновляет документ и возвращает его
    • MongoCollection::findOne - Запрашивает коллекцию, возвращая единственный элемент
    • MongoCollection::getDBRef - Выбирает документ базы данных на который указывает ссылка
    • MongoCollection::getIndexInfo - Возвращает информацию об индексах в коллекции
    • MongoCollection::getName - Получить имя коллекции
    • MongoCollection::getReadPreference - Получает предпочтения чтения для коллекции
    • MongoCollection::getSlaveOkay - Получает значение slaveOkay для коллекции
    • MongoCollection::getWriteConcern - Получает гарантии записи для этой коллекции
    • MongoCollection::group - Выполняет операцию, аналогичную команде SQL GROUP BY
    • MongoCollection::insert - Вставляет документ в коллекцию
    • MongoCollection::parallelCollectionScan - Возвращает массив курсоров в итератор по всей параллельной коллекции
    • MongoCollection::remove - Удаление записей из коллекции
    • MongoCollection::save - Сохраняет документ в коллекцию
    • MongoCollection::setReadPreference - Устанавливает предпочтения чтения для коллекции
    • MongoCollection::setSlaveOkay - Изменяет настройки slaveOkay для коллекции
    • MongoCollection::setWriteConcern - Устанавливает гарантии записи для этой базы данных
    • MongoCollection::toIndexString - Преобразует ключи, указывающие индекс, в его идентифицирующую строку
    • MongoCollection::update - Обновляет записи на основе заданных критериев
    • MongoCollection::validate - Проверяет коллекцию
    • MongoCollection::__construct - Создает новую коллекцию
    • MongoCollection::__get - Получает коллекцию
    • MongoCollection::__toString - Строковое представление коллекции
    • MongoCommandCursor::batchSize - Ограничивает количество элементов, возвращаемых в одном пакете
    • MongoCommandCursor::createFromDocument - Создает новый курсор команды из существующего ответа команды документа
    • MongoCommandCursor::current - Возвращает текущий элемент
    • MongoCommandCursor::dead - Проверяет, есть ли результаты, которые еще не были отправлены из базы данных
    • MongoCommandCursor::getReadPreference - Получает предпочтения чтения для команды
    • MongoCommandCursor::info - Получает информацию о создании и итерации курсора
    • MongoCommandCursor::key - Возвращает индекс текущего результата в наборе результатов
    • MongoCommandCursor::next - Перемещает курсор к следующему результату
    • MongoCommandCursor::rewind - Выполняет команду и сбрасывает курсор на начало набора результатов
    • MongoCommandCursor::setReadPreference - Устанавливает предпочтения чтения для команды
    • MongoCommandCursor::timeout - Устанавливает время ожидания на стороне клиента для команды
    • MongoCommandCursor::valid - Проверяет, читает ли курсор правильный результат
    • MongoCommandCursor::__construct - Создает новый командный курсор
    • MongoCursor::addOption - Добавляет пару ключ/значение верхнего уровня в запрос
    • MongoCursor::awaitData - Устанавливает, будет ли этот курсор некоторое время ждать, пока настраиваемый курсор вернет больше данных
    • MongoCursor::batchSize - Ограничивает количество элементов, возвращаемых в одном пакете
    • MongoCursor::count - Подсчитывает количество результатов для запроса
    • MongoCursor::current - Возвращает текущий элемент
    • MongoCursor::dead - Проверяет, есть ли результаты, которые еще не были отправлены из базы данных
    • MongoCursor::doQuery - Выполняет запрос
    • MongoCursor::explain - Возвращает объяснение запроса, часто полезное для оптимизации и отладки
    • MongoCursor::fields - Устанавливает поля для запроса
    • MongoCursor::getNext - Перемещает курсор к следующему результату и возвращает этот результат
    • MongoCursor::getReadPreference - Получает предпочтения чтения для запроса
    • MongoCursor::hasNext - Проверяет, есть ли еще элементы в этом курсоре
    • MongoCursor::hint - Дает базе данных подсказку о запросе
    • MongoCursor::immortal - Устанавливает, будет ли курсор отключен
    • MongoCursor::info - Получает информацию о создании и итерации курсора
    • MongoCursor::key - Возвращает _id текущего результата или его индекс в наборе результатов
    • MongoCursor::limit - Ограничивает количество возвращаемых результатов
    • MongoCursor::maxTimeMS - Устанавливает время ожидания на стороне сервера для этого запроса
    • MongoCursor::next - Перемещает курсор к следующему результату и возвращает этот результат
    • MongoCursor::partial - Если этот запрос должен получить частичные результаты от mongos, если шард недоступен
    • MongoCursor::reset - Очищает курсор
    • MongoCursor::rewind - Возвращает курсор в начало набора результатов
    • MongoCursor::setFlag - Устанавливает произвольные флаги, если нет метода, доступного конкретному флагу
    • MongoCursor::setReadPreference - Устанавливает предпочтения чтения для запроса
    • MongoCursor::skip - Пропускает ряд результатов
    • MongoCursor::slaveOkay - Устанавливает, может ли этот запрос быть выполнен на вторичном сервере [устарел]
    • MongoCursor::snapshot - Использует режим снимка для запроса
    • MongoCursor::sort - Сортирует результаты по заданным полям
    • MongoCursor::tailable - Устанавливает, останется ли этот курсор открытым после извлечения последних результатов
    • MongoCursor::timeout - Устанавливает время ожидания на стороне клиента для запроса
    • MongoCursor::valid - Проверяет, читает ли курсор правильный результат
    • MongoCursor::__construct - Создает новый курсор
    • MongoCursorException::getHost - Имя хоста сервера, на котором произошла ошибка
    • MongoCursorInterface::batchSize - Ограничивает количество элементов, возвращаемых в одном пакете
    • MongoCursorInterface::dead - Проверяет, есть ли результаты, которые еще не были отправлены из базы данных
    • MongoCursorInterface::getReadPreference - Получает предпочтения чтения для этого запроса
    • MongoCursorInterface::info - Получает информацию о создании и итерации курсора
    • MongoCursorInterface::setReadPreference - Устанавливает предпочтения чтения для этого запроса
    • MongoCursorInterface::timeout - Устанавливает время ожидания на стороне клиента для текущего запроса
    • MongoDate::toDateTime - Возвращает объект DateTime, представляющий дату
    • MongoDate::__construct - Создает новую дату
    • MongoDate::__toString - Возвращает строковое представление даты
    • MongoDB::authenticate - Выполняет вход в базу данных
    • MongoDB::command - Выполняет команду базы данных
    • MongoDB::createCollection - Создает коллекцию
    • MongoDB::createDBRef - Создает ссылку на базу данных
    • MongoDB::drop - Удалаяет базу данных
    • MongoDB::dropCollection - Удаляет коллекцию [устарел]
    • MongoDB::execute - Запускает код JavaScript на сервере базы данных [устарело]
    • MongoDB::forceError - Создает ошибку базы данных
    • MongoDB::getCollectionInfo - Возвращает информацию о коллекциях в базе данных
    • MongoDB::getCollectionNames - Получает массив имен для всех коллекций в базе данных
    • MongoDB::getDBRef - Выбирает документ, указанный в ссылке на базу данных
    • MongoDB::getGridFS - Извлекает инструментарий для работы с файлами, хранящимися в этой базе данных
    • MongoDB::getProfilingLevel - Получает уровень профилирования базы данных
    • MongoDB::getReadPreference - Получает предпочтения чтения для базы данных
    • MongoDB::getSlaveOkay - Получает настройки slaveOkay для базы данных
    • MongoDB::getWriteConcern - Получает гарантии записи для базы данных
    • MongoDB::lastError - Проверяет, была ли ошибка в последней выполненной операции с базой данных
    • MongoDB::listCollections - Получает массив объектов MongoCollection для всех коллекций в базе данных
    • MongoDB::prevError - Проверяет последнюю ошибку, выданную во время работы базы данных
    • MongoDB::repair - Чинит и сжимает базу данных
    • MongoDB::resetError - Удаляет все помеченные ошибки в базе данных
    • MongoDB::selectCollection - Получает коллекцию
    • MongoDB::setProfilingLevel - Устанавливает уровень профилирования базы данных
    • MongoDB::setReadPreference - Устанавливает предпочтения чтения для базы данных
    • MongoDB::setSlaveOkay - Изменяет настройки slaveOkay для базы данных
    • MongoDB::setWriteConcern - Устанавливает гарантии записи для базы данных
    • MongoDB::__construct - Создает новую базу данных
    • MongoDB::__get - Получить коллекцию
    • MongoDB::__toString - Название базы данных
    • MongoDBRef::create - Создает новую ссылку в базе данных
    • MongoDBRef::get - Извлекает объект, на который указывает ссылка
    • MongoDBRef::isRef - Проверяет, что массив является ссылкой
    • MongoDB\BSON\Binary::getData - Возвращает данные Binary
    • MongoDB\BSON\Binary::getType - Возвращает тип Binary
    • MongoDB\BSON\Binary::jsonSerialize - Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\Binary::serialize - Сериализует Binary
    • MongoDB\BSON\Binary::unserialize - Десериализует Binary
    • MongoDB\BSON\Binary::__construct - Создает новый Binary
    • MongoDB\BSON\Binary::__toString - Возвращает данные Binary
    • MongoDB\BSON\BinaryInterface::getData - Возвращает данные BinaryInterface
    • MongoDB\BSON\BinaryInterface::getType - Возвращает тип BinaryInterface
    • MongoDB\BSON\BinaryInterface::__toString - Возвращает данные BinaryInterface
    • MongoDB\BSON\DBPointer::jsonSerialize - Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\DBPointer::serialize - Сериализует DBPointer
    • MongoDB\BSON\DBPointer::unserialize - Десериализует DBPointer
    • MongoDB\BSON\DBPointer::__construct - Создает новый DBPointer (не используется)
    • MongoDB\BSON\DBPointer::__toString - Возвращает пустую строку
    • MongoDB\BSON\Decimal128::jsonSerialize - Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\Decimal128::serialize - Сериализирует Decimal128
    • MongoDB\BSON\Decimal128::unserialize - Десериализует Decimal128
    • MongoDB\BSON\Decimal128::__construct - Создает новый Decimal128
    • MongoDB\BSON\Decimal128::__toString - Возвращает строковое представление Decimal128
    • MongoDB\BSON\Decimal128Interface::__toString - Возвращает строковое представление Decimal128Interface
    • MongoDB\BSON\fromJSON - Возвращает представление BSON значения JSON
    • MongoDB\BSON\fromPHP - Возвращает представление BSON значения PHP
    • MongoDB\BSON\Int64::jsonSerialize - Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\Int64::serialize - Сериализует Int64
    • MongoDB\BSON\Int64::unserialize - Десериализует Int64
    • MongoDB\BSON\Int64::__construct - Создает новый Int64 (не используется)
    • MongoDB\BSON\Int64::__toString - Возвращает строковое представление Int64
    • MongoDB\BSON\Javascript::getCode - Возвращает код JavaScript
    • MongoDB\BSON\Javascript::getScope - Возвращает область документа JavaScript
    • MongoDB\BSON\Javascript::jsonSerialize - Возвращает представление, которое может быть преобразовано в JSON
    • MongoDB\BSON\Javascript::serialize - Сериализовать JavaScript
    • MongoDB\BSON\Javascript::unserialize - Десериализовать JavaScript
    • MongoDB\BSON\Javascript::__construct - Конструктор Javascript
    • MongoDB\BSON\Javascript::__toString - Возвращает код JavaScript
    • MongoDB\BSON\JavascriptInterface::getCode - Возвращает код JavascriptInterface
    • MongoDB\BSON\JavascriptInterface::getScope - Возвращает области видимости документа JavascriptInterface
    • MongoDB\BSON\JavascriptInterface::__toString - Возвращает код JavascriptInterface
    • MongoDB\BSON\MaxKey::jsonSerialize - Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\MaxKey::serialize - Сериализует MaxKey
    • MongoDB\BSON\MaxKey::unserialize - Десериализует MaxKey
    • MongoDB\BSON\MaxKey::__construct - Конструктор MaxKey
    • MongoDB\BSON\MinKey::jsonSerialize - Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\MinKey::serialize - Сериализует MinKey
    • MongoDB\BSON\MinKey::unserialize - Десериализует MinKey
    • MongoDB\BSON\MinKey::__construct - Конструктор MinKey
    • MongoDB\BSON\ObjectId::getTimestamp - Возвращает метку времени ObjectId
    • MongoDB\BSON\ObjectId::jsonSerialize - Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\ObjectId::serialize - Сериализует ObjectId
    • MongoDB\BSON\ObjectId::unserialize - Десериализует ObjectId
    • MongoDB\BSON\ObjectId::__construct - Создает новый ObjectId
    • MongoDB\BSON\ObjectId::__toString - Возвращает шестнадцатеричное представление ObjectId
    • MongoDB\BSON\ObjectIdInterface::getTimestamp - Возвращает компонент отметки времени ObjectIdInterface
    • MongoDB\BSON\ObjectIdInterface::__toString - Возвращает шестнадцатеричное представление ObjectIdInterface
    • MongoDB\BSON\Regex::getFlags - Возвращает флаги Regex
    • MongoDB\BSON\Regex::getPattern - Возвращает шаблон Regex
    • MongoDB\BSON\Regex::jsonSerialize - Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\Regex::serialize - Сериализует Regex
    • MongoDB\BSON\Regex::unserialize - Десериализует Regex
    • MongoDB\BSON\Regex::__construct - Создает новый Regex
    • MongoDB\BSON\Regex::__toString - Возвращает строковое представление Regex
    • MongoDB\BSON\RegexInterface::getFlags - Возвращает флаги RegexInterface
    • MongoDB\BSON\RegexInterface::getPattern - Возвращает шаблон RegexInterface
    • MongoDB\BSON\RegexInterface::__toString - Возвращает строковое представление RegexInterface
    • MongoDB\BSON\Serializable::bsonSerialize - Предоставляет массив или документ для сериализации в BSON
    • MongoDB\BSON\Symbol::jsonSerialize - Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\Symbol::serialize - Сериализует Symbol
    • MongoDB\BSON\Symbol::unserialize - Десериализует Symbol
    • MongoDB\BSON\Symbol::__construct - Создает новый Symbol (не используется)
    • MongoDB\BSON\Symbol::__toString - Возвращает Symbol в виде строки
    • MongoDB\BSON\Timestamp::getIncrement - Возвращает компонент приращения Timestamp
    • MongoDB\BSON\Timestamp::getTimestamp - Возвращает компонент отметки времени Timestamp
    • MongoDB\BSON\Timestamp::jsonSerialize - Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\Timestamp::serialize - Сериализует Timestamp
    • MongoDB\BSON\Timestamp::unserialize - Десериализует Timestamp
    • MongoDB\BSON\Timestamp::__construct - Создает новый Timestamp
    • MongoDB\BSON\Timestamp::__toString - Возвращает строковое представление Timestamp
    • MongoDB\BSON\TimestampInterface::getIncrement - Возвращает инкрементный компонент TimestampInterface
    • MongoDB\BSON\TimestampInterface::getTimestamp - Возвращает компонент отметки времени TimestampInterface
    • MongoDB\BSON\TimestampInterface::__toString - Возвращает строковое представление TimestampInterface
    • MongoDB\BSON\toCanonicalExtendedJSON - Возвращает Canonical Extended JSON представление для значения BSON
    • MongoDB\BSON\toJSON - Возвращает Legacy Extended JSON представление значения BSON
    • MongoDB\BSON\toPHP - Возвращает PHP представление значения BSON
    • MongoDB\BSON\toRelaxedExtendedJSON - Возвращает Relaxed Extended JSON представление значения BSON
    • MongoDB\BSON\Undefined::jsonSerialize - Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\Undefined::serialize - Сериализует Undefined
    • MongoDB\BSON\Undefined::unserialize - Десериализует Undefined
    • MongoDB\BSON\Undefined::__construct - Создает новый Undefined (не используется)
    • MongoDB\BSON\Undefined::__toString - Возвращает пустую строку
    • MongoDB\BSON\Unserializable::bsonUnserialize - Создает объект из массива BSON или документа
    • MongoDB\BSON\UTCDateTime::jsonSerialize - Возвращает представление, которое можно преобразовать в JSON
    • MongoDB\BSON\UTCDateTime::serialize - Сериализует UTCDateTime
    • MongoDB\BSON\UTCDateTime::toDateTime - Возвращает представление DateTime этого UTCDateTime
    • MongoDB\BSON\UTCDateTime::unserialize - Десериализует UTCDateTime
    • MongoDB\BSON\UTCDateTime::__construct - Создает новый UTCDateTime
    • MongoDB\BSON\UTCDateTime::__toString - Возвращает строковое представление UTCDateTime
    • MongoDB\BSON\UTCDateTimeInterface::toDateTime - Возвращает представление DateTime этого UTCDateTimeInterface
    • MongoDB\BSON\UTCDateTimeInterface::__toString - Возвращает строковое представление UTCDateTimeInterface
    • MongoDB\Driver\BulkWrite::count - Подсчитывает количество операций записи в порции
    • MongoDB\Driver\BulkWrite::delete - Добавление операции удаления в порцию
    • MongoDB\Driver\BulkWrite::insert - Добавить операцию вставки в порцию
    • MongoDB\Driver\BulkWrite::update - Добавить операцию обновления в порцию
    • MongoDB\Driver\BulkWrite::__construct - Создает новый объект BulkWrite
    • MongoDB\Driver\ClientEncryption::createDataKey - Создает ключ шифрования
    • MongoDB\Driver\ClientEncryption::decrypt - Расшифровать данных
    • MongoDB\Driver\ClientEncryption::encrypt - Зашифровать данные
    • MongoDB\Driver\Command::__construct - Создает новый объект Command
    • MongoDB\Driver\Cursor::getId - Возвращает идентификатор для курсора
    • MongoDB\Driver\Cursor::getServer - Возвращает сервер, связанный с курсором
    • MongoDB\Driver\Cursor::isDead - Проверяет, исчерпан ли курсор или может содержать дополнительные результаты
    • MongoDB\Driver\Cursor::setTypeMap - Устанавливает карту типа для десериализации BSON
    • MongoDB\Driver\Cursor::toArray - Возвращает массив, содержащий все результаты курсора
    • MongoDB\Driver\Cursor::__construct - Создает новый объект Cursor (не используется)
    • MongoDB\Driver\CursorId::serialize - Serialize a CursorId
    • MongoDB\Driver\CursorId::unserialize - Unserialize a CursorId
    • MongoDB\Driver\CursorId::__construct - Создает новый объект CursorId (не используется)
    • MongoDB\Driver\CursorId::__toString - Строковое представление идентификатора курсора
    • MongoDB\Driver\CursorInterface::getId - Возвращает идентификатор курсора
    • MongoDB\Driver\CursorInterface::getServer - Возвращает сервер, с которым связан курсор
    • MongoDB\Driver\CursorInterface::isDead - Проверить, можно ли еще получить из курсора результаты
    • MongoDB\Driver\CursorInterface::setTypeMap - Задать сопоставление типов для десериализации BSON
    • MongoDB\Driver\CursorInterface::toArray - Вернуть все результаты для данного курсора в виде массива
    • MongoDB\Driver\Exception\CommandException::getResultDocument - Возвращает результат документа для неудавшейся команды
    • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel - Возвращает, связана ли метка ошибки с исключением
    • MongoDB\Driver\Exception\WriteException::getWriteResult - Возвращает WriteResult для операции записи закончившейся ошибкой
    • MongoDB\Driver\Manager::createClientEncryption - Создание нового объекта ClientEncryption
    • MongoDB\Driver\Manager::executeBulkWrite - Выполняет одну или несколько операций записи
    • MongoDB\Driver\Manager::executeCommand - Выполняет команду базы данных
    • MongoDB\Driver\Manager::executeQuery - Выполняет запрос к базе данных
    • MongoDB\Driver\Manager::executeReadCommand - Выполняет команду базы данных, которая читает
    • MongoDB\Driver\Manager::executeReadWriteCommand - Выполняет команду базы данных, которая читает и пишет
    • MongoDB\Driver\Manager::executeWriteCommand - Выполняет команду базы данных, которая пишет
    • MongoDB\Driver\Manager::getReadConcern - Возвращает ReadConcern для Manager
    • MongoDB\Driver\Manager::getReadPreference - Возвращает ReadPreference для Manager
    • MongoDB\Driver\Manager::getServers - Возвращает серверы, к которым подключен менеджер
    • MongoDB\Driver\Manager::getWriteConcern - Возвращает WriteConcern для Manager
    • MongoDB\Driver\Manager::selectServer - Выбрать сервер, соответствующий предпочтениям чтения
    • MongoDB\Driver\Manager::startSession - Запускает новый клиентский сеанс для использования с этим клиентом
    • MongoDB\Driver\Manager::__construct - Создает новый Manager MongoDB
    • MongoDB\Driver\Monitoring\addSubscriber - Регистрирует нового подписчика события мониторинга
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName - Возвращает имя команды
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros - Возвращает длительность команды в микросекундах
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getError - Возвращает исключение, связанное с неудачной командой
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId - Возвращает идентификатор операции команды
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply - Возвращает документ ответа команды
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId - Возвращает идентификатор запроса команды
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer - Возвращает сервер, на котором была выполнена команда
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand - Возвращает документ команды
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName - Возвращает имя команды
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName - Возвращает базу данных, на которой выполнялась команда
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId - Возвращает идентификатор операции команды
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId - Возвращает идентификатор запроса команды
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer - Возвращает сервер, на котором была выполнена команда
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed - Метод уведомления о неудачной команде
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted - Метод уведомления о запущенной команде
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded - Метод уведомления об успешной команде
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName - Возвращает имя команды
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros - Возвращает длительность команды в микросекундах
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId - Возвращает идентификатор операции команды
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply - Возвращает документ ответа команды
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId - Возвращает идентификатор запроса команды
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer - Возвращает сервер, на котором была выполнена команда
    • MongoDB\Driver\Monitoring\removeSubscriber - Отписывает существующего подписчика события мониторинга
    • MongoDB\Driver\Query::__construct - Создает новый запрос
    • MongoDB\Driver\ReadConcern::bsonSerialize - Возвращает объект для сериализации BSON
    • MongoDB\Driver\ReadConcern::getLevel - Возвращает опцию "level" ReadConcern
    • MongoDB\Driver\ReadConcern::isDefault - Проверяет, является ли гарантией чтения по умолчанию
    • MongoDB\Driver\ReadConcern::serialize - Serialize a ReadConcern
    • MongoDB\Driver\ReadConcern::unserialize - Unserialize a ReadConcern
    • MongoDB\Driver\ReadConcern::__construct - Создает новый ReadConcern
    • MongoDB\Driver\ReadPreference::bsonSerialize - Возвращает объект сериализации BSON
    • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds - Возвращает параметр "maxStalenessSeconds" ReadPreference
    • MongoDB\Driver\ReadPreference::getMode - Возвращает параметр "mode" ReadPreference
    • MongoDB\Driver\ReadPreference::getModeString - Returns the ReadPreference's "mode" option as a string
    • MongoDB\Driver\ReadPreference::getTagSets - Возвращает параметр "tagSets" ReadPreference
    • MongoDB\Driver\ReadPreference::serialize - Serialize a ReadPreference
    • MongoDB\Driver\ReadPreference::unserialize - Unserialize a ReadPreference
    • MongoDB\Driver\ReadPreference::__construct - Создать новый ReadPreference
    • MongoDB\Driver\Server::executeBulkWrite - Выполнить одну или несколько операций записи на сервере
    • MongoDB\Driver\Server::executeCommand - Выполнить команду базы данных на сервере
    • MongoDB\Driver\Server::executeQuery - Выполняет запрос к базе данных на сервере
    • MongoDB\Driver\Server::executeReadCommand - Выполняет команду базы данных, которая читает на сервере
    • MongoDB\Driver\Server::executeReadWriteCommand - Выполняет команду базы данных, которая читает и пишет на сервере
    • MongoDB\Driver\Server::executeWriteCommand - Выполняет команду базы данных, которая пишет на сервере
    • MongoDB\Driver\Server::getHost - Возвращает имя хоста сервера
    • MongoDB\Driver\Server::getInfo - Возвращает массив информации об этом сервере
    • MongoDB\Driver\Server::getLatency - Возвращает задержку этого сервера
    • MongoDB\Driver\Server::getPort - Возвращает порт, который слушает сервер
    • MongoDB\Driver\Server::getTags - Возвращает массив тегов, описывающих сервер в наборе реплик
    • MongoDB\Driver\Server::getType - Возвращает целое число, обозначающее тип этого сервера
    • MongoDB\Driver\Server::isArbiter - Проверяет, является ли сервер членом-арбитром в наборе реплик
    • MongoDB\Driver\Server::isHidden - Проверяет, является ли сервер скрытым членом набора реплик
    • MongoDB\Driver\Server::isPassive - Проверяет, является ли сервер пассивным членом набора реплик
    • MongoDB\Driver\Server::isPrimary - Проверяет, является ли сервер основным членом набора реплик
    • MongoDB\Driver\Server::isSecondary - Проверяет, является ли этот сервер второстепенным членом набора реплик
    • MongoDB\Driver\Server::__construct - Создает новый Server (не используется)
    • MongoDB\Driver\Session::abortTransaction - Прерывает транзакцию
    • MongoDB\Driver\Session::advanceClusterTime - Увеличивает время кластера для сеанса
    • MongoDB\Driver\Session::advanceOperationTime - Увеличивает время операции для сеанса
    • MongoDB\Driver\Session::commitTransaction - Фиксирует транзакцию
    • MongoDB\Driver\Session::endSession - Завершает сеанс
    • MongoDB\Driver\Session::getClusterTime - Возвращает время кластера для этого сеанса
    • MongoDB\Driver\Session::getLogicalSessionId - Возвращает логический идентификатор сеанса для этого сеанса
    • MongoDB\Driver\Session::getOperationTime - Возвращает время операции для этого сеанса
    • MongoDB\Driver\Session::getServer - Возвращает сервер к которому привязана текущая сессия
    • MongoDB\Driver\Session::getTransactionOptions - Returns options for the currently running transaction
    • MongoDB\Driver\Session::getTransactionState - Returns the current transaction state for this session
    • MongoDB\Driver\Session::isInTransaction - Определяет, происходит ли в данный момент многодокументная транзакция
    • MongoDB\Driver\Session::startTransaction - Запускает транзакцию
    • MongoDB\Driver\Session::__construct - Создает новый сеанс (не используется)
    • MongoDB\Driver\WriteConcern::bsonSerialize - Возвращает объект сериализации BSON
    • MongoDB\Driver\WriteConcern::getJournal - Возвращает опцию "journal" WriteConcern
    • MongoDB\Driver\WriteConcern::getW - Возвращает опцию "w" WriteConcern
    • MongoDB\Driver\WriteConcern::getWtimeout - Возвращает опцию "wtimeout" WriteConcern
    • MongoDB\Driver\WriteConcern::isDefault - Проверяет, является ли гарантия записи по умолчанию
    • MongoDB\Driver\WriteConcern::serialize - Serialize a WriteConcern
    • MongoDB\Driver\WriteConcern::unserialize - Unserialize a WriteConcern
    • MongoDB\Driver\WriteConcern::__construct - Создать новый WriteConcern
    • MongoDB\Driver\WriteConcernError::getCode - Возвращает код ошибки WriteConcernError
    • MongoDB\Driver\WriteConcernError::getInfo - Возвращает дополнительные метаданные для WriteConcernError
    • MongoDB\Driver\WriteConcernError::getMessage - Возвращает сообщение об ошибке WriteConcernError
    • MongoDB\Driver\WriteError::getCode - Возвращает код ошибки WriteError
    • MongoDB\Driver\WriteError::getIndex - Возвращает индекс записи, соответствующей этому WriteError
    • MongoDB\Driver\WriteError::getInfo - Возвращает дополнительные метаданные для WriteError
    • MongoDB\Driver\WriteError::getMessage - Возвращает сообщение об ошибке WriteError
    • MongoDB\Driver\WriteResult::getDeletedCount - Возвращает количество удаленных документов
    • MongoDB\Driver\WriteResult::getInsertedCount - Возвращает количество вставленных документов (исключая слияния)
    • MongoDB\Driver\WriteResult::getMatchedCount - Возвращает количество документов, выбранных для обновления
    • MongoDB\Driver\WriteResult::getModifiedCount - Возвращает количество существующих обновленных документов
    • MongoDB\Driver\WriteResult::getServer - Возвращает сервер, связанный с этим результатом записи
    • MongoDB\Driver\WriteResult::getUpsertedCount - Возвращает количество документов, вставленных слиянием
    • MongoDB\Driver\WriteResult::getUpsertedIds - Возвращает массив идентификаторов для объединенных документов
    • MongoDB\Driver\WriteResult::getWriteConcernError - Возвращает любую ошибку гарантий записи, которая произошла
    • MongoDB\Driver\WriteResult::getWriteErrors - Возвращает любые ошибки записи, которые произошли
    • MongoDB\Driver\WriteResult::isAcknowledged - Возвращает, была ли запись подтверждена
    • MongoDeleteBatch::__construct - Конструктор MongoDeleteBatch
    • MongoGridFS::delete - Удаляет файл и его фрагменты из базы данных
    • MongoGridFS::drop - Удаляет файлы и коллекции фрагментов
    • MongoGridFS::find - Запросы к файлам
    • MongoGridFS::findOne - Возвращает один файл, соответствующий критериям
    • MongoGridFS::get - Получает файл из базы данных
    • MongoGridFS::put - Сохраняет файл в базе данных
    • MongoGridFS::remove - Удаляет файлы и их фрагменты из базы данных
    • MongoGridFS::storeBytes - Сохраняет строку байтов в базе данных
    • MongoGridFS::storeFile - Сохраняет файл в базе данных
    • MongoGridFS::storeUpload - Сохраняет загруженный файл в базе данных
    • MongoGridFS::__construct - Создает новые коллекции файлов
    • MongoGridFSCursor::current - Возвращает текущий файл
    • MongoGridFSCursor::getNext - Возвращает следующий файл, на который указывает курсор, и перемещает курсор
    • MongoGridFSCursor::key - Возвращает имя файла текущего результата
    • MongoGridFSCursor::__construct - Создает новый курсор
    • MongoGridFSFile::getBytes - Возвращает содержимое файла в виде строки байтов
    • MongoGridFSFile::getFilename - Возвращает наименование файла
    • MongoGridFSFile::getResource - Возвращает ресурс, который можно использовать для чтения сохраненного файла
    • MongoGridFSFile::getSize - Возвращает размер файла
    • MongoGridFSFile::write - Записывает файл в файловую систему
    • MongoGridfsFile::__construct - Создает новый файл GridFS
    • MongoId::getHostname - Получает имя хоста, используемое для идентификаторов этой машины
    • MongoId::getInc - Получает увеличенное значение для создания этого идентификатора
    • MongoId::getPID - Получает идентификатор процесса
    • MongoId::getTimestamp - Получает количество секунд с момента создания этого идентификатора
    • MongoId::isValid - Проверяет, является ли значение корректным ObjectId
    • MongoId::__construct - Создает новый идентификатор
    • MongoId::__set_state - Создает фиктивный MongoId
    • MongoId::__toString - Возвращает шестнадцатеричное представление этого идентификатора
    • MongoInsertBatch::__construct - Конструктор MongoInsertBatch
    • MongoInt32::__construct - Создает новое 32-битное целочисленное (integer)
    • MongoInt32::__toString - Возвращает строковое представление 32-битного целочисленного
    • MongoInt64::__construct - Создает новое 64-битное целочисленное (integer)
    • MongoInt64::__toString - Возвращает строковое представление 64-битного целочисленного
    • MongoLog::getCallback - Получает ранее установленную callback-функцию
    • MongoLog::getLevel - Получает уровень(-ни), которые в настоящее время записываются
    • MongoLog::getModule - Получает модуль(-и), которые в настоящее время записываются
    • MongoLog::setCallback - Устанавливает callback-функцию для вызова событий
    • MongoLog::setLevel - Устанавливает уровень(-ни) для записи событий
    • MongoLog::setModule - Устанавливает модуль(-и) для записи событий
    • MongoPool::getSize - Получает размер пула для пулов соединений
    • MongoPool::info - Возвращает информацию обо всех пулах соединений
    • MongoPool::setSize - Устанавливает размер для будущих пулов соединений
    • MongoRegex::__construct - Создает новое регулярное выражение
    • MongoRegex::__toString - Возвращает строковое представление регулярного выражения
    • MongoResultException::getDocument - Извлекает весь результирующий документ ошибки
    • MongoTimestamp::__construct - Создает новую временную метку (timestamp)
    • MongoTimestamp::__toString - Возвращает текстовое представление временной метки
    • MongoUpdateBatch::__construct - Конструктор MongoUpdateBatch
    • MongoWriteBatch::add - Добавляет операцию записи в пакет
    • MongoWriteBatch::execute - Выполняет пакет операций записи
    • MongoWriteBatch::__construct - Создает новый пакет операций записи
    • MongoWriteConcernException::getDocument - Получить ошибочный документ
    • move_uploaded_file - Перемещает загруженный файл в новое место
    • mqseries_back - MQSeries MQBACK
    • mqseries_begin - MQseries MQBEGIN
    • mqseries_close - MQSeries MQCLOSE
    • mqseries_cmit - MQSeries MQCMIT
    • mqseries_conn - MQSeries MQCONN
    • mqseries_connx - MQSeries MQCONNX
    • mqseries_disc - MQSeries MQDISC
    • mqseries_get - MQSeries MQGET
    • mqseries_inq - MQSeries MQINQ
    • mqseries_open - MQSeries MQOPEN
    • mqseries_put - MQSeries MQPUT
    • mqseries_put1 - MQSeries MQPUT1
    • mqseries_set - MQSeries MQSET
    • mqseries_strerror - Получить сообщение об ошибке, соответствующее ее коду (MQRC)
    • msession_connect - Соединение с сервером msession
    • msession_count - Получить количество сессий
    • msession_create - Создать сессию
    • msession_destroy - Уничтожить сессию
    • msession_disconnect - Закрыть соединение с сервером msession
    • msession_find - Найти все сессии по имени и значению
    • msession_get - Получить значение из сессии
    • msession_get_array - Получить массив переменных msession
    • msession_get_data - Получить неструктурированные данные сессии данных
    • msession_inc - Увеличить значение в сессии
    • msession_list - Получить список всех сессий
    • msession_listvar - Получить список сессий, содержащих заданную переменную
    • msession_lock - Установить блокировку на сессию
    • msession_plugin - Вызов функции экранирования в плагине msession personality
    • msession_randstr - Получить случайную строку
    • msession_set - Установить значение в сессии
    • msession_set_array - Установить переменные msession из массива
    • msession_set_data - Установить неструктурированные данные сессии данных
    • msession_timeout - Получить/установить таймаут сессии
    • msession_uniq - Получить уникальный идентификатор
    • msession_unlock - Снять блокировку с сессии
    • msg_get_queue - Создание или подключение к очереди сообщений
    • msg_queue_exists - Проверка существования очереди сообщений
    • msg_receive - Получение сообщения из очереди сообщений
    • msg_remove_queue - Удаление очереди сообщений
    • msg_send - Отправка сообщения в очередь сообщений
    • msg_set_queue - Установка информации в структуре данных очереди сообщений
    • msg_stat_queue - Получение информации из структуры данных очереди сообщений
    • msql - Alias of msql_db_query
    • msql_affected_rows - Возвращает количество затронутых строк
    • msql_close - Закрыть соединение mSQL
    • msql_connect - Open mSQL connection
    • msql_createdb - Псевдоним msql_create_db
    • msql_create_db - Create mSQL database
    • msql_data_seek - Move internal row pointer
    • msql_dbname - Псевдоним msql_result
    • msql_db_query - Send mSQL query
    • 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_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_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_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_numfields - Alias of msql_num_fields
    • msql_numrows - Alias of msql_num_rows
    • msql_num_fields - Get number of fields in result
    • msql_num_rows - Get number of rows in result
    • 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
    • mssql_bind - Добавляет параметр хранимой процедуре или удаленной хранимой процедуре
    • mssql_close - Закрывает соединение с MS SQL Server
    • mssql_connect - Открывает соединение с MS SQL server
    • mssql_data_seek - Перемещает внутренний указатель на строку
    • mssql_execute - Запускает хранимую процедуру на сервере MS SQL
    • 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
    • mssql_fetch_batch - Returns the next batch of records
    • mssql_fetch_field - Возвращает информацию о столбце
    • mssql_fetch_object - Fetch row as object
    • mssql_fetch_row - Get row as enumerated array
    • 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 - Преобразует 16-байтовый бинарный GUID в строку
    • mssql_init - Инициализирует хранимую процедуру или удаленную хранимую процедуру
    • mssql_min_error_severity - Устанавливает минимальную серьезность ошибок
    • mssql_min_message_severity - Устанавливает минимальную серьезность сообщений
    • mssql_next_result - Move the internal result pointer to the next result
    • mssql_num_fields - Возвращает количество столбцов в результирующем наборе
    • mssql_num_rows - Возвращает количество строк в результате
    • mssql_pconnect - Открывает постоянное соединение с MS SQL
    • mssql_query - Send MS SQL query
    • mssql_result - Get result data
    • mssql_rows_affected - Возвращает количество строк, затронутых последним запросом
    • mssql_select_db - Select MS SQL database
    • mt_getrandmax - Показывает максимально возможное значение случайного числа
    • mt_rand - Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна
    • mt_srand - Переинициализирует генератор случайных чисел на базе Вихря Мерсенна
    • MultipleIterator::attachIterator - Присоединяет итератор
    • MultipleIterator::containsIterator - Проверяет, присоединен ли итератор
    • MultipleIterator::countIterators - Получает число присоединенных итераторов
    • MultipleIterator::current - Получает зарегистрированные итераторы
    • MultipleIterator::detachIterator - Отсоединяет итератор
    • MultipleIterator::getFlags - Получает информацию о флагах
    • MultipleIterator::key - Получает зарегистрированные итераторы
    • MultipleIterator::next - Перемещает все присоединенные итераторы к своим следующим элементам
    • MultipleIterator::rewind - Возвращает в начало все присоединенные итераторы
    • MultipleIterator::setFlags - Устанавливает флаги
    • MultipleIterator::valid - Проверяет корректность подытераторов
    • MultipleIterator::__construct - Создает новый MultipleIterator
    • Mutex::create - Create a Mutex
    • Mutex::destroy - Destroy Mutex
    • Mutex::lock - Acquire Mutex
    • Mutex::trylock - Attempt to Acquire Mutex
    • Mutex::unlock - Release Mutex
    • mysqli::$affected_rows - Получает число строк, затронутых предыдущей операцией MySQL
    • mysqli::$client_info - Получает информацию о клиенте MySQL
    • mysqli::$client_version - Возвращает информацию о клиенте MySQL в виде строки
    • mysqli::$connect_errno - Возвращает код ошибки последней попытки соединения
    • mysqli::$connect_error - Возвращает описание последней ошибки подключения
    • mysqli::$errno - Возвращает код ошибки последнего вызова функции
    • mysqli::$error - Возвращает строку с описанием последней ошибки
    • mysqli::$error_list - Возвращает список ошибок выполнения последней запущенной команды
    • mysqli::$field_count - Возвращает число столбцов, затронутых последним запросом
    • mysqli::$host_info - Возвращает строку, содержащую тип используемого соединения
    • mysqli::$info - Извлекает информацию о последнем выполненном запросе
    • mysqli::$insert_id - Возвращает автоматически генерируемый ID, используя последний запрос
    • mysqli::$protocol_version - Возвращает версию используемого MySQL протокола
    • mysqli::$server_info - Возвращает версию MySQL сервера
    • mysqli::$server_version - Возвращает версию сервера MySQL, представленную в виде integer
    • mysqli::$sqlstate - Возвращает код состояния SQLSTATE последней MySQL операции
    • mysqli::$thread_id - Возвращает ID процесса текущего подключения
    • mysqli::$warning_count - Возвращает количество предупреждений из последнего запроса заданного подключения
    • mysqli::autocommit - Включает или отключает автоматическую фиксацию изменений базы данных
    • mysqli::begin_transaction - Стартует транзакцию
    • mysqli::change_user - Позволяет сменить пользователя подключенного к базе данных
    • mysqli::character_set_name - Возвращает кодировку по умолчанию, установленную для соединения с БД
    • mysqli::close - Закрывает ранее открытое соединение с базой данных
    • mysqli::commit - Фиксирует текущую транзакцию
    • mysqli::debug - Выполняет процедуры отладки
    • mysqli::disable_reads_from_master - Блокирует чтение с мастера
    • mysqli::dump_debug_info - Журналирование отладочной информации
    • mysqli::get_charset - Возвращает объект, описывающий кодировку
    • mysqli::get_connection_stats - Возвращает статистику соединения с клиентом
    • mysqli::get_warnings - Получает результат SHOW WARNINGS
    • mysqli::init - Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()
    • mysqli::kill - Запрос для сервера завершить выполнение процесса MySQL
    • mysqli::more_results - Проверка, есть ли еще результаты в мультизапросе
    • mysqli::multi_query - Выполняет запрос к базе данных
    • mysqli::next_result - Подготовка следующего доступного результирующего набора из multi_query
    • mysqli::options - Установка настроек
    • mysqli::ping - Проверяет работоспособность соединения или пытается переподключиться, если соединение разорвано
    • mysqli::poll - Опрос подключений
    • mysqli::prepare - Подготавливает SQL выражение к выполнению
    • mysqli::query - Выполняет запрос к базе данных
    • mysqli::real_connect - Устанавливает соединение с сервером mysql
    • mysqli::real_escape_string - Экранирует специальные символы в строке для использования в SQL-выражении, используя текущий набор символов соединения
    • mysqli::real_query - Выполнение SQL запроса
    • mysqli::reap_async_query - Получение результата асинхронного запроса
    • mysqli::refresh - Обновление
    • mysqli::release_savepoint - Удаляет именованную точку сохранения из списка точек сохранения текущей транзакции
    • mysqli::rollback - Откат текущей транзакции
    • mysqli::rpl_query_type - Возвращает RPL тип запроса
    • mysqli::savepoint - Устанавливает именованную точку отката для текущей транзакции
    • mysqli::select_db - Устанавливает базу данных для выполняемых запросов
    • mysqli::send_query - Отправка запроса и возврат
    • mysqli::set_charset - Задает набор символов по умолчанию
    • mysqli::set_local_infile_default - Отмена привязки callback-функции для команды load local infile
    • mysqli::set_local_infile_handler - Задает callback-функцию для команды LOAD DATA LOCAL INFILE
    • mysqli::set_opt - Псевдоним mysqli_options
    • mysqli::ssl_set - Используется для установления безопасных соединений, используя SSL
    • mysqli::stat - Получение информации о текущем состоянии системы
    • mysqli::stmt_init - Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare
    • mysqli::store_result - Передает на клиента результирующий набор последнего запроса
    • mysqli::thread_safe - Показывает, безопасна ли работа с процессами
    • mysqli::use_result - Готовит результирующий набор на сервере к использованию
    • mysqli::__construct - Устанавливает новое соединение с сервером MySQL
    • mysqli_bind_param - Синоним функции mysqli_stmt_bind_param
    • mysqli_bind_result - Синоним функции mysqli_stmt_bind_result
    • mysqli_client_encoding - Синоним функции mysqli_character_set_name
    • mysqli_connect - Псевдоним mysqli::__construct
    • mysqli_disable_rpl_parse - Блокировать разбор RPL
    • mysqli_driver::$report_mode - Включает или отключает внутренние функции протоколирования
    • mysqli_driver::embedded_server_end - Останавливает встроенный сервер
    • mysqli_driver::embedded_server_start - Инициализирует и запускает встроенный сервер
    • mysqli_enable_reads_from_master - Включает чтение с мастера
    • mysqli_enable_rpl_parse - Включает разбор RPL
    • mysqli_escape_string - Псевдоним функции mysqli_real_escape_string
    • mysqli_execute - Синоним для mysqli_stmt_execute
    • mysqli_fetch - Синоним для mysqli_stmt_fetch
    • mysqli_get_cache_stats - Возвращает статистические данные о Zval кэше клиента
    • mysqli_get_client_stats - Получить клиентскую попроцессную статистику
    • mysqli_get_links_stats - Возвращает информацию об открытых и закешированных соединениях MySQL
    • mysqli_get_metadata - Синоним для mysqli_stmt_result_metadata
    • mysqli_master_query - Принудительный запуск запроса на хозяине в случае установки хозяин/раб
    • mysqli_param_count - Псевдоним для mysqli_stmt_param_count
    • mysqli_report - Псевдоним mysqli_driver->report_mode
    • mysqli_result::$current_field - Получает смещение указателя по отношению к текущему полю
    • mysqli_result::$field_count - Получение количества полей в результирующем наборе
    • mysqli_result::$lengths - Возвращает длины полей текущей строки результирующего набора
    • mysqli_result::$num_rows - Получает число рядов в результирующей выборке
    • mysqli_result::data_seek - Перемещает указатель результата на выбранную строку
    • mysqli_result::fetch_all - Выбирает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба
    • mysqli_result::fetch_array - Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
    • mysqli_result::fetch_assoc - Извлекает результирующий ряд в виде ассоциативного массива
    • mysqli_result::fetch_field - Возвращает следующее поле результирующего набора
    • mysqli_result::fetch_fields - Возвращает массив объектов, представляющих поля результирующего набора
    • mysqli_result::fetch_field_direct - Получение метаданных конкретного поля
    • mysqli_result::fetch_object - Возвращает текущую строку результирующего набора в виде объекта
    • mysqli_result::fetch_row - Получение строки результирующей таблицы в виде массива
    • mysqli_result::field_seek - Установить указатель поля на определенное смещение
    • mysqli_result::free - Освобождает память, занятую результатами запроса
    • mysqli_rpl_parse_enabled - Проверка, включен ли разбор RPL
    • mysqli_rpl_probe - RPL зонд
    • mysqli_send_long_data - Псевдоним для mysqli_stmt_send_long_data
    • mysqli_slave_query - Принудительный запуск запроса на рабе в установке хозяин/раб
    • mysqli_stmt::$affected_rows - Возвращает общее количество строк, измененных, удаленных или добавленных последним выполненным выражением
    • mysqli_stmt::$errno - Возвращает код ошибки выполнения последнего запроса
    • mysqli_stmt::$error - Возвращает строку с пояснением последней ошибки при выполнении запроса
    • mysqli_stmt::$error_list - Возвращает список ошибок выполнения последнего запроса
    • mysqli_stmt::$field_count - Возвращает число полей в заданном выражении
    • mysqli_stmt::$insert_id - Получает ID, сгенерированный предыдущей операцией INSERT
    • mysqli_stmt::$num_rows - Возвращает число строк в результате запроса
    • mysqli_stmt::$param_count - Возвращает количество параметров в запросе
    • mysqli_stmt::$sqlstate - Возвращает код ошибки SQLSTATE, вызванной в ходе выполнения последней операции над запросом
    • mysqli_stmt::attr_get - Получает текущее значение атрибута запроса
    • mysqli_stmt::attr_set - Изменяет поведение подготовленного запроса
    • mysqli_stmt::bind_param - Привязка переменных к параметрам подготавливаемого запроса
    • mysqli_stmt::bind_result - Привязка переменных к подготовленному запросу для размещения результата
    • mysqli_stmt::close - Закрывает подготовленный запрос
    • mysqli_stmt::data_seek - Переход к заданной строке в результирующем наборе
    • mysqli_stmt::execute - Выполняет подготовленный запрос
    • mysqli_stmt::fetch - Связывает результаты подготовленного выражения с переменными
    • mysqli_stmt::free_result - Освобождает память от результата запроса, указанного дескриптором
    • mysqli_stmt::get_result - Получает результат из подготовленного запроса
    • mysqli_stmt::get_warnings - Получает результат от SHOW WARNINGS
    • mysqli_stmt::more_results - Проверяет, есть ли еще наборы строк в результате мультизапроса
    • mysqli_stmt::next_result - Читает следующий набор строк из мультизапроса
    • mysqli_stmt::prepare - Подготовка SQL-запроса к выполнению
    • mysqli_stmt::reset - Сбрасывает результаты выполнения подготовленного запроса
    • mysqli_stmt::result_metadata - Возвращает метаданные результирующей таблицы подготавливаемого запроса
    • mysqli_stmt::send_long_data - Отправка данных блоками
    • mysqli_stmt::store_result - Передает результирующий набор запроса на клиента
    • mysqli_stmt::__construct - Конструктор для объекта mysqli_stmt
    • mysqli_warning::next - Получает следующее предупреждение
    • mysqli_warning::__construct - Выполняет функции конструктора
    • MysqlndUhConnection::changeUser - Changes the user of the specified mysqlnd database connection
    • MysqlndUhConnection::charsetName - Returns the default character set for the database connection
    • MysqlndUhConnection::close - Closes a previously opened database connection
    • MysqlndUhConnection::connect - Open a new connection to the MySQL server
    • MysqlndUhConnection::endPSession - End a persistent connection
    • MysqlndUhConnection::escapeString - Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
    • MysqlndUhConnection::getAffectedRows - Gets the number of affected rows in a previous MySQL operation
    • MysqlndUhConnection::getErrorNumber - Returns the error code for the most recent function call
    • MysqlndUhConnection::getErrorString - Returns a string description of the last error
    • MysqlndUhConnection::getFieldCount - Returns the number of columns for the most recent query
    • MysqlndUhConnection::getHostInformation - Returns a string representing the type of connection used
    • MysqlndUhConnection::getLastInsertId - Returns the auto generated id used in the last query
    • MysqlndUhConnection::getLastMessage - Retrieves information about the most recently executed query
    • MysqlndUhConnection::getProtocolInformation - Returns the version of the MySQL protocol used
    • MysqlndUhConnection::getServerInformation - Returns the version of the MySQL server
    • MysqlndUhConnection::getServerStatistics - Gets the current system status
    • MysqlndUhConnection::getServerVersion - Returns the version of the MySQL server as an integer
    • MysqlndUhConnection::getSqlstate - Returns the SQLSTATE error from previous MySQL operation
    • MysqlndUhConnection::getStatistics - Returns statistics about the client connection
    • MysqlndUhConnection::getThreadId - Returns the thread ID for the current connection
    • MysqlndUhConnection::getWarningCount - Returns the number of warnings from the last query for the given link
    • MysqlndUhConnection::init - Initialize mysqlnd connection
    • MysqlndUhConnection::killConnection - Asks the server to kill a MySQL thread
    • MysqlndUhConnection::listFields - List MySQL table fields
    • MysqlndUhConnection::listMethod - Wrapper for assorted list commands
    • MysqlndUhConnection::moreResults - Check if there are any more query results from a multi query
    • MysqlndUhConnection::nextResult - Prepare next result from multi_query
    • MysqlndUhConnection::ping - Pings a server connection, or tries to reconnect if the connection has gone down
    • MysqlndUhConnection::query - Performs a query on the database
    • MysqlndUhConnection::queryReadResultsetHeader - Read a result set header
    • MysqlndUhConnection::reapQuery - Get result from async query
    • MysqlndUhConnection::refreshServer - Flush or reset tables and caches
    • MysqlndUhConnection::restartPSession - Restart a persistent mysqlnd connection
    • MysqlndUhConnection::selectDb - Selects the default database for database queries
    • MysqlndUhConnection::sendClose - Sends a close command to MySQL
    • MysqlndUhConnection::sendQuery - Sends a query to MySQL
    • MysqlndUhConnection::serverDumpDebugInformation - Dump debugging information into the log for the MySQL server
    • MysqlndUhConnection::setAutocommit - Turns on or off auto-committing database modifications
    • MysqlndUhConnection::setCharset - Sets the default client character set
    • MysqlndUhConnection::setClientOption - Sets a client option
    • MysqlndUhConnection::setServerOption - Sets a server option
    • MysqlndUhConnection::shutdownServer - The shutdownServer purpose
    • MysqlndUhConnection::simpleCommand - Sends a basic COM_* command
    • MysqlndUhConnection::simpleCommandHandleResponse - Process a response for a basic COM_* command send to the client
    • MysqlndUhConnection::sslSet - Used for establishing secure connections using SSL
    • MysqlndUhConnection::stmtInit - Initializes a statement and returns a resource for use with mysqli_statement::prepare
    • MysqlndUhConnection::storeResult - Transfers a result set from the last query
    • MysqlndUhConnection::txCommit - Commits the current transaction
    • MysqlndUhConnection::txRollback - Rolls back current transaction
    • MysqlndUhConnection::useResult - Initiate a result set retrieval
    • MysqlndUhConnection::__construct - The __construct purpose
    • MysqlndUhPreparedStatement::execute - Выполняет подготовленный запрос
    • MysqlndUhPreparedStatement::prepare - Подготавливает утверждение SQL для выполнения
    • MysqlndUhPreparedStatement::__construct - Результат __construct
    • mysqlnd_memcache_get_config - Получить информацию о настройках плагина
    • mysqlnd_memcache_set - Связать соединение MySQL с соединением Memcache
    • mysqlnd_ms_dump_servers - Returns a list of currently configured servers
    • mysqlnd_ms_fabric_select_global - Switch to global sharding server for a given table
    • mysqlnd_ms_fabric_select_shard - Switch to shard
    • mysqlnd_ms_get_last_gtid - Returns the latest global transaction ID
    • mysqlnd_ms_get_last_used_connection - Returns an array which describes the last used connection
    • mysqlnd_ms_get_stats - Returns query distribution and connection statistics
    • mysqlnd_ms_match_wild - Finds whether a table name matches a wildcard pattern or not
    • mysqlnd_ms_query_is_select - Find whether to send the query to the master, the slave or the last used MySQL server
    • mysqlnd_ms_set_qos - Sets the quality of service needed from the cluster
    • mysqlnd_ms_set_user_pick_server - Sets a callback for user-defined read/write splitting
    • mysqlnd_ms_xa_begin - Starts a distributed/XA transaction among MySQL servers
    • mysqlnd_ms_xa_commit - Commits a distributed/XA transaction among MySQL servers
    • mysqlnd_ms_xa_gc - Garbage collects unfinished XA transactions after severe errors
    • mysqlnd_ms_xa_rollback - Rolls back a distributed/XA transaction among MySQL servers
    • mysqlnd_qc_clear_cache - Flush all cache contents
    • mysqlnd_qc_get_available_handlers - Returns a list of available storage handler
    • mysqlnd_qc_get_cache_info - Returns information on the current handler, the number of cache entries and cache entries, if available
    • mysqlnd_qc_get_core_stats - Statistics collected by the core of the query cache
    • mysqlnd_qc_get_normalized_query_trace_log - Returns a normalized query trace log for each query inspected by the query cache
    • mysqlnd_qc_get_query_trace_log - Returns a backtrace for each query inspected by the query cache
    • mysqlnd_qc_set_cache_condition - Set conditions for automatic caching
    • mysqlnd_qc_set_is_select - Installs a callback which decides whether a statement is cached
    • mysqlnd_qc_set_storage_handler - Change current storage handler
    • mysqlnd_qc_set_user_handlers - Sets the callback functions for a user-defined procedural storage handler
    • mysqlnd_uh_convert_to_mysqlnd - Converts a MySQL connection handle into a mysqlnd connection handle
    • mysqlnd_uh_set_connection_proxy - Installs a proxy for mysqlnd connections
    • mysqlnd_uh_set_statement_proxy - Installs a proxy for mysqlnd statements
    • mysql_affected_rows - Возвращает число затронутых прошлой операцией рядов
    • mysql_client_encoding - Возвращает кодировку соединения
    • mysql_close - Закрывает соединение с сервером MySQL
    • mysql_connect - Открывает соединение с сервером MySQL
    • mysql_create_db - Создает базу данных MySQL
    • mysql_data_seek - Перемещает внутренний указатель в результате запроса
    • mysql_db_name - Возвращает название базы данных из вызова к mysql_list_dbs
    • mysql_db_query - Переключается на указанную базу данных и посылает запрос
    • mysql_drop_db - Уничтожает базу данных MySQL
    • mysql_errno - Возвращает численный код ошибки выполнения последней операции с MySQL
    • mysql_error - Возвращает текст ошибки последней операции с MySQL
    • mysql_escape_string - Экранирует строку для использования в 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 - Возвращает идентификатор, сгенерированный при последнем 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_set_charset - Устанавливает кодировку клиента
    • mysql_stat - Возвращает текущий статус сервера
    • mysql_tablename - Возвращает имя таблицы, содержащей указанное поле
    • mysql_thread_id - Возвращает идентификатор текущего потока
    • mysql_unbuffered_query - Посылает запрос MySQL без авто-обработки результата и его буферизации
    • mysql_xdevapi\Client::close - Close client
    • m_checkstatus - Проверяет, завершена ли транзакция
    • m_completeauthorizations - Number of complete authorizations in queue, returning an array of their identifiers
    • m_connect - Установить соединение с MCVE
    • m_connectionerror - Получение текстового представления причины сбоя соединения
    • m_deletetrans - Удалить указанную транзакцию из структуры MCVE_CONN
    • m_destroyconn - Уничтожить соединение и структуру MCVE_CONN
    • m_destroyengine - Освободить память, связанную с подключением IP/SSL
    • m_getcell - Получить конкретную ячейку из ответа, разделенного запятыми, по имени столбца
    • m_getcellbynum - Получить конкретную ячейку из ответа, разделенного запятыми, по номеру столбца
    • m_getcommadelimited - Получить RAW с разделителями в виде запятых, возвращенную от MCVE
    • m_getheader - Получить имя столбца в ответе с разделителями в виде запятых
    • m_initconn - Создать и инициализировать структуру MCVE_CONN
    • m_initengine - Ready the client for IP/SSL Communication
    • m_iscommadelimited - Проверяет, разделен ли ответ запятыми
    • m_maxconntimeout - Максимальное время, в течение которого API будет пытаться подключиться к MCVE
    • m_monitor - Соединиться с MCVE (передача/получение данных) в неблокирующем режиме
    • m_numcolumns - Количество столбцов, возвращаемых в ответе с разделителями в виде запятых
    • m_numrows - Количество строк, возвращаемых в ответе с разделителями в виде запятых
    • m_parsecommadelimited - Разбирает ответ, разделенный запятыми, так что m_getcell и ему подобные будут работать
    • m_responsekeys - Возвращает массив строк, представляющих ключи, которые можно использовать для параметров ответа в этой транзакции
    • m_responseparam - Получить пользовательский параметр ответа
    • m_returnstatus - Проверить, была ли транзакция успешной
    • m_setblocking - Установить блокирующий/неблокирующий режим для подключения
    • m_setdropfile - Установить метод соединения в Drop-File
    • m_setip - Установить метод соединения на IP
    • m_setssl - Установить метод подключения на SSL
    • m_setssl_cafile - Установить SSL-файл CA (Certificate Authority) для проверки сертификата сервера
    • m_setssl_files - Установить файлы ключа сертификата ключей и сертификаты, если сервер требует проверки сертификата клиента
    • m_settimeout - Установить максимальное время транзакции (на каждую транзакцию)
    • m_sslcert_gen_hash - Сгенерировать хеш для проверки сертификата SSL-клиента
    • m_transactionssent - Проверить, свободен ли исходящий буфер
    • m_transinqueue - Количество транзакций в очереди клиентов
    • m_transkeyval - Добавить пару ключ/значение в транзакцию. Заменяет устаревшую функцию transparam()
    • m_transnew - Начать новую транзакцию
    • m_transsend - Завершить и отправить транзакцию
    • m_uwait - Подождать x микросекунд
    • m_validateidentifier - Проверить, действителен ли переданный идентификатор в какой-либо транзакции, в которую он передается
    • m_verifyconnection - Установить, следует ли делать PING при подключении для проверки соединения
    • m_verifysslcert - Установить, следует ли проверять SSL-сертификат сервера
  • n
    • natcasesort - Сортирует массив, используя алгоритм "natural order" без учета регистра символов
    • natsort - Сортирует массив, используя алгоритм "natural order"
    • ncurses_addch - Добавить символ в текущую позицию и переместить курсор вперед
    • ncurses_addchnstr - Добавить строку атрибутов с указанной длиной в текущую позицию
    • ncurses_addchstr - Добавить строку атрибутов в текущую позицию
    • ncurses_addnstr - Добавить строку с указанной длиной в текущую позицию
    • ncurses_addstr - Выводить текст в текущей позиции
    • ncurses_assume_default_colors - Определить цвета по умолчанию для цвета 0
    • 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 - Извлекает компоненты RGB цвета
    • ncurses_color_set - Set active foreground and background colors
    • ncurses_curs_set - Set cursor state
    • ncurses_define_key - Определить код клавиши
    • ncurses_def_prog_mode - Сохраняет режим терминалов (программы)
    • ncurses_def_shell_mode - Saves terminals (shell) mode
    • ncurses_delay_output - Сделать задержку вывода на терминале с использованием отступов
    • 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 - Удалить окно ncurses
    • ncurses_del_panel - Убрать панель из стека и удалить ее (но не соответствующее окно)
    • ncurses_doupdate - Write all prepared refreshes to terminal
    • ncurses_echo - Activate keyboard input echo
    • ncurses_echochar - Single character output including refresh
    • ncurses_end - Прекратить использование ncurses и очистить экран
    • ncurses_erase - Erase terminal screen
    • ncurses_erasechar - Возвращает текущий символ стирания
    • ncurses_filter - Установить LINES для iniscr() и newterm() на значение 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 - Возвращает текущую позицию курсора для окна
    • ncurses_halfdelay - Put terminal into halfdelay mode
    • ncurses_has_colors - Checks if terminal has color capabilities
    • 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 - Рисует горизонтальную линию в окне в текущей позиции с использованием атрибута-символа и определенного максимального количества символов
    • ncurses_inch - Получить символ и атрибут в текущей позиции
    • ncurses_init - Initialize ncurses
    • ncurses_init_color - Define a terminal color
    • ncurses_init_pair - Define a color pair
    • 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_mouseinterval - Set timeout for mouse button clicks
    • ncurses_mousemask - Sets mouse options
    • ncurses_mouse_trafo - Преобразует координаты
    • ncurses_move - Переместить выходную позицию
    • ncurses_move_panel - Moves a panel so that its upper-left corner is at [startx, starty]
    • ncurses_mvaddch - Move current position and add character
    • ncurses_mvaddchnstr - Переместить позицию и добавить строку-атрибут с указанной длиной
    • ncurses_mvaddchstr - Move position and add attributed string
    • ncurses_mvaddnstr - Move position and add string with specified length
    • ncurses_mvaddstr - Переместить позицию и добавить строку
    • ncurses_mvcur - Немедленно переместить курсор
    • ncurses_mvdelch - Move position and delete character, shift rest of line left
    • ncurses_mvgetch - Переместить позицию и получить символ в новой позиции
    • ncurses_mvhline - Set new position and draw a horizontal line using an attributed character and max. n characters long
    • ncurses_mvinch - Переместить позицию и получить символ-атрибут в новой позиции
    • ncurses_mvvline - Установить новую позицию и отрисовать вертикальную линию с использованием атрибута и максимального количества символов
    • ncurses_mvwaddstr - Добавить строку в новую позицию окна
    • ncurses_napms - Sleep
    • ncurses_newpad - Creates a new pad (window)
    • ncurses_newwin - Создать новое окно
    • ncurses_new_panel - Создать новую панель и связать ее с окном
    • ncurses_nl - Перевод новой строки и возврата каретки/перевода строки
    • 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 - Retrieves foreground and background colors of a color pair
    • ncurses_panel_above - Возвращает панель над панелью
    • ncurses_panel_below - Возвращает панель под панелью
    • ncurses_panel_window - Возвращает окно, связанное с панелью
    • 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 - Обновить экран
    • ncurses_replace_panel - Replaces the window associated with panel
    • ncurses_resetty - Restores saved terminal state
    • 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_savetty - Saves terminal state
    • ncurses_scrl - Прокрутить содержимого окна вверх или вниз без изменения текущего положения
    • ncurses_scr_dump - Dump screen content to file
    • ncurses_scr_init - Initialize screen from file dump
    • ncurses_scr_restore - Восстановить экран из файла дампа
    • ncurses_scr_set - Наследовать экран из файла дампа
    • ncurses_show_panel - Помещает невидимую панель поверх стека, делая ее видимой
    • 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 - Остановить использование атрибута 'standout'
    • ncurses_standout - Начать использование атрибута 'standout'
    • ncurses_start_color - Initializes color functionality
    • ncurses_termattrs - Возвращает логическое ИЛИ всех флагов атрибутов, поддерживаемых терминалом
    • ncurses_termname - Returns terminals (short)-name
    • ncurses_timeout - Set timeout for special key sequences
    • ncurses_top_panel - Перемещает видимую панель в верхнюю часть стека
    • ncurses_typeahead - Указать другой файловый дескриптор для проверки типа
    • ncurses_ungetch - Поставить символ обратно во входной поток
    • ncurses_ungetmouse - Pushes mouse event to queue
    • ncurses_update_panels - Обновляет виртуальной экран для отображения связей между панелями в стеке
    • ncurses_use_default_colors - Назначить цвета терминала по умолчанию на идентификатор цвета -1
    • ncurses_use_env - Управляет использованием информации окружения о размере терминала
    • ncurses_use_extended_names - Управляет использованием расширенных имен в описаниях terminfo
    • 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 - Преобразует координаты окна/stdscr
    • ncurses_wmove - Перемещает позицию вывода окна
    • ncurses_wnoutrefresh - Копирует окно на виртуальный экран
    • ncurses_wrefresh - Обновить окно на экране терминала
    • ncurses_wstandend - End standout mode for a window
    • ncurses_wstandout - Enter standout mode for a window
    • ncurses_wvline - Рисует вертикальную линию в окне в текущей позиции с использованием атрибута-символа и определенного максимального количества символов
    • newt_bell - Отправить звуковой сигнал в терминал
    • newt_button - Создать новую кнопку
    • newt_button_bar - Эта функция возвращает сетку, содержащую созданные кнопки
    • newt_centered_window - Открыть окно по центру указанного размера
    • newt_checkbox - Описание
    • newt_checkbox_get_value - Получает значение ресурса чекбокса
    • newt_checkbox_set_flags - Настраивает ресурс чекбокса
    • newt_checkbox_set_value - Устанавливает значение чекбокса
    • newt_checkbox_tree - Описание
    • 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 - Описание
    • newt_checkbox_tree_set_entry_value - Описание
    • newt_checkbox_tree_set_width - Описание
    • newt_clear_key_buffer - Отбрасывает содержимое буфера ввода терминала, не дожидаясь дополнительного ввода
    • 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 - Отображает текст строки в указанной позиции
    • newt_entry - Описание
    • newt_entry_get_value - Описание
    • newt_entry_set - Описание
    • newt_entry_set_filter - Описание
    • newt_entry_set_flags - Описание
    • newt_finished - Закрывает интерфейс newt
    • newt_form - Создать форму
    • newt_form_add_component - Добавляет один компонент в форму
    • newt_form_add_components - Добавьте несколько компонентов в форму
    • newt_form_add_hot_key - Описание
    • newt_form_destroy - Удаляет форму
    • newt_form_get_current - Описание
    • newt_form_run - Выполняет форму
    • 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_get_screen_size - Заполняет переданные ссылки текущим размером терминала
    • 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 - Описание
    • newt_grid_wrapped_window_at - Описание
    • newt_init - Инициализировать newt
    • newt_label - Описание
    • newt_label_set_text - Описание
    • newt_listbox - Описание
    • newt_listbox_append_entry - Описание
    • newt_listbox_clear - Описание
    • newt_listbox_clear_selection - Описание
    • 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 - Описание
    • newt_listbox_set_current_by_key - Описание
    • newt_listbox_set_data - Описание
    • newt_listbox_set_entry - Описание
    • newt_listbox_set_width - Описание
    • newt_listitem - Описание
    • newt_listitem_get_data - Описание
    • newt_listitem_set - Описание
    • newt_open_window - Открыть окно с указанным размером и позиции
    • newt_pop_help_line - Заменяет текущую строку помощи на строку из стека
    • newt_pop_window - Удаляет верхнее окно с экрана
    • newt_push_help_line - Сохраняет текущую строку помощи в стеке и отображает новую строку
    • newt_radiobutton - Описание
    • newt_radio_get_current - Описание
    • newt_redraw_help_line - Описание
    • newt_reflow_text - Описание
    • newt_refresh - Обновляет измененные части экрана
    • newt_resize_screen - Описание
    • newt_resume - Возобновить использование интерфейса newt после вызова newt_suspend
    • newt_run_form - Выполняет форму
    • newt_scale - Описание
    • newt_scale_set - Описание
    • newt_scrollbar_set - Описание
    • newt_set_help_callback - Описание
    • newt_set_suspend_callback - Установить callback-функцию, которая вызывается при нажатии пользователем клавиши suspend
    • newt_suspend - Возвращает newt в исходное состояние
    • newt_textbox - Описание
    • newt_textbox_get_num_lines - Описание
    • newt_textbox_reflowed - Описание
    • newt_textbox_set_height - Описание
    • newt_textbox_set_text - Описание
    • newt_vertical_scrollbar - Описание
    • newt_wait_for_key - Ничего не возвращать, пока не будет нажата клавиша
    • newt_win_choice - Описание
    • newt_win_entries - Описание
    • newt_win_menu - Описание
    • newt_win_message - Описание
    • newt_win_messagev - Описание
    • newt_win_ternary - Описание
    • next - Перемещает указатель массива вперед на один элемент
    • ngettext - Версия gettext для сообщений во множественном числе
    • nl2br - Вставляет HTML-код разрыва строки перед каждым переводом строки
    • nl_langinfo - Возвращает информацию о языке и локали
    • NoRewindIterator::current - Получает текущее значение
    • NoRewindIterator::getInnerIterator - Получает внутренний итератор
    • NoRewindIterator::key - Получает текущий ключ
    • NoRewindIterator::next - Перемещает итератор к следующему элементу
    • NoRewindIterator::rewind - Предотвращает возврат внутреннего итератора в начало
    • NoRewindIterator::valid - Проверяет итератор
    • NoRewindIterator::__construct - Создает новый объект NoRewindIterator
    • Normalizer::getRawDecomposition - Извлекает свойство Decomposition_Mapping для заданного символа UTF-8
    • Normalizer::isNormalized - Проверить, соответствует ли переданная строка заданной форме нормализации
    • Normalizer::normalize - Нормализация строки
    • nsapi_request_headers - Извлечь все заголовки HTTP-запроса
    • nsapi_response_headers - Извлекает все заголовки ответа HTTP
    • nsapi_virtual - Выполнить NSAPI-подзапрос
    • NumberFormatter::create - Create a number formatter
    • NumberFormatter::format - Format a number
    • NumberFormatter::formatCurrency - Format a currency value
    • NumberFormatter::getAttribute - Get an attribute
    • NumberFormatter::getErrorCode - Get formatter's last error code
    • NumberFormatter::getErrorMessage - Get formatter's last error message
    • NumberFormatter::getLocale - Get formatter locale
    • NumberFormatter::getPattern - Get formatter pattern
    • NumberFormatter::getSymbol - Get a symbol value
    • NumberFormatter::getTextAttribute - Get a text attribute
    • NumberFormatter::parse - Parse a number
    • NumberFormatter::parseCurrency - Parse a currency number
    • NumberFormatter::setAttribute - Set an attribute
    • NumberFormatter::setPattern - Set formatter pattern
    • NumberFormatter::setSymbol - Set a symbol value
    • NumberFormatter::setTextAttribute - Set a text attribute
    • number_format - Форматирует число с разделением групп
  • o
    • OAuth::disableDebug - Выключить подробную отладочную информацию
    • OAuth::disableRedirects - Выключить переадресацию
    • OAuth::disableSSLChecks - Выключить SSL проверки
    • OAuth::enableDebug - Включить подробную отладочную информацию
    • OAuth::enableRedirects - Включить переадресацию
    • OAuth::enableSSLChecks - Включить проверки SSL
    • OAuth::fetch - Извлечь защищенный ресурс OAuth
    • OAuth::generateSignature - Сгенерировать подпись
    • OAuth::getAccessToken - Получить токен доступа
    • OAuth::getCAPath - Получить информацию CA
    • OAuth::getLastResponse - Получить последний ответ
    • OAuth::getLastResponseHeaders - Получить заголовки последнего ответа
    • OAuth::getLastResponseInfo - Получить HTTP-информацию о последнем ответе
    • OAuth::getRequestHeader - Сгенерировать подпись заголовка OAuth
    • OAuth::getRequestToken - Извлечь токен запроса
    • OAuth::setAuthType - Установить тип авторизации
    • OAuth::setCAPath - Установить CA для пути и информации
    • OAuth::setNonce - Установить nonce для последующих запросов
    • OAuth::setRequestEngine - Используется для setRequestEngine
    • OAuth::setRSACertificate - Установить сертификат RSA
    • OAuth::setSSLChecks - Производить определенные проверки SSL для запроса
    • OAuth::setTimestamp - Установить метку времени
    • OAuth::setToken - Задать токен и его пароль
    • OAuth::setVersion - Установить версию OAuth
    • OAuth::__construct - Создает новый объект OAuth
    • OAuth::__destruct - Деструктор
    • OAuthProvider::addRequiredParameter - Добавить необходимые параметры
    • OAuthProvider::callconsumerHandler - Вызвать callback-функцию consumerNonceHandler
    • OAuthProvider::callTimestampNonceHandler - Вызвать callback-функцию timestampNonceHandler
    • OAuthProvider::calltokenHandler - Вызвать callback-функцию tokenNonceHandler
    • OAuthProvider::checkOAuthRequest - Проверка запроса oauth
    • OAuthProvider::consumerHandler - Установить обработчик consumerHandler
    • OAuthProvider::generateToken - Генерация случайного токена
    • OAuthProvider::is2LeggedEndpoint - is2LeggedEndpoint
    • OAuthProvider::isRequestTokenEndpoint - Установка isRequestTokenEndpoint
    • OAuthProvider::removeRequiredParameter - Удалить требуемый параметр
    • OAuthProvider::reportProblem - Сообщить о проблеме
    • OAuthProvider::setParam - Установить параметр
    • OAuthProvider::setRequestTokenPath - Установить путь запроса токена
    • OAuthProvider::timestampNonceHandler - Установить обработчик timestampNonceHandler
    • OAuthProvider::tokenHandler - Установить обработчик tokenHandler
    • OAuthProvider::__construct - Конструктор класса OAuthProvider
    • oauth_get_sbs - Создать базовую строку подписи (Signature Base String)
    • oauth_urlencode - Кодирует URI в соответствии с RFC 3986
    • 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 - callback-функция, используемая для gzip-сжатия буфера вывода при вызове ob_start
    • ob_iconv_handler - Преобразует символы из текущей кодировки в кодировку выходного буфера
    • ob_implicit_flush - Включение/выключение неявного сброса
    • ob_list_handlers - Список всех используемых обработчиков вывода
    • ob_start - Включение буферизации вывода
    • ob_tidyhandler - Функция обратного вызова ob_start для восстановление буфера
    • 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-Lob::append - Добавляет данные из объекта LOB в конец другого объекта
    • OCI-Lob::close - Закрывает дескриптор объекта LOB
    • OCI-Lob::eof - Проверяет, находится ли указатель LOB на конце объекта
    • OCI-Lob::erase - Очищает указанную часть объекта LOB
    • OCI-Lob::export - Сохраняет содержимое объекта LOB в файл
    • OCI-Lob::flush - Очищает и записывает буфер объекта LOB на сервер
    • OCI-Lob::free - Освобождает ресурсы, связанные с дескриптором LOB
    • OCI-Lob::getBuffering - Возвращает текущее состояние буферизации большого объекта (LOB)
    • OCI-Lob::import - Записывает содержимое файла в объект LOB
    • OCI-Lob::load - Возвращает содержимое объекта LOB
    • OCI-Lob::read - Возвращает часть объекта LOB
    • OCI-Lob::rewind - Переводит указатель объекта в начало большого объекта
    • OCI-Lob::save - Сохраняет данные в LOB
    • OCI-Lob::saveFile - Псевдоним OCI-Lob::import
    • OCI-Lob::seek - Устанавливает позицию внутреннего указателя LOB
    • OCI-Lob::setBuffering - Изменяет текущее состояние буферизации большого объекта (LOB)
    • OCI-Lob::size - Возвращает размер объекта LOB
    • OCI-Lob::tell - Возвращает текущую позицию внутреннего указателя объекта LOB
    • OCI-Lob::truncate - Обрезает большой объект
    • OCI-Lob::write - Записывает данные в объект LOB
    • OCI-Lob::writeTemporary - Записывает временный большой объект (LOB)
    • OCI-Lob::writeToFile - Псевдоним OCI-Lob::export
    • ocibindbyname - Псевдоним oci_bind_by_name
    • ocicancel - Псевдоним oci_cancel
    • ocicloselob - Псевдоним OCI-Lob::close
    • ocicollappend - Псевдоним OCI-Collection::append
    • ocicollassign - Псевдоним OCI-Collection::assign
    • ocicollassignelem - Псевдоним OCI-Collection::assignElem
    • ocicollgetelem - Псевдоним OCI-Collection::getElem
    • ocicollmax - Псевдоним OCI-Collection::max
    • ocicollsize - Псевдоним OCI-Collection::size
    • ocicolltrim - Псевдоним OCI-Collection::trim
    • ocicolumnisnull - Псевдоним oci_field_is_null
    • ocicolumnname - Псевдоним oci_field_name
    • ocicolumnprecision - Псевдоним oci_field_precision
    • ocicolumnscale - Псевдоним oci_field_scale
    • ocicolumnsize - Псевдоним oci_field_size
    • ocicolumntype - Псевдоним oci_field_type
    • ocicolumntyperaw - Псевдоним oci_field_type_raw
    • ocicommit - Псевдоним oci_commit
    • ocidefinebyname - Псевдоним oci_define_by_name
    • ocierror - Псевдоним oci_error
    • ociexecute - Псевдоним oci_execute
    • ocifetch - Псевдоним oci_fetch
    • ocifetchinto - Устаревший вариант функций oci_fetch_array, oci_fetch_object, oci_fetch_assoc и oci_fetch_row
    • ocifetchstatement - Псевдоним oci_fetch_all
    • ocifreecollection - Псевдоним OCI-Collection::free
    • ocifreecursor - Псевдоним oci_free_statement
    • ocifreedesc - Псевдоним OCI-Lob::free
    • ocifreestatement - Псевдоним oci_free_statement
    • ociinternaldebug - Псевдоним oci_internal_debug
    • ociloadlob - Псевдоним OCI-Lob::load
    • ocilogoff - Псевдоним oci_close
    • ocilogon - Псевдоним oci_connect
    • ocinewcollection - Псевдоним oci_new_collection
    • ocinewcursor - Псевдоним oci_new_cursor
    • ocinewdescriptor - Псевдоним oci_new_descriptor
    • ocinlogon - Псевдоним oci_new_connect
    • ocinumcols - Псевдоним oci_num_fields
    • ociparse - Псевдоним oci_parse
    • ociplogon - Псевдоним oci_pconnect
    • ociresult - Псевдоним oci_result
    • ocirollback - Псевдоним oci_rollback
    • ocirowcount - Псевдоним oci_num_rows
    • ocisavelob - Псевдоним OCI-Lob::save
    • ocisavelobfile - Псевдоним OCI-Lob::import
    • ociserverversion - Псевдоним oci_server_version
    • ocisetprefetch - Псевдоним oci_set_prefetch
    • ocistatementtype - Псевдоним oci_statement_type
    • ociwritelobtofile - Псевдоним OCI-Lob::export
    • ociwritetemporarylob - Псевдоним OCI-Lob::writeTemporary
    • oci_bind_array_by_name - Связывает PHP массив с массивом Oracle PL/SQL
    • oci_bind_by_name - Прикрепляет переменную PHP к соответствующей метке в SQL-выражении
    • oci_cancel - Заканчивает процесс чтения из курсора
    • oci_client_version - Возвращает версию клиентской библиотеки
    • oci_close - Закрывает соединение с сервером Oracle
    • oci_commit - Подтверждает транзакцию базы данных
    • oci_connect - Устанавливает соединение с базой данных Oracle
    • oci_define_by_name - Сопоставляет переменную PHP столбцу результата запроса
    • 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 - Проверяет, равняется ли поле в текущем полученном ряду равным NULL
    • oci_field_name - Возвращает имя поля из результата запроса
    • oci_field_precision - Возвращает точность поля
    • oci_field_scale - Возвращает масштаб поля
    • oci_field_size - Возвращает размер поля
    • oci_field_type - Возвращает имя типа поля
    • oci_field_type_raw - Возвращает исходный Oracle тип поля
    • oci_free_descriptor - Освобождает дескриптор
    • oci_free_statement - Освобождает ресурсы, занимаемые курсором или SQL-выражением
    • oci_get_implicit_resultset - Возвращает следующий ресурс дочернего запроса из ресурса родительского запроса, имеющего неявные результирпующие наборы Oracle Database 12c
    • oci_internal_debug - Включает и выключает внутреннюю отладку
    • oci_lob_copy - Копирует объект LOB
    • oci_lob_is_equal - Сравнивает два объекта LOB/FILE
    • 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_register_taf_callback - Регистрирует пользовательскую функцию обратного вызова для Oracle Database TAF
    • oci_result - Возвращает значение поля из результата запроса
    • oci_rollback - Откатывает транзакции, ожидающие обработки
    • oci_server_version - Возвращает версию сервера Oracle
    • oci_set_action - Задает имя для действия
    • oci_set_call_timeout - Устанавливает время ожидания в миллисекундах для вызовов базы данных
    • oci_set_client_identifier - Задает идентификатор клиента
    • oci_set_client_info - Задает информацию о клиенте
    • oci_set_db_operation - Задает операцию базы данных
    • oci_set_edition - Задает выпуск (edition) базы данных
    • oci_set_module_name - Задает имя модулю
    • oci_set_prefetch - Устанавливает количество строк, которые будут автоматически выбраны в буфер
    • oci_statement_type - Возвращает тип выражения
    • oci_unregister_taf_callback - Удалить регистрацию пользовательской callback-функции для Oracle Database TAF
    • octdec - Переводит число из восьмеричной системы счисления в десятичную
    • odbc_autocommit - Toggle autocommit behaviour
    • odbc_binmode - Handling of binary column data
    • odbc_close - Close an ODBC connection
    • odbc_close_all - Close all ODBC connections
    • odbc_columnprivileges - Lists columns and associated privileges for the given table
    • odbc_columns - Lists the column names in specified tables
    • odbc_commit - Commit an ODBC transaction
    • odbc_connect - Соединяет с источником данных
    • odbc_cursor - Get cursorname
    • odbc_data_source - Returns information about a current connection
    • odbc_do - Псевдоним odbc_exec
    • odbc_error - Get the last error code
    • odbc_errormsg - Get the last error message
    • odbc_exec - Prepare and execute an 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 - Псевдоним odbc_field_len
    • odbc_field_scale - Get the scale of a field
    • odbc_field_type - Datatype of a field
    • odbc_foreignkeys - Retrieves a list of foreign keys
    • odbc_free_result - Free resources associated with a result
    • odbc_gettypeinfo - Retrieves 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 - Gets the primary keys 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 - Get result data
    • odbc_result_all - Print result as HTML table
    • odbc_rollback - Rollback a transaction
    • odbc_setoption - Adjust ODBC settings
    • odbc_specialcolumns - Retrieves special columns
    • 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
    • ogg:// - Аудиопотоки
    • opcache_compile_file - Скомпилировать и закешировать, но не исполнять скрипт PHP
    • opcache_get_configuration - Получить конфигурационную информацию кеша
    • opcache_get_status - Получить информацию о состоянии кеша
    • opcache_invalidate - Аннулирует закешированный скрипт
    • opcache_is_script_cached - Проверяет, закеширован ли скрипт в OPCache
    • opcache_reset - Сбрасывает содержимое кеша опкодов
    • openal_buffer_create - Сгенерировать буфер OpenAL
    • openal_buffer_data - Загрузка буфера с данными
    • openal_buffer_destroy - Уничтожает буфер OpenAL
    • openal_buffer_get - Получить свойство буфера OpenAL
    • openal_buffer_loadwav - Загрузить файл в формате wav в буфер
    • openal_context_create - Создать контекст обработки звука
    • openal_context_current - Сделать указанный контекст текущим
    • openal_context_destroy - Уничтожает контекст
    • openal_context_process - Обработать указанный контекст
    • openal_context_suspend - Приостановить указанный контекст
    • openal_device_close - Закрыть устройство OpenAL
    • openal_device_open - Инициализировать звуковой уровень OpenAL
    • openal_listener_get - Получить свойство прослушивателя
    • openal_listener_set - Установка свойства прослушивателя
    • openal_source_create - Сгенерировать источник ресурса
    • openal_source_destroy - Уничтожение ресурса источника
    • openal_source_get - Получить свойство источника OpenAL
    • openal_source_pause - Поставить источник на паузу
    • openal_source_play - Начать воспроизведение источника
    • openal_source_rewind - Перемотатать источник в начало
    • openal_source_set - Установить свойство источника
    • openal_source_stop - Остановить воспроизведение источника
    • openal_stream - Начать потоковую передачу с источника
    • opendir - Открывает дескриптор каталога
    • openlog - Открывает соединение к системному журналу
    • openssl_cipher_iv_length - Получает длину инициализирующего вектора шифра
    • openssl_csr_export - Экспортирует CSR в виде строки
    • openssl_csr_export_to_file - Экспортирует CSR в файл
    • openssl_csr_get_public_key - Возвращает открытый ключ CSR
    • openssl_csr_get_subject - Возвращает субъект CSR
    • openssl_csr_new - Генерирует CSR
    • openssl_csr_sign - Подписать CSR с помощью другого сертификата (или им же) и создать сертификат
    • openssl_decrypt - Расшифровывает данные
    • openssl_dh_compute_key - Вычисляет общий секретный ключ для значения удаленного открытого ключа DH и локального ключа DH
    • openssl_digest - Вычисление дайджеста
    • openssl_encrypt - Шифрует данные
    • openssl_error_string - Возвращает сообщение об ошибке openSSL
    • openssl_free_key - Высвобождение ресурса ключа
    • openssl_get_cert_locations - Получить доступные месторасположения сертификатов
    • openssl_get_cipher_methods - Получить список доступных алгоритмов шифрования
    • openssl_get_curve_names - Список доступных имен кривых для ECC
    • openssl_get_md_methods - Получить список доступных методов хеширования
    • openssl_get_privatekey - Псевдоним openssl_pkey_get_private
    • openssl_get_publickey - Псевдоним openssl_pkey_get_public
    • openssl_open - Открыть запечатанные данные
    • openssl_pbkdf2 - Генерирует строки PKCS5 v2 PBKDF2
    • openssl_pkcs7_decrypt - Расшифровать сообщение, зашифрованное S/MIME
    • openssl_pkcs7_encrypt - Шифрует сообщение S/MIME
    • openssl_pkcs7_read - Экспортировать файл PKCS7 в массив сертификатов PEM
    • openssl_pkcs7_sign - Подписать сообщение S/MIME
    • openssl_pkcs7_verify - Проверить подпись сообщения S/MIME
    • openssl_pkcs12_export - Экспортирует совместимый с PKCS#12 файл хранилища сертификатов в переменную
    • openssl_pkcs12_export_to_file - Экспортирует в совместимый с PKCS#12 файл хранилища сертификатов
    • openssl_pkcs12_read - Разбирает хранилище сертификатов PKCS#12 в массив
    • openssl_pkey_export - Получает строку с ключем в формате PEM
    • openssl_pkey_export_to_file - Записывает в файл ключ в формате PEM
    • openssl_pkey_free - Освобождает ресурс закрытого ключа
    • openssl_pkey_get_details - Получает массив с детальной информацией о ключе
    • openssl_pkey_get_private - Получить закрытый ключ
    • openssl_pkey_get_public - Извлекает открытый ключ из сертификата и подготавливает его к использованию
    • openssl_pkey_new - Генерирует новый секретный ключ
    • openssl_private_decrypt - Расшифровывает данные с помощью закрытого ключа
    • openssl_private_encrypt - Шифрует данные секретным ключем
    • openssl_public_decrypt - Расшифровка данных с помощью открытого ключа
    • openssl_public_encrypt - Шифрование данных открытым ключем
    • openssl_random_pseudo_bytes - Генерирует псевдослучайную последовательность байт
    • openssl_seal - Запечатать (зашифровать) данные
    • openssl_sign - Генерация подписи
    • openssl_spki_export - Экспорт открытого ключа в формате PEM из подписанного открытого ключа с вызовом
    • openssl_spki_export_challenge - Экспорт вызова, связанного с подписанным ключем и вызовом
    • openssl_spki_new - Создание нового подписанного открытого ключа с вызовом
    • openssl_spki_verify - Проверяет подписанный открытый ключ и вызов
    • openssl_verify - Сверка сигнатуры
    • openssl_x509_checkpurpose - Проверяет, можно ли использовать сертификат для конкретных задач
    • openssl_x509_check_private_key - Проверить, относится ли секретный ключ к сертификату
    • openssl_x509_export - Экспортирует сертификат в строку
    • openssl_x509_export_to_file - Экспортирует сертификат в файл
    • openssl_x509_fingerprint - Вычисляет отпечаток или дайджест, заданный сертификатом X.509
    • openssl_x509_free - Высвобождает ресурс сертификата
    • openssl_x509_parse - Разобрать сертификат X509 и получить массив с данными о нем
    • openssl_x509_read - Получить идентификатор ресурса для сертификата X.509
    • ord - Конвертирует первый байт строки в число от 0 до 255
    • OuterIterator::getInnerIterator - Возвращает внутренний итератор для текущего элемента
    • output_add_rewrite_var - Добавить значения в обработчик URL
    • output_reset_rewrite_vars - Сбросить значения обработчика URL
    • override_function - Переопределение встроенных функций
  • p
    • pack - Упаковать данные в бинарную строку
    • parallel\bootstrap - Bootstrapping
    • parallel\Channel::close - Closing
    • parallel\Channel::make - Access
    • parallel\Channel::open - Access
    • parallel\Channel::recv - Sharing
    • parallel\Channel::send - Sharing
    • parallel\Channel::__construct - Channel Construction
    • parallel\Events::addChannel - Targets
    • parallel\Events::addFuture - Targets
    • parallel\Events::poll - Polling
    • parallel\Events::remove - Targets
    • parallel\Events::setBlocking - Behaviour
    • parallel\Events::setInput - Input
    • parallel\Events::setTimeout - Behaviour
    • parallel\Events\Input::add - Inputs
    • parallel\Events\Input::clear - Inputs
    • parallel\Events\Input::remove - Inputs
    • parallel\Future::cancel - Cancellation
    • parallel\Future::cancelled - State Detection
    • parallel\Future::done - State Detection
    • parallel\Future::value - Resolution
    • parallel\run - Execution
    • parallel\Runtime::close - Runtime Graceful Join
    • parallel\Runtime::kill - Runtime Join
    • parallel\Runtime::run - Execution
    • parallel\Runtime::__construct - Runtime Construction
    • parallel\Sync::get - Access
    • parallel\Sync::notify - Synchronization
    • parallel\Sync::set - Access
    • parallel\Sync::wait - Synchronization
    • parallel\Sync::__construct - Construction
    • parallel\Sync::__invoke - Synchronization
    • ParentIterator::accept - Определение доступности
    • ParentIterator::getChildren - Возвращает дочерние объекты итератора, хранящегося внутри ParentIterator
    • ParentIterator::hasChildren - Проверяет, имеет ли внутренний объект-итератор дочерние объекты
    • ParentIterator::next - Перемещает указатель на одну позицию вперед
    • ParentIterator::rewind - Переводит итератор на начало
    • ParentIterator::__construct - Конструктор класса ParentIterator
    • Parle\Lexer::advance - Process next lexer rule
    • Parle\Lexer::build - Finalize the lexer rule set
    • Parle\Lexer::callout - Define token callback
    • Parle\Lexer::consume - Pass the data for processing
    • Parle\Lexer::dump - Dump the state machine
    • Parle\Lexer::getToken - Retrieve the current token
    • Parle\Lexer::insertMacro - Insert regex macro
    • Parle\Lexer::push - Add a lexer rule
    • Parle\Lexer::reset - Reset lexer
    • Parle\Parser::advance - Process next parser rule
    • Parle\Parser::build - Finalize the grammar rules
    • Parle\Parser::consume - Consume the data for processing
    • Parle\Parser::dump - Dump the grammar
    • Parle\Parser::errorInfo - Retrieve the error information
    • Parle\Parser::left - Declare a token with left-associativity
    • Parle\Parser::nonassoc - Declare a token with no associativity
    • Parle\Parser::precedence - Declare a precedence rule
    • Parle\Parser::push - Add a grammar rule
    • Parle\Parser::reset - Reset parser state
    • Parle\Parser::right - Declare a token with right-associativity
    • Parle\Parser::sigil - Retrieve a matching part of a rule
    • Parle\Parser::token - Declare a token
    • Parle\Parser::tokenId - Get token id
    • Parle\Parser::trace - Trace the parser operation
    • Parle\Parser::validate - Validate input
    • Parle\RLexer::advance - Process next lexer rule
    • Parle\RLexer::build - Finalize the lexer rule set
    • Parle\RLexer::callout - Define token callback
    • Parle\RLexer::consume - Pass the data for processing
    • Parle\RLexer::dump - Dump the state machine
    • Parle\RLexer::getToken - Retrieve the current token
    • Parle\RLexer::insertMacro - Insert regex macro
    • Parle\RLexer::push - Add a lexer rule
    • Parle\RLexer::pushState - Push a new start state
    • Parle\RLexer::reset - Reset lexer
    • Parle\RParser::advance - Process next parser rule
    • Parle\RParser::build - Finalize the grammar rules
    • Parle\RParser::consume - Consume the data for processing
    • Parle\RParser::dump - Dump the grammar
    • Parle\RParser::errorInfo - Retrieve the error information
    • Parle\RParser::left - Declare a token with left-associativity
    • Parle\RParser::nonassoc - Declare a token with no associativity
    • Parle\RParser::precedence - Declare a precedence rule
    • Parle\RParser::push - Add a grammar rule
    • Parle\RParser::reset - Reset parser state
    • Parle\RParser::right - Declare a token with right-associativity
    • Parle\RParser::sigil - Retrieve a matching part of a rule
    • Parle\RParser::token - Declare a token
    • Parle\RParser::tokenId - Get token id
    • Parle\RParser::trace - Trace the parser operation
    • Parle\RParser::validate - Validate input
    • Parle\Stack::pop - Pop an item from the stack
    • Parle\Stack::push - Push an item into the stack
    • parsekit_compile_file - Компилирует скрипт PHP и возвращает результат в виде массива
    • parsekit_compile_string - Компилирует строку PHP-кода и возвращает результат в виде массива
    • parsekit_func_arginfo - Возвращает информацию об аргументах функции
    • parse_ini_file - Обрабатывает конфигурационный файл
    • parse_ini_string - Разбирает строку конфигурации
    • parse_str - Разбирает строку в переменные
    • parse_url - Разбирает URL и возвращает его компоненты
    • passthru - Выполнить внешнюю программу и отобразить необработанный вывод
    • password_get_info - Возвращает информацию о заданном хеше
    • password_hash - Создает хеш пароля
    • password_needs_rehash - Проверяет, что указанный хеш соответствует заданным опциям
    • password_verify - Проверяет, соответствует ли пароль хешу
    • pathinfo - Возвращает информацию о пути к файлу
    • pclose - Закрывает файловый указатель процесса
    • pcntl_alarm - Задать таймер доставки сигнала SIGALRM
    • pcntl_async_signals - Включить/отключить асинхронную обработку сигналов, либо получить текущий статус
    • pcntl_errno - Псевдоним pcntl_get_last_error
    • pcntl_exec - Запустить указанную программу в области текущего процесса
    • pcntl_fork - Разветвить (fork) текущий запущенный процесс
    • pcntl_getpriority - Получить значение приоритета процесса
    • pcntl_get_last_error - Получить код последней ошибки, возникшей в pcntl-функции
    • pcntl_setpriority - Изменить приоритет процесса
    • pcntl_signal - Установка обработчика сигнала
    • pcntl_signal_dispatch - Вызывает обработчики для ожидающих сигналов
    • pcntl_signal_get_handler - Получить текущий обработчик указанного сигнала
    • pcntl_sigprocmask - Задаёт и извлекает список блокируемых сигналов
    • pcntl_sigtimedwait - Ожидает сигналы в течение заданного времени
    • pcntl_sigwaitinfo - Ожидание сигналов
    • pcntl_strerror - Получить текст ошибки по её коду
    • pcntl_wait - Ожидает или возвращает статус порожденного дочернего процесса
    • pcntl_waitpid - Ожидает или возвращает статус порожденного дочернего процесса
    • pcntl_wexitstatus - Получить код возврата завершенного дочернего процесса
    • pcntl_wifexited - Проверяет, соответствует ли код завершения процесса нормальному завершению
    • pcntl_wifsignaled - Проверить, соответствует ли код завершения процесса завершению по сигналу
    • pcntl_wifstopped - Проверить, остановлен ли дочерний процесс
    • pcntl_wstopsig - Получить сигнал, из-за которого был остановлен дочерний процесс
    • pcntl_wtermsig - Получить сигнал, из-за которого был принудительно завершен дочерний процесс
    • PDF_activate_item - Активировать элемент структуры или другой элемент содержимого
    • PDF_add_annotation - Добавить аннотацию [устарело]
    • PDF_add_bookmark - Добавить закладку для текущей страницы [устарело]
    • PDF_add_launchlink - Добавить аннотацию запуска для текущей страницы [устарело]
    • PDF_add_locallink - Добавить аннотацию ссылки для текущей страницы [deprecated]
    • PDF_add_nameddest - Создание именованного места назначения
    • PDF_add_note - Установить аннотацию для текущей страницы [устарело]
    • PDF_add_outline - Добавить закладку для текущей страницы [устарело]
    • PDF_add_pdflink - Добавить аннотацию ссылки на файл для текущей страницы [устарело]
    • PDF_add_table_cell - Добавить ячейку в новую или существующую таблицу
    • PDF_add_textflow - Создание Textflow или добавление текста в существующий Textflow
    • PDF_add_thumbnail - Добавить миниатюру для текущей страницы
    • PDF_add_weblink - Добавить веб-ссылку для текущей страницы [устарело]
    • PDF_arc - Рисует дугу окружности против часовой стрелки
    • PDF_arcn - Рисует дугу окружности по часовой стрелке
    • PDF_attach_file - Добавить вложение для текущей страницы [устарело]
    • PDF_begin_document - Создать новый PDF-файл
    • PDF_begin_font - Start a Type 3 font definition
    • PDF_begin_glyph - Start glyph definition for Type 3 font
    • PDF_begin_item - Open structure element or other content item
    • PDF_begin_layer - Start layer
    • PDF_begin_page - Start new page [deprecated]
    • PDF_begin_page_ext - Start new page
    • PDF_begin_pattern - Запустить определение шаблона
    • PDF_begin_template - Start template definition [deprecated]
    • PDF_begin_template_ext - Start template definition
    • PDF_circle - Рисует окружность
    • PDF_clip - Clip to current path
    • PDF_close - Закрывает pdf-документ [устаревшее]
    • PDF_closepath - Close current path
    • PDF_closepath_fill_stroke - Close, fill and stroke current path
    • PDF_closepath_stroke - Close and stroke path
    • PDF_close_image - Закрывает изображение
    • PDF_close_pdi - Закрыть входной PDF-документ [устарело]
    • PDF_close_pdi_page - Close the page handle
    • PDF_concat - Concatenate a matrix to the CTM
    • PDF_continue_text - Вывести текст на следующей строке
    • PDF_create_3dview - Создает объемное изображение
    • PDF_create_action - Создает действие для объекта или события
    • PDF_create_annotation - Создает прямоугольную аннотацию
    • PDF_create_bookmark - Create bookmark
    • PDF_create_field - Create form field
    • PDF_create_fieldgroup - Create form field group
    • PDF_create_gstate - Create graphics state object
    • PDF_create_pvf - Create PDFlib virtual file
    • PDF_create_textflow - Create textflow object
    • PDF_curveto - Draw Bezier curve
    • PDF_define_layer - Создать определение слоя
    • PDF_delete - Удаляет объект PDFlib
    • PDF_delete_pvf - Delete PDFlib virtual file
    • PDF_delete_table - Delete table object
    • PDF_delete_textflow - Delete textflow object
    • PDF_encoding_set_char - Add glyph name and/or Unicode value
    • PDF_endpath - End current path
    • PDF_end_document - Close PDF file
    • PDF_end_font - Terminate Type 3 font definition
    • PDF_end_glyph - Terminate glyph definition for Type 3 font
    • PDF_end_item - Close structure element or other content item
    • PDF_end_layer - Деактивировать все активные слои
    • PDF_end_page - Finish page
    • PDF_end_page_ext - Finish page
    • PDF_end_pattern - Finish pattern
    • PDF_end_template - Finish template
    • PDF_fill - Fill current path
    • PDF_fill_imageblock - Fill image block with variable data
    • PDF_fill_pdfblock - Fill PDF block with variable data
    • PDF_fill_stroke - Fill and stroke path
    • PDF_fill_textblock - Fill text block with variable data
    • PDF_findfont - Prepare font for later use [deprecated]
    • PDF_fit_image - Place image or template
    • PDF_fit_pdi_page - Place imported PDF page
    • PDF_fit_table - Place table on page
    • PDF_fit_textflow - Format textflow in rectangular area
    • PDF_fit_textline - Place single line of text
    • PDF_get_apiname - Получить имя неудачной функции API
    • PDF_get_buffer - Get PDF output buffer
    • PDF_get_errmsg - Возвращает текст ошибки
    • PDF_get_errnum - Возвращает код ошибки
    • PDF_get_font - Возвращает шрифт [устаревшее]
    • PDF_get_fontname - Возвращает название шрифта [устаревшее]
    • PDF_get_fontsize - Font handling [deprecated]
    • PDF_get_image_height - Возвращает высоту изображения [устаревшее]
    • PDF_get_image_width - Возвращает ширину изображения [устаревшее]
    • PDF_get_majorversion - Get major version number [deprecated]
    • PDF_get_minorversion - Get minor version number [deprecated]
    • PDF_get_parameter - Get string parameter
    • PDF_get_pdi_parameter - Get PDI string parameter [deprecated]
    • PDF_get_pdi_value - Get PDI numerical parameter [deprecated]
    • PDF_get_value - Get numerical parameter
    • PDF_info_font - Query detailed information about a loaded font
    • PDF_info_matchbox - Query matchbox information
    • PDF_info_table - Retrieve table information
    • PDF_info_textflow - Query textflow state
    • PDF_info_textline - Perform textline formatting and query metrics
    • PDF_initgraphics - Сброс графического состояния
    • PDF_lineto - Нарисовать линию
    • PDF_load_3ddata - Load 3D model
    • PDF_load_font - Search and prepare font
    • PDF_load_iccprofile - Search and prepare ICC profile
    • PDF_load_image - Open image file
    • PDF_makespotcolor - Make spot color
    • PDF_moveto - Установить текущую точку
    • PDF_new - Создает объект PDFlib
    • PDF_open_ccitt - Open raw CCITT image [deprecated]
    • PDF_open_file - Создает PDF-файл [устаревшее]
    • PDF_open_gif - Открывает GIF-изображение [устаревшее]
    • PDF_open_image - Use image data [deprecated]
    • PDF_open_image_file - Read image from file [deprecated]
    • PDF_open_jpeg - Открывает JPEG-изображение [устаревшее]
    • PDF_open_memory_image - Open image created with PHP's image functions [not supported]
    • PDF_open_pdi - Open PDF file [deprecated]
    • PDF_open_pdi_document - Prepare a pdi document
    • PDF_open_pdi_page - Prepare a page
    • PDF_open_tiff - Открывает TIFF-изображение [устаревшее]
    • PDF_pcos_get_number - Get value of pCOS path with type number or boolean
    • PDF_pcos_get_stream - Get contents of pCOS path with type stream, fstream, or string
    • PDF_pcos_get_string - Get value of pCOS path with type name, string, or boolean
    • PDF_place_image - Place image on the page [deprecated]
    • PDF_place_pdi_page - Place PDF page [deprecated]
    • PDF_process_pdi - Process imported PDF document
    • PDF_rect - Рисует прямоугольник
    • PDF_restore - Restore graphics state
    • PDF_resume_page - Resume page
    • PDF_rotate - Поворачивает систему координат
    • PDF_save - Save graphics state
    • PDF_scale - Масштабирует систему координат
    • PDF_setcolor - Set fill and stroke color
    • PDF_setdash - Set simple dash pattern
    • PDF_setdashpattern - Set dash pattern
    • PDF_setflat - Set flatness
    • PDF_setfont - Set font
    • PDF_setgray - Set color to gray [deprecated]
    • PDF_setgray_fill - Set fill color to gray [deprecated]
    • PDF_setgray_stroke - Set stroke color to gray [deprecated]
    • PDF_setlinecap - Set linecap parameter
    • PDF_setlinejoin - Set linejoin parameter
    • PDF_setlinewidth - Set line width
    • PDF_setmatrix - Set current transformation matrix
    • PDF_setmiterlimit - Set miter limit
    • PDF_setpolydash - Set complicated dash pattern [deprecated]
    • PDF_setrgbcolor - Set fill and stroke rgb color values [deprecated]
    • PDF_setrgbcolor_fill - Set fill rgb color values [deprecated]
    • PDF_setrgbcolor_stroke - Set stroke rgb color values [deprecated]
    • PDF_set_border_color - Set border color of annotations [deprecated]
    • PDF_set_border_dash - Set border dash style of annotations [deprecated]
    • PDF_set_border_style - Set border style of annotations [deprecated]
    • PDF_set_char_spacing - Set character spacing [deprecated]
    • PDF_set_duration - Set duration between pages [deprecated]
    • PDF_set_gstate - Activate graphics state object
    • PDF_set_horiz_scaling - Set horizontal text scaling [deprecated]
    • PDF_set_info - Fill document info field
    • PDF_set_info_author - Fill the author document info field [deprecated]
    • PDF_set_info_creator - Fill the creator document info field [deprecated]
    • PDF_set_info_keywords - Fill the keywords document info field [deprecated]
    • PDF_set_info_subject - Fill the subject document info field [deprecated]
    • PDF_set_info_title - Fill the title document info field [deprecated]
    • PDF_set_layer_dependency - Define relationships among layers
    • PDF_set_leading - Set distance between text lines [deprecated]
    • PDF_set_parameter - Set string parameter
    • PDF_set_text_matrix - Set text matrix [deprecated]
    • PDF_set_text_pos - Устанавливает позицию текста
    • PDF_set_text_rendering - Determine text rendering [deprecated]
    • PDF_set_text_rise - Set text rise [deprecated]
    • PDF_set_value - Set numerical parameter
    • PDF_set_word_spacing - Set spacing between words [deprecated]
    • PDF_shading - Define blend
    • PDF_shading_pattern - Define shading pattern
    • PDF_shfill - Fill area with shading
    • PDF_show - Output text at current position
    • PDF_show_boxed - Output text in a box [deprecated]
    • PDF_show_xy - Output text at given position
    • PDF_skew - Skew the coordinate system
    • PDF_stringwidth - Return width of text
    • PDF_stroke - Stroke path
    • PDF_suspend_page - Suspend page
    • PDF_translate - Установить начало системы координат
    • PDF_utf8_to_utf16 - Конвертирует строку из UTF-8 в UTF-16
    • PDF_utf16_to_utf8 - Конвертирует строку из UTF-16 в UTF-8
    • PDF_utf32_to_utf16 - Конвертирует строку из UTF-32 в UTF-16
    • PDO::beginTransaction - Инициализация транзакции
    • PDO::commit - Фиксирует транзакцию
    • PDO::cubrid_schema - Получить запрошенную информацию о схеме
    • PDO::errorCode - Возвращает код SQLSTATE результата последней операции с базой данных
    • PDO::errorInfo - Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных
    • PDO::exec - Выполняет SQL-запрос и возвращает количество затронутых строк
    • PDO::getAttribute - Получить атрибут соединения с базой данных
    • PDO::getAvailableDrivers - Возвращает массив доступных драйверов PDO
    • PDO::inTransaction - Проверяет, начата ли транзакция
    • PDO::lastInsertId - Возвращает ID последней вставленной строки или значение последовательности
    • PDO::pgsqlCopyFromArray - Копировать массив PHP в таблицу
    • PDO::pgsqlCopyFromFile - Скопировать данные из файла в таблицу
    • PDO::pgsqlCopyToArray - Выгрузить данные из таблицы в массив PHP
    • PDO::pgsqlCopyToFile - Выгрузка таблицы в файл
    • PDO::pgsqlGetNotify - Получить асинхронное уведомление
    • PDO::pgsqlGetPid - Получает PID сервера
    • PDO::pgsqlLOBCreate - Создать новый большой объект (LOB)
    • PDO::pgsqlLOBOpen - Открывает поток для существующего большого объекта
    • PDO::pgsqlLOBUnlink - Удалить большой объект
    • PDO::prepare - Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
    • PDO::query - Выполняет SQL-запрос и возвращает результирующий набор в виде объекта PDOStatement
    • PDO::quote - Заключает строку в кавычки для использования в запросе
    • PDO::rollBack - Откат транзакции
    • PDO::setAttribute - Установка атрибута
    • PDO::sqliteCreateAggregate - Регистрация агрегирующей пользовательской функции для использования в SQL-запросах
    • PDO::sqliteCreateCollation - Регистрация пользовательской функции сортировки для использования в SQL-запросах
    • PDO::sqliteCreateFunction - Регистрация пользовательской функции для использования в SQL-запросах
    • PDO::__construct - Создает экземпляр PDO, предоставляющий соединение с базой данных
    • PDOStatement::bindColumn - Связывает столбец с переменной PHP
    • PDOStatement::bindParam - Привязывает параметр запроса к переменной
    • PDOStatement::bindValue - Связывает параметр с заданным значением
    • PDOStatement::closeCursor - Закрывает курсор, переводя запрос в состояние готовности к повторному запуску
    • PDOStatement::columnCount - Возвращает количество столбцов в результирующем наборе
    • PDOStatement::debugDumpParams - Вывод информации о подготовленной SQL-команде в целях отладки
    • PDOStatement::errorCode - Получает код SQLSTATE, связанный с последней операцией в объекте PDOStatement
    • PDOStatement::errorInfo - Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement
    • PDOStatement::execute - Запускает подготовленный запрос на выполнение
    • PDOStatement::fetch - Извлечение следующей строки из результирующего набора
    • PDOStatement::fetchAll - Возвращает массив, содержащий все строки результирующего набора
    • PDOStatement::fetchColumn - Возвращает данные одного столбца следующей строки результирующего набора
    • PDOStatement::fetchObject - Извлекает следующую строку и возвращает ее в виде объекта
    • PDOStatement::getAttribute - Получение значения атрибута запроса PDOStatement
    • PDOStatement::getColumnMeta - Возвращает метаданные столбца в результирующей таблице
    • PDOStatement::nextRowset - Переход к следующему набору строк в результате запроса
    • PDOStatement::rowCount - Возвращает количество строк, затронутых последним SQL-запросом
    • PDOStatement::setAttribute - Устанавливает атрибут объекту PDOStatement
    • PDOStatement::setFetchMode - Устанавливает режим выборки по умолчанию для объекта запроса
    • PDO_4D DSN - Соединение с сервером 4D SQL
    • PDO_CUBRID DSN - Соединение с базой данных CUBRID
    • PDO_DBLIB DSN - Соединение с базами данных Microsoft SQL Server и Sybase
    • PDO_FIREBIRD DSN - Соединение с базой Firebird
    • PDO_IBM DSN - Соединение с базой данных IBM
    • PDO_INFORMIX DSN - Соединение с базой данных Informix
    • PDO_MYSQL DSN - Соединение с базой данных MySQL
    • PDO_OCI DSN - Соединение с базой данных Oracle
    • PDO_ODBC DSN - Соединение с базами данных ODBC или DB2
    • PDO_PGSQL DSN - Соединение с базой данных PostgreSQL
    • PDO_SQLITE DSN - Соединение с базой данных SQLite
    • PDO_SQLSRV DSN - Подключение к базам данных MS SQL Server и SQL Azure
    • pfsockopen - Открывает постоянное соединение с интернет-сокетом или доменным сокетом Unix
    • pg_affected_rows - Возвращает количество затронутых запросом записей (кортежей)
    • pg_cancel_query - Остановка асинхронного запроса.
    • pg_client_encoding - Получение кодировки клиента.
    • pg_close - Закрывает соединение с базой данных PostgreSQL
    • pg_connect - Открывает соединение с базой данных PostgreSQL
    • pg_connection_busy - Проверяет, занято ли соединение в данный момент.
    • pg_connection_reset - Сброс подключения (переподключение)
    • pg_connection_status - Определяет состояние подключения
    • pg_connect_poll - Опросить статус попытки асихронного соединения PostgreSQL.
    • pg_consume_input - Читает вводные данные на соединении
    • pg_convert - Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах
    • pg_copy_from - Вставляет записи из массива в таблицу
    • pg_copy_to - Копирует данные из таблицы в массив
    • pg_dbname - Определяет имя базы данных
    • pg_delete - Удаляет записи
    • pg_end_copy - Синхронизирует с бэкендом PostgreSQL
    • pg_escape_bytea - Экранирует спецсимволы в строке для вставки в поле типа bytea
    • pg_escape_identifier - Экранирует идентификатор для вставки в текстовое поле
    • pg_escape_literal - Экранировать литерал при вставке в текстовое поле
    • pg_escape_string - Экранирование спецсимволов в строке запроса
    • pg_execute - Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат
    • pg_fetch_all - Выбирает все данные из результата запроса и помещает их в массив
    • pg_fetch_all_columns - Выбирает все записи из одной колонки результата запроса и помещает их в массив
    • pg_fetch_array - Возвращает строку результата в виде массива
    • pg_fetch_assoc - Выбирает строку результата запроса и помещает данные в ассоциативный массив
    • pg_fetch_object - Выбирает строку результата запроса и возвращает данные в виде объекта
    • pg_fetch_result - Возвращает запись из результата запроса
    • pg_fetch_row - Выбирает строку результата запроса и помещает данные в массив
    • pg_field_is_null - Проверка поля на значение SQL NULL
    • pg_field_name - Возвращает наименование поля
    • pg_field_num - Возвращает порядковый номер именованного поля
    • pg_field_prtlen - Возвращает количество печатаемых символов
    • pg_field_size - Возвращает размер поля
    • pg_field_table - Возвращает наименование или идентификатор таблицы, содержащей заданное поле
    • pg_field_type - Возвращает имя типа заданного поля
    • pg_field_type_oid - Возвращает идентификатор типа заданного поля
    • pg_flush - Сбросить данные исходящего запроса на соединении
    • pg_free_result - Очистка результата запроса и освобождение памяти
    • pg_get_notify - Получение SQL NOTIFY сообщения
    • pg_get_pid - Получает ID процесса сервера БД
    • pg_get_result - Получение результата асинхронного запроса
    • pg_host - Возвращает имя хоста, соответствующего подключению
    • pg_insert - Заносит данные из массива в таблицу базы данных
    • pg_last_error - Получает сообщение о последней произошедшей ошибке на соединении с базой данных
    • pg_last_notice - Возвращает последнее уведомление от сервера PostgreSQL
    • pg_last_oid - Возвращает 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_truncate - Обрезает большой объект
    • pg_lo_unlink - Удаление большого объекта
    • pg_lo_write - Записывает данные в большой объект
    • pg_meta_data - Получение метаданных таблицы
    • pg_num_fields - Возвращает количество полей в выборке
    • pg_num_rows - Возвращает количество строк в выборке
    • pg_options - Получение параметров соединения с сервером баз данных
    • pg_parameter_status - Просмотр текущих значений параметров сервера
    • pg_pconnect - Открывает постоянное соединение с сервером PostgreSQL
    • pg_ping - Проверка соединения с базой данных
    • pg_port - Возвращает номер порта, соответствующий заданному соединению
    • pg_prepare - Посылает запрос на создание параметризованного SQL выражения и ждет его завершения
    • pg_put_line - Передает на PostgreSQL сервер строку с завершающим нулем
    • pg_query - Выполняет запрос
    • pg_query_params - Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса
    • pg_result_error - Возвращает сообщение об ошибке, связанное с запросом результата
    • pg_result_error_field - Возвращает конкретное поле из отчета об ошибках
    • pg_result_seek - Смещает указатель на строку выборки в ресурсе результата запроса
    • pg_result_status - Возвращает состояние результата запроса
    • pg_select - Выбирает записи из базы данных
    • pg_send_execute - Запускает предварительно подготовленный SQL-запрос и передает ему параметры; не ожидает возвращаемого результата
    • pg_send_prepare - Посылает запрос на создание параметризованного SQL-выражения, не дожидаясь его завершения
    • pg_send_query - Отправляет асинхронный запрос
    • pg_send_query_params - Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата
    • pg_set_client_encoding - Устанавливает клиентскую кодировку
    • pg_set_error_verbosity - Определяет объем текста сообщений, возвращаемых функциями pg_last_error и pg_result_error
    • pg_socket - Получить дескриптор только для чтения на сокет, лежащего в основе соединения PostgreSQL
    • pg_trace - Включает трассировку подключения PostgreSQL
    • pg_transaction_status - Возвращает текущее состояние транзакции на сервере
    • pg_tty - Возвращает имя терминала TTY, связанное с соединением
    • pg_unescape_bytea - Убирает экранирование двоичных данных типа bytea
    • pg_untrace - Отключает трассировку соединения с PostgreSQL
    • pg_update - Обновление данных в таблице
    • pg_version - Возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера (если доступно)
    • phar:// - PHP-архив
    • Phar::addEmptyDir - Добавляет в phar-архив пустую директорию
    • Phar::addFile - Добавляет в phar-архив файл из файловой системы
    • Phar::addFromString - Добавляет в phar-архив файл из строки
    • Phar::apiVersion - Возвращает версию API
    • Phar::buildFromDirectory - Создает phar-архив из файлов, расположенных внутри директории
    • Phar::buildFromIterator - Создает phar-архив из итератора
    • Phar::canCompress - Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2
    • Phar::canWrite - Проверяет, поддерживает ли модуль phar сохранение и создание phar-архивов
    • Phar::compress - Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия
    • Phar::compressAllFilesBZIP2 - Сжимает все файлы в текущем Phar-архиве с помощью Bzip2-сжатия
    • Phar::compressAllFilesGZ - Сжимает все файлы в текущем Phar-архиве с помощью Gzip-сжатия
    • Phar::compressFiles - Сжимает все файлы в текущем Phar-архиве
    • Phar::convertToData - Конвертирует phar-архив в неисполняемый tar- или zip-файл
    • Phar::convertToExecutable - Конвертирует phar-архив в другой исполняемый формат файла
    • Phar::copy - Копирует один файл внутри phar-архива в другой новый файл внутри phar-архива
    • Phar::count - Возвращает количество записей (файлов) в Phar-архиве
    • Phar::createDefaultStub - Создать заглушку в формате phar-архива
    • Phar::decompress - Распаковывает весь Phar-архив
    • Phar::decompressFiles - Распаковывает все файлы в текущем Phar-архиве
    • Phar::delete - Удаляет файл внутри phar-архива
    • Phar::delMetadata - Удалить глобальные метаданные в архиве phar
    • Phar::extractTo - Извлечь содержимое phar-архива в директорию
    • Phar::getAlias - Получить псевдоним для Phar
    • Phar::getMetadata - Извлечь метаданные phar-архива
    • Phar::getModified - Определить, изменялся phar-архив
    • Phar::getPath - Получить реальный путь к Phar-архиву на диске
    • Phar::getSignature - Получить MD5/SHA1/SHA256/SHA512/OpenSSL подпись Phar-архива
    • Phar::getStub - Получить загрузчик PHP или загрузчик заглушки Phar-архива
    • Phar::getSupportedCompression - Возвращает массив поддерживаемых алгоритмов сжатия
    • Phar::getSupportedSignatures - Получить массив поддерживаемых алгоритмов подписи архива
    • Phar::getVersion - Получить версию Phar-архива
    • Phar::hasMetadata - Проверить, содержит ли phar-архив глобальные метаданные
    • Phar::interceptFileFuncs - Указывает phar перехватывать fopen, file_get_contents, opendir и все stat-функции
    • Phar::isBuffering - Проверить, будут ли операции с Phar-архивом буферизованы или записаны напрямую на диск
    • Phar::isCompressed - Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)
    • Phar::isFileFormat - Проверить, что phar-архив имеет заданный формат (tar/phar/zip)
    • Phar::isValidPharFilename - Проверяет, что заданное имя файла является корректным именем phar-архива
    • Phar::isWritable - Проверяет, можно ли модифицировать phar-архив
    • Phar::loadPhar - Загрузить phar-архив с псевдонимом
    • Phar::mapPhar - Прочитать текущий запущенный phar-архив и зарегистрировать его манифест
    • Phar::mount - Монтирование внешнего путь или файла к виртуальному пути в phar-архиве
    • Phar::mungServer - Определить список до четырех $_SERVER-переменных, которые должны быть изменены для запуска
    • Phar::offsetExists - Определить, есть ли файл в архиве
    • Phar::offsetGet - Получить объект PharFileInfo для конкретного файла
    • Phar::offsetSet - Изменение содержимого файла
    • Phar::offsetUnset - Удалить файл из phar-архива
    • Phar::running - Получить полный путь на диске, либо полный URL запущенного Phar-архива
    • Phar::setAlias - Установить псевдоним для Phar-архива
    • Phar::setDefaultStub - Установить загрузчик PHP или начальную заглушку Phar-архива в загрузчик по умолчанию
    • Phar::setMetadata - Установить метаданные phar-архива
    • Phar::setSignatureAlgorithm - Установить алгоритм подписания phar-архива и применение его
    • Phar::setStub - Установить загрузчик или загрузочную заглушку в Phar-архив
    • Phar::startBuffering - Запускает буферизацию операций записи, отключая запись изменений Phar-архива на диск
    • Phar::stopBuffering - Останавливает буферизацию и записывает все изменения на диск
    • Phar::uncompressAllFiles - Распаковывает все файлы в текущем Phar-архиве
    • Phar::unlinkArchive - Полностью удалить архив из памяти и с диска
    • Phar::webPhar - mapPhar для phar-архивов на базе веб. Контроллер фронтенда для веб-приложений
    • Phar::__construct - Создает объект Phar-архива
    • PharData::addEmptyDir - Добавить пустую директорию в tar/zip-архив
    • PharData::addFile - Добавить существующие файлы к tar/zip-архиву
    • PharData::addFromString - Создать файл с заданным содержимым в tar/zip-архиве
    • PharData::buildFromDirectory - Создает tar/zip-архив из файлов в директории
    • PharData::buildFromIterator - Создание tar/zip-архива с помощью итератора
    • PharData::compress - Сжимает весь архив tar/zip, используя сжатие Gzip или Bzip2
    • PharData::compressFiles - Сжать все файлы в текущем tar/zip-архиве
    • PharData::convertToData - Конвертация phar-архива в незапускаемый tar/zip-архив
    • PharData::convertToExecutable - Конвертация tar/zip-архива с данными в запускаемый phar-архив
    • PharData::copy - Скопировать файл из tar/zip-архива в новый файл внутри него же
    • PharData::decompress - Распаковать весь Phar-архив
    • PharData::decompressFiles - Распаковать все файлы в текущем zip-архиве
    • PharData::delete - Удалить файл из tar/zip-архива
    • PharData::delMetadata - Удалить глобальные метаданные для zip-архива
    • PharData::extractTo - Извлечь содержимое tar/zip-архива в директорию
    • PharData::isWritable - Проверить, можно ли модифицировать tar/zip-архив
    • PharData::offsetSet - Изменение содержимого файла
    • PharData::offsetUnset - Удалить файл из tar/zip-архива
    • PharData::setAlias - Функция заглушка (Phar::setAlias нельзя использовать для PharData)
    • PharData::setDefaultStub - Функция заглушка (Phar::setDefaultStub нельзя использовать для PharData)
    • PharData::setStub - Функция заглушка (Phar::setStub нельзя использовать для PharData)
    • PharData::__construct - Конструктор объекта PharData
    • PharFileInfo::chmod - Установка прав доступа
    • PharFileInfo::compress - Сжать текущий файл с помощью zlib или bzip2
    • PharFileInfo::decompress - Расжимает текущий файл
    • PharFileInfo::delMetadata - Удалить метаданные файла
    • PharFileInfo::getCompressedSize - Получить реальный занимаемый файлом размер на диске с учетом сжатия
    • PharFileInfo::getContent - Получить полное содержимое файла записи
    • PharFileInfo::getCRC32 - Получить контрольную сумму CRC32
    • PharFileInfo::getMetadata - Получить метаданные, связанные с файлом
    • PharFileInfo::getPharFlags - Получить флаги файла в phar-архиве
    • PharFileInfo::hasMetadata - Проверить, есть ли у файла метаданные
    • PharFileInfo::isCompressed - Проверить, сжат ли файл
    • PharFileInfo::isCompressedBZIP2 - Определить, сжат ли файл с помощью bzip2
    • PharFileInfo::isCompressedGZ - Определить, сжат ли файл с помощью gz
    • PharFileInfo::isCRCChecked - Определить, прошел ли файл проверку CRC
    • PharFileInfo::setCompressedBZIP2 - Сжатие файла в phar-архиве с использованием Bzip2
    • PharFileInfo::setCompressedGZ - Сжатие файла в phar-архиве с использованием gz
    • PharFileInfo::setMetadata - Установка метаданных для конкретного файла
    • PharFileInfo::setUncompressed - Расжать файл внутри phar-архива, если он сжат
    • PharFileInfo::__construct - Конструктор объекта PharFileInfo
    • phdfs::connect - Описание
    • phdfs::copy - Описание
    • phdfs::create_directory - Описание
    • phdfs::delete - Описание
    • phdfs::disconnect - Описание
    • phdfs::exists - Описание
    • phdfs::file_info - Описание
    • phdfs::list_directory - Описание
    • phdfs::read - Описание
    • phdfs::rename - Описание
    • phdfs::tell - Описание
    • phdfs::write - Описание
    • phdfs::__construct - Описание
    • phdfs::__destruct - Описание
    • php:// - Доступ к различным потокам ввода-вывода
    • phpcredits - Выводит список разработчиков PHP
    • phpdbg_break_file - Добавить точку прерывания на конкретную строку файла
    • phpdbg_break_function - Добавить точку прерывания на вызов функции
    • phpdbg_break_method - Добавить точку прерывания на вызов метода класса
    • phpdbg_break_next - Добавить точку прерывания на следующий опкод
    • phpdbg_clear - Убрать все точки прерывания
    • phpdbg_color - Задать цвет для элемента
    • phpdbg_end_oplog - Описание
    • phpdbg_exec - Попытаться задать контекст исполнения
    • phpdbg_get_executable - Описание
    • phpdbg_prompt - Установить приглашение командной строки
    • phpdbg_start_oplog - Описание
    • phpinfo - Выводит информацию о текущей конфигурации PHP
    • phpversion - Получает текущую версию PHP
    • php_check_syntax - Проверить PHP-синтаксис (и запустить) указанного файла
    • php_ini_loaded_file - Получить путь к загруженному файлу php.ini
    • php_ini_scanned_files - Возвращает список .ini-файлов, найденных в дополнительной ini-директории
    • php_logo_guid - Получение guid логотипа
    • php_sapi_name - Возвращает тип интерфейса между веб-сервером и PHP
    • php_strip_whitespace - Возвращает исходный код без комментариев и пробелов
    • php_uname - Возвращает информацию об операционной системе, на которой запущен PHP
    • php_user_filter::filter - Вызывается, как только применяется фильтр
    • php_user_filter::onClose - Вызывается при закрытии фильтра
    • php_user_filter::onCreate - Вызывается при создании объекта фильтра
    • pht\AtomicInteger::dec - Decrements the atomic integer's value by one
    • pht\AtomicInteger::get - Gets the atomic integer's value
    • pht\AtomicInteger::inc - Increments the atomic integer's value by one
    • pht\AtomicInteger::lock - Acquires the atomic integer's mutex lock
    • pht\AtomicInteger::set - Sets the atomic integer's value
    • pht\AtomicInteger::unlock - Releases the atomic integer's mutex lock
    • pht\AtomicInteger::__construct - AtomicInteger creation
    • pht\HashTable::lock - Acquires the hash table's mutex lock
    • pht\HashTable::size - Gets the size of the hash table
    • pht\HashTable::unlock - Releases the hash table's mutex lock
    • pht\Queue::front - Returns the first value from a queue
    • pht\Queue::lock - Acquires the queue's mutex lock
    • pht\Queue::pop - Pops a value off of the front of a queue
    • pht\Queue::push - Pushes a value to the end of a queue
    • pht\Queue::size - Gets the size of the queue
    • pht\Queue::unlock - Releases the queue's mutex lock
    • pht\Runnable::run - The entry point of a threaded class
    • pht\Thread::addClassTask - Class threading
    • pht\Thread::addFileTask - File threading
    • pht\Thread::addFunctionTask - Function threading
    • pht\Thread::join - Joins a thread
    • pht\Thread::start - Starts the new thread
    • pht\Thread::taskCount - Gets a thread's task count
    • pht\Threaded::lock - Acquires the mutex lock
    • pht\Threaded::unlock - Releases the mutex lock
    • pht\Vector::deleteAt - Deletes a value in the vector
    • pht\Vector::insertAt - Inserts a value into the vector
    • pht\Vector::lock - Acquires the vector's mutex lock
    • pht\Vector::pop - Pops a value to the vector
    • pht\Vector::push - Pushes a value to the vector
    • pht\Vector::resize - Resizes a vector
    • pht\Vector::shift - Shifts a value from the vector
    • pht\Vector::size - Gets the size of the vector
    • pht\Vector::unlock - Releases the vector's mutex lock
    • pht\Vector::unshift - Unshifts a value to the vector front
    • pht\Vector::updateAt - Updates a value in the vector
    • pht\Vector::__construct - Vector creation
    • pi - Возвращает число Пи
    • png2wbmp - Преобразование PNG файла в WBMP
    • Pool::collect - Collect references to completed tasks
    • Pool::resize - Resize the Pool
    • Pool::shutdown - Shutdown all workers
    • Pool::submit - Submits an object for execution
    • Pool::submitTo - Submits a task to a specific worker for execution
    • Pool::__construct - Creates a new Pool of Workers
    • popen - Открывает файловый указатель процесса
    • pos - Псевдоним current
    • posix_access - Определяет доступность файла
    • posix_ctermid - Возвращает путь управляющего терминала
    • posix_errno - Псевдоним posix_get_last_error
    • posix_getcwd - Возвращает путь текущей директории
    • posix_getegid - Возвращает эффективный идентификатор группы текущего процесса EGID
    • posix_geteuid - Возвращает эффективный идентификатор пользователя текущего процесса EUID
    • posix_getgid - Возвращает действительный ID группы текущего процесса GID
    • posix_getgrgid - Возвращает информацию о группе по её ID
    • posix_getgrnam - Возвращает информацию о группе, используя её имя
    • posix_getgroups - Возвращает список групп для текущего процесса
    • posix_getlogin - Возвращает логин владельца процесса
    • posix_getpgid - Возвращает ID группы текущего процесса для менеджера задач
    • posix_getpgrp - Возвращает идентификатор группы текущего процесса
    • posix_getpid - Возвращает идентификатор текущего процесса
    • posix_getppid - Возвращает идентификатор родительского процесса
    • posix_getpwnam - Возвращает информацию о пользователе по его имени
    • posix_getpwuid - Возвращает информацию о пользователе, используя его ID
    • posix_getrlimit - Возвращает информацию об ограничениях системных ресурсов
    • posix_getsid - Возвращает текущий SID процесса
    • posix_getuid - Возвращает фактический идентификатор пользователя текущего процесса UID
    • posix_get_last_error - Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей
    • posix_initgroups - Определяет уровень доступа для группы
    • posix_isatty - Определяет является ли файловый дескриптор интерактивным терминалом
    • posix_kill - Отправляет сигнал соответствующему процессу
    • posix_mkfifo - Создает специальный fifo файл (именованный канал- pipe)
    • posix_mknod - Создает специальный или обычный файл (POSIX.1)
    • posix_setegid - Устанавливает эффективный идентификатор группы для текущего процесса EGID
    • posix_seteuid - Устанавливает эффективный идентификатор пользователя для текущего процесса EUID
    • posix_setgid - Устанавливает идентификатор группы для текущего процесса GID
    • posix_setpgid - Устанавливает идентификатор группы процесса для менеджера задач
    • posix_setrlimit - Устанавливает пределы системных ресурсов
    • posix_setsid - Делает текущий процесс лидером сессии
    • posix_setuid - Устанавливает UID текущего процесса
    • posix_strerror - Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки
    • posix_times - Возвращает информацию об использовании процессорного времени
    • posix_ttyname - Определяет имя терминального устройства
    • posix_uname - Возвращает информацию о системе
    • pow - Возведение в степень
    • preg_filter - Производит поиск и замену по регулярному выражению
    • preg_grep - Возвращает массив вхождений, которые соответствуют шаблону
    • preg_last_error - Возвращает код ошибки выполнения последнего регулярного выражения PCRE
    • preg_match - Выполняет проверку на соответствие регулярному выражению
    • preg_match_all - Выполняет глобальный поиск шаблона в строке
    • preg_quote - Экранирует символы в регулярных выражениях
    • preg_replace - Выполняет поиск и замену по регулярному выражению
    • preg_replace_callback - Выполняет поиск по регулярному выражению и замену с использованием callback-функции
    • preg_replace_callback_array - Выполняет поиск и замену по регулярному выражению с использованием функций обратного вызова
    • preg_split - Разбивает строку по регулярному выражению
    • prev - Передвигает внутренний указатель массива на одну позицию назад
    • print - Выводит строку
    • printf - Выводит отформатированную строку
    • print_r - Выводит удобочитаемую информацию о переменной
    • proc_close - Завершить процесс, открытый proc_open и вернуть код возврата этого процесса
    • proc_get_status - Получить информацию о процессе, открытом proc_open
    • proc_nice - Изменить приоритет текущего процесса
    • proc_open - Выполнить команду и открыть указатель на файл для ввода/вывода
    • proc_terminate - Уничтожить процесс, открытый при помощи функции proc_open
    • property_exists - Проверяет, содержит ли объект или класс указанный атрибут
    • 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 - Игнорирует слова длиной менее N символов
    • 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 - Предлагает варианты исправления слова
    • ps_add_bookmark - Добавляет закладку на текущую страницу
    • 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 - Closes a PostScript document
    • ps_closepath - Closes path
    • ps_closepath_stroke - Closes and strokes path
    • ps_close_image - Closes image and frees memory
    • 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 - Fills the current path
    • ps_fill_stroke - Fills and strokes 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_include_file - Reads an external file with raw PostScript code
    • 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 - Reads an image for later placement
    • ps_open_image_file - Opens image from file
    • ps_open_memory_image - Takes an GD image and returns an image for placement in a PS document
    • 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_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_setoverprintmode - Sets overprint mode
    • ps_setpolydash - Sets appearance of a dashed line
    • 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_shading - Creates a shading for later use
    • ps_shading_pattern - Creates a pattern based on a shading
    • ps_shfill - Fills an area with a shading
    • ps_show - Output text
    • ps_show2 - Output a text at current position
    • ps_show_boxed - Output text in a box
    • ps_show_xy - Output text at given position
    • ps_show_xy2 - Output text at position
    • ps_stringwidth - Gets width of a string
    • ps_string_geometry - Gets geometry of a string
    • ps_stroke - Draws the current path
    • ps_symbol - Output a glyph
    • ps_symbol_name - Gets name of a glyph
    • ps_symbol_width - Gets width of a glyph
    • ps_translate - Sets translation
    • putenv - Устанавливает значение переменной среды
    • px_close - Закрывает базу данных paradox
    • px_create_fp - Создать новую базу данных paradox
    • px_date2string - Конвертирует дату в строку
    • px_delete - Удаляет ресурс базы данных paradox
    • px_delete_record - Удаляет запись из базы данных paradox
    • px_get_field - Возвращает спецификацию одного поля
    • px_get_info - Возвращает много информации о файле paradox
    • px_get_parameter - Получает параметр
    • px_get_record - Возвращает запись базы данных paradox
    • px_get_schema - Возвращает схему базы данных
    • px_get_value - Получает значение
    • px_insert_record - Вставить запись в базу данных paradox
    • px_new - Создать новый объект paradox
    • px_numfields - Возврашает количество полей в базе данных
    • px_numrecords - Возвращает количество записей в базе данных
    • px_open_fp - Открыть базу данных paradox
    • px_put_record - Сохраняет запись в базе данных paradox
    • px_retrieve_record - Возвращает запись базы данных paradox
    • px_set_blob_file - Sets the file where blobs are read from
    • px_set_parameter - Устанавливает параметр
    • px_set_tablename - Устанавливает имя таблицы (устарело)
    • px_set_targetencoding - Sets the encoding for character fields (deprecated)
    • px_set_value - Устанавливает значение
    • px_timestamp2string - Конвертирует отметку времени в строку
    • px_update_record - Обновляет запись в базе данных paradox
  • q
    • QuickHashIntHash::add - This method adds a new entry to the hash
    • QuickHashIntHash::delete - This method deletes am entry from the hash
    • QuickHashIntHash::exists - This method checks whether a key is part of the hash
    • QuickHashIntHash::get - This method retrieves a value from the hash by its key
    • QuickHashIntHash::getSize - Returns the number of elements in the hash
    • QuickHashIntHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashIntHash::loadFromString - This factory method creates a hash from a string
    • QuickHashIntHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashIntHash::saveToString - This method returns a serialized version of the hash
    • QuickHashIntHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntHash::update - This method updates an entry in the hash with a new value
    • QuickHashIntHash::__construct - Creates a new QuickHashIntHash object
    • QuickHashIntSet::add - This method adds a new entry to the set
    • QuickHashIntSet::delete - This method deletes an entry from the set
    • QuickHashIntSet::exists - This method checks whether a key is part of the set
    • QuickHashIntSet::getSize - Returns the number of elements in the set
    • QuickHashIntSet::loadFromFile - This factory method creates a set from a file
    • QuickHashIntSet::loadFromString - This factory method creates a set from a string
    • QuickHashIntSet::saveToFile - This method stores an in-memory set to disk
    • QuickHashIntSet::saveToString - This method returns a serialized version of the set
    • QuickHashIntSet::__construct - Creates a new QuickHashIntSet object
    • QuickHashIntStringHash::add - This method adds a new entry to the hash
    • QuickHashIntStringHash::delete - This method deletes am entry from the hash
    • QuickHashIntStringHash::exists - This method checks whether a key is part of the hash
    • QuickHashIntStringHash::get - This method retrieves a value from the hash by its key
    • QuickHashIntStringHash::getSize - Returns the number of elements in the hash
    • QuickHashIntStringHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashIntStringHash::loadFromString - This factory method creates a hash from a string
    • QuickHashIntStringHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashIntStringHash::saveToString - This method returns a serialized version of the hash
    • QuickHashIntStringHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntStringHash::update - This method updates an entry in the hash with a new value
    • QuickHashIntStringHash::__construct - Creates a new QuickHashIntStringHash object
    • QuickHashStringIntHash::add - This method adds a new entry to the hash
    • QuickHashStringIntHash::delete - This method deletes am entry from the hash
    • QuickHashStringIntHash::exists - This method checks whether a key is part of the hash
    • QuickHashStringIntHash::get - This method retrieves a value from the hash by its key
    • QuickHashStringIntHash::getSize - Returns the number of elements in the hash
    • QuickHashStringIntHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashStringIntHash::loadFromString - This factory method creates a hash from a string
    • QuickHashStringIntHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashStringIntHash::saveToString - This method returns a serialized version of the hash
    • QuickHashStringIntHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashStringIntHash::update - This method updates an entry in the hash with a new value
    • QuickHashStringIntHash::__construct - Creates a new QuickHashStringIntHash object
    • quoted_printable_decode - Преобразует строку, закодированную методом quoted-printable в 8-битную строку
    • quoted_printable_encode - Преобразует 8-битную строку с помощью метода quoted-printable
    • quotemeta - Экранирует специальные символы
  • r
    • rad2deg - Преобразует значение из радианов в градусы
    • 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 - Demangles data
    • radius_demangle_mppe_key - Derives mppe-keys from mangled data
    • radius_get_attr - Extracts an attribute
    • radius_get_tagged_attr_data - Extracts the data from a tagged attribute
    • radius_get_tagged_attr_tag - Extracts the tag from a tagged 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_salt_encrypt_attr - Salt-encrypts a value
    • radius_send_request - Sends the request and waits for a reply
    • radius_server_secret - Returns the shared secret
    • radius_strerror - Returns an error message
    • rand - Генерирует случайное число
    • random_bytes - Генерирует криптографически безопасные псевдослучайные байты
    • random_int - Генерирует криптографически безопасные псевдослучайные целые числа
    • range - Создает массив, содержащий диапазон элементов
    • rar:// - RAR
    • RarArchive::close - Закрывает RAR архив и освобождает все ресурсы
    • RarArchive::getComment - Получить текст комментария из архива RAR
    • RarArchive::getEntries - Возвращает полный список элементов из RAR архива
    • RarArchive::getEntry - Возвращает объект элемента из RAR архива
    • RarArchive::isBroken - Проверяет, не сломан ли архив (не завершен)
    • RarArchive::isSolid - Проверить, является ли архив сплошным
    • RarArchive::open - Открывает архив RAR
    • RarArchive::setAllowBroken - Открывать ли поврежденные архивы
    • RarArchive::__toString - Получить текстовое представление
    • RarEntry::extract - Извлекает элемент из архива
    • RarEntry::getAttr - Возвращает атрибуты элемента архива
    • RarEntry::getCrc - Возвращает CRC элемента архива
    • RarEntry::getFileTime - Возвращает последнее время изменения элемента
    • RarEntry::getHostOs - Возвращает оригинальную ОС элемента
    • RarEntry::getMethod - Возвращает метод компрессии элемента
    • RarEntry::getName - Возвращает имя элемента
    • RarEntry::getPackedSize - Возвращает размер сжатого элемента
    • RarEntry::getStream - Получить обработчик для записи
    • RarEntry::getUnpackedSize - Возвращает размер элемента в распакованном состоянии
    • RarEntry::getVersion - Возвращает минимальную версию программы RAR, необходимую для распаковки элемента
    • RarEntry::isDirectory - Проверяет, является ли запись директорией
    • RarEntry::isEncrypted - Проверяет, зашифрована ли запись
    • RarEntry::__toString - Получить текстовое представление записи
    • RarException::isUsingExceptions - Проверить, будут ли функции возвращать ошибки или выбрасывать исключения
    • RarException::setUsingExceptions - Включить или отключить генерацию исключений вместо возвращения ошибок
    • rar_wrapper_cache_stats - Кеш доступов и отказов обертки URL
    • rawurldecode - Декодирование URL-кодированной строки
    • rawurlencode - URL-кодирование строки согласно RFC 3986
    • readdir - Получает элемент каталога по его дескриптору
    • readfile - Выводит файл
    • readgzfile - Выводит содержимое gz-файла
    • readline - Читает строку
    • readline_add_history - Добавляет строку в историю
    • readline_callback_handler_install - Инициализирует callback-интерфейс readline и терминал, печатает строку приглашения и немедленно возвращает управление
    • readline_callback_handler_remove - Удаляет ранее зарегистрированную callback-функцию и восстанавливает терминал
    • readline_callback_read_char - Читает символ и информирует callback-функцию readline, что получена строка
    • readline_clear_history - Очищает историю команд
    • readline_completion_function - Зарегистрировать функцию автодополнения
    • readline_info - Устанавливает/читает различные внутренние переменные readline
    • readline_list_history - Список истории команд
    • readline_on_new_line - Информирует readline, что курсор переместился на новую строку
    • readline_read_history - Прочитать историю команд из файла
    • readline_redisplay - Перерисовать экран
    • readline_write_history - Записать историю команд в файл
    • readlink - Возвращает файл, на который указывает символическая ссылка
    • read_exif_data - Псевдоним exif_read_data
    • realpath - Возвращает канонизированный абсолютный путь к файлу
    • realpath_cache_get - Получает записи из кеша realpath
    • realpath_cache_size - Получает размер кеша realpath
    • recode - Псевдоним recode_string
    • recode_file - Перекодирует из одного файла в другой в соответствии с заданными параметрами
    • recode_string - Перекодирует строку в соответствии с заданными параметрами
    • RecursiveArrayIterator::getChildren - Возвращает итератор для текущего элемента, если этот элемент является массивом (array) или объектом (object)
    • RecursiveArrayIterator::hasChildren - Определяет, является ли текущий элемент массивом или объектом
    • RecursiveCachingIterator::getChildren - Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveCachingIterator
    • RecursiveCachingIterator::hasChildren - Проверяет, имеет ли текущий элемент внутреннего итератора дочерние элементы
    • RecursiveCachingIterator::__construct - Конструктор
    • RecursiveCallbackFilterIterator::getChildren - Возвращает дочерние элементы итератора, хранящегося внутри RecursiveCallbackFilterIterator
    • RecursiveCallbackFilterIterator::hasChildren - Проверяет, содержит ли текущий элемент внутреннего итератора дочерние элементы
    • RecursiveCallbackFilterIterator::__construct - Создает объект класса RecursiveCallbackFilterIterator на основе объекта RecursiveIterator
    • RecursiveDirectoryIterator::getChildren - Если текущий элемент является директорией, метод возвращает для нее итератор
    • RecursiveDirectoryIterator::getSubPath - Возвращает путь к поддиректории
    • RecursiveDirectoryIterator::getSubPathname - Возвращает путь к поддиректории и имя файла
    • RecursiveDirectoryIterator::hasChildren - Определяет, является ли текущий элемент директорией
    • RecursiveDirectoryIterator::key - Возвращает путь и имя файла текущего элемента
    • RecursiveDirectoryIterator::next - Переход к следующему элементу
    • RecursiveDirectoryIterator::rewind - Переводит итератор на начало директории
    • RecursiveDirectoryIterator::__construct - Конструктор класса RecursiveDirectoryIterator
    • RecursiveFilterIterator::getChildren - Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator
    • RecursiveFilterIterator::hasChildren - Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы
    • RecursiveFilterIterator::__construct - Создает объект RecursiveFilterIterator на основе объекта-итератора RecursiveIterator
    • RecursiveIterator::getChildren - Возвращает итератор для текущего элемента
    • RecursiveIterator::hasChildren - Определяет, можно ли для текущего элемента создать итератор
    • RecursiveIteratorIterator::beginChildren - Переход к первому дочернему элементу
    • RecursiveIteratorIterator::beginIteration - Начало итерации
    • RecursiveIteratorIterator::callGetChildren - Получение дочерних элементов
    • RecursiveIteratorIterator::callHasChildren - Проверка, есть ли у элемента дочерние элементы
    • RecursiveIteratorIterator::current - Получает значение текущего элемента
    • RecursiveIteratorIterator::endChildren - Окончание дочерних элементов
    • RecursiveIteratorIterator::endIteration - Окончание итерации
    • RecursiveIteratorIterator::getDepth - Определяет текущую глубину рекурсии
    • RecursiveIteratorIterator::getInnerIterator - Получение ссылки на внутренний итератор
    • RecursiveIteratorIterator::getMaxDepth - Получение максимальной глубины рекурсии
    • RecursiveIteratorIterator::getSubIterator - Получение активного вложенного итератора
    • RecursiveIteratorIterator::key - Получение ключа текущего элемента
    • RecursiveIteratorIterator::next - Перемещение итератора к следующему элементу
    • RecursiveIteratorIterator::nextElement - Следующий элемент
    • RecursiveIteratorIterator::rewind - Перемещает итератор на первый элемент самого верхнего уровня вложенности внутреннего итератора
    • RecursiveIteratorIterator::setMaxDepth - Установка максимальной глубины вложенности
    • RecursiveIteratorIterator::valid - Проверка допустимости текущей позиции
    • RecursiveIteratorIterator::__construct - Конструктор класса RecursiveIteratorIterator
    • RecursiveRegexIterator::getChildren - Возвращает итератор для текущего элемента
    • RecursiveRegexIterator::hasChildren - Определяет, возможна ли навигация по содержимому текущего элемента
    • RecursiveRegexIterator::__construct - Конструктор класса RecursiveRegexIterator
    • RecursiveTreeIterator::beginChildren - Начало навигации по потомкам элемента
    • RecursiveTreeIterator::beginIteration - Начало навигации
    • RecursiveTreeIterator::callGetChildren - Получение дочерних элементов
    • RecursiveTreeIterator::callHasChildren - Проверка, есть ли у текущего элемента потомки
    • RecursiveTreeIterator::current - Получение текущего элемента
    • RecursiveTreeIterator::endChildren - Завершение навигации по потомкам элемента
    • RecursiveTreeIterator::endIteration - Завершение навигации
    • RecursiveTreeIterator::getEntry - Получение поддерева, корнем которого является текущий элемент
    • RecursiveTreeIterator::getPostfix - Получение суффикса
    • RecursiveTreeIterator::getPrefix - Получение префикса
    • RecursiveTreeIterator::key - Получение ключа текущего элемента
    • RecursiveTreeIterator::next - Переход к следующему элементу
    • RecursiveTreeIterator::nextElement - Следующий элемент
    • RecursiveTreeIterator::rewind - Перевод итератора в начало
    • RecursiveTreeIterator::setPostfix - Установка постфикса
    • RecursiveTreeIterator::setPrefixPart - Задание части префикса
    • RecursiveTreeIterator::valid - Проверка допустимости элемента
    • RecursiveTreeIterator::__construct - Конструктор класса RecursiveTreeIterator
    • Reflection::export - Экспортирует Reflection
    • Reflection::getModifierNames - Получение имен модификаторов
    • ReflectionClass::export - Экспортирует класс
    • ReflectionClass::getConstant - Возвращает определенную константу
    • ReflectionClass::getConstants - Возвращает константы
    • ReflectionClass::getConstructor - Возвращает конструктор класса
    • ReflectionClass::getDefaultProperties - Возвращает свойства по умолчанию
    • ReflectionClass::getDocComment - Возвращает doc-блоки комментариев
    • ReflectionClass::getEndLine - Возвращает номер последней строки
    • ReflectionClass::getExtension - Возвращает объект класса ReflectionExtension для расширения, определяющего класс
    • ReflectionClass::getExtensionName - Возвращает имя расширения, определяющее класс
    • ReflectionClass::getFileName - Возвращает имя файла, в котором определен класс
    • ReflectionClass::getInterfaceNames - Возвращает имена интерфейсов
    • ReflectionClass::getInterfaces - Возвращает интерфейсы
    • ReflectionClass::getMethod - Возвращает экземпляр ReflectionMethod для метода класса
    • ReflectionClass::getMethods - Возвращает список методов в виде массива
    • ReflectionClass::getModifiers - Возвращает информацию о модификаторах класса
    • ReflectionClass::getName - Возвращает имя класса
    • ReflectionClass::getNamespaceName - Возвращает название пространства имён
    • ReflectionClass::getParentClass - Возвращает родительский класс
    • ReflectionClass::getProperties - Возвращает свойства
    • ReflectionClass::getProperty - Возвращает экземпляр ReflectionProperty для свойства класса
    • ReflectionClass::getReflectionConstant - Получает ReflectionClassConstant для константы класса
    • ReflectionClass::getReflectionConstants - Получает константы класса
    • ReflectionClass::getShortName - Возвращает короткое имя
    • ReflectionClass::getStartLine - Возвращает номер начальной строки
    • ReflectionClass::getStaticProperties - Возвращает статические свойства
    • ReflectionClass::getStaticPropertyValue - Возвращает значение статического свойства
    • ReflectionClass::getTraitAliases - Возвращает массив псевдонимов трейтов
    • ReflectionClass::getTraitNames - Возвращает массив имён трейтов, используемых в этом классе
    • ReflectionClass::getTraits - Возвращает массив трейтов, используемых в этом классе
    • ReflectionClass::hasConstant - Проверяет, определена ли константа
    • ReflectionClass::hasMethod - Проверяет, задан ли метод
    • ReflectionClass::hasProperty - Проверяет, определено ли свойство
    • ReflectionClass::implementsInterface - Проверяет, реализуется ли интерфейс
    • ReflectionClass::inNamespace - Проверяет, определён ли класс в пространстве имён
    • ReflectionClass::isAbstract - Проверяет, является ли класс абстрактным
    • ReflectionClass::isAnonymous - Проверяет, является класс анонимным
    • ReflectionClass::isCloneable - Проверяет, можно ли клонировать этот класс
    • ReflectionClass::isFinal - Проверяет, является ли класс окончательным (final)
    • ReflectionClass::isInstance - Проверяет, принадлежит ли объект классу
    • ReflectionClass::isInstantiable - Проверяет, можно ли создать экземпляр класса
    • ReflectionClass::isInterface - Проверяет, является ли класс интерфейсом
    • ReflectionClass::isInternal - Проверяет, является ли класс встроенным в расширение или в ядро
    • ReflectionClass::isIterable - Проверить, является ли класс итерируемым
    • ReflectionClass::isIterateable - Псевдоним ReflectionClass::isIterable
    • ReflectionClass::isSubclassOf - Проверяет, является ли класс подклассом
    • ReflectionClass::isTrait - Проверяет, является ли это трейтом
    • ReflectionClass::isUserDefined - Проверяет, является ли класс пользовательским
    • ReflectionClass::newInstance - Создаёт экземпляр класса с переданными аргументами
    • ReflectionClass::newInstanceArgs - Создаёт экземпляр класса с переданными параметрами
    • ReflectionClass::newInstanceWithoutConstructor - Создаёт новый экземпляр класса без вызова конструктора
    • ReflectionClass::setStaticPropertyValue - Устанавливает значение статического свойства
    • ReflectionClass::__construct - Создаёт объект класса ReflectionClass
    • ReflectionClass::__toString - Возвращает строковое представление объекта класса ReflectionClass
    • ReflectionClassConstant::export - Экспорт
    • ReflectionClassConstant::getDeclaringClass - Получает объявляющий класс
    • ReflectionClassConstant::getDocComment - Получает doc-комментарии
    • ReflectionClassConstant::getModifiers - Получает модификаторы константы класса
    • ReflectionClassConstant::getName - Получить имя константы
    • ReflectionClassConstant::getValue - Получает значение
    • ReflectionClassConstant::isPrivate - Проверяет, является ли константа закрытой
    • ReflectionClassConstant::isProtected - Проверяет, является ли константа защищенной
    • ReflectionClassConstant::isPublic - Проверяет, является ли константа общедоступной
    • ReflectionClassConstant::__construct - Создает ReflectionClassConstant
    • ReflectionClassConstant::__toString - Возвращает строковое представление объекта ReflectionClassConstant
    • ReflectionExtension::export - Экспортирует модуль
    • ReflectionExtension::getClasses - Возвращает классы
    • ReflectionExtension::getClassNames - Получение имен классов
    • ReflectionExtension::getConstants - Получение констант
    • ReflectionExtension::getDependencies - Получение зависимостей
    • ReflectionExtension::getFunctions - Получение функций расширения
    • ReflectionExtension::getINIEntries - Получение ini-настроек расширения
    • ReflectionExtension::getName - Получение имени расширения
    • ReflectionExtension::getVersion - Получение версии расширения
    • ReflectionExtension::info - Вывод информации о расширении
    • ReflectionExtension::isPersistent - Определяет, является ли расширение постоянным
    • ReflectionExtension::isTemporary - Определяет, является ли расширение временным
    • ReflectionExtension::__clone - Клонирует объект
    • ReflectionExtension::__construct - Создаёт объект класса ReflectionExtension
    • ReflectionExtension::__toString - Преобразование в строку
    • ReflectionFunction::export - Экспортирует функции
    • ReflectionFunction::getClosure - Возвращает динамически созданное замыкание для функции
    • ReflectionFunction::invoke - Вызывает функцию
    • ReflectionFunction::invokeArgs - Вызов функции с передачей аргументов
    • ReflectionFunction::isDisabled - Проверяет, что функция отключена
    • ReflectionFunction::__construct - Конструктор класса ReflectionFunction
    • ReflectionFunction::__toString - Представление в виде строки
    • ReflectionFunctionAbstract::getClosureScopeClass - Возвращает класс в рамках которого было объявлено замыкание
    • ReflectionFunctionAbstract::getClosureThis - Возвращает указатель, привязанный к замыканию
    • ReflectionFunctionAbstract::getDocComment - Получает doc-комментарий
    • ReflectionFunctionAbstract::getEndLine - Получает номер строки завершения описания функции
    • ReflectionFunctionAbstract::getExtension - Получает информацию о расширении
    • ReflectionFunctionAbstract::getExtensionName - Получение имени расширения
    • ReflectionFunctionAbstract::getFileName - Получает имя файла
    • ReflectionFunctionAbstract::getName - Получает имя функции
    • ReflectionFunctionAbstract::getNamespaceName - Получение имени пространства имен
    • ReflectionFunctionAbstract::getNumberOfParameters - Получает количество параметров
    • ReflectionFunctionAbstract::getNumberOfRequiredParameters - Получает количество обязательных параметров
    • ReflectionFunctionAbstract::getParameters - Получает параметры
    • ReflectionFunctionAbstract::getReturnType - Получает объявленный тип возвращаемого функцией значения
    • ReflectionFunctionAbstract::getShortName - Получает короткое имя функции
    • ReflectionFunctionAbstract::getStartLine - Получает начальный номер строки
    • ReflectionFunctionAbstract::getStaticVariables - Получает статические переменные
    • ReflectionFunctionAbstract::hasReturnType - Проверяет, имеет ли функция объявленный тип возвращаемого значения
    • ReflectionFunctionAbstract::inNamespace - Проверяет, находится ли функция в пространстве имен
    • ReflectionFunctionAbstract::isClosure - Проверяет, является ли функция замыканием (Closure)
    • ReflectionFunctionAbstract::isDeprecated - Проверяет, является ли функция устаревшей
    • ReflectionFunctionAbstract::isGenerator - Проверяет, является ли функция генератором
    • ReflectionFunctionAbstract::isInternal - Проверяет, является ли функция внутренней
    • ReflectionFunctionAbstract::isUserDefined - Проверяет, является ли функция определенной пользователем
    • ReflectionFunctionAbstract::isVariadic - Проверяет, является ли функция функцией с переменным числом аргументов
    • ReflectionFunctionAbstract::returnsReference - Проверяет, что функция возвращает ссылку
    • ReflectionFunctionAbstract::__clone - Клонирует функцию
    • ReflectionFunctionAbstract::__toString - Преобразование в строку
    • ReflectionGenerator::getExecutingFile - Получить имя файла, из которого запущен генератор
    • ReflectionGenerator::getExecutingGenerator - Получить запущенный объект Generator
    • ReflectionGenerator::getExecutingLine - Получить текущую выполняющуюся строку генератора
    • ReflectionGenerator::getFunction - Получить имя функции генератора
    • ReflectionGenerator::getThis - Получает значение $this генератора
    • ReflectionGenerator::getTrace - Получить трассировку запущенного генератора
    • ReflectionGenerator::__construct - Конструктор ReflectionGenerator
    • ReflectionMethod::export - Экспорт отраженного метода
    • ReflectionMethod::getClosure - Возвращает динамически созданное замыкание для метода
    • ReflectionMethod::getDeclaringClass - Получает класс, объявляющий отраженный метод
    • ReflectionMethod::getModifiers - Получает модификаторы метода
    • ReflectionMethod::getPrototype - Получает прототип метода (если такой есть)
    • ReflectionMethod::invoke - Вызов
    • ReflectionMethod::invokeArgs - Вызов метода с передачей аргументов массивом
    • ReflectionMethod::isAbstract - Проверяет, является ли метод абстрактным
    • ReflectionMethod::isConstructor - Проверяет, является ли метод конструктором
    • ReflectionMethod::isDestructor - Проверяет, является ли метод деструктором
    • ReflectionMethod::isFinal - Проверяет, является ли метод окончательным
    • ReflectionMethod::isPrivate - Проверяет, является ли метод закрытым
    • ReflectionMethod::isProtected - Проверяет, является ли метод защищенным
    • ReflectionMethod::isPublic - Проверяет, является ли метод общедоступным
    • ReflectionMethod::isStatic - Проверяет, является ли метод статическим
    • ReflectionMethod::setAccessible - Делает метод доступным
    • ReflectionMethod::__construct - Конструктор класса ReflectionMethod
    • ReflectionMethod::__toString - Возвращает строковое представление объекта ReflectionMethod
    • ReflectionNamedType::getName - Получить текст подсказки типа
    • ReflectionObject::export - Экспорт
    • ReflectionObject::__construct - Конструктор класса ReflectionObject
    • ReflectionParameter::allowsNull - Проверяет, допустимо ли значение null для параметра
    • ReflectionParameter::canBePassedByValue - Проверяет, можно ли передать этот аргумент по значению
    • ReflectionParameter::export - Экспорт
    • ReflectionParameter::getClass - Получение класса из подсказки типа
    • ReflectionParameter::getDeclaringClass - Получение объявляющего класса
    • ReflectionParameter::getDeclaringFunction - Получение объявляющей функции
    • ReflectionParameter::getDefaultValue - Получение значения по умолчанию для параметра
    • ReflectionParameter::getDefaultValueConstantName - Возвращает имя константы значения по умолчанию, если значение по умолчанию константа или null
    • ReflectionParameter::getName - Получение имени параметра
    • ReflectionParameter::getPosition - Получение позиции параметра
    • ReflectionParameter::getType - Получить тип параметра
    • ReflectionParameter::hasType - Проверить, указан ли тип параметра
    • ReflectionParameter::isArray - Проверяет, ожидает ли аргумент массив в качестве значения
    • ReflectionParameter::isCallable - Определить, должен ли параметр быть типа callable
    • ReflectionParameter::isDefaultValueAvailable - Проверяет, доступно ли значение по умолчанию
    • ReflectionParameter::isDefaultValueConstant - Определить, является ли значение параметра по умолчанию константой
    • ReflectionParameter::isOptional - Проверяет, является ли аргумент необязательным
    • ReflectionParameter::isPassedByReference - Проверяет, передан ли параметр по ссылке
    • ReflectionParameter::isVariadic - Проверить, является ли параметр параметром с переменным количеством аргументов
    • ReflectionParameter::__clone - Клонировать
    • ReflectionParameter::__construct - Конструктор
    • ReflectionParameter::__toString - Преобразование в строку
    • ReflectionProperty::export - Экспорт
    • ReflectionProperty::getDeclaringClass - Получение объявляющего класса
    • ReflectionProperty::getDocComment - Получение doc-комментария для свойства
    • ReflectionProperty::getModifiers - Получение модификаторов свойств класса
    • ReflectionProperty::getName - Получение имени свойства
    • ReflectionProperty::getType - Gets a property's type
    • ReflectionProperty::getValue - Получает значение
    • ReflectionProperty::hasType - Checks if property has a type
    • ReflectionProperty::isDefault - Проверяет, является ли значение свойством по умолчанию
    • ReflectionProperty::isInitialized - Checks whether a property is initialized
    • ReflectionProperty::isPrivate - Проверяет, является ли свойство закрытым
    • ReflectionProperty::isProtected - Проверяет, является ли свойство защищенным
    • ReflectionProperty::isPublic - Проверяет, является ли свойство общедоступным
    • ReflectionProperty::isStatic - Проверка, является ли свойство статическим
    • ReflectionProperty::setAccessible - Делает свойство доступным
    • ReflectionProperty::setValue - Установка значения свойства
    • ReflectionProperty::__clone - Клонировать
    • ReflectionProperty::__construct - Конструктор класса ReflectionProperty
    • ReflectionProperty::__toString - Преобразование в строку
    • ReflectionType::allowsNull - Проверяет, допустим ли NULL
    • ReflectionType::isBuiltin - Проверяет тип, встроенный он или нет
    • ReflectionType::__toString - Преобразование в строку
    • ReflectionZendExtension::export - Экспорт
    • ReflectionZendExtension::getAuthor - Получает автора
    • ReflectionZendExtension::getCopyright - Получает авторские права
    • ReflectionZendExtension::getName - Получает имя
    • ReflectionZendExtension::getURL - Получает URL
    • ReflectionZendExtension::getVersion - Получает версию
    • ReflectionZendExtension::__clone - Обработчик клонирования
    • ReflectionZendExtension::__construct - Конструктор
    • ReflectionZendExtension::__toString - Обработчик преобразования в строку
    • Reflector::export - Экспорт
    • Reflector::__toString - Представление в виде строки
    • RegexIterator::accept - Проверка соответствия регулярному выражению
    • RegexIterator::getFlags - Получение флагов настройки
    • RegexIterator::getMode - Возвращает режим работы
    • RegexIterator::getPregFlags - Возвращает флаги регулярного выражения
    • RegexIterator::getRegex - Возвращает строку текущего регулярного выражения
    • RegexIterator::setFlags - Установка флагов
    • RegexIterator::setMode - Установка режима работы
    • RegexIterator::setPregFlags - Задание флагов регулярного выражения
    • RegexIterator::__construct - Конструктор класса RegexIterator
    • register_shutdown_function - Регистрирует функцию, которая выполнится при завершении работы скрипта
    • register_tick_function - Регистрирует функцию для выполнения при каждом тике
    • rename - Переименовывает файл или директорию
    • rename_function - Переименовать функцию в глобальной таблице функций
    • reset - Устанавливает внутренний указатель массива на его первый элемент
    • ResourceBundle::count - Получить количество элементов в пакете
    • ResourceBundle::create - Создать пакет ресурсов
    • ResourceBundle::get - Получить данные из пакета
    • ResourceBundle::getErrorCode - Получить последний код ошибки пакета
    • ResourceBundle::getErrorMessage - Получить последнее сообщение об ошибке пакета
    • ResourceBundle::getLocales - Получить поддерживаемые локали
    • restore_error_handler - Восстанавливает предыдущий обработчик ошибок
    • restore_exception_handler - Восстанавливает предыдущий обработчик исключений
    • restore_include_path - Восстанавливает изначальное значение настройки конфигурации include_path
    • Result::getAffectedItemsCount - Get affected row count
    • Result::getAutoIncrementValue - Получает значение автоинкремента
    • Result::getGeneratedIds - Получает сгенерированные идентификаторы
    • Result::getWarnings - Получает предупреждения последней операции
    • Result::getWarningsCount - Получает количество предупреждений последней операции
    • Result::__construct - Конструктор класса Result
    • rewind - Сбрасывает курсор файлового указателя
    • rewinddir - Сбросить дескриптор каталога
    • rmdir - Удаляет директорию
    • round - Округляет число типа float
    • RowResult::fetchAll - Получает все строки из результата
    • RowResult::fetchOne - Получает строку из результата
    • RowResult::getColumnNames - Получает все имена столбцов
    • RowResult::getColumns - Получает метаданные столбца
    • RowResult::getColumnsCount - Получает количество столбцов
    • RowResult::getWarnings - Получает предупреждения последней операции
    • RowResult::getWarningsCount - Получает количество предупреждений последней операции
    • RowResult::__construct - Конструктор класса RowResult
    • rpm_close - Закрывает RPM-файл
    • rpm_get_tag - Получает тег заголовка из RPM-файла
    • rpm_is_valid - Проверяет имя файла в качестве файла RPM
    • rpm_open - Открывает RPM-файл
    • rpm_version - Возвращает строку, представляющую текущую версию модуля rpmreader
    • RRDCreator::addArchive - Adds RRA - archive of data values for each data source
    • RRDCreator::addDataSource - Adds data source definition for RRD database
    • RRDCreator::save - Saves the RRD database to a file
    • RRDCreator::__construct - Creates new RRDCreator instance
    • rrdc_disconnect - Закрыть любые незавершенные подключения к демону кеширования rrd
    • RRDGraph::save - Saves the result of query into image
    • RRDGraph::saveVerbose - Saves the RRD database query into image and returns the verbose information about generated graph
    • RRDGraph::setOptions - Sets the options for rrd graph export
    • RRDGraph::__construct - Creates new RRDGraph instance
    • RRDUpdater::update - Обновляет файл базы данных RRD
    • RRDUpdater::__construct - Создает новый объект RRDUpdater
    • rrd_create - Создать файл rrd
    • rrd_error - Получить последнее сообщение об ошибке
    • rrd_fetch - Извлечь данные для графика в виде массива
    • rrd_first - Возвращает отметку времени первого образца из файла rrd
    • rrd_graph - Создает изображение из данных
    • rrd_info - Получает информацию о файле rrd
    • rrd_last - Возвращает отметку времени unix последнего образца
    • rrd_lastupdate - Получает информацию о последних обновленных данных
    • rrd_restore - Восстанавливает файл RRD из дампа XML
    • rrd_tune - Настраивает некоторые опции заголовка файла базы данных RRD
    • rrd_update - Обновляет базу данных RRD
    • rrd_version - Получает информацию о базовой библиотеке rrdtool
    • rrd_xport - Экспортирует информацию о базе данных RRD
    • rsort - Сортирует массив в обратном порядке
    • rtrim - Удаляет пробелы (или другие символы) из конца строки
    • runkit7_constant_add - Similar to define(), but allows defining in class definitions as well
    • runkit7_constant_redefine - Description
    • runkit7_constant_remove - Remove/Delete an already defined constant
    • runkit7_function_add - Add a new function, similar to create_function
    • runkit7_function_copy - Copy a function to a new function name
    • runkit7_function_redefine - Replace a function definition with a new implementation
    • runkit7_function_remove - Remove a function definition
    • runkit7_function_rename - Change a function's name
    • runkit7_import - Process a PHP file importing function and class definitions, overwriting where appropriate
    • runkit7_method_add - Dynamically adds a new method to a given class
    • runkit7_method_copy - Copies a method from class to another
    • runkit7_method_redefine - Dynamically changes the code of the given method
    • runkit7_method_remove - Dynamically removes the given method
    • runkit7_method_rename - Dynamically changes the name of the given method
    • runkit7_object_id - Return the integer object handle for given object
    • runkit7_superglobals - Return numerically indexed array of registered superglobals
    • runkit7_zval_inspect - Returns information about the passed in value with data types, reference counts, etc
    • runkit_class_adopt - Конвертирует базовый класс в наследованный ("усыновляет"). Дополняет методы наследованными при необходимости.
    • runkit_class_emancipate - Конвертирует наследующий класс в базовый, удаляет из него наследуемые методы.
    • runkit_constant_add - Объявляет константу. Схожа с функцией define(), но позволяет создавать локальные константы внутри классов.
    • runkit_constant_redefine - Переназначить уже определенную константу.
    • runkit_constant_remove - Удаляет уже определенную константу.
    • runkit_function_add - Добавляет новую функцию аналогично create_function
    • runkit_function_copy - Копирует функцию с новым именем
    • runkit_function_redefine - Заменяет определение функции новой реализацией.
    • runkit_function_remove - Удаляет определенную функцию
    • runkit_function_rename - Переименовывает функцию
    • runkit_import - Обрабатывает PHP файл, импортируя функции и классы, перезаписывая при необходимости.
    • runkit_lint - Проверяет PHP-синтаксис выбранного кода
    • runkit_lint_file - Проверяет PHP-синтаксис выбранного файла
    • runkit_method_add - Динамически добавляет новый метод в класс
    • runkit_method_copy - Копирование метода из одного класса в другой
    • runkit_method_redefine - Изменяет код выбранного метода
    • runkit_method_remove - Динамически удаляет выбранный метод
    • runkit_method_rename - Переименовывает выбранный метод
    • runkit_return_value_used - Определяет, используется ли возвращаемое функцией значение
    • Runkit_Sandbox - Класс Runkit Sandbox -- это виртуальная машина PHP
    • runkit_sandbox_output_handler - Задает функцию для захвата и/или обработки данных из "песочницы".
    • Runkit_Sandbox_Parent - Класс анти-песочницы для Runkit
    • runkit_superglobals - Возвращает индексный массив зарегистрированных суперглобальных переменных.
  • s
    • SAMConnection::commit - Commits (completes) the current unit of work
    • SAMConnection::connect - Establishes a connection to a Messaging Server
    • SAMConnection::disconnect - Disconnects from a Messaging Server
    • SAMConnection::errno - Contains the unique numeric error code of the last executed SAM operation
    • SAMConnection::error - Contains the text description of the last failed SAM operation
    • SAMConnection::isConnected - Queries whether a connection is established to a Messaging Server
    • SAMConnection::peek - Read a message from a queue without removing it from the queue
    • SAMConnection::peekAll - Read one or more messages from a queue without removing it from the queue
    • SAMConnection::receive - Receive a message from a queue or subscription
    • SAMConnection::remove - Remove a message from a queue
    • SAMConnection::rollback - Cancels (rolls back) an in-flight unit of work
    • SAMConnection::send - Send a message to a queue or publish an item to a topic
    • SAMConnection::setDebug - Turn on or off additional debugging output
    • SAMConnection::subscribe - Create a subscription to a specified topic
    • SAMConnection::unsubscribe - Cancel a subscription to a specified topic
    • SAMConnection::__construct - Creates a new connection to a Messaging Server
    • SAMMessage::body - The body of the message
    • SAMMessage::header - The header properties of the message
    • SAMMessage::__construct - Creates a new Message object
    • sapi_windows_cp_conv - Преобразовать строку из одной кодовой страницы в другую
    • sapi_windows_cp_get - Получить кодовую страницу процесса
    • sapi_windows_cp_is_utf8 - Указывает, совместима ли кодовая страница с UTF-8
    • sapi_windows_cp_set - Установить кодовую страницу процесса
    • sapi_windows_generate_ctrl_event - Send a CTRL event to another process
    • sapi_windows_set_ctrl_handler - Set or remove a CTRL event handler
    • sapi_windows_vt100_support - Получить или установить поддержку VT100 для заданного потока, свазанного с буфером вывода консоли Windows
    • SCA::createDataObject - Создает SDO
    • SCA::getService - Получить прокси для службы
    • scandir - Получает список файлов и каталогов, расположенных по указанному пути
    • SCA_LocalProxy::createDataObject - Create an SDO
    • SCA_SoapProxy::createDataObject - Создает SDO
    • Schema::createCollection - Добавить коллекцию в схему
    • Schema::dropCollection - Удалить коллекции из схемы
    • Schema::existsInDatabase - Проверить, существует ли в базе данных
    • Schema::getCollection - Получить коллекцию из схемы
    • Schema::getCollectionAsTable - Получить объект таблицы коллекции
    • Schema::getCollections - Получить все коллекции схемы
    • Schema::getName - Получить имя схемы
    • Schema::getSession - Получить сессию схемы
    • Schema::getTable - Получить таблицу схемы
    • Schema::getTables - Получить таблицы схемы
    • Schema::__construct - Конструктор
    • SchemaObject::getSchema - Получает объект схемы
    • scoutapm_get_calls - Returns a list of instrumented calls that have occurred
    • scoutapm_list_instrumented_functions - List functions scoutapm will instrument.
    • SDO_DAS_ChangeSummary::beginLogging - Begin change logging
    • SDO_DAS_ChangeSummary::endLogging - End change logging
    • SDO_DAS_ChangeSummary::getChangedDataObjects - Get the changed data objects from a change summary
    • SDO_DAS_ChangeSummary::getChangeType - Get the type of change made to an SDO_DataObject
    • 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_Relational::applyChanges - Applies the changes made to a data graph back to the database
    • 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_Relational::__construct - Creates an instance of a Relational Data Access Service
    • 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_DAS_XML::addTypes - To load a second or subsequent schema file to a SDO_DAS_XML object
    • 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::createDocument - Creates an XML Document object from scratch, without the need to load a document from a file or string
    • SDO_DAS_XML::loadFile - Returns SDO_DAS_XML_Document object for a given path to xml instance document
    • SDO_DAS_XML::loadString - Returns SDO_DAS_XML_Document for a given xml instance string
    • SDO_DAS_XML::saveFile - Saves the SDO_DAS_XML_Document object to a file
    • SDO_DAS_XML::saveString - Saves the SDO_DAS_XML_Document object to a string
    • 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::setEncoding - Sets the given string as encoding
    • SDO_DAS_XML_Document::setXMLDeclaration - Sets the xml declaration
    • SDO_DAS_XML_Document::setXMLVersion - Sets the given string as xml version
    • 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::getSequence - Get the sequence for a data object
    • SDO_DataObject::getTypeName - Return the name of the type for a data object
    • SDO_DataObject::getTypeNamespaceURI - Return the namespace URI of the type for a data object
    • SDO_Exception::getCause - Get the cause of the exception
    • SDO_List::insert - Insert into a list
    • SDO_Model_Property::getContainingType - Get the SDO_Model_Type which contains this property
    • SDO_Model_Property::getDefault - Get the default value for the property
    • SDO_Model_Property::getName - Get the name of the SDO_Model_Property
    • SDO_Model_Property::getType - Get the SDO_Model_Type of the property
    • SDO_Model_Property::isContainment - Test to see if the property defines a containment relationship
    • SDO_Model_Property::isMany - Test to see if the property is many-valued
    • SDO_Model_ReflectionDataObject::export - Get a string describing the SDO_DataObject
    • SDO_Model_ReflectionDataObject::getContainmentProperty - Get the property which defines the containment relationship to the data object
    • SDO_Model_ReflectionDataObject::getInstanceProperties - Get the instance properties of the SDO_DataObject
    • SDO_Model_ReflectionDataObject::getType - Get the SDO_Model_Type for the SDO_DataObject
    • SDO_Model_ReflectionDataObject::__construct - Construct an SDO_Model_ReflectionDataObject
    • SDO_Model_Type::getBaseType - Get the base type for this type
    • SDO_Model_Type::getName - Get the name of the type
    • SDO_Model_Type::getNamespaceURI - Get the namespace URI of the type
    • SDO_Model_Type::getProperties - Get the SDO_Model_Property objects defined for the type
    • SDO_Model_Type::getProperty - Get an SDO_Model_Property of the type
    • SDO_Model_Type::isAbstractType - Test to see if this SDO_Model_Type is an abstract data type
    • SDO_Model_Type::isDataType - Test to see if this SDO_Model_Type is a primitive data type
    • SDO_Model_Type::isInstance - Test for an SDO_DataObject being an instance of this SDO_Model_Type
    • SDO_Model_Type::isOpenType - Test to see if this type is an open type
    • SDO_Model_Type::isSequencedType - Test to see if this is a sequenced type
    • SDO_Sequence::getProperty - Return the property for the specified sequence index
    • SDO_Sequence::insert - Insert into a sequence
    • SDO_Sequence::move - Move an item to another sequence position
    • SeasLog::alert - Record alert log information
    • SeasLog::analyzerCount - Get log count by level, log_path and key_word
    • SeasLog::analyzerDetail - Get log detail by level, log_path, key_word, start, limit, order
    • SeasLog::closeLoggerStream - Manually release stream flow from logger
    • SeasLog::critical - Record critical log information
    • SeasLog::debug - Record debug log information
    • SeasLog::emergency - Record emergency log information
    • SeasLog::error - Record error log information
    • SeasLog::flushBuffer - Flush logs buffer, dump to appender file, or send to remote api with tcp/udp
    • SeasLog::getBasePath - Get SeasLog base path.
    • SeasLog::getBuffer - Get the logs buffer in memory as array
    • SeasLog::getBufferEnabled - Determin if buffer enabled
    • SeasLog::getDatetimeFormat - Get SeasLog datetime format style
    • SeasLog::getLastLogger - Get SeasLog last logger path
    • SeasLog::getRequestID - Get SeasLog request_id differentiated requests
    • SeasLog::getRequestVariable - Get SeasLog request variable
    • SeasLog::info - Record info log information
    • SeasLog::log - The Common Record Log Function
    • SeasLog::notice - Record notice log information
    • SeasLog::setBasePath - Set SeasLog base path
    • SeasLog::setDatetimeFormat - Set SeasLog datetime format style
    • SeasLog::setLogger - Set SeasLog logger name
    • SeasLog::setRequestID - Set SeasLog request_id differentiated requests
    • SeasLog::setRequestVariable - Manually set SeasLog request variable
    • SeasLog::warning - Record warning log information
    • SeasLog::__construct - Description
    • SeasLog::__destruct - Description
    • seaslog_get_author - Get SeasLog author.
    • seaslog_get_version - Get SeasLog version.
    • SeekableIterator::seek - Перемещается к позиции
    • sem_acquire - Захват семафора
    • sem_get - Получение идентификатора семафора
    • sem_release - Освобождение семафора
    • sem_remove - Удаление семафора
    • Serializable::serialize - Представляет объект в виде строки
    • Serializable::unserialize - Создает объект
    • serialize - Генерирует пригодное для хранения представление переменной
    • Session::close - Закрывает сессию
    • Session::createSchema - Создает новую схему
    • Session::dropSchema - Удаляет схему
    • Session::generateUUID - Получает новый UUID
    • Session::getDefaultSchema - Get default schema name
    • Session::getSchema - Получает новый объект схемы
    • Session::getSchemas - Получает схемы
    • Session::getServerVersion - Получает версию сервера
    • Session::listClients - Получает список клиентов
    • Session::quoteName - Add quotes
    • Session::releaseSavepoint - Отменяет установленную точку сохранения
    • Session::rollback - Откатывает транзакцию
    • Session::rollbackTo - Откатывает транзакцию до точки сохранения
    • Session::setSavepoint - Создает точку сохранения
    • Session::sql - Выполняет SQL запрос
    • Session::startTransaction - Начинает транзакцию
    • Session::__construct - Описание конструктора
    • SessionHandler::close - Закрывает сессию
    • SessionHandler::create_sid - Возвращает новый идентификатор сессии
    • SessionHandler::destroy - Уничтожает сессию
    • SessionHandler::gc - Очищает старые сессии
    • SessionHandler::open - Инициализирует сессию
    • SessionHandler::read - Считывает данные сессии
    • SessionHandler::write - Записывает данные сессии
    • SessionHandlerInterface::close - Закрывает сессию
    • SessionHandlerInterface::destroy - Уничтожает сессию
    • SessionHandlerInterface::gc - Очищает старые сессии
    • SessionHandlerInterface::open - Инициализирует сессию
    • SessionHandlerInterface::read - Читает данные сессии
    • SessionHandlerInterface::write - Записать данные сессии
    • SessionIdInterface::create_sid - Создать идентификатор сессии
    • session_abort - Отменяет изменения в массиве сессии и завершает ее
    • session_cache_expire - Вернуть текущее время жизни кеша
    • session_cache_limiter - Получить и/или установить текущий режим кеширования
    • session_commit - Псевдоним session_write_close
    • session_create_id - Создаёт новый идентификатор сессии
    • session_decode - Декодирует данные сессии из закодированной строки сессии
    • session_destroy - Уничтожает все данные сессии
    • session_encode - Кодирует данные текущей сессии в формате строки сессии
    • session_gc - Выполняет сборку мусора данных сессии
    • session_get_cookie_params - Возвращает параметры cookie сессии
    • session_id - Получает и/или устанавливает идентификатор текущей сессии
    • session_is_registered - Определяет, зарегистрирована ли глобальная переменная в сессии
    • session_module_name - Возвращает и/или устанавливает модуль текущей сессии
    • session_name - Получить или установить имя текущей сессии
    • session_pgsql_add_error - Увеличивает количество ошибок и устанавливает последнее сообщение об ошибке
    • session_pgsql_get_error - Возвращает количество ошибок и последнее сообщение об ошибке
    • session_pgsql_get_field - Получить пользовательское значение поля
    • session_pgsql_reset - Сбросить подключение к серверам баз данных сессии
    • session_pgsql_set_field - Установить пользовательское значение поля
    • session_pgsql_status - Получить текущий статус обработчика сохранения
    • session_regenerate_id - Генерирует и обновляет идентификатор текущей сессии
    • session_register - Регистрация одной или нескольких глобальных переменных текущей сессии
    • session_register_shutdown - Функция завершения сессии
    • session_reset - Реинициализирует сессию оригинальными значениями
    • session_save_path - Получает и/или устанавливает путь сохранения сессии
    • session_set_cookie_params - Устанавливает параметры сессионной cookie
    • session_set_save_handler - Устанавливает пользовательские обработчики хранения сессии
    • session_start - Стартует новую сессию, либо возобновляет существующую
    • session_status - Возвращает состояние текущей сессии
    • session_unregister - Отмена регистрации глобальной переменной в текущей сессии
    • session_unset - Удалить все переменные сессии
    • session_write_close - Записывает данные сессии и завершает её
    • setcookie - Отправляет cookie
    • setlocale - Устанавливает настройки локали
    • setproctitle - Установить название процесса
    • setrawcookie - Отправляет cookie без URL-кодирования значения
    • setthreadtitle - Установить название потока
    • settype - Задает тип переменной
    • set_error_handler - Задает пользовательский обработчик ошибок
    • set_exception_handler - Задает пользовательский обработчик исключений
    • set_file_buffer - Псевдоним stream_set_write_buffer
    • set_include_path - Устанавливает значение настройки конфигурации include_path
    • set_magic_quotes_runtime - Установка текущего значения настройки magic_quotes_runtime
    • set_socket_blocking - Псевдоним stream_set_blocking
    • set_time_limit - Ограничение времени выполнения скрипта
    • sha1 - Возвращает SHA1-хеш строки
    • sha1_file - Возвращает SHA1-хеш файла
    • shell_exec - Выполнить команду через оболочку и вернуть вывод в виде строки
    • shmop_close - Закрытие блока разделяемой памяти
    • shmop_delete - Удаление блока разделяемой памяти
    • shmop_open - Резервирование или использование блока разделяемой памяти
    • shmop_read - Чтение данных из участка разделяемой памяти
    • shmop_size - Возвращает размер блока в разделяемой памяти
    • shmop_write - Запись данных в разделяемую память
    • 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_has_var - Check whether a specific entry exists
    • shm_put_var - Inserts or updates a variable in shared memory
    • shm_remove - Removes shared memory from Unix systems
    • shm_remove_var - Removes a variable from shared memory
    • show_source - Псевдоним highlight_file
    • shuffle - Перемешивает массив
    • similar_text - Вычисляет степень похожести двух строк
    • SimpleXMLElement::addAttribute - Добавляет атрибут к SimpleXML-элементу
    • SimpleXMLElement::addChild - Добавляет дочерний элемент к узлу XML
    • SimpleXMLElement::asXML - Возвращает сформированный XML-документ в виде строки на основе элемента SimpleXML
    • SimpleXMLElement::attributes - Возвращает атрибуты элемента
    • SimpleXMLElement::children - Находит дочерние элементы данного узла
    • SimpleXMLElement::count - Подсчитывает количество дочерних элементов у текущего элемента
    • SimpleXMLElement::getDocNamespaces - Возвращает пространства имен, объявленные в документе
    • SimpleXMLElement::getName - Получает имя элемента XML
    • SimpleXMLElement::getNamespaces - Возвращает пространства имен, используемые в документе
    • SimpleXMLElement::registerXPathNamespace - Создает префикс/пространство имен контекста для следующего запроса XPath
    • SimpleXMLElement::saveXML - Псевдоним SimpleXMLElement::asXML
    • SimpleXMLElement::xpath - Запускает запрос XPath к XML-данным
    • SimpleXMLElement::__construct - Создание нового объекта SimpleXMLElement
    • SimpleXMLElement::__toString - Возвращает содержимое строки
    • SimpleXMLIterator::current - Возвращает текущий элемент
    • SimpleXMLIterator::getChildren - Возвращает вложенные элементы текущего элемента
    • SimpleXMLIterator::hasChildren - Проверяет, имеет ли текущий элемент вложенные элементы
    • SimpleXMLIterator::key - Возвращает текущий ключ
    • SimpleXMLIterator::next - Перемещает итератор к следующему элементу
    • SimpleXMLIterator::rewind - Возвращает итератор к первому элементу
    • SimpleXMLIterator::valid - Проверяет, является ли текущий элемент допустимым
    • simplexml_import_dom - Получает объект класса SimpleXMLElement из узла DOM
    • simplexml_load_file - Интерпретирует XML-файл в объект
    • simplexml_load_string - Интерпретирует строку с XML в объект
    • sin - Синус
    • sinh - Гиперболический синус
    • sizeof - Псевдоним count
    • sleep - Задержка выполнения
    • snmp2_get - Fetch an SNMP object
    • snmp2_getnext - Fetch the SNMP object which follows the given object id
    • snmp2_real_walk - Return all objects including their respective object ID within the specified one
    • snmp2_set - Set the value of an SNMP object
    • snmp2_walk - Fetch all the SNMP objects from an agent
    • snmp3_get - Fetch an SNMP object
    • snmp3_getnext - Fetch the SNMP object which follows the given object id
    • snmp3_real_walk - Return all objects including their respective object ID within the specified one
    • snmp3_set - Set the value of an SNMP object
    • snmp3_walk - Fetch all the SNMP objects from an agent
    • SNMP::close - Close SNMP session
    • SNMP::get - Fetch an SNMP object
    • SNMP::getErrno - Get last error code
    • SNMP::getError - Get last error message
    • SNMP::getnext - Fetch an SNMP object which follows the given object id
    • SNMP::set - Set the value of an SNMP object
    • SNMP::setSecurity - Configures security-related SNMPv3 session parameters
    • SNMP::walk - Fetch SNMP object subtree
    • SNMP::__construct - Creates SNMP instance representing session to remote SNMP agent
    • snmpget - Fetch an SNMP object
    • snmpgetnext - Fetch the SNMP object which follows the given object id
    • snmprealwalk - Return all objects including their respective object ID within the specified one
    • snmpset - Set the value of an SNMP object
    • snmpwalk - Fetch all the SNMP objects from an agent
    • snmpwalkoid - Query for a tree of information about a network entity
    • 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 - Set the OID output format
    • snmp_set_oid_output_format - Set the OID output format
    • 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
    • SoapClient::SoapClient - Конструктор SoapClient
    • SoapClient::__call - Вызывает SOAP-функцию (устаревший метод)
    • SoapClient::__construct - Конструктор SoapClient
    • SoapClient::__doRequest - Выполняет SOAP-запрос
    • SoapClient::__getCookies - Получить список cookies
    • SoapClient::__getFunctions - Возвращает список доступных SOAP-функций
    • SoapClient::__getLastRequest - Возвращает последний SOAP-запрос
    • SoapClient::__getLastRequestHeaders - Возвращает SOAP-заголовки последнего запроса
    • SoapClient::__getLastResponse - Возвращает последний SOAP-ответ
    • SoapClient::__getLastResponseHeaders - Возвращает SOAP-заголовки последнего ответа
    • SoapClient::__getTypes - Возвращает список SOAP-типов
    • SoapClient::__setCookie - Устанавливает cookie
    • SoapClient::__setLocation - Устанавливает адрес используемой веб-службы
    • SoapClient::__setSoapHeaders - Устанавливает SOAP-заголовки для последующих вызовов
    • SoapClient::__soapCall - Вызывает SOAP-функцию
    • SoapFault::SoapFault - Конструктор SoapFault
    • SoapFault::__construct - Конструктор SoapFault
    • SoapFault::__toString - Получить текстовое представление SoapFault
    • SoapHeader::SoapHeader - Конструктор SoapHeader
    • SoapHeader::__construct - Конструктор SoapHeader
    • SoapParam::SoapParam - Конструктор SoapParam
    • SoapParam::__construct - Конструктор SoapParam
    • SoapServer::addFunction - Добавляет одну или несколько функций для обработки запросов SOAP
    • SoapServer::addSoapHeader - Добавить заголовок SOAP в ответ
    • SoapServer::fault - Вынуждает SoapServer вернуть ошибку
    • SoapServer::getFunctions - Вернуть список определенных функций
    • SoapServer::handle - Обработка SOAP-запроса
    • SoapServer::setClass - Устанавливает класс, который обрабатывает SOAP-запросы
    • SoapServer::setObject - Устанавливает объект, который будет использоваться для обработки SOAP-запросов
    • SoapServer::setPersistence - Устанавливает режим сохранения SoapServer
    • SoapServer::SoapServer - Конструктор SoapServer
    • SoapServer::__construct - Конструктор SoapServer
    • SoapVar::SoapVar - Конструктор SoapVar
    • SoapVar::__construct - Конструктор SoapVar
    • socket_accept - Принимает соединение на сокете
    • socket_addrinfo_bind - Создать и привязать к сокету из указанного addrinfo
    • socket_addrinfo_connect - Создать и подключиться к сокету из указанного addrinfo
    • socket_addrinfo_explain - Получить информацию о addrinfo
    • socket_addrinfo_lookup - Получить массив с содержимым getaddrinfo про указанное имя хоста
    • socket_bind - Привязывает имя к сокету
    • socket_clear_error - Очищает ошибку на сокете или последний код ошибки
    • socket_close - Закрывает ресурс сокета
    • socket_cmsg_space - Вычислить размер буфера сообщения
    • socket_connect - Начинает соединение с сокетом
    • socket_create - Создаёт сокет (конечную точку для обмена информацией)
    • socket_create_listen - Открывает сокет на указанном порту для принятия соединений
    • socket_create_pair - Создаёт пару неразличимых сокетов и сохраняет их в массиве
    • socket_export_stream - Экспортировать ресурс расширения сокета в поток, инкапсулирующий сокет
    • socket_getopt - Псевдоним socket_get_option
    • socket_getpeername - Запрашивает удалённую сторону указанного сокета, в результате может быть возвращен хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
    • socket_getsockname - Запрашивает локальную сторону указанного сокета, в результате можно получить хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
    • socket_get_option - Получает опции потока для сокета
    • socket_get_status - Псевдоним stream_get_meta_data
    • socket_import_stream - Импортировать поток
    • socket_last_error - Возвращает последнюю ошибку на сокете
    • socket_listen - Прослушивает входящие соединения на сокете
    • socket_read - Читает строку максимальную длину байт из сокета
    • socket_recv - Получает данные из подсоединённого сокета
    • socket_recvfrom - Получает данные из сокета, независимо от того, подсоединён он или нет
    • socket_recvmsg - Прочитать сообщение
    • socket_select - Запускает системный вызов select() для заданных массивов сокетов с указанным тайм-аутом
    • socket_send - Отправляет данные в подсоединённый сокет
    • socket_sendmsg - Отправить сообщение
    • socket_sendto - Отправляет сообщение в сокет, независимо от того, подсоединён он или нет
    • socket_setopt - Псевдоним socket_set_option
    • socket_set_block - Устанавливает блокирующий режим на ресурсе сокета
    • socket_set_blocking - Псевдоним stream_set_blocking
    • socket_set_nonblock - Устанавливает неблокирующий режим для файлового дескриптора fd
    • socket_set_option - Устанавливает опции для сокета
    • socket_set_timeout - Псевдоним stream_set_timeout
    • socket_shutdown - Завершает работу сокета на получение и/или отправку данных
    • socket_strerror - Возвращает строку, описывающую ошибку сокета
    • socket_write - Запись в сокет
    • socket_wsaprotocol_info_export - Экспорт структуры WSAPROTOCOL_INFO
    • socket_wsaprotocol_info_import - Импортирует сокет из другого процесса
    • socket_wsaprotocol_info_release - Высвобождает экспортированную структуру WSAPROTOCOL_INFO
    • sodium_add - Добавить большие числа
    • sodium_base642bin - Описание
    • sodium_bin2base64 - Описание
    • sodium_bin2hex - Кодировать в шестнадцатеричное представление
    • sodium_compare - Сравнить большие числа
    • sodium_crypto_aead_aes256gcm_decrypt - Расшифровать в комбинированном режиме с предварительным расчетом
    • sodium_crypto_aead_aes256gcm_encrypt - Закодировать в комбинированном режиме с предварительным расчетом
    • sodium_crypto_aead_aes256gcm_is_available - Проверить, поддерживает ли оборудование AES256-GCM
    • sodium_crypto_aead_aes256gcm_keygen - Получить случайные байты для ключа
    • sodium_crypto_aead_chacha20poly1305_decrypt - Проверить, что зашифрованный текст содержит допустимый тег
    • sodium_crypto_aead_chacha20poly1305_encrypt - Зашифровать сообщение
    • sodium_crypto_aead_chacha20poly1305_ietf_decrypt - Проверить, что зашифрованный текст содержит допустимый тег
    • sodium_crypto_aead_chacha20poly1305_ietf_encrypt - Зашифровать сообщение
    • sodium_crypto_aead_chacha20poly1305_ietf_keygen - Получить случайные байты для ключа
    • sodium_crypto_aead_chacha20poly1305_keygen - Получить случайные байты для ключа
    • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt - Описание
    • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt - Описание
    • sodium_crypto_aead_xchacha20poly1305_ietf_keygen - Описание
    • sodium_crypto_auth - Вычислить тег для сообщения
    • sodium_crypto_auth_keygen - Получить случайные байты для ключа
    • sodium_crypto_auth_verify - Проверяет, допустим ли тег для сообщения
    • sodium_crypto_box - Зашифровать сообщение
    • sodium_crypto_box_keypair - Сгенерировать случайным образом секретный ключ и соответствующий ему открытый ключ
    • sodium_crypto_box_keypair_from_secretkey_and_publickey - Описание
    • sodium_crypto_box_open - Проверить и расшифровать зашифрованный текст
    • sodium_crypto_box_publickey - Описание
    • sodium_crypto_box_publickey_from_secretkey - Описание
    • sodium_crypto_box_seal - Зашифровать сообщение
    • sodium_crypto_box_seal_open - Расшифровать зашифрованный текст
    • sodium_crypto_box_secretkey - Описание
    • sodium_crypto_box_seed_keypair - Детерминистически вывести пару ключей из одного ключа
    • sodium_crypto_generichash - Получить хеш сообщения
    • sodium_crypto_generichash_final - Закончить хеширование
    • sodium_crypto_generichash_init - Инициализировать хеширование
    • sodium_crypto_generichash_keygen - Получить случайные байты для ключа
    • sodium_crypto_generichash_update - Добавить сообщение к хешу
    • sodium_crypto_kdf_derive_from_key - Извлечь подраздел
    • sodium_crypto_kdf_keygen - Получить случайные байты для ключа
    • sodium_crypto_kx_client_session_keys - Описание
    • sodium_crypto_kx_keypair - Создает новую пару ключей sodium
    • sodium_crypto_kx_publickey - Описание
    • sodium_crypto_kx_secretkey - Описание
    • sodium_crypto_kx_seed_keypair - Описание
    • sodium_crypto_kx_server_session_keys - Описание
    • sodium_crypto_pwhash - Получить ключ с пароля
    • sodium_crypto_pwhash_scryptsalsa208sha256 - Извлечь ключ из пароля
    • sodium_crypto_pwhash_scryptsalsa208sha256_str - Получить закодированный в ASCII хеш
    • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify - Проверить, что пароль является действительной строкой проверки пароля
    • sodium_crypto_pwhash_str - Получить ASCII-кодированный хеш
    • sodium_crypto_pwhash_str_needs_rehash - Описание
    • sodium_crypto_pwhash_str_verify - Проверяет, что пароль соответствует хешу
    • sodium_crypto_scalarmult - Вычислить общий секрет на основании секретного ключа пользователя и открытого ключа другого пользователя
    • sodium_crypto_scalarmult_base - Псевдоним sodium_crypto_box_publickey_from_secretkey
    • sodium_crypto_secretbox - Зашифровать сообщение
    • sodium_crypto_secretbox_keygen - Получить случайные байты для ключа
    • sodium_crypto_secretbox_open - Проверить и расшифровать зашифрованный текст
    • sodium_crypto_secretstream_xchacha20poly1305_init_pull - Описание
    • sodium_crypto_secretstream_xchacha20poly1305_init_push - Описание
    • sodium_crypto_secretstream_xchacha20poly1305_keygen - Описание
    • sodium_crypto_secretstream_xchacha20poly1305_pull - Описание
    • sodium_crypto_secretstream_xchacha20poly1305_push - Описание
    • sodium_crypto_secretstream_xchacha20poly1305_rekey - Описание
    • sodium_crypto_shorthash - Вычислить отпечаток фиксированного размера для сообщения
    • sodium_crypto_shorthash_keygen - Получить случайные байты для ключа
    • sodium_crypto_sign - Подписать сообщение
    • sodium_crypto_sign_detached - Подписать сообщение
    • sodium_crypto_sign_ed25519_pk_to_curve25519 - Преобразование открытого ключа системы Ed25519 в открытый ключ Curve25519
    • sodium_crypto_sign_ed25519_sk_to_curve25519 - Преобразовать секретный ключ из системы Ed25519 в секретный ключ Curve25519
    • sodium_crypto_sign_keypair - Произвольно сгенерировать секретный ключ и соответствующий открытый ключ
    • sodium_crypto_sign_keypair_from_secretkey_and_publickey - Описание
    • sodium_crypto_sign_open - Проверить, что подписанное сообщение имеет корректную подпись
    • sodium_crypto_sign_publickey - Описание
    • sodium_crypto_sign_publickey_from_secretkey - Извлечь открытый ключ из секретного ключа
    • sodium_crypto_sign_secretkey - Описание
    • sodium_crypto_sign_seed_keypair - Детерминированный вывод пары ключей из одного ключа
    • sodium_crypto_sign_verify_detached - Проверить подпись для сообщения
    • sodium_crypto_stream - Генерация детерминированной последовательности байтов из начального числа
    • sodium_crypto_stream_keygen - Получить случайные байты для ключа
    • sodium_crypto_stream_xor - Зашифровать сообщение
    • sodium_hex2bin - Декодирует строку в шестнадцатеричном представлении в бинарное
    • sodium_increment - Увеличить на единицу большое число
    • sodium_memcmp - Проверка на равенство за постоянное количество времени
    • sodium_memzero - Перезаписать buf нулями
    • sodium_pad - Добавить данные отступов
    • sodium_unpad - Удаление данных отступов
    • SolrClient::addDocument - Adds a document to the index
    • SolrClient::addDocuments - Adds a collection of SolrInputDocument instances to the index
    • SolrClient::commit - Finalizes all add/deletes made to the index
    • SolrClient::deleteById - Delete by Id
    • SolrClient::deleteByIds - Deletes by Ids
    • SolrClient::deleteByQueries - Removes all documents matching any of the queries
    • SolrClient::deleteByQuery - Deletes all documents matching the given query
    • SolrClient::getById - Get Document By Id. Utilizes Solr Realtime Get (RTG)
    • SolrClient::getByIds - Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)
    • SolrClient::getDebug - Returns the debug data for the last connection attempt
    • SolrClient::getOptions - Returns the client options set internally
    • SolrClient::optimize - Defragments the index
    • SolrClient::ping - Checks if Solr server is still up
    • SolrClient::query - Sends a query to the server
    • SolrClient::request - Sends a raw update request
    • SolrClient::rollback - Rollbacks all add/deletes made to the index since the last commit
    • SolrClient::setResponseWriter - Sets the response writer used to prepare the response from Solr
    • SolrClient::setServlet - Changes the specified servlet type to a new value
    • SolrClient::system - Retrieve Solr Server information
    • SolrClient::threads - Checks the threads status
    • SolrClient::__construct - Constructor for the SolrClient object
    • SolrClient::__destruct - Destructor for SolrClient
    • SolrClientException::getInternalInfo - Возвращает внутреннюю информацию о том, где было выброшено исключение
    • SolrCollapseFunction::getField - Returns the field that is being collapsed on
    • SolrCollapseFunction::getHint - Returns collapse hint
    • SolrCollapseFunction::getMax - Returns max parameter
    • SolrCollapseFunction::getMin - Returns min parameter
    • SolrCollapseFunction::getNullPolicy - Returns null policy
    • SolrCollapseFunction::getSize - Returns size parameter
    • SolrCollapseFunction::setField - Sets the field to collapse on
    • SolrCollapseFunction::setHint - Sets collapse hint
    • SolrCollapseFunction::setMax - Selects the group heads by the max value of a numeric field or function query
    • SolrCollapseFunction::setMin - Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::setNullPolicy - Sets the NULL Policy
    • SolrCollapseFunction::setSize - Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::__construct - Constructor
    • SolrCollapseFunction::__toString - Returns a string representing the constructed collapse function
    • SolrDisMaxQuery::addBigramPhraseField - Adds a Phrase Bigram Field (pf2 parameter)
    • SolrDisMaxQuery::addBoostQuery - Adds a boost query field with value and optional boost (bq parameter)
    • SolrDisMaxQuery::addPhraseField - Adds a Phrase Field (pf parameter)
    • SolrDisMaxQuery::addQueryField - Add a query field with optional boost (qf parameter)
    • SolrDisMaxQuery::addTrigramPhraseField - Adds a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::addUserField - Adds a field to User Fields Parameter (uf)
    • SolrDisMaxQuery::removeBigramPhraseField - Removes phrase bigram field (pf2 parameter)
    • SolrDisMaxQuery::removeBoostQuery - Removes a boost query partial by field name (bq)
    • SolrDisMaxQuery::removePhraseField - Removes a Phrase Field (pf parameter)
    • SolrDisMaxQuery::removeQueryField - Removes a Query Field (qf parameter)
    • SolrDisMaxQuery::removeTrigramPhraseField - Removes a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::removeUserField - Removes a field from The User Fields Parameter (uf)
    • SolrDisMaxQuery::setBigramPhraseFields - Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setBigramPhraseSlop - Sets Bigram Phrase Slop (ps2 parameter)
    • SolrDisMaxQuery::setBoostFunction - Sets a Boost Function (bf parameter)
    • SolrDisMaxQuery::setBoostQuery - Directly Sets Boost Query Parameter (bq)
    • SolrDisMaxQuery::setMinimumMatch - Set Minimum "Should" Match (mm)
    • SolrDisMaxQuery::setPhraseFields - Sets Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setPhraseSlop - Sets the default slop on phrase queries (ps parameter)
    • SolrDisMaxQuery::setQueryAlt - Set Query Alternate (q.alt parameter)
    • SolrDisMaxQuery::setQueryPhraseSlop - Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)
    • SolrDisMaxQuery::setTieBreaker - Sets Tie Breaker parameter (tie parameter)
    • SolrDisMaxQuery::setTrigramPhraseFields - Directly Sets Trigram Phrase Fields (pf3 parameter)
    • SolrDisMaxQuery::setTrigramPhraseSlop - Sets Trigram Phrase Slop (ps3 parameter)
    • SolrDisMaxQuery::setUserFields - Sets User Fields parameter (uf)
    • SolrDisMaxQuery::useDisMaxQueryParser - Switch QueryParser to be DisMax Query Parser
    • SolrDisMaxQuery::useEDisMaxQueryParser - Switch QueryParser to be EDisMax
    • SolrDisMaxQuery::__construct - Class Constructor
    • SolrDocument::addField - Adds a field to the document
    • SolrDocument::clear - Drops all the fields in the document
    • SolrDocument::current - Retrieves the current field
    • SolrDocument::deleteField - Removes a field from the document
    • SolrDocument::fieldExists - Checks if a field exists in the document
    • SolrDocument::getChildDocuments - Returns an array of child documents (SolrDocument)
    • SolrDocument::getChildDocumentsCount - Returns the number of child documents
    • SolrDocument::getField - Retrieves a field by name
    • SolrDocument::getFieldCount - Returns the number of fields in this document
    • SolrDocument::getFieldNames - Returns an array of fields names in the document
    • SolrDocument::getInputDocument - Returns a SolrInputDocument equivalent of the object
    • SolrDocument::hasChildDocuments - Checks whether the document has any child documents
    • SolrDocument::key - Retrieves the current key
    • SolrDocument::merge - Merges source to the current SolrDocument
    • SolrDocument::next - Moves the internal pointer to the next field
    • SolrDocument::offsetExists - Checks if a particular field exists
    • SolrDocument::offsetGet - Retrieves a field
    • SolrDocument::offsetSet - Adds a field to the document
    • SolrDocument::offsetUnset - Removes a field
    • SolrDocument::reset - This is an alias to SolrDocument::clear()
    • SolrDocument::rewind - Resets the internal pointer to the beginning
    • SolrDocument::serialize - Used for custom serialization
    • SolrDocument::sort - Sorts the fields in the document
    • SolrDocument::toArray - Returns an array representation of the document
    • SolrDocument::unserialize - Custom serialization of SolrDocument objects
    • SolrDocument::valid - Checks if the current position internally is still valid
    • SolrDocument::__clone - Creates a copy of a SolrDocument object
    • SolrDocument::__construct - Constructor
    • SolrDocument::__destruct - Destructor
    • SolrDocument::__get - Access the field as a property
    • SolrDocument::__isset - Checks if a field exists
    • SolrDocument::__set - Adds another field to the document
    • SolrDocument::__unset - Removes a field from the document
    • SolrDocumentField::__construct - Конструктор
    • SolrDocumentField::__destruct - Деструктор
    • SolrException::getInternalInfo - Возвращает внутреннюю информацию о том, где было выброшено исключение
    • SolrGenericResponse::__construct - Конструктор
    • SolrGenericResponse::__destruct - Деструктор
    • SolrIllegalArgumentException::getInternalInfo - Возвращает внутреннюю информацию о том, где было выброшено исключение
    • SolrIllegalOperationException::getInternalInfo - Возвращает внутреннюю информацию о том, где было выброшено исключение
    • SolrInputDocument::addChildDocument - Adds a child document for block indexing
    • SolrInputDocument::addChildDocuments - Adds an array of child documents
    • SolrInputDocument::addField - Adds a field to the document
    • SolrInputDocument::clear - Resets the input document
    • SolrInputDocument::deleteField - Removes a field from the document
    • SolrInputDocument::fieldExists - Checks if a field exists
    • SolrInputDocument::getBoost - Retrieves the current boost value for the document
    • SolrInputDocument::getChildDocuments - Returns an array of child documents (SolrInputDocument)
    • SolrInputDocument::getChildDocumentsCount - Returns the number of child documents
    • SolrInputDocument::getField - Retrieves a field by name
    • SolrInputDocument::getFieldBoost - Retrieves the boost value for a particular field
    • SolrInputDocument::getFieldCount - Returns the number of fields in the document
    • SolrInputDocument::getFieldNames - Returns an array containing all the fields in the document
    • SolrInputDocument::hasChildDocuments - Returns true if the document has any child documents
    • SolrInputDocument::merge - Merges one input document into another
    • SolrInputDocument::reset - This is an alias of SolrInputDocument::clear
    • SolrInputDocument::setBoost - Sets the boost value for this document
    • SolrInputDocument::setFieldBoost - Sets the index-time boost value for a field
    • SolrInputDocument::sort - Sorts the fields within the document
    • SolrInputDocument::toArray - Returns an array representation of the input document
    • SolrInputDocument::__clone - Creates a copy of a SolrDocument
    • SolrInputDocument::__construct - Constructor
    • SolrInputDocument::__destruct - Destructor
    • SolrModifiableParams::__construct - Конструктор
    • SolrModifiableParams::__destruct - Деструктор
    • SolrObject::getPropertyNames - Returns an array of all the names of the properties
    • SolrObject::offsetExists - Checks if the property exists
    • SolrObject::offsetGet - Used to retrieve a property
    • SolrObject::offsetSet - Sets the value for a property
    • SolrObject::offsetUnset - Unsets the value for the property
    • SolrObject::__construct - Creates Solr object
    • SolrObject::__destruct - Destructor
    • SolrParams::add - This is an alias for SolrParams::addParam
    • SolrParams::addParam - Adds a parameter to the object
    • SolrParams::get - This is an alias for SolrParams::getParam
    • SolrParams::getParam - Returns a parameter value
    • SolrParams::getParams - Returns an array of non URL-encoded parameters
    • SolrParams::getPreparedParams - Returns an array of URL-encoded parameters
    • SolrParams::serialize - Used for custom serialization
    • SolrParams::set - An alias of SolrParams::setParam
    • SolrParams::setParam - Sets the parameter to the specified value
    • SolrParams::toString - Returns all the name-value pair parameters in the object
    • SolrParams::unserialize - Used for custom serialization
    • SolrPingResponse::getResponse - Returns the response from the server
    • SolrPingResponse::__construct - Constructor
    • SolrPingResponse::__destruct - Destructor
    • SolrQuery::addExpandFilterQuery - Overrides main filter query, determines which documents to include in the main group
    • SolrQuery::addExpandSortField - Orders the documents within the expanded groups (expand.sort parameter)
    • SolrQuery::addFacetDateField - Maps to facet.date
    • SolrQuery::addFacetDateOther - Adds another facet.date.other parameter
    • SolrQuery::addFacetField - Adds another field to the facet
    • SolrQuery::addFacetQuery - Adds a facet query
    • SolrQuery::addField - Specifies which fields to return in the result
    • SolrQuery::addFilterQuery - Specifies a filter query
    • SolrQuery::addGroupField - Add a field to be used to group results
    • SolrQuery::addGroupFunction - Allows grouping results based on the unique values of a function query (group.func parameter)
    • SolrQuery::addGroupQuery - Allows grouping of documents that match the given query
    • SolrQuery::addGroupSortField - Add a group sort field (group.sort parameter)
    • SolrQuery::addHighlightField - Maps to hl.fl
    • SolrQuery::addMltField - Sets a field to use for similarity
    • SolrQuery::addMltQueryField - Maps to mlt.qf
    • SolrQuery::addSortField - Used to control how the results should be sorted
    • SolrQuery::addStatsFacet - Requests a return of sub results for values within the given facet
    • SolrQuery::addStatsField - Maps to stats.field parameter
    • SolrQuery::collapse - Collapses the result set to a single document per group
    • SolrQuery::getExpand - Returns true if group expanding is enabled
    • SolrQuery::getExpandFilterQueries - Returns the expand filter queries
    • SolrQuery::getExpandQuery - Returns the expand query expand.q parameter
    • SolrQuery::getExpandRows - Returns The number of rows to display in each group (expand.rows)
    • SolrQuery::getExpandSortFields - Returns an array of fields
    • SolrQuery::getFacet - Returns the value of the facet parameter
    • SolrQuery::getFacetDateEnd - Returns the value for the facet.date.end parameter
    • SolrQuery::getFacetDateFields - Returns all the facet.date fields
    • SolrQuery::getFacetDateGap - Returns the value of the facet.date.gap parameter
    • SolrQuery::getFacetDateHardEnd - Returns the value of the facet.date.hardend parameter
    • SolrQuery::getFacetDateOther - Returns the value for the facet.date.other parameter
    • SolrQuery::getFacetDateStart - Returns the lower bound for the first date range for all date faceting on this field
    • SolrQuery::getFacetFields - Returns all the facet fields
    • SolrQuery::getFacetLimit - Returns the maximum number of constraint counts that should be returned for the facet fields
    • SolrQuery::getFacetMethod - Returns the value of the facet.method parameter
    • SolrQuery::getFacetMinCount - Returns the minimum counts for facet fields should be included in the response
    • SolrQuery::getFacetMissing - Returns the current state of the facet.missing parameter
    • SolrQuery::getFacetOffset - Returns an offset into the list of constraints to be used for pagination
    • SolrQuery::getFacetPrefix - Returns the facet prefix
    • SolrQuery::getFacetQueries - Returns all the facet queries
    • SolrQuery::getFacetSort - Returns the facet sort type
    • SolrQuery::getFields - Returns the list of fields that will be returned in the response
    • SolrQuery::getFilterQueries - Returns an array of filter queries
    • SolrQuery::getGroup - Returns true if grouping is enabled
    • SolrQuery::getGroupCachePercent - Returns group cache percent value
    • SolrQuery::getGroupFacet - Returns the group.facet parameter value
    • SolrQuery::getGroupFields - Returns group fields (group.field parameter values)
    • SolrQuery::getGroupFormat - Returns the group.format value
    • SolrQuery::getGroupFunctions - Returns group functions (group.func parameter values)
    • SolrQuery::getGroupLimit - Returns the group.limit value
    • SolrQuery::getGroupMain - Returns the group.main value
    • SolrQuery::getGroupNGroups - Returns the group.ngroups value
    • SolrQuery::getGroupOffset - Returns the group.offset value
    • SolrQuery::getGroupQueries - Returns all the group.query parameter values
    • SolrQuery::getGroupSortFields - Returns the group.sort value
    • SolrQuery::getGroupTruncate - Returns the group.truncate value
    • SolrQuery::getHighlight - Returns the state of the hl parameter
    • SolrQuery::getHighlightAlternateField - Returns the highlight field to use as backup or default
    • SolrQuery::getHighlightFields - Returns all the fields that Solr should generate highlighted snippets for
    • SolrQuery::getHighlightFormatter - Returns the formatter for the highlighted output
    • SolrQuery::getHighlightFragmenter - Returns the text snippet generator for highlighted text
    • SolrQuery::getHighlightFragsize - Returns the number of characters of fragments to consider for highlighting
    • SolrQuery::getHighlightHighlightMultiTerm - Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries
    • SolrQuery::getHighlightMaxAlternateFieldLength - Returns the maximum number of characters of the field to return
    • SolrQuery::getHighlightMaxAnalyzedChars - Returns the maximum number of characters into a document to look for suitable snippets
    • SolrQuery::getHighlightMergeContiguous - Returns whether or not the collapse contiguous fragments into a single fragment
    • SolrQuery::getHighlightRegexMaxAnalyzedChars - Returns the maximum number of characters from a field when using the regex fragmenter
    • SolrQuery::getHighlightRegexPattern - Returns the regular expression for fragmenting
    • SolrQuery::getHighlightRegexSlop - Returns the deviation factor from the ideal fragment size
    • SolrQuery::getHighlightRequireFieldMatch - Returns if a field will only be highlighted if the query matched in this particular field
    • SolrQuery::getHighlightSimplePost - Returns the text which appears after a highlighted term
    • SolrQuery::getHighlightSimplePre - Returns the text which appears before a highlighted term
    • SolrQuery::getHighlightSnippets - Returns the maximum number of highlighted snippets to generate per field
    • SolrQuery::getHighlightUsePhraseHighlighter - Returns the state of the hl.usePhraseHighlighter parameter
    • SolrQuery::getMlt - Returns whether or not MoreLikeThis results should be enabled
    • SolrQuery::getMltBoost - Returns whether or not the query will be boosted by the interesting term relevance
    • SolrQuery::getMltCount - Returns the number of similar documents to return for each result
    • SolrQuery::getMltFields - Returns all the fields to use for similarity
    • SolrQuery::getMltMaxNumQueryTerms - Returns the maximum number of query terms that will be included in any generated query
    • SolrQuery::getMltMaxNumTokens - Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support
    • SolrQuery::getMltMaxWordLength - Returns the maximum word length above which words will be ignored
    • SolrQuery::getMltMinDocFrequency - Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs
    • SolrQuery::getMltMinTermFrequency - Returns the frequency below which terms will be ignored in the source document
    • SolrQuery::getMltMinWordLength - Returns the minimum word length below which words will be ignored
    • SolrQuery::getMltQueryFields - Returns the query fields and their boosts
    • SolrQuery::getQuery - Returns the main query
    • SolrQuery::getRows - Returns the maximum number of documents
    • SolrQuery::getSortFields - Returns all the sort fields
    • SolrQuery::getStart - Returns the offset in the complete result set
    • SolrQuery::getStats - Returns whether or not stats is enabled
    • SolrQuery::getStatsFacets - Returns all the stats facets that were set
    • SolrQuery::getStatsFields - Returns all the statistics fields
    • SolrQuery::getTerms - Returns whether or not the TermsComponent is enabled
    • SolrQuery::getTermsField - Returns the field from which the terms are retrieved
    • SolrQuery::getTermsIncludeLowerBound - Returns whether or not to include the lower bound in the result set
    • SolrQuery::getTermsIncludeUpperBound - Returns whether or not to include the upper bound term in the result set
    • SolrQuery::getTermsLimit - Returns the maximum number of terms Solr should return
    • SolrQuery::getTermsLowerBound - Returns the term to start at
    • SolrQuery::getTermsMaxCount - Returns the maximum document frequency
    • SolrQuery::getTermsMinCount - Returns the minimum document frequency to return in order to be included
    • SolrQuery::getTermsPrefix - Returns the term prefix
    • SolrQuery::getTermsReturnRaw - Whether or not to return raw characters
    • SolrQuery::getTermsSort - Returns an integer indicating how terms are sorted
    • SolrQuery::getTermsUpperBound - Returns the term to stop at
    • SolrQuery::getTimeAllowed - Returns the time in milliseconds allowed for the query to finish
    • SolrQuery::removeExpandFilterQuery - Removes an expand filter query
    • SolrQuery::removeExpandSortField - Removes an expand sort field from the expand.sort parameter
    • SolrQuery::removeFacetDateField - Removes one of the facet date fields
    • SolrQuery::removeFacetDateOther - Removes one of the facet.date.other parameters
    • SolrQuery::removeFacetField - Removes one of the facet.date parameters
    • SolrQuery::removeFacetQuery - Removes one of the facet.query parameters
    • SolrQuery::removeField - Removes a field from the list of fields
    • SolrQuery::removeFilterQuery - Removes a filter query
    • SolrQuery::removeHighlightField - Removes one of the fields used for highlighting
    • SolrQuery::removeMltField - Removes one of the moreLikeThis fields
    • SolrQuery::removeMltQueryField - Removes one of the moreLikeThis query fields
    • SolrQuery::removeSortField - Removes one of the sort fields
    • SolrQuery::removeStatsFacet - Removes one of the stats.facet parameters
    • SolrQuery::removeStatsField - Removes one of the stats.field parameters
    • SolrQuery::setEchoHandler - Toggles the echoHandler parameter
    • SolrQuery::setEchoParams - Determines what kind of parameters to include in the response
    • SolrQuery::setExpand - Enables/Disables the Expand Component
    • SolrQuery::setExpandQuery - Sets the expand.q parameter
    • SolrQuery::setExpandRows - Sets the number of rows to display in each group (expand.rows). Server Default 5
    • SolrQuery::setExplainOther - Sets the explainOther common query parameter
    • SolrQuery::setFacet - Maps to the facet parameter. Enables or disables facetting
    • SolrQuery::setFacetDateEnd - Maps to facet.date.end
    • SolrQuery::setFacetDateGap - Maps to facet.date.gap
    • SolrQuery::setFacetDateHardEnd - Maps to facet.date.hardend
    • SolrQuery::setFacetDateStart - Maps to facet.date.start
    • SolrQuery::setFacetEnumCacheMinDefaultFrequency - Sets the minimum document frequency used for determining term count
    • SolrQuery::setFacetLimit - Maps to facet.limit
    • SolrQuery::setFacetMethod - Specifies the type of algorithm to use when faceting a field
    • SolrQuery::setFacetMinCount - Maps to facet.mincount
    • SolrQuery::setFacetMissing - Maps to facet.missing
    • SolrQuery::setFacetOffset - Sets the offset into the list of constraints to allow for pagination
    • SolrQuery::setFacetPrefix - Specifies a string prefix with which to limits the terms on which to facet
    • SolrQuery::setFacetSort - Determines the ordering of the facet field constraints
    • SolrQuery::setGroup - Enable/Disable result grouping (group parameter)
    • SolrQuery::setGroupCachePercent - Enables caching for result grouping
    • SolrQuery::setGroupFacet - Sets group.facet parameter
    • SolrQuery::setGroupFormat - Sets the group format, result structure (group.format parameter)
    • SolrQuery::setGroupLimit - Specifies the number of results to return for each group. The server default value is 1
    • SolrQuery::setGroupMain - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
    • SolrQuery::setGroupNGroups - If true, Solr includes the number of groups that have matched the query in the results
    • SolrQuery::setGroupOffset - Sets the group.offset parameter
    • SolrQuery::setGroupTruncate - If true, facet counts are based on the most relevant document of each group matching the query
    • SolrQuery::setHighlight - Enables or disables highlighting
    • SolrQuery::setHighlightAlternateField - Specifies the backup field to use
    • SolrQuery::setHighlightFormatter - Specify a formatter for the highlight output
    • SolrQuery::setHighlightFragmenter - Sets a text snippet generator for highlighted text
    • SolrQuery::setHighlightFragsize - The size of fragments to consider for highlighting
    • SolrQuery::setHighlightHighlightMultiTerm - Use SpanScorer to highlight phrase terms
    • SolrQuery::setHighlightMaxAlternateFieldLength - Sets the maximum number of characters of the field to return
    • SolrQuery::setHighlightMaxAnalyzedChars - Specifies the number of characters into a document to look for suitable snippets
    • SolrQuery::setHighlightMergeContiguous - Whether or not to collapse contiguous fragments into a single fragment
    • SolrQuery::setHighlightRegexMaxAnalyzedChars - Specify the maximum number of characters to analyze
    • SolrQuery::setHighlightRegexPattern - Specify the regular expression for fragmenting
    • SolrQuery::setHighlightRegexSlop - Sets the factor by which the regex fragmenter can stray from the ideal fragment size
    • SolrQuery::setHighlightRequireFieldMatch - Require field matching during highlighting
    • SolrQuery::setHighlightSimplePost - Sets the text which appears after a highlighted term
    • SolrQuery::setHighlightSimplePre - Sets the text which appears before a highlighted term
    • SolrQuery::setHighlightSnippets - Sets the maximum number of highlighted snippets to generate per field
    • SolrQuery::setHighlightUsePhraseHighlighter - Whether to highlight phrase terms only when they appear within the query phrase
    • SolrQuery::setMlt - Enables or disables moreLikeThis
    • SolrQuery::setMltBoost - Set if the query will be boosted by the interesting term relevance
    • SolrQuery::setMltCount - Set the number of similar documents to return for each result
    • SolrQuery::setMltMaxNumQueryTerms - Sets the maximum number of query terms included
    • SolrQuery::setMltMaxNumTokens - Specifies the maximum number of tokens to parse
    • SolrQuery::setMltMaxWordLength - Sets the maximum word length
    • SolrQuery::setMltMinDocFrequency - Sets the mltMinDoc frequency
    • SolrQuery::setMltMinTermFrequency - Sets the frequency below which terms will be ignored in the source docs
    • SolrQuery::setMltMinWordLength - Sets the minimum word length
    • SolrQuery::setOmitHeader - Exclude the header from the returned results
    • SolrQuery::setQuery - Sets the search query
    • SolrQuery::setRows - Specifies the maximum number of rows to return in the result
    • SolrQuery::setShowDebugInfo - Flag to show debug information
    • SolrQuery::setStart - Specifies the number of rows to skip
    • SolrQuery::setStats - Enables or disables the Stats component
    • SolrQuery::setTerms - Enables or disables the TermsComponent
    • SolrQuery::setTermsField - Sets the name of the field to get the Terms from
    • SolrQuery::setTermsIncludeLowerBound - Include the lower bound term in the result set
    • SolrQuery::setTermsIncludeUpperBound - Include the upper bound term in the result set
    • SolrQuery::setTermsLimit - Sets the maximum number of terms to return
    • SolrQuery::setTermsLowerBound - Specifies the Term to start from
    • SolrQuery::setTermsMaxCount - Sets the maximum document frequency
    • SolrQuery::setTermsMinCount - Sets the minimum document frequency
    • SolrQuery::setTermsPrefix - Restrict matches to terms that start with the prefix
    • SolrQuery::setTermsReturnRaw - Return the raw characters of the indexed term
    • SolrQuery::setTermsSort - Specifies how to sort the returned terms
    • SolrQuery::setTermsUpperBound - Sets the term to stop at
    • SolrQuery::setTimeAllowed - The time allowed for search to finish
    • SolrQuery::__construct - Constructor
    • SolrQuery::__destruct - Destructor
    • SolrQueryResponse::__construct - Конструктор
    • SolrQueryResponse::__destruct - Деструктор
    • SolrResponse::getDigestedResponse - Returns the XML response as serialized PHP data
    • SolrResponse::getHttpStatus - Returns the HTTP status of the response
    • SolrResponse::getHttpStatusMessage - Returns more details on the HTTP status
    • SolrResponse::getRawRequest - Returns the raw request sent to the Solr server
    • SolrResponse::getRawRequestHeaders - Returns the raw request headers sent to the Solr server
    • SolrResponse::getRawResponse - Returns the raw response from the server
    • SolrResponse::getRawResponseHeaders - Returns the raw response headers from the server
    • SolrResponse::getRequestUrl - Returns the full URL the request was sent to
    • SolrResponse::getResponse - Returns a SolrObject representing the XML response from the server
    • SolrResponse::setParseMode - Sets the parse mode
    • SolrResponse::success - Was the request a success
    • SolrServerException::getInternalInfo - Возвращает внутреннюю информацию о том, где было выброшено исключение
    • SolrUpdateResponse::__construct - Конструктор
    • SolrUpdateResponse::__destruct - Деструктор
    • SolrUtils::digestXmlResponse - Parses an response XML string into a SolrObject
    • SolrUtils::escapeQueryChars - Escapes a lucene query string
    • SolrUtils::getSolrVersion - Returns the current version of the Solr extension
    • SolrUtils::queryPhrase - Prepares a phrase from an unescaped lucene string
    • solr_get_version - Возвращает текущую версию модуля Apache Solr
    • sort - Сортирует массив
    • soundex - Возвращает ключ soundex для строки
    • SphinxClient::addQuery - Добавление запроса к очереди запросов
    • SphinxClient::buildExcerpts - Построение текстовых фрагментов
    • SphinxClient::buildKeywords - Извлечение ключевых слов из запроса
    • SphinxClient::close - Закрытие ранее открытого постоянного соединения
    • SphinxClient::escapeString - Экранирование спецсимволов
    • SphinxClient::getLastError - Получение последнего сообщения об ошибке
    • SphinxClient::getLastWarning - Получение последнего предупреждения
    • SphinxClient::open - Создание постоянного подключения к серверу
    • SphinxClient::query - Выполнение поискового запроса
    • SphinxClient::resetFilters - Обнуление всех фильтров
    • SphinxClient::resetGroupBy - Сброс всех настроек группировок
    • SphinxClient::runQueries - Выполнение набора поисковых запросов
    • SphinxClient::setArrayResult - Изменение формата массива с набором результатов запроса
    • SphinxClient::setConnectTimeout - Установка таймаута соединения
    • SphinxClient::setFieldWeights - Установка весовых коэффициентов полей
    • SphinxClient::setFilter - Добавление фильтра по типу поля integer
    • SphinxClient::setFilterFloatRange - Добавление фильтра по диапазону значений (для поля типа float)
    • SphinxClient::setFilterRange - Добавление фильтра по диапазону значений (для поля типа integer)
    • SphinxClient::setGeoAnchor - Установка опорной точки для расчета географической удаленности
    • SphinxClient::setGroupBy - Установка атрибута группировки
    • SphinxClient::setGroupDistinct - Установка названия атрибута для расчета количества уникальных значений при группировке
    • SphinxClient::setIDRange - Установка диапазона значений допустимых ID документов
    • SphinxClient::setIndexWeights - Установка весовых коэффициентов индексов
    • SphinxClient::setLimits - Установка смещения и предельного числа значений для набора результатов
    • SphinxClient::setMatchMode - Установка режима совпадения при полнотекстовом поиске
    • SphinxClient::setMaxQueryTime - Установка максимального времени выполнения запроса
    • SphinxClient::setOverride - Временное переопределение значений атрибута для документов
    • SphinxClient::setRankingMode - Установка режима ранжирования
    • SphinxClient::setRetries - Установка количества повторных попыток и задержки между ними
    • SphinxClient::setSelect - Установка условия выборки
    • SphinxClient::setServer - Установка хоста и порта searchd
    • SphinxClient::setSortMode - Установка режима сортировки результатов
    • SphinxClient::status - Запрос статуса searchd
    • SphinxClient::updateAttributes - Обновление атрибутов документа
    • SphinxClient::__construct - Создание нового объекта SphinxClient
    • SplDoublyLinkedList::add - Добавляет/вставляет новое значение по указанному индексу
    • SplDoublyLinkedList::bottom - Получает узел, находящийся в начале двусвязного списка
    • SplDoublyLinkedList::count - Подсчитывает количество элементов в двусвязном списке
    • SplDoublyLinkedList::current - Возвращает текущий элемент массива
    • SplDoublyLinkedList::getIteratorMode - Возвращает режим итерации
    • SplDoublyLinkedList::isEmpty - Проверяет, является ли двусвязный список пустым
    • SplDoublyLinkedList::key - Возвращает индекс текущего узла
    • SplDoublyLinkedList::next - Перемещает итератор к следующему элементу
    • SplDoublyLinkedList::offsetExists - Проверяет, существует ли запрашиваемый индекс
    • SplDoublyLinkedList::offsetGet - Возвращает значение по указанному индексу
    • SplDoublyLinkedList::offsetSet - Устанавливает значение по заданному индексу $index в $newval
    • SplDoublyLinkedList::offsetUnset - Удаляет значение по указанному индексу $index
    • SplDoublyLinkedList::pop - Удаляет (выталкивает) узел, находящийся в конце двусвязного списка
    • SplDoublyLinkedList::prev - Перемещает итератор к предыдущему элементу
    • SplDoublyLinkedList::push - Помещает элемент в конец двусвязного списка
    • SplDoublyLinkedList::rewind - Возвращает итератор в начало
    • SplDoublyLinkedList::serialize - Сериализует хранилище
    • SplDoublyLinkedList::setIteratorMode - Устанавливает режим итерации
    • SplDoublyLinkedList::shift - Удаляет узел, находящийся в начале двусвязного списка
    • SplDoublyLinkedList::top - Получает узел, находящийся в конце двусвязного списка
    • SplDoublyLinkedList::unserialize - Десериализует хранилище
    • SplDoublyLinkedList::unshift - Вставляет элемент в начало двусвязного списка
    • SplDoublyLinkedList::valid - Проверяет, содержит ли узлы двусвязный список
    • SplDoublyLinkedList::__construct - Создает новый двусвязный список
    • SplEnum::getConstList - Возвратить все константы (возможные значения) в виде массива
    • SplFileInfo::getATime - Получает время последнего доступа к файлу
    • SplFileInfo::getBasename - Получает базовое имя файла
    • SplFileInfo::getCTime - Возвращает время последнего изменения индексного дескриптора файла
    • SplFileInfo::getExtension - Получает расширение файла
    • SplFileInfo::getFileInfo - Получает объект SplFileInfo для файла
    • SplFileInfo::getFilename - Получает имя файла
    • SplFileInfo::getGroup - Получает группу файла
    • SplFileInfo::getInode - Получает индексный дескриптор для файла
    • SplFileInfo::getLinkTarget - Получает путь ссылки
    • SplFileInfo::getMTime - Получает время последнего изменения
    • SplFileInfo::getOwner - Получает владельца файла
    • SplFileInfo::getPath - Получает путь без имени файла
    • SplFileInfo::getPathInfo - Получает объект SplFileInfo для заданного пути
    • SplFileInfo::getPathname - Получает путь к файлу
    • SplFileInfo::getPerms - Получает список разрешений
    • SplFileInfo::getRealPath - Получает абсолютный путь к файлу
    • SplFileInfo::getSize - Получает размер файла
    • SplFileInfo::getType - Получает тип файла
    • SplFileInfo::isDir - Указывает, является ли файл каталогом
    • SplFileInfo::isExecutable - Указывает, является ли файл исполняемым
    • SplFileInfo::isFile - Указывает, ссылается ли объект на обычный файл
    • SplFileInfo::isLink - Указывает, является ли файл ссылкой
    • SplFileInfo::isReadable - Указывает, является ли файл доступным для чтения
    • SplFileInfo::isWritable - Указывает, является ли файл доступным для записи
    • SplFileInfo::openFile - Получает объект SplFileObject для файла
    • SplFileInfo::setFileClass - Задает имя класса, который будет использоваться методом SplFileInfo::openFile
    • SplFileInfo::setInfoClass - Задает имя класса, объекты которого будут создаваться методами SplFileInfo::getFileInfo и SplFileInfo::getPathInfo
    • SplFileInfo::__construct - Создать новый объект SplFileInfo
    • SplFileInfo::__toString - Возвращает путь к файлу в виде строки
    • SplFileObject::current - Получить текущую строки файла
    • SplFileObject::eof - Проверяет, достигнут ли конец файла
    • SplFileObject::fflush - Сбрасывает буфер вывода в файл
    • SplFileObject::fgetc - Получает символ из файла
    • SplFileObject::fgetcsv - Получить строку из файла и ее разбор как поля CSV
    • SplFileObject::fgets - Получает строку из файла
    • SplFileObject::fgetss - Получить строку из файла и удалить теги HTML
    • SplFileObject::flock - Портируемая блокировка файла
    • SplFileObject::fpassthru - Выводит всё оставшееся содержимое файла в выходной поток
    • SplFileObject::fputcsv - Записать массив полей в виде строки CSV
    • SplFileObject::fread - Чтение из файла
    • SplFileObject::fscanf - Разбирает строку файла в соответствии с заданным форматом
    • SplFileObject::fseek - Перевод файлового указателя на заданную позицию
    • SplFileObject::fstat - Получает информацию о файле
    • SplFileObject::ftell - Вернуть текущую позицию файлового указателя
    • SplFileObject::ftruncate - Обрезает файл до заданной длины
    • SplFileObject::fwrite - Запись в файл
    • SplFileObject::getChildren - Метод-заглушка
    • SplFileObject::getCsvControl - Получает символы разделителя, обертывания и экранирования для CSV
    • SplFileObject::getCurrentLine - Псевдоним метода SplFileObject::fgets
    • SplFileObject::getFlags - Получает флаги настройки объекта SplFileObject
    • SplFileObject::getMaxLineLen - Получить максимальную длину строки
    • SplFileObject::hasChildren - Класс SplFileObject не имеет наследников
    • SplFileObject::key - Получить номер строки
    • SplFileObject::next - Читать следующую строку
    • SplFileObject::rewind - Перемотка файлового указателя в начало файла
    • SplFileObject::seek - Перевод файлового указателя на заданную строку
    • SplFileObject::setCsvControl - Устанавливает символы разделителя, обертывания и экранирования для CSV
    • SplFileObject::setFlags - Устанавливает флаги для SplFileObject
    • SplFileObject::setMaxLineLen - Установить максимальную длину строки
    • SplFileObject::valid - Проверяет, достигнут ли конец файла (EOF)
    • SplFileObject::__construct - Создает объект SplFileObject
    • SplFileObject::__toString - Псевдоним SplFileObject::fgets
    • SplFixedArray::count - Возвращает размер массива
    • SplFixedArray::current - Возвращает текущий элемент массива
    • SplFixedArray::fromArray - Импортирует PHP-массив в объект класса SplFixedArray
    • SplFixedArray::getSize - Получает размер массива
    • SplFixedArray::key - Возвращает индекс текущего элемента массива
    • SplFixedArray::next - Переходит к следующему элементу массива
    • SplFixedArray::offsetExists - Возвращает факт наличия указанного индекса массива
    • SplFixedArray::offsetGet - Возвращает значение по указанному индексу
    • SplFixedArray::offsetSet - Устанавливает новое значение по заданному индексу
    • SplFixedArray::offsetUnset - Удаляет значение по индексу $index
    • SplFixedArray::rewind - Устанавливает итератор массива в начало
    • SplFixedArray::setSize - Изменяет размер массива
    • SplFixedArray::toArray - Возвращает обычный PHP-массив со значениями фиксированного массива
    • SplFixedArray::valid - Проверяет массив на наличие элементов
    • SplFixedArray::__construct - Создает новый массив фиксированной длины
    • SplFixedArray::__wakeup - Переинициализация массива после десериализации
    • SplHeap::compare - Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче
    • SplHeap::count - Определяет количество элементов в куче
    • SplHeap::current - Возвращает текущий узел, на который указывает итератор
    • SplHeap::extract - Извлекает узел из кучи и пересортирует ее
    • SplHeap::insert - Вставляет элемент в кучу и пересортирует ее
    • SplHeap::isCorrupted - Указывает, находится ли куча в поврежденном состоянии
    • SplHeap::isEmpty - Проверка, пуста ли куча
    • SplHeap::key - Возвращает индекс текущего узла
    • SplHeap::next - Переход к следующему узлу
    • SplHeap::recoverFromCorruption - Восстанавливает корректное состояние кучи
    • SplHeap::rewind - Перевод итератора на начало
    • SplHeap::top - Возвращает узел, находящийся на вершине кучи
    • SplHeap::valid - Проверяет, содержит ли куча еще элементы
    • SplHeap::__construct - Создает новую пустую кучу
    • split - Разбиение строки на массив по регулярному выражению
    • spliti - Разбивает строку в массив с помощью регулярного выражения без учета регистра
    • SplMaxHeap::compare - Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче
    • SplMinHeap::compare - Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче
    • SplObjectStorage::addAll - Добавляет все объекты из другого контейнера
    • SplObjectStorage::attach - Добавляет объект в контейнер
    • SplObjectStorage::contains - Проверяет, содержит ли контейнер заданный объект
    • SplObjectStorage::count - Возвращает количество объектов в контейнере
    • SplObjectStorage::current - Возвращает текущий объект
    • SplObjectStorage::detach - Удаляет объект object из контейнера
    • SplObjectStorage::getHash - Вычисляет уникальный идентификатор для объектов контейнера
    • SplObjectStorage::getInfo - Возвращает данные, ассоциированные с текущим объектом
    • SplObjectStorage::key - Возвращает индекс текущего положения итератора
    • SplObjectStorage::next - Переход к следующему объекту
    • SplObjectStorage::offsetExists - Проверяет, существует ли объект в контейнере
    • SplObjectStorage::offsetGet - Возвращает данные, ассоциированные с объектом object
    • SplObjectStorage::offsetSet - Ассоциирует данные с объектом в контейнере
    • SplObjectStorage::offsetUnset - Удаляет объект из контейнера
    • SplObjectStorage::removeAll - Удаляет из текущего контейнера объекты, которые есть в другом контейнере
    • SplObjectStorage::removeAllExcept - Удаляет из текущего контейнера все объекты, которых нет в другом контейнере
    • SplObjectStorage::rewind - Переводит итератор на первый элемент контейнера
    • SplObjectStorage::serialize - Сериализует контейнер
    • SplObjectStorage::setInfo - Ассоциирует данные с текущим объектом контейнера
    • SplObjectStorage::unserialize - Восстанавливает сериализованый контейнер из строки
    • SplObjectStorage::valid - Определяет, допустимо ли текущее значение итератора
    • SplObserver::update - Получить обновление от субъекта
    • SplPriorityQueue::compare - Сравнивает приоритеты для корректного помещения элементов в очередь
    • SplPriorityQueue::count - Производит подсчет элементов в очереди
    • SplPriorityQueue::current - Возвращает текущий узел, на который указывает итератор
    • SplPriorityQueue::extract - Извлекает узел из начала очереди и пересортирует ее
    • SplPriorityQueue::getExtractFlags - Получить флаги извлечения
    • SplPriorityQueue::insert - Добавляет элемент в очередь и пересортирует ее
    • SplPriorityQueue::isCorrupted - Указывает, находится ли приоритетная очередь в поврежденном состоянии
    • SplPriorityQueue::isEmpty - Проверяет, является ли очередь пустой
    • SplPriorityQueue::key - Возвращает индекс текущего узла
    • SplPriorityQueue::next - Переход к следующему узлу
    • SplPriorityQueue::recoverFromCorruption - Восстанавливает корректное состояние очереди
    • SplPriorityQueue::rewind - Переводит итератор на начало очереди
    • SplPriorityQueue::setExtractFlags - Задает режим извлечения узлов
    • SplPriorityQueue::top - Возвращает узел, находящийся в начале очереди
    • SplPriorityQueue::valid - Проверяет, есть ли в очереди еще элементы
    • SplPriorityQueue::__construct - Создает новую пустую очередь
    • SplQueue::dequeue - Удаляет элемент из очереди
    • SplQueue::enqueue - Добавляет элемент в очередь
    • SplQueue::setIteratorMode - Устанавливает режим итератора
    • SplQueue::__construct - Создает новую очередь, реализованную с использованием двусвязного списка
    • SplStack::setIteratorMode - Устанавливает режим итератора
    • SplStack::__construct - Создает новый стек, реализованный с использованием двусвязного списка
    • SplSubject::attach - Присоединить наблюдателя (объект класса SplObserver)
    • SplSubject::detach - Отсоединить наблюдателя
    • SplSubject::notify - Уведомить наблюдателя
    • SplTempFileObject::__construct - Создает новый объект временного файла
    • SplType::__construct - Создать новое значение некоторого типа
    • spl_autoload - Реализация по умолчанию метода __autoload()
    • spl_autoload_call - Попытка загрузить класс всеми зарегистрированными функциями __autoload()
    • spl_autoload_extensions - Регистрация и вывод расширений файлов для spl_autoload
    • spl_autoload_functions - Получение списка всех зарегистрированных функций __autoload()
    • spl_autoload_register - Регистрирует заданную функцию в качестве реализации метода __autoload()
    • spl_autoload_unregister - Отмена регистрации функции в качестве реализации метода __autoload()
    • spl_classes - Возвращает доступные классы SPL
    • spl_object_hash - Возвращает хеш-идентификатор для объекта
    • spl_object_id - Получить целочисленный идентификатор объекта
    • Spoofchecker::areConfusable - Проверить, являются ли строки подозрительными
    • Spoofchecker::isSuspicious - Проверяет, содержит ли текст подозрительные символы
    • Spoofchecker::setAllowedLocales - Локаль для использования в проверках
    • Spoofchecker::setChecks - Установить набор проверок
    • Spoofchecker::__construct - Конструктор класса
    • sprintf - Возвращает отформатированную строку
    • SQL, принимаемый 4D - PDO и SQL 4D
    • SQLite3::busyTimeout - Установить обработчик "занято" на соединение
    • SQLite3::changes - Получить количество строк, которые были изменены/удалены/вставлены последним запросом
    • SQLite3::close - Закрыть соединение с базой данных
    • SQLite3::createAggregate - Зарегистрировать функцию PHP в качестве агрегирующей функции SQL
    • SQLite3::createCollation - Регистрирует функцию PHP для использования в качестве функции сортировки SQL
    • SQLite3::createFunction - Регистрирует функцию PHP для использования в качестве скалярной функции SQL
    • SQLite3::enableExceptions - Включить выброс исключений
    • SQLite3::escapeString - Возвращает правильно экранированную строку
    • SQLite3::exec - Выполняет запрос без результата к текущей базе данных
    • SQLite3::lastErrorCode - Возвращает числовой код результата последнего неудачного запроса SQLite
    • SQLite3::lastErrorMsg - Возвращает текст на английском, описывающий последний неудачный запрос SQLite
    • SQLite3::lastInsertRowID - Возвращает идентификатор строки последней вставки (INSERT) в базу данных
    • SQLite3::loadExtension - Попытаться загрузить библиотеку модуля SQLite
    • SQLite3::open - Открыть базу данных SQLite
    • SQLite3::openBlob - Открывает ресурс потока для чтения BLOB
    • SQLite3::prepare - Подготавливает SQL-запрос для выполнения
    • SQLite3::query - Выполняет SQL-запрос
    • SQLite3::querySingle - Выполняет запрос и возвращает одиночный результат
    • SQLite3::version - Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую
    • SQLite3::__construct - Создает экземпляр объекта SQLite3 и открывает соеденение с базой
    • SQLite3Result::columnName - >Возвращает имя n-ного столбца
    • SQLite3Result::columnType - Возвращает тип n-ного столбца
    • SQLite3Result::fetchArray - Выбирает одну строку из результирующего набора и помещает ее в ассоциативный или нумерованный массив, или в оба сразу
    • SQLite3Result::finalize - Закрывает результирующий набор
    • SQLite3Result::numColumns - Возвращает количество столбцов в результирующем наборе
    • SQLite3Result::reset - Сбрасывает указатель результирующего набора на первую строку
    • SQLite3Stmt::bindParam - Связывает параметр с переменной подготовленного запроса
    • SQLite3Stmt::bindValue - Связывает значение параметра с переменной подготовленного запроса
    • SQLite3Stmt::clear - Удаляет все текущие привязанные параметры
    • SQLite3Stmt::close - Закрывает подготовленный запрос
    • SQLite3Stmt::execute - Выполняет подготовленный запрос и возвращает объект с результирующим набором
    • SQLite3Stmt::getSQL - Получить SQL-запрос в виде строки из запроса
    • SQLite3Stmt::paramCount - Возвращает количество параметров в подготовленном запросе
    • SQLite3Stmt::readOnly - Проверяет, является ли подготовленный запрос только для чтения
    • SQLite3Stmt::reset - Сбрасывает подготовленный запрос
    • sqlite_array_query - Выполняет запрос к базе данных и возвращает результат в виде массива
    • sqlite_busy_timeout - Устанавливает или полностью отключает время ожидания
    • sqlite_changes - Возвращает количество записей, которые были изменены последним SQL-запросом
    • sqlite_close - Закрывает открытую базу данных SQLite
    • sqlite_column - Выбирает столбец из текущей записи результата запроса
    • sqlite_create_aggregate - Регистрирует агрегирующую функцию для использования в SQL-запросах
    • sqlite_create_function - Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах
    • sqlite_current - Возвращает текущую запись из результирующего набора в виде массива
    • sqlite_error_string - Возвращает строку с описанием ошибки
    • sqlite_escape_string - Экранирует спецсимволы в строке для использования в запросе
    • sqlite_exec - Выполняет запрос, не возвращающий записей
    • sqlite_factory - Открывает базу данных SQLite и возвращает объект SQLiteDatabase
    • 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 - Возвращает текущую позицию указателя
    • 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 - Выполняет запрос и возвращает массив со значениями одного поля или первую запись
    • sqlite_udf_decode_binary - Декодирует бинарные данные, переданные в качестве параметров в UDF
    • sqlite_udf_encode_binary - Кодирует бинарные данные перед тем как вернуть их из UDF
    • sqlite_unbuffered_query - Выполняет запрос без буферизации результатов
    • sqlite_valid - Проверяет, есть ли еще доступные записи
    • sqlsrv_begin_transaction - Begins a database transaction
    • sqlsrv_cancel - Cancels a statement
    • sqlsrv_client_info - Returns information about the client and specified connection
    • sqlsrv_close - Closes an open connection and releases resourses associated with the connection
    • sqlsrv_commit - Commits a transaction that was begun with sqlsrv_begin_transaction
    • sqlsrv_configure - Changes the driver error handling and logging configurations
    • sqlsrv_connect - Opens a connection to a Microsoft SQL Server database
    • sqlsrv_errors - Returns error and warning information about the last SQLSRV operation performed
    • sqlsrv_execute - Executes a statement prepared with sqlsrv_prepare
    • sqlsrv_fetch - Makes the next row in a result set available for reading
    • sqlsrv_fetch_array - Returns a row as an array
    • sqlsrv_fetch_object - Retrieves the next row of data in a result set as an object
    • sqlsrv_field_metadata - Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query
    • sqlsrv_free_stmt - Frees all resources for the specified statement
    • sqlsrv_get_config - Returns the value of the specified configuration setting
    • sqlsrv_get_field - Gets field data from the currently selected row
    • sqlsrv_has_rows - Indicates whether the specified statement has rows
    • sqlsrv_next_result - Makes the next result of the specified statement active
    • sqlsrv_num_fields - Retrieves the number of fields (columns) on a statement
    • sqlsrv_num_rows - Retrieves the number of rows in a result set
    • sqlsrv_prepare - Prepares a query for execution
    • sqlsrv_query - Prepares and executes a query
    • sqlsrv_rollback - Rolls back a transaction that was begun with sqlsrv_begin_transaction
    • sqlsrv_rows_affected - Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed
    • sqlsrv_send_stream_data - Sends data from parameter streams to the server
    • sqlsrv_server_info - Returns information about the server
    • SqlStatement::bind - Связывает параметры утверждения
    • SqlStatement::execute - Выполняет операцию
    • SqlStatement::getNextResult - Получает следующий результат
    • SqlStatement::getResult - Получает результат
    • SqlStatement::hasMoreResults - Проверяет, есть ли еще результаты
    • SqlStatement::__construct - Описание конструктора
    • SqlStatementResult::fetchAll - Получает все строки из результата
    • SqlStatementResult::fetchOne - Получает одну строку
    • SqlStatementResult::getAffectedItemsCount - Получает затронутое количество строк
    • SqlStatementResult::getColumnNames - Получает имена столбцов
    • SqlStatementResult::getColumns - Получает столбцы
    • SqlStatementResult::getColumnsCount - Получает количество столбцов
    • SqlStatementResult::getGeneratedIds - Получает сгенерированные идентификаторы
    • SqlStatementResult::getLastInsertId - Получает последний идентификатор вставки
    • SqlStatementResult::getWarnings - Получает предупреждения от последней операции
    • SqlStatementResult::getWarningsCount - Получает количество предупреждений от последней операции
    • SqlStatementResult::hasData - Проверяет, есть ли у результата данные
    • SqlStatementResult::nextResult - Получает следующий результат
    • SqlStatementResult::__construct - Описание конструктора
    • sql_regcase - Создает регулярное выражение для регистронезависимого сравнения
    • sqrt - Квадратный корень
    • srand - Изменяет начальное число генератора псевдослучайных чисел
    • sscanf - Разбирает строку в соответствии с заданным форматом
    • ssdeep_fuzzy_compare - Вычисляет похожесть двух сигнатур нечетких хешей
    • ssdeep_fuzzy_hash - Создает нечеткий хеш из строки
    • ssdeep_fuzzy_hash_filename - Создание нечеткого хеша из файла
    • ssh2:// - Secure Shell 2
    • ssh2_auth_agent - Аутентификация через SSH с помощью агент ssh
    • ssh2_auth_hostbased_file - Аутентификация с использованием открытого ключа хоста
    • ssh2_auth_none - Аутентификация как "none"
    • ssh2_auth_password - Аутентификация через SSH с использованием обычного пароля
    • ssh2_auth_pubkey_file - Аутентификация с открытым ключем
    • ssh2_connect - Подключение к SSH-серверу
    • ssh2_disconnect - Закрыть соединение с удаленным сервером SSH
    • ssh2_exec - Выполнение команды на удаленном сервере
    • ssh2_fetch_stream - Получение расширенного потока данных
    • ssh2_fingerprint - Получение отпечатка удаленного сервера
    • ssh2_methods_negotiated - Возвращает список согласованных методов
    • ssh2_publickey_add - Добавляет авторизованный открытый ключ
    • ssh2_publickey_init - Инициализирует подсистему открытого ключа
    • ssh2_publickey_list - Список уже авторизованных открытых ключей
    • ssh2_publickey_remove - Удаляет авторизованный открытый ключ
    • ssh2_scp_recv - Запрос файла через SCP
    • ssh2_scp_send - Отправка файла через SCP
    • ssh2_sftp - Инициализировать подсистему SFTP
    • ssh2_sftp_chmod - Изменение прав доступа
    • 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 - Возвращает информацию о файле
    • Statement::getNextResult - Получает следующий результат
    • Statement::getResult - Получает результат
    • Statement::hasMoreResults - Проверяет, есть ли еще результаты
    • Statement::__construct - Описание конструктора
    • stats_absolute_deviation - Возвращает абсолютное отклонение массива значений
    • stats_cdf_beta - Вычисляет любой один параметр Бета-распределения на основе остальных заданных значений
    • stats_cdf_binomial - Вычисляет один из параметров биноминального распределения по остальным
    • stats_cdf_cauchy - Вычисляет один из параметров распределения Коши по остальным
    • stats_cdf_chisquare - Вычисляет один из параметров распределения хи-квадрат по остальным
    • stats_cdf_exponential - Вычисляет один из параметров экспоненциального распределения по остальным
    • stats_cdf_f - Вычисляет один из параметров распределения Фишера по остальным
    • stats_cdf_gamma - Вычисляет один из параметров Гамма-распределения по остальным
    • stats_cdf_laplace - Вычисляет один из параметров распределения Лапласа по остальным
    • stats_cdf_logistic - Вычисляет один из параметров логистического распределения по остальным
    • stats_cdf_negative_binomial - Вычисляет один из параметров Отрицательного Биноминального распределения по остальным
    • stats_cdf_noncentral_chisquare - Вычисляет один из параметров нецентрального распределения хи-квадрат по остальным
    • stats_cdf_noncentral_f - Вычисляет один из параметров нецентрального распределения Фишера по остальным
    • stats_cdf_noncentral_t - Вычисляет один из параметров нецентрального распределения Стьюдента в зависимости от остальных
    • stats_cdf_normal - Вычисляет один из параметров распределения в зависимости от остальных
    • stats_cdf_poisson - Вычисляет один из параметров распределения Пуассона по остальным
    • stats_cdf_t - Вычисляет один из параметров распределения Стьюдента по остальным
    • stats_cdf_uniform - Вычисляет один из параметров равномерного распределения по остальным
    • stats_cdf_weibull - Вычисляет один из параметров распределения Вейбулла по остальным
    • stats_covariance - Вычисляет ковариацию двух наборов данных
    • stats_dens_beta - Плотность вероятности бета-распределения
    • stats_dens_cauchy - Плотность вероятности распределения Коши
    • stats_dens_chisquare - Плотность вероятности распределения хи-квадрат
    • stats_dens_exponential - Плотность вероятности экспоненциального распределения
    • stats_dens_f - Плотность вероятности распределения Фишера
    • stats_dens_gamma - Плотность вероятности гамма-распределения
    • stats_dens_laplace - Плотность вероятности распределения Лапласа
    • stats_dens_logistic - Плотность вероятности логистического распределения
    • stats_dens_normal - Возвращает плотность вероятности нормального распределения
    • stats_dens_pmf_binomial - Вероятностная мера биноминального распределения
    • stats_dens_pmf_hypergeometric - Вероятностная мера гипергеометрического распределения
    • stats_dens_pmf_negative_binomial - Функция плотности вероятности негативного биноминального распределения
    • stats_dens_pmf_poisson - Вероятностная мера распределения Пуассона
    • stats_dens_t - Плотность вероятности распределения Стьюдента
    • stats_dens_uniform - Функция плотности вероятности равномерного распределения
    • stats_dens_weibull - Плотность вероятности распределения Вейбулла
    • stats_harmonic_mean - Возвращает среднее гармоническое массива значений
    • stats_kurtosis - Вычисляет эксцесс данных в массиве
    • stats_rand_gen_beta - Вычисляет случайное отклонение от бета-распределения
    • stats_rand_gen_chisquare - Вычисляет случайное отклонение от распределения хи-квадрат
    • stats_rand_gen_exponential - Вычисляет случайное отклонение от экспоненциального распределения
    • stats_rand_gen_f - Генерирует случайное отклонение от распределения Фишера
    • stats_rand_gen_funiform - Сгенерировать рациональное число от low (исключая) до high (исключая) на базе равномерного распределения
    • stats_rand_gen_gamma - Вычисляет случайное отклонение от гамма-распределения
    • stats_rand_gen_ibinomial - Вычисляет случайное отклонение от биноминального распределения
    • stats_rand_gen_ibinomial_negative - Вычисляет случайное отклонение от отрицательного биноминального распределения
    • stats_rand_gen_int - Генерирует случайное число в диапазоне от 1 до 2147483562
    • stats_rand_gen_ipoisson - Вычисляет случайное отклонение от распределения Пуассона
    • stats_rand_gen_iuniform - Геренирует целое число равномерно распределенное в диапазоне LOW (включая) и HIGH (включая)
    • stats_rand_gen_noncentral_chisquare - Генерирует случайное отклонение нецентрального распределения хи-квардат
    • stats_rand_gen_noncentral_f - Вычисляет случайное отклонение от нецентрального распределения Фишера
    • stats_rand_gen_noncentral_t - Вычисляет единичное случайное отклонение от нецентрального распределения Стьюдента
    • stats_rand_gen_normal - Вычисляет случайное отклонение от нормального распределения
    • stats_rand_gen_t - Вычисляет одиночное случайное отклонение от распределения Стьюдента
    • stats_rand_get_seeds - Получить начальные значения генератора случайных чисел
    • stats_rand_phrase_to_seeds - Генерирует два начальных значения для генератора случайных чисел RGN
    • stats_rand_ranf - Возвращает случайное рациональное число в диапазоне 0 - 1
    • stats_rand_setall - Задать начальные значения генератора случайных чисел
    • stats_skew - Вычисляет асимметрию данных в массиве
    • stats_standard_deviation - Возвращает стандартное отклонение
    • stats_stat_binomial_coef - Получить биноминальный коэффициент
    • stats_stat_correlation - Возвращает коэффициент корреляции Пирсона двух наборов данных
    • stats_stat_factorial - Факториал целого числа
    • stats_stat_independent_t - Получить значение t для двухвыборочного t-критерия Стьюдента для независимых выборок
    • stats_stat_innerproduct - Возвращает скалярное произведение двух векторов
    • stats_stat_paired_t - Получить значение t для двухвыборочного t-критерия Стьюдента для зависимых выборок
    • stats_stat_percentile - Возвращает значение процентили
    • stats_stat_powersum - Возвращает сумму степеней вектора
    • stats_variance - Возвращает дисперсию
    • Stomp::abort - Отменяет выполнение текущей транзакции
    • Stomp::ack - Подтверждает получение сообщения
    • Stomp::begin - Создает транзакцию
    • Stomp::commit - Выполняет текущую транзакцию
    • Stomp::error - Возвращает последнюю ошибку Stomp
    • Stomp::getReadTimeout - Возвращает время максимального ожидания операции чтения
    • Stomp::getSessionId - Возвращает идентификатор текущей сессии Stomp
    • Stomp::hasFrame - Проверяет, возможно ли чтение фрейма
    • Stomp::readFrame - Выполняет операцию чтения следующего фрейма
    • Stomp::send - Отправляет сообщение
    • Stomp::setReadTimeout - Устанавливает предельное время ожидания операции чтения
    • Stomp::subscribe - Регистрирует подписку на указанную рассылку
    • Stomp::unsubscribe - Удаляет существующую подписку
    • Stomp::__construct - Открывает соединение
    • Stomp::__destruct - Закрывает Stomp-соединение
    • StompException::getDetails - Возвращает сведения об исключении
    • StompFrame::__construct - Конструктор
    • stomp_connect_error - Возвращает строку с описанием последней ошибки подключения
    • stomp_version - Возвращает текущую версию модуля Stomp
    • strcasecmp - Бинарно-безопасное сравнение строк без учета регистра
    • strchr - Псевдоним strstr
    • strcmp - Бинарно-безопасное сравнение строк
    • strcoll - Сравнение строк с учетом текущей локали
    • strcspn - Возвращает длину участка в начале строки, не соответствующего маске
    • streamWrapper::dir_closedir - Закрыть дескриптор директории
    • streamWrapper::dir_opendir - Открыть дескриптор директории
    • streamWrapper::dir_readdir - Чтение записи из дескриптора директории
    • streamWrapper::dir_rewinddir - Дескриптор директории перемещения на её в начало
    • streamWrapper::mkdir - Создание директории
    • streamWrapper::rename - Переименовывает файл или директорию
    • streamWrapper::rmdir - Удаляет директорию
    • streamWrapper::stream_cast - Получает ресурс уровнем ниже
    • streamWrapper::stream_close - Закрывает ресурс
    • streamWrapper::stream_eof - Проверяет достижение конца файла по файловому указателю
    • streamWrapper::stream_flush - Сбрасывает вывод
    • streamWrapper::stream_lock - Консультативная блокировка файла
    • streamWrapper::stream_metadata - Изменяет метаданные потока
    • streamWrapper::stream_open - Открывает файл или URL
    • streamWrapper::stream_read - Читает из потока
    • streamWrapper::stream_seek - Перемещение на заданную позицию в потоке
    • streamWrapper::stream_set_option - Изменение настроек потока
    • streamWrapper::stream_stat - Получение информации о файловом ресурсе
    • streamWrapper::stream_tell - Определение текущей позиции потока
    • streamWrapper::stream_truncate - Усечение потока
    • streamWrapper::stream_write - Запись в поток
    • streamWrapper::unlink - Удаление файла
    • streamWrapper::url_stat - Получение информации о файле
    • streamWrapper::__construct - Создает новый объект обертки потока
    • streamWrapper::__destruct - Уничтожает существующую обертку потока
    • stream_bucket_append - Добавить ведро (bucket) в бригаду (brigade)
    • stream_bucket_make_writeable - Вернуть объект ведра из бригады для дальнейшей работы с ним
    • stream_bucket_new - Создать новое ведро для использования в текущем потоке
    • stream_bucket_prepend - Добавить ведро в начало бригады
    • stream_context_create - Создаёт контекст потока
    • stream_context_get_default - Получает контекст потока по умолчанию
    • stream_context_get_options - Получает опции для потока/обёртки/контекста
    • stream_context_get_params - Получает параметры из контекста
    • stream_context_set_default - Установить контекст потока по умолчанию
    • 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_isatty - Проверяет, является ли поток TTY
    • stream_is_local - Проверяет, является ли поток локальным потоком
    • stream_notification_callback - Callback-функция для параметра контекста notification
    • stream_register_wrapper - Псевдоним stream_wrapper_register
    • stream_resolve_include_path - Преобразовать полное имя файла, используя пути включения
    • stream_select - Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec
    • stream_set_blocking - Установить блокирующий/неблокирующий режим в потоке
    • stream_set_chunk_size - Установить размер фрагмента данных потока
    • stream_set_read_buffer - Установить буферизацию чтения файла на указанном потоке
    • stream_set_timeout - Установить значение тайм-аута для потока
    • stream_set_write_buffer - Устанавливает буферизацию файла при записи в указанный поток
    • stream_socket_accept - Принимать соединение в сокете, созданном c помощью функции stream_socket_server
    • stream_socket_client - Открыть соединение с интернет-сокетом или с доменным сокетом Unix
    • stream_socket_enable_crypto - Включает или отключает шифрование на уже подключённом сокете
    • stream_socket_get_name - Получить название локального или удалённого сокета
    • stream_socket_pair - Создаёт пару подключённых, неразличимых потоков сокетов
    • stream_socket_recvfrom - Получает данные из сокета, подключённого или нет
    • stream_socket_sendto - Отправляет сообщение в сокет, независимо от того, подсоединён он или нет
    • stream_socket_server - Создаёт интернет-сокет или доменный сокет Unix
    • stream_socket_shutdown - Закрыть полнодуплексное соединение
    • stream_supports_lock - Определяет, поддерживает ли поток блокировку
    • stream_wrapper_register - Регистрирует обёртку URL, реализованную в виде PHP-класса
    • stream_wrapper_restore - Восстанавливает отменённую ранее встроенную обёртку
    • stream_wrapper_unregister - Отменяет регистрацию обёртки URL
    • strftime - Форматирует текущую дату/время с учетом текущих настроек локали
    • stripcslashes - Удаляет экранирование символов, произведенное функцией addcslashes
    • stripos - Возвращает позицию первого вхождения подстроки без учета регистра
    • stripslashes - Удаляет экранирование символов
    • strip_tags - Удаляет теги HTML и PHP из строки
    • stristr - Регистронезависимый вариант функции strstr
    • strlen - Возвращает длину строки
    • strnatcasecmp - Сравнение строк без учета регистра с использованием алгоритма "natural order"
    • strnatcmp - Сравнение строк с использованием алгоритма "natural order"
    • strncasecmp - Бинарно-безопасное сравнение первых n символов строк без учета регистра
    • strncmp - Бинарно-безопасное сравнение первых n символов строк
    • strpbrk - Ищет в строке любой символ из заданного набора
    • strpos - Возвращает позицию первого вхождения подстроки
    • strptime - Разбирает строку даты/времени, сгенерированную функцией strftime
    • strrchr - Находит последнее вхождение символа в строке
    • strrev - Переворачивает строку задом наперед
    • strripos - Возвращает позицию последнего вхождения подстроки без учета регистра
    • strrpos - Возвращает позицию последнего вхождения подстроки в строке
    • strspn - Возвращает длину участка в начале строки, полностью соответствующего маске
    • strstr - Находит первое вхождение подстроки
    • strtok - Разбивает строку на токены
    • strtolower - Преобразует строку в нижний регистр
    • strtotime - Преобразует текстовое представление даты на английском языке в метку времени Unix
    • strtoupper - Преобразует строку в верхний регистр
    • strtr - Преобразует заданные символы или заменяет подстроки
    • strval - Возвращает строковое значение переменной
    • str_getcsv - Выполняет разбор CSV-строки в массив
    • str_ireplace - Регистронезависимый вариант функции str_replace
    • str_pad - Дополняет строку другой строкой до заданной длины
    • str_repeat - Возвращает повторяющуюся строку
    • str_replace - Заменяет все вхождения строки поиска на строку замены
    • str_rot13 - Выполняет преобразование ROT13 над строкой
    • str_shuffle - Переставляет символы в строке случайным образом
    • str_split - Преобразует строку в массив
    • str_word_count - Возвращает информацию о словах, входящих в строку
    • substr - Возвращает подстроку
    • substr_compare - Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра
    • substr_count - Возвращает число вхождений подстроки
    • substr_replace - Заменяет часть строки
    • SVM::crossvalidate - Тестирование обучающих параметров на подмножествах обучающих данных
    • SVM::getOptions - Получить текущие параметры обучения
    • SVM::setOptions - Установить параметры обучения
    • SVM::train - Создать SVMModel на основе обучающих данных
    • SVM::__construct - Конструктор класса SVM
    • SVMModel::checkProbabilityModel - Возвращает true, если модель содержит информацию о вероятностях
    • SVMModel::getLabels - Возвращает метки, на которых обучалась модель
    • SVMModel::getNrClass - Возвращает количество классов, для которых обучалась модель
    • SVMModel::getSvmType - Получить тип SVM, с которым обучалась модель
    • SVMModel::getSvrProbability - Получить величину сигмы для регрессионного типа
    • SVMModel::load - Загружает сохраненную модель SVM
    • SVMModel::predict - Предсказать значение на основе новых данных
    • SVMModel::predict_probability - Возвращает вероятность класса для заданных данных
    • SVMModel::save - Сохранить готовую модель в файл
    • SVMModel::__construct - Конструктор класса SVMModel
    • svn_add - Добавляет элементы в список запланированных для добавления в рабочую копию
    • svn_auth_get_parameter - Возвращает параметр аутентификации
    • svn_auth_set_parameter - Устанавливает параметр аутентификации
    • svn_blame - Построчно выводит автора и редакцию для файла
    • svn_cat - Возвращает содержимое файла в репозитории
    • svn_checkout - Получает рабочую копию из репозитория
    • svn_cleanup - Рекурсивно очищает рабочую копию директории, завершает незаконченные операции и снимает блокировки
    • svn_client_version - Возвращает версию клиентских библиотек SVN
    • svn_commit - Отправляет изменения из рабочей директории в репозиторий
    • svn_delete - Удаляет элементы из рабочей копии или репозитория
    • svn_diff - Рекурсивно показывает различия двух файлов
    • svn_export - Экспортирует содержимое директории SVN
    • svn_fs_abort_txn - Отменяет транзакцию, возвращает TRUE, если отмена прошла успешно или FALSE в противном случае
    • svn_fs_apply_text - Создает и возвращает поток, который будет использован для замены
    • svn_fs_begin_txn2 - Создает новую транзакцию
    • svn_fs_change_node_prop - Возвращает TRUE, если операция прошла успешно или FALSE в противном случае
    • svn_fs_check_path - Определяет, какая сущность находится в пути репозитория fsroot
    • svn_fs_contents_changed - Возвращает TRUE, если содержимое отличается или FALSE в противном случае
    • svn_fs_copy - Копирует файл или директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае
    • svn_fs_delete - Удаляет файл или директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае
    • svn_fs_dir_entries - Перечисляет элементы директории по заданному пути; возвращает хеш имен директорий и типов файлов
    • svn_fs_file_contents - Возвращает поток для доступа к содержимому файла из данной файловой системы
    • svn_fs_file_length - Возвращает длину файла из данной файловой системы
    • svn_fs_is_dir - Возвращает TRUE, если по данному пути находится директория или FALSE в противном случае
    • svn_fs_is_file - Возвращает TRUE, если по данному пути находится файл или FALSE в противном случае
    • svn_fs_make_dir - Создает новую пустую директорию, возвращает TRUE, если операция прошла успешно или FALSE в противном случае
    • svn_fs_make_file - Создает новый пустой файл, возвращает TRUE, если операция прошла успешно или FALSE в противном случае
    • svn_fs_node_created_rev - Возвращает номер ревизии, когда был создан путь в файловой системе
    • svn_fs_node_prop - Возвращает значение свойства для узла
    • svn_fs_props_changed - Возвращает TRUE, если свойства разные или FALSE в противном случае
    • svn_fs_revision_prop - Возвращает значение данного свойства
    • svn_fs_revision_root - Возвращает дескриптор определенной версии корневой директории репозитория
    • svn_fs_txn_root - Создает и возвращает корень транзакции
    • svn_fs_youngest_rev - Возвращает номер самой ранней ревизии в файловой системе
    • svn_import - Импорт пути без версии в репозитории
    • svn_log - Возвращает комментарии к правкам в репозитории
    • svn_ls - Возвращает список содержимого директории репозитория URL, опционально для конкретной ревизии
    • svn_mkdir - Создает директорию в рабочей копии или в репозитории
    • svn_repos_create - Создание нового репозитория Subversion
    • svn_repos_fs - Возвращает дескриптор файловой системы для репозитория
    • svn_repos_fs_begin_txn_for_commit - Создание новой транзакции
    • svn_repos_fs_commit_txn - Отправка транзакции и возвращение номера ревизии
    • svn_repos_hotcopy - Создает свежую копию репозитория по адресу repospath и копирует в destpath
    • svn_repos_open - Открывает репозиторий с общей блокировкой
    • svn_repos_recover - Запускает процедуры восстановления репозитория
    • svn_revert - Отменяет локальные изменения рабочей копии
    • svn_status - Возвращает SVN-статус файлов и директорий рабочей копии
    • svn_update - Обновляет рабочую копию
    • SWFAction::__construct - Создает новый объект SWFAction
    • SWFBitmap::getHeight - Возвращает высоту растрового изображения
    • SWFBitmap::getWidth - Возвращает ширину растрового изображения
    • SWFBitmap::__construct - Загружает объект Bitmap
    • SWFButton::addAction - Adds an action
    • SWFButton::addASound - Associates a sound with a button transition
    • 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::setMenu - Enable track as menu button behaviour
    • SWFButton::setOver - Alias for addShape(shape, SWFBUTTON_OVER)
    • SWFButton::setUp - Alias for addShape(shape, SWFBUTTON_UP)
    • SWFButton::__construct - Creates a new Button
    • SWFDisplayItem::addAction - Adds this SWFAction to the given SWFSprite instance
    • SWFDisplayItem::addColor - Adds the given color to this item's color transform
    • SWFDisplayItem::endMask - Another way of defining a MASK layer
    • SWFDisplayItem::getRot - Описание
    • SWFDisplayItem::getX - Описание
    • SWFDisplayItem::getXScale - Описание
    • SWFDisplayItem::getXSkew - Описание
    • SWFDisplayItem::getY - Описание
    • SWFDisplayItem::getYScale - Описание
    • SWFDisplayItem::getYSkew - Описание
    • 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::setMaskLevel - Defines a MASK layer at level
    • SWFDisplayItem::setMatrix - Sets the item's transform matrix
    • 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
    • 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
    • SWFFont::getAscent - Returns the ascent of the font, or 0 if not available
    • SWFFont::getDescent - Returns the descent of the font, or 0 if not available
    • SWFFont::getLeading - Returns the leading of the font, or 0 if not available
    • SWFFont::getShape - Returns the glyph shape of a char as a text string
    • SWFFont::getUTF8Width - Calculates the width of the given string in this font at full height
    • SWFFont::getWidth - Returns the string's width
    • SWFFont::__construct - Loads a font definition
    • SWFFontChar::addChars - Добавляет символов в шрифт для экспортируемого шрифта
    • SWFFontChar::addUTF8Chars - Добавляет символов в шрифт для экспортируемого шрифта
    • SWFGradient::addEntry - Добавляет запись в список градиентов
    • SWFGradient::__construct - Создает объект градиента
    • SWFMorph::getShape1 - Получает дескриптор к начальной форме
    • SWFMorph::getShape2 - Возвращает дескриптор к конечной форме
    • SWFMorph::__construct - Создает новый объект SWFMorph
    • SWFMovie::add - Adds any type of data to a movie
    • SWFMovie::addExport - Описание
    • SWFMovie::addFont - Описание
    • SWFMovie::importChar - Описание
    • SWFMovie::importFont - Описание
    • SWFMovie::labelFrame - Labels a frame
    • 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 the SWF movie in a file
    • SWFMovie::saveToFile - Описание
    • 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::startSound - Описание
    • SWFMovie::stopSound - Описание
    • SWFMovie::streamMP3 - Streams a MP3 file
    • SWFMovie::writeExports - Описание
    • SWFMovie::__construct - Creates a new movie object, representing an SWF version 4 movie
    • SWFPrebuiltClip::__construct - Возвращает объект класса SWFPrebuiltClip
    • SWFShape::addFill - Adds a solid fill to the shape
    • SWFShape::drawArc - Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o'clock
    • SWFShape::drawCircle - Draws a circle of radius r centered at the current location, in a counter-clockwise fashion
    • SWFShape::drawCubic - Draws a cubic bezier curve using the current position and the three given points as control points
    • SWFShape::drawCubicTo - Draws a cubic bezier curve using the current position and the three given points as control points
    • SWFShape::drawCurve - Draws a curve (relative)
    • SWFShape::drawCurveTo - Draws a curve
    • SWFShape::drawGlyph - Draws the first character in the given string into the shape using the glyph definition from the given font
    • 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::__construct - Creates a new shape object
    • SWFSound::__construct - Возвращает новый объект SWFSound из заданного файла
    • SWFSoundInstance::loopCount - Описание
    • SWFSoundInstance::loopInPoint - Описание
    • SWFSoundInstance::loopOutPoint - Описание
    • SWFSoundInstance::noMultiple - Описание
    • SWFSprite::add - Добавляет объект в спрайт
    • SWFSprite::labelFrame - Рамка для надписей
    • SWFSprite::nextFrame - Переходит к следующему кадру анимации
    • SWFSprite::remove - Удаляет объект в спрайте
    • SWFSprite::setFrames - Устанавливает общее количество кадров в анимации
    • SWFSprite::startSound - Описание
    • SWFSprite::stopSound - Описание
    • SWFSprite::__construct - Создает видеоклип (спрайт)
    • SWFText::addString - Рисует строку
    • SWFText::addUTF8String - Записывает данный текст в этот объект SWFText в текущей позиции пера, используя текущий шрифт, высоту, интервал и цвет
    • SWFText::getAscent - Возвращает значение надстрочного элемента текущего шрифта и размера или 0, если недоступно
    • SWFText::getDescent - Возвращает значение подстрочного элемента текущего шрифта и размера или 0, если недоступно
    • SWFText::getLeading - Возвращает межстрочный интервал в текущем размере или 0, если он недоступен
    • SWFText::getUTF8Width - Вычисляет ширину данной строки в текстовых объектах текущего шрифта и размера
    • SWFText::getWidth - Вычисляет ширину строки
    • SWFText::moveTo - Перемещает перо
    • SWFText::setColor - Устанавливает текущий цвет текста
    • SWFText::setFont - Устанавливает текущий шрифт
    • SWFText::setHeight - Устанавливает текущую высоту шрифта
    • SWFText::setSpacing - Устанавливает текущий интервал между шрифтами
    • SWFText::__construct - Создает новый объект SWFText
    • SWFTextField::addChars - Добавляет символы в шрифт, который будет доступен в текстовом поле
    • SWFTextField::addString - Объединение данной строки в текстовое поле
    • SWFTextField::align - Устанавливает выравнивание текстового поля
    • SWFTextField::setBounds - Устанавливает ширину и высоту текстового поля
    • SWFTextField::setColor - Устанавливает цвет текстового поля
    • SWFTextField::setFont - Устанавливает шрифт текстового поля
    • SWFTextField::setHeight - Устанавливает высоту шрифта текстового поля
    • SWFTextField::setIndentation - Устанавливает отступ первой строки
    • SWFTextField::setLeftMargin - Устанавливает ширину левого поля в текстовом поле
    • SWFTextField::setLineSpacing - Устанавливает межстрочный интервал текстового поля
    • SWFTextField::setMargins - Устанавливает поля в текстовом поле
    • SWFTextField::setName - Устанавливает имя переменной
    • SWFTextField::setPadding - Устанавливает отступ для текстового поля
    • SWFTextField::setRightMargin - Устанавливает ширину правого поля в текстовом поле
    • SWFTextField::__construct - Создает объект текстового поля
    • SWFVideoStream::getNumFrames - Возвращает количество кадров в видео-файле
    • SWFVideoStream::setDimension - Устанавливает размер видео
    • SWFVideoStream::__construct - Возвращает объект класса SWFVideoStream
    • Swish::getMetaList - Получить список мета-записей для индекса
    • Swish::getPropertyList - Получить список свойств для индекса
    • Swish::prepare - Подготовить поисковый запрос
    • Swish::query - Запускает запрос и возвращает результирующий объект
    • Swish::__construct - Конструктор класса Swish
    • SwishResult::getMetaList - Получить список мета-записей
    • SwishResult::stem - Выделяет основы слова
    • SwishResults::getParsedWords - Получить массив разобранных слов
    • SwishResults::getRemovedStopwords - Получить список стоп-слов, удаленных из запроса
    • SwishResults::nextResult - Получить следующий результат поиска
    • SwishResults::seekResult - Установить внутренний указатель смещения
    • SwishSearch::execute - Запустить поиск и получить результаты
    • SwishSearch::resetLimit - Сбрасывает ограничения поиска
    • SwishSearch::setLimit - Установить ограничения поиска
    • SwishSearch::setPhraseDelimiter - Установить разделитель фраз
    • SwishSearch::setSort - Задать порядок сортировки
    • SwishSearch::setStructure - Установить флаг структуры в объекте поиска
    • Swoole\Async::dnsLookup - Асинхронный и неблокирующий поиск IP по имени хоста
    • Swoole\Async::read - Асинхронное чтение файлового потока
    • Swoole\Async::readFile - Асинхронное чтение файла
    • Swoole\Async::set - Обновляет параметры асинхронного ввода-вывода
    • Swoole\Async::write - Асинхронно записывает данные в файловый поток
    • Swoole\Async::writeFile - Описание
    • Swoole\Atomic::add - Добавляет число к значению атомарного объекта
    • Swoole\Atomic::cmpset - Сравнивает и устанавливает значение атомарного объекта
    • Swoole\Atomic::get - Получает текущее значение атомарного объекта
    • Swoole\Atomic::set - Устанавливает новое значение для атомарного объекта
    • Swoole\Atomic::sub - Вычитает число из значения атомарного объекта
    • Swoole\Atomic::__construct - Создает атомарный объект swoole
    • Swoole\Buffer::append - Добавляет строку или двоичные данные в конец буфера памяти и возвращает новый размер выделенной памяти
    • Swoole\Buffer::clear - Сбрасывает буфер памяти
    • Swoole\Buffer::expand - Расширяет размер буфера памяти
    • Swoole\Buffer::read - Читает данные из буфера памяти на основе смещения и длины
    • Swoole\Buffer::recycle - Освобождает память для ОС, которая не используется буфером памяти
    • Swoole\Buffer::substr - Считывает данные из буфера памяти на основе смещения и длины. Или удаляет данные из буфера памяти
    • Swoole\Buffer::write - Записывает данные в буфер памяти. Память, выделенная для буфера, не будет изменена
    • Swoole\Buffer::__construct - Фиксированный размер блока памяти
    • Swoole\Buffer::__destruct - Уничтожает буфер памяти Swoole
    • Swoole\Buffer::__toString - Получает строковое значение буфера памяти
    • Swoole\Channel::pop - Read and pop data from swoole channel.
    • Swoole\Channel::push - Write and push data into Swoole channel.
    • Swoole\Channel::stats - Get stats of swoole channel.
    • Swoole\Channel::__construct - Construct a Swoole Channel
    • Swoole\Channel::__destruct - Destruct a Swoole channel.
    • Swoole\Client::close - Close the connection established.
    • Swoole\Client::connect - Connect to the remote TCP or UDP port.
    • Swoole\Client::getpeername - Get the remote socket name of the connection.
    • Swoole\Client::getsockname - Get the local socket name of the connection.
    • Swoole\Client::isConnected - Check if the connection is established.
    • Swoole\Client::on - Add callback functions triggered by events.
    • Swoole\Client::pause - Pause receiving data.
    • Swoole\Client::pipe - Redirect the data to another file descriptor.
    • Swoole\Client::recv - Receive data from the remote socket.
    • Swoole\Client::resume - Resume receiving data.
    • Swoole\Client::send - Send data to the remote TCP socket.
    • Swoole\Client::sendfile - Send file to the remote TCP socket.
    • Swoole\Client::sendto - Send data to the remote UDP address.
    • Swoole\Client::set - Set the Swoole client parameters before the connection is established.
    • Swoole\Client::sleep - Remove the TCP client from system event loop.
    • Swoole\Client::wakeup - Add the TCP client back into the system event loop.
    • Swoole\Client::__construct - Create Swoole sync or async TCP/UDP client, with or without SSL.
    • Swoole\Client::__destruct - Destruct the Swoole client.
    • Swoole\Connection\Iterator::count - Считает соединения
    • Swoole\Connection\Iterator::current - Возвращает текущую запись соединения
    • Swoole\Connection\Iterator::key - Возвращает ключ текущего соединения
    • Swoole\Connection\Iterator::next - Переходит к следующему соединению
    • Swoole\Connection\Iterator::offsetExists - Проверяет, существует ли смещение
    • Swoole\Connection\Iterator::offsetGet - Смещение для извлечения
    • Swoole\Connection\Iterator::offsetSet - Назначает соединение для указанного смещения
    • Swoole\Connection\Iterator::offsetUnset - Сбрасывает смещение
    • Swoole\Connection\Iterator::rewind - Перематывает итератор
    • Swoole\Connection\Iterator::valid - Проверяет правильность текущей позиции
    • Swoole\Coroutine::call_user_func - Call a callback given by the first parameter
    • Swoole\Coroutine::call_user_func_array - Call a callback with an array of parameters
    • Swoole\Coroutine::cli_wait - Description
    • Swoole\Coroutine::create - Description
    • Swoole\Coroutine::getuid - Description
    • Swoole\Coroutine::resume - Description
    • Swoole\Coroutine::suspend - Description
    • Swoole\Coroutine\Client::close - Описание
    • Swoole\Coroutine\Client::connect - Описание
    • Swoole\Coroutine\Client::getpeername - Описание
    • Swoole\Coroutine\Client::getsockname - Описание
    • Swoole\Coroutine\Client::isConnected - Описание
    • Swoole\Coroutine\Client::recv - Описание
    • Swoole\Coroutine\Client::send - Описание
    • Swoole\Coroutine\Client::sendfile - Описание
    • Swoole\Coroutine\Client::sendto - Описание
    • Swoole\Coroutine\Client::set - Описание
    • Swoole\Coroutine\Client::__construct - Описание
    • Swoole\Coroutine\Client::__destruct - Описание
    • Swoole\Coroutine\Http\Client::addFile - Описание
    • Swoole\Coroutine\Http\Client::close - Описание
    • Swoole\Coroutine\Http\Client::execute - Описание
    • Swoole\Coroutine\Http\Client::get - Описание
    • Swoole\Coroutine\Http\Client::getDefer - Описание
    • Swoole\Coroutine\Http\Client::isConnected - Описание
    • Swoole\Coroutine\Http\Client::post - Описание
    • Swoole\Coroutine\Http\Client::recv - Описание
    • Swoole\Coroutine\Http\Client::set - Описание
    • Swoole\Coroutine\Http\Client::setCookies - Описание
    • Swoole\Coroutine\Http\Client::setData - Описание
    • Swoole\Coroutine\Http\Client::setDefer - Описание
    • Swoole\Coroutine\Http\Client::setHeaders - Описание
    • Swoole\Coroutine\Http\Client::setMethod - Описание
    • Swoole\Coroutine\Http\Client::__construct - Описание
    • Swoole\Coroutine\Http\Client::__destruct - Описание
    • Swoole\Coroutine\MySQL::close - Описание
    • Swoole\Coroutine\MySQL::connect - Описание
    • Swoole\Coroutine\MySQL::getDefer - Описание
    • Swoole\Coroutine\MySQL::query - Описание
    • Swoole\Coroutine\MySQL::recv - Описание
    • Swoole\Coroutine\MySQL::setDefer - Описание
    • Swoole\Coroutine\MySQL::__construct - Описание
    • Swoole\Coroutine\MySQL::__destruct - Описание
    • Swoole\Event::add - Добавляет новые callback-функции сокета в EventLoop
    • Swoole\Event::defer - Добавляет callback-функцию в следующий цикл событий
    • Swoole\Event::del - Удаляет все callback-функции события сокета
    • Swoole\Event::exit - Выходит из цикла событий, доступо только на стороне клиента
    • Swoole\Event::set - Обновляет callback-функции события сокета
    • Swoole\Event::wait - Описание
    • Swoole\Event::write - Записывает данные в сокет
    • Swoole\Http\Client::addFile - Добавляет файл в форму сообщения
    • Swoole\Http\Client::close - Закрывает http-соединение
    • Swoole\Http\Client::download - Загружает файл с удаленного сервера
    • Swoole\Http\Client::execute - Посылает HTTP-запрос после установки параметров
    • Swoole\Http\Client::get - Отправляет HTTP-запрос GET на удаленный сервер
    • Swoole\Http\Client::isConnected - Проверяет, подключено ли соединение HTTP
    • Swoole\Http\Client::on - Регистрирует callback-функцию по имени события
    • Swoole\Http\Client::post - Отправляет HTTP-запрос POST на удаленный сервер
    • Swoole\Http\Client::push - Передает данные в клиент websocket
    • Swoole\Http\Client::set - Обновляет параметры HTTP-клиента
    • Swoole\Http\Client::setCookies - Устанавливает cookies для HTTP-запроса
    • Swoole\Http\Client::setData - Устанавливает данные тела HTTP-запроса
    • Swoole\Http\Client::setHeaders - Устанавливает заголовки HTTP-запроса
    • Swoole\Http\Client::setMethod - Устанавливает метод HTTP-запроса
    • Swoole\Http\Client::upgrade - Обновление до протокола websocket
    • Swoole\Http\Client::__construct - Создает асинхронный HTTP-клиент
    • Swoole\Http\Client::__destruct - Уничтожает HTTP-клиент
    • Swoole\Http\Request::rawcontent - Получает необработанное тело HTTP POST
    • Swoole\Http\Request::__destruct - Уничтожает HTTP-запрос
    • Swoole\Http\Response::cookie - Устанавливает cookie HTTP-ответа
    • Swoole\Http\Response::end - Отправляет данные HTTP-запроса и завершает ответ
    • Swoole\Http\Response::gzip - Включает gzip-сжатие содержимого ответа.
    • Swoole\Http\Response::header - Устанавливает заголовки HTTP-ответа
    • Swoole\Http\Response::initHeader - Инициировать заголовок HTTP-ответа
    • Swoole\Http\Response::rawcookie - Устанавливает необработанные cookie в HTTP-ответ
    • Swoole\Http\Response::sendfile - Отправляет файл через HTTP-ответ
    • Swoole\Http\Response::status - Устанавливает код состояния HTTP-ответа
    • Swoole\Http\Response::write - Добавляет содержимое тела HTTP в HTTP-ответ
    • Swoole\Http\Response::__destruct - Уничтожает HTTP-ответ
    • Swoole\Http\Server::on - Привязывает callback-функцию к HTTP-серверу по имени события
    • Swoole\Http\Server::start - Запускает http-сервер swoole
    • Swoole\Lock::lock - Try to acquire the lock. It will block if the lock is not available.
    • Swoole\Lock::lock_read - Lock a read-write lock for reading.
    • Swoole\Lock::trylock - Try to acquire the lock and return straight away even the lock is not available.
    • Swoole\Lock::trylock_read - Try to lock a read-write lock for reading and return straight away even the lock is not available.
    • Swoole\Lock::unlock - Release the lock.
    • Swoole\Lock::__construct - Construct a memory lock.
    • Swoole\Lock::__destruct - Destory a Swoole memory lock.
    • Swoole\Mmap::open - Отобразить файл в память и вернуть ресурс потока, который может использоваться операциями потока PHP
    • Swoole\MySQL::close - Закрывает асинхронное соединение MySQL
    • Swoole\MySQL::connect - Подключается к удаленному серверу MySQL
    • Swoole\MySQL::getBuffer - Описание
    • Swoole\MySQL::on - Регистрирует callback-функцию на основе имени события
    • Swoole\MySQL::query - Выполняет запрос SQL
    • Swoole\MySQL::__construct - Создает асинхронный клиент MySQL
    • Swoole\MySQL::__destruct - Уничтожает асинхронный клиент MySQL
    • Swoole\Process::alarm - Таймер высокой точности, который запускает сигнал с фиксированным интервалом
    • Swoole\Process::close - Закрывает канал для дочернего процесса
    • Swoole\Process::daemon - Изменяет процесс на процесс-демон
    • Swoole\Process::exec - Выполняет системные команды
    • Swoole\Process::exit - Останавливает дочерние процессы
    • Swoole\Process::freeQueue - Уничтожает очередь сообщений, созданную swoole_process::useQueue
    • Swoole\Process::kill - Посылает сигнал дочернему процессу
    • Swoole\Process::name - Устанавливает название процесса
    • Swoole\Process::pop - Читает и извлекает данные из очереди сообщений
    • Swoole\Process::push - Записывает и помещает данные в очередь сообщений
    • Swoole\Process::read - Читает данные отправки в процесс
    • Swoole\Process::signal - Посылает сигнал дочерним процессам
    • Swoole\Process::start - Запускает процесс
    • Swoole\Process::statQueue - Получает статистику очереди сообщений, используемой в качестве метода связи между процессами
    • Swoole\Process::useQueue - Создает очередь сообщений в качестве метода связи между родительским процессом и дочерними процессами
    • Swoole\Process::wait - Ожидает событий дочерних процессов
    • Swoole\Process::write - Записывает данные в канал и связывается с родительским процессом или дочерними процессами
    • Swoole\Process::__construct - Создает процесс
    • Swoole\Process::__destruct - Уничтожает процесс
    • Swoole\Redis\Server::format - Описание
    • Swoole\Redis\Server::setHandler - Описание
    • Swoole\Redis\Server::start - Описание
    • Swoole\Serialize::pack - Сериализовать данные
    • Swoole\Serialize::unpack - Десериализовать данные
    • Swoole\Server::addlistener - Добавляет нового слушателя на сервер
    • Swoole\Server::addProcess - Добавляет определенный пользователем swoole_process на сервер
    • Swoole\Server::after - Запускает callback-функцию по истечении определенного периода времени
    • Swoole\Server::bind - Привязывает соединение к указанному идентификатору пользователя
    • Swoole\Server::clearTimer - Останавливает и уничтожает таймер
    • Swoole\Server::close - Закрывает соединение с клиентом
    • Swoole\Server::confirm - Проверяет состояние соединения
    • Swoole\Server::connection_info - Получает информацию о соединении по описанию файла
    • Swoole\Server::connection_list - Получает все установленные соединения
    • Swoole\Server::defer - Откладывает выполнение callback-функции в конце текущего EventLoop
    • Swoole\Server::exist - Проверяет, существует ли соединение
    • Swoole\Server::finish - Используется в процессе задачи для отправки результата в рабочий процесс после завершения задачи
    • Swoole\Server::getClientInfo - Получает информацию о соединении по описанию файла
    • Swoole\Server::getClientList - Получает все установленные соединения
    • Swoole\Server::getLastError - Получает код самой последней ошибки
    • Swoole\Server::heartbeat - Проверяет все соединения на сервере
    • Swoole\Server::listen - Слушает по заданному IP и порту, тип сокета
    • Swoole\Server::on - Регистрирует callback-функцию по имени события
    • Swoole\Server::pause - Прекращает получение данных от соединения
    • Swoole\Server::protect - Устанавливает соединение в защищенный режим
    • Swoole\Server::reload - Перезапускает все рабочие процессы
    • Swoole\Server::resume - Начинает получать данные из соединения
    • Swoole\Server::send - Отправляет данные клиенту
    • Swoole\Server::sendfile - Отправляет файл на соединение
    • Swoole\Server::sendMessage - Отправляет сообщение рабочим процессам по идентификатору
    • Swoole\Server::sendto - Отправляет данные на удаленный UDP-адрес
    • Swoole\Server::sendwait - Отправляет данные в удаленный сокет блокирующим способом
    • Swoole\Server::set - Устанавливает настройки времени выполнения сервера swoole
    • Swoole\Server::shutdown - Завершает процесс главного сервера, функцию можно вызывать в рабочих процессах
    • Swoole\Server::start - Запускает сервер Swoole
    • Swoole\Server::stats - Получает статистику сервера Swoole
    • Swoole\Server::stop - Останавливает сервер Swoole
    • Swoole\Server::task - Отправляет данные в рабочие процессы задачи
    • Swoole\Server::taskwait - Посылает данные рабочим процессам задачи блокирующим способом
    • Swoole\Server::taskWaitMulti - Выполняет несколько задач одновременно
    • Swoole\Server::tick - Повторяет данную функцию в каждый заданный интервал времени
    • Swoole\Server::__construct - Создает сервер Swoole
    • Swoole\Server\Port::on - Регистрирует callback-функции по событию
    • Swoole\Server\Port::set - Устанавливает протокол порта сервера
    • Swoole\Server\Port::__construct - Создает порт сервера
    • Swoole\Server\Port::__destruct - Уничтожает порт сервера
    • Swoole\Table::column - Set the data type and size of the columns.
    • Swoole\Table::count - Count the rows in the table, or count all the elements in the table if $mode = 1.
    • Swoole\Table::create - Create the swoole memory table.
    • Swoole\Table::current - Get the current row.
    • Swoole\Table::decr - Decrement the value in the Swoole table by $row_key and $column_key.
    • Swoole\Table::del - Delete a row in the Swoole table by $row_key.
    • Swoole\Table::destroy - Destroy the Swoole table.
    • Swoole\Table::exist - Check if a row is existed by $row_key.
    • Swoole\Table::get - Get the value in the Swoole table by $row_key and $column_key.
    • Swoole\Table::incr - Increment the value by $row_key and $column_key.
    • Swoole\Table::key - Get the key of current row.
    • Swoole\Table::next - Iterator the next row.
    • Swoole\Table::rewind - Rewind the iterator.
    • Swoole\Table::set - Update a row of the table by $row_key.
    • Swoole\Table::valid - Check current if the current row is valid.
    • Swoole\Table::__construct - Construct a Swoole memory table with fixed size.
    • Swoole\Timer::after - Запускает callback-функцию через определенный промежуток времени
    • Swoole\Timer::clear - Удаляет таймер по идентификатору
    • Swoole\Timer::exists - Проверяет, существует ли таймер
    • Swoole\Timer::tick - Повторяет данную функцию в каждый заданный интервал времени
    • Swoole\WebSocket\Server::exist - Проверяет, существует ли описание файла
    • Swoole\WebSocket\Server::on - Зарегистрировать callback-функцию события
    • Swoole\WebSocket\Server::pack - Получение пакета двоичных данных для отправки в одной группе данных (frame)
    • Swoole\WebSocket\Server::push - Отправить данные удаленному клиенту
    • Swoole\WebSocket\Server::unpack - Распаковать двоичные данные, полученные от клиента
    • swoole_async_dns_lookup - Асинхронный и неблокирующий поиск имени хоста или IP-адреса
    • swoole_async_read - Асинхронное чтение потока файла
    • swoole_async_readfile - Асинхронное чтение файла
    • swoole_async_set - Обновление опций асинхронного ввода-вывода
    • swoole_async_write - Асинхронная запись данных в поток файла
    • swoole_async_writefile - Асинхронная запись данных в файл
    • swoole_client_select - Получить описание файла, готового к чтению/записи или ошибке
    • swoole_cpu_num - Получить количество CPU
    • swoole_errno - Получить код ошибки последнего системного вызова
    • swoole_event_add - Добавить новых callback-функций сокета в цикл событий
    • swoole_event_defer - Добавить callback-функцию в следующий цикл событий
    • swoole_event_del - Удалить все callback-функции сокета
    • swoole_event_exit - Закрыть цикл событий, доступный только на стороне клиента
    • swoole_event_set - Обновить callback-функции события сокета
    • swoole_event_wait - Запустить цикл событий
    • swoole_event_write - Записать данные в сокет
    • swoole_get_local_ip - Получить IP-адреса в формате IPv4 каждой сетевой платы (NIC) компьютера
    • swoole_last_error - Получить последнее сообщение об ошибке
    • swoole_load_module - Загрузить модуль swoole
    • swoole_select - Выбрать описания файлов, которые готовы к чтению/записи или ошибке в цикл событий
    • swoole_set_process_name - Установить имя процесса
    • swoole_strerror - Сконвертировать Errno в сообщения об ошибках
    • swoole_timer_after - Запуск callback-функции один раз в будущем
    • swoole_timer_exists - Проверить, существует ли callback-функция таймера
    • swoole_timer_tick - Вызвать callback-функцию таймера тактов через определенный промежуток времени
    • swoole_version - Получить версию Swoole
    • 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
    • symlink - Создаёт символическую ссылку
    • SyncEvent::fire - Fires/sets the event
    • SyncEvent::reset - Resets a manual event
    • SyncEvent::wait - Waits for the event to be fired/set
    • SyncEvent::__construct - Constructs a new SyncEvent object
    • SyncMutex::lock - Waits for an exclusive lock
    • SyncMutex::unlock - Unlocks the mutex
    • SyncMutex::__construct - Constructs a new SyncMutex object
    • SyncReaderWriter::readlock - Waits for a read lock
    • SyncReaderWriter::readunlock - Releases a read lock
    • SyncReaderWriter::writelock - Waits for an exclusive write lock
    • SyncReaderWriter::writeunlock - Releases a write lock
    • SyncReaderWriter::__construct - Constructs a new SyncReaderWriter object
    • SyncSemaphore::lock - Decreases the count of the semaphore or waits
    • SyncSemaphore::unlock - Increases the count of the semaphore
    • SyncSemaphore::__construct - Constructs a new SyncSemaphore object
    • SyncSharedMemory::first - Check to see if the object is the first instance system-wide of named shared memory
    • SyncSharedMemory::read - Copy data from named shared memory
    • SyncSharedMemory::size - Returns the size of the named shared memory
    • SyncSharedMemory::write - Copy data to named shared memory
    • SyncSharedMemory::__construct - Constructs a new SyncSharedMemory object
    • syslog - Генерирует сообщение для системного журнала
    • system - Выполнить внешнюю программу и отобразить вывод
    • sys_getloadavg - Получает среднюю загрузку системы
    • sys_get_temp_dir - Возвращает путь к директории временных файлов
  • t
    • Table::count - Получить количество строк
    • Table::delete - Удалить строки из таблицы
    • Table::existsInDatabase - Проверить, существует ли таблица в базе данных
    • Table::getName - Получить имя таблицы
    • Table::getSchema - Получить схему таблицы
    • Table::getSession - Получить таблицу сессий
    • Table::insert - Вставить строки таблицы
    • Table::isView - Проверить, является ли таблица представлением
    • Table::select - Выбрать строки из таблицы
    • Table::update - Обновить строки в таблице
    • Table::__construct - Конструктор Table
    • TableDelete::bind - Связывает параметры запроса удаления
    • TableDelete::execute - Выполняет запрос на удаление
    • TableDelete::limit - Ограничивает строки для удаления
    • TableDelete::orderby - Устанавливает критерии сортировки удаления
    • TableDelete::where - Устанавливает условие поиска для удаления
    • TableDelete::__construct - Конструктор класса TableDelete
    • TableInsert::execute - Выполняет запрос вставки
    • TableInsert::values - Добавляет значения вставки строки
    • TableInsert::__construct - Конструктор класса TableInsert
    • TableSelect::bind - Привязывает параметры запроса выборки
    • TableSelect::execute - Выполняет оператор выборки
    • TableSelect::groupBy - Устанавливает критерии группировки выборки
    • TableSelect::having - Устанавливает выбор с условием
    • TableSelect::limit - Ограничивает выбранные строки
    • TableSelect::lockExclusive - Выполняет EXCLUSIVE LOCK
    • TableSelect::lockShared - Выполняет SHARED LOCK
    • TableSelect::offset - Устанавливает предел смещения
    • TableSelect::orderby - Устанавливает критерии сортировки выборки
    • TableSelect::where - Устанавливает условие поиска выборки
    • TableSelect::__construct - Конструктор класса TableSelect
    • TableUpdate::bind - Привязывает параметры запроса на обновление
    • TableUpdate::execute - Выполняет запрос на обновление
    • TableUpdate::limit - Ограничивает количество строк для обновления
    • TableUpdate::orderby - Устанавливает критерии сортировки
    • TableUpdate::set - Добавляет поле для обновления
    • TableUpdate::where - Устанавливает фильтр поиска
    • TableUpdate::__construct - Конструктор класса TableUpdate
    • taint - Испортить строку
    • tan - Тангенс
    • tanh - Гиперболический тангенс
    • tcpwrap_check - Производит проверку tcpwrap
    • tempnam - Создаёт файл с уникальным именем
    • textdomain - Устанавливает домен по умолчанию
    • Thread::detach - Execution
    • Thread::getCreatorId - Identification
    • Thread::getCurrentThread - Identification
    • Thread::getCurrentThreadId - Identification
    • Thread::getThreadId - Identification
    • Thread::globally - Execution
    • Thread::isJoined - State Detection
    • Thread::isStarted - State Detection
    • Thread::join - Synchronization
    • Thread::kill - Execution
    • Thread::start - Execution
    • Threaded::chunk - Manipulation
    • Threaded::count - Manipulation
    • Threaded::extend - Runtime Manipulation
    • Threaded::from - Creation
    • Threaded::getTerminationInfo - Error Detection
    • Threaded::isRunning - State Detection
    • Threaded::isTerminated - State Detection
    • Threaded::isWaiting - State Detection
    • Threaded::lock - Synchronization
    • Threaded::merge - Manipulation
    • Threaded::notify - Synchronization
    • Threaded::notifyOne - Synchronization
    • Threaded::pop - Manipulation
    • Threaded::run - Execution
    • Threaded::shift - Manipulation
    • Threaded::synchronized - Synchronization
    • Threaded::unlock - Synchronization
    • Threaded::wait - Synchronization
    • Throwable::getCode - Возвращает код исключения
    • Throwable::getFile - Возвращает файл, в котором произошло исключение
    • Throwable::getLine - Получает строку скрипта, в которой данный объект был выброшен
    • Throwable::getMessage - Получает сообщение ошибки
    • Throwable::getPrevious - Возвращает предыдущий Throwable
    • Throwable::getTrace - Возвращает трассировку стека
    • Throwable::getTraceAsString - Получает результаты трассировки стека в виде строки
    • Throwable::__toString - Получает строковое представление выброшенного объекта
    • tidy::$errorBuffer - Возвращает предупреждения и ошибки, возникшие при разборе указанного документа
    • tidy::body - Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева
    • tidy::cleanRepair - Выполнить настроенную очистку и восстановление разобранной разметки
    • tidy::diagnose - Запуск настроенной диагностики для разобранной и восстановленной разметки
    • tidy::getConfig - Получает текущую конфигурацию Tidy
    • tidy::getHtmlVer - Получает обнаруженную HTML версию для указанного документа
    • tidy::getOpt - Возвращает значение указанного параметра конфигурации для документа tidy
    • tidy::getOptDoc - Возвращает описание для опции с указанным названием
    • tidy::getRelease - Получить дату релиза (версию) для библиотеки Tidy
    • tidy::getStatus - Получает статус указанного документа
    • tidy::head - Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева
    • tidy::html - Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева
    • tidy::isXhtml - Определяет, является ли документ XHTML-документом
    • tidy::isXml - Определяет, является ли документ общим XML-документом (не HTML/XHTML)
    • tidy::parseFile - Разбор разметки в файле или URI
    • tidy::parseString - Разбор документа, хранимого в строке
    • tidy::repairFile - Восстанавливает разметку файла и возвращает его в виде строки
    • tidy::repairString - Восстанавливает строку, используя по возможности конфигурационный файл
    • tidy::root - Возвращает объект tidyNode, представляющий вершину разобранного tidy-дерева
    • tidy::__construct - Создает новый tidy-объект
    • tidyNode::getParent - Возвращает родительский узел текущего узла
    • tidyNode::hasChildren - Проверяет существование потомков у узла
    • tidyNode::hasSiblings - Проверяет существование соседних узлов
    • tidyNode::isAsp - Проверяет текущий узел на соответствие ASP
    • tidyNode::isComment - Проверяет, является ли узел комментарием
    • tidyNode::isHtml - Проверяет, является ли текущий узел частью HTML-документа
    • tidyNode::isJste - Проверяет текущий узел на соответствие JSTE
    • tidyNode::isPhp - Проверяет, является ли текущий узел PHP-кодом
    • tidyNode::isText - Проверяет, является ли текущий узел обычным текстом (не разметкой)
    • tidyNode::__construct - Приватный конструктор, делающий невозможным прямое создание объекта
    • tidy_access_count - Возвращает число доступных предупреждений Tidy, встретившихся в рассмотренном документе
    • tidy_config_count - Возвращает число ошибок конфигурации Tidy, встретившихся при рассмотрении документа
    • tidy_error_count - Возвращает число ошибок Tidy, встретившихся при рассмотрении документа
    • tidy_get_output - Возвращает строку, представляющую разобранную tidy-разметку
    • tidy_warning_count - Возвращает число Tidy-предупреждений, встреченных в указанном документе
    • time - Возвращает текущую метку системного времени Unix
    • timezone_abbreviations_list - Псевдоним DateTimeZone::listAbbreviations
    • timezone_identifiers_list - Псевдоним DateTimeZone::listIdentifiers
    • timezone_location_get - Псевдоним DateTimeZone::getLocation
    • timezone_name_from_abbr - Возвращает временную зону в соответствии с аббревиатурой
    • timezone_name_get - Псевдоним DateTimeZone::getName
    • timezone_offset_get - Псевдоним DateTimeZone::getOffset
    • timezone_open - Псевдоним DateTimeZone::__construct
    • timezone_transitions_get - Псевдоним DateTimeZone::getTransitions
    • timezone_version_get - Получение номера версии базы данных временных зон
    • time_nanosleep - Задержка на заданное число секунд и наносекунд
    • time_sleep_until - Откладывает исполнение скрипта до заданного времени
    • tmpfile - Создаёт временный файл
    • token_get_all - Разбивает переданный исходный код на PHP-лексемы
    • token_name - Получить символьное имя для переданной PHP-лексемы
    • TokyoTyrant::add - Adds to a numeric key
    • TokyoTyrant::connect - Connect to a database
    • TokyoTyrant::connectUri - Connects to a database
    • TokyoTyrant::copy - Copies the database
    • TokyoTyrant::ext - Execute a remote script
    • TokyoTyrant::fwmKeys - Returns the forward matching keys
    • TokyoTyrant::get - The get purpose
    • TokyoTyrant::getIterator - Get an iterator
    • TokyoTyrant::num - Number of records in the database
    • TokyoTyrant::out - Removes records
    • TokyoTyrant::put - Puts values
    • TokyoTyrant::putCat - Concatenates to a record
    • TokyoTyrant::putKeep - Puts a record
    • TokyoTyrant::putNr - Puts value
    • TokyoTyrant::putShl - Concatenates to a record
    • TokyoTyrant::restore - Restore the database
    • TokyoTyrant::setMaster - Set the replication master
    • TokyoTyrant::size - Returns the size of the value
    • TokyoTyrant::stat - Get statistics
    • TokyoTyrant::sync - Synchronize the database
    • TokyoTyrant::tune - Tunes connection values
    • TokyoTyrant::vanish - Empties the database
    • TokyoTyrant::__construct - Construct a new TokyoTyrant object
    • TokyoTyrantIterator::current - Get the current value
    • TokyoTyrantIterator::key - Returns the current key
    • TokyoTyrantIterator::next - Move to next key
    • TokyoTyrantIterator::rewind - Rewinds the iterator
    • TokyoTyrantIterator::valid - Rewinds the iterator
    • TokyoTyrantIterator::__construct - Construct an iterator
    • TokyoTyrantQuery::addCond - Adds a condition to the query
    • TokyoTyrantQuery::count - Counts records
    • TokyoTyrantQuery::current - Returns the current element
    • TokyoTyrantQuery::hint - Get the hint string of the query
    • TokyoTyrantQuery::key - Returns the current key
    • TokyoTyrantQuery::metaSearch - Retrieve records with multiple queries
    • TokyoTyrantQuery::next - Moves the iterator to next entry
    • TokyoTyrantQuery::out - Removes records based on query
    • TokyoTyrantQuery::rewind - Rewinds the iterator
    • TokyoTyrantQuery::search - Searches records
    • TokyoTyrantQuery::setLimit - Limit results
    • TokyoTyrantQuery::setOrder - Orders results
    • TokyoTyrantQuery::valid - Checks the validity of current item
    • TokyoTyrantQuery::__construct - Construct a new query
    • TokyoTyrantTable::add - Adds a record
    • TokyoTyrantTable::genUid - Generate unique id
    • TokyoTyrantTable::get - Get a row
    • TokyoTyrantTable::getIterator - Get an iterator
    • TokyoTyrantTable::getQuery - Get a query object
    • TokyoTyrantTable::out - Remove records
    • TokyoTyrantTable::put - Store a row
    • TokyoTyrantTable::putCat - Concatenates to a row
    • TokyoTyrantTable::putKeep - Put a new record
    • TokyoTyrantTable::putNr - Puts value
    • TokyoTyrantTable::putShl - Concatenates to a record
    • TokyoTyrantTable::setIndex - Sets index
    • touch - Устанавливает время доступа и модификации файла
    • trader_acos - Векторный тригонометрический арккосинус
    • trader_ad - Индикатор Чайкина Накопление/Распродажа
    • trader_add - Арифметическое сложение вектора
    • trader_adosc - Осциллятор Чайкина
    • trader_adx - Средний индекс направленного движения
    • trader_adxr - Средний рейтинг индекса направленного движения
    • trader_apo - Абсолютный ценовой осциллятор
    • trader_aroon - Индикатор Aroon
    • trader_aroonosc - Осциллятор индикатора Aroon
    • trader_asin - Векторный тригонометрический арксинус
    • trader_atan - Векторный тригонометрический арктангенс
    • trader_atr - Средний истинный диапазон
    • trader_avgprice - Средняя цена
    • trader_bbands - Полосы Боллинджера
    • trader_beta - Бета
    • trader_bop - Баланс сил
    • trader_cci - Индекс товарного канала
    • trader_cdl2crows - Две вороны
    • trader_cdl3blackcrows - Три черных ворона
    • trader_cdl3inside - Три дня изнутри вверх и три дня изнутри вниз
    • trader_cdl3linestrike - Тройной удар
    • trader_cdl3outside - Три внешних дня вверх и три внешних дня вниз
    • trader_cdl3starsinsouth - Три южных звезды
    • trader_cdl3whitesoldiers - Три наступающих белых солдата
    • trader_cdlabandonedbaby - Брошенное дитя
    • trader_cdladvanceblock - Отбитое наступление
    • trader_cdlbelthold - Захват за пояс
    • trader_cdlbreakaway - Отрыв
    • trader_cdlclosingmarubozu - Closing Marubozu
    • trader_cdlconcealbabyswall - Прячущаяся ласточка
    • trader_cdlcounterattack - Контратака
    • trader_cdldarkcloudcover - Завеса из темных облаков
    • trader_cdldoji - Дожи
    • trader_cdldojistar - Дожи-звезда
    • trader_cdldragonflydoji - Стрекоза дожи
    • trader_cdlengulfing - Модель поглощения
    • trader_cdleveningdojistar - Вечерняя дожи-звезда
    • trader_cdleveningstar - Вечерняя звезда
    • trader_cdlgapsidesidewhite - Up/Down-gap side-by-side white lines
    • trader_cdlgravestonedoji - Дожи-надгробие
    • trader_cdlhammer - Молот
    • trader_cdlhangingman - Висельник
    • trader_cdlharami - Паттерн Харами
    • trader_cdlharamicross - Паттерн "Крест Харами"
    • trader_cdlhighwave - High-Wave Candle
    • trader_cdlhikkake - Hikkake Pattern
    • trader_cdlhikkakemod - Modified Hikkake Pattern
    • trader_cdlhomingpigeon - Homing Pigeon
    • trader_cdlidentical3crows - Identical Three Crows
    • trader_cdlinneck - In-Neck Pattern
    • trader_cdlinvertedhammer - Inverted Hammer
    • trader_cdlkicking - Kicking
    • trader_cdlkickingbylength - Kicking - bull/bear determined by the longer marubozu
    • trader_cdlladderbottom - Ladder Bottom
    • trader_cdllongleggeddoji - Long Legged Doji
    • trader_cdllongline - Long Line Candle
    • trader_cdlmarubozu - Marubozu
    • trader_cdlmatchinglow - Matching Low
    • trader_cdlmathold - Фигура Подстилка
    • trader_cdlmorningdojistar - Утренняя звезда дожи
    • trader_cdlmorningstar - Утренняя звезда
    • trader_cdlonneck - Паттерн "У линии шеи"
    • trader_cdlpiercing - Паттерн "Просвет в облаках"
    • trader_cdlrickshawman - Длинноногий дожи
    • trader_cdlrisefall3methods - Бычья/медвежья модель "Три метода"
    • trader_cdlseparatinglines - Разделение
    • trader_cdlshootingstar - Падающая звезда
    • trader_cdlshortline - Short Line Candle
    • trader_cdlspinningtop - Волчок
    • trader_cdlstalledpattern - Торможение
    • trader_cdlsticksandwich - Прилипший сэндвич
    • trader_cdltakuri - Takuri (Dragonfly Doji with very long lower shadow)
    • trader_cdltasukigap - Tasuki Gap
    • trader_cdlthrusting - Thrusting Pattern
    • trader_cdltristar - Tristar Pattern
    • trader_cdlunique3river - Unique 3 River
    • trader_cdlupsidegap2crows - Upside Gap Two Crows
    • trader_cdlxsidegap3methods - Upside/Downside Gap Three Methods
    • trader_ceil - Vector Ceil
    • trader_cmo - Chande Momentum Oscillator
    • trader_correl - Pearson's Correlation Coefficient (r)
    • trader_cos - Vector Trigonometric Cos
    • trader_cosh - Vector Trigonometric Cosh
    • trader_dema - Double Exponential Moving Average
    • trader_div - Vector Arithmetic Div
    • trader_dx - Directional Movement Index
    • trader_ema - Exponential Moving Average
    • trader_errno - Получить код ошибки
    • trader_exp - Vector Arithmetic Exp
    • trader_floor - Vector Floor
    • trader_get_compat - Get compatibility mode
    • trader_get_unstable_period - Get unstable period
    • trader_ht_dcperiod - Hilbert Transform - Dominant Cycle Period
    • trader_ht_dcphase - Hilbert Transform - Dominant Cycle Phase
    • trader_ht_phasor - Hilbert Transform - Phasor Components
    • trader_ht_sine - Hilbert Transform - SineWave
    • trader_ht_trendline - Hilbert Transform - Instantaneous Trendline
    • trader_ht_trendmode - Hilbert Transform - Trend vs Cycle Mode
    • trader_kama - Адаптивная скользящая средняя Кауфмана
    • trader_linearreg - Линейная регрессия
    • trader_linearreg_angle - Линейный регрессионный угол
    • trader_linearreg_intercept - Перехват линейной регрессии
    • trader_linearreg_slope - Линейный регрессионный наклон
    • trader_ln - Vector Log Natural
    • trader_log10 - Vector Log10
    • trader_ma - Скользящая средняя
    • trader_macd - Скользящее среднее сходимость/дивергенция
    • trader_macdext - MACD with controllable MA type
    • trader_macdfix - Moving Average Convergence/Divergence Fix 12/26
    • trader_mama - MESA Adaptive Moving Average
    • trader_mavp - Moving average with variable period
    • trader_max - Highest value over a specified period
    • trader_maxindex - Index of highest value over a specified period
    • trader_medprice - Средняя цена
    • trader_mfi - Индекс денежных потоков
    • trader_midpoint - MidPoint over period
    • trader_midprice - Midpoint Price over period
    • trader_min - Lowest value over a specified period
    • trader_minindex - Индекс наименьшего значения за определенный период
    • trader_minmax - Lowest and highest values over a specified period
    • trader_minmaxindex - Indexes of lowest and highest values over a specified period
    • trader_minus_di - Минус-направленный индикатор
    • trader_minus_dm - Минус-направленное движение
    • trader_mom - Моментум
    • trader_mult - Vector Arithmetic Mult
    • trader_natr - Normalized Average True Range
    • trader_obv - Индикатор Балансового объема
    • trader_plus_di - Плюс-направленный индикатор
    • trader_plus_dm - Плюс-направленное движение
    • trader_ppo - Процентный ценовой осциллятор
    • trader_roc - Rate of change : ((price/prevPrice)-1)*100
    • trader_rocp - Rate of change Percentage: (price-prevPrice)/prevPrice
    • trader_rocr - Rate of change ratio: (price/prevPrice)
    • trader_rocr100 - Rate of change ratio 100 scale: (price/prevPrice)*100
    • trader_rsi - Индекс относительной силы
    • trader_sar - Parabolic SAR
    • trader_sarext - Parabolic SAR - Extended
    • trader_set_compat - Set compatibility mode
    • trader_set_unstable_period - Set unstable period
    • trader_sin - Векторный тригонометрический синус
    • trader_sinh - Векторный тригонометрический гиперболический синус
    • trader_sma - Простое скользящее среднее
    • trader_sqrt - Векторный квадратный корень
    • trader_stddev - Стандартное отклонение
    • trader_stoch - Стохастический осциллятор
    • trader_stochf - Быстрый стохастический осциллятор
    • trader_stochrsi - Стохастический относительный индекс силы
    • trader_sub - Векторное арифметическое вычитание
    • trader_sum - Суммирование
    • trader_t3 - Тройная экспоненциальная скользящая средняя
    • trader_tan - Векторный тригонометрический тангенс
    • trader_tanh - Vector Trigonometric Tanh
    • trader_tema - Тройная экспоненциальная скользящая средняя
    • trader_trange - Истинный диапазон
    • trader_trima - Треугольная скользящая средняя
    • trader_trix - 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
    • trader_tsf - Прогноз временного ряда
    • trader_typprice - Типичная цена
    • trader_ultosc - Окончательный, предельный осциллятор
    • trader_var - Вариация
    • trader_wclprice - Взвешенная цена закрытия
    • trader_willr - Williams' %R
    • trader_wma - Взвешенное скользящее среднее
    • trait_exists - Проверяет, существует ли трейт
    • Transliterator::create - Создать транслитератор
    • Transliterator::createFromRules - Создать транслитератор на основе правил
    • Transliterator::createInverse - Создать инвертированный транслитератор
    • Transliterator::getErrorCode - Получить код последней ошибки
    • Transliterator::getErrorMessage - Получить последнее сообщение об ошибке
    • Transliterator::listIDs - Получить идентификаторы транслитератора
    • Transliterator::transliterate - Транслитерировать строку
    • Transliterator::__construct - Приватный конструктор
    • trigger_error - Вызывает пользовательскую ошибку/предупреждение/уведомление
    • trim - Удаляет пробелы (или другие символы) из начала и конца строки
  • u
    • uasort - Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей
    • ucfirst - Преобразует первый символ строки в верхний регистр
    • UConverter::convert - Конвертировать строку из одной кодировки в другую
    • UConverter::fromUCallback - Callback-функция по умолчанию для "from"
    • UConverter::getAliases - Получить псевдонимы для заданного имени
    • UConverter::getAvailable - Получить доступные имена канонических конверторов
    • UConverter::getDestinationEncoding - Получить кодировку назначения
    • UConverter::getDestinationType - Получить тип конвертера назначения
    • UConverter::getErrorCode - Получить код последней ошибки объекта
    • UConverter::getErrorMessage - Получить последнее сообщение об ошибке в объекте
    • UConverter::getSourceEncoding - Получить исходную кодировку
    • UConverter::getSourceType - Получить тип конвертора источника
    • UConverter::getStandards - Получить стандарты, связанные с именами конвертеров
    • UConverter::getSubstChars - Получить замену символов
    • UConverter::reasonText - Получить строковое представление причины обратного вызова
    • UConverter::setDestinationEncoding - Установить кодировку назначения
    • UConverter::setSourceEncoding - Установить исходную кодировку
    • UConverter::setSubstChars - Установка символов подстановки
    • UConverter::toUCallback - Callback-функция по умолчанию для "to"
    • UConverter::transcode - Конвертировать строку из одной кодировки в другую
    • UConverter::__construct - Создать объект UConverter
    • ucwords - Преобразует в верхний регистр первый символ каждого слова в строке
    • udm_add_search_limit - Добавляет различные ограничения поиска
    • udm_alloc_agent - Запустить сессию mnoGoSearch
    • udm_alloc_agent_array - Запустить сессию mnoGoSearch с множеством соединений
    • udm_api_version - Получает версию mnoGoSearch API
    • udm_cat_list - Получить все категории того же уровня, что и заданная
    • udm_cat_path - Получить путь до указанной категории
    • udm_check_charset - Проверяет, известен ли данный набор символов mnogosearch
    • udm_clear_search_limits - Очищает все ограничения поиска mnoGoSearch
    • udm_crc32 - Возвращает контрольную сумму CRC32 данной строки
    • udm_errno - Получает номер ошибки mnoGoSearch
    • udm_error - Получает сообщение об ошибке mnoGoSearch
    • udm_find - Выполнить поиск
    • udm_free_agent - Освобождает сессию mnoGoSearch
    • udm_free_ispell_data - Освобождает память, выделенную для ispell-данных
    • udm_free_res - Освобождает память, выделенную для результатов mnoGoSearch
    • udm_get_doc_count - Получает общее количество документов в базе данных
    • udm_get_res_field - Извлечь поле из результата поиска
    • udm_get_res_param - Получить параметры результата mnoGoSearch
    • udm_hash32 - Возвращает контрольную сумму Hash32 данной строки
    • udm_load_ispell_data - Загружает ispell-данные
    • udm_set_agent_param - Установить параметры сессии mnoGoSearch
    • UI\Area::onDraw - Функция обратного вызова при рисовании
    • UI\Area::onKey - Функция обратного вызова при нажатии
    • UI\Area::onMouse - Функция обратного вызова мыши
    • UI\Area::redraw - Перерисовать область
    • UI\Area::scrollTo - Прокрутить область
    • UI\Area::setSize - Установить размер
    • UI\Control::destroy - Уничтожить управляющий элемент
    • UI\Control::disable - Отключить управляющий элемент
    • UI\Control::enable - Включить управляющий элемент
    • UI\Control::getParent - Получить родительский управляющий элемент
    • UI\Control::getTopLevel - Получить верхний уровень
    • UI\Control::hide - Скрыть управляющий элемент
    • UI\Control::isEnabled - Определить, включен ли управляющий элемент
    • UI\Control::isVisible - Определить, видимый ли управляющий элемент
    • UI\Control::setParent - Установить родительский управляющий элемент
    • UI\Control::show - Показать управляющий элемент
    • UI\Controls\Box::append - Добавить управляющий элемент
    • UI\Controls\Box::delete - Удалить управляющий элемент
    • UI\Controls\Box::getOrientation - Получить ориентацию
    • UI\Controls\Box::isPadded - Определение заполнения
    • UI\Controls\Box::setPadded - Установить заполнение
    • UI\Controls\Box::__construct - Создать новый объект Box
    • UI\Controls\Button::getText - Получить текст
    • UI\Controls\Button::onClick - Обработчик клика
    • UI\Controls\Button::setText - Установить текст
    • UI\Controls\Button::__construct - Создать новый объект Button
    • UI\Controls\Check::getText - Получить текст
    • UI\Controls\Check::isChecked - Определение отметки
    • UI\Controls\Check::onToggle - Функция обратного вызова переключения
    • UI\Controls\Check::setChecked - Установить статус выбранности
    • UI\Controls\Check::setText - Установить текст
    • UI\Controls\Check::__construct - Создать новый объект Check
    • UI\Controls\ColorButton::getColor - Получить объект Color
    • UI\Controls\ColorButton::onChange - Обработчик изменения
    • UI\Controls\ColorButton::setColor - Установить объект Color
    • UI\Controls\Combo::append - Добавить опцию
    • UI\Controls\Combo::getSelected - Получить выбранную опцию
    • UI\Controls\Combo::onSelected - Обработчик выбранной опции
    • UI\Controls\Combo::setSelected - Устанавливает выбранную опцию
    • UI\Controls\EditableCombo::append - Добавить опцию
    • UI\Controls\EditableCombo::getText - Получить текст
    • UI\Controls\EditableCombo::onChange - Обработчик изменения
    • UI\Controls\EditableCombo::setText - Установить текст
    • UI\Controls\Entry::getText - Получить текст
    • UI\Controls\Entry::isReadOnly - Определить, является ли элемент только для чтения
    • UI\Controls\Entry::onChange - Обработчик изменения
    • UI\Controls\Entry::setReadOnly - Установить "только для чтения"
    • UI\Controls\Entry::setText - Установить текст
    • UI\Controls\Entry::__construct - Создать новый объект Entry
    • UI\Controls\Form::append - Добавить управляющий элемент
    • UI\Controls\Form::delete - Удалить элемент управления
    • UI\Controls\Form::isPadded - Определение заполнения
    • UI\Controls\Form::setPadded - Установить заполнение
    • UI\Controls\Grid::append - Добавить управляющий элемент
    • UI\Controls\Grid::isPadded - Определение заполнения
    • UI\Controls\Grid::setPadded - Установить заполнение
    • UI\Controls\Group::append - Добавить управляющий элемент
    • UI\Controls\Group::getTitle - Получить заголовок
    • UI\Controls\Group::hasMargin - Определение поля
    • UI\Controls\Group::setMargin - Установить поле
    • UI\Controls\Group::setTitle - Установить заголовок
    • UI\Controls\Group::__construct - Создать новый объект Group
    • UI\Controls\Label::getText - Получить текст
    • UI\Controls\Label::setText - Установить текст
    • UI\Controls\Label::__construct - Создать новый объект Label
    • UI\Controls\MultilineEntry::append - Добавить текст
    • UI\Controls\MultilineEntry::getText - Получить текст
    • UI\Controls\MultilineEntry::isReadOnly - Определение "только для чтения"
    • UI\Controls\MultilineEntry::onChange - Обработчик изменения
    • UI\Controls\MultilineEntry::setReadOnly - Установить "только для чтения"
    • UI\Controls\MultilineEntry::setText - Установить текст
    • UI\Controls\MultilineEntry::__construct - Создать новый объект "Многострочный ввод"
    • UI\Controls\Picker::__construct - Создает новый объект Picker
    • UI\Controls\Progress::getValue - Получить значение
    • UI\Controls\Progress::setValue - Установить значение
    • UI\Controls\Radio::append - Добавляет вариант
    • UI\Controls\Radio::getSelected - Получить выбранный вариант
    • UI\Controls\Radio::onSelected - Обработчик выбора
    • UI\Controls\Radio::setSelected - Установить выбранный вариант
    • UI\Controls\Separator::__construct - Создать новый объект Separator
    • UI\Controls\Slider::getValue - Получить значение
    • UI\Controls\Slider::onChange - Обработчик изменения
    • UI\Controls\Slider::setValue - Установить значение
    • UI\Controls\Slider::__construct - Создает новый объект Slider
    • UI\Controls\Spin::getValue - Получить значение
    • UI\Controls\Spin::onChange - Обработчик изменения
    • UI\Controls\Spin::setValue - Установить значение
    • UI\Controls\Spin::__construct - Создает новый объект Spin
    • UI\Controls\Tab::append - Добавить страницу
    • UI\Controls\Tab::delete - Удалить страницу
    • UI\Controls\Tab::hasMargin - Определения поля
    • UI\Controls\Tab::insertAt - Вставить страницу
    • UI\Controls\Tab::pages - Количество страниц
    • UI\Controls\Tab::setMargin - Установить поле
    • UI\Draw\Brush::getColor - Получить цвет
    • UI\Draw\Brush::setColor - Установить цвет
    • UI\Draw\Brush::__construct - Создать новый объект Brush
    • UI\Draw\Brush\Gradient::addStop - Stop Manipulation
    • UI\Draw\Brush\Gradient::delStop - Stop Manipulation
    • UI\Draw\Brush\Gradient::setStop - Stop Manipulation
    • UI\Draw\Brush\LinearGradient::__construct - Construct a Linear Gradient
    • UI\Draw\Brush\RadialGradient::__construct - Construct a new Radial Gradient
    • UI\Draw\Color::getChannel - Управление цветом
    • UI\Draw\Color::setChannel - Управление цветом
    • UI\Draw\Color::__construct - Создать новый объект Color
    • UI\Draw\Matrix::invert - Инвертировать матрицу
    • UI\Draw\Matrix::isInvertible - Определение, инвертирована ли матрица
    • UI\Draw\Matrix::multiply - Умножить матрицу
    • UI\Draw\Matrix::rotate - Перевернуть матрицу
    • UI\Draw\Matrix::scale - Масштабировать матрицу
    • UI\Draw\Matrix::skew - Наклонить матрицу
    • UI\Draw\Matrix::translate - Перевести матрицу
    • UI\Draw\Path::addRectangle - Нарисовать прямоугольник
    • UI\Draw\Path::arcTo - Нарисовать дугу
    • UI\Draw\Path::bezierTo - Нарисовать кривую Безье
    • UI\Draw\Path::closeFigure - Закрыть фигуру
    • UI\Draw\Path::end - Завершить путь
    • UI\Draw\Path::lineTo - Нарисовать линию
    • UI\Draw\Path::newFigure - Нарисовать фигуру
    • UI\Draw\Path::newFigureWithArc - Нарисовать фигуру с дугой
    • UI\Draw\Path::__construct - Создать новый объект Path
    • UI\Draw\Pen::clip - Обрезать путь
    • UI\Draw\Pen::fill - Залить путь
    • UI\Draw\Pen::restore - Восстановить
    • UI\Draw\Pen::save - Сохранить
    • UI\Draw\Pen::stroke - Обвести путь
    • UI\Draw\Pen::transform - Преобразовать матрицу
    • UI\Draw\Pen::write - Нарисовать текст в точке
    • UI\Draw\Stroke::getCap - Получить конец линии
    • UI\Draw\Stroke::getJoin - Получить соединение линии
    • UI\Draw\Stroke::getMiterLimit - Получить предел среза
    • UI\Draw\Stroke::getThickness - Получить толщину
    • UI\Draw\Stroke::setCap - Установить конец линии
    • UI\Draw\Stroke::setJoin - Получить соединение линии
    • UI\Draw\Stroke::setMiterLimit - Установить предел среза
    • UI\Draw\Stroke::setThickness - Установить толщину
    • UI\Draw\Stroke::__construct - Создать новый объект Stroke
    • UI\Draw\Text\Font::getAscent - Показатели шрифта
    • UI\Draw\Text\Font::getDescent - Показатели шрифта
    • UI\Draw\Text\Font::getLeading - Показатели шрифта
    • UI\Draw\Text\Font::getUnderlinePosition - Показатели шрифта
    • UI\Draw\Text\Font::getUnderlineThickness - Показатели шрифта
    • UI\Draw\Text\Font::__construct - Создать новый объект Font
    • UI\Draw\Text\Font\Descriptor::getFamily - Get Font Family
    • UI\Draw\Text\Font\Descriptor::getItalic - Style Detection
    • UI\Draw\Text\Font\Descriptor::getSize - Size Detection
    • UI\Draw\Text\Font\Descriptor::getStretch - Style Detection
    • UI\Draw\Text\Font\Descriptor::getWeight - Weight Detection
    • UI\Draw\Text\Font\Descriptor::__construct - Construct a new Font Descriptor
    • UI\Draw\Text\Font\fontFamilies - Извлечь семейство шрифтов
    • UI\Draw\Text\Layout::setColor - Установить цвет
    • UI\Draw\Text\Layout::setWidth - Установить ширину
    • UI\Draw\Text\Layout::__construct - Создать новый объект макета текста
    • UI\Executor::kill - Остановить исполнитель
    • UI\Executor::onExecute - Callback-функция выполнения
    • UI\Executor::setInterval - Управление интервалом
    • UI\Executor::__construct - Создать новый объект Executor
    • UI\Menu::append - Добавить пункт меню
    • UI\Menu::appendAbout - Добавить пункт меню About
    • UI\Menu::appendCheck - Добавить пункт меню с чекбоксом
    • UI\Menu::appendPreferences - Добавить пункт меню "Настройки" (Preferences)
    • UI\Menu::appendQuit - Добавить пункт меню "Выход" (Quit)
    • UI\Menu::appendSeparator - Добавить пункт меню "Разделитель" (Separator)
    • UI\Menu::__construct - Создать новый объект Menu
    • UI\MenuItem::disable - Отключить пункт меню
    • UI\MenuItem::enable - Включить пункт меню
    • UI\MenuItem::isChecked - Определение выбранности пункта
    • UI\MenuItem::onClick - Обработчик нажатия
    • UI\MenuItem::setChecked - Выбрать пункт меню
    • UI\Point::at - Приведение Size
    • UI\Point::getX - Получает X
    • UI\Point::getY - Получить Y
    • UI\Point::setX - Установить X
    • UI\Point::setY - Установить Y
    • UI\Point::__construct - Создать новый объект Point
    • UI\quit - Выйти из цикла UI
    • UI\run - Войти в цикл UI
    • UI\Size::getHeight - Получает высоту
    • UI\Size::getWidth - Получает ширину
    • UI\Size::of - Приведение Point
    • UI\Size::setHeight - Установить высоту
    • UI\Size::setWidth - Установить ширину
    • UI\Size::__construct - Создать новый объект Size
    • UI\Window::add - Добавить элемент управления
    • UI\Window::error - Показать блок ошибки
    • UI\Window::getSize - Получить размер окна
    • UI\Window::getTitle - Получить заголовок
    • UI\Window::hasBorders - Определение рамки
    • UI\Window::hasMargin - Определение полей
    • UI\Window::isFullScreen - Определение полного экрана
    • UI\Window::msg - Показать блок сообщения
    • UI\Window::onClosing - Callback-функция закрытия
    • UI\Window::open - Открыть диалоговое окно
    • UI\Window::save - Сохранить диалоговое окно
    • UI\Window::setBorders - Использование рамок
    • UI\Window::setFullScreen - Использование полного экрана
    • UI\Window::setMargin - Использование поля
    • UI\Window::setSize - Установить размер
    • UI\Window::setTitle - Заголовок окна
    • UI\Window::__construct - Создать новый объект Window
    • uksort - Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей
    • umask - Изменяет текущую umask
    • uniqid - Сгенерировать уникальный ID
    • unixtojd - Переводит метку времени Unix в юлианский день
    • unlink - Удаляет файл
    • unpack - Распаковать данные из бинарной строки
    • unregister_tick_function - Удаляет функцию из списка зарегистрированных для выполнения на каждом тике
    • unserialize - Создает PHP-значение из хранимого представления
    • unset - Удаляет переменную
    • untaint - Исправить строку
    • uopz_add_function - Добавляет несуществующую функцию или метод
    • uopz_allow_exit - Позволяет управлять отключенным опкодом exit
    • uopz_backup - Резервирует функцию
    • uopz_compose - Составить класс
    • uopz_copy - Скопировать функцию
    • uopz_delete - Удалить функцию
    • uopz_del_function - Удаляет ранее добавленную функцию или метод
    • uopz_extend - Расширить класс во время выполнения
    • uopz_flags - Получить или установить флаги для функции или класса
    • uopz_function - Создает функцию во время выполнения
    • uopz_get_exit_status - Получить последний установленный статус выхода
    • uopz_get_hook - Получает ранее установленный обработчик на функцию или метод
    • uopz_get_mock - Получить текущий имитатор (mock) для класса
    • uopz_get_property - Получает значение класса или свойство экземпляра
    • uopz_get_return - Получает предыдущее установленное возвращаемое значение для функции
    • uopz_get_static - Возвращает статические переменные из области видимости функции или метода
    • uopz_implement - Реализует интерфейс во время выполнения
    • uopz_overload - Перегрузить опкод VM
    • uopz_redefine - Переопределить константу
    • uopz_rename - Переименовать функцию во время выполнения
    • uopz_restore - Восстановить ранее зарезервированную функцию
    • uopz_set_hook - Устанавливает обработчик для выполнения при вызове функции или метода
    • uopz_set_mock - Использовать имитататор вместо класса для новых объектов
    • uopz_set_property - Устанавливает значение существующего свойства класса или экземпляра
    • uopz_set_return - Предоставить возвращаемое значение для существующей функции
    • uopz_set_static - Устанавливает статические переменные в области видимости функции или метода
    • uopz_undefine - Отменяет определение константы
    • uopz_unset_hook - Удаляет ранее установленную функцию или метод
    • uopz_unset_mock - Удалить ранее установленный имитатор
    • uopz_unset_return - Отменяет ранее установленное возвращаемое значение для функции
    • urldecode - Декодирование URL-кодированной строки
    • urlencode - URL-кодирование строки
    • user_error - Псевдоним trigger_error
    • use_soap_error_handler - Установить, следует ли использовать обработчик ошибок SOAP
    • usleep - Задержка выполнения в микросекундах
    • usort - Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов
    • utf8_decode - Преобразует строку с символами ISO-8859-1, кодированную в UTF-8, в однобайтную ISO-8859-1
    • utf8_encode - Кодирует строку ISO-8859-1 в кодировке UTF-8
  • v
    • V8Js::executeString - Выполнить строку как код Javascript
    • V8Js::getExtensions - Возвращает массив зарегистрированных модулей
    • V8Js::getPendingException - Возвращает ожидающее непойманное исключение Javascript
    • V8Js::registerExtension - Регистрация модуля Javascript для V8Js
    • V8Js::__construct - Создает новый объект V8Js
    • V8JsException::getJsFileName - Получить имя файла JavaScript
    • V8JsException::getJsLineNumber - Получить номер строки
    • V8JsException::getJsSourceLine - Получить исходную строку JavaScript
    • V8JsException::getJsTrace - Получить стек вызовов
    • VARIANT::__construct - Конструктор класса VARIANT
    • variant_abs - Получить абсолютное значение варианта
    • variant_add - Сложить значения двух вариантов
    • variant_and - Побитовое И над двумя вариантами
    • variant_cast - Преобразование варианта в новый вариант другого типа
    • variant_cat - Объединение (конкатенация) значений двух вариантов
    • variant_cmp - Сравнить два варианта
    • variant_date_from_timestamp - Получить представление даты для варианта из временной метки Unix
    • variant_date_to_timestamp - Преобразует вариант типа дата/время во временную метку Unix
    • 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 - Исключающее ИЛИ над двумя вариантами
    • VarnishAdmin::auth - Аутентификация на экземпляре varnish
    • VarnishAdmin::ban - Запретить URL-адреса, используя выражение VCL
    • VarnishAdmin::banUrl - Запретить URL, используя выражение VCL
    • VarnishAdmin::clearPanic - Очистить критические сообщения экземпляра varnish
    • VarnishAdmin::connect - Подключение к интерфейсу администрирования экземпляра varnish
    • VarnishAdmin::disconnect - Отключение от интерфейса администрирования экземпляра varnish
    • VarnishAdmin::getPanic - Получить последнее критическое сообщение на экземпляре varnish
    • VarnishAdmin::getParams - Получить параметры конфигурации текущего экземпляра varnish
    • VarnishAdmin::isRunning - Проверить, выполняется в настоящий момент подчинённый процесс varnish
    • VarnishAdmin::setCompat - Установить параметр конфигурации compat класса
    • VarnishAdmin::setHost - Установить параметр конфигурации host класса
    • VarnishAdmin::setIdent - Установить параметр конфигурации ident класса
    • VarnishAdmin::setParam - Установить параметр конфигурации на текущем экземпляре varnish
    • VarnishAdmin::setPort - Установить параметр конфигурации port класса
    • VarnishAdmin::setSecret - Установить параметр конфигурации secret класса
    • VarnishAdmin::setTimeout - Установить параметр конфигурации timeout класса
    • VarnishAdmin::start - Запустить рабочий процесс varnish
    • VarnishAdmin::stop - Остановить рабочий процесс varnish
    • VarnishAdmin::__construct - VarnishAdmin constructor
    • VarnishLog::getLine - Получить следующую строку журнала
    • VarnishLog::getTagName - Получить строковое представление тега журнала по его индексу
    • VarnishLog::__construct - Конструктор Varnishlog
    • VarnishStat::getSnapshot - Получить снимок статистики текущего экземпляра varnish
    • VarnishStat::__construct - Конструктор VarnishStat
    • var_dump - Выводит информацию о переменной
    • var_export - Выводит или возвращает интерпретируемое строковое представление переменной
    • version_compare - Сравнивает две "стандартизованные" строки с номером версии PHP
    • vfprintf - Записывает отформатированную строку в поток
    • virtual - Выполняет подзапрос Apache
    • 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
    • vpopmail_passwd - Изменить пароль виртуального пользователя
    • vpopmail_set_user_quota - Устанавливает квоту для виртуального пользователя
    • vprintf - Выводит отформатированную строку
    • vsprintf - Возвращает отформатированную строку
    • Vtiful\Kernel\Excel::addSheet - Добавить лист
    • Vtiful\Kernel\Excel::autoFilter - Добавить автофильтр
    • Vtiful\Kernel\Excel::constMemory - Количество памяти
    • Vtiful\Kernel\Excel::data - Записать данные
    • Vtiful\Kernel\Excel::fileName - Создать название файла
    • Vtiful\Kernel\Excel::getHandle - Получить дескриптор
    • Vtiful\Kernel\Excel::header - Записать заголовок
    • Vtiful\Kernel\Excel::insertFormula - Вставить формулу расчета
    • Vtiful\Kernel\Excel::insertImage - Вставить изображение
    • Vtiful\Kernel\Excel::insertText - Вставить текст
    • Vtiful\Kernel\Excel::mergeCells - Объединить ячейки
    • Vtiful\Kernel\Excel::output - Вывод
    • Vtiful\Kernel\Excel::setColumn - Установить столбец
    • Vtiful\Kernel\Excel::setRow - Установить строку
    • Vtiful\Kernel\Excel::__construct - Конструктор
    • Vtiful\Kernel\Format::align - Выравнивание
    • Vtiful\Kernel\Format::bold - Полужирный
    • Vtiful\Kernel\Format::italic - Курсив
    • Vtiful\Kernel\Format::underline - Подчеркнутый
  • w
    • Warning::__construct - Конструктор класса Warning
    • wddx_add_vars - Добавить переменные в пакет WDDX с указанным идентификатором
    • wddx_deserialize - Десериализует пакет WDDX
    • wddx_packet_end - Завершает пакет WDDX с указанным идентификатором
    • wddx_packet_start - Запускает новый пакет WDDX со структурой внутри него
    • wddx_serialize_value - Сериализует одно значение внутри пакета WDDX
    • wddx_serialize_vars - Сериализация переменных в пакет WDDX
    • WeakMap::count - Количество актуальных ссылок в карте
    • WeakMap::current - Возвращает текущее значение относительно внутреннего итератора
    • WeakMap::key - Возвращает текущий ключ относительно внутреннего итератора
    • WeakMap::next - Следующий элемент в карте ссылок
    • WeakMap::offsetExists - Проверяет, присутствует ли переданный объект в карте
    • WeakMap::offsetGet - Возвращает значение, на которое указывает переданный объект
    • WeakMap::offsetSet - Добавляет новую пару ключ-значение в карту
    • WeakMap::offsetUnset - Удалить запись из карты
    • WeakMap::rewind - Возвращает указатель итератора на начало карты
    • WeakMap::valid - Проверяет, укзывает ли текущий итератор на действительное значение
    • WeakMap::__construct - Создает новую карту ссылок
    • Weakref::acquire - Создает сильную ссылку на текущий объект
    • Weakref::get - Возвращает объект, на который указывает ссылка
    • Weakref::release - Освобождает предыдущую сильную ссылку
    • Weakref::valid - Проверяет актуальность ссылки на объект
    • Weakref::__construct - Создает новую слабую ссылку
    • WeakReference::create - Создает новую слабую ссылку
    • WeakReference::get - Получает объект со слабой ссылкой
    • WeakReference::__construct - Конструктор, который запрещает реализацию
    • win32_continue_service - Возобновляет работу приостановленной службы
    • 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_pause_service - Pauses a service
    • win32_ps_list_procs - Список запущенных процессов
    • win32_ps_stat_mem - Статистика использования памяти
    • win32_ps_stat_proc - Статистика процесса
    • win32_query_service_status - Queries the status of a service
    • win32_send_custom_control - Send a custom control to the service
    • win32_set_service_exit_code - Define or return the exit code for the current running service
    • win32_set_service_exit_mode - Define or return the exit mode for the current running service
    • win32_set_service_status - Update the service status
    • win32_start_service - Запускает службу
    • win32_start_service_ctrl_dispatcher - Добавляет в Диспетчер Служб скрипт, который может быть использован, как служба с заданным именем
    • win32_stop_service - Останавливает службу
    • wincache_fcache_fileinfo - Retrieves information about files cached in the file cache
    • wincache_fcache_meminfo - Retrieves information about file cache memory usage
    • wincache_lock - Acquires an exclusive lock on a given key
    • wincache_ocache_fileinfo - Retrieves information about files cached in the opcode cache
    • wincache_ocache_meminfo - Retrieves information about opcode cache memory usage
    • wincache_refresh_if_changed - Refreshes the cache entries for the cached files
    • wincache_rplist_fileinfo - Retrieves information about resolve file path cache
    • wincache_rplist_meminfo - Retrieves information about memory usage by the resolve file path cache
    • wincache_scache_info - Retrieves information about files cached in the session cache
    • wincache_scache_meminfo - Retrieves information about session cache memory usage
    • wincache_ucache_add - Adds a variable in user cache only if variable does not already exist in the cache
    • wincache_ucache_cas - Compares the variable with old value and assigns new value to it
    • wincache_ucache_clear - Deletes entire content of the user cache
    • wincache_ucache_dec - Decrements the value associated with the key
    • wincache_ucache_delete - Deletes variables from the user cache
    • wincache_ucache_exists - Checks if a variable exists in the user cache
    • wincache_ucache_get - Gets a variable stored in the user cache
    • wincache_ucache_inc - Increments the value associated with the key
    • wincache_ucache_info - Retrieves information about data stored in the user cache
    • wincache_ucache_meminfo - Retrieves information about user cache memory usage
    • wincache_ucache_set - Adds a variable in user cache and overwrites a variable if it already exists in the cache
    • wincache_unlock - Releases an exclusive lock on a given key
    • wkhtmltox\Image\Converter::convert - Выполнить преобразование изображений
    • wkhtmltox\Image\Converter::getVersion - Определить версию конвертера
    • wkhtmltox\Image\Converter::__construct - Создать новый конвертер изображений
    • wkhtmltox\PDF\Converter::add - Добавление объекта для преобразования
    • wkhtmltox\PDF\Converter::convert - Выполнить преобразование PDF
    • wkhtmltox\PDF\Converter::getVersion - Определить версию конвертера
    • wkhtmltox\PDF\Converter::__construct - Создать новый PDF-конвертер
    • wkhtmltox\PDF\Object::__construct - Создать новый объект PDF
    • wordwrap - Переносит строку по указанному количеству символов
    • Worker::collect - Collect references to completed tasks
    • Worker::getStacked - Gets the remaining stack size
    • Worker::isShutdown - State Detection
    • Worker::isWorking - State Detection
    • Worker::shutdown - Shutdown the worker
    • Worker::stack - Stacking work
    • Worker::unstack - Unstacking work
  • x
    • xattr_get - Получение расширенных атрибутов файла
    • xattr_list - Просмотр списка расширенных атрибутов файла
    • xattr_remove - Удаление расширенных атрибутов файла
    • xattr_set - Установка расширенных атрибутов файла
    • xattr_supported - Проверка поддержки расширенных атрибутов
    • xdiff_file_bdiff - Создать бинарный патч сравнивая два файла
    • xdiff_file_bdiff_size - Получить размер файла после применения бинарного патча
    • xdiff_file_bpatch - Применить бинарный патч к файлу
    • xdiff_file_diff - Создать унифицированный патч из сравнения двух файлов
    • xdiff_file_diff_binary - Псевдоним для xdiff_file_bdiff
    • xdiff_file_merge3 - Объединение трех файлов в один
    • xdiff_file_patch - Применение унифицированного патча к файлу
    • xdiff_file_patch_binary - Псевдоним для xdiff_file_bpatch
    • xdiff_file_rabdiff - Создать бинарный патч сравнивая два файла с помощью полиноминального алгоритма Rabin fingerprinting
    • xdiff_string_bdiff - Создать бинарный патч для двух строк
    • xdiff_string_bdiff_size - Получить размер файла созданного после применения бинарного патча
    • xdiff_string_bpatch - Применение бинарного патча к строке
    • xdiff_string_diff - Создать обычный патч для двух строк
    • xdiff_string_diff_binary - Псевдоним для xdiff_string_bdiff
    • xdiff_string_merge3 - Объединить три строки в одну
    • xdiff_string_patch - Применить обычный патч к строке
    • xdiff_string_patch_binary - Псевдоним для xdiff_string_bpatch
    • xdiff_string_rabdiff - Сравнить две строки и создать бинарный патч используя полиноминальный алгоритм Rabin fingerprint
    • xhprof_disable - Останавливает профилирование xhprof
    • xhprof_enable - Запуск профилирования xhprof
    • xhprof_sample_disable - Остановить сэмплирующие профилирование xhprof
    • xhprof_sample_enable - Запуск сэмплирующего режима профилирования XHProf
    • XMLDiff\Base::diff - Производит сравнение двух документов XML
    • XMLDiff\Base::merge - Создает новый документ XML, основываясь на информации о его отличии от другого
    • XMLDiff\Base::__construct - Конструктор
    • XMLDiff\DOM::diff - Поиск различий в двух объектах DOMDocument
    • XMLDiff\DOM::merge - Объединяет объект DOMDocument, на основании другого объекта DOMDocument, полученного с помощью XMLDiff\DOM::diff
    • XMLDiff\File::diff - Сравнение двух файлов XML
    • XMLDiff\File::merge - Применить изменения к документу XML
    • XMLDiff\Memory::diff - Сравнение двух документов XML
    • XMLDiff\Memory::merge - Применить изменения к документу XML
    • XMLReader::close - Закрыть ввод XMLReader
    • XMLReader::expand - Возвратить копию текущего узла в виде объекта DOM
    • XMLReader::getAttribute - Получить значение атрибута с определённым именем
    • XMLReader::getAttributeNo - Получить значение атрибута по индексу
    • XMLReader::getAttributeNs - Получить значение атрибута по localname и URI
    • XMLReader::getParserProperty - Указывает, было ли определенное свойство установлено
    • XMLReader::isValid - Показать, является ли разбираемый документ синтаксически правильным
    • XMLReader::lookupNamespace - Найти пространство имён для префикса
    • XMLReader::moveToAttribute - Переместить курсор к атрибуту с заданным именем
    • XMLReader::moveToAttributeNo - Переместить курсор на атрибут по индексу
    • XMLReader::moveToAttributeNs - Переместить курсор к именованному атрибуту
    • XMLReader::moveToElement - Позиционировать курсор на родительском элементе текущего атрибута
    • XMLReader::moveToFirstAttribute - Переместить позицию курсора на первый атрибут
    • XMLReader::moveToNextAttribute - Переместить позицию курсора на следующий атрибут
    • XMLReader::next - Переместить курсор на следующий узел, пропуская все поддеревья
    • XMLReader::open - Установить URI, содержащий XML-документ для разбора
    • XMLReader::read - Переместиться к следующему узлу в документе
    • XMLReader::readInnerXml - Извлечь XML из текущего узла
    • XMLReader::readOuterXml - Получить XML из текущего узла, включая сам узел
    • XMLReader::readString - Прочитать содержимое текущего узла как строку
    • XMLReader::setParserProperty - Устанавливает опцию парсера
    • XMLReader::setRelaxNGSchema - Установить имя файла или URI для схемы RelaxNG
    • XMLReader::setRelaxNGSchemaSource - Устанавливает данные, содержащие схему RelaxNG
    • XMLReader::setSchema - Проверить документ, используя XSD
    • XMLReader::XML - Установить данные, содержащие XML для разбора
    • xmlrpc_decode - Декодирует XML в нативные типы PHP
    • xmlrpc_decode_request - Декодирует XML в нативные типы PHP
    • xmlrpc_encode - Генерирует XML для PHP значения
    • xmlrpc_encode_request - Генерирует XML для метода запроса
    • xmlrpc_get_type - Получает XML-RPC тип для значения PHP
    • xmlrpc_is_fault - Определяет, является ли массив значений представлением ошибки XMLRPC
    • xmlrpc_parse_method_descriptions - Декодирует XML в список описаний методов
    • xmlrpc_server_add_introspection_data - Добавляет документацию самоанализа
    • xmlrpc_server_call_method - Разбирает XML-запросы и вызывающие методы
    • xmlrpc_server_create - Создаёт сервер XML-RPC
    • xmlrpc_server_destroy - Уничтожает серверные ресурсы
    • xmlrpc_server_register_introspection_callback - Регистрирует функцию PHP для генерации документации
    • xmlrpc_server_register_method - Регистрирует функцию PHP к методу ресурса, соответствующему method_name
    • xmlrpc_set_type - Устанавливает тип XML-RPC, base64 или datetime для значения строки PHP
    • XMLWriter::endAttribute - Завершить атрибут
    • XMLWriter::endCdata - Завершить текущую секцию CDATA
    • XMLWriter::endComment - Завершить комментарий
    • XMLWriter::endDocument - Завершить текущий документ
    • XMLWriter::endDtd - Завершить текущий DTD
    • XMLWriter::endDtdAttlist - Завершить текущий список атрибутов DTD
    • XMLWriter::endDtdElement - Завершить текущий элемент DTD
    • XMLWriter::endDtdEntity - Завершить текущую запись DTD
    • XMLWriter::endElement - Завершить текущий элемент
    • XMLWriter::endPi - Завершить текущую инструкцию обработки (PI)
    • XMLWriter::flush - Сбросить текущий буфер
    • XMLWriter::fullEndElement - Завершить текущий элемент
    • XMLWriter::openMemory - Создать новый объект XMLWriter, используя память для строкового вывода
    • XMLWriter::openUri - Создать новый объект XMLWriter, используя исходный URI для вывода
    • XMLWriter::outputMemory - Возвращает текущий буфер
    • XMLWriter::setIndent - Включить или отключить отступы
    • XMLWriter::setIndentString - Установить строку, используемую для отступов
    • XMLWriter::startAttribute - Создать начальный атрибут
    • XMLWriter::startAttributeNs - Создать стартовый атрибут пространства имен
    • XMLWriter::startCdata - Создать начальный тег CDATA
    • XMLWriter::startComment - Создает стартовый комментарий
    • XMLWriter::startDocument - Создать тег документа
    • XMLWriter::startDtd - Создать стартовый DTD тег
    • XMLWriter::startDtdAttlist - Создает стартовый список атрибутов DTD
    • XMLWriter::startDtdElement - Создать стартовый элемент DTD
    • XMLWriter::startDtdEntity - Создать стартовую запись DTD
    • XMLWriter::startElement - Создать стартовый тег элемента
    • XMLWriter::startElementNs - Создать стартовый тег элемента пространства имен
    • XMLWriter::startPi - Создать стартовый тег PI
    • XMLWriter::text - Записать текст
    • XMLWriter::writeAttribute - Записать полный атрибут
    • XMLWriter::writeAttributeNs - Записать полный атрибут пространства имен
    • XMLWriter::writeCdata - Записать полный тег CDATA
    • XMLWriter::writeComment - Записать полный тег комментария
    • XMLWriter::writeDtd - Записать полный тег DTD
    • XMLWriter::writeDtdAttlist - Записать полный тег DTD AttList
    • XMLWriter::writeDtdElement - Записать полный тег элемента DTD
    • XMLWriter::writeDtdEntity - Записать полный тег DTD записи
    • XMLWriter::writeElement - Записать полный тег элемента
    • XMLWriter::writeElementNs - Записать полное пространство имен тега элемента
    • XMLWriter::writePi - Записать инструкцию обработки (PI)
    • XMLWriter::writeRaw - Записать необработанный XML-текст
    • xml_error_string - Получение строки ошибки XML-анализатора
    • xml_get_current_byte_index - Получает текущий для XML-анализатора байтовый индекс
    • xml_get_current_column_number - Получает от XML-анализатора номер текущего столбца
    • xml_get_current_line_number - Получает от XML-анализатора номер текущей строки
    • xml_get_error_code - Получает код ошибки XML-анализатора
    • xml_parse - Запускает разбор XML-документа
    • xml_parser_create - Создание XML-анализатора
    • xml_parser_create_ns - Создание XML-анализатора с поддержкой пространств имен
    • xml_parser_free - Освобождение XML-анализатора
    • xml_parser_get_option - Получение значения настройки XML-анализатора
    • xml_parser_set_option - Установка значения настройки XML-анализатора
    • xml_parse_into_struct - Разбор XML-данных и помещение в массив
    • 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-анализатора внутри объекта
    • xml_set_processing_instruction_handler - Установка обработчика инструкций препроцессора (PI)
    • xml_set_start_namespace_decl_handler - Установка обработчика входа в пределы пространства имен
    • xml_set_unparsed_entity_decl_handler - Установка обработчика неразобранных объявлений сущностей
    • XSLTProcessor::getParameter - Возвращает значение параметра
    • XSLTProcessor::getSecurityPrefs - Получить настройки безопасности
    • XSLTProcessor::hasExsltSupport - Определяет имеет ли PHP поддержку EXSLT
    • XSLTProcessor::importStylesheet - Импортирует таблицу стилей
    • XSLTProcessor::registerPHPFunctions - Включает возможность использовать PHP функции в качестве функций XSLT
    • XSLTProcessor::removeParameter - Удаляет параметр
    • XSLTProcessor::setParameter - Устанавливает значение параметра
    • XSLTProcessor::setProfiling - Устанавливает файл для профилирования
    • XSLTProcessor::setSecurityPrefs - Установить настройки безопасности
    • XSLTProcessor::transformToDoc - Преобразует в DOMDocument
    • XSLTProcessor::transformToUri - Преобразует в URI
    • XSLTProcessor::transformToXml - Преобразует в XML
    • XSLTProcessor::__construct - Создаёт новый экземпляр класса XSLTProcessor
  • y
    • Yaconf::get - Извлечь элемент
    • Yaconf::has - Определить, существует ли элемент
    • Yaf_Action_Abstract::execute - Точка входа для Action-классов
    • Yaf_Action_Abstract::getController - Получить объект контроллер
    • Yaf_Application::app - Извлечь экземпляр приложения
    • Yaf_Application::bootstrap - Вызвать bootstrap
    • Yaf_Application::clearLastError - Очистка информации по последней ошибке
    • Yaf_Application::environ - Получить значение окружения
    • Yaf_Application::execute - Запустить callback-функцию
    • Yaf_Application::getAppDirectory - Получить директорию приложения
    • Yaf_Application::getConfig - Получить экземпляр класса конфигурации
    • Yaf_Application::getDispatcher - Получить экземпляр класса Yaf_Dispatcher
    • Yaf_Application::getLastErrorMsg - Получить последнее сообщение об ошибке
    • Yaf_Application::getLastErrorNo - Получить код последней ошибки
    • Yaf_Application::getModules - Получить имена заявленных модулей
    • Yaf_Application::run - Запустить Yaf_Application
    • Yaf_Application::setAppDirectory - Изменить директорию приложения
    • Yaf_Application::__clone - Yaf_Application нельзя клонировать
    • Yaf_Application::__construct - Конструктор класса Yaf_Application
    • Yaf_Application::__destruct - Деструктор Yaf_Application
    • Yaf_Application::__sleep - Yaf_Application нельзя сериализовывать
    • Yaf_Application::__wakeup - Yaf_Application нельзя десериализовывать
    • Yaf_Config_Abstract::get - Getter
    • Yaf_Config_Abstract::readonly - Find a config whether readonly
    • Yaf_Config_Abstract::set - Setter
    • Yaf_Config_Abstract::toArray - Cast to array
    • Yaf_Config_Ini::count - Count all elements in Yaf_Config.ini
    • Yaf_Config_Ini::current - Retrieve the current value
    • Yaf_Config_Ini::key - Fetch current element's key
    • Yaf_Config_Ini::next - Advance the internal pointer
    • Yaf_Config_Ini::offsetExists - The offsetExists purpose
    • Yaf_Config_Ini::offsetGet - The offsetGet purpose
    • Yaf_Config_Ini::offsetSet - The offsetSet purpose
    • Yaf_Config_Ini::offsetUnset - The offsetUnset purpose
    • Yaf_Config_Ini::readonly - The readonly purpose
    • Yaf_Config_Ini::rewind - The rewind purpose
    • Yaf_Config_Ini::toArray - Return config as a PHP array
    • Yaf_Config_Ini::valid - The valid purpose
    • Yaf_Config_Ini::__construct - Yaf_Config_Ini constructor
    • Yaf_Config_Ini::__get - Retrieve a element
    • Yaf_Config_Ini::__isset - Determine if a key is exists
    • Yaf_Config_Ini::__set - The __set purpose
    • Yaf_Config_Simple::count - The count purpose
    • Yaf_Config_Simple::current - The current purpose
    • Yaf_Config_Simple::key - The key purpose
    • Yaf_Config_Simple::next - The next purpose
    • Yaf_Config_Simple::offsetExists - The offsetExists purpose
    • Yaf_Config_Simple::offsetGet - The offsetGet purpose
    • Yaf_Config_Simple::offsetSet - The offsetSet purpose
    • Yaf_Config_Simple::offsetUnset - The offsetUnset purpose
    • Yaf_Config_Simple::readonly - The readonly purpose
    • Yaf_Config_Simple::rewind - The rewind purpose
    • Yaf_Config_Simple::toArray - Returns a PHP array
    • Yaf_Config_Simple::valid - The valid purpose
    • Yaf_Config_Simple::__construct - The __construct purpose
    • Yaf_Config_Simple::__get - The __get purpose
    • Yaf_Config_Simple::__isset - The __isset purpose
    • Yaf_Config_Simple::__set - The __set purpose
    • Yaf_Controller_Abstract::display - The display purpose
    • Yaf_Controller_Abstract::forward - Foward to another action
    • Yaf_Controller_Abstract::getInvokeArg - The getInvokeArg purpose
    • Yaf_Controller_Abstract::getInvokeArgs - The getInvokeArgs purpose
    • Yaf_Controller_Abstract::getModuleName - Get module name
    • Yaf_Controller_Abstract::getRequest - Retrieve current request object
    • Yaf_Controller_Abstract::getResponse - Retrieve current response object
    • Yaf_Controller_Abstract::getView - Retrieve the view engine
    • Yaf_Controller_Abstract::getViewpath - The getViewpath purpose
    • Yaf_Controller_Abstract::init - Controller initializer
    • Yaf_Controller_Abstract::initView - The initView purpose
    • Yaf_Controller_Abstract::redirect - Redirect to a URL
    • Yaf_Controller_Abstract::render - Render view template
    • Yaf_Controller_Abstract::setViewpath - The setViewpath purpose
    • Yaf_Controller_Abstract::__clone - Yaf_Controller_Abstract can not be cloned
    • Yaf_Controller_Abstract::__construct - Yaf_Controller_Abstract constructor
    • Yaf_Dispatcher::autoRender - Switch on/off autorendering
    • Yaf_Dispatcher::catchException - Switch on/off exception catching
    • Yaf_Dispatcher::disableView - Disable view rendering
    • Yaf_Dispatcher::dispatch - Dispatch a request
    • Yaf_Dispatcher::enableView - Enable view rendering
    • Yaf_Dispatcher::flushInstantly - Switch on/off the instant flushing
    • Yaf_Dispatcher::getApplication - Retrive the application
    • Yaf_Dispatcher::getInstance - Retrive the dispatcher instance
    • Yaf_Dispatcher::getRequest - Retrive the request instance
    • Yaf_Dispatcher::getRouter - Retrive router instance
    • Yaf_Dispatcher::initView - Initialize view and return it
    • Yaf_Dispatcher::registerPlugin - Register a plugin
    • Yaf_Dispatcher::returnResponse - The returnResponse purpose
    • Yaf_Dispatcher::setDefaultAction - Change default action name
    • Yaf_Dispatcher::setDefaultController - Change default controller name
    • Yaf_Dispatcher::setDefaultModule - Change default module name
    • Yaf_Dispatcher::setErrorHandler - Set error handler
    • Yaf_Dispatcher::setRequest - The setRequest purpose
    • Yaf_Dispatcher::setView - Set a custom view engine
    • Yaf_Dispatcher::throwException - Switch on/off exception throwing
    • Yaf_Dispatcher::__clone - Yaf_Dispatcher can not be cloned
    • Yaf_Dispatcher::__construct - Yaf_Dispatcher constructor
    • Yaf_Dispatcher::__sleep - Yaf_Dispatcher can not be serialized
    • Yaf_Dispatcher::__wakeup - Yaf_Dispatcher can not be unserialized
    • Yaf_Exception::getPrevious - Получить предыдущее исключение
    • Yaf_Exception::__construct - Конструктор класса Yaf_Exception
    • Yaf_Loader::autoload - The autoload purpose
    • Yaf_Loader::clearLocalNamespace - The clearLocalNamespace purpose
    • Yaf_Loader::getInstance - The getInstance purpose
    • Yaf_Loader::getLibraryPath - Get the library path
    • Yaf_Loader::getLocalNamespace - The getLocalNamespace purpose
    • Yaf_Loader::import - The import purpose
    • Yaf_Loader::isLocalName - The isLocalName purpose
    • Yaf_Loader::registerLocalNamespace - Register local class prefix
    • Yaf_Loader::setLibraryPath - Change the library path
    • Yaf_Loader::__clone - The __clone purpose
    • Yaf_Loader::__construct - The __construct purpose
    • Yaf_Loader::__sleep - The __sleep purpose
    • Yaf_Loader::__wakeup - The __wakeup purpose
    • Yaf_Plugin_Abstract::dispatchLoopShutdown - The dispatchLoopShutdown purpose
    • Yaf_Plugin_Abstract::dispatchLoopStartup - Hook before dispatch loop
    • Yaf_Plugin_Abstract::postDispatch - The postDispatch purpose
    • Yaf_Plugin_Abstract::preDispatch - The preDispatch purpose
    • Yaf_Plugin_Abstract::preResponse - The preResponse purpose
    • Yaf_Plugin_Abstract::routerShutdown - The routerShutdown purpose
    • Yaf_Plugin_Abstract::routerStartup - RouterStartup hook
    • Yaf_Registry::del - Remove an item from registry
    • Yaf_Registry::get - Retrieve an item from registry
    • Yaf_Registry::has - Check whether an item exists
    • Yaf_Registry::set - Add an item into registry
    • Yaf_Registry::__clone - The __clone purpose
    • Yaf_Registry::__construct - Yaf_Registry implements singleton
    • Yaf_Request_Abstract::getActionName - The getActionName purpose
    • Yaf_Request_Abstract::getBaseUri - The getBaseUri purpose
    • Yaf_Request_Abstract::getControllerName - The getControllerName purpose
    • Yaf_Request_Abstract::getEnv - Retrieve ENV varialbe
    • Yaf_Request_Abstract::getException - The getException purpose
    • Yaf_Request_Abstract::getLanguage - Retrieve client's prefered language
    • Yaf_Request_Abstract::getMethod - Retrieve the request method
    • Yaf_Request_Abstract::getModuleName - The getModuleName purpose
    • Yaf_Request_Abstract::getParam - Retrieve calling parameter
    • Yaf_Request_Abstract::getParams - Retrieve all calling parameters
    • Yaf_Request_Abstract::getRequestUri - The getRequestUri purpose
    • Yaf_Request_Abstract::getServer - Retrieve SERVER variable
    • Yaf_Request_Abstract::isCli - Determine if request is CLI request
    • Yaf_Request_Abstract::isDispatched - Determin if the request is dispatched
    • Yaf_Request_Abstract::isGet - Determine if request is GET request
    • Yaf_Request_Abstract::isHead - Determine if request is HEAD request
    • Yaf_Request_Abstract::isOptions - Determine if request is OPTIONS request
    • Yaf_Request_Abstract::isPost - Determine if request is POST request
    • Yaf_Request_Abstract::isPut - Determine if request is PUT request
    • Yaf_Request_Abstract::isRouted - Determin if request has been routed
    • Yaf_Request_Abstract::isXmlHttpRequest - Determine if request is AJAX request
    • Yaf_Request_Abstract::setActionName - The setActionName purpose
    • Yaf_Request_Abstract::setBaseUri - Set base URI
    • Yaf_Request_Abstract::setControllerName - The setControllerName purpose
    • Yaf_Request_Abstract::setDispatched - The setDispatched purpose
    • Yaf_Request_Abstract::setModuleName - The setModuleName purpose
    • Yaf_Request_Abstract::setParam - Set a calling parameter to a request
    • Yaf_Request_Abstract::setRequestUri - The setRequestUri purpose
    • Yaf_Request_Abstract::setRouted - The setRouted purpose
    • Yaf_Request_Http::get - Retrieve variable from client
    • Yaf_Request_Http::getCookie - Retrieve Cookie variable
    • Yaf_Request_Http::getFiles - The getFiles purpose
    • Yaf_Request_Http::getPost - Retrieve POST variable
    • Yaf_Request_Http::getQuery - Fetch a query parameter
    • Yaf_Request_Http::getRaw - Retrieve Raw request body
    • Yaf_Request_Http::getRequest - The getRequest purpose
    • Yaf_Request_Http::isXmlHttpRequest - Determin if request is Ajax Request
    • Yaf_Request_Http::__clone - Yaf_Request_Http can not be cloned
    • Yaf_Request_Http::__construct - Constructor of Yaf_Request_Http
    • Yaf_Request_Simple::get - The get purpose
    • Yaf_Request_Simple::getCookie - The getCookie purpose
    • Yaf_Request_Simple::getFiles - The getFiles purpose
    • Yaf_Request_Simple::getPost - The getPost purpose
    • Yaf_Request_Simple::getQuery - The getQuery purpose
    • Yaf_Request_Simple::getRequest - The getRequest purpose
    • Yaf_Request_Simple::isXmlHttpRequest - Determin if request is AJAX request
    • Yaf_Request_Simple::__clone - The __clone purpose
    • Yaf_Request_Simple::__construct - Constructor of Yaf_Request_Simple
    • Yaf_Response_Abstract::appendBody - Append to response body
    • Yaf_Response_Abstract::clearBody - Discard all exists response body
    • Yaf_Response_Abstract::clearHeaders - Discard all set headers
    • Yaf_Response_Abstract::getBody - Retrieve a exists content
    • Yaf_Response_Abstract::getHeader - The getHeader purpose
    • Yaf_Response_Abstract::prependBody - The prependBody purpose
    • Yaf_Response_Abstract::response - Send response
    • Yaf_Response_Abstract::setAllHeaders - The setAllHeaders purpose
    • Yaf_Response_Abstract::setBody - Set content to response
    • Yaf_Response_Abstract::setHeader - Set reponse header
    • Yaf_Response_Abstract::setRedirect - The setRedirect purpose
    • Yaf_Response_Abstract::__clone - The __clone purpose
    • Yaf_Response_Abstract::__construct - The __construct purpose
    • Yaf_Response_Abstract::__destruct - The __destruct purpose
    • Yaf_Response_Abstract::__toString - Retrieve all bodys as string
    • Yaf_Router::addConfig - Add config-defined routes into Router
    • Yaf_Router::addRoute - Add new Route into Router
    • Yaf_Router::getCurrentRoute - Get the effective route name
    • Yaf_Router::getRoute - Retrieve a route by name
    • Yaf_Router::getRoutes - Retrieve registered routes
    • Yaf_Router::route - The route purpose
    • Yaf_Router::__construct - Yaf_Router constructor
    • Yaf_Route_Interface::assemble - Assemble a request
    • Yaf_Route_Interface::route - Route a request
    • Yaf_Route_Map::assemble - Assemble a url
    • Yaf_Route_Map::route - The route purpose
    • Yaf_Route_Map::__construct - The __construct purpose
    • Yaf_Route_Regex::assemble - Сформировать URL-адрес
    • Yaf_Route_Regex::route - Цель маршрута
    • Yaf_Route_Regex::__construct - Конструктор класса Yaf_Route_Regex
    • Yaf_Route_Rewrite::assemble - Assemble a url
    • Yaf_Route_Rewrite::route - The route purpose
    • Yaf_Route_Rewrite::__construct - Yaf_Route_Rewrite constructor
    • Yaf_Route_Simple::assemble - Assemble a url
    • Yaf_Route_Simple::route - Route a request
    • Yaf_Route_Simple::__construct - Yaf_Route_Simple constructor
    • Yaf_Route_Static::assemble - Assemble a url
    • Yaf_Route_Static::match - The match purpose
    • Yaf_Route_Static::route - Route a request
    • Yaf_Route_Supervar::assemble - Assemble a url
    • Yaf_Route_Supervar::route - The route purpose
    • Yaf_Route_Supervar::__construct - The __construct purpose
    • Yaf_Session::count - The count purpose
    • Yaf_Session::current - The current purpose
    • Yaf_Session::del - The del purpose
    • Yaf_Session::getInstance - The getInstance purpose
    • Yaf_Session::has - The has purpose
    • Yaf_Session::key - The key purpose
    • Yaf_Session::next - The next purpose
    • Yaf_Session::offsetExists - The offsetExists purpose
    • Yaf_Session::offsetGet - The offsetGet purpose
    • Yaf_Session::offsetSet - The offsetSet purpose
    • Yaf_Session::offsetUnset - The offsetUnset purpose
    • Yaf_Session::rewind - The rewind purpose
    • Yaf_Session::start - The start purpose
    • Yaf_Session::valid - The valid purpose
    • Yaf_Session::__clone - The __clone purpose
    • Yaf_Session::__construct - Constructor of Yaf_Session
    • Yaf_Session::__get - The __get purpose
    • Yaf_Session::__isset - The __isset purpose
    • Yaf_Session::__set - The __set purpose
    • Yaf_Session::__sleep - The __sleep purpose
    • Yaf_Session::__unset - The __unset purpose
    • Yaf_Session::__wakeup - The __wakeup purpose
    • Yaf_View_Interface::assign - Assign value to View engine
    • Yaf_View_Interface::display - Render and output a template
    • Yaf_View_Interface::getScriptPath - The getScriptPath purpose
    • Yaf_View_Interface::render - Render a template
    • Yaf_View_Interface::setScriptPath - The setScriptPath purpose
    • Yaf_View_Simple::assign - Assign values
    • Yaf_View_Simple::assignRef - The assignRef purpose
    • Yaf_View_Simple::clear - Clear Assigned values
    • Yaf_View_Simple::display - Render and display
    • Yaf_View_Simple::eval - Render template
    • Yaf_View_Simple::getScriptPath - Get templates directory
    • Yaf_View_Simple::render - Render template
    • Yaf_View_Simple::setScriptPath - Set tempaltes directory
    • Yaf_View_Simple::__construct - Constructor of Yaf_View_Simple
    • Yaf_View_Simple::__get - Retrieve assigned variable
    • Yaf_View_Simple::__isset - The __isset purpose
    • Yaf_View_Simple::__set - Set value to engine
    • yaml_emit - Возвращает YAML-представление значения
    • yaml_emit_file - Отправляет YAML-представление значения в файл
    • yaml_parse - Разбирает поток YAML
    • yaml_parse_file - Разбирает YAML-поток из файла
    • yaml_parse_url - Разбирает YAML-поток из URL
    • Yar_Client::setOpt - Задать контекст вызова
    • Yar_Client::__call - Вызов сервиса
    • Yar_Client::__construct - Конструктор Yar_Client
    • Yar_Client_Exception::getType - Получить тип исключения
    • Yar_Concurrent_Client::call - Зарегистрировать конкурентный вызов
    • Yar_Concurrent_Client::loop - Запуск всех харегистрированный вызовов
    • Yar_Concurrent_Client::reset - Очистить все зарегистрированные вызовы
    • Yar_Server::handle - Запустить сервер RPC
    • Yar_Server::__construct - Конструктор Yar_Server
    • Yar_Server_Exception::getType - Получить тип исключения
    • yaz_addinfo - Возвращает дополнительную информацию в случае ошибки
    • yaz_ccl_conf - Конфигурирует CCL-парсер
    • yaz_ccl_parse - Invoke CCL Parser
    • yaz_close - Закрывает соединение YAZ
    • yaz_connect - Подготавливает соединение с сервером Z39.50
    • 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 - Prepares for an Extended Service Request
    • 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 - Возвращает запись
    • yaz_scan - Подготовка сканирования
    • yaz_scan_result - Возвращает результат запроса сканирования
    • yaz_schema - Устанавливает схему для возвращаемых значений
    • yaz_search - Подготовка поиска
    • yaz_set_option - Устанавливает параметры для соединения
    • yaz_sort - Задает критерий сортировки
    • yaz_syntax - Задает предпочитаемый синтаксис для извлекаемой записи
    • yaz_wait - Ожидает выполнения запросов Z39.50 серверами
    • yp_all - Traverse the map and call a function on each entry
    • yp_cat - Return an array containing the entire map
    • yp_errno - Returns the error code of the previous operation
    • yp_err_string - Returns the error string associated with the given error code
    • 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
  • z
    • zend_logo_guid - Получает Zend guid
    • zend_thread_id - Возвращает уникальный идентификатор текущего потока выполнения
    • zend_version - Получает версию движка Zend
    • ZipArchive::addEmptyDir - Добавляет новую директорию
    • ZipArchive::addFile - Добавляет в ZIP-архив файл по указанному пути
    • ZipArchive::addFromString - Добавляет файл в ZIP-архив, используя его содержимое
    • ZipArchive::addGlob - Добавить файлы из директории в соответствии с шаблоном
    • ZipArchive::addPattern - Добавить файлы из директории в соответствии с шаблоном регулярного выражения PCRE
    • ZipArchive::close - Закрывает активный архив (открытый или вновь созданный)
    • ZipArchive::count - Подсчитывает количество файлов в архиве
    • ZipArchive::deleteIndex - Удаляет элемент в архиве, используя его индекс
    • ZipArchive::deleteName - Удаляет элемент в архиве, используя его имя
    • ZipArchive::extractTo - Извлекает содержимое архива
    • ZipArchive::getArchiveComment - Возвращает комментарий ZIP-архива
    • ZipArchive::getCommentIndex - Возвращает комментарий элемента, используя его индекс
    • ZipArchive::getCommentName - Возвращает комментарий элемента, используя его имя
    • ZipArchive::getExternalAttributesIndex - Извлечь внешние атрибуты записи по ее индексу
    • ZipArchive::getExternalAttributesName - Извлечь внешние атрибуты записи по ее имени
    • ZipArchive::getFromIndex - Возвращает содержимое элемента по его индексу
    • ZipArchive::getFromName - Возвращает содержимое элемента по его имени
    • ZipArchive::getNameIndex - Возвращает имя элемента по его индексу
    • ZipArchive::getStatusString - Возвращают статус сообщения об ошибке, системный и/или zip-статус
    • ZipArchive::getStream - Получить дескриптор файла элемента, определенный по имени элемента (только для чтения)
    • ZipArchive::locateName - Возвращает индекс элемента в архиве
    • ZipArchive::open - Открывает ZIP-архив
    • ZipArchive::registerCancelCallback - Register a callback to allow cancellation during archive close.
    • ZipArchive::registerProgressCallback - Register a callback to provide updates during archive close.
    • ZipArchive::renameIndex - Переименовывает элемент по его индексу
    • ZipArchive::renameName - Переименовывает элемент по его имени
    • ZipArchive::setArchiveComment - Устанавливает комментарий к ZIP-архиву
    • ZipArchive::setCommentIndex - Устанавливает комментарий к элементу по его индексу
    • ZipArchive::setCommentName - Устанавливает комментарий к элементу, заданному по имени
    • ZipArchive::setCompressionIndex - Установить метод сжатия записи, заданной ее индексом
    • ZipArchive::setCompressionName - Установить метод сжатия записи, заданной по имени
    • ZipArchive::setEncryptionIndex - Установить метод шифрования записи по ее индексу
    • ZipArchive::setEncryptionName - Установить метод шифрования записи по ее имени
    • ZipArchive::setExternalAttributesIndex - Установить внешние атрибуты записи по ее индексу
    • ZipArchive::setExternalAttributesName - Установка внешних атрибутов записи, заданной по имени
    • ZipArchive::setMtimeIndex - Установить время модификации файла по его индексу
    • ZipArchive::setMtimeName - Установить время модификации файла по его имени
    • ZipArchive::setPassword - Установка пароля для активного архива
    • ZipArchive::statIndex - Получение детальной информации о элементе по его индексу
    • ZipArchive::statName - Получение детальной информации о элементе по его имени
    • ZipArchive::unchangeAll - Отменяет все изменения, сделанные в архиве
    • ZipArchive::unchangeArchive - Возвращает все глобальные изменения, сделанные в архиве
    • ZipArchive::unchangeIndex - Отменяет все изменения у позиции с заданным индексом
    • ZipArchive::unchangeName - Отменяет все измения у позиции с заданным именем
    • zip_close - Закрывает дескриптор ZIP-архива
    • zip_entry_close - Закрывает дескриптор директории
    • zip_entry_compressedsize - Возвращает сжатый размер файла для дескриптора директории
    • zip_entry_compressionmethod - Возвращает метод сжатия дескриптора директории
    • zip_entry_filesize - Возвращает реальный размер файла для дескриптора директории
    • zip_entry_name - Получает имя дескриптора директории
    • zip_entry_open - Открывает директорию для чтения
    • zip_entry_read - Читает данные из открытого ранее дескриптора директории
    • zip_open - Открывает ZIP-архив
    • zip_read - Считывает следующую запись в ZIP-архиве
    • zlib:// - Сжатые потоки
    • zlib_decode - Распаковывает любые закодированные данные raw/gzip/zlib
    • zlib_encode - Сжатие данных с указанной кодировкой
    • zlib_get_coding_type - Возвращает способ кодирования, используемый для сжатия вывода
    • ZMQ::__construct - Конструктор ZMQ
    • ZMQContext::getOpt - Получить опцию контекста
    • ZMQContext::getSocket - Создает новый сокет
    • ZMQContext::isPersistent - Является ли контекст постоянным
    • ZMQContext::setOpt - Установить опцию сокета
    • ZMQContext::__construct - Конструктор ZMQContext
    • ZMQDevice::getIdleTimeout - Получить таймаут бездействия
    • ZMQDevice::getTimerTimeout - Получить таймаут таймера
    • ZMQDevice::run - Запуск нового устройства
    • ZMQDevice::setIdleCallback - Установить callback-функцию бездействия
    • ZMQDevice::setIdleTimeout - Установить таймаут простоя
    • ZMQDevice::setTimerCallback - Установить callback-функцию по таймеру
    • ZMQDevice::setTimerTimeout - Установить таймаут таймера
    • ZMQDevice::__construct - Создает новое устройство
    • ZMQPoll::add - Добавить элемент в пул опроса
    • ZMQPoll::clear - Очистить пул опроса
    • ZMQPoll::count - Количество элементов в пуле опроса
    • ZMQPoll::getLastErrors - Возвращает ошибки последнего опроса
    • ZMQPoll::poll - Опросить все элементы пула
    • ZMQPoll::remove - Удалить элемент из пула опроса
    • ZMQSocket::bind - Привязка сокета
    • ZMQSocket::connect - Подключение к сокету
    • ZMQSocket::disconnect - Отключить сокет
    • ZMQSocket::getEndpoints - Получить список конечных точек
    • ZMQSocket::getPersistentId - Получить идентификатор постоянного сокета
    • ZMQSocket::getSocketType - Получить тип сокета
    • ZMQSocket::getSockOpt - Получить опцию сокета
    • ZMQSocket::isPersistent - Определить, является ли сокет постоянным
    • ZMQSocket::recv - Получить сообщение
    • ZMQSocket::recvMulti - Получить сообщение, состоящее из нескольких частей
    • ZMQSocket::send - Послать сообщение
    • ZMQSocket::sendmulti - Послать сообщение, состоящее из нескольких частей
    • ZMQSocket::setSockOpt - Установить опцию сокета
    • ZMQSocket::unbind - Отвязать сокет
    • ZMQSocket::__construct - Конструктор класса ZMQSocket
    • Zookeeper::addAuth - Specify application credentials
    • Zookeeper::close - Close the zookeeper handle and free up any resources
    • Zookeeper::connect - Create a handle to used communicate with zookeeper
    • Zookeeper::create - Create a node synchronously
    • Zookeeper::delete - Delete a node in zookeeper synchronously
    • Zookeeper::exists - Checks the existence of a node in zookeeper synchronously
    • Zookeeper::get - Gets the data associated with a node synchronously
    • Zookeeper::getAcl - Gets the acl associated with a node synchronously
    • Zookeeper::getChildren - Lists the children of a node synchronously
    • Zookeeper::getClientId - Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
    • Zookeeper::getConfig - Get instance of ZookeeperConfig
    • Zookeeper::getRecvTimeout - Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect
    • Zookeeper::getState - Get the state of the zookeeper connection
    • Zookeeper::isRecoverable - Checks if the current zookeeper connection state can be recovered
    • Zookeeper::set - Sets the data associated with a node
    • Zookeeper::setAcl - Sets the acl associated with a node synchronously
    • Zookeeper::setDebugLevel - Sets the debugging level for the library
    • Zookeeper::setDeterministicConnOrder - Enable/disable quorum endpoint order randomization
    • Zookeeper::setLogStream - Sets the stream to be used by the library for logging
    • Zookeeper::setWatcher - Set a watcher function
    • Zookeeper::__construct - Create a handle to used communicate with zookeeper
    • ZookeeperConfig::add - Add servers to the ensemble
    • ZookeeperConfig::get - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
    • ZookeeperConfig::remove - Remove servers from the ensemble
    • ZookeeperConfig::set - Change ZK cluster ensemble membership and roles of ensemble peers
    • zookeeper_dispatch - Вызвать callback-функции для ожидающих операций
  • _
    • __autoload - Попытка загрузить неопределенный класс
    • __halt_compiler - Останавливает работу компилятора
  • ?
    • Константы PDO_4D - Константы PDO_4D
    • Контекстные опции MongoDB - Список контекстных опций MongoDB
    • Контекстные опции Phar - Список контекстных опций Phar
    • Контекстные опции сокета - Список контекстных опций сокета
    • Опции контекста CURL - Список опций контекста CURL
    • Опции контекста HTTP - Список опций контекста HTTP
    • Опции контекста SSL - Список опций контекста SSL
    • Опции контекста Zip - Список опций контекста Zip
    • Параметры контекста - Список параметров контекста
    • Параметры контекста FTP - Список параметров контекста FTP
    • Примеры использования PDO_4D - Примеры использования PDO_4D
    • Типы SQL с PDO_4D и PHP - SQL-типы с PDO_4D и PHP


Список примеров

Список всех примеров в руководстве

  • Example#0 - Пример программирования на PHP
  • Example#1 - Первый скрипт на PHP: hello.php
  • Example#2 - Получение информации о системе из PHP
  • Example#3 - Вывод значения переменной (элемента массива)
  • Example#4 - Пример использования управляющих структур и функций
  • Example#5 - Смешение режимов HTML и PHP
  • Example#6 - Простейшая форма HTML
  • Example#7 - Выводим данные формы
  • Example#8 - Инструкция по установке PHP, как подгружаемого модуля Apache
  • Example#9 - Инструкция по статической сборке PHP и Apache
  • Example#10 - Примеры команд перезапуска Apache
  • Example#11 -
  • Example#12 -
  • Example#13 -
  • Example#14 -
  • Example#15 -
  • Example#16 -
  • Example#17 -
  • Example#18 -
  • Example#19 -
  • Example#20 -
  • Example#21 -
  • Example#22 -
  • Example#23 -
  • Example#24 - Пример части файла lighttpd.conf
  • Example#25 - Создание FastCGI-обработчиков
  • Example#26 - Подключение к удаленным процессам fastcgi
  • Example#27 -
  • Example#28 -
  • Example#29 - Пример установки пакетов в OpenBSD
  • Example#30 - Пример установки Apache 2 на Debian
  • Example#31 - Остановка и запуск Apache после установки PHP
  • Example#32 - Способы получить список дополнительных пакетов PHP 5
  • Example#33 - Установка PHP с MySQL и cURL
  • Example#34 - Рекомендованая конфигурация WinCache
  • Example#35 - Рекомендованая конфигурация WinCache
  • Example#36 - Командная строка для настройки IIS и PHP
  • Example#37 - Структура пакета PHP 5
  • Example#38 - CGI and FastCGI settings in php.ini
  • Example#39 - Configuring FastCGI extension to handle PHP requests
  • Example#40 - Configuring file access permissions
  • Example#41 - Configuring FastCGI and PHP recycling
  • Example#42 - Configuring FastCGI timeout settings
  • Example#43 - Changing the location of php.ini file
  • Example#44 - CGI и FastCGI настройки в php.ini
  • Example#45 - Создание IIS FastCGI пула процессов
  • Example#46 - Создание сопоставления обработчика запросов PHP
  • Example#47 - Определение аккаунта, используемого IIS при анонимной идентификации
  • Example#48 - Настройка разрешения доступа к файлам
  • Example#49 - Установка index.php как документ по умолчанию в IIS
  • Example#50 - Настройка FastCGI и PHP пересоздаине
  • Example#51 - Конфигурация установок таймаута FastCGI
  • Example#52 - Изменение положения файла php.ini
  • Example#53 - PHP как модуль Apache 1.3.x
  • Example#54 - PHP и Apache 1.3.x как CGI
  • Example#55 - PHP как обработчик Apache 2.x
  • Example#56 -
  • Example#57 - PHP как CGI под Apache 2.x
  • Example#58 - Конфигурация Apache для запуска PHP как FastCGI
  • Example#59 - Конфигурация ISAPI для Sambar
  • Example#60 - Включение модуля Bzip2 в PHP-Windows
  • Example#61 - Изменения реестра
  • Example#62 - Передача переменных окружения и настроек PHP пулу
  • Example#63 - Установка настроек PHP в nginx.conf
  • Example#64 - Вызов phpinfo
  • Example#65 - Переменные окружения php.ini
  • Example#66 - Пример php.ini
  • Example#67 - Пример конфигурации Apache
  • Example#68 - Продвинутое изолирование с использованием условий
  • Example#69 - Открывающие и закрывающие теги PHP
  • Example#70 - Целые числа
  • Example#71 - Переполнение целых на 32-битных системах
  • Example#72 - Переполнение целых на 64-битных системах
  • Example#73 - Пример неправильного синтаксиса
  • Example#74 - Пример правильного синтаксиса
  • Example#75 - Пример определения heredoc-строки
  • Example#76 - Пример применения heredoc в аргументах
  • Example#77 - Использование heredoc для инциализации статических переменных
  • Example#78 - Использование двойных кавычек в heredoc
  • Example#79 - Пример использования nowdoc
  • Example#80 - Nowdoc string quoting example with variables
  • Example#81 - Пример использования статичных данных
  • Example#82 - Пример простого синтаксиса
  • Example#83 - Отрицательные числовые индексы
  • Example#84 - Несколько примеров строк
  • Example#85 - Различия между PHP 5.3 и PHP 5.4
  • Example#86 - Простой массив
  • Example#87 - Пример преобразования типов и перезаписи элементов
  • Example#88 - Смешанные ключи типов integer и string
  • Example#89 - Индексированные массивы без ключа
  • Example#90 - Ключи для некоторых элементов
  • Example#91 - Доступ к элементам массива
  • Example#92 - Разыменование массива
  • Example#93 - Использование array()
  • Example#94 - Коллекция
  • Example#95 - Изменение элемента в цикле
  • Example#96 - Индекс, начинающийся с единицы
  • Example#97 - Заполнение массива
  • Example#98 - Сортировка массива
  • Example#99 - Рекурсивные и многомерные массивы
  • Example#100 - Пример использования iterable в качестве параметра
  • Example#101 - Пример установки значения по умолчанию для iterable
  • Example#102 - Пример использования iterable в качестве возвращаемого типа
  • Example#103 - Пример использования iterable в качестве возвращаемого значения генератора
  • Example#104 - Пример приведения типа iterable
  • Example#105 - Пример callback-функции
  • Example#106 - Пример callback-функции с использованием замыкания
  • Example#107 - Значения по умолчанию в неинициализированных переменных
  • Example#108 - Использование global
  • Example#109 - Использование $GLOBALS вместо global
  • Example#110 - Суперглобальные переменные и область видимости
  • Example#111 - Демонстрация необходимости статических переменных
  • Example#112 - Пример использования статических переменных
  • Example#113 - Статические переменные и рекурсивные функции
  • Example#114 - Объявление статических переменных
  • Example#115 - Пример переменного имени свойства
  • Example#116 - Простая HTML-форма
  • Example#117 - Доступ к данным из простой HTML-формы, отправленной через POST
  • Example#118 - Старые способы получения пользовательских данных
  • Example#119 - Более сложные переменные формы
  • Example#120 - Пример использования setcookie
  • Example#121 - Правильные и неправильные имена констант
  • Example#122 - Определение констант
  • Example#123 - Определение констант с помощью ключевого слова const
  • Example#124 - Ассоциативность
  • Example#125 - Неопределенный порядок вычисления
  • Example#126 - +, - и . имеют одинаковый приоритет
  • Example#127 - Присваивание по ссылке
  • Example#128 - Побитовыми операции И, ИЛИ и ИСКЛЮЧАЮЩЕЕ ИЛИ (AND, OR и XOR) над целыми числами
  • Example#129 - Побитовая операция ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR) над строками
  • Example#130 - Побитовый сдвиг над целыми числами
  • Example#131 - Сравнение boolean/null
  • Example#132 - Алгоритм сравнения обычных массивов
  • Example#133 - Присваивание значения по умолчанию
  • Example#134 - Неочевидное поведение тернарного оператора
  • Example#135 - Присваивание значения по умолчанию
  • Example#136 - Вложенный оператор null coalescing
  • Example#137 - Арифметические операции с символьными переменными
  • Example#138 - Объяснение логических операторов
  • Example#139 - Сравнение массивов
  • Example#140 - Использование instanceof с классами
  • Example#141 - Использование instanceof с наследуемыми классами
  • Example#142 - Использование instanceof для проверки того, что объект не является экземпляром класса
  • Example#143 - Использование instanceof с интерфейсами
  • Example#144 - Использование instanceof с другими переменными
  • Example#145 - Пример использования оператора instanceof для проверки других переменных
  • Example#146 - Избежание поиска класса и фатальных ошибок с instanceof в PHP 5.0
  • Example#147 - Оператор switch
  • Example#148 - Оператор switch допускает сравнение с типом string
  • Example#149 - Пример использования тика
  • Example#150 - Пример использования тиков
  • Example#151 - Определение кодировки для скрипта.
  • Example#152 - Простой пример include
  • Example#153 - Включение внутри функции
  • Example#154 - Пример include через HTTP
  • Example#155 - Сравнение возвращаемого значения при include
  • Example#156 - Выражения include и return
  • Example#157 - Использование буферизации вывода для включения файла PHP в строку
  • Example#158 - Пример использования goto
  • Example#159 - Пример использования goto в цикле
  • Example#160 - Это не сработает
  • Example#161 - Псевдокод для демонстрации использования функций
  • Example#162 - Функции, зависящие от условий
  • Example#163 - Вложенные функции
  • Example#164 - Рекурсивные функции
  • Example#165 - Передача массива в функцию
  • Example#166 - Передача аргументов по ссылке
  • Example#167 - Использование значений по умолчанию в определении функции
  • Example#168 - Использование нескалярных типов в качестве значений по умолчанию
  • Example#169 - Некорректное использование значений по умолчанию
  • Example#170 - Корректное использование значений по умолчанию
  • Example#171 -
  • Example#172 - Объявление типа базового класса
  • Example#173 - Объявление типа базового интерфейса
  • Example#174 - Типизированные параметры, передаваемые по ссылке
  • Example#175 - Обнуляемое объявление типа
  • Example#176 - Строгая типизация
  • Example#177 - Слабая типизация
  • Example#178 - Обработка исключения TypeError
  • Example#179 - Использование ... для доступа к аргументам
  • Example#180 - Использование ... для передачи аргументов
  • Example#181 - Аргументы с подсказкой типов
  • Example#182 - Доступ к аргументам в PHP 5.5 и ранних версий
  • Example#183 - Использование конструкции return
  • Example#184 - Возврат нескольких значений в виде массива
  • Example#185 - Возврат результата по ссылке
  • Example#186 - Обычное объявление типа возвращаемого значения
  • Example#187 - То же в режиме строгой типизации
  • Example#188 - Возврат объектов
  • Example#189 - Объявление обнуляемого типа (начиная с PHP 7.1.0)
  • Example#190 - Работа с функциями посредством переменных
  • Example#191 - Обращение к методам класса посредством переменных
  • Example#192 - Пример вызова переменного метода со статическим свойством
  • Example#193 - Сallable-фукнции
  • Example#194 - Пример анонимной функции
  • Example#195 - Пример присвоения анонимной функции переменной
  • Example#196 - Наследование переменных из родительской области видимости
  • Example#197 - Замыкания и область видимости
  • Example#198 - Автоматическое связывание $this
  • Example#199 - Попытка использовать $this в статической анонимной функции
  • Example#200 - Попытка связать объект со статической анонимной функцией
  • Example#201 - Простое определение класса
  • Example#202 - Несколько примеров с псевдопеременной $this
  • Example#203 - Создание экземпляра класса
  • Example#204 - Присваивание объекта
  • Example#205 - Создание новых объектов
  • Example#206 - Доступ к свойствам/методам только что созданного объекта
  • Example#207 - Доступ к свойству vs. вызов метода
  • Example#208 - Вызов анонимной функции, содержащейся в свойстве
  • Example#209 - Простое наследование классов
  • Example#210 - Разрешение имени класса
  • Example#211 - Определение свойств
  • Example#212 - Пример использования nowdoc для инициализации свойств
  • Example#213 - Пример использования типизированных свойств
  • Example#214 - Объявление и использование константы
  • Example#215 - Пример со статичными данными
  • Example#216 - Пример использования ::class с пространством имен
  • Example#217 - Пример констант, заданных выражением
  • Example#218 - Модификаторы видимости констант класса
  • Example#219 - Пример автоматической загрузки
  • Example#220 - Еще один пример автоматической загрузки
  • Example#221 - Автоматическая загрузка с перехватом исключения с версии 5.3.0+
  • Example#222 - Автоматическая загрузка с перехватом исключения в версиях 5.3.0+ - Класс пользовательского исключения отсутствует
  • Example#223 - Использование унифицированных конструкторов
  • Example#224 - Конструкторы в классах, находящихся в пространстве имен
  • Example#225 - Пример использования деструктора
  • Example#226 - Объявление свойства класса
  • Example#227 - Объявление метода
  • Example#228 - Объявление констант, начиная с PHP 7.1.0
  • Example#229 - Доступ к элементам с модификатором private из объектов одного типа
  • Example#230 - Пример наследования
  • Example#231 - Использование :: вне объявления класса
  • Example#232 - Использование :: внутри объявления класса
  • Example#233 - Обращение к методу в родительском классе
  • Example#234 - Пример статического метода
  • Example#235 - Пример статического свойства
  • Example#236 - Пример абстрактного класса
  • Example#237 - Пример абстрактного класса
  • Example#238 - Пример интерфейса
  • Example#239 - Наследование интерфейсов
  • Example#240 - Множественное наследование интерфейсов
  • Example#241 - Интерфейсы с константами
  • Example#242 - Пример использования трейта
  • Example#243 - Пример приоритета старшинства
  • Example#244 - Пример альтернативного порядка приоритета
  • Example#245 - Пример использования нескольких трейтов
  • Example#246 - Пример разрешения конфликтов
  • Example#247 - Пример изменения видимости метода
  • Example#248 - Пример трейтов, составленных из трейтов
  • Example#249 - Требования трейта при помощи абстрактных методов
  • Example#250 - Статические переменные
  • Example#251 - Статические методы
  • Example#252 - Определение свойств
  • Example#253 - Разрешение конфликтов
  • Example#254 - Перегрузка свойств с помощью методов __get(), __set(), __isset() и __unset()
  • Example#255 - Перегрузка методов с помощью методов __call() и __callStatic()
  • Example#256 - Итерация простого объекта
  • Example#257 - Итерация объекта, реализующего интерфейс Iterator
  • Example#258 - Итерация объекта, реализующего интерфейс IteratorAggregate
  • Example#259 - Сериализация и десериализация
  • Example#260 - Простой пример
  • Example#261 - Использование __invoke()
  • Example#262 - Использование __set_state() (начиная с PHP 5.1.0)
  • Example#263 - Использование __debugInfo()
  • Example#264 - Пример окончательных (final) методов
  • Example#265 - Пример окончательного (final) класса
  • Example#266 - Клонирование объекта
  • Example#267 - Доступ к только что склонированному объекту
  • Example#268 - Пример сравнения объектов в PHP 5
  • Example#269 - Использование self::
  • Example#270 - Простое использование static::
  • Example#271 - Использование static:: в нестатическом контексте
  • Example#272 - Перенаправленные и неперенаправленные вызовы
  • Example#273 - Ссылки и объекты
  • Example#274 - Пример синтаксиса, использующего пространство имен
  • Example#275 - Объявление единого пространства имен
  • Example#276 - Объявление простого пространства имен
  • Example#277 - Определение пространства имен с иерархией
  • Example#278 - Описание нескольких пространств имен, простой синтаксис
  • Example#279 - Описание нескольких пространств имен, синтаксис со скобками
  • Example#280 - Описание глобального и обычного пространства имен в одном файле
  • Example#281 - Описание глобального и обычного пространства имен в одном файле
  • Example#282 - Доступ к глобальным классам, функциям и константам из пространства имен
  • Example#283 - Динамически доступные элементы
  • Example#284 - Динамически доступные элементы пространства имен
  • Example#285 - Пример использование константы __NAMESPACE__ в коде с пространством имен
  • Example#286 - Пример использование константы __NAMESPACE__ в глобальном пространстве
  • Example#287 - использование константы __NAMESPACE__ для динамического конструирования имени
  • Example#288 - Оператор namespace, внутри пространства имен
  • Example#289 - Оператор namespace в глобальном коде
  • Example#290 - импорт/создание псевдонима имени с помощью оператора use
  • Example#291 - импорт/создание псевдонима имени с помощью оператора use, комбинирование нескольких операторов use
  • Example#292 - Импорт и динамические имена
  • Example#293 - Импортирование и абсолютные имена
  • Example#294 - Недопустимое правило импорта
  • Example#295 - Использованиие глобального пространства и его задание
  • Example#296 - Доступ к глобальным классам внутри пространства имен
  • Example#297 - Необходимость прибегнуть к глобальным функциям/константам внутри пространства имен
  • Example#298 - Примеры разрешения имен
  • Example#299 - Доступ к глобальным классам вне пространства имен
  • Example#300 - Доступ к глобальным классам вне пространства имен
  • Example#301 - Доступ ко внутренним классам в пространствах имен
  • Example#302 - Доступ ко внутренним классам, функциям или константам в пространствах имен
  • Example#303 - Абсолютные имена
  • Example#304 - Полные имена
  • Example#305 - Неполные имена классов
  • Example#306 - Неполные имена функций или констант
  • Example#307 - Подводные камни при использовании имени пространства имен внутри строки с двойными кавычками
  • Example#308 - Неопределенные константы
  • Example#309 - Неопределенные константы
  • Example#310 - Встроеный класс Exception
  • Example#311 - Наследование класса Exception (PHP 5.3.0+)
  • Example#312 - Выбрасывание исключений
  • Example#313 - Обработка исключений с помощью блока finally
  • Example#314 - Взаимодействие между блоками finally и return
  • Example#315 - Вложенные исключения
  • Example#316 - Обработка нескольких исключений в одном блоке catch
  • Example#317 - Реализация range как генератора
  • Example#318 - Простой пример выдачи значений
  • Example#319 - Получение пар ключ/значение
  • Example#320 - Получение NULL
  • Example#321 - Получение значений по ссылке
  • Example#322 - yield from с iterator_to_array
  • Example#323 - Основы использования yield from
  • Example#324 - yield from и возвращаемые значения
  • Example#325 - Использование ссылок с неинициализированными переменными
  • Example#326 - Присвоение ссылок глобальным переменным внутри функции
  • Example#327 - Ссылки и foreach
  • Example#328 - Пример использования $GLOBALS
  • Example#329 - Пример использования $_SERVER
  • Example#330 - Пример использования $_GET
  • Example#331 - Пример использования $_POST
  • Example#332 - Пример использования $_ENV
  • Example#333 - Пример использования $_COOKIE
  • Example#334 - Пример использования $php_errormsg
  • Example#335 - Пример $http_response_header
  • Example#336 - Пример использования $argc
  • Example#337 - Пример использования$argv
  • Example#338 - Пример использования Exception::getMessage
  • Example#339 - Пример использования Exception::getPrevious
  • Example#340 - Пример использования Exception::getCode
  • Example#341 - Пример использования Exception::getFile
  • Example#342 - Пример использования Exception::getLine
  • Example#343 - Пример использования Exception::getTrace
  • Example#344 - Пример использования Exception::getTraceAsString
  • Example#345 - Пример использования Exception::__toString
  • Example#346 - Использование set_error_handler для изменения сообщений об ошибках в ErrorException.
  • Example#347 - Пример использования ErrorException::getSeverity
  • Example#348 - Пример использования Error::getMessage
  • Example#349 - Пример использования Error::getPrevious
  • Example#350 - Пример использованияError::getCode
  • Example#351 - Пример использования Error::getFile
  • Example#352 - Пример использованияError::getLine
  • Example#353 - Пример использования Error::getTrace
  • Example#354 - Пример использования Error::getTraceAsString
  • Example#355 - Пример использования Error::__toString
  • Example#356 - Основы использования
  • Example#357 - Основы использования
  • Example#358 - Основы использования
  • Example#359 - Пример использования ArrayAccess::offsetExists
  • Example#360 - Основы использования
  • Example#361 - Пример Closure::bind
  • Example#362 - Пример Closure::bindTo
  • Example#363 - Пример Closure::call
  • Example#364 - Пример использования Generator::getReturn
  • Example#365 - Пример использования Generator::key
  • Example#366 - Использование Generator::send для внедрения значений
  • Example#367 - Выбрасывание исключения в итератор
  • Example#368 - Пример #1. Простое использование WeakReference
  • Example#369 - Пример использования bindto
  • Example#370 - Извлечь страницу и отправить данные методом POST
  • Example#371 - Игнорировать переадресации, но извлечь заголовки и содержимое
  • Example#372 - Получает страницу и посылает POST-запрос
  • Example#373 - Простой пример использования password
  • Example#374 - Определение URL, с которого был забран документ после переадресаций
  • Example#375 - php://temp/maxmemory
  • Example#376 - php://filter/resource=<поток для фильтрации>
  • Example#377 - php://filter/read=<список фильтров для применения к цепочке чтения>
  • Example#378 - php://filter/write=<список фильтров для применения к цепочке записи>
  • Example#379 - php://memory и php://temp нельзя переиспользовать
  • Example#380 - Вывод содержимого data://
  • Example#381 - Получение типа потока
  • Example#382 - Основы использования
  • Example#383 - Открытие потока из активного соединения
  • Example#384 - Переменная $session должна быть доступна!
  • Example#385 - Обход RAR-архива
  • Example#386 - Открытие зашифрованного файла (шифрование заголовка)
  • Example#387 - Недостаточная проверка внешних данных ведет к...
  • Example#388 - ... атаке на файловую систему
  • Example#389 - Более безопасная проверка имени файла
  • Example#390 - Более строгая проверка имени файла
  • Example#391 - Скрипт, уязвимый к нулевому байту
  • Example#392 - Корректная проверка входных данных
  • Example#393 - Хеширование полей с паролями
  • Example#394 - Хеширование паролей используя crypt
  • Example#395 - Постраничный вывод результата... и создание суперпользователя в PostgreSQL
  • Example#396 - Листинг статей... и некоторых паролей (для любой базы данных)
  • Example#397 - От восстановления пароля... до получения дополнительных привилегий (для любой базы данных)
  • Example#398 - Выполнение команд операционной системы на сервере (для базы MSSQL)
  • Example#399 - Более безопасная реализация постраничной навигации
  • Example#400 - Атака на переменные в HTML-странице
  • Example#401 - Использование стандартных отладочных переменных
  • Example#402 - Поиск потенциально опасных переменных при помощи E_ALL
  • Example#403 - Пример опасного кода с register_globals = on
  • Example#404 - Пример использования сессий со значением register_globals on или off
  • Example#405 - Обнаружение попытки подмены переменных
  • Example#406 - Потенциально опасное использование переменных
  • Example#407 - Отключение волшебных кавычек на сервере
  • Example#408 - Отключение волшебных кавычек во время выполнения скрипта
  • Example#409 - Маскировка PHP под другие языки программирования
  • Example#410 - Использование неизвестных расширений для PHP-скриптов
  • Example#411 - Маскировка PHP-файлов под HTML
  • Example#412 - Пример Basic HTTP-аутентификации
  • Example#413 - Пример Digest HTTP-аутентификации
  • Example#414 - Пример HTTP-аутентификации с принудительным вводом новой пары логин/пароль
  • Example#415 - Простая поисковая форма XForms
  • Example#416 - Использование XForm совместно с массивом $_POST
  • Example#417 - Форма для загрузки файлов
  • Example#418 - Проверка загружаемых на сервер файлов
  • Example#419 - Загрузка массива файлов
  • Example#420 - Загрузка нескольких файлов
  • Example#421 - Сохранение файлов, отправленных через HTTP PUT
  • Example#422 - Получение заголовка удаленной страницы
  • Example#423 - Сохранение данных на удаленном сервере
  • Example#424 - Пример, демонстрирующий разницу с CGI SAPI:
  • Example#425 -
  • Example#426 - Вывод встроенных (и загруженных) модулей PHP и Zend
  • Example#427 - Ошибка синтаксиса при использовании двойных кавычек
  • Example#428 - Использование одинарных кавычек для предотвращения подстановки переменных в консоли
  • Example#429 - Использование опций -B, -R и -E для подсчета количества строк в проекте.
  • Example#430 - Использование -v для получения типа SAPI и версии PHP и Zend
  • Example#431 - Пример --ini
  • Example#432 - Базовое использование --rf
  • Example#433 - Пример --rc
  • Example#434 - Пример --re
  • Example#435 - Пример --ri
  • Example#436 - Запуск PHP-скрипта как консольного
  • Example#437 - Скрипт, предназначенный для запуска из командной строки (script.php)
  • Example#438 - Пакетный файл для запуска PHP-скрипта из командной строки (script.bat)
  • Example#439 - Запуск кода в интерактивной консоли
  • Example#440 - Автодополнение по Tab
  • Example#441 - Установка настройки php.ini в интерактивной консоли
  • Example#442 - Запуск веб-сервера
  • Example#443 - Запуск с указанием корневой директории
  • Example#444 - Использование скрипта маршрутизации
  • Example#445 - Проверка использования веб-сервера CLI
  • Example#446 - Поддержка неподдерживаемых типов файлов
  • Example#447 - Доступ к веб-серверу CLI с удаленных машин
  • Example#448 - Создание нового контейнера zval
  • Example#449 - Вывод информации о zval
  • Example#450 - Увеличение счетчика ссылок zval
  • Example#451 - Уменьшение счетчика ссылок zval
  • Example#452 - Создание array zval
  • Example#453 - Добавление уже существующего элемента в массив
  • Example#454 - Удаление элемента из массива
  • Example#455 - Добавление массива новым элементом в самого себя
  • Example#456 - Удаление $a
  • Example#457 - Пример использования памяти
  • Example#458 - Влияние на производительность
  • Example#459 - Запуск скрипта
  • Example#460 - Сборка PHP для включения теста производительности GC
  • Example#461 - Статистика GC
  • Example#462 - all_probes.d - трассировка всех статических зондов PHP с помощью DTrace
  • Example#463 - all_probes.stp - трассировка всех статических зондов PHP
  • Example#464 - Пример использования apc.rfc1867
  • Example#465 - Пример использования apc_add
  • Example#466 - Пример использования apc_bin_load
  • Example#467 - Пример использования apc_cache_info
  • Example#468 - Пример использования apc_cas
  • Example#469 - Пример использования apc_dec
  • Example#470 - Пример использования apc_define_constants
  • Example#471 - Пример использования apc_delete_file
  • Example#472 - Пример использования apc_delete
  • Example#473 - Пример использования apc_exists
  • Example#474 - Пример использования apc_fetch
  • Example#475 - Пример использования apc_inc
  • Example#476 - Пример использования apc_load_constants
  • Example#477 - Пример использования apc_sma_info
  • Example#478 - Пример использования apc_store
  • Example#479 - Пример использования APCIterator::__construct
  • Example#480 - Пример использования apcu_add
  • Example#481 - Пример использования apcu_cache_info
  • Example#482 - Пример использования apcu_cas
  • Example#483 - Пример использования apcu_dec
  • Example#484 - Пример использования apcu_delete
  • Example#485 - Пример использования apcu_entry
  • Example#486 - Пример использования apcu_exists
  • Example#487 - Пример использования apcu_fetch
  • Example#488 - Пример использования apcu_inc
  • Example#489 - Пример использования apcu_sma_info
  • Example#490 - Пример использования apcu_store
  • Example#491 - Пример использования APCUIterator::__construct
  • Example#492 - Типичный сеанс с использованием tcplisten
  • Example#493 - Пример использования apd_callstack
  • Example#494 - Пример использования apd_clunk
  • Example#495 - Пример использования apd_continue
  • Example#496 - Пример использования apd_croak
  • Example#497 - Пример использования apd_dump_function_table
  • Example#498 - Пример использования apd_dump_persistent_resources
  • Example#499 - Пример использования apd_dump_regular_resources
  • Example#500 - Пример использования apd_echo
  • Example#501 - Пример использования apd_get_active_symbols
  • Example#502 - Пример использования apd_set_pprof_trace
  • Example#503 - Пример использования apd_set_session_trace_socket
  • Example#504 - Пример использования apd_set_session_trace
  • Example#505 - Пример использования apd_set_session
  • Example#506 - Пример использования override_function
  • Example#507 - Пример использования rename_function
  • Example#508 - Пример использования bcompiler_load_exe
  • Example#509 - Пример использования bcompiler_load
  • Example#510 - Пример использования bcompiler_parse_class
  • Example#511 - Пример использования bcompiler_read
  • Example#512 - Пример использования bcompiler_write_class
  • Example#513 - Пример использования bcompiler_write_constant
  • Example#514 - Пример использования bcompiler_write_exe_footer
  • Example#515 - Пример использования bcompiler_write_file
  • Example#516 - Пример использования bcompiler_write_footer
  • Example#517 - Пример использования bcompiler_write_function
  • Example#518 - Пример использования bcompiler_write_functions_from_file
  • Example#519 - Пример использования bcompiler_write_header
  • Example#520 - Пример использования blenc_encrypt
  • Example#521 - Обработка ошибок в скрипте
  • Example#522 - Пример использования debug_backtrace
  • Example#523 - Пример использования debug_print_backtrace
  • Example#524 - Пример error_clear_last
  • Example#525 - Пример использования error_get_last
  • Example#526 - Примеры использования error_log
  • Example#527 - Примеры использования error_reporting
  • Example#528 - Пример использования restore_error_handler
  • Example#529 - Пример использования restore_exception_handler
  • Example#530 - Обработка ошибок с помощью функций set_error_handler и trigger_error
  • Example#531 - Пример использования set_exception_handler
  • Example#532 - Пример использования trigger_error
  • Example#533 - Вызов функции из общей библиотеки
  • Example#534 - Вызов функции и возврат структуры через аргумент
  • Example#535 - Доступ к существующим переменным C
  • Example#536 - Создание и модификация переменной C
  • Example#537 - Работа с массивами C
  • Example#538 -
  • Example#539 -
  • Example#540 - Получение данных в самом приложении PHP (функция)
  • Example#541 - Пример использования gengraph.php
  • Example#542 - Просмотр данных с помощью дампов inclued (конфигурация)
  • Example#543 - Пример использования inclued_get_data
  • Example#544 - Создадим большой массив в функции
  • Example#545 - Пример контроля вывода
  • Example#546 - Пример перезаписи вывода
  • Example#547 - Пример использования функции ob_end_clean
  • Example#548 - Пример использования функции ob_end_flush
  • Example#549 - Простой пример использования функции ob_get_clean
  • Example#550 - Простой пример использования функции ob_get_contents
  • Example#551 - Пример использования функции ob_get_flush
  • Example#552 - Простой пример использования функции ob_get_length
  • Example#553 - Пример использования функции ob_gzhandler
  • Example#554 - Пример использования функции ob_list_handlers
  • Example#555 - Пример callback-функции, определенной пользователем
  • Example#556 - Создание нестираемого буфера вывода с совместимостью с версиями PHP 5.3 и 5.4
  • Example#557 - Пример использования функции output_add_rewrite_var
  • Example#558 - Пример использования функции output_reset_rewrite_vars
  • Example#559 - Пример использования assert_options
  • Example#560 - Обработка неудачных проверок утверждений с использованием собственного обработчика
  • Example#561 - Использование собственного обработчика с выводом описания
  • Example#562 - Ожидания без собственного исключения
  • Example#563 - Ожидания с собственным исключением
  • Example#564 - Пример использования cli_get_process_title
  • Example#565 - Пример использования cli_set_process_title
  • Example#566 - Примеры использования dl
  • Example#567 - Пример использования extension_loaded
  • Example#568 - Пример использования gc_enabled
  • Example#569 - Использование gc_status
  • Example#570 - Пример использования get_current_user
  • Example#571 - Пример использования get_defined_constants
  • Example#572 - Выводит функции XML
  • Example#573 - Пример использования get_include_path
  • Example#574 - Пример использования get_included_files
  • Example#575 - Пример использования get_loaded_extensions
  • Example#576 - Пример использования get_magic_quotes_gpc
  • Example#577 - Пример использования get_magic_quotes_runtime
  • Example#578 - Пример использования get_resources
  • Example#579 - Пример использования get_resources с фильтрацией
  • Example#580 - Пример использования getenv
  • Example#581 - Пример использования getlastmod
  • Example#582 - Пример использования getopt: основы
  • Example#583 - Пример использования getopt: добавление длинных опций
  • Example#584 - Пример использования getopt: Передача нескольких параметров как одного
  • Example#585 - Пример getopt с параметром optind
  • Example#586 - Пример использования getrusage
  • Example#587 - Примеры использования ini_get_all
  • Example#588 - Отключение details
  • Example#589 - Несколько примеров использования ini_get
  • Example#590 - Пример использования ini_restore
  • Example#591 - Установка значения ini-настройки
  • Example#592 - Пример использования memory_get_usage
  • Example#593 - Пример использования php_ini_loaded_file
  • Example#594 - Простой пример вывода списка ini-файлов
  • Example#595 - Пример использования php_logo_guid
  • Example#596 - Пример использования php_sapi_name
  • Example#597 - Несколько примеров использования php_uname
  • Example#598 - Некоторые константы OS
  • Example#599 - Выводит основных разработчиков
  • Example#600 - Выводит разработчиков ядра и участников команды документирования
  • Example#601 - Вывод всех разработчиков
  • Example#602 - Пример использования phpinfo
  • Example#603 - Пример использования phpversion
  • Example#604 - Пример использования PHP_VERSION_ID
  • Example#605 - Установка значения переменной среды
  • Example#606 - Пример использования restore_include_path
  • Example#607 - Пример использования set_include_path
  • Example#608 - Составление более длинного пути include path
  • Example#609 - Пример использования set_magic_quotes_runtime
  • Example#610 - Пример использования sys_get_temp_dir
  • Example#611 - Пример использования version_compare
  • Example#612 - Пример использования zend_logo_guid
  • Example#613 - Пример использования zend_thread_id
  • Example#614 - Пример использования zend_version
  • Example#615 - Пользовательские суперглобальные переменные при runkit.superglobal=_FOO,_BAR в php.ini
  • Example#616 - Пример создания безопасной песочницы
  • Example#617 - Работа с переменными в песочнице
  • Example#618 - Использование функций песочницы
  • Example#619 - Передача аргументов функциям в песочнице
  • Example#620 - Задействует возможность использовать Runkit_Sandbox_Parent в песочнице
  • Example#621 - Доступ к переменным родительского окружения
  • Example#622 - Пример использования runkit_class_adopt
  • Example#623 - Пример использования runkit_class_emancipate
  • Example#624 - Пример использования runkit_function_add
  • Example#625 - Пример использования runkit_function_copy
  • Example#626 - Пример runkit_function_redefine
  • Example#627 - Пример для runkit_import
  • Example#628 - Пример runkit_method_add
  • Example#629 - Пример runkit_method_copy
  • Example#630 - Пример использования runkit_method_redefine
  • Example#631 - Пример runkit_method_remove
  • Example#632 - Пример runkit_method_rename
  • Example#633 - Пример использования runkit_return_value_used
  • Example#634 - Перевод вывода в переменную
  • Example#635 - A runkit7_function_add example
  • Example#636 - A runkit7_function_copy example
  • Example#637 - A runkit7_function_redefine example
  • Example#638 - runkit7_method_add example
  • Example#639 - runkit7_method_copy example
  • Example#640 - runkit7_method_redefine example
  • Example#641 - runkit7_method_remove example
  • Example#642 - runkit7_method_rename example
  • Example#643 - Разрешение и запрет "крика" во время исполнения
  • Example#644 - Простое использование uopz_add_function
  • Example#645 - Пример использования uopz_allow_exit
  • Example#646 - Пример использования uopz_backup
  • Example#647 - Пример использования uopz_compose
  • Example#648 - Пример использования uopz_copy
  • Example#649 - Простое использование uopz_del_function
  • Example#650 - Пример использования uopz_delete
  • Example#651 - Пример использования uopz_delete с классом
  • Example#652 - Пример использования uopz_extend
  • Example#653 - Пример использования uopz_flags
  • Example#654 - Пример использования uopz_function
  • Example#655 - Пример использования uopz_function с классом
  • Example#656 - Пример использования uopz_get_exit_status
  • Example#657 - Простое использование uopz_get_hook
  • Example#658 - Пример использования uopz_get_mock
  • Example#659 - Простое использование uopz_get_property
  • Example#660 - Пример использования uopz_get_return
  • Example#661 - Простое использование uopz_get_static
  • Example#662 - Пример использования uopz_implement
  • Example#663 - Пример использования uopz_overload
  • Example#664 - Пример использования uopz_redefine
  • Example#665 - Пример использования uopz_rename
  • Example#666 - Пример использования uopz_rename с классом
  • Example#667 - Пример использования uopz_restore
  • Example#668 - Простое использование uopz_set_hook
  • Example#669 - Пример использования uopz_set_mock
  • Example#670 - Пример использования uopz_set_mock
  • Example#671 - uopz_set_mock и статические члены класса
  • Example#672 - Простое использование uopz_set_property
  • Example#673 - Пример использования uopz_set_return
  • Example#674 - Пример использования uopz_set_return
  • Example#675 - Пример использования uopz_set_return с классом
  • Example#676 - Простое использование uopz_set_static
  • Example#677 - Пример использования uopz_undefine
  • Example#678 - Простое использование uopz_unset_hook
  • Example#679 - Пример использования uopz_unset_mock
  • Example#680 - Пример использования uopz_unset_return
  • Example#681 - Weakref пример использования
  • Example#682 - Пример использования WeakRef
  • Example#683 - Пример выполнения Weakref::acquire
  • Example#684 - Пример вложенных вызовов acquire/release
  • Example#685 - Пример использования Weakref::__construct
  • Example#686 - Пример использования Weakref::release
  • Example#687 - Пример использования Weakmap
  • Example#688 - Пример использования wincache.ignorelist
  • Example#689 - Настройка аутентификации для wincache.php
  • Example#690 - Включение обработчика сессий WinCache
  • Example#691 - Включение перенаправления функций в WinCache
  • Example#692 - Содержимое файла Reroute.ini
  • Example#693 - A wincache_fcache_fileinfo example
  • Example#694 - A wincache_fcache_meminfo example
  • Example#695 - Using wincache_lock
  • Example#696 - A wincache_ocache_fileinfo example
  • Example#697 - A wincache_ocache_meminfo example
  • Example#698 - A wincache_refresh_if_changed example
  • Example#699 - A wincache_rplist_fileinfo example
  • Example#700 - A wincache_rplist_meminfo example
  • Example#701 - A wincache_scache_info example
  • Example#702 - A wincache_scache_meminfo example
  • Example#703 - wincache_ucache_add with key as a string
  • Example#704 - wincache_ucache_add with key as an array
  • Example#705 - Using wincache_ucache_cas
  • Example#706 - using wincache_ucache_clear
  • Example#707 - Using wincache_ucache_dec
  • Example#708 - Using wincache_ucache_delete with key as a string
  • Example#709 - Usingwincache_ucache_delete with key as an array
  • Example#710 - Using wincache_ucache_delete with key as an array where some elements cannot be deleted
  • Example#711 - Using wincache_ucache_exists
  • Example#712 - wincache_ucache_get with key as a string
  • Example#713 - wincache_ucache_get with key as an array
  • Example#714 - Using wincache_ucache_inc
  • Example#715 - Using wincache_ucache_info
  • Example#716 - A wincache_ucache_meminfo example
  • Example#717 - wincache_ucache_set with key as a string
  • Example#718 - wincache_ucache_set with key as an array
  • Example#719 - Using wincache_unlock
  • Example#720 - Примеры использования Xhprof, опционально с GUI
  • Example#721 - Пример использования xhprof_disable
  • Example#722 - Пример использования xhprof_enable
  • Example#723 - Пример использования xhprof_sample_disable
  • Example#724 - Пример использования id3_get_frame_long_name
  • Example#725 - Пример использования id3_get_frame_short_name
  • Example#726 - Пример использования id3_get_genre_id
  • Example#727 - Пример использования id3_get_genre_list
  • Example#728 - Пример использования id3_get_genre_name
  • Example#729 - Пример использования id3_get_tag
  • Example#730 - Пример использования id3_get_tag
  • Example#731 - Примеры использования id3_get_version
  • Example#732 - id3_remove_tag example
  • Example#733 - Пример использования id3_set_tag
  • Example#734 - Открываем новый MP3-файл и читаем название трека
  • Example#735 - Чтение файла OGG/Vorbis
  • Example#736 - Кодирование аудио-файла в OGG/Vorbis
  • Example#737 - Обзорный пример модуля KADM5
  • Example#738 - Пример изменения пароля принципала
  • Example#739 - Пример создания принципала
  • Example#740 - Пример использования kadm5_delete_principal
  • Example#741 - Пример использования kadm5_get_policies
  • Example#742 - Пример использования kadm5_get_principal
  • Example#743 - Пример использования kadm5_get_principals
  • Example#744 - Пример инициализации KADM5
  • Example#745 - Пример изменения принципала
  • Example#746 - Использование паролей CHAP
  • Example#747 - radius_acct_open example
  • Example#748 - radius_add_server example
  • Example#749 - radius_auth_open example
  • Example#750 - radius_create_request example
  • Example#751 - radius_cvt_addr example
  • Example#752 - radius_cvt_int example
  • Example#753 - radius_cvt_string example
  • Example#754 - radius_get_attr example
  • Example#755 - radius_get_tagged_attr_data example
  • Example#756 - radius_get_tagged_attr_tag example
  • Example#757 - radius_get_vendor_attr example
  • Example#758 - radius_put_attr example
  • Example#759 - radius_put_int example
  • Example#760 - radius_put_string example
  • Example#761 - radius_put_vendor_attr example
  • Example#762 - Writing a string with a specified color to the screen
  • Example#763 - ncurses_getmouse example
  • Example#764 - Writing a string with a specified color to the screen
  • Example#765 - Writing a string with a specified color to the screen
  • Example#766 - ncurses_mousemask example
  • Example#767 - Writing a string with a specified color to the screen
  • Example#768 - Пример использования Newt
  • Example#769 - Пример выполнения newt_button
  • Example#770 - Пример использования newt_draw_root_text
  • Example#771 - Пример использования newt_form_add_component
  • Example#772 - Пример использования newt_form_add_components
  • Example#773 - Пример использования newt_form
  • Example#774 - Пример использования newt_get_screen_size
  • Example#775 - Пример выполнения newt_win_entries
  • Example#776 - Пример использования callback-интерфейса readline
  • Example#777 - Пример использования readline
  • Example#778 - Пример работы с bzip2
  • Example#779 - Сжатие данных
  • Example#780 - Распаковка строки
  • Example#781 - Пример использования bzerror
  • Example#782 - Пример использования bzopen
  • Example#783 - Пример использования bzread
  • Example#784 - Пример использования bzwrite
  • Example#785 - Использование внешнего файла
  • Example#786 - Использование файла внутри phar-архива
  • Example#787 - Конвертирование phar-архива из формата phar в формат tar
  • Example#788 - phar.extract_list usage example
  • Example#789 - phar.cache_list usage example
  • Example#790 - Пример использования Phar::addEmptyDir
  • Example#791 - Пример использования Phar::addFile
  • Example#792 - Пример использования Phar::addFromString
  • Example#793 - Пример использования Phar::apiVersion
  • Example#794 - Пример использования Phar::buildFromDirectory
  • Example#795 - Пример использования Phar::buildFromIterator с объектами SplFileInfo
  • Example#796 - Пример использования Phar::buildFromIterator с другими типами итераторов
  • Example#797 - Пример использования Phar::canCompress
  • Example#798 - Пример использования Phar::canWrite
  • Example#799 - Пример использования Phar::compress
  • Example#800 - Пример использования Phar::compressAllFilesBZIP2
  • Example#801 - Пример использования Phar::compressAllFilesGZ
  • Example#802 - Пример использования Phar::compressFiles
  • Example#803 - Пример использования Phar::__construct
  • Example#804 - Пример использования Phar::convertToData
  • Example#805 - Пример использования Phar::convertToExecutable
  • Example#806 - Пример использования Phar::copy
  • Example#807 - Пример использования Phar::count
  • Example#808 - Пример использования Phar::createDefaultStub
  • Example#809 - Пример использования Phar::decompress
  • Example#810 - Пример использования Phar::decompressFiles
  • Example#811 - Пример использования Phar::delMetaData
  • Example#812 - Пример использования Phar::delete
  • Example#813 - Пример использования Phar::extractTo
  • Example#814 - Пример использования Phar::getMetadata
  • Example#815 - Пример использования Phar::getStub
  • Example#816 - Пример использования Phar::hasMetadata
  • Example#817 - Пример использования Phar::interceptFileFuncs
  • Example#818 - Пример использования Phar::interceptFileFuncs
  • Example#819 - Пример использования Phar::isBuffering
  • Example#820 - Пример использования Phar::isCompressed
  • Example#821 - Пример использования Phar::loadPhar
  • Example#822 - Пример использования Phar::mapPhar
  • Example#823 - Пример использования Phar::mount
  • Example#824 - Пример использования Phar::mungServer
  • Example#825 - Пример использования Phar::offsetExists
  • Example#826 - Пример использования Phar::offsetGet
  • Example#827 - Пример использования Phar::offsetSet
  • Example#828 - Пример использования Phar::offsetUnset
  • Example#829 - Пример использования Phar::running
  • Example#830 - Пример использования Phar::setAlias
  • Example#831 - Пример использования Phar::setDefaultStub
  • Example#832 - Пример использования Phar::setMetadata
  • Example#833 - Пример использования Phar::setStub
  • Example#834 - Пример использования Phar::startBuffering
  • Example#835 - Пример использования Phar::stopBuffering
  • Example#836 - Пример использования Phar::uncompressAllFiles
  • Example#837 - Пример использования Phar::unlinkArchive
  • Example#838 - Пример использования Phar::webPhar
  • Example#839 - Пример использования PharData::addEmptyDir
  • Example#840 - Пример использования PharData::addFile
  • Example#841 - Пример использования PharData::addFromString
  • Example#842 - Пример использования PharData::buildFromDirectory
  • Example#843 - Пример использования PharData::buildFromIterator с SplFileInfo
  • Example#844 - Пример использования PharData::buildFromIterator с другим итератором
  • Example#845 - Пример использования PharData::compress
  • Example#846 - Пример использования PharData::compressFiles
  • Example#847 - Пример использования PharData::__construct
  • Example#848 - Пример использования PharData::convertToData
  • Example#849 - Пример использования PharData::convertToExecutable
  • Example#850 - Пример использования PharData::copy
  • Example#851 - Пример использования PharData::decompress
  • Example#852 - Пример использования PharData::decompressFiles
  • Example#853 - Пример использования PharData::delMetaData
  • Example#854 - Пример использования PharData::delete
  • Example#855 - Пример использования PharData::extractTo
  • Example#856 - Пример использования PharData::offsetSet
  • Example#857 - Пример использования PharData::offsetUnset
  • Example#858 - Пример использования Phar::setMetadata
  • Example#859 - Пример использования PharFileInfo::chmod
  • Example#860 - Пример использовния PharFileInfo::compress
  • Example#861 - Пример использования PharFileInfo::__construct
  • Example#862 - Пример использования PharFileInfo::decompress
  • Example#863 - Пример использования PharFileInfo::delMetaData
  • Example#864 - Пример использования PharFileInfo::getCRC32
  • Example#865 - Пример использования PharFileInfo::getCompressedSize
  • Example#866 - Пример использования PharFileInfo::getMetadata
  • Example#867 - Пример использования PharFileInfo::getPharFlags
  • Example#868 - Пример использования PharFileInfo::isCRCChecked
  • Example#869 - Пример использования PharFileInfo::isCompressed
  • Example#870 - Пример использования PharFileInfo::isCompressedBZIP2
  • Example#871 - Пример использования PharFileInfo::isCompressedGZ
  • Example#872 - Пример использования PharFileInfo::setCompressedBZIP2
  • Example#873 - Пример использования PharFileInfo::setCompressedGZ
  • Example#874 - Пример использования PharFileInfo::setMetadata
  • Example#875 - Пример использования PharFileInfo::setUncompressed
  • Example#876 - Установка Rar
  • Example#877 - Декомпрессия на лету
  • Example#878 - Пример извлечения перечня файлов и директорий из RAR-архива
  • Example#879 - Объектно-ориентированный стиль
  • Example#880 - Процедурный стиль
  • Example#881 - Объектно-ориентированный стиль
  • Example#882 - Процедурный стиль
  • Example#883 - Объектно-ориентированный стиль
  • Example#884 - Процедурный стиль
  • Example#885 - Объектно-ориентированный стиль
  • Example#886 - Процедурный стиль
  • Example#887 - Объектно-ориентированный стиль
  • Example#888 - Процедурный стиль
  • Example#889 - Объектно-ориентированный стиль
  • Example#890 - Процедурный стиль
  • Example#891 - Объектно-ориентированный стиль
  • Example#892 - Процедурный стиль
  • Example#893 - Callback-функция для тома
  • Example#894 - Объектно-ориентированный стиль
  • Example#895 - Процедурный стиль
  • Example#896 - Пример использования RarArchive::__toString
  • Example#897 - Пример использования RarEntry::extract
  • Example#898 - Как извлечь все файлы из архива:
  • Example#899 - Пример использования RarEntry::getAttr
  • Example#900 - Пример использования RarEntry::getHostOs(версии >= 2.0.0)
  • Example#901 - Пример использования RarEntry::getHostOs(версии <= 1.0.0)
  • Example#902 - Пример использования RarEntry::getMethod
  • Example#903 - Пример использования RarEntry::getName
  • Example#904 - Пример использования RarEntry::getPackedSize
  • Example#905 - Пример использования RarEntry::getStream
  • Example#906 - Пример использования RarEntry::getUnpackedSize
  • Example#907 - Пример использования RarEntry::getVersion
  • Example#908 - Пример использования RarException::isUsingExceptions
  • Example#909 - Пример использования RarException::setUsingExceptions
  • Example#910 - Создание Zip-архива
  • Example#911 - Собрать и отобразить подробную информацию об архиве
  • Example#912 - Использование обертки потока Zip, чтение метаинформации OpenOffice
  • Example#913 - Пример использования Zip
  • Example#914 - Создание новой директории в архиве.
  • Example#915 - Открыть и добавить
  • Example#916 - Добавить запись в новый архив
  • Example#917 - Добавить файл в директорию внутри архива
  • Example#918 - Пример использования ZipArchive::addGlob
  • Example#919 - Пример использования ZipArchive::addPattern
  • Example#920 - Удалить файл из архива, используя его индекс
  • Example#921 - Удалить файл и каталог из архива, используя имена
  • Example#922 - Извлечь все содержимое
  • Example#923 - Извлечь два элемента
  • Example#924 - Вывести комментарий архива
  • Example#925 - Вывести комментарий элемента
  • Example#926 - Вывести комментарий элемента
  • Example#927 - Извлекаем все записи с их правами Unix
  • Example#928 - Получить содержимое файла
  • Example#929 - Получить содержимое файла
  • Example#930 - Преобразовать изображении из ZIP-элемента
  • Example#931 - Пример использования ZipArchive::getnameindex
  • Example#932 - Получить содержимое элемента при помощи fread и сохранить его
  • Example#933 - То же, что и в предыдущем примере, но используя fopen и через обертку zip-потока
  • Example#934 - ZIP-поток и изображение могут быть использованы также в функции XML
  • Example#935 - Создается архив и затем используется метод ZipArchive::locateName
  • Example#936 - Открытие и извлечение
  • Example#937 - Создание архива
  • Example#938 - Archive a file
  • Example#939 - Archive a file
  • Example#940 - Переименование одного элемента
  • Example#941 - Переименование одного элемента
  • Example#942 - Создание архива и установка комментария
  • Example#943 - Открывает архив и устанавливает комментарий к элементу
  • Example#944 - Открытие архива и установка комментария к элементу
  • Example#945 - Добавить к архиву файлы с разными методами сжатия
  • Example#946 - Добавить к архиву файлы с разными методами сжатия
  • Example#947 - Архивируем и шифруем файл
  • Example#948 - Сжатие файла с его правами Unix
  • Example#949 - Архивирование файла
  • Example#950 - Архивирование файла
  • Example#951 - Получение статистической информации о элементе
  • Example#952 - Получение статистической информации о элементе
  • Example#953 - Небольшой пример использования Zlib
  • Example#954 - Работа с API инкрементальной компрессии и декомпрессии, с PHP 7.0.0
  • Example#955 - Пример использования gzclose
  • Example#956 - Пример использования gzcompress
  • Example#957 - Пример использования gzdeflate
  • Example#958 - Создание файла gzip
  • Example#959 - Пример использования gzeof
  • Example#960 - Пример использования gzfile
  • Example#961 - Пример использования gzgetc
  • Example#962 - Пример использования gzgets
  • Example#963 - Пример использования gzgetss
  • Example#964 - Пример использования gzinflate
  • Example#965 - Пример использования gzopen
  • Example#966 - Пример использования gzpassthru
  • Example#967 - Пример использования gzread
  • Example#968 - Пример использования gzseek
  • Example#969 - Пример использования gzuncompress
  • Example#970 - Пример использования gzwrite
  • Example#971 - Пример использования zlib_encode
  • Example#972 - Пример использования CrackLib
  • Example#973 - Пример использования random_bytes
  • Example#974 - Пример random_int
  • Example#975 - Пример использования hash_algos
  • Example#976 - Пример использования hash_copy
  • Example#977 - Пример использования hash_equals
  • Example#978 - Использование hash_file
  • Example#979 - Пример использования hash_final
  • Example#980 - Пример использования hash_hkdf
  • Example#981 - Пример использования hash_hmac_algos
  • Example#982 - Пример использования hash_hmac_file
  • Example#983 - Пример использования hash_hmac
  • Example#984 - Пример инкриментального хеширования
  • Example#985 - Пример простого использования hash_pbkdf2
  • Example#986 - Пример использования hash_update_stream
  • Example#987 - Пример использования hash
  • Example#988 - Вычесление хешей Tiger с PHP 5.4 и выше.
  • Example#989 - Шифрование с помощью AES с 256-битным ключем для версии 2.4.x и выше в режиме CBC
  • Example#990 - Пример использования mcrypt_create_iv
  • Example#991 - Пример использования mcrypt_enc_get_algorithms_name
  • Example#992 - Пример использования mcrypt_enc_get_modes_name
  • Example#993 - Пример использования mcrypt_enc_get_supported_key_sizes
  • Example#994 - Пример использования mcrypt_encrypt
  • Example#995 - Пример использования mcrypt_get_block_size
  • Example#996 - Пример использования mcrypt_get_cipher_name
  • Example#997 - Пример использования mcrypt_get_iv_size
  • Example#998 - Пример использования mcrypt_get_key_size
  • Example#999 - Пример использования mcrypt_list_algorithms
  • Example#1000 - Пример использования mcrypt_list_modes
  • Example#1001 - Пример использования mcrypt_module_open
  • Example#1002 - Пример использования mcrypt_module_open
  • Example#1003 - Пример использования mcrypt_module_self_test
  • Example#1004 - Пример использования mdecrypt_generic
  • Example#1005 - Вычисление MD5 и HMAC и печать их в шестнадцатеричном виде
  • Example#1006 - Обход всех хешей
  • Example#1007 - Пример использования mhash_get_block_size
  • Example#1008 - Пример использования mhash_get_hash_name
  • Example#1009 - Пример использования openssl_cipher_iv_length
  • Example#1010 - Пример использования openssl_csr_export_to_file()
  • Example#1011 - Пример использования openssl_csr_export()
  • Example#1012 - Пример использования openssl_csr_get_public_key()
  • Example#1013 - Пример использования openssl_csr_get_subject()
  • Example#1014 - Создание самоподписанного сертификата
  • Example#1015 - Создание самоподписанного ECC сертификата (начиная с PHP 7.1.0)
  • Example#1016 - Пример openssl_csr_sign - подпись CSR (как сделать свой собственный CA)
  • Example#1017 - Вычисление общего секретного кдюча
  • Example#1018 - Создание пары ключей DH (открытый/закрытый)
  • Example#1019 - Пример шифрования AES с аутентификацией в режиме GCM в PHP 7.1+
  • Example#1020 - Пример шифрования AES с аутентификацией в PHP 5.6+
  • Example#1021 - Пример использования openssl_error_string
  • Example#1022 - Пример использования openssl_get_cert_locations
  • Example#1023 - Пример использования openssl_get_cipher_methods
  • Example#1024 - Пример использования openssl_get_curve_names
  • Example#1025 - Пример использования openssl_get_md_methods
  • Example#1026 - Пример использования openssl_open
  • Example#1027 - Пример использования openssl_pbkdf2()
  • Example#1028 - Пример использования openssl_pkcs12_read
  • Example#1029 - Пример использования openssl_pkcs7_decrypt
  • Example#1030 - Пример использования openssl_pkcs7_encrypt
  • Example#1031 - Пример использования openssl_pkcs7_sign
  • Example#1032 - Пример использования openssl_random_pseudo_bytes
  • Example#1033 - Пример использования openssl_seal
  • Example#1034 - Пример использования openssl_sign
  • Example#1035 - Пример использования openssl_sign
  • Example#1036 - Пример использования openssl_spki_export_challenge
  • Example#1037 - Пример использование openssl_spki_export_challenge с <keygen>
  • Example#1038 - Пример использования openssl_spki_export
  • Example#1039 - Пример использования openssl_spki_export с <keygen>
  • Example#1040 - Пример использования openssl_spki_new
  • Example#1041 - Пример использования openssl_spki_verify
  • Example#1042 - Пример использования openssl_spki_verify с <keygen>
  • Example#1043 - Пример использования openssl_verify
  • Example#1044 - Пример использования openssl_verify
  • Example#1045 - Пример использования password_hash
  • Example#1046 - Пример использования password_hash с ручным заданием стоимости
  • Example#1047 - Пример поиска хорошего значения стоимости для password_hash
  • Example#1048 - Пример использования password_hash с Argon2i
  • Example#1049 - Пример использования password_needs_rehash
  • Example#1050 - Пример использования password_verify
  • Example#1051 - Пример использования sodium_crypto_kx_keypair
  • Example#1052 - Пример использования password_hash
  • Example#1053 - Пример использования password_hash
  • Example#1054 - DBA пример
  • Example#1055 - Обход базы данных
  • Example#1056 - Пример использования dba_handlers
  • Example#1057 - Пример использования dbx_close
  • Example#1058 - Пример использования dbx_compare
  • Example#1059 - Пример использования dbx_connect
  • Example#1060 - Пример использования dbx_error
  • Example#1061 - Пример использования dbx_escape_string
  • Example#1062 - Как обрабатывать возвращенные значения
  • Example#1063 - Вывод всех имен и типов столбцов
  • Example#1064 - Вывод содержимого свойства data в таблицу HTML
  • Example#1065 - Как обрабатывать UNBUFFERED запросы
  • Example#1066 - Как обрабатывать возвращенное значение
  • Example#1067 - Пример использования dbx_sort
  • Example#1068 - Соединения без DSN
  • Example#1069 - odbc_execute and odbc_prepare example
  • Example#1070 - odbc_fetch_into examples
  • Example#1071 - odbc_next_result
  • Example#1072 - odbc_execute and odbc_prepare example
  • Example#1073 - odbc_result examples
  • Example#1074 - odbc_setoption examples
  • Example#1075 - Пример использования PDO::ATTR_DRIVER_NAME
  • Example#1076 - Подключение к MySQL
  • Example#1077 - Обработка ошибок подключения
  • Example#1078 - Закрытие соединения
  • Example#1079 - Постоянные соединения
  • Example#1080 - Выполнение пакета изменений в рамках транзакции
  • Example#1081 - Повторяющиеся вставки в базу с использованием подготовленных запросов
  • Example#1082 - Повторяющиеся вставки в базу с использованием подготовленных запросов
  • Example#1083 - Выборка данных с использованием подготовленных запросов
  • Example#1084 - Вызов хранимой процедуры с выходными параметрами
  • Example#1085 - Вызов хранимой процедуры с входным/выходным параметром
  • Example#1086 - Неправильное использование псевдопеременной
  • Example#1087 - Создание PDO объекта и установка режима обработки ошибок
  • Example#1088 - Создание экземпляра класса PDO и установка режима обработки ошибок в конструкторе
  • Example#1089 - Вывод изображения, хранящегося в базе данных
  • Example#1090 - Вставка изображения в базу данных
  • Example#1091 - Вставка изображения в базу данных: Oracle
  • Example#1092 - Откат транзакции
  • Example#1093 - Фиксация обычной транзакции
  • Example#1094 - Фиксация DDL-транзакции
  • Example#1095 - Создание экземпляра PDO через вызов драйвера
  • Example#1096 - Создание экземпляра PDO через вызов URI
  • Example#1097 - Создание экземпляра PDO, используя псевдоним
  • Example#1098 - Получение кода SQLSTATE
  • Example#1099 - Вывод полей массива errorInfo() для PDO_ODBC подключения к базе данных DB2
  • Example#1100 - Выполнение запроса DELETE
  • Example#1101 - Получение атрибутов соединения с базой данных
  • Example#1102 - Пример выполнения PDO::getAvailableDrivers
  • Example#1103 - Подготовка SQL-запроса с именованными параметрами
  • Example#1104 - Подготовка SQL-запроса с неименованными параметрами (символ '?')
  • Example#1105 - Демонстрация работы PDO::query
  • Example#1106 - Экранирование обычной строки
  • Example#1107 - Экранирование небезопасной строки
  • Example#1108 - Экранирование сложной строки
  • Example#1109 - Откат транзакции
  • Example#1110 - Связывание результирующего набора с переменными PHP
  • Example#1111 - Выполнение подготовленного запроса с именованными псевдопеременными
  • Example#1112 - Выполнение подготовленного запроса с неименованными псевдопеременными (?)
  • Example#1113 - Вызов хранимой процедуры с INOUT-параметром
  • Example#1114 - Выполнение подготовленного запроса с именованными псевдопеременными
  • Example#1115 - Выполнение подготовленного запроса с неименованными псевдопеременными (?)
  • Example#1116 - Пример использования PDOStatement::closeCursor
  • Example#1117 - Подсчет столбцов
  • Example#1118 - Пример использования PDOStatement::debugDumpParams с именованными параметрами
  • Example#1119 - Пример использования PDOStatement::debugDumpParams с неименованными (?) параметрами
  • Example#1120 - Получение кода SQLSTATE
  • Example#1121 - Вывод полей errorInfo() при PDO_ODBC подключении к DB2
  • Example#1122 - Выполнение подготовленного запроса с привязкой переменных и значений
  • Example#1123 - Выполнение подготовленного запроса с передачей массива входных значений (именованные псевдопеременные)
  • Example#1124 - Выполнение подготовленного запроса с передачей массива входных значений (неименованные псевдопеременные - знаки вопроса (?))
  • Example#1125 - Выполнение подготовленного запроса с привязкой значений к неименованным псевдопеременным (знакам вопроса)
  • Example#1126 - Выполнение подготовленного запроса с использованием массива для выражения IN
  • Example#1127 - Извлечение строк в разных режимах выборки
  • Example#1128 - Выборка строк средствами прокручиваемого курсора
  • Example#1129 - Порядок конструкторов
  • Example#1130 - Извлечение всех оставшихся строк результирующего набора
  • Example#1131 - Извлечение всех значений одного столбца результирующего набора
  • Example#1132 - Группировка строк по значениям одного столбца
  • Example#1133 - Создание объекта для каждой строки
  • Example#1134 - Вызов функции для каждой строки
  • Example#1135 - Получение значения первого столбца следующей строки
  • Example#1136 - Извлечение метаданных столбца
  • Example#1137 - Извлечение данных из нескольких наборов строк, возвращенных хранимой процедурой
  • Example#1138 - Получение количества удаленных строк
  • Example#1139 - Подсчет строк, возвращаемых выражением SELECT
  • Example#1140 - Изменение режима выборки
  • Example#1141 - Вставка LOB в CUBRID PDO
  • Example#1142 - Получение LOB в CUBRID PDO
  • Example#1143 - Вставка коллекции в CUBRID PDO с типом данных по умолчанию.
  • Example#1144 - Указание типа дланных при вставке коллекции в CUBRID PDO
  • Example#1145 - Пример PDO_CUBRID DSN
  • Example#1146 - Пример использования PDO::cubrid_schema
  • Example#1147 - Примеры использования PDO_DBLIB DSN
  • Example#1148 - Пример PDO_FIREBIRD DSN с путем
  • Example#1149 - Пример PDO_FIREBIRD DSN с путем и портом
  • Example#1150 - Пример PDO_FIREBIRD DSN для localhost и пути до employee.fdb в системе Debian
  • Example#1151 - PDO_FIREBIRD DSN to connect to a dialect 1 database
  • Example#1152 - Пример PDO_IBM DSN с использованием db2cli.ini
  • Example#1153 - Пример PDO_IBM DSN с использованием строки соединения
  • Example#1154 - Использование PDO_INFORMIX DSN в odbc.ini
  • Example#1155 - Соединение с использованием полноценной строки соединения
  • Example#1156 - Буферизация запросов в MySQL
  • Example#1157 - Установка набора символов соединения UTF-8 до PHP 5.3.6
  • Example#1158 - Примеры DNS для PDO_MYSQL
  • Example#1159 - Примеры PDO_SQLSRV DSN
  • Example#1160 - Примеры использования PDO_OCI DSN
  • Example#1161 - Пример PDO_ODBC DSN (менеджер драйверов ODBC)
  • Example#1162 - Пример использования PDO_ODBC DSN (некаталогизированное соединение IBM DB2)
  • Example#1163 - Пример использования PDO_ODBC DSN (некаталогизированное соединение Microsoft Access)
  • Example#1164 - Примеры PDO_PGSQL DSN
  • Example#1165 - Пример использования PDO::pgsqlLOBCreate
  • Example#1166 - Пример использования PDO::pgsqlLOBOpen
  • Example#1167 - Пример использования PDO::pgsqlLOBUnlink
  • Example#1168 - Пример DSN PDO_SQLITE
  • Example#1169 - Пример агрегирующей функции max_length
  • Example#1170 - Пример использования PDO::sqliteCreateCollation
  • Example#1171 - Пример использования PDO::sqliteCreateFunction
  • Example#1172 - Пример DSN для PDO_4D
  • Example#1173 - Простой пример PDO_4D
  • Example#1174 - Доступ к языку 4D из pdo_4d
  • Example#1175 - Экранирование имен таблиц 4D
  • Example#1176 - Пример извлечения данных
  • Example#1177 - Пример вставки данных
  • Example#1178 - Пример использования cubrid_bind
  • Example#1179 - Пример использования cubrid_bind с BLOB/CLOB
  • Example#1180 - Пример использования cubrid_bind с BLOB/CLOB
  • Example#1181 - Пример использования cubrid_close_prepare
  • Example#1182 - Пример использования cubrid_close_request
  • Example#1183 - Пример использования cubrid_col_get
  • Example#1184 - Пример использования cubrid_col_size
  • Example#1185 - Пример использования cubrid_column_names
  • Example#1186 - cubrid_column_types example
  • Example#1187 - Пример использования cubrid_commit
  • Example#1188 - Пример использования cubrid_connect_with_url без задания свойств
  • Example#1189 - Пример использования cubrid_connect_with_url с заданием свойств
  • Example#1190 - Пример использования cubrid_connect
  • Example#1191 - Пример использования cubrid_current_oid
  • Example#1192 - Пример использования cubrid_disconnect
  • Example#1193 - Пример использования cubrid_drop
  • Example#1194 - Пример использования cubrid_error_code_facility
  • Example#1195 - Пример использования cubrid_error_code
  • Example#1196 - Пример использования cubrid_error_msg
  • Example#1197 - cubrid_execute example
  • Example#1198 - cubrid_fetch example
  • Example#1199 - cubrid_free_result example
  • Example#1200 - Пример использования cubrid_get_charset
  • Example#1201 - cubrid_get_class_name example
  • Example#1202 - cubrid_get_client_info example
  • Example#1203 - cubrid_get_db_parameter example
  • Example#1204 - cubrid_get_query_timeout example
  • Example#1205 - cubrid_get_server_info example
  • Example#1206 - cubrid_get example
  • Example#1207 - cubrid_insert_id example
  • Example#1208 - cubrid_is_instance example
  • Example#1209 - cubrid_lob_close example
  • Example#1210 - cubrid_lob_export example
  • Example#1211 - cubrid_lob_get example
  • Example#1212 - cubrid_lob_send example
  • Example#1213 - cubrid_lob_size example
  • Example#1214 - cubrid_lob2_bind example
  • Example#1215 - cubrid_lob2_export example
  • Example#1216 - cubrid_lob2_export example
  • Example#1217 - cubrid_lob2_read example 1
  • Example#1218 - cubrid_lob2_read example 2
  • Example#1219 - cubrid_lob2_seek64 example
  • Example#1220 - cubrid_lob2_seek example
  • Example#1221 - cubrid_lob2_write example 1
  • Example#1222 - cubrid_lob2_write example 2
  • Example#1223 - cubrid_lock_read example
  • Example#1224 - cubrid_lock_write example
  • Example#1225 - cubrid_move_cursor example
  • Example#1226 - cubrid_next_result example
  • Example#1227 - cubrid_num_cols example
  • Example#1228 - cubrid_num_rows example
  • Example#1229 - cubrid_pconnect_with_url url without properties example
  • Example#1230 - cubrid_pconnect_with_url url with properties example
  • Example#1231 - cubrid_connect example
  • Example#1232 - cubrid_prepare example
  • Example#1233 - cubrid_put example
  • Example#1234 - cubrid_rollback example
  • Example#1235 - cubrid_schema example
  • Example#1236 - cubrid_seq_drop example
  • Example#1237 - cubrid_seq_insert example
  • Example#1238 - cubrid_seq_put example
  • Example#1239 - cubrid_set_add example
  • Example#1240 - cubrid_get_db_parameter example
  • Example#1241 - cubrid_set_drop example
  • Example#1242 - Пример использования cubrid_version
  • Example#1243 - Пример использования cubrid_affected_rows
  • Example#1244 - Пример использования cubrid_client_encoding
  • Example#1245 - Пример использования cubrid_close
  • Example#1246 - Пример использования cubrid_data_seek
  • Example#1247 - Пример использования cubrid_db_name
  • Example#1248 - Пример использования cubrid_errno
  • Example#1249 - Пример использования cubrid_error
  • Example#1250 - Пример использования cubrid_fetch_array
  • Example#1251 - Пример использования cubrid_fetch_assoc
  • Example#1252 - Пример использования cubrid_fetch_field
  • Example#1253 - Пример использования cubrid_fetch_lengths
  • Example#1254 - Пример использования cubrid_fetch_object
  • Example#1255 - Пример использования cubrid_fetch_row
  • Example#1256 - Пример использования cubrid_field_flags
  • Example#1257 - Пример использования cubrid_field_len
  • Example#1258 - Пример использования cubrid_field_name
  • Example#1259 - Пример использования cubrid_field_seek
  • Example#1260 - Пример использования cubrid_field_table
  • Example#1261 - Прнимер использования cubrid_field_type
  • Example#1262 - Пример использования cubrid_list_dbs
  • Example#1263 - Пример использования cubrid_num_fields
  • Example#1264 - Пример использования cubrid_ping
  • Example#1265 - Некорректный запрос
  • Example#1266 - Корректный запрос
  • Example#1267 - Пример использования cubrid_real_escape_string
  • Example#1268 - Пример использования cubrid_result
  • Example#1269 - Пример использования cubrid_unbuffered_query
  • Example#1270 - Пример использования cubrid_load_from_glo
  • Example#1271 - Пример использования cubrid_new_glo
  • Example#1272 - Пример использования cubrid_save_to_glo
  • Example#1273 - Пример использования cubrid_send_glo
  • Example#1274 - Вставка записи в базу данных dBase
  • Example#1275 - Закрытие файла базы данных dBase
  • Example#1276 - Создание файла базы данных dBase
  • Example#1277 - Получение свойств полей файла базы данных dBase
  • Example#1278 - Список всех зарегистрированных пользователей в базе данных
  • Example#1279 - Пример использования dbase_numfields
  • Example#1280 - Цикл по всем записям базы данных
  • Example#1281 - Открытие dBase файл базы данных
  • Example#1282 - Очистка базы данных dBase
  • Example#1283 - Обновление записи в базе данных
  • Example#1284 - Пример использования ibase_backup
  • Example#1285 - Пример использования ibase_backup с аргументами
  • Example#1286 - Пример использования ibase_blob_get
  • Example#1287 - Пример использования ibase_blob_import
  • Example#1288 - Пример использования ibase_connect
  • Example#1289 - Пример использования ibase_execute
  • Example#1290 - Пример использования ibase_fetch_object
  • Example#1291 - Пример использования ibase_field_info
  • Example#1292 - Пример использования ibase_name_result
  • Example#1293 - ibase_num_fields example
  • Example#1294 - ibase_query example
  • Example#1295 - ibase_restore example
  • Example#1296 - ibase_restore example with arguments
  • Example#1297 - ibase_service_attach example
  • Example#1298 - ibase_service_attach example
  • Example#1299 - ibase_service_attach example using hostname/port syntax
  • Example#1300 - ibase_service_detach example
  • Example#1301 - Пример использования ibase_set_event_handler
  • Example#1302 - fbsql_close example
  • Example#1303 - fbsql_connect example
  • Example#1304 - fbsql_create_blob example
  • Example#1305 - fbsql_create_clob example
  • Example#1306 - fbsql_create_db example
  • Example#1307 - fbsql_data_seek example
  • Example#1308 - fbsql_create_clob example
  • Example#1309 - fbsql_errno Example
  • Example#1310 - fbsql_error Example
  • Example#1311 - fbsql_fetch_array example
  • Example#1312 - fbsql_fetch_assoc example
  • Example#1313 - fbsql_fetch_field example
  • Example#1314 - fbsql_fetch_object example
  • Example#1315 - fbsql_field_name example
  • Example#1316 - fbsql_field_type example
  • Example#1317 - fbsql_list_dbs example
  • Example#1318 - fbsql_list_fields example
  • Example#1319 - fbsql_next_result example
  • Example#1320 - fbsql_num_rows example
  • Example#1321 - fbsql_query example
  • Example#1322 - fbsql_query example
  • Example#1323 - fbsql_read_blob example
  • Example#1324 - fbsql_read_clob example
  • Example#1325 - fbsql_table_name example
  • Example#1326 - Получение текущего режима автоподтверждения транзакций
  • Example#1327 - Установка режима автоподтверждения транзакции
  • Example#1328 - Binding PHP variables to a prepared statement
  • Example#1329 - Calling stored procedures with IN and OUT parameters
  • Example#1330 - Inserting a binary large object (BLOB) directly from a file
  • Example#1331 - Пример использования db2_client_info
  • Example#1332 - Закрытие соединения
  • Example#1333 - Retrieving an SQLSTATE value for a failed connection attempt
  • Example#1334 - Retrieving the error message returned by a failed connection attempt
  • Example#1335 - Creating a cataloged connection
  • Example#1336 - Creating an uncataloged connection
  • Example#1337 - Creating a connection with autocommit off by default
  • Example#1338 - i5/OS best performance
  • Example#1339 - Using trusted context
  • Example#1340 - Пример использования db2_escape_string
  • Example#1341 - Creating a table with db2_exec
  • Example#1342 - Executing a SELECT statement with a scrollable cursor
  • Example#1343 - Returning XML data as an SQL ResultSet
  • Example#1344 - Performing a "JOIN" with XML data
  • Example#1345 - Returning SQL data as part of a larger XML document
  • Example#1346 - Preparing and executing an SQL statement with parameter markers
  • Example#1347 - Calling a stored procedure with an OUT parameter
  • Example#1348 - Returning XML data as an SQL ResultSet
  • Example#1349 - Performing a "JOIN" with XML data
  • Example#1350 - Returning SQL data as part of a larger XML document
  • Example#1351 - Iterating through a forward-only cursor
  • Example#1352 - Retrieving specific rows with db2_fetch_array from a scrollable cursor
  • Example#1353 - Iterating through a forward-only cursor
  • Example#1354 - Retrieving specific rows with db2_fetch_assoc from a scrollable cursor
  • Example#1355 - Iterating through a forward-only cursor
  • Example#1356 - Retrieving specific rows with db2_fetch_both from a scrollable cursor
  • Example#1357 - A db2_fetch_object example
  • Example#1358 - Iterating through a result set
  • Example#1359 - i5/OS recommended alternatives to db2_fetch_row/db2_result
  • Example#1360 - Setting and retrieving parameters through a connection resource
  • Example#1361 - A db2_last_insert_id example
  • Example#1362 - Iterating through different types of data
  • Example#1363 - Calling a stored procedure that returns multiple result sets
  • Example#1364 - Получение количества полей в результирующем наборе
  • Example#1365 - Closing a persistent connection
  • Example#1366 - A db2_pconnect example
  • Example#1367 - Using trusted context
  • Example#1368 - Preparing and executing an SQL statement with parameter markers
  • Example#1369 - A db2_result example
  • Example#1370 - Откат операции DELETE
  • Example#1371 - A db2_server_info example
  • Example#1372 - Установка одного параметра для ресурса соединения
  • Example#1373 - Установка нескольких параметров для ресурса соединения
  • Example#1374 - Установка нескольких параметров с одним некорректным ключем
  • Example#1375 - Установка нескольких параметров с одним некорректным значением
  • Example#1376 - Setting multiple parameters with a connection resource and the wrong type
  • Example#1377 - Setting multiple parameters with the wrong resource
  • Example#1378 - Putting it all together
  • Example#1379 - Курсор i5/OS только для чтения
  • Example#1380 - Informix, затронутые строки
  • Example#1381 - Закрытие соединения с Informix
  • Example#1382 - Соединение с базой данных
  • Example#1383 - Пример использования ifx_do
  • Example#1384 - Пример использования ifx_errormsg
  • Example#1385 - Извлечение строк
  • Example#1386 - Свойства полей
  • Example#1387 - Имена и типы столбцов
  • Example#1388 - Извлечение значений sqlca.sqlerrd[x]
  • Example#1389 - Результаты запроса в виде таблицы HTML
  • Example#1390 - Пример использования ifx_num_fields
  • Example#1391 - Вывод всех строк таблицы "orders" в виде таблицы HTML
  • Example#1392 - Вставка значений в таблицу "catalog"
  • Example#1393 - Пример использования PassEnv для Ingres
  • Example#1394 - Простой пример Ingres
  • Example#1395 - ingres_charset - Get the installation character set
  • Example#1396 - Open a connection to an Ingres database
  • Example#1397 - Get cursor name for a query resource
  • Example#1398 - Get the last Ingres error number generated
  • Example#1399 - Get a message for the last error generated
  • Example#1400 - Get the last SQLSTATE error code generated
  • Example#1401 - Escape special characters for use in a query
  • Example#1402 - Fetch a row of result into an array
  • Example#1403 - Fetch a row into an associative array
  • Example#1404 - Fetch a row into an object
  • Example#1405 - Get the return value from a procedure call
  • Example#1406 - Fetch a row of result into an enumerated array
  • Example#1407 - Free a result resource
  • Example#1408 - Send a simple select
  • Example#1409 - Passing query parameters to ingres_query
  • Example#1410 - Inserting a BLOB with parameter types
  • Example#1411 - Position the cursor on the 3rd row
  • Example#1412 - Set date_format to ISO4
  • Example#1413 - Set timezone to HONG-KONG
  • Example#1414 - Issue a simple un-buffered select
  • Example#1415 - Passing query parameters to ingres_unbuffered_query
  • Example#1416 - Inserting a BLOB with parameter types
  • Example#1417 - Обзорный пример использования MaxDB
  • Example#1418 - Пример использования запроса SELECT INTO
  • Example#1419 - Пример использования процедур
  • Example#1420 - Объектно-ориентированный стиль
  • Example#1421 - Процедурный стиль
  • Example#1422 - Объектно-ориентированный стиль
  • Example#1423 - Процедурный стиль
  • Example#1424 - Объектно-ориентированный стиль
  • Example#1425 - Процедурный стиль
  • Example#1426 - Объектно-ориентированный стиль
  • Example#1427 - Процедурный стиль
  • Example#1428 - Объектно-ориентированный стиль
  • Example#1429 - Процедурный стиль
  • Example#1430 - maxdb_connect_errno sample
  • Example#1431 - maxdb_connect_error sample
  • Example#1432 - Объектно-ориентированный стиль
  • Example#1433 - Процедурный стиль
  • Example#1434 - Объектно-ориентированный стиль
  • Example#1435 - Процедурный стиль
  • Example#1436 - Процедурный стиль
  • Example#1437 - Объектно-ориентированный стиль
  • Example#1438 - Процедурный стиль
  • Example#1439 - Объектно-ориентированный стиль
  • Example#1440 - Процедурный стиль
  • Example#1441 - Объектно-ориентированный стиль
  • Example#1442 - Процедурный стиль
  • Example#1443 - Объектно-ориентированный стиль
  • Example#1444 - Процедурный стиль
  • Example#1445 - Объектно-ориентированный стиль
  • Example#1446 - Процедурный стиль
  • Example#1447 - Объектно-ориентированный стиль
  • Example#1448 - Процедурный стиль
  • Example#1449 - Объектно-ориентированный стиль
  • Example#1450 - Процедурный стиль
  • Example#1451 - Объектно-ориентированный стиль
  • Example#1452 - Процедурный стиль
  • Example#1453 - Объектно-ориентированный стиль
  • Example#1454 - Процедурный стиль
  • Example#1455 - Объектно-ориентированный стиль
  • Example#1456 - Процедурный стиль
  • Example#1457 - Объектно-ориентированный стиль
  • Example#1458 - Процедурный стиль
  • Example#1459 - Объектно-ориентированный стиль
  • Example#1460 - Процедурный стиль
  • Example#1461 - Объектно-ориентированный стиль
  • Example#1462 - Процедурный стиль
  • Example#1463 - maxdb_get_client_info
  • Example#1464 - maxdb_get_client_version
  • Example#1465 - Объектно-ориентированный стиль
  • Example#1466 - Процедурный стиль
  • Example#1467 - Объектно-ориентированный стиль
  • Example#1468 - Процедурный стиль
  • Example#1469 - Объектно-ориентированный стиль
  • Example#1470 - Процедурный стиль
  • Example#1471 - Объектно-ориентированный стиль
  • Example#1472 - Процедурный стиль
  • Example#1473 - Объектно-ориентированный стиль
  • Example#1474 - Процедурный стиль
  • Example#1475 - Объектно-ориентированный стиль
  • Example#1476 - Процедурный стиль
  • Example#1477 - Объектно-ориентированный стиль
  • Example#1478 - Процедурный стиль
  • Example#1479 - Объектно-ориентированный стиль
  • Example#1480 - Процедурный стиль
  • Example#1481 - Объектно-ориентированный стиль
  • Example#1482 - Процедурный стиль
  • Example#1483 - Объектно-ориентированный стиль
  • Example#1484 - Процедурный стиль
  • Example#1485 - Объектно-ориентированный стиль
  • Example#1486 - Процедурный стиль
  • Example#1487 - Объектно-ориентированный стиль
  • Example#1488 - Процедурный стиль
  • Example#1489 - Объектно-ориентированный стиль
  • Example#1490 - Процедурный стиль
  • Example#1491 - Объектно-ориентированный стиль
  • Example#1492 - Процедурный стиль
  • Example#1493 - Объектно-ориентированный стиль
  • Example#1494 - Процедурный стиль
  • Example#1495 - Процедурный стиль
  • Example#1496 - Объектно-ориентированный стиль
  • Example#1497 - Процедурный стиль
  • Example#1498 - Объектно-ориентированный стиль
  • Example#1499 - Процедурный стиль
  • Example#1500 - Объектно-ориентированный стиль
  • Example#1501 - Процедурный стиль
  • Example#1502 - Объектно-ориентированный стиль
  • Example#1503 - Процедурный стиль
  • Example#1504 - Объектно-ориентированный стиль
  • Example#1505 - Процедурный стиль
  • Example#1506 - Объектно-ориентированный стиль
  • Example#1507 - Процедурный стиль
  • Example#1508 - Процедурный стиль (SELECT INTO)
  • Example#1509 - Процедурный стиль (DB procedure)
  • Example#1510 - Объектно-ориентированный стиль (extended syntax)
  • Example#1511 - Объектно-ориентированный стиль
  • Example#1512 - Процедурный стиль
  • Example#1513 - Объектно-ориентированный стиль
  • Example#1514 - Процедурный стиль
  • Example#1515 - Объектно-ориентированный стиль
  • Example#1516 - Процедурный стиль
  • Example#1517 - Объектно-ориентированный стиль
  • Example#1518 - Процедурный стиль
  • Example#1519 - Объектно-ориентированный стиль
  • Example#1520 - Процедурный стиль
  • Example#1521 - Объектно-ориентированный стиль
  • Example#1522 - Процедурный стиль
  • Example#1523 - Объектно-ориентированный стиль
  • Example#1524 - Процедурный стиль
  • Example#1525 - Объектно-ориентированный стиль
  • Example#1526 - Процедурный стиль
  • Example#1527 - Объектно-ориентированный стиль
  • Example#1528 - Процедурный стиль
  • Example#1529 - Объектно-ориентированный стиль
  • Example#1530 - Процедурный стиль
  • Example#1531 - Объектно-ориентированный стиль
  • Example#1532 - Процедурный стиль
  • Example#1533 - Объектно-ориентированный стиль
  • Example#1534 - Процедурный стиль
  • Example#1535 - Объектно-ориентированный стиль
  • Example#1536 - Процедурный стиль
  • Example#1537 - Объектно-ориентированный стиль
  • Example#1538 - Процедурный стиль
  • Example#1539 - Объектно-ориентированный стиль
  • Example#1540 - Процедурный стиль
  • Example#1541 -
  • Example#1542 -
  • Example#1543 -
  • Example#1544 -
  • Example#1545 -
  • Example#1546 -
  • Example#1547 -
  • Example#1548 -
  • Example#1549 -
  • Example#1550 -
  • Example#1551 -
  • Example#1552 -
  • Example#1553 -
  • Example#1554 -
  • Example#1555 -
  • Example#1556 - Предпочтения чтения в URI подключения с синтаксисом строки запроса
  • Example#1557 - Устанавливаем предпочтения чтения с синтаксисом массива для наборов тегов
  • Example#1558 - Передача гарантий записи в запись
  • Example#1559 - Гарантии записи в строке подключения
  • Example#1560 - MongoDB::setWriteConcern и MongoCollection::setWriteConcern
  • Example#1561 - Неподтвержденные гарантии записи, сопровождаемые подтверждением записи
  • Example#1562 - Подтвержденные записи
  • Example#1563 - Записи, подтвержденные большинством
  • Example#1564 - Подтвержденные и журналируемые записи
  • Example#1565 - Подключение к MongoDB по SSL
  • Example#1566 - Подключение к MongoDB по SSL, проверяя подлинность сертификата:
  • Example#1567 - Подключение к MongoDB с клиентским сертификатом
  • Example#1568 - Аутентификация по сертификатам X.509
  • Example#1569 - Аутентификация в базе данных "admin"
  • Example#1570 - Аутентификация в прочих базах данных
  • Example#1571 - Списки ReplicaSet
  • Example#1572 - Неправильное дублирование имени набора реплик
  • Example#1573 - Правильное использование двух имен набора реплик
  • Example#1574 -
  • Example#1575 -
  • Example#1576 -
  • Example#1577 -
  • Example#1578 -
  • Example#1579 -
  • Example#1580 - Наследование предпочтений чтения от уровня базы данных до курсора
  • Example#1581 -
  • Example#1582 -
  • Example#1583 -
  • Example#1584 -
  • Example#1585 -
  • Example#1586 -
  • Example#1587 -
  • Example#1588 - Типичное использование MongoClient
  • Example#1589 - Пример использования MongoClient::close
  • Example#1590 - Пример набора реплик MongoClient::__construct
  • Example#1591 - Подключение к доменному сокету
  • Example#1592 - Пример аутентификации MongoClient::__construct
  • Example#1593 - Пример предпочтения чтения в MongoClient::__construct
  • Example#1594 - Пример опций MongoClient::__construct
  • Example#1595 - Пример предпочтения чтения в MongoClient::__construct
  • Example#1596 - Пример использования MongoClient::getConnections
  • Example#1597 - Пример возвращаемого значения MongoClient::getReadPreference
  • Example#1598 - Пример возвращаемого значения MongoClient::getWriteConcern
  • Example#1599 - Пример использования MongoClient::killCursor
  • Example#1600 - Пример использования MongoClient::listDBs
  • Example#1601 - Пример использования MongoClient::selectCollection
  • Example#1602 - Пример синтаксиса массива набора тегов MongoClient::setReadPreference
  • Example#1603 - Пример использования MongoClient::setWriteConcern
  • Example#1604 - Выбор базы данных
  • Example#1605 - Пример использования MongoDB::command "distinct"
  • Example#1606 - Пример использования MongoDB::command "distinct"
  • Example#1607 - Пример использования MongoDB::command MapReduce
  • Example#1608 - Пример использования MongoDB::command "geoNear"
  • Example#1609 - Пример использования MongoDB::createCollection ограниченной коллекции
  • Example#1610 - Пример использования MongoDB::createDBRef
  • Example#1611 - Пример использования MongoDB::createDBRef
  • Example#1612 - MongoDB::drop example
  • Example#1613 - Пристой пример использования MongoDB::execute
  • Example#1614 - Пример использования параметра MongoDB::execute
  • Example#1615 - Пример области
  • Example#1616 - Пример использования MongoDB::getCollectionInfo
  • Example#1617 - Пример использования MongoDB::getCollectionNames
  • Example#1618 - Пример использования MongoDB::getDBRef
  • Example#1619 - µПример использования MongoDB::getGridFS
  • Example#1620 - Пример возвращаемого значения MongoDB::getReadPreference
  • Example#1621 - Пример возвращаемого значения MongoDB::getWriteConcern
  • Example#1622 - Пример использования MongoDB::lastError, при ошибке NULL
  • Example#1623 - Пример использования MongoDB::lastError, при дублировании ключа
  • Example#1624 - Пример использования MongoDB::listCollections
  • Example#1625 - Пример использования MongoDB::repair
  • Example#1626 - Пример использования синтаксиса массива набора тегов MongoDB::setReadPreference
  • Example#1627 - Пример использования MongoDB::setWriteConcern
  • Example#1628 - Пример использования MongoCollection::aggregate
  • Example#1629 - Пример использования MongoCollection::aggregate
  • Example#1630 - Пример использования MongoCollection::aggregate
  • Example#1631 - MongoCollection::aggregateс параметрами команды
  • Example#1632 - Пример использования MongoCollection::aggregateCursor
  • Example#1633 - Пример использования MongoCollection::aggregateCursor с другим начальным размером пакета
  • Example#1634 - Пример использования MongoCollection::batchInsert
  • Example#1635 - Пример использования MongoCollection::batchInsert с игнорированием ошибок
  • Example#1636 - Пример использования MongoCollection::count
  • Example#1637 - Пример использования MongoCollection::createDBRef
  • Example#1638 - Пример использования MongoCollection::createIndex
  • Example#1639 - Геопространственная индексация
  • Example#1640 - Пример удаления дубликатов
  • Example#1641 - Пример использования MongoCollection::deleteIndex
  • Example#1642 - Пример использования MongoCollection::deleteIndexes
  • Example#1643 - Пример использования MongoCollection::distinct
  • Example#1644 - Пример использования MongoCollection::distinct с вложенным документом
  • Example#1645 - Пример использования MongoCollection::drop
  • Example#1646 - Пример использования MongoCollection::ensureIndex
  • Example#1647 - Геопространственная индексация
  • Example#1648 - Пример удаления дубликатов
  • Example#1649 - Пример использования MongoCollection::find
  • Example#1650 - Пример использования MongoCollection::find
  • Example#1651 - Пример использования MongoCollection::find совместно с $where
  • Example#1652 - Пример использования MongoCollection::find совместно с $in
  • Example#1653 - Получение результатов в виде массива
  • Example#1654 - Пример использования MongoCollection::findAndModify
  • Example#1655 - Пример обработки ошибок MongoCollection::findAndModify
  • Example#1656 - MongoCollection::findOne документ по его идентификатору.
  • Example#1657 - MongoCollection::findOne документ по какому-либо условию.
  • Example#1658 - Пример использования MongoCollection::getDBRef
  • Example#1659 - Пример использования MongoCollection::getIndexInfo
  • Example#1660 - Пример использования MongoCollection::getName
  • Example#1661 - Пример возвращаемого значения MongoCollection::getReadPreference
  • Example#1662 - Пример возвращаемого значения MongoCollection::getWriteConcern
  • Example#1663 - Пример использования MongoCollection::group
  • Example#1664 - Пример использования MongoCollection::group
  • Example#1665 - Передача функции keys
  • Example#1666 - Пример использования MongoCollection::insert _id
  • Example#1667 - Пример использования MongoCollection::insert c подтверждением записи
  • Example#1668 - Пример использования MongoCollection::parallelCollectionScan
  • Example#1669 - Пример использования MongoCollection::remove с опцией justOne
  • Example#1670 - Пример использования MongoCollection::save
  • Example#1671 - Пример синтаксиса массива набора тегов MongoCollection::setReadPreference
  • Example#1672 - Пример использования MongoDB::setWriteConcern
  • Example#1673 - Пример использования MongoCollection::toIndexString
  • Example#1674 - Пример использования MongoCollection::__toString
  • Example#1675 - Пример использования MongoCollection::update
  • Example#1676 - Пример использования слияния MongoCollection::update
  • Example#1677 - Пример использования множественного MongoCollection::update
  • Example#1678 - Пример использования MongoCursor
  • Example#1679 - Итерации MongoCursor
  • Example#1680 - Добавление параметров в MongoCursor
  • Example#1681 - Пример использования MongoCursor::addOption для добавления комментария
  • Example#1682 - Пример использования MongoCursor::addOption
  • Example#1683 - Пример использования MongoCursor::awaitData
  • Example#1684 - Пример использования MongoCursor::batchSize в комбинации с MongoCursor::limit
  • Example#1685 - Пример использования MongoCursor::count
  • Example#1686 - Пример использования MongoCursor::doQuery
  • Example#1687 - Пример использования MongoCursor::explain
  • Example#1688 - Пример возвращаемого значения MongoCursor::getReadPreference
  • Example#1689 - Пример использования MongoCursor::info
  • Example#1690 - Пример использования MongoCursor::maxTimeMS
  • Example#1691 - Пример использования MongoCursor::setFlag
  • Example#1692 - Пример синтаксиса MongoCursor::setReadPreference массива набора тегов
  • Example#1693 - Пример использования MongoCursor::slaveOkay
  • Example#1694 - Пример использования MongoCursor::sort
  • Example#1695 - Пример использования MongoCursor::tailable
  • Example#1696 - Пример использования MongoCursor::timeout
  • Example#1697 - Добавление параметров в MongoCommandCursor
  • Example#1698 - MongoCommandCursor::batchSize
  • Example#1699 - Пример использования MongoCommandCursor
  • Example#1700 - MongoCommandCursor::createFromDocument
  • Example#1701 - Пример возвращаемого значения MongoCommandCursor::getReadPreference
  • Example#1702 - Пример использования MongoCommandCursor::info
  • Example#1703 - MongoCommandCursor::rewind
  • Example#1704 - MongoCommandCursor::setReadPreference пример синтаксиса массива набора тегов
  • Example#1705 - Пример использования MongoCommandCursor::timeout
  • Example#1706 - Пример использования MongoId::__construct
  • Example#1707 - Пример параметра
  • Example#1708 - Пример использования MongoId::__toString
  • Example#1709 - Пример использования MongoCode::__construct
  • Example#1710 - Использование MongoCode с $where
  • Example#1711 - Пример использования MongoCode::__toString
  • Example#1712 - Сохранение даты с MongoDate
  • Example#1713 - Пример использования MongoDate::__construct
  • Example#1714 - Пример использования MongoDate::toDateTime
  • Example#1715 - Шаблон регулярного выражения
  • Example#1716 - Пример использования MongoRegex::__construct
  • Example#1717 - Пример использования MongoRegex::__toString
  • Example#1718 - Связывание документов
  • Example#1719 - Создание MongoDBRef связи
  • Example#1720 - Пример MongoDBRef::create
  • Example#1721 - MongoCollection::createDBRef пример
  • Example#1722 - Пример использования MongoGridFS::findOne
  • Example#1723 - MongoGridFS::storeBytes с дополнительными метаданными
  • Example#1724 - MongoGridFS::storeFile с дополнительными метаданными
  • Example#1725 - Пример HTML-формы для MongoGridFS::storeUpload
  • Example#1726 - Пример использования MongoGridFSFile::getBytes
  • Example#1727 - Пример использования MongoGridFSFile::getResource
  • Example#1728 - Пример использования MongoGridFSFile::write
  • Example#1729 - Пример MongoWriteBatch
  • Example#1730 - Пример использования MongoWriteBatch::add
  • Example#1731 - Пример использования MongoWriteBatch::add
  • Example#1732 - Пример использования MongoWriteBatch::add
  • Example#1733 - Пример использования MongoWriteBatch::add
  • Example#1734 - Пример использования MongoWriteBatch::add
  • Example#1735 - Пример использования MongoWriteBatch::add
  • Example#1736 - Пример использования MongoLog::setCallback
  • Example#1737 - Изменение размера пула
  • Example#1738 - Пример использования Mongo::setPoolSize
  • Example#1739 - Изменение размера пула
  • Example#1740 - Пример использования Mongo::setPoolSize
  • Example#1741 - Пример использования MongoResultException::getDocument
  • Example#1742 - Перехватываем MongoDuplicateKeyException
  • Example#1743 - Отлавливаем MongoProtocolException
  • Example#1744 - Простой пример использования MongoDB\Driver\Manager::__construct
  • Example#1745 - Примеры использования MongoDB\Driver\Manager::__construct
  • Example#1746 - Пример использования MongoDB\Driver\Manager::executeBulkWrite
  • Example#1747 - Пример выполнения MongoDB\Driver\Manager::executeCommand с командой, возвращающей одиночный документ
  • Example#1748 - Пример выполнения MongoDB\Driver\Manager::executeCommand с командой, возвращающей курсор
  • Example#1749 - Ограничение времени выполнения запроса
  • Example#1750 - Пример выполнения MongoDB\Driver\Manager::executeQuery
  • Example#1751 - Ограничение времени выполнения запроса
  • Example#1752 - Пример использования MongoDB\Driver\Manager::getReadConcern
  • Example#1753 - Пример выполнения MongoDB\Driver\Manager::getReadPreference
  • Example#1754 - Пример выполнения MongoDB\Driver\Manager::getServers
  • Example#1755 - Пример выполнения MongoDB\Driver\Manager::getWriteConcern
  • Example#1756 - Использование MongoDB\Driver\Command для предоставления помощника по созданию коллекций
  • Example#1757 - Пример использования MongoDB\Driver\Command::__construct
  • Example#1758 - Пример использования MongoDB\Driver\Command::__construct
  • Example#1759 - Пример использования MongoDB\Driver\Query::__construct
  • Example#1760 - Смешанные операции группируются по типу
  • Example#1761 - Отсортированные операции записи, вызывающие ошибку
  • Example#1762 - Пример выполнения MongoDB\Driver\BulkWrite::__construct
  • Example#1763 - Пример выполнения MongoDB\Driver\BulkWrite::count
  • Example#1764 - Пример выполнения MongoDB\Driver\BulkWrite::delete
  • Example#1765 - MongoDB\Driver\BulkWrite::insert example
  • Example#1766 - Пример выполнения MongoDB\Driver\BulkWrite::update
  • Example#1767 - MongoDB\Driver\WriteConcern::bsonSerialize с большинством гарантии записи
  • Example#1768 - MongoDB\Driver\WriteConcern::bsonSerialize с тайм-аутом и журналом
  • Example#1769 - Пример выполнения MongoDB\Driver\WriteConcern::__construct
  • Example#1770 - Пример выполнения MongoDB\Driver\WriteConcern::getJournal
  • Example#1771 - Пример выполнения MongoDB\Driver\WriteConcern::getW
  • Example#1772 - Пример использования MongoDB\Driver\WriteConcern::getWtimeout
  • Example#1773 - MongoDB\Driver\WriteConcern::isDefault example
  • Example#1774 - Пример использования MongoDB\Driver\ReadPreference::bsonSerialize с первичным предпочтениям чтения
  • Example#1775 - Пример использования MongoDB\Driver\ReadPreference::bsonSerialize с вторичным предпочтением чтения и наборами тегов
  • Example#1776 - Пример использования MongoDB\Driver\ReadPreference::bsonSerialize с вторичным предпочтением чтения и максимальным staleness
  • Example#1777 - Пример выполнения MongoDB\Driver\ReadPreference::__construct
  • Example#1778 - Пример выполнения MongoDB\Driver\ReadPreference::getMaxStalenessSeconds
  • Example#1779 - Пример выполнения MongoDB\Driver\ReadPreference::getMode
  • Example#1780 - MongoDB\Driver\ReadPreference::getModeString example
  • Example#1781 - Пример выполнения MongoDB\Driver\ReadPreference::getTagSets
  • Example#1782 - Пример использования MongoDB\Driver\ReadConcern::bsonSerialize с пустыми гарантиями чтения
  • Example#1783 - Пример использования MongoDB\Driver\ReadConcern::bsonSerialize с локальными гарантиями чтения
  • Example#1784 - Пример использования MongoDB\Driver\ReadConcern::__construct
  • Example#1785 - Пример использования MongoDB\Driver\ReadConcern::getLevel
  • Example#1786 - Пример использования MongoDB\Driver\ReadConcern::isDefault
  • Example#1787 - Reading a result set
  • Example#1788 - Чтение набора результатов для хвостового курсора
  • Example#1789 - Пример выполнения MongoDB\Driver\Cursor::getId
  • Example#1790 - Пример выполнения MongoDB\Driver\Cursor::getServer
  • Example#1791 - Пример выполнения MongoDB\Driver\Cursor::isDead
  • Example#1792 - Пример выполнения MongoDB\Driver\Cursor::setTypeMap
  • Example#1793 - Пример использования MongoDB\Driver\Cursor::toArray
  • Example#1794 - Пример выполнения MongoDB\Driver\CursorId::__toString
  • Example#1795 - Пример использования MongoDB\Driver\Server::getHost
  • Example#1796 - Пример использования MongoDB\Driver\Server::getInfo
  • Example#1797 - Пример использования MongoDB\Driver\Server::getLatency
  • Example#1798 - Пример использования MongoDB\Driver\Server::getPort
  • Example#1799 - Пример использования MongoDB\Driver\WriteConcernError::getCode
  • Example#1800 - Пример использования MongoDB\Driver\WriteConcernError::getInfo
  • Example#1801 - Пример использования MongoDB\Driver\WriteConcernError::getMessage
  • Example#1802 - Пример использования MongoDB\Driver\WriteError::getCode
  • Example#1803 - Пример использования MongoDB\Driver\WriteError::getIndex
  • Example#1804 - Пример использования MongoDB\Driver\WriteError::getMessage
  • Example#1805 - Пример использования MongoDB\Driver\WriteResult::getDeletedCount
  • Example#1806 - Пример использования MongoDB\Driver\WriteResult::getInsertedCount
  • Example#1807 - Пример использования MongoDB\Driver\WriteResult::getMatchedCount
  • Example#1808 - Пример использования MongoDB\Driver\WriteResult::getModifiedCount
  • Example#1809 - Пример использования MongoDB\Driver\WriteResult::getServer
  • Example#1810 - Пример использования MongoDB\Driver\WriteResult::getUpsertedCount
  • Example#1811 - Пример использования MongoDB\Driver\WriteResult::getUpsertedIds
  • Example#1812 - Пример использования MongoDB\Driver\WriteResult::getWriteConcernError
  • Example#1813 - Пример использования MongoDB\Driver\WriteResult::getWriteErrors с одной ошибкой
  • Example#1814 - Пример использования MongoDB\Driver\WriteResult::getWriteErrors с несколькими ошибками
  • Example#1815 - Пример использования MongoDB\Driver\WriteResult::isAcknowledged с подтвержденными гарантиями записи
  • Example#1816 - Пример использования MongoDB\Driver\WriteResult::isAcknowledged с неподтвержденными гарантиями записи
  • Example#1817 - Пример использования MongoDB\BSON\fromJSON
  • Example#1818 - Пример использования MongoDB\BSON\fromPHP
  • Example#1819 - Пример использования MongoDB\BSON\toCanonicalExtendedJSON
  • Example#1820 - Пример использования MongoDB\BSON\toJSON
  • Example#1821 - Пример использования MongoDB\BSON\toPHP
  • Example#1822 - Пример использования MongoDB\BSON\toRelaxedExtendedJSON
  • Example#1823 - Пример использования MongoDB\BSON\Binary::__construct
  • Example#1824 - Пример использования MongoDB\BSON\Binary::getData
  • Example#1825 - Пример использования MongoDB\BSON\Binary::getType
  • Example#1826 - Пример использования MongoDB\BSON\Binary::__toString
  • Example#1827 - Пример использования MongoDB\BSON\Decimal128::__construct
  • Example#1828 - Пример использования MongoDB\BSON\Decimal128::__toString
  • Example#1829 - Пример использования MongoDB\BSON\Javascript::__construct
  • Example#1830 - Пример выполнения MongoDB\BSON\Javascript::getCode
  • Example#1831 - Пример выполнения MongoDB\BSON\Javascript::getScope
  • Example#1832 - Пример выполнения MongoDB\BSON\Javascript::__toString
  • Example#1833 - Пример использования MongoDB\BSON\MaxKey::__construct
  • Example#1834 - Пример использования MongoDB\BSON\MinKey::__construct
  • Example#1835 - Пример использования MongoDB\BSON\ObjectId::__construct
  • Example#1836 - Пример использования MongoDB\BSON\ObjectId::getTimestamp
  • Example#1837 - Пример использования MongoDB\BSON\ObjectId::__toString
  • Example#1838 - Пример использования MongoDB\BSON\Regex::__construct
  • Example#1839 - Пример использования MongoDB\BSON\Regex::getFlags
  • Example#1840 - Пример использования MongoDB\BSON\Regex::getPattern
  • Example#1841 - Пример использования MongoDB\BSON\Regex::__toString
  • Example#1842 - Пример использования MongoDB\BSON\Timestamp::__construct
  • Example#1843 - Пример использования MongoDB\BSON\Timestamp::__toString
  • Example#1844 - Пример использования MongoDB\BSON\UTCDateTime::__construct
  • Example#1845 - Пример использования MongoDB\BSON\UTCDatetime::toDateTime
  • Example#1846 - Пример использования MongoDB\BSON\UTCDateTime::__toString
  • Example#1847 - MongoDB\BSON\Serializable::bsonSerialize возвращение ассоциативного массива для корневого документа
  • Example#1848 - MongoDB\BSON\Serializable::bsonSerialize возвращение последовательного массива для корневого документа
  • Example#1849 - MongoDB\BSON\Serializable::bsonSerialize возвращение ассоциативного массива для поля документа
  • Example#1850 - MongoDB\BSON\Serializable::bsonSerialize возвращение последовательного массива для поля документа
  • Example#1851 - Пример использования MongoDB\BSON\Unserializable::bsonUnserialize
  • Example#1852 - Пример использования MongoDB\BSON\Int64::__toString
  • Example#1853 - Пример использования MongoDB\Driver\Exception\WriteException::getWriteResult
  • Example#1854 - mSQL пример использования
  • Example#1855 - msql_fetch_array example
  • Example#1856 - msql_fetch_object example
  • Example#1857 - msql_fetch_row example
  • Example#1858 - msql_query example
  • Example#1859 - Пример mssql_bind
  • Example#1860 - Пример mssql_close
  • Example#1861 - Пример использования mssql_connect
  • Example#1862 - Пример mssql_data_seek
  • Example#1863 - Пример mssql_execute
  • Example#1864 - mssql_fetch_array example
  • Example#1865 - mssql_fetch_assoc example
  • Example#1866 - mssql_fetch_batch example
  • Example#1867 - Пример mssql_fetch_field
  • Example#1868 - mssql_fetch_object example
  • Example#1869 - mssql_fetch_row example
  • Example#1870 - Пример mssql_field_length
  • Example#1871 - Пример mssql_field_name
  • Example#1872 - Использование mssql_field_seek для mssql_fetch_field
  • Example#1873 - Пример mssql_field_type
  • Example#1874 - Пример mssql_free_result
  • Example#1875 - Пример mssql_free_statement
  • Example#1876 - Пример mssql_get_last_message
  • Example#1877 - Пример mssql_guid_string
  • Example#1878 - mssql_init example
  • Example#1879 - Пример mssql_min_error_severity
  • Example#1880 - Пример mssql_min_message_severity
  • Example#1881 - mssql_next_result example
  • Example#1882 - Пример mssql_num_fields
  • Example#1883 - Пример mssql_num_rows
  • Example#1884 - Использование mssql_pconnect с параметром new_link
  • Example#1885 - mssql_query example
  • Example#1886 - mssql_result example
  • Example#1887 - Faster alternative to above example
  • Example#1888 - Пример mssql_rows_affected
  • Example#1889 - mssql_select_db example
  • Example#1890 - Escaping the database name with square brackets
  • Example#1891 - Сравнение трех MySQL API
  • Example#1892 - Комманды конфигурирования для mysqlnd и libmysqlclient
  • Example#1893 - Пример небуферизированного запроса: mysqli
  • Example#1894 - Пример небуферизированного запроса: pdo_mysql
  • Example#1895 - Пример небуферизированного запроса: mysql
  • Example#1896 - Проблемы установки кодировки символов с помощью SQL
  • Example#1897 - Пример установки кодировки символов: mysqli
  • Example#1898 - Пример установки кодировки символов: pdo_mysql
  • Example#1899 - Пример установки кодировки символов: mysql
  • Example#1900 - Простота перехода со старого расширения mysql
  • Example#1901 - Объектно-ориентированный и процедурный интерфейсы
  • Example#1902 - Плохой стиль программирования
  • Example#1903 - Специальное назначение localhost
  • Example#1904 - Задание значений по умолчанию
  • Example#1905 - Подключение к MySQL
  • Example#1906 - Навигация по строкам буферизованной результирующей таблицы
  • Example#1907 - Навигация по строкам небуферизованной результирующей таблицы
  • Example#1908 - Текстовый протокол по умолчанию возвращает строки
  • Example#1909 - Получение исходных типов данных в приложении
  • Example#1910 - Первый этап: подготовка
  • Example#1911 - Второй этап: привязка параметров и выполнение
  • Example#1912 - Выражение INSERT один раз подготавливается, а затем многократно выполняется
  • Example#1913 - Меньше обменов данными при использовании мультивставок SQL
  • Example#1914 - Исходные типы данных
  • Example#1915 - Привязка переменных к результату запроса
  • Example#1916 - Использование mysqli_result для выборки результатов запроса
  • Example#1917 - Буферизация результирующего набора для удобства чтения данных
  • Example#1918 - Вызов хранимой процедуры
  • Example#1919 - Использование переменных сессии
  • Example#1920 - Извлечение результатов работы хранимой процедуры
  • Example#1921 - Хранимые процедуры и подготавливаемые запросы
  • Example#1922 - Хранимые процедуры и подготавливаемые запросы с использованием привязки результатов
  • Example#1923 - Множественные запросы
  • Example#1924 - SQL-инъекция
  • Example#1925 - Установка режима автофиксации средствами SQL и функциями API
  • Example#1926 - Фиксация и откат
  • Example#1927 - Доступ к метаданным результирующей таблицы
  • Example#1928 - Метаданные подготовленных запросов
  • Example#1929 - Обзорный пример работы с расширением MySQLi
  • Example#1930 - Пример использования $mysqli->affected_rows
  • Example#1931 - Пример использования mysqli::autocommit
  • Example#1932 - Пример использования $mysqli->begin_transaction
  • Example#1933 - Пример использования mysqli::change_user
  • Example#1934 - Пример использования mysqli::character_set_name
  • Example#1935 - Пример использования mysqli::commit
  • Example#1936 - Пример использования $mysqli->connect_errno
  • Example#1937 - Пример использования $mysqli->connect_error
  • Example#1938 - Пример использования mysqli::__construct
  • Example#1939 - Генерация файла трассировки
  • Example#1940 - Пример использования $mysqli->errno
  • Example#1941 - Пример использования $mysqli->error_list
  • Example#1942 - Пример с $mysqli->error
  • Example#1943 - Пример использования $mysqli->field_count
  • Example#1944 - Пример использования mysqli::get_charset
  • Example#1945 - mysqli_get_client_info
  • Example#1946 - mysqli_get_client_version
  • Example#1947 - Пример использования mysqli_get_connection_stats
  • Example#1948 - Пример использования $mysqli->host_info
  • Example#1949 - Пример использования $mysqli->protocol_version
  • Example#1950 - Пример использования $mysqli->server_info
  • Example#1951 - Пример использования $mysqli->server_version
  • Example#1952 - Пример использования $mysqli->info
  • Example#1953 - Пример функции $mysqli->insert_id
  • Example#1954 - Пример использования mysqli::kill
  • Example#1955 - Пример использования mysqli::multi_query
  • Example#1956 - Пример использования mysqli::ping
  • Example#1957 - Пример использования mysqli_poll
  • Example#1958 - Пример использования mysqli::prepare
  • Example#1959 - Пример использования mysqli::query
  • Example#1960 - Пример использования mysqli::real_connect
  • Example#1961 - Пример использования mysqli::real_escape_string
  • Example#1962 - Пример использования mysqli::rollback
  • Example#1963 - Пример использования mysqli::select_db
  • Example#1964 - Пример использования mysqli::set_charset
  • Example#1965 - Пример использования mysqli::set_local_infile_handler
  • Example#1966 - Пример использования $mysqli->sqlstate
  • Example#1967 - Пример использования mysqli::stat
  • Example#1968 - Пример использования $mysqli->thread_id
  • Example#1969 - Пример использования mysqli::use_result
  • Example#1970 - Пример использования $mysqli->warning_count
  • Example#1971 - Объектно-ориентированный стиль
  • Example#1972 - Процедурный стиль
  • Example#1973 - Объектно-ориентированный стиль
  • Example#1974 - Процедурный стиль
  • Example#1975 - Объектно-ориентированный стиль
  • Example#1976 - Процедурный стиль
  • Example#1977 - Объектно-ориентированный стиль
  • Example#1978 - Процедурный стиль
  • Example#1979 - Объектно-ориентированный стиль
  • Example#1980 - Процедурный стиль
  • Example#1981 - Объектно-ориентированный стиль
  • Example#1982 - Процедурный стиль
  • Example#1983 - Объектно-ориентированный стиль
  • Example#1984 - Процедурный стиль
  • Example#1985 - Объектно-ориентированный стиль
  • Example#1986 - Процедурный стиль
  • Example#1987 - Объектно-ориентированный стиль
  • Example#1988 - Процедурный стиль
  • Example#1989 - Объектно-ориентированный стиль
  • Example#1990 - Процедурный стиль
  • Example#1991 - Объектно-ориентированный стиль
  • Example#1992 - Процедурный стиль
  • Example#1993 - Объектно-ориентированный стиль
  • Example#1994 - Процедурный стиль
  • Example#1995 - Объектно-ориентированный стиль
  • Example#1996 - Процедурный стиль
  • Example#1997 - Объектно-ориентированный стиль
  • Example#1998 - Процедурный стиль
  • Example#1999 - Объектно-ориентированный стиль
  • Example#2000 - Объектно-ориентированный стиль
  • Example#2001 - Процедурный стиль
  • Example#2002 - Объектно-ориентированный стиль
  • Example#2003 - Процедурный стиль
  • Example#2004 - Объектно-ориентированный стиль
  • Example#2005 - Процедурный стиль
  • Example#2006 - Объектно-ориентированный стиль
  • Example#2007 - Процедурный стиль
  • Example#2008 - Объектно-ориентированный стиль
  • Example#2009 - Процедурный стиль
  • Example#2010 - Объектно-ориентированный стиль
  • Example#2011 - Процедурный стиль
  • Example#2012 - Пример использования mysqli_result с использованием класса iterator
  • Example#2013 - Объектно-ориентированный стиль
  • Example#2014 - Процедурный стиль
  • Example#2015 - Объектно-ориентированный стиль
  • Example#2016 - Процедурный стиль
  • Example#2017 - Объектно-ориентированный стиль
  • Example#2018 - Процедурный стиль
  • Example#2019 - Объектно-ориентированный стиль
  • Example#2020 - Процедурный стиль
  • Example#2021 - Объектно-ориентированный стиль
  • Example#2022 - Процедурный стиль
  • Example#2023 - Объектно-ориентированный стиль
  • Example#2024 - Процедурный стиль
  • Example#2025 - Объектно-ориентированный стиль
  • Example#2026 - Процедурный стиль
  • Example#2027 - Объектно-ориентированный стиль
  • Example#2028 - Процедурный стиль
  • Example#2029 - Объектно-ориентированный стиль
  • Example#2030 - Процедурный стиль
  • Example#2031 - Объектно-ориентированный стиль
  • Example#2032 - Процедурный стиль
  • Example#2033 - Пример использования mysqli_connect
  • Example#2034 - Пример использования mysqli_get_client_stats
  • Example#2035 - Подключение к серверу MySQL
  • Example#2036 - Создание схемы и коллекции на сервере MySQL
  • Example#2037 - Хранение и получение данных
  • Example#2038 - Извлечение и итерация нескольких документов
  • Example#2039 - Пример использования mysql_xdevapi\Expression
  • Example#2040 - Примеры URI
  • Example#2041 - Пример использования mysql_xdevapi\getSession
  • Example#2042 - Пример использования mysql_xdevapi\RowResult::getWarnings
  • Example#2043 - Пример использования mysql_xdevapi\RowResult::getWarningsCount
  • Example#2044 - mysql_xdevapi\Client::__construct example
  • Example#2045 - Пример использования mysql_xdevapi\Collection::add
  • Example#2046 - Пример использования mysql_xdevapi\Collection::addOrReplaceOne
  • Example#2047 - Пример использования mysql_xdevapi\Collection::getOne
  • Example#2048 - Пример использования mysql_xdevapi\Collection::count
  • Example#2049 - Пример использования mysql_xdevapi\Collection::createIndex
  • Example#2050 - mysql_xdevapi\Collection::dropIndex example
  • Example#2051 - Пример использования mysql_xdevapi\Collection::existsInDatabase
  • Example#2052 - mysql_xdevapi\Collection::find example
  • Example#2053 - Пример использования mysql_xdevapi\Collection::getName
  • Example#2054 - Пример использования mysql_xdevapi\Collection::getOne
  • Example#2055 - mysql_xdevapi\Collection::getSchema example
  • Example#2056 - mysql_xdevapi\Collection::getSession example
  • Example#2057 - mysql_xdevapi\Collection::modify example
  • Example#2058 - Пример использования mysql_xdevapi\Collection::remove
  • Example#2059 - Пример использования mysql_xdevapi\Collection::removeOne
  • Example#2060 - Пример использования mysql_xdevapi\Collection::replaceOne
  • Example#2061 - Пример использования mysql_xdevapi\CollectionAdd::__construct
  • Example#2062 - Пример использования mysql_xdevapi\CollectionAdd::execute
  • Example#2063 - Пример использования mysql_xdevapi\CollectionFind::bind
  • Example#2064 - Пример использования CollectionFind
  • Example#2065 - Пример использования CollectionFind
  • Example#2066 - Пример использования mysql_xdevapi\CollectionFind::fields
  • Example#2067 - Пример использования mysql_xdevapi\CollectionFind::groupBy
  • Example#2068 - Пример использования mysql_xdevapi\CollectionFind::having
  • Example#2069 - Пример использования mysql_xdevapi\CollectionFind::limit
  • Example#2070 - Пример использования mysql_xdevapi\CollectionFind::lockExclusive
  • Example#2071 - Пример использования mysql_xdevapi\CollectionFind::lockShared
  • Example#2072 - Пример использования mysql_xdevapi\CollectionFind::offset
  • Example#2073 - Пример использования mysql_xdevapi\CollectionFind::sort
  • Example#2074 - Пример использования mysql_xdevapi\CollectionModify::arrayAppend
  • Example#2075 - Пример использования mysql_xdevapi\CollectionModify::arrayInsert
  • Example#2076 - Пример использования mysql_xdevapi\CollectionModify::bind
  • Example#2077 - Пример использования mysql_xdevapi\CollectionModify::__construct
  • Example#2078 - Пример использования mysql_xdevapi\CollectionModify::execute
  • Example#2079 - Пример использования mysql_xdevapi\CollectionModify::limit
  • Example#2080 - Пример использования mysql_xdevapi\CollectionModify::patch
  • Example#2081 - Пример использования mysql_xdevapi\CollectionModify::replace
  • Example#2082 - Пример использования mysql_xdevapi\CollectionModify::set
  • Example#2083 - Пример использования mysql_xdevapi\CollectionModify::skip
  • Example#2084 - Пример использования mysql_xdevapi\CollectionModify::sort
  • Example#2085 - Пример использования mysql_xdevapi\CollectionModify::unset
  • Example#2086 - Пример использования mysql_xdevapi\CollectionRemove::bind
  • Example#2087 - Пример использования mysql_xdevapi\Collection::remove
  • Example#2088 - Пример использования mysql_xdevapi\CollectionRemove::execute
  • Example#2089 - Пример использования mysql_xdevapi\CollectionRemove::limit
  • Example#2090 - Пример использования mysql_xdevapi\CollectionRemove::sort
  • Example#2091 - Пример использования mysql_xdevapi\ColumnResult::__construct
  • Example#2092 - Пример использования mysql_xdevapi\ColumnResult::getCharacterSetName
  • Example#2093 - Пример использования mysql_xdevapi\ColumnResult::getCollationName
  • Example#2094 - Пример использования mysql_xdevapi\ColumnResult::getColumnLabel
  • Example#2095 - Пример использования mysql_xdevapi\ColumnResult::getColumnName
  • Example#2096 - Пример использования mysql_xdevapi\ColumnResult::getFractionalDigits
  • Example#2097 - Пример использования mysql_xdevapi\ColumnResult::getLength
  • Example#2098 - Пример использования mysql_xdevapi\ColumnResult::getSchemaName
  • Example#2099 - Пример использования mysql_xdevapi\ColumnResult::getTableLabel
  • Example#2100 - Пример использования mysql_xdevapi\ColumnResult::getTableName
  • Example#2101 - Пример использования mysql_xdevapi\ColumnResult::getType
  • Example#2102 - Пример использования mysql_xdevapi\ColumnResult::isNumberSigned
  • Example#2103 - Пример использования mysql_xdevapi\ColumnResult::isPadded
  • Example#2104 - Пример использования mysql_xdevapi\CrudOperationBindable::bind
  • Example#2105 - mysql_xdevapi\CrudOperationLimitable::limit example
  • Example#2106 - mysql_xdevapi\CrudOperationSkippable::skip example
  • Example#2107 - mysql_xdevapi\CrudOperationSortable::sort example
  • Example#2108 - Пример использования mysql_xdevapi\DatabaseObject::existsInDatabase
  • Example#2109 - Пример использования mysql_xdevapi\DatabaseObject::getName
  • Example#2110 - Пример использования mysql_xdevapi\DatabaseObject::getSession
  • Example#2111 - Пример использования DocResult
  • Example#2112 - Пример использования mysql_xdevapi\DocResult::fetchAll
  • Example#2113 - Пример использования mysql_xdevapi\DocResult::fetchOne
  • Example#2114 - Пример использования mysql_xdevapi\DocResult::getWarnings
  • Example#2115 - Пример использования mysql_xdevapi\DocResult::getWarningsCount
  • Example#2116 - Примеры использования execute()
  • Example#2117 - Пример использования mysql_xdevapi\ExecutionStatus::__construct
  • Example#2118 - Пример использования mysql_xdevapi\Expression::__construct
  • Example#2119 - Пример использования mysql_xdevapi\Result::__construct
  • Example#2120 - mysql_xdevapi\Result::getAffectedItemsCount example
  • Example#2121 - Пример использования mysql_xdevapi\Result::getAutoIncrementValue
  • Example#2122 - Пример использования mysql_xdevapi\Result::getGeneratedIds
  • Example#2123 - Пример использования mysql_xdevapi\RowResult::getWarnings
  • Example#2124 - Пример использования mysql_xdevapi\RowResult::getWarningsCount
  • Example#2125 - Пример использования mysql_xdevapi\RowResult::__construct
  • Example#2126 - Пример использования mysql_xdevapi\RowResult::fetchAll
  • Example#2127 - Пример использования mysql_xdevapi\RowResult::fetchOne
  • Example#2128 - Пример использования mysql_xdevapi\RowResult::getColumnsCount
  • Example#2129 - Пример использования mysql_xdevapi\RowResult::getColumnNames
  • Example#2130 - Пример использования mysql_xdevapi\RowResult::getColumns
  • Example#2131 - Пример использования mysql_xdevapi\RowResult::getWarnings
  • Example#2132 - Пример использования mysql_xdevapi\RowResult::getWarningsCount
  • Example#2133 - Пример использования mysql_xdevapi\Schema::__construct
  • Example#2134 - Пример использования mysql_xdevapi\Schema::getCollection
  • Example#2135 - Пример использования mysql_xdevapi\Schema::getCollection
  • Example#2136 - Пример использования mysql_xdevapi\Schema::getCollection
  • Example#2137 - Пример использования mysql_xdevapi\Schema::getCollection
  • Example#2138 - Пример использования mysql_xdevapi\Schema::getCollectionAsTable
  • Example#2139 - Пример использования mysql_xdevapi\Schema::getCollections
  • Example#2140 - Пример использования mysql_xdevapi\Schema::getName
  • Example#2141 - Пример использования mysql_xdevapi\Schema::getSession
  • Example#2142 - Пример использования mysql_xdevapi\Schema::getTable
  • Example#2143 - Пример использования mysql_xdevapi\Schema::getTables
  • Example#2144 - Пример использования mysql_xdevapi\Session::getSchema
  • Example#2145 - Пример использования mysql_xdevapi\Session::close
  • Example#2146 - Пример использования mysql_xdevapi\Session::commit
  • Example#2147 - Пример использования mysql_xdevapi\Session::__construct
  • Example#2148 - Пример использования mysql_xdevapi\Session::createSchema
  • Example#2149 - Пример использования mysql_xdevapi\Session::dropSchema
  • Example#2150 - Пример использования mysql_xdevapi\Session::generateUuid
  • Example#2151 - mysql_xdevapi\Session::getSchema example
  • Example#2152 - Пример использования mysql_xdevapi\Session::getSchema
  • Example#2153 - Пример использования mysql_xdevapi\Session::getSchemas
  • Example#2154 - Пример использования mysql_xdevapi\Session::getServerVersion
  • Example#2155 - Пример использования mysql_xdevapi\Session::listClients
  • Example#2156 - mysql_xdevapi\Session::quoteName example
  • Example#2157 - Пример использования mysql_xdevapi\Session::releaseSavepoint
  • Example#2158 - Пример использования mysql_xdevapi\Session::rollback
  • Example#2159 - Пример использования mysql_xdevapi\Session::rollbackTo
  • Example#2160 - Пример использования mysql_xdevapi\Session::setSavepoint
  • Example#2161 - Пример использования mysql_xdevapi\Session::sql
  • Example#2162 - Пример использования mysql_xdevapi\Session::startTransaction
  • Example#2163 - Пример использования mysql_xdevapi\SqlStatement::bind
  • Example#2164 - Пример использования mysql_xdevapi\SqlStatement::__construct
  • Example#2165 - Пример использования mysql_xdevapi\SqlStatement::execute
  • Example#2166 - Пример использования mysql_xdevapi\SqlStatement::getNextResult
  • Example#2167 - Пример использования mysql_xdevapi\SqlStatement::getResult
  • Example#2168 - Пример использования mysql_xdevapi\SqlStatement::hasMoreResults
  • Example#2169 - Пример использования mysql_xdevapi\SqlStatementResult::__construct
  • Example#2170 - Пример использования mysql_xdevapi\SqlStatementResult::fetchAll
  • Example#2171 - Пример использования mysql_xdevapi\SqlStatementResult::fetchOne
  • Example#2172 - Пример использования mysql_xdevapi\SqlStatementResult::getAffectedItemsCount
  • Example#2173 - Пример использования mysql_xdevapi\SqlStatementResult::getColumnsCount
  • Example#2174 - Пример использования mysql_xdevapi\SqlStatementResult::getColumnNames
  • Example#2175 - Пример использования mysql_xdevapi\SqlStatementResult::getColumns
  • Example#2176 - Пример использования mysql_xdevapi\SqlStatementResult::getGeneratedIds
  • Example#2177 - Пример использования mysql_xdevapi\SqlStatementResult::getLastInsertId
  • Example#2178 - Пример использования mysql_xdevapi\SqlStatementResult::getWarnings
  • Example#2179 - Пример использования mysql_xdevapi\SqlStatementResult::getWarningsCount
  • Example#2180 - Пример использования mysql_xdevapi\SqlStatementResult::hasData
  • Example#2181 - Пример использования mysql_xdevapi\SqlStatementResult::nextResult
  • Example#2182 - mysql_xdevapi\Statement::__construct example
  • Example#2183 - Пример использования mysql_xdevapi\Statement::getNextResult
  • Example#2184 - Пример использования mysql_xdevapi\Statement::getResult
  • Example#2185 - Пример использования mysql_xdevapi\Statement::hasMoreResults
  • Example#2186 - Пример использования mysql_xdevapi\Table::__construct
  • Example#2187 - Пример использования mysql_xdevapi\Table::count
  • Example#2188 - Пример использования mysql_xdevapi\Table::delete
  • Example#2189 - Пример использования mysql_xdevapi\Table::existsInDatabase
  • Example#2190 - Пример использования mysql_xdevapi\Table::getName
  • Example#2191 - Пример использования mysql_xdevapi\Table::getSchema
  • Example#2192 - Пример использования mysql_xdevapi\Table::getSession
  • Example#2193 - Пример использования mysql_xdevapi\Table::insert
  • Example#2194 - Пример использования mysql_xdevapi\Table::isView
  • Example#2195 - Пример использования mysql_xdevapi\Table::count
  • Example#2196 - Пример использования mysql_xdevapi\Table::update
  • Example#2197 - Пример использования mysql_xdevapi\TableDelete::bind
  • Example#2198 - Пример использования mysql_xdevapi\TableDelete::__construct
  • Example#2199 - Пример использования mysql_xdevapi\TableDelete::execute
  • Example#2200 - Пример использования mysql_xdevapi\TableDelete::limit
  • Example#2201 - Пример использования mysql_xdevapi\TableDelete::orderBy
  • Example#2202 - Пример использования mysql_xdevapi\TableDelete::where
  • Example#2203 - Пример использования mysql_xdevapi\TableInsert::__construct
  • Example#2204 - Пример использования mysql_xdevapi\TableInsert::execute
  • Example#2205 - Пример использования mysql_xdevapi\TableInsert::values
  • Example#2206 - Пример использования mysql_xdevapi\TableSelect::bind
  • Example#2207 - Пример использования mysql_xdevapi\TableSelect::__construct
  • Example#2208 - Пример использования mysql_xdevapi\TableSelect::execute
  • Example#2209 - Пример использования mysql_xdevapi\TableSelect::groupBy
  • Example#2210 - Пример использования mysql_xdevapi\TableSelect::having
  • Example#2211 - Пример использования mysql_xdevapi\TableSelect::limit
  • Example#2212 - Пример использования mysql_xdevapi\TableSelect::lockExclusive
  • Example#2213 - Пример использования mysql_xdevapi\TableSelect::lockShared
  • Example#2214 - Пример использования mysql_xdevapi\TableSelect::offset
  • Example#2215 - Пример использования mysql_xdevapi\TableSelect::orderBy
  • Example#2216 - Пример использования mysql_xdevapi\TableSelect::where
  • Example#2217 - Пример использования mysql_xdevapi\TableUpdate::bind
  • Example#2218 - Пример использования mysql_xdevapi\TableUpdate::__construct
  • Example#2219 - Пример использования mysql_xdevapi\TableUpdate::execute
  • Example#2220 - Пример использования mysql_xdevapi\TableUpdate::limit
  • Example#2221 - Пример использования mysql_xdevapi\TableUpdate::orderby
  • Example#2222 - Пример использования mysql_xdevapi\TableUpdate::set
  • Example#2223 - Пример использования mysql_xdevapi\TableUpdate::where
  • Example#2224 - Пример использования mysql_xdevapi\Warning::__construct
  • Example#2225 - Пример работы с MySQL
  • Example#2226 - Пример использования mysql_affected_rows
  • Example#2227 - Пример использования mysql_affected_rows с транзакциями
  • Example#2228 - Пример использования mysql_client_encoding
  • Example#2229 - Пример использования mysql_close
  • Example#2230 - Пример использования mysql_connect
  • Example#2231 - Пример использования mysql_connect с синтаксисом hostname:port
  • Example#2232 - Пример использования mysql_connect с синтаксисом ":/path/to/socket"
  • Example#2233 - Пример создания базы данных MySQL
  • Example#2234 - Пример использования mysql_data_seek
  • Example#2235 - Пример использования mysql_db_name
  • Example#2236 - Пример использования альтернативы mysql_db_query
  • Example#2237 - Альтернативный пример использования mysql_drop_db
  • Example#2238 - Пример использования mysql_errno
  • Example#2239 - Пример использования mysql_error
  • Example#2240 - Пример использования mysql_escape_string
  • Example#2241 - Запрос с применением псевдонимов для дублирующихся имен колонок
  • Example#2242 - mysql_fetch_array с MYSQL_NUM
  • Example#2243 - mysql_fetch_array с MYSQL_ASSOC
  • Example#2244 - mysql_fetch_array с MYSQL_BOTH
  • Example#2245 - Расширенный пример использования mysql_fetch_assoc
  • Example#2246 - Пример использования mysql_fetch_field
  • Example#2247 - Пример использования mysql_fetch_lengths
  • Example#2248 - Пример использования mysql_fetch_object
  • Example#2249 - Пример использования mysql_fetch_object
  • Example#2250 - Получение одного ряда с помощью mysql_fetch_row
  • Example#2251 - Пример использования mysql_field_flags
  • Example#2252 - Пример использования mysql_field_len
  • Example#2253 - Пример использования mysql_field_name
  • Example#2254 - Пример использования mysql_field_table
  • Example#2255 - Пример использования mysql_field_type
  • Example#2256 - Пример использования mysql_free_result
  • Example#2257 - Пример использования mysql_get_client_info
  • Example#2258 - Пример использования mysql_get_host_info
  • Example#2259 - Пример использования mysql_get_proto_info
  • Example#2260 - Пример использования mysql_get_server_info
  • Example#2261 - Корректные виды запросов MySQL
  • Example#2262 - Пример использования mysql_insert_id
  • Example#2263 - Пример использования mysql_list_dbs
  • Example#2264 - Пример использования mysql_list_fields
  • Example#2265 - Пример использования mysql_list_processes
  • Example#2266 - Пример использования mysql_list_tables
  • Example#2267 - Пример использования mysql_num_fields
  • Example#2268 - Пример использования mysql_num_rows
  • Example#2269 - Пример использования mysql_ping
  • Example#2270 - Неверный запрос
  • Example#2271 - Верный запрос
  • Example#2272 - Простой пример использования mysql_real_escape_string
  • Example#2273 - Пример использования mysql_real_escape_string без наличия соединения
  • Example#2274 - Пример взлома с использованием SQL-инъекции
  • Example#2275 - Пример использования mysql_result
  • Example#2276 - Пример использования mysql_select_db
  • Example#2277 - Пример использования mysql_stat
  • Example#2278 - Альтернативный пример использования mysql_stat
  • Example#2279 - Пример использования mysql_tablename
  • Example#2280 - Пример использования mysql_thread_id
  • Example#2281 - Enabling the plugin (php.ini)
  • Example#2282 - Minimal plugin-specific configuration file (mysqlnd_ms_plugin.ini)
  • Example#2283 - Recommended minimal plugin-specific config (mysqlnd_ms_plugin.ini)
  • Example#2284 - Using one server as a master and as a slave (testing only!)
  • Example#2285 - Plugin specific configuration file (mysqlnd_ms_plugin.ini)
  • Example#2286 - Opening a load balanced connection
  • Example#2287 - Executing statements
  • Example#2288 - Plugin config with one slave and one master
  • Example#2289 - Pitfall: connection state and SQL user variables
  • Example#2290 - Plugin config with one slave and one master
  • Example#2291 - SQL hints to prevent connection switches
  • Example#2292 - Fighting replication lag
  • Example#2293 - Table creation on a slave
  • Example#2294 - Plugin config with one slave and one master
  • Example#2295 - Using SQL hints for transactions
  • Example#2296 - Transaction aware load balancing: trx_stickiness setting
  • Example#2297 - Transaction aware
  • Example#2298 - General pattern for XA transactions
  • Example#2299 - Local and global transactions are mutually exclusive
  • Example#2300 - Transaction coordinator state store
  • Example#2301 - Session consistency: read your writes
  • Example#2302 - Requesting session consistency
  • Example#2303 - Maximum age/slave lag
  • Example#2304 - Limiting slave lag
  • Example#2305 - Fail over not set
  • Example#2306 - No slave within time limit
  • Example#2307 - Create counter table on master
  • Example#2308 - Plugin config: SQL for client-side GTID injection
  • Example#2309 - Transparent global transaction ID injection
  • Example#2310 - Plugin config: SQL for fetching GTID
  • Example#2311 - Obtaining GTID after injection
  • Example#2312 - Plugin config: Checking for a certain GTID
  • Example#2313 - Session consistency service level and GTID combined
  • Example#2314 - Plugin config: using MySQL 5.6.5-m8 built-in GTID feature
  • Example#2315 - Recap: quality of service to request read your writes
  • Example#2316 - Plugin config: no special entries for caching
  • Example#2317 - Caching a slave request
  • Example#2318 - Read your writes and caching combined
  • Example#2319 - Manual failover, automatic optional
  • Example#2320 - Manual failover
  • Example#2321 - Cluster node groups
  • Example#2322 - Manual partitioning using SQL hints
  • Example#2323 - Plugin config: Fabric hosts instead of MySQL servers
  • Example#2324 - Manual partitioning using SQL hints
  • Example#2325 - Provoking a connection error
  • Example#2326 - Connection error on query execution
  • Example#2327 - Provoking a connection error
  • Example#2328 - Most basic failover
  • Example#2329 - Provoking a transient error
  • Example#2330 - Transient error retry loop
  • Example#2331 - Enabling the plugin (php.ini)
  • Example#2332 - Basic plugin configuration (mysqlnd_ms_plugin.ini) for MySQL Replication
  • Example#2333 - Multiple primaries - multi master (php.ini)
  • Example#2334 - Primary copy with multiple primaries and paritioning
  • Example#2335 - Multiple primaries - multi master (php.ini)
  • Example#2336 - Synchronous update anywhere cluster
  • Example#2337 - General pattern for XA transactions
  • Example#2338 - Преобразование массива PHP в формат JSON
  • Example#2339 - Пример использования имен секций
  • Example#2340 - Список анонимных подчиненных серверов
  • Example#2341 - Список основных серверов с символьными именами
  • Example#2342 - Конфигурация сервера
  • Example#2343 - Новый фильтр roundrobin, старая функциональность
  • Example#2344 - Фильтр user заменяет mysqlnd_ms_set_user_pick_server
  • Example#2345 - Обычные сообщения об ошибках в случае некорректности конфигурационного файла (до версии 1.5.0)
  • Example#2346 - Улучшеная проверка конфигурационного файла, начиная с версии 1.5.0
  • Example#2347 - Возможно более точная ошибка из-за mysqlnd_ms.force_config_usage=1
  • Example#2348 - Минимальная конфигурация плагина для использования с MySQL Fabric
  • Example#2349 - Таймаут соединения с Fabric
  • Example#2350 - Предупреждение о нарушении границ транзакции
  • Example#2351 - Некорректная последовательность фильтров
  • Example#2352 - Стратегия random с помощью фильтра random
  • Example#2353 - Стратегия random once с помощью фильтра random
  • Example#2354 - Ошибка ссылки
  • Example#2355 - Задание весов для балансировки нагрузки
  • Example#2356 - roundrobin filter
  • Example#2357 - Установка callback-функции
  • Example#2358 - Использование функции обратного вызова
  • Example#2359 - Получение случайных подчиненных и основных серверов
  • Example#2360 - Ручное партиционирование
  • Example#2361 - Global limit on slave lag
  • Example#2362 - Откат к основному серверу в случае невозможности соединиться с подчиненным сервером (PECL/mysqlnd_ms < 1.4.0)
  • Example#2363 - Новый синтаксис, начиная с версии 1.4.0
  • Example#2364 - Запрещение ленивых соединений
  • Example#2365 - Экранирование строк для ленивых подключений
  • Example#2366 - Обеспечение консистентного чтения
  • Example#2367 - Использование основного сервера для запуска транзакции
  • Example#2368 - Нет автоматического переключения при сбое, обработка ошибок
  • Example#2369 - Цикл повторов исправляемых ошибок
  • Example#2370 - SQL-запрос для создания таблицы хранилища состояния транзакции
  • Example#2371 - SQL-запрос для создания таблицы хранилища участников транзакции
  • Example#2372 - SQL-запрос для создания таблицы хранилища тнформации о сборе мусора
  • Example#2373 - Пример использования имен секций
  • Example#2374 - Спископодобный синтакцис
  • Example#2375 - Проверка активности плагина в однопоточной модели развертывания
  • Example#2376 - Запись статистики в процессе остановки
  • Example#2377 - Example demonstrating the usage of mysqlnd_ms constants
  • Example#2378 - mysqlnd_ms_dump_servers example
  • Example#2379 - mysqlnd_ms_get_last_gtid example
  • Example#2380 - mysqlnd_ms_get_last_used_connection example
  • Example#2381 - mysqlnd_ms_get_stats example
  • Example#2382 - mysqlnd_ms_match_wild example
  • Example#2383 - mysqlnd_ms_query_is_select example
  • Example#2384 - mysqlnd_ms_set_qos example
  • Example#2385 - mysqlnd_ms_set_user_pick_server example
  • Example#2386 - Enabling the plugin (php.ini)
  • Example#2387 - Using the MYSQLND_QC_ENABLE_SWITCH SQL hint
  • Example#2388 - Using the MYSQLND_QC_DISABLE_SWITCH SQL hint
  • Example#2389 - Example showing which type of statements are not cached
  • Example#2390 - Enabling caching for all statements using the mysqlnd_qc.cache_no_table ini setting
  • Example#2391 - Setting the TTL with the mysqlnd_qc.ttl ini setting
  • Example#2392 - Setting TTL with SQL hints
  • Example#2393 - Setting a callback with mysqlnd_qc_set_is_select
  • Example#2394 - Enabling the slam defense mechanism
  • Example#2395 - Collecting a query trace
  • Example#2396 - Setting the backtrace depth with the mysqlnd_qc.query_trace_bt_depth ini setting
  • Example#2397 - Collecting statistics data with the mysqlnd_qc.time_statistics ini setting
  • Example#2398 - Example mysqlnd_qc_get_cache_info usage
  • Example#2399 - Example mysqlnd_qc_get_normalized_query_trace_log usage
  • Example#2400 - Using a user-defined storage handler
  • Example#2401 - Using SQL hint constants
  • Example#2402 - Example mysqlnd_qc_set_cache_condition usage
  • Example#2403 - mysqlnd_qc_get_available_handlers example
  • Example#2404 - mysqlnd_qc_get_cache_info example
  • Example#2405 - mysqlnd_qc_get_core_stats example
  • Example#2406 - mysqlnd_qc_get_normalized_query_trace_log example
  • Example#2407 - mysqlnd_qc_get_query_trace_log example
  • Example#2408 - mysqlnd_qc_set_cache_condition example
  • Example#2409 - mysqlnd_qc_set_is_select example
  • Example#2410 - mysqlnd_qc_set_storage_handler example
  • Example#2411 - Enabling the plugin (php.ini)
  • Example#2412 - Pseudo-code: what a built-in class does
  • Example#2413 - Installing a proxy
  • Example#2414 - Proxy registration, mysqlnd_uh.enable=1
  • Example#2415 - Proxy installation disabled
  • Example#2416 - Connection proxy
  • Example#2417 - Prepared statement proxy
  • Example#2418 - Basic Monitoring
  • Example#2419 - MysqlndUhConnection::changeUser example
  • Example#2420 - MysqlndUhConnection::charsetName example
  • Example#2421 - MysqlndUhConnection::close example
  • Example#2422 - MysqlndUhConnection::connect example
  • Example#2423 - MysqlndUhConnection::endPSession example
  • Example#2424 - MysqlndUhConnection::escapeString example
  • Example#2425 - MysqlndUhConnection::getAffectedRows example
  • Example#2426 - MysqlndUhConnection::getErrorNumber example
  • Example#2427 - MysqlndUhConnection::getErrorString example
  • Example#2428 - MysqlndUhConnection::getFieldCount example
  • Example#2429 - MysqlndUhConnection::getHostInformation example
  • Example#2430 - MysqlndUhConnection::getLastInsertId example
  • Example#2431 - MysqlndUhConnection::getLastMessage example
  • Example#2432 - MysqlndUhConnection::getProtocolInformation example
  • Example#2433 - MysqlndUhConnection::getServerInformation example
  • Example#2434 - MysqlndUhConnection::getServerStatistics example
  • Example#2435 - MysqlndUhConnection::getServerVersion example
  • Example#2436 - MysqlndUhConnection::getSqlstate example
  • Example#2437 - MysqlndUhConnection::getStatistics example
  • Example#2438 - MysqlndUhConnection::getThreadId example
  • Example#2439 - MysqlndUhConnection::getWarningCount example
  • Example#2440 - MysqlndUhConnection::init example
  • Example#2441 - MysqlndUhConnection::kill example
  • Example#2442 - MysqlndUhConnection::listFields example
  • Example#2443 - MysqlndUhConnection::listMethod example
  • Example#2444 - MysqlndUhConnection::moreResults example
  • Example#2445 - MysqlndUhConnection::nextResult example
  • Example#2446 - MysqlndUhConnection::ping example
  • Example#2447 - MysqlndUhConnection::query example
  • Example#2448 - MysqlndUhConnection::queryReadResultsetHeader example
  • Example#2449 - MysqlndUhConnection::reapQuery example
  • Example#2450 - MysqlndUhConnection::refreshServer example
  • Example#2451 - MysqlndUhConnection::restartPSession example
  • Example#2452 - MysqlndUhConnection::selectDb example
  • Example#2453 - MysqlndUhConnection::sendClose example
  • Example#2454 - MysqlndUhConnection::sendQuery example
  • Example#2455 - MysqlndUhConnection::serverDumpDebugInformation example
  • Example#2456 - MysqlndUhConnection::setAutocommit example
  • Example#2457 - MysqlndUhConnection::setCharset example
  • Example#2458 - MysqlndUhConnection::setClientOption example
  • Example#2459 - MysqlndUhConnection::setServerOption example
  • Example#2460 - MysqlndUhConnection::simpleCommand example
  • Example#2461 - MysqlndUhConnection::simpleCommandHandleResponse example
  • Example#2462 - MysqlndUhConnection::sslSet example
  • Example#2463 - MysqlndUhConnection::stmtInit example
  • Example#2464 - MysqlndUhConnection::storeResult example
  • Example#2465 - MysqlndUhConnection::txCommit example
  • Example#2466 - MysqlndUhConnection::txRollback example
  • Example#2467 - MysqlndUhConnection::useResult example
  • Example#2468 - Пример использования MysqlndUhPreparedStatement::execute
  • Example#2469 - Пример использования MysqlndUhPreparedStatement::prepare
  • Example#2470 - mysqlnd_uh_convert_to_mysqlnd example
  • Example#2471 - mysqlnd_uh_set_connection_proxy example
  • Example#2472 - Подключение плагина (php.ini)
  • Example#2473 - Таблица, используемая в руководстве
  • Example#2474 - Простой пример
  • Example#2475 - Пример использования mysqlnd_memcache_get_config
  • Example#2476 - Пример использования mysqlnd_memcache_set с var_dump в качестве отладочной callback-функции.
  • Example#2477 - Простой запрос
  • Example#2478 - Вставка с использованием привязанных переменных
  • Example#2479 - Привязка в WHERE выражении запроса
  • Example#2480 - Вставка данных в поле типа CLOB
  • Example#2481 - Использование PL/SQL хранимых процедур
  • Example#2482 - Использование PL/SQL хранимых процедур
  • Example#2483 - Вызов PL/SQL процедур, возвращающих REF CURSOR
  • Example#2484 -
  • Example#2485 - user_oci8_probes.d для трассировки всех статических зондов PHP OCI8 с помощью DTrace на пользовательском уровне
  • Example#2486 - Пример использования oci_bind_array_by_name
  • Example#2487 - Добавление данных с использованием oci_bind_by_name
  • Example#2488 - Одна привязка для многократного использования
  • Example#2489 - Прикрепление в цикле foreach
  • Example#2490 - Прикрепление в выражение WHERE
  • Example#2491 - Прикрепление в выражение LIKE
  • Example#2492 - Прикрепление в выражение REGEXP_LIKE
  • Example#2493 - Прикрепление нескольких значений в выражение IN
  • Example#2494 - Прикрепление ROWID, возвращаемое запросом
  • Example#2495 - OUT-прикрепление ROWID, возвращаемое при INSERT
  • Example#2496 - Прикрепление для хранимой функции PL/SQL
  • Example#2497 - Прикрепление параметров для PL/SQL хранимой процедуры
  • Example#2498 - Прикрепление CLOB-объекта
  • Example#2499 - Прикрепление PL/SQL BOOLEAN
  • Example#2500 - Пример использования oci_client_version
  • Example#2501 - Закрытие соединения
  • Example#2502 - Соединение базы данных не закрывается до тех пор, пока не будут закрыты все ссылки на него
  • Example#2503 - Закрытие соединения, открытого несколько раз
  • Example#2504 - Соединение закрывается при уходе переменных из области видимости
  • Example#2505 - Пример использования oci_commit
  • Example#2506 - Пример использования oci_connect с синтаксисом Easy Connect
  • Example#2507 - Пример использования oci_connect используя имя Network Connect
  • Example#2508 - Пример использования oci_connect с использованием определенного набора символов
  • Example#2509 - Пример использования многократных вызовов oci_connect
  • Example#2510 - Пример использования oci_define_by_name
  • Example#2511 - Пример использования oci_define_by_name с регистрозависимыми именами столбцов
  • Example#2512 - Пример использования oci_define_by_name со столбцами типа LOB
  • Example#2513 - Пример использования oci_define_by_name с приведенными типами
  • Example#2514 - Вывод сообщения об ошибке Oracle после ошибки соединения
  • Example#2515 - Вывод сообщения об ошибке Oracle после ошибки разбора
  • Example#2516 - Вывод сообщения об ошибке Oracle, ошибочного запроса и позиции ошибки запуска запроса
  • Example#2517 - oci_execute при выполнении запросов
  • Example#2518 - oci_execute без указания определенного режима
  • Example#2519 - oci_execute с OCI_NO_AUTO_COMMIT
  • Example#2520 - oci_execute с различными режимами
  • Example#2521 - oci_execute с OCI_DESCRIBE_ONLY
  • Example#2522 - Пример использования oci_fetch_all
  • Example#2523 - Пример использования oci_fetch_all с OCI_FETCHSTATEMENT_BY_ROW
  • Example#2524 - Пример использования oci_fetch_all с OCI_NUM
  • Example#2525 - oci_fetch_array с OCI_BOTH
  • Example#2526 - oci_fetch_array с OCI_NUM
  • Example#2527 - oci_fetch_array с OCI_ASSOC
  • Example#2528 - oci_fetch_array с OCI_RETURN_NULLS
  • Example#2529 - oci_fetch_array с OCI_RETURN_LOBS
  • Example#2530 - oci_fetch_array с регистрозависимыми названиями полей
  • Example#2531 - oci_fetch_array с полями с одинаковыми названиями
  • Example#2532 - oci_fetch_array с полями DATE
  • Example#2533 - oci_fetch_array с REF CURSOR
  • Example#2534 - Постраничный вывод с помощью oci_fetch_array используя LIMIT-подобный запрос
  • Example#2535 - oci_fetch_array c Oracle Database 12c Implicit Result Sets
  • Example#2536 - Пример использования oci_fetch_assoc
  • Example#2537 - Пример использования oci_fetch_object
  • Example#2538 - Пример использования oci_fetch_object с названиями столбцов в различных регистрах
  • Example#2539 - Пример использования oci_fetch_object с LOB
  • Example#2540 - Пример использования oci_fetch_row
  • Example#2541 - Пример использования oci_fetch с определенными переменными
  • Example#2542 - Пример использования oci_fetch с oci_result
  • Example#2543 - Пример использования oci_field_name
  • Example#2544 - Пример использования oci_field_name
  • Example#2545 - Пример использования oci_field_precision
  • Example#2546 - oci_field_scale Example
  • Example#2547 - Пример использования oci_field_size
  • Example#2548 - Пример использования oci_field_type_raw
  • Example#2549 - Пример использования oci_field_type
  • Example#2550 - Извлечение неявных результирующих наборов в цикле
  • Example#2551 - Извлечение обработчиков дочерних запросов в индивидуальном порядке
  • Example#2552 - Явное указание величины предвыборки
  • Example#2553 - Пример неявного результирующего набора без использования oci_get_implicit_resultset
  • Example#2554 - Пример использованияoci_new_connect
  • Example#2555 - Привязка REF CURSOR в вызове хранимых процедур Oracle
  • Example#2556 - Пример использования oci_new_descriptor
  • Example#2557 - Пример использования oci_new_descriptor
  • Example#2558 - Пример использования oci_num_fields
  • Example#2559 - Пример использования oci_num_rows
  • Example#2560 - Пример использования oci_parse с SQL-запросами
  • Example#2561 - Пример использования oci_parse с PL/SQL-запросами
  • Example#2562 - Пример использования oci_password_change с изменением пароля уже подключенного пользователя
  • Example#2563 - Пример использования oci_password_change с подключением и изменением пароля одновременно
  • Example#2564 - Простой пример для oci_pconnect с использованием упрощенного синтаксиса подключения
  • Example#2565 - Пример использования oci_fetch с oci_result
  • Example#2566 - Пример использования oci_rollback
  • Example#2567 - Пример использования отката до SAVEPOINT
  • Example#2568 - Пример использования oci_server_version
  • Example#2569 - Установка действия
  • Example#2570 - Установка тайм-аута
  • Example#2571 - Установка идентификатора клиента для пользователя
  • Example#2572 - Установка клиентской информации
  • Example#2573 - Установка DBOP
  • Example#2574 - Два скрипта могут использовать различные версии функции myfunc() одновременно
  • Example#2575 - Установка имени модуля
  • Example#2576 - Смена значения предварительной выборки по умолчанию для запроса
  • Example#2577 - Смена значения предварительной выборки по умолчанию для выборки REF CURSOR
  • Example#2578 - Установка значения предварительной выборки при передаче REF CURSOR обратно в Oracle
  • Example#2579 - Пример использования oci_statement_type
  • Example#2580 - Создание базы данных Paradox с помощью двух полей
  • Example#2581 - Превращение даты paradox в человекочитаемый формат
  • Example#2582 - Установка значений даты/времени в базе данных paradox на текущие дату и время
  • Example#2583 - Открытие базы данных Paradox
  • Example#2584 - Открытие базы данных Paradox
  • Example#2585 - Превращение даты paradox в человекочитаемую форму
  • Example#2586 - Пример работы с расширением PostgreSQL
  • Example#2587 - Пример использования пользовательских функций PostgreSQL
  • Example#2588 - Пример использования pg_affected_rows
  • Example#2589 - Пример использования pg_cancel_query
  • Example#2590 - Пример использования pg_client_encoding
  • Example#2591 - Пример использования pg_close
  • Example#2592 - Использование функции pg_connect
  • Example#2593 - Пример использования pg_connection_busy
  • Example#2594 - Пример использования pg_connection_reset
  • Example#2595 - Пример использования pg_connection_status
  • Example#2596 - Пример использования pg_convert
  • Example#2597 - Пример использования pg_copy_from
  • Example#2598 - Пример использования pg_copy_to
  • Example#2599 - Пример использования pg_dbname
  • Example#2600 - Пример использования pg_delete
  • Example#2601 - Пример использования pg_end_copy
  • Example#2602 - Пример использования pg_escape_bytea
  • Example#2603 - Пример выполнения pg_escape_identifier
  • Example#2604 - Пример использования pg_escape_literal
  • Example#2605 - Пример использования pg_escape_string
  • Example#2606 - Пример использования pg_execute
  • Example#2607 - Пример использования pg_fetch_all_columns
  • Example#2608 - Пример использования
  • Example#2609 - Пример использования pg_fetch_array
  • Example#2610 - Пример использования pg_fetch_assoc
  • Example#2611 - Пример использования pg_fetch_object
  • Example#2612 - Пример использования pg_fetch_result
  • Example#2613 - Пример использования pg_fetch_row
  • Example#2614 - Пример использования pg_field_is_null
  • Example#2615 - Получение информации о полях выборки
  • Example#2616 - Получение информации о полях выборки
  • Example#2617 - Получение информации о полях выборки
  • Example#2618 - Получение информации о полях выборки
  • Example#2619 - Получение информации о поле выборки
  • Example#2620 - Получение информации о полях выборки
  • Example#2621 - Получение информации о поле выборки
  • Example#2622 - Пример использования pg_free_result
  • Example#2623 - Сообщение PostgreSQL NOTIFY
  • Example#2624 - PID сервера PostgreSQL
  • Example#2625 - Пример использования pg_get_result
  • Example#2626 - Пример использования pg_host
  • Example#2627 - Пример использования pg_insert
  • Example#2628 - Пример использования pg_last_error
  • Example#2629 - Пример использования pg_last_notice
  • Example#2630 - Пример использования pg_last_oid
  • Example#2631 - Пример использования pg_lo_close
  • Example#2632 - Пример использования pg_lo_create
  • Example#2633 - Пример использования pg_lo_export
  • Example#2634 - Пример использования pg_lo_import
  • Example#2635 - Пример использования pg_lo_open
  • Example#2636 - Пример использования pg_lo_read_all
  • Example#2637 - Пример использования pg_lo_read
  • Example#2638 - Пример использования pg_lo_seek
  • Example#2639 - Пример использования pg_lo_tell
  • Example#2640 - Пример использования pg_lo_truncate
  • Example#2641 - Пример использования pg_lo_unlink
  • Example#2642 - Пример использования pg_lo_write
  • Example#2643 - Получение метаданных таблицы
  • Example#2644 - Пример использования pg_num_fields
  • Example#2645 - Пример использования pg_num_rows
  • Example#2646 - Пример использования pg_options
  • Example#2647 - Пример использования pg_parameter_status
  • Example#2648 - Пример использования pg_pconnect
  • Example#2649 - Пример использования pg_ping
  • Example#2650 - Пример использования pg_port
  • Example#2651 - Пример использования pg_prepare
  • Example#2652 - Пример использования pg_put_line
  • Example#2653 - Пример использования pg_query_params
  • Example#2654 - Пример использования pg_query
  • Example#2655 - Использование нескольких выражений в pg_query
  • Example#2656 - Пример использования pg_result_error_field
  • Example#2657 - Пример использования pg_result_error
  • Example#2658 - Пример использования pg_result_seek
  • Example#2659 - Пример использования pg_result_status
  • Example#2660 - Пример использования pg_select
  • Example#2661 - Пример использования pg_send_execute
  • Example#2662 - Пример использования pg_send_prepare
  • Example#2663 - Пример использования pg_send_query_params
  • Example#2664 - Пример использования pg_send_query
  • Example#2665 - Пример использования pg_set_client_encoding
  • Example#2666 - Пример использования pg_set_error_verbosity
  • Example#2667 - Пример использования pg_trace
  • Example#2668 - Пример использования pg_transaction_status
  • Example#2669 - Пример использования pg_tty
  • Example#2670 - Пример использования pg_unescape_bytea
  • Example#2671 - Пример использования pg_untrace
  • Example#2672 - Пример использования pg_update
  • Example#2673 - Пример использования pg_version
  • Example#2674 - Процедурный стиль
  • Example#2675 - Объектно-ориентированный стиль
  • Example#2676 - Процедурный стиль
  • Example#2677 - Объектно-ориентированный стиль
  • Example#2678 - Процедурный стиль
  • Example#2679 - Объектно-ориентированный стиль
  • Example#2680 - Пример использования sqlite_close
  • Example#2681 - Пример агрегирующей функции max_length
  • Example#2682 - Пример использования sqlite_create_function
  • Example#2683 - Пример использования функции php
  • Example#2684 - Пример с использованием процедурного стиля
  • Example#2685 - Объектно-ориентированный стиль
  • Example#2686 - Пример использования sqlite_factory
  • Example#2687 - Процедурный стиль
  • Example#2688 - Объектно-ориентированный стиль
  • Example#2689 - Процедурный стиль
  • Example#2690 - Объектно-ориентированный стиль
  • Example#2691 - Процедурный стиль
  • Example#2692 - Объектно-ориентированный стиль
  • Example#2693 - Пример использования sqlite_fetch_single
  • Example#2694 - Процедурный стиль
  • Example#2695 - Объектно-ориентированный стиль
  • Example#2696 - Пример использованияsqlite_open
  • Example#2697 - Пример реализации агрегирующей функции max_length, способной работать с бинарными данными
  • Example#2698 - Пример использования SQLite3::changes
  • Example#2699 - Пример использования SQLite3::close
  • Example#2700 - Пример использования SQLite3::__construct
  • Example#2701 - Пример агрегирующей функции max_length
  • Example#2702 - Пример использования SQLite3::createCollation
  • Example#2703 - Пример использования SQLite3::createFunction
  • Example#2704 - Пример использования SQLite3::enableExceptions
  • Example#2705 - Пример использования SQLite3::exec
  • Example#2706 - Пример использования SQLite3::loadExtension
  • Example#2707 - Пример использования SQLite3::open
  • Example#2708 - Пример использования SQLite3::openBlob
  • Example#2709 - Пошаговая запись BLOB
  • Example#2710 - Пример использования SQLite3::prepare
  • Example#2711 - Пример использования SQLite3::query
  • Example#2712 - Пример использования SQLite3::querySingle
  • Example#2713 - Пример использования SQLite3::version
  • Example#2714 - Пример использования SQLite3Stmt::bindParam
  • Example#2715 - Пример использования SQLite3Stmt::bindValue
  • Example#2716 - Получение расширенного SQL-запроса
  • Example#2717 - sqlsrv_begin_transaction example
  • Example#2718 - sqlsrv_cancel example
  • Example#2719 - sqlsrv_client_info example
  • Example#2720 - sqlsrv_close example
  • Example#2721 - sqlsrv_commit example
  • Example#2722 - Connect using Windows Authentication.
  • Example#2723 - Connect by specifying a user name and password.
  • Example#2724 - Connect on a specified port.
  • Example#2725 - functionname example
  • Example#2726 - sqlsrv_execute example
  • Example#2727 - Retrieving an associative array.
  • Example#2728 - Retrieving a numeric array.
  • Example#2729 - sqlsrv_fetch_object example
  • Example#2730 - sqlsrv_fetch example
  • Example#2731 - sqlsrv_field_metadata example
  • Example#2732 - sqlsrv_free_stmt example
  • Example#2733 - sqlsrv_get_field example
  • Example#2734 - sqlsrv_has_rows example
  • Example#2735 - sqlsrv_next_result example
  • Example#2736 - sqlsrv_num_fields example
  • Example#2737 - sqlsrv_num_rows example
  • Example#2738 - sqlsrv_prepare example
  • Example#2739 - sqlsrv_query example
  • Example#2740 - sqlsrv_rollback example
  • Example#2741 - sqlsrv_rows_affected example
  • Example#2742 - sqlsrv_send_stream_data example
  • Example#2743 - sqlsrv_server_info example
  • Example#2744 - Delete-Query
  • Example#2745 - sybase_connect example
  • Example#2746 - Identical fieldnames
  • Example#2747 - sybase_fetch_object return as Foo
  • Example#2748 - sybase_set_message_handler callback function
  • Example#2749 - sybase_set_message_handler callback to a class
  • Example#2750 - sybase_set_message_handler unhandled messages
  • Example#2751 - sybase_unbuffered_query example
  • Example#2752 - Putting and getting a key-value pair
  • Example#2753 - TokyoTyrant::add example
  • Example#2754 - TokyoTyrant::connect example
  • Example#2755 - TokyoTyrant::connectUri example
  • Example#2756 - TokyoTyrant::copy example
  • Example#2757 - TokyoTyrant::ext example
  • Example#2758 - TokyoTyrant::fwmKeys example
  • Example#2759 - TokyoTyrant::get example
  • Example#2760 - TokyoTyrant::getIterator example
  • Example#2761 - TokyoTyrant::num example
  • Example#2762 - TokyoTyrant::out example
  • Example#2763 - TokyoTyrant::put example
  • Example#2764 - TokyoTyrant::putCat example
  • Example#2765 - tokyotyrant::putKeep example
  • Example#2766 - TokyoTyrant::putNr example
  • Example#2767 - TokyoTyrant::putShl example
  • Example#2768 - TokyoTyrant::setMaster example
  • Example#2769 - TokyoTyrant::size example
  • Example#2770 - TokyoTyrant::stat example
  • Example#2771 - TokyoTyrant::vanish example
  • Example#2772 - TokyoTyrantTable::genUid example
  • Example#2773 - TokyoTyrantTable::get example
  • Example#2774 - TokyoTyrantTable::getIterator example
  • Example#2775 - TokyoTyrantTable::getQuery example
  • Example#2776 - TokyoTyrantTable::out example
  • Example#2777 - TokyoTyrantTable::put example
  • Example#2778 - TokyoTyrantTable::putCat example
  • Example#2779 - TokyoTyrantTable::putKeep example
  • Example#2780 - TokyoTyrantQuery::addCond example
  • Example#2781 - TokyoTyrantQuery::__construct example
  • Example#2782 - TokyoTyrantQuery::count example
  • Example#2783 - TokyoTyrantQuery iterator example
  • Example#2784 - TokyoTyrantQuery::hint example
  • Example#2785 - TokyoTyrantQuery iterator example
  • Example#2786 - TokyoTyrantQuery::metaSearch example
  • Example#2787 - TokyoTyrantQuery iterator example
  • Example#2788 - TokyoTyrantQuery::out example
  • Example#2789 - TokyoTyrantQuery iterator example
  • Example#2790 - TokyoTyrantQuery::search example
  • Example#2791 - TokyoTyrantQuery iterator example
  • Example#2792 - TokyoTyrantIterator::__construct example
  • Example#2793 - Пример использования cal_days_in_month
  • Example#2794 - Пример использования cal_from_jd
  • Example#2795 - Пример cal_info
  • Example#2796 - Пример использования easter_date
  • Example#2797 - Пример использования easter_days
  • Example#2798 - Календарные функции
  • Example#2799 - Поведение при переполнении
  • Example#2800 - Пример использования jdtojewish
  • Example#2801 - DateTime::add/sub добавляет интервалы, охватывающие прошедшее время
  • Example#2802 - DateTime::modify и strtotime увеличит или уменьшит значения индивидуальных компонентов
  • Example#2803 - Добавление или вычитание времени может уменьшить или увеличить дату
  • Example#2804 - Пример использования DateTime::add
  • Example#2805 - Другие примеры с DateTime::add
  • Example#2806 - Будьте внимательны при добавлении месяцев
  • Example#2807 - Пример использования DateTime::__construct
  • Example#2808 - Хитрости при использовании DateTime::__construct
  • Example#2809 - Пример использования DateTime::createFromFormat
  • Example#2810 - Хитрости при использовании DateTime::createFromFormat
  • Example#2811 - Формат строки с буквенными символами
  • Example#2812 - Создание изменяемого объекта
  • Example#2813 - Пример использования DateTime::getLastErrors
  • Example#2814 - Пример использования DateTime::modify
  • Example#2815 - Будьте осторожны при добавлении и вычитании месяцев
  • Example#2816 - Пример использования DateTime::setDate
  • Example#2817 - Значения, превышающие диапазон своего поля, добавляются к старшим полям
  • Example#2818 - Пример использования DateTime::setISODate
  • Example#2819 - Значения, превышающие допустимые пределы, добавляются к старшим полям
  • Example#2820 - Поиск месяца по номеру недели
  • Example#2821 - Пример использования DateTime::setTime
  • Example#2822 - Значения, превышающие диапазон своего поля, добавляются к старшим полям
  • Example#2823 - Пример использования DateTime::setTimestamp
  • Example#2824 - Использование DateTime::setTimestamp в качестве альтернативы в PHP 5.2
  • Example#2825 - Пример использования DateTime::setTimeZone
  • Example#2826 - Пример использования DateTime::sub
  • Example#2827 - Другие примеры DateTime::sub
  • Example#2828 - Будьте внимательны при вычитании месяцев
  • Example#2829 - Создание неизменяемого объекта даты/времени
  • Example#2830 - Пример использования DateTime::diff
  • Example#2831 - Сравнение объектов DateTime
  • Example#2832 - Пример использования DateTime::format
  • Example#2833 - Пример использования DateTime::getOffset
  • Example#2834 - Пример использования DateTime::getTimestamp
  • Example#2835 - Пример использования DateTime::getTimezone
  • Example#2836 - Перехват ошибок при создании экземпляра DateTimeZone
  • Example#2837 - Пример использования DateTimeZone::getLocation
  • Example#2838 - Пример использования DateTimeZone::getOffset
  • Example#2839 - Пример использования timezone_transitions_get
  • Example#2840 - Пример использования timezone_abbreviations_list
  • Example#2841 - Пример использования timezone_identifiers_list
  • Example#2842 - Пример использования DateInterval
  • Example#2843 - Анализ и разбор временных интервалов
  • Example#2844 - Пример использования DateInterval
  • Example#2845 - DateInterval и перенос единиц
  • Example#2846 - DateInterval и DateTime::diff с модификаторами %a и %d
  • Example#2847 - Пример использования DatePeriod
  • Example#2848 - Пример использования DatePeriod с DatePeriod::EXCLUDE_START_DATE
  • Example#2849 - Пример использования DatePeriod::getDateInterval
  • Example#2850 - Пример использования DatePeriod::getEndDate
  • Example#2851 - Пример использования DatePeriod::getEndDate без даты окончания
  • Example#2852 - Пример использования DatePeriod::getStartDate
  • Example#2853 - Пример использования функции checkdate
  • Example#2854 - Получение временной зоны по умолчанию
  • Example#2855 - Получение аббревиатуры временной зоны
  • Example#2856 - Получение временной зоны по умолчанию
  • Example#2857 - Пример использования date_parse_from_format
  • Example#2858 - Пример использования date_parse
  • Example#2859 - date_parse с относительным форматом
  • Example#2860 - Пример использования date_sun_info
  • Example#2861 - Полярная ночь
  • Example#2862 - Полуночное солнце
  • Example#2863 - Пример использования date_sunrise
  • Example#2864 - Нет восхода солнца
  • Example#2865 - Пример использования date_sunset
  • Example#2866 - Нет заката
  • Example#2867 - Примеры использования функции date
  • Example#2868 - Экранирование символов в функции date
  • Example#2869 - Пример совместного использования функций date и mktime
  • Example#2870 - Форматирование с использованием date
  • Example#2871 - Пример использования функции getdate
  • Example#2872 - Пример использования функции gettimeofday
  • Example#2873 - Пример использования gmdate
  • Example#2874 - Базовый пример использования gmmktime
  • Example#2875 - Пример использования функции gmstrftime
  • Example#2876 - Пример использования idate
  • Example#2877 - Пример использования localtime
  • Example#2878 - Замер времени выполнения скрипта с помощью функции microtime
  • Example#2879 - Замер времени выполнения скрипта в PHP 5
  • Example#2880 - Пример использования microtime и REQUEST_TIME_FLOAT (начиная с PHP 5.4.0)
  • Example#2881 - Пример использования функции mktime
  • Example#2882 - Пример использования mktime
  • Example#2883 - Последний день месяца
  • Example#2884 - Пример использования функции strftime с разными локалями
  • Example#2885 - Пример номеров недели по ISO 8601:1988
  • Example#2886 - Кроссплатформенный пример использования модификатора %e
  • Example#2887 - Показываем все известные и неизвестные форматы.
  • Example#2888 - Пример использования strptime
  • Example#2889 - Пример использования функции strtotime
  • Example#2890 - Проверка ошибок
  • Example#2891 - Пример использования time
  • Example#2892 - Пример использования timezone_name_from_abbr
  • Example#2893 - Определение версии базы данных временных зон
  • Example#2894 - Замеряем время исполнения нескольких блоков кода
  • Example#2895 - Закрытие файлового дескриптора
  • Example#2896 - Установка и снятие блокировки
  • Example#2897 - Открытие файлового дескриптора
  • Example#2898 - Позиционирование внутри файла
  • Example#2899 - Установка скорости передачи для последовательного порта
  • Example#2900 - Пример использования chdir
  • Example#2901 - Пример использования chroot
  • Example#2902 - Пример использования closedir
  • Example#2903 - Пример использования dir
  • Example#2904 - Пример использования getcwd
  • Example#2905 - Пример использования функции opendir
  • Example#2906 - Вывести список всех элементов каталога
  • Example#2907 - Получить список элементов в текущем каталоге и отбросить элементы с именами . и ..
  • Example#2908 - Простой пример использования функции scandir
  • Example#2909 - Пример finfo_buffer
  • Example#2910 - Пример использования finfo_file
  • Example#2911 - Объектно-ориентированный стиль
  • Example#2912 - Процедурный стиль
  • Example#2913 - Пример mime_content_type
  • Example#2914 - Пример использования функции basename
  • Example#2915 - Изменение группы файла
  • Example#2916 - Пример простого использования chown
  • Example#2917 - Пример использования clearstatcache
  • Example#2918 - Пример использования функции copy
  • Example#2919 - Пример использования функции dirname
  • Example#2920 - Пример использования функции disk_free_space
  • Example#2921 - Пример использования disk_total_space
  • Example#2922 - Простой пример использования функции fclose
  • Example#2923 - Обработка тайм-аутов с функцией feof
  • Example#2924 - Пример feof с неверным файловым указателем
  • Example#2925 - Пример записи файла с помощью fflush
  • Example#2926 - Пример использования функции fgetc
  • Example#2927 - Чтение и вывод на экран содержимого CSV-файла
  • Example#2928 - Построчное чтение файла
  • Example#2929 - Построчное чтение PHP-файла
  • Example#2930 - Проверка существования файла
  • Example#2931 - Получить и вывести исходный код домашней страницы вебсайта
  • Example#2932 - Поиск файлов в include_path
  • Example#2933 - Чтение секции файла
  • Example#2934 - Использование потоковых контекстов
  • Example#2935 - Пример простого использования
  • Example#2936 - Использование флагов
  • Example#2937 - Пример использования file
  • Example#2938 - Пример использования функции fileatime
  • Example#2939 - Пример использования функции filectime
  • Example#2940 - Поиск группы файла
  • Example#2941 - Сравнение индексного дескриптора файла с текущим файлом
  • Example#2942 - Пример использования функции filemtime
  • Example#2943 - Находим владельца файла
  • Example#2944 - Отображение прав доступа в виде восьмеричного числа
  • Example#2945 - Отображение полных прав доступа
  • Example#2946 - Пример использования функции filesize
  • Example#2947 - Пример использования функции filetype
  • Example#2948 - Пример использования функции flock
  • Example#2949 - Использование flock с параметром LOCK_NB
  • Example#2950 - Проверяет соответствие цвета шаблону подстановки
  • Example#2951 - Примеры использования fopen
  • Example#2952 - Использование fpassthru с бинарными файлами
  • Example#2953 - Пример использования fputcsv
  • Example#2954 - Простой пример использования fread
  • Example#2955 - Пример бинарного чтения с помощью fread
  • Example#2956 - Примеры удаленного чтения с помощью fread
  • Example#2957 - Пример использования функции fscanf
  • Example#2958 - Содержимое файла users.txt
  • Example#2959 - Пример использования функции fseek
  • Example#2960 - Пример использования функции fstat
  • Example#2961 - Пример использования функции ftell
  • Example#2962 - Пример обрезания файла
  • Example#2963 - Простой пример использования fwrite
  • Example#2964 - Удобный способ, как при помощи glob можно заменить opendir и её аналоги.
  • Example#2965 - Пример использования функции is_dir
  • Example#2966 - Пример использования функции is_executable
  • Example#2967 - Пример использования is_file
  • Example#2968 - Создаем файл и подтверждаем, что он является символической ссылкой
  • Example#2969 - is_readable example
  • Example#2970 - Пример использования функции is_uploaded_file
  • Example#2971 - Пример использования is_writable
  • Example#2972 - Пример изменения группы символической ссылки
  • Example#2973 - Изменение владельца символической ссылки
  • Example#2974 - Создание простой жёсткой ссылки
  • Example#2975 - Пример использования функции linkinfo
  • Example#2976 - Сравнение функций stat и lstat
  • Example#2977 - Пример использования функции mkdir
  • Example#2978 - Использование mkdir с параметром recursive
  • Example#2979 - Загрузка нескольких файлов
  • Example#2980 - Содержимое sample.ini
  • Example#2981 - Пример использования функции parse_ini_file
  • Example#2982 - Обработка файла php.ini функцией parse_ini_file
  • Example#2983 - Пример использования функции pathinfo
  • Example#2984 - Пример с pathinfo, показывающий разницу между null и отсутствием расширения
  • Example#2985 - Пример pathinfo для файла, начинающегося с точки
  • Example#2986 - Пример использования pclose
  • Example#2987 - Пример использования функции popen
  • Example#2988 - Пример использования функции popen
  • Example#2989 - Принудительная загрузка с помощью readfile
  • Example#2990 - Пример использования функции readlink
  • Example#2991 - Пример использования realpath_cache_get
  • Example#2992 - Пример использования realpath_cache_size
  • Example#2993 - Пример использования функции realpath
  • Example#2994 - realpath на Windows
  • Example#2995 - Пример использования функции rename
  • Example#2996 - Пример перезаписи rewind
  • Example#2997 - Пример использования rmdir
  • Example#2998 - Пример использования stat
  • Example#2999 - Использование информации из stat вместе с touch
  • Example#3000 - Создание символической ссылки
  • Example#3001 - Пример использования функции tempnam
  • Example#3002 - Пример использования функции tmpfile
  • Example#3003 - Пример использования функции touch
  • Example#3004 - Использование touch с параметром time
  • Example#3005 - Пример использования umask
  • Example#3006 - Пример простого использования unlink
  • Example#3007 - Пример использования inotify
  • Example#3008 - Установка пути до magic.mime
  • Example#3009 - Пример использования setproctitle
  • Example#3010 - Пример использования setthreadtitle
  • Example#3011 - Проверить, подписан ли файл системным администратором
  • Example#3012 - Вывести имена всех расширенных атрибутов файла
  • Example#3013 - Удалить все расширенные атрибуты файла
  • Example#3014 - Установить расширенные атрибуты .wav файла
  • Example#3015 - xattr_supported example
  • Example#3016 - Пример использования xdiff_file_bdiff_size
  • Example#3017 - Пример использования xdiff_file_bdiff
  • Example#3018 - Пример использования xdiff_file_bpatch
  • Example#3019 - Апмсер использования xdiff_file_diff_binary
  • Example#3020 - Пример использования xdiff_file_diff
  • Example#3021 - Пример использования xdiff_file_merge3
  • Example#3022 - Пример использования xdiff_file_patch_binary
  • Example#3023 - Пример использования xdiff_file_patch
  • Example#3024 - Patch reversing example
  • Example#3025 - Пример использования xdiff_file_rabdiff
  • Example#3026 - Пример использования xdiff_string_bdiff_size
  • Example#3027 - Пример использования xdiff_string_diff
  • Example#3028 - Пример использования xdiff_string_patch
  • Example#3029 - Пример использования Enchant
  • Example#3030 - Список бэкендов предоставляемых конкретным брокером
  • Example#3031 - Пример использования enchant_broker_dict_exists
  • Example#3032 - Список всех доступных на брокере словарей
  • Example#3033 - Пример использования enchant_broker_request_dict
  • Example#3034 - Добавить слово в PWL
  • Example#3035 - Пример использования enchant_dict_describe
  • Example#3036 - Пример использования enchant_dict_quick_check
  • Example#3037 - Пример использования enchant_dict_suggest
  • Example#3038 - Пример использования.
  • Example#3039 - Пример использования Gender\Gender::country
  • Example#3040 - Пример использования bindtextdomain
  • Example#3041 - gettext-check
  • Example#3042 - Пример использования ngettext
  • Example#3043 - Пример использования iconv_get_encoding
  • Example#3044 - Пример использования iconv_mime_decode_headers
  • Example#3045 - Пример использования iconv_mime_decode
  • Example#3046 - Пример использования iconv_mime_encode
  • Example#3047 - Пример использования iconv_set_encoding
  • Example#3048 - Пример использования iconv
  • Example#3049 - Пример использования ob_iconv_handler
  • Example#3050 - Пример использования процедурного API
  • Example#3051 - Пример использования объектно-ориентированного API
  • Example#3052 - Правила FRENCH_COLLATION
  • Example#3053 - ALTERNATE_HANDLING rules
  • Example#3054 - Правила CASE_FIRST
  • Example#3055 - CASE_LEVEL rules
  • Example#3056 - collator_asortexample
  • Example#3057 - collator_compareexample
  • Example#3058 - Collator::__construct example
  • Example#3059 - collator_create example
  • Example#3060 - collator_get_attribute example
  • Example#3061 - collator_get_error_code example
  • Example#3062 - collator_get_error_message example
  • Example#3063 - collator_get_locale example
  • Example#3064 - collator_get_sort_keyexample
  • Example#3065 - collator_get_strength example
  • Example#3066 - collator_set_attribute example
  • Example#3067 - collator_set_strength example
  • Example#3068 - collator_sort_with_sort_keys example
  • Example#3069 - collator_sort example
  • Example#3070 - numfmt_create example
  • Example#3071 - NumberFormatter::create example
  • Example#3072 - numfmt_format_currency example
  • Example#3073 - OO example
  • Example#3074 - numfmt_format example
  • Example#3075 - OO example
  • Example#3076 - numfmt_get_attribute example
  • Example#3077 - OO example
  • Example#3078 - numfmt_get_error_code example
  • Example#3079 - OO example
  • Example#3080 - numfmt_get_error_message example
  • Example#3081 - OO example
  • Example#3082 - numfmt_get_locale example
  • Example#3083 - numfmt_get_pattern example
  • Example#3084 - OO example
  • Example#3085 - numfmt_get_symbol example
  • Example#3086 - OO example
  • Example#3087 - numfmt_get_text_attribute example
  • Example#3088 - OO example
  • Example#3089 - numfmt_parse_currency example
  • Example#3090 - OO example
  • Example#3091 - numfmt_parse example
  • Example#3092 - OO example
  • Example#3093 - numfmt_set_attribute example
  • Example#3094 - OO example
  • Example#3095 - numfmt_set_pattern example
  • Example#3096 - OO example
  • Example#3097 - numfmt_set_symbol example
  • Example#3098 - OO example
  • Example#3099 - numfmt_set_text_attribute example
  • Example#3100 - OO example
  • Example#3101 - Пример использования locale_accept_from_http
  • Example#3102 - Пример использования в объектно-ориентированном стиле
  • Example#3103 - Пример использования locale_compose
  • Example#3104 - Пример использования в объектно-ориентированном стиле
  • Example#3105 - Пример использования locale_filter_matches
  • Example#3106 - Пример использования в объектно-ориентированном стиле
  • Example#3107 - Пример использования locale_get_all_variants
  • Example#3108 - Пример использования в объектно-ориентированном стиле
  • Example#3109 - Пример использования locale_get_default
  • Example#3110 - Пример использования в объектно-ориентированном стиле
  • Example#3111 - Пример использования locale_get_display_language
  • Example#3112 - Пример использования в объектно-ориентированном стиле
  • Example#3113 - Пример использования locale_get_display_name
  • Example#3114 - Пример использования в объектно-ориентированном стиле
  • Example#3115 - Пример использования locale_get_display_region
  • Example#3116 - Пример использования в объектно-ориентированном стиле
  • Example#3117 - Пример использования locale_get_display_script
  • Example#3118 - Пример использования в объектно-ориентированном стиле
  • Example#3119 - Пример использования locale_get_display_variant
  • Example#3120 - Пример использования в объектно-ориентированном стиле
  • Example#3121 - Пример использования locale_get_keywords
  • Example#3122 - Пример использования в объектно-ориентированном стиле
  • Example#3123 - Пример использования locale_get_primary_language
  • Example#3124 - Пример использования в объектно-ориентированном стиле
  • Example#3125 - Пример использования locale_get_region
  • Example#3126 - Пример использования в объектно-ориентированном стиле
  • Example#3127 - Пример использования locale_get_script
  • Example#3128 - Пример использования в объектно-ориентированном стиле
  • Example#3129 - Пример использования locale_lookup
  • Example#3130 - Пример использования в объектно-ориентированном стиле
  • Example#3131 - Пример использования locale_parse
  • Example#3132 - Пример использования в объектно-ориентированном стиле
  • Example#3133 - Пример использования locale_set_default
  • Example#3134 - Пример использования в объектно-ориентированном стиле
  • Example#3135 - Пример использования Normalizer::getRawDecomposition
  • Example#3136 - Пример использования normalizer_is_normalized
  • Example#3137 - Пример в объектно-ориентированном стиле
  • Example#3138 - Пример использования normalizer_normalize
  • Example#3139 - Пример в объектно-ориентированном стиле
  • Example#3140 - msgfmt_create example
  • Example#3141 - OO example
  • Example#3142 - msgfmt_format_message example
  • Example#3143 - OO example
  • Example#3144 - msgfmt_format example
  • Example#3145 - OO example
  • Example#3146 - msgfmt_get_error_message example
  • Example#3147 - OO example
  • Example#3148 - msgfmt_get_locale example
  • Example#3149 - OO example
  • Example#3150 - msgfmt_get_pattern example
  • Example#3151 - OO example
  • Example#3152 - msgfmt_parse_message example
  • Example#3153 - OO example
  • Example#3154 - msgfmt_parse example
  • Example#3155 - OO example
  • Example#3156 - msgfmt_set_pattern example
  • Example#3157 - OO example
  • Example#3158 - IntlCalendar::add
  • Example#3159 - IntlCalendar::after
  • Example#3160 - IntlCalendar::clear examples
  • Example#3161 - IntlCalendar::createInstance
  • Example#3162 - IntlCalendar::equals
  • Example#3163 - IntlCalendar::fieldDifference
  • Example#3164 - IntlCalendar::fromDateTime
  • Example#3165 - IntlCalendar::get
  • Example#3166 - IntlCalendar::getActualMaximum
  • Example#3167 - IntlCalendar::getAvailableLocales
  • Example#3168 - IntlCalendar::getDayOfWeekType
  • Example#3169 - IntlCalendar::getErrorCode and IntlCalendar::getErrorMessage
  • Example#3170 - IntlCalendar::getErrorMessage
  • Example#3171 - IntlCalendar::getFirstDayOfWeek
  • Example#3172 - IntlCalendar::getKeyworkValuesForLocale
  • Example#3173 - Maxima examples
  • Example#3174 - IntlCalendar::getLocale
  • Example#3175 - IntlCalendar::getMinimalDaysInFirstWeek
  • Example#3176 - IntlCalendar::getNow
  • Example#3177 - IntlCalendar::getRepeatedWallTimeOption
  • Example#3178 - IntlCalendar::getSkippedWallTimeOption
  • Example#3179 - IntlCalendar::getTime
  • Example#3180 - IntlCalendar::getTimeZone
  • Example#3181 - IntlCalendar::getType
  • Example#3182 - IntlCalendar::inDaylightTime
  • Example#3183 - IntlCalendar::isEquivalentTo
  • Example#3184 - IntlCalendar::isLenient
  • Example#3185 - IntlCalendar::isWeekend
  • Example#3186 - IntlCalendar::roll
  • Example#3187 - IntlCalendar::set
  • Example#3188 - IntlCalendar::setFirstDayOfWeek
  • Example#3189 - IntlCalendar::setTime
  • Example#3190 - IntlCalendar::setTimeZone
  • Example#3191 - IntlCalendar::toDateTime
  • Example#3192 - datefmt_create example
  • Example#3193 - OO example
  • Example#3194 - datefmt_format example
  • Example#3195 - OO example
  • Example#3196 - With IntlCalendar object
  • Example#3197 - IntlDateFormatter::formatObject examples
  • Example#3198 - datefmt_get_calendar example
  • Example#3199 - OO example
  • Example#3200 - datefmt_get_datetype example
  • Example#3201 - OO example
  • Example#3202 - datefmt_get_error_code example
  • Example#3203 - OO example
  • Example#3204 - datefmt_get_error_message example
  • Example#3205 - OO example
  • Example#3206 - datefmt_get_locale example
  • Example#3207 - OO example
  • Example#3208 - datefmt_get_pattern example
  • Example#3209 - OO example
  • Example#3210 - datefmt_get_timetype example
  • Example#3211 - OO example
  • Example#3212 - datefmt_get_timezone_id example
  • Example#3213 - OO example
  • Example#3214 - IntlDateFormatter::getCalendarObject example
  • Example#3215 - IntlDateFormatter::getTimeZone examples
  • Example#3216 - datefmt_is_lenient example
  • Example#3217 - OO example
  • Example#3218 - datefmt_localtime example
  • Example#3219 - OO example
  • Example#3220 - OO example
  • Example#3221 - datefmt_parse example
  • Example#3222 - datefmt_set_calendar example
  • Example#3223 - OO example
  • Example#3224 - Example with IntlCalendar argument
  • Example#3225 - datefmt_set_lenient example
  • Example#3226 - OO example
  • Example#3227 - datefmt_set_pattern example
  • Example#3228 - OO example
  • Example#3229 - datefmt_set_timezone_id example
  • Example#3230 - OO example
  • Example#3231 - IntlDateFormatter::setTimeZone examples
  • Example#3232 - Пример использования resourcebundle_count
  • Example#3233 - Пример в объектно-ориентированном стиле
  • Example#3234 - Пример использования resourcebundle_create
  • Example#3235 - Пример использования ResourceBundle::create
  • Example#3236 - Пример использования resourcebundle_get_error_code
  • Example#3237 - Пример в объектно-ориентированном стиле
  • Example#3238 - Пример использования resourcebundle_get_error_message
  • Example#3239 - Пример в объектно-ориентированном стиле
  • Example#3240 - Пример использования resourcebundle_get
  • Example#3241 - Пример в объектно-ориентированном стиле
  • Example#3242 - Пример использования resourcebundle_locales
  • Example#3243 - Пример в объектно-ориентированном стиле
  • Example#3244 - Пример использования Spoofchecker::areConfusable
  • Example#3245 - Пример использования Spoofchecker::isSuspicious
  • Example#3246 - Конвертация экранированной UTF-16 строки
  • Example#3247 - grapheme_extract example
  • Example#3248 - grapheme_stripos example
  • Example#3249 - grapheme_stristr example
  • Example#3250 - grapheme_strlen example
  • Example#3251 - grapheme_strpos example
  • Example#3252 - grapheme_strripos example
  • Example#3253 - grapheme_strrpos example
  • Example#3254 - grapheme_strstr example
  • Example#3255 - grapheme_substr example
  • Example#3256 - Пример использования idn_to_ascii
  • Example#3257 - Пример использования idn_to_utf8
  • Example#3258 - Тестирование различных способов задания
  • Example#3259 - Тестирование различных способов задания
  • Example#3260 - Тестирование различных способов задания
  • Example#3261 - Тестирование различных способов задания
  • Example#3262 - Тестирование различных способов задания
  • Example#3263 - Тестирование различных способов задания
  • Example#3264 - Тестирование различных способов задания
  • Example#3265 - Тестирование различных способов задания
  • Example#3266 - Тестирование различных способов задания
  • Example#3267 - Перечисления диапазона символов
  • Example#3268 - Перечисление диапазонов категорий символов
  • Example#3269 - Тестирование различных способов задания
  • Example#3270 - Тестирование различных способов задания
  • Example#3271 - Тестирование различных способов задания
  • Example#3272 - Тестирование различных способов задания
  • Example#3273 - Тестирование различных способов задания
  • Example#3274 - Тестирование различных свойств
  • Example#3275 - Тестирование различных свойств
  • Example#3276 - Тестирование различных свойств
  • Example#3277 - Тестирование различных способов задания
  • Example#3278 - Тестирование различных свойств
  • Example#3279 - Тестирование различных свойств
  • Example#3280 - Тестирование различных свойств
  • Example#3281 - Тестирование различных свойств
  • Example#3282 - Тестирование различных свойств
  • Example#3283 - Тестирование различных свойств
  • Example#3284 - Тестирование различных способов задания
  • Example#3285 - Тестирование различных способов задания
  • Example#3286 - Тестирование различных способов задания
  • Example#3287 - Тестирование различных способов задания
  • Example#3288 - Тестирование различных способов задания
  • Example#3289 - Тестирование различных способов задания
  • Example#3290 - Тестирование различных способов задания
  • Example#3291 - Тестирование различных способов задания
  • Example#3292 - Тестирование различных способов задания
  • Example#3293 - Тестирование различных способов задания
  • Example#3294 - Тестирование различных способов задания
  • Example#3295 - Тестирование различных способов задания
  • Example#3296 - Тестирование различных способов задания
  • Example#3297 - Тестирование различных способов задания
  • Example#3298 - Тестирование различных способов задания
  • Example#3299 - Тестирование различных способов задания
  • Example#3300 - Тестирование различных способов задания
  • Example#3301 - Тестирование различных способов задания
  • Example#3302 - Тестирование различных способов задания
  • Example#3303 - Тестирование различных способов задания
  • Example#3304 - Тестирование различных способов задания
  • Example#3305 - Тестирование различных способов задания
  • Example#3306 - Тестирование различных способов задания
  • Example#3307 - Тестирование различных способов задания
  • Example#3308 - Тестирование различных способов задания
  • Example#3309 - Тестирование различных способов задания
  • Example#3310 - Тестирование различных способов задания
  • Example#3311 - Тестирование различных способов задания
  • Example#3312 - Тестирование различных способов задания
  • Example#3313 - Тестирование различных способов задания
  • Example#3314 - Тестирование различных способов задания
  • Example#3315 - Тестирование различных способов задания
  • Example#3316 - Пример использования intl_error_name
  • Example#3317 - Пример использования intl_get_error_code
  • Example#3318 - Пример использования intl_get_error_message
  • Example#3319 - Пример использования intl_is_failure
  • Example#3320 - Примеры настроек php.ini
  • Example#3321 - Настройки php.ini для пользователей EUC-JP
  • Example#3322 - Настройки php.ini для пользователей SJIS
  • Example#3323 - Отключение преобразования кодировки HTTP ввода в php.ini
  • Example#3324 - Пример настройки php.ini
  • Example#3325 - Пример скрипта
  • Example#3326 - Пример использования mb_convert_case
  • Example#3327 - Пример использования mb_convert_case с нелатинским UTF-8 текстом
  • Example#3328 - Пример использования mb_convert_encoding
  • Example#3329 - Пример использования mb_convert_kana
  • Example#3330 - Пример использования mb_convert_variables
  • Example#3331 - Пример convmap
  • Example#3332 - Пример экранирования строки JavaScript с помощью convmap
  • Example#3333 - Пример использования mb_detect_encoding
  • Example#3334 - Пример использования mb_detect_order
  • Example#3335 - Пример бесполезного порядка определения
  • Example#3336 - Пример использования mb_encode_mimeheader
  • Example#3337 - Пример convmap
  • Example#3338 - Пример использования mb_encode_numericentity
  • Example#3339 - Пример использования mb_encoding_aliases
  • Example#3340 - Пример функции mb_ereg_replace_callback
  • Example#3341 - mb_ereg_replace_callback использует анонимную функцию, поддерживаемую в PHP 5.3.0 или более поздней версии
  • Example#3342 - Пример использования mb_internal_encoding
  • Example#3343 - Пример использования mb_list_encodings
  • Example#3344 - Пример использования mb_output_handler
  • Example#3345 - Пример использования mb_preferred_mime_name
  • Example#3346 - Пример использования mb_strimwidth
  • Example#3347 - Пример использования mb_strtolower
  • Example#3348 - Пример использования mb_strtolower с нелатинскими буквами
  • Example#3349 - Пример использования mb_strtoupper
  • Example#3350 - Пример использования mb_strtoupper с нелатинскими буквами
  • Example#3351 - Пример использования mb_substitute_character
  • Example#3352 - Пример использования mb_substr_count
  • Example#3353 - pspell_add_to_personal
  • Example#3354 - Пример использования pspell_check
  • Example#3355 - Пример использования pspell_add_to_personal
  • Example#3356 - pspell_config_create
  • Example#3357 - pspell_config_ignore
  • Example#3358 - Пример использования pspell_config_mode
  • Example#3359 - pspell_config_personal
  • Example#3360 - pspell_config_repl
  • Example#3361 - pspell_config_runtogether
  • Example#3362 - pspell_new_config
  • Example#3363 - pspell_new_personal
  • Example#3364 - pspell_new
  • Example#3365 - pspell_add_to_personal
  • Example#3366 - pspell_store_replacement
  • Example#3367 - Пример использования pspell_suggest
  • Example#3368 - Пример использования recode_file
  • Example#3369 - Пример использования recode_string
  • Example#3370 - Пример использования Cairo
  • Example#3371 - Пример использования cairo_create
  • Example#3372 - Пример использования cairo_font_options_create
  • Example#3373 - Пример использования cairo_font_options_equal
  • Example#3374 - Пример использования cairo_font_options_get_antialias
  • Example#3375 - Пример использования cairo_font_options_get_hint_metrics
  • Example#3376 - Пример использования cairo_font_options_get_hint_style
  • Example#3377 - Пример использования cairo_font_options_get_subpixel_order
  • Example#3378 - Пример использования cairo_font_options_hash
  • Example#3379 - Пример использования cairo_font_options_merge
  • Example#3380 - Пример использования cairo_font_options_set_antialias
  • Example#3381 - Пример использования cairo_font_options_set_hint_metrics
  • Example#3382 - Пример использования cairo_font_options_set_hint_style
  • Example#3383 - Пример использования cairo_font_options_set_subpixel_order
  • Example#3384 - Пример использования cairo_font_options_status
  • Example#3385 - Пример использования cairo_format_stride_for_width
  • Example#3386 - Пример использования cairo_image_surface_create_for_data
  • Example#3387 - Пример использования cairo_image_surface_create_from_png
  • Example#3388 - Пример использования cairo_image_surface_create
  • Example#3389 - Пример использования cairo_image_surface_get_data
  • Example#3390 - Пример использования cairo_image_surface_get_format
  • Example#3391 - Пример использования cairo_image_surface_get_height
  • Example#3392 - Пример использования cairo_image_surface_get_stride
  • Example#3393 - Пример использования cairo_image_surface_get_width
  • Example#3394 - Пример использования cairo_matrix_invert
  • Example#3395 - Пример использования cairo_matrix_multiply
  • Example#3396 - Пример использования cairo_matrix_transform_distance
  • Example#3397 - Пример использования cairo_matrix_transform_point
  • Example#3398 - Пример использования cairo_matrix_translate
  • Example#3399 - Пример использования cairo_pattern_add_color_stop_rgb
  • Example#3400 - Пример использования cairo_pattern_add_color_stop_rgba
  • Example#3401 - Пример использования cairo_pattern_create_for_surface
  • Example#3402 - Пример использования cairo_pattern_create_linear
  • Example#3403 - Пример использования cairo_pattern_create_radial
  • Example#3404 - Пример использования cairo_pattern_create_rgb
  • Example#3405 - Пример использования cairo_pattern_create_rgba
  • Example#3406 - Пример использования cairo_pattern_get_color_stop_count
  • Example#3407 - Пример использования cairo_pattern_get_color_stop_rgba
  • Example#3408 - Пример использования cairo_pattern_get_extend
  • Example#3409 - Пример использования cairo_pattern_get_filter
  • Example#3410 - Пример использования cairo_pattern_get_linear_points
  • Example#3411 - Пример использования cairo_pattern_get_matrix
  • Example#3412 - Пример использования cairo_pattern_get_radial_circles
  • Example#3413 - Пример использования cairo_pattern_get_rgba
  • Example#3414 - Пример использования cairo_pattern_get_surface
  • Example#3415 - Пример использования cairo_pattern_get_type
  • Example#3416 - Пример использования cairo_pattern_set_extend
  • Example#3417 - Пример использования cairo_pattern_set_filter
  • Example#3418 - Пример использования cairo_pattern_set_matrix
  • Example#3419 - Пример использования cairo_pattern_status
  • Example#3420 - Пример использования cairo_pdf_surface_create
  • Example#3421 - Пример использования cairo_pdf_surface_set_size
  • Example#3422 - Пример использования cairo_ps_get_levels
  • Example#3423 - Пример использования cairo_ps_level_to_string
  • Example#3424 - Пример использования cairo_ps_surface_create
  • Example#3425 - Пример использования cairo_ps_surface_dsc_begin_page_setup
  • Example#3426 - Пример использования cairo_ps_surface_dsc_begin_setup
  • Example#3427 - Пример использования cairo_ps_surface_dsc_comment
  • Example#3428 - Пример использования cairo_ps_surface_get_eps
  • Example#3429 - Пример использования cairo_ps_surface_restrict_to_level
  • Example#3430 - Пример использования cairo_ps_surface_set_eps
  • Example#3431 - Пример использования cairo_ps_surface_set_size
  • Example#3432 - Пример использования cairo_scaled_font_create
  • Example#3433 - Пример использования cairo_scaled_font_extents
  • Example#3434 - Пример использования cairo_scaled_font_get_ctm
  • Example#3435 - Пример использования cairo_scaled_font_get_font_face
  • Example#3436 - Пример использования cairo_scaled_font_get_font_matrix
  • Example#3437 - Пример использования cairo_scaled_font_get_font_options
  • Example#3438 - Пример использования cairo_scaled_font_get_scale_matrix
  • Example#3439 - Пример использования cairo_scaled_font_get_type
  • Example#3440 - Пример использования cairo_scaled_font_glyph_extents
  • Example#3441 - Пример использования cairo_scaled_font_status
  • Example#3442 - Пример использования cairo_scaled_font_text_extents
  • Example#3443 - Пример использования cairo_surface_copy_page
  • Example#3444 - Пример использования cairo_surface_create_similar
  • Example#3445 - Пример использования cairo_surface_finish
  • Example#3446 - Пример использования cairo_surface_flush
  • Example#3447 - Пример использования cairo_surface_get_content
  • Example#3448 - Пример использования cairo_surface_get_device_offset
  • Example#3449 - Пример использования cairo_surface_get_font_options
  • Example#3450 - Пример использования cairo_surface_get_type
  • Example#3451 - Пример использования cairo_surface_mark_dirty_rectangle
  • Example#3452 - Пример использования cairo_surface_mark_dirty
  • Example#3453 - Пример использования cairo_surface_set_device_offset
  • Example#3454 - Пример использования cairo_surface_set_fallback_resolution
  • Example#3455 - Пример использования cairo_surface_show_page
  • Example#3456 - Пример использования cairo_surface_status
  • Example#3457 - Пример использования cairo_surface_write_to_png
  • Example#3458 - Пример использования cairo_svg_surface_create
  • Example#3459 - Пример использования cairo_svg_surface_restrict_to_version
  • Example#3460 - Пример использования cairo_svg_version_to_string
  • Example#3461 - Объектно-ориентированный стиль
  • Example#3462 - Процедурный стиль
  • Example#3463 - Объектно-ориентированный стиль
  • Example#3464 - Процедурный стиль
  • Example#3465 - Объектно-ориентированный стиль
  • Example#3466 - Процедурный стиль
  • Example#3467 - Объектно-ориентированный стиль
  • Example#3468 - Процедурный стиль
  • Example#3469 - Объектно-ориентированный стиль
  • Example#3470 - Процедурный стиль
  • Example#3471 - Объектно-ориентированный стиль
  • Example#3472 - Процедурный стиль
  • Example#3473 - Объектно-ориентированный стиль
  • Example#3474 - Процедурный стиль
  • Example#3475 - Объектно-ориентированный стиль
  • Example#3476 - Процедурный стиль
  • Example#3477 - Объектно-ориентированный стиль
  • Example#3478 - Процедурный стиль
  • Example#3479 - Объектно-ориентированный стиль
  • Example#3480 - Процедурный стиль
  • Example#3481 - Объектно-ориентированный стиль
  • Example#3482 - Процедурный стиль
  • Example#3483 - Объектно-ориентированный стиль
  • Example#3484 - Процедурный стиль
  • Example#3485 - Объектно-ориентированный стиль
  • Example#3486 - Процедурный стиль
  • Example#3487 - CairoContext::__construct example
  • Example#3488 - Объектно-ориентированный стиль
  • Example#3489 - Процедурный стиль
  • Example#3490 - Объектно-ориентированный стиль
  • Example#3491 - Процедурный стиль
  • Example#3492 - Объектно-ориентированный стиль
  • Example#3493 - Процедурный стиль
  • Example#3494 - Объектно-ориентированный стиль
  • Example#3495 - Процедурный стиль
  • Example#3496 - Объектно-ориентированный стиль
  • Example#3497 - Процедурный стиль
  • Example#3498 - Объектно-ориентированный стиль
  • Example#3499 - Процедурный стиль
  • Example#3500 - Объектно-ориентированный стиль
  • Example#3501 - Процедурный стиль
  • Example#3502 - Объектно-ориентированный стиль
  • Example#3503 - Процедурный стиль
  • Example#3504 - Объектно-ориентированный стиль
  • Example#3505 - Процедурный стиль
  • Example#3506 - Объектно-ориентированный стиль
  • Example#3507 - Процедурный стиль
  • Example#3508 - Объектно-ориентированный стиль
  • Example#3509 - Процедурный стиль
  • Example#3510 - Объектно-ориентированный стиль
  • Example#3511 - Процедурный стиль
  • Example#3512 - Объектно-ориентированный стиль
  • Example#3513 - Процедурный стиль
  • Example#3514 - Объектно-ориентированный стиль
  • Example#3515 - Процедурный стиль
  • Example#3516 - Объектно-ориентированный стиль
  • Example#3517 - Процедурный стиль
  • Example#3518 - Объектно-ориентированный стиль
  • Example#3519 - Процедурный стиль
  • Example#3520 - Объектно-ориентированный стиль
  • Example#3521 - Процедурный стиль
  • Example#3522 - Объектно-ориентированный стиль
  • Example#3523 - Процедурный стиль
  • Example#3524 - Объектно-ориентированный стиль
  • Example#3525 - Процедурный стиль
  • Example#3526 - Объектно-ориентированный стиль
  • Example#3527 - Процедурный стиль
  • Example#3528 - Объектно-ориентированный стиль
  • Example#3529 - Процедурный стиль
  • Example#3530 - Объектно-ориентированный стиль
  • Example#3531 - Процедурный стиль
  • Example#3532 - Объектно-ориентированный стиль
  • Example#3533 - Процедурный стиль
  • Example#3534 - Объектно-ориентированный стиль
  • Example#3535 - Процедурный стиль
  • Example#3536 - Объектно-ориентированный стиль
  • Example#3537 - Процедурный стиль
  • Example#3538 - Объектно-ориентированный стиль
  • Example#3539 - Процедурный стиль
  • Example#3540 - Объектно-ориентированный стиль
  • Example#3541 - Процедурный стиль
  • Example#3542 - Объектно-ориентированный стиль
  • Example#3543 - Процедурный стиль
  • Example#3544 - Объектно-ориентированный стиль
  • Example#3545 - Процедурный стиль
  • Example#3546 - Объектно-ориентированный стиль
  • Example#3547 - Процедурный стиль
  • Example#3548 - Объектно-ориентированный стиль
  • Example#3549 - Процедурный стиль
  • Example#3550 - Объектно-ориентированный стиль
  • Example#3551 - Процедурный стиль
  • Example#3552 - Объектно-ориентированный стиль
  • Example#3553 - Процедурный стиль
  • Example#3554 - Объектно-ориентированный стиль
  • Example#3555 - Процедурный стиль
  • Example#3556 - Объектно-ориентированный стиль
  • Example#3557 - Процедурный стиль
  • Example#3558 - Объектно-ориентированный стиль
  • Example#3559 - Процедурный стиль
  • Example#3560 - Объектно-ориентированный стиль
  • Example#3561 - Процедурный стиль
  • Example#3562 - Объектно-ориентированный стиль
  • Example#3563 - Процедурный стиль
  • Example#3564 - Объектно-ориентированный стиль
  • Example#3565 - Процедурный стиль
  • Example#3566 - Объектно-ориентированный стиль
  • Example#3567 - Процедурный стиль
  • Example#3568 - Объектно-ориентированный стиль
  • Example#3569 - Процедурный стиль
  • Example#3570 - Объектно-ориентированный стиль
  • Example#3571 - Процедурный стиль
  • Example#3572 - Объектно-ориентированный стиль
  • Example#3573 - Процедурный стиль
  • Example#3574 - Объектно-ориентированный стиль
  • Example#3575 - Процедурный стиль
  • Example#3576 - Объектно-ориентированный стиль
  • Example#3577 - Процедурный стиль
  • Example#3578 - Объектно-ориентированный стиль
  • Example#3579 - Процедурный стиль
  • Example#3580 - Объектно-ориентированный стиль
  • Example#3581 - Процедурный стиль
  • Example#3582 - Объектно-ориентированный стиль
  • Example#3583 - Процедурный стиль
  • Example#3584 - Объектно-ориентированный стиль
  • Example#3585 - Процедурный стиль
  • Example#3586 - Объектно-ориентированный стиль
  • Example#3587 - Процедурный стиль
  • Example#3588 - Объектно-ориентированный стиль
  • Example#3589 - Процедурный стиль
  • Example#3590 - Объектно-ориентированный стиль
  • Example#3591 - Процедурный стиль
  • Example#3592 - Объектно-ориентированный стиль
  • Example#3593 - Процедурный стиль
  • Example#3594 - Объектно-ориентированный стиль
  • Example#3595 - Процедурный стиль
  • Example#3596 - Объектно-ориентированный стиль
  • Example#3597 - Процедурный стиль
  • Example#3598 - Объектно-ориентированный стиль
  • Example#3599 - Процедурный стиль
  • Example#3600 - Объектно-ориентированный стиль
  • Example#3601 - Процедурный стиль
  • Example#3602 - Объектно-ориентированный стиль
  • Example#3603 - Процедурный стиль
  • Example#3604 - Объектно-ориентированный стиль
  • Example#3605 - Процедурный стиль
  • Example#3606 - Объектно-ориентированный стиль
  • Example#3607 - Процедурный стиль
  • Example#3608 - Объектно-ориентированный стиль
  • Example#3609 - Процедурный стиль
  • Example#3610 - Объектно-ориентированный стиль
  • Example#3611 - Процедурный стиль
  • Example#3612 - Объектно-ориентированный стиль
  • Example#3613 - Процедурный стиль
  • Example#3614 - Объектно-ориентированный стиль
  • Example#3615 - Процедурный стиль
  • Example#3616 - Объектно-ориентированный стиль
  • Example#3617 - Процедурный стиль
  • Example#3618 - Объектно-ориентированный стиль
  • Example#3619 - Процедурный стиль
  • Example#3620 - Объектно-ориентированный стиль
  • Example#3621 - Процедурный стиль
  • Example#3622 - Объектно-ориентированный стиль
  • Example#3623 - Процедурный стиль
  • Example#3624 - Объектно-ориентированный стиль
  • Example#3625 - Процедурный стиль
  • Example#3626 - Объектно-ориентированный стиль
  • Example#3627 - Процедурный стиль
  • Example#3628 - Объектно-ориентированный стиль
  • Example#3629 - Процедурный стиль
  • Example#3630 - Объектно-ориентированный стиль
  • Example#3631 - Процедурный стиль
  • Example#3632 - Объектно-ориентированный стиль
  • Example#3633 - Процедурный стиль
  • Example#3634 - Объектно-ориентированный стиль
  • Example#3635 - Процедурный стиль
  • Example#3636 - Объектно-ориентированный стиль
  • Example#3637 - Процедурный стиль
  • Example#3638 - Объектно-ориентированный стиль
  • Example#3639 - Процедурный стиль
  • Example#3640 - Объектно-ориентированный стиль
  • Example#3641 - Процедурный стиль
  • Example#3642 - Объектно-ориентированный стиль
  • Example#3643 - Процедурный стиль
  • Example#3644 - Объектно-ориентированный стиль
  • Example#3645 - Процедурный стиль
  • Example#3646 - Объектно-ориентированный стиль
  • Example#3647 - Процедурный стиль
  • Example#3648 - Объектно-ориентированный стиль
  • Example#3649 - Процедурный стиль
  • Example#3650 - Объектно-ориентированный стиль
  • Example#3651 - Процедурный стиль
  • Example#3652 - Объектно-ориентированный стиль
  • Example#3653 - Процедурный стиль
  • Example#3654 - Объектно-ориентированный стиль
  • Example#3655 - Процедурный стиль
  • Example#3656 - Объектно-ориентированный стиль
  • Example#3657 - Процедурный стиль
  • Example#3658 - Объектно-ориентированный стиль
  • Example#3659 - Процедурный стиль
  • Example#3660 - Объектно-ориентированный стиль
  • Example#3661 - Процедурный стиль
  • Example#3662 - CairoSurface::createSimilar example
  • Example#3663 - CairoSurface::finish example
  • Example#3664 - CairoSurface::flush example
  • Example#3665 - CairoSurface::getContent example
  • Example#3666 - CairoSurface::getDeviceOffset example
  • Example#3667 - Объектно-ориентированный стиль
  • Example#3668 - Процедурный стиль
  • Example#3669 - CairoSurface::getType example
  • Example#3670 - CairoSurface::markDirty example
  • Example#3671 - CairoSurface::markDirtyRectangle example
  • Example#3672 - CairoSurface::setDeviceOffset example
  • Example#3673 - CairoSurface::setFallbackResolution example
  • Example#3674 - Объектно-ориентированный стиль
  • Example#3675 - Процедурный стиль
  • Example#3676 - Объектно-ориентированный стиль
  • Example#3677 - Процедурный стиль
  • Example#3678 - CairoSurface::writeToPng example
  • Example#3679 - Пример использования CairoSvgSurface::__construct
  • Example#3680 - Пример использования CairoSvgSurface::getVersions
  • Example#3681 - Процедурный стиль
  • Example#3682 - Пример использования CairoSvgSurface::restrictToVersion
  • Example#3683 - Пример использования CairoSvgSurface::versionToString
  • Example#3684 - CairoImageSurface::__construct example
  • Example#3685 - CairoImageSurface::createForData example
  • Example#3686 - CairoImageSurface::createFromPng example
  • Example#3687 - CairoImageSurface::getData example
  • Example#3688 - CairoImageSurface::getFormat example
  • Example#3689 - CairoImageSurface::getHeight example
  • Example#3690 - CairoImageSurface::getStride example
  • Example#3691 - CairoImageSurface::getWidth example
  • Example#3692 - CairoPdfSurface::__construct example
  • Example#3693 - CairoPdfSurface::setSize example
  • Example#3694 - CairoPsSurface::__construct example
  • Example#3695 - CairoPsSurface::dscBeginPageSetup example
  • Example#3696 - CairoPsSurface::dscBeginSetup example
  • Example#3697 - CairoPsSurface::dscComment example
  • Example#3698 - CairoPsSurface::getEps example
  • Example#3699 - CairoPsSurface::getLevels example
  • Example#3700 - CairoPsSurface::levelToString example
  • Example#3701 - CairoPsSurface::restrictToLevel example
  • Example#3702 - CairoPsSurface::setEps example
  • Example#3703 - CairoPsSurface::setSize example
  • Example#3704 - Пример использования CairoFontFace::__construct
  • Example#3705 - Пример использования CairoFontFace::getType
  • Example#3706 - Объектно-ориентированный стиль
  • Example#3707 - Процедурный стиль
  • Example#3708 - CairoFontOptions::__construct example
  • Example#3709 - CairoFontOptions::equal example
  • Example#3710 - Объектно-ориентированный стиль
  • Example#3711 - Процедурный стиль
  • Example#3712 - CairoFontOptions::getHintMetrics example
  • Example#3713 - CairoFontOptions::getHintStyle example
  • Example#3714 - CairoFontOptions::getSubpixelOrder example
  • Example#3715 - CairoFontOptions::hash example
  • Example#3716 - CairoFontOptions::merge example
  • Example#3717 - Объектно-ориентированный стиль
  • Example#3718 - Процедурный стиль
  • Example#3719 - CairoFontOptions::setHintMetrics example
  • Example#3720 - CairoFontOptions::setHintStyle example
  • Example#3721 - CairoFontOptions::setSubpixelOrder example
  • Example#3722 - Объектно-ориентированный стиль
  • Example#3723 - Процедурный стиль
  • Example#3724 - CairoScaledFont::__construct example
  • Example#3725 - CairoScaledFont::extents example
  • Example#3726 - CairoScaledFont::getCtm example
  • Example#3727 - Объектно-ориентированный стиль
  • Example#3728 - Процедурный стиль
  • Example#3729 - Объектно-ориентированный стиль
  • Example#3730 - Процедурный стиль
  • Example#3731 - Объектно-ориентированный стиль
  • Example#3732 - Процедурный стиль
  • Example#3733 - CairoScaledFont::getScaleMatrix example
  • Example#3734 - CairoScaledFont::getType example
  • Example#3735 - CairoScaledFont::glyphExtents example
  • Example#3736 - Объектно-ориентированный стиль
  • Example#3737 - Процедурный стиль
  • Example#3738 - Объектно-ориентированный стиль
  • Example#3739 - Процедурный стиль
  • Example#3740 - CairoPattern::__construct example
  • Example#3741 - Объектно-ориентированный стиль
  • Example#3742 - Процедурный стиль
  • Example#3743 - CairoPattern::getType example
  • Example#3744 - Объектно-ориентированный стиль
  • Example#3745 - Процедурный стиль
  • Example#3746 - Объектно-ориентированный стиль
  • Example#3747 - Процедурный стиль
  • Example#3748 - CairoGradientPattern::addColorStopRgb example
  • Example#3749 - CairoGradientPattern::addColorStopRgba example
  • Example#3750 - CairoGradientPattern::getColorStopCount example
  • Example#3751 - CairoGradientPattern::getColorStopRgba example
  • Example#3752 - CairoGradientPattern::getExtend example
  • Example#3753 - CairoGradientPattern::setExtend example
  • Example#3754 - Пример использования CairoSolidPattern::__construct
  • Example#3755 - Пример использования CairoSolidPattern::getRgba
  • Example#3756 - Пример использования CairoSurfacePattern::__construct
  • Example#3757 - Пример использования CairoSurfacePattern::getExtend
  • Example#3758 - Пример использования CairoSurfacePattern::getFilter
  • Example#3759 - Пример использования CairoSurfacePattern::getSurface
  • Example#3760 - Пример использования CairoSurfacePattern::setExtend
  • Example#3761 - Пример использования CairoSurfacePattern::setFilter
  • Example#3762 - Пример использования CairoLinearGradient::__construct
  • Example#3763 - Пример использования CairoLinearGradient::getPoints
  • Example#3764 - CairoRadialGradient::__construct example
  • Example#3765 - CairoRadialGradient::getCircles example
  • Example#3766 - Пример использования CairoFormat::strideForWidth
  • Example#3767 - Объектно-ориентированный стиль
  • Example#3768 - Процедурный стиль
  • Example#3769 - Объектно-ориентированный стиль
  • Example#3770 - Процедурный стиль
  • Example#3771 - Объектно-ориентированный стиль
  • Example#3772 - Процедурный стиль
  • Example#3773 - Объектно-ориентированный стиль
  • Example#3774 - Процедурный стиль
  • Example#3775 - Объектно-ориентированный стиль
  • Example#3776 - Процедурный стиль
  • Example#3777 - CairoMatrix::invert example
  • Example#3778 - CairoMatrix::multiply example
  • Example#3779 - Объектно-ориентированный стиль
  • Example#3780 - Процедурный стиль
  • Example#3781 - Объектно-ориентированный стиль
  • Example#3782 - Процедурный стиль
  • Example#3783 - CairoMatrix::transformDistance example
  • Example#3784 - CairoMatrix::transformPoint example
  • Example#3785 - Объектно-ориентированный стиль
  • Example#3786 - Процедурный стиль
  • Example#3787 - Пример использования exif_imagetype
  • Example#3788 - Пример использования exif_read_data
  • Example#3789 - Использование exif_read_data с потоковым ресурсом (доступно с PHP 7.2.0)
  • Example#3790 - Пример использования exif_tagname
  • Example#3791 - Пример использования exif_thumbnail
  • Example#3792 - Создание PNG средствами PHP
  • Example#3793 - Добавление водяных знаков на изображения с помощью альфа-каналов
  • Example#3794 - Использование imagecopymerge создать полупрозрачный водяной знак
  • Example#3795 - Пример использования gd_info
  • Example#3796 - getimagesize и MIME типы
  • Example#3797 - Пример использования getimagesize
  • Example#3798 - getimagesize (URL)
  • Example#3799 - getimagesize() возвращающая IPTC
  • Example#3800 - Пример использования getimagesizefromstring
  • Example#3801 - Пример использования image_type_to_extension
  • Example#3802 - Пример использования image_type_to_mime_type
  • Example#3803 - Пример использования image2wbmp
  • Example#3804 - Пример использования imageaffinematrixconcat
  • Example#3805 - imageaffinematrixget example
  • Example#3806 - Пример использования imagealphablending
  • Example#3807 - Сравнение двух линий, одна из которых рисуется с включенным сглаживанием
  • Example#3808 - Рисование окружности с помощью функции imagearc
  • Example#3809 - Сохранение BMP-файла
  • Example#3810 - Пример использования imagechar
  • Example#3811 - Пример использования imagecharup
  • Example#3812 - Пример использования imagecolorallocate
  • Example#3813 - Пример использования imagecolorallocatealpha
  • Example#3814 - Преобразование типичных альфа-значений для использования с imagecolorallocatealpha
  • Example#3815 - Доступ к компонентам RGB цвета
  • Example#3816 - Удобочитаемые RGB значения с использованием imagecolorsforindex
  • Example#3817 - Поиск набора цветов изображения
  • Example#3818 - Поиск набора цветов изображения
  • Example#3819 - Пример использования imagecolorclosesthwb
  • Example#3820 - Пример использования imagecolordeallocate
  • Example#3821 - Получение цветов GD логотипа
  • Example#3822 - Получение цветов GD логотипа
  • Example#3823 - Пример использования imagecolormatch
  • Example#3824 - Использование imagecoloresolve для получения цветов из изображения.
  • Example#3825 - Пример использования imagecoloresolvealpha для получения цветов из изображения
  • Example#3826 - Пример использования imagecolorset
  • Example#3827 - Пример использования imagecolorsforindex
  • Example#3828 - Получение количества цветов в изображении, используя imagecolorstotal
  • Example#3829 - Пример использования imagecolortransparent
  • Example#3830 - Создание рельефа на логотипе PHP.net
  • Example#3831 - Размытие по Гауссу
  • Example#3832 - Обрезка логотипа PHP.net
  • Example#3833 - Совмещение двух копий логотипа PHP.net с 75% прозрачностью
  • Example#3834 - Пример использования imagecopymergegray
  • Example#3835 - Простой пример
  • Example#3836 - Ресэмплирование изображения с сохранением пропорций
  • Example#3837 - Изменение размера изображения
  • Example#3838 - Создание нового GD потока изображения и вывод изображения.
  • Example#3839 - Конвертирование BMP-изображения в PNG-изображения, используя imagecreatefrombmp
  • Example#3840 - Пример использования imagecreatefromgd2
  • Example#3841 - Пример использования imagecreatefromgd2part
  • Example#3842 - Пример использования imagecreatefromgd
  • Example#3843 - Пример обработки ошибки при загрузке GIF
  • Example#3844 - Пример обработки ошибки при загрузке JPEG
  • Example#3845 - Пример обработки ошибки при загрузке PNG
  • Example#3846 - Пример использования imagecreatefromstring
  • Example#3847 - Пример обработки ошибки при загрузке WBMP
  • Example#3848 - Конвертирование WebP-изображения к jpeg-изображению, используя imagecreatefromwebp
  • Example#3849 - Преобразование XBM изображения в png, используя imagecreatefromxbm
  • Example#3850 - Создание изображения, используя imagecreatefromxpm
  • Example#3851 - Создание нового потока GD изображения и вывод картинки.
  • Example#3852 - Пример использования imagecrop
  • Example#3853 - Proper handling of auto-cropping
  • Example#3854 - Пример использования imagedashedline
  • Example#3855 - Альтернатива функции imagedashedline
  • Example#3856 - Пример использования imagedestroy
  • Example#3857 - Пример использования imageellipse
  • Example#3858 - Пример использования imagefill
  • Example#3859 - Создание трехмерного пирога
  • Example#3860 - Пример использования imagefilledellipse
  • Example#3861 - Пример использования imagefilledpolygon
  • Example#3862 - Пример использования imagefilledrectangle
  • Example#3863 - Закрашивание эллипса
  • Example#3864 - Пример использования imagefilter с фильтром grayscale
  • Example#3865 - Пример использования imagefilter с фильтром яркости
  • Example#3866 - Пример использования imagefilter с фильтром colorize
  • Example#3867 - Пример использования imagefilter с фильтром negate
  • Example#3868 - Пример использования imagefilter с фильтром pixelate
  • Example#3869 - Пример использования imagefilter с фильтром scatter
  • Example#3870 - Flips an image vertically
  • Example#3871 - Flips the image horizontally
  • Example#3872 - Пример использования imagefontheight на встроенных шрифтах
  • Example#3873 - Использование imagefontheight вместе с imageloadfont
  • Example#3874 - Использование imagefontwidth на встроенных шрифтах
  • Example#3875 - Использование imagefontwidth вместе с imageloadfont
  • Example#3876 - Пример использования imageftbbox
  • Example#3877 - Пример использования imagefttext
  • Example#3878 - Пример использования imagegammacorrect
  • Example#3879 - Вывод GD2 изображения
  • Example#3880 - Сохранение GD2 изображения
  • Example#3881 - Вывод GD-изображения
  • Example#3882 - Сохранение GD-изображения
  • Example#3883 - Пример использования imagegetclip
  • Example#3884 - Вывод изображения, используя imagegif
  • Example#3885 - Преобразование PNG в GIF, используя imagegif
  • Example#3886 - Пример использования imagegrabscreen
  • Example#3887 - Пример использования imagegrabwindow
  • Example#3888 - Включение интерлейсинга, используя imageinterlace
  • Example#3889 - Простое определение полноцветных изображений с помощью imageistruecolor
  • Example#3890 - Вывод JPEG-изображения в браузер
  • Example#3891 - Сохранение изображения JPEG в файл
  • Example#3892 - Вывод JPEG-изображения с 75% качеством в браузер
  • Example#3893 - Пример использования imagelayereffect
  • Example#3894 - Рисование жирной линии
  • Example#3895 - Пример использования imageloadfont
  • Example#3896 - imageopenpolygon example
  • Example#3897 - Пример использования imagepalettecopy
  • Example#3898 - Конвертирует любой ресурс изображения в настоящий цвет
  • Example#3899 - Пример использования imagepolygon
  • Example#3900 - Пример использования imagepsbbox
  • Example#3901 - Пример использования imagepsencodefont
  • Example#3902 - Пример использования imagepsextendfont
  • Example#3903 - Пример использования imagepsfreefont
  • Example#3904 - Пример использования imagepsloadfont
  • Example#3905 - Пример использования imagepsslantfont
  • Example#3906 - Пример использования imagepstext
  • Example#3907 - Пример использования imagerectangle
  • Example#3908 - Setting and getting the resolution of an image
  • Example#3909 - Поворот изображения на 180 градусов
  • Example#3910 - Пример использования imagesavealpha
  • Example#3911 - Пример использования imagesetbrush
  • Example#3912 - imagesetinterpolation example
  • Example#3913 - Пример использования imagesetpixel
  • Example#3914 - Пример использования imagesetstyle
  • Example#3915 - Пример использования imagesetthickness
  • Example#3916 - Пример использования imagesettile
  • Example#3917 - Пример использования imagestring
  • Example#3918 - Пример использования imagestringup
  • Example#3919 - Пример использования imagesx
  • Example#3920 - Пример использования imagesy
  • Example#3921 - Преобразование truecolor-изображения в палитровое
  • Example#3922 - Пример использования imagettfbbox
  • Example#3923 - Пример использования imagettftext
  • Example#3924 - Проверка поддержки PNG
  • Example#3925 - Вывод WBMP изображения
  • Example#3926 - Сохранение WBMP изображения
  • Example#3927 - Вывод изображения с измененным верхним слоем
  • Example#3928 - Сохранение WebP-файла
  • Example#3929 - Сохранение XBM файла
  • Example#3930 - Сохранение XBM файла с отличным цветом верхнего слоя
  • Example#3931 - Встраивание IPTC данных в JPEG
  • Example#3932 - iptcparse() используется совместно с getimagesize
  • Example#3933 - Пример использования jpeg2wbmp
  • Example#3934 - Пример использования png2wbmp
  • Example#3935 - Примеры использования Gmagick
  • Example#3936 - Gmagick::despeckleimage example
  • Example#3937 - Gmagick::setCompressionQuality
  • Example#3938 - Создание миниатюры в Imagick
  • Example#3939 - Создание миниатюр для всех JPG файлов в директории
  • Example#3940 - Создание отражения
  • Example#3941 - Заливка текста градиентом
  • Example#3942 - Чтение GIF изображения и изменение размера всех фреймов
  • Example#3943 - Create a PHP logo
  • Example#3944 - Пример использования Imagick::adaptiveBlurImage:
  • Example#3945 - Пример использования Imagick::adaptiveResizeImage
  • Example#3946 - Пример использования Imagick::adaptiveSharpenImage
  • Example#3947 - Пример использования Imagick::adaptiveThresholdImage
  • Example#3948 - Пример использования Imagick::addNoiseImage
  • Example#3949 - Пример использования Imagick::affineTransformImage
  • Example#3950 - Пример использования Imagick::annotateImage:
  • Example#3951 - Пример использования Imagick::appendImages
  • Example#3952 - Imagick::autoLevelImage
  • Example#3953 - Imagick::blackThresholdImage
  • Example#3954 - Imagick::blueShiftImage
  • Example#3955 - Пример использования Imagick::blurImage:
  • Example#3956 - Пример использования Imagick::borderImage
  • Example#3957 - Imagick::brightnessContrastImage
  • Example#3958 - Imagick::charcoalImage
  • Example#3959 - Использование Imagick::chopImage:
  • Example#3960 - Клонирование объекта Imagick в разных версиях
  • Example#3961 - Использование Imagick::clutImage:
  • Example#3962 - Imagick::colorizeImage
  • Example#3963 - Imagick::colorMatrixImage
  • Example#3964 - Using Imagick::commentImage:
  • Example#3965 - Using Imagick::compareImageLayers
  • Example#3966 - Using Imagick::compareImages:
  • Example#3967 - Using Imagick::compositeImage:
  • Example#3968 - Imagick::contrastImage
  • Example#3969 - Imagick::convolveImage
  • Example#3970 - Imagick::cropImage
  • Example#3971 - Imagick::deskewImage
  • Example#3972 - Imagick::despeckleImage
  • Example#3973 - Using Imagick::distortImage:
  • Example#3974 - Imagick::edgeImage
  • Example#3975 - Imagick::embossImage
  • Example#3976 - Imagick::enhanceImage
  • Example#3977 - Imagick::equalizeImage
  • Example#3978 - Using Imagick::evaluateImage
  • Example#3979 - Using Imagick::exportImagePixels
  • Example#3980 - Imagick::filter
  • Example#3981 - Imagick::flipImage
  • Example#3982 - Imagick::floodfillPaintImage example
  • Example#3983 - Imagick::flopImage
  • Example#3984 - Imagick::forwardFourierTransformImage
  • Example#3985 - Imagick::frameImage
  • Example#3986 - Create a sinusoidal gradient
  • Example#3987 - Create a gradient from the polynomial (4x^2 - 4x + 1)
  • Example#3988 - Create a complex gradient from the polynomial (4x^2 - 4x^2 + 1) modulated by a sinusoidal gradient
  • Example#3989 - Imagick::fxImage
  • Example#3990 - Imagick::gammaImage
  • Example#3991 - Imagick::gaussianBlurImage
  • Example#3992 - Imagick::getImageGeometry
  • Example#3993 - Generates Imagick::getImageHistogram
  • Example#3994 - Using Imagick::getImageLength:
  • Example#3995 - Использование Imagick::getImageProperties:
  • Example#3996 - Using Imagick::getImageProperty:
  • Example#3997 - Using Imagick::getIteratorIndex:
  • Example#3998 - Imagick::getPixelIterator
  • Example#3999 - Пример использования функции Imagick::getPixelRegionIterator
  • Example#4000 - Получение размера сырого изображения RGB, установленные в 200x400, после масштабирования до 400x800
  • Example#4001 - Imagick::haldClutImage
  • Example#4002 - Imagick::identifyFormat
  • Example#4003 - Пример результата
  • Example#4004 - Imagick::implodeImage
  • Example#4005 - Imagick::importImagePixels example
  • Example#4006 - Imagick::levelImage
  • Example#4007 - Imagick::linearStretchImage
  • Example#4008 - Imagick::magnifyImage
  • Example#4009 - Imagick::medianFilterImage
  • Example#4010 - Imagick::mergeImageLayers
  • Example#4011 - Imagick::modulateImage
  • Example#4012 - Convolve Imagick::morphology
  • Example#4013 - Correlate Imagick::morphology
  • Example#4014 - Erode Imagick::morphology
  • Example#4015 - Erode Intensity Imagick::morphology
  • Example#4016 - Dilate Imagick::morphology
  • Example#4017 - Dilate intensity Imagick::morphology
  • Example#4018 - Distance with Chebyshev kernel Imagick::morphology
  • Example#4019 - Distance with Manhattan kernel Imagick::morphology
  • Example#4020 - Distance with ocatagonal kernel Imagick::morphology
  • Example#4021 - Distance with Euclidean kernel Imagick::morphology
  • Example#4022 - Edge Imagick::morphology
  • Example#4023 - Open Imagick::morphology
  • Example#4024 - Open intensity Imagick::morphology
  • Example#4025 - Close Imagick::morphology
  • Example#4026 - Close Intensity Imagick::morphology
  • Example#4027 - Smooth Imagick::morphology
  • Example#4028 - Edge in Imagick::morphology
  • Example#4029 - Edge out Imagick::morphology
  • Example#4030 - The 'TopHat' method, or more specifically 'White Top Hat', returns the pixels that were removed by a Opening of the shape, that is the pixels that were removed to round off the points, and the connecting bridged between shapes. Imagick::morphology
  • Example#4031 - The 'BottomHat' method, also known as 'Black TopHat' is the pixels that a Closing of the shape adds to the image. That is the pixels that were used to fill in the 'holes', 'gaps', and 'bridges'. Imagick::morphology
  • Example#4032 - Hit and Miss Imagick::morphology
  • Example#4033 - Thinning Imagick::morphology
  • Example#4034 - Thicken Imagick::morphology
  • Example#4035 - Thick to generate a convex hull Imagick::morphology
  • Example#4036 - Iterative morphology Imagick::morphology
  • Example#4037 - Helper functon to get an image silhouette Imagick::morphology
  • Example#4038 - Imagick::motionBlurImage
  • Example#4039 - Imagick::negateImage
  • Example#4040 - Using Imagick::newImage:
  • Example#4041 - Imagick::newPseudoImage
  • Example#4042 - Imagick::normalizeImage
  • Example#4043 - Imagick::oilPaintImage
  • Example#4044 - Using Imagick::optimizeImageLayers
  • Example#4045 - Imagick::orderedPosterizeImage
  • Example#4046 - Using Imagick::pingImageBlob
  • Example#4047 - Using Imagick::pingImageFile
  • Example#4048 - A Imagick::polaroidImage example
  • Example#4049 - Imagick::posterizeImage
  • Example#4050 - Imagick::quantizeImage
  • Example#4051 - Using Imagick::queryFontMetrics:
  • Example#4052 - Imagick::queryFonts
  • Example#4053 - Imagick::queryFormats
  • Example#4054 - Imagick::radialBlurImage
  • Example#4055 - Imagick::raiseImage
  • Example#4056 - Imagick::randomThresholdImage
  • Example#4057 - Imagick::readImageBlob
  • Example#4058 - Imagick::recolorImage
  • Example#4059 - Imagick::reduceNoiseImage
  • Example#4060 - Imagick::resampleImage
  • Example#4061 - Imagick::resizeImage
  • Example#4062 - Imagick::rollImage
  • Example#4063 - Imagick::rotateImage
  • Example#4064 - Imagick::rotationalBlurImage
  • Example#4065 - Using Imagick::roundCorners:
  • Example#4066 - Imagick::scaleImage
  • Example#4067 - Imagick::segmentImage
  • Example#4068 - Imagick::selectiveBlurImage
  • Example#4069 - Imagick::separateImageChannel
  • Example#4070 - Imagick::sepiaToneImage
  • Example#4071 - Imagick::setCompressionQuality
  • Example#4072 - A Imagick::setFont example
  • Example#4073 - A Imagick::setImage example
  • Example#4074 - Imagick::setImageArtifact
  • Example#4075 - Imagick::setImageBias
  • Example#4076 - Imagick::setImageClipMask
  • Example#4077 - Imagick::setImageCompressionQuality
  • Example#4078 - Modify animated Gif with Imagick::setImageDelay
  • Example#4079 - Basic Imagick::setImageIterations usage
  • Example#4080 - A Imagick::setImageOpacity example
  • Example#4081 - Imagick::setImageOrientation
  • Example#4082 - Using Imagick::setImageProperty:
  • Example#4083 - Imagick::setImageResolution
  • Example#4084 - Modify animated Gif with Imagick::setImageTicksPerSecond
  • Example#4085 - Using Imagick::setIteratorIndex:
  • Example#4086 - Attempt to reach '$extent' sizeImagick::setOption
  • Example#4087 - Imagick::setOption
  • Example#4088 - Imagick::setOption
  • Example#4089 - A Imagick::setPointSize example
  • Example#4090 - Imagick::setProgressMonitor
  • Example#4091 - Imagick::setSamplingFactors
  • Example#4092 - Imagick::shadeImage
  • Example#4093 - Imagick::shadowImage
  • Example#4094 - Imagick::sharpenImage
  • Example#4095 - Imagick::shaveImage
  • Example#4096 - Imagick::shearImage
  • Example#4097 - Create a gradient image using Imagick::sigmoidalContrastImage suitable for blending two images together smoothly, with the blending defined by $contrast and $the midpoint
  • Example#4098 - Imagick::sketchImage
  • Example#4099 - Imagick::smushImages
  • Example#4100 - Imagick::solarizeImage
  • Example#4101 - SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage
  • Example#4102 - SPARSECOLORMETHOD_BILINEAR Imagick::sparseColorImage
  • Example#4103 - SPARSECOLORMETHOD_SPEPARDS Imagick::sparseColorImage
  • Example#4104 - SPARSECOLORMETHOD_VORONOI Imagick::sparseColorImage
  • Example#4105 - SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage
  • Example#4106 - createGradientImage is used by other examples. Imagick::sparseColorImage
  • Example#4107 - Imagick::spliceImage
  • Example#4108 - Imagick::spreadImage
  • Example#4109 - Imagick::statisticImage
  • Example#4110 - Imagick::subImageMatch
  • Example#4111 - Imagick::swirlImage
  • Example#4112 - Imagick::textureImage
  • Example#4113 - Imagick::thresholdImage
  • Example#4114 - Imagick::thumbnailImage
  • Example#4115 - Imagick::tintImage
  • Example#4116 - Using Imagick::transformImage:
  • Example#4117 - Imagick::transformImageColorspace example
  • Example#4118 - Imagick::transformImageColorspace
  • Example#4119 - Imagick::transparentPaintImage
  • Example#4120 - Imagick::transposeImage
  • Example#4121 - Imagick::transverseImage
  • Example#4122 - Using Imagick::trimImage:
  • Example#4123 - Imagick::uniqueImageColors
  • Example#4124 - Imagick::unsharpMaskImage
  • Example#4125 - Imagick::vignetteImage
  • Example#4126 - WaveImage can be quite slow Imagick::waveImage
  • Example#4127 - Imagick::whiteThresholdImage
  • Example#4128 - ImagickDraw::affine
  • Example#4129 - ImagickDraw::arc
  • Example#4130 - ImagickDraw::bezier
  • Example#4131 - ImagickDraw::circle
  • Example#4132 - ImagickDraw::composite
  • Example#4133 - ImagickDraw::ellipse
  • Example#4134 - ImagickDraw::line
  • Example#4135 - ImagickDraw::matte
  • Example#4136 - ImagickDraw::pathCurveToQuadraticBezierAbsolute
  • Example#4137 - ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute
  • Example#4138 - ImagickDraw::pathCurveToQuadraticBezierSmoothRelative
  • Example#4139 - ImagickDraw::pathStart
  • Example#4140 - ImagickDraw::point
  • Example#4141 - ImagickDraw::polygon
  • Example#4142 - ImagickDraw::polyline
  • Example#4143 - ImagickDraw::popDefs
  • Example#4144 - ImagickDraw::push
  • Example#4145 - ImagickDraw::pushPattern
  • Example#4146 - ImagickDraw::rectangle
  • Example#4147 - ImagickDraw::rotate
  • Example#4148 - ImagickDraw::roundRectangle
  • Example#4149 - ImagickDraw::scale
  • Example#4150 - ImagickDraw::setClipPath
  • Example#4151 - ImagickDraw::setClipRule
  • Example#4152 - ImagickDraw::setClipUnits
  • Example#4153 - ImagickDraw::setFillAlpha
  • Example#4154 - ImagickDraw::setFillColor
  • Example#4155 - ImagickDraw::setFillOpacity
  • Example#4156 - ImagickDraw::setFillRule
  • Example#4157 - ImagickDraw::setFont
  • Example#4158 - ImagickDraw::setFontFamily
  • Example#4159 - ImagickDraw::setFontSize
  • Example#4160 - ImagickDraw::setFontStretch
  • Example#4161 - ImagickDraw::setFontStyle
  • Example#4162 - ImagickDraw::setFontWeight
  • Example#4163 - ImagickDraw::setGravity
  • Example#4164 - ImagickDraw::setStrokeAlpha
  • Example#4165 - ImagickDraw::setStrokeAntialias
  • Example#4166 - ImagickDraw::setStrokeColor
  • Example#4167 - ImagickDraw::setStrokeDashArray
  • Example#4168 - ImagickDraw::setStrokeDashOffset
  • Example#4169 - ImagickDraw::setStrokeLineCap
  • Example#4170 - ImagickDraw::setStrokeLineJoin
  • Example#4171 - ImagickDraw::setStrokeMiterLimit
  • Example#4172 - ImagickDraw::setStrokeOpacity
  • Example#4173 - ImagickDraw::setStrokeWidth
  • Example#4174 - ImagickDraw::setTextAlignment
  • Example#4175 - ImagickDraw::setTextAntialias
  • Example#4176 - ImagickDraw::setTextDecoration
  • Example#4177 - ImagickDraw::setTextUnderColor
  • Example#4178 - ImagickDraw::setVectorGraphics
  • Example#4179 - ImagickDraw::setViewBox
  • Example#4180 - ImagickDraw::skewX
  • Example#4181 - ImagickDraw::skewY
  • Example#4182 - ImagickDraw::translate
  • Example#4183 - ImagickPixel::construct
  • Example#4184 - Пример использования Imagick::getColor
  • Example#4185 - Пример использования Imagick::getColorAsString
  • Example#4186 - ImagickPixel getColorCount
  • Example#4187 - Пример использования Imagick::getColorValue
  • Example#4188 - ImagickPixel::getColorValueQuantum
  • Example#4189 - Пример использования Imagick::getHSL
  • Example#4190 - ImagickPixel::isSimilar
  • Example#4191 - ImagickPixel::setColor
  • Example#4192 - Пример использования Imagick::setColorValue
  • Example#4193 - ImagickPixel::setColorValueQuantum
  • Example#4194 - Пример использования ImagickPixel::setHSL
  • Example#4195 - ImagickPixelIterator::clear
  • Example#4196 - ImagickPixelIterator::construct
  • Example#4197 - ImagickPixelIterator::getNextIteratorRow
  • Example#4198 - ImagickPixelIterator::resetIterator
  • Example#4199 - ImagickPixelIterator::setIteratorRow
  • Example#4200 - ImagickKernel::addKernel
  • Example#4201 - ImagickKernel::addUnityKernel
  • Example#4202 - ImagickKernel::addUnityKernel
  • Example#4203 - ImagickKernel::fromBuiltin
  • Example#4204 - ImagickKernel::fromMatrix
  • Example#4205 - ImagickKernel::getMatrix
  • Example#4206 - ImagickKernel::scale
  • Example#4207 - ImagickKernel::separate
  • Example#4208 - Пример использования imap_append
  • Example#4209 - Пример использования imap_check
  • Example#4210 - Пример использования imap_createmailbox
  • Example#4211 - Пример использования imap_delete
  • Example#4212 - Пример использования imap_fetch_overview
  • Example#4213 - Пример использования imap_gc
  • Example#4214 - Пример использования imap_get_quota
  • Example#4215 - Пример использования imap_get_quota в PHP 4.3 и выше
  • Example#4216 - Пример использования imap_get_quotaroot
  • Example#4217 - Пример использования imap_getacl
  • Example#4218 - Пример использования imap_getmailboxes
  • Example#4219 - Пример использования imap_list
  • Example#4220 - Пример использования imap_mail_compose
  • Example#4221 - Пример использования imap_mailboxmsginfo
  • Example#4222 - Пример использования imap_mime_header_decode
  • Example#4223 - Различные способы использования imap_open
  • Example#4224 - Пример использования imap_open
  • Example#4225 - Пример использования imap_ping
  • Example#4226 - Пример использования imap_reopen
  • Example#4227 - Пример использования imap_rfc822_parse_adrlist
  • Example#4228 - Пример использования imap_rfc822_write_address
  • Example#4229 - Пример использования imap_search
  • Example#4230 - Пример использования imap_set_quota
  • Example#4231 - Пример использования imap_setflag_full
  • Example#4232 - Пример использования imap_status
  • Example#4233 - Пример использования imap_thread
  • Example#4234 - Пример использования imap_timeout
  • Example#4235 - Вычисляет хеш-сумму и подписка пользователя на что-либо
  • Example#4236 - Отправка письма.
  • Example#4237 - Отправка письма с дополнительными заголовками.
  • Example#4238 - Отправка письма с дополнительными заголовками, переданными массивом
  • Example#4239 - Отправка письма с дополнительными аргументами командной строки.
  • Example#4240 - Отправка HTML-сообщения
  • Example#4241 - Пример использования mailparse_determine_best_xfer_encoding
  • Example#4242 - Пример использования mailparse_rfc822_parse_addresses
  • Example#4243 - Пример использования mailparse_stream_encode
  • Example#4244 - Пример использования mailparse_uudecode_all
  • Example#4245 - Пример использования bcadd
  • Example#4246 - Пример использования bccomp
  • Example#4247 - Пример использования bcdiv
  • Example#4248 - Пример использования bcmod
  • Example#4249 - Пример использования bcmod с десятичными знаками
  • Example#4250 - Пример использования bcmul
  • Example#4251 - Пример bcmul с заданной точностью
  • Example#4252 - Пример использования bcpow
  • Example#4253 - Пример уменьшения точности в bcpow
  • Example#4254 - Пример использования bcscale
  • Example#4255 - Пример использования bcsqrt
  • Example#4256 - Пример использования bcsub
  • Example#4257 - Вычисление факториала с помощью GMP
  • Example#4258 - Пример использования gmp_abs
  • Example#4259 - Пример использования gmp_add
  • Example#4260 - Пример использования gmp_and
  • Example#4261 - Пример использования gmp_clrbit
  • Example#4262 - Пример использования gmp_cmp
  • Example#4263 - Пример использования gmp_com
  • Example#4264 - Пример использования gmp_div_q
  • Example#4265 - Деление GMP чисел
  • Example#4266 - Пример использования gmp_div_r
  • Example#4267 - Пример использования gmp_divexact
  • Example#4268 - Пример использования gmp_export
  • Example#4269 - Пример использования gmp_fact
  • Example#4270 - Пример использования gmp_gcd
  • Example#4271 - Решение линейного Диофантового уравнения
  • Example#4272 - Пример использования gmp_hamdist
  • Example#4273 - Пример использования gmp_import
  • Example#4274 - Создание GMP числа
  • Example#4275 - Пример использования gmp_intval
  • Example#4276 - Пример использования gmp_invert
  • Example#4277 - Пример использования gmp_jacobi
  • Example#4278 - Пример использования gmp_legendre
  • Example#4279 - Пример использования gmp_mod
  • Example#4280 - Пример использования gmp_mul
  • Example#4281 - Пример использования gmp_neg
  • Example#4282 - Пример использования gmp_nextprime
  • Example#4283 - Пример использования gmp_or
  • Example#4284 - Пример использования gmp_perfect_square
  • Example#4285 - Пример использования gmp_popcount
  • Example#4286 - Пример использования gmp_pow
  • Example#4287 - Пример использования gmp_powm
  • Example#4288 - Пример использования gmp_prob_prime
  • Example#4289 - Пример использования gmp_random_bits
  • Example#4290 - Пример использования gmp_random_range
  • Example#4291 - Пример использования gmp_random_seed
  • Example#4292 - Пример использования gmp_random
  • Example#4293 - Пример использования gmp_scan0
  • Example#4294 - Пример использования gmp_scan1
  • Example#4295 - Пример использования gmp_setbit - 0 индекс
  • Example#4296 - Пример использования gmp_setbit - 1 индекс
  • Example#4297 - Пример использования gmp_setbit очистка бита
  • Example#4298 - Пример использования gmp_sign
  • Example#4299 - Пример использования gmp_sqrt
  • Example#4300 - Пример использования gmp_sqrtrem
  • Example#4301 - Преобразование GMP числа в строку
  • Example#4302 - Пример использования gmp_sub
  • Example#4303 - Пример использования gmp_testbit
  • Example#4304 - Пример использования gmp_xor
  • Example#4305 - Using Lapack::eigenValues:
  • Example#4306 - Using Lapack::leastSquaresByFactorisation:
  • Example#4307 - Using Lapack::leastSquaresBySVD:
  • Example#4308 - Using Lapack::pseudoInverse:
  • Example#4309 - Using Lapack::singularValues:
  • Example#4310 - Using Lapack::singularValues:
  • Example#4311 - Пример использования abs
  • Example#4312 - Пример использования base_convert
  • Example#4313 - Пример использования bindec
  • Example#4314 - bindec интерпретирует ввод как беззнаковое число
  • Example#4315 - Пример использования ceil
  • Example#4316 - Пример использования cos
  • Example#4317 - Пример использования decbin
  • Example#4318 - Пример использования dechex
  • Example#4319 - Пример использования dechex с большими целыми
  • Example#4320 - Пример использования decoct
  • Example#4321 - Пример использования deg2rad
  • Example#4322 - Пример использования exp
  • Example#4323 - Пример использования floor
  • Example#4324 - Пример использования fmod
  • Example#4325 - Пример использования hexdec
  • Example#4326 - Пример использования intdiv
  • Example#4327 - Пример использования is_nan
  • Example#4328 - Пример использования max
  • Example#4329 - Пример использования min
  • Example#4330 - Вычисление случайного числа с плавающей точкой
  • Example#4331 - Пример использования mt_rand
  • Example#4332 - Пример использования mt_srand
  • Example#4333 - Пример использования octdec
  • Example#4334 - Пример использования pi
  • Example#4335 - Примеры использования pow
  • Example#4336 - Пример использования rad2deg
  • Example#4337 - Пример использования rand
  • Example#4338 - Пример использования round
  • Example#4339 - Как параметр precision влияет на числа с плавющей запятой
  • Example#4340 - Примеры использования параметра mode
  • Example#4341 - Примеры использования параметра mode с указанием точности precision
  • Example#4342 - Пример использования sin
  • Example#4343 - Пример использованияsqrt
  • Example#4344 - Пример использования srand
  • Example#4345 - Пример использования tan
  • Example#4346 - Обработка документа FDF
  • Example#4347 - Adding JavaScript code to a FDF
  • Example#4348 - Populating a PDF document
  • Example#4349 - Storing an uploaded file
  • Example#4350 - Detecting all fieldnames in a FDF
  • Example#4351 - Accessing the form data
  • Example#4352 - Accessing the form data
  • Example#4353 - Retrieving FDF as a string
  • Example#4354 - Passing FDF data to a second form
  • Example#4355 - Процедурный пример создания чистой подписи GnuPG
  • Example#4356 - Объектно-ориентированный пример создания чистой подписи GnuPG
  • Example#4357 - keylistiterator
  • Example#4358 - Пример использования gnupg_adddecryptkey в процедурном стиле
  • Example#4359 - Пример использования gnupg_adddecryptkey в объектно-ориентированном стиле
  • Example#4360 - Процедурный пример использования gnupg_addencryptkey
  • Example#4361 - Объектно-ориентированный пример использования gnupg_addencryptkey
  • Example#4362 - Процедурный пример использования gnupg_addsignkey
  • Example#4363 - Объектно-ориентированный пример использования gnupg_addsignkey
  • Example#4364 - Процедурный пример использования gnupg_cleardecryptkeys
  • Example#4365 - Объектно-ориентированный пример использования gnupg_cleardecryptkeys
  • Example#4366 - Процедурный пример использования gnupg_clearencryptkeys
  • Example#4367 - Объектно-ориентированный пример использования gnupg_clearencryptkeys
  • Example#4368 - Процедурный пример использования gnupg_clearsignkeys
  • Example#4369 - Объектно-ориентированный пример использования gnupg_clearsignkeys
  • Example#4370 - Процедурный пример использования gnupg_decrypt
  • Example#4371 - Объектно-ориентированный пример использования gnupg_encrypt
  • Example#4372 - Пример использования gnupg_decryptverify в процедурном стиле
  • Example#4373 - Пример использования gnupg_decryptverify в объектно-ориентированном стиле
  • Example#4374 - Пример использования gnupg_encrypt в процедурном стиле
  • Example#4375 - Пример использования gnupg_encrypt в объектно-ориентированном стиле
  • Example#4376 - Процедурный пример использования gnupg_encryptsign
  • Example#4377 - Объектно-ориентированный пример использования gnupg_encryptsign
  • Example#4378 - Пример использования gnupg_export в процедурном стиле
  • Example#4379 - Пример использования gnupg_export в объектно-ориентированном стиле
  • Example#4380 - Пример использования gnupg_geterror в процедурном стиле
  • Example#4381 - Пример использования gnupg_geterror в объектно-ориентированном стиле
  • Example#4382 - Пример использования gnupg_getprotocol в процедурном стиле
  • Example#4383 - Пример использования gnupg_getprotocol в объектно-ориентированном стиле
  • Example#4384 - Пример использования gnupg_import в процедурном стиле
  • Example#4385 - Пример использования gnupg_import в объектно-ориентированном стиле
  • Example#4386 - Пример использования gnupg_init в процедурном стиле
  • Example#4387 - Пример использования в объектно-ориентированном стиле
  • Example#4388 - Пример использования gnupg_keyinfo в процедурном стиле
  • Example#4389 - Пример использования gnupg_keyinfo в объектно-ориентированном стиле
  • Example#4390 - Пример использования gnupg_setarmor в процедурном стиле
  • Example#4391 - Пример использования gnupg_setarmor в объектно-ориентированном стиле
  • Example#4392 - Пример использования gnupg_seterrormode в процедурном стиле
  • Example#4393 - Пример использования gnupg_seterrormode в объектно-ориентированном стиле
  • Example#4394 - Пример использования gnupg_setsignmode в процедурном стиле
  • Example#4395 - Пример использования gnupg_setsignmode в объектно-ориентированном стиле
  • Example#4396 - Пример использования gnupg_sign в процедурном стиле
  • Example#4397 - Пример использования gnupg_sign в объектно-ориентированном стиле
  • Example#4398 - Пример использования gnupg_verify в процедурном стиле
  • Example#4399 - Пример использования gnupg_verify в объектно-ориентированном стиле
  • Example#4400 - "Hello world"
  • Example#4401 - swfaction example
  • Example#4402 - swfaction example
  • Example#4403 - swfaction example
  • Example#4404 - swfsprite example
  • Example#4405 - Пример использования ming_useswfversion
  • Example#4406 - Импортирование DBL-файла
  • Example#4407 - Использование альфа-маски
  • Example#4408 - Usual interactions with buttons
  • Example#4409 - Drag example
  • Example#4410 - swfdisplayitem::multcolor example
  • Example#4411 - swfdisplayitem::rotateto example
  • Example#4412 - swfdisplayitem::setname example
  • Example#4413 - Пример использования swfgradient
  • Example#4414 - Пример использования swfmorph
  • Example#4415 - Displaying your $movie in a browser
  • Example#4416 - Streaming example
  • Example#4417 - SWFShape::addFill example
  • Example#4418 - swfshape example
  • Example#4419 - swfshape::setline example
  • Example#4420 - Пример использования swftext
  • Example#4421 - Пример PDFlib на PHP 4
  • Example#4422 - Пример PDFlib на PHP 5
  • Example#4423 - Creating and using a pattern
  • Example#4424 - Creating and using a template
  • Example#4425 - Hyphennate a text
  • Example#4426 - Drawing a rectangle
  • Example#4427 - Creating and using a spot color
  • Example#4428 - Rotation of the coordinate system
  • Example#4429 - Placing text at a given position
  • Example#4430 - Drawing a dashed line
  • Example#4431 - Translation of the coordinate system
  • Example#4432 - Пример простого использования RPMReader
  • Example#4433 - Пример использования rpm_close
  • Example#4434 - Пример использования rpm_get_tag
  • Example#4435 - Пример использования rpm_is_valid
  • Example#4436 - Пример использования rpm_open
  • Example#4437 - Пример использования rpm_version
  • Example#4438 - Пример использования
  • Example#4439 - Пример использования
  • Example#4440 - Пример использования
  • Example#4441 - Пример использования
  • Example#4442 - Пример использования
  • Example#4443 - Пример использования
  • Example#4444 - Пример использования
  • Example#4445 - Пример использования
  • Example#4446 - Пример использования
  • Example#4447 - Пример использования
  • Example#4448 - Пример использования
  • Example#4449 - Пример использования
  • Example#4450 - Пример использования
  • Example#4451 - Пример использования
  • Example#4452 - Пример использования
  • Example#4453 - Пример использования
  • Example#4454 - Пример использования
  • Example#4455 - Пример использования
  • Example#4456 - Пример использования
  • Example#4457 - Пример неправильных запросов
  • Example#4458 - Создание запроса с использованием callback-функции
  • Example#4459 - Создание запроса с использованием callback-функции
  • Example#4460 - Использование eio совместно с libevent
  • Example#4461 - Отмена запроса
  • Example#4462 - Вызов eio_chmod
  • Example#4463 - Создание пользовательского запроса
  • Example#4464 - Группировка запросов
  • Example#4465 - Использование eio совместно с модулем libevent
  • Example#4466 - Использование eio с модулем event
  • Example#4467 - eio_cancel example
  • Example#4468 - Пример использования eio_custom
  • Example#4469 - Пример использования eio_event_loop
  • Example#4470 - Пример использования eio_lstat
  • Example#4471 - Использование eio совместно с libevent
  • Example#4472 - Создание группы запросов
  • Example#4473 - Пример использования eio_grp
  • Example#4474 - Пример использования eio_link
  • Example#4475 - Пример использования eio_lstat
  • Example#4476 - Пример использования eio_mkdir
  • Example#4477 - Пример использования eio_mknod
  • Example#4478 - Пример использования eio_nreqs
  • Example#4479 - Пример использования eio_open
  • Example#4480 - Пример использования eio_poll
  • Example#4481 - Пример использования eio_read
  • Example#4482 - Пример использования eio_readdir
  • Example#4483 - Пример использования eio_readlink
  • Example#4484 - Пример использования eio_realpath
  • Example#4485 - Пример использования eio_rename
  • Example#4486 - Пример использования eio_rmdir
  • Example#4487 - Пример использования eio_stat
  • Example#4488 - Пример использования eio_statvfs
  • Example#4489 - Пример использования eio_symlink
  • Example#4490 - Простые таймеры
  • Example#4491 - Периодический таймер. Срабатывает раз в 10.5 секунд
  • Example#4492 - Периодический таймер. Использование callback-функции для перезадания интервала
  • Example#4493 - Периодический таймер. Tick every 10.5 seconds starting at now
  • Example#4494 - Ждем, пока STDIN не станет читаемым
  • Example#4495 - Используем асинхронный ввод/вывод для доступа к сокету
  • Example#4496 - Встраиваем один цикл в другой
  • Example#4497 - Встраивание цикла, созданного с помощью kqueue в цикл по умолчанию
  • Example#4498 - Перехватываем сигнал SIGTERM
  • Example#4499 - Отслеживаем изменение /var/log/messages
  • Example#4500 - Отслеживаем изменение /var/log/messages. Избегаем пропуска обновлений с помощью задержки в одну секунду
  • Example#4501 - Изменения статуса процесса
  • Example#4502 - Использование наблюдателя с ручным переопределением времени срабатывания
  • Example#4503 - Цикл создается с использованием kqueue и встраивается в цикл по умолчанию
  • Example#4504 - Встраивание одного цикла в другой
  • Example#4505 - Цикл создается с использованием kqueue и встраивается в цикл по умолчанию
  • Example#4506 - Встраивание цикла, созданного с помощью kqueue в событийный цикл по умолчанию
  • Example#4507 - Периодический таймер. Используйте переназначение callback-функции
  • Example#4508 - Периодический таймер. Отмечает каждые 10,5 секунд, начиная с текущего момента
  • Example#4509 - Часовой наблюдатель
  • Example#4510 - Обработка сигнала SIGTERM
  • Example#4511 - Отслеживаем изменения в /var/log/messages
  • Example#4512 - Смотрим изменения в /var/log/messages
  • Example#4513 - Простые таймеры
  • Example#4514 - Следим за изменениями /var/log/messages. Избегаем пропущенные обновления с задержкой в одну секунду
  • Example#4515 - Регистрируем наблюдатель ввода-вывода для какого-либо UDP-сокета, но не препятствуем запуску цикла событий только из-за этого наблюдателя.
  • Example#4516 - Пример использования Expect
  • Example#4517 - Еще один пример использования Expect
  • Example#4518 - Пример использования expect_expectl
  • Example#4519 - Пример использования expect_popen
  • Example#4520 - опрос STDIN с использованием базового API
  • Example#4521 - опрос STDIN с использованием API буферизированных событий
  • Example#4522 - Пример Управления процессами
  • Example#4523 - Пример pcntl_fork
  • Example#4524 - Пример использования pcntl_signal_dispatch:
  • Example#4525 - Пример использования pcntl_signal_get_handler
  • Example#4526 - Пример использования pcntl_signal
  • Example#4527 - Пример использования pcntl_sigprocmask
  • Example#4528 - Пример использования pcntl_sigwaitinfo
  • Example#4529 - Пример использования posix_access
  • Example#4530 - Пример использования posix_ctermid
  • Example#4531 - Пример использования posix_get_last_error
  • Example#4532 - Пример использования posix_getcwd
  • Example#4533 - Пример использования posix_getegid
  • Example#4534 - Пример использования posix_geteuid
  • Example#4535 - Пример использования posix_getgid
  • Example#4536 - Пример использования posix_getgrgid
  • Example#4537 - Пример использования posix_getgrnam
  • Example#4538 - Пример использования posix_getgroups
  • Example#4539 - Пример использования posix_getlogin
  • Example#4540 - Пример использования posix_getpgid
  • Example#4541 - Пример использования posix_getpid
  • Example#4542 - Пример использования posix_getppid
  • Example#4543 - Пример использования posix_getpwnam
  • Example#4544 - Пример использования posix_getpwuid
  • Example#4545 - Пример использования posix_getrlimit
  • Example#4546 - Пример использования posix_getsid
  • Example#4547 - Пример использования posix_getuid
  • Example#4548 - Пример использования posix_mknod
  • Example#4549 - Пример использования posix_setegid
  • Example#4550 - Пример использования posix_setgid
  • Example#4551 - Пример использования posix_setuid
  • Example#4552 - Пример использования posix_strerror
  • Example#4553 - Пример использования posix_times
  • Example#4554 - Пример использования posix_uname
  • Example#4555 - Пример использования escapeshellarg
  • Example#4556 - Пример использования escapeshellcmd
  • Example#4557 - Пример функции exec
  • Example#4558 - Установка высокого приоритета с помощью proc_nice
  • Example#4559 - Пример использования proc_open
  • Example#4560 - Пример использования shell_exec
  • Example#4561 - Пример использования system
  • Example#4562 - Example showing Future as return value
  • Example#4563 - Example showing Future as synchronization point
  • Example#4564 - Fetch a chunk of the property table
  • Example#4565 - Counting the properties of an object
  • Example#4566 - Runtime inheritance
  • Example#4567 - Thread safe objects from closures
  • Example#4568 - Detecting fatal errors in Threads
  • Example#4569 - Detect the state of the referenced object
  • Example#4570 - Detect the state of the referenced object
  • Example#4571 - Detect the state of the referenced object
  • Example#4572 - Locking Object Properties
  • Example#4573 - Merging into the property table of a threaded object
  • Example#4574 - Notifications and Waiting
  • Example#4575 - Notifications and Waiting
  • Example#4576 - Popping the last item from the property table of a threaded object
  • Example#4577 - Shifting the first item from the property table of a threaded object
  • Example#4578 - Synchronizing
  • Example#4579 - Locking the property table of a threaded object
  • Example#4580 - Notifications and Waiting
  • Example#4581 - Return the identity of the Thread or Process that created the referenced Thread
  • Example#4582 - Return the currently executing Thread
  • Example#4583 - Return the identity of the currently executing Thread
  • Example#4584 - Return the identity of the referenced Thread
  • Example#4585 - Execute in the global scope
  • Example#4586 - Detect the state of the referenced Thread
  • Example#4587 - Tell if the referenced Thread was started
  • Example#4588 - Join with the referenced Thread
  • Example#4589 - Kill the referenced Thread
  • Example#4590 - Starting Threads
  • Example#4591 - A basic example of Worker::collect
  • Example#4592 - A basic example of Worker::getStacked
  • Example#4593 - Detect the state of a worker
  • Example#4594 - Detect the state of a Worker
  • Example#4595 - Shutdown the referenced worker
  • Example#4596 - Stacking a task for execution onto a worker
  • Example#4597 - Removing objects from the stack of Workers
  • Example#4598 - Пример метода с модификатором protected: методы с таким модификатором могут вызываться только одним потоков одновременно.
  • Example#4599 - Пример метода с модификатором private: приватные методы могут вызываться только Threaded-объектов во время выполнения
  • Example#4600 - A basic example of Pool::collect
  • Example#4601 - Creating Pools
  • Example#4602 - Shutting down a pool
  • Example#4603 - Submitting Tasks
  • Example#4604 - Submitting tasks to a specific worker
  • Example#4605 - Mutex Creation and Destruction
  • Example#4606 - Mutex Creation and Destruction
  • Example#4607 - Mutex Locking and Unlocking
  • Example#4608 - Mutex Locking and Unlocking
  • Example#4609 - Mutex Locking and Unlocking
  • Example#4610 - Condition Broadcasting
  • Example#4611 - Condition Creation and Destruction
  • Example#4612 - Condition Creation and Destruction
  • Example#4613 - Condition Signalling
  • Example#4614 - Waiting for Conditions
  • Example#4615 - Номая семантика иммутабельности Threaded
  • Example#4616 - Пример использования Volatile
  • Example#4617 - Adding a new class task to a thread
  • Example#4618 - Adding a new file task to a thread
  • Example#4619 - Adding a new function task to a thread
  • Example#4620 - Joining a thread
  • Example#4621 - Starting a new thread
  • Example#4622 - Getting the task count of a thread
  • Example#4623 - Locking a hash table's mutex lock
  • Example#4624 - Getting a hash table's size
  • Example#4625 - Locking a hash table's mutex lock
  • Example#4626 - Creating a new vector
  • Example#4627 - Deleting values in a vector
  • Example#4628 - Inserting a value into a vector
  • Example#4629 - Locking a vector's mutex lock
  • Example#4630 - Popping a value from a vector
  • Example#4631 - Pushing values to a vector
  • Example#4632 - Resizing a vector
  • Example#4633 - Shifting a value from a vector
  • Example#4634 - Getting a vector's size
  • Example#4635 - Locking a vector's mutex lock
  • Example#4636 - Unshifting a value to the front of a vector
  • Example#4637 - Updating a value in a vector
  • Example#4638 - Retrieving the front value of a queue
  • Example#4639 - Retrieving the front value in a loop (bad example - don't do this)
  • Example#4640 - Retrieving the front value in a loop (good example)
  • Example#4641 - Locking a queue's mutex lock
  • Example#4642 - Popping a value from a queue
  • Example#4643 - Pushing a value to a queue
  • Example#4644 - Getting a queue's size
  • Example#4645 - Locking a queue's mutex lock
  • Example#4646 - Creating a new atomic integer
  • Example#4647 - Decrementing an atomic integer's value
  • Example#4648 - Getting an atomic integer's value
  • Example#4649 - Incrementing an atomic integer's value
  • Example#4650 - Grouping together an atomic integer's operations (requiring a mutex lock)
  • Example#4651 - Setting an atomic integer's value
  • Example#4652 - Grouping together an atomic integer's operations (requiring a mutex lock)
  • Example#4653 -
  • Example#4654 - Обзор операций с разделяемой памятью
  • Example#4655 - Закрытие блока разделяемой памяти
  • Example#4656 - Удаление блока разделяемой памяти
  • Example#4657 - Резервирование участка разделяемой памяти
  • Example#4658 - Чтение данных из участка разделяемой памяти
  • Example#4659 - Получение размера блока разделяемой памяти
  • Example#4660 - Запись данных в участок разделяемой памяти
  • Example#4661 - SyncMutex::__construct named mutex with lock timeout example
  • Example#4662 - SyncMutex::__construct unnamed mutex example
  • Example#4663 - SyncMutex::lock example
  • Example#4664 - SyncMutex::unlock example
  • Example#4665 - SyncSemaphore::__construct example
  • Example#4666 - SyncSemaphore::lock example
  • Example#4667 - SyncSemaphore::unlock example
  • Example#4668 - SyncEvent::__construct example
  • Example#4669 - SyncEvent::fire example
  • Example#4670 - SyncEvent::reset example
  • Example#4671 - SyncEvent::wait example
  • Example#4672 - SyncReaderWriter::__construct example
  • Example#4673 - SyncReaderWriter::readlock example
  • Example#4674 - SyncReaderWriter::readunlock example
  • Example#4675 - SyncReaderWriter::writelock example
  • Example#4676 - SyncReaderWriter::writeunlock example
  • Example#4677 - SyncSharedMemory::__construct example
  • Example#4678 - SyncSharedMemory::first example
  • Example#4679 - SyncSharedMemory::__construct example
  • Example#4680 - SyncSharedMemory::size example
  • Example#4681 - SyncSharedMemory::write example
  • Example#4682 - Пример использования geoip_asnum_by_name
  • Example#4683 - Пример использования geoip_continent_code_by_name
  • Example#4684 - Пример использования geoip_country_code_by_name
  • Example#4685 - Пример использования geoip_country_code3_by_name
  • Example#4686 - Пример использования geoip_country_name_by_name
  • Example#4687 - Пример использования geoip_database_info
  • Example#4688 - Пример использования geoip_db_avail
  • Example#4689 - Пример использования geoip_db_filename
  • Example#4690 - Пример использования geoip_db_get_all_info
  • Example#4691 - Пример использования geoip_db_get_all_info
  • Example#4692 - Пример использования geoip_domain_by_name
  • Example#4693 - Пример использования geoip_id_by_name
  • Example#4694 - Пример использования geoip_isp_by_name
  • Example#4695 - Пример использования geoip_netspeedcell_by_name
  • Example#4696 - Пример использованияgeoip_org_by_name
  • Example#4697 - Пример использования geoip_record_by_name
  • Example#4698 - Пример использования geoip_region_by_name
  • Example#4699 - Пример использования geoip_region_name_by_code (Для Канады/США)
  • Example#4700 - Пример использования geoip_region_name_by_code, используя коды FIPS
  • Example#4701 - Пример использования geoip_setup_custom_directory
  • Example#4702 - Пример использования geoip_time_zone_by_country_and_region для кода региона US/Canada
  • Example#4703 - Использование geoip_time_zone_by_country_and_region, используя коды FIPS
  • Example#4704 - Файл xor.data
  • Example#4705 - Простое обучение
  • Example#4706 - Тестирование
  • Example#4707 - fann_create_train_from_callback example
  • Example#4708 - fann_read_train_from_file example
  • Example#4709 - Пример использования JsonSerializable::jsonSerialize, возвращающий массив (array)
  • Example#4710 - Пример использования JsonSerializable::jsonSerialize, возвращающий ассоциативный массив (array)
  • Example#4711 - Пример использования JsonSerializable::jsonSerialize, возвращающий целое значение (integer)
  • Example#4712 - Пример использования JsonSerializable::jsonSerialize, возвращающий строку (string)
  • Example#4713 - Примеры использования json_decode
  • Example#4714 - Доступ к свойствам объектов с неправильными именами
  • Example#4715 - Распространенная ошибка при использовании json_decode
  • Example#4716 - Ошибки с глубиной вложенных объектов (depth)
  • Example#4717 - json_decode с большими целыми числами
  • Example#4718 - Пример использования json_encode
  • Example#4719 - Пример использования json_encode с опциями
  • Example#4720 - Пример использования опции JSON_NUMERIC_CHECK
  • Example#4721 - Пример с последовательными индексами, начинающимися с нуля, и непоследовательными индексами массивов
  • Example#4722 - Пример использования опции JSON_PRESERVE_ZERO_FRACTION
  • Example#4723 - Пример использования json_last_error
  • Example#4724 - Совместное использование json_last_error и json_encode
  • Example#4725 - json_last_error и JSON_THROW_ON_ERROR
  • Example#4726 - Пример массива Judy
  • Example#4727 - Пример использования Lua::assign
  • Example#4728 - Пример использования Lua::call
  • Example#4729 - Пример использования Lua::eval
  • Example#4730 - Пример использования Lua::registerCallback
  • Example#4731 - Пример использованияLuaClosure::__invoke
  • Example#4732 - Execute some Lua code
  • Example#4733 - Calling a Lua function
  • Example#4734 - Profiling Lua code
  • Example#4735 - Loading code into Lua
  • Example#4736 - Manipulating the usage timer
  • Example#4737 - Registering PHP functions to call from Lua
  • Example#4738 - Calling a Lua function
  • Example#4739 - Calling a Lua function
  • Example#4740 - Пример функции constant
  • Example#4741 - Определение констант
  • Example#4742 - Определение констант зарезервированными именами
  • Example#4743 - Проверка констант
  • Example#4744 - Пример функции eval - простое слияние текста
  • Example#4745 - Пример использования exit
  • Example#4746 - Пример использования exit со статусом выхода
  • Example#4747 - Функции выключения и деструкторы выполняются независимо
  • Example#4748 - Вывод информации о браузере пользователя
  • Example#4749 - Пример использования __halt_compiler
  • Example#4750 - Пример использования highlight_string
  • Example#4751 - Пример использования hrtime
  • Example#4752 - Пример использования ignore_user_abort
  • Example#4753 - Пример использования pack
  • Example#4754 - Пример использования php_strip_whitespace
  • Example#4755 - Basic sapi_windows_generate_ctrl_event Usage
  • Example#4756 - Basic sapi_windows_set_ctrl_handler Usage
  • Example#4757 - Состояние sapi_windows_vt100_support по умолчанию
  • Example#4758 - Изменение состояния с помощью sapi_windows_vt100_support
  • Example#4759 - Пример использования с поддержкой VT100
  • Example#4760 - Пример использования sleep
  • Example#4761 - Пример использования sys_getloadavg
  • Example#4762 - Пример использования time_nanosleep
  • Example#4763 - Пример использования time_sleep_until
  • Example#4764 - Пример использования uniqid
  • Example#4765 - Пример использования unpack
  • Example#4766 - Пример использования unpack с замещающим аргументом
  • Example#4767 - Пример использования unpack с безымянными ключами
  • Example#4768 - Пример использования usleep
  • Example#4769 - Пример использования parsekit_compile_file
  • Example#4770 - Пример использования parsekit_compile_string
  • Example#4771 - Пример использования parsekit_func_arginfo
  • Example#4772 - Get and set base path
  • Example#4773 - Get and set logger
  • Example#4774 - Fast write log
  • Example#4775 - Fast count some type of log count value
  • Example#4776 - Acquisit some type of log list
  • Example#4777 - seaslog_get_author example
  • Example#4778 - seaslog_get_version example
  • Example#4779 - SeasLog::alert example
  • Example#4780 - SeasLog::analyzerCount example
  • Example#4781 - SeasLog::analyzerDetail example
  • Example#4782 - SeasLog::closeLoggerStream example
  • Example#4783 - SeasLog::__construct example
  • Example#4784 - SeasLog::critical example
  • Example#4785 - SeasLog::debug example
  • Example#4786 - SeasLog::__destruct example
  • Example#4787 - SeasLog::emergency example
  • Example#4788 - SeasLog::error example
  • Example#4789 - SeasLog::flushBuffer example
  • Example#4790 - SeasLog::getBasePath example
  • Example#4791 - SeasLog::getBuffer example
  • Example#4792 - SeasLog::getBufferEnabled example
  • Example#4793 - SeasLog::getDatetimeFormat example
  • Example#4794 - SeasLog::getLastLogger example
  • Example#4795 - SeasLog::getRequestID example
  • Example#4796 - SeasLog::getRequestVariable example
  • Example#4797 - SeasLog::info example
  • Example#4798 - SeasLog::log example
  • Example#4799 - SeasLog::notice example
  • Example#4800 - SeasLog::setBasePath example
  • Example#4801 - SeasLog::setDatetimeFormat example
  • Example#4802 - SeasLog::setLogger example
  • Example#4803 - SeasLog::setRequestID example
  • Example#4804 - SeasLog::setRequestVariable example
  • Example#4805 - SeasLog::warning example
  • Example#4806 - Пример использования SplDoublyLinkedList::__construct
  • Example#4807 - Пример использования SplStack::__construct
  • Example#4808 - Пример использования SplQueue::__construct
  • Example#4809 - Эффективная обработка задач с помощью SplQueue
  • Example#4810 - Пример использования SplFixedArray
  • Example#4811 - Пример использования SplFixedArray::__construct
  • Example#4812 - Пример SplFixedArray::count
  • Example#4813 - Пример использования SplFixedArray::fromArray
  • Example#4814 - Пример использования SplFixedArray::getSize
  • Example#4815 - Пример использования SplFixedArray::setSize
  • Example#4816 - Пример использования SplFixedArray::toArray
  • Example#4817 - Класс SplObjectStorage как набор объектов
  • Example#4818 - Класс SplObjectStorage как отображение объектов в данные
  • Example#4819 - Пример использования SplObjectStorage::addAll
  • Example#4820 - Пример использования SplObjectStorage::attach
  • Example#4821 - Пример использования SplObjectStorage::contains
  • Example#4822 - Пример использования SplObjectStorage::count
  • Example#4823 - Пример использования SplObjectStorage::current
  • Example#4824 - Пример использования SplObjectStorage::detach
  • Example#4825 - Пример использования SplObjectStorage::getHash
  • Example#4826 - Пример использования SplObjectStorage::getInfo
  • Example#4827 - Пример использования SplObjectStorage::key
  • Example#4828 - Пример использования SplObjectStorage::next
  • Example#4829 - Пример использования SplObjectStorage::offsetExists
  • Example#4830 - Пример использования SplObjectStorage::offsetGet
  • Example#4831 - Пример использования SplObjectStorage::offsetSet
  • Example#4832 - Пример использования SplObjectStorage::offsetUnset
  • Example#4833 - Пример использования SplObjectStorage::removeAll
  • Example#4834 - Пример использования SplObjectStorage::removeAllExcept
  • Example#4835 - Пример использования SplObjectStorage::rewind
  • Example#4836 - Пример использования SplObjectStorage::serialize
  • Example#4837 - Пример использования SplObjectStorage::setInfo
  • Example#4838 - Пример использования SplObjectStorage::unserialize
  • Example#4839 - Пример использования SplObjectStorage::valid
  • Example#4840 - Пример использованияAppendIterator::append
  • Example#4841 - Итерация AppendIterator с помощью foreach
  • Example#4842 - Итерация AppendIterator с помощью AppendIterator API
  • Example#4843 - Пример использования AppendIterator::getInnerIterator
  • Example#4844 - Пример использования AppendIterator.getIteratorIndex
  • Example#4845 - Пример использования AppendIterator::key
  • Example#4846 - Пример использования ArrayIterator::current
  • Example#4847 - Пример использования ArrayIterator::key
  • Example#4848 - Пример использования ArrayIterator::next
  • Example#4849 - Пример использования ArrayIterator::rewind
  • Example#4850 - Пример использования ArrayIterator::valid
  • Example#4851 - Пример использования CachingIterator::getCache
  • Example#4852 - Доступные аргументы обратного вызова
  • Example#4853 - Основные примеры обратного вызова
  • Example#4854 - Пример использования DirectoryIterator::__construct
  • Example#4855 - Пример использования DirectoryIterator::current
  • Example#4856 - Пример использования DirectoryIterator::getATime
  • Example#4857 - Пример использования DirectoryIterator::getBasename
  • Example#4858 - Пример использования DirectoryIterator::getCTime
  • Example#4859 - Пример использования DirectoryIterator::getExtension
  • Example#4860 -
  • Example#4861 - Пример использования DirectoryIterator::getFilename
  • Example#4862 - Пример использования DirectoryIterator::getGroup
  • Example#4863 - Пример использования DirectoryIterator::getInode
  • Example#4864 - Пример использования DirectoryIterator::getMTime
  • Example#4865 - Пример использования DirectoryIterator::getOwner
  • Example#4866 - Пример использования DirectoryIterator::getPath
  • Example#4867 - Пример использования DirectoryIterator::getPathname
  • Example#4868 - Пример использования DirectoryIterator::getPerms
  • Example#4869 - Пример использования DirectoryIterator::getSize
  • Example#4870 - Пример использования DirectoryIterator::getType
  • Example#4871 - Пример использования DirectoryIterator::isDir
  • Example#4872 - Пример использования DirectoryIterator::isDot
  • Example#4873 - Пример использования DirectoryIterator::isExecutable
  • Example#4874 - Пример использования DirectoryIterator::isFile
  • Example#4875 - Пример использования DirectoryIterator::isLink
  • Example#4876 - Пример использования DirectoryIterator::isReadable
  • Example#4877 - Пример использования DirectoryIterator::isWritable
  • Example#4878 - Пример использования DirectoryIterator::key
  • Example#4879 - Пример использования DirectoryIterator::next
  • Example#4880 - Пример использования DirectoryIterator::rewind
  • Example#4881 - Пример использования DirectoryIterator::seek
  • Example#4882 - Пример использования DirectoryIterator::__toString
  • Example#4883 - Пример использования DirectoryIterator::valid
  • Example#4884 - Пример использования FilesystemIterator::__construct
  • Example#4885 - Пример использования FilesystemIterator::current
  • Example#4886 - Пример использования FilesystemIterator::key
  • Example#4887 - Пример использования FilesystemIterator::next
  • Example#4888 - Пример использования FilesystemIterator::rewind
  • Example#4889 - Пример использования FilesystemIterator::key
  • Example#4890 - Пример использования FilterIterator::accept
  • Example#4891 - Пример использования GlobIterator
  • Example#4892 - Пример использования GlobIterator::count
  • Example#4893 - Пример использования InfiniteIterator::__construct
  • Example#4894 - Пример использования LimitIterator
  • Example#4895 - Пример использования LimitIterator::__construct
  • Example#4896 - Пример использования LimitIterator::getPosition
  • Example#4897 - Итерирование MultipleIterator
  • Example#4898 - Пример использования NoRewindIterator::__construct
  • Example#4899 - Пример использования NoRewindIterator::rewind
  • Example#4900 - Пример использования RecursiveArrayIterator::getChildren
  • Example#4901 - Пример использования RecursiveArrayIterator::hasChildren
  • Example#4902 - Доступные аргументы callback-функции
  • Example#4903 - Простой пример рекурсивного обратного вызова
  • Example#4904 - Пример использования RecursiveCallbackFilterIterator::hasChildren
  • Example#4905 - Пример использования RecursiveDirectoryIterator
  • Example#4906 - Пример использования getSubPath
  • Example#4907 - Пример использования getSubPathname
  • Example#4908 - Пример использования RecursiveFilterIterator
  • Example#4909 - Еще пример с RecursiveFilterIterator
  • Example#4910 - Итерация по дереву элементов с помощью RecursiveIteratorIterator
  • Example#4911 - Пример использования RecursiveRegexIterator::__construct
  • Example#4912 - Пример использования RecursiveRegexIterator::getChildren
  • Example#4913 - Пример использования RecursiveRegexIterator::hasChildren
  • Example#4914 - Пример использования RegexIterator::accept
  • Example#4915 - Пример использования RegexIterator::__construct
  • Example#4916 - Пример использования RegexIterator::getFlags
  • Example#4917 - Пример использования RegexIterator::getMode
  • Example#4918 - Пример использования RegexIterator::getPregFlags
  • Example#4919 - Пример использования RegexIterator::setFlags
  • Example#4920 - Пример использования RegexIterator::setMode
  • Example#4921 - Пример использования RegexIterator::setPregFlags
  • Example#4922 - Пример использования Countable::count
  • Example#4923 - Простое использование
  • Example#4924 - Пример использования SeekableIterator::seek
  • Example#4925 - Пример использования class_implements
  • Example#4926 - Пример использования class_parents
  • Example#4927 - Пример использования class_uses
  • Example#4928 - Пример использования iterator_apply
  • Example#4929 - Пример использования iterator_count
  • Example#4930 - iterator_count модифицирует позицию
  • Example#4931 - iterator_count в цикле foreach
  • Example#4932 - Пример использования iterator_to_array
  • Example#4933 - Пример использования spl_autoload_extensions
  • Example#4934 - spl_autoload_register как альтернатива функции __autoload
  • Example#4935 - Пример использования spl_autoload_register в случае, если класс не загрузился
  • Example#4936 - Пример использования spl_classes
  • Example#4937 - Пример использования spl_object_hash
  • Example#4938 - Пример использования spl_object_id
  • Example#4939 - Пример использования SplFileInfo::__construct
  • Example#4940 - Пример использования SplFileInfo::getBasename
  • Example#4941 - Пример использования SplFileInfo::getCTime
  • Example#4942 - Пример использования SplFileInfo::getExtension
  • Example#4943 -
  • Example#4944 - Пример использования SplFileInfo::getFilename
  • Example#4945 - Пример использования SplFileInfo::getGroup
  • Example#4946 - Пример использования SplFileInfo::getLinkTarget
  • Example#4947 - Пример использования SplFileInfo::getOwner
  • Example#4948 - Пример использования SplFileInfo::getPath
  • Example#4949 - Пример использования SplFileInfo::getPathInfo
  • Example#4950 - Пример использования SplFileInfo::getPathname
  • Example#4951 - Пример использования SplFileInfo::getPerms
  • Example#4952 - Пример использования SplFileInfo::getRealPath
  • Example#4953 - Пример использования SplFileInfo::getType
  • Example#4954 - Пример использования SplFileInfo::isDir
  • Example#4955 - Пример использования SplFileInfo::isExecutable
  • Example#4956 - Пример использования SplFileInfo::isFile
  • Example#4957 - Пример использования SplFileInfo::isLink
  • Example#4958 - Пример использования SplFileInfo::isReadable
  • Example#4959 - Пример использования SplFileInfo::openFile
  • Example#4960 - Пример использования SplFileInfo::setFileClass
  • Example#4961 - Пример использования SplFileInfo::setFileClass
  • Example#4962 - Пример использования SplFileInfo::__toString
  • Example#4963 - Пример использования SplFileObject::__construct
  • Example#4964 - Пример использования SplFileObject::current
  • Example#4965 - Пример использования SplFileObject::eof
  • Example#4966 - Пример использования SplFileObject::fflush
  • Example#4967 - Пример использования SplFileObject::fgetc
  • Example#4968 - Пример использования SplFileObject::fgetcsv
  • Example#4969 - Пример использования SplFileObject::READ_CSV
  • Example#4970 - Пример использования SplFileObject::fgets
  • Example#4971 - Пример использования SplFileObject::fgetss
  • Example#4972 - Пример использования SplFileObject::flock
  • Example#4973 - Пример использования SplFileObject::fpassthru
  • Example#4974 - Пример SplFileObject::fputcsv
  • Example#4975 - Пример SplFileObject::fread
  • Example#4976 - Пример использования SplFileObject::fscanf
  • Example#4977 - Пример использования SplFileObject::fseek
  • Example#4978 - Пример использования SplFileObject::fstat
  • Example#4979 - Пример использования SplFileObject::ftell
  • Example#4980 - Пример использования SplFileObject::ftruncate
  • Example#4981 - Пример использования SplFileObject::fwrite
  • Example#4982 - Пример использования SplFileObject::getCsvControl
  • Example#4983 - Пример использования SplFileObject::getFlags
  • Example#4984 - Пример использования SplFileObject::getMaxLineLen
  • Example#4985 - Пример использования SplFileObject::key
  • Example#4986 - Пример использования SplFileObject::key при задании длины строки методом SplFileObject::setMaxLineLen
  • Example#4987 - Пример использования SplFileObject::next
  • Example#4988 - Пример использования SplFileObject::rewind
  • Example#4989 - Пример использования SplFileObject::seek
  • Example#4990 - Пример использования SplFileObject::setCsvControl
  • Example#4991 - Пример использования SplFileObject::setFlags
  • Example#4992 - Пример использования SplFileObject::setMaxLineLen
  • Example#4993 - Пример использования SplFileObject::valid
  • Example#4994 - Пример использования SplTempFileObject
  • Example#4995 - Пример использования ArrayObject::append
  • Example#4996 - Пример использования ArrayObject::asort
  • Example#4997 - Пример использования ArrayObject::__construct
  • Example#4998 - Пример использования ArrayObject::count
  • Example#4999 - Пример использования ArrayObject::exchangeArray
  • Example#5000 - Пример использования ArrayObject::getArrayCopy
  • Example#5001 - Пример использования ArrayObject::getFlags
  • Example#5002 - Пример использования ArrayObject::getIterator
  • Example#5003 - Пример использования ArrayObject::getIteratorClass
  • Example#5004 - Пример использования ArrayObject::ksort
  • Example#5005 - Пример использования ArrayObject::natcasesort
  • Example#5006 - Пример использования ArrayObject::natsort
  • Example#5007 - Пример использования ArrayObject::offsetExists
  • Example#5008 - Пример использования ArrayObject::offsetGet
  • Example#5009 - Пример использования ArrayObject::offsetSet
  • Example#5010 - Пример использования ArrayObject::offsetUnset
  • Example#5011 - Пример использования ArrayObject::serialize
  • Example#5012 - Пример использования ArrayObject::setFlags
  • Example#5013 - Пример использования ArrayObject::setIteratorClass
  • Example#5014 - Пример использования ArrayObject::uasort
  • Example#5015 - Пример использования ArrayObject::uksort
  • Example#5016 - Пример использования SplInt
  • Example#5017 - Пример использования SplFloat
  • Example#5018 - Пример использования SplEnum
  • Example#5019 - Пример использования SplEnum::getConstList
  • Example#5020 - Пример использования SplBool
  • Example#5021 - Пример использования SplString
  • Example#5022 - Использование file_get_contents для получения данных из различных источников
  • Example#5023 - Осуществление POST-запроса к https-серверу
  • Example#5024 - Запись данных в сжатый файл
  • Example#5025 - Поток для чтения/записи глобальных переменных
  • Example#5026 - Получение списка файлов из tar-архивов
  • Example#5027 - Примеры использования stream_bucket_prepend
  • Example#5028 - Использование stream_context_create
  • Example#5029 - Пример использования stream_context_get_default
  • Example#5030 - Пример использования stream_context_get_options
  • Example#5031 - Пример использования stream_context_get_params
  • Example#5032 - stream_context_set_default example
  • Example#5033 - Пример использования stream_copy_to_stream
  • Example#5034 - Контроль применения фильтров
  • Example#5035 - Фильтр для перевода букв в верхний регистр в потоке foo-bar.txt
  • Example#5036 - Регистрация стандартного фильтра, соответствующего множественным именам фильтров.
  • Example#5037 - Динамическое изменение фильтров потока
  • Example#5038 - Пример использования stream_get_contents
  • Example#5039 - Пример использования функции stream_get_filters
  • Example#5040 - Пример использования функцииstream_get_meta_data
  • Example#5041 - Пример использования stream_get_transports
  • Example#5042 - Пример использования stream_get_wrappers
  • Example#5043 - Проверка существования обёртки потока
  • Example#5044 - Пример выполненияstream_is_local
  • Example#5045 - Пример выполнения stream_isatty
  • Example#5046 - Пример использования stream_notification_callback
  • Example#5047 - Простой индикатор для загрузчика файлов из командной строки
  • Example#5048 - Пример использования stream_resolve_include_path
  • Example#5049 - Пример использования stream_select
  • Example#5050 - Пример использования stream_set_timeout
  • Example#5051 - Пример использования stream_set_write_buffer
  • Example#5052 - Пример использования stream_socket_client
  • Example#5053 - Использование UDP-соединения
  • Example#5054 - Пример использования stream_socket_enable_crypto
  • Example#5055 - Пример использования stream_socket_pair
  • Example#5056 - Пример использования функции stream_socket_recvfrom
  • Example#5057 - Пример использования stream_socket_sendto
  • Example#5058 - Пример использования серверных сокетов TCP
  • Example#5059 - Пример использования серверных сокетов UDP
  • Example#5060 - Пример использования stream_socket_shutdown
  • Example#5061 - Как зарегистрировать обёртку потока
  • Example#5062 - Базовые возможности использования Tidy
  • Example#5063 - Пример использования tidy::getBody
  • Example#5064 - Пример использования tidy::cleanrepair
  • Example#5065 - Пример использования tidy::__construct
  • Example#5066 - Пример использования tidy::diagnose
  • Example#5067 - Пример использования tidy_get_error_buffer
  • Example#5068 - Пример использования tidy::getConfig
  • Example#5069 - Пример использования tidy_getopt
  • Example#5070 - Печать всех опций вместе с описанием и значением по умолчанию
  • Example#5071 - Пример использования tidy::getStatus
  • Example#5072 - Пример использования tidy::head
  • Example#5073 - Пример использования tidy::html
  • Example#5074 - Пример использования tidy::parseFile
  • Example#5075 - Пример использования tidy::parseString
  • Example#5076 - Пример использования tidy::repairFile
  • Example#5077 - Пример использования tidy::repairString
  • Example#5078 - Пример использования tidy::root
  • Example#5079 - Пример использования функции tidyNode::getParent
  • Example#5080 - Пример использования функции tidyNode::hasChildren
  • Example#5081 - Пример использования функции tidyNode::hasSiblings
  • Example#5082 - Извлечение кода ASP из смешанного HTML-документа
  • Example#5083 - Извлечение комментариев из смешанного HTML-документа
  • Example#5084 - Извлечение HTML-кода из смешанного HTML-документа
  • Example#5085 - Извлечение JSTE-кода из смешанного HTML-документа
  • Example#5086 - Извлечение PHP-кода из смешанного HTML-документа
  • Example#5087 - Извлечение обычного текста из смешанного HTML-документа
  • Example#5088 - Пример использования ob_tidyhandler
  • Example#5089 - Пример использования tidy_access_count
  • Example#5090 - Пример использования tidy_config_count
  • Example#5091 - Пример использования tidy_error_count
  • Example#5092 - Пример использования tidy_get_output
  • Example#5093 - Пример использования tidy_warning_count
  • Example#5094 - Удаление комментариев лексером
  • Example#5095 - token_get_all example
  • Example#5096 - Пример неправильного использования token_get_all
  • Example#5097 - Пример использования token_get_all с классом, использующим зарезервированные слова
  • Example#5098 - Пример использования token_name
  • Example#5099 - Пример использования base64_decode
  • Example#5100 - Пример использования base64_encode
  • Example#5101 - Пример использования get_headers
  • Example#5102 - Пример использования запроса HEAD в функцииget_headers
  • Example#5103 - Что обрабатывает функция get_meta_tags
  • Example#5104 - Что возвращает функция get_meta_tags
  • Example#5105 - Простой пример использования http_build_query
  • Example#5106 - Пример использования http_build_query с числовыми индексами элементов.
  • Example#5107 - Пример использования http_build_query с многомерными массивами
  • Example#5108 - Пример использования http_build_query с объектом
  • Example#5109 - Пример использования parse_url
  • Example#5110 - Пример использования parse_url при отсутствии протокола
  • Example#5111 - Пример использования rawurldecode
  • Example#5112 - Пример использования rawurlencode для включение пароля в URL FTP
  • Example#5113 - Пример использования rawurlencode
  • Example#5114 - Пример использования urldecode
  • Example#5115 - Пример использования urlencode
  • Example#5116 - Пример использования urlencode и htmlentities
  • Example#5117 - Запуск Javascript
  • Example#5118 - Пример работы с Yaml
  • Example#5119 - Пример использования callback-функции парсинга
  • Example#5120 - Пример публикующей callback-функции
  • Example#5121 - Пример использования yaml_emit
  • Example#5122 - Пример использования yaml_parse
  • Example#5123 - Классический пример каталога для приложения
  • Example#5124 - Введение
  • Example#5125 - Правила перенаправления
  • Example#5126 - Конфигурация приложения
  • Example#5127 - Контроллер по умолчанию
  • Example#5128 - Шаблон вывода по умолчанию
  • Example#5129 - Запуск приложения
  • Example#5130 - Пример PHP массива
  • Example#5131 - Пример INI файла
  • Example#5132 - Пример использования Bootstrap
  • Example#5133 - Пример использования Yaf_Application::bootstrap
  • Example#5134 - Пример использования Yaf_Application::clearLastError
  • Example#5135 - Пример ini-файла
  • Example#5136 - Пример использования Yaf_Application::__construct
  • Example#5137 - Пример использования Yaf_Application::__construct
  • Example#5138 - Пример использования Yaf_Application::environ
  • Example#5139 - Пример использования Yaf_Application::execute
  • Example#5140 - Пример использования Yaf_Application::getConfig
  • Example#5141 - Пример использования Yaf_Application::getDispatcher
  • Example#5142 - Пример использования Yaf_Application::getLastErrorMsg
  • Example#5143 - Пример использования Yaf_Application::getLastErrorNo
  • Example#5144 - Пример использования Yaf_Application::getModules
  • Example#5145 - Пример использования Bootstrap
  • Example#5146 - Yaf_Dispatcher::autoRenderexample
  • Example#5147 - Yaf_Dispatcher::catchExceptionexample
  • Example#5148 - Yaf_Dispatcher::registerPluginexample
  • Example#5149 - A custom View engineexample
  • Example#5150 - Yaf_Dispatcher::setViewexample
  • Example#5151 - Yaf_Dispatcher::throwexceptionexample
  • Example#5152 - Yaf_Dispatcher::throwexceptionexample
  • Example#5153 - Yaf_Config_Iniexample
  • Example#5154 - define action in a separate file
  • Example#5155 - Dummy_action.php
  • Example#5156 - Yaf_Controller_Abstract::forwardexample
  • Example#5157 - Пример использования Yaf_Action_Abstract::execute
  • Example#5158 - Пример использования Yaf_Action_Abstract::execute
  • Example#5159 - Yaf_View_Simple::assignexample
  • Example#5160 - templateexample
  • Example#5161 - Yaf_View_Simple::assignRefexample
  • Example#5162 - templateexample
  • Example#5163 - Yaf_View_Simple::clearexample
  • Example#5164 - Yaf_View_Simple::__constructorexample
  • Example#5165 - Yaf_View_Simple::__setexample
  • Example#5166 - Config example
  • Example#5167 - Register localnamespace
  • Example#5168 - Load class example
  • Example#5169 - Load namespace class example
  • Example#5170 - MVC class loading example
  • Example#5171 - MVC class distinctions
  • Example#5172 - MVC loading example
  • Example#5173 - Yaf_Loader::registerLocalNamespaceexample
  • Example#5174 - Пример плагина
  • Example#5175 - Yaf_Plugin_Abstract::routerShutdownexample
  • Example#5176 - Yaf_Response_Abstract::appendBodyexample
  • Example#5177 - Yaf_Response_Abstract::getBodyexample
  • Example#5178 - Yaf_Response_Abstract::prependBodyexample
  • Example#5179 - Yaf_Response_Abstract::responseexample
  • Example#5180 - Yaf_Response_Abstract::setBodyexample
  • Example#5181 - Yaf_Route_Map::assembleexample
  • Example#5182 - Yaf_Route_Mapexample
  • Example#5183 - Yaf_Route_Mapexample
  • Example#5184 - Yaf_Route_Mapexample
  • Example#5185 - Пример использования Yaf_Route_Regex::assemble
  • Example#5186 - Пример использования Yaf_Route_Regex
  • Example#5187 - Пример использования Yaf_Route_Regex (с версии 2.3.0)
  • Example#5188 - Пример использования Yaf_Route_Regex с именованными совпадениями (с версии 2.3.0)
  • Example#5189 - Пример использования Yaf_Route_Regex
  • Example#5190 - Yaf_Route_Rewrite::assembleexample
  • Example#5191 - Yaf_Route_Rewriteexample
  • Example#5192 - Yaf_Route_Rewriteexample
  • Example#5193 - Yaf_Route_Rewrite(as of 2.3.0)example
  • Example#5194 - Rewrite rule for Apache
  • Example#5195 - Rewrite rule for Apache
  • Example#5196 - Rewrite rule for Lighttpd
  • Example#5197 - Rewrite rule for Nginx
  • Example#5198 - Yaf_Route_Static(default route)example
  • Example#5199 - application.iniexample
  • Example#5200 - Yaf_Dispatcher::autoConfigexample
  • Example#5201 - Yaf_Dispatcher::autoRenderexample
  • Example#5202 - Register some routes in Bootstrap
  • Example#5203 - plugin Dummy.php (under application.directory/plugins)
  • Example#5204 - Yaf_Route_Simple::assembleexample
  • Example#5205 - Yaf_Route_Simple::routeexample
  • Example#5206 - Yaf_Route_Simple::routeexample
  • Example#5207 - Yaf_Route_Static::assembleexample
  • Example#5208 - Yaf_Route_Static::routeexample
  • Example#5209 - Yaf_Route_Supervar::assembleexample
  • Example#5210 - Yaf_Route_Supervarexample
  • Example#5211 - Пример INI
  • Example#5212 - Пример INI с разделами
  • Example#5213 - Пример INI
  • Example#5214 - Пример использования Taint
  • Example#5215 - Vector
  • Example#5216 - Map
  • Example#5217 - Пример Ds\Collection::clear
  • Example#5218 - Пример Ds\Collection::copy
  • Example#5219 - Пример Ds\Collection::isEmpty
  • Example#5220 - Пример Ds\Collection::toArray
  • Example#5221 - Пример использованияDs\Hashable::hash
  • Example#5222 - Пример использования Ds\Sequence::allocate
  • Example#5223 - Пример использования Ds\Sequence::apply
  • Example#5224 - Пример использования Ds\Sequence::capacity
  • Example#5225 - Пример использования Ds\Sequence::contains
  • Example#5226 - Пример использования Ds\Sequence::filter с callback-функцией
  • Example#5227 - Пример использования Ds\Sequence::filter без callback-функции
  • Example#5228 - Пример использования Ds\Sequence::find
  • Example#5229 - Пример использования Ds\Sequence::first
  • Example#5230 - Пример использования Ds\Sequence::get
  • Example#5231 - Пример использования Ds\Sequence::get с синтаксисом массива
  • Example#5232 - Пример использования Ds\Sequence::insert
  • Example#5233 - Пример использования Ds\Sequence::join с разделителем
  • Example#5234 - Пример использования Ds\Sequence::join без разделителя
  • Example#5235 - Пример использования Ds\Sequence::last
  • Example#5236 - Пример использования Ds\Sequence::map
  • Example#5237 - Пример использования Ds\Sequence::merge
  • Example#5238 - Пример использования Ds\Sequence::pop
  • Example#5239 - Пример использования Ds\Sequence::push
  • Example#5240 - Пример использования Ds\Sequence::reduce с начальным значением
  • Example#5241 - Пример использования Ds\Sequence::reduce без начального значения
  • Example#5242 - Пример использования Ds\Sequence::remove
  • Example#5243 - Пример использования Ds\Sequence::reverse
  • Example#5244 - Пример использования Ds\Sequence::reversed
  • Example#5245 - Пример использования Ds\Sequence::rotate
  • Example#5246 - Пример использования Ds\Sequence::set
  • Example#5247 - Пример использования Ds\Sequence::set с синтаксисом массива
  • Example#5248 - Пример использования Ds\Sequence::shift
  • Example#5249 - Пример использования Ds\Sequence::slice
  • Example#5250 - Пример использования Ds\Sequence::sort
  • Example#5251 - Пример использования Ds\Sequence::sort с callback-функцией сравнения
  • Example#5252 - Пример использования Ds\Sequence::sorted
  • Example#5253 - Пример использования Ds\Sequence::sorted с callback-функцией сравнения
  • Example#5254 - Пример использования Ds\Sequence::sum с целочисленными значениями
  • Example#5255 - Пример использования Ds\Sequence::sum со значениями типа float
  • Example#5256 - Пример использования Ds\Sequence::unshift
  • Example#5257 - Пример использования Ds\Vector::allocate
  • Example#5258 - Пример использования Ds\Vector::apply
  • Example#5259 - Пример использования Ds\Vector::capacity
  • Example#5260 - Пример использования Ds\Vector::clear
  • Example#5261 - Пример использования Ds\Vector::__construct
  • Example#5262 - Пример использования Ds\Vector::contains
  • Example#5263 - Пример использования Ds\Vector::copy
  • Example#5264 - Пример Ds\Vector::filter с использованием callback-функции
  • Example#5265 - Пример Ds\Vector::filter без callback-функции
  • Example#5266 - Пример использования Ds\Vector::find
  • Example#5267 - Пример использования Ds\Vector::first
  • Example#5268 - Пример использования Ds\Vector::get
  • Example#5269 - Пример использования Ds\Vector::get с синтаксисом массива
  • Example#5270 - Пример использования Ds\Vector::insert
  • Example#5271 - Пример использования Ds\Vector::isEmpty
  • Example#5272 - Пример использования Ds\Vector::join с разделителем
  • Example#5273 - Пример использования Ds\Vector::join без разделителя
  • Example#5274 - Пример использования Ds\Vector::last
  • Example#5275 - Пример использования Ds\Vector::map
  • Example#5276 - Пример использования Ds\Vector::merge
  • Example#5277 - Пример использования Ds\Vector::pop
  • Example#5278 - Пример использования Ds\Vector::push
  • Example#5279 - Пример использования Ds\Vector::reduce с начальным значением
  • Example#5280 - Пример использования Ds\Vector::reduce без начального значения
  • Example#5281 - Пример использования Ds\Vector::remove
  • Example#5282 - Пример использования Ds\Vector::reverse
  • Example#5283 - Пример использования Ds\Vector::reversed
  • Example#5284 - Пример использования Ds\Vector::rotate
  • Example#5285 - Пример использования Ds\Vector::set
  • Example#5286 - Пример использования Ds\Vector::set с синтаксисом массива
  • Example#5287 - Пример использования Ds\Vector::shift
  • Example#5288 - Пример использования Ds\Vector::slice
  • Example#5289 - Пример использования Ds\Vector::sort
  • Example#5290 - Пример использования Ds\Vector::sort с callback-функцией сравнения
  • Example#5291 - Пример использования Ds\Vector::sorted
  • Example#5292 - Пример использования Ds\Vector::sorted с callback-функцией сравнения
  • Example#5293 - Пример использования Ds\Vector::sum с целочисленными значениями
  • Example#5294 - Пример использования Ds\Vector::sum со значениями типа float
  • Example#5295 - Пример использования Ds\Vector::toArray
  • Example#5296 - Пример использования Ds\Vector::unshift
  • Example#5297 - Пример использования Ds\Deque::allocate
  • Example#5298 - Пример использования Ds\Deque::apply
  • Example#5299 - Пример использования Ds\Deque::capacity
  • Example#5300 - Пример использования Ds\Deque::clear
  • Example#5301 - Пример использования Ds\Deque::__construct
  • Example#5302 - Пример использования Ds\Deque::contains
  • Example#5303 - Пример использования Ds\Deque::copy
  • Example#5304 - Пример Ds\Deque::filter с использованием callback-функции
  • Example#5305 - Пример Ds\Deque::filter без callback-функции
  • Example#5306 - Пример использования Ds\Deque::find
  • Example#5307 - Пример использования Ds\Deque::first
  • Example#5308 - Пример использования Ds\Deque::get
  • Example#5309 - Пример использования Ds\Deque::get с синтаксисом массива
  • Example#5310 - Пример использования Ds\Deque::insert
  • Example#5311 - Пример использования Ds\Deque::isEmpty
  • Example#5312 - Пример использования Ds\Deque::join с разделителем
  • Example#5313 - Пример использования Ds\Deque::join без разделителя
  • Example#5314 - Пример использования Ds\Deque::last
  • Example#5315 - Пример использования Ds\Deque::map
  • Example#5316 - Пример использования Ds\Deque::merge
  • Example#5317 - Пример использования Ds\Deque::pop
  • Example#5318 - Пример использования Ds\Deque::push
  • Example#5319 - Пример использования Ds\Deque::reduce с начальным значением
  • Example#5320 - Пример использования Ds\Deque::reduce без начального значения
  • Example#5321 - Пример использования Ds\Deque::remove
  • Example#5322 - Пример использования Ds\Deque::reverse
  • Example#5323 - Пример использования Ds\Deque::reversed
  • Example#5324 - Пример использования Ds\Deque::rotate
  • Example#5325 - Пример использования Ds\Deque::set
  • Example#5326 - Пример использования Ds\Deque::set с синтаксисом массива
  • Example#5327 - Пример использования Ds\Deque::shift
  • Example#5328 - Пример использования Ds\Deque::slice
  • Example#5329 - Пример использования Ds\Deque::sort
  • Example#5330 - Пример использования Ds\Deque::sort с callback-функцией сравнения
  • Example#5331 - Пример использования Ds\Deque::sorted
  • Example#5332 - Пример использования Ds\Deque::sorted с callback-функцией сравнения
  • Example#5333 - Пример использования Ds\Deque::sum с целочисленными значениями
  • Example#5334 - Пример использования Ds\Deque::sum со значениями типа float
  • Example#5335 - Пример использования Ds\Deque::toArray
  • Example#5336 - Пример использования Ds\Deque::unshift
  • Example#5337 - Пример использования Ds\Map::allocate
  • Example#5338 - Пример использования Ds\Map::apply
  • Example#5339 - Пример использования Ds\Map::capacity
  • Example#5340 - Пример использования Ds\Map::clear
  • Example#5341 - Пример использования Ds\Map::__construct
  • Example#5342 - Пример использования Ds\Map::copy
  • Example#5343 - Пример использования Ds\Map::diff
  • Example#5344 - Пример Ds\Map::filter с использованием callback-функции
  • Example#5345 - Пример Ds\Map::filter без callback-функции
  • Example#5346 - Пример использования Ds\Map::first
  • Example#5347 - Пример использования Ds\Map::get
  • Example#5348 - Пример использования Ds\Map::get с синтаксисом массива
  • Example#5349 - Пример использования Ds\Map::hasKey
  • Example#5350 - Пример использования Ds\Map::hasValue
  • Example#5351 - Пример использования Ds\Map::intersect
  • Example#5352 - Пример использования Ds\Map::isEmpty
  • Example#5353 - Пример использования Ds\Map::keys
  • Example#5354 - Пример использования Ds\Map::ksort
  • Example#5355 - Пример использования Ds\Map::ksort с callback-функцией сравнения
  • Example#5356 - Пример использования Ds\Map::ksorted
  • Example#5357 - Пример использования Ds\Map::ksorted с callback-функцией сравнения
  • Example#5358 - Пример использования Ds\Map::last
  • Example#5359 - Пример использования Ds\Map::map
  • Example#5360 - Пример использования Ds\Map::merge
  • Example#5361 - Пример использования Ds\Map::pairs
  • Example#5362 - Пример использования Ds\Map::put
  • Example#5363 - Пример использования Ds\Map::put с объектами в качестве ключей
  • Example#5364 - Пример использования Ds\Map::putAll
  • Example#5365 - Пример использования Ds\Map::reduce с начальным значением
  • Example#5366 - Пример использования Ds\Map::reduce без начального значения
  • Example#5367 - Пример использования Ds\Map::remove
  • Example#5368 - Пример использования Ds\Map::reverse
  • Example#5369 - Пример использования Ds\Map::reversed
  • Example#5370 - Пример использования Ds\Map::skip
  • Example#5371 - Пример использования Ds\Map::slice
  • Example#5372 - Пример использования Ds\Map::sort
  • Example#5373 - Пример использования Ds\Map::sort с callback-функцией сравнения
  • Example#5374 - Пример использования Ds\Map::sort
  • Example#5375 - Пример использования Ds\Map::sort с callback-функцией сравнения
  • Example#5376 - Пример использования Ds\Map::sum с целочисленными значениями
  • Example#5377 - Пример использования Ds\Map::sum со значениями типа float
  • Example#5378 - Пример использования Ds\Map::toArray
  • Example#5379 - Пример использования Ds\Map::union
  • Example#5380 - Пример использования Ds\Map::values
  • Example#5381 - Пример использования Ds\Map::xor
  • Example#5382 - Пример использования Ds\Pair::clear
  • Example#5383 - Пример использования Ds\Pair::copy
  • Example#5384 - Пример использования Ds\Pair::isEmpty
  • Example#5385 - Пример использования Ds\Pair::toArray
  • Example#5386 - Пример использования Ds\Set::add со скалярными значениями
  • Example#5387 - Пример использования Ds\Set::add с объектами
  • Example#5388 - Пример использования Ds\Set::allocate
  • Example#5389 - Пример использования Ds\Set::capacity
  • Example#5390 - Пример использования Ds\Set::clear
  • Example#5391 - Пример использования Ds\Set::__construct
  • Example#5392 - Пример использования Ds\Set::contains
  • Example#5393 - Пример использования Ds\Set::copy
  • Example#5394 - Пример использованияDs\Set::diff
  • Example#5395 - Пример Ds\Set::filter с использованием callback-функции
  • Example#5396 - Пример Ds\Set::filter без callback-функции
  • Example#5397 - Пример использования Ds\Set::first
  • Example#5398 - Пример использования Ds\Set::get
  • Example#5399 - Пример использования Ds\Set::get с синтаксисом массива
  • Example#5400 - Пример использования Ds\Set::intersect
  • Example#5401 - Пример использования Ds\Set::isEmpty
  • Example#5402 - Пример использования Ds\Set::join с разделителем
  • Example#5403 - Пример использования Ds\Set::join без разделителя
  • Example#5404 - Пример использования Ds\Set::last
  • Example#5405 - Пример использования Ds\Set::merge
  • Example#5406 - Пример использования Ds\Set::reduce с начальным значением
  • Example#5407 - Пример использования Ds\Set::reduce без начального значения
  • Example#5408 - Пример использования Ds\Set::remove
  • Example#5409 - Пример использования Ds\Set::reverse
  • Example#5410 - Пример использования Ds\Set::reversed
  • Example#5411 - Пример использования Ds\Set::slice
  • Example#5412 - Пример использования Ds\Set::sort
  • Example#5413 - Пример использования Ds\Set::sort с callback-функцией сравнения
  • Example#5414 - Пример использования Ds\Set::sorted
  • Example#5415 - Пример использования Ds\Set::sorted с callback-функцией сравнения
  • Example#5416 - Пример использования Ds\Set::sum с целочисленными значениями
  • Example#5417 - Пример использования Ds\Set::sum со значениями типа float
  • Example#5418 - Пример использования Ds\Set::toArray
  • Example#5419 - Пример использования Ds\Set::union
  • Example#5420 - Пример использования Ds\Set::xor
  • Example#5421 - Пример использования Ds\Stack::clear
  • Example#5422 - Пример использования Ds\Stack::__construct
  • Example#5423 - Пример использования Ds\Stack::copy
  • Example#5424 - Пример использования Ds\Stack::isEmpty
  • Example#5425 - Пример использования Ds\Stack::peek
  • Example#5426 - Пример использования Ds\Stack::pop
  • Example#5427 - Пример использования Ds\Stack::push
  • Example#5428 - Пример использования Ds\Stack::toArray
  • Example#5429 - Пример использования Ds\Queue::allocate
  • Example#5430 - Пример использования Ds\Queue::capacity
  • Example#5431 - Пример использования Ds\Queue::clear
  • Example#5432 - Пример использования Ds\Queue::__construct
  • Example#5433 - Пример использования Ds\Queue::copy
  • Example#5434 - Пример использования Ds\Queue::isEmpty
  • Example#5435 - Пример использования Ds\Queue::peek
  • Example#5436 - Пример использования Ds\Queue::pop
  • Example#5437 - Пример использования Ds\Queue::push
  • Example#5438 - Пример использования Ds\Queue::toArray
  • Example#5439 - Пример использования Ds\PriorityQueue::allocate
  • Example#5440 - Пример использования Ds\PriorityQueue::capacity
  • Example#5441 - Пример использования Ds\PriorityQueue::clear
  • Example#5442 - Пример использования Ds\PriorityQueue::__construct
  • Example#5443 - Пример использования Ds\PriorityQueue::copy
  • Example#5444 - Пример использования Ds\PriorityQueue::isEmpty
  • Example#5445 - Пример использования Ds\PriorityQueue::peek
  • Example#5446 - Пример использования Ds\PriorityQueue::pop
  • Example#5447 - Пример использования Ds\PriorityQueue::push
  • Example#5448 - Пример использования Ds\PriorityQueue::toArray
  • Example#5449 - Создание файла chdb
  • Example#5450 - Загрузка и поиск в файле chdb
  • Example#5451 - Пример использования chdb::get
  • Example#5452 - Пример chdb_create
  • Example#5453 - Использование модуля cURL для сохранения стартовой страницы example.com
  • Example#5454 - Инициализация сеанса cURL и загрузка веб-страницы
  • Example#5455 - Копирование дескриптора cURL
  • Example#5456 - Пример использования curl_errno
  • Example#5457 - Пример использования curl_error
  • Example#5458 - Пример использования curl_escape
  • Example#5459 - Загрузка веб-страницы
  • Example#5460 - Пример использования curl_getinfo
  • Example#5461 - Пример использования curl_getinfo с параметром opt
  • Example#5462 - Инициализация нового сеанса cURL и загрузка веб-страницы
  • Example#5463 - Пример использования curl_multi_add_handle
  • Example#5464 - Пример использования curl_multi_close
  • Example#5465 - Пример использования curl_multi_exec
  • Example#5466 - Пример использования curl_multi_info_read
  • Example#5467 - Пример использования curl_multi_init
  • Example#5468 - Пример использования curl_multi_strerror
  • Example#5469 - Пример использования curl_reset
  • Example#5470 - Инициализация новой сессии cURL и загрузка веб-страницы
  • Example#5471 - Наша собственная реализация curl_setopt_array
  • Example#5472 - Инициализация сеанса CURL и загрузка веб-страницы
  • Example#5473 - Закачка файла (устарело с PHP 5.5.0)
  • Example#5474 - Пример использования curl_share_setopt
  • Example#5475 - Пример использования curl_share_init
  • Example#5476 - Пример использования curl_share_setopt
  • Example#5477 - Пример использования curl_errno
  • Example#5478 - Пример использования curl_escape
  • Example#5479 - Пример использования curl_version
  • Example#5480 - Простой клиент HTTP
  • Example#5481 - HTTP клиент с асинхронным запросом к DNS
  • Example#5482 - Эхо-сервер
  • Example#5483 - SSL эхо-сервер
  • Example#5484 - Обработчик сигналов
  • Example#5485 - Использование цикла libevent для обработки запросов расширения `eio'
  • Example#5486 - Разное
  • Example#5487 - Простой HTTP-сервер
  • Example#5488 - Простой HTTPS-сервер
  • Example#5489 - OpenSSL соединение
  • Example#5490 - Пример использования EventHttpConnection::makeRequest
  • Example#5491 - Слушатель соединений на базе сокетов UNIX
  • Example#5492 - Простой SMTP-сервер
  • Example#5493 - Обработка сигнала SIGTERM
  • Example#5494 - Пример использования Event::addSignal
  • Example#5495 - Пример использования Event::addTimer
  • Example#5496 - Пример использования EventBase::getFeatures
  • Example#5497 - Пример EventBase::getMethod
  • Example#5498 - EventBuffer::search example
  • Example#5499 - EventBufferEvent::connect example
  • Example#5500 - Connect to UNIX domain socket which presumably is served by a server, read response from the server and output it to the console
  • Example#5501 - EventBufferEvent::connectHost example
  • Example#5502 - Buffer event's read callback
  • Example#5503 - EventBufferEvent::getOutput example
  • Example#5504 - Пример использования EventBufferEvent::sslError
  • Example#5505 - Простой SMTP-сервер
  • Example#5506 - Пример использования EventConfig::avoidMethod
  • Example#5507 - Пример использования EventConfig::__construct
  • Example#5508 - Пример использования EventConfig::requireFeatures
  • Example#5509 - Пример использования EventHttp::accept
  • Example#5510 - Пример использования EventHttp::addServerAlias
  • Example#5511 - Пример использования EventHttp::bind
  • Example#5512 - Простой HTTP-сервер
  • Example#5513 - Пример использования EventHttp::setCallback
  • Example#5514 - Пример использования EventHttp::setDefaultCallback
  • Example#5515 - Пример использования EventHttpConnection::makeRequest
  • Example#5516 - Пример использования EventHttpConnection::setCloseCallback
  • Example#5517 - Пример EventHttpRequest::__construct
  • Example#5518 - Пример использования EventHttpRequest::sendError
  • Example#5519 - Пример использования EventListener::__construct
  • Example#5520 - Пример использования EventSslContext::__construct
  • Example#5521 - Пример использования FTP-функций
  • Example#5522 - Пример использования ftp_alloc
  • Example#5523 - Пример использования функции ftp_cdup
  • Example#5524 - Пример использования ftp_chdir
  • Example#5525 - Пример использования ftp_chmod
  • Example#5526 - Пример использования ftp_close
  • Example#5527 - Пример использования ftp_connect
  • Example#5528 - Пример использования ftp_delete
  • Example#5529 - Пример использования ftp_exec
  • Example#5530 - Пример использования ftp_fget
  • Example#5531 - Пример использования ftp_fput
  • Example#5532 - Пример использования ftp_get_option
  • Example#5533 - Пример использования ftp_get
  • Example#5534 - Пример использования ftp_login
  • Example#5535 - Пример использования ftp_mdtm
  • Example#5536 - Пример использования ftp_mkdir
  • Example#5537 - Пример использования ftp_mlsd
  • Example#5538 - Пример использования ftp_nb_continue
  • Example#5539 - Пример использования ftp_nb_fget
  • Example#5540 - Пример использования ftp_nb_fput
  • Example#5541 - Пример использования ftp_nb_get
  • Example#5542 - Возобновление скачивания файла с помощью ftp_nb_get
  • Example#5543 - Скачивание файла начиная с позиции 100 в новый файл с помощью ftp_nb_get
  • Example#5544 - Пример использования ftp_nb_put
  • Example#5545 - Возобновление загрузки файла с помощью ftp_nb_put
  • Example#5546 - Пример использования ftp_nlist
  • Example#5547 - Пример использования ftp_pasv
  • Example#5548 - Пример использования ftp_put
  • Example#5549 - Пример использования ftp_pwd
  • Example#5550 - Использование ftp_raw для входа на FTP-сервер
  • Example#5551 - Пример использования ftp_rawlist
  • Example#5552 - Пример использования ftp_rename
  • Example#5553 - Пример использования ftp_rmdir
  • Example#5554 - Пример использования ftp_set_option
  • Example#5555 - Отправка команды SITE FTP-серверу
  • Example#5556 - Пример использования ftp_size
  • Example#5557 - Пример использования функции ftp_ssl_connect
  • Example#5558 - Пример использования ftp_systype
  • Example#5559 - Базовый клиент и обработчик Gearman
  • Example#5560 - Базовый клиент и обработчик Gearman, фоновый режим
  • Example#5561 - Базовые клиент и обработчик Gearman, отправка задач
  • Example#5562 - Добавление двух серверов задач
  • Example#5563 - Добавление двух серверов задач
  • Example#5564 - Основное представление двух задач
  • Example#5565 - Основное представление двух задач с передачей контекста приложения
  • Example#5566 - Две задачи, одна в фоновом режиме, а другая нет
  • Example#5567 - Высокоприоритетная задача вместе с двумя обычными задачами
  • Example#5568 - Низкоприоритетная задача вместе с двумя обычными задачами
  • Example#5569 - Мониторинг завершения нескольких фоновых задач
  • Example#5570 - Простое представление задания с непосредственным возвратом
  • Example#5571 - Передача задания и получение инкрементного состояния
  • Example#5572 - Отправляет и отслеживает фоновое задание
  • Example#5573 - Выполнение простого задания с немедленным возвратом
  • Example#5574 - Отправка задания на обработку и мониторинг состояния
  • Example#5575 - Получение состояния выполнения долгого задания
  • Example#5576 - Мониторинг процесса обработки долго выполняющегося в фоновом режиме задания
  • Example#5577 - Простой обработчик использует дополнительные данные контекста приложения
  • Example#5578 - Добавление альтернативных Gearman серверов
  • Example#5579 - Добавление двух серверов заданий
  • Example#5580 - Пример использования GearmanWorker::setId
  • Example#5581 - Простой обработчик с пятисекундным тайм-аутом
  • Example#5582 - Запуск обработчика в неблокирующем режиме
  • Example#5583 - Пример использования GearmanWorker::work
  • Example#5584 - Гипотетический вывод с gopher://gopher.example.com/
  • Example#5585 - Пример использования gopher_parsedir
  • Example#5586 - Поиск всех устройств и сервисов UPnP.
  • Example#5587 - Реализация сервера управления освещением
  • Example#5588 - Реализация клиента управления освещением
  • Example#5589 - Create new UPnP context and get IP address of the host
  • Example#5590 - Create new UPnP context and get port number
  • Example#5591 - Create new UPnP context and set host path
  • Example#5592 - Create new UPnP context
  • Example#5593 - Create new UPnP context and set callback
  • Example#5594 - Create new UPnP context and start browsing
  • Example#5595 - Create new UPnP context and start browsing
  • Example#5596 - Create new UPnP context and get device info service
  • Example#5597 - Create new UPnP context and get device info service
  • Example#5598 - Retrieve an object
  • Example#5599 - Тестирование поддержки управления пагинацией результата
  • Example#5600 - Пример LDAP поиска
  • Example#5601 - Привязка с информацией ppolicy
  • Example#5602 - Изменение описания, только если оно не пустое
  • Example#5603 - Чтение определенных значений перед удалением
  • Example#5604 - Удаление ссылки
  • Example#5605 - Использование пагинации для поиска
  • Example#5606 - Полный пример с проверкой подлинности привязки
  • Example#5607 - Пример использования привязки LDAP
  • Example#5608 - Использование анонимной привязки LDAP
  • Example#5609 - Полный пример проверки пароля
  • Example#5610 - Пример подключения к серверу LDAP.
  • Example#5611 - Пример безопасного подключения к серверу LDAP.
  • Example#5612 - Постраничная работа с LDAP
  • Example#5613 - Постраничная работа с LDAP
  • Example#5614 - Пример использования функции ldap-count-entries
  • Example#5615 - Перечисление всех сообщений об ошибках LDAP
  • Example#5616 - Генерирование и фиксация ошибки
  • Example#5617 - Поиск по email-адресу
  • Example#5618 - Расширенная операция PASSWD
  • Example#5619 - Расширенная операция Whoami
  • Example#5620 - Показывает список атрибутов, соответствующие определенной записи директории
  • Example#5621 - Проверка версии протокола
  • Example#5622 - Список всех значений атрибута "mail" для записи каталога
  • Example#5623 - Выводит список всех организационных единиц организации
  • Example#5624 - Добавление контакту телефонного номера
  • Example#5625 - Переименование пользователя
  • Example#5626 - Добавление пользователю двух e-mail адресов
  • Example#5627 - Изменение пароля пользователя
  • Example#5628 - Изменение пароля пользователя (Active Directory)
  • Example#5629 - Пример использования ldap_parse_result
  • Example#5630 - LDAP поиск
  • Example#5631 - Устанавливает версию протокола
  • Example#5632 - Устанавливает управление сервером
  • Example#5633 - Сортировка LDAP
  • Example#5634 - Пример использования расширения memcache
  • Example#5635 - Использование memcache в качестве обработчика сессий
  • Example#5636 - Пример использования Memcache::add
  • Example#5637 - Пример использования Memcache::addServer
  • Example#5638 - Пример использования Memcache::close
  • Example#5639 - Пример использования Memcache::connect
  • Example#5640 - Пример использования Memcache::decrement
  • Example#5641 - Пример использования Memcache::delete
  • Example#5642 - Пример использования Memcache::flush
  • Example#5643 - Пример использования Memcache::get
  • Example#5644 - Пример использования Memcache::getExtendedStats
  • Example#5645 - Пример использования Memcache::getServerStatus
  • Example#5646 - Пример использования Memcache::getVersion
  • Example#5647 - Пример использования Memcache::increment
  • Example#5648 - Пример использования Memcache::pconnect
  • Example#5649 - Пример использования Memcache::replace
  • Example#5650 - Пример использования Memcache::set
  • Example#5651 - Пример использования Memcache::set
  • Example#5652 - Пример использования Memcache::setCompressThreshold
  • Example#5653 - Пример использования Memcache::setServerParams
  • Example#5654 - Пример функции обратного вызова
  • Example#5655 - Пример использования
  • Example#5656 - Пример использования Memcached::addServer
  • Example#5657 - Пример использования Memcached::addServers
  • Example#5658 - Пример использования Memcached::append
  • Example#5659 - Пример использования Memcached::cas
  • Example#5660 - Создание экземпляра класса Memcached
  • Example#5661 - Пример использования Memcached::decrement
  • Example#5662 - Пример использования Memcached::delete
  • Example#5663 - Пример использования Memcached::fetch
  • Example#5664 - Пример использования Memcached::getDelayed
  • Example#5665 - Пример использования Memcached::flush
  • Example#5666 - Пример использования Memcached::get #1
  • Example#5667 - Пример использования Memcached::get #2
  • Example#5668 - Пример использования Memcached::getDelayed
  • Example#5669 - Пример использования Memcached::getMulti версии 3
  • Example#5670 - Пример использования Memcached::getMulti версий 1 и 2
  • Example#5671 - Пример использования Memcached::GET_PRESERVE_ORDER с версией 3
  • Example#5672 - Пример использования Memcached::GET_PRESERVE_ORDER с версией 1 и 2
  • Example#5673 - Получает значение Memcached параметра
  • Example#5674 - Пример использования Memcached::getResultCode
  • Example#5675 - Пример использования Memcached::getResultMessage
  • Example#5676 - Пример использования Memcached::getServerByKey
  • Example#5677 - Пример использования Memcached::getServerList
  • Example#5678 - Пример использования Memcached::getStats
  • Example#5679 - Пример использования Memcached::getVersion
  • Example#5680 - Пример использования Memcached::increment
  • Example#5681 - Пример использования Memcached::prepend
  • Example#5682 - Пример использования Memcached::set
  • Example#5683 - Пример использования Memcached::setByKey
  • Example#5684 - Пример использования Memcached::setMulti
  • Example#5685 - Устанавливает Memcached параметр
  • Example#5686 - Устанавливает несколько Memcached параметров
  • Example#5687 - Пример использования mqseries_back
  • Example#5688 - Пример использования mqseries_begin
  • Example#5689 - Пример использования mqseries_close
  • Example#5690 - Пример использования mqseries_cmit
  • Example#5691 - Пример использования mqseries_conn
  • Example#5692 - Пример использования mqseries_connx
  • Example#5693 - Пример использования mqseries_connx с использованием SSL и URL ответчика OCSP
  • Example#5694 - Пример использования mqseries_disc
  • Example#5695 - Пример использования mqseries_get
  • Example#5696 - Пример использования mqseries_inq
  • Example#5697 - Пример использования mqseries_open
  • Example#5698 - Пример использования mqseries_put
  • Example#5699 - Пример использования mqseries_strerror
  • Example#5700 - Пример использования define_syslog_variables
  • Example#5701 - Пример использования dns_get_record
  • Example#5702 - Использование dns_get_record с DNS_ANY
  • Example#5703 - Пример использования fsockopen
  • Example#5704 - Использование UDP-соединения
  • Example#5705 - Простой пример использования gethostbyaddr
  • Example#5706 - Простой пример использования gethostbyname
  • Example#5707 - Пример использования функции gethostbynamel
  • Example#5708 - Пример использования gethostname
  • Example#5709 - Пример использования getprotobyname
  • Example#5710 - Пример использования getservbyname
  • Example#5711 - Пример использования header_register_callback
  • Example#5712 - Уничтожение определенного заголовка.
  • Example#5713 - Уничтожение всех ранее установленных заголовков.
  • Example#5714 - Диалог загрузки
  • Example#5715 - Директивы для работы с кешем
  • Example#5716 - Пример использования headers_list
  • Example#5717 - Пример использования headers_sent
  • Example#5718 - Использование http_response_code в окружении веб-сервера
  • Example#5719 - Использование http_response_code в CLI
  • Example#5720 - Пример использования inet_ntop
  • Example#5721 - Пример использования inet_pton
  • Example#5722 - Пример использования ip2long
  • Example#5723 - Отображение IP-адресов
  • Example#5724 - Пример использования setcookie
  • Example#5725 - Пример удаления cookie посредством setcookie
  • Example#5726 - setcookie и массивы
  • Example#5727 - Пример использования syslog
  • Example#5728 - Использование rrd в процедурном стиле
  • Example#5729 - Использование rrd в объектно-ориентированном стиле
  • Example#5730 - RRDGraph::setOptions example
  • Example#5731 - Set multiple color options
  • Example#5732 - Пример использования RRDUpdater::update
  • Example#5733 - Creating a connection and connecting to a remote WebSphere MQSeries Messaging Server
  • Example#5734 - Creating a connection and connecting to a remote WebSphere Application Server
  • Example#5735 - Creating a connection and connecting to an MQTT server
  • Example#5736 - Creating a message with a simple text body
  • Example#5737 - Setting a text format property using the default syntax
  • Example#5738 - Setting a property using a type hint
  • Example#5739 - Retrieving a property from a message header
  • Example#5740 - Adding a message to a queue and receiving a response
  • Example#5741 - Creating a durable subscription to a topic
  • Example#5742 - Subscribing to a topic using a WebSphere Platform Messaging (WPM) server
  • Example#5743 - Receiving published data using a durable subscription
  • Example#5744 - Deleting a durable subscription to a topic
  • Example#5745 - Handling an error from a method that returns no result
  • Example#5746 - Handling an error from a method that returns a result
  • Example#5747 - Committing the current unit of work
  • Example#5748 - Creating a connection to a Messaging Server using the IBM MQSeries protocol (WMQ)
  • Example#5749 - Creating a connection with application transaction control and default host and port values
  • Example#5750 - Creating a connection to a Messaging Server using the IBM WebSphere Platform Messaging protocol (WPM)
  • Example#5751 - Creating a connection object and connecting to a Messaging Server
  • Example#5752 - Disconnecting from a Messaging Server
  • Example#5753 - Using the error number and description properties
  • Example#5754 - Using the error number and description properties
  • Example#5755 - Checking whether there us a connection to a Messaging Server
  • Example#5756 - Retrieve the next message from a queue without removing it
  • Example#5757 - Retrieve a specific message from a queue without removing it from the queue
  • Example#5758 - Retrieve all messages in a queue without removing them
  • Example#5759 - Retrieve all messages from a queue with a matching correlation id
  • Example#5760 - Receiving a message from a queue
  • Example#5761 - Receiving a message from a queue with options
  • Example#5762 - Receiving a message from a subscription
  • Example#5763 - Removing a message from a queue by message id
  • Example#5764 - Cancelling an in-flight unit of work
  • Example#5765 - Send a message to a queue
  • Example#5766 - Publish a message to a topic
  • Example#5767 - Send a request and receive a response
  • Example#5768 - Turn on debugging output
  • Example#5769 - Turn off debugging output
  • Example#5770 - Subscribe to a topic
  • Example#5771 - Delete a subscription
  • Example#5772 - Setting a text string into the body of a message
  • Example#5773 - Creating a message
  • Example#5774 - Creating a message with a simple text payload
  • Example#5775 - Setting a text format property using the default syntax
  • Example#5776 - Setting a text format property using a type hint
  • Example#5777 - Setting properties as the sender of a message
  • Example#5778 - Retreiving property values from a message
  • Example#5779 - Fetch instrumented calls
  • Example#5780 - Fetch the list of functions scoutapm will instrument
  • Example#5781 - snmp_get_quick_print example
  • Example#5782 - Using snmp_get_valueretrieval
  • Example#5783 - Using snmp_read_mib
  • Example#5784 - Using snmp_set_enum_print
  • Example#5785 - Using snmprealwalk
  • Example#5786 - Using snmp_set_quick_print
  • Example#5787 - Using snmp_set_valueretrieval
  • Example#5788 - Using snmp2_get
  • Example#5789 - Using snmp2_get_next
  • Example#5790 - Using snmp2_real_walk
  • Example#5791 - Using snmp2_set
  • Example#5792 - Using snmp2_set for setting BITS SNMP object id
  • Example#5793 - snmp2_walk Example
  • Example#5794 - Using snmp3_get
  • Example#5795 - Using snmp3_getnext
  • Example#5796 - Using snmp3_real_walk
  • Example#5797 - Using snmp3_set
  • Example#5798 - Using snmp3_set for setting BITS SNMP object id
  • Example#5799 - snmp3_walk Example
  • Example#5800 - Using snmpget
  • Example#5801 - Using snmpgetnext
  • Example#5802 - Using snmprealwalk
  • Example#5803 - Using snmpset
  • Example#5804 - Using snmpset for setting BITS SNMP object id
  • Example#5805 - snmpwalk Example
  • Example#5806 - snmpwalkoid Example
  • Example#5807 - SNMP::close example
  • Example#5808 - Fetching sysLocation
  • Example#5809 - Single SNMP object
  • Example#5810 - Multiple SNMP objects
  • Example#5811 - SNMP::getErrno example
  • Example#5812 - SNMP::getError example
  • Example#5813 - Single SNMP object
  • Example#5814 - Miltiple SNMP objects
  • Example#5815 - Set single SNMP object id
  • Example#5816 - Set multiple values using single SNMP::set call
  • Example#5817 - Using SNMP::set for setting BITS SNMP object id
  • Example#5818 - SNMP::setSecurity example
  • Example#5819 - SNMP::walk example
  • Example#5820 - suffix_as_key example
  • Example#5821 - Пример использования сокетов: Простой сервер TCP/IP
  • Example#5822 - Пример использования сокетов: Простой клиентTCP/IP
  • Example#5823 - Использование функции socket_bind для установки адреса источника
  • Example#5824 - Пример использования socket_create_pair
  • Example#5825 - Пример использования socket_create_pair в IPC
  • Example#5826 - Пример использования socket_get_option
  • Example#5827 - Пример использования socket_import_stream
  • Example#5828 - Пример использования socket_last_error
  • Example#5829 - Пример использования socket_recv
  • Example#5830 - Пример использования socket_recvfrom
  • Example#5831 - Использование NULL в socket_select
  • Example#5832 - Анализ результата socket_select
  • Example#5833 - Пример использования socket_select
  • Example#5834 - Пример использования socket_sendto
  • Example#5835 - Пример использованияsocket_set_block
  • Example#5836 - Пример использования socket_set_nonblock
  • Example#5837 - Пример использования socket_set_option
  • Example#5838 - Пример использования socket_strerror
  • Example#5839 - Аутентификация с помощью агента ssh
  • Example#5840 - Аутентификация по открытому ключу
  • Example#5841 - Извлечение списка доступных методов аутентификации
  • Example#5842 - Аутентификация с паролем
  • Example#5843 - Аутентификация с открытым ключем
  • Example#5844 - Пример ssh2_connect
  • Example#5845 - Выполнение команды
  • Example#5846 - Открытие консоли и получение связанного с ней потока STDERR
  • Example#5847 - Проверка отпечатка с известным значением
  • Example#5848 - Определим, какие методы согласованы
  • Example#5849 - Добавляем открытый ключ с помощью ssh2_publickey_add
  • Example#5850 - Список авторизованных ключей с помощью ssh2_publickey_list
  • Example#5851 - Загрузка файла через SCP
  • Example#5852 - Загрузка файла на сервер через SCP
  • Example#5853 - Изменение прав доступа к файлу
  • Example#5854 - Информация о симлолической ссылке
  • Example#5855 - Создание директории на удаленном сервере
  • Example#5856 - Чтение символической ссылки
  • Example#5857 - Определение полного пути
  • Example#5858 - Переименовывание файла
  • Example#5859 - Удаление директории на сервере
  • Example#5860 - Информация о файле
  • Example#5861 - Создание символической ссылки
  • Example#5862 - Удаление файла
  • Example#5863 - Открытие файла через SFTP
  • Example#5864 - Запрос интерактивного терминала
  • Example#5865 - Открытие туннеля по произвольному хосту
  • Example#5866 - Объектно-ориентированный стиль
  • Example#5867 - Процедурный стиль
  • Example#5868 - Пример использования stomp_connect_error
  • Example#5869 - Пример использования stomp_version
  • Example#5870 - Объектно-ориентированный стиль
  • Example#5871 - Процедурный стиль
  • Example#5872 - Объектно-ориентированный стиль
  • Example#5873 - Процедурный стиль
  • Example#5874 - Объектно-ориентированный стиль
  • Example#5875 - Процедурный стиль
  • Example#5876 - Объектно-ориентированный стиль
  • Example#5877 - Процедурный стиль
  • Example#5878 - Объектно-ориентированный стиль
  • Example#5879 - Процедурный стиль
  • Example#5880 - Объектно-ориентированный стиль
  • Example#5881 - Процедурный стиль
  • Example#5882 - Объектно-ориентированный стиль
  • Example#5883 - Процедурный стиль
  • Example#5884 - Объектно-ориентированный стиль
  • Example#5885 - Процедурный стиль
  • Example#5886 - Объектно-ориентированный стиль
  • Example#5887 - Процедурный стиль
  • Example#5888 - Обучение из массива
  • Example#5889 - Обучение из файла
  • Example#5890 - svn_add example
  • Example#5891 - Простой пример аутентификации
  • Example#5892 - Пример использования функции svn_blame
  • Example#5893 - Простой пример использования функции svn_cat()
  • Example#5894 - Простой пример
  • Example#5895 - Простой пример
  • Example#5896 - Простой пример
  • Example#5897 - Простой пример
  • Example#5898 - Простой пример
  • Example#5899 - Вывод различий между двумя ревизиями одного файла
  • Example#5900 - Более удобный способ вывода различий между двумя файла
  • Example#5901 - Пример использования svn_export
  • Example#5902 - Простой пример
  • Example#5903 - Пример использования svn_log
  • Example#5904 - Пример использования svn_ls
  • Example#5905 - Простой пример
  • Example#5906 - Базовый пример
  • Example#5907 - Запрет всех соединений с локального хоста
  • Example#5908 - Запретить URL
  • Example#5909 - Получить снимок статистики
  • Example#5910 - Прочитать журнал разделяемой памяти varnish
  • Example#5911 - Пример использования VarnishAdmin::__construct
  • Example#5912 - Параллельный поиск с помощью Yaz
  • Example#5913 - Настройка CCL
  • Example#5914 - CCL Parsing
  • Example#5915 - Record Update
  • Example#5916 - Массив для записи GRS-1
  • Example#5917 - Пример работы с MARCXML
  • Example#5918 - Функция PHP которая сканирует заглавия
  • Example#5919 - Примеры запросов
  • Example#5920 - Критерии сортировки
  • Example#5921 - Example for NIS errors
  • Example#5922 - Example for the NIS first
  • Example#5923 - Example for the default domain
  • Example#5924 - Example for the NIS master
  • Example#5925 - Example for NIS match
  • Example#5926 - Example for NIS next
  • Example#5927 - Example for the NIS order
  • Example#5928 - Пример использования ZMQContext
  • Example#5929 - Пример использования ZMQContext
  • Example#5930 - Пример использования ZMQContext
  • Example#5931 - Пример использования ZMQSocket
  • Example#5932 - Пример отправки/получения
  • Example#5933 - Пример использования ZMQPoll
  • Example#5934 - zookeeper_dispatch example #1
  • Example#5935 - Пример использования zookeeper_dispatch #2
  • Example#5936 - Zookeeper::addAuth example
  • Example#5937 - Zookeeper::create example
  • Example#5938 - Zookeeper::delete example
  • Example#5939 - Zookeeper::exists example
  • Example#5940 - Zookeeper::get example
  • Example#5941 - Zookeeper::get stat example
  • Example#5942 - Zookeeper::getAcl example
  • Example#5943 - Zookeeper::getChildren example
  • Example#5944 - Zookeeper::set example
  • Example#5945 - Zookeeper::setAcl example
  • Example#5946 - Zookeeper::setDebugLevel example
  • Example#5947 - ZookeeperConfig::add example
  • Example#5948 - ZookeeperConfig::get example
  • Example#5949 - ZookeeperConfig::remove example
  • Example#5950 - ZookeeperConfig::set example
  • Example#5951 -
  • Example#5952 - Пример использования udm_api_version
  • Example#5953 - Пример использования udm_cat_list
  • Example#5954 - Выведем путь до категории в следующем формате: '> Root > Sport > Auto > Ferrari'
  • Example#5955 - Пример использования udm_load_ispell_data
  • Example#5956 - Пример использования udm_load_ispell_data
  • Example#5957 - Пример использования solr_get_version
  • Example#5958 - Contents of the BootStrap file
  • Example#5959 - Adding a document to the index
  • Example#5960 - Merging one document into another document
  • Example#5961 - Searching for documents - SolrObject responses
  • Example#5962 - Searching for documents - SolrDocument responses
  • Example#5963 - Simple TermsComponent example - basic
  • Example#5964 - Simple TermsComponent example - using a prefix
  • Example#5965 - Simple TermsComponent example - specifying a minimum frequency
  • Example#5966 - Simple Facet Example
  • Example#5967 - Simple Facet Example - with optional field override for mincount
  • Example#5968 - Facet Date Example
  • Example#5969 - Connecting to SSL-Enabled Server
  • Example#5970 - Collapsing a SolrQuery
  • Example#5971 - Solr Real Time Get (RTG) example SolrClient::getById
  • Example#5972 - SolrInputDocument::addChildDocument example
  • Example#5973 - SolrInputDocument::addChildDocuments example
  • Example#5974 - SolrDocument::toArray example
  • Example#5975 - SolrObject::__construct example
  • Example#5976 - SolrObject::offsetUnset example
  • Example#5977 - SolrClient::addDocument example
  • Example#5978 - SolrClient::addDocument example 2
  • Example#5979 - SolrClient::addDocuments example
  • Example#5980 - SolrClient::__construct example
  • Example#5981 - SolrQuery::deleteByQuery example
  • Example#5982 - SolrClient::getById example
  • Example#5983 - SolrClient::getByIds example
  • Example#5984 - SolrClient::ping example
  • Example#5985 - SolrClient::query example
  • Example#5986 - SolrClient::request example
  • Example#5987 - SolrClient::setResponseWriter example
  • Example#5988 - SolrParams::setParam example
  • Example#5989 - SolrQuery::addFacetField example
  • Example#5990 - SolrQuery::addFacetField example
  • Example#5991 - SolrQuery::addFilterQuery example
  • Example#5992 - SolrQuery::addGroupSortField example
  • Example#5993 - SolrQuery::collapse example
  • Example#5994 - SolrQuery::setExpand example
  • Example#5995 - SolrDisMaxQuery::addBigramPhraseField example
  • Example#5996 - SolrDisMaxQuery::addBoostQuery example
  • Example#5997 - SolrDisMaxQuery::addPhraseField example
  • Example#5998 - SolrDisMaxQuery::addQueryField example
  • Example#5999 - SolrDisMaxQuery::addTrigramPhraseField example
  • Example#6000 - SolrDisMaxQuery::addUserField example
  • Example#6001 - SolrDisMaxQuery::__construct example
  • Example#6002 - SolrDisMaxQuery::removeBigramPhraseField example
  • Example#6003 - SolrDisMaxQuery::removeBoostQuery example
  • Example#6004 - SolrDisMaxQuery::removePhraseField example
  • Example#6005 - SolrDisMaxQuery::removeQueryField example
  • Example#6006 - SolrDisMaxQuery::removeTrigramPhraseField example
  • Example#6007 - SolrDisMaxQuery::removeUserField example
  • Example#6008 - SolrDisMaxQuery::setBigramPhraseFields example
  • Example#6009 - SolrDisMaxQuery::setBigramPhraseSlop example
  • Example#6010 - SolrDisMaxQuery::setBoostFunction example
  • Example#6011 - SolrDisMaxQuery::setBoostQuery example
  • Example#6012 - SolrDisMaxQuery::setMinimumMatch example
  • Example#6013 - SolrDisMaxQuery::setPhraseFields example
  • Example#6014 - SolrDisMaxQuery::setPhraseSlop example
  • Example#6015 - SolrDisMaxQuery::setQueryAlt example
  • Example#6016 - SolrDisMaxQuery::setQueryPhraseSlop example
  • Example#6017 - SolrDisMaxQuery::setTieBreaker example
  • Example#6018 - SolrDisMaxQuery::setTrigramPhraseFields example
  • Example#6019 - SolrDisMaxQuery::setTrigramPhraseSlop example
  • Example#6020 - SolrDisMaxQuery::setUserFields example
  • Example#6021 - SolrDisMaxQuery::useDisMaxQueryParser example
  • Example#6022 - SolrDisMaxQuery::useEDisMaxQueryParser example
  • Example#6023 - SolrCollapseFunction::__construct example
  • Example#6024 - SolrCollapseFunction::setHint example
  • Example#6025 - SolrCollapseFunction::setMax example
  • Example#6026 - Примеры использования
  • Example#6027 - Простой поиск
  • Example#6028 - Пример использования Swish::__construct
  • Example#6029 - Пример использования Swish::getMetaList
  • Example#6030 - Пример использования Swish::getPropertyList
  • Example#6031 - Пример использования Swish::prepare
  • Example#6032 - Пример использования Swish::query
  • Example#6033 - Пример использования SwishResult::stem
  • Example#6034 - Пример использования SwishResults::getParsedWords
  • Example#6035 - Пример использования SwishResults::nextResult
  • Example#6036 - Пример использования SwishResults::seekResult
  • Example#6037 - Пример использования SwishSearch::execute
  • Example#6038 - Пример использования SwishSearch::resetLimit
  • Example#6039 - Пример использования SwishSearch::setLimit
  • Example#6040 - Пример использования SwishSearch::setPhraseDelimiter
  • Example#6041 - Пример использования SwishSearch::setSort
  • Example#6042 - Пример использования SwishSearch::setStructure
  • Example#6043 - Отключение парсера PHP для директории при помощи .htaccess
  • Example#6044 - Пример использования apache_get_modules
  • Example#6045 - Пример использования apache_get_version
  • Example#6046 - Пример использования apache_getenv
  • Example#6047 - Пример использования apache_lookup_uri
  • Example#6048 - Пример передачи информации между PHP и Perl
  • Example#6049 - Пример записи значений в access.log
  • Example#6050 - Пример использования apache_request_headers
  • Example#6051 - Пример использования apache_response_headers
  • Example#6052 - Пример использования apache_setenv для установки переменной окружения Apache.
  • Example#6053 - Пример использования getallheaders
  • Example#6054 - Пример использования nsapi_request_headers
  • Example#6055 - Регистрация переменной с помощью $_SESSION.
  • Example#6056 - Отмена объявления переменной с помощью $_SESSION.
  • Example#6057 - Подсчет количества посещений конкретного пользователя
  • Example#6058 - Пример
  • Example#6059 - Пример использования session_cache_expire
  • Example#6060 - Пример использования session_cache_limiter
  • Example#6061 - Пример использования session_create_id с функцией session_regenerate_id
  • Example#6062 - Уничтожение сессии с помощью $_SESSION
  • Example#6063 - Пример использования session_gc в диспетчерах задач, таких как cron
  • Example#6064 - Пример использования session_gc в скрипте, доступном пользователю
  • Example#6065 - Пример использования session_name
  • Example#6066 - Пример использования session_regenerate_id
  • Example#6067 - Как избежать потери сессии при использовании session_regenerate_id
  • Example#6068 - Пользовательский обработчик сессии: полный код смотрите в описании SessionHandlerInterface.
  • Example#6069 - Пользовательский обработчик сессии с использованием объектов
  • Example#6070 - page1.php
  • Example#6071 - page2.php
  • Example#6072 - Переопределение времени жизни cookie
  • Example#6073 - Чтение и закрытие сессии
  • Example#6074 - Использвание SessionHandler для того, чтобы добавить шифровку данных ко внутреннему обработчику сессий PHP.
  • Example#6075 - Пример использования SessionHandlerInterface
  • Example#6076 - Пример использования bbcode_add_smiley
  • Example#6077 - Пример использования bbcode_create
  • Example#6078 - Пример использования bbcode_set_arg_parser
  • Example#6079 - Пример использования bbcode_set_flags
  • Example#6080 - Tokenize comma separated integer list
  • Example#6081 - Tokenize assign statement
  • Example#6082 - Simple calculator
  • Example#6083 - Parse words out from a sentence
  • Example#6084 - Примеры правильных шаблонов
  • Example#6085 - Примеры неправильных шаблонов
  • Example#6086 - Пример для сравнения функций preg_filter и preg_replace
  • Example#6087 - Пример использования preg_grep
  • Example#6088 - Пример использования preg_last_error
  • Example#6089 - Получение всех телефонных номеров из текста.
  • Example#6090 - Жадный поиск совпадений с HTML-тэгами
  • Example#6091 - Использование именованных подмасок
  • Example#6092 - Поиск подстроки "php" в тексте
  • Example#6093 - Поиск слова "web" в тексте
  • Example#6094 - Извлечение доменного имени из URL
  • Example#6095 - Использование именованных подмасок
  • Example#6096 - Пример использования preg_quote
  • Example#6097 - Выделение курсивом слова в тексте
  • Example#6098 - Пример использования preg_replace_callback_array
  • Example#6099 - preg_replace_callback и анонимная функция
  • Example#6100 - Пример использования preg_replace_callback
  • Example#6101 - Рекурсивная обработка BB-кодов с помощью preg_replace_callback
  • Example#6102 - Использование подмасок, за которыми следует цифра
  • Example#6103 - Использование массивов с числовыми индексами в качестве аргументов функции preg_replace
  • Example#6104 - Замена по нескольким шаблонам
  • Example#6105 - Чистка пробелов
  • Example#6106 - Использование параметра count
  • Example#6107 - preg_split пример: Получение подстрок из заданного текста
  • Example#6108 - Разбиваем строку на составляющие символы
  • Example#6109 - Разбиваем строку с указанием смещения для каждой из найденных подстрок
  • Example#6110 - Примеры регулярных выражений
  • Example#6111 - Пример использования ereg_replace
  • Example#6112 - Пример использования ereg_replace
  • Example#6113 - Замена URL-адресов на ссылки
  • Example#6114 - Пример использования ereg
  • Example#6115 - Выделение результатов поиска
  • Example#6116 - Пример использования eregi
  • Example#6117 - Пример использования split
  • Example#6118 - Пример использования split
  • Example#6119 - Пример spliti
  • Example#6120 - Пример функции sql_regcase
  • Example#6121 - Пример использования addcslashes
  • Example#6122 - Пример использования addslashes
  • Example#6123 - Пример использования chr
  • Example#6124 - Поведение при переполнении
  • Example#6125 - Создание строки UTF-8 из индивидуальных байтов
  • Example#6126 - Пример использования chunk_split
  • Example#6127 - Пример использования convert_uudecode
  • Example#6128 - Пример использования convert_uuencode
  • Example#6129 - Пример использования count_chars
  • Example#6130 - Вывод контрольной суммы CRC32
  • Example#6131 - Пример использования crypt
  • Example#6132 - Использование crypt и htpasswd
  • Example#6133 - Использование crypt с различными видами хешей
  • Example#6134 - Примеры использования echo
  • Example#6135 - Пример использования explode
  • Example#6136 - Пример возвращаемого значения explode
  • Example#6137 - Примеры с использованием параметра limit
  • Example#6138 - fprintf: заполнение нулями
  • Example#6139 - fprintf: форматирование денежных величин
  • Example#6140 - Пример таблицы преобразований
  • Example#6141 - Пример использования hex2bin
  • Example#6142 - Декодирование HTML-сущностей
  • Example#6143 - Пример использования htmlentities
  • Example#6144 - Использование ENT_IGNORE
  • Example#6145 - Пример использования функции htmlspecialchars_decode
  • Example#6146 - Пример использования htmlspecialchars
  • Example#6147 - Пример использования implode
  • Example#6148 - Пример использования lcfirst
  • Example#6149 - Пример использования levenshtein
  • Example#6150 - Пример использования localeconv
  • Example#6151 - Пример использования ltrim
  • Example#6152 - Пример использования md5_file
  • Example#6153 - Пример использования md5
  • Example#6154 - Простой пример использования metaphone
  • Example#6155 - Использование параметра phonemes
  • Example#6156 - Пример использования money_format
  • Example#6157 - Пример использования nl2br
  • Example#6158 - Генерирование корректной HTML-верстки с помощью параметра is_xhtml
  • Example#6159 - Различные разделители строк
  • Example#6160 - Пример использования number_format
  • Example#6161 - Пример использования ord
  • Example#6162 - Просмотр индивидуальный байтов строки UTF-8
  • Example#6163 - Использование parse_str
  • Example#6164 - Соотношение имен parse_str
  • Example#6165 - Примеры использования print
  • Example#6166 - printf: различные примеры
  • Example#6167 - printf: спецификаторы строки
  • Example#6168 - Пример использования rtrim
  • Example#6169 - Примеры использования setlocale
  • Example#6170 - Примеры использования setlocale в Windows
  • Example#6171 - Пример использования sha1_file
  • Example#6172 - Пример использования sha1
  • Example#6173 - Пример использования similar_text с заменой аргументов
  • Example#6174 - Примеры использования soundex
  • Example#6175 - Argument swapping
  • Example#6176 - Использование символа заполнения
  • Example#6177 - Спецификатор позиции в комбинации с другими спецификаторами
  • Example#6178 - sprintf: целое с лидирующими нулями
  • Example#6179 - sprintf: форматирование денежных единиц
  • Example#6180 - sprintf: научная нотация
  • Example#6181 - Пример использования sscanf
  • Example#6182 - sscanf - использование необязательных аргументов
  • Example#6183 - Пример использования str_ireplace
  • Example#6184 - Пример использования str_pad
  • Example#6185 - Пример использования str_repeat
  • Example#6186 - Примеры использования str_replace
  • Example#6187 - Примеры потенциальных трюков с str_replace
  • Example#6188 - Пример использования str_rot13
  • Example#6189 - Пример использования str_shuffle
  • Example#6190 - Пример использования str_split
  • Example#6191 - Пример использования str_word_count
  • Example#6192 - Пример использования strcasecmp
  • Example#6193 - Пример использования strcmp
  • Example#6194 - Пример использования strcspn
  • Example#6195 - Пример использования strip_tags
  • Example#6196 - Пример использования stripos
  • Example#6197 - Пример использования stripslashes
  • Example#6198 - Использование stripslashes с массивом
  • Example#6199 - Пример использования stristr
  • Example#6200 - Проверка на вхождение строки
  • Example#6201 - Использование не строки в поиске
  • Example#6202 - Пример использования strlen
  • Example#6203 - Пример использования strpbrk
  • Example#6204 - Использование ===
  • Example#6205 - Использование !==
  • Example#6206 - Использование смещения
  • Example#6207 - Пример использования strrchr
  • Example#6208 - Пример использования strrev
  • Example#6209 - Пример использования strripos
  • Example#6210 - Проверка существования искомой строки
  • Example#6211 - Поиск со смещением
  • Example#6212 - Пример использования strspn
  • Example#6213 - Пример использования strstr
  • Example#6214 - Пример использования strtok
  • Example#6215 - Способ обработки пустых подстрок функцией strtok
  • Example#6216 - Пример использования strtolower
  • Example#6217 - Пример использования strtoupper
  • Example#6218 - Пример использования strtr
  • Example#6219 - Пример использования strtr с двумя аргументами
  • Example#6220 - Сравнение поведения функции strtr
  • Example#6221 - Пример использования substr_compare
  • Example#6222 - Пример использования substr_count
  • Example#6223 - Простой пример использования substr_replace
  • Example#6224 - Использование substr_replace для одновременной множественной замены строк
  • Example#6225 - Использование отрицательного параметра start
  • Example#6226 - Использование отрицательного параметра length
  • Example#6227 - Базовое использование substr
  • Example#6228 - substr и приведение типов
  • Example#6229 -
  • Example#6230 - Пример использования trim
  • Example#6231 - Обрезание значений массива с помощью trim
  • Example#6232 - Пример использования ucfirst
  • Example#6233 - Пример использования ucwords
  • Example#6234 - Пример ucwords с заданным разделителем
  • Example#6235 - vfprintf: дополнение нулями целых чисел
  • Example#6236 - vprintf: дополнение нулями целых чисел
  • Example#6237 - vsprintf: дополнение нулями целых чисел
  • Example#6238 - Пример использования wordwrap
  • Example#6239 - Пример использования wordwrap
  • Example#6240 - Пример использования wordwrap
  • Example#6241 - Пример использования array_change_key_case
  • Example#6242 - Пример использования array_chunk
  • Example#6243 - Получим столбец с именами из набора записей
  • Example#6244 - Получим столбец с фамилиями, а в качестве ключей возвращаемого массива используем значения из столбца "id"
  • Example#6245 - Получим столбец имен пользователей из общедоступного свойства "username" объекта
  • Example#6246 - Получим столбец имен пользователей из приватного свойства "name" объекта, используя магический метод __get.
  • Example#6247 - Простой пример использования array_combine
  • Example#6248 - Пример использования array_count_values
  • Example#6249 - Пример использования array_diff_assoc
  • Example#6250 - Пример использования array_diff_assoc
  • Example#6251 - Пример использования array_diff_key
  • Example#6252 - Пример использования array_diff_uassoc
  • Example#6253 - Пример использования array_diff_ukey
  • Example#6254 - Пример использования array_diff
  • Example#6255 - Пример использования array_fill_keys
  • Example#6256 - Пример использования array_fill
  • Example#6257 - Пример использования array_filter
  • Example#6258 - Использование array_filter без callback-функции
  • Example#6259 - array_filter с указанным flag
  • Example#6260 - Пример использования array_flip
  • Example#6261 - Пример использования array_flip с коллизиями
  • Example#6262 - Пример использования array_intersect_assoc
  • Example#6263 - Пример использования array_intersect_key
  • Example#6264 - Пример использования array_intersect_uassoc
  • Example#6265 - Пример использования array_intersect_ukey
  • Example#6266 - Пример использования array_intersect
  • Example#6267 - Пример использования array_key_exists
  • Example#6268 - array_key_exists и isset
  • Example#6269 - Пример использования array_key_first
  • Example#6270 - Пример использования array_keys
  • Example#6271 - Пример использования array_map
  • Example#6272 - Использование array_map вместе с лямбда-функцией (начиная с PHP 5.3.0)
  • Example#6273 - Пример использования array_map: обработка нескольких массивов
  • Example#6274 - Выполнение zip операции с массивами
  • Example#6275 - NULL callback только с array1
  • Example#6276 - Использование array_map со строковыми ключами
  • Example#6277 - Пример использования array_merge_recursive
  • Example#6278 - Пример использования array_merge
  • Example#6279 - Простой пример использования array_merge
  • Example#6280 - Пример использования array_merge с не массивами
  • Example#6281 - Сортировка нескольких массивов
  • Example#6282 - Сортировка многомерного массива
  • Example#6283 - Сортировка результатов из базы данных
  • Example#6284 - Сортировка без учета регистра
  • Example#6285 - Пример использования array_pad
  • Example#6286 - Пример использования array_pop
  • Example#6287 - Примеры использования array_product
  • Example#6288 - Пример использования array_push
  • Example#6289 - Пример использования array_rand
  • Example#6290 - Пример использования array_reduce
  • Example#6291 - Пример использования array_replace_recursive
  • Example#6292 - array_replace_recursive и рекурсивное поведение
  • Example#6293 - Пример использования array_replace
  • Example#6294 - Пример использования array_reverse
  • Example#6295 - Пример использования array_search
  • Example#6296 - Пример использования array_shift
  • Example#6297 - Пример использования array_slice
  • Example#6298 - Пример использования array_slice с одномерным массивом
  • Example#6299 - Пример использования array_slice с массивом из смешанных ключей
  • Example#6300 - Примеры использования array_splice
  • Example#6301 - Примеры использования array_splice
  • Example#6302 - Пример использования array_sum
  • Example#6303 - Пример использования array_udiff_assoc
  • Example#6304 - Пример использования array_udiff_uassoc
  • Example#6305 - Пример использования array_udiff с объектами класса stdClass
  • Example#6306 - Пример использования array_udiff с объектами класса DateTime
  • Example#6307 - Пример использования array_uintersect_assoc
  • Example#6308 - Пример использования array_uintersect_uassoc
  • Example#6309 - Пример использования array_uintersect
  • Example#6310 - Пример использования array_unique
  • Example#6311 - array_unique и типы:
  • Example#6312 - Пример использования array_unshift
  • Example#6313 - Пример использования array_values
  • Example#6314 - Пример использования array_walk_recursive
  • Example#6315 - Пример использования array_walk
  • Example#6316 - Пример использования array
  • Example#6317 - Автоматическая индексация с помощью array
  • Example#6318 - Пример использования array, нумерация которого начинается с 1
  • Example#6319 - Доступ к массиву внутри двойных кавычек
  • Example#6320 - Пример использования arsort
  • Example#6321 - Пример использования asort
  • Example#6322 - Пример использования compact
  • Example#6323 - Пример использования count
  • Example#6324 - Пример рекурсивного использования count
  • Example#6325 - Пример использования current и дружественных функций
  • Example#6326 - Примеры использования each
  • Example#6327 - Обход массива функцией each
  • Example#6328 - Пример использования end
  • Example#6329 - Пример использования extract
  • Example#6330 - Пример использования in_array
  • Example#6331 - Пример использования in_array с параметром strict
  • Example#6332 - Пример использования in_array с массивом в качестве параметра needle
  • Example#6333 - Пример использования key
  • Example#6334 - Пример использования krsort
  • Example#6335 - Пример использования ksort
  • Example#6336 - Примеры использования list
  • Example#6337 - Пример использования list
  • Example#6338 - Использование list с индексами массивов
  • Example#6339 - Использование list с индексами массива
  • Example#6340 - list и порядок указания индексов
  • Example#6341 - list с ключами
  • Example#6342 - Пример использования natcasesort
  • Example#6343 - Простой пример использования natsort
  • Example#6344 - Примеры использования различных трюков с natsort
  • Example#6345 - Пример использования next и связанных функций
  • Example#6346 - Пример использования prev и ее связанных функций
  • Example#6347 - Примеры использования range
  • Example#6348 - Пример использования reset
  • Example#6349 - Пример использования rsort
  • Example#6350 - Пример использования shuffle
  • Example#6351 - Пример использования sort
  • Example#6352 - Пример использования sort с регистронезависимым естественным упорядочением
  • Example#6353 - Простой пример использования uasort
  • Example#6354 - Пример использования uksort
  • Example#6355 - Пример использования usort
  • Example#6356 - Пример использования функции usort с многомерными массивами
  • Example#6357 - Пример использования usort с методом класса
  • Example#6358 - Пример использования функции usort с применением анонимной функции для сортировки многомерного массива
  • Example#6359 - classes.inc
  • Example#6360 - test_script.php
  • Example#6361 - Альтернатива call_user_method_array
  • Example#6362 - Альтернатива call_user_method
  • Example#6363 - Пример использования class_alias
  • Example#6364 - Пример использования class_exists
  • Example#6365 - Пример использования c параметром autoload
  • Example#6366 - Пример использования get_called_class
  • Example#6367 - Пример использования get_class_methods
  • Example#6368 - Пример использования get_class_vars
  • Example#6369 - get_class_vars и поведение области видимости
  • Example#6370 - Использование get_class
  • Example#6371 - Использование get_class в родительском классе
  • Example#6372 - Использование get_class с классами в пространствах имен
  • Example#6373 - Пример использования get_declared_classes
  • Example#6374 - Пример использования get_declared_interfaces
  • Example#6375 - Пример использования get_object_vars
  • Example#6376 - Пример использования get_parent_class
  • Example#6377 - Пример использования interface_exists
  • Example#6378 - Пример использования is_a
  • Example#6379 - Использование оператора instanceof в PHP 5
  • Example#6380 - Пример использования is_subclass_of
  • Example#6381 - Пример использования is_subclass_of с интерфейсами
  • Example#6382 - Пример использования method_exists
  • Example#6383 - Пример статического использования method_exists
  • Example#6384 - Пример использования property_exists
  • Example#6385 - Пример использования classkit_import
  • Example#6386 - Пример использования classkit_method_add
  • Example#6387 - Пример использования classkit_method_copy
  • Example#6388 - Пример использования classkit_method_redefine
  • Example#6389 - Пример использования classkit_method_remove
  • Example#6390 - Пример использования classkit_method_rename
  • Example#6391 - Пример использования ctype_alnum (с использованием локали по умолчанию)
  • Example#6392 - Пример использования ctype_alpha (с использованием локали по умолчанию)
  • Example#6393 - Пример использования ctype_cntrl
  • Example#6394 - Пример использования ctype_digit
  • Example#6395 - Пример использования ctype_digit со сравнением строк и целых чисел
  • Example#6396 - Пример использования ctype_graph
  • Example#6397 - Пример использования ctype_lower (с использованием локали по умолчанию)
  • Example#6398 - Пример использования ctype_print
  • Example#6399 - Пример использования ctype_punct
  • Example#6400 - Пример использования ctype_space
  • Example#6401 - Пример использования ctype_upper (с использованием локали по умолчанию)
  • Example#6402 - Пример использования ctype_xdigit
  • Example#6403 - Настройка фильтра по умолчанию для работы аналогично функции htmlspecialchars
  • Example#6404 - Настройка фильтра по умолчанию для работы аналогично функции htmlspecialchars
  • Example#6405 - Валидация e-mail адреса, используя функцию filter_var
  • Example#6406 - Валидация IP-адреса, используя функцию filter_var
  • Example#6407 - Дополнительные параметры функции filter_var
  • Example#6408 - Нормализация и валидация e-mail адресов
  • Example#6409 - Настройка фильтра по умолчанию
  • Example#6410 - Пример использования filter_input_array
  • Example#6411 - Пример использования filter_input
  • Example#6412 - Пример использования filter_list
  • Example#6413 - Пример использования filter_var_array
  • Example#6414 - Пример использования filter_var
  • Example#6415 - Пример использования функции call_user_func_array
  • Example#6416 - Пример использования call_user_func_array c именем пространства имен
  • Example#6417 - Использование лямбда-функции
  • Example#6418 - Передача значений по ссылке
  • Example#6419 - Пример использования call_user_func и ссылки
  • Example#6420 - Пример использования call_user_func
  • Example#6421 - Использование call_user_func, используя пространства имен
  • Example#6422 - Вызов метода класса с помощью call_user_func
  • Example#6423 - Использование лямбда-функции с call_user_func
  • Example#6424 - Создание анонимной функции с помощью create_function
  • Example#6425 - Создание функции-обработчика с помощью create_function
  • Example#6426 - Использование анонимной функции в качестве функции обратного вызова
  • Example#6427 - Пример использования forward_static_call_array
  • Example#6428 - Пример использования forward_static_call
  • Example#6429 - Пример использования func_get_arg
  • Example#6430 - Использование func_get_arg до и после PHP 5.3
  • Example#6431 - Пример передачи аргументов по ссылке и по значению с func_get_arg
  • Example#6432 - Пример использования func_get_args
  • Example#6433 - Использование func_get_args до и после PHP 5.3
  • Example#6434 - Пример передачи аргументов по ссылке и по значению с func_get_args
  • Example#6435 - Пример использования func_num_args
  • Example#6436 - Использование func_num_args до и после PHP 5.3
  • Example#6437 - Пример использования function_exists
  • Example#6438 - Пример использования get_defined_functions
  • Example#6439 - Пример использования register_shutdown_function
  • Example#6440 - Пример использования register_tick_function
  • Example#6441 - Примеры использования Quickhash
  • Example#6442 - Пример использования Quickhash с доступом как к массиву
  • Example#6443 - Пример итерирования
  • Example#6444 - Пример со строковыми значениями
  • Example#6445 - QuickHashIntSet::add example
  • Example#6446 - QuickHashIntSet::__construct example
  • Example#6447 - QuickHashIntSet::delete example
  • Example#6448 - QuickHashIntSet::exists example
  • Example#6449 - QuickHashIntSet::getSize example
  • Example#6450 - QuickHashIntSet::loadFromFile example
  • Example#6451 - QuickHashIntSet::loadFromString example
  • Example#6452 - QuickHashIntSet::saveToFile example
  • Example#6453 - QuickHashIntSet::saveToString example
  • Example#6454 - QuickHashIntHash::add example
  • Example#6455 - QuickHashIntHash::__construct example
  • Example#6456 - QuickHashIntHash::delete example
  • Example#6457 - QuickHashIntHash::exists example
  • Example#6458 - QuickHashIntHash::get example
  • Example#6459 - QuickHashIntHash::getSize example
  • Example#6460 - QuickHash IntHash file format
  • Example#6461 - QuickHash IntHash file format
  • Example#6462 - QuickHashIntHash::loadFromFile example
  • Example#6463 - QuickHashIntHash::loadFromString example
  • Example#6464 - QuickHashIntHash::saveToFile example
  • Example#6465 - QuickHashIntHash::saveToString example
  • Example#6466 - QuickHashIntHash::set example
  • Example#6467 - QuickHashIntHash::update example
  • Example#6468 - QuickHashStringIntHash::add example
  • Example#6469 - QuickHashStringIntHash::__construct example
  • Example#6470 - QuickHashStringIntHash::delete example
  • Example#6471 - QuickHashStringIntHash::get example
  • Example#6472 - QuickHashStringIntHash::getSize example
  • Example#6473 - QuickHash StringIntHash file format
  • Example#6474 - QuickHash IntHash file format
  • Example#6475 - QuickHashStringIntHash::loadFromFile example
  • Example#6476 - QuickHashStringIntHash::loadFromString example
  • Example#6477 - QuickHashStringIntHash::saveToFile example
  • Example#6478 - QuickHashStringIntHash::saveToString example
  • Example#6479 - QuickHashStringIntHash::set example
  • Example#6480 - QuickHashStringIntHash::update example
  • Example#6481 - QuickHashIntStringHash::add example
  • Example#6482 - QuickHashIntStringHash::__construct example
  • Example#6483 - QuickHashIntStringHash::delete example
  • Example#6484 - QuickHashIntStringHash::get example
  • Example#6485 - QuickHashIntStringHash::getSize example
  • Example#6486 - QuickHash IntString file format
  • Example#6487 - QuickHash IntString file format
  • Example#6488 - QuickHashIntStringHash::loadFromFile example
  • Example#6489 - QuickHashIntStringHash::loadFromString example
  • Example#6490 - QuickHashIntStringHash::saveToFile example
  • Example#6491 - QuickHashIntStringHash::saveToString example
  • Example#6492 - QuickHashIntStringHash::set example
  • Example#6493 - QuickHashIntStringHash::update example
  • Example#6494 - Пример использования Reflection из shell (терминала)
  • Example#6495 - Расширение встроенных классов
  • Example#6496 - Пример использования Reflection::getModifierNames
  • Example#6497 - Простой пример использования ReflectionClass
  • Example#6498 - Пример использования ReflectionClass::export
  • Example#6499 - Пример использования ReflectionClass::getConstant
  • Example#6500 - Пример использования ReflectionClass::getConstructor
  • Example#6501 - Пример использования ReflectionClass::getDefaultProperties
  • Example#6502 - Пример использования ReflectionClass::getDocComment
  • Example#6503 - Пример использования ReflectionClass::getEndLine
  • Example#6504 - Пример использования ReflectionClass::getExtension
  • Example#6505 - Пример использования ReflectionClass::getExtensionName
  • Example#6506 - Пример использования ReflectionClass::getInterfaceNames
  • Example#6507 - Пример использования ReflectionClass::getInterfaces
  • Example#6508 - Пример использования ReflectionClass::getMethod
  • Example#6509 - Пример использования ReflectionClass::getMethods
  • Example#6510 - Пример фильтрации результата вызова ReflectionClass::getMethods
  • Example#6511 - Пример использования ReflectionClass::getName
  • Example#6512 - Пример использования ReflectionClass::getNamespaceName
  • Example#6513 - Пример фильтрации с помощью ReflectionClass::getProperties
  • Example#6514 - Пример использования ReflectionClass::getProperty
  • Example#6515 - Простой пример использования ReflectionClass::getReflectionConstants
  • Example#6516 - Пример использования ReflectionClass::getShortName
  • Example#6517 - Пример использования ReflectionClass::getStaticPropertyValue
  • Example#6518 - Пример использования ReflectionClass::hasConstant
  • Example#6519 - Пример использования ReflectionClass::hasMethod
  • Example#6520 - Пример использования ReflectionClass::hasProperty
  • Example#6521 - Пример использования ReflectionClass::inNamespace
  • Example#6522 - Пример использования ReflectionClass::isAbstract
  • Example#6523 - Пример ReflectionClass::isAnonymous
  • Example#6524 - Пример использования ReflectionClass::isCloneable
  • Example#6525 - Пример использования ReflectionClass::isFinal
  • Example#6526 - Пример использования ReflectionClass::isInstance и его аналогов
  • Example#6527 - Пример использования ReflectionClass::isInstantiable
  • Example#6528 - Пример использования ReflectionClass::isInterface
  • Example#6529 - Пример использования ReflectionClass::isInternal
  • Example#6530 - Использование ReflectionClass::isIterable
  • Example#6531 - Пример использования ReflectionClass::newInstanceArgs
  • Example#6532 - Пример использования ReflectionClass::__toString
  • Example#6533 - Пример использования ReflectionExtension
  • Example#6534 - Пример использования ReflectionExtension::getClasses
  • Example#6535 - Пример использования ReflectionExtension::getClassNames
  • Example#6536 - Пример использования ReflectionExtension::getConstants
  • Example#6537 - Пример использования ReflectionExtension::getDependencies
  • Example#6538 - Пример использования ReflectionExtension::getFunctions
  • Example#6539 - Пример использования ReflectionExtension::getINIEntries
  • Example#6540 - Пример использования ReflectionExtension::getName
  • Example#6541 - Пример использования ReflectionExtension::getVersion
  • Example#6542 - Пример использования ReflectionExtension::info
  • Example#6543 - Пример использования ReflectionFunction::__construct
  • Example#6544 - Пример использования ReflectionFunction::invoke
  • Example#6545 - Пример использования ReflectionFunction::invokeArgs
  • Example#6546 - Пример использования ReflectionFunction::invokeArgs со ссылками на аргументы
  • Example#6547 - Пример использования ReflectionFunction::__toString
  • Example#6548 - Пример ReflectionFunctionAbstract::getReturnType
  • Example#6549 - Применение к встроенным функциям
  • Example#6550 - Пример ReflectionFunctionAbstract::hasReturnType
  • Example#6551 - Применение к встроенным функциям
  • Example#6552 - Пример использования метода ReflectionFunctionAbstract::isClosure
  • Example#6553 - Пример использования ReflectionFunctionAbstract::isDeprecated
  • Example#6554 - Пример использования ReflectionMethod::__construct
  • Example#6555 - Пример использования ReflectionMethod::getDeclaringClass
  • Example#6556 - Пример использования ReflectionMethod::getModifiers
  • Example#6557 - Пример использования ReflectionMethod::getPrototype
  • Example#6558 - Пример использования ReflectionMethod::invoke
  • Example#6559 - Пример использования ReflectionMethod::invokeArgs
  • Example#6560 - Пример использования ReflectionMethod::__toString
  • Example#6561 - Использования класса ReflectionParameter
  • Example#6562 - Пример использования класса ReflectionParameter
  • Example#6563 - Получение класса, в котором объявлен метод
  • Example#6564 - Получение
  • Example#6565 - Получение значений по умолчанию констант для параметров функции
  • Example#6566 - Пример использования ReflectionParameter::getType начиная с PHP 7.1.0
  • Example#6567 - Использование ReflectionParameter::getType в PHP до версии 7.1.0
  • Example#6568 - Пример использования ReflectionParameter::hasType
  • Example#6569 - Пример использования ReflectionProperty::__construct
  • Example#6570 - Получение значений защищенных и закрытых свойств, используя класс ReflectionProperty
  • Example#6571 - Пример ReflectionProperty::getDocComment
  • Example#6572 - Декларация нескольких свойств
  • Example#6573 - ReflectionProperty::getType example
  • Example#6574 - Пример использования ReflectionProperty::getValue
  • Example#6575 - ReflectionProperty::hasType example
  • Example#6576 - Пример использования ReflectionClass::isDefault
  • Example#6577 - ReflectionProperty::isInitialized example
  • Example#6578 - Пример использования ReflectionProperty::setValue
  • Example#6579 - Пример использования ReflectionType::allowsNull
  • Example#6580 - Пример использования ReflectionType::isBuiltin
  • Example#6581 - Пример использования ReflectionType::__toString
  • Example#6582 - Пример использования ReflectionGenerator::__construct
  • Example#6583 - Пример использования ReflectionGenerator::getExecutingFile
  • Example#6584 - Пример использования ReflectionGenerator::getExecutingGenerator
  • Example#6585 - Пример использования ReflectionGenerator::getExecutingLine
  • Example#6586 - Пример использования ReflectionGenerator::getFunction
  • Example#6587 - Пример использования ReflectionGenerator::getThis
  • Example#6588 - Пример использования ReflectionGenerator::getTrace
  • Example#6589 - Пример использования boolval
  • Example#6590 - Пример использования debug_zval_dump
  • Example#6591 -
  • Example#6592 -
  • Example#6593 - Простое сравнение empty и isset.
  • Example#6594 - empty и строковые индексы
  • Example#6595 - Пример использования floatval
  • Example#6596 - Пример использования floatval с нечисловыми крайними левыми символами
  • Example#6597 - Пример использования get_defined_vars
  • Example#6598 - Пример использования get_resource_type
  • Example#6599 - Пример использования gettype
  • Example#6600 - Пример использования import_request_variables
  • Example#6601 - Примеры использования intval
  • Example#6602 - Проверяет, является ли переменная массивом
  • Example#6603 - Пример использования is_bool
  • Example#6604 - Пример использования is_callable
  • Example#6605 - is_callable и конструкторы
  • Example#6606 - Примеры использования is_countable
  • Example#6607 - Пример использования is_float
  • Example#6608 - Пример использования is_int
  • Example#6609 - Пример использования is_iterable
  • Example#6610 - Пример использования is_null
  • Example#6611 - Примеры использования is_numeric
  • Example#6612 - Пример использования is_object
  • Example#6613 - Пример использования is_resource
  • Example#6614 - Пример использования is_scalar
  • Example#6615 - Пример использования is_string
  • Example#6616 - Пример использования isset
  • Example#6617 - isset и строковые индексы
  • Example#6618 - Пример использования print_r
  • Example#6619 - Пример использования параметра return
  • Example#6620 - Пример использования serialize
  • Example#6621 - Пример использования settype
  • Example#6622 - Пример использования strval с магическим методом PHP 5 __toString().
  • Example#6623 - Пример использования unserialize
  • Example#6624 - Пример использования unserialize_callback_func
  • Example#6625 - Пример использования unset
  • Example#6626 - Использование приведения типа (unset)
  • Example#6627 - Пример использования var_dump
  • Example#6628 - Примеры использования var_export
  • Example#6629 - Экспорт классов c PHP 5.1.0
  • Example#6630 - Использование __set_state() (c PHP 5.1.0)
  • Example#6631 -
  • Example#6632 - Пример использования OAuth::fetch
  • Example#6633 - Пример использования OAuth::getAccessToken
  • Example#6634 - Пример использования OAuth::getRequestToken
  • Example#6635 - Пример использования OAuth::setRequestEngine
  • Example#6636 - Пример использования OAuth::setRsaCertificate
  • Example#6637 - Пример использования OAuth::setToken
  • Example#6638 - Пример использования OAuthProvider::__construct
  • Example#6639 - Пример использования OAuthProvider::consumerHandler
  • Example#6640 - Пример использования OAuthProvider::generateToken
  • Example#6641 - Пример использования OAuthProvider::is2LeggedEndpoint
  • Example#6642 - Пример использования OAuthProvider::timestampNonceHandler
  • Example#6643 - Пример использования OAuthProvider::tokenHandler
  • Example#6644 - Простой компонент SCA
  • Example#6645 - Структура компонента SCA
  • Example#6646 - Получение прокси для локальных классов
  • Example#6647 - Получение прокси для веб-сервиса
  • Example#6648 - Вызов сервисов
  • Example#6649 - Получение прокси с помощью getService
  • Example#6650 - Вызов сервиса через прокси
  • Example#6651 - Сервис StockQuote
  • Example#6652 - Созданная WSDL
  • Example#6653 - Generated WSDL
  • Example#6654 - Аттрибут location
  • Example#6655 - Метод с двумя аргументами
  • Example#6656 - Секция типов с именованными параметрами
  • Example#6657 - Компонент использующий структуры данных
  • Example#6658 - Пример использования SCA::getService
  • Example#6659 - Пример использования функции is_soap_fault
  • Example#6660 - Стандартный метод SOAP для сообщений об ошибках - это исключения
  • Example#6661 - Пример использования SoapClient::__doRequest
  • Example#6662 - Пример использования SoapClient::__getFunctions
  • Example#6663 - Пример использования SoapClient::__getLastRequest()
  • Example#6664 - Пример использования SoapClient::__getLastRequestHeaders()
  • Example#6665 - Пример использования SoapClient::__getLastResponse()
  • Example#6666 - Пример использования SoapClient::__getLastResponse()
  • Example#6667 - Пример использования SoapClient::__getTypes
  • Example#6668 - Пример использования SoapClient::__setLocation
  • Example#6669 - Пример использования SoapClient::__setSoapHeaders
  • Example#6670 - Установка нескольких заголовков
  • Example#6671 - Пример использования SoapClient::__soapCall
  • Example#6672 - Пример использования SoapClient::SoapClient
  • Example#6673 - Пример использования SoapServer::addFunction
  • Example#6674 - Пример использования SoapServer::getFunctions
  • Example#6675 - Пример использования SoapServer::handle
  • Example#6676 - Пример использования SoapServer::setPersistence
  • Example#6677 - Пример использования SoapServer::SoapServer
  • Example#6678 - Несколько примеров
  • Example#6679 - Несколько примеров
  • Example#6680 - Пример использования SoapHeader::SoapHeader
  • Example#6681 - Пример использования SoapParam::SoapParam
  • Example#6682 - Пример использования SoapVar::SoapVar
  • Example#6683 - Пример сервера Yar
  • Example#6684 - Обращаемся к серверу из браузера (запрос GET)
  • Example#6685 - Пример клиента Yar
  • Example#6686 - Пример конкурирующих клиентов Yar
  • Example#6687 - Пример использования Yar_Server::__construct
  • Example#6688 - Пример использования Yar_Server::handle
  • Example#6689 - Пример использования Yar_Client::__call
  • Example#6690 - Пример использования Yar_Client::__construct
  • Example#6691 - Пример использования Yar_Client::setOpt
  • Example#6692 - Пример использования Yar_Concurrent_Client::call
  • Example#6693 - Пример использования Yar_Concurrent_Client::loop
  • Example#6694 - Пример использования Yar_Concurrent_Client::reset
  • Example#6695 - Пример использования Yar_Server_Exception::getType
  • Example#6696 - Пример использования Yar_Client_Exception::getType
  • Example#6697 - Пример клиентской функции XMLRPC
  • Example#6698 - Пример XML-RPC типа
  • Example#6699 - Пример использования xmlrpc_set_type
  • Example#6700 - For Each в ASP
  • Example#6701 - foreach в PHP
  • Example#6702 - Первый пример
  • Example#6703 - Второй пример
  • Example#6704 - Пример использования DOTNET
  • Example#6705 - Пример использования Variant
  • Example#6706 - Пример com_event_sink
  • Example#6707 - Статистические данные о текущем процессе PHP
  • Example#6708 - Статистические данные о глобальном использовании памяти
  • Example#6709 - Регистрация скрипта PHP для запуска в качестве службы
  • Example#6710 - Удаление регистрации службы
  • Example#6711 - Запуск в качестве службы
  • Example#6712 - A win32_create_service example
  • Example#6713 - A win32_create_service example with dependencies
  • Example#6714 - A win32_create_service example with recovery
  • Example#6715 - A win32_delete_service example
  • Example#6716 - Пример win32_start_service_ctrl_dispatcher
  • Example#6717 - book.xml
  • Example#6718 - Создание нового объекта класса DOMAttr
  • Example#6719 - Пример использования DOMAttr::isId()
  • Example#6720 - Создание объекта класса DOMCdataSection
  • Example#6721 - Создание объекта DOMComment
  • Example#6722 - Создание объекта DOMDocument
  • Example#6723 - Создание нового элемента и вставка его в качестве корневого
  • Example#6724 - Передача текста, содержащего неэкранированный & в value
  • Example#6725 - Создание элемента и вставка в документ в качестве корневого
  • Example#6726 - Пример префикса пространства имен
  • Example#6727 - Пример использования DOMDocument::getElementById()
  • Example#6728 - Простой пример использования
  • Example#6729 - Получение всех элементов XInclude
  • Example#6730 - Пример использования DOMDocument::importNode
  • Example#6731 - Создание документа
  • Example#6732 - Создание документа
  • Example#6733 - Создание документа
  • Example#6734 - Создание документа
  • Example#6735 - Статический вызов loadXML
  • Example#6736 - Добавление нового метода в класс DOMElement для упрощения кода
  • Example#6737 - Получение элементов в виде пользовательского класса
  • Example#6738 - Получение имени документа владельца
  • Example#6739 - Сохранение DOM-дерева в файл
  • Example#6740 - Сохранение HTML-дерева в виде строки
  • Example#6741 - Сохранение HTML-дерева в файл
  • Example#6742 - Сохранение DOM-дерева в виде строки
  • Example#6743 - Пример проверки DTD
  • Example#6744 - Пример использования DOMDocument::xinclude()
  • Example#6745 - Добавление XML-данных в документ
  • Example#6746 - Создание нового DOMElement
  • Example#6747 - Установка значения атрибута
  • Example#6748 - Создание нового объекта DOMEntityReference
  • Example#6749 - Создание документа с прикрепленным DTD
  • Example#6750 - Тестирование вашей реализации DOM
  • Example#6751 - Добавление дочернего узла
  • Example#6752 - Вложенные дочерние узлы
  • Example#6753 - Пример использования DOMNode::getLineNo
  • Example#6754 - Пример использования DOMNode::getNodePath
  • Example#6755 - Удаление дочернего узла
  • Example#6756 - Вывод содержимого таблицы
  • Example#6757 - Создание объекта класса DOMProcessingInstruction
  • Example#6758 - Создание нового узла DOMText
  • Example#6759 - Получение количества всех английских книг
  • Example#6760 - Получение списка всех книг на английском
  • Example#6761 - book.xml
  • Example#6762 - DOMXPath::registerPHPFunctions с php:functionString
  • Example#6763 - DOMXPath::registerPHPFunctions с php:function
  • Example#6764 - Импорт SimpleXML в DOM с помощью функции dom_import_simplexml
  • Example#6765 - Пример использования libxml_get_errors
  • Example#6766 - Пример использования libxml_set_external_entity_loader
  • Example#6767 - Пример использования libxml_set_streams_context
  • Example#6768 - Пример использования libxml_use_internal_errors
  • Example#6769 - Access via property name
  • Example#6770 - Access via property name as array index
  • Example#6771 - Data Object iteration
  • Example#6772 - Access many-valued property by name
  • Example#6773 - Many-valued element access
  • Example#6774 - Many-valued property iteration
  • Example#6775 - Chained property access
  • Example#6776 - XPath navigation
  • Example#6777 - XPath querying
  • Example#6778 - Creating child data objects
  • Example#6779 - Unset a primitive property
  • Example#6780 - Unset a data object
  • Example#6781 - Unset a referenced data object
  • Example#6782 - Access via property index
  • Example#6783 - Getting the SDO_Sequence interface
  • Example#6784 - Get/set sequence values
  • Example#6785 - Sequence iteration
  • Example#6786 - Sequence versus Data Object
  • Example#6787 - Adding to a sequence
  • Example#6788 - Removing from a sequence
  • Example#6789 - Reflecting on a Data Object
  • Example#6790 - Accessing the type information
  • Example#6791 - A SDO_DAS_DataFactory::addPropertyToType example
  • Example#6792 - A SDO_DAS_DataFactory::addType example
  • Example#6793 - Creating a data object
  • Example#6794 - Retrieving a data object
  • Example#6795 - Updating a data object
  • Example#6796 - Deleting a data object
  • Example#6797 - One company, one department - Create
  • Example#6798 - One company, one department - Retrieve and Update
  • Example#6799 - One company, two departments - Retrieve and Delete
  • Example#6800 - One company, one department, one employee - Create
  • Example#6801 - One company, one department, one employee - Retrieve and update
  • Example#6802 - One company, two departments, two employees - Retrieve and delete
  • Example#6803 - Retrieving a data object using executePreparedQuery
  • Example#6804 - Loading, altering, and saving an XML document
  • Example#6805 - Creating a new XML document
  • Example#6806 - Setting XML document properties
  • Example#6807 - Using an open type
  • Example#6808 - Finding out what you can from the document
  • Example#6809 - Printing the SDO model
  • Example#6810 - Файл example.php с XML строкой
  • Example#6811 - Получение части документа <plot>
  • Example#6812 - Получение строки <line>
  • Example#6813 - Доступ к неуникальным элементам в SimpleXML
  • Example#6814 - Использование атрибутов
  • Example#6815 - Сравнение элементов и атрибутов с текстом
  • Example#6816 - Сравнение двух элементов
  • Example#6817 - Использование XPath
  • Example#6818 - Установка значений
  • Example#6819 - Добавление элементов и атрибутов
  • Example#6820 - Взаимодействие с DOM
  • Example#6821 - Загрузка синтаксически неправильной XML-строки
  • Example#6822 - Добавление атрибутов и потомков к SimpleXML-элементу
  • Example#6823 - Добавление атрибутов и потомков к элементу SimpleXML
  • Example#6824 - Получение XML
  • Example#6825 - Использование asXML() с результатами SimpleXMLElement::xpath
  • Example#6826 - Интерпретация XML-строки
  • Example#6827 - Обход псевдомассива children()
  • Example#6828 - Использование пространства имен
  • Example#6829 - Создание объекта SimpleXMLElement
  • Example#6830 - Создание объекта SimpleXMLElement из URL
  • Example#6831 - Подсчет количества дочерних элементов
  • Example#6832 - Получение пространства имен документа
  • Example#6833 - Работа с несколькими пространствами имен
  • Example#6834 - Получение имен XML-элемента
  • Example#6835 - Получение пространств имен, используемых в документе
  • Example#6836 - Установка префикса пространства имен для использования в запросе XPath
  • Example#6837 - Получить содержимое строки
  • Example#6838 - Xpath
  • Example#6839 - Возвращение текущего элемента
  • Example#6840 - Возвращает вложенные элементы текущего элемента
  • Example#6841 - Проверяет, имеет ли текущий элемент вложенные элементы
  • Example#6842 - Получает имя текущего XML-тега
  • Example#6843 - Перемещение к следующему элементу
  • Example#6844 - Возврат к первому элементу
  • Example#6845 - Проверяет, является ли текущий элемент допустимым
  • Example#6846 - Импорт DOM
  • Example#6847 - Интерпретация XML-документа
  • Example#6848 - Интерпретация XML-строки
  • Example#6849 - Сериализация одно значения с помощью WDDX
  • Example#6850 - Использование инкрементальных пакетов WDDX
  • Example#6851 - Пример использования wddx_serialize_vars
  • Example#6852 - Показать структуру элемента XML
  • Example#6853 - Отображение XML в HTML
  • Example#6854 - Пример использования внешней сущности
  • Example#6855 - xmltest.xml
  • Example#6856 - xmltest2.xml
  • Example#6857 - Пример использования xml_parse_into_struct
  • Example#6858 - moldb.xml - небольшая база данных с информацией о молекулах
  • Example#6859 - parsemoldb.php - разбирает moldb.xml и помещает данные в массив молекул
  • Example#6860 - Разбор по частям больших XML-документов
  • Example#6861 - Пример использования xml_set_object
  • Example#6862 - Проверка правильности XML
  • Example#6863 - Создание простого XML-документа
  • Example#6864 - Работа с пространствами имен XML
  • Example#6865 - Работа с объектно-ориентированным API
  • Example#6866 - collection.xml
  • Example#6867 - collection.xsl
  • Example#6868 - fruits.xml
  • Example#6869 - fruits.xsl
  • Example#6870 - Сбор и вывод ошибок
  • Example#6871 - Создаёт XSLTProcessor
  • Example#6872 - Проверка поддержки EXSLT
  • Example#6873 - Простой вызов функции PHP из таблицы стилей
  • Example#6874 - Изменение владельца перед преобразованием
  • Example#6875 - Пример вывода профилирующей информации
  • Example#6876 - Преобразование в DOMDocument
  • Example#6877 - Преобразование в HTML файл
  • Example#6878 - Трансформация в строку
  • Example#6879 - Leak Detection in Action
  • Example#6880 - Accessor macros for per-module globals
  • Example#6881 - "counter"'s basic interface
  • Example#6882 - "counter"'s extended interface
  • Example#6883 - "counter"'s objective interface
  • Example#6884 - An example config.m4 file
  • Example#6885 - Sample configure output
  • Example#6886 - counter's config.m4 file
  • Example#6887 - An example config.w32 file
  • Example#6888 - counter's config.w32 file
  • Example#6889 - Files in the counter extension, in no particular order
  • Example#6890 - zend_module declaration in the counter extension
  • Example#6891 - zend_module definition in PHP 5.3
  • Example#6892 - Counter extension module definition
  • Example#6893 - The wrong way to store the basic counter interface's value
  • Example#6894 - The counter module's globals
  • Example#6895 - The counter module's global structure declaration
  • Example#6896 - Accessor macros for per-module globals
  • Example#6897 - The right way to store the basic counter interface's value
  • Example#6898 - counter's PHP_MINFO function
  • Example#6899 - Example macros for invoking pdo_SKEL_error
  • Example#6900 - Using pdo_parse_params
  • Example#6901 - Implementing preparer for drivers that don't support native prepared statements
  • Example#6902 - simple stream example that displays the PHP home page
  • Example#6903 - How to accept a stream as a parameter
  • Example#6904 - How to return a stream from a function
  • Example#6905 - The default config.m4.
  • Example#6906 - A simple extension.
  • Example#6907 - A test file for first_module.so.
  • Example#6908 - Internal declaration of zend_function_entry.
  • Example#6909 - Internal declaration of zend_module_entry.
  • Example#6910 - PHP's implementation of variable arguments in fsockopen().
  • Example#6911 - PHP/Zend zval type definition.
  • Example#6912 - Testing for referenced parameter passing.
  • Example#6913 - Creating variables with different scopes.
  • Example#6914 - Creation of a long.
  • Example#6915 - Adding an element to an associative array.
  • Example#6916 - Adding an element to an indexed array.
  • Example#6917 - Source code and screenshot for output in phpinfo.
  • Example#6918 - Printing execution information.
  • Example#6919 - Calling user functions.
  • Example#6920 - Скрытый элемент HTML-формы
  • Example#6921 - Данные, редактируемые пользователем
  • Example#6922 - В URL
  • Example#6923 - Генерирование JavaScript из PHP
  • Example#6924 - Эмулирование Register Globals
  • Example#6925 - Пример кода на PHP/FI
  • Example#6926 - В ядре PHP
  • Example#6927 - Объектно-ориентированный код в ядре PHP
  • Example#6928 - В расширении bzip2
  • Example#6929 - В расширении datetime
  • Example#6930 - В расширении dBase
  • Example#6931 - В расширении mcrypt
  • Example#6932 - В расширении oci8
  • Example#6933 - В расширении SPL
  • Example#6934 - В расширении Semaphore (sysvmsg)
  • Example#6935 - Пример Zip для версий 5.2.1+
  • Example#6936 - strrpos и strripos теперь используют в качестве искомого параметра (needle) всю строку
  • Example#6937 - Объект без свойств больше не считается "пустым"
  • Example#6938 - В некоторых случаях классы должны быть объявлены перед использованием
  • Example#6939 - Изменения конфигурационных файлах Apache при переходе на PHP 5
  • Example#6940 - Изменения в конфигурационных файлах Apache при переходе на PHP 5, CGI-режим
  • Example#6941 - Активация полного логирования и сообщения об ошибках для dev. домена
  • Example#6942 - Добавление скрипта безопасности для защищенных зон
  • Example#6943 - include_path в Unix
  • Example#6944 - include_path в Windows
  • Example#6945 - Настройка include_path с помощью переменной окружения ${USER} в Unix
  • Example#6946 - string.rot13
  • Example#6947 - string.toupper
  • Example#6948 - string.tolower
  • Example#6949 - string.strip_tags
  • Example#6950 - convert.base64-encode и convert.base64-decode
  • Example#6951 - convert.quoted-printable-encode & convert.quoted-printable-decode
  • Example#6952 - convert.iconv.*
  • Example#6953 - zlib.deflate и zlib.inflate
  • Example#6954 - Упрощенное использование zlib.deflate
  • Example#6955 - bzip2.compress и bzip2.decompress
  • Example#6956 - Шифрование/расшифровка используя Blowfish
  • Example#6957 - Шифрование файла с помощью AES-128 CBC с SHA256 HMAC в PHP 5.5+


Список изменений

Следующие изменения были произведены с функциями встроенных расширений.

Version | Function | Description
7.4.0 | array_merge | Функция теперь может быть вызвана без каких-либо параметров. Ранее требовался хотя бы один параметр.
array_merge_recursive | Функция теперь может быть вызвана без каких-либо параметров. Ранее требовался хотя бы один параметр.
base_convert | Передача некорректных символов будет выдавать уведомление об устаревании. Результат будет вычислен так, как если бы некорректные символы не существовали.
bindec | Передача некорректных символов будет выдавать уведомление об устаревании. Результат будет вычислен так, как если бы некорректные символы не существовали.
fgetcsv | Теперь параметр escape может принимать пустую строку для отключения проприетарного механизма экранирования.
fputcsv | Теперь параметр escape может принимать пустую строку для отключения проприетарного механизма экранирования.
get_magic_quotes_gpc | Функция объявлена устаревшей.
get_magic_quotes_runtime | Функция объявлена устаревшей.
hexdec | Передача некорректных символов будет выдавать уведомление об устаревании. Результат будет вычислен так, как если бы некорректные символы не существовали.
idn_to_ascii | Теперь значение по умолчанию variant изменено на INTL_IDNA_VARIANT_UTS46 вместо устаревшей константы INTL_IDNA_VARIANT_2003.
idn_to_utf8 | Теперь значение по умолчанию variant изменено на INTL_IDNA_VARIANT_UTS46 вместо устаревшей константы INTL_IDNA_VARIANT_2003.
imagecropauto | The behavior of imagecropauto() in the bundled libgd has been synced with that of system libgd: IMG_CROP_DEFAULT no longer falls back to IMG_CROP_SIDES and threshold-cropping now uses the same algorithm as system libgd.
imagecropauto | The default value of mode has been changed to IMG_CROP_AUTO. Formerly, the default value has been -1 which corresponds to IMG_CROP_DEFAULT, but passing -1 is now deprecated.
imagefilter | Добавлена поддежка рассеивания (IMG_FILTER_SCATTER).
implode | Передача glue после pieces (т.е. использование недокументированного порядка параметров) устарела.
ldap_control_paged_result | Функция объявлена устаревшей.
ldap_control_paged_result_response | Функция объявлена устаревшей.
octdec | Передача некорректных символов будет выдавать уведомление об устаревании. Результат будет вычислен так, как если бы некорректные символы не существовали.
proc_open | Добавлена опция create_process_group в параметр other_options.
str_getcsv | Теперь пустой параметр escape будет интерпретироваться как требование отключения проприетарного механизма экранирования. Ранее пустая строка обозначала использование символа экранирования по умолчанию.
SplFileObject::fgetcsv | Теперь параметр escape может принимать пустую строку для отключения проприетарного механизма экранирования.
SplFileObject::fputcsv | Теперь параметр escape может принимать пустую строку для отключения проприетарного механизма экранирования.
SplFileObject::getCsvControl | В качестве символа экранирования можно использовать пустую строку.
SplFileObject::setCsvControl | Теперь параметр escape может принимать пустую строку для отключения проприетарного механизма экранирования.
SQLite3Stmt::bindParam | Параметр sql_param теперь поддерживает нотацию @param.
SQLite3Stmt::bindValue | Параметр sql_param теперь поддерживает нотацию @param.
7.3.15, 7.4.3 | curl_setopt | Добавлено CURLOPT_HTTP09_ALLOWED.
7.3.14, 7.4.2 | dba_open | Драйвер lmdb теперь поддерживает дополнительный параметр $mapsize.
7.3.0 | DateTime::createFromFormat | Для format добавлен спецификатор v.
apache_request_headers | Эта функция стала доступна в SAPI FPM.
array_push | Теперь эта функция может быть вызвана с одним параметром. Ранее требовалось минимум два параметра.
array_unshift | Теперь эта функция может быть вызвана с одним параметром. Ранее требовалось минимум два параметра.
bcmul | Теперь bcmul возвращает числа с заданной точностью. Раньше завершающие нули в дробной части числа отбрасывались.
bcpow | Теперь bcpow возвращает числа с заданной точностью. Раньше завершающие нули в дробной части числа отбрасывались.
bcscale | bcscale теперь может быть использована для получения текущего масштаба; при установке нового значения, возвратит старое значение масштаба. Раньше scale был обязательным, и bcscale всегда возвращал TRUE.
compact | compact теперь выдает ошибку уровня E_NOTICE, если заданная строка связана с удаленной переменной. Ранее такие строки пропускались без всякого уведомления.
curl_getinfo | Добавлены CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, CURLINFO_CONTENT_LENGTH_UPLOAD_T, CURLINFO_HTTP_VERSION, CURLINFO_PROTOCOL, CURLINFO_PROXY_SSL_VERIFYRESULT, CURLINFO_SCHEME, CURLINFO_SIZE_DOWNLOAD_T, CURLINFO_SIZE_UPLOAD_T, CURLINFO_SPEED_DOWNLOAD_T, CURLINFO_SPEED_UPLOAD_T, CURLINFO_APPCONNECT_TIME_T, CURLINFO_CONNECT_TIME_T, CURLINFO_FILETIME_T, CURLINFO_NAMELOOKUP_TIME_T, CURLINFO_PRETRANSFER_TIME_T, CURLINFO_REDIRECT_TIME_T, CURLINFO_STARTTRANSFER_TIME_T, CURLINFO_TOTAL_TIME_T.
curl_setopt | Введенны CURLOPT_ABSTRACT_UNIX_SOCKET, CURLOPT_KEEP_SENDING_ON_ERROR, CURLOPT_PRE_PROXY, CURLOPT_PROXY_CAINFO, CURLOPT_PROXY_CAPATH, CURLOPT_PROXY_CRLFILE, CURLOPT_PROXY_KEYPASSWD, CURLOPT_PROXY_PINNEDPUBLICKEY, CURLOPT_PROXY_SSLCERT, CURLOPT_PROXY_SSLCERTTYPE, CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOPT_PROXY_SSLKEY, CURLOPT_PROXY_SSLKEYTYPE, CURLOPT_PROXY_SSL_OPTIONS, CURLOPT_PROXY_SSL_VERIFYHOST, CURLOPT_PROXY_SSL_VERIFYPEER, CURLOPT_PROXY_SSLVERSION, CURLOPT_PROXY_TLSAUTH_PASSWORD, CURLOPT_PROXY_TLSAUTH_TYPE, CURLOPT_PROXY_TLSAUTH_USERNAME, CURLOPT_SOCKS5_AUTH, CURLOPT_SUPPRESS_CONNECT_HEADERS, CURLOPT_DISALLOW_USERNAME_IN_URL, CURLOPT_DNS_SHUFFLE_ADDRESSES, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, CURLOPT_HAPROXYPROTOCOL, CURLOPT_PROXY_TLS13_CIPHERS, CURLOPT_SSH_COMPRESSION, CURLOPT_TIMEVALUE_LARGE и CURLOPT_TLS13_CIPHERS.
define | Параметр case_insensitive объявлен устаревшим и будет удален в версии 8.0.0.
ftp_fget | Теперь параметр mode опционален. Раньше он был обязательным.
ftp_fput | Теперь параметр mode опционален. Раньше он был обязательным.
ftp_get | Теперь параметр mode опционален. Раньше он был обязательным.
ftp_nb_fget | Теперь параметр mode опционален. Раньше он был обязательным.
ftp_nb_fput | Теперь параметр mode опционален. Раньше он был обязательным.
ftp_nb_get | Теперь параметр mode опционален. Раньше он был обязательным.
ftp_nb_put | Теперь параметр mode опционален. Раньше он был обязательным.
ftp_put | Теперь параметр mode опционален. Раньше он был обязательным.
getallheaders | Эта функция стала доступна в SAPI FPM.
is_countable | Добавлена функция is_countable.
json_decode | Добавлена константа JSON_THROW_ON_ERROR для параметра options.
json_encode | Добавлена константа JSON_THROW_ON_ERROR для параметра options.
password_hash | Добавлена поддержка алгоритма хеширования паролей Argon2id с помощью PASSWORD_ARGON2ID.
preg_quote | Символ # теперь экранируется
session_get_cookie_params | Добавлен элемент "samesite" в возвращаемый массив.
session_set_cookie_params | Добавлена альтернативная подпись, поддерживающая массив опций options. Эта подпись поддерживает также настройку cookie-атрибута SameSite.
setcookie | Добавлена альтернативная подпись, поддерживающая массив опций options. Эта подпись поддерживает также настройку cookie-атрибута SameSite.
setrawcookie | Добавлена альтернативная подпись, поддерживающая массив опций options. Эта подпись поддерживает также настройку cookie-атрибута SameSite.
unlink | В Windows теперь можно удалить файлы функцией unlink с использованием дескрипторов, хотя раньше это не удавалось. Тем не менее, все еще невозможно повторно создать удаленный файл, пока все дескрипторы к нему не будут закрыты.
xml_set_external_entity_ref_handler | Возвращаемое значение handler больше не игнорируется, если модуль был собран с библиотекой libxml. Раньше возвращаемое значение игнорировалось, а разбор никогда не останавливался.
7.3 | ldap_add | Добавлена поддержка параметра serverctrls
ldap_compare | Добавлена поддержка параметра serverctrls
ldap_delete | Добавлена поддержка параметра serverctrls
ldap_exop | Добавлена поддержка serverctrls
ldap_exop_passwd | Добавлена поддержка параметра serverctrls
ldap_list | Добавлена поддержка параметра serverctrls
ldap_mod_add | Добавлена поддержка параметра serverctrls
ldap_mod_del | Добавлена поддержка параметра serverctrls
ldap_mod_replace | Добавлена поддержка параметра serverctrls
ldap_modify_batch | Добавлена поддержка параметра serverctrls
ldap_parse_result | Добавлена поддержка параметра serverctrls
ldap_read | Добавлена поддержка параметра serverctrls
ldap_rename | Добавлена поддержка параметра serverctrls
ldap_search | Добавлена поддержка параметра serverctrls
7.2.19, 7.3.6 | SplFileObject::__toString | Изменен псевдоним с SplFileObject::current на SplFileObject::fgets.
7.2.18, 7.3.5 | substr_compare | offset теперь может быть равным main_str.
7.2.0 | array_unique | Если sort_flags равен SORT_STRING, ранее массив array копировался, а не уникальные элементы удалялись (сохраняя значения цифровых индексов), но теперь создается новый массив путем добавления уникальных элементов. Это может привести к различным числовым индексам.
assert | Использование строк в параметре assertion объявлено устаревшим и будет приводить к ошибкам уровня E_DEPRECATED в случае, когда и assert.active и zend.assertions установлены в значение 1.
bcmod | dividend и divisor больше не обрезаются до целого, так что теперь поведение bcmod соответствует fmod, а не оператору %.
bcmod | Добавлен параметр scale.
count | count теперь будет выдавать предупреждение о некорректных исчисляемых типов, переданных в параметр array_or_countable.
date_parse | Элемент возращаемого массива с ключем zone теперь содержит секунды, а не минуты. Кроме того, знак инвертирован. Т.е. раньше был -120, а теперь 7200.
date_parse_from_format | Элемент zone возвращаемого массива отображает теперь секунды вместо минут, а его знак инвертируется. Например, -120 теперь будет 7200.
exif_read_data | Добавлена поддержка следующих форматов EXIF: Samsung DJI Panasonic Sony Pentax Minolta Sigma/Foveon AGFA Kyocera Ricoh Epson
exif_read_data | Параметр filename переименован в stream и может принимать как локальный путь к файлу, так и потоковый ресурс.
exif_thumbnail | Параметр filename переименован в stream и может принимать как локальный путь к файлу, так и потоковый ресурс.
get_class | NULL больше не является значением по умолчанию для object и не является допустимым значением этого параметра.
gettype | Для закрытых ресурсов теперь возвращается 'resource (closed)'. Ранее для закрытых ресурсов возвращалось 'unknown type'.
hash_copy | Принимает и возвращает HashContext, а не ресурс.
hash_final | Принимает HashContext, а не ресурс.
hash_hmac | Запрещено использование некриптографических хеш-функций (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat).
hash_hmac_file | Запрещено использование некриптографических хеш-функций (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat).
hash_init | Запрещено использование некриптографических хеш-функций (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) с константой HASH_HMAC.
hash_init | Возвращает HashContext, а не ресурс.
hash_pbkdf2 | Запрещено использование некриптографических функций (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat).
hash_update | Принимает HashContext, а не ресурс.
hash_update_file | Принимает HashContext, а не ресурс.
hash_update_stream | Принимает HashContext, а не ресурс.
idn_to_ascii | INTL_IDNA_VARIANT_2003 объявлена устаревшей, вместо нее используйте INTL_IDNA_VARIANT_UTS46.
idn_to_utf8 | INTL_IDNA_VARIANT_2003 объявлена устаревшей, вместо нее используйте INTL_IDNA_VARIANT_UTS46.
imageantialias | Функция imageantialias доступна без ограничений. Ранее она была доступна, только если PHP был собран с использованием библиотеки GD, идущей с ним в комплекте.
imagegd | Теперь imagegd позволяет сохранять изображения "truecolor". Раньше они неявно преобразовывались к палитре.
imagelayereffect | Добавлена IMG_EFFECT_MULTIPLY (требует системную библиотеку libgd >= 2.1.1 или libgd идущую в комплекте с PHP).
imagetypes | Добавлена константа IMG_BMP.
is_object | Теперь is_object возвращает TRUE для десериализованных объектов, у которых отсутствует объявление класса (класс __PHP_Incomplete_Class). Раньше возвращалось FALSE.
json_decode | Добавлены константы JSON_INVALID_UTF8_IGNORE и JSON_INVALID_UTF8_SUBSTITUTE для параметра options.
json_encode | Добавлены константы JSON_INVALID_UTF8_IGNORE и JSON_INVALID_UTF8_SUBSTITUTE для параметра options.
mail | Параметр additional_headers может принимать значения типа массив.
mb_check_encoding | Функция теперь также принимает массив (array) в var. Ранее поддерживались только строки (string).
mb_convert_encoding | Функция теперь также принимает массив (array) в val. Ранее поддерживались только строки (string).
mb_send_mail | Теперь в параметр additional_headers можно передавать массив.
mt_rand | Для mt_rand произведено исправление бага смещения по модулю. Это означает, что последовательности сгенерированные с конкретным начальным значением могут отличаться от сгенерированных в PHP 7.1 для 64-битных машин.
number_format | number_format была изменена, чтобы не возвращать -0, ранее -0 могло быть возвращено в случаях, когда number был -0.01.
openssl_pkcs7_verify | Добавлен параметр p7bfilename.
pack | Типы float и double поддерживают как обратный, так и прямой порядок передачи байтов.
parse_str | Использование parse_str без второго параметра будет вызывать ошибку уровня E_DEPRECATED.
password_hash | Добавлена поддержка хеширующего алгоритма Argon2i с помощью PASSWORD_ARGON2I.
preg_match | Теперь константа PREG_UNMATCHED_AS_NULL поддерживается для параметра $flags.
preg_match_all | Теперь константа PREG_UNMATCHED_AS_NULL поддерживается для параметра $flags.
proc_nice | Эта функция стала доступна в Windows.
rand | Для rand произведено исправление бага смещения по модулю. Это означает, что последовательности сгенерированные с конкретным начальным значением могут отличаться от сгенерированных в PHP 7.1 для 64-битных машин.
read_exif_data | Этот псевдоним был объявлен устаревшим.
session_abort | Теперь возвращаемый тип этой функции bool. Раньше был тип void.
session_module_name | В данный момент запрещено устанавливать имя модуля на значение "user". Ранее это игнорировалось.
session_name | session_name проверяет статус сессии, ранее она проверяла только статус cookie. Поэтому старая версия session_name позволяла вызывать session_name после session_start, что могло привести к сбою PHP и неправильному поведению.
session_reset | Теперь возвращаемый тип этой функции bool. Раньше был тип void.
session_set_cookie_params | Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Ранее возвращала тип void.
session_unset | Теперь возвращаемый тип этой функции bool. Раньше был тип void.
session_write_close | Теперь возвращаемый тип этой функции bool. Раньше был тип void.
set_error_handler | Параметр errcontext объявлен устаревшим. Теперь при его использовании будет вызываться ошибка уровня E_DEPRECATED.
unpack | Типы float и double поддерживают как обратный, так и прямой порядок передачи байтов.
utf8_decode | Эта функция была перенесена в ядро PHP, таким образом отменив требование расширения XML для использования этой функции.
utf8_encode | Эта функция была перенесена в ядро PHP, таким образом отменив требование расширения XML для использования этой функции.
PDOStatement::debugDumpParams | PDOStatement::debugDumpParams теперь возвращает SQL, отправленный в базу данных, в том числе полный необработанный запрос (включая замененные параметры с их связанными значениями). Обратите внимание, что это будет работать только при включенной эмуляции подготавливаемых запросов.
SQLite3::openBlob | Добавлен параметр flags, позволяющий записать BLOB; ранее поддерживалось только чтение.
7.1.24, 7.2.12, 7.3.0 | xml_parser_get_option | Теперь параметр options поддерживает XML_OPTION_SKIP_TAGSTART и XML_OPTION_SKIP_WHITE.
7.1.5 | IntlDateFormatter::format | Support for providing general DateTimeInterface objects to the value parameter was added. Formerly, only proper DateTime objects were supported.
7.1.4 | PDO::sqliteCreateFunction | Добавлен параметр flags.
SQLite3::createFunction | Добавлен параметр flags.
7.1.0 | DateInterval::format | Добавлены форматирующие символы F и f.
DateTime::setTime | Добавлен параметр microseconds.
array_rand | Внутренний алгоритм получения случайных чисел изменен с функции rand библиотеки libc на генератор на базе Вихря Мерсена.
curl_multi_setopt | Добавлена константа CURLMOPT_PUSHFUNCTION.
exif_imagetype | Добавлена поддержка WebP.
file_get_contents | Добавлена поддержка отрицательных значений offset.
get_headers | Добавлен параметр context.
getenv | Параметр varname теперь может быть опущен для получения ассоциативного массива (array) всех переменных окружения.
getimagesize | Добавлена поддержка WebP.
getopt | Добавлен параметр optind.
grapheme_extract | Support for negative starts has been added.
grapheme_stripos | Support for negative offsets has been added.
grapheme_strpos | Support for negative offsets has been added.
hash_algos | Добавлена поддержка для sha512/224, sha512/256, sha3-224, sha3-256, sha3-384 и sha3-512.
iconv_strpos | Поддержка отрицательных значений offset.
json_decode | Пустой ключ JSON ("") будет преобразован в пустое свойство объекта, а не в свойство со значением _empty_.
json_encode | При кодировании чисел с плавающей запятой используется serialize_precision вместо precision.
json_encode | Добавлена константа JSON_UNESCAPED_LINE_TERMINATORS для параметра options.
list | Теперь возможно задавать ключи в list. Это позволяет разыменовывать ассоциативные массивы и массивы с индексами не по порядку.
long2ip | Тип параметра proper_address изменен с типа string на тип integer.
mb_ereg | Теперь mb_ereg устанавливает regs равным пустому массиву (array), если ничего не найдено. Ранее в этом случае regs оставался неизменным.
mb_ereg_replace | Модификатор e объявлен устаревшим.
mb_ereg_search_setpos | Добавлена поддержка отрицательных значений position.
mb_eregi | Функцию mb_eregi устанавливает значение regs равным пустому массиву, если ничего не найдено. Ранее, в подобном случае, regs оставался неизменным.
mb_eregi_replace | Модификатор e объявлен устаревшим.
mb_strimwidth | Добавлена поддержка отрицательных start и width.
mb_stripos | Добавлена поддержка отрицательных значений offset.
mb_strpos | Добавлена поддержка отрицательных значений offset.
mt_rand | rand теперь является псевдонимом для mt_rand.
mt_rand | Функция mt_rand была обновлена и теперь использует корректную версию генератора случайных чисел на основе Вихря Мерсенна. Для использования старого поведения, используйте mt_srand со вторым параметром, установленным в MT_RAND_PHP.
mt_srand | srand теперь является псевдонимом для mt_srand.
mt_srand | mt_rand была изменена для использования фиксированной, корректной версии алгоритма Вихря Мерсенна. Для отката к старому поведению, используйте mt_srand со вторым параметром MT_RAND_PHP.
openssl_csr_new | Параметр configargs теперь поддерживает curve_name.
openssl_decrypt | Добавлены параметры tag и aad.
openssl_encrypt | Добавлены параметры tag, aad и tag_length.
openssl_pkey_new | Добавлен ключ curve_name в configarg для обеспечения возможности создания EC ключей.
output_add_rewrite_var | До PHP 7.1.0 переменные перезаписи, установленные функцией output_add_rewrite_var, используют тот же буфер модуля сессии "trans sid". Начиная с PHP 7.1.0, используется отдельный буфер, url_rewriter.tags используется только для функций вывода, добавлен url_rewriter.hosts.
output_reset_rewrite_vars | До PHP 7.1.0, переменные перезаписи установленные функцией output_add_rewrite_var используют тот же буфер модуля сессии "trans sid". С PHP 7.1.0, используется отдельный буфер и output_reset_rewrite_vars только удаляет переменные перезаписи определенные output_add_rewrite_var.
pcntl_signal | Начиная с PHP 7.1.0 обработчику callback-функции передается второй аргумент, содержащий структуру siginfo определенного сигнала. Эти данные будут переданы только в том случае, если операционная система поддерживает структуры siginfo_t. Если в операционной системе не реализована поддержка структуры siginfo_t, то в качестве второго аргумента будет передан NULL.
pcntl_signal_get_handler | Была добавлена функция pcntl_signal_get_handler.
pg_fetch_all | Добавлен параметр result_type.
pg_last_notice | Добавлен параметр option.
pg_select | Добавлен параметр result_type.
rand | rand стала синонимом функции mt_rand.
session_start | session_start теперь возвращает FALSE и больше не инициализирует $_SESSION, когда она не смогла запустить сессию.
shuffle | Внутренний алгоритм получения случайных чисел изменен с функции rand библиотеки libc на генератор на базе Вихря Мерсена.
srand | srand стала синонимом функции mt_srand.
str_shuffle | Внутренний алгоритм получения случайных чисел изменен с функции rand библиотеки libc на генератор на базе Вихря Мерсена.
stripos | Добавлена поддержка отрицательных значений offset.
strpos | Добавлена поддержка отрицательных значений offset.
substr_count | Добавлена поддержка отрицательных значений offset и length. length теперь также может быть 0.
unpack | Добавлен необязательный параметр offset.
unserialize | Теперь элемент allowed_classes параметра options строго типизирован, то есть если передано что-либо, кроме array и boolean, unserialize вернет FALSE и вызовет ошибку E_WARNING.
7.1 | DateTime::__construct | Теперь микросекунды будут заполняться корректным значением, а не '00000'.
7.0.16, 7.1.2 | dns_get_record | Добавлена поддержка записей типа CAA.
fopen | Добавлена опция 'e'.
7.0.15, 7.1.1 | get_defined_functions | Добавлен параметр exclude_disabled.
7.0.15,7.1.1 | pack | Добавлены коды "e", "E", "g" и "G" для поддержки принудительного указания порядка байт для float и double.
7.0.11 | iconv_substr | Если str имеет длину равную offset, будет возвращена пустая строка. Ранее в подобных случаех возвращалось FALSE.
7.0.10 | SQLite3::__construct | Параметр filename можно задавать пустой строкой для создания на диске приватной, временной базы данных.
7.0.7 | curl_multi_setopt | Добавлены константы CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH и CURLMOPT_MAX_TOTAL_CONNECTIONS.
curl_setopt | Добавлены CURL_HTTP_VERSION_2, CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, CURL_HTTP_VERSION_2TLS, CURL_REDIR_POST_301, CURL_REDIR_POST_302, CURL_REDIR_POST_303, CURL_REDIR_POST_ALL, CURL_VERSION_KERBEROS5, CURL_VERSION_PSL, CURL_VERSION_UNIX_SOCKETS, CURLAUTH_NEGOTIATE, CURLAUTH_NTLM_WB, CURLFTP_CREATE_DIR, CURLFTP_CREATE_DIR_NONE, CURLFTP_CREATE_DIR_RETRY, CURLHEADER_SEPARATE, CURLHEADER_UNIFIED, CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH, CURLMOPT_MAX_TOTAL_CONNECTIONS, CURLOPT_CONNECT_TO, CURLOPT_DEFAULT_PROTOCOL, CURLOPT_DNS_INTERFACE, CURLOPT_DNS_LOCAL_IP4, CURLOPT_DNS_LOCAL_IP6, CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOPT_HEADEROPT, CURLOPT_LOGIN_OPTIONS, CURLOPT_PATH_AS_IS, CURLOPT_PINNEDPUBLICKEY, CURLOPT_PIPEWAIT, CURLOPT_PROXY_SERVICE_NAME, CURLOPT_PROXYHEADER, CURLOPT_SASL_IR, CURLOPT_SERVICE_NAME, CURLOPT_SSL_ENABLE_ALPN, CURLOPT_SSL_ENABLE_NPN, CURLOPT_SSL_FALSESTART, CURLOPT_SSL_VERIFYSTATUS, CURLOPT_STREAM_WEIGHT, CURLOPT_TCP_FASTOPEN, CURLOPT_TFTP_NO_OPTIONS, CURLOPT_UNIX_SOCKET_PATH, CURLOPT_XOAUTH2_BEARER, CURLPROTO_SMB, CURLPROTO_SMBS, CURLPROXY_HTTP_1_0, CURLSSH_AUTH_AGENT и CURLSSLOPT_NO_REVOKE.
7.0.0 | array_column | Добавлена возможность использовать массив объектов в input.
assert | assert теперь языковая конструкция, а не функция. assertion теперь может быть выражением. Второй параметр теперь интерпретируется как исключение exception (если передан объект Throwable), или как описание description, поддерживаемое с версии PHP 5.4.8 и далее.
curl_setopt | Поддержка отключения опции CURLOPT_SAFE_UPLOAD была удалена. Все загрузки файлов с помощью curl должны использовать CURLFile.
current | Теперь параметр array всегда передается по значению. Раньше он по возможности передавался по ссылке.
define | Допустимы значения типа array.
dirname | Добавлен необязательный параметр levels.
dl | dl запрещено в PHP-FPM.
getrusage | Добавлен поддержка этой функции в Windows.
gmmktime | Параметр is_dst был удален.
imagepsbbox | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.
imagepsencodefont | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.
imagepsextendfont | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.
imagepsfreefont | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.
imagepsloadfont | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.
imagepsslantfont | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.
imagepstext | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.
is_numeric | Строки, содержащие шестнадцатеричную (0xf4c3b00c) запись, больше не считаются числовыми строками, то есть is_numeric вернет FALSE.
json_decode | Пустая строка PHP или значение, которое после преобразования к строке становится пустой строкой (NULL, FALSE) приводит к ошибке синтаксиса JSON.
json_decode | Отклонен несовместимый с RFC 7159 формат чисел - верхний уровень (07, 0xff, .1, -.1) и все уровни ([1.], [1.e1])
key | Теперь параметр array всегда передается по значению. Раньше он по возможности передавался по ссылке.
list | Больше нельзя разбирать строки с помощью этой функции.
list | Изменен порядок операций присвоения.
list | Выражение list больше не может быть полностью пустым.
mktime | Параметр is_dst был удален.
ob_start | В случае, если ob_start используется внутри callback-функции буфера вывода, эта функция больше не будет приводить к ошибке E_ERROR, а вместо этого будет вызывать E_RECOVERABLE_ERROR, позволяя сторонним обработчикам ошибок поймать ее.
openssl_open | Добавлен параметр iv.
openssl_seal | Добавлен параметр iv.
parse_ini_file | Символ решетки (#) больше не используется для комментариев.
preg_replace | Удалена поддержка модификатора /e. Вместо него используйте preg_replace_callback.
proc_open | Добавлена опция blocking_pipes в параметр other_options.
session_regenerate_id | session_regenerate_id перед закрытием сохраняет данные старой сессии.
session_set_save_handler | Добавлены необязательные параметры validate_sid и update_timestamp.
session_start | Добавлен параметр options.
set_exception_handler | Тип параметра передаваемого в exception_handler изменен с Exception на Throwable
setlocale | Удалена поддержка для параметра category, передаваемого как строка. С текущей версии можно пользоваться только константами LC_*.
shmop_close | Тип shmid был изменен с int на resource.
shmop_delete | Тип shmid был изменен с int на resource.
shmop_open | Тип shmid был изменен с int на resource.
shmop_read | Тип shmid был изменен с int на resource.
shmop_size | Тип shmid был изменен с int на resource.
shmop_write | Тип shmid был изменен с int на resource.
substr | Если длина строки string равна количеству символов, указанному в start, то возвращается пустая строка. До этой версии в этом случае возвращалась FALSE.
token_get_all | Добавлен необязательный параметр flags, который может принимать значение TOKEN_PARSE.
unserialize | Добавлен параметр options.
IntlDateFormatter::setTimeZoneId | This function has been removed.
5.6.25, 7.0.10 | imagetypes | Добавлена константа IMG_WEBP.
SplFileObject::getCsvControl | Добавлен символ экранирования в результирующий массив.
5.6.16 | mysqli::real_connect | Добавлен флаг MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT для MySQL Native Driver
5.6.12 | gd_info | Добавлена поддержка WebP.
5.6.6 | json_encode | Добавлена константа JSON_PRESERVE_ZERO_FRACTION для параметра options.
5.6.5 | crypt | Теперь, если в параметр salt передано неправильное значение "*0", то будет возвращаться "*1" согласно другим криптографическим реализациям. До этой версии PHP 5.6 возвращал хеш DES.
5.6.3 | pack | Добавлены коды "q", "Q", "J" и "P" для поддержки 64-bit чисел.
5.6.1 | parse_ini_file | Добавлен новый режим INI_SCANNER_TYPED.
sem_acquire | Добавлен параметр $nowait.
5.6.0 | array_fill | num теперь может быть равен нулю. До этого num должен был быть больше нуля.
array_filter | Добавлен необязательный параметр flag и константы ARRAY_FILTER_USE_KEY и ARRAY_FILTER_USE_BOTH
crypt | Если параметр salt пропущен, то вызывается предупреждение E_NOTICE.
curl_setopt | Удалена опция CURLOPT_CLOSEPOLICY и связанные с ней значения.
curl_setopt | Опция CURLOPT_SAFE_UPLOAD теперь имеет значение по умолчанию равное TRUE.
hash_algos | Добавлена поддержка для gost-crypto. Реализуется хеш-функция GOST, использующая таблицы CryptoPro S-box, как указано в RFC 4357, секция 11.2.
html_entity_decode | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
htmlentities | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
htmlspecialchars | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
json_decode | Некорректные варианты написания true, false и null(не в нижнем регистре) более не являются допустимыми значениями и вызовут предупреждение.
mb_regex_encoding | Кодировка по умолчанию изменена на UTF-8. Ранее по умолчанию была EUC-JP.
mcrypt_create_iv | Теперь MCRYPT_DEV_URANDOM является значением по умолчанию для source.
mcrypt_decrypt | Параметры key и iv некорректных размеров более не принимаются. Теперь функция mcrypt_decrypt будет выводить предупреждение и возвращать FALSE, если входные данные некорректны. Ранее в подобной ситуации ключ и инициализирующий вектор дополнялись до нужной длины символами '\0'.
mcrypt_encrypt | Некорректные размеры ключа key и инициализирующего вектора iv более не принимаются. Теперь в случае некорректных входных параметров Функция mcrypt_encrypt будет возвращать FALSE и вызывать предупреждение. Ранее в подобном случае ключ и инициализирующий вектор дополнялись до необходимого размера с помощью символов '\0'.
pg_connect | Добавлена поддержка константы PGSQL_CONNECT_ASYNC для параметра connect_type.
pg_convert | Больше не является экспериментальной. Добавлена поддержка значений булевого типа/NULL. Неизвестные и неподдерживаемые типы данных экранируются без валидации. pg_convert можно использовать с любыми типами данных.
pg_delete | Больше не является экспериментальной. Добавлена константа PGSQL_DML_ESCAPE, TRUE/FALSE и NULL типы данных теперь поддерживаются.
pg_insert | Если не передана константа PGSQL_DML_STRING, функция, в случае успешного завершения, возвращает ресурс соединения, а не TRUE.
pg_insert | Больше не является экспериментальной. Добавлена константа PGSQL_DML_ESCAPE, TRUE/FALSE и NULL типы данных теперь поддерживаются.
pg_lo_seek | Добавлена поддержка больших 64-битных объектов PostgreSQL 9.3. И клиент, и сервер должны поддерживать PostgreSQL 9.3, а PHP должен быть собран 64-битным и использовать 64-битные большие объекты.
pg_lo_tell | Добавлена поддержка больших 64-битных объектов PostgreSQL 9.3. И клиент, и сервер должны поддерживать PostgreSQL 9.3, а PHP должен быть собран 64-битным и использовать 64-битные большие объекты.
pg_lo_truncate | Добавлена функция обрезания. Она поддерживает 64-битный большой объект PostgreSQL из версии 9.3. Как клиент, так и сервер должны поддерживать PostgreSQL версии 9.3, а PHP должен быть собран на 64-битной машине для использования большого 64-битного объекта.
pg_meta_data | Больше не является экспериментальной. Добавлено "is enum" атрибутом по умолчанию. Добавлен флаг extended.
pg_select | Больше не является экспериментальной. Добавлена константа PGSQL_DML_ESCAPE, TRUE/FALSE и NULL типы данных теперь поддерживаются.
pg_update | Больше не является экспериментальной. Добавлена константа PGSQL_DML_ESCAPE, TRUE/FALSE и NULL типы данных теперь поддерживаются.
stream_socket_enable_crypto | Параметр crypto_type теперь необязателен.
stream_socket_enable_crypto | Добавлены константы STREAM_CRYPTO_METHOD_ANY_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT, STREAM_CRYPTO_METHOD_ANY_SERVER, STREAM_CRYPTO_METHOD_TLSv1_0_SERVER, STREAM_CRYPTO_METHOD_TLSv1_1_SERVER, STREAM_CRYPTO_METHOD_TLSv1_2_SERVER.
unserialize | Изменение сериализованных данных с заменой C: на O:, для принудительного создания объекта без вызова конструктора, теперь будет проходить успешно.
ReflectionClass::newInstanceWithoutConstructor | Теперь можно создавать экземпляры всех встроенных классов, кроме объявленных как final.
XMLReader::getAttributeNo | XMLReader::getAttributeNo теперь возвращает NULL, если атрибут не существует.
XMLReader::getAttributeNs | XMLReader::getAttributeNS теперь возвращает NULL, если атрибут не существует.
5.5.38, 5.6.24, 7.0.9 | getenv | Был добавлен параметр local_only.
5.5.22, 5.6.6 | flock | Добавлена поддержка параметра wouldblock в Windows.
SplFileObject::flock | Добавлена поддержка параметра wouldblock в Windows.
5.5.21, 5.6.5 | SplFileObject::fputcsv | Добавлен параметр escape.
5.5.21 | crypt | Теперь, если в параметр salt передано неправильное значение "*0", то теперь возвращается "*1" согласно другим криптографическим реализациям. До этой версии PHP 5.5 (и другие ветки) возвращал хеш DES.
5.5.19/5.6.3 | imagescale | Расчет высоты, если параметр new_height отрицателен или опущен, был исправлен; до этих версий соотношение сторон работало неправильно.
5.5.19, 5.6.3 | DateTimeZone::getOffset | Тип параметра datetime был изменен на интерфейс DateTimeInterface. Ранее был класс DateTime.
5.5.11 | substr_compare | length теперь может быть равной 0.
5.5.10 | DateTimeZone::__construct | Параметр timezone принимает значения смещения.
5.5.8 | DatePeriod::__construct | Тип параметра end изменен на DateTimeInterface. Ранее использовался DateTime.
5.5.7 | apache_request_headers | Эта функция стала доступна в CLI-сервере.
apache_response_headers | Эта функция стала доступна в CLI-сервере.
getallheaders | Эта функция стала доступна в CLI-сервере.
5.5.4 | fputcsv | Добавлен параметр escape_char
5.5.3/5.4.19 | pg_delete | Исправлены прямые SQL-инъекции в table_name и непрямые SQL-инъекции в идентификаторах.
pg_insert | Исправлены прямые SQL-инъекции в table_name и непрямые SQL-инъекции в идентификаторах.
pg_select | Исправлены прямые SQL-инъекции в table_name и непрямые SQL-инъекции в идентификаторах.
pg_update | Исправлены прямые SQL-инъекции в table_name и непрямые SQL-инъекции в идентификаторах.
5.5.2 | DOMDocument::schemaValidate | Добавлен параметр flags
DOMDocument::schemaValidateSource | Добавлен параметр flags
5.5.1 | hex2bin | Если входная строка не является правильной шестнадцатеричной строкой, то будет выброшено предупреждение.
pg_unescape_bytea | Если входная строка не валидна, то бросается предупреждение.
session_set_save_handler | Добавлен необязательный параметр create_sid.
5.5.0/PECL 3.0.0 | IntlDateFormatter::create | An IntlCalendar object is allowed for calendar. Objects of type IntlTimeZone and DateTimeZone are allowed for timezone. Invalid timezone identifiers (including empty strings) are no longer allowed for timezone. If NULL is given for timezone, the timezone identifier given by date_default_timezone_get will be used instead of ICU?s default.
IntlDateFormatter::format | Support for providing IntlCalendar objects to the value parameter was added.
IntlDateFormatter::setCalendar | It became possible to pass an IntlCalendar object.
5.5.0 | DatePeriod::__construct | Тип параметра start изменен на DateTimeInterface. Ранее использовался DateTime.
curl_getinfo | Добавлены CURLINFO_RESPONSE_CODE, CURLINFO_HTTP_CONNECTCODE, CURLINFO_HTTPAUTH_AVAIL, CURLINFO_PROXYAUTH_AVAIL, CURLINFO_OS_ERRNO, CURLINFO_NUM_CONNECTS, CURLINFO_SSL_ENGINES, CURLINFO_COOKIELIST, CURLINFO_FTP_ENTRY_PATH, CURLINFO_APPCONNECT_TIME, CURLINFO_CONDITION_UNMET, CURLINFO_RTSP_CLIENT_CSEQ, CURLINFO_RTSP_CSEQ_RECV, CURLINFO_RTSP_SERVER_CSEQ и CURLINFO_RTSP_SESSION_ID.
curl_setopt | Добавлена опция CURLOPT_SHARE.
curl_setopt | Ресурс cURL добавлен первым аргументом в callback-функцию CURLOPT_PROGRESSFUNCTION.
empty | empty теперь поддерживает выражения, а не только переменные.
imagerotate | Параметр ignore_transparent игнорируется без предупреждений.
imagerotate | Эта функция теперь меняет свое поведение при изменении метода интерполяции функцией imagesetinterpolation.
ip2long | До этой версии в Windows ip2long иногда могло быть возвращено корректное число, даже если был передан некорректный IPv4-адрес.
iterator_to_array | iterator_to_array стал поддерживать ключи с типами, отличными от integer и string, если включен параметр use_keys.
json_encode | Добавлена константа JSON_PARTIAL_OUTPUT_ON_ERROR для параметра options.
json_encode | Добавлен параметр depth.
json_encode | Возвращаемое значение в случае неудачи изменено со строки null на FALSE.
mysql_connect | Функция вызывает ошибку E_DEPRECATED.
mysql_db_name | Функция mysql_list_dbs устарела, и вызывает ошибку уровня E_DEPRECATED.
mysql_pconnect | Эта функция теперь вызывает ошибку E_DEPRECATED.
mysql_tablename | Функция mysql_tablename устарела, и вызывает ошибку уровня E_DEPRECATED.
pack | Добавлен код "Z", работающий аналогично "a" для совместимости с Perl.
php_logo_guid | php_logo_guid удалена из PHP.
phpinfo | GUID логотипов были заменены на URI данных, и отключение опции expose_php теперь не влияет на результат phpinfo(). Список авторов теперь также встроен в вывод.
preg_replace | Модификатор /e теперь считается устаревшим. Используйте функцию preg_replace_callback. Смотрите документацию PREG_REPLACE_EVAL с дополнительной информацией и описанием проблем с безопасностью.
set_error_handler | error_handler теперь может принимать NULL.
set_exception_handler | Раньше, если был передан NULL, то эта функция возвращала TRUE. Теперь она возвращает старый обработчик.
setcookie | Теперь атрибут max-age включен в заголовок, отправляемый клиенту Set-Cookie.
setrawcookie | Атрибут Max-Age теперь добавляется в заголовок Set-Cookie, отправляемый клиенту.
unpack | Для поддержания совместимости с Perl сделано следующее: Код "a" теперь сохраняет завершающие NULL-байты. Код "A" теперь удаляет все завершающие пробельные символы ASCII (пробелы, табуляцию, переносы строк, возврат каретки, и NULL-байты). Код "Z" добавлен для NULL-дополненными строками и удаляет завершающие NULL-байты.
zend_logo_guid | zend_logo_guid удалена из PHP.
IntlDateFormatter::setTimeZoneId | This function has been deprecated.
mysqli::commit | Добавлены параметры flags и name.
mysqli::options | Добавлены опции MYSQLI_SERVER_PUBLIC_KEY и MYSQLI_SERVER_PUBLIC_KEY.
mysqli::rollback | Добавлены параметры flags и name.
SoapClient::SoapClient | Новая опция ssl_method.
5.4.43, 5.5.27, 5.6.11 | escapeshellarg | Восклицательный знак заменяется пробелом.
escapeshellcmd | Восклицательные знаки заменяются пробелами.
5.4.42, 5.5.27 | mail | Добавлена защита от атак инъекцией в заголовок для параметра additional_headers. Это значит, что множественные последовательные переводы строк более не допустимы.
5.4.32, 5.5.16 | ucwords | Добавлен параметр delimiters.
5.4.8 | assert | Добавлен параметр description. Параметр description также доступен в callback-функции в режиме ASSERT_CALLBACK в качестве четвертого аргумента.
mb_strcut | Передача NULL в ккачестве length вернет все байты до конца строки. В более ранних версиях NULL интерпретировался как 0.
mb_substr | Передача NULL в качестве length вернет все символы до конца строки. В более ранних версиях NULL интерпретировался как 0.
5.4.7 | curl_getinfo | Добавлены CURLINFO_PRIMARY_IP, CURLINFO_PRIMARY_PORT, CURLINFO_LOCAL_IP и CURLINFO_LOCAL_PORT.
parse_url | Исправлено распознавание host, если в URL отсутствовал компонент scheme и использовался ведущий разделитель компонентов.
5.4.4 | hex2bin | Если строка имеет нечетную длину, выбрасывается предупреждение. В PHP 5.4.0 такая строка принималась, а последний байт просто обрезался.
5.4.0/PECL 2.0.0b1 | idn_to_ascii | Добавлены параметры variant и idna_info; поддержка UTS #46 (требуется ICU ≥ 4.6).
idn_to_utf8 | Добавлены параметры variant и idna_info; поддержка UTS #46 (требуется ICU ≥ 4.6).
5.4.0 | DOMDocument::loadHTML | Добавлен параметр options.
DOMDocument::loadHTMLFile | Добавлен параметр options.
apache_child_terminate | Эта функция стала доступной в режиме FastCGI. Ранее она поддерживалась только при запуске PHP в качестве модуля для Apache.
apache_request_headers | Данная функция стала доступной при использовании FastCGI. До этого поддерживалась только в случае использования PHP как модуля Apache или в серверном модуле NSAPI в веб-серверов Netscape/iPlanet/SunONE
apache_response_headers | Данная функция стала доступной при использовании FastCGI. Раньше она была доступна только если PHP был установлен, как модуль Apache или в серверном модуле NSAPI в веб-серверов Netscape/iPlanet/SunONE
array_combine | Предыдущие версии выдавали E_WARNING и возвращали FALSE для пустых массивов.
array_multisort | Добавлены SORT_NATURAL и SORT_FLAG_CASE в возможные флаги сортировки array1_sort_flags.
date_default_timezone_get | Переменная окружения TZ больше не используется при угадывании временной зоны.
date_default_timezone_get | Временная зона больше не угадывается с помощью информации, полученной из операционной системы, так как данный метод нестабилен и на него нельзя полагаться.
debug_backtrace | Добавлен необязательный аргумент limit.
debug_print_backtrace | Добавлен необязательный аргумент limit.
define_syslog_variables | Эта функция была удалена из PHP.
dns_get_record | Добавлен параметр raw.
empty | Проверка нечислового индекса строки возвращает TRUE.
error_reporting | E_STRICT стал частью E_ALL.
filter_input_array | Добавлен параметр add_empty.
filter_var_array | Добавлен параметр add_empty.
get_html_translation_table | Были добавлены константы ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
get_html_translation_table | Значение по умолчанию для параметра encoding было изменено на UTF-8.
get_magic_quotes_gpc | Всегда возвращает FALSE, так как функционал магических кавычек удален из PHP.
get_magic_quotes_runtime | Всегда возвращает FALSE, так как функционал магических кавычек удален из PHP.
getallheaders | Эта функция стала доступной при использовании FastCGI. Ранее она была доступна только если PHP был установлен, как модуль Apache или в серверном модуле NSAPI в веб-серверов Netscape/iPlanet/SunONE
gzcompress | Добавлен параметр encoding.
gzdeflate | Добавлен параметр encoding.
gzencode | FORCE_DEFLATE теперь генерирует вывод, совместимый с RFC 1950.
hash | Алгоритм Tiger теперь использует порядок байтов от старшего к младшему (big-endian). Смотрите пример ниже.
hash_algos | Добавлена поддержка для joaat, fnv132 и fnv164. Убрана поддержка для Salsa10 и Salsa20
html_entity_decode | Кодировка по умолчанию сменилась с ISO-8859-1 на UTF-8.
html_entity_decode | Были добавлены константы ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
htmlentities | Значение по умолчанию для параметра encoding было изменено на UTF-8.
htmlentities | Добавлены константы ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
htmlspecialchars | Добавлены константы ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
htmlspecialchars | Значение по умолчанию для параметра encoding было изменено на UTF-8.
htmlspecialchars_decode | Добавлены константы ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
http_build_query | Добавлен параметр enc_type.
iconv | Начиная с этой версии, функция возвращает FALSE на некорректных символах, только если в выходной кодировке не указан //IGNORE. До этого функция возвращала часть строки.
imagecolorset | Добавлен аргумент alpha.
imagegd | Добавлена возможность использовать потоки типа resource для to.
imagegd2 | Добавлена возможность задавать поток типа resource для to.
imagegif | Добавлена возможность использовать поток типа resource для to.
imagejpeg | Запрещено задавать to пустой строкой для его пропуска..
imagejpeg | Добавлена возможность использовать поток типа resource для to.
imagepng | Добавлена возможность использовать поток типа resource для to.
imagewbmp | Добавлена возможность использовать поток типа resource для to.
isset | Проверка нечислового индекса строки теперь возвращает FALSE.
json_decode | Добавлен параметр options.
json_decode | Добавлены константы JSON_BIGINT_AS_STRING и JSON_OBJECT_AS_ARRAY для параметра options.
json_encode | Для options были добавлены константы JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES и JSON_UNESCAPED_UNICODE.
mb_decode_numericentity | Добавлен параметр is_hex.
mb_encode_numericentity | Добавлен параметр is_hex.
mysqli_get_cache_stats | Функция mysqli_get_cache_stats удалена.
number_format | Функция поддерживает многобайтовую строку в качестве параметров dec_point и thousands_sep. В предыдущих версиях в качестве разделителя использовался только первый байт из каждого параметра.
ob_start | Третий параметр ob_start изменен с логического (boolean) параметра erase (который при установке в FALSE предотвращал удаление буфера до тех пор, пока не завершалась работа скрипта) на целочисленный (integer) параметр flags. К сожалению, это означает появление несовместимости API для кода, который использовал третий параметр до версии PHP 5.4.0. Смотрите пример с флагами, чтобы понять как работать с кодом, чтобы он поддерживал совместимость с обеими версиями.
ob_start | Параметр chunk_size, установленный в 1, теперь приводит к выводу по 1 байту в выходной буфер.
openssl_decrypt | Параметр raw_output изменен на options.
openssl_encrypt | Параметр raw_output изменен на options.
preg_match_all | Параметр matches стал необязательным.
scandir | Добавлены константы для sorting_order. Любое ненулевое значение задавало сортировку по убыванию в предыдущих версиях. Поэтому для всех версий PHP нужно использовать 0 для сортировки по возрастанию и 1 для сортировки по убыванию. Опции для режима SCANDIR_SORT_NONE не существовало до PHP 5.4.0.
session_set_save_handler | Добавлен интерфейс SessionHandlerInterface для реализации обработчиков сессии и класс SessionHandler для дополнения внутренних обработчиков сессии PHP.
snmp_set_valueretrieval | Constants SNMP_VALUE_PLAIN or SNMP_VALUE_LIBRARY may be combined with SNMP_VALUE_OBJECT resulting different way of representing contents of value array element in return value of GET-function. If no SNMP_VALUE_{PLAIN,LIBRARY} constant is accompanying SNMP_VALUE_OBJECT, SNMP_VALUE_LIBRARY is used. Prior to 5.4.0 SNMP_VALUE_OBJECT effecively meant SNMP_VALUE_OBJECT|SNMP_VALUE_PLAIN.
sort | Добавлена поддержка SORT_NATURAL и SORT_FLAG_CASE в параметре sort_flags
PDOStatement::getColumnMeta | Добавлена поддержка драйвера PDO_DBLIB
Phar::setStub | Добавлен параметр len.
PharData::setStub | Добавлен параметр len.
SimpleXMLElement::getDocNamespaces | Добавлен параметр from_root.
SoapClient::SoapClient | Новая опция keep_alive.
5.4 | grapheme_substr | If length is given and positive and the argument string is shorter than the specified length, all the rest of the string according to start parameter is returned. Previously, FALSE was returned.
5.3.19 | imagecreatefromxpm | imagecreatefromxpm доступна на Windows.
5.3.9 | DateTime::createFromFormat | Для format добавлен спецификатор +.
dl | dl разрешено в PHP-FPM, хотя и не рекомендовано.
is_a | Добавлен параметр allow_string
is_subclass_of | Добавлен параметр allow_string
5.3.7 | crypt | Добавлены $2x$ и $2y$ режимы Blowfish для предотвращения возможных "high-bit" атак.
curl_getinfo | Добавлена CURLINFO_REDIRECT_URL.
is_subclass_of | Добавлена поддержка работы с интерфейсами для параметра class_name
5.3.6 | DateTime::modify | Стало возможным применять абсолютные значения объектов даты/времени. Раньше использовались только относительные значения полей даты/времени.
DOMDocument::saveHTML | Добавлен аргумент node.
array_product | Результатом произведения пустого массива теперь является 1, тогда как ранее данная функция возвращала 0.
debug_backtrace | Аргумент provide_object заменен на options и добавлена дополнительная настройка DEBUG_BACKTRACE_IGNORE_ARGS.
debug_print_backtrace | Добавлен необязательный аргумент options.
preg_match | Возвращает FALSE, если offset больше, чем длина subject.
preg_match_all | Возвращает FALSE если offset больше чем длина subject.
PDO_MYSQL DSN | До версии 5.3.6 параметр charset игнорировался.
5.3.4 | copy | Изменён параметр context для достижения результата. Ранее любые параметры context игнорировались.
get_html_translation_table | Добавлен параметр encoding.
mt_rand | Приводит к ошибке E_WARNING и возвращает FALSE, если max < min.
rawurlencode | Символы "тильда" больше не кодируются, когда rawurlencode используется с EBCDIC-строками.
sleep | До PHP 5.3.4 функция sleep в Windows всегда возвращала NULL после завершения ожидания, независимо от того было ли прервано выполнение функции или нет.
strip_tags | strip_tags игнорирует самозакрывающиеся теги XHTML в allowable_tags.
IntlDateFormatter::format | Support for providing DateTime objects to the value parameter was added.
mysqli_driver::$report_mode | Изменен режим протоколирования. Если ранее режим задавался для процесса, то теперь он задается для каждого запроса.
5.3.3 | DOMXPath::evaluate | Добавлен аргумент registerNodeNS.
DOMXPath::query | Добавлен аргумент registerNodeNS.
imap_fetch_overview | Добавлено свойство udate.
json_encode | Добавлена константа JSON_NUMERIC_CHECK для параметра options.
ldap_sasl_bind | Добавлена поддержка в Windows.
openssl_decrypt | Добавлен параметр iv.
openssl_encrypt | Добавлен параметр iv.
parse_url | Удалено E_WARNING, которое сообщало о невозможности разбора URL.
5.3.2 (PECL OCI8 1.4) | oci_set_prefetch | До этой версии rows должен был быть >= 1.
5.3.2 | crypt | Добавлено хеширование алгоритмами SHA-256 и SHA-512, основанное на реализации Ульриха Дреппера (Ulrich Drepper).
crypt | Исправлено поведение Blowfish при некорректных раундах: теперь возвращается "ошибочная" строка ("*0" или "*1") вместо отката к использованию DES.
flock | Автоматическое снятие блокировки при закрытии было удалено. Снятие блокировки теперь всегда должно осуществляться вручную.
gmp_init | Диапазон возможных оснований системы счисления base расширен с значений от 2 до 36, до значений от 2 до 62 и от -2 до -36.
gmp_strval | Диапазон возможных систем счисления base расширен со значений 2 - 36, до 2 - 62 и -2 - -36.
imap_append | Добавлена поддержка INTERNALDATE для imap_append.
imap_open | Добавлен параметр params
SplFileObject::flock | Удалена автоматическая разблокировка при закрытии ресурса обработчика файла. Теперь разблокировку всегда придется делать самостоятельно.
5.3.1 | get_defined_constants | Только для Windows: Константы ядра входят в категорию Core. Раньше категория называлась mhash.
ibase_query | On success the function now returns TRUE if there were no affected rows, where it previously returned 0 (a zero followed by an empty space).
rename | rename теперь может переименовывать файлы между дисками в Windows.
5.3.0 (PECL OCI8 1.3.4) | oci_set_prefetch | До этой версии предварительная выборка была ограничена к меньшему из значений rows строк и 1024 * rows байт. Теперь ограничение по размеру байт снято.
5.3.0 | DateTime::__construct | В случае задания параметру time неверного формата даты/времени выбрасывается исключение. Раньше скрипт выдавал ошибку.
DateTime::modify | Изменено значение успешной работы функции с NULL на DateTime.
DateTime::setDate | Изменено значение успешной работы функции с NULL на DateTime.
DateTime::setISODate | Изменено значение успешной работы функции с NULL на DateTime.
DateTime::setTime | Изменено значение успешной работы функции с NULL на DateTime.
DateTime::setTimezone | Изменено значение успешной работы функции с NULL на DateTime.
DateTimeZone::getTransitions | Были добавлены необязательные параметры timestamp_begin и timestamp_end.
DateTimeZone::listIdentifiers | Добавлены необязательные параметры what и country.
DirectoryIterator::__construct | Выбрасывается исключение UnexpectedValueException, если путь path не может быть открыт.
acosh | Функция стала доступна для всех платформ
array_multisort | Добавлен SORT_LOCALE_STRING в возможные флаги сортировки array1_sort_flags.
array_reduce | Параметр initial теперь позволяет передать тип mixed, ранее передавался только тип integer.
array_search | Вместе со всеми внутренними функциями PHP, начиная с версии 5.3.0, array_search возвращает NULL, если ей были переданы неверные параметры.
asinh | Функция стала доступна для всех платформ
atanh | Функция стала доступна для всех платформ
call_user_func | Если вызываемая функция ожидает передачи параметра по ссылке, будет выдана ошибка уровня E_WARNING.
call_user_func | Изменилась интерпретация объектно-ориентированных ключевых слов, таких как parent и self. Ранее, при их вызове с помощью синтаксиса двойного двоеточия вызывалась ошибка уровня E_STRICT, т.к. они интерпретировались как статические вызовы.
call_user_func_array | Изменилась интерпретация объектно-ориентированных ключевых слов, таких как parent и self. Ранее их вызов с помощью синтаксиса двойного двоеточия вызывал предупреждение уровня E_STRICT, так как они расценивались как статические вызовы.
checkdnsrr | Функция стала доступна на платформе Windows.
clearstatcache | Добавлены необязательные параметры clear_realpath_cache и filename.
copy | Добавлена поддержка контекста.
crypt | PHP теперь использует собственную реализацию MD5, стандартного DES, расширенного DES и Blowfish алгоритмов, которые будут использованы в случае отсутствия их поддержки в системе.
curl_getinfo | Добавлена CURLINFO_CERTINFO.
curl_setopt | Добавлена опция CURLOPT_PROGRESSFUNCTION.
date_default_timezone_set | Теперь выбрасывает E_WARNING вместо E_STRICT.
define_syslog_variables | Эта функция теперь передаёт напоминание E_DEPRECATED.
dl | dl выключен в некоторых SAPI в связи с нестабильностью работы. Из SAPI, поддерживающих dl, остались только CLI и Embed. Используйте вместо dl Директивы загрузки расширений.
dns_get_record | Функция стала доступна на платформах Windows.
dns_get_record | До этого выпуска, если был задан параметр authns, то и addtl также становился обязательным. Теперь нет.
error_reporting | Добавлены E_DEPRECATED и E_USER_DEPRECATED.
exif_imagetype | Добавлена поддержка иконок.
expm1 | Теперь функция доступна на всех платформах
fgetcsv | Добавлен параметр escape
fnmatch | Данная функция стала доступной на платформе Windows.
func_get_arg | Если эта функция вызвана в глобальной области видимости файла, подключенного с помощью include или require из функции вызывающего файла, то теперь будет сгенерировано предупреждение и возвращено значение FALSE.
func_get_arg | Эта функция теперь может быть использована в качестве параметра функции.
func_get_args | Эта функция теперь может быть использована в качестве параметра функции.
func_get_args | Если эта функция вызвана в глобальной области видимости файла, подключенного с помощью include или require из функции вызывающего файла, то теперь будет сгенерировано предупреждение и возвращено значение FALSE.
func_num_args | Эта функция теперь может быть использована в качестве параметра функции.
func_num_args | Если эта функция вызвана в глобальной области видимости файла, подключенного с помощью include или require из функции вызывающего файла, то теперь будет сгенерировано предупреждение и возвращено значение -1.
gd_info | Атрибут JPG Support переименован в JPEG Support.
get_cfg_var | get_cfg_var изменена, чтобы иметь возможность возвращать ini-настройки, содержащие массивы.
get_class | NULL стал значением по умолчанию для параметра object, поэтому передача NULL в object теперь имеет тот же самый эффект, как и отсутствие какой-либо передачи вообще.
get_defined_constants | Константы ядра входят в категорию Core. Раньше категория называлась internal, а в системах Windows - mhash.
get_object_vars | Функция теперь возвращает NULL, если object не является объектом. Ранее возвращался FALSE.
get_resource_type | Если handle не является ресурсом (resource), то эта функция вернет NULL. Ранее возвращался FALSE.
getimagesize | Добавлена поддержка иконок.
getmxrr | Функция стала доступна на платформе Windows.
getopt | Добавлена поддержка "=" в качестве разделителя параметр/значение.
getopt | Добавлена поддержка необязательных значений параметров (задаваемая "::").
getopt | Аргумент longopts доступен на всех системах.
getopt | Функция больше не зависит от системы, теперь работает и в Windows.
hash_algos | Добавлена поддержка для md2, ripemd256, ripemd320, salsa10, salsa20, snefru256 и sha224
htmlentities | Добавлена константа ENT_IGNORE.
htmlspecialchars | Добавлена константа ENT_IGNORE.
imagecolorclosesthwb | Функция теперь доступна в Windows
imagefilter | Добавлена поддержка пикселирования (IMGFILTER_PIXELATE).
inet_ntop | Эта функция стала доступна на платформах Windows.
inet_pton | Эта функция стала доступна на платформах Windows.
ini_get | Раньше возвращалась пустая строка, если конфигурационная опция отсутствует. Теперь вместо этого возвращается FALSE.
ini_get_all | Добавлен аргумент details.
is_a | Данная функция больше не считается устаревшей, а значит больше не будет выводить предупреждения E_STRICT.
json_decode | Добавлен необязательный параметр depth. Значение глубины рекурсии по умолчанию изменено с 128 на 512
json_encode | Был добавлен параметр options.
json_encode | Добавлены константы JSON_FORCE_OBJECT, JSON_HEX_AMP, JSON_HEX_APOS, JSON_HEX_QUOT и JSON_HEX_TAG, для параметра options.
link | Эта функция стала доступна на Windows системах (Vista, Server 2008 и выше).
linkinfo | Эта функция теперь доступна и на Windows платформах (Vista, Server 2008 и выше).
log1p | Теперь функция доступна на всех платформах
mb_get_info | Стал доступен элемент "http_output_conv_mimetypes".
mcrypt_create_iv | Теперь не нужно предварительно запускать srand, так как это происходит автоматически.
mcrypt_create_iv | MCRYPT_DEV_RANDOM и MCRYPT_DEV_URANDOM теперь доступны для Windows.
mktime | mktime теперь выбрасывает ошибку уровня E_DEPRECATED при использовании параметра is_dst.
mysql_db_query | Функция теперь выдает предупреждение уровня E_DEPRECATED.
mysql_escape_string | Данная функция теперь выдает предупреждение уровня E_DEPRECATED.
mysqli_get_cache_stats | Функция mysqli_get_cache_stats добавлена в виде заглушки.
nl2br | Добавлен необязательный параметр is_xhtml.
openssl_open | Добавлен параметр method.
openssl_seal | Добавлен параметр method.
parse_ini_file | Добавлен необязательный параметр scanner_mode. Одинарные кавычки теперь также могут быть использованы в присвоениях переменных. Символ решетки (#) теперь больше не может быть использован в качестве комментария и будет выбрасывать предупреждение о том, что данная возможность считается устаревшей.
pg_lo_create | Добавлен необязательный параметр object_id.
pg_lo_import | Добавлен необязательный аргумент object_id.
preg_quote | Символ - теперь экранируется
property_exists | Эта функция проверяет существование свойства вне зависимости от его доступности.
rawurlencode | Теперь соответствует RFC 3986.
readlink | Данная функция теперь доступна на платформах Windows (Vista, Server 2008 и выше).
realpath | До этого релиза realpath не терпела неудачу на системах *BSD в случае отсутствия лишь последнего компонента пути path. Теперь realpath не срабатывает также и в этом случае.
register_tick_function | Тики теперь поддерживаются и на потоковых модулях веб-серверов.
round | Был добавлен параметр mode.
session_start | Если сессия не смогла стартовать, то возвращается FALSE. Раньше возвращалось TRUE.
setlocale | Эта функция в настоящее время бросает уведомления E_DEPRECATED, если строка передается в параметре category вместо одной из констант LC_*.
shm_attach | This function now returns a resource instead of an integer.
socket_create_pair | Эта функция доступна на Windows-платформах.
spl_autoload_register | Добавлена поддержка пространств имен.
spl_autoload_register | Добавлен аргумент prepend.
stream_context_create | Добавлен необязательный аргумент params.
stream_socket_pair | Теперь эта функция доступна на Windows платформах.
stristr | Добавлен необязательный параметр before_needle.
strlen | Ранние версии этой функции рассматривали массивы как строку Array, возвращая таким образом 5 в качестве длины этой строки и вызывали ошибку уровня E_NOTICE.
strstr | Добавлен необязательный параметр before_needle.
strtotime | До PHP 5.3.0 24:00 не являлся корректным форматом, и при его использовании strtotime возвращала FALSE.
strtotime | До PHP 5.3.0 относительные форматы времени, заданные в аргументе time функции strtotime, такие как this week, previous week, last week и next week, интерпретировались как 7-ми дневный период относительно текущего значения даты/времени, а не как период с Понедельника по Воскресенье.
sybase_connect | The new parameter was added.
symlink | Эта функция теперь доступна на Windows платформах (Vista, Server 2008 и выше).
time_nanosleep | Эта функция теперь доступна на платформах Windows.
time_sleep_until | Эта функция теперь доступна на платформах Windows.
touch | Стало возможным изменять время модификации директории в Windows.
mysqli::__construct | Добавлена возможность устанавливать постоянные соединения.
mysqli::options | Добавлены опции MYSQLI_OPT_INT_AND_FLOAT_NATIVE, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, MYSQLI_OPT_NET_READ_BUFFER_SIZE, и MYSQLI_OPT_SSL_VERIFY_SERVER_CERT.
mysqli::query | Добавлена возможность выполнять асинхронные запросы.
PDO::__construct | Классы, наследуемые от PDO и реализующие магический метод __call, теперь получают оригинальное название метода. Ранее имя метода всегда возвращалось в нижнем регистре.
ReflectionFunction::__construct | name теперь может быть замыканием.
SplFileObject::setCsvControl | Добавлен параметр escape.
SplObjectStorage::attach | Добавлен аргумент data.
XMLReader::expand | Добавлен параметр basenode.
5.2.15 | mysqli_driver::$report_mode | Изменен режим протоколирования. Если ранее режим задавался для процесса, то теперь он задается для каждого запроса.
5.2.11 | get_defined_constants | Значение аргумента categorize стало обрабатываться надлежащим образом. Раньше аргумент categorize воспринимался, как выражение !is_null($categorize), то есть любое значение отличное от NULL, предписывало разделять константы на категории.
5.2.10 | array_rand | Возвращаемый массив ключей больше не возвращается в случайном порядке.
array_unique | Значение по умолчанию параметра sort_flags изменено обратно на SORT_STRING.
curl_setopt | Добавлены параметры CURLOPT_PROTOCOLS и CURLOPT_REDIR_PROTOCOLS.
ip2long | До этой версии функция ip2long могла иногда возвращать верное число, даже если отправленное значение не было Интернет-адресом (IPv4) в точечном формате.
natsort | В строках, отбитых нулями спереди (например, '00005') теперь данная отбивка игнорируется.
5.2.9 | array_unique | Добавлен необязательный параметр sort_flags, по умолчанию равный SORT_REGULAR. До версии 5.2.9 эта функция сортировала массив с помощью SORT_STRING.
5.2.8 | XSLTProcessor::importStylesheet | Принимает SimpleXMLElement вновь, что было невозможно в версии PHP 5.2.6 и более поздних.
5.2.7 | error_log | Добавлен 4-й тип значения в message_type.
parse_ini_file | В случае ошибки синтаксиса, данная функция вернет FALSE, а не пустой массив.
round | Работа функции round была изменена в соответствии со стандартом C99.
strtotime | В версиях PHP 5 до 5.2.7 при запросе временной метки дня недели, являвшегося первым днем месяца, ошибочно прибавлялась одна неделя. Эта ошибка была исправлена в версии 5.2.7 и следующих за ней версиях.
5.2.6 | fopen | Добавлены опции 'c' и 'c+'
5.2.5 | addcslashes | Добавлены экранирующие последовательности \v и \f.
debug_backtrace | Добавлен необязательный аргумент provide_object.
imagefilter | Добавлена поддержка прозрачности IMG_FILTER_COLORIZE.
5.2.4 | array_slice | Значение параметра length по умолчанию изменено на NULL. Значение NULL в качестве length теперь означает, что в качестве этого значения будет использована длина массива array. До этой версии NULL в параметре length означал 0, то есть ничего не возвращалось.
checkdnsrr | Добавлено значение TXT параметра type.
curl_getinfo | Добавлена CURLINFO_PRIVATE.
curl_setopt | Добавлено CURLOPT_PRIVATE.
get_loaded_extensions | Добавлен необязательный аргумент zend_extensions
ldap_first_attribute | Параметр ber_identifier был удалён. В настоящее время обрабатывается PHP автоматически.
ldap_next_attribute | Параметр ber_identifier был удалён. Теперь это обрабатывается PHP автоматически.
parse_ini_file | Ключи и имена секций, состоящие из цифр, будут обработаны в PHP как целые числа. Поэтому числа, начинающиеся с 0 будут считаться восьмеричными, а начинающиеся с 0x - шестнадцатеричными.
stream_wrapper_register | Добавлен параметр flags.
5.2.3 | getimagesize | Уровень ошибок чтения, вызываемых функцией, снижен до E_NOTICE с E_WARNING.
htmlentities | Добавлен параметр double_encode.
htmlspecialchars | Добавлен параметр double_encode.
json_decode | Предел вложенности изменен с 20 на 128
XMLWriter::writeElement | Параметр content стал необязательным.
XMLWriter::writeElementNs | Параметр content стал опциональным.
PDOStatement::getColumnMeta | Поле table
5.2.2 - 5.2.6 | substr | Если параметр start указывает на позицию с отрицательной обрезкой, возвращается FALSE. Другие версии возвращают строку с начала.
5.2.2 | DOMDocument::registerNodeClass | В версиях до 5.2.2 ранее зарегистрированный расширенный класс extendedclass должен быть исключен из регистрации, прежде чем регистрировать новый класс, расширяющий тот же базовый класс baseclass.
date_sun_info | Порядок latitude и longitude были поменяны местами.
ftp_ssl_connect | Эта функция теперь возвращает FALSE, если не удалось установить SSL-соединение, вместо прежнего поведения, когда устанавливалось обычное, не SSL-соединение.
phpinfo | Добавлен вывод информации о загруженном конфигурационном файле. Ранее выводился только путь к конфигурационному файлу (php.ini).
preg_match | Именованные подмаски теперь позволяют синтаксис (?<name>) и (?'name'), также как и (?P<name>). Предыдущие версии позволяли только (?P<name>).
preg_match_all | Именованные подмаски теперь принимают синтаксис (?<name>) и (?'name'), также как и (?P<name>). Предыдущие версии принимали только (?P<name>).
proc_terminate | Предыдущие версии использовали для уничтожения указанного процесса ресурс resource.
token_get_all | Номера строк возвращаются в элементе 2.
5.2.1 | iterator_to_array | Добавлен параметр use_keys.
json_decode | Добавлена поддержка декодирования базовых типов.
memory_get_peak_usage | Для работы функции больше не требуется, чтобы PHP компилировался с настройкой --enable-memory-limit.
memory_get_usage | Для работы функции больше не требуется, чтобы PHP компилировался с настройкой --enable-memory-limit.
mt_srand | Реализация Вихря Мерсенна (Mersenne Twister) в PHP теперь использует новый алгоритм переинициализации, разработанный Ричардом Вагнером (Richard Wagner). При том же параметре последовательность значений будет отличатся от последовательности, сгенерированной в предыдущих версиях PHP. (Ранее при одинаковых параметрах последовательность была одинаковой). Это поведение более не планируется изменять, но тем не менее, полагаться на это небезопасно.
proc_open | Настройка bypass_shell добавлена в аргумент other_options.
realpath | До этой версии realpath возвращает FALSE, если path является пустой строкой или NULL.
5.2.0 | base64_decode | Добавлен параметр strict
curl_multi_info_read | Добавлен параметр msgs_in_queue.
error_reporting | Добавлена E_RECOVERABLE_ERROR.
imagettftext | Стало возможным задавать код сущности в тексте text шестнадцатеричным числом.
imap_open | Добавлен параметр n_retries
imap_reopen | Добавлен параметр n_retries
mb_strrpos | Добавлен необязательный аргумент offset.
memory_get_peak_usage | Добавлен аргумент real_usage.
memory_get_usage | Добавлен аргумент real_usage.
openssl_verify | Добавлен параметр signature_alg.
pathinfo | Добавлена константа PATHINFO_FILENAME.
pg_escape_bytea | Добавлен аргумент connection
pg_escape_string | Добавлен аргумент connection
session_get_cookie_params | Добавлен элемент "httponly" в возвращаемый массив.
session_set_cookie_params | Добавлен параметр httponly.
set_error_handler | Обработчик должен вернуть FALSE, чтобы заполнилось значение переменной $php_errormsg.
setcookie | Добавлен параметр httponly.
setrawcookie | Был добавлен параметр httponly.
snmp_set_oid_numeric_print | Since PHP 5.2.0.
PDOStatement::execute | Ключи массива input_parameters должны совпадать с именами параметров, заявленными в SQL-запросе. До PHP 5.2.0 на это не обращалось внимания.
SimpleXMLElement::children | Добавлен необязательный параметр is_prefix.
SimpleXMLElement::__construct | Добавлены параметры ns и is_prefix.
SoapServer::SoapServer | Добавлена опция typemap.
XMLReader::open | Были добавлены параметры encoding и options.
XMLReader::XML | Были добавлены параметры encoding и options.
5.1.3 | DirectoryIterator::__construct | Выбрасывается исключение RuntimeException, если параметр path содержит пустую строку.
curl_getinfo | Добавлена CURLINFO_HEADER_OUT.
get_headers | Эта функция теперь использует контекст потока по умолчанию, который может быть установлен или изменен при помощи функции stream_context_set_default.
http_build_query | Квадратные скобки экранируются.
imagecolorallocate | Возвращает FALSE в случае возникновения ошибки. В предыдущих версиях в этом случае возвращалось значение -1.
imagecolorallocatealpha | Возвращает FALSE, если создать цвет не удалось. Раньше в этом случае функция возвращала -1.
imagepng | Добавлен аргумент filters.
mb_get_info | Стали доступны элементы "mail_charset", "mail_header_encoding", и "mail_body_encoding".
SoapClient::__doRequest | Добавлен параметр one_way.
XMLReader::getAttribute | Возвращает NULL, если атрибут не найден. Ранее возвращалась пустая строка.
5.1.2 | date_default_timezone_set | Функция начала проверять timezone_identifier.
header | Стало невозможным отправлять более одного заголовка за раз. Это сделано для защиты от атак, связанных с инъекцией заголовков.
http_build_query | Добавлен параметр arg_separator.
imagepng | Добавлен аргумент quality.
parse_url | Добавлен параметр component.
SimpleXMLElement::__construct | Добавлены параметры options и data_is_url.
5.1.1 | date | Для стандартных форматов даты/времени существуют специальные константы, которые могут быть указаны в качестве параметра format.
debug_backtrace | Элементом возвращаемого массива теперь может быть текущий объект (object).
gmdate | Существуют также полезные константы стандартных форматов даты/времени, которые могут быть использованы в качестве параметра format.
5.1.0 | DirectoryIterator::__construct | Выбрасывается исключение RuntimeException при возникновении ошибки. Раньше выбрасывалось исключение Exception.
DOMDocument::save | Добавлен аргумент options
DOMDocument::saveXML | Добавлен аргумент options
class_implements | Добавлена возможность передавать строку в качестве аргумента class. Добавлен аргумент autoload.
class_parents | Добавлена возможность передавать строку в качестве аргумента class. Добавлен аргумент autoload.
ctype_digit | До версии PHP 5.1.0 эта функция возвращала TRUE, если в качестве text передавалась пустая строка.
curl_setopt | Добавлены параметры CURLOPT_AUTOREFERER, CURLOPT_BINARYTRANSFER, CURLOPT_FTPSSLAUTH, CURLOPT_PROXYAUTH и CURLOPT_TIMECONDITION.
date | Допустимым диапазоном дат для временных меток обычно являются даты с 13 декабря 1901, 20:45:54 GMT по 19 января 2038, 03:14:07 GMT. (Они соответствуют минимальному и максимальному значению 32-битного целого числа со знаком). Однако для PHP версии ниже 5.1.0 в некоторых операционных системах (например, Windows) этот диапазон был ограничен датами 01-01-1970 до 19-01-2038.
date | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.
date_sunrise | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.
date_sunset | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.
explode | Добавлена поддержка отрицательных значений limit
fgetcsv | Параметр length стал необязательным. По умолчанию равен 0, что означает отсутствие ограничения длины.
file_get_contents | Добавлены аргументы offset и maxlen.
file_put_contents | Добавлена поддержка LOCK_EX и возможность передачи потокового ресурса в параметр data
get_parent_class | Если функция была вызвана без параметров вне объекта, то функция возвращала NULL вместе с предупреждением, однако сейчас она возвращает FALSE.
gettimeofday | Добавлен параметр return_float.
glob | Добавлена константа GLOB_ERR
gmdate | Корректным диапазоном временных меток обычно является диапазон дат с 13 декабря 1901 20:45:54 GMT до 19 января 2038 03:14:07 GMT. (Эти даты соответствуют минимальному и максимальному значению 32-битному целому числу со знаком). Однако, до PHP 5.1.0 на некоторых системах (например, Windows) этот диапазон был ограничен датами от 01-01-1970 до 19-01-2038.
gmmktime | Начиная с версии PHP 5.1.0, параметр is_dst считается устаревшим. В результате должны быть использованы новые возможности обработки временных зон.
idate | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.
imagerotate | Добавлен параметр ignore_transparent.
intval | Генерирует ошибку уровня E_NOTICE и возвращает 1, если в качестве var передан объект.
localtime | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.
md5_file | Функция изменена для работы с потоковым API. Это означает, что ее можно использовать с обертками, например, так: md5_file('http://example.com/..')
mktime | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.
mktime | Если mktime была вызвана без аргументов, то будет сгенерировано замечание уровня E_STRICT. Используйте вместо этого функцию time.
mktime | Параметр is_dst теперь считается устаревшим. Функция теперь возвращает FALSE при ошибке, тогда как раньше возвращалась -1. Теперь функция принимает дату с одновременно установленными в ноль годом, месяцем и днем.
mssql_connect | Добавлен параметр new_link
openssl_pkcs7_verify | Добавлен параметр content.
preg_replace | Добавлен параметр count
preg_replace_callback | Добавлен параметр count
session_regenerate_id | Добавлен параметр delete_old_session.
sha1_file | Функция теперь работает с потоковым API. Это означает, что ее можно использовать с обертками, например, sha1_file('http://example.com/..')
str_word_count | Добавлен параметр charlist
stream_copy_to_stream | Добавлен параметр offset
stream_filter_append | До PHP 5.1.0 эта функция возвращает TRUE в случае успешного выполнения или FALSE в случае возникновения ошибки.
stream_filter_prepend | До PHP 5.1.0 эта функция возвращает TRUE в случае успешного выполнения или FALSE в случае возникновения ошибки.
stream_get_contents | Был добавлен параметр offset.
strftime | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.
strtotime | Теперь в случае ошибки возвращается FALSE вместо -1.
strtotime | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.
substr_compare | Добавлена возможность использования отрицательных значений в offset.
substr_count | Добавлены параметры offset и length
var_export | Стало возможным экспортировать классы и массивы, содержащие другие классы, используя магический метод __set_state().
XSLTProcessor::registerPHPFunctions | Был добавлен параметр restrict.
5.0.5 | php_check_syntax | Эта функция была удалена из PHP.
5.0.4 | msql_fetch_array | A bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array.
msql_fetch_object | A bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array.
msql_fetch_row | A bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array.
5.0.3 | get_class_vars | Вызов get_class_vars вернет только те свойства, доступ к которым может быть получен из текущей области видимости.
is_subclass_of | Вы также можете передать параметр object в виде строки (имени класса)
php_check_syntax | Вызов функции exit после php_check_syntax передает результат в Segfault.
5.0.2 | array_slice | Добавлен необязательный параметр preserve_keys.
class_exists | Больше не возвращает TRUE для объявленных интерфейсов. Используйте для этого interface_exists.
get_class_vars | Вызов get_class_vars не вернет все свойства в качестве массива, в отличие от предыдущего поведения, где protected и private свойства имели префикс с нулевым байтом.
sort | Добавлена поддержка SORT_LOCALE_STRING
strtotime | В PHP до версии 5.0.2 "now" и другие относительные времена вычислялись неверно относительно полуночи текущего дня. Это отличается от поведения текущих версий, где вычисление производится корректно относительно текущего времени.
5.0.1 | get_class_vars | Вызов get_class_vars вернет все свойства, как при конвертировании объекта в класс.
php_check_syntax | error_message передается по ссылке.
5.0.0 | curl_setopt | Добавлены параметры CURLOPT_FTP_USE_EPRT, CURLOPT_NOSIGNAL, CURLOPT_UNRESTRICTED_AUTH, CURLOPT_BUFFERSIZE, CURLOPT_HTTPAUTH, CURLOPT_PROXYPORT, CURLOPT_PROXYTYPE, CURLOPT_SSLCERTTYPE и CURLOPT_HTTP200ALIASES.
is_a | Эта функция была помечена устаревшей в пользу оператора instanceof. Вызов данной функции вызовет предупреждение уровня E_STRICT.
strtotime | Стало возможным указывать микросекунды, но они не принимаются во внимание и будут проигнорированы.


Руководство в формате HTML Help

  • About This Edition
  • Using PHP Manual CHM Edition
    • The HTML Help Toolbar
    • The Navigation Pane
    • Keyboard Shortcuts
  • The Full Text Search
    • General searching rules
    • Searching for words or phrases
    • Defining search terms
    • Using nested expressions when searching
  • Integrating the PHP Manual


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 web page 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). 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.


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.


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.


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.

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 | SHIFT+F10
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
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
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
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
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 Full Text Search

Содержание

  • General searching rules
  • Searching for words or phrases
  • Defining search terms
  • Using nested expressions when searching

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."


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.

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".


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".

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.


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.


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://www.microsoft.com/download/en/details.aspx?id=21138.